diff -Nrcpad gcc-4.5.2/boehm-gc/ChangeLog gcc-4.6.0/boehm-gc/ChangeLog *** gcc-4.5.2/boehm-gc/ChangeLog Thu Dec 16 12:30:55 2010 --- gcc-4.6.0/boehm-gc/ChangeLog Fri Mar 25 16:53:49 2011 *************** *** 1,10 **** ! 2010-12-16 Release Manager ! * GCC 4.5.2 released. ! 2010-07-31 Release Manager ! * GCC 4.5.1 released. 2010-06-15 Rainer Orth --- 1,66 ---- ! 2011-03-25 Release Manager ! * GCC 4.6.0 released. ! 2011-02-13 Ralf Wildenhues ! * configure: Regenerate. ! ! 2011-02-02 Rainer Orth ! ! * configure.ac: Don't use libdl on mips-sgi-irix6*. ! * configure: Regenerate. ! ! 2011-01-31 Rainer Orth ! ! * configure.ac (*-*-solaris2*): Add -lrt to THREADLIBS. ! * configure: Regenerate. ! ! 2010-12-10 Iain Sandoe ! ! * powerpc_darwin_mach_dep.s: Update for m64. Add eh frames. ! Do not build or use the picsymbol stub for Darwin >= 9. ! * tests/test.c (reverse_test): Modify count for ppc64-darwin. ! * pthread_support.c (GC_get_thread_stack_base): Correct a debug ! statement. ! ! 2010-11-29 Iain Sandoe ! Mike Stump ! ! PR target/26427 ! PR target/33120 ! PR testsuite/35710 ! * dyn_load.c (GC_register_dynamic_libraries/DARWIN): Add new writable ! data section names. ! (GC_dyld_name_for_hdr): Adjust layout. ! (GC_dyld_image_add): Adjust layout, add new Darwin sections, adjust ! debug to name the sections. ! (GC_dyld_image_remove): Adjust layout, remove new Darwin sections, ! adjust debug to name the sections. ! (GC_register_dynamic_libraries): Adjust layout. ! (GC_init_dyld): Likewise. ! (GC_register_main_static_data): Likewise. ! ! 2010-10-29 Paolo Bonzini ! ! * configure: Regenerate. ! ! 2010-10-28 Paolo Bonzini ! ! * configure.ac: Rewrite DGUX check to use GC_CFLAGS, and -O0 check ! to remove the need for MY_CFLAGS. ! * Makefile.am: Do not use @...@ substitutions. Use AM_CXXFLAGS, ! AM_CFLAGS and AM_LDFLAGS instead of redefining LTCOMPILE and LINK. ! Use "override" to disable -O2 when required. ! * configure: Regenerate. ! * Makefile.in: Regenerate. ! * include/Makefile.in: Regenerate. ! ! 2010-10-11 Rainer Orth ! ! * dyn_load.c: Fix typo. ! * pthread_support.c (GC_get_thread_stack_base) [DEBUG_THREADS]: ! Use GC_printf0. 2010-06-15 Rainer Orth *************** *** 13,21 **** (*-*-solaris2*): Use regular thread library otherwise. * configure: Regenerate. ! 2010-04-14 Release Manager ! * GCC 4.5.0 released. 2010-04-02 Ralf Wildenhues --- 69,107 ---- (*-*-solaris2*): Use regular thread library otherwise. * configure: Regenerate. ! 2010-05-13 Uros Bizjak ! * tests/leak_test.c (main): Declare as int. Return 0. ! * tests/thread_leak_test.c (main): Ditto. ! * tests/trace_test.c (main): Ditto. ! ! 2010-05-06 Dave Korn ! ! PR target/42811 ! * tests/staticrootstest.c: New test source file. ! * tests/staticrootslib.c: New test library source file. ! * Makefile.am (test_ldadd): New variable. ! (gctest_LDADD): Use it. ! (TESTS): Add leaktest, middletest and staticrootstest. ! (check_PROGRAMS): Likewise. ! (leaktest_SOURCES): New libtool variable definition. ! (leaktest_LDADD): Likewise. ! (leaktest_LDFLAGS): Likewise. ! (leaktest_LINK): Likewise. ! (middletest_SOURCES): Likewise. ! (middletest_LDADD): Likewise. ! (middletest_LDFLAGS): Likewise. ! (middletest_LINK): Likewise. ! (staticrootstest_SOURCES): Likewise. ! (staticrootstest_LDADD): Likewise. ! (staticrootstest_LDFLAGS): Likewise. ! (staticrootstest_LINK): Likewise. ! (check_LTLIBRARIES): Likewise. ! (libstaticrootslib_la_SOURCES): Likewise. ! (libstaticrootslib_la_LIBADD): Likewise. ! (libstaticrootslib_la_LDFLAGS): Likewise. ! (libstaticrootslib_la_DEPENDENCIES): Likewise. ! * Makefile.in: Regenerate. 2010-04-02 Ralf Wildenhues diff -Nrcpad gcc-4.5.2/boehm-gc/Makefile.am gcc-4.6.0/boehm-gc/Makefile.am *** gcc-4.5.2/boehm-gc/Makefile.am Fri Sep 11 05:02:20 2009 --- gcc-4.6.0/boehm-gc/Makefile.am Thu Oct 28 10:58:48 2010 *************** mips_sgi_mach_dep.s mips_ultrix_mach_dep *** 33,61 **** rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \ sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s - extra_ldflags_libgc = @extra_ldflags_libgc@ - # Include THREADLIBS here to ensure that the correct versions of # linuxthread semaphore functions get linked: ! libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS) $(UNWINDLIBS) ! libgcjgc_la_DEPENDENCIES = @addobjs@ libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir) libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS) ! libgcjgc_convenience_la_LIBADD = @addobjs@ ! libgcjgc_convenience_la_DEPENDENCIES = @addobjs@ ! AM_CXXFLAGS = @GC_CFLAGS@ ! AM_CFLAGS = @GC_CFLAGS@ check_PROGRAMS = gctest gctest_SOURCES = tests/test.c ! gctest_LDADD = libgcjgc.la $(THREADLIBS) $(UNWINDLIBS) $(EXTRA_TEST_LIBS) gctest_LDFLAGS = -shared-libgcc gctest_LINK = $(LINK) $(gctest_LDFLAGS) TESTS_ENVIRONMENT = LD_LIBRARY_PATH=../../$(MULTIBUILDTOP)gcc TESTS = gctest ## FIXME: we shouldn't have to do this, but automake forces us to. .s.lo: ## We use -Wp,-P to strip #line directives. Irix `as' chokes on --- 33,90 ---- rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \ sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s # Include THREADLIBS here to ensure that the correct versions of # linuxthread semaphore functions get linked: ! libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS) $(UNWINDLIBS) ! libgcjgc_la_DEPENDENCIES = $(addobjs) libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir) libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS) ! libgcjgc_convenience_la_LIBADD = $(addobjs) ! libgcjgc_convenience_la_DEPENDENCIES = $(addobjs) ! AM_CXXFLAGS = $(GC_CFLAGS) ! AM_CFLAGS = $(GC_CFLAGS) ! AM_LDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) ! override CFLAGS := $(filter-out $(O0_CFLAGS), $(CFLAGS)) $(O0_CFLAGS) ! ! test_ldadd = libgcjgc.la $(THREADLIBS) $(UNWINDLIBS) $(EXTRA_TEST_LIBS) check_PROGRAMS = gctest gctest_SOURCES = tests/test.c ! gctest_LDADD = $(test_ldadd) gctest_LDFLAGS = -shared-libgcc gctest_LINK = $(LINK) $(gctest_LDFLAGS) TESTS_ENVIRONMENT = LD_LIBRARY_PATH=../../$(MULTIBUILDTOP)gcc TESTS = gctest + TESTS += leaktest$(EXEEXT) + check_PROGRAMS += leaktest + leaktest_SOURCES = tests/leak_test.c + leaktest_LDADD = $(test_ldadd) + leaktest_LDFLAGS = -shared-libgcc + leaktest_LINK = $(LINK) $(leaktest_LDFLAGS) + + TESTS += middletest$(EXEEXT) + check_PROGRAMS += middletest + middletest_SOURCES = tests/middle.c + middletest_LDADD = $(test_ldadd) + middletest_LDFLAGS = -shared-libgcc + middletest_LINK = $(LINK) $(middletest_LDFLAGS) + + TESTS += staticrootstest$(EXEEXT) + check_PROGRAMS += staticrootstest + staticrootstest_SOURCES = tests/staticrootstest.c + staticrootstest_LDADD = $(test_ldadd) libstaticrootslib.la + staticrootstest_LDFLAGS = -shared-libgcc + staticrootstest_LINK = $(LINK) $(staticrootstest_LDFLAGS) + check_LTLIBRARIES = libstaticrootslib.la + libstaticrootslib_la_SOURCES = tests/staticrootslib.c + libstaticrootslib_la_LIBADD = libgcjgc_convenience.la + libstaticrootslib_la_LDFLAGS = -version-info 1:2:0 -no-undefined \ + -rpath /nowhere -shared-libgcc + libstaticrootslib_la_DEPENDENCIES = libgcjgc_convenience.la + ## FIXME: we shouldn't have to do this, but automake forces us to. .s.lo: ## We use -Wp,-P to strip #line directives. Irix `as' chokes on *************** TESTS = gctest *** 64,78 **** .S.lo: $(LTCOMPILE) -Wp,-P -x assembler-with-cpp -c $< - ## We have our own definition of LTCOMPILE because we want to use our - ## CFLAGS, not those passed in from the top level make. - LTCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \ - $(CC) $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS) - LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) - LINK = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ - $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LTLDFLAGS) -o $@ - # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and # friends when we are called from the top level Makefile. --- 93,98 ---- diff -Nrcpad gcc-4.5.2/boehm-gc/Makefile.in gcc-4.6.0/boehm-gc/Makefile.in *** gcc-4.5.2/boehm-gc/Makefile.in Thu Dec 16 12:49:03 2010 --- gcc-4.6.0/boehm-gc/Makefile.in Fri Mar 25 17:07:00 2011 *************** POST_UNINSTALL = : *** 35,42 **** build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ ! check_PROGRAMS = gctest$(EXEEXT) ! TESTS = gctest$(EXEEXT) subdir = . DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ --- 35,44 ---- build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ ! check_PROGRAMS = gctest$(EXEEXT) leaktest$(EXEEXT) middletest$(EXEEXT) \ ! staticrootstest$(EXEEXT) ! TESTS = gctest$(EXEEXT) leaktest$(EXEEXT) middletest$(EXEEXT) \ ! staticrootstest$(EXEEXT) subdir = . DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ *************** am_libgcjgc_convenience_la_OBJECTS = $(a *** 81,101 **** libgcjgc_convenience_la_OBJECTS = \ $(am_libgcjgc_convenience_la_OBJECTS) am__dirstamp = $(am__leading_dot)dirstamp am_gctest_OBJECTS = tests/test.$(OBJEXT) gctest_OBJECTS = $(am_gctest_OBJECTS) ! gctest_DEPENDENCIES = libgcjgc.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) LTCCASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) SOURCES = $(libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) \ ! $(gctest_SOURCES) MULTISRCTOP = MULTIBUILDTOP = MULTIDIRS = --- 83,127 ---- libgcjgc_convenience_la_OBJECTS = \ $(am_libgcjgc_convenience_la_OBJECTS) am__dirstamp = $(am__leading_dot)dirstamp + am_libstaticrootslib_la_OBJECTS = tests/staticrootslib.lo + libstaticrootslib_la_OBJECTS = $(am_libstaticrootslib_la_OBJECTS) + libstaticrootslib_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libstaticrootslib_la_LDFLAGS) $(LDFLAGS) -o $@ am_gctest_OBJECTS = tests/test.$(OBJEXT) gctest_OBJECTS = $(am_gctest_OBJECTS) ! am__DEPENDENCIES_2 = libgcjgc.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) + gctest_DEPENDENCIES = $(am__DEPENDENCIES_2) + am_leaktest_OBJECTS = tests/leak_test.$(OBJEXT) + leaktest_OBJECTS = $(am_leaktest_OBJECTS) + leaktest_DEPENDENCIES = $(am__DEPENDENCIES_2) + am_middletest_OBJECTS = tests/middle.$(OBJEXT) + middletest_OBJECTS = $(am_middletest_OBJECTS) + middletest_DEPENDENCIES = $(am__DEPENDENCIES_2) + am_staticrootstest_OBJECTS = tests/staticrootstest.$(OBJEXT) + staticrootstest_OBJECTS = $(am_staticrootstest_OBJECTS) + staticrootstest_DEPENDENCIES = $(am__DEPENDENCIES_2) \ + libstaticrootslib.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) + LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) LTCCASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) SOURCES = $(libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) \ ! $(libstaticrootslib_la_SOURCES) $(gctest_SOURCES) \ ! $(leaktest_SOURCES) $(middletest_SOURCES) \ ! $(staticrootstest_SOURCES) MULTISRCTOP = MULTIBUILDTOP = MULTIDIRS = *************** LTLIBOBJS = @LTLIBOBJS@ *** 168,176 **** MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ - MY_CFLAGS = @MY_CFLAGS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ --- 194,202 ---- MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ + O0_CFLAGS = @O0_CFLAGS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ *************** sparc_sunos4_mach_dep.s ia64_save_regs_i *** 281,307 **** # Include THREADLIBS here to ensure that the correct versions of # linuxthread semaphore functions get linked: ! libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS) $(UNWINDLIBS) ! libgcjgc_la_DEPENDENCIES = @addobjs@ libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir) libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS) ! libgcjgc_convenience_la_LIBADD = @addobjs@ ! libgcjgc_convenience_la_DEPENDENCIES = @addobjs@ ! AM_CXXFLAGS = @GC_CFLAGS@ ! AM_CFLAGS = @GC_CFLAGS@ gctest_SOURCES = tests/test.c ! gctest_LDADD = libgcjgc.la $(THREADLIBS) $(UNWINDLIBS) $(EXTRA_TEST_LIBS) gctest_LDFLAGS = -shared-libgcc gctest_LINK = $(LINK) $(gctest_LDFLAGS) TESTS_ENVIRONMENT = LD_LIBRARY_PATH=../../$(MULTIBUILDTOP)gcc ! LTCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \ ! $(CC) $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) \ ! $(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS) ! ! LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) ! LINK = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ ! $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LTLDFLAGS) -o $@ # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and --- 307,346 ---- # Include THREADLIBS here to ensure that the correct versions of # linuxthread semaphore functions get linked: ! libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS) $(UNWINDLIBS) ! libgcjgc_la_DEPENDENCIES = $(addobjs) libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir) libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS) ! libgcjgc_convenience_la_LIBADD = $(addobjs) ! libgcjgc_convenience_la_DEPENDENCIES = $(addobjs) ! AM_CXXFLAGS = $(GC_CFLAGS) ! AM_CFLAGS = $(GC_CFLAGS) ! AM_LDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) ! test_ldadd = libgcjgc.la $(THREADLIBS) $(UNWINDLIBS) $(EXTRA_TEST_LIBS) gctest_SOURCES = tests/test.c ! gctest_LDADD = $(test_ldadd) gctest_LDFLAGS = -shared-libgcc gctest_LINK = $(LINK) $(gctest_LDFLAGS) TESTS_ENVIRONMENT = LD_LIBRARY_PATH=../../$(MULTIBUILDTOP)gcc ! leaktest_SOURCES = tests/leak_test.c ! leaktest_LDADD = $(test_ldadd) ! leaktest_LDFLAGS = -shared-libgcc ! leaktest_LINK = $(LINK) $(leaktest_LDFLAGS) ! middletest_SOURCES = tests/middle.c ! middletest_LDADD = $(test_ldadd) ! middletest_LDFLAGS = -shared-libgcc ! middletest_LINK = $(LINK) $(middletest_LDFLAGS) ! staticrootstest_SOURCES = tests/staticrootstest.c ! staticrootstest_LDADD = $(test_ldadd) libstaticrootslib.la ! staticrootstest_LDFLAGS = -shared-libgcc ! staticrootstest_LINK = $(LINK) $(staticrootstest_LDFLAGS) ! check_LTLIBRARIES = libstaticrootslib.la ! libstaticrootslib_la_SOURCES = tests/staticrootslib.c ! libstaticrootslib_la_LIBADD = libgcjgc_convenience.la ! libstaticrootslib_la_LDFLAGS = -version-info 1:2:0 -no-undefined \ ! -rpath /nowhere -shared-libgcc + libstaticrootslib_la_DEPENDENCIES = libgcjgc_convenience.la # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and *************** $(am__aclocal_m4_deps): *** 387,392 **** --- 426,440 ---- threads.mk: $(top_builddir)/config.status $(srcdir)/threads.mk.in cd $(top_builddir) && $(SHELL) ./config.status $@ + clean-checkLTLIBRARIES: + -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) + @list='$(check_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done + clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ *************** libgcjgc.la: $(libgcjgc_la_OBJECTS) $(li *** 399,404 **** --- 447,458 ---- $(libgcjgc_la_LINK) $(libgcjgc_la_OBJECTS) $(libgcjgc_la_LIBADD) $(LIBS) libgcjgc_convenience.la: $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_DEPENDENCIES) $(LINK) $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_LIBADD) $(LIBS) + tests/$(am__dirstamp): + @$(MKDIR_P) tests + @: > tests/$(am__dirstamp) + tests/staticrootslib.lo: tests/$(am__dirstamp) + libstaticrootslib.la: $(libstaticrootslib_la_OBJECTS) $(libstaticrootslib_la_DEPENDENCIES) + $(libstaticrootslib_la_LINK) $(libstaticrootslib_la_OBJECTS) $(libstaticrootslib_la_LIBADD) $(LIBS) clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ *************** clean-checkPROGRAMS: *** 408,423 **** list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list - tests/$(am__dirstamp): - @$(MKDIR_P) tests - @: > tests/$(am__dirstamp) tests/test.$(OBJEXT): tests/$(am__dirstamp) gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES) @rm -f gctest$(EXEEXT) $(gctest_LINK) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f tests/test.$(OBJEXT) distclean-compile: --- 462,491 ---- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list tests/test.$(OBJEXT): tests/$(am__dirstamp) gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES) @rm -f gctest$(EXEEXT) $(gctest_LINK) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS) + tests/leak_test.$(OBJEXT): tests/$(am__dirstamp) + leaktest$(EXEEXT): $(leaktest_OBJECTS) $(leaktest_DEPENDENCIES) + @rm -f leaktest$(EXEEXT) + $(leaktest_LINK) $(leaktest_OBJECTS) $(leaktest_LDADD) $(LIBS) + tests/middle.$(OBJEXT): tests/$(am__dirstamp) + middletest$(EXEEXT): $(middletest_OBJECTS) $(middletest_DEPENDENCIES) + @rm -f middletest$(EXEEXT) + $(middletest_LINK) $(middletest_OBJECTS) $(middletest_LDADD) $(LIBS) + tests/staticrootstest.$(OBJEXT): tests/$(am__dirstamp) + staticrootstest$(EXEEXT): $(staticrootstest_OBJECTS) $(staticrootstest_DEPENDENCIES) + @rm -f staticrootstest$(EXEEXT) + $(staticrootstest_LINK) $(staticrootstest_OBJECTS) $(staticrootstest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f tests/leak_test.$(OBJEXT) + -rm -f tests/middle.$(OBJEXT) + -rm -f tests/staticrootslib.$(OBJEXT) + -rm -f tests/staticrootslib.lo + -rm -f tests/staticrootstest.$(OBJEXT) -rm -f tests/test.$(OBJEXT) distclean-compile: *************** mostlyclean-libtool: *** 443,448 **** --- 511,517 ---- clean-libtool: -rm -rf .libs _libs + -rm -rf tests/.libs tests/_libs distclean-libtool: -rm -f libtool config.lt *************** check-TESTS: $(TESTS) *** 690,696 **** echo "$$dashes$$std"; \ test "$$failed" -eq 0; \ else :; fi ! check-am: $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile $(LTLIBRARIES) all-multi --- 759,765 ---- echo "$$dashes$$std"; \ test "$$failed" -eq 0; \ else :; fi ! check-am: $(check_LTLIBRARIES) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile $(LTLIBRARIES) all-multi *************** maintainer-clean-generic: *** 724,731 **** @echo "it deletes files that may require special tools to rebuild." clean: clean-multi clean-recursive ! clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ ! clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-multi distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) --- 793,800 ---- @echo "it deletes files that may require special tools to rebuild." clean: clean-multi clean-recursive ! clean-am: clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \ ! clean-libtool clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-multi distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) *************** uninstall-am: *** 801,809 **** .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-multi am--refresh check check-TESTS check-am \ ! clean clean-checkPROGRAMS clean-generic clean-libtool \ ! clean-multi clean-noinstLTLIBRARIES ctags ctags-recursive \ ! distclean distclean-compile distclean-generic \ distclean-libtool distclean-multi distclean-tags dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ --- 870,878 ---- .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-multi am--refresh check check-TESTS check-am \ ! clean clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \ ! clean-libtool clean-multi clean-noinstLTLIBRARIES ctags \ ! ctags-recursive distclean distclean-compile distclean-generic \ distclean-libtool distclean-multi distclean-tags dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ *************** uninstall-am: *** 816,821 **** --- 885,891 ---- mostlyclean-generic mostlyclean-libtool mostlyclean-multi pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am + override CFLAGS := $(filter-out $(O0_CFLAGS), $(CFLAGS)) $(O0_CFLAGS) .s.lo: $(LTCOMPILE) -Wp,-P -x assembler-with-cpp -c $< diff -Nrcpad gcc-4.5.2/boehm-gc/configure gcc-4.6.0/boehm-gc/configure *** gcc-4.5.2/boehm-gc/configure Thu Dec 16 12:49:03 2010 --- gcc-4.6.0/boehm-gc/configure Fri Mar 25 17:07:00 2011 *************** LTLIBOBJS *** 604,610 **** LIBOBJS toolexeclibdir toolexecdir ! MY_CFLAGS addtests addlibs addincludes --- 604,610 ---- LIBOBJS toolexeclibdir toolexecdir ! O0_CFLAGS addtests addlibs addincludes *************** if test -z "$aix_libpath"; then aix_libp *** 9592,9601 **** hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little --- 9592,9597 ---- *************** dgux*) *** 10517,10526 **** shlibpath_var=LD_LIBRARY_PATH ;; - freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. --- 10513,10518 ---- *************** else *** 11398,11404 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11401 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 11390,11396 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11393 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 11504,11510 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11507 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 11496,11502 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11499 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** dgux*) *** 14204,14213 **** shlibpath_var=LD_LIBRARY_PATH ;; - freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. --- 14196,14201 ---- *************** $as_echo "#define GC_SOLARIS_PTHREADS 1" *** 14910,14916 **** # The alternate thread library was only introduced in Solaris 8 and # became the default in Solaris 9, so no need for the special code # above otherwise. ! THREADLIBS=-lpthread ;; *-*-irix*) --- 14898,14906 ---- # The alternate thread library was only introduced in Solaris 8 and # became the default in Solaris 9, so no need for the special code # above otherwise. ! # nanosleep, sched_yield, and sem_* only live in librt before ! # Solaris 11. ! THREADLIBS="-lpthread -lrt" ;; *-*-irix*) *************** fi *** 15086,15094 **** *) ;; esac - # We never want libdl on darwin. It is a fake libdl that just ends up making - # dyld calls anyway case "$host" in *-*-darwin*) ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 --- 15076,15087 ---- *) ;; esac case "$host" in + # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64 + # and unnecessary everywhere. + mips-sgi-irix6*) ;; + # We never want libdl on darwin. It is a fake libdl that just ends up making + # dyld calls anyway *-*-darwin*) ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 *************** addobjs="$addobjs $machdep" *** 15332,15390 **** # # Check for AViiON Machines running DGUX # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if host is AViiON running DGUX" >&5 - $as_echo_n "checking if host is AViiON running DGUX... " >&6; } ac_is_dgux=no ac_fn_c_check_header_mongrel "$LINENO" "sys/dg_sys_info.h" "ac_cv_header_sys_dg_sys_info_h" "$ac_includes_default" if test "x$ac_cv_header_sys_dg_sys_info_h" = x""yes; then : ! ac_is_dgux=yes; fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_is_dgux" >&5 $as_echo "$ac_is_dgux" >&6; } ## :GOTCHA: we do not check anything but sys/dg_sys_info.h if test $ac_is_dgux = yes; then if test "$enable_full_debug" = "yes"; then ! CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" ! CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" ! else ! CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" ! CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" fi ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Solaris gcc optimization fix is necessary" >&5 ! $as_echo_n "checking whether Solaris gcc optimization fix is necessary... " >&6; } case "$host" in ! *aix*) ! if test "$GCC" = yes; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! new_CFLAGS= ! for i in $CFLAGS; do ! case "$i" in ! -O*) ! ;; ! *) ! new_CFLAGS="$new_CFLAGS $i" ! ;; ! esac ! done ! CFLAGS="$new_CFLAGS" ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ! fi ! ;; ! *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ;; ! esac ! ! MY_CFLAGS="$CFLAGS" --- 15325,15364 ---- # # Check for AViiON Machines running DGUX # ac_is_dgux=no ac_fn_c_check_header_mongrel "$LINENO" "sys/dg_sys_info.h" "ac_cv_header_sys_dg_sys_info_h" "$ac_includes_default" if test "x$ac_cv_header_sys_dg_sys_info_h" = x""yes; then : ! ac_is_dgux=yes fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if host is AViiON running DGUX" >&5 + $as_echo_n "checking if host is AViiON running DGUX... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_is_dgux" >&5 $as_echo "$ac_is_dgux" >&6; } ## :GOTCHA: we do not check anything but sys/dg_sys_info.h if test $ac_is_dgux = yes; then if test "$enable_full_debug" = "yes"; then ! GC_CFLAGS="$GC_CFLAGS -mstandard" fi ! GC_CFLAGS="$GC_CFLAGS -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend" fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GCC optimization should be disabled" >&5 ! $as_echo_n "checking whether GCC optimization should be disabled... " >&6; } ! O0_CFLAGS= case "$host" in ! *aix*) test "$GCC" = yes && O0_CFLAGS=-O0 ;; ! *) ;; ! esac ! if test x"$O0_CFLAGS" != x; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ! fi diff -Nrcpad gcc-4.5.2/boehm-gc/configure.ac gcc-4.6.0/boehm-gc/configure.ac *** gcc-4.5.2/boehm-gc/configure.ac Tue Jun 15 13:52:58 2010 --- gcc-4.6.0/boehm-gc/configure.ac Wed Feb 2 13:53:56 2011 *************** *** 1,4 **** ! # Copyright (c) 1999, 2000, 2001, 2002, 2003, 2006, 2010 by Red Hat, Inc. # All rights reserved. # Copyright 2004 Nathanael Nerode # --- 1,4 ---- ! # Copyright (c) 1999, 2000, 2001, 2002, 2003, 2006, 2010, 2011 by Red Hat, Inc. # All rights reserved. # Copyright 2004 Nathanael Nerode # *************** case "$THREADS" in *** 193,199 **** # The alternate thread library was only introduced in Solaris 8 and # became the default in Solaris 9, so no need for the special code # above otherwise. ! THREADLIBS=-lpthread ;; *-*-irix*) AC_DEFINE(GC_IRIX_THREADS,1,[support for Irix pthreads]) --- 193,201 ---- # The alternate thread library was only introduced in Solaris 8 and # became the default in Solaris 9, so no need for the special code # above otherwise. ! # nanosleep, sched_yield, and sem_* only live in librt before ! # Solaris 11. ! THREADLIBS="-lpthread -lrt" ;; *-*-irix*) AC_DEFINE(GC_IRIX_THREADS,1,[support for Irix pthreads]) *************** case "$host" in *** 310,318 **** *) ;; esac - # We never want libdl on darwin. It is a fake libdl that just ends up making - # dyld calls anyway case "$host" in *-*-darwin*) ;; *) AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl") --- 312,323 ---- *) ;; esac case "$host" in + # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64 + # and unnecessary everywhere. + mips-sgi-irix6*) ;; + # We never want libdl on darwin. It is a fake libdl that just ends up making + # dyld calls anyway *-*-darwin*) ;; *) AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl") *************** AC_SUBST(addtests) *** 453,506 **** # # Check for AViiON Machines running DGUX # - AC_MSG_CHECKING(if host is AViiON running DGUX) ac_is_dgux=no ! AC_CHECK_HEADER(sys/dg_sys_info.h, ! [ac_is_dgux=yes;]) AC_MSG_RESULT($ac_is_dgux) ## :GOTCHA: we do not check anything but sys/dg_sys_info.h if test $ac_is_dgux = yes; then if test "$enable_full_debug" = "yes"; then ! CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" ! CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" ! else ! CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" ! CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" fi ! AC_SUBST(CFLAGS) ! AC_SUBST(CXXFLAGS) fi dnl As of 4.13a2, the collector will not properly work on Solaris when dnl built with gcc and -O. So we remove -O in the appropriate case. dnl Not needed anymore on Solaris. ! AC_MSG_CHECKING(whether Solaris gcc optimization fix is necessary) case "$host" in ! *aix*) ! if test "$GCC" = yes; then ! AC_MSG_RESULT(yes) ! new_CFLAGS= ! for i in $CFLAGS; do ! case "$i" in ! -O*) ! ;; ! *) ! new_CFLAGS="$new_CFLAGS $i" ! ;; ! esac ! done ! CFLAGS="$new_CFLAGS" ! else ! AC_MSG_RESULT(no) ! fi ! ;; ! *) AC_MSG_RESULT(no) ;; esac ! ! dnl We need to override the top-level CFLAGS. This is how we do it. ! MY_CFLAGS="$CFLAGS" ! AC_SUBST(MY_CFLAGS) dnl Include defines that have become de facto standard. dnl ALL_INTERIOR_POINTERS can be overridden in startup code. --- 458,491 ---- # # Check for AViiON Machines running DGUX # ac_is_dgux=no ! AC_CHECK_HEADER(sys/dg_sys_info.h, [ac_is_dgux=yes]) + AC_MSG_CHECKING(if host is AViiON running DGUX) AC_MSG_RESULT($ac_is_dgux) ## :GOTCHA: we do not check anything but sys/dg_sys_info.h if test $ac_is_dgux = yes; then if test "$enable_full_debug" = "yes"; then ! GC_CFLAGS="$GC_CFLAGS -mstandard" fi ! GC_CFLAGS="$GC_CFLAGS -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend" fi dnl As of 4.13a2, the collector will not properly work on Solaris when dnl built with gcc and -O. So we remove -O in the appropriate case. dnl Not needed anymore on Solaris. ! AC_MSG_CHECKING([whether GCC optimization should be disabled]) ! O0_CFLAGS= case "$host" in ! *aix*) test "$GCC" = yes && O0_CFLAGS=-O0 ;; ! *) ;; esac ! if test x"$O0_CFLAGS" != x; then ! AC_MSG_RESULT(yes) ! else ! AC_MSG_RESULT(no) ! fi ! AC_SUBST([O0_CFLAGS]) dnl Include defines that have become de facto standard. dnl ALL_INTERIOR_POINTERS can be overridden in startup code. diff -Nrcpad gcc-4.5.2/boehm-gc/dyn_load.c gcc-4.6.0/boehm-gc/dyn_load.c *** gcc-4.5.2/boehm-gc/dyn_load.c Sun Mar 21 19:34:19 2010 --- gcc-4.6.0/boehm-gc/dyn_load.c Mon Nov 29 14:58:16 2010 *************** *** 122,128 **** # endif # endif ! /* An user-supplied routine that is called to dtermine if a DSO must be scanned by the gc. */ static int (*GC_has_static_roots)(const char *, void *, size_t); /* Register the routine. */ --- 122,128 ---- # endif # endif ! /* An user-supplied routine that is called to determine if a DSO must be scanned by the gc. */ static int (*GC_has_static_roots)(const char *, void *, size_t); /* Register the routine. */ *************** void GC_register_dynamic_libraries() *** 1157,1228 **** /*#define DARWIN_DEBUG*/ const static struct { const char *seg; const char *sect; } GC_dyld_sections[] = { { SEG_DATA, SECT_DATA }, { SEG_DATA, SECT_BSS }, ! { SEG_DATA, SECT_COMMON } }; ! #ifdef DARWIN_DEBUG ! static const char *GC_dyld_name_for_hdr(const struct GC_MACH_HEADER *hdr) { ! unsigned long i,c; ! c = _dyld_image_count(); ! for(i=0;isize == 0) continue; ! start = slide + sec->addr; ! end = start + sec->size; ! # ifdef DARWIN_DEBUG ! GC_printf4("Adding section at %p-%p (%lu bytes) from image %s\n", ! start,end,sec->size,GC_dyld_name_for_hdr(hdr)); ! # endif ! GC_add_roots((char*)start,(char*)end); } ! # ifdef DARWIN_DEBUG ! GC_print_static_roots(); ! # endif } /* This should never be called by a thread holding the lock */ ! static void GC_dyld_image_remove(const struct GC_MACH_HEADER *hdr, ! intptr_t slide) { ! unsigned long start,end,i; ! const struct GC_MACH_SECTION *sec; ! for(i=0;isize == 0) continue; ! start = slide + sec->addr; ! end = start + sec->size; ! # ifdef DARWIN_DEBUG ! GC_printf4("Removing section at %p-%p (%lu bytes) from image %s\n", ! start,end,sec->size,GC_dyld_name_for_hdr(hdr)); ! # endif ! GC_remove_roots((char*)start,(char*)end); } ! # ifdef DARWIN_DEBUG ! GC_print_static_roots(); ! # endif } ! void GC_register_dynamic_libraries() { /* Currently does nothing. The callbacks are setup by GC_init_dyld() The dyld library takes it from there. */ } --- 1157,1323 ---- /*#define DARWIN_DEBUG*/ + /* Writeable sections generally available on Darwin. */ const static struct { const char *seg; const char *sect; } GC_dyld_sections[] = { { SEG_DATA, SECT_DATA }, + /* Used by FSF GCC, but not by OSX system tools, so far. */ + { SEG_DATA, "__static_data" }, { SEG_DATA, SECT_BSS }, ! { SEG_DATA, SECT_COMMON }, ! /* FSF GCC - zero-sized object sections for targets supporting section ! anchors. */ ! { SEG_DATA, "__zobj_data" }, ! { SEG_DATA, "__zobj_bss" } }; ! ! /* Additional writeable sections: ! ! GCC on Darwin constucts aligned sections "on demand", where the alignment ! size is embedded in the section name. Furthermore, there are distintions ! between sections containing private vs. public symbols. ! ! It also constructs sections specifically for zero-sized objects, when the ! target supports section anchors. */ ! const char * GC_dyld_add_sect_fmts[] = ! { ! "__bss%u", ! "__pu_bss%u", ! "__zo_bss%u", ! "__zo_pu_bss%u", ! NULL ! } ; ! ! /* Currently, mach-o will allow up to a max of 2^15 alignment in an ! object file. */ ! #define L2_MAX_OFILE_ALIGNMENT 15 ! ! #ifdef DARWIN_DEBUG ! static const char * ! GC_dyld_name_for_hdr (const struct GC_MACH_HEADER *hdr) ! { ! unsigned long i,c; ! c = _dyld_image_count(); ! for (i=0;isize == 0) ! continue; ! ! start = slide + sec->addr; ! end = start + sec->size; ! ! # ifdef DARWIN_DEBUG ! GC_printf5("Adding section __DATA,%s at %p-%p (%lu bytes) from image %s\n", ! GC_dyld_sections[i].sect, start,end,sec->size,GC_dyld_name_for_hdr(hdr)); ! # endif ! GC_add_roots((char*)start,(char*)end); } ! ! /* Sections constructed on demand. */ ! j=0; ! while ((fmt = GC_dyld_add_sect_fmts[j]) != NULL) ! { ! /* Add our manufactured aligned BSS sections. */ ! for (i=0; i<=L2_MAX_OFILE_ALIGNMENT; i++) ! { ! snprintf (secnam, 16, fmt, (unsigned)i); ! sec = GC_GETSECTBYNAME (hdr, SEG_DATA, secnam); ! if (sec == NULL || sec->size == 0) ! continue; ! start = slide + sec->addr; ! end = start + sec->size; ! # ifdef DARWIN_DEBUG ! GC_printf5("Adding section __DATA,%s at %p-%p (%lu bytes) from image %s\n", ! secnam, start,end,sec->size,GC_dyld_name_for_hdr(hdr)); ! # endif ! GC_add_roots((char*)start,(char*)end); ! } ! j++; ! } ! # ifdef DARWIN_DEBUG ! GC_print_static_roots(); ! # endif } /* This should never be called by a thread holding the lock */ ! static void ! GC_dyld_image_remove (const struct GC_MACH_HEADER *hdr, intptr_t slide) ! { ! char secnam[16]; ! unsigned long start,end,i,j; ! const struct GC_MACH_SECTION *sec; ! const char *fmt; ! ! for (i=0; isize == 0) ! continue; ! ! start = slide + sec->addr; ! end = start + sec->size; ! # ifdef DARWIN_DEBUG ! GC_printf5("Removing section __DATA,%s at %p-%p (%lu bytes) from image %s\n", ! GC_dyld_sections[i].sect, start,end,sec->size,GC_dyld_name_for_hdr(hdr)); ! # endif ! GC_remove_roots((char*)start,(char*)end); } ! ! /* Remove our on-demand sections. */ ! j=0; ! while ((fmt = GC_dyld_add_sect_fmts[j]) != NULL) ! { ! for (i=0; i<=L2_MAX_OFILE_ALIGNMENT; i++) ! { ! snprintf (secnam, 16, fmt, (unsigned)i); ! sec = GC_GETSECTBYNAME (hdr, SEG_DATA, secnam); ! if (sec == NULL || sec->size == 0) ! continue; ! start = slide + sec->addr; ! end = start + sec->size; ! # ifdef DARWIN_DEBUG ! GC_printf5("Removing section __DATA,%s at %p-%p (%lu bytes) from image %s\n", ! secnam, start,end,sec->size,GC_dyld_name_for_hdr(hdr)); ! # endif ! GC_remove_roots((char*)start,(char*)end); ! } ! j++; ! } ! ! # ifdef DARWIN_DEBUG ! GC_print_static_roots(); ! # endif } ! void ! GC_register_dynamic_libraries() ! { /* Currently does nothing. The callbacks are setup by GC_init_dyld() The dyld library takes it from there. */ } *************** void GC_register_dynamic_libraries() { *** 1233,1247 **** This should be called BEFORE any thread in created and WITHOUT the allocation lock held. */ ! void GC_init_dyld() { static GC_bool initialized = FALSE; char *bind_fully_env = NULL; ! if(initialized) return; ! # ifdef DARWIN_DEBUG GC_printf0("Registering dyld callbacks...\n"); ! # endif /* Apple's Documentation: When you call _dyld_register_func_for_add_image, the dynamic linker runtime --- 1328,1345 ---- This should be called BEFORE any thread in created and WITHOUT the allocation lock held. */ ! void ! GC_init_dyld() ! { static GC_bool initialized = FALSE; char *bind_fully_env = NULL; ! if(initialized) ! return; ! # ifdef DARWIN_DEBUG GC_printf0("Registering dyld callbacks...\n"); ! # endif /* Apple's Documentation: When you call _dyld_register_func_for_add_image, the dynamic linker runtime *************** void GC_init_dyld() { *** 1254,1280 **** linked in the future */ ! _dyld_register_func_for_add_image(GC_dyld_image_add); ! _dyld_register_func_for_remove_image(GC_dyld_image_remove); ! /* Set this early to avoid reentrancy issues. */ ! initialized = TRUE; ! bind_fully_env = getenv("DYLD_BIND_AT_LAUNCH"); ! if (bind_fully_env == NULL) { ! # ifdef DARWIN_DEBUG GC_printf0("Forcing full bind of GC code...\n"); ! # endif ! if(!_dyld_bind_fully_image_containing_address((unsigned long*)GC_malloc)) ! GC_abort("_dyld_bind_fully_image_containing_address failed"); } - } #define HAVE_REGISTER_MAIN_STATIC_DATA ! GC_bool GC_register_main_static_data() { /* Already done through dyld callbacks */ return FALSE; --- 1352,1379 ---- linked in the future */ ! _dyld_register_func_for_add_image(GC_dyld_image_add); ! _dyld_register_func_for_remove_image(GC_dyld_image_remove); ! /* Set this early to avoid reentrancy issues. */ ! initialized = TRUE; ! bind_fully_env = getenv("DYLD_BIND_AT_LAUNCH"); ! if (bind_fully_env == NULL) ! { ! # ifdef DARWIN_DEBUG GC_printf0("Forcing full bind of GC code...\n"); ! # endif ! if (!_dyld_bind_fully_image_containing_address((unsigned long*)GC_malloc)) ! GC_abort("_dyld_bind_fully_image_containing_address failed"); } } #define HAVE_REGISTER_MAIN_STATIC_DATA ! GC_bool ! GC_register_main_static_data (void) { /* Already done through dyld callbacks */ return FALSE; diff -Nrcpad gcc-4.5.2/boehm-gc/include/Makefile.in gcc-4.6.0/boehm-gc/include/Makefile.in *** gcc-4.5.2/boehm-gc/include/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/boehm-gc/include/Makefile.in Thu Oct 28 10:58:48 2010 *************** LTLIBOBJS = @LTLIBOBJS@ *** 110,118 **** MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ - MY_CFLAGS = @MY_CFLAGS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ --- 110,118 ---- MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ + O0_CFLAGS = @O0_CFLAGS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ diff -Nrcpad gcc-4.5.2/boehm-gc/powerpc_darwin_mach_dep.s gcc-4.6.0/boehm-gc/powerpc_darwin_mach_dep.s *** gcc-4.5.2/boehm-gc/powerpc_darwin_mach_dep.s Wed Jan 25 03:03:14 2006 --- gcc-4.6.0/boehm-gc/powerpc_darwin_mach_dep.s Fri Dec 10 10:09:10 2010 *************** *** 4,14 **** #define MODE_CHOICE(x, y) x #endif ! #define lgu MODE_CHOICE(lwzu, ldu) ! #define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */ ! #define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */ ; GC_push_regs function. Under some optimization levels GCC will clobber ; some of the non-volatile registers before we get a chance to save them --- 4,40 ---- #define MODE_CHOICE(x, y) x #endif ! #define machine_choice MODE_CHOICE(ppc7400,ppc64) ! ; Define some pseudo-opcodes for size-independent load & store of GPRs ... ! #define lgu MODE_CHOICE(lwzu, ldu) ! #define lg MODE_CHOICE(lwz,ld) ! #define sg MODE_CHOICE(stw,std) ! #define sgu MODE_CHOICE(stwu,stdu) ! ; ... and the size of GPRs and their storage indicator. ! #define GPR_BYTES MODE_CHOICE(4,8) ! #define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */ ! #define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */ ! ! ; From the ABI doc: "Mac OS X ABI Function Call Guide" Version 2009-02-04. ! #define LINKAGE_SIZE MODE_CHOICE(24,48) ! #define PARAM_AREA MODE_CHOICE(32,64) ! #define SAVED_LR_OFFSET MODE_CHOICE(8,16) /* save position for lr */ ! ! ; The whole stack frame **MUST** be 16byte-aligned. ! #define SAVE_SIZE (LINKAGE_SIZE+PARAM_AREA) ! ! #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 ! ; We no longer need the pic symbol stub for Darwin >= 9. ! #define BLGCP1 _GC_push_one ! #undef WANT_STUB ! #else ! #define BLGCP1 L_GC_push_one$stub ! #define WANT_STUB ! #endif ! ! .machine machine_choice ; GC_push_regs function. Under some optimization levels GCC will clobber ; some of the non-volatile registers before we get a chance to save them *************** _GC_push_regs: *** 21,81 **** ; Prolog mflr r0 ! stw r0,8(r1) ! stwu r1,-80(r1) ! ; Push r13-r31 mr r3,r13 ! bl L_GC_push_one$stub mr r3,r14 ! bl L_GC_push_one$stub mr r3,r15 ! bl L_GC_push_one$stub mr r3,r16 ! bl L_GC_push_one$stub mr r3,r17 ! bl L_GC_push_one$stub mr r3,r18 ! bl L_GC_push_one$stub mr r3,r19 ! bl L_GC_push_one$stub mr r3,r20 ! bl L_GC_push_one$stub mr r3,r21 ! bl L_GC_push_one$stub mr r3,r22 ! bl L_GC_push_one$stub mr r3,r23 ! bl L_GC_push_one$stub mr r3,r24 ! bl L_GC_push_one$stub mr r3,r25 ! bl L_GC_push_one$stub mr r3,r26 ! bl L_GC_push_one$stub mr r3,r27 ! bl L_GC_push_one$stub mr r3,r28 ! bl L_GC_push_one$stub mr r3,r29 ! bl L_GC_push_one$stub mr r3,r30 ! bl L_GC_push_one$stub mr r3,r31 ! bl L_GC_push_one$stub ! ; ! lwz r0,88(r1) ! addi r1,r1,80 mtlr r0 ! ; Return blr ! ; PIC stuff, generated by GCC ! .data ! .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 .align LOG2_GPR_BYTES L_GC_push_one$stub: .indirect_symbol _GC_push_one --- 47,162 ---- ; Prolog mflr r0 ! sg r0,SAVED_LR_OFFSET(r1) ! sgu r1,-SAVE_SIZE(r1) ! L_body: ! ; 'Push' r13-r31 mr r3,r13 ! bl BLGCP1 mr r3,r14 ! bl BLGCP1 mr r3,r15 ! bl BLGCP1 mr r3,r16 ! bl BLGCP1 mr r3,r17 ! bl BLGCP1 mr r3,r18 ! bl BLGCP1 mr r3,r19 ! bl BLGCP1 mr r3,r20 ! bl BLGCP1 mr r3,r21 ! bl BLGCP1 mr r3,r22 ! bl BLGCP1 mr r3,r23 ! bl BLGCP1 mr r3,r24 ! bl BLGCP1 mr r3,r25 ! bl BLGCP1 mr r3,r26 ! bl BLGCP1 mr r3,r27 ! bl BLGCP1 mr r3,r28 ! bl BLGCP1 mr r3,r29 ! bl BLGCP1 mr r3,r30 ! bl BLGCP1 mr r3,r31 ! bl BLGCP1 ! L_epilog: ! ; Epilog ! lg r0,SAVE_SIZE+SAVED_LR_OFFSET(r1) ! addi r1,r1,SAVE_SIZE mtlr r0 ! ; Return blr + LFE0: ! ; eh frames, for those that want 'em. ! #define EH_DATA_ALIGN_FACT MODE_CHOICE(0x7c,0x78) ! #define EH_FRAME_OFFSET MODE_CHOICE(0x40,0x70) ! ! .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support ! EH_frame1: ! .set L$set$0,LECIE1-LSCIE1 ! .long L$set$0 ; Length of Common Information Entry ! LSCIE1: ! .long 0 ; CIE Identifier Tag ! .byte 0x1 ; CIE Version ! .ascii "zR\0" ; CIE Augmentation ! .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor ! .byte EH_DATA_ALIGN_FACT ; sleb128 -4/-8; CIE Data Alignment Factor ! .byte 0x41 ; CIE RA Column ! .byte 0x1 ; uleb128 0x1; Augmentation size ! .byte 0x10 ; FDE Encoding (pcrel) ! .byte 0xc ; DW_CFA_def_cfa ! .byte 0x1 ; uleb128 0x1 ! .byte 0 ; uleb128 0 ! .align LOG2_GPR_BYTES ! LECIE1: ! ! .globl _GC_push_regs.eh ! _GC_push_regs.eh: ! LSFDE1: ! .set L$set$1,LEFDE1-LASFDE1 ! .long L$set$1 ; FDE Length ! LASFDE1: ! .long LASFDE1-EH_frame1 ; FDE CIE offset ! .g_long _GC_push_regs-. ; FDE initial location ! .set L$set$2,LFE0-_GC_push_regs ! .g_long L$set$2 ; FDE address range ! .byte 0 ; uleb128 0; Augmentation size ! .byte 0x4 ; DW_CFA_advance_loc4 ! .set L$set$3,L_body-_GC_push_regs ! .long L$set$3 ! .byte 0xe ; DW_CFA_def_cfa_offset ! .byte EH_FRAME_OFFSET ; uleb128 0x40/0x70 ! .byte 0x11 ; DW_CFA_offset_extended_sf ! .byte 0x41 ; uleb128 0x41 ! .byte 0x7e ; sleb128 -2 ! .byte 0x4 ; DW_CFA_advance_loc4 ! .set L$set$4,L_epilog-L_body ! .long L$set$4 ! .byte 0xe ; DW_CFA_def_cfa_offset ! .byte 0 ; uleb128 0 ! .align LOG2_GPR_BYTES ! LEFDE1: ! ! .data ! #ifdef WANT_STUB ! ; PIC stub stuff, generated by GCC ! ! .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 .align LOG2_GPR_BYTES L_GC_push_one$stub: .indirect_symbol _GC_push_one *************** L0$_GC_push_one: *** 88,95 **** lgu r12,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)(r11) mtctr r12 bctr ! .data ! .lazy_symbol_pointer L_GC_push_one$lazy_ptr: .indirect_symbol _GC_push_one .g_long dyld_stub_binding_helper --- 169,178 ---- lgu r12,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)(r11) mtctr r12 bctr ! ! .data ! .lazy_symbol_pointer L_GC_push_one$lazy_ptr: .indirect_symbol _GC_push_one .g_long dyld_stub_binding_helper + #endif diff -Nrcpad gcc-4.5.2/boehm-gc/pthread_support.c gcc-4.6.0/boehm-gc/pthread_support.c *** gcc-4.5.2/boehm-gc/pthread_support.c Thu Oct 11 00:36:08 2007 --- gcc-4.6.0/boehm-gc/pthread_support.c Fri Dec 10 10:09:10 2010 *************** GC_PTR GC_get_thread_stack_base() *** 1139,1145 **** if (pthread_getattr_np (my_pthread, &attr) != 0) { # ifdef DEBUG_THREADS ! GC_printf1("Can not determine stack base for attached thread"); # endif return 0; } --- 1139,1145 ---- if (pthread_getattr_np (my_pthread, &attr) != 0) { # ifdef DEBUG_THREADS ! GC_printf0("Can not determine stack base for attached thread"); # endif return 0; } *************** GC_PTR GC_get_thread_stack_base() *** 1158,1164 **** # else # ifdef DEBUG_THREADS ! GC_printf1("Can not determine stack base for attached thread"); # endif return 0; # endif --- 1158,1164 ---- # else # ifdef DEBUG_THREADS ! GC_printf0("Can not determine stack base for attached thread"); # endif return 0; # endif diff -Nrcpad gcc-4.5.2/boehm-gc/tests/leak_test.c gcc-4.6.0/boehm-gc/tests/leak_test.c *** gcc-4.5.2/boehm-gc/tests/leak_test.c Fri Aug 17 18:30:51 2001 --- gcc-4.6.0/boehm-gc/tests/leak_test.c Wed May 12 22:45:35 2010 *************** *** 1,6 **** #include "leak_detector.h" ! main() { int *p[10]; int i; GC_find_leak = 1; /* for new collect versions not compiled */ --- 1,6 ---- #include "leak_detector.h" ! int main() { int *p[10]; int i; GC_find_leak = 1; /* for new collect versions not compiled */ *************** main() { *** 18,21 **** --- 18,22 ---- CHECK_LEAKS(); CHECK_LEAKS(); CHECK_LEAKS(); + return 0; } diff -Nrcpad gcc-4.5.2/boehm-gc/tests/staticrootslib.c gcc-4.6.0/boehm-gc/tests/staticrootslib.c *** gcc-4.5.2/boehm-gc/tests/staticrootslib.c Thu Jan 1 00:00:00 1970 --- gcc-4.6.0/boehm-gc/tests/staticrootslib.c Thu May 6 16:20:53 2010 *************** *** 0 **** --- 1,33 ---- + #include + + #ifndef GC_DEBUG + # define GC_DEBUG + #endif + + #include "gc.h" + + struct treenode { + struct treenode *x; + struct treenode *y; + } * root[10]; + + struct treenode * libsrl_mktree(int i) + { + struct treenode * r = GC_MALLOC(sizeof(struct treenode)); + if (0 == i) return 0; + if (1 == i) r = GC_MALLOC_ATOMIC(sizeof(struct treenode)); + r -> x = libsrl_mktree(i-1); + r -> y = libsrl_mktree(i-1); + return r; + } + + void * libsrl_init(void) + { + GC_INIT(); + return GC_MALLOC(sizeof(struct treenode)); + } + + void * libsrl_collect (void) + { + GC_gcollect(); + } diff -Nrcpad gcc-4.5.2/boehm-gc/tests/staticrootstest.c gcc-4.6.0/boehm-gc/tests/staticrootstest.c *** gcc-4.5.2/boehm-gc/tests/staticrootstest.c Thu Jan 1 00:00:00 1970 --- gcc-4.6.0/boehm-gc/tests/staticrootstest.c Thu May 6 16:20:53 2010 *************** *** 0 **** --- 1,46 ---- + #include + + #ifndef GC_DEBUG + # define GC_DEBUG + #endif + + #include "gc.h" + #include "gc_backptr.h" + + struct treenode { + struct treenode *x; + struct treenode *y; + } * root[10]; + + static char *staticroot = 0; + + extern struct treenode * libsrl_mktree(int i); + extern void * libsrl_init(void); + extern void * libsrl_collect (void); + + int main(void) + { + int i; + staticroot = libsrl_init(); + for (i = 0; i < sizeof(struct treenode); ++i) { + staticroot[i] = 0x42; + } + libsrl_collect(); + for (i = 0; i < 10; ++i) { + root[i] = libsrl_mktree(12); + libsrl_collect(); + } + for (i = 0; i < sizeof(struct treenode); ++i) { + if (staticroot[i] != 0x42) + return -1; + } + for (i = 0; i < 10; ++i) { + root[i] = libsrl_mktree(12); + libsrl_collect(); + } + for (i = 0; i < sizeof(struct treenode); ++i) { + if (staticroot[i] != 0x42) + return -1; + } + return 0; + } diff -Nrcpad gcc-4.5.2/boehm-gc/tests/test.c gcc-4.6.0/boehm-gc/tests/test.c *** gcc-4.5.2/boehm-gc/tests/test.c Wed Jan 25 03:03:14 2006 --- gcc-4.6.0/boehm-gc/tests/test.c Fri Dec 10 10:09:10 2010 *************** void reverse_test() *** 624,630 **** /* OSF has limited stack space by default, and large frames. */ # define BIG 200 # else ! # define BIG 4500 # endif # endif # endif --- 624,635 ---- /* OSF has limited stack space by default, and large frames. */ # define BIG 200 # else ! # if defined(__MACH__) && defined(__ppc64__) ! /* Small stack and largish frames. */ ! # define BIG 2500 ! # else ! # define BIG 4500 ! # endif # endif # endif # endif diff -Nrcpad gcc-4.5.2/boehm-gc/tests/thread_leak_test.c gcc-4.6.0/boehm-gc/tests/thread_leak_test.c *** gcc-4.5.2/boehm-gc/tests/thread_leak_test.c Fri Aug 17 18:30:51 2001 --- gcc-4.6.0/boehm-gc/tests/thread_leak_test.c Wed May 12 22:45:35 2010 *************** void * test(void * arg) { *** 19,25 **** #define NTHREADS 5 ! main() { int i; pthread_t t[NTHREADS]; int code; --- 19,25 ---- #define NTHREADS 5 ! int main() { int i; pthread_t t[NTHREADS]; int code; *************** main() { *** 37,40 **** --- 37,41 ---- CHECK_LEAKS(); CHECK_LEAKS(); CHECK_LEAKS(); + return 0; } diff -Nrcpad gcc-4.5.2/boehm-gc/tests/trace_test.c gcc-4.6.0/boehm-gc/tests/trace_test.c *** gcc-4.5.2/boehm-gc/tests/trace_test.c Fri Aug 13 23:05:36 2004 --- gcc-4.6.0/boehm-gc/tests/trace_test.c Wed May 12 22:45:35 2010 *************** struct treenode * mktree(int i) { *** 16,22 **** return r; } ! main() { int i; for (i = 0; i < 10; ++i) { --- 16,22 ---- return r; } ! int main() { int i; for (i = 0; i < 10; ++i) { *************** main() *** 26,29 **** --- 26,30 ---- GC_generate_random_backtrace(); GC_generate_random_backtrace(); GC_generate_random_backtrace(); + return 0; } diff -Nrcpad gcc-4.5.2/gcc/java/ChangeLog gcc-4.6.0/gcc/java/ChangeLog *** gcc-4.5.2/gcc/java/ChangeLog Thu Dec 16 12:32:23 2010 --- gcc-4.6.0/gcc/java/ChangeLog Fri Mar 25 16:54:54 2011 *************** *** 1,14 **** ! 2010-12-16 Release Manager ! * GCC 4.5.2 released. ! 2010-07-31 Release Manager ! * GCC 4.5.1 released. ! 2010-04-14 Release Manager ! * GCC 4.5.0 released. 2010-01-20 Joern Rennecke --- 1,553 ---- ! 2011-03-25 Release Manager ! * GCC 4.6.0 released. ! 2011-02-13 Joseph Myers ! * jvspec.c (jvgenmain_spec): Remove %{a*}. ! 2011-01-21 Kai Tietz ! PR bootstrap/47215 ! * decl.c (java_init_decl_processing): Remove ! va_list_type_node related type initializations. ! ! 2011-01-11 Kai Tietz ! ! PR bootstrap/47215 ! * decl.c (java_init_decl_processing): Initialize ! long_integer_type_node. ! ! 2011-01-07 Kai Tietz ! ! PR bootstrap/47215 ! * decl.c (java_init_decl_processing): Initialize unsigned_type_node. ! ! 2011-01-07 Kai Tietz ! ! * decl.c (java_init_decl_processing): Setup va_list_type_node. ! ! 2011-01-03 Jakub Jelinek ! ! * jcf-dump.c (version): Update copyright notice dates. ! ! 2010-12-15 Dave Korn ! ! * decl.c (java_init_decl_processing): Initialise integer_three_node. ! * lang.c (put_decl_node): Handle nested function decls. ! ! 2010-12-07 Joseph Myers ! ! * jcf-parse.c: Don't include assert.h. ! (java_parse_file): Use gcc_assert. ! ! 2010-12-03 Joseph Myers ! ! * lang.opt (static-libgcj): New option. ! ! 2010-12-01 Joseph Myers ! ! * jcf-parse.c: Don't include toplev.h. ! * Make-lang.in (java/jcf-parse.o): Don't depend on toplev.h. ! ! 2010-11-30 Joseph Myers ! ! * boehm.c: Don't include toplev.h. ! * Make-lang.in (java/boehm.o): Don't depend on toplev.h. ! ! 2010-11-30 Joseph Myers ! ! * expr.c, lang.c, mangle.c, mangle_name.c, typeck.c, ! verify-glue.c: Don't include toplev.h. ! * Make-lang.in: Dependencies for above files changed to remove ! toplev.h. ! ! 2010-11-29 Joseph Myers ! ! * boehm.c: Include "config.h" instead of . ! * builtins.c: Don't include . ! * class.c: Don't include "stdio.h". ! (O_BINARY): Don't define here. ! * jcf-depend.c: Don't include . ! (jcf_dependency_set_dep_file, jcf_dependency_init, ! jcf_dependency_write): Use gcc_assert. ! * jcf-io.c (O_BINARY): Don't define here. ! * jcf-path.c: Don't include "tm.h". ! (jcf_path_init): Use getenv instead of GET_ENVIRONMENT. ! * resource.c: Don't include "stdio.h". ! (O_BINARY): Don't define here. ! * verify-impl.c: Don't include . ! ! 2010-11-17 Joseph Myers ! ! * jcf-parse.c (java_parse_file): Take no arguments. ! * java-tree.h (java_parse_file): Update prototype. ! ! 2010-11-09 Joern Rennecke ! Andrew Haley ! ! PR java/46386 ! * config/pdp11/t-pdp11 (java/constants.o-warn): Remove. ! ! 2010-11-12 Joseph Myers ! ! * Make-lang.in (jvspec.o, java/lang.o): Use $(OPTS_H). ! * lang.c (java_handle_option): Take location_t parameter. ! ! 2010-11-10 Joseph Myers ! ! * expr.c (expand_java_field_op): Use %' in diagnostic. ! * jcf-parse.c (java_parse_file): Use %' in diagnostics. ! * jvspec.c (lang_specific_driver): Use %' in diagnostic. ! * lang.c (java_post_options): Use %' in diagnostics. ! ! 2010-11-06 Joern Rennecke ! ! PR middle-end/46314 ! * class.c: Include target.h. ! (make_local_function_alias): ! Use targetm.asm_out.generate_internal_label. ! * expr.c (lookup_label, generate_name): Likewise. ! ! 2010-11-03 Joern Rennecke ! ! PR bootstrap/44335 ! * jfc-parse.c (target.h): Include. ! (handle_constant): Use targetm.words_big_endian and ! targetm.float_words_big_endian. ! (get_constant): Use targetm.float_words_big_endian. ! ! 2010-10-13 Richard Henderson ! ! * lang.c (java_eh_personality): Update call to ! build_personality_function. ! ! 2010-10-12 Joseph Myers ! ! * Make-lang.in (java/lang.o): Use $(OPTIONS_H) instead of ! options.h. ! ! 2010-10-11 Nathan Froyd ! ! * decl.c (java_init_decl_processing): Use build_function_type_list ! instead of build_function_type. ! * jcf-parse.c (java_emit_static_constructor): Likewise. ! * builtins.c (initialize_builtins): Likewise. ! ! 2010-10-08 Joseph Myers ! ! * lang.c (java_init_options_struct): New. Split out from ! java_init_options. ! (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define. ! ! 2010-10-04 Andi Kleen ! ! * Make-lang.in (xgcj, jc1, jcf-dump, jvgenmain): ! Add + to build rule. ! ! 2010-09-29 Joseph Myers ! ! * lang.opt: Don't use VarExists. ! ! 2010-09-29 Joseph Myers ! ! * java-tree.h (flag_filelist_file, flag_assert, flag_jni, ! flag_force_classes_archive_check, flag_redundant, flag_newer, ! flag_use_divide_subroutine, flag_use_atomic_builtins, ! flag_use_boehm_gc, flag_hash_synchronization, ! flag_check_references, flag_optimize_sci, flag_indirect_classes, ! flag_indirect_dispatch, flag_store_check, ! flag_reduced_reflection): Remove. ! * jcf-dump.c (flag_newer): Remove. ! * jcf.h (quiet_flag): Remove. ! * parse.h (quiet_flag): Remove. ! ! 2010-09-28 Richard Henderson ! ! * lang.c: Include "target.h". ! (java_eh_personality): Use targetm.except_unwind_info. ! * Make-lang.in (lang.o): Update deps. ! ! 2010-09-27 Andrew Haley ! ! PR java/45773 ! * jvgenmain.c (main): Fix arg processing. ! ! 2010-09-22 Joseph Myers ! ! * jvspec.c (lang_specific_driver): Handle OPT__help instead of ! OPT_fhelp. ! * lang.opt (-CLASSPATH, -all-warnings, -bootclasspath, -classpath, ! -dependencies, -encoding, -extdirs, -include-directory, ! -include-directory=, -output-class-directory, ! -output-class-directory=, -resource, -resource=, ! -user-dependencies): New. ! ! 2010-09-16 Richard Guenther ! ! * jcf-parse.c (current_file_list): Remove. ! (java_parse_file): Use build_translation_unit_decl. Adjust. ! ! 2010-09-03 Joseph Myers ! ! * lang.opt (d): New. ! ! 2010-09-03 H.J. Lu ! ! PR java/45504 ! * jvgenmain.c (main): Check "-D XXX=YYY". ! ! 2010-09-02 Joseph Myers ! ! * jvspec.c (jvgenmain_spec): Don't handle -fnew-verifier. ! ! 2010-09-02 Joseph Myers ! ! * lang.opt (CLASSPATH, bootclasspath, classpath, encoding, ! fCLASSPATH=): Mark as Java options and as aliases. ! * jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*. ! (lang_specific_driver): Don't handle options marked as aliases. ! * lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_. ! ! 2010-08-22 Joseph Myers ! ! * Make-lang.in (jvspec.o): Update dependencies. ! * jvspec.c: Include opts.h. ! (PARAM_ARG): Remove. ! (find_spec_file): Do not add leading -specs=. ! (lang_specific_driver): Use cl_decoded_option structures. ! * lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding, ! extdirs, fmain=, s-bc-abi): New options. ! ! 2010-08-20 Nathan Froyd ! ! * class.c: Use FOR_EACH_VEC_ELT. ! * expr.c: Likewise. ! * jcf-parse.c: Likewise. ! * resource.c: Likewise. ! ! 2010-08-16 Joseph Myers ! ! * lang.opt (MD_, MMD_, version): Mark RejectDriver. ! ! 2010-08-05 David Daney ! ! * class.c (build_utf8_ref): Fix code formatting from previous commit. ! ! 2010-08-05 David Daney ! ! * class.c (build_utf8_ref): Make decl DECL_USER_ALIGN. ! ! 2010-07-27 Joseph Myers ! ! * lang.c (java_handle_option): Update prototype and return value ! type. ! ! 2010-07-27 Joseph Myers ! ! * lang.c (java_option_lang_mask): New. ! (java_init_options): Update prototype. ! (LANG_HOOKS_OPTION_LANG_MASK): Define. ! ! 2010-07-15 Nathan Froyd ! ! * java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN. ! * boehm.c: Likewise. ! * class.c: Likewise. ! * decl.c: Likewise. ! * expr.c: Likewise. ! * jcf-parse.c: Likewise. ! * typeck.c: Likewise. ! * verify-glue.c: Likewise. ! ! 2010-07-08 Manuel López-Ibáñez ! ! * boehm.c: Include diagnostic-core.h in every file that includes ! toplev.h. ! * class.c: Likewise. ! * constants.c: Likewise. ! * decl.c: Likewise. ! * except.c: Likewise. ! * expr.c: Likewise. ! * jcf-parse.c: Likewise. ! * mangle.c: Likewise. ! * mangle_name.c: Likewise. ! * resource.c: Likewise. ! * typeck.c: Likewise. ! * verify-glue.c: Likewise. ! ! 2010-07-05 Nathan Froyd ! ! PR bootstrap/44825 ! * class.c (make_class_data): Cast result of VEC_length calls to int. ! ! 2010-07-05 Nathan Froyd ! ! * constants.c (build_constants_constructor): Use build_constructor ! instead of build_constructor_from_list. ! * class.c (make_method_value): Likewise. ! (get_dispatch_table): Likewise. ! (make_class_data): Likewise. ! (emit_indirect_register_classes): Likewise. ! (emit_symbol_table): Likewise. ! (add_assertion_table_entry): Likewise. ! (emit_assertion_table): Likewise. ! (make_field_value): Use build_constructor_single instead of ! build_constructor_from_list. ! ! 2010-06-28 Nathan Froyd ! ! * java-tree.h (struct lang_type) [catch_classes]: Change type to a ! VEC. ! * except.c (prepare_eh_table_type): Call CONSTRUCTOR_APPEND_ELT ! instead of tree_cons. ! * class.c (make_class): Add dummy entry to TYPE_CATCH_CLASSES. ! (emit_catch_table): Adjust for new type of TYPE_CATCH_CLASSES. ! ! 2010-06-28 Steven Bosscher ! ! * lang.c: Do not include except.h ! * except.c: Likewise. ! (doing_eh): New, moved from except.c (in gcc/) but removed the ! do_warning flag. ! (maybe_start_try): Update doing_eh call. ! * Make-lang.in: Update dependencies. ! ! 2010-06-23 Anatoly Sokolov ! ! * decl.c (java_init_decl_processing): Use double_int_to_tree instead ! of build_int_cst_wide. ! * boehm.c (set_bit): Remove. ! (mark_reference_fields): Use double_int type for 'mask' argument. ! Use double_int_setbit instead of set_bit. ! (get_boehm_type_descriptor): Use double_int_setbit instead of ! set_bit. Use double_int_to_tree instead of build_int_cst_wide. ! ! 2010-06-10 Gerald Pfeifer ! ! * gcj.texi: Move to GFDL version 1.3. Fix copyright years. ! ! 2010-06-08 Laurynas Biveinis ! ! * jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation. ! ! * jcf-parse.c (java_parse_file): Likewise. ! (process_zip_dir): Likewise. ! ! * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise. ! (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise. ! ! * expr.c (add_type_assertion): Likewise. ! ! * decl.c (make_binding_level): Likewise. ! (java_dup_lang_specific_decl): Likewise. ! ! * constants.c (set_constant_entry): Likewise. ! (cpool_for_class): Likewise. ! ! * class.c (add_method_1): Likewise. ! (java_treetreehash_new): Likewise. ! ! * java-tree.h (struct lang_type): Add variable_size GTY option. ! (struct lang_decl): Likewise. ! ! * jch.h (struct cpool_entry): Likewise. ! ! * java-tree.h (java_treetreehash_create): Remove parameter ggc. ! ! * except.c (prepare_eh_table_type): Update ! java_treetreehash_create call. ! ! * class.c (add_method_1): Update java_treetreehash_create call. ! (java_treetreehash_create): Remove parameter gc. Use ! htab_create_ggc. ! ! 2010-06-04 Joseph Myers ! ! * jvspec.c (lang_specific_driver): Use GCC-specific formats in ! diagnostics. ! ! 2010-05-30 Steven Bosscher ! ! * except.c: Include tm.h. ! ! 2010-05-28 Joseph Myers ! ! * jvspec.c (lang_specific_driver): Use fatal_error instead of ! fatal. Use warning instead of error for warnings. ! ! 2010-05-28 Nathan Froyd ! ! * expr.c (get_symbol_table_index): Add spaces in expression. ! ! 2010-05-28 Nathan Froyd ! ! * java-tree.h (method_entry): Declare. Declare VECs containing it. ! (struct lang_type): Change type of otable_methods, atable_methods, and ! itable_methods to VECs. Fix comment for atable_methods. ! (emit_symbol_table): Take a VEC instead of a tree. ! (get_symbol_table_index): Take a VEC * instead of a tree *. ! * class.c (add_table_and_syms): Take a VEC instead of a tree. ! (emit_symbol_table): Update for changed parameter type. ! * expr.c (get_symbol_table_index): Likewise. ! ! 2010-05-27 Steven Bosscher ! ! * buildings.c: Pretend to be a backend file by undefining ! IN_GCC_FRONTEND (still need rtl.h here). ! ! 2010-05-26 Nathan Froyd ! ! * java-tree.h (struct lang_decl_func): Change type of throws_list ! field to a VEC. ! * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type ! of DECL_FUNCTION_THROWS. ! * class.c (make_method_value): Likewise. ! ! 2010-05-26 Nathan Froyd ! ! * class.c (utf8_decl_list): Delete. ! (build_utf8_ref): Remove references to it. ! * java-tree.h (all_class_list): Delete. ! (predef_filenames): Delete. ! (enum java_tree_index) [JTI ALL_CLASS_LIST,JTI_PREDEF_FILENAMES]: ! Delete. ! * jcf-parse.c (parse_roots): Decrease size to 2. ! (current_file_list): Convert to a VEC. ! (all_class_list): Declare. ! (jcf_parse): Adjust for new type of all_class_list. ! (java_layout_seen_class_methods): Likewise. ! (predefined_filenames): Declare. ! (add_predefined_file): Use it. ! (predefined_filename_p): Likewise. ! (java_parse_file): Adjust for new type of current_file_list. * ! ! 2010-05-25 Jakub Jelinek ! ! * lang.c (java_classify_record): Return RECORD_IS_INTERFACE ! for interfaces. ! ! PR debug/43260 ! * java-tree.h (pending_static_fields): New extern declaration. ! (java_write_globals): New prototype. ! * lang.c (LANG_HOOKS_WRITE_GLOBALS): Define. ! * decl.c (java_mark_class_local): When clearing DECL_EXTERNAL ! of a static field push it into pending_static_fields vector. ! * class.c (pending_static_fields): New variable. ! (add_field): If static field is not DECL_EXTERNAL, push it into ! pending_static_fields vector. ! (java_write_globals): New function. ! ! 2010-05-24 Nathan Froyd ! ! * expr.c (quick_stack): Change type to a VEC. Update comment. ! (tree_list_free_list): Delete. ! (flush_quick_stack): Update for quick_stack type change. ! (push_value): Likewise. ! (pop_value): Likewise. ! ! 2010-05-23 Steven Bosscher ! ! * java-gimplify.c: Do not include tm.h, toplev.h. ! * typeck.c: Do not include tm.h. ! * mangle_name.c: Do not include tm.h. ! * jcf-dump.c: Do not include tm.h, ggc.h. ! * class.c: Do not include rtl.h, tm_p.h, target.h, except.h, cgraph.h. ! * decl.c: Do not include tm.h, rtl.h, function.h, expr.h, except.h, ! and timevar.h. ! * jcf-parse.c: Do not include tm.h and tm_p.h. ! * resource.c: Do not include tm.h, rtl.h, flags.h, obstack.h, ! target.h, and expr.h. ! * except.c: Do not include tm.h, rtl.h, function.h. ! * builtins.c: Do not include convert.h. Explain why RTL headers ! have to be included here. ! * verify-glue.c: Do not include tm.h. ! * jcf-depend.c: Do not include tm.h. ! * jcf-reader.c: Include ggc.h. ! * jcf-io.c: Do not include tm.h, toplev.h. ! * expr.c: Do not include tm.h, rtl.h, expr.h, except.h, tm_p.h, ! gimple.h. ! * lang.c: Do not include rtl.h, expr.h. ! * Make-lang.in: Update dependencies. ! ! 2010-05-23 Steven Bosscher ! ! * jcf-parse.c: Include bitmap.h. ! * Make-lang.in: Update dependencies. ! ! 2010-05-20 Jakub Jelinek ! ! PR debug/43521 ! * decl.c (start_java_method): Set DECL_ARTIFICIAL on the 'this' ! PARM_DECL. ! ! 2010-05-19 Anatoly Sokolov ! ! * jcf-parse.c (get_constant): Use double_int_to_tree instead of ! build_int_cst_wide_type. ! ! 2010-05-18 Nathan Froyd ! ! * expr.c (pop_arguments): Fix use of undeclared variable. ! ! 2010-05-18 Nathan Froyd ! ! * expr.c (expand_java_multianewarray): Use build_call_vec instead of ! build_call_list. ! (pop_arguments): Return a VEC instead of a tree. Take a method type ! rather than a list of argument types. ! (rewrite_rule): Change signature. of rewrite_arglist member. ! (rewrite_arglist_getcaller): Update signature. ! (rewrite_arglist_getclass): Likewise. ! (maybe_rewrite_invocation): Update for rewrite_arglist change. ! (build_known_method_ref): Take a VEC instead of a tree. ! (invoke_build_dtable): Likewise. ! (expand_invoke): Update calls to pop_arguments. Use build_call_vec ! instead of build_call_list. ! (build_jni_stub): Use build_call_vec instead of build_call_list. ! * java-tree.h (maybe_rewrite_invocation): Update declaration. ! (build_known_method_ref): Likewise. ! (invoke_build_dtable): Likewise. ! ! 2010-05-14 Nathan Froyd ! ! PR 44103 ! * java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a ! vector. Move call to build_constructor... ! (FINISH_RECORD_CONSTRUCTOR): ...here. Add necessary arguments. Clear ! TREE_CONSTANT on the constructor. ! (PUSH_SUPER_VALUE): Change first argument to a vector. ! (PUSH_FIELD_VALUE): Likewise. ! * resource.c (compile_resource_data): Update calls to above macros. ! * constants.c (build_constants_constructor): Likewise. ! * class.c (build_utf8_ref): Likewise. ! (make_field_value): Likewise. ! (make_method_value): Likewise. ! (add_table_and_syms): New function. ! (make_class_data): Call it. Update calls to above macros. ! (build_symbol_table_entry): New function. ! (build_symbol_entry): Call it. Update calls to above macros. ! (emit_symbol_table): Likewise. ! (make_catch_class_record): Update calls to above macros. ! (build_assertion_table_entry): New function. ! (add_assertion_table_entry): Call it. ! (emit_assertion_table): Likewise. ! ! 2010-05-06 Manuel López-Ibáñez ! ! PR 40989 ! * lang.c (java_handle_option): Add argument kind. ! ! 2010-04-18 Eric Botcazou ! ! * decl.c (java_init_decl_processing): Remove argument in call to ! initialize_sizetypes ! ! 2010-04-07 Jakub Jelinek ! ! * exception.cc (_Jv_Throw): Avoid set but not used warning. ! * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in ! sizeof to avoid set but not used warnings. 2010-01-20 Joern Rennecke diff -Nrcpad gcc-4.5.2/gcc/java/Make-lang.in gcc-4.6.0/gcc/java/Make-lang.in *** gcc-4.5.2/gcc/java/Make-lang.in Fri Apr 2 19:54:46 2010 --- gcc-4.6.0/gcc/java/Make-lang.in Wed Dec 1 13:46:36 2010 *************** JAVA_TARGET_INDEPENDENT_BIN_TOOLS = jcf- *** 57,63 **** .PHONY: java jvspec.o: $(srcdir)/java/jvspec.c $(SYSTEM_H) coretypes.h $(TM_H) \ ! $(GCC_H) $(CONFIG_H) java/jcf.h java/javaop.h (SHLIB_LINK='$(SHLIB_LINK)'; \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \ $(INCLUDES) $(srcdir)/java/jvspec.c $(OUTPUT_OPTION)) --- 57,63 ---- .PHONY: java jvspec.o: $(srcdir)/java/jvspec.c $(SYSTEM_H) coretypes.h $(TM_H) \ ! $(GCC_H) $(CONFIG_H) java/jcf.h java/javaop.h $(OPTS_H) (SHLIB_LINK='$(SHLIB_LINK)'; \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \ $(INCLUDES) $(srcdir)/java/jvspec.c $(OUTPUT_OPTION)) *************** jvspec.o: $(srcdir)/java/jvspec.c $(SYST *** 65,71 **** # Create the compiler driver for $(XGCJ). $(XGCJ)$(exeext): $(GCC_OBJS) jvspec.o java/jcf-path.o version.o \ prefix.o intl.o $(LIBDEPS) $(EXTRA_GCC_OBJS) ! $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \ jvspec.o java/jcf-path.o prefix.o intl.o \ version.o $(EXTRA_GCC_OBJS) $(LIBS) --- 65,71 ---- # Create the compiler driver for $(XGCJ). $(XGCJ)$(exeext): $(GCC_OBJS) jvspec.o java/jcf-path.o version.o \ prefix.o intl.o $(LIBDEPS) $(EXTRA_GCC_OBJS) ! +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \ jvspec.o java/jcf-path.o prefix.o intl.o \ version.o $(EXTRA_GCC_OBJS) $(LIBS) *************** jvspec.o-warn = -Wno-error *** 100,116 **** jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS) attribs.o rm -f $@ ! $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ $(JAVA_OBJS) $(BACKEND) $(ZLIB) $(LIBICONV) $(LIBS) attribs.o $(BACKENDLIBS) jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS) rm -f $@ ! $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \ $(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS) jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) rm -f $@ ! $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) \ $(LIBS) # --- 100,116 ---- jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS) attribs.o rm -f $@ ! +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ $(JAVA_OBJS) $(BACKEND) $(ZLIB) $(LIBICONV) $(LIBS) attribs.o $(BACKENDLIBS) jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS) rm -f $@ ! +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \ $(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS) jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) rm -f $@ ! +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) \ $(LIBS) # *************** java.stagefeedback: stageprofile-start *** 267,335 **** # .o:.h dependencies. JAVA_TREE_H = $(TREE_H) $(HASHTAB_H) java/java-tree.h ! java/jcf-dump.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(JAVA_TREE_H) \ java/jcf-dump.c java/jcf-reader.c java/jcf.h java/javaop.h java/javaop.def \ version.h $(GGC_H) intl.h java/zipfile.h java/boehm.o: java/boehm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ ! $(TREE_H) $(JAVA_TREE_H) java/parse.h toplev.h java/builtins.o: java/builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(JAVA_TREE_H) $(GGC_H) $(FLAGS_H) $(OPTABS_H) $(EXPR_H) langhooks.h \ gt-java-builtins.h java/class.o: java/class.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ ! $(JAVA_TREE_H) $(RTL_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \ ! $(TARGET_H) $(FUNCTION_H) gt-java-class.h $(CGRAPH_H) $(TM_P_H) java/constants.o: java/constants.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \ toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) gt-java-constants.h ! java/decl.o: java/decl.c $(CONFIG_H) $(JAVA_TREE_H) $(RTL_H) java/jcf.h \ ! toplev.h $(FLAGS_H) $(SYSTEM_H) coretypes.h $(TM_H) $(FUNCTION_H) $(EXPR_H) \ ! libfuncs.h except.h java/java-except.h $(GGC_H) $(REAL_H) gt-java-decl.h \ $(TARGET_H) $(CGRAPH_H) langhooks.h java/except.o: java/except.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h $(REAL_H) \ ! $(RTL_H) java/javaop.h java/java-opcodes.h except.h java/java-except.h \ ! toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(FUNCTION_H) java/expr.o: java/expr.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h $(REAL_H) \ ! $(RTL_H) $(EXPR_H) java/javaop.h java/java-opcodes.h except.h \ ! java/java-except.h java/java-except.h java/parse.h toplev.h \ $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) gt-java-expr.h $(TARGET_H) \ ! tree-iterator.h $(TM_P_H) java/jcf-depend.o: java/jcf-depend.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ ! $(TM_H) java/jcf.h java/jcf-parse.o: java/jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) $(FLAGS_H) \ ! input.h java/java-except.h $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \ ! java/parse.h $(GGC_H) debug.h $(REAL_H) gt-java-jcf-parse.h $(TM_P_H) \ ! java/jcf-reader.c java/zipfile.h java/jcf.h java/jvgenmain.o: java/jvgenmain.c $(CONFIG_H) $(JAVA_TREE_H) $(SYSTEM_H) \ coretypes.h $(TM_H) intl.h java/lang.o: java/lang.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h input.h \ ! toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(EXPR_H) $(DIAGNOSTIC_H) \ ! langhooks.h $(LANGHOOKS_DEF_H) gt-java-lang.h opts.h options.h $(EXCEPT_H) java/mangle.o: java/mangle.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) $(SYSTEM_H) \ ! coretypes.h $(TM_H) toplev.h $(GGC_H) gt-java-mangle.h $(LANGHOOKS_DEF_H) java/mangle_name.o: java/mangle_name.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) \ ! $(SYSTEM_H) coretypes.h $(TM_H) toplev.h $(GGC_H) ! java/resource.o: java/resource.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ ! $(JAVA_TREE_H) $(RTL_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \ ! $(TARGET_H) $(FUNCTION_H) gt-java-resource.h $(EXPR_H) java/typeck.o: java/typeck.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \ ! toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) $(REAL_H) java/win32-host.o: java/win32-host.c $(CONFIG_H) $(SYSTEM_H) coretypes.h java/jcf.h java/verify-glue.o: java/verify-glue.c $(CONFIG_H) $(SYSTEM_H) $(JAVA_TREE_H) \ ! coretypes.h $(TM_H) java/verify.h toplev.h java/verify-impl.o: java/verify-impl.c $(CONFIG_H) java/verify.h $(SYSTEM_H) \ coretypes.h java/jcf.h $(JAVA_TREE_H) java/zextract.o: java/zextract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ java/zipfile.h java/java-gimplify.o: java/java-gimplify.c $(CONFIG_H) $(SYSTEM_H) \ ! coretypes.h $(TM_H) $(JAVA_TREE_H) $(GIMPLE_H) toplev.h # jcf-io.o needs $(ZLIBINC) added to cflags. ! java/jcf-io.o: java/jcf-io.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(JAVA_TREE_H) java/zipfile.h $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(ZLIBINC) $(srcdir)/java/jcf-io.c $(OUTPUT_OPTION) # jcf-path.o needs a -D. ! java/jcf-path.o: java/jcf-path.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ java/jcf.h $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DLIBGCJ_ZIP_FILE='"$(datadir)/java/libgcj-$(version).jar"' \ --- 267,336 ---- # .o:.h dependencies. JAVA_TREE_H = $(TREE_H) $(HASHTAB_H) java/java-tree.h ! java/jcf-dump.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(JAVA_TREE_H) \ java/jcf-dump.c java/jcf-reader.c java/jcf.h java/javaop.h java/javaop.def \ version.h $(GGC_H) intl.h java/zipfile.h java/boehm.o: java/boehm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ ! $(TREE_H) $(JAVA_TREE_H) java/parse.h java/builtins.o: java/builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(JAVA_TREE_H) $(GGC_H) $(FLAGS_H) $(OPTABS_H) $(EXPR_H) langhooks.h \ gt-java-builtins.h java/class.o: java/class.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ ! $(JAVA_TREE_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \ ! $(FUNCTION_H) gt-java-class.h java/constants.o: java/constants.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \ toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) gt-java-constants.h ! java/decl.o: java/decl.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \ ! toplev.h $(FLAGS_H) $(SYSTEM_H) coretypes.h $(TM_H) \ ! libfuncs.h java/java-except.h $(GGC_H) $(REAL_H) gt-java-decl.h \ $(TARGET_H) $(CGRAPH_H) langhooks.h java/except.o: java/except.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h $(REAL_H) \ ! java/javaop.h java/java-opcodes.h java/java-except.h \ ! toplev.h $(SYSTEM_H) coretypes.h java/expr.o: java/expr.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h $(REAL_H) \ ! java/javaop.h java/java-opcodes.h \ ! java/java-except.h java/java-except.h java/parse.h \ $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) gt-java-expr.h $(TARGET_H) \ ! tree-iterator.h java/jcf-depend.o: java/jcf-depend.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ ! java/jcf.h java/jcf-parse.o: java/jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) $(FLAGS_H) \ ! input.h java/java-except.h $(SYSTEM_H) coretypes.h \ ! java/parse.h $(GGC_H) debug.h $(REAL_H) gt-java-jcf-parse.h \ ! java/jcf-reader.c java/zipfile.h java/jcf.h $(BITMAP_H) java/jvgenmain.o: java/jvgenmain.c $(CONFIG_H) $(JAVA_TREE_H) $(SYSTEM_H) \ coretypes.h $(TM_H) intl.h java/lang.o: java/lang.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h input.h \ ! $(SYSTEM_H) coretypes.h $(TM_H) $(DIAGNOSTIC_H) \ ! langhooks.h $(LANGHOOKS_DEF_H) gt-java-lang.h $(OPTS_H) $(OPTIONS_H) \ ! $(TARGET_H) java/mangle.o: java/mangle.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) $(SYSTEM_H) \ ! coretypes.h $(TM_H) $(GGC_H) gt-java-mangle.h $(LANGHOOKS_DEF_H) java/mangle_name.o: java/mangle_name.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) \ ! $(SYSTEM_H) coretypes.h $(GGC_H) ! java/resource.o: java/resource.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ ! $(JAVA_TREE_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \ ! $(TARGET_H) $(FUNCTION_H) gt-java-resource.h java/typeck.o: java/typeck.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \ ! $(SYSTEM_H) coretypes.h $(GGC_H) $(REAL_H) java/win32-host.o: java/win32-host.c $(CONFIG_H) $(SYSTEM_H) coretypes.h java/jcf.h java/verify-glue.o: java/verify-glue.c $(CONFIG_H) $(SYSTEM_H) $(JAVA_TREE_H) \ ! coretypes.h java/verify.h java/verify-impl.o: java/verify-impl.c $(CONFIG_H) java/verify.h $(SYSTEM_H) \ coretypes.h java/jcf.h $(JAVA_TREE_H) java/zextract.o: java/zextract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ java/zipfile.h java/java-gimplify.o: java/java-gimplify.c $(CONFIG_H) $(SYSTEM_H) \ ! coretypes.h $(JAVA_TREE_H) $(GIMPLE_H) # jcf-io.o needs $(ZLIBINC) added to cflags. ! java/jcf-io.o: java/jcf-io.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ $(JAVA_TREE_H) java/zipfile.h $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(ZLIBINC) $(srcdir)/java/jcf-io.c $(OUTPUT_OPTION) # jcf-path.o needs a -D. ! java/jcf-path.o: java/jcf-path.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ java/jcf.h $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DLIBGCJ_ZIP_FILE='"$(datadir)/java/libgcj-$(version).jar"' \ diff -Nrcpad gcc-4.5.2/gcc/java/boehm.c gcc-4.6.0/gcc/java/boehm.c *** gcc-4.5.2/gcc/java/boehm.c Tue Sep 1 10:18:34 2009 --- gcc-4.6.0/gcc/java/boehm.c Tue Nov 30 16:36:19 2010 *************** *** 1,5 **** /* Functions related to the Boehm garbage collector. ! Copyright (C) 2000, 2003, 2004, 2006, 2009 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Functions related to the Boehm garbage collector. ! Copyright (C) 2000, 2003, 2004, 2006, 2009, 2010 ! Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 23,43 **** /* Written by Tom Tromey . */ ! #include ! #include "system.h" #include "coretypes.h" #include "tm.h" #include "tree.h" #include "java-tree.h" #include "parse.h" ! #include "toplev.h" ! static void mark_reference_fields (tree, unsigned HOST_WIDE_INT *, ! unsigned HOST_WIDE_INT *, unsigned int, int *, int *, int *, HOST_WIDE_INT *); - static void set_bit (unsigned HOST_WIDE_INT *, unsigned HOST_WIDE_INT *, - unsigned int); /* A procedure-based object descriptor. We know that our `kind' is 0, and `env' is likewise 0, so we have a simple --- 24,41 ---- /* Written by Tom Tromey . */ ! #include "config.h" #include "system.h" #include "coretypes.h" + #include "double-int.h" #include "tm.h" #include "tree.h" #include "java-tree.h" #include "parse.h" ! #include "diagnostic-core.h" ! static void mark_reference_fields (tree, double_int *, unsigned int, int *, int *, int *, HOST_WIDE_INT *); /* A procedure-based object descriptor. We know that our `kind' is 0, and `env' is likewise 0, so we have a simple *************** static void set_bit (unsigned HOST_WIDE_ *** 47,76 **** Here DS_PROC == 2. */ #define PROCEDURE_OBJECT_DESCRIPTOR 2 - /* Treat two HOST_WIDE_INT's as a contiguous bitmap, with bit 0 being - the least significant. This function sets bit N in the bitmap. */ - static void - set_bit (unsigned HOST_WIDE_INT *low, unsigned HOST_WIDE_INT *high, - unsigned int n) - { - unsigned HOST_WIDE_INT *which; - - if (n >= HOST_BITS_PER_WIDE_INT) - { - n -= HOST_BITS_PER_WIDE_INT; - which = high; - } - else - which = low; - - *which |= (unsigned HOST_WIDE_INT) 1 << n; - } - /* Recursively mark reference fields. */ static void mark_reference_fields (tree field, ! unsigned HOST_WIDE_INT *low, ! unsigned HOST_WIDE_INT *high, unsigned int ubit, int *pointer_after_end, int *all_bits_set, --- 45,54 ---- Here DS_PROC == 2. */ #define PROCEDURE_OBJECT_DESCRIPTOR 2 /* Recursively mark reference fields. */ static void mark_reference_fields (tree field, ! double_int *mask, unsigned int ubit, int *pointer_after_end, int *all_bits_set, *************** mark_reference_fields (tree field, *** 81,93 **** if (DECL_NAME (field) == NULL_TREE) { mark_reference_fields (TYPE_FIELDS (TREE_TYPE (field)), ! low, high, ubit, pointer_after_end, all_bits_set, last_set_index, last_view_index); ! field = TREE_CHAIN (field); } ! for (; field != NULL_TREE; field = TREE_CHAIN (field)) { HOST_WIDE_INT offset; HOST_WIDE_INT size_bytes; --- 59,71 ---- if (DECL_NAME (field) == NULL_TREE) { mark_reference_fields (TYPE_FIELDS (TREE_TYPE (field)), ! mask, ubit, pointer_after_end, all_bits_set, last_set_index, last_view_index); ! field = DECL_CHAIN (field); } ! for (; field != NULL_TREE; field = DECL_CHAIN (field)) { HOST_WIDE_INT offset; HOST_WIDE_INT size_bytes; *************** mark_reference_fields (tree field, *** 130,136 **** bits for all words in the record. This is conservative, but the size_words != 1 case is impossible in regular java code. */ for (i = 0; i < size_words; ++i) ! set_bit (low, high, ubit - count - i - 1); if (count >= ubit - 2) *pointer_after_end = 1; --- 108,114 ---- bits for all words in the record. This is conservative, but the size_words != 1 case is impossible in regular java code. */ for (i = 0; i < size_words; ++i) ! *mask = double_int_setbit (*mask, ubit - count - i - 1); if (count >= ubit - 2) *pointer_after_end = 1; *************** get_boehm_type_descriptor (tree type) *** 159,167 **** int last_set_index = 0; HOST_WIDE_INT last_view_index = -1; int pointer_after_end = 0; ! unsigned HOST_WIDE_INT low = 0, high = 0; tree field, value, value_type; /* If the GC wasn't requested, just use a null pointer. */ if (! flag_use_boehm_gc) return null_pointer_node; --- 137,147 ---- int last_set_index = 0; HOST_WIDE_INT last_view_index = -1; int pointer_after_end = 0; ! double_int mask; tree field, value, value_type; + mask = double_int_zero; + /* If the GC wasn't requested, just use a null pointer. */ if (! flag_use_boehm_gc) return null_pointer_node; *************** get_boehm_type_descriptor (tree type) *** 192,198 **** goto procedure_object_descriptor; field = TYPE_FIELDS (type); ! mark_reference_fields (field, &low, &high, ubit, &pointer_after_end, &all_bits_set, &last_set_index, &last_view_index); --- 172,178 ---- goto procedure_object_descriptor; field = TYPE_FIELDS (type); ! mark_reference_fields (field, &mask, ubit, &pointer_after_end, &all_bits_set, &last_set_index, &last_view_index); *************** get_boehm_type_descriptor (tree type) *** 215,237 **** that we don't have to emit reflection data for run time marking. */ count = 0; ! low = 0; ! high = 0; ++last_set_index; while (last_set_index) { if ((last_set_index & 1)) ! set_bit (&low, &high, log2_size + count); last_set_index >>= 1; ++count; } ! value = build_int_cst_wide (value_type, low, high); } else if (! pointer_after_end) { /* Bottom two bits for bitmap mark type are 01. */ ! set_bit (&low, &high, 0); ! value = build_int_cst_wide (value_type, low, high); } else { --- 195,216 ---- that we don't have to emit reflection data for run time marking. */ count = 0; ! mask = double_int_zero; ++last_set_index; while (last_set_index) { if ((last_set_index & 1)) ! mask = double_int_setbit (mask, log2_size + count); last_set_index >>= 1; ++count; } ! value = double_int_to_tree (value_type, mask); } else if (! pointer_after_end) { /* Bottom two bits for bitmap mark type are 01. */ ! mask = double_int_setbit (mask, 0); ! value = double_int_to_tree (value_type, mask); } else { diff -Nrcpad gcc-4.5.2/gcc/java/builtins.c gcc-4.6.0/gcc/java/builtins.c *** gcc-4.5.2/gcc/java/builtins.c Sat Nov 28 16:21:52 2009 --- gcc-4.6.0/gcc/java/builtins.c Mon Nov 29 14:09:41 2010 *************** *** 1,5 **** /* Built-in and inline functions for gcj ! Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of GCC. --- 1,5 ---- /* Built-in and inline functions for gcj ! Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 24,29 **** --- 24,32 ---- /* Written by Tom Tromey . */ + /* FIXME: Still need to include rtl.h here (see below). */ + #undef IN_GCC_FRONTEND + #include "config.h" #include "system.h" #include "coretypes.h" *************** The Free Software Foundation is independ *** 33,40 **** #include "flags.h" #include "langhooks.h" #include "java-tree.h" ! #include ! #include "convert.h" #include "rtl.h" #include "insn-codes.h" #include "expr.h" --- 36,44 ---- #include "flags.h" #include "langhooks.h" #include "java-tree.h" ! ! /* FIXME: All these headers are necessary for sync_compare_and_swap. ! Front ends should never have to look at that. */ #include "rtl.h" #include "insn-codes.h" #include "expr.h" *************** compareAndSwapInt_builtin (tree method_r *** 318,328 **** tree orig_call) { enum machine_mode mode = TYPE_MODE (int_type_node); ! if (sync_compare_and_swap[mode] != CODE_FOR_nothing || flag_use_atomic_builtins) { tree addr, stmt; UNMARSHAL5 (orig_call); addr = build_addr_sum (int_type_node, obj_arg, offset_arg); stmt = build_call_expr (built_in_decls[BUILT_IN_BOOL_COMPARE_AND_SWAP_4], --- 322,334 ---- tree orig_call) { enum machine_mode mode = TYPE_MODE (int_type_node); ! if (direct_optab_handler (sync_compare_and_swap_optab, mode) ! != CODE_FOR_nothing || flag_use_atomic_builtins) { tree addr, stmt; UNMARSHAL5 (orig_call); + (void) value_type; /* Avoid set but not used warning. */ addr = build_addr_sum (int_type_node, obj_arg, offset_arg); stmt = build_call_expr (built_in_decls[BUILT_IN_BOOL_COMPARE_AND_SWAP_4], *************** compareAndSwapLong_builtin (tree method_ *** 338,344 **** tree orig_call) { enum machine_mode mode = TYPE_MODE (long_type_node); ! if (sync_compare_and_swap[mode] != CODE_FOR_nothing || (GET_MODE_SIZE (mode) <= GET_MODE_SIZE (word_mode) && flag_use_atomic_builtins)) /* We don't trust flag_use_atomic_builtins for multi-word --- 344,351 ---- tree orig_call) { enum machine_mode mode = TYPE_MODE (long_type_node); ! if (direct_optab_handler (sync_compare_and_swap_optab, mode) ! != CODE_FOR_nothing || (GET_MODE_SIZE (mode) <= GET_MODE_SIZE (word_mode) && flag_use_atomic_builtins)) /* We don't trust flag_use_atomic_builtins for multi-word *************** compareAndSwapLong_builtin (tree method_ *** 347,352 **** --- 354,360 ---- { tree addr, stmt; UNMARSHAL5 (orig_call); + (void) value_type; /* Avoid set but not used warning. */ addr = build_addr_sum (long_type_node, obj_arg, offset_arg); stmt = build_call_expr (built_in_decls[BUILT_IN_BOOL_COMPARE_AND_SWAP_8], *************** compareAndSwapObject_builtin (tree metho *** 361,367 **** tree orig_call) { enum machine_mode mode = TYPE_MODE (ptr_type_node); ! if (sync_compare_and_swap[mode] != CODE_FOR_nothing || flag_use_atomic_builtins) { tree addr, stmt; --- 369,376 ---- tree orig_call) { enum machine_mode mode = TYPE_MODE (ptr_type_node); ! if (direct_optab_handler (sync_compare_and_swap_optab, mode) ! != CODE_FOR_nothing || flag_use_atomic_builtins) { tree addr, stmt; *************** getVolatile_builtin (tree method_return_ *** 410,416 **** { tree addr, stmt, modify_stmt, tmp; UNMARSHAL3 (orig_call); ! addr = build_addr_sum (method_return_type, obj_arg, offset_arg); addr = fold_convert (build_pointer_type (build_type_variant --- 419,426 ---- { tree addr, stmt, modify_stmt, tmp; UNMARSHAL3 (orig_call); ! (void) this_arg; /* Avoid set but not used warning. */ ! addr = build_addr_sum (method_return_type, obj_arg, offset_arg); addr = fold_convert (build_pointer_type (build_type_variant *************** VMSupportsCS8_builtin (tree method_retur *** 440,446 **** { enum machine_mode mode = TYPE_MODE (long_type_node); gcc_assert (method_return_type == boolean_type_node); ! if (sync_compare_and_swap[mode] != CODE_FOR_nothing) return boolean_true_node; else return boolean_false_node; --- 450,457 ---- { enum machine_mode mode = TYPE_MODE (long_type_node); gcc_assert (method_return_type == boolean_type_node); ! if (direct_optab_handler (sync_compare_and_swap_optab, mode) ! != CODE_FOR_nothing) return boolean_true_node; else return boolean_false_node; *************** initialize_builtins (void) *** 486,492 **** tree double_ftype_double, double_ftype_double_double; tree float_ftype_float_float; tree boolean_ftype_boolean_boolean; - tree t; int i; for (i = 0; java_builtins[i].builtin_code != END_BUILTINS; ++i) --- 497,502 ---- *************** initialize_builtins (void) *** 500,513 **** void_list_node = end_params_node; ! t = tree_cons (NULL_TREE, float_type_node, end_params_node); ! t = tree_cons (NULL_TREE, float_type_node, t); ! float_ftype_float_float = build_function_type (float_type_node, t); ! t = tree_cons (NULL_TREE, double_type_node, end_params_node); ! double_ftype_double = build_function_type (double_type_node, t); ! t = tree_cons (NULL_TREE, double_type_node, t); ! double_ftype_double_double = build_function_type (double_type_node, t); define_builtin (BUILT_IN_FMOD, "__builtin_fmod", double_ftype_double_double, "fmod", BUILTIN_CONST); --- 510,524 ---- void_list_node = end_params_node; ! float_ftype_float_float ! = build_function_type_list (float_type_node, ! float_type_node, float_type_node, NULL_TREE); ! double_ftype_double ! = build_function_type_list (double_type_node, double_type_node, NULL_TREE); ! double_ftype_double_double ! = build_function_type_list (double_type_node, ! double_type_node, double_type_node, NULL_TREE); define_builtin (BUILT_IN_FMOD, "__builtin_fmod", double_ftype_double_double, "fmod", BUILTIN_CONST); *************** initialize_builtins (void) *** 554,562 **** double_ftype_double, "_ZN4java4lang4Math3tanEJdd", BUILTIN_CONST); ! t = tree_cons (NULL_TREE, boolean_type_node, end_params_node); ! t = tree_cons (NULL_TREE, boolean_type_node, t); ! boolean_ftype_boolean_boolean = build_function_type (boolean_type_node, t); define_builtin (BUILT_IN_EXPECT, "__builtin_expect", boolean_ftype_boolean_boolean, "__builtin_expect", --- 565,574 ---- double_ftype_double, "_ZN4java4lang4Math3tanEJdd", BUILTIN_CONST); ! boolean_ftype_boolean_boolean ! = build_function_type_list (boolean_type_node, ! boolean_type_node, boolean_type_node, ! NULL_TREE); define_builtin (BUILT_IN_EXPECT, "__builtin_expect", boolean_ftype_boolean_boolean, "__builtin_expect", *************** initialize_builtins (void) *** 576,582 **** int_type_node, NULL_TREE), "__sync_bool_compare_and_swap_8", 0); define_builtin (BUILT_IN_SYNCHRONIZE, "__sync_synchronize", ! build_function_type (void_type_node, void_list_node), "__sync_synchronize", BUILTIN_NOTHROW); define_builtin (BUILT_IN_RETURN_ADDRESS, "__builtin_return_address", --- 588,594 ---- int_type_node, NULL_TREE), "__sync_bool_compare_and_swap_8", 0); define_builtin (BUILT_IN_SYNCHRONIZE, "__sync_synchronize", ! build_function_type_list (void_type_node, NULL_TREE), "__sync_synchronize", BUILTIN_NOTHROW); define_builtin (BUILT_IN_RETURN_ADDRESS, "__builtin_return_address", diff -Nrcpad gcc-4.5.2/gcc/java/class.c gcc-4.6.0/gcc/java/class.c *** gcc-4.5.2/gcc/java/class.c Tue Jul 7 02:55:59 2009 --- gcc-4.6.0/gcc/java/class.c Mon Nov 29 14:09:41 2010 *************** *** 1,6 **** /* Functions related to building classes and their related objects. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Functions related to building classes and their related objects. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,57 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "tree.h" - #include "rtl.h" #include "flags.h" #include "java-tree.h" #include "jcf.h" #include "obstack.h" #include "toplev.h" #include "output.h" #include "parse.h" #include "function.h" - #include "tm_p.h" #include "ggc.h" - #include "stdio.h" - #include "target.h" - #include "except.h" #include "cgraph.h" #include "tree-iterator.h" - #include "cgraph.h" #include "vecprim.h" ! ! /* DOS brain-damage */ ! #ifndef O_BINARY ! #define O_BINARY 0 /* MS-DOS brain-damage */ ! #endif static tree make_method_value (tree); static tree build_java_method_type (tree, tree, int); --- 27,48 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "tree.h" #include "flags.h" #include "java-tree.h" #include "jcf.h" #include "obstack.h" + #include "diagnostic-core.h" #include "toplev.h" #include "output.h" #include "parse.h" #include "function.h" #include "ggc.h" #include "cgraph.h" #include "tree-iterator.h" #include "vecprim.h" ! #include "tm.h" /* FIXME: For gcc_obstack_init from defaults.h. */ ! #include "target.h" static tree make_method_value (tree); static tree build_java_method_type (tree, tree, int); *************** static GTY(()) VEC(tree,gc) *registered_ *** 114,119 **** --- 105,114 ---- currently being compiled. */ static GTY(()) tree this_classdollar; + /* A list of static class fields. This is to emit proper debug + info for them. */ + VEC(tree,gc) *pending_static_fields; + /* Return the node that most closely represents the class whose name is IDENT. Start the search from NODE (followed by its siblings). Return NULL if an appropriate node does not exist. */ *************** make_class (void) *** 383,388 **** --- 378,389 ---- loading works. */ TYPE_BINFO (type) = make_tree_binfo (0); MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC (type); + TYPE_CATCH_CLASSES (type) = NULL; + /* Push a dummy entry; we can't call make_catch_class_record here + because other infrastructure may not be set up yet. We'll come + back and fill it in later once said infrastructure is + initialized. */ + CONSTRUCTOR_APPEND_ELT (TYPE_CATCH_CLASSES (type), NULL_TREE, NULL_TREE); return type; } *************** add_method_1 (tree this_class, int acces *** 764,783 **** DECL_CONTEXT (fndecl) = this_class; DECL_LANG_SPECIFIC (fndecl) ! = GGC_CNEW (struct lang_decl); DECL_LANG_SPECIFIC (fndecl)->desc = LANG_DECL_FUNC; /* Initialize the static initializer test table. */ ! ! DECL_FUNCTION_INIT_TEST_TABLE (fndecl) = ! java_treetreehash_create (10, 1); /* Initialize the initialized (static) class table. */ if (access_flags & ACC_STATIC) DECL_FUNCTION_INITIALIZED_CLASS_TABLE (fndecl) = htab_create_ggc (50, htab_hash_pointer, htab_eq_pointer, NULL); ! TREE_CHAIN (fndecl) = TYPE_METHODS (this_class); TYPE_METHODS (this_class) = fndecl; /* If pointers to member functions use the least significant bit to --- 765,783 ---- DECL_CONTEXT (fndecl) = this_class; DECL_LANG_SPECIFIC (fndecl) ! = ggc_alloc_cleared_lang_decl(sizeof (struct lang_decl)); DECL_LANG_SPECIFIC (fndecl)->desc = LANG_DECL_FUNC; /* Initialize the static initializer test table. */ ! ! DECL_FUNCTION_INIT_TEST_TABLE (fndecl) = java_treetreehash_create (10); /* Initialize the initialized (static) class table. */ if (access_flags & ACC_STATIC) DECL_FUNCTION_INITIALIZED_CLASS_TABLE (fndecl) = htab_create_ggc (50, htab_hash_pointer, htab_eq_pointer, NULL); ! DECL_CHAIN (fndecl) = TYPE_METHODS (this_class); TYPE_METHODS (this_class) = fndecl; /* If pointers to member functions use the least significant bit to *************** add_field (tree klass, tree name, tree f *** 848,854 **** tree field; field = build_decl (input_location, is_static ? VAR_DECL : FIELD_DECL, name, field_type); ! TREE_CHAIN (field) = TYPE_FIELDS (klass); TYPE_FIELDS (klass) = field; DECL_CONTEXT (field) = klass; MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (field); --- 848,854 ---- tree field; field = build_decl (input_location, is_static ? VAR_DECL : FIELD_DECL, name, field_type); ! DECL_CHAIN (field) = TYPE_FIELDS (klass); TYPE_FIELDS (klass) = field; DECL_CONTEXT (field) = klass; MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (field); *************** add_field (tree klass, tree name, tree f *** 878,883 **** --- 878,885 ---- /* Considered external unless we are compiling it into this object file. */ DECL_EXTERNAL (field) = (is_compiled_class (klass) != 2); + if (!DECL_EXTERNAL (field)) + VEC_safe_push (tree, gc, pending_static_fields, field); } return field; *************** hashUtf8String (const char *str, int len *** 929,936 **** return hash; } - static GTY(()) tree utf8_decl_list = NULL_TREE; - tree build_utf8_ref (tree name) { --- 931,936 ---- *************** build_utf8_ref (tree name) *** 942,947 **** --- 942,948 ---- int name_hash; tree ref = IDENTIFIER_UTF8_REF (name); tree decl; + VEC(constructor_elt,gc) *v = NULL; if (ref != NULL_TREE) return ref; *************** build_utf8_ref (tree name) *** 956,969 **** ctype, field, "length", unsigned_short_type_node); PUSH_FIELD (input_location, ctype, field, "data", str_type); FINISH_RECORD (ctype); ! START_RECORD_CONSTRUCTOR (cinit, ctype); name_hash = hashUtf8String (name_ptr, name_len) & 0xFFFF; ! PUSH_FIELD_VALUE (cinit, "hash", build_int_cst (NULL_TREE, name_hash)); ! PUSH_FIELD_VALUE (cinit, "length", build_int_cst (NULL_TREE, name_len)); string = build_string (name_len, name_ptr); TREE_TYPE (string) = str_type; ! PUSH_FIELD_VALUE (cinit, "data", string); ! FINISH_RECORD_CONSTRUCTOR (cinit); TREE_CONSTANT (cinit) = 1; /* Generate a unique-enough identifier. */ --- 957,970 ---- ctype, field, "length", unsigned_short_type_node); PUSH_FIELD (input_location, ctype, field, "data", str_type); FINISH_RECORD (ctype); ! START_RECORD_CONSTRUCTOR (v, ctype); name_hash = hashUtf8String (name_ptr, name_len) & 0xFFFF; ! PUSH_FIELD_VALUE (v, "hash", build_int_cst (NULL_TREE, name_hash)); ! PUSH_FIELD_VALUE (v, "length", build_int_cst (NULL_TREE, name_len)); string = build_string (name_len, name_ptr); TREE_TYPE (string) = str_type; ! PUSH_FIELD_VALUE (v, "data", string); ! FINISH_RECORD_CONSTRUCTOR (cinit, v, ctype); TREE_CONSTANT (cinit) = 1; /* Generate a unique-enough identifier. */ *************** build_utf8_ref (tree name) *** 977,982 **** --- 978,984 ---- TREE_READONLY (decl) = 1; TREE_THIS_VOLATILE (decl) = 0; DECL_INITIAL (decl) = cinit; + DECL_USER_ALIGN (decl) = 1; if (HAVE_GAS_SHF_MERGE) { *************** build_utf8_ref (tree name) *** 994,1007 **** } } - TREE_CHAIN (decl) = utf8_decl_list; layout_decl (decl, 0); DECL_SIZE (decl) = TYPE_SIZE (ctype); DECL_SIZE_UNIT (decl) = TYPE_SIZE_UNIT (ctype); pushdecl (decl); rest_of_decl_compilation (decl, global_bindings_p (), 0); varpool_mark_needed_node (varpool_node (decl)); - utf8_decl_list = decl; ref = build1 (ADDR_EXPR, utf8const_ptr_type, decl); IDENTIFIER_UTF8_REF (name) = ref; return ref; --- 996,1007 ---- *************** make_local_function_alias (tree method) *** 1394,1400 **** *name = 'L'; strcpy (name + 1, method_name); ! ASM_GENERATE_INTERNAL_LABEL (buf, name, alias_labelno++); alias = build_decl (input_location, FUNCTION_DECL, get_identifier (buf), TREE_TYPE (method)); --- 1394,1400 ---- *name = 'L'; strcpy (name + 1, method_name); ! targetm.asm_out.generate_internal_label (buf, name, alias_labelno++); alias = build_decl (input_location, FUNCTION_DECL, get_identifier (buf), TREE_TYPE (method)); *************** make_field_value (tree fdecl) *** 1425,1433 **** int flags; tree type = TREE_TYPE (fdecl); int resolved = is_compiled_class (type) && ! flag_indirect_dispatch; ! START_RECORD_CONSTRUCTOR (finit, field_type_node); ! PUSH_FIELD_VALUE (finit, "name", build_utf8_ref (DECL_NAME (fdecl))); if (resolved) type = build_class_ref (type); else --- 1425,1434 ---- int flags; tree type = TREE_TYPE (fdecl); int resolved = is_compiled_class (type) && ! flag_indirect_dispatch; + VEC(constructor_elt,gc) *v = NULL; ! START_RECORD_CONSTRUCTOR (v, field_type_node); ! PUSH_FIELD_VALUE (v, "name", build_utf8_ref (DECL_NAME (fdecl))); if (resolved) type = build_class_ref (type); else *************** make_field_value (tree fdecl) *** 1438,1471 **** (IDENTIFIER_POINTER (signature), IDENTIFIER_LENGTH (signature))); } ! PUSH_FIELD_VALUE (finit, "type", type); flags = get_access_flags_from_decl (fdecl); if (! resolved) flags |= 0x8000 /* FIELD_UNRESOLVED_FLAG */; ! PUSH_FIELD_VALUE (finit, "accflags", build_int_cst (NULL_TREE, flags)); ! PUSH_FIELD_VALUE (finit, "bsize", TYPE_SIZE_UNIT (TREE_TYPE (fdecl))); { tree field_address = integer_zero_node; if ((DECL_INITIAL (fdecl) || ! flag_indirect_classes) && FIELD_STATIC (fdecl)) field_address = build_address_of (fdecl); ! PUSH_FIELD_VALUE ! (finit, "info", ! build_constructor_from_list (field_info_union_node, ! build_tree_list ! ((FIELD_STATIC (fdecl) ! ? TREE_CHAIN (TYPE_FIELDS (field_info_union_node)) ! : TYPE_FIELDS (field_info_union_node)), ! (FIELD_STATIC (fdecl) ? field_address ! : byte_position (fdecl))))); } ! FINISH_RECORD_CONSTRUCTOR (finit); return finit; } --- 1439,1473 ---- (IDENTIFIER_POINTER (signature), IDENTIFIER_LENGTH (signature))); } ! PUSH_FIELD_VALUE (v, "type", type); flags = get_access_flags_from_decl (fdecl); if (! resolved) flags |= 0x8000 /* FIELD_UNRESOLVED_FLAG */; ! PUSH_FIELD_VALUE (v, "accflags", build_int_cst (NULL_TREE, flags)); ! PUSH_FIELD_VALUE (v, "bsize", TYPE_SIZE_UNIT (TREE_TYPE (fdecl))); { tree field_address = integer_zero_node; + tree index, value; if ((DECL_INITIAL (fdecl) || ! flag_indirect_classes) && FIELD_STATIC (fdecl)) field_address = build_address_of (fdecl); ! index = (FIELD_STATIC (fdecl) ! ? DECL_CHAIN (TYPE_FIELDS (field_info_union_node)) ! : TYPE_FIELDS (field_info_union_node)); ! value = (FIELD_STATIC (fdecl) ? field_address ! : byte_position (fdecl)); ! ! PUSH_FIELD_VALUE ! (v, "info", ! build_constructor_single (field_info_union_node, index, value)); } ! FINISH_RECORD_CONSTRUCTOR (finit, v, field_type_node); return finit; } *************** make_method_value (tree mdecl) *** 1481,1486 **** --- 1483,1489 ---- tree class_decl; #define ACC_TRANSLATED 0x4000 int accflags = get_access_flags_from_decl (mdecl) | ACC_TRANSLATED; + VEC(constructor_elt,gc) *v = NULL; class_decl = DECL_CONTEXT (mdecl); /* For interfaces, the index field contains the dispatch index. */ *************** make_method_value (tree mdecl) *** 1499,1543 **** else code = build1 (ADDR_EXPR, nativecode_ptr_type_node, make_local_function_alias (mdecl)); ! START_RECORD_CONSTRUCTOR (minit, method_type_node); ! PUSH_FIELD_VALUE (minit, "name", build_utf8_ref (DECL_CONSTRUCTOR_P (mdecl) ? init_identifier_node : DECL_NAME (mdecl))); { tree signature = build_java_signature (TREE_TYPE (mdecl)); ! PUSH_FIELD_VALUE (minit, "signature", (build_utf8_ref (unmangle_classname (IDENTIFIER_POINTER(signature), IDENTIFIER_LENGTH(signature))))); } ! PUSH_FIELD_VALUE (minit, "accflags", build_int_cst (NULL_TREE, accflags)); ! PUSH_FIELD_VALUE (minit, "index", index); ! PUSH_FIELD_VALUE (minit, "ncode", code); { /* Compute the `throws' information for the method. */ tree table = null_pointer_node; ! if (DECL_FUNCTION_THROWS (mdecl) != NULL_TREE) { ! int length = 1 + list_length (DECL_FUNCTION_THROWS (mdecl)); ! tree iter, type, array; char buf[60]; ! table = tree_cons (NULL_TREE, table, NULL_TREE); ! for (iter = DECL_FUNCTION_THROWS (mdecl); ! iter != NULL_TREE; ! iter = TREE_CHAIN (iter)) { ! tree sig = DECL_NAME (TYPE_NAME (TREE_VALUE (iter))); tree utf8 = build_utf8_ref (unmangle_classname (IDENTIFIER_POINTER (sig), IDENTIFIER_LENGTH (sig))); ! table = tree_cons (NULL_TREE, utf8, table); } type = build_prim_array_type (ptr_type_node, length); ! table = build_constructor_from_list (type, table); /* Compute something unique enough. */ sprintf (buf, "_methods%d", method_name_count++); array = build_decl (input_location, --- 1502,1556 ---- else code = build1 (ADDR_EXPR, nativecode_ptr_type_node, make_local_function_alias (mdecl)); ! START_RECORD_CONSTRUCTOR (v, method_type_node); ! PUSH_FIELD_VALUE (v, "name", build_utf8_ref (DECL_CONSTRUCTOR_P (mdecl) ? init_identifier_node : DECL_NAME (mdecl))); { tree signature = build_java_signature (TREE_TYPE (mdecl)); ! PUSH_FIELD_VALUE (v, "signature", (build_utf8_ref (unmangle_classname (IDENTIFIER_POINTER(signature), IDENTIFIER_LENGTH(signature))))); } ! PUSH_FIELD_VALUE (v, "accflags", build_int_cst (NULL_TREE, accflags)); ! PUSH_FIELD_VALUE (v, "index", index); ! PUSH_FIELD_VALUE (v, "ncode", code); { /* Compute the `throws' information for the method. */ tree table = null_pointer_node; ! ! if (!VEC_empty (tree, DECL_FUNCTION_THROWS (mdecl))) { ! int length = 1 + VEC_length (tree, DECL_FUNCTION_THROWS (mdecl)); ! tree t, type, array; char buf[60]; + VEC(constructor_elt,gc) *v = NULL; + int idx = length - 1; + unsigned ix; + constructor_elt *e; ! v = VEC_alloc (constructor_elt, gc, length); ! VEC_safe_grow_cleared (constructor_elt, gc, v, length); ! ! e = VEC_index (constructor_elt, v, idx--); ! e->value = null_pointer_node; ! ! FOR_EACH_VEC_ELT (tree, DECL_FUNCTION_THROWS (mdecl), ix, t) { ! tree sig = DECL_NAME (TYPE_NAME (t)); tree utf8 = build_utf8_ref (unmangle_classname (IDENTIFIER_POINTER (sig), IDENTIFIER_LENGTH (sig))); ! e = VEC_index (constructor_elt, v, idx--); ! e->value = utf8; } + gcc_assert (idx == -1); type = build_prim_array_type (ptr_type_node, length); ! table = build_constructor (type, v); /* Compute something unique enough. */ sprintf (buf, "_methods%d", method_name_count++); array = build_decl (input_location, *************** make_method_value (tree mdecl) *** 1551,1560 **** table = build1 (ADDR_EXPR, ptr_type_node, array); } ! PUSH_FIELD_VALUE (minit, "throws", table); } ! FINISH_RECORD_CONSTRUCTOR (minit); return minit; } --- 1564,1573 ---- table = build1 (ADDR_EXPR, ptr_type_node, array); } ! PUSH_FIELD_VALUE (v, "throws", table); } ! FINISH_RECORD_CONSTRUCTOR (minit, v, method_type_node); return minit; } *************** get_dispatch_vector (tree type) *** 1580,1586 **** } for (method = TYPE_METHODS (type); method != NULL_TREE; ! method = TREE_CHAIN (method)) { tree method_index = get_method_index (method); if (method_index != NULL_TREE --- 1593,1599 ---- } for (method = TYPE_METHODS (type); method != NULL_TREE; ! method = DECL_CHAIN (method)) { tree method_index = get_method_index (method); if (method_index != NULL_TREE *************** get_dispatch_table (tree type, tree this *** 1598,1608 **** int abstract_p = CLASS_ABSTRACT (TYPE_NAME (type)); tree vtable = get_dispatch_vector (type); int i, j; - tree list = NULL_TREE; int nvirtuals = TREE_VEC_LENGTH (vtable); int arraysize; tree gc_descr; for (i = nvirtuals; --i >= 0; ) { tree method = TREE_VEC_ELT (vtable, i); --- 1611,1632 ---- int abstract_p = CLASS_ABSTRACT (TYPE_NAME (type)); tree vtable = get_dispatch_vector (type); int i, j; int nvirtuals = TREE_VEC_LENGTH (vtable); int arraysize; tree gc_descr; + VEC(constructor_elt,gc) *v = NULL; + constructor_elt *e; + tree arraytype; + arraysize = (TARGET_VTABLE_USES_DESCRIPTORS? nvirtuals + 1 : nvirtuals + 2); + if (TARGET_VTABLE_USES_DESCRIPTORS) + arraysize *= TARGET_VTABLE_USES_DESCRIPTORS; + arraysize += 2; + + VEC_safe_grow_cleared (constructor_elt, gc, v, arraysize); + e = VEC_index (constructor_elt, v, arraysize - 1); + + #define CONSTRUCTOR_PREPEND_VALUE(E, V) E->value = V, E-- for (i = nvirtuals; --i >= 0; ) { tree method = TREE_VEC_ELT (vtable, i); *************** get_dispatch_table (tree type, tree this *** 1614,1622 **** if (TARGET_VTABLE_USES_DESCRIPTORS) for (j = 0; j < TARGET_VTABLE_USES_DESCRIPTORS; ++j) ! list = tree_cons (NULL_TREE, null_pointer_node, list); else ! list = tree_cons (NULL_TREE, null_pointer_node, list); } else { --- 1638,1646 ---- if (TARGET_VTABLE_USES_DESCRIPTORS) for (j = 0; j < TARGET_VTABLE_USES_DESCRIPTORS; ++j) ! CONSTRUCTOR_PREPEND_VALUE (e, null_pointer_node); else ! CONSTRUCTOR_PREPEND_VALUE (e, null_pointer_node); } else { *************** get_dispatch_table (tree type, tree this *** 1626,1638 **** tree fdesc = build2 (FDESC_EXPR, nativecode_ptr_type_node, method, build_int_cst (NULL_TREE, j)); TREE_CONSTANT (fdesc) = 1; ! list = tree_cons (NULL_TREE, fdesc, list); } else ! list = tree_cons (NULL_TREE, ! build1 (ADDR_EXPR, nativecode_ptr_type_node, ! method), ! list); } } --- 1650,1662 ---- tree fdesc = build2 (FDESC_EXPR, nativecode_ptr_type_node, method, build_int_cst (NULL_TREE, j)); TREE_CONSTANT (fdesc) = 1; ! CONSTRUCTOR_PREPEND_VALUE (e, fdesc); } else ! CONSTRUCTOR_PREPEND_VALUE (e, ! build1 (ADDR_EXPR, ! nativecode_ptr_type_node, ! method)); } } *************** get_dispatch_table (tree type, tree this *** 1645,1667 **** pointer, and subsequent words (usually one) contain the GC descriptor. In all other cases, we reserve two extra vtable slots. */ gc_descr = get_boehm_type_descriptor (type); ! list = tree_cons (NULL_TREE, gc_descr, list); for (j = 1; j < TARGET_VTABLE_USES_DESCRIPTORS-1; ++j) ! list = tree_cons (NULL_TREE, gc_descr, list); ! list = tree_cons (NULL_TREE, this_class_addr, list); /** Pointer to type_info object (to be implemented), according to g++ ABI. */ ! list = tree_cons (NULL_TREE, null_pointer_node, list); /** Offset to start of whole object. Always (ptrdiff_t)0 for Java. */ ! list = tree_cons (integer_zero_node, null_pointer_node, list); ! arraysize = (TARGET_VTABLE_USES_DESCRIPTORS? nvirtuals + 1 : nvirtuals + 2); ! if (TARGET_VTABLE_USES_DESCRIPTORS) ! arraysize *= TARGET_VTABLE_USES_DESCRIPTORS; ! arraysize += 2; ! return build_constructor_from_list ! (build_prim_array_type (nativecode_ptr_type_node, ! arraysize), list); } --- 1669,1689 ---- pointer, and subsequent words (usually one) contain the GC descriptor. In all other cases, we reserve two extra vtable slots. */ gc_descr = get_boehm_type_descriptor (type); ! CONSTRUCTOR_PREPEND_VALUE (e, gc_descr); for (j = 1; j < TARGET_VTABLE_USES_DESCRIPTORS-1; ++j) ! CONSTRUCTOR_PREPEND_VALUE (e, gc_descr); ! CONSTRUCTOR_PREPEND_VALUE (e, this_class_addr); /** Pointer to type_info object (to be implemented), according to g++ ABI. */ ! CONSTRUCTOR_PREPEND_VALUE (e, null_pointer_node); /** Offset to start of whole object. Always (ptrdiff_t)0 for Java. */ ! gcc_assert (e == VEC_address (constructor_elt, v)); ! e->index = integer_zero_node; ! e->value = null_pointer_node; ! #undef CONSTRUCTOR_PREPEND_VALUE ! arraytype = build_prim_array_type (nativecode_ptr_type_node, arraysize); ! return build_constructor (arraytype, v); } *************** supers_all_compiled (tree type) *** 1717,1735 **** return 1; } void make_class_data (tree type) { tree decl, cons, temp; tree field, fields_decl; - tree static_fields = NULL_TREE; - tree instance_fields = NULL_TREE; HOST_WIDE_INT static_field_count = 0; HOST_WIDE_INT instance_field_count = 0; HOST_WIDE_INT field_count; tree field_array_type; tree method; - tree methods = NULL_TREE; tree dtable_decl = NULL_TREE; HOST_WIDE_INT method_count = 0; tree method_array_type; --- 1739,1777 ---- return 1; } + static void + add_table_and_syms (VEC(constructor_elt,gc) **v, + VEC(method_entry,gc) *methods, + const char *table_name, tree table_slot, tree table_type, + const char *syms_name, tree syms_slot) + { + if (methods == NULL) + { + PUSH_FIELD_VALUE (*v, table_name, null_pointer_node); + PUSH_FIELD_VALUE (*v, syms_name, null_pointer_node); + } + else + { + pushdecl_top_level (syms_slot); + PUSH_FIELD_VALUE (*v, table_name, + build1 (ADDR_EXPR, table_type, table_slot)); + PUSH_FIELD_VALUE (*v, syms_name, + build1 (ADDR_EXPR, symbols_array_ptr_type, + syms_slot)); + TREE_CONSTANT (table_slot) = 1; + } + } + void make_class_data (tree type) { tree decl, cons, temp; tree field, fields_decl; HOST_WIDE_INT static_field_count = 0; HOST_WIDE_INT instance_field_count = 0; HOST_WIDE_INT field_count; tree field_array_type; tree method; tree dtable_decl = NULL_TREE; HOST_WIDE_INT method_count = 0; tree method_array_type; *************** make_class_data (tree type) *** 1748,1753 **** --- 1790,1800 ---- tree dtable_start_offset = size_int (2 * POINTER_SIZE / BITS_PER_UNIT); VEC(int, heap) *field_indexes; tree first_real_field; + VEC(constructor_elt,gc) *v1 = NULL, *v2 = NULL; + tree reflection_data; + VEC(constructor_elt,gc) *static_fields = NULL; + VEC(constructor_elt,gc) *instance_fields = NULL; + VEC(constructor_elt,gc) *methods = NULL; this_class_addr = build_static_class_ref (type); decl = TREE_OPERAND (this_class_addr, 0); *************** make_class_data (tree type) *** 1789,1801 **** /* Build Field array. */ field = TYPE_FIELDS (type); while (field && DECL_ARTIFICIAL (field)) ! field = TREE_CHAIN (field); /* Skip dummy fields. */ if (field && DECL_NAME (field) == NULL_TREE) ! field = TREE_CHAIN (field); /* Skip dummy field for inherited data. */ first_real_field = field; /* First count static and instance fields. */ ! for ( ; field != NULL_TREE; field = TREE_CHAIN (field)) { if (! DECL_ARTIFICIAL (field)) { --- 1836,1848 ---- /* Build Field array. */ field = TYPE_FIELDS (type); while (field && DECL_ARTIFICIAL (field)) ! field = DECL_CHAIN (field); /* Skip dummy fields. */ if (field && DECL_NAME (field) == NULL_TREE) ! field = DECL_CHAIN (field); /* Skip dummy field for inherited data. */ first_real_field = field; /* First count static and instance fields. */ ! for ( ; field != NULL_TREE; field = DECL_CHAIN (field)) { if (! DECL_ARTIFICIAL (field)) { *************** make_class_data (tree type) *** 1824,1830 **** for (i = 0, field = first_real_field; field != NULL_TREE; ! field = TREE_CHAIN (field), i++) { if (! DECL_ARTIFICIAL (field)) { --- 1871,1877 ---- for (i = 0, field = first_real_field; field != NULL_TREE; ! field = DECL_CHAIN (field), i++) { if (! DECL_ARTIFICIAL (field)) { *************** make_class_data (tree type) *** 1841,1847 **** } for (field = first_real_field; field != NULL_TREE; ! field = TREE_CHAIN (field)) { if (! DECL_ARTIFICIAL (field)) { --- 1888,1894 ---- } for (field = first_real_field; field != NULL_TREE; ! field = DECL_CHAIN (field)) { if (! DECL_ARTIFICIAL (field)) { *************** make_class_data (tree type) *** 1851,1857 **** as it is used in the creation of the field itself. */ tree init = make_field_value (field); tree initial = DECL_INITIAL (field); ! static_fields = tree_cons (NULL_TREE, init, static_fields); /* If the initial value is a string constant, prevent output_constant from trying to assemble the value. */ if (initial != NULL_TREE --- 1898,1904 ---- as it is used in the creation of the field itself. */ tree init = make_field_value (field); tree initial = DECL_INITIAL (field); ! CONSTRUCTOR_APPEND_ELT (static_fields, NULL_TREE, init); /* If the initial value is a string constant, prevent output_constant from trying to assemble the value. */ if (initial != NULL_TREE *************** make_class_data (tree type) *** 1863,1884 **** else if (uses_jv_markobj || !flag_reduced_reflection) { tree init = make_field_value (field); ! instance_fields = tree_cons (NULL_TREE, init, instance_fields); } } } if (field_count > 0) { ! static_fields = nreverse (static_fields); ! instance_fields = nreverse (instance_fields); ! static_fields = chainon (static_fields, instance_fields); field_array_type = build_prim_array_type (field_type_node, field_count); fields_decl = build_decl (input_location, VAR_DECL, mangled_classname ("_FL_", type), field_array_type); ! DECL_INITIAL (fields_decl) = build_constructor_from_list ! (field_array_type, static_fields); TREE_STATIC (fields_decl) = 1; DECL_ARTIFICIAL (fields_decl) = 1; DECL_IGNORED_P (fields_decl) = 1; --- 1910,1934 ---- else if (uses_jv_markobj || !flag_reduced_reflection) { tree init = make_field_value (field); ! CONSTRUCTOR_APPEND_ELT (instance_fields, NULL_TREE, init); } } } + gcc_assert (static_field_count + == (int) VEC_length (constructor_elt, static_fields)); + gcc_assert (instance_field_count + == (int) VEC_length (constructor_elt, instance_fields)); + if (field_count > 0) { ! VEC_safe_splice (constructor_elt, gc, static_fields, instance_fields); field_array_type = build_prim_array_type (field_type_node, field_count); fields_decl = build_decl (input_location, VAR_DECL, mangled_classname ("_FL_", type), field_array_type); ! DECL_INITIAL (fields_decl) ! = build_constructor (field_array_type, static_fields); TREE_STATIC (fields_decl) = 1; DECL_ARTIFICIAL (fields_decl) = 1; DECL_IGNORED_P (fields_decl) = 1; *************** make_class_data (tree type) *** 1889,1895 **** /* Build Method array. */ for (method = TYPE_METHODS (type); ! method != NULL_TREE; method = TREE_CHAIN (method)) { tree init; if (METHOD_PRIVATE (method) --- 1939,1945 ---- /* Build Method array. */ for (method = TYPE_METHODS (type); ! method != NULL_TREE; method = DECL_CHAIN (method)) { tree init; if (METHOD_PRIVATE (method) *************** make_class_data (tree type) *** 1927,1941 **** { init = make_method_value (method); method_count++; ! methods = tree_cons (NULL_TREE, init, methods); } } method_array_type = build_prim_array_type (method_type_node, method_count); methods_decl = build_decl (input_location, VAR_DECL, mangled_classname ("_MT_", type), method_array_type); ! DECL_INITIAL (methods_decl) = build_constructor_from_list ! (method_array_type, nreverse (methods)); TREE_STATIC (methods_decl) = 1; DECL_ARTIFICIAL (methods_decl) = 1; DECL_IGNORED_P (methods_decl) = 1; --- 1977,1990 ---- { init = make_method_value (method); method_count++; ! CONSTRUCTOR_APPEND_ELT (methods, NULL_TREE, init); } } method_array_type = build_prim_array_type (method_type_node, method_count); methods_decl = build_decl (input_location, VAR_DECL, mangled_classname ("_MT_", type), method_array_type); ! DECL_INITIAL (methods_decl) = build_constructor (method_array_type, methods); TREE_STATIC (methods_decl) = 1; DECL_ARTIFICIAL (methods_decl) = 1; DECL_IGNORED_P (methods_decl) = 1; *************** make_class_data (tree type) *** 1973,1988 **** if (interface_len > 0) { - tree init = NULL_TREE; int i; tree interface_array_type, idecl; interface_array_type = build_prim_array_type (class_ptr_type, interface_len); idecl = build_decl (input_location, VAR_DECL, mangled_classname ("_IF_", type), interface_array_type); ! for (i = interface_len; i > 0; i--) { tree child = BINFO_BASE_BINFO (TYPE_BINFO (type), i); tree iclass = BINFO_TYPE (child); --- 2022,2038 ---- if (interface_len > 0) { int i; tree interface_array_type, idecl; + VEC(constructor_elt,gc) *init = VEC_alloc (constructor_elt, gc, + interface_len); interface_array_type = build_prim_array_type (class_ptr_type, interface_len); idecl = build_decl (input_location, VAR_DECL, mangled_classname ("_IF_", type), interface_array_type); ! for (i = 1; i <= interface_len; i++) { tree child = BINFO_BASE_BINFO (TYPE_BINFO (type), i); tree iclass = BINFO_TYPE (child); *************** make_class_data (tree type) *** 1996,2005 **** int int_index = alloc_class_constant (iclass); index = build_int_cst (ptr_type_node, int_index); } ! init = tree_cons (NULL_TREE, index, init); } ! DECL_INITIAL (idecl) = build_constructor_from_list (interface_array_type, ! init); TREE_STATIC (idecl) = 1; DECL_ARTIFICIAL (idecl) = 1; DECL_IGNORED_P (idecl) = 1; --- 2046,2054 ---- int int_index = alloc_class_constant (iclass); index = build_int_cst (ptr_type_node, int_index); } ! CONSTRUCTOR_APPEND_ELT (init, NULL_TREE, index); } ! DECL_INITIAL (idecl) = build_constructor (interface_array_type, init); TREE_STATIC (idecl) = 1; DECL_ARTIFICIAL (idecl) = 1; DECL_IGNORED_P (idecl) = 1; *************** make_class_data (tree type) *** 2032,2039 **** TYPE_CTABLE_DECL (type) = emit_catch_table (type); ! START_RECORD_CONSTRUCTOR (temp, object_type_node); ! PUSH_FIELD_VALUE (temp, "vtable", (flag_indirect_classes ? null_pointer_node : build2 (POINTER_PLUS_EXPR, dtable_ptr_type, --- 2081,2088 ---- TYPE_CTABLE_DECL (type) = emit_catch_table (type); ! START_RECORD_CONSTRUCTOR (v1, object_type_node); ! PUSH_FIELD_VALUE (v1, "vtable", (flag_indirect_classes ? null_pointer_node : build2 (POINTER_PLUS_EXPR, dtable_ptr_type, *************** make_class_data (tree type) *** 2041,2155 **** class_dtable_decl), dtable_start_offset))); if (! flag_hash_synchronization) ! PUSH_FIELD_VALUE (temp, "sync_info", null_pointer_node); ! FINISH_RECORD_CONSTRUCTOR (temp); ! START_RECORD_CONSTRUCTOR (cons, class_type_node); ! PUSH_SUPER_VALUE (cons, temp); ! PUSH_FIELD_VALUE (cons, "next_or_version", gcj_abi_version); ! PUSH_FIELD_VALUE (cons, "name", build_utf8_ref (DECL_NAME (type_decl))); ! PUSH_FIELD_VALUE (cons, "accflags", build_int_cst (NULL_TREE, get_access_flags_from_decl (type_decl))); ! PUSH_FIELD_VALUE (cons, "superclass", CLASS_INTERFACE (type_decl) ? null_pointer_node : super); ! PUSH_FIELD_VALUE (cons, "constants", constant_pool_constructor); ! PUSH_FIELD_VALUE (cons, "methods", methods_decl == NULL_TREE ? null_pointer_node : build1 (ADDR_EXPR, method_ptr_type_node, methods_decl)); ! PUSH_FIELD_VALUE (cons, "method_count", build_int_cst (NULL_TREE, method_count)); ! if (flag_indirect_dispatch) ! PUSH_FIELD_VALUE (cons, "vtable_method_count", integer_minus_one_node); ! else ! PUSH_FIELD_VALUE (cons, "vtable_method_count", TYPE_NVIRTUALS (type)); ! PUSH_FIELD_VALUE (cons, "fields", fields_decl == NULL_TREE ? null_pointer_node : build1 (ADDR_EXPR, field_ptr_type_node, fields_decl)); /* If we're using the binary compatibility ABI we don't know the size until load time. */ ! PUSH_FIELD_VALUE (cons, "size_in_bytes", (flag_indirect_dispatch ? integer_minus_one_node : size_in_bytes (type))); ! PUSH_FIELD_VALUE (cons, "field_count", build_int_cst (NULL_TREE, field_count)); ! PUSH_FIELD_VALUE (cons, "static_field_count", build_int_cst (NULL_TREE, static_field_count)); ! if (flag_indirect_dispatch) ! PUSH_FIELD_VALUE (cons, "vtable", null_pointer_node); ! else ! PUSH_FIELD_VALUE (cons, "vtable", ! dtable_decl == NULL_TREE ? null_pointer_node ! : build2 (POINTER_PLUS_EXPR, dtable_ptr_type, build1 (ADDR_EXPR, dtable_ptr_type, dtable_decl), ! dtable_start_offset)); ! if (TYPE_OTABLE_METHODS (type) == NULL_TREE) ! { ! PUSH_FIELD_VALUE (cons, "otable", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "otable_syms", null_pointer_node); ! } ! else ! { ! pushdecl_top_level (TYPE_OTABLE_SYMS_DECL (type)); ! PUSH_FIELD_VALUE (cons, "otable", ! build1 (ADDR_EXPR, otable_ptr_type, TYPE_OTABLE_DECL (type))); ! PUSH_FIELD_VALUE (cons, "otable_syms", ! build1 (ADDR_EXPR, symbols_array_ptr_type, ! TYPE_OTABLE_SYMS_DECL (type))); ! TREE_CONSTANT (TYPE_OTABLE_DECL (type)) = 1; ! } ! if (TYPE_ATABLE_METHODS(type) == NULL_TREE) ! { ! PUSH_FIELD_VALUE (cons, "atable", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "atable_syms", null_pointer_node); ! } ! else ! { ! pushdecl_top_level (TYPE_ATABLE_SYMS_DECL (type)); ! PUSH_FIELD_VALUE (cons, "atable", ! build1 (ADDR_EXPR, atable_ptr_type, TYPE_ATABLE_DECL (type))); ! PUSH_FIELD_VALUE (cons, "atable_syms", ! build1 (ADDR_EXPR, symbols_array_ptr_type, ! TYPE_ATABLE_SYMS_DECL (type))); ! TREE_CONSTANT (TYPE_ATABLE_DECL (type)) = 1; ! } ! if (TYPE_ITABLE_METHODS(type) == NULL_TREE) ! { ! PUSH_FIELD_VALUE (cons, "itable", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "itable_syms", null_pointer_node); ! } ! else ! { ! pushdecl_top_level (TYPE_ITABLE_SYMS_DECL (type)); ! PUSH_FIELD_VALUE (cons, "itable", ! build1 (ADDR_EXPR, itable_ptr_type, TYPE_ITABLE_DECL (type))); ! PUSH_FIELD_VALUE (cons, "itable_syms", ! build1 (ADDR_EXPR, symbols_array_ptr_type, ! TYPE_ITABLE_SYMS_DECL (type))); ! TREE_CONSTANT (TYPE_ITABLE_DECL (type)) = 1; ! } ! PUSH_FIELD_VALUE (cons, "catch_classes", build1 (ADDR_EXPR, ptr_type_node, TYPE_CTABLE_DECL (type))); ! PUSH_FIELD_VALUE (cons, "interfaces", interfaces); ! PUSH_FIELD_VALUE (cons, "loader", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "interface_count", build_int_cst (NULL_TREE, interface_len)); ! PUSH_FIELD_VALUE (cons, "state", convert (byte_type_node, build_int_cst (NULL_TREE, JV_STATE_PRELOADING))); ! PUSH_FIELD_VALUE (cons, "thread", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "depth", integer_zero_node); ! PUSH_FIELD_VALUE (cons, "ancestors", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "idt", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "arrayclass", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "protectionDomain", null_pointer_node); { tree assertion_table_ref; --- 2090,2166 ---- class_dtable_decl), dtable_start_offset))); if (! flag_hash_synchronization) ! PUSH_FIELD_VALUE (v1, "sync_info", null_pointer_node); ! FINISH_RECORD_CONSTRUCTOR (temp, v1, object_type_node); ! START_RECORD_CONSTRUCTOR (v2, class_type_node); ! PUSH_SUPER_VALUE (v2, temp); ! PUSH_FIELD_VALUE (v2, "next_or_version", gcj_abi_version); ! PUSH_FIELD_VALUE (v2, "name", build_utf8_ref (DECL_NAME (type_decl))); ! PUSH_FIELD_VALUE (v2, "accflags", build_int_cst (NULL_TREE, get_access_flags_from_decl (type_decl))); ! PUSH_FIELD_VALUE (v2, "superclass", CLASS_INTERFACE (type_decl) ? null_pointer_node : super); ! PUSH_FIELD_VALUE (v2, "constants", constant_pool_constructor); ! PUSH_FIELD_VALUE (v2, "methods", methods_decl == NULL_TREE ? null_pointer_node : build1 (ADDR_EXPR, method_ptr_type_node, methods_decl)); ! PUSH_FIELD_VALUE (v2, "method_count", build_int_cst (NULL_TREE, method_count)); ! PUSH_FIELD_VALUE (v2, "vtable_method_count", ! (flag_indirect_dispatch ! ? integer_minus_one_node ! : TYPE_NVIRTUALS (type))); ! PUSH_FIELD_VALUE (v2, "fields", fields_decl == NULL_TREE ? null_pointer_node : build1 (ADDR_EXPR, field_ptr_type_node, fields_decl)); /* If we're using the binary compatibility ABI we don't know the size until load time. */ ! PUSH_FIELD_VALUE (v2, "size_in_bytes", (flag_indirect_dispatch ? integer_minus_one_node : size_in_bytes (type))); ! PUSH_FIELD_VALUE (v2, "field_count", build_int_cst (NULL_TREE, field_count)); ! PUSH_FIELD_VALUE (v2, "static_field_count", build_int_cst (NULL_TREE, static_field_count)); ! PUSH_FIELD_VALUE (v2, "vtable", ! (flag_indirect_dispatch || dtable_decl == NULL_TREE ! ? null_pointer_node ! : build2 (POINTER_PLUS_EXPR, dtable_ptr_type, build1 (ADDR_EXPR, dtable_ptr_type, dtable_decl), ! dtable_start_offset))); ! add_table_and_syms (&v2, TYPE_OTABLE_METHODS (type), ! "otable", TYPE_OTABLE_DECL (type), otable_ptr_type, ! "otable_syms", TYPE_OTABLE_SYMS_DECL (type)); ! add_table_and_syms (&v2, TYPE_ATABLE_METHODS (type), ! "atable", TYPE_ATABLE_DECL (type), atable_ptr_type, ! "atable_syms", TYPE_ATABLE_SYMS_DECL (type)); ! add_table_and_syms (&v2, TYPE_ITABLE_METHODS (type), ! "itable", TYPE_ITABLE_DECL (type), itable_ptr_type, ! "itable_syms", TYPE_ITABLE_SYMS_DECL (type)); ! PUSH_FIELD_VALUE (v2, "catch_classes", build1 (ADDR_EXPR, ptr_type_node, TYPE_CTABLE_DECL (type))); ! PUSH_FIELD_VALUE (v2, "interfaces", interfaces); ! PUSH_FIELD_VALUE (v2, "loader", null_pointer_node); ! PUSH_FIELD_VALUE (v2, "interface_count", build_int_cst (NULL_TREE, interface_len)); ! PUSH_FIELD_VALUE (v2, "state", convert (byte_type_node, build_int_cst (NULL_TREE, JV_STATE_PRELOADING))); ! PUSH_FIELD_VALUE (v2, "thread", null_pointer_node); ! PUSH_FIELD_VALUE (v2, "depth", integer_zero_node); ! PUSH_FIELD_VALUE (v2, "ancestors", null_pointer_node); ! PUSH_FIELD_VALUE (v2, "idt", null_pointer_node); ! PUSH_FIELD_VALUE (v2, "arrayclass", null_pointer_node); ! PUSH_FIELD_VALUE (v2, "protectionDomain", null_pointer_node); { tree assertion_table_ref; *************** make_class_data (tree type) *** 2160,2172 **** build_pointer_type (assertion_table_type), emit_assertion_table (type)); ! PUSH_FIELD_VALUE (cons, "assertion_table", assertion_table_ref); } ! PUSH_FIELD_VALUE (cons, "hack_signers", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "chain", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "aux_info", null_pointer_node); ! PUSH_FIELD_VALUE (cons, "engine", null_pointer_node); if (TYPE_REFLECTION_DATA (current_class)) { --- 2171,2183 ---- build_pointer_type (assertion_table_type), emit_assertion_table (type)); ! PUSH_FIELD_VALUE (v2, "assertion_table", assertion_table_ref); } ! PUSH_FIELD_VALUE (v2, "hack_signers", null_pointer_node); ! PUSH_FIELD_VALUE (v2, "chain", null_pointer_node); ! PUSH_FIELD_VALUE (v2, "aux_info", null_pointer_node); ! PUSH_FIELD_VALUE (v2, "engine", null_pointer_node); if (TYPE_REFLECTION_DATA (current_class)) { *************** make_class_data (tree type) *** 2202,2217 **** TREE_READONLY (array) = 1; TREE_CONSTANT (DECL_INITIAL (array)) = 1; rest_of_decl_compilation (array, 1, 0); ! ! PUSH_FIELD_VALUE (cons, "reflection_data", build_address_of (array)); free (data); TYPE_REFLECTION_DATA (current_class) = NULL; } else ! PUSH_FIELD_VALUE (cons, "reflection_data", null_pointer_node); ! FINISH_RECORD_CONSTRUCTOR (cons); DECL_INITIAL (decl) = cons; --- 2213,2229 ---- TREE_READONLY (array) = 1; TREE_CONSTANT (DECL_INITIAL (array)) = 1; rest_of_decl_compilation (array, 1, 0); ! ! reflection_data = build_address_of (array); free (data); TYPE_REFLECTION_DATA (current_class) = NULL; } else ! reflection_data = null_pointer_node; ! PUSH_FIELD_VALUE (v2, "reflection_data", reflection_data); ! FINISH_RECORD_CONSTRUCTOR (cons, v2, class_type_node); DECL_INITIAL (decl) = cons; *************** push_super_field (tree this_class, tree *** 2372,2378 **** base_decl = build_decl (input_location, FIELD_DECL, NULL_TREE, super_class); DECL_IGNORED_P (base_decl) = 1; ! TREE_CHAIN (base_decl) = TYPE_FIELDS (this_class); TYPE_FIELDS (this_class) = base_decl; DECL_SIZE (base_decl) = TYPE_SIZE (super_class); DECL_SIZE_UNIT (base_decl) = TYPE_SIZE_UNIT (super_class); --- 2384,2390 ---- base_decl = build_decl (input_location, FIELD_DECL, NULL_TREE, super_class); DECL_IGNORED_P (base_decl) = 1; ! DECL_CHAIN (base_decl) = TYPE_FIELDS (this_class); TYPE_FIELDS (this_class) = base_decl; DECL_SIZE (base_decl) = TYPE_SIZE (super_class); DECL_SIZE_UNIT (base_decl) = TYPE_SIZE_UNIT (super_class); *************** add_miranda_methods (tree base_class, tr *** 2532,2538 **** will be correct. This code must match similar layout code in the runtime. */ for (method_decl = TYPE_METHODS (elt); ! method_decl; method_decl = TREE_CHAIN (method_decl)) { tree sig, override; --- 2544,2550 ---- will be correct. This code must match similar layout code in the runtime. */ for (method_decl = TYPE_METHODS (elt); ! method_decl; method_decl = DECL_CHAIN (method_decl)) { tree sig, override; *************** layout_class_methods (tree this_class) *** 2596,2602 **** TYPE_METHODS (this_class) = nreverse (TYPE_METHODS (this_class)); for (method_decl = TYPE_METHODS (this_class); ! method_decl; method_decl = TREE_CHAIN (method_decl)) dtable_count = layout_class_method (this_class, super_class, method_decl, dtable_count); --- 2608,2614 ---- TYPE_METHODS (this_class) = nreverse (TYPE_METHODS (this_class)); for (method_decl = TYPE_METHODS (this_class); ! method_decl; method_decl = DECL_CHAIN (method_decl)) dtable_count = layout_class_method (this_class, super_class, method_decl, dtable_count); *************** get_interface_method_index (tree method, *** 2611,2617 **** tree meth; int i = 1; ! for (meth = TYPE_METHODS (interface); ; meth = TREE_CHAIN (meth)) { if (meth == method) return i; --- 2623,2629 ---- tree meth; int i = 1; ! for (meth = TYPE_METHODS (interface); ; meth = DECL_CHAIN (meth)) { if (meth == method) return i; *************** emit_indirect_register_classes (tree *li *** 2735,2762 **** tree klass, t, register_class_fn; int i; - tree init = NULL_TREE; int size = VEC_length (tree, registered_class) * 2 + 1; tree class_array_type = build_prim_array_type (ptr_type_node, size); tree cdecl = build_decl (input_location, VAR_DECL, get_identifier ("_Jv_CLS"), class_array_type); tree reg_class_list; ! for (i = 0; VEC_iterate (tree, registered_class, i, klass); ++i) { ! init = tree_cons (NULL_TREE, ! fold_convert (ptr_type_node, ! build_static_class_ref (klass)), init); ! init = tree_cons ! (NULL_TREE, ! fold_convert (ptr_type_node, ! build_address_of (build_classdollar_field (klass))), ! init); } ! init = tree_cons (NULL_TREE, integer_zero_node, init); ! DECL_INITIAL (cdecl) = build_constructor_from_list (class_array_type, ! nreverse (init)); TREE_CONSTANT (DECL_INITIAL (cdecl)) = 1; TREE_STATIC (cdecl) = 1; DECL_ARTIFICIAL (cdecl) = 1; --- 2747,2770 ---- tree klass, t, register_class_fn; int i; int size = VEC_length (tree, registered_class) * 2 + 1; + VEC(constructor_elt,gc) *init = VEC_alloc (constructor_elt, gc, size); tree class_array_type = build_prim_array_type (ptr_type_node, size); tree cdecl = build_decl (input_location, VAR_DECL, get_identifier ("_Jv_CLS"), class_array_type); tree reg_class_list; ! FOR_EACH_VEC_ELT (tree, registered_class, i, klass) { ! t = fold_convert (ptr_type_node, build_static_class_ref (klass)); ! CONSTRUCTOR_APPEND_ELT (init, NULL_TREE, t); ! t = fold_convert (ptr_type_node, ! build_address_of (build_classdollar_field (klass))); ! CONSTRUCTOR_APPEND_ELT (init, NULL_TREE, t); } ! CONSTRUCTOR_APPEND_ELT (init, NULL_TREE, integer_zero_node); ! DECL_INITIAL (cdecl) = build_constructor (class_array_type, init); TREE_CONSTANT (DECL_INITIAL (cdecl)) = 1; TREE_STATIC (cdecl) = 1; DECL_ARTIFICIAL (cdecl) = 1; *************** emit_register_classes (tree *list_p) *** 2819,2825 **** #endif assemble_align (POINTER_SIZE); ! for (i = 0; VEC_iterate (tree, registered_class, i, klass); ++i) { t = build_fold_addr_expr (klass); output_constant (t, POINTER_SIZE / BITS_PER_UNIT, POINTER_SIZE); --- 2827,2833 ---- #endif assemble_align (POINTER_SIZE); ! FOR_EACH_VEC_ELT (tree, registered_class, i, klass) { t = build_fold_addr_expr (klass); output_constant (t, POINTER_SIZE / BITS_PER_UNIT, POINTER_SIZE); *************** emit_register_classes (tree *list_p) *** 2837,2843 **** DECL_EXTERNAL (t) = 1; register_class_fn = t; ! for (i = 0; VEC_iterate (tree, registered_class, i, klass); ++i) { t = build_fold_addr_expr (klass); t = build_call_expr (register_class_fn, 1, t); --- 2845,2851 ---- DECL_EXTERNAL (t) = 1; register_class_fn = t; ! FOR_EACH_VEC_ELT (tree, registered_class, i, klass) { t = build_fold_addr_expr (klass); t = build_call_expr (register_class_fn, 1, t); *************** emit_register_classes (tree *list_p) *** 2846,2857 **** } } /* Make a symbol_type (_Jv_MethodSymbol) node for DECL. */ static tree build_symbol_entry (tree decl, tree special) { ! tree clname, name, signature, sym; clname = build_utf8_ref (DECL_NAME (TYPE_NAME (DECL_CONTEXT (decl)))); /* ??? Constructors are given the name foo.foo all the way through the compiler, but in the method table they're all renamed --- 2854,2883 ---- } } + /* Build a constructor for an entry in the symbol table. */ + + static tree + build_symbol_table_entry (tree clname, tree name, tree signature) + { + tree symbol; + VEC(constructor_elt,gc) *v = NULL; + + START_RECORD_CONSTRUCTOR (v, symbol_type); + PUSH_FIELD_VALUE (v, "clname", clname); + PUSH_FIELD_VALUE (v, "name", name); + PUSH_FIELD_VALUE (v, "signature", signature); + FINISH_RECORD_CONSTRUCTOR (symbol, v, symbol_type); + TREE_CONSTANT (symbol) = 1; + + return symbol; + } + /* Make a symbol_type (_Jv_MethodSymbol) node for DECL. */ static tree build_symbol_entry (tree decl, tree special) { ! tree clname, name, signature; clname = build_utf8_ref (DECL_NAME (TYPE_NAME (DECL_CONTEXT (decl)))); /* ??? Constructors are given the name foo.foo all the way through the compiler, but in the method table they're all renamed *************** build_symbol_entry (tree decl, tree spec *** 2872,2929 **** if (special != NULL_TREE) signature = build2 (POINTER_PLUS_EXPR, TREE_TYPE (signature), signature, fold_convert (sizetype, special)); - - START_RECORD_CONSTRUCTOR (sym, symbol_type); - PUSH_FIELD_VALUE (sym, "clname", clname); - PUSH_FIELD_VALUE (sym, "name", name); - PUSH_FIELD_VALUE (sym, "signature", signature); - FINISH_RECORD_CONSTRUCTOR (sym); - TREE_CONSTANT (sym) = 1; ! return sym; } /* Emit a symbol table: used by -findirect-dispatch. */ tree ! emit_symbol_table (tree name, tree the_table, tree decl_list, tree the_syms_decl, tree the_array_element_type, int element_size) { ! tree method_list, method, table, list, null_symbol; ! tree table_size, the_array_type; ! int index; /* Only emit a table if this translation unit actually made any references via it. */ ! if (decl_list == NULL_TREE) return the_table; /* Build a list of _Jv_MethodSymbols for each entry in otable_methods. */ ! index = 0; ! method_list = decl_list; ! list = NULL_TREE; ! while (method_list != NULL_TREE) ! { ! tree special = TREE_PURPOSE (method_list); ! method = TREE_VALUE (method_list); ! list = tree_cons (NULL_TREE, build_symbol_entry (method, special), list); ! method_list = TREE_CHAIN (method_list); ! index++; ! } /* Terminate the list with a "null" entry. */ ! START_RECORD_CONSTRUCTOR (null_symbol, symbol_type); ! PUSH_FIELD_VALUE (null_symbol, "clname", null_pointer_node); ! PUSH_FIELD_VALUE (null_symbol, "name", null_pointer_node); ! PUSH_FIELD_VALUE (null_symbol, "signature", null_pointer_node); ! FINISH_RECORD_CONSTRUCTOR (null_symbol); ! TREE_CONSTANT (null_symbol) = 1; ! list = tree_cons (NULL_TREE, null_symbol, list); ! /* Put the list in the right order and make it a constructor. */ ! list = nreverse (list); ! table = build_constructor_from_list (symbols_array_type, list); /* Make it the initial value for otable_syms and emit the decl. */ DECL_INITIAL (the_syms_decl) = table; --- 2898,2937 ---- if (special != NULL_TREE) signature = build2 (POINTER_PLUS_EXPR, TREE_TYPE (signature), signature, fold_convert (sizetype, special)); ! return build_symbol_table_entry (clname, name, signature); } /* Emit a symbol table: used by -findirect-dispatch. */ tree ! emit_symbol_table (tree name, tree the_table, ! VEC(method_entry,gc) *decl_table, tree the_syms_decl, tree the_array_element_type, int element_size) { ! tree table, null_symbol, table_size, the_array_type; ! unsigned index; ! method_entry *e; ! VEC(constructor_elt,gc) *v = NULL; /* Only emit a table if this translation unit actually made any references via it. */ ! if (decl_table == NULL) return the_table; /* Build a list of _Jv_MethodSymbols for each entry in otable_methods. */ ! FOR_EACH_VEC_ELT (method_entry, decl_table, index, e) ! CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, ! build_symbol_entry (e->method, e->special)); /* Terminate the list with a "null" entry. */ ! null_symbol = build_symbol_table_entry (null_pointer_node, ! null_pointer_node, ! null_pointer_node); ! CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, null_symbol); ! table = build_constructor (symbols_array_type, v); /* Make it the initial value for otable_syms and emit the decl. */ DECL_INITIAL (the_syms_decl) = table; *************** make_catch_class_record (tree catch_clas *** 2953,2962 **** { tree entry; tree type = TREE_TYPE (TREE_TYPE (TYPE_CTABLE_DECL (output_class))); ! START_RECORD_CONSTRUCTOR (entry, type); ! PUSH_FIELD_VALUE (entry, "address", catch_class); ! PUSH_FIELD_VALUE (entry, "classname", classname); ! FINISH_RECORD_CONSTRUCTOR (entry); return entry; } --- 2961,2971 ---- { tree entry; tree type = TREE_TYPE (TREE_TYPE (TYPE_CTABLE_DECL (output_class))); ! VEC(constructor_elt,gc) *v = NULL; ! START_RECORD_CONSTRUCTOR (v, type); ! PUSH_FIELD_VALUE (v, "address", catch_class); ! PUSH_FIELD_VALUE (v, "classname", classname); ! FINISH_RECORD_CONSTRUCTOR (entry, v, type); return entry; } *************** tree *** 2967,2984 **** emit_catch_table (tree this_class) { tree table, table_size, array_type; ! TYPE_CATCH_CLASSES (this_class) = ! tree_cons (NULL, ! make_catch_class_record (null_pointer_node, null_pointer_node), ! TYPE_CATCH_CLASSES (this_class)); ! TYPE_CATCH_CLASSES (this_class) = nreverse (TYPE_CATCH_CLASSES (this_class)); ! TYPE_CATCH_CLASSES (this_class) = ! tree_cons (NULL, ! make_catch_class_record (null_pointer_node, null_pointer_node), ! TYPE_CATCH_CLASSES (this_class)); ! table_size = build_index_type ! (build_int_cst (NULL_TREE, ! list_length (TYPE_CATCH_CLASSES (this_class)))); array_type = build_array_type (TREE_TYPE (TREE_TYPE (TYPE_CTABLE_DECL (this_class))), table_size); --- 2976,2992 ---- emit_catch_table (tree this_class) { tree table, table_size, array_type; ! int n_catch_classes; ! constructor_elt *e; ! /* Fill in the dummy entry that make_class created. */ ! e = VEC_index (constructor_elt, TYPE_CATCH_CLASSES (this_class), 0); ! e->value = make_catch_class_record (null_pointer_node, null_pointer_node); ! CONSTRUCTOR_APPEND_ELT (TYPE_CATCH_CLASSES (this_class), NULL_TREE, ! make_catch_class_record (null_pointer_node, ! null_pointer_node)); ! n_catch_classes = VEC_length (constructor_elt, ! TYPE_CATCH_CLASSES (this_class)); ! table_size = build_index_type (build_int_cst (NULL_TREE, n_catch_classes)); array_type = build_array_type (TREE_TYPE (TREE_TYPE (TYPE_CTABLE_DECL (this_class))), table_size); *************** emit_catch_table (tree this_class) *** 2986,2992 **** build_decl (input_location, VAR_DECL, DECL_NAME (TYPE_CTABLE_DECL (this_class)), array_type); DECL_INITIAL (table) = ! build_constructor_from_list (array_type, TYPE_CATCH_CLASSES (this_class)); TREE_STATIC (table) = 1; TREE_READONLY (table) = 1; DECL_IGNORED_P (table) = 1; --- 2994,3000 ---- build_decl (input_location, VAR_DECL, DECL_NAME (TYPE_CTABLE_DECL (this_class)), array_type); DECL_INITIAL (table) = ! build_constructor (array_type, TYPE_CATCH_CLASSES (this_class)); TREE_STATIC (table) = 1; TREE_READONLY (table) = 1; DECL_IGNORED_P (table) = 1; *************** build_signature_for_libgcj (tree type) *** 3010,3015 **** --- 3018,3040 ---- return ref; } + /* Build an entry in the type assertion table. */ + + static tree + build_assertion_table_entry (tree code, tree op1, tree op2) + { + VEC(constructor_elt,gc) *v = NULL; + tree entry; + + START_RECORD_CONSTRUCTOR (v, assertion_entry_type); + PUSH_FIELD_VALUE (v, "assertion_code", code); + PUSH_FIELD_VALUE (v, "op1", op1); + PUSH_FIELD_VALUE (v, "op2", op2); + FINISH_RECORD_CONSTRUCTOR (entry, v, assertion_entry_type); + + return entry; + } + /* Add an entry to the type assertion table. Callback used during hashtable traversal. */ *************** add_assertion_table_entry (void **htab_e *** 3018,3024 **** { tree entry; tree code_val, op1_utf8, op2_utf8; ! tree *list = (tree *) ptr; type_assertion *as = (type_assertion *) *htab_entry; code_val = build_int_cst (NULL_TREE, as->assertion_code); --- 3043,3049 ---- { tree entry; tree code_val, op1_utf8, op2_utf8; ! VEC(constructor_elt,gc) **v = (VEC(constructor_elt,gc) **) ptr; type_assertion *as = (type_assertion *) *htab_entry; code_val = build_int_cst (NULL_TREE, as->assertion_code); *************** add_assertion_table_entry (void **htab_e *** 3032,3045 **** op2_utf8 = null_pointer_node; else op2_utf8 = build_signature_for_libgcj (as->op2); ! START_RECORD_CONSTRUCTOR (entry, assertion_entry_type); ! PUSH_FIELD_VALUE (entry, "assertion_code", code_val); ! PUSH_FIELD_VALUE (entry, "op1", op1_utf8); ! PUSH_FIELD_VALUE (entry, "op2", op2_utf8); ! FINISH_RECORD_CONSTRUCTOR (entry); ! ! *list = tree_cons (NULL_TREE, entry, *list); return true; } --- 3057,3066 ---- op2_utf8 = null_pointer_node; else op2_utf8 = build_signature_for_libgcj (as->op2); + + entry = build_assertion_table_entry (code_val, op1_utf8, op2_utf8); ! CONSTRUCTOR_APPEND_ELT (*v, NULL_TREE, entry); return true; } *************** static tree *** 3049,3072 **** emit_assertion_table (tree klass) { tree null_entry, ctor, table_decl; - tree list = NULL_TREE; htab_t assertions_htab = TYPE_ASSERTIONS (klass); /* Iterate through the hash table. */ ! htab_traverse (assertions_htab, add_assertion_table_entry, &list); /* Finish with a null entry. */ ! START_RECORD_CONSTRUCTOR (null_entry, assertion_entry_type); ! PUSH_FIELD_VALUE (null_entry, "assertion_code", integer_zero_node); ! PUSH_FIELD_VALUE (null_entry, "op1", null_pointer_node); ! PUSH_FIELD_VALUE (null_entry, "op2", null_pointer_node); ! FINISH_RECORD_CONSTRUCTOR (null_entry); ! list = tree_cons (NULL_TREE, null_entry, list); ! /* Put the list in the right order and make it a constructor. */ ! list = nreverse (list); ! ctor = build_constructor_from_list (assertion_table_type, list); table_decl = build_decl (input_location, VAR_DECL, mangled_classname ("_type_assert_", klass), --- 3070,3089 ---- emit_assertion_table (tree klass) { tree null_entry, ctor, table_decl; htab_t assertions_htab = TYPE_ASSERTIONS (klass); + VEC(constructor_elt,gc) *v = NULL; /* Iterate through the hash table. */ ! htab_traverse (assertions_htab, add_assertion_table_entry, &v); /* Finish with a null entry. */ ! null_entry = build_assertion_table_entry (integer_zero_node, ! null_pointer_node, ! null_pointer_node); ! CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, null_entry); ! ctor = build_constructor (assertion_table_type, v); table_decl = build_decl (input_location, VAR_DECL, mangled_classname ("_type_assert_", klass), *************** java_treetreehash_new (htab_t ht, tree t *** 3139,3145 **** e = htab_find_slot_with_hash (ht, t, hv, INSERT); if (*e == NULL) { ! tthe = (struct treetreehash_entry *) (*ht->alloc_f) (1, sizeof (*tthe)); tthe->key = t; *e = tthe; } --- 3156,3162 ---- e = htab_find_slot_with_hash (ht, t, hv, INSERT); if (*e == NULL) { ! tthe = ggc_alloc_cleared_treetreehash_entry (); tthe->key = t; *e = tthe; } *************** java_treetreehash_new (htab_t ht, tree t *** 3149,3162 **** } htab_t ! java_treetreehash_create (size_t size, int gc) { ! if (gc) ! return htab_create_ggc (size, java_treetreehash_hash, ! java_treetreehash_compare, NULL); ! else ! return htab_create_alloc (size, java_treetreehash_hash, ! java_treetreehash_compare, free, xcalloc, free); } /* Break down qualified IDENTIFIER into package and class-name components. --- 3166,3175 ---- } htab_t ! java_treetreehash_create (size_t size) { ! return htab_create_ggc (size, java_treetreehash_hash, ! java_treetreehash_compare, NULL); } /* Break down qualified IDENTIFIER into package and class-name components. *************** in_same_package (tree name1, tree name2) *** 3218,3221 **** --- 3231,3247 ---- return (pkg1 == pkg2); } + /* lang_hooks.decls.final_write_globals: perform final processing on + global variables. */ + + void + java_write_globals (void) + { + tree *vec = VEC_address (tree, pending_static_fields); + int len = VEC_length (tree, pending_static_fields); + write_global_declarations (); + emit_debug_global_declarations (vec, len); + VEC_free (tree, gc, pending_static_fields); + } + #include "gt-java-class.h" diff -Nrcpad gcc-4.5.2/gcc/java/constants.c gcc-4.6.0/gcc/java/constants.c *** gcc-4.5.2/gcc/java/constants.c Fri Jun 12 22:06:47 2009 --- gcc-4.6.0/gcc/java/constants.c Mon Jan 3 20:52:22 2011 *************** *** 1,6 **** /* Handle the constant pool of the Java(TM) Virtual Machine. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, ! 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Handle the constant pool of the Java(TM) Virtual Machine. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, ! 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 28,33 **** --- 28,34 ---- #include "jcf.h" #include "tree.h" #include "java-tree.h" + #include "diagnostic-core.h" #include "toplev.h" #include "ggc.h" *************** set_constant_entry (CPool *cpool, int in *** 44,51 **** if (cpool->data == NULL) { cpool->capacity = 100; ! cpool->tags = GGC_CNEWVEC (uint8, cpool->capacity); ! cpool->data = GGC_CNEWVEC (union cpool_entry, cpool->capacity); cpool->count = 1; } if (index >= cpool->capacity) --- 45,55 ---- if (cpool->data == NULL) { cpool->capacity = 100; ! cpool->tags = (uint8 *) ggc_alloc_cleared_atomic (sizeof (uint8) ! * cpool->capacity); ! cpool->data = ggc_alloc_cleared_vec_cpool_entry (sizeof ! (union cpool_entry), ! cpool->capacity); cpool->count = 1; } if (index >= cpool->capacity) *************** cpool_for_class (tree klass) *** 333,339 **** if (cpool == NULL) { ! cpool = GGC_CNEW (struct CPool); TYPE_CPOOL (klass) = cpool; } return cpool; --- 337,343 ---- if (cpool == NULL) { ! cpool = ggc_alloc_cleared_CPool (); TYPE_CPOOL (klass) = cpool; } return cpool; *************** build_constants_constructor (void) *** 498,507 **** CPool *outgoing_cpool = cpool_for_class (current_class); tree tags_value, data_value; tree cons; ! tree tags_list = NULL_TREE; ! tree data_list = NULL_TREE; int i; for (i = outgoing_cpool->count; --i > 0; ) switch (outgoing_cpool->tags[i] & ~CONSTANT_LazyFlag) { --- 502,524 ---- CPool *outgoing_cpool = cpool_for_class (current_class); tree tags_value, data_value; tree cons; ! VEC(constructor_elt,gc) *v = NULL; int i; + VEC(constructor_elt,gc) *tags = NULL; + VEC(constructor_elt,gc) *data = NULL; + constructor_elt *t = NULL; + constructor_elt *d = NULL; + if (outgoing_cpool->count > 0) + { + int c = outgoing_cpool->count; + VEC_safe_grow_cleared (constructor_elt, gc, tags, c); + VEC_safe_grow_cleared (constructor_elt, gc, data, c); + t = VEC_index (constructor_elt, tags, c-1); + d = VEC_index (constructor_elt, data, c-1); + } + + #define CONSTRUCTOR_PREPEND_VALUE(E, V) E->value = V, E-- for (i = outgoing_cpool->count; --i > 0; ) switch (outgoing_cpool->tags[i] & ~CONSTANT_LazyFlag) { *************** build_constants_constructor (void) *** 523,539 **** FIXME: This is a kludge. The field we're initializing is not a scalar but a union, and that's how we should represent it in the compiler. We should fix this. */ ! if (BYTES_BIG_ENDIAN && POINTER_SIZE > 32) ! temp <<= POINTER_SIZE - 32; ! tags_list ! = tree_cons (NULL_TREE, get_tag_node (outgoing_cpool->tags[i]), ! tags_list); ! data_list ! = tree_cons (NULL_TREE, ! fold_convert (ptr_type_node, ! (build_int_cst (NULL_TREE, temp))), ! data_list); } break; --- 540,553 ---- FIXME: This is a kludge. The field we're initializing is not a scalar but a union, and that's how we should represent it in the compiler. We should fix this. */ ! if (BYTES_BIG_ENDIAN) ! temp <<= ((POINTER_SIZE > 32) ? POINTER_SIZE - 32 : 0); ! CONSTRUCTOR_PREPEND_VALUE (t, get_tag_node (outgoing_cpool->tags[i])); ! CONSTRUCTOR_PREPEND_VALUE (d, ! fold_convert (ptr_type_node, ! (build_int_cst (NULL_TREE, ! temp)))); } break; *************** build_constants_constructor (void) *** 541,557 **** case CONSTANT_String: case CONSTANT_Unicode: case CONSTANT_Utf8: ! tags_list ! = tree_cons (NULL_TREE, get_tag_node (outgoing_cpool->tags[i]), ! tags_list); ! data_list ! = tree_cons (NULL_TREE, build_utf8_ref (outgoing_cpool->data[i].t), ! data_list); break; default: gcc_assert (false); } if (outgoing_cpool->count > 0) { tree data_decl, tags_decl, tags_type; --- 555,569 ---- case CONSTANT_String: case CONSTANT_Unicode: case CONSTANT_Utf8: ! CONSTRUCTOR_PREPEND_VALUE (t, get_tag_node (outgoing_cpool->tags[i])); ! CONSTRUCTOR_PREPEND_VALUE (d, build_utf8_ref (outgoing_cpool->data[i].t)); break; default: gcc_assert (false); } + #undef CONSTRUCTOR_PREPEND_VALUE + if (outgoing_cpool->count > 0) { tree data_decl, tags_decl, tags_type; *************** build_constants_constructor (void) *** 560,567 **** tree tem; /* Add dummy 0'th element of constant pool. */ ! tags_list = tree_cons (NULL_TREE, get_tag_node (0), tags_list); ! data_list = tree_cons (NULL_TREE, null_pointer_node, data_list); /* Change the type of the decl to have the proper array size. ??? Make sure to transition the old type-pointer-to list to this --- 572,581 ---- tree tem; /* Add dummy 0'th element of constant pool. */ ! gcc_assert (t == VEC_address (constructor_elt, tags)); ! gcc_assert (d == VEC_address (constructor_elt, data)); ! t->value = get_tag_node (0); ! d->value = null_pointer_node; /* Change the type of the decl to have the proper array size. ??? Make sure to transition the old type-pointer-to list to this *************** build_constants_constructor (void) *** 573,580 **** TYPE_POINTER_TO (TREE_TYPE (data_decl)) = NULL_TREE; TREE_TYPE (data_decl) = build_array_type (ptr_type_node, index_type); TYPE_POINTER_TO (TREE_TYPE (data_decl)) = tem; ! DECL_INITIAL (data_decl) = build_constructor_from_list ! (TREE_TYPE (data_decl), data_list); DECL_SIZE (data_decl) = TYPE_SIZE (TREE_TYPE (data_decl)); DECL_SIZE_UNIT (data_decl) = TYPE_SIZE_UNIT (TREE_TYPE (data_decl)); rest_of_decl_compilation (data_decl, 1, 0); --- 587,593 ---- TYPE_POINTER_TO (TREE_TYPE (data_decl)) = NULL_TREE; TREE_TYPE (data_decl) = build_array_type (ptr_type_node, index_type); TYPE_POINTER_TO (TREE_TYPE (data_decl)) = tem; ! DECL_INITIAL (data_decl) = build_constructor (TREE_TYPE (data_decl), data); DECL_SIZE (data_decl) = TYPE_SIZE (TREE_TYPE (data_decl)); DECL_SIZE_UNIT (data_decl) = TYPE_SIZE_UNIT (TREE_TYPE (data_decl)); rest_of_decl_compilation (data_decl, 1, 0); *************** build_constants_constructor (void) *** 586,593 **** current_class), tags_type); TREE_STATIC (tags_decl) = 1; ! DECL_INITIAL (tags_decl) = build_constructor_from_list ! (tags_type, tags_list); rest_of_decl_compilation (tags_decl, 1, 0); tags_value = build_address_of (tags_decl); } --- 599,605 ---- current_class), tags_type); TREE_STATIC (tags_decl) = 1; ! DECL_INITIAL (tags_decl) = build_constructor (tags_type, tags); rest_of_decl_compilation (tags_decl, 1, 0); tags_value = build_address_of (tags_decl); } *************** build_constants_constructor (void) *** 596,607 **** data_value = null_pointer_node; tags_value = null_pointer_node; } ! START_RECORD_CONSTRUCTOR (cons, constants_type_node); ! PUSH_FIELD_VALUE (cons, "size", build_int_cst (NULL_TREE, outgoing_cpool->count)); ! PUSH_FIELD_VALUE (cons, "tags", tags_value); ! PUSH_FIELD_VALUE (cons, "data", data_value); ! FINISH_RECORD_CONSTRUCTOR (cons); return cons; } --- 608,619 ---- data_value = null_pointer_node; tags_value = null_pointer_node; } ! START_RECORD_CONSTRUCTOR (v, constants_type_node); ! PUSH_FIELD_VALUE (v, "size", build_int_cst (NULL_TREE, outgoing_cpool->count)); ! PUSH_FIELD_VALUE (v, "tags", tags_value); ! PUSH_FIELD_VALUE (v, "data", data_value); ! FINISH_RECORD_CONSTRUCTOR (cons, v, constants_type_node); return cons; } diff -Nrcpad gcc-4.5.2/gcc/java/decl.c gcc-4.6.0/gcc/java/decl.c *** gcc-4.5.2/gcc/java/decl.c Mon Sep 14 19:18:58 2009 --- gcc-4.6.0/gcc/java/decl.c Fri Jan 21 09:05:14 2011 *************** *** 1,7 **** /* Process declarations and variables for the GNU compiler for the Java(TM) language. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, ! 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. --- 1,7 ---- /* Process declarations and variables for the GNU compiler for the Java(TM) language. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, ! 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 28,48 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "tree.h" ! #include "rtl.h" ! #include "real.h" #include "toplev.h" #include "flags.h" #include "java-tree.h" #include "jcf.h" - #include "function.h" - #include "expr.h" #include "libfuncs.h" - #include "except.h" #include "java-except.h" #include "ggc.h" - #include "timevar.h" #include "cgraph.h" #include "tree-inline.h" #include "target.h" --- 28,42 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "tree.h" ! #include "diagnostic-core.h" #include "toplev.h" #include "flags.h" #include "java-tree.h" #include "jcf.h" #include "libfuncs.h" #include "java-except.h" #include "ggc.h" #include "cgraph.h" #include "tree-inline.h" #include "target.h" *************** parse_version (void) *** 561,567 **** void java_init_decl_processing (void) { - tree endlink; tree field = NULL_TREE; tree t; --- 555,560 ---- *************** java_init_decl_processing (void) *** 579,585 **** TREE_TYPE (error_mark_node) = error_mark_node; /* Create sizetype first - needed for other types. */ ! initialize_sizetypes (false); byte_type_node = make_signed_type (8); pushdecl (build_decl (BUILTINS_LOCATION, --- 572,578 ---- TREE_TYPE (error_mark_node) = error_mark_node; /* Create sizetype first - needed for other types. */ ! initialize_sizetypes (); byte_type_node = make_signed_type (8); pushdecl (build_decl (BUILTINS_LOCATION, *************** java_init_decl_processing (void) *** 621,640 **** integer_zero_node = build_int_cst (NULL_TREE, 0); integer_one_node = build_int_cst (NULL_TREE, 1); integer_two_node = build_int_cst (NULL_TREE, 2); integer_four_node = build_int_cst (NULL_TREE, 4); integer_minus_one_node = build_int_cst (NULL_TREE, -1); /* A few values used for range checking in the lexer. */ decimal_int_max = build_int_cstu (unsigned_int_type_node, 0x80000000); ! #if HOST_BITS_PER_WIDE_INT == 64 ! decimal_long_max = build_int_cstu (unsigned_long_type_node, ! 0x8000000000000000LL); ! #elif HOST_BITS_PER_WIDE_INT == 32 ! decimal_long_max = build_int_cst_wide (unsigned_long_type_node, ! 0, 0x80000000); ! #else ! #error "unsupported size" ! #endif size_zero_node = size_int (0); size_one_node = size_int (1); --- 614,628 ---- integer_zero_node = build_int_cst (NULL_TREE, 0); integer_one_node = build_int_cst (NULL_TREE, 1); integer_two_node = build_int_cst (NULL_TREE, 2); + integer_three_node = build_int_cst (NULL_TREE, 3); integer_four_node = build_int_cst (NULL_TREE, 4); integer_minus_one_node = build_int_cst (NULL_TREE, -1); /* A few values used for range checking in the lexer. */ decimal_int_max = build_int_cstu (unsigned_int_type_node, 0x80000000); ! decimal_long_max ! = double_int_to_tree (unsigned_long_type_node, ! double_int_setbit (double_int_zero, 64)); size_zero_node = size_int (0); size_one_node = size_int (1); *************** java_init_decl_processing (void) *** 837,843 **** if (! flag_hash_synchronization) PUSH_FIELD (input_location, object_type_node, field, "sync_info", build_pointer_type (object_type_node)); ! for (t = TYPE_FIELDS (object_type_node); t != NULL_TREE; t = TREE_CHAIN (t)) FIELD_PRIVATE (t) = 1; FINISH_RECORD (object_type_node); --- 825,831 ---- if (! flag_hash_synchronization) PUSH_FIELD (input_location, object_type_node, field, "sync_info", build_pointer_type (object_type_node)); ! for (t = TYPE_FIELDS (object_type_node); t != NULL_TREE; t = DECL_CHAIN (t)) FIELD_PRIVATE (t) = 1; FINISH_RECORD (object_type_node); *************** java_init_decl_processing (void) *** 919,925 **** PUSH_FIELD (input_location, class_type_node, field, "engine", ptr_type_node); PUSH_FIELD (input_location, class_type_node, field, "reflection_data", ptr_type_node); ! for (t = TYPE_FIELDS (class_type_node); t != NULL_TREE; t = TREE_CHAIN (t)) FIELD_PRIVATE (t) = 1; push_super_field (class_type_node, object_type_node); --- 907,913 ---- PUSH_FIELD (input_location, class_type_node, field, "engine", ptr_type_node); PUSH_FIELD (input_location, class_type_node, field, "reflection_data", ptr_type_node); ! for (t = TYPE_FIELDS (class_type_node); t != NULL_TREE; t = DECL_CHAIN (t)) FIELD_PRIVATE (t) = 1; push_super_field (class_type_node, object_type_node); *************** java_init_decl_processing (void) *** 999,1038 **** build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("Method"), method_type_node); ! endlink = end_params_node = tree_cons (NULL_TREE, void_type_node, NULL_TREE); ! t = tree_cons (NULL_TREE, class_ptr_type, endlink); ! alloc_object_node = add_builtin_function ("_Jv_AllocObject", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (alloc_object_node) = 1; alloc_no_finalizer_node = ! add_builtin_function ("_Jv_AllocObjectNoFinalizer", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (alloc_no_finalizer_node) = 1; ! t = tree_cons (NULL_TREE, ptr_type_node, endlink); ! soft_initclass_node = add_builtin_function ("_Jv_InitClass", ! build_function_type (void_type_node, ! t), 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, class_ptr_type, ! tree_cons (NULL_TREE, int_type_node, endlink)); soft_resolvepoolentry_node ! = add_builtin_function ("_Jv_ResolvePoolEntry", ! build_function_type (ptr_type_node, t), 0,NOT_BUILT_IN, NULL, NULL_TREE); DECL_PURE_P (soft_resolvepoolentry_node) = 1; ! throw_node = add_builtin_function ("_Jv_Throw", ! build_function_type (void_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); /* Mark throw_nodes as `noreturn' functions with side effects. */ TREE_THIS_VOLATILE (throw_node) = 1; TREE_SIDE_EFFECTS (throw_node) = 1; ! t = build_function_type (void_type_node, tree_cons (NULL_TREE, ptr_type_node, ! endlink)); soft_monitorenter_node = add_builtin_function ("_Jv_MonitorEnter", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); --- 987,1021 ---- build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("Method"), method_type_node); ! end_params_node = tree_cons (NULL_TREE, void_type_node, NULL_TREE); ! t = build_function_type_list (ptr_type_node, class_ptr_type, NULL_TREE); ! alloc_object_node = add_builtin_function ("_Jv_AllocObject", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (alloc_object_node) = 1; alloc_no_finalizer_node = ! add_builtin_function ("_Jv_AllocObjectNoFinalizer", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (alloc_no_finalizer_node) = 1; ! t = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE); ! soft_initclass_node = add_builtin_function ("_Jv_InitClass", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (ptr_type_node, ! class_ptr_type, int_type_node, NULL_TREE); soft_resolvepoolentry_node ! = add_builtin_function ("_Jv_ResolvePoolEntry", t, 0,NOT_BUILT_IN, NULL, NULL_TREE); DECL_PURE_P (soft_resolvepoolentry_node) = 1; ! t = build_function_type_list (void_type_node, ! class_ptr_type, int_type_node, NULL_TREE); ! throw_node = add_builtin_function ("_Jv_Throw", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); /* Mark throw_nodes as `noreturn' functions with side effects. */ TREE_THIS_VOLATILE (throw_node) = 1; TREE_SIDE_EFFECTS (throw_node) = 1; ! t = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE); soft_monitorenter_node = add_builtin_function ("_Jv_MonitorEnter", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); *************** java_init_decl_processing (void) *** 1040,1075 **** = add_builtin_function ("_Jv_MonitorExit", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, ptr_type_node, ! tree_cons (NULL_TREE, int_type_node, endlink)); soft_newarray_node ! = add_builtin_function ("_Jv_NewPrimArray", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (soft_newarray_node) = 1; ! t = tree_cons (NULL_TREE, int_type_node, ! tree_cons (NULL_TREE, class_ptr_type, ! tree_cons (NULL_TREE, object_ptr_type_node, ! endlink))); soft_anewarray_node ! = add_builtin_function ("_Jv_NewObjectArray", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (soft_anewarray_node) = 1; ! /* There is no endlink here because _Jv_NewMultiArray is a varargs ! function. */ ! t = tree_cons (NULL_TREE, ptr_type_node, ! tree_cons (NULL_TREE, int_type_node, NULL_TREE)); soft_multianewarray_node ! = add_builtin_function ("_Jv_NewMultiArray", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (soft_multianewarray_node) = 1; ! t = build_function_type (void_type_node, ! tree_cons (NULL_TREE, int_type_node, endlink)); soft_badarrayindex_node = add_builtin_function ("_Jv_ThrowBadArrayIndex", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); --- 1023,1052 ---- = add_builtin_function ("_Jv_MonitorExit", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (ptr_type_node, ! ptr_type_node, int_type_node, NULL_TREE); soft_newarray_node ! = add_builtin_function ("_Jv_NewPrimArray", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (soft_newarray_node) = 1; ! t = build_function_type_list (ptr_type_node, ! int_type_node, class_ptr_type, ! object_ptr_type_node, NULL_TREE); soft_anewarray_node ! = add_builtin_function ("_Jv_NewObjectArray", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (soft_anewarray_node) = 1; ! t = build_varargs_function_type_list (ptr_type_node, ! ptr_type_node, int_type_node, ! NULL_TREE); soft_multianewarray_node ! = add_builtin_function ("_Jv_NewMultiArray", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_IS_MALLOC (soft_multianewarray_node) = 1; ! t = build_function_type_list (void_type_node, int_type_node, NULL_TREE); soft_badarrayindex_node = add_builtin_function ("_Jv_ThrowBadArrayIndex", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); *************** java_init_decl_processing (void) *** 1078,1086 **** TREE_THIS_VOLATILE (soft_badarrayindex_node) = 1; TREE_SIDE_EFFECTS (soft_badarrayindex_node) = 1; soft_nullpointer_node ! = add_builtin_function ("_Jv_ThrowNullPointerException", ! build_function_type (void_type_node, endlink), 0, NOT_BUILT_IN, NULL, NULL_TREE); /* Mark soft_nullpointer_node as a `noreturn' function with side effects. */ --- 1055,1063 ---- TREE_THIS_VOLATILE (soft_badarrayindex_node) = 1; TREE_SIDE_EFFECTS (soft_badarrayindex_node) = 1; + t = build_function_type_list (void_type_node, NULL_TREE); soft_nullpointer_node ! = add_builtin_function ("_Jv_ThrowNullPointerException", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); /* Mark soft_nullpointer_node as a `noreturn' function with side effects. */ *************** java_init_decl_processing (void) *** 1088,1095 **** TREE_SIDE_EFFECTS (soft_nullpointer_node) = 1; soft_abstractmethod_node ! = add_builtin_function ("_Jv_ThrowAbstractMethodError", ! build_function_type (void_type_node, endlink), 0, NOT_BUILT_IN, NULL, NULL_TREE); /* Mark soft_abstractmethod_node as a `noreturn' function with side effects. */ --- 1065,1071 ---- TREE_SIDE_EFFECTS (soft_nullpointer_node) = 1; soft_abstractmethod_node ! = add_builtin_function ("_Jv_ThrowAbstractMethodError", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); /* Mark soft_abstractmethod_node as a `noreturn' function with side effects. */ *************** java_init_decl_processing (void) *** 1097,1191 **** TREE_SIDE_EFFECTS (soft_abstractmethod_node) = 1; soft_nosuchfield_node ! = add_builtin_function ("_Jv_ThrowNoSuchFieldError", ! build_function_type (void_type_node, endlink), 0, NOT_BUILT_IN, NULL, NULL_TREE); /* Mark soft_nosuchfield_node as a `noreturn' function with side effects. */ TREE_THIS_VOLATILE (soft_nosuchfield_node) = 1; TREE_SIDE_EFFECTS (soft_nosuchfield_node) = 1; ! t = tree_cons (NULL_TREE, class_ptr_type, ! tree_cons (NULL_TREE, object_ptr_type_node, endlink)); soft_checkcast_node ! = add_builtin_function ("_Jv_CheckCast", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, object_ptr_type_node, ! tree_cons (NULL_TREE, class_ptr_type, endlink)); soft_instanceof_node ! = add_builtin_function ("_Jv_IsInstanceOf", ! build_function_type (boolean_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_PURE_P (soft_instanceof_node) = 1; ! t = tree_cons (NULL_TREE, object_ptr_type_node, ! tree_cons (NULL_TREE, object_ptr_type_node, endlink)); soft_checkarraystore_node ! = add_builtin_function ("_Jv_CheckArrayStore", ! build_function_type (void_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, ptr_type_node, ! tree_cons (NULL_TREE, ptr_type_node, ! tree_cons (NULL_TREE, int_type_node, endlink))); soft_lookupinterfacemethod_node ! = add_builtin_function ("_Jv_LookupInterfaceMethodIdx", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_PURE_P (soft_lookupinterfacemethod_node) = 1; ! t = tree_cons (NULL_TREE, ptr_type_node, ! tree_cons (NULL_TREE, ptr_type_node, ! tree_cons (NULL_TREE, ptr_type_node, endlink))); soft_lookupinterfacemethodbyname_node ! = add_builtin_function ("_Jv_LookupInterfaceMethod", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, object_ptr_type_node, ! tree_cons (NULL_TREE, ptr_type_node, ! tree_cons (NULL_TREE, ptr_type_node, ! tree_cons (NULL_TREE, int_type_node, ! endlink)))); soft_lookupjnimethod_node ! = add_builtin_function ("_Jv_LookupJNIMethod", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, ptr_type_node, endlink); soft_getjnienvnewframe_node ! = add_builtin_function ("_Jv_GetJNIEnvNewFrame", ! build_function_type (ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); soft_jnipopsystemframe_node ! = add_builtin_function ("_Jv_JNI_PopSystemFrame", ! build_function_type (void_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, object_ptr_type_node, endlink); soft_unwrapjni_node ! = add_builtin_function ("_Jv_UnwrapJNIweakReference", ! build_function_type (object_ptr_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, int_type_node, ! tree_cons (NULL_TREE, int_type_node, endlink)); soft_idiv_node ! = add_builtin_function ("_Jv_divI", ! build_function_type (int_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); soft_irem_node ! = add_builtin_function ("_Jv_remI", ! build_function_type (int_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = tree_cons (NULL_TREE, long_type_node, ! tree_cons (NULL_TREE, long_type_node, endlink)); soft_ldiv_node ! = add_builtin_function ("_Jv_divJ", ! build_function_type (long_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); soft_lrem_node ! = add_builtin_function ("_Jv_remJ", ! build_function_type (long_type_node, t), 0, NOT_BUILT_IN, NULL, NULL_TREE); initialize_builtins (); --- 1073,1157 ---- TREE_SIDE_EFFECTS (soft_abstractmethod_node) = 1; soft_nosuchfield_node ! = add_builtin_function ("_Jv_ThrowNoSuchFieldError", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); /* Mark soft_nosuchfield_node as a `noreturn' function with side effects. */ TREE_THIS_VOLATILE (soft_nosuchfield_node) = 1; TREE_SIDE_EFFECTS (soft_nosuchfield_node) = 1; ! t = build_function_type_list (ptr_type_node, ! class_ptr_type, object_ptr_type_node, ! NULL_TREE); soft_checkcast_node ! = add_builtin_function ("_Jv_CheckCast", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (boolean_type_node, ! object_ptr_type_node, class_ptr_type, ! NULL_TREE); soft_instanceof_node ! = add_builtin_function ("_Jv_IsInstanceOf", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_PURE_P (soft_instanceof_node) = 1; ! t = build_function_type_list (void_type_node, ! object_ptr_type_node, object_ptr_type_node, ! NULL_TREE); soft_checkarraystore_node ! = add_builtin_function ("_Jv_CheckArrayStore", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (ptr_type_node, ! ptr_type_node, ptr_type_node, int_type_node, ! NULL_TREE); soft_lookupinterfacemethod_node ! = add_builtin_function ("_Jv_LookupInterfaceMethodIdx", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); DECL_PURE_P (soft_lookupinterfacemethod_node) = 1; ! ! t = build_function_type_list (ptr_type_node, ! ptr_type_node, ptr_type_node, ptr_type_node, ! NULL_TREE); soft_lookupinterfacemethodbyname_node ! = add_builtin_function ("_Jv_LookupInterfaceMethod", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (ptr_type_node, ! object_ptr_type_node, ptr_type_node, ! ptr_type_node, int_type_node, NULL_TREE); soft_lookupjnimethod_node ! = add_builtin_function ("_Jv_LookupJNIMethod", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (ptr_type_node, ptr_type_node, NULL_TREE); soft_getjnienvnewframe_node ! = add_builtin_function ("_Jv_GetJNIEnvNewFrame", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); + t = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE); soft_jnipopsystemframe_node ! = add_builtin_function ("_Jv_JNI_PopSystemFrame", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (object_ptr_type_node, ! object_ptr_type_node, NULL_TREE); soft_unwrapjni_node ! = add_builtin_function ("_Jv_UnwrapJNIweakReference", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (int_type_node, ! int_type_node, int_type_node, NULL_TREE); soft_idiv_node ! = add_builtin_function ("_Jv_divI", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); soft_irem_node ! = add_builtin_function ("_Jv_remI", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); ! t = build_function_type_list (long_type_node, ! long_type_node, long_type_node, NULL_TREE); soft_ldiv_node ! = add_builtin_function ("_Jv_divJ", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); soft_lrem_node ! = add_builtin_function ("_Jv_remJ", t, 0, NOT_BUILT_IN, NULL, NULL_TREE); initialize_builtins (); *************** lookup_name_current_level (tree name) *** 1227,1233 **** if (IDENTIFIER_LOCAL_VALUE (name) == 0) return 0; ! for (t = current_binding_level->names; t; t = TREE_CHAIN (t)) if (DECL_NAME (t) == name) break; --- 1193,1199 ---- if (IDENTIFIER_LOCAL_VALUE (name) == 0) return 0; ! for (t = current_binding_level->names; t; t = DECL_CHAIN (t)) if (DECL_NAME (t) == name) break; *************** pushdecl (tree x) *** 1296,1302 **** /* Put decls on list in reverse order. We will reverse them later if necessary. */ ! TREE_CHAIN (x) = b->names; b->names = x; return x; --- 1262,1268 ---- /* Put decls on list in reverse order. We will reverse them later if necessary. */ ! DECL_CHAIN (x) = b->names; b->names = x; return x; *************** static struct binding_level * *** 1361,1367 **** make_binding_level (void) { /* NOSTRICT */ ! return GGC_CNEW (struct binding_level); } void --- 1327,1333 ---- make_binding_level (void) { /* NOSTRICT */ ! return ggc_alloc_cleared_binding_level (); } void *************** poplevel (int keep, int reverse, int fun *** 1447,1453 **** else decls = current_binding_level->names; ! for (decl = decls; decl; decl = TREE_CHAIN (decl)) if (TREE_CODE (decl) == VAR_DECL && DECL_LANG_SPECIFIC (decl) != NULL && DECL_LOCAL_SLOT_NUMBER (decl)) --- 1413,1419 ---- else decls = current_binding_level->names; ! for (decl = decls; decl; decl = DECL_CHAIN (decl)) if (TREE_CODE (decl) == VAR_DECL && DECL_LANG_SPECIFIC (decl) != NULL && DECL_LOCAL_SLOT_NUMBER (decl)) *************** poplevel (int keep, int reverse, int fun *** 1480,1490 **** /* Copy decls from names list, ignoring labels. */ while (decl) { ! tree next = TREE_CHAIN (decl); if (TREE_CODE (decl) != LABEL_DECL) { *var = decl; ! var = &TREE_CHAIN (decl); } decl = next; } --- 1446,1456 ---- /* Copy decls from names list, ignoring labels. */ while (decl) { ! tree next = DECL_CHAIN (decl); if (TREE_CODE (decl) != LABEL_DECL) { *var = decl; ! var = &DECL_CHAIN (decl); } decl = next; } *************** poplevel (int keep, int reverse, int fun *** 1520,1526 **** /* Clear out the meanings of the local variables of this level. */ ! for (link = decls; link; link = TREE_CHAIN (link)) { tree name = DECL_NAME (link); if (name != 0 && IDENTIFIER_LOCAL_VALUE (name) == link) --- 1486,1492 ---- /* Clear out the meanings of the local variables of this level. */ ! for (link = decls; link; link = DECL_CHAIN (link)) { tree name = DECL_NAME (link); if (name != 0 && IDENTIFIER_LOCAL_VALUE (name) == link) *************** maybe_pushlevels (int pc) *** 1616,1622 **** while (*ptr != NULL_TREE && DECL_LOCAL_START_PC (*ptr) <= pc && DECL_LOCAL_END_PC (*ptr) == end_pc) ! ptr = &TREE_CHAIN (*ptr); pending_local_decls = *ptr; *ptr = NULL_TREE; --- 1582,1588 ---- while (*ptr != NULL_TREE && DECL_LOCAL_START_PC (*ptr) <= pc && DECL_LOCAL_END_PC (*ptr) == end_pc) ! ptr = &DECL_CHAIN (*ptr); pending_local_decls = *ptr; *ptr = NULL_TREE; *************** maybe_pushlevels (int pc) *** 1626,1632 **** { tree t; end_pc = current_binding_level->end_pc; ! for (t = decl; t != NULL_TREE; t = TREE_CHAIN (t)) DECL_LOCAL_END_PC (t) = end_pc; } --- 1592,1598 ---- { tree t; end_pc = current_binding_level->end_pc; ! for (t = decl; t != NULL_TREE; t = DECL_CHAIN (t)) DECL_LOCAL_END_PC (t) = end_pc; } *************** maybe_pushlevels (int pc) *** 1641,1647 **** { int index = DECL_LOCAL_SLOT_NUMBER (decl); tree base_decl; ! next = TREE_CHAIN (decl); push_jvm_slot (index, decl); pushdecl (decl); base_decl --- 1607,1613 ---- { int index = DECL_LOCAL_SLOT_NUMBER (decl); tree base_decl; ! next = DECL_CHAIN (decl); push_jvm_slot (index, decl); pushdecl (decl); base_decl *************** java_dup_lang_specific_decl (tree node) *** 1703,1709 **** return; lang_decl_size = sizeof (struct lang_decl); ! x = GGC_NEW (struct lang_decl); memcpy (x, DECL_LANG_SPECIFIC (node), lang_decl_size); DECL_LANG_SPECIFIC (node) = x; } --- 1669,1675 ---- return; lang_decl_size = sizeof (struct lang_decl); ! x = ggc_alloc_lang_decl (lang_decl_size); memcpy (x, DECL_LANG_SPECIFIC (node), lang_decl_size); DECL_LANG_SPECIFIC (node) = x; } *************** give_name_to_locals (JCF *jcf) *** 1769,1776 **** && (DECL_LOCAL_START_PC (*ptr) > start_pc || (DECL_LOCAL_START_PC (*ptr) == start_pc && DECL_LOCAL_END_PC (*ptr) < end_pc))) ! ptr = &TREE_CHAIN (*ptr); ! TREE_CHAIN (decl) = *ptr; *ptr = decl; } } --- 1735,1742 ---- && (DECL_LOCAL_START_PC (*ptr) > start_pc || (DECL_LOCAL_START_PC (*ptr) == start_pc && DECL_LOCAL_END_PC (*ptr) < end_pc))) ! ptr = &DECL_CHAIN (*ptr); ! DECL_CHAIN (decl) = *ptr; *ptr = decl; } } *************** give_name_to_locals (JCF *jcf) *** 1779,1785 **** /* Fill in default names for the parameters. */ for (parm = DECL_ARGUMENTS (current_function_decl), i = 0; ! parm != NULL_TREE; parm = TREE_CHAIN (parm), i++) { if (DECL_NAME (parm) == NULL_TREE) { --- 1745,1751 ---- /* Fill in default names for the parameters. */ for (parm = DECL_ARGUMENTS (current_function_decl), i = 0; ! parm != NULL_TREE; parm = DECL_CHAIN (parm), i++) { if (DECL_NAME (parm) == NULL_TREE) { *************** start_java_method (tree fndecl) *** 1852,1862 **** DECL_ARG_TYPE (parm_decl) = parm_type; *ptr = parm_decl; ! ptr = &TREE_CHAIN (parm_decl); /* Add parm_decl to the decl_map. */ push_jvm_slot (i, parm_decl); type_map[i] = TREE_TYPE (parm_decl); if (TYPE_IS_WIDE (TREE_TYPE (parm_decl))) { --- 1818,1832 ---- DECL_ARG_TYPE (parm_decl) = parm_type; *ptr = parm_decl; ! ptr = &DECL_CHAIN (parm_decl); /* Add parm_decl to the decl_map. */ push_jvm_slot (i, parm_decl); + /* The this parameter of methods is artificial. */ + if (TREE_CODE (TREE_TYPE (fndecl)) == METHOD_TYPE && i == 0) + DECL_ARTIFICIAL (parm_decl) = 1; + type_map[i] = TREE_TYPE (parm_decl); if (TYPE_IS_WIDE (TREE_TYPE (parm_decl))) { *************** java_mark_class_local (tree klass) *** 2001,2011 **** { tree t; ! for (t = TYPE_FIELDS (klass); t ; t = TREE_CHAIN (t)) if (FIELD_STATIC (t)) ! java_mark_decl_local (t); ! for (t = TYPE_METHODS (klass); t ; t = TREE_CHAIN (t)) if (!METHOD_ABSTRACT (t)) { if (METHOD_NATIVE (t) && !flag_jni) --- 1971,1985 ---- { tree t; ! for (t = TYPE_FIELDS (klass); t ; t = DECL_CHAIN (t)) if (FIELD_STATIC (t)) ! { ! if (DECL_EXTERNAL (t)) ! VEC_safe_push (tree, gc, pending_static_fields, t); ! java_mark_decl_local (t); ! } ! for (t = TYPE_METHODS (klass); t ; t = DECL_CHAIN (t)) if (!METHOD_ABSTRACT (t)) { if (METHOD_NATIVE (t) && !flag_jni) *************** java_add_local_var (tree decl) *** 2093,2099 **** { tree *vars = ¤t_binding_level->names; tree next = *vars; ! TREE_CHAIN (decl) = next; *vars = decl; DECL_CONTEXT (decl) = current_function_decl; MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl); --- 2067,2073 ---- { tree *vars = ¤t_binding_level->names; tree next = *vars; ! DECL_CHAIN (decl) = next; *vars = decl; DECL_CONTEXT (decl) = current_function_decl; MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl); diff -Nrcpad gcc-4.5.2/gcc/java/except.c gcc-4.6.0/gcc/java/except.c *** gcc-4.5.2/gcc/java/except.c Mon Sep 14 19:18:58 2009 --- gcc-4.6.0/gcc/java/except.c Mon Jan 3 20:52:22 2011 *************** *** 1,6 **** /* Handle exceptions for GNU compiler for the Java(TM) language. Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, ! 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Handle exceptions for GNU compiler for the Java(TM) language. Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, ! 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,41 **** #include "coretypes.h" #include "tm.h" #include "tree.h" - #include "real.h" - #include "rtl.h" #include "java-tree.h" #include "javaop.h" #include "java-opcodes.h" #include "jcf.h" - #include "function.h" - #include "except.h" #include "java-except.h" #include "toplev.h" #include "tree-iterator.h" --- 27,38 ---- #include "coretypes.h" #include "tm.h" #include "tree.h" #include "java-tree.h" #include "javaop.h" #include "java-opcodes.h" #include "jcf.h" #include "java-except.h" + #include "diagnostic-core.h" #include "toplev.h" #include "tree-iterator.h" *************** prepare_eh_table_type (tree type) *** 384,390 **** return NULL_TREE; if (TYPE_TO_RUNTIME_MAP (output_class) == NULL) ! TYPE_TO_RUNTIME_MAP (output_class) = java_treetreehash_create (10, 1); slot = java_treetreehash_new (TYPE_TO_RUNTIME_MAP (output_class), type); if (*slot != NULL) --- 381,387 ---- return NULL_TREE; if (TYPE_TO_RUNTIME_MAP (output_class) == NULL) ! TYPE_TO_RUNTIME_MAP (output_class) = java_treetreehash_create (10); slot = java_treetreehash_new (TYPE_TO_RUNTIME_MAP (output_class), type); if (*slot != NULL) *************** prepare_eh_table_type (tree type) *** 423,431 **** layout_decl (decl, 0); pushdecl (decl); exp = build1 (ADDR_EXPR, build_pointer_type (utf8const_ptr_type), decl); ! TYPE_CATCH_CLASSES (output_class) = ! tree_cons (NULL, make_catch_class_record (exp, utf8_ref), ! TYPE_CATCH_CLASSES (output_class)); } exp = convert (ptr_type_node, exp); --- 420,428 ---- layout_decl (decl, 0); pushdecl (decl); exp = build1 (ADDR_EXPR, build_pointer_type (utf8const_ptr_type), decl); ! CONSTRUCTOR_APPEND_ELT (TYPE_CATCH_CLASSES (output_class), ! NULL_TREE, ! make_catch_class_record (exp, utf8_ref)); } exp = convert (ptr_type_node, exp); *************** check_start_handlers (struct eh_range *r *** 568,573 **** --- 565,593 ---- } + /* Routine to see if exception handling is turned on. + DO_WARN is nonzero if we want to inform the user that exception + handling is turned off. + + This is used to ensure that -fexceptions has been specified if the + compiler tries to use any exception-specific functions. */ + + static inline int + doing_eh (void) + { + if (! flag_exceptions) + { + static int warned = 0; + if (! warned) + { + error ("exception handling disabled, use -fexceptions to enable"); + warned = 1; + } + return 0; + } + return 1; + } + static struct eh_range *current_range; /* Emit any start-of-try-range starting at start_pc and ending after *************** void *** 577,583 **** maybe_start_try (int start_pc, int end_pc) { struct eh_range *range; ! if (! doing_eh (1)) return; range = find_handler (start_pc); --- 597,603 ---- maybe_start_try (int start_pc, int end_pc) { struct eh_range *range; ! if (! doing_eh ()) return; range = find_handler (start_pc); diff -Nrcpad gcc-4.5.2/gcc/java/expr.c gcc-4.6.0/gcc/java/expr.c *** gcc-4.5.2/gcc/java/expr.c Sat Nov 28 16:21:52 2009 --- gcc-4.6.0/gcc/java/expr.c Tue Nov 30 11:41:24 2010 *************** *** 1,6 **** /* Process expressions for the GNU compiler for the Java(TM) language. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Process expressions for the GNU compiler for the Java(TM) language. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,50 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "tree.h" - #include "real.h" - #include "rtl.h" #include "flags.h" - #include "expr.h" #include "java-tree.h" #include "javaop.h" #include "java-opcodes.h" #include "jcf.h" #include "java-except.h" #include "parse.h" ! #include "toplev.h" ! #include "except.h" ! #include "tm_p.h" #include "ggc.h" #include "tree-iterator.h" - #include "gimple.h" #include "target.h" static void flush_quick_stack (void); --- 27,43 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "tree.h" #include "flags.h" #include "java-tree.h" #include "javaop.h" #include "java-opcodes.h" #include "jcf.h" #include "java-except.h" #include "parse.h" ! #include "diagnostic-core.h" #include "ggc.h" #include "tree-iterator.h" #include "target.h" static void flush_quick_stack (void); *************** static void expand_cond (enum tree_code, *** 75,81 **** static void expand_java_goto (int); static tree expand_java_switch (tree, int); static void expand_java_add_case (tree, int, int); ! static tree pop_arguments (tree); static void expand_invoke (int, int, int); static void expand_java_field_op (int, int, int); static void java_push_constant_from_pool (struct JCF *, int); --- 68,74 ---- static void expand_java_goto (int); static tree expand_java_switch (tree, int); static void expand_java_add_case (tree, int, int); ! static VEC(tree,gc) *pop_arguments (tree); static void expand_invoke (int, int, int); static void expand_java_field_op (int, int, int); static void java_push_constant_from_pool (struct JCF *, int); *************** tree dtable_ident = NULL_TREE; *** 97,104 **** int always_initialize_class_p = 0; /* We store the stack state in two places: ! Within a basic block, we use the quick_stack, which is a ! pushdown list (TREE_LISTs) of expression nodes. This is the top part of the stack; below that we use find_stack_slot. At the end of a basic block, the quick_stack must be flushed to the stack slot array (as handled by find_stack_slot). --- 90,97 ---- int always_initialize_class_p = 0; /* We store the stack state in two places: ! Within a basic block, we use the quick_stack, which is a VEC of expression ! nodes. This is the top part of the stack; below that we use find_stack_slot. At the end of a basic block, the quick_stack must be flushed to the stack slot array (as handled by find_stack_slot). *************** int always_initialize_class_p = 0; *** 123,132 **** So dup cannot just add an extra element to the quick_stack, but iadd can. */ ! static GTY(()) tree quick_stack; ! ! /* A free-list of unused permanent TREE_LIST nodes. */ ! static GTY((deletable)) tree tree_list_free_list; /* The physical memory page size used in this computer. See build_field_ref(). */ --- 116,122 ---- So dup cannot just add an extra element to the quick_stack, but iadd can. */ ! static GTY(()) VEC(tree,gc) *quick_stack; /* The physical memory page size used in this computer. See build_field_ref(). */ *************** static void *** 222,254 **** flush_quick_stack (void) { int stack_index = stack_pointer; ! tree prev, cur, next; ! /* First reverse the quick_stack, and count the number of slots it has. */ ! for (cur = quick_stack, prev = NULL_TREE; cur != NULL_TREE; cur = next) ! { ! next = TREE_CHAIN (cur); ! TREE_CHAIN (cur) = prev; ! prev = cur; ! stack_index -= 1 + TYPE_IS_WIDE (TREE_TYPE (TREE_VALUE (cur))); ! } ! quick_stack = prev; ! while (quick_stack != NULL_TREE) { ! tree decl; ! tree node = quick_stack, type; ! quick_stack = TREE_CHAIN (node); ! TREE_CHAIN (node) = tree_list_free_list; ! tree_list_free_list = node; ! node = TREE_VALUE (node); ! type = TREE_TYPE (node); decl = find_stack_slot (stack_index, type); ! if (decl != node) ! java_add_stmt (build2 (MODIFY_EXPR, TREE_TYPE (node), decl, node)); stack_index += 1 + TYPE_IS_WIDE (type); } } /* Push TYPE on the type stack. --- 212,235 ---- flush_quick_stack (void) { int stack_index = stack_pointer; ! unsigned ix; ! tree t; ! /* Count the number of slots the quick stack is holding. */ ! for (ix = 0; VEC_iterate(tree, quick_stack, ix, t); ix++) ! stack_index -= 1 + TYPE_IS_WIDE (TREE_TYPE (t)); ! for (ix = 0; VEC_iterate(tree, quick_stack, ix, t); ix++) { ! tree decl, type = TREE_TYPE (t); decl = find_stack_slot (stack_index, type); ! if (decl != t) ! java_add_stmt (build2 (MODIFY_EXPR, TREE_TYPE (t), decl, t)); stack_index += 1 + TYPE_IS_WIDE (type); } + + VEC_truncate (tree, quick_stack, 0); } /* Push TYPE on the type stack. *************** push_value (tree value) *** 289,304 **** value = convert (type, value); } push_type (type); ! if (tree_list_free_list == NULL_TREE) ! quick_stack = tree_cons (NULL_TREE, value, quick_stack); ! else ! { ! tree node = tree_list_free_list; ! tree_list_free_list = TREE_CHAIN (tree_list_free_list); ! TREE_VALUE (node) = value; ! TREE_CHAIN (node) = quick_stack; ! quick_stack = node; ! } /* If the value has a side effect, then we need to evaluate it whether or not the result is used. If the value ends up on the quick stack and is then popped, this won't happen -- so we flush --- 270,277 ---- value = convert (type, value); } push_type (type); ! VEC_safe_push (tree, gc, quick_stack, value); ! /* If the value has a side effect, then we need to evaluate it whether or not the result is used. If the value ends up on the quick stack and is then popped, this won't happen -- so we flush *************** add_type_assertion (tree klass, int asse *** 490,496 **** if (*as_pp) return; ! *as_pp = ggc_alloc (sizeof (type_assertion)); **(type_assertion **)as_pp = as; } --- 463,469 ---- if (*as_pp) return; ! *as_pp = ggc_alloc_type_assertion (); **(type_assertion **)as_pp = as; } *************** static tree *** 611,625 **** pop_value (tree type) { type = pop_type (type); ! if (quick_stack) ! { ! tree node = quick_stack; ! quick_stack = TREE_CHAIN (quick_stack); ! TREE_CHAIN (node) = tree_list_free_list; ! tree_list_free_list = node; ! node = TREE_VALUE (node); ! return node; ! } else return find_stack_slot (stack_pointer, promote_type (type)); } --- 584,591 ---- pop_value (tree type) { type = pop_type (type); ! if (VEC_length (tree, quick_stack) != 0) ! return VEC_pop (tree, quick_stack); else return find_stack_slot (stack_pointer, promote_type (type)); } *************** static void *** 1128,1147 **** expand_java_multianewarray (tree class_type, int ndim) { int i; ! tree args = build_tree_list( NULL_TREE, null_pointer_node ); ! for( i = 0; i < ndim; i++ ) ! args = tree_cons (NULL_TREE, pop_value (int_type_node), args); ! args = tree_cons (NULL_TREE, ! build_class_ref (class_type), ! tree_cons (NULL_TREE, ! build_int_cst (NULL_TREE, ndim), ! args)); ! push_value (build_call_list (promote_type (class_type), ! build_address_of (soft_multianewarray_node), ! args)); } /* ARRAY[INDEX] <- RHS. build_java_check_indexed_type makes sure that --- 1094,1114 ---- expand_java_multianewarray (tree class_type, int ndim) { int i; ! VEC(tree,gc) *args = NULL; ! VEC_safe_grow (tree, gc, args, 3 + ndim); ! VEC_replace (tree, args, 0, build_class_ref (class_type)); ! VEC_replace (tree, args, 1, build_int_cst (NULL_TREE, ndim)); ! for(i = ndim - 1; i >= 0; i-- ) ! VEC_replace (tree, args, (unsigned)(2 + i), pop_value (int_type_node)); ! ! VEC_replace (tree, args, 2 + ndim, null_pointer_node); ! ! push_value (build_call_vec (promote_type (class_type), ! build_address_of (soft_multianewarray_node), ! args)); } /* ARRAY[INDEX] <- RHS. build_java_check_indexed_type makes sure that *************** lookup_field (tree *typep, tree name) *** 1666,1672 **** tree save_field; int i; ! for (field = TYPE_FIELDS (*typep); field; field = TREE_CHAIN (field)) if (DECL_NAME (field) == name) return field; --- 1633,1639 ---- tree save_field; int i; ! for (field = TYPE_FIELDS (*typep); field; field = DECL_CHAIN (field)) if (DECL_NAME (field) == name) return field; *************** lookup_label (int pc) *** 1795,1801 **** char buf[32]; if (pc > highest_label_pc_this_method) highest_label_pc_this_method = pc; ! ASM_GENERATE_INTERNAL_LABEL(buf, "LJpc=", start_label_pc_this_method + pc); name = get_identifier (buf); if (IDENTIFIER_LOCAL_VALUE (name)) return IDENTIFIER_LOCAL_VALUE (name); --- 1762,1769 ---- char buf[32]; if (pc > highest_label_pc_this_method) highest_label_pc_this_method = pc; ! targetm.asm_out.generate_internal_label (buf, "LJpc=", ! start_label_pc_this_method + pc); name = get_identifier (buf); if (IDENTIFIER_LOCAL_VALUE (name)) return IDENTIFIER_LOCAL_VALUE (name); *************** generate_name (void) *** 1815,1821 **** { static int l_number = 0; char buff [32]; ! ASM_GENERATE_INTERNAL_LABEL(buff, "LJv", l_number); l_number++; return get_identifier (buff); } --- 1783,1789 ---- { static int l_number = 0; char buff [32]; ! targetm.asm_out.generate_internal_label (buff, "LJv", l_number); l_number++; return get_identifier (buff); } *************** expand_java_add_case (tree switch_expr, *** 1931,1946 **** append_to_statement_list (x, &SWITCH_BODY (switch_expr)); } ! static tree ! pop_arguments (tree arg_types) { ! if (arg_types == end_params_node) ! return NULL_TREE; ! if (TREE_CODE (arg_types) == TREE_LIST) { ! tree tail = pop_arguments (TREE_CHAIN (arg_types)); ! tree type = TREE_VALUE (arg_types); ! tree arg = pop_value (type); /* We simply cast each argument to its proper type. This is needed since we lose type information coming out of the --- 1899,1926 ---- append_to_statement_list (x, &SWITCH_BODY (switch_expr)); } ! static VEC(tree,gc) * ! pop_arguments (tree method_type) { ! function_args_iterator fnai; ! tree type; ! VEC(tree,gc) *args = NULL; ! int arity; ! ! FOREACH_FUNCTION_ARGS (method_type, type, fnai) { ! /* XXX: leaky abstraction. */ ! if (type == void_type_node) ! break; ! ! VEC_safe_push (tree, gc, args, type); ! } ! ! arity = VEC_length (tree, args); ! ! while (arity--) ! { ! tree arg = pop_value (VEC_index (tree, args, arity)); /* We simply cast each argument to its proper type. This is needed since we lose type information coming out of the *************** pop_arguments (tree arg_types) *** 1952,1960 **** && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) && INTEGRAL_TYPE_P (type)) arg = convert (integer_type_node, arg); ! return tree_cons (NULL_TREE, arg, tail); } ! gcc_unreachable (); } /* Attach to PTR (a block) the declaration found in ENTRY. */ --- 1932,1942 ---- && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) && INTEGRAL_TYPE_P (type)) arg = convert (integer_type_node, arg); ! ! VEC_replace (tree, args, arity, arg); } ! ! return args; } /* Attach to PTR (a block) the declaration found in ENTRY. */ *************** attach_init_test_initialization_flags (v *** 1970,1976 **** if (TREE_CODE (block) == BIND_EXPR) { tree body = BIND_EXPR_BODY (block); ! TREE_CHAIN (ite->value) = BIND_EXPR_VARS (block); BIND_EXPR_VARS (block) = ite->value; body = build2 (COMPOUND_EXPR, void_type_node, build1 (DECL_EXPR, void_type_node, ite->value), body); --- 1952,1958 ---- if (TREE_CODE (block) == BIND_EXPR) { tree body = BIND_EXPR_BODY (block); ! DECL_CHAIN (ite->value) = BIND_EXPR_VARS (block); BIND_EXPR_VARS (block) = ite->value; body = build2 (COMPOUND_EXPR, void_type_node, build1 (DECL_EXPR, void_type_node, ite->value), body); *************** typedef struct *** 2079,2112 **** const char *new_classname; const char *new_signature; int flags; ! tree (*rewrite_arglist) (tree arglist); } rewrite_rule; /* Add __builtin_return_address(0) to the end of an arglist. */ ! static tree ! rewrite_arglist_getcaller (tree arglist) { tree retaddr = build_call_expr (built_in_decls[BUILT_IN_RETURN_ADDRESS], 1, integer_zero_node); DECL_UNINLINABLE (current_function_decl) = 1; ! ! return chainon (arglist, ! tree_cons (NULL_TREE, retaddr, ! NULL_TREE)); } /* Add this.class to the end of an arglist. */ ! static tree ! rewrite_arglist_getclass (tree arglist) { ! return chainon (arglist, ! tree_cons (NULL_TREE, build_class_ref (output_class), ! NULL_TREE)); } static rewrite_rule rules[] = --- 2061,2090 ---- const char *new_classname; const char *new_signature; int flags; ! void (*rewrite_arglist) (VEC(tree,gc) **); } rewrite_rule; /* Add __builtin_return_address(0) to the end of an arglist. */ ! static void ! rewrite_arglist_getcaller (VEC(tree,gc) **arglist) { tree retaddr = build_call_expr (built_in_decls[BUILT_IN_RETURN_ADDRESS], 1, integer_zero_node); DECL_UNINLINABLE (current_function_decl) = 1; ! ! VEC_safe_push (tree, gc, *arglist, retaddr); } /* Add this.class to the end of an arglist. */ ! static void ! rewrite_arglist_getclass (VEC(tree,gc) **arglist) { ! VEC_safe_push (tree, gc, *arglist, build_class_ref (output_class)); } static rewrite_rule rules[] = *************** special_method_p (tree candidate_method) *** 2157,2163 **** method, update SPECIAL.*/ void ! maybe_rewrite_invocation (tree *method_p, tree *arg_list_p, tree *method_signature_p, tree *special) { tree context = DECL_NAME (TYPE_NAME (DECL_CONTEXT (*method_p))); --- 2135,2141 ---- method, update SPECIAL.*/ void ! maybe_rewrite_invocation (tree *method_p, VEC(tree,gc) **arg_list_p, tree *method_signature_p, tree *special) { tree context = DECL_NAME (TYPE_NAME (DECL_CONTEXT (*method_p))); *************** maybe_rewrite_invocation (tree *method_p *** 2190,2196 **** *method_p = maybe_method; gcc_assert (*method_p); if (p->rewrite_arglist) ! *arg_list_p = p->rewrite_arglist (*arg_list_p); *method_signature_p = get_identifier (p->new_signature); *special = integer_one_node; --- 2168,2174 ---- *method_p = maybe_method; gcc_assert (*method_p); if (p->rewrite_arglist) ! p->rewrite_arglist (arg_list_p); *method_signature_p = get_identifier (p->new_signature); *special = integer_one_node; *************** maybe_rewrite_invocation (tree *method_p *** 2205,2211 **** tree build_known_method_ref (tree method, tree method_type ATTRIBUTE_UNUSED, tree self_type, tree method_signature ATTRIBUTE_UNUSED, ! tree arg_list ATTRIBUTE_UNUSED, tree special) { tree func; if (is_compiled_class (self_type)) --- 2183,2189 ---- tree build_known_method_ref (tree method, tree method_type ATTRIBUTE_UNUSED, tree self_type, tree method_signature ATTRIBUTE_UNUSED, ! VEC(tree,gc) *arg_list ATTRIBUTE_UNUSED, tree special) { tree func; if (is_compiled_class (self_type)) *************** build_known_method_ref (tree method, tre *** 2261,2267 **** lookup_field (&class_type_node, methods_ident), NULL_TREE); for (meth = TYPE_METHODS (self_type); ! ; meth = TREE_CHAIN (meth)) { if (method == meth) break; --- 2239,2245 ---- lookup_field (&class_type_node, methods_ident), NULL_TREE); for (meth = TYPE_METHODS (self_type); ! ; meth = DECL_CHAIN (meth)) { if (method == meth) break; *************** build_known_method_ref (tree method, tre *** 2282,2299 **** } tree ! invoke_build_dtable (int is_invoke_interface, tree arg_list) { tree dtable, objectref; ! TREE_VALUE (arg_list) = save_expr (TREE_VALUE (arg_list)); /* If we're dealing with interfaces and if the objectref argument is an array then get the dispatch table of the class Object rather than the one from the objectref. */ objectref = (is_invoke_interface ! && is_array_type_p (TREE_TYPE (TREE_VALUE (arg_list))) ! ? build_class_ref (object_type_node) : TREE_VALUE (arg_list)); if (dtable_ident == NULL_TREE) dtable_ident = get_identifier ("vtable"); --- 2260,2278 ---- } tree ! invoke_build_dtable (int is_invoke_interface, VEC(tree,gc) *arg_list) { tree dtable, objectref; + tree saved = save_expr (VEC_index (tree, arg_list, 0)); ! VEC_replace (tree, arg_list, 0, saved); /* If we're dealing with interfaces and if the objectref argument is an array then get the dispatch table of the class Object rather than the one from the objectref. */ objectref = (is_invoke_interface ! && is_array_type_p (TREE_TYPE (saved)) ! ? build_class_ref (object_type_node) : saved); if (dtable_ident == NULL_TREE) dtable_ident = get_identifier ("vtable"); *************** invoke_build_dtable (int is_invoke_inter *** 2311,2344 **** reused. */ int ! get_symbol_table_index (tree t, tree special, tree *symbol_table) { ! int i = 1; ! tree method_list; ! if (*symbol_table == NULL_TREE) ! { ! *symbol_table = build_tree_list (special, t); ! return 1; ! } ! ! method_list = *symbol_table; ! ! while (1) ! { ! tree value = TREE_VALUE (method_list); ! tree purpose = TREE_PURPOSE (method_list); ! if (value == t && purpose == special) ! return i; ! i++; ! if (TREE_CHAIN (method_list) == NULL_TREE) ! break; ! else ! method_list = TREE_CHAIN (method_list); ! } ! TREE_CHAIN (method_list) = build_tree_list (special, t); ! return i; } tree --- 2290,2311 ---- reused. */ int ! get_symbol_table_index (tree t, tree special, ! VEC(method_entry,gc) **symbol_table) { ! method_entry *e; ! unsigned i; ! FOR_EACH_VEC_ELT (method_entry, *symbol_table, i, e) ! if (t == e->method && special == e->special) ! goto done; ! e = VEC_safe_push (method_entry, gc, *symbol_table, NULL); ! e->method = t; ! e->special = special; ! ! done: ! return i + 1; } tree *************** expand_invoke (int opcode, int method_re *** 2461,2467 **** method_ref_index)); const char *const self_name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (self_type))); ! tree call, func, method, arg_list, method_type; tree check = NULL_TREE; tree special = NULL_TREE; --- 2428,2435 ---- method_ref_index)); const char *const self_name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (self_type))); ! tree call, func, method, method_type; ! VEC(tree,gc) *arg_list; tree check = NULL_TREE; tree special = NULL_TREE; *************** expand_invoke (int opcode, int method_re *** 2568,2574 **** just pop the arguments, push a properly-typed zero, and continue. */ method_type = get_type_from_signature (method_signature); ! pop_arguments (TYPE_ARG_TYPES (method_type)); if (opcode != OPCODE_invokestatic) pop_type (self_type); method_type = promote_type (TREE_TYPE (method_type)); --- 2536,2542 ---- just pop the arguments, push a properly-typed zero, and continue. */ method_type = get_type_from_signature (method_signature); ! pop_arguments (method_type); if (opcode != OPCODE_invokestatic) pop_type (self_type); method_type = promote_type (TREE_TYPE (method_type)); *************** expand_invoke (int opcode, int method_re *** 2577,2583 **** } method_type = TREE_TYPE (method); ! arg_list = pop_arguments (TYPE_ARG_TYPES (method_type)); flush_quick_stack (); maybe_rewrite_invocation (&method, &arg_list, &method_signature, --- 2545,2551 ---- } method_type = TREE_TYPE (method); ! arg_list = pop_arguments (method_type); flush_quick_stack (); maybe_rewrite_invocation (&method, &arg_list, &method_signature, *************** expand_invoke (int opcode, int method_re *** 2602,2609 **** We do omit the check if we're calling . */ /* We use a SAVE_EXPR here to make sure we only evaluate the new `self' expression once. */ ! tree save_arg = save_expr (TREE_VALUE (arg_list)); ! TREE_VALUE (arg_list) = save_arg; check = java_check_reference (save_arg, ! DECL_INIT_P (method)); func = build_known_method_ref (method, method_type, self_type, method_signature, arg_list, special); --- 2570,2577 ---- We do omit the check if we're calling . */ /* We use a SAVE_EXPR here to make sure we only evaluate the new `self' expression once. */ ! tree save_arg = save_expr (VEC_index (tree, arg_list, 0)); ! VEC_replace (tree, arg_list, 0, save_arg); check = java_check_reference (save_arg, ! DECL_INIT_P (method)); func = build_known_method_ref (method, method_type, self_type, method_signature, arg_list, special); *************** expand_invoke (int opcode, int method_re *** 2623,2629 **** else func = build1 (NOP_EXPR, build_pointer_type (method_type), func); ! call = build_call_list (TREE_TYPE (method_type), func, arg_list); TREE_SIDE_EFFECTS (call) = 1; call = check_for_builtin (method, call); --- 2591,2597 ---- else func = build1 (NOP_EXPR, build_pointer_type (method_type), func); ! call = build_call_vec (TREE_TYPE (method_type), func, arg_list); TREE_SIDE_EFFECTS (call) = 1; call = check_for_builtin (method, call); *************** expand_invoke (int opcode, int method_re *** 2648,2661 **** tree build_jni_stub (tree method) { ! tree jnifunc, call, args, body, method_sig, arg_types; tree jniarg0, jniarg1, jniarg2, jniarg3; tree jni_func_type, tem; tree env_var, res_var = NULL_TREE, block; tree method_args; tree meth_var; tree bind; ! int args_size = 0; tree klass = DECL_CONTEXT (method); --- 2616,2629 ---- tree build_jni_stub (tree method) { ! tree jnifunc, call, body, method_sig, arg_types; tree jniarg0, jniarg1, jniarg2, jniarg3; tree jni_func_type, tem; tree env_var, res_var = NULL_TREE, block; tree method_args; tree meth_var; tree bind; ! VEC(tree,gc) *args = NULL; int args_size = 0; tree klass = DECL_CONTEXT (method); *************** build_jni_stub (tree method) *** 2675,2681 **** res_var = build_decl (input_location, VAR_DECL, get_identifier ("res"), TREE_TYPE (TREE_TYPE (method))); DECL_CONTEXT (res_var) = method; ! TREE_CHAIN (env_var) = res_var; } method_args = DECL_ARGUMENTS (method); --- 2643,2649 ---- res_var = build_decl (input_location, VAR_DECL, get_identifier ("res"), TREE_TYPE (TREE_TYPE (method))); DECL_CONTEXT (res_var) = method; ! DECL_CHAIN (env_var) = res_var; } method_args = DECL_ARGUMENTS (method); *************** build_jni_stub (tree method) *** 2689,2699 **** build_address_of (soft_getjnienvnewframe_node), 1, klass)); /* All the arguments to this method become arguments to the underlying JNI function. If we had to wrap object arguments in a special way, we would do that here. */ ! args = NULL_TREE; ! for (tem = method_args; tem != NULL_TREE; tem = TREE_CHAIN (tem)) { int arg_bits = TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (tem))); #ifdef PARM_BOUNDARY --- 2657,2679 ---- build_address_of (soft_getjnienvnewframe_node), 1, klass)); + /* The JNIEnv structure is the first argument to the JNI function. */ + args_size += int_size_in_bytes (TREE_TYPE (env_var)); + VEC_safe_push (tree, gc, args, env_var); + + /* For a static method the second argument is the class. For a + non-static method the second argument is `this'; that is already + available in the argument list. */ + if (METHOD_STATIC (method)) + { + args_size += int_size_in_bytes (TREE_TYPE (klass)); + VEC_safe_push (tree, gc, args, klass); + } + /* All the arguments to this method become arguments to the underlying JNI function. If we had to wrap object arguments in a special way, we would do that here. */ ! for (tem = method_args; tem != NULL_TREE; tem = DECL_CHAIN (tem)) { int arg_bits = TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (tem))); #ifdef PARM_BOUNDARY *************** build_jni_stub (tree method) *** 2702,2725 **** #endif args_size += (arg_bits / BITS_PER_UNIT); ! args = tree_cons (NULL_TREE, tem, args); } - args = nreverse (args); arg_types = TYPE_ARG_TYPES (TREE_TYPE (method)); ! /* For a static method the second argument is the class. For a ! non-static method the second argument is `this'; that is already ! available in the argument list. */ if (METHOD_STATIC (method)) ! { ! args_size += int_size_in_bytes (TREE_TYPE (klass)); ! args = tree_cons (NULL_TREE, klass, args); ! arg_types = tree_cons (NULL_TREE, object_ptr_type_node, arg_types); ! } ! ! /* The JNIEnv structure is the first argument to the JNI function. */ ! args_size += int_size_in_bytes (TREE_TYPE (env_var)); ! args = tree_cons (NULL_TREE, env_var, args); arg_types = tree_cons (NULL_TREE, ptr_type_node, arg_types); /* We call _Jv_LookupJNIMethod to find the actual underlying --- 2682,2695 ---- #endif args_size += (arg_bits / BITS_PER_UNIT); ! VEC_safe_push (tree, gc, args, tem); } arg_types = TYPE_ARG_TYPES (TREE_TYPE (method)); ! /* Argument types for static methods and the JNIEnv structure. ! FIXME: Write and use build_function_type_vec to avoid this. */ if (METHOD_STATIC (method)) ! arg_types = tree_cons (NULL_TREE, object_ptr_type_node, arg_types); arg_types = tree_cons (NULL_TREE, ptr_type_node, arg_types); /* We call _Jv_LookupJNIMethod to find the actual underlying *************** build_jni_stub (tree method) *** 2774,2781 **** /* Now we make the actual JNI call via the resulting function pointer. */ ! call = build_call_list (TREE_TYPE (TREE_TYPE (method)), ! jnifunc, args); /* If the JNI call returned a result, capture it here. If we had to unwrap JNI object results, we would do that here. */ --- 2744,2750 ---- /* Now we make the actual JNI call via the resulting function pointer. */ ! call = build_call_vec (TREE_TYPE (TREE_TYPE (method)), jnifunc, args); /* If the JNI call returned a result, capture it here. If we had to unwrap JNI object results, we would do that here. */ *************** expand_java_field_op (int is_static, int *** 2950,2956 **** if (FIELD_FINAL (field_decl)) { if (DECL_CONTEXT (field_decl) != current_class) ! error ("assignment to final field %q+D not in field's class", field_decl); /* We used to check for assignments to final fields not occurring in the class initializer or in a constructor --- 2919,2925 ---- if (FIELD_FINAL (field_decl)) { if (DECL_CONTEXT (field_decl) != current_class) ! error ("assignment to final field %q+D not in field%'s class", field_decl); /* We used to check for assignments to final fields not occurring in the class initializer or in a constructor *************** process_jvm_instruction (int PC, const u *** 3329,3334 **** --- 3298,3304 ---- { \ int saw_index = 0; \ int index = OPERAND_VALUE; \ + (void) saw_index; /* Avoid set but not used warning. */ \ build_java_ret \ (find_local_variable (index, return_address_type_node, oldpc)); \ } *************** promote_arguments (void) *** 3809,3815 **** int i; tree arg; for (arg = DECL_ARGUMENTS (current_function_decl), i = 0; ! arg != NULL_TREE; arg = TREE_CHAIN (arg), i++) { tree arg_type = TREE_TYPE (arg); if (INTEGRAL_TYPE_P (arg_type) --- 3779,3785 ---- int i; tree arg; for (arg = DECL_ARGUMENTS (current_function_decl), i = 0; ! arg != NULL_TREE; arg = DECL_CHAIN (arg), i++) { tree arg_type = TREE_TYPE (arg); if (INTEGRAL_TYPE_P (arg_type) diff -Nrcpad gcc-4.5.2/gcc/java/gcj.texi gcc-4.6.0/gcc/java/gcj.texi *** gcc-4.5.2/gcc/java/gcj.texi Wed Aug 12 16:10:12 2009 --- gcc-4.6.0/gcc/java/gcj.texi Wed Jun 9 23:46:33 2010 *************** *** 17,30 **** @c the word ``Java'. @c When this manual is copyrighted. ! @set copyrights-gcj 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 @copying @c man begin COPYRIGHT Copyright @copyright{} @value{copyrights-gcj} Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document ! under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). --- 17,30 ---- @c the word ``Java'. @c When this manual is copyrighted. ! @set copyrights-gcj 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 @copying @c man begin COPYRIGHT Copyright @copyright{} @value{copyrights-gcj} Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document ! under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). diff -Nrcpad gcc-4.5.2/gcc/java/java-gimplify.c gcc-4.6.0/gcc/java/java-gimplify.c *** gcc-4.5.2/gcc/java/java-gimplify.c Fri Jul 17 15:49:34 2009 --- gcc-4.6.0/gcc/java/java-gimplify.c Mon Jan 3 20:52:22 2011 *************** *** 1,5 **** /* Java(TM) language-specific gimplification routines. ! Copyright (C) 2003, 2004, 2006, 2007, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,5 ---- /* Java(TM) language-specific gimplification routines. ! Copyright (C) 2003, 2004, 2006, 2007, 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 25,36 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "tree.h" #include "java-tree.h" #include "tree-dump.h" #include "gimple.h" - #include "toplev.h" static tree java_gimplify_block (tree); static enum gimplify_status java_gimplify_modify_expr (tree *); --- 25,34 ---- diff -Nrcpad gcc-4.5.2/gcc/java/java-tree.h gcc-4.6.0/gcc/java/java-tree.h *** gcc-4.5.2/gcc/java/java-tree.h Mon Sep 14 19:18:58 2009 --- gcc-4.6.0/gcc/java/java-tree.h Wed Nov 17 14:31:07 2010 *************** *** 1,7 **** /* Definitions for parsing and type checking for the GNU compiler for the Java(TM) language. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,7 ---- /* Definitions for parsing and type checking for the GNU compiler for the Java(TM) language. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** struct JCF; *** 102,111 **** #define output_class \ java_global_trees[JTI_OUTPUT_CLASS] - /* List of all class DECLs seen so far. */ - #define all_class_list \ - java_global_trees[JTI_ALL_CLASS_LIST] - /* List of virtual decls referred to by this translation unit, used to generate virtual method offset symbol table. */ --- 102,107 ---- *************** struct JCF; *** 116,179 **** /* The virtual offset symbol table. Used by the runtime to fill out the otable. */ - extern int flag_filelist_file; - - /* When nonzero, permit the use of the assert keyword. */ - - extern int flag_assert; - - /* When nonzero, assume all native functions are implemented with - JNI, not CNI. */ - - extern int flag_jni; - - /* When nonzero, always check for a non gcj generated classes archive. */ - - extern int flag_force_classes_archive_check; - /* Resource name. */ extern const char *resource_name; /* Turned to 1 if -Wall was encountered. See lang.c for their meanings. */ extern int flag_wall; - extern int flag_redundant; - - /* When nonzero, warn when source file is newer than matching class - file. */ - extern int flag_newer; - - /* When nonzero, call a library routine to do integer divisions. */ - extern int flag_use_divide_subroutine; - - /* When nonzero, use atomic builtins. */ - extern int flag_use_atomic_builtins; - - /* When nonzero, generate code for the Boehm GC. */ - extern int flag_use_boehm_gc; - - /* When nonzero, assume the runtime uses a hash table to map an - object to its synchronization structure. */ - extern int flag_hash_synchronization; - - /* When nonzero, generate checks for references to NULL. */ - extern int flag_check_references; - - /* Used through STATIC_CLASS_INIT_OPT_P to check whether static - initialization optimization should be performed. */ - extern int flag_optimize_sci; - - /* Generate instances of Class at runtime. */ - extern int flag_indirect_classes; - - /* When nonzero, use offset tables for virtual method calls - in order to improve binary compatibility. */ - extern int flag_indirect_dispatch; - - /* When zero, don't generate runtime array store checks. */ - extern int flag_store_check; - - /* When nonzero, generate only a limited set of class meta-data. */ - extern int flag_reduced_reflection; /* The Java .class file that provides main_class; the main input file. */ extern GTY(()) struct JCF * current_jcf; --- 112,122 ---- *************** enum java_tree_index *** 370,378 **** JTI_MAIN_CLASS, JTI_CURRENT_CLASS, JTI_OUTPUT_CLASS, - JTI_ALL_CLASS_LIST, - - JTI_PREDEF_FILENAMES, JTI_MAX }; --- 313,318 ---- *************** extern GTY(()) tree java_global_trees[JT *** 630,638 **** #define nativecode_ptr_array_type_node \ java_global_trees[JTI_NATIVECODE_PTR_ARRAY_TYPE_NODE] - #define predef_filenames \ - java_global_trees[JTI_PREDEF_FILENAMES] - #define nativecode_ptr_type_node ptr_type_node /* The decl for "_Jv_ResolvePoolEntry". */ --- 570,575 ---- *************** union GTY((desc ("TREE_CODE (&%h.generic *** 760,770 **** (DECL_LANG_SPECIFIC (NODE)->u.v.vtable) /* Create a DECL_LANG_SPECIFIC if necessary. */ ! #define MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC(T) \ ! if (DECL_LANG_SPECIFIC (T) == NULL) \ ! { \ ! DECL_LANG_SPECIFIC ((T)) = GGC_CNEW (struct lang_decl); \ ! DECL_LANG_SPECIFIC (T)->desc = LANG_DECL_VAR; \ } /* A ConstantExpression, after folding and name resolution. */ --- 697,708 ---- (DECL_LANG_SPECIFIC (NODE)->u.v.vtable) /* Create a DECL_LANG_SPECIFIC if necessary. */ ! #define MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC(T) \ ! if (DECL_LANG_SPECIFIC (T) == NULL) \ ! { \ ! DECL_LANG_SPECIFIC ((T)) \ ! = ggc_alloc_cleared_lang_decl (sizeof (struct lang_decl)); \ ! DECL_LANG_SPECIFIC (T)->desc = LANG_DECL_VAR; \ } /* A ConstantExpression, after folding and name resolution. */ *************** struct GTY(()) lang_decl_func { *** 786,792 **** int max_stack; int arg_slot_count; source_location last_line; /* End line number for a function decl */ ! tree throws_list; /* Exception specified by `throws' */ tree exc_obj; /* Decl holding the exception object. */ /* Class initialization test variables */ --- 724,730 ---- int max_stack; int arg_slot_count; source_location last_line; /* End line number for a function decl */ ! VEC(tree,gc) *throws_list; /* Exception specified by `throws' */ tree exc_obj; /* Decl holding the exception object. */ /* Class initialization test variables */ *************** typedef struct GTY(()) type_assertion { *** 850,856 **** extern tree java_treetreehash_find (htab_t, tree); extern tree * java_treetreehash_new (htab_t, tree); ! extern htab_t java_treetreehash_create (size_t size, int ggc); /* DECL_LANG_SPECIFIC for VAR_DECL, PARM_DECL and sometimes FIELD_DECL (access methods on outer class fields) and final fields. */ --- 788,794 ---- extern tree java_treetreehash_find (htab_t, tree); extern tree * java_treetreehash_new (htab_t, tree); ! extern htab_t java_treetreehash_create (size_t size); /* DECL_LANG_SPECIFIC for VAR_DECL, PARM_DECL and sometimes FIELD_DECL (access methods on outer class fields) and final fields. */ *************** struct GTY(()) lang_decl_var { *** 871,877 **** enum lang_decl_desc {LANG_DECL_FUNC, LANG_DECL_VAR}; ! struct GTY(()) lang_decl { enum lang_decl_desc desc; union lang_decl_u { --- 809,815 ---- enum lang_decl_desc {LANG_DECL_FUNC, LANG_DECL_VAR}; ! struct GTY((variable_size)) lang_decl { enum lang_decl_desc desc; union lang_decl_u { *************** struct GTY(()) lang_decl { *** 889,895 **** #define MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC(T) \ if (TYPE_LANG_SPECIFIC ((T)) == NULL) \ TYPE_LANG_SPECIFIC ((T)) \ ! = GGC_CNEW (struct lang_type); #define TYPE_DUMMY(T) (TYPE_LANG_SPECIFIC(T)->dummy_class) --- 827,833 ---- #define MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC(T) \ if (TYPE_LANG_SPECIFIC ((T)) == NULL) \ TYPE_LANG_SPECIFIC ((T)) \ ! = ggc_alloc_cleared_lang_type (sizeof (struct lang_type)); #define TYPE_DUMMY(T) (TYPE_LANG_SPECIFIC(T)->dummy_class) *************** struct GTY(()) lang_decl { *** 926,956 **** #define TYPE_REFLECTION_DATASIZE(T) \ (TYPE_LANG_SPECIFIC (T)->reflection_datasize) ! struct GTY(()) lang_type { tree signature; struct JCF *jcf; struct CPool *cpool; tree cpool_data_ref; /* Cached */ tree package_list; /* List of package names, progressive */ ! tree otable_methods; /* List of static decls referred to by this ! class. */ tree otable_decl; /* The static address table. */ tree otable_syms_decl; ! tree atable_methods; /* List of static decls referred to by this ! class. */ tree atable_decl; /* The static address table. */ tree atable_syms_decl; ! tree itable_methods; /* List of interfaces methods referred ! to by this class. */ tree itable_decl; /* The interfaces table. */ tree itable_syms_decl; tree ctable_decl; /* The table of classes for the runtime type matcher. */ ! tree catch_classes; htab_t GTY ((param_is (struct treetreehash_entry))) type_to_runtime_map; /* The mapping of classes to exception region --- 864,905 ---- #define TYPE_REFLECTION_DATASIZE(T) \ (TYPE_LANG_SPECIFIC (T)->reflection_datasize) ! typedef struct GTY(()) method_entry_d { ! tree method; ! tree special; ! } method_entry; ! ! DEF_VEC_O(method_entry); ! DEF_VEC_ALLOC_O(method_entry,gc); ! ! /* FIXME: the variable_size annotation here is needed because these types are ! variable-sized in some other frontends. Due to gengtype deficiency the GTY ! options of such types have to agree across all frontends. */ ! struct GTY((variable_size)) lang_type { tree signature; struct JCF *jcf; struct CPool *cpool; tree cpool_data_ref; /* Cached */ tree package_list; /* List of package names, progressive */ ! VEC(method_entry,gc) *otable_methods; /* List of static decls referred ! to by this class. */ tree otable_decl; /* The static address table. */ tree otable_syms_decl; ! VEC(method_entry,gc) *atable_methods; /* List of abstract methods ! referred to by this class. */ tree atable_decl; /* The static address table. */ tree atable_syms_decl; ! VEC(method_entry,gc) *itable_methods; /* List of interface methods ! referred to by this class. */ tree itable_decl; /* The interfaces table. */ tree itable_syms_decl; tree ctable_decl; /* The table of classes for the runtime type matcher. */ ! VEC(constructor_elt,gc) *catch_classes; htab_t GTY ((param_is (struct treetreehash_entry))) type_to_runtime_map; /* The mapping of classes to exception region *************** struct GTY(()) lang_type { *** 990,996 **** /* Defined in java-except.h */ struct eh_range; ! extern void java_parse_file (int); extern tree java_type_for_mode (enum machine_mode, int); extern tree java_type_for_size (unsigned int, int); extern tree java_truthvalue_conversion (tree); --- 939,945 ---- /* Defined in java-except.h */ struct eh_range; ! extern void java_parse_file (void); extern tree java_type_for_mode (enum machine_mode, int); extern tree java_type_for_size (unsigned int, int); extern tree java_truthvalue_conversion (tree); *************** extern void initialize_builtins (void); *** 1067,1080 **** extern tree lookup_name (tree); extern bool special_method_p (tree); ! extern void maybe_rewrite_invocation (tree *, tree *, tree *, tree *); ! extern tree build_known_method_ref (tree, tree, tree, tree, tree, tree); extern tree build_class_init (tree, tree); extern int attach_init_test_initialization_flags (void **, void *); extern tree build_invokevirtual (tree, tree, tree); extern tree build_invokeinterface (tree, tree); extern tree build_jni_stub (tree); ! extern tree invoke_build_dtable (int, tree); extern tree build_field_ref (tree, tree, tree); extern tree java_modify_addr_for_volatile (tree); extern void pushdecl_force_head (tree); --- 1016,1029 ---- extern tree lookup_name (tree); extern bool special_method_p (tree); ! extern void maybe_rewrite_invocation (tree *, VEC(tree,gc) **, tree *, tree *); ! extern tree build_known_method_ref (tree, tree, tree, tree, VEC(tree,gc) *, tree); extern tree build_class_init (tree, tree); extern int attach_init_test_initialization_flags (void **, void *); extern tree build_invokevirtual (tree, tree, tree); extern tree build_invokeinterface (tree, tree); extern tree build_jni_stub (tree); ! extern tree invoke_build_dtable (int, VEC(tree,gc) *); extern tree build_field_ref (tree, tree, tree); extern tree java_modify_addr_for_volatile (tree); extern void pushdecl_force_head (tree); *************** extern void make_class_data (tree); *** 1113,1119 **** extern int alloc_name_constant (int, tree); extern int alloc_constant_fieldref (tree, tree); extern void emit_register_classes (tree *); ! extern tree emit_symbol_table (tree, tree, tree, tree, tree, int); extern void lang_init_source (int); extern void write_classfile (tree); extern char *print_int_node (tree); --- 1062,1069 ---- extern int alloc_name_constant (int, tree); extern int alloc_constant_fieldref (tree, tree); extern void emit_register_classes (tree *); ! extern tree emit_symbol_table (tree, tree, VEC(method_entry,gc) *, ! tree, tree, int); extern void lang_init_source (int); extern void write_classfile (tree); extern char *print_int_node (tree); *************** extern void register_exception_range(str *** 1216,1222 **** extern void finish_method (tree); extern void java_expand_body (tree); ! extern int get_symbol_table_index (tree, tree, tree *); extern tree make_catch_class_record (tree, tree); extern tree emit_catch_table (tree); --- 1166,1172 ---- extern void finish_method (tree); extern void java_expand_body (tree); ! extern int get_symbol_table_index (tree, tree, VEC(method_entry,gc) **); extern tree make_catch_class_record (tree, tree); extern tree emit_catch_table (tree); *************** extern void rewrite_reflection_indexes ( *** 1231,1236 **** --- 1181,1190 ---- int cxx_keyword_p (const char *name, int length); + extern GTY(()) VEC(tree,gc) *pending_static_fields; + + extern void java_write_globals (void); + #define DECL_FINAL(DECL) DECL_LANG_FLAG_3 (DECL) /* Access flags etc for a method (a FUNCTION_DECL): */ *************** extern tree *type_map; *** 1454,1510 **** if (TYPE_FIELDS (RTYPE) == NULL_TREE) \ TYPE_FIELDS (RTYPE) = _field; \ else \ ! TREE_CHAIN(FIELD) = _field; \ DECL_CONTEXT (_field) = (RTYPE); \ DECL_ARTIFICIAL (_field) = 1; \ FIELD = _field; } #define FINISH_RECORD(RTYPE) layout_type (RTYPE) ! /* Start building a RECORD_TYPE constructor with a given TYPE in CONS. */ ! #define START_RECORD_CONSTRUCTOR(CONS, CTYPE) \ do \ { \ ! CONS = build_constructor ((CTYPE), VEC_alloc (constructor_elt, gc, 0)); \ ! CONSTRUCTOR_APPEND_ELT (CONSTRUCTOR_ELTS (CONS), TYPE_FIELDS (CTYPE), \ ! NULL); \ } \ while (0) ! /* Append a field initializer to CONS for the dummy field for the inherited fields. The dummy field has the given VALUE, and the same type as the super-class. Must be specified before calls to PUSH_FIELD_VALUE. */ ! #define PUSH_SUPER_VALUE(CONS, VALUE) \ do \ { \ ! constructor_elt *_elt___ = VEC_last (constructor_elt, \ ! CONSTRUCTOR_ELTS (CONS)); \ ! tree _next___ = TREE_CHAIN (_elt___->index); \ gcc_assert (!DECL_NAME (_elt___->index)); \ _elt___->value = VALUE; \ ! CONSTRUCTOR_APPEND_ELT (CONSTRUCTOR_ELTS (CONS), _next___, NULL); \ } \ while (0) ! /* Append a field initializer to CONS for a field with the given VALUE. NAME is a char* string used for error checking; the initializer must be specified in order. */ ! #define PUSH_FIELD_VALUE(CONS, NAME, VALUE) \ do \ { \ ! constructor_elt *_elt___ = VEC_last (constructor_elt, \ ! CONSTRUCTOR_ELTS (CONS)); \ ! tree _next___ = TREE_CHAIN (_elt___->index); \ gcc_assert (strcmp (IDENTIFIER_POINTER (DECL_NAME (_elt___->index)), \ NAME) == 0); \ _elt___->value = VALUE; \ ! CONSTRUCTOR_APPEND_ELT (CONSTRUCTOR_ELTS (CONS), _next___, NULL); \ } \ while (0) ! /* Finish creating a record CONSTRUCTOR CONS. */ ! #define FINISH_RECORD_CONSTRUCTOR(CONS) \ ! VEC_pop (constructor_elt, CONSTRUCTOR_ELTS (CONS)) #define BLOCK_EXPR_DECLS(NODE) BLOCK_VARS(NODE) #define BLOCK_EXPR_BODY(NODE) BLOCK_SUBBLOCKS(NODE) --- 1408,1468 ---- if (TYPE_FIELDS (RTYPE) == NULL_TREE) \ TYPE_FIELDS (RTYPE) = _field; \ else \ ! DECL_CHAIN(FIELD) = _field; \ DECL_CONTEXT (_field) = (RTYPE); \ DECL_ARTIFICIAL (_field) = 1; \ FIELD = _field; } #define FINISH_RECORD(RTYPE) layout_type (RTYPE) ! /* Start building a RECORD_TYPE constructor's elements in V. The ! constructor will have type CTYPE. */ ! #define START_RECORD_CONSTRUCTOR(V, CTYPE) \ do \ { \ ! V = VEC_alloc (constructor_elt, gc, 0); \ ! CONSTRUCTOR_APPEND_ELT (V, TYPE_FIELDS (CTYPE), NULL); \ } \ while (0) ! /* Append a field initializer to V for the dummy field for the inherited fields. The dummy field has the given VALUE, and the same type as the super-class. Must be specified before calls to PUSH_FIELD_VALUE. */ ! #define PUSH_SUPER_VALUE(V, VALUE) \ do \ { \ ! constructor_elt *_elt___ = VEC_last (constructor_elt, V); \ ! tree _next___ = DECL_CHAIN (_elt___->index); \ gcc_assert (!DECL_NAME (_elt___->index)); \ _elt___->value = VALUE; \ ! CONSTRUCTOR_APPEND_ELT (V, _next___, NULL); \ } \ while (0) ! /* Append a field initializer to V for a field with the given VALUE. NAME is a char* string used for error checking; the initializer must be specified in order. */ ! #define PUSH_FIELD_VALUE(V, NAME, VALUE) \ do \ { \ ! constructor_elt *_elt___ = VEC_last (constructor_elt, V); \ ! tree _next___ = DECL_CHAIN (_elt___->index); \ gcc_assert (strcmp (IDENTIFIER_POINTER (DECL_NAME (_elt___->index)), \ NAME) == 0); \ _elt___->value = VALUE; \ ! CONSTRUCTOR_APPEND_ELT (V, _next___, NULL); \ } \ while (0) ! /* Finish creating a record CONSTRUCTOR CONS with type CTYPE and elements V. */ ! #define FINISH_RECORD_CONSTRUCTOR(CONS, V, CTYPE) \ ! do \ ! { \ ! VEC_pop (constructor_elt, V); \ ! CONS = build_constructor (CTYPE, V); \ ! TREE_CONSTANT (CONS) = 0; \ ! } \ ! while (0) #define BLOCK_EXPR_DECLS(NODE) BLOCK_VARS(NODE) #define BLOCK_EXPR_BODY(NODE) BLOCK_SUBBLOCKS(NODE) diff -Nrcpad gcc-4.5.2/gcc/java/jcf-depend.c gcc-4.6.0/gcc/java/jcf-depend.c *** gcc-4.5.2/gcc/java/jcf-depend.c Tue Jul 31 16:19:49 2007 --- gcc-4.6.0/gcc/java/jcf-depend.c Mon Nov 29 14:09:41 2010 *************** *** 1,6 **** /* Functions for handling dependency tracking when reading .class files. ! Copyright (C) 1998, 1999, 2000, 2001, 2003, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Functions for handling dependency tracking when reading .class files. ! Copyright (C) 1998, 1999, 2000, 2001, 2003, 2006, 2007, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 28,38 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "mkdeps.h" - #include - #include "jcf.h" --- 28,35 ---- *************** jcf_dependency_add_target (const char *n *** 90,96 **** void jcf_dependency_set_dep_file (const char *name) { ! assert (dep_out != stdout); if (dep_out) fclose (dep_out); if (! strcmp (name, "-")) --- 87,93 ---- void jcf_dependency_set_dep_file (const char *name) { ! gcc_assert (dep_out != stdout); if (dep_out) fclose (dep_out); if (! strcmp (name, "-")) *************** jcf_dependency_add_file (const char *fil *** 118,124 **** void jcf_dependency_init (int system_p) { ! assert (! dependencies); system_files = system_p; dependencies = deps_init (); } --- 115,121 ---- void jcf_dependency_init (int system_p) { ! gcc_assert (! dependencies); system_files = system_p; dependencies = deps_init (); } *************** jcf_dependency_write (void) *** 135,141 **** if (! dep_out) return; ! assert (dependencies); deps_write (dependencies, dep_out, 72); if (print_dummies) --- 132,138 ---- if (! dep_out) return; ! gcc_assert (dependencies); deps_write (dependencies, dep_out, 72); if (print_dummies) diff -Nrcpad gcc-4.5.2/gcc/java/jcf-dump.c gcc-4.6.0/gcc/java/jcf-dump.c *** gcc-4.5.2/gcc/java/jcf-dump.c Sat Jan 9 00:00:42 2010 --- gcc-4.6.0/gcc/java/jcf-dump.c Mon Jan 3 16:14:57 2011 *************** *** 2,8 **** Functionally similar to Sun's javap. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. --- 2,8 ---- Functionally similar to Sun's javap. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 51,58 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" - #include "ggc.h" #include "intl.h" #include "jcf.h" --- 51,56 ---- *************** int flag_print_fields = 1; *** 78,87 **** int flag_print_methods = 1; int flag_print_attributes = 1; - /* When nonzero, warn when source file is newer than matching class - file. */ - int flag_newer = 1; - /* Print names of classes that have a "main" method. */ int flag_print_main = 0; --- 76,81 ---- *************** static void *** 1167,1173 **** version (void) { printf ("jcf-dump %s%s\n\n", pkgversion_string, version_string); ! printf ("Copyright %s 2010 Free Software Foundation, Inc.\n", _("(C)")); printf (_("This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n")); exit (0); --- 1161,1167 ---- version (void) { printf ("jcf-dump %s%s\n\n", pkgversion_string, version_string); ! printf ("Copyright %s 2011 Free Software Foundation, Inc.\n", _("(C)")); printf (_("This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n")); exit (0); diff -Nrcpad gcc-4.5.2/gcc/java/jcf-io.c gcc-4.6.0/gcc/java/jcf-io.c *** gcc-4.5.2/gcc/java/jcf-io.c Mon Jun 1 16:35:01 2009 --- gcc-4.6.0/gcc/java/jcf-io.c Mon Nov 29 14:09:41 2010 *************** *** 1,6 **** /* Utility routines for finding and reading Java(TM) .class files. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, ! 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Utility routines for finding and reading Java(TM) .class files. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, ! 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,48 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "jcf.h" #include "tree.h" - #include "toplev.h" #include "java-tree.h" #include "hashtab.h" #include #include "zlib.h" - /* DOS brain-damage */ - #ifndef O_BINARY - #define O_BINARY 0 /* MS-DOS brain-damage */ - #endif - int jcf_unexpected_eof (JCF *jcf, int count ATTRIBUTE_UNUSED) { --- 27,41 ---- diff -Nrcpad gcc-4.5.2/gcc/java/jcf-parse.c gcc-4.6.0/gcc/java/jcf-parse.c *** gcc-4.5.2/gcc/java/jcf-parse.c Wed Jan 20 09:35:05 2010 --- gcc-4.6.0/gcc/java/jcf-parse.c Tue Dec 7 15:42:44 2010 *************** *** 1,6 **** /* Parser for Java(TM) .class files. Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Parser for Java(TM) .class files. Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,49 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "tree.h" - #include "real.h" #include "obstack.h" #include "flags.h" #include "java-except.h" #include "input.h" #include "javaop.h" #include "java-tree.h" ! #include "toplev.h" #include "parse.h" #include "ggc.h" #include "debug.h" - #include "assert.h" - #include "tm_p.h" #include "cgraph.h" #include "vecprim.h" #ifdef HAVE_LOCALE_H #include --- 27,47 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "tree.h" #include "obstack.h" #include "flags.h" #include "java-except.h" #include "input.h" #include "javaop.h" #include "java-tree.h" ! #include "diagnostic-core.h" #include "parse.h" #include "ggc.h" #include "debug.h" #include "cgraph.h" #include "vecprim.h" + #include "bitmap.h" + #include "target.h" #ifdef HAVE_LOCALE_H #include *************** The Free Software Foundation is independ *** 73,79 **** extern struct obstack temporary_obstack; ! static GTY(()) tree parse_roots[3]; /* The FIELD_DECL for the current field. */ #define current_field parse_roots[0] --- 71,77 ---- extern struct obstack temporary_obstack; ! static GTY(()) tree parse_roots[2]; /* The FIELD_DECL for the current field. */ #define current_field parse_roots[0] *************** static GTY(()) tree parse_roots[3]; *** 81,95 **** /* The METHOD_DECL for the current method. */ #define current_method parse_roots[1] - /* A list of TRANSLATION_UNIT_DECLs for the files to be compiled. */ - #define current_file_list parse_roots[2] - /* Line 0 in current file, if compiling from bytecode. */ static location_t file_start_location; /* The Java archive that provides main_class; the main input file. */ static GTY(()) struct JCF * main_jcf; /* The number of source files passed to us by -fsource-filename and an array of pointers to each name. Used by find_sourcefile(). */ static int num_files = 0; --- 79,93 ---- /* The METHOD_DECL for the current method. */ #define current_method parse_roots[1] /* Line 0 in current file, if compiling from bytecode. */ static location_t file_start_location; /* The Java archive that provides main_class; the main input file. */ static GTY(()) struct JCF * main_jcf; + /* A list of all the class DECLs seen so far. */ + static GTY(()) VEC(tree,gc) *all_class_list; + /* The number of source files passed to us by -fsource-filename and an array of pointers to each name. Used by find_sourcefile(). */ static int num_files = 0; *************** handle_constant (JCF *jcf, int index, en *** 556,567 **** case CONSTANT_Long: index = handle_long_constant (jcf, cpool, CONSTANT_Long, index, ! WORDS_BIG_ENDIAN); break; case CONSTANT_Double: index = handle_long_constant (jcf, cpool, CONSTANT_Double, index, ! FLOAT_WORDS_BIG_ENDIAN); break; case CONSTANT_Float: --- 554,565 ---- case CONSTANT_Long: index = handle_long_constant (jcf, cpool, CONSTANT_Long, index, ! targetm.words_big_endian ()); break; case CONSTANT_Double: index = handle_long_constant (jcf, cpool, CONSTANT_Double, index, ! targetm.float_words_big_endian ()); break; case CONSTANT_Float: *************** handle_signature_attribute (int member_i *** 935,947 **** #define HANDLE_EXCEPTIONS_ATTRIBUTE(COUNT) \ { \ int n = COUNT; \ ! tree list = DECL_FUNCTION_THROWS (current_method); \ while (--n >= 0) \ { \ tree thrown_class = get_class_constant (jcf, JCF_readu2 (jcf)); \ ! list = tree_cons (NULL_TREE, thrown_class, list); \ } \ ! DECL_FUNCTION_THROWS (current_method) = nreverse (list); \ } #define HANDLE_DEPRECATED_ATTRIBUTE() handle_deprecated () --- 933,946 ---- #define HANDLE_EXCEPTIONS_ATTRIBUTE(COUNT) \ { \ int n = COUNT; \ ! VEC (tree,gc) *v = VEC_alloc (tree, gc, n); \ ! gcc_assert (DECL_FUNCTION_THROWS (current_method) == NULL); \ while (--n >= 0) \ { \ tree thrown_class = get_class_constant (jcf, JCF_readu2 (jcf)); \ ! VEC_quick_push (tree, v, thrown_class); \ } \ ! DECL_FUNCTION_THROWS (current_method) = v; \ } #define HANDLE_DEPRECATED_ATTRIBUTE() handle_deprecated () *************** get_constant (JCF *jcf, int index) *** 1040,1053 **** } case CONSTANT_Long: { ! unsigned HOST_WIDE_INT num = JPOOL_UINT (jcf, index); ! unsigned HOST_WIDE_INT lo; ! HOST_WIDE_INT hi; ! ! lshift_double (num, 0, 32, 64, &lo, &hi, 0); ! num = JPOOL_UINT (jcf, index+1); ! add_double (lo, hi, num, 0, &lo, &hi); ! value = build_int_cst_wide_type (long_type_node, lo, hi); break; } --- 1039,1053 ---- } case CONSTANT_Long: { ! unsigned HOST_WIDE_INT num; ! double_int val; ! ! num = JPOOL_UINT (jcf, index); ! val = double_int_lshift (uhwi_to_double_int (num), 32, 64, false); ! num = JPOOL_UINT (jcf, index + 1); ! val = double_int_ior (val, uhwi_to_double_int (num)); ! ! value = double_int_to_tree (long_type_node, val); break; } *************** get_constant (JCF *jcf, int index) *** 1070,1076 **** hi = JPOOL_UINT (jcf, index); lo = JPOOL_UINT (jcf, index+1); ! if (FLOAT_WORDS_BIG_ENDIAN) buf[0] = hi, buf[1] = lo; else buf[0] = lo, buf[1] = hi; --- 1070,1076 ---- hi = JPOOL_UINT (jcf, index); lo = JPOOL_UINT (jcf, index+1); ! if (targetm.float_words_big_endian ()) buf[0] = hi, buf[1] = lo; else buf[0] = lo, buf[1] = hi; *************** jcf_parse (JCF* jcf) *** 1480,1487 **** if (current_class == object_type_node) layout_class_methods (object_type_node); else ! all_class_list = tree_cons (NULL_TREE, ! TYPE_NAME (current_class), all_class_list ); } /* If we came across inner classes, load them now. */ --- 1480,1486 ---- if (current_class == object_type_node) layout_class_methods (object_type_node); else ! VEC_safe_push (tree, gc, all_class_list, TYPE_NAME (current_class)); } /* If we came across inner classes, load them now. */ *************** duplicate_class_warning (const char *fil *** 1512,1527 **** static void java_layout_seen_class_methods (void) { ! tree previous_list = all_class_list; ! tree end = NULL_TREE; ! tree current; while (1) { ! for (current = previous_list; ! current != end; current = TREE_CHAIN (current)) { ! tree decl = TREE_VALUE (current); tree cls = TREE_TYPE (decl); input_location = DECL_SOURCE_LOCATION (decl); --- 1511,1527 ---- static void java_layout_seen_class_methods (void) { ! unsigned start = 0; ! unsigned end = VEC_length (tree, all_class_list); while (1) { ! unsigned ix; ! unsigned new_length; ! ! for (ix = start; ix != end; ix++) { ! tree decl = VEC_index (tree, all_class_list, ix); tree cls = TREE_TYPE (decl); input_location = DECL_SOURCE_LOCATION (decl); *************** java_layout_seen_class_methods (void) *** 1534,1544 **** /* Note that new classes might have been added while laying out methods, changing the value of all_class_list. */ ! ! if (previous_list != all_class_list) { ! end = previous_list; ! previous_list = all_class_list; } else break; --- 1534,1544 ---- /* Note that new classes might have been added while laying out methods, changing the value of all_class_list. */ ! new_length = VEC_length (tree, all_class_list); ! if (end != new_length) { ! start = end; ! end = new_length; } else break; *************** parse_class_file (void) *** 1567,1573 **** gen_indirect_dispatch_tables (current_class); for (method = TYPE_METHODS (current_class); ! method != NULL_TREE; method = TREE_CHAIN (method)) { JCF *jcf = current_jcf; --- 1567,1573 ---- gen_indirect_dispatch_tables (current_class); for (method = TYPE_METHODS (current_class); ! method != NULL_TREE; method = DECL_CHAIN (method)) { JCF *jcf = current_jcf; *************** parse_class_file (void) *** 1665,1686 **** input_location = save_location; } void add_predefined_file (tree name) { ! predef_filenames = tree_cons (NULL_TREE, name, predef_filenames); } int predefined_filename_p (tree node) { ! tree iter; - for (iter = predef_filenames; iter != NULL_TREE; iter = TREE_CHAIN (iter)) - { - if (TREE_VALUE (iter) == node) - return 1; - } return 0; } --- 1665,1688 ---- input_location = save_location; } + static VEC(tree,gc) *predefined_filenames; + void add_predefined_file (tree name) { ! VEC_safe_push (tree, gc, predefined_filenames, name); } int predefined_filename_p (tree node) { ! unsigned ix; ! tree f; ! ! FOR_EACH_VEC_ELT (tree, predefined_filenames, ix, f) ! if (f == node) ! return 1; return 0; } *************** java_emit_static_constructor (void) *** 1701,1707 **** tree decl = build_decl (input_location, FUNCTION_DECL, name, ! build_function_type (void_type_node, void_list_node)); tree resdecl = build_decl (input_location, RESULT_DECL, NULL_TREE, void_type_node); --- 1703,1709 ---- tree decl = build_decl (input_location, FUNCTION_DECL, name, ! build_function_type_list (void_type_node, NULL_TREE)); tree resdecl = build_decl (input_location, RESULT_DECL, NULL_TREE, void_type_node); *************** java_emit_static_constructor (void) *** 1728,1734 **** void ! java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) { int filename_count = 0; location_t save_location = input_location; --- 1730,1736 ---- void ! java_parse_file (void) { int filename_count = 0; location_t save_location = input_location; *************** java_parse_file (int set_yydebug ATTRIBU *** 1736,1741 **** --- 1738,1744 ---- tree node; FILE *finput = NULL; int in_quotes = 0; + unsigned ix; bitmap_obstack_initialize (&bit_obstack); field_offsets = BITMAP_ALLOC (&bit_obstack); *************** java_parse_file (int set_yydebug ATTRIBU *** 1745,1751 **** int avail = 2000; finput = fopen (main_input_filename, "r"); if (finput == NULL) ! fatal_error ("can't open %s: %m", input_filename); list = XNEWVEC (char, avail); next = list; for (;;) --- 1748,1754 ---- int avail = 2000; finput = fopen (main_input_filename, "r"); if (finput == NULL) ! fatal_error ("can%'t open %s: %m", input_filename); list = XNEWVEC (char, avail); next = list; for (;;) *************** java_parse_file (int set_yydebug ATTRIBU *** 1833,1842 **** duplicate_class_warning (IDENTIFIER_POINTER (node)); else { ! tree file_decl = build_decl (input_location, ! TRANSLATION_UNIT_DECL, node, NULL); ! TREE_CHAIN (file_decl) = current_file_list; ! current_file_list = file_decl; IS_A_COMMAND_LINE_FILENAME_P (node) = 1; } } --- 1836,1842 ---- duplicate_class_warning (IDENTIFIER_POINTER (node)); else { ! build_translation_unit_decl (node); IS_A_COMMAND_LINE_FILENAME_P (node) = 1; } } *************** java_parse_file (int set_yydebug ATTRIBU *** 1854,1870 **** const char *resource_filename; /* Only one resource file may be compiled at a time. */ ! assert (TREE_CHAIN (current_file_list) == NULL); ! resource_filename = IDENTIFIER_POINTER (DECL_NAME (current_file_list)); compile_resource_file (resource_name, resource_filename); goto finish; } current_jcf = main_jcf; ! current_file_list = nreverse (current_file_list); ! for (node = current_file_list; node; node = TREE_CHAIN (node)) { unsigned char magic_string[4]; char *real_path; --- 1854,1871 ---- const char *resource_filename; /* Only one resource file may be compiled at a time. */ ! gcc_assert (VEC_length (tree, all_translation_units) == 1); ! resource_filename ! = IDENTIFIER_POINTER ! (DECL_NAME (VEC_index (tree, all_translation_units, 0))); compile_resource_file (resource_name, resource_filename); goto finish; } current_jcf = main_jcf; ! FOR_EACH_VEC_ELT (tree, all_translation_units, ix, node) { unsigned char magic_string[4]; char *real_path; *************** java_parse_file (int set_yydebug ATTRIBU *** 1882,1892 **** /* Close previous descriptor, if any */ if (finput && fclose (finput)) ! fatal_error ("can't close input file %s: %m", main_input_filename); finput = fopen (filename, "rb"); if (finput == NULL) ! fatal_error ("can't open %s: %m", filename); #ifdef IO_BUFFER_SIZE setvbuf (finput, xmalloc (IO_BUFFER_SIZE), --- 1883,1893 ---- /* Close previous descriptor, if any */ if (finput && fclose (finput)) ! fatal_error ("can%'t close input file %s: %m", main_input_filename); finput = fopen (filename, "rb"); if (finput == NULL) ! fatal_error ("can%'t open %s: %m", filename); #ifdef IO_BUFFER_SIZE setvbuf (finput, xmalloc (IO_BUFFER_SIZE), *************** java_parse_file (int set_yydebug ATTRIBU *** 1902,1909 **** if (magic == 0xcafebabe) { CLASS_FILE_P (node) = 1; ! current_jcf = GGC_NEW (JCF); ! JCF_ZERO (current_jcf); current_jcf->read_state = finput; current_jcf->filbuf = jcf_filbuf_from_stdio; jcf_parse (current_jcf); --- 1903,1909 ---- if (magic == 0xcafebabe) { CLASS_FILE_P (node) = 1; ! current_jcf = ggc_alloc_cleared_JCF (); current_jcf->read_state = finput; current_jcf->filbuf = jcf_filbuf_from_stdio; jcf_parse (current_jcf); *************** java_parse_file (int set_yydebug ATTRIBU *** 1920,1927 **** } else if (magic == (JCF_u4)ZIPMAGIC) { ! main_jcf = GGC_NEW (JCF); ! JCF_ZERO (main_jcf); main_jcf->read_state = finput; main_jcf->filbuf = jcf_filbuf_from_stdio; linemap_add (line_table, LC_ENTER, false, filename, 0); --- 1920,1926 ---- } else if (magic == (JCF_u4)ZIPMAGIC) { ! main_jcf = ggc_alloc_cleared_JCF (); main_jcf->read_state = finput; main_jcf->filbuf = jcf_filbuf_from_stdio; linemap_add (line_table, LC_ENTER, false, filename, 0); *************** java_parse_file (int set_yydebug ATTRIBU *** 1953,1959 **** } } ! for (node = current_file_list; node; node = TREE_CHAIN (node)) { input_location = DECL_SOURCE_LOCATION (node); if (CLASS_FILE_P (node)) --- 1952,1958 ---- } } ! FOR_EACH_VEC_ELT (tree, all_translation_units, ix, node) { input_location = DECL_SOURCE_LOCATION (node); if (CLASS_FILE_P (node)) *************** process_zip_dir (FILE *finput) *** 2177,2184 **** class_name = compute_class_name (zdir); file_name = XNEWVEC (char, zdir->filename_length+1); ! jcf = GGC_NEW (JCF); ! JCF_ZERO (jcf); strncpy (file_name, class_name_in_zip_dir, zdir->filename_length); file_name [zdir->filename_length] = '\0'; --- 2176,2182 ---- class_name = compute_class_name (zdir); file_name = XNEWVEC (char, zdir->filename_length+1); ! jcf = ggc_alloc_cleared_JCF (); strncpy (file_name, class_name_in_zip_dir, zdir->filename_length); file_name [zdir->filename_length] = '\0'; diff -Nrcpad gcc-4.5.2/gcc/java/jcf-path.c gcc-4.6.0/gcc/java/jcf-path.c *** gcc-4.5.2/gcc/java/jcf-path.c Tue Jun 24 12:46:59 2008 --- gcc-4.6.0/gcc/java/jcf-path.c Mon Nov 29 14:09:41 2010 *************** *** 1,6 **** /* Handle CLASSPATH, -classpath, and path searching. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, ! 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Handle CLASSPATH, -classpath, and path searching. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, ! 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,33 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include --- 27,32 ---- *************** jcf_path_init (void) *** 224,230 **** sep[0] = DIR_SEPARATOR; sep[1] = '\0'; ! GET_ENVIRONMENT (cp, "GCC_EXEC_PREFIX"); if (cp) { attempt = (char *) alloca (strlen (cp) + 50); --- 223,229 ---- sep[0] = DIR_SEPARATOR; sep[1] = '\0'; ! cp = getenv ("GCC_EXEC_PREFIX"); if (cp) { attempt = (char *) alloca (strlen (cp) + 50); *************** jcf_path_init (void) *** 295,301 **** jcf_path_extdirs_arg (extdirs); } ! GET_ENVIRONMENT (cp, "CLASSPATH"); add_path (&classpath_env, cp, 0); } --- 294,300 ---- jcf_path_extdirs_arg (extdirs); } ! cp = getenv ("CLASSPATH"); add_path (&classpath_env, cp, 0); } diff -Nrcpad gcc-4.5.2/gcc/java/jcf-reader.c gcc-4.6.0/gcc/java/jcf-reader.c *** gcc-4.5.2/gcc/java/jcf-reader.c Fri Feb 20 15:20:38 2009 --- gcc-4.6.0/gcc/java/jcf-reader.c Mon Jan 3 20:52:22 2011 *************** *** 2,8 **** It is not stand-alone: It depends on tons of macros, and the intent is you #include this file after you've defined the macros. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, ! 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 2,8 ---- It is not stand-alone: It depends on tons of macros, and the intent is you #include this file after you've defined the macros. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, ! 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** Java and all Java-based marks are tradem *** 24,29 **** --- 24,30 ---- of Sun Microsystems, Inc. in the United States and other countries. The Free Software Foundation is independent of Sun Microsystems, Inc. */ + #include "ggc.h" #include "jcf.h" #include "zipfile.h" *************** jcf_parse_constant_pool (JCF* jcf) *** 330,337 **** { int i, n; JPOOL_SIZE (jcf) = (JCF_FILL (jcf, 2), JCF_readu2 (jcf)); ! jcf->cpool.tags = GGC_NEWVAR (uint8, JPOOL_SIZE (jcf)); ! jcf->cpool.data = GGC_NEWVAR (union cpool_entry, sizeof (jword) * JPOOL_SIZE (jcf)); jcf->cpool.tags[0] = 0; #ifdef HANDLE_START_CONSTANT_POOL HANDLE_START_CONSTANT_POOL (JPOOL_SIZE (jcf)); --- 331,338 ---- { int i, n; JPOOL_SIZE (jcf) = (JCF_FILL (jcf, 2), JCF_readu2 (jcf)); ! jcf->cpool.tags = (uint8 *) ggc_alloc_atomic (JPOOL_SIZE (jcf)); ! jcf->cpool.data = ggc_alloc_cpool_entry (sizeof (jword) * JPOOL_SIZE (jcf)); jcf->cpool.tags[0] = 0; #ifdef HANDLE_START_CONSTANT_POOL HANDLE_START_CONSTANT_POOL (JPOOL_SIZE (jcf)); diff -Nrcpad gcc-4.5.2/gcc/java/jcf.h gcc-4.6.0/gcc/java/jcf.h *** gcc-4.5.2/gcc/java/jcf.h Wed Apr 22 18:29:36 2009 --- gcc-4.6.0/gcc/java/jcf.h Wed Sep 29 14:49:14 2010 *************** *** 1,6 **** /* Utility macros to read Java(TM) .class files and byte codes. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Utility macros to read Java(TM) .class files and byte codes. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** jcf_open_exact_case (const char* filenam *** 66,72 **** struct JCF; typedef int (*jcf_filbuf_t) (struct JCF*, int needed); ! union GTY(()) cpool_entry { jword GTY ((tag ("0"))) w; tree GTY ((tag ("1"))) t; }; --- 66,72 ---- struct JCF; typedef int (*jcf_filbuf_t) (struct JCF*, int needed); ! union GTY((variable_size)) cpool_entry { jword GTY ((tag ("0"))) w; tree GTY ((tag ("1"))) t; }; *************** extern const char *jcf_write_base_direct *** 274,280 **** /* Debug macros, for the front end */ - extern int quiet_flag; #ifdef VERBOSE_SKELETON #undef SOURCE_FRONTEND_DEBUG #define SOURCE_FRONTEND_DEBUG(X) \ --- 274,279 ---- diff -Nrcpad gcc-4.5.2/gcc/java/jvgenmain.c gcc-4.6.0/gcc/java/jvgenmain.c *** gcc-4.5.2/gcc/java/jvgenmain.c Fri Feb 20 15:20:38 2009 --- gcc-4.6.0/gcc/java/jvgenmain.c Mon Jan 3 20:52:22 2011 *************** *** 1,6 **** /* Program to generate "main" a Java(TM) class containing a main method. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ! 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Program to generate "main" a Java(TM) class containing a main method. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ! 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,38 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "obstack.h" #include "jcf.h" #include "tree.h" #include "java-tree.h" #include "intl.h" static char * do_mangle_classname (const char *string); --- 27,38 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "obstack.h" #include "jcf.h" #include "tree.h" #include "java-tree.h" #include "intl.h" + #include "tm.h" /* FIXME: For gcc_obstack_init from defaults.h. */ static char * do_mangle_classname (const char *string); *************** main (int argc, char **argv) *** 78,84 **** { if (! strncmp (argv[i], "-D", 2)) { ! /* Handled later. */ } else break; --- 78,86 ---- { if (! strncmp (argv[i], "-D", 2)) { ! /* Handled later. Check "-D XXX=YYY". */ ! if (argv[i][2] == '\0') ! i++; } else break; *************** main (int argc, char **argv) *** 121,128 **** for (i = 1; i < last_arg; ++i) { const char *p; fprintf (stream, " \""); ! for (p = &argv[i][2]; *p; ++p) { if (! ISPRINT (*p)) fprintf (stream, "\\%o", *p); --- 123,134 ---- for (i = 1; i < last_arg; ++i) { const char *p; + + if (strcmp (argv[i], "-D") == 0) + continue; + fprintf (stream, " \""); ! for (p = argv[i]; *p; ++p) { if (! ISPRINT (*p)) fprintf (stream, "\\%o", *p); diff -Nrcpad gcc-4.5.2/gcc/java/jvspec.c gcc-4.6.0/gcc/java/jvspec.c *** gcc-4.5.2/gcc/java/jvspec.c Wed Jan 20 10:35:38 2010 --- gcc-4.6.0/gcc/java/jvspec.c Sun Feb 13 19:20:01 2011 *************** *** 1,7 **** /* Specific flags and argument handling of the front-end of the GNU compiler for the Java(TM) language. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. --- 1,7 ---- /* Specific flags and argument handling of the front-end of the GNU compiler for the Java(TM) language. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 29,42 **** #include "tm.h" #include "gcc.h" #include "jcf.h" /* Name of spec file. */ #define SPEC_FILE "libgcj.spec" /* This bit is set if we saw a `-xfoo' language specification. */ #define LANGSPEC (1<<1) - /* True if this arg is a parameter to the previous option-taking arg. */ - #define PARAM_ARG (1<<2) /* True if this arg is a .java input file name. */ #define JAVA_FILE_ARG (1<<3) /* True if this arg is a .class input file name. */ --- 29,41 ---- #include "tm.h" #include "gcc.h" #include "jcf.h" + #include "opts.h" /* Name of spec file. */ #define SPEC_FILE "libgcj.spec" /* This bit is set if we saw a `-xfoo' language specification. */ #define LANGSPEC (1<<1) /* True if this arg is a .java input file name. */ #define JAVA_FILE_ARG (1<<3) /* True if this arg is a .class input file name. */ *************** int shared_libgcc = 1; *** 60,66 **** static const char jvgenmain_spec[] = "jvgenmain %{findirect-dispatch} %{D*} %b %m.i |\n\ cc1 %m.i %1 \ ! %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\ %{g*} %{O*} \ %{v:-version} %{pg:-p} %{p}\ % 5 && strcmp (argv[i] + len - 5, ".java") == 0) ! { ! args[i] |= JAVA_FILE_ARG; ! java_files_count++; ! } ! if (len > 6 && strcmp (argv[i] + len - 6, ".class") == 0) ! { ! args[i] |= CLASS_FILE_ARG; ! class_files_count++; ! } ! if (len > 4 ! && (strcmp (argv[i] + len - 4, ".zip") == 0 ! || strcmp (argv[i] + len - 4, ".jar") == 0)) ! { ! args[i] |= ZIP_FILE_ARG; ! zip_files_count++; ! } } } - if (quote) - fatal ("argument to '%s' missing\n", quote); - if (saw_D && ! main_class_name) ! fatal ("can't specify '-D' without '--main'\n"); if (main_class_name && ! verify_class_name (main_class_name)) ! fatal ("'%s' is not a valid class name", main_class_name); num_args = argc + added; if (saw_resource) { if (! saw_o) ! fatal ("--resource requires -o"); } if (saw_C) { num_args += 3; if (class_files_count + zip_files_count > 0) { ! error ("warning: already-compiled .class files ignored with -C"); num_args -= class_files_count + zip_files_count; class_files_count = 0; zip_files_count = 0; } num_args += 2; /* For -o NONE. */ if (saw_o) ! fatal ("cannot specify both -C and -o"); } if ((saw_o && java_files_count + class_files_count + zip_files_count > 1) || (saw_C && java_files_count > 1) --- 218,422 ---- /* If linking, nonzero if the BC-ABI is in use. */ int link_for_bc_abi = 0; ! argc = *in_decoded_options_count; ! decoded_options = *in_decoded_options; added_libraries = *in_added_libraries; args = XCNEWVEC (int, argc); for (i = 1; i < argc; i++) { ! switch (decoded_options[i].opt_index) { ! case OPT_nostdlib: ! case OPT_nodefaultlibs: ! library = 0; ! break; ! case OPT_fmain_: ! main_class_name = decoded_options[i].arg; ! added--; ! break; ! case OPT__help: ! want_spec_file = 0; ! break; ! case OPT_v: ! if (argc == 2) { + /* If they only gave us `-v', don't try to link + in libgcj. */ library = 0; } ! break; ! case OPT_x: ! saw_speclang = 1; ! break; ! ! case OPT_C: ! saw_C = 1; ! want_spec_file = 0; ! if (library != 0) ! added -= 2; ! library = 0; ! will_link = 0; ! break; ! ! case OPT_fcompile_resource_: ! saw_resource = 1; ! want_spec_file = 0; ! if (library != 0) ! --added; ! library = 0; ! will_link = 0; ! break; ! ! case OPT_D: ! saw_D = 1; ! break; ! ! case OPT_g: ! case OPT_gcoff: ! case OPT_gdwarf_: ! case OPT_ggdb: ! case OPT_gstabs: ! case OPT_gstabs_: ! case OPT_gvms: ! case OPT_gxcoff: ! case OPT_gxcoff_: ! saw_g = 1; ! break; ! ! case OPT_O: ! case OPT_Os: ! case OPT_Ofast: ! saw_O = 1; ! break; ! ! case OPT_o: ! saw_o = 1; ! break; ! ! case OPT_fclasspath_: ! case OPT_fbootclasspath_: ! case OPT_extdirs: ! added -= 1; ! break; ! ! case OPT_c: ! case OPT_S: ! case OPT_E: ! case OPT_M: ! case OPT_MM: ! /* Don't specify libraries if we won't link, since that would ! cause a warning. */ ! library = 0; ! added -= 2; ! ! /* Remember this so we can confirm -fmain option. */ ! will_link = 0; ! break; ! ! case OPT_fsyntax_only: ! library = 0; ! will_link = 0; ! continue; ! ! case OPT_save_temps: ! saw_save_temps = 1; ! break; ! ! case OPT_static_libgcc: ! case OPT_static: ! shared_libgcc = 0; ! break; ! ! case OPT_findirect_dispatch: ! link_for_bc_abi = 1; ! break; ! ! case OPT_SPECIAL_input_file: ! { ! const char *arg = decoded_options[i].arg; ! int len; ! ! /* We don't do this anymore, since we don't get them with minus ! signs on them. */ ! if (arg[0] == '\0' || arg[1] == '\0') continue; ! if (saw_speclang) ! { ! saw_speclang = 0; ! continue; ! } ! if (saw_resource) ! { ! args[i] |= RESOURCE_FILE_ARG; ! added += 2; /* for -xjava and -xnone */ ! } ! if (arg[0] == '@') ! { ! args[i] |= INDIRECT_FILE_ARG; ! indirect_files_count++; ! added += 2; /* for -xjava and -xnone */ ! } ! ! len = strlen (arg); ! if (len > 5 && strcmp (arg + len - 5, ".java") == 0) ! { ! args[i] |= JAVA_FILE_ARG; ! java_files_count++; ! } ! if (len > 6 && strcmp (arg + len - 6, ".class") == 0) ! { ! args[i] |= CLASS_FILE_ARG; ! class_files_count++; ! } ! if (len > 4 ! && (strcmp (arg + len - 4, ".zip") == 0 ! || strcmp (arg + len - 4, ".jar") == 0)) ! { ! args[i] |= ZIP_FILE_ARG; ! zip_files_count++; ! } ! } ! ! default: ! /* Pass other options through. */ ! continue; } } if (saw_D && ! main_class_name) ! fatal_error ("can%'t specify %<-D%> without %<--main%>"); if (main_class_name && ! verify_class_name (main_class_name)) ! fatal_error ("%qs is not a valid class name", main_class_name); num_args = argc + added; if (saw_resource) { if (! saw_o) ! fatal_error ("--resource requires -o"); } if (saw_C) { num_args += 3; if (class_files_count + zip_files_count > 0) { ! warning (0, "already-compiled .class files ignored with -C"); num_args -= class_files_count + zip_files_count; class_files_count = 0; zip_files_count = 0; } num_args += 2; /* For -o NONE. */ if (saw_o) ! fatal_error ("cannot specify both -C and -o"); } if ((saw_o && java_files_count + class_files_count + zip_files_count > 1) || (saw_C && java_files_count > 1) *************** lang_specific_driver (int *in_argc, cons *** 438,444 **** { filelist_filename = make_temp_file ("jx"); if (filelist_filename == NULL) ! fatal ("cannot create temporary file"); record_temp_file (filelist_filename, ! saw_save_temps, 0); filelist_file = fopen (filelist_filename, "w"); if (filelist_file == NULL) --- 428,434 ---- { filelist_filename = make_temp_file ("jx"); if (filelist_filename == NULL) ! fatal_error ("cannot create temporary file"); record_temp_file (filelist_filename, ! saw_save_temps, 0); filelist_file = fopen (filelist_filename, "w"); if (filelist_file == NULL) *************** lang_specific_driver (int *in_argc, cons *** 460,466 **** if (combine_inputs || indirect_files_count > 0) num_args += 1; /* for "-ffilelist-file" */ if (combine_inputs && indirect_files_count > 0) ! fatal("using both @FILE with multiple files not implemented"); /* There's no point adding -shared-libgcc if we don't have a shared libgcc. */ --- 450,456 ---- if (combine_inputs || indirect_files_count > 0) num_args += 1; /* for "-ffilelist-file" */ if (combine_inputs && indirect_files_count > 0) ! fatal_error ("using both @FILE with multiple files not implemented"); /* There's no point adding -shared-libgcc if we don't have a shared libgcc. */ *************** lang_specific_driver (int *in_argc, cons *** 475,597 **** num_args += link_for_bc_abi; ! arglist = XNEWVEC (const char *, num_args + 1); j = 0; ! arglist[j++] = argv[0]; if (combine_inputs || indirect_files_count > 0) ! arglist[j++] = "-ffilelist-file"; if (combine_inputs) { ! arglist[j++] = "-xjava"; ! arglist[j++] = filelist_filename; ! arglist[j++] = "-xnone"; } if (java_files_count > 0) ! arglist[j++] = "-fsaw-java-file"; jcf_path_init (); for (i = 1; i < argc; i++, j++) { ! arglist[j] = argv[i]; ! if ((args[i] & PARAM_ARG)) continue; if ((args[i] & RESOURCE_FILE_ARG) != 0) { ! arglist[j++] = "-xjava"; ! arglist[j++] = argv[i]; ! arglist[j] = "-xnone"; } ! if (argv[i][0] == '-' && argv[i][1] == 'I') ! { ! const char *arg; ! if (argv[i][2] == '\0') ! { ! gcc_assert (i + 1 < argc && (args[i + 1] & PARAM_ARG) != 0); ! arg = argv[i + 1]; ! /* Drop the argument. */ ! ++i; ! } ! else ! arg = &argv[i][2]; ! jcf_path_include_arg (arg); ! --j; ! continue; ! } ! if (! strcmp (argv[i], "-classpath") ! || ! strcmp (argv[i], "-CLASSPATH")) ! { ! jcf_path_classpath_arg (argv[i + 1]); ! ++i; ! --j; ! continue; ! } ! if (! strcmp (argv[i], "-bootclasspath")) ! { ! jcf_path_bootclasspath_arg (argv[i + 1]); ! ++i; ! --j; ! continue; ! } ! if (! strncmp (argv[i], "-fCLASSPATH=", 12) ! || ! strncmp (argv[i], "-fclasspath=", 12)) { ! const char *p = strchr (argv[i], '='); ! jcf_path_classpath_arg (p + 1); --j; continue; ! } ! if (! strncmp (argv[i], "-fbootclasspath=", 16)) ! { ! const char *p = strchr (argv[i], '='); ! jcf_path_bootclasspath_arg (p + 1); --j; continue; ! } ! if (! strcmp (argv[i], "-extdirs")) ! { ! jcf_path_extdirs_arg (argv[i + 1]); ! ++i; --j; continue; - } ! if (strcmp (argv[i], "-encoding") == 0) ! { ! arglist[j] = concat ("-f", argv[i]+1, "=", argv[i+1], NULL); ! i++; ! continue; ! } ! ! if (strcmp (argv[i], "-d") == 0) ! { ! arglist[j] = concat ("-foutput-class-dir=", argv[i + 1], NULL); ! ++i; continue; - } ! if (spec_file == NULL && strncmp (argv[i], "-L", 2) == 0) ! spec_file = find_spec_file (argv[i] + 2); ! if (strncmp (argv[i], "-fmain=", 7) == 0) ! { if (! will_link) ! fatal ("cannot specify 'main' class when not linking"); --j; continue; } if ((args[i] & INDIRECT_FILE_ARG) != 0) { ! arglist[j++] = "-xjava"; ! arglist[j++] = argv[i]+1; /* Drop '@'. */ ! arglist[j] = "-xnone"; } if ((args[i] & (CLASS_FILE_ARG|ZIP_FILE_ARG)) && saw_C) --- 465,553 ---- num_args += link_for_bc_abi; ! new_decoded_options = XNEWVEC (struct cl_decoded_option, num_args); j = 0; ! new_decoded_options[j++] = decoded_options[0]; if (combine_inputs || indirect_files_count > 0) ! generate_option (OPT_ffilelist_file, NULL, 1, CL_DRIVER, ! &new_decoded_options[j++]); if (combine_inputs) { ! generate_option (OPT_x, "java", 1, CL_DRIVER, ! &new_decoded_options[j++]); ! generate_option_input_file (filelist_filename, ! &new_decoded_options[j++]); ! generate_option (OPT_x, "none", 1, CL_DRIVER, ! &new_decoded_options[j++]); } if (java_files_count > 0) ! generate_option (OPT_fsaw_java_file, NULL, 1, CL_DRIVER, ! &new_decoded_options[j++]); jcf_path_init (); for (i = 1; i < argc; i++, j++) { ! new_decoded_options[j] = decoded_options[i]; ! if (decoded_options[i].errors & CL_ERR_MISSING_ARG) continue; if ((args[i] & RESOURCE_FILE_ARG) != 0) { ! generate_option (OPT_x, "java", 1, CL_DRIVER, ! &new_decoded_options[j++]); ! new_decoded_options[j++] = decoded_options[i]; ! generate_option (OPT_x, "none", 1, CL_DRIVER, ! &new_decoded_options[j]); } ! switch (decoded_options[i].opt_index) { ! case OPT_I: ! jcf_path_include_arg (decoded_options[i].arg); --j; continue; ! ! case OPT_fclasspath_: ! jcf_path_classpath_arg (decoded_options[i].arg); --j; continue; ! ! case OPT_fbootclasspath_: ! jcf_path_bootclasspath_arg (decoded_options[i].arg); --j; continue; ! case OPT_extdirs: ! jcf_path_extdirs_arg (decoded_options[i].arg); ! --j; continue; ! case OPT_L: ! if (spec_file == NULL) ! spec_file = find_spec_file (decoded_options[i].arg); ! break; ! case OPT_fmain_: if (! will_link) ! fatal_error ("cannot specify % class when not linking"); --j; continue; } if ((args[i] & INDIRECT_FILE_ARG) != 0) { ! generate_option (OPT_x, "java", 1, CL_DRIVER, ! &new_decoded_options[j++]); ! /* Drop '@'. */ ! generate_option_input_file (decoded_options[i].arg + 1, ! &new_decoded_options[j++]); ! generate_option (OPT_x, "none", 1, CL_DRIVER, ! &new_decoded_options[j]); } if ((args[i] & (CLASS_FILE_ARG|ZIP_FILE_ARG)) && saw_C) *************** lang_specific_driver (int *in_argc, cons *** 603,609 **** if (combine_inputs && (args[i] & (CLASS_FILE_ARG|JAVA_FILE_ARG|ZIP_FILE_ARG)) != 0) { ! fputs (argv[i], filelist_file); fputc ('\n', filelist_file); --j; continue; --- 559,565 ---- if (combine_inputs && (args[i] & (CLASS_FILE_ARG|JAVA_FILE_ARG|ZIP_FILE_ARG)) != 0) { ! fputs (decoded_options[i].arg, filelist_file); fputc ('\n', filelist_file); --j; continue; *************** lang_specific_driver (int *in_argc, cons *** 613,619 **** /* Handle classpath setting. We specify the bootclasspath since that requires the fewest changes to our existing code... */ jcf_path_seal (0); ! arglist[j++] = jcf_path_compute ("-fbootclasspath="); if (combine_inputs) { --- 569,576 ---- /* Handle classpath setting. We specify the bootclasspath since that requires the fewest changes to our existing code... */ jcf_path_seal (0); ! generate_option (OPT_fbootclasspath_, jcf_path_compute (""), 1, ! CL_DRIVER, &new_decoded_options[j++]); if (combine_inputs) { *************** lang_specific_driver (int *in_argc, cons *** 623,655 **** /* If we saw no -O or -g option, default to -g1, for javac compatibility. */ if (saw_g + saw_O == 0) ! arglist[j++] = "-g1"; /* Read the specs file corresponding to libgcj. If we didn't find the spec file on the -L path, then we hope it is somewhere in the standard install areas. */ if (want_spec_file) ! arglist[j++] = spec_file == NULL ? "-specs=libgcj.spec" : spec_file; if (saw_C) { ! arglist[j++] = "-fsyntax-only"; ! arglist[j++] = "-femit-class-files"; ! arglist[j++] = "-S"; ! arglist[j++] = "-o"; ! arglist[j++] = "NONE"; } if (shared_libgcc) ! arglist[j++] = "-shared-libgcc"; if (link_for_bc_abi) ! arglist[j++] = "-s-bc-abi"; ! ! arglist[j] = NULL; ! *in_argc = j; ! *in_argv = arglist; *in_added_libraries = added_libraries; } --- 580,615 ---- /* If we saw no -O or -g option, default to -g1, for javac compatibility. */ if (saw_g + saw_O == 0) ! generate_option (OPT_g, "1", 1, CL_DRIVER, &new_decoded_options[j++]); /* Read the specs file corresponding to libgcj. If we didn't find the spec file on the -L path, then we hope it is somewhere in the standard install areas. */ if (want_spec_file) ! generate_option (OPT_specs_, spec_file == NULL ? "libgcj.spec" : spec_file, ! 1, CL_DRIVER, &new_decoded_options[j++]); if (saw_C) { ! generate_option (OPT_fsyntax_only, NULL, 1, CL_DRIVER, ! &new_decoded_options[j++]); ! generate_option (OPT_femit_class_files, NULL, 1, CL_DRIVER, ! &new_decoded_options[j++]); ! generate_option (OPT_S, NULL, 1, CL_DRIVER, &new_decoded_options[j++]); ! generate_option (OPT_o, "NONE", 1, CL_DRIVER, ! &new_decoded_options[j++]); } if (shared_libgcc) ! generate_option (OPT_shared_libgcc, NULL, 1, CL_DRIVER, ! &new_decoded_options[j++]); if (link_for_bc_abi) ! generate_option (OPT_s_bc_abi, NULL, 1, CL_DRIVER, ! &new_decoded_options[j++]); ! *in_decoded_options_count = j; ! *in_decoded_options = new_decoded_options; *in_added_libraries = added_libraries; } diff -Nrcpad gcc-4.5.2/gcc/java/lang.c gcc-4.6.0/gcc/java/lang.c *** gcc-4.5.2/gcc/java/lang.c Wed Jan 20 08:17:00 2010 --- gcc-4.6.0/gcc/java/lang.c Wed Dec 15 09:59:24 2010 *************** *** 1,6 **** /* Java(TM) language-specific utility routines. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Java(TM) language-specific utility routines. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 30,40 **** #include "tm.h" #include "tree.h" #include "input.h" - #include "rtl.h" - #include "expr.h" #include "java-tree.h" #include "jcf.h" - #include "toplev.h" #include "langhooks.h" #include "langhooks-def.h" #include "flags.h" --- 30,37 ---- *************** The Free Software Foundation is independ *** 45,58 **** #include "tree-dump.h" #include "opts.h" #include "options.h" ! #include "except.h" static bool java_init (void); static void java_finish (void); ! static unsigned int java_init_options (unsigned int, const char **); static bool java_post_options (const char **); ! static int java_handle_option (size_t scode, const char *arg, int value); static void put_decl_string (const char *, int); static void put_decl_node (tree, int); static void java_print_error_function (diagnostic_context *, const char *, --- 42,58 ---- #include "tree-dump.h" #include "opts.h" #include "options.h" ! #include "target.h" static bool java_init (void); static void java_finish (void); ! static unsigned int java_option_lang_mask (void); ! static void java_init_options_struct (struct gcc_options *); ! static void java_init_options (unsigned int, struct cl_decoded_option *); static bool java_post_options (const char **); ! static bool java_handle_option (size_t, const char *, int, int, location_t, ! const struct cl_option_handlers *); static void put_decl_string (const char *, int); static void put_decl_node (tree, int); static void java_print_error_function (diagnostic_context *, const char *, *************** struct GTY(()) language_function { *** 124,129 **** --- 124,133 ---- #define LANG_HOOKS_INIT java_init #undef LANG_HOOKS_FINISH #define LANG_HOOKS_FINISH java_finish + #undef LANG_HOOKS_OPTION_LANG_MASK + #define LANG_HOOKS_OPTION_LANG_MASK java_option_lang_mask + #undef LANG_HOOKS_INIT_OPTIONS_STRUCT + #define LANG_HOOKS_INIT_OPTIONS_STRUCT java_init_options_struct #undef LANG_HOOKS_INIT_OPTIONS #define LANG_HOOKS_INIT_OPTIONS java_init_options #undef LANG_HOOKS_HANDLE_OPTION *************** struct GTY(()) language_function { *** 138,143 **** --- 142,149 ---- #define LANG_HOOKS_DECL_PRINTABLE_NAME lang_printable_name #undef LANG_HOOKS_PRINT_ERROR_FUNCTION #define LANG_HOOKS_PRINT_ERROR_FUNCTION java_print_error_function + #undef LANG_HOOKS_WRITE_GLOBALS + #define LANG_HOOKS_WRITE_GLOBALS java_write_globals #undef LANG_HOOKS_TYPE_FOR_MODE #define LANG_HOOKS_TYPE_FOR_MODE java_type_for_mode *************** struct lang_hooks lang_hooks = LANG_HOOK *** 172,181 **** /* * process java-specific compiler command-line options ! * return 0, but do not complain if the option is not recognized. */ ! static int ! java_handle_option (size_t scode, const char *arg, int value) { enum opt_code code = (enum opt_code) scode; --- 178,189 ---- /* * process java-specific compiler command-line options ! * return false, but do not complain if the option is not recognized. */ ! static bool ! java_handle_option (size_t scode, const char *arg, int value, ! int kind ATTRIBUTE_UNUSED, location_t loc ATTRIBUTE_UNUSED, ! const struct cl_option_handlers *handlers ATTRIBUTE_UNUSED) { enum opt_code code = (enum opt_code) scode; *************** java_handle_option (size_t scode, const *** 256,262 **** case OPT_faux_classpath: case OPT_fclasspath_: - case OPT_fCLASSPATH_: jcf_path_classpath_arg (arg); break; --- 264,269 ---- *************** java_handle_option (size_t scode, const *** 266,272 **** case OPT_fdump_: if (!dump_switch_p (arg)) ! return 0; break; case OPT_fencoding_: --- 273,279 ---- case OPT_fdump_: if (!dump_switch_p (arg)) ! return false; break; case OPT_fencoding_: *************** java_handle_option (size_t scode, const *** 295,301 **** gcc_unreachable (); } ! return 1; } /* Global open file. */ --- 302,308 ---- gcc_unreachable (); } ! return true; } /* Global open file. */ *************** put_decl_node (tree node, int verbosity) *** 395,401 **** if verbosity is higher than 1. */ && verbosity >= 1) { ! put_decl_node (TYPE_NAME (DECL_CONTEXT (node)), verbosity); put_decl_string (".", 1); } --- 402,410 ---- if verbosity is higher than 1. */ && verbosity >= 1) { ! put_decl_node (TREE_CODE (DECL_CONTEXT (node)) == FUNCTION_DECL ! ? DECL_CONTEXT (node) ! : TYPE_NAME (DECL_CONTEXT (node)), verbosity); put_decl_string (".", 1); } *************** lang_init_source (int level) *** 525,549 **** } static unsigned int ! java_init_options (unsigned int argc ATTRIBUTE_UNUSED, ! const char **argv ATTRIBUTE_UNUSED) { ! flag_bounds_check = 1; ! flag_exceptions = 1; ! flag_non_call_exceptions = 1; /* In Java floating point operations never trap. */ ! flag_trapping_math = 0; /* In Java arithmetic overflow always wraps around. */ ! flag_wrapv = 1; /* Java requires left-to-right evaluation of subexpressions. */ ! flag_evaluation_order = 1; jcf_path_init (); - - return CL_Java; } /* Post-switch processing. */ --- 534,568 ---- } static unsigned int ! java_option_lang_mask (void) { ! return CL_Java; ! } ! ! /* Initialize options structure OPTS. */ ! ! static void ! java_init_options_struct (struct gcc_options *opts) ! { ! opts->x_flag_bounds_check = 1; ! opts->x_flag_exceptions = 1; ! opts->x_flag_non_call_exceptions = 1; /* In Java floating point operations never trap. */ ! opts->x_flag_trapping_math = 0; /* In Java arithmetic overflow always wraps around. */ ! opts->x_flag_wrapv = 1; /* Java requires left-to-right evaluation of subexpressions. */ ! opts->x_flag_evaluation_order = 1; ! } + static void + java_init_options (unsigned int decoded_options_count ATTRIBUTE_UNUSED, + struct cl_decoded_option *decoded_options ATTRIBUTE_UNUSED) + { jcf_path_init (); } /* Post-switch processing. */ *************** java_post_options (const char **pfilenam *** 581,587 **** filename = "stdin"; if (dependency_tracking) ! error ("can't do dependency tracking with input from stdin"); } else { --- 600,606 ---- filename = "stdin"; if (dependency_tracking) ! error ("can%'t do dependency tracking with input from stdin"); } else { *************** java_post_options (const char **pfilenam *** 597,603 **** { dot = strrchr (filename, '.'); if (dot == NULL) ! error ("couldn't determine target name for dependency tracking"); else { char *buf = XNEWVEC (char, dot - filename + --- 616,622 ---- { dot = strrchr (filename, '.'); if (dot == NULL) ! error ("couldn%'t determine target name for dependency tracking"); else { char *buf = XNEWVEC (char, dot - filename + *************** java_classify_record (tree type) *** 881,889 **** if (! CLASS_P (type)) return RECORD_IS_STRUCT; ! /* ??? GDB does not support DW_TAG_interface_type as of December, ! 2007. Re-enable this at a later time. */ ! if (0 && CLASS_INTERFACE (TYPE_NAME (type))) return RECORD_IS_INTERFACE; return RECORD_IS_CLASS; --- 900,906 ---- if (! CLASS_P (type)) return RECORD_IS_STRUCT; ! if (CLASS_INTERFACE (TYPE_NAME (type))) return RECORD_IS_INTERFACE; return RECORD_IS_CLASS; *************** static tree *** 895,905 **** java_eh_personality (void) { if (!java_eh_personality_decl) ! java_eh_personality_decl ! = build_personality_function (USING_SJLJ_EXCEPTIONS ! ? "__gcj_personality_sj0" ! : "__gcj_personality_v0"); ! return java_eh_personality_decl; } --- 912,918 ---- java_eh_personality (void) { if (!java_eh_personality_decl) ! java_eh_personality_decl = build_personality_function ("gcj"); return java_eh_personality_decl; } diff -Nrcpad gcc-4.5.2/gcc/java/lang.opt gcc-4.6.0/gcc/java/lang.opt *** gcc-4.5.2/gcc/java/lang.opt Wed Aug 12 16:10:12 2009 --- gcc-4.6.0/gcc/java/lang.opt Fri Dec 3 15:11:42 2010 *************** *** 1,5 **** ; Options for the Java front end. ! ; Copyright (C) 2003, 2005, 2007, 2009 Free Software Foundation, Inc. ; ; This file is part of GCC. ; --- 1,5 ---- ; Options for the Java front end. ! ; Copyright (C) 2003, 2005, 2007, 2009, 2010 Free Software Foundation, Inc. ; ; This file is part of GCC. ; *************** *** 24,29 **** --- 24,82 ---- Language Java + -CLASSPATH + Java Separate Alias(fclasspath=) + + -all-warnings + Java Alias(Wall) + + -bootclasspath + Java Separate Alias(fbootclasspath=) + + -classpath + Java Separate Alias(fclasspath=) + + -dependencies + Java Alias(M) + + -encoding + Java Separate Alias(fencoding=) + + -extdirs + Java Separate Alias(fextdirs=) + + -include-directory + Java Separate Alias(I) + + -include-directory= + Java Joined Alias(I) + + -output-class-directory + Java Separate Alias(foutput-class-dir=) + + -output-class-directory= + Java Joined Alias(foutput-class-dir=) + + -resource + Java Separate Alias(fcompile-resource=) + + -resource= + Java Joined Alias(fcompile-resource=) + + -user-dependencies + Java Alias(MM) + + C + Driver + ; Java driver option in fact distinct from C-family option with the same name. + + CLASSPATH + Java Separate Alias(fclasspath=) + + D + Driver Joined Separate + ; Java driver option similar to C-family option. + I Java Joined Separate ; Documented for C *************** Java *** 33,39 **** ; Documented for C MD_ ! Java Undocumented ; Documented for C MF --- 86,92 ---- ; Documented for C MD_ ! Java Undocumented RejectDriver ; Documented for C MF *************** Java *** 45,51 **** ; Documented for C MMD_ ! Java Undocumented ; Documented for C MP --- 98,104 ---- ; Documented for C MMD_ ! Java Undocumented RejectDriver ; Documented for C MP *************** Java *** 61,67 **** ; Documented for C Wdeprecated ! Java Var(warn_deprecated) VarExists ; Documented for C Wextraneous-semicolon --- 114,120 ---- ; Documented for C Wdeprecated ! Java Var(warn_deprecated) ; Documented for C Wextraneous-semicolon *************** Wredundant-modifiers *** 76,83 **** Java Var(flag_redundant) Warn if modifiers are specified when not necessary fCLASSPATH= ! Java JoinedOrMissing RejectNegative --CLASSPATH Deprecated; use --classpath instead faux-classpath --- 129,152 ---- Java Var(flag_redundant) Warn if modifiers are specified when not necessary + bootclasspath + Java Separate Alias(fbootclasspath=) + + classpath + Java Separate Alias(fclasspath=) + + d + Java Separate SeparateAlias Alias(foutput-class-dir=) + ; Different from language-independent -d with joined argument. + + encoding + Java Separate Alias(fencoding=) + + extdirs + Driver Separate + fCLASSPATH= ! Java JoinedOrMissing RejectNegative Alias(fclasspath=) --CLASSPATH Deprecated; use --classpath instead faux-classpath *************** fextdirs= *** 136,141 **** --- 205,213 ---- Java Joined RejectNegative --extdirs= Set the extension directory path + fmain= + Driver JoinedOrMissing RejectNegative + fsource-filename= Java Joined Undocumented *************** ftarget= *** 208,215 **** Java Joined Set the target VM version version ! Java ; ; Warnings handled by ecj. --- 280,293 ---- Java Joined Set the target VM version + s-bc-abi + Driver + + static-libgcj + Driver + version ! Java RejectDriver ; ; Warnings handled by ecj. diff -Nrcpad gcc-4.5.2/gcc/java/mangle.c gcc-4.6.0/gcc/java/mangle.c *** gcc-4.5.2/gcc/java/mangle.c Mon Jun 29 17:50:59 2009 --- gcc-4.6.0/gcc/java/mangle.c Tue Nov 30 11:41:24 2010 *************** *** 1,6 **** /* Functions related to mangling class names for the GNU compiler for the Java(TM) language. ! Copyright (C) 1998, 1999, 2001, 2002, 2003, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Functions related to mangling class names for the GNU compiler for the Java(TM) language. ! Copyright (C) 1998, 1999, 2001, 2002, 2003, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 28,41 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "jcf.h" #include "tree.h" #include "java-tree.h" #include "obstack.h" ! #include "toplev.h" #include "ggc.h" #include "langhooks-def.h" static void mangle_class_field (tree); static void mangle_vtable (tree); --- 28,41 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "jcf.h" #include "tree.h" #include "java-tree.h" #include "obstack.h" ! #include "diagnostic-core.h" #include "ggc.h" #include "langhooks-def.h" + #include "tm.h" /* FIXME: For gcc_obstack_init from defaults.h. */ static void mangle_class_field (tree); static void mangle_vtable (tree); diff -Nrcpad gcc-4.5.2/gcc/java/mangle_name.c gcc-4.6.0/gcc/java/mangle_name.c *** gcc-4.5.2/gcc/java/mangle_name.c Tue Oct 20 16:01:21 2009 --- gcc-4.6.0/gcc/java/mangle_name.c Tue Nov 30 11:41:24 2010 *************** *** 1,6 **** /* Shared functions related to mangling names for the GNU compiler for the Java(TM) language. ! Copyright (C) 2001, 2002, 2003, 2007 Free Software Foundation, Inc. This file is part of GCC. --- 1,7 ---- /* Shared functions related to mangling names for the GNU compiler for the Java(TM) language. ! Copyright (C) 2001, 2002, 2003, 2007, 2009, 2010 ! Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,38 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "jcf.h" #include "tree.h" #include "java-tree.h" #include "obstack.h" ! #include "toplev.h" static void append_unicode_mangled_name (const char *, int); #ifndef HAVE_AS_UTF8 --- 28,38 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "jcf.h" #include "tree.h" #include "java-tree.h" #include "obstack.h" ! #include "diagnostic-core.h" static void append_unicode_mangled_name (const char *, int); #ifndef HAVE_AS_UTF8 diff -Nrcpad gcc-4.5.2/gcc/java/parse.h gcc-4.6.0/gcc/java/parse.h *** gcc-4.5.2/gcc/java/parse.h Tue Jul 31 16:19:49 2007 --- gcc-4.6.0/gcc/java/parse.h Wed Sep 29 14:49:14 2010 *************** *** 1,6 **** /* Language parser definitions for the GNU compiler for the Java(TM) language. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007 Free Software Foundation, Inc. Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) This file is part of GCC. --- 1,6 ---- /* Language parser definitions for the GNU compiler for the Java(TM) language. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ! 2005, 2006, 2007, 2010 Free Software Foundation, Inc. Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) This file is part of GCC. *************** The Free Software Foundation is independ *** 28,34 **** /* Extern global variable declarations */ extern struct obstack temporary_obstack; - extern int quiet_flag; #ifdef VERBOSE_SKELETON #undef SOURCE_FRONTEND_DEBUG --- 28,33 ---- diff -Nrcpad gcc-4.5.2/gcc/java/resource.c gcc-4.6.0/gcc/java/resource.c *** gcc-4.5.2/gcc/java/resource.c Fri Jun 12 22:06:47 2009 --- gcc-4.6.0/gcc/java/resource.c Mon Nov 29 14:09:41 2010 *************** *** 1,6 **** /* Functions related to building resource files. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Functions related to building resource files. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 25,60 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "tree.h" - #include "rtl.h" - #include "flags.h" #include "java-tree.h" #include "jcf.h" ! #include "obstack.h" #include "toplev.h" #include "output.h" #include "parse.h" #include "function.h" #include "ggc.h" - #include "stdio.h" - #include "target.h" - #include "expr.h" #include "tree-iterator.h" #include "cgraph.h" - /* DOS brain-damage */ - #ifndef O_BINARY - #define O_BINARY 0 /* MS-DOS brain-damage */ - #endif - /* A list of all the resources files. */ ! static GTY(()) tree resources = NULL; void compile_resource_data (const char *name, const char *buffer, int length) { tree rtype, field = NULL_TREE, data_type, rinit, data, decl; data_type = build_prim_array_type (unsigned_byte_type_node, strlen (name) + length); --- 25,50 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "tree.h" #include "java-tree.h" #include "jcf.h" ! #include "diagnostic-core.h" #include "toplev.h" #include "output.h" #include "parse.h" #include "function.h" #include "ggc.h" #include "tree-iterator.h" #include "cgraph.h" /* A list of all the resources files. */ ! static GTY(()) VEC(tree,gc) *resources; void compile_resource_data (const char *name, const char *buffer, int length) { tree rtype, field = NULL_TREE, data_type, rinit, data, decl; + VEC(constructor_elt,gc) *v = NULL; data_type = build_prim_array_type (unsigned_byte_type_node, strlen (name) + length); *************** compile_resource_data (const char *name, *** 65,79 **** rtype, field, "resource_length", unsigned_int_type_node); PUSH_FIELD (input_location, rtype, field, "data", data_type); FINISH_RECORD (rtype); ! START_RECORD_CONSTRUCTOR (rinit, rtype); ! PUSH_FIELD_VALUE (rinit, "name_length", build_int_cst (NULL_TREE, strlen (name))); ! PUSH_FIELD_VALUE (rinit, "resource_length", build_int_cst (NULL_TREE, length)); data = build_string (strlen(name) + length, buffer); TREE_TYPE (data) = data_type; ! PUSH_FIELD_VALUE (rinit, "data", data); ! FINISH_RECORD_CONSTRUCTOR (rinit); TREE_CONSTANT (rinit) = 1; decl = build_decl (input_location, --- 55,69 ---- rtype, field, "resource_length", unsigned_int_type_node); PUSH_FIELD (input_location, rtype, field, "data", data_type); FINISH_RECORD (rtype); ! START_RECORD_CONSTRUCTOR (v, rtype); ! PUSH_FIELD_VALUE (v, "name_length", build_int_cst (NULL_TREE, strlen (name))); ! PUSH_FIELD_VALUE (v, "resource_length", build_int_cst (NULL_TREE, length)); data = build_string (strlen(name) + length, buffer); TREE_TYPE (data) = data_type; ! PUSH_FIELD_VALUE (v, "data", data); ! FINISH_RECORD_CONSTRUCTOR (rinit, v, rtype); TREE_CONSTANT (rinit) = 1; decl = build_decl (input_location, *************** compile_resource_data (const char *name, *** 91,103 **** rest_of_decl_compilation (decl, global_bindings_p (), 0); varpool_finalize_decl (decl); ! resources = tree_cons (NULL_TREE, decl, resources); } void write_resource_constructor (tree *list_p) { ! tree iter, t, register_resource_fn; if (resources == NULL) return; --- 81,94 ---- rest_of_decl_compilation (decl, global_bindings_p (), 0); varpool_finalize_decl (decl); ! VEC_safe_push (tree, gc, resources, decl); } void write_resource_constructor (tree *list_p) { ! tree decl, t, register_resource_fn; ! unsigned ix; if (resources == NULL) return; *************** write_resource_constructor (tree *list_p *** 110,118 **** register_resource_fn = t; /* Write out entries in the same order in which they were defined. */ ! for (iter = nreverse (resources); iter ; iter = TREE_CHAIN (iter)) { ! t = build_fold_addr_expr (TREE_VALUE (iter)); t = build_call_expr (register_resource_fn, 1, t); append_to_statement_list (t, list_p); } --- 101,109 ---- register_resource_fn = t; /* Write out entries in the same order in which they were defined. */ ! FOR_EACH_VEC_ELT (tree, resources, ix, decl) { ! t = build_fold_addr_expr (decl); t = build_call_expr (register_resource_fn, 1, t); append_to_statement_list (t, list_p); } diff -Nrcpad gcc-4.5.2/gcc/java/typeck.c gcc-4.6.0/gcc/java/typeck.c *** gcc-4.5.2/gcc/java/typeck.c Tue Sep 1 08:38:10 2009 --- gcc-4.6.0/gcc/java/typeck.c Tue Nov 30 11:41:24 2010 *************** *** 1,5 **** /* Handle types for the GNU compiler for the Java(TM) language. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Handle types for the GNU compiler for the Java(TM) language. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2007, ! 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,41 **** #include "config.h" #include "system.h" #include "coretypes.h" - #include "tm.h" #include "tree.h" - #include "real.h" #include "obstack.h" #include "flags.h" #include "java-tree.h" #include "jcf.h" #include "convert.h" ! #include "toplev.h" #include "ggc.h" static tree convert_ieee_real_to_integer (tree, tree); --- 28,40 ---- #include "config.h" #include "system.h" #include "coretypes.h" #include "tree.h" #include "obstack.h" #include "flags.h" #include "java-tree.h" #include "jcf.h" #include "convert.h" ! #include "diagnostic-core.h" #include "ggc.h" static tree convert_ieee_real_to_integer (tree, tree); *************** java_array_type_length (tree array_type) *** 212,218 **** tree arfld; if (TREE_CODE (array_type) == POINTER_TYPE) array_type = TREE_TYPE (array_type); ! arfld = TREE_CHAIN (TREE_CHAIN (TYPE_FIELDS (array_type))); if (arfld != NULL_TREE) { tree index_type = TYPE_DOMAIN (TREE_TYPE (arfld)); --- 211,217 ---- tree arfld; if (TREE_CODE (array_type) == POINTER_TYPE) array_type = TREE_TYPE (array_type); ! arfld = DECL_CHAIN (DECL_CHAIN (TYPE_FIELDS (array_type))); if (arfld != NULL_TREE) { tree index_type = TYPE_DOMAIN (TREE_TYPE (arfld)); *************** build_java_array_type (tree element_type *** 307,313 **** arfld = build_decl (input_location, FIELD_DECL, get_identifier ("data"), atype); DECL_CONTEXT (arfld) = t; ! TREE_CHAIN (fld) = arfld; DECL_ALIGN (arfld) = TYPE_ALIGN (element_type); /* We could layout_class, but that loads java.lang.Object prematurely. --- 306,312 ---- arfld = build_decl (input_location, FIELD_DECL, get_identifier ("data"), atype); DECL_CONTEXT (arfld) = t; ! DECL_CHAIN (fld) = arfld; DECL_ALIGN (arfld) = TYPE_ALIGN (element_type); /* We could layout_class, but that loads java.lang.Object prematurely. *************** shallow_find_method (tree searched_class *** 645,651 **** { tree method; for (method = TYPE_METHODS (searched_class); ! method != NULL_TREE; method = TREE_CHAIN (method)) { tree method_sig = (*signature_builder) (TREE_TYPE (method)); if (DECL_NAME (method) == method_name && method_sig == signature) --- 644,650 ---- { tree method; for (method = TYPE_METHODS (searched_class); ! method != NULL_TREE; method = DECL_CHAIN (method)) { tree method_sig = (*signature_builder) (TREE_TYPE (method)); if (DECL_NAME (method) == method_name && method_sig == signature) *************** tree *** 780,786 **** lookup_java_constructor (tree clas, tree method_signature) { tree method = TYPE_METHODS (clas); ! for ( ; method != NULL_TREE; method = TREE_CHAIN (method)) { tree method_sig = build_java_signature (TREE_TYPE (method)); if (DECL_CONSTRUCTOR_P (method) && method_sig == method_signature) --- 779,785 ---- lookup_java_constructor (tree clas, tree method_signature) { tree method = TYPE_METHODS (clas); ! for ( ; method != NULL_TREE; method = DECL_CHAIN (method)) { tree method_sig = build_java_signature (TREE_TYPE (method)); if (DECL_CONSTRUCTOR_P (method) && method_sig == method_signature) diff -Nrcpad gcc-4.5.2/gcc/java/verify-glue.c gcc-4.6.0/gcc/java/verify-glue.c *** gcc-4.5.2/gcc/java/verify-glue.c Fri Aug 17 15:19:39 2007 --- gcc-4.6.0/gcc/java/verify-glue.c Tue Nov 30 11:41:24 2010 *************** *** 1,5 **** /* Glue to interface gcj with bytecode verifier. ! Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Glue to interface gcj with bytecode verifier. ! Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010 ! Free Software Foundation, Inc. This file is part of GCC. *************** The Free Software Foundation is independ *** 27,40 **** #include "system.h" #include "coretypes.h" - #include "tm.h" #include "tree.h" #include "parse.h" #include "verify.h" #include "java-tree.h" #include "java-except.h" ! #include "toplev.h" void * vfy_alloc (size_t bytes) --- 28,40 ---- #include "system.h" #include "coretypes.h" #include "tree.h" #include "parse.h" #include "verify.h" #include "java-tree.h" #include "java-except.h" ! #include "diagnostic-core.h" void * vfy_alloc (size_t bytes) *************** vfy_class_has_field (vfy_jclass klass, v *** 365,371 **** if (DECL_NAME (field) == name && build_java_signature (TREE_TYPE (field)) == signature) return true; ! field = TREE_CHAIN (field); } return false; } --- 365,371 ---- if (DECL_NAME (field) == name && build_java_signature (TREE_TYPE (field)) == signature) return true; ! field = DECL_CHAIN (field); } return false; } diff -Nrcpad gcc-4.5.2/gcc/java/verify-impl.c gcc-4.6.0/gcc/java/verify-impl.c *** gcc-4.5.2/gcc/java/verify-impl.c Sat Nov 28 16:21:52 2009 --- gcc-4.6.0/gcc/java/verify-impl.c Mon Nov 29 14:09:41 2010 *************** *** 1,4 **** ! /* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009 Free Software Foundation This file is part of libgcj. --- 1,4 ---- ! /* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010 Free Software Foundation This file is part of libgcj. *************** details. */ *** 19,28 **** /* Hack to work around namespace pollution from java-tree.h. */ #undef current_class - #ifdef VERIFY_DEBUG - #include - #endif /* VERIFY_DEBUG */ - /* This is used to mark states which are not scheduled for verification. */ #define INVALID_STATE ((state *) -1) --- 19,24 ---- diff -Nrcpad gcc-4.5.2/libffi/ChangeLog gcc-4.6.0/libffi/ChangeLog *** gcc-4.5.2/libffi/ChangeLog Thu Dec 16 12:31:41 2010 --- gcc-4.6.0/libffi/ChangeLog Fri Mar 25 16:53:14 2011 *************** *** 1,6 **** ! 2010-12-16 Release Manager ! * GCC 4.5.2 released. 2010-12-06 Rainer Orth --- 1,49 ---- ! 2011-03-25 Release Manager ! * GCC 4.6.0 released. ! ! 2011-02-13 Ralf Wildenhues ! ! * configure: Regenerate. ! ! 2011-02-09 Rainer Orth ! ! PR libffi/46661 ! * testsuite/libffi.call/cls_pointer.c (main): Cast void * to ! uintptr_t first. ! * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise. ! ! 2011-02-07 Joel Sherrill ! ! * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing. ! Handle case when CPU variant does not have long double support. ! * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire, ! and cores with soft floating point. ! ! 2011-02-07 Joel Sherrill ! ! * configure.ac: Add mips*-*-rtems* support. ! * configure: Regenerate. ! * src/mips/ffitarget.h: Ensure needed constants are available ! for targets which do not have sgidefs.h. ! ! 2011-01-26 Dave Korn ! ! PR target/40125 ! * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs. ! * configure: Regenerate. ! ! 2010-12-18 Iain Sandoe ! ! PR libffi/29152 ! PR libffi/42378 ! * src/powerpc/darwin_closure.S: Provide Darwin64 implementation, ! update comments. ! * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New, ! (FFI_TRAMPOLINE_SIZE): Update for Darwin64. ! * src/powerpc/darwin.S: Provide Darwin64 implementation, ! update comments. ! * src/powerpc/ffi_darwin.c: Likewise. 2010-12-06 Rainer Orth *************** *** 9,14 **** --- 52,121 ---- (libffi_cv_as_string_pseudo_op): Likewise. * configure: Regenerate. + 2010-12-03 Chung-Lin Tang + + * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive. + (ffi_closure_VFP): Same. + (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp' + directive. + + 2010-12-01 Rainer Orth + + * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define. + (PRIuPTR): Define. + + 2010-11-29 Richard Henderson + Rainer Orth + + * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define. + (.eh_frame): Use FDE_ENCODING. + (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE. + + 2010-11-15 Rainer Orth + + * testsuite/lib/libffi-dg.exp: Rename ... + * testsuite/lib/libffi.exp: ... to this. + * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp. + * libffi/testsuite/libffi.special/special.exp: Likewise. + + 2010-10-28 Chung-Lin Tang + + * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling + code, new parameter, and return value. Update comments. + (ffi_prep_cif_machdep): Add case for VFP struct return values. Add + call to layout_vfp_args(). + (ffi_call_SYSV): Update declaration. + (ffi_call_VFP): New declaration. + (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP() + when ABI is FFI_VFP. + (ffi_closure_VFP): New declaration. + (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to + ffi_prep_incoming_args_SYSV(). + (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument + case handling. + (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline + construction under VFP hard-float. + (rec_vfp_type_p): New function. + (vfp_type_p): Same. + (place_vfp_arg): Same. + (layout_vfp_args): Same. + * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI + based on __ARM_PCS_VFP. + (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific + fields. + (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code. + (FFI_TYPE_STRUCT_VFP_DOUBLE): Same. + * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to + direct call. Move function pointer load upwards. + (ffi_call_VFP): New function. + (ffi_closure_VFP): Same. + + * testsuite/lib/libffi-dg.exp (check-flags): New function. + (dg-skip-if): New function. + * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-* + and compiler options include -mfloat-abi=hard. + * testsuite/libffi.call/cls_longdouble_va.c: Same. + 2010-10-01 Jakub Jelinek PR libffi/45677 *************** *** 16,24 **** a multiple of 8. * testsuite/libffi.call/many2.c: New test. ! 2010-07-31 Release Manager ! * GCC 4.5.1 released. 2010-07-02 Jakub Jelinek --- 123,158 ---- a multiple of 8. * testsuite/libffi.call/many2.c: New test. ! 2010-08-20 Mark Wielaard ! * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r ! returns NULL. ! ! 2010-08-09 Andreas Tobler ! ! * configure.ac: Add target powerpc64-*-freebsd*. ! * configure: Regenerate. ! * testsuite/libffi.call/cls_align_longdouble_split.c: Pass ! -mlong-double-128 only to linux targets. ! * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise. ! * testsuite/libffi.call/cls_longdouble.c: Likewise. ! * testsuite/libffi.call/huge_struct.c: Likewise. ! ! 2010-07-10 Evan Phoenix ! ! * src/closures.c (selinux_enabled_check): Fix strncmp usage bug. ! ! 2010-07-07 Dan Horák ! ! * include/ffi.h.in: Protect #define with #ifndef. ! * src/powerpc/ffitarget.h: Ditto. ! * src/s390/ffitarget.h: Ditto. ! * src/sparc/ffitarget.h: Ditto. ! ! 2010-07-07 Neil Roberts ! ! * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to ! 16-bytes. 2010-07-02 Jakub Jelinek *************** *** 35,43 **** * fficonfig.h.in: Regenerate. * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error. ! 2010-04-14 Release Manager ! * GCC 4.5.0 released. 2010-04-02 Ralf Wildenhues --- 169,200 ---- * fficonfig.h.in: Regenerate. * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error. ! 2010-05-05 Michael Kohler ! * src/dlmalloc.c (dlfree): Fix spelling. ! * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto. ! * configure.ac: Ditto. ! * configure: Rebuilt. ! ! 2010-04-13 Dan Witte ! ! * msvcc.sh: Build with -W3 instead of -Wall. ! * src/powerpc/ffi_darwin.c: Remove build warnings. ! * src/x86/ffi.c: Ditto. ! * src/x86/ffitarget.h: Ditto. ! ! 2010-04-12 Dan Witte ! Walter Meinl ! ! * configure.ac: Add OS/2 support. ! * configure: Rebuilt. ! * src/closures.c: Ditto. ! * src/dlmalloc.c: Ditto. ! * src/x86/win32.S: Ditto. ! ! 2010-04-07 Jakub Jelinek ! ! * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable. 2010-04-02 Ralf Wildenhues *************** *** 55,60 **** --- 212,222 ---- * libffi/src/x86/unix64.S (.eh_frame) [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type. + 2010-03-14 Matthias Klose + + * src/x86/ffi64.c: Fix typo in comment. + * src/x86/ffi.c: Use /* ... */ comment style. + 2010-02-24 Rainer Orth * doc/libffi.texi (The Closure API): Fix typo. *************** *** 65,70 **** --- 227,264 ---- * src/arm/sysv.S (__ARM_ARCH__): Define for processor __ARM_ARCH_7EM__. + 2010-01-15 Anthony Green + + * README: Add notes on building with Microsoft Visual C++. + + 2010-01-15 Daniel Witte + + * msvcc.sh: New file. + + * src/x86/win32.S: Port assembly routines to MSVC and #ifdef. + * src/x86/ffi.c: Tweak function declaration and remove excess + parens. + * include/ffi.h.in: Add __declspec(align(8)) to typedef struct + ffi_closure. + + * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new + function ffi_call_win32 on X86_WIN32. + * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32. + (ffi_call_STDCALL): Remove. + + * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code + to ffi_prep_cif_machdep for x86. + * src/x86/ffi.c (ffi_prep_cif_machdep): To here. + + 2010-01-15 Oliver Kiddle + + * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for + Sun Studio compiler compatibility. + + 2010-01-12 Conrad Irwin + + * doc/libffi.texi: Add closure example. + 2010-01-07 Rainer Orth PR libffi/40701 diff -Nrcpad gcc-4.5.2/libffi/README gcc-4.6.0/libffi/README *** gcc-4.5.2/libffi/README Fri Jan 1 12:50:08 2010 --- gcc-4.6.0/libffi/README Fri Aug 6 12:36:26 2010 *************** tested: *** 77,82 **** --- 77,83 ---- | X86 | Linux | | X86 | Mac OSX | | X86 | OpenBSD | + | X86 | OS/2 | | X86 | Solaris | | X86 | Windows/Cygwin | | X86 | Windows/MingW | *************** will add some extra code which will supp *** 110,115 **** --- 111,124 ---- are using Purify with libffi. Only use this switch when using Purify, as it will slow down the library. + It's also possible to build libffi on Windows platforms with + Microsoft's Visual C++ compiler. In this case, use the msvcc.sh + wrapper script during configuration like so: + + path/to/configure --enable-shared --enable-static \ + CC=path/to/msvcc.sh LD=link \ + CPP=\"cl -nologo -EP\" + Configure has many other options. Use "configure --help" to see them all. Once configure has finished, type "make". Note that you must be using *************** History *** 126,131 **** --- 135,146 ---- See the ChangeLog files for details. + 3.0.10 ???-??-?? + Fix the N64 build on mips-sgi-irix6.5. + Testsuite fixes for Tru64 Unix. + Enable builds with Microsoft's compiler. + Enable x86 builds with Sun's compiler. + 3.0.9 Dec-31-09 Add AVR32 and win64 ports. Add ARM softfp support. Many fixes for AIX, Solaris, HP-UX, *BSD. diff -Nrcpad gcc-4.5.2/libffi/configure gcc-4.6.0/libffi/configure *** gcc-4.5.2/libffi/configure Thu Dec 16 12:49:03 2010 --- gcc-4.6.0/libffi/configure Fri Mar 25 17:07:00 2011 *************** if test -z "$aix_libpath"; then aix_libp *** 8989,8998 **** hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little --- 8989,8994 ---- *************** dgux*) *** 9911,9920 **** shlibpath_var=LD_LIBRARY_PATH ;; - freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. --- 9907,9912 ---- *************** else *** 10774,10780 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10777 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 10766,10772 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10769 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 10880,10886 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10883 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 10872,10878 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10875 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** TARGETDIR="unknown" *** 11320,11326 **** case "$host" in alpha*-*-*) TARGET=ALPHA; TARGETDIR=alpha; ! # Support 128-bit long double, changable via command-line switch. HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)' ;; --- 11312,11318 ---- case "$host" in alpha*-*-*) TARGET=ALPHA; TARGETDIR=alpha; ! # Support 128-bit long double, changeable via command-line switch. HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)' ;; *************** case "$host" in *** 11357,11366 **** i?86-*-freebsd* | i?86-*-openbsd*) TARGET=X86_FREEBSD; TARGETDIR=x86 ;; ! i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*) TARGET=X86_WIN32; TARGETDIR=x86 ! # All mingw/cygwin/win32 builds require this for sharedlib ! AM_LTLDFLAGS="-no-undefined" ;; i?86-*-darwin*) TARGET=X86_DARWIN; TARGETDIR=x86 --- 11349,11365 ---- i?86-*-freebsd* | i?86-*-openbsd*) TARGET=X86_FREEBSD; TARGETDIR=x86 ;; ! i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2*) TARGET=X86_WIN32; TARGETDIR=x86 ! # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. ! # We must also check with_cross_host to decide if this is a native ! # or cross-build and select where to install dlls appropriately. ! if test -n "$with_cross_host" && ! test x"$with_cross_host" != x"no"; then ! AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"'; ! else ! AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"'; ! fi ;; i?86-*-darwin*) TARGET=X86_DARWIN; TARGETDIR=x86 *************** case "$host" in *** 11384,11390 **** TARGET=M68K; TARGETDIR=m68k ;; ! mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS; TARGETDIR=mips ;; mips*-*-linux*) --- 11383,11389 ---- TARGET=M68K; TARGETDIR=m68k ;; ! mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*) TARGET=MIPS; TARGETDIR=mips ;; mips*-*-linux*) *************** case "$host" in *** 11408,11413 **** --- 11407,11415 ---- powerpc-*-freebsd*) TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc ;; + powerpc64-*-freebsd*) + TARGET=POWERPC; TARGETDIR=powerpc + ;; powerpc*-*-rtems*) TARGET=POWERPC; TARGETDIR=powerpc ;; diff -Nrcpad gcc-4.5.2/libffi/configure.ac gcc-4.6.0/libffi/configure.ac *** gcc-4.5.2/libffi/configure.ac Mon Dec 6 16:18:57 2010 --- gcc-4.6.0/libffi/configure.ac Tue Feb 8 19:17:55 2011 *************** TARGETDIR="unknown" *** 43,49 **** case "$host" in alpha*-*-*) TARGET=ALPHA; TARGETDIR=alpha; ! # Support 128-bit long double, changable via command-line switch. HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)' ;; --- 43,49 ---- case "$host" in alpha*-*-*) TARGET=ALPHA; TARGETDIR=alpha; ! # Support 128-bit long double, changeable via command-line switch. HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)' ;; *************** case "$host" in *** 80,89 **** i?86-*-freebsd* | i?86-*-openbsd*) TARGET=X86_FREEBSD; TARGETDIR=x86 ;; ! i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*) TARGET=X86_WIN32; TARGETDIR=x86 ! # All mingw/cygwin/win32 builds require this for sharedlib ! AM_LTLDFLAGS="-no-undefined" ;; i?86-*-darwin*) TARGET=X86_DARWIN; TARGETDIR=x86 --- 80,96 ---- i?86-*-freebsd* | i?86-*-openbsd*) TARGET=X86_FREEBSD; TARGETDIR=x86 ;; ! i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2*) TARGET=X86_WIN32; TARGETDIR=x86 ! # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. ! # We must also check with_cross_host to decide if this is a native ! # or cross-build and select where to install dlls appropriately. ! if test -n "$with_cross_host" && ! test x"$with_cross_host" != x"no"; then ! AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"'; ! else ! AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"'; ! fi ;; i?86-*-darwin*) TARGET=X86_DARWIN; TARGETDIR=x86 *************** case "$host" in *** 107,113 **** TARGET=M68K; TARGETDIR=m68k ;; ! mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS; TARGETDIR=mips ;; mips*-*-linux*) --- 114,120 ---- TARGET=M68K; TARGETDIR=m68k ;; ! mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*) TARGET=MIPS; TARGETDIR=mips ;; mips*-*-linux*) *************** case "$host" in *** 131,136 **** --- 138,146 ---- powerpc-*-freebsd*) TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc ;; + powerpc64-*-freebsd*) + TARGET=POWERPC; TARGETDIR=powerpc + ;; powerpc*-*-rtems*) TARGET=POWERPC; TARGETDIR=powerpc ;; diff -Nrcpad gcc-4.5.2/libffi/doc/libffi.texi gcc-4.6.0/libffi/doc/libffi.texi *** gcc-4.5.2/libffi/doc/libffi.texi Wed Feb 24 16:02:17 2010 --- gcc-4.6.0/libffi/doc/libffi.texi Fri Aug 6 04:45:46 2010 *************** *** 19,25 **** This manual is for Libffi, a portable foreign-function interface library. ! Copyright @copyright{} 2008 Red Hat, Inc. @quotation Permission is granted to copy, distribute and/or modify this document --- 19,25 ---- This manual is for Libffi, a portable foreign-function interface library. ! Copyright @copyright{} 2008, 2010 Red Hat, Inc. @quotation Permission is granted to copy, distribute and/or modify this document *************** values passed between the two languages. *** 106,111 **** --- 106,112 ---- * Types:: libffi type descriptions. * Multiple ABIs:: Different passing styles on one platform. * The Closure API:: Writing a generic function. + * Closure Example:: A closure example. @end menu *************** After calling @code{ffi_prep_closure_loc *** 500,511 **** to the appropriate pointer-to-function type. @end defun - @c FIXME: example - You may see old code referring to @code{ffi_prep_closure}. This function is deprecated, as it cannot handle the need for separate writable and executable addresses. @node Missing Features @chapter Missing Features --- 501,566 ---- to the appropriate pointer-to-function type. @end defun You may see old code referring to @code{ffi_prep_closure}. This function is deprecated, as it cannot handle the need for separate writable and executable addresses. + @node Closure Example + @section Closure Example + + A trivial example that creates a new @code{puts} by binding + @code{fputs} with @code{stdin}. + + @example + #include + #include + + /* Acts like puts with the file given at time of enclosure. */ + void puts_binding(ffi_cif *cif, unsigned int *ret, void* args[], + FILE *stream) + @{ + *ret = fputs(*(char **)args[0], stream); + @} + + int main() + @{ + ffi_cif cif; + ffi_type *args[1]; + ffi_closure *closure; + + int (*bound_puts)(char *); + int rc; + + /* Allocate closure and bound_puts */ + closure = ffi_closure_alloc(sizeof(ffi_closure), &bound_puts); + + if (closure) + @{ + /* Initialize the argument info vectors */ + args[0] = &ffi_type_pointer; + + /* Initialize the cif */ + if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, + &ffi_type_uint, args) == FFI_OK) + @{ + /* Initialize the closure, setting stream to stdout */ + if (ffi_prep_closure_loc(closure, &cif, puts_binding, + stdout, bound_puts) == FFI_OK) + @{ + rc = bound_puts("Hello World!"); + /* rc now holds the result of the call to fputs */ + @} + @} + @} + + /* Deallocate both closure, and bound_puts */ + ffi_closure_free(closure); + + return 0; + @} + + @end example + @node Missing Features @chapter Missing Features *************** There is no support for bit fields in st *** 525,530 **** --- 580,587 ---- @item The closure API is + @c FIXME: ... + @item The ``raw'' API is undocumented. @c argument promotion? diff -Nrcpad gcc-4.5.2/libffi/include/ffi.h.in gcc-4.6.0/libffi/include/ffi.h.in *** gcc-4.5.2/libffi/include/ffi.h.in Sat Dec 26 04:59:25 2009 --- gcc-4.6.0/libffi/include/ffi.h.in Fri Aug 6 12:26:52 2010 *************** extern "C" { *** 57,63 **** --- 57,65 ---- #endif /* Specify which architecture libffi is configured for. */ + #ifndef @TARGET@ #define @TARGET@ + #endif /* ---- System configuration information --------------------------------- */ *************** size_t ffi_java_raw_size (ffi_cif *cif); *** 251,256 **** --- 253,261 ---- #if FFI_CLOSURES + #ifdef _MSC_VER + __declspec(align(8)) + #endif typedef struct { char tramp[FFI_TRAMPOLINE_SIZE]; ffi_cif *cif; diff -Nrcpad gcc-4.5.2/libffi/msvcc.sh gcc-4.6.0/libffi/msvcc.sh *** gcc-4.5.2/libffi/msvcc.sh Thu Jan 1 00:00:00 1970 --- gcc-4.6.0/libffi/msvcc.sh Fri Aug 6 20:05:33 2010 *************** *** 0 **** --- 1,183 ---- + #!/bin/sh + + # ***** BEGIN LICENSE BLOCK ***** + # Version: MPL 1.1/GPL 2.0/LGPL 2.1 + # + # The contents of this file are subject to the Mozilla Public License Version + # 1.1 (the "License"); you may not use this file except in compliance with + # the License. You may obtain a copy of the License at + # http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS IS" basis, + # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + # for the specific language governing rights and limitations under the + # License. + # + # The Original Code is the MSVC wrappificator. + # + # The Initial Developer of the Original Code is + # Timothy Wall . + # Portions created by the Initial Developer are Copyright (C) 2009 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Daniel Witte + # + # Alternatively, the contents of this file may be used under the terms of + # either the GNU General Public License Version 2 or later (the "GPL"), or + # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + # in which case the provisions of the GPL or the LGPL are applicable instead + # of those above. If you wish to allow use of your version of this file only + # under the terms of either the GPL or the LGPL, and not to allow others to + # use your version of this file under the terms of the MPL, indicate your + # decision by deleting the provisions above and replace them with the notice + # and other provisions required by the GPL or the LGPL. If you do not delete + # the provisions above, a recipient may use your version of this file under + # the terms of any one of the MPL, the GPL or the LGPL. + # + # ***** END LICENSE BLOCK ***** + + # + # GCC-compatible wrapper for cl.exe and ml.exe. Arguments are given in GCC + # format and translated into something sensible for cl or ml. + # + + args="-nologo" + md=-MD + cl="cl" + ml="ml" + output= + + while [ $# -gt 0 ] + do + case $1 + in + -fexceptions) + # Don't enable exceptions for now. + #args="$args -EHac" + shift 1 + ;; + -m32) + shift 1 + ;; + -m64) + cl="cl" # "$MSVC/x86_amd64/cl" + ml="ml64" # "$MSVC/x86_amd64/ml64" + shift 1 + ;; + -O*) + args="$args $1" + shift 1 + ;; + -g) + # Can't specify -RTC1 or -Zi in opt. -Gy is ok. Use -OPT:REF? + args="$args -D_DEBUG -RTC1 -Zi" + md=-MDd + shift 1 + ;; + -c) + args="$args -c" + args="$(echo $args | sed 's%/Fe%/Fo%g')" + single="-c" + shift 1 + ;; + -D*=*) + name="$(echo $1|sed 's/-D\([^=][^=]*\)=.*/\1/g')" + value="$(echo $1|sed 's/-D[^=][^=]*=//g')" + args="$args -D${name}='$value'" + defines="$defines -D${name}='$value'" + shift 1 + ;; + -D*) + args="$args $1" + defines="$defines $1" + shift 1 + ;; + -I) + args="$args -I$2" + includes="$includes -I$2" + shift 2 + ;; + -I*) + args="$args $1" + includes="$includes $1" + shift 1 + ;; + -W|-Wextra) + # TODO map extra warnings + shift 1 + ;; + -Wall) + # -Wall on MSVC is overzealous. Use -W3 instead. + args="$args -W3" + shift 1 + ;; + -Werror) + args="$args -WX" + shift 1 + ;; + -W*) + # TODO map specific warnings + shift 1 + ;; + -S) + args="$args -FAs" + shift 1 + ;; + -o) + outdir="$(dirname $2)" + base="$(basename $2|sed 's/\.[^.]*//g')" + if [ -n "$single" ]; then + output="-Fo$2" + else + output="-Fe$2" + fi + if [ -n "$assembly" ]; then + args="$args $output" + else + args="$args $output -Fd$outdir/$base -Fp$outdir/$base -Fa$outdir/$base" + fi + shift 2 + ;; + *.S) + src=$1 + assembly="true" + shift 1 + ;; + *.c) + args="$args $1" + shift 1 + ;; + *) + # Assume it's an MSVC argument, and pass it through. + args="$args $1" + shift 1 + ;; + esac + done + + if [ -n "$assembly" ]; then + if [ -z "$outdir" ]; then + outdir="." + fi + ppsrc="$outdir/$(basename $src|sed 's/.S$/.asm/g')" + echo "$cl -nologo -EP $includes $defines $src > $ppsrc" + "$cl" -nologo -EP $includes $defines $src > $ppsrc || exit $? + output="$(echo $output | sed 's%/F[dpa][^ ]*%%g')" + args="-nologo -safeseh $single $output $ppsrc" + + echo "$ml $args" + eval "\"$ml\" $args" + result=$? + + # required to fix ml64 broken output? + #mv *.obj $outdir + else + args="$md $args" + echo "$cl $args" + eval "\"$cl\" $args" + result=$? + fi + + exit $result + diff -Nrcpad gcc-4.5.2/libffi/src/arm/ffi.c gcc-4.6.0/libffi/src/arm/ffi.c *** gcc-4.5.2/libffi/src/arm/ffi.c Thu Jun 4 15:43:03 2009 --- gcc-4.6.0/libffi/src/arm/ffi.c Thu Oct 28 18:11:11 2010 *************** *** 29,40 **** #include ! /* ffi_prep_args is called by the assembly routine once stack space ! has been allocated for the function's arguments */ ! void ffi_prep_args(char *stack, extended_cif *ecif) { ! register unsigned int i; register void **p_argv; register char *argp; register ffi_type **p_arg; --- 29,48 ---- #include ! /* Forward declares. */ ! static int vfp_type_p (ffi_type *); ! static void layout_vfp_args (ffi_cif *); ! /* ffi_prep_args is called by the assembly routine once stack space ! has been allocated for the function's arguments ! ! The vfp_space parameter is the load area for VFP regs, the return ! value is cif->vfp_used (word bitset of VFP regs used for passing ! arguments). These are only used for the VFP hard-float ABI. ! */ ! int ffi_prep_args(char *stack, extended_cif *ecif, float *vfp_space) { ! register unsigned int i, vi = 0; register void **p_argv; register char *argp; register ffi_type **p_arg; *************** void ffi_prep_args(char *stack, extended *** 54,59 **** --- 62,82 ---- { size_t z; + /* Allocated in VFP registers. */ + if (ecif->cif->abi == FFI_VFP + && vi < ecif->cif->vfp_nargs && vfp_type_p (*p_arg)) + { + float* vfp_slot = vfp_space + ecif->cif->vfp_args[vi++]; + if ((*p_arg)->type == FFI_TYPE_FLOAT) + *((float*)vfp_slot) = *((float*)*p_argv); + else if ((*p_arg)->type == FFI_TYPE_DOUBLE) + *((double*)vfp_slot) = *((double*)*p_argv); + else + memcpy(vfp_slot, *p_argv, (*p_arg)->size); + p_argv++; + continue; + } + /* Align if necessary */ if (((*p_arg)->alignment - 1) & (unsigned) argp) { argp = (char *) ALIGN(argp, (*p_arg)->alignment); *************** void ffi_prep_args(char *stack, extended *** 103,115 **** p_argv++; argp += z; } ! ! return; } /* Perform machine dependent cif processing */ ffi_status ffi_prep_cif_machdep(ffi_cif *cif) { /* Round the stack up to a multiple of 8 bytes. This isn't needed everywhere, but it is on some platforms, and it doesn't harm anything when it isn't needed. */ --- 126,140 ---- p_argv++; argp += z; } ! ! /* Indicate the VFP registers used. */ ! return ecif->cif->vfp_used; } /* Perform machine dependent cif processing */ ffi_status ffi_prep_cif_machdep(ffi_cif *cif) { + int type_code; /* Round the stack up to a multiple of 8 bytes. This isn't needed everywhere, but it is on some platforms, and it doesn't harm anything when it isn't needed. */ *************** ffi_status ffi_prep_cif_machdep(ffi_cif *** 130,136 **** break; case FFI_TYPE_STRUCT: ! if (cif->rtype->size <= 4) /* A Composite Type not larger than 4 bytes is returned in r0. */ cif->flags = (unsigned)FFI_TYPE_INT; else --- 155,168 ---- break; case FFI_TYPE_STRUCT: ! if (cif->abi == FFI_VFP ! && (type_code = vfp_type_p (cif->rtype)) != 0) ! { ! /* A Composite Type passed in VFP registers, either ! FFI_TYPE_STRUCT_VFP_FLOAT or FFI_TYPE_STRUCT_VFP_DOUBLE. */ ! cif->flags = (unsigned) type_code; ! } ! else if (cif->rtype->size <= 4) /* A Composite Type not larger than 4 bytes is returned in r0. */ cif->flags = (unsigned)FFI_TYPE_INT; else *************** ffi_status ffi_prep_cif_machdep(ffi_cif *** 145,155 **** break; } return FFI_OK; } ! extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *, ! unsigned, unsigned, unsigned *, void (*fn)(void)); void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { --- 177,194 ---- break; } + /* Map out the register placements of VFP register args. + The VFP hard-float calling conventions are slightly more sophisticated than + the base calling conventions, so we do it here instead of in ffi_prep_args(). */ + if (cif->abi == FFI_VFP) + layout_vfp_args (cif); + return FFI_OK; } ! /* Prototypes for assembly functions, in sysv.S */ ! extern void ffi_call_SYSV (void (*fn)(void), extended_cif *, unsigned, unsigned, unsigned *); ! extern void ffi_call_VFP (void (*fn)(void), extended_cif *, unsigned, unsigned, unsigned *); void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { *************** void ffi_call(ffi_cif *cif, void (*fn)(v *** 157,162 **** --- 196,203 ---- int small_struct = (cif->flags == FFI_TYPE_INT && cif->rtype->type == FFI_TYPE_STRUCT); + int vfp_struct = (cif->flags == FFI_TYPE_STRUCT_VFP_FLOAT + || cif->flags == FFI_TYPE_STRUCT_VFP_DOUBLE); ecif.cif = cif; ecif.avalue = avalue; *************** void ffi_call(ffi_cif *cif, void (*fn)(v *** 173,210 **** } else if (small_struct) ecif.rvalue = &temp; else ecif.rvalue = rvalue; switch (cif->abi) { case FFI_SYSV: ! ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, cif->flags, ecif.rvalue, ! fn); break; default: FFI_ASSERT(0); break; } if (small_struct) memcpy (rvalue, &temp, cif->rtype->size); } /** private members **/ static void ffi_prep_incoming_args_SYSV (char *stack, void **ret, ! void** args, ffi_cif* cif); void ffi_closure_SYSV (ffi_closure *); /* This function is jumped to by the trampoline */ unsigned int ! ffi_closure_SYSV_inner (closure, respp, args) ffi_closure *closure; void **respp; void *args; { // our various things... ffi_cif *cif; --- 214,264 ---- } else if (small_struct) ecif.rvalue = &temp; + else if (vfp_struct) + { + /* Largest case is double x 4. */ + ecif.rvalue = alloca(32); + } else ecif.rvalue = rvalue; switch (cif->abi) { case FFI_SYSV: ! ffi_call_SYSV (fn, &ecif, cif->bytes, cif->flags, ecif.rvalue); ! break; + case FFI_VFP: + ffi_call_VFP (fn, &ecif, cif->bytes, cif->flags, ecif.rvalue); break; + default: FFI_ASSERT(0); break; } if (small_struct) memcpy (rvalue, &temp, cif->rtype->size); + else if (vfp_struct) + memcpy (rvalue, ecif.rvalue, cif->rtype->size); } /** private members **/ static void ffi_prep_incoming_args_SYSV (char *stack, void **ret, ! void** args, ffi_cif* cif, float *vfp_stack); void ffi_closure_SYSV (ffi_closure *); + void ffi_closure_VFP (ffi_closure *); + /* This function is jumped to by the trampoline */ unsigned int ! ffi_closure_SYSV_inner (closure, respp, args, vfp_args) ffi_closure *closure; void **respp; void *args; + void *vfp_args; { // our various things... ffi_cif *cif; *************** ffi_closure_SYSV_inner (closure, respp, *** 219,225 **** * a structure, it will re-set RESP to point to the * structure return address. */ ! ffi_prep_incoming_args_SYSV(args, respp, arg_area, cif); (closure->fun) (cif, *respp, arg_area, closure->user_data); --- 273,279 ---- * a structure, it will re-set RESP to point to the * structure return address. */ ! ffi_prep_incoming_args_SYSV(args, respp, arg_area, cif, vfp_args); (closure->fun) (cif, *respp, arg_area, closure->user_data); *************** ffi_closure_SYSV_inner (closure, respp, *** 229,238 **** /*@-exportheader@*/ static void ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, ! void **avalue, ffi_cif *cif) /*@=exportheader@*/ { ! register unsigned int i; register void **p_argv; register char *argp; register ffi_type **p_arg; --- 283,294 ---- /*@-exportheader@*/ static void ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, ! void **avalue, ffi_cif *cif, ! /* Used only under VFP hard-float ABI. */ ! float *vfp_stack) /*@=exportheader@*/ { ! register unsigned int i, vi = 0; register void **p_argv; register char *argp; register ffi_type **p_arg; *************** ffi_prep_incoming_args_SYSV(char *stack, *** 249,256 **** for (i = cif->nargs, p_arg = cif->arg_types; (i != 0); i--, p_arg++) { size_t z; ! size_t alignment = (*p_arg)->alignment; if (alignment < 4) alignment = 4; /* Align if necessary */ --- 305,320 ---- for (i = cif->nargs, p_arg = cif->arg_types; (i != 0); i--, p_arg++) { size_t z; + size_t alignment; + + if (cif->abi == FFI_VFP + && vi < cif->vfp_nargs && vfp_type_p (*p_arg)) + { + *p_argv++ = (void*)(vfp_stack + cif->vfp_args[vi++]); + continue; + } ! alignment = (*p_arg)->alignment; if (alignment < 4) alignment = 4; /* Align if necessary */ *************** ffi_prep_closure_loc (ffi_closure* closu *** 295,304 **** void *user_data, void *codeloc) { ! FFI_ASSERT (cif->abi == FFI_SYSV); FFI_INIT_TRAMPOLINE (&closure->tramp[0], \ ! &ffi_closure_SYSV, \ codeloc); closure->cif = cif; --- 359,375 ---- void *user_data, void *codeloc) { ! void (*closure_func)(ffi_closure*) = NULL; + if (cif->abi == FFI_SYSV) + closure_func = &ffi_closure_SYSV; + else if (cif->abi == FFI_VFP) + closure_func = &ffi_closure_VFP; + else + FFI_ASSERT (0); + FFI_INIT_TRAMPOLINE (&closure->tramp[0], \ ! closure_func, \ codeloc); closure->cif = cif; *************** ffi_prep_closure_loc (ffi_closure* closu *** 307,309 **** --- 378,500 ---- return FFI_OK; } + + /* Below are routines for VFP hard-float support. */ + + static int rec_vfp_type_p (ffi_type *t, int *elt, int *elnum) + { + switch (t->type) + { + case FFI_TYPE_FLOAT: + case FFI_TYPE_DOUBLE: + *elt = (int) t->type; + *elnum = 1; + return 1; + + case FFI_TYPE_STRUCT_VFP_FLOAT: + *elt = FFI_TYPE_FLOAT; + *elnum = t->size / sizeof (float); + return 1; + + case FFI_TYPE_STRUCT_VFP_DOUBLE: + *elt = FFI_TYPE_DOUBLE; + *elnum = t->size / sizeof (double); + return 1; + + case FFI_TYPE_STRUCT:; + { + int base_elt = 0, total_elnum = 0; + ffi_type **el = t->elements; + while (*el) + { + int el_elt = 0, el_elnum = 0; + if (! rec_vfp_type_p (*el, &el_elt, &el_elnum) + || (base_elt && base_elt != el_elt) + || total_elnum + el_elnum > 4) + return 0; + base_elt = el_elt; + total_elnum += el_elnum; + el++; + } + *elnum = total_elnum; + *elt = base_elt; + return 1; + } + default: ; + } + return 0; + } + + static int vfp_type_p (ffi_type *t) + { + int elt, elnum; + if (rec_vfp_type_p (t, &elt, &elnum)) + { + if (t->type == FFI_TYPE_STRUCT) + { + if (elnum == 1) + t->type = elt; + else + t->type = (elt == FFI_TYPE_FLOAT + ? FFI_TYPE_STRUCT_VFP_FLOAT + : FFI_TYPE_STRUCT_VFP_DOUBLE); + } + return (int) t->type; + } + return 0; + } + + static void place_vfp_arg (ffi_cif *cif, ffi_type *t) + { + int reg = cif->vfp_reg_free; + int nregs = t->size / sizeof (float); + int align = ((t->type == FFI_TYPE_STRUCT_VFP_FLOAT + || t->type == FFI_TYPE_FLOAT) ? 1 : 2); + /* Align register number. */ + if ((reg & 1) && align == 2) + reg++; + while (reg + nregs <= 16) + { + int s, new_used = 0; + for (s = reg; s < reg + nregs; s++) + { + new_used |= (1 << s); + if (cif->vfp_used & (1 << s)) + { + reg += align; + goto next_reg; + } + } + /* Found regs to allocate. */ + cif->vfp_used |= new_used; + cif->vfp_args[cif->vfp_nargs++] = reg; + + /* Update vfp_reg_free. */ + if (cif->vfp_used & (1 << cif->vfp_reg_free)) + { + reg += nregs; + while (cif->vfp_used & (1 << reg)) + reg += 1; + cif->vfp_reg_free = reg; + } + return; + next_reg: ; + } + } + + static void layout_vfp_args (ffi_cif *cif) + { + int i; + /* Init VFP fields */ + cif->vfp_used = 0; + cif->vfp_nargs = 0; + cif->vfp_reg_free = 0; + memset (cif->vfp_args, -1, 16); /* Init to -1. */ + + for (i = 0; i < cif->nargs; i++) + { + ffi_type *t = cif->arg_types[i]; + if (vfp_type_p (t)) + place_vfp_arg (cif, t); + } + } diff -Nrcpad gcc-4.5.2/libffi/src/arm/ffitarget.h gcc-4.6.0/libffi/src/arm/ffitarget.h *** gcc-4.5.2/libffi/src/arm/ffitarget.h Thu Jun 4 15:11:12 2009 --- gcc-4.6.0/libffi/src/arm/ffitarget.h Thu Oct 28 18:11:11 2010 *************** *** 1,5 **** --- 1,7 ---- /* -----------------------------------------------------------------*-C-*- ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc. + Copyright (c) 2010 CodeSourcery + Target configuration macros for ARM. Permission is hereby granted, free of charge, to any person obtaining *************** typedef signed long ffi_sarg; *** 34,44 **** typedef enum ffi_abi { FFI_FIRST_ABI = 0, FFI_SYSV, FFI_DEFAULT_ABI = FFI_SYSV, ! FFI_LAST_ABI = FFI_DEFAULT_ABI + 1 } ffi_abi; #endif /* ---- Definitions for closures ----------------------------------------- */ #define FFI_CLOSURES 1 --- 36,60 ---- typedef enum ffi_abi { FFI_FIRST_ABI = 0, FFI_SYSV, + FFI_VFP, + FFI_LAST_ABI, + #ifdef __ARM_PCS_VFP + FFI_DEFAULT_ABI = FFI_VFP, + #else FFI_DEFAULT_ABI = FFI_SYSV, ! #endif } ffi_abi; #endif + #define FFI_EXTRA_CIF_FIELDS \ + int vfp_used; \ + short vfp_reg_free, vfp_nargs; \ + signed char vfp_args[16] \ + + /* Internally used. */ + #define FFI_TYPE_STRUCT_VFP_FLOAT (FFI_TYPE_LAST + 1) + #define FFI_TYPE_STRUCT_VFP_DOUBLE (FFI_TYPE_LAST + 2) + /* ---- Definitions for closures ----------------------------------------- */ #define FFI_CLOSURES 1 diff -Nrcpad gcc-4.5.2/libffi/src/arm/sysv.S gcc-4.6.0/libffi/src/arm/sysv.S *** gcc-4.5.2/libffi/src/arm/sysv.S Mon Feb 15 15:19:30 2010 --- gcc-4.6.0/libffi/src/arm/sysv.S Fri Dec 3 16:15:26 2010 *************** _L__\name: *** 142,153 **** .endm ! @ r0: ffi_prep_args @ r1: &ecif @ r2: cif->bytes @ r3: fig->flags @ sp+0: ecif.rvalue - @ sp+4: fn @ This assumes we are using gas. ARM_FUNC_START ffi_call_SYSV --- 142,152 ---- .endm ! @ r0: fn @ r1: &ecif @ r2: cif->bytes @ r3: fig->flags @ sp+0: ecif.rvalue @ This assumes we are using gas. ARM_FUNC_START ffi_call_SYSV *************** ARM_FUNC_START ffi_call_SYSV *** 162,185 **** sub sp, fp, r2 @ Place all of the ffi_prep_args in position - mov ip, r0 mov r0, sp @ r1 already set @ Call ffi_prep_args(stack, &ecif) ! call_reg(ip) @ move first 4 parameters in registers ldmia sp, {r0-r3} @ and adjust stack ! ldr ip, [fp, #8] ! cmp ip, #16 ! movhs ip, #16 ! add sp, sp, ip @ call (fn) (...) - ldr ip, [fp, #28] call_reg(ip) @ Remove the space we pushed for the args --- 161,183 ---- sub sp, fp, r2 @ Place all of the ffi_prep_args in position mov r0, sp @ r1 already set @ Call ffi_prep_args(stack, &ecif) ! bl ffi_prep_args @ move first 4 parameters in registers ldmia sp, {r0-r3} @ and adjust stack ! sub lr, fp, sp @ cif->bytes == fp - sp ! ldr ip, [fp] @ load fn() in advance ! cmp lr, #16 ! movhs lr, #16 ! add sp, sp, lr @ call (fn) (...) call_reg(ip) @ Remove the space we pushed for the args *************** LSYM(Lepilogue): *** 230,235 **** --- 228,234 ---- UNWIND .fnend .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV) + /* unsigned int FFI_HIDDEN ffi_closure_SYSV_inner (closure, respp, args) *************** ARM_FUNC_START ffi_closure_SYSV *** 244,250 **** stmfd sp!, {ip, lr} UNWIND .save {r0, lr} add r2, sp, #8 ! .pad #16 sub sp, sp, #16 str sp, [sp, #8] add r1, sp, #8 --- 243,249 ---- stmfd sp!, {ip, lr} UNWIND .save {r0, lr} add r2, sp, #8 ! UNWIND .pad #16 sub sp, sp, #16 str sp, [sp, #8] add r1, sp, #8 *************** ARM_FUNC_START ffi_closure_SYSV *** 302,307 **** --- 301,466 ---- UNWIND .fnend .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV) + + /* Below are VFP hard-float ABI call and closure implementations. + Add VFP FPU directive here. */ + .fpu vfp + + @ r0: fn + @ r1: &ecif + @ r2: cif->bytes + @ r3: fig->flags + @ sp+0: ecif.rvalue + + ARM_FUNC_START ffi_call_VFP + @ Save registers + stmfd sp!, {r0-r3, fp, lr} + UNWIND .save {r0-r3, fp, lr} + mov fp, sp + UNWIND .setfp fp, sp + + @ Make room for all of the new args. + sub sp, sp, r2 + + @ Make room for loading VFP args + sub sp, sp, #64 + + @ Place all of the ffi_prep_args in position + mov r0, sp + @ r1 already set + sub r2, fp, #64 @ VFP scratch space + + @ Call ffi_prep_args(stack, &ecif, vfp_space) + bl ffi_prep_args + + @ Load VFP register args if needed + cmp r0, #0 + beq LSYM(Lbase_args) + + @ Load only d0 if possible + cmp r0, #3 + sub ip, fp, #64 + flddle d0, [ip] + fldmiadgt ip, {d0-d7} + + LSYM(Lbase_args): + @ move first 4 parameters in registers + ldmia sp, {r0-r3} + + @ and adjust stack + sub lr, ip, sp @ cif->bytes == (fp - 64) - sp + ldr ip, [fp] @ load fn() in advance + cmp lr, #16 + movhs lr, #16 + add sp, sp, lr + + @ call (fn) (...) + call_reg(ip) + + @ Remove the space we pushed for the args + mov sp, fp + + @ Load r2 with the pointer to storage for + @ the return value + ldr r2, [sp, #24] + + @ Load r3 with the return type code + ldr r3, [sp, #12] + + @ If the return value pointer is NULL, + @ assume no return value. + cmp r2, #0 + beq LSYM(Lepilogue_vfp) + + cmp r3, #FFI_TYPE_INT + streq r0, [r2] + beq LSYM(Lepilogue_vfp) + + cmp r3, #FFI_TYPE_SINT64 + stmeqia r2, {r0, r1} + beq LSYM(Lepilogue_vfp) + + cmp r3, #FFI_TYPE_FLOAT + fstseq s0, [r2] + beq LSYM(Lepilogue_vfp) + + cmp r3, #FFI_TYPE_DOUBLE + fstdeq d0, [r2] + beq LSYM(Lepilogue_vfp) + + cmp r3, #FFI_TYPE_STRUCT_VFP_FLOAT + cmpne r3, #FFI_TYPE_STRUCT_VFP_DOUBLE + fstmiadeq r2, {d0-d3} + + LSYM(Lepilogue_vfp): + RETLDM "r0-r3,fp" + + .ffi_call_VFP_end: + UNWIND .fnend + .size CNAME(ffi_call_VFP),.ffi_call_VFP_end-CNAME(ffi_call_VFP) + + + ARM_FUNC_START ffi_closure_VFP + fstmfdd sp!, {d0-d7} + @ r0-r3, then d0-d7 + UNWIND .pad #80 + add ip, sp, #80 + stmfd sp!, {ip, lr} + UNWIND .save {r0, lr} + add r2, sp, #72 + add r3, sp, #8 + UNWIND .pad #72 + sub sp, sp, #72 + str sp, [sp, #64] + add r1, sp, #64 + bl ffi_closure_SYSV_inner + + cmp r0, #FFI_TYPE_INT + beq .Lretint_vfp + + cmp r0, #FFI_TYPE_FLOAT + beq .Lretfloat_vfp + + cmp r0, #FFI_TYPE_DOUBLE + cmpne r0, #FFI_TYPE_LONGDOUBLE + beq .Lretdouble_vfp + + cmp r0, #FFI_TYPE_SINT64 + beq .Lretlonglong_vfp + + cmp r0, #FFI_TYPE_STRUCT_VFP_FLOAT + beq .Lretfloat_struct_vfp + + cmp r0, #FFI_TYPE_STRUCT_VFP_DOUBLE + beq .Lretdouble_struct_vfp + + .Lclosure_epilogue_vfp: + add sp, sp, #72 + ldmfd sp, {sp, pc} + + .Lretfloat_vfp: + flds s0, [sp] + b .Lclosure_epilogue_vfp + .Lretdouble_vfp: + fldd d0, [sp] + b .Lclosure_epilogue_vfp + .Lretint_vfp: + ldr r0, [sp] + b .Lclosure_epilogue_vfp + .Lretlonglong_vfp: + ldmia sp, {r0, r1} + b .Lclosure_epilogue_vfp + .Lretfloat_struct_vfp: + fldmiad sp, {d0-d1} + b .Lclosure_epilogue_vfp + .Lretdouble_struct_vfp: + fldmiad sp, {d0-d3} + b .Lclosure_epilogue_vfp + + .ffi_closure_VFP_end: + UNWIND .fnend + .size CNAME(ffi_closure_VFP),.ffi_closure_VFP_end-CNAME(ffi_closure_VFP) + #if defined __ELF__ && defined __linux__ .section .note.GNU-stack,"",%progbits #endif diff -Nrcpad gcc-4.5.2/libffi/src/closures.c gcc-4.6.0/libffi/src/closures.c *** gcc-4.5.2/libffi/src/closures.c Sat Dec 26 18:49:55 2009 --- gcc-4.6.0/libffi/src/closures.c Mon Jan 3 20:52:22 2011 *************** *** 1,6 **** /* ----------------------------------------------------------------------- closures.c - Copyright (c) 2007 Red Hat, Inc. ! Copyright (C) 2007, 2009 Free Software Foundation, Inc Code to allocate and deallocate memory for closures. --- 1,6 ---- /* ----------------------------------------------------------------------- closures.c - Copyright (c) 2007 Red Hat, Inc. ! Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc Code to allocate and deallocate memory for closures. *************** *** 44,50 **** # define FFI_MMAP_EXEC_WRIT 1 # define HAVE_MNTENT 1 # endif ! # if defined(X86_WIN32) || defined(X86_WIN64) /* Windows systems may have Data Execution Protection (DEP) enabled, which requires the use of VirtualMalloc/VirtualFree to alloc/free executable memory. */ --- 44,50 ---- # define FFI_MMAP_EXEC_WRIT 1 # define HAVE_MNTENT 1 # endif ! # if defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__) /* Windows systems may have Data Execution Protection (DEP) enabled, which requires the use of VirtualMalloc/VirtualFree to alloc/free executable memory. */ *************** selinux_enabled_check (void) *** 146,152 **** p = strchr (p + 1, ' '); if (p == NULL) break; ! if (strncmp (p + 1, "selinuxfs ", 10) != 0) { free (buf); fclose (f); --- 146,152 ---- p = strchr (p + 1, ' '); if (p == NULL) break; ! if (strncmp (p + 1, "selinuxfs ", 10) == 0) { free (buf); fclose (f); *************** static int dlmalloc_trim(size_t) MAYBE_U *** 193,203 **** static size_t dlmalloc_usable_size(void*) MAYBE_UNUSED; static void dlmalloc_stats(void) MAYBE_UNUSED; ! #if !(defined(X86_WIN32) || defined(X86_WIN64)) || defined (__CYGWIN__) /* Use these for mmap and munmap within dlmalloc.c. */ static void *dlmmap(void *, size_t, int, int, int, off_t); static int dlmunmap(void *, size_t); ! #endif /* !(defined(X86_WIN32) || defined(X86_WIN64)) || defined (__CYGWIN__) */ #define mmap dlmmap #define munmap dlmunmap --- 193,203 ---- static size_t dlmalloc_usable_size(void*) MAYBE_UNUSED; static void dlmalloc_stats(void) MAYBE_UNUSED; ! #if !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) /* Use these for mmap and munmap within dlmalloc.c. */ static void *dlmmap(void *, size_t, int, int, int, off_t); static int dlmunmap(void *, size_t); ! #endif /* !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) */ #define mmap dlmmap #define munmap dlmunmap *************** static int dlmunmap(void *, size_t); *** 207,213 **** #undef mmap #undef munmap ! #if !(defined(X86_WIN32) || defined(X86_WIN64)) || defined (__CYGWIN__) /* A mutex used to synchronize access to *exec* variables in this file. */ static pthread_mutex_t open_temp_exec_file_mutex = PTHREAD_MUTEX_INITIALIZER; --- 207,213 ---- #undef mmap #undef munmap ! #if !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) /* A mutex used to synchronize access to *exec* variables in this file. */ static pthread_mutex_t open_temp_exec_file_mutex = PTHREAD_MUTEX_INITIALIZER; *************** open_temp_exec_file_mnt (const char *mou *** 294,300 **** struct mntent mnt; char buf[MAXPATHLEN * 3]; ! if (getmntent_r (last_mntent, &mnt, buf, sizeof (buf))) return -1; if (hasmntopt (&mnt, "ro") --- 294,300 ---- struct mntent mnt; char buf[MAXPATHLEN * 3]; ! if (getmntent_r (last_mntent, &mnt, buf, sizeof (buf)) == NULL) return -1; if (hasmntopt (&mnt, "ro") *************** segment_holding_code (mstate m, char* ad *** 522,528 **** } #endif ! #endif /* !(defined(X86_WIN32) || defined(X86_WIN64)) || defined (__CYGWIN__) */ /* Allocate a chunk of memory with the given size. Returns a pointer to the writable address, and sets *CODE to the executable --- 522,528 ---- } #endif ! #endif /* !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) */ /* Allocate a chunk of memory with the given size. Returns a pointer to the writable address, and sets *CODE to the executable diff -Nrcpad gcc-4.5.2/libffi/src/dlmalloc.c gcc-4.6.0/libffi/src/dlmalloc.c *** gcc-4.5.2/libffi/src/dlmalloc.c Fri Jun 12 15:57:58 2009 --- gcc-4.6.0/libffi/src/dlmalloc.c Fri Aug 6 12:36:26 2010 *************** DEFAULT_MMAP_THRESHOLD default: 25 *** 459,464 **** --- 459,472 ---- #define MMAP_CLEARS 0 /* WINCE and some others apparently don't clear */ #endif /* WIN32 */ + #ifdef __OS2__ + #define INCL_DOS + #include + #define HAVE_MMAP 1 + #define HAVE_MORECORE 0 + #define LACKS_SYS_MMAN_H + #endif /* __OS2__ */ + #if defined(DARWIN) || defined(_DARWIN) /* Mac OSX docs advise not to use sbrk; it seems better to use mmap */ #ifndef HAVE_MORECORE *************** extern void* sbrk(ptrdiff_t); *** 1288,1294 **** #define IS_MMAPPED_BIT (SIZE_T_ONE) #define USE_MMAP_BIT (SIZE_T_ONE) ! #ifndef WIN32 #define CALL_MUNMAP(a, s) munmap((a), (s)) #define MMAP_PROT (PROT_READ|PROT_WRITE) #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) --- 1296,1302 ---- #define IS_MMAPPED_BIT (SIZE_T_ONE) #define USE_MMAP_BIT (SIZE_T_ONE) ! #if !defined(WIN32) && !defined (__OS2__) #define CALL_MUNMAP(a, s) munmap((a), (s)) #define MMAP_PROT (PROT_READ|PROT_WRITE) #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) *************** static int dev_zero_fd = -1; /* Cached f *** 1311,1316 **** --- 1319,1360 ---- #endif /* MAP_ANONYMOUS */ #define DIRECT_MMAP(s) CALL_MMAP(s) + + #elif defined(__OS2__) + + /* OS/2 MMAP via DosAllocMem */ + static void* os2mmap(size_t size) { + void* ptr; + if (DosAllocMem(&ptr, size, OBJ_ANY|PAG_COMMIT|PAG_READ|PAG_WRITE) && + DosAllocMem(&ptr, size, PAG_COMMIT|PAG_READ|PAG_WRITE)) + return MFAIL; + return ptr; + } + + #define os2direct_mmap(n) os2mmap(n) + + /* This function supports releasing coalesed segments */ + static int os2munmap(void* ptr, size_t size) { + while (size) { + ULONG ulSize = size; + ULONG ulFlags = 0; + if (DosQueryMem(ptr, &ulSize, &ulFlags) != 0) + return -1; + if ((ulFlags & PAG_BASE) == 0 ||(ulFlags & PAG_COMMIT) == 0 || + ulSize > size) + return -1; + if (DosFreeMem(ptr) != 0) + return -1; + ptr = ( void * ) ( ( char * ) ptr + ulSize ); + size -= ulSize; + } + return 0; + } + + #define CALL_MMAP(s) os2mmap(s) + #define CALL_MUNMAP(a, s) os2munmap((a), (s)) + #define DIRECT_MMAP(s) os2direct_mmap(s) + #else /* WIN32 */ /* Win32 MMAP via VirtualAlloc */ *************** static int win32munmap(void* ptr, size_t *** 1387,1393 **** unique mparams values are initialized only once. */ ! #ifndef WIN32 /* By default use posix locks */ #include #define MLOCK_T pthread_mutex_t --- 1431,1437 ---- unique mparams values are initialized only once. */ ! #if !defined(WIN32) && !defined(__OS2__) /* By default use posix locks */ #include #define MLOCK_T pthread_mutex_t *************** static MLOCK_T morecore_mutex = PTHREAD_ *** 1401,1406 **** --- 1445,1460 ---- static MLOCK_T magic_init_mutex = PTHREAD_MUTEX_INITIALIZER; + #elif defined(__OS2__) + #define MLOCK_T HMTX + #define INITIAL_LOCK(l) DosCreateMutexSem(0, l, 0, FALSE) + #define ACQUIRE_LOCK(l) DosRequestMutexSem(*l, SEM_INDEFINITE_WAIT) + #define RELEASE_LOCK(l) DosReleaseMutexSem(*l) + #if HAVE_MORECORE + static MLOCK_T morecore_mutex; + #endif /* HAVE_MORECORE */ + static MLOCK_T magic_init_mutex; + #else /* WIN32 */ /* Because lock-protected regions have bounded times, and there *************** static int init_mparams(void) { *** 2492,2501 **** } RELEASE_MAGIC_INIT_LOCK(); ! #ifndef WIN32 mparams.page_size = malloc_getpagesize; mparams.granularity = ((DEFAULT_GRANULARITY != 0)? DEFAULT_GRANULARITY : mparams.page_size); #else /* WIN32 */ { SYSTEM_INFO system_info; --- 2546,2560 ---- } RELEASE_MAGIC_INIT_LOCK(); ! #if !defined(WIN32) && !defined(__OS2__) mparams.page_size = malloc_getpagesize; mparams.granularity = ((DEFAULT_GRANULARITY != 0)? DEFAULT_GRANULARITY : mparams.page_size); + #elif defined (__OS2__) + /* if low-memory is used, os2munmap() would break + if it were anything other than 64k */ + mparams.page_size = 4096u; + mparams.granularity = 65536u; #else /* WIN32 */ { SYSTEM_INFO system_info; *************** void* dlmalloc(size_t bytes) { *** 4192,4198 **** void dlfree(void* mem) { /* ! Consolidate freed chunks with preceeding or succeeding bordering free chunks, if they exist, and then place in a bin. Intermixed with special cases for top, dv, mmapped chunks, and usage errors. */ --- 4251,4257 ---- void dlfree(void* mem) { /* ! Consolidate freed chunks with preceding or succeeding bordering free chunks, if they exist, and then place in a bin. Intermixed with special cases for top, dv, mmapped chunks, and usage errors. */ diff -Nrcpad gcc-4.5.2/libffi/src/ia64/ffi.c gcc-4.6.0/libffi/src/ia64/ffi.c *** gcc-4.5.2/libffi/src/ia64/ffi.c Thu Jun 4 15:43:03 2009 --- gcc-4.6.0/libffi/src/ia64/ffi.c Fri Aug 6 05:45:23 2010 *************** ffi_prep_cif_machdep(ffi_cif *cif) *** 225,231 **** int flags; /* Adjust cif->bytes to include space for the bits of the ia64_args frame ! that preceeds the integer register portion. The estimate that the generic bits did for the argument space required is good enough for the integer component. */ cif->bytes += offsetof(struct ia64_args, gp_regs[0]); --- 225,231 ---- int flags; /* Adjust cif->bytes to include space for the bits of the ia64_args frame ! that precedes the integer register portion. The estimate that the generic bits did for the argument space required is good enough for the integer component. */ cif->bytes += offsetof(struct ia64_args, gp_regs[0]); diff -Nrcpad gcc-4.5.2/libffi/src/m68k/ffi.c gcc-4.6.0/libffi/src/m68k/ffi.c *** gcc-4.5.2/libffi/src/m68k/ffi.c Thu May 10 21:29:04 2007 --- gcc-4.6.0/libffi/src/m68k/ffi.c Tue Feb 8 19:19:01 2011 *************** *** 9,16 **** --- 9,20 ---- #include #include + #ifdef __rtems__ + void rtems_cache_flush_multiple_data_lines( const void *, size_t ); + #else #include #include + #endif void ffi_call_SYSV (extended_cif *, unsigned, unsigned, *************** ffi_prep_cif_machdep (ffi_cif *cif) *** 144,152 **** --- 148,158 ---- cif->flags = CIF_FLAGS_DOUBLE; break; + #if (FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE) case FFI_TYPE_LONGDOUBLE: cif->flags = CIF_FLAGS_LDOUBLE; break; + #endif case FFI_TYPE_POINTER: cif->flags = CIF_FLAGS_POINTER; *************** ffi_prep_closure_loc (ffi_closure* closu *** 266,273 **** --- 272,283 ---- else *(void **)(closure->tramp + 8) = ffi_closure_SYSV; + #ifdef __rtems__ + rtems_cache_flush_multiple_data_lines( codeloc, FFI_TRAMPOLINE_SIZE ); + #else syscall(SYS_cacheflush, codeloc, FLUSH_SCOPE_LINE, FLUSH_CACHE_BOTH, FFI_TRAMPOLINE_SIZE); + #endif closure->cif = cif; closure->user_data = user_data; diff -Nrcpad gcc-4.5.2/libffi/src/m68k/sysv.S gcc-4.6.0/libffi/src/m68k/sysv.S *** gcc-4.5.2/libffi/src/m68k/sysv.S Thu Jun 4 15:43:03 2009 --- gcc-4.6.0/libffi/src/m68k/sysv.S Tue Feb 8 19:19:01 2011 *************** *** 1,4 **** --- 1,5 ---- /* ----------------------------------------------------------------------- + sysv.S - Copyright (c) 1998 Andreas Schwab Copyright (c) 2008 Red Hat, Inc. *************** ffi_call_SYSV: *** 85,91 **** --- 86,97 ---- move.l 16(%fp),%d2 | If the return value pointer is NULL, assume no return value. + | NOTE: On the mc68000, tst on an address register is not supported. + #if defined(__mc68000__) && !defined(__mcoldfire__) + cmp.w #0, %a1 + #else tst.l %a1 + #endif jbeq noretval btst #0,%d2 *************** retlongint: *** 103,121 **** --- 109,142 ---- retfloat: btst #2,%d2 jbeq retdouble + #if defined(__MC68881__) fmove.s %fp0,(%a1) + #else + move.l %d0,(%a1) + #endif jbra epilogue retdouble: btst #3,%d2 jbeq retlongdouble + #if defined(__MC68881__) fmove.d %fp0,(%a1) + #else + move.l %d0,(%a1)+ + move.l %d1,(%a1) + #endif jbra epilogue retlongdouble: btst #4,%d2 jbeq retpointer + #if defined(__MC68881__) fmove.x %fp0,(%a1) + #else + move.l %d0,(%a1)+ + move.l %d1,(%a1)+ + move.l %d2,(%a1) + #endif jbra epilogue retpointer: *************** ffi_closure_SYSV: *** 178,193 **** --- 199,229 ---- move.l (%a0),%d1 jra .Lcls_epilogue .Lcls_ret_float: + #if defined(__MC68881__) fmove.s (%a0),%fp0 + #else + move.l (%a0),%d0 + #endif jra .Lcls_epilogue 1: lsr.l #2,%d0 jne 1f jcs .Lcls_ret_ldouble + #if defined(__MC68881__) fmove.d (%a0),%fp0 + #else + move.l (%a0)+,%d0 + move.l (%a0),%d1 + #endif jra .Lcls_epilogue .Lcls_ret_ldouble: + #if defined(__MC68881__) fmove.x (%a0),%fp0 + #else + move.l (%a0)+,%d0 + move.l (%a0)+,%d1 + move.l (%a0),%d2 + #endif jra .Lcls_epilogue 1: lsr.l #2,%d0 diff -Nrcpad gcc-4.5.2/libffi/src/mips/ffitarget.h gcc-4.6.0/libffi/src/mips/ffitarget.h *** gcc-4.5.2/libffi/src/mips/ffitarget.h Sat Dec 26 04:59:25 2009 --- gcc-4.6.0/libffi/src/mips/ffitarget.h Tue Feb 8 19:17:55 2011 *************** *** 29,37 **** --- 29,45 ---- #ifdef linux # include + #elif defined(__rtems__) + /* + * Subprogram calling convention - copied from sgidefs.h + */ + #define _MIPS_SIM_ABI32 1 + #define _MIPS_SIM_NABI32 2 + #define _MIPS_SIM_ABI64 3 #else # include #endif + # ifndef _ABIN32 # define _ABIN32 _MIPS_SIM_NABI32 # endif diff -Nrcpad gcc-4.5.2/libffi/src/powerpc/darwin.S gcc-4.6.0/libffi/src/powerpc/darwin.S *** gcc-4.5.2/libffi/src/powerpc/darwin.S Thu Mar 24 00:45:38 2005 --- gcc-4.6.0/libffi/src/powerpc/darwin.S Sat Dec 18 08:56:46 2010 *************** *** 1,6 **** /* ----------------------------------------------------------------------- darwin.S - Copyright (c) 2000 John Hornkvist ! Copyright (c) 2004 Free Software Foundation, Inc. PowerPC Assembly glue. --- 1,6 ---- /* ----------------------------------------------------------------------- darwin.S - Copyright (c) 2000 John Hornkvist ! Copyright (c) 2004, 2010 Free Software Foundation, Inc. PowerPC Assembly glue. *************** *** 24,74 **** OTHER DEALINGS IN THE SOFTWARE. ----------------------------------------------------------------------- */ #if defined(__ppc64__) #define MODE_CHOICE(x, y) y #else #define MODE_CHOICE(x, y) x #endif ! #define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */ ! #define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */ - #define LIBFFI_ASM #include #include #define JUMPTARGET(name) name #define L(x) x - .text - .align 2 - .globl _ffi_prep_args ! .text .align 2 ! .globl _ffi_call_DARWIN ! .text .align 2 _ffi_call_DARWIN: ! LFB0: mr r12,r8 /* We only need r12 until the call, ! so it doesn't have to be saved. */ LFB1: /* Save the old stack pointer as AP. */ mr r8,r1 LCFI0: /* Allocate the stack space we need. */ ! stwux r1,r1,r4 /* Save registers we use. */ mflr r9 ! stw r28,-16(r8) ! stw r29,-12(r8) ! stw r30,-8(r8) ! stw r31,-4(r8) - stw r9,8(r8) - stw r2,20(r1) LCFI1: /* Save arguments over call. */ --- 24,115 ---- OTHER DEALINGS IN THE SOFTWARE. ----------------------------------------------------------------------- */ + #define LIBFFI_ASM #if defined(__ppc64__) #define MODE_CHOICE(x, y) y #else #define MODE_CHOICE(x, y) x #endif ! #define machine_choice MODE_CHOICE(ppc7400,ppc64) ! ; Define some pseudo-opcodes for size-independent load & store of GPRs ... ! #define lgu MODE_CHOICE(lwzu, ldu) ! #define lg MODE_CHOICE(lwz,ld) ! #define sg MODE_CHOICE(stw,std) ! #define sgu MODE_CHOICE(stwu,stdu) ! #define sgux MODE_CHOICE(stwux,stdux) ! ! ; ... and the size of GPRs and their storage indicator. ! #define GPR_BYTES MODE_CHOICE(4,8) ! #define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */ ! #define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */ ! ! ; From the ABI doc: "Mac OS X ABI Function Call Guide" Version 2009-02-04. ! #define LINKAGE_SIZE MODE_CHOICE(24,48) ! #define PARAM_AREA MODE_CHOICE(32,64) ! #define SAVED_LR_OFFSET MODE_CHOICE(8,16) /* save position for lr */ ! ! /* If there is any FP stuff we make space for all of the regs. */ ! #define SAVED_FPR_COUNT 13 ! #define FPR_SIZE 8 ! #define RESULT_BYTES 16 ! ! /* This should be kept in step with the same value in ffi_darwin.c. */ ! #define ASM_NEEDS_REGISTERS 4 ! #define SAVE_REGS_SIZE (ASM_NEEDS_REGISTERS * GPR_BYTES) #include #include + #define JUMPTARGET(name) name #define L(x) x ! .text .align 2 ! .globl _ffi_prep_args ! .align 2 + .globl _ffi_call_DARWIN + + /* We arrive here with: + r3 = ptr to extended cif. + r4 = -bytes. + r5 = cif flags. + r6 = ptr to return value. + r7 = fn pointer (user func). + r8 = fn pointer (ffi_prep_args). + r9 = ffi_type* for the ret val. */ + _ffi_call_DARWIN: ! Lstartcode: mr r12,r8 /* We only need r12 until the call, ! so it does not have to be saved. */ LFB1: /* Save the old stack pointer as AP. */ mr r8,r1 LCFI0: + + /* Save the retval type in parents frame. */ + sg r9,(LINKAGE_SIZE+6*GPR_BYTES)(r8) + /* Allocate the stack space we need. */ ! sgux r1,r1,r4 /* Save registers we use. */ mflr r9 + sg r9,SAVED_LR_OFFSET(r8) ! sg r28,-(4 * GPR_BYTES)(r8) ! sg r29,-(3 * GPR_BYTES)(r8) ! sg r30,-(2 * GPR_BYTES)(r8) ! sg r31,-( GPR_BYTES)(r8) ! ! #if !defined(POWERPC_DARWIN) ! /* The TOC slot is reserved in the Darwin ABI and r2 is volatile. */ ! sg r2,(5 * GPR_BYTES)(r1) ! #endif LCFI1: /* Save arguments over call. */ *************** LCFI1: *** 77,90 **** mr r29,r7 /* function address, */ mr r28,r8 /* our AP. */ LCFI2: ! /* Call ffi_prep_args. */ mr r4,r1 li r9,0 mtctr r12 /* r12 holds address of _ffi_prep_args. */ bctrl - lwz r2,20(r1) /* Now do the call. Set up cr1 with bits 4-7 of the flags. */ mtcrf 0x40,r31 --- 118,134 ---- mr r29,r7 /* function address, */ mr r28,r8 /* our AP. */ LCFI2: ! /* Call ffi_prep_args. r3 = extended cif, r4 = stack ptr copy. */ mr r4,r1 li r9,0 mtctr r12 /* r12 holds address of _ffi_prep_args. */ bctrl + #if !defined(POWERPC_DARWIN) + /* The TOC slot is reserved in the Darwin ABI and r2 is volatile. */ + lg r2,(5 * GPR_BYTES)(r1) + #endif /* Now do the call. Set up cr1 with bits 4-7 of the flags. */ mtcrf 0x40,r31 *************** LCFI2: *** 92,162 **** mtctr r29 /* Load all those argument registers. We have set up a nice stack frame, just load it into registers. */ ! lwz r3,20+(1*4)(r1) ! lwz r4,20+(2*4)(r1) ! lwz r5,20+(3*4)(r1) ! lwz r6,20+(4*4)(r1) nop ! lwz r7,20+(5*4)(r1) ! lwz r8,20+(6*4)(r1) ! lwz r9,20+(7*4)(r1) ! lwz r10,20+(8*4)(r1) L1: ! /* Load all the FP registers. */ bf 6,L2 /* No floats to load. */ ! lfd f1,-16-(13*8)(r28) ! lfd f2,-16-(12*8)(r28) ! lfd f3,-16-(11*8)(r28) ! lfd f4,-16-(10*8)(r28) nop ! lfd f5,-16-(9*8)(r28) ! lfd f6,-16-(8*8)(r28) ! lfd f7,-16-(7*8)(r28) ! lfd f8,-16-(6*8)(r28) nop ! lfd f9,-16-(5*8)(r28) ! lfd f10,-16-(4*8)(r28) ! lfd f11,-16-(3*8)(r28) ! lfd f12,-16-(2*8)(r28) nop ! lfd f13,-16-(1*8)(r28) L2: mr r12,r29 /* Put the target address in r12 as specified. */ mtctr r12 nop nop /* Make the call. */ bctrl /* Now, deal with the return value. */ - mtcrf 0x01,r31 ! bt 30,L(done_return_value) ! bt 29,L(fp_return_value) ! stw r3,0(r30) ! bf 28,L(done_return_value) ! stw r4,4(r30) ! /* Fall through. */ ! L(done_return_value): ! /* Restore the registers we used and return. */ ! lwz r9,8(r28) ! lwz r31,-4(r28) ! mtlr r9 ! lwz r30,-8(r28) ! lwz r29,-12(r28) ! lwz r28,-16(r28) ! lwz r1,0(r1) ! blr L(fp_return_value): /* Do we have long double to store? */ ! bf 31,L(fd_return_value) stfd f1,0(r30) ! stfd f2,8(r30) b L(done_return_value) L(fd_return_value): --- 136,265 ---- mtctr r29 /* Load all those argument registers. We have set up a nice stack frame, just load it into registers. */ ! lg r3, (LINKAGE_SIZE )(r1) ! lg r4, (LINKAGE_SIZE + GPR_BYTES)(r1) ! lg r5, (LINKAGE_SIZE + 2 * GPR_BYTES)(r1) ! lg r6, (LINKAGE_SIZE + 3 * GPR_BYTES)(r1) nop ! lg r7, (LINKAGE_SIZE + 4 * GPR_BYTES)(r1) ! lg r8, (LINKAGE_SIZE + 5 * GPR_BYTES)(r1) ! lg r9, (LINKAGE_SIZE + 6 * GPR_BYTES)(r1) ! lg r10,(LINKAGE_SIZE + 7 * GPR_BYTES)(r1) L1: ! /* ... Load all the FP registers. */ bf 6,L2 /* No floats to load. */ ! lfd f1, -SAVE_REGS_SIZE-(13*FPR_SIZE)(r28) ! lfd f2, -SAVE_REGS_SIZE-(12*FPR_SIZE)(r28) ! lfd f3, -SAVE_REGS_SIZE-(11*FPR_SIZE)(r28) ! lfd f4, -SAVE_REGS_SIZE-(10*FPR_SIZE)(r28) nop ! lfd f5, -SAVE_REGS_SIZE-( 9*FPR_SIZE)(r28) ! lfd f6, -SAVE_REGS_SIZE-( 8*FPR_SIZE)(r28) ! lfd f7, -SAVE_REGS_SIZE-( 7*FPR_SIZE)(r28) ! lfd f8, -SAVE_REGS_SIZE-( 6*FPR_SIZE)(r28) nop ! lfd f9, -SAVE_REGS_SIZE-( 5*FPR_SIZE)(r28) ! lfd f10,-SAVE_REGS_SIZE-( 4*FPR_SIZE)(r28) ! lfd f11,-SAVE_REGS_SIZE-( 3*FPR_SIZE)(r28) ! lfd f12,-SAVE_REGS_SIZE-( 2*FPR_SIZE)(r28) nop ! lfd f13,-SAVE_REGS_SIZE-( 1*FPR_SIZE)(r28) L2: mr r12,r29 /* Put the target address in r12 as specified. */ mtctr r12 nop nop + /* Make the call. */ bctrl /* Now, deal with the return value. */ ! /* m64 structure returns can occupy the same set of registers as ! would be used to pass such a structure as arg0 - so take care ! not to step on any possibly hot regs. */ ! /* Get the flags.. */ ! mtcrf 0x03,r31 ; we need c6 & cr7 now. ! ; FLAG_RETURNS_NOTHING also covers struct ret-by-ref. ! bt 30,L(done_return_value) ; FLAG_RETURNS_NOTHING ! bf 27,L(scalar_return_value) ; not FLAG_RETURNS_STRUCT ! ! /* OK, so we have a struct. */ ! #if defined(__ppc64__) ! bt 31,L(maybe_return_128) ; FLAG_RETURNS_128BITS, special case ! /* OK, we have to map the return back to a mem struct. ! We are about to trample the parents param area, so recover the ! return type. r29 is free, since the call is done. */ ! lg r29,(LINKAGE_SIZE + 6 * GPR_BYTES)(r28) ! ! sg r3, (LINKAGE_SIZE )(r28) ! sg r4, (LINKAGE_SIZE + GPR_BYTES)(r28) ! sg r5, (LINKAGE_SIZE + 2 * GPR_BYTES)(r28) ! sg r6, (LINKAGE_SIZE + 3 * GPR_BYTES)(r28) ! nop ! sg r7, (LINKAGE_SIZE + 4 * GPR_BYTES)(r28) ! sg r8, (LINKAGE_SIZE + 5 * GPR_BYTES)(r28) ! sg r9, (LINKAGE_SIZE + 6 * GPR_BYTES)(r28) ! sg r10,(LINKAGE_SIZE + 7 * GPR_BYTES)(r28) ! /* OK, so do the block move - we trust that memcpy will not trample ! the fprs... */ ! mr r3,r30 ; dest ! addi r4,r28,LINKAGE_SIZE ; source ! /* The size is a size_t, should be long. */ ! lg r5,0(r29) ! /* Figure out small structs */ ! cmpi 0,r5,4 ! bgt L3 ; 1, 2 and 4 bytes have special rules. ! cmpi 0,r5,3 ! beq L3 ; not 3 ! addi r4,r4,8 ! subf r4,r5,r4 ! L3: ! bl _memcpy ! ! /* ... do we need the FP registers? - recover the flags.. */ ! mtcrf 0x03,r31 ; we need c6 & cr7 now. ! bf 29,L(done_return_value) /* No floats in the struct. */ ! stfd f1, -SAVE_REGS_SIZE-(13*FPR_SIZE)(r28) ! stfd f2, -SAVE_REGS_SIZE-(12*FPR_SIZE)(r28) ! stfd f3, -SAVE_REGS_SIZE-(11*FPR_SIZE)(r28) ! stfd f4, -SAVE_REGS_SIZE-(10*FPR_SIZE)(r28) ! nop ! stfd f5, -SAVE_REGS_SIZE-( 9*FPR_SIZE)(r28) ! stfd f6, -SAVE_REGS_SIZE-( 8*FPR_SIZE)(r28) ! stfd f7, -SAVE_REGS_SIZE-( 7*FPR_SIZE)(r28) ! stfd f8, -SAVE_REGS_SIZE-( 6*FPR_SIZE)(r28) ! nop ! stfd f9, -SAVE_REGS_SIZE-( 5*FPR_SIZE)(r28) ! stfd f10,-SAVE_REGS_SIZE-( 4*FPR_SIZE)(r28) ! stfd f11,-SAVE_REGS_SIZE-( 3*FPR_SIZE)(r28) ! stfd f12,-SAVE_REGS_SIZE-( 2*FPR_SIZE)(r28) ! nop ! stfd f13,-SAVE_REGS_SIZE-( 1*FPR_SIZE)(r28) ! ! mr r3,r29 ; ffi_type * ! mr r4,r30 ; dest ! addi r5,r28,-SAVE_REGS_SIZE-(13*FPR_SIZE) ; fprs ! xor r6,r6,r6 ! sg r6,(LINKAGE_SIZE + 7 * GPR_BYTES)(r28) ! addi r6,r28,(LINKAGE_SIZE + 7 * GPR_BYTES) ; point to a zeroed counter. ! bl _darwin64_struct_floats_to_mem ! ! b L(done_return_value) ! #else ! stw r3,0(r30) ; m32 the only struct return in reg is 4 bytes. ! #endif ! b L(done_return_value) L(fp_return_value): /* Do we have long double to store? */ ! bf 31,L(fd_return_value) ; FLAG_RETURNS_128BITS stfd f1,0(r30) ! stfd f2,FPR_SIZE(r30) b L(done_return_value) L(fd_return_value): *************** L(float_return_value): *** 170,190 **** stfs f1,0(r30) b L(done_return_value) LFE1: /* END(_ffi_call_DARWIN) */ /* Provide a null definition of _ffi_call_AIX. */ ! .text ! .align 2 ! .globl _ffi_call_AIX ! .text .align 2 _ffi_call_AIX: blr /* END(_ffi_call_AIX) */ ! .data ! .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 ; Length of Common Information Entry --- 273,329 ---- stfs f1,0(r30) b L(done_return_value) + L(scalar_return_value): + bt 29,L(fp_return_value) ; FLAG_RETURNS_FP + ; ffi_arg is defined as unsigned long. + sg r3,0(r30) ; Save the reg. + bf 28,L(done_return_value) ; not FLAG_RETURNS_64BITS + + #if defined(__ppc64__) + L(maybe_return_128): + std r3,0(r30) + bf 31,L(done_return_value) ; not FLAG_RETURNS_128BITS + std r4,8(r30) + #else + stw r4,4(r30) + #endif + + /* Fall through. */ + /* We want this at the end to simplify eh epilog computation. */ + + L(done_return_value): + /* Restore the registers we used and return. */ + lg r29,SAVED_LR_OFFSET(r28) + ; epilog + lg r31,-(1 * GPR_BYTES)(r28) + mtlr r29 + lg r30,-(2 * GPR_BYTES)(r28) + lg r29,-(3 * GPR_BYTES)(r28) + lg r28,-(4 * GPR_BYTES)(r28) + lg r1,0(r1) + blr LFE1: + .align 1 /* END(_ffi_call_DARWIN) */ /* Provide a null definition of _ffi_call_AIX. */ ! .text ! .globl _ffi_call_AIX .align 2 _ffi_call_AIX: blr /* END(_ffi_call_AIX) */ ! /* EH stuff. */ ! ! #define EH_DATA_ALIGN_FACT MODE_CHOICE(0x7c,0x78) ! ! .static_data ! .align LOG2_GPR_BYTES ! LLFB0$non_lazy_ptr: ! .g_long Lstartcode ! ! .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 ; Length of Common Information Entry *************** LSCIE1: *** 193,199 **** .byte 0x1 ; CIE Version .ascii "zR\0" ; CIE Augmentation .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor ! .byte 0x7c ; sleb128 -4; CIE Data Alignment Factor .byte 0x41 ; CIE RA Column .byte 0x1 ; uleb128 0x1; Augmentation size .byte 0x90 ; FDE Encoding (indirect pcrel) --- 332,338 ---- .byte 0x1 ; CIE Version .ascii "zR\0" ; CIE Augmentation .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor ! .byte EH_DATA_ALIGN_FACT ; sleb128 -4; CIE Data Alignment Factor .byte 0x41 ; CIE RA Column .byte 0x1 ; uleb128 0x1; Augmentation size .byte 0x90 ; FDE Encoding (indirect pcrel) *************** LSCIE1: *** 202,208 **** .byte 0x0 ; uleb128 0x0 .align LOG2_GPR_BYTES LECIE1: ! .globl _ffi_call_DARWIN.eh _ffi_call_DARWIN.eh: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 --- 341,348 ---- .byte 0x0 ; uleb128 0x0 .align LOG2_GPR_BYTES LECIE1: ! ! .globl _ffi_call_DARWIN.eh _ffi_call_DARWIN.eh: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 *************** LSFDE1: *** 210,220 **** LASFDE1: .long LASFDE1-EH_frame1 ; FDE CIE offset .g_long LLFB0$non_lazy_ptr-. ; FDE initial location ! .set L$set$3,LFE1-LFB0 .g_long L$set$3 ; FDE address range .byte 0x0 ; uleb128 0x0; Augmentation size .byte 0x4 ; DW_CFA_advance_loc4 ! .set L$set$4,LCFI0-LFB1 .long L$set$4 .byte 0xd ; DW_CFA_def_cfa_register .byte 0x08 ; uleb128 0x08 --- 350,360 ---- LASFDE1: .long LASFDE1-EH_frame1 ; FDE CIE offset .g_long LLFB0$non_lazy_ptr-. ; FDE initial location ! .set L$set$3,LFE1-Lstartcode .g_long L$set$3 ; FDE address range .byte 0x0 ; uleb128 0x0; Augmentation size .byte 0x4 ; DW_CFA_advance_loc4 ! .set L$set$4,LCFI0-Lstartcode .long L$set$4 .byte 0xd ; DW_CFA_def_cfa_register .byte 0x08 ; uleb128 0x08 *************** LASFDE1: *** 239,245 **** .byte 0x1c ; uleb128 0x1c .align LOG2_GPR_BYTES LEFDE1: ! .data ! .align LOG2_GPR_BYTES ! LLFB0$non_lazy_ptr: ! .g_long LFB0 --- 379,383 ---- .byte 0x1c ; uleb128 0x1c .align LOG2_GPR_BYTES LEFDE1: ! .align 1 ! diff -Nrcpad gcc-4.5.2/libffi/src/powerpc/darwin_closure.S gcc-4.6.0/libffi/src/powerpc/darwin_closure.S *** gcc-4.5.2/libffi/src/powerpc/darwin_closure.S Thu Mar 24 00:45:38 2005 --- gcc-4.6.0/libffi/src/powerpc/darwin_closure.S Sat Dec 18 08:56:46 2010 *************** *** 1,6 **** /* ----------------------------------------------------------------------- ! darwin_closure.S - Copyright (c) 2002, 2003, 2004, Free Software Foundation, ! Inc. based on ppc_closure.S PowerPC Assembly glue. --- 1,7 ---- /* ----------------------------------------------------------------------- ! darwin_closure.S - Copyright (c) 2002, 2003, 2004, 2010, ! Free Software Foundation, Inc. ! based on ppc_closure.S PowerPC Assembly glue. *************** *** 33,123 **** #define MODE_CHOICE(x, y) x #endif ! #define lgu MODE_CHOICE(lwzu, ldu) ! #define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */ ! #define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */ .file "darwin_closure.S" - .text - .align LOG2_GPR_BYTES - .globl _ffi_closure_ASM ! .text .align LOG2_GPR_BYTES _ffi_closure_ASM: LFB1: ! mflr r0 /* extract return address */ ! stw r0,8(r1) /* save the return address */ LCFI0: ! /* 24 Bytes (Linkage Area) ! 32 Bytes (outgoing parameter area, always reserved) ! 104 Bytes (13*8 from FPR) ! 16 Bytes (result) ! 176 Bytes */ ! ! stwu r1,-176(r1) /* skip over caller save area ! keep stack aligned to 16. */ LCFI1: /* We want to build up an area for the parameters passed in registers. (both floating point and integer) */ ! /* We store gpr 3 to gpr 10 (aligned to 4) ! in the parents outgoing area. */ ! stw r3,200(r1) ! stw r4,204(r1) ! stw r5,208(r1) ! stw r6,212(r1) ! stw r7,216(r1) ! stw r8,220(r1) ! stw r9,224(r1) ! stw r10,228(r1) ! /* We save fpr 1 to fpr 13. (aligned to 8) */ ! stfd f1,56(r1) ! stfd f2,64(r1) ! stfd f3,72(r1) ! stfd f4,80(r1) ! stfd f5,88(r1) ! stfd f6,96(r1) ! stfd f7,104(r1) ! stfd f8,112(r1) ! stfd f9,120(r1) ! stfd f10,128(r1) ! stfd f11,136(r1) ! stfd f12,144(r1) ! stfd f13,152(r1) /* Set up registers for the routine that actually does the work get the context pointer from the trampoline. */ ! mr r3,r11 /* Now load up the pointer to the result storage. */ ! addi r4,r1,160 /* Now load up the pointer to the saved gpr registers. */ ! addi r5,r1,200 /* Now load up the pointer to the saved fpr registers. */ ! addi r6,r1,56 /* Make the call. */ ! bl Lffi_closure_helper_DARWIN$stub ! /* Now r3 contains the return type ! so use it to look up in a table so we know how to deal with each type. */ ! /* Look up the proper starting point in table ! by using return type as offset. */ ! addi r5,r1,160 /* Get pointer to results area. */ ! bl Lget_ret_type0_addr /* Get pointer to Lret_type0 into LR. */ ! mflr r4 /* Move to r4. */ ! slwi r3,r3,4 /* Now multiply return type by 16. */ ! add r3,r3,r4 /* Add contents of table to table address. */ ! mtctr r3 ! bctr /* Jump to it. */ LFE1: /* Each of the ret_typeX code fragments has to be exactly 16 bytes long (4 instructions). For cache effectiveness we align to a 16 byte boundary --- 34,210 ---- #define MODE_CHOICE(x, y) x #endif ! #define machine_choice MODE_CHOICE(ppc7400,ppc64) ! ; Define some pseudo-opcodes for size-independent load & store of GPRs ... ! #define lgu MODE_CHOICE(lwzu, ldu) ! #define lg MODE_CHOICE(lwz,ld) ! #define sg MODE_CHOICE(stw,std) ! #define sgu MODE_CHOICE(stwu,stdu) ! ; ... and the size of GPRs and their storage indicator. ! #define GPR_BYTES MODE_CHOICE(4,8) ! #define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */ ! #define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */ ! ! ; From the ABI doc: "Mac OS X ABI Function Call Guide" Version 2009-02-04. ! #define LINKAGE_SIZE MODE_CHOICE(24,48) ! #define PARAM_AREA MODE_CHOICE(32,64) ! ! #define SAVED_CR_OFFSET MODE_CHOICE(4,8) /* save position for CR */ ! #define SAVED_LR_OFFSET MODE_CHOICE(8,16) /* save position for lr */ ! ! /* WARNING: if ffi_type is changed... here be monsters. ! Offsets of items within the result type. */ ! #define FFI_TYPE_TYPE MODE_CHOICE(6,10) ! #define FFI_TYPE_ELEM MODE_CHOICE(8,16) ! ! #define SAVED_FPR_COUNT 13 ! #define FPR_SIZE 8 ! /* biggest m64 struct ret is 8GPRS + 13FPRS = 168 bytes - rounded to 16bytes = 176. */ ! #define RESULT_BYTES MODE_CHOICE(16,176) ! ! ; The whole stack frame **MUST** be 16byte-aligned. ! #define SAVE_SIZE (((LINKAGE_SIZE+PARAM_AREA+SAVED_FPR_COUNT*FPR_SIZE+RESULT_BYTES)+15) & -16LL) ! #define PAD_SIZE (SAVE_SIZE-(LINKAGE_SIZE+PARAM_AREA+SAVED_FPR_COUNT*FPR_SIZE+RESULT_BYTES)) ! ! #define PARENT_PARM_BASE (SAVE_SIZE+LINKAGE_SIZE) ! #define FP_SAVE_BASE (LINKAGE_SIZE+PARAM_AREA) ! ! #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 ! ; We no longer need the pic symbol stub for Darwin >= 9. ! #define BLCLS_HELP _ffi_closure_helper_DARWIN ! #define STRUCT_RETVALUE_P _darwin64_struct_ret_by_value_p ! #define PASS_STR_FLOATS _darwin64_pass_struct_floats ! #undef WANT_STUB ! #else ! #define BLCLS_HELP L_ffi_closure_helper_DARWIN$stub ! #define STRUCT_RETVALUE_P L_darwin64_struct_ret_by_value_p$stub ! #define PASS_STR_FLOATS L_darwin64_pass_struct_floats$stub ! #define WANT_STUB ! #endif ! ! /* m32/m64 ! ! The stack layout looks like this: ! ! | Additional params... | | Higher address ! ~ ~ ~ ! | Parameters (at least 8*4/8=32/64) | | NUM_GPR_ARG_REGISTERS ! |--------------------------------------------| | ! | TOC=R2 (AIX) Reserved (Darwin) 4/8 | | ! |--------------------------------------------| | ! | Reserved 2*4/8 | | ! |--------------------------------------------| | ! | Space for callee`s LR 4/8 | | ! |--------------------------------------------| | ! | Saved CR [low word for m64] 4/8 | | ! |--------------------------------------------| | ! | Current backchain pointer 4/8 |-/ Parent`s frame. ! |--------------------------------------------| <+ <<< on entry to ! | Result Bytes 16/176 | | ! |--------------------------------------------| | ! ~ padding to 16-byte alignment ~ ~ ! |--------------------------------------------| | ! | NUM_FPR_ARG_REGISTERS slots | | ! | here fp13 .. fp1 13*8 | | ! |--------------------------------------------| | ! | R3..R10 8*4/8=32/64 | | NUM_GPR_ARG_REGISTERS ! |--------------------------------------------| | ! | TOC=R2 (AIX) Reserved (Darwin) 4/8 | | ! |--------------------------------------------| | stack | ! | Reserved [compiler,binder] 2*4/8 | | grows | ! |--------------------------------------------| | down V ! | Space for callees LR 4/8 | | ! |--------------------------------------------| | lower addresses ! | Saved CR [low word for m64] 4/8 | | ! |--------------------------------------------| | stack pointer here ! | Current backchain pointer 4/8 |-/ during ! |--------------------------------------------| <<< call. ! ! */ .file "darwin_closure.S" ! .machine machine_choice ! ! .text ! .globl _ffi_closure_ASM .align LOG2_GPR_BYTES _ffi_closure_ASM: LFB1: ! Lstartcode: ! mflr r0 /* extract return address */ ! sg r0,SAVED_LR_OFFSET(r1) /* save the return address */ LCFI0: ! sgu r1,-SAVE_SIZE(r1) /* skip over caller save area ! keep stack aligned to 16. */ LCFI1: /* We want to build up an area for the parameters passed in registers. (both floating point and integer) */ ! /* Put gpr 3 to gpr 10 in the parents outgoing area... ! ... the remainder of any params that overflowed the regs will ! follow here. */ ! sg r3, (PARENT_PARM_BASE )(r1) ! sg r4, (PARENT_PARM_BASE + GPR_BYTES )(r1) ! sg r5, (PARENT_PARM_BASE + GPR_BYTES * 2)(r1) ! sg r6, (PARENT_PARM_BASE + GPR_BYTES * 3)(r1) ! sg r7, (PARENT_PARM_BASE + GPR_BYTES * 4)(r1) ! sg r8, (PARENT_PARM_BASE + GPR_BYTES * 5)(r1) ! sg r9, (PARENT_PARM_BASE + GPR_BYTES * 6)(r1) ! sg r10,(PARENT_PARM_BASE + GPR_BYTES * 7)(r1) ! /* We save fpr 1 to fpr 14 in our own save frame. */ ! stfd f1, (FP_SAVE_BASE )(r1) ! stfd f2, (FP_SAVE_BASE + FPR_SIZE )(r1) ! stfd f3, (FP_SAVE_BASE + FPR_SIZE * 2 )(r1) ! stfd f4, (FP_SAVE_BASE + FPR_SIZE * 3 )(r1) ! stfd f5, (FP_SAVE_BASE + FPR_SIZE * 4 )(r1) ! stfd f6, (FP_SAVE_BASE + FPR_SIZE * 5 )(r1) ! stfd f7, (FP_SAVE_BASE + FPR_SIZE * 6 )(r1) ! stfd f8, (FP_SAVE_BASE + FPR_SIZE * 7 )(r1) ! stfd f9, (FP_SAVE_BASE + FPR_SIZE * 8 )(r1) ! stfd f10,(FP_SAVE_BASE + FPR_SIZE * 9 )(r1) ! stfd f11,(FP_SAVE_BASE + FPR_SIZE * 10)(r1) ! stfd f12,(FP_SAVE_BASE + FPR_SIZE * 11)(r1) ! stfd f13,(FP_SAVE_BASE + FPR_SIZE * 12)(r1) /* Set up registers for the routine that actually does the work get the context pointer from the trampoline. */ ! mr r3,r11 /* Now load up the pointer to the result storage. */ ! addi r4,r1,(SAVE_SIZE-RESULT_BYTES) /* Now load up the pointer to the saved gpr registers. */ ! addi r5,r1,PARENT_PARM_BASE /* Now load up the pointer to the saved fpr registers. */ ! addi r6,r1,FP_SAVE_BASE /* Make the call. */ ! bl BLCLS_HELP ! /* r3 contains the rtype pointer... save it since we will need ! it later. */ ! sg r3,LINKAGE_SIZE(r1) ; ffi_type * result_type ! lg r0,0(r3) ; size => r0 ! lhz r3,FFI_TYPE_TYPE(r3) ; type => r3 ! ! /* The helper will have intercepted struture returns and inserted ! the caller`s destination address for structs returned by ref. */ ! ! /* r3 contains the return type so use it to look up in a table so we know how to deal with each type. */ ! addi r5,r1,(SAVE_SIZE-RESULT_BYTES) /* Otherwise, our return is here. */ ! bl Lget_ret_type0_addr /* Get pointer to Lret_type0 into LR. */ ! mflr r4 /* Move to r4. */ ! slwi r3,r3,4 /* Now multiply return type by 16. */ ! add r3,r3,r4 /* Add contents of table to table address. */ ! mtctr r3 ! bctr /* Jump to it. */ LFE1: /* Each of the ret_typeX code fragments has to be exactly 16 bytes long (4 instructions). For cache effectiveness we align to a 16 byte boundary *************** Lret_type0: *** 140,146 **** /* case FFI_TYPE_INT */ Lret_type1: ! lwz r3,0(r5) b Lfinish nop nop --- 227,233 ---- /* case FFI_TYPE_INT */ Lret_type1: ! lg r3,0(r5) b Lfinish nop nop *************** Lret_type4: *** 168,252 **** /* case FFI_TYPE_UINT8 */ Lret_type5: lbz r3,3(r5) b Lfinish nop nop /* case FFI_TYPE_SINT8 */ Lret_type6: lbz r3,3(r5) extsb r3,r3 b Lfinish nop /* case FFI_TYPE_UINT16 */ Lret_type7: lhz r3,2(r5) b Lfinish nop nop /* case FFI_TYPE_SINT16 */ Lret_type8: lha r3,2(r5) b Lfinish nop nop /* case FFI_TYPE_UINT32 */ Lret_type9: lwz r3,0(r5) b Lfinish nop nop /* case FFI_TYPE_SINT32 */ Lret_type10: lwz r3,0(r5) b Lfinish nop nop /* case FFI_TYPE_UINT64 */ Lret_type11: lwz r3,0(r5) lwz r4,4(r5) b Lfinish nop /* case FFI_TYPE_SINT64 */ Lret_type12: lwz r3,0(r5) lwz r4,4(r5) b Lfinish nop /* case FFI_TYPE_STRUCT */ Lret_type13: b Lfinish ! nop ! nop ! nop ! /* case FFI_TYPE_POINTER */ Lret_type14: ! lwz r3,0(r5) b Lfinish nop nop /* case done */ Lfinish: ! addi r1,r1,176 /* Restore stack pointer. */ ! lwz r0,8(r1) /* Get return address. */ ! mtlr r0 /* Reset link register. */ blr ! /* END(ffi_closure_ASM) */ ! .data ! .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 ; Length of Common Information Entry --- 255,478 ---- /* case FFI_TYPE_UINT8 */ Lret_type5: + #if defined(__ppc64__) + lbz r3,7(r5) + #else lbz r3,3(r5) + #endif b Lfinish nop nop /* case FFI_TYPE_SINT8 */ Lret_type6: + #if defined(__ppc64__) + lbz r3,7(r5) + #else lbz r3,3(r5) + #endif extsb r3,r3 b Lfinish nop /* case FFI_TYPE_UINT16 */ Lret_type7: + #if defined(__ppc64__) + lhz r3,6(r5) + #else lhz r3,2(r5) + #endif b Lfinish nop nop /* case FFI_TYPE_SINT16 */ Lret_type8: + #if defined(__ppc64__) + lha r3,6(r5) + #else lha r3,2(r5) + #endif b Lfinish nop nop /* case FFI_TYPE_UINT32 */ Lret_type9: + #if defined(__ppc64__) + lwz r3,4(r5) + #else lwz r3,0(r5) + #endif b Lfinish nop nop /* case FFI_TYPE_SINT32 */ Lret_type10: + #if defined(__ppc64__) + lwz r3,4(r5) + #else lwz r3,0(r5) + #endif b Lfinish nop nop /* case FFI_TYPE_UINT64 */ Lret_type11: + #if defined(__ppc64__) + lg r3,0(r5) + b Lfinish + nop + #else lwz r3,0(r5) lwz r4,4(r5) b Lfinish + #endif nop /* case FFI_TYPE_SINT64 */ Lret_type12: + #if defined(__ppc64__) + lg r3,0(r5) + b Lfinish + nop + #else lwz r3,0(r5) lwz r4,4(r5) b Lfinish + #endif nop /* case FFI_TYPE_STRUCT */ Lret_type13: + #if defined(__ppc64__) + lg r3,0(r5) ; we need at least this... + cmpi 0,r0,4 + bgt Lstructend ; not a special small case + b Lsmallstruct ; see if we need more. + #else + cmpi 0,r0,4 + bgt Lfinish ; not by value + lg r3,0(r5) b Lfinish ! #endif /* case FFI_TYPE_POINTER */ Lret_type14: ! lg r3,0(r5) b Lfinish nop nop + #if defined(__ppc64__) + Lsmallstruct: + beq Lfour ; continuation of Lret13. + cmpi 0,r0,3 + beq Lfinish ; don`t adjust this - can`t be any floats here... + srdi r3,r3,48 + cmpi 0,r0,2 + beq Lfinish ; .. or here .. + srdi r3,r3,8 + b Lfinish ; .. or here. + + Lfour: + lg r6,LINKAGE_SIZE(r1) ; get the result type + lg r6,FFI_TYPE_ELEM(r6) ; elements array pointer + lg r6,0(r6) ; first element + lhz r0,FFI_TYPE_TYPE(r6) ; OK go the type + cmpi 0,r0,2 ; FFI_TYPE_FLOAT + bne Lfourint + lfs f1,0(r5) ; just one float in the struct. + b Lfinish + + Lfourint: + srdi r3,r3,32 ; four bytes. + b Lfinish + + Lstructend: + lg r3,LINKAGE_SIZE(r1) ; get the result type + bl STRUCT_RETVALUE_P + cmpi 0,r3,0 + beq Lfinish ; nope. + /* Recover a pointer to the results. */ + addi r11,r1,(SAVE_SIZE-RESULT_BYTES) + lg r3,0(r11) ; we need at least this... + lg r4,8(r11) + cmpi 0,r0,16 + beq Lfinish ; special case 16 bytes we don't consider floats. + + /* OK, frustratingly, the process of saving the struct to mem might have + messed with the FPRs, so we have to re-load them :(. + We`ll use our FPRs space again - calling: + void darwin64_pass_struct_floats (ffi_type *s, char *src, + unsigned *nfpr, double **fprs) + We`ll temporarily pinch the first two slots of the param area for local + vars used by the routine. */ + xor r6,r6,r6 + addi r5,r1,PARENT_PARM_BASE ; some space + sg r6,0(r5) ; *nfpr zeroed. + addi r6,r5,8 ; **fprs + addi r3,r1,FP_SAVE_BASE ; pointer to FPRs space + sg r3,0(r6) + mr r4,r11 ; the struct is here... + lg r3,LINKAGE_SIZE(r1) ; ffi_type * result_type. + bl PASS_STR_FLOATS ; get struct floats into FPR save space. + /* See if we used any floats */ + lwz r0,(SAVE_SIZE-RESULT_BYTES)(r1) + cmpi 0,r0,0 + beq Lstructints ; nope. + /* OK load `em up... */ + lfd f1, (FP_SAVE_BASE )(r1) + lfd f2, (FP_SAVE_BASE + FPR_SIZE )(r1) + lfd f3, (FP_SAVE_BASE + FPR_SIZE * 2 )(r1) + lfd f4, (FP_SAVE_BASE + FPR_SIZE * 3 )(r1) + lfd f5, (FP_SAVE_BASE + FPR_SIZE * 4 )(r1) + lfd f6, (FP_SAVE_BASE + FPR_SIZE * 5 )(r1) + lfd f7, (FP_SAVE_BASE + FPR_SIZE * 6 )(r1) + lfd f8, (FP_SAVE_BASE + FPR_SIZE * 7 )(r1) + lfd f9, (FP_SAVE_BASE + FPR_SIZE * 8 )(r1) + lfd f10,(FP_SAVE_BASE + FPR_SIZE * 9 )(r1) + lfd f11,(FP_SAVE_BASE + FPR_SIZE * 10)(r1) + lfd f12,(FP_SAVE_BASE + FPR_SIZE * 11)(r1) + lfd f13,(FP_SAVE_BASE + FPR_SIZE * 12)(r1) + + /* point back at our saved struct. */ + Lstructints: + addi r11,r1,(SAVE_SIZE-RESULT_BYTES) + lg r3,0(r11) ; we end up picking the + lg r4,8(r11) ; first two again. + lg r5,16(r11) + lg r6,24(r11) + lg r7,32(r11) + lg r8,40(r11) + lg r9,48(r11) + lg r10,56(r11) + #endif + /* case done */ Lfinish: ! addi r1,r1,SAVE_SIZE /* Restore stack pointer. */ ! lg r0,SAVED_LR_OFFSET(r1) /* Get return address. */ ! mtlr r0 /* Reset link register. */ blr ! Lendcode: ! .align 1 ! /* END(ffi_closure_ASM) */ ! /* EH frame stuff. */ ! #define EH_DATA_ALIGN_FACT MODE_CHOICE(0x7c,0x78) ! /* 176, 400 */ ! #define EH_FRAME_OFFSETA MODE_CHOICE(176,0x90) ! #define EH_FRAME_OFFSETB MODE_CHOICE(1,3) ! ! .static_data ! .align LOG2_GPR_BYTES ! LLFB1$non_lazy_ptr: ! .g_long Lstartcode ! ! .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 ; Length of Common Information Entry *************** LSCIE1: *** 255,261 **** .byte 0x1 ; CIE Version .ascii "zR\0" ; CIE Augmentation .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor ! .byte 0x7c ; sleb128 -4; CIE Data Alignment Factor .byte 0x41 ; CIE RA Column .byte 0x1 ; uleb128 0x1; Augmentation size .byte 0x90 ; FDE Encoding (indirect pcrel) --- 481,487 ---- .byte 0x1 ; CIE Version .ascii "zR\0" ; CIE Augmentation .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor ! .byte EH_DATA_ALIGN_FACT ; sleb128 -4; CIE Data Alignment Factor .byte 0x41 ; CIE RA Column .byte 0x1 ; uleb128 0x1; Augmentation size .byte 0x90 ; FDE Encoding (indirect pcrel) *************** LSCIE1: *** 264,270 **** .byte 0x0 ; uleb128 0x0 .align LOG2_GPR_BYTES LECIE1: ! .globl _ffi_closure_ASM.eh _ffi_closure_ASM.eh: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 --- 490,496 ---- .byte 0x0 ; uleb128 0x0 .align LOG2_GPR_BYTES LECIE1: ! .globl _ffi_closure_ASM.eh _ffi_closure_ASM.eh: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 *************** LSFDE1: *** 273,317 **** LASFDE1: .long LASFDE1-EH_frame1 ; FDE CIE offset .g_long LLFB1$non_lazy_ptr-. ; FDE initial location ! .set L$set$3,LFE1-LFB1 .g_long L$set$3 ; FDE address range .byte 0x0 ; uleb128 0x0; Augmentation size .byte 0x4 ; DW_CFA_advance_loc4 .set L$set$3,LCFI1-LCFI0 .long L$set$3 .byte 0xe ; DW_CFA_def_cfa_offset ! .byte 176,1 ; uleb128 176 .byte 0x4 ; DW_CFA_advance_loc4 ! .set L$set$4,LCFI0-LFB1 .long L$set$4 .byte 0x11 ; DW_CFA_offset_extended_sf .byte 0x41 ; uleb128 0x41 .byte 0x7e ; sleb128 -2 .align LOG2_GPR_BYTES LEFDE1: ! .data ! .align LOG2_GPR_BYTES ! LDFCM0: ! .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 ! .align LOG2_GPR_BYTES ! Lffi_closure_helper_DARWIN$stub: ! #if 1 .indirect_symbol _ffi_closure_helper_DARWIN ! mflr r0 ! bcl 20,31,LO$ffi_closure_helper_DARWIN ! LO$ffi_closure_helper_DARWIN: ! mflr r11 ! addis r11,r11,ha16(L_ffi_closure_helper_DARWIN$lazy_ptr - LO$ffi_closure_helper_DARWIN) ! mtlr r0 ! lgu r12,lo16(L_ffi_closure_helper_DARWIN$lazy_ptr - LO$ffi_closure_helper_DARWIN)(r11) ! mtctr r12 bctr ! .lazy_symbol_pointer L_ffi_closure_helper_DARWIN$lazy_ptr: .indirect_symbol _ffi_closure_helper_DARWIN ! .g_long dyld_stub_binding_helper #endif - .data - .align LOG2_GPR_BYTES - LLFB1$non_lazy_ptr: - .g_long LFB1 --- 499,575 ---- LASFDE1: .long LASFDE1-EH_frame1 ; FDE CIE offset .g_long LLFB1$non_lazy_ptr-. ; FDE initial location ! .set L$set$3,LFE1-Lstartcode .g_long L$set$3 ; FDE address range .byte 0x0 ; uleb128 0x0; Augmentation size .byte 0x4 ; DW_CFA_advance_loc4 .set L$set$3,LCFI1-LCFI0 .long L$set$3 .byte 0xe ; DW_CFA_def_cfa_offset ! .byte EH_FRAME_OFFSETA,EH_FRAME_OFFSETB ; uleb128 176,1/190,3 .byte 0x4 ; DW_CFA_advance_loc4 ! .set L$set$4,LCFI0-Lstartcode .long L$set$4 .byte 0x11 ; DW_CFA_offset_extended_sf .byte 0x41 ; uleb128 0x41 .byte 0x7e ; sleb128 -2 .align LOG2_GPR_BYTES LEFDE1: ! .align 1 ! ! #ifdef WANT_STUB ! .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 ! .align 5 ! L_ffi_closure_helper_DARWIN$stub: .indirect_symbol _ffi_closure_helper_DARWIN ! mflr r0 ! bcl 20,31,"L00000000001$spb" ! "L00000000001$spb": ! mflr r11 ! addis r11,r11,ha16(L_ffi_closure_helper_DARWIN$lazy_ptr-"L00000000001$spb") ! mtlr r0 ! lwzu r12,lo16(L_ffi_closure_helper_DARWIN$lazy_ptr-"L00000000001$spb")(r11) ! mtctr r12 bctr ! .lazy_symbol_pointer L_ffi_closure_helper_DARWIN$lazy_ptr: .indirect_symbol _ffi_closure_helper_DARWIN ! .long dyld_stub_binding_helper ! ! #if defined(__ppc64__) ! .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 ! .align 5 ! L_darwin64_struct_ret_by_value_p$stub: ! .indirect_symbol _darwin64_struct_ret_by_value_p ! mflr r0 ! bcl 20,31,"L00000000002$spb" ! "L00000000002$spb": ! mflr r11 ! addis r11,r11,ha16(L_darwin64_struct_ret_by_value_p$lazy_ptr-"L00000000002$spb") ! mtlr r0 ! lwzu r12,lo16(L_darwin64_struct_ret_by_value_p$lazy_ptr-"L00000000002$spb")(r11) ! mtctr r12 ! bctr ! .lazy_symbol_pointer ! L_darwin64_struct_ret_by_value_p$lazy_ptr: ! .indirect_symbol _darwin64_struct_ret_by_value_p ! .long dyld_stub_binding_helper ! .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 ! .align 5 ! L_darwin64_pass_struct_floats$stub: ! .indirect_symbol _darwin64_pass_struct_floats ! mflr r0 ! bcl 20,31,"L00000000003$spb" ! "L00000000003$spb": ! mflr r11 ! addis r11,r11,ha16(L_darwin64_pass_struct_floats$lazy_ptr-"L00000000003$spb") ! mtlr r0 ! lwzu r12,lo16(L_darwin64_pass_struct_floats$lazy_ptr-"L00000000003$spb")(r11) ! mtctr r12 ! bctr ! .lazy_symbol_pointer ! L_darwin64_pass_struct_floats$lazy_ptr: ! .indirect_symbol _darwin64_pass_struct_floats ! .long dyld_stub_binding_helper ! # endif #endif diff -Nrcpad gcc-4.5.2/libffi/src/powerpc/ffi_darwin.c gcc-4.6.0/libffi/src/powerpc/ffi_darwin.c *** gcc-4.5.2/libffi/src/powerpc/ffi_darwin.c Mon Dec 28 18:19:18 2009 --- gcc-4.6.0/libffi/src/powerpc/ffi_darwin.c Sat Dec 18 08:56:46 2010 *************** *** 3,9 **** Copyright (C) 1998 Geoffrey Keating Copyright (C) 2001 John Hornkvist ! Copyright (C) 2002, 2006, 2007, 2009 Free Software Foundation, Inc. FFI support for Darwin and AIX. --- 3,9 ---- Copyright (C) 1998 Geoffrey Keating Copyright (C) 2001 John Hornkvist ! Copyright (C) 2002, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. FFI support for Darwin and AIX. *************** *** 35,45 **** extern void ffi_closure_ASM (void); enum { ! /* The assembly depends on these exact flags. */ ! FLAG_RETURNS_NOTHING = 1 << (31-30), /* These go in cr7 */ ! FLAG_RETURNS_FP = 1 << (31-29), ! FLAG_RETURNS_64BITS = 1 << (31-28), ! FLAG_RETURNS_128BITS = 1 << (31-31), FLAG_ARG_NEEDS_COPY = 1 << (31- 7), FLAG_FP_ARGUMENTS = 1 << (31- 6), /* cr1.eq; specified by ABI */ --- 35,51 ---- extern void ffi_closure_ASM (void); enum { ! /* The assembly depends on these exact flags. ! For Darwin64 (when FLAG_RETURNS_STRUCT is set): ! FLAG_RETURNS_FP indicates that the structure embeds FP data. ! FLAG_RETURNS_128BITS signals a special struct size that is not ! expanded for float content. */ ! FLAG_RETURNS_128BITS = 1 << (31-31), /* These go in cr7 */ ! FLAG_RETURNS_NOTHING = 1 << (31-30), ! FLAG_RETURNS_FP = 1 << (31-29), ! FLAG_RETURNS_64BITS = 1 << (31-28), ! ! FLAG_RETURNS_STRUCT = 1 << (31-27), /* This goes in cr6 */ FLAG_ARG_NEEDS_COPY = 1 << (31- 7), FLAG_FP_ARGUMENTS = 1 << (31- 6), /* cr1.eq; specified by ABI */ *************** enum { *** 50,92 **** /* About the DARWIN ABI. */ enum { NUM_GPR_ARG_REGISTERS = 8, ! NUM_FPR_ARG_REGISTERS = 13 }; ! enum { ASM_NEEDS_REGISTERS = 4 }; /* ffi_prep_args is called by the assembly routine once stack space has been allocated for the function's arguments. The stack layout we want looks like this: | Return address from ffi_call_DARWIN | higher addresses |--------------------------------------------| ! | Previous backchain pointer 4 | stack pointer here |--------------------------------------------|<+ <<< on entry to ! | Saved r28-r31 4*4 | | ffi_call_DARWIN |--------------------------------------------| | ! | Parameters (at least 8*4=32) | | |--------------------------------------------| | ! | Space for GPR2 4 | | |--------------------------------------------| | stack | ! | Reserved 2*4 | | grows | |--------------------------------------------| | down V ! | Space for callee's LR 4 | | |--------------------------------------------| | lower addresses ! | Saved CR 4 | | |--------------------------------------------| | stack pointer here ! | Current backchain pointer 4 |-/ during |--------------------------------------------| <<< ffi_call_DARWIN */ void ffi_prep_args (extended_cif *ecif, unsigned long *const stack) { const unsigned bytes = ecif->cif->bytes; const unsigned flags = ecif->cif->flags; const unsigned nargs = ecif->cif->nargs; const ffi_abi abi = ecif->cif->abi; /* 'stacktop' points at the previous backchain pointer. */ unsigned long *const stacktop = stack + (bytes / sizeof(unsigned long)); --- 56,116 ---- /* About the DARWIN ABI. */ enum { NUM_GPR_ARG_REGISTERS = 8, ! NUM_FPR_ARG_REGISTERS = 13, ! LINKAGE_AREA_GPRS = 6 }; ! ! enum { ASM_NEEDS_REGISTERS = 4 }; /* r28-r31 */ /* ffi_prep_args is called by the assembly routine once stack space has been allocated for the function's arguments. + + m32/m64 The stack layout we want looks like this: | Return address from ffi_call_DARWIN | higher addresses |--------------------------------------------| ! | Previous backchain pointer 4/8 | stack pointer here |--------------------------------------------|<+ <<< on entry to ! | ASM_NEEDS_REGISTERS=r28-r31 4*(4/8) | | ffi_call_DARWIN |--------------------------------------------| | ! | When we have any FP activity... the | | ! | FPRs occupy NUM_FPR_ARG_REGISTERS slots | | ! | here fp13 .. fp1 from high to low addr. | | ! ~ ~ ~ ! | Parameters (at least 8*4/8=32/64) | | NUM_GPR_ARG_REGISTERS |--------------------------------------------| | ! | TOC=R2 (AIX) Reserved (Darwin) 4/8 | | |--------------------------------------------| | stack | ! | Reserved 2*4/8 | | grows | |--------------------------------------------| | down V ! | Space for callee's LR 4/8 | | |--------------------------------------------| | lower addresses ! | Saved CR [low word for m64] 4/8 | | |--------------------------------------------| | stack pointer here ! | Current backchain pointer 4/8 |-/ during |--------------------------------------------| <<< ffi_call_DARWIN */ + #if defined(POWERPC_DARWIN64) + static void + darwin64_pass_struct_by_value + (ffi_type *, char *, unsigned, unsigned *, double **, unsigned long **); + #endif + + /* This depends on GPR_SIZE = sizeof (unsigned long) */ + void ffi_prep_args (extended_cif *ecif, unsigned long *const stack) { const unsigned bytes = ecif->cif->bytes; const unsigned flags = ecif->cif->flags; const unsigned nargs = ecif->cif->nargs; + #if !defined(POWERPC_DARWIN64) const ffi_abi abi = ecif->cif->abi; + #endif /* 'stacktop' points at the previous backchain pointer. */ unsigned long *const stacktop = stack + (bytes / sizeof(unsigned long)); *************** ffi_prep_args (extended_cif *ecif, unsig *** 94,111 **** /* 'fpr_base' points at the space for fpr1, and grows upwards as we use FPR registers. */ double *fpr_base = (double *) (stacktop - ASM_NEEDS_REGISTERS) - NUM_FPR_ARG_REGISTERS; ! int fparg_count = 0; ! /* 'next_arg' grows up as we put parameters in it. */ ! unsigned long *next_arg = stack + 6; /* 6 reserved positions. */ int i; double double_tmp; void **p_argv = ecif->avalue; unsigned long gprvalue; ffi_type** ptr = ecif->cif->arg_types; char *dest_cpy; unsigned size_al = 0; /* Check that everything starts aligned properly. */ --- 118,136 ---- /* 'fpr_base' points at the space for fpr1, and grows upwards as we use FPR registers. */ double *fpr_base = (double *) (stacktop - ASM_NEEDS_REGISTERS) - NUM_FPR_ARG_REGISTERS; ! int gp_count = 0, fparg_count = 0; /* 'next_arg' grows up as we put parameters in it. */ ! unsigned long *next_arg = stack + LINKAGE_AREA_GPRS; /* 6 reserved positions. */ int i; double double_tmp; void **p_argv = ecif->avalue; unsigned long gprvalue; ffi_type** ptr = ecif->cif->arg_types; + #if !defined(POWERPC_DARWIN64) char *dest_cpy; + #endif unsigned size_al = 0; /* Check that everything starts aligned properly. */ *************** ffi_prep_args (extended_cif *ecif, unsig *** 130,154 **** the size of the floating-point parameter are skipped. */ case FFI_TYPE_FLOAT: double_tmp = *(float *) *p_argv; ! if (fparg_count >= NUM_FPR_ARG_REGISTERS) ! *(double *)next_arg = double_tmp; ! else *fpr_base++ = double_tmp; next_arg++; fparg_count++; FFI_ASSERT(flags & FLAG_FP_ARGUMENTS); break; case FFI_TYPE_DOUBLE: double_tmp = *(double *) *p_argv; ! if (fparg_count >= NUM_FPR_ARG_REGISTERS) ! *(double *)next_arg = double_tmp; ! else *fpr_base++ = double_tmp; #ifdef POWERPC64 next_arg++; #else next_arg += 2; #endif fparg_count++; FFI_ASSERT(flags & FLAG_FP_ARGUMENTS); --- 155,184 ---- the size of the floating-point parameter are skipped. */ case FFI_TYPE_FLOAT: double_tmp = *(float *) *p_argv; ! if (fparg_count < NUM_FPR_ARG_REGISTERS) *fpr_base++ = double_tmp; + #if defined(POWERPC_DARWIN) + *(float *)next_arg = *(float *) *p_argv; + #else + *(double *)next_arg = double_tmp; + #endif next_arg++; + gp_count++; fparg_count++; FFI_ASSERT(flags & FLAG_FP_ARGUMENTS); break; case FFI_TYPE_DOUBLE: double_tmp = *(double *) *p_argv; ! if (fparg_count < NUM_FPR_ARG_REGISTERS) *fpr_base++ = double_tmp; + *(double *)next_arg = double_tmp; #ifdef POWERPC64 next_arg++; + gp_count++; #else next_arg += 2; + gp_count += 2; #endif fparg_count++; FFI_ASSERT(flags & FLAG_FP_ARGUMENTS); *************** ffi_prep_args (extended_cif *ecif, unsig *** 157,186 **** #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE: ! #ifdef POWERPC64 if (fparg_count < NUM_FPR_ARG_REGISTERS) *(long double *) fpr_base++ = *(long double *) *p_argv; else *(long double *) next_arg = *(long double *) *p_argv; next_arg += 2; fparg_count += 2; ! #else double_tmp = ((double *) *p_argv)[0]; if (fparg_count < NUM_FPR_ARG_REGISTERS) *fpr_base++ = double_tmp; ! else ! *(double *) next_arg = double_tmp; next_arg += 2; fparg_count++; - double_tmp = ((double *) *p_argv)[1]; if (fparg_count < NUM_FPR_ARG_REGISTERS) *fpr_base++ = double_tmp; ! else ! *(double *) next_arg = double_tmp; next_arg += 2; fparg_count++; ! #endif FFI_ASSERT(flags & FLAG_FP_ARGUMENTS); break; #endif --- 187,227 ---- #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE: ! # if defined(POWERPC64) && !defined(POWERPC_DARWIN64) ! /* ??? This will exceed the regs count when the value starts at fp13 ! and it will not put the extra bit on the stack. */ if (fparg_count < NUM_FPR_ARG_REGISTERS) *(long double *) fpr_base++ = *(long double *) *p_argv; else *(long double *) next_arg = *(long double *) *p_argv; next_arg += 2; fparg_count += 2; ! # else double_tmp = ((double *) *p_argv)[0]; if (fparg_count < NUM_FPR_ARG_REGISTERS) *fpr_base++ = double_tmp; ! *(double *) next_arg = double_tmp; ! # if defined(POWERPC_DARWIN64) ! next_arg++; ! gp_count++; ! # else next_arg += 2; + gp_count += 2; + # endif fparg_count++; double_tmp = ((double *) *p_argv)[1]; if (fparg_count < NUM_FPR_ARG_REGISTERS) *fpr_base++ = double_tmp; ! *(double *) next_arg = double_tmp; ! # if defined(POWERPC_DARWIN64) ! next_arg++; ! gp_count++; ! # else next_arg += 2; + gp_count += 2; + # endif fparg_count++; ! # endif FFI_ASSERT(flags & FLAG_FP_ARGUMENTS); break; #endif *************** ffi_prep_args (extended_cif *ecif, unsig *** 192,197 **** --- 233,239 ---- #else *(long long *) next_arg = *(long long *) *p_argv; next_arg += 2; + gp_count += 2; #endif break; case FFI_TYPE_POINTER: *************** ffi_prep_args (extended_cif *ecif, unsig *** 211,242 **** goto putgpr; case FFI_TYPE_STRUCT: - #ifdef POWERPC64 - dest_cpy = (char *) next_arg; size_al = (*ptr)->size; ! if ((*ptr)->elements[0]->type == 3) size_al = ALIGN((*ptr)->size, 8); - if (size_al < 3 && abi == FFI_DARWIN) - dest_cpy += 4 - size_al; memcpy ((char *) dest_cpy, (char *) *p_argv, size_al); next_arg += (size_al + 7) / 8; ! #else ! dest_cpy = (char *) next_arg; ! /* Structures that match the basic modes (QI 1 byte, HI 2 bytes, SI 4 bytes) are aligned as if they were those modes. Structures with 3 byte in size are padded upwards. */ - size_al = (*ptr)->size; - /* If the first member of the struct is a double, then align - the struct to double-word. */ - if ((*ptr)->elements[0]->type == FFI_TYPE_DOUBLE) - size_al = ALIGN((*ptr)->size, 8); if (size_al < 3 && abi == FFI_DARWIN) dest_cpy += 4 - size_al; memcpy((char *) dest_cpy, (char *) *p_argv, size_al); next_arg += (size_al + 3) / 4; #endif break; --- 253,287 ---- goto putgpr; case FFI_TYPE_STRUCT: size_al = (*ptr)->size; ! #if defined(POWERPC_DARWIN64) ! next_arg = (unsigned long *)ALIGN((char *)next_arg, (*ptr)->alignment); ! darwin64_pass_struct_by_value (*ptr, (char *) *p_argv, ! (unsigned) size_al, ! (unsigned int *) &fparg_count, ! &fpr_base, &next_arg); ! #else ! dest_cpy = (char *) next_arg; ! ! /* If the first member of the struct is a double, then include enough ! padding in the struct size to align it to double-word. */ ! if ((*ptr)->elements[0]->type == FFI_TYPE_DOUBLE) size_al = ALIGN((*ptr)->size, 8); + # if defined(POWERPC64) + FFI_ASSERT (abi != FFI_DARWIN); memcpy ((char *) dest_cpy, (char *) *p_argv, size_al); next_arg += (size_al + 7) / 8; ! # else /* Structures that match the basic modes (QI 1 byte, HI 2 bytes, SI 4 bytes) are aligned as if they were those modes. Structures with 3 byte in size are padded upwards. */ if (size_al < 3 && abi == FFI_DARWIN) dest_cpy += 4 - size_al; memcpy((char *) dest_cpy, (char *) *p_argv, size_al); next_arg += (size_al + 3) / 4; + # endif #endif break; *************** ffi_prep_args (extended_cif *ecif, unsig *** 249,254 **** --- 294,300 ---- gprvalue = *(unsigned int *) *p_argv; putgpr: *next_arg++ = gprvalue; + gp_count++; break; default: break; *************** ffi_prep_args (extended_cif *ecif, unsig *** 262,269 **** //FFI_ASSERT(flags & FLAG_4_GPR_ARGUMENTS || intarg_count <= 4); } /* Adjust the size of S to be correct for Darwin. ! On Darwin, the first field of a structure has natural alignment. */ static void darwin_adjust_aggregate_sizes (ffi_type *s) --- 308,576 ---- //FFI_ASSERT(flags & FLAG_4_GPR_ARGUMENTS || intarg_count <= 4); } + #if defined(POWERPC_DARWIN64) + + /* See if we can put some of the struct into fprs. + This should not be called for structures of size 16 bytes, since these are not + broken out this way. */ + static void + darwin64_scan_struct_for_floats (ffi_type *s, unsigned *nfpr) + { + int i; + + FFI_ASSERT (s->type == FFI_TYPE_STRUCT) + + for (i = 0; s->elements[i] != NULL; i++) + { + ffi_type *p = s->elements[i]; + switch (p->type) + { + case FFI_TYPE_STRUCT: + darwin64_scan_struct_for_floats (p, nfpr); + break; + case FFI_TYPE_LONGDOUBLE: + (*nfpr) += 2; + break; + case FFI_TYPE_DOUBLE: + case FFI_TYPE_FLOAT: + (*nfpr) += 1; + break; + default: + break; + } + } + } + + static int + darwin64_struct_size_exceeds_gprs_p (ffi_type *s, char *src, unsigned *nfpr) + { + unsigned struct_offset=0, i; + + for (i = 0; s->elements[i] != NULL; i++) + { + char *item_base; + ffi_type *p = s->elements[i]; + /* Find the start of this item (0 for the first one). */ + if (i > 0) + struct_offset = ALIGN(struct_offset, p->alignment); + + item_base = src + struct_offset; + + switch (p->type) + { + case FFI_TYPE_STRUCT: + if (darwin64_struct_size_exceeds_gprs_p (p, item_base, nfpr)) + return 1; + break; + case FFI_TYPE_LONGDOUBLE: + if (*nfpr >= NUM_FPR_ARG_REGISTERS) + return 1; + (*nfpr) += 1; + item_base += 8; + /* FALL THROUGH */ + case FFI_TYPE_DOUBLE: + if (*nfpr >= NUM_FPR_ARG_REGISTERS) + return 1; + (*nfpr) += 1; + break; + case FFI_TYPE_FLOAT: + if (*nfpr >= NUM_FPR_ARG_REGISTERS) + return 1; + (*nfpr) += 1; + break; + default: + /* If we try and place any item, that is non-float, once we've + exceeded the 8 GPR mark, then we can't fit the struct. */ + if ((unsigned long)item_base >= 8*8) + return 1; + break; + } + /* now count the size of what we just used. */ + struct_offset += p->size; + } + return 0; + } + + /* Can this struct be returned by value? */ + int + darwin64_struct_ret_by_value_p (ffi_type *s) + { + unsigned nfp = 0; + + FFI_ASSERT (s && s->type == FFI_TYPE_STRUCT); + + /* The largest structure we can return is 8long + 13 doubles. */ + if (s->size > 168) + return 0; + + /* We can't pass more than 13 floats. */ + darwin64_scan_struct_for_floats (s, &nfp); + if (nfp > 13) + return 0; + + /* If there are not too many floats, and the struct is + small enough to accommodate in the GPRs, then it must be OK. */ + if (s->size <= 64) + return 1; + + /* Well, we have to look harder. */ + nfp = 0; + if (darwin64_struct_size_exceeds_gprs_p (s, NULL, &nfp)) + return 0; + + return 1; + } + + void + darwin64_pass_struct_floats (ffi_type *s, char *src, + unsigned *nfpr, double **fprs) + { + int i; + double *fpr_base = *fprs; + unsigned struct_offset = 0; + + /* We don't assume anything about the alignment of the source. */ + for (i = 0; s->elements[i] != NULL; i++) + { + char *item_base; + ffi_type *p = s->elements[i]; + /* Find the start of this item (0 for the first one). */ + if (i > 0) + struct_offset = ALIGN(struct_offset, p->alignment); + item_base = src + struct_offset; + + switch (p->type) + { + case FFI_TYPE_STRUCT: + darwin64_pass_struct_floats (p, item_base, nfpr, + &fpr_base); + break; + case FFI_TYPE_LONGDOUBLE: + if (*nfpr < NUM_FPR_ARG_REGISTERS) + *fpr_base++ = *(double *)item_base; + (*nfpr) += 1; + item_base += 8; + /* FALL THROUGH */ + case FFI_TYPE_DOUBLE: + if (*nfpr < NUM_FPR_ARG_REGISTERS) + *fpr_base++ = *(double *)item_base; + (*nfpr) += 1; + break; + case FFI_TYPE_FLOAT: + if (*nfpr < NUM_FPR_ARG_REGISTERS) + *fpr_base++ = (double) *(float *)item_base; + (*nfpr) += 1; + break; + default: + break; + } + /* now count the size of what we just used. */ + struct_offset += p->size; + } + /* Update the scores. */ + *fprs = fpr_base; + } + + /* Darwin64 special rules. + Break out a struct into params and float registers. */ + static void + darwin64_pass_struct_by_value (ffi_type *s, char *src, unsigned size, + unsigned *nfpr, double **fprs, unsigned long **arg) + { + unsigned long *next_arg = *arg; + char *dest_cpy = (char *)next_arg; + + FFI_ASSERT (s->type == FFI_TYPE_STRUCT) + + if (!size) + return; + + /* First... special cases. */ + if (size < 3 + || (size == 4 + && s->elements[0] + && s->elements[0]->type != FFI_TYPE_FLOAT)) + { + /* Must be at least one GPR, padding is unspecified in value, + let's make it zero. */ + *next_arg = 0UL; + dest_cpy += 8 - size; + memcpy ((char *) dest_cpy, src, size); + next_arg++; + } + else if (size == 16) + { + memcpy ((char *) dest_cpy, src, size); + next_arg += 2; + } + else + { + /* now the general case, we consider embedded floats. */ + memcpy ((char *) dest_cpy, src, size); + darwin64_pass_struct_floats (s, src, nfpr, fprs); + next_arg += (size+7)/8; + } + + *arg = next_arg; + } + + double * + darwin64_struct_floats_to_mem (ffi_type *s, char *dest, double *fprs, unsigned *nf) + { + int i; + unsigned struct_offset = 0; + + /* We don't assume anything about the alignment of the source. */ + for (i = 0; s->elements[i] != NULL; i++) + { + char *item_base; + ffi_type *p = s->elements[i]; + /* Find the start of this item (0 for the first one). */ + if (i > 0) + struct_offset = ALIGN(struct_offset, p->alignment); + item_base = dest + struct_offset; + + switch (p->type) + { + case FFI_TYPE_STRUCT: + fprs = darwin64_struct_floats_to_mem (p, item_base, fprs, nf); + break; + case FFI_TYPE_LONGDOUBLE: + if (*nf < NUM_FPR_ARG_REGISTERS) + { + *(double *)item_base = *fprs++ ; + (*nf) += 1; + } + item_base += 8; + /* FALL THROUGH */ + case FFI_TYPE_DOUBLE: + if (*nf < NUM_FPR_ARG_REGISTERS) + { + *(double *)item_base = *fprs++ ; + (*nf) += 1; + } + break; + case FFI_TYPE_FLOAT: + if (*nf < NUM_FPR_ARG_REGISTERS) + { + *(float *)item_base = (float) *fprs++ ; + (*nf) += 1; + } + break; + default: + break; + } + /* now count the size of what we just used. */ + struct_offset += p->size; + } + return fprs; + } + + #endif + /* Adjust the size of S to be correct for Darwin. ! On Darwin m32, the first field of a structure has natural alignment. ! On Darwin m64, all fields have natural alignment. */ static void darwin_adjust_aggregate_sizes (ffi_type *s) *************** darwin_adjust_aggregate_sizes (ffi_type *** 280,301 **** int align; p = s->elements[i]; ! darwin_adjust_aggregate_sizes (p); ! if (i == 0 ! && (p->type == FFI_TYPE_UINT64 ! || p->type == FFI_TYPE_SINT64 ! || p->type == FFI_TYPE_DOUBLE ! || p->alignment == 8)) ! align = 8; else if (p->alignment == 16 || p->alignment < 4) align = p->alignment; else align = 4; s->size = ALIGN(s->size, align) + p->size; } s->size = ALIGN(s->size, s->alignment); if (s->elements[0]->type == FFI_TYPE_UINT64 || s->elements[0]->type == FFI_TYPE_SINT64 || s->elements[0]->type == FFI_TYPE_DOUBLE --- 587,615 ---- int align; p = s->elements[i]; ! if (p->type == FFI_TYPE_STRUCT) ! darwin_adjust_aggregate_sizes (p); ! #if defined(POWERPC_DARWIN64) ! /* Natural alignment for all items. */ ! align = p->alignment; ! #else ! /* Natrual alignment for the first item... */ ! if (i == 0) ! align = p->alignment; else if (p->alignment == 16 || p->alignment < 4) + /* .. subsequent items with vector or align < 4 have natural align. */ align = p->alignment; else + /* .. or align is 4. */ align = 4; + #endif + /* Pad, if necessary, before adding the current item. */ s->size = ALIGN(s->size, align) + p->size; } s->size = ALIGN(s->size, s->alignment); + /* This should not be necessary on m64, but harmless. */ if (s->elements[0]->type == FFI_TYPE_UINT64 || s->elements[0]->type == FFI_TYPE_SINT64 || s->elements[0]->type == FFI_TYPE_DOUBLE *************** ffi_status *** 344,353 **** ffi_prep_cif_machdep (ffi_cif *cif) { /* All this is for the DARWIN ABI. */ ! int i; ffi_type **ptr; unsigned bytes; ! int fparg_count = 0, intarg_count = 0; unsigned flags = 0; unsigned size_al = 0; --- 658,667 ---- ffi_prep_cif_machdep (ffi_cif *cif) { /* All this is for the DARWIN ABI. */ ! unsigned i; ffi_type **ptr; unsigned bytes; ! unsigned fparg_count = 0, intarg_count = 0; unsigned flags = 0; unsigned size_al = 0; *************** ffi_prep_cif_machdep (ffi_cif *cif) *** 372,387 **** /* Space for the frame pointer, callee's LR, CR, etc, and for the asm's temp regs. */ ! bytes = (6 + ASM_NEEDS_REGISTERS) * sizeof(long); ! /* Return value handling. The rules are as follows: - 32-bit (or less) integer values are returned in gpr3; ! - Structures of size <= 4 bytes also returned in gpr3; ! - 64-bit integer values and structures between 5 and 8 bytes are returned ! in gpr3 and gpr4; - Single/double FP values are returned in fpr1; - Long double FP (if not equivalent to double) values are returned in fpr1 and fpr2; - Larger structures values are allocated space and a pointer is passed as the first argument. */ switch (cif->rtype->type) --- 686,710 ---- /* Space for the frame pointer, callee's LR, CR, etc, and for the asm's temp regs. */ ! bytes = (LINKAGE_AREA_GPRS + ASM_NEEDS_REGISTERS) * sizeof(unsigned long); ! /* Return value handling. ! The rules m32 are as follows: - 32-bit (or less) integer values are returned in gpr3; ! - structures of size <= 4 bytes also returned in gpr3; ! - 64-bit integer values [??? and structures between 5 and 8 bytes] are ! returned in gpr3 and gpr4; - Single/double FP values are returned in fpr1; - Long double FP (if not equivalent to double) values are returned in fpr1 and fpr2; + m64: + - 64-bit or smaller integral values are returned in GPR3 + - Single/double FP values are returned in fpr1; + - Long double FP values are returned in fpr1 and fpr2; + m64 Structures: + - If the structure could be accommodated in registers were it to be the + first argument to a routine, then it is returned in those registers. + m32/m64 structures otherwise: - Larger structures values are allocated space and a pointer is passed as the first argument. */ switch (cif->rtype->type) *************** ffi_prep_cif_machdep (ffi_cif *cif) *** 410,418 **** --- 733,774 ---- break; case FFI_TYPE_STRUCT: + #if defined(POWERPC_DARWIN64) + { + /* Can we fit the struct into regs? */ + if (darwin64_struct_ret_by_value_p (cif->rtype)) + { + unsigned nfpr = 0; + flags |= FLAG_RETURNS_STRUCT; + if (cif->rtype->size != 16) + darwin64_scan_struct_for_floats (cif->rtype, &nfpr) ; + else + flags |= FLAG_RETURNS_128BITS; + /* Will be 0 for 16byte struct. */ + if (nfpr) + flags |= FLAG_RETURNS_FP; + } + else /* By ref. */ + { + flags |= FLAG_RETVAL_REFERENCE; + flags |= FLAG_RETURNS_NOTHING; + intarg_count++; + } + } + #elif defined(DARWIN_PPC) + if (cif->rtype->size <= 4) + flags |= FLAG_RETURNS_STRUCT; + else /* else by reference. */ + { + flags |= FLAG_RETVAL_REFERENCE; + flags |= FLAG_RETURNS_NOTHING; + intarg_count++; + } + #else /* assume we pass by ref. */ flags |= FLAG_RETVAL_REFERENCE; flags |= FLAG_RETURNS_NOTHING; intarg_count++; + #endif break; case FFI_TYPE_VOID: flags |= FLAG_RETURNS_NOTHING; *************** ffi_prep_cif_machdep (ffi_cif *cif) *** 425,481 **** /* The first NUM_GPR_ARG_REGISTERS words of integer arguments, and the first NUM_FPR_ARG_REGISTERS fp arguments, go in registers; the rest ! goes on the stack. Structures are passed as a pointer to a copy of ! the structure. Stuff on the stack needs to keep proper alignment. */ for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++) { switch ((*ptr)->type) { case FFI_TYPE_FLOAT: case FFI_TYPE_DOUBLE: fparg_count++; /* If this FP arg is going on the stack, it must be 8-byte-aligned. */ if (fparg_count > NUM_FPR_ARG_REGISTERS ! && intarg_count%2 != 0) intarg_count++; break; #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE - case FFI_TYPE_LONGDOUBLE: fparg_count += 2; /* If this FP arg is going on the stack, it must be ! 8-byte-aligned. */ ! if (fparg_count > NUM_FPR_ARG_REGISTERS ! && intarg_count%2 != 0) ! intarg_count++; ! intarg_count +=2; break; #endif case FFI_TYPE_UINT64: case FFI_TYPE_SINT64: /* 'long long' arguments are passed as two words, but either both words must fit in registers or both go on the stack. If they go on the stack, they must be 8-byte-aligned. */ if (intarg_count == NUM_GPR_ARG_REGISTERS-1 ! || (intarg_count >= NUM_GPR_ARG_REGISTERS && intarg_count%2 != 0)) intarg_count++; intarg_count += 2; break; case FFI_TYPE_STRUCT: size_al = (*ptr)->size; /* If the first member of the struct is a double, then align ! the struct to double-word. */ if ((*ptr)->elements[0]->type == FFI_TYPE_DOUBLE) ! size_al = ALIGN((*ptr)->size, 8); ! #ifdef POWERPC64 intarg_count += (size_al + 7) / 8; ! #else intarg_count += (size_al + 3) / 4; #endif break; --- 781,863 ---- /* The first NUM_GPR_ARG_REGISTERS words of integer arguments, and the first NUM_FPR_ARG_REGISTERS fp arguments, go in registers; the rest ! goes on the stack. ! ??? Structures are passed as a pointer to a copy of the structure. ! Stuff on the stack needs to keep proper alignment. ! For m64 the count is effectively of half-GPRs. */ for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++) { + unsigned align_words; switch ((*ptr)->type) { case FFI_TYPE_FLOAT: case FFI_TYPE_DOUBLE: fparg_count++; + #if !defined(POWERPC_DARWIN64) /* If this FP arg is going on the stack, it must be 8-byte-aligned. */ if (fparg_count > NUM_FPR_ARG_REGISTERS ! && (intarg_count & 0x01) != 0) intarg_count++; + #endif break; #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE: fparg_count += 2; /* If this FP arg is going on the stack, it must be ! 16-byte-aligned. */ ! if (fparg_count >= NUM_FPR_ARG_REGISTERS) ! #if defined (POWERPC64) ! intarg_count = ALIGN(intarg_count, 2); ! #else ! intarg_count = ALIGN(intarg_count, 4); ! #endif break; #endif case FFI_TYPE_UINT64: case FFI_TYPE_SINT64: + #if defined(POWERPC64) + intarg_count++; + #else /* 'long long' arguments are passed as two words, but either both words must fit in registers or both go on the stack. If they go on the stack, they must be 8-byte-aligned. */ if (intarg_count == NUM_GPR_ARG_REGISTERS-1 ! || (intarg_count >= NUM_GPR_ARG_REGISTERS ! && (intarg_count & 0x01) != 0)) intarg_count++; intarg_count += 2; + #endif break; case FFI_TYPE_STRUCT: size_al = (*ptr)->size; + #if defined(POWERPC_DARWIN64) + align_words = (*ptr)->alignment >> 3; + if (align_words) + intarg_count = ALIGN(intarg_count, align_words); + /* Base size of the struct. */ + intarg_count += (size_al + 7) / 8; + /* If 16 bytes then don't worry about floats. */ + if (size_al != 16) + /* Scan through for floats to be placed in regs. */ + darwin64_scan_struct_for_floats (*ptr, &fparg_count) ; + #else + align_words = (*ptr)->alignment >> 2; + if (align_words) + intarg_count = ALIGN(intarg_count, align_words); /* If the first member of the struct is a double, then align ! the struct to double-word. if ((*ptr)->elements[0]->type == FFI_TYPE_DOUBLE) ! size_al = ALIGN((*ptr)->size, 8); */ ! # ifdef POWERPC64 intarg_count += (size_al + 7) / 8; ! # else intarg_count += (size_al + 3) / 4; + # endif #endif break; *************** ffi_prep_cif_machdep (ffi_cif *cif) *** 490,498 **** --- 872,889 ---- if (fparg_count != 0) flags |= FLAG_FP_ARGUMENTS; + #if defined(POWERPC_DARWIN64) + /* Space to image the FPR registers, if needed - which includes when they might be + used in a struct return. */ + if (fparg_count != 0 + || ((flags & FLAG_RETURNS_STRUCT) + && (flags & FLAG_RETURNS_FP))) + bytes += NUM_FPR_ARG_REGISTERS * sizeof(double); + #else /* Space for the FPR registers, if needed. */ if (fparg_count != 0) bytes += NUM_FPR_ARG_REGISTERS * sizeof(double); + #endif /* Stack space. */ #ifdef POWERPC64 *************** ffi_prep_cif_machdep (ffi_cif *cif) *** 506,512 **** bytes += NUM_GPR_ARG_REGISTERS * sizeof(long); /* The stack space allocated needs to be a multiple of 16 bytes. */ ! bytes = (bytes + 15) & ~0xF; cif->flags = flags; cif->bytes = bytes; --- 897,903 ---- bytes += NUM_GPR_ARG_REGISTERS * sizeof(long); /* The stack space allocated needs to be a multiple of 16 bytes. */ ! bytes = ALIGN(bytes, 16) ; cif->flags = flags; cif->bytes = bytes; *************** ffi_prep_cif_machdep (ffi_cif *cif) *** 516,523 **** extern void ffi_call_AIX(extended_cif *, long, unsigned, unsigned *, void (*fn)(void), void (*fn2)(void)); extern void ffi_call_DARWIN(extended_cif *, long, unsigned, unsigned *, ! void (*fn)(void), void (*fn2)(void)); void ffi_call (ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) --- 907,915 ---- extern void ffi_call_AIX(extended_cif *, long, unsigned, unsigned *, void (*fn)(void), void (*fn2)(void)); + extern void ffi_call_DARWIN(extended_cif *, long, unsigned, unsigned *, ! void (*fn)(void), void (*fn2)(void), ffi_type*); void ffi_call (ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) *************** ffi_call (ffi_cif *cif, void (*fn)(void) *** 542,552 **** { case FFI_AIX: ffi_call_AIX(&ecif, -(long)cif->bytes, cif->flags, ecif.rvalue, fn, ! ffi_prep_args); break; case FFI_DARWIN: ffi_call_DARWIN(&ecif, -(long)cif->bytes, cif->flags, ecif.rvalue, fn, ! ffi_prep_args); break; default: FFI_ASSERT(0); --- 934,944 ---- { case FFI_AIX: ffi_call_AIX(&ecif, -(long)cif->bytes, cif->flags, ecif.rvalue, fn, ! FFI_FN(ffi_prep_args)); break; case FFI_DARWIN: ffi_call_DARWIN(&ecif, -(long)cif->bytes, cif->flags, ecif.rvalue, fn, ! FFI_FN(ffi_prep_args), cif->rtype); break; default: FFI_ASSERT(0); *************** typedef struct aix_fd_struct { *** 566,623 **** } aix_fd; /* here I'd like to add the stack frame layout we use in darwin_closure.S ! and aix_clsoure.S ! SP previous -> +---------------------------------------+ <--- child frame ! | back chain to caller 4 | ! +---------------------------------------+ 4 ! | saved CR 4 | ! +---------------------------------------+ 8 ! | saved LR 4 | ! +---------------------------------------+ 12 ! | reserved for compilers 4 | ! +---------------------------------------+ 16 ! | reserved for binders 4 | ! +---------------------------------------+ 20 ! | saved TOC pointer 4 | ! +---------------------------------------+ 24 ! | always reserved 8*4=32 (previous GPRs)| ! | according to the linkage convention | ! | from AIX | ! +---------------------------------------+ 56 ! | our FPR area 13*8=104 | ! | f1 | ! | . | ! | f13 | ! +---------------------------------------+ 160 ! | result area 8 | ! +---------------------------------------+ 168 ! | alignement to the next multiple of 16 | ! SP current --> +---------------------------------------+ 176 <- parent frame ! | back chain to caller 4 | ! +---------------------------------------+ 180 ! | saved CR 4 | ! +---------------------------------------+ 184 ! | saved LR 4 | ! +---------------------------------------+ 188 ! | reserved for compilers 4 | ! +---------------------------------------+ 192 ! | reserved for binders 4 | ! +---------------------------------------+ 196 ! | saved TOC pointer 4 | ! +---------------------------------------+ 200 ! | always reserved 8*4=32 we store our | ! | GPRs here | ! | r3 | ! | . | ! | r10 | ! +---------------------------------------+ 232 ! | overflow part | ! +---------------------------------------+ xxx ! | ???? | ! +---------------------------------------+ xxx */ ffi_status ffi_prep_closure_loc (ffi_closure* closure, ffi_cif* cif, --- 958,1005 ---- } aix_fd; /* here I'd like to add the stack frame layout we use in darwin_closure.S ! and aix_closure.S ! m32/m64 ! ! The stack layout looks like this: ! ! | Additional params... | | Higher address ! ~ ~ ~ ! | Parameters (at least 8*4/8=32/64) | | NUM_GPR_ARG_REGISTERS ! |--------------------------------------------| | ! | TOC=R2 (AIX) Reserved (Darwin) 4/8 | | ! |--------------------------------------------| | ! | Reserved 2*4/8 | | ! |--------------------------------------------| | ! | Space for callee's LR 4/8 | | ! |--------------------------------------------| | ! | Saved CR [low word for m64] 4/8 | | ! |--------------------------------------------| | ! | Current backchain pointer 4/8 |-/ Parent's frame. ! |--------------------------------------------| <+ <<< on entry to ffi_closure_ASM ! | Result Bytes 16 | | ! |--------------------------------------------| | ! ~ padding to 16-byte alignment ~ ~ ! |--------------------------------------------| | ! | NUM_FPR_ARG_REGISTERS slots | | ! | here fp13 .. fp1 13*8 | | ! |--------------------------------------------| | ! | R3..R10 8*4/8=32/64 | | NUM_GPR_ARG_REGISTERS ! |--------------------------------------------| | ! | TOC=R2 (AIX) Reserved (Darwin) 4/8 | | ! |--------------------------------------------| | stack | ! | Reserved [compiler,binder] 2*4/8 | | grows | ! |--------------------------------------------| | down V ! | Space for callee's LR 4/8 | | ! |--------------------------------------------| | lower addresses ! | Saved CR [low word for m64] 4/8 | | ! |--------------------------------------------| | stack pointer here ! | Current backchain pointer 4/8 |-/ during ! |--------------------------------------------| <<< ffi_closure_ASM. */ + ffi_status ffi_prep_closure_loc (ffi_closure* closure, ffi_cif* cif, *************** ffi_prep_closure_loc (ffi_closure* closu *** 631,660 **** switch (cif->abi) { ! case FFI_DARWIN: ! FFI_ASSERT (cif->abi == FFI_DARWIN); ! tramp = (unsigned int *) &closure->tramp[0]; ! tramp[0] = 0x7c0802a6; /* mflr r0 */ ! tramp[1] = 0x429f000d; /* bcl- 20,4*cr7+so,0x10 */ ! tramp[4] = 0x7d6802a6; /* mflr r11 */ ! tramp[5] = 0x818b0000; /* lwz r12,0(r11) function address */ ! tramp[6] = 0x7c0803a6; /* mtlr r0 */ ! tramp[7] = 0x7d8903a6; /* mtctr r12 */ ! tramp[8] = 0x816b0004; /* lwz r11,4(r11) static chain */ ! tramp[9] = 0x4e800420; /* bctr */ ! tramp[2] = (unsigned long) ffi_closure_ASM; /* function */ ! tramp[3] = (unsigned long) codeloc; /* context */ ! closure->cif = cif; ! closure->fun = fun; ! closure->user_data = user_data; ! /* Flush the icache. Only necessary on Darwin. */ ! flush_range(codeloc, FFI_TRAMPOLINE_SIZE); ! break; case FFI_AIX: --- 1013,1056 ---- switch (cif->abi) { ! case FFI_DARWIN: ! FFI_ASSERT (cif->abi == FFI_DARWIN); ! tramp = (unsigned int *) &closure->tramp[0]; ! #if defined(POWERPC_DARWIN64) ! tramp[0] = 0x7c0802a6; /* mflr r0 */ ! tramp[1] = 0x429f0015; /* bcl- 20,4*cr7+so, +0x18 (L1) */ ! /* We put the addresses here. */ ! tramp[6] = 0x7d6802a6; /*L1: mflr r11 */ ! tramp[7] = 0xe98b0000; /* ld r12,0(r11) function address */ ! tramp[8] = 0x7c0803a6; /* mtlr r0 */ ! tramp[9] = 0x7d8903a6; /* mtctr r12 */ ! tramp[10] = 0xe96b0008; /* lwz r11,8(r11) static chain */ ! tramp[11] = 0x4e800420; /* bctr */ ! *((unsigned long *)&tramp[2]) = (unsigned long) ffi_closure_ASM; /* function */ ! *((unsigned long *)&tramp[4]) = (unsigned long) codeloc; /* context */ ! #else ! tramp[0] = 0x7c0802a6; /* mflr r0 */ ! tramp[1] = 0x429f000d; /* bcl- 20,4*cr7+so,0x10 */ ! tramp[4] = 0x7d6802a6; /* mflr r11 */ ! tramp[5] = 0x818b0000; /* lwz r12,0(r11) function address */ ! tramp[6] = 0x7c0803a6; /* mtlr r0 */ ! tramp[7] = 0x7d8903a6; /* mtctr r12 */ ! tramp[8] = 0x816b0004; /* lwz r11,4(r11) static chain */ ! tramp[9] = 0x4e800420; /* bctr */ ! tramp[2] = (unsigned long) ffi_closure_ASM; /* function */ ! tramp[3] = (unsigned long) codeloc; /* context */ ! #endif ! closure->cif = cif; ! closure->fun = fun; ! closure->user_data = user_data; ! /* Flush the icache. Only necessary on Darwin. */ ! flush_range(codeloc, FFI_TRAMPOLINE_SIZE); ! break; case FFI_AIX: *************** typedef union *** 708,714 **** double d; } ffi_dblfl; ! int ffi_closure_helper_DARWIN (ffi_closure *, void *, unsigned long *, ffi_dblfl *); --- 1104,1110 ---- double d; } ffi_dblfl; ! ffi_type * ffi_closure_helper_DARWIN (ffi_closure *, void *, unsigned long *, ffi_dblfl *); *************** ffi_closure_helper_DARWIN (ffi_closure * *** 719,725 **** up space for a return value, ffi_closure_ASM invokes the following helper function to do most of the work. */ ! int ffi_closure_helper_DARWIN (ffi_closure *closure, void *rvalue, unsigned long *pgr, ffi_dblfl *pfr) { --- 1115,1121 ---- up space for a return value, ffi_closure_ASM invokes the following helper function to do most of the work. */ ! ffi_type * ffi_closure_helper_DARWIN (ffi_closure *closure, void *rvalue, unsigned long *pgr, ffi_dblfl *pfr) { *************** ffi_closure_helper_DARWIN (ffi_closure * *** 741,756 **** ffi_cif * cif; ffi_dblfl * end_pfr = pfr + NUM_FPR_ARG_REGISTERS; unsigned size_al; cif = closure->cif; avalue = alloca (cif->nargs * sizeof(void *)); - /* Copy the caller's structure return value address so that the closure - returns the data directly to the caller. */ if (cif->rtype->type == FFI_TYPE_STRUCT) { rvalue = (void *) *pgr; pgr++; } i = 0; --- 1137,1168 ---- ffi_cif * cif; ffi_dblfl * end_pfr = pfr + NUM_FPR_ARG_REGISTERS; unsigned size_al; + #if defined(POWERPC_DARWIN64) + unsigned fpsused = 0; + #endif cif = closure->cif; avalue = alloca (cif->nargs * sizeof(void *)); if (cif->rtype->type == FFI_TYPE_STRUCT) { + #if defined(POWERPC_DARWIN64) + if (!darwin64_struct_ret_by_value_p (cif->rtype)) + { + /* Won't fit into the regs - return by ref. */ + rvalue = (void *) *pgr; + pgr++; + } + #elif defined(DARWIN_PPC) + if (cif->rtype->size > 4) + { + rvalue = (void *) *pgr; + pgr++; + } + #else /* assume we return by ref. */ rvalue = (void *) *pgr; pgr++; + #endif } i = 0; *************** ffi_closure_helper_DARWIN (ffi_closure * *** 764,770 **** { case FFI_TYPE_SINT8: case FFI_TYPE_UINT8: ! #ifdef POWERPC64 avalue[i] = (char *) pgr + 7; #else avalue[i] = (char *) pgr + 3; --- 1176,1182 ---- { case FFI_TYPE_SINT8: case FFI_TYPE_UINT8: ! #if defined(POWERPC64) avalue[i] = (char *) pgr + 7; #else avalue[i] = (char *) pgr + 3; *************** ffi_closure_helper_DARWIN (ffi_closure * *** 774,780 **** case FFI_TYPE_SINT16: case FFI_TYPE_UINT16: ! #ifdef POWERPC64 avalue[i] = (char *) pgr + 6; #else avalue[i] = (char *) pgr + 2; --- 1186,1192 ---- case FFI_TYPE_SINT16: case FFI_TYPE_UINT16: ! #if defined(POWERPC64) avalue[i] = (char *) pgr + 6; #else avalue[i] = (char *) pgr + 2; *************** ffi_closure_helper_DARWIN (ffi_closure * *** 784,790 **** case FFI_TYPE_SINT32: case FFI_TYPE_UINT32: ! #ifdef POWERPC64 avalue[i] = (char *) pgr + 4; #else case FFI_TYPE_POINTER: --- 1196,1202 ---- case FFI_TYPE_SINT32: case FFI_TYPE_UINT32: ! #if defined(POWERPC64) avalue[i] = (char *) pgr + 4; #else case FFI_TYPE_POINTER: *************** ffi_closure_helper_DARWIN (ffi_closure * *** 794,827 **** break; case FFI_TYPE_STRUCT: - #ifdef POWERPC64 size_al = arg_types[i]->size; ! if (arg_types[i]->elements[0]->type == FFI_TYPE_DOUBLE) ! size_al = ALIGN (arg_types[i]->size, 8); ! if (size_al < 3 && cif->abi == FFI_DARWIN) ! avalue[i] = (void *) pgr + 8 - size_al; ! else ! avalue[i] = (void *) pgr; pgr += (size_al + 7) / 8; #else - /* Structures that match the basic modes (QI 1 byte, HI 2 bytes, - SI 4 bytes) are aligned as if they were those modes. */ - size_al = arg_types[i]->size; /* If the first member of the struct is a double, then align the struct to double-word. */ if (arg_types[i]->elements[0]->type == FFI_TYPE_DOUBLE) size_al = ALIGN(arg_types[i]->size, 8); if (size_al < 3 && cif->abi == FFI_DARWIN) ! avalue[i] = (void*) pgr + 4 - size_al; else ! avalue[i] = (void*) pgr; pgr += (size_al + 3) / 4; #endif break; case FFI_TYPE_SINT64: case FFI_TYPE_UINT64: ! #ifdef POWERPC64 case FFI_TYPE_POINTER: avalue[i] = pgr; pgr++; --- 1206,1258 ---- break; case FFI_TYPE_STRUCT: size_al = arg_types[i]->size; ! #if defined(POWERPC_DARWIN64) ! pgr = (unsigned long *)ALIGN((char *)pgr, arg_types[i]->alignment); ! if (size_al < 3 || size_al == 4) ! { ! avalue[i] = ((char *)pgr)+8-size_al; ! if (arg_types[i]->elements[0]->type == FFI_TYPE_FLOAT ! && fpsused < NUM_FPR_ARG_REGISTERS) ! { ! *(float *)pgr = (float) *(double *)pfr; ! pfr++; ! fpsused++; ! } ! } ! else ! { ! if (size_al != 16) ! pfr = (ffi_dblfl *) ! darwin64_struct_floats_to_mem (arg_types[i], (char *)pgr, ! (double *)pfr, &fpsused); ! avalue[i] = pgr; ! } pgr += (size_al + 7) / 8; #else /* If the first member of the struct is a double, then align the struct to double-word. */ if (arg_types[i]->elements[0]->type == FFI_TYPE_DOUBLE) size_al = ALIGN(arg_types[i]->size, 8); + # if defined(POWERPC64) + FFI_ASSERT (cif->abi != FFI_DARWIN) + avalue[i] = pgr; + pgr += (size_al + 7) / 8; + # else + /* Structures that match the basic modes (QI 1 byte, HI 2 bytes, + SI 4 bytes) are aligned as if they were those modes. */ if (size_al < 3 && cif->abi == FFI_DARWIN) ! avalue[i] = (char*) pgr + 4 - size_al; else ! avalue[i] = pgr; pgr += (size_al + 3) / 4; + # endif #endif break; case FFI_TYPE_SINT64: case FFI_TYPE_UINT64: ! #if defined(POWERPC64) case FFI_TYPE_POINTER: avalue[i] = pgr; pgr++; *************** ffi_closure_helper_DARWIN (ffi_closure * *** 924,928 **** (closure->fun) (cif, rvalue, avalue, closure->user_data); /* Tell ffi_closure_ASM to perform return type promotions. */ ! return cif->rtype->type; } --- 1355,1359 ---- (closure->fun) (cif, rvalue, avalue, closure->user_data); /* Tell ffi_closure_ASM to perform return type promotions. */ ! return cif->rtype; } diff -Nrcpad gcc-4.5.2/libffi/src/powerpc/ffitarget.h gcc-4.6.0/libffi/src/powerpc/ffitarget.h *** gcc-4.5.2/libffi/src/powerpc/ffitarget.h Mon Nov 30 23:34:33 2009 --- gcc-4.6.0/libffi/src/powerpc/ffitarget.h Sat Dec 18 08:56:46 2010 *************** *** 1,6 **** /* -----------------------------------------------------------------*-C-*- ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc. ! Copyright (C) 2007, 2008 Free Software Foundation, Inc Target configuration macros for PowerPC. Permission is hereby granted, free of charge, to any person obtaining --- 1,6 ---- /* -----------------------------------------------------------------*-C-*- ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc. ! Copyright (C) 2007, 2008, 2010 Free Software Foundation, Inc Target configuration macros for PowerPC. Permission is hereby granted, free of charge, to any person obtaining *************** *** 31,42 **** /* ---- System specific configurations ----------------------------------- */ #if defined (POWERPC) && defined (__powerpc64__) /* linux64 */ #define POWERPC64 ! #elif defined (POWERPC_DARWIN) && defined (__ppc64__) /* Darwin */ #define POWERPC64 #elif defined (POWERPC_AIX) && defined (__64BIT__) /* AIX64 */ #define POWERPC64 #endif #ifndef LIBFFI_ASM typedef unsigned long ffi_arg; --- 31,51 ---- /* ---- System specific configurations ----------------------------------- */ #if defined (POWERPC) && defined (__powerpc64__) /* linux64 */ + #ifndef POWERPC64 #define POWERPC64 ! #endif ! #elif defined (POWERPC_DARWIN) && defined (__ppc64__) /* Darwin64 */ ! #ifndef POWERPC64 #define POWERPC64 + #endif + #ifndef POWERPC_DARWIN64 + #define POWERPC_DARWIN64 + #endif #elif defined (POWERPC_AIX) && defined (__64BIT__) /* AIX64 */ + #ifndef POWERPC64 #define POWERPC64 #endif + #endif #ifndef LIBFFI_ASM typedef unsigned long ffi_arg; *************** typedef enum ffi_abi { *** 108,116 **** #define FFI_SYSV_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 2) #if defined(POWERPC64) || defined(POWERPC_AIX) ! #define FFI_TRAMPOLINE_SIZE 24 #else /* POWERPC || POWERPC_AIX */ ! #define FFI_TRAMPOLINE_SIZE 40 #endif #ifndef LIBFFI_ASM --- 117,129 ---- #define FFI_SYSV_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 2) #if defined(POWERPC64) || defined(POWERPC_AIX) ! # if defined(POWERPC_DARWIN64) ! # define FFI_TRAMPOLINE_SIZE 48 ! # else ! # define FFI_TRAMPOLINE_SIZE 24 ! # endif #else /* POWERPC || POWERPC_AIX */ ! # define FFI_TRAMPOLINE_SIZE 40 #endif #ifndef LIBFFI_ASM diff -Nrcpad gcc-4.5.2/libffi/src/prep_cif.c gcc-4.6.0/libffi/src/prep_cif.c *** gcc-4.5.2/libffi/src/prep_cif.c Thu Jun 4 15:11:12 2009 --- gcc-4.6.0/libffi/src/prep_cif.c Fri Aug 6 05:24:11 2010 *************** ffi_status ffi_prep_cif(ffi_cif *cif, ff *** 109,124 **** /* Perform a sanity check on the return type */ FFI_ASSERT_VALID_TYPE(cif->rtype); ! /* x86-64 and s390 stack space allocation is handled in prep_machdep. */ ! #if !defined M68K && !defined __x86_64__ && !defined S390 && !defined PA /* Make space for the return structure pointer */ if (cif->rtype->type == FFI_TYPE_STRUCT #ifdef SPARC && (cif->abi != FFI_V9 || cif->rtype->size > 32) #endif - #ifdef X86_DARWIN - && (cif->rtype->size > 8) - #endif ) bytes = STACK_ARG_SIZE(sizeof(void*)); #endif --- 109,121 ---- /* Perform a sanity check on the return type */ FFI_ASSERT_VALID_TYPE(cif->rtype); ! /* x86, x86-64 and s390 stack space allocation is handled in prep_machdep. */ ! #if !defined M68K && !defined __i386__ && !defined __x86_64__ && !defined S390 && !defined PA /* Make space for the return structure pointer */ if (cif->rtype->type == FFI_TYPE_STRUCT #ifdef SPARC && (cif->abi != FFI_V9 || cif->rtype->size > 32) #endif ) bytes = STACK_ARG_SIZE(sizeof(void*)); #endif *************** ffi_status ffi_prep_cif(ffi_cif *cif, ff *** 134,140 **** check after the initialization. */ FFI_ASSERT_VALID_TYPE(*ptr); ! #if !defined __x86_64__ && !defined S390 && !defined PA #ifdef SPARC if (((*ptr)->type == FFI_TYPE_STRUCT && ((*ptr)->size > 16 || cif->abi != FFI_V9)) --- 131,137 ---- check after the initialization. */ FFI_ASSERT_VALID_TYPE(*ptr); ! #if !defined __i386__ && !defined __x86_64__ && !defined S390 && !defined PA #ifdef SPARC if (((*ptr)->type == FFI_TYPE_STRUCT && ((*ptr)->size > 16 || cif->abi != FFI_V9)) diff -Nrcpad gcc-4.5.2/libffi/src/s390/ffitarget.h gcc-4.6.0/libffi/src/s390/ffitarget.h *** gcc-4.5.2/libffi/src/s390/ffitarget.h Thu Jun 4 15:11:12 2009 --- gcc-4.6.0/libffi/src/s390/ffitarget.h Fri Aug 6 12:26:52 2010 *************** *** 28,35 **** --- 28,37 ---- #define LIBFFI_TARGET_H #if defined (__s390x__) + #ifndef S390X #define S390X #endif + #endif /* ---- System specific configurations ----------------------------------- */ diff -Nrcpad gcc-4.5.2/libffi/src/sparc/ffitarget.h gcc-4.6.0/libffi/src/sparc/ffitarget.h *** gcc-4.5.2/libffi/src/sparc/ffitarget.h Thu Jun 4 15:11:12 2009 --- gcc-4.6.0/libffi/src/sparc/ffitarget.h Fri Aug 6 12:26:52 2010 *************** *** 30,37 **** --- 30,39 ---- /* ---- System specific configurations ----------------------------------- */ #if defined(__arch64__) || defined(__sparcv9) + #ifndef SPARC64 #define SPARC64 #endif + #endif #ifndef LIBFFI_ASM typedef unsigned long ffi_arg; diff -Nrcpad gcc-4.5.2/libffi/src/x86/ffi.c gcc-4.6.0/libffi/src/x86/ffi.c *** gcc-4.5.2/libffi/src/x86/ffi.c Thu Sep 17 20:54:56 2009 --- gcc-4.6.0/libffi/src/x86/ffi.c Mon Jan 3 20:52:22 2011 *************** *** 3,9 **** Copyright (c) 2002 Ranjit Mathew Copyright (c) 2002 Bo Thorsen Copyright (c) 2002 Roger Sayle ! Copyright (C) 2008 Free Software Foundation, Inc. x86 Foreign Function Interface --- 3,9 ---- Copyright (c) 2002 Ranjit Mathew Copyright (c) 2002 Bo Thorsen Copyright (c) 2002 Roger Sayle ! Copyright (C) 2008, 2010 Free Software Foundation, Inc. x86 Foreign Function Interface *************** void ffi_prep_args(char *stack, extended *** 148,160 **** /* Perform machine dependent cif processing */ ffi_status ffi_prep_cif_machdep(ffi_cif *cif) { /* Set the return type flag */ switch (cif->rtype->type) { case FFI_TYPE_VOID: - #ifdef X86 - case FFI_TYPE_STRUCT: - #endif #if defined(X86) || defined (X86_WIN32) || defined(X86_FREEBSD) || defined(X86_DARWIN) || defined(X86_WIN64) case FFI_TYPE_UINT8: case FFI_TYPE_UINT16: --- 148,160 ---- /* Perform machine dependent cif processing */ ffi_status ffi_prep_cif_machdep(ffi_cif *cif) { + unsigned int i; + ffi_type **ptr; + /* Set the return type flag */ switch (cif->rtype->type) { case FFI_TYPE_VOID: #if defined(X86) || defined (X86_WIN32) || defined(X86_FREEBSD) || defined(X86_DARWIN) || defined(X86_WIN64) case FFI_TYPE_UINT8: case FFI_TYPE_UINT16: *************** ffi_status ffi_prep_cif_machdep(ffi_cif *** 165,171 **** case FFI_TYPE_UINT32: case FFI_TYPE_SINT32: #endif - case FFI_TYPE_SINT64: case FFI_TYPE_FLOAT: case FFI_TYPE_DOUBLE: --- 165,170 ---- *************** ffi_status ffi_prep_cif_machdep(ffi_cif *** 184,191 **** cif->flags = FFI_TYPE_SINT64; break; - #ifndef X86 case FFI_TYPE_STRUCT: if (cif->rtype->size == 1) { cif->flags = FFI_TYPE_SMALL_STRUCT_1B; /* same as char size */ --- 183,190 ---- cif->flags = FFI_TYPE_SINT64; break; case FFI_TYPE_STRUCT: + #ifndef X86 if (cif->rtype->size == 1) { cif->flags = FFI_TYPE_SMALL_STRUCT_1B; /* same as char size */ *************** ffi_status ffi_prep_cif_machdep(ffi_cif *** 207,221 **** cif->flags = FFI_TYPE_SINT64; /* same as int64 type */ } else { cif->flags = FFI_TYPE_STRUCT; ! #ifdef X86_WIN64 ! // allocate space for return value pointer cif->bytes += ALIGN(sizeof(void*), FFI_SIZEOF_ARG); - #endif } break; - #endif default: #ifdef X86_WIN64 --- 206,218 ---- cif->flags = FFI_TYPE_SINT64; /* same as int64 type */ } else + #endif { cif->flags = FFI_TYPE_STRUCT; ! /* allocate space for return value pointer */ cif->bytes += ALIGN(sizeof(void*), FFI_SIZEOF_ARG); } break; default: #ifdef X86_WIN64 *************** ffi_status ffi_prep_cif_machdep(ffi_cif *** 229,269 **** break; } ! #ifdef X86_DARWIN ! cif->bytes = (cif->bytes + 15) & ~0xF; ! #endif #ifdef X86_WIN64 ! { ! unsigned int i; ! ffi_type **ptr; ! ! for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++) ! { ! if (((*ptr)->alignment - 1) & cif->bytes) ! cif->bytes = ALIGN(cif->bytes, (*ptr)->alignment); ! cif->bytes += ALIGN((*ptr)->size, FFI_SIZEOF_ARG); ! } ! } ! // ensure space for storing four registers cif->bytes += 4 * sizeof(ffi_arg); #endif return FFI_OK; } - extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *, - unsigned, unsigned, unsigned *, void (*fn)(void)); - - #ifdef X86_WIN32 - extern void ffi_call_STDCALL(void (*)(char *, extended_cif *), extended_cif *, - unsigned, unsigned, unsigned *, void (*fn)(void)); - - #endif /* X86_WIN32 */ #ifdef X86_WIN64 extern int ffi_call_win64(void (*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void (*fn)(void)); #endif void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) --- 226,261 ---- break; } ! for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++) ! { ! if (((*ptr)->alignment - 1) & cif->bytes) ! cif->bytes = ALIGN(cif->bytes, (*ptr)->alignment); ! cif->bytes += ALIGN((*ptr)->size, FFI_SIZEOF_ARG); ! } #ifdef X86_WIN64 ! /* ensure space for storing four registers */ cif->bytes += 4 * sizeof(ffi_arg); #endif + #ifdef X86_DARWIN + cif->bytes = (cif->bytes + 15) & ~0xF; + #endif + return FFI_OK; } #ifdef X86_WIN64 extern int ffi_call_win64(void (*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void (*fn)(void)); + #elif defined(X86_WIN32) + extern void + ffi_call_win32(void (*)(char *, extended_cif *), extended_cif *, + unsigned, unsigned, unsigned *, void (*fn)(void)); + #else + extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *, + unsigned, unsigned, unsigned *, void (*fn)(void)); #endif void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) *************** void ffi_call(ffi_cif *cif, void (*fn)(v *** 300,307 **** #ifdef X86_WIN64 case FFI_WIN64: { ! // Make copies of all struct arguments ! // NOTE: not sure if responsibility should be here or in caller unsigned int i; for (i=0; i < cif->nargs;i++) { size_t size = cif->arg_types[i]->size; --- 292,299 ---- #ifdef X86_WIN64 case FFI_WIN64: { ! /* Make copies of all struct arguments ! NOTE: not sure if responsibility should be here or in caller */ unsigned int i; for (i=0; i < cif->nargs;i++) { size_t size = cif->arg_types[i]->size; *************** void ffi_call(ffi_cif *cif, void (*fn)(v *** 321,338 **** cif->flags, ecif.rvalue, fn); } break; #else case FFI_SYSV: ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, cif->flags, ecif.rvalue, fn); break; ! #ifdef X86_WIN32 ! case FFI_STDCALL: ! ffi_call_STDCALL(ffi_prep_args, &ecif, cif->bytes, cif->flags, ! ecif.rvalue, fn); ! break; ! #endif /* X86_WIN32 */ ! #endif /* X86_WIN64 */ default: FFI_ASSERT(0); break; --- 313,330 ---- cif->flags, ecif.rvalue, fn); } break; + #elif defined(X86_WIN32) + case FFI_SYSV: + case FFI_STDCALL: + ffi_call_win32(ffi_prep_args, &ecif, cif->bytes, cif->flags, + ecif.rvalue, fn); + break; #else case FFI_SYSV: ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, cif->flags, ecif.rvalue, fn); break; ! #endif default: FFI_ASSERT(0); break; *************** void ffi_call(ffi_cif *cif, void (*fn)(v *** 342,347 **** --- 334,341 ---- /** private members **/ + /* The following __attribute__((regparm(1))) decorations will have no effect + on MSVC - standard cdecl convention applies. */ static void ffi_prep_incoming_args_SYSV (char *stack, void **ret, void** args, ffi_cif* cif); void FFI_HIDDEN ffi_closure_SYSV (ffi_closure *) *************** ffi_closure_win64_inner (ffi_closure *cl *** 390,400 **** } #else ! unsigned int FFI_HIDDEN ! ffi_closure_SYSV_inner (closure, respp, args) ! ffi_closure *closure; ! void **respp; ! void *args; { /* our various things... */ ffi_cif *cif; --- 384,391 ---- } #else ! unsigned int FFI_HIDDEN __attribute__ ((regparm(1))) ! ffi_closure_SYSV_inner (ffi_closure *closure, void **respp, void *args) { /* our various things... */ ffi_cif *cif; *************** ffi_prep_incoming_args_SYSV(char *stack, *** 505,511 **** /* How to make a trampoline. Derived from gcc/config/i386/i386.c. */ #define FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX) \ ! ({ unsigned char *__tramp = (unsigned char*)(TRAMP); \ unsigned int __fun = (unsigned int)(FUN); \ unsigned int __ctx = (unsigned int)(CTX); \ unsigned int __dis = __fun - (__ctx + 10); \ --- 496,502 ---- /* How to make a trampoline. Derived from gcc/config/i386/i386.c. */ #define FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX) \ ! { unsigned char *__tramp = (unsigned char*)(TRAMP); \ unsigned int __fun = (unsigned int)(FUN); \ unsigned int __ctx = (unsigned int)(CTX); \ unsigned int __dis = __fun - (__ctx + 10); \ *************** ffi_prep_incoming_args_SYSV(char *stack, *** 513,522 **** *(unsigned int*) &__tramp[1] = __ctx; /* movl __ctx, %eax */ \ *(unsigned char *) &__tramp[5] = 0xe9; \ *(unsigned int*) &__tramp[6] = __dis; /* jmp __fun */ \ ! }) #define FFI_INIT_TRAMPOLINE_STDCALL(TRAMP,FUN,CTX,SIZE) \ ! ({ unsigned char *__tramp = (unsigned char*)(TRAMP); \ unsigned int __fun = (unsigned int)(FUN); \ unsigned int __ctx = (unsigned int)(CTX); \ unsigned int __dis = __fun - (__ctx + 10); \ --- 504,513 ---- *(unsigned int*) &__tramp[1] = __ctx; /* movl __ctx, %eax */ \ *(unsigned char *) &__tramp[5] = 0xe9; \ *(unsigned int*) &__tramp[6] = __dis; /* jmp __fun */ \ ! } #define FFI_INIT_TRAMPOLINE_STDCALL(TRAMP,FUN,CTX,SIZE) \ ! { unsigned char *__tramp = (unsigned char*)(TRAMP); \ unsigned int __fun = (unsigned int)(FUN); \ unsigned int __ctx = (unsigned int)(CTX); \ unsigned int __dis = __fun - (__ctx + 10); \ *************** ffi_prep_incoming_args_SYSV(char *stack, *** 527,533 **** *(unsigned int*) &__tramp[6] = __dis; /* call __fun */ \ *(unsigned char *) &__tramp[10] = 0xc2; \ *(unsigned short*) &__tramp[11] = __size; /* ret __size */ \ ! }) /* the cif must already be prep'ed */ --- 518,524 ---- *(unsigned int*) &__tramp[6] = __dis; /* call __fun */ \ *(unsigned char *) &__tramp[10] = 0xc2; \ *(unsigned short*) &__tramp[11] = __size; /* ret __size */ \ ! } /* the cif must already be prep'ed */ *************** ffi_prep_raw_closure_loc (ffi_raw_closur *** 594,603 **** return FFI_BAD_ABI; } ! // we currently don't support certain kinds of arguments for raw ! // closures. This should be implemented by a separate assembly language ! // routine, since it would require argument processing, something we ! // don't do now for performance. for (i = cif->nargs-1; i >= 0; i--) { --- 585,594 ---- return FFI_BAD_ABI; } ! /* we currently don't support certain kinds of arguments for raw ! closures. This should be implemented by a separate assembly ! language routine, since it would require argument processing, ! something we don't do now for performance. */ for (i = cif->nargs-1; i >= 0; i--) { *************** ffi_prep_args_raw(char *stack, extended_ *** 627,642 **** * libffi-1.20, this is not the case.) */ - extern void - ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *, unsigned, - unsigned, unsigned *, void (*fn)(void)); - - #ifdef X86_WIN32 - extern void - ffi_call_STDCALL(void (*)(char *, extended_cif *), extended_cif *, unsigned, - unsigned, unsigned *, void (*fn)(void)); - #endif /* X86_WIN32 */ - void ffi_raw_call(ffi_cif *cif, void (*fn)(void), void *rvalue, ffi_raw *fake_avalue) { --- 618,623 ---- *************** ffi_raw_call(ffi_cif *cif, void (*fn)(vo *** 660,675 **** switch (cif->abi) { case FFI_SYSV: ffi_call_SYSV(ffi_prep_args_raw, &ecif, cif->bytes, cif->flags, ecif.rvalue, fn); break; ! #ifdef X86_WIN32 ! case FFI_STDCALL: ! ffi_call_STDCALL(ffi_prep_args_raw, &ecif, cif->bytes, cif->flags, ! ecif.rvalue, fn); ! break; ! #endif /* X86_WIN32 */ default: FFI_ASSERT(0); break; --- 641,658 ---- switch (cif->abi) { + #ifdef X86_WIN32 + case FFI_SYSV: + case FFI_STDCALL: + ffi_call_win32(ffi_prep_args_raw, &ecif, cif->bytes, cif->flags, + ecif.rvalue, fn); + break; + #else case FFI_SYSV: ffi_call_SYSV(ffi_prep_args_raw, &ecif, cif->bytes, cif->flags, ecif.rvalue, fn); break; ! #endif default: FFI_ASSERT(0); break; diff -Nrcpad gcc-4.5.2/libffi/src/x86/ffi64.c gcc-4.6.0/libffi/src/x86/ffi64.c *** gcc-4.5.2/libffi/src/x86/ffi64.c Fri Oct 1 07:33:09 2010 --- gcc-4.6.0/libffi/src/x86/ffi64.c Mon Jan 3 20:52:22 2011 *************** *** 1,6 **** /* ----------------------------------------------------------------------- ffi64.c - Copyright (c) 2002, 2007 Bo Thorsen ! Copyright (c) 2008 Red Hat, Inc. x86-64 Foreign Function Interface --- 1,6 ---- /* ----------------------------------------------------------------------- ffi64.c - Copyright (c) 2002, 2007 Bo Thorsen ! Copyright (c) 2008, 2010 Red Hat, Inc. x86-64 Foreign Function Interface *************** extern void ffi_call_unix64 (void *args, *** 50,58 **** gcc/config/i386/i386.c. Do *not* change one without the other. */ /* Register class used for passing given 64bit part of the argument. ! These represent classes as documented by the PS ABI, with the exception ! of SSESF, SSEDF classes, that are basically SSE class, just gcc will ! use SF or DFmode move instead of DImode to avoid reformating penalties. Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves whenever possible (upper half does contain padding). */ --- 50,59 ---- gcc/config/i386/i386.c. Do *not* change one without the other. */ /* Register class used for passing given 64bit part of the argument. ! These represent classes as documented by the PS ABI, with the ! exception of SSESF, SSEDF classes, that are basically SSE class, ! just gcc will use SF or DFmode move instead of DImode to avoid ! reformatting penalties. Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves whenever possible (upper half does contain padding). */ diff -Nrcpad gcc-4.5.2/libffi/src/x86/ffitarget.h gcc-4.6.0/libffi/src/x86/ffitarget.h *** gcc-4.5.2/libffi/src/x86/ffitarget.h Fri Jun 12 15:57:58 2009 --- gcc-4.6.0/libffi/src/x86/ffitarget.h Fri Aug 6 20:05:33 2010 *************** *** 1,5 **** /* -----------------------------------------------------------------*-C-*- ! ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc. Copyright (C) 2008 Free Software Foundation, Inc. Target configuration macros for x86 and x86-64. --- 1,5 ---- /* -----------------------------------------------------------------*-C-*- ! ffitarget.h - Copyright (c) 1996-2003, 2010 Red Hat, Inc. Copyright (C) 2008 Free Software Foundation, Inc. Target configuration macros for x86 and x86-64. *************** *** 38,44 **** #ifdef X86_WIN64 #define FFI_SIZEOF_ARG 8 ! #define USE_BUILTIN_FFS 0 // not yet implemented in mingw-64 #endif /* ---- Generic type definitions ----------------------------------------- */ --- 38,44 ---- #ifdef X86_WIN64 #define FFI_SIZEOF_ARG 8 ! #define USE_BUILTIN_FFS 0 /* not yet implemented in mingw-64 */ #endif /* ---- Generic type definitions ----------------------------------------- */ *************** typedef enum ffi_abi { *** 74,83 **** #else /* ---- Intel x86 and AMD x86-64 - */ ! #if !defined(X86_WIN32) && (defined(__i386__) || defined(__x86_64__)) FFI_SYSV, FFI_UNIX64, /* Unix variants all use the same ABI for x86-64 */ ! #ifdef __i386__ FFI_DEFAULT_ABI = FFI_SYSV, #else FFI_DEFAULT_ABI = FFI_UNIX64, --- 74,83 ---- #else /* ---- Intel x86 and AMD x86-64 - */ ! #if !defined(X86_WIN32) && (defined(__i386__) || defined(__x86_64__) || defined(__i386) || defined(__amd64)) FFI_SYSV, FFI_UNIX64, /* Unix variants all use the same ABI for x86-64 */ ! #if defined(__i386__) || defined(__i386) FFI_DEFAULT_ABI = FFI_SYSV, #else FFI_DEFAULT_ABI = FFI_UNIX64, diff -Nrcpad gcc-4.5.2/libffi/src/x86/sysv.S gcc-4.6.0/libffi/src/x86/sysv.S *** gcc-4.5.2/libffi/src/x86/sysv.S Wed May 19 15:34:21 2010 --- gcc-4.6.0/libffi/src/x86/sysv.S Mon Nov 29 16:43:24 2010 *************** ffi_call_SYSV: *** 48,53 **** --- 48,56 ---- movl 16(%ebp),%ecx subl %ecx,%esp + /* Align the stack pointer to 16-bytes */ + andl $0xfffffff0, %esp + movl %esp,%eax /* Place all of the ffi_prep_args in position */ *************** ffi_closure_raw_SYSV: *** 325,330 **** --- 328,352 ---- .size ffi_closure_raw_SYSV, .-ffi_closure_raw_SYSV #endif + #if defined __PIC__ + # if defined __sun__ && defined __svr4__ + /* 32-bit Solaris 2/x86 uses datarel encoding for PIC. GNU ld before 2.22 + doesn't correctly sort .eh_frame_hdr with mixed encodings, so match this. */ + # define FDE_ENCODING 0x30 /* datarel */ + # define FDE_ENCODE(X) X@GOTOFF + # else + # define FDE_ENCODING 0x1b /* pcrel sdata4 */ + # if defined HAVE_AS_X86_PCREL + # define FDE_ENCODE(X) X-. + # else + # define FDE_ENCODE(X) X@rel + # endif + # endif + #else + # define FDE_ENCODING 0 /* absolute */ + # define FDE_ENCODE(X) X + #endif + .section .eh_frame,EH_FRAME_FLAGS,@progbits .Lframe1: .long .LECIE1-.LSCIE1 /* Length of Common Information Entry */ *************** ffi_closure_raw_SYSV: *** 351,357 **** .byte 0x8 /* CIE RA Column */ #ifdef __PIC__ .byte 0x1 /* .uleb128 0x1; Augmentation size */ ! .byte 0x1b /* FDE Encoding (pcrel sdata4) */ #endif .byte 0xc /* DW_CFA_def_cfa */ .byte 0x4 /* .uleb128 0x4 */ --- 373,379 ---- .byte 0x8 /* CIE RA Column */ #ifdef __PIC__ .byte 0x1 /* .uleb128 0x1; Augmentation size */ ! .byte FDE_ENCODING #endif .byte 0xc /* DW_CFA_def_cfa */ .byte 0x4 /* .uleb128 0x4 */ *************** ffi_closure_raw_SYSV: *** 364,377 **** .long .LEFDE1-.LASFDE1 /* FDE Length */ .LASFDE1: .long .LASFDE1-.Lframe1 /* FDE CIE offset */ ! #if defined __PIC__ && defined HAVE_AS_X86_PCREL ! .long .LFB1-. /* FDE initial location */ ! #elif defined __PIC__ ! .long .LFB1@rel ! #else ! .long .LFB1 ! #endif ! .long .LFE1-.LFB1 /* FDE address range */ #ifdef __PIC__ .byte 0x0 /* .uleb128 0x0; Augmentation size */ #endif --- 386,393 ---- .long .LEFDE1-.LASFDE1 /* FDE Length */ .LASFDE1: .long .LASFDE1-.Lframe1 /* FDE CIE offset */ ! .long FDE_ENCODE(.LFB1) /* FDE initial location */ ! .long .LFE1-.LFB1 /* FDE address range */ #ifdef __PIC__ .byte 0x0 /* .uleb128 0x0; Augmentation size */ #endif *************** ffi_closure_raw_SYSV: *** 391,404 **** .long .LEFDE2-.LASFDE2 /* FDE Length */ .LASFDE2: .long .LASFDE2-.Lframe1 /* FDE CIE offset */ ! #if defined __PIC__ && defined HAVE_AS_X86_PCREL ! .long .LFB2-. /* FDE initial location */ ! #elif defined __PIC__ ! .long .LFB2@rel ! #else ! .long .LFB2 ! #endif ! .long .LFE2-.LFB2 /* FDE address range */ #ifdef __PIC__ .byte 0x0 /* .uleb128 0x0; Augmentation size */ #endif --- 407,414 ---- .long .LEFDE2-.LASFDE2 /* FDE Length */ .LASFDE2: .long .LASFDE2-.Lframe1 /* FDE CIE offset */ ! .long FDE_ENCODE(.LFB2) /* FDE initial location */ ! .long .LFE2-.LFB2 /* FDE address range */ #ifdef __PIC__ .byte 0x0 /* .uleb128 0x0; Augmentation size */ #endif *************** ffi_closure_raw_SYSV: *** 427,440 **** .long .LEFDE3-.LASFDE3 /* FDE Length */ .LASFDE3: .long .LASFDE3-.Lframe1 /* FDE CIE offset */ ! #if defined __PIC__ && defined HAVE_AS_X86_PCREL ! .long .LFB3-. /* FDE initial location */ ! #elif defined __PIC__ ! .long .LFB3@rel ! #else ! .long .LFB3 ! #endif ! .long .LFE3-.LFB3 /* FDE address range */ #ifdef __PIC__ .byte 0x0 /* .uleb128 0x0; Augmentation size */ #endif --- 437,444 ---- .long .LEFDE3-.LASFDE3 /* FDE Length */ .LASFDE3: .long .LASFDE3-.Lframe1 /* FDE CIE offset */ ! .long FDE_ENCODE(.LFB3) /* FDE initial location */ ! .long .LFE3-.LFB3 /* FDE address range */ #ifdef __PIC__ .byte 0x0 /* .uleb128 0x0; Augmentation size */ #endif diff -Nrcpad gcc-4.5.2/libffi/src/x86/win32.S gcc-4.6.0/libffi/src/x86/win32.S *** gcc-4.5.2/libffi/src/x86/win32.S Fri Jul 24 10:12:16 2009 --- gcc-4.6.0/libffi/src/x86/win32.S Fri Aug 6 12:36:26 2010 *************** *** 2,7 **** --- 2,8 ---- win32.S - Copyright (c) 1996, 1998, 2001, 2002, 2009 Red Hat, Inc. Copyright (c) 2001 John Beniton Copyright (c) 2002 Ranjit Mathew + Copyright (c) 2009 Daniel Witte X86 Foreign Function Interface *************** *** 31,44 **** #define LIBFFI_ASM #include #include ! .text # This assumes we are using gas. .balign 16 ! .globl _ffi_call_SYSV ! .def _ffi_call_SYSV; .scl 2; .type 32; .endef ! _ffi_call_SYSV: .LFB1: pushl %ebp .LCFI0: --- 32,404 ---- #define LIBFFI_ASM #include #include ! ! #ifdef _MSC_VER ! ! .386 ! .MODEL FLAT, C ! ! EXTRN ffi_closure_SYSV_inner:NEAR ! ! _TEXT SEGMENT ! ! ffi_call_win32 PROC NEAR, ! ffi_prep_args : NEAR PTR DWORD, ! ecif : NEAR PTR DWORD, ! cif_bytes : DWORD, ! cif_flags : DWORD, ! rvalue : NEAR PTR DWORD, ! fn : NEAR PTR DWORD ! ! ;; Make room for all of the new args. ! mov ecx, cif_bytes ! sub esp, ecx ! ! mov eax, esp ! ! ;; Place all of the ffi_prep_args in position ! push ecif ! push eax ! call ffi_prep_args ! ! ;; Return stack to previous state and call the function ! add esp, 8 ! ! call fn ! ! ;; cdecl: we restore esp in the epilogue, so there's no need to ! ;; remove the space we pushed for the args. ! ;; stdcall: the callee has already cleaned the stack. ! ! ;; Load ecx with the return type code ! mov ecx, cif_flags ! ! ;; If the return value pointer is NULL, assume no return value. ! cmp rvalue, 0 ! jne ca_jumptable ! ! ;; Even if there is no space for the return value, we are ! ;; obliged to handle floating-point values. ! cmp ecx, FFI_TYPE_FLOAT ! jne ca_epilogue ! fstp st(0) ! ! jmp ca_epilogue ! ! ca_jumptable: ! jmp [ca_jumpdata + 4 * ecx] ! ca_jumpdata: ! ;; Do not insert anything here between label and jump table. ! dd offset ca_epilogue ;; FFI_TYPE_VOID ! dd offset ca_retint ;; FFI_TYPE_INT ! dd offset ca_retfloat ;; FFI_TYPE_FLOAT ! dd offset ca_retdouble ;; FFI_TYPE_DOUBLE ! dd offset ca_retlongdouble ;; FFI_TYPE_LONGDOUBLE ! dd offset ca_retint8 ;; FFI_TYPE_UINT8 ! dd offset ca_retint8 ;; FFI_TYPE_SINT8 ! dd offset ca_retint16 ;; FFI_TYPE_UINT16 ! dd offset ca_retint16 ;; FFI_TYPE_SINT16 ! dd offset ca_retint ;; FFI_TYPE_UINT32 ! dd offset ca_retint ;; FFI_TYPE_SINT32 ! dd offset ca_retint64 ;; FFI_TYPE_UINT64 ! dd offset ca_retint64 ;; FFI_TYPE_SINT64 ! dd offset ca_epilogue ;; FFI_TYPE_STRUCT ! dd offset ca_retint ;; FFI_TYPE_POINTER ! dd offset ca_retint8 ;; FFI_TYPE_SMALL_STRUCT_1B ! dd offset ca_retint16 ;; FFI_TYPE_SMALL_STRUCT_2B ! dd offset ca_retint ;; FFI_TYPE_SMALL_STRUCT_4B ! ! ca_retint8: ! ;; Load %ecx with the pointer to storage for the return value ! mov ecx, rvalue ! mov [ecx + 0], al ! jmp ca_epilogue ! ! ca_retint16: ! ;; Load %ecx with the pointer to storage for the return value ! mov ecx, rvalue ! mov [ecx + 0], ax ! jmp ca_epilogue ! ! ca_retint: ! ;; Load %ecx with the pointer to storage for the return value ! mov ecx, rvalue ! mov [ecx + 0], eax ! jmp ca_epilogue ! ! ca_retint64: ! ;; Load %ecx with the pointer to storage for the return value ! mov ecx, rvalue ! mov [ecx + 0], eax ! mov [ecx + 4], edx ! jmp ca_epilogue ! ! ca_retfloat: ! ;; Load %ecx with the pointer to storage for the return value ! mov ecx, rvalue ! fstp DWORD PTR [ecx] ! jmp ca_epilogue ! ! ca_retdouble: ! ;; Load %ecx with the pointer to storage for the return value ! mov ecx, rvalue ! fstp QWORD PTR [ecx] ! jmp ca_epilogue ! ! ca_retlongdouble: ! ;; Load %ecx with the pointer to storage for the return value ! mov ecx, rvalue ! fstp TBYTE PTR [ecx] ! jmp ca_epilogue ! ! ca_epilogue: ! ;; Epilogue code is autogenerated. ! ret ! ffi_call_win32 ENDP ! ! ffi_closure_SYSV PROC NEAR FORCEFRAME ! ;; the ffi_closure ctx is passed in eax by the trampoline. ! ! sub esp, 40 ! lea edx, [ebp - 24] ! mov [ebp - 12], edx ;; resp ! lea edx, [ebp + 8] ! mov [esp + 8], edx ;; args ! lea edx, [ebp - 12] ! mov [esp + 4], edx ;; &resp ! mov [esp], eax ;; closure ! call ffi_closure_SYSV_inner ! mov ecx, [ebp - 12] ! ! cs_jumptable: ! jmp [cs_jumpdata + 4 * eax] ! cs_jumpdata: ! ;; Do not insert anything here between the label and jump table. ! dd offset cs_epilogue ;; FFI_TYPE_VOID ! dd offset cs_retint ;; FFI_TYPE_INT ! dd offset cs_retfloat ;; FFI_TYPE_FLOAT ! dd offset cs_retdouble ;; FFI_TYPE_DOUBLE ! dd offset cs_retlongdouble ;; FFI_TYPE_LONGDOUBLE ! dd offset cs_retint8 ;; FFI_TYPE_UINT8 ! dd offset cs_retint8 ;; FFI_TYPE_SINT8 ! dd offset cs_retint16 ;; FFI_TYPE_UINT16 ! dd offset cs_retint16 ;; FFI_TYPE_SINT16 ! dd offset cs_retint ;; FFI_TYPE_UINT32 ! dd offset cs_retint ;; FFI_TYPE_SINT32 ! dd offset cs_retint64 ;; FFI_TYPE_UINT64 ! dd offset cs_retint64 ;; FFI_TYPE_SINT64 ! dd offset cs_retstruct ;; FFI_TYPE_STRUCT ! dd offset cs_retint ;; FFI_TYPE_POINTER ! dd offset cs_retint8 ;; FFI_TYPE_SMALL_STRUCT_1B ! dd offset cs_retint16 ;; FFI_TYPE_SMALL_STRUCT_2B ! dd offset cs_retint ;; FFI_TYPE_SMALL_STRUCT_4B ! ! cs_retint8: ! mov al, [ecx] ! jmp cs_epilogue ! ! cs_retint16: ! mov ax, [ecx] ! jmp cs_epilogue ! ! cs_retint: ! mov eax, [ecx] ! jmp cs_epilogue ! ! cs_retint64: ! mov eax, [ecx + 0] ! mov edx, [ecx + 4] ! jmp cs_epilogue ! ! cs_retfloat: ! fld DWORD PTR [ecx] ! jmp cs_epilogue ! ! cs_retdouble: ! fld QWORD PTR [ecx] ! jmp cs_epilogue ! ! cs_retlongdouble: ! fld TBYTE PTR [ecx] ! jmp cs_epilogue ! ! cs_retstruct: ! ;; Caller expects us to pop struct return value pointer hidden arg. ! ;; Epilogue code is autogenerated. ! ret 4 ! ! cs_epilogue: ! ;; Epilogue code is autogenerated. ! ret ! ffi_closure_SYSV ENDP ! ! #if !FFI_NO_RAW_API ! ! #define RAW_CLOSURE_CIF_OFFSET ((FFI_TRAMPOLINE_SIZE + 3) AND NOT 3) ! #define RAW_CLOSURE_FUN_OFFSET (RAW_CLOSURE_CIF_OFFSET + 4) ! #define RAW_CLOSURE_USER_DATA_OFFSET (RAW_CLOSURE_FUN_OFFSET + 4) ! #define CIF_FLAGS_OFFSET 20 ! ! ffi_closure_raw_SYSV PROC NEAR USES esi ! ;; the ffi_closure ctx is passed in eax by the trampoline. ! ! sub esp, 40 ! mov esi, [eax + RAW_CLOSURE_CIF_OFFSET] ;; closure->cif ! mov edx, [eax + RAW_CLOSURE_USER_DATA_OFFSET] ;; closure->user_data ! mov [esp + 12], edx ;; user_data ! lea edx, [ebp + 8] ! mov [esp + 8], edx ;; raw_args ! lea edx, [ebp - 24] ! mov [esp + 4], edx ;; &res ! mov [esp], esi ;; cif ! call DWORD PTR [eax + RAW_CLOSURE_FUN_OFFSET] ;; closure->fun ! mov eax, [esi + CIF_FLAGS_OFFSET] ;; cif->flags ! lea ecx, [ebp - 24] ! ! cr_jumptable: ! jmp [cr_jumpdata + 4 * eax] ! cr_jumpdata: ! ;; Do not insert anything here between the label and jump table. ! dd offset cr_epilogue ;; FFI_TYPE_VOID ! dd offset cr_retint ;; FFI_TYPE_INT ! dd offset cr_retfloat ;; FFI_TYPE_FLOAT ! dd offset cr_retdouble ;; FFI_TYPE_DOUBLE ! dd offset cr_retlongdouble ;; FFI_TYPE_LONGDOUBLE ! dd offset cr_retint8 ;; FFI_TYPE_UINT8 ! dd offset cr_retint8 ;; FFI_TYPE_SINT8 ! dd offset cr_retint16 ;; FFI_TYPE_UINT16 ! dd offset cr_retint16 ;; FFI_TYPE_SINT16 ! dd offset cr_retint ;; FFI_TYPE_UINT32 ! dd offset cr_retint ;; FFI_TYPE_SINT32 ! dd offset cr_retint64 ;; FFI_TYPE_UINT64 ! dd offset cr_retint64 ;; FFI_TYPE_SINT64 ! dd offset cr_epilogue ;; FFI_TYPE_STRUCT ! dd offset cr_retint ;; FFI_TYPE_POINTER ! dd offset cr_retint8 ;; FFI_TYPE_SMALL_STRUCT_1B ! dd offset cr_retint16 ;; FFI_TYPE_SMALL_STRUCT_2B ! dd offset cr_retint ;; FFI_TYPE_SMALL_STRUCT_4B ! ! cr_retint8: ! mov al, [ecx] ! jmp cr_epilogue ! ! cr_retint16: ! mov ax, [ecx] ! jmp cr_epilogue ! ! cr_retint: ! mov eax, [ecx] ! jmp cr_epilogue ! ! cr_retint64: ! mov eax, [ecx + 0] ! mov edx, [ecx + 4] ! jmp cr_epilogue ! ! cr_retfloat: ! fld DWORD PTR [ecx] ! jmp cr_epilogue ! ! cr_retdouble: ! fld QWORD PTR [ecx] ! jmp cr_epilogue ! ! cr_retlongdouble: ! fld TBYTE PTR [ecx] ! jmp cr_epilogue ! ! cr_epilogue: ! ;; Epilogue code is autogenerated. ! ret ! ffi_closure_raw_SYSV ENDP ! ! #endif /* !FFI_NO_RAW_API */ ! ! ffi_closure_STDCALL PROC NEAR FORCEFRAME ! ;; the ffi_closure ctx is passed in eax by the trampoline. ! ! sub esp, 40 ! lea edx, [ebp - 24] ! mov [ebp - 12], edx ;; resp ! lea edx, [ebp + 12] ;; account for stub return address on stack ! mov [esp + 8], edx ;; args ! lea edx, [ebp - 12] ! mov [esp + 4], edx ;; &resp ! mov [esp], eax ;; closure ! call ffi_closure_SYSV_inner ! mov ecx, [ebp - 12] ! ! cd_jumptable: ! jmp [cd_jumpdata + 4 * eax] ! cd_jumpdata: ! ;; Do not insert anything here between the label and jump table. ! dd offset cd_epilogue ;; FFI_TYPE_VOID ! dd offset cd_retint ;; FFI_TYPE_INT ! dd offset cd_retfloat ;; FFI_TYPE_FLOAT ! dd offset cd_retdouble ;; FFI_TYPE_DOUBLE ! dd offset cd_retlongdouble ;; FFI_TYPE_LONGDOUBLE ! dd offset cd_retint8 ;; FFI_TYPE_UINT8 ! dd offset cd_retint8 ;; FFI_TYPE_SINT8 ! dd offset cd_retint16 ;; FFI_TYPE_UINT16 ! dd offset cd_retint16 ;; FFI_TYPE_SINT16 ! dd offset cd_retint ;; FFI_TYPE_UINT32 ! dd offset cd_retint ;; FFI_TYPE_SINT32 ! dd offset cd_retint64 ;; FFI_TYPE_UINT64 ! dd offset cd_retint64 ;; FFI_TYPE_SINT64 ! dd offset cd_epilogue ;; FFI_TYPE_STRUCT ! dd offset cd_retint ;; FFI_TYPE_POINTER ! dd offset cd_retint8 ;; FFI_TYPE_SMALL_STRUCT_1B ! dd offset cd_retint16 ;; FFI_TYPE_SMALL_STRUCT_2B ! dd offset cd_retint ;; FFI_TYPE_SMALL_STRUCT_4B ! ! cd_retint8: ! mov al, [ecx] ! jmp cd_epilogue ! ! cd_retint16: ! mov ax, [ecx] ! jmp cd_epilogue ! ! cd_retint: ! mov eax, [ecx] ! jmp cd_epilogue ! ! cd_retint64: ! mov eax, [ecx + 0] ! mov edx, [ecx + 4] ! jmp cd_epilogue ! ! cd_retfloat: ! fld DWORD PTR [ecx] ! jmp cd_epilogue ! ! cd_retdouble: ! fld QWORD PTR [ecx] ! jmp cd_epilogue ! ! cd_retlongdouble: ! fld TBYTE PTR [ecx] ! jmp cd_epilogue ! ! cd_epilogue: ! ;; Epilogue code is autogenerated. ! ret ! ffi_closure_STDCALL ENDP ! ! _TEXT ENDS ! END ! ! #else ! .text # This assumes we are using gas. .balign 16 ! .globl _ffi_call_win32 ! #ifndef __OS2__ ! .def _ffi_call_win32; .scl 2; .type 32; .endef ! #endif ! _ffi_call_win32: .LFB1: pushl %ebp .LCFI0: *************** _ffi_call_SYSV: *** 61,68 **** # FIXME: Align the stack to a 128-bit boundary to avoid # potential performance hits. ! call *28(%ebp) # Load %ecx with the return type code movl 20(%ebp),%ecx --- 421,430 ---- # FIXME: Align the stack to a 128-bit boundary to avoid # potential performance hits. ! call *28(%ebp) + # stdcall functions pop arguments off the stack themselves + # Load %ecx with the return type code movl 20(%ebp),%ecx *************** _ffi_call_SYSV: *** 181,346 **** movl %ebp,%esp popl %ebp ret ! .ffi_call_SYSV_end: .LFE1: # This assumes we are using gas. .balign 16 - .globl _ffi_call_STDCALL - .def _ffi_call_STDCALL; .scl 2; .type 32; .endef - _ffi_call_STDCALL: - .LFB2: - pushl %ebp - .LCFI2: - movl %esp,%ebp - .LCFI3: - # Make room for all of the new args. - movl 16(%ebp),%ecx - subl %ecx,%esp - - movl %esp,%eax - - # Place all of the ffi_prep_args in position - pushl 12(%ebp) - pushl %eax - call *8(%ebp) - - # Return stack to previous state and call the function - addl $8,%esp - - # FIXME: Align the stack to a 128-bit boundary to avoid - # potential performance hits. - - call *28(%ebp) - - # stdcall functions pop arguments off the stack themselves - - # Load %ecx with the return type code - movl 20(%ebp),%ecx - - # If the return value pointer is NULL, assume no return value. - cmpl $0,24(%ebp) - jne 0f - - # Even if there is no space for the return value, we are - # obliged to handle floating-point values. - cmpl $FFI_TYPE_FLOAT,%ecx - jne .Lsc_noretval - fstp %st(0) - - jmp .Lsc_epilogue - - 0: - call 1f - # Do not insert anything here between the call and the jump table. - .Lsc_store_table: - .long .Lsc_noretval /* FFI_TYPE_VOID */ - .long .Lsc_retint /* FFI_TYPE_INT */ - .long .Lsc_retfloat /* FFI_TYPE_FLOAT */ - .long .Lsc_retdouble /* FFI_TYPE_DOUBLE */ - .long .Lsc_retlongdouble /* FFI_TYPE_LONGDOUBLE */ - .long .Lsc_retuint8 /* FFI_TYPE_UINT8 */ - .long .Lsc_retsint8 /* FFI_TYPE_SINT8 */ - .long .Lsc_retuint16 /* FFI_TYPE_UINT16 */ - .long .Lsc_retsint16 /* FFI_TYPE_SINT16 */ - .long .Lsc_retint /* FFI_TYPE_UINT32 */ - .long .Lsc_retint /* FFI_TYPE_SINT32 */ - .long .Lsc_retint64 /* FFI_TYPE_UINT64 */ - .long .Lsc_retint64 /* FFI_TYPE_SINT64 */ - .long .Lsc_retstruct /* FFI_TYPE_STRUCT */ - .long .Lsc_retint /* FFI_TYPE_POINTER */ - .long .Lsc_retstruct1b /* FFI_TYPE_SMALL_STRUCT_1B */ - .long .Lsc_retstruct2b /* FFI_TYPE_SMALL_STRUCT_2B */ - .long .Lsc_retstruct4b /* FFI_TYPE_SMALL_STRUCT_4B */ - - 1: - add %ecx, %ecx - add %ecx, %ecx - add (%esp),%ecx - add $4, %esp - jmp *(%ecx) - - /* Sign/zero extend as appropriate. */ - .Lsc_retsint8: - movsbl %al, %eax - jmp .Lsc_retint - - .Lsc_retsint16: - movswl %ax, %eax - jmp .Lsc_retint - - .Lsc_retuint8: - movzbl %al, %eax - jmp .Lsc_retint - - .Lsc_retuint16: - movzwl %ax, %eax - jmp .Lsc_retint - - .Lsc_retint: - # Load %ecx with the pointer to storage for the return value - movl 24(%ebp),%ecx - movl %eax,0(%ecx) - jmp .Lsc_epilogue - - .Lsc_retfloat: - # Load %ecx with the pointer to storage for the return value - movl 24(%ebp),%ecx - fstps (%ecx) - jmp .Lsc_epilogue - - .Lsc_retdouble: - # Load %ecx with the pointer to storage for the return value - movl 24(%ebp),%ecx - fstpl (%ecx) - jmp .Lsc_epilogue - - .Lsc_retlongdouble: - # Load %ecx with the pointer to storage for the return value - movl 24(%ebp),%ecx - fstpt (%ecx) - jmp .Lsc_epilogue - - .Lsc_retint64: - # Load %ecx with the pointer to storage for the return value - movl 24(%ebp),%ecx - movl %eax,0(%ecx) - movl %edx,4(%ecx) - jmp .Lsc_epilogue - - .Lsc_retstruct1b: - # Load %ecx with the pointer to storage for the return value - movl 24(%ebp),%ecx - movb %al,0(%ecx) - jmp .Lsc_epilogue - - .Lsc_retstruct2b: - # Load %ecx with the pointer to storage for the return value - movl 24(%ebp),%ecx - movw %ax,0(%ecx) - jmp .Lsc_epilogue - - .Lsc_retstruct4b: - # Load %ecx with the pointer to storage for the return value - movl 24(%ebp),%ecx - movl %eax,0(%ecx) - jmp .Lsc_epilogue - - .Lsc_retstruct: - # Nothing to do! - - .Lsc_noretval: - .Lsc_epilogue: - movl %ebp,%esp - popl %ebp - ret - .ffi_call_STDCALL_end: - .LFE2: - - # This assumes we are using gas. - .balign 16 .globl _ffi_closure_SYSV .def _ffi_closure_SYSV; .scl 2; .type 32; .endef _ffi_closure_SYSV: .LFB3: pushl %ebp --- 543,557 ---- movl %ebp,%esp popl %ebp ret ! .ffi_call_win32_end: .LFE1: # This assumes we are using gas. .balign 16 .globl _ffi_closure_SYSV + #ifndef __OS2__ .def _ffi_closure_SYSV; .scl 2; .type 32; .endef + #endif _ffi_closure_SYSV: .LFB3: pushl %ebp *************** _ffi_closure_SYSV: *** 461,467 **** --- 672,680 ---- # This assumes we are using gas. .balign 16 .globl _ffi_closure_raw_SYSV + #ifndef __OS2__ .def _ffi_closure_raw_SYSV; .scl 2; .type 32; .endef + #endif _ffi_closure_raw_SYSV: .LFB4: pushl %ebp *************** _ffi_closure_raw_SYSV: *** 577,583 **** --- 790,798 ---- # This assumes we are using gas. .balign 16 .globl _ffi_closure_STDCALL + #ifndef __OS2__ .def _ffi_closure_STDCALL; .scl 2; .type 32; .endef + #endif _ffi_closure_STDCALL: .LFB5: pushl %ebp *************** _ffi_closure_STDCALL: *** 683,689 **** --- 898,906 ---- .ffi_closure_STDCALL_end: .LFE5: + #ifndef __OS2__ .section .eh_frame,"w" + #endif .Lframe1: .LSCIE1: .long .LECIE1-.LASCIE1 /* Length of Common Information Entry */ *************** _ffi_closure_STDCALL: *** 742,779 **** .LEFDE1: - .LSFDE2: - .long .LEFDE2-.LASFDE2 /* FDE Length */ - .LASFDE2: - .long .LASFDE2-.Lframe1 /* FDE CIE offset */ - #if defined __PIC__ && defined HAVE_AS_X86_PCREL - .long .LFB2-. /* FDE initial location */ - #else - .long .LFB2 - #endif - .long .LFE2-.LFB2 /* FDE address range */ - #ifdef __PIC__ - .byte 0x0 /* .uleb128 0x0; Augmentation size */ - #endif - /* DW_CFA_xxx CFI instructions go here. */ - - .byte 0x4 /* DW_CFA_advance_loc4 */ - .long .LCFI2-.LFB2 - .byte 0xe /* DW_CFA_def_cfa_offset CFA = r4 + 8 = 8(%esp) */ - .byte 0x8 /* .uleb128 0x8 */ - .byte 0x85 /* DW_CFA_offset, column 0x5 %ebp at CFA + 2 * -4 */ - .byte 0x2 /* .uleb128 0x2 */ - - .byte 0x4 /* DW_CFA_advance_loc4 */ - .long .LCFI3-.LCFI2 - .byte 0xd /* DW_CFA_def_cfa_register CFA = r5 = %ebp */ - .byte 0x5 /* .uleb128 0x5 */ - - /* End of DW_CFA_xxx CFI instructions. */ - .align 4 - .LEFDE2: - - .LSFDE3: .long .LEFDE3-.LASFDE3 /* FDE Length */ .LASFDE3: --- 959,964 ---- *************** _ffi_closure_STDCALL: *** 875,877 **** --- 1060,1065 ---- /* End of DW_CFA_xxx CFI instructions. */ .align 4 .LEFDE5: + + #endif /* !_MSC_VER */ + diff -Nrcpad gcc-4.5.2/libffi/testsuite/lib/libffi-dg.exp gcc-4.6.0/libffi/testsuite/lib/libffi-dg.exp *** gcc-4.5.2/libffi/testsuite/lib/libffi-dg.exp Fri Jan 1 12:32:24 2010 --- gcc-4.6.0/libffi/testsuite/lib/libffi-dg.exp Thu Jan 1 00:00:00 1970 *************** *** 1,306 **** - # Copyright (C) 2003, 2005, 2008, 2009, 2010 Free Software Foundation, Inc. - - # This program is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # - # This program 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 for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; see the file COPYING3. If not see - # . - - proc load_gcc_lib { filename } { - global srcdir - load_file $srcdir/../../gcc/testsuite/lib/$filename - } - - load_lib dg.exp - load_lib libgloss.exp - load_gcc_lib target-libpath.exp - load_gcc_lib wrapper.exp - - - # Define libffi callbacks for dg.exp. - - proc libffi-dg-test-1 { target_compile prog do_what extra_tool_flags } { - - # To get all \n in dg-output test strings to match printf output - # in a system that outputs it as \015\012 (i.e. not just \012), we - # need to change all \n into \r?\n. As there is no dejagnu flag - # or hook to do that, we simply change the text being tested. - # Unfortunately, we have to know that the variable is called - # dg-output-text and lives in the caller of libffi-dg-test, which - # is two calls up. Overriding proc dg-output would be longer and - # would necessarily have the same assumption. - upvar 2 dg-output-text output_match - - if { [llength $output_match] > 1 } { - regsub -all "\n" [lindex $output_match 1] "\r?\n" x - set output_match [lreplace $output_match 1 1 $x] - } - - # Set up the compiler flags, based on what we're going to do. - - set options [list] - switch $do_what { - "compile" { - set compile_type "assembly" - set output_file "[file rootname [file tail $prog]].s" - } - "link" { - set compile_type "executable" - set output_file "[file rootname [file tail $prog]].exe" - # The following line is needed for targets like the i960 where - # the default output file is b.out. Sigh. - } - "run" { - set compile_type "executable" - # FIXME: "./" is to cope with "." not being in $PATH. - # Should this be handled elsewhere? - # YES. - set output_file "./[file rootname [file tail $prog]].exe" - # This is the only place where we care if an executable was - # created or not. If it was, dg.exp will try to run it. - remote_file build delete $output_file; - } - default { - perror "$do_what: not a valid dg-do keyword" - return "" - } - } - - if { $extra_tool_flags != "" } { - lappend options "additional_flags=$extra_tool_flags" - } - - set comp_output [libffi_target_compile "$prog" "$output_file" "$compile_type" $options]; - - - return [list $comp_output $output_file] - } - - - proc libffi-dg-test { prog do_what extra_tool_flags } { - return [libffi-dg-test-1 target_compile $prog $do_what $extra_tool_flags] - } - - proc libffi-init { args } { - global gluefile wrap_flags; - global srcdir - global blddirffi - global objdir - global blddircxx - global TOOL_OPTIONS - global tool - global libffi_include - global libffi_link_flags - global tool_root_dir - global ld_library_path - - set blddirffi [lookfor_file [get_multilibs] libffi] - verbose "libffi $blddirffi" - set blddircxx [lookfor_file [get_multilibs] libstdc++-v3] - verbose "libstdc++ $blddircxx" - - set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a] - if {$gccdir != ""} { - set gccdir [file dirname $gccdir] - } - verbose "gccdir $gccdir" - - set ld_library_path "." - append ld_library_path ":${gccdir}" - - set compiler "${gccdir}/xgcc" - if { [is_remote host] == 0 && [which $compiler] != 0 } { - foreach i "[exec $compiler --print-multi-lib]" { - set mldir "" - regexp -- "\[a-z0-9=_/\.-\]*;" $i mldir - set mldir [string trimright $mldir "\;@"] - if { "$mldir" == "." } { - continue - } - if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } { - append ld_library_path ":${gccdir}/${mldir}" - } - } - } - # add the library path for libffi. - append ld_library_path ":${blddirffi}/.libs" - # add the library path for libstdc++ as well. - append ld_library_path ":${blddircxx}/src/.libs" - - verbose "ld_library_path: $ld_library_path" - - # Point to the Libffi headers in libffi. - set libffi_include "${blddirffi}/include" - verbose "libffi_include $libffi_include" - - set libffi_dir "${blddirffi}/.libs" - verbose "libffi_dir $libffi_dir" - if { $libffi_dir != "" } { - set libffi_dir [file dirname ${libffi_dir}] - set libffi_link_flags "-L${libffi_dir}/.libs" - lappend libffi_link_flags "-L${blddircxx}/src/.libs" - } - - set_ld_library_path_env_vars - libffi_maybe_build_wrapper "${objdir}/testglue.o" - } - - proc libffi_exit { } { - global gluefile; - - if [info exists gluefile] { - file_on_build delete $gluefile; - unset gluefile; - } - } - - proc libffi_target_compile { source dest type options } { - global gluefile wrap_flags; - global srcdir - global blddirffi - global TOOL_OPTIONS - global libffi_link_flags - global libffi_include - global target_triplet - - - if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } { - lappend options "libs=${gluefile}" - lappend options "ldflags=$wrap_flags" - } - - # TOOL_OPTIONS must come first, so that it doesn't override testcase - # specific options. - if [info exists TOOL_OPTIONS] { - lappend options [concat "additional_flags=$TOOL_OPTIONS" $options]; - } - - # search for ffi_mips.h in srcdir, too - lappend options "additional_flags=-I${libffi_include} -I${srcdir}/../include -I${libffi_include}/.." - lappend options "additional_flags=${libffi_link_flags}" - - # Darwin needs a stack execution allowed flag. - - if { [istarget "*-*-darwin9*"] || [istarget "*-*-darwin1*"] - || [istarget "*-*-darwin2*"] } { - lappend options "additional_flags=-Wl,-allow_stack_execute" - } - - # If you're building the compiler with --prefix set to a place - # where it's not yet installed, then the linker won't be able to - # find the libgcc used by libffi.dylib. We could pass the - # -dylib_file option, but that's complicated, and it's much easier - # to just make the linker find libgcc using -L options. - if { [string match "*-*-darwin*" $target_triplet] } { - lappend options "libs= -shared-libgcc" - } - - if { [string match "*-*-openbsd*" $target_triplet] } { - lappend options "libs= -lpthread" - } - - lappend options "libs= -lffi" - - verbose "options: $options" - return [target_compile $source $dest $type $options] - } - - # Utility routines. - - # - # search_for -- looks for a string match in a file - # - proc search_for { file pattern } { - set fd [open $file r] - while { [gets $fd cur_line]>=0 } { - if [string match "*$pattern*" $cur_line] then { - close $fd - return 1 - } - } - close $fd - return 0 - } - - # Modified dg-runtest that can cycle through a list of optimization options - # as c-torture does. - proc libffi-dg-runtest { testcases default-extra-flags } { - global runtests - - foreach test $testcases { - # If we're only testing specific files and this isn't one of - # them, skip it. - if ![runtest_file_p $runtests $test] { - continue - } - - # Look for a loop within the source code - if we don't find one, - # don't pass -funroll[-all]-loops. - global torture_with_loops torture_without_loops - if [expr [search_for $test "for*("]+[search_for $test "while*("]] { - set option_list $torture_with_loops - } else { - set option_list $torture_without_loops - } - - set nshort [file tail [file dirname $test]]/[file tail $test] - - foreach flags $option_list { - verbose "Testing $nshort, $flags" 1 - dg-test $test $flags ${default-extra-flags} - } - } - } - - - # Like check_conditional_xfail, but callable from a dg test. - - proc dg-xfail-if { args } { - set args [lreplace $args 0 0] - set selector "target [join [lindex $args 1]]" - if { [dg-process-target $selector] == "S" } { - global compiler_conditional_xfail_data - set compiler_conditional_xfail_data $args - } - } - - - # We need to make sure that additional_files and additional_sources - # are both cleared out after every test. It is not enough to clear - # them out *before* the next test run because gcc-target-compile gets - # run directly from some .exp files (outside of any test). (Those - # uses should eventually be eliminated.) - - # Because the DG framework doesn't provide a hook that is run at the - # end of a test, we must replace dg-test with a wrapper. - - if { [info procs saved-dg-test] == [list] } { - rename dg-test saved-dg-test - - proc dg-test { args } { - global additional_files - global additional_sources - global errorInfo - - if { [ catch { eval saved-dg-test $args } errmsg ] } { - set saved_info $errorInfo - set additional_files "" - set additional_sources "" - error $errmsg $saved_info - } - set additional_files "" - set additional_sources "" - } - } - - # Local Variables: - # tcl-indent-level:4 - # End: --- 0 ---- diff -Nrcpad gcc-4.5.2/libffi/testsuite/lib/libffi.exp gcc-4.6.0/libffi/testsuite/lib/libffi.exp *** gcc-4.5.2/libffi/testsuite/lib/libffi.exp Thu Jan 1 00:00:00 1970 --- gcc-4.6.0/libffi/testsuite/lib/libffi.exp Mon Nov 15 20:30:37 2010 *************** *** 0 **** --- 1,356 ---- + # Copyright (C) 2003, 2005, 2008, 2009, 2010 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # This program 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 for more details. + # + # You should have received a copy of the GNU General Public License + # along with this program; see the file COPYING3. If not see + # . + + proc load_gcc_lib { filename } { + global srcdir + load_file $srcdir/../../gcc/testsuite/lib/$filename + } + + load_lib dg.exp + load_lib libgloss.exp + load_gcc_lib target-libpath.exp + load_gcc_lib wrapper.exp + + + # Define libffi callbacks for dg.exp. + + proc libffi-dg-test-1 { target_compile prog do_what extra_tool_flags } { + + # To get all \n in dg-output test strings to match printf output + # in a system that outputs it as \015\012 (i.e. not just \012), we + # need to change all \n into \r?\n. As there is no dejagnu flag + # or hook to do that, we simply change the text being tested. + # Unfortunately, we have to know that the variable is called + # dg-output-text and lives in the caller of libffi-dg-test, which + # is two calls up. Overriding proc dg-output would be longer and + # would necessarily have the same assumption. + upvar 2 dg-output-text output_match + + if { [llength $output_match] > 1 } { + regsub -all "\n" [lindex $output_match 1] "\r?\n" x + set output_match [lreplace $output_match 1 1 $x] + } + + # Set up the compiler flags, based on what we're going to do. + + set options [list] + switch $do_what { + "compile" { + set compile_type "assembly" + set output_file "[file rootname [file tail $prog]].s" + } + "link" { + set compile_type "executable" + set output_file "[file rootname [file tail $prog]].exe" + # The following line is needed for targets like the i960 where + # the default output file is b.out. Sigh. + } + "run" { + set compile_type "executable" + # FIXME: "./" is to cope with "." not being in $PATH. + # Should this be handled elsewhere? + # YES. + set output_file "./[file rootname [file tail $prog]].exe" + # This is the only place where we care if an executable was + # created or not. If it was, dg.exp will try to run it. + remote_file build delete $output_file; + } + default { + perror "$do_what: not a valid dg-do keyword" + return "" + } + } + + if { $extra_tool_flags != "" } { + lappend options "additional_flags=$extra_tool_flags" + } + + set comp_output [libffi_target_compile "$prog" "$output_file" "$compile_type" $options]; + + + return [list $comp_output $output_file] + } + + + proc libffi-dg-test { prog do_what extra_tool_flags } { + return [libffi-dg-test-1 target_compile $prog $do_what $extra_tool_flags] + } + + proc libffi-init { args } { + global gluefile wrap_flags; + global srcdir + global blddirffi + global objdir + global blddircxx + global TOOL_OPTIONS + global tool + global libffi_include + global libffi_link_flags + global tool_root_dir + global ld_library_path + + set blddirffi [lookfor_file [get_multilibs] libffi] + verbose "libffi $blddirffi" + set blddircxx [lookfor_file [get_multilibs] libstdc++-v3] + verbose "libstdc++ $blddircxx" + + set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a] + if {$gccdir != ""} { + set gccdir [file dirname $gccdir] + } + verbose "gccdir $gccdir" + + set ld_library_path "." + append ld_library_path ":${gccdir}" + + set compiler "${gccdir}/xgcc" + if { [is_remote host] == 0 && [which $compiler] != 0 } { + foreach i "[exec $compiler --print-multi-lib]" { + set mldir "" + regexp -- "\[a-z0-9=_/\.-\]*;" $i mldir + set mldir [string trimright $mldir "\;@"] + if { "$mldir" == "." } { + continue + } + if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } { + append ld_library_path ":${gccdir}/${mldir}" + } + } + } + # add the library path for libffi. + append ld_library_path ":${blddirffi}/.libs" + # add the library path for libstdc++ as well. + append ld_library_path ":${blddircxx}/src/.libs" + + verbose "ld_library_path: $ld_library_path" + + # Point to the Libffi headers in libffi. + set libffi_include "${blddirffi}/include" + verbose "libffi_include $libffi_include" + + set libffi_dir "${blddirffi}/.libs" + verbose "libffi_dir $libffi_dir" + if { $libffi_dir != "" } { + set libffi_dir [file dirname ${libffi_dir}] + set libffi_link_flags "-L${libffi_dir}/.libs" + lappend libffi_link_flags "-L${blddircxx}/src/.libs" + } + + set_ld_library_path_env_vars + libffi_maybe_build_wrapper "${objdir}/testglue.o" + } + + proc libffi_exit { } { + global gluefile; + + if [info exists gluefile] { + file_on_build delete $gluefile; + unset gluefile; + } + } + + proc libffi_target_compile { source dest type options } { + global gluefile wrap_flags; + global srcdir + global blddirffi + global TOOL_OPTIONS + global libffi_link_flags + global libffi_include + global target_triplet + + + if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } { + lappend options "libs=${gluefile}" + lappend options "ldflags=$wrap_flags" + } + + # TOOL_OPTIONS must come first, so that it doesn't override testcase + # specific options. + if [info exists TOOL_OPTIONS] { + lappend options [concat "additional_flags=$TOOL_OPTIONS" $options]; + } + + # search for ffi_mips.h in srcdir, too + lappend options "additional_flags=-I${libffi_include} -I${srcdir}/../include -I${libffi_include}/.." + lappend options "additional_flags=${libffi_link_flags}" + + # Darwin needs a stack execution allowed flag. + + if { [istarget "*-*-darwin9*"] || [istarget "*-*-darwin1*"] + || [istarget "*-*-darwin2*"] } { + lappend options "additional_flags=-Wl,-allow_stack_execute" + } + + # If you're building the compiler with --prefix set to a place + # where it's not yet installed, then the linker won't be able to + # find the libgcc used by libffi.dylib. We could pass the + # -dylib_file option, but that's complicated, and it's much easier + # to just make the linker find libgcc using -L options. + if { [string match "*-*-darwin*" $target_triplet] } { + lappend options "libs= -shared-libgcc" + } + + if { [string match "*-*-openbsd*" $target_triplet] } { + lappend options "libs= -lpthread" + } + + lappend options "libs= -lffi" + + verbose "options: $options" + return [target_compile $source $dest $type $options] + } + + # Utility routines. + + # + # search_for -- looks for a string match in a file + # + proc search_for { file pattern } { + set fd [open $file r] + while { [gets $fd cur_line]>=0 } { + if [string match "*$pattern*" $cur_line] then { + close $fd + return 1 + } + } + close $fd + return 0 + } + + # Modified dg-runtest that can cycle through a list of optimization options + # as c-torture does. + proc libffi-dg-runtest { testcases default-extra-flags } { + global runtests + + foreach test $testcases { + # If we're only testing specific files and this isn't one of + # them, skip it. + if ![runtest_file_p $runtests $test] { + continue + } + + # Look for a loop within the source code - if we don't find one, + # don't pass -funroll[-all]-loops. + global torture_with_loops torture_without_loops + if [expr [search_for $test "for*("]+[search_for $test "while*("]] { + set option_list $torture_with_loops + } else { + set option_list $torture_without_loops + } + + set nshort [file tail [file dirname $test]]/[file tail $test] + + foreach flags $option_list { + verbose "Testing $nshort, $flags" 1 + dg-test $test $flags ${default-extra-flags} + } + } + } + + + # Like check_conditional_xfail, but callable from a dg test. + + proc dg-xfail-if { args } { + set args [lreplace $args 0 0] + set selector "target [join [lindex $args 1]]" + if { [dg-process-target $selector] == "S" } { + global compiler_conditional_xfail_data + set compiler_conditional_xfail_data $args + } + } + + proc check-flags { args } { + + # The args are within another list; pull them out. + set args [lindex $args 0] + + # The next two arguments are optional. If they were not specified, + # use the defaults. + if { [llength $args] == 2 } { + lappend $args [list "*"] + } + if { [llength $args] == 3 } { + lappend $args [list ""] + } + + # If the option strings are the defaults, or the same as the + # defaults, there is no need to call check_conditional_xfail to + # compare them to the actual options. + if { [string compare [lindex $args 2] "*"] == 0 + && [string compare [lindex $args 3] "" ] == 0 } { + set result 1 + } else { + # The target list might be an effective-target keyword, so replace + # the original list with "*-*-*", since we already know it matches. + set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]] + } + + return $result + } + + proc dg-skip-if { args } { + # Verify the number of arguments. The last two are optional. + set args [lreplace $args 0 0] + if { [llength $args] < 2 || [llength $args] > 4 } { + error "dg-skip-if 2: need 2, 3, or 4 arguments" + } + + # Don't bother if we're already skipping the test. + upvar dg-do-what dg-do-what + if { [lindex ${dg-do-what} 1] == "N" } { + return + } + + set selector [list target [lindex $args 1]] + if { [dg-process-target $selector] == "S" } { + if [check-flags $args] { + upvar dg-do-what dg-do-what + set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] + } + } + } + + # We need to make sure that additional_files and additional_sources + # are both cleared out after every test. It is not enough to clear + # them out *before* the next test run because gcc-target-compile gets + # run directly from some .exp files (outside of any test). (Those + # uses should eventually be eliminated.) + + # Because the DG framework doesn't provide a hook that is run at the + # end of a test, we must replace dg-test with a wrapper. + + if { [info procs saved-dg-test] == [list] } { + rename dg-test saved-dg-test + + proc dg-test { args } { + global additional_files + global additional_sources + global errorInfo + + if { [ catch { eval saved-dg-test $args } errmsg ] } { + set saved_info $errorInfo + set additional_files "" + set additional_sources "" + error $errmsg $saved_info + } + set additional_files "" + set additional_sources "" + } + } + + # Local Variables: + # tcl-indent-level:4 + # End: diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/call.exp gcc-4.6.0/libffi/testsuite/libffi.call/call.exp *** gcc-4.5.2/libffi/testsuite/libffi.call/call.exp Thu Apr 9 15:00:19 2009 --- gcc-4.6.0/libffi/testsuite/libffi.call/call.exp Mon Nov 15 20:30:37 2010 *************** *** 1,4 **** ! # Copyright (C) 2003, 2006, 2009 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by --- 1,4 ---- ! # Copyright (C) 2003, 2006, 2009, 2010 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by *************** *** 14,23 **** # along with this program; see the file COPYING3. If not see # . - # libffi testsuite that uses the 'dg.exp' driver. - - load_lib libffi-dg.exp - dg-init libffi-init --- 14,19 ---- diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/cls_align_longdouble_split.c gcc-4.6.0/libffi/testsuite/libffi.call/cls_align_longdouble_split.c *** gcc-4.5.2/libffi/testsuite/libffi.call/cls_align_longdouble_split.c Fri Jan 1 12:26:49 2010 --- gcc-4.6.0/libffi/testsuite/libffi.call/cls_align_longdouble_split.c Mon Aug 9 13:00:32 2010 *************** *** 6,12 **** /* { dg-excess-errors "no long double format" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */ ! /* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */ /* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ #include "ffitest.h" --- 6,12 ---- /* { dg-excess-errors "no long double format" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */ ! /* { dg-options -mlong-double-128 { target powerpc64*-*-linux* } } */ /* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ #include "ffitest.h" diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c gcc-4.6.0/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c *** gcc-4.5.2/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c Fri Jan 1 12:26:49 2010 --- gcc-4.6.0/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c Mon Aug 9 13:00:32 2010 *************** *** 7,13 **** /* { dg-excess-errors "no long double format" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail strongarm*-*-* } } */ ! /* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */ /* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ #include "ffitest.h" --- 7,13 ---- /* { dg-excess-errors "no long double format" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail strongarm*-*-* } } */ ! /* { dg-options -mlong-double-128 { target powerpc64*-*-linux* } } */ /* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ #include "ffitest.h" diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/cls_double_va.c gcc-4.6.0/libffi/testsuite/libffi.call/cls_double_va.c *** gcc-4.5.2/libffi/testsuite/libffi.call/cls_double_va.c Fri Jan 1 12:40:18 2010 --- gcc-4.6.0/libffi/testsuite/libffi.call/cls_double_va.c Thu Oct 28 18:11:11 2010 *************** *** 6,11 **** --- 6,13 ---- /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */ /* { dg-output "" { xfail avr32*-*-* } } */ + /* { dg-skip-if "" arm*-*-* { "-mfloat-abi=hard" } { "" } } */ + #include "ffitest.h" static void diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/cls_longdouble.c gcc-4.6.0/libffi/testsuite/libffi.call/cls_longdouble.c *** gcc-4.5.2/libffi/testsuite/libffi.call/cls_longdouble.c Fri Jan 1 12:26:49 2010 --- gcc-4.6.0/libffi/testsuite/libffi.call/cls_longdouble.c Mon Aug 9 13:00:32 2010 *************** *** 6,12 **** /* { dg-excess-errors "no long double format" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail arm*-*-* strongarm*-*-* xscale*-*-* } } */ ! /* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */ /* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ #include "ffitest.h" --- 6,12 ---- /* { dg-excess-errors "no long double format" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail arm*-*-* strongarm*-*-* xscale*-*-* } } */ ! /* { dg-options -mlong-double-128 { target powerpc64*-*-linux* } } */ /* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ #include "ffitest.h" diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/cls_longdouble_va.c gcc-4.6.0/libffi/testsuite/libffi.call/cls_longdouble_va.c *** gcc-4.5.2/libffi/testsuite/libffi.call/cls_longdouble_va.c Fri Jan 1 12:40:18 2010 --- gcc-4.6.0/libffi/testsuite/libffi.call/cls_longdouble_va.c Thu Oct 28 18:11:11 2010 *************** *** 6,11 **** --- 6,13 ---- /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */ /* { dg-output "" { xfail avr32*-*-* x86_64-*-mingw* } } */ + /* { dg-skip-if "" arm*-*-* { "-mfloat-abi=hard" } { "" } } */ + #include "ffitest.h" static void diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/cls_pointer.c gcc-4.6.0/libffi/testsuite/libffi.call/cls_pointer.c *** gcc-4.5.2/libffi/testsuite/libffi.call/cls_pointer.c Fri Jan 1 12:26:49 2010 --- gcc-4.6.0/libffi/testsuite/libffi.call/cls_pointer.c Wed Feb 9 10:01:07 2011 *************** int main (void) *** 65,71 **** CHECK(ffi_prep_closure_loc(pcl, &cif, cls_pointer_gn, NULL, code) == FFI_OK); ! res = (ffi_arg)((void*(*)(void*, void*))(code))(arg1, arg2); /* { dg-output "\n0x12345678 0x89abcdef: 0x9be02467" } */ printf("res: 0x%08x\n", (unsigned int) res); /* { dg-output "\nres: 0x9be02467" } */ --- 65,71 ---- CHECK(ffi_prep_closure_loc(pcl, &cif, cls_pointer_gn, NULL, code) == FFI_OK); ! res = (ffi_arg)(uintptr_t)((void*(*)(void*, void*))(code))(arg1, arg2); /* { dg-output "\n0x12345678 0x89abcdef: 0x9be02467" } */ printf("res: 0x%08x\n", (unsigned int) res); /* { dg-output "\nres: 0x9be02467" } */ diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/cls_pointer_stack.c gcc-4.6.0/libffi/testsuite/libffi.call/cls_pointer_stack.c *** gcc-4.5.2/libffi/testsuite/libffi.call/cls_pointer_stack.c Fri Jan 1 12:26:49 2010 --- gcc-4.6.0/libffi/testsuite/libffi.call/cls_pointer_stack.c Wed Feb 9 10:01:07 2011 *************** int main (void) *** 129,135 **** CHECK(ffi_prep_closure_loc(pcl, &cif, cls_pointer_gn, NULL, code) == FFI_OK); ! res = (ffi_arg)((void*(*)(void*, void*))(code))(arg1, arg2); printf("res: 0x%08x\n", (unsigned int) res); // { dg-output "\n0x01234567 0x89abcdef: 0x8acf1356" } --- 129,135 ---- CHECK(ffi_prep_closure_loc(pcl, &cif, cls_pointer_gn, NULL, code) == FFI_OK); ! res = (ffi_arg)(uintptr_t)((void*(*)(void*, void*))(code))(arg1, arg2); printf("res: 0x%08x\n", (unsigned int) res); // { dg-output "\n0x01234567 0x89abcdef: 0x8acf1356" } diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/err_bad_abi.c gcc-4.6.0/libffi/testsuite/libffi.call/err_bad_abi.c *** gcc-4.5.2/libffi/testsuite/libffi.call/err_bad_abi.c Mon Jun 15 17:14:53 2009 --- gcc-4.6.0/libffi/testsuite/libffi.call/err_bad_abi.c Wed Apr 7 20:27:37 2010 *************** int main (void) *** 17,27 **** ffi_cif cif; void *code; ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code); - void* args[1]; ffi_type* arg_types[1]; arg_types[0] = NULL; - args[0] = NULL; CHECK(ffi_prep_cif(&cif, 255, 0, &ffi_type_void, arg_types) == FFI_BAD_ABI); --- 17,25 ---- diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/ffitest.h gcc-4.6.0/libffi/testsuite/libffi.call/ffitest.h *** gcc-4.5.2/libffi/testsuite/libffi.call/ffitest.h Thu Jan 7 20:35:33 2010 --- gcc-4.6.0/libffi/testsuite/libffi.call/ffitest.h Wed Dec 1 14:00:01 2010 *************** *** 77,82 **** --- 77,102 ---- #define PRIuPTR "lu" #endif + /* IRIX kludge. */ + #if defined(__sgi) + /* IRIX 6.5 provides all definitions, but only for C99 + compilations. */ + #if (_MIPS_SZLONG == 32) + #define PRId64 "lld" + #define PRIu64 "llu" + #endif + /* This doesn't match , which always has "lld" here, but the + arguments are uint64_t, int64_t, which are unsigned long, long for + 64-bit in . */ + #if (_MIPS_SZLONG == 64) + #define PRId64 "ld" + #define PRIu64 "lu" + #endif + /* This doesn't match , which has "u" here, but the arguments + are uintptr_t, which is always unsigned long. */ + #define PRIuPTR "lu" + #endif + /* Solaris < 10 kludge. */ #if defined(__sun__) && defined(__svr4__) && !defined(PRIuPTR) #if defined(__arch64__) || defined (__x86_64__) diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.call/huge_struct.c gcc-4.6.0/libffi/testsuite/libffi.call/huge_struct.c *** gcc-4.5.2/libffi/testsuite/libffi.call/huge_struct.c Thu Dec 31 16:58:55 2009 --- gcc-4.6.0/libffi/testsuite/libffi.call/huge_struct.c Mon Aug 9 13:00:32 2010 *************** *** 7,13 **** /* { dg-excess-errors "" { target x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */ ! /* { dg-options -mlong-double-128 { target powerpc64*-*-* } } */ /* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ #include "ffitest.h" --- 7,13 ---- /* { dg-excess-errors "" { target x86_64-*-mingw* x86_64-*-cygwin* } } */ /* { dg-do run { xfail strongarm*-*-* xscale*-*-* } } */ ! /* { dg-options -mlong-double-128 { target powerpc64*-*-linux* } } */ /* { dg-output "" { xfail x86_64-*-mingw* x86_64-*-cygwin* } } */ #include "ffitest.h" diff -Nrcpad gcc-4.5.2/libffi/testsuite/libffi.special/special.exp gcc-4.6.0/libffi/testsuite/libffi.special/special.exp *** gcc-4.5.2/libffi/testsuite/libffi.special/special.exp Thu Apr 9 15:00:19 2009 --- gcc-4.6.0/libffi/testsuite/libffi.special/special.exp Mon Nov 15 20:30:37 2010 *************** *** 1,4 **** ! # Copyright (C) 2003, 2006, 2009 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by --- 1,4 ---- ! # Copyright (C) 2003, 2006, 2009, 2010 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by *************** *** 14,21 **** # along with this program; see the file COPYING3. If not see # . - load_lib libffi-dg.exp - dg-init libffi-init --- 14,19 ---- diff -Nrcpad gcc-4.5.2/libjava/ChangeLog gcc-4.6.0/libjava/ChangeLog *** gcc-4.5.2/libjava/ChangeLog Thu Dec 16 12:31:15 2010 --- gcc-4.6.0/libjava/ChangeLog Fri Mar 25 16:57:21 2011 *************** *** 1,166 **** ! 2010-12-16 Release Manager ! ! * GCC 4.5.2 released. ! ! 2010-12-03 Rainer Orth ! ! Backport from mainline: ! 2010-11-09 Rainer Orth ! ! * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o): ! Add -pthread on alpha*-dec-osf*. ! * testsuite/libjava.jvmti/jvmti-interp.exp ! (gcj_jni_compile_c_to_so): Likewise. ! ! 2010-11-30 Kai Tietz ! ! Backport from mainline ! 2010-08-12 Tom Tromey ! ! PR libgcj/42986 ! * gnu/java/security/jce/prng/natVMSecureRandomWin32.cc ! (natGenerateSeed): Add missing "::". ! ! 2010-10-06 Jack Howarth ! ! Backport from mainline ! 2010-05-03 Jack Howarth ! ! PR java/43839 ! * testsuite/Makefile.am: Override automake for site.exp creation ! and add entry to set libiconv. ! * testsuite/Makefile.in: Regenerate. ! * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): ! Add new global variable libiconv to handle alternative libiconv ! locations. ! ! 2010-07-31 Release Manager ! ! * GCC 4.5.1 released. ! ! 2010-07-15 Rainer Orth ! ! * include/sparc-signal.h: Renamed to ... ! * include/solaris-signal.h: ... this. ! * configure.ac: Use it on any *-*-solaris2* target. ! * configure: Regenerate. ! * configure.host (i?86-*-solaris2*): Set can_unwind_signal=yes. ! * Makefile.am (prims.lo): Add -fno-omit-frame-pointer to AM_CXXFLAGS. ! * Makefile.in: Regenerate. ! 2010-06-11 Rainer Orth ! Backport from mainline: ! 2010-05-25 Rainer Orth ! PR libgcj/44216 ! * configure.ac (libgcj_cv_exidx): Enable AC_LANG_WERROR. ! Save and restore werror flag. ! * configure: Regenerate. ! 2010-06-10 Iain Sandoe ! PR bootstrap/43170 * configure: Regenerate. ! 2010-05-25 Rainer Orth - * configure.ac: Redirect grep stdout, stderr to /dev/null instead - of grep -q. - Use -- instead of grep -e. * configure: Regenerate. ! 2010-04-19 Andrew Haley ! ! PR libgcj/40860 ! * configure.ac: Handle --no-merge-exidx-entries. ! ! 2010-04-14 Release Manager ! ! * GCC 4.5.0 released. ! ! 2010-04-02 Ralf Wildenhues ! * Makefile.in: Regenerate. ! * aclocal.m4: Regenerate. * configure: Regenerate. ! * gcj/Makefile.in: Regenerate. ! * include/Makefile.in: Regenerate. ! * testsuite/Makefile.in: Regenerate. ! ! 2010-03-21 Dave Korn ! ! PR target/42811 ! * configure.ac (DLLTOOL): Call AC_CHECK_TOOL. ! (libgcj_sublib_core_extra_deps): New host-dependent configure var. ! (LIBGCJ_SUBLIB_CORE_EXTRA_DEPS): AC_SUBST it. ! * configure.host (libgcj_sublib_core_extra_deps): Define ! appropriately on Cygwin and MinGW. ! (libgcj_sublib_core_extra_deps): Add libgcj-noncore-dummy import ! stub library on Cygwin and MinGW. ! * Makefile.am (LIBJAVA_CORE_EXTRA): Import AC_SUBST'd ! LIBGCJ_SUBLIB_CORE_EXTRA_DEPS if building sublibs, else define empty. ! (libgcj_la_DEPENDENCIES): Use it. ! (DLL_VERSION): New makefile macro. ! (libgcj-noncore-dummy.dll.a): New build rule for dummy import stub ! library. ! (libgcj_noncore_la_LIBADD): Trim superfluous convenience libs. ! (AM_MAKEFLAGS): Add DLLTOOL recursive propagation. ! * libgcj-noncore-dummy.def: New file. * Makefile.in: Regenerate. * include/Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. - * configure: Likewise. - * gcj/Makefile.in: Likewise. - - 2010-03-21 Dave Korn - - PR target/42811 (prerequisite) - * jvmti.cc (_Jv_GetJVMTIEnv): Avoid use of uninitialised memory. - - 2010-03-13 Matthias Klose - - PR libgcj/42676 - * Regenerate .h files for anonymous inner classes. - - 2010-03-01 Rainer Orth ! * configure.host (mips-sgi-irix6*): Don't set libgcj_interpreter. ! ! 2010-02-24 Andrew Haley ! ! PR java/40816 ! * include/jni_md.h: jboolean is an unsigned type. ! ! 2010-02-02 Jack Howarth ! ! PR java/41991 ! * include/posix.h: Redefine _Unwind_FindEnclosingFunction. ! ! 2010-01-26 Andrew Haley ! ! * java/lang/natClass.cc (registerClosure): Make sure closures is ! non NULL. ! ! 2010-01-19 Matthias Klose ! * Regenerate .class files. ! * classpath/lib/java/security/VMSecureRandom*.class: Remove. ! 2010-01-16 Ralf Wildenhues ! * Makefile.am (write_entries_to_file): Use \012 instead of \n ! with tr. ! * scripts/makemake.tcl: Likewise. ! * sources.am: Regenerate. ! * Makefile.in: Regenerate. ! 2010-01-09 Jakub Jelinek * gnu/gcj/convert/Convert.java (version): Update copyright notice dates. * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise. ! 2010-01-06 Matthias Klose ! ! * Regenerate .class files with updated ecj.jar (based on 3.5.1). --- 1,57 ---- ! 2011-03-25 Release Manager ! * GCC 4.6.0 released. ! 2011-02-14 Gary Benson ! * libjava/contrib/aot-compile.in: Add our module directory ! to the start of the search path rather than the end. ! * libjava/contrib/aot-compile-rpm.in: Likewise. ! 2011-02-14 Gary Benson ! PR libjava/47484 ! * configure.ac (python_mod_dir, python_mod_dir_expanded): ! Install Python modules into versioned directory. * configure: Regenerate. ! 2011-02-13 Ralf Wildenhues * configure: Regenerate. + * shlibpath.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Remove handling + of freebsd1* which soon would incorrectly match FreeBSD 10.0. ! 2011-02-04 Ralf Wildenhues ! PR java/21206 ! * configure.ac (LDLIBICONV): New substituted variable, with ! instances of '-Wl,' removed from LIBICONV. * configure: Regenerate. ! * libgcj.spec.in: Use @LDLIBICONV@ not @LIBICONV@. * Makefile.in: Regenerate. + * gcj/Makefile.in: Likewise. * include/Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. ! 2011-02-02 Rainer Orth ! * configure.ac: Don't use libdl on mips-sgi-irix6*. ! * configure: Regenerate. ! 2011-01-06 Rainer Orth ! * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): ! Add -shared-libgcc to cxxflags for *-*-solaris*. ! Remove -lsocket. ! 2011-01-03 Jakub Jelinek * gnu/gcj/convert/Convert.java (version): Update copyright notice dates. * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise. + + Copyright (C) 2011 Free Software Foundation, Inc. ! Copying and distribution of this file, with or without modification, ! are permitted in any medium without royalty provided the copyright ! notice and this notice are preserved. diff -Nrcpad gcc-4.5.2/libjava/ChangeLog-2010 gcc-4.6.0/libjava/ChangeLog-2010 *** gcc-4.5.2/libjava/ChangeLog-2010 Thu Jan 1 00:00:00 1970 --- gcc-4.6.0/libjava/ChangeLog-2010 Sun Jan 2 16:22:05 2011 *************** *** 0 **** --- 1,723 ---- + 2010-12-13 Andrew John Hughes + + PR libgcj/46774 + * libjava/java/security/VMAccessController.java: + (DEFAULT_CONTEXT): Create ProtectionDomain with + four argument constructor (arguments are the same + as those implied by the two argument constructor). + (getContext()): Create ProtectionDomain instances + with four argument constructor using a null Principal + array (as before) but including the classloader, which + was always null before. + + 2010-12-06 Dave Korn + + PR target/40125 + PR lto/46695 + * configure.ac: Invoke ACX_LT_HOST_FLAGS. + * configure.host (libgcj_sublib_ltflags): Use lt_host_flags. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * Makefile.in: Regenerate. + * gcj/Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + + 2010-11-09 Rainer Orth + + * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o): + Add -pthread on alpha*-dec-osf*. + * testsuite/libjava.jvmti/jvmti-interp.exp + (gcj_jni_compile_c_to_so): Likewise. + + 2010-10-12 Andrew John Hughes + + Import GNU Classpath (libgcj-snapshot-20100921). + + * libjava/Makefile.in: Regenerated. + * libjava/javax/swing/text/html/StyleSheet.h, + * libjava/javax/swing/text/html/MinimalHTMLWriter.h, + * libjava/javax/swing/text/html/HTMLWriter.h, + * libjava/javax/xml/stream/XMLEventFactory.h, + * libjava/javax/xml/stream/XMLOutputFactory.h, + * libjava/javax/xml/stream/events/Namespace.h, + * libjava/javax/xml/stream/util/StreamReaderDelegate.h, + * libjava/javax/security/auth/kerberos/KeyImpl.h, + * libjava/javax/security/auth/kerberos/KerberosTicket.h: + Regenerated. + * libjava/classpath/Makefile.in, + * libjava/classpath/depcomp, + * libjava/classpath/scripts/Makefile.in, + * libjava/classpath/resource/Makefile.in, + * libjava/classpath/tools/Makefile.in: + Regenerated. Use libtool from top-level config directory. + * libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class, + * libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class, + * libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class: Regenerated. + * libjava/classpath/doc/Makefile.in, + * libjava/classpath/doc/api/Makefile.in, + * libjava/classpath/doc/texinfo.tex, + * libjava/classpath/external/Makefile.in, + * libjava/classpath/external/jsr166/Makefile.in, + * libjava/classpath/external/sax/Makefile.in, + * libjava/classpath/external/w3c_dom/Makefile.in, + * libjava/classpath/external/relaxngDatatype/Makefile.in, + * libjava/classpath/include/Makefile.in: Regenerated. + * libjava/classpath/m4/lib-prefix.m4, + * libjava/classpath/m4/lib-link.m4, + * libjava/classpath/m4/lib-ld.m4: Removed. + * libjava/classpath/native/jni/classpath/Makefile.in, + * libjava/classpath/native/jni/gstreamer-peer/Makefile.in, + * libjava/classpath/native/jni/midi-dssi/Makefile.in, + * libjava/classpath/native/jni/Makefile.in, + * libjava/classpath/native/jni/gconf-peer/Makefile.in, + * libjava/classpath/native/jni/java-io/Makefile.in, + * libjava/classpath/native/jni/native-lib/Makefile.in, + * libjava/classpath/native/jni/native-lib/cpnet.c, + * libjava/classpath/native/jni/java-util/Makefile.in, + * libjava/classpath/native/jni/java-lang/Makefile.in, + * libjava/classpath/native/jni/midi-alsa/Makefile.in, + * libjava/classpath/native/jni/java-nio/Makefile.in, + * libjava/classpath/native/jni/java-net/Makefile.in, + * libjava/classpath/native/jni/java-math/Makefile.in, + * libjava/classpath/native/jni/xmlj/Makefile.in, + * libjava/classpath/native/jni/qt-peer/Makefile.in, + * libjava/classpath/native/jni/gtk-peer/Makefile.in, + * libjava/classpath/native/Makefile.in, + * libjava/classpath/native/jawt/Makefile.in, + * libjava/classpath/native/fdlibm/Makefile.in, + * libjava/classpath/native/plugin/Makefile.in, + * libjava/classpath/lib/java/util/regex/Matcher.class, + * libjava/classpath/lib/java/util/TreeMap$3.class, + * libjava/classpath/lib/java/util/Scanner.class, + * libjava/classpath/lib/Makefile.in, + * libjava/classpath/lib/org/omg/PortableServer/_ServantActivatorStub.class, + * libjava/classpath/lib/org/omg/PortableServer/_ServantLocatorStub.class, + * libjava/classpath/lib/org/omg/CORBA/portable/InputStream.class, + * libjava/classpath/lib/org/omg/CORBA/portable/ObjectImpl.class, + * libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class, + * libjava/classpath/lib/org/omg/CORBA/LocalObject.class, + * libjava/classpath/lib/org/omg/CORBA_2_3/portable/InputStream.class, + * libjava/classpath/lib/org/omg/CORBA_2_3/portable/OutputStream.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynSequenceStub.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynValueStub.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynStructStub.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynEnumStub.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynArrayStub.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynAnyFactoryStub.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynAnyStub.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynUnionStub.class, + * libjava/classpath/lib/org/omg/DynamicAny/_DynFixedStub.class, + * libjava/classpath/lib/org/ietf/jgss/GSSManager.class, + * libjava/classpath/lib/gnu/xml/stream/NamespaceImpl.class, + * libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class, + * libjava/classpath/lib/gnu/xml/stream/FilteredStreamReader.class, + * libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class, + * libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class, + * libjava/classpath/lib/gnu/xml/stream/XMLStreamWriterImpl.class, + * libjava/classpath/lib/gnu/java/locale/LocaleData.class, + * libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class, + * libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class, + * libjava/classpath/lib/gnu/javax/print/ipp/IppResponse$ResponseReader.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/DocumentFormat.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/SidesSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MediaSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OperationsSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CharsetSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CompressionSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/SidesDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MediaDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/UnknownAttribute.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/DetailedStatusMessage.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobPrinterUri.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesCharset.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobStateMessage.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobId.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobMoreInfo.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobUri.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/StatusMessage.class, + * libjava/classpath/lib/gnu/javax/print/ipp/attribute/DocumentAccessError.class, + * libjava/classpath/lib/gnu/javax/print/ipp/IppUtilities.class, + * libjava/classpath/lib/gnu/javax/print/ipp/IppPrintService.class, + * libjava/classpath/lib/gnu/javax/print/ipp/IppResponse.class, + * libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class, + * libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class, + * libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class, + * libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class, + * libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class, + * libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class, + * libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit.class, + * libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class, + * libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class, + * libjava/classpath/lib/javax/swing/text/html/TableView$RowView.class, + * libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.class, + * libjava/classpath/lib/javax/swing/text/html/MultiStyle.class, + * libjava/classpath/lib/javax/swing/text/html/ImageView.class, + * libjava/classpath/lib/javax/swing/text/html/TableView$CellView.class, + * libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet.class, + * libjava/classpath/lib/javax/swing/text/html/ImageView$1.class, + * libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class, + * libjava/classpath/lib/javax/swing/text/html/TableView.class, + * libjava/classpath/lib/javax/swing/text/html/StyleSheet.class, + * libjava/classpath/lib/javax/swing/text/html/ObjectView.class, + * libjava/classpath/lib/javax/swing/text/html/MinimalHTMLWriter.class, + * libjava/classpath/lib/javax/swing/undo/UndoableEditSupport.class, + * libjava/classpath/lib/javax/swing/undo/StateEdit.class, + * libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class, + * libjava/classpath/lib/javax/xml/stream/events/Namespace.class, + * libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class, + * libjava/classpath/lib/javax/xml/stream/util/StreamReaderDelegate.class, + * libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class, + * libjava/classpath/lib/javax/security/auth/kerberos/KerberosTicket.class, + * libjava/classpath/lib/javax/security/auth/kerberos/KeyImpl.class, + * libjava/classpath/missing, + * libjava/classpath/aclocal.m4, + * libjava/classpath/examples/Makefile.in, + * libjava/classpath/install-sh, + * libjava/gnu/xml/stream/FilteredStreamReader.h, + * libjava/gnu/xml/stream/XMLStreamWriterImpl.h, + * libjava/gnu/xml/stream/NamespaceImpl.h, + * libjava/gnu/xml/stream/XIncludeFilter.h, + * libjava/gnu/javax/swing/text/html/css/Selector.h, + * libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h, + * libjava/sources.am: Regenerated. + + 2010-09-27 Ralf Wildenhues + + * libjava/Makefile.in: Regenerate. + * libjava/gcj/Makefile.in: Regenerate. + * libjava/include/Makefile.in: Regenerate. + * libjava/testsuite/Makefile.in: Regenerate. + + 2010-09-21 Jack Howarth + + * libjava/configure.ac: Set LIBMATHSPEC to -lm except on darwin. + * libjava/libgcj.spec.in: Use LIBMATHSPEC. + * libjava/configure: Regenerate. + + 2010-08-27 Dmitrijs Ledkovs + Ralf Wildenhues + + PR libgcj/40868 + * configure.ac: Add GCC_FOR_ECJX variable. Ensure + GCJ_FOR_ECJX is always set. + * Makefile.am [!NATIVE] (ecjx.$(OBJEXT)): New rule. + * Makefile.in: Regenerate. + * configure: Regenerate. + * gcj/Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + + 2010-08-18 Jack Howarth + + * libjava/configure.ac (THREADLIBS): Don't set on Darwin. + (THREADSPEC): Likwise. + * libjava/configure: Regenerate. + * libjava/Makefile.am: Define LIBJAVA_LDFLAGS_LIBMATH as + -lm only if USING_DARWIN_CRT undefined. + (libgcj_tools_la_LIBADD): Replace '-lm' with $(LIBJAVA_LDFLAGS_LIBMATH). + * libjava/Makefile.in: Regenerate. + + 2010-08-17 Iain Sandoe + + * include/posix.h: Make substitution of + _darwin10_Unwind_FindEnclosingFunction conditional on + OSX >= 10.6 (Darwin10). + + 2010-08-12 Tom Tromey + + * gnu/java/security/jce/prng/natVMSecureRandomWin32.cc + (natGenerateSeed): Add missing "::". + + 2010-07-23 Rainer Orth + + * configure.ac (*-*-solaris2.8): Use alternate thread library. + Add libthread. + (*-*-solaris2.9): Use libthread. + * configure: Regenerate. + + 2010-07-15 Rainer Orth + + * include/sparc-signal.h: Renamed to ... + * include/solaris-signal.h: ... this. + * configure.ac: Use it on any *-*-solaris2* target. + * configure: Regenerate. + * configure.host (i?86-*-solaris2*): Set can_unwind_signal=yes. + * Makefile.am (prims.lo): Add -fno-omit-frame-pointer to AM_CXXFLAGS. + * Makefile.in: Regenerate. + + 2010-07-05 Rainer Orth + + * configure.ac (ANONVERSCRIPT): Handle sun style. + Define ANONVERSCRIPT_GNU, ANONVERSCRIPT_SUN automake conditionals. + * configure: Regenerate. + + * Makefile.am [ANONVERSCRIPT]: Protect GNU section with + ANONVERSCRIPT_GNU. + Introduce per-library $(lib)_la_version_arg, $(lib)_la_version_dep + variables. + [ANONVERSCRIPT_GNU] (version_arg): Default ld arg for version map. + (version_dep): Likewise for dependency. + Use them to set the per-library variables. + [!ANONVERSCRIPT]: Provide them vor the unversioned case. + [ANONVERSCRIPT_SUN]: Handle Sun symbol versioning. + (libgcj_la_DEPENDENCIES): Unconditionally use + $(libgcj_la_version_dep). + (libgcj_la_LINK): Add $(libgcj_la_version_arg). + (libgcj_noncore_la_DEPENDENCIES): Unconditionally use + $(libgcj_la_version_dep). + (libgcj_tools_la_LIBADD): Move -lm ... + (libgcj_tools_la_LDFLAGS): ... here. + (libgcj_tools_la_DEPENDENCIES): Add + $(libgcj_tools_la_version_dep). + (libgcj_tools_la_LINK): Add $(libgcj_tools_la_version_arg). + (lib_gnu_awt_xlib_la_DEPENDENCIES): Add + $(lib_gnu_awt_xlib_la_version_dep). + (lib_gnu_awt_xlib_la_LINK): Add + $(lib_gnu_awt_xlib_la_version_arg). + (libgcj_bc_la_DEPENDENCIES): Add $(libgcj_bc_la_version_dep). + (libgcj_bc_la_LINK): $(libgcj_bc_la_version_arg). + [ANONVERSCRIPT && ANONVERSCRIPT_SUN] (%.ver-sun): New pattern rule. + * Makefile.in: Regenerate. + + * libgcj.ver: Reformat. + + 2010-06-10 Peter O'Gorman + + * configure.ac: Set SYSTEMSPEC so that -allow_stack_execute is not + passed to the linker for -dynamiclib or -bundle on darwin. + * configure: Regenerate. + + 2010-06-09 Iain Sandoe + + PR bootstrap/43170 + * configure: Regenerate. + + 2010-06-03 Ralf Wildenhues + + * configure: Regenerate. + + 2010-06-03 Matthias Klose + + * libtool-version: Bump soversion. + + 2010-05-29 Mike Stump + + * configure.ac: Add multilib support for gmp. Proper -I and -L + flags for gmp are added. + + 2010-05-25 Rainer Orth + + * configure.ac: Redirect grep stdout, stderr to /dev/null instead + of grep -q. + Use -- instead of grep -e. + * configure: Regenerate. + + 2010-05-25 Rainer Orth + + PR libgcj/44216 + * configure.ac (libgcj_cv_exidx): Enable AC_LANG_WERROR. + Save and restore werror flag. + * configure: Regenerate. + + 2010-05-04 Ralf Wildenhues + + PR other/43620 + * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. + * Makefile.in: Regenerate. + * gcj/Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + + 2010-05-03 Jack Howarth + + PR 43839 + * testsuite/Makefile.am: Override automake for site.exp creation + and add entry to set libiconv. + * testsuite/Makefile.in: Regenerate. + * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): + Add new global variable libiconv to handle alternative libiconv + locations. + + 2010-04-19 Andrew Haley + + PR libgcj/40860 + * configure.ac: Handle --no-merge-exidx-entries. + + 2010-04-07 Jakub Jelinek + + * exception.cc (_Jv_Throw): Avoid set but not used warning. + * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in + sizeof to avoid set but not used warnings. + + 2010-04-07 Jason Merrill + + * gnu/gcj/runtime/natSharedLibLoader.cc (findCore): Move + declaration of _Jv_create_core out of the function. + + 2010-04-02 Ralf Wildenhues + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * gcj/Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + + 2010-03-21 Dave Korn + + PR target/42811 + * configure.ac (DLLTOOL): Call AC_CHECK_TOOL. + (libgcj_sublib_core_extra_deps): New host-dependent configure var. + (LIBGCJ_SUBLIB_CORE_EXTRA_DEPS): AC_SUBST it. + * configure.host (libgcj_sublib_core_extra_deps): Define + appropriately on Cygwin and MinGW. + (libgcj_sublib_core_extra_deps): Add libgcj-noncore-dummy import + stub library on Cygwin and MinGW. + * Makefile.am (LIBJAVA_CORE_EXTRA): Import AC_SUBST'd + LIBGCJ_SUBLIB_CORE_EXTRA_DEPS if building sublibs, else define empty. + (libgcj_la_DEPENDENCIES): Use it. + (DLL_VERSION): New makefile macro. + (libgcj-noncore-dummy.dll.a): New build rule for dummy import stub + library. + (libgcj_noncore_la_LIBADD): Trim superfluous convenience libs. + (AM_MAKEFLAGS): Add DLLTOOL recursive propagation. + * libgcj-noncore-dummy.def: New file. + * Makefile.in: Regenerate. + * include/Makefile.in: Likewise. + * testsuite/Makefile.in: Likewise. + * configure: Likewise. + * gcj/Makefile.in: Likewise. + + 2010-03-21 Dave Korn + + PR target/42811 (prerequisite) + * jvmti.cc (_Jv_GetJVMTIEnv): Avoid use of uninitialised memory. + + 2010-03-13 Matthias Klose + + PR libgcj/42676 + * Regenerate .h files for anonymous inner classes. + + 2010-03-01 Rainer Orth + + * configure.host (mips-sgi-irix6*): Don't set libgcj_interpreter. + + 2010-02-24 Andrew Haley + + PR java/40816 + * include/jni_md.h: jboolean is an unsigned type. + + 2010-02-02 Jack Howarth + + PR java/41991 + * include/posix.h: Redefine _Unwind_FindEnclosingFunction. + + 2010-01-26 Andrew Haley + + * java/lang/natClass.cc (registerClosure): Make sure closures is + non NULL. + + 2010-01-19 Matthias Klose + + * Regenerate .class files. + * classpath/lib/java/security/VMSecureRandom*.class: Remove. + + 2010-01-16 Ralf Wildenhues + + * Makefile.am (write_entries_to_file): Use \012 instead of \n + with tr. + * scripts/makemake.tcl: Likewise. + * sources.am: Regenerate. + * Makefile.in: Regenerate. + + 2010-01-09 Jakub Jelinek + + * gnu/gcj/convert/Convert.java (version): Update copyright notice + dates. + * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise. + + 2010-01-06 Matthias Klose + + * Regenerate .class files with updated ecj.jar (based on 3.5.1). diff -Nrcpad gcc-4.5.2/libjava/Makefile.am gcc-4.6.0/libjava/Makefile.am *** gcc-4.5.2/libjava/Makefile.am Thu Jul 15 12:05:56 2010 --- gcc-4.6.0/libjava/Makefile.am Fri Aug 27 04:27:40 2010 *************** extra_ldflags_libjava = @extra_ldflags_l *** 291,297 **** extra_ldflags = @extra_ldflags@ if ANONVERSCRIPT ! extra_ldflags_libjava += -Wl,--version-script=$(srcdir)/libgcj.ver endif LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) --- 291,335 ---- extra_ldflags = @extra_ldflags@ if ANONVERSCRIPT ! if ANONVERSCRIPT_GNU ! version_arg = -Wl,--version-script=$(srcdir)/libgcj.ver ! libgcj_la_version_arg = $(version_arg) ! libgcj_tools_la_version_arg = $(version_arg) ! lib_gnu_awt_xlib_la_version_arg = $(version_arg) ! libgcj_bc_la_version_arg = $(version_arg) ! ! version_dep = $(srcdir)/libgcj.ver ! libgcj_la_version_dep = $(version_dep) ! libgcj_tools_la_version_dep = $(version_dep) ! lib_gnu_awt_xlib_la_version_dep = $(version_dep) ! libgcj_bc_la_version_dep = $(version_dep) ! endif ! if ANONVERSCRIPT_SUN ! libgcj_la_version_arg = -Wl,-M,libgcj.ver-sun ! libgcj_tools_la_version_arg = -Wl,-M,libgcj_tools.ver-sun ! lib_gnu_awt_xlib_la_version_arg = -Wl,-M,lib_gnu_awt_xlib.ver-sun ! libgcj_bc_la_version_arg = -Wl,-M,libgcj_bc.ver-sun ! ! libgcj_la_version_dep = libgcj.ver-sun ! libgcj_tools_la_version_dep = libgcj_tools.ver-sun ! lib_gnu_awt_xlib_la_version_dep = lib_gnu_awt_xlib.ver-sun ! libgcj_bc_la_version_dep = libgcj_bc.ver-sun ! ! # The pattern rule necessary to build the *.ver-sun mapfiles is at the end ! # of the file, see below. ! endif ! else ! version_arg = ! libgcj_la_version_arg = $(version_arg) ! libgcj_tools_la_version_arg = $(version_arg) ! lib_gnu_awt_xlib_la_version_arg = $(version_arg) ! libgcj_bc_la_version_arg = $(version_arg) ! ! version_dep = ! libgcj_la_version_dep = $(version_dep) ! libgcj_tools_la_version_dep = $(version_dep) ! lib_gnu_awt_xlib_la_version_dep = $(version_dep) ! libgcj_bc_la_version_dep = $(version_dep) endif LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) *************** endif *** 427,432 **** --- 465,473 ---- if USING_DARWIN_CRT libgcj_la_SOURCES += darwin.cc + LIBJAVA_LDFLAGS_LIBMATH = + else + LIBJAVA_LDFLAGS_LIBMATH = -lm endif if USING_POSIX_THREADS *************** libgcj_la_DEPENDENCIES = libgcj-$(gcc_ve *** 465,475 **** java/process-$(PLATFORM).lo \ $(ALL_PACKAGE_SOURCE_FILES_LO) \ $(LIBLTDL) $(libgcj_la_LIBADD) \ ! $(LIBJAVA_CORE_EXTRA) ! if ANONVERSCRIPT ! libgcj_la_DEPENDENCIES += $(srcdir)/libgcj.ver ! endif ! libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS) ## A hack to make sure the various gcj-related macros, like ## LTGCJCOMPILE, are defined by automake. This is never actually --- 506,514 ---- java/process-$(PLATFORM).lo \ $(ALL_PACKAGE_SOURCE_FILES_LO) \ $(LIBLTDL) $(libgcj_la_LIBADD) \ ! $(LIBJAVA_CORE_EXTRA) \ ! $(libgcj_la_version_dep) ! libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS) $(libgcj_la_version_arg) ## A hack to make sure the various gcj-related macros, like ## LTGCJCOMPILE, are defined by automake. This is never actually *************** libgcj_noncore_la_SOURCES = *** 492,501 **** libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS) libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) libgcj.la libgcj_noncore_la_DEPENDENCIES = libgcj-$(gcc_version).jar $(LIBLTDL) \ ! $(libgcj_noncore_la_LIBADD) libgcj.la ! if ANONVERSCRIPT ! libgcj_noncore_la_DEPENDENCIES += $(srcdir)/libgcj.ver ! endif libgcj_noncore_la_LINK = $(libgcj_la_LINK) endif # BUILD_SUBLIBS --- 531,537 ---- libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS) libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) libgcj.la libgcj_noncore_la_DEPENDENCIES = libgcj-$(gcc_version).jar $(LIBLTDL) \ ! $(libgcj_noncore_la_LIBADD) libgcj.la $(libgcj_la_version_dep) libgcj_noncore_la_LINK = $(libgcj_la_LINK) endif # BUILD_SUBLIBS *************** libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS *** 511,523 **** -fsource-filename=$(here)/classpath/tools/all-classes.lst libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ ! $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) ! libgcj_tools_la_LIBADD = libgcj.la -lm ! libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec if BUILD_SUBLIBS libgcj_tools_la_DEPENDENCIES += libgcj-noncore.la endif ! libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) ## libjvm.so libjvm_la_SOURCES = jni-libjvm.cc --- 547,563 ---- -fsource-filename=$(here)/classpath/tools/all-classes.lst libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ ! $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \ ! $(LIBJAVA_LDFLAGS_LIBMATH) ! ! libgcj_tools_la_LIBADD = libgcj.la ! libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \ ! $(libgcj_tools_la_version_dep) if BUILD_SUBLIBS libgcj_tools_la_DEPENDENCIES += libgcj-noncore.la endif ! libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \ ! $(libgcj_tools_la_version_arg) ## libjvm.so libjvm_la_SOURCES = jni-libjvm.cc *************** lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat *** 545,550 **** --- 585,591 ---- lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ libgcj.la libgcj.spec \ + $(lib_gnu_awt_xlib_la_version_dep) \ $(lib_gnu_awt_xlib_la_LIBADD) if BUILD_SUBLIBS lib_gnu_awt_xlib_la_DEPENDENCIES += libgcj-noncore.la *************** lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc *** 560,566 **** @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \ -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) ! lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) ## Support for libgcj_bc: dummy shared library. ## --- 601,608 ---- @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \ -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) ! lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) \ ! $(lib_gnu_awt_xlib_la_version_arg) ## Support for libgcj_bc: dummy shared library. ## *************** lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $( *** 569,576 **** libgcj_bc_la_SOURCES = libgcj_bc.c libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) ! libgcj_bc_la_DEPENDENCIES = libgcj.la ! libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS) ## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others. ## USE_LIBGCJ_BC shouldn't be set on other targets. libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \ --- 611,619 ---- libgcj_bc_la_SOURCES = libgcj_bc.c libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) ! libgcj_bc_la_DEPENDENCIES = libgcj.la $(libgcj_bc_la_version_dep) ! libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS) \ ! $(libgcj_bc_la_version_arg) ## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others. ## USE_LIBGCJ_BC shouldn't be set on other targets. libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \ *************** ecjx_LINK = $(GCJ_FOR_ECJX_LINK) $(ecjx_ *** 1127,1132 **** --- 1170,1177 ---- ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) ecjx_LDADD = ecjx_DEPENDENCIES = + ecjx.$(OBJEXT): ecjx.cc + $(GCC_FOR_ECJX) -c $< endif !NATIVE *************** distclean-multi: *** 1576,1578 **** --- 1621,1642 ---- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean maintainer-clean-multi: $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean + + if ANONVERSCRIPT + if ANONVERSCRIPT_SUN + # This must be at the end of the Makefile, otherwise .SECONDEXPANSION + # causes expansion of filenames with $ in their names, which breaks the build. + # .SECONDEXPANSION is necessary to allow the use of automatic variables ($@ + # in this case) in the requisites of pattern rules. + .SECONDEXPANSION: + + %.ver-sun : $(srcdir)/libgcj.ver \ + $(top_srcdir)/../contrib/make_sunver.pl \ + $$($$(basename $$@)_la_OBJECTS) $$($$(basename $$@)_la_LIBADD) + perl $(top_srcdir)/../contrib/make_sunver.pl \ + $(srcdir)/libgcj.ver \ + `echo $($(basename $@)_la_OBJECTS) $($(basename $@)_la_LIBADD) | \ + sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \ + > $@ || (rm -f $@ ; exit 1) + endif + endif diff -Nrcpad gcc-4.5.2/libjava/Makefile.in gcc-4.6.0/libjava/Makefile.in *** gcc-4.5.2/libjava/Makefile.in Thu Dec 16 12:49:03 2010 --- gcc-4.6.0/libjava/Makefile.in Fri Mar 25 17:07:00 2011 *************** target_triplet = @target@ *** 49,95 **** @INSTALL_BINARIES_FALSE@@NATIVE_TRUE@am__append_7 = $(bin_programs) @INSTALL_AOT_RPM_TRUE@am__append_8 = contrib/aot-compile-rpm @BUILD_ECJ1_TRUE@libexecsub_PROGRAMS = ecjx$(EXEEXT) ! @ANONVERSCRIPT_TRUE@am__append_9 = -Wl,--version-script=$(srcdir)/libgcj.ver ! @USING_GCC_TRUE@am__append_10 = $(WARNINGS) ! @BUILD_SUBLIBS_TRUE@am__append_11 = libgcj-noncore.la ! @USING_BOEHMGC_TRUE@am__append_12 = boehm.cc ! @USING_NOGC_TRUE@am__append_13 = nogc.cc ! @USING_POSIX_PLATFORM_TRUE@am__append_14 = posix.cc ! @USING_WIN32_PLATFORM_TRUE@am__append_15 = win32.cc ! @USING_DARWIN_CRT_TRUE@am__append_16 = darwin.cc ! @USING_POSIX_THREADS_TRUE@am__append_17 = posix-threads.cc ! @USING_WIN32_THREADS_TRUE@am__append_18 = win32-threads.cc ! @USING_NO_THREADS_TRUE@am__append_19 = no-threads.cc ! @ANONVERSCRIPT_TRUE@am__append_20 = $(srcdir)/libgcj.ver ! @ANONVERSCRIPT_TRUE@@BUILD_SUBLIBS_TRUE@am__append_21 = $(srcdir)/libgcj.ver ! @BUILD_SUBLIBS_TRUE@am__append_22 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@am__append_23 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@am__append_24 = libgcj-noncore.la ! DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \ ! $(srcdir)/../config.guess $(srcdir)/../config.sub \ ! $(srcdir)/../depcomp $(srcdir)/../install-sh \ ! $(srcdir)/../ltmain.sh $(srcdir)/../missing \ ! $(srcdir)/../mkinstalldirs $(srcdir)/Makefile.am \ ! $(srcdir)/Makefile.in $(srcdir)/libgcj-test.spec.in \ ! $(srcdir)/libgcj.pc.in $(srcdir)/libgcj.spec.in \ ! $(srcdir)/sources.am $(top_srcdir)/configure \ ! $(top_srcdir)/contrib/aot-compile-rpm.in \ ! $(top_srcdir)/contrib/aot-compile.in \ $(top_srcdir)/contrib/aotcompile.py.in \ $(top_srcdir)/contrib/generate-cacerts.pl.in \ $(top_srcdir)/contrib/rebuild-gcj-db.in \ $(top_srcdir)/gnu/java/nio/natVMPipe${PLATFORM}.cc \ $(top_srcdir)/gnu/java/nio/natVMSelector${PLATFORM}.cc \ ! $(top_srcdir)/java/lang/nat${PLATFORM}Process.cc \ ! $(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS ! @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_25 = gen-from-JIS ! @BUILD_SUBLIBS_TRUE@am__append_26 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@am__append_27 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@am__append_28 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@@NATIVE_TRUE@am__append_29 = libgcj-noncore.la ! @NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_30 = libgcj_bc.la ! @NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_31 = libgcj.la ! @XLIB_AWT_TRUE@am__append_32 = $(xlib_nat_headers) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \ --- 49,90 ---- @INSTALL_BINARIES_FALSE@@NATIVE_TRUE@am__append_7 = $(bin_programs) @INSTALL_AOT_RPM_TRUE@am__append_8 = contrib/aot-compile-rpm @BUILD_ECJ1_TRUE@libexecsub_PROGRAMS = ecjx$(EXEEXT) ! @USING_GCC_TRUE@am__append_9 = $(WARNINGS) ! @BUILD_SUBLIBS_TRUE@am__append_10 = libgcj-noncore.la ! @USING_BOEHMGC_TRUE@am__append_11 = boehm.cc ! @USING_NOGC_TRUE@am__append_12 = nogc.cc ! @USING_POSIX_PLATFORM_TRUE@am__append_13 = posix.cc ! @USING_WIN32_PLATFORM_TRUE@am__append_14 = win32.cc ! @USING_DARWIN_CRT_TRUE@am__append_15 = darwin.cc ! @USING_POSIX_THREADS_TRUE@am__append_16 = posix-threads.cc ! @USING_WIN32_THREADS_TRUE@am__append_17 = win32-threads.cc ! @USING_NO_THREADS_TRUE@am__append_18 = no-threads.cc ! @BUILD_SUBLIBS_TRUE@am__append_19 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@am__append_20 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@am__append_21 = libgcj-noncore.la ! DIST_COMMON = $(srcdir)/sources.am NEWS README ChangeLog THANKS \ ! $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ ! $(top_srcdir)/configure $(am__configure_deps) \ ! $(srcdir)/../mkinstalldirs $(srcdir)/libgcj.pc.in \ ! $(srcdir)/libgcj.spec.in $(srcdir)/libgcj-test.spec.in \ $(top_srcdir)/contrib/aotcompile.py.in \ + $(top_srcdir)/contrib/aot-compile.in \ + $(top_srcdir)/contrib/aot-compile-rpm.in \ $(top_srcdir)/contrib/generate-cacerts.pl.in \ $(top_srcdir)/contrib/rebuild-gcj-db.in \ + $(top_srcdir)/scripts/jar.in \ + $(top_srcdir)/java/lang/nat${PLATFORM}Process.cc \ $(top_srcdir)/gnu/java/nio/natVMPipe${PLATFORM}.cc \ $(top_srcdir)/gnu/java/nio/natVMSelector${PLATFORM}.cc \ ! $(srcdir)/../depcomp ! @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_22 = gen-from-JIS ! @BUILD_SUBLIBS_TRUE@am__append_23 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@am__append_24 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@am__append_25 = libgcj-noncore.la ! @BUILD_SUBLIBS_TRUE@@NATIVE_TRUE@am__append_26 = libgcj-noncore.la ! @NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_27 = libgcj_bc.la ! @NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_28 = libgcj.la ! @XLIB_AWT_TRUE@am__append_29 = $(xlib_nat_headers) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/libl *** 104,109 **** --- 99,105 ---- $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ $(top_srcdir)/../config/lib-prefix.m4 \ + $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ $(top_srcdir)/../config/override.m4 \ *************** am__DEPENDENCIES_3 = $(am__DEPENDENCIES_ *** 323,394 **** @BUILD_SUBLIBS_TRUE@am__DEPENDENCIES_4 = \ @BUILD_SUBLIBS_TRUE@ $(CORE_PACKAGE_SOURCE_FILES_LO) am__DEPENDENCIES_5 = - am__libgcj_la_SOURCES_DIST = prims.cc jni.cc exception.cc \ - stacktrace.cc link.cc defineclass.cc verify.cc jvmti.cc \ - interpret.cc gnu/classpath/jdwp/natVMFrame.cc \ - gnu/classpath/jdwp/natVMMethod.cc \ - gnu/classpath/jdwp/natVMVirtualMachine.cc \ - gnu/classpath/natConfiguration.cc \ - gnu/classpath/natSystemProperties.cc \ - gnu/classpath/natVMStackWalker.cc gnu/gcj/natCore.cc \ - gnu/gcj/convert/JIS0208_to_Unicode.cc \ - gnu/gcj/convert/JIS0212_to_Unicode.cc \ - gnu/gcj/convert/Unicode_to_JIS.cc gnu/gcj/convert/natIconv.cc \ - gnu/gcj/convert/natInput_EUCJIS.cc \ - gnu/gcj/convert/natInput_SJIS.cc \ - gnu/gcj/convert/natOutput_EUCJIS.cc \ - gnu/gcj/convert/natOutput_SJIS.cc \ - gnu/gcj/io/natSimpleSHSStream.cc gnu/gcj/io/shs.cc \ - gnu/gcj/jvmti/natBreakpoint.cc \ - gnu/gcj/jvmti/natNormalBreakpoint.cc \ - gnu/gcj/runtime/natFinalizerThread.cc \ - gnu/gcj/runtime/natSharedLibLoader.cc \ - gnu/gcj/runtime/natSystemClassLoader.cc \ - gnu/gcj/runtime/natStringBuffer.cc gnu/gcj/util/natDebug.cc \ - gnu/gcj/util/natGCInfo.cc gnu/java/lang/natMainThread.cc \ - gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc \ - gnu/java/lang/management/natVMCompilationMXBeanImpl.cc \ - gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc \ - gnu/java/lang/management/natVMMemoryMXBeanImpl.cc \ - gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc \ - gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc \ - gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc \ - gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc \ - gnu/java/lang/management/natVMThreadMXBeanImpl.cc \ - gnu/java/net/natPlainDatagramSocketImpl.cc \ - gnu/java/net/natPlainSocketImpl.cc \ - gnu/java/net/protocol/core/natCoreInputStream.cc \ - gnu/java/nio/natVMPipe.cc gnu/java/nio/natVMSelector.cc \ - gnu/java/nio/natNIOServerSocket.cc \ - gnu/java/nio/natVMChannel.cc \ - gnu/java/nio/channels/natFileChannelImpl.cc \ - gnu/java/security/jce/prng/natVMSecureRandom.cc \ - java/io/natFile.cc java/io/natVMObjectInputStream.cc \ - java/io/natVMObjectStreamClass.cc java/lang/natCharacter.cc \ - java/lang/natClass.cc java/lang/natClassLoader.cc \ - java/lang/natConcreteProcess.cc java/lang/natVMDouble.cc \ - java/lang/natVMFloat.cc java/lang/natMath.cc \ - java/lang/natObject.cc java/lang/natRuntime.cc \ - java/lang/natString.cc java/lang/natAbstractStringBuffer.cc \ - java/lang/natSystem.cc java/lang/natThread.cc \ - java/lang/natThreadLocal.cc java/lang/natVMClassLoader.cc \ - java/lang/natVMProcess.cc java/lang/natVMThrowable.cc \ - java/lang/ref/natReference.cc java/lang/reflect/natArray.cc \ - java/lang/reflect/natConstructor.cc \ - java/lang/reflect/natField.cc java/lang/reflect/natMethod.cc \ - java/lang/reflect/natVMProxy.cc java/net/natVMInetAddress.cc \ - java/net/natVMNetworkInterface.cc \ - java/net/natVMURLConnection.cc \ - java/nio/channels/natVMChannels.cc \ - java/nio/natVMDirectByteBufferImpl.cc \ - java/security/natVMAccessController.cc \ - java/security/natVMAccessControlState.cc \ - java/text/natCollator.cc java/util/natVMTimeZone.cc \ - java/util/concurrent/atomic/natAtomicLong.cc \ - java/util/logging/natLogger.cc java/util/zip/natDeflater.cc \ - java/util/zip/natInflater.cc sun/misc/natUnsafe.cc boehm.cc \ - nogc.cc posix.cc win32.cc darwin.cc posix-threads.cc \ - win32-threads.cc no-threads.cc @INTERPRETER_TRUE@am__objects_2 = jvmti.lo interpret.lo @INTERPRETER_TRUE@am__objects_3 = gnu/classpath/jdwp/natVMFrame.lo \ @INTERPRETER_TRUE@ gnu/classpath/jdwp/natVMMethod.lo \ --- 319,324 ---- *************** am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gc *** 498,505 **** gcj_dbtool_OBJECTS = $(am_gcj_dbtool_OBJECTS) am_gcjh_OBJECTS = gcjh_OBJECTS = $(am_gcjh_OBJECTS) - am__gen_from_JIS_SOURCES_DIST = gnu/gcj/convert/gen-from-JIS.c \ - gnu/gcj/convert/make-trie.c gnu/gcj/convert/make-trie.h @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am_gen_from_JIS_OBJECTS = gnu/gcj/convert/gen-from-JIS.$(OBJEXT) \ @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ gnu/gcj/convert/make-trie.$(OBJEXT) gen_from_JIS_OBJECTS = $(am_gen_from_JIS_OBJECTS) --- 428,433 ---- *************** SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) *** 567,584 **** $(gnative2ascii_SOURCES) $(gorbd_SOURCES) $(grmic_SOURCES) \ $(grmid_SOURCES) $(grmiregistry_SOURCES) $(gserialver_SOURCES) \ $(gtnameserv_SOURCES) $(jv_convert_SOURCES) - DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \ - $(libgcj_noncore_la_SOURCES) $(libgcj_tools_la_SOURCES) \ - $(am__libgcj_la_SOURCES_DIST) $(EXTRA_libgcj_la_SOURCES) \ - $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) \ - $(libjvm_la_SOURCES) $(ecjx_SOURCES) $(gappletviewer_SOURCES) \ - $(gc_analyze_SOURCES) $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \ - $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \ - $(gjar_SOURCES) $(gjarsigner_SOURCES) $(gjavah_SOURCES) \ - $(gjdoc_SOURCES) $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) \ - $(gorbd_SOURCES) $(grmic_SOURCES) $(grmid_SOURCES) \ - $(grmiregistry_SOURCES) $(gserialver_SOURCES) \ - $(gtnameserv_SOURCES) $(jv_convert_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ --- 495,500 ---- *************** DATA = $(dbexec_DATA) $(jar_DATA) $(tool *** 590,636 **** RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ ! $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ ! distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = @DIRLTDL@ gcj include classpath testsuite - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - distdir = $(PACKAGE)-$(VERSION) - top_distdir = $(distdir) - am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } - am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" - DIST_ARCHIVES = $(distdir).tar.gz - GZIP_ENV = --best - distuninstallcheck_listfiles = find . -type f -print - distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ ANTLR_JAR = @ANTLR_JAR@ --- 506,515 ---- RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ ! $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS ETAGS = etags CTAGS = ctags DIST_SUBDIRS = @DIRLTDL@ gcj include classpath testsuite ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ ANTLR_JAR = @ANTLR_JAR@ *************** EGREP = @EGREP@ *** 672,677 **** --- 551,557 ---- EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ + GCC_FOR_ECJX = @GCC_FOR_ECJX@ GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ GCDEPS = @GCDEPS@ GCINCS = @GCINCS@ *************** JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@ *** 712,717 **** --- 592,598 ---- JVM_ROOT_DIR = @JVM_ROOT_DIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ + LDLIBICONV = @LDLIBICONV@ LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@ LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@ LIBART_CFLAGS = @LIBART_CFLAGS@ *************** LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_ *** 732,737 **** --- 613,619 ---- LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@ LIBICONV = @LIBICONV@ LIBLTDL = @LIBLTDL@ + LIBMATHSPEC = @LIBMATHSPEC@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSTDCXXSPEC = @LIBSTDCXXSPEC@ *************** docdir = @docdir@ *** 823,829 **** dvidir = @dvidir@ exec_prefix = @exec_prefix@ extra_ldflags = @extra_ldflags@ ! extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_9) gcc_suffix = @gcc_suffix@ gcjsubdir = @gcjsubdir@ gxx_include_dir = @gxx_include_dir@ --- 705,711 ---- dvidir = @dvidir@ exec_prefix = @exec_prefix@ extra_ldflags = @extra_ldflags@ ! extra_ldflags_libjava = @extra_ldflags_libjava@ gcc_suffix = @gcc_suffix@ gcjsubdir = @gcjsubdir@ gxx_include_dir = @gxx_include_dir@ *************** libexecdir = @libexecdir@ *** 844,849 **** --- 726,732 ---- libstdcxx_incdir = @libstdcxx_incdir@ localedir = @localedir@ localstatedir = @localstatedir@ + lt_host_flags = @lt_host_flags@ mandir = @mandir@ mkdir_p = @mkdir_p@ mkinstalldirs = @mkinstalldirs@ *************** db_pathtail = $(gcjsubdir)/$(db_name) *** 1071,1076 **** --- 954,990 ---- bin_SCRIPTS = contrib/rebuild-gcj-db contrib/aot-compile \ $(am__append_8) GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated + + # The pattern rule necessary to build the *.ver-sun mapfiles is at the end + # of the file, see below. + @ANONVERSCRIPT_FALSE@version_arg = + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@version_arg = -Wl,--version-script=$(srcdir)/libgcj.ver + @ANONVERSCRIPT_FALSE@libgcj_la_version_arg = $(version_arg) + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_la_version_arg = $(version_arg) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_la_version_arg = -Wl,-M,libgcj.ver-sun + @ANONVERSCRIPT_FALSE@libgcj_tools_la_version_arg = $(version_arg) + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_tools_la_version_arg = $(version_arg) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_tools_la_version_arg = -Wl,-M,libgcj_tools.ver-sun + @ANONVERSCRIPT_FALSE@lib_gnu_awt_xlib_la_version_arg = $(version_arg) + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@lib_gnu_awt_xlib_la_version_arg = $(version_arg) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@lib_gnu_awt_xlib_la_version_arg = -Wl,-M,lib_gnu_awt_xlib.ver-sun + @ANONVERSCRIPT_FALSE@libgcj_bc_la_version_arg = $(version_arg) + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_bc_la_version_arg = $(version_arg) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_bc_la_version_arg = -Wl,-M,libgcj_bc.ver-sun + @ANONVERSCRIPT_FALSE@version_dep = + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@version_dep = $(srcdir)/libgcj.ver + @ANONVERSCRIPT_FALSE@libgcj_la_version_dep = $(version_dep) + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_la_version_dep = $(version_dep) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_la_version_dep = libgcj.ver-sun + @ANONVERSCRIPT_FALSE@libgcj_tools_la_version_dep = $(version_dep) + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_tools_la_version_dep = $(version_dep) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_tools_la_version_dep = libgcj_tools.ver-sun + @ANONVERSCRIPT_FALSE@lib_gnu_awt_xlib_la_version_dep = $(version_dep) + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@lib_gnu_awt_xlib_la_version_dep = $(version_dep) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@lib_gnu_awt_xlib_la_version_dep = lib_gnu_awt_xlib.ver-sun + @ANONVERSCRIPT_FALSE@libgcj_bc_la_version_dep = $(version_dep) + @ANONVERSCRIPT_GNU_TRUE@@ANONVERSCRIPT_TRUE@libgcj_bc_la_version_dep = $(version_dep) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@libgcj_bc_la_version_dep = libgcj_bc.ver-sun LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) GCJLINK = $(LIBTOOL) --tag=GCJ $(LIBTOOLFLAGS) --mode=link $(GCJ) -L$(here) \ $(JC1FLAGS) $(LTLDFLAGS) -o $@ *************** AM_GCJFLAGS = \ *** 1111,1117 **** --encoding=UTF-8 \ -Wno-deprecated -fbootstrap-classes ! AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_10) @SUPPRESS_LIBGCJ_BC_FALSE@LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes @SUPPRESS_LIBGCJ_BC_TRUE@LIBGCJ_BC_FLAGS = @BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE@LIBGCJ_REDUCED_REFLECTION_FLAGS = --- 1025,1031 ---- --encoding=UTF-8 \ -Wno-deprecated -fbootstrap-classes ! AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_9) @SUPPRESS_LIBGCJ_BC_FALSE@LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes @SUPPRESS_LIBGCJ_BC_TRUE@LIBGCJ_BC_FLAGS = @BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE@LIBGCJ_REDUCED_REFLECTION_FLAGS = *************** AM_CPPFLAGS = -I$(top_srcdir) \ *** 1129,1135 **** BOOTCLASSPATH = $(srcdir)/classpath/lib libgij_la_SOURCES = gij.cc ! libgij_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_11) libgij_la_LIBADD = -L$(here)/.libs libgcj.la libgij_la_LDFLAGS = -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) --- 1043,1049 ---- BOOTCLASSPATH = $(srcdir)/classpath/lib libgij_la_SOURCES = gij.cc ! libgij_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_10) libgij_la_LIBADD = -L$(here)/.libs libgcj.la libgij_la_LDFLAGS = -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) *************** libgij_la_LINK = $(CXXLINK) $(libgij_la_ *** 1139,1147 **** @INTERPRETER_TRUE@libgcj_interpret_source_files = jvmti.cc interpret.cc libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \ defineclass.cc verify.cc $(libgcj_interpret_source_files) \ ! $(nat_source_files) $(am__append_12) $(am__append_13) \ ! $(am__append_14) $(am__append_15) $(am__append_16) \ ! $(am__append_17) $(am__append_18) $(am__append_19) nat_files = $(nat_source_files:.cc=.lo) xlib_nat_files = $(xlib_nat_source_files:.cc=.lo) --- 1053,1063 ---- @INTERPRETER_TRUE@libgcj_interpret_source_files = jvmti.cc interpret.cc libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \ defineclass.cc verify.cc $(libgcj_interpret_source_files) \ ! $(nat_source_files) $(am__append_11) $(am__append_12) \ ! $(am__append_13) $(am__append_14) $(am__append_15) \ ! $(am__append_16) $(am__append_17) $(am__append_18) ! @USING_DARWIN_CRT_FALSE@LIBJAVA_LDFLAGS_LIBMATH = -lm ! @USING_DARWIN_CRT_TRUE@LIBJAVA_LDFLAGS_LIBMATH = nat_files = $(nat_source_files:.cc=.lo) xlib_nat_files = $(xlib_nat_source_files:.cc=.lo) *************** libgcj_la_LIBADD = \ *** 1160,1179 **** $(libgcj_la_LIBADD_SUBOBJECTS) \ $(LIBFFI) $(ZLIBS) $(GCLIBS) ! libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar java/lang/Object.lo \ ! java/lang/Class.lo java/process-$(PLATFORM).lo \ ! $(ALL_PACKAGE_SOURCE_FILES_LO) $(LIBLTDL) $(libgcj_la_LIBADD) \ ! $(LIBJAVA_CORE_EXTRA) $(am__append_20) ! libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS) EXTRA_libgcj_la_SOURCES = java/lang/Object.java @BUILD_SUBLIBS_TRUE@DLL_VERSION = `expr \`grep -v '^\#' $(srcdir)/libtool-version | sed -e 's/\(.*\):\(.*\):.*/\1 + \2/'\`` @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_SOURCES = @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS) @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) libgcj.la ! @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_DEPENDENCIES = \ ! @BUILD_SUBLIBS_TRUE@ libgcj-$(gcc_version).jar $(LIBLTDL) \ ! @BUILD_SUBLIBS_TRUE@ $(libgcj_noncore_la_LIBADD) libgcj.la \ ! @BUILD_SUBLIBS_TRUE@ $(am__append_21) @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LINK = $(libgcj_la_LINK) # We compile libgcj_tools with -findirect-dispatch so that they can --- 1076,1099 ---- $(libgcj_la_LIBADD_SUBOBJECTS) \ $(LIBFFI) $(ZLIBS) $(GCLIBS) ! libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ ! java/lang/Object.lo \ ! java/lang/Class.lo \ ! java/process-$(PLATFORM).lo \ ! $(ALL_PACKAGE_SOURCE_FILES_LO) \ ! $(LIBLTDL) $(libgcj_la_LIBADD) \ ! $(LIBJAVA_CORE_EXTRA) \ ! $(libgcj_la_version_dep) ! ! libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS) $(libgcj_la_version_arg) EXTRA_libgcj_la_SOURCES = java/lang/Object.java @BUILD_SUBLIBS_TRUE@DLL_VERSION = `expr \`grep -v '^\#' $(srcdir)/libtool-version | sed -e 's/\(.*\):\(.*\):.*/\1 + \2/'\`` @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_SOURCES = @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS) @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) libgcj.la ! @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_DEPENDENCIES = libgcj-$(gcc_version).jar $(LIBLTDL) \ ! @BUILD_SUBLIBS_TRUE@ $(libgcj_noncore_la_LIBADD) libgcj.la $(libgcj_la_version_dep) ! @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LINK = $(libgcj_la_LINK) # We compile libgcj_tools with -findirect-dispatch so that they can *************** libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS *** 1188,1200 **** libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ ! $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) - libgcj_tools_la_LIBADD = libgcj.la -lm - libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_22) - libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) libjvm_la_SOURCES = jni-libjvm.cc ! libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_23) libjvm_la_LIBADD = -L$(here)/.libs libgcj.la libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC) \ $(LIBJAVA_LDFLAGS_NOUNDEF) --- 1108,1124 ---- libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ ! $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \ ! $(LIBJAVA_LDFLAGS_LIBMATH) ! ! libgcj_tools_la_LIBADD = libgcj.la ! libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \ ! $(libgcj_tools_la_version_dep) $(am__append_19) ! libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \ ! $(libgcj_tools_la_version_arg) libjvm_la_SOURCES = jni-libjvm.cc ! libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_20) libjvm_la_LIBADD = -L$(here)/.libs libgcj.la libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC) \ $(LIBJAVA_LDFLAGS_NOUNDEF) *************** libjvm_la_LINK = $(CXXLINK) $(libjvm_la_ *** 1203,1209 **** lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files) lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar libgcj.la \ ! libgcj.spec $(lib_gnu_awt_xlib_la_LIBADD) $(am__append_24) lib_gnu_awt_xlib_la_CPPFLAGS = \ $(AM_CPPFLAGS) \ -I../libstdc++-v3/include \ --- 1127,1134 ---- lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files) lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar libgcj.la \ ! libgcj.spec $(lib_gnu_awt_xlib_la_version_dep) \ ! $(lib_gnu_awt_xlib_la_LIBADD) $(am__append_21) lib_gnu_awt_xlib_la_CPPFLAGS = \ $(AM_CPPFLAGS) \ -I../libstdc++-v3/include \ *************** lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc *** 1215,1227 **** -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) ! lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) libgcj_bc_la_SOURCES = libgcj_bc.c libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) ! libgcj_bc_la_DEPENDENCIES = libgcj.la ! libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS) libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \ -fPIC -nostdlib --- 1140,1156 ---- -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) ! lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) \ ! $(lib_gnu_awt_xlib_la_version_arg) ! libgcj_bc_la_SOURCES = libgcj_bc.c libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) ! libgcj_bc_la_DEPENDENCIES = libgcj.la $(libgcj_bc_la_version_dep) ! libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS) \ ! $(libgcj_bc_la_version_arg) ! libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \ -fPIC -nostdlib *************** classpath/javax/xml/stream/events/StartD *** 6691,6697 **** classpath/javax/xml/stream/events/StartElement.java \ classpath/javax/xml/stream/events/XMLEvent.java \ classpath/javax/xml/stream/util/EventReaderDelegate.java \ ! classpath/javax/xml/stream/util/ReaderDelegate.java \ classpath/javax/xml/stream/util/XMLEventAllocator.java \ classpath/javax/xml/stream/util/XMLEventConsumer.java \ classpath/javax/xml/transform/ErrorListener.java \ --- 6620,6626 ---- classpath/javax/xml/stream/events/StartElement.java \ classpath/javax/xml/stream/events/XMLEvent.java \ classpath/javax/xml/stream/util/EventReaderDelegate.java \ ! classpath/javax/xml/stream/util/StreamReaderDelegate.java \ classpath/javax/xml/stream/util/XMLEventAllocator.java \ classpath/javax/xml/stream/util/XMLEventConsumer.java \ classpath/javax/xml/transform/ErrorListener.java \ *************** jv_convert_LDFLAGS = --main=gnu.gcj.conv *** 8481,8487 **** jv_convert_LINK = $(GCJLINK) $(jv_convert_LDFLAGS) jv_convert_LDADD = -L$(here)/.libs libgcj.la ! jv_convert_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_26) gcj_dbtool_SOURCES = \ gnu/gcj/tools/gcj_dbtool/natMain.cc --- 8410,8416 ---- jv_convert_LINK = $(GCJLINK) $(jv_convert_LDFLAGS) jv_convert_LDADD = -L$(here)/.libs libgcj.la ! jv_convert_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_23) gcj_dbtool_SOURCES = \ gnu/gcj/tools/gcj_dbtool/natMain.cc *************** gcj_dbtool_LDFLAGS = --main=gnu.gcj.tool *** 8491,8497 **** gcj_dbtool_LINK = $(GCJLINK) $(gcj_dbtool_LDFLAGS) gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la \ ! libgcj.spec $(am__append_27) gc_analyze_SOURCES = gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) --- 8420,8426 ---- gcj_dbtool_LINK = $(GCJLINK) $(gcj_dbtool_LDFLAGS) gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la \ ! libgcj.spec $(am__append_24) gc_analyze_SOURCES = gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) *************** gc_analyze_LDFLAGS = --main=gnu.gcj.tool *** 8499,8505 **** gc_analyze_LINK = $(GCJLINK) $(gc_analyze_LDFLAGS) gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec \ ! $(am__append_28) gij_SOURCES = gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \ -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) --- 8428,8434 ---- gc_analyze_LINK = $(GCJLINK) $(gc_analyze_LDFLAGS) gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec \ ! $(am__append_25) gij_SOURCES = gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \ -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) *************** ECJX_BASE_FLAGS = -findirect-dispatch \ *** 8518,8527 **** @NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) @NATIVE_FALSE@ecjx_LDADD = @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs $(extra_ldflags) \ ! @NATIVE_TRUE@ $(am__append_31) @NATIVE_FALSE@ecjx_DEPENDENCIES = @NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \ ! @NATIVE_TRUE@ $(am__append_29) $(am__append_30) gappletviewer_SOURCES = gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) --- 8447,8456 ---- @NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) @NATIVE_FALSE@ecjx_LDADD = @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs $(extra_ldflags) \ ! @NATIVE_TRUE@ $(am__append_28) @NATIVE_FALSE@ecjx_DEPENDENCIES = @NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \ ! @NATIVE_TRUE@ $(am__append_26) $(am__append_27) gappletviewer_SOURCES = gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) *************** gnu/gcj/xlib/natXImage.cc \ *** 8738,8744 **** gnu/gcj/xlib/natXUnmapEvent.cc sourcesdir = $(jardir) ! headers_to_make = $(nat_headers) $(am__append_32) # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and --- 8667,8673 ---- gnu/gcj/xlib/natXUnmapEvent.cc sourcesdir = $(jardir) ! headers_to_make = $(nat_headers) $(am__append_29) # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and *************** GTAGS: *** 10398,10579 **** distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - - distdir: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" - dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - - dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - - dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) - - dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz - $(am__remove_distdir) - - dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - - dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - - dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - - dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - - # This target untars the dist file and tries a VPATH configuration. Then - # it guarantees that the distribution is self-contained by making another - # tarfile. - distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' - distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 - distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) all-multi \ --- 10327,10332 ---- *************** uninstall-am: uninstall-binPROGRAMS unin *** 10766,10779 **** clean-binPROGRAMS clean-dbexecLTLIBRARIES clean-generic \ clean-libexecsubPROGRAMS clean-libtool clean-multi \ clean-noinstPROGRAMS clean-toolexeclibLTLIBRARIES ctags \ ! ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzma \ ! dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ ! distclean-compile distclean-generic distclean-libtool \ ! distclean-local distclean-multi distclean-tags distcleancheck \ ! distdir distuninstallcheck dvi dvi-am html html-am info \ ! info-am install install-am install-binPROGRAMS \ ! install-binSCRIPTS install-data install-data-am \ ! install-data-local install-dbexecDATA \ install-dbexecLTLIBRARIES install-dvi install-dvi-am \ install-exec install-exec-am install-exec-hook install-html \ install-html-am install-info install-info-am install-jarDATA \ --- 10519,10529 ---- clean-binPROGRAMS clean-dbexecLTLIBRARIES clean-generic \ clean-libexecsubPROGRAMS clean-libtool clean-multi \ clean-noinstPROGRAMS clean-toolexeclibLTLIBRARIES ctags \ ! ctags-recursive distclean distclean-compile distclean-generic \ ! distclean-libtool distclean-local distclean-multi \ ! distclean-tags dvi dvi-am html html-am info info-am install \ ! install-am install-binPROGRAMS install-binSCRIPTS install-data \ ! install-data-am install-data-local install-dbexecDATA \ install-dbexecLTLIBRARIES install-dvi install-dvi-am \ install-exec install-exec-am install-exec-hook install-html \ install-html-am install-info install-info-am install-jarDATA \ *************** write-entries-to-file-check: *** 12887,12892 **** --- 12637,12644 ---- @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ | sed -n -e 's|0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\1, 0x\2, \3) /*\4 */|p' \ @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ >> tmp-0212; \ @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ mv tmp-0212 $(srcdir)/gnu/gcj/convert/JIS0212.h + @NATIVE_FALSE@ecjx.$(OBJEXT): ecjx.cc + @NATIVE_FALSE@ $(GCC_FOR_ECJX) -c $< src.zip: -rm -f src.zip *************** distclean-multi: *** 12980,12985 **** --- 12732,12752 ---- maintainer-clean-multi: $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean + # This must be at the end of the Makefile, otherwise .SECONDEXPANSION + # causes expansion of filenames with $ in their names, which breaks the build. + # .SECONDEXPANSION is necessary to allow the use of automatic variables ($@ + # in this case) in the requisites of pattern rules. + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@.SECONDEXPANSION: + + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@%.ver-sun : $(srcdir)/libgcj.ver \ + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ $(top_srcdir)/../contrib/make_sunver.pl \ + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ $$($$(basename $$@)_la_OBJECTS) $$($$(basename $$@)_la_LIBADD) + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \ + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ $(srcdir)/libgcj.ver \ + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ `echo $($(basename $@)_la_OBJECTS) $($(basename $@)_la_LIBADD) | \ + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \ + @ANONVERSCRIPT_SUN_TRUE@@ANONVERSCRIPT_TRUE@ > $@ || (rm -f $@ ; exit 1) + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -Nrcpad gcc-4.5.2/libjava/aclocal.m4 gcc-4.6.0/libjava/aclocal.m4 *** gcc-4.5.2/libjava/aclocal.m4 Thu Dec 16 12:49:03 2010 --- gcc-4.6.0/libjava/aclocal.m4 Fri Mar 25 17:07:00 2011 *************** m4_include([../config/lead-dot.m4]) *** 1034,1039 **** --- 1034,1040 ---- m4_include([../config/lib-ld.m4]) m4_include([../config/lib-link.m4]) m4_include([../config/lib-prefix.m4]) + m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) m4_include([../config/no-executables.m4]) m4_include([../config/override.m4]) diff -Nrcpad gcc-4.5.2/libjava/classpath/ChangeLog gcc-4.6.0/libjava/classpath/ChangeLog *** gcc-4.5.2/libjava/classpath/ChangeLog Thu Dec 16 12:31:21 2010 --- gcc-4.6.0/libjava/classpath/ChangeLog Fri Mar 25 16:57:15 2011 *************** *** 1,46 **** ! 2010-12-16 Release Manager ! ! * GCC 4.5.2 released. ! ! 2010-04-27 Andrew Haley ! * java/util/concurrent/CopyOnWriteArrayList.java: Fix for empty ! list. ! 2010-04-27 Andrew Haley ! * gnu/javax/print/ipp/IppResponse.java (parseAttributes): Handle ! IppValueTag.UNKNOWN. ! * gnu/javax/print/ipp/IppRequest.java (writeOperationAttributes): ! Handle RequestedAttributes. ! * gnu/javax/print/ipp/IppPrintService.java (processResponse): Add ! DocFlavor.SERVICE_FORMATTED.PAGEABLE and ! DocFlavor.SERVICE_FORMATTED.PRINTABLE. 2010-07-30 Andrew Haley * javax/print/attribute/standard/JobStateReasons.java (add): Fix infinite recursion with call to super. - 2010-07-31 Release Manager - - * GCC 4.5.1 released. - 2010-06-04 Rainer Orth * scripts/check_jni_methods.sh.in: Don't use diff -U. Adapt grep regex, ignore file and problem message. 2010-05-27 Andrew John Hughes * configure.ac: Disable plugin by default and warn about unmaintained status when enabled. - * configure: Regenerated. ! 2010-04-14 Release Manager ! * GCC 4.5.0 released. 2010-04-02 Ralf Wildenhues --- 1,4915 ---- ! 2011-03-25 Release Manager ! * GCC 4.6.0 released. ! 2010-06-03 Andrew John Hughes ! * examples/gnu/classpath/examples/CORBA/NamingService/Demo.java, ! * examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java, ! * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java, ! * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java, ! * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java, ! * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java, ! * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java, ! * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java, ! * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/Player.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/State.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java, ! * examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java, ! * examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java, ! * examples/gnu/classpath/examples/awt/Demo.java, ! * examples/gnu/classpath/examples/awt/HintingDemo.java, ! * examples/gnu/classpath/examples/datatransfer/Demo.java, ! * examples/gnu/classpath/examples/html/Demo.java, ! * examples/gnu/classpath/examples/java2d/J2dBenchmark.java, ! * examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java, ! * examples/gnu/classpath/examples/java2d/JNIOverhead.java, ! * examples/gnu/classpath/examples/jawt/DemoJAWT.java, ! * examples/gnu/classpath/examples/management/TestClassLoading.java, ! * examples/gnu/classpath/examples/management/TestCompilation.java, ! * examples/gnu/classpath/examples/management/TestGarbageCollector.java, ! * examples/gnu/classpath/examples/management/TestMemory.java, ! * examples/gnu/classpath/examples/management/TestMemoryManager.java, ! * examples/gnu/classpath/examples/management/TestMemoryPool.java, ! * examples/gnu/classpath/examples/management/TestThread.java, ! * examples/gnu/classpath/examples/midi/Demo.java, ! * examples/gnu/classpath/examples/print/Demo.java, ! * examples/gnu/classpath/examples/sound/AudioPlayerSample.java, ! * examples/gnu/classpath/examples/swing/BrowserEditorKit.java, ! * examples/gnu/classpath/examples/swing/ButtonDemo.java, ! * examples/gnu/classpath/examples/swing/ComboBoxDemo.java, ! * examples/gnu/classpath/examples/swing/Demo.java, ! * examples/gnu/classpath/examples/swing/DemoFactory.java, ! * examples/gnu/classpath/examples/swing/DocumentFilterDemo.java, ! * examples/gnu/classpath/examples/swing/FileChooserDemo.java, ! * examples/gnu/classpath/examples/swing/HtmlDemo.java, ! * examples/gnu/classpath/examples/swing/ListDemo.java, ! * examples/gnu/classpath/examples/swing/MetalThemeEditor.java, ! * examples/gnu/classpath/examples/swing/NavigationFilterDemo.java, ! * examples/gnu/classpath/examples/swing/ScrollBarDemo.java, ! * examples/gnu/classpath/examples/swing/SliderDemo.java, ! * examples/gnu/classpath/examples/swing/SpinnerDemo.java, ! * examples/gnu/classpath/examples/swing/TabbedPaneDemo.java, ! * examples/gnu/classpath/examples/swing/TableDemo.java, ! * examples/gnu/classpath/examples/swing/TextAreaDemo.java, ! * examples/gnu/classpath/examples/swing/TextFieldDemo.java, ! * examples/gnu/classpath/examples/swing/TreeDemo.java, ! * external/jsr166/java/util/ArrayDeque.java, ! * external/jsr166/java/util/concurrent/ArrayBlockingQueue.java, ! * external/jsr166/java/util/concurrent/ConcurrentHashMap.java, ! * external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java, ! * external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java, ! * external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java, ! * external/jsr166/java/util/concurrent/CyclicBarrier.java, ! * external/jsr166/java/util/concurrent/DelayQueue.java, ! * external/jsr166/java/util/concurrent/Executors.java, ! * external/jsr166/java/util/concurrent/FutureTask.java, ! * external/jsr166/java/util/concurrent/LinkedBlockingDeque.java, ! * external/jsr166/java/util/concurrent/LinkedBlockingQueue.java, ! * external/jsr166/java/util/concurrent/PriorityBlockingQueue.java, ! * external/jsr166/java/util/concurrent/ScheduledExecutorService.java, ! * external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java, ! * external/jsr166/java/util/concurrent/Semaphore.java, ! * external/jsr166/java/util/concurrent/SynchronousQueue.java, ! * external/jsr166/java/util/concurrent/ThreadPoolExecutor.java, ! * external/jsr166/java/util/concurrent/atomic/AtomicInteger.java, ! * external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java, ! * external/jsr166/java/util/concurrent/atomic/AtomicLong.java, ! * external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java, ! * external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java, ! * external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java, ! * external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java, ! * external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java, ! * external/relaxngDatatype/org/relaxng/datatype/Datatype.java, ! * external/relaxngDatatype/org/relaxng/datatype/DatatypeBuilder.java, ! * external/relaxngDatatype/org/relaxng/datatype/DatatypeException.java, ! * external/relaxngDatatype/org/relaxng/datatype/DatatypeLibrary.java, ! * external/relaxngDatatype/org/relaxng/datatype/DatatypeLibraryFactory.java, ! * external/relaxngDatatype/org/relaxng/datatype/DatatypeStreamingValidator.java, ! * external/relaxngDatatype/org/relaxng/datatype/ValidationContext.java, ! * external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java, ! * external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java, ! * external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java, ! * external/sax/org/xml/sax/AttributeList.java, ! * external/sax/org/xml/sax/Attributes.java, ! * external/sax/org/xml/sax/ContentHandler.java, ! * external/sax/org/xml/sax/DTDHandler.java, ! * external/sax/org/xml/sax/DocumentHandler.java, ! * external/sax/org/xml/sax/EntityResolver.java, ! * external/sax/org/xml/sax/ErrorHandler.java, ! * external/sax/org/xml/sax/HandlerBase.java, ! * external/sax/org/xml/sax/InputSource.java, ! * external/sax/org/xml/sax/Locator.java, ! * external/sax/org/xml/sax/Parser.java, ! * external/sax/org/xml/sax/SAXException.java, ! * external/sax/org/xml/sax/SAXNotRecognizedException.java, ! * external/sax/org/xml/sax/SAXNotSupportedException.java, ! * external/sax/org/xml/sax/SAXParseException.java, ! * external/sax/org/xml/sax/XMLReader.java, ! * external/sax/org/xml/sax/ext/Attributes2.java, ! * external/sax/org/xml/sax/ext/Attributes2Impl.java, ! * external/sax/org/xml/sax/ext/DeclHandler.java, ! * external/sax/org/xml/sax/ext/DefaultHandler2.java, ! * external/sax/org/xml/sax/ext/EntityResolver2.java, ! * external/sax/org/xml/sax/ext/LexicalHandler.java, ! * external/sax/org/xml/sax/ext/Locator2.java, ! * external/sax/org/xml/sax/ext/Locator2Impl.java, ! * external/sax/org/xml/sax/helpers/AttributeListImpl.java, ! * external/sax/org/xml/sax/helpers/AttributesImpl.java, ! * external/sax/org/xml/sax/helpers/DefaultHandler.java, ! * external/sax/org/xml/sax/helpers/LocatorImpl.java, ! * external/sax/org/xml/sax/helpers/NamespaceSupport.java, ! * external/sax/org/xml/sax/helpers/NewInstance.java, ! * external/sax/org/xml/sax/helpers/ParserAdapter.java, ! * external/sax/org/xml/sax/helpers/ParserFactory.java, ! * external/sax/org/xml/sax/helpers/XMLFilterImpl.java, ! * external/sax/org/xml/sax/helpers/XMLReaderAdapter.java, ! * external/sax/org/xml/sax/helpers/XMLReaderFactory.java, ! * external/w3c_dom/org/w3c/dom/Attr.java, ! * external/w3c_dom/org/w3c/dom/CDATASection.java, ! * external/w3c_dom/org/w3c/dom/CharacterData.java, ! * external/w3c_dom/org/w3c/dom/Comment.java, ! * external/w3c_dom/org/w3c/dom/DOMConfiguration.java, ! * external/w3c_dom/org/w3c/dom/DOMError.java, ! * external/w3c_dom/org/w3c/dom/DOMErrorHandler.java, ! * external/w3c_dom/org/w3c/dom/DOMException.java, ! * external/w3c_dom/org/w3c/dom/DOMImplementation.java, ! * external/w3c_dom/org/w3c/dom/DOMImplementationList.java, ! * external/w3c_dom/org/w3c/dom/DOMImplementationSource.java, ! * external/w3c_dom/org/w3c/dom/DOMLocator.java, ! * external/w3c_dom/org/w3c/dom/DOMStringList.java, ! * external/w3c_dom/org/w3c/dom/Document.java, ! * external/w3c_dom/org/w3c/dom/DocumentFragment.java, ! * external/w3c_dom/org/w3c/dom/DocumentType.java, ! * external/w3c_dom/org/w3c/dom/Element.java, ! * external/w3c_dom/org/w3c/dom/Entity.java, ! * external/w3c_dom/org/w3c/dom/EntityReference.java, ! * external/w3c_dom/org/w3c/dom/NameList.java, ! * external/w3c_dom/org/w3c/dom/NamedNodeMap.java, ! * external/w3c_dom/org/w3c/dom/Node.java, ! * external/w3c_dom/org/w3c/dom/NodeList.java, ! * external/w3c_dom/org/w3c/dom/Notation.java, ! * external/w3c_dom/org/w3c/dom/ProcessingInstruction.java, ! * external/w3c_dom/org/w3c/dom/Text.java, ! * external/w3c_dom/org/w3c/dom/TypeInfo.java, ! * external/w3c_dom/org/w3c/dom/UserDataHandler.java, ! * external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java, ! * external/w3c_dom/org/w3c/dom/css/CSS2Properties.java, ! * external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java, ! * external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java, ! * external/w3c_dom/org/w3c/dom/css/CSSImportRule.java, ! * external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java, ! * external/w3c_dom/org/w3c/dom/css/CSSPageRule.java, ! * external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java, ! * external/w3c_dom/org/w3c/dom/css/CSSRule.java, ! * external/w3c_dom/org/w3c/dom/css/CSSRuleList.java, ! * external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java, ! * external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java, ! * external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java, ! * external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java, ! * external/w3c_dom/org/w3c/dom/css/CSSValue.java, ! * external/w3c_dom/org/w3c/dom/css/CSSValueList.java, ! * external/w3c_dom/org/w3c/dom/css/Counter.java, ! * external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java, ! * external/w3c_dom/org/w3c/dom/css/DocumentCSS.java, ! * external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java, ! * external/w3c_dom/org/w3c/dom/css/RGBColor.java, ! * external/w3c_dom/org/w3c/dom/css/Rect.java, ! * external/w3c_dom/org/w3c/dom/css/ViewCSS.java, ! * external/w3c_dom/org/w3c/dom/events/DocumentEvent.java, ! * external/w3c_dom/org/w3c/dom/events/Event.java, ! * external/w3c_dom/org/w3c/dom/events/EventException.java, ! * external/w3c_dom/org/w3c/dom/events/EventListener.java, ! * external/w3c_dom/org/w3c/dom/events/EventTarget.java, ! * external/w3c_dom/org/w3c/dom/events/MouseEvent.java, ! * external/w3c_dom/org/w3c/dom/events/MutationEvent.java, ! * external/w3c_dom/org/w3c/dom/events/UIEvent.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java, ! * external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java, ! * external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java, ! * external/w3c_dom/org/w3c/dom/ls/LSException.java, ! * external/w3c_dom/org/w3c/dom/ls/LSInput.java, ! * external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java, ! * external/w3c_dom/org/w3c/dom/ls/LSOutput.java, ! * external/w3c_dom/org/w3c/dom/ls/LSParser.java, ! * external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java, ! * external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java, ! * external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java, ! * external/w3c_dom/org/w3c/dom/ls/LSSerializer.java, ! * external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java, ! * external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java, ! * external/w3c_dom/org/w3c/dom/ranges/Range.java, ! * external/w3c_dom/org/w3c/dom/ranges/RangeException.java, ! * external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java, ! * external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java, ! * external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java, ! * external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java, ! * external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java, ! * external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java, ! * external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java, ! * external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java, ! * external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java, ! * external/w3c_dom/org/w3c/dom/views/AbstractView.java, ! * external/w3c_dom/org/w3c/dom/views/DocumentView.java, ! * external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java, ! * external/w3c_dom/org/w3c/dom/xpath/XPathException.java, ! * external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java, ! * external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java, ! * external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java, ! * external/w3c_dom/org/w3c/dom/xpath/XPathResult.java, ! * gnu/CORBA/BigDecimalHelper.java, ! * gnu/CORBA/CDR/AbstractCdrInput.java, ! * gnu/CORBA/CDR/AbstractCdrOutput.java, ! * gnu/CORBA/CDR/AbstractDataInput.java, ! * gnu/CORBA/CDR/AbstractDataOutput.java, ! * gnu/CORBA/CDR/AligningInput.java, ! * gnu/CORBA/CDR/AligningOutput.java, ! * gnu/CORBA/CDR/ArrayValueHelper.java, ! * gnu/CORBA/CDR/BigEndianInputStream.java, ! * gnu/CORBA/CDR/BigEndianOutputStream.java, ! * gnu/CORBA/CDR/BufferedCdrOutput.java, ! * gnu/CORBA/CDR/BufferredCdrInput.java, ! * gnu/CORBA/CDR/HeadlessInput.java, ! * gnu/CORBA/CDR/IDLTypeHelper.java, ! * gnu/CORBA/CDR/LittleEndianOutputStream.java, ! * gnu/CORBA/CDR/UnknownExceptionCtxHandler.java, ! * gnu/CORBA/CDR/VMVio.java, ! * gnu/CORBA/CDR/Vio.java, ! * gnu/CORBA/CDR/gnuRuntime.java, ! * gnu/CORBA/CDR/gnuValueStream.java, ! * gnu/CORBA/CdrEncapsCodecImpl.java, ! * gnu/CORBA/CollocatedOrbs.java, ! * gnu/CORBA/Connected_objects.java, ! * gnu/CORBA/DefaultSocketFactory.java, ! * gnu/CORBA/DuplicateNameHolder.java, ! * gnu/CORBA/DynAn/AbstractAny.java, ! * gnu/CORBA/DynAn/DivideableAny.java, ! * gnu/CORBA/DynAn/NameValuePairHolder.java, ! * gnu/CORBA/DynAn/RecordAny.java, ! * gnu/CORBA/DynAn/ValueChangeListener.java, ! * gnu/CORBA/DynAn/gnuDynAny.java, ! * gnu/CORBA/DynAn/gnuDynAnyFactory.java, ! * gnu/CORBA/DynAn/gnuDynArray.java, ! * gnu/CORBA/DynAn/gnuDynEnum.java, ! * gnu/CORBA/DynAn/gnuDynFixed.java, ! * gnu/CORBA/DynAn/gnuDynSequence.java, ! * gnu/CORBA/DynAn/gnuDynUnion.java, ! * gnu/CORBA/DynAn/gnuDynValue.java, ! * gnu/CORBA/DynAn/gnuDynValueBox.java, ! * gnu/CORBA/DynAnySeqHolder.java, ! * gnu/CORBA/EmptyExceptionHolder.java, ! * gnu/CORBA/ForwardRequestHelper.java, ! * gnu/CORBA/GIOP/CharSets_OSF.java, ! * gnu/CORBA/GIOP/CloseMessage.java, ! * gnu/CORBA/GIOP/ErrorMessage.java, ! * gnu/CORBA/GIOP/MessageHeader.java, ! * gnu/CORBA/GIOP/ServiceContext.java, ! * gnu/CORBA/GIOP/v1_2/RequestHeader.java, ! * gnu/CORBA/GeneralHolder.java, ! * gnu/CORBA/IOR.java, ! * gnu/CORBA/Interceptor/ClientRequestInterceptors.java, ! * gnu/CORBA/Interceptor/ForwardRequestHolder.java, ! * gnu/CORBA/Interceptor/IORInterceptors.java, ! * gnu/CORBA/Interceptor/Registrator.java, ! * gnu/CORBA/Interceptor/ServerRequestInterceptors.java, ! * gnu/CORBA/Interceptor/gnuClientRequestInfo.java, ! * gnu/CORBA/Interceptor/gnuIcCurrent.java, ! * gnu/CORBA/Interceptor/gnuIorInfo.java, ! * gnu/CORBA/Interceptor/gnuServerRequestInfo.java, ! * gnu/CORBA/IorDelegate.java, ! * gnu/CORBA/IorObject.java, ! * gnu/CORBA/Minor.java, ! * gnu/CORBA/NameDynAnyPairHolder.java, ! * gnu/CORBA/NameDynAnyPairSeqHolder.java, ! * gnu/CORBA/NameValuePairHolder.java, ! * gnu/CORBA/NameValuePairSeqHolder.java, ! * gnu/CORBA/NamingService/NameParser.java, ! * gnu/CORBA/NamingService/NamingMap.java, ! * gnu/CORBA/NamingService/NamingServiceTransient.java, ! * gnu/CORBA/NamingService/TransientContext.java, ! * gnu/CORBA/ObjectCreator.java, ! * gnu/CORBA/OrbFocused.java, ! * gnu/CORBA/OrbFunctional.java, ! * gnu/CORBA/OrbRestricted.java, ! * gnu/CORBA/Poa/AOM.java, ! * gnu/CORBA/Poa/AccessiblePolicy.java, ! * gnu/CORBA/Poa/DynamicImpHandler.java, ! * gnu/CORBA/Poa/ForwardRequestHolder.java, ! * gnu/CORBA/Poa/ForwardedServant.java, ! * gnu/CORBA/Poa/InvalidPolicyHolder.java, ! * gnu/CORBA/Poa/LocalDelegate.java, ! * gnu/CORBA/Poa/LocalRequest.java, ! * gnu/CORBA/Poa/LocalServerRequest.java, ! * gnu/CORBA/Poa/ORB_1_4.java, ! * gnu/CORBA/Poa/ServantDelegateImpl.java, ! * gnu/CORBA/Poa/StandardPolicies.java, ! * gnu/CORBA/Poa/gnuAdapterActivator.java, ! * gnu/CORBA/Poa/gnuForwardRequest.java, ! * gnu/CORBA/Poa/gnuIdAssignmentPolicy.java, ! * gnu/CORBA/Poa/gnuIdUniquenessPolicy.java, ! * gnu/CORBA/Poa/gnuImplicitActivationPolicy.java, ! * gnu/CORBA/Poa/gnuLifespanPolicy.java, ! * gnu/CORBA/Poa/gnuPOA.java, ! * gnu/CORBA/Poa/gnuPOAManager.java, ! * gnu/CORBA/Poa/gnuPoaCurrent.java, ! * gnu/CORBA/Poa/gnuRequestProcessingPolicy.java, ! * gnu/CORBA/Poa/gnuServantObject.java, ! * gnu/CORBA/Poa/gnuServantRetentionPolicy.java, ! * gnu/CORBA/Poa/gnuThreadPolicy.java, ! * gnu/CORBA/ServiceRequestAdapter.java, ! * gnu/CORBA/SetOverrideTypeHolder.java, ! * gnu/CORBA/SimpleDelegate.java, ! * gnu/CORBA/SocketRepository.java, ! * gnu/CORBA/StreamHolder.java, ! * gnu/CORBA/TypeCodeHelper.java, ! * gnu/CORBA/TypeKindNamer.java, ! * gnu/CORBA/Version.java, ! * gnu/CORBA/_PolicyImplBase.java, ! * gnu/CORBA/gnuAny.java, ! * gnu/CORBA/gnuCodecFactory.java, ! * gnu/CORBA/gnuEnvironment.java, ! * gnu/CORBA/gnuRequest.java, ! * gnu/CORBA/gnuValueHolder.java, ! * gnu/CORBA/interfaces/SocketFactory.java, ! * gnu/CORBA/typecodes/AliasTypeCode.java, ! * gnu/CORBA/typecodes/ArrayTypeCode.java, ! * gnu/CORBA/typecodes/FixedTypeCode.java, ! * gnu/CORBA/typecodes/GeneralTypeCode.java, ! * gnu/CORBA/typecodes/PrimitiveTypeCode.java, ! * gnu/CORBA/typecodes/RecordTypeCode.java, ! * gnu/CORBA/typecodes/RecursiveTypeCode.java, ! * gnu/CORBA/typecodes/StringTypeCode.java, ! * gnu/classpath/Pair.java, ! * gnu/classpath/Pointer.java, ! * gnu/classpath/Pointer32.java, ! * gnu/classpath/Pointer64.java, ! * gnu/classpath/ServiceFactory.java, ! * gnu/classpath/ServiceProviderLoadingAction.java, ! * gnu/classpath/SystemProperties.java, ! * gnu/classpath/debug/Component.java, ! * gnu/classpath/debug/PreciseFilter.java, ! * gnu/classpath/debug/SystemLogger.java, ! * gnu/classpath/debug/TeeInputStream.java, ! * gnu/classpath/debug/TeeReader.java, ! * gnu/classpath/jdwp/Jdwp.java, ! * gnu/classpath/jdwp/JdwpConstants.java, ! * gnu/classpath/jdwp/event/BreakpointEvent.java, ! * gnu/classpath/jdwp/event/ClassPrepareEvent.java, ! * gnu/classpath/jdwp/event/ClassUnloadEvent.java, ! * gnu/classpath/jdwp/event/Event.java, ! * gnu/classpath/jdwp/event/EventManager.java, ! * gnu/classpath/jdwp/event/EventRequest.java, ! * gnu/classpath/jdwp/event/ExceptionEvent.java, ! * gnu/classpath/jdwp/event/MethodEntryEvent.java, ! * gnu/classpath/jdwp/event/MethodExitEvent.java, ! * gnu/classpath/jdwp/event/SingleStepEvent.java, ! * gnu/classpath/jdwp/event/ThreadEndEvent.java, ! * gnu/classpath/jdwp/event/VmDeathEvent.java, ! * gnu/classpath/jdwp/event/VmInitEvent.java, ! * gnu/classpath/jdwp/event/filters/ClassExcludeFilter.java, ! * gnu/classpath/jdwp/event/filters/ClassMatchFilter.java, ! * gnu/classpath/jdwp/event/filters/ClassOnlyFilter.java, ! * gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java, ! * gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java, ! * gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.java, ! * gnu/classpath/jdwp/event/filters/StepFilter.java, ! * gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java, ! * gnu/classpath/jdwp/exception/InvalidClassException.java, ! * gnu/classpath/jdwp/exception/InvalidClassLoaderException.java, ! * gnu/classpath/jdwp/exception/InvalidEventTypeException.java, ! * gnu/classpath/jdwp/exception/InvalidFieldException.java, ! * gnu/classpath/jdwp/exception/InvalidFrameException.java, ! * gnu/classpath/jdwp/exception/InvalidLocationException.java, ! * gnu/classpath/jdwp/exception/InvalidMethodException.java, ! * gnu/classpath/jdwp/exception/InvalidObjectException.java, ! * gnu/classpath/jdwp/exception/InvalidSlotException.java, ! * gnu/classpath/jdwp/exception/InvalidStringException.java, ! * gnu/classpath/jdwp/exception/InvalidThreadException.java, ! * gnu/classpath/jdwp/exception/InvalidThreadGroupException.java, ! * gnu/classpath/jdwp/exception/NativeMethodException.java, ! * gnu/classpath/jdwp/exception/NotImplementedException.java, ! * gnu/classpath/jdwp/id/JdwpId.java, ! * gnu/classpath/jdwp/id/NullObjectId.java, ! * gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java, ! * gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java, ! * gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java, ! * gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java, ! * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java, ! * gnu/classpath/jdwp/processor/CommandSet.java, ! * gnu/classpath/jdwp/processor/EventRequestCommandSet.java, ! * gnu/classpath/jdwp/processor/FieldCommandSet.java, ! * gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java, ! * gnu/classpath/jdwp/processor/MethodCommandSet.java, ! * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java, ! * gnu/classpath/jdwp/processor/PacketProcessor.java, ! * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java, ! * gnu/classpath/jdwp/processor/StackFrameCommandSet.java, ! * gnu/classpath/jdwp/processor/StringReferenceCommandSet.java, ! * gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java, ! * gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java, ! * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java, ! * gnu/classpath/jdwp/transport/JdwpCommandPacket.java, ! * gnu/classpath/jdwp/transport/JdwpConnection.java, ! * gnu/classpath/jdwp/transport/JdwpPacket.java, ! * gnu/classpath/jdwp/transport/JdwpReplyPacket.java, ! * gnu/classpath/jdwp/transport/SocketTransport.java, ! * gnu/classpath/jdwp/transport/TransportFactory.java, ! * gnu/classpath/jdwp/util/JdwpString.java, ! * gnu/classpath/jdwp/util/LineTable.java, ! * gnu/classpath/jdwp/util/Location.java, ! * gnu/classpath/jdwp/util/MethodResult.java, ! * gnu/classpath/jdwp/util/MonitorInfo.java, ! * gnu/classpath/jdwp/util/Signature.java, ! * gnu/classpath/jdwp/util/VariableTable.java, ! * gnu/classpath/jdwp/value/ArrayValue.java, ! * gnu/classpath/jdwp/value/BooleanValue.java, ! * gnu/classpath/jdwp/value/ByteValue.java, ! * gnu/classpath/jdwp/value/CharValue.java, ! * gnu/classpath/jdwp/value/DoubleValue.java, ! * gnu/classpath/jdwp/value/FloatValue.java, ! * gnu/classpath/jdwp/value/IntValue.java, ! * gnu/classpath/jdwp/value/LongValue.java, ! * gnu/classpath/jdwp/value/ObjectValue.java, ! * gnu/classpath/jdwp/value/ShortValue.java, ! * gnu/classpath/jdwp/value/StringValue.java, ! * gnu/classpath/jdwp/value/Value.java, ! * gnu/classpath/jdwp/value/ValueFactory.java, ! * gnu/classpath/jdwp/value/VoidValue.java, ! * gnu/classpath/toolkit/DefaultDaemonThreadFactory.java, ! * gnu/java/awt/AWTUtilities.java, ! * gnu/java/awt/BitMaskExtent.java, ! * gnu/java/awt/BitwiseXORComposite.java, ! * gnu/java/awt/Buffers.java, ! * gnu/java/awt/ClasspathGraphicsEnvironment.java, ! * gnu/java/awt/ClasspathToolkit.java, ! * gnu/java/awt/ComponentDataBlitOp.java, ! * gnu/java/awt/EmbeddedWindow.java, ! * gnu/java/awt/GradientPaintContext.java, ! * gnu/java/awt/color/CieXyzConverter.java, ! * gnu/java/awt/color/ClutProfileConverter.java, ! * gnu/java/awt/color/ColorLookUpTable.java, ! * gnu/java/awt/color/GrayProfileConverter.java, ! * gnu/java/awt/color/GrayScaleConverter.java, ! * gnu/java/awt/color/LinearRGBConverter.java, ! * gnu/java/awt/color/ProfileHeader.java, ! * gnu/java/awt/color/RgbProfileConverter.java, ! * gnu/java/awt/color/SrgbConverter.java, ! * gnu/java/awt/color/ToneReproductionCurve.java, ! * gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java, ! * gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java, ! * gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java, ! * gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java, ! * gnu/java/awt/font/FontDelegate.java, ! * gnu/java/awt/font/FontFactory.java, ! * gnu/java/awt/font/GNUGlyphVector.java, ! * gnu/java/awt/font/OpenTypeFontPeer.java, ! * gnu/java/awt/font/autofit/GlyphHints.java, ! * gnu/java/awt/font/autofit/Latin.java, ! * gnu/java/awt/font/autofit/Utils.java, ! * gnu/java/awt/font/opentype/CharGlyphMap.java, ! * gnu/java/awt/font/opentype/GlyphNamer.java, ! * gnu/java/awt/font/opentype/MacResourceFork.java, ! * gnu/java/awt/font/opentype/NameDecoder.java, ! * gnu/java/awt/font/opentype/OpenTypeFont.java, ! * gnu/java/awt/font/opentype/OpenTypeFontFactory.java, ! * gnu/java/awt/font/opentype/truetype/GlyphLoader.java, ! * gnu/java/awt/font/opentype/truetype/GlyphLocator.java, ! * gnu/java/awt/font/opentype/truetype/GlyphMeasurer.java, ! * gnu/java/awt/font/opentype/truetype/Point.java, ! * gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java, ! * gnu/java/awt/font/opentype/truetype/VirtualMachine.java, ! * gnu/java/awt/font/opentype/truetype/Zone.java, ! * gnu/java/awt/font/opentype/truetype/ZonePathIterator.java, ! * gnu/java/awt/image/AsyncImage.java, ! * gnu/java/awt/image/ImageConverter.java, ! * gnu/java/awt/image/ImageDecoder.java, ! * gnu/java/awt/image/XBMDecoder.java, ! * gnu/java/awt/java2d/AbstractGraphics2D.java, ! * gnu/java/awt/java2d/AlphaCompositeContext.java, ! * gnu/java/awt/java2d/CubicSegment.java, ! * gnu/java/awt/java2d/LineSegment.java, ! * gnu/java/awt/java2d/PixelCoverage.java, ! * gnu/java/awt/java2d/QuadSegment.java, ! * gnu/java/awt/java2d/RasterGraphics.java, ! * gnu/java/awt/java2d/ScanlineConverter.java, ! * gnu/java/awt/java2d/ScanlineCoverage.java, ! * gnu/java/awt/java2d/Segment.java, ! * gnu/java/awt/java2d/TexturePaintContext.java, ! * gnu/java/awt/peer/ClasspathDesktopPeer.java, ! * gnu/java/awt/peer/ClasspathFontPeer.java, ! * gnu/java/awt/peer/GLightweightPeer.java, ! * gnu/java/awt/peer/GnomeDesktopPeer.java, ! * gnu/java/awt/peer/KDEDesktopPeer.java, ! * gnu/java/awt/peer/gtk/AsyncImage.java, ! * gnu/java/awt/peer/gtk/BufferedImageGraphics.java, ! * gnu/java/awt/peer/gtk/CairoGraphics2D.java, ! * gnu/java/awt/peer/gtk/CairoSurface.java, ! * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java, ! * gnu/java/awt/peer/gtk/ComponentGraphics.java, ! * gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java, ! * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java, ! * gnu/java/awt/peer/gtk/GdkFontPeer.java, ! * gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java, ! * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java, ! * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java, ! * gnu/java/awt/peer/gtk/GdkRobotPeer.java, ! * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java, ! * gnu/java/awt/peer/gtk/GtkButtonPeer.java, ! * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java, ! * gnu/java/awt/peer/gtk/GtkChoicePeer.java, ! * gnu/java/awt/peer/gtk/GtkClipboard.java, ! * gnu/java/awt/peer/gtk/GtkComponentPeer.java, ! * gnu/java/awt/peer/gtk/GtkContainerPeer.java, ! * gnu/java/awt/peer/gtk/GtkCursor.java, ! * gnu/java/awt/peer/gtk/GtkDialogPeer.java, ! * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java, ! * gnu/java/awt/peer/gtk/GtkFramePeer.java, ! * gnu/java/awt/peer/gtk/GtkGenericPeer.java, ! * gnu/java/awt/peer/gtk/GtkImage.java, ! * gnu/java/awt/peer/gtk/GtkImageConsumer.java, ! * gnu/java/awt/peer/gtk/GtkLabelPeer.java, ! * gnu/java/awt/peer/gtk/GtkListPeer.java, ! * gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java, ! * gnu/java/awt/peer/gtk/GtkMenuPeer.java, ! * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java, ! * gnu/java/awt/peer/gtk/GtkPanelPeer.java, ! * gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java, ! * gnu/java/awt/peer/gtk/GtkScrollbarPeer.java, ! * gnu/java/awt/peer/gtk/GtkSelection.java, ! * gnu/java/awt/peer/gtk/GtkToolkit.java, ! * gnu/java/awt/peer/gtk/GtkVolatileImage.java, ! * gnu/java/awt/peer/gtk/GtkWindowPeer.java, ! * gnu/java/awt/peer/gtk/VolatileImageGraphics.java, ! * gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java, ! * gnu/java/awt/peer/qt/MainQtThread.java, ! * gnu/java/awt/peer/qt/QMatrix.java, ! * gnu/java/awt/peer/qt/QPainterPath.java, ! * gnu/java/awt/peer/qt/QPen.java, ! * gnu/java/awt/peer/qt/QtAudioClip.java, ! * gnu/java/awt/peer/qt/QtButtonPeer.java, ! * gnu/java/awt/peer/qt/QtCheckboxPeer.java, ! * gnu/java/awt/peer/qt/QtChoicePeer.java, ! * gnu/java/awt/peer/qt/QtComponentGraphics.java, ! * gnu/java/awt/peer/qt/QtComponentPeer.java, ! * gnu/java/awt/peer/qt/QtContainerPeer.java, ! * gnu/java/awt/peer/qt/QtDialogPeer.java, ! * gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java, ! * gnu/java/awt/peer/qt/QtFileDialogPeer.java, ! * gnu/java/awt/peer/qt/QtFontMetrics.java, ! * gnu/java/awt/peer/qt/QtFontPeer.java, ! * gnu/java/awt/peer/qt/QtFramePeer.java, ! * gnu/java/awt/peer/qt/QtGraphics.java, ! * gnu/java/awt/peer/qt/QtGraphicsEnvironment.java, ! * gnu/java/awt/peer/qt/QtImage.java, ! * gnu/java/awt/peer/qt/QtImageConsumer.java, ! * gnu/java/awt/peer/qt/QtImageDirectGraphics.java, ! * gnu/java/awt/peer/qt/QtImageGraphics.java, ! * gnu/java/awt/peer/qt/QtLabelPeer.java, ! * gnu/java/awt/peer/qt/QtListPeer.java, ! * gnu/java/awt/peer/qt/QtMenuBarPeer.java, ! * gnu/java/awt/peer/qt/QtMenuComponentPeer.java, ! * gnu/java/awt/peer/qt/QtMenuItemPeer.java, ! * gnu/java/awt/peer/qt/QtMenuPeer.java, ! * gnu/java/awt/peer/qt/QtPanelPeer.java, ! * gnu/java/awt/peer/qt/QtPopupMenuPeer.java, ! * gnu/java/awt/peer/qt/QtRepaintThread.java, ! * gnu/java/awt/peer/qt/QtScreenDevice.java, ! * gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java, ! * gnu/java/awt/peer/qt/QtScrollPanePeer.java, ! * gnu/java/awt/peer/qt/QtScrollbarPeer.java, ! * gnu/java/awt/peer/qt/QtTextAreaPeer.java, ! * gnu/java/awt/peer/qt/QtTextFieldPeer.java, ! * gnu/java/awt/peer/qt/QtToolkit.java, ! * gnu/java/awt/peer/qt/QtVolatileImage.java, ! * gnu/java/awt/peer/qt/QtWindowPeer.java, ! * gnu/java/awt/peer/swing/SwingButtonPeer.java, ! * gnu/java/awt/peer/swing/SwingCheckboxPeer.java, ! * gnu/java/awt/peer/swing/SwingComponent.java, ! * gnu/java/awt/peer/swing/SwingComponentPeer.java, ! * gnu/java/awt/peer/swing/SwingContainerPeer.java, ! * gnu/java/awt/peer/swing/SwingLabelPeer.java, ! * gnu/java/awt/peer/swing/SwingListPeer.java, ! * gnu/java/awt/peer/swing/SwingMenuItemPeer.java, ! * gnu/java/awt/peer/swing/SwingMenuPeer.java, ! * gnu/java/awt/peer/swing/SwingTextAreaPeer.java, ! * gnu/java/awt/peer/swing/SwingTextFieldPeer.java, ! * gnu/java/awt/peer/x/GLGraphics.java, ! * gnu/java/awt/peer/x/KeyboardMapping.java, ! * gnu/java/awt/peer/x/XEventPump.java, ! * gnu/java/awt/peer/x/XFontPeer.java, ! * gnu/java/awt/peer/x/XFramePeer.java, ! * gnu/java/awt/peer/x/XGraphics2D.java, ! * gnu/java/awt/peer/x/XGraphicsConfiguration.java, ! * gnu/java/awt/peer/x/XGraphicsDevice.java, ! * gnu/java/awt/peer/x/XGraphicsEnvironment.java, ! * gnu/java/awt/peer/x/XImage.java, ! * gnu/java/awt/peer/x/XToolkit.java, ! * gnu/java/awt/peer/x/XWindowPeer.java, ! * gnu/java/awt/print/JavaPrinterGraphics.java, ! * gnu/java/awt/print/JavaPrinterJob.java, ! * gnu/java/awt/print/PostScriptGraphics2D.java, ! * gnu/java/awt/print/SpooledDocument.java, ! * gnu/java/beans/BeanInfoEmbryo.java, ! * gnu/java/beans/DefaultExceptionListener.java, ! * gnu/java/beans/ExplicitBeanInfo.java, ! * gnu/java/beans/IntrospectionIncubator.java, ! * gnu/java/beans/decoder/AbstractContext.java, ! * gnu/java/beans/decoder/AbstractCreatableObjectContext.java, ! * gnu/java/beans/decoder/AbstractElementHandler.java, ! * gnu/java/beans/decoder/AbstractObjectContext.java, ! * gnu/java/beans/decoder/ArrayContext.java, ! * gnu/java/beans/decoder/ArrayHandler.java, ! * gnu/java/beans/decoder/AssemblyException.java, ! * gnu/java/beans/decoder/BooleanHandler.java, ! * gnu/java/beans/decoder/ByteHandler.java, ! * gnu/java/beans/decoder/CharHandler.java, ! * gnu/java/beans/decoder/ClassHandler.java, ! * gnu/java/beans/decoder/ConstructorContext.java, ! * gnu/java/beans/decoder/Context.java, ! * gnu/java/beans/decoder/DecoderContext.java, ! * gnu/java/beans/decoder/DoubleHandler.java, ! * gnu/java/beans/decoder/DummyContext.java, ! * gnu/java/beans/decoder/DummyHandler.java, ! * gnu/java/beans/decoder/ElementHandler.java, ! * gnu/java/beans/decoder/FloatHandler.java, ! * gnu/java/beans/decoder/GrowableArrayContext.java, ! * gnu/java/beans/decoder/IndexContext.java, ! * gnu/java/beans/decoder/IntHandler.java, ! * gnu/java/beans/decoder/JavaHandler.java, ! * gnu/java/beans/decoder/LongHandler.java, ! * gnu/java/beans/decoder/MethodContext.java, ! * gnu/java/beans/decoder/MethodFinder.java, ! * gnu/java/beans/decoder/NullHandler.java, ! * gnu/java/beans/decoder/ObjectContext.java, ! * gnu/java/beans/decoder/ObjectHandler.java, ! * gnu/java/beans/decoder/PersistenceParser.java, ! * gnu/java/beans/decoder/PropertyContext.java, ! * gnu/java/beans/decoder/ShortHandler.java, ! * gnu/java/beans/decoder/SimpleHandler.java, ! * gnu/java/beans/decoder/StaticMethodContext.java, ! * gnu/java/beans/decoder/StringHandler.java, ! * gnu/java/beans/decoder/VoidHandler.java, ! * gnu/java/beans/editors/ColorEditor.java, ! * gnu/java/beans/editors/FontEditor.java, ! * gnu/java/beans/editors/NativeBooleanEditor.java, ! * gnu/java/beans/editors/NativeByteEditor.java, ! * gnu/java/beans/editors/NativeDoubleEditor.java, ! * gnu/java/beans/editors/NativeFloatEditor.java, ! * gnu/java/beans/editors/NativeIntEditor.java, ! * gnu/java/beans/editors/NativeLongEditor.java, ! * gnu/java/beans/editors/NativeShortEditor.java, ! * gnu/java/beans/editors/StringEditor.java, ! * gnu/java/beans/encoder/ArrayPersistenceDelegate.java, ! * gnu/java/beans/encoder/ClassPersistenceDelegate.java, ! * gnu/java/beans/encoder/CollectionPersistenceDelegate.java, ! * gnu/java/beans/encoder/Context.java, ! * gnu/java/beans/encoder/GenericScannerState.java, ! * gnu/java/beans/encoder/IgnoringScannerState.java, ! * gnu/java/beans/encoder/MapPersistenceDelegate.java, ! * gnu/java/beans/encoder/ObjectId.java, ! * gnu/java/beans/encoder/PrimitivePersistenceDelegate.java, ! * gnu/java/beans/encoder/ReportingScannerState.java, ! * gnu/java/beans/encoder/Root.java, ! * gnu/java/beans/encoder/ScanEngine.java, ! * gnu/java/beans/encoder/ScannerState.java, ! * gnu/java/beans/encoder/StAXWriter.java, ! * gnu/java/beans/encoder/Writer.java, ! * gnu/java/beans/encoder/elements/ArrayInstantiation.java, ! * gnu/java/beans/encoder/elements/Array_Get.java, ! * gnu/java/beans/encoder/elements/ClassResolution.java, ! * gnu/java/beans/encoder/elements/Element.java, ! * gnu/java/beans/encoder/elements/List_Get.java, ! * gnu/java/beans/encoder/elements/List_Set.java, ! * gnu/java/beans/encoder/elements/MethodInvocation.java, ! * gnu/java/beans/encoder/elements/NullObject.java, ! * gnu/java/beans/encoder/elements/ObjectInstantiation.java, ! * gnu/java/beans/encoder/elements/ObjectReference.java, ! * gnu/java/beans/encoder/elements/PrimitiveInstantiation.java, ! * gnu/java/beans/encoder/elements/StaticFieldAccess.java, ! * gnu/java/beans/encoder/elements/StaticMethodInvocation.java, ! * gnu/java/beans/encoder/elements/StringReference.java, ! * gnu/java/io/ASN1ParsingException.java, ! * gnu/java/io/Base64InputStream.java, ! * gnu/java/io/ClassLoaderObjectInputStream.java, ! * gnu/java/io/NullOutputStream.java, ! * gnu/java/io/ObjectIdentityMap2Int.java, ! * gnu/java/io/ObjectIdentityWrapper.java, ! * gnu/java/io/PlatformHelper.java, ! * gnu/java/lang/CPStringBuilder.java, ! * gnu/java/lang/CharData.java, ! * gnu/java/lang/InstrumentationImpl.java, ! * gnu/java/lang/MainThread.java, ! * gnu/java/lang/management/BeanImpl.java, ! * gnu/java/lang/management/ClassLoadingMXBeanImpl.java, ! * gnu/java/lang/management/CompilationMXBeanImpl.java, ! * gnu/java/lang/management/GarbageCollectorMXBeanImpl.java, ! * gnu/java/lang/management/MemoryMXBeanImpl.java, ! * gnu/java/lang/management/MemoryManagerMXBeanImpl.java, ! * gnu/java/lang/management/MemoryPoolMXBeanImpl.java, ! * gnu/java/lang/management/OperatingSystemMXBeanImpl.java, ! * gnu/java/lang/management/RuntimeMXBeanImpl.java, ! * gnu/java/lang/management/ThreadMXBeanImpl.java, ! * gnu/java/lang/reflect/TypeSignature.java, ! * gnu/java/locale/LocaleHelper.java, ! * gnu/java/math/Fixed.java, ! * gnu/java/math/GMP.java, ! * gnu/java/math/MPN.java, ! * gnu/java/net/CRLFInputStream.java, ! * gnu/java/net/CRLFOutputStream.java, ! * gnu/java/net/DefaultContentHandlerFactory.java, ! * gnu/java/net/DefaultProxySelector.java, ! * gnu/java/net/EmptyX509TrustManager.java, ! * gnu/java/net/GetLocalHostAction.java, ! * gnu/java/net/HeaderFieldHelper.java, ! * gnu/java/net/IndexListParser.java, ! * gnu/java/net/LineInputStream.java, ! * gnu/java/net/PlainDatagramSocketImpl.java, ! * gnu/java/net/PlainSocketImpl.java, ! * gnu/java/net/loader/FileResource.java, ! * gnu/java/net/loader/FileURLLoader.java, ! * gnu/java/net/loader/JarURLLoader.java, ! * gnu/java/net/loader/JarURLResource.java, ! * gnu/java/net/loader/RemoteResource.java, ! * gnu/java/net/loader/RemoteURLLoader.java, ! * gnu/java/net/loader/Resource.java, ! * gnu/java/net/loader/URLLoader.java, ! * gnu/java/net/protocol/file/Connection.java, ! * gnu/java/net/protocol/file/Handler.java, ! * gnu/java/net/protocol/ftp/ActiveModeDTP.java, ! * gnu/java/net/protocol/ftp/BlockInputStream.java, ! * gnu/java/net/protocol/ftp/BlockOutputStream.java, ! * gnu/java/net/protocol/ftp/CompressedInputStream.java, ! * gnu/java/net/protocol/ftp/CompressedOutputStream.java, ! * gnu/java/net/protocol/ftp/DTP.java, ! * gnu/java/net/protocol/ftp/DTPInputStream.java, ! * gnu/java/net/protocol/ftp/DTPOutputStream.java, ! * gnu/java/net/protocol/ftp/FTPConnection.java, ! * gnu/java/net/protocol/ftp/FTPException.java, ! * gnu/java/net/protocol/ftp/FTPResponse.java, ! * gnu/java/net/protocol/ftp/FTPURLConnection.java, ! * gnu/java/net/protocol/ftp/Handler.java, ! * gnu/java/net/protocol/ftp/PassiveModeDTP.java, ! * gnu/java/net/protocol/ftp/StreamInputStream.java, ! * gnu/java/net/protocol/ftp/StreamOutputStream.java, ! * gnu/java/net/protocol/http/Authenticator.java, ! * gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.java, ! * gnu/java/net/protocol/http/ChunkedInputStream.java, ! * gnu/java/net/protocol/http/Cookie.java, ! * gnu/java/net/protocol/http/CookieManager.java, ! * gnu/java/net/protocol/http/Credentials.java, ! * gnu/java/net/protocol/http/HTTPConnection.java, ! * gnu/java/net/protocol/http/HTTPDateFormat.java, ! * gnu/java/net/protocol/http/HTTPURLConnection.java, ! * gnu/java/net/protocol/http/Handler.java, ! * gnu/java/net/protocol/http/Headers.java, ! * gnu/java/net/protocol/http/Request.java, ! * gnu/java/net/protocol/http/RequestBodyWriter.java, ! * gnu/java/net/protocol/http/Response.java, ! * gnu/java/net/protocol/http/ResponseHeaderHandler.java, ! * gnu/java/net/protocol/http/SimpleCookieManager.java, ! * gnu/java/net/protocol/https/Handler.java, ! * gnu/java/net/protocol/jar/Connection.java, ! * gnu/java/net/protocol/jar/Handler.java, ! * gnu/java/nio/ChannelInputStream.java, ! * gnu/java/nio/ChannelOutputStream.java, ! * gnu/java/nio/ChannelReader.java, ! * gnu/java/nio/ChannelWriter.java, ! * gnu/java/nio/DatagramChannelImpl.java, ! * gnu/java/nio/DatagramChannelSelectionKey.java, ! * gnu/java/nio/EpollSelectionKeyImpl.java, ! * gnu/java/nio/EpollSelectorImpl.java, ! * gnu/java/nio/FileChannelImpl.java, ! * gnu/java/nio/FileLockImpl.java, ! * gnu/java/nio/InputStreamChannel.java, ! * gnu/java/nio/KqueueSelectionKeyImpl.java, ! * gnu/java/nio/KqueueSelectorImpl.java, ! * gnu/java/nio/NIODatagramSocket.java, ! * gnu/java/nio/NIOServerSocket.java, ! * gnu/java/nio/NIOSocket.java, ! * gnu/java/nio/NIOSocketImpl.java, ! * gnu/java/nio/OutputStreamChannel.java, ! * gnu/java/nio/PipeImpl.java, ! * gnu/java/nio/SelectionKeyImpl.java, ! * gnu/java/nio/SelectorImpl.java, ! * gnu/java/nio/SelectorProviderImpl.java, ! * gnu/java/nio/ServerSocketChannelImpl.java, ! * gnu/java/nio/ServerSocketChannelSelectionKey.java, ! * gnu/java/nio/SocketChannelImpl.java, ! * gnu/java/nio/SocketChannelSelectionKey.java, ! * gnu/java/nio/SocketChannelSelectionKeyImpl.java, ! * gnu/java/nio/VMChannelOwner.java, ! * gnu/java/nio/charset/ByteCharset.java, ! * gnu/java/nio/charset/ByteDecodeLoopHelper.java, ! * gnu/java/nio/charset/ByteEncodeLoopHelper.java, ! * gnu/java/nio/charset/Cp424.java, ! * gnu/java/nio/charset/Cp437.java, ! * gnu/java/nio/charset/Cp737.java, ! * gnu/java/nio/charset/Cp775.java, ! * gnu/java/nio/charset/Cp850.java, ! * gnu/java/nio/charset/Cp852.java, ! * gnu/java/nio/charset/Cp855.java, ! * gnu/java/nio/charset/Cp857.java, ! * gnu/java/nio/charset/Cp860.java, ! * gnu/java/nio/charset/Cp861.java, ! * gnu/java/nio/charset/Cp862.java, ! * gnu/java/nio/charset/Cp863.java, ! * gnu/java/nio/charset/Cp864.java, ! * gnu/java/nio/charset/Cp865.java, ! * gnu/java/nio/charset/Cp866.java, ! * gnu/java/nio/charset/Cp869.java, ! * gnu/java/nio/charset/Cp874.java, ! * gnu/java/nio/charset/EncodingHelper.java, ! * gnu/java/nio/charset/ISO_8859_1.java, ! * gnu/java/nio/charset/ISO_8859_13.java, ! * gnu/java/nio/charset/ISO_8859_15.java, ! * gnu/java/nio/charset/ISO_8859_2.java, ! * gnu/java/nio/charset/ISO_8859_3.java, ! * gnu/java/nio/charset/ISO_8859_4.java, ! * gnu/java/nio/charset/ISO_8859_5.java, ! * gnu/java/nio/charset/ISO_8859_6.java, ! * gnu/java/nio/charset/ISO_8859_7.java, ! * gnu/java/nio/charset/ISO_8859_8.java, ! * gnu/java/nio/charset/ISO_8859_9.java, ! * gnu/java/nio/charset/KOI_8.java, ! * gnu/java/nio/charset/MS874.java, ! * gnu/java/nio/charset/MacCentralEurope.java, ! * gnu/java/nio/charset/MacCroatian.java, ! * gnu/java/nio/charset/MacCyrillic.java, ! * gnu/java/nio/charset/MacDingbat.java, ! * gnu/java/nio/charset/MacGreek.java, ! * gnu/java/nio/charset/MacIceland.java, ! * gnu/java/nio/charset/MacRoman.java, ! * gnu/java/nio/charset/MacRomania.java, ! * gnu/java/nio/charset/MacSymbol.java, ! * gnu/java/nio/charset/MacThai.java, ! * gnu/java/nio/charset/MacTurkish.java, ! * gnu/java/nio/charset/Provider.java, ! * gnu/java/nio/charset/US_ASCII.java, ! * gnu/java/nio/charset/UTF_16.java, ! * gnu/java/nio/charset/UTF_16BE.java, ! * gnu/java/nio/charset/UTF_16Decoder.java, ! * gnu/java/nio/charset/UTF_16Encoder.java, ! * gnu/java/nio/charset/UTF_16LE.java, ! * gnu/java/nio/charset/UTF_8.java, ! * gnu/java/nio/charset/UnicodeLittle.java, ! * gnu/java/nio/charset/Windows1250.java, ! * gnu/java/nio/charset/Windows1251.java, ! * gnu/java/nio/charset/Windows1252.java, ! * gnu/java/nio/charset/Windows1253.java, ! * gnu/java/nio/charset/Windows1254.java, ! * gnu/java/nio/charset/Windows1255.java, ! * gnu/java/nio/charset/Windows1256.java, ! * gnu/java/nio/charset/Windows1257.java, ! * gnu/java/nio/charset/Windows1258.java, ! * gnu/java/nio/charset/iconv/IconvCharset.java, ! * gnu/java/nio/charset/iconv/IconvDecoder.java, ! * gnu/java/nio/charset/iconv/IconvEncoder.java, ! * gnu/java/nio/charset/iconv/IconvProvider.java, ! * gnu/java/rmi/RMIMarshalledObjectInputStream.java, ! * gnu/java/rmi/RMIMarshalledObjectOutputStream.java, ! * gnu/java/rmi/activation/ActivationSystemTransient.java, ! * gnu/java/rmi/activation/BidiTable.java, ! * gnu/java/rmi/activation/DefaultActivationGroup.java, ! * gnu/java/rmi/activation/DefaultActivationSystem.java, ! * gnu/java/rmi/dgc/DGCImpl.java, ! * gnu/java/rmi/dgc/DGCImpl_Skel.java, ! * gnu/java/rmi/dgc/DGCImpl_Stub.java, ! * gnu/java/rmi/dgc/LeaseRenewingTask.java, ! * gnu/java/rmi/registry/RegistryImpl.java, ! * gnu/java/rmi/registry/RegistryImpl_Skel.java, ! * gnu/java/rmi/registry/RegistryImpl_Stub.java, ! * gnu/java/rmi/server/ActivatableRef.java, ! * gnu/java/rmi/server/ActivatableServerRef.java, ! * gnu/java/rmi/server/CombinedClassLoader.java, ! * gnu/java/rmi/server/ConnectionRunnerPool.java, ! * gnu/java/rmi/server/ProtocolConstants.java, ! * gnu/java/rmi/server/RMIClassLoaderImpl.java, ! * gnu/java/rmi/server/RMIDefaultSocketFactory.java, ! * gnu/java/rmi/server/RMIHashes.java, ! * gnu/java/rmi/server/RMIIncomingThread.java, ! * gnu/java/rmi/server/RMIObjectInputStream.java, ! * gnu/java/rmi/server/RMIObjectOutputStream.java, ! * gnu/java/rmi/server/UnicastConnection.java, ! * gnu/java/rmi/server/UnicastConnectionManager.java, ! * gnu/java/rmi/server/UnicastRef.java, ! * gnu/java/rmi/server/UnicastRemoteCall.java, ! * gnu/java/rmi/server/UnicastRemoteStub.java, ! * gnu/java/rmi/server/UnicastServer.java, ! * gnu/java/rmi/server/UnicastServerRef.java, ! * gnu/java/security/Engine.java, ! * gnu/java/security/OID.java, ! * gnu/java/security/PolicyFile.java, ! * gnu/java/security/Properties.java, ! * gnu/java/security/Registry.java, ! * gnu/java/security/Requires.java, ! * gnu/java/security/action/GetPropertyAction.java, ! * gnu/java/security/action/SetAccessibleAction.java, ! * gnu/java/security/der/DERValue.java, ! * gnu/java/security/hash/BaseHash.java, ! * gnu/java/security/hash/HashFactory.java, ! * gnu/java/security/hash/Haval.java, ! * gnu/java/security/hash/IMessageDigest.java, ! * gnu/java/security/hash/MD2.java, ! * gnu/java/security/hash/MD4.java, ! * gnu/java/security/hash/MD5.java, ! * gnu/java/security/hash/RipeMD128.java, ! * gnu/java/security/hash/RipeMD160.java, ! * gnu/java/security/hash/Sha160.java, ! * gnu/java/security/hash/Sha256.java, ! * gnu/java/security/hash/Sha384.java, ! * gnu/java/security/hash/Sha512.java, ! * gnu/java/security/hash/Tiger.java, ! * gnu/java/security/hash/Whirlpool.java, ! * gnu/java/security/jce/hash/HavalSpi.java, ! * gnu/java/security/jce/hash/MD2Spi.java, ! * gnu/java/security/jce/hash/MD4Spi.java, ! * gnu/java/security/jce/hash/MD5Spi.java, ! * gnu/java/security/jce/hash/MessageDigestAdapter.java, ! * gnu/java/security/jce/hash/RipeMD128Spi.java, ! * gnu/java/security/jce/hash/RipeMD160Spi.java, ! * gnu/java/security/jce/hash/Sha160Spi.java, ! * gnu/java/security/jce/hash/Sha256Spi.java, ! * gnu/java/security/jce/hash/Sha384Spi.java, ! * gnu/java/security/jce/hash/Sha512Spi.java, ! * gnu/java/security/jce/hash/TigerSpi.java, ! * gnu/java/security/jce/hash/WhirlpoolSpi.java, ! * gnu/java/security/jce/prng/HavalRandomSpi.java, ! * gnu/java/security/jce/prng/MD2RandomSpi.java, ! * gnu/java/security/jce/prng/MD4RandomSpi.java, ! * gnu/java/security/jce/prng/MD5RandomSpi.java, ! * gnu/java/security/jce/prng/RipeMD128RandomSpi.java, ! * gnu/java/security/jce/prng/RipeMD160RandomSpi.java, ! * gnu/java/security/jce/prng/SecureRandomAdapter.java, ! * gnu/java/security/jce/prng/Sha160RandomSpi.java, ! * gnu/java/security/jce/prng/Sha256RandomSpi.java, ! * gnu/java/security/jce/prng/Sha384RandomSpi.java, ! * gnu/java/security/jce/prng/Sha512RandomSpi.java, ! * gnu/java/security/jce/prng/TigerRandomSpi.java, ! * gnu/java/security/jce/prng/WhirlpoolRandomSpi.java, ! * gnu/java/security/jce/sig/DSSKeyFactory.java, ! * gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java, ! * gnu/java/security/jce/sig/DSSParameters.java, ! * gnu/java/security/jce/sig/DSSRawSignatureSpi.java, ! * gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java, ! * gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java, ! * gnu/java/security/jce/sig/SignatureAdapter.java, ! * gnu/java/security/key/IKeyPairCodec.java, ! * gnu/java/security/key/IKeyPairGenerator.java, ! * gnu/java/security/key/KeyPairCodecFactory.java, ! * gnu/java/security/key/KeyPairGeneratorFactory.java, ! * gnu/java/security/key/dss/DSSKey.java, ! * gnu/java/security/key/dss/DSSKeyPairGenerator.java, ! * gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java, ! * gnu/java/security/key/dss/DSSKeyPairRawCodec.java, ! * gnu/java/security/key/dss/DSSKeyPairX509Codec.java, ! * gnu/java/security/key/dss/DSSPrivateKey.java, ! * gnu/java/security/key/dss/DSSPublicKey.java, ! * gnu/java/security/key/dss/FIPS186.java, ! * gnu/java/security/key/rsa/GnuRSAKey.java, ! * gnu/java/security/key/rsa/GnuRSAPrivateKey.java, ! * gnu/java/security/key/rsa/GnuRSAPublicKey.java, ! * gnu/java/security/key/rsa/RSAKeyPairGenerator.java, ! * gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java, ! * gnu/java/security/key/rsa/RSAKeyPairRawCodec.java, ! * gnu/java/security/key/rsa/RSAKeyPairX509Codec.java, ! * gnu/java/security/pkcs/PKCS7Data.java, ! * gnu/java/security/pkcs/PKCS7SignedData.java, ! * gnu/java/security/pkcs/SignerInfo.java, ! * gnu/java/security/prng/BasePRNG.java, ! * gnu/java/security/prng/EntropySource.java, ! * gnu/java/security/prng/IRandom.java, ! * gnu/java/security/prng/LimitReachedException.java, ! * gnu/java/security/prng/MDGenerator.java, ! * gnu/java/security/prng/PRNGFactory.java, ! * gnu/java/security/prng/RandomEventListener.java, ! * gnu/java/security/provider/DefaultPolicy.java, ! * gnu/java/security/provider/PKIXCertPathValidatorImpl.java, ! * gnu/java/security/sig/BaseSignature.java, ! * gnu/java/security/sig/ISignature.java, ! * gnu/java/security/sig/ISignatureCodec.java, ! * gnu/java/security/sig/SignatureCodecFactory.java, ! * gnu/java/security/sig/SignatureFactory.java, ! * gnu/java/security/sig/dss/DSSSignature.java, ! * gnu/java/security/sig/dss/DSSSignatureRawCodec.java, ! * gnu/java/security/sig/dss/DSSSignatureX509Codec.java, ! * gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java, ! * gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java, ! * gnu/java/security/sig/rsa/EMSA_PSS.java, ! * gnu/java/security/sig/rsa/RSA.java, ! * gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java, ! * gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java, ! * gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java, ! * gnu/java/security/sig/rsa/RSAPSSSignature.java, ! * gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java, ! * gnu/java/security/sig/rsa/RSASignatureFactory.java, ! * gnu/java/security/util/ByteArray.java, ! * gnu/java/security/util/ByteBufferOutputStream.java, ! * gnu/java/security/util/ExpirableObject.java, ! * gnu/java/security/util/FormatUtil.java, ! * gnu/java/security/util/IntegerUtil.java, ! * gnu/java/security/util/PRNG.java, ! * gnu/java/security/util/Prime.java, ! * gnu/java/security/util/Sequence.java, ! * gnu/java/security/util/SimpleList.java, ! * gnu/java/security/util/Util.java, ! * gnu/java/security/x509/X509CRLSelectorImpl.java, ! * gnu/java/security/x509/X509CertSelectorImpl.java, ! * gnu/java/security/x509/ext/CertificatePolicies.java, ! * gnu/java/security/x509/ext/GeneralName.java, ! * gnu/java/security/x509/ext/GeneralSubtree.java, ! * gnu/java/security/x509/ext/NameConstraints.java, ! * gnu/java/text/AttributedFormatBuffer.java, ! * gnu/java/text/BaseBreakIterator.java, ! * gnu/java/text/CharacterBreakIterator.java, ! * gnu/java/text/FormatBuffer.java, ! * gnu/java/text/FormatCharacterIterator.java, ! * gnu/java/text/LineBreakIterator.java, ! * gnu/java/text/SentenceBreakIterator.java, ! * gnu/java/text/StringFormatBuffer.java, ! * gnu/java/text/WordBreakIterator.java, ! * gnu/java/util/Base64.java, ! * gnu/java/util/DoubleEnumeration.java, ! * gnu/java/util/EmptyEnumeration.java, ! * gnu/java/util/WeakIdentityHashMap.java, ! * gnu/java/util/ZoneInfo.java, ! * gnu/java/util/jar/JarUtils.java, ! * gnu/java/util/prefs/FileBasedFactory.java, ! * gnu/java/util/prefs/FileBasedPreferences.java, ! * gnu/java/util/prefs/GConfBasedFactory.java, ! * gnu/java/util/prefs/GConfBasedPreferences.java, ! * gnu/java/util/prefs/MemoryBasedFactory.java, ! * gnu/java/util/prefs/MemoryBasedPreferences.java, ! * gnu/java/util/prefs/NodeReader.java, ! * gnu/java/util/prefs/NodeWriter.java, ! * gnu/java/util/prefs/gconf/GConfNativePeer.java, ! * gnu/java/util/regex/BacktrackStack.java, ! * gnu/java/util/regex/CharIndexed.java, ! * gnu/java/util/regex/CharIndexedInputStream.java, ! * gnu/java/util/regex/RE.java, ! * gnu/java/util/regex/REFilterInputStream.java, ! * gnu/java/util/regex/REMatch.java, ! * gnu/java/util/regex/REMatchEnumeration.java, ! * gnu/java/util/regex/RESyntax.java, ! * gnu/java/util/regex/REToken.java, ! * gnu/java/util/regex/RETokenAny.java, ! * gnu/java/util/regex/RETokenBackRef.java, ! * gnu/java/util/regex/RETokenChar.java, ! * gnu/java/util/regex/RETokenEnd.java, ! * gnu/java/util/regex/RETokenEndOfPreviousMatch.java, ! * gnu/java/util/regex/RETokenIndependent.java, ! * gnu/java/util/regex/RETokenLookAhead.java, ! * gnu/java/util/regex/RETokenLookBehind.java, ! * gnu/java/util/regex/RETokenNamedProperty.java, ! * gnu/java/util/regex/RETokenOneOf.java, ! * gnu/java/util/regex/RETokenPOSIX.java, ! * gnu/java/util/regex/RETokenRange.java, ! * gnu/java/util/regex/RETokenRepeated.java, ! * gnu/java/util/regex/RETokenStart.java, ! * gnu/java/util/regex/RETokenWordBoundary.java, ! * gnu/java/util/regex/UncheckedRE.java, ! * gnu/javax/activation/viewers/ImageViewer.java, ! * gnu/javax/activation/viewers/TextEditor.java, ! * gnu/javax/activation/viewers/TextViewer.java, ! * gnu/javax/crypto/assembly/Assembly.java, ! * gnu/javax/crypto/assembly/Cascade.java, ! * gnu/javax/crypto/assembly/CascadeStage.java, ! * gnu/javax/crypto/assembly/CascadeTransformer.java, ! * gnu/javax/crypto/assembly/DeflateTransformer.java, ! * gnu/javax/crypto/assembly/Direction.java, ! * gnu/javax/crypto/assembly/LoopbackTransformer.java, ! * gnu/javax/crypto/assembly/ModeStage.java, ! * gnu/javax/crypto/assembly/Operation.java, ! * gnu/javax/crypto/assembly/PaddingTransformer.java, ! * gnu/javax/crypto/assembly/Stage.java, ! * gnu/javax/crypto/assembly/Transformer.java, ! * gnu/javax/crypto/assembly/TransformerException.java, ! * gnu/javax/crypto/cipher/Anubis.java, ! * gnu/javax/crypto/cipher/BaseCipher.java, ! * gnu/javax/crypto/cipher/Blowfish.java, ! * gnu/javax/crypto/cipher/Cast5.java, ! * gnu/javax/crypto/cipher/CipherFactory.java, ! * gnu/javax/crypto/cipher/DES.java, ! * gnu/javax/crypto/cipher/IBlockCipher.java, ! * gnu/javax/crypto/cipher/IBlockCipherSpi.java, ! * gnu/javax/crypto/cipher/Khazad.java, ! * gnu/javax/crypto/cipher/NullCipher.java, ! * gnu/javax/crypto/cipher/Rijndael.java, ! * gnu/javax/crypto/cipher/Serpent.java, ! * gnu/javax/crypto/cipher/Square.java, ! * gnu/javax/crypto/cipher/TripleDES.java, ! * gnu/javax/crypto/cipher/Twofish.java, ! * gnu/javax/crypto/cipher/WeakKeyException.java, ! * gnu/javax/crypto/jce/DiffieHellmanImpl.java, ! * gnu/javax/crypto/jce/GnuCrypto.java, ! * gnu/javax/crypto/jce/GnuSasl.java, ! * gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java, ! * gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java, ! * gnu/javax/crypto/jce/cipher/AESSpi.java, ! * gnu/javax/crypto/jce/cipher/ARCFourSpi.java, ! * gnu/javax/crypto/jce/cipher/AnubisSpi.java, ! * gnu/javax/crypto/jce/cipher/BlowfishSpi.java, ! * gnu/javax/crypto/jce/cipher/Cast5Spi.java, ! * gnu/javax/crypto/jce/cipher/CipherAdapter.java, ! * gnu/javax/crypto/jce/cipher/DESSpi.java, ! * gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java, ! * gnu/javax/crypto/jce/cipher/KhazadSpi.java, ! * gnu/javax/crypto/jce/cipher/NullCipherSpi.java, ! * gnu/javax/crypto/jce/cipher/PBES2.java, ! * gnu/javax/crypto/jce/cipher/RijndaelSpi.java, ! * gnu/javax/crypto/jce/cipher/SerpentSpi.java, ! * gnu/javax/crypto/jce/cipher/SquareSpi.java, ! * gnu/javax/crypto/jce/cipher/TripleDESSpi.java, ! * gnu/javax/crypto/jce/cipher/TwofishSpi.java, ! * gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java, ! * gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java, ! * gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java, ! * gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java, ! * gnu/javax/crypto/jce/keyring/GnuKeyring.java, ! * gnu/javax/crypto/jce/mac/HMacHavalSpi.java, ! * gnu/javax/crypto/jce/mac/HMacMD2Spi.java, ! * gnu/javax/crypto/jce/mac/HMacMD4Spi.java, ! * gnu/javax/crypto/jce/mac/HMacMD5Spi.java, ! * gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java, ! * gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java, ! * gnu/javax/crypto/jce/mac/HMacSHA160Spi.java, ! * gnu/javax/crypto/jce/mac/HMacSHA256Spi.java, ! * gnu/javax/crypto/jce/mac/HMacSHA384Spi.java, ! * gnu/javax/crypto/jce/mac/HMacSHA512Spi.java, ! * gnu/javax/crypto/jce/mac/HMacTigerSpi.java, ! * gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java, ! * gnu/javax/crypto/jce/mac/MacAdapter.java, ! * gnu/javax/crypto/jce/mac/TMMH16Spi.java, ! * gnu/javax/crypto/jce/mac/UHash32Spi.java, ! * gnu/javax/crypto/jce/mac/UMac32Spi.java, ! * gnu/javax/crypto/jce/params/BlockCipherParameters.java, ! * gnu/javax/crypto/jce/params/DEREncodingException.java, ! * gnu/javax/crypto/jce/params/DERReader.java, ! * gnu/javax/crypto/jce/params/DERWriter.java, ! * gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java, ! * gnu/javax/crypto/jce/prng/CSPRNGSpi.java, ! * gnu/javax/crypto/jce/prng/FortunaImpl.java, ! * gnu/javax/crypto/jce/prng/ICMRandomSpi.java, ! * gnu/javax/crypto/jce/prng/UMacRandomSpi.java, ! * gnu/javax/crypto/jce/sig/DHParameters.java, ! * gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java, ! * gnu/javax/crypto/jce/spec/TMMHParameterSpec.java, ! * gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java, ! * gnu/javax/crypto/key/BaseKeyAgreementParty.java, ! * gnu/javax/crypto/key/GnuPBEKey.java, ! * gnu/javax/crypto/key/GnuSecretKey.java, ! * gnu/javax/crypto/key/IKeyAgreementParty.java, ! * gnu/javax/crypto/key/IncomingMessage.java, ! * gnu/javax/crypto/key/KeyAgreementException.java, ! * gnu/javax/crypto/key/KeyAgreementFactory.java, ! * gnu/javax/crypto/key/OutgoingMessage.java, ! * gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java, ! * gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java, ! * gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java, ! * gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java, ! * gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java, ! * gnu/javax/crypto/key/dh/DiffieHellmanSender.java, ! * gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java, ! * gnu/javax/crypto/key/dh/ElGamalReceiver.java, ! * gnu/javax/crypto/key/dh/ElGamalSender.java, ! * gnu/javax/crypto/key/dh/GnuDHKey.java, ! * gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java, ! * gnu/javax/crypto/key/dh/GnuDHPrivateKey.java, ! * gnu/javax/crypto/key/dh/GnuDHPublicKey.java, ! * gnu/javax/crypto/key/dh/RFC2631.java, ! * gnu/javax/crypto/key/srp6/SRP6Host.java, ! * gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java, ! * gnu/javax/crypto/key/srp6/SRP6SaslClient.java, ! * gnu/javax/crypto/key/srp6/SRP6SaslServer.java, ! * gnu/javax/crypto/key/srp6/SRP6TLSClient.java, ! * gnu/javax/crypto/key/srp6/SRP6TLSServer.java, ! * gnu/javax/crypto/key/srp6/SRP6User.java, ! * gnu/javax/crypto/key/srp6/SRPAlgorithm.java, ! * gnu/javax/crypto/key/srp6/SRPKey.java, ! * gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java, ! * gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java, ! * gnu/javax/crypto/key/srp6/SRPPrivateKey.java, ! * gnu/javax/crypto/key/srp6/SRPPublicKey.java, ! * gnu/javax/crypto/keyring/AuthenticatedEntry.java, ! * gnu/javax/crypto/keyring/BaseKeyring.java, ! * gnu/javax/crypto/keyring/BinaryDataEntry.java, ! * gnu/javax/crypto/keyring/CertPathEntry.java, ! * gnu/javax/crypto/keyring/CertificateEntry.java, ! * gnu/javax/crypto/keyring/CompressedEntry.java, ! * gnu/javax/crypto/keyring/EncryptedEntry.java, ! * gnu/javax/crypto/keyring/Entry.java, ! * gnu/javax/crypto/keyring/EnvelopeEntry.java, ! * gnu/javax/crypto/keyring/GnuPrivateKeyring.java, ! * gnu/javax/crypto/keyring/GnuPublicKeyring.java, ! * gnu/javax/crypto/keyring/IKeyring.java, ! * gnu/javax/crypto/keyring/IPrivateKeyring.java, ! * gnu/javax/crypto/keyring/IPublicKeyring.java, ! * gnu/javax/crypto/keyring/MalformedKeyringException.java, ! * gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java, ! * gnu/javax/crypto/keyring/MeteredInputStream.java, ! * gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java, ! * gnu/javax/crypto/keyring/PasswordEncryptedEntry.java, ! * gnu/javax/crypto/keyring/PasswordProtectedEntry.java, ! * gnu/javax/crypto/keyring/PrimitiveEntry.java, ! * gnu/javax/crypto/keyring/PrivateKeyEntry.java, ! * gnu/javax/crypto/keyring/Properties.java, ! * gnu/javax/crypto/keyring/PublicKeyEntry.java, ! * gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java, ! * gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java, ! * gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java, ! * gnu/javax/crypto/kwa/TripleDESKeyWrap.java, ! * gnu/javax/crypto/mac/BaseMac.java, ! * gnu/javax/crypto/mac/HMac.java, ! * gnu/javax/crypto/mac/HMacFactory.java, ! * gnu/javax/crypto/mac/IMac.java, ! * gnu/javax/crypto/mac/MacFactory.java, ! * gnu/javax/crypto/mac/MacInputStream.java, ! * gnu/javax/crypto/mac/MacOutputStream.java, ! * gnu/javax/crypto/mac/OMAC.java, ! * gnu/javax/crypto/mac/TMMH16.java, ! * gnu/javax/crypto/mac/UHash32.java, ! * gnu/javax/crypto/mac/UMac32.java, ! * gnu/javax/crypto/mode/BaseMode.java, ! * gnu/javax/crypto/mode/CBC.java, ! * gnu/javax/crypto/mode/CFB.java, ! * gnu/javax/crypto/mode/CTR.java, ! * gnu/javax/crypto/mode/EAX.java, ! * gnu/javax/crypto/mode/ECB.java, ! * gnu/javax/crypto/mode/IAuthenticatedMode.java, ! * gnu/javax/crypto/mode/ICM.java, ! * gnu/javax/crypto/mode/IMode.java, ! * gnu/javax/crypto/mode/ModeFactory.java, ! * gnu/javax/crypto/mode/OFB.java, ! * gnu/javax/crypto/pad/BasePad.java, ! * gnu/javax/crypto/pad/IPad.java, ! * gnu/javax/crypto/pad/PKCS1_V1_5.java, ! * gnu/javax/crypto/pad/PKCS7.java, ! * gnu/javax/crypto/pad/PadFactory.java, ! * gnu/javax/crypto/pad/TBC.java, ! * gnu/javax/crypto/pad/WrongPaddingException.java, ! * gnu/javax/crypto/prng/ARCFour.java, ! * gnu/javax/crypto/prng/CSPRNG.java, ! * gnu/javax/crypto/prng/ICMGenerator.java, ! * gnu/javax/crypto/prng/IPBE.java, ! * gnu/javax/crypto/prng/PBKDF2.java, ! * gnu/javax/crypto/prng/PRNGFactory.java, ! * gnu/javax/crypto/prng/UMacGenerator.java, ! * gnu/javax/crypto/sasl/AuthInfo.java, ! * gnu/javax/crypto/sasl/AuthInfoProviderFactory.java, ! * gnu/javax/crypto/sasl/ClientFactory.java, ! * gnu/javax/crypto/sasl/ClientMechanism.java, ! * gnu/javax/crypto/sasl/ConfidentialityException.java, ! * gnu/javax/crypto/sasl/IAuthInfoProvider.java, ! * gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java, ! * gnu/javax/crypto/sasl/IllegalMechanismStateException.java, ! * gnu/javax/crypto/sasl/InputBuffer.java, ! * gnu/javax/crypto/sasl/IntegrityException.java, ! * gnu/javax/crypto/sasl/NoSuchMechanismException.java, ! * gnu/javax/crypto/sasl/NoSuchUserException.java, ! * gnu/javax/crypto/sasl/OutputBuffer.java, ! * gnu/javax/crypto/sasl/SaslEncodingException.java, ! * gnu/javax/crypto/sasl/SaslInputStream.java, ! * gnu/javax/crypto/sasl/SaslOutputStream.java, ! * gnu/javax/crypto/sasl/SaslUtil.java, ! * gnu/javax/crypto/sasl/ServerFactory.java, ! * gnu/javax/crypto/sasl/ServerMechanism.java, ! * gnu/javax/crypto/sasl/UserAlreadyExistsException.java, ! * gnu/javax/crypto/sasl/anonymous/AnonymousClient.java, ! * gnu/javax/crypto/sasl/anonymous/AnonymousServer.java, ! * gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java, ! * gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java, ! * gnu/javax/crypto/sasl/crammd5/CramMD5Client.java, ! * gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java, ! * gnu/javax/crypto/sasl/crammd5/CramMD5Server.java, ! * gnu/javax/crypto/sasl/crammd5/CramMD5Util.java, ! * gnu/javax/crypto/sasl/crammd5/PasswordFile.java, ! * gnu/javax/crypto/sasl/plain/PasswordFile.java, ! * gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java, ! * gnu/javax/crypto/sasl/plain/PlainClient.java, ! * gnu/javax/crypto/sasl/plain/PlainRegistry.java, ! * gnu/javax/crypto/sasl/plain/PlainServer.java, ! * gnu/javax/crypto/sasl/srp/CALG.java, ! * gnu/javax/crypto/sasl/srp/ClientStore.java, ! * gnu/javax/crypto/sasl/srp/IALG.java, ! * gnu/javax/crypto/sasl/srp/KDF.java, ! * gnu/javax/crypto/sasl/srp/PasswordFile.java, ! * gnu/javax/crypto/sasl/srp/SRP.java, ! * gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java, ! * gnu/javax/crypto/sasl/srp/SRPClient.java, ! * gnu/javax/crypto/sasl/srp/SRPRegistry.java, ! * gnu/javax/crypto/sasl/srp/SRPServer.java, ! * gnu/javax/crypto/sasl/srp/SecurityContext.java, ! * gnu/javax/crypto/sasl/srp/ServerStore.java, ! * gnu/javax/crypto/sasl/srp/StoreEntry.java, ! * gnu/javax/imageio/IIOInputStream.java, ! * gnu/javax/imageio/bmp/BMPDecoder.java, ! * gnu/javax/imageio/bmp/BMPEncoder.java, ! * gnu/javax/imageio/bmp/BMPException.java, ! * gnu/javax/imageio/bmp/BMPFileHeader.java, ! * gnu/javax/imageio/bmp/BMPImageReader.java, ! * gnu/javax/imageio/bmp/BMPImageReaderSpi.java, ! * gnu/javax/imageio/bmp/BMPImageWriter.java, ! * gnu/javax/imageio/bmp/BMPImageWriterSpi.java, ! * gnu/javax/imageio/bmp/BMPInfoHeader.java, ! * gnu/javax/imageio/bmp/DecodeBF16.java, ! * gnu/javax/imageio/bmp/DecodeBF32.java, ! * gnu/javax/imageio/bmp/DecodeRGB1.java, ! * gnu/javax/imageio/bmp/DecodeRGB24.java, ! * gnu/javax/imageio/bmp/DecodeRGB4.java, ! * gnu/javax/imageio/bmp/DecodeRGB8.java, ! * gnu/javax/imageio/bmp/DecodeRLE4.java, ! * gnu/javax/imageio/bmp/DecodeRLE8.java, ! * gnu/javax/imageio/bmp/EncodeRGB1.java, ! * gnu/javax/imageio/bmp/EncodeRGB16.java, ! * gnu/javax/imageio/bmp/EncodeRGB24.java, ! * gnu/javax/imageio/bmp/EncodeRGB32.java, ! * gnu/javax/imageio/bmp/EncodeRGB4.java, ! * gnu/javax/imageio/bmp/EncodeRGB8.java, ! * gnu/javax/imageio/bmp/EncodeRLE4.java, ! * gnu/javax/imageio/bmp/EncodeRLE8.java, ! * gnu/javax/imageio/gif/GIFFile.java, ! * gnu/javax/imageio/gif/GIFImageReader.java, ! * gnu/javax/imageio/gif/GIFImageReaderSpi.java, ! * gnu/javax/imageio/jpeg/DCT.java, ! * gnu/javax/imageio/jpeg/JPEGComponent.java, ! * gnu/javax/imageio/jpeg/JPEGDecoder.java, ! * gnu/javax/imageio/jpeg/JPEGImageInputStream.java, ! * gnu/javax/imageio/jpeg/JPEGImageReader.java, ! * gnu/javax/imageio/jpeg/JPEGImageReaderSpi.java, ! * gnu/javax/imageio/jpeg/JPEGMarker.java, ! * gnu/javax/imageio/jpeg/ZigZag.java, ! * gnu/javax/imageio/png/PNGChunk.java, ! * gnu/javax/imageio/png/PNGData.java, ! * gnu/javax/imageio/png/PNGDecoder.java, ! * gnu/javax/imageio/png/PNGEncoder.java, ! * gnu/javax/imageio/png/PNGException.java, ! * gnu/javax/imageio/png/PNGFile.java, ! * gnu/javax/imageio/png/PNGFilter.java, ! * gnu/javax/imageio/png/PNGGamma.java, ! * gnu/javax/imageio/png/PNGHeader.java, ! * gnu/javax/imageio/png/PNGICCProfile.java, ! * gnu/javax/imageio/png/PNGImageReader.java, ! * gnu/javax/imageio/png/PNGPalette.java, ! * gnu/javax/imageio/png/PNGPhys.java, ! * gnu/javax/imageio/png/PNGTime.java, ! * gnu/javax/management/ListenerData.java, ! * gnu/javax/management/Server.java, ! * gnu/javax/management/Translator.java, ! * gnu/javax/naming/giop/ContextContinuation.java, ! * gnu/javax/naming/giop/CorbalocParser.java, ! * gnu/javax/naming/giop/GiopNamingEnumeration.java, ! * gnu/javax/naming/giop/GiopNamingServiceFactory.java, ! * gnu/javax/naming/giop/GiopNamingServiceURLContext.java, ! * gnu/javax/naming/giop/ListBindingsEnumeration.java, ! * gnu/javax/naming/giop/ListEnumeration.java, ! * gnu/javax/naming/ictxImpl/trans/GnuName.java, ! * gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java, ! * gnu/javax/naming/jndi/url/rmi/ContextContinuation.java, ! * gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java, ! * gnu/javax/naming/jndi/url/rmi/ListEnumeration.java, ! * gnu/javax/naming/jndi/url/rmi/RmiContinuation.java, ! * gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java, ! * gnu/javax/naming/jndi/url/rmi/rmiURLContext.java, ! * gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java, ! * gnu/javax/net/ssl/AbstractSessionContext.java, ! * gnu/javax/net/ssl/PreSharedKeyManager.java, ! * gnu/javax/net/ssl/PreSharedKeyManagerParameters.java, ! * gnu/javax/net/ssl/SSLCipherSuite.java, ! * gnu/javax/net/ssl/SSLRecordHandler.java, ! * gnu/javax/net/ssl/Session.java, ! * gnu/javax/net/ssl/SessionStoreException.java, ! * gnu/javax/net/ssl/provider/AbstractHandshake.java, ! * gnu/javax/net/ssl/provider/Alert.java, ! * gnu/javax/net/ssl/provider/AlertException.java, ! * gnu/javax/net/ssl/provider/Builder.java, ! * gnu/javax/net/ssl/provider/Certificate.java, ! * gnu/javax/net/ssl/provider/CertificateBuilder.java, ! * gnu/javax/net/ssl/provider/CertificateRequest.java, ! * gnu/javax/net/ssl/provider/CertificateRequestBuilder.java, ! * gnu/javax/net/ssl/provider/CertificateStatusRequest.java, ! * gnu/javax/net/ssl/provider/CertificateStatusType.java, ! * gnu/javax/net/ssl/provider/CertificateURL.java, ! * gnu/javax/net/ssl/provider/CertificateVerify.java, ! * gnu/javax/net/ssl/provider/CipherSuite.java, ! * gnu/javax/net/ssl/provider/CipherSuiteList.java, ! * gnu/javax/net/ssl/provider/ClientCertificateTypeList.java, ! * gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java, ! * gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java, ! * gnu/javax/net/ssl/provider/ClientHandshake.java, ! * gnu/javax/net/ssl/provider/ClientHello.java, ! * gnu/javax/net/ssl/provider/ClientHelloBuilder.java, ! * gnu/javax/net/ssl/provider/ClientHelloV2.java, ! * gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java, ! * gnu/javax/net/ssl/provider/ClientPSKParameters.java, ! * gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java, ! * gnu/javax/net/ssl/provider/CompressionMethod.java, ! * gnu/javax/net/ssl/provider/CompressionMethodList.java, ! * gnu/javax/net/ssl/provider/Constructed.java, ! * gnu/javax/net/ssl/provider/Debug.java, ! * gnu/javax/net/ssl/provider/DelegatedTask.java, ! * gnu/javax/net/ssl/provider/EmptyExchangeKeys.java, ! * gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java, ! * gnu/javax/net/ssl/provider/ExchangeKeys.java, ! * gnu/javax/net/ssl/provider/Extension.java, ! * gnu/javax/net/ssl/provider/ExtensionList.java, ! * gnu/javax/net/ssl/provider/Handshake.java, ! * gnu/javax/net/ssl/provider/InputSecurityParameters.java, ! * gnu/javax/net/ssl/provider/Jessie.java, ! * gnu/javax/net/ssl/provider/MaxFragmentLength.java, ! * gnu/javax/net/ssl/provider/OutputSecurityParameters.java, ! * gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java, ! * gnu/javax/net/ssl/provider/Random.java, ! * gnu/javax/net/ssl/provider/SSLContextImpl.java, ! * gnu/javax/net/ssl/provider/SSLEngineImpl.java, ! * gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java, ! * gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java, ! * gnu/javax/net/ssl/provider/SSLServerSocketImpl.java, ! * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java, ! * gnu/javax/net/ssl/provider/SSLSocketImpl.java, ! * gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java, ! * gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java, ! * gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java, ! * gnu/javax/net/ssl/provider/ServerDHParams.java, ! * gnu/javax/net/ssl/provider/ServerHandshake.java, ! * gnu/javax/net/ssl/provider/ServerHello.java, ! * gnu/javax/net/ssl/provider/ServerHelloBuilder.java, ! * gnu/javax/net/ssl/provider/ServerHelloDone.java, ! * gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java, ! * gnu/javax/net/ssl/provider/ServerNameList.java, ! * gnu/javax/net/ssl/provider/ServerPSKParameters.java, ! * gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java, ! * gnu/javax/net/ssl/provider/SessionImpl.java, ! * gnu/javax/net/ssl/provider/Signature.java, ! * gnu/javax/net/ssl/provider/SignatureAlgorithm.java, ! * gnu/javax/net/ssl/provider/SimpleSessionContext.java, ! * gnu/javax/net/ssl/provider/TruncatedHMAC.java, ! * gnu/javax/net/ssl/provider/TrustedAuthorities.java, ! * gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java, ! * gnu/javax/net/ssl/provider/Util.java, ! * gnu/javax/net/ssl/provider/X500PrincipalList.java, ! * gnu/javax/net/ssl/provider/X509KeyManagerFactory.java, ! * gnu/javax/net/ssl/provider/X509TrustManagerFactory.java, ! * gnu/javax/print/ipp/IppRequest.java, ! * gnu/javax/rmi/CORBA/CorbaInput.java, ! * gnu/javax/rmi/CORBA/CorbaOutput.java, ! * gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java, ! * gnu/javax/rmi/CORBA/DelegateFactory.java, ! * gnu/javax/rmi/CORBA/GetDelegateInstanceException.java, ! * gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java, ! * gnu/javax/rmi/CORBA/RmiUtilities.java, ! * gnu/javax/rmi/CORBA/StubDelegateImpl.java, ! * gnu/javax/rmi/CORBA/TieTargetRecord.java, ! * gnu/javax/rmi/CORBA/UtilDelegateImpl.java, ! * gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java, ! * gnu/javax/security/auth/callback/AWTCallbackHandler.java, ! * gnu/javax/security/auth/callback/AbstractCallbackHandler.java, ! * gnu/javax/security/auth/callback/CertificateCallback.java, ! * gnu/javax/security/auth/callback/ConsoleCallbackHandler.java, ! * gnu/javax/security/auth/callback/DefaultCallbackHandler.java, ! * gnu/javax/security/auth/callback/SwingCallbackHandler.java, ! * gnu/javax/security/auth/login/ConfigFileParser.java, ! * gnu/javax/security/auth/login/ConfigFileTokenizer.java, ! * gnu/javax/security/auth/login/GnuConfiguration.java, ! * gnu/javax/sound/AudioSecurityManager.java, ! * gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java, ! * gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java, ! * gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java, ! * gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.java, ! * gnu/javax/sound/midi/alsa/AlsaPortDevice.java, ! * gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java, ! * gnu/javax/sound/midi/dssi/DSSISynthesizer.java, ! * gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java, ! * gnu/javax/sound/midi/file/MidiDataInputStream.java, ! * gnu/javax/sound/midi/file/MidiDataOutputStream.java, ! * gnu/javax/sound/midi/file/MidiFileReader.java, ! * gnu/javax/sound/midi/file/MidiFileWriter.java, ! * gnu/javax/sound/sampled/AU/AUReader.java, ! * gnu/javax/sound/sampled/WAV/WAVReader.java, ! * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java, ! * gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java, ! * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java, ! * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java, ! * gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java, ! * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java, ! * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java, ! * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java, ! * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java, ! * gnu/javax/swing/plaf/gnu/GNULookAndFeel.java, ! * gnu/javax/swing/text/html/CharacterAttributeTranslator.java, ! * gnu/javax/swing/text/html/CombinedAttributes.java, ! * gnu/javax/swing/text/html/ImageViewIconFactory.java, ! * gnu/javax/swing/text/html/css/BorderStyle.java, ! * gnu/javax/swing/text/html/css/CSSParser.java, ! * gnu/javax/swing/text/html/css/CSSScanner.java, ! * gnu/javax/swing/text/html/css/Selector.java, ! * gnu/javax/swing/text/html/parser/GnuParserDelegator.java, ! * gnu/javax/swing/text/html/parser/HTML_401F.java, ! * gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java, ! * gnu/javax/swing/text/html/parser/htmlAttributeSet.java, ! * gnu/javax/swing/text/html/parser/htmlValidator.java, ! * gnu/javax/swing/text/html/parser/models/list.java, ! * gnu/javax/swing/text/html/parser/support/Parser.java, ! * gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java, ! * gnu/javax/swing/text/html/parser/support/textPreProcessor.java, ! * gnu/javax/swing/tree/GnuPath.java, ! * gnu/test/Fail.java, ! * gnu/test/Pass.java, ! * gnu/test/Test.java, ! * gnu/test/Unsupported.java, ! * gnu/xml/aelfred2/JAXPFactory.java, ! * gnu/xml/aelfred2/SAXDriver.java, ! * gnu/xml/aelfred2/XmlParser.java, ! * gnu/xml/aelfred2/XmlReader.java, ! * gnu/xml/dom/Consumer.java, ! * gnu/xml/dom/DTDAttributeTypeInfo.java, ! * gnu/xml/dom/DTDElementTypeInfo.java, ! * gnu/xml/dom/DomAttr.java, ! * gnu/xml/dom/DomCDATASection.java, ! * gnu/xml/dom/DomCharacterData.java, ! * gnu/xml/dom/DomComment.java, ! * gnu/xml/dom/DomDOMException.java, ! * gnu/xml/dom/DomDoctype.java, ! * gnu/xml/dom/DomDocument.java, ! * gnu/xml/dom/DomDocumentBuilder.java, ! * gnu/xml/dom/DomDocumentBuilderFactory.java, ! * gnu/xml/dom/DomDocumentConfiguration.java, ! * gnu/xml/dom/DomDocumentFragment.java, ! * gnu/xml/dom/DomElement.java, ! * gnu/xml/dom/DomEntity.java, ! * gnu/xml/dom/DomEntityReference.java, ! * gnu/xml/dom/DomEvent.java, ! * gnu/xml/dom/DomExtern.java, ! * gnu/xml/dom/DomImpl.java, ! * gnu/xml/dom/DomIterator.java, ! * gnu/xml/dom/DomNSResolverContext.java, ! * gnu/xml/dom/DomNamedNodeMap.java, ! * gnu/xml/dom/DomNode.java, ! * gnu/xml/dom/DomNodeIterator.java, ! * gnu/xml/dom/DomNotation.java, ! * gnu/xml/dom/DomNsNode.java, ! * gnu/xml/dom/DomProcessingInstruction.java, ! * gnu/xml/dom/DomText.java, ! * gnu/xml/dom/DomXPathExpression.java, ! * gnu/xml/dom/DomXPathNSResolver.java, ! * gnu/xml/dom/DomXPathResult.java, ! * gnu/xml/dom/ImplementationList.java, ! * gnu/xml/dom/ImplementationSource.java, ! * gnu/xml/dom/JAXPFactory.java, ! * gnu/xml/dom/html2/DomHTMLAnchorElement.java, ! * gnu/xml/dom/html2/DomHTMLAppletElement.java, ! * gnu/xml/dom/html2/DomHTMLAreaElement.java, ! * gnu/xml/dom/html2/DomHTMLBRElement.java, ! * gnu/xml/dom/html2/DomHTMLBaseElement.java, ! * gnu/xml/dom/html2/DomHTMLBaseFontElement.java, ! * gnu/xml/dom/html2/DomHTMLBodyElement.java, ! * gnu/xml/dom/html2/DomHTMLButtonElement.java, ! * gnu/xml/dom/html2/DomHTMLCollection.java, ! * gnu/xml/dom/html2/DomHTMLDListElement.java, ! * gnu/xml/dom/html2/DomHTMLDirectoryElement.java, ! * gnu/xml/dom/html2/DomHTMLDivElement.java, ! * gnu/xml/dom/html2/DomHTMLDocument.java, ! * gnu/xml/dom/html2/DomHTMLElement.java, ! * gnu/xml/dom/html2/DomHTMLEmbedElement.java, ! * gnu/xml/dom/html2/DomHTMLFieldSetElement.java, ! * gnu/xml/dom/html2/DomHTMLFontElement.java, ! * gnu/xml/dom/html2/DomHTMLFormElement.java, ! * gnu/xml/dom/html2/DomHTMLFrameElement.java, ! * gnu/xml/dom/html2/DomHTMLFrameSetElement.java, ! * gnu/xml/dom/html2/DomHTMLHRElement.java, ! * gnu/xml/dom/html2/DomHTMLHeadElement.java, ! * gnu/xml/dom/html2/DomHTMLHeadingElement.java, ! * gnu/xml/dom/html2/DomHTMLHtmlElement.java, ! * gnu/xml/dom/html2/DomHTMLIFrameElement.java, ! * gnu/xml/dom/html2/DomHTMLImageElement.java, ! * gnu/xml/dom/html2/DomHTMLImpl.java, ! * gnu/xml/dom/html2/DomHTMLInputElement.java, ! * gnu/xml/dom/html2/DomHTMLIsIndexElement.java, ! * gnu/xml/dom/html2/DomHTMLLIElement.java, ! * gnu/xml/dom/html2/DomHTMLLabelElement.java, ! * gnu/xml/dom/html2/DomHTMLLegendElement.java, ! * gnu/xml/dom/html2/DomHTMLLinkElement.java, ! * gnu/xml/dom/html2/DomHTMLMapElement.java, ! * gnu/xml/dom/html2/DomHTMLMenuElement.java, ! * gnu/xml/dom/html2/DomHTMLMetaElement.java, ! * gnu/xml/dom/html2/DomHTMLModElement.java, ! * gnu/xml/dom/html2/DomHTMLOListElement.java, ! * gnu/xml/dom/html2/DomHTMLObjectElement.java, ! * gnu/xml/dom/html2/DomHTMLOptGroupElement.java, ! * gnu/xml/dom/html2/DomHTMLOptionElement.java, ! * gnu/xml/dom/html2/DomHTMLParagraphElement.java, ! * gnu/xml/dom/html2/DomHTMLParamElement.java, ! * gnu/xml/dom/html2/DomHTMLParser.java, ! * gnu/xml/dom/html2/DomHTMLPreElement.java, ! * gnu/xml/dom/html2/DomHTMLQuoteElement.java, ! * gnu/xml/dom/html2/DomHTMLScriptElement.java, ! * gnu/xml/dom/html2/DomHTMLSelectElement.java, ! * gnu/xml/dom/html2/DomHTMLStyleElement.java, ! * gnu/xml/dom/html2/DomHTMLTableCaptionElement.java, ! * gnu/xml/dom/html2/DomHTMLTableCellElement.java, ! * gnu/xml/dom/html2/DomHTMLTableColElement.java, ! * gnu/xml/dom/html2/DomHTMLTableElement.java, ! * gnu/xml/dom/html2/DomHTMLTableRowElement.java, ! * gnu/xml/dom/html2/DomHTMLTableSectionElement.java, ! * gnu/xml/dom/html2/DomHTMLTextAreaElement.java, ! * gnu/xml/dom/html2/DomHTMLTitleElement.java, ! * gnu/xml/dom/html2/DomHTMLUListElement.java, ! * gnu/xml/dom/ls/DomLSException.java, ! * gnu/xml/dom/ls/DomLSInput.java, ! * gnu/xml/dom/ls/DomLSOutput.java, ! * gnu/xml/dom/ls/DomLSParser.java, ! * gnu/xml/dom/ls/DomLSSerializer.java, ! * gnu/xml/dom/ls/FilteredSAXEventSink.java, ! * gnu/xml/dom/ls/ReaderInputStream.java, ! * gnu/xml/dom/ls/SAXEventSink.java, ! * gnu/xml/dom/ls/WriterOutputStream.java, ! * gnu/xml/libxmlj/dom/GnomeAttr.java, ! * gnu/xml/libxmlj/dom/GnomeCDATASection.java, ! * gnu/xml/libxmlj/dom/GnomeCharacterData.java, ! * gnu/xml/libxmlj/dom/GnomeComment.java, ! * gnu/xml/libxmlj/dom/GnomeDOMException.java, ! * gnu/xml/libxmlj/dom/GnomeDOMStringList.java, ! * gnu/xml/libxmlj/dom/GnomeDocument.java, ! * gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java, ! * gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java, ! * gnu/xml/libxmlj/dom/GnomeDocumentFragment.java, ! * gnu/xml/libxmlj/dom/GnomeDocumentType.java, ! * gnu/xml/libxmlj/dom/GnomeElement.java, ! * gnu/xml/libxmlj/dom/GnomeEntity.java, ! * gnu/xml/libxmlj/dom/GnomeEntityReference.java, ! * gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java, ! * gnu/xml/libxmlj/dom/GnomeNode.java, ! * gnu/xml/libxmlj/dom/GnomeNodeList.java, ! * gnu/xml/libxmlj/dom/GnomeNotation.java, ! * gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java, ! * gnu/xml/libxmlj/dom/GnomeText.java, ! * gnu/xml/libxmlj/dom/GnomeTypeInfo.java, ! * gnu/xml/libxmlj/dom/GnomeXPathExpression.java, ! * gnu/xml/libxmlj/dom/GnomeXPathNSResolver.java, ! * gnu/xml/libxmlj/dom/GnomeXPathNodeList.java, ! * gnu/xml/libxmlj/dom/GnomeXPathResult.java, ! * gnu/xml/libxmlj/sax/GnomeLocator.java, ! * gnu/xml/libxmlj/sax/GnomeSAXParser.java, ! * gnu/xml/libxmlj/sax/GnomeSAXParserFactory.java, ! * gnu/xml/libxmlj/sax/GnomeXMLReader.java, ! * gnu/xml/libxmlj/sax/Namespaces.java, ! * gnu/xml/libxmlj/sax/StringArrayAttributes.java, ! * gnu/xml/libxmlj/sax/XMLName.java, ! * gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.java, ! * gnu/xml/libxmlj/transform/GnomeTransformer.java, ! * gnu/xml/libxmlj/transform/GnomeTransformerFactory.java, ! * gnu/xml/libxmlj/transform/URIResolverEntityResolver.java, ! * gnu/xml/libxmlj/util/EmptyNodeList.java, ! * gnu/xml/libxmlj/util/NamedInputStream.java, ! * gnu/xml/libxmlj/util/StandaloneDocumentType.java, ! * gnu/xml/libxmlj/util/StandaloneLocator.java, ! * gnu/xml/libxmlj/util/XMLJ.java, ! * gnu/xml/pipeline/CallFilter.java, ! * gnu/xml/pipeline/DomConsumer.java, ! * gnu/xml/pipeline/EventConsumer.java, ! * gnu/xml/pipeline/EventFilter.java, ! * gnu/xml/pipeline/LinkFilter.java, ! * gnu/xml/pipeline/NSFilter.java, ! * gnu/xml/pipeline/PipelineFactory.java, ! * gnu/xml/pipeline/TeeConsumer.java, ! * gnu/xml/pipeline/TextConsumer.java, ! * gnu/xml/pipeline/ValidationConsumer.java, ! * gnu/xml/pipeline/WellFormednessFilter.java, ! * gnu/xml/pipeline/XIncludeFilter.java, ! * gnu/xml/pipeline/XsltFilter.java, ! * gnu/xml/stream/AttributeImpl.java, ! * gnu/xml/stream/BufferedReader.java, ! * gnu/xml/stream/CRLFReader.java, ! * gnu/xml/stream/CharactersImpl.java, ! * gnu/xml/stream/CommentImpl.java, ! * gnu/xml/stream/DTDImpl.java, ! * gnu/xml/stream/EndDocumentImpl.java, ! * gnu/xml/stream/EndElementImpl.java, ! * gnu/xml/stream/EntityDeclarationImpl.java, ! * gnu/xml/stream/EntityReferenceImpl.java, ! * gnu/xml/stream/FilteredEventReader.java, ! * gnu/xml/stream/FilteredStreamReader.java, ! * gnu/xml/stream/NamespaceImpl.java, ! * gnu/xml/stream/NotationDeclarationImpl.java, ! * gnu/xml/stream/ProcessingInstructionImpl.java, ! * gnu/xml/stream/SAXParser.java, ! * gnu/xml/stream/SAXParserFactory.java, ! * gnu/xml/stream/StartDocumentImpl.java, ! * gnu/xml/stream/StartElementImpl.java, ! * gnu/xml/stream/UnicodeReader.java, ! * gnu/xml/stream/XIncludeFilter.java, ! * gnu/xml/stream/XMLEventAllocatorImpl.java, ! * gnu/xml/stream/XMLEventFactoryImpl.java, ! * gnu/xml/stream/XMLEventImpl.java, ! * gnu/xml/stream/XMLEventReaderImpl.java, ! * gnu/xml/stream/XMLEventWriterImpl.java, ! * gnu/xml/stream/XMLInputFactoryImpl.java, ! * gnu/xml/stream/XMLOutputFactoryImpl.java, ! * gnu/xml/stream/XMLParser.java, ! * gnu/xml/stream/XMLStreamWriterImpl.java, ! * gnu/xml/transform/AbstractNumberNode.java, ! * gnu/xml/transform/ApplyImportsNode.java, ! * gnu/xml/transform/ApplyTemplatesNode.java, ! * gnu/xml/transform/AttributeNode.java, ! * gnu/xml/transform/AttributeSet.java, ! * gnu/xml/transform/Bindings.java, ! * gnu/xml/transform/CallTemplateNode.java, ! * gnu/xml/transform/ChooseNode.java, ! * gnu/xml/transform/CommentNode.java, ! * gnu/xml/transform/CopyNode.java, ! * gnu/xml/transform/CopyOfNode.java, ! * gnu/xml/transform/CurrentFunction.java, ! * gnu/xml/transform/DOMSourceLocator.java, ! * gnu/xml/transform/DocumentFunction.java, ! * gnu/xml/transform/ElementAvailableFunction.java, ! * gnu/xml/transform/ElementNode.java, ! * gnu/xml/transform/ErrorListenerErrorHandler.java, ! * gnu/xml/transform/ForEachNode.java, ! * gnu/xml/transform/FormatNumberFunction.java, ! * gnu/xml/transform/FunctionAvailableFunction.java, ! * gnu/xml/transform/GenerateIdFunction.java, ! * gnu/xml/transform/IfNode.java, ! * gnu/xml/transform/Key.java, ! * gnu/xml/transform/KeyFunction.java, ! * gnu/xml/transform/LiteralNode.java, ! * gnu/xml/transform/MessageNode.java, ! * gnu/xml/transform/NamespaceProxy.java, ! * gnu/xml/transform/NodeNumberNode.java, ! * gnu/xml/transform/NumberNode.java, ! * gnu/xml/transform/OtherwiseNode.java, ! * gnu/xml/transform/ParameterNode.java, ! * gnu/xml/transform/ProcessingInstructionNode.java, ! * gnu/xml/transform/SAXSerializer.java, ! * gnu/xml/transform/SAXTemplatesHandler.java, ! * gnu/xml/transform/SAXTransformerHandler.java, ! * gnu/xml/transform/SortKey.java, ! * gnu/xml/transform/StreamSerializer.java, ! * gnu/xml/transform/StrippingInstruction.java, ! * gnu/xml/transform/Stylesheet.java, ! * gnu/xml/transform/SystemPropertyFunction.java, ! * gnu/xml/transform/Template.java, ! * gnu/xml/transform/TemplateNode.java, ! * gnu/xml/transform/TemplatesImpl.java, ! * gnu/xml/transform/TextNode.java, ! * gnu/xml/transform/TransformerFactoryImpl.java, ! * gnu/xml/transform/TransformerImpl.java, ! * gnu/xml/transform/TransformerOutputProperties.java, ! * gnu/xml/transform/URIResolverEntityResolver.java, ! * gnu/xml/transform/UnparsedEntityUriFunction.java, ! * gnu/xml/transform/ValueOfNode.java, ! * gnu/xml/transform/WhenNode.java, ! * gnu/xml/transform/WithParam.java, ! * gnu/xml/transform/XSLComparator.java, ! * gnu/xml/transform/XSLURIResolver.java, ! * gnu/xml/util/DoParse.java, ! * gnu/xml/util/DomParser.java, ! * gnu/xml/util/Resolver.java, ! * gnu/xml/util/SAXNullTransformerFactory.java, ! * gnu/xml/util/XCat.java, ! * gnu/xml/util/XHTMLWriter.java, ! * gnu/xml/util/XMLWriter.java, ! * gnu/xml/validation/datatype/Annotation.java, ! * gnu/xml/validation/datatype/AnySimpleType.java, ! * gnu/xml/validation/datatype/AnyType.java, ! * gnu/xml/validation/datatype/AnyURIType.java, ! * gnu/xml/validation/datatype/AtomicSimpleType.java, ! * gnu/xml/validation/datatype/Base64BinaryType.java, ! * gnu/xml/validation/datatype/BooleanType.java, ! * gnu/xml/validation/datatype/ByteType.java, ! * gnu/xml/validation/datatype/DateTimeType.java, ! * gnu/xml/validation/datatype/DateType.java, ! * gnu/xml/validation/datatype/DecimalType.java, ! * gnu/xml/validation/datatype/DoubleType.java, ! * gnu/xml/validation/datatype/DurationType.java, ! * gnu/xml/validation/datatype/EntitiesType.java, ! * gnu/xml/validation/datatype/EntityType.java, ! * gnu/xml/validation/datatype/EnumerationFacet.java, ! * gnu/xml/validation/datatype/Facet.java, ! * gnu/xml/validation/datatype/FloatType.java, ! * gnu/xml/validation/datatype/FractionDigitsFacet.java, ! * gnu/xml/validation/datatype/GDayType.java, ! * gnu/xml/validation/datatype/GMonthDayType.java, ! * gnu/xml/validation/datatype/GMonthType.java, ! * gnu/xml/validation/datatype/GYearMonthType.java, ! * gnu/xml/validation/datatype/GYearType.java, ! * gnu/xml/validation/datatype/HexBinaryType.java, ! * gnu/xml/validation/datatype/IDRefType.java, ! * gnu/xml/validation/datatype/IDRefsType.java, ! * gnu/xml/validation/datatype/IDType.java, ! * gnu/xml/validation/datatype/IntType.java, ! * gnu/xml/validation/datatype/IntegerType.java, ! * gnu/xml/validation/datatype/LanguageType.java, ! * gnu/xml/validation/datatype/LengthFacet.java, ! * gnu/xml/validation/datatype/ListSimpleType.java, ! * gnu/xml/validation/datatype/LongType.java, ! * gnu/xml/validation/datatype/MaxExclusiveFacet.java, ! * gnu/xml/validation/datatype/MaxInclusiveFacet.java, ! * gnu/xml/validation/datatype/MaxLengthFacet.java, ! * gnu/xml/validation/datatype/MinExclusiveFacet.java, ! * gnu/xml/validation/datatype/MinInclusiveFacet.java, ! * gnu/xml/validation/datatype/MinLengthFacet.java, ! * gnu/xml/validation/datatype/NCNameType.java, ! * gnu/xml/validation/datatype/NMTokenType.java, ! * gnu/xml/validation/datatype/NMTokensType.java, ! * gnu/xml/validation/datatype/NameType.java, ! * gnu/xml/validation/datatype/NegativeIntegerType.java, ! * gnu/xml/validation/datatype/NonNegativeIntegerType.java, ! * gnu/xml/validation/datatype/NonPositiveIntegerType.java, ! * gnu/xml/validation/datatype/NormalizedStringType.java, ! * gnu/xml/validation/datatype/NotationType.java, ! * gnu/xml/validation/datatype/PatternFacet.java, ! * gnu/xml/validation/datatype/PositiveIntegerType.java, ! * gnu/xml/validation/datatype/QNameType.java, ! * gnu/xml/validation/datatype/ShortType.java, ! * gnu/xml/validation/datatype/SimpleType.java, ! * gnu/xml/validation/datatype/StringType.java, ! * gnu/xml/validation/datatype/TimeType.java, ! * gnu/xml/validation/datatype/TokenType.java, ! * gnu/xml/validation/datatype/TotalDigitsFacet.java, ! * gnu/xml/validation/datatype/Type.java, ! * gnu/xml/validation/datatype/TypeBuilder.java, ! * gnu/xml/validation/datatype/TypeLibrary.java, ! * gnu/xml/validation/datatype/TypeLibraryFactory.java, ! * gnu/xml/validation/datatype/UnionSimpleType.java, ! * gnu/xml/validation/datatype/UnsignedByteType.java, ! * gnu/xml/validation/datatype/UnsignedIntType.java, ! * gnu/xml/validation/datatype/UnsignedLongType.java, ! * gnu/xml/validation/datatype/UnsignedShortType.java, ! * gnu/xml/validation/datatype/WhiteSpaceFacet.java, ! * gnu/xml/validation/relaxng/AnyNameNameClass.java, ! * gnu/xml/validation/relaxng/AttributePattern.java, ! * gnu/xml/validation/relaxng/ChoiceNameClass.java, ! * gnu/xml/validation/relaxng/ChoicePattern.java, ! * gnu/xml/validation/relaxng/DataPattern.java, ! * gnu/xml/validation/relaxng/Define.java, ! * gnu/xml/validation/relaxng/ElementPattern.java, ! * gnu/xml/validation/relaxng/EmptyPattern.java, ! * gnu/xml/validation/relaxng/FullSyntaxBuilder.java, ! * gnu/xml/validation/relaxng/Grammar.java, ! * gnu/xml/validation/relaxng/GrammarException.java, ! * gnu/xml/validation/relaxng/GrammarValidator.java, ! * gnu/xml/validation/relaxng/GroupPattern.java, ! * gnu/xml/validation/relaxng/InterleavePattern.java, ! * gnu/xml/validation/relaxng/ListPattern.java, ! * gnu/xml/validation/relaxng/NSNameNameClass.java, ! * gnu/xml/validation/relaxng/NameClass.java, ! * gnu/xml/validation/relaxng/NameNameClass.java, ! * gnu/xml/validation/relaxng/NotAllowedPattern.java, ! * gnu/xml/validation/relaxng/OneOrMorePattern.java, ! * gnu/xml/validation/relaxng/Param.java, ! * gnu/xml/validation/relaxng/Pattern.java, ! * gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java, ! * gnu/xml/validation/relaxng/RefPattern.java, ! * gnu/xml/validation/relaxng/TextPattern.java, ! * gnu/xml/validation/relaxng/ValuePattern.java, ! * gnu/xml/validation/xmlschema/AnyAttribute.java, ! * gnu/xml/validation/xmlschema/AttributeDeclaration.java, ! * gnu/xml/validation/xmlschema/AttributeUse.java, ! * gnu/xml/validation/xmlschema/ComplexType.java, ! * gnu/xml/validation/xmlschema/ElementDeclaration.java, ! * gnu/xml/validation/xmlschema/Particle.java, ! * gnu/xml/validation/xmlschema/ValidationException.java, ! * gnu/xml/validation/xmlschema/XMLSchema.java, ! * gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java, ! * gnu/xml/validation/xmlschema/XMLSchemaBuilder.java, ! * gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java, ! * gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java, ! * gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java, ! * gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java, ! * gnu/xml/validation/xmlschema/XMLSchemaValidator.java, ! * gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java, ! * gnu/xml/xpath/AndExpr.java, ! * gnu/xml/xpath/ArithmeticExpr.java, ! * gnu/xml/xpath/BooleanFunction.java, ! * gnu/xml/xpath/CeilingFunction.java, ! * gnu/xml/xpath/ConcatFunction.java, ! * gnu/xml/xpath/Constant.java, ! * gnu/xml/xpath/ContainsFunction.java, ! * gnu/xml/xpath/CountFunction.java, ! * gnu/xml/xpath/DocumentOrderComparator.java, ! * gnu/xml/xpath/EqualityExpr.java, ! * gnu/xml/xpath/Expr.java, ! * gnu/xml/xpath/FalseFunction.java, ! * gnu/xml/xpath/FloorFunction.java, ! * gnu/xml/xpath/Function.java, ! * gnu/xml/xpath/FunctionCall.java, ! * gnu/xml/xpath/IdFunction.java, ! * gnu/xml/xpath/LangFunction.java, ! * gnu/xml/xpath/LastFunction.java, ! * gnu/xml/xpath/LocalNameFunction.java, ! * gnu/xml/xpath/NameFunction.java, ! * gnu/xml/xpath/NameTest.java, ! * gnu/xml/xpath/NamespaceTest.java, ! * gnu/xml/xpath/NamespaceUriFunction.java, ! * gnu/xml/xpath/NegativeExpr.java, ! * gnu/xml/xpath/NodeTypeTest.java, ! * gnu/xml/xpath/NormalizeSpaceFunction.java, ! * gnu/xml/xpath/NotFunction.java, ! * gnu/xml/xpath/NumberFunction.java, ! * gnu/xml/xpath/OrExpr.java, ! * gnu/xml/xpath/ParenthesizedExpr.java, ! * gnu/xml/xpath/Path.java, ! * gnu/xml/xpath/Pattern.java, ! * gnu/xml/xpath/PositionFunction.java, ! * gnu/xml/xpath/Predicate.java, ! * gnu/xml/xpath/RelationalExpr.java, ! * gnu/xml/xpath/Root.java, ! * gnu/xml/xpath/RoundFunction.java, ! * gnu/xml/xpath/Selector.java, ! * gnu/xml/xpath/StartsWithFunction.java, ! * gnu/xml/xpath/Steps.java, ! * gnu/xml/xpath/StringFunction.java, ! * gnu/xml/xpath/StringLengthFunction.java, ! * gnu/xml/xpath/SubstringAfterFunction.java, ! * gnu/xml/xpath/SubstringBeforeFunction.java, ! * gnu/xml/xpath/SubstringFunction.java, ! * gnu/xml/xpath/SumFunction.java, ! * gnu/xml/xpath/Test.java, ! * gnu/xml/xpath/TranslateFunction.java, ! * gnu/xml/xpath/TrueFunction.java, ! * gnu/xml/xpath/UnionExpr.java, ! * gnu/xml/xpath/VariableReference.java, ! * gnu/xml/xpath/XPathFactoryImpl.java, ! * gnu/xml/xpath/XPathImpl.java, ! * gnu/xml/xpath/XPathParser.java, ! * gnu/xml/xpath/XPathTokenizer.java, ! * java/applet/Applet.java, ! * java/awt/AWTEvent.java, ! * java/awt/AWTEventMulticaster.java, ! * java/awt/AWTKeyStroke.java, ! * java/awt/AlphaComposite.java, ! * java/awt/BasicStroke.java, ! * java/awt/BorderLayout.java, ! * java/awt/BufferCapabilities.java, ! * java/awt/Button.java, ! * java/awt/Canvas.java, ! * java/awt/CardLayout.java, ! * java/awt/Checkbox.java, ! * java/awt/CheckboxGroup.java, ! * java/awt/CheckboxMenuItem.java, ! * java/awt/Choice.java, ! * java/awt/Color.java, ! * java/awt/ColorPaintContext.java, ! * java/awt/Component.java, ! * java/awt/Container.java, ! * java/awt/ContainerOrderFocusTraversalPolicy.java, ! * java/awt/Cursor.java, ! * java/awt/DefaultFocusTraversalPolicy.java, ! * java/awt/DefaultKeyboardFocusManager.java, ! * java/awt/Desktop.java, ! * java/awt/Dialog.java, ! * java/awt/DisplayMode.java, ! * java/awt/Event.java, ! * java/awt/EventDispatchThread.java, ! * java/awt/EventQueue.java, ! * java/awt/FileDialog.java, ! * java/awt/FlowLayout.java, ! * java/awt/FocusTraversalPolicy.java, ! * java/awt/Font.java, ! * java/awt/FontMetrics.java, ! * java/awt/Frame.java, ! * java/awt/GradientPaint.java, ! * java/awt/Graphics.java, ! * java/awt/Graphics2D.java, ! * java/awt/GraphicsConfiguration.java, ! * java/awt/GraphicsDevice.java, ! * java/awt/GridBagConstraints.java, ! * java/awt/GridBagLayout.java, ! * java/awt/GridLayout.java, ! * java/awt/Image.java, ! * java/awt/Insets.java, ! * java/awt/JobAttributes.java, ! * java/awt/KeyboardFocusManager.java, ! * java/awt/Label.java, ! * java/awt/LightweightDispatcher.java, ! * java/awt/List.java, ! * java/awt/MediaTracker.java, ! * java/awt/Menu.java, ! * java/awt/MenuBar.java, ! * java/awt/MenuComponent.java, ! * java/awt/MenuItem.java, ! * java/awt/MenuShortcut.java, ! * java/awt/MouseInfo.java, ! * java/awt/PageAttributes.java, ! * java/awt/Point.java, ! * java/awt/PointerInfo.java, ! * java/awt/Polygon.java, ! * java/awt/PopupMenu.java, ! * java/awt/Rectangle.java, ! * java/awt/RenderingHints.java, ! * java/awt/Robot.java, ! * java/awt/ScrollPane.java, ! * java/awt/ScrollPaneAdjustable.java, ! * java/awt/Scrollbar.java, ! * java/awt/Shape.java, ! * java/awt/SystemColor.java, ! * java/awt/TextArea.java, ! * java/awt/TextComponent.java, ! * java/awt/TextField.java, ! * java/awt/TexturePaint.java, ! * java/awt/Toolkit.java, ! * java/awt/Window.java, ! * java/awt/color/ICC_ColorSpace.java, ! * java/awt/color/ICC_Profile.java, ! * java/awt/color/ICC_ProfileGray.java, ! * java/awt/color/ICC_ProfileRGB.java, ! * java/awt/datatransfer/Clipboard.java, ! * java/awt/datatransfer/ClipboardOwner.java, ! * java/awt/datatransfer/DataFlavor.java, ! * java/awt/datatransfer/FlavorEvent.java, ! * java/awt/datatransfer/FlavorListener.java, ! * java/awt/datatransfer/MimeType.java, ! * java/awt/datatransfer/StringSelection.java, ! * java/awt/datatransfer/SystemFlavorMap.java, ! * java/awt/datatransfer/Transferable.java, ! * java/awt/datatransfer/UnsupportedFlavorException.java, ! * java/awt/dnd/Autoscroll.java, ! * java/awt/dnd/DnDEventMulticaster.java, ! * java/awt/dnd/DragGestureEvent.java, ! * java/awt/dnd/DragGestureRecognizer.java, ! * java/awt/dnd/DragSource.java, ! * java/awt/dnd/DragSourceContext.java, ! * java/awt/dnd/DragSourceDropEvent.java, ! * java/awt/dnd/DragSourceEvent.java, ! * java/awt/dnd/DropTarget.java, ! * java/awt/dnd/DropTargetContext.java, ! * java/awt/dnd/DropTargetDragEvent.java, ! * java/awt/dnd/DropTargetDropEvent.java, ! * java/awt/dnd/DropTargetEvent.java, ! * java/awt/dnd/MouseDragGestureRecognizer.java, ! * java/awt/dnd/peer/DropTargetContextPeer.java, ! * java/awt/event/AWTEventListener.java, ! * java/awt/event/ActionEvent.java, ! * java/awt/event/ComponentAdapter.java, ! * java/awt/event/ComponentEvent.java, ! * java/awt/event/InputEvent.java, ! * java/awt/event/InputMethodEvent.java, ! * java/awt/event/InvocationEvent.java, ! * java/awt/event/KeyEvent.java, ! * java/awt/event/MouseEvent.java, ! * java/awt/event/MouseListener.java, ! * java/awt/event/MouseWheelEvent.java, ! * java/awt/event/WindowEvent.java, ! * java/awt/font/FontRenderContext.java, ! * java/awt/font/GlyphJustificationInfo.java, ! * java/awt/font/GlyphMetrics.java, ! * java/awt/font/GlyphVector.java, ! * java/awt/font/GraphicAttribute.java, ! * java/awt/font/ImageGraphicAttribute.java, ! * java/awt/font/LineBreakMeasurer.java, ! * java/awt/font/LineMetrics.java, ! * java/awt/font/MultipleMaster.java, ! * java/awt/font/OpenType.java, ! * java/awt/font/ShapeGraphicAttribute.java, ! * java/awt/font/TextAttribute.java, ! * java/awt/font/TextHitInfo.java, ! * java/awt/font/TextLayout.java, ! * java/awt/font/TextMeasurer.java, ! * java/awt/font/TransformAttribute.java, ! * java/awt/geom/AffineTransform.java, ! * java/awt/geom/Arc2D.java, ! * java/awt/geom/Area.java, ! * java/awt/geom/CubicCurve2D.java, ! * java/awt/geom/Ellipse2D.java, ! * java/awt/geom/FlatteningPathIterator.java, ! * java/awt/geom/GeneralPath.java, ! * java/awt/geom/Line2D.java, ! * java/awt/geom/QuadCurve2D.java, ! * java/awt/geom/RectangularShape.java, ! * java/awt/geom/RoundRectangle2D.java, ! * java/awt/im/InputContext.java, ! * java/awt/im/spi/InputMethodDescriptor.java, ! * java/awt/image/AffineTransformOp.java, ! * java/awt/image/AreaAveragingScaleFilter.java, ! * java/awt/image/BandCombineOp.java, ! * java/awt/image/BandedSampleModel.java, ! * java/awt/image/BufferedImage.java, ! * java/awt/image/BufferedImageFilter.java, ! * java/awt/image/BufferedImageOp.java, ! * java/awt/image/ByteLookupTable.java, ! * java/awt/image/ColorConvertOp.java, ! * java/awt/image/ColorModel.java, ! * java/awt/image/ComponentColorModel.java, ! * java/awt/image/ComponentSampleModel.java, ! * java/awt/image/ConvolveOp.java, ! * java/awt/image/CropImageFilter.java, ! * java/awt/image/DataBuffer.java, ! * java/awt/image/DataBufferByte.java, ! * java/awt/image/DataBufferDouble.java, ! * java/awt/image/DataBufferFloat.java, ! * java/awt/image/DataBufferInt.java, ! * java/awt/image/DataBufferShort.java, ! * java/awt/image/DataBufferUShort.java, ! * java/awt/image/DirectColorModel.java, ! * java/awt/image/FilteredImageSource.java, ! * java/awt/image/ImageConsumer.java, ! * java/awt/image/ImageFilter.java, ! * java/awt/image/ImageObserver.java, ! * java/awt/image/ImageProducer.java, ! * java/awt/image/IndexColorModel.java, ! * java/awt/image/Kernel.java, ! * java/awt/image/LookupOp.java, ! * java/awt/image/LookupTable.java, ! * java/awt/image/MemoryImageSource.java, ! * java/awt/image/MultiPixelPackedSampleModel.java, ! * java/awt/image/PackedColorModel.java, ! * java/awt/image/PixelGrabber.java, ! * java/awt/image/PixelInterleavedSampleModel.java, ! * java/awt/image/RGBImageFilter.java, ! * java/awt/image/Raster.java, ! * java/awt/image/RasterOp.java, ! * java/awt/image/RenderedImage.java, ! * java/awt/image/ReplicateScaleFilter.java, ! * java/awt/image/RescaleOp.java, ! * java/awt/image/SampleModel.java, ! * java/awt/image/ShortLookupTable.java, ! * java/awt/image/SinglePixelPackedSampleModel.java, ! * java/awt/image/TileObserver.java, ! * java/awt/image/WritableRaster.java, ! * java/awt/image/WritableRenderedImage.java, ! * java/awt/image/renderable/ContextualRenderedImageFactory.java, ! * java/awt/image/renderable/ParameterBlock.java, ! * java/awt/image/renderable/RenderContext.java, ! * java/awt/image/renderable/RenderableImage.java, ! * java/awt/image/renderable/RenderableImageOp.java, ! * java/awt/image/renderable/RenderableImageProducer.java, ! * java/awt/image/renderable/RenderedImageFactory.java, ! * java/awt/peer/ButtonPeer.java, ! * java/awt/peer/CanvasPeer.java, ! * java/awt/peer/CheckboxMenuItemPeer.java, ! * java/awt/peer/CheckboxPeer.java, ! * java/awt/peer/ChoicePeer.java, ! * java/awt/peer/ComponentPeer.java, ! * java/awt/peer/ContainerPeer.java, ! * java/awt/peer/DesktopPeer.java, ! * java/awt/peer/DialogPeer.java, ! * java/awt/peer/FileDialogPeer.java, ! * java/awt/peer/FontPeer.java, ! * java/awt/peer/FramePeer.java, ! * java/awt/peer/LabelPeer.java, ! * java/awt/peer/LightweightPeer.java, ! * java/awt/peer/ListPeer.java, ! * java/awt/peer/MenuBarPeer.java, ! * java/awt/peer/MenuComponentPeer.java, ! * java/awt/peer/MenuItemPeer.java, ! * java/awt/peer/MenuPeer.java, ! * java/awt/peer/MouseInfoPeer.java, ! * java/awt/peer/PanelPeer.java, ! * java/awt/peer/PopupMenuPeer.java, ! * java/awt/peer/RobotPeer.java, ! * java/awt/peer/ScrollPanePeer.java, ! * java/awt/peer/ScrollbarPeer.java, ! * java/awt/peer/TextComponentPeer.java, ! * java/awt/peer/TextFieldPeer.java, ! * java/awt/peer/WindowPeer.java, ! * java/awt/print/Book.java, ! * java/awt/print/PageFormat.java, ! * java/awt/print/Pageable.java, ! * java/awt/print/Paper.java, ! * java/awt/print/PrinterGraphics.java, ! * java/awt/print/PrinterIOException.java, ! * java/awt/print/PrinterJob.java, ! * java/beans/AppletInitializer.java, ! * java/beans/BeanDescriptor.java, ! * java/beans/BeanInfo.java, ! * java/beans/Beans.java, ! * java/beans/Customizer.java, ! * java/beans/DefaultPersistenceDelegate.java, ! * java/beans/DesignMode.java, ! * java/beans/Encoder.java, ! * java/beans/EventHandler.java, ! * java/beans/EventSetDescriptor.java, ! * java/beans/Expression.java, ! * java/beans/FeatureDescriptor.java, ! * java/beans/IndexedPropertyChangeEvent.java, ! * java/beans/IndexedPropertyDescriptor.java, ! * java/beans/Introspector.java, ! * java/beans/MethodDescriptor.java, ! * java/beans/ParameterDescriptor.java, ! * java/beans/PersistenceDelegate.java, ! * java/beans/PropertyChangeSupport.java, ! * java/beans/PropertyDescriptor.java, ! * java/beans/PropertyEditor.java, ! * java/beans/PropertyEditorManager.java, ! * java/beans/SimpleBeanInfo.java, ! * java/beans/Statement.java, ! * java/beans/VetoableChangeSupport.java, ! * java/beans/Visibility.java, ! * java/beans/XMLDecoder.java, ! * java/beans/XMLEncoder.java, ! * java/beans/beancontext/BeanContext.java, ! * java/beans/beancontext/BeanContextChild.java, ! * java/beans/beancontext/BeanContextChildComponentProxy.java, ! * java/beans/beancontext/BeanContextChildSupport.java, ! * java/beans/beancontext/BeanContextContainerProxy.java, ! * java/beans/beancontext/BeanContextEvent.java, ! * java/beans/beancontext/BeanContextMembershipEvent.java, ! * java/beans/beancontext/BeanContextMembershipListener.java, ! * java/beans/beancontext/BeanContextProxy.java, ! * java/beans/beancontext/BeanContextServiceAvailableEvent.java, ! * java/beans/beancontext/BeanContextServiceProvider.java, ! * java/beans/beancontext/BeanContextServiceProviderBeanInfo.java, ! * java/beans/beancontext/BeanContextServiceRevokedEvent.java, ! * java/beans/beancontext/BeanContextServiceRevokedListener.java, ! * java/beans/beancontext/BeanContextServices.java, ! * java/beans/beancontext/BeanContextServicesListener.java, ! * java/beans/beancontext/BeanContextServicesSupport.java, ! * java/beans/beancontext/BeanContextSupport.java, ! * java/io/BufferedInputStream.java, ! * java/io/BufferedOutputStream.java, ! * java/io/BufferedReader.java, ! * java/io/BufferedWriter.java, ! * java/io/ByteArrayInputStream.java, ! * java/io/ByteArrayOutputStream.java, ! * java/io/CharArrayReader.java, ! * java/io/CharArrayWriter.java, ! * java/io/DataInput.java, ! * java/io/DataInputStream.java, ! * java/io/DataOutput.java, ! * java/io/DataOutputStream.java, ! * java/io/DeleteFileHelper.java, ! * java/io/EOFException.java, ! * java/io/Externalizable.java, ! * java/io/File.java, ! * java/io/FileDescriptor.java, ! * java/io/FileFilter.java, ! * java/io/FileInputStream.java, ! * java/io/FileOutputStream.java, ! * java/io/FilePermission.java, ! * java/io/FileReader.java, ! * java/io/FileWriter.java, ! * java/io/FilenameFilter.java, ! * java/io/FilterInputStream.java, ! * java/io/FilterOutputStream.java, ! * java/io/FilterReader.java, ! * java/io/FilterWriter.java, ! * java/io/InputStream.java, ! * java/io/InputStreamReader.java, ! * java/io/InvalidClassException.java, ! * java/io/LineNumberInputStream.java, ! * java/io/LineNumberReader.java, ! * java/io/ObjectInput.java, ! * java/io/ObjectInputStream.java, ! * java/io/ObjectInputValidation.java, ! * java/io/ObjectOutput.java, ! * java/io/ObjectOutputStream.java, ! * java/io/ObjectStreamClass.java, ! * java/io/ObjectStreamConstants.java, ! * java/io/ObjectStreamField.java, ! * java/io/OutputStream.java, ! * java/io/OutputStreamWriter.java, ! * java/io/PipedInputStream.java, ! * java/io/PipedOutputStream.java, ! * java/io/PipedReader.java, ! * java/io/PipedWriter.java, ! * java/io/PrintStream.java, ! * java/io/PrintWriter.java, ! * java/io/PushbackInputStream.java, ! * java/io/PushbackReader.java, ! * java/io/RandomAccessFile.java, ! * java/io/Reader.java, ! * java/io/SequenceInputStream.java, ! * java/io/Serializable.java, ! * java/io/SerializablePermission.java, ! * java/io/StreamTokenizer.java, ! * java/io/StringBufferInputStream.java, ! * java/io/StringReader.java, ! * java/io/StringWriter.java, ! * java/io/UnsupportedEncodingException.java, ! * java/io/Writer.java, ! * java/lang/AbstractStringBuffer.java, ! * java/lang/Boolean.java, ! * java/lang/Character.java, ! * java/lang/Class.java, ! * java/lang/ClassLoader.java, ! * java/lang/Comparable.java, ! * java/lang/Double.java, ! * java/lang/Enum.java, ! * java/lang/EnumConstantNotPresentException.java, ! * java/lang/Float.java, ! * java/lang/IllegalArgumentException.java, ! * java/lang/IllegalStateException.java, ! * java/lang/IndexOutOfBoundsException.java, ! * java/lang/Integer.java, ! * java/lang/Long.java, ! * java/lang/Math.java, ! * java/lang/NoClassDefFoundError.java, ! * java/lang/Object.java, ! * java/lang/Package.java, ! * java/lang/ProcessBuilder.java, ! * java/lang/Runtime.java, ! * java/lang/SecurityException.java, ! * java/lang/SecurityManager.java, ! * java/lang/StackTraceElement.java, ! * java/lang/StrictMath.java, ! * java/lang/String.java, ! * java/lang/StringBuffer.java, ! * java/lang/StringBuilder.java, ! * java/lang/System.java, ! * java/lang/Thread.java, ! * java/lang/ThreadLocal.java, ! * java/lang/Throwable.java, ! * java/lang/TypeNotPresentException.java, ! * java/lang/UnsupportedOperationException.java, ! * java/lang/annotation/Annotation.java, ! * java/lang/annotation/AnnotationTypeMismatchException.java, ! * java/lang/annotation/IncompleteAnnotationException.java, ! * java/lang/instrument/ClassFileTransformer.java, ! * java/lang/instrument/Instrumentation.java, ! * java/lang/management/ClassLoadingMXBean.java, ! * java/lang/management/CompilationMXBean.java, ! * java/lang/management/GarbageCollectorMXBean.java, ! * java/lang/management/ManagementFactory.java, ! * java/lang/management/ManagementPermission.java, ! * java/lang/management/MemoryMXBean.java, ! * java/lang/management/MemoryManagerMXBean.java, ! * java/lang/management/MemoryNotificationInfo.java, ! * java/lang/management/MemoryPoolMXBean.java, ! * java/lang/management/MemoryType.java, ! * java/lang/management/MemoryUsage.java, ! * java/lang/management/MonitorInfo.java, ! * java/lang/management/OperatingSystemMXBean.java, ! * java/lang/management/RuntimeMXBean.java, ! * java/lang/management/ThreadInfo.java, ! * java/lang/management/ThreadMXBean.java, ! * java/lang/ref/PhantomReference.java, ! * java/lang/ref/Reference.java, ! * java/lang/ref/ReferenceQueue.java, ! * java/lang/ref/SoftReference.java, ! * java/lang/ref/WeakReference.java, ! * java/lang/reflect/AccessibleObject.java, ! * java/lang/reflect/AnnotatedElement.java, ! * java/lang/reflect/Array.java, ! * java/lang/reflect/Constructor.java, ! * java/lang/reflect/Field.java, ! * java/lang/reflect/GenericArrayType.java, ! * java/lang/reflect/GenericDeclaration.java, ! * java/lang/reflect/InvocationHandler.java, ! * java/lang/reflect/MalformedParameterizedTypeException.java, ! * java/lang/reflect/Method.java, ! * java/lang/reflect/Modifier.java, ! * java/lang/reflect/Proxy.java, ! * java/lang/reflect/Type.java, ! * java/lang/reflect/TypeVariable.java, ! * java/lang/reflect/WildcardType.java, ! * java/math/BigDecimal.java, ! * java/math/BigInteger.java, ! * java/math/MathContext.java, ! * java/math/RoundingMode.java, ! * java/net/ContentHandler.java, ! * java/net/DatagramSocket.java, ! * java/net/DatagramSocketImpl.java, ! * java/net/HttpURLConnection.java, ! * java/net/Inet4Address.java, ! * java/net/Inet6Address.java, ! * java/net/InetAddress.java, ! * java/net/InetSocketAddress.java, ! * java/net/MimeTypeMapper.java, ! * java/net/MulticastSocket.java, ! * java/net/NetworkInterface.java, ! * java/net/Proxy.java, ! * java/net/ProxySelector.java, ! * java/net/ResolverCache.java, ! * java/net/ServerSocket.java, ! * java/net/Socket.java, ! * java/net/SocketPermission.java, ! * java/net/URI.java, ! * java/net/URL.java, ! * java/net/URLClassLoader.java, ! * java/net/URLConnection.java, ! * java/net/URLDecoder.java, ! * java/net/URLEncoder.java, ! * java/net/URLStreamHandler.java, ! * java/nio/Buffer.java, ! * java/nio/BufferOverflowException.java, ! * java/nio/BufferUnderflowException.java, ! * java/nio/ByteBuffer.java, ! * java/nio/ByteBufferHelper.java, ! * java/nio/ByteBufferImpl.java, ! * java/nio/ByteOrder.java, ! * java/nio/CharBuffer.java, ! * java/nio/CharBufferImpl.java, ! * java/nio/CharSequenceBuffer.java, ! * java/nio/CharViewBufferImpl.java, ! * java/nio/DirectByteBufferImpl.java, ! * java/nio/DoubleBuffer.java, ! * java/nio/DoubleBufferImpl.java, ! * java/nio/DoubleViewBufferImpl.java, ! * java/nio/FloatBuffer.java, ! * java/nio/FloatBufferImpl.java, ! * java/nio/FloatViewBufferImpl.java, ! * java/nio/IntBuffer.java, ! * java/nio/IntBufferImpl.java, ! * java/nio/IntViewBufferImpl.java, ! * java/nio/InvalidMarkException.java, ! * java/nio/LongBuffer.java, ! * java/nio/LongBufferImpl.java, ! * java/nio/LongViewBufferImpl.java, ! * java/nio/MappedByteBuffer.java, ! * java/nio/MappedByteBufferImpl.java, ! * java/nio/ReadOnlyBufferException.java, ! * java/nio/ShortBuffer.java, ! * java/nio/ShortBufferImpl.java, ! * java/nio/ShortViewBufferImpl.java, ! * java/nio/channels/FileChannel.java, ! * java/nio/channels/SocketChannel.java, ! * java/nio/channels/spi/AbstractInterruptibleChannel.java, ! * java/nio/channels/spi/AbstractSelectableChannel.java, ! * java/nio/channels/spi/AbstractSelectionKey.java, ! * java/nio/channels/spi/AbstractSelector.java, ! * java/nio/channels/spi/SelectorProvider.java, ! * java/nio/charset/CharacterCodingException.java, ! * java/nio/charset/Charset.java, ! * java/nio/charset/CharsetDecoder.java, ! * java/nio/charset/CharsetEncoder.java, ! * java/nio/charset/CoderMalfunctionError.java, ! * java/nio/charset/CoderResult.java, ! * java/nio/charset/CodingErrorAction.java, ! * java/nio/charset/IllegalCharsetNameException.java, ! * java/nio/charset/MalformedInputException.java, ! * java/nio/charset/UnmappableCharacterException.java, ! * java/nio/charset/UnsupportedCharsetException.java, ! * java/rmi/AccessException.java, ! * java/rmi/AlreadyBoundException.java, ! * java/rmi/MarshalledObject.java, ! * java/rmi/Naming.java, ! * java/rmi/NoSuchObjectException.java, ! * java/rmi/NotBoundException.java, ! * java/rmi/RMISecurityException.java, ! * java/rmi/RMISecurityManager.java, ! * java/rmi/Remote.java, ! * java/rmi/RemoteException.java, ! * java/rmi/StubNotFoundException.java, ! * java/rmi/UnknownHostException.java, ! * java/rmi/activation/Activatable.java, ! * java/rmi/activation/ActivationDesc.java, ! * java/rmi/activation/ActivationGroup.java, ! * java/rmi/activation/ActivationGroupDesc.java, ! * java/rmi/activation/ActivationGroupID.java, ! * java/rmi/activation/ActivationID.java, ! * java/rmi/activation/ActivationInstantiator.java, ! * java/rmi/activation/ActivationMonitor.java, ! * java/rmi/activation/ActivationSystem.java, ! * java/rmi/activation/Activator.java, ! * java/rmi/activation/UnknownGroupException.java, ! * java/rmi/dgc/DGC.java, ! * java/rmi/dgc/Lease.java, ! * java/rmi/dgc/VMID.java, ! * java/rmi/registry/LocateRegistry.java, ! * java/rmi/registry/Registry.java, ! * java/rmi/registry/RegistryHandler.java, ! * java/rmi/server/LoaderHandler.java, ! * java/rmi/server/LogStream.java, ! * java/rmi/server/ObjID.java, ! * java/rmi/server/Operation.java, ! * java/rmi/server/RMIClassLoader.java, ! * java/rmi/server/RMIClientSocketFactory.java, ! * java/rmi/server/RMIFailureHandler.java, ! * java/rmi/server/RMIServerSocketFactory.java, ! * java/rmi/server/RMISocketFactory.java, ! * java/rmi/server/RemoteCall.java, ! * java/rmi/server/RemoteObject.java, ! * java/rmi/server/RemoteObjectInvocationHandler.java, ! * java/rmi/server/RemoteRef.java, ! * java/rmi/server/RemoteServer.java, ! * java/rmi/server/RemoteStub.java, ! * java/rmi/server/ServerRef.java, ! * java/rmi/server/Skeleton.java, ! * java/rmi/server/UID.java, ! * java/rmi/server/UnicastRemoteObject.java, ! * java/rmi/server/Unreferenced.java, ! * java/security/AccessControlContext.java, ! * java/security/AccessController.java, ! * java/security/AlgorithmParameterGenerator.java, ! * java/security/AlgorithmParameterGeneratorSpi.java, ! * java/security/AlgorithmParameters.java, ! * java/security/AlgorithmParametersSpi.java, ! * java/security/CodeSource.java, ! * java/security/DigestInputStream.java, ! * java/security/DigestOutputStream.java, ! * java/security/GeneralSecurityException.java, ! * java/security/Identity.java, ! * java/security/IdentityScope.java, ! * java/security/KeyFactory.java, ! * java/security/KeyFactorySpi.java, ! * java/security/KeyPairGenerator.java, ! * java/security/KeyPairGeneratorSpi.java, ! * java/security/KeyStore.java, ! * java/security/KeyStoreSpi.java, ! * java/security/MessageDigest.java, ! * java/security/MessageDigestSpi.java, ! * java/security/Permission.java, ! * java/security/Permissions.java, ! * java/security/Policy.java, ! * java/security/ProtectionDomain.java, ! * java/security/Provider.java, ! * java/security/ProviderException.java, ! * java/security/SecureClassLoader.java, ! * java/security/SecureRandom.java, ! * java/security/SecureRandomSpi.java, ! * java/security/Security.java, ! * java/security/Signature.java, ! * java/security/SignatureSpi.java, ! * java/security/SignedObject.java, ! * java/security/Signer.java, ! * java/security/acl/Acl.java, ! * java/security/acl/AclEntry.java, ! * java/security/acl/Group.java, ! * java/security/acl/Owner.java, ! * java/security/cert/CRL.java, ! * java/security/cert/CRLSelector.java, ! * java/security/cert/CertPathBuilder.java, ! * java/security/cert/CertPathBuilderResult.java, ! * java/security/cert/CertPathValidator.java, ! * java/security/cert/CertPathValidatorResult.java, ! * java/security/cert/CertPathValidatorSpi.java, ! * java/security/cert/CertSelector.java, ! * java/security/cert/CertStore.java, ! * java/security/cert/CertStoreParameters.java, ! * java/security/cert/CertStoreSpi.java, ! * java/security/cert/Certificate.java, ! * java/security/cert/CertificateFactory.java, ! * java/security/cert/CertificateFactorySpi.java, ! * java/security/cert/CollectionCertStoreParameters.java, ! * java/security/cert/LDAPCertStoreParameters.java, ! * java/security/cert/PKIXBuilderParameters.java, ! * java/security/cert/PKIXCertPathBuilderResult.java, ! * java/security/cert/PKIXCertPathChecker.java, ! * java/security/cert/PKIXCertPathValidatorResult.java, ! * java/security/cert/PKIXParameters.java, ! * java/security/cert/PolicyNode.java, ! * java/security/cert/PolicyQualifierInfo.java, ! * java/security/cert/X509CRL.java, ! * java/security/cert/X509CRLEntry.java, ! * java/security/cert/X509CertSelector.java, ! * java/security/cert/X509Certificate.java, ! * java/security/cert/X509Extension.java, ! * java/security/spec/AlgorithmParameterSpec.java, ! * java/security/spec/DSAParameterSpec.java, ! * java/security/spec/DSAPrivateKeySpec.java, ! * java/security/spec/DSAPublicKeySpec.java, ! * java/security/spec/EncodedKeySpec.java, ! * java/security/spec/InvalidParameterSpecException.java, ! * java/security/spec/KeySpec.java, ! * java/security/spec/PKCS8EncodedKeySpec.java, ! * java/security/spec/PSSParameterSpec.java, ! * java/security/spec/RSAKeyGenParameterSpec.java, ! * java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java, ! * java/security/spec/RSAOtherPrimeInfo.java, ! * java/security/spec/RSAPrivateCrtKeySpec.java, ! * java/security/spec/RSAPrivateKeySpec.java, ! * java/security/spec/RSAPublicKeySpec.java, ! * java/security/spec/X509EncodedKeySpec.java, ! * java/sql/Array.java, ! * java/sql/BatchUpdateException.java, ! * java/sql/Blob.java, ! * java/sql/CallableStatement.java, ! * java/sql/Clob.java, ! * java/sql/Connection.java, ! * java/sql/DataTruncation.java, ! * java/sql/DatabaseMetaData.java, ! * java/sql/Date.java, ! * java/sql/Driver.java, ! * java/sql/DriverManager.java, ! * java/sql/DriverPropertyInfo.java, ! * java/sql/ParameterMetaData.java, ! * java/sql/PreparedStatement.java, ! * java/sql/Ref.java, ! * java/sql/ResultSet.java, ! * java/sql/ResultSetMetaData.java, ! * java/sql/SQLData.java, ! * java/sql/SQLException.java, ! * java/sql/SQLInput.java, ! * java/sql/SQLOutput.java, ! * java/sql/SQLPermission.java, ! * java/sql/SQLWarning.java, ! * java/sql/Savepoint.java, ! * java/sql/Statement.java, ! * java/sql/Struct.java, ! * java/sql/Time.java, ! * java/sql/Timestamp.java, ! * java/sql/Types.java, ! * java/text/Annotation.java, ! * java/text/AttributedCharacterIterator.java, ! * java/text/AttributedString.java, ! * java/text/AttributedStringIterator.java, ! * java/text/Bidi.java, ! * java/text/BreakIterator.java, ! * java/text/CharacterIterator.java, ! * java/text/ChoiceFormat.java, ! * java/text/CollationElementIterator.java, ! * java/text/CollationKey.java, ! * java/text/Collator.java, ! * java/text/DateFormat.java, ! * java/text/DateFormatSymbols.java, ! * java/text/DecimalFormat.java, ! * java/text/DecimalFormatSymbols.java, ! * java/text/FieldPosition.java, ! * java/text/Format.java, ! * java/text/MessageFormat.java, ! * java/text/NumberFormat.java, ! * java/text/ParsePosition.java, ! * java/text/RuleBasedCollator.java, ! * java/text/SimpleDateFormat.java, ! * java/text/StringCharacterIterator.java, ! * java/text/spi/DateFormatProvider.java, ! * java/text/spi/NumberFormatProvider.java, ! * java/util/AbstractCollection.java, ! * java/util/AbstractList.java, ! * java/util/AbstractMap.java, ! * java/util/AbstractSet.java, ! * java/util/ArrayList.java, ! * java/util/Arrays.java, ! * java/util/BitSet.java, ! * java/util/Calendar.java, ! * java/util/Collections.java, ! * java/util/Currency.java, ! * java/util/Date.java, ! * java/util/Dictionary.java, ! * java/util/DuplicateFormatFlagsException.java, ! * java/util/EnumMap.java, ! * java/util/EnumSet.java, ! * java/util/FormatFlagsConversionMismatchException.java, ! * java/util/Formattable.java, ! * java/util/FormattableFlags.java, ! * java/util/Formatter.java, ! * java/util/FormatterClosedException.java, ! * java/util/GregorianCalendar.java, ! * java/util/HashMap.java, ! * java/util/Hashtable.java, ! * java/util/IdentityHashMap.java, ! * java/util/IllegalFormatCodePointException.java, ! * java/util/IllegalFormatConversionException.java, ! * java/util/IllegalFormatException.java, ! * java/util/IllegalFormatFlagsException.java, ! * java/util/IllegalFormatPrecisionException.java, ! * java/util/IllegalFormatWidthException.java, ! * java/util/InputMismatchException.java, ! * java/util/LinkedHashMap.java, ! * java/util/LinkedHashSet.java, ! * java/util/LinkedList.java, ! * java/util/List.java, ! * java/util/Locale.java, ! * java/util/Map.java, ! * java/util/MissingFormatArgumentException.java, ! * java/util/MissingFormatWidthException.java, ! * java/util/PriorityQueue.java, ! * java/util/Properties.java, ! * java/util/PropertyPermission.java, ! * java/util/PropertyPermissionCollection.java, ! * java/util/Random.java, ! * java/util/ResourceBundle.java, ! * java/util/ServiceConfigurationError.java, ! * java/util/ServiceLoader.java, ! * java/util/SimpleTimeZone.java, ! * java/util/StringTokenizer.java, ! * java/util/TimeZone.java, ! * java/util/Timer.java, ! * java/util/TreeMap.java, ! * java/util/TreeSet.java, ! * java/util/UUID.java, ! * java/util/UnknownFormatConversionException.java, ! * java/util/UnknownFormatFlagsException.java, ! * java/util/Vector.java, ! * java/util/WeakHashMap.java, ! * java/util/concurrent/CopyOnWriteArrayList.java, ! * java/util/jar/Attributes.java, ! * java/util/jar/JarEntry.java, ! * java/util/jar/JarFile.java, ! * java/util/jar/JarInputStream.java, ! * java/util/jar/JarOutputStream.java, ! * java/util/jar/Manifest.java, ! * java/util/logging/ConsoleHandler.java, ! * java/util/logging/ErrorManager.java, ! * java/util/logging/FileHandler.java, ! * java/util/logging/Formatter.java, ! * java/util/logging/Handler.java, ! * java/util/logging/Level.java, ! * java/util/logging/LogManager.java, ! * java/util/logging/LogRecord.java, ! * java/util/logging/Logger.java, ! * java/util/logging/LoggingMXBean.java, ! * java/util/logging/LoggingPermission.java, ! * java/util/logging/MemoryHandler.java, ! * java/util/logging/SocketHandler.java, ! * java/util/logging/StreamHandler.java, ! * java/util/logging/XMLFormatter.java, ! * java/util/prefs/AbstractPreferences.java, ! * java/util/prefs/NodeChangeEvent.java, ! * java/util/prefs/NodeChangeListener.java, ! * java/util/prefs/PreferenceChangeEvent.java, ! * java/util/prefs/PreferenceChangeListener.java, ! * java/util/prefs/Preferences.java, ! * java/util/prefs/PreferencesFactory.java, ! * java/util/regex/MatchResult.java, ! * java/util/regex/Pattern.java, ! * java/util/regex/PatternSyntaxException.java, ! * java/util/spi/LocaleNameProvider.java, ! * java/util/spi/TimeZoneNameProvider.java, ! * java/util/zip/Adler32.java, ! * java/util/zip/CRC32.java, ! * java/util/zip/CheckedInputStream.java, ! * java/util/zip/CheckedOutputStream.java, ! * java/util/zip/Deflater.java, ! * java/util/zip/DeflaterEngine.java, ! * java/util/zip/DeflaterHuffman.java, ! * java/util/zip/DeflaterOutputStream.java, ! * java/util/zip/DeflaterPending.java, ! * java/util/zip/GZIPInputStream.java, ! * java/util/zip/GZIPOutputStream.java, ! * java/util/zip/Inflater.java, ! * java/util/zip/InflaterDynHeader.java, ! * java/util/zip/InflaterHuffmanTree.java, ! * java/util/zip/InflaterInputStream.java, ! * java/util/zip/OutputWindow.java, ! * java/util/zip/PendingBuffer.java, ! * java/util/zip/StreamManipulator.java, ! * java/util/zip/ZipConstants.java, ! * java/util/zip/ZipEntry.java, ! * java/util/zip/ZipFile.java, ! * java/util/zip/ZipInputStream.java, ! * java/util/zip/ZipOutputStream.java, ! * javax/accessibility/AccessibleExtendedText.java, ! * javax/accessibility/AccessibleRelation.java, ! * javax/accessibility/AccessibleRole.java, ! * javax/accessibility/AccessibleState.java, ! * javax/activation/ActivationDataFlavor.java, ! * javax/activation/CommandInfo.java, ! * javax/activation/CommandMap.java, ! * javax/activation/CommandObject.java, ! * javax/activation/DataContentHandler.java, ! * javax/activation/DataContentHandlerFactory.java, ! * javax/activation/DataHandler.java, ! * javax/activation/DataHandlerDataSource.java, ! * javax/activation/DataSource.java, ! * javax/activation/DataSourceDataContentHandler.java, ! * javax/activation/FileDataSource.java, ! * javax/activation/FileTypeMap.java, ! * javax/activation/MailcapCommandMap.java, ! * javax/activation/MimeType.java, ! * javax/activation/MimeTypeParameterList.java, ! * javax/activation/MimeTypeParseException.java, ! * javax/activation/MimetypesFileTypeMap.java, ! * javax/activation/ObjectDataContentHandler.java, ! * javax/activation/URLDataSource.java, ! * javax/activation/UnsupportedDataTypeException.java, ! * javax/crypto/Cipher.java, ! * javax/crypto/CipherOutputStream.java, ! * javax/crypto/ExemptionMechanism.java, ! * javax/crypto/KeyAgreement.java, ! * javax/crypto/KeyGenerator.java, ! * javax/crypto/Mac.java, ! * javax/crypto/MacSpi.java, ! * javax/crypto/SecretKeyFactory.java, ! * javax/crypto/spec/PBEKeySpec.java, ! * javax/imageio/IIOImage.java, ! * javax/imageio/IIOParam.java, ! * javax/imageio/IIOParamController.java, ! * javax/imageio/ImageIO.java, ! * javax/imageio/ImageReadParam.java, ! * javax/imageio/ImageReader.java, ! * javax/imageio/ImageTranscoder.java, ! * javax/imageio/ImageTypeSpecifier.java, ! * javax/imageio/ImageWriteParam.java, ! * javax/imageio/ImageWriter.java, ! * javax/imageio/event/IIOReadProgressListener.java, ! * javax/imageio/event/IIOReadUpdateListener.java, ! * javax/imageio/event/IIOWriteProgressListener.java, ! * javax/imageio/metadata/IIOInvalidTreeException.java, ! * javax/imageio/metadata/IIOMetadata.java, ! * javax/imageio/metadata/IIOMetadataFormatImpl.java, ! * javax/imageio/metadata/IIOMetadataNode.java, ! * javax/imageio/plugins/bmp/BMPImageWriteParam.java, ! * javax/imageio/plugins/jpeg/JPEGHuffmanTable.java, ! * javax/imageio/spi/IIORegistry.java, ! * javax/imageio/spi/ImageReaderSpi.java, ! * javax/imageio/spi/ImageWriterSpi.java, ! * javax/imageio/spi/RegisterableService.java, ! * javax/imageio/spi/ServiceRegistry.java, ! * javax/imageio/stream/FileCacheImageInputStream.java, ! * javax/imageio/stream/FileCacheImageOutputStream.java, ! * javax/imageio/stream/FileImageInputStream.java, ! * javax/imageio/stream/FileImageOutputStream.java, ! * javax/imageio/stream/ImageInputStream.java, ! * javax/imageio/stream/ImageInputStreamImpl.java, ! * javax/imageio/stream/ImageOutputStreamImpl.java, ! * javax/imageio/stream/MemoryCacheImageInputStream.java, ! * javax/imageio/stream/MemoryCacheImageOutputStream.java, ! * javax/management/Attribute.java, ! * javax/management/AttributeChangeNotification.java, ! * javax/management/AttributeChangeNotificationFilter.java, ! * javax/management/AttributeList.java, ! * javax/management/AttributeNotFoundException.java, ! * javax/management/AttributeValueExp.java, ! * javax/management/BadAttributeValueExpException.java, ! * javax/management/BadBinaryOpValueExpException.java, ! * javax/management/BadStringOperationException.java, ! * javax/management/DefaultLoaderRepository.java, ! * javax/management/Descriptor.java, ! * javax/management/DynamicMBean.java, ! * javax/management/InstanceAlreadyExistsException.java, ! * javax/management/InstanceNotFoundException.java, ! * javax/management/IntrospectionException.java, ! * javax/management/InvalidApplicationException.java, ! * javax/management/InvalidAttributeValueException.java, ! * javax/management/JMException.java, ! * javax/management/JMRuntimeException.java, ! * javax/management/JMX.java, ! * javax/management/ListenerNotFoundException.java, ! * javax/management/MBeanAttributeInfo.java, ! * javax/management/MBeanConstructorInfo.java, ! * javax/management/MBeanException.java, ! * javax/management/MBeanFeatureInfo.java, ! * javax/management/MBeanInfo.java, ! * javax/management/MBeanNotificationInfo.java, ! * javax/management/MBeanOperationInfo.java, ! * javax/management/MBeanParameterInfo.java, ! * javax/management/MBeanPermission.java, ! * javax/management/MBeanRegistrationException.java, ! * javax/management/MBeanServer.java, ! * javax/management/MBeanServerBuilder.java, ! * javax/management/MBeanServerConnection.java, ! * javax/management/MBeanServerDelegate.java, ! * javax/management/MBeanServerFactory.java, ! * javax/management/MBeanServerInvocationHandler.java, ! * javax/management/MBeanServerNotification.java, ! * javax/management/MBeanServerPermission.java, ! * javax/management/MBeanTrustPermission.java, ! * javax/management/MalformedObjectNameException.java, ! * javax/management/NotCompliantMBeanException.java, ! * javax/management/Notification.java, ! * javax/management/NotificationBroadcaster.java, ! * javax/management/NotificationBroadcasterSupport.java, ! * javax/management/NotificationEmitter.java, ! * javax/management/NotificationFilter.java, ! * javax/management/NotificationFilterSupport.java, ! * javax/management/NotificationListener.java, ! * javax/management/ObjectInstance.java, ! * javax/management/ObjectName.java, ! * javax/management/OperationsException.java, ! * javax/management/PersistentMBean.java, ! * javax/management/Query.java, ! * javax/management/QueryEval.java, ! * javax/management/QueryExp.java, ! * javax/management/ReflectionException.java, ! * javax/management/RuntimeErrorException.java, ! * javax/management/RuntimeMBeanException.java, ! * javax/management/RuntimeOperationsException.java, ! * javax/management/ServiceNotFoundException.java, ! * javax/management/StandardMBean.java, ! * javax/management/StringValueExp.java, ! * javax/management/ValueExp.java, ! * javax/management/loading/ClassLoaderRepository.java, ! * javax/management/openmbean/ArrayType.java, ! * javax/management/openmbean/CompositeData.java, ! * javax/management/openmbean/CompositeDataInvocationHandler.java, ! * javax/management/openmbean/CompositeDataSupport.java, ! * javax/management/openmbean/CompositeType.java, ! * javax/management/openmbean/InvalidKeyException.java, ! * javax/management/openmbean/InvalidOpenTypeException.java, ! * javax/management/openmbean/KeyAlreadyExistsException.java, ! * javax/management/openmbean/OpenDataException.java, ! * javax/management/openmbean/OpenMBeanAttributeInfo.java, ! * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java, ! * javax/management/openmbean/OpenMBeanConstructorInfo.java, ! * javax/management/openmbean/OpenMBeanConstructorInfoSupport.java, ! * javax/management/openmbean/OpenMBeanInfo.java, ! * javax/management/openmbean/OpenMBeanInfoSupport.java, ! * javax/management/openmbean/OpenMBeanOperationInfo.java, ! * javax/management/openmbean/OpenMBeanOperationInfoSupport.java, ! * javax/management/openmbean/OpenMBeanParameterInfo.java, ! * javax/management/openmbean/OpenMBeanParameterInfoSupport.java, ! * javax/management/openmbean/OpenType.java, ! * javax/management/openmbean/SimpleType.java, ! * javax/management/openmbean/TabularData.java, ! * javax/management/openmbean/TabularDataSupport.java, ! * javax/management/openmbean/TabularType.java, ! * javax/management/remote/NotificationResult.java, ! * javax/management/remote/TargetedNotification.java, ! * javax/management/remote/rmi/RMIConnection.java, ! * javax/naming/AuthenticationException.java, ! * javax/naming/AuthenticationNotSupportedException.java, ! * javax/naming/BinaryRefAddr.java, ! * javax/naming/Binding.java, ! * javax/naming/CannotProceedException.java, ! * javax/naming/CommunicationException.java, ! * javax/naming/CompositeName.java, ! * javax/naming/CompoundName.java, ! * javax/naming/ConfigurationException.java, ! * javax/naming/Context.java, ! * javax/naming/ContextNotEmptyException.java, ! * javax/naming/InitialContext.java, ! * javax/naming/InsufficientResourcesException.java, ! * javax/naming/InterruptedNamingException.java, ! * javax/naming/InvalidNameException.java, ! * javax/naming/LimitExceededException.java, ! * javax/naming/LinkException.java, ! * javax/naming/LinkLoopException.java, ! * javax/naming/MalformedLinkException.java, ! * javax/naming/Name.java, ! * javax/naming/NameAlreadyBoundException.java, ! * javax/naming/NameClassPair.java, ! * javax/naming/NameNotFoundException.java, ! * javax/naming/NameParser.java, ! * javax/naming/NamingEnumeration.java, ! * javax/naming/NamingException.java, ! * javax/naming/NamingSecurityException.java, ! * javax/naming/NoInitialContextException.java, ! * javax/naming/NoPermissionException.java, ! * javax/naming/NotContextException.java, ! * javax/naming/PartialResultException.java, ! * javax/naming/RefAddr.java, ! * javax/naming/Reference.java, ! * javax/naming/Referenceable.java, ! * javax/naming/ReferralException.java, ! * javax/naming/ServiceUnavailableException.java, ! * javax/naming/SizeLimitExceededException.java, ! * javax/naming/StringRefAddr.java, ! * javax/naming/TimeLimitExceededException.java, ! * javax/naming/directory/AttributeInUseException.java, ! * javax/naming/directory/Attributes.java, ! * javax/naming/directory/BasicAttribute.java, ! * javax/naming/directory/BasicAttributes.java, ! * javax/naming/directory/InitialDirContext.java, ! * javax/naming/directory/ModificationItem.java, ! * javax/naming/directory/SearchControls.java, ! * javax/naming/directory/SearchResult.java, ! * javax/naming/event/EventContext.java, ! * javax/naming/event/NamespaceChangeListener.java, ! * javax/naming/event/NamingEvent.java, ! * javax/naming/event/NamingExceptionEvent.java, ! * javax/naming/event/NamingListener.java, ! * javax/naming/event/ObjectChangeListener.java, ! * javax/naming/ldap/Control.java, ! * javax/naming/ldap/ControlFactory.java, ! * javax/naming/ldap/ExtendedRequest.java, ! * javax/naming/ldap/ExtendedResponse.java, ! * javax/naming/ldap/HasControls.java, ! * javax/naming/ldap/InitialLdapContext.java, ! * javax/naming/ldap/LdapContext.java, ! * javax/naming/ldap/LdapReferralException.java, ! * javax/naming/ldap/StartTlsRequest.java, ! * javax/naming/ldap/UnsolicitedNotification.java, ! * javax/naming/ldap/UnsolicitedNotificationEvent.java, ! * javax/naming/ldap/UnsolicitedNotificationListener.java, ! * javax/naming/spi/DirObjectFactory.java, ! * javax/naming/spi/DirStateFactory.java, ! * javax/naming/spi/DirectoryManager.java, ! * javax/naming/spi/InitialContextFactory.java, ! * javax/naming/spi/InitialContextFactoryBuilder.java, ! * javax/naming/spi/NamingManager.java, ! * javax/naming/spi/ObjectFactory.java, ! * javax/naming/spi/ObjectFactoryBuilder.java, ! * javax/naming/spi/ResolveResult.java, ! * javax/naming/spi/Resolver.java, ! * javax/naming/spi/StateFactory.java, ! * javax/net/ssl/CertPathTrustManagerParameters.java, ! * javax/net/ssl/KeyManagerFactory.java, ! * javax/net/ssl/KeyStoreBuilderParameters.java, ! * javax/net/ssl/SSLContext.java, ! * javax/net/ssl/SSLEngine.java, ! * javax/net/ssl/SSLEngineResult.java, ! * javax/net/ssl/SSLException.java, ! * javax/net/ssl/TrustManagerFactory.java, ! * javax/net/ssl/X509ExtendedKeyManager.java, ! * javax/print/AttributeException.java, ! * javax/print/CancelablePrintJob.java, ! * javax/print/Doc.java, ! * javax/print/DocFlavor.java, ! * javax/print/DocPrintJob.java, ! * javax/print/FlavorException.java, ! * javax/print/MultiDoc.java, ! * javax/print/MultiDocPrintJob.java, ! * javax/print/MultiDocPrintService.java, ! * javax/print/PrintException.java, ! * javax/print/PrintService.java, ! * javax/print/PrintServiceLookup.java, ! * javax/print/ServiceUI.java, ! * javax/print/ServiceUIFactory.java, ! * javax/print/SimpleDoc.java, ! * javax/print/StreamPrintService.java, ! * javax/print/StreamPrintServiceFactory.java, ! * javax/print/URIException.java, ! * javax/print/attribute/Attribute.java, ! * javax/print/attribute/AttributeSet.java, ! * javax/print/attribute/AttributeSetUtilities.java, ! * javax/print/attribute/DateTimeSyntax.java, ! * javax/print/attribute/DocAttribute.java, ! * javax/print/attribute/DocAttributeSet.java, ! * javax/print/attribute/EnumSyntax.java, ! * javax/print/attribute/HashAttributeSet.java, ! * javax/print/attribute/HashDocAttributeSet.java, ! * javax/print/attribute/HashPrintJobAttributeSet.java, ! * javax/print/attribute/HashPrintRequestAttributeSet.java, ! * javax/print/attribute/HashPrintServiceAttributeSet.java, ! * javax/print/attribute/IntegerSyntax.java, ! * javax/print/attribute/PrintJobAttribute.java, ! * javax/print/attribute/PrintJobAttributeSet.java, ! * javax/print/attribute/PrintRequestAttribute.java, ! * javax/print/attribute/PrintRequestAttributeSet.java, ! * javax/print/attribute/PrintServiceAttribute.java, ! * javax/print/attribute/PrintServiceAttributeSet.java, ! * javax/print/attribute/ResolutionSyntax.java, ! * javax/print/attribute/SetOfIntegerSyntax.java, ! * javax/print/attribute/Size2DSyntax.java, ! * javax/print/attribute/SupportedValuesAttribute.java, ! * javax/print/attribute/TextSyntax.java, ! * javax/print/attribute/URISyntax.java, ! * javax/print/attribute/UnmodifiableSetException.java, ! * javax/print/attribute/standard/Chromaticity.java, ! * javax/print/attribute/standard/ColorSupported.java, ! * javax/print/attribute/standard/Compression.java, ! * javax/print/attribute/standard/Copies.java, ! * javax/print/attribute/standard/CopiesSupported.java, ! * javax/print/attribute/standard/DateTimeAtCompleted.java, ! * javax/print/attribute/standard/DateTimeAtCreation.java, ! * javax/print/attribute/standard/DateTimeAtProcessing.java, ! * javax/print/attribute/standard/Destination.java, ! * javax/print/attribute/standard/DocumentName.java, ! * javax/print/attribute/standard/Fidelity.java, ! * javax/print/attribute/standard/Finishings.java, ! * javax/print/attribute/standard/JobHoldUntil.java, ! * javax/print/attribute/standard/JobImpressions.java, ! * javax/print/attribute/standard/JobImpressionsCompleted.java, ! * javax/print/attribute/standard/JobImpressionsSupported.java, ! * javax/print/attribute/standard/JobKOctets.java, ! * javax/print/attribute/standard/JobKOctetsProcessed.java, ! * javax/print/attribute/standard/JobKOctetsSupported.java, ! * javax/print/attribute/standard/JobMediaSheets.java, ! * javax/print/attribute/standard/JobMediaSheetsCompleted.java, ! * javax/print/attribute/standard/JobMediaSheetsSupported.java, ! * javax/print/attribute/standard/JobMessageFromOperator.java, ! * javax/print/attribute/standard/JobName.java, ! * javax/print/attribute/standard/JobOriginatingUserName.java, ! * javax/print/attribute/standard/JobPriority.java, ! * javax/print/attribute/standard/JobPrioritySupported.java, ! * javax/print/attribute/standard/JobSheets.java, ! * javax/print/attribute/standard/JobState.java, ! * javax/print/attribute/standard/JobStateReason.java, ! * javax/print/attribute/standard/JobStateReasons.java, ! * javax/print/attribute/standard/Media.java, ! * javax/print/attribute/standard/MediaName.java, ! * javax/print/attribute/standard/MediaPrintableArea.java, ! * javax/print/attribute/standard/MediaSize.java, ! * javax/print/attribute/standard/MediaSizeName.java, ! * javax/print/attribute/standard/MediaTray.java, ! * javax/print/attribute/standard/MultipleDocumentHandling.java, ! * javax/print/attribute/standard/NumberOfDocuments.java, ! * javax/print/attribute/standard/NumberOfInterveningJobs.java, ! * javax/print/attribute/standard/NumberUp.java, ! * javax/print/attribute/standard/NumberUpSupported.java, ! * javax/print/attribute/standard/OrientationRequested.java, ! * javax/print/attribute/standard/OutputDeviceAssigned.java, ! * javax/print/attribute/standard/PDLOverrideSupported.java, ! * javax/print/attribute/standard/PageRanges.java, ! * javax/print/attribute/standard/PagesPerMinute.java, ! * javax/print/attribute/standard/PagesPerMinuteColor.java, ! * javax/print/attribute/standard/PresentationDirection.java, ! * javax/print/attribute/standard/PrintQuality.java, ! * javax/print/attribute/standard/PrinterInfo.java, ! * javax/print/attribute/standard/PrinterIsAcceptingJobs.java, ! * javax/print/attribute/standard/PrinterLocation.java, ! * javax/print/attribute/standard/PrinterMakeAndModel.java, ! * javax/print/attribute/standard/PrinterMessageFromOperator.java, ! * javax/print/attribute/standard/PrinterMoreInfo.java, ! * javax/print/attribute/standard/PrinterMoreInfoManufacturer.java, ! * javax/print/attribute/standard/PrinterName.java, ! * javax/print/attribute/standard/PrinterResolution.java, ! * javax/print/attribute/standard/PrinterState.java, ! * javax/print/attribute/standard/PrinterStateReason.java, ! * javax/print/attribute/standard/PrinterStateReasons.java, ! * javax/print/attribute/standard/PrinterURI.java, ! * javax/print/attribute/standard/QueuedJobCount.java, ! * javax/print/attribute/standard/ReferenceUriSchemesSupported.java, ! * javax/print/attribute/standard/RequestingUserName.java, ! * javax/print/attribute/standard/Severity.java, ! * javax/print/attribute/standard/SheetCollate.java, ! * javax/print/attribute/standard/Sides.java, ! * javax/print/event/PrintEvent.java, ! * javax/print/event/PrintJobAdapter.java, ! * javax/print/event/PrintJobAttributeEvent.java, ! * javax/print/event/PrintJobAttributeListener.java, ! * javax/print/event/PrintJobEvent.java, ! * javax/print/event/PrintJobListener.java, ! * javax/print/event/PrintServiceAttributeEvent.java, ! * javax/print/event/PrintServiceAttributeListener.java, ! * javax/rmi/CORBA/ClassDesc.java, ! * javax/rmi/CORBA/PortableRemoteObjectDelegate.java, ! * javax/rmi/CORBA/Stub.java, ! * javax/rmi/CORBA/StubDelegate.java, ! * javax/rmi/CORBA/Tie.java, ! * javax/rmi/CORBA/Util.java, ! * javax/rmi/CORBA/UtilDelegate.java, ! * javax/rmi/CORBA/ValueHandler.java, ! * javax/rmi/CORBA/ValueHandlerMultiFormat.java, ! * javax/rmi/PortableRemoteObject.java, ! * javax/rmi/ssl/SslRMIClientSocketFactory.java, ! * javax/rmi/ssl/SslRMIServerSocketFactory.java, ! * javax/security/auth/Subject.java, ! * javax/security/auth/callback/ChoiceCallback.java, ! * javax/security/auth/callback/ConfirmationCallback.java, ! * javax/security/auth/callback/NameCallback.java, ! * javax/security/auth/callback/PasswordCallback.java, ! * javax/security/auth/callback/TextInputCallback.java, ! * javax/security/auth/callback/TextOutputCallback.java, ! * javax/security/auth/kerberos/DelegationPermission.java, ! * javax/security/auth/kerberos/KerberosKey.java, ! * javax/security/auth/kerberos/KerberosPrincipal.java, ! * javax/security/auth/kerberos/ServicePermission.java, ! * javax/security/auth/login/AccountNotFoundException.java, ! * javax/security/auth/login/AppConfigurationEntry.java, ! * javax/security/auth/login/LoginContext.java, ! * javax/security/sasl/Sasl.java, ! * javax/sound/midi/ControllerEventListener.java, ! * javax/sound/midi/Instrument.java, ! * javax/sound/midi/InvalidMidiDataException.java, ! * javax/sound/midi/MetaEventListener.java, ! * javax/sound/midi/MetaMessage.java, ! * javax/sound/midi/MidiChannel.java, ! * javax/sound/midi/MidiDevice.java, ! * javax/sound/midi/MidiEvent.java, ! * javax/sound/midi/MidiFileFormat.java, ! * javax/sound/midi/MidiMessage.java, ! * javax/sound/midi/MidiSystem.java, ! * javax/sound/midi/MidiUnavailableException.java, ! * javax/sound/midi/Patch.java, ! * javax/sound/midi/Receiver.java, ! * javax/sound/midi/Sequence.java, ! * javax/sound/midi/Sequencer.java, ! * javax/sound/midi/ShortMessage.java, ! * javax/sound/midi/Soundbank.java, ! * javax/sound/midi/SoundbankResource.java, ! * javax/sound/midi/Synthesizer.java, ! * javax/sound/midi/SysexMessage.java, ! * javax/sound/midi/Track.java, ! * javax/sound/midi/Transmitter.java, ! * javax/sound/midi/VoiceStatus.java, ! * javax/sound/midi/spi/MidiDeviceProvider.java, ! * javax/sound/midi/spi/MidiFileReader.java, ! * javax/sound/midi/spi/MidiFileWriter.java, ! * javax/sound/midi/spi/SoundbankReader.java, ! * javax/sound/sampled/AudioFileFormat.java, ! * javax/sound/sampled/AudioFormat.java, ! * javax/sound/sampled/AudioInputStream.java, ! * javax/sound/sampled/AudioPermission.java, ! * javax/sound/sampled/AudioSystem.java, ! * javax/sound/sampled/BooleanControl.java, ! * javax/sound/sampled/Clip.java, ! * javax/sound/sampled/CompoundControl.java, ! * javax/sound/sampled/DataLine.java, ! * javax/sound/sampled/EnumControl.java, ! * javax/sound/sampled/FloatControl.java, ! * javax/sound/sampled/Line.java, ! * javax/sound/sampled/LineEvent.java, ! * javax/sound/sampled/LineUnavailableException.java, ! * javax/sound/sampled/Mixer.java, ! * javax/sound/sampled/Port.java, ! * javax/sound/sampled/ReverbType.java, ! * javax/sound/sampled/UnsupportedAudioFileException.java, ! * javax/sound/sampled/spi/AudioFileReader.java, ! * javax/sound/sampled/spi/AudioFileWriter.java, ! * javax/sound/sampled/spi/FormatConversionProvider.java, ! * javax/sql/ConnectionEvent.java, ! * javax/sql/ConnectionEventListener.java, ! * javax/sql/ConnectionPoolDataSource.java, ! * javax/sql/DataSource.java, ! * javax/sql/PooledConnection.java, ! * javax/sql/RowSet.java, ! * javax/sql/RowSetEvent.java, ! * javax/sql/RowSetInternal.java, ! * javax/sql/RowSetListener.java, ! * javax/sql/RowSetMetaData.java, ! * javax/sql/RowSetReader.java, ! * javax/sql/RowSetWriter.java, ! * javax/sql/XAConnection.java, ! * javax/sql/XADataSource.java, ! * javax/swing/AbstractAction.java, ! * javax/swing/AbstractButton.java, ! * javax/swing/AbstractCellEditor.java, ! * javax/swing/AbstractListModel.java, ! * javax/swing/AbstractSpinnerModel.java, ! * javax/swing/Action.java, ! * javax/swing/BorderFactory.java, ! * javax/swing/BoundedRangeModel.java, ! * javax/swing/Box.java, ! * javax/swing/BoxLayout.java, ! * javax/swing/ButtonGroup.java, ! * javax/swing/ButtonModel.java, ! * javax/swing/CellEditor.java, ! * javax/swing/CellRendererPane.java, ! * javax/swing/ComboBoxModel.java, ! * javax/swing/ComponentInputMap.java, ! * javax/swing/DebugGraphics.java, ! * javax/swing/DefaultBoundedRangeModel.java, ! * javax/swing/DefaultButtonModel.java, ! * javax/swing/DefaultCellEditor.java, ! * javax/swing/DefaultComboBoxModel.java, ! * javax/swing/DefaultDesktopManager.java, ! * javax/swing/DefaultFocusManager.java, ! * javax/swing/DefaultListModel.java, ! * javax/swing/DefaultListSelectionModel.java, ! * javax/swing/DefaultSingleSelectionModel.java, ! * javax/swing/FocusManager.java, ! * javax/swing/GrayFilter.java, ! * javax/swing/Icon.java, ! * javax/swing/ImageIcon.java, ! * javax/swing/InputMap.java, ! * javax/swing/InternalFrameFocusTraversalPolicy.java, ! * javax/swing/JApplet.java, ! * javax/swing/JButton.java, ! * javax/swing/JCheckBox.java, ! * javax/swing/JCheckBoxMenuItem.java, ! * javax/swing/JComboBox.java, ! * javax/swing/JComponent.java, ! * javax/swing/JDesktopPane.java, ! * javax/swing/JDialog.java, ! * javax/swing/JEditorPane.java, ! * javax/swing/JFileChooser.java, ! * javax/swing/JFormattedTextField.java, ! * javax/swing/JFrame.java, ! * javax/swing/JInternalFrame.java, ! * javax/swing/JLabel.java, ! * javax/swing/JLayeredPane.java, ! * javax/swing/JList.java, ! * javax/swing/JMenu.java, ! * javax/swing/JMenuBar.java, ! * javax/swing/JMenuItem.java, ! * javax/swing/JOptionPane.java, ! * javax/swing/JPanel.java, ! * javax/swing/JPasswordField.java, ! * javax/swing/JPopupMenu.java, ! * javax/swing/JProgressBar.java, ! * javax/swing/JRadioButton.java, ! * javax/swing/JRadioButtonMenuItem.java, ! * javax/swing/JRootPane.java, ! * javax/swing/JScrollBar.java, ! * javax/swing/JScrollPane.java, ! * javax/swing/JSeparator.java, ! * javax/swing/JSlider.java, ! * javax/swing/JSpinner.java, ! * javax/swing/JSplitPane.java, ! * javax/swing/JTabbedPane.java, ! * javax/swing/JTable.java, ! * javax/swing/JTextArea.java, ! * javax/swing/JTextField.java, ! * javax/swing/JTextPane.java, ! * javax/swing/JToggleButton.java, ! * javax/swing/JToolBar.java, ! * javax/swing/JToolTip.java, ! * javax/swing/JTree.java, ! * javax/swing/JViewport.java, ! * javax/swing/JWindow.java, ! * javax/swing/KeyStroke.java, ! * javax/swing/KeyboardManager.java, ! * javax/swing/LayoutFocusTraversalPolicy.java, ! * javax/swing/ListCellRenderer.java, ! * javax/swing/ListSelectionModel.java, ! * javax/swing/LookAndFeel.java, ! * javax/swing/MenuSelectionManager.java, ! * javax/swing/OverlayLayout.java, ! * javax/swing/Popup.java, ! * javax/swing/PopupFactory.java, ! * javax/swing/ProgressMonitor.java, ! * javax/swing/ProgressMonitorInputStream.java, ! * javax/swing/Renderer.java, ! * javax/swing/RepaintManager.java, ! * javax/swing/ScrollPaneLayout.java, ! * javax/swing/Scrollable.java, ! * javax/swing/SingleSelectionModel.java, ! * javax/swing/SizeRequirements.java, ! * javax/swing/SizeSequence.java, ! * javax/swing/SortingFocusTraversalPolicy.java, ! * javax/swing/SpinnerDateModel.java, ! * javax/swing/SpinnerListModel.java, ! * javax/swing/SpinnerModel.java, ! * javax/swing/SpinnerNumberModel.java, ! * javax/swing/Spring.java, ! * javax/swing/SpringLayout.java, ! * javax/swing/SwingConstants.java, ! * javax/swing/SwingUtilities.java, ! * javax/swing/Timer.java, ! * javax/swing/ToolTipManager.java, ! * javax/swing/TransferHandler.java, ! * javax/swing/UIDefaults.java, ! * javax/swing/UIManager.java, ! * javax/swing/UnsupportedLookAndFeelException.java, ! * javax/swing/ViewportLayout.java, ! * javax/swing/WindowConstants.java, ! * javax/swing/border/AbstractBorder.java, ! * javax/swing/border/BevelBorder.java, ! * javax/swing/border/Border.java, ! * javax/swing/border/CompoundBorder.java, ! * javax/swing/border/EmptyBorder.java, ! * javax/swing/border/EtchedBorder.java, ! * javax/swing/border/LineBorder.java, ! * javax/swing/border/MatteBorder.java, ! * javax/swing/border/SoftBevelBorder.java, ! * javax/swing/border/TitledBorder.java, ! * javax/swing/colorchooser/AbstractColorChooserPanel.java, ! * javax/swing/colorchooser/ColorChooserComponentFactory.java, ! * javax/swing/colorchooser/ColorSelectionModel.java, ! * javax/swing/colorchooser/DefaultColorSelectionModel.java, ! * javax/swing/colorchooser/DefaultHSBChooserPanel.java, ! * javax/swing/colorchooser/DefaultRGBChooserPanel.java, ! * javax/swing/colorchooser/DefaultSwatchChooserPanel.java, ! * javax/swing/event/AncestorEvent.java, ! * javax/swing/event/AncestorListener.java, ! * javax/swing/event/CaretEvent.java, ! * javax/swing/event/CaretListener.java, ! * javax/swing/event/CellEditorListener.java, ! * javax/swing/event/ChangeEvent.java, ! * javax/swing/event/ChangeListener.java, ! * javax/swing/event/DocumentEvent.java, ! * javax/swing/event/DocumentListener.java, ! * javax/swing/event/EventListenerList.java, ! * javax/swing/event/HyperlinkEvent.java, ! * javax/swing/event/HyperlinkListener.java, ! * javax/swing/event/InternalFrameAdapter.java, ! * javax/swing/event/InternalFrameEvent.java, ! * javax/swing/event/InternalFrameListener.java, ! * javax/swing/event/ListDataEvent.java, ! * javax/swing/event/ListDataListener.java, ! * javax/swing/event/ListSelectionEvent.java, ! * javax/swing/event/ListSelectionListener.java, ! * javax/swing/event/MenuDragMouseEvent.java, ! * javax/swing/event/MenuDragMouseListener.java, ! * javax/swing/event/MenuEvent.java, ! * javax/swing/event/MenuKeyEvent.java, ! * javax/swing/event/MenuKeyListener.java, ! * javax/swing/event/MenuListener.java, ! * javax/swing/event/MouseInputListener.java, ! * javax/swing/event/PopupMenuEvent.java, ! * javax/swing/event/PopupMenuListener.java, ! * javax/swing/event/SwingPropertyChangeSupport.java, ! * javax/swing/event/TableColumnModelEvent.java, ! * javax/swing/event/TableColumnModelListener.java, ! * javax/swing/event/TableModelEvent.java, ! * javax/swing/event/TableModelListener.java, ! * javax/swing/event/TreeExpansionEvent.java, ! * javax/swing/event/TreeExpansionListener.java, ! * javax/swing/event/TreeModelEvent.java, ! * javax/swing/event/TreeModelListener.java, ! * javax/swing/event/TreeSelectionEvent.java, ! * javax/swing/event/TreeSelectionListener.java, ! * javax/swing/event/TreeWillExpandListener.java, ! * javax/swing/event/UndoableEditEvent.java, ! * javax/swing/filechooser/FileFilter.java, ! * javax/swing/filechooser/FileSystemView.java, ! * javax/swing/filechooser/FileView.java, ! * javax/swing/filechooser/UnixFileSystemView.java, ! * javax/swing/plaf/BorderUIResource.java, ! * javax/swing/plaf/ColorChooserUI.java, ! * javax/swing/plaf/ColorUIResource.java, ! * javax/swing/plaf/ComboBoxUI.java, ! * javax/swing/plaf/ComponentInputMapUIResource.java, ! * javax/swing/plaf/ComponentUI.java, ! * javax/swing/plaf/FileChooserUI.java, ! * javax/swing/plaf/IconUIResource.java, ! * javax/swing/plaf/SplitPaneUI.java, ! * javax/swing/plaf/TabbedPaneUI.java, ! * javax/swing/plaf/TextUI.java, ! * javax/swing/plaf/UIResource.java, ! * javax/swing/plaf/basic/BasicArrowButton.java, ! * javax/swing/plaf/basic/BasicBorders.java, ! * javax/swing/plaf/basic/BasicButtonListener.java, ! * javax/swing/plaf/basic/BasicButtonUI.java, ! * javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java, ! * javax/swing/plaf/basic/BasicCheckBoxUI.java, ! * javax/swing/plaf/basic/BasicColorChooserUI.java, ! * javax/swing/plaf/basic/BasicComboBoxEditor.java, ! * javax/swing/plaf/basic/BasicComboBoxRenderer.java, ! * javax/swing/plaf/basic/BasicComboBoxUI.java, ! * javax/swing/plaf/basic/BasicComboPopup.java, ! * javax/swing/plaf/basic/BasicDesktopIconUI.java, ! * javax/swing/plaf/basic/BasicDesktopPaneUI.java, ! * javax/swing/plaf/basic/BasicDirectoryModel.java, ! * javax/swing/plaf/basic/BasicEditorPaneUI.java, ! * javax/swing/plaf/basic/BasicFileChooserUI.java, ! * javax/swing/plaf/basic/BasicFormattedTextFieldUI.java, ! * javax/swing/plaf/basic/BasicGraphicsUtils.java, ! * javax/swing/plaf/basic/BasicHTML.java, ! * javax/swing/plaf/basic/BasicIconFactory.java, ! * javax/swing/plaf/basic/BasicInternalFrameTitlePane.java, ! * javax/swing/plaf/basic/BasicInternalFrameUI.java, ! * javax/swing/plaf/basic/BasicLabelUI.java, ! * javax/swing/plaf/basic/BasicListUI.java, ! * javax/swing/plaf/basic/BasicLookAndFeel.java, ! * javax/swing/plaf/basic/BasicMenuBarUI.java, ! * javax/swing/plaf/basic/BasicMenuItemUI.java, ! * javax/swing/plaf/basic/BasicMenuUI.java, ! * javax/swing/plaf/basic/BasicOptionPaneUI.java, ! * javax/swing/plaf/basic/BasicPanelUI.java, ! * javax/swing/plaf/basic/BasicPasswordFieldUI.java, ! * javax/swing/plaf/basic/BasicPopupMenuUI.java, ! * javax/swing/plaf/basic/BasicProgressBarUI.java, ! * javax/swing/plaf/basic/BasicRadioButtonUI.java, ! * javax/swing/plaf/basic/BasicRootPaneUI.java, ! * javax/swing/plaf/basic/BasicScrollBarUI.java, ! * javax/swing/plaf/basic/BasicScrollPaneUI.java, ! * javax/swing/plaf/basic/BasicSeparatorUI.java, ! * javax/swing/plaf/basic/BasicSliderUI.java, ! * javax/swing/plaf/basic/BasicSpinnerUI.java, ! * javax/swing/plaf/basic/BasicSplitPaneDivider.java, ! * javax/swing/plaf/basic/BasicSplitPaneUI.java, ! * javax/swing/plaf/basic/BasicTabbedPaneUI.java, ! * javax/swing/plaf/basic/BasicTableHeaderUI.java, ! * javax/swing/plaf/basic/BasicTableUI.java, ! * javax/swing/plaf/basic/BasicTextAreaUI.java, ! * javax/swing/plaf/basic/BasicTextFieldUI.java, ! * javax/swing/plaf/basic/BasicTextPaneUI.java, ! * javax/swing/plaf/basic/BasicTextUI.java, ! * javax/swing/plaf/basic/BasicToggleButtonUI.java, ! * javax/swing/plaf/basic/BasicToolBarUI.java, ! * javax/swing/plaf/basic/BasicToolTipUI.java, ! * javax/swing/plaf/basic/BasicTreeUI.java, ! * javax/swing/plaf/basic/BasicViewportUI.java, ! * javax/swing/plaf/metal/DefaultMetalTheme.java, ! * javax/swing/plaf/metal/MetalBorders.java, ! * javax/swing/plaf/metal/MetalButtonListener.java, ! * javax/swing/plaf/metal/MetalButtonUI.java, ! * javax/swing/plaf/metal/MetalCheckBoxIcon.java, ! * javax/swing/plaf/metal/MetalCheckBoxUI.java, ! * javax/swing/plaf/metal/MetalComboBoxButton.java, ! * javax/swing/plaf/metal/MetalComboBoxEditor.java, ! * javax/swing/plaf/metal/MetalComboBoxIcon.java, ! * javax/swing/plaf/metal/MetalComboBoxUI.java, ! * javax/swing/plaf/metal/MetalFileChooserUI.java, ! * javax/swing/plaf/metal/MetalIconFactory.java, ! * javax/swing/plaf/metal/MetalInternalFrameTitlePane.java, ! * javax/swing/plaf/metal/MetalInternalFrameUI.java, ! * javax/swing/plaf/metal/MetalLabelUI.java, ! * javax/swing/plaf/metal/MetalLookAndFeel.java, ! * javax/swing/plaf/metal/MetalMenuBarUI.java, ! * javax/swing/plaf/metal/MetalProgressBarUI.java, ! * javax/swing/plaf/metal/MetalRadioButtonUI.java, ! * javax/swing/plaf/metal/MetalRootPaneUI.java, ! * javax/swing/plaf/metal/MetalScrollBarUI.java, ! * javax/swing/plaf/metal/MetalScrollButton.java, ! * javax/swing/plaf/metal/MetalScrollPaneUI.java, ! * javax/swing/plaf/metal/MetalSeparatorUI.java, ! * javax/swing/plaf/metal/MetalSliderUI.java, ! * javax/swing/plaf/metal/MetalSplitPaneDivider.java, ! * javax/swing/plaf/metal/MetalSplitPaneUI.java, ! * javax/swing/plaf/metal/MetalTabbedPaneUI.java, ! * javax/swing/plaf/metal/MetalTextFieldUI.java, ! * javax/swing/plaf/metal/MetalTheme.java, ! * javax/swing/plaf/metal/MetalToggleButtonUI.java, ! * javax/swing/plaf/metal/MetalToolBarUI.java, ! * javax/swing/plaf/metal/MetalToolTipUI.java, ! * javax/swing/plaf/metal/MetalTreeUI.java, ! * javax/swing/plaf/metal/MetalUtils.java, ! * javax/swing/plaf/metal/OceanTheme.java, ! * javax/swing/plaf/multi/MultiButtonUI.java, ! * javax/swing/plaf/multi/MultiColorChooserUI.java, ! * javax/swing/plaf/multi/MultiComboBoxUI.java, ! * javax/swing/plaf/multi/MultiDesktopIconUI.java, ! * javax/swing/plaf/multi/MultiDesktopPaneUI.java, ! * javax/swing/plaf/multi/MultiFileChooserUI.java, ! * javax/swing/plaf/multi/MultiInternalFrameUI.java, ! * javax/swing/plaf/multi/MultiLabelUI.java, ! * javax/swing/plaf/multi/MultiListUI.java, ! * javax/swing/plaf/multi/MultiLookAndFeel.java, ! * javax/swing/plaf/multi/MultiMenuBarUI.java, ! * javax/swing/plaf/multi/MultiMenuItemUI.java, ! * javax/swing/plaf/multi/MultiOptionPaneUI.java, ! * javax/swing/plaf/multi/MultiPanelUI.java, ! * javax/swing/plaf/multi/MultiPopupMenuUI.java, ! * javax/swing/plaf/multi/MultiProgressBarUI.java, ! * javax/swing/plaf/multi/MultiRootPaneUI.java, ! * javax/swing/plaf/multi/MultiScrollBarUI.java, ! * javax/swing/plaf/multi/MultiScrollPaneUI.java, ! * javax/swing/plaf/multi/MultiSeparatorUI.java, ! * javax/swing/plaf/multi/MultiSliderUI.java, ! * javax/swing/plaf/multi/MultiSpinnerUI.java, ! * javax/swing/plaf/multi/MultiSplitPaneUI.java, ! * javax/swing/plaf/multi/MultiTabbedPaneUI.java, ! * javax/swing/plaf/multi/MultiTableHeaderUI.java, ! * javax/swing/plaf/multi/MultiTableUI.java, ! * javax/swing/plaf/multi/MultiTextUI.java, ! * javax/swing/plaf/multi/MultiToolBarUI.java, ! * javax/swing/plaf/multi/MultiToolTipUI.java, ! * javax/swing/plaf/multi/MultiTreeUI.java, ! * javax/swing/plaf/multi/MultiViewportUI.java, ! * javax/swing/plaf/synth/SynthGraphicsUtils.java, ! * javax/swing/plaf/synth/SynthLookAndFeel.java, ! * javax/swing/plaf/synth/SynthPainter.java, ! * javax/swing/table/AbstractTableModel.java, ! * javax/swing/table/DefaultTableCellRenderer.java, ! * javax/swing/table/DefaultTableColumnModel.java, ! * javax/swing/table/DefaultTableModel.java, ! * javax/swing/table/JTableHeader.java, ! * javax/swing/table/TableCellEditor.java, ! * javax/swing/table/TableCellRenderer.java, ! * javax/swing/table/TableColumn.java, ! * javax/swing/table/TableColumnModel.java, ! * javax/swing/table/TableModel.java, ! * javax/swing/text/AbstractDocument.java, ! * javax/swing/text/AbstractWriter.java, ! * javax/swing/text/AsyncBoxView.java, ! * javax/swing/text/AttributeSet.java, ! * javax/swing/text/BoxView.java, ! * javax/swing/text/Caret.java, ! * javax/swing/text/ComponentView.java, ! * javax/swing/text/CompositeView.java, ! * javax/swing/text/DefaultCaret.java, ! * javax/swing/text/DefaultEditorKit.java, ! * javax/swing/text/DefaultFormatter.java, ! * javax/swing/text/DefaultFormatterFactory.java, ! * javax/swing/text/DefaultHighlighter.java, ! * javax/swing/text/DefaultStyledDocument.java, ! * javax/swing/text/DocumentFilter.java, ! * javax/swing/text/EditorKit.java, ! * javax/swing/text/Element.java, ! * javax/swing/text/ElementIterator.java, ! * javax/swing/text/EmptyAttributeSet.java, ! * javax/swing/text/FieldView.java, ! * javax/swing/text/FlowView.java, ! * javax/swing/text/GapContent.java, ! * javax/swing/text/GlyphView.java, ! * javax/swing/text/Highlighter.java, ! * javax/swing/text/InternationalFormatter.java, ! * javax/swing/text/JTextComponent.java, ! * javax/swing/text/Keymap.java, ! * javax/swing/text/LayeredHighlighter.java, ! * javax/swing/text/LayoutQueue.java, ! * javax/swing/text/MaskFormatter.java, ! * javax/swing/text/MutableAttributeSet.java, ! * javax/swing/text/NavigationFilter.java, ! * javax/swing/text/NumberFormatter.java, ! * javax/swing/text/ParagraphView.java, ! * javax/swing/text/PasswordView.java, ! * javax/swing/text/PlainDocument.java, ! * javax/swing/text/PlainView.java, ! * javax/swing/text/Position.java, ! * javax/swing/text/Segment.java, ! * javax/swing/text/SimpleAttributeSet.java, ! * javax/swing/text/StringContent.java, ! * javax/swing/text/Style.java, ! * javax/swing/text/StyleConstants.java, ! * javax/swing/text/StyleContext.java, ! * javax/swing/text/StyledDocument.java, ! * javax/swing/text/StyledEditorKit.java, ! * javax/swing/text/TabExpander.java, ! * javax/swing/text/TabSet.java, ! * javax/swing/text/TabStop.java, ! * javax/swing/text/TabableView.java, ! * javax/swing/text/TableView.java, ! * javax/swing/text/TextAction.java, ! * javax/swing/text/Utilities.java, ! * javax/swing/text/View.java, ! * javax/swing/text/ViewFactory.java, ! * javax/swing/text/WrappedPlainView.java, ! * javax/swing/text/html/BRView.java, ! * javax/swing/text/html/BlockView.java, ! * javax/swing/text/html/CSS.java, ! * javax/swing/text/html/CSSBorder.java, ! * javax/swing/text/html/CSSParser.java, ! * javax/swing/text/html/FormView.java, ! * javax/swing/text/html/HRuleView.java, ! * javax/swing/text/html/HTMLDocument.java, ! * javax/swing/text/html/HTMLEditorKit.java, ! * javax/swing/text/html/HTMLWriter.java, ! * javax/swing/text/html/ImageView.java, ! * javax/swing/text/html/InlineView.java, ! * javax/swing/text/html/ListView.java, ! * javax/swing/text/html/MinimalHTMLWriter.java, ! * javax/swing/text/html/MultiAttributeSet.java, ! * javax/swing/text/html/MultiStyle.java, ! * javax/swing/text/html/ParagraphView.java, ! * javax/swing/text/html/StyleSheet.java, ! * javax/swing/text/html/TableView.java, ! * javax/swing/text/html/ViewAttributeSet.java, ! * javax/swing/text/html/parser/Entity.java, ! * javax/swing/text/html/parser/Parser.java, ! * javax/swing/text/rtf/RTFParser.java, ! * javax/swing/text/rtf/RTFScanner.java, ! * javax/swing/tree/AbstractLayoutCache.java, ! * javax/swing/tree/DefaultMutableTreeNode.java, ! * javax/swing/tree/DefaultTreeCellEditor.java, ! * javax/swing/tree/DefaultTreeCellRenderer.java, ! * javax/swing/tree/DefaultTreeModel.java, ! * javax/swing/tree/DefaultTreeSelectionModel.java, ! * javax/swing/tree/ExpandVetoException.java, ! * javax/swing/tree/FixedHeightLayoutCache.java, ! * javax/swing/tree/MutableTreeNode.java, ! * javax/swing/tree/RowMapper.java, ! * javax/swing/tree/TreeCellEditor.java, ! * javax/swing/tree/TreeCellRenderer.java, ! * javax/swing/tree/TreeNode.java, ! * javax/swing/tree/TreePath.java, ! * javax/swing/tree/TreeSelectionModel.java, ! * javax/swing/tree/VariableHeightLayoutCache.java, ! * javax/swing/undo/AbstractUndoableEdit.java, ! * javax/swing/undo/CompoundEdit.java, ! * javax/swing/undo/StateEdit.java, ! * javax/swing/undo/UndoManager.java, ! * javax/swing/undo/UndoableEdit.java, ! * javax/tools/FileObject.java, ! * javax/transaction/HeuristicCommitException.java, ! * javax/transaction/HeuristicMixedException.java, ! * javax/transaction/HeuristicRollbackException.java, ! * javax/transaction/InvalidTransactionException.java, ! * javax/transaction/NotSupportedException.java, ! * javax/transaction/RollbackException.java, ! * javax/transaction/Status.java, ! * javax/transaction/Synchronization.java, ! * javax/transaction/SystemException.java, ! * javax/transaction/Transaction.java, ! * javax/transaction/TransactionManager.java, ! * javax/transaction/TransactionRequiredException.java, ! * javax/transaction/TransactionRolledbackException.java, ! * javax/transaction/UserTransaction.java, ! * javax/transaction/xa/XAException.java, ! * javax/transaction/xa/XAResource.java, ! * javax/transaction/xa/Xid.java, ! * javax/xml/XMLConstants.java, ! * javax/xml/datatype/DatatypeConfigurationException.java, ! * javax/xml/datatype/DatatypeConstants.java, ! * javax/xml/datatype/DatatypeFactory.java, ! * javax/xml/datatype/Duration.java, ! * javax/xml/datatype/XMLGregorianCalendar.java, ! * javax/xml/namespace/NamespaceContext.java, ! * javax/xml/namespace/QName.java, ! * javax/xml/parsers/DocumentBuilder.java, ! * javax/xml/parsers/DocumentBuilderFactory.java, ! * javax/xml/parsers/FactoryConfigurationError.java, ! * javax/xml/parsers/ParserConfigurationException.java, ! * javax/xml/parsers/SAXParser.java, ! * javax/xml/parsers/SAXParserFactory.java, ! * javax/xml/stream/EventFilter.java, ! * javax/xml/stream/FactoryConfigurationError.java, ! * javax/xml/stream/Location.java, ! * javax/xml/stream/StreamFilter.java, ! * javax/xml/stream/XMLEventFactory.java, ! * javax/xml/stream/XMLEventReader.java, ! * javax/xml/stream/XMLEventWriter.java, ! * javax/xml/stream/XMLInputFactory.java, ! * javax/xml/stream/XMLOutputFactory.java, ! * javax/xml/stream/XMLReporter.java, ! * javax/xml/stream/XMLResolver.java, ! * javax/xml/stream/XMLStreamConstants.java, ! * javax/xml/stream/XMLStreamException.java, ! * javax/xml/stream/XMLStreamReader.java, ! * javax/xml/stream/XMLStreamWriter.java, ! * javax/xml/stream/events/Attribute.java, ! * javax/xml/stream/events/Characters.java, ! * javax/xml/stream/events/Comment.java, ! * javax/xml/stream/events/DTD.java, ! * javax/xml/stream/events/EndDocument.java, ! * javax/xml/stream/events/EndElement.java, ! * javax/xml/stream/events/EntityDeclaration.java, ! * javax/xml/stream/events/EntityReference.java, ! * javax/xml/stream/events/Namespace.java, ! * javax/xml/stream/events/NotationDeclaration.java, ! * javax/xml/stream/events/ProcessingInstruction.java, ! * javax/xml/stream/events/StartDocument.java, ! * javax/xml/stream/events/StartElement.java, ! * javax/xml/stream/events/XMLEvent.java, ! * javax/xml/stream/util/EventReaderDelegate.java, ! * javax/xml/stream/util/StreamReaderDelegate.java, ! * javax/xml/stream/util/XMLEventAllocator.java, ! * javax/xml/stream/util/XMLEventConsumer.java, ! * javax/xml/transform/ErrorListener.java, ! * javax/xml/transform/OutputKeys.java, ! * javax/xml/transform/Result.java, ! * javax/xml/transform/Source.java, ! * javax/xml/transform/SourceLocator.java, ! * javax/xml/transform/Templates.java, ! * javax/xml/transform/Transformer.java, ! * javax/xml/transform/TransformerConfigurationException.java, ! * javax/xml/transform/TransformerException.java, ! * javax/xml/transform/TransformerFactory.java, ! * javax/xml/transform/TransformerFactoryConfigurationError.java, ! * javax/xml/transform/URIResolver.java, ! * javax/xml/transform/dom/DOMLocator.java, ! * javax/xml/transform/dom/DOMResult.java, ! * javax/xml/transform/dom/DOMSource.java, ! * javax/xml/transform/sax/SAXResult.java, ! * javax/xml/transform/sax/SAXSource.java, ! * javax/xml/transform/sax/SAXTransformerFactory.java, ! * javax/xml/transform/sax/TemplatesHandler.java, ! * javax/xml/transform/sax/TransformerHandler.java, ! * javax/xml/transform/stream/StreamResult.java, ! * javax/xml/transform/stream/StreamSource.java, ! * javax/xml/validation/Schema.java, ! * javax/xml/validation/SchemaFactory.java, ! * javax/xml/validation/SchemaFactoryLoader.java, ! * javax/xml/validation/TypeInfoProvider.java, ! * javax/xml/validation/Validator.java, ! * javax/xml/validation/ValidatorHandler.java, ! * javax/xml/xpath/XPath.java, ! * javax/xml/xpath/XPathConstants.java, ! * javax/xml/xpath/XPathException.java, ! * javax/xml/xpath/XPathExpression.java, ! * javax/xml/xpath/XPathExpressionException.java, ! * javax/xml/xpath/XPathFactory.java, ! * javax/xml/xpath/XPathFactoryConfigurationException.java, ! * javax/xml/xpath/XPathFunction.java, ! * javax/xml/xpath/XPathFunctionException.java, ! * javax/xml/xpath/XPathFunctionResolver.java, ! * javax/xml/xpath/XPathVariableResolver.java, ! * org/omg/CORBA/ARG_IN.java, ! * org/omg/CORBA/ARG_INOUT.java, ! * org/omg/CORBA/ARG_OUT.java, ! * org/omg/CORBA/AnySeqHolder.java, ! * org/omg/CORBA/BAD_CONTEXT.java, ! * org/omg/CORBA/BAD_INV_ORDER.java, ! * org/omg/CORBA/BAD_OPERATION.java, ! * org/omg/CORBA/BAD_PARAM.java, ! * org/omg/CORBA/BAD_POLICY.java, ! * org/omg/CORBA/BAD_POLICY_TYPE.java, ! * org/omg/CORBA/BAD_POLICY_VALUE.java, ! * org/omg/CORBA/BAD_TYPECODE.java, ! * org/omg/CORBA/COMM_FAILURE.java, ! * org/omg/CORBA/CTX_RESTRICT_SCOPE.java, ! * org/omg/CORBA/CompletionStatus.java, ! * org/omg/CORBA/CompletionStatusHelper.java, ! * org/omg/CORBA/Context.java, ! * org/omg/CORBA/Current.java, ! * org/omg/CORBA/CurrentHelper.java, ! * org/omg/CORBA/CurrentHolder.java, ! * org/omg/CORBA/CustomMarshal.java, ! * org/omg/CORBA/CustomValue.java, ! * org/omg/CORBA/DATA_CONVERSION.java, ! * org/omg/CORBA/DataInputStream.java, ! * org/omg/CORBA/DataOutputStream.java, ! * org/omg/CORBA/DefinitionKind.java, ! * org/omg/CORBA/DefinitionKindHelper.java, ! * org/omg/CORBA/DynamicImplementation.java, ! * org/omg/CORBA/FREE_MEM.java, ! * org/omg/CORBA/FieldNameHelper.java, ! * org/omg/CORBA/IDLTypeHelper.java, ! * org/omg/CORBA/IMP_LIMIT.java, ! * org/omg/CORBA/INITIALIZE.java, ! * org/omg/CORBA/INTERNAL.java, ! * org/omg/CORBA/INTF_REPOS.java, ! * org/omg/CORBA/INVALID_TRANSACTION.java, ! * org/omg/CORBA/INV_FLAG.java, ! * org/omg/CORBA/INV_IDENT.java, ! * org/omg/CORBA/INV_OBJREF.java, ! * org/omg/CORBA/INV_POLICY.java, ! * org/omg/CORBA/IRObject.java, ! * org/omg/CORBA/IRObjectOperations.java, ! * org/omg/CORBA/IdentifierHelper.java, ! * org/omg/CORBA/LocalObject.java, ! * org/omg/CORBA/LongSeqHolder.java, ! * org/omg/CORBA/MARSHAL.java, ! * org/omg/CORBA/NO_IMPLEMENT.java, ! * org/omg/CORBA/NO_MEMORY.java, ! * org/omg/CORBA/NO_PERMISSION.java, ! * org/omg/CORBA/NO_RESOURCES.java, ! * org/omg/CORBA/NO_RESPONSE.java, ! * org/omg/CORBA/NVList.java, ! * org/omg/CORBA/OBJECT_NOT_EXIST.java, ! * org/omg/CORBA/OBJ_ADAPTER.java, ! * org/omg/CORBA/OMGVMCID.java, ! * org/omg/CORBA/ORB.java, ! * org/omg/CORBA/ObjectHelper.java, ! * org/omg/CORBA/ObjectHolder.java, ! * org/omg/CORBA/PERSIST_STORE.java, ! * org/omg/CORBA/ParameterMode.java, ! * org/omg/CORBA/ParameterModeHelper.java, ! * org/omg/CORBA/PolicyErrorCodeHelper.java, ! * org/omg/CORBA/PolicyErrorHelper.java, ! * org/omg/CORBA/PolicyErrorHolder.java, ! * org/omg/CORBA/PolicyHelper.java, ! * org/omg/CORBA/PolicyHolder.java, ! * org/omg/CORBA/PolicyListHelper.java, ! * org/omg/CORBA/PolicyListHolder.java, ! * org/omg/CORBA/PolicyOperations.java, ! * org/omg/CORBA/PolicyTypeHelper.java, ! * org/omg/CORBA/RepositoryIdHelper.java, ! * org/omg/CORBA/Request.java, ! * org/omg/CORBA/ServiceDetailHelper.java, ! * org/omg/CORBA/ServiceInformationHelper.java, ! * org/omg/CORBA/SetOverrideTypeHelper.java, ! * org/omg/CORBA/StringValueHelper.java, ! * org/omg/CORBA/StructMember.java, ! * org/omg/CORBA/StructMemberHelper.java, ! * org/omg/CORBA/SystemException.java, ! * org/omg/CORBA/TCKind.java, ! * org/omg/CORBA/TRANSACTION_REQUIRED.java, ! * org/omg/CORBA/TRANSACTION_ROLLEDBACK.java, ! * org/omg/CORBA/TRANSIENT.java, ! * org/omg/CORBA/TypeCode.java, ! * org/omg/CORBA/TypeCodePackage/BadKind.java, ! * org/omg/CORBA/TypeCodePackage/Bounds.java, ! * org/omg/CORBA/UNSUPPORTED_POLICY.java, ! * org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java, ! * org/omg/CORBA/UnionMemberHelper.java, ! * org/omg/CORBA/UnknownUserException.java, ! * org/omg/CORBA/UnknownUserExceptionHolder.java, ! * org/omg/CORBA/ValueBaseHelper.java, ! * org/omg/CORBA/ValueBaseHolder.java, ! * org/omg/CORBA/ValueMemberHelper.java, ! * org/omg/CORBA/VersionSpecHelper.java, ! * org/omg/CORBA/VisibilityHelper.java, ! * org/omg/CORBA/WStringValueHelper.java, ! * org/omg/CORBA/WrongTransactionHelper.java, ! * org/omg/CORBA/WrongTransactionHolder.java, ! * org/omg/CORBA/_IDLTypeStub.java, ! * org/omg/CORBA/_PolicyStub.java, ! * org/omg/CORBA/portable/CustomValue.java, ! * org/omg/CORBA/portable/Delegate.java, ! * org/omg/CORBA/portable/ObjectImpl.java, ! * org/omg/CORBA/portable/StreamableValue.java, ! * org/omg/CORBA/portable/ValueBase.java, ! * org/omg/CORBA_2_3/ORB.java, ! * org/omg/CORBA_2_3/portable/Delegate.java, ! * org/omg/CORBA_2_3/portable/InputStream.java, ! * org/omg/CORBA_2_3/portable/ObjectImpl.java, ! * org/omg/CORBA_2_3/portable/OutputStream.java, ! * org/omg/CosNaming/BindingHelper.java, ! * org/omg/CosNaming/BindingIterator.java, ! * org/omg/CosNaming/BindingIteratorHelper.java, ! * org/omg/CosNaming/BindingIteratorOperations.java, ! * org/omg/CosNaming/BindingIteratorPOA.java, ! * org/omg/CosNaming/BindingType.java, ! * org/omg/CosNaming/BindingTypeHelper.java, ! * org/omg/CosNaming/IstringHelper.java, ! * org/omg/CosNaming/NameComponentHelper.java, ! * org/omg/CosNaming/NameHelper.java, ! * org/omg/CosNaming/NamingContext.java, ! * org/omg/CosNaming/NamingContextExtHelper.java, ! * org/omg/CosNaming/NamingContextExtPOA.java, ! * org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java, ! * org/omg/CosNaming/NamingContextHelper.java, ! * org/omg/CosNaming/NamingContextPOA.java, ! * org/omg/CosNaming/NamingContextPackage/AlreadyBound.java, ! * org/omg/CosNaming/NamingContextPackage/CannotProceed.java, ! * org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java, ! * org/omg/CosNaming/NamingContextPackage/InvalidName.java, ! * org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java, ! * org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java, ! * org/omg/CosNaming/NamingContextPackage/NotFound.java, ! * org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java, ! * org/omg/CosNaming/NamingContextPackage/NotFoundReason.java, ! * org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java, ! * org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java, ! * org/omg/CosNaming/_BindingIteratorImplBase.java, ! * org/omg/CosNaming/_BindingIteratorStub.java, ! * org/omg/CosNaming/_NamingContextExtStub.java, ! * org/omg/CosNaming/_NamingContextStub.java, ! * org/omg/Dynamic/Parameter.java, ! * org/omg/DynamicAny/AnySeqHelper.java, ! * org/omg/DynamicAny/DynAny.java, ! * org/omg/DynamicAny/DynAnyFactoryHelper.java, ! * org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java, ! * org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java, ! * org/omg/DynamicAny/DynAnyHelper.java, ! * org/omg/DynamicAny/DynAnyPackage/InvalidValue.java, ! * org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java, ! * org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java, ! * org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java, ! * org/omg/DynamicAny/DynAnySeqHelper.java, ! * org/omg/DynamicAny/DynArrayHelper.java, ! * org/omg/DynamicAny/DynEnumHelper.java, ! * org/omg/DynamicAny/DynFixedHelper.java, ! * org/omg/DynamicAny/DynSequenceHelper.java, ! * org/omg/DynamicAny/DynStructHelper.java, ! * org/omg/DynamicAny/DynUnionHelper.java, ! * org/omg/DynamicAny/DynValueBox.java, ! * org/omg/DynamicAny/DynValueCommonOperations.java, ! * org/omg/DynamicAny/DynValueHelper.java, ! * org/omg/DynamicAny/FieldNameHelper.java, ! * org/omg/DynamicAny/NameDynAnyPairHelper.java, ! * org/omg/DynamicAny/NameDynAnyPairSeqHelper.java, ! * org/omg/DynamicAny/NameValuePair.java, ! * org/omg/DynamicAny/NameValuePairHelper.java, ! * org/omg/DynamicAny/NameValuePairSeqHelper.java, ! * org/omg/DynamicAny/_DynAnyFactoryStub.java, ! * org/omg/DynamicAny/_DynAnyStub.java, ! * org/omg/DynamicAny/_DynArrayStub.java, ! * org/omg/DynamicAny/_DynEnumStub.java, ! * org/omg/DynamicAny/_DynFixedStub.java, ! * org/omg/DynamicAny/_DynSequenceStub.java, ! * org/omg/DynamicAny/_DynStructStub.java, ! * org/omg/DynamicAny/_DynUnionStub.java, ! * org/omg/DynamicAny/_DynValueStub.java, ! * org/omg/IOP/Codec.java, ! * org/omg/IOP/CodecFactory.java, ! * org/omg/IOP/CodecFactoryHelper.java, ! * org/omg/IOP/CodecFactoryOperations.java, ! * org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java, ! * org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java, ! * org/omg/IOP/CodecOperations.java, ! * org/omg/IOP/CodecPackage/FormatMismatch.java, ! * org/omg/IOP/CodecPackage/FormatMismatchHelper.java, ! * org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java, ! * org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java, ! * org/omg/IOP/CodecPackage/TypeMismatch.java, ! * org/omg/IOP/CodecPackage/TypeMismatchHelper.java, ! * org/omg/IOP/ComponentIdHelper.java, ! * org/omg/IOP/Encoding.java, ! * org/omg/IOP/IOR.java, ! * org/omg/IOP/IORHelper.java, ! * org/omg/IOP/IORHolder.java, ! * org/omg/IOP/MultipleComponentProfileHelper.java, ! * org/omg/IOP/MultipleComponentProfileHolder.java, ! * org/omg/IOP/ProfileIdHelper.java, ! * org/omg/IOP/ServiceContext.java, ! * org/omg/IOP/ServiceContextHelper.java, ! * org/omg/IOP/ServiceContextHolder.java, ! * org/omg/IOP/ServiceContextListHelper.java, ! * org/omg/IOP/ServiceContextListHolder.java, ! * org/omg/IOP/ServiceIdHelper.java, ! * org/omg/IOP/TaggedComponent.java, ! * org/omg/IOP/TaggedComponentHelper.java, ! * org/omg/IOP/TaggedComponentHolder.java, ! * org/omg/IOP/TaggedProfile.java, ! * org/omg/IOP/TaggedProfileHelper.java, ! * org/omg/IOP/TaggedProfileHolder.java, ! * org/omg/IOP/TransactionService.java, ! * org/omg/Messaging/SYNC_WITH_TRANSPORT.java, ! * org/omg/Messaging/SyncScopeHelper.java, ! * org/omg/PortableInterceptor/AdapterManagerIdHelper.java, ! * org/omg/PortableInterceptor/AdapterNameHelper.java, ! * org/omg/PortableInterceptor/AdapterStateHelper.java, ! * org/omg/PortableInterceptor/ClientRequestInfo.java, ! * org/omg/PortableInterceptor/ClientRequestInfoOperations.java, ! * org/omg/PortableInterceptor/ClientRequestInterceptor.java, ! * org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java, ! * org/omg/PortableInterceptor/Current.java, ! * org/omg/PortableInterceptor/CurrentHelper.java, ! * org/omg/PortableInterceptor/CurrentOperations.java, ! * org/omg/PortableInterceptor/ForwardRequest.java, ! * org/omg/PortableInterceptor/ForwardRequestHelper.java, ! * org/omg/PortableInterceptor/IORInfo.java, ! * org/omg/PortableInterceptor/IORInfoOperations.java, ! * org/omg/PortableInterceptor/IORInterceptor.java, ! * org/omg/PortableInterceptor/IORInterceptorOperations.java, ! * org/omg/PortableInterceptor/IORInterceptor_3_0.java, ! * org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java, ! * org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java, ! * org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java, ! * org/omg/PortableInterceptor/Interceptor.java, ! * org/omg/PortableInterceptor/InterceptorOperations.java, ! * org/omg/PortableInterceptor/InvalidSlot.java, ! * org/omg/PortableInterceptor/InvalidSlotHelper.java, ! * org/omg/PortableInterceptor/LOCATION_FORWARD.java, ! * org/omg/PortableInterceptor/ORBIdHelper.java, ! * org/omg/PortableInterceptor/ORBInitInfo.java, ! * org/omg/PortableInterceptor/ORBInitInfoOperations.java, ! * org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java, ! * org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java, ! * org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java, ! * org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java, ! * org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java, ! * org/omg/PortableInterceptor/ORBInitializer.java, ! * org/omg/PortableInterceptor/ORBInitializerOperations.java, ! * org/omg/PortableInterceptor/ObjectIdHelper.java, ! * org/omg/PortableInterceptor/ObjectReferenceFactory.java, ! * org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java, ! * org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java, ! * org/omg/PortableInterceptor/ObjectReferenceTemplate.java, ! * org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java, ! * org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java, ! * org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java, ! * org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java, ! * org/omg/PortableInterceptor/PolicyFactory.java, ! * org/omg/PortableInterceptor/PolicyFactoryOperations.java, ! * org/omg/PortableInterceptor/RequestInfo.java, ! * org/omg/PortableInterceptor/RequestInfoOperations.java, ! * org/omg/PortableInterceptor/SUCCESSFUL.java, ! * org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java, ! * org/omg/PortableInterceptor/ServerIdHelper.java, ! * org/omg/PortableInterceptor/ServerRequestInfo.java, ! * org/omg/PortableInterceptor/ServerRequestInfoOperations.java, ! * org/omg/PortableInterceptor/ServerRequestInterceptor.java, ! * org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java, ! * org/omg/PortableInterceptor/TRANSPORT_RETRY.java, ! * org/omg/PortableInterceptor/USER_EXCEPTION.java, ! * org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.java, ! * org/omg/PortableServer/AdapterActivator.java, ! * org/omg/PortableServer/AdapterActivatorOperations.java, ! * org/omg/PortableServer/Current.java, ! * org/omg/PortableServer/CurrentHelper.java, ! * org/omg/PortableServer/CurrentOperations.java, ! * org/omg/PortableServer/CurrentPackage/NoContext.java, ! * org/omg/PortableServer/CurrentPackage/NoContextHelper.java, ! * org/omg/PortableServer/DynamicImplementation.java, ! * org/omg/PortableServer/ForwardRequest.java, ! * org/omg/PortableServer/ForwardRequestHelper.java, ! * org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java, ! * org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java, ! * org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java, ! * org/omg/PortableServer/IdAssignmentPolicy.java, ! * org/omg/PortableServer/IdAssignmentPolicyOperations.java, ! * org/omg/PortableServer/IdAssignmentPolicyValue.java, ! * org/omg/PortableServer/IdUniquenessPolicy.java, ! * org/omg/PortableServer/IdUniquenessPolicyOperations.java, ! * org/omg/PortableServer/IdUniquenessPolicyValue.java, ! * org/omg/PortableServer/ImplicitActivationPolicy.java, ! * org/omg/PortableServer/ImplicitActivationPolicyOperations.java, ! * org/omg/PortableServer/ImplicitActivationPolicyValue.java, ! * org/omg/PortableServer/LifespanPolicy.java, ! * org/omg/PortableServer/LifespanPolicyOperations.java, ! * org/omg/PortableServer/LifespanPolicyValue.java, ! * org/omg/PortableServer/POA.java, ! * org/omg/PortableServer/POAHelper.java, ! * org/omg/PortableServer/POAManager.java, ! * org/omg/PortableServer/POAManagerOperations.java, ! * org/omg/PortableServer/POAManagerPackage/AdapterInactive.java, ! * org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java, ! * org/omg/PortableServer/POAManagerPackage/State.java, ! * org/omg/PortableServer/POAOperations.java, ! * org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java, ! * org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java, ! * org/omg/PortableServer/POAPackage/AdapterNonExistent.java, ! * org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java, ! * org/omg/PortableServer/POAPackage/InvalidPolicy.java, ! * org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java, ! * org/omg/PortableServer/POAPackage/NoServant.java, ! * org/omg/PortableServer/POAPackage/NoServantHelper.java, ! * org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java, ! * org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java, ! * org/omg/PortableServer/POAPackage/ObjectNotActive.java, ! * org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java, ! * org/omg/PortableServer/POAPackage/ServantAlreadyActive.java, ! * org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java, ! * org/omg/PortableServer/POAPackage/ServantNotActive.java, ! * org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java, ! * org/omg/PortableServer/POAPackage/WrongAdapter.java, ! * org/omg/PortableServer/POAPackage/WrongAdapterHelper.java, ! * org/omg/PortableServer/POAPackage/WrongPolicy.java, ! * org/omg/PortableServer/POAPackage/WrongPolicyHelper.java, ! * org/omg/PortableServer/RequestProcessingPolicy.java, ! * org/omg/PortableServer/RequestProcessingPolicyOperations.java, ! * org/omg/PortableServer/RequestProcessingPolicyValue.java, ! * org/omg/PortableServer/Servant.java, ! * org/omg/PortableServer/ServantActivator.java, ! * org/omg/PortableServer/ServantActivatorHelper.java, ! * org/omg/PortableServer/ServantActivatorOperations.java, ! * org/omg/PortableServer/ServantActivatorPOA.java, ! * org/omg/PortableServer/ServantLocator.java, ! * org/omg/PortableServer/ServantLocatorHelper.java, ! * org/omg/PortableServer/ServantLocatorOperations.java, ! * org/omg/PortableServer/ServantLocatorPOA.java, ! * org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java, ! * org/omg/PortableServer/ServantManager.java, ! * org/omg/PortableServer/ServantManagerOperations.java, ! * org/omg/PortableServer/ServantRetentionPolicy.java, ! * org/omg/PortableServer/ServantRetentionPolicyOperations.java, ! * org/omg/PortableServer/ServantRetentionPolicyValue.java, ! * org/omg/PortableServer/ThreadPolicy.java, ! * org/omg/PortableServer/ThreadPolicyOperations.java, ! * org/omg/PortableServer/ThreadPolicyValue.java, ! * org/omg/PortableServer/_ServantActivatorStub.java, ! * org/omg/PortableServer/_ServantLocatorStub.java, ! * org/omg/PortableServer/portable/Delegate.java, ! * org/omg/SendingContext/RunTime.java, ! * org/omg/SendingContext/RunTimeOperations.java, ! * sun/misc/Service.java, ! * sun/misc/ServiceConfigurationError.java, ! * sun/reflect/annotation/AnnotationInvocationHandler.java, ! * sun/reflect/annotation/AnnotationParser.java, ! * sun/reflect/annotation/AnnotationType.java, ! * sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java, ! * sun/reflect/annotation/ExceptionProxy.java, ! * tools/com/sun/javadoc/ClassDoc.java, ! * tools/com/sun/javadoc/ConstructorDoc.java, ! * tools/com/sun/javadoc/Doc.java, ! * tools/com/sun/javadoc/DocErrorReporter.java, ! * tools/com/sun/javadoc/Doclet.java, ! * tools/com/sun/javadoc/ExecutableMemberDoc.java, ! * tools/com/sun/javadoc/FieldDoc.java, ! * tools/com/sun/javadoc/MemberDoc.java, ! * tools/com/sun/javadoc/MethodDoc.java, ! * tools/com/sun/javadoc/PackageDoc.java, ! * tools/com/sun/javadoc/ParamTag.java, ! * tools/com/sun/javadoc/Parameter.java, ! * tools/com/sun/javadoc/ProgramElementDoc.java, ! * tools/com/sun/javadoc/RootDoc.java, ! * tools/com/sun/javadoc/SeeTag.java, ! * tools/com/sun/javadoc/SerialFieldTag.java, ! * tools/com/sun/javadoc/Tag.java, ! * tools/com/sun/javadoc/ThrowsTag.java, ! * tools/com/sun/javadoc/Type.java, ! * tools/com/sun/javadoc/TypeVariable.java, ! * tools/com/sun/tools/javadoc/Main.java, ! * tools/com/sun/tools/javah/Main.java, ! * tools/external/asm/org/objectweb/asm/AnnotationVisitor.java, ! * tools/external/asm/org/objectweb/asm/AnnotationWriter.java, ! * tools/external/asm/org/objectweb/asm/Attribute.java, ! * tools/external/asm/org/objectweb/asm/ByteVector.java, ! * tools/external/asm/org/objectweb/asm/ClassAdapter.java, ! * tools/external/asm/org/objectweb/asm/ClassReader.java, ! * tools/external/asm/org/objectweb/asm/ClassVisitor.java, ! * tools/external/asm/org/objectweb/asm/ClassWriter.java, ! * tools/external/asm/org/objectweb/asm/Edge.java, ! * tools/external/asm/org/objectweb/asm/FieldVisitor.java, ! * tools/external/asm/org/objectweb/asm/FieldWriter.java, ! * tools/external/asm/org/objectweb/asm/Handler.java, ! * tools/external/asm/org/objectweb/asm/Item.java, ! * tools/external/asm/org/objectweb/asm/Label.java, ! * tools/external/asm/org/objectweb/asm/MethodAdapter.java, ! * tools/external/asm/org/objectweb/asm/MethodVisitor.java, ! * tools/external/asm/org/objectweb/asm/MethodWriter.java, ! * tools/external/asm/org/objectweb/asm/Opcodes.java, ! * tools/external/asm/org/objectweb/asm/Type.java, ! * tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java, ! * tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java, ! * tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java, ! * tools/external/asm/org/objectweb/asm/attrs/StackMapType.java, ! * tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java, ! * tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java, ! * tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java, ! * tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java, ! * tools/external/asm/org/objectweb/asm/commons/Method.java, ! * tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java, ! * tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java, ! * tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java, ! * tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java, ! * tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java, ! * tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java, ! * tools/external/asm/org/objectweb/asm/optimizer/Constant.java, ! * tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java, ! * tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java, ! * tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java, ! * tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java, ! * tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java, ! * tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java, ! * tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java, ! * tools/external/asm/org/objectweb/asm/signature/SignatureReader.java, ! * tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java, ! * tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java, ! * tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java, ! * tools/external/asm/org/objectweb/asm/tree/ClassNode.java, ! * tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/FieldNode.java, ! * tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java, ! * tools/external/asm/org/objectweb/asm/tree/InsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/LabelNode.java, ! * tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java, ! * tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java, ! * tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/MemberNode.java, ! * tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/MethodNode.java, ! * tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java, ! * tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java, ! * tools/external/asm/org/objectweb/asm/tree/analysis/Value.java, ! * tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java, ! * tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java, ! * tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java, ! * tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java, ! * tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java, ! * tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java, ! * tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java, ! * tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java, ! * tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java, ! * tools/external/asm/org/objectweb/asm/xml/Processor.java, ! * tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java, ! * tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java, ! * tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java, ! * tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java, ! * tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java, ! * tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java, ! * tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java, ! * tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java, ! * tools/gnu/classpath/tools/FileSystemClassLoader.java, ! * tools/gnu/classpath/tools/IOToolkit.java, ! * tools/gnu/classpath/tools/MalformedInputEvent.java, ! * tools/gnu/classpath/tools/MalformedInputListener.java, ! * tools/gnu/classpath/tools/NotifyingInputStreamReader.java, ! * tools/gnu/classpath/tools/StringToolkit.java, ! * tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java, ! * tools/gnu/classpath/tools/appletviewer/AppletTag.java, ! * tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java, ! * tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java, ! * tools/gnu/classpath/tools/appletviewer/Main.java, ! * tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java, ! * tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java, ! * tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java, ! * tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java, ! * tools/gnu/classpath/tools/appletviewer/TagParser.java, ! * tools/gnu/classpath/tools/common/CallbackUtil.java, ! * tools/gnu/classpath/tools/common/ClasspathToolParser.java, ! * tools/gnu/classpath/tools/common/Persistent.java, ! * tools/gnu/classpath/tools/common/ProviderUtil.java, ! * tools/gnu/classpath/tools/common/SecurityProviderInfo.java, ! * tools/gnu/classpath/tools/doclets/AbstractDoclet.java, ! * tools/gnu/classpath/tools/doclets/DocletConfigurationException.java, ! * tools/gnu/classpath/tools/doclets/DocletOption.java, ! * tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java, ! * tools/gnu/classpath/tools/doclets/DocletOptionFile.java, ! * tools/gnu/classpath/tools/doclets/DocletOptionFlag.java, ! * tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java, ! * tools/gnu/classpath/tools/doclets/DocletOptionString.java, ! * tools/gnu/classpath/tools/doclets/InlineTagRenderer.java, ! * tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java, ! * tools/gnu/classpath/tools/doclets/PackageGroup.java, ! * tools/gnu/classpath/tools/doclets/PackageMatcher.java, ! * tools/gnu/classpath/tools/doclets/StandardTaglet.java, ! * tools/gnu/classpath/tools/doclets/TagletPrinter.java, ! * tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java, ! * tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java, ! * tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java, ! * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java, ! * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java, ! * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java, ! * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java, ! * tools/gnu/classpath/tools/getopt/FileArgumentCallback.java, ! * tools/gnu/classpath/tools/getopt/Option.java, ! * tools/gnu/classpath/tools/getopt/OptionGroup.java, ! * tools/gnu/classpath/tools/getopt/Parser.java, ! * tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java, ! * tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java, ! * tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/Debug.java, ! * tools/gnu/classpath/tools/gjdoc/DirectoryTree.java, ! * tools/gnu/classpath/tools/gjdoc/DocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ErrorReporter.java, ! * tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java, ! * tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java, ! * tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java, ! * tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/Main.java, ! * tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ParameterImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ParseException.java, ! * tools/gnu/classpath/tools/gjdoc/Parser.java, ! * tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/RootDocImpl.java, ! * tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java, ! * tools/gnu/classpath/tools/gjdoc/TagContainer.java, ! * tools/gnu/classpath/tools/gjdoc/TagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/TemporaryStore.java, ! * tools/gnu/classpath/tools/gjdoc/TextTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/Timer.java, ! * tools/gnu/classpath/tools/gjdoc/TimerDoclet.java, ! * tools/gnu/classpath/tools/gjdoc/TypeImpl.java, ! * tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java, ! * tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java, ! * tools/gnu/classpath/tools/gjdoc/WritableType.java, ! * tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java, ! * tools/gnu/classpath/tools/gjdoc/expr/Context.java, ! * tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java, ! * tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/Expression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java, ! * tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/Type.java, ! * tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java, ! * tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java, ! * tools/gnu/classpath/tools/jar/Creator.java, ! * tools/gnu/classpath/tools/jar/Indexer.java, ! * tools/gnu/classpath/tools/jar/Main.java, ! * tools/gnu/classpath/tools/jar/Updater.java, ! * tools/gnu/classpath/tools/jarsigner/JarVerifier.java, ! * tools/gnu/classpath/tools/jarsigner/Main.java, ! * tools/gnu/classpath/tools/jarsigner/SFHelper.java, ! * tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java, ! * tools/gnu/classpath/tools/javah/ClassWrapper.java, ! * tools/gnu/classpath/tools/javah/CniPrintStream.java, ! * tools/gnu/classpath/tools/javah/GcjhMain.java, ! * tools/gnu/classpath/tools/javah/JniHelper.java, ! * tools/gnu/classpath/tools/javah/JniIncludePrinter.java, ! * tools/gnu/classpath/tools/javah/JniStubPrinter.java, ! * tools/gnu/classpath/tools/javah/Keywords.java, ! * tools/gnu/classpath/tools/javah/Main.java, ! * tools/gnu/classpath/tools/javah/MethodHelper.java, ! * tools/gnu/classpath/tools/keytool/CACertCmd.java, ! * tools/gnu/classpath/tools/keytool/CertReqCmd.java, ! * tools/gnu/classpath/tools/keytool/Command.java, ! * tools/gnu/classpath/tools/keytool/DeleteCmd.java, ! * tools/gnu/classpath/tools/keytool/ExportCmd.java, ! * tools/gnu/classpath/tools/keytool/GenKeyCmd.java, ! * tools/gnu/classpath/tools/keytool/IdentityDBCmd.java, ! * tools/gnu/classpath/tools/keytool/ImportCmd.java, ! * tools/gnu/classpath/tools/keytool/KeyCloneCmd.java, ! * tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java, ! * tools/gnu/classpath/tools/keytool/ListCmd.java, ! * tools/gnu/classpath/tools/keytool/PrintCertCmd.java, ! * tools/gnu/classpath/tools/keytool/SelfCertCmd.java, ! * tools/gnu/classpath/tools/keytool/StorePasswdCmd.java, ! * tools/gnu/classpath/tools/orbd/Main.java, ! * tools/gnu/classpath/tools/orbd/PersistentContext.java, ! * tools/gnu/classpath/tools/orbd/PersistentContextMap.java, ! * tools/gnu/classpath/tools/orbd/PersistentMap.java, ! * tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java, ! * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java, ! * tools/gnu/classpath/tools/rmic/CompilationError.java, ! * tools/gnu/classpath/tools/rmic/Generator.java, ! * tools/gnu/classpath/tools/rmic/GiopIo.java, ! * tools/gnu/classpath/tools/rmic/HashFinder.java, ! * tools/gnu/classpath/tools/rmic/Main.java, ! * tools/gnu/classpath/tools/rmic/MethodGenerator.java, ! * tools/gnu/classpath/tools/rmic/RMICException.java, ! * tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java, ! * tools/gnu/classpath/tools/rmic/RmicBackend.java, ! * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java, ! * tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java, ! * tools/gnu/classpath/tools/rmic/Variables.java, ! * tools/gnu/classpath/tools/rmic/WrapUnWrapper.java, ! * tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java, ! * tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java, ! * tools/gnu/classpath/tools/rmid/Main.java, ! * tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java, ! * tools/gnu/classpath/tools/rmiregistry/Main.java, ! * tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java, ! * tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java, ! * tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java, ! * tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java, ! * tools/gnu/classpath/tools/serialver/SerialVer.java, ! * tools/gnu/classpath/tools/taglets/AuthorTaglet.java, ! * tools/gnu/classpath/tools/taglets/CodeTaglet.java, ! * tools/gnu/classpath/tools/taglets/CopyrightTaglet.java, ! * tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java, ! * tools/gnu/classpath/tools/taglets/GenericTaglet.java, ! * tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java, ! * tools/gnu/classpath/tools/taglets/SinceTaglet.java, ! * tools/gnu/classpath/tools/taglets/TagletContext.java, ! * tools/gnu/classpath/tools/taglets/ValueTaglet.java, ! * tools/gnu/classpath/tools/taglets/VersionTaglet.java, ! * tools/gnu/classpath/tools/tnameserv/Main.java, ! * vm/reference/gnu/classpath/jdwp/VMFrame.java, ! * vm/reference/gnu/classpath/jdwp/VMIdManager.java, ! * vm/reference/gnu/classpath/jdwp/VMMethod.java, ! * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java, ! * vm/reference/gnu/java/lang/VMCPStringBuilder.java, ! * vm/reference/gnu/java/lang/VMInstrumentationImpl.java, ! * vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java, ! * vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java, ! * vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java, ! * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java, ! * vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java, ! * vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java, ! * vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java, ! * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java, ! * vm/reference/gnu/java/net/VMPlainSocketImpl.java, ! * vm/reference/gnu/java/nio/VMChannel.java, ! * vm/reference/gnu/java/nio/VMPipe.java, ! * vm/reference/gnu/java/nio/VMSelector.java, ! * vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java, ! * vm/reference/java/io/VMFile.java, ! * vm/reference/java/io/VMObjectInputStream.java, ! * vm/reference/java/io/VMObjectStreamClass.java, ! * vm/reference/java/lang/VMClass.java, ! * vm/reference/java/lang/VMClassLoader.java, ! * vm/reference/java/lang/VMDouble.java, ! * vm/reference/java/lang/VMFloat.java, ! * vm/reference/java/lang/VMMath.java, ! * vm/reference/java/lang/VMObject.java, ! * vm/reference/java/lang/VMProcess.java, ! * vm/reference/java/lang/VMRuntime.java, ! * vm/reference/java/lang/VMString.java, ! * vm/reference/java/lang/VMSystem.java, ! * vm/reference/java/lang/VMThread.java, ! * vm/reference/java/lang/reflect/VMConstructor.java, ! * vm/reference/java/lang/reflect/VMField.java, ! * vm/reference/java/lang/reflect/VMMethod.java, ! * vm/reference/java/net/VMNetworkInterface.java, ! * vm/reference/java/nio/channels/VMChannels.java, ! * vm/reference/java/security/VMAccessController.java, ! * vm/reference/java/security/VMSecureRandom.java, ! * vm/reference/java/util/VMTimeZone.java, ! * vm/reference/sun/misc/Unsafe.java, ! * vm/reference/sun/reflect/Reflection.java, ! * vm/reference/sun/reflect/misc/ReflectUtil.java: ! Normalise whitespace. 2010-07-30 Andrew Haley * javax/print/attribute/standard/JobStateReasons.java (add): Fix infinite recursion with call to super. 2010-06-04 Rainer Orth * scripts/check_jni_methods.sh.in: Don't use diff -U. Adapt grep regex, ignore file and problem message. + 2010-06-03 Ralf Wildenhues + + * configure: Regenerate. + 2010-05-27 Andrew John Hughes * configure.ac: Disable plugin by default and warn about unmaintained status when enabled. ! 2010-05-04 Andrew John Hughes ! * configure.ac: ! Call AC_PROG_JAVA_WORKS and AC_PROG_JAVAC_WORKS ! in place of AC_PROG_JAVA and AC_PROG_JAVAC ! respectively, as this is the real test we want. ! * m4/ac_prog_java.m4: ! (AC_PROG_JAVA): Don't include AC_PROG_JAVA_WORKS. ! * m4/ac_prog_java_works.m4: ! (AC_PROG_JAVA_WORKS): Require AC_PROG_JAVA and be ! defined only once. Require AC_PROG_JAVAC_WORKS for ! compilation of test class. Remove inclusion of ! AC_PROG_JAVAC. ! (AC_TRY_COMPILE_JAVA): Require AC_PROG_JAVAC_WORKS ! rather than AC_PROG_JAVAC. Be defined only once. ! * m4/ac_prog_javac.m: ! (AC_PROG_JAVAC): Be defined only once. Don't include ! AC_PROG_JAVAC_WORKS. ! * m4/ac_prog_javac_works.m4: ! (AC_PROG_JAVAC_WORKS): Be defined only once. Require ! AC_PROG_JAVAC. ! ! 2010-05-04 Andrew Haley ! ! * lib/gen-classlist.sh.in: Use absolute pathnames for all the ! directory names in the output file. ! ! 2010-05-04 Andrew John Hughes ! ! * m4/ac_prog_javac.m4: ! Capture all output from javac --version ! to avoid excess output. Make sure no appears ! when javac is not gcj. ! ! 2010-05-04 Andrew John Hughes ! ! * configure.ac: ! Add output to GMP directory detection and ! only perform when compiling GMP. ! ! 2010-05-04 Mike Stump ! ! * configure.ac: ! Allow prefix, libdir and includedir of GMP ! to be specified via --with-gmp, --with-gmp-include ! and --with-gmp-lib. ! ! 2010-04-28 Andrew John Hughes ! ! * gnu/javax/print/ipp/IppPrintService.java: ! (printerAttr): Add generic typing. ! (printServiceAttributeListener): Likewise. ! (flavors): Likewise. ! (printerUris): Likewise. ! (IppPrintService(URI uri, String username, String password)): ! Use generic types in initialising listener set. ! (getPrinterAttributes()): Add generic types. Remove cast. ! (getPrinterAttributeSet(Class)): Return a set containing ! attributes of type T. Now creates a new set and checks that ! all elements of the original set can be cast and added to this ! new set. ! (getPrinterDefaultAttribute(Class)): Add ! generic types. ! (processResponse()): Add generic types. ! (getAttribute(Class)): Use generic types corresponding to ! parent interface. ! (getSupportedAttributeCategories()): Use generic types. ! (getSupportedAttributeValues()): Likewise. ! (handleSupportedAttributeValuesResponse(IppResponse,Class)): ! Likewise. ! (isAttributeCategorySupported(Class)): Likewise. ! * gnu/javax/print/ipp/IppResponse.java: ! (parseResponse(InputStream)): Use generic types. ! (parseAttributes(Map, Set, DataInputStream)): ! Likewise. ! (addAttribute(Map, Set>, Attribute): Likewise. ! (IppResponse(URI, short)): Create lists with appropriate type parameters. ! (getJobAttributes()): Use generic return type. ! (getOperationAttributes()): Likewise. ! (getPrinterAttributes()): Likewise. ! (getUnsupportedAttributes()): Likewise. ! * gnu/javax/print/ipp/attribute/supported/CompressionSupported.java: ! (getAssociatedAttributeArray(Set)): Use superclass Attribute ! as set type parameter and cast when looping over it. ! * gnu/javax/print/ipp/attribute/supported/FinishingsSupported.java, ! (getAssociatedAttributeArray(Set)): Use superclass Attribute ! as set type parameter and cast when looping over it. ! * gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.java, ! (getAssociatedAttributeArray(Set)): Use superclass Attribute ! as set type parameter and cast when looping over it. ! * gnu/javax/print/ipp/attribute/supported/MediaSupported.java, ! (getAssociatedAttributeArray(Set)): Use superclass Attribute ! as set type parameter and cast when looping over it. ! * gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.java, ! (getAssociatedAttributeArray(Set)): Use superclass Attribute ! as set type parameter and cast when looping over it. ! * gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.java, ! (getAssociatedAttributeArray(Set)): Use superclass Attribute ! as set type parameter and cast when looping over it. ! * gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.java, ! (getAssociatedAttributeArray(Set)): Use superclass Attribute ! as set type parameter and cast when looping over it. ! * gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.java, ! (getAssociatedAttributeArray(Set)): Use superclass Attribute ! as set type parameter and cast when looping over it. ! ! 2010-04-28 Andrew John Hughes ! ! * gnu/javax/print/ipp/IppUtilities.java: ! (INTEGER_CLASS_ARRAY): Use generic typing. ! (TEXT_CLASS_ARRAY): Likewise. ! (classesByName): Likewise. ! (instanceByClass): Likewise. ! (getClass(String)): Remove cast. Return generic type. ! (getSupportedAttrName(Class)): Remove cast. ! Add generic type to parameter. ! (getSupportedCategory(Class extends Attribute>)): Likewise. ! (getEnumAttribute(String,Object)): Add missing generic types on Class. ! (getIntegerAttribute(String,int)): Likewise and on Constructor. ! (getTextAttribute(String,byte,byte[])): Likewise. ! ! 2010-04-27 Andrew John Hughes ! ! * gnu/javax/print/ipp/IppRequest.java: ! (write(RequestedAttributes)): Fix for change in return value ! of RequestedAttributes.getValues(). ! * gnu/javax/print/ipp/attribute/DetailedStatusMessage.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/DocumentAccessError.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/RequestedAttributes.java: ! (RequestedAttributes()): Use appropriate generic type with attributes ! ArrayList. ! (getValues()): Return an array-based snapshot of the current state of ! attributes rather than providing direct mutable access to it. ! * gnu/javax/print/ipp/attribute/StatusMessage.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/UnknownAttribute.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/CopiesDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/MediaDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/defaults/SidesDefault.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/AttributesCharset.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/JobId.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/JobMoreInfo.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/JobPrinterUri.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/JobStateMessage.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/job/JobUri.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/printer/CharsetConfigured.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/printer/DocumentFormat.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.java: ! (getCategory()): Fix return value. ! * gnu/javax/print/ipp/attribute/printer/PrinterUpTime.java: ! (getCategory()): Fix return value. ! ! 2010-04-27 Andrew John Hughes ! ! * gnu/javax/print/CupsIppOperation.java, ! * gnu/javax/print/CupsMediaMapping.java, ! * gnu/javax/print/CupsPrintService.java, ! * gnu/javax/print/CupsPrintServiceLookup.java, ! * gnu/javax/print/CupsServer.java, ! * gnu/javax/print/PrintAttributeException.java, ! * gnu/javax/print/PrintFlavorException.java, ! * gnu/javax/print/PrintUriException.java, ! * gnu/javax/print/PrinterDialog.java, ! * gnu/javax/print/ipp/DocPrintJobImpl.java, ! * gnu/javax/print/ipp/IppDelimiterTag.java, ! * gnu/javax/print/ipp/IppException.java, ! * gnu/javax/print/ipp/IppMultiDocPrintService.java, ! * gnu/javax/print/ipp/IppRequest.java, ! * gnu/javax/print/ipp/IppResponse.java, ! * gnu/javax/print/ipp/IppStatusCode.java, ! * gnu/javax/print/ipp/IppUtilities.java, ! * gnu/javax/print/ipp/IppValueTag.java, ! * gnu/javax/print/ipp/MultiDocPrintJobImpl.java, ! * gnu/javax/print/ipp/attribute/CharsetSyntax.java, ! * gnu/javax/print/ipp/attribute/DefaultValueAttribute.java, ! * gnu/javax/print/ipp/attribute/DetailedStatusMessage.java, ! * gnu/javax/print/ipp/attribute/DocumentAccessError.java, ! * gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.java, ! * gnu/javax/print/ipp/attribute/RequestedAttributes.java, ! * gnu/javax/print/ipp/attribute/StatusMessage.java, ! * gnu/javax/print/ipp/attribute/UnknownAttribute.java, ! * gnu/javax/print/ipp/attribute/defaults/CopiesDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/MediaDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.java, ! * gnu/javax/print/ipp/attribute/defaults/SidesDefault.java, ! * gnu/javax/print/ipp/attribute/job/AttributesCharset.java, ! * gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.java, ! * gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.java, ! * gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.java, ! * gnu/javax/print/ipp/attribute/job/JobId.java, ! * gnu/javax/print/ipp/attribute/job/JobMoreInfo.java, ! * gnu/javax/print/ipp/attribute/job/JobPrinterUri.java, ! * gnu/javax/print/ipp/attribute/job/JobStateMessage.java, ! * gnu/javax/print/ipp/attribute/job/JobUri.java, ! * gnu/javax/print/ipp/attribute/printer/CharsetConfigured.java, ! * gnu/javax/print/ipp/attribute/printer/DocumentFormat.java, ! * gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.java, ! * gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.java, ! * gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.java, ! * gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.java, ! * gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.java, ! * gnu/javax/print/ipp/attribute/printer/PrinterUpTime.java: ! Normalise whitespace; replace tabs with spaces and removing ! trailing whitespace. ! ! 2010-04-27 Andrew John Hughes ! ! * gnu/javax/print/ipp/IppPrintService.java: ! Fix whitespace. Use correct generic type for printerAttr ! map. ! (getPrinterAttributeSet(Class)): Add ! appropriate generic type. ! * gnu/javax/print/ipp/attribute/supported/CharsetSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/CompressionSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! (getAssociatedAttributeArray(Set)): Add generic ! type to set and use for-each loop. ! * gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/FinishingsSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! (getAssociatedAttributeArray(Set)): Add generic ! type to set and use for-each loop. ! * gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! (getAssociatedAttributeArray(Set)): Add generic ! type to set and use for-each loop. ! * gnu/javax/print/ipp/attribute/supported/MediaSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! (getAssociatedAttributeArray(Set)): Add generic ! type to set and use for-each loop. ! * gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.java: ! Fix whitespace. ! (getCategory()): Fix return type. ! (getAssociatedAttributeArray(Set)): Add generic ! type to set and use for-each loop. ! * gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/OperationsSupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! (getAssociatedAttributeArray(Set)): Add generic ! type to set and use for-each loop. ! * gnu/javax/print/ipp/attribute/supported/PageRangesSupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! (getAssociatedAttributeArray(Set)): Add generic ! type to set and use for-each loop. ! * gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! (getAssociatedAttributeArray(Set)): Add generic ! type to set and use for-each loop. ! * gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/SidesSupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! * gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.java, ! Fix whitespace. ! (getCategory()): Fix return type. ! ! 2010-04-27 Andrew Haley ! ! * java/util/concurrent/CopyOnWriteArrayList.java: Fix for empty ! list. ! ! 2010-04-27 Andrew Haley ! ! * gnu/javax/print/ipp/IppResponse.java (parseAttributes): Handle ! IppValueTag.UNKNOWN. ! * gnu/javax/print/ipp/IppRequest.java (writeOperationAttributes): ! Handle RequestedAttributes. ! * gnu/javax/print/ipp/IppPrintService.java (processResponse): Add ! DocFlavor.SERVICE_FORMATTED.PAGEABLE and ! DocFlavor.SERVICE_FORMATTED.PRINTABLE. 2010-04-02 Ralf Wildenhues *************** *** 80,85 **** --- 4949,4955 ---- * resource/Makefile.in: Regenerate. * scripts/Makefile.in: Regenerate. * tools/Makefile.in: Regenerate. + 2010-03-01 Rainer Orth PR libgcj/38251 *************** *** 93,103 **** --- 4963,5004 ---- * tools/Makefile.am (UPDATE_TOOLS_ZIP, CREATE_TOOLS_ZIP): Exclude .svn direcories. + 2010-01-30 Andrew John Hughes + + * doc/www.gnu.org/home.wml: + Add newer JAPI results. + + 2010-01-30 Andrew John Hughes + + PR classpath/41686 + * javax/security/auth/kerberos/KerberosTicket.java: + Fix formatting. + (toString()): Add full implementation. + (getSessionKeyType()): Implemented. + * javax/security/auth/kerberos/KeyImpl.java: + (toString()): Implemented. + + 2010-01-30 Andrew John Hughes + + * autogen.sh: + Allow libtool 2.* through. + * configure.ac: + Updated via autoupdate. + * m4/lib-ld.m4, + * m4/lib-link.m4, + * m4/lib-prefix.m4: + Drop old libtool macros which + result in build failure. + 2010-01-18 Andreas Tobler * tools/Makefile.am (GJDOC_EX): Use find -name pattern -prune -o. * tools/Makefile.in: Regenerate. + 2010-01-12 Jeroen Frijters + + * java/util/zip/Inflater. java (inflate(byte[],int,int)): Fix for #41696. + 2009-12-05 Ralf Wildenhues * Makefile.in: Regenerate. *************** *** 136,141 **** --- 5037,5053 ---- * scripts/Makefile.in: Regenerate. * tools/Makefile.in: Regenerate. + 2009-11-18 Andrew Haley + + * java/util/TreeMap.java (anonymous class.size()): Debogosify. + anonymous class.clear(): Likewise. + + 2009-10-22 Andrew Haley + + * native/jni/native-lib/cpnet.c (cpnet_addMembership): Fix + aliasing warning. + (cpnet_dropMembership): Likewise. + 2009-10-22 Richard Guenther PR cp-tools/39177 *************** *** 203,208 **** --- 5115,5162 ---- (func_mode_link): Add new -bindir option, and use it to place output DLL if specified. + 2009-07-08 Chris Burdess + + PR xml/40663: + * javax/xml/stream/XMLEventFactory.java, + * javax/xml/stream/XMLInputFactory.java, + * javax/xml/stream/XMLOutputFactory.java, + * javax/xml/stream/events/Namespace.java: Update API to match final + version of StAX. + * javax/xml/stream/util/ReaderDelegate.java: Removed. + * javax/xml/stream/util/StreamReaderDelegate.java: Added (renamed + from ReaderDelegate) + * gnu/xml/stream/FilteredStreamReader.java, + * gnu/xml/stream/NamespaceImpl.java, + * gnu/xml/stream/XIncludeFilter.java, + * gnu/xml/stream/XMLEventAllocatorImpl.java, + * gnu/xml/stream/XMLEventFactoryImpl.java: Update implementation to + match final version of StAX API. + + 2009-07-06 Ludovic Claude + + PR xml/40653: + * gnu/xml/stream/XMLStreamWriterImpl.java: + Weaken testing of namespace prefix to match + reference implementation and spec. + + 2009-07-07 Andrew John Hughes + + PR classpath/40630 + * java/util/Scanner.java: + (myCoreNext(boolean, Pattern)): Set tmp2 to + null if the string is empty (i.e. we are at + the end of the file). + * java/util/regex/Matcher.java: + (toMatchResult()): Check that match is non-null + before attempting to clone it. + + 2009-07-07 Andrew John Hughes + + * java/util/Scanner.java, + * java/util/regex/Matcher.java: + Replace tab characters with spaces. + 2009-06-29 Andrew Haley PR java/40590 *************** *** 226,231 **** --- 5180,5464 ---- New methods. (moveToPackage): Use printName(). + 2009-03-29 Mark Wielaard + + * doc/www.gnu.org/faq/faq.wml: Fix link to cp-hacking.html. + + 2009-03-29 Mark Wielaard + + * m4/ac_prog_antlr.m4: Check whether ANTLR_JAR is empty. + + 2009-03-26 Andrew John Hughes + + PR classpath/39408: + * tools/gnu/classpath/tools/javah/ClassWrapper.java: + (linkSupers()): Make package-private. + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java: + (writeFields(ClassWrapper, JniPrintStream)): + Link in data from superclass before searching for fields. + + 2009-03-20 Andrew John Hughes + + * tools/gnu/classpath/tools/javah/ClassWrapper.java, + * tools/gnu/classpath/tools/javah/CniPrintStream.java, + * tools/gnu/classpath/tools/javah/CniStubPrinter.java, + * tools/gnu/classpath/tools/javah/GcjhMain.java, + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java, + * tools/gnu/classpath/tools/javah/JniPrintStream.java, + * tools/gnu/classpath/tools/javah/JniStubPrinter.java, + * tools/gnu/classpath/tools/javah/Keywords.java, + * tools/gnu/classpath/tools/javah/Main.java, + * tools/gnu/classpath/tools/javah/MethodHelper.java, + * tools/gnu/classpath/tools/javah/PathOptionGroup.java: + Fix generic issues in gjavah. + + 2009-03-17 Andrew John Hughes + + * tools/gnu/classpath/tools/FileSystemClassLoader.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java, + * tools/gnu/classpath/tools/gjdoc/ErrorReporter.java, + * tools/gnu/classpath/tools/gjdoc/TemporaryStore.java, + * tools/gnu/classpath/tools/gjdoc/WritableType.java, + * tools/gnu/classpath/tools/taglets/AuthorTaglet.java, + * tools/gnu/classpath/tools/taglets/CopyrightTaglet.java, + * tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java, + * tools/gnu/classpath/tools/taglets/GenericTaglet.java, + * tools/gnu/classpath/tools/taglets/SinceTaglet.java, + * tools/gnu/classpath/tools/taglets/VersionTaglet.java: + Switch to UNIX line endings. + + 2009-03-17 Andrew John Hughes + + * tools/com/sun/tools/javadoc/Main.java, + * tools/gnu/classpath/tools/FileSystemClassLoader.java, + * tools/gnu/classpath/tools/IOToolkit.java, + * tools/gnu/classpath/tools/MalformedInputEvent.java, + * tools/gnu/classpath/tools/MalformedInputListener.java, + * tools/gnu/classpath/tools/NotifyingInputStreamReader.java, + * tools/gnu/classpath/tools/StringToolkit.java, + * tools/gnu/classpath/tools/doclets/AbstractDoclet.java, + * tools/gnu/classpath/tools/doclets/DocletConfigurationException.java, + * tools/gnu/classpath/tools/doclets/DocletOption.java, + * tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java, + * tools/gnu/classpath/tools/doclets/DocletOptionFile.java, + * tools/gnu/classpath/tools/doclets/DocletOptionFlag.java, + * tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java, + * tools/gnu/classpath/tools/doclets/DocletOptionString.java, + * tools/gnu/classpath/tools/doclets/InlineTagRenderer.java, + * tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java, + * tools/gnu/classpath/tools/doclets/PackageGroup.java, + * tools/gnu/classpath/tools/doclets/PackageMatcher.java, + * tools/gnu/classpath/tools/doclets/StandardTaglet.java, + * tools/gnu/classpath/tools/doclets/TagletPrinter.java, + * tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java, + * tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java, + * tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java, + * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java, + * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java, + * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java, + * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java, + * tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java, + * tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java, + * tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java, + * tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/Debug.java, + * tools/gnu/classpath/tools/gjdoc/DirectoryTree.java, + * tools/gnu/classpath/tools/gjdoc/DocImpl.java, + * tools/gnu/classpath/tools/gjdoc/ErrorReporter.java, + * tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java, + * tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java, + * tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java, + * tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/Main.java, + * tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/ParameterImpl.java, + * tools/gnu/classpath/tools/gjdoc/ParseException.java, + * tools/gnu/classpath/tools/gjdoc/Parser.java, + * tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/RootDocImpl.java, + * tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java, + * tools/gnu/classpath/tools/gjdoc/TagContainer.java, + * tools/gnu/classpath/tools/gjdoc/TagImpl.java, + * tools/gnu/classpath/tools/gjdoc/TemporaryStore.java, + * tools/gnu/classpath/tools/gjdoc/TextTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/Timer.java, + * tools/gnu/classpath/tools/gjdoc/TimerDoclet.java, + * tools/gnu/classpath/tools/gjdoc/TypeImpl.java, + * tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java, + * tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java, + * tools/gnu/classpath/tools/gjdoc/WritableType.java, + * tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java, + * tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java, + * tools/gnu/classpath/tools/gjdoc/expr/Context.java, + * tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java, + * tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java, + * tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/Expression.java, + * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java, + * tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/Type.java, + * tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java, + * tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java, + * tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java, + * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java, + * tools/gnu/classpath/tools/rmic/CompilationError.java, + * tools/gnu/classpath/tools/rmic/Generator.java, + * tools/gnu/classpath/tools/rmic/GiopIo.java, + * tools/gnu/classpath/tools/rmic/HashFinder.java, + * tools/gnu/classpath/tools/rmic/Main.java, + * tools/gnu/classpath/tools/rmic/MethodGenerator.java, + * tools/gnu/classpath/tools/rmic/RMICException.java, + * tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java, + * tools/gnu/classpath/tools/rmic/RmicBackend.java, + * tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java, + * tools/gnu/classpath/tools/rmic/Variables.java, + * tools/gnu/classpath/tools/rmic/WrapUnWrapper.java, + * tools/gnu/classpath/tools/serialver/SerialVer.java, + * tools/gnu/classpath/tools/taglets/AuthorTaglet.java, + * tools/gnu/classpath/tools/taglets/CodeTaglet.java, + * tools/gnu/classpath/tools/taglets/CopyrightTaglet.java, + * tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java, + * tools/gnu/classpath/tools/taglets/GenericTaglet.java, + * tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java, + * tools/gnu/classpath/tools/taglets/SinceTaglet.java, + * tools/gnu/classpath/tools/taglets/TagletContext.java, + * tools/gnu/classpath/tools/taglets/ValueTaglet.java, + * tools/gnu/classpath/tools/taglets/VersionTaglet.java: + Fix license headers to GPLv2+Classpath exception. + + 2009-03-09 Andrew John Hughes + + * gnu/javax/swing/text/html/css/Selector.java: + Use CPStringBuilder. Use typed list of maps + rather than an array for type safety. + * javax/swing/text/html/HTMLEditorKit.java, + * javax/swing/text/html/HTMLWriter.java: + Add generic typing where appropriate. + * javax/swing/text/html/ImageView.java: + Remove unused AttributeSet variables. + * javax/swing/text/html/MinimalHTMLWriter.java: + Switch to an ArrayDeque to avoid unnecessary + internal synchronisation on a private variable. + Add generic typing. + * javax/swing/text/html/MultiAttributeSet.java: + Add generic typing. + * javax/swing/text/html/MultiStyle.java: + Add generic typing, make class package-private + as not part of the standard classes. + * javax/swing/text/html/ObjectView.java, + * javax/swing/text/html/StyleSheet.java: + Add generic typing. + * javax/swing/text/html/TableView.java: + Remove unused variable. + * javax/swing/tree/DefaultMutableTreeNode.java: + Add generic typing, mute warnings where necessary. + * javax/swing/tree/FixedHeightLayoutCache.java: + Add generic typing. + * javax/swing/tree/TreeNode.java: + Mute warnings where necessary. + * javax/swing/tree/VariableHeightLayoutCache.java, + * javax/swing/undo/StateEdit.java, + * javax/swing/undo/UndoableEditSupport.java, + * org/ietf/jgss/GSSManager.java: + Add generic typing. + + 2009-02-14 Andrew John Hughes + + * org/omg/CORBA/LocalObject.java, + * org/omg/CORBA/portable/Delegate.java, + * org/omg/CORBA/portable/InputStream.java, + * org/omg/CORBA/portable/ObjectImpl.java, + * org/omg/CORBA_2_3/portable/InputStream.java, + * org/omg/CORBA_2_3/portable/OutputStream.java, + * org/omg/DynamicAny/_DynAnyFactoryStub.java, + * org/omg/DynamicAny/_DynAnyStub.java, + * org/omg/DynamicAny/_DynArrayStub.java, + * org/omg/DynamicAny/_DynEnumStub.java, + * org/omg/DynamicAny/_DynFixedStub.java, + * org/omg/DynamicAny/_DynSequenceStub.java, + * org/omg/DynamicAny/_DynStructStub.java, + * org/omg/DynamicAny/_DynUnionStub.java, + * org/omg/DynamicAny/_DynValueStub.java, + * org/omg/PortableServer/_ServantActivatorStub.java, + * org/omg/PortableServer/_ServantLocatorStub.java: + Turn off warnings where Class is used; forced + to use raw type for API compatibility. + + 2009-02-06 Andrew John Hughes + + * NEWS: + Add stub for 0.99. + * configure.ac: + Bump to 0.99. + * doc/www.gnu.org/announce/20090205.wml, + * doc/www.gnu.org/downloads/downloads.wml, + * doc/www.gnu.org/newsitems.txt: + Update website. + 2009-03-01 Ralf Wildenhues * configure: Regenerate. *************** *** 233,239 **** 2009-02-05 Andrew John Hughes * NEWS: Add VM updates. ! 2009-02-05 Andrew John Hughes * NEWS: Updated. --- 5466,5472 ---- 2009-02-05 Andrew John Hughes * NEWS: Add VM updates. ! 2009-02-05 Andrew John Hughes * NEWS: Updated. diff -Nrcpad gcc-4.5.2/libjava/classpath/ChangeLog.gcj gcc-4.6.0/libjava/classpath/ChangeLog.gcj *** gcc-4.5.2/libjava/classpath/ChangeLog.gcj Sat Jan 9 00:00:42 2010 --- gcc-4.6.0/libjava/classpath/ChangeLog.gcj Sun Feb 13 11:45:53 2011 *************** *** 1,3 **** --- 1,31 ---- + 2011-02-13 Ralf Wildenhues + + * config.rpath, ltcf-c.sh, ltcf-gcj.sh, ltconfig: Remove + handling of freebsd1* which soon would match FreeBSD 10.0. + * configure: Regenerate. + + 2011-01-31 Alexandre Oliva + + * configure.ac (GCJ_JAVAC): Run false rather than no. + * configure: Rebuilt. + + 2011-01-03 Jakub Jelinek + + * gnu/java/rmi/registry/RegistryImpl.java (version): Update + copyright notice dates. + * tools/gnu/classpath/tools/orbd/Main.java (run): Likewise. + + 2010-06-21 Jan Kratochvil + + * doc/Makefile.am (POD2MAN): Provide --date from ChangeLog. + * doc/Makefile.in: Regenerate. + + 2010-04-07 Jakub Jelinek + + * native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c + (Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1): + Avoid set but not used warning. + 2010-01-09 Jakub Jelinek * gnu/java/rmi/registry/RegistryImpl.java (version): Update diff -Nrcpad gcc-4.5.2/libjava/classpath/INSTALL gcc-4.6.0/libjava/classpath/INSTALL *** gcc-4.5.2/libjava/classpath/INSTALL Tue Jan 6 22:44:05 2009 --- gcc-4.6.0/libjava/classpath/INSTALL Tue Oct 12 15:55:12 2010 *************** Installation Instructions *** 2,11 **** ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, ! 2006, 2007, 2008 Free Software Foundation, Inc. ! This file is free documentation; the Free Software Foundation gives ! unlimited permission to copy, distribute and modify it. Basic Installation ================== --- 2,13 ---- ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, ! 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ! Copying and distribution of this file, with or without modification, ! are permitted in any medium without royalty provided the copyright ! notice and this notice are preserved. This file is offered as-is, ! without warranty of any kind. Basic Installation ================== *************** Basic Installation *** 13,19 **** Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for ! instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses --- 15,25 ---- Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for ! instructions specific to this package. Some packages provide this ! `INSTALL' file but do not implement all of the features documented ! below. The lack of an optional feature in a given package is not ! necessarily a bug. More recommendations for GNU packages can be found ! in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses *************** may remove or edit it. *** 42,48 **** you want to change it or regenerate `configure' using a newer version of `autoconf'. ! The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. --- 48,54 ---- you want to change it or regenerate `configure' using a newer version of `autoconf'. ! The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. *************** The simplest way to compile this package *** 53,64 **** 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with ! the package. 4. Type `make install' to install the programs and any data files and ! documentation. ! 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is --- 59,80 ---- 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with ! the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and ! documentation. When installing into a prefix owned by root, it is ! recommended that the package be configured and built as a regular ! user, and only the `make install' phase executed with root ! privileges. ! 5. Optionally, type `make installcheck' to repeat any self-tests, but ! this time using the binaries in their final installed location. ! This target does not install anything. Running this target as a ! regular user, particularly if the prior `make install' required ! root privileges, verifies that the installation completed ! correctly. ! ! 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is *************** The simplest way to compile this package *** 67,74 **** all sorts of other programs in order to regenerate files that came with the distribution. ! 6. Often, you can also type `make uninstall' to remove the installed ! files again. Compilers and Options ===================== --- 83,97 ---- all sorts of other programs in order to regenerate files that came with the distribution. ! 7. Often, you can also type `make uninstall' to remove the installed ! files again. In practice, not all packages have tested that ! uninstallation works correctly, even though it is required by the ! GNU Coding Standards. ! ! 8. Some packages, particularly those that use Automake, provide `make ! distcheck', which can by used by developers to test that all other ! targets like `make install' and `make uninstall' work correctly. ! This target is generally not run by end users. Compilers and Options ===================== *************** same time, by placing the object files f *** 93,99 **** own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the ! source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have --- 116,123 ---- own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the ! source code in the directory that `configure' is in and in `..'. This ! is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have *************** Installation Names *** 120,126 **** By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving ! `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you --- 144,151 ---- By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving ! `configure' the option `--prefix=PREFIX', where PREFIX must be an ! absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you *************** Documentation and other data files still *** 131,145 **** In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories ! you can set and what kinds of files go in them. ! If the package supports it, you can cause programs to be installed ! with an extra prefix or suffix on their names by giving `configure' the ! option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE --- 156,201 ---- In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories ! you can set and what kinds of files go in them. In general, the ! default for these options is expressed in terms of `${prefix}', so that ! specifying just `--prefix' will affect all of the other directory ! specifications that were not explicitly provided. ! The most portable way to affect installation locations is to pass the ! correct locations to `configure'; however, many packages provide one or ! both of the following shortcuts of passing variable assignments to the ! `make install' command line to change installation locations without ! having to reconfigure or recompile. ! ! The first method involves providing an override variable for each ! affected directory. For example, `make install ! prefix=/alternate/directory' will choose an alternate location for all ! directory configuration variables that were expressed in terms of ! `${prefix}'. Any directories that were specified during `configure', ! but not in terms of `${prefix}', must each be overridden at install ! time for the entire installation to be relocated. The approach of ! makefile variable overrides for each directory variable is required by ! the GNU Coding Standards, and ideally causes no recompilation. ! However, some platforms have known limitations with the semantics of ! shared libraries that end up requiring recompilation when using this ! method, particularly noticeable in packages that use GNU Libtool. ! ! The second method involves providing the `DESTDIR' variable. For ! example, `make install DESTDIR=/alternate/directory' will prepend ! `/alternate/directory' before all installation names. The approach of ! `DESTDIR' overrides is not required by the GNU Coding Standards, and ! does not work on platforms that have drive letters. On the other hand, ! it does better at avoiding recompilation issues, and works well even ! when some directory options were not specified in terms of `${prefix}' ! at `configure' time. Optional Features ================= + If the package supports it, you can cause programs to be installed + with an extra prefix or suffix on their names by giving `configure' the + option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE *************** find the X include and library files aut *** 152,157 **** --- 208,220 ---- you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. + Some packages offer the ability to configure how verbose the + execution of `make' will be. For these packages, running `./configure + --enable-silent-rules' sets the default to minimal output, which can be + overridden with `make V=1'; while running `./configure + --disable-silent-rules' sets the default to verbose, which can be + overridden with `make V=0'. + Particular systems ================== *************** Particular systems *** 159,165 **** CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ! ./configure CC="cc -Ae" and if that doesn't work, install pre-built binaries of GCC for HP-UX. --- 222,228 ---- CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ! ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. *************** and if that doesn't work, try *** 174,179 **** --- 237,252 ---- ./configure CC="cc -nodtk" + On Solaris, don't put `/usr/ucb' early in your `PATH'. This + directory contains several dysfunctional programs; working variants of + these programs are available in `/usr/bin'. So, if you need `/usr/ucb' + in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', + not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + Specifying the System Type ========================== *************** type, such as `sun4', or a canonical nam *** 189,195 **** where SYSTEM can have one of these forms: ! OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't --- 262,269 ---- where SYSTEM can have one of these forms: ! OS ! KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't *************** operates. *** 277,283 **** `configure' can determine that directory automatically. `--prefix=DIR' ! Use DIR as the installation prefix. *Note Installation Names:: for more details, including other options available for fine-tuning the installation locations. --- 351,357 ---- `configure' can determine that directory automatically. `--prefix=DIR' ! Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. diff -Nrcpad gcc-4.5.2/libjava/classpath/Makefile.in gcc-4.6.0/libjava/classpath/Makefile.in *** gcc-4.5.2/libjava/classpath/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = README $(am__configure_dep *** 51,62 **** ../../config.rpath ../../config.sub ../../depcomp \ ../../install-sh ../../ltmain.sh ../../missing \ ../../mkinstalldirs ../../ylwrap AUTHORS COPYING ChangeLog \ ! INSTALL NEWS TODO compile config.guess config.sub depcomp \ ! install-sh ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh ltconfig \ ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ --- 51,65 ---- ../../config.rpath ../../config.sub ../../depcomp \ ../../install-sh ../../ltmain.sh ../../missing \ ../../mkinstalldirs ../../ylwrap AUTHORS COPYING ChangeLog \ ! INSTALL NEWS TODO compile config.guess config.rpath config.sub \ ! depcomp install-sh ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh ltconfig \ ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 75,83 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ --- 78,84 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ diff -Nrcpad gcc-4.5.2/libjava/classpath/NEWS gcc-4.6.0/libjava/classpath/NEWS *** gcc-4.5.2/libjava/classpath/NEWS Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/NEWS Tue Oct 12 15:55:12 2010 *************** *** 1,3 **** --- 1,5 ---- + New in release 0.99 (XXX XX, XXXX) + New in release 0.98 (Feb 05, 2009) * Native support for BigInteger is now provided using the GMP diff -Nrcpad gcc-4.5.2/libjava/classpath/aclocal.m4 gcc-4.6.0/libjava/classpath/aclocal.m4 *** gcc-4.5.2/libjava/classpath/aclocal.m4 Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/aclocal.m4 Tue Oct 12 15:55:12 2010 *************** AC_SUBST([am__untar]) *** 1062,1067 **** --- 1062,1070 ---- m4_include([../../config/depstand.m4]) m4_include([../../config/lead-dot.m4]) + m4_include([../../config/lib-ld.m4]) + m4_include([../../config/lib-link.m4]) + m4_include([../../config/lib-prefix.m4]) m4_include([../../config/multi.m4]) m4_include([../../config/no-executables.m4]) m4_include([../../config/override.m4]) *************** m4_include([m4/ax_create_stdint_h.m4]) *** 1082,1088 **** m4_include([m4/ax_func_which_gethostbyname_r.m4]) m4_include([m4/gcc_attribute.m4]) m4_include([m4/iconv.m4]) - m4_include([m4/lib-ld.m4]) - m4_include([m4/lib-link.m4]) - m4_include([m4/lib-prefix.m4]) m4_include([m4/pkg.m4]) --- 1085,1088 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/autogen.sh gcc-4.6.0/libjava/classpath/autogen.sh *** gcc-4.5.2/libjava/classpath/autogen.sh Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/autogen.sh Tue Oct 12 15:55:12 2010 *************** have_libtool=false *** 18,24 **** if ${LIBTOOLIZE} --version < /dev/null > /dev/null 2>&1 ; then libtool_version=`${LIBTOOLIZE} --version | sed 's/^.*[^0-9.]\([0-9]\{1,\}\.[0-9.]\{1,\}\).*/\1/'` case $libtool_version in ! 1.5*) have_libtool=true ;; esac --- 18,24 ---- if ${LIBTOOLIZE} --version < /dev/null > /dev/null 2>&1 ; then libtool_version=`${LIBTOOLIZE} --version | sed 's/^.*[^0-9.]\([0-9]\{1,\}\.[0-9.]\{1,\}\).*/\1/'` case $libtool_version in ! 1.5*|2.*) have_libtool=true ;; esac diff -Nrcpad gcc-4.5.2/libjava/classpath/config.rpath gcc-4.6.0/libjava/classpath/config.rpath *** gcc-4.5.2/libjava/classpath/config.rpath Thu Jan 1 00:00:00 1970 --- gcc-4.6.0/libjava/classpath/config.rpath Sun Feb 13 11:45:53 2011 *************** *** 0 **** --- 1,667 ---- + #! /bin/sh + # Output a system dependent set of variables, describing how to set the + # run time search path of shared libraries in an executable. + # + # Copyright 1996-2010 Free Software Foundation, Inc. + # Taken from GNU libtool, 2001 + # Originally by Gordon Matzigkeit , 1996 + # + # This file is free software; the Free Software Foundation gives + # unlimited permission to copy and/or distribute it, with or without + # modifications, as long as this notice is preserved. + # + # The first argument passed to this file is the canonical host specification, + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM + # or + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld + # should be set by the caller. + # + # The set of defined variables is at the end of this script. + + # Known limitations: + # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer + # than 256 bytes, otherwise the compiler driver will dump core. The only + # known workaround is to choose shorter directory names for the build + # directory and/or the installation directory. + + # All known linkers require a `.a' archive for static linking (except MSVC, + # which needs '.lib'). + libext=a + shrext=.so + + host="$1" + host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` + host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` + host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + # Code taken from libtool.m4's _LT_CC_BASENAME. + + for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + + # Code taken from libtool.m4's _LT_COMPILER_PIC. + + wl= + if test "$GCC" = yes; then + wl='-Wl,' + else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + darwin*) + case $cc_basename in + xlc*) + wl='-Wl,' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + pgcc | pgf77 | pgf90) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac + fi + + # Code taken from libtool.m4's _LT_LINKER_SHLIBS. + + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_direct=no + hardcode_minus_L=no + + case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we cannot use + # them. + ld_shlibs=no + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi + else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } + }'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } + }'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if test "$GCC" = yes ; then + : + else + case $cc_basename in + xlc*) + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac + fi + + # Check dynamic linker characteristics + # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. + # Unlike libtool.m4, here we don't care about _all_ names of the library, but + # only about the one the linker finds when passed -lNAME. This is the last + # element of library_names_spec in libtool.m4, or possibly two of them if the + # linker has special search rules. + library_names_spec= # the last element of library_names_spec in libtool.m4 + libname_spec='lib$name' + case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + library_names_spec='$libname.a' + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + nto-qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; + esac + + sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` + shlibext=`echo "$shrext" | sed -e 's,^\.,,'` + escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + + LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # --- 1,6 ---- #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.64 for GNU Classpath 0.99-pre. # # Report bugs to . # *************** MAKEFLAGS= *** 559,566 **** # Identity of this package. PACKAGE_NAME='GNU Classpath' PACKAGE_TARNAME='classpath' ! PACKAGE_VERSION='0.98' ! PACKAGE_STRING='GNU Classpath 0.98' PACKAGE_BUGREPORT='classpath@gnu.org' PACKAGE_URL='http://www.gnu.org/software/classpath/' --- 559,566 ---- # Identity of this package. PACKAGE_NAME='GNU Classpath' PACKAGE_TARNAME='classpath' ! PACKAGE_VERSION='0.99-pre' ! PACKAGE_STRING='GNU Classpath 0.99-pre' PACKAGE_BUGREPORT='classpath@gnu.org' PACKAGE_URL='http://www.gnu.org/software/classpath/' *************** enable_rpath *** 914,919 **** --- 914,922 ---- with_libiconv_prefix with_x with_qt4dir + with_gmp + with_gmp_include + with_gmp_lib with_javah with_vm_classes enable_maintainer_mode *************** if test "$ac_init_help" = "long"; then *** 1487,1493 **** # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF ! \`configure' configures GNU Classpath 0.98 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... --- 1490,1496 ---- # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF ! \`configure' configures GNU Classpath 0.99-pre to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... *************** fi *** 1562,1568 **** if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of GNU Classpath 0.98:";; esac cat <<\_ACEOF --- 1565,1571 ---- if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of GNU Classpath 0.99-pre:";; esac cat <<\_ACEOF *************** Optional Packages: *** 1654,1659 **** --- 1657,1667 ---- --with-x use the X Window System --with-qt4dir=DIR Qt4 installation directory used for OS-X. For other systems use pkg-config. + --with-gmp=PATH specify prefix directory for the installed GMP package. + Equivalent to --with-gmp-include=PATH/include + plus --with-gmp-lib=PATH/lib + --with-gmp-include=PATH specify directory for installed GMP include files + --with-gmp-lib=PATH specify directory for the installed GMP library --with-javah specify path or name of a javah-like program --with-vm-classes specify path to VM override source files --with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java *************** fi *** 1749,1755 **** test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF ! GNU Classpath configure 0.98 generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. --- 1757,1763 ---- test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF ! GNU Classpath configure 0.99-pre generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. *************** $as_echo "$ac_res" >&6; } *** 2304,2311 **** ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 ! $as_echo_n "checking whether $2 is declared... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else --- 2312,2321 ---- ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ! as_decl_name=`echo $2|sed 's/ *(.*//'` ! as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 ! $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else *************** $4 *** 2315,2322 **** int main () { ! #ifndef $2 ! (void) $2; #endif ; --- 2325,2336 ---- int main () { ! #ifndef $as_decl_name ! #ifdef __cplusplus ! (void) $as_decl_use; ! #else ! (void) $as_decl_name; ! #endif #endif ; *************** cat >config.log <<_ACEOF *** 2572,2578 **** This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. ! It was created by GNU Classpath $as_me 0.98, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ --- 2586,2592 ---- This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. ! It was created by GNU Classpath $as_me 0.99-pre, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ *************** ac_compiler_gnu=$ac_cv_c_compiler_gnu *** 2924,2929 **** --- 2938,2944 ---- + ac_aux_dir= for ac_dir in ../.. "$srcdir"/../..; do for ac_t in install-sh install.sh shtool; do *************** fi *** 3606,3612 **** # Define the identity of the package. PACKAGE='classpath' ! VERSION='0.98' cat >>confdefs.h <<_ACEOF --- 3621,3627 ---- # Define the identity of the package. PACKAGE='classpath' ! VERSION='0.99-pre' cat >>confdefs.h <<_ACEOF *************** if test -z "$aix_libpath"; then aix_libp *** 9998,10007 **** hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little --- 10013,10018 ---- *************** dgux*) *** 10923,10932 **** shlibpath_var=LD_LIBRARY_PATH ;; - freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. --- 10934,10939 ---- *************** else *** 11804,11810 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11807 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 11811,11817 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11814 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 11910,11916 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11913 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 11917,11923 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11920 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** dgux*) *** 15986,15995 **** shlibpath_var=LD_LIBRARY_PATH ;; - freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. --- 15993,15998 ---- *************** $as_echo "$GTK_LIBS" >&6; } *** 21906,21912 **** fi ! if test "x${COMPILE_GMP}" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_mul_si in -lgmp" >&5 $as_echo_n "checking for __gmpz_mul_si in -lgmp... " >&6; } if test "${ac_cv_lib_gmp___gmpz_mul_si+set}" = set; then : --- 21909,21968 ---- fi ! ! # Check whether --with-gmp was given. ! if test "${with_gmp+set}" = set; then : ! withval=$with_gmp; ! fi ! ! ! # Check whether --with-gmp_include was given. ! if test "${with_gmp_include+set}" = set; then : ! withval=$with_gmp_include; ! fi ! ! ! # Check whether --with-gmp_lib was given. ! if test "${with_gmp_lib+set}" = set; then : ! withval=$with_gmp_lib; ! fi ! ! ! if test "x$with_gmp" != x; then ! gmplibs=-lgmp ! gmpinc= ! gmplibs="-L$with_gmp/lib $gmplibs" ! gmpinc="-I$with_gmp/include $gmpinc" ! if test "x$with_gmp_include" != x; then ! gmpinc="-I$with_gmp_include $gmpinc" ! fi ! if test "x$with_gmp_lib" != x; then ! gmplibs="-L$with_gmp_lib $gmplibs" ! fi ! else ! gmplibs="-lgmp" ! gmpinc="-I/usr/include" ! fi ! ! if test "x${COMPILE_GMP}" = xyes; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GMP directories" >&5 ! $as_echo_n "checking for GMP directories... " >&6; } ! if test "x$with_gmp" != x; then ! gmplibs="-L$with_gmp/lib -lgmp" ! gmpinc="-I$with_gmp/include" ! if test "x$with_gmp_include" != x; then ! gmpinc="-I$with_gmp_include $gmpinc" ! fi ! if test "x$with_gmp_lib" != x; then ! gmplibs="-L$with_gmp_lib $gmplibs" ! fi ! else ! with_gmp="/usr" ! gmplibs="-lgmp" ! gmpinc="-I/usr/include" ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: prefix=$with_gmp, libs=$gmplibs, inc=$gmpinc" >&5 ! $as_echo "prefix=$with_gmp, libs=$gmplibs, inc=$gmpinc" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_mul_si in -lgmp" >&5 $as_echo_n "checking for __gmpz_mul_si in -lgmp... " >&6; } if test "${ac_cv_lib_gmp___gmpz_mul_si+set}" = set; then : *************** fi *** 21947,21954 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_mul_si" >&5 $as_echo "$ac_cv_lib_gmp___gmpz_mul_si" >&6; } if test "x$ac_cv_lib_gmp___gmpz_mul_si" = x""yes; then : ! GMP_CFLAGS=-I/usr/include ! GMP_LIBS=-lgmp else GMP_CFLAGS= GMP_LIBS= --- 22003,22010 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_mul_si" >&5 $as_echo "$ac_cv_lib_gmp___gmpz_mul_si" >&6; } if test "x$ac_cv_lib_gmp___gmpz_mul_si" = x""yes; then : ! GMP_CFLAGS="$gmpinc" ! GMP_LIBS="$gmplibs" else GMP_CFLAGS= GMP_LIBS= *************** test -n "$JAVA" || JAVA="$JAVAPREFIX" *** 23627,23708 **** fi test "x$JAVA" = x && as_fn_error "no acceptable Java virtual machine found in \$PATH" "$LINENO" 5 - # Extract the first word of "uudecode$EXEEXT", so it can be a program name with args. - set dummy uudecode$EXEEXT; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if test "${ac_cv_prog_uudecode+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - if test -n "$uudecode"; then - ac_cv_prog_uudecode="$uudecode" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_uudecode="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done - done - IFS=$as_save_IFS - - fi - fi - uudecode=$ac_cv_prog_uudecode - if test -n "$uudecode"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $uudecode" >&5 - $as_echo "$uudecode" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - fi - - - if test x$uudecode = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if uudecode can decode base 64 file" >&5 - $as_echo_n "checking if uudecode can decode base 64 file... " >&6; } - if test "${ac_cv_prog_uudecode_base64+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - - cat << \EOF > Test.uue - begin-base64 644 Test.class - yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE - bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51 - bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s - YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG - aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB - AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB - AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ= - ==== - EOF - if uudecode$EXEEXT Test.uue; then - ac_cv_prog_uudecode_base64=yes - else - echo "configure: 23688: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 - echo "configure: failed file was:" >&5 - cat Test.uue >&5 - ac_cv_prog_uudecode_base64=no - fi - rm -f Test.uue - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_uudecode_base64" >&5 - $as_echo "$ac_cv_prog_uudecode_base64" >&6; } - fi - if test x$ac_cv_prog_uudecode_base64 != xyes; then - rm -f Test.class - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: I have to compile Test.class from scratch" >&5 - $as_echo "$as_me: WARNING: I have to compile Test.class from scratch" >&2;} - if test x$ac_cv_prog_javac_works = xno; then - as_fn_error "Cannot compile java source. $JAVAC does not work properly" "$LINENO" 5 - fi - if test x$ac_cv_prog_javac_works = x; then ECJ_OPTS="-warn:-deprecation,serial,unusedImport" JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides" --- 23683,23688 ---- *************** if test "${ac_cv_prog_javac_is_gcj+set}" *** 23802,23811 **** $as_echo_n "(cached) " >&6 else ! if $JAVAC --version | grep gcj > /dev/null; then ac_cv_prog_javac_is_gcj=yes; JAVAC="$JAVAC $GCJ_OPTS"; fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_javac_is_gcj" >&5 $as_echo "$ac_cv_prog_javac_is_gcj" >&6; } --- 23782,23794 ---- $as_echo_n "(cached) " >&6 else ! if $JAVAC --version 2>&1 | grep gcj >&5 ; then ac_cv_prog_javac_is_gcj=yes; JAVAC="$JAVAC $GCJ_OPTS"; + else + ac_cv_prog_javac_is_gcj=no; fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_javac_is_gcj" >&5 $as_echo "$ac_cv_prog_javac_is_gcj" >&6; } *************** else *** 23819,23825 **** GCJ_JAVAC_FALSE= fi ! if test "$enable_java_maintainer_mode" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $JAVAC works" >&5 $as_echo_n "checking if $JAVAC works... " >&6; } --- 23802,23809 ---- GCJ_JAVAC_FALSE= fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $JAVAC works" >&5 $as_echo_n "checking if $JAVAC works... " >&6; } *************** else *** 23830,23836 **** JAVA_TEST=Object.java CLASS_TEST=Object.class cat << \EOF > $JAVA_TEST ! /* #line 23833 "configure" */ package java.lang; public class Object --- 23814,23820 ---- JAVA_TEST=Object.java CLASS_TEST=Object.class cat << \EOF > $JAVA_TEST ! /* #line 23817 "configure" */ package java.lang; public class Object *************** fi *** 23863,23870 **** --- 23847,23928 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_javac_works" >&5 $as_echo "$ac_cv_prog_javac_works" >&6; } + + + # Extract the first word of "uudecode$EXEEXT", so it can be a program name with args. + set dummy uudecode$EXEEXT; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if test "${ac_cv_prog_uudecode+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$uudecode"; then + ac_cv_prog_uudecode="$uudecode" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_uudecode="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + uudecode=$ac_cv_prog_uudecode + if test -n "$uudecode"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $uudecode" >&5 + $as_echo "$uudecode" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } fi + + if test x$uudecode = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if uudecode can decode base 64 file" >&5 + $as_echo_n "checking if uudecode can decode base 64 file... " >&6; } + if test "${ac_cv_prog_uudecode_base64+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + + cat << \EOF > Test.uue + begin-base64 644 Test.class + yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE + bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51 + bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s + YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG + aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB + AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB + AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ= + ==== + EOF + if uudecode$EXEEXT Test.uue; then + ac_cv_prog_uudecode_base64=yes + else + echo "configure: 23910: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 + echo "configure: failed file was:" >&5 + cat Test.uue >&5 + ac_cv_prog_uudecode_base64=no + fi + rm -f Test.uue + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_uudecode_base64" >&5 + $as_echo "$ac_cv_prog_uudecode_base64" >&6; } + fi + if test x$ac_cv_prog_uudecode_base64 != xyes; then + rm -f Test.class + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: I have to compile Test.class from scratch" >&5 + $as_echo "$as_me: WARNING: I have to compile Test.class from scratch" >&2;} + if test x$ac_cv_prog_javac_works = xno; then + as_fn_error "Cannot compile java source. $JAVAC does not work properly" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $JAVA works" >&5 *************** JAVA_TEST=Test.java *** 23877,23889 **** CLASS_TEST=Test.class TEST=Test cat << \EOF > $JAVA_TEST ! /* [#]line 23880 "configure" */ public class Test { public static void main (String args[]) { System.exit (0); } } EOF if test x$ac_cv_prog_uudecode_base64 != xyes; then if { ac_try='$JAVAC $JAVACFLAGS $JAVA_TEST' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 --- 23935,23948 ---- CLASS_TEST=Test.class TEST=Test cat << \EOF > $JAVA_TEST ! /* [#]line 23938 "configure" */ public class Test { public static void main (String args[]) { System.exit (0); } } EOF if test x$ac_cv_prog_uudecode_base64 != xyes; then + if { ac_try='$JAVAC $JAVACFLAGS $JAVA_TEST' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 *************** fi *** 23916,23922 **** $as_echo "$ac_cv_prog_java_works" >&6; } - fi if test "x${COMPILE_GJDOC}" = xyes; then --- 23975,23980 ---- *************** fi *** 24043,24049 **** if test -z "$JAVA"; then as_fn_error "Failed to find either an antlr binary or a suitable Java runtime for ANTLR." "$LINENO" 5 else ! ANTLR="$JAVA -classpath $ANTLR_JAR antlr.Tool" fi fi --- 24101,24111 ---- if test -z "$JAVA"; then as_fn_error "Failed to find either an antlr binary or a suitable Java runtime for ANTLR." "$LINENO" 5 else ! if test -z "$ANTLR_JAR"; then ! as_fn_error "Failed to find either an antlr binary or a suitable antlr jar file." "$LINENO" 5 ! else ! ANTLR="$JAVA -classpath $ANTLR_JAR antlr.Tool" ! fi fi fi *************** fi *** 24075,24248 **** if test "x${use_glibj_zip}" = xfalse || \ test "x${EXAMPLESDIR}" != x || \ test "x${TOOLSDIR}" != x && \ ! test "x${build_class_files}" != xno; then ! ! ECJ_OPTS="-warn:-deprecation,serial,unusedImport" ! JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides" ! GCJ_OPTS="-g" ! if test "x$JAVAPREFIX" = x; then ! test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C" ! do ! # Extract the first word of "$ac_prog", so it can be a program name with args. ! set dummy $ac_prog; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_JAVAC+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$JAVAC"; then ! ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_JAVAC="$ac_prog" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! JAVAC=$ac_cv_prog_JAVAC ! if test -n "$JAVAC"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAC" >&5 ! $as_echo "$JAVAC" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! test -n "$JAVAC" && break ! done ! ! else ! test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C" ! do ! # Extract the first word of "$ac_prog", so it can be a program name with args. ! set dummy $ac_prog; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_JAVAC+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$JAVAC"; then ! ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_JAVAC="$ac_prog" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! JAVAC=$ac_cv_prog_JAVAC ! if test -n "$JAVAC"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAC" >&5 ! $as_echo "$JAVAC" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! test -n "$JAVAC" && break ! done ! test -n "$JAVAC" || JAVAC="$JAVAPREFIX" ! ! fi ! test "x$JAVAC" = x && as_fn_error "no acceptable Java compiler found in \$PATH" "$LINENO" 5 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $JAVAC is a version of gcj" >&5 ! $as_echo_n "checking if $JAVAC is a version of gcj... " >&6; } ! if test "${ac_cv_prog_javac_is_gcj+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! ! if $JAVAC --version | grep gcj > /dev/null; then ! ac_cv_prog_javac_is_gcj=yes; ! JAVAC="$JAVAC $GCJ_OPTS"; ! fi ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_javac_is_gcj" >&5 ! $as_echo "$ac_cv_prog_javac_is_gcj" >&6; } ! JAVAC_IS_GCJ=$ac_cv_prog_javac_is_gcj ! ! if test x"${JAVAC_IS_GCJ}" = xyes; then ! GCJ_JAVAC_TRUE= ! GCJ_JAVAC_FALSE='#' ! else ! GCJ_JAVAC_TRUE='#' ! GCJ_JAVAC_FALSE= ! fi ! ! if test "$enable_java_maintainer_mode" = yes; then ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $JAVAC works" >&5 ! $as_echo_n "checking if $JAVAC works... " >&6; } ! if test "${ac_cv_prog_javac_works+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! ! JAVA_TEST=Object.java ! CLASS_TEST=Object.class ! cat << \EOF > $JAVA_TEST ! /* #line 24206 "configure" */ ! package java.lang; ! ! public class Object ! { ! static void doStuff() ! { ! } ! } ! EOF ! if test x$JAVAC_IS_GCJ = xyes; then ! CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST" ! else ! CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST" ! fi ! if { ac_try='$CMD' ! { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ! test $ac_status = 0; }; } >/dev/null 2>&1; then ! ac_cv_prog_javac_works=yes ! else ! as_fn_error "The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" "$LINENO" 5 ! echo "configure: failed program was:" >&5 ! cat $JAVA_TEST >&5 ! fi ! rm -f $JAVA_TEST $CLASS_TEST ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_javac_works" >&5 ! $as_echo "$ac_cv_prog_javac_works" >&6; } ! ! fi ! JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST ! /* #line 24245 "configure" */ public class Test { public static void main(String args) --- 24137,24149 ---- if test "x${use_glibj_zip}" = xfalse || \ test "x${EXAMPLESDIR}" != x || \ test "x${TOOLSDIR}" != x && \ ! test "x${build_class_files}" != xno && \ ! test "${enable_java_maintainer_mode}" = yes; then JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST ! /* #line 24146 "configure" */ public class Test { public static void main(String args) *************** $as_echo "no" >&6; } *** 24268,24273 **** --- 24169,24183 ---- rm -f $JAVA_TEST $CLASS_TEST + else + if false; then + GCJ_JAVAC_TRUE= + GCJ_JAVAC_FALSE='#' + else + GCJ_JAVAC_TRUE='#' + GCJ_JAVAC_FALSE= + fi + fi *************** cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri *** 25078,25084 **** # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" ! This file was extended by GNU Classpath $as_me 0.98, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES --- 24988,24994 ---- # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" ! This file was extended by GNU Classpath $as_me 0.99-pre, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES *************** General help using GNU software: >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ ! GNU Classpath config.status 0.98 configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" --- 25058,25064 ---- _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ ! GNU Classpath config.status 0.99-pre configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff -Nrcpad gcc-4.5.2/libjava/classpath/configure.ac gcc-4.6.0/libjava/classpath/configure.ac *** gcc-4.5.2/libjava/classpath/configure.ac Thu Jun 3 17:13:04 2010 --- gcc-4.6.0/libjava/classpath/configure.ac Mon Jan 31 05:34:09 2011 *************** dnl ------------------------------------ *** 6,13 **** dnl define([AC_CACHE_LOAD], )dnl dnl define([AC_CACHE_SAVE], )dnl ! AC_INIT([GNU Classpath],[0.98],[classpath@gnu.org],[classpath]) AC_CONFIG_SRCDIR(java/lang/System.java) dnl GCJ LOCAL AC_CONFIG_AUX_DIR(../..) --- 6,14 ---- dnl define([AC_CACHE_LOAD], )dnl dnl define([AC_CACHE_SAVE], )dnl ! AC_INIT([GNU Classpath],[0.99-pre],[classpath@gnu.org],[classpath]) AC_CONFIG_SRCDIR(java/lang/System.java) + AC_CONFIG_MACRO_DIR([m4]) dnl GCJ LOCAL AC_CONFIG_AUX_DIR(../..) *************** dnl ------------------------------------ *** 424,430 **** dnl Initialize libtool AC_DISABLE_STATIC ! AC_PROG_LIBTOOL AC_PROG_AWK AC_PROG_CC AM_PROG_CC_C_O --- 425,431 ---- dnl Initialize libtool AC_DISABLE_STATIC ! LT_INIT AC_PROG_AWK AC_PROG_CC AM_PROG_CC_C_O *************** if test "x${COMPILE_JNI}" = xyes; then *** 739,773 **** dnl Check for MSG_NOSIGNAL dnl ********************************************************************** AC_MSG_CHECKING(for MSG_NOSIGNAL) ! AC_TRY_COMPILE([#include ], ! [ int f = MSG_NOSIGNAL; ], ! [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MSG_NOSIGNAL, 1, ! [Define this symbol if you have MSG_NOSIGNAL]) ], ! [ AC_MSG_RESULT(no)] ! ) dnl ********************************************************************** dnl Check for SO_NOSIGPIPE (Darwin equivalent for MSG_NOSIGNAL) dnl ********************************************************************** AC_MSG_CHECKING(for SO_NOSIGPIPE ) ! AC_TRY_COMPILE([#include ], ! [ int f = SO_NOSIGPIPE; ], ! [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SO_NOSIGPIPE, 1, ! [Define this symbol if you have SO_NOSIGPIPE]) ], ! [ AC_MSG_RESULT(no)] ! ) dnl ********************************************************************** dnl Check for MSG_WAITALL dnl ********************************************************************** AC_MSG_CHECKING(for MSG_WAITALL) ! AC_TRY_COMPILE([#include ], ! [ int f = MSG_WAITALL; ], ! [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MSG_WAITALL, 1, ! [Define this symbol if you have MSG_WAITALL]) ], ! [ AC_MSG_RESULT(no)] ! ) dnl Check for plugin support headers and libraries. if test "x${COMPILE_PLUGIN}" = xyes; then --- 740,765 ---- dnl Check for MSG_NOSIGNAL dnl ********************************************************************** AC_MSG_CHECKING(for MSG_NOSIGNAL) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ int f = MSG_NOSIGNAL; ]])],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MSG_NOSIGNAL, 1, ! [Define this symbol if you have MSG_NOSIGNAL]) ],[ AC_MSG_RESULT(no) ! ]) dnl ********************************************************************** dnl Check for SO_NOSIGPIPE (Darwin equivalent for MSG_NOSIGNAL) dnl ********************************************************************** AC_MSG_CHECKING(for SO_NOSIGPIPE ) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ int f = SO_NOSIGPIPE; ]])],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SO_NOSIGPIPE, 1, ! [Define this symbol if you have SO_NOSIGPIPE]) ],[ AC_MSG_RESULT(no) ! ]) dnl ********************************************************************** dnl Check for MSG_WAITALL dnl ********************************************************************** AC_MSG_CHECKING(for MSG_WAITALL) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ int f = MSG_WAITALL; ]])],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MSG_WAITALL, 1, ! [Define this symbol if you have MSG_WAITALL]) ],[ AC_MSG_RESULT(no) ! ]) dnl Check for plugin support headers and libraries. if test "x${COMPILE_PLUGIN}" = xyes; then *************** if test "x${COMPILE_JNI}" = xyes; then *** 812,821 **** dnl __gmpz_mul_si for earlier versions (>= 3.1). dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to dnl change the name of the corresponding ac_ variable on lines 860... if test "x${COMPILE_GMP}" = xyes; then AC_CHECK_LIB(gmp, __gmpz_mul_si, ! [GMP_CFLAGS=-I/usr/include ! GMP_LIBS=-lgmp ], [GMP_CFLAGS= GMP_LIBS= ]) AC_SUBST(GMP_CFLAGS) --- 804,851 ---- dnl __gmpz_mul_si for earlier versions (>= 3.1). dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to dnl change the name of the corresponding ac_ variable on lines 860... + AC_ARG_WITH(gmp, [ --with-gmp=PATH specify prefix directory for the installed GMP package. + Equivalent to --with-gmp-include=PATH/include + plus --with-gmp-lib=PATH/lib]) + AC_ARG_WITH(gmp_include, [ --with-gmp-include=PATH specify directory for installed GMP include files]) + AC_ARG_WITH(gmp_lib, [ --with-gmp-lib=PATH specify directory for the installed GMP library]) + + if test "x$with_gmp" != x; then + gmplibs=-lgmp + gmpinc= + gmplibs="-L$with_gmp/lib $gmplibs" + gmpinc="-I$with_gmp/include $gmpinc" + if test "x$with_gmp_include" != x; then + gmpinc="-I$with_gmp_include $gmpinc" + fi + if test "x$with_gmp_lib" != x; then + gmplibs="-L$with_gmp_lib $gmplibs" + fi + else + gmplibs="-lgmp" + gmpinc="-I/usr/include" + fi + if test "x${COMPILE_GMP}" = xyes; then + AC_MSG_CHECKING([for GMP directories]) + if test "x$with_gmp" != x; then + gmplibs="-L$with_gmp/lib -lgmp" + gmpinc="-I$with_gmp/include" + if test "x$with_gmp_include" != x; then + gmpinc="-I$with_gmp_include $gmpinc" + fi + if test "x$with_gmp_lib" != x; then + gmplibs="-L$with_gmp_lib $gmplibs" + fi + else + with_gmp="/usr" + gmplibs="-lgmp" + gmpinc="-I/usr/include" + fi + AC_MSG_RESULT([prefix=$with_gmp, libs=$gmplibs, inc=$gmpinc]) AC_CHECK_LIB(gmp, __gmpz_mul_si, ! [GMP_CFLAGS="$gmpinc" ! GMP_LIBS="$gmplibs" ], [GMP_CFLAGS= GMP_LIBS= ]) AC_SUBST(GMP_CFLAGS) *************** AC_SUBST(PATH_TO_GLIBJ_ZIP) *** 1022,1028 **** if test "x${TOOLSDIR}" != x; then dnl GCJ LOCAL if test "x${COMPILE_WRAPPERS}" = xno && test "x${enable_java_maintainer_mode}" = xyes; then ! AC_PROG_JAVA fi dnl END GCJ LOCAL if test "x${COMPILE_GJDOC}" = xyes; then --- 1052,1058 ---- if test "x${TOOLSDIR}" != x; then dnl GCJ LOCAL if test "x${COMPILE_WRAPPERS}" = xno && test "x${enable_java_maintainer_mode}" = xyes; then ! AC_PROG_JAVA_WORKS fi dnl END GCJ LOCAL if test "x${COMPILE_GJDOC}" = xyes; then *************** fi *** 1041,1049 **** if test "x${use_glibj_zip}" = xfalse || \ test "x${EXAMPLESDIR}" != x || \ test "x${TOOLSDIR}" != x && \ ! test "x${build_class_files}" != xno; then ! AC_PROG_JAVAC CLASSPATH_JAVAC_MEM_CHECK fi dnl ----------------------------------------------------------- --- 1071,1082 ---- if test "x${use_glibj_zip}" = xfalse || \ test "x${EXAMPLESDIR}" != x || \ test "x${TOOLSDIR}" != x && \ ! test "x${build_class_files}" != xno && \ ! test "${enable_java_maintainer_mode}" = yes; then dnl GCJ_LOCAL ! AC_PROG_JAVAC_WORKS CLASSPATH_JAVAC_MEM_CHECK + else + AM_CONDITIONAL(GCJ_JAVAC, false) fi dnl ----------------------------------------------------------- diff -Nrcpad gcc-4.5.2/libjava/classpath/depcomp gcc-4.6.0/libjava/classpath/depcomp *** gcc-4.5.2/libjava/classpath/depcomp Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/depcomp Tue Oct 12 15:55:12 2010 *************** *** 1,10 **** #! /bin/sh # depcomp - compile a program generating dependencies as side-effects ! scriptversion=2007-03-29.01 ! # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software ! # Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by --- 1,10 ---- #! /bin/sh # depcomp - compile a program generating dependencies as side-effects ! scriptversion=2009-04-28.21; # UTC ! # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free ! # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by *************** scriptversion=2007-03-29.01 *** 17,25 **** # GNU General Public License for more details. # You should have received a copy of the GNU General Public License ! # along with this program; if not, write to the Free Software ! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ! # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a --- 17,23 ---- # GNU General Public License for more details. # You should have received a copy of the GNU General Public License ! # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a *************** if test "$depmode" = dashXmstdout; then *** 87,92 **** --- 85,99 ---- depmode=dashmstdout fi + cygpath_u="cygpath -u -f -" + if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u="sed s,\\\\\\\\,/,g" + depmode=msvisualcpp + fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what *************** sgi) *** 192,205 **** ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ! ' ' ' >> $depfile ! echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ ! >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile --- 199,212 ---- ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ! ' ' ' >> "$depfile" ! echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ ! >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile *************** hp2) *** 328,334 **** if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. ! sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi --- 335,346 ---- if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. ! sed -ne '2,${ ! s/^ *// ! s/ \\*$// ! s/$/:/ ! p ! }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi *************** dashmstdout) *** 404,410 **** # Remove the call to Libtool. if test "$libtool" = yes; then ! while test $1 != '--mode=compile'; do shift done shift --- 416,422 ---- # Remove the call to Libtool. if test "$libtool" = yes; then ! while test "X$1" != 'X--mode=compile'; do shift done shift *************** makedepend) *** 455,486 **** "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then ! while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift ! cleared=no ! for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done ! obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" --- 467,505 ---- "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then ! while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift ! cleared=no eat=no ! for arg ! do case $cleared in no) set ""; shift cleared=yes ;; esac + if test $eat = yes; then + eat=no + continue + fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done ! obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" *************** cpp) *** 500,506 **** # Remove the call to Libtool. if test "$libtool" = yes; then ! while test $1 != '--mode=compile'; do shift done shift --- 519,525 ---- # Remove the call to Libtool. if test "$libtool" = yes; then ! while test "X$1" != 'X--mode=compile'; do shift done shift *************** cpp) *** 538,550 **** msvisualcpp) # Important note: in order to support this mode, a compiler *must* ! # always write the preprocessed file to stdout, regardless of -o, ! # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift --- 557,583 ---- msvisualcpp) # Important note: in order to support this mode, a compiler *must* ! # always write the preprocessed file to stdout. "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + IFS=" " for arg do case "$arg" in + -o) + shift + ;; + $object) + shift + ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift *************** msvisualcpp) *** 557,572 **** ;; esac done ! "$@" -E | ! sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" ! . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" ! . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; --- 590,612 ---- ;; esac done ! "$@" -E 2>/dev/null | ! sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" ! sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" ! sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; + msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + none) exec "$@" ;; *************** exit 0 *** 585,589 **** # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" ! # time-stamp-end: "$" # End: --- 625,630 ---- # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" ! # time-stamp-time-zone: "UTC" ! # time-stamp-end: "; # UTC" # End: diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/Makefile.am gcc-4.6.0/libjava/classpath/doc/Makefile.am *** gcc-4.5.2/libjava/classpath/doc/Makefile.am Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/doc/Makefile.am Mon Jun 21 11:16:18 2010 *************** TOOLS_MANFILES = \ *** 31,37 **** gtnameserv.1 \ gjdoc.1 ! POD2MAN = pod2man --center="GNU" --release="$(VERSION)" TEXI2POD = perl $(srcdir)/texi2pod.pl STAMP = echo timestamp > --- 31,37 ---- gtnameserv.1 \ gjdoc.1 ! POD2MAN = pod2man --center="GNU" --release="$(VERSION)" --date=$(shell sed -n '1s/ .*//p' <$(srcdir)/../ChangeLog) TEXI2POD = perl $(srcdir)/texi2pod.pl STAMP = echo timestamp > diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/Makefile.in gcc-4.6.0/libjava/classpath/doc/Makefile.in *** gcc-4.5.2/libjava/classpath/doc/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/doc/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr *** 39,44 **** --- 39,47 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 57,65 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 60,66 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs *************** TOOLS_MANFILES = \ *** 376,382 **** gtnameserv.1 \ gjdoc.1 ! POD2MAN = pod2man --center="GNU" --release="$(VERSION)" TEXI2POD = perl $(srcdir)/texi2pod.pl STAMP = echo timestamp > @GENINSRC_FALSE@STAMP_GENINSRC = --- 377,383 ---- gtnameserv.1 \ gjdoc.1 ! POD2MAN = pod2man --center="GNU" --release="$(VERSION)" --date=$(shell sed -n '1s/ .*//p' <$(srcdir)/../ChangeLog) TEXI2POD = perl $(srcdir)/texi2pod.pl STAMP = echo timestamp > @GENINSRC_FALSE@STAMP_GENINSRC = diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/api/Makefile.in gcc-4.6.0/libjava/classpath/doc/api/Makefile.in *** gcc-4.5.2/libjava/classpath/doc/api/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/doc/api/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr *** 40,45 **** --- 40,48 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 58,66 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 61,67 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/cp-hacking.texinfo gcc-4.6.0/libjava/classpath/doc/cp-hacking.texinfo *** gcc-4.5.2/libjava/classpath/doc/cp-hacking.texinfo Sat Aug 22 13:41:50 2009 --- gcc-4.6.0/libjava/classpath/doc/cp-hacking.texinfo Tue Oct 12 15:55:12 2010 *************** *** 11,17 **** This file contains important information you will need to know if you are going to hack on the GNU Classpath project code. ! Copyright (C) 1998,1999,2000,2001,2002,2003,2004,2005,2007 Free Software Foundation, Inc. @ifnotplaintext @dircategory GNU Libraries --- 11,17 ---- This file contains important information you will need to know if you are going to hack on the GNU Classpath project code. ! Copyright (C) 1998,1999,2000,2001,2002,2003,2004,2005,2007,2009 Free Software Foundation, Inc. @ifnotplaintext @dircategory GNU Libraries diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/cp-tools.info gcc-4.6.0/libjava/classpath/doc/cp-tools.info *** gcc-4.5.2/libjava/classpath/doc/cp-tools.info Thu Dec 16 13:35:13 2010 --- gcc-4.6.0/libjava/classpath/doc/cp-tools.info Fri Mar 25 17:50:06 2011 *************** *** 1,5 **** ! This is cp-tools.info, produced by makeinfo version 4.12 from ! /space/rguenther/gcc-4.5.2/gcc-4.5.2/libjava/classpath/doc/cp-tools.texinfo. This file documents the Tools included in a standard distribution of the GNU Classpath project deliverables. --- 1,5 ---- ! This is cp-tools.info, produced by makeinfo version 4.13 from ! /d/gcc-4.6.0/gcc-4.6.0/libjava/classpath/doc/cp-tools.texinfo. This file documents the Tools included in a standard distribution of the GNU Classpath project deliverables. *************** alter text between curly braces. *** 3090,3182 ****  Tag Table: ! Node: Top440 ! Node: Applet Tools6160 ! Node: appletviewer Tool6733 ! Node: gcjwebplugin9848 ! Node: Security Tools10160 ! Node: jarsigner Tool10813 ! Node: Common jarsigner Options11861 ! Node: Signing Options13176 ! Node: Verification Options15759 ! Node: keytool Tool16347 ! Node: Getting Help20775 ! Node: Common keytool Options21519 ! Ref: alias21792 ! Ref: keyalg22174 ! Ref: keysize22404 ! Ref: validity22669 ! Ref: storetype22884 ! Ref: storepass23215 ! Ref: keystore23412 ! Ref: provider23955 ! Ref: file24362 ! Ref: verbose24833 ! Node: Distinguished Names24925 ! Ref: dn25119 ! Node: Add/Update Commands26182 ! Node: Command -genkey26710 ! Node: Command -import29119 ! Node: Command -selfcert32263 ! Node: Command -cacert34442 ! Node: Command -identitydb35495 ! Node: Export Commands36153 ! Node: Command -certreq36469 ! Node: Command -export38875 ! Node: Display Commands40072 ! Node: Command -list40404 ! Node: Command -printcert41537 ! Node: Management Commands41921 ! Node: Command -keyclone42353 ! Node: Command -storepasswd43756 ! Node: Command -keypasswd44485 ! Node: Command -delete45679 ! Node: Other Tools46302 ! Node: jar Tool47144 ! Node: javah Tool48536 ! Node: gcjh Tool49755 ! Node: native2ascii Tool50868 ! Node: orbd Tool51329 ! Node: serialver Tool52059 ! Node: rmid Tool52528 ! Node: rmiregistry Tool53469 ! Node: tnameserv Tool54309 ! Node: gjdoc Tool54933 ! Node: Invoking the Standard Doclet56921 ! Node: Option Summary by Type58076 ! Node: Source Set Options60531 ! Node: Source Format Options62395 ! Node: Interlinking Options63909 ! Node: Generation Options66686 ! Node: Taglet Options72783 ! Node: Doclet Options75004 ! Node: Decoration Options76580 ! Node: Output Control Options80671 ! Node: Verbosity Options84203 ! Node: Virtual Machine Options84549 ! Node: Invoking a Custom Doclet85945 ! Node: Gjdoc Option Summary86620 ! Node: Other Doclets86800 ! Node: Built-in Doclets87028 ! Node: Using TexiDoclet87283 ! Node: Using XmlDoclet87505 ! Node: Using IspellDoclet87730 ! Node: Using DebugDoclet87958 ! Node: Third-party Doclets88158 ! Node: DocBook Doclet88374 ! Node: PDFDoclet88517 ! Node: JUnitDoclet88670 ! Node: Gjdoc Concepts88804 ! Node: Taglets89048 ! Node: Writing Doclets89231 ! Node: Doclet Invocation Interface89571 ! Node: Using AbstractDoclet90363 ! Node: GNU Doclet SPI93357 ! Node: XHTML Fragments94829 ! Node: First Sentence Detector96262 ! Node: Adding Custom Resources98024 ! Node: I18N Issues99720 ! Node: Language Resources100222 ! Node: Message Formats103886  End Tag Table --- 3090,3182 ----  Tag Table: ! Node: Top426 ! Node: Applet Tools6146 ! Node: appletviewer Tool6719 ! Node: gcjwebplugin9834 ! Node: Security Tools10146 ! Node: jarsigner Tool10799 ! Node: Common jarsigner Options11847 ! Node: Signing Options13162 ! Node: Verification Options15745 ! Node: keytool Tool16333 ! Node: Getting Help20761 ! Node: Common keytool Options21505 ! Ref: alias21778 ! Ref: keyalg22160 ! Ref: keysize22390 ! Ref: validity22655 ! Ref: storetype22870 ! Ref: storepass23201 ! Ref: keystore23398 ! Ref: provider23941 ! Ref: file24348 ! Ref: verbose24819 ! Node: Distinguished Names24911 ! Ref: dn25105 ! Node: Add/Update Commands26168 ! Node: Command -genkey26696 ! Node: Command -import29105 ! Node: Command -selfcert32249 ! Node: Command -cacert34428 ! Node: Command -identitydb35481 ! Node: Export Commands36139 ! Node: Command -certreq36455 ! Node: Command -export38861 ! Node: Display Commands40058 ! Node: Command -list40390 ! Node: Command -printcert41523 ! Node: Management Commands41907 ! Node: Command -keyclone42339 ! Node: Command -storepasswd43742 ! Node: Command -keypasswd44471 ! Node: Command -delete45665 ! Node: Other Tools46288 ! Node: jar Tool47130 ! Node: javah Tool48522 ! Node: gcjh Tool49741 ! Node: native2ascii Tool50854 ! Node: orbd Tool51315 ! Node: serialver Tool52045 ! Node: rmid Tool52514 ! Node: rmiregistry Tool53455 ! Node: tnameserv Tool54295 ! Node: gjdoc Tool54919 ! Node: Invoking the Standard Doclet56907 ! Node: Option Summary by Type58062 ! Node: Source Set Options60517 ! Node: Source Format Options62381 ! Node: Interlinking Options63895 ! Node: Generation Options66672 ! Node: Taglet Options72769 ! Node: Doclet Options74990 ! Node: Decoration Options76566 ! Node: Output Control Options80657 ! Node: Verbosity Options84189 ! Node: Virtual Machine Options84535 ! Node: Invoking a Custom Doclet85931 ! Node: Gjdoc Option Summary86606 ! Node: Other Doclets86786 ! Node: Built-in Doclets87014 ! Node: Using TexiDoclet87269 ! Node: Using XmlDoclet87491 ! Node: Using IspellDoclet87716 ! Node: Using DebugDoclet87944 ! Node: Third-party Doclets88144 ! Node: DocBook Doclet88360 ! Node: PDFDoclet88503 ! Node: JUnitDoclet88656 ! Node: Gjdoc Concepts88790 ! Node: Taglets89034 ! Node: Writing Doclets89217 ! Node: Doclet Invocation Interface89557 ! Node: Using AbstractDoclet90349 ! Node: GNU Doclet SPI93343 ! Node: XHTML Fragments94815 ! Node: First Sentence Detector96248 ! Node: Adding Custom Resources98010 ! Node: I18N Issues99706 ! Node: Language Resources100208 ! Node: Message Formats103872  End Tag Table diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gappletviewer.1 gcc-4.6.0/libjava/classpath/doc/gappletviewer.1 *** gcc-4.5.2/libjava/classpath/doc/gappletviewer.1 Thu Dec 16 13:35:13 2010 --- gcc-4.6.0/libjava/classpath/doc/gappletviewer.1 Fri Mar 25 17:50:06 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GAPPLETVIEWER 1" ! .TH GAPPLETVIEWER 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GAPPLETVIEWER 1" ! .TH GAPPLETVIEWER 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gjar.1 gcc-4.6.0/libjava/classpath/doc/gjar.1 *** gcc-4.5.2/libjava/classpath/doc/gjar.1 Thu Dec 16 13:35:13 2010 --- gcc-4.6.0/libjava/classpath/doc/gjar.1 Fri Mar 25 17:50:06 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GJAR 1" ! .TH GJAR 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GJAR 1" ! .TH GJAR 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gjarsigner.1 gcc-4.6.0/libjava/classpath/doc/gjarsigner.1 *** gcc-4.5.2/libjava/classpath/doc/gjarsigner.1 Thu Dec 16 13:35:13 2010 --- gcc-4.6.0/libjava/classpath/doc/gjarsigner.1 Fri Mar 25 17:50:06 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GJARSIGNER 1" ! .TH GJARSIGNER 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GJARSIGNER 1" ! .TH GJARSIGNER 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gjavah.1 gcc-4.6.0/libjava/classpath/doc/gjavah.1 *** gcc-4.5.2/libjava/classpath/doc/gjavah.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/gjavah.1 Fri Mar 25 17:50:06 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GJAVAH 1" ! .TH GJAVAH 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GJAVAH 1" ! .TH GJAVAH 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gjdoc.1 gcc-4.6.0/libjava/classpath/doc/gjdoc.1 *** gcc-4.5.2/libjava/classpath/doc/gjdoc.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/gjdoc.1 Fri Mar 25 17:50:07 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GJDOC 1" ! .TH GJDOC 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GJDOC 1" ! .TH GJDOC 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** To learn more about running Doclets othe *** 189,195 **** refer to the manual. .SH "OPTIONS" .IX Header "OPTIONS" ! .Sh "Option Summary by Type" .IX Subsection "Option Summary by Type" Here is a summary of all the options of both Gjdoc and the Standard Doclet, grouped by type. Explanations are in the following sections. --- 181,187 ---- refer to the manual. .SH "OPTIONS" .IX Header "OPTIONS" ! .SS "Option Summary by Type" .IX Subsection "Option Summary by Type" Here is a summary of all the options of both Gjdoc and the Standard Doclet, grouped by type. Explanations are in the following sections. *************** Doclet, grouped by type. Explanations a *** 231,237 **** .IP "\fIVirtual Machine Options\fR" 4 .IX Item "Virtual Machine Options" \&\fB\-classpath\fR \fB\-bootclasspath\fR \fB\-J\fR\fIvmopt\fR ! .Sh "Selecting which Source Files to Process" .IX Subsection "Selecting which Source Files to Process" .IP "\fB\-s\fR \fIpathlist\fR" 4 .IX Item "-s pathlist" --- 223,229 ---- .IP "\fIVirtual Machine Options\fR" 4 .IX Item "Virtual Machine Options" \&\fB\-classpath\fR \fB\-bootclasspath\fR \fB\-J\fR\fIvmopt\fR ! .SS "Selecting which Source Files to Process" .IX Subsection "Selecting which Source Files to Process" .IP "\fB\-s\fR \fIpathlist\fR" 4 .IX Item "-s pathlist" *************** Process all classes in the given Java pa *** 281,287 **** .IP "\fIsourcefiles\fR\fB...\fR" 4 .IX Item "sourcefiles..." Process the classes in the given Java source files. ! .Sh "Specifying the Format of Input Files" .IX Subsection "Specifying the Format of Input Files" .IP "\fB\-source\fR \fIrelease\fR" 4 .IX Item "-source release" --- 273,279 ---- .IP "\fIsourcefiles\fR\fB...\fR" 4 .IX Item "sourcefiles..." Process the classes in the given Java source files. ! .SS "Specifying the Format of Input Files" .IX Subsection "Specifying the Format of Input Files" .IP "\fB\-source\fR \fIrelease\fR" 4 .IX Item "-source release" *************** source code commented in a non-latin lan *** 317,323 **** first sentence detector does not work. For all other cases, the default (do not use BreakIterator) produces better results at the time of this writing. ! .Sh "Interlinking with other Documentation Sets" .IX Subsection "Interlinking with other Documentation Sets" .IP "\fB\-link\fR \fIurl\fR" 4 .IX Item "-link url" --- 309,315 ---- first sentence detector does not work. For all other cases, the default (do not use BreakIterator) produces better results at the time of this writing. ! .SS "Interlinking with other Documentation Sets" .IX Subsection "Interlinking with other Documentation Sets" .IP "\fB\-link\fR \fIurl\fR" 4 .IX Item "-link url" *************** you place your mouse pointer over it in *** 380,386 **** Omit package name qualifier from all class names. .Sp Specify this option to omit package name qualifiers altogether, ! .Sh "Selecting which Information to Generate" .IX Subsection "Selecting which Information to Generate" .IP "\fB\-public\fR" 4 .IX Item "-public" --- 372,378 ---- Omit package name qualifier from all class names. .Sp Specify this option to omit package name qualifiers altogether, ! .SS "Selecting which Information to Generate" .IX Subsection "Selecting which Information to Generate" .IP "\fB\-public\fR" 4 .IX Item "-public" *************** directory names. *** 537,543 **** This option only makes sense if \fB\-docfilessubdirs\fR is also specified. In this case, any sub-directory located directly beneath a \&\fIdoc-files\fR directory is omitted if listed. ! .Sh "Custom Documentation Tags" .IX Subsection "Custom Documentation Tags" .IP "\fB\-tagletpath\fR \fIpathlist\fR" 4 .IX Item "-tagletpath pathlist" --- 529,535 ---- This option only makes sense if \fB\-docfilessubdirs\fR is also specified. In this case, any sub-directory located directly beneath a \&\fIdoc-files\fR directory is omitted if listed. ! .SS "Custom Documentation Tags" .IX Subsection "Custom Documentation Tags" .IP "\fB\-tagletpath\fR \fIpathlist\fR" 4 .IX Item "-tagletpath pathlist" *************** Then the \s-1HTML\s0 output will contain *** 626,632 **** \& $Id: cp\-tools.texinfo,v 1.7 2008/08/13 13:32:05 jsumali Exp $ .Ve .RE ! .Sh "Running Other Doclets" .IX Subsection "Running Other Doclets" .IP "\fB\-docletpath\fR \fIpathlist\fR" 4 .IX Item "-docletpath pathlist" --- 618,624 ---- \& $Id: cp\-tools.texinfo,v 1.7 2008/08/13 13:32:05 jsumali Exp $ .Ve .RE ! .SS "Running Other Doclets" .IX Subsection "Running Other Doclets" .IP "\fB\-docletpath\fR \fIpathlist\fR" 4 .IX Item "-docletpath pathlist" *************** feedback when successfully running third *** 665,671 **** This option can be specified multiple times, in which case all doclets are executed with the same information tree exposed via the Doclet \s-1API\s0 for each Doclet run. ! .Sh "Adding Information to the Output" .IX Subsection "Adding Information to the Output" .IP "\fB\-windowtitle\fR \fItext\fR" 4 .IX Item "-windowtitle text" --- 657,663 ---- This option can be specified multiple times, in which case all doclets are executed with the same information tree exposed via the Doclet \s-1API\s0 for each Doclet run. ! .SS "Adding Information to the Output" .IX Subsection "Adding Information to the Output" .IP "\fB\-windowtitle\fR \fItext\fR" 4 .IX Item "-windowtitle text" *************** This option is currently ignored. *** 773,779 **** .Sp When implemented, it will use the \s-1XHTML\s0 fragment in \fIfile\fR for the help page contents instead of the default help text. ! .Sh "Controlling the Output." .IX Subsection "Controlling the Output." .IP "\fB\-d\fR \fIdirectory\fR" 4 .IX Item "-d directory" --- 765,771 ---- .Sp When implemented, it will use the \s-1XHTML\s0 fragment in \fIfile\fR for the help page contents instead of the default help text. ! .SS "Controlling the Output." .IX Subsection "Controlling the Output." .IP "\fB\-d\fR \fIdirectory\fR" 4 .IX Item "-d directory" *************** available at a certain \s-1URL\s0, you s *** 854,860 **** .Sp This can help avoid certain redirect attacks used by spammers, and it can be helpful for certain web clients. ! .Sh "Verbosity Options" .IX Subsection "Verbosity Options" .IP "\fB\-quiet\fR" 4 .IX Item "-quiet" --- 846,852 ---- .Sp This can help avoid certain redirect attacks used by spammers, and it can be helpful for certain web clients. ! .SS "Verbosity Options" .IX Subsection "Verbosity Options" .IP "\fB\-quiet\fR" 4 .IX Item "-quiet" *************** Suppress all output except for warnings *** 864,870 **** Be very verbose about what \fBgjdoc\fR is doing. .Sp This option is currently ignored. ! .Sh "Virtual Machine Options" .IX Subsection "Virtual Machine Options" Sun's \fBjavadoc\fR tool seems to be based on \fBjavac\fR and as such it seems to operate on the \s-1VM\s0 level. \fBgjdoc\fR, in --- 856,862 ---- Be very verbose about what \fBgjdoc\fR is doing. .Sp This option is currently ignored. ! .SS "Virtual Machine Options" .IX Subsection "Virtual Machine Options" Sun's \fBjavadoc\fR tool seems to be based on \fBjavac\fR and as such it seems to operate on the \s-1VM\s0 level. \fBgjdoc\fR, in diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gkeytool.1 gcc-4.6.0/libjava/classpath/doc/gkeytool.1 *** gcc-4.5.2/libjava/classpath/doc/gkeytool.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/gkeytool.1 Fri Mar 25 17:50:07 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GKEYTOOL 1" ! .TH GKEYTOOL 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GKEYTOOL 1" ! .TH GKEYTOOL 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gnative2ascii.1 gcc-4.6.0/libjava/classpath/doc/gnative2ascii.1 *** gcc-4.5.2/libjava/classpath/doc/gnative2ascii.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/gnative2ascii.1 Fri Mar 25 17:50:07 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GNATIVE2ASCII 1" ! .TH GNATIVE2ASCII 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GNATIVE2ASCII 1" ! .TH GNATIVE2ASCII 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gorbd.1 gcc-4.6.0/libjava/classpath/doc/gorbd.1 *** gcc-4.5.2/libjava/classpath/doc/gorbd.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/gorbd.1 Fri Mar 25 17:50:07 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GORBD 1" ! .TH GORBD 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GORBD 1" ! .TH GORBD 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/grmid.1 gcc-4.6.0/libjava/classpath/doc/grmid.1 *** gcc-4.5.2/libjava/classpath/doc/grmid.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/grmid.1 Fri Mar 25 17:50:07 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GRMID 1" ! .TH GRMID 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GRMID 1" ! .TH GRMID 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/grmiregistry.1 gcc-4.6.0/libjava/classpath/doc/grmiregistry.1 *** gcc-4.5.2/libjava/classpath/doc/grmiregistry.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/grmiregistry.1 Fri Mar 25 17:50:07 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GRMIREGISTRY 1" ! .TH GRMIREGISTRY 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GRMIREGISTRY 1" ! .TH GRMIREGISTRY 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gserialver.1 gcc-4.6.0/libjava/classpath/doc/gserialver.1 *** gcc-4.5.2/libjava/classpath/doc/gserialver.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/gserialver.1 Fri Mar 25 17:50:07 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GSERIALVER 1" ! .TH GSERIALVER 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GSERIALVER 1" ! .TH GSERIALVER 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/gtnameserv.1 gcc-4.6.0/libjava/classpath/doc/gtnameserv.1 *** gcc-4.5.2/libjava/classpath/doc/gtnameserv.1 Thu Dec 16 13:35:14 2010 --- gcc-4.6.0/libjava/classpath/doc/gtnameserv.1 Fri Mar 25 17:50:07 2011 *************** *** 1,15 **** ! .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== - .de Sh \" Subsection heading - .br - .if t .Sp - .ne 5 - .PP - \fB\\$1\fR - .PP - .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp *************** *** 53,59 **** .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ --- 45,51 ---- .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ *************** *** 132,138 **** .\" ======================================================================== .\" .IX Title "GTNAMESERV 1" ! .TH GTNAMESERV 1 "2010-12-16" "0.98" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 124,130 ---- .\" ======================================================================== .\" .IX Title "GTNAMESERV 1" ! .TH GTNAMESERV 1 "2011-03-25" "0.99-pre" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.5.2/libjava/classpath/doc/texinfo.tex gcc-4.6.0/libjava/classpath/doc/texinfo.tex *** gcc-4.5.2/libjava/classpath/doc/texinfo.tex Tue Jan 6 22:44:05 2009 --- gcc-4.6.0/libjava/classpath/doc/texinfo.tex Tue Oct 12 15:55:12 2010 *************** *** 1,13 **** % texinfo.tex -- TeX macros to handle Texinfo files. ! % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % ! \def\texinfoversion{2008-11-17.21} % ! % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ! % 2007, 2008 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as --- 1,13 ---- % texinfo.tex -- TeX macros to handle Texinfo files. ! % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % ! \def\texinfoversion{2009-08-14.15} % ! % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ! % 2007, 2008, 2009 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as *************** *** 100,105 **** --- 100,106 ---- \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% Math-mode def from plain.tex. + \let\ptexraggedright=\raggedright % If this character appears in an error message or help string, it % starts a new line in the output. *************** *** 357,363 **** % We don't want .vr (or whatever) entries like this: % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; ! % it needs to be % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. --- 358,364 ---- % We don't want .vr (or whatever) entries like this: % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; ! % it needs to be % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. *************** *** 708,714 **** \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. ! % \def\onword{on} \def\offword{off} % --- 709,715 ---- \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. ! % \def\onword{on} \def\offword{off} % *************** where each line of input produces a line *** 1284,1290 **** % that's what we do). % double active backslashes. ! % {\catcode`\@=0 \catcode`\\=\active @gdef@activebackslashdouble{% @catcode`@\=@active --- 1285,1291 ---- % that's what we do). % double active backslashes. ! % {\catcode`\@=0 \catcode`\\=\active @gdef@activebackslashdouble{% @catcode`@\=@active *************** where each line of input produces a line *** 1296,1306 **** % us) handles it with this amazing macro to replace tokens, with minor % changes for Texinfo. It is included here under the GPL by permission % from the author, Heiko Oberdiek. ! % % #1 is the tokens to replace. % #2 is the replacement. % #3 is the control sequence with the string. ! % \def\HyPsdSubst#1#2#3{% \def\HyPsdReplace##1#1##2\END{% ##1% --- 1297,1307 ---- % us) handles it with this amazing macro to replace tokens, with minor % changes for Texinfo. It is included here under the GPL by permission % from the author, Heiko Oberdiek. ! % % #1 is the tokens to replace. % #2 is the replacement. % #3 is the control sequence with the string. ! % \def\HyPsdSubst#1#2#3{% \def\HyPsdReplace##1#1##2\END{% ##1% *************** output) for that.)} *** 1331,1341 **** \ifpdf % ! % Color manipulation macros based on pdfcolor.tex. ! \def\cmykDarkRed{0.28 1 1 0.35} ! \def\cmykBlack{0 0 0 1} % - \def\pdfsetcolor#1{\pdfliteral{#1 k}} % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% --- 1332,1348 ---- \ifpdf % ! % Color manipulation macros based on pdfcolor.tex, ! % except using rgb instead of cmyk; the latter is said to render as a ! % very dark gray on-screen and a very dark halftone in print, instead ! % of actual black. ! \def\rgbDarkRed{0.50 0.09 0.12} ! \def\rgbBlack{0 0 0} ! % ! % k sets the color for filling (usual text, etc.); ! % K sets the color for stroking (thin rules, e.g., normal _'s). ! \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% *************** output) for that.)} *** 1344,1350 **** \pdfsetcolor{#1}% } % ! \def\maincolor{\cmykBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} --- 1351,1357 ---- \pdfsetcolor{#1}% } % ! \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} *************** output) for that.)} *** 1439,1446 **** % % by default, use a color that is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. ! \def\urlcolor{\cmykDarkRed} ! \def\linkcolor{\cmykDarkRed} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines --- 1446,1453 ---- % % by default, use a color that is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. ! \def\urlcolor{\rgbDarkRed} ! \def\linkcolor{\rgbDarkRed} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines *************** output) for that.)} *** 1569,1579 **** % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. ! % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% --- 1576,1590 ---- % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. ! % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable + % do we want to go so far as to use \indexnofonts instead of just + % special-casing \var here? + \def\var##1{##1}% + % \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% *************** output) for that.)} *** 1604,1609 **** --- 1615,1621 ---- \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else + % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax *************** end *** 1972,1978 **** % Definitions for a main text size of 11pt. This is the default in % Texinfo. ! % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} --- 1984,1990 ---- % Definitions for a main text size of 11pt. This is the default in % Texinfo. ! % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} *************** end *** 2103,2109 **** % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. ! % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} --- 2115,2121 ---- % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. ! % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} *************** end *** 2192,2198 **** \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} ! \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} --- 2204,2210 ---- \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} ! \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} *************** end *** 2236,2242 **** % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. ! % \def\xword{10} \def\xiword{11} % --- 2248,2254 ---- % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. ! % \def\xword{10} \def\xiword{11} % *************** end *** 2246,2252 **** % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. ! % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi --- 2258,2264 ---- % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. ! % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi *************** end *** 2348,2353 **** --- 2360,2375 ---- \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} + % Fonts for short table of contents. + \setfont\shortcontrm\rmshape{12}{1000}{OT1} + \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 + \setfont\shortcontsl\slshape{12}{1000}{OT1} + \setfont\shortconttt\ttshape{12}{1000}{OT1TT} + + % Define these just so they can be easily changed for other fonts. + \def\angleleft{$\langle$} + \def\angleright{$\rangle$} + % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts *************** end *** 2361,2388 **** % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 - % - % I wish the USA used A4 paper. % --karl, 24jan03. - % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi ! % Define these so they can be easily changed for other fonts. ! \def\angleleft{$\langle$} ! \def\angleright{$\rangle$} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 - % Fonts for short table of contents. - \setfont\shortcontrm\rmshape{12}{1000}{OT1} - \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 - \setfont\shortcontsl\slshape{12}{1000}{OT1} - \setfont\shortconttt\ttshape{12}{1000}{OT1TT} - %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic --- 2383,2510 ---- % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi ! ! \message{markup,} ! ! % Check if we are currently using a typewriter font. Since all the ! % Computer Modern typewriter fonts have zero interword stretch (and ! % shrink), and it is reasonable to expect all typewriter fonts to have ! % this property, we can check that font parameter. ! % ! \def\ifmonospace{\ifdim\fontdimen3\font=0pt } ! ! % Markup style infrastructure. \defmarkupstylesetup\INITMACRO will ! % define and register \INITMACRO to be called on markup style changes. ! % \INITMACRO can check \currentmarkupstyle for the innermost ! % style and the set of \ifmarkupSTYLE switches for all styles ! % currently in effect. ! \newif\ifmarkupvar ! \newif\ifmarkupsamp ! \newif\ifmarkupkey ! %\newif\ifmarkupfile % @file == @samp. ! %\newif\ifmarkupoption % @option == @samp. ! \newif\ifmarkupcode ! \newif\ifmarkupkbd ! %\newif\ifmarkupenv % @env == @code. ! %\newif\ifmarkupcommand % @command == @code. ! \newif\ifmarkuptex % @tex (and part of @math, for now). ! \newif\ifmarkupexample ! \newif\ifmarkupverb ! \newif\ifmarkupverbatim ! ! \let\currentmarkupstyle\empty ! ! \def\setupmarkupstyle#1{% ! \csname markup#1true\endcsname ! \def\currentmarkupstyle{#1}% ! \markupstylesetup ! } ! ! \let\markupstylesetup\empty ! ! \def\defmarkupstylesetup#1{% ! \expandafter\def\expandafter\markupstylesetup ! \expandafter{\markupstylesetup #1}% ! \def#1% ! } ! ! % Markup style setup for left and right quotes. ! \defmarkupstylesetup\markupsetuplq{% ! \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname ! \ifx\temp\relax \markupsetuplqdefault \else \temp \fi ! } ! ! \defmarkupstylesetup\markupsetuprq{% ! \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname ! \ifx\temp\relax \markupsetuprqdefault \else \temp \fi ! } ! ! { ! \catcode`\'=\active ! \catcode`\`=\active ! ! \gdef\markupsetuplqdefault{\let`\lq} ! \gdef\markupsetuprqdefault{\let'\rq} ! ! \gdef\markupsetcodequoteleft{\let`\codequoteleft} ! \gdef\markupsetcodequoteright{\let'\codequoteright} ! ! \gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft} ! } ! ! \let\markupsetuplqcode \markupsetcodequoteleft ! \let\markupsetuprqcode \markupsetcodequoteright ! \let\markupsetuplqexample \markupsetcodequoteleft ! \let\markupsetuprqexample \markupsetcodequoteright ! \let\markupsetuplqverb \markupsetcodequoteleft ! \let\markupsetuprqverb \markupsetcodequoteright ! \let\markupsetuplqverbatim \markupsetcodequoteleft ! \let\markupsetuprqverbatim \markupsetcodequoteright ! ! \let\markupsetuplqsamp \markupsetnoligaturesquoteleft ! \let\markupsetuplqkbd \markupsetnoligaturesquoteleft ! ! % Allow an option to not replace quotes with a regular directed right ! % quote/apostrophe (char 0x27), but instead use the undirected quote ! % from cmtt (char 0x0d). The undirected quote is ugly, so don't make it ! % the default, but it works for pasting with more pdf viewers (at least ! % evince), the lilypond developers report. xpdf does work with the ! % regular 0x27. ! % ! \def\codequoteright{% ! \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax ! \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax ! '% ! \else \char'15 \fi ! \else \char'15 \fi ! } ! % ! % and a similar option for the left quote char vs. a grave accent. ! % Modern fonts display ASCII 0x60 as a grave accent, so some people like ! % the code environments to do likewise. ! % ! \def\codequoteleft{% ! \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax ! \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax ! % [Knuth] pp. 380,381,391 ! % \relax disables Spanish ligatures ?` and !` of \tt font. ! \relax`% ! \else \char'22 \fi ! \else \char'22 \fi ! } ! ! % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. ! \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic *************** end *** 2397,2403 **** % @var is set to this for defun arguments. \def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} ! % like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitalicx} --- 2519,2525 ---- % @var is set to this for defun arguments. \def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} ! % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitalicx} *************** end *** 2407,2413 **** \let\dfn=\smartslanted \let\emph=\smartitalic ! % @b, explicit bold. \def\b#1{{\bf #1}} \let\strong=\b --- 2529,2540 ---- \let\dfn=\smartslanted \let\emph=\smartitalic ! % Explicit font changes: @r, @sc, undocumented @ii. ! \def\r#1{{\rm #1}} % roman font ! \def\sc#1{{\smallcaps#1}} % smallcaps font ! \def\ii#1{{\it #1}} % italic font ! ! % @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b *************** end *** 2439,2460 **** \catcode`@=\other \def\endofsentencespacefactor{3000}% default \def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null } \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} ! \setfont\keyrm\rmshape{8}{1000}{OT1} ! \font\keysy=cmsy9 ! \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% ! \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% ! \vbox{\hrule\kern-0.4pt ! \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% ! \kern-0.4pt\hrule}% ! \kern-.06em\raise0.4pt\hbox{\angleright}}}} ! \def\key #1{{\setupmarkupstyle{key}\nohyphenation \uppercase{#1}}\null} ! % The old definition, with no lozenge: ! %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @file, @option are the same as @samp. --- 2566,2600 ---- \catcode`@=\other \def\endofsentencespacefactor{3000}% default + % @t, explicit typewriter. \def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null } + + % @samp. \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} ! ! % definition of @key that produces a lozenge. Doesn't adjust to text size. ! %\setfont\keyrm\rmshape{8}{1000}{OT1} ! %\font\keysy=cmsy9 ! %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% ! % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% ! % \vbox{\hrule\kern-0.4pt ! % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% ! % \kern-0.4pt\hrule}% ! % \kern-.06em\raise0.4pt\hbox{\angleright}}}} ! ! % definition of @key with no lozenge. If the current font is already ! % monospace, don't change it; that way, we respect @kbdinputstyle. But ! % if it isn't monospace, then use \tt. ! % ! \def\key#1{{\setupmarkupstyle{key}% ! \nohyphenation ! \ifmonospace\else\tt\fi ! #1}\null} ! ! % ctrl is no longer a Texinfo command. \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @file, @option are the same as @samp. *************** end *** 2532,2538 **** % each of the four underscores in __typeof__. This is undesirable in % some manuals, especially if they don't have long identifiers in % general. @allowcodebreaks provides a way to control this. ! % \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} --- 2672,2678 ---- % each of the four underscores in __typeof__. This is undesirable in % some manuals, especially if they don't have long identifiers in % general. @allowcodebreaks provides a way to control this. ! % \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} *************** end *** 2552,2557 **** --- 2692,2698 ---- % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. + \def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), *************** end *** 2573,2579 **** \def\wordexample{example} \def\wordcode{code} ! % Default is `distinct.' \kbdinputstyle distinct \def\xkey{\key} --- 2714,2720 ---- \def\wordexample{example} \def\wordcode{code} ! % Default is `distinct'. \kbdinputstyle distinct \def\xkey{\key} *************** end *** 2643,2676 **** \let\email=\uref \fi - % Check if we are currently using a typewriter font. Since all the - % Computer Modern typewriter fonts have zero interword stretch (and - % shrink), and it is reasonable to expect all typewriter fonts to have - % this property, we can check that font parameter. - % - \def\ifmonospace{\ifdim\fontdimen3\font=0pt } - % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} - \def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} - % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} - % Explicit font changes: @r, @sc, undocumented @ii. - \def\r#1{{\rm #1}} % roman font - \def\sc#1{{\smallcaps#1}} % smallcaps font - \def\ii#1{{\it #1}} % italic font - % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. ! % \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\selectfonts\lsize #1}% --- 2784,2803 ---- \let\email=\uref \fi % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. ! % \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\selectfonts\lsize #1}% *************** end *** 2682,2688 **** % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. ! % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% --- 2809,2815 ---- % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. ! % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% *************** end *** 2692,2697 **** --- 2819,2862 ---- \fi } + + \message{glyphs,} + + % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. + % + % Since these characters are used in examples, they should be an even number of + % \tt widths. Each \tt character is 1en, so two makes it 1em. + % + \def\point{$\star$} + \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} + \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} + \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} + \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} + \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} + + % The @error{} command. + % Adapted from the TeXbook's \boxit. + % + \newbox\errorbox + % + {\tentt \global\dimen0 = 3em}% Width of the box. + \dimen2 = .55pt % Thickness of rules + % The text. (`r' is open on the right, `e' somewhat less so on the left.) + \setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} + % + \setbox\errorbox=\hbox to \dimen0{\hfil + \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. + \advance\hsize by -2\dimen2 % Rules. + \vbox{% + \hrule height\dimen2 + \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. + \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. + \kern3pt\vrule width\dimen2}% Space to right. + \hrule height\dimen2} + \hfil} + % + \def\error{\leavevmode\lower.7ex\copy\errorbox} + % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{{\it\$}} *************** end *** 2701,2752 **** % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. ! % % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. ! % % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted ! % % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. ! % % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. ! % ! % \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. ! % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. ! % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. ! % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % ! \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize ! \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } ! % Hacks for glyphs from the EC fonts similar to \euro. We don't ! % use \let for the aliases, because sometimes we redefine the original ! % macro, and the alias should reflect the redefinition. \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} --- 2866,2924 ---- % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. ! % % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. ! % % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted ! % % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. ! % % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. ! % ! % \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. ! % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. ! % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. ! % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % ! \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize ! \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } ! % Glyphs from the EC fonts. We don't use \let for the aliases, because ! % sometimes we redefine the original macro, and the alias should reflect ! % the redefinition. ! % ! % Use LaTeX names for the Icelandic letters. ! \def\DH{{\ecfont \char"D0}} % Eth ! \def\dh{{\ecfont \char"F0}} % eth ! \def\TH{{\ecfont \char"DE}} % Thorn ! \def\th{{\ecfont \char"FE}} % thorn ! % \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} *************** end *** 2760,2766 **** % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. ! % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. --- 2932,2938 ---- % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. ! % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. *************** end *** 2783,2788 **** --- 2955,2961 ---- \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % + % Use the ec* fonts (cm-super in outline format) for non-CM glyphs. \def\ecfont{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German *************** end *** 2817,2823 **** % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. ! % \ifx\Orb\undefined \def\Orb{\mathhexbox20D} \fi --- 2990,2996 ---- % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. ! % \ifx\Orb\undefined \def\Orb{\mathhexbox20D} \fi *************** end *** 3163,3169 **** % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. ! % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse --- 3336,3342 ---- % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. ! % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse *************** end *** 3257,3265 **** --- 3430,3447 ---- \parindent=0pt \parskip=\smallskipamount \ifdim\parskip=0pt \parskip=2pt \fi + % + % Try typesetting the item mark that if the document erroneously says + % something like @itemize @samp (intending @table), there's an error + % right away at the @itemize. It's not the best error message in the + % world, but it's better than leaving it to the @item. This means if + % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% + \setbox0 = \hbox{\itemcontents}% + % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi + % \let\item=\itemizeitem } *************** end *** 3280,3285 **** --- 3462,3468 ---- \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% + % \vadjust{\penalty 1200}}% not good to break after first line of item. \flushcr } *************** end *** 3501,3512 **** % % @headitem starts a heading row, which we typeset in bold. % Assignments have to be global since we are inside the implicit group ! % of an alignment entry. Note that \everycr resets \everytab. ! \def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}% % % A \tab used to include \hskip1sp. But then the space in a template % line is not enough. That is bad. So let's go back to just `&' until ! % we encounter the problem it was intended to solve again. % --karl, nathan@acm.org, 20apr99. \def\tab{\checkenv\multitable &\the\everytab}% --- 3684,3702 ---- % % @headitem starts a heading row, which we typeset in bold. % Assignments have to be global since we are inside the implicit group ! % of an alignment entry. \everycr resets \everytab so we don't have to ! % undo it ourselves. ! \def\headitemfont{\b}% for people to use in the template row; not changeable ! \def\headitem{% ! \checkenv\multitable ! \crcr ! \global\everytab={\bf}% can't use \headitemfont since the parsing differs ! \the\everytab % for the first item ! }% % % A \tab used to include \hskip1sp. But then the space in a template % line is not enough. That is bad. So let's go back to just `&' until ! % we again encounter the problem the 1sp was intended to solve. % --karl, nathan@acm.org, 20apr99. \def\tab{\checkenv\multitable &\the\everytab}% *************** end *** 3959,3965 **** % processing continues to some further point. On the other hand, it % seems \endinput does not hurt in the printed index arg, since that % is still getting written without apparent harm. ! % % Sample source (mac-idx3.tex, reported by Graham Percival to % help-texinfo, 22may06): % @macro funindex {WORD} --- 4149,4155 ---- % processing continues to some further point. On the other hand, it % seems \endinput does not hurt in the printed index arg, since that % is still getting written without apparent harm. ! % % Sample source (mac-idx3.tex, reported by Graham Percival to % help-texinfo, 22may06): % @macro funindex {WORD} *************** end *** 3967,3978 **** % @end macro % ... % @funindex commtest ! % % The above is not enough to reproduce the bug, but it gives the flavor. ! % % Sample whatsit resulting: % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} ! % % So: \let\endinput = \empty % --- 4157,4168 ---- % @end macro % ... % @funindex commtest ! % % The above is not enough to reproduce the bug, but it gives the flavor. ! % % Sample whatsit resulting: % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} ! % % So: \let\endinput = \empty % *************** end *** 4024,4042 **** % Non-English letters. \definedummyword\AA \definedummyword\AE \definedummyword\L - \definedummyword\OE \definedummyword\O \definedummyword\aa \definedummyword\ae \definedummyword\l - \definedummyword\oe \definedummyword\o ! \definedummyword\ss ! \definedummyword\exclamdown ! \definedummyword\questiondown \definedummyword\ordf \definedummyword\ordm % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf --- 4214,4236 ---- % Non-English letters. \definedummyword\AA \definedummyword\AE + \definedummyword\DH \definedummyword\L \definedummyword\O + \definedummyword\OE + \definedummyword\TH \definedummyword\aa \definedummyword\ae + \definedummyword\dh + \definedummyword\exclamdown \definedummyword\l \definedummyword\o ! \definedummyword\oe \definedummyword\ordf \definedummyword\ordm + \definedummyword\questiondown + \definedummyword\ss + \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf *************** end *** 4131,4136 **** --- 4325,4331 ---- \definedummyword\code \definedummyword\command \definedummyword\dfn + \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file *************** end *** 4179,4197 **** % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\aa{aa}% \def\ae{ae}% \def\l{l}% \def\oe{oe}% - \def\o{o}% - \def\ss{ss}% - \def\exclamdown{!}% - \def\questiondown{?}% \def\ordf{a}% \def\ordm{o}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% --- 4374,4396 ---- % Non-English letters. \def\AA{AA}% \def\AE{AE}% + \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% + \def\TH{ZZZ}% \def\aa{aa}% \def\ae{ae}% + \def\dh{dzz}% + \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% \def\ordf{a}% \def\ordm{o}% + \def\o{o}% + \def\questiondown{?}% + \def\ss{ss}% + \def\th{zzz}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% *************** end *** 4201,4220 **** \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% - \def\registeredsymbol{R}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% - \def\expansion{==>}% \def\minus{-}% - \def\pounds{pounds}% \def\point{.}% \def\print{-|}% \def\quotedblbase{"}% \def\quotedblleft{"}% --- 4400,4418 ---- \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% + \def\expansion{==>}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% \def\minus{-}% \def\point{.}% + \def\pounds{pounds}% \def\print{-|}% \def\quotedblbase{"}% \def\quotedblleft{"}% *************** end *** 4222,4240 **** \def\quoteleft{`}% \def\quoteright{'}% \def\quotesinglbase{,}% \def\result{=>}% ! \def\textdegree{degrees}% % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. ! % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. ! % \macrolist } --- 4420,4439 ---- \def\quoteleft{`}% \def\quoteright{'}% \def\quotesinglbase{,}% + \def\registeredsymbol{R}% \def\result{=>}% ! \def\textdegree{o}% % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. ! % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. ! % \macrolist } *************** end *** 4362,4368 **** % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: ! % % @deffn deffn-whatever % @vindex index-whatever % Description. --- 4561,4567 ---- % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: ! % % @deffn deffn-whatever % @vindex index-whatever % Description. *************** end *** 4943,4949 **** \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % ! \message{\putwordChapter\space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% --- 5142,5150 ---- \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % ! % \putwordChapter can contain complex things in translations. ! \toks0=\expandafter{\putwordChapter}% ! \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% *************** end *** 4954,4968 **** \global\let\subsubsection = \numberedsubsubsec } ! \outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % ! \def\appendixnum{\putwordAppendix\space \appendixletter}% ! \message{\appendixnum}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % --- 5155,5171 ---- \global\let\subsubsection = \numberedsubsubsec } ! \outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz ! % \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % ! % \putwordAppendix can contain complex things in translations. ! \toks0=\expandafter{\putwordAppendix}% ! \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % *************** end *** 5102,5108 **** \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright \rmisbold #1\hfill}}% \bigskip \par\penalty 200\relax \suppressfirstparagraphindent --- 5305,5311 ---- \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\ptexraggedright \rmisbold #1\hfill}}% \bigskip \par\penalty 200\relax \suppressfirstparagraphindent *************** end *** 5195,5201 **** \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% ! \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \else --- 5398,5407 ---- \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% ! % \noexpand\putwordAppendix avoids expanding indigestible ! % commands in some of the translations. ! \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} ! \noexpand\thischapternum: \noexpand\thischaptername}% }% \else *************** end *** 5203,5209 **** \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% ! \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi --- 5409,5418 ---- \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% ! % \noexpand\putwordChapter avoids expanding indigestible ! % commands in some of the translations. ! \gdef\noexpand\thischapter{\noexpand\putwordChapter{} ! \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi *************** end *** 5259,5265 **** % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. ! \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% --- 5468,5474 ---- % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. ! \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% *************** end *** 5283,5289 **** % \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright \rmisbold #1\hfill}}\bigskip \par\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts --- 5492,5498 ---- % \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\ptexraggedright \rmisbold #1\hfill}}\bigskip \par\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts *************** end *** 5346,5352 **** \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% ! \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi --- 5555,5564 ---- \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% ! % \noexpand\putwordSection avoids expanding indigestible ! % commands in some of the translations. ! \gdef\noexpand\thissection{\noexpand\putwordSection{} ! \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi *************** end *** 5356,5367 **** \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% ! \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark --- 5568,5587 ---- \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% ! % \noexpand\putwordSection avoids expanding indigestible ! % commands in some of the translations. ! \gdef\noexpand\thissection{\noexpand\putwordSection{} ! \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % + % Go into vertical mode. Usually we'll already be there, but we + % don't want the following whatsit to end up in a preceding paragraph + % if the document didn't happen to have a blank line. + \par + % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark *************** end *** 5411,5417 **** \nobreak % % Output the actual section heading. ! \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% --- 5631,5637 ---- \nobreak % % Output the actual section heading. ! \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% *************** end *** 5427,5437 **** % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) \vskip-\parskip ! % % This is purely so the last item on the list is a known \penalty > % 10000. This is so \startdefun can avoid allowing breakpoints after % section headings. Otherwise, it would insert a valid breakpoint between: ! % % @section sec-whatever % @deffn def-whatever \penalty 10001 --- 5647,5657 ---- % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) \vskip-\parskip ! % % This is purely so the last item on the list is a known \penalty > % 10000. This is so \startdefun can avoid allowing breakpoints after % section headings. Otherwise, it would insert a valid breakpoint between: ! % % @section sec-whatever % @deffn def-whatever \penalty 10001 *************** end *** 5489,5495 **** % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. ! % \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active --- 5709,5715 ---- % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. ! % \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active *************** end *** 5539,5545 **** % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. ! % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. --- 5759,5765 ---- % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. ! % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. *************** end *** 5709,5852 **** \message{environments,} % @foo ... @end foo. - % Markup style infrastructure. \defmarkupstylesetup\INITMACRO will - % define and register \INITMACRO to be called on markup style changes. - % \INITMACRO can check \currentmarkupstyle for the innermost - % style and the set of \ifmarkupSTYLE switches for all styles - % currently in effect. - \newif\ifmarkupvar - \newif\ifmarkupsamp - \newif\ifmarkupkey - %\newif\ifmarkupfile % @file == @samp. - %\newif\ifmarkupoption % @option == @samp. - \newif\ifmarkupcode - \newif\ifmarkupkbd - %\newif\ifmarkupenv % @env == @code. - %\newif\ifmarkupcommand % @command == @code. - \newif\ifmarkuptex % @tex (and part of @math, for now). - \newif\ifmarkupexample - \newif\ifmarkupverb - \newif\ifmarkupverbatim - - \let\currentmarkupstyle\empty - - \def\setupmarkupstyle#1{% - \csname markup#1true\endcsname - \def\currentmarkupstyle{#1}% - \markupstylesetup - } - - \let\markupstylesetup\empty - - \def\defmarkupstylesetup#1{% - \expandafter\def\expandafter\markupstylesetup - \expandafter{\markupstylesetup #1}% - \def#1% - } - - % Markup style setup for left and right quotes. - \defmarkupstylesetup\markupsetuplq{% - \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname - \ifx\temp\relax \markupsetuplqdefault \else \temp \fi - } - - \defmarkupstylesetup\markupsetuprq{% - \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname - \ifx\temp\relax \markupsetuprqdefault \else \temp \fi - } - - { - \catcode`\'=\active - \catcode`\`=\active - - \gdef\markupsetuplqdefault{\let`\lq} - \gdef\markupsetuprqdefault{\let'\rq} - - \gdef\markupsetcodequoteleft{\let`\codequoteleft} - \gdef\markupsetcodequoteright{\let'\codequoteright} - - \gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft} - } - - \let\markupsetuplqcode \markupsetcodequoteleft - \let\markupsetuprqcode \markupsetcodequoteright - \let\markupsetuplqexample \markupsetcodequoteleft - \let\markupsetuprqexample \markupsetcodequoteright - \let\markupsetuplqverb \markupsetcodequoteleft - \let\markupsetuprqverb \markupsetcodequoteright - \let\markupsetuplqverbatim \markupsetcodequoteleft - \let\markupsetuprqverbatim \markupsetcodequoteright - - \let\markupsetuplqsamp \markupsetnoligaturesquoteleft - \let\markupsetuplqkbd \markupsetnoligaturesquoteleft - - % Allow an option to not replace quotes with a regular directed right - % quote/apostrophe (char 0x27), but instead use the undirected quote - % from cmtt (char 0x0d). The undirected quote is ugly, so don't make it - % the default, but it works for pasting with more pdf viewers (at least - % evince), the lilypond developers report. xpdf does work with the - % regular 0x27. - % - \def\codequoteright{% - \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax - \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax - '% - \else \char'15 \fi - \else \char'15 \fi - } - % - % and a similar option for the left quote char vs. a grave accent. - % Modern fonts display ASCII 0x60 as a grave accent, so some people like - % the code environments to do likewise. - % - \def\codequoteleft{% - \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax - \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax - % [Knuth] pp. 380,381,391 - % \relax disables Spanish ligatures ?` and !` of \tt font. - \relax`% - \else \char'22 \fi - \else \char'22 \fi - } - - % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. - \def\noligaturesquoteleft{\relax\lq} - - % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. - % - % Since these characters are used in examples, they should be an even number of - % \tt widths. Each \tt character is 1en, so two makes it 1em. - % - \def\point{$\star$} - \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} - \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} - \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} - \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} - \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} - - % The @error{} command. - % Adapted from the TeXbook's \boxit. - % - \newbox\errorbox - % - {\tentt \global\dimen0 = 3em}% Width of the box. - \dimen2 = .55pt % Thickness of rules - % The text. (`r' is open on the right, `e' somewhat less so on the left.) - \setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} - % - \setbox\errorbox=\hbox to \dimen0{\hfil - \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. - \advance\hsize by -2\dimen2 % Rules. - \vbox{% - \hrule height\dimen2 - \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. - \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. - \kern3pt\vrule width\dimen2}% Space to right. - \hrule height\dimen2} - \hfil} - % - \def\error{\leavevmode\lower.7ex\copy\errorbox} - % @tex ... @end tex escapes into raw Tex temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain tex @ character. --- 5929,5934 ---- *************** end *** 5999,6004 **** --- 6081,6087 ---- % This macro is called at the beginning of all the @example variants, % inside a group. + \newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \hfuzz = 12pt % Don't be fussy *************** end *** 6006,6012 **** --- 6089,6100 ---- \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt + % Turn off paragraph indentation but redefine \indent to emulate + % the normal \indent. + \nonfillparindent=\parindent \parindent = 0pt + \let\indent\nonfillindent + % \emergencystretch = 0pt % don't try to avoid overfull boxes \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing *************** end *** 6017,6022 **** --- 6105,6128 ---- \let\exdent=\nofillexdent } + \begingroup + \obeyspaces + % We want to swallow spaces (but not other tokens) after the fake + % @indent in our nonfill-environments, where spaces are normally + % active and set to @tie, resulting in them not being ignored after + % @indent. + \gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% + \gdef\nonfillindentcheck{% + \ifx\temp % + \expandafter\nonfillindentgobble% + \else% + \leavevmode\nonfillindentbox% + \fi% + }% + \endgroup + \def\nonfillindentgobble#1{\nonfillindent} + \def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} + % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: *************** end *** 6103,6108 **** --- 6209,6238 ---- \let\Eflushright = \afterenvbreak + % @raggedright does more-or-less normal line breaking but no right + % justification. From plain.tex. + \envdef\raggedright{% + \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax + } + \let\Eraggedright\par + + \envdef\raggedleft{% + \parindent=0pt \leftskip0pt plus2em + \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt + \hbadness=10000 % Last line will usually be underfull, so turn off + % badness reporting. + } + \let\Eraggedleft\par + + \envdef\raggedcenter{% + \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em + \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt + \hbadness=10000 % Last line will usually be underfull, so turn off + % badness reporting. + } + \let\Eraggedcenter\par + + % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and *************** end *** 6721,6727 **** % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). ! % \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname --- 6851,6857 ---- % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). ! % \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname *************** end *** 7881,7901 **** \closein 1 \endgroup % end raw TeX \endgroup} - } % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. ! % ! \def\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \input txi-#1.tex \fi \closein 1 } % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current --- 8011,8032 ---- \closein 1 \endgroup % end raw TeX \endgroup} % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. ! % ! \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else + \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } + }% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current *************** directory should work if nowhere else do *** 7904,7919 **** % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. ! % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. ! % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) ! % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. --- 8035,8050 ---- % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. ! % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. ! % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) ! % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. *************** directory should work if nowhere else do *** 7968,7974 **** \setnonasciicharscatcode\active \lattwochardefs % ! \else \ifx \declaredencoding \latone \setnonasciicharscatcode\active \latonechardefs % --- 8099,8105 ---- \setnonasciicharscatcode\active \lattwochardefs % ! \else \ifx \declaredencoding \latone \setnonasciicharscatcode\active \latonechardefs % *************** directory should work if nowhere else do *** 7980,7986 **** \setnonasciicharscatcode\active \utfeightchardefs % ! \else \message{Unknown document encoding #1, ignoring.}% % \fi % utfeight --- 8111,8117 ---- \setnonasciicharscatcode\active \utfeightchardefs % ! \else \message{Unknown document encoding #1, ignoring.}% % \fi % utfeight *************** directory should work if nowhere else do *** 7992,7998 **** % A message to be logged when using a character that isn't available % the default font encoding (OT1). ! % \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. --- 8123,8129 ---- % A message to be logged when using a character that isn't available % the default font encoding (OT1). ! % \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. *************** directory should work if nowhere else do *** 8005,8025 **** % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% ! \gdef^^a0{~} \gdef^^a1{\exclamdown} ! \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\missingcharmsg{YEN SIGN}} ! \gdef^^a6{\missingcharmsg{BROKEN BAR}} \gdef^^a7{\S} ! \gdef^^a8{\"{}} ! \gdef^^a9{\copyright} \gdef^^aa{\ordf} \gdef^^ab{\guillemetleft} \gdef^^ac{$\lnot$} ! \gdef^^ad{\-} ! \gdef^^ae{\registeredsymbol} \gdef^^af{\={}} % \gdef^^b0{\textdegree} --- 8136,8156 ---- % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% ! \gdef^^a0{~} \gdef^^a1{\exclamdown} ! \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\missingcharmsg{YEN SIGN}} ! \gdef^^a6{\missingcharmsg{BROKEN BAR}} \gdef^^a7{\S} ! \gdef^^a8{\"{}} ! \gdef^^a9{\copyright} \gdef^^aa{\ordf} \gdef^^ab{\guillemetleft} \gdef^^ac{$\lnot$} ! \gdef^^ad{\-} ! \gdef^^ae{\registeredsymbol} \gdef^^af{\={}} % \gdef^^b0{\textdegree} *************** directory should work if nowhere else do *** 8046,8052 **** \gdef^^c2{\^A} \gdef^^c3{\~A} \gdef^^c4{\"A} ! \gdef^^c5{\ringaccent A} \gdef^^c6{\AE} \gdef^^c7{\cedilla C} \gdef^^c8{\`E} --- 8177,8183 ---- \gdef^^c2{\^A} \gdef^^c3{\~A} \gdef^^c4{\"A} ! \gdef^^c5{\ringaccent A} \gdef^^c6{\AE} \gdef^^c7{\cedilla C} \gdef^^c8{\`E} *************** directory should work if nowhere else do *** 8058,8064 **** \gdef^^ce{\^I} \gdef^^cf{\"I} % ! \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}} \gdef^^d1{\~N} \gdef^^d2{\`O} \gdef^^d3{\'O} --- 8189,8195 ---- \gdef^^ce{\^I} \gdef^^cf{\"I} % ! \gdef^^d0{\DH} \gdef^^d1{\~N} \gdef^^d2{\`O} \gdef^^d3{\'O} *************** directory should work if nowhere else do *** 8072,8078 **** \gdef^^db{\^U} \gdef^^dc{\"U} \gdef^^dd{\'Y} ! \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}} \gdef^^df{\ss} % \gdef^^e0{\`a} --- 8203,8209 ---- \gdef^^db{\^U} \gdef^^dc{\"U} \gdef^^dd{\'Y} ! \gdef^^de{\TH} \gdef^^df{\ss} % \gdef^^e0{\`a} *************** directory should work if nowhere else do *** 8092,8098 **** \gdef^^ee{\^{\dotless i}} \gdef^^ef{\"{\dotless i}} % ! \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}} \gdef^^f1{\~n} \gdef^^f2{\`o} \gdef^^f3{\'o} --- 8223,8229 ---- \gdef^^ee{\^{\dotless i}} \gdef^^ef{\"{\dotless i}} % ! \gdef^^f0{\dh} \gdef^^f1{\~n} \gdef^^f2{\`o} \gdef^^f3{\'o} *************** directory should work if nowhere else do *** 8106,8112 **** \gdef^^fb{\^u} \gdef^^fc{\"u} \gdef^^fd{\'y} ! \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}} \gdef^^ff{\"y} } --- 8237,8243 ---- \gdef^^fb{\^u} \gdef^^fc{\"u} \gdef^^fd{\'y} ! \gdef^^fe{\th} \gdef^^ff{\"y} } *************** directory should work if nowhere else do *** 8178,8184 **** \gdef^^ce{\^I} \gdef^^cf{\v D} % ! \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}} \gdef^^d1{\'N} \gdef^^d2{\v N} \gdef^^d3{\'O} --- 8309,8315 ---- \gdef^^ce{\^I} \gdef^^cf{\v D} % ! \gdef^^d0{\DH} \gdef^^d1{\'N} \gdef^^d2{\v N} \gdef^^d3{\'O} *************** directory should work if nowhere else do *** 8187,8193 **** \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\v R} ! \gdef^^d9{\ringaccent U} \gdef^^da{\'U} \gdef^^db{\H U} \gdef^^dc{\"U} --- 8318,8324 ---- \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\v R} ! \gdef^^d9{\ringaccent U} \gdef^^da{\'U} \gdef^^db{\H U} \gdef^^dc{\"U} *************** directory should work if nowhere else do *** 8212,8218 **** \gdef^^ee{\^\i} \gdef^^ef{\v d} % ! \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}} \gdef^^f1{\'n} \gdef^^f2{\v n} \gdef^^f3{\'o} --- 8343,8349 ---- \gdef^^ee{\^\i} \gdef^^ef{\v d} % ! \gdef^^f0{\dh} \gdef^^f1{\'n} \gdef^^f2{\v n} \gdef^^f3{\'o} *************** directory should work if nowhere else do *** 8231,8241 **** } % UTF-8 character definitions. ! % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. ! % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz --- 8362,8372 ---- } % UTF-8 character definitions. ! % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. ! % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz *************** directory should work if nowhere else do *** 8385,8390 **** --- 8516,8522 ---- \DeclareUnicodeCharacter{00CE}{\^I} \DeclareUnicodeCharacter{00CF}{\"I} + \DeclareUnicodeCharacter{00D0}{\DH} \DeclareUnicodeCharacter{00D1}{\~N} \DeclareUnicodeCharacter{00D2}{\`O} \DeclareUnicodeCharacter{00D3}{\'O} *************** directory should work if nowhere else do *** 8397,8402 **** --- 8529,8535 ---- \DeclareUnicodeCharacter{00DB}{\^U} \DeclareUnicodeCharacter{00DC}{\"U} \DeclareUnicodeCharacter{00DD}{\'Y} + \DeclareUnicodeCharacter{00DE}{\TH} \DeclareUnicodeCharacter{00DF}{\ss} \DeclareUnicodeCharacter{00E0}{\`a} *************** directory should work if nowhere else do *** 8416,8421 **** --- 8549,8555 ---- \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} + \DeclareUnicodeCharacter{00F0}{\dh} \DeclareUnicodeCharacter{00F1}{\~n} \DeclareUnicodeCharacter{00F2}{\`o} \DeclareUnicodeCharacter{00F3}{\'o} *************** directory should work if nowhere else do *** 8428,8433 **** --- 8562,8568 ---- \DeclareUnicodeCharacter{00FB}{\^u} \DeclareUnicodeCharacter{00FC}{\"u} \DeclareUnicodeCharacter{00FD}{\'y} + \DeclareUnicodeCharacter{00FE}{\th} \DeclareUnicodeCharacter{00FF}{\"y} \DeclareUnicodeCharacter{0100}{\=A} *************** directory should work if nowhere else do *** 8972,8977 **** --- 9107,9115 ---- \message{and turning on texinfo input format.} + % DEL is a comment character, in case @c does not suffice. + \catcode`\^^? = 14 + % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \catcode`\~=\other *************** directory should work if nowhere else do *** 9081,9087 **** % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. ! % @def@normalturnoffactive{% @let\=@normalbackslash @let"=@normaldoublequote --- 9219,9225 ---- % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. ! % @def@normalturnoffactive{% @let\=@normalbackslash @let"=@normaldoublequote *************** directory should work if nowhere else do *** 9137,9143 **** @catcode`@`=@active @markupsetuplqdefault @markupsetuprqdefault ! @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" --- 9275,9281 ---- @catcode`@`=@active @markupsetuplqdefault @markupsetuprqdefault ! @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/Makefile.in gcc-4.6.0/libjava/classpath/examples/Makefile.in *** gcc-4.5.2/libjava/classpath/examples/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/examples/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = README $(srcdir)/Makefile. *** 41,46 **** --- 41,49 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 59,67 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 62,68 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java Tue Jan 11 19:46:05 2011 *************** public class Demo *** 89,95 **** System.out.println("Starting the GNU Classpath " + "built-in transient naming service" ); ! final String[] args = an_args; new Thread() --- 89,95 ---- System.out.println("Starting the GNU Classpath " + "built-in transient naming service" ); ! final String[] args = an_args; new Thread() diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java Tue Jan 11 19:46:05 2011 *************** public class Demo *** 90,96 **** System.out.print("."); } System.out.println("ok."); ! System.out.println(); // Test the stream oriented communication. DirectTest.main(args); --- 90,96 ---- System.out.print("."); } System.out.println("ok."); ! System.out.println(); // Test the stream oriented communication. DirectTest.main(args); diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java Tue Jan 11 19:46:05 2011 *************** package gnu.classpath.examples.CORBA.Sim *** 47,57 **** public class StructureToPass implements org.omg.CORBA.portable.IDLEntity { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The first string, stored in this structure (defined as * "narrow string"). --- 47,57 ---- public class StructureToPass implements org.omg.CORBA.portable.IDLEntity { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The first string, stored in this structure (defined as * "narrow string"). diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.portable.IDLEntity; *** 47,57 **** public class StructureToReturn implements IDLEntity { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The string field. */ --- 47,57 ---- public class StructureToReturn implements IDLEntity { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The string field. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java Tue Jan 11 19:46:05 2011 *************** package gnu.classpath.examples.CORBA.Sim *** 47,57 **** public class TreeNode implements org.omg.CORBA.portable.IDLEntity { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** The TreeNode name */ public String name = null; --- 47,57 ---- public class TreeNode implements org.omg.CORBA.portable.IDLEntity { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** The TreeNode name */ public String name = null; diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java Tue Jan 11 19:46:05 2011 *************** public class WeThrowThisException *** 53,63 **** extends UserException implements IDLEntity { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Our specific field, transferred to client. */ --- 53,63 ---- extends UserException implements IDLEntity { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Our specific field, transferred to client. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java Tue Jan 11 19:46:05 2011 *************** public abstract class WeThrowThisExcepti *** 114,117 **** ostream.write_string(id()); ostream.write_long(value.ourField); } ! } \ No newline at end of file --- 114,117 ---- ostream.write_string(id()); ostream.write_long(value.ourField); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.portable.ResponseHa *** 54,60 **** /** * The base for the class that is actually implementing the functionality * of the object on the server side ({@link DemoServant} of our case). ! * * Following CORBA standards, the name of this class must start from * underscore and end by the "ImplBase". * --- 54,60 ---- /** * The base for the class that is actually implementing the functionality * of the object on the server side ({@link DemoServant} of our case). ! * * Following CORBA standards, the name of this class must start from * underscore and end by the "ImplBase". * diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.portable.RemarshalE *** 55,61 **** * side. It has all the same methods as the actual implementation * on the server side. These methods contain the code for remote * invocation. ! * * Following CORBA standards, the name of this class must start from * underscore and end by the "Stub". * --- 55,61 ---- * side. It has all the same methods as the actual implementation * on the server side. These methods contain the code for remote * invocation. ! * * Following CORBA standards, the name of this class must start from * underscore and end by the "Stub". * diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.JScrollPane; *** 56,63 **** * The purpose of this simple example is to check if the mouse events are * correctly received in a scrollable canvas and also if the canvas are * correctly repainted. The similar canvas are used in various games and ! * interactive demonstrations. ! * * The user can set one of the three possible figures with the different * mouse buttons. The figure must be set where the user have clicked the * mouse. --- 56,63 ---- * The purpose of this simple example is to check if the mouse events are * correctly received in a scrollable canvas and also if the canvas are * correctly repainted. The similar canvas are used in various games and ! * interactive demonstrations. ! * * The user can set one of the three possible figures with the different * mouse buttons. The figure must be set where the user have clicked the * mouse. *************** public class CanvasWorld *** 82,98 **** * Black cross, set by the right mouse button. */ public static final int BLACK = 1; ! /** * Blue and smaller oval, set by the middle mouse button. */ public static final int HINT = 2; ! /** * The message string is displayed at the top of the window. */ String message = "Click left, right or middle button in to set the figure"; ! /** * The additinal message, related to the mouse events. */ --- 82,98 ---- * Black cross, set by the right mouse button. */ public static final int BLACK = 1; ! /** * Blue and smaller oval, set by the middle mouse button. */ public static final int HINT = 2; ! /** * The message string is displayed at the top of the window. */ String message = "Click left, right or middle button in to set the figure"; ! /** * The additinal message, related to the mouse events. */ *************** public class CanvasWorld *** 117,123 **** * The collection of the black crosses. */ ArrayList blacks = new ArrayList(); ! /** * The collection of the smaller blue crosses. */ --- 117,123 ---- * The collection of the black crosses. */ ArrayList blacks = new ArrayList(); ! /** * The collection of the smaller blue crosses. */ *************** public class CanvasWorld *** 147,158 **** g.fillRect(0, 0, w, h); drawGrid(w, h, g); ! g.setColor(Color.black); ! g.drawString(message, W, W); g.drawString(mouse, W, 2*W); ! drawFigures(g); } --- 147,158 ---- g.fillRect(0, 0, w, h); drawGrid(w, h, g); ! g.setColor(Color.black); ! g.drawString(message, W, W); g.drawString(mouse, W, 2*W); ! drawFigures(g); } *************** public class CanvasWorld *** 177,183 **** g.setColor(Color.lightGray); int xs = 2*W+W/2; ! // Draw vertical lines: for (int x = 0; x < w; x += W) { --- 177,183 ---- g.setColor(Color.lightGray); int xs = 2*W+W/2; ! // Draw vertical lines: for (int x = 0; x < w; x += W) { *************** public class CanvasWorld *** 189,195 **** { g.drawLine(0, y, w, y); } ! g.setColor(Color.gray); } --- 189,195 ---- { g.drawLine(0, y, w, y); } ! g.setColor(Color.gray); } *************** public class CanvasWorld *** 200,206 **** g.setColor(Color.black); drawDots(blacks, g, BLACK); ! g.setColor(Color.blue); drawDots(hints, g, HINT); } --- 200,206 ---- g.setColor(Color.black); drawDots(blacks, g, BLACK); ! g.setColor(Color.blue); drawDots(hints, g, HINT); } *************** public class CanvasWorld *** 273,279 **** public void mouseEntered(MouseEvent m) { mouse = "Mouse entered."; ! repaint(); } public void mousePressed(MouseEvent m) --- 273,279 ---- public void mouseEntered(MouseEvent m) { mouse = "Mouse entered."; ! repaint(); } public void mousePressed(MouseEvent m) *************** public class CanvasWorld *** 284,290 **** public void mouseReleased(MouseEvent m) { ! mouse = "Mouse released at "+m.getX()+","+m.getY(); repaint(); } --- 284,290 ---- public void mouseReleased(MouseEvent m) { ! mouse = "Mouse released at "+m.getX()+","+m.getY(); repaint(); } *************** public class CanvasWorld *** 293,299 **** mouse = "Mouse exited"; repaint(); } ! public static void main(String[] args) { JFrame frame = new JFrame(); --- 293,299 ---- mouse = "Mouse exited"; repaint(); } ! public static void main(String[] args) { JFrame frame = new JFrame(); *************** public class CanvasWorld *** 304,307 **** frame.setVisible(true); } ! } \ No newline at end of file --- 304,307 ---- frame.setVisible(true); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Color; *** 44,51 **** * The chat color code constants, used to indicate who is talking. * Additionally, the red color is reseved for the most important messages, * related to the start and end of the game. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class ChatConstants { --- 44,51 ---- * The chat color code constants, used to indicate who is talking. * Additionally, the red color is reseved for the most important messages, * related to the start and end of the game. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class ChatConstants { *************** public class ChatConstants *** 68,74 **** * Messages from the game server/ */ public static byte GAME_SERVER = 3; ! /** * The array of the used colors. */ --- 68,74 ---- * Messages from the game server/ */ public static byte GAME_SERVER = 3; ! /** * The array of the used colors. */ *************** public class ChatConstants *** 77,80 **** { Color.black, new Color(0, 80, 0), new Color(0, 0, 128), Color.blue }; ! } \ No newline at end of file --- 77,80 ---- { Color.black, new Color(0, 80, 0), new Color(0, 0, 128), Color.blue }; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java Tue Jan 11 19:46:05 2011 *************** public class ClientFrame *** 63,70 **** /** * The size of the playing field. */ ! public final Dimension DESK_SIZE = ! new Dimension(624, 352-PlayingDesk.W); /** * Use serialVersionUID for interoperability. --- 63,70 ---- /** * The size of the playing field. */ ! public final Dimension DESK_SIZE = ! new Dimension(624, 352-PlayingDesk.W); /** * Use serialVersionUID for interoperability. *************** public class ClientFrame *** 123,129 **** JLabel lbState = new JLabel(); JButton bChat = new JButton(); ! JButton bPaste = new JButton(); public ClientFrame() --- 123,129 ---- JLabel lbState = new JLabel(); JButton bChat = new JButton(); ! JButton bPaste = new JButton(); public ClientFrame() *************** public class ClientFrame *** 204,210 **** bChat_actionPerformed(e); } }); ! bPaste.setText("Paste"); bPaste.setToolTipText("Paste, same as Ctrl-V"); bPaste.addActionListener(new java.awt.event.ActionListener() --- 204,210 ---- bChat_actionPerformed(e); } }); ! bPaste.setText("Paste"); bPaste.setToolTipText("Paste, same as Ctrl-V"); bPaste.addActionListener(new java.awt.event.ActionListener() *************** public class ClientFrame *** 214,223 **** bPaste_actionPerformed(e); } }); ! desk.setMaximumSize(DESK_SIZE); desk.setPreferredSize(DESK_SIZE); ! scroll.getViewport().add(desk, null); getContentPane().add(scroll, BorderLayout.CENTER); getContentPane().add(pnBottom, BorderLayout.SOUTH); --- 214,223 ---- bPaste_actionPerformed(e); } }); ! desk.setMaximumSize(DESK_SIZE); desk.setPreferredSize(DESK_SIZE); ! scroll.getViewport().add(desk, null); getContentPane().add(scroll, BorderLayout.CENTER); getContentPane().add(pnBottom, BorderLayout.SOUTH); *************** public class ClientFrame *** 235,241 **** pnButtons.add(bLeave, null); pnButtons.add(bReset, null); pnButtons.add(bExit, null); ! pnButtons.add(bPaste, null); desk.player.set_current_state(State.DISCONNECTED); } --- 235,241 ---- pnButtons.add(bLeave, null); pnButtons.add(bReset, null); pnButtons.add(bExit, null); ! pnButtons.add(bPaste, null); desk.player.set_current_state(State.DISCONNECTED); } *************** public class ClientFrame *** 405,411 **** ex.printStackTrace(); } } ! /** * Work around our keyboard shortcut handling that is still not working * properly. --- 405,411 ---- ex.printStackTrace(); } } ! /** * Work around our keyboard shortcut handling that is still not working * properly. *************** public class ClientFrame *** 413,417 **** void bPaste_actionPerformed(ActionEvent e) { taUrl.paste(); ! } ! } \ No newline at end of file --- 413,417 ---- void bPaste_actionPerformed(ActionEvent e) { taUrl.paste(); ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java Tue Jan 11 19:46:05 2011 *************** import java.io.FileReader; *** 46,53 **** /** * The main executable class of the game client. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class Demo { --- 46,53 ---- /** * The main executable class of the game client. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class Demo { *************** public class Demo *** 96,99 **** e.printStackTrace(); } } ! } \ No newline at end of file --- 96,99 ---- e.printStackTrace(); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.RemoteException; *** 43,53 **** /** * The game manager interface. ! * * Defines the operations of the game server that connects two players into * the game. The game server does not participate in the game itself. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface GameManager extends Remote { --- 43,53 ---- /** * The game manager interface. ! * * Defines the operations of the game server that connects two players into * the game. The game server does not participate in the game itself. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface GameManager extends Remote { *************** public interface GameManager extends Rem *** 65,68 **** * @throws RemoteException */ void unregister(Player player) throws RemoteException; ! } \ No newline at end of file --- 65,68 ---- * @throws RemoteException */ void unregister(Player player) throws RemoteException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.Object; *** 44,51 **** /** * The manager connects two players into the game. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class GameManagerImpl implements GameManager --- 44,51 ---- /** * The manager connects two players into the game. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class GameManagerImpl implements GameManager *************** public class GameManagerImpl *** 132,135 **** } System.out.println("Unregistering player"); } ! } \ No newline at end of file --- 132,135 ---- } System.out.println("Unregistering player"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.BAD_PARAM; *** 49,62 **** import org.omg.CORBA.DATA_CONVERSION; /** ! * Reads the remote URL. Following formal/04-03-12, CORBA should be able to do * this without the help of this class. However some popular class libraries ! * are written using the older CORBA specifications and may not handle * functionality, require by this game. This class substitutes the functionality, * ensuring that these implementations will also start and we will be able * to test the interoperability. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class IorReader { --- 49,62 ---- import org.omg.CORBA.DATA_CONVERSION; /** ! * Reads the remote URL. Following formal/04-03-12, CORBA should be able to do * this without the help of this class. However some popular class libraries ! * are written using the older CORBA specifications and may not handle * functionality, require by this game. This class substitutes the functionality, * ensuring that these implementations will also start and we will be able * to test the interoperability. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class IorReader { *************** public class IorReader *** 93,99 **** throw d; } } ! /** * Read IOR from the file in the local file system. */ --- 93,99 ---- throw d; } } ! /** * Read IOR from the file in the local file system. */ *************** public class IorReader *** 120,124 **** d.initCause(ex); throw (d); } ! } } --- 120,124 ---- d.initCause(ex); throw (d); } ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java Tue Jan 11 19:46:05 2011 *************** import org.omg.PortableServer.Servant; *** 51,57 **** /** * Starts the ORBs, involved into this application. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class OrbStarter --- 51,57 ---- /** * Starts the ORBs, involved into this application. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class OrbStarter *************** public class OrbStarter *** 61,72 **** * manager by host (IP) and port rather than by the rather long IOR string. */ static int MANAGER_NAMER_PORT = 1500; ! /** * The used port range (understood and used by GNU Classpath only). */ static String USED_PORT_RANGE = "1501-1503"; ! /** * Specify the file where under start the game manager writes its IOR. * You may specify the path if the game manager and player clients have --- 61,72 ---- * manager by host (IP) and port rather than by the rather long IOR string. */ static int MANAGER_NAMER_PORT = 1500; ! /** * The used port range (understood and used by GNU Classpath only). */ static String USED_PORT_RANGE = "1501-1503"; ! /** * Specify the file where under start the game manager writes its IOR. * You may specify the path if the game manager and player clients have *************** public class OrbStarter *** 74,81 **** * floppy and then read from the floppy on the client side. Both clients * and server will use this constant. Set to null not to write the IOR. */ ! static String WRITE_URL_TO_FILE = "game_manager_ior.txt"; ! /** * Start the manager ORB. * @return the manager URL if it starts. --- 74,81 ---- * floppy and then read from the floppy on the client side. Both clients * and server will use this constant. Set to null not to write the IOR. */ ! static String WRITE_URL_TO_FILE = "game_manager_ior.txt"; ! /** * Start the manager ORB. * @return the manager URL if it starts. *************** public class OrbStarter *** 148,154 **** return "Exception: " + e; } } ! /** * Start the client ORB. */ --- 148,154 ---- return "Exception: " + e; } } ! /** * Start the client ORB. */ *************** public class OrbStarter *** 156,165 **** { desk.ior = null; desk.ok = false; ! final Properties p = new Properties(); p.put("gnu.CORBA.ListenerPort", USED_PORT_RANGE); ! try { new Thread() --- 156,165 ---- { desk.ior = null; desk.ok = false; ! final Properties p = new Properties(); p.put("gnu.CORBA.ListenerPort", USED_PORT_RANGE); ! try { new Thread() *************** public class OrbStarter *** 232,236 **** } }); return desk.ior; ! } } --- 232,236 ---- } }); return desk.ior; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Player.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Player.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Player.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/Player.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.RemoteException; *** 45,52 **** /** * Defines remote methods that are invoked by another player or by the * challenge server. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface Player extends Remote { --- 45,52 ---- /** * Defines remote methods that are invoked by another player or by the * challenge server. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface Player extends Remote { *************** public interface Player extends Remote *** 93,96 **** * containing the ends of the builded line. */ void receive_move(int x, int y, Point[] victory) throws RemoteException; ! } \ No newline at end of file --- 93,96 ---- * containing the ends of the builded line. */ void receive_move(int x, int y, Point[] victory) throws RemoteException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.RemoteException; *** 47,54 **** * The implementation of the PlayerCommunicator, providing the local * functionality. Apart remote methods, the class also defines some local * methods, needed for the co-ordinated work with the game user interface. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class PlayerImpl implements Player, State --- 47,54 ---- * The implementation of the PlayerCommunicator, providing the local * functionality. Apart remote methods, the class also defines some local * methods, needed for the co-ordinated work with the game user interface. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class PlayerImpl implements Player, State *************** public class PlayerImpl *** 107,116 **** /** * Called when we make the move. The PlayingTable is responsible for checking * the correctness of the move and detecting the victory. ! * * @param x x position of the new dot. * @param y y position of the new dot. ! * * @param victory array of two memebers, representing the endpoints of the * drawn line (victory detected) or null if no such yet exists. */ --- 107,116 ---- /** * Called when we make the move. The PlayingTable is responsible for checking * the correctness of the move and detecting the victory. ! * * @param x x position of the new dot. * @param y y position of the new dot. ! * * @param victory array of two memebers, representing the endpoints of the * drawn line (victory detected) or null if no such yet exists. */ *************** public class PlayerImpl *** 189,202 **** /** * Receive the invitation to play from the patner or the game manager. ! * * @param address the address (host and port) of the remote partner. * @param youStart if true, the game manager instructs to start the game first * (another side is instructed to start the game second). ! * * Game server may also chat a little bit with both players, saying that the * game has started. ! * * @return true on success. */ public boolean start_game(Player otherPlayer, boolean youStart) --- 189,202 ---- /** * Receive the invitation to play from the patner or the game manager. ! * * @param address the address (host and port) of the remote partner. * @param youStart if true, the game manager instructs to start the game first * (another side is instructed to start the game second). ! * * Game server may also chat a little bit with both players, saying that the * game has started. ! * * @return true on success. */ public boolean start_game(Player otherPlayer, boolean youStart) *************** public class PlayerImpl *** 232,238 **** /** * Receive the chat message from the friend or challenge server (remote). * Possible at any state, always remote. ! * * @param color the color code, used to highlight the message. * @param text the message text. */ --- 232,238 ---- /** * Receive the chat message from the friend or challenge server (remote). * Possible at any state, always remote. ! * * @param color the color code, used to highlight the message. * @param text the message text. */ *************** public class PlayerImpl *** 260,266 **** /** * Receive friends move (possible at I_WAIT_FOR_YOUR_MOVE). ! * * @param x grid position. * @param y grid position. * @param victory if not a null, the friend thinks that it has won, the --- 260,266 ---- /** * Receive friends move (possible at I_WAIT_FOR_YOUR_MOVE). ! * * @param x grid position. * @param y grid position. * @param victory if not a null, the friend thinks that it has won, the *************** public class PlayerImpl *** 272,275 **** // The state changes are handled by the PlayingTable desk.friendsMove(x, y, victory); } ! } \ No newline at end of file --- 272,275 ---- // The state changes are handled by the PlayingTable desk.friendsMove(x, y, victory); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java Tue Jan 11 19:46:05 2011 *************** public class PlayingDesk *** 269,278 **** { g.drawLine(0, y, w, y); } ! g.setColor(Color.gray); g.drawRect(0,0, frame.DESK_SIZE.width, frame.DESK_SIZE.height); ! g.drawRect(0,0, frame.DESK_SIZE.width+3, frame.DESK_SIZE.height+3); } public void drawFigures(Graphics g) --- 269,278 ---- { g.drawLine(0, y, w, y); } ! g.setColor(Color.gray); g.drawRect(0,0, frame.DESK_SIZE.width, frame.DESK_SIZE.height); ! g.drawRect(0,0, frame.DESK_SIZE.width+3, frame.DESK_SIZE.height+3); } public void drawFigures(Graphics g) *************** public class PlayingDesk *** 446,453 **** frame.talk(Color.black, "Partner goes " + x + "-" + y + ". Your move?"); player.set_current_state(I_THINK); ! } ! repaint(); } } catch (RemoteException rex) --- 446,453 ---- frame.talk(Color.black, "Partner goes " + x + "-" + y + ". Your move?"); player.set_current_state(I_THINK); ! } ! repaint(); } } catch (RemoteException rex) *************** public class PlayingDesk *** 509,512 **** ex.printStackTrace(); } } ! } \ No newline at end of file --- 509,512 ---- ex.printStackTrace(); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/State.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/State.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/State.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/State.java Tue Jan 11 19:46:05 2011 *************** package gnu.classpath.examples.CORBA.swi *** 40,54 **** /** * Defines the states in that the player can be. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface State { /** * The initial ("disconnected") state. */ int DISCONNECTED = 0; ! /** * The state, indicating that the player has been queued for the game and * waiting for the partner to come. --- 40,54 ---- /** * Defines the states in that the player can be. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface State { /** * The initial ("disconnected") state. */ int DISCONNECTED = 0; ! /** * The state, indicating that the player has been queued for the game and * waiting for the partner to come. *************** public interface State { *** 74,82 **** * States that we have lost. */ int I_HAVE_LOST = 5; ! /** * The "inconsistent" state when it is not possible to continue the game. */ int ERROR = -1; ! } \ No newline at end of file --- 74,82 ---- * States that we have lost. */ int I_HAVE_LOST = 5; ! /** * The "inconsistent" state when it is not possible to continue the game. */ int ERROR = -1; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java Tue Jan 11 19:46:05 2011 *************** import java.net.Socket; *** 49,70 **** /** * The main executable class of the game manager server. ! * * The manager address server returns the IOR address string of the game * manager. Hence the user does not need to enter the rather long IOR address * string and only needs to specify the host and port of the machine where the * game manager is running. ! * * The manager address server starts the main game manager as well. ! * * This server acts as a HTTP server that always returns the same response. This * primitive functionality is sufficient for its task. ! * * The more complex CORBA applications should use the name service instead. We * do not use the name service as this would require to start additional * external application, specific for the different java platforms. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class X5Server { --- 49,70 ---- /** * The main executable class of the game manager server. ! * * The manager address server returns the IOR address string of the game * manager. Hence the user does not need to enter the rather long IOR address * string and only needs to specify the host and port of the machine where the * game manager is running. ! * * The manager address server starts the main game manager as well. ! * * This server acts as a HTTP server that always returns the same response. This * primitive functionality is sufficient for its task. ! * * The more complex CORBA applications should use the name service instead. We * do not use the name service as this would require to start additional * external application, specific for the different java platforms. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class X5Server { diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java Tue Jan 11 19:46:05 2011 *************** import org.omg.PortableServer.Servant; *** 56,69 **** * Normally generated with rmic compiler, this class represents the GameManager * Tie on the client side. The Game Manager methods contain the code for remote * invocation. ! * ! * This class is normally generated with rmic or grmic from the * {@link GameManagerImpl}. See tools/gnu/classpath/tools/giop/README. ! * * In this example the class was manually edited and commented for better * understanding of functionality. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class _GameManagerImpl_Tie extends Servant --- 56,69 ---- * Normally generated with rmic compiler, this class represents the GameManager * Tie on the client side. The Game Manager methods contain the code for remote * invocation. ! * ! * This class is normally generated with rmic or grmic from the * {@link GameManagerImpl}. See tools/gnu/classpath/tools/giop/README. ! * * In this example the class was manually edited and commented for better * understanding of functionality. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class _GameManagerImpl_Tie extends Servant *************** public class _GameManagerImpl_Tie *** 77,83 **** /** * The GameManager repository Id. */ ! private static final String[] _type_ids = { "RMI:gnu.classpath.examples.CORBA.swing.x5.GameManager:0000000000000000" }; /** --- 77,83 ---- /** * The GameManager repository Id. */ ! private static final String[] _type_ids = { "RMI:gnu.classpath.examples.CORBA.swing.x5.GameManager:0000000000000000" }; /** *************** public class _GameManagerImpl_Tie *** 161,167 **** /** * This method is invoked by CORBA system to handle the remote invocation. ! * * @param method the name of the method being invoked. * @param _in the stream to read the method parameters. * @param reply the responsed handler that can create the output stream to --- 161,167 ---- /** * This method is invoked by CORBA system to handle the remote invocation. ! * * @param method the name of the method being invoked. * @param _in the stream to read the method parameters. * @param reply the responsed handler that can create the output stream to *************** public class _GameManagerImpl_Tie *** 173,179 **** { try { ! org.omg.CORBA_2_3.portable.InputStream in = (org.omg.CORBA_2_3.portable.InputStream) _in; if (method.equals("requestTheGame")) { --- 173,179 ---- { try { ! org.omg.CORBA_2_3.portable.InputStream in = (org.omg.CORBA_2_3.portable.InputStream) _in; if (method.equals("requestTheGame")) { *************** public class _GameManagerImpl_Tie *** 206,209 **** throw new UnknownException(ex); } } ! } \ No newline at end of file --- 206,209 ---- throw new UnknownException(ex); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.portable.ServantObj *** 54,75 **** * Normally generated with rmic compiler, this class represents the GameManager * Stub on the client side. The Game Manager methods contain the code for * remote invocation. ! * * This class is normally generated with rmic from the {@link GameManagerImpl}: *
   * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.GameManagerImpl
   * 
* (the compiled package must be present in the current folder). ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class _GameManager_Stub extends Stub implements GameManager { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! private static final String[] _type_ids = { "RMI:gnu.classpath.examples.CORBA.swing.x5.GameManager:0000000000000000" }; --- 54,75 ---- * Normally generated with rmic compiler, this class represents the GameManager * Stub on the client side. The Game Manager methods contain the code for * remote invocation. ! * * This class is normally generated with rmic from the {@link GameManagerImpl}: *
   * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.GameManagerImpl
   * 
* (the compiled package must be present in the current folder). ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class _GameManager_Stub extends Stub implements GameManager { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! private static final String[] _type_ids = { "RMI:gnu.classpath.examples.CORBA.swing.x5.GameManager:0000000000000000" }; *************** public class _GameManager_Stub extends S *** 77,83 **** { return _type_ids; } ! /** * Notify the manager that the player is no longer willing to play and * should be removed from the queue. --- 77,83 ---- { return _type_ids; } ! /** * Notify the manager that the player is no longer willing to play and * should be removed from the queue. *************** public class _GameManager_Stub extends S *** 141,147 **** } } } ! /** * The method that the user should invoke. */ --- 141,147 ---- } } } ! /** * The method that the user should invoke. */ *************** public class _GameManager_Stub extends S *** 204,207 **** } } } ! } \ No newline at end of file --- 204,207 ---- } } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java Tue Jan 11 19:46:05 2011 *************** import org.omg.PortableServer.Servant; *** 57,70 **** * Generate with rmic, command line * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.PlayerImpl * (the compiled package must be present in the current folder). ! * ! * This class is normally generated with rmic or grmic from the * {@link PlayerImpl}. See tools/gnu/classpath/tools/giop/README. ! * ! * In this example the class was manually edited and commented for better * understanding of functionality. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class _PlayerImpl_Tie extends Servant implements Tie { --- 57,70 ---- * Generate with rmic, command line * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.PlayerImpl * (the compiled package must be present in the current folder). ! * ! * This class is normally generated with rmic or grmic from the * {@link PlayerImpl}. See tools/gnu/classpath/tools/giop/README. ! * ! * In this example the class was manually edited and commented for better * understanding of functionality. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class _PlayerImpl_Tie extends Servant implements Tie { *************** public class _PlayerImpl_Tie extends Ser *** 206,209 **** throw new UnknownException(ex); } } ! } \ No newline at end of file --- 206,209 ---- throw new UnknownException(ex); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java Thu Nov 17 22:21:12 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.portable.ServantObj *** 56,80 **** * Generate with rmic, command line * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.PlayerImpl * (the compiled package must be present in the current folder). ! * * This class is normally generated with rmic from the {@link GameManagerImpl}: *
   * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.GameManagerImpl
   * 
* (the compiled package must be present in the current folder). ! * ! * In this example the class was manually edited and commented for better * understanding of functionality. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class _Player_Stub extends Stub implements Player { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! private static final String[] _type_ids = { "RMI:gnu.classpath.examples.CORBA.swing.x5.Player:0000000000000000" }; --- 56,80 ---- * Generate with rmic, command line * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.PlayerImpl * (the compiled package must be present in the current folder). ! * * This class is normally generated with rmic from the {@link GameManagerImpl}: *
   * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.GameManagerImpl
   * 
* (the compiled package must be present in the current folder). ! * ! * In this example the class was manually edited and commented for better * understanding of functionality. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class _Player_Stub extends Stub implements Player { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! private static final String[] _type_ids = { "RMI:gnu.classpath.examples.CORBA.swing.x5.Player:0000000000000000" }; *************** public class _Player_Stub extends Stub i *** 82,88 **** { return _type_ids; } ! public boolean start_game(Player arg0, boolean arg1) throws RemoteException { --- 82,88 ---- { return _type_ids; } ! public boolean start_game(Player arg0, boolean arg1) throws RemoteException { *************** public class _Player_Stub extends Stub i *** 394,397 **** { return (Serializable) obj; } ! } \ No newline at end of file --- 394,397 ---- { return (Serializable) obj; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java Tue Jan 11 19:46:05 2011 *************** public class AicasGraphicsBenchmark exte *** 82,89 **** ; int iterations = 1; ! private int screenWidth = DEFAULT_SCREEN_WIDTH; ! private int screenHeight = DEFAULT_SCREEN_HEIGHT; boolean doubleBufferFlag = true; private int awtTests = AWTTEST_ALL; --- 82,89 ---- ; int iterations = 1; ! private int screenWidth = DEFAULT_SCREEN_WIDTH; ! private int screenHeight = DEFAULT_SCREEN_HEIGHT; boolean doubleBufferFlag = true; private int awtTests = AWTTEST_ALL; *************** public class AicasGraphicsBenchmark exte *** 693,699 **** "Skipping 'test_drawImage' due to missing resource."); return; } ! int maxTests = DEFAULT_TEST_SIZE / 2; if(maxTests == 0) maxTests = 1; --- 693,699 ---- "Skipping 'test_drawImage' due to missing resource."); return; } ! int maxTests = DEFAULT_TEST_SIZE / 2; if(maxTests == 0) maxTests = 1; *************** public class AicasGraphicsBenchmark exte *** 726,732 **** return; } ! int maxTests = DEFAULT_TEST_SIZE / 5; if(maxTests == 0) maxTests = 1; --- 726,732 ---- return; } ! int maxTests = DEFAULT_TEST_SIZE / 5; if(maxTests == 0) maxTests = 1; *************** public class AicasGraphicsBenchmark exte *** 757,763 **** String testString = "HelloWorld"; int stringWidth = g.getFontMetrics().stringWidth(testString); int stringHeight = g.getFontMetrics().getHeight(); ! long startTime = System.currentTimeMillis(); for(int i = 0; i < maxTests; i += 1) { --- 757,763 ---- String testString = "HelloWorld"; int stringWidth = g.getFontMetrics().stringWidth(testString); int stringHeight = g.getFontMetrics().getHeight(); ! long startTime = System.currentTimeMillis(); for(int i = 0; i < maxTests; i += 1) { diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java Tue Jan 11 19:46:05 2011 *************** class Demo *** 92,107 **** MainWindow f = new MainWindow(); f.show(); } ! static interface SubWindow { public void init (); } ! static class PrettyPanel extends Panel { Insets myInsets; ! public PrettyPanel () { myInsets = new Insets (10, 10, 10, 10); --- 92,107 ---- MainWindow f = new MainWindow(); f.show(); } ! static interface SubWindow { public void init (); } ! static class PrettyPanel extends Panel { Insets myInsets; ! public PrettyPanel () { myInsets = new Insets (10, 10, 10, 10); *************** class Demo *** 111,117 **** return myInsets; } } ! static abstract class PrettyFrame extends Frame { public PrettyFrame () --- 111,117 ---- return myInsets; } } ! static abstract class PrettyFrame extends Frame { public PrettyFrame () *************** class Demo *** 119,164 **** ((BorderLayout) getLayout ()).setHgap (5); ((BorderLayout) getLayout ()).setVgap (5); } ! public Insets getInsets() { Insets oldInsets = super.getInsets (); return new Insets (oldInsets.top+10, ! oldInsets.left+10, ! oldInsets.bottom+10, ! oldInsets.right+10); } } static abstract class SubFrame extends PrettyFrame implements SubWindow { boolean initted = false; ! public void setVisible (boolean visible) { if (!initted && visible) ! init(); super.setVisible (visible); ! } } ! static class MainWindow extends PrettyFrame implements ActionListener { Button closeButton; ! Hashtable windows; Vector buttons; ! void addSubWindow (String name, SubWindow w) { Button b = new Button (name); b.addActionListener (this); ! buttons.addElement (b); ! windows.put (b, w); } ! ! MainWindow () { MenuBar mb = new MenuBar (); Menu menu = new Menu ("File"); --- 119,164 ---- ((BorderLayout) getLayout ()).setHgap (5); ((BorderLayout) getLayout ()).setVgap (5); } ! public Insets getInsets() { Insets oldInsets = super.getInsets (); return new Insets (oldInsets.top+10, ! oldInsets.left+10, ! oldInsets.bottom+10, ! oldInsets.right+10); } } static abstract class SubFrame extends PrettyFrame implements SubWindow { boolean initted = false; ! public void setVisible (boolean visible) { if (!initted && visible) ! init(); super.setVisible (visible); ! } } ! static class MainWindow extends PrettyFrame implements ActionListener { Button closeButton; ! Hashtable windows; Vector buttons; ! void addSubWindow (String name, SubWindow w) { Button b = new Button (name); b.addActionListener (this); ! buttons.addElement (b); ! windows.put (b, w); } ! ! MainWindow () { MenuBar mb = new MenuBar (); Menu menu = new Menu ("File"); *************** class Demo *** 188,207 **** helpMenu.add(new MenuItem("About")); mb.add(helpMenu); mb.setHelpMenu(helpMenu); ! setMenuBar (mb); ! String version = System.getProperty("gnu.classpath.version"); add (new Label ("GNU Classpath " + version), "North"); ! closeButton = new Button ("Close"); closeButton.addActionListener (this); closeButton.setFont (new Font ("Serif", Font.BOLD | Font.ITALIC, 18)); add (closeButton, "South"); ! windows = new Hashtable (); buttons = new Vector (); ! addSubWindow ("Buttons", new ButtonsWindow ()); addSubWindow ("Cursors", new CursorsWindow ()); addSubWindow ("Dialog", new DialogWindow (this)); --- 188,207 ---- helpMenu.add(new MenuItem("About")); mb.add(helpMenu); mb.setHelpMenu(helpMenu); ! setMenuBar (mb); ! String version = System.getProperty("gnu.classpath.version"); add (new Label ("GNU Classpath " + version), "North"); ! closeButton = new Button ("Close"); closeButton.addActionListener (this); closeButton.setFont (new Font ("Serif", Font.BOLD | Font.ITALIC, 18)); add (closeButton, "South"); ! windows = new Hashtable (); buttons = new Vector (); ! addSubWindow ("Buttons", new ButtonsWindow ()); addSubWindow ("Cursors", new CursorsWindow ()); addSubWindow ("Dialog", new DialogWindow (this)); *************** class Demo *** 220,281 **** Panel sp = new Panel(); PrettyPanel p = new PrettyPanel(); p.setLayout (new GridLayout (windows.size(), 1)); ! for (Enumeration e = buttons.elements (); e.hasMoreElements (); ) ! { ! p.add ((Button) e.nextElement ()); ! } ! sp.add (p); add (sp, "Center"); ! setTitle ("AWT Demo"); pack(); } ! public void actionPerformed (ActionEvent evt) { Button source = (Button) evt.getSource (); ! if (source==closeButton) ! { ! dispose(); ! System.exit (0); ! } ! Window w = (Window) windows.get (source); if (w.isVisible ()) ! w.dispose (); ! else ! { ! if (w instanceof Dialog) ! { ! w.show(); ! } ! else ! { ! w.setVisible (true); ! } ! } } } ! static class ButtonsWindow extends SubFrame implements ActionListener { Button b[] = new Button [9]; ! public void init () { initted = true; Panel p = new Panel (); p.setLayout (new GridLayout (0, 3, 5, 5)); ! ! for (int i=0; i<9; i++) ! { ! b[i]=new Button ("button" + (i+1)); ! b[i].addActionListener (this); ! } ! p.add (b[0]); p.add (b[6]); p.add (b[4]); --- 220,281 ---- Panel sp = new Panel(); PrettyPanel p = new PrettyPanel(); p.setLayout (new GridLayout (windows.size(), 1)); ! for (Enumeration e = buttons.elements (); e.hasMoreElements (); ) ! { ! p.add ((Button) e.nextElement ()); ! } ! sp.add (p); add (sp, "Center"); ! setTitle ("AWT Demo"); pack(); } ! public void actionPerformed (ActionEvent evt) { Button source = (Button) evt.getSource (); ! if (source==closeButton) ! { ! dispose(); ! System.exit (0); ! } ! Window w = (Window) windows.get (source); if (w.isVisible ()) ! w.dispose (); ! else ! { ! if (w instanceof Dialog) ! { ! w.show(); ! } ! else ! { ! w.setVisible (true); ! } ! } } } ! static class ButtonsWindow extends SubFrame implements ActionListener { Button b[] = new Button [9]; ! public void init () { initted = true; Panel p = new Panel (); p.setLayout (new GridLayout (0, 3, 5, 5)); ! ! for (int i=0; i<9; i++) ! { ! b[i]=new Button ("button" + (i+1)); ! b[i].addActionListener (this); ! } ! p.add (b[0]); p.add (b[6]); p.add (b[4]); *************** class Demo *** 285,419 **** p.add (b[3]); p.add (b[5]); p.add (b[2]); ! add (p, "North"); ! Button cb = new Button ("close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); add (cb, "South"); setTitle ("Buttons"); pack(); } ! public void actionPerformed (ActionEvent evt) { Button source = (Button) evt.getSource (); ! for (int i = 0; i < 9; i++) ! { ! if (source == b[i]) ! { ! int i2 = ((i + 1) == 9) ? 0 : (i + 1); ! if (b[i2].isVisible()) ! b[i2].setVisible(false); ! else ! b[i2].setVisible(true); ! } ! } } } ! ! static class DialogWindow extends Dialog implements SubWindow { Label text; Frame parent; boolean initted = false; ! public DialogWindow (Frame f) { super (f, true); ! this.parent = f; ! addWindowListener (new WindowAdapter () ! { ! public void windowClosing (WindowEvent e) ! { ! text.setVisible (false); ! hide (); ! } ! }); } ! public void setVisible (boolean visible) { if (!initted && visible) ! init(); super.setVisible (visible); } ! public void show () { if (!initted) ! init(); super.show (); } ! public void init () { text = new Label ("Dialog Test"); text.setAlignment (Label.CENTER); ! add (text, "North"); text.setVisible (false); ! Panel p = new PrettyPanel(); ! Button cb = new Button ("OK"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) ! { ! text.setVisible (false); ! hide(); ! } ! }); ! p.setLayout (new GridLayout (1, 3)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); p.add (cb); ! Button toggle = new Button ("Toggle"); p.add (toggle); ! toggle.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) ! { ! if (text.isVisible ()) ! text.setVisible (false); ! else ! text.setVisible (true); ! doLayout(); ! } ! }); ! Button subdlg = new Button ("SubDialog"); p.add (subdlg); ! subdlg.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) ! { DialogWindow sw = new DialogWindow (parent); sw.show (); ! } ! }); ! add (p, "South"); setTitle ("Dialog"); pack(); } } ! static class CursorsWindow extends SubFrame implements ItemListener { Choice cursorChoice; Canvas cursorCanvas; ! public void init () { cursorChoice = new Choice(); --- 285,419 ---- p.add (b[3]); p.add (b[5]); p.add (b[2]); ! add (p, "North"); ! Button cb = new Button ("close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); add (cb, "South"); setTitle ("Buttons"); pack(); } ! public void actionPerformed (ActionEvent evt) { Button source = (Button) evt.getSource (); ! for (int i = 0; i < 9; i++) ! { ! if (source == b[i]) ! { ! int i2 = ((i + 1) == 9) ? 0 : (i + 1); ! if (b[i2].isVisible()) ! b[i2].setVisible(false); ! else ! b[i2].setVisible(true); ! } ! } } } ! ! static class DialogWindow extends Dialog implements SubWindow { Label text; Frame parent; boolean initted = false; ! public DialogWindow (Frame f) { super (f, true); ! this.parent = f; ! addWindowListener (new WindowAdapter () ! { ! public void windowClosing (WindowEvent e) ! { ! text.setVisible (false); ! hide (); ! } ! }); } ! public void setVisible (boolean visible) { if (!initted && visible) ! init(); super.setVisible (visible); } ! public void show () { if (!initted) ! init(); super.show (); } ! public void init () { text = new Label ("Dialog Test"); text.setAlignment (Label.CENTER); ! add (text, "North"); text.setVisible (false); ! Panel p = new PrettyPanel(); ! Button cb = new Button ("OK"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) ! { ! text.setVisible (false); ! hide(); ! } ! }); ! p.setLayout (new GridLayout (1, 3)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); p.add (cb); ! Button toggle = new Button ("Toggle"); p.add (toggle); ! toggle.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) ! { ! if (text.isVisible ()) ! text.setVisible (false); ! else ! text.setVisible (true); ! doLayout(); ! } ! }); ! Button subdlg = new Button ("SubDialog"); p.add (subdlg); ! subdlg.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) ! { DialogWindow sw = new DialogWindow (parent); sw.show (); ! } ! }); ! add (p, "South"); setTitle ("Dialog"); pack(); } } ! static class CursorsWindow extends SubFrame implements ItemListener { Choice cursorChoice; Canvas cursorCanvas; ! public void init () { cursorChoice = new Choice(); *************** class Demo *** 431,683 **** cursorChoice.add ("East Resize"); cursorChoice.add ("Hand"); cursorChoice.add ("Move"); ! cursorChoice.addItemListener(this); ! add (cursorChoice, "North"); ! ! cursorCanvas = new Canvas () ! { ! public void paint (Graphics g) ! { ! Dimension d = this.getSize(); ! g.setColor(Color.white); ! g.fillRect(0, 0, d.width, d.height/2); ! g.setColor(Color.black); ! g.fillRect(0, d.height/2, d.width, d.height/2); ! g.setColor(this.getBackground()); ! g.fillRect(d.width/3, d.height/3, d.width/3, ! d.height/3); ! } ! }; ! cursorCanvas.setSize (80,80); ! add (cursorCanvas, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("Cursors"); pack(); } ! public void itemStateChanged (ItemEvent e) { int index = cursorChoice.getSelectedIndex(); cursorCanvas.setCursor(Cursor.getPredefinedCursor(index)); } } ! static class TextFieldWindow extends SubFrame implements ItemListener { Checkbox editable, visible, sensitive; TextField text; ! public void init () { initted = true; text = new TextField ("hello world"); add (text, "North"); ! Panel p = new Panel(); p.setLayout (new GridLayout (3, 1)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); ! editable = new Checkbox("Editable", true); p.add (editable); editable.addItemListener (this); ! visible = new Checkbox("Visible", true); p.add (visible); visible.addItemListener (this); ! sensitive = new Checkbox("Sensitive", true); p.add (sensitive); sensitive.addItemListener (this); ! add (p, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("TextField"); pack(); } ! public void itemStateChanged (ItemEvent e) { boolean on=true; ! if (e.getStateChange () == ItemEvent.DESELECTED) ! on=false; if (e.getSource() == editable) ! text.setEditable (on); if (e.getSource() == visible) ! if (on) ! text.setEchoChar ((char) 0); ! else ! text.setEchoChar ('*'); if (e.getSource() == sensitive) ! text.setEnabled (on); ! } } ! static class FileWindow extends FileDialog implements SubWindow { boolean initted = false; ! public FileWindow (MainWindow mw) { super (mw); } ! public void setVisible (boolean visible) { if (!initted && visible) ! init(); super.setVisible (visible); } ! ! public void init() { initted = true; } } ! static class LabelWindow extends SubFrame { public void init () { initted = true; ! Panel p = new Panel(); p.setLayout (new GridLayout (3, 1)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); ! p.add (new Label ("left justified label", Label.LEFT)); p.add (new Label ("center justified label", Label.CENTER)); p.add (new Label ("right justified label", Label.RIGHT)); ! add (p, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("Labels"); pack(); } } ! static class ListWindow extends SubFrame { public void init () { initted = true; ! Panel p = new Panel (); p.setLayout (new GridLayout (3, 1)); ! List l = new List (5, true); for (int i = 0; i < 10; i++) ! l.add ("List item " + i); p.add (l); add (p, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("List"); pack(); } ! } ! ! static class RadioWindow extends SubFrame { public void init () { initted = true; ! Panel p = new Panel(); p.setLayout (new GridLayout (3, 1)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); ! final CheckboxGroup cg = new CheckboxGroup(); final Checkbox[] boxes = new Checkbox[3]; for (int i = 0; i < 3; ++i) ! { ! boxes[i] = new Checkbox("button" + i, cg, i == 0); ! p.add(boxes[i]); ! } ! add (p, "North"); ! p = new Panel(); p.setLayout (new GridLayout (1, 3)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); ! for (int i = 0; i < 3; ++i) ! { ! final int val = i; ! Button tweak = new Button ("Set " + i); ! tweak.addActionListener(new ActionListener () ! { ! public void actionPerformed (ActionEvent e) ! { ! cg.setSelectedCheckbox(boxes[val]); ! } ! }); ! p.add(tweak); ! } ! add (p, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("Radio Buttons"); pack(); } } ! static class TestWindow extends SubFrame { static int xs = 5, ys = 5; final Frame parent; ! public TestWindow(Frame f) { parent = f; --- 431,683 ---- cursorChoice.add ("East Resize"); cursorChoice.add ("Hand"); cursorChoice.add ("Move"); ! cursorChoice.addItemListener(this); ! add (cursorChoice, "North"); ! ! cursorCanvas = new Canvas () ! { ! public void paint (Graphics g) ! { ! Dimension d = this.getSize(); ! g.setColor(Color.white); ! g.fillRect(0, 0, d.width, d.height/2); ! g.setColor(Color.black); ! g.fillRect(0, d.height/2, d.width, d.height/2); ! g.setColor(this.getBackground()); ! g.fillRect(d.width/3, d.height/3, d.width/3, ! d.height/3); ! } ! }; ! cursorCanvas.setSize (80,80); ! add (cursorCanvas, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("Cursors"); pack(); } ! public void itemStateChanged (ItemEvent e) { int index = cursorChoice.getSelectedIndex(); cursorCanvas.setCursor(Cursor.getPredefinedCursor(index)); } } ! static class TextFieldWindow extends SubFrame implements ItemListener { Checkbox editable, visible, sensitive; TextField text; ! public void init () { initted = true; text = new TextField ("hello world"); add (text, "North"); ! Panel p = new Panel(); p.setLayout (new GridLayout (3, 1)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); ! editable = new Checkbox("Editable", true); p.add (editable); editable.addItemListener (this); ! visible = new Checkbox("Visible", true); p.add (visible); visible.addItemListener (this); ! sensitive = new Checkbox("Sensitive", true); p.add (sensitive); sensitive.addItemListener (this); ! add (p, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("TextField"); pack(); } ! public void itemStateChanged (ItemEvent e) { boolean on=true; ! if (e.getStateChange () == ItemEvent.DESELECTED) ! on=false; if (e.getSource() == editable) ! text.setEditable (on); if (e.getSource() == visible) ! if (on) ! text.setEchoChar ((char) 0); ! else ! text.setEchoChar ('*'); if (e.getSource() == sensitive) ! text.setEnabled (on); ! } } ! static class FileWindow extends FileDialog implements SubWindow { boolean initted = false; ! public FileWindow (MainWindow mw) { super (mw); } ! public void setVisible (boolean visible) { if (!initted && visible) ! init(); super.setVisible (visible); } ! ! public void init() { initted = true; } } ! static class LabelWindow extends SubFrame { public void init () { initted = true; ! Panel p = new Panel(); p.setLayout (new GridLayout (3, 1)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); ! p.add (new Label ("left justified label", Label.LEFT)); p.add (new Label ("center justified label", Label.CENTER)); p.add (new Label ("right justified label", Label.RIGHT)); ! add (p, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("Labels"); pack(); } } ! static class ListWindow extends SubFrame { public void init () { initted = true; ! Panel p = new Panel (); p.setLayout (new GridLayout (3, 1)); ! List l = new List (5, true); for (int i = 0; i < 10; i++) ! l.add ("List item " + i); p.add (l); add (p, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("List"); pack(); } ! } ! ! static class RadioWindow extends SubFrame { public void init () { initted = true; ! Panel p = new Panel(); p.setLayout (new GridLayout (3, 1)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); ! final CheckboxGroup cg = new CheckboxGroup(); final Checkbox[] boxes = new Checkbox[3]; for (int i = 0; i < 3; ++i) ! { ! boxes[i] = new Checkbox("button" + i, cg, i == 0); ! p.add(boxes[i]); ! } ! add (p, "North"); ! p = new Panel(); p.setLayout (new GridLayout (1, 3)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); ! for (int i = 0; i < 3; ++i) ! { ! final int val = i; ! Button tweak = new Button ("Set " + i); ! tweak.addActionListener(new ActionListener () ! { ! public void actionPerformed (ActionEvent e) ! { ! cg.setSelectedCheckbox(boxes[val]); ! } ! }); ! p.add(tweak); ! } ! add (p, "Center"); ! Button cb = new Button ("Close"); cb.addActionListener(new ActionListener () { ! public void actionPerformed (ActionEvent e) { ! dispose(); ! } ! }); ! add (cb, "South"); setTitle ("Radio Buttons"); pack(); } } ! static class TestWindow extends SubFrame { static int xs = 5, ys = 5; final Frame parent; ! public TestWindow(Frame f) { parent = f; *************** class Demo *** 686,692 **** public void init() { initted = true; ! addWindowListener (new WindowAdapter () { public void windowClosing (WindowEvent e) --- 686,692 ---- public void init() { initted = true; ! addWindowListener (new WindowAdapter () { public void windowClosing (WindowEvent e) *************** class Demo *** 696,732 **** }); Panel pan = new Panel(); ! final Label l = new Label ("Pithy Message:"); l.setCursor (Cursor.getPredefinedCursor (Cursor.WAIT_CURSOR)); pan.add (l); ! TextField tf = new TextField("Hello world!"); pan.add(tf); add(pan,"North"); ! final Image img; URL imageurl; imageurl = this.getClass() ! .getResource("/gnu/classpath/examples/icons/big-warning.png"); img = Toolkit.getDefaultToolkit().createImage(imageurl); final Canvas ch = new Canvas() ! { ! public void paint (Graphics g) ! { ! g.drawImage(img, xs + 25, ys + 25, this); ! Font font = new Font ("Serif", Font.PLAIN, 18); ! g.setFont (font); ! g.setXORMode (Color.red); ! g.drawString("Hi Red!", xs + 15, ys + 10); ! g.setColor (Color.blue); ! g.drawLine (xs, ys, xs + 100, ys + 100); ! ! } ! }; ch.setSize(150, 150); add(ch, "Center"); --- 696,732 ---- }); Panel pan = new Panel(); ! final Label l = new Label ("Pithy Message:"); l.setCursor (Cursor.getPredefinedCursor (Cursor.WAIT_CURSOR)); pan.add (l); ! TextField tf = new TextField("Hello world!"); pan.add(tf); add(pan,"North"); ! final Image img; URL imageurl; imageurl = this.getClass() ! .getResource("/gnu/classpath/examples/icons/big-warning.png"); img = Toolkit.getDefaultToolkit().createImage(imageurl); final Canvas ch = new Canvas() ! { ! public void paint (Graphics g) ! { ! g.drawImage(img, xs + 25, ys + 25, this); ! Font font = new Font ("Serif", Font.PLAIN, 18); ! g.setFont (font); ! g.setXORMode (Color.red); ! g.drawString("Hi Red!", xs + 15, ys + 10); ! g.setColor (Color.blue); ! g.drawLine (xs, ys, xs + 100, ys + 100); ! ! } ! }; ch.setSize(150, 150); add(ch, "Center"); *************** class Demo *** 755,824 **** final Button wb = new Button(); wb.setLabel("Hello World!"); wb.addActionListener(new ActionListener() ! { ! public void actionPerformed (ActionEvent e) ! { ! l.setText ("Hello World!"); ! ! final Dialog d = new Dialog(parent); ! d.setLayout(new FlowLayout()); ! d.setModal(true); ! Button b = new Button("foobar"); ! b.addMouseListener(new MouseAdapter() ! { ! public void mousePressed (MouseEvent me) ! { ! d.hide (); ! } ! }); ! d.add (b); ! List ch = new List(); ! ch.add("Ding"); ! ch.add("September"); ! ch.add("Red"); ! ch.add("Quassia"); ! ch.add("Pterodactyl"); ! d.add(ch); ! d.pack (); ! d.show (); ! } ! }); wb.addMouseListener(new MouseAdapter() ! { ! public void mousePressed(MouseEvent e) { ! xs++; ! ys++; ! ch.repaint (); ! } ! }); ! add(wb,"West"); ! pack(); show(); ! sp.setScrollPosition (10,0); ! Toolkit t = Toolkit.getDefaultToolkit(); t.beep(); } } ! static class ResolutionWindow extends SubFrame { GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); ! public void init () { initted = true; ! setTitle("Change Screen Resolution"); final List list = new List(); DisplayMode[] modes = gd.getDisplayModes(); ! for (int i=0;i FillRect2 [-sleep ] [-size ] [-nopaint]\n" + "Example: jamvm FillRect2 -sleep 10 -size 100\n" ); --- 312,318 ---- public static void usage() { ! System.out.println( "Usage: FillRect2 [-sleep ] [-size ] [-nopaint]\n" + "Example: jamvm FillRect2 -sleep 10 -size 100\n" ); *************** public class JNIOverhead *** 342,348 **** } if ("-nopaint".equals(args[i])) { ! fillRectDemo.enableRepaints = false; } } --- 342,348 ---- } if ("-nopaint".equals(args[i])) { ! fillRectDemo.enableRepaints = false; } } *************** public class JNIOverhead *** 368,374 **** * @return a DemoFactory that creates a SliderDemo */ public static DemoFactory createDemoFactory() ! { return new DemoFactory() { public JComponent createDemo() --- 368,374 ---- * @return a DemoFactory that creates a SliderDemo */ public static DemoFactory createDemoFactory() ! { return new DemoFactory() { public JComponent createDemo() diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/jawt/DemoJAWT.java Tue Jan 11 19:46:05 2011 *************** public class DemoJAWT extends Canvas *** 52,61 **** f.addWindowListener (new WindowAdapter () { ! public void windowClosing (WindowEvent evt) ! { ! System.exit (0); ! } }); f.show (); --- 52,61 ---- f.addWindowListener (new WindowAdapter () { ! public void windowClosing (WindowEvent evt) ! { ! System.exit (0); ! } }); f.show (); *************** public class DemoJAWT extends Canvas *** 63,75 **** while (true) { try ! { ! Thread.sleep (500); ! } catch (InterruptedException ie) ! { ! // ignored ! } jawtDemo.on = ! jawtDemo.on; f.repaint(); } --- 63,75 ---- while (true) { try ! { ! Thread.sleep (500); ! } catch (InterruptedException ie) ! { ! // ignored ! } jawtDemo.on = ! jawtDemo.on; f.repaint(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java Tue Jan 11 19:46:05 2011 *************** public class TestClassLoading *** 51,69 **** System.out.println("Bean: " + classBean); System.out.println("Loaded classes: " + server.getAttribute(classBean, "LoadedClassCount")); System.out.println("Unloaded classes: " + server.getAttribute(classBean, ! "UnloadedClassCount")); System.out.println("Total loaded classes: " + server.getAttribute(classBean, ! "TotalLoadedClassCount")); verbosity = (Boolean) server.getAttribute(classBean, "Verbose"); System.out.println("Verbose class output: " + (verbosity ? "yes" : "no")); System.out.println("Changing verbose setting..."); server.setAttribute(classBean, new Attribute("Verbose", !verbosity)); System.out.println("Verbose class output: " + ((Boolean) ! server.getAttribute(classBean, "Verbose") ? ! "yes" : "no")); System.out.println("Testing via the proxy..."); bean = ManagementFactory.newPlatformMXBeanProxy(server, CLASS_LOADING_MXBEAN_NAME, ! ClassLoadingMXBean.class); System.out.println("Bean: " + bean); System.out.println("Loaded classes: " + bean.getLoadedClassCount()); System.out.println("Unloaded classes: " + bean.getUnloadedClassCount()); --- 51,69 ---- System.out.println("Bean: " + classBean); System.out.println("Loaded classes: " + server.getAttribute(classBean, "LoadedClassCount")); System.out.println("Unloaded classes: " + server.getAttribute(classBean, ! "UnloadedClassCount")); System.out.println("Total loaded classes: " + server.getAttribute(classBean, ! "TotalLoadedClassCount")); verbosity = (Boolean) server.getAttribute(classBean, "Verbose"); System.out.println("Verbose class output: " + (verbosity ? "yes" : "no")); System.out.println("Changing verbose setting..."); server.setAttribute(classBean, new Attribute("Verbose", !verbosity)); System.out.println("Verbose class output: " + ((Boolean) ! server.getAttribute(classBean, "Verbose") ? ! "yes" : "no")); System.out.println("Testing via the proxy..."); bean = ManagementFactory.newPlatformMXBeanProxy(server, CLASS_LOADING_MXBEAN_NAME, ! ClassLoadingMXBean.class); System.out.println("Bean: " + bean); System.out.println("Loaded classes: " + bean.getLoadedClassCount()); System.out.println("Unloaded classes: " + bean.getUnloadedClassCount()); diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestCompilation.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestCompilation.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestCompilation.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestCompilation.java Tue Jan 11 19:46:05 2011 *************** public class TestCompilation *** 31,38 **** CompilationMXBean bean = ManagementFactory.getCompilationMXBean(); if (bean == null) { ! System.out.println("The compilation bean is not supported by this VM."); ! System.exit(-1); } System.out.println("Bean: " + bean); System.out.println("JIT compiler name: " + bean.getName()); --- 31,38 ---- CompilationMXBean bean = ManagementFactory.getCompilationMXBean(); if (bean == null) { ! System.out.println("The compilation bean is not supported by this VM."); ! System.exit(-1); } System.out.println("Bean: " + bean); System.out.println("JIT compiler name: " + bean.getName()); *************** public class TestCompilation *** 40,47 **** System.out.println("Compilation time monitoring supported: " + timeMonitoring); if (timeMonitoring) { ! System.out.println("Compilation time: " ! + bean.getTotalCompilationTime() + "ms"); } } --- 40,47 ---- System.out.println("Compilation time monitoring supported: " + timeMonitoring); if (timeMonitoring) { ! System.out.println("Compilation time: " ! + bean.getTotalCompilationTime() + "ms"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestGarbageCollector.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestGarbageCollector.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestGarbageCollector.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestGarbageCollector.java Tue Jan 11 19:46:05 2011 *************** public class TestGarbageCollector *** 34,53 **** Iterator beans = ManagementFactory.getGarbageCollectorMXBeans().iterator(); while (beans.hasNext()) { ! GarbageCollectorMXBean bean = (GarbageCollectorMXBean) beans.next(); ! System.out.println("Bean: " + bean); ! System.out.println("Name: " + bean.getName()); ! System.out.println("Memory pool names: " ! + Arrays.toString(bean.getMemoryPoolNames())); ! System.out.println("Is valid: " ! + (bean.isValid() ? "yes" : "no")); ! System.out.println("Collection count: " ! + bean.getCollectionCount()); ! System.out.println("Collection time: " ! + bean.getCollectionTime() + "ms"); } } } - - - --- 34,50 ---- Iterator beans = ManagementFactory.getGarbageCollectorMXBeans().iterator(); while (beans.hasNext()) { ! GarbageCollectorMXBean bean = (GarbageCollectorMXBean) beans.next(); ! System.out.println("Bean: " + bean); ! System.out.println("Name: " + bean.getName()); ! System.out.println("Memory pool names: " ! + Arrays.toString(bean.getMemoryPoolNames())); ! System.out.println("Is valid: " ! + (bean.isValid() ? "yes" : "no")); ! System.out.println("Collection count: " ! + bean.getCollectionCount()); ! System.out.println("Collection time: " ! + bean.getCollectionTime() + "ms"); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestMemory.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestMemory.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestMemory.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestMemory.java Tue Jan 11 19:46:05 2011 *************** public class TestMemory *** 29,48 **** { MemoryMXBean bean = ManagementFactory.getMemoryMXBean(); System.out.println("Bean: " + bean); ! System.out.println("Heap memory usage: " ! + bean.getHeapMemoryUsage()); ! System.out.println("Non-heap memory usage: " ! + bean.getNonHeapMemoryUsage()); ! System.out.println("Objects pending finalization: " ! + bean.getObjectPendingFinalizationCount()); System.out.println("Running garbage collector via bean..."); bean.gc(); ! System.out.println("Heap memory usage: " ! + bean.getHeapMemoryUsage()); ! System.out.println("Non-heap memory usage: " ! + bean.getNonHeapMemoryUsage()); ! System.out.println("Objects pending finalization: " ! + bean.getObjectPendingFinalizationCount()); boolean verbosity = bean.isVerbose(); System.out.println("Verbose memory output: " + (verbosity ? "yes" : "no")); System.out.println("Changing verbose setting..."); --- 29,48 ---- { MemoryMXBean bean = ManagementFactory.getMemoryMXBean(); System.out.println("Bean: " + bean); ! System.out.println("Heap memory usage: " ! + bean.getHeapMemoryUsage()); ! System.out.println("Non-heap memory usage: " ! + bean.getNonHeapMemoryUsage()); ! System.out.println("Objects pending finalization: " ! + bean.getObjectPendingFinalizationCount()); System.out.println("Running garbage collector via bean..."); bean.gc(); ! System.out.println("Heap memory usage: " ! + bean.getHeapMemoryUsage()); ! System.out.println("Non-heap memory usage: " ! + bean.getNonHeapMemoryUsage()); ! System.out.println("Objects pending finalization: " ! + bean.getObjectPendingFinalizationCount()); boolean verbosity = bean.isVerbose(); System.out.println("Verbose memory output: " + (verbosity ? "yes" : "no")); System.out.println("Changing verbose setting..."); diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryManager.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryManager.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryManager.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryManager.java Tue Jan 11 19:46:05 2011 *************** public class TestMemoryManager *** 34,49 **** Iterator beans = ManagementFactory.getMemoryManagerMXBeans().iterator(); while (beans.hasNext()) { ! MemoryManagerMXBean bean = (MemoryManagerMXBean) beans.next(); ! System.out.println("Bean: " + bean); ! System.out.println("Name: " + bean.getName()); ! System.out.println("Memory pool names: " ! + Arrays.toString(bean.getMemoryPoolNames())); ! System.out.println("Is valid: " ! + (bean.isValid() ? "yes" : "no")); } } } - - - --- 34,46 ---- Iterator beans = ManagementFactory.getMemoryManagerMXBeans().iterator(); while (beans.hasNext()) { ! MemoryManagerMXBean bean = (MemoryManagerMXBean) beans.next(); ! System.out.println("Bean: " + bean); ! System.out.println("Name: " + bean.getName()); ! System.out.println("Memory pool names: " ! + Arrays.toString(bean.getMemoryPoolNames())); ! System.out.println("Is valid: " ! + (bean.isValid() ? "yes" : "no")); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java Tue Jan 11 19:46:05 2011 *************** public class TestMemoryPool *** 38,91 **** Iterator beans = ManagementFactory.getMemoryPoolMXBeans().iterator(); while (beans.hasNext()) { ! MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next(); ! System.out.println("Bean: " + bean); ! System.out.println("Name: " + bean.getName()); ! System.out.println("Collection usage: " + bean.getCollectionUsage()); ! boolean collectionUsage = bean.isCollectionUsageThresholdSupported(); ! System.out.println("Collection usage threshold supported: " ! + collectionUsage); ! if (collectionUsage) ! { ! System.out.println("Collection usage threshold: " ! + bean.getCollectionUsageThreshold()); ! System.out.println("Setting collection usage threshold to 1MB (" ! + MB + " bytes)"); ! bean.setCollectionUsageThreshold(MB); ! System.out.println("Collection usage threshold: " ! + bean.getCollectionUsageThreshold()); ! System.out.println("Collection usage threshold count: " ! + bean.getCollectionUsageThresholdCount()); ! System.out.println("Collection usage threshold exceeded: " ! + (bean.isCollectionUsageThresholdExceeded() ! ? "yes" : "no")); ! } ! System.out.println("Memory manager names: " ! + Arrays.toString(bean.getMemoryManagerNames())); ! System.out.println("Peak usage: " + bean.getPeakUsage()); ! System.out.println("Current usage: " + bean.getUsage()); ! System.out.println("Resetting peak usage..."); ! bean.resetPeakUsage(); ! System.out.println("Peak usage: " + bean.getPeakUsage()); ! System.out.println("Current usage: " + bean.getUsage()); ! boolean usage = bean.isUsageThresholdSupported(); ! System.out.println("Usage threshold supported: " + usage); ! if (usage) ! { ! System.out.println("Usage threshold: " ! + bean.getUsageThreshold()); ! System.out.println("Setting usage threshold to 1MB (" ! + MB + " bytes)"); ! bean.setUsageThreshold(MB); ! System.out.println("Usage threshold: " ! + bean.getUsageThreshold()); ! System.out.println("Usage threshold count: " ! + bean.getUsageThresholdCount()); ! System.out.println("Usage threshold exceeded: " ! + (bean.isUsageThresholdExceeded() ! ? "yes" : "no")); ! } ! System.out.println("Valid: " + (bean.isValid() ? "yes" : "no")); } } } --- 38,91 ---- Iterator beans = ManagementFactory.getMemoryPoolMXBeans().iterator(); while (beans.hasNext()) { ! MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next(); ! System.out.println("Bean: " + bean); ! System.out.println("Name: " + bean.getName()); ! System.out.println("Collection usage: " + bean.getCollectionUsage()); ! boolean collectionUsage = bean.isCollectionUsageThresholdSupported(); ! System.out.println("Collection usage threshold supported: " ! + collectionUsage); ! if (collectionUsage) ! { ! System.out.println("Collection usage threshold: " ! + bean.getCollectionUsageThreshold()); ! System.out.println("Setting collection usage threshold to 1MB (" ! + MB + " bytes)"); ! bean.setCollectionUsageThreshold(MB); ! System.out.println("Collection usage threshold: " ! + bean.getCollectionUsageThreshold()); ! System.out.println("Collection usage threshold count: " ! + bean.getCollectionUsageThresholdCount()); ! System.out.println("Collection usage threshold exceeded: " ! + (bean.isCollectionUsageThresholdExceeded() ! ? "yes" : "no")); ! } ! System.out.println("Memory manager names: " ! + Arrays.toString(bean.getMemoryManagerNames())); ! System.out.println("Peak usage: " + bean.getPeakUsage()); ! System.out.println("Current usage: " + bean.getUsage()); ! System.out.println("Resetting peak usage..."); ! bean.resetPeakUsage(); ! System.out.println("Peak usage: " + bean.getPeakUsage()); ! System.out.println("Current usage: " + bean.getUsage()); ! boolean usage = bean.isUsageThresholdSupported(); ! System.out.println("Usage threshold supported: " + usage); ! if (usage) ! { ! System.out.println("Usage threshold: " ! + bean.getUsageThreshold()); ! System.out.println("Setting usage threshold to 1MB (" ! + MB + " bytes)"); ! bean.setUsageThreshold(MB); ! System.out.println("Usage threshold: " ! + bean.getUsageThreshold()); ! System.out.println("Usage threshold count: " ! + bean.getUsageThresholdCount()); ! System.out.println("Usage threshold exceeded: " ! + (bean.isUsageThresholdExceeded() ! ? "yes" : "no")); ! } ! System.out.println("Valid: " + (bean.isValid() ? "yes" : "no")); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestThread.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestThread.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/management/TestThread.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/management/TestThread.java Tue Jan 11 19:46:05 2011 *************** public class TestThread *** 40,65 **** System.out.println("Current thread CPU time monitoring supported: " + currentTimeMonitoring); if (currentTimeMonitoring) { ! boolean timeEnabled = bean.isThreadCpuTimeEnabled(); ! System.out.println("Is time monitoring enabled... " + ! (timeEnabled ? "yes" : "no")); ! if (!timeEnabled) ! { ! System.out.println("Enabling..."); ! bean.setThreadCpuTimeEnabled(true); ! timeEnabled = bean.isThreadCpuTimeEnabled(); ! System.out.println("Should now be enabled... " + ! (timeEnabled ? "yes" : "no")); ! } ! if (timeEnabled) ! { ! System.out.println("Current thread CPU time: " ! + bean.getCurrentThreadCpuTime() ! + "ns"); ! System.out.println("Current thread user time: " ! + bean.getCurrentThreadUserTime() ! + "ns"); ! } } System.out.println("Daemon thread count: " + bean.getDaemonThreadCount()); System.out.println("Peak thread count: " + bean.getPeakThreadCount()); --- 40,65 ---- System.out.println("Current thread CPU time monitoring supported: " + currentTimeMonitoring); if (currentTimeMonitoring) { ! boolean timeEnabled = bean.isThreadCpuTimeEnabled(); ! System.out.println("Is time monitoring enabled... " + ! (timeEnabled ? "yes" : "no")); ! if (!timeEnabled) ! { ! System.out.println("Enabling..."); ! bean.setThreadCpuTimeEnabled(true); ! timeEnabled = bean.isThreadCpuTimeEnabled(); ! System.out.println("Should now be enabled... " + ! (timeEnabled ? "yes" : "no")); ! } ! if (timeEnabled) ! { ! System.out.println("Current thread CPU time: " ! + bean.getCurrentThreadCpuTime() ! + "ns"); ! System.out.println("Current thread user time: " ! + bean.getCurrentThreadUserTime() ! + "ns"); ! } } System.out.println("Daemon thread count: " + bean.getDaemonThreadCount()); System.out.println("Peak thread count: " + bean.getPeakThreadCount()); *************** public class TestThread *** 71,118 **** System.out.println("Thread CPU time monitoring supported: " + timeMonitoring); if (timeMonitoring) { ! for (int a = 0; a < ids.length; ++a) ! { ! System.out.println("Thread " + a ! + " CPU time: " ! + bean.getThreadCpuTime(ids[a]) + "ns"); ! System.out.println("Thread " ! + a + " user time: " ! + bean.getThreadUserTime(ids[a]) + "ns"); ! } } System.out.println("Current thread info: " ! + bean.getThreadInfo(Thread.currentThread().getId())); System.out.println("All thread info: " + Arrays.toString(bean.getThreadInfo(ids))); System.out.println("Total started threads: " + bean.getTotalStartedThreadCount()); boolean contentionMonitoring = bean.isThreadContentionMonitoringSupported(); System.out.println("Thread contention monitoring supported: " + contentionMonitoring); if (contentionMonitoring) { ! boolean contentionEnabled = bean.isThreadContentionMonitoringEnabled(); ! System.out.println("Thread contention monitoring shouldn't be enabled... " + ! (contentionEnabled ? "but it is" : "true")); ! if (!contentionEnabled) ! { ! System.out.println("Enabling..."); ! bean.setThreadContentionMonitoringEnabled(true); ! contentionEnabled = bean.isThreadContentionMonitoringEnabled(); ! System.out.println("Should now be enabled... " + ! (contentionEnabled ? "it is" : "nope")); ! } ! if (contentionEnabled) ! { ! ThreadInfo[] info = bean.getThreadInfo(ids); ! for (int a = 0; a < info.length; ++a) ! { ! System.out.println("Blocked time for thread " ! + info[a].getThreadId() + ": " ! + info[a].getBlockedTime() + "ms"); ! System.out.println("Waited time for thread " ! + info[a].getThreadId() + ": " ! + info[a].getWaitedTime() + "ms"); ! } ! } } } } --- 71,118 ---- System.out.println("Thread CPU time monitoring supported: " + timeMonitoring); if (timeMonitoring) { ! for (int a = 0; a < ids.length; ++a) ! { ! System.out.println("Thread " + a ! + " CPU time: " ! + bean.getThreadCpuTime(ids[a]) + "ns"); ! System.out.println("Thread " ! + a + " user time: " ! + bean.getThreadUserTime(ids[a]) + "ns"); ! } } System.out.println("Current thread info: " ! + bean.getThreadInfo(Thread.currentThread().getId())); System.out.println("All thread info: " + Arrays.toString(bean.getThreadInfo(ids))); System.out.println("Total started threads: " + bean.getTotalStartedThreadCount()); boolean contentionMonitoring = bean.isThreadContentionMonitoringSupported(); System.out.println("Thread contention monitoring supported: " + contentionMonitoring); if (contentionMonitoring) { ! boolean contentionEnabled = bean.isThreadContentionMonitoringEnabled(); ! System.out.println("Thread contention monitoring shouldn't be enabled... " + ! (contentionEnabled ? "but it is" : "true")); ! if (!contentionEnabled) ! { ! System.out.println("Enabling..."); ! bean.setThreadContentionMonitoringEnabled(true); ! contentionEnabled = bean.isThreadContentionMonitoringEnabled(); ! System.out.println("Should now be enabled... " + ! (contentionEnabled ? "it is" : "nope")); ! } ! if (contentionEnabled) ! { ! ThreadInfo[] info = bean.getThreadInfo(ids); ! for (int a = 0; a < info.length; ++a) ! { ! System.out.println("Blocked time for thread " ! + info[a].getThreadId() + ": " ! + info[a].getBlockedTime() + "ms"); ! System.out.println("Waited time for thread " ! + info[a].getThreadId() + ": " ! + info[a].getWaitedTime() + "ms"); ! } ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/midi/Demo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/midi/Demo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/midi/Demo.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/midi/Demo.java Tue Jan 11 19:46:05 2011 *************** public class Demo extends Frame implemen *** 35,41 **** MidiDevice inDevice = null; MidiDevice outDevice = null; ! ArrayList inDevices = new ArrayList(); ArrayList outDevices = new ArrayList(); --- 35,41 ---- MidiDevice inDevice = null; MidiDevice outDevice = null; ! ArrayList inDevices = new ArrayList(); ArrayList outDevices = new ArrayList(); *************** public class Demo extends Frame implemen *** 46,77 **** MenuItem quit = new MenuItem("Quit", new MenuShortcut('Q')); quit.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent e) ! { ! System.exit(0); ! } }); menu.add (quit); mb.add(menu); ! setTitle("synthcity: the GNU Classpath MIDI Demo"); setLayout(new FlowLayout()); ! MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo(); for (int i = 0; i < infos.length; i++) { ! MidiDevice device = MidiSystem.getMidiDevice(infos[i]); ! if (device.getMaxReceivers() > 0) ! { ! midiOutChoice.addItem(infos[i].getDescription()); ! outDevices.add(device); ! } ! if (device.getMaxTransmitters() > 0) ! { ! midiInChoice.addItem(infos[i].getDescription()); ! inDevices.add(device); ! } } setMenuBar (mb); --- 46,77 ---- MenuItem quit = new MenuItem("Quit", new MenuShortcut('Q')); quit.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent e) ! { ! System.exit(0); ! } }); menu.add (quit); mb.add(menu); ! setTitle("synthcity: the GNU Classpath MIDI Demo"); setLayout(new FlowLayout()); ! MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo(); for (int i = 0; i < infos.length; i++) { ! MidiDevice device = MidiSystem.getMidiDevice(infos[i]); ! if (device.getMaxReceivers() > 0) ! { ! midiOutChoice.addItem(infos[i].getDescription()); ! outDevices.add(device); ! } ! if (device.getMaxTransmitters() > 0) ! { ! midiInChoice.addItem(infos[i].getDescription()); ! inDevices.add(device); ! } } setMenuBar (mb); *************** public class Demo extends Frame implemen *** 86,132 **** pack(); show(); } ! public void itemStateChanged (ItemEvent e) { try { ! if (e.getItemSelectable() == midiInChoice) ! { ! if (inDevice != null) ! inDevice.close(); ! inDevice = (MidiDevice) ! inDevices.get(midiInChoice.getSelectedIndex()); ! } ! ! if (e.getItemSelectable() == midiOutChoice) ! { ! if (outDevice != null) ! outDevice.close(); ! outDevice = (MidiDevice) ! outDevices.get(midiOutChoice.getSelectedIndex()); ! } ! ! if (inDevice != null && outDevice != null) ! { ! if (! inDevice.isOpen()) ! inDevice.open(); ! if (! outDevice.isOpen()) ! outDevice.open(); ! Transmitter t = inDevice.getTransmitter(); ! if (t == null) ! System.err.println (inDevice + ".getTransmitter() == null"); ! Receiver r = outDevice.getReceiver(); ! if (r == null) ! System.err.println (outDevice + ".getReceiver() == null"); ! ! if (t != null && r != null) ! t.setReceiver (r); ! } } catch (Exception ex) { ! ex.printStackTrace(); } } --- 86,132 ---- pack(); show(); } ! public void itemStateChanged (ItemEvent e) { try { ! if (e.getItemSelectable() == midiInChoice) ! { ! if (inDevice != null) ! inDevice.close(); ! inDevice = (MidiDevice) ! inDevices.get(midiInChoice.getSelectedIndex()); ! } ! ! if (e.getItemSelectable() == midiOutChoice) ! { ! if (outDevice != null) ! outDevice.close(); ! outDevice = (MidiDevice) ! outDevices.get(midiOutChoice.getSelectedIndex()); ! } ! ! if (inDevice != null && outDevice != null) ! { ! if (! inDevice.isOpen()) ! inDevice.open(); ! if (! outDevice.isOpen()) ! outDevice.open(); ! Transmitter t = inDevice.getTransmitter(); ! if (t == null) ! System.err.println (inDevice + ".getTransmitter() == null"); ! Receiver r = outDevice.getReceiver(); ! if (r == null) ! System.err.println (outDevice + ".getReceiver() == null"); ! ! if (t != null && r != null) ! t.setReceiver (r); ! } } catch (Exception ex) { ! ex.printStackTrace(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/print/Demo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/print/Demo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/print/Demo.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/print/Demo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.JTextField; *** 76,87 **** * A simple demo showing the use of the Java Print Service API. * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class Demo extends JFrame implements ActionListener { // The discovered print services private static PrintService[] services; ! // variables for the PrintPanel demo private HashPrintRequestAttributeSet atts; private PrintService dialogSelectedService; --- 76,87 ---- * A simple demo showing the use of the Java Print Service API. * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class Demo extends JFrame implements ActionListener { // The discovered print services private static PrintService[] services; ! // variables for the PrintPanel demo private HashPrintRequestAttributeSet atts; private PrintService dialogSelectedService; *************** public class Demo extends JFrame *** 90,191 **** private JComboBox dialogSelectedServicedocFormat; private JTextField selectedFileTf; private File selectedFile; ! // variables for the PrintServicePanel demo private JComboBox serviceBox; private JList docFormat; private JList attCategories; ! static { // lookup all services without any constraints ! services = PrintServiceLookup.lookupPrintServices(null, null); } ! /** * Constructs the Print Demo * @param title - the demo title. */ ! public Demo(String title) { super(title); JPanel content = new JPanel(new BorderLayout()); ! JTabbedPane tabbed = new JTabbedPane(); tabbed.addTab("Discover print services", createPrintServicePanel()); tabbed.addTab("Print a file", createPrintPanel()); ! JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); closeButton.setActionCommand("CLOSE"); closeButton.addActionListener(this); closePanel.add(closeButton); ! content.add(tabbed, BorderLayout.CENTER); content.add(closePanel, BorderLayout.SOUTH); getContentPane().add(content); } ! ! private JPanel createPrintServicePanel() ! { JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); ! c.insets = new Insets(5,5,5,5); c.gridx = 0; ! c.gridy = 0; c.anchor = GridBagConstraints.WEST; c.fill = GridBagConstraints.HORIZONTAL; JLabel serviceBoxLb = new JLabel("Available print services: "); ! panel.add(serviceBoxLb, c); ! c.gridx = 1; c.gridy = 0; serviceBox = new JComboBox(services); serviceBox.setActionCommand("SERVICE"); serviceBox.addActionListener(this); ! panel.add(serviceBox, c); ! c.gridx = 0; c.gridy = 1; JLabel docFormatLb = new JLabel("Supported DocFormat: "); ! panel.add(docFormatLb, c); ! c.gridx = 1; c.gridy = 1; docFormat = new JList(services[0].getSupportedDocFlavors()); docFormat.setVisibleRowCount(3); JScrollPane scrollPane = new JScrollPane(docFormat); ! panel.add(scrollPane, c); ! c.gridx = 0; c.gridy = 2; JLabel categoriesLb = new JLabel("Supported Attribute categories: "); ! panel.add(categoriesLb, c); ! c.gridx = 1; c.gridy = 2; attCategories = new JList(services[0].getSupportedAttributeCategories()); attCategories.setVisibleRowCount(3); ! JScrollPane scrollPane2 = new JScrollPane(attCategories); ! panel.add(scrollPane2, c); ! return panel; } ! ! private JPanel createPrintPanel() { ! JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); ! c.insets = new Insets(5,5,5,5); c.gridx = 0; c.gridy = 0; ! c.gridwidth = 2; JButton serviceBtn = new JButton("Show print dialog ..."); serviceBtn.addActionListener(this); ! panel.add(serviceBtn, c); ! c.gridx = 0; c.gridy = 1; c.gridwidth = 1; --- 90,191 ---- private JComboBox dialogSelectedServicedocFormat; private JTextField selectedFileTf; private File selectedFile; ! // variables for the PrintServicePanel demo private JComboBox serviceBox; private JList docFormat; private JList attCategories; ! static { // lookup all services without any constraints ! services = PrintServiceLookup.lookupPrintServices(null, null); } ! /** * Constructs the Print Demo * @param title - the demo title. */ ! public Demo(String title) { super(title); JPanel content = new JPanel(new BorderLayout()); ! JTabbedPane tabbed = new JTabbedPane(); tabbed.addTab("Discover print services", createPrintServicePanel()); tabbed.addTab("Print a file", createPrintPanel()); ! JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); closeButton.setActionCommand("CLOSE"); closeButton.addActionListener(this); closePanel.add(closeButton); ! content.add(tabbed, BorderLayout.CENTER); content.add(closePanel, BorderLayout.SOUTH); getContentPane().add(content); } ! ! private JPanel createPrintServicePanel() ! { JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); ! c.insets = new Insets(5,5,5,5); c.gridx = 0; ! c.gridy = 0; c.anchor = GridBagConstraints.WEST; c.fill = GridBagConstraints.HORIZONTAL; JLabel serviceBoxLb = new JLabel("Available print services: "); ! panel.add(serviceBoxLb, c); ! c.gridx = 1; c.gridy = 0; serviceBox = new JComboBox(services); serviceBox.setActionCommand("SERVICE"); serviceBox.addActionListener(this); ! panel.add(serviceBox, c); ! c.gridx = 0; c.gridy = 1; JLabel docFormatLb = new JLabel("Supported DocFormat: "); ! panel.add(docFormatLb, c); ! c.gridx = 1; c.gridy = 1; docFormat = new JList(services[0].getSupportedDocFlavors()); docFormat.setVisibleRowCount(3); JScrollPane scrollPane = new JScrollPane(docFormat); ! panel.add(scrollPane, c); ! c.gridx = 0; c.gridy = 2; JLabel categoriesLb = new JLabel("Supported Attribute categories: "); ! panel.add(categoriesLb, c); ! c.gridx = 1; c.gridy = 2; attCategories = new JList(services[0].getSupportedAttributeCategories()); attCategories.setVisibleRowCount(3); ! JScrollPane scrollPane2 = new JScrollPane(attCategories); ! panel.add(scrollPane2, c); ! return panel; } ! ! private JPanel createPrintPanel() { ! JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); ! c.insets = new Insets(5,5,5,5); c.gridx = 0; c.gridy = 0; ! c.gridwidth = 2; JButton serviceBtn = new JButton("Show print dialog ..."); serviceBtn.addActionListener(this); ! panel.add(serviceBtn, c); ! c.gridx = 0; c.gridy = 1; c.gridwidth = 1; *************** public class Demo extends JFrame *** 193,247 **** c.fill = GridBagConstraints.HORIZONTAL; JLabel selectedLb = new JLabel("Selected print service: "); panel.add(selectedLb, c); ! c.gridx = 1; c.gridy = 1; dialogSelectedService_Tf = new JTextField(25); panel.add(dialogSelectedService_Tf, c); ! c.gridx = 0; c.gridy = 2; JLabel selectedAttsLb = new JLabel("Selected Attributes: "); panel.add(selectedAttsLb, c); ! c.gridx = 1; c.gridy = 2; c.weighty = 1.5; c.fill = GridBagConstraints.BOTH; dialogSelectedServiceAtts = new JList(); ! dialogSelectedServiceAtts.setVisibleRowCount(3); JScrollPane scrollPane = new JScrollPane(dialogSelectedServiceAtts); panel.add(scrollPane, c); ! c.gridx = 0; c.gridy = 3; c.fill = GridBagConstraints.HORIZONTAL; JLabel fileLb = new JLabel("File to print: "); panel.add(fileLb, c); ! c.gridx = 1; c.gridy = 3; selectedFileTf = new JTextField(25); panel.add(selectedFileTf, c); ! c.gridx = 2; c.gridy = 3; c.fill = GridBagConstraints.NONE; JButton fileBt = new JButton("Choose file"); fileBt.addActionListener(this); panel.add(fileBt, c); ! c.gridx = 0; c.gridy = 4; c.fill = GridBagConstraints.HORIZONTAL; JLabel docFormatLb = new JLabel("Document format of file: "); panel.add(docFormatLb, c); ! c.gridx = 1; c.gridy = 4; dialogSelectedServicedocFormat = new JComboBox(); panel.add(dialogSelectedServicedocFormat, c); ! c.gridx = 0; c.gridy = 5; c.gridwidth = 2; --- 193,247 ---- c.fill = GridBagConstraints.HORIZONTAL; JLabel selectedLb = new JLabel("Selected print service: "); panel.add(selectedLb, c); ! c.gridx = 1; c.gridy = 1; dialogSelectedService_Tf = new JTextField(25); panel.add(dialogSelectedService_Tf, c); ! c.gridx = 0; c.gridy = 2; JLabel selectedAttsLb = new JLabel("Selected Attributes: "); panel.add(selectedAttsLb, c); ! c.gridx = 1; c.gridy = 2; c.weighty = 1.5; c.fill = GridBagConstraints.BOTH; dialogSelectedServiceAtts = new JList(); ! dialogSelectedServiceAtts.setVisibleRowCount(3); JScrollPane scrollPane = new JScrollPane(dialogSelectedServiceAtts); panel.add(scrollPane, c); ! c.gridx = 0; c.gridy = 3; c.fill = GridBagConstraints.HORIZONTAL; JLabel fileLb = new JLabel("File to print: "); panel.add(fileLb, c); ! c.gridx = 1; c.gridy = 3; selectedFileTf = new JTextField(25); panel.add(selectedFileTf, c); ! c.gridx = 2; c.gridy = 3; c.fill = GridBagConstraints.NONE; JButton fileBt = new JButton("Choose file"); fileBt.addActionListener(this); panel.add(fileBt, c); ! c.gridx = 0; c.gridy = 4; c.fill = GridBagConstraints.HORIZONTAL; JLabel docFormatLb = new JLabel("Document format of file: "); panel.add(docFormatLb, c); ! c.gridx = 1; c.gridy = 4; dialogSelectedServicedocFormat = new JComboBox(); panel.add(dialogSelectedServicedocFormat, c); ! c.gridx = 0; c.gridy = 5; c.gridwidth = 2; *************** public class Demo extends JFrame *** 251,257 **** printBt.setActionCommand("PRINT"); printBt.addActionListener(this); panel.add(printBt, c); ! return panel; } --- 251,257 ---- printBt.setActionCommand("PRINT"); printBt.addActionListener(this); panel.add(printBt, c); ! return panel; } *************** public class Demo extends JFrame *** 264,277 **** if (event.getActionCommand().equals("CLOSE")) { System.exit(0); ! } else if (event.getActionCommand().equals("Choose file")) { JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(this); ! selectedFile = chooser.getSelectedFile(); ! if (selectedFile != null) selectedFileTf.setText(selectedFile.getName()); else --- 264,277 ---- if (event.getActionCommand().equals("CLOSE")) { System.exit(0); ! } else if (event.getActionCommand().equals("Choose file")) { JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(this); ! selectedFile = chooser.getSelectedFile(); ! if (selectedFile != null) selectedFileTf.setText(selectedFile.getName()); else *************** public class Demo extends JFrame *** 279,295 **** } else if (event.getActionCommand().equals("Show print dialog ...")) { ! atts = new HashPrintRequestAttributeSet(); dialogSelectedService = ServiceUI.printDialog(null, 50, 50, services, null, null, atts); ! if (dialogSelectedService != null) { dialogSelectedService_Tf.setText(dialogSelectedService.getName()); ! // we do not want to have the class representation in the dialog // as we later always use an InputStream to open the file selected ! // use set to remove duplicates DocFlavor[] docflavors = dialogSelectedService.getSupportedDocFlavors(); HashSet set = new HashSet(); --- 279,295 ---- } else if (event.getActionCommand().equals("Show print dialog ...")) { ! atts = new HashPrintRequestAttributeSet(); dialogSelectedService = ServiceUI.printDialog(null, 50, 50, services, null, null, atts); ! if (dialogSelectedService != null) { dialogSelectedService_Tf.setText(dialogSelectedService.getName()); ! // we do not want to have the class representation in the dialog // as we later always use an InputStream to open the file selected ! // use set to remove duplicates DocFlavor[] docflavors = dialogSelectedService.getSupportedDocFlavors(); HashSet set = new HashSet(); *************** public class Demo extends JFrame *** 301,308 **** mimetype += "; charset=" + charset; set.add(mimetype); } ! ! dialogSelectedServicedocFormat.removeAllItems(); for (Iterator it = set.iterator(); it.hasNext(); ) dialogSelectedServicedocFormat.addItem(it.next()); } --- 301,308 ---- mimetype += "; charset=" + charset; set.add(mimetype); } ! ! dialogSelectedServicedocFormat.removeAllItems(); for (Iterator it = set.iterator(); it.hasNext(); ) dialogSelectedServicedocFormat.addItem(it.next()); } *************** public class Demo extends JFrame *** 314,332 **** for (int i = 0; i < attsSTr.length; i++) attsSTr[i] = attsArray[i].getName() + " - " + attsArray[i].toString(); ! dialogSelectedServiceAtts.setListData(attsSTr); ! ! validate(); ! } else if (event.getActionCommand().equals("PRINT")) ! { ! if (selectedFile != null && dialogSelectedService != null) { DocPrintJob job = dialogSelectedService.createPrintJob(); ! // choose correct docflavor String mimetype = (String) dialogSelectedServicedocFormat.getSelectedItem(); ! DocFlavor flavor = null; if (mimetype.equals(DocFlavor.INPUT_STREAM.GIF.getMimeType())) flavor = DocFlavor.INPUT_STREAM.GIF; --- 314,332 ---- for (int i = 0; i < attsSTr.length; i++) attsSTr[i] = attsArray[i].getName() + " - " + attsArray[i].toString(); ! dialogSelectedServiceAtts.setListData(attsSTr); ! ! validate(); ! } else if (event.getActionCommand().equals("PRINT")) ! { ! if (selectedFile != null && dialogSelectedService != null) { DocPrintJob job = dialogSelectedService.createPrintJob(); ! // choose correct docflavor String mimetype = (String) dialogSelectedServicedocFormat.getSelectedItem(); ! DocFlavor flavor = null; if (mimetype.equals(DocFlavor.INPUT_STREAM.GIF.getMimeType())) flavor = DocFlavor.INPUT_STREAM.GIF; *************** public class Demo extends JFrame *** 348,354 **** flavor = DocFlavor.INPUT_STREAM.TEXT_PLAIN_HOST; else flavor = new DocFlavor(mimetype, "java.io.InputStream"); ! try { SimpleDoc doc = new SimpleDoc(new FileInputStream(selectedFile), flavor, null); --- 348,354 ---- flavor = DocFlavor.INPUT_STREAM.TEXT_PLAIN_HOST; else flavor = new DocFlavor(mimetype, "java.io.InputStream"); ! try { SimpleDoc doc = new SimpleDoc(new FileInputStream(selectedFile), flavor, null); *************** public class Demo extends JFrame *** 363,369 **** { JOptionPane.showMessageDialog(this, e, "PrintException", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); ! } } else JOptionPane.showMessageDialog(this, "Please select a file to print using the FileChooser", "No file selected", JOptionPane.INFORMATION_MESSAGE); --- 363,369 ---- { JOptionPane.showMessageDialog(this, e, "PrintException", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); ! } } else JOptionPane.showMessageDialog(this, "Please select a file to print using the FileChooser", "No file selected", JOptionPane.INFORMATION_MESSAGE); *************** public class Demo extends JFrame *** 371,377 **** else if (event.getActionCommand().equals("SERVICE")) { // A new service was selected PrintService selected = (PrintService) serviceBox.getSelectedItem(); ! DocFlavor[] flavors = selected.getSupportedDocFlavors(); docFormat.setListData(flavors); attCategories.setListData(selected.getSupportedAttributeCategories()); --- 371,377 ---- else if (event.getActionCommand().equals("SERVICE")) { // A new service was selected PrintService selected = (PrintService) serviceBox.getSelectedItem(); ! DocFlavor[] flavors = selected.getSupportedDocFlavors(); docFormat.setListData(flavors); attCategories.setListData(selected.getSupportedAttributeCategories()); diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java Sun Oct 21 12:06:09 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.sampled.UnsupportedAu *** 52,66 **** * A simple demo to show the use of the Java Sound API. * It plays the given file (up to the end, so don't pass the 26 minutes long * Pink Floyd's Echoes unless you really want!!). ! * * See: http://jsresources.org/examples/SimpleAudioPlayer.java.html ! * * @author Mario Torre */ public class AudioPlayerSample { private static final int EXTERNAL_BUFFER_SIZE = 128000; ! /** * @param args */ --- 52,66 ---- * A simple demo to show the use of the Java Sound API. * It plays the given file (up to the end, so don't pass the 26 minutes long * Pink Floyd's Echoes unless you really want!!). ! * * See: http://jsresources.org/examples/SimpleAudioPlayer.java.html ! * * @author Mario Torre */ public class AudioPlayerSample { private static final int EXTERNAL_BUFFER_SIZE = 128000; ! /** * @param args */ *************** public class AudioPlayerSample *** 72,83 **** "AudioPlayerSample [file]"); return; } ! String file = args[0]; ! System.out.println("Welcome to Radio Classpath, only great music for you!"); System.out.println("Today's DJ Tap The WaterDroplet"); ! // now create the AudioInputStream AudioInputStream audioInputStream = null; try --- 72,83 ---- "AudioPlayerSample [file]"); return; } ! String file = args[0]; ! System.out.println("Welcome to Radio Classpath, only great music for you!"); System.out.println("Today's DJ Tap The WaterDroplet"); ! // now create the AudioInputStream AudioInputStream audioInputStream = null; try *************** public class AudioPlayerSample *** 98,112 **** e.printStackTrace(); return; } ! // get informations about the kind of file we are about to play AudioFormat audioFormat = audioInputStream.getFormat(); ! System.out.println("Playing file: " + file); System.out.println("format: " + audioFormat.toString()); ! System.out.print("Additional properties: "); ! // now, we try to get all the properties we have in this AudioFormat // and display them Map properties = audioFormat.properties(); --- 98,112 ---- e.printStackTrace(); return; } ! // get informations about the kind of file we are about to play AudioFormat audioFormat = audioInputStream.getFormat(); ! System.out.println("Playing file: " + file); System.out.println("format: " + audioFormat.toString()); ! System.out.print("Additional properties: "); ! // now, we try to get all the properties we have in this AudioFormat // and display them Map properties = audioFormat.properties(); *************** public class AudioPlayerSample *** 122,139 **** System.out.println(key + ": " + properties.get(key)); } } ! // let's setup things for playing // first, we require a Line. As we are doing playing, we will ask for a // SourceDataLine SourceDataLine line = null; ! // To get the source line, we first need to build an Info object // this is done in one line: DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); ! System.out.println("searching line..."); ! // usually, if a backend can parse a file type, it can also // create a line to handle it, but that's not guaranteed // so we need to take care and to handle a possible --- 122,139 ---- System.out.println(key + ": " + properties.get(key)); } } ! // let's setup things for playing // first, we require a Line. As we are doing playing, we will ask for a // SourceDataLine SourceDataLine line = null; ! // To get the source line, we first need to build an Info object // this is done in one line: DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); ! System.out.println("searching line..."); ! // usually, if a backend can parse a file type, it can also // create a line to handle it, but that's not guaranteed // so we need to take care and to handle a possible *************** public class AudioPlayerSample *** 141,149 **** try { line = (SourceDataLine) AudioSystem.getLine(info); ! System.out.println("line found, opening..."); ! // once created, a line must be opened to let data flow // though it. line.open(audioFormat); --- 141,149 ---- try { line = (SourceDataLine) AudioSystem.getLine(info); ! System.out.println("line found, opening..."); ! // once created, a line must be opened to let data flow // though it. line.open(audioFormat); *************** public class AudioPlayerSample *** 160,183 **** e.printStackTrace(); return; } ! // an open line pass data to the backend only when it is in // a state called "started" ("playing" or "play" in some other // framework) System.out.print("starting line... "); ! line.start(); System.out.println("done"); ! // now we can start reading data from the AudioStream and writing // data to the pipeline. The Java Sound API is rather low level // so let you pass up to one byte of data at a time // (with some constraints, refer to the API documentation to know more) // We will do some buffering. You may want to check the frame size // to allow a better buffering, also. ! System.out.println("now playing..."); ! int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; while (nBytesRead != - 1) --- 160,183 ---- e.printStackTrace(); return; } ! // an open line pass data to the backend only when it is in // a state called "started" ("playing" or "play" in some other // framework) System.out.print("starting line... "); ! line.start(); System.out.println("done"); ! // now we can start reading data from the AudioStream and writing // data to the pipeline. The Java Sound API is rather low level // so let you pass up to one byte of data at a time // (with some constraints, refer to the API documentation to know more) // We will do some buffering. You may want to check the frame size // to allow a better buffering, also. ! System.out.println("now playing..."); ! int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; while (nBytesRead != - 1) *************** public class AudioPlayerSample *** 190,196 **** { e.printStackTrace(); } ! if (nBytesRead >= 0) { // this method returns the number of bytes actuall written --- 190,196 ---- { e.printStackTrace(); } ! if (nBytesRead >= 0) { // this method returns the number of bytes actuall written *************** public class AudioPlayerSample *** 200,208 **** line.write(abData, 0, nBytesRead); } } ! System.out.print("stream finished, draining line... "); ! // call this method to ensure that all the data in the internal buffer // reach the audio backend, otherwise your application will // cut the last frames of audio data (and users will not enjoy the last --- 200,208 ---- line.write(abData, 0, nBytesRead); } } ! System.out.print("stream finished, draining line... "); ! // call this method to ensure that all the data in the internal buffer // reach the audio backend, otherwise your application will // cut the last frames of audio data (and users will not enjoy the last *************** public class AudioPlayerSample *** 212,221 **** // Once done, we can close the line. Note that a line, once closed // may not be reopened (depends on the backend, in some cases a "reopen", // if allowed, really opens a new line, reallocating all the resources) ! System.out.println("line drained, now exiting"); line.close(); ! System.out.println("We hope you enjoyed Radio Classpath!"); } --- 212,221 ---- // Once done, we can close the line. Note that a line, once closed // may not be reopened (depends on the backend, in some cases a "reopen", // if allowed, really opens a new line, reallocating all the resources) ! System.out.println("line drained, now exiting"); line.close(); ! System.out.println("We hope you enjoyed Radio Classpath!"); } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/BrowserEditorKit.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/BrowserEditorKit.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/BrowserEditorKit.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/BrowserEditorKit.java Tue Jan 11 19:46:05 2011 *************** public class BrowserEditorKit *** 54,57 **** setAutoFormSubmission(false); } } - --- 54,56 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.metal.MetalIconF *** 43,65 **** /** * A simple button demo showing various buttons in different states. */ ! public class ButtonDemo ! extends JPanel ! implements ActionListener { ! private JCheckBox buttonState; private JButton button1; private JButton button2; private JButton button3; private JButton button4; ! private JCheckBox toggleState; private JToggleButton toggle1; private JToggleButton toggle2; private JToggleButton toggle3; private JToggleButton toggle4; ! private JCheckBox checkBoxState; private JCheckBox checkBox1; private JCheckBox checkBox2; --- 43,65 ---- /** * A simple button demo showing various buttons in different states. */ ! public class ButtonDemo ! extends JPanel ! implements ActionListener { ! private JCheckBox buttonState; private JButton button1; private JButton button2; private JButton button3; private JButton button4; ! private JCheckBox toggleState; private JToggleButton toggle1; private JToggleButton toggle2; private JToggleButton toggle3; private JToggleButton toggle4; ! private JCheckBox checkBoxState; private JCheckBox checkBox1; private JCheckBox checkBox2; *************** public class ButtonDemo *** 73,88 **** /** * Creates a new demo instance. */ ! public ButtonDemo() { createContent(); ! // initFrameContent() is only called (from main) when running this app // standalone } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. --- 73,88 ---- /** * Creates a new demo instance. */ ! public ButtonDemo() { createContent(); ! // initFrameContent() is only called (from main) when running this app // standalone } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. *************** public class ButtonDemo *** 100,109 **** /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ private void createContent() { setLayout(new BorderLayout()); --- 100,109 ---- /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ private void createContent() { setLayout(new BorderLayout()); *************** public class ButtonDemo *** 114,177 **** panel.add(createRadioPanel()); add(panel); } ! ! private JPanel createButtonPanel() { JPanel panel = new JPanel(new BorderLayout()); this.buttonState = new JCheckBox("Enabled", true); this.buttonState.setActionCommand("BUTTON_STATE"); this.buttonState.addActionListener(this); panel.add(this.buttonState, BorderLayout.EAST); ! JPanel buttonPanel = new JPanel(); buttonPanel.setBorder(BorderFactory.createTitledBorder("JButton")); this.button1 = new JButton("Button 1"); ! this.button2 = new JButton("Button 2"); this.button2.setIcon(MetalIconFactory.getInternalFrameDefaultMenuIcon()); ! this.button3 = new JButton("Button 3"); this.button3.setIcon(MetalIconFactory.getFileChooserHomeFolderIcon()); this.button3.setHorizontalTextPosition(SwingConstants.CENTER); this.button3.setVerticalTextPosition(SwingConstants.BOTTOM); ! this.button4 = new JButton("Button 4"); this.button4.setIcon(MetalIconFactory.getFileChooserUpFolderIcon()); this.button4.setText(null); ! buttonPanel.add(button1); buttonPanel.add(button2); buttonPanel.add(button3); buttonPanel.add(button4); ! panel.add(buttonPanel); ! return panel; } ! ! private JPanel createTogglePanel() { JPanel panel = new JPanel(new BorderLayout()); ! this.toggleState = new JCheckBox("Enabled", true); this.toggleState.setActionCommand("TOGGLE_STATE"); this.toggleState.addActionListener(this); ! panel.add(this.toggleState, BorderLayout.EAST); ! JPanel buttonPanel = new JPanel(); buttonPanel.setBorder(BorderFactory.createTitledBorder("JToggleButton")); ! this.toggle1 = new JToggleButton("Toggle 1"); ! this.toggle2 = new JToggleButton("Toggle 2"); this.toggle2.setIcon(MetalIconFactory.getInternalFrameDefaultMenuIcon()); ! this.toggle3 = new JToggleButton("Toggle 3"); this.toggle3.setIcon(MetalIconFactory.getFileChooserHomeFolderIcon()); this.toggle3.setHorizontalTextPosition(SwingConstants.CENTER); this.toggle3.setVerticalTextPosition(SwingConstants.BOTTOM); ! this.toggle4 = new JToggleButton("Toggle 4"); this.toggle4.setIcon(MetalIconFactory.getFileChooserUpFolderIcon()); this.toggle4.setText(null); --- 114,177 ---- panel.add(createRadioPanel()); add(panel); } ! ! private JPanel createButtonPanel() { JPanel panel = new JPanel(new BorderLayout()); this.buttonState = new JCheckBox("Enabled", true); this.buttonState.setActionCommand("BUTTON_STATE"); this.buttonState.addActionListener(this); panel.add(this.buttonState, BorderLayout.EAST); ! JPanel buttonPanel = new JPanel(); buttonPanel.setBorder(BorderFactory.createTitledBorder("JButton")); this.button1 = new JButton("Button 1"); ! this.button2 = new JButton("Button 2"); this.button2.setIcon(MetalIconFactory.getInternalFrameDefaultMenuIcon()); ! this.button3 = new JButton("Button 3"); this.button3.setIcon(MetalIconFactory.getFileChooserHomeFolderIcon()); this.button3.setHorizontalTextPosition(SwingConstants.CENTER); this.button3.setVerticalTextPosition(SwingConstants.BOTTOM); ! this.button4 = new JButton("Button 4"); this.button4.setIcon(MetalIconFactory.getFileChooserUpFolderIcon()); this.button4.setText(null); ! buttonPanel.add(button1); buttonPanel.add(button2); buttonPanel.add(button3); buttonPanel.add(button4); ! panel.add(buttonPanel); ! return panel; } ! ! private JPanel createTogglePanel() { JPanel panel = new JPanel(new BorderLayout()); ! this.toggleState = new JCheckBox("Enabled", true); this.toggleState.setActionCommand("TOGGLE_STATE"); this.toggleState.addActionListener(this); ! panel.add(this.toggleState, BorderLayout.EAST); ! JPanel buttonPanel = new JPanel(); buttonPanel.setBorder(BorderFactory.createTitledBorder("JToggleButton")); ! this.toggle1 = new JToggleButton("Toggle 1"); ! this.toggle2 = new JToggleButton("Toggle 2"); this.toggle2.setIcon(MetalIconFactory.getInternalFrameDefaultMenuIcon()); ! this.toggle3 = new JToggleButton("Toggle 3"); this.toggle3.setIcon(MetalIconFactory.getFileChooserHomeFolderIcon()); this.toggle3.setHorizontalTextPosition(SwingConstants.CENTER); this.toggle3.setVerticalTextPosition(SwingConstants.BOTTOM); ! this.toggle4 = new JToggleButton("Toggle 4"); this.toggle4.setIcon(MetalIconFactory.getFileChooserUpFolderIcon()); this.toggle4.setText(null); *************** public class ButtonDemo *** 181,278 **** toggleGroup.add(toggle2); toggleGroup.add(toggle3); toggleGroup.add(toggle4); ! buttonPanel.add(toggle1); buttonPanel.add(toggle2); buttonPanel.add(toggle3); buttonPanel.add(toggle4); ! panel.add(buttonPanel); ! return panel; } ! private JPanel createCheckBoxPanel() { JPanel panel = new JPanel(new BorderLayout()); ! this.checkBoxState = new JCheckBox("Enabled", true); this.checkBoxState.setActionCommand("CHECKBOX_STATE"); this.checkBoxState.addActionListener(this); ! panel.add(this.checkBoxState, BorderLayout.EAST); ! JPanel buttonPanel = new JPanel(); buttonPanel.setBorder(BorderFactory.createTitledBorder("JCheckBox")); this.checkBox1 = new JCheckBox("CheckBox 1"); ! this.checkBox2 = new JCheckBox("CheckBox 2"); ! this.checkBox3 = new JCheckBox("CheckBox 3"); ! buttonPanel.add(checkBox1); buttonPanel.add(checkBox2); buttonPanel.add(checkBox3); ! panel.add(buttonPanel); ! return panel; } ! private JPanel createRadioPanel() { JPanel panel = new JPanel(new BorderLayout()); ! this.radioState = new JCheckBox("Enabled", true); this.radioState.setActionCommand("RADIO_STATE"); this.radioState.addActionListener(this); panel.add(this.radioState, BorderLayout.EAST); ! JPanel buttonPanel = new JPanel(); buttonPanel.setBorder(BorderFactory.createTitledBorder("JRadioButton")); this.radio1 = new JRadioButton("Radio 1"); ! this.radio2 = new JRadioButton("Radio 2"); ! this.radio3 = new JRadioButton("Radio 3"); ! ButtonGroup radioGroup = new ButtonGroup(); radioGroup.add(radio1); radioGroup.add(radio2); radioGroup.add(radio3); ! buttonPanel.add(radio1); buttonPanel.add(radio2); buttonPanel.add(radio3); ! panel.add(buttonPanel); ! return panel; } ! ! public void actionPerformed(ActionEvent e) { ! if (e.getActionCommand().equals("BUTTON_STATE")) { button1.setEnabled(buttonState.isSelected()); button2.setEnabled(buttonState.isSelected()); button3.setEnabled(buttonState.isSelected()); button4.setEnabled(buttonState.isSelected()); } ! else if (e.getActionCommand().equals("TOGGLE_STATE")) { toggle1.setEnabled(toggleState.isSelected()); toggle2.setEnabled(toggleState.isSelected()); toggle3.setEnabled(toggleState.isSelected()); toggle4.setEnabled(toggleState.isSelected()); } ! else if (e.getActionCommand().equals("CHECKBOX_STATE")) { checkBox1.setEnabled(checkBoxState.isSelected()); checkBox2.setEnabled(checkBoxState.isSelected()); checkBox3.setEnabled(checkBoxState.isSelected()); } ! else if (e.getActionCommand().equals("RADIO_STATE")) { radio1.setEnabled(radioState.isSelected()); radio2.setEnabled(radioState.isSelected()); --- 181,278 ---- toggleGroup.add(toggle2); toggleGroup.add(toggle3); toggleGroup.add(toggle4); ! buttonPanel.add(toggle1); buttonPanel.add(toggle2); buttonPanel.add(toggle3); buttonPanel.add(toggle4); ! panel.add(buttonPanel); ! return panel; } ! private JPanel createCheckBoxPanel() { JPanel panel = new JPanel(new BorderLayout()); ! this.checkBoxState = new JCheckBox("Enabled", true); this.checkBoxState.setActionCommand("CHECKBOX_STATE"); this.checkBoxState.addActionListener(this); ! panel.add(this.checkBoxState, BorderLayout.EAST); ! JPanel buttonPanel = new JPanel(); buttonPanel.setBorder(BorderFactory.createTitledBorder("JCheckBox")); this.checkBox1 = new JCheckBox("CheckBox 1"); ! this.checkBox2 = new JCheckBox("CheckBox 2"); ! this.checkBox3 = new JCheckBox("CheckBox 3"); ! buttonPanel.add(checkBox1); buttonPanel.add(checkBox2); buttonPanel.add(checkBox3); ! panel.add(buttonPanel); ! return panel; } ! private JPanel createRadioPanel() { JPanel panel = new JPanel(new BorderLayout()); ! this.radioState = new JCheckBox("Enabled", true); this.radioState.setActionCommand("RADIO_STATE"); this.radioState.addActionListener(this); panel.add(this.radioState, BorderLayout.EAST); ! JPanel buttonPanel = new JPanel(); buttonPanel.setBorder(BorderFactory.createTitledBorder("JRadioButton")); this.radio1 = new JRadioButton("Radio 1"); ! this.radio2 = new JRadioButton("Radio 2"); ! this.radio3 = new JRadioButton("Radio 3"); ! ButtonGroup radioGroup = new ButtonGroup(); radioGroup.add(radio1); radioGroup.add(radio2); radioGroup.add(radio3); ! buttonPanel.add(radio1); buttonPanel.add(radio2); buttonPanel.add(radio3); ! panel.add(buttonPanel); ! return panel; } ! ! public void actionPerformed(ActionEvent e) { ! if (e.getActionCommand().equals("BUTTON_STATE")) { button1.setEnabled(buttonState.isSelected()); button2.setEnabled(buttonState.isSelected()); button3.setEnabled(buttonState.isSelected()); button4.setEnabled(buttonState.isSelected()); } ! else if (e.getActionCommand().equals("TOGGLE_STATE")) { toggle1.setEnabled(toggleState.isSelected()); toggle2.setEnabled(toggleState.isSelected()); toggle3.setEnabled(toggleState.isSelected()); toggle4.setEnabled(toggleState.isSelected()); } ! else if (e.getActionCommand().equals("CHECKBOX_STATE")) { checkBox1.setEnabled(checkBoxState.isSelected()); checkBox2.setEnabled(checkBoxState.isSelected()); checkBox3.setEnabled(checkBoxState.isSelected()); } ! else if (e.getActionCommand().equals("RADIO_STATE")) { radio1.setEnabled(radioState.isSelected()); radio2.setEnabled(radioState.isSelected()); *************** public class ButtonDemo *** 284,290 **** } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 284,290 ---- } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.metal.MetalIconF *** 47,57 **** /** * A simple demo showing various combo boxes in different states. */ ! public class ComboBoxDemo extends JPanel ! implements ActionListener { ! class CustomCellRenderer extends DefaultListCellRenderer { public Component getListCellRendererComponent(JList list, --- 47,57 ---- /** * A simple demo showing various combo boxes in different states. */ ! public class ComboBoxDemo extends JPanel ! implements ActionListener { ! class CustomCellRenderer extends DefaultListCellRenderer { public Component getListCellRendererComponent(JList list, *************** public class ComboBoxDemo *** 60,68 **** boolean isSelected, boolean cellHasFocus) { ! DefaultListCellRenderer result = (DefaultListCellRenderer) ! super.getListCellRendererComponent(list, value, index, isSelected, ! cellHasFocus); Icon icon = (Icon) value; result.setIcon(icon); result.setText("Index = " + index); --- 60,68 ---- boolean isSelected, boolean cellHasFocus) { ! DefaultListCellRenderer result = (DefaultListCellRenderer) ! super.getListCellRendererComponent(list, value, index, isSelected, ! cellHasFocus); Icon icon = (Icon) value; result.setIcon(icon); result.setText("Index = " + index); *************** public class ComboBoxDemo *** 70,116 **** } } ! private JCheckBox comboState1; private JComboBox combo1; private JComboBox combo2; ! private JCheckBox comboState2; private JComboBox combo3; private JComboBox combo4; ! ! private JCheckBox comboState3; private JComboBox combo5; private JComboBox combo6; ! private JCheckBox comboState4; private JComboBox combo7; private JComboBox combo8; ! private JCheckBox comboState5; private JComboBox combo9; private JComboBox combo10; ! private JCheckBox comboState6; private JComboBox combo11; private JComboBox combo12; ! /** * Creates a new demo instance. */ ! public ComboBoxDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. */ ! void initFrameContent() { JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); --- 70,116 ---- } } ! private JCheckBox comboState1; private JComboBox combo1; private JComboBox combo2; ! private JCheckBox comboState2; private JComboBox combo3; private JComboBox combo4; ! ! private JCheckBox comboState3; private JComboBox combo5; private JComboBox combo6; ! private JCheckBox comboState4; private JComboBox combo7; private JComboBox combo8; ! private JCheckBox comboState5; private JComboBox combo9; private JComboBox combo10; ! private JCheckBox comboState6; private JComboBox combo11; private JComboBox combo12; ! /** * Creates a new demo instance. */ ! public ComboBoxDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. */ ! void initFrameContent() { JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); *************** public class ComboBoxDemo *** 119,133 **** closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(6, 1)); --- 119,133 ---- closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(6, 1)); *************** public class ComboBoxDemo *** 139,265 **** panel.add(createPanel6()); add(panel); } ! ! private JPanel createPanel1() { JPanel panel = new JPanel(new BorderLayout()); this.comboState1 = new JCheckBox("Enabled", true); this.comboState1.setActionCommand("COMBO_STATE1"); this.comboState1.addActionListener(this); panel.add(this.comboState1, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Regular: ")); ! this.combo1 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); ! ! this.combo2 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo2.setEditable(true); ! controlPanel.add(combo1); controlPanel.add(combo2); ! panel.add(controlPanel); ! return panel; } ! ! private JPanel createPanel2() { JPanel panel = new JPanel(new BorderLayout()); this.comboState2 = new JCheckBox("Enabled", true); this.comboState2.setActionCommand("COMBO_STATE2"); this.comboState2.addActionListener(this); panel.add(this.comboState2, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Large Font: ")); ! this.combo3 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo3.setFont(new Font("Dialog", Font.PLAIN, 20)); ! ! this.combo4 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo4.setEditable(true); this.combo4.setFont(new Font("Dialog", Font.PLAIN, 20)); ! controlPanel.add(combo3); controlPanel.add(combo4); ! panel.add(controlPanel); ! return panel; } ! private JPanel createPanel3() { JPanel panel = new JPanel(new BorderLayout()); this.comboState3 = new JCheckBox("Enabled", true); this.comboState3.setActionCommand("COMBO_STATE3"); this.comboState3.addActionListener(this); panel.add(this.comboState3, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Colored Background: ")); ! this.combo5 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo5.setBackground(Color.yellow); ! ! this.combo6 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo6.setEditable(true); this.combo6.setBackground(Color.yellow); ! controlPanel.add(combo5); controlPanel.add(combo6); ! panel.add(controlPanel); ! return panel; } ! /** * This panel contains combo boxes that are empty. ! * * @return A panel. */ ! private JPanel createPanel4() { JPanel panel = new JPanel(new BorderLayout()); this.comboState4 = new JCheckBox("Enabled", true); this.comboState4.setActionCommand("COMBO_STATE4"); this.comboState4.addActionListener(this); panel.add(this.comboState4, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Empty: ")); this.combo7 = new JComboBox(); this.combo8 = new JComboBox(); this.combo8.setEditable(true); ! controlPanel.add(combo7); controlPanel.add(combo8); ! panel.add(controlPanel); ! return panel; } ! /** ! * This panel contains combo boxes that are narrow but contain long text * items. ! * * @return A panel. */ ! private JPanel createPanel5() { JPanel panel = new JPanel(new BorderLayout()); this.comboState5 = new JCheckBox("Enabled", true); this.comboState5.setActionCommand("COMBO_STATE5"); this.comboState5.addActionListener(this); panel.add(this.comboState5, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Narrow: ")); this.combo9 = new JComboBox(new Object[] { --- 139,265 ---- panel.add(createPanel6()); add(panel); } ! ! private JPanel createPanel1() { JPanel panel = new JPanel(new BorderLayout()); this.comboState1 = new JCheckBox("Enabled", true); this.comboState1.setActionCommand("COMBO_STATE1"); this.comboState1.addActionListener(this); panel.add(this.comboState1, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Regular: ")); ! this.combo1 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); ! ! this.combo2 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo2.setEditable(true); ! controlPanel.add(combo1); controlPanel.add(combo2); ! panel.add(controlPanel); ! return panel; } ! ! private JPanel createPanel2() { JPanel panel = new JPanel(new BorderLayout()); this.comboState2 = new JCheckBox("Enabled", true); this.comboState2.setActionCommand("COMBO_STATE2"); this.comboState2.addActionListener(this); panel.add(this.comboState2, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Large Font: ")); ! this.combo3 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo3.setFont(new Font("Dialog", Font.PLAIN, 20)); ! ! this.combo4 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo4.setEditable(true); this.combo4.setFont(new Font("Dialog", Font.PLAIN, 20)); ! controlPanel.add(combo3); controlPanel.add(combo4); ! panel.add(controlPanel); ! return panel; } ! private JPanel createPanel3() { JPanel panel = new JPanel(new BorderLayout()); this.comboState3 = new JCheckBox("Enabled", true); this.comboState3.setActionCommand("COMBO_STATE3"); this.comboState3.addActionListener(this); panel.add(this.comboState3, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Colored Background: ")); ! this.combo5 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo5.setBackground(Color.yellow); ! ! this.combo6 = new JComboBox(new Object[] {"Australia", "New Zealand", "England"}); this.combo6.setEditable(true); this.combo6.setBackground(Color.yellow); ! controlPanel.add(combo5); controlPanel.add(combo6); ! panel.add(controlPanel); ! return panel; } ! /** * This panel contains combo boxes that are empty. ! * * @return A panel. */ ! private JPanel createPanel4() { JPanel panel = new JPanel(new BorderLayout()); this.comboState4 = new JCheckBox("Enabled", true); this.comboState4.setActionCommand("COMBO_STATE4"); this.comboState4.addActionListener(this); panel.add(this.comboState4, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Empty: ")); this.combo7 = new JComboBox(); this.combo8 = new JComboBox(); this.combo8.setEditable(true); ! controlPanel.add(combo7); controlPanel.add(combo8); ! panel.add(controlPanel); ! return panel; } ! /** ! * This panel contains combo boxes that are narrow but contain long text * items. ! * * @return A panel. */ ! private JPanel createPanel5() { JPanel panel = new JPanel(new BorderLayout()); this.comboState5 = new JCheckBox("Enabled", true); this.comboState5.setActionCommand("COMBO_STATE5"); this.comboState5.addActionListener(this); panel.add(this.comboState5, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Narrow: ")); this.combo9 = new JComboBox(new Object[] { *************** public class ComboBoxDemo *** 269,296 **** "A really long item that will be truncated when displayed"}); this.combo10.setPreferredSize(new Dimension(100, 30)); this.combo10.setEditable(true); ! controlPanel.add(combo9); controlPanel.add(combo10); ! panel.add(controlPanel); ! return panel; } /** * This panel contains combo boxes with a custom renderer. ! * * @return A panel. */ ! private JPanel createPanel6() { JPanel panel = new JPanel(new BorderLayout()); this.comboState6 = new JCheckBox("Enabled", true); this.comboState6.setActionCommand("COMBO_STATE6"); this.comboState6.addActionListener(this); panel.add(this.comboState6, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Custom Renderer: ")); this.combo11 = new JComboBox(new Object[] { --- 269,296 ---- "A really long item that will be truncated when displayed"}); this.combo10.setPreferredSize(new Dimension(100, 30)); this.combo10.setEditable(true); ! controlPanel.add(combo9); controlPanel.add(combo10); ! panel.add(controlPanel); ! return panel; } /** * This panel contains combo boxes with a custom renderer. ! * * @return A panel. */ ! private JPanel createPanel6() { JPanel panel = new JPanel(new BorderLayout()); this.comboState6 = new JCheckBox("Enabled", true); this.comboState6.setActionCommand("COMBO_STATE6"); this.comboState6.addActionListener(this); panel.add(this.comboState6, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Custom Renderer: ")); this.combo11 = new JComboBox(new Object[] { *************** public class ComboBoxDemo *** 304,346 **** this.combo12.setPreferredSize(new Dimension(100, 30)); this.combo12.setRenderer(new CustomCellRenderer()); this.combo12.setEditable(true); ! controlPanel.add(combo11); controlPanel.add(combo12); ! panel.add(controlPanel); ! return panel; } ! public void actionPerformed(ActionEvent e) { ! if (e.getActionCommand().equals("COMBO_STATE1")) { combo1.setEnabled(comboState1.isSelected()); combo2.setEnabled(comboState1.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE2")) { combo3.setEnabled(comboState2.isSelected()); combo4.setEnabled(comboState2.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE3")) { combo5.setEnabled(comboState3.isSelected()); combo6.setEnabled(comboState3.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE4")) { combo7.setEnabled(comboState4.isSelected()); combo8.setEnabled(comboState4.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE5")) { combo9.setEnabled(comboState5.isSelected()); combo10.setEnabled(comboState5.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE6")) { combo11.setEnabled(comboState6.isSelected()); combo12.setEnabled(comboState6.isSelected()); --- 304,346 ---- this.combo12.setPreferredSize(new Dimension(100, 30)); this.combo12.setRenderer(new CustomCellRenderer()); this.combo12.setEditable(true); ! controlPanel.add(combo11); controlPanel.add(combo12); ! panel.add(controlPanel); ! return panel; } ! public void actionPerformed(ActionEvent e) { ! if (e.getActionCommand().equals("COMBO_STATE1")) { combo1.setEnabled(comboState1.isSelected()); combo2.setEnabled(comboState1.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE2")) { combo3.setEnabled(comboState2.isSelected()); combo4.setEnabled(comboState2.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE3")) { combo5.setEnabled(comboState3.isSelected()); combo6.setEnabled(comboState3.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE4")) { combo7.setEnabled(comboState4.isSelected()); combo8.setEnabled(comboState4.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE5")) { combo9.setEnabled(comboState5.isSelected()); combo10.setEnabled(comboState5.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE6")) { combo11.setEnabled(comboState6.isSelected()); combo12.setEnabled(comboState6.isSelected()); *************** public class ComboBoxDemo *** 351,357 **** } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 351,357 ---- } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java Tue Jan 11 19:46:05 2011 *************** public class Demo *** 76,82 **** private JMenuBar mkMenuBar() { JMenuBar bar = new JMenuBar(); ! JMenu file = new JMenu("File"); JMenu edit = new JMenu("Edit"); JMenu help = new JMenu("Help"); --- 76,82 ---- private JMenuBar mkMenuBar() { JMenuBar bar = new JMenuBar(); ! JMenu file = new JMenu("File"); JMenu edit = new JMenu("Edit"); JMenu help = new JMenu("Help"); *************** public class Demo *** 113,121 **** JMenu preferences = new JMenu("Preferences..."); preferences.add(new JCheckBoxMenuItem("Microphone Active", ! stockIcon("mic"))); preferences.add(new JCheckBoxMenuItem("Check Spelling", ! stockIcon("spell-check"))); preferences.add(new JCheckBoxMenuItem("World Peace")); preferences.add(new JSeparator()); preferences.add(new JRadioButtonMenuItem("Radio Button")); --- 113,121 ---- JMenu preferences = new JMenu("Preferences..."); preferences.add(new JCheckBoxMenuItem("Microphone Active", ! stockIcon("mic"))); preferences.add(new JCheckBoxMenuItem("Check Spelling", ! stockIcon("spell-check"))); preferences.add(new JCheckBoxMenuItem("World Peace")); preferences.add(new JSeparator()); preferences.add(new JRadioButtonMenuItem("Radio Button")); *************** public class Demo *** 165,171 **** final JMenuItem vmMenu; ! help.add(new JMenuItem("just play with the widgets")); help.add(new JMenuItem("and enjoy the sensation of")); help.add(new JMenuItem("your neural connections growing")); --- 165,171 ---- final JMenuItem vmMenu; ! help.add(new JMenuItem("just play with the widgets")); help.add(new JMenuItem("and enjoy the sensation of")); help.add(new JMenuItem("your neural connections growing")); *************** public class Demo *** 182,195 **** + " distributed by " + System.getProperty("java.vm.vendor") + "."; ! String gnuClasspath = System.getProperty("gnu.classpath.version"); if(gnuClasspath != null) message += "\nThe runtime's libraries are " + "kindly provided by the " + "members of GNU Classpath and are in version " + gnuClasspath + "."; ! JOptionPane.showMessageDialog(vmMenu, message); } }); --- 182,195 ---- + " distributed by " + System.getProperty("java.vm.vendor") + "."; ! String gnuClasspath = System.getProperty("gnu.classpath.version"); if(gnuClasspath != null) message += "\nThe runtime's libraries are " + "kindly provided by the " + "members of GNU Classpath and are in version " + gnuClasspath + "."; ! JOptionPane.showMessageDialog(vmMenu, message); } }); *************** public class Demo *** 197,203 **** // Installs the BasicLookAndFeel. UIManager.installLookAndFeel("(Basic Look And Feel)", InstantiableBasicLookAndFeel.class.getName()); ! // Create L&F menu. JMenu lafMenu = new JMenu("Look and Feel"); ButtonGroup lafGroup = new ButtonGroup(); --- 197,203 ---- // Installs the BasicLookAndFeel. UIManager.installLookAndFeel("(Basic Look And Feel)", InstantiableBasicLookAndFeel.class.getName()); ! // Create L&F menu. JMenu lafMenu = new JMenu("Look and Feel"); ButtonGroup lafGroup = new ButtonGroup(); *************** public class Demo *** 211,217 **** boolean selected = laf.getClassName().equals(currentLaf); lafItem.setSelected(selected); lafMenu.add(lafItem); ! lafGroup.add(lafItem); } --- 211,217 ---- boolean selected = laf.getClassName().equals(currentLaf); lafItem.setSelected(selected); lafMenu.add(lafItem); ! lafGroup.add(lafItem); } *************** public class Demo *** 231,237 **** { // Ignore it. } ! if (m != null) { JRadioButtonMenuItem ocean = --- 231,237 ---- { // Ignore it. } ! if (m != null) { JRadioButtonMenuItem ocean = *************** public class Demo *** 239,245 **** ocean.setSelected(MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme); themesMenu.add(ocean); themesGroup.add(ocean); ! JRadioButtonMenuItem steel = new JRadioButtonMenuItem(new ChangeThemeAction(new DefaultMetalTheme())); ocean.setSelected(MetalLookAndFeel.getCurrentTheme() --- 239,245 ---- ocean.setSelected(MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme); themesMenu.add(ocean); themesGroup.add(ocean); ! JRadioButtonMenuItem steel = new JRadioButtonMenuItem(new ChangeThemeAction(new DefaultMetalTheme())); ocean.setSelected(MetalLookAndFeel.getCurrentTheme() *************** public class Demo *** 251,257 **** { themesMenu.setEnabled(false); } ! bar.add(file); bar.add(edit); bar.add(examples); --- 251,257 ---- { themesMenu.setEnabled(false); } ! bar.add(file); bar.add(edit); bar.add(examples); *************** public class Demo *** 267,276 **** { public void actionPerformed(ActionEvent e) { ! JOptionPane.showConfirmDialog(but, "Sure you want to go " + dir + "?", "Confirm", ! JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, bigStockIcon("warning")); } --- 267,276 ---- { public void actionPerformed(ActionEvent e) { ! JOptionPane.showConfirmDialog(but, "Sure you want to go " + dir + "?", "Confirm", ! JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, bigStockIcon("warning")); } *************** public class Demo *** 310,319 **** } } ! private static JButton mkButton(String title, Icon icon, int hAlign, int vAlign, int hPos, int vPos) ! { JButton b; if (icon == null) b = new JButton(title); --- 310,319 ---- } } ! private static JButton mkButton(String title, Icon icon, int hAlign, int vAlign, int hPos, int vPos) ! { JButton b; if (icon == null) b = new JButton(title); *************** public class Demo *** 321,332 **** b = new JButton(icon); else b = new JButton(title, icon); ! b.setToolTipText(title); if (hAlign != -1) b.setHorizontalAlignment(hAlign); if (vAlign != -1) b.setVerticalAlignment(vAlign); if (hPos != -1) b.setHorizontalTextPosition(hPos); ! if (vPos != -1) b.setVerticalTextPosition(vPos); return b; } --- 321,332 ---- b = new JButton(icon); else b = new JButton(title, icon); ! b.setToolTipText(title); if (hAlign != -1) b.setHorizontalAlignment(hAlign); if (vAlign != -1) b.setVerticalAlignment(vAlign); if (hPos != -1) b.setHorizontalTextPosition(hPos); ! if (vPos != -1) b.setVerticalTextPosition(vPos); return b; } *************** public class Demo *** 363,369 **** { public void run() { ! new Demo(); } } --- 363,369 ---- { public void run() { ! new Demo(); } } *************** public class Demo *** 442,448 **** } private JPanel mkButtonBar() ! { JPanel panel = new JPanel(new GridLayout(3, 1, 5, 5)); panel.add(new JButton(new PopupAction("Buttons", ButtonDemo.createDemoFactory()))); --- 442,448 ---- } private JPanel mkButtonBar() ! { JPanel panel = new JPanel(new GridLayout(3, 1, 5, 5)); panel.add(new JButton(new PopupAction("Buttons", ButtonDemo.createDemoFactory()))); *************** public class Demo *** 479,493 **** JButton exitDisposer = mkDisposerButton(frame); panel.add(exitDisposer); ! ! panel.setMaximumSize(new Dimension(Integer.MAX_VALUE, panel.getPreferredSize().height)); exitDisposer.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent e) ! { ! System.exit(1); ! } }); return panel; } --- 479,493 ---- JButton exitDisposer = mkDisposerButton(frame); panel.add(exitDisposer); ! ! panel.setMaximumSize(new Dimension(Integer.MAX_VALUE, panel.getPreferredSize().height)); exitDisposer.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent e) ! { ! System.exit(1); ! } }); return panel; } *************** public class Demo *** 546,552 **** } SwingUtilities.updateComponentTreeUI(frame); } ! } /** --- 546,552 ---- } SwingUtilities.updateComponentTreeUI(frame); } ! } /** *************** public class Demo *** 585,600 **** { ex.printStackTrace(); } ! SwingUtilities.updateComponentTreeUI(frame); themesMenu.setEnabled(laf.getClassName() .equals("javax.swing.plaf.metal.MetalLookAndFeel")); } } ! /** * An implementation of BasicLookAndFeel which can be instantiated. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 585,600 ---- { ex.printStackTrace(); } ! SwingUtilities.updateComponentTreeUI(frame); themesMenu.setEnabled(laf.getClassName() .equals("javax.swing.plaf.metal.MetalLookAndFeel")); } } ! /** * An implementation of BasicLookAndFeel which can be instantiated. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ *************** public class Demo *** 604,612 **** { return "An instantiable implementation of BasicLookAndFeel"; } ! public String getID() ! { return "instantiableBasicLookAndFeel"; } --- 604,612 ---- { return "An instantiable implementation of BasicLookAndFeel"; } ! public String getID() ! { return "instantiableBasicLookAndFeel"; } *************** public class Demo *** 614,625 **** { return "Instantiable Basic Look And Feel"; } ! public boolean isNativeLookAndFeel() { return false; } ! public boolean isSupportedLookAndFeel() { return true; --- 614,625 ---- { return "Instantiable Basic Look And Feel"; } ! public boolean isNativeLookAndFeel() { return false; } ! public boolean isSupportedLookAndFeel() { return true; diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/DemoFactory.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/DemoFactory.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/DemoFactory.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/DemoFactory.java Tue Jan 11 19:46:05 2011 *************** public interface DemoFactory *** 50,56 **** /** * Creates the component that should be as demo application. ! * * @return the component that should be as demo application */ JComponent createDemo(); --- 50,56 ---- /** * Creates the component that should be as demo application. ! * * @return the component that should be as demo application */ JComponent createDemo(); diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.DocumentFilter; *** 47,66 **** /** * A demonstration of the javax.swing.text.DocumentFilter class. ! * *

Similar to a dialog in a popular programming IDE the user can insert * a CVS URL into a textfield and the filter will split the components apart * and will put them into the right textfields saving the user a lot of * typing time.

! * * @author Robert Schuster */ ! public class DocumentFilterDemo ! extends JPanel ! implements ActionListener { JTextField target; ! JTextField host; JTextField repositoryPath; JTextField user; --- 47,66 ---- /** * A demonstration of the javax.swing.text.DocumentFilter class. ! * *

Similar to a dialog in a popular programming IDE the user can insert * a CVS URL into a textfield and the filter will split the components apart * and will put them into the right textfields saving the user a lot of * typing time.

! * * @author Robert Schuster */ ! public class DocumentFilterDemo ! extends JPanel ! implements ActionListener { JTextField target; ! JTextField host; JTextField repositoryPath; JTextField user; *************** public class DocumentFilterDemo *** 70,85 **** /** * Creates a new demo instance. */ ! public DocumentFilterDemo() { createContent(); ! // initFrameContent() is only called (from main) when running this app // standalone } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. --- 70,85 ---- /** * Creates a new demo instance. */ ! public DocumentFilterDemo() { createContent(); ! // initFrameContent() is only called (from main) when running this app // standalone } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. *************** public class DocumentFilterDemo *** 97,126 **** private void createContent() { setLayout(new BorderLayout()); ! JPanel panel = new JPanel(new GridLayout(7, 2)); panel.add(new JLabel("CVS URL:")); panel.add(target = new JTextField(20)); target.setBackground(Color.RED); ! panel.add(new JLabel("Host:")); panel.add(host = new JTextField(20)); ! panel.add(new JLabel("Repository Path:")); panel.add(repositoryPath = new JTextField(20)); ! panel.add(new JLabel("Username:")); panel.add(user = new JTextField(20)); ! panel.add(new JLabel("Password:")); panel.add(password = new JTextField(20)); ! panel.add(new JLabel("Connection Type:")); panel.add(connectionType = new JComboBox()); ! JButton helpButton = new JButton("Help"); panel.add(helpButton); ! helpButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) --- 97,126 ---- private void createContent() { setLayout(new BorderLayout()); ! JPanel panel = new JPanel(new GridLayout(7, 2)); panel.add(new JLabel("CVS URL:")); panel.add(target = new JTextField(20)); target.setBackground(Color.RED); ! panel.add(new JLabel("Host:")); panel.add(host = new JTextField(20)); ! panel.add(new JLabel("Repository Path:")); panel.add(repositoryPath = new JTextField(20)); ! panel.add(new JLabel("Username:")); panel.add(user = new JTextField(20)); ! panel.add(new JLabel("Password:")); panel.add(password = new JTextField(20)); ! panel.add(new JLabel("Connection Type:")); panel.add(connectionType = new JComboBox()); ! JButton helpButton = new JButton("Help"); panel.add(helpButton); ! helpButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) *************** public class DocumentFilterDemo *** 134,140 **** "string into your clipboard."); } }); ! JButton exampleButton = new JButton("Provide me an example!"); panel.add(exampleButton); exampleButton.addActionListener(new ActionListener() --- 134,140 ---- "string into your clipboard."); } }); ! JButton exampleButton = new JButton("Provide me an example!"); panel.add(exampleButton); exampleButton.addActionListener(new ActionListener() *************** public class DocumentFilterDemo *** 148,156 **** StringSelection selection = new StringSelection(":extssh:gnu@cvs.savannah.gnu.org:" + "/cvs/example/project"); ! cb.setContents(selection, selection); ! // Confirm success with a beep. tk.beep(); } --- 148,156 ---- StringSelection selection = new StringSelection(":extssh:gnu@cvs.savannah.gnu.org:" + "/cvs/example/project"); ! cb.setContents(selection, selection); ! // Confirm success with a beep. tk.beep(); } *************** public class DocumentFilterDemo *** 164,188 **** } } }); ! connectionType.addItem("pserver"); connectionType.addItem("ext"); connectionType.addItem("extssh"); ! add(panel); ! AbstractDocument doc = (AbstractDocument) target.getDocument(); doc.setDocumentFilter(new CVSFilter()); } ! ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) System.exit(0); - - } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 164,188 ---- } } }); ! connectionType.addItem("pserver"); connectionType.addItem("ext"); connectionType.addItem("extssh"); ! add(panel); ! AbstractDocument doc = (AbstractDocument) target.getDocument(); doc.setDocumentFilter(new CVSFilter()); } ! ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) System.exit(0); ! } ! ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() *************** public class DocumentFilterDemo *** 215,221 **** } }; } ! class CVSFilter extends DocumentFilter { // example: pserver:anonymous@cvs.sourceforge.net:/cvsroot/fmj --- 215,221 ---- } }; } ! class CVSFilter extends DocumentFilter { // example: pserver:anonymous@cvs.sourceforge.net:/cvsroot/fmj *************** public class DocumentFilterDemo *** 228,234 **** { filterString(fb, offset, 0, string, attr, true); } ! public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String string, --- 228,234 ---- { filterString(fb, offset, 0, string, attr, true); } ! public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String string, *************** public class DocumentFilterDemo *** 237,243 **** { filterString(fb, offset, length, string, attr, false); } ! public void filterString(DocumentFilter.FilterBypass fb, int offset, int length, String string, AttributeSet attr, boolean insertion) --- 237,243 ---- { filterString(fb, offset, length, string, attr, false); } ! public void filterString(DocumentFilter.FilterBypass fb, int offset, int length, String string, AttributeSet attr, boolean insertion) *************** public class DocumentFilterDemo *** 253,264 **** // operation on the remaining string and continue. if(result[0].equals("")) result = result[1].split(":", 2); ! connectionType.setSelectedItem(result[0]); ! // Split off the username and password part result = result[1].split("@", 2); ! // Break username and password in half String[] userCredentials = result[0].split(":"); user.setText(userCredentials[0]); --- 253,264 ---- // operation on the remaining string and continue. if(result[0].equals("")) result = result[1].split(":", 2); ! connectionType.setSelectedItem(result[0]); ! // Split off the username and password part result = result[1].split("@", 2); ! // Break username and password in half String[] userCredentials = result[0].split(":"); user.setText(userCredentials[0]); *************** public class DocumentFilterDemo *** 267,288 **** // be the password. if (userCredentials.length == 2) password.setText(userCredentials[1]); ! // Now break the host part apart. result = result[1].split(":"); ! host.setText(result[0]); ! repositoryPath.setText(result[1]); } ! // The unmodified string is put into the document. if (insertion) fb.insertString(offset, string, attr); else fb.replace(offset, length, string, attr); } ! } ! } --- 267,288 ---- // be the password. if (userCredentials.length == 2) password.setText(userCredentials[1]); ! // Now break the host part apart. result = result[1].split(":"); ! host.setText(result[0]); ! repositoryPath.setText(result[1]); } ! // The unmodified string is put into the document. if (insertion) fb.insertString(offset, string, attr); else fb.replace(offset, length, string, attr); } ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.filechooser.FileFilte *** 46,102 **** */ public class FileChooserDemo extends JPanel ! implements ActionListener { /** * A file filter for Java source files. */ static class JavaFileFilter extends FileFilter { ! public String getDescription() { return "Java Source Files (.java)"; } public boolean accept(File f) { ! if (f != null) { return f.getName().endsWith(".java") || f.isDirectory(); } ! else return false; } } /** A label to display the selected file. */ JLabel selectedFileLabel; ! ! /** ! * A list showing the selected files (where multi selections are ! * allowed). */ JList selectedFilesList; ! /** A label to display the return code for the JFileChooser. */ JLabel returnCodeLabel; ! /** ! * Creates a new demo instance. */ ! public FileChooserDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. */ ! void initFrameContent() { JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); --- 46,102 ---- */ public class FileChooserDemo extends JPanel ! implements ActionListener { /** * A file filter for Java source files. */ static class JavaFileFilter extends FileFilter { ! public String getDescription() { return "Java Source Files (.java)"; } public boolean accept(File f) { ! if (f != null) { return f.getName().endsWith(".java") || f.isDirectory(); } ! else return false; } } /** A label to display the selected file. */ JLabel selectedFileLabel; ! ! /** ! * A list showing the selected files (where multi selections are ! * allowed). */ JList selectedFilesList; ! /** A label to display the return code for the JFileChooser. */ JLabel returnCodeLabel; ! /** ! * Creates a new demo instance. */ ! public FileChooserDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. */ ! void initFrameContent() { JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); *************** public class FileChooserDemo *** 105,111 **** closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area --- 105,111 ---- closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area *************** public class FileChooserDemo *** 116,123 **** private void createContent() { setLayout(new BorderLayout()); ! ! // create a panel of buttons to select the different styles of file // chooser... JPanel buttonPanel = new JPanel(new GridLayout(5, 1)); JButton openButton = new JButton("Open..."); --- 116,123 ---- private void createContent() { setLayout(new BorderLayout()); ! ! // create a panel of buttons to select the different styles of file // chooser... JPanel buttonPanel = new JPanel(new GridLayout(5, 1)); JButton openButton = new JButton("Open..."); *************** public class FileChooserDemo *** 141,170 **** openMultiButton.addActionListener(this); buttonPanel.add(openMultiButton); add(buttonPanel, BorderLayout.WEST); ! // create a panel to display the selected file(s) and the return code JPanel displayPanel = new JPanel(new BorderLayout()); ! selectedFileLabel = new JLabel("-"); selectedFileLabel.setBorder(BorderFactory.createTitledBorder("Selected File/Directory: ")); displayPanel.add(selectedFileLabel, BorderLayout.NORTH); ! selectedFilesList = new JList(); JScrollPane sp = new JScrollPane(selectedFilesList); sp.setBorder(BorderFactory.createTitledBorder("Selected Files: ")); displayPanel.add(sp); ! returnCodeLabel = new JLabel("0"); returnCodeLabel.setBorder(BorderFactory.createTitledBorder("Return Code:")); displayPanel.add(returnCodeLabel, BorderLayout.SOUTH); ! add(displayPanel); } ! /** * When the user clicks on a button, launch the appropriate file chooser * and report the results. ! * * @param e the event. */ public void actionPerformed(ActionEvent e) --- 141,170 ---- openMultiButton.addActionListener(this); buttonPanel.add(openMultiButton); add(buttonPanel, BorderLayout.WEST); ! // create a panel to display the selected file(s) and the return code JPanel displayPanel = new JPanel(new BorderLayout()); ! selectedFileLabel = new JLabel("-"); selectedFileLabel.setBorder(BorderFactory.createTitledBorder("Selected File/Directory: ")); displayPanel.add(selectedFileLabel, BorderLayout.NORTH); ! selectedFilesList = new JList(); JScrollPane sp = new JScrollPane(selectedFilesList); sp.setBorder(BorderFactory.createTitledBorder("Selected Files: ")); displayPanel.add(sp); ! returnCodeLabel = new JLabel("0"); returnCodeLabel.setBorder(BorderFactory.createTitledBorder("Return Code:")); displayPanel.add(returnCodeLabel, BorderLayout.SOUTH); ! add(displayPanel); } ! /** * When the user clicks on a button, launch the appropriate file chooser * and report the results. ! * * @param e the event. */ public void actionPerformed(ActionEvent e) *************** public class FileChooserDemo *** 172,178 **** int option = 0; File selectedFile = null; File[] selectedFiles = new File[0]; ! if (e.getActionCommand().equals("CLOSE")) { System.exit(0); --- 172,178 ---- int option = 0; File selectedFile = null; File[] selectedFiles = new File[0]; ! if (e.getActionCommand().equals("CLOSE")) { System.exit(0); *************** public class FileChooserDemo *** 216,222 **** selectedFile = chooser.getSelectedFile(); selectedFiles = chooser.getSelectedFiles(); } ! // display the selection and return code if (selectedFile != null) selectedFileLabel.setText(selectedFile.toString()); --- 216,222 ---- selectedFile = chooser.getSelectedFile(); selectedFiles = chooser.getSelectedFiles(); } ! // display the selection and return code if (selectedFile != null) selectedFileLabel.setText(selectedFile.toString()); *************** public class FileChooserDemo *** 228,235 **** selectedFilesList.setModel(listModel); returnCodeLabel.setText(Integer.toString(option)); } ! ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 228,235 ---- selectedFilesList.setModel(listModel); returnCodeLabel.setText(Integer.toString(option)); } ! ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.html.FormSubmitE *** 68,78 **** /** * Parses and displays HTML content. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public class HtmlDemo extends JPanel ! { private class LoadActionListener implements ActionListener --- 68,78 ---- /** * Parses and displays HTML content. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public class HtmlDemo extends JPanel ! { private class LoadActionListener implements ActionListener *************** public class HtmlDemo extends JPanel *** 101,110 **** /** * The URL entry field. */ ! JTextField url = new JTextField(); JTextPane html = new JTextPane(); ! int n; /** --- 101,110 ---- /** * The URL entry field. */ ! JTextField url = new JTextField(); JTextPane html = new JTextPane(); ! int n; /** *************** public class HtmlDemo extends JPanel *** 152,158 **** } } } ! }); JScrollPane scroller = new JScrollPane(html); --- 152,158 ---- } } } ! }); JScrollPane scroller = new JScrollPane(html); *************** public class HtmlDemo extends JPanel *** 190,196 **** } setPreferredSize(new Dimension(800, 600)); } ! /** * Creates the toolbar with the control buttons. --- 190,196 ---- } setPreferredSize(new Dimension(800, 600)); } ! /** * Creates the toolbar with the control buttons. *************** public class HtmlDemo extends JPanel *** 254,260 **** /** * The executable method to display the editable table. ! * * @param args * unused. */ --- 254,260 ---- /** * The executable method to display the editable table. ! * * @param args * unused. */ *************** public class HtmlDemo extends JPanel *** 377,380 **** }; } } - --- 377,379 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/ListDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/ListDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/ListDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/ListDemo.java Tue Jan 11 19:46:05 2011 *************** public class ListDemo *** 62,68 **** implements ActionListener { ! private static class LabelCellRenderer extends DefaultListCellRenderer { public Component getListCellRendererComponent(JList list, --- 62,68 ---- implements ActionListener { ! private static class LabelCellRenderer extends DefaultListCellRenderer { public Component getListCellRendererComponent(JList list, *************** public class ListDemo *** 71,84 **** boolean isSelected, boolean cellHasFocus) { ! Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); return c; } } ! private static class CheckCellRenderer extends JCheckBox implements ListCellRenderer { --- 71,84 ---- boolean isSelected, boolean cellHasFocus) { ! Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); return c; } } ! private static class CheckCellRenderer extends JCheckBox implements ListCellRenderer { *************** public class ListDemo *** 90,96 **** { setSelected(isSelected); setText(value.toString()); ! return this; } } --- 90,96 ---- { setSelected(isSelected); setText(value.toString()); ! return this; } } *************** public class ListDemo *** 104,110 **** private void createContent() { ! String foo[] = new String[] { "non alcoholic ", "carbonated ", "malted ", --- 104,110 ---- private void createContent() { ! String foo[] = new String[] { "non alcoholic ", "carbonated ", "malted ", *************** public class ListDemo *** 113,120 **** "high fructose ", "enriched " }; ! ! String bar[] = new String[] { "orange juice", "ginger beer", "yak milk", --- 113,120 ---- "high fructose ", "enriched " }; ! ! String bar[] = new String[] { "orange juice", "ginger beer", "yak milk", *************** public class ListDemo *** 162,168 **** splitter.add(new JScrollPane(list2), JSplitPane.RIGHT); setLayout(new BorderLayout()); ! JPanel p2 = new JPanel(); p2.setLayout(new GridLayout(1, 2)); p2.add(add); p2.add(del); --- 162,168 ---- splitter.add(new JScrollPane(list2), JSplitPane.RIGHT); setLayout(new BorderLayout()); ! JPanel p2 = new JPanel(); p2.setLayout(new GridLayout(1, 2)); p2.add(add); p2.add(del); *************** public class ListDemo *** 171,177 **** add(splitter, BorderLayout.CENTER); } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { --- 171,177 ---- add(splitter, BorderLayout.CENTER); } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { *************** public class ListDemo *** 181,187 **** /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. --- 181,187 ---- /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/MetalThemeEditor.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/MetalThemeEditor.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/MetalThemeEditor.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/MetalThemeEditor.java Tue Jan 11 19:46:05 2011 *************** public class MetalThemeEditor *** 134,140 **** g.setColor(color); g.fillRect(x, y, 30, 10); } ! } /** --- 134,140 ---- g.setColor(color); g.fillRect(x, y, 30, 10); } ! } /** *************** public class MetalThemeEditor *** 477,483 **** { ex.printStackTrace(); } ! } /** --- 477,483 ---- { ex.printStackTrace(); } ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/NavigationFilterDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/NavigationFilterDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/NavigationFilterDemo.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/NavigationFilterDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.Utilities; *** 42,73 **** /** * A demonstration of the javax.swing.text.NavigationFilter class. ! * *

It shows a NavigationFilter which lets you walk word-wise * through a text.

! * * @author Robert Schuster */ ! public class NavigationFilterDemo ! extends JPanel ! implements ActionListener { ! JTextArea textArea; /** * Creates a new demo instance. */ ! public NavigationFilterDemo() { createContent(); ! // initFrameContent() is only called (from main) when running this app // standalone } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. --- 42,73 ---- /** * A demonstration of the javax.swing.text.NavigationFilter class. ! * *

It shows a NavigationFilter which lets you walk word-wise * through a text.

! * * @author Robert Schuster */ ! public class NavigationFilterDemo ! extends JPanel ! implements ActionListener { ! JTextArea textArea; /** * Creates a new demo instance. */ ! public NavigationFilterDemo() { createContent(); ! // initFrameContent() is only called (from main) when running this app // standalone } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. *************** public class NavigationFilterDemo *** 85,113 **** private void createContent() { setLayout(new BorderLayout()); ! add(textArea = new JTextArea(10, 20)); ! textArea.setWrapStyleWord(true); ! textArea.setLineWrap(true); ! textArea.setNavigationFilter(new WordFilter()); ! textArea.setText("GNU Classpath, Essential Libraries for Java, " + "is a GNU project to create free core class " + "libraries for use with virtual machines and " + "compilers for the java programming language."); } ! ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) System.exit(0); - - } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 85,113 ---- private void createContent() { setLayout(new BorderLayout()); ! add(textArea = new JTextArea(10, 20)); ! textArea.setWrapStyleWord(true); ! textArea.setLineWrap(true); ! textArea.setNavigationFilter(new WordFilter()); ! textArea.setText("GNU Classpath, Essential Libraries for Java, " + "is a GNU project to create free core class " + "libraries for use with virtual machines and " + "compilers for the java programming language."); } ! ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) System.exit(0); ! } ! ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() *************** public class NavigationFilterDemo *** 140,146 **** } }; } ! class WordFilter extends NavigationFilter { public int getNextVisualPositionFrom(JTextComponent text, --- 140,146 ---- } }; } ! class WordFilter extends NavigationFilter { public int getNextVisualPositionFrom(JTextComponent text, *************** public class NavigationFilterDemo *** 151,164 **** throws BadLocationException { Point pt; ! int newpos = pos; switch (direction) { case SwingConstants.NORTH: // Find out where the caret want to be positioned ideally. pt = text.getCaret().getMagicCaretPosition(); ! // Calculate its position above. newpos = Utilities.getPositionAbove(text, pos, (pt != null) ? pt.x : 0); --- 151,164 ---- throws BadLocationException { Point pt; ! int newpos = pos; switch (direction) { case SwingConstants.NORTH: // Find out where the caret want to be positioned ideally. pt = text.getCaret().getMagicCaretPosition(); ! // Calculate its position above. newpos = Utilities.getPositionAbove(text, pos, (pt != null) ? pt.x : 0); *************** public class NavigationFilterDemo *** 184,190 **** case SwingConstants.WEST: // Calculate the next word start. newpos = Utilities.getWordStart(text, newpos); ! // If that means that the caret will not move, return // the start of the previous word. if (newpos != pos) --- 184,190 ---- case SwingConstants.WEST: // Calculate the next word start. newpos = Utilities.getWordStart(text, newpos); ! // If that means that the caret will not move, return // the start of the previous word. if (newpos != pos) *************** public class NavigationFilterDemo *** 199,205 **** direction, biasRet); } } ! } ! } --- 199,205 ---- direction, biasRet); } } ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.SwingUtilities; *** 37,59 **** /** * A simple scroll bar demo showing various scroll bars in different states. */ ! public class ScrollBarDemo extends JPanel ! implements ActionListener { /** * Creates a new demo instance. */ ! public ScrollBarDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. --- 37,59 ---- /** * A simple scroll bar demo showing various scroll bars in different states. */ ! public class ScrollBarDemo extends JPanel ! implements ActionListener { /** * Creates a new demo instance. */ ! public ScrollBarDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. *************** public class ScrollBarDemo *** 67,93 **** closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = createScrollBarPanel(); add(panel); } ! ! private JPanel createScrollBarPanel() { JPanel panel = new JPanel(new BorderLayout()); ! JPanel horizontalPanel = new JPanel(); ! JScrollBar scroll1a = new JScrollBar(JScrollBar.HORIZONTAL); JScrollBar scroll1b = new JScrollBar(JScrollBar.HORIZONTAL); scroll1b.setEnabled(false); --- 67,93 ---- closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = createScrollBarPanel(); add(panel); } ! ! private JPanel createScrollBarPanel() { JPanel panel = new JPanel(new BorderLayout()); ! JPanel horizontalPanel = new JPanel(); ! JScrollBar scroll1a = new JScrollBar(JScrollBar.HORIZONTAL); JScrollBar scroll1b = new JScrollBar(JScrollBar.HORIZONTAL); scroll1b.setEnabled(false); *************** public class ScrollBarDemo *** 100,111 **** horizontalPanel.add(scroll1b); horizontalPanel.add(scroll1c); horizontalPanel.add(scroll1d); ! panel.add(horizontalPanel, BorderLayout.NORTH); ! JPanel verticalPanel = new JPanel(); verticalPanel.setLayout(new GridLayout(1, 7)); ! JScrollBar scroll2a = new JScrollBar(JScrollBar.VERTICAL); JScrollBar scroll2b = new JScrollBar(JScrollBar.VERTICAL); scroll2b.setEnabled(false); --- 100,111 ---- horizontalPanel.add(scroll1b); horizontalPanel.add(scroll1c); horizontalPanel.add(scroll1d); ! panel.add(horizontalPanel, BorderLayout.NORTH); ! JPanel verticalPanel = new JPanel(); verticalPanel.setLayout(new GridLayout(1, 7)); ! JScrollBar scroll2a = new JScrollBar(JScrollBar.VERTICAL); JScrollBar scroll2b = new JScrollBar(JScrollBar.VERTICAL); scroll2b.setEnabled(false); *************** public class ScrollBarDemo *** 114,120 **** JScrollBar scroll2d = new JScrollBar(JScrollBar.VERTICAL); scroll2d.setEnabled(false); scroll2d.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); ! verticalPanel.add(scroll2a); verticalPanel.add(new JPanel()); verticalPanel.add(scroll2b); --- 114,120 ---- JScrollBar scroll2d = new JScrollBar(JScrollBar.VERTICAL); scroll2d.setEnabled(false); scroll2d.putClientProperty("JScrollBar.isFreeStanding", Boolean.FALSE); ! verticalPanel.add(scroll2a); verticalPanel.add(new JPanel()); verticalPanel.add(scroll2b); *************** public class ScrollBarDemo *** 122,138 **** verticalPanel.add(scroll2c); verticalPanel.add(new JPanel()); verticalPanel.add(scroll2d); ! panel.add(verticalPanel, BorderLayout.EAST); ! JPanel centerPanel = new JPanel(new GridLayout(1, 2)); centerPanel.add(new JScrollBar(JScrollBar.HORIZONTAL)); centerPanel.add(new JScrollBar(JScrollBar.VERTICAL)); panel.add(centerPanel); ! return panel; } ! ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { --- 122,138 ---- verticalPanel.add(scroll2c); verticalPanel.add(new JPanel()); verticalPanel.add(scroll2d); ! panel.add(verticalPanel, BorderLayout.EAST); ! JPanel centerPanel = new JPanel(new GridLayout(1, 2)); centerPanel.add(new JScrollBar(JScrollBar.HORIZONTAL)); centerPanel.add(new JScrollBar(JScrollBar.VERTICAL)); panel.add(centerPanel); ! return panel; } ! ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { *************** public class ScrollBarDemo *** 140,146 **** } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 140,146 ---- } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.SwingUtilities; *** 37,43 **** public class SliderDemo extends JPanel ! implements ActionListener { JSlider hslider1; --- 37,43 ---- public class SliderDemo extends JPanel ! implements ActionListener { JSlider hslider1; *************** public class SliderDemo *** 48,54 **** JSlider hslider6; JSlider hslider7; JSlider hslider8; ! JSlider vslider1; JSlider vslider2; JSlider vslider3; --- 48,54 ---- JSlider hslider6; JSlider hslider7; JSlider hslider8; ! JSlider vslider1; JSlider vslider2; JSlider vslider3; *************** public class SliderDemo *** 59,73 **** JSlider vslider8; JCheckBox enabledCheckBox; ! ! public SliderDemo() { createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. --- 59,73 ---- JSlider vslider8; JCheckBox enabledCheckBox; ! ! public SliderDemo() { createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. *************** public class SliderDemo *** 81,95 **** closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(1, 2)); --- 81,95 ---- closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(1, 2)); *************** public class SliderDemo *** 106,119 **** panel2.add(checkBoxPanel, BorderLayout.SOUTH); add(panel2); } ! ! private JPanel createHorizontalPanel() { JPanel panel = new JPanel(new GridLayout(8, 1)); ! hslider1 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); panel.add(hslider1); ! hslider2 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); hslider2.setMajorTickSpacing(20); hslider2.setMinorTickSpacing(5); --- 106,119 ---- panel2.add(checkBoxPanel, BorderLayout.SOUTH); add(panel2); } ! ! private JPanel createHorizontalPanel() { JPanel panel = new JPanel(new GridLayout(8, 1)); ! hslider1 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); panel.add(hslider1); ! hslider2 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); hslider2.setMajorTickSpacing(20); hslider2.setMinorTickSpacing(5); *************** public class SliderDemo *** 138,144 **** hslider5 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); hslider5.setInverted(true); panel.add(hslider5); ! hslider6 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); hslider6.setInverted(true); hslider6.setMajorTickSpacing(20); --- 138,144 ---- hslider5 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); hslider5.setInverted(true); panel.add(hslider5); ! hslider6 = new JSlider(JSlider.HORIZONTAL, 0, 100, 35); hslider6.setInverted(true); hslider6.setMajorTickSpacing(20); *************** public class SliderDemo *** 165,178 **** return panel; } ! ! private JPanel createVerticalPanel() { JPanel panel = new JPanel(new GridLayout(1, 8)); ! vslider1 = new JSlider(JSlider.VERTICAL, 0, 100, 35); panel.add(vslider1); ! vslider2 = new JSlider(JSlider.VERTICAL, 0, 100, 35); vslider2.setMajorTickSpacing(20); vslider2.setMinorTickSpacing(5); --- 165,178 ---- return panel; } ! ! private JPanel createVerticalPanel() { JPanel panel = new JPanel(new GridLayout(1, 8)); ! vslider1 = new JSlider(JSlider.VERTICAL, 0, 100, 35); panel.add(vslider1); ! vslider2 = new JSlider(JSlider.VERTICAL, 0, 100, 35); vslider2.setMajorTickSpacing(20); vslider2.setMinorTickSpacing(5); *************** public class SliderDemo *** 197,203 **** vslider5 = new JSlider(JSlider.VERTICAL, 0, 100, 35); vslider5.setInverted(true); panel.add(vslider5); ! vslider6 = new JSlider(JSlider.VERTICAL, 0, 100, 35); vslider6.setInverted(true); vslider6.setMajorTickSpacing(20); --- 197,203 ---- vslider5 = new JSlider(JSlider.VERTICAL, 0, 100, 35); vslider5.setInverted(true); panel.add(vslider5); ! vslider6 = new JSlider(JSlider.VERTICAL, 0, 100, 35); vslider6.setInverted(true); vslider6.setMajorTickSpacing(20); *************** public class SliderDemo *** 223,230 **** panel.add(vslider8); return panel; } ! ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { --- 223,230 ---- panel.add(vslider8); return panel; } ! ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { *************** public class SliderDemo *** 251,257 **** vslider8.setEnabled(enabled); } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 251,257 ---- vslider8.setEnabled(enabled); } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.SwingUtilities; *** 45,83 **** /** * A simple demo showing various spinners in different states. */ ! public class SpinnerDemo ! extends JPanel ! implements ActionListener { ! private JCheckBox spinnerState1; private JSpinner spinner1; private JSpinner spinner2; ! private JCheckBox spinnerState2; private JSpinner spinner3; private JSpinner spinner4; ! ! private JCheckBox spinnerState3; private JSpinner spinner5; private JSpinner spinner6; ! /** * Creates a new demo instance. */ ! public SpinnerDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. */ ! void initFrameContent() { JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); --- 45,83 ---- /** * A simple demo showing various spinners in different states. */ ! public class SpinnerDemo ! extends JPanel ! implements ActionListener { ! private JCheckBox spinnerState1; private JSpinner spinner1; private JSpinner spinner2; ! private JCheckBox spinnerState2; private JSpinner spinner3; private JSpinner spinner4; ! ! private JCheckBox spinnerState3; private JSpinner spinner5; private JSpinner spinner6; ! /** * Creates a new demo instance. */ ! public SpinnerDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. */ ! void initFrameContent() { JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); *************** public class SpinnerDemo *** 86,100 **** closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(3, 1)); --- 86,100 ---- closePanel.add(closeButton); add(closePanel, BorderLayout.SOUTH); } ! /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(3, 1)); *************** public class SpinnerDemo *** 103,117 **** panel.add(createPanel3()); add(panel); } ! ! private JPanel createPanel1() { JPanel panel = new JPanel(new BorderLayout()); this.spinnerState1 = new JCheckBox("Enabled", true); this.spinnerState1.setActionCommand("COMBO_STATE1"); this.spinnerState1.addActionListener(this); panel.add(this.spinnerState1, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder( "Number Spinner: ")); --- 103,117 ---- panel.add(createPanel3()); add(panel); } ! ! private JPanel createPanel1() { JPanel panel = new JPanel(new BorderLayout()); this.spinnerState1 = new JCheckBox("Enabled", true); this.spinnerState1.setActionCommand("COMBO_STATE1"); this.spinnerState1.addActionListener(this); panel.add(this.spinnerState1, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder( "Number Spinner: ")); *************** public class SpinnerDemo *** 120,195 **** this.spinner2.setFont(new Font("Dialog", Font.PLAIN, 20)); controlPanel.add(this.spinner1); controlPanel.add(this.spinner2); ! panel.add(controlPanel); ! return panel; } ! ! private JPanel createPanel2() { JPanel panel = new JPanel(new BorderLayout()); this.spinnerState2 = new JCheckBox("Enabled", true); this.spinnerState2.setActionCommand("COMBO_STATE2"); this.spinnerState2.addActionListener(this); panel.add(this.spinnerState2, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Date Spinner: ")); ! this.spinner3 = new JSpinner(new SpinnerDateModel(new Date(), null, null, Calendar.DATE)); ! ! this.spinner4 = new JSpinner(new SpinnerDateModel(new Date(), null, null, Calendar.YEAR)); this.spinner4.setFont(new Font("Dialog", Font.PLAIN, 20)); ! controlPanel.add(this.spinner3); controlPanel.add(this.spinner4); ! panel.add(controlPanel); ! return panel; } ! private JPanel createPanel3() { JPanel panel = new JPanel(new BorderLayout()); this.spinnerState3 = new JCheckBox("Enabled", true); this.spinnerState3.setActionCommand("COMBO_STATE3"); this.spinnerState3.addActionListener(this); panel.add(this.spinnerState3, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("List Spinner: ")); ! this.spinner5 = new JSpinner(new SpinnerListModel(new Object[] {"Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"})); ! ! this.spinner6 = new JSpinner(new SpinnerListModel(new Object[] {"Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"})); this.spinner6.setValue("Yellow"); this.spinner6.setFont(new Font("Dialog", Font.PLAIN, 20)); ! controlPanel.add(this.spinner5); controlPanel.add(this.spinner6); ! panel.add(controlPanel); ! return panel; } ! ! public void actionPerformed(ActionEvent e) { ! if (e.getActionCommand().equals("COMBO_STATE1")) { spinner1.setEnabled(spinnerState1.isSelected()); spinner2.setEnabled(spinnerState1.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE2")) { spinner3.setEnabled(spinnerState2.isSelected()); spinner4.setEnabled(spinnerState2.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE3")) { spinner5.setEnabled(spinnerState3.isSelected()); spinner6.setEnabled(spinnerState3.isSelected()); --- 120,195 ---- this.spinner2.setFont(new Font("Dialog", Font.PLAIN, 20)); controlPanel.add(this.spinner1); controlPanel.add(this.spinner2); ! panel.add(controlPanel); ! return panel; } ! ! private JPanel createPanel2() { JPanel panel = new JPanel(new BorderLayout()); this.spinnerState2 = new JCheckBox("Enabled", true); this.spinnerState2.setActionCommand("COMBO_STATE2"); this.spinnerState2.addActionListener(this); panel.add(this.spinnerState2, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("Date Spinner: ")); ! this.spinner3 = new JSpinner(new SpinnerDateModel(new Date(), null, null, Calendar.DATE)); ! ! this.spinner4 = new JSpinner(new SpinnerDateModel(new Date(), null, null, Calendar.YEAR)); this.spinner4.setFont(new Font("Dialog", Font.PLAIN, 20)); ! controlPanel.add(this.spinner3); controlPanel.add(this.spinner4); ! panel.add(controlPanel); ! return panel; } ! private JPanel createPanel3() { JPanel panel = new JPanel(new BorderLayout()); this.spinnerState3 = new JCheckBox("Enabled", true); this.spinnerState3.setActionCommand("COMBO_STATE3"); this.spinnerState3.addActionListener(this); panel.add(this.spinnerState3, BorderLayout.EAST); ! JPanel controlPanel = new JPanel(); controlPanel.setBorder(BorderFactory.createTitledBorder("List Spinner: ")); ! this.spinner5 = new JSpinner(new SpinnerListModel(new Object[] {"Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"})); ! ! this.spinner6 = new JSpinner(new SpinnerListModel(new Object[] {"Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"})); this.spinner6.setValue("Yellow"); this.spinner6.setFont(new Font("Dialog", Font.PLAIN, 20)); ! controlPanel.add(this.spinner5); controlPanel.add(this.spinner6); ! panel.add(controlPanel); ! return panel; } ! ! public void actionPerformed(ActionEvent e) { ! if (e.getActionCommand().equals("COMBO_STATE1")) { spinner1.setEnabled(spinnerState1.isSelected()); spinner2.setEnabled(spinnerState1.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE2")) { spinner3.setEnabled(spinnerState2.isSelected()); spinner4.setEnabled(spinnerState2.isSelected()); } ! else if (e.getActionCommand().equals("COMBO_STATE3")) { spinner5.setEnabled(spinnerState3.isSelected()); spinner6.setEnabled(spinnerState3.isSelected()); *************** public class SpinnerDemo *** 200,206 **** } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 200,206 ---- } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java Tue Jan 11 19:46:05 2011 *************** public class TabbedPaneDemo *** 78,103 **** { JPanel p = new JPanel(); p.setLayout(new GridLayout(1, 1)); ! int COUNT = 25; JTabbedPane tp = createTabbedPane(SwingConstants.TOP, "tab", COUNT); p.add(tp); ! final JPopupMenu popup = new JPopupMenu(); JMenu menu = new JMenu("tab placement"); menu.add(createPlacementChangingMenuItem("top", SwingConstants.TOP, tp)); ! menu.add(createPlacementChangingMenuItem("bottom", SwingConstants.BOTTOM, tp)); ! menu.add(createPlacementChangingMenuItem("left", SwingConstants.LEFT, tp)); ! menu.add(createPlacementChangingMenuItem("right", SwingConstants.RIGHT, tp)); --- 78,103 ---- { JPanel p = new JPanel(); p.setLayout(new GridLayout(1, 1)); ! int COUNT = 25; JTabbedPane tp = createTabbedPane(SwingConstants.TOP, "tab", COUNT); p.add(tp); ! final JPopupMenu popup = new JPopupMenu(); JMenu menu = new JMenu("tab placement"); menu.add(createPlacementChangingMenuItem("top", SwingConstants.TOP, tp)); ! menu.add(createPlacementChangingMenuItem("bottom", SwingConstants.BOTTOM, tp)); ! menu.add(createPlacementChangingMenuItem("left", SwingConstants.LEFT, tp)); ! menu.add(createPlacementChangingMenuItem("right", SwingConstants.RIGHT, tp)); *************** public class TabbedPaneDemo *** 107,146 **** menu.add(createLayoutPolicyChangingMenuItem("wrapping tabs", JTabbedPane.WRAP_TAB_LAYOUT, tp)); ! menu.add(createLayoutPolicyChangingMenuItem("scrolling tabs", JTabbedPane.SCROLL_TAB_LAYOUT, tp)); popup.add(menu); ! tp.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { showPopup(e); } ! public void mouseReleased(MouseEvent e) { showPopup(e); } ! void showPopup(MouseEvent e) { if (e.isPopupTrigger()) { popup.show(e.getComponent(), e.getX(), e.getY()); } } }); ! setLayout(new BorderLayout()); add(p, BorderLayout.CENTER); ! } ! private JMenuItem createPlacementChangingMenuItem(String t, final int v, final JTabbedPane dst) { JMenuItem item = new JMenuItem(t); ! item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) --- 107,146 ---- menu.add(createLayoutPolicyChangingMenuItem("wrapping tabs", JTabbedPane.WRAP_TAB_LAYOUT, tp)); ! menu.add(createLayoutPolicyChangingMenuItem("scrolling tabs", JTabbedPane.SCROLL_TAB_LAYOUT, tp)); popup.add(menu); ! tp.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { showPopup(e); } ! public void mouseReleased(MouseEvent e) { showPopup(e); } ! void showPopup(MouseEvent e) { if (e.isPopupTrigger()) { popup.show(e.getComponent(), e.getX(), e.getY()); } } }); ! setLayout(new BorderLayout()); add(p, BorderLayout.CENTER); ! } ! private JMenuItem createPlacementChangingMenuItem(String t, final int v, final JTabbedPane dst) { JMenuItem item = new JMenuItem(t); ! item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) *************** public class TabbedPaneDemo *** 148,163 **** dst.setTabPlacement(v); } }); ! return item; } ! private JMenuItem createLayoutPolicyChangingMenuItem(String t, final int v, final JTabbedPane dst) { JMenuItem item = new JMenuItem(t); ! item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) --- 148,163 ---- dst.setTabPlacement(v); } }); ! return item; } ! private JMenuItem createLayoutPolicyChangingMenuItem(String t, final int v, final JTabbedPane dst) { JMenuItem item = new JMenuItem(t); ! item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) *************** public class TabbedPaneDemo *** 165,188 **** dst.setTabLayoutPolicy(v); } }); ! return item; } ! private JTabbedPane createTabbedPane(int direction, String name, int count) { JTabbedPane pane = new JTabbedPane(direction); ! for(int i = 0; i< count; i++) { pane.addTab(name + " " + i, createTabContent(name + " " + i)); if (Math.random() >= 0.75) pane.setEnabledAt(i, false); } ! return pane; } ! private JPanel createTabContent(String name) { JTextArea ta; --- 165,188 ---- dst.setTabLayoutPolicy(v); } }); ! return item; } ! private JTabbedPane createTabbedPane(int direction, String name, int count) { JTabbedPane pane = new JTabbedPane(direction); ! for(int i = 0; i< count; i++) { pane.addTab(name + " " + i, createTabContent(name + " " + i)); if (Math.random() >= 0.75) pane.setEnabledAt(i, false); } ! return pane; } ! private JPanel createTabContent(String name) { JTextArea ta; *************** public class TabbedPaneDemo *** 190,202 **** panel.add(new JLabel(name)); panel.add(new JButton(name)); panel.add(new JScrollPane(ta = new JTextArea(5, 5))); ! ta.setBackground(colors[(int) (Math.random() * colors.length)]); ! return panel; } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { --- 190,202 ---- panel.add(new JLabel(name)); panel.add(new JButton(name)); panel.add(new JScrollPane(ta = new JTextArea(5, 5))); ! ta.setBackground(colors[(int) (Math.random() * colors.length)]); ! return panel; } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { *************** public class TabbedPaneDemo *** 206,212 **** /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. --- 206,212 ---- /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.table.TableColumnMode *** 65,92 **** /** * Displays the editable table. The first column consists of check boxes. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public class TableDemo extends JPanel ! { /** * The initial row count for this table. ! */ static int rows = 32; ! /** * The initial column count for this table. ! */ static int cols = 7; ! ! /** * The table model. */ class TModel extends DefaultTableModel { ! /** * All cells are editable in our table. */ --- 65,92 ---- /** * Displays the editable table. The first column consists of check boxes. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public class TableDemo extends JPanel ! { /** * The initial row count for this table. ! */ static int rows = 32; ! /** * The initial column count for this table. ! */ static int cols = 7; ! ! /** * The table model. */ class TModel extends DefaultTableModel { ! /** * All cells are editable in our table. */ *************** public class TableDemo extends JPanel *** 94,100 **** { return true; } ! /** * Get the number of the table rows. */ --- 94,100 ---- { return true; } ! /** * Get the number of the table rows. */ *************** public class TableDemo extends JPanel *** 110,116 **** { return cols; } ! /** * Set the value at the given position */ --- 110,116 ---- { return cols; } ! /** * Set the value at the given position */ *************** public class TableDemo extends JPanel *** 118,124 **** { values[aRow][aColumn] = aValue; } ! /** * Get the value at the given position. */ --- 118,124 ---- { values[aRow][aColumn] = aValue; } ! /** * Get the value at the given position. */ *************** public class TableDemo extends JPanel *** 126,132 **** { return values[aRow][aColumn]; } ! /** * The column name, as suggested by model. This header should not be * visible, as it is overridden by setting the header name with --- 126,132 ---- { return values[aRow][aColumn]; } ! /** * The column name, as suggested by model. This header should not be * visible, as it is overridden by setting the header name with *************** public class TableDemo extends JPanel *** 136,144 **** { return "Error "+column; } ! /** ! * The first column contains booleans, the second - icons, * others - default class. */ public Class getColumnClass(int column) --- 136,144 ---- { return "Error "+column; } ! /** ! * The first column contains booleans, the second - icons, * others - default class. */ public Class getColumnClass(int column) *************** public class TableDemo extends JPanel *** 149,155 **** return Icon.class; else return super.getColumnClass(column); ! } } /** --- 149,155 ---- return Icon.class; else return super.getColumnClass(column); ! } } /** *************** public class TableDemo extends JPanel *** 163,174 **** * The editor bar. */ JSlider bar; ! /** * The renderer bar. */ JSlider rendererBar; ! /** * The border around the bar, if required. */ --- 163,174 ---- * The editor bar. */ JSlider bar; ! /** * The renderer bar. */ JSlider rendererBar; ! /** * The border around the bar, if required. */ *************** public class TableDemo extends JPanel *** 179,187 **** bar = new JSlider(); bar.setOrientation(JScrollBar.HORIZONTAL); bar.setMinimum(0); ! bar.setMaximum(rows); bar.setBorder(border); ! rendererBar = new JSlider(); rendererBar.setMinimum(0); rendererBar.setMaximum(rows); --- 179,187 ---- bar = new JSlider(); bar.setOrientation(JScrollBar.HORIZONTAL); bar.setMinimum(0); ! bar.setMaximum(rows); bar.setBorder(border); ! rendererBar = new JSlider(); rendererBar.setMinimum(0); rendererBar.setMaximum(rows); *************** public class TableDemo extends JPanel *** 199,205 **** bar.setValue(((Integer) value).intValue()); return bar; } ! /** * Get the renderer. */ --- 199,205 ---- bar.setValue(((Integer) value).intValue()); return bar; } ! /** * Get the renderer. */ *************** public class TableDemo extends JPanel *** 221,233 **** return new Integer(bar.getValue()); } ! } ! /** * The table being displayed. */ JTable table = new JTable(); ! /** * The table model. */ --- 221,233 ---- return new Integer(bar.getValue()); } ! } ! /** * The table being displayed. */ JTable table = new JTable(); ! /** * The table model. */ *************** public class TableDemo extends JPanel *** 237,262 **** * The table value array. */ Object[][] values; ! /** * The icons that appear in the icon column. ! */ Icon[] icons = new Icon[] ! { MetalIconFactory.getTreeComputerIcon(), MetalIconFactory.getTreeHardDriveIcon(), MetalIconFactory.getTreeFolderIcon(), }; ! /** * The choices in the combo boxes */ String [] sides = new String[] { ! "north", "south", "east", "west" }; ! ! /** * Create the table demo with the given titel. */ --- 237,262 ---- * The table value array. */ Object[][] values; ! /** * The icons that appear in the icon column. ! */ Icon[] icons = new Icon[] ! { MetalIconFactory.getTreeComputerIcon(), MetalIconFactory.getTreeHardDriveIcon(), MetalIconFactory.getTreeFolderIcon(), }; ! /** * The choices in the combo boxes */ String [] sides = new String[] { ! "north", "south", "east", "west" }; ! ! /** * Create the table demo with the given titel. */ *************** public class TableDemo extends JPanel *** 265,271 **** super(); createContent(); } ! /** * Returns a panel with the demo content. The panel uses a BorderLayout(), and * the BorderLayout.SOUTH area is empty, to allow callers to add controls to --- 265,271 ---- super(); createContent(); } ! /** * Returns a panel with the demo content. The panel uses a BorderLayout(), and * the BorderLayout.SOUTH area is empty, to allow callers to add controls to *************** public class TableDemo extends JPanel *** 276,282 **** { setLayout(new BorderLayout()); values = new Object[rows][]; ! for (int i = 0; i < values.length; i++) { values[i] = new Object[cols]; --- 276,282 ---- { setLayout(new BorderLayout()); values = new Object[rows][]; ! for (int i = 0; i < values.length; i++) { values[i] = new Object[cols]; *************** public class TableDemo extends JPanel *** 289,332 **** values [i][2] = sides [ i % sides.length ]; values [i][4] = new Integer(i); } ! ! table.setModel(model); ! // Make the columns with gradually increasing width: DefaultTableColumnModel cm = new DefaultTableColumnModel(); table.setColumnModel(cm); ! for (int i = 0; i < cols; i++) { TableColumn column = new TableColumn(i); ! // Showing the variable width columns. int width = 100+10*i; column.setPreferredWidth(width); ! // If we do not set the header value here, the value, returned // by model, is used. column.setHeaderValue("Width +"+(20*i)); ! ! cm.addColumn(column); } ! setCustomEditors(); setInformativeHeaders(); // Create the table, place it into scroll pane and place // the pane into this frame. JScrollPane scroll = new JScrollPane(); ! // The horizontal scroll bar is never needed. scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroll.getViewport().add(table); add(scroll, BorderLayout.CENTER); ! // Increase the row height to make the icons and sliders look better. table.setRowHeight(table.getRowHeight()+2); } ! /** * Set the more informative column headers for specific columns. */ --- 289,332 ---- values [i][2] = sides [ i % sides.length ]; values [i][4] = new Integer(i); } ! ! table.setModel(model); ! // Make the columns with gradually increasing width: DefaultTableColumnModel cm = new DefaultTableColumnModel(); table.setColumnModel(cm); ! for (int i = 0; i < cols; i++) { TableColumn column = new TableColumn(i); ! // Showing the variable width columns. int width = 100+10*i; column.setPreferredWidth(width); ! // If we do not set the header value here, the value, returned // by model, is used. column.setHeaderValue("Width +"+(20*i)); ! ! cm.addColumn(column); } ! setCustomEditors(); setInformativeHeaders(); // Create the table, place it into scroll pane and place // the pane into this frame. JScrollPane scroll = new JScrollPane(); ! // The horizontal scroll bar is never needed. scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroll.getViewport().add(table); add(scroll, BorderLayout.CENTER); ! // Increase the row height to make the icons and sliders look better. table.setRowHeight(table.getRowHeight()+2); } ! /** * Set the more informative column headers for specific columns. */ *************** public class TableDemo extends JPanel *** 340,346 **** cm.getColumn(3).setHeaderValue("edit combo"); cm.getColumn(4).setHeaderValue("slider"); } ! /** * Set the custom editors for combo boxes. This method also sets one * custom renderer. --- 340,346 ---- cm.getColumn(3).setHeaderValue("edit combo"); cm.getColumn(4).setHeaderValue("slider"); } ! /** * Set the custom editors for combo boxes. This method also sets one * custom renderer. *************** public class TableDemo extends JPanel *** 348,378 **** void setCustomEditors() { TableColumnModel cm = table.getColumnModel(); ! // Set combo-box based editor for icons (note that no custom // renderer is needed for JComboBox to work with icons. JComboBox combo0 = new JComboBox(icons); cm.getColumn(1).setCellEditor(new DefaultCellEditor(combo0)); ! // Set the simple combo box editor for the third column: JComboBox combo1 = new JComboBox(sides); cm.getColumn(2).setCellEditor(new DefaultCellEditor(combo1)); ! // Set the editable combo box for the forth column: JComboBox combo2 = new JComboBox(sides); combo2.setEditable(true); cm.getColumn(3).setCellEditor(new DefaultCellEditor(combo2)); ! SliderCell scrollView = new SliderCell(); cm.getColumn(4).setCellEditor(scrollView); ! cm.getColumn(4).setCellRenderer(scrollView); table.setColumnModel(cm); } ! /** * The executable method to display the editable table. ! * * @param args * unused. */ --- 348,378 ---- void setCustomEditors() { TableColumnModel cm = table.getColumnModel(); ! // Set combo-box based editor for icons (note that no custom // renderer is needed for JComboBox to work with icons. JComboBox combo0 = new JComboBox(icons); cm.getColumn(1).setCellEditor(new DefaultCellEditor(combo0)); ! // Set the simple combo box editor for the third column: JComboBox combo1 = new JComboBox(sides); cm.getColumn(2).setCellEditor(new DefaultCellEditor(combo1)); ! // Set the editable combo box for the forth column: JComboBox combo2 = new JComboBox(sides); combo2.setEditable(true); cm.getColumn(3).setCellEditor(new DefaultCellEditor(combo2)); ! SliderCell scrollView = new SliderCell(); cm.getColumn(4).setCellEditor(scrollView); ! cm.getColumn(4).setCellRenderer(scrollView); table.setColumnModel(cm); } ! /** * The executable method to display the editable table. ! * * @param args * unused. */ *************** public class TableDemo extends JPanel *** 408,411 **** }; } } - --- 408,410 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TextAreaDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TextAreaDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TextAreaDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TextAreaDemo.java Tue Jan 11 19:46:05 2011 *************** public class TextAreaDemo *** 63,69 **** /** * A custom caret for demonstration purposes. This class is inspired by the * CornerCaret from the OReilly Swing book. ! * * @author Roman Kennke (kennke@aicas.com) */ static class CornerCaret --- 63,69 ---- /** * A custom caret for demonstration purposes. This class is inspired by the * CornerCaret from the OReilly Swing book. ! * * @author Roman Kennke (kennke@aicas.com) */ static class CornerCaret *************** public class TextAreaDemo *** 491,497 **** return DemoHighlightPainter.INSTANCE; } }); ! innerPanel.add(new JScrollPane(textarea16)); panel.add(innerPanel); --- 491,497 ---- return DemoHighlightPainter.INSTANCE; } }); ! innerPanel.add(new JScrollPane(textarea16)); panel.add(innerPanel); diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.LayeredHighlight *** 58,64 **** /** * A simple textfield demo showing various textfields in different states. */ ! public class TextFieldDemo extends JPanel implements ActionListener { --- 58,64 ---- /** * A simple textfield demo showing various textfields in different states. */ ! public class TextFieldDemo extends JPanel implements ActionListener { *************** public class TextFieldDemo *** 118,124 **** } } } ! static class DemoHighlightPainter extends LayerPainter { --- 118,124 ---- } } } ! static class DemoHighlightPainter extends LayerPainter { *************** public class TextFieldDemo *** 167,180 **** return bounds; } ! } /** * The left aligned textfields and state buttons. */ Compound compound1; ! /** * The right aligned textfields and state buttons. */ --- 167,180 ---- return bounds; } ! } /** * The left aligned textfields and state buttons. */ Compound compound1; ! /** * The right aligned textfields and state buttons. */ *************** public class TextFieldDemo *** 195,201 **** * Some miscellaneous textfield demos. */ Compound compound6; ! /** * Some textfields with custom borders. */ --- 195,201 ---- * Some miscellaneous textfield demos. */ Compound compound6; ! /** * Some textfields with custom borders. */ *************** public class TextFieldDemo *** 204,223 **** /** * Creates a new demo instance. */ ! public TextFieldDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. */ ! void initFrameContent() { JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); --- 204,223 ---- /** * Creates a new demo instance. */ ! public TextFieldDemo() { super(); createContent(); } ! /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. */ ! void initFrameContent() { JPanel closePanel = new JPanel(); JButton closeButton = new JButton("Close"); *************** public class TextFieldDemo *** 230,240 **** /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(7, 1)); --- 230,240 ---- /** * Returns a panel with the demo content. The panel * uses a BorderLayout(), and the BorderLayout.SOUTH area ! * is empty, to allow callers to add controls to the * bottom of the panel if they want to (a close button is * added if this demo is being run as a standalone demo). ! */ ! private void createContent() { setLayout(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(7, 1)); *************** public class TextFieldDemo *** 245,257 **** panel.add(createCustomColorPanel2()); panel.add(createCustomBordersPanel()); panel.add(createMiscPanel()); ! // Put everything in a scroll pane to make it neccessary // to reach the bottom inner panels if the screen is to small. add(new JScrollPane(panel)); } ! ! private JPanel createLeftAlignedPanel() { compound1 = createTextFieldCompound("Left aligned", 1); --- 245,257 ---- panel.add(createCustomColorPanel2()); panel.add(createCustomBordersPanel()); panel.add(createMiscPanel()); ! // Put everything in a scroll pane to make it neccessary // to reach the bottom inner panels if the screen is to small. add(new JScrollPane(panel)); } ! ! private JPanel createLeftAlignedPanel() { compound1 = createTextFieldCompound("Left aligned", 1); *************** public class TextFieldDemo *** 261,276 **** new Font("Dialog", Font.ITALIC, 12), new Font("Dialog", Font.BOLD, 14) }); ! return compound1.panel; } ! private Compound createTextFieldCompound(String title, int actionCommandNo) { Compound compound = new Compound(); compound.panel = new JPanel(new BorderLayout()); compound.panel.setBorder(BorderFactory.createTitledBorder(title)); ! compound.textFieldPanel = new JPanel(); compound.textFieldPanel.setLayout(new BoxLayout(compound.textFieldPanel, BoxLayout.X_AXIS)); --- 261,276 ---- new Font("Dialog", Font.ITALIC, 12), new Font("Dialog", Font.BOLD, 14) }); ! return compound1.panel; } ! private Compound createTextFieldCompound(String title, int actionCommandNo) { Compound compound = new Compound(); compound.panel = new JPanel(new BorderLayout()); compound.panel.setBorder(BorderFactory.createTitledBorder(title)); ! compound.textFieldPanel = new JPanel(); compound.textFieldPanel.setLayout(new BoxLayout(compound.textFieldPanel, BoxLayout.X_AXIS)); *************** public class TextFieldDemo *** 295,301 **** return compound; } ! private JPanel createRightAlignedPanel() { compound2 = createTextFieldCompound("Right aligned", 2); --- 295,301 ---- return compound; } ! private JPanel createRightAlignedPanel() { compound2 = createTextFieldCompound("Right aligned", 2); *************** public class TextFieldDemo *** 305,315 **** new Font("Dialog", Font.ITALIC, 12), new Font("Dialog", Font.BOLD, 14) }); ! return compound2.panel; } ! private JPanel createCenteredPanel() { compound3 = createTextFieldCompound("Centered", 3); --- 305,315 ---- new Font("Dialog", Font.ITALIC, 12), new Font("Dialog", Font.BOLD, 14) }); ! return compound2.panel; } ! private JPanel createCenteredPanel() { compound3 = createTextFieldCompound("Centered", 3); *************** public class TextFieldDemo *** 319,325 **** new Font("Dialog", Font.ITALIC, 12), new Font("Dialog", Font.BOLD, 14) }); ! return compound3.panel; } --- 319,325 ---- new Font("Dialog", Font.ITALIC, 12), new Font("Dialog", Font.BOLD, 14) }); ! return compound3.panel; } *************** public class TextFieldDemo *** 339,349 **** compound4.textfield3.setForeground(Color.RED); compound4.textfield3.setBackground(Color.YELLOW); compound4.textFieldPanel.add(compound4.textfield3); ! return compound4.panel; ! } ! private JPanel createCustomColorPanel2() { compound5 = createTextFieldCompound("Custom colors II", 5); --- 339,349 ---- compound4.textfield3.setForeground(Color.RED); compound4.textfield3.setBackground(Color.YELLOW); compound4.textFieldPanel.add(compound4.textfield3); ! return compound4.panel; ! } ! private JPanel createCustomColorPanel2() { compound5 = createTextFieldCompound("Custom colors II", 5); *************** public class TextFieldDemo *** 359,370 **** compound5.textfield3 = new JTextField("custom selection color"); compound5.textfield3.setSelectionColor(Color.BLACK); compound5.textFieldPanel.add(compound5.textfield3); ! return compound5.panel; ! } ! private JPanel createMiscPanel() { compound6 = createTextFieldCompound("Miscellaneous", 6); --- 359,370 ---- compound5.textfield3 = new JTextField("custom selection color"); compound5.textfield3.setSelectionColor(Color.BLACK); compound5.textFieldPanel.add(compound5.textfield3); ! return compound5.panel; ! } ! private JPanel createMiscPanel() { compound6 = createTextFieldCompound("Miscellaneous", 6); *************** public class TextFieldDemo *** 392,399 **** return compound6.panel; } ! ! private JPanel createCustomBordersPanel() { compound7 = createTextFieldCompound("Custom borders", 7); --- 392,399 ---- return compound6.panel; } ! ! private JPanel createCustomBordersPanel() { compound7 = createTextFieldCompound("Custom borders", 7); *************** public class TextFieldDemo *** 415,421 **** return compound7.panel; } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { --- 415,421 ---- return compound7.panel; } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { *************** public class TextFieldDemo *** 476,482 **** compound4.textfield1.setEditable(editable); compound4.textfield2.setEditable(editable); compound4.textfield3.setEditable(editable); ! } else if (e.getActionCommand().equals("ENABLED5")) { boolean enabled = compound5.enabled.isSelected(); --- 476,482 ---- compound4.textfield1.setEditable(editable); compound4.textfield2.setEditable(editable); compound4.textfield3.setEditable(editable); ! } else if (e.getActionCommand().equals("ENABLED5")) { boolean enabled = compound5.enabled.isSelected(); *************** public class TextFieldDemo *** 521,527 **** } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() --- 521,527 ---- } } ! public static void main(String[] args) { SwingUtilities.invokeLater (new Runnable() *************** public class TextFieldDemo *** 557,572 **** static class Compound { JTextField textfield1; ! JTextField textfield2; JTextField textfield3; JCheckBox enabled; JCheckBox editable; JPanel textFieldPanel; JPanel panel; ! /** Creates and initializes the textfields with the same text and * alignment but with a different font. ! * * @param title The text for the textfields. * @param align The alignment for the textfields. * @param fonts The fonts to be used for the textfields. --- 557,572 ---- static class Compound { JTextField textfield1; ! JTextField textfield2; JTextField textfield3; JCheckBox enabled; JCheckBox editable; JPanel textFieldPanel; JPanel panel; ! /** Creates and initializes the textfields with the same text and * alignment but with a different font. ! * * @param title The text for the textfields. * @param align The alignment for the textfields. * @param fonts The fonts to be used for the textfields. *************** public class TextFieldDemo *** 582,594 **** textfield2.setHorizontalAlignment(align); textfield2.setFont(fonts[1]); textFieldPanel.add(textfield2); ! textfield3 = new JTextField(title); textfield3.setHorizontalAlignment(align); textfield3.setFont(fonts[2]); textFieldPanel.add(textfield3); } ! } ! } --- 582,594 ---- textfield2.setHorizontalAlignment(align); textfield2.setFont(fonts[1]); textFieldPanel.add(textfield2); ! textfield3 = new JTextField(title); textfield3.setHorizontalAlignment(align); textfield3.setFont(fonts[2]); textFieldPanel.add(textfield3); } ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java *** gcc-4.5.2/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java Tue Jan 11 19:46:05 2011 *************** public class TreeDemo *** 72,84 **** } private void createContent() ! { // non-leafs DefaultMutableTreeNode root = new DefaultMutableTreeNode("Exotic Subsistence"); DefaultMutableTreeNode fruit = new DefaultMutableTreeNode("Interesting Fruit"); DefaultMutableTreeNode veg = new DefaultMutableTreeNode("Extraordinary Vegetables"); DefaultMutableTreeNode liq = new DefaultMutableTreeNode("Peculiar Liquids"); ! // leafs DefaultMutableTreeNode f1 = new DefaultMutableTreeNode("Abiu"); DefaultMutableTreeNode f2 = new DefaultMutableTreeNode("Bamboo Shoots"); --- 72,84 ---- } private void createContent() ! { // non-leafs DefaultMutableTreeNode root = new DefaultMutableTreeNode("Exotic Subsistence"); DefaultMutableTreeNode fruit = new DefaultMutableTreeNode("Interesting Fruit"); DefaultMutableTreeNode veg = new DefaultMutableTreeNode("Extraordinary Vegetables"); DefaultMutableTreeNode liq = new DefaultMutableTreeNode("Peculiar Liquids"); ! // leafs DefaultMutableTreeNode f1 = new DefaultMutableTreeNode("Abiu"); DefaultMutableTreeNode f2 = new DefaultMutableTreeNode("Bamboo Shoots"); *************** public class TreeDemo *** 88,94 **** DefaultMutableTreeNode f6 = new DefaultMutableTreeNode("Guava"); DefaultMutableTreeNode f7 = new DefaultMutableTreeNode("Jakfruit"); DefaultMutableTreeNode f8 = new DefaultMutableTreeNode("Quaribea"); ! DefaultMutableTreeNode v1 = new DefaultMutableTreeNode("Amaranth"); DefaultMutableTreeNode v2 = new DefaultMutableTreeNode("Kiwano"); DefaultMutableTreeNode v3 = new DefaultMutableTreeNode("Leeks"); --- 88,94 ---- DefaultMutableTreeNode f6 = new DefaultMutableTreeNode("Guava"); DefaultMutableTreeNode f7 = new DefaultMutableTreeNode("Jakfruit"); DefaultMutableTreeNode f8 = new DefaultMutableTreeNode("Quaribea"); ! DefaultMutableTreeNode v1 = new DefaultMutableTreeNode("Amaranth"); DefaultMutableTreeNode v2 = new DefaultMutableTreeNode("Kiwano"); DefaultMutableTreeNode v3 = new DefaultMutableTreeNode("Leeks"); *************** public class TreeDemo *** 96,102 **** DefaultMutableTreeNode v5 = new DefaultMutableTreeNode("Chayote"); DefaultMutableTreeNode v6 = new DefaultMutableTreeNode("Jicama"); DefaultMutableTreeNode v7 = new DefaultMutableTreeNode("Okra"); ! DefaultMutableTreeNode l1 = new DefaultMutableTreeNode("Alcoholic"); DefaultMutableTreeNode l11 = new DefaultMutableTreeNode("Caipirinha"); DefaultMutableTreeNode l21 = new DefaultMutableTreeNode("Mojito"); --- 96,102 ---- DefaultMutableTreeNode v5 = new DefaultMutableTreeNode("Chayote"); DefaultMutableTreeNode v6 = new DefaultMutableTreeNode("Jicama"); DefaultMutableTreeNode v7 = new DefaultMutableTreeNode("Okra"); ! DefaultMutableTreeNode l1 = new DefaultMutableTreeNode("Alcoholic"); DefaultMutableTreeNode l11 = new DefaultMutableTreeNode("Caipirinha"); DefaultMutableTreeNode l21 = new DefaultMutableTreeNode("Mojito"); *************** public class TreeDemo *** 105,111 **** DefaultMutableTreeNode l5 = new DefaultMutableTreeNode("Non Alcoholic"); DefaultMutableTreeNode l55 = new DefaultMutableTreeNode("Babaji"); DefaultMutableTreeNode l65 = new DefaultMutableTreeNode("Chikita"); ! root.add(fruit); root.add(veg); root.add(liq); --- 105,111 ---- DefaultMutableTreeNode l5 = new DefaultMutableTreeNode("Non Alcoholic"); DefaultMutableTreeNode l55 = new DefaultMutableTreeNode("Babaji"); DefaultMutableTreeNode l65 = new DefaultMutableTreeNode("Chikita"); ! root.add(fruit); root.add(veg); root.add(liq); *************** public class TreeDemo *** 140,146 **** selModel.setSelectionMode( DefaultTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); tree.setSelectionModel(selModel); ! // buttons to add and delete JButton add = new JButton("add element"); add.addActionListener(new ActionListener() --- 140,146 ---- selModel.setSelectionMode( DefaultTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); tree.setSelectionModel(selModel); ! // buttons to add and delete JButton add = new JButton("add element"); add.addActionListener(new ActionListener() *************** public class TreeDemo *** 155,176 **** DefaultMutableTreeNode n = (DefaultMutableTreeNode) p. getLastPathComponent(); n.add(new DefaultMutableTreeNode("New Element")); ! // The expansion state of the parent node does not change // by default. We will expand it manually, to ensure that the // added node is immediately visible. tree.expandPath(p); ! // Refresh the tree (.repaint would be not enough both in // Classpath and Sun implementations). ! DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); model.reload(n); break; } } } }); ! // Demonstration of the various selection modes final JCheckBox cbSingle = new JCheckBox("single selection"); cbSingle.addActionListener(new ActionListener() --- 155,176 ---- DefaultMutableTreeNode n = (DefaultMutableTreeNode) p. getLastPathComponent(); n.add(new DefaultMutableTreeNode("New Element")); ! // The expansion state of the parent node does not change // by default. We will expand it manually, to ensure that the // added node is immediately visible. tree.expandPath(p); ! // Refresh the tree (.repaint would be not enough both in // Classpath and Sun implementations). ! DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); model.reload(n); break; } } } }); ! // Demonstration of the various selection modes final JCheckBox cbSingle = new JCheckBox("single selection"); cbSingle.addActionListener(new ActionListener() *************** public class TreeDemo *** 185,191 **** DefaultTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); } }); ! // Demonstration of the root visibility changes final JCheckBox cbRoot = new JCheckBox("root"); cbRoot.addActionListener(new ActionListener() --- 185,191 ---- DefaultTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); } }); ! // Demonstration of the root visibility changes final JCheckBox cbRoot = new JCheckBox("root"); cbRoot.addActionListener(new ActionListener() *************** public class TreeDemo *** 196,202 **** } }); cbRoot.setSelected(true); ! // Demonstration of the tree selection listener. final JLabel choice = new JLabel("Make a choice"); tree.getSelectionModel().addTreeSelectionListener( --- 196,202 ---- } }); cbRoot.setSelected(true); ! // Demonstration of the tree selection listener. final JLabel choice = new JLabel("Make a choice"); tree.getSelectionModel().addTreeSelectionListener( *************** public class TreeDemo *** 206,223 **** { TreePath was = event.getOldLeadSelectionPath(); TreePath now = event.getNewLeadSelectionPath(); ! String swas = was == null ? "none":was.getLastPathComponent().toString(); ! String snow = now == null ? "none":now.getLastPathComponent().toString(); choice.setText("From "+swas+" to "+snow); } } ); ! setLayout(new BorderLayout()); ! ! JPanel p2 = new JPanel(); p2.add(add); p2.add(cbSingle); p2.add(cbRoot); --- 206,223 ---- { TreePath was = event.getOldLeadSelectionPath(); TreePath now = event.getNewLeadSelectionPath(); ! String swas = was == null ? "none":was.getLastPathComponent().toString(); ! String snow = now == null ? "none":now.getLastPathComponent().toString(); choice.setText("From "+swas+" to "+snow); } } ); ! setLayout(new BorderLayout()); ! ! JPanel p2 = new JPanel(); p2.add(add); p2.add(cbSingle); p2.add(cbRoot); *************** public class TreeDemo *** 258,264 **** add(choice, BorderLayout.SOUTH); } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { --- 258,264 ---- add(choice, BorderLayout.SOUTH); } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("CLOSE")) { *************** public class TreeDemo *** 268,274 **** /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. --- 268,274 ---- /** * When the demo is run independently, the frame is displayed, so we should ! * initialise the content panel (including the demo content and a close * button). But when the demo is run as part of the Swing activity board, * only the demo content panel is used, the frame itself is never displayed, * so we can avoid this step. diff -Nrcpad gcc-4.5.2/libjava/classpath/external/Makefile.in gcc-4.6.0/libjava/classpath/external/Makefile.in *** gcc-4.5.2/libjava/classpath/external/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/external/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = README $(srcdir)/Makefile. *** 39,44 **** --- 39,47 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 57,65 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 60,66 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/Makefile.in gcc-4.6.0/libjava/classpath/external/jsr166/Makefile.in *** gcc-4.5.2/libjava/classpath/external/jsr166/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/external/jsr166/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr *** 39,44 **** --- 39,47 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 57,65 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 60,66 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/ArrayDeque.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/ArrayDeque.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/ArrayDeque.java Mon Aug 14 17:15:54 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/ArrayDeque.java Tue Jan 11 19:46:05 2011 *************** public class ArrayDeque extends Abstr *** 479,489 **** } private void checkInvariants() { ! assert elements[tail] == null; ! assert head == tail ? elements[head] == null : ! (elements[head] != null && ! elements[(tail - 1) & (elements.length - 1)] != null); ! assert elements[(head - 1) & (elements.length - 1)] == null; } /** --- 479,489 ---- } private void checkInvariants() { ! assert elements[tail] == null; ! assert head == tail ? elements[head] == null : ! (elements[head] != null && ! elements[(tail - 1) & (elements.length - 1)] != null); ! assert elements[(head - 1) & (elements.length - 1)] == null; } /** *************** public class ArrayDeque extends Abstr *** 497,538 **** * @return true if elements moved backwards */ private boolean delete(int i) { ! checkInvariants(); ! final E[] elements = this.elements; ! final int mask = elements.length - 1; ! final int h = head; ! final int t = tail; ! final int front = (i - h) & mask; ! final int back = (t - i) & mask; ! // Invariant: head <= i < tail mod circularity ! if (front >= ((t - h) & mask)) ! throw new ConcurrentModificationException(); ! // Optimize for least element motion ! if (front < back) { ! if (h <= i) { ! System.arraycopy(elements, h, elements, h + 1, front); ! } else { // Wrap around ! System.arraycopy(elements, 0, elements, 1, i); ! elements[0] = elements[mask]; ! System.arraycopy(elements, h, elements, h + 1, mask - h); ! } ! elements[h] = null; ! head = (h + 1) & mask; ! return false; ! } else { ! if (i < t) { // Copy the null tail as well ! System.arraycopy(elements, i + 1, elements, i, back); ! tail = t - 1; ! } else { // Wrap around ! System.arraycopy(elements, i + 1, elements, i, mask - i); ! elements[mask] = elements[0]; ! System.arraycopy(elements, 1, elements, 0, t); ! tail = (t - 1) & mask; ! } ! return true; ! } } // *** Collection Methods *** --- 497,538 ---- * @return true if elements moved backwards */ private boolean delete(int i) { ! checkInvariants(); ! final E[] elements = this.elements; ! final int mask = elements.length - 1; ! final int h = head; ! final int t = tail; ! final int front = (i - h) & mask; ! final int back = (t - i) & mask; ! // Invariant: head <= i < tail mod circularity ! if (front >= ((t - h) & mask)) ! throw new ConcurrentModificationException(); ! // Optimize for least element motion ! if (front < back) { ! if (h <= i) { ! System.arraycopy(elements, h, elements, h + 1, front); ! } else { // Wrap around ! System.arraycopy(elements, 0, elements, 1, i); ! elements[0] = elements[mask]; ! System.arraycopy(elements, h, elements, h + 1, mask - h); ! } ! elements[h] = null; ! head = (h + 1) & mask; ! return false; ! } else { ! if (i < t) { // Copy the null tail as well ! System.arraycopy(elements, i + 1, elements, i, back); ! tail = t - 1; ! } else { // Wrap around ! System.arraycopy(elements, i + 1, elements, i, mask - i); ! elements[mask] = elements[0]; ! System.arraycopy(elements, 1, elements, 0, t); ! tail = (t - 1) & mask; ! } ! return true; ! } } // *** Collection Methods *** *************** public class ArrayDeque extends Abstr *** 611,618 **** throw new IllegalStateException(); if (delete(lastRet)) { // if left-shifted, undo increment in next() cursor = (cursor - 1) & (elements.length - 1); ! fence = tail; ! } lastRet = -1; } } --- 611,618 ---- throw new IllegalStateException(); if (delete(lastRet)) { // if left-shifted, undo increment in next() cursor = (cursor - 1) & (elements.length - 1); ! fence = tail; ! } lastRet = -1; } } *************** public class ArrayDeque extends Abstr *** 635,641 **** if (cursor == fence) throw new NoSuchElementException(); cursor = (cursor - 1) & (elements.length - 1); ! E result = elements[cursor]; if (head != fence || result == null) throw new ConcurrentModificationException(); lastRet = cursor; --- 635,641 ---- if (cursor == fence) throw new NoSuchElementException(); cursor = (cursor - 1) & (elements.length - 1); ! E result = elements[cursor]; if (head != fence || result == null) throw new ConcurrentModificationException(); lastRet = cursor; *************** public class ArrayDeque extends Abstr *** 647,654 **** throw new IllegalStateException(); if (!delete(lastRet)) { cursor = (cursor + 1) & (elements.length - 1); ! fence = head; ! } lastRet = -1; } } --- 647,654 ---- throw new IllegalStateException(); if (!delete(lastRet)) { cursor = (cursor + 1) & (elements.length - 1); ! fence = head; ! } lastRet = -1; } } *************** public class ArrayDeque extends Abstr *** 724,730 **** * @return an array containing all of the elements in this deque */ public Object[] toArray() { ! return copyElements(new Object[size()]); } /** --- 724,730 ---- * @return an array containing all of the elements in this deque */ public Object[] toArray() { ! return copyElements(new Object[size()]); } /** *************** public class ArrayDeque extends Abstr *** 769,775 **** if (a.length < size) a = (T[])java.lang.reflect.Array.newInstance( a.getClass().getComponentType(), size); ! copyElements(a); if (a.length > size) a[size] = null; return a; --- 769,775 ---- if (a.length < size) a = (T[])java.lang.reflect.Array.newInstance( a.getClass().getComponentType(), size); ! copyElements(a); if (a.length > size) a[size] = null; return a; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java Tue Jan 11 19:46:05 2011 *************** public class ArrayBlockingQueue exten *** 205,211 **** * @throws NullPointerException if the specified element is null */ public boolean add(E e) { ! return super.add(e); } /** --- 205,211 ---- * @throws NullPointerException if the specified element is null */ public boolean add(E e) { ! return super.add(e); } /** *************** public class ArrayBlockingQueue exten *** 271,277 **** throws InterruptedException { if (e == null) throw new NullPointerException(); ! long nanos = unit.toNanos(timeout); final ReentrantLock lock = this.lock; lock.lockInterruptibly(); try { --- 271,277 ---- throws InterruptedException { if (e == null) throw new NullPointerException(); ! long nanos = unit.toNanos(timeout); final ReentrantLock lock = this.lock; lock.lockInterruptibly(); try { *************** public class ArrayBlockingQueue exten *** 326,332 **** } public E poll(long timeout, TimeUnit unit) throws InterruptedException { ! long nanos = unit.toNanos(timeout); final ReentrantLock lock = this.lock; lock.lockInterruptibly(); try { --- 326,332 ---- } public E poll(long timeout, TimeUnit unit) throws InterruptedException { ! long nanos = unit.toNanos(timeout); final ReentrantLock lock = this.lock; lock.lockInterruptibly(); try { diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java Tue Jan 11 19:46:05 2011 *************** public class ConcurrentHashMap ext *** 196,205 **** this.value = value; } ! @SuppressWarnings("unchecked") ! static final HashEntry[] newArray(int i) { ! return new HashEntry[i]; ! } } /** --- 196,205 ---- this.value = value; } ! @SuppressWarnings("unchecked") ! static final HashEntry[] newArray(int i) { ! return new HashEntry[i]; ! } } /** *************** public class ConcurrentHashMap ext *** 287,295 **** setTable(HashEntry.newArray(initialCapacity)); } ! @SuppressWarnings("unchecked") static final Segment[] newArray(int i) { ! return new Segment[i]; } /** --- 287,295 ---- setTable(HashEntry.newArray(initialCapacity)); } ! @SuppressWarnings("unchecked") static final Segment[] newArray(int i) { ! return new Segment[i]; } /** *************** public class ConcurrentHashMap ext *** 775,781 **** * @throws NullPointerException if the specified key is null */ public boolean containsKey(Object key) { ! int hash = hash(key.hashCode()); return segmentFor(hash).containsKey(key, hash); } --- 775,781 ---- * @throws NullPointerException if the specified key is null */ public boolean containsKey(Object key) { ! int hash = hash(key.hashCode()); return segmentFor(hash).containsKey(key, hash); } *************** public class ConcurrentHashMap ext *** 915,921 **** * @throws NullPointerException if the specified key is null */ public V remove(Object key) { ! int hash = hash(key.hashCode()); return segmentFor(hash).remove(key, hash, null); } --- 915,921 ---- * @throws NullPointerException if the specified key is null */ public V remove(Object key) { ! int hash = hash(key.hashCode()); return segmentFor(hash).remove(key, hash, null); } *************** public class ConcurrentHashMap ext *** 1107,1122 **** } final class KeyIterator ! extends HashIterator ! implements Iterator, Enumeration { public K next() { return super.nextEntry().key; } public K nextElement() { return super.nextEntry().key; } } final class ValueIterator ! extends HashIterator ! implements Iterator, Enumeration { public V next() { return super.nextEntry().value; } public V nextElement() { return super.nextEntry().value; } --- 1107,1122 ---- } final class KeyIterator ! extends HashIterator ! implements Iterator, Enumeration { public K next() { return super.nextEntry().key; } public K nextElement() { return super.nextEntry().key; } } final class ValueIterator ! extends HashIterator ! implements Iterator, Enumeration { public V next() { return super.nextEntry().value; } public V nextElement() { return super.nextEntry().value; } *************** public class ConcurrentHashMap ext *** 1127,1133 **** * setValue changes to the underlying map. */ final class WriteThroughEntry ! extends AbstractMap.SimpleEntry { WriteThroughEntry(K k, V v) { super(k,v); --- 1127,1133 ---- * setValue changes to the underlying map. */ final class WriteThroughEntry ! extends AbstractMap.SimpleEntry { WriteThroughEntry(K k, V v) { super(k,v); *************** public class ConcurrentHashMap ext *** 1142,1148 **** * removed in which case the put will re-establish). We do not * and cannot guarantee more. */ ! public V setValue(V value) { if (value == null) throw new NullPointerException(); V v = super.setValue(value); ConcurrentHashMap.this.put(getKey(), value); --- 1142,1148 ---- * removed in which case the put will re-establish). We do not * and cannot guarantee more. */ ! public V setValue(V value) { if (value == null) throw new NullPointerException(); V v = super.setValue(value); ConcurrentHashMap.this.put(getKey(), value); *************** public class ConcurrentHashMap ext *** 1151,1158 **** } final class EntryIterator ! extends HashIterator ! implements Iterator> { public Map.Entry next() { HashEntry e = super.nextEntry(); --- 1151,1158 ---- } final class EntryIterator ! extends HashIterator ! implements Iterator> { public Map.Entry next() { HashEntry e = super.nextEntry(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java Tue Jan 11 19:46:05 2011 *************** public class ConcurrentSkipListMap *** 1175,1181 **** findFirst(); // retry clearIndexToFirst(); return new AbstractMap.SimpleImmutableEntry(n.key, (V)v); ! } } /** --- 1175,1181 ---- findFirst(); // retry clearIndexToFirst(); return new AbstractMap.SimpleImmutableEntry(n.key, (V)v); ! } } /** *************** public class ConcurrentSkipListMap *** 1852,1870 **** * @return true if the specified object is equal to this map */ public boolean equals(Object o) { ! if (o == this) ! return true; ! if (!(o instanceof Map)) ! return false; ! Map m = (Map) o; try { ! for (Map.Entry e : this.entrySet()) ! if (! e.getValue().equals(m.get(e.getKey()))) return false; ! for (Map.Entry e : m.entrySet()) { Object k = e.getKey(); Object v = e.getValue(); ! if (k == null || v == null || !v.equals(get(k))) return false; } return true; --- 1852,1870 ---- * @return true if the specified object is equal to this map */ public boolean equals(Object o) { ! if (o == this) ! return true; ! if (!(o instanceof Map)) ! return false; ! Map m = (Map) o; try { ! for (Map.Entry e : this.entrySet()) ! if (! e.getValue().equals(m.get(e.getKey()))) return false; ! for (Map.Entry e : m.entrySet()) { Object k = e.getKey(); Object v = e.getValue(); ! if (k == null || v == null || !v.equals(get(k))) return false; } return true; *************** public class ConcurrentSkipListMap *** 2208,2227 **** Node lastReturned; /** the next node to return from next(); */ Node next; ! /** Cache of next value field to maintain weak consistency */ ! V nextValue; /** Initializes ascending iterator for entire range. */ Iter() { for (;;) { ! next = findFirst(); if (next == null) break; Object x = next.value; if (x != null && x != next) { ! nextValue = (V) x; break; ! } } } --- 2208,2227 ---- Node lastReturned; /** the next node to return from next(); */ Node next; ! /** Cache of next value field to maintain weak consistency */ ! V nextValue; /** Initializes ascending iterator for entire range. */ Iter() { for (;;) { ! next = findFirst(); if (next == null) break; Object x = next.value; if (x != null && x != next) { ! nextValue = (V) x; break; ! } } } *************** public class ConcurrentSkipListMap *** 2234,2247 **** if ((lastReturned = next) == null) throw new NoSuchElementException(); for (;;) { ! next = next.next; if (next == null) break; Object x = next.value; if (x != null && x != next) { ! nextValue = (V) x; break; ! } } } --- 2234,2247 ---- if ((lastReturned = next) == null) throw new NoSuchElementException(); for (;;) { ! next = next.next; if (next == null) break; Object x = next.value; if (x != null && x != next) { ! nextValue = (V) x; break; ! } } } *************** public class ConcurrentSkipListMap *** 2252,2258 **** // It would not be worth all of the overhead to directly // unlink from here. Using remove is fast enough. ConcurrentSkipListMap.this.remove(l.key); ! lastReturned = null; } } --- 2252,2258 ---- // It would not be worth all of the overhead to directly // unlink from here. Using remove is fast enough. ConcurrentSkipListMap.this.remove(l.key); ! lastReturned = null; } } *************** public class ConcurrentSkipListMap *** 2305,2315 **** */ static final List toList(Collection c) { ! // Using size() here would be a pessimization. ! List list = new ArrayList(); ! for (E e : c) ! list.add(e); ! return list; } static final class KeySet extends AbstractSet implements NavigableSet { --- 2305,2315 ---- */ static final List toList(Collection c) { ! // Using size() here would be a pessimization. ! List list = new ArrayList(); ! for (E e : c) ! list.add(e); ! return list; } static final class KeySet extends AbstractSet implements NavigableSet { *************** public class ConcurrentSkipListMap *** 2355,2362 **** return false; } } ! public Object[] toArray() { return toList(this).toArray(); } ! public T[] toArray(T[] a) { return toList(this).toArray(a); } public Iterator descendingIterator() { return descendingSet().iterator(); } --- 2355,2362 ---- return false; } } ! public Object[] toArray() { return toList(this).toArray(); } ! public T[] toArray(T[] a) { return toList(this).toArray(a); } public Iterator descendingIterator() { return descendingSet().iterator(); } *************** public class ConcurrentSkipListMap *** 2411,2418 **** public void clear() { m.clear(); } ! public Object[] toArray() { return toList(this).toArray(); } ! public T[] toArray(T[] a) { return toList(this).toArray(a); } } static final class EntrySet extends AbstractSet> { --- 2411,2418 ---- public void clear() { m.clear(); } ! public Object[] toArray() { return toList(this).toArray(); } ! public T[] toArray(T[] a) { return toList(this).toArray(a); } } static final class EntrySet extends AbstractSet> { *************** public class ConcurrentSkipListMap *** 2465,2472 **** return false; } } ! public Object[] toArray() { return toList(this).toArray(); } ! public T[] toArray(T[] a) { return toList(this).toArray(a); } } /** --- 2465,2472 ---- return false; } } ! public Object[] toArray() { return toList(this).toArray(); } ! public T[] toArray(T[] a) { return toList(this).toArray(a); } } /** *************** public class ConcurrentSkipListMap *** 2820,2829 **** public Comparator comparator() { Comparator cmp = m.comparator(); ! if (isDescending) ! return Collections.reverseOrder(cmp); ! else ! return cmp; } /** --- 2820,2829 ---- public Comparator comparator() { Comparator cmp = m.comparator(); ! if (isDescending) ! return Collections.reverseOrder(cmp); ! else ! return cmp; } /** *************** public class ConcurrentSkipListMap *** 3020,3031 **** next = isDescending ? hiNode() : loNode(); if (next == null) break; ! Object x = next.value; if (x != null && x != next) { ! if (! inBounds(next.key)) next = null; ! else ! nextValue = (V) x; break; } } --- 3020,3031 ---- next = isDescending ? hiNode() : loNode(); if (next == null) break; ! Object x = next.value; if (x != null && x != next) { ! if (! inBounds(next.key)) next = null; ! else ! nextValue = (V) x; break; } } *************** public class ConcurrentSkipListMap *** 3049,3060 **** next = next.next; if (next == null) break; ! Object x = next.value; if (x != null && x != next) { if (tooHigh(next.key)) next = null; else ! nextValue = (V) x; break; } } --- 3049,3060 ---- next = next.next; if (next == null) break; ! Object x = next.value; if (x != null && x != next) { if (tooHigh(next.key)) next = null; else ! nextValue = (V) x; break; } } *************** public class ConcurrentSkipListMap *** 3065,3075 **** next = m.findNear(lastReturned.key, LT); if (next == null) break; ! Object x = next.value; if (x != null && x != next) { if (tooLow(next.key)) next = null; ! else nextValue = (V) x; break; } --- 3065,3075 ---- next = m.findNear(lastReturned.key, LT); if (next == null) break; ! Object x = next.value; if (x != null && x != next) { if (tooLow(next.key)) next = null; ! else nextValue = (V) x; break; } *************** public class ConcurrentSkipListMap *** 3081,3087 **** if (l == null) throw new IllegalStateException(); m.remove(l.key); ! lastReturned = null; } } --- 3081,3087 ---- if (l == null) throw new IllegalStateException(); m.remove(l.key); ! lastReturned = null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java Tue Jan 11 19:46:05 2011 *************** public class ConcurrentSkipListSet *** 128,139 **** */ public ConcurrentSkipListSet clone() { ConcurrentSkipListSet clone = null; ! try { ! clone = (ConcurrentSkipListSet) super.clone(); clone.setMap(new ConcurrentSkipListMap(m)); ! } catch (CloneNotSupportedException e) { ! throw new InternalError(); ! } return clone; } --- 128,139 ---- */ public ConcurrentSkipListSet clone() { ConcurrentSkipListSet clone = null; ! try { ! clone = (ConcurrentSkipListSet) super.clone(); clone.setMap(new ConcurrentSkipListMap(m)); ! } catch (CloneNotSupportedException e) { ! throw new InternalError(); ! } return clone; } *************** public class ConcurrentSkipListSet *** 157,163 **** * @return the number of elements in this set */ public int size() { ! return m.size(); } /** --- 157,163 ---- * @return the number of elements in this set */ public int size() { ! return m.size(); } /** *************** public class ConcurrentSkipListSet *** 165,171 **** * @return true if this set contains no elements */ public boolean isEmpty() { ! return m.isEmpty(); } /** --- 165,171 ---- * @return true if this set contains no elements */ public boolean isEmpty() { ! return m.isEmpty(); } /** *************** public class ConcurrentSkipListSet *** 180,186 **** * @throws NullPointerException if the specified element is null */ public boolean contains(Object o) { ! return m.containsKey(o); } /** --- 180,186 ---- * @throws NullPointerException if the specified element is null */ public boolean contains(Object o) { ! return m.containsKey(o); } /** *************** public class ConcurrentSkipListSet *** 198,204 **** * @throws NullPointerException if the specified element is null */ public boolean add(E e) { ! return m.putIfAbsent(e, Boolean.TRUE) == null; } /** --- 198,204 ---- * @throws NullPointerException if the specified element is null */ public boolean add(E e) { ! return m.putIfAbsent(e, Boolean.TRUE) == null; } /** *************** public class ConcurrentSkipListSet *** 216,229 **** * @throws NullPointerException if the specified element is null */ public boolean remove(Object o) { ! return m.remove(o, Boolean.TRUE); } /** * Removes all of the elements from this set. */ public void clear() { ! m.clear(); } /** --- 216,229 ---- * @throws NullPointerException if the specified element is null */ public boolean remove(Object o) { ! return m.remove(o, Boolean.TRUE); } /** * Removes all of the elements from this set. */ public void clear() { ! m.clear(); } /** *************** public class ConcurrentSkipListSet *** 241,247 **** * @return an iterator over the elements in this set in descending order */ public Iterator descendingIterator() { ! return m.descendingKeySet().iterator(); } --- 241,247 ---- * @return an iterator over the elements in this set in descending order */ public Iterator descendingIterator() { ! return m.descendingKeySet().iterator(); } *************** public class ConcurrentSkipListSet *** 261,271 **** */ public boolean equals(Object o) { // Override AbstractSet version to avoid calling size() ! if (o == this) ! return true; ! if (!(o instanceof Set)) ! return false; ! Collection c = (Collection) o; try { return containsAll(c) && c.containsAll(this); } catch (ClassCastException unused) { --- 261,271 ---- */ public boolean equals(Object o) { // Override AbstractSet version to avoid calling size() ! if (o == this) ! return true; ! if (!(o instanceof Set)) ! return false; ! Collection c = (Collection) o; try { return containsAll(c) && c.containsAll(this); } catch (ClassCastException unused) { *************** public class ConcurrentSkipListSet *** 373,379 **** boolean fromInclusive, E toElement, boolean toInclusive) { ! return new ConcurrentSkipListSet (m.subMap(fromElement, fromInclusive, toElement, toInclusive)); } --- 373,379 ---- boolean fromInclusive, E toElement, boolean toInclusive) { ! return new ConcurrentSkipListSet (m.subMap(fromElement, fromInclusive, toElement, toInclusive)); } *************** public class ConcurrentSkipListSet *** 384,390 **** * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet headSet(E toElement, boolean inclusive) { ! return new ConcurrentSkipListSet(m.headMap(toElement, inclusive)); } /** --- 384,390 ---- * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet headSet(E toElement, boolean inclusive) { ! return new ConcurrentSkipListSet(m.headMap(toElement, inclusive)); } /** *************** public class ConcurrentSkipListSet *** 393,399 **** * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet tailSet(E fromElement, boolean inclusive) { ! return new ConcurrentSkipListSet(m.tailMap(fromElement, inclusive)); } /** --- 393,399 ---- * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet tailSet(E fromElement, boolean inclusive) { ! return new ConcurrentSkipListSet(m.tailMap(fromElement, inclusive)); } /** *************** public class ConcurrentSkipListSet *** 403,409 **** * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet subSet(E fromElement, E toElement) { ! return subSet(fromElement, true, toElement, false); } /** --- 403,409 ---- * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet subSet(E fromElement, E toElement) { ! return subSet(fromElement, true, toElement, false); } /** *************** public class ConcurrentSkipListSet *** 412,418 **** * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet headSet(E toElement) { ! return headSet(toElement, false); } /** --- 412,418 ---- * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet headSet(E toElement) { ! return headSet(toElement, false); } /** *************** public class ConcurrentSkipListSet *** 421,427 **** * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet tailSet(E fromElement) { ! return tailSet(fromElement, true); } /** --- 421,427 ---- * @throws IllegalArgumentException {@inheritDoc} */ public NavigableSet tailSet(E fromElement) { ! return tailSet(fromElement, true); } /** *************** public class ConcurrentSkipListSet *** 437,443 **** * @return a reverse order view of this set */ public NavigableSet descendingSet() { ! return new ConcurrentSkipListSet(m.descendingMap()); } // Support for resetting map in clone --- 437,443 ---- * @return a reverse order view of this set */ public NavigableSet descendingSet() { ! return new ConcurrentSkipListSet(m.descendingMap()); } // Support for resetting map in clone diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java Tue Jan 11 19:46:05 2011 *************** public class CopyOnWriteArraySet exte *** 89,95 **** * @return the number of elements in this set */ public int size() { ! return al.size(); } /** --- 89,95 ---- * @return the number of elements in this set */ public int size() { ! return al.size(); } /** *************** public class CopyOnWriteArraySet exte *** 98,104 **** * @return true if this set contains no elements */ public boolean isEmpty() { ! return al.isEmpty(); } /** --- 98,104 ---- * @return true if this set contains no elements */ public boolean isEmpty() { ! return al.isEmpty(); } /** *************** public class CopyOnWriteArraySet exte *** 111,117 **** * @return true if this set contains the specified element */ public boolean contains(Object o) { ! return al.contains(o); } /** --- 111,117 ---- * @return true if this set contains the specified element */ public boolean contains(Object o) { ! return al.contains(o); } /** *************** public class CopyOnWriteArraySet exte *** 131,137 **** * @return an array containing all the elements in this set */ public Object[] toArray() { ! return al.toArray(); } /** --- 131,137 ---- * @return an array containing all the elements in this set */ public Object[] toArray() { ! return al.toArray(); } /** *************** public class CopyOnWriteArraySet exte *** 177,183 **** * @throws NullPointerException if the specified array is null */ public T[] toArray(T[] a) { ! return al.toArray(a); } /** --- 177,183 ---- * @throws NullPointerException if the specified array is null */ public T[] toArray(T[] a) { ! return al.toArray(a); } /** *************** public class CopyOnWriteArraySet exte *** 201,207 **** * @return true if this set contained the specified element */ public boolean remove(Object o) { ! return al.remove(o); } /** --- 201,207 ---- * @return true if this set contained the specified element */ public boolean remove(Object o) { ! return al.remove(o); } /** *************** public class CopyOnWriteArraySet exte *** 217,223 **** * element */ public boolean add(E e) { ! return al.addIfAbsent(e); } /** --- 217,223 ---- * element */ public boolean add(E e) { ! return al.addIfAbsent(e); } /** *************** public class CopyOnWriteArraySet exte *** 227,238 **** * * @param c collection to be checked for containment in this set * @return true if this set contains all of the elements of the ! * specified collection * @throws NullPointerException if the specified collection is null * @see #contains(Object) */ public boolean containsAll(Collection c) { ! return al.containsAll(c); } /** --- 227,238 ---- * * @param c collection to be checked for containment in this set * @return true if this set contains all of the elements of the ! * specified collection * @throws NullPointerException if the specified collection is null * @see #contains(Object) */ public boolean containsAll(Collection c) { ! return al.containsAll(c); } /** *************** public class CopyOnWriteArraySet exte *** 249,255 **** * @see #add(Object) */ public boolean addAll(Collection c) { ! return al.addAllAbsent(c) > 0; } /** --- 249,255 ---- * @see #add(Object) */ public boolean addAll(Collection c) { ! return al.addAllAbsent(c) > 0; } /** *************** public class CopyOnWriteArraySet exte *** 268,274 **** * @see #remove(Object) */ public boolean removeAll(Collection c) { ! return al.removeAll(c); } /** --- 268,274 ---- * @see #remove(Object) */ public boolean removeAll(Collection c) { ! return al.removeAll(c); } /** *************** public class CopyOnWriteArraySet exte *** 289,295 **** * @see #remove(Object) */ public boolean retainAll(Collection c) { ! return al.retainAll(c); } /** --- 289,295 ---- * @see #remove(Object) */ public boolean retainAll(Collection c) { ! return al.retainAll(c); } /** *************** public class CopyOnWriteArraySet exte *** 304,310 **** * @return an iterator over the elements in this set */ public Iterator iterator() { ! return al.iterator(); } /** --- 304,310 ---- * @return an iterator over the elements in this set */ public Iterator iterator() { ! return al.iterator(); } /** *************** public class CopyOnWriteArraySet exte *** 329,342 **** if (!(o instanceof Set)) return false; Set set = (Set)(o); ! Iterator it = set.iterator(); // Uses O(n^2) algorithm that is only appropriate // for small sets, which CopyOnWriteArraySets should be. // Use a single snapshot of underlying array ! Object[] elements = al.getArray(); ! int len = elements.length; // Mark matched elements to avoid re-checking boolean[] matched = new boolean[len]; int k = 0; --- 329,342 ---- if (!(o instanceof Set)) return false; Set set = (Set)(o); ! Iterator it = set.iterator(); // Uses O(n^2) algorithm that is only appropriate // for small sets, which CopyOnWriteArraySets should be. // Use a single snapshot of underlying array ! Object[] elements = al.getArray(); ! int len = elements.length; // Mark matched elements to avoid re-checking boolean[] matched = new boolean[len]; int k = 0; *************** public class CopyOnWriteArraySet exte *** 347,356 **** for (int i = 0; i < len; ++i) { if (!matched[i] && eq(x, elements[i])) { matched[i] = true; ! continue outer; } } ! return false; } return k == len; } --- 347,356 ---- for (int i = 0; i < len; ++i) { if (!matched[i] && eq(x, elements[i])) { matched[i] = true; ! continue outer; } } ! return false; } return k == len; } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java Tue Jan 11 19:46:05 2011 *************** public class CyclicBarrier { *** 152,158 **** */ private void breakBarrier() { generation.broken = true; ! count = parties; trip.signalAll(); } --- 152,158 ---- */ private void breakBarrier() { generation.broken = true; ! count = parties; trip.signalAll(); } *************** public class CyclicBarrier { *** 179,185 **** if (index == 0) { // tripped boolean ranAction = false; try { ! final Runnable command = barrierCommand; if (command != null) command.run(); ranAction = true; --- 179,185 ---- if (index == 0) { // tripped boolean ranAction = false; try { ! final Runnable command = barrierCommand; if (command != null) command.run(); ranAction = true; *************** public class CyclicBarrier { *** 201,213 **** } catch (InterruptedException ie) { if (g == generation && ! g.broken) { breakBarrier(); ! throw ie; ! } else { ! // We're about to finish waiting even if we had not ! // been interrupted, so this interrupt is deemed to ! // "belong" to subsequent execution. ! Thread.currentThread().interrupt(); ! } } if (g.broken) --- 201,213 ---- } catch (InterruptedException ie) { if (g == generation && ! g.broken) { breakBarrier(); ! throw ie; ! } else { ! // We're about to finish waiting even if we had not ! // been interrupted, so this interrupt is deemed to ! // "belong" to subsequent execution. ! Thread.currentThread().interrupt(); ! } } if (g.broken) diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/DelayQueue.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/DelayQueue.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/DelayQueue.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/DelayQueue.java Tue Jan 11 19:46:05 2011 *************** public class DelayQueue { final Object[] array; // Array of all elements ! int cursor; // index of next element to return; ! int lastRet; // index of last element, or -1 if no such Itr(Object[] array) { lastRet = -1; --- 444,451 ---- */ private class Itr implements Iterator { final Object[] array; // Array of all elements ! int cursor; // index of next element to return; ! int lastRet; // index of last element, or -1 if no such Itr(Object[] array) { lastRet = -1; *************** public class DelayQueue() { ! public Object call() { return action.run(); }}; } /** --- 362,368 ---- if (action == null) throw new NullPointerException(); return new Callable() { ! public Object call() { return action.run(); }}; } /** *************** public class Executors { *** 376,383 **** public static Callable callable(final PrivilegedExceptionAction action) { if (action == null) throw new NullPointerException(); ! return new Callable() { ! public Object call() throws Exception { return action.run(); }}; } /** --- 376,383 ---- public static Callable callable(final PrivilegedExceptionAction action) { if (action == null) throw new NullPointerException(); ! return new Callable() { ! public Object call() throws Exception { return action.run(); }}; } /** *************** public class Executors { *** 625,637 **** } static class FinalizableDelegatedExecutorService ! extends DelegatedExecutorService { ! FinalizableDelegatedExecutorService(ExecutorService executor) { ! super(executor); ! } ! protected void finalize() { ! super.shutdown(); ! } } /** --- 625,637 ---- } static class FinalizableDelegatedExecutorService ! extends DelegatedExecutorService { ! FinalizableDelegatedExecutorService(ExecutorService executor) { ! super(executor); ! } ! protected void finalize() { ! super.shutdown(); ! } } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/FutureTask.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/FutureTask.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/FutureTask.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/FutureTask.java Tue Jan 11 19:46:05 2011 *************** public class FutureTask implements Ru *** 233,291 **** } void innerSet(V v) { ! for (;;) { ! int s = getState(); ! if (s == RAN) ! return; if (s == CANCELLED) { ! // aggressively release to set runner to null, ! // in case we are racing with a cancel request ! // that will try to interrupt runner releaseShared(0); return; } ! if (compareAndSetState(s, RAN)) { result = v; releaseShared(0); done(); ! return; } } } void innerSetException(Throwable t) { ! for (;;) { ! int s = getState(); ! if (s == RAN) ! return; if (s == CANCELLED) { ! // aggressively release to set runner to null, ! // in case we are racing with a cancel request ! // that will try to interrupt runner releaseShared(0); return; } ! if (compareAndSetState(s, RAN)) { exception = t; result = null; releaseShared(0); done(); ! return; } ! } } boolean innerCancel(boolean mayInterruptIfRunning) { ! for (;;) { ! int s = getState(); ! if (ranOrCancelled(s)) ! return false; ! if (compareAndSetState(s, CANCELLED)) ! break; ! } if (mayInterruptIfRunning) { Thread r = runner; ! if (r != null) r.interrupt(); } releaseShared(0); --- 233,291 ---- } void innerSet(V v) { ! for (;;) { ! int s = getState(); ! if (s == RAN) ! return; if (s == CANCELLED) { ! // aggressively release to set runner to null, ! // in case we are racing with a cancel request ! // that will try to interrupt runner releaseShared(0); return; } ! if (compareAndSetState(s, RAN)) { result = v; releaseShared(0); done(); ! return; } } } void innerSetException(Throwable t) { ! for (;;) { ! int s = getState(); ! if (s == RAN) ! return; if (s == CANCELLED) { ! // aggressively release to set runner to null, ! // in case we are racing with a cancel request ! // that will try to interrupt runner releaseShared(0); return; } ! if (compareAndSetState(s, RAN)) { exception = t; result = null; releaseShared(0); done(); ! return; } ! } } boolean innerCancel(boolean mayInterruptIfRunning) { ! for (;;) { ! int s = getState(); ! if (ranOrCancelled(s)) ! return false; ! if (compareAndSetState(s, CANCELLED)) ! break; ! } if (mayInterruptIfRunning) { Thread r = runner; ! if (r != null) r.interrupt(); } releaseShared(0); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java Tue Jan 11 19:46:05 2011 *************** public class LinkedBlockingDeque *** 57,63 **** /** Doubly-linked list node class */ static final class Node { ! E item; Node prev; Node next; Node(E x, Node p, Node n) { --- 57,63 ---- /** Doubly-linked list node class */ static final class Node { ! E item; Node prev; Node next; Node(E x, Node p, Node n) { *************** public class LinkedBlockingDeque *** 299,305 **** public boolean offerFirst(E e, long timeout, TimeUnit unit) throws InterruptedException { if (e == null) throw new NullPointerException(); ! long nanos = unit.toNanos(timeout); lock.lockInterruptibly(); try { for (;;) { --- 299,305 ---- public boolean offerFirst(E e, long timeout, TimeUnit unit) throws InterruptedException { if (e == null) throw new NullPointerException(); ! long nanos = unit.toNanos(timeout); lock.lockInterruptibly(); try { for (;;) { *************** public class LinkedBlockingDeque *** 321,327 **** public boolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException { if (e == null) throw new NullPointerException(); ! long nanos = unit.toNanos(timeout); lock.lockInterruptibly(); try { for (;;) { --- 321,327 ---- public boolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException { if (e == null) throw new NullPointerException(); ! long nanos = unit.toNanos(timeout); lock.lockInterruptibly(); try { for (;;) { *************** public class LinkedBlockingDeque *** 398,404 **** public E pollFirst(long timeout, TimeUnit unit) throws InterruptedException { ! long nanos = unit.toNanos(timeout); lock.lockInterruptibly(); try { for (;;) { --- 398,404 ---- public E pollFirst(long timeout, TimeUnit unit) throws InterruptedException { ! long nanos = unit.toNanos(timeout); lock.lockInterruptibly(); try { for (;;) { *************** public class LinkedBlockingDeque *** 416,422 **** public E pollLast(long timeout, TimeUnit unit) throws InterruptedException { ! long nanos = unit.toNanos(timeout); lock.lockInterruptibly(); try { for (;;) { --- 416,422 ---- public E pollLast(long timeout, TimeUnit unit) throws InterruptedException { ! long nanos = unit.toNanos(timeout); lock.lockInterruptibly(); try { for (;;) { *************** public class LinkedBlockingDeque *** 514,528 **** * @throws NullPointerException if the specified element is null */ public boolean add(E e) { ! addLast(e); ! return true; } /** * @throws NullPointerException if the specified element is null */ public boolean offer(E e) { ! return offerLast(e); } /** --- 514,528 ---- * @throws NullPointerException if the specified element is null */ public boolean add(E e) { ! addLast(e); ! return true; } /** * @throws NullPointerException if the specified element is null */ public boolean offer(E e) { ! return offerLast(e); } /** *************** public class LinkedBlockingDeque *** 530,536 **** * @throws InterruptedException {@inheritDoc} */ public void put(E e) throws InterruptedException { ! putLast(e); } /** --- 530,536 ---- * @throws InterruptedException {@inheritDoc} */ public void put(E e) throws InterruptedException { ! putLast(e); } /** *************** public class LinkedBlockingDeque *** 539,545 **** */ public boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException { ! return offerLast(e, timeout, unit); } /** --- 539,545 ---- */ public boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException { ! return offerLast(e, timeout, unit); } /** *************** public class LinkedBlockingDeque *** 553,571 **** * @throws NoSuchElementException if this deque is empty */ public E remove() { ! return removeFirst(); } public E poll() { ! return pollFirst(); } public E take() throws InterruptedException { ! return takeFirst(); } public E poll(long timeout, TimeUnit unit) throws InterruptedException { ! return pollFirst(timeout, unit); } /** --- 553,571 ---- * @throws NoSuchElementException if this deque is empty */ public E remove() { ! return removeFirst(); } public E poll() { ! return pollFirst(); } public E take() throws InterruptedException { ! return takeFirst(); } public E poll(long timeout, TimeUnit unit) throws InterruptedException { ! return pollFirst(timeout, unit); } /** *************** public class LinkedBlockingDeque *** 579,589 **** * @throws NoSuchElementException if this deque is empty */ public E element() { ! return getFirst(); } public E peek() { ! return peekFirst(); } /** --- 579,589 ---- * @throws NoSuchElementException if this deque is empty */ public E element() { ! return getFirst(); } public E peek() { ! return peekFirst(); } /** *************** public class LinkedBlockingDeque *** 668,681 **** * @throws NullPointerException {@inheritDoc} */ public void push(E e) { ! addFirst(e); } /** * @throws NoSuchElementException {@inheritDoc} */ public E pop() { ! return removeFirst(); } // Collection methods --- 668,681 ---- * @throws NullPointerException {@inheritDoc} */ public void push(E e) { ! addFirst(e); } /** * @throws NoSuchElementException {@inheritDoc} */ public E pop() { ! return removeFirst(); } // Collection methods *************** public class LinkedBlockingDeque *** 695,701 **** * @return true if this deque changed as a result of the call */ public boolean remove(Object o) { ! return removeFirstOccurrence(o); } /** --- 695,701 ---- * @return true if this deque changed as a result of the call */ public boolean remove(Object o) { ! return removeFirstOccurrence(o); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java Tue Jan 11 19:46:05 2011 *************** public class LinkedBlockingQueue exte *** 584,591 **** fullyLock(); try { head.next = null; ! assert head.item == null; ! last = head; if (count.getAndSet(0) == capacity) notFull.signalAll(); } finally { --- 584,591 ---- fullyLock(); try { head.next = null; ! assert head.item == null; ! last = head; if (count.getAndSet(0) == capacity) notFull.signalAll(); } finally { *************** public class LinkedBlockingQueue exte *** 609,616 **** try { first = head.next; head.next = null; ! assert head.item == null; ! last = head; if (count.getAndSet(0) == capacity) notFull.signalAll(); } finally { --- 609,616 ---- try { first = head.next; head.next = null; ! assert head.item == null; ! last = head; if (count.getAndSet(0) == capacity) notFull.signalAll(); } finally { *************** public class LinkedBlockingQueue exte *** 649,657 **** } if (n != 0) { head.next = p; ! assert head.item == null; ! if (p == null) ! last = head; if (count.getAndAdd(-n) == capacity) notFull.signalAll(); } --- 649,657 ---- } if (n != 0) { head.next = p; ! assert head.item == null; ! if (p == null) ! last = head; if (count.getAndAdd(-n) == capacity) notFull.signalAll(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java Tue Jan 11 19:46:05 2011 *************** public class PriorityBlockingQueue ex *** 503,510 **** */ private class Itr implements Iterator { final Object[] array; // Array of all elements ! int cursor; // index of next element to return; ! int lastRet; // index of last element, or -1 if no such Itr(Object[] array) { lastRet = -1; --- 503,510 ---- */ private class Itr implements Iterator { final Object[] array; // Array of all elements ! int cursor; // index of next element to return; ! int lastRet; // index of last element, or -1 if no such Itr(Object[] array) { lastRet = -1; *************** public class PriorityBlockingQueue ex *** 524,530 **** public void remove() { if (lastRet < 0) ! throw new IllegalStateException(); Object x = array[lastRet]; lastRet = -1; // Traverse underlying queue to find == element, --- 524,530 ---- public void remove() { if (lastRet < 0) ! throw new IllegalStateException(); Object x = array[lastRet]; lastRet = -1; // Traverse underlying queue to find == element, diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java Tue Jan 11 19:46:05 2011 *************** public interface ScheduledExecutorServic *** 82,88 **** * @throws NullPointerException if command is null */ public ScheduledFuture schedule(Runnable command, ! long delay, TimeUnit unit); /** * Creates and executes a ScheduledFuture that becomes enabled after the --- 82,88 ---- * @throws NullPointerException if command is null */ public ScheduledFuture schedule(Runnable command, ! long delay, TimeUnit unit); /** * Creates and executes a ScheduledFuture that becomes enabled after the *************** public interface ScheduledExecutorServic *** 97,103 **** * @throws NullPointerException if callable is null */ public ScheduledFuture schedule(Callable callable, ! long delay, TimeUnit unit); /** * Creates and executes a periodic action that becomes enabled first --- 97,103 ---- * @throws NullPointerException if callable is null */ public ScheduledFuture schedule(Callable callable, ! long delay, TimeUnit unit); /** * Creates and executes a periodic action that becomes enabled first *************** public interface ScheduledExecutorServic *** 125,133 **** * @throws IllegalArgumentException if period less than or equal to zero */ public ScheduledFuture scheduleAtFixedRate(Runnable command, ! long initialDelay, ! long period, ! TimeUnit unit); /** * Creates and executes a periodic action that becomes enabled first --- 125,133 ---- * @throws IllegalArgumentException if period less than or equal to zero */ public ScheduledFuture scheduleAtFixedRate(Runnable command, ! long initialDelay, ! long period, ! TimeUnit unit); /** * Creates and executes a periodic action that becomes enabled first *************** public interface ScheduledExecutorServic *** 152,159 **** * @throws IllegalArgumentException if delay less than or equal to zero */ public ScheduledFuture scheduleWithFixedDelay(Runnable command, ! long initialDelay, ! long delay, ! TimeUnit unit); } --- 152,159 ---- * @throws IllegalArgumentException if delay less than or equal to zero */ public ScheduledFuture scheduleWithFixedDelay(Runnable command, ! long initialDelay, ! long delay, ! TimeUnit unit); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java Tue Jan 11 19:46:05 2011 *************** public class ScheduledThreadPoolExecutor *** 587,597 **** } public boolean add(Runnable x) { ! return dq.add((RunnableScheduledFuture)x); ! } public boolean offer(Runnable x) { ! return dq.offer((RunnableScheduledFuture)x); ! } public void put(Runnable x) { dq.put((RunnableScheduledFuture)x); } --- 587,597 ---- } public boolean add(Runnable x) { ! return dq.add((RunnableScheduledFuture)x); ! } public boolean offer(Runnable x) { ! return dq.offer((RunnableScheduledFuture)x); ! } public void put(Runnable x) { dq.put((RunnableScheduledFuture)x); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/Semaphore.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/Semaphore.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/Semaphore.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/Semaphore.java Tue Jan 11 19:46:05 2011 *************** public class Semaphore implements java.i *** 614,620 **** * @throws IllegalArgumentException if {@code reduction} is negative */ protected void reducePermits(int reduction) { ! if (reduction < 0) throw new IllegalArgumentException(); sync.reducePermits(reduction); } --- 614,620 ---- * @throws IllegalArgumentException if {@code reduction} is negative */ protected void reducePermits(int reduction) { ! if (reduction < 0) throw new IllegalArgumentException(); sync.reducePermits(reduction); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java Tue Jan 11 19:46:05 2011 *************** public class SynchronousQueue extends *** 737,747 **** advanceHead(h, hn); continue; } ! QNode t = tail; // Ensure consistent read for tail if (t == h) return; ! QNode tn = t.next; ! if (t != tail) continue; if (tn != null) { advanceTail(t, tn); --- 737,747 ---- advanceHead(h, hn); continue; } ! QNode t = tail; // Ensure consistent read for tail if (t == h) return; ! QNode tn = t.next; ! if (t != tail) continue; if (tn != null) { advanceTail(t, tn); *************** public class SynchronousQueue extends *** 808,816 **** public void put(E o) throws InterruptedException { if (o == null) throw new NullPointerException(); if (transferer.transfer(o, false, 0) == null) { ! Thread.interrupted(); throw new InterruptedException(); ! } } /** --- 808,816 ---- public void put(E o) throws InterruptedException { if (o == null) throw new NullPointerException(); if (transferer.transfer(o, false, 0) == null) { ! Thread.interrupted(); throw new InterruptedException(); ! } } /** *************** public class SynchronousQueue extends *** 857,863 **** Object e = transferer.transfer(null, false, 0); if (e != null) return (E)e; ! Thread.interrupted(); throw new InterruptedException(); } --- 857,863 ---- Object e = transferer.transfer(null, false, 0); if (e != null) return (E)e; ! Thread.interrupted(); throw new InterruptedException(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java Tue Jan 11 19:46:05 2011 *************** public class ThreadPoolExecutor extends *** 669,676 **** runLock.lock(); try { // If not shutting down then clear an outstanding interrupt. ! if (runState != STOP && ! Thread.interrupted() && runState == STOP) // Re-interrupt if stopped after clearing thread.interrupt(); boolean ran = false; --- 669,676 ---- runLock.lock(); try { // If not shutting down then clear an outstanding interrupt. ! if (runState != STOP && ! Thread.interrupted() && runState == STOP) // Re-interrupt if stopped after clearing thread.interrupt(); boolean ran = false; *************** public class ThreadPoolExecutor extends *** 911,918 **** */ public void shutdown() { // Fail if caller doesn't have modifyThread permission. ! SecurityManager security = System.getSecurityManager(); ! if (security != null) security.checkPermission(shutdownPerm); boolean fullyTerminated = false; --- 911,918 ---- */ public void shutdown() { // Fail if caller doesn't have modifyThread permission. ! SecurityManager security = System.getSecurityManager(); ! if (security != null) security.checkPermission(shutdownPerm); boolean fullyTerminated = false; *************** public class ThreadPoolExecutor extends *** 978,985 **** */ public List shutdownNow() { // Almost the same code as shutdown() ! SecurityManager security = System.getSecurityManager(); ! if (security != null) security.checkPermission(shutdownPerm); boolean fullyTerminated = false; --- 978,985 ---- */ public List shutdownNow() { // Almost the same code as shutdown() ! SecurityManager security = System.getSecurityManager(); ! if (security != null) security.checkPermission(shutdownPerm); boolean fullyTerminated = false; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java Tue Jan 11 19:46:05 2011 *************** public class AtomicInteger extends Numbe *** 103,109 **** * the actual value was not equal to the expected value. */ public final boolean compareAndSet(int expect, int update) { ! return unsafe.compareAndSwapInt(this, valueOffset, expect, update); } /** --- 103,109 ---- * the actual value was not equal to the expected value. */ public final boolean compareAndSet(int expect, int update) { ! return unsafe.compareAndSwapInt(this, valueOffset, expect, update); } /** *************** public class AtomicInteger extends Numbe *** 117,123 **** * @return true if successful. */ public final boolean weakCompareAndSet(int expect, int update) { ! return unsafe.compareAndSwapInt(this, valueOffset, expect, update); } /** --- 117,123 ---- * @return true if successful. */ public final boolean weakCompareAndSet(int expect, int update) { ! return unsafe.compareAndSwapInt(this, valueOffset, expect, update); } /** *************** public class AtomicInteger extends Numbe *** 216,234 **** public int intValue() { ! return get(); } public long longValue() { ! return (long)get(); } public float floatValue() { ! return (float)get(); } public double doubleValue() { ! return (double)get(); } } --- 216,234 ---- public int intValue() { ! return get(); } public long longValue() { ! return (long)get(); } public float floatValue() { ! return (float)get(); } public double doubleValue() { ! return (double)get(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java Wed Sep 13 17:22:42 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java Tue Jan 11 19:46:05 2011 *************** public abstract class AtomicIntegerFiel *** 240,254 **** AtomicIntegerFieldUpdaterImpl(Class tclass, String fieldName) { Field field = null; ! Class caller = null; ! int modifiers = 0; try { field = tclass.getDeclaredField(fieldName); ! caller = sun.reflect.Reflection.getCallerClass(3); ! modifiers = field.getModifiers(); sun.reflect.misc.ReflectUtil.ensureMemberAccess( ! caller, tclass, null, modifiers); ! sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); } catch(Exception ex) { throw new RuntimeException(ex); } --- 240,254 ---- AtomicIntegerFieldUpdaterImpl(Class tclass, String fieldName) { Field field = null; ! Class caller = null; ! int modifiers = 0; try { field = tclass.getDeclaredField(fieldName); ! caller = sun.reflect.Reflection.getCallerClass(3); ! modifiers = field.getModifiers(); sun.reflect.misc.ReflectUtil.ensureMemberAccess( ! caller, tclass, null, modifiers); ! sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); } catch(Exception ex) { throw new RuntimeException(ex); } *************** public abstract class AtomicIntegerFiel *** 256,267 **** Class fieldt = field.getType(); if (fieldt != int.class) throw new IllegalArgumentException("Must be integer type"); ! if (!Modifier.isVolatile(modifiers)) throw new IllegalArgumentException("Must be volatile type"); ! ! this.cclass = (Modifier.isProtected(modifiers) && ! caller != tclass) ? caller : null; this.tclass = tclass; offset = unsafe.objectFieldOffset(field); } --- 256,267 ---- Class fieldt = field.getType(); if (fieldt != int.class) throw new IllegalArgumentException("Must be integer type"); ! if (!Modifier.isVolatile(modifiers)) throw new IllegalArgumentException("Must be volatile type"); ! ! this.cclass = (Modifier.isProtected(modifiers) && ! caller != tclass) ? caller : null; this.tclass = tclass; offset = unsafe.objectFieldOffset(field); } *************** public abstract class AtomicIntegerFiel *** 269,276 **** private void fullCheck(T obj) { if (!tclass.isInstance(obj)) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); } public boolean compareAndSet(T obj, int expect, int update) { --- 269,276 ---- private void fullCheck(T obj) { if (!tclass.isInstance(obj)) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); } public boolean compareAndSet(T obj, int expect, int update) { *************** public abstract class AtomicIntegerFiel *** 298,316 **** return unsafe.getIntVolatile(obj, offset); } ! private void ensureProtectedAccess(T obj) { ! if (cclass.isInstance(obj)) { ! return; ! } ! throw new RuntimeException( new IllegalAccessException("Class " + ! cclass.getName() + " can not access a protected member of class " + tclass.getName() + ! " using an instance of " + obj.getClass().getName() ! ) ! ); ! } } } --- 298,316 ---- return unsafe.getIntVolatile(obj, offset); } ! private void ensureProtectedAccess(T obj) { ! if (cclass.isInstance(obj)) { ! return; ! } ! throw new RuntimeException( new IllegalAccessException("Class " + ! cclass.getName() + " can not access a protected member of class " + tclass.getName() + ! " using an instance of " + obj.getClass().getName() ! ) ! ); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java Tue Jan 11 19:46:05 2011 *************** public class AtomicLong extends Number i *** 117,123 **** * the actual value was not equal to the expected value. */ public final boolean compareAndSet(long expect, long update) { ! return unsafe.compareAndSwapLong(this, valueOffset, expect, update); } /** --- 117,123 ---- * the actual value was not equal to the expected value. */ public final boolean compareAndSet(long expect, long update) { ! return unsafe.compareAndSwapLong(this, valueOffset, expect, update); } /** *************** public class AtomicLong extends Number i *** 131,137 **** * @return true if successful. */ public final boolean weakCompareAndSet(long expect, long update) { ! return unsafe.compareAndSwapLong(this, valueOffset, expect, update); } /** --- 131,137 ---- * @return true if successful. */ public final boolean weakCompareAndSet(long expect, long update) { ! return unsafe.compareAndSwapLong(this, valueOffset, expect, update); } /** *************** public class AtomicLong extends Number i *** 230,248 **** public int intValue() { ! return (int)get(); } public long longValue() { ! return (long)get(); } public float floatValue() { ! return (float)get(); } public double doubleValue() { ! return (double)get(); } } --- 230,248 ---- public int intValue() { ! return (int)get(); } public long longValue() { ! return (long)get(); } public float floatValue() { ! return (float)get(); } public double doubleValue() { ! return (double)get(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java Wed Sep 13 17:22:42 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java Tue Jan 11 19:46:05 2011 *************** public abstract class AtomicLongFieldUp *** 239,253 **** CASUpdater(Class tclass, String fieldName) { Field field = null; ! Class caller = null; ! int modifiers = 0; try { field = tclass.getDeclaredField(fieldName); ! caller = sun.reflect.Reflection.getCallerClass(3); ! modifiers = field.getModifiers(); sun.reflect.misc.ReflectUtil.ensureMemberAccess( ! caller, tclass, null, modifiers); ! sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); } catch(Exception ex) { throw new RuntimeException(ex); } --- 239,253 ---- CASUpdater(Class tclass, String fieldName) { Field field = null; ! Class caller = null; ! int modifiers = 0; try { field = tclass.getDeclaredField(fieldName); ! caller = sun.reflect.Reflection.getCallerClass(3); ! modifiers = field.getModifiers(); sun.reflect.misc.ReflectUtil.ensureMemberAccess( ! caller, tclass, null, modifiers); ! sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); } catch(Exception ex) { throw new RuntimeException(ex); } *************** public abstract class AtomicLongFieldUp *** 259,266 **** if (!Modifier.isVolatile(modifiers)) throw new IllegalArgumentException("Must be volatile type"); ! this.cclass = (Modifier.isProtected(modifiers) && ! caller != tclass) ? caller : null; this.tclass = tclass; offset = unsafe.objectFieldOffset(field); } --- 259,266 ---- if (!Modifier.isVolatile(modifiers)) throw new IllegalArgumentException("Must be volatile type"); ! this.cclass = (Modifier.isProtected(modifiers) && ! caller != tclass) ? caller : null; this.tclass = tclass; offset = unsafe.objectFieldOffset(field); } *************** public abstract class AtomicLongFieldUp *** 268,276 **** private void fullCheck(T obj) { if (!tclass.isInstance(obj)) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); ! } public boolean compareAndSet(T obj, long expect, long update) { if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); --- 268,276 ---- private void fullCheck(T obj) { if (!tclass.isInstance(obj)) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); ! } public boolean compareAndSet(T obj, long expect, long update) { if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); *************** public abstract class AtomicLongFieldUp *** 297,316 **** return unsafe.getLongVolatile(obj, offset); } ! private void ensureProtectedAccess(T obj) { ! if (cclass.isInstance(obj)) { ! return; ! } ! throw new RuntimeException ( new IllegalAccessException("Class " + ! cclass.getName() + " can not access a protected member of class " + tclass.getName() + ! " using an instance of " + obj.getClass().getName() ! ) ! ); ! } } --- 297,316 ---- return unsafe.getLongVolatile(obj, offset); } ! private void ensureProtectedAccess(T obj) { ! if (cclass.isInstance(obj)) { ! return; ! } ! throw new RuntimeException ( new IllegalAccessException("Class " + ! cclass.getName() + " can not access a protected member of class " + tclass.getName() + ! " using an instance of " + obj.getClass().getName() ! ) ! ); ! } } *************** public abstract class AtomicLongFieldUp *** 322,336 **** LockedUpdater(Class tclass, String fieldName) { Field field = null; ! Class caller = null; ! int modifiers = 0; try { field = tclass.getDeclaredField(fieldName); ! caller = sun.reflect.Reflection.getCallerClass(3); ! modifiers = field.getModifiers(); sun.reflect.misc.ReflectUtil.ensureMemberAccess( ! caller, tclass, null, modifiers); ! sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); } catch(Exception ex) { throw new RuntimeException(ex); } --- 322,336 ---- LockedUpdater(Class tclass, String fieldName) { Field field = null; ! Class caller = null; ! int modifiers = 0; try { field = tclass.getDeclaredField(fieldName); ! caller = sun.reflect.Reflection.getCallerClass(3); ! modifiers = field.getModifiers(); sun.reflect.misc.ReflectUtil.ensureMemberAccess( ! caller, tclass, null, modifiers); ! sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); } catch(Exception ex) { throw new RuntimeException(ex); } *************** public abstract class AtomicLongFieldUp *** 342,349 **** if (!Modifier.isVolatile(modifiers)) throw new IllegalArgumentException("Must be volatile type"); ! this.cclass = (Modifier.isProtected(modifiers) && ! caller != tclass) ? caller : null; this.tclass = tclass; offset = unsafe.objectFieldOffset(field); } --- 342,349 ---- if (!Modifier.isVolatile(modifiers)) throw new IllegalArgumentException("Must be volatile type"); ! this.cclass = (Modifier.isProtected(modifiers) && ! caller != tclass) ? caller : null; this.tclass = tclass; offset = unsafe.objectFieldOffset(field); } *************** public abstract class AtomicLongFieldUp *** 351,359 **** private void fullCheck(T obj) { if (!tclass.isInstance(obj)) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); ! } public boolean compareAndSet(T obj, long expect, long update) { if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); --- 351,359 ---- private void fullCheck(T obj) { if (!tclass.isInstance(obj)) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); ! } public boolean compareAndSet(T obj, long expect, long update) { if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); *************** public abstract class AtomicLongFieldUp *** 378,384 **** } public void lazySet(T obj, long newValue) { ! set(obj, newValue); } public long get(T obj) { --- 378,384 ---- } public void lazySet(T obj, long newValue) { ! set(obj, newValue); } public long get(T obj) { *************** public abstract class AtomicLongFieldUp *** 388,406 **** } } ! private void ensureProtectedAccess(T obj) { ! if (cclass.isInstance(obj)) { ! return; ! } ! throw new RuntimeException ( new IllegalAccessException("Class " + ! cclass.getName() + " can not access a protected member of class " + tclass.getName() + ! " using an instance of " + obj.getClass().getName() ! ) ! ); ! } } } --- 388,406 ---- } } ! private void ensureProtectedAccess(T obj) { ! if (cclass.isInstance(obj)) { ! return; ! } ! throw new RuntimeException ( new IllegalAccessException("Class " + ! cclass.getName() + " can not access a protected member of class " + tclass.getName() + ! " using an instance of " + obj.getClass().getName() ! ) ! ); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java Wed Sep 13 17:22:42 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java Tue Jan 11 19:46:05 2011 *************** public abstract class AtomicReferenceFie *** 149,155 **** } private static final class AtomicReferenceFieldUpdaterImpl ! extends AtomicReferenceFieldUpdater { private static final Unsafe unsafe = Unsafe.getUnsafe(); private final long offset; private final Class tclass; --- 149,155 ---- } private static final class AtomicReferenceFieldUpdaterImpl ! extends AtomicReferenceFieldUpdater { private static final Unsafe unsafe = Unsafe.getUnsafe(); private final long offset; private final Class tclass; *************** public abstract class AtomicReferenceFie *** 169,187 **** */ AtomicReferenceFieldUpdaterImpl(Class tclass, ! Class vclass, ! String fieldName) { Field field = null; Class fieldClass = null; ! Class caller = null; ! int modifiers = 0; try { field = tclass.getDeclaredField(fieldName); ! caller = sun.reflect.Reflection.getCallerClass(3); ! modifiers = field.getModifiers(); sun.reflect.misc.ReflectUtil.ensureMemberAccess( ! caller, tclass, null, modifiers); ! sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); fieldClass = field.getType(); } catch (Exception ex) { throw new RuntimeException(ex); --- 169,187 ---- */ AtomicReferenceFieldUpdaterImpl(Class tclass, ! Class vclass, ! String fieldName) { Field field = null; Class fieldClass = null; ! Class caller = null; ! int modifiers = 0; try { field = tclass.getDeclaredField(fieldName); ! caller = sun.reflect.Reflection.getCallerClass(3); ! modifiers = field.getModifiers(); sun.reflect.misc.ReflectUtil.ensureMemberAccess( ! caller, tclass, null, modifiers); ! sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); fieldClass = field.getType(); } catch (Exception ex) { throw new RuntimeException(ex); *************** public abstract class AtomicReferenceFie *** 189,200 **** if (vclass != fieldClass) throw new ClassCastException(); ! if (!Modifier.isVolatile(modifiers)) throw new IllegalArgumentException("Must be volatile type"); ! this.cclass = (Modifier.isProtected(modifiers) && ! caller != tclass) ? caller : null; this.tclass = tclass; if (vclass == Object.class) this.vclass = null; --- 189,200 ---- if (vclass != fieldClass) throw new ClassCastException(); ! if (!Modifier.isVolatile(modifiers)) throw new IllegalArgumentException("Must be volatile type"); ! this.cclass = (Modifier.isProtected(modifiers) && ! caller != tclass) ? caller : null; this.tclass = tclass; if (vclass == Object.class) this.vclass = null; *************** public abstract class AtomicReferenceFie *** 206,221 **** void targetCheck(T obj) { if (!tclass.isInstance(obj)) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); } void updateCheck(T obj, V update) { if (!tclass.isInstance(obj) || (update != null && vclass != null && !vclass.isInstance(update))) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); } public boolean compareAndSet(T obj, V expect, V update) { --- 206,221 ---- void targetCheck(T obj) { if (!tclass.isInstance(obj)) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); } void updateCheck(T obj, V update) { if (!tclass.isInstance(obj) || (update != null && vclass != null && !vclass.isInstance(update))) throw new ClassCastException(); ! if (cclass != null) ! ensureProtectedAccess(obj); } public boolean compareAndSet(T obj, V expect, V update) { *************** public abstract class AtomicReferenceFie *** 257,275 **** return (V)unsafe.getObjectVolatile(obj, offset); } ! private void ensureProtectedAccess(T obj) { ! if (cclass.isInstance(obj)) { ! return; ! } ! throw new RuntimeException ( new IllegalAccessException("Class " + ! cclass.getName() + " can not access a protected member of class " + tclass.getName() + ! " using an instance of " + obj.getClass().getName() ! ) ! ); ! } } } --- 257,275 ---- return (V)unsafe.getObjectVolatile(obj, offset); } ! private void ensureProtectedAccess(T obj) { ! if (cclass.isInstance(obj)) { ! return; ! } ! throw new RuntimeException ( new IllegalAccessException("Class " + ! cclass.getName() + " can not access a protected member of class " + tclass.getName() + ! " using an instance of " + obj.getClass().getName() ! ) ! ); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractQueuedLong *** 892,901 **** * @throws InterruptedException if the current thread is interrupted */ public final boolean tryAcquireNanos(long arg, long nanosTimeout) throws InterruptedException { ! if (Thread.interrupted()) ! throw new InterruptedException(); ! return tryAcquire(arg) || ! doAcquireNanos(arg, nanosTimeout); } /** --- 892,901 ---- * @throws InterruptedException if the current thread is interrupted */ public final boolean tryAcquireNanos(long arg, long nanosTimeout) throws InterruptedException { ! if (Thread.interrupted()) ! throw new InterruptedException(); ! return tryAcquire(arg) || ! doAcquireNanos(arg, nanosTimeout); } /** *************** public abstract class AbstractQueuedLong *** 971,980 **** * @throws InterruptedException if the current thread is interrupted */ public final boolean tryAcquireSharedNanos(long arg, long nanosTimeout) throws InterruptedException { ! if (Thread.interrupted()) ! throw new InterruptedException(); ! return tryAcquireShared(arg) >= 0 || ! doAcquireSharedNanos(arg, nanosTimeout); } /** --- 971,980 ---- * @throws InterruptedException if the current thread is interrupted */ public final boolean tryAcquireSharedNanos(long arg, long nanosTimeout) throws InterruptedException { ! if (Thread.interrupted()) ! throw new InterruptedException(); ! return tryAcquireShared(arg) >= 0 || ! doAcquireSharedNanos(arg, nanosTimeout); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractQueuedSync *** 1119,1128 **** * @throws InterruptedException if the current thread is interrupted */ public final boolean tryAcquireNanos(int arg, long nanosTimeout) throws InterruptedException { ! if (Thread.interrupted()) ! throw new InterruptedException(); ! return tryAcquire(arg) || ! doAcquireNanos(arg, nanosTimeout); } /** --- 1119,1128 ---- * @throws InterruptedException if the current thread is interrupted */ public final boolean tryAcquireNanos(int arg, long nanosTimeout) throws InterruptedException { ! if (Thread.interrupted()) ! throw new InterruptedException(); ! return tryAcquire(arg) || ! doAcquireNanos(arg, nanosTimeout); } /** *************** public abstract class AbstractQueuedSync *** 1198,1207 **** * @throws InterruptedException if the current thread is interrupted */ public final boolean tryAcquireSharedNanos(int arg, long nanosTimeout) throws InterruptedException { ! if (Thread.interrupted()) ! throw new InterruptedException(); ! return tryAcquireShared(arg) >= 0 || ! doAcquireSharedNanos(arg, nanosTimeout); } /** --- 1198,1207 ---- * @throws InterruptedException if the current thread is interrupted */ public final boolean tryAcquireSharedNanos(int arg, long nanosTimeout) throws InterruptedException { ! if (Thread.interrupted()) ! throw new InterruptedException(); ! return tryAcquireShared(arg) >= 0 || ! doAcquireSharedNanos(arg, nanosTimeout); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java *** gcc-4.5.2/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java Thu Aug 10 00:39:15 2006 --- gcc-4.6.0/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java Tue Jan 11 19:46:05 2011 *************** public class ReentrantReadWriteLock impl *** 746,752 **** /** * Throws {@code UnsupportedOperationException} because ! * {@code ReadLocks} do not support conditions. * * @throws UnsupportedOperationException always */ --- 746,752 ---- /** * Throws {@code UnsupportedOperationException} because ! * {@code ReadLocks} do not support conditions. * * @throws UnsupportedOperationException always */ *************** public class ReentrantReadWriteLock impl *** 773,779 **** */ public static class WriteLock implements Lock, java.io.Serializable { private static final long serialVersionUID = -4992448646407690164L; ! private final Sync sync; /** * Constructor for use by subclasses --- 773,779 ---- */ public static class WriteLock implements Lock, java.io.Serializable { private static final long serialVersionUID = -4992448646407690164L; ! private final Sync sync; /** * Constructor for use by subclasses *************** public class ReentrantReadWriteLock impl *** 789,795 **** * Acquires the write lock. * *

Acquires the write lock if neither the read nor write lock ! * are held by another thread * and returns immediately, setting the write lock hold count to * one. * --- 789,795 ---- * Acquires the write lock. * *

Acquires the write lock if neither the read nor write lock ! * are held by another thread * and returns immediately, setting the write lock hold count to * one. * *************** public class ReentrantReadWriteLock impl *** 811,817 **** * {@linkplain Thread#interrupt interrupted}. * *

Acquires the write lock if neither the read nor write lock ! * are held by another thread * and returns immediately, setting the write lock hold count to * one. * --- 811,817 ---- * {@linkplain Thread#interrupt interrupted}. * *

Acquires the write lock if neither the read nor write lock ! * are held by another thread * and returns immediately, setting the write lock hold count to * one. * *************** public class ReentrantReadWriteLock impl *** 866,872 **** * at the time of invocation. * *

Acquires the write lock if neither the read nor write lock ! * are held by another thread * and returns immediately with the value {@code true}, * setting the write lock hold count to one. Even when this lock has * been set to use a fair ordering policy, a call to --- 866,872 ---- * at the time of invocation. * *

Acquires the write lock if neither the read nor write lock ! * are held by another thread * and returns immediately with the value {@code true}, * setting the write lock hold count to one. Even when this lock has * been set to use a fair ordering policy, a call to *************** public class ReentrantReadWriteLock impl *** 900,906 **** * not been {@linkplain Thread#interrupt interrupted}. * *

Acquires the write lock if neither the read nor write lock ! * are held by another thread * and returns immediately with the value {@code true}, * setting the write lock hold count to one. If this lock has been * set to use a fair ordering policy then an available lock --- 900,906 ---- * not been {@linkplain Thread#interrupt interrupted}. * *

Acquires the write lock if neither the read nor write lock ! * are held by another thread * and returns immediately with the value {@code true}, * setting the write lock hold count to one. If this lock has been * set to use a fair ordering policy then an available lock *************** public class ReentrantReadWriteLock impl *** 1053,1084 **** "[Locked by thread " + o.getName() + "]"); } ! /** ! * Queries if this write lock is held by the current thread. ! * Identical in effect to {@link ! * ReentrantReadWriteLock#isWriteLockedByCurrentThread}. ! * ! * @return {@code true} if the current thread holds this lock and ! * {@code false} otherwise ! * @since 1.6 ! */ ! public boolean isHeldByCurrentThread() { ! return sync.isHeldExclusively(); ! } ! /** ! * Queries the number of holds on this write lock by the current ! * thread. A thread has a hold on a lock for each lock action ! * that is not matched by an unlock action. Identical in effect ! * to {@link ReentrantReadWriteLock#getWriteHoldCount}. ! * ! * @return the number of holds on this lock by the current thread, ! * or zero if this lock is not held by the current thread ! * @since 1.6 ! */ ! public int getHoldCount() { ! return sync.getWriteHoldCount(); ! } } // Instrumentation and status --- 1053,1084 ---- "[Locked by thread " + o.getName() + "]"); } ! /** ! * Queries if this write lock is held by the current thread. ! * Identical in effect to {@link ! * ReentrantReadWriteLock#isWriteLockedByCurrentThread}. ! * ! * @return {@code true} if the current thread holds this lock and ! * {@code false} otherwise ! * @since 1.6 ! */ ! public boolean isHeldByCurrentThread() { ! return sync.isHeldExclusively(); ! } ! /** ! * Queries the number of holds on this write lock by the current ! * thread. A thread has a hold on a lock for each lock action ! * that is not matched by an unlock action. Identical in effect ! * to {@link ReentrantReadWriteLock#getWriteHoldCount}. ! * ! * @return the number of holds on this lock by the current thread, ! * or zero if this lock is not held by the current thread ! * @since 1.6 ! */ ! public int getHoldCount() { ! return sync.getWriteHoldCount(); ! } } // Instrumentation and status diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/Makefile.in gcc-4.6.0/libjava/classpath/external/relaxngDatatype/Makefile.in *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr *** 39,44 **** --- 39,47 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 57,65 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 60,66 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/Datatype.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/Datatype.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/Datatype.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/Datatype.java Tue Jan 11 19:46:05 2011 *************** *** 1,237 **** ! package org.relaxng.datatype; ! ! /** ! * Datatype object. ! * ! * This object has the following functionality: ! * ! *

    ! *
  1. functionality to identify a class of character sequences. This is ! * done through the isValid method. ! * ! *
  2. functionality to produce a "value object" from a character sequence and ! * context information. ! * ! *
  3. functionality to test the equality of two value objects. ! *
! * ! * This interface also defines the createStreamingValidator method, ! * which is intended to efficiently support the validation of ! * large character sequences. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface Datatype { ! ! /** ! * Checks if the specified 'literal' matches this Datatype ! * with respect to the current context. ! * ! * @param literal ! * the lexical representation to be checked. ! * @param context ! * If this datatype is context-dependent ! * (i.e. the {@link #isContextDependent} method returns true), ! * then the caller must provide a non-null valid context object. ! * Otherwise, the caller can pass null. ! * ! * @return ! * true if the 'literal' is a member of this Datatype; ! * false if it's not a member of this Datatype. ! */ ! boolean isValid( String literal, ValidationContext context ); ! ! /** ! * Similar to the isValid method but throws an exception with diagnosis ! * in case of errors. ! * ! *

! * If the specified 'literal' is a valid lexical representation for this ! * datatype, then this method must return without throwing any exception. ! * If not, the callee must throw an exception (with diagnosis message, ! * if possible.) ! * ! *

! * The application can use this method to provide detailed error message ! * to users. This method is kept separate from the isValid method to ! * achieve higher performance during normal validation. ! * ! * @exception DatatypeException ! * If the given literal is invalid, then this exception is thrown. ! * If the callee supports error diagnosis, then the exception should ! * contain a diagnosis message. ! */ ! void checkValid( String literal, ValidationContext context ) ! throws DatatypeException; ! ! /** ! * Creates an instance of a streaming validator for this type. ! * ! *

! * By using streaming validators instead of the isValid method, ! * the caller can avoid keeping the entire string, which is ! * sometimes quite big, in memory. ! * ! * @param context ! * If this datatype is context-dependent ! * (i.e. the {@link #isContextDependent} method returns true), ! * then the caller must provide a non-null valid context object. ! * Otherwise, the caller can pass null. ! * The callee may keep a reference to this context object ! * only while the returned streaming validator is being used. ! */ ! DatatypeStreamingValidator createStreamingValidator( ValidationContext context ); ! ! /** ! * Converts lexcial value and the current context to the corresponding ! * value object. ! * ! *

! * The caller cannot generally assume that the value object is ! * a meaningful Java object. For example, the caller cannot expect ! * this method to return java.lang.Number type for ! * the "integer" type of XML Schema Part 2. ! * ! *

! * Also, the caller cannot assume that the equals method and ! * the hashCode method of the value object are consistent with ! * the semantics of the datatype. For that purpose, the sameValue ! * method and the valueHashCode method have to be used. Note that ! * this means you cannot use classes like ! * java.util.Hashtable to store the value objects. ! * ! *

! * The returned value object should be used solely for the sameValue ! * and valueHashCode methods. ! * ! * @param context ! * If this datatype is context-dependent ! * (when the {@link #isContextDependent} method returns true), ! * then the caller must provide a non-null valid context object. ! * Otherwise, the caller can pass null. ! * ! * @return null ! * when the given lexical value is not a valid lexical ! * value for this type. ! */ ! Object createValue( String literal, ValidationContext context ); ! ! /** ! * Tests the equality of two value objects which were originally ! * created by the createValue method of this object. ! * ! * The behavior is undefined if objects not created by this type ! * are passed. It is the caller's responsibility to ensure that ! * value objects belong to this type. ! * ! * @return ! * true if two value objects are considered equal according to ! * the definition of this datatype; false if otherwise. ! */ ! boolean sameValue( Object value1, Object value2 ); ! ! ! /** ! * Computes the hash code for a value object, ! * which is consistent with the sameValue method. ! * ! * @return ! * hash code for the specified value object. ! */ ! int valueHashCode( Object value ); ! ! ! ! ! /** ! * Indicates that the datatype doesn't have ID/IDREF semantics. ! * ! * This value is one of the possible return values of the ! * {@link #getIdType} method. ! */ ! public static final int ID_TYPE_NULL = 0; ! ! /** ! * Indicates that RELAX NG compatibility processors should ! * treat this datatype as having ID semantics. ! * ! * This value is one of the possible return values of the ! * {@link #getIdType} method. ! */ ! public static final int ID_TYPE_ID = 1; ! ! /** ! * Indicates that RELAX NG compatibility processors should ! * treat this datatype as having IDREF semantics. ! * ! * This value is one of the possible return values of the ! * {@link #getIdType} method. ! */ ! public static final int ID_TYPE_IDREF = 2; ! ! /** ! * Indicates that RELAX NG compatibility processors should ! * treat this datatype as having IDREFS semantics. ! * ! * This value is one of the possible return values of the ! * {@link #getIdType} method. ! */ ! public static final int ID_TYPE_IDREFS = 3; ! ! /** ! * Checks if the ID/IDREF semantics is associated with this ! * datatype. ! * ! *

! * This method is introduced to support the RELAX NG DTD ! * compatibility spec. (Of course it's always free to use ! * this method for other purposes.) ! * ! *

! * If you are implementing a datatype library and have no idea about ! * the "RELAX NG DTD compatibility" thing, just return ! * ID_TYPE_NULL is fine. ! * ! * @return ! * If this datatype doesn't have any ID/IDREF semantics, ! * it returns {@link #ID_TYPE_NULL}. If it has such a semantics ! * (for example, XSD:ID, XSD:IDREF and comp:ID type), then ! * it returns {@link #ID_TYPE_ID}, {@link #ID_TYPE_IDREF} or ! * {@link #ID_TYPE_IDREFS}. ! */ ! public int getIdType(); ! ! ! /** ! * Checks if this datatype may need a context object for ! * the validation. ! * ! *

! * The callee must return true even when the context ! * is not always necessary. (For example, the "QName" type ! * doesn't need a context object when validating unprefixed ! * string. But nonetheless QName must return true.) ! * ! *

! * XSD's string and short types ! * are examples of context-independent datatypes. ! * Its QName and ENTITY types ! * are examples of context-dependent datatypes. ! * ! *

! * When a datatype is context-independent, then ! * the {@link #isValid} method, the {@link #checkValid} method, ! * the {@link #createStreamingValidator} method and ! * the {@link #createValue} method can be called without ! * providing a context object. ! * ! * @return ! * true if this datatype is context-dependent ! * (it needs a context object sometimes); ! * ! * false if this datatype is context-independent ! * (it never needs a context object). ! */ ! public boolean isContextDependent(); ! } --- 1,237 ---- ! package org.relaxng.datatype; ! ! /** ! * Datatype object. ! * ! * This object has the following functionality: ! * ! *

    ! *
  1. functionality to identify a class of character sequences. This is ! * done through the isValid method. ! * ! *
  2. functionality to produce a "value object" from a character sequence and ! * context information. ! * ! *
  3. functionality to test the equality of two value objects. ! *
! * ! * This interface also defines the createStreamingValidator method, ! * which is intended to efficiently support the validation of ! * large character sequences. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface Datatype { ! ! /** ! * Checks if the specified 'literal' matches this Datatype ! * with respect to the current context. ! * ! * @param literal ! * the lexical representation to be checked. ! * @param context ! * If this datatype is context-dependent ! * (i.e. the {@link #isContextDependent} method returns true), ! * then the caller must provide a non-null valid context object. ! * Otherwise, the caller can pass null. ! * ! * @return ! * true if the 'literal' is a member of this Datatype; ! * false if it's not a member of this Datatype. ! */ ! boolean isValid( String literal, ValidationContext context ); ! ! /** ! * Similar to the isValid method but throws an exception with diagnosis ! * in case of errors. ! * ! *

! * If the specified 'literal' is a valid lexical representation for this ! * datatype, then this method must return without throwing any exception. ! * If not, the callee must throw an exception (with diagnosis message, ! * if possible.) ! * ! *

! * The application can use this method to provide detailed error message ! * to users. This method is kept separate from the isValid method to ! * achieve higher performance during normal validation. ! * ! * @exception DatatypeException ! * If the given literal is invalid, then this exception is thrown. ! * If the callee supports error diagnosis, then the exception should ! * contain a diagnosis message. ! */ ! void checkValid( String literal, ValidationContext context ) ! throws DatatypeException; ! ! /** ! * Creates an instance of a streaming validator for this type. ! * ! *

! * By using streaming validators instead of the isValid method, ! * the caller can avoid keeping the entire string, which is ! * sometimes quite big, in memory. ! * ! * @param context ! * If this datatype is context-dependent ! * (i.e. the {@link #isContextDependent} method returns true), ! * then the caller must provide a non-null valid context object. ! * Otherwise, the caller can pass null. ! * The callee may keep a reference to this context object ! * only while the returned streaming validator is being used. ! */ ! DatatypeStreamingValidator createStreamingValidator( ValidationContext context ); ! ! /** ! * Converts lexcial value and the current context to the corresponding ! * value object. ! * ! *

! * The caller cannot generally assume that the value object is ! * a meaningful Java object. For example, the caller cannot expect ! * this method to return java.lang.Number type for ! * the "integer" type of XML Schema Part 2. ! * ! *

! * Also, the caller cannot assume that the equals method and ! * the hashCode method of the value object are consistent with ! * the semantics of the datatype. For that purpose, the sameValue ! * method and the valueHashCode method have to be used. Note that ! * this means you cannot use classes like ! * java.util.Hashtable to store the value objects. ! * ! *

! * The returned value object should be used solely for the sameValue ! * and valueHashCode methods. ! * ! * @param context ! * If this datatype is context-dependent ! * (when the {@link #isContextDependent} method returns true), ! * then the caller must provide a non-null valid context object. ! * Otherwise, the caller can pass null. ! * ! * @return null ! * when the given lexical value is not a valid lexical ! * value for this type. ! */ ! Object createValue( String literal, ValidationContext context ); ! ! /** ! * Tests the equality of two value objects which were originally ! * created by the createValue method of this object. ! * ! * The behavior is undefined if objects not created by this type ! * are passed. It is the caller's responsibility to ensure that ! * value objects belong to this type. ! * ! * @return ! * true if two value objects are considered equal according to ! * the definition of this datatype; false if otherwise. ! */ ! boolean sameValue( Object value1, Object value2 ); ! ! ! /** ! * Computes the hash code for a value object, ! * which is consistent with the sameValue method. ! * ! * @return ! * hash code for the specified value object. ! */ ! int valueHashCode( Object value ); ! ! ! ! ! /** ! * Indicates that the datatype doesn't have ID/IDREF semantics. ! * ! * This value is one of the possible return values of the ! * {@link #getIdType} method. ! */ ! public static final int ID_TYPE_NULL = 0; ! ! /** ! * Indicates that RELAX NG compatibility processors should ! * treat this datatype as having ID semantics. ! * ! * This value is one of the possible return values of the ! * {@link #getIdType} method. ! */ ! public static final int ID_TYPE_ID = 1; ! ! /** ! * Indicates that RELAX NG compatibility processors should ! * treat this datatype as having IDREF semantics. ! * ! * This value is one of the possible return values of the ! * {@link #getIdType} method. ! */ ! public static final int ID_TYPE_IDREF = 2; ! ! /** ! * Indicates that RELAX NG compatibility processors should ! * treat this datatype as having IDREFS semantics. ! * ! * This value is one of the possible return values of the ! * {@link #getIdType} method. ! */ ! public static final int ID_TYPE_IDREFS = 3; ! ! /** ! * Checks if the ID/IDREF semantics is associated with this ! * datatype. ! * ! *

! * This method is introduced to support the RELAX NG DTD ! * compatibility spec. (Of course it's always free to use ! * this method for other purposes.) ! * ! *

! * If you are implementing a datatype library and have no idea about ! * the "RELAX NG DTD compatibility" thing, just return ! * ID_TYPE_NULL is fine. ! * ! * @return ! * If this datatype doesn't have any ID/IDREF semantics, ! * it returns {@link #ID_TYPE_NULL}. If it has such a semantics ! * (for example, XSD:ID, XSD:IDREF and comp:ID type), then ! * it returns {@link #ID_TYPE_ID}, {@link #ID_TYPE_IDREF} or ! * {@link #ID_TYPE_IDREFS}. ! */ ! public int getIdType(); ! ! ! /** ! * Checks if this datatype may need a context object for ! * the validation. ! * ! *

! * The callee must return true even when the context ! * is not always necessary. (For example, the "QName" type ! * doesn't need a context object when validating unprefixed ! * string. But nonetheless QName must return true.) ! * ! *

! * XSD's string and short types ! * are examples of context-independent datatypes. ! * Its QName and ENTITY types ! * are examples of context-dependent datatypes. ! * ! *

! * When a datatype is context-independent, then ! * the {@link #isValid} method, the {@link #checkValid} method, ! * the {@link #createStreamingValidator} method and ! * the {@link #createValue} method can be called without ! * providing a context object. ! * ! * @return ! * true if this datatype is context-dependent ! * (it needs a context object sometimes); ! * ! * false if this datatype is context-independent ! * (it never needs a context object). ! */ ! public boolean isContextDependent(); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeBuilder.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeBuilder.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeBuilder.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,45 **** ! package org.relaxng.datatype; ! ! /** ! * Creates a user-defined type by adding parameters to ! * the pre-defined type. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface DatatypeBuilder { ! ! /** ! * Adds a new parameter. ! * ! * @param name ! * The name of the parameter to be added. ! * @param strValue ! * The raw value of the parameter. Caller may not normalize ! * this value because any white space is potentially significant. ! * @param context ! * The context information which can be used by the callee to ! * acquire additional information. This context object is ! * valid only during this method call. The callee may not ! * keep a reference to this object. ! * @exception DatatypeException ! * When the given parameter is inappropriate for some reason. ! * The callee is responsible to recover from this error. ! * That is, the object should behave as if no such error ! * was occured. ! */ ! void addParameter( String name, String strValue, ValidationContext context ) ! throws DatatypeException; ! ! /** ! * Derives a new Datatype from a Datatype by parameters that ! * were already set through the addParameter method. ! * ! * @exception DatatypeException ! * DatatypeException must be thrown if the derivation is ! * somehow invalid. For example, a required parameter is missing, ! * etc. The exception should contain a diagnosis message ! * if possible. ! */ ! Datatype createDatatype() throws DatatypeException; ! } --- 1,45 ---- ! package org.relaxng.datatype; ! ! /** ! * Creates a user-defined type by adding parameters to ! * the pre-defined type. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface DatatypeBuilder { ! ! /** ! * Adds a new parameter. ! * ! * @param name ! * The name of the parameter to be added. ! * @param strValue ! * The raw value of the parameter. Caller may not normalize ! * this value because any white space is potentially significant. ! * @param context ! * The context information which can be used by the callee to ! * acquire additional information. This context object is ! * valid only during this method call. The callee may not ! * keep a reference to this object. ! * @exception DatatypeException ! * When the given parameter is inappropriate for some reason. ! * The callee is responsible to recover from this error. ! * That is, the object should behave as if no such error ! * was occured. ! */ ! void addParameter( String name, String strValue, ValidationContext context ) ! throws DatatypeException; ! ! /** ! * Derives a new Datatype from a Datatype by parameters that ! * were already set through the addParameter method. ! * ! * @exception DatatypeException ! * DatatypeException must be thrown if the derivation is ! * somehow invalid. For example, a required parameter is missing, ! * etc. The exception should contain a diagnosis message ! * if possible. ! */ ! Datatype createDatatype() throws DatatypeException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeException.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeException.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeException.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeException.java Tue Jan 11 19:46:05 2011 *************** *** 1,39 **** ! package org.relaxng.datatype; ! ! /** ! * Signals Datatype related exceptions. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public class DatatypeException extends Exception { ! ! public DatatypeException( int index, String msg ) { ! super(msg); ! this.index = index; ! } ! public DatatypeException( String msg ) { ! this(UNKNOWN,msg); ! } ! /** ! * A constructor for those datatype libraries which don't support any ! * diagnostic information at all. ! */ ! public DatatypeException() { ! this(UNKNOWN,null); ! } ! ! ! private final int index; ! ! public static final int UNKNOWN = -1; ! ! /** ! * Gets the index of the content where the error occured. ! * UNKNOWN can be returned to indicate that no index information ! * is available. ! */ ! public int getIndex() { ! return index; ! } ! } --- 1,39 ---- ! package org.relaxng.datatype; ! ! /** ! * Signals Datatype related exceptions. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public class DatatypeException extends Exception { ! ! public DatatypeException( int index, String msg ) { ! super(msg); ! this.index = index; ! } ! public DatatypeException( String msg ) { ! this(UNKNOWN,msg); ! } ! /** ! * A constructor for those datatype libraries which don't support any ! * diagnostic information at all. ! */ ! public DatatypeException() { ! this(UNKNOWN,null); ! } ! ! ! private final int index; ! ! public static final int UNKNOWN = -1; ! ! /** ! * Gets the index of the content where the error occured. ! * UNKNOWN can be returned to indicate that no index information ! * is available. ! */ ! public int getIndex() { ! return index; ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeLibrary.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeLibrary.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeLibrary.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeLibrary.java Tue Jan 11 19:46:05 2011 *************** *** 1,37 **** ! package org.relaxng.datatype; ! ! /** ! * A Datatype library ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface DatatypeLibrary { ! ! /** ! * Creates a new instance of DatatypeBuilder. ! * ! * The callee should throw a DatatypeException in case of an error. ! * ! * @param baseTypeLocalName ! * The local name of the base type. ! * ! * @return ! * A non-null valid datatype object. ! */ ! DatatypeBuilder createDatatypeBuilder( String baseTypeLocalName ) ! throws DatatypeException; ! ! /** ! * Gets or creates a pre-defined type. ! * ! * This is just a short-cut of ! * createDatatypeBuilder(typeLocalName).createDatatype(); ! * ! * The callee should throw a DatatypeException in case of an error. ! * ! * @return ! * A non-null valid datatype object. ! */ ! Datatype createDatatype( String typeLocalName ) throws DatatypeException; ! } --- 1,37 ---- ! package org.relaxng.datatype; ! ! /** ! * A Datatype library ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface DatatypeLibrary { ! ! /** ! * Creates a new instance of DatatypeBuilder. ! * ! * The callee should throw a DatatypeException in case of an error. ! * ! * @param baseTypeLocalName ! * The local name of the base type. ! * ! * @return ! * A non-null valid datatype object. ! */ ! DatatypeBuilder createDatatypeBuilder( String baseTypeLocalName ) ! throws DatatypeException; ! ! /** ! * Gets or creates a pre-defined type. ! * ! * This is just a short-cut of ! * createDatatypeBuilder(typeLocalName).createDatatype(); ! * ! * The callee should throw a DatatypeException in case of an error. ! * ! * @return ! * A non-null valid datatype object. ! */ ! Datatype createDatatype( String typeLocalName ) throws DatatypeException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeLibraryFactory.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeLibraryFactory.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeLibraryFactory.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeLibraryFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,26 **** ! package org.relaxng.datatype; ! ! /** ! * Factory class for the DatatypeLibrary class. ! * ! *

! * The datatype library should provide the implementation of ! * this interface if it wants to be found by the schema processors. ! * The implementor also have to place a file in your jar file. ! * See the reference datatype library implementation for detail. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface DatatypeLibraryFactory ! { ! /** ! * Creates a new instance of a DatatypeLibrary that supports ! * the specified namespace URI. ! * ! * @return ! * null if the specified namespace URI is not ! * supported. ! */ ! DatatypeLibrary createDatatypeLibrary( String namespaceURI ); ! } --- 1,26 ---- ! package org.relaxng.datatype; ! ! /** ! * Factory class for the DatatypeLibrary class. ! * ! *

! * The datatype library should provide the implementation of ! * this interface if it wants to be found by the schema processors. ! * The implementor also have to place a file in your jar file. ! * See the reference datatype library implementation for detail. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface DatatypeLibraryFactory ! { ! /** ! * Creates a new instance of a DatatypeLibrary that supports ! * the specified namespace URI. ! * ! * @return ! * null if the specified namespace URI is not ! * supported. ! */ ! DatatypeLibrary createDatatypeLibrary( String namespaceURI ); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeStreamingValidator.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeStreamingValidator.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeStreamingValidator.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/DatatypeStreamingValidator.java Tue Jan 11 19:46:05 2011 *************** *** 1,46 **** ! package org.relaxng.datatype; ! ! /** ! * Datatype streaming validator. ! * ! *

! * The streaming validator is an optional feature that is useful for ! * certain Datatypes. It allows the caller to incrementally provide ! * the literal. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface DatatypeStreamingValidator { ! ! /** ! * Passes an additional fragment of the literal. ! * ! *

! * The application can call this method several times, then call ! * the isValid method (or the checkValid method) to check the validity ! * of the accumulated characters. ! */ ! void addCharacters( char[] buf, int start, int len ); ! ! /** ! * Tells if the accumulated literal is valid with respect to ! * the underlying Datatype. ! * ! * @return ! * True if it is valid. False if otherwise. ! */ ! boolean isValid(); ! ! /** ! * Similar to the isValid method, but this method throws ! * Exception (with possibly diagnostic information), instead of ! * returning false. ! * ! * @exception DatatypeException ! * If the callee supports the diagnosis and the accumulated ! * literal is invalid, then this exception that possibly ! * contains diagnosis information is thrown. ! */ ! void checkValid() throws DatatypeException; ! } --- 1,46 ---- ! package org.relaxng.datatype; ! ! /** ! * Datatype streaming validator. ! * ! *

! * The streaming validator is an optional feature that is useful for ! * certain Datatypes. It allows the caller to incrementally provide ! * the literal. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface DatatypeStreamingValidator { ! ! /** ! * Passes an additional fragment of the literal. ! * ! *

! * The application can call this method several times, then call ! * the isValid method (or the checkValid method) to check the validity ! * of the accumulated characters. ! */ ! void addCharacters( char[] buf, int start, int len ); ! ! /** ! * Tells if the accumulated literal is valid with respect to ! * the underlying Datatype. ! * ! * @return ! * True if it is valid. False if otherwise. ! */ ! boolean isValid(); ! ! /** ! * Similar to the isValid method, but this method throws ! * Exception (with possibly diagnostic information), instead of ! * returning false. ! * ! * @exception DatatypeException ! * If the callee supports the diagnosis and the accumulated ! * literal is invalid, then this exception that possibly ! * contains diagnosis information is thrown. ! */ ! void checkValid() throws DatatypeException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/ValidationContext.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/ValidationContext.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/ValidationContext.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/ValidationContext.java Tue Jan 11 19:46:05 2011 *************** *** 1,66 **** ! package org.relaxng.datatype; ! ! /** ! * An interface that must be implemented by caller to ! * provide context information that is necessary to ! * perform validation of some Datatypes. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface ValidationContext { ! ! /** ! * Resolves a namespace prefix to the corresponding namespace URI. ! * ! * This method is used for validating the QName type, for example. ! * ! *

! * If the prefix is "" (empty string), it indicates ! * an unprefixed value. The callee ! * should resolve it as for an unprefixed ! * element, rather than for an unprefixed attribute. ! * ! *

! * If the prefix is "xml", then the callee must resolve ! * this prefix into "http://www.w3.org/XML/1998/namespace", ! * as defined in the XML Namespaces Recommendation. ! * ! * @return ! * namespace URI of this prefix. ! * If the specified prefix is not declared, ! * the implementation must return null. ! */ ! String resolveNamespacePrefix( String prefix ); ! ! /** ! * Returns the base URI of the context. The null string may be returned ! * if no base URI is known. ! */ ! String getBaseUri(); ! ! /** ! * Checks if an unparsed entity is declared with the ! * specified name. ! * ! * @return ! * true ! * if the DTD has an unparsed entity declaration for ! * the specified name. ! * false ! * otherwise. ! */ ! boolean isUnparsedEntity( String entityName ); ! ! /** ! * Checks if a notation is declared with the ! * specified name. ! * ! * @return ! * true ! * if the DTD has a notation declaration for the specified name. ! * false ! * otherwise. ! */ ! boolean isNotation( String notationName ); ! } --- 1,66 ---- ! package org.relaxng.datatype; ! ! /** ! * An interface that must be implemented by caller to ! * provide context information that is necessary to ! * perform validation of some Datatypes. ! * ! * @author James Clark ! * @author Kohsuke KAWAGUCHI ! */ ! public interface ValidationContext { ! ! /** ! * Resolves a namespace prefix to the corresponding namespace URI. ! * ! * This method is used for validating the QName type, for example. ! * ! *

! * If the prefix is "" (empty string), it indicates ! * an unprefixed value. The callee ! * should resolve it as for an unprefixed ! * element, rather than for an unprefixed attribute. ! * ! *

! * If the prefix is "xml", then the callee must resolve ! * this prefix into "http://www.w3.org/XML/1998/namespace", ! * as defined in the XML Namespaces Recommendation. ! * ! * @return ! * namespace URI of this prefix. ! * If the specified prefix is not declared, ! * the implementation must return null. ! */ ! String resolveNamespacePrefix( String prefix ); ! ! /** ! * Returns the base URI of the context. The null string may be returned ! * if no base URI is known. ! */ ! String getBaseUri(); ! ! /** ! * Checks if an unparsed entity is declared with the ! * specified name. ! * ! * @return ! * true ! * if the DTD has an unparsed entity declaration for ! * the specified name. ! * false ! * otherwise. ! */ ! boolean isUnparsedEntity( String entityName ); ! ! /** ! * Checks if a notation is declared with the ! * specified name. ! * ! * @return ! * true ! * if the DTD has a notation declaration for the specified name. ! * false ! * otherwise. ! */ ! boolean isNotation( String notationName ); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java Tue Jan 11 19:46:05 2011 *************** *** 1,262 **** ! /** ! * Copyright (c) 2001, Thai Open Source Software Center Ltd ! * All rights reserved. ! * ! * Redistribution and use in source and binary forms, with or without ! * modification, are permitted provided that the following conditions are ! * met: ! * ! * Redistributions of source code must retain the above copyright ! * notice, this list of conditions and the following disclaimer. ! * ! * Redistributions in binary form must reproduce the above copyright ! * notice, this list of conditions and the following disclaimer in ! * the documentation and/or other materials provided with the ! * distribution. ! * ! * Neither the name of the Thai Open Source Software Center Ltd nor ! * the names of its contributors may be used to endorse or promote ! * products derived from this software without specific prior written ! * permission. ! * ! * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ! * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ! * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ! * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR ! * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ! * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ! * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ! * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ! * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ! * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! */ ! package org.relaxng.datatype.helpers; ! ! import org.relaxng.datatype.DatatypeLibraryFactory; ! import org.relaxng.datatype.DatatypeLibrary; ! import java.util.Enumeration; ! import java.util.NoSuchElementException; ! import java.util.Vector; ! import java.io.Reader; ! import java.io.InputStream; ! import java.io.InputStreamReader; ! import java.io.BufferedReader; ! import java.io.IOException; ! import java.io.UnsupportedEncodingException; ! import java.net.URL; ! ! /** ! * Discovers the datatype library implementation from the classpath. ! * ! *

! * The call of the createDatatypeLibrary method finds an implementation ! * from a given datatype library URI at run-time. ! */ ! public class DatatypeLibraryLoader implements DatatypeLibraryFactory { ! private final Service service = new Service(DatatypeLibraryFactory.class); ! ! public DatatypeLibrary createDatatypeLibrary(String uri) { ! for (Enumeration e = service.getProviders(); ! e.hasMoreElements();) { ! DatatypeLibraryFactory factory ! = (DatatypeLibraryFactory)e.nextElement(); ! DatatypeLibrary library = factory.createDatatypeLibrary(uri); ! if (library != null) ! return library; ! } ! return null; ! } ! ! private static class Service { ! private final Class serviceClass; ! private final Enumeration configFiles; ! private Enumeration classNames = null; ! private final Vector providers = new Vector(); ! private Loader loader; ! ! private class ProviderEnumeration implements Enumeration { ! private int nextIndex = 0; ! ! public boolean hasMoreElements() { ! return nextIndex < providers.size() || moreProviders(); ! } ! ! public Object nextElement() { ! try { ! return providers.elementAt(nextIndex++); ! } ! catch (ArrayIndexOutOfBoundsException e) { ! throw new NoSuchElementException(); ! } ! } ! } ! ! private static class Singleton implements Enumeration { ! private Object obj; ! private Singleton(Object obj) { ! this.obj = obj; ! } ! ! public boolean hasMoreElements() { ! return obj != null; ! } ! ! public Object nextElement() { ! if (obj == null) ! throw new NoSuchElementException(); ! Object tem = obj; ! obj = null; ! return tem; ! } ! } ! ! // JDK 1.1 ! private static class Loader { ! Enumeration getResources(String resName) { ! ClassLoader cl = Loader.class.getClassLoader(); ! URL url; ! if (cl == null) ! url = ClassLoader.getSystemResource(resName); ! else ! url = cl.getResource(resName); ! return new Singleton(url); ! } ! ! Class loadClass(String name) throws ClassNotFoundException { ! return Class.forName(name); ! } ! } ! ! // JDK 1.2+ ! private static class Loader2 extends Loader { ! private ClassLoader cl; ! ! Loader2() { ! cl = Loader2.class.getClassLoader(); ! // If the thread context class loader has the class loader ! // of this class as an ancestor, use the thread context class ! // loader. Otherwise, the thread context class loader ! // probably hasn't been set up properly, so don't use it. ! ClassLoader clt = Thread.currentThread().getContextClassLoader(); ! for (ClassLoader tem = clt; tem != null; tem = tem.getParent()) ! if (tem == cl) { ! cl = clt; ! break; ! } ! } ! ! Enumeration getResources(String resName) { ! try { ! return cl.getResources(resName); ! } ! catch (IOException e) { ! return new Singleton(null); ! } ! } ! ! Class loadClass(String name) throws ClassNotFoundException { ! return Class.forName(name, true, cl); ! } ! } ! ! public Service(Class cls) { ! try { ! loader = new Loader2(); ! } ! catch (NoSuchMethodError e) { ! loader = new Loader(); ! } ! serviceClass = cls; ! String resName = "META-INF/services/" + serviceClass.getName(); ! configFiles = loader.getResources(resName); ! } ! ! public Enumeration getProviders() { ! return new ProviderEnumeration(); ! } ! ! synchronized private boolean moreProviders() { ! for (;;) { ! while (classNames == null) { ! if (!configFiles.hasMoreElements()) ! return false; ! classNames = parseConfigFile((URL)configFiles.nextElement()); ! } ! while (classNames.hasMoreElements()) { ! String className = (String)classNames.nextElement(); ! try { ! Class cls = loader.loadClass(className); ! Object obj = cls.newInstance(); ! if (serviceClass.isInstance(obj)) { ! providers.addElement(obj); ! return true; ! } ! } ! catch (ClassNotFoundException e) { } ! catch (InstantiationException e) { } ! catch (IllegalAccessException e) { } ! catch (LinkageError e) { } ! } ! classNames = null; ! } ! } ! ! private static final int START = 0; ! private static final int IN_NAME = 1; ! private static final int IN_COMMENT = 2; ! ! private static Enumeration parseConfigFile(URL url) { ! try { ! InputStream in = url.openStream(); ! Reader r; ! try { ! r = new InputStreamReader(in, "UTF-8"); ! } ! catch (UnsupportedEncodingException e) { ! r = new InputStreamReader(in, "UTF8"); ! } ! r = new BufferedReader(r); ! Vector tokens = new Vector(); ! StringBuffer tokenBuf = new StringBuffer(); ! int state = START; ! for (;;) { ! int n = r.read(); ! if (n < 0) ! break; ! char c = (char)n; ! switch (c) { ! case '\r': ! case '\n': ! state = START; ! break; ! case ' ': ! case '\t': ! break; ! case '#': ! state = IN_COMMENT; ! break; ! default: ! if (state != IN_COMMENT) { ! state = IN_NAME; ! tokenBuf.append(c); ! } ! break; ! } ! if (tokenBuf.length() != 0 && state != IN_NAME) { ! tokens.addElement(tokenBuf.toString()); ! tokenBuf.setLength(0); ! } ! } ! if (tokenBuf.length() != 0) ! tokens.addElement(tokenBuf.toString()); ! return tokens.elements(); ! } ! catch (IOException e) { ! return null; ! } ! } ! } ! ! } ! --- 1,261 ---- ! /** ! * Copyright (c) 2001, Thai Open Source Software Center Ltd ! * All rights reserved. ! * ! * Redistribution and use in source and binary forms, with or without ! * modification, are permitted provided that the following conditions are ! * met: ! * ! * Redistributions of source code must retain the above copyright ! * notice, this list of conditions and the following disclaimer. ! * ! * Redistributions in binary form must reproduce the above copyright ! * notice, this list of conditions and the following disclaimer in ! * the documentation and/or other materials provided with the ! * distribution. ! * ! * Neither the name of the Thai Open Source Software Center Ltd nor ! * the names of its contributors may be used to endorse or promote ! * products derived from this software without specific prior written ! * permission. ! * ! * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ! * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ! * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ! * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR ! * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ! * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ! * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ! * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ! * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ! * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! */ ! package org.relaxng.datatype.helpers; ! ! import org.relaxng.datatype.DatatypeLibraryFactory; ! import org.relaxng.datatype.DatatypeLibrary; ! import java.util.Enumeration; ! import java.util.NoSuchElementException; ! import java.util.Vector; ! import java.io.Reader; ! import java.io.InputStream; ! import java.io.InputStreamReader; ! import java.io.BufferedReader; ! import java.io.IOException; ! import java.io.UnsupportedEncodingException; ! import java.net.URL; ! ! /** ! * Discovers the datatype library implementation from the classpath. ! * ! *

! * The call of the createDatatypeLibrary method finds an implementation ! * from a given datatype library URI at run-time. ! */ ! public class DatatypeLibraryLoader implements DatatypeLibraryFactory { ! private final Service service = new Service(DatatypeLibraryFactory.class); ! ! public DatatypeLibrary createDatatypeLibrary(String uri) { ! for (Enumeration e = service.getProviders(); ! e.hasMoreElements();) { ! DatatypeLibraryFactory factory ! = (DatatypeLibraryFactory)e.nextElement(); ! DatatypeLibrary library = factory.createDatatypeLibrary(uri); ! if (library != null) ! return library; ! } ! return null; ! } ! ! private static class Service { ! private final Class serviceClass; ! private final Enumeration configFiles; ! private Enumeration classNames = null; ! private final Vector providers = new Vector(); ! private Loader loader; ! ! private class ProviderEnumeration implements Enumeration { ! private int nextIndex = 0; ! ! public boolean hasMoreElements() { ! return nextIndex < providers.size() || moreProviders(); ! } ! ! public Object nextElement() { ! try { ! return providers.elementAt(nextIndex++); ! } ! catch (ArrayIndexOutOfBoundsException e) { ! throw new NoSuchElementException(); ! } ! } ! } ! ! private static class Singleton implements Enumeration { ! private Object obj; ! private Singleton(Object obj) { ! this.obj = obj; ! } ! ! public boolean hasMoreElements() { ! return obj != null; ! } ! ! public Object nextElement() { ! if (obj == null) ! throw new NoSuchElementException(); ! Object tem = obj; ! obj = null; ! return tem; ! } ! } ! ! // JDK 1.1 ! private static class Loader { ! Enumeration getResources(String resName) { ! ClassLoader cl = Loader.class.getClassLoader(); ! URL url; ! if (cl == null) ! url = ClassLoader.getSystemResource(resName); ! else ! url = cl.getResource(resName); ! return new Singleton(url); ! } ! ! Class loadClass(String name) throws ClassNotFoundException { ! return Class.forName(name); ! } ! } ! ! // JDK 1.2+ ! private static class Loader2 extends Loader { ! private ClassLoader cl; ! ! Loader2() { ! cl = Loader2.class.getClassLoader(); ! // If the thread context class loader has the class loader ! // of this class as an ancestor, use the thread context class ! // loader. Otherwise, the thread context class loader ! // probably hasn't been set up properly, so don't use it. ! ClassLoader clt = Thread.currentThread().getContextClassLoader(); ! for (ClassLoader tem = clt; tem != null; tem = tem.getParent()) ! if (tem == cl) { ! cl = clt; ! break; ! } ! } ! ! Enumeration getResources(String resName) { ! try { ! return cl.getResources(resName); ! } ! catch (IOException e) { ! return new Singleton(null); ! } ! } ! ! Class loadClass(String name) throws ClassNotFoundException { ! return Class.forName(name, true, cl); ! } ! } ! ! public Service(Class cls) { ! try { ! loader = new Loader2(); ! } ! catch (NoSuchMethodError e) { ! loader = new Loader(); ! } ! serviceClass = cls; ! String resName = "META-INF/services/" + serviceClass.getName(); ! configFiles = loader.getResources(resName); ! } ! ! public Enumeration getProviders() { ! return new ProviderEnumeration(); ! } ! ! synchronized private boolean moreProviders() { ! for (;;) { ! while (classNames == null) { ! if (!configFiles.hasMoreElements()) ! return false; ! classNames = parseConfigFile((URL)configFiles.nextElement()); ! } ! while (classNames.hasMoreElements()) { ! String className = (String)classNames.nextElement(); ! try { ! Class cls = loader.loadClass(className); ! Object obj = cls.newInstance(); ! if (serviceClass.isInstance(obj)) { ! providers.addElement(obj); ! return true; ! } ! } ! catch (ClassNotFoundException e) { } ! catch (InstantiationException e) { } ! catch (IllegalAccessException e) { } ! catch (LinkageError e) { } ! } ! classNames = null; ! } ! } ! ! private static final int START = 0; ! private static final int IN_NAME = 1; ! private static final int IN_COMMENT = 2; ! ! private static Enumeration parseConfigFile(URL url) { ! try { ! InputStream in = url.openStream(); ! Reader r; ! try { ! r = new InputStreamReader(in, "UTF-8"); ! } ! catch (UnsupportedEncodingException e) { ! r = new InputStreamReader(in, "UTF8"); ! } ! r = new BufferedReader(r); ! Vector tokens = new Vector(); ! StringBuffer tokenBuf = new StringBuffer(); ! int state = START; ! for (;;) { ! int n = r.read(); ! if (n < 0) ! break; ! char c = (char)n; ! switch (c) { ! case '\r': ! case '\n': ! state = START; ! break; ! case ' ': ! case '\t': ! break; ! case '#': ! state = IN_COMMENT; ! break; ! default: ! if (state != IN_COMMENT) { ! state = IN_NAME; ! tokenBuf.append(c); ! } ! break; ! } ! if (tokenBuf.length() != 0 && state != IN_NAME) { ! tokens.addElement(tokenBuf.toString()); ! tokenBuf.setLength(0); ! } ! } ! if (tokenBuf.length() != 0) ! tokens.addElement(tokenBuf.toString()); ! return tokens.elements(); ! } ! catch (IOException e) { ! return null; ! } ! } ! } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,42 **** ! package org.relaxng.datatype.helpers; ! ! import org.relaxng.datatype.*; ! ! /** ! * Dummy implementation of {@link DatatypeBuilder}. ! * ! * This implementation can be used for Datatypes which have no parameters. ! * Any attempt to add parameters will be rejected. ! * ! *

! * Typical usage would be: ! *


!  * class MyDatatypeLibrary implements DatatypeLibrary {
!  *     ....
!  *     DatatypeBuilder createDatatypeBuilder( String typeName ) {
!  *         return new ParameterleessDatatypeBuilder(createDatatype(typeName));
!  *     }
!  *     ....
!  * }
!  * 
! * ! * @author Kohsuke KAWAGUCHI ! */ ! public final class ParameterlessDatatypeBuilder implements DatatypeBuilder { ! ! /** This type object is returned for the derive method. */ ! private final Datatype baseType; ! ! public ParameterlessDatatypeBuilder( Datatype baseType ) { ! this.baseType = baseType; ! } ! ! public void addParameter( String name, String strValue, ValidationContext context ) ! throws DatatypeException { ! throw new DatatypeException(); ! } ! ! public Datatype createDatatype() throws DatatypeException { ! return baseType; ! } ! } --- 1,42 ---- ! package org.relaxng.datatype.helpers; ! ! import org.relaxng.datatype.*; ! ! /** ! * Dummy implementation of {@link DatatypeBuilder}. ! * ! * This implementation can be used for Datatypes which have no parameters. ! * Any attempt to add parameters will be rejected. ! * ! *

! * Typical usage would be: ! *


!  * class MyDatatypeLibrary implements DatatypeLibrary {
!  *     ....
!  *     DatatypeBuilder createDatatypeBuilder( String typeName ) {
!  *         return new ParameterleessDatatypeBuilder(createDatatype(typeName));
!  *     }
!  *     ....
!  * }
!  * 
! * ! * @author Kohsuke KAWAGUCHI ! */ ! public final class ParameterlessDatatypeBuilder implements DatatypeBuilder { ! ! /** This type object is returned for the derive method. */ ! private final Datatype baseType; ! ! public ParameterlessDatatypeBuilder( Datatype baseType ) { ! this.baseType = baseType; ! } ! ! public void addParameter( String name, String strValue, ValidationContext context ) ! throws DatatypeException { ! throw new DatatypeException(); ! } ! ! public Datatype createDatatype() throws DatatypeException { ! return baseType; ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java *** gcc-4.5.2/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,55 **** ! package org.relaxng.datatype.helpers; ! ! import org.relaxng.datatype.*; ! ! /** ! * Dummy implementation of {@link DatatypeStreamingValidator}. ! * ! *

! * This implementation can be used as a quick hack when the performance ! * of streaming validation is not important. And this implementation ! * also shows you how to implement the DatatypeStreamingValidator interface. ! * ! *

! * Typical usage would be: ! *


!  * class MyDatatype implements Datatype {
!  *     ....
!  *     public DatatypeStreamingValidator createStreamingValidator( ValidationContext context ) {
!  *         return new StreamingValidatorImpl(this,context);
!  *     }
!  *     ....
!  * }
!  * 
! * ! * @author Kohsuke KAWAGUCHI ! */ ! public final class StreamingValidatorImpl implements DatatypeStreamingValidator { ! ! /** This buffer accumulates characters. */ ! private final StringBuffer buffer = new StringBuffer(); ! ! /** Datatype obejct that creates this streaming validator. */ ! private final Datatype baseType; ! ! /** The current context. */ ! private final ValidationContext context; ! ! public void addCharacters( char[] buf, int start, int len ) { ! // append characters to the current buffer. ! buffer.append(buf,start,len); ! } ! ! public boolean isValid() { ! return baseType.isValid(buffer.toString(),context); ! } ! ! public void checkValid() throws DatatypeException { ! baseType.checkValid(buffer.toString(),context); ! } ! ! public StreamingValidatorImpl( Datatype baseType, ValidationContext context ) { ! this.baseType = baseType; ! this.context = context; ! } ! } --- 1,55 ---- ! package org.relaxng.datatype.helpers; ! ! import org.relaxng.datatype.*; ! ! /** ! * Dummy implementation of {@link DatatypeStreamingValidator}. ! * ! *

! * This implementation can be used as a quick hack when the performance ! * of streaming validation is not important. And this implementation ! * also shows you how to implement the DatatypeStreamingValidator interface. ! * ! *

! * Typical usage would be: ! *


!  * class MyDatatype implements Datatype {
!  *     ....
!  *     public DatatypeStreamingValidator createStreamingValidator( ValidationContext context ) {
!  *         return new StreamingValidatorImpl(this,context);
!  *     }
!  *     ....
!  * }
!  * 
! * ! * @author Kohsuke KAWAGUCHI ! */ ! public final class StreamingValidatorImpl implements DatatypeStreamingValidator { ! ! /** This buffer accumulates characters. */ ! private final StringBuffer buffer = new StringBuffer(); ! ! /** Datatype obejct that creates this streaming validator. */ ! private final Datatype baseType; ! ! /** The current context. */ ! private final ValidationContext context; ! ! public void addCharacters( char[] buf, int start, int len ) { ! // append characters to the current buffer. ! buffer.append(buf,start,len); ! } ! ! public boolean isValid() { ! return baseType.isValid(buffer.toString(),context); ! } ! ! public void checkValid() throws DatatypeException { ! baseType.checkValid(buffer.toString(),context); ! } ! ! public StreamingValidatorImpl( Datatype baseType, ValidationContext context ) { ! this.baseType = baseType; ! this.context = context; ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/Makefile.in gcc-4.6.0/libjava/classpath/external/sax/Makefile.in *** gcc-4.5.2/libjava/classpath/external/sax/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/external/sax/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = README $(srcdir)/Makefile. *** 39,44 **** --- 39,47 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 57,65 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 60,66 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/AttributeList.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/AttributeList.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/AttributeList.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/AttributeList.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 71,81 **** */ public interface AttributeList { ! //////////////////////////////////////////////////////////////////// // Iteration methods. //////////////////////////////////////////////////////////////////// ! /** * Return the number of attributes in this list. --- 71,81 ---- */ public interface AttributeList { ! //////////////////////////////////////////////////////////////////// // Iteration methods. //////////////////////////////////////////////////////////////////// ! /** * Return the number of attributes in this list. *************** public interface AttributeList { *** 85,95 **** * declared or specified. The number of attributes may be * zero.

* ! * @return The number of attributes in the list. */ public abstract int getLength (); ! ! /** * Return the name of an attribute in this list (by position). * --- 85,95 ---- * declared or specified. The number of attributes may be * zero.

* ! * @return The number of attributes in the list. */ public abstract int getLength (); ! ! /** * Return the name of an attribute in this list (by position). * *************** public interface AttributeList { *** 104,114 **** * @param i The index of the attribute in the list (starting at 0). * @return The name of the indexed attribute, or null * if the index is out of range. ! * @see #getLength */ public abstract String getName (int i); ! ! /** * Return the type of an attribute in the list (by position). * --- 104,114 ---- * @param i The index of the attribute in the list (starting at 0). * @return The name of the indexed attribute, or null * if the index is out of range. ! * @see #getLength */ public abstract String getName (int i); ! ! /** * Return the type of an attribute in the list (by position). * *************** public interface AttributeList { *** 127,138 **** * @param i The index of the attribute in the list (starting at 0). * @return The attribute type as a string, or * null if the index is out of range. ! * @see #getLength * @see #getType(java.lang.String) */ public abstract String getType (int i); ! ! /** * Return the value of an attribute in the list (by position). * --- 127,138 ---- * @param i The index of the attribute in the list (starting at 0). * @return The attribute type as a string, or * null if the index is out of range. ! * @see #getLength * @see #getType(java.lang.String) */ public abstract String getType (int i); ! ! /** * Return the value of an attribute in the list (by position). * *************** public interface AttributeList { *** 149,160 **** public abstract String getValue (int i); ! //////////////////////////////////////////////////////////////////// // Lookup methods. //////////////////////////////////////////////////////////////////// ! ! /** * Return the type of an attribute in the list (by name). * --- 149,160 ---- public abstract String getValue (int i); ! //////////////////////////////////////////////////////////////////// // Lookup methods. //////////////////////////////////////////////////////////////////// ! ! /** * Return the type of an attribute in the list (by name). * *************** public interface AttributeList { *** 170,177 **** * @see #getType(int) */ public abstract String getType (String name); ! ! /** * Return the value of an attribute in the list (by name). * --- 170,177 ---- * @see #getType(int) */ public abstract String getType (String name); ! ! /** * Return the value of an attribute in the list (by name). * *************** public interface AttributeList { *** 187,193 **** * @see #getValue(int) */ public abstract String getValue (String name); ! } // end of AttributeList.java --- 187,193 ---- * @see #getValue(int) */ public abstract String getValue (String name); ! } // end of AttributeList.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/Attributes.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/Attributes.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/Attributes.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/Attributes.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 29,36 **** *

The list will not contain attributes that were declared * #IMPLIED but not specified in the start tag. It will also not * contain attributes used as Namespace declarations (xmlns*) unless ! * the http://xml.org/sax/features/namespace-prefixes ! * feature is set to true (it is false by * default). * Because SAX2 conforms to the original "Namespaces in XML" * recommendation, it normally does not --- 29,36 ---- *

The list will not contain attributes that were declared * #IMPLIED but not specified in the start tag. It will also not * contain attributes used as Namespace declarations (xmlns*) unless ! * the http://xml.org/sax/features/namespace-prefixes ! * feature is set to true (it is false by * default). * Because SAX2 conforms to the original "Namespaces in XML" * recommendation, it normally does not *************** package org.xml.sax; *** 53,60 **** * available.

* *

This interface replaces the now-deprecated SAX1 {@link ! * org.xml.sax.AttributeList AttributeList} interface, which does not ! * contain Namespace support. In addition to Namespace support, it * adds the getIndex methods (below).

* *

The order of attributes in the list is unspecified, and will --- 53,60 ---- * available.

* *

This interface replaces the now-deprecated SAX1 {@link ! * org.xml.sax.AttributeList AttributeList} interface, which does not ! * contain Namespace support. In addition to Namespace support, it * adds the getIndex methods (below).

* *

The order of attributes in the list is unspecified, and will *************** package org.xml.sax; *** 69,75 **** public interface Attributes { ! //////////////////////////////////////////////////////////////////// // Indexed access. //////////////////////////////////////////////////////////////////// --- 69,75 ---- public interface Attributes { ! //////////////////////////////////////////////////////////////////// // Indexed access. //////////////////////////////////////////////////////////////////// *************** public interface Attributes *** 166,172 **** public abstract String getValue (int index); ! //////////////////////////////////////////////////////////////////// // Name-based query. //////////////////////////////////////////////////////////////////// --- 166,172 ---- public abstract String getValue (int index); ! //////////////////////////////////////////////////////////////////// // Name-based query. //////////////////////////////////////////////////////////////////// diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ContentHandler.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ContentHandler.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ContentHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ContentHandler.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 18,28 **** * * *

This is the main interface that most SAX applications ! * implement: if the application needs to be informed of basic parsing ! * events, it implements this interface and registers an instance with ! * the SAX parser using the {@link org.xml.sax.XMLReader#setContentHandler ! * setContentHandler} method. The parser uses the instance to report ! * basic document-related events like the start and end of elements * and character data.

* *

The order of events in this interface is very important, and --- 18,28 ---- * * *

This is the main interface that most SAX applications ! * implement: if the application needs to be informed of basic parsing ! * events, it implements this interface and registers an instance with ! * the SAX parser using the {@link org.xml.sax.XMLReader#setContentHandler ! * setContentHandler} method. The parser uses the instance to report ! * basic document-related events like the start and end of elements * and character data.

* *

The order of events in this interface is very important, and *************** package org.xml.sax; *** 36,42 **** * and for reporting skipped entities (in non-validating XML * processors).

* ! *

Implementors should note that there is also a * ContentHandler class in the java.net * package; that means that it's probably a bad idea to do

* --- 36,42 ---- * and for reporting skipped entities (in non-validating XML * processors).

* ! *

Implementors should note that there is also a * ContentHandler class in the java.net * package; that means that it's probably a bad idea to do

* *************** public interface ContentHandler *** 92,98 **** * Receive notification of the beginning of a document. * *

The SAX parser will invoke this method only once, before any ! * other event callbacks (except for {@link #setDocumentLocator * setDocumentLocator}).

* * @throws org.xml.sax.SAXException any SAX exception, possibly --- 92,98 ---- * Receive notification of the beginning of a document. * *

The SAX parser will invoke this method only once, before any ! * other event callbacks (except for {@link #setDocumentLocator * setDocumentLocator}).

* * @throws org.xml.sax.SAXException any SAX exception, possibly *************** public interface ContentHandler *** 100,106 **** * @see #endDocument */ public void startDocument () ! throws SAXException; /** --- 100,106 ---- * @see #endDocument */ public void startDocument () ! throws SAXException; /** *************** public interface ContentHandler *** 125,138 **** * @see #startDocument */ public void endDocument() ! throws SAXException; /** * Begin the scope of a prefix-URI Namespace mapping. * *

The information from this event is not necessary for ! * normal Namespace processing: the SAX XML reader will * automatically replace prefixes for element and attribute * names when the http://xml.org/sax/features/namespaces * feature is true (the default).

--- 125,138 ---- * @see #startDocument */ public void endDocument() ! throws SAXException; /** * Begin the scope of a prefix-URI Namespace mapping. * *

The information from this event is not necessary for ! * normal Namespace processing: the SAX XML reader will * automatically replace prefixes for element and attribute * names when the http://xml.org/sax/features/namespaces * feature is true (the default).

*************** public interface ContentHandler *** 147,165 **** *

Note that start/endPrefixMapping events are not * guaranteed to be properly nested relative to each other: * all startPrefixMapping events will occur immediately before the ! * corresponding {@link #startElement startElement} event, * and all {@link #endPrefixMapping endPrefixMapping} * events will occur immediately after the corresponding * {@link #endElement endElement} event, ! * but their order is not otherwise * guaranteed.

* *

There should never be start/endPrefixMapping events for the * "xml" prefix, since it is predeclared and immutable.

* * @param prefix the Namespace prefix being declared. ! * An empty string is used for the default element namespace, ! * which has no prefix. * @param uri the Namespace URI the prefix is mapped to * @throws org.xml.sax.SAXException the client may throw * an exception during processing --- 147,165 ---- *

Note that start/endPrefixMapping events are not * guaranteed to be properly nested relative to each other: * all startPrefixMapping events will occur immediately before the ! * corresponding {@link #startElement startElement} event, * and all {@link #endPrefixMapping endPrefixMapping} * events will occur immediately after the corresponding * {@link #endElement endElement} event, ! * but their order is not otherwise * guaranteed.

* *

There should never be start/endPrefixMapping events for the * "xml" prefix, since it is predeclared and immutable.

* * @param prefix the Namespace prefix being declared. ! * An empty string is used for the default element namespace, ! * which has no prefix. * @param uri the Namespace URI the prefix is mapped to * @throws org.xml.sax.SAXException the client may throw * an exception during processing *************** public interface ContentHandler *** 167,193 **** * @see #startElement */ public void startPrefixMapping (String prefix, String uri) ! throws SAXException; /** * End the scope of a prefix-URI mapping. * ! *

See {@link #startPrefixMapping startPrefixMapping} for * details. These events will always occur immediately after the ! * corresponding {@link #endElement endElement} event, but the order of * {@link #endPrefixMapping endPrefixMapping} events is not otherwise * guaranteed.

* * @param prefix the prefix that was being mapped. ! * This is the empty string when a default mapping scope ends. * @throws org.xml.sax.SAXException the client may throw * an exception during processing * @see #startPrefixMapping * @see #endElement */ public void endPrefixMapping (String prefix) ! throws SAXException; /** --- 167,193 ---- * @see #startElement */ public void startPrefixMapping (String prefix, String uri) ! throws SAXException; /** * End the scope of a prefix-URI mapping. * ! *

See {@link #startPrefixMapping startPrefixMapping} for * details. These events will always occur immediately after the ! * corresponding {@link #endElement endElement} event, but the order of * {@link #endPrefixMapping endPrefixMapping} events is not otherwise * guaranteed.

* * @param prefix the prefix that was being mapped. ! * This is the empty string when a default mapping scope ends. * @throws org.xml.sax.SAXException the client may throw * an exception during processing * @see #startPrefixMapping * @see #endElement */ public void endPrefixMapping (String prefix) ! throws SAXException; /** *************** public interface ContentHandler *** 215,221 **** * properties:

* *
    ! *
  • the Namespace URI and local name are required when * the namespaces property is true (the default), and are * optional when the namespaces property is false (if one is * specified, both must be);
  • --- 215,221 ---- * properties:

    * *
      ! *
    • the Namespace URI and local name are required when * the namespaces property is true (the default), and are * optional when the namespaces property is false (if one is * specified, both must be);
    • *************** public interface ContentHandler *** 230,236 **** * will contain attributes used for Namespace declarations * (xmlns* attributes) only if the * http://xml.org/sax/features/namespace-prefixes ! * property is true (it is false by default, and support for a * true value is optional).

      * *

      Like {@link #characters characters()}, attribute values may have --- 230,236 ---- * will contain attributes used for Namespace declarations * (xmlns* attributes) only if the * http://xml.org/sax/features/namespace-prefixes ! * property is true (it is false by default, and support for a * true value is optional).

      * *

      Like {@link #characters characters()}, attribute values may have *************** public interface ContentHandler *** 255,262 **** * @see org.xml.sax.helpers.AttributesImpl */ public void startElement (String uri, String localName, ! String qName, Attributes atts) ! throws SAXException; /** --- 255,262 ---- * @see org.xml.sax.helpers.AttributesImpl */ public void startElement (String uri, String localName, ! String qName, Attributes atts) ! throws SAXException; /** *************** public interface ContentHandler *** 264,270 **** * *

      The SAX parser will invoke this method at the end of every * element in the XML document; there will be a corresponding ! * {@link #startElement startElement} event for every endElement * event (even when the element is empty).

      * *

      For information on the names, see startElement.

      --- 264,270 ---- * *

      The SAX parser will invoke this method at the end of every * element in the XML document; there will be a corresponding ! * {@link #startElement startElement} event for every endElement * event (even when the element is empty).

      * *

      For information on the names, see startElement.

      *************** public interface ContentHandler *** 281,288 **** * wrapping another exception */ public void endElement (String uri, String localName, ! String qName) ! throws SAXException; /** --- 281,288 ---- * wrapping another exception */ public void endElement (String uri, String localName, ! String qName) ! throws SAXException; /** *************** public interface ContentHandler *** 317,323 **** * *

      Note that some parsers will report whitespace in element * content using the {@link #ignorableWhitespace ignorableWhitespace} ! * method rather than this one (validating parsers must * do so).

      * * @param ch the characters from the XML document --- 317,323 ---- * *

      Note that some parsers will report whitespace in element * content using the {@link #ignorableWhitespace ignorableWhitespace} ! * method rather than this one (validating parsers must * do so).

      * * @param ch the characters from the XML document *************** public interface ContentHandler *** 325,335 **** * @param length the number of characters to read from the array * @throws org.xml.sax.SAXException any SAX exception, possibly * wrapping another exception ! * @see #ignorableWhitespace * @see org.xml.sax.Locator */ public void characters (char ch[], int start, int length) ! throws SAXException; /** --- 325,335 ---- * @param length the number of characters to read from the array * @throws org.xml.sax.SAXException any SAX exception, possibly * wrapping another exception ! * @see #ignorableWhitespace * @see org.xml.sax.Locator */ public void characters (char ch[], int start, int length) ! throws SAXException; /** *************** public interface ContentHandler *** 358,364 **** * @see #characters */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException; /** --- 358,364 ---- * @see #characters */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException; /** *************** public interface ContentHandler *** 384,390 **** * wrapping another exception */ public void processingInstruction (String target, String data) ! throws SAXException; /** --- 384,390 ---- * wrapping another exception */ public void processingInstruction (String target, String data) ! throws SAXException; /** *************** public interface ContentHandler *** 405,411 **** * http://xml.org/sax/features/external-parameter-entities * properties.

      * ! * @param name the name of the skipped entity. If it is a * parameter entity, the name will begin with '%', and if * it is the external DTD subset, it will be the string * "[dtd]" --- 405,411 ---- * http://xml.org/sax/features/external-parameter-entities * properties.

      * ! * @param name the name of the skipped entity. If it is a * parameter entity, the name will begin with '%', and if * it is the external DTD subset, it will be the string * "[dtd]" *************** public interface ContentHandler *** 413,419 **** * wrapping another exception */ public void skippedEntity (String name) ! throws SAXException; } // end of ContentHandler.java --- 413,419 ---- * wrapping another exception */ public void skippedEntity (String name) ! throws SAXException; } // end of ContentHandler.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/DTDHandler.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/DTDHandler.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/DTDHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/DTDHandler.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 16,25 **** * * *

      If a SAX application needs information about notations and ! * unparsed entities, then the application implements this ! * interface and registers an instance with the SAX parser using ! * the parser's setDTDHandler method. The parser uses the ! * instance to report notation and unparsed entity declarations to * the application.

      * *

      Note that this interface includes only those DTD events that --- 16,25 ---- * * *

      If a SAX application needs information about notations and ! * unparsed entities, then the application implements this ! * interface and registers an instance with the SAX parser using ! * the parser's setDTDHandler method. The parser uses the ! * instance to report notation and unparsed entity declarations to * the application.

      * *

      Note that this interface includes only those DTD events that *************** package org.xml.sax; *** 35,41 **** * used, these events must also be reported before the endDTD event.) *

      * ! *

      It is up to the application to store the information for * future use (perhaps in a hash table or object tree). * If the application encounters attributes of type "NOTATION", * "ENTITY", or "ENTITIES", it can use the information that it --- 35,41 ---- * used, these events must also be reported before the endDTD event.) *

      * ! *

      It is up to the application to store the information for * future use (perhaps in a hash table or object tree). * If the application encounters attributes of type "NOTATION", * "ENTITY", or "ENTITIES", it can use the information that it *************** package org.xml.sax; *** 48,55 **** * @see org.xml.sax.XMLReader#setDTDHandler */ public interface DTDHandler { ! ! /** * Receive notification of a notation declaration event. * --- 48,55 ---- * @see org.xml.sax.XMLReader#setDTDHandler */ public interface DTDHandler { ! ! /** * Receive notification of a notation declaration event. * *************** public interface DTDHandler { *** 78,96 **** * @see org.xml.sax.Attributes */ public abstract void notationDecl (String name, ! String publicId, ! String systemId) ! throws SAXException; ! ! /** * Receive notification of an unparsed entity declaration event. * *

      Note that the notation name corresponds to a notation ! * reported by the {@link #notationDecl notationDecl} event. ! * It is up to the application to record the entity for later * reference, if necessary; ! * unparsed entities may appear as attribute values. *

      * *

      If the system identifier is a URL, the parser must resolve it --- 78,96 ---- * @see org.xml.sax.Attributes */ public abstract void notationDecl (String name, ! String publicId, ! String systemId) ! throws SAXException; ! ! /** * Receive notification of an unparsed entity declaration event. * *

      Note that the notation name corresponds to a notation ! * reported by the {@link #notationDecl notationDecl} event. ! * It is up to the application to record the entity for later * reference, if necessary; ! * unparsed entities may appear as attribute values. *

      * *

      If the system identifier is a URL, the parser must resolve it *************** public interface DTDHandler { *** 107,117 **** * @see org.xml.sax.Attributes */ public abstract void unparsedEntityDecl (String name, ! String publicId, ! String systemId, ! String notationName) ! throws SAXException; ! } // end of DTDHandler.java --- 107,117 ---- * @see org.xml.sax.Attributes */ public abstract void unparsedEntityDecl (String name, ! String publicId, ! String systemId, ! String notationName) ! throws SAXException; ! } // end of DTDHandler.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/DocumentHandler.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/DocumentHandler.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/DocumentHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/DocumentHandler.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 45,52 **** * @see org.xml.sax.HandlerBase */ public interface DocumentHandler { ! ! /** * Receive an object for locating the origin of SAX document events. * --- 45,52 ---- * @see org.xml.sax.HandlerBase */ public interface DocumentHandler { ! ! /** * Receive an object for locating the origin of SAX document events. * *************** public interface DocumentHandler { *** 73,80 **** * @see org.xml.sax.Locator */ public abstract void setDocumentLocator (Locator locator); ! ! /** * Receive notification of the beginning of a document. * --- 73,80 ---- * @see org.xml.sax.Locator */ public abstract void setDocumentLocator (Locator locator); ! ! /** * Receive notification of the beginning of a document. * *************** public interface DocumentHandler { *** 86,94 **** * wrapping another exception. */ public abstract void startDocument () ! throws SAXException; ! ! /** * Receive notification of the end of a document. * --- 86,94 ---- * wrapping another exception. */ public abstract void startDocument () ! throws SAXException; ! ! /** * Receive notification of the end of a document. * *************** public interface DocumentHandler { *** 102,110 **** * wrapping another exception. */ public abstract void endDocument () ! throws SAXException; ! ! /** * Receive notification of the beginning of an element. * --- 102,110 ---- * wrapping another exception. */ public abstract void endDocument () ! throws SAXException; ! ! /** * Receive notification of the beginning of an element. * *************** public interface DocumentHandler { *** 125,136 **** * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. * @see #endElement ! * @see org.xml.sax.AttributeList */ public abstract void startElement (String name, AttributeList atts) ! throws SAXException; ! ! /** * Receive notification of the end of an element. * --- 125,136 ---- * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. * @see #endElement ! * @see org.xml.sax.AttributeList */ public abstract void startElement (String name, AttributeList atts) ! throws SAXException; ! ! /** * Receive notification of the end of an element. * *************** public interface DocumentHandler { *** 147,155 **** * wrapping another exception. */ public abstract void endElement (String name) ! throws SAXException; ! ! /** * Receive notification of character data. * --- 147,155 ---- * wrapping another exception. */ public abstract void endElement (String name) ! throws SAXException; ! ! /** * Receive notification of character data. * *************** public interface DocumentHandler { *** 172,184 **** * @param length The number of characters to read from the array. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. ! * @see #ignorableWhitespace * @see org.xml.sax.Locator */ public abstract void characters (char ch[], int start, int length) ! throws SAXException; ! ! /** * Receive notification of ignorable whitespace in element content. * --- 172,184 ---- * @param length The number of characters to read from the array. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. ! * @see #ignorableWhitespace * @see org.xml.sax.Locator */ public abstract void characters (char ch[], int start, int length) ! throws SAXException; ! ! /** * Receive notification of ignorable whitespace in element content. * *************** public interface DocumentHandler { *** 204,212 **** * @see #characters */ public abstract void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException; ! ! /** * Receive notification of a processing instruction. * --- 204,212 ---- * @see #characters */ public abstract void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException; ! ! /** * Receive notification of a processing instruction. * *************** public interface DocumentHandler { *** 225,232 **** * wrapping another exception. */ public abstract void processingInstruction (String target, String data) ! throws SAXException; ! } // end of DocumentHandler.java --- 225,232 ---- * wrapping another exception. */ public abstract void processingInstruction (String target, String data) ! throws SAXException; ! } // end of DocumentHandler.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/EntityResolver.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/EntityResolver.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/EntityResolver.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/EntityResolver.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 67,74 **** * @see org.xml.sax.InputSource */ public interface EntityResolver { ! ! /** * Allow the application to resolve external entities. * --- 67,74 ---- * @see org.xml.sax.InputSource */ public interface EntityResolver { ! ! /** * Allow the application to resolve external entities. * *************** public interface EntityResolver { *** 111,119 **** * @see org.xml.sax.InputSource */ public abstract InputSource resolveEntity (String publicId, ! String systemId) ! throws SAXException, IOException; ! } // end of EntityResolver.java --- 111,119 ---- * @see org.xml.sax.InputSource */ public abstract InputSource resolveEntity (String publicId, ! String systemId) ! throws SAXException, IOException; ! } // end of EntityResolver.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ErrorHandler.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ErrorHandler.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ErrorHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ErrorHandler.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 29,40 **** * In order to detect validity errors, an ErrorHandler that does something * with {@link #error error()} calls must be registered.

      * ! *

      For XML processing errors, a SAX driver must use this interface ! * in preference to throwing an exception: it is up to the application ! * to decide whether to throw an exception for different types of ! * errors and warnings. Note, however, that there is no requirement that ! * the parser continue to report additional errors after a call to ! * {@link #fatalError fatalError}. In other words, a SAX driver class * may throw an exception after reporting any fatalError. * Also parsers may throw appropriate exceptions for non-XML errors. * For example, {@link XMLReader#parse XMLReader.parse()} would throw --- 29,40 ---- * In order to detect validity errors, an ErrorHandler that does something * with {@link #error error()} calls must be registered.

      * ! *

      For XML processing errors, a SAX driver must use this interface ! * in preference to throwing an exception: it is up to the application ! * to decide whether to throw an exception for different types of ! * errors and warnings. Note, however, that there is no requirement that ! * the parser continue to report additional errors after a call to ! * {@link #fatalError fatalError}. In other words, a SAX driver class * may throw an exception after reporting any fatalError. * Also parsers may throw appropriate exceptions for non-XML errors. * For example, {@link XMLReader#parse XMLReader.parse()} would throw *************** package org.xml.sax; *** 44,54 **** * @author David Megginson * @version 2.0.1+ (sax2r3pre1) * @see org.xml.sax.XMLReader#setErrorHandler ! * @see org.xml.sax.SAXParseException */ public interface ErrorHandler { ! ! /** * Receive notification of a warning. * --- 44,54 ---- * @author David Megginson * @version 2.0.1+ (sax2r3pre1) * @see org.xml.sax.XMLReader#setErrorHandler ! * @see org.xml.sax.SAXParseException */ public interface ErrorHandler { ! ! /** * Receive notification of a warning. * *************** public interface ErrorHandler { *** 68,79 **** * SAX parse exception. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. ! * @see org.xml.sax.SAXParseException */ public abstract void warning (SAXParseException exception) ! throws SAXException; ! ! /** * Receive notification of a recoverable error. * --- 68,79 ---- * SAX parse exception. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. ! * @see org.xml.sax.SAXParseException */ public abstract void warning (SAXParseException exception) ! throws SAXException; ! ! /** * Receive notification of a recoverable error. * *************** public interface ErrorHandler { *** 97,108 **** * SAX parse exception. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. ! * @see org.xml.sax.SAXParseException */ public abstract void error (SAXParseException exception) ! throws SAXException; ! ! /** * Receive notification of a non-recoverable error. * --- 97,108 ---- * SAX parse exception. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. ! * @see org.xml.sax.SAXParseException */ public abstract void error (SAXParseException exception) ! throws SAXException; ! ! /** * Receive notification of a non-recoverable error. * *************** public interface ErrorHandler { *** 126,139 **** * other events once this method has been invoked.

      * * @param exception The error information encapsulated in a ! * SAX parse exception. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. * @see org.xml.sax.SAXParseException */ public abstract void fatalError (SAXParseException exception) ! throws SAXException; ! } // end of ErrorHandler.java --- 126,139 ---- * other events once this method has been invoked.

      * * @param exception The error information encapsulated in a ! * SAX parse exception. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. * @see org.xml.sax.SAXParseException */ public abstract void fatalError (SAXParseException exception) ! throws SAXException; ! } // end of ErrorHandler.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/HandlerBase.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/HandlerBase.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/HandlerBase.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/HandlerBase.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 45,56 **** public class HandlerBase implements EntityResolver, DTDHandler, DocumentHandler, ErrorHandler { ! ! //////////////////////////////////////////////////////////////////// // Default implementation of the EntityResolver interface. //////////////////////////////////////////////////////////////////// ! /** * Resolve an external entity. * --- 45,56 ---- public class HandlerBase implements EntityResolver, DTDHandler, DocumentHandler, ErrorHandler { ! ! //////////////////////////////////////////////////////////////////// // Default implementation of the EntityResolver interface. //////////////////////////////////////////////////////////////////// ! /** * Resolve an external entity. * *************** public class HandlerBase *** 62,68 **** * * @param publicId The public identifer, or null if none is * available. ! * @param systemId The system identifier provided in the XML * document. * @return The new input source, or null to require the * default behaviour. --- 62,68 ---- * * @param publicId The public identifer, or null if none is * available. ! * @param systemId The system identifier provided in the XML * document. * @return The new input source, or null to require the * default behaviour. *************** public class HandlerBase *** 71,88 **** * @see org.xml.sax.EntityResolver#resolveEntity */ public InputSource resolveEntity (String publicId, String systemId) ! throws SAXException { ! return null; } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of DTDHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive notification of a notation declaration. * --- 71,88 ---- * @see org.xml.sax.EntityResolver#resolveEntity */ public InputSource resolveEntity (String publicId, String systemId) ! throws SAXException { ! return null; } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of DTDHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive notification of a notation declaration. * *************** public class HandlerBase *** 98,107 **** */ public void notationDecl (String name, String publicId, String systemId) { ! // no op } ! ! /** * Receive notification of an unparsed entity declaration. * --- 98,107 ---- */ public void notationDecl (String name, String publicId, String systemId) { ! // no op } ! ! /** * Receive notification of an unparsed entity declaration. * *************** public class HandlerBase *** 117,134 **** * @see org.xml.sax.DTDHandler#unparsedEntityDecl */ public void unparsedEntityDecl (String name, String publicId, ! String systemId, String notationName) { ! // no op } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of DocumentHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive a Locator object for document events. * --- 117,134 ---- * @see org.xml.sax.DTDHandler#unparsedEntityDecl */ public void unparsedEntityDecl (String name, String publicId, ! String systemId, String notationName) { ! // no op } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of DocumentHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive a Locator object for document events. * *************** public class HandlerBase *** 142,151 **** */ public void setDocumentLocator (Locator locator) { ! // no op } ! ! /** * Receive notification of the beginning of the document. * --- 142,151 ---- */ public void setDocumentLocator (Locator locator) { ! // no op } ! ! /** * Receive notification of the beginning of the document. * *************** public class HandlerBase *** 159,170 **** * @see org.xml.sax.DocumentHandler#startDocument */ public void startDocument () ! throws SAXException { ! // no op } ! ! /** * Receive notification of the end of the document. * --- 159,170 ---- * @see org.xml.sax.DocumentHandler#startDocument */ public void startDocument () ! throws SAXException { ! // no op } ! ! /** * Receive notification of the end of the document. * *************** public class HandlerBase *** 178,189 **** * @see org.xml.sax.DocumentHandler#endDocument */ public void endDocument () ! throws SAXException { ! // no op } ! ! /** * Receive notification of the start of an element. * --- 178,189 ---- * @see org.xml.sax.DocumentHandler#endDocument */ public void endDocument () ! throws SAXException { ! // no op } ! ! /** * Receive notification of the start of an element. * *************** public class HandlerBase *** 199,210 **** * @see org.xml.sax.DocumentHandler#startElement */ public void startElement (String name, AttributeList attributes) ! throws SAXException { ! // no op } ! ! /** * Receive notification of the end of an element. * --- 199,210 ---- * @see org.xml.sax.DocumentHandler#startElement */ public void startElement (String name, AttributeList attributes) ! throws SAXException { ! // no op } ! ! /** * Receive notification of the end of an element. * *************** public class HandlerBase *** 219,230 **** * @see org.xml.sax.DocumentHandler#endElement */ public void endElement (String name) ! throws SAXException { ! // no op } ! ! /** * Receive notification of character data inside an element. * --- 219,230 ---- * @see org.xml.sax.DocumentHandler#endElement */ public void endElement (String name) ! throws SAXException { ! // no op } ! ! /** * Receive notification of character data inside an element. * *************** public class HandlerBase *** 242,253 **** * @see org.xml.sax.DocumentHandler#characters */ public void characters (char ch[], int start, int length) ! throws SAXException { ! // no op } ! ! /** * Receive notification of ignorable whitespace in element content. * --- 242,253 ---- * @see org.xml.sax.DocumentHandler#characters */ public void characters (char ch[], int start, int length) ! throws SAXException { ! // no op } ! ! /** * Receive notification of ignorable whitespace in element content. * *************** public class HandlerBase *** 265,276 **** * @see org.xml.sax.DocumentHandler#ignorableWhitespace */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! // no op } ! ! /** * Receive notification of a processing instruction. * --- 265,276 ---- * @see org.xml.sax.DocumentHandler#ignorableWhitespace */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! // no op } ! ! /** * Receive notification of a processing instruction. * *************** public class HandlerBase *** 287,304 **** * @see org.xml.sax.DocumentHandler#processingInstruction */ public void processingInstruction (String target, String data) ! throws SAXException { ! // no op } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of the ErrorHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive notification of a parser warning. * --- 287,304 ---- * @see org.xml.sax.DocumentHandler#processingInstruction */ public void processingInstruction (String target, String data) ! throws SAXException { ! // no op } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of the ErrorHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive notification of a parser warning. * *************** public class HandlerBase *** 314,325 **** * @see org.xml.sax.SAXParseException */ public void warning (SAXParseException e) ! throws SAXException { ! // no op } ! ! /** * Receive notification of a recoverable parser error. * --- 314,325 ---- * @see org.xml.sax.SAXParseException */ public void warning (SAXParseException e) ! throws SAXException { ! // no op } ! ! /** * Receive notification of a recoverable parser error. * *************** public class HandlerBase *** 335,346 **** * @see org.xml.sax.SAXParseException */ public void error (SAXParseException e) ! throws SAXException { ! // no op } ! ! /** * Report a fatal XML parsing error. * --- 335,346 ---- * @see org.xml.sax.SAXParseException */ public void error (SAXParseException e) ! throws SAXException { ! // no op } ! ! /** * Report a fatal XML parsing error. * *************** public class HandlerBase *** 359,369 **** * @see org.xml.sax.SAXParseException */ public void fatalError (SAXParseException e) ! throws SAXException { ! throw e; } ! } // end of HandlerBase.java --- 359,369 ---- * @see org.xml.sax.SAXParseException */ public void fatalError (SAXParseException e) ! throws SAXException { ! throw e; } ! } // end of HandlerBase.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/InputSource.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/InputSource.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/InputSource.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/InputSource.java Tue Jan 11 19:46:05 2011 *************** import java.io.InputStream; *** 43,49 **** * identifier.

      * *

      An InputSource object belongs to the application: the SAX parser ! * shall never modify it in any way (it may modify a copy if * necessary). However, standard processing of both byte and * character streams is to close them on as part of end-of-parse cleanup, * so applications should not attempt to re-use such streams after they --- 43,49 ---- * identifier.

      * *

      An InputSource object belongs to the application: the SAX parser ! * shall never modify it in any way (it may modify a copy if * necessary). However, standard processing of both byte and * character streams is to close them on as part of end-of-parse cleanup, * so applications should not attempt to re-use such streams after they *************** import java.io.InputStream; *** 58,64 **** * @see java.io.Reader */ public class InputSource { ! /** * Zero-argument default constructor. * --- 58,64 ---- * @see java.io.Reader */ public class InputSource { ! /** * Zero-argument default constructor. * *************** public class InputSource { *** 71,82 **** public InputSource () { } ! ! /** * Create a new input source with a system identifier. * ! *

      Applications may use setPublicId to include a * public identifier as well, or setEncoding to specify * the character encoding, if known.

      * --- 71,82 ---- public InputSource () { } ! ! /** * Create a new input source with a system identifier. * ! *

      Applications may use setPublicId to include a * public identifier as well, or setEncoding to specify * the character encoding, if known.

      * *************** public class InputSource { *** 92,106 **** */ public InputSource (String systemId) { ! setSystemId(systemId); } ! ! /** * Create a new input source with a byte stream. * ! *

      Application writers should use setSystemId() to provide a base ! * for resolving relative URIs, may use setPublicId to include a * public identifier, and may use setEncoding to specify the object's * character encoding.

      * --- 92,106 ---- */ public InputSource (String systemId) { ! setSystemId(systemId); } ! ! /** * Create a new input source with a byte stream. * ! *

      Application writers should use setSystemId() to provide a base ! * for resolving relative URIs, may use setPublicId to include a * public identifier, and may use setEncoding to specify the object's * character encoding.

      * *************** public class InputSource { *** 113,127 **** */ public InputSource (InputStream byteStream) { ! setByteStream(byteStream); } ! ! /** * Create a new input source with a character stream. * ! *

      Application writers should use setSystemId() to provide a base ! * for resolving relative URIs, and may use setPublicId to include a * public identifier.

      * *

      The character stream shall not include a byte order mark.

      --- 113,127 ---- */ public InputSource (InputStream byteStream) { ! setByteStream(byteStream); } ! ! /** * Create a new input source with a character stream. * ! *

      Application writers should use setSystemId() to provide a base ! * for resolving relative URIs, and may use setPublicId to include a * public identifier.

      * *

      The character stream shall not include a byte order mark.

      *************** public class InputSource { *** 133,142 **** */ public InputSource (Reader characterStream) { ! setCharacterStream(characterStream); } ! ! /** * Set the public identifier for this input source. * --- 133,142 ---- */ public InputSource (Reader characterStream) { ! setCharacterStream(characterStream); } ! ! /** * Set the public identifier for this input source. * *************** public class InputSource { *** 151,160 **** */ public void setPublicId (String publicId) { ! this.publicId = publicId; } ! ! /** * Get the public identifier for this input source. * --- 151,160 ---- */ public void setPublicId (String publicId) { ! this.publicId = publicId; } ! ! /** * Get the public identifier for this input source. * *************** public class InputSource { *** 163,172 **** */ public String getPublicId () { ! return publicId; } ! ! /** * Set the system identifier for this input source. * --- 163,172 ---- */ public String getPublicId () { ! return publicId; } ! ! /** * Set the system identifier for this input source. * *************** public class InputSource { *** 192,201 **** */ public void setSystemId (String systemId) { ! this.systemId = systemId; } ! ! /** * Get the system identifier for this input source. * --- 192,201 ---- */ public void setSystemId (String systemId) { ! this.systemId = systemId; } ! ! /** * Get the system identifier for this input source. * *************** public class InputSource { *** 210,219 **** */ public String getSystemId () { ! return systemId; } ! ! /** * Set the byte stream for this input source. * --- 210,219 ---- */ public String getSystemId () { ! return systemId; } ! ! /** * Set the byte stream for this input source. * *************** public class InputSource { *** 233,242 **** */ public void setByteStream (InputStream byteStream) { ! this.byteStream = byteStream; } ! ! /** * Get the byte stream for this input source. * --- 233,242 ---- */ public void setByteStream (InputStream byteStream) { ! this.byteStream = byteStream; } ! ! /** * Get the byte stream for this input source. * *************** public class InputSource { *** 249,259 **** */ public InputStream getByteStream () { ! return byteStream; } ! ! ! /** * Set the character encoding, if known. * *

      The encoding must be a string acceptable for an --- 249,259 ---- */ public InputStream getByteStream () { ! return byteStream; } ! ! ! /** * Set the character encoding, if known. * *

      The encoding must be a string acceptable for an *************** public class InputSource { *** 270,279 **** */ public void setEncoding (String encoding) { ! this.encoding = encoding; } ! ! /** * Get the character encoding for a byte stream or URI. * This value will be ignored when the application provides a --- 270,279 ---- */ public void setEncoding (String encoding) { ! this.encoding = encoding; } ! ! /** * Get the character encoding for a byte stream or URI. * This value will be ignored when the application provides a *************** public class InputSource { *** 286,295 **** */ public String getEncoding () { ! return encoding; } ! ! /** * Set the character stream for this input source. * --- 286,295 ---- */ public String getEncoding () { ! return encoding; } ! ! /** * Set the character stream for this input source. * *************** public class InputSource { *** 304,313 **** */ public void setCharacterStream (Reader characterStream) { ! this.characterStream = characterStream; } ! ! /** * Get the character stream for this input source. * --- 304,313 ---- */ public void setCharacterStream (Reader characterStream) { ! this.characterStream = characterStream; } ! ! /** * Get the character stream for this input source. * *************** public class InputSource { *** 316,336 **** */ public Reader getCharacterStream () { ! return characterStream; } ! ! ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// ! private String publicId; private String systemId; private InputStream byteStream; private String encoding; private Reader characterStream; ! } // end of InputSource.java --- 316,336 ---- */ public Reader getCharacterStream () { ! return characterStream; } ! ! ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// ! private String publicId; private String systemId; private InputStream byteStream; private String encoding; private Reader characterStream; ! } // end of InputSource.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/Locator.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/Locator.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/Locator.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/Locator.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 34,50 **** * locator, it must do so before reporting any other document events. * If no locator has been set by the time the application receives * the {@link org.xml.sax.ContentHandler#startDocument startDocument} ! * event, the application should assume that a locator is not * available.

      * * @since SAX 1.0 * @author David Megginson * @version 2.0.1 (sax2r2) ! * @see org.xml.sax.ContentHandler#setDocumentLocator */ public interface Locator { ! ! /** * Return the public identifier for the current document event. * --- 34,50 ---- * locator, it must do so before reporting any other document events. * If no locator has been set by the time the application receives * the {@link org.xml.sax.ContentHandler#startDocument startDocument} ! * event, the application should assume that a locator is not * available.

      * * @since SAX 1.0 * @author David Megginson * @version 2.0.1 (sax2r2) ! * @see org.xml.sax.ContentHandler#setDocumentLocator */ public interface Locator { ! ! /** * Return the public identifier for the current document event. * *************** public interface Locator { *** 57,64 **** * @see #getSystemId */ public abstract String getPublicId (); ! ! /** * Return the system identifier for the current document event. * --- 57,64 ---- * @see #getSystemId */ public abstract String getPublicId (); ! ! /** * Return the system identifier for the current document event. * *************** public interface Locator { *** 76,83 **** * @see #getPublicId */ public abstract String getSystemId (); ! ! /** * Return the line number where the current document event ends. * Lines are delimited by line ends, which are defined in --- 76,83 ---- * @see #getPublicId */ public abstract String getSystemId (); ! ! /** * Return the line number where the current document event ends. * Lines are delimited by line ends, which are defined in *************** public interface Locator { *** 95,110 **** * in the document entity or external parsed entity where the * markup triggering the event appears.

      * ! *

      If possible, the SAX driver should provide the line position ! * of the first character after the text associated with the document * event. The first line is line 1.

      * * @return The line number, or -1 if none is available. * @see #getColumnNumber */ public abstract int getLineNumber (); ! ! /** * Return the column number where the current document event ends. * This is one-based number of Java char values since --- 95,110 ---- * in the document entity or external parsed entity where the * markup triggering the event appears.

      * ! *

      If possible, the SAX driver should provide the line position ! * of the first character after the text associated with the document * event. The first line is line 1.

      * * @return The line number, or -1 if none is available. * @see #getColumnNumber */ public abstract int getLineNumber (); ! ! /** * Return the column number where the current document event ends. * This is one-based number of Java char values since *************** public interface Locator { *** 122,136 **** * in the document entity or external parsed entity where the * markup triggering the event appears.

      * ! *

      If possible, the SAX driver should provide the line position ! * of the first character after the text associated with the document * event. The first column in each line is column 1.

      * * @return The column number, or -1 if none is available. * @see #getLineNumber */ public abstract int getColumnNumber (); ! } // end of Locator.java --- 122,136 ---- * in the document entity or external parsed entity where the * markup triggering the event appears.

      * ! *

      If possible, the SAX driver should provide the line position ! * of the first character after the text associated with the document * event. The first column in each line is column 1.

      * * @return The column number, or -1 if none is available. * @see #getLineNumber */ public abstract int getColumnNumber (); ! } // end of Locator.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/Parser.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/Parser.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/Parser.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/Parser.java Tue Jan 11 19:46:05 2011 *************** import java.util.Locale; *** 49,57 **** * @see org.xml.sax.HandlerBase * @see org.xml.sax.InputSource */ ! public interface Parser { ! /** * Allow an application to request a locale for errors and warnings. * --- 49,57 ---- * @see org.xml.sax.HandlerBase * @see org.xml.sax.InputSource */ ! public interface Parser { ! /** * Allow an application to request a locale for errors and warnings. * *************** public interface Parser *** 62,76 **** * * @param locale A Java Locale object. * @exception org.xml.sax.SAXException Throws an exception ! * (using the previous or default locale) if the * requested locale is not supported. * @see org.xml.sax.SAXException * @see org.xml.sax.SAXParseException */ public abstract void setLocale (Locale locale) ! throws SAXException; ! ! /** * Allow an application to register a custom entity resolver. * --- 62,76 ---- * * @param locale A Java Locale object. * @exception org.xml.sax.SAXException Throws an exception ! * (using the previous or default locale) if the * requested locale is not supported. * @see org.xml.sax.SAXException * @see org.xml.sax.SAXParseException */ public abstract void setLocale (Locale locale) ! throws SAXException; ! ! /** * Allow an application to register a custom entity resolver. * *************** public interface Parser *** 88,95 **** * @see HandlerBase */ public abstract void setEntityResolver (EntityResolver resolver); ! ! /** * Allow an application to register a DTD event handler. * --- 88,95 ---- * @see HandlerBase */ public abstract void setEntityResolver (EntityResolver resolver); ! ! /** * Allow an application to register a DTD event handler. * *************** public interface Parser *** 107,114 **** * @see HandlerBase */ public abstract void setDTDHandler (DTDHandler handler); ! ! /** * Allow an application to register a document event handler. * --- 107,114 ---- * @see HandlerBase */ public abstract void setDTDHandler (DTDHandler handler); ! ! /** * Allow an application to register a document event handler. * *************** public interface Parser *** 126,133 **** * @see HandlerBase */ public abstract void setDocumentHandler (DocumentHandler handler); ! ! /** * Allow an application to register an error event handler. * --- 126,133 ---- * @see HandlerBase */ public abstract void setDocumentHandler (DocumentHandler handler); ! ! /** * Allow an application to register an error event handler. * *************** public interface Parser *** 146,153 **** * @see HandlerBase */ public abstract void setErrorHandler (ErrorHandler handler); ! ! /** * Parse an XML document. * --- 146,153 ---- * @see HandlerBase */ public abstract void setErrorHandler (ErrorHandler handler); ! ! /** * Parse an XML document. * *************** public interface Parser *** 176,184 **** * @see #setErrorHandler */ public abstract void parse (InputSource source) ! throws SAXException, IOException; ! ! /** * Parse an XML document from a system identifier (URI). * --- 176,184 ---- * @see #setErrorHandler */ public abstract void parse (InputSource source) ! throws SAXException, IOException; ! ! /** * Parse an XML document from a system identifier (URI). * *************** public interface Parser *** 202,209 **** * @see #parse(org.xml.sax.InputSource) */ public abstract void parse (String systemId) ! throws SAXException, IOException; ! } // end of Parser.java --- 202,209 ---- * @see #parse(org.xml.sax.InputSource) */ public abstract void parse (String systemId) ! throws SAXException, IOException; ! } // end of Parser.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/SAXException.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/SAXException.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/SAXException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/SAXException.java Tue Jan 11 19:46:05 2011 *************** public class SAXException extends Except *** 42,63 **** */ public SAXException () { ! super(); ! this.exception = null; } ! ! /** * Create a new SAXException. * * @param message The error or warning message. */ public SAXException (String message) { ! super(message); ! this.exception = null; } ! ! /** * Create a new SAXException wrapping an existing exception. * --- 42,63 ---- */ public SAXException () { ! super(); ! this.exception = null; } ! ! /** * Create a new SAXException. * * @param message The error or warning message. */ public SAXException (String message) { ! super(message); ! this.exception = null; } ! ! /** * Create a new SAXException wrapping an existing exception. * *************** public class SAXException extends Except *** 69,79 **** */ public SAXException (Exception e) { ! super(); ! this.exception = e; } ! ! /** * Create a new SAXException from an existing exception. * --- 69,79 ---- */ public SAXException (Exception e) { ! super(); ! this.exception = e; } ! ! /** * Create a new SAXException from an existing exception. * *************** public class SAXException extends Except *** 85,95 **** */ public SAXException (String message, Exception e) { ! super(message); ! this.exception = e; } ! ! /** * Return a detail message for this exception. * --- 85,95 ---- */ public SAXException (String message, Exception e) { ! super(message); ! this.exception = e; } ! ! /** * Return a detail message for this exception. * *************** public class SAXException extends Except *** 101,116 **** */ public String getMessage () { ! String message = super.getMessage(); ! ! if (message == null && exception != null) { ! return exception.getMessage(); ! } else { ! return message; ! } } ! ! /** * Return the embedded exception, if any. * --- 101,116 ---- */ public String getMessage () { ! String message = super.getMessage(); ! ! if (message == null && exception != null) { ! return exception.getMessage(); ! } else { ! return message; ! } } ! ! /** * Return the embedded exception, if any. * *************** public class SAXException extends Except *** 118,124 **** */ public Exception getException () { ! return exception; } --- 118,124 ---- */ public Exception getException () { ! return exception; } *************** public class SAXException extends Except *** 129,143 **** */ public String toString () { ! if (exception != null) { ! return exception.toString(); ! } else { ! return super.toString(); ! } } ! ! ! ////////////////////////////////////////////////////////////////////// // Internal state. ////////////////////////////////////////////////////////////////////// --- 129,143 ---- */ public String toString () { ! if (exception != null) { ! return exception.toString(); ! } else { ! return super.toString(); ! } } ! ! ! ////////////////////////////////////////////////////////////////////// // Internal state. ////////////////////////////////////////////////////////////////////// *************** public class SAXException extends Except *** 145,153 **** /** * @serial The embedded exception if tunnelling, or null. ! */ private Exception exception; ! } // end of SAXException.java --- 145,153 ---- /** * @serial The embedded exception if tunnelling, or null. ! */ private Exception exception; ! } // end of SAXException.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java Tue Jan 11 19:46:05 2011 *************** public class SAXNotRecognizedException e *** 34,40 **** */ public SAXNotRecognizedException () { ! super(); } --- 34,40 ---- */ public SAXNotRecognizedException () { ! super(); } *************** public class SAXNotRecognizedException e *** 45,51 **** */ public SAXNotRecognizedException (String message) { ! super(message); } } --- 45,51 ---- */ public SAXNotRecognizedException (String message) { ! super(message); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 24,30 **** * @since SAX 2.0 * @author David Megginson * @version 2.0.1 (sax2r2) ! * @see org.xml.sax.SAXNotRecognizedException */ public class SAXNotSupportedException extends SAXException { --- 24,30 ---- * @since SAX 2.0 * @author David Megginson * @version 2.0.1 (sax2r2) ! * @see org.xml.sax.SAXNotRecognizedException */ public class SAXNotSupportedException extends SAXException { *************** public class SAXNotSupportedException ex *** 34,40 **** */ public SAXNotSupportedException () { ! super(); } --- 34,40 ---- */ public SAXNotSupportedException () { ! super(); } *************** public class SAXNotSupportedException ex *** 45,51 **** */ public SAXNotSupportedException (String message) { ! super(message); } } --- 45,51 ---- */ public SAXNotSupportedException (String message) { ! super(message); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/SAXParseException.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/SAXParseException.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/SAXParseException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/SAXParseException.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax; *** 19,30 **** * in the original XML document, as if it came from a {@link Locator} * object. Note that although the application * will receive a SAXParseException as the argument to the handlers ! * in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface, ! * the application is not actually required to throw the exception; ! * instead, it can simply read the information in it and take a * different action.

      * ! *

      Since this exception is a subclass of {@link org.xml.sax.SAXException * SAXException}, it inherits the ability to wrap another exception.

      * * @since SAX 1.0 --- 19,30 ---- * in the original XML document, as if it came from a {@link Locator} * object. Note that although the application * will receive a SAXParseException as the argument to the handlers ! * in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface, ! * the application is not actually required to throw the exception; ! * instead, it can simply read the information in it and take a * different action.

      * ! *

      Since this exception is a subclass of {@link org.xml.sax.SAXException * SAXException}, it inherits the ability to wrap another exception.

      * * @since SAX 1.0 *************** package org.xml.sax; *** 35,42 **** * @see org.xml.sax.ErrorHandler */ public class SAXParseException extends SAXException { ! ! ////////////////////////////////////////////////////////////////////// // Constructors. ////////////////////////////////////////////////////////////////////// --- 35,42 ---- * @see org.xml.sax.ErrorHandler */ public class SAXParseException extends SAXException { ! ! ////////////////////////////////////////////////////////////////////// // Constructors. ////////////////////////////////////////////////////////////////////// *************** public class SAXParseException extends S *** 55,70 **** * @see org.xml.sax.Locator */ public SAXParseException (String message, Locator locator) { ! super(message); ! if (locator != null) { ! init(locator.getPublicId(), locator.getSystemId(), ! locator.getLineNumber(), locator.getColumnNumber()); ! } else { ! init(null, null, -1, -1); ! } } ! ! /** * Wrap an existing exception in a SAXParseException. * --- 55,70 ---- * @see org.xml.sax.Locator */ public SAXParseException (String message, Locator locator) { ! super(message); ! if (locator != null) { ! init(locator.getPublicId(), locator.getSystemId(), ! locator.getLineNumber(), locator.getColumnNumber()); ! } else { ! init(null, null, -1, -1); ! } } ! ! /** * Wrap an existing exception in a SAXParseException. * *************** public class SAXParseException extends S *** 81,97 **** * @see org.xml.sax.Locator */ public SAXParseException (String message, Locator locator, ! Exception e) { ! super(message, e); ! if (locator != null) { ! init(locator.getPublicId(), locator.getSystemId(), ! locator.getLineNumber(), locator.getColumnNumber()); ! } else { ! init(null, null, -1, -1); ! } } ! ! /** * Create a new SAXParseException. * --- 81,97 ---- * @see org.xml.sax.Locator */ public SAXParseException (String message, Locator locator, ! Exception e) { ! super(message, e); ! if (locator != null) { ! init(locator.getPublicId(), locator.getSystemId(), ! locator.getLineNumber(), locator.getColumnNumber()); ! } else { ! init(null, null, -1, -1); ! } } ! ! /** * Create a new SAXParseException. * *************** public class SAXParseException extends S *** 114,126 **** * cause the error or warning. */ public SAXParseException (String message, String publicId, String systemId, ! int lineNumber, int columnNumber) { ! super(message); ! init(publicId, systemId, lineNumber, columnNumber); } ! ! /** * Create a new SAXParseException with an embedded exception. * --- 114,126 ---- * cause the error or warning. */ public SAXParseException (String message, String publicId, String systemId, ! int lineNumber, int columnNumber) { ! super(message); ! init(publicId, systemId, lineNumber, columnNumber); } ! ! /** * Create a new SAXParseException with an embedded exception. * *************** public class SAXParseException extends S *** 146,155 **** * @param e Another exception to embed in this one. */ public SAXParseException (String message, String publicId, String systemId, ! int lineNumber, int columnNumber, Exception e) { ! super(message, e); ! init(publicId, systemId, lineNumber, columnNumber); } --- 146,155 ---- * @param e Another exception to embed in this one. */ public SAXParseException (String message, String publicId, String systemId, ! int lineNumber, int columnNumber, Exception e) { ! super(message, e); ! init(publicId, systemId, lineNumber, columnNumber); } *************** public class SAXParseException extends S *** 164,178 **** * @param columnNumber The column number of the error, or -1. */ private void init (String publicId, String systemId, ! int lineNumber, int columnNumber) { ! this.publicId = publicId; ! this.systemId = systemId; ! this.lineNumber = lineNumber; ! this.columnNumber = columnNumber; } ! ! /** * Get the public identifier of the entity where the exception occurred. * --- 164,178 ---- * @param columnNumber The column number of the error, or -1. */ private void init (String publicId, String systemId, ! int lineNumber, int columnNumber) { ! this.publicId = publicId; ! this.systemId = systemId; ! this.lineNumber = lineNumber; ! this.columnNumber = columnNumber; } ! ! /** * Get the public identifier of the entity where the exception occurred. * *************** public class SAXParseException extends S *** 182,191 **** */ public String getPublicId () { ! return this.publicId; } ! ! /** * Get the system identifier of the entity where the exception occurred. * --- 182,191 ---- */ public String getPublicId () { ! return this.publicId; } ! ! /** * Get the system identifier of the entity where the exception occurred. * *************** public class SAXParseException extends S *** 198,207 **** */ public String getSystemId () { ! return this.systemId; } ! ! /** * The line number of the end of the text where the exception occurred. * --- 198,207 ---- */ public String getSystemId () { ! return this.systemId; } ! ! /** * The line number of the end of the text where the exception occurred. * *************** public class SAXParseException extends S *** 213,222 **** */ public int getLineNumber () { ! return this.lineNumber; } ! ! /** * The column number of the end of the text where the exception occurred. * --- 213,222 ---- */ public int getLineNumber () { ! return this.lineNumber; } ! ! /** * The column number of the end of the text where the exception occurred. * *************** public class SAXParseException extends S *** 228,237 **** */ public int getColumnNumber () { ! return this.columnNumber; } ! ! ////////////////////////////////////////////////////////////////////// // Internal state. ////////////////////////////////////////////////////////////////////// --- 228,237 ---- */ public int getColumnNumber () { ! return this.columnNumber; } ! ! ////////////////////////////////////////////////////////////////////// // Internal state. ////////////////////////////////////////////////////////////////////// *************** public class SAXParseException extends S *** 240,246 **** /** * @serial The public identifier, or null. * @see #getPublicId ! */ private String publicId; --- 240,246 ---- /** * @serial The public identifier, or null. * @see #getPublicId ! */ private String publicId; *************** public class SAXParseException extends S *** 263,269 **** * @see #getColumnNumber */ private int columnNumber; ! } // end of SAXParseException.java --- 263,269 ---- * @see #getColumnNumber */ private int columnNumber; ! } // end of SAXParseException.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/XMLReader.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/XMLReader.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/XMLReader.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/XMLReader.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 19,27 **** * for further information. * * ! *

      Note: despite its name, this interface does ! * not extend the standard Java {@link java.io.Reader Reader} ! * interface, because reading XML is a fundamentally different activity * than reading character data.

      * *

      XMLReader is the interface that an XML parser's SAX2 driver must --- 19,27 ---- * for further information. * * ! *

      Note: despite its name, this interface does ! * not extend the standard Java {@link java.io.Reader Reader} ! * interface, because reading XML is a fundamentally different activity * than reading character data.

      * *

      XMLReader is the interface that an XML parser's SAX2 driver must *************** import java.io.IOException; *** 41,47 **** * interface (as well as some minor ones):

      * *
        ! *
      1. it adds a standard way to query and set features and * properties; and
      2. *
      3. it adds Namespace support, which is required for many * higher-level XML standards.
      4. --- 41,47 ---- * interface (as well as some minor ones):

        * *
          ! *
        1. it adds a standard way to query and set features and * properties; and
        2. *
        3. it adds Namespace support, which is required for many * higher-level XML standards.
        4. *************** import java.io.IOException; *** 55,66 **** * @version 2.0.1+ (sax2r3pre1) * @see org.xml.sax.XMLFilter * @see org.xml.sax.helpers.ParserAdapter ! * @see org.xml.sax.helpers.XMLReaderAdapter */ public interface XMLReader { ! //////////////////////////////////////////////////////////////////// // Configuration. //////////////////////////////////////////////////////////////////// --- 55,66 ---- * @version 2.0.1+ (sax2r3pre1) * @see org.xml.sax.XMLFilter * @see org.xml.sax.helpers.ParserAdapter ! * @see org.xml.sax.helpers.XMLReaderAdapter */ public interface XMLReader { ! //////////////////////////////////////////////////////////////////// // Configuration. //////////////////////////////////////////////////////////////////// *************** public interface XMLReader *** 93,99 **** * try { * r.setFeature("http://xml.org/sax/features/validation", true); * } catch (SAXException e) { ! * System.err.println("Cannot activate validation."); * } * * // register event handlers --- 93,99 ---- * try { * r.setFeature("http://xml.org/sax/features/validation", true); * } catch (SAXException e) { ! * System.err.println("Cannot activate validation."); * } * * // register event handlers *************** public interface XMLReader *** 118,124 **** * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved. * @exception org.xml.sax.SAXNotSupportedException When the ! * XMLReader recognizes the feature name but * cannot determine its value at this time. * @see #setFeature */ --- 118,124 ---- * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved. * @exception org.xml.sax.SAXNotSupportedException When the ! * XMLReader recognizes the feature name but * cannot determine its value at this time. * @see #setFeature */ *************** public interface XMLReader *** 132,139 **** *

          The feature name is any fully-qualified URI. It is * possible for an XMLReader to expose a feature value but * to be unable to change the current value. ! * Some feature values may be immutable or mutable only ! * in specific contexts, such as before, during, or after * a parse.

          * *

          All XMLReaders are required to support setting --- 132,139 ---- *

          The feature name is any fully-qualified URI. It is * possible for an XMLReader to expose a feature value but * to be unable to change the current value. ! * Some feature values may be immutable or mutable only ! * in specific contexts, such as before, during, or after * a parse.

          * *

          All XMLReaders are required to support setting *************** public interface XMLReader *** 145,156 **** * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved. * @exception org.xml.sax.SAXNotSupportedException When the ! * XMLReader recognizes the feature name but * cannot set the requested value. * @see #getFeature */ public void setFeature (String name, boolean value) ! throws SAXNotRecognizedException, SAXNotSupportedException; /** --- 145,156 ---- * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved. * @exception org.xml.sax.SAXNotSupportedException When the ! * XMLReader recognizes the feature name but * cannot set the requested value. * @see #getFeature */ public void setFeature (String name, boolean value) ! throws SAXNotRecognizedException, SAXNotSupportedException; /** *************** public interface XMLReader *** 174,185 **** * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved. * @exception org.xml.sax.SAXNotSupportedException When the ! * XMLReader recognizes the property name but * cannot determine its value at this time. * @see #setProperty */ public Object getProperty (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException; /** --- 174,185 ---- * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved. * @exception org.xml.sax.SAXNotSupportedException When the ! * XMLReader recognizes the property name but * cannot determine its value at this time. * @see #setProperty */ public Object getProperty (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException; /** *************** public interface XMLReader *** 188,199 **** *

          The property name is any fully-qualified URI. It is * possible for an XMLReader to recognize a property name but * to be unable to change the current value. ! * Some property values may be immutable or mutable only ! * in specific contexts, such as before, during, or after * a parse.

          * *

          XMLReaders are not required to recognize setting ! * any specific property names, though a core set is defined by * SAX2.

          * *

          This method is also the standard mechanism for setting --- 188,199 ---- *

          The property name is any fully-qualified URI. It is * possible for an XMLReader to recognize a property name but * to be unable to change the current value. ! * Some property values may be immutable or mutable only ! * in specific contexts, such as before, during, or after * a parse.

          * *

          XMLReaders are not required to recognize setting ! * any specific property names, though a core set is defined by * SAX2.

          * *

          This method is also the standard mechanism for setting *************** public interface XMLReader *** 204,217 **** * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved. * @exception org.xml.sax.SAXNotSupportedException When the ! * XMLReader recognizes the property name but * cannot set the requested value. */ public void setProperty (String name, Object value) ! throws SAXNotRecognizedException, SAXNotSupportedException; - //////////////////////////////////////////////////////////////////// // Event handlers. //////////////////////////////////////////////////////////////////// --- 204,217 ---- * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved. * @exception org.xml.sax.SAXNotSupportedException When the ! * XMLReader recognizes the property name but * cannot set the requested value. */ public void setProperty (String name, Object value) ! throws SAXNotRecognizedException, SAXNotSupportedException; ! //////////////////////////////////////////////////////////////////// // Event handlers. //////////////////////////////////////////////////////////////////// *************** public interface XMLReader *** 325,331 **** public ErrorHandler getErrorHandler (); ! //////////////////////////////////////////////////////////////////// // Parsing. //////////////////////////////////////////////////////////////////// --- 325,331 ---- public ErrorHandler getErrorHandler (); ! //////////////////////////////////////////////////////////////////// // Parsing. //////////////////////////////////////////////////////////////////// *************** public interface XMLReader *** 355,361 **** * handlers.

          * *

          This method is synchronous: it will not return until parsing ! * has ended. If a client application wants to terminate * parsing early, it should throw an exception.

          * * @param input The input source for the top-level of the --- 355,361 ---- * handlers.

          * *

          This method is synchronous: it will not return until parsing ! * has ended. If a client application wants to terminate * parsing early, it should throw an exception.

          * * @param input The input source for the top-level of the *************** public interface XMLReader *** 370,379 **** * @see #setEntityResolver * @see #setDTDHandler * @see #setContentHandler ! * @see #setErrorHandler */ public void parse (InputSource input) ! throws IOException, SAXException; /** --- 370,379 ---- * @see #setEntityResolver * @see #setDTDHandler * @see #setContentHandler ! * @see #setErrorHandler */ public void parse (InputSource input) ! throws IOException, SAXException; /** *************** public interface XMLReader *** 399,404 **** * @see #parse(org.xml.sax.InputSource) */ public void parse (String systemId) ! throws IOException, SAXException; } --- 399,404 ---- * @see #parse(org.xml.sax.InputSource) */ public void parse (String systemId) ! throws IOException, SAXException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2.java Tue Jan 11 19:46:05 2011 *************** public interface Attributes2 extends Att *** 46,52 **** * * @param index The attribute index (zero-based). * @return true if the attribute was declared in the DTD, ! * false otherwise. * @exception java.lang.ArrayIndexOutOfBoundsException When the * supplied index does not identify an attribute. */ --- 46,52 ---- * * @param index The attribute index (zero-based). * @return true if the attribute was declared in the DTD, ! * false otherwise. * @exception java.lang.ArrayIndexOutOfBoundsException When the * supplied index does not identify an attribute. */ *************** public interface Attributes2 extends Att *** 60,66 **** * * @param qName The XML qualified (prefixed) name. * @return true if the attribute was declared in the DTD, ! * false otherwise. * @exception java.lang.IllegalArgumentException When the * supplied name does not identify an attribute. */ --- 60,66 ---- * * @param qName The XML qualified (prefixed) name. * @return true if the attribute was declared in the DTD, ! * false otherwise. * @exception java.lang.IllegalArgumentException When the * supplied name does not identify an attribute. */ *************** public interface Attributes2 extends Att *** 81,87 **** * the name has no Namespace URI. * @param localName The attribute's local name. * @return true if the attribute was declared in the DTD, ! * false otherwise. * @exception java.lang.IllegalArgumentException When the * supplied names do not identify an attribute. */ --- 81,87 ---- * the name has no Namespace URI. * @param localName The attribute's local name. * @return true if the attribute was declared in the DTD, ! * false otherwise. * @exception java.lang.IllegalArgumentException When the * supplied names do not identify an attribute. */ *************** public interface Attributes2 extends Att *** 93,99 **** * * @param index The attribute index (zero-based). * @return true if the value was found in the XML text, ! * false if the value was provided by DTD defaulting. * @exception java.lang.ArrayIndexOutOfBoundsException When the * supplied index does not identify an attribute. */ --- 93,99 ---- * * @param index The attribute index (zero-based). * @return true if the value was found in the XML text, ! * false if the value was provided by DTD defaulting. * @exception java.lang.ArrayIndexOutOfBoundsException When the * supplied index does not identify an attribute. */ *************** public interface Attributes2 extends Att *** 112,118 **** * the name has no Namespace URI. * @param localName The attribute's local name. * @return true if the value was found in the XML text, ! * false if the value was provided by DTD defaulting. * @exception java.lang.IllegalArgumentException When the * supplied names do not identify an attribute. */ --- 112,118 ---- * the name has no Namespace URI. * @param localName The attribute's local name. * @return true if the value was found in the XML text, ! * false if the value was provided by DTD defaulting. * @exception java.lang.IllegalArgumentException When the * supplied names do not identify an attribute. */ *************** public interface Attributes2 extends Att *** 124,130 **** * * @param qName The XML qualified (prefixed) name. * @return true if the value was found in the XML text, ! * false if the value was provided by DTD defaulting. * @exception java.lang.IllegalArgumentException When the * supplied name does not identify an attribute. */ --- 124,130 ---- * * @param qName The XML qualified (prefixed) name. * @return true if the value was found in the XML text, ! * false if the value was provided by DTD defaulting. * @exception java.lang.IllegalArgumentException When the * supplied name does not identify an attribute. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java Tue Jan 11 19:46:05 2011 *************** import org.xml.sax.helpers.AttributesImp *** 28,34 **** * is false), non-CDATA attributes, or when it is set to true using * {@link #setDeclared}. * If you change an attribute's type by hand, you may need to modify ! * its declared flag to match. *

          * * @since SAX 2.0 (extensions 1.1 alpha) --- 28,34 ---- * is false), non-CDATA attributes, or when it is set to true using * {@link #setDeclared}. * If you change an attribute's type by hand, you may need to modify ! * its declared flag to match. *

          * * @since SAX 2.0 (extensions 1.1 alpha) *************** import org.xml.sax.helpers.AttributesImp *** 37,44 **** */ public class Attributes2Impl extends AttributesImpl implements Attributes2 { ! private boolean declared []; ! private boolean specified []; /** --- 37,44 ---- */ public class Attributes2Impl extends AttributesImpl implements Attributes2 { ! private boolean declared []; ! private boolean specified []; /** *************** public class Attributes2Impl extends Att *** 63,69 **** */ public Attributes2Impl (Attributes atts) { ! super (atts); } --- 63,69 ---- */ public Attributes2Impl (Attributes atts) { ! super (atts); } *************** public class Attributes2Impl extends Att *** 78,87 **** // javadoc mostly from interface public boolean isDeclared (int index) { ! if (index < 0 || index >= getLength ()) ! throw new ArrayIndexOutOfBoundsException ( ! "No attribute at index: " + index); ! return declared [index]; } --- 78,87 ---- // javadoc mostly from interface public boolean isDeclared (int index) { ! if (index < 0 || index >= getLength ()) ! throw new ArrayIndexOutOfBoundsException ( ! "No attribute at index: " + index); ! return declared [index]; } *************** public class Attributes2Impl extends Att *** 91,103 **** // javadoc mostly from interface public boolean isDeclared (String uri, String localName) { ! int index = getIndex (uri, localName); ! if (index < 0) ! throw new IllegalArgumentException ( ! "No such attribute: local=" + localName ! + ", namespace=" + uri); ! return declared [index]; } --- 91,103 ---- // javadoc mostly from interface public boolean isDeclared (String uri, String localName) { ! int index = getIndex (uri, localName); ! if (index < 0) ! throw new IllegalArgumentException ( ! "No such attribute: local=" + localName ! + ", namespace=" + uri); ! return declared [index]; } *************** public class Attributes2Impl extends Att *** 107,118 **** // javadoc mostly from interface public boolean isDeclared (String qName) { ! int index = getIndex (qName); ! if (index < 0) ! throw new IllegalArgumentException ( ! "No such attribute: " + qName); ! return declared [index]; } --- 107,118 ---- // javadoc mostly from interface public boolean isDeclared (String qName) { ! int index = getIndex (qName); ! if (index < 0) ! throw new IllegalArgumentException ( ! "No such attribute: " + qName); ! return declared [index]; } *************** public class Attributes2Impl extends Att *** 126,135 **** */ public boolean isSpecified (int index) { ! if (index < 0 || index >= getLength ()) ! throw new ArrayIndexOutOfBoundsException ( ! "No attribute at index: " + index); ! return specified [index]; } --- 126,135 ---- */ public boolean isSpecified (int index) { ! if (index < 0 || index >= getLength ()) ! throw new ArrayIndexOutOfBoundsException ( ! "No attribute at index: " + index); ! return specified [index]; } *************** public class Attributes2Impl extends Att *** 145,157 **** */ public boolean isSpecified (String uri, String localName) { ! int index = getIndex (uri, localName); ! if (index < 0) ! throw new IllegalArgumentException ( ! "No such attribute: local=" + localName ! + ", namespace=" + uri); ! return specified [index]; } --- 145,157 ---- */ public boolean isSpecified (String uri, String localName) { ! int index = getIndex (uri, localName); ! if (index < 0) ! throw new IllegalArgumentException ( ! "No such attribute: local=" + localName ! + ", namespace=" + uri); ! return specified [index]; } *************** public class Attributes2Impl extends Att *** 165,176 **** */ public boolean isSpecified (String qName) { ! int index = getIndex (qName); ! if (index < 0) ! throw new IllegalArgumentException ( ! "No such attribute: " + qName); ! return specified [index]; } --- 165,176 ---- */ public boolean isSpecified (String qName) { ! int index = getIndex (qName); ! if (index < 0) ! throw new IllegalArgumentException ( ! "No such attribute: " + qName); ! return specified [index]; } *************** public class Attributes2Impl extends Att *** 190,213 **** */ public void setAttributes (Attributes atts) { ! int length = atts.getLength (); ! super.setAttributes (atts); ! declared = new boolean [length]; ! specified = new boolean [length]; ! if (atts instanceof Attributes2) { ! Attributes2 a2 = (Attributes2) atts; ! for (int i = 0; i < length; i++) { ! declared [i] = a2.isDeclared (i); ! specified [i] = a2.isSpecified (i); ! } ! } else { ! for (int i = 0; i < length; i++) { ! declared [i] = !"CDATA".equals (atts.getType (i)); ! specified [i] = true; ! } ! } } --- 190,213 ---- */ public void setAttributes (Attributes atts) { ! int length = atts.getLength (); ! super.setAttributes (atts); ! declared = new boolean [length]; ! specified = new boolean [length]; ! if (atts instanceof Attributes2) { ! Attributes2 a2 = (Attributes2) atts; ! for (int i = 0; i < length; i++) { ! declared [i] = a2.isDeclared (i); ! specified [i] = a2.isSpecified (i); ! } ! } else { ! for (int i = 0; i < length; i++) { ! declared [i] = !"CDATA".equals (atts.getType (i)); ! specified [i] = true; ! } ! } } *************** public class Attributes2Impl extends Att *** 223,263 **** * @see AttributesImpl#addAttribute */ public void addAttribute (String uri, String localName, String qName, ! String type, String value) { ! super.addAttribute (uri, localName, qName, type, value); ! int length = getLength (); ! if (length < specified.length) { ! boolean newFlags []; ! newFlags = new boolean [length]; ! System.arraycopy (declared, 0, newFlags, 0, declared.length); ! declared = newFlags; ! newFlags = new boolean [length]; ! System.arraycopy (specified, 0, newFlags, 0, specified.length); ! specified = newFlags; ! } ! specified [length - 1] = true; ! declared [length - 1] = !"CDATA".equals (type); } // javadoc entirely from superclass public void removeAttribute (int index) { ! int origMax = getLength () - 1; ! super.removeAttribute (index); ! if (index != origMax) { ! System.arraycopy (declared, index + 1, declared, index, ! origMax - index); ! System.arraycopy (specified, index + 1, specified, index, ! origMax - index); ! } } --- 223,263 ---- * @see AttributesImpl#addAttribute */ public void addAttribute (String uri, String localName, String qName, ! String type, String value) { ! super.addAttribute (uri, localName, qName, type, value); ! int length = getLength (); ! if (length < specified.length) { ! boolean newFlags []; ! newFlags = new boolean [length]; ! System.arraycopy (declared, 0, newFlags, 0, declared.length); ! declared = newFlags; ! newFlags = new boolean [length]; ! System.arraycopy (specified, 0, newFlags, 0, specified.length); ! specified = newFlags; ! } ! specified [length - 1] = true; ! declared [length - 1] = !"CDATA".equals (type); } // javadoc entirely from superclass public void removeAttribute (int index) { ! int origMax = getLength () - 1; ! super.removeAttribute (index); ! if (index != origMax) { ! System.arraycopy (declared, index + 1, declared, index, ! origMax - index); ! System.arraycopy (specified, index + 1, specified, index, ! origMax - index); ! } } *************** public class Attributes2Impl extends Att *** 274,283 **** */ public void setDeclared (int index, boolean value) { ! if (index < 0 || index >= getLength ()) ! throw new ArrayIndexOutOfBoundsException ( ! "No attribute at index: " + index); ! declared [index] = value; } --- 274,283 ---- */ public void setDeclared (int index, boolean value) { ! if (index < 0 || index >= getLength ()) ! throw new ArrayIndexOutOfBoundsException ( ! "No attribute at index: " + index); ! declared [index] = value; } *************** public class Attributes2Impl extends Att *** 293,301 **** */ public void setSpecified (int index, boolean value) { ! if (index < 0 || index >= getLength ()) ! throw new ArrayIndexOutOfBoundsException ( ! "No attribute at index: " + index); ! specified [index] = value; } } --- 293,301 ---- */ public void setSpecified (int index, boolean value) { ! if (index < 0 || index >= getLength ()) ! throw new ArrayIndexOutOfBoundsException ( ! "No attribute at index: " + index); ! specified [index] = value; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java Tue Jan 11 19:46:05 2011 *************** public interface DeclHandler *** 54,62 **** *

          The content model will consist of the string "EMPTY", the * string "ANY", or a parenthesised group, optionally followed * by an occurrence indicator. The model will be normalized so ! * that all parameter entities are fully resolved and all whitespace * is removed,and will include the enclosing parentheses. Other ! * normalization (such as removing redundant parentheses or * simplifying occurrence indicators) is at the discretion of the * parser.

          * --- 54,62 ---- *

          The content model will consist of the string "EMPTY", the * string "ANY", or a parenthesised group, optionally followed * by an occurrence indicator. The model will be normalized so ! * that all parameter entities are fully resolved and all whitespace * is removed,and will include the enclosing parentheses. Other ! * normalization (such as removing redundant parentheses or * simplifying occurrence indicators) is at the discretion of the * parser.

          * *************** public interface DeclHandler *** 65,71 **** * @exception SAXException The application may raise an exception. */ public abstract void elementDecl (String name, String model) ! throws SAXException; /** --- 65,71 ---- * @exception SAXException The application may raise an exception. */ public abstract void elementDecl (String name, String model) ! throws SAXException; /** *************** public interface DeclHandler *** 74,80 **** *

          Only the effective (first) declaration for an attribute will * be reported. The type will be one of the strings "CDATA", * "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", ! * "ENTITIES", a parenthesized token group with * the separator "|" and all whitespace removed, or the word * "NOTATION" followed by a space followed by a parenthesized * token group with all whitespace removed.

          --- 74,80 ---- *

          Only the effective (first) declaration for an attribute will * be reported. The type will be one of the strings "CDATA", * "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", ! * "ENTITIES", a parenthesized token group with * the separator "|" and all whitespace removed, or the word * "NOTATION" followed by a space followed by a parenthesized * token group with all whitespace removed.

          *************** public interface DeclHandler *** 94,104 **** * @exception SAXException The application may raise an exception. */ public abstract void attributeDecl (String eName, ! String aName, ! String type, ! String mode, ! String value) ! throws SAXException; /** --- 94,104 ---- * @exception SAXException The application may raise an exception. */ public abstract void attributeDecl (String eName, ! String aName, ! String type, ! String mode, ! String value) ! throws SAXException; /** *************** public interface DeclHandler *** 116,122 **** * @see org.xml.sax.DTDHandler#unparsedEntityDecl */ public abstract void internalEntityDecl (String name, String value) ! throws SAXException; /** --- 116,122 ---- * @see org.xml.sax.DTDHandler#unparsedEntityDecl */ public abstract void internalEntityDecl (String name, String value) ! throws SAXException; /** *************** public interface DeclHandler *** 138,145 **** * @see org.xml.sax.DTDHandler#unparsedEntityDecl */ public abstract void externalEntityDecl (String name, String publicId, ! String systemId) ! throws SAXException; } --- 138,145 ---- * @see org.xml.sax.DTDHandler#unparsedEntityDecl */ public abstract void externalEntityDecl (String name, String publicId, ! String systemId) ! throws SAXException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java Tue Jan 11 19:46:05 2011 *************** public class DefaultHandler2 extends Def *** 45,96 **** public void startCDATA () throws SAXException ! {} public void endCDATA () throws SAXException ! {} public void startDTD (String name, String publicId, String systemId) throws SAXException ! {} public void endDTD () throws SAXException ! {} public void startEntity (String name) throws SAXException ! {} public void endEntity (String name) throws SAXException ! {} public void comment (char ch [], int start, int length) throws SAXException ! { } // SAX2 ext-1.0 DeclHandler public void attributeDecl (String eName, String aName, ! String type, String mode, String value) throws SAXException ! {} public void elementDecl (String name, String model) throws SAXException ! {} public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException ! {} public void internalEntityDecl (String name, String value) throws SAXException ! {} // SAX2 ext-1.1 EntityResolver2 --- 45,96 ---- public void startCDATA () throws SAXException ! {} public void endCDATA () throws SAXException ! {} public void startDTD (String name, String publicId, String systemId) throws SAXException ! {} public void endDTD () throws SAXException ! {} public void startEntity (String name) throws SAXException ! {} public void endEntity (String name) throws SAXException ! {} public void comment (char ch [], int start, int length) throws SAXException ! { } // SAX2 ext-1.0 DeclHandler public void attributeDecl (String eName, String aName, ! String type, String mode, String value) throws SAXException ! {} public void elementDecl (String name, String model) throws SAXException ! {} public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException ! {} public void internalEntityDecl (String name, String value) throws SAXException ! {} // SAX2 ext-1.1 EntityResolver2 *************** public class DefaultHandler2 extends Def *** 100,121 **** */ public InputSource getExternalSubset (String name, String baseURI) throws SAXException, IOException ! { return null; } /** * Tells the parser to resolve the systemId against the baseURI * and read the entity text from that resulting absolute URI. * Note that because the older * {@link DefaultHandler#resolveEntity DefaultHandler.resolveEntity()}, ! * method is overridden to call this one, this method may sometimes * be invoked with null name and baseURI, and * with the systemId already absolutized. */ public InputSource resolveEntity (String name, String publicId, ! String baseURI, String systemId) throws SAXException, IOException ! { return null; } ! // SAX1 EntityResolver /** --- 100,121 ---- */ public InputSource getExternalSubset (String name, String baseURI) throws SAXException, IOException ! { return null; } /** * Tells the parser to resolve the systemId against the baseURI * and read the entity text from that resulting absolute URI. * Note that because the older * {@link DefaultHandler#resolveEntity DefaultHandler.resolveEntity()}, ! * method is overridden to call this one, this method may sometimes * be invoked with null name and baseURI, and * with the systemId already absolutized. */ public InputSource resolveEntity (String name, String publicId, ! String baseURI, String systemId) throws SAXException, IOException ! { return null; } ! // SAX1 EntityResolver /** *************** public class DefaultHandler2 extends Def *** 126,130 **** */ public InputSource resolveEntity (String publicId, String systemId) throws SAXException, IOException ! { return resolveEntity (null, publicId, null, systemId); } } --- 126,130 ---- */ public InputSource resolveEntity (String publicId, String systemId) throws SAXException, IOException ! { return resolveEntity (null, publicId, null, systemId); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java Tue Jan 11 19:46:05 2011 *************** public interface EntityResolver2 extends *** 108,135 **** * that attributes are handled consistently. * For example, an XPath processor needs to know which attibutes have * type "ID" before it can process a widely used type of reference.

          ! * *

          Warning: Returning an external subset modifies * the input document. By providing definitions for general entities, * it can make a malformed document appear to be well formed. *

          * * @param name Identifies the document root element. This name comes ! * from a DOCTYPE declaration (where available) or from the actual ! * root element. * @param baseURI The document's base URI, serving as an additional ! * hint for selecting the external subset. This is always an absolute ! * URI, unless it is null because the XMLReader was given an InputSource ! * without one. * * @return An InputSource object describing the new external subset ! * to be used by the parser, or null to indicate that no external ! * subset is provided. * * @exception SAXException Any SAX exception, possibly wrapping ! * another exception. * @exception IOException Probably indicating a failure to create ! * a new InputStream or Reader, or an illegal URL. */ public InputSource getExternalSubset (String name, String baseURI) throws SAXException, IOException; --- 108,135 ---- * that attributes are handled consistently. * For example, an XPath processor needs to know which attibutes have * type "ID" before it can process a widely used type of reference.

          ! * *

          Warning: Returning an external subset modifies * the input document. By providing definitions for general entities, * it can make a malformed document appear to be well formed. *

          * * @param name Identifies the document root element. This name comes ! * from a DOCTYPE declaration (where available) or from the actual ! * root element. * @param baseURI The document's base URI, serving as an additional ! * hint for selecting the external subset. This is always an absolute ! * URI, unless it is null because the XMLReader was given an InputSource ! * without one. * * @return An InputSource object describing the new external subset ! * to be used by the parser, or null to indicate that no external ! * subset is provided. * * @exception SAXException Any SAX exception, possibly wrapping ! * another exception. * @exception IOException Probably indicating a failure to create ! * a new InputStream or Reader, or an illegal URL. */ public InputSource getExternalSubset (String name, String baseURI) throws SAXException, IOException; *************** public interface EntityResolver2 extends *** 142,149 **** * This method provides more flexibility than the {@link EntityResolver} * interface, supporting implementations of more complex catalogue * schemes such as the one defined by the OASIS XML Catalogs specification.

          * *

          Parsers configured to use this resolver method will call it * to determine the input source to use for any external entity --- 142,149 ---- * This method provides more flexibility than the {@link EntityResolver} * interface, supporting implementations of more complex catalogue * schemes such as the one defined by the OASIS XML Catalogs specification.

          * *

          Parsers configured to use this resolver method will call it * to determine the input source to use for any external entity *************** public interface EntityResolver2 extends *** 156,197 **** * *

          Note that the entity naming scheme used here is the same one * used in the {@link LexicalHandler}, or in the {@link ! org.xml.sax.ContentHandler#skippedEntity ! ContentHandler.skippedEntity()} * method.

          * * @param name Identifies the external entity being resolved. ! * Either "[dtd]" for the external subset, or a name starting ! * with "%" to indicate a parameter entity, or else the name of ! * a general entity. This is never null when invoked by a SAX2 ! * parser. * @param publicId The public identifier of the external entity being ! * referenced (normalized as required by the XML specification), or ! * null if none was supplied. * @param baseURI The URI with respect to which relative systemIDs ! * are interpreted. This is always an absolute URI, unless it is ! * null (likely because the XMLReader was given an InputSource without * one). This URI is defined by the XML specification to be the one ! * associated with the "<" starting the relevant declaration. * @param systemId The system identifier of the external entity ! * being referenced; either a relative or absolute URI. * This is never null when invoked by a SAX2 parser; only declared ! * entities, and any external subset, are resolved by such parsers. * * @return An InputSource object describing the new input source to ! * be used by the parser. Returning null directs the parser to ! * resolve the system ID against the base URI and open a connection ! * to resulting URI. * * @exception SAXException Any SAX exception, possibly wrapping ! * another exception. * @exception IOException Probably indicating a failure to create ! * a new InputStream or Reader, or an illegal URL. */ public InputSource resolveEntity ( ! String name, ! String publicId, ! String baseURI, ! String systemId ) throws SAXException, IOException; } --- 156,197 ---- * *

          Note that the entity naming scheme used here is the same one * used in the {@link LexicalHandler}, or in the {@link ! org.xml.sax.ContentHandler#skippedEntity ! ContentHandler.skippedEntity()} * method.

          * * @param name Identifies the external entity being resolved. ! * Either "[dtd]" for the external subset, or a name starting ! * with "%" to indicate a parameter entity, or else the name of ! * a general entity. This is never null when invoked by a SAX2 ! * parser. * @param publicId The public identifier of the external entity being ! * referenced (normalized as required by the XML specification), or ! * null if none was supplied. * @param baseURI The URI with respect to which relative systemIDs ! * are interpreted. This is always an absolute URI, unless it is ! * null (likely because the XMLReader was given an InputSource without * one). This URI is defined by the XML specification to be the one ! * associated with the "<" starting the relevant declaration. * @param systemId The system identifier of the external entity ! * being referenced; either a relative or absolute URI. * This is never null when invoked by a SAX2 parser; only declared ! * entities, and any external subset, are resolved by such parsers. * * @return An InputSource object describing the new input source to ! * be used by the parser. Returning null directs the parser to ! * resolve the system ID against the base URI and open a connection ! * to resulting URI. * * @exception SAXException Any SAX exception, possibly wrapping ! * another exception. * @exception IOException Probably indicating a failure to create ! * a new InputStream or Reader, or an illegal URL. */ public InputSource resolveEntity ( ! String name, ! String publicId, ! String baseURI, ! String systemId ) throws SAXException, IOException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java Tue Jan 11 19:46:05 2011 *************** public interface LexicalHandler *** 51,57 **** * DOCTYPE declaration; if the document has no DOCTYPE declaration, * this method will not be invoked.

          * ! *

          All declarations reported through * {@link org.xml.sax.DTDHandler DTDHandler} or * {@link org.xml.sax.ext.DeclHandler DeclHandler} events must appear * between the startDTD and {@link #endDTD endDTD} events. --- 51,57 ---- * DOCTYPE declaration; if the document has no DOCTYPE declaration, * this method will not be invoked.

          * ! *

          All declarations reported through * {@link org.xml.sax.DTDHandler DTDHandler} or * {@link org.xml.sax.ext.DeclHandler DeclHandler} events must appear * between the startDTD and {@link #endDTD endDTD} events. *************** public interface LexicalHandler *** 59,72 **** * unless they appear between {@link #startEntity startEntity} * and {@link #endEntity endEntity} events. Comments and * processing instructions from the DTD should also be reported ! * between the startDTD and endDTD events, in their original * order of (logical) occurrence; they are not required to * appear in their correct locations relative to DTDHandler * or DeclHandler events, however.

          * *

          Note that the start/endDTD events will appear within * the start/endDocument events from ContentHandler and ! * before the first * {@link org.xml.sax.ContentHandler#startElement startElement} * event.

          * --- 59,72 ---- * unless they appear between {@link #startEntity startEntity} * and {@link #endEntity endEntity} events. Comments and * processing instructions from the DTD should also be reported ! * between the startDTD and endDTD events, in their original * order of (logical) occurrence; they are not required to * appear in their correct locations relative to DTDHandler * or DeclHandler events, however.

          * *

          Note that the start/endDTD events will appear within * the start/endDocument events from ContentHandler and ! * before the first * {@link org.xml.sax.ContentHandler#startElement startElement} * event.

          * *************** public interface LexicalHandler *** 83,90 **** * @see #startEntity */ public abstract void startDTD (String name, String publicId, ! String systemId) ! throws SAXException; /** --- 83,90 ---- * @see #startEntity */ public abstract void startDTD (String name, String publicId, ! String systemId) ! throws SAXException; /** *************** public interface LexicalHandler *** 98,104 **** * @see #startDTD */ public abstract void endDTD () ! throws SAXException; /** --- 98,104 ---- * @see #startDTD */ public abstract void endDTD () ! throws SAXException; /** *************** public interface LexicalHandler *** 112,123 **** * feature to query or control the reporting of parameter entities.

          * *

          General entities are reported with their regular names, ! * parameter entities have '%' prepended to their names, and * the external DTD subset has the pseudo-entity name "[dtd]".

          * ! *

          When a SAX2 driver is providing these events, all other ! * events must be properly nested within start/end entity ! * events. There is no additional requirement that events from * {@link org.xml.sax.ext.DeclHandler DeclHandler} or * {@link org.xml.sax.DTDHandler DTDHandler} be properly ordered.

          * --- 112,123 ---- * feature to query or control the reporting of parameter entities.

          * *

          General entities are reported with their regular names, ! * parameter entities have '%' prepended to their names, and * the external DTD subset has the pseudo-entity name "[dtd]".

          * ! *

          When a SAX2 driver is providing these events, all other ! * events must be properly nested within start/end entity ! * events. There is no additional requirement that events from * {@link org.xml.sax.ext.DeclHandler DeclHandler} or * {@link org.xml.sax.DTDHandler DTDHandler} be properly ordered.

          * *************** public interface LexicalHandler *** 126,132 **** * event, which is part of the ContentHandler interface.

          * *

          Because of the streaming event model that SAX uses, some ! * entity boundaries cannot be reported under any * circumstances:

          * *
            --- 126,132 ---- * event, which is part of the ContentHandler interface.

            * *

            Because of the streaming event model that SAX uses, some ! * entity boundaries cannot be reported under any * circumstances:

            * *
              *************** public interface LexicalHandler *** 148,157 **** * @exception SAXException The application may raise an exception. * @see #endEntity * @see org.xml.sax.ext.DeclHandler#internalEntityDecl ! * @see org.xml.sax.ext.DeclHandler#externalEntityDecl */ public abstract void startEntity (String name) ! throws SAXException; /** --- 148,157 ---- * @exception SAXException The application may raise an exception. * @see #endEntity * @see org.xml.sax.ext.DeclHandler#internalEntityDecl ! * @see org.xml.sax.ext.DeclHandler#externalEntityDecl */ public abstract void startEntity (String name) ! throws SAXException; /** *************** public interface LexicalHandler *** 162,168 **** * @see #startEntity */ public abstract void endEntity (String name) ! throws SAXException; /** --- 162,168 ---- * @see #startEntity */ public abstract void endEntity (String name) ! throws SAXException; /** *************** public interface LexicalHandler *** 177,183 **** * @see #endCDATA */ public abstract void startCDATA () ! throws SAXException; /** --- 177,183 ---- * @see #endCDATA */ public abstract void startCDATA () ! throws SAXException; /** *************** public interface LexicalHandler *** 187,193 **** * @see #startCDATA */ public abstract void endCDATA () ! throws SAXException; /** --- 187,193 ---- * @see #startCDATA */ public abstract void endCDATA () ! throws SAXException; /** *************** public interface LexicalHandler *** 205,211 **** * @exception SAXException The application may raise an exception. */ public abstract void comment (char ch[], int start, int length) ! throws SAXException; } --- 205,211 ---- * @exception SAXException The application may raise an exception. */ public abstract void comment (char ch[], int start, int length) ! throws SAXException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java Tue Jan 11 19:46:05 2011 *************** import org.xml.sax.Locator; *** 9,15 **** /** ! * SAX2 extension to augment the entity information provided * though a {@link Locator}. * If an implementation supports this extension, the Locator * provided in {@link org.xml.sax.ContentHandler#setDocumentLocator --- 9,15 ---- /** ! * SAX2 extension to augment the entity information provided * though a {@link Locator}. * If an implementation supports this extension, the Locator * provided in {@link org.xml.sax.ContentHandler#setDocumentLocator diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java Tue Jan 11 19:46:05 2011 *************** import org.xml.sax.helpers.LocatorImpl; *** 26,33 **** */ public class Locator2Impl extends LocatorImpl implements Locator2 { ! private String encoding; ! private String version; /** --- 26,33 ---- */ public class Locator2Impl extends LocatorImpl implements Locator2 { ! private String encoding; ! private String version; /** *************** public class Locator2Impl extends Locato *** 41,72 **** * Copy an existing Locator or Locator2 object. * If the object implements Locator2, values of the * encoding and versionstrings are copied, ! * otherwise they set to null. * * @param locator The existing Locator object. */ public Locator2Impl (Locator locator) { ! super (locator); ! if (locator instanceof Locator2) { ! Locator2 l2 = (Locator2) locator; ! version = l2.getXMLVersion (); ! encoding = l2.getEncoding (); ! } } //////////////////////////////////////////////////////////////////// // Locator2 method implementations //////////////////////////////////////////////////////////////////// ! /** * Returns the current value of the version property. * * @see #setXMLVersion */ public String getXMLVersion () ! { return version; } /** * Returns the current value of the encoding property. --- 41,72 ---- * Copy an existing Locator or Locator2 object. * If the object implements Locator2, values of the * encoding and versionstrings are copied, ! * otherwise they set to null. * * @param locator The existing Locator object. */ public Locator2Impl (Locator locator) { ! super (locator); ! if (locator instanceof Locator2) { ! Locator2 l2 = (Locator2) locator; ! version = l2.getXMLVersion (); ! encoding = l2.getEncoding (); ! } } //////////////////////////////////////////////////////////////////// // Locator2 method implementations //////////////////////////////////////////////////////////////////// ! /** * Returns the current value of the version property. * * @see #setXMLVersion */ public String getXMLVersion () ! { return version; } /** * Returns the current value of the encoding property. *************** public class Locator2Impl extends Locato *** 74,86 **** * @see #setEncoding */ public String getEncoding () ! { return encoding; } //////////////////////////////////////////////////////////////////// ! // Setters //////////////////////////////////////////////////////////////////// ! /** * Assigns the current value of the version property. * --- 74,86 ---- * @see #setEncoding */ public String getEncoding () ! { return encoding; } //////////////////////////////////////////////////////////////////// ! // Setters //////////////////////////////////////////////////////////////////// ! /** * Assigns the current value of the version property. * *************** public class Locator2Impl extends Locato *** 88,94 **** * @see #getXMLVersion */ public void setXMLVersion (String version) ! { this.version = version; } /** * Assigns the current value of the encoding property. --- 88,94 ---- * @see #getXMLVersion */ public void setXMLVersion (String version) ! { this.version = version; } /** * Assigns the current value of the encoding property. *************** public class Locator2Impl extends Locato *** 97,101 **** * @see #getEncoding */ public void setEncoding (String encoding) ! { this.encoding = encoding; } } --- 97,101 ---- * @see #getEncoding */ public void setEncoding (String encoding) ! { this.encoding = encoding; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 26,35 **** * AttributesImpl} interface.

              * *

              This class provides a convenience implementation of the SAX ! * {@link org.xml.sax.AttributeList AttributeList} interface. This ! * implementation is useful both for SAX parser writers, who can use ! * it to provide attributes to the application, and for SAX application ! * writers, who can use it to create a persistent copy of an element's * attribute specifications:

              * *
              --- 26,35 ----
                 * AttributesImpl} interface.

              * *

              This class provides a convenience implementation of the SAX ! * {@link org.xml.sax.AttributeList AttributeList} interface. This ! * implementation is useful both for SAX parser writers, who can use ! * it to provide attributes to the application, and for SAX application ! * writers, who can use it to create a persistent copy of an element's * attribute specifications:

              * *
              *************** import java.util.Vector;
              *** 46,52 ****
                 *
                 * 

              Please note that SAX parsers are not required to use this * class to provide an implementation of AttributeList; it is ! * supplied only as an optional convenience. In particular, * parser writers are encouraged to invent more efficient * implementations.

              * --- 46,52 ---- * *

              Please note that SAX parsers are not required to use this * class to provide an implementation of AttributeList; it is ! * supplied only as an optional convenience. In particular, * parser writers are encouraged to invent more efficient * implementations.

              * *************** import java.util.Vector; *** 55,71 **** * that interface has been replaced by * {@link org.xml.sax.Attributes Attributes}, * which is implemented in the ! * {@link org.xml.sax.helpers.AttributesImpl * AttributesImpl} helper class. * @since SAX 1.0 * @author David Megginson * @version 2.0.1 (sax2r2) * @see org.xml.sax.AttributeList ! * @see org.xml.sax.DocumentHandler#startElement */ public class AttributeListImpl implements AttributeList { ! /** * Create an empty attribute list. * --- 55,71 ---- * that interface has been replaced by * {@link org.xml.sax.Attributes Attributes}, * which is implemented in the ! * {@link org.xml.sax.helpers.AttributesImpl * AttributesImpl} helper class. * @since SAX 1.0 * @author David Megginson * @version 2.0.1 (sax2r2) * @see org.xml.sax.AttributeList ! * @see org.xml.sax.DocumentHandler#startElement */ public class AttributeListImpl implements AttributeList { ! /** * Create an empty attribute list. * *************** public class AttributeListImpl implement *** 79,86 **** public AttributeListImpl () { } ! ! /** * Construct a persistent copy of an existing attribute list. * --- 79,86 ---- public AttributeListImpl () { } ! ! /** * Construct a persistent copy of an existing attribute list. * *************** public class AttributeListImpl implement *** 93,108 **** */ public AttributeListImpl (AttributeList atts) { ! setAttributeList(atts); } ! ! ! //////////////////////////////////////////////////////////////////// // Methods specific to this class. //////////////////////////////////////////////////////////////////// ! ! /** * Set the attribute list, discarding previous contents. * --- 93,108 ---- */ public AttributeListImpl (AttributeList atts) { ! setAttributeList(atts); } ! ! ! //////////////////////////////////////////////////////////////////// // Methods specific to this class. //////////////////////////////////////////////////////////////////// ! ! /** * Set the attribute list, discarding previous contents. * *************** public class AttributeListImpl implement *** 113,128 **** */ public void setAttributeList (AttributeList atts) { ! int count = atts.getLength(); ! ! clear(); ! ! for (int i = 0; i < count; i++) { ! addAttribute(atts.getName(i), atts.getType(i), atts.getValue(i)); ! } } ! ! /** * Add an attribute to an attribute list. * --- 113,128 ---- */ public void setAttributeList (AttributeList atts) { ! int count = atts.getLength(); ! ! clear(); ! ! for (int i = 0; i < count; i++) { ! addAttribute(atts.getName(i), atts.getType(i), atts.getValue(i)); ! } } ! ! /** * Add an attribute to an attribute list. * *************** public class AttributeListImpl implement *** 138,149 **** */ public void addAttribute (String name, String type, String value) { ! names.addElement(name); ! types.addElement(type); ! values.addElement(value); } ! ! /** * Remove an attribute from the list. * --- 138,149 ---- */ public void addAttribute (String name, String type, String value) { ! names.addElement(name); ! types.addElement(type); ! values.addElement(value); } ! ! /** * Remove an attribute from the list. * *************** public class AttributeListImpl implement *** 160,175 **** */ public void removeAttribute (String name) { ! int i = names.indexOf(name); ! ! if (i >= 0) { ! names.removeElementAt(i); ! types.removeElementAt(i); ! values.removeElementAt(i); ! } } ! ! /** * Clear the attribute list. * --- 160,175 ---- */ public void removeAttribute (String name) { ! int i = names.indexOf(name); ! ! if (i >= 0) { ! names.removeElementAt(i); ! types.removeElementAt(i); ! values.removeElementAt(i); ! } } ! ! /** * Clear the attribute list. * *************** public class AttributeListImpl implement *** 182,199 **** */ public void clear () { ! names.removeAllElements(); ! types.removeAllElements(); ! values.removeAllElements(); } ! ! ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.AttributeList //////////////////////////////////////////////////////////////////// ! ! /** * Return the number of attributes in the list. * --- 182,199 ---- */ public void clear () { ! names.removeAllElements(); ! types.removeAllElements(); ! values.removeAllElements(); } ! ! ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.AttributeList //////////////////////////////////////////////////////////////////// ! ! /** * Return the number of attributes in the list. * *************** public class AttributeListImpl implement *** 202,211 **** */ public int getLength () { ! return names.size(); } ! ! /** * Get the name of an attribute (by position). * --- 202,211 ---- */ public int getLength () { ! return names.size(); } ! ! /** * Get the name of an attribute (by position). * *************** public class AttributeListImpl implement *** 216,232 **** */ public String getName (int i) { ! if (i < 0) { ! return null; ! } ! try { ! return (String)names.elementAt(i); ! } catch (ArrayIndexOutOfBoundsException e) { ! return null; ! } } ! ! /** * Get the type of an attribute (by position). * --- 216,232 ---- */ public String getName (int i) { ! if (i < 0) { ! return null; ! } ! try { ! return (String)names.elementAt(i); ! } catch (ArrayIndexOutOfBoundsException e) { ! return null; ! } } ! ! /** * Get the type of an attribute (by position). * *************** public class AttributeListImpl implement *** 239,255 **** */ public String getType (int i) { ! if (i < 0) { ! return null; ! } ! try { ! return (String)types.elementAt(i); ! } catch (ArrayIndexOutOfBoundsException e) { ! return null; ! } } ! ! /** * Get the value of an attribute (by position). * --- 239,255 ---- */ public String getType (int i) { ! if (i < 0) { ! return null; ! } ! try { ! return (String)types.elementAt(i); ! } catch (ArrayIndexOutOfBoundsException e) { ! return null; ! } } ! ! /** * Get the value of an attribute (by position). * *************** public class AttributeListImpl implement *** 260,276 **** */ public String getValue (int i) { ! if (i < 0) { ! return null; ! } ! try { ! return (String)values.elementAt(i); ! } catch (ArrayIndexOutOfBoundsException e) { ! return null; ! } } ! ! /** * Get the type of an attribute (by name). * --- 260,276 ---- */ public String getValue (int i) { ! if (i < 0) { ! return null; ! } ! try { ! return (String)values.elementAt(i); ! } catch (ArrayIndexOutOfBoundsException e) { ! return null; ! } } ! ! /** * Get the type of an attribute (by name). * *************** public class AttributeListImpl implement *** 282,291 **** */ public String getType (String name) { ! return getType(names.indexOf(name)); } ! ! /** * Get the value of an attribute (by name). * --- 282,291 ---- */ public String getType (String name) { ! return getType(names.indexOf(name)); } ! ! /** * Get the value of an attribute (by name). * *************** public class AttributeListImpl implement *** 294,304 **** */ public String getValue (String name) { ! return getValue(names.indexOf(name)); } ! ! ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// --- 294,304 ---- */ public String getValue (String name) { ! return getValue(names.indexOf(name)); } ! ! ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java Tue Jan 11 19:46:05 2011 *************** import org.xml.sax.Attributes; *** 20,27 **** * * *

              This class provides a default implementation of the SAX2 ! * {@link org.xml.sax.Attributes Attributes} interface, with the ! * addition of manipulators so that the list can be modified or * reused.

              * *

              There are two typical uses of this class:

              --- 20,27 ---- * * *

              This class provides a default implementation of the SAX2 ! * {@link org.xml.sax.Attributes Attributes} interface, with the ! * addition of manipulators so that the list can be modified or * reused.

              * *

              There are two typical uses of this class:

              *************** import org.xml.sax.Attributes; *** 32,42 **** *
            • to construct or modify an Attributes object in a SAX2 driver or filter.
            • *
        * ! *

        This class replaces the now-deprecated SAX1 {@link * org.xml.sax.helpers.AttributeListImpl AttributeListImpl} * class; in addition to supporting the updated Attributes * interface rather than the deprecated {@link org.xml.sax.AttributeList ! * AttributeList} interface, it also includes a much more efficient * implementation using a single array rather than a set of Vectors.

        * * @since SAX 2.0 --- 32,42 ---- *
      5. to construct or modify an Attributes object in a SAX2 driver or filter.
      6. *
      * ! *

      This class replaces the now-deprecated SAX1 {@link * org.xml.sax.helpers.AttributeListImpl AttributeListImpl} * class; in addition to supporting the updated Attributes * interface rather than the deprecated {@link org.xml.sax.AttributeList ! * AttributeList} interface, it also includes a much more efficient * implementation using a single array rather than a set of Vectors.

      * * @since SAX 2.0 *************** import org.xml.sax.Attributes; *** 46,52 **** public class AttributesImpl implements Attributes { ! //////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////// --- 46,52 ---- public class AttributesImpl implements Attributes { ! //////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////// *************** public class AttributesImpl implements A *** 57,64 **** */ public AttributesImpl () { ! length = 0; ! data = null; } --- 57,64 ---- */ public AttributesImpl () { ! length = 0; ! data = null; } *************** public class AttributesImpl implements A *** 72,82 **** */ public AttributesImpl (Attributes atts) { ! setAttributes(atts); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.Attributes. //////////////////////////////////////////////////////////////////// --- 72,82 ---- */ public AttributesImpl (Attributes atts) { ! setAttributes(atts); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.Attributes. //////////////////////////////////////////////////////////////////// *************** public class AttributesImpl implements A *** 90,96 **** */ public int getLength () { ! return length; } --- 90,96 ---- */ public int getLength () { ! return length; } *************** public class AttributesImpl implements A *** 104,114 **** */ public String getURI (int index) { ! if (index >= 0 && index < length) { ! return data[index*5]; ! } else { ! return null; ! } } --- 104,114 ---- */ public String getURI (int index) { ! if (index >= 0 && index < length) { ! return data[index*5]; ! } else { ! return null; ! } } *************** public class AttributesImpl implements A *** 116,132 **** * Return an attribute's local name. * * @param index The attribute's index (zero-based). ! * @return The attribute's local name, the empty string if * none is available, or null if the index if out of range. * @see org.xml.sax.Attributes#getLocalName */ public String getLocalName (int index) { ! if (index >= 0 && index < length) { ! return data[index*5+1]; ! } else { ! return null; ! } } --- 116,132 ---- * Return an attribute's local name. * * @param index The attribute's index (zero-based). ! * @return The attribute's local name, the empty string if * none is available, or null if the index if out of range. * @see org.xml.sax.Attributes#getLocalName */ public String getLocalName (int index) { ! if (index >= 0 && index < length) { ! return data[index*5+1]; ! } else { ! return null; ! } } *************** public class AttributesImpl implements A *** 134,150 **** * Return an attribute's qualified (prefixed) name. * * @param index The attribute's index (zero-based). ! * @return The attribute's qualified name, the empty string if * none is available, or null if the index is out of bounds. * @see org.xml.sax.Attributes#getQName */ public String getQName (int index) { ! if (index >= 0 && index < length) { ! return data[index*5+2]; ! } else { ! return null; ! } } --- 134,150 ---- * Return an attribute's qualified (prefixed) name. * * @param index The attribute's index (zero-based). ! * @return The attribute's qualified name, the empty string if * none is available, or null if the index is out of bounds. * @see org.xml.sax.Attributes#getQName */ public String getQName (int index) { ! if (index >= 0 && index < length) { ! return data[index*5+2]; ! } else { ! return null; ! } } *************** public class AttributesImpl implements A *** 158,168 **** */ public String getType (int index) { ! if (index >= 0 && index < length) { ! return data[index*5+3]; ! } else { ! return null; ! } } --- 158,168 ---- */ public String getType (int index) { ! if (index >= 0 && index < length) { ! return data[index*5+3]; ! } else { ! return null; ! } } *************** public class AttributesImpl implements A *** 175,185 **** */ public String getValue (int index) { ! if (index >= 0 && index < length) { ! return data[index*5+4]; ! } else { ! return null; ! } } --- 175,185 ---- */ public String getValue (int index) { ! if (index >= 0 && index < length) { ! return data[index*5+4]; ! } else { ! return null; ! } } *************** public class AttributesImpl implements A *** 198,210 **** */ public int getIndex (String uri, String localName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i].equals(uri) && data[i+1].equals(localName)) { ! return i / 5; ! } ! } ! return -1; } --- 198,210 ---- */ public int getIndex (String uri, String localName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i].equals(uri) && data[i+1].equals(localName)) { ! return i / 5; ! } ! } ! return -1; } *************** public class AttributesImpl implements A *** 217,229 **** */ public int getIndex (String qName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i+2].equals(qName)) { ! return i / 5; ! } ! } ! return -1; } --- 217,229 ---- */ public int getIndex (String qName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i+2].equals(qName)) { ! return i / 5; ! } ! } ! return -1; } *************** public class AttributesImpl implements A *** 239,251 **** */ public String getType (String uri, String localName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i].equals(uri) && data[i+1].equals(localName)) { ! return data[i+3]; ! } ! } ! return null; } --- 239,251 ---- */ public String getType (String uri, String localName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i].equals(uri) && data[i+1].equals(localName)) { ! return data[i+3]; ! } ! } ! return null; } *************** public class AttributesImpl implements A *** 259,271 **** */ public String getType (String qName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i+2].equals(qName)) { ! return data[i+3]; ! } ! } ! return null; } --- 259,271 ---- */ public String getType (String qName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i+2].equals(qName)) { ! return data[i+3]; ! } ! } ! return null; } *************** public class AttributesImpl implements A *** 281,293 **** */ public String getValue (String uri, String localName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i].equals(uri) && data[i+1].equals(localName)) { ! return data[i+4]; ! } ! } ! return null; } --- 281,293 ---- */ public String getValue (String uri, String localName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i].equals(uri) && data[i+1].equals(localName)) { ! return data[i+4]; ! } ! } ! return null; } *************** public class AttributesImpl implements A *** 301,317 **** */ public String getValue (String qName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i+2].equals(qName)) { ! return data[i+4]; ! } ! } ! return null; } ! //////////////////////////////////////////////////////////////////// // Manipulators. //////////////////////////////////////////////////////////////////// --- 301,317 ---- */ public String getValue (String qName) { ! int max = length * 5; ! for (int i = 0; i < max; i += 5) { ! if (data[i+2].equals(qName)) { ! return data[i+4]; ! } ! } ! return null; } ! //////////////////////////////////////////////////////////////////// // Manipulators. //////////////////////////////////////////////////////////////////// *************** public class AttributesImpl implements A *** 321,336 **** * Clear the attribute list for reuse. * *

      Note that little memory is freed by this call: ! * the current array is kept so it can be * reused.

      */ public void clear () { ! if (data != null) { ! for (int i = 0; i < (length * 5); i++) ! data [i] = null; ! } ! length = 0; } --- 321,336 ---- * Clear the attribute list for reuse. * *

      Note that little memory is freed by this call: ! * the current array is kept so it can be * reused.

      */ public void clear () { ! if (data != null) { ! for (int i = 0; i < (length * 5); i++) ! data [i] = null; ! } ! length = 0; } *************** public class AttributesImpl implements A *** 339,345 **** * *

      It may be more efficient to reuse an existing object * rather than constantly allocating new ones.

      ! * * @param atts The attributes to copy. */ public void setAttributes (Attributes atts) --- 339,345 ---- * *

      It may be more efficient to reuse an existing object * rather than constantly allocating new ones.

      ! * * @param atts The attributes to copy. */ public void setAttributes (Attributes atts) *************** public class AttributesImpl implements A *** 355,361 **** data[i*5+3] = atts.getType(i); data[i*5+4] = atts.getValue(i); } ! } } --- 355,361 ---- data[i*5+3] = atts.getType(i); data[i*5+4] = atts.getValue(i); } ! } } *************** public class AttributesImpl implements A *** 377,391 **** * @param value The attribute value. */ public void addAttribute (String uri, String localName, String qName, ! String type, String value) { ! ensureCapacity(length+1); ! data[length*5] = uri; ! data[length*5+1] = localName; ! data[length*5+2] = qName; ! data[length*5+3] = type; ! data[length*5+4] = value; ! length++; } --- 377,391 ---- * @param value The attribute value. */ public void addAttribute (String uri, String localName, String qName, ! String type, String value) { ! ensureCapacity(length+1); ! data[length*5] = uri; ! data[length*5+1] = localName; ! data[length*5+2] = qName; ! data[length*5+3] = type; ! data[length*5+4] = value; ! length++; } *************** public class AttributesImpl implements A *** 411,427 **** * in the list. */ public void setAttribute (int index, String uri, String localName, ! String qName, String type, String value) { ! if (index >= 0 && index < length) { ! data[index*5] = uri; ! data[index*5+1] = localName; ! data[index*5+2] = qName; ! data[index*5+3] = type; ! data[index*5+4] = value; ! } else { ! badIndex(index); ! } } --- 411,427 ---- * in the list. */ public void setAttribute (int index, String uri, String localName, ! String qName, String type, String value) { ! if (index >= 0 && index < length) { ! data[index*5] = uri; ! data[index*5+1] = localName; ! data[index*5+2] = qName; ! data[index*5+3] = type; ! data[index*5+4] = value; ! } else { ! badIndex(index); ! } } *************** public class AttributesImpl implements A *** 435,455 **** */ public void removeAttribute (int index) { ! if (index >= 0 && index < length) { ! if (index < length - 1) { ! System.arraycopy(data, (index+1)*5, data, index*5, ! (length-index-1)*5); ! } ! index = (length - 1) * 5; ! data [index++] = null; ! data [index++] = null; ! data [index++] = null; ! data [index++] = null; ! data [index] = null; ! length--; ! } else { ! badIndex(index); ! } } --- 435,455 ---- */ public void removeAttribute (int index) { ! if (index >= 0 && index < length) { ! if (index < length - 1) { ! System.arraycopy(data, (index+1)*5, data, index*5, ! (length-index-1)*5); ! } ! index = (length - 1) * 5; ! data [index++] = null; ! data [index++] = null; ! data [index++] = null; ! data [index++] = null; ! data [index] = null; ! length--; ! } else { ! badIndex(index); ! } } *************** public class AttributesImpl implements A *** 465,475 **** */ public void setURI (int index, String uri) { ! if (index >= 0 && index < length) { ! data[index*5] = uri; ! } else { ! badIndex(index); ! } } --- 465,475 ---- */ public void setURI (int index, String uri) { ! if (index >= 0 && index < length) { ! data[index*5] = uri; ! } else { ! badIndex(index); ! } } *************** public class AttributesImpl implements A *** 485,495 **** */ public void setLocalName (int index, String localName) { ! if (index >= 0 && index < length) { ! data[index*5+1] = localName; ! } else { ! badIndex(index); ! } } --- 485,495 ---- */ public void setLocalName (int index, String localName) { ! if (index >= 0 && index < length) { ! data[index*5+1] = localName; ! } else { ! badIndex(index); ! } } *************** public class AttributesImpl implements A *** 505,515 **** */ public void setQName (int index, String qName) { ! if (index >= 0 && index < length) { ! data[index*5+2] = qName; ! } else { ! badIndex(index); ! } } --- 505,515 ---- */ public void setQName (int index, String qName) { ! if (index >= 0 && index < length) { ! data[index*5+2] = qName; ! } else { ! badIndex(index); ! } } *************** public class AttributesImpl implements A *** 524,534 **** */ public void setType (int index, String type) { ! if (index >= 0 && index < length) { ! data[index*5+3] = type; ! } else { ! badIndex(index); ! } } --- 524,534 ---- */ public void setType (int index, String type) { ! if (index >= 0 && index < length) { ! data[index*5+3] = type; ! } else { ! badIndex(index); ! } } *************** public class AttributesImpl implements A *** 543,557 **** */ public void setValue (int index, String value) { ! if (index >= 0 && index < length) { ! data[index*5+4] = value; ! } else { ! badIndex(index); ! } } ! //////////////////////////////////////////////////////////////////// // Internal methods. //////////////////////////////////////////////////////////////////// --- 543,557 ---- */ public void setValue (int index, String value) { ! if (index >= 0 && index < length) { ! data[index*5+4] = value; ! } else { ! badIndex(index); ! } } ! //////////////////////////////////////////////////////////////////// // Internal methods. //////////////////////////////////////////////////////////////////// *************** public class AttributesImpl implements A *** 596,610 **** * @exception java.lang.ArrayIndexOutOfBoundsException Always. */ private void badIndex (int index) ! throws ArrayIndexOutOfBoundsException { ! String msg = ! "Attempt to modify attribute at illegal index: " + index; ! throw new ArrayIndexOutOfBoundsException(msg); } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// --- 596,610 ---- * @exception java.lang.ArrayIndexOutOfBoundsException Always. */ private void badIndex (int index) ! throws ArrayIndexOutOfBoundsException { ! String msg = ! "Attempt to modify attribute at illegal index: " + index; ! throw new ArrayIndexOutOfBoundsException(msg); } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// *************** public class AttributesImpl implements A *** 615,618 **** } // end of AttributesImpl.java - --- 615,617 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java Tue Jan 11 19:46:05 2011 *************** import org.xml.sax.SAXParseException; *** 59,70 **** public class DefaultHandler implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler { ! ! //////////////////////////////////////////////////////////////////// // Default implementation of the EntityResolver interface. //////////////////////////////////////////////////////////////////// ! /** * Resolve an external entity. * --- 59,70 ---- public class DefaultHandler implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler { ! ! //////////////////////////////////////////////////////////////////// // Default implementation of the EntityResolver interface. //////////////////////////////////////////////////////////////////// ! /** * Resolve an external entity. * *************** public class DefaultHandler *** 76,82 **** * * @param publicId The public identifer, or null if none is * available. ! * @param systemId The system identifier provided in the XML * document. * @return The new input source, or null to require the * default behaviour. --- 76,82 ---- * * @param publicId The public identifer, or null if none is * available. ! * @param systemId The system identifier provided in the XML * document. * @return The new input source, or null to require the * default behaviour. *************** public class DefaultHandler *** 87,104 **** * @see org.xml.sax.EntityResolver#resolveEntity */ public InputSource resolveEntity (String publicId, String systemId) ! throws IOException, SAXException { ! return null; } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of DTDHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive notification of a notation declaration. * --- 87,104 ---- * @see org.xml.sax.EntityResolver#resolveEntity */ public InputSource resolveEntity (String publicId, String systemId) ! throws IOException, SAXException { ! return null; } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of DTDHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive notification of a notation declaration. * *************** public class DefaultHandler *** 115,126 **** * @see org.xml.sax.DTDHandler#notationDecl */ public void notationDecl (String name, String publicId, String systemId) ! throws SAXException { ! // no op } ! ! /** * Receive notification of an unparsed entity declaration. * --- 115,126 ---- * @see org.xml.sax.DTDHandler#notationDecl */ public void notationDecl (String name, String publicId, String systemId) ! throws SAXException { ! // no op } ! ! /** * Receive notification of an unparsed entity declaration. * *************** public class DefaultHandler *** 138,156 **** * @see org.xml.sax.DTDHandler#unparsedEntityDecl */ public void unparsedEntityDecl (String name, String publicId, ! String systemId, String notationName) ! throws SAXException { ! // no op } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of ContentHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive a Locator object for document events. * --- 138,156 ---- * @see org.xml.sax.DTDHandler#unparsedEntityDecl */ public void unparsedEntityDecl (String name, String publicId, ! String systemId, String notationName) ! throws SAXException { ! // no op } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of ContentHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive a Locator object for document events. * *************** public class DefaultHandler *** 164,173 **** */ public void setDocumentLocator (Locator locator) { ! // no op } ! ! /** * Receive notification of the beginning of the document. * --- 164,173 ---- */ public void setDocumentLocator (Locator locator) { ! // no op } ! ! /** * Receive notification of the beginning of the document. * *************** public class DefaultHandler *** 181,192 **** * @see org.xml.sax.ContentHandler#startDocument */ public void startDocument () ! throws SAXException { ! // no op } ! ! /** * Receive notification of the end of the document. * --- 181,192 ---- * @see org.xml.sax.ContentHandler#startDocument */ public void startDocument () ! throws SAXException { ! // no op } ! ! /** * Receive notification of the end of the document. * *************** public class DefaultHandler *** 200,208 **** * @see org.xml.sax.ContentHandler#endDocument */ public void endDocument () ! throws SAXException { ! // no op } --- 200,208 ---- * @see org.xml.sax.ContentHandler#endDocument */ public void endDocument () ! throws SAXException { ! // no op } *************** public class DefaultHandler *** 220,228 **** * @see org.xml.sax.ContentHandler#startPrefixMapping */ public void startPrefixMapping (String prefix, String uri) ! throws SAXException { ! // no op } --- 220,228 ---- * @see org.xml.sax.ContentHandler#startPrefixMapping */ public void startPrefixMapping (String prefix, String uri) ! throws SAXException { ! // no op } *************** public class DefaultHandler *** 239,250 **** * @see org.xml.sax.ContentHandler#endPrefixMapping */ public void endPrefixMapping (String prefix) ! throws SAXException { ! // no op } ! ! /** * Receive notification of the start of an element. * --- 239,250 ---- * @see org.xml.sax.ContentHandler#endPrefixMapping */ public void endPrefixMapping (String prefix) ! throws SAXException { ! // no op } ! ! /** * Receive notification of the start of an element. * *************** public class DefaultHandler *** 269,281 **** * @see org.xml.sax.ContentHandler#startElement */ public void startElement (String uri, String localName, ! String qName, Attributes attributes) ! throws SAXException { ! // no op } ! ! /** * Receive notification of the end of an element. * --- 269,281 ---- * @see org.xml.sax.ContentHandler#startElement */ public void startElement (String uri, String localName, ! String qName, Attributes attributes) ! throws SAXException { ! // no op } ! ! /** * Receive notification of the end of an element. * *************** public class DefaultHandler *** 297,308 **** * @see org.xml.sax.ContentHandler#endElement */ public void endElement (String uri, String localName, String qName) ! throws SAXException { ! // no op } ! ! /** * Receive notification of character data inside an element. * --- 297,308 ---- * @see org.xml.sax.ContentHandler#endElement */ public void endElement (String uri, String localName, String qName) ! throws SAXException { ! // no op } ! ! /** * Receive notification of character data inside an element. * *************** public class DefaultHandler *** 320,331 **** * @see org.xml.sax.ContentHandler#characters */ public void characters (char ch[], int start, int length) ! throws SAXException { ! // no op } ! ! /** * Receive notification of ignorable whitespace in element content. * --- 320,331 ---- * @see org.xml.sax.ContentHandler#characters */ public void characters (char ch[], int start, int length) ! throws SAXException { ! // no op } ! ! /** * Receive notification of ignorable whitespace in element content. * *************** public class DefaultHandler *** 343,354 **** * @see org.xml.sax.ContentHandler#ignorableWhitespace */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! // no op } ! ! /** * Receive notification of a processing instruction. * --- 343,354 ---- * @see org.xml.sax.ContentHandler#ignorableWhitespace */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! // no op } ! ! /** * Receive notification of a processing instruction. * *************** public class DefaultHandler *** 365,373 **** * @see org.xml.sax.ContentHandler#processingInstruction */ public void processingInstruction (String target, String data) ! throws SAXException { ! // no op } --- 365,373 ---- * @see org.xml.sax.ContentHandler#processingInstruction */ public void processingInstruction (String target, String data) ! throws SAXException { ! // no op } *************** public class DefaultHandler *** 385,402 **** * @see org.xml.sax.ContentHandler#processingInstruction */ public void skippedEntity (String name) ! throws SAXException { ! // no op } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of the ErrorHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive notification of a parser warning. * --- 385,402 ---- * @see org.xml.sax.ContentHandler#processingInstruction */ public void skippedEntity (String name) ! throws SAXException { ! // no op } ! ! ! //////////////////////////////////////////////////////////////////// // Default implementation of the ErrorHandler interface. //////////////////////////////////////////////////////////////////// ! ! /** * Receive notification of a parser warning. * *************** public class DefaultHandler *** 412,423 **** * @see org.xml.sax.SAXParseException */ public void warning (SAXParseException e) ! throws SAXException { ! // no op } ! ! /** * Receive notification of a recoverable parser error. * --- 412,423 ---- * @see org.xml.sax.SAXParseException */ public void warning (SAXParseException e) ! throws SAXException { ! // no op } ! ! /** * Receive notification of a recoverable parser error. * *************** public class DefaultHandler *** 433,444 **** * @see org.xml.sax.SAXParseException */ public void error (SAXParseException e) ! throws SAXException { ! // no op } ! ! /** * Report a fatal XML parsing error. * --- 433,444 ---- * @see org.xml.sax.SAXParseException */ public void error (SAXParseException e) ! throws SAXException { ! // no op } ! ! /** * Report a fatal XML parsing error. * *************** public class DefaultHandler *** 457,467 **** * @see org.xml.sax.SAXParseException */ public void fatalError (SAXParseException e) ! throws SAXException { ! throw e; } ! } // end of DefaultHandler.java --- 457,467 ---- * @see org.xml.sax.SAXParseException */ public void fatalError (SAXParseException e) ! throws SAXException { ! throw e; } ! } // end of DefaultHandler.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java Tue Jan 11 19:46:05 2011 *************** import org.xml.sax.Locator; *** 51,58 **** */ public class LocatorImpl implements Locator { ! ! /** * Zero-argument constructor. * --- 51,58 ---- */ public class LocatorImpl implements Locator { ! ! /** * Zero-argument constructor. * *************** public class LocatorImpl implements Loca *** 62,69 **** public LocatorImpl () { } ! ! /** * Copy constructor. * --- 62,69 ---- public LocatorImpl () { } ! ! /** * Copy constructor. * *************** public class LocatorImpl implements Loca *** 76,94 **** */ public LocatorImpl (Locator locator) { ! setPublicId(locator.getPublicId()); ! setSystemId(locator.getSystemId()); ! setLineNumber(locator.getLineNumber()); ! setColumnNumber(locator.getColumnNumber()); } ! ! ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.Locator //////////////////////////////////////////////////////////////////// ! ! /** * Return the saved public identifier. * --- 76,94 ---- */ public LocatorImpl (Locator locator) { ! setPublicId(locator.getPublicId()); ! setSystemId(locator.getSystemId()); ! setLineNumber(locator.getLineNumber()); ! setColumnNumber(locator.getColumnNumber()); } ! ! ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.Locator //////////////////////////////////////////////////////////////////// ! ! /** * Return the saved public identifier. * *************** public class LocatorImpl implements Loca *** 99,108 **** */ public String getPublicId () { ! return publicId; } ! ! /** * Return the saved system identifier. * --- 99,108 ---- */ public String getPublicId () { ! return publicId; } ! ! /** * Return the saved system identifier. * *************** public class LocatorImpl implements Loca *** 113,122 **** */ public String getSystemId () { ! return systemId; } ! ! /** * Return the saved line number (1-based). * --- 113,122 ---- */ public String getSystemId () { ! return systemId; } ! ! /** * Return the saved line number (1-based). * *************** public class LocatorImpl implements Loca *** 126,135 **** */ public int getLineNumber () { ! return lineNumber; } ! ! /** * Return the saved column number (1-based). * --- 126,135 ---- */ public int getLineNumber () { ! return lineNumber; } ! ! /** * Return the saved column number (1-based). * *************** public class LocatorImpl implements Loca *** 139,180 **** */ public int getColumnNumber () { ! return columnNumber; } ! ! ! //////////////////////////////////////////////////////////////////// // Setters for the properties (not in org.xml.sax.Locator) //////////////////////////////////////////////////////////////////// ! ! /** * Set the public identifier for this locator. * ! * @param publicId The new public identifier, or null * if none is available. * @see #getPublicId */ public void setPublicId (String publicId) { ! this.publicId = publicId; } ! ! /** * Set the system identifier for this locator. * ! * @param systemId The new system identifier, or null * if none is available. * @see #getSystemId */ public void setSystemId (String systemId) { ! this.systemId = systemId; } ! ! /** * Set the line number for this locator (1-based). * --- 139,180 ---- */ public int getColumnNumber () { ! return columnNumber; } ! ! ! //////////////////////////////////////////////////////////////////// // Setters for the properties (not in org.xml.sax.Locator) //////////////////////////////////////////////////////////////////// ! ! /** * Set the public identifier for this locator. * ! * @param publicId The new public identifier, or null * if none is available. * @see #getPublicId */ public void setPublicId (String publicId) { ! this.publicId = publicId; } ! ! /** * Set the system identifier for this locator. * ! * @param systemId The new system identifier, or null * if none is available. * @see #getSystemId */ public void setSystemId (String systemId) { ! this.systemId = systemId; } ! ! /** * Set the line number for this locator (1-based). * *************** public class LocatorImpl implements Loca *** 183,192 **** */ public void setLineNumber (int lineNumber) { ! this.lineNumber = lineNumber; } ! ! /** * Set the column number for this locator (1-based). * --- 183,192 ---- */ public void setLineNumber (int lineNumber) { ! this.lineNumber = lineNumber; } ! ! /** * Set the column number for this locator (1-based). * *************** public class LocatorImpl implements Loca *** 195,214 **** */ public void setColumnNumber (int columnNumber) { ! this.columnNumber = columnNumber; } ! ! ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// ! private String publicId; private String systemId; private int lineNumber; private int columnNumber; ! } // end of LocatorImpl.java --- 195,214 ---- */ public void setColumnNumber (int columnNumber) { ! this.columnNumber = columnNumber; } ! ! ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// ! private String publicId; private String systemId; private int lineNumber; private int columnNumber; ! } // end of LocatorImpl.java diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 72,78 **** public class NamespaceSupport { ! //////////////////////////////////////////////////////////////////// // Constants. //////////////////////////////////////////////////////////////////// --- 72,78 ---- public class NamespaceSupport { ! //////////////////////////////////////////////////////////////////// // Constants. //////////////////////////////////////////////////////////////////// *************** public class NamespaceSupport *** 87,102 **** * to the "xml" prefix.

      */ public final static String XMLNS = ! "http://www.w3.org/XML/1998/namespace"; /** * The namespace declaration URI as a constant. * The value is http://www.w3.org/xmlns/2000/, as defined * in a backwards-incompatible erratum to the "Namespaces in XML" ! * recommendation. Because that erratum postdated SAX2, SAX2 defaults * to the original recommendation, and does not normally use this URI. ! * * *

      This is the Namespace URI that is optionally applied to * xmlns and xmlns:* attributes, which are used to --- 87,102 ---- * to the "xml" prefix.

      */ public final static String XMLNS = ! "http://www.w3.org/XML/1998/namespace"; /** * The namespace declaration URI as a constant. * The value is http://www.w3.org/xmlns/2000/, as defined * in a backwards-incompatible erratum to the "Namespaces in XML" ! * recommendation. Because that erratum postdated SAX2, SAX2 defaults * to the original recommendation, and does not normally use this URI. ! * * *

      This is the Namespace URI that is optionally applied to * xmlns and xmlns:* attributes, which are used to *************** public class NamespaceSupport *** 107,122 **** * @see #isNamespaceDeclUris */ public final static String NSDECL = ! "http://www.w3.org/xmlns/2000/"; /** * An empty enumeration. */ private final static Enumeration EMPTY_ENUMERATION = ! new Vector().elements(); - //////////////////////////////////////////////////////////////////// // Constructor. //////////////////////////////////////////////////////////////////// --- 107,122 ---- * @see #isNamespaceDeclUris */ public final static String NSDECL = ! "http://www.w3.org/xmlns/2000/"; /** * An empty enumeration. */ private final static Enumeration EMPTY_ENUMERATION = ! new Vector().elements(); ! //////////////////////////////////////////////////////////////////// // Constructor. //////////////////////////////////////////////////////////////////// *************** public class NamespaceSupport *** 127,137 **** */ public NamespaceSupport () { ! reset(); } ! //////////////////////////////////////////////////////////////////// // Context management. //////////////////////////////////////////////////////////////////// --- 127,137 ---- */ public NamespaceSupport () { ! reset(); } ! //////////////////////////////////////////////////////////////////// // Context management. //////////////////////////////////////////////////////////////////// *************** public class NamespaceSupport *** 150,160 **** */ public void reset () { ! contexts = new Context[32]; ! namespaceDeclUris = false; ! contextPos = 0; ! contexts[contextPos] = currentContext = new Context(); ! currentContext.declarePrefix("xml", XMLNS); } --- 150,160 ---- */ public void reset () { ! contexts = new Context[32]; ! namespaceDeclUris = false; ! contextPos = 0; ! contexts[contextPos] = currentContext = new Context(); ! currentContext.declarePrefix("xml", XMLNS); } *************** public class NamespaceSupport *** 196,224 **** */ public void pushContext () { ! int max = contexts.length; ! contexts [contextPos].declsOK = false; ! contextPos++; ! // Extend the array if necessary ! if (contextPos >= max) { ! Context newContexts[] = new Context[max*2]; ! System.arraycopy(contexts, 0, newContexts, 0, max); ! max *= 2; ! contexts = newContexts; ! } ! // Allocate the context if necessary. ! currentContext = contexts[contextPos]; ! if (currentContext == null) { ! contexts[contextPos] = currentContext = new Context(); ! } ! // Set the parent, if any. ! if (contextPos > 0) { ! currentContext.setParent(contexts[contextPos - 1]); ! } } --- 196,224 ---- */ public void pushContext () { ! int max = contexts.length; ! contexts [contextPos].declsOK = false; ! contextPos++; ! // Extend the array if necessary ! if (contextPos >= max) { ! Context newContexts[] = new Context[max*2]; ! System.arraycopy(contexts, 0, newContexts, 0, max); ! max *= 2; ! contexts = newContexts; ! } ! // Allocate the context if necessary. ! currentContext = contexts[contextPos]; ! if (currentContext == null) { ! contexts[contextPos] = currentContext = new Context(); ! } ! // Set the parent, if any. ! if (contextPos > 0) { ! currentContext.setParent(contexts[contextPos - 1]); ! } } *************** public class NamespaceSupport *** 237,252 **** */ public void popContext () { ! contexts[contextPos].clear(); ! contextPos--; ! if (contextPos < 0) { ! throw new EmptyStackException(); ! } ! currentContext = contexts[contextPos]; } ! //////////////////////////////////////////////////////////////////// // Operations within a context. //////////////////////////////////////////////////////////////////// --- 237,252 ---- */ public void popContext () { ! contexts[contextPos].clear(); ! contextPos--; ! if (contextPos < 0) { ! throw new EmptyStackException(); ! } ! currentContext = contexts[contextPos]; } ! //////////////////////////////////////////////////////////////////// // Operations within a context. //////////////////////////////////////////////////////////////////// *************** public class NamespaceSupport *** 281,288 **** * for attribute names, where the default prefix is not allowed.

      * * @param prefix The prefix to declare, or the empty string to ! * indicate the default element namespace. This may never have ! * the value "xml" or "xmlns". * @param uri The Namespace URI to associate with the prefix. * @return true if the prefix was legal, false otherwise * --- 281,288 ---- * for attribute names, where the default prefix is not allowed.

      * * @param prefix The prefix to declare, or the empty string to ! * indicate the default element namespace. This may never have ! * the value "xml" or "xmlns". * @param uri The Namespace URI to associate with the prefix. * @return true if the prefix was legal, false otherwise * *************** public class NamespaceSupport *** 292,303 **** */ public boolean declarePrefix (String prefix, String uri) { ! if (prefix.equals("xml") || prefix.equals("xmlns")) { ! return false; ! } else { ! currentContext.declarePrefix(prefix, uri); ! return true; ! } } --- 292,303 ---- */ public boolean declarePrefix (String prefix, String uri) { ! if (prefix.equals("xml") || prefix.equals("xmlns")) { ! return false; ! } else { ! currentContext.declarePrefix(prefix, uri); ! return true; ! } } *************** public class NamespaceSupport *** 335,358 **** * holding at least three members. * @param isAttribute A flag indicating whether this is an * attribute name (true) or an element name (false). ! * @return The supplied array holding three internalized strings * representing the Namespace URI (or empty string), the * local name, and the XML qualified name; or null if there * is an undeclared prefix. * @see #declarePrefix * @see java.lang.String#intern */ public String [] processName (String qName, String parts[], ! boolean isAttribute) { ! String myParts[] = currentContext.processName(qName, isAttribute); ! if (myParts == null) { ! return null; ! } else { ! parts[0] = myParts[0]; ! parts[1] = myParts[1]; ! parts[2] = myParts[2]; ! return parts; ! } } --- 335,358 ---- * holding at least three members. * @param isAttribute A flag indicating whether this is an * attribute name (true) or an element name (false). ! * @return The supplied array holding three internalized strings * representing the Namespace URI (or empty string), the * local name, and the XML qualified name; or null if there * is an undeclared prefix. * @see #declarePrefix * @see java.lang.String#intern */ public String [] processName (String qName, String parts[], ! boolean isAttribute) { ! String myParts[] = currentContext.processName(qName, isAttribute); ! if (myParts == null) { ! return null; ! } else { ! parts[0] = myParts[0]; ! parts[1] = myParts[1]; ! parts[2] = myParts[2]; ! return parts; ! } } *************** public class NamespaceSupport *** 370,376 **** */ public String getURI (String prefix) { ! return currentContext.getURI(prefix); } --- 370,376 ---- */ public String getURI (String prefix) { ! return currentContext.getURI(prefix); } *************** public class NamespaceSupport *** 390,396 **** */ public Enumeration getPrefixes () { ! return currentContext.getPrefixes(); } --- 390,396 ---- */ public Enumeration getPrefixes () { ! return currentContext.getPrefixes(); } *************** public class NamespaceSupport *** 415,421 **** */ public String getPrefix (String uri) { ! return currentContext.getPrefix(uri); } --- 415,421 ---- */ public String getPrefix (String uri) { ! return currentContext.getPrefix(uri); } *************** public class NamespaceSupport *** 427,433 **** * *

      This method returns prefixes mapped to a specific Namespace * URI. The xml: prefix will be included. If you want only one ! * prefix that's mapped to the Namespace URI, and you don't care * which one you get, use the {@link #getPrefix getPrefix} * method instead.

      * --- 427,433 ---- * *

      This method returns prefixes mapped to a specific Namespace * URI. The xml: prefix will be included. If you want only one ! * prefix that's mapped to the Namespace URI, and you don't care * which one you get, use the {@link #getPrefix getPrefix} * method instead.

      * *************** public class NamespaceSupport *** 444,465 **** */ public Enumeration getPrefixes (String uri) { ! Vector prefixes = new Vector(); ! Enumeration allPrefixes = getPrefixes(); ! while (allPrefixes.hasMoreElements()) { ! String prefix = (String)allPrefixes.nextElement(); ! if (uri.equals(getURI(prefix))) { ! prefixes.addElement(prefix); ! } ! } ! return prefixes.elements(); } /** * Return an enumeration of all prefixes declared in this context. * ! *

      The empty (default) prefix will be included in this * enumeration; note that this behaviour differs from that of * {@link #getPrefix} and {@link #getPrefixes}.

      * --- 444,465 ---- */ public Enumeration getPrefixes (String uri) { ! Vector prefixes = new Vector(); ! Enumeration allPrefixes = getPrefixes(); ! while (allPrefixes.hasMoreElements()) { ! String prefix = (String)allPrefixes.nextElement(); ! if (uri.equals(getURI(prefix))) { ! prefixes.addElement(prefix); ! } ! } ! return prefixes.elements(); } /** * Return an enumeration of all prefixes declared in this context. * ! *

      The empty (default) prefix will be included in this * enumeration; note that this behaviour differs from that of * {@link #getPrefix} and {@link #getPrefixes}.

      * *************** public class NamespaceSupport *** 470,476 **** */ public Enumeration getDeclaredPrefixes () { ! return currentContext.getDeclaredPrefixes(); } /** --- 470,476 ---- */ public Enumeration getDeclaredPrefixes () { ! return currentContext.getDeclaredPrefixes(); } /** *************** public class NamespaceSupport *** 482,502 **** * @since SAX 2.1alpha * * @exception IllegalStateException when attempting to set this ! * after any context has been pushed. */ public void setNamespaceDeclUris (boolean value) { ! if (contextPos != 0) ! throw new IllegalStateException (); ! if (value == namespaceDeclUris) ! return; ! namespaceDeclUris = value; ! if (value) ! currentContext.declarePrefix ("xmlns", NSDECL); ! else { ! contexts[contextPos] = currentContext = new Context(); ! currentContext.declarePrefix("xml", XMLNS); ! } } /** --- 482,502 ---- * @since SAX 2.1alpha * * @exception IllegalStateException when attempting to set this ! * after any context has been pushed. */ public void setNamespaceDeclUris (boolean value) { ! if (contextPos != 0) ! throw new IllegalStateException (); ! if (value == namespaceDeclUris) ! return; ! namespaceDeclUris = value; ! if (value) ! currentContext.declarePrefix ("xmlns", NSDECL); ! else { ! contexts[contextPos] = currentContext = new Context(); ! currentContext.declarePrefix("xml", XMLNS); ! } } /** *************** public class NamespaceSupport *** 506,515 **** * @since SAX 2.1alpha */ public boolean isNamespaceDeclUris () ! { return namespaceDeclUris; } - //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// --- 506,515 ---- * @since SAX 2.1alpha */ public boolean isNamespaceDeclUris () ! { return namespaceDeclUris; } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// *************** public class NamespaceSupport *** 519,525 **** private int contextPos; private boolean namespaceDeclUris; ! //////////////////////////////////////////////////////////////////// // Internal classes. //////////////////////////////////////////////////////////////////// --- 519,525 ---- private int contextPos; private boolean namespaceDeclUris; ! //////////////////////////////////////////////////////////////////// // Internal classes. //////////////////////////////////////////////////////////////////// *************** public class NamespaceSupport *** 538,834 **** */ final class Context { ! /** ! * Create the root-level Namespace context. ! */ ! Context () ! { ! copyTables(); ! } ! ! ! /** ! * (Re)set the parent of this Namespace context. ! * The context must either have been freshly constructed, ! * or must have been cleared. ! * ! * @param context The parent Namespace context object. ! */ ! void setParent (Context parent) ! { ! this.parent = parent; ! declarations = null; ! prefixTable = parent.prefixTable; ! uriTable = parent.uriTable; ! elementNameTable = parent.elementNameTable; ! attributeNameTable = parent.attributeNameTable; ! defaultNS = parent.defaultNS; ! declSeen = false; ! declsOK = true; ! } - /** - * Makes associated state become collectible, - * invalidating this context. - * {@link #setParent} must be called before - * this context may be used again. - */ - void clear () - { - parent = null; - prefixTable = null; - uriTable = null; - elementNameTable = null; - attributeNameTable = null; - defaultNS = null; - } - - - /** - * Declare a Namespace prefix for this context. - * - * @param prefix The prefix to declare. - * @param uri The associated Namespace URI. - * @see org.xml.sax.helpers.NamespaceSupport#declarePrefix - */ - void declarePrefix (String prefix, String uri) - { - // Lazy processing... - if (!declsOK) - throw new IllegalStateException ( - "can't declare any more prefixes in this context"); - if (!declSeen) { - copyTables(); - } - if (declarations == null) { - declarations = new Vector(); - } - - prefix = prefix.intern(); - uri = uri.intern(); - if ("".equals(prefix)) { - if ("".equals(uri)) { - defaultNS = null; - } else { - defaultNS = uri; - } - } else { - prefixTable.put(prefix, uri); - uriTable.put(uri, prefix); // may wipe out another prefix - } - declarations.addElement(prefix); - } ! /** ! * Process an XML qualified name in this context. ! * ! * @param qName The XML qualified name. ! * @param isAttribute true if this is an attribute name. ! * @return An array of three strings containing the ! * URI part (or empty string), the local part, ! * and the raw name, all internalized, or null ! * if there is an undeclared prefix. ! * @see org.xml.sax.helpers.NamespaceSupport#processName ! */ ! String [] processName (String qName, boolean isAttribute) ! { ! String name[]; ! Hashtable table; ! ! // detect errors in call sequence ! declsOK = false; - // Select the appropriate table. - if (isAttribute) { - table = attributeNameTable; - } else { - table = elementNameTable; - } - - // Start by looking in the cache, and - // return immediately if the name - // is already known in this content - name = (String[])table.get(qName); - if (name != null) { - return name; - } - - // We haven't seen this name in this - // context before. Maybe in the parent - // context, but we can't assume prefix - // bindings are the same. - name = new String[3]; - name[2] = qName.intern(); - int index = qName.indexOf(':'); - - - // No prefix. - if (index == -1) { - if (isAttribute) { - if (qName == "xmlns" && namespaceDeclUris) - name[0] = NSDECL; - else - name[0] = ""; - } else if (defaultNS == null) { - name[0] = ""; - } else { - name[0] = defaultNS; - } - name[1] = name[2]; - } - - // Prefix - else { - String prefix = qName.substring(0, index); - String local = qName.substring(index+1); - String uri; - if ("".equals(prefix)) { - uri = defaultNS; - } else { - uri = (String)prefixTable.get(prefix); - } - if (uri == null - || (!isAttribute && "xmlns".equals (prefix))) { - return null; - } - name[0] = uri; - name[1] = local.intern(); - } - - // Save in the cache for future use. - // (Could be shared with parent context...) - table.put(name[2], name); - return name; - } - ! /** ! * Look up the URI associated with a prefix in this context. ! * ! * @param prefix The prefix to look up. ! * @return The associated Namespace URI, or null if none is ! * declared. ! * @see org.xml.sax.helpers.NamespaceSupport#getURI ! */ ! String getURI (String prefix) ! { ! if ("".equals(prefix)) { ! return defaultNS; ! } else if (prefixTable == null) { ! return null; ! } else { ! return (String)prefixTable.get(prefix); ! } ! } - /** - * Look up one of the prefixes associated with a URI in this context. - * - *

      Since many prefixes may be mapped to the same URI, - * the return value may be unreliable.

      - * - * @param uri The URI to look up. - * @return The associated prefix, or null if none is declared. - * @see org.xml.sax.helpers.NamespaceSupport#getPrefix - */ - String getPrefix (String uri) - { - if (uriTable == null) { - return null; - } else { - return (String)uriTable.get(uri); - } - } - - - /** - * Return an enumeration of prefixes declared in this context. - * - * @return An enumeration of prefixes (possibly empty). - * @see org.xml.sax.helpers.NamespaceSupport#getDeclaredPrefixes - */ - Enumeration getDeclaredPrefixes () - { - if (declarations == null) { - return EMPTY_ENUMERATION; - } else { - return declarations.elements(); - } - } - - - /** - * Return an enumeration of all prefixes currently in force. - * - *

      The default prefix, if in force, is not - * returned, and will have to be checked for separately.

      - * - * @return An enumeration of prefixes (never empty). - * @see org.xml.sax.helpers.NamespaceSupport#getPrefixes - */ - Enumeration getPrefixes () - { - if (prefixTable == null) { - return EMPTY_ENUMERATION; - } else { - return prefixTable.keys(); - } - } - - - - //////////////////////////////////////////////////////////////// - // Internal methods. - //////////////////////////////////////////////////////////////// ! /** ! * Copy on write for the internal tables in this context. ! * ! *

      This class is optimized for the normal case where most ! * elements do not contain Namespace declarations.

      ! */ ! private void copyTables () ! { ! if (prefixTable != null) { ! prefixTable = (Hashtable)prefixTable.clone(); ! } else { ! prefixTable = new Hashtable(); ! } ! if (uriTable != null) { ! uriTable = (Hashtable)uriTable.clone(); ! } else { ! uriTable = new Hashtable(); ! } ! elementNameTable = new Hashtable(); ! attributeNameTable = new Hashtable(); ! declSeen = true; ! } ! ! //////////////////////////////////////////////////////////////// ! // Protected state. ! //////////////////////////////////////////////////////////////// ! ! Hashtable prefixTable; ! Hashtable uriTable; ! Hashtable elementNameTable; ! Hashtable attributeNameTable; ! String defaultNS = null; ! boolean declsOK = true; ! ! ! //////////////////////////////////////////////////////////////// ! // Internal state. ! //////////////////////////////////////////////////////////////// ! ! private Vector declarations = null; ! private boolean declSeen = false; ! private Context parent = null; } } --- 538,834 ---- */ final class Context { ! /** ! * Create the root-level Namespace context. ! */ ! Context () ! { ! copyTables(); ! } + /** + * (Re)set the parent of this Namespace context. + * The context must either have been freshly constructed, + * or must have been cleared. + * + * @param context The parent Namespace context object. + */ + void setParent (Context parent) + { + this.parent = parent; + declarations = null; + prefixTable = parent.prefixTable; + uriTable = parent.uriTable; + elementNameTable = parent.elementNameTable; + attributeNameTable = parent.attributeNameTable; + defaultNS = parent.defaultNS; + declSeen = false; + declsOK = true; + } ! /** ! * Makes associated state become collectible, ! * invalidating this context. ! * {@link #setParent} must be called before ! * this context may be used again. ! */ ! void clear () ! { ! parent = null; ! prefixTable = null; ! uriTable = null; ! elementNameTable = null; ! attributeNameTable = null; ! defaultNS = null; ! } ! /** ! * Declare a Namespace prefix for this context. ! * ! * @param prefix The prefix to declare. ! * @param uri The associated Namespace URI. ! * @see org.xml.sax.helpers.NamespaceSupport#declarePrefix ! */ ! void declarePrefix (String prefix, String uri) ! { ! // Lazy processing... ! if (!declsOK) ! throw new IllegalStateException ( ! "can't declare any more prefixes in this context"); ! if (!declSeen) { ! copyTables(); ! } ! if (declarations == null) { ! declarations = new Vector(); ! } + prefix = prefix.intern(); + uri = uri.intern(); + if ("".equals(prefix)) { + if ("".equals(uri)) { + defaultNS = null; + } else { + defaultNS = uri; + } + } else { + prefixTable.put(prefix, uri); + uriTable.put(uri, prefix); // may wipe out another prefix + } + declarations.addElement(prefix); + } + /** + * Process an XML qualified name in this context. + * + * @param qName The XML qualified name. + * @param isAttribute true if this is an attribute name. + * @return An array of three strings containing the + * URI part (or empty string), the local part, + * and the raw name, all internalized, or null + * if there is an undeclared prefix. + * @see org.xml.sax.helpers.NamespaceSupport#processName + */ + String [] processName (String qName, boolean isAttribute) + { + String name[]; + Hashtable table; ! // detect errors in call sequence ! declsOK = false; + // Select the appropriate table. + if (isAttribute) { + table = attributeNameTable; + } else { + table = elementNameTable; + } ! // Start by looking in the cache, and ! // return immediately if the name ! // is already known in this content ! name = (String[])table.get(qName); ! if (name != null) { ! return name; ! } ! // We haven't seen this name in this ! // context before. Maybe in the parent ! // context, but we can't assume prefix ! // bindings are the same. ! name = new String[3]; ! name[2] = qName.intern(); ! int index = qName.indexOf(':'); ! ! ! // No prefix. ! if (index == -1) { ! if (isAttribute) { ! if (qName == "xmlns" && namespaceDeclUris) ! name[0] = NSDECL; ! else ! name[0] = ""; ! } else if (defaultNS == null) { ! name[0] = ""; ! } else { ! name[0] = defaultNS; ! } ! name[1] = name[2]; ! } ! ! // Prefix ! else { ! String prefix = qName.substring(0, index); ! String local = qName.substring(index+1); ! String uri; ! if ("".equals(prefix)) { ! uri = defaultNS; ! } else { ! uri = (String)prefixTable.get(prefix); ! } ! if (uri == null ! || (!isAttribute && "xmlns".equals (prefix))) { ! return null; ! } ! name[0] = uri; ! name[1] = local.intern(); ! } ! ! // Save in the cache for future use. ! // (Could be shared with parent context...) ! table.put(name[2], name); ! return name; ! } ! ! ! /** ! * Look up the URI associated with a prefix in this context. ! * ! * @param prefix The prefix to look up. ! * @return The associated Namespace URI, or null if none is ! * declared. ! * @see org.xml.sax.helpers.NamespaceSupport#getURI ! */ ! String getURI (String prefix) ! { ! if ("".equals(prefix)) { ! return defaultNS; ! } else if (prefixTable == null) { ! return null; ! } else { ! return (String)prefixTable.get(prefix); ! } ! } ! ! ! /** ! * Look up one of the prefixes associated with a URI in this context. ! * ! *

      Since many prefixes may be mapped to the same URI, ! * the return value may be unreliable.

      ! * ! * @param uri The URI to look up. ! * @return The associated prefix, or null if none is declared. ! * @see org.xml.sax.helpers.NamespaceSupport#getPrefix ! */ ! String getPrefix (String uri) ! { ! if (uriTable == null) { ! return null; ! } else { ! return (String)uriTable.get(uri); ! } ! } ! ! ! /** ! * Return an enumeration of prefixes declared in this context. ! * ! * @return An enumeration of prefixes (possibly empty). ! * @see org.xml.sax.helpers.NamespaceSupport#getDeclaredPrefixes ! */ ! Enumeration getDeclaredPrefixes () ! { ! if (declarations == null) { ! return EMPTY_ENUMERATION; ! } else { ! return declarations.elements(); ! } ! } ! ! ! /** ! * Return an enumeration of all prefixes currently in force. ! * ! *

      The default prefix, if in force, is not ! * returned, and will have to be checked for separately.

      ! * ! * @return An enumeration of prefixes (never empty). ! * @see org.xml.sax.helpers.NamespaceSupport#getPrefixes ! */ ! Enumeration getPrefixes () ! { ! if (prefixTable == null) { ! return EMPTY_ENUMERATION; ! } else { ! return prefixTable.keys(); ! } ! } ! ! ! ! //////////////////////////////////////////////////////////////// ! // Internal methods. ! //////////////////////////////////////////////////////////////// ! ! ! /** ! * Copy on write for the internal tables in this context. ! * ! *

      This class is optimized for the normal case where most ! * elements do not contain Namespace declarations.

      ! */ ! private void copyTables () ! { ! if (prefixTable != null) { ! prefixTable = (Hashtable)prefixTable.clone(); ! } else { ! prefixTable = new Hashtable(); ! } ! if (uriTable != null) { ! uriTable = (Hashtable)uriTable.clone(); ! } else { ! uriTable = new Hashtable(); ! } ! elementNameTable = new Hashtable(); ! attributeNameTable = new Hashtable(); ! declSeen = true; ! } ! ! ! ! //////////////////////////////////////////////////////////////// ! // Protected state. ! //////////////////////////////////////////////////////////////// ! ! Hashtable prefixTable; ! Hashtable uriTable; ! Hashtable elementNameTable; ! Hashtable attributeNameTable; ! String defaultNS = null; ! boolean declsOK = true; ! ! ! ! //////////////////////////////////////////////////////////////// ! // Internal state. ! //////////////////////////////////////////////////////////////// ! ! private Vector declarations = null; ! private boolean declSeen = false; ! private Context parent = null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java Tue Jan 11 19:46:05 2011 *************** class NewInstance { *** 54,60 **** /** * Figure out which ClassLoader to use. For JDK 1.2 and later use * the context ClassLoader. ! */ static ClassLoader getClassLoader () { Method m = null; --- 54,60 ---- /** * Figure out which ClassLoader to use. For JDK 1.2 and later use * the context ClassLoader. ! */ static ClassLoader getClassLoader () { Method m = null; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 10,16 **** import java.util.Enumeration; import java.util.Vector; ! import org.xml.sax.Parser; // deprecated import org.xml.sax.InputSource; import org.xml.sax.Locator; import org.xml.sax.AttributeList; // deprecated --- 10,16 ---- import java.util.Enumeration; import java.util.Vector; ! import org.xml.sax.Parser; // deprecated import org.xml.sax.InputSource; import org.xml.sax.Locator; import org.xml.sax.AttributeList; // deprecated *************** import org.xml.sax.SAXNotSupportedExcept *** 57,63 **** public class ParserAdapter implements XMLReader, DocumentHandler { ! //////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////// --- 57,63 ---- public class ParserAdapter implements XMLReader, DocumentHandler { ! //////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////// *************** public class ParserAdapter implements XM *** 76,110 **** public ParserAdapter () throws SAXException { ! super(); ! String driver = System.getProperty("org.xml.sax.parser"); ! try { ! setup(ParserFactory.makeParser()); ! } catch (ClassNotFoundException e1) { ! throw new ! SAXException("Cannot find SAX1 driver class " + ! driver, e1); ! } catch (IllegalAccessException e2) { ! throw new ! SAXException("SAX1 driver class " + ! driver + ! " found but cannot be loaded", e2); ! } catch (InstantiationException e3) { ! throw new ! SAXException("SAX1 driver class " + ! driver + ! " loaded but cannot be instantiated", e3); ! } catch (ClassCastException e4) { ! throw new ! SAXException("SAX1 driver class " + ! driver + ! " does not implement org.xml.sax.Parser"); ! } catch (NullPointerException e5) { ! throw new ! SAXException("System property org.xml.sax.parser not specified"); ! } } --- 76,110 ---- public ParserAdapter () throws SAXException { ! super(); ! String driver = System.getProperty("org.xml.sax.parser"); ! try { ! setup(ParserFactory.makeParser()); ! } catch (ClassNotFoundException e1) { ! throw new ! SAXException("Cannot find SAX1 driver class " + ! driver, e1); ! } catch (IllegalAccessException e2) { ! throw new ! SAXException("SAX1 driver class " + ! driver + ! " found but cannot be loaded", e2); ! } catch (InstantiationException e3) { ! throw new ! SAXException("SAX1 driver class " + ! driver + ! " loaded but cannot be instantiated", e3); ! } catch (ClassCastException e4) { ! throw new ! SAXException("SAX1 driver class " + ! driver + ! " does not implement org.xml.sax.Parser"); ! } catch (NullPointerException e5) { ! throw new ! SAXException("System property org.xml.sax.parser not specified"); ! } } *************** public class ParserAdapter implements XM *** 121,128 **** */ public ParserAdapter (Parser parser) { ! super(); ! setup(parser); } --- 121,128 ---- */ public ParserAdapter (Parser parser) { ! super(); ! setup(parser); } *************** public class ParserAdapter implements XM *** 135,152 **** */ private void setup (Parser parser) { ! if (parser == null) { ! throw new ! NullPointerException("Parser argument must not be null"); ! } ! this.parser = parser; ! atts = new AttributesImpl(); ! nsSupport = new NamespaceSupport(); ! attAdapter = new AttributeListAdapter(); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.XMLReader. //////////////////////////////////////////////////////////////////// --- 135,152 ---- */ private void setup (Parser parser) { ! if (parser == null) { ! throw new ! NullPointerException("Parser argument must not be null"); ! } ! this.parser = parser; ! atts = new AttributesImpl(); ! nsSupport = new NamespaceSupport(); ! attAdapter = new AttributeListAdapter(); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.XMLReader. //////////////////////////////////////////////////////////////////// *************** public class ParserAdapter implements XM *** 164,170 **** /** * Set a feature flag for the parser. * ! *

      The only features recognized are namespaces and * namespace-prefixes.

      * * @param name The feature name, as a complete URI. --- 164,170 ---- /** * Set a feature flag for the parser. * ! *

      The only features recognized are namespaces and * namespace-prefixes.

      * * @param name The feature name, as a complete URI. *************** public class ParserAdapter implements XM *** 176,208 **** * @see org.xml.sax.XMLReader#setFeature */ public void setFeature (String name, boolean value) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (name.equals(NAMESPACES)) { ! checkNotParsing("feature", name); ! namespaces = value; ! if (!namespaces && !prefixes) { ! prefixes = true; ! } ! } else if (name.equals(NAMESPACE_PREFIXES)) { ! checkNotParsing("feature", name); ! prefixes = value; ! if (!prefixes && !namespaces) { ! namespaces = true; ! } ! } else if (name.equals(XMLNS_URIs)) { ! checkNotParsing("feature", name); ! uris = value; ! } else { ! throw new SAXNotRecognizedException("Feature: " + name); ! } } /** * Check a parser feature flag. * ! *

      The only features recognized are namespaces and * namespace-prefixes.

      * * @param name The feature name, as a complete URI. --- 176,208 ---- * @see org.xml.sax.XMLReader#setFeature */ public void setFeature (String name, boolean value) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (name.equals(NAMESPACES)) { ! checkNotParsing("feature", name); ! namespaces = value; ! if (!namespaces && !prefixes) { ! prefixes = true; ! } ! } else if (name.equals(NAMESPACE_PREFIXES)) { ! checkNotParsing("feature", name); ! prefixes = value; ! if (!prefixes && !namespaces) { ! namespaces = true; ! } ! } else if (name.equals(XMLNS_URIs)) { ! checkNotParsing("feature", name); ! uris = value; ! } else { ! throw new SAXNotRecognizedException("Feature: " + name); ! } } /** * Check a parser feature flag. * ! *

      The only features recognized are namespaces and * namespace-prefixes.

      * * @param name The feature name, as a complete URI. *************** public class ParserAdapter implements XM *** 214,230 **** * @see org.xml.sax.XMLReader#setFeature */ public boolean getFeature (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (name.equals(NAMESPACES)) { ! return namespaces; ! } else if (name.equals(NAMESPACE_PREFIXES)) { ! return prefixes; ! } else if (name.equals(XMLNS_URIs)) { ! return uris; ! } else { ! throw new SAXNotRecognizedException("Feature: " + name); ! } } --- 214,230 ---- * @see org.xml.sax.XMLReader#setFeature */ public boolean getFeature (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (name.equals(NAMESPACES)) { ! return namespaces; ! } else if (name.equals(NAMESPACE_PREFIXES)) { ! return prefixes; ! } else if (name.equals(XMLNS_URIs)) { ! return uris; ! } else { ! throw new SAXNotRecognizedException("Feature: " + name); ! } } *************** public class ParserAdapter implements XM *** 242,250 **** * @see org.xml.sax.XMLReader#setProperty */ public void setProperty (String name, Object value) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! throw new SAXNotRecognizedException("Property: " + name); } --- 242,250 ---- * @see org.xml.sax.XMLReader#setProperty */ public void setProperty (String name, Object value) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! throw new SAXNotRecognizedException("Property: " + name); } *************** public class ParserAdapter implements XM *** 262,270 **** * @see org.xml.sax.XMLReader#getProperty */ public Object getProperty (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! throw new SAXNotRecognizedException("Property: " + name); } --- 262,270 ---- * @see org.xml.sax.XMLReader#getProperty */ public Object getProperty (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! throw new SAXNotRecognizedException("Property: " + name); } *************** public class ParserAdapter implements XM *** 276,282 **** */ public void setEntityResolver (EntityResolver resolver) { ! entityResolver = resolver; } --- 276,282 ---- */ public void setEntityResolver (EntityResolver resolver) { ! entityResolver = resolver; } *************** public class ParserAdapter implements XM *** 288,294 **** */ public EntityResolver getEntityResolver () { ! return entityResolver; } --- 288,294 ---- */ public EntityResolver getEntityResolver () { ! return entityResolver; } *************** public class ParserAdapter implements XM *** 300,306 **** */ public void setDTDHandler (DTDHandler handler) { ! dtdHandler = handler; } --- 300,306 ---- */ public void setDTDHandler (DTDHandler handler) { ! dtdHandler = handler; } *************** public class ParserAdapter implements XM *** 312,318 **** */ public DTDHandler getDTDHandler () { ! return dtdHandler; } --- 312,318 ---- */ public DTDHandler getDTDHandler () { ! return dtdHandler; } *************** public class ParserAdapter implements XM *** 324,330 **** */ public void setContentHandler (ContentHandler handler) { ! contentHandler = handler; } --- 324,330 ---- */ public void setContentHandler (ContentHandler handler) { ! contentHandler = handler; } *************** public class ParserAdapter implements XM *** 336,342 **** */ public ContentHandler getContentHandler () { ! return contentHandler; } --- 336,342 ---- */ public ContentHandler getContentHandler () { ! return contentHandler; } *************** public class ParserAdapter implements XM *** 348,354 **** */ public void setErrorHandler (ErrorHandler handler) { ! errorHandler = handler; } --- 348,354 ---- */ public void setErrorHandler (ErrorHandler handler) { ! errorHandler = handler; } *************** public class ParserAdapter implements XM *** 360,366 **** */ public ErrorHandler getErrorHandler () { ! return errorHandler; } --- 360,366 ---- */ public ErrorHandler getErrorHandler () { ! return errorHandler; } *************** public class ParserAdapter implements XM *** 376,384 **** * @see org.xml.sax.Parser#parse(java.lang.String) */ public void parse (String systemId) ! throws IOException, SAXException { ! parse(new InputSource(systemId)); } --- 376,384 ---- * @see org.xml.sax.Parser#parse(java.lang.String) */ public void parse (String systemId) ! throws IOException, SAXException { ! parse(new InputSource(systemId)); } *************** public class ParserAdapter implements XM *** 394,412 **** * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource) */ public void parse (InputSource input) ! throws IOException, SAXException { ! if (parsing) { ! throw new SAXException("Parser is already in use"); ! } ! setupParser(); ! parsing = true; ! try { ! parser.parse(input); ! } finally { ! parsing = false; ! } ! parsing = false; } --- 394,412 ---- * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource) */ public void parse (InputSource input) ! throws IOException, SAXException { ! if (parsing) { ! throw new SAXException("Parser is already in use"); ! } ! setupParser(); ! parsing = true; ! try { ! parser.parse(input); ! } finally { ! parsing = false; ! } ! parsing = false; } *************** public class ParserAdapter implements XM *** 425,434 **** */ public void setDocumentLocator (Locator locator) { ! this.locator = locator; ! if (contentHandler != null) { ! contentHandler.setDocumentLocator(locator); ! } } --- 425,434 ---- */ public void setDocumentLocator (Locator locator) { ! this.locator = locator; ! if (contentHandler != null) { ! contentHandler.setDocumentLocator(locator); ! } } *************** public class ParserAdapter implements XM *** 441,451 **** * @see org.xml.sax.DocumentHandler#startDocument */ public void startDocument () ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.startDocument(); ! } } --- 441,451 ---- * @see org.xml.sax.DocumentHandler#startDocument */ public void startDocument () ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.startDocument(); ! } } *************** public class ParserAdapter implements XM *** 458,468 **** * @see org.xml.sax.DocumentHandler#endDocument */ public void endDocument () ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.endDocument(); ! } } --- 458,468 ---- * @see org.xml.sax.DocumentHandler#endDocument */ public void endDocument () ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.endDocument(); ! } } *************** public class ParserAdapter implements XM *** 478,601 **** * processing exception. */ public void startElement (String qName, AttributeList qAtts) ! throws SAXException { ! // These are exceptions from the ! // first pass; they should be ! // ignored if there's a second pass, ! // but reported otherwise. ! Vector exceptions = null; ! // If we're not doing Namespace ! // processing, dispatch this quickly. ! if (!namespaces) { ! if (contentHandler != null) { ! attAdapter.setAttributeList(qAtts); ! contentHandler.startElement("", "", qName.intern(), ! attAdapter); ! } ! return; ! } ! // OK, we're doing Namespace processing. ! nsSupport.pushContext(); ! int length = qAtts.getLength(); ! ! // First pass: handle NS decls ! for (int i = 0; i < length; i++) { ! String attQName = qAtts.getName(i); ! if (!attQName.startsWith("xmlns")) ! continue; ! // Could be a declaration... ! String prefix; ! int n = attQName.indexOf(':'); ! // xmlns=... ! if (n == -1 && attQName.length () == 5) { ! prefix = ""; ! } else if (n != 5) { ! // XML namespaces spec doesn't discuss "xmlnsf:oo" ! // (and similarly named) attributes ... at most, warn ! continue; ! } else // xmlns:foo=... ! prefix = attQName.substring(n+1); ! String value = qAtts.getValue(i); ! if (!nsSupport.declarePrefix(prefix, value)) { ! reportError("Illegal Namespace prefix: " + prefix); ! continue; ! } ! if (contentHandler != null) ! contentHandler.startPrefixMapping(prefix, value); ! } ! ! // Second pass: copy all relevant ! // attributes into the SAX2 AttributeList ! // using updated prefix bindings ! atts.clear(); ! for (int i = 0; i < length; i++) { ! String attQName = qAtts.getName(i); ! String type = qAtts.getType(i); ! String value = qAtts.getValue(i); ! // Declaration? ! if (attQName.startsWith("xmlns")) { ! String prefix; ! int n = attQName.indexOf(':'); ! if (n == -1 && attQName.length () == 5) { ! prefix = ""; ! } else if (n != 5) { ! // XML namespaces spec doesn't discuss "xmlnsf:oo" ! // (and similarly named) attributes ... ignore ! prefix = null; ! } else { ! prefix = attQName.substring(6); ! } ! // Yes, decl: report or prune ! if (prefix != null) { ! if (prefixes) { ! if (uris) ! // note funky case: localname can be null ! // when declaring the default prefix, and ! // yet the uri isn't null. ! atts.addAttribute (nsSupport.XMLNS, prefix, ! attQName.intern(), type, value); ! else ! atts.addAttribute ("", "", ! attQName.intern(), type, value); ! } ! continue; ! } ! } ! // Not a declaration -- report ! try { ! String attName[] = processName(attQName, true, true); ! atts.addAttribute(attName[0], attName[1], attName[2], ! type, value); ! } catch (SAXException e) { ! if (exceptions == null) ! exceptions = new Vector(); ! exceptions.addElement(e); ! atts.addAttribute("", attQName, attQName, type, value); ! } ! } ! ! // now handle the deferred exception reports ! if (exceptions != null && errorHandler != null) { ! for (int i = 0; i < exceptions.size(); i++) ! errorHandler.error((SAXParseException) ! (exceptions.elementAt(i))); ! } ! // OK, finally report the event. ! if (contentHandler != null) { ! String name[] = processName(qName, false, false); ! contentHandler.startElement(name[0], name[1], name[2], atts); ! } } --- 478,601 ---- * processing exception. */ public void startElement (String qName, AttributeList qAtts) ! throws SAXException { ! // These are exceptions from the ! // first pass; they should be ! // ignored if there's a second pass, ! // but reported otherwise. ! Vector exceptions = null; ! // If we're not doing Namespace ! // processing, dispatch this quickly. ! if (!namespaces) { ! if (contentHandler != null) { ! attAdapter.setAttributeList(qAtts); ! contentHandler.startElement("", "", qName.intern(), ! attAdapter); ! } ! return; ! } ! // OK, we're doing Namespace processing. ! nsSupport.pushContext(); ! int length = qAtts.getLength(); ! // First pass: handle NS decls ! for (int i = 0; i < length; i++) { ! String attQName = qAtts.getName(i); ! if (!attQName.startsWith("xmlns")) ! continue; ! // Could be a declaration... ! String prefix; ! int n = attQName.indexOf(':'); ! // xmlns=... ! if (n == -1 && attQName.length () == 5) { ! prefix = ""; ! } else if (n != 5) { ! // XML namespaces spec doesn't discuss "xmlnsf:oo" ! // (and similarly named) attributes ... at most, warn ! continue; ! } else // xmlns:foo=... ! prefix = attQName.substring(n+1); ! String value = qAtts.getValue(i); ! if (!nsSupport.declarePrefix(prefix, value)) { ! reportError("Illegal Namespace prefix: " + prefix); ! continue; ! } ! if (contentHandler != null) ! contentHandler.startPrefixMapping(prefix, value); ! } ! // Second pass: copy all relevant ! // attributes into the SAX2 AttributeList ! // using updated prefix bindings ! atts.clear(); ! for (int i = 0; i < length; i++) { ! String attQName = qAtts.getName(i); ! String type = qAtts.getType(i); ! String value = qAtts.getValue(i); ! // Declaration? ! if (attQName.startsWith("xmlns")) { ! String prefix; ! int n = attQName.indexOf(':'); ! if (n == -1 && attQName.length () == 5) { ! prefix = ""; ! } else if (n != 5) { ! // XML namespaces spec doesn't discuss "xmlnsf:oo" ! // (and similarly named) attributes ... ignore ! prefix = null; ! } else { ! prefix = attQName.substring(6); ! } ! // Yes, decl: report or prune ! if (prefix != null) { ! if (prefixes) { ! if (uris) ! // note funky case: localname can be null ! // when declaring the default prefix, and ! // yet the uri isn't null. ! atts.addAttribute (nsSupport.XMLNS, prefix, ! attQName.intern(), type, value); ! else ! atts.addAttribute ("", "", ! attQName.intern(), type, value); ! } ! continue; ! } ! } ! ! // Not a declaration -- report ! try { ! String attName[] = processName(attQName, true, true); ! atts.addAttribute(attName[0], attName[1], attName[2], ! type, value); ! } catch (SAXException e) { ! if (exceptions == null) ! exceptions = new Vector(); ! exceptions.addElement(e); ! atts.addAttribute("", attQName, attQName, type, value); ! } ! } ! ! // now handle the deferred exception reports ! if (exceptions != null && errorHandler != null) { ! for (int i = 0; i < exceptions.size(); i++) ! errorHandler.error((SAXParseException) ! (exceptions.elementAt(i))); ! } ! ! // OK, finally report the event. ! if (contentHandler != null) { ! String name[] = processName(qName, false, false); ! contentHandler.startElement(name[0], name[1], name[2], atts); ! } } *************** public class ParserAdapter implements XM *** 609,636 **** * @see org.xml.sax.DocumentHandler#endElement */ public void endElement (String qName) ! throws SAXException { ! // If we're not doing Namespace ! // processing, dispatch this quickly. ! if (!namespaces) { ! if (contentHandler != null) { ! contentHandler.endElement("", "", qName.intern()); ! } ! return; ! } ! // Split the name. ! String names[] = processName(qName, false, false); ! if (contentHandler != null) { ! contentHandler.endElement(names[0], names[1], names[2]); ! Enumeration prefixes = nsSupport.getDeclaredPrefixes(); ! while (prefixes.hasMoreElements()) { ! String prefix = (String)prefixes.nextElement(); ! contentHandler.endPrefixMapping(prefix); ! } ! } ! nsSupport.popContext(); } --- 609,636 ---- * @see org.xml.sax.DocumentHandler#endElement */ public void endElement (String qName) ! throws SAXException { ! // If we're not doing Namespace ! // processing, dispatch this quickly. ! if (!namespaces) { ! if (contentHandler != null) { ! contentHandler.endElement("", "", qName.intern()); ! } ! return; ! } ! // Split the name. ! String names[] = processName(qName, false, false); ! if (contentHandler != null) { ! contentHandler.endElement(names[0], names[1], names[2]); ! Enumeration prefixes = nsSupport.getDeclaredPrefixes(); ! while (prefixes.hasMoreElements()) { ! String prefix = (String)prefixes.nextElement(); ! contentHandler.endPrefixMapping(prefix); ! } ! } ! nsSupport.popContext(); } *************** public class ParserAdapter implements XM *** 646,656 **** * @see org.xml.sax.DocumentHandler#characters */ public void characters (char ch[], int start, int length) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.characters(ch, start, length); ! } } --- 646,656 ---- * @see org.xml.sax.DocumentHandler#characters */ public void characters (char ch[], int start, int length) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.characters(ch, start, length); ! } } *************** public class ParserAdapter implements XM *** 666,676 **** * @see org.xml.sax.DocumentHandler#ignorableWhitespace */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.ignorableWhitespace(ch, start, length); ! } } --- 666,676 ---- * @see org.xml.sax.DocumentHandler#ignorableWhitespace */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.ignorableWhitespace(ch, start, length); ! } } *************** public class ParserAdapter implements XM *** 685,699 **** * @see org.xml.sax.DocumentHandler#processingInstruction */ public void processingInstruction (String target, String data) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.processingInstruction(target, data); ! } } ! //////////////////////////////////////////////////////////////////// // Internal utility methods. //////////////////////////////////////////////////////////////////// --- 685,699 ---- * @see org.xml.sax.DocumentHandler#processingInstruction */ public void processingInstruction (String target, String data) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.processingInstruction(target, data); ! } } ! //////////////////////////////////////////////////////////////////// // Internal utility methods. //////////////////////////////////////////////////////////////////// *************** public class ParserAdapter implements XM *** 704,728 **** */ private void setupParser () { ! // catch an illegal "nonsense" state. ! if (!prefixes && !namespaces) ! throw new IllegalStateException (); ! nsSupport.reset(); ! if (uris) ! nsSupport.setNamespaceDeclUris (true); ! if (entityResolver != null) { ! parser.setEntityResolver(entityResolver); ! } ! if (dtdHandler != null) { ! parser.setDTDHandler(dtdHandler); ! } ! if (errorHandler != null) { ! parser.setErrorHandler(errorHandler); ! } ! parser.setDocumentHandler(this); ! locator = null; } --- 704,728 ---- */ private void setupParser () { ! // catch an illegal "nonsense" state. ! if (!prefixes && !namespaces) ! throw new IllegalStateException (); ! nsSupport.reset(); ! if (uris) ! nsSupport.setNamespaceDeclUris (true); ! if (entityResolver != null) { ! parser.setEntityResolver(entityResolver); ! } ! if (dtdHandler != null) { ! parser.setDTDHandler(dtdHandler); ! } ! if (errorHandler != null) { ! parser.setErrorHandler(errorHandler); ! } ! parser.setDocumentHandler(this); ! locator = null; } *************** public class ParserAdapter implements XM *** 740,759 **** * an exception if there is an error callback. */ private String [] processName (String qName, boolean isAttribute, ! boolean useException) ! throws SAXException { ! String parts[] = nsSupport.processName(qName, nameParts, ! isAttribute); ! if (parts == null) { ! if (useException) ! throw makeException("Undeclared prefix: " + qName); ! reportError("Undeclared prefix: " + qName); ! parts = new String[3]; ! parts[0] = parts[1] = ""; ! parts[2] = qName.intern(); ! } ! return parts; } --- 740,759 ---- * an exception if there is an error callback. */ private String [] processName (String qName, boolean isAttribute, ! boolean useException) ! throws SAXException { ! String parts[] = nsSupport.processName(qName, nameParts, ! isAttribute); ! if (parts == null) { ! if (useException) ! throw makeException("Undeclared prefix: " + qName); ! reportError("Undeclared prefix: " + qName); ! parts = new String[3]; ! parts[0] = parts[1] = ""; ! parts[2] = qName.intern(); ! } ! return parts; } *************** public class ParserAdapter implements XM *** 765,777 **** * an exception. */ void reportError (String message) ! throws SAXException { ! if (errorHandler != null) ! errorHandler.error(makeException(message)); } ! /** * Construct an exception for the current context. * --- 765,777 ---- * an exception. */ void reportError (String message) ! throws SAXException { ! if (errorHandler != null) ! errorHandler.error(makeException(message)); } ! /** * Construct an exception for the current context. * *************** public class ParserAdapter implements XM *** 779,789 **** */ private SAXParseException makeException (String message) { ! if (locator != null) { ! return new SAXParseException(message, locator); ! } else { ! return new SAXParseException(message, null, null, -1, -1); ! } } --- 779,789 ---- */ private SAXParseException makeException (String message) { ! if (locator != null) { ! return new SAXParseException(message, locator); ! } else { ! return new SAXParseException(message, null, null, -1, -1); ! } } *************** public class ParserAdapter implements XM *** 799,816 **** * document is currently being parsed. */ private void checkNotParsing (String type, String name) ! throws SAXNotSupportedException { ! if (parsing) { ! throw new SAXNotSupportedException("Cannot change " + ! type + ' ' + ! name + " while parsing"); ! ! } } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// --- 799,816 ---- * document is currently being parsed. */ private void checkNotParsing (String type, String name) ! throws SAXNotSupportedException { ! if (parsing) { ! throw new SAXNotSupportedException("Cannot change " + ! type + ' ' + ! name + " while parsing"); ! ! } } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// *************** public class ParserAdapter implements XM *** 825,838 **** private AttributesImpl atts = null; ! // Features private boolean namespaces = true; private boolean prefixes = false; private boolean uris = false; ! // Properties ! // Handlers Locator locator; EntityResolver entityResolver = null; --- 825,838 ---- private AttributesImpl atts = null; ! // Features private boolean namespaces = true; private boolean prefixes = false; private boolean uris = false; ! // Properties ! // Handlers Locator locator; EntityResolver entityResolver = null; *************** public class ParserAdapter implements XM *** 841,847 **** ErrorHandler errorHandler = null; ! //////////////////////////////////////////////////////////////////// // Inner class to wrap an AttributeList when not doing NS proc. //////////////////////////////////////////////////////////////////// --- 841,847 ---- ErrorHandler errorHandler = null; ! //////////////////////////////////////////////////////////////////// // Inner class to wrap an AttributeList when not doing NS proc. //////////////////////////////////////////////////////////////////// *************** public class ParserAdapter implements XM *** 855,1045 **** * *

      This wrapper class is used only when Namespace support * is disabled -- it provides pretty much a direct mapping ! * from SAX1 to SAX2, except that names and types are * interned whenever requested.

      */ final class AttributeListAdapter implements Attributes { ! /** ! * Construct a new adapter. ! */ ! AttributeListAdapter () ! { ! } ! /** ! * Set the embedded AttributeList. ! * ! *

      This method must be invoked before any of the others ! * can be used.

      ! * ! * @param The SAX1 attribute list (with qnames). ! */ ! void setAttributeList (AttributeList qAtts) ! { ! this.qAtts = qAtts; ! } ! /** ! * Return the length of the attribute list. ! * ! * @return The number of attributes in the list. ! * @see org.xml.sax.Attributes#getLength ! */ ! public int getLength () ! { ! return qAtts.getLength(); ! } ! /** ! * Return the Namespace URI of the specified attribute. ! * ! * @param The attribute's index. ! * @return Always the empty string. ! * @see org.xml.sax.Attributes#getURI ! */ ! public String getURI (int i) ! { ! return ""; ! } ! /** ! * Return the local name of the specified attribute. ! * ! * @param The attribute's index. ! * @return Always the empty string. ! * @see org.xml.sax.Attributes#getLocalName ! */ ! public String getLocalName (int i) ! { ! return ""; ! } ! /** ! * Return the qualified (prefixed) name of the specified attribute. ! * ! * @param The attribute's index. ! * @return The attribute's qualified name, internalized. ! */ ! public String getQName (int i) ! { ! return qAtts.getName(i).intern(); ! } ! /** ! * Return the type of the specified attribute. ! * ! * @param The attribute's index. ! * @return The attribute's type as an internalized string. ! */ ! public String getType (int i) ! { ! return qAtts.getType(i).intern(); ! } ! /** ! * Return the value of the specified attribute. ! * ! * @param The attribute's index. ! * @return The attribute's value. ! */ ! public String getValue (int i) ! { ! return qAtts.getValue(i); ! } ! /** ! * Look up an attribute index by Namespace name. ! * ! * @param uri The Namespace URI or the empty string. ! * @param localName The local name. ! * @return The attributes index, or -1 if none was found. ! * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String) ! */ ! public int getIndex (String uri, String localName) ! { ! return -1; ! } ! /** ! * Look up an attribute index by qualified (prefixed) name. ! * ! * @param qName The qualified name. ! * @return The attributes index, or -1 if none was found. ! * @see org.xml.sax.Attributes#getIndex(java.lang.String) ! */ ! public int getIndex (String qName) ! { ! int max = atts.getLength(); ! for (int i = 0; i < max; i++) { ! if (qAtts.getName(i).equals(qName)) { ! return i; ! } ! } ! return -1; ! } ! /** ! * Look up the type of an attribute by Namespace name. ! * ! * @param uri The Namespace URI ! * @param localName The local name. ! * @return The attribute's type as an internalized string. ! */ ! public String getType (String uri, String localName) ! { ! return null; ! } ! /** ! * Look up the type of an attribute by qualified (prefixed) name. ! * ! * @param qName The qualified name. ! * @return The attribute's type as an internalized string. ! */ ! public String getType (String qName) ! { ! return qAtts.getType(qName).intern(); ! } ! /** ! * Look up the value of an attribute by Namespace name. ! * ! * @param uri The Namespace URI ! * @param localName The local name. ! * @return The attribute's value. ! */ ! public String getValue (String uri, String localName) ! { ! return null; ! } ! /** ! * Look up the value of an attribute by qualified (prefixed) name. ! * ! * @param qName The qualified name. ! * @return The attribute's value. ! */ ! public String getValue (String qName) ! { ! return qAtts.getValue(qName); ! } ! private AttributeList qAtts; } } --- 855,1045 ---- * *

      This wrapper class is used only when Namespace support * is disabled -- it provides pretty much a direct mapping ! * from SAX1 to SAX2, except that names and types are * interned whenever requested.

      */ final class AttributeListAdapter implements Attributes { ! /** ! * Construct a new adapter. ! */ ! AttributeListAdapter () ! { ! } ! /** ! * Set the embedded AttributeList. ! * ! *

      This method must be invoked before any of the others ! * can be used.

      ! * ! * @param The SAX1 attribute list (with qnames). ! */ ! void setAttributeList (AttributeList qAtts) ! { ! this.qAtts = qAtts; ! } ! /** ! * Return the length of the attribute list. ! * ! * @return The number of attributes in the list. ! * @see org.xml.sax.Attributes#getLength ! */ ! public int getLength () ! { ! return qAtts.getLength(); ! } ! /** ! * Return the Namespace URI of the specified attribute. ! * ! * @param The attribute's index. ! * @return Always the empty string. ! * @see org.xml.sax.Attributes#getURI ! */ ! public String getURI (int i) ! { ! return ""; ! } ! /** ! * Return the local name of the specified attribute. ! * ! * @param The attribute's index. ! * @return Always the empty string. ! * @see org.xml.sax.Attributes#getLocalName ! */ ! public String getLocalName (int i) ! { ! return ""; ! } ! /** ! * Return the qualified (prefixed) name of the specified attribute. ! * ! * @param The attribute's index. ! * @return The attribute's qualified name, internalized. ! */ ! public String getQName (int i) ! { ! return qAtts.getName(i).intern(); ! } ! /** ! * Return the type of the specified attribute. ! * ! * @param The attribute's index. ! * @return The attribute's type as an internalized string. ! */ ! public String getType (int i) ! { ! return qAtts.getType(i).intern(); ! } ! /** ! * Return the value of the specified attribute. ! * ! * @param The attribute's index. ! * @return The attribute's value. ! */ ! public String getValue (int i) ! { ! return qAtts.getValue(i); ! } ! /** ! * Look up an attribute index by Namespace name. ! * ! * @param uri The Namespace URI or the empty string. ! * @param localName The local name. ! * @return The attributes index, or -1 if none was found. ! * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String) ! */ ! public int getIndex (String uri, String localName) ! { ! return -1; ! } ! /** ! * Look up an attribute index by qualified (prefixed) name. ! * ! * @param qName The qualified name. ! * @return The attributes index, or -1 if none was found. ! * @see org.xml.sax.Attributes#getIndex(java.lang.String) ! */ ! public int getIndex (String qName) ! { ! int max = atts.getLength(); ! for (int i = 0; i < max; i++) { ! if (qAtts.getName(i).equals(qName)) { ! return i; ! } ! } ! return -1; ! } ! /** ! * Look up the type of an attribute by Namespace name. ! * ! * @param uri The Namespace URI ! * @param localName The local name. ! * @return The attribute's type as an internalized string. ! */ ! public String getType (String uri, String localName) ! { ! return null; ! } ! /** ! * Look up the type of an attribute by qualified (prefixed) name. ! * ! * @param qName The qualified name. ! * @return The attribute's type as an internalized string. ! */ ! public String getType (String qName) ! { ! return qAtts.getType(qName).intern(); ! } ! /** ! * Look up the value of an attribute by Namespace name. ! * ! * @param uri The Namespace URI ! * @param localName The local name. ! * @return The attribute's value. ! */ ! public String getValue (String uri, String localName) ! { ! return null; ! } ! /** ! * Look up the value of an attribute by qualified (prefixed) name. ! * ! * @param qName The qualified name. ! * @return The attribute's value. ! */ ! public String getValue (String qName) ! { ! return qAtts.getValue(qName); ! } ! private AttributeList qAtts; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java Tue Jan 11 19:46:05 2011 *************** import org.xml.sax.Parser; *** 47,62 **** * @version 2.0.1 (sax2r2) */ public class ParserFactory { ! ! /** * Private null constructor. */ private ParserFactory () { } ! ! /** * Create a new SAX parser using the `org.xml.sax.parser' system property. * --- 47,62 ---- * @version 2.0.1 (sax2r2) */ public class ParserFactory { ! ! /** * Private null constructor. */ private ParserFactory () { } ! ! /** * Create a new SAX parser using the `org.xml.sax.parser' system property. * *************** public class ParserFactory { *** 79,99 **** * @see org.xml.sax.Parser */ public static Parser makeParser () ! throws ClassNotFoundException, ! IllegalAccessException, ! InstantiationException, ! NullPointerException, ! ClassCastException { ! String className = System.getProperty("org.xml.sax.parser"); ! if (className == null) { ! throw new NullPointerException("No value for sax.parser property"); ! } else { ! return makeParser(className); ! } } ! ! /** * Create a new SAX parser object using the class name provided. * --- 79,99 ---- * @see org.xml.sax.Parser */ public static Parser makeParser () ! throws ClassNotFoundException, ! IllegalAccessException, ! InstantiationException, ! NullPointerException, ! ClassCastException { ! String className = System.getProperty("org.xml.sax.parser"); ! if (className == null) { ! throw new NullPointerException("No value for sax.parser property"); ! } else { ! return makeParser(className); ! } } ! ! /** * Create a new SAX parser object using the class name provided. * *************** public class ParserFactory { *** 116,129 **** * @see org.xml.sax.Parser */ public static Parser makeParser (String className) ! throws ClassNotFoundException, ! IllegalAccessException, ! InstantiationException, ! ClassCastException { ! return (Parser) NewInstance.newInstance ( ! NewInstance.getClassLoader (), className); } - - } --- 116,128 ---- * @see org.xml.sax.Parser */ public static Parser makeParser (String className) ! throws ClassNotFoundException, ! IllegalAccessException, ! InstantiationException, ! ClassCastException { ! return (Parser) NewInstance.newInstance ( ! NewInstance.getClassLoader (), className); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java Tue Jan 11 19:46:05 2011 *************** public class XMLFilterImpl *** 54,60 **** implements XMLFilter, EntityResolver, DTDHandler, ContentHandler, ErrorHandler { ! //////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////// --- 54,60 ---- implements XMLFilter, EntityResolver, DTDHandler, ContentHandler, ErrorHandler { ! //////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////// *************** public class XMLFilterImpl *** 74,80 **** */ public XMLFilterImpl () { ! super(); } --- 74,80 ---- */ public XMLFilterImpl () { ! super(); } *************** public class XMLFilterImpl *** 87,97 **** public XMLFilterImpl (XMLReader parent) { super(); ! setParent(parent); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.XMLFilter. //////////////////////////////////////////////////////////////////// --- 87,97 ---- public XMLFilterImpl (XMLReader parent) { super(); ! setParent(parent); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.XMLFilter. //////////////////////////////////////////////////////////////////// *************** public class XMLFilterImpl *** 100,107 **** /** * Set the parent reader. * ! *

      This is the {@link org.xml.sax.XMLReader XMLReader} from which ! * this filter will obtain its events and to which it will pass its * configuration requests. The parent may itself be another filter.

      * *

      If there is no parent reader set, any attempt to parse --- 100,107 ---- /** * Set the parent reader. * ! *

      This is the {@link org.xml.sax.XMLReader XMLReader} from which ! * this filter will obtain its events and to which it will pass its * configuration requests. The parent may itself be another filter.

      * *

      If there is no parent reader set, any attempt to parse *************** public class XMLFilterImpl *** 112,118 **** */ public void setParent (XMLReader parent) { ! this.parent = parent; } --- 112,118 ---- */ public void setParent (XMLReader parent) { ! this.parent = parent; } *************** public class XMLFilterImpl *** 124,134 **** */ public XMLReader getParent () { ! return parent; } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.XMLReader. //////////////////////////////////////////////////////////////////// --- 124,134 ---- */ public XMLReader getParent () { ! return parent; } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.XMLReader. //////////////////////////////////////////////////////////////////// *************** public class XMLFilterImpl *** 144,160 **** * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the ! * parent recognizes the feature name but * cannot set the requested value. */ public void setFeature (String name, boolean value) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (parent != null) { ! parent.setFeature(name, value); ! } else { ! throw new SAXNotRecognizedException("Feature: " + name); ! } } --- 144,160 ---- * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the ! * parent recognizes the feature name but * cannot set the requested value. */ public void setFeature (String name, boolean value) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (parent != null) { ! parent.setFeature(name, value); ! } else { ! throw new SAXNotRecognizedException("Feature: " + name); ! } } *************** public class XMLFilterImpl *** 168,184 **** * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the ! * parent recognizes the feature name but * cannot determine its value at this time. */ public boolean getFeature (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (parent != null) { ! return parent.getFeature(name); ! } else { ! throw new SAXNotRecognizedException("Feature: " + name); ! } } --- 168,184 ---- * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the ! * parent recognizes the feature name but * cannot determine its value at this time. */ public boolean getFeature (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (parent != null) { ! return parent.getFeature(name); ! } else { ! throw new SAXNotRecognizedException("Feature: " + name); ! } } *************** public class XMLFilterImpl *** 192,208 **** * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the ! * parent recognizes the property name but * cannot set the requested value. */ public void setProperty (String name, Object value) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (parent != null) { ! parent.setProperty(name, value); ! } else { ! throw new SAXNotRecognizedException("Property: " + name); ! } } --- 192,208 ---- * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the ! * parent recognizes the property name but * cannot set the requested value. */ public void setProperty (String name, Object value) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (parent != null) { ! parent.setProperty(name, value); ! } else { ! throw new SAXNotRecognizedException("Property: " + name); ! } } *************** public class XMLFilterImpl *** 214,230 **** * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the ! * parent recognizes the property name but * cannot determine its value at this time. */ public Object getProperty (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (parent != null) { ! return parent.getProperty(name); ! } else { ! throw new SAXNotRecognizedException("Property: " + name); ! } } --- 214,230 ---- * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the ! * parent recognizes the property name but * cannot determine its value at this time. */ public Object getProperty (String name) ! throws SAXNotRecognizedException, SAXNotSupportedException { ! if (parent != null) { ! return parent.getProperty(name); ! } else { ! throw new SAXNotRecognizedException("Property: " + name); ! } } *************** public class XMLFilterImpl *** 235,241 **** */ public void setEntityResolver (EntityResolver resolver) { ! entityResolver = resolver; } --- 235,241 ---- */ public void setEntityResolver (EntityResolver resolver) { ! entityResolver = resolver; } *************** public class XMLFilterImpl *** 246,252 **** */ public EntityResolver getEntityResolver () { ! return entityResolver; } --- 246,252 ---- */ public EntityResolver getEntityResolver () { ! return entityResolver; } *************** public class XMLFilterImpl *** 257,263 **** */ public void setDTDHandler (DTDHandler handler) { ! dtdHandler = handler; } --- 257,263 ---- */ public void setDTDHandler (DTDHandler handler) { ! dtdHandler = handler; } *************** public class XMLFilterImpl *** 268,274 **** */ public DTDHandler getDTDHandler () { ! return dtdHandler; } --- 268,274 ---- */ public DTDHandler getDTDHandler () { ! return dtdHandler; } *************** public class XMLFilterImpl *** 279,285 **** */ public void setContentHandler (ContentHandler handler) { ! contentHandler = handler; } --- 279,285 ---- */ public void setContentHandler (ContentHandler handler) { ! contentHandler = handler; } *************** public class XMLFilterImpl *** 290,296 **** */ public ContentHandler getContentHandler () { ! return contentHandler; } --- 290,296 ---- */ public ContentHandler getContentHandler () { ! return contentHandler; } *************** public class XMLFilterImpl *** 301,307 **** */ public void setErrorHandler (ErrorHandler handler) { ! errorHandler = handler; } --- 301,307 ---- */ public void setErrorHandler (ErrorHandler handler) { ! errorHandler = handler; } *************** public class XMLFilterImpl *** 312,318 **** */ public ErrorHandler getErrorHandler () { ! return errorHandler; } --- 312,318 ---- */ public ErrorHandler getErrorHandler () { ! return errorHandler; } *************** public class XMLFilterImpl *** 327,336 **** * supplied by the application. */ public void parse (InputSource input) ! throws SAXException, IOException { ! setupParse(); ! parent.parse(input); } --- 327,336 ---- * supplied by the application. */ public void parse (InputSource input) ! throws SAXException, IOException { ! setupParse(); ! parent.parse(input); } *************** public class XMLFilterImpl *** 345,357 **** * supplied by the application. */ public void parse (String systemId) ! throws SAXException, IOException { ! parse(new InputSource(systemId)); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.EntityResolver. //////////////////////////////////////////////////////////////////// --- 345,357 ---- * supplied by the application. */ public void parse (String systemId) ! throws SAXException, IOException { ! parse(new InputSource(systemId)); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.EntityResolver. //////////////////////////////////////////////////////////////////// *************** public class XMLFilterImpl *** 370,391 **** * new InputSource. */ public InputSource resolveEntity (String publicId, String systemId) ! throws SAXException, IOException { ! if (entityResolver != null) { ! return entityResolver.resolveEntity(publicId, systemId); ! } else { ! return null; ! } } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.DTDHandler. //////////////////////////////////////////////////////////////////// ! /** * Filter a notation declaration event. * --- 370,391 ---- * new InputSource. */ public InputSource resolveEntity (String publicId, String systemId) ! throws SAXException, IOException { ! if (entityResolver != null) { ! return entityResolver.resolveEntity(publicId, systemId); ! } else { ! return null; ! } } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.DTDHandler. //////////////////////////////////////////////////////////////////// ! /** * Filter a notation declaration event. * *************** public class XMLFilterImpl *** 396,409 **** * an exception during processing. */ public void notationDecl (String name, String publicId, String systemId) ! throws SAXException { ! if (dtdHandler != null) { ! dtdHandler.notationDecl(name, publicId, systemId); ! } } ! /** * Filter an unparsed entity declaration event. * --- 396,409 ---- * an exception during processing. */ public void notationDecl (String name, String publicId, String systemId) ! throws SAXException { ! if (dtdHandler != null) { ! dtdHandler.notationDecl(name, publicId, systemId); ! } } ! /** * Filter an unparsed entity declaration event. * *************** public class XMLFilterImpl *** 415,431 **** * an exception during processing. */ public void unparsedEntityDecl (String name, String publicId, ! String systemId, String notationName) ! throws SAXException { ! if (dtdHandler != null) { ! dtdHandler.unparsedEntityDecl(name, publicId, systemId, ! notationName); ! } } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.ContentHandler. //////////////////////////////////////////////////////////////////// --- 415,431 ---- * an exception during processing. */ public void unparsedEntityDecl (String name, String publicId, ! String systemId, String notationName) ! throws SAXException { ! if (dtdHandler != null) { ! dtdHandler.unparsedEntityDecl(name, publicId, systemId, ! notationName); ! } } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.ContentHandler. //////////////////////////////////////////////////////////////////// *************** public class XMLFilterImpl *** 438,447 **** */ public void setDocumentLocator (Locator locator) { ! this.locator = locator; ! if (contentHandler != null) { ! contentHandler.setDocumentLocator(locator); ! } } --- 438,447 ---- */ public void setDocumentLocator (Locator locator) { ! this.locator = locator; ! if (contentHandler != null) { ! contentHandler.setDocumentLocator(locator); ! } } *************** public class XMLFilterImpl *** 452,462 **** * an exception during processing. */ public void startDocument () ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.startDocument(); ! } } --- 452,462 ---- * an exception during processing. */ public void startDocument () ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.startDocument(); ! } } *************** public class XMLFilterImpl *** 467,477 **** * an exception during processing. */ public void endDocument () ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.endDocument(); ! } } --- 467,477 ---- * an exception during processing. */ public void endDocument () ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.endDocument(); ! } } *************** public class XMLFilterImpl *** 484,494 **** * an exception during processing. */ public void startPrefixMapping (String prefix, String uri) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.startPrefixMapping(prefix, uri); ! } } --- 484,494 ---- * an exception during processing. */ public void startPrefixMapping (String prefix, String uri) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.startPrefixMapping(prefix, uri); ! } } *************** public class XMLFilterImpl *** 500,510 **** * an exception during processing. */ public void endPrefixMapping (String prefix) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.endPrefixMapping(prefix); ! } } --- 500,510 ---- * an exception during processing. */ public void endPrefixMapping (String prefix) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.endPrefixMapping(prefix); ! } } *************** public class XMLFilterImpl *** 520,531 **** * an exception during processing. */ public void startElement (String uri, String localName, String qName, ! Attributes atts) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.startElement(uri, localName, qName, atts); ! } } --- 520,531 ---- * an exception during processing. */ public void startElement (String uri, String localName, String qName, ! Attributes atts) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.startElement(uri, localName, qName, atts); ! } } *************** public class XMLFilterImpl *** 540,550 **** * an exception during processing. */ public void endElement (String uri, String localName, String qName) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.endElement(uri, localName, qName); ! } } --- 540,550 ---- * an exception during processing. */ public void endElement (String uri, String localName, String qName) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.endElement(uri, localName, qName); ! } } *************** public class XMLFilterImpl *** 558,568 **** * an exception during processing. */ public void characters (char ch[], int start, int length) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.characters(ch, start, length); ! } } --- 558,568 ---- * an exception during processing. */ public void characters (char ch[], int start, int length) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.characters(ch, start, length); ! } } *************** public class XMLFilterImpl *** 576,586 **** * an exception during processing. */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.ignorableWhitespace(ch, start, length); ! } } --- 576,586 ---- * an exception during processing. */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.ignorableWhitespace(ch, start, length); ! } } *************** public class XMLFilterImpl *** 593,603 **** * an exception during processing. */ public void processingInstruction (String target, String data) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.processingInstruction(target, data); ! } } --- 593,603 ---- * an exception during processing. */ public void processingInstruction (String target, String data) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.processingInstruction(target, data); ! } } *************** public class XMLFilterImpl *** 609,623 **** * an exception during processing. */ public void skippedEntity (String name) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.skippedEntity(name); ! } } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.ErrorHandler. //////////////////////////////////////////////////////////////////// --- 609,623 ---- * an exception during processing. */ public void skippedEntity (String name) ! throws SAXException { ! if (contentHandler != null) { ! contentHandler.skippedEntity(name); ! } } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.ErrorHandler. //////////////////////////////////////////////////////////////////// *************** public class XMLFilterImpl *** 631,641 **** * an exception during processing. */ public void warning (SAXParseException e) ! throws SAXException { ! if (errorHandler != null) { ! errorHandler.warning(e); ! } } --- 631,641 ---- * an exception during processing. */ public void warning (SAXParseException e) ! throws SAXException { ! if (errorHandler != null) { ! errorHandler.warning(e); ! } } *************** public class XMLFilterImpl *** 647,657 **** * an exception during processing. */ public void error (SAXParseException e) ! throws SAXException { ! if (errorHandler != null) { ! errorHandler.error(e); ! } } --- 647,657 ---- * an exception during processing. */ public void error (SAXParseException e) ! throws SAXException { ! if (errorHandler != null) { ! errorHandler.error(e); ! } } *************** public class XMLFilterImpl *** 663,677 **** * an exception during processing. */ public void fatalError (SAXParseException e) ! throws SAXException { ! if (errorHandler != null) { ! errorHandler.fatalError(e); ! } } ! //////////////////////////////////////////////////////////////////// // Internal methods. //////////////////////////////////////////////////////////////////// --- 663,677 ---- * an exception during processing. */ public void fatalError (SAXParseException e) ! throws SAXException { ! if (errorHandler != null) { ! errorHandler.fatalError(e); ! } } ! //////////////////////////////////////////////////////////////////// // Internal methods. //////////////////////////////////////////////////////////////////// *************** public class XMLFilterImpl *** 681,702 **** * Set up before a parse. * *

      Before every parse, check whether the parent is ! * non-null, and re-register the filter for all of the * events.

      */ private void setupParse () { ! if (parent == null) { ! throw new NullPointerException("No parent for filter"); ! } ! parent.setEntityResolver(this); ! parent.setDTDHandler(this); ! parent.setContentHandler(this); ! parent.setErrorHandler(this); } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// --- 681,702 ---- * Set up before a parse. * *

      Before every parse, check whether the parent is ! * non-null, and re-register the filter for all of the * events.

      */ private void setupParse () { ! if (parent == null) { ! throw new NullPointerException("No parent for filter"); ! } ! parent.setEntityResolver(this); ! parent.setDTDHandler(this); ! parent.setContentHandler(this); ! parent.setErrorHandler(this); } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java Tue Jan 11 19:46:05 2011 *************** package org.xml.sax.helpers; *** 9,15 **** import java.io.IOException; import java.util.Locale; ! import org.xml.sax.Parser; // deprecated import org.xml.sax.Locator; import org.xml.sax.InputSource; import org.xml.sax.AttributeList; // deprecated --- 9,15 ---- import java.io.IOException; import java.util.Locale; ! import org.xml.sax.Parser; // deprecated import org.xml.sax.Locator; import org.xml.sax.InputSource; import org.xml.sax.AttributeList; // deprecated *************** import org.xml.sax.SAXNotSupportedExcept *** 36,46 **** * * *

      This class wraps a SAX2 {@link org.xml.sax.XMLReader XMLReader} ! * and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}. The XMLReader ! * must support a true value for the * http://xml.org/sax/features/namespace-prefixes property or parsing will fail ! * with a {@link org.xml.sax.SAXException SAXException}; if the XMLReader ! * supports a false value for the http://xml.org/sax/features/namespaces * property, that will also be used to improve efficiency.

      * * @since SAX 2.0 --- 36,46 ---- * * *

      This class wraps a SAX2 {@link org.xml.sax.XMLReader XMLReader} ! * and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}. The XMLReader ! * must support a true value for the * http://xml.org/sax/features/namespace-prefixes property or parsing will fail ! * with a {@link org.xml.sax.SAXException SAXException}; if the XMLReader ! * supports a false value for the http://xml.org/sax/features/namespaces * property, that will also be used to improve efficiency.

      * * @since SAX 2.0 *************** import org.xml.sax.SAXNotSupportedExcept *** 52,58 **** public class XMLReaderAdapter implements Parser, ContentHandler { ! //////////////////////////////////////////////////////////////////// // Constructor. //////////////////////////////////////////////////////////////////// --- 52,58 ---- public class XMLReaderAdapter implements Parser, ContentHandler { ! //////////////////////////////////////////////////////////////////// // Constructor. //////////////////////////////////////////////////////////////////// *************** public class XMLReaderAdapter implements *** 71,77 **** public XMLReaderAdapter () throws SAXException { ! setup(XMLReaderFactory.createXMLReader()); } --- 71,77 ---- public XMLReaderAdapter () throws SAXException { ! setup(XMLReaderFactory.createXMLReader()); } *************** public class XMLReaderAdapter implements *** 87,93 **** */ public XMLReaderAdapter (XMLReader xmlReader) { ! setup(xmlReader); } --- 87,93 ---- */ public XMLReaderAdapter (XMLReader xmlReader) { ! setup(xmlReader); } *************** public class XMLReaderAdapter implements *** 99,109 **** */ private void setup (XMLReader xmlReader) { ! if (xmlReader == null) { ! throw new NullPointerException("XMLReader must not be null"); ! } ! this.xmlReader = xmlReader; ! qAtts = new AttributesAdapter(); } --- 99,109 ---- */ private void setup (XMLReader xmlReader) { ! if (xmlReader == null) { ! throw new NullPointerException("XMLReader must not be null"); ! } ! this.xmlReader = xmlReader; ! qAtts = new AttributesAdapter(); } *************** public class XMLReaderAdapter implements *** 124,132 **** * @exception org.xml.sax.SAXException Thrown unless overridden. */ public void setLocale (Locale locale) ! throws SAXException { ! throw new SAXNotSupportedException("setLocale not supported"); } --- 124,132 ---- * @exception org.xml.sax.SAXException Thrown unless overridden. */ public void setLocale (Locale locale) ! throws SAXException { ! throw new SAXNotSupportedException("setLocale not supported"); } *************** public class XMLReaderAdapter implements *** 138,144 **** */ public void setEntityResolver (EntityResolver resolver) { ! xmlReader.setEntityResolver(resolver); } --- 138,144 ---- */ public void setEntityResolver (EntityResolver resolver) { ! xmlReader.setEntityResolver(resolver); } *************** public class XMLReaderAdapter implements *** 150,156 **** */ public void setDTDHandler (DTDHandler handler) { ! xmlReader.setDTDHandler(handler); } --- 150,156 ---- */ public void setDTDHandler (DTDHandler handler) { ! xmlReader.setDTDHandler(handler); } *************** public class XMLReaderAdapter implements *** 165,171 **** */ public void setDocumentHandler (DocumentHandler handler) { ! documentHandler = handler; } --- 165,171 ---- */ public void setDocumentHandler (DocumentHandler handler) { ! documentHandler = handler; } *************** public class XMLReaderAdapter implements *** 177,183 **** */ public void setErrorHandler (ErrorHandler handler) { ! xmlReader.setErrorHandler(handler); } --- 177,183 ---- */ public void setErrorHandler (ErrorHandler handler) { ! xmlReader.setErrorHandler(handler); } *************** public class XMLReaderAdapter implements *** 185,191 **** * Parse the document. * *

      This method will throw an exception if the embedded ! * XMLReader does not support the * http://xml.org/sax/features/namespace-prefixes property.

      * * @param systemId The absolute URL of the document. --- 185,191 ---- * Parse the document. * *

      This method will throw an exception if the embedded ! * XMLReader does not support the * http://xml.org/sax/features/namespace-prefixes property.

      * * @param systemId The absolute URL of the document. *************** public class XMLReaderAdapter implements *** 197,205 **** * @see org.xml.sax.Parser#parse(java.lang.String) */ public void parse (String systemId) ! throws IOException, SAXException { ! parse(new InputSource(systemId)); } --- 197,205 ---- * @see org.xml.sax.Parser#parse(java.lang.String) */ public void parse (String systemId) ! throws IOException, SAXException { ! parse(new InputSource(systemId)); } *************** public class XMLReaderAdapter implements *** 207,213 **** * Parse the document. * *

      This method will throw an exception if the embedded ! * XMLReader does not support the * http://xml.org/sax/features/namespace-prefixes property.

      * * @param input An input source for the document. --- 207,213 ---- * Parse the document. * *

      This method will throw an exception if the embedded ! * XMLReader does not support the * http://xml.org/sax/features/namespace-prefixes property.

      * * @param input An input source for the document. *************** public class XMLReaderAdapter implements *** 219,228 **** * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource) */ public void parse (InputSource input) ! throws IOException, SAXException { ! setupXMLReader(); ! xmlReader.parse(input); } --- 219,228 ---- * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource) */ public void parse (InputSource input) ! throws IOException, SAXException { ! setupXMLReader(); ! xmlReader.parse(input); } *************** public class XMLReaderAdapter implements *** 230,249 **** * Set up the XML reader. */ private void setupXMLReader () ! throws SAXException { ! xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); ! try { ! xmlReader.setFeature("http://xml.org/sax/features/namespaces", ! false); ! } catch (SAXException e) { ! // NO OP: it's just extra information, and we can ignore it ! } ! xmlReader.setContentHandler(this); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.ContentHandler. //////////////////////////////////////////////////////////////////// --- 230,249 ---- * Set up the XML reader. */ private void setupXMLReader () ! throws SAXException { ! xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); ! try { ! xmlReader.setFeature("http://xml.org/sax/features/namespaces", ! false); ! } catch (SAXException e) { ! // NO OP: it's just extra information, and we can ignore it ! } ! xmlReader.setContentHandler(this); } ! //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.ContentHandler. //////////////////////////////////////////////////////////////////// *************** public class XMLReaderAdapter implements *** 257,264 **** */ public void setDocumentLocator (Locator locator) { ! if (documentHandler != null) ! documentHandler.setDocumentLocator(locator); } --- 257,264 ---- */ public void setDocumentLocator (Locator locator) { ! if (documentHandler != null) ! documentHandler.setDocumentLocator(locator); } *************** public class XMLReaderAdapter implements *** 270,279 **** * @see org.xml.sax.ContentHandler#startDocument */ public void startDocument () ! throws SAXException { ! if (documentHandler != null) ! documentHandler.startDocument(); } --- 270,279 ---- * @see org.xml.sax.ContentHandler#startDocument */ public void startDocument () ! throws SAXException { ! if (documentHandler != null) ! documentHandler.startDocument(); } *************** public class XMLReaderAdapter implements *** 285,294 **** * @see org.xml.sax.ContentHandler#endDocument */ public void endDocument () ! throws SAXException { ! if (documentHandler != null) ! documentHandler.endDocument(); } --- 285,294 ---- * @see org.xml.sax.ContentHandler#endDocument */ public void endDocument () ! throws SAXException { ! if (documentHandler != null) ! documentHandler.endDocument(); } *************** public class XMLReaderAdapter implements *** 327,339 **** * @see org.xml.sax.ContentHandler#endDocument */ public void startElement (String uri, String localName, ! String qName, Attributes atts) ! throws SAXException { ! if (documentHandler != null) { ! qAtts.setAttributes(atts); ! documentHandler.startElement(qName, qAtts); ! } } --- 327,339 ---- * @see org.xml.sax.ContentHandler#endDocument */ public void startElement (String uri, String localName, ! String qName, Attributes atts) ! throws SAXException { ! if (documentHandler != null) { ! qAtts.setAttributes(atts); ! documentHandler.startElement(qName, qAtts); ! } } *************** public class XMLReaderAdapter implements *** 348,358 **** * @see org.xml.sax.ContentHandler#endElement */ public void endElement (String uri, String localName, ! String qName) ! throws SAXException { ! if (documentHandler != null) ! documentHandler.endElement(qName); } --- 348,358 ---- * @see org.xml.sax.ContentHandler#endElement */ public void endElement (String uri, String localName, ! String qName) ! throws SAXException { ! if (documentHandler != null) ! documentHandler.endElement(qName); } *************** public class XMLReaderAdapter implements *** 367,376 **** * @see org.xml.sax.ContentHandler#characters */ public void characters (char ch[], int start, int length) ! throws SAXException { ! if (documentHandler != null) ! documentHandler.characters(ch, start, length); } --- 367,376 ---- * @see org.xml.sax.ContentHandler#characters */ public void characters (char ch[], int start, int length) ! throws SAXException { ! if (documentHandler != null) ! documentHandler.characters(ch, start, length); } *************** public class XMLReaderAdapter implements *** 385,394 **** * @see org.xml.sax.ContentHandler#ignorableWhitespace */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! if (documentHandler != null) ! documentHandler.ignorableWhitespace(ch, start, length); } --- 385,394 ---- * @see org.xml.sax.ContentHandler#ignorableWhitespace */ public void ignorableWhitespace (char ch[], int start, int length) ! throws SAXException { ! if (documentHandler != null) ! documentHandler.ignorableWhitespace(ch, start, length); } *************** public class XMLReaderAdapter implements *** 402,411 **** * @see org.xml.sax.ContentHandler#processingInstruction */ public void processingInstruction (String target, String data) ! throws SAXException { ! if (documentHandler != null) ! documentHandler.processingInstruction(target, data); } --- 402,411 ---- * @see org.xml.sax.ContentHandler#processingInstruction */ public void processingInstruction (String target, String data) ! throws SAXException { ! if (documentHandler != null) ! documentHandler.processingInstruction(target, data); } *************** public class XMLReaderAdapter implements *** 417,428 **** * @exception org.xml.sax.SAXException Throwable by subclasses. */ public void skippedEntity (String name) ! throws SAXException { } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// --- 417,428 ---- * @exception org.xml.sax.SAXException Throwable by subclasses. */ public void skippedEntity (String name) ! throws SAXException { } ! //////////////////////////////////////////////////////////////////// // Internal state. //////////////////////////////////////////////////////////////////// *************** public class XMLReaderAdapter implements *** 432,438 **** AttributesAdapter qAtts; ! //////////////////////////////////////////////////////////////////// // Internal class. //////////////////////////////////////////////////////////////////// --- 432,438 ---- AttributesAdapter qAtts; ! //////////////////////////////////////////////////////////////////// // Internal class. //////////////////////////////////////////////////////////////////// *************** public class XMLReaderAdapter implements *** 443,536 **** */ final class AttributesAdapter implements AttributeList { ! AttributesAdapter () ! { ! } ! /** ! * Set the embedded Attributes object. ! * ! * @param The embedded SAX2 Attributes. ! */ ! void setAttributes (Attributes attributes) ! { ! this.attributes = attributes; ! } ! /** ! * Return the number of attributes. ! * ! * @return The length of the attribute list. ! * @see org.xml.sax.AttributeList#getLength ! */ ! public int getLength () ! { ! return attributes.getLength(); ! } ! /** ! * Return the qualified (prefixed) name of an attribute by position. ! * ! * @return The qualified name. ! * @see org.xml.sax.AttributeList#getName ! */ ! public String getName (int i) ! { ! return attributes.getQName(i); ! } ! /** ! * Return the type of an attribute by position. ! * ! * @return The type. ! * @see org.xml.sax.AttributeList#getType(int) ! */ ! public String getType (int i) ! { ! return attributes.getType(i); ! } ! /** ! * Return the value of an attribute by position. ! * ! * @return The value. ! * @see org.xml.sax.AttributeList#getValue(int) ! */ ! public String getValue (int i) ! { ! return attributes.getValue(i); ! } ! /** ! * Return the type of an attribute by qualified (prefixed) name. ! * ! * @return The type. ! * @see org.xml.sax.AttributeList#getType(java.lang.String) ! */ ! public String getType (String qName) ! { ! return attributes.getType(qName); ! } ! /** ! * Return the value of an attribute by qualified (prefixed) name. ! * ! * @return The value. ! * @see org.xml.sax.AttributeList#getValue(java.lang.String) ! */ ! public String getValue (String qName) ! { ! return attributes.getValue(qName); ! } ! private Attributes attributes; } } --- 443,536 ---- */ final class AttributesAdapter implements AttributeList { ! AttributesAdapter () ! { ! } ! /** ! * Set the embedded Attributes object. ! * ! * @param The embedded SAX2 Attributes. ! */ ! void setAttributes (Attributes attributes) ! { ! this.attributes = attributes; ! } ! /** ! * Return the number of attributes. ! * ! * @return The length of the attribute list. ! * @see org.xml.sax.AttributeList#getLength ! */ ! public int getLength () ! { ! return attributes.getLength(); ! } ! /** ! * Return the qualified (prefixed) name of an attribute by position. ! * ! * @return The qualified name. ! * @see org.xml.sax.AttributeList#getName ! */ ! public String getName (int i) ! { ! return attributes.getQName(i); ! } ! /** ! * Return the type of an attribute by position. ! * ! * @return The type. ! * @see org.xml.sax.AttributeList#getType(int) ! */ ! public String getType (int i) ! { ! return attributes.getType(i); ! } ! /** ! * Return the value of an attribute by position. ! * ! * @return The value. ! * @see org.xml.sax.AttributeList#getValue(int) ! */ ! public String getValue (int i) ! { ! return attributes.getValue(i); ! } ! /** ! * Return the type of an attribute by qualified (prefixed) name. ! * ! * @return The type. ! * @see org.xml.sax.AttributeList#getType(java.lang.String) ! */ ! public String getType (String qName) ! { ! return attributes.getType(qName); ! } ! /** ! * Return the value of an attribute by qualified (prefixed) name. ! * ! * @return The value. ! * @see org.xml.sax.AttributeList#getValue(java.lang.String) ! */ ! public String getValue (String qName) ! { ! return attributes.getValue(qName); ! } ! private Attributes attributes; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java *** gcc-4.5.2/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java Tue Mar 27 19:29:54 2007 --- gcc-4.6.0/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java Tue Jan 11 19:46:05 2011 *************** final public class XMLReaderFactory *** 102,165 **** * @see #createXMLReader(java.lang.String) */ public static XMLReader createXMLReader () ! throws SAXException { ! String className = null; ! ClassLoader loader = NewInstance.getClassLoader (); ! ! // 1. try the JVM-instance-wide system property ! try { className = System.getProperty (property); } ! catch (RuntimeException e) { /* normally fails for applets */ } ! // 2. if that fails, try META-INF/services/ ! if (className == null) { ! try { ! String service = "META-INF/services/" + property; ! InputStream in; ! BufferedReader reader; ! if (loader == null) ! in = ClassLoader.getSystemResourceAsStream (service); ! else ! in = loader.getResourceAsStream (service); ! if (in != null) { ! reader = new BufferedReader ( ! new InputStreamReader (in, "UTF8")); ! className = reader.readLine (); ! in.close (); ! } ! } catch (Exception e) { ! } ! } ! // 3. Distro-specific fallback ! if (className == null) { // BEGIN DISTRIBUTION-SPECIFIC ! // CLASSPATH LOCAL: have to code in the backup. ! // Among other things, see PR 31303, and this thread: ! // http://gcc.gnu.org/ml/java-patches/2007-q1/msg00661.html ! className = "gnu.xml.stream.SAXParser"; ! // EXAMPLE: ! // className = "com.example.sax.XmlReader"; ! // or a $JAVA_HOME/jre/lib/*properties setting... // END DISTRIBUTION-SPECIFIC ! } ! ! // do we know the XMLReader implementation class yet? ! if (className != null) ! return loadClass (loader, className); ! // 4. panic -- adapt any SAX1 parser ! try { ! return new ParserAdapter (ParserFactory.makeParser ()); ! } catch (Exception e) { ! throw new SAXException ("Can't create default XMLReader; " ! + "is system property org.xml.sax.driver set?"); ! } } --- 102,165 ---- * @see #createXMLReader(java.lang.String) */ public static XMLReader createXMLReader () ! throws SAXException { ! String className = null; ! ClassLoader loader = NewInstance.getClassLoader (); ! // 1. try the JVM-instance-wide system property ! try { className = System.getProperty (property); } ! catch (RuntimeException e) { /* normally fails for applets */ } ! // 2. if that fails, try META-INF/services/ ! if (className == null) { ! try { ! String service = "META-INF/services/" + property; ! InputStream in; ! BufferedReader reader; ! if (loader == null) ! in = ClassLoader.getSystemResourceAsStream (service); ! else ! in = loader.getResourceAsStream (service); ! if (in != null) { ! reader = new BufferedReader ( ! new InputStreamReader (in, "UTF8")); ! className = reader.readLine (); ! in.close (); ! } ! } catch (Exception e) { ! } ! } ! ! // 3. Distro-specific fallback ! if (className == null) { // BEGIN DISTRIBUTION-SPECIFIC ! // CLASSPATH LOCAL: have to code in the backup. ! // Among other things, see PR 31303, and this thread: ! // http://gcc.gnu.org/ml/java-patches/2007-q1/msg00661.html ! className = "gnu.xml.stream.SAXParser"; ! // EXAMPLE: ! // className = "com.example.sax.XmlReader"; ! // or a $JAVA_HOME/jre/lib/*properties setting... // END DISTRIBUTION-SPECIFIC ! } ! // do we know the XMLReader implementation class yet? ! if (className != null) ! return loadClass (loader, className); ! ! // 4. panic -- adapt any SAX1 parser ! try { ! return new ParserAdapter (ParserFactory.makeParser ()); ! } catch (Exception e) { ! throw new SAXException ("Can't create default XMLReader; " ! + "is system property org.xml.sax.driver set?"); ! } } *************** final public class XMLReaderFactory *** 179,207 **** * @see #createXMLReader() */ public static XMLReader createXMLReader (String className) ! throws SAXException { ! return loadClass (NewInstance.getClassLoader (), className); } private static XMLReader loadClass (ClassLoader loader, String className) throws SAXException { ! try { ! return (XMLReader) NewInstance.newInstance (loader, className); ! } catch (ClassNotFoundException e1) { ! throw new SAXException("SAX2 driver class " + className + ! " not found", e1); ! } catch (IllegalAccessException e2) { ! throw new SAXException("SAX2 driver class " + className + ! " found but cannot be loaded", e2); ! } catch (InstantiationException e3) { ! throw new SAXException("SAX2 driver class " + className + ! " loaded but cannot be instantiated (no empty public constructor?)", ! e3); ! } catch (ClassCastException e4) { ! throw new SAXException("SAX2 driver class " + className + ! " does not implement XMLReader", e4); ! } } } --- 179,207 ---- * @see #createXMLReader() */ public static XMLReader createXMLReader (String className) ! throws SAXException { ! return loadClass (NewInstance.getClassLoader (), className); } private static XMLReader loadClass (ClassLoader loader, String className) throws SAXException { ! try { ! return (XMLReader) NewInstance.newInstance (loader, className); ! } catch (ClassNotFoundException e1) { ! throw new SAXException("SAX2 driver class " + className + ! " not found", e1); ! } catch (IllegalAccessException e2) { ! throw new SAXException("SAX2 driver class " + className + ! " found but cannot be loaded", e2); ! } catch (InstantiationException e3) { ! throw new SAXException("SAX2 driver class " + className + ! " loaded but cannot be instantiated (no empty public constructor?)", ! e3); ! } catch (ClassCastException e4) { ! throw new SAXException("SAX2 driver class " + className + ! " does not implement XMLReader", e4); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/Makefile.in gcc-4.6.0/libjava/classpath/external/w3c_dom/Makefile.in *** gcc-4.5.2/libjava/classpath/external/w3c_dom/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = README $(srcdir)/Makefile. *** 39,44 **** --- 39,47 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 57,65 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 60,66 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java Tue Jan 11 19:46:05 2011 *************** *** 13,91 **** package org.w3c.dom; /** ! * The Attr interface represents an attribute in an ! * Element object. Typically the allowable values for the * attribute are defined in a schema associated with the document. ! *

      Attr objects inherit the Node interface, but ! * since they are not actually child nodes of the element they describe, the ! * DOM does not consider them part of the document tree. Thus, the ! * Node attributes parentNode, ! * previousSibling, and nextSibling have a ! * null value for Attr objects. The DOM takes the ! * view that attributes are properties of elements rather than having a ! * separate identity from the elements they are associated with; this should ! * make it more efficient to implement such features as default attributes ! * associated with all elements of a given type. Furthermore, ! * Attr nodes may not be immediate children of a ! * DocumentFragment. However, they can be associated with ! * Element nodes contained within a ! * DocumentFragment. In short, users and implementors of the ! * DOM need to be aware that Attr nodes have some things in ! * common with other objects inheriting the Node interface, but * they also are quite distinct. ! *

      The attribute's effective value is determined as follows: if this ! * attribute has been explicitly assigned any value, that value is the ! * attribute's effective value; otherwise, if there is a declaration for ! * this attribute, and that declaration includes a default value, then that ! * default value is the attribute's effective value; otherwise, the ! * attribute does not exist on this element in the structure model until it ! * has been explicitly added. Note that the Node.nodeValue ! * attribute on the Attr instance can also be used to retrieve * the string version of the attribute's value(s). ! *

      If the attribute was not explicitly given a value in the instance ! * document but has a default value provided by the schema associated with ! * the document, an attribute node will be created with ! * specified set to false. Removing attribute ! * nodes for which a default value is defined in the schema generates a new ! * attribute node with the default value and specified set to ! * false. If validation occurred while invoking ! * Document.normalizeDocument(), attribute nodes with ! * specified equals to false are recomputed ! * according to the default attribute values provided by the schema. If no ! * default value is associate with this attribute in the schema, the ! * attribute node is discarded. ! *

      In XML, where the value of an attribute can contain entity references, ! * the child nodes of the Attr node may be either ! * Text or EntityReference nodes (when these are ! * in use; see the description of EntityReference for ! * discussion). ! *

      The DOM Core represents all attribute values as simple strings, even if ! * the DTD or schema associated with the document declares them of some ! * specific type such as tokenized. ! *

      The way attribute value normalization is performed by the DOM ! * implementation depends on how much the implementation knows about the ! * schema in use. Typically, the value and ! * nodeValue attributes of an Attr node initially ! * returns the normalized value given by the parser. It is also the case ! * after Document.normalizeDocument() is called (assuming the ! * right options have been set). But this may not be the case after ! * mutation, independently of whether the mutation is performed by setting ! * the string value directly or by changing the Attr child ! * nodes. In particular, this is true when character ! * references are involved, given that they are not represented in the DOM and they ! * impact attribute value normalization. On the other hand, if the ! * implementation knows about the schema in use when the attribute value is ! * changed, and it is of a different type than CDATA, it may normalize it ! * again at that time. This is especially true of specialized DOM ! * implementations, such as SVG DOM implementations, which store attribute * values in an internal form different from a string. ! *

      The following table gives some examples of the relations between the ! * attribute value in the original document (parsed attribute), the value as ! * exposed in the DOM, and the serialization of the value: * * * ! * * * --- 13,91 ---- package org.w3c.dom; /** ! * The Attr interface represents an attribute in an ! * Element object. Typically the allowable values for the * attribute are defined in a schema associated with the document. ! *

      Attr objects inherit the Node interface, but ! * since they are not actually child nodes of the element they describe, the ! * DOM does not consider them part of the document tree. Thus, the ! * Node attributes parentNode, ! * previousSibling, and nextSibling have a ! * null value for Attr objects. The DOM takes the ! * view that attributes are properties of elements rather than having a ! * separate identity from the elements they are associated with; this should ! * make it more efficient to implement such features as default attributes ! * associated with all elements of a given type. Furthermore, ! * Attr nodes may not be immediate children of a ! * DocumentFragment. However, they can be associated with ! * Element nodes contained within a ! * DocumentFragment. In short, users and implementors of the ! * DOM need to be aware that Attr nodes have some things in ! * common with other objects inheriting the Node interface, but * they also are quite distinct. ! *

      The attribute's effective value is determined as follows: if this ! * attribute has been explicitly assigned any value, that value is the ! * attribute's effective value; otherwise, if there is a declaration for ! * this attribute, and that declaration includes a default value, then that ! * default value is the attribute's effective value; otherwise, the ! * attribute does not exist on this element in the structure model until it ! * has been explicitly added. Note that the Node.nodeValue ! * attribute on the Attr instance can also be used to retrieve * the string version of the attribute's value(s). ! *

      If the attribute was not explicitly given a value in the instance ! * document but has a default value provided by the schema associated with ! * the document, an attribute node will be created with ! * specified set to false. Removing attribute ! * nodes for which a default value is defined in the schema generates a new ! * attribute node with the default value and specified set to ! * false. If validation occurred while invoking ! * Document.normalizeDocument(), attribute nodes with ! * specified equals to false are recomputed ! * according to the default attribute values provided by the schema. If no ! * default value is associate with this attribute in the schema, the ! * attribute node is discarded. ! *

      In XML, where the value of an attribute can contain entity references, ! * the child nodes of the Attr node may be either ! * Text or EntityReference nodes (when these are ! * in use; see the description of EntityReference for ! * discussion). ! *

      The DOM Core represents all attribute values as simple strings, even if ! * the DTD or schema associated with the document declares them of some ! * specific type such as tokenized. ! *

      The way attribute value normalization is performed by the DOM ! * implementation depends on how much the implementation knows about the ! * schema in use. Typically, the value and ! * nodeValue attributes of an Attr node initially ! * returns the normalized value given by the parser. It is also the case ! * after Document.normalizeDocument() is called (assuming the ! * right options have been set). But this may not be the case after ! * mutation, independently of whether the mutation is performed by setting ! * the string value directly or by changing the Attr child ! * nodes. In particular, this is true when character ! * references are involved, given that they are not represented in the DOM and they ! * impact attribute value normalization. On the other hand, if the ! * implementation knows about the schema in use when the attribute value is ! * changed, and it is of a different type than CDATA, it may normalize it ! * again at that time. This is especially true of specialized DOM ! * implementations, such as SVG DOM implementations, which store attribute * values in an internal form different from a string. ! *

      The following table gives some examples of the relations between the ! * attribute value in the original document (parsed attribute), the value as ! * exposed in the DOM, and the serialization of the value: *

      ExamplesParsed * attribute valueInitial Attr.valueSerialized attribute value
      * * ! * * * *************** package org.w3c.dom; *** 104,110 **** * * * ! * * * * ! * * * * * * * * * * ! * * *
      ExamplesParsed * attribute valueInitial Attr.valueSerialized attribute value
      Built-in * character entity *
      "y&lt;6"
      --- 104,110 ---- *
      Built-in * character entity *
      "y&lt;6"
      *************** package org.w3c.dom; *** 132,138 **** *
      Normalized newline between ! *
      "x=5 
         * y=6"
      *
      --- 132,138 ---- *
      Normalized newline between ! *
      "x=5
         * y=6"
      *
      *************** package org.w3c.dom; *** 156,206 **** */ public interface Attr extends Node { /** ! * Returns the name of this attribute. If Node.localName is * different from null, this attribute is a qualified name. */ public String getName(); /** ! * True if this attribute was explicitly given a value in ! * the instance document, false otherwise. If the ! * application changed the value of this attribute node (even if it ends ! * up having the same value as the default value) then it is set to ! * true. The implementation may handle attributes with ! * default values from other schemas similarly but applications should ! * use Document.normalizeDocument() to guarantee this ! * information is up-to-date. */ public boolean getSpecified(); /** ! * On retrieval, the value of the attribute is returned as a string. ! * Character and general entity references are replaced with their ! * values. See also the method getAttribute on the * Element interface. ! *
      On setting, this creates a Text node with the unparsed ! * contents of the string, i.e. any characters that an XML processor ! * would recognize as markup are instead treated as literal text. See * also the method Element.setAttribute(). ! *
      Some specialized implementations, such as some [SVG 1.1] ! * implementations, may do normalization automatically, even after ! * mutation; in such case, the value on retrieval may differ from the ! * value on setting. */ public String getValue(); /** ! * On retrieval, the value of the attribute is returned as a string. ! * Character and general entity references are replaced with their ! * values. See also the method getAttribute on the * Element interface. ! *
      On setting, this creates a Text node with the unparsed ! * contents of the string, i.e. any characters that an XML processor ! * would recognize as markup are instead treated as literal text. See * also the method Element.setAttribute(). ! *
      Some specialized implementations, such as some [SVG 1.1] ! * implementations, may do normalization automatically, even after ! * mutation; in such case, the value on retrieval may differ from the ! * value on setting. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. */ --- 156,206 ---- */ public interface Attr extends Node { /** ! * Returns the name of this attribute. If Node.localName is * different from null, this attribute is a qualified name. */ public String getName(); /** ! * True if this attribute was explicitly given a value in ! * the instance document, false otherwise. If the ! * application changed the value of this attribute node (even if it ends ! * up having the same value as the default value) then it is set to ! * true. The implementation may handle attributes with ! * default values from other schemas similarly but applications should ! * use Document.normalizeDocument() to guarantee this ! * information is up-to-date. */ public boolean getSpecified(); /** ! * On retrieval, the value of the attribute is returned as a string. ! * Character and general entity references are replaced with their ! * values. See also the method getAttribute on the * Element interface. ! *
      On setting, this creates a Text node with the unparsed ! * contents of the string, i.e. any characters that an XML processor ! * would recognize as markup are instead treated as literal text. See * also the method Element.setAttribute(). ! *
      Some specialized implementations, such as some [SVG 1.1] ! * implementations, may do normalization automatically, even after ! * mutation; in such case, the value on retrieval may differ from the ! * value on setting. */ public String getValue(); /** ! * On retrieval, the value of the attribute is returned as a string. ! * Character and general entity references are replaced with their ! * values. See also the method getAttribute on the * Element interface. ! *
      On setting, this creates a Text node with the unparsed ! * contents of the string, i.e. any characters that an XML processor ! * would recognize as markup are instead treated as literal text. See * also the method Element.setAttribute(). ! *
      Some specialized implementations, such as some [SVG 1.1] ! * implementations, may do normalization automatically, even after ! * mutation; in such case, the value on retrieval may differ from the ! * value on setting. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. */ *************** public interface Attr extends Node { *** 208,273 **** throws DOMException; /** ! * The Element node this attribute is attached to or * null if this attribute is not in use. * @since DOM Level 2 */ public Element getOwnerElement(); /** ! * The type information associated with this attribute. While the type ! * information contained in this attribute is guarantee to be correct ! * after loading the document or invoking * Document.normalizeDocument(), schemaTypeInfo ! * may not be reliable if the node was moved. * @since DOM Level 3 */ public TypeInfo getSchemaTypeInfo(); /** ! * Returns whether this attribute is known to be of type ID (i.e. to ! * contain an identifier for its owner element) or not. When it is and ! * its value is unique, the ownerElement of this attribute * can be retrieved using the method Document.getElementById ! * . The implementation could use several ways to determine if an ! * attribute node is known to contain an identifier: *
        ! *
      • If validation * occurred using an XML Schema [XML Schema Part 1] ! * while loading the document or while invoking ! * Document.normalizeDocument(), the post-schema-validation ! * infoset contributions (PSVI contributions) values are used to ! * determine if this attribute is a schema-determined ID attribute using * the * schema-determined ID definition in [XPointer] ! * . *
      • ! *
      • If validation occurred using a DTD while loading the document or ! * while invoking Document.normalizeDocument(), the infoset [type definition] value is used to determine if this attribute is a DTD-determined ID * attribute using the * DTD-determined ID definition in [XPointer] ! * . *
      • ! *
      • from the use of the methods Element.setIdAttribute(), ! * Element.setIdAttributeNS(), or ! * Element.setIdAttributeNode(), i.e. it is an ! * user-determined ID attribute; *

        Note: XPointer framework (see section 3.2 in [XPointer] ! * ) consider the DOM user-determined ID attribute as being part of the ! * XPointer externally-determined ID definition. *

      • ! *
      • using mechanisms that ! * are outside the scope of this specification, it is then an ! * externally-determined ID attribute. This includes using schema ! * languages different from XML schema and DTD. *
      • *
      ! *
      If validation occurred while invoking ! * Document.normalizeDocument(), all user-determined ID ! * attributes are reset and all attribute nodes ID information are then ! * reevaluated in accordance to the schema used. As a consequence, if ! * the Attr.schemaTypeInfo attribute contains an ID type, ! * isId will always return true. * @since DOM Level 3 */ public boolean isId(); --- 208,273 ---- throws DOMException; /** ! * The Element node this attribute is attached to or * null if this attribute is not in use. * @since DOM Level 2 */ public Element getOwnerElement(); /** ! * The type information associated with this attribute. While the type ! * information contained in this attribute is guarantee to be correct ! * after loading the document or invoking * Document.normalizeDocument(), schemaTypeInfo ! * may not be reliable if the node was moved. * @since DOM Level 3 */ public TypeInfo getSchemaTypeInfo(); /** ! * Returns whether this attribute is known to be of type ID (i.e. to ! * contain an identifier for its owner element) or not. When it is and ! * its value is unique, the ownerElement of this attribute * can be retrieved using the method Document.getElementById ! * . The implementation could use several ways to determine if an ! * attribute node is known to contain an identifier: *
        ! *
      • If validation * occurred using an XML Schema [XML Schema Part 1] ! * while loading the document or while invoking ! * Document.normalizeDocument(), the post-schema-validation ! * infoset contributions (PSVI contributions) values are used to ! * determine if this attribute is a schema-determined ID attribute using * the * schema-determined ID definition in [XPointer] ! * . *
      • ! *
      • If validation occurred using a DTD while loading the document or ! * while invoking Document.normalizeDocument(), the infoset [type definition] value is used to determine if this attribute is a DTD-determined ID * attribute using the * DTD-determined ID definition in [XPointer] ! * . *
      • ! *
      • from the use of the methods Element.setIdAttribute(), ! * Element.setIdAttributeNS(), or ! * Element.setIdAttributeNode(), i.e. it is an ! * user-determined ID attribute; *

        Note: XPointer framework (see section 3.2 in [XPointer] ! * ) consider the DOM user-determined ID attribute as being part of the ! * XPointer externally-determined ID definition. *

      • ! *
      • using mechanisms that ! * are outside the scope of this specification, it is then an ! * externally-determined ID attribute. This includes using schema ! * languages different from XML schema and DTD. *
      • *
      ! *
      If validation occurred while invoking ! * Document.normalizeDocument(), all user-determined ID ! * attributes are reset and all attribute nodes ID information are then ! * reevaluated in accordance to the schema used. As a consequence, if ! * the Attr.schemaTypeInfo attribute contains an ID type, ! * isId will always return true. * @since DOM Level 3 */ public boolean isId(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java Tue Jan 11 19:46:05 2011 *************** *** 13,52 **** package org.w3c.dom; /** ! * CDATA sections are used to escape blocks of text containing characters that ! * would otherwise be regarded as markup. The only delimiter that is ! * recognized in a CDATA section is the "]]>" string that ends the CDATA ! * section. CDATA sections cannot be nested. Their primary purpose is for ! * including material such as XML fragments, without needing to escape all * the delimiters. ! *

      The CharacterData.data attribute holds the text that is ! * contained by the CDATA section. Note that this may contain characters that need to be escaped outside of CDATA sections and ! * that, depending on the character encoding ("charset") chosen for ! * serialization, it may be impossible to write out some characters as part * of a CDATA section. ! *

      The CDATASection interface inherits from the ! * CharacterData interface through the Text ! * interface. Adjacent CDATASection nodes are not merged by use * of the normalize method of the Node interface. ! *

      No lexical check is done on the content of a CDATA section and it is ! * therefore possible to have the character sequence "]]>" ! * in the content, which is illegal in a CDATA section per section 2.7 of [XML 1.0]. The ! * presence of this character sequence must generate a fatal error during ! * serialization or the cdata section must be splitted before the ! * serialization (see also the parameter "split-cdata-sections" ! * in the DOMConfiguration interface). ! *

      Note: Because no markup is recognized within a ! * CDATASection, character numeric references cannot be used as ! * an escape mechanism when serializing. Therefore, action needs to be taken ! * when serializing a CDATASection with a character encoding ! * where some of the contained characters cannot be represented. Failure to * do so would not produce well-formed XML. ! *

      Note: One potential solution in the serialization process is to ! * end the CDATA section before the character, output the character using a ! * character reference or entity reference, and open a new CDATA section for ! * any further characters in the text node. Note, however, that some code ! * conversion libraries at the time of writing do not return an error or ! * exception when a character is missing from the encoding, making the task * of ensuring that data is not corrupted on serialization more difficult. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ --- 13,52 ---- package org.w3c.dom; /** ! * CDATA sections are used to escape blocks of text containing characters that ! * would otherwise be regarded as markup. The only delimiter that is ! * recognized in a CDATA section is the "]]>" string that ends the CDATA ! * section. CDATA sections cannot be nested. Their primary purpose is for ! * including material such as XML fragments, without needing to escape all * the delimiters. ! *

      The CharacterData.data attribute holds the text that is ! * contained by the CDATA section. Note that this may contain characters that need to be escaped outside of CDATA sections and ! * that, depending on the character encoding ("charset") chosen for ! * serialization, it may be impossible to write out some characters as part * of a CDATA section. ! *

      The CDATASection interface inherits from the ! * CharacterData interface through the Text ! * interface. Adjacent CDATASection nodes are not merged by use * of the normalize method of the Node interface. ! *

      No lexical check is done on the content of a CDATA section and it is ! * therefore possible to have the character sequence "]]>" ! * in the content, which is illegal in a CDATA section per section 2.7 of [XML 1.0]. The ! * presence of this character sequence must generate a fatal error during ! * serialization or the cdata section must be splitted before the ! * serialization (see also the parameter "split-cdata-sections" ! * in the DOMConfiguration interface). ! *

      Note: Because no markup is recognized within a ! * CDATASection, character numeric references cannot be used as ! * an escape mechanism when serializing. Therefore, action needs to be taken ! * when serializing a CDATASection with a character encoding ! * where some of the contained characters cannot be represented. Failure to * do so would not produce well-formed XML. ! *

      Note: One potential solution in the serialization process is to ! * end the CDATA section before the character, output the character using a ! * character reference or entity reference, and open a new CDATA section for ! * any further characters in the text node. Note, however, that some code ! * conversion libraries at the time of writing do not return an error or ! * exception when a character is missing from the encoding, making the task * of ensuring that data is not corrupted on serialization more difficult. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java Tue Jan 11 19:46:05 2011 *************** *** 13,54 **** package org.w3c.dom; /** ! * The CharacterData interface extends Node with a set of ! * attributes and methods for accessing character data in the DOM. For ! * clarity this set is defined here rather than on each object that uses ! * these attributes and methods. No DOM objects correspond directly to ! * CharacterData, though Text and others do ! * inherit the interface from it. All offsets in this interface * start from 0. ! *

      As explained in the DOMString interface, text strings in ! * the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In ! * the following, the term 16-bit units is used whenever necessary to * indicate that indexing on CharacterData is done in 16-bit units. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface CharacterData extends Node { /** ! * The character data of the node that implements this interface. The DOM ! * implementation may not put arbitrary limits on the amount of data ! * that may be stored in a CharacterData node. However, ! * implementation limits may mean that the entirety of a node's data may ! * not fit into a single DOMString. In such cases, the user ! * may call substringData to retrieve the data in * appropriately sized pieces. * @exception DOMException ! * DOMSTRING_SIZE_ERR: Raised when it would return more characters than ! * fit in a DOMString variable on the implementation * platform. */ public String getData() throws DOMException; /** ! * The character data of the node that implements this interface. The DOM ! * implementation may not put arbitrary limits on the amount of data ! * that may be stored in a CharacterData node. However, ! * implementation limits may mean that the entirety of a node's data may ! * not fit into a single DOMString. In such cases, the user ! * may call substringData to retrieve the data in * appropriately sized pieces. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. --- 13,54 ---- package org.w3c.dom; /** ! * The CharacterData interface extends Node with a set of ! * attributes and methods for accessing character data in the DOM. For ! * clarity this set is defined here rather than on each object that uses ! * these attributes and methods. No DOM objects correspond directly to ! * CharacterData, though Text and others do ! * inherit the interface from it. All offsets in this interface * start from 0. ! *

      As explained in the DOMString interface, text strings in ! * the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In ! * the following, the term 16-bit units is used whenever necessary to * indicate that indexing on CharacterData is done in 16-bit units. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface CharacterData extends Node { /** ! * The character data of the node that implements this interface. The DOM ! * implementation may not put arbitrary limits on the amount of data ! * that may be stored in a CharacterData node. However, ! * implementation limits may mean that the entirety of a node's data may ! * not fit into a single DOMString. In such cases, the user ! * may call substringData to retrieve the data in * appropriately sized pieces. * @exception DOMException ! * DOMSTRING_SIZE_ERR: Raised when it would return more characters than ! * fit in a DOMString variable on the implementation * platform. */ public String getData() throws DOMException; /** ! * The character data of the node that implements this interface. The DOM ! * implementation may not put arbitrary limits on the amount of data ! * that may be stored in a CharacterData node. However, ! * implementation limits may mean that the entirety of a node's data may ! * not fit into a single DOMString. In such cases, the user ! * may call substringData to retrieve the data in * appropriately sized pieces. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. *************** public interface CharacterData extends N *** 57,64 **** throws DOMException; /** ! * The number of 16-bit units that are available through data ! * and the substringData method below. This may have the * value zero, i.e., CharacterData nodes may be empty. */ public int getLength(); --- 57,64 ---- throws DOMException; /** ! * The number of 16-bit units that are available through data ! * and the substringData method below. This may have the * value zero, i.e., CharacterData nodes may be empty. */ public int getLength(); *************** public interface CharacterData extends N *** 67,90 **** * Extracts a range of data from the node. * @param offset Start offset of substring to extract. * @param count The number of 16-bit units to extract. ! * @return The specified substring. If the sum of offset and ! * count exceeds the length, then all 16-bit * units to the end of the data are returned. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is ! * negative or greater than the number of 16-bit units in ! * data, or if the specified count is * negative. ! *
      DOMSTRING_SIZE_ERR: Raised if the specified range of text does * not fit into a DOMString. */ ! public String substringData(int offset, int count) throws DOMException; /** ! * Append the string to the end of the character data of the node. Upon ! * success, data provides access to the concatenation of * data and the DOMString specified. * @param arg The DOMString to append. * @exception DOMException --- 67,90 ---- * Extracts a range of data from the node. * @param offset Start offset of substring to extract. * @param count The number of 16-bit units to extract. ! * @return The specified substring. If the sum of offset and ! * count exceeds the length, then all 16-bit * units to the end of the data are returned. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is ! * negative or greater than the number of 16-bit units in ! * data, or if the specified count is * negative. ! *
      DOMSTRING_SIZE_ERR: Raised if the specified range of text does * not fit into a DOMString. */ ! public String substringData(int offset, int count) throws DOMException; /** ! * Append the string to the end of the character data of the node. Upon ! * success, data provides access to the concatenation of * data and the DOMString specified. * @param arg The DOMString to append. * @exception DOMException *************** public interface CharacterData extends N *** 98,152 **** * @param offset The character offset at which to insert. * @param arg The DOMString to insert. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is ! * negative or greater than the number of 16-bit units in * data. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ ! public void insertData(int offset, String arg) throws DOMException; /** ! * Remove a range of 16-bit units from the node. Upon success, * data and length reflect the change. * @param offset The offset from which to start removing. ! * @param count The number of 16-bit units to delete. If the sum of ! * offset and count exceeds ! * length then all 16-bit units from offset * to the end of the data are deleted. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is ! * negative or greater than the number of 16-bit units in ! * data, or if the specified count is * negative. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ ! public void deleteData(int offset, int count) throws DOMException; /** ! * Replace the characters starting at the specified 16-bit unit offset * with the specified string. * @param offset The offset from which to start replacing. ! * @param count The number of 16-bit units to replace. If the sum of ! * offset and count exceeds ! * length, then all 16-bit units to the end of the data * are replaced; (i.e., the effect is the same as a remove * method call with the same range, followed by an append * method invocation). ! * @param arg The DOMString with which the range must be * replaced. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is ! * negative or greater than the number of 16-bit units in ! * data, or if the specified count is * negative. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ ! public void replaceData(int offset, ! int count, String arg) throws DOMException; --- 98,152 ---- * @param offset The character offset at which to insert. * @param arg The DOMString to insert. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is ! * negative or greater than the number of 16-bit units in * data. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ ! public void insertData(int offset, String arg) throws DOMException; /** ! * Remove a range of 16-bit units from the node. Upon success, * data and length reflect the change. * @param offset The offset from which to start removing. ! * @param count The number of 16-bit units to delete. If the sum of ! * offset and count exceeds ! * length then all 16-bit units from offset * to the end of the data are deleted. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is ! * negative or greater than the number of 16-bit units in ! * data, or if the specified count is * negative. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ ! public void deleteData(int offset, int count) throws DOMException; /** ! * Replace the characters starting at the specified 16-bit unit offset * with the specified string. * @param offset The offset from which to start replacing. ! * @param count The number of 16-bit units to replace. If the sum of ! * offset and count exceeds ! * length, then all 16-bit units to the end of the data * are replaced; (i.e., the effect is the same as a remove * method call with the same range, followed by an append * method invocation). ! * @param arg The DOMString with which the range must be * replaced. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is ! * negative or greater than the number of 16-bit units in ! * data, or if the specified count is * negative. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ ! public void replaceData(int offset, ! int count, String arg) throws DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java Tue Jan 11 19:46:05 2011 *************** *** 13,29 **** package org.w3c.dom; /** ! * This interface inherits from CharacterData and represents the * content of a comment, i.e., all the characters between the starting ' ! * <!--' and ending '-->'. Note that this is ! * the definition of a comment in XML, and, in practice, HTML, although some ! * HTML tools may implement the full SGML comment structure. ! *

      No lexical check is done on the content of a comment and it is ! * therefore possible to have the character sequence "--" ! * (double-hyphen) in the content, which is illegal in a comment per section ! * 2.5 of [XML 1.0]. The ! * presence of this character sequence must generate a fatal error during ! * serialization. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Comment extends CharacterData { --- 13,29 ---- package org.w3c.dom; /** ! * This interface inherits from CharacterData and represents the * content of a comment, i.e., all the characters between the starting ' ! * <!--' and ending '-->'. Note that this is ! * the definition of a comment in XML, and, in practice, HTML, although some ! * HTML tools may implement the full SGML comment structure. ! *

      No lexical check is done on the content of a comment and it is ! * therefore possible to have the character sequence "--" ! * (double-hyphen) in the content, which is illegal in a comment per section ! * 2.5 of [XML 1.0]. The ! * presence of this character sequence must generate a fatal error during ! * serialization. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Comment extends CharacterData { diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java Tue Jan 11 19:46:05 2011 *************** *** 13,59 **** package org.w3c.dom; /** ! * The DOMConfiguration interface represents the configuration ! * of a document and maintains a table of recognized parameters. Using the ! * configuration, it is possible to change ! * Document.normalizeDocument() behavior, such as replacing the ! * CDATASection nodes with Text nodes or ! * specifying the type of the schema that must be used when the validation ! * of the Document is requested. DOMConfiguration * objects are also used in [DOM Level 3 Load and Save] ! * in the DOMParser and DOMSerializer interfaces. ! *

      The parameter names used by the DOMConfiguration object ! * are defined throughout the DOM Level 3 specifications. Names are ! * case-insensitive. To avoid possible conflicts, as a convention, names ! * referring to parameters defined outside the DOM specification should be ! * made unique. Because parameters are exposed as properties in the , names ! * are recommended to follow the section 5.16 Identifiers of [Unicode] with the addition of the character '-' (HYPHEN-MINUS) but it is not ! * enforced by the DOM implementation. DOM Level 3 Core Implementations are ! * required to recognize all parameters defined in this specification. Some ! * parameter values may also be required to be supported by the ! * implementation. Refer to the definition of the parameter to know if a ! * value must be supported or not. ! *

      Note: Parameters are similar to features and properties used in ! * SAX2 [SAX]. ! *

      The following list of parameters defined in the DOM: *

      *
      * "canonical-form"
      *
      *
      *
      true
      ! *
      [optional] Canonicalize the document according to the rules specified in [Canonical XML], ! * such as removing the DocumentType node (if any) from the ! * tree, or removing superfluous namespace declarations from each element. ! * Note that this is limited to what can be represented in the DOM; in ! * particular, there is no way to specify the order of the attributes in the ! * DOM. In addition, Setting this parameter to true will also ! * set the state of the parameters listed below. Later changes to the state ! * of one of those parameters will revert "canonical-form" back to * false. Parameters set to false: "entities", " ! * normalize-characters", "cdata-sections". Parameters set to ! * true: "namespaces", "namespace-declarations", "well-formed", ! * "element-content-whitespace". Other parameters are not changed unless * explicitly specified in the description of the parameters.
      *
      * false
      --- 13,59 ---- package org.w3c.dom; /** ! * The DOMConfiguration interface represents the configuration ! * of a document and maintains a table of recognized parameters. Using the ! * configuration, it is possible to change ! * Document.normalizeDocument() behavior, such as replacing the ! * CDATASection nodes with Text nodes or ! * specifying the type of the schema that must be used when the validation ! * of the Document is requested. DOMConfiguration * objects are also used in [DOM Level 3 Load and Save] ! * in the DOMParser and DOMSerializer interfaces. ! *

      The parameter names used by the DOMConfiguration object ! * are defined throughout the DOM Level 3 specifications. Names are ! * case-insensitive. To avoid possible conflicts, as a convention, names ! * referring to parameters defined outside the DOM specification should be ! * made unique. Because parameters are exposed as properties in the , names ! * are recommended to follow the section 5.16 Identifiers of [Unicode] with the addition of the character '-' (HYPHEN-MINUS) but it is not ! * enforced by the DOM implementation. DOM Level 3 Core Implementations are ! * required to recognize all parameters defined in this specification. Some ! * parameter values may also be required to be supported by the ! * implementation. Refer to the definition of the parameter to know if a ! * value must be supported or not. ! *

      Note: Parameters are similar to features and properties used in ! * SAX2 [SAX]. ! *

      The following list of parameters defined in the DOM: *

      *
      * "canonical-form"
      *
      *
      *
      true
      ! *
      [optional] Canonicalize the document according to the rules specified in [Canonical XML], ! * such as removing the DocumentType node (if any) from the ! * tree, or removing superfluous namespace declarations from each element. ! * Note that this is limited to what can be represented in the DOM; in ! * particular, there is no way to specify the order of the attributes in the ! * DOM. In addition, Setting this parameter to true will also ! * set the state of the parameters listed below. Later changes to the state ! * of one of those parameters will revert "canonical-form" back to * false. Parameters set to false: "entities", " ! * normalize-characters", "cdata-sections". Parameters set to ! * true: "namespaces", "namespace-declarations", "well-formed", ! * "element-content-whitespace". Other parameters are not changed unless * explicitly specified in the description of the parameters.
      *
      * false
      *************** package org.w3c.dom; *** 66,73 **** * true *
      [required] (default)Keep CDATASection nodes in the document.
      *
      false
      ! *
      [required]Transform CDATASection nodes in the document into ! * Text nodes. The new Text node is then combined * with any adjacent Text node.
      *
      *
      --- 66,73 ---- * true
      *
      [required] (default)Keep CDATASection nodes in the document.
      *
      false
      ! *
      [required]Transform CDATASection nodes in the document into ! * Text nodes. The new Text node is then combined * with any adjacent Text node.
      *
      *
      *************** package org.w3c.dom; *** 75,84 **** *
      *
      *
      true
      ! *
      [optional] Check if the characters in the document are fully ! * normalized, as defined in appendix B of [XML 1.1]. When a ! * sequence of characters is encountered that fails normalization checking, ! * an error with the DOMError.type equals to * "check-character-normalization-failure" is issued.
      *
      false
      *
      [required] (default)Do not check if characters are normalized.
      --- 75,84 ---- *
      *
      *
      true
      ! *
      [optional] Check if the characters in the document are fully ! * normalized, as defined in appendix B of [XML 1.1]. When a ! * sequence of characters is encountered that fails normalization checking, ! * an error with the DOMError.type equals to * "check-character-normalization-failure" is issued.
      *
      false
      *
      [required] (default)Do not check if characters are normalized.
      *************** package org.w3c.dom; *** 97,110 **** *
      *
      *
      true
      ! *
      [optional] Expose schema normalized values in the tree, such as XML ! * Schema normalized values in the case of XML Schema. Since this parameter requires to have schema ! * information, the "validate" parameter will also be set to ! * true. Having this parameter activated when "validate" is ! * false has no effect and no schema-normalization will happen. ! *

      Note: Since the document contains the result of the XML 1.0 ! * processing, this parameter does not apply to attribute value ! * normalization as defined in section 3.3.3 of [XML 1.0] and is only * meant for schema languages other than Document Type Definition (DTD).

      *
      * false
      --- 97,110 ---- *
      *
      *
      true
      ! *
      [optional] Expose schema normalized values in the tree, such as XML ! * Schema normalized values in the case of XML Schema. Since this parameter requires to have schema ! * information, the "validate" parameter will also be set to ! * true. Having this parameter activated when "validate" is ! * false has no effect and no schema-normalization will happen. ! *

      Note: Since the document contains the result of the XML 1.0 ! * processing, this parameter does not apply to attribute value ! * normalization as defined in section 3.3.3 of [XML 1.0] and is only * meant for schema languages other than Document Type Definition (DTD).

      *
      * false
      *************** package org.w3c.dom; *** 117,126 **** *
      true
      *
      [required] (default)Keep all whitespaces in the document.
      *
      false
      ! *
      [optional] Discard all Text nodes that contain whitespaces in element * content, as described in ! * [element content whitespace]. The implementation is expected to use the attribute ! * Text.isElementContentWhitespace to determine if a * Text node should be discarded or not.
      *
      *
      "entities"
      --- 117,126 ---- *
      true
      *
      [required] (default)Keep all whitespaces in the document.
      *
      false
      ! *
      [optional] Discard all Text nodes that contain whitespaces in element * content, as described in ! * [element content whitespace]. The implementation is expected to use the attribute ! * Text.isElementContentWhitespace to determine if a * Text node should be discarded or not.
      *
      *
      "entities"
      *************** package org.w3c.dom; *** 131,153 **** *
      [required] (default)Keep EntityReference nodes in the document.
      *
      * false
      ! *
      [required] Remove all EntityReference nodes from the document, ! * putting the entity expansions directly in their place. Text * nodes are normalized, as defined in Node.normalize. Only * unexpanded entity references are kept in the document.
      *
      *

      Note: This parameter does not affect Entity nodes.

      *
      * "error-handler"
      ! *
      [required] Contains a DOMErrorHandler object. If an error is ! * encountered in the document, the implementation will call back the ! * DOMErrorHandler registered using this parameter. The ! * implementation may provide a default DOMErrorHandler object. ! * When called, DOMError.relatedData will contain the closest ! * node to where the error occurred. If the implementation is unable to ! * determine the node where the error occurs, ! * DOMError.relatedData will contain the Document ! * node. Mutations to the document from within an error handler will result * in implementation dependent behavior.
      *
      "infoset"
      *
      --- 131,153 ---- *
      [required] (default)Keep EntityReference nodes in the document.
      *
      * false
      ! *
      [required] Remove all EntityReference nodes from the document, ! * putting the entity expansions directly in their place. Text * nodes are normalized, as defined in Node.normalize. Only * unexpanded entity references are kept in the document.
      *
      *

      Note: This parameter does not affect Entity nodes.

      *
      * "error-handler"
      ! *
      [required] Contains a DOMErrorHandler object. If an error is ! * encountered in the document, the implementation will call back the ! * DOMErrorHandler registered using this parameter. The ! * implementation may provide a default DOMErrorHandler object. ! * When called, DOMError.relatedData will contain the closest ! * node to where the error occurred. If the implementation is unable to ! * determine the node where the error occurs, ! * DOMError.relatedData will contain the Document ! * node. Mutations to the document from within an error handler will result * in implementation dependent behavior.
      *
      "infoset"
      *
      *************** package org.w3c.dom; *** 159,171 **** * validate-if-schema", "entities", "datatype-normalization", "cdata-sections * ".This forces the following parameters to true: " * namespace-declarations", "well-formed", "element-content-whitespace", " ! * comments", "namespaces".Other parameters are not changed unless ! * explicitly specified in the description of the parameters. Note that ! * querying this parameter with getParameter returns ! * true only if the individual parameters specified above are * appropriately set.
      *
      false
      ! *
      Setting infoset to * false has no effect.
      *
      *
      "namespaces"
      --- 159,171 ---- * validate-if-schema", "entities", "datatype-normalization", "cdata-sections * ".This forces the following parameters to true: " * namespace-declarations", "well-formed", "element-content-whitespace", " ! * comments", "namespaces".Other parameters are not changed unless ! * explicitly specified in the description of the parameters. Note that ! * querying this parameter with getParameter returns ! * true only if the individual parameters specified above are * appropriately set. *
      false
      ! *
      Setting infoset to * false has no effect.
      * *
      "namespaces"
      *************** package org.w3c.dom; *** 179,297 **** * *
      * "namespace-declarations"
      ! *
      This parameter has no effect if the ! * parameter "namespaces" is set to false. *
      *
      true
      ! *
      [required] (default) Include namespace declaration attributes, specified or defaulted from ! * the schema, in the document. See also the sections "Declaring Namespaces" * in [XML Namespaces] * and [XML Namespaces 1.1] * .
      *
      false
      *
      [required]Discard all namespace declaration attributes. The namespace prefixes ( ! * Node.prefix) are retained even if this parameter is set to * false.
      *
      *
      "normalize-characters"
      *
      *
      *
      true
      ! *
      [optional] Fully * normalized the characters in the document as defined in appendix B of [XML 1.1].
      *
      * false
      *
      [required] (default)Do not perform character normalization.
      *
      *
      "schema-location"
      ! *
      [optional] Represent a DOMString object containing a list of URIs, ! * separated by whitespaces (characters matching the nonterminal ! * production S defined in section 2.3 [XML 1.0]), that ! * represents the schemas against which validation should occur, i.e. the ! * current schema. The types of schemas referenced in this list must match ! * the type specified with schema-type, otherwise the behavior ! * of an implementation is undefined. The schemas specified using this ! * property take precedence to the schema information specified in the ! * document itself. For namespace aware schema, if a schema specified using ! * this property and a schema specified in the document instance (i.e. using ! * the schemaLocation attribute) in a schema document (i.e. ! * using schema import mechanisms) share the same ! * targetNamespace, the schema specified by the user using this ! * property will be used. If two schemas specified using this property share ! * the same targetNamespace or have no namespace, the behavior ! * is implementation dependent. If no location has been provided, this ! * parameter is null. ! *

      Note: The "schema-location" parameter is ignored ! * unless the "schema-type" parameter value is set. It is strongly ! * recommended that Document.documentURI will be set so that an * implementation can successfully resolve any external entities referenced.

      *
      * "schema-type"
      ! *
      [optional] Represent a DOMString object containing an absolute URI ! * and representing the type of the schema language used to validate a ! * document against. Note that no lexical checking is done on the absolute ! * URI. If this parameter is not set, a default value may be provided by ! * the implementation, based on the schema languages supported and on the ! * schema language used at load time. If no value is provided, this ! * parameter is null. *

      Note: For XML Schema [XML Schema Part 1] ! * , applications must use the value ! * "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0], ! * applications must use the value ! * "http://www.w3.org/TR/REC-xml". Other schema languages are ! * outside the scope of the W3C and therefore should recommend an absolute * URI in order to use this method.

      *
      "split-cdata-sections"
      *
      *
      *
      * true
      ! *
      [required] (default)Split CDATA sections containing the CDATA section termination marker ! * ']]>'. When a CDATA section is split a warning is issued with a ! * DOMError.type equals to ! * "cdata-sections-splitted" and ! * DOMError.relatedData equals to the first * CDATASection node in document order resulting from the split.
      *
      * false
      ! *
      [required]Signal an error if a CDATASection contains an * unrepresentable character.
      *
      *
      "validate"
      *
      *
      *
      true
      ! *
      [optional] Require the validation against a schema (i.e. XML schema, DTD, any ! * other type or representation of schema) of the document as it is being ! * normalized as defined by [XML 1.0]. If ! * validation errors are found, or no schema was found, the error handler is ! * notified. Schema-normalized values will not be exposed according to the ! * schema in used unless the parameter "datatype-normalization" is ! * true. This parameter will reevaluate: *
        ! *
      • Attribute nodes with ! * Attr.specified equals to false, as specified in ! * the description of the Attr interface; *
      • ! *
      • The value of the ! * attribute Text.isElementContentWhitespace for all ! * Text nodes; *
      • ! *
      • The value of the attribute ! * Attr.isId for all Attr nodes; *
      • ! *
      • The attributes ! * Element.schemaTypeInfo and Attr.schemaTypeInfo. *
      • *
      ! *

      Note: "validate-if-schema" and "validate" are mutually ! * exclusive, setting one of them to true will set the other ! * one to false. Applications should also consider setting the ! * parameter "well-formed" to true, which is the default for * that option, when validating the document.

      *
      false
      ! *
      [required] (default) Do not accomplish schema processing, including the internal subset ! * processing. Default attribute values information are kept. Note that * validation might still happen if "validate-if-schema" is true * .
      *
      --- 179,297 ---- * *
      * "namespace-declarations"
      ! *
      This parameter has no effect if the ! * parameter "namespaces" is set to false. *
      *
      true
      ! *
      [required] (default) Include namespace declaration attributes, specified or defaulted from ! * the schema, in the document. See also the sections "Declaring Namespaces" * in [XML Namespaces] * and [XML Namespaces 1.1] * .
      *
      false
      *
      [required]Discard all namespace declaration attributes. The namespace prefixes ( ! * Node.prefix) are retained even if this parameter is set to * false.
      *
      *
      "normalize-characters"
      *
      *
      *
      true
      ! *
      [optional] Fully * normalized the characters in the document as defined in appendix B of [XML 1.1].
      *
      * false
      *
      [required] (default)Do not perform character normalization.
      *
      *
      "schema-location"
      ! *
      [optional] Represent a DOMString object containing a list of URIs, ! * separated by whitespaces (characters matching the nonterminal ! * production S defined in section 2.3 [XML 1.0]), that ! * represents the schemas against which validation should occur, i.e. the ! * current schema. The types of schemas referenced in this list must match ! * the type specified with schema-type, otherwise the behavior ! * of an implementation is undefined. The schemas specified using this ! * property take precedence to the schema information specified in the ! * document itself. For namespace aware schema, if a schema specified using ! * this property and a schema specified in the document instance (i.e. using ! * the schemaLocation attribute) in a schema document (i.e. ! * using schema import mechanisms) share the same ! * targetNamespace, the schema specified by the user using this ! * property will be used. If two schemas specified using this property share ! * the same targetNamespace or have no namespace, the behavior ! * is implementation dependent. If no location has been provided, this ! * parameter is null. ! *

      Note: The "schema-location" parameter is ignored ! * unless the "schema-type" parameter value is set. It is strongly ! * recommended that Document.documentURI will be set so that an * implementation can successfully resolve any external entities referenced.

      *
      * "schema-type"
      ! *
      [optional] Represent a DOMString object containing an absolute URI ! * and representing the type of the schema language used to validate a ! * document against. Note that no lexical checking is done on the absolute ! * URI. If this parameter is not set, a default value may be provided by ! * the implementation, based on the schema languages supported and on the ! * schema language used at load time. If no value is provided, this ! * parameter is null. *

      Note: For XML Schema [XML Schema Part 1] ! * , applications must use the value ! * "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0], ! * applications must use the value ! * "http://www.w3.org/TR/REC-xml". Other schema languages are ! * outside the scope of the W3C and therefore should recommend an absolute * URI in order to use this method.

      *
      "split-cdata-sections"
      *
      *
      *
      * true
      ! *
      [required] (default)Split CDATA sections containing the CDATA section termination marker ! * ']]>'. When a CDATA section is split a warning is issued with a ! * DOMError.type equals to ! * "cdata-sections-splitted" and ! * DOMError.relatedData equals to the first * CDATASection node in document order resulting from the split.
      *
      * false
      ! *
      [required]Signal an error if a CDATASection contains an * unrepresentable character.
      *
      *
      "validate"
      *
      *
      *
      true
      ! *
      [optional] Require the validation against a schema (i.e. XML schema, DTD, any ! * other type or representation of schema) of the document as it is being ! * normalized as defined by [XML 1.0]. If ! * validation errors are found, or no schema was found, the error handler is ! * notified. Schema-normalized values will not be exposed according to the ! * schema in used unless the parameter "datatype-normalization" is ! * true. This parameter will reevaluate: *
        ! *
      • Attribute nodes with ! * Attr.specified equals to false, as specified in ! * the description of the Attr interface; *
      • ! *
      • The value of the ! * attribute Text.isElementContentWhitespace for all ! * Text nodes; *
      • ! *
      • The value of the attribute ! * Attr.isId for all Attr nodes; *
      • ! *
      • The attributes ! * Element.schemaTypeInfo and Attr.schemaTypeInfo. *
      • *
      ! *

      Note: "validate-if-schema" and "validate" are mutually ! * exclusive, setting one of them to true will set the other ! * one to false. Applications should also consider setting the ! * parameter "well-formed" to true, which is the default for * that option, when validating the document.

      *
      false
      ! *
      [required] (default) Do not accomplish schema processing, including the internal subset ! * processing. Default attribute values information are kept. Note that * validation might still happen if "validate-if-schema" is true * .
      *
      *************** package org.w3c.dom; *** 299,315 **** *
      *
      *
      true
      ! *
      [optional]Enable validation only if a declaration for the document element can be ! * found in a schema (independently of where it is found, i.e. XML schema, ! * DTD, or any other type or representation of schema). If validation is ! * enabled, this parameter has the same behavior as the parameter "validate" ! * set to true. ! *

      Note: "validate-if-schema" and "validate" are mutually ! * exclusive, setting one of them to true will set the other * one to false.

      *
      false
      ! *
      [required] (default) No schema processing should be performed if the document has a schema, ! * including internal subset processing. Default attribute values * information are kept. Note that validation must still happen if "validate * " is true.
      *
      --- 299,315 ---- *
      *
      *
      true
      ! *
      [optional]Enable validation only if a declaration for the document element can be ! * found in a schema (independently of where it is found, i.e. XML schema, ! * DTD, or any other type or representation of schema). If validation is ! * enabled, this parameter has the same behavior as the parameter "validate" ! * set to true. ! *

      Note: "validate-if-schema" and "validate" are mutually ! * exclusive, setting one of them to true will set the other * one to false.

      *
      false
      ! *
      [required] (default) No schema processing should be performed if the document has a schema, ! * including internal subset processing. Default attribute values * information are kept. Note that validation must still happen if "validate * " is true.
      *
      *************** package org.w3c.dom; *** 317,343 **** *
      *
      *
      true
      ! *
      [required] (default) Check if all nodes are XML well formed according to the XML version in ! * use in Document.xmlVersion: *
        ! *
      • check if the attribute ! * Node.nodeName contains invalid characters according to its ! * node type and generate a DOMError of type ! * "wf-invalid-character-in-node-name", with a ! * DOMError.SEVERITY_ERROR severity, if necessary; *
      • ! *
      • check if ! * the text content inside Attr, Element, ! * Comment, Text, CDATASection nodes ! * for invalid characters and generate a DOMError of type ! * "wf-invalid-character", with a ! * DOMError.SEVERITY_ERROR severity, if necessary; *
      • ! *
      • check if ! * the data inside ProcessingInstruction nodes for invalid ! * characters and generate a DOMError of type ! * "wf-invalid-character", with a ! * DOMError.SEVERITY_ERROR severity, if necessary; *
      • *
      *
      --- 317,343 ---- *
      *
      *
      true
      ! *
      [required] (default) Check if all nodes are XML well formed according to the XML version in ! * use in Document.xmlVersion: *
        ! *
      • check if the attribute ! * Node.nodeName contains invalid characters according to its ! * node type and generate a DOMError of type ! * "wf-invalid-character-in-node-name", with a ! * DOMError.SEVERITY_ERROR severity, if necessary; *
      • ! *
      • check if ! * the text content inside Attr, Element, ! * Comment, Text, CDATASection nodes ! * for invalid characters and generate a DOMError of type ! * "wf-invalid-character", with a ! * DOMError.SEVERITY_ERROR severity, if necessary; *
      • ! *
      • check if ! * the data inside ProcessingInstruction nodes for invalid ! * characters and generate a DOMError of type ! * "wf-invalid-character", with a ! * DOMError.SEVERITY_ERROR severity, if necessary; *
      • *
      *
      *************** package org.w3c.dom; *** 345,358 **** *
      [optional] Do not check for XML well-formedness.
      *
      *
      ! *

      The resolution of the system identifiers associated with entities is ! * done using Document.documentURI. However, when the feature * "LS" defined in [DOM Level 3 Load and Save] ! * is supported by the DOM implementation, the parameter ! * "resource-resolver" can also be used on DOMConfiguration ! * objects attached to Document nodes. If this parameter is ! * set, Document.normalizeDocument() will invoke the resource ! * resolver instead of using Document.documentURI. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ --- 345,358 ---- *

      [optional] Do not check for XML well-formedness.
      * * ! *

      The resolution of the system identifiers associated with entities is ! * done using Document.documentURI. However, when the feature * "LS" defined in [DOM Level 3 Load and Save] ! * is supported by the DOM implementation, the parameter ! * "resource-resolver" can also be used on DOMConfiguration ! * objects attached to Document nodes. If this parameter is ! * set, Document.normalizeDocument() will invoke the resource ! * resolver instead of using Document.documentURI. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ *************** public interface DOMConfiguration { *** 360,390 **** /** * Set the value of a parameter. * @param name The name of the parameter to set. ! * @param value The new value or null if the user wishes to ! * unset the parameter. While the type of the value parameter is ! * defined as DOMUserData, the object type must match the ! * type defined by the definition of the parameter. For example, if ! * the parameter is "error-handler", the value must be of type ! * DOMErrorHandler. * @exception DOMException ! * NOT_FOUND_ERR: Raised when the parameter name is not recognized. ! *
      NOT_SUPPORTED_ERR: Raised when the parameter name is recognized ! * but the requested value cannot be set. ! *
      TYPE_MISMATCH_ERR: Raised if the value type for this parameter ! * name is incompatible with the expected value type. */ ! public void setParameter(String name, Object value) throws DOMException; /** ! * Return the value of a parameter if known. ! * @param name The name of the parameter. ! * @return The current object associated with the specified parameter or ! * null if no object has been associated or if the ! * parameter is not supported. * @exception DOMException ! * NOT_FOUND_ERR: Raised when the parameter name is not recognized. */ public Object getParameter(String name) throws DOMException; --- 360,390 ---- /** * Set the value of a parameter. * @param name The name of the parameter to set. ! * @param value The new value or null if the user wishes to ! * unset the parameter. While the type of the value parameter is ! * defined as DOMUserData, the object type must match the ! * type defined by the definition of the parameter. For example, if ! * the parameter is "error-handler", the value must be of type ! * DOMErrorHandler. * @exception DOMException ! * NOT_FOUND_ERR: Raised when the parameter name is not recognized. ! *
      NOT_SUPPORTED_ERR: Raised when the parameter name is recognized ! * but the requested value cannot be set. ! *
      TYPE_MISMATCH_ERR: Raised if the value type for this parameter ! * name is incompatible with the expected value type. */ ! public void setParameter(String name, Object value) throws DOMException; /** ! * Return the value of a parameter if known. ! * @param name The name of the parameter. ! * @return The current object associated with the specified parameter or ! * null if no object has been associated or if the ! * parameter is not supported. * @exception DOMException ! * NOT_FOUND_ERR: Raised when the parameter name is not recognized. */ public Object getParameter(String name) throws DOMException; *************** public interface DOMConfiguration { *** 392,412 **** /** * Check if setting a parameter to a specific value is supported. * @param name The name of the parameter to check. ! * @param value An object. if null, the returned value is ! * true. ! * @return true if the parameter could be successfully set ! * to the specified value, or false if the parameter is ! * not recognized or the requested value is not supported. This does ! * not change the current value of the parameter itself. */ ! public boolean canSetParameter(String name, Object value); /** ! * The list of the parameters supported by this ! * DOMConfiguration object and for which at least one value ! * can be set by the application. Note that this list can also contain ! * parameter names defined outside this specification. */ public DOMStringList getParameterNames(); --- 392,412 ---- /** * Check if setting a parameter to a specific value is supported. * @param name The name of the parameter to check. ! * @param value An object. if null, the returned value is ! * true. ! * @return true if the parameter could be successfully set ! * to the specified value, or false if the parameter is ! * not recognized or the requested value is not supported. This does ! * not change the current value of the parameter itself. */ ! public boolean canSetParameter(String name, Object value); /** ! * The list of the parameters supported by this ! * DOMConfiguration object and for which at least one value ! * can be set by the application. Note that this list can also contain ! * parameter names defined outside this specification. */ public DOMStringList getParameterNames(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom; *** 20,50 **** public interface DOMError { // ErrorSeverity /** ! * The severity of the error described by the DOMError is ! * warning. A SEVERITY_WARNING will not cause the ! * processing to stop, unless DOMErrorHandler.handleError() * returns false. */ public static final short SEVERITY_WARNING = 1; /** ! * The severity of the error described by the DOMError is ! * error. A SEVERITY_ERROR may not cause the processing to ! * stop if the error can be recovered, unless * DOMErrorHandler.handleError() returns false. */ public static final short SEVERITY_ERROR = 2; /** ! * The severity of the error described by the DOMError is ! * fatal error. A SEVERITY_FATAL_ERROR will cause the ! * normal processing to stop. The return value of ! * DOMErrorHandler.handleError() is ignored unless the ! * implementation chooses to continue, in which case the behavior * becomes undefined. */ public static final short SEVERITY_FATAL_ERROR = 3; /** ! * The severity of the error, either SEVERITY_WARNING, * SEVERITY_ERROR, or SEVERITY_FATAL_ERROR. */ public short getSeverity(); --- 20,50 ---- public interface DOMError { // ErrorSeverity /** ! * The severity of the error described by the DOMError is ! * warning. A SEVERITY_WARNING will not cause the ! * processing to stop, unless DOMErrorHandler.handleError() * returns false. */ public static final short SEVERITY_WARNING = 1; /** ! * The severity of the error described by the DOMError is ! * error. A SEVERITY_ERROR may not cause the processing to ! * stop if the error can be recovered, unless * DOMErrorHandler.handleError() returns false. */ public static final short SEVERITY_ERROR = 2; /** ! * The severity of the error described by the DOMError is ! * fatal error. A SEVERITY_FATAL_ERROR will cause the ! * normal processing to stop. The return value of ! * DOMErrorHandler.handleError() is ignored unless the ! * implementation chooses to continue, in which case the behavior * becomes undefined. */ public static final short SEVERITY_FATAL_ERROR = 3; /** ! * The severity of the error, either SEVERITY_WARNING, * SEVERITY_ERROR, or SEVERITY_FATAL_ERROR. */ public short getSeverity(); *************** public interface DOMError { *** 55,71 **** public String getMessage(); /** ! * A DOMString indicating which related data is expected in ! * relatedData. Users should refer to the specification of ! * the error in order to find its DOMString type and ! * relatedData definitions if any. ! *

      Note: As an example, ! * Document.normalizeDocument() does generate warnings when ! * the "split-cdata-sections" parameter is in use. Therefore, the method ! * generates a SEVERITY_WARNING with type ! * "cdata-sections-splitted" and the first ! * CDATASection node in document order resulting from the ! * split is returned by the relatedData attribute. */ public String getType(); --- 55,71 ---- public String getMessage(); /** ! * A DOMString indicating which related data is expected in ! * relatedData. Users should refer to the specification of ! * the error in order to find its DOMString type and ! * relatedData definitions if any. ! *

      Note: As an example, ! * Document.normalizeDocument() does generate warnings when ! * the "split-cdata-sections" parameter is in use. Therefore, the method ! * generates a SEVERITY_WARNING with type ! * "cdata-sections-splitted" and the first ! * CDATASection node in document order resulting from the ! * split is returned by the relatedData attribute. */ public String getType(); *************** public interface DOMError { *** 75,81 **** public Object getRelatedException(); /** ! * The related DOMError.type dependent data if any. */ public Object getRelatedData(); --- 75,81 ---- public Object getRelatedException(); /** ! * The related DOMError.type dependent data if any. */ public Object getRelatedData(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java Tue Jan 11 19:46:05 2011 *************** *** 13,44 **** package org.w3c.dom; /** ! * DOMErrorHandler is a callback interface that the DOM ! * implementation can call when reporting errors that happens while ! * processing XML data, or when doing some other processing (e.g. validating ! * a document). A DOMErrorHandler object can be attached to a ! * Document using the "error-handler" on the ! * DOMConfiguration interface. If more than one error needs to ! * be reported during an operation, the sequence and numbers of the errors ! * passed to the error handler are implementation dependent. ! *

      The application that is using the DOM implementation is expected to ! * implement this interface. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMErrorHandler { /** * This method is called on the error handler when an error occurs. ! *
      If an exception is thrown from this method, it is considered to be ! * equivalent of returning true. ! * @param error The error object that describes the error. This object ! * may be reused by the DOM implementation across multiple calls to ! * the handleError method. ! * @return If the handleError method returns ! * false, the DOM implementation should stop the current ! * processing when possible. If the method returns true, ! * the processing may continue depending on ! * DOMError.severity. */ public boolean handleError(DOMError error); --- 13,44 ---- package org.w3c.dom; /** ! * DOMErrorHandler is a callback interface that the DOM ! * implementation can call when reporting errors that happens while ! * processing XML data, or when doing some other processing (e.g. validating ! * a document). A DOMErrorHandler object can be attached to a ! * Document using the "error-handler" on the ! * DOMConfiguration interface. If more than one error needs to ! * be reported during an operation, the sequence and numbers of the errors ! * passed to the error handler are implementation dependent. ! *

      The application that is using the DOM implementation is expected to ! * implement this interface. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMErrorHandler { /** * This method is called on the error handler when an error occurs. ! *
      If an exception is thrown from this method, it is considered to be ! * equivalent of returning true. ! * @param error The error object that describes the error. This object ! * may be reused by the DOM implementation across multiple calls to ! * the handleError method. ! * @return If the handleError method returns ! * false, the DOM implementation should stop the current ! * processing when possible. If the method returns true, ! * the processing may continue depending on ! * DOMError.severity. */ public boolean handleError(DOMError error); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java Tue Jan 11 19:46:05 2011 *************** *** 13,32 **** package org.w3c.dom; /** ! * DOM operations only raise exceptions in "exceptional" circumstances, i.e., ! * when an operation is impossible to perform (either for logical reasons, ! * because data is lost, or because the implementation has become unstable). ! * In general, DOM methods return specific error values in ordinary ! * processing situations, such as out-of-bound errors when using * NodeList. ! *

      Implementations should raise other exceptions under other circumstances. ! * For example, implementations should raise an implementation-dependent * exception if a null argument is passed when null * was not expected. ! *

      Some languages and object systems do not support the concept of ! * exceptions. For such systems, error conditions may be indicated using ! * native error reporting mechanisms. For some bindings, for example, ! * methods may return error codes similar to those listed in the * corresponding method descriptions. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ --- 13,32 ---- package org.w3c.dom; /** ! * DOM operations only raise exceptions in "exceptional" circumstances, i.e., ! * when an operation is impossible to perform (either for logical reasons, ! * because data is lost, or because the implementation has become unstable). ! * In general, DOM methods return specific error values in ordinary ! * processing situations, such as out-of-bound errors when using * NodeList. ! *

      Implementations should raise other exceptions under other circumstances. ! * For example, implementations should raise an implementation-dependent * exception if a null argument is passed when null * was not expected. ! *

      Some languages and object systems do not support the concept of ! * exceptions. For such systems, error conditions may be indicated using ! * native error reporting mechanisms. For some bindings, for example, ! * methods may return error codes similar to those listed in the * corresponding method descriptions. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ *************** public class DOMException extends Runtim *** 42,48 **** */ public static final short INDEX_SIZE_ERR = 1; /** ! * If the specified range of text does not fit into a * DOMString. */ public static final short DOMSTRING_SIZE_ERR = 2; --- 42,48 ---- */ public static final short INDEX_SIZE_ERR = 1; /** ! * If the specified range of text does not fit into a * DOMString. */ public static final short DOMSTRING_SIZE_ERR = 2; *************** public class DOMException extends Runtim *** 51,57 **** */ public static final short HIERARCHY_REQUEST_ERR = 3; /** ! * If a Node is used in a different document than the one * that created it (that doesn't support it). */ public static final short WRONG_DOCUMENT_ERR = 4; --- 51,57 ---- */ public static final short HIERARCHY_REQUEST_ERR = 3; /** ! * If a Node is used in a different document than the one * that created it (that doesn't support it). */ public static final short WRONG_DOCUMENT_ERR = 4; *************** public class DOMException extends Runtim *** 60,91 **** */ public static final short INVALID_CHARACTER_ERR = 5; /** ! * If data is specified for a Node which does not support * data. */ public static final short NO_DATA_ALLOWED_ERR = 6; /** ! * If an attempt is made to modify an object where modifications are not * allowed. */ public static final short NO_MODIFICATION_ALLOWED_ERR = 7; /** ! * If an attempt is made to reference a Node in a context * where it does not exist. */ public static final short NOT_FOUND_ERR = 8; /** ! * If the implementation does not support the requested type of object or * operation. */ public static final short NOT_SUPPORTED_ERR = 9; /** ! * If an attempt is made to add an attribute that is already in use * elsewhere. */ public static final short INUSE_ATTRIBUTE_ERR = 10; /** ! * If an attempt is made to use an object that is not, or is no longer, * usable. * @since DOM Level 2 */ --- 60,91 ---- */ public static final short INVALID_CHARACTER_ERR = 5; /** ! * If data is specified for a Node which does not support * data. */ public static final short NO_DATA_ALLOWED_ERR = 6; /** ! * If an attempt is made to modify an object where modifications are not * allowed. */ public static final short NO_MODIFICATION_ALLOWED_ERR = 7; /** ! * If an attempt is made to reference a Node in a context * where it does not exist. */ public static final short NOT_FOUND_ERR = 8; /** ! * If the implementation does not support the requested type of object or * operation. */ public static final short NOT_SUPPORTED_ERR = 9; /** ! * If an attempt is made to add an attribute that is already in use * elsewhere. */ public static final short INUSE_ATTRIBUTE_ERR = 10; /** ! * If an attempt is made to use an object that is not, or is no longer, * usable. * @since DOM Level 2 */ *************** public class DOMException extends Runtim *** 101,129 **** */ public static final short INVALID_MODIFICATION_ERR = 13; /** ! * If an attempt is made to create or change an object in a way which is * incorrect with regard to namespaces. * @since DOM Level 2 */ public static final short NAMESPACE_ERR = 14; /** ! * If a parameter or an operation is not supported by the underlying * object. * @since DOM Level 2 */ public static final short INVALID_ACCESS_ERR = 15; /** ! * If a call to a method such as insertBefore or ! * removeChild would make the Node invalid ! * with respect to "partial validity", this exception would be raised * and the operation would not be done. This code is used in [DOM Level 3 Validation] * . Refer to this specification for further information. * @since DOM Level 3 */ public static final short VALIDATION_ERR = 16; /** ! * If the type of an object is incompatible with the expected type of the ! * parameter associated to the object. * @since DOM Level 3 */ public static final short TYPE_MISMATCH_ERR = 17; --- 101,129 ---- */ public static final short INVALID_MODIFICATION_ERR = 13; /** ! * If an attempt is made to create or change an object in a way which is * incorrect with regard to namespaces. * @since DOM Level 2 */ public static final short NAMESPACE_ERR = 14; /** ! * If a parameter or an operation is not supported by the underlying * object. * @since DOM Level 2 */ public static final short INVALID_ACCESS_ERR = 15; /** ! * If a call to a method such as insertBefore or ! * removeChild would make the Node invalid ! * with respect to "partial validity", this exception would be raised * and the operation would not be done. This code is used in [DOM Level 3 Validation] * . Refer to this specification for further information. * @since DOM Level 3 */ public static final short VALIDATION_ERR = 16; /** ! * If the type of an object is incompatible with the expected type of the ! * parameter associated to the object. * @since DOM Level 3 */ public static final short TYPE_MISMATCH_ERR = 17; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java Tue Jan 11 19:46:05 2011 *************** *** 13,136 **** package org.w3c.dom; /** ! * The DOMImplementation interface provides a number of methods ! * for performing operations that are independent of any particular instance * of the document object model. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface DOMImplementation { /** ! * Test if the DOM implementation implements a specific feature and * version, as specified in . ! * @param feature The name of the feature to test. ! * @param version This is the version number of the feature to test. ! * @return true if the feature is implemented in the * specified version, false otherwise. */ ! public boolean hasFeature(String feature, String version); /** ! * Creates an empty DocumentType node. Entity declarations ! * and notations are not made available. Entity reference expansions and * default attribute additions do not occur.. ! * @param qualifiedName The qualified name of the document type to be * created. * @param publicId The external subset public identifier. * @param systemId The external subset system identifier. ! * @return A new DocumentType node with * Node.ownerDocument set to null. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not * an XML name according to [XML 1.0]. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is * malformed. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public DocumentType createDocumentType(String qualifiedName, ! String publicId, String systemId) throws DOMException; /** ! * Creates a DOM Document object of the specified type with its document * element. ! *
      Note that based on the DocumentType given to create ! * the document, the implementation may instantiate specialized ! * Document objects that support additional features than * the "Core", such as "HTML" [DOM Level 2 HTML] ! * . On the other hand, setting the DocumentType after the ! * document was created makes this very unlikely to happen. ! * Alternatively, specialized Document creation methods, * such as createHTMLDocument [DOM Level 2 HTML] ! * , can be used to obtain specific types of Document * objects. ! * @param namespaceURI The namespace URI of the document element to * create or null. ! * @param qualifiedName The qualified name of the document element to be * created or null. * @param doctype The type of document to be created or null. ! * When doctype is not null, its ! * Node.ownerDocument attribute is set to the document * being created. ! * @return A new Document object with its document element. ! * If the NamespaceURI, qualifiedName, and ! * doctype are null, the returned * Document is empty with no document element. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not * an XML name according to [XML 1.0]. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is ! * malformed, if the qualifiedName has a prefix and the ! * namespaceURI is null, or if the ! * qualifiedName is null and the ! * namespaceURI is different from null, or ! * if the qualifiedName has a prefix that is "xml" and * the namespaceURI is different from " * http://www.w3.org/XML/1998/namespace" [XML Namespaces] ! * , or if the DOM implementation does not support the ! * "XML" feature but a non-null namespace URI was * provided, since namespaces were defined by XML. ! *
      WRONG_DOCUMENT_ERR: Raised if doctype has already ! * been used with a different document or was created from a different * implementation. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public Document createDocument(String namespaceURI, ! String qualifiedName, DocumentType doctype) throws DOMException; /** ! * This method returns a specialized object which implements the ! * specialized APIs of the specified feature and version, as specified ! * in . The specialized object may also be obtained by using ! * binding-specific casting methods but is not necessarily expected to, ! * as discussed in . This method also allow the implementation to ! * provide specialized objects which do not support the ! * DOMImplementation interface. ! * @param feature The name of the feature requested. Note that any plus ! * sign "+" prepended to the name of the feature will be ignored since ! * it is not significant in the context of this method. ! * @param version This is the version number of the feature to test. ! * @return Returns an object which implements the specialized APIs of ! * the specified feature and version, if any, or null if ! * there is no object which implements interfaces associated with that ! * feature. If the DOMObject returned by this method ! * implements the DOMImplementation interface, it must ! * delegate to the primary core DOMImplementation and not ! * return results inconsistent with the primary core ! * DOMImplementation such as hasFeature, ! * getFeature, etc. * @since DOM Level 3 */ ! public Object getFeature(String feature, String version); } --- 13,136 ---- package org.w3c.dom; /** ! * The DOMImplementation interface provides a number of methods ! * for performing operations that are independent of any particular instance * of the document object model. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface DOMImplementation { /** ! * Test if the DOM implementation implements a specific feature and * version, as specified in . ! * @param feature The name of the feature to test. ! * @param version This is the version number of the feature to test. ! * @return true if the feature is implemented in the * specified version, false otherwise. */ ! public boolean hasFeature(String feature, String version); /** ! * Creates an empty DocumentType node. Entity declarations ! * and notations are not made available. Entity reference expansions and * default attribute additions do not occur.. ! * @param qualifiedName The qualified name of the document type to be * created. * @param publicId The external subset public identifier. * @param systemId The external subset system identifier. ! * @return A new DocumentType node with * Node.ownerDocument set to null. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not * an XML name according to [XML 1.0]. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is * malformed. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public DocumentType createDocumentType(String qualifiedName, ! String publicId, String systemId) throws DOMException; /** ! * Creates a DOM Document object of the specified type with its document * element. ! *
      Note that based on the DocumentType given to create ! * the document, the implementation may instantiate specialized ! * Document objects that support additional features than * the "Core", such as "HTML" [DOM Level 2 HTML] ! * . On the other hand, setting the DocumentType after the ! * document was created makes this very unlikely to happen. ! * Alternatively, specialized Document creation methods, * such as createHTMLDocument [DOM Level 2 HTML] ! * , can be used to obtain specific types of Document * objects. ! * @param namespaceURI The namespace URI of the document element to * create or null. ! * @param qualifiedName The qualified name of the document element to be * created or null. * @param doctype The type of document to be created or null. ! * When doctype is not null, its ! * Node.ownerDocument attribute is set to the document * being created. ! * @return A new Document object with its document element. ! * If the NamespaceURI, qualifiedName, and ! * doctype are null, the returned * Document is empty with no document element. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not * an XML name according to [XML 1.0]. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is ! * malformed, if the qualifiedName has a prefix and the ! * namespaceURI is null, or if the ! * qualifiedName is null and the ! * namespaceURI is different from null, or ! * if the qualifiedName has a prefix that is "xml" and * the namespaceURI is different from " * http://www.w3.org/XML/1998/namespace" [XML Namespaces] ! * , or if the DOM implementation does not support the ! * "XML" feature but a non-null namespace URI was * provided, since namespaces were defined by XML. ! *
      WRONG_DOCUMENT_ERR: Raised if doctype has already ! * been used with a different document or was created from a different * implementation. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public Document createDocument(String namespaceURI, ! String qualifiedName, DocumentType doctype) throws DOMException; /** ! * This method returns a specialized object which implements the ! * specialized APIs of the specified feature and version, as specified ! * in . The specialized object may also be obtained by using ! * binding-specific casting methods but is not necessarily expected to, ! * as discussed in . This method also allow the implementation to ! * provide specialized objects which do not support the ! * DOMImplementation interface. ! * @param feature The name of the feature requested. Note that any plus ! * sign "+" prepended to the name of the feature will be ignored since ! * it is not significant in the context of this method. ! * @param version This is the version number of the feature to test. ! * @return Returns an object which implements the specialized APIs of ! * the specified feature and version, if any, or null if ! * there is no object which implements interfaces associated with that ! * feature. If the DOMObject returned by this method ! * implements the DOMImplementation interface, it must ! * delegate to the primary core DOMImplementation and not ! * return results inconsistent with the primary core ! * DOMImplementation such as hasFeature, ! * getFeature, etc. * @since DOM Level 3 */ ! public Object getFeature(String feature, String version); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java Tue Jan 11 19:46:05 2011 *************** *** 13,42 **** package org.w3c.dom; /** ! * The DOMImplementationList interface provides the abstraction ! * of an ordered collection of DOM implementations, without defining or ! * constraining how this collection is implemented. The items in the ! * DOMImplementationList are accessible via an integral index, ! * starting from 0. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMImplementationList { /** ! * Returns the indexth item in the collection. If ! * index is greater than or equal to the number of ! * DOMImplementations in the list, this returns ! * null. * @param index Index into the collection. * @return The DOMImplementation at the index ! * th position in the DOMImplementationList, or ! * null if that is not a valid index. */ public DOMImplementation item(int index); /** ! * The number of DOMImplementations in the list. The range ! * of valid child node indices is 0 to length-1 inclusive. */ public int getLength(); --- 13,42 ---- package org.w3c.dom; /** ! * The DOMImplementationList interface provides the abstraction ! * of an ordered collection of DOM implementations, without defining or ! * constraining how this collection is implemented. The items in the ! * DOMImplementationList are accessible via an integral index, ! * starting from 0. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMImplementationList { /** ! * Returns the indexth item in the collection. If ! * index is greater than or equal to the number of ! * DOMImplementations in the list, this returns ! * null. * @param index Index into the collection. * @return The DOMImplementation at the index ! * th position in the DOMImplementationList, or ! * null if that is not a valid index. */ public DOMImplementation item(int index); /** ! * The number of DOMImplementations in the list. The range ! * of valid child node indices is 0 to length-1 inclusive. */ public int getLength(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java Tue Jan 11 19:46:05 2011 *************** *** 13,56 **** package org.w3c.dom; /** ! * This interface permits a DOM implementer to supply one or more ! * implementations, based upon requested features and versions, as specified ! * in . Each implemented DOMImplementationSource object is ! * listed in the binding-specific list of available sources so that its * DOMImplementation objects are made available. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMImplementationSource { /** ! * A method to request the first DOM implementation that supports the ! * specified features. ! * @param features A string that specifies which features and versions ! * are required. This is a space separated list in which each feature ! * is specified by its name optionally followed by a space and a ! * version number. This method returns the first item of the list ! * returned by getDOMImplementationList. As an example, ! * the string "XML 3.0 Traversal +Events 2.0" will ! * request a DOM implementation that supports the module "XML" for its ! * 3.0 version, a module that support of the "Traversal" module for ! * any version, and the module "Events" for its 2.0 version. The ! * module "Events" must be accessible using the method ! * Node.getFeature() and ! * DOMImplementation.getFeature(). ! * @return The first DOM implementation that support the desired * features, or null if this source has none. */ public DOMImplementation getDOMImplementation(String features); /** ! * A method to request a list of DOM implementations that support the * specified features and versions, as specified in . ! * @param features A string that specifies which features and versions ! * are required. This is a space separated list in which each feature ! * is specified by its name optionally followed by a space and a ! * version number. This is something like: "XML 3.0 Traversal +Events * 2.0" ! * @return A list of DOM implementations that support the desired * features. */ public DOMImplementationList getDOMImplementationList(String features); --- 13,56 ---- package org.w3c.dom; /** ! * This interface permits a DOM implementer to supply one or more ! * implementations, based upon requested features and versions, as specified ! * in . Each implemented DOMImplementationSource object is ! * listed in the binding-specific list of available sources so that its * DOMImplementation objects are made available. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMImplementationSource { /** ! * A method to request the first DOM implementation that supports the ! * specified features. ! * @param features A string that specifies which features and versions ! * are required. This is a space separated list in which each feature ! * is specified by its name optionally followed by a space and a ! * version number. This method returns the first item of the list ! * returned by getDOMImplementationList. As an example, ! * the string "XML 3.0 Traversal +Events 2.0" will ! * request a DOM implementation that supports the module "XML" for its ! * 3.0 version, a module that support of the "Traversal" module for ! * any version, and the module "Events" for its 2.0 version. The ! * module "Events" must be accessible using the method ! * Node.getFeature() and ! * DOMImplementation.getFeature(). ! * @return The first DOM implementation that support the desired * features, or null if this source has none. */ public DOMImplementation getDOMImplementation(String features); /** ! * A method to request a list of DOM implementations that support the * specified features and versions, as specified in . ! * @param features A string that specifies which features and versions ! * are required. This is a space separated list in which each feature ! * is specified by its name optionally followed by a space and a ! * version number. This is something like: "XML 3.0 Traversal +Events * 2.0" ! * @return A list of DOM implementations that support the desired * features. */ public DOMImplementationList getDOMImplementationList(String features); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java Tue Jan 11 19:46:05 2011 *************** *** 13,56 **** package org.w3c.dom; /** ! * DOMLocator is an interface that describes a location (e.g. * where an error occurred). *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMLocator { /** ! * The line number this locator is pointing to, or -1 if * there is no column number available. */ public int getLineNumber(); /** ! * The column number this locator is pointing to, or -1 if * there is no column number available. */ public int getColumnNumber(); /** ! * The byte offset into the input source this locator is pointing to or * -1 if there is no byte offset available. */ public int getByteOffset(); /** ! * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], offset into the input source this locator is pointing to or * -1 if there is no UTF-16 offset available. */ public int getUtf16Offset(); /** ! * The node this locator is pointing to, or null if no node * is available. */ public Node getRelatedNode(); /** ! * The URI this locator is pointing to, or null if no URI is * available. */ public String getUri(); --- 13,56 ---- package org.w3c.dom; /** ! * DOMLocator is an interface that describes a location (e.g. * where an error occurred). *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMLocator { /** ! * The line number this locator is pointing to, or -1 if * there is no column number available. */ public int getLineNumber(); /** ! * The column number this locator is pointing to, or -1 if * there is no column number available. */ public int getColumnNumber(); /** ! * The byte offset into the input source this locator is pointing to or * -1 if there is no byte offset available. */ public int getByteOffset(); /** ! * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], offset into the input source this locator is pointing to or * -1 if there is no UTF-16 offset available. */ public int getUtf16Offset(); /** ! * The node this locator is pointing to, or null if no node * is available. */ public Node getRelatedNode(); /** ! * The URI this locator is pointing to, or null if no URI is * available. */ public String getUri(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java Tue Jan 11 19:46:05 2011 *************** *** 13,49 **** package org.w3c.dom; /** ! * The DOMStringList interface provides the abstraction of an ! * ordered collection of DOMString values, without defining or ! * constraining how this collection is implemented. The items in the ! * DOMStringList are accessible via an integral index, starting ! * from 0. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMStringList { /** ! * Returns the indexth item in the collection. If ! * index is greater than or equal to the number of ! * DOMStrings in the list, this returns null. * @param index Index into the collection. ! * @return The DOMString at the indexth ! * position in the DOMStringList, or null if ! * that is not a valid index. */ public String item(int index); /** ! * The number of DOMStrings in the list. The range of valid * child node indices is 0 to length-1 inclusive. */ public int getLength(); /** ! * Test if a string is part of this DOMStringList. ! * @param str The string to look for. ! * @return true if the string has been found, ! * false otherwise. */ public boolean contains(String str); --- 13,49 ---- package org.w3c.dom; /** ! * The DOMStringList interface provides the abstraction of an ! * ordered collection of DOMString values, without defining or ! * constraining how this collection is implemented. The items in the ! * DOMStringList are accessible via an integral index, starting ! * from 0. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface DOMStringList { /** ! * Returns the indexth item in the collection. If ! * index is greater than or equal to the number of ! * DOMStrings in the list, this returns null. * @param index Index into the collection. ! * @return The DOMString at the indexth ! * position in the DOMStringList, or null if ! * that is not a valid index. */ public String item(int index); /** ! * The number of DOMStrings in the list. The range of valid * child node indices is 0 to length-1 inclusive. */ public int getLength(); /** ! * Test if a string is part of this DOMStringList. ! * @param str The string to look for. ! * @return true if the string has been found, ! * false otherwise. */ public boolean contains(String str); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java Tue Jan 11 19:46:05 2011 *************** *** 13,85 **** package org.w3c.dom; /** ! * The Document interface represents the entire HTML or XML ! * document. Conceptually, it is the root of the document tree, and provides * the primary access to the document's data. ! *

      Since elements, text nodes, comments, processing instructions, etc. ! * cannot exist outside the context of a Document, the ! * Document interface also contains the factory methods needed ! * to create these objects. The Node objects created have a ! * ownerDocument attribute which associates them with the * Document within whose context they were created. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Document extends Node { /** ! * The Document Type Declaration (see DocumentType) ! * associated with this document. For XML documents without a document ! * type declaration this returns null. For HTML documents, ! * a DocumentType object may be returned, independently of ! * the presence or absence of document type declaration in the HTML * document. ! *
      This provides direct access to the DocumentType node, ! * child node of this Document. This node can be set at ! * document creation time and later changed through the use of child ! * nodes manipulation methods, such as Node.insertBefore, ! * or Node.replaceChild. Note, however, that while some ! * implementations may instantiate different types of ! * Document objects supporting additional features than the * "Core", such as "HTML" [DOM Level 2 HTML] ! * , based on the DocumentType specified at creation time, ! * changing it afterwards is very unlikely to result in a change of the * features supported. * @version DOM Level 3 */ public DocumentType getDoctype(); /** ! * The DOMImplementation object that handles this document. A * DOM application may use objects from multiple implementations. */ public DOMImplementation getImplementation(); /** ! * This is a convenience attribute that allows direct access to the child * node that is the document element of the document. */ public Element getDocumentElement(); /** ! * Creates an element of the type specified. Note that the instance ! * returned implements the Element interface, so attributes * can be specified directly on the returned object. ! *
      In addition, if there are known attributes with default values, ! * Attr nodes representing them are automatically created * and attached to the element. ! *
      To create an element with a qualified name and namespace URI, use * the createElementNS method. ! * @param tagName The name of the element type to instantiate. For XML, ! * this is case-sensitive, otherwise it depends on the ! * case-sensitivity of the markup language in use. In that case, the ! * name is mapped to the canonical form of that markup by the DOM * implementation. ! * @return A new Element object with the ! * nodeName attribute set to tagName, and ! * localName, prefix, and * namespaceURI set to null. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. */ public Element createElement(String tagName) --- 13,85 ---- package org.w3c.dom; /** ! * The Document interface represents the entire HTML or XML ! * document. Conceptually, it is the root of the document tree, and provides * the primary access to the document's data. ! *

      Since elements, text nodes, comments, processing instructions, etc. ! * cannot exist outside the context of a Document, the ! * Document interface also contains the factory methods needed ! * to create these objects. The Node objects created have a ! * ownerDocument attribute which associates them with the * Document within whose context they were created. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Document extends Node { /** ! * The Document Type Declaration (see DocumentType) ! * associated with this document. For XML documents without a document ! * type declaration this returns null. For HTML documents, ! * a DocumentType object may be returned, independently of ! * the presence or absence of document type declaration in the HTML * document. ! *
      This provides direct access to the DocumentType node, ! * child node of this Document. This node can be set at ! * document creation time and later changed through the use of child ! * nodes manipulation methods, such as Node.insertBefore, ! * or Node.replaceChild. Note, however, that while some ! * implementations may instantiate different types of ! * Document objects supporting additional features than the * "Core", such as "HTML" [DOM Level 2 HTML] ! * , based on the DocumentType specified at creation time, ! * changing it afterwards is very unlikely to result in a change of the * features supported. * @version DOM Level 3 */ public DocumentType getDoctype(); /** ! * The DOMImplementation object that handles this document. A * DOM application may use objects from multiple implementations. */ public DOMImplementation getImplementation(); /** ! * This is a convenience attribute that allows direct access to the child * node that is the document element of the document. */ public Element getDocumentElement(); /** ! * Creates an element of the type specified. Note that the instance ! * returned implements the Element interface, so attributes * can be specified directly on the returned object. ! *
      In addition, if there are known attributes with default values, ! * Attr nodes representing them are automatically created * and attached to the element. ! *
      To create an element with a qualified name and namespace URI, use * the createElementNS method. ! * @param tagName The name of the element type to instantiate. For XML, ! * this is case-sensitive, otherwise it depends on the ! * case-sensitivity of the markup language in use. In that case, the ! * name is mapped to the canonical form of that markup by the DOM * implementation. ! * @return A new Element object with the ! * nodeName attribute set to tagName, and ! * localName, prefix, and * namespaceURI set to null. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. */ public Element createElement(String tagName) *************** public interface Document extends Node { *** 106,112 **** public Comment createComment(String data); /** ! * Creates a CDATASection node whose value is the specified * string. * @param data The data for the CDATASection contents. * @return The new CDATASection object. --- 106,112 ---- public Comment createComment(String data); /** ! * Creates a CDATASection node whose value is the specified * string. * @param data The data for the CDATASection contents. * @return The new CDATASection object. *************** public interface Document extends Node { *** 117,184 **** throws DOMException; /** ! * Creates a ProcessingInstruction node given the specified * name and data strings. ! * @param target The target part of the processing instruction.Unlike ! * Document.createElementNS or ! * Document.createAttributeNS, no namespace well-formed ! * checking is done on the target name. Applications should invoke * Document.normalizeDocument() with the parameter " ! * namespaces" set to true in order to ensure that the ! * target name is namespace well-formed. * @param data The data for the node. * @return The new ProcessingInstruction object. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified target is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. *
      NOT_SUPPORTED_ERR: Raised if this document is an HTML document. */ ! public ProcessingInstruction createProcessingInstruction(String target, String data) throws DOMException; /** ! * Creates an Attr of the given name. Note that the ! * Attr instance can then be set on an Element ! * using the setAttributeNode method. ! *
      To create an attribute with a qualified name and namespace URI, use * the createAttributeNS method. * @param name The name of the attribute. ! * @return A new Attr object with the nodeName ! * attribute set to name, and localName, ! * prefix, and namespaceURI set to * null. The value of the attribute is the empty string. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. */ public Attr createAttribute(String name) throws DOMException; /** ! * Creates an EntityReference object. In addition, if the ! * referenced entity is known, the child list of the ! * EntityReference node is made the same as that of the * corresponding Entity node. ! *

      Note: If any descendant of the Entity node has ! * an unbound namespace prefix, the corresponding descendant of the ! * created EntityReference node is also unbound; (its ! * namespaceURI is null). The DOM Level 2 and ! * 3 do not support any mechanism to resolve namespace prefixes in this * case. ! * @param name The name of the entity to reference.Unlike ! * Document.createElementNS or ! * Document.createAttributeNS, no namespace well-formed ! * checking is done on the entity name. Applications should invoke * Document.normalizeDocument() with the parameter " ! * namespaces" set to true in order to ensure that the ! * entity name is namespace well-formed. * @return The new EntityReference object. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. *
      NOT_SUPPORTED_ERR: Raised if this document is an HTML document. */ --- 117,184 ---- throws DOMException; /** ! * Creates a ProcessingInstruction node given the specified * name and data strings. ! * @param target The target part of the processing instruction.Unlike ! * Document.createElementNS or ! * Document.createAttributeNS, no namespace well-formed ! * checking is done on the target name. Applications should invoke * Document.normalizeDocument() with the parameter " ! * namespaces" set to true in order to ensure that the ! * target name is namespace well-formed. * @param data The data for the node. * @return The new ProcessingInstruction object. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified target is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. *
      NOT_SUPPORTED_ERR: Raised if this document is an HTML document. */ ! public ProcessingInstruction createProcessingInstruction(String target, String data) throws DOMException; /** ! * Creates an Attr of the given name. Note that the ! * Attr instance can then be set on an Element ! * using the setAttributeNode method. ! *
      To create an attribute with a qualified name and namespace URI, use * the createAttributeNS method. * @param name The name of the attribute. ! * @return A new Attr object with the nodeName ! * attribute set to name, and localName, ! * prefix, and namespaceURI set to * null. The value of the attribute is the empty string. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. */ public Attr createAttribute(String name) throws DOMException; /** ! * Creates an EntityReference object. In addition, if the ! * referenced entity is known, the child list of the ! * EntityReference node is made the same as that of the * corresponding Entity node. ! *

      Note: If any descendant of the Entity node has ! * an unbound namespace prefix, the corresponding descendant of the ! * created EntityReference node is also unbound; (its ! * namespaceURI is null). The DOM Level 2 and ! * 3 do not support any mechanism to resolve namespace prefixes in this * case. ! * @param name The name of the entity to reference.Unlike ! * Document.createElementNS or ! * Document.createAttributeNS, no namespace well-formed ! * checking is done on the entity name. Applications should invoke * Document.normalizeDocument() with the parameter " ! * namespaces" set to true in order to ensure that the ! * entity name is namespace well-formed. * @return The new EntityReference object. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. *
      NOT_SUPPORTED_ERR: Raised if this document is an HTML document. */ *************** public interface Document extends Node { *** 186,327 **** throws DOMException; /** ! * Returns a NodeList of all the Elements in ! * document order with a given tag name and are contained in the * document. ! * @param tagname The name of the tag to match on. The special value "*" ! * matches all tags. For XML, the tagname parameter is ! * case-sensitive, otherwise it depends on the case-sensitivity of the ! * markup language in use. ! * @return A new NodeList object containing all the matched * Elements. */ public NodeList getElementsByTagName(String tagname); /** ! * Imports a node from another document to this document, without altering ! * or removing the source node from the original document; this method ! * creates a new copy of the source node. The returned node has no * parent; (parentNode is null). ! *
      For all nodes, importing a node creates a node object owned by the ! * importing document, with attribute values identical to the source ! * node's nodeName and nodeType, plus the ! * attributes related to namespaces (prefix, ! * localName, and namespaceURI). As in the ! * cloneNode operation, the source node is not altered. ! * User data associated to the imported node is not carried over. ! * However, if any UserDataHandlers has been specified ! * along with the associated data these handlers will be called with the * appropriate parameters before this method returns. ! *
      Additional information is copied as appropriate to the ! * nodeType, attempting to mirror the behavior expected if ! * a fragment of XML or HTML source was copied from one document to ! * another, recognizing that the two documents may have different DTDs ! * in the XML case. The following list describes the specifics for each ! * type of node. *

      *
      ATTRIBUTE_NODE
      ! *
      The ownerElement attribute ! * is set to null and the specified flag is ! * set to true on the generated Attr. The ! * descendants of the source Attr are recursively imported * and the resulting nodes reassembled to form the corresponding subtree. ! * Note that the deep parameter has no effect on ! * Attr nodes; they always carry their children with them * when imported.
      *
      DOCUMENT_FRAGMENT_NODE
      ! *
      If the deep option ! * was set to true, the descendants of the source ! * DocumentFragment are recursively imported and the ! * resulting nodes reassembled under the imported ! * DocumentFragment to form the corresponding subtree. ! * Otherwise, this simply generates an empty * DocumentFragment.
      *
      DOCUMENT_NODE
      ! *
      Document * nodes cannot be imported.
      *
      DOCUMENT_TYPE_NODE
      ! *
      DocumentType * nodes cannot be imported.
      *
      ELEMENT_NODE
      ! *
      Specified attribute nodes of the source element are imported, and the generated ! * Attr nodes are attached to the generated ! * Element. Default attributes are not copied, though if the document being imported into defines default ! * attributes for this element name, those are assigned. If the ! * importNode deep parameter was set to ! * true, the descendants of the source element are ! * recursively imported and the resulting nodes reassembled to form the * corresponding subtree.
      *
      ENTITY_NODE
      ! *
      Entity nodes can be ! * imported, however in the current release of the DOM the ! * DocumentType is readonly. Ability to add these imported ! * nodes to a DocumentType will be considered for addition ! * to a future release of the DOM.On import, the publicId, ! * systemId, and notationName attributes are ! * copied. If a deep import is requested, the descendants ! * of the the source Entity are recursively imported and * the resulting nodes reassembled to form the corresponding subtree.
      *
      * ENTITY_REFERENCE_NODE
      ! *
      Only the EntityReference itself is ! * copied, even if a deep import is requested, since the ! * source and destination documents might have defined the entity ! * differently. If the document being imported into provides a * definition for this entity name, its value is assigned.
      *
      NOTATION_NODE
      *
      ! * Notation nodes can be imported, however in the current ! * release of the DOM the DocumentType is readonly. Ability ! * to add these imported nodes to a DocumentType will be ! * considered for addition to a future release of the DOM.On import, the * publicId and systemId attributes are copied. ! * Note that the deep parameter has no effect on this type * of nodes since they cannot have any children.
      *
      * PROCESSING_INSTRUCTION_NODE
      ! *
      The imported node copies its ! * target and data values from those of the ! * source node.Note that the deep parameter has no effect * on this type of nodes since they cannot have any children.
      ! *
      TEXT_NODE, * CDATA_SECTION_NODE, COMMENT_NODE
      ! *
      These three types of nodes inheriting ! * from CharacterData copy their data and ! * length attributes from those of the source node.Note ! * that the deep parameter has no effect on these types of * nodes since they cannot have any children.
      ! *
      * @param importedNode The node to import. ! * @param deep If true, recursively import the subtree under ! * the specified node; if false, import only the node ! * itself, as explained above. This has no effect on nodes that cannot ! * have any children, and on Attr, and * EntityReference nodes. * @return The imported node that belongs to this Document. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the type of node being imported is not * supported. ! *
      INVALID_CHARACTER_ERR: Raised if one of the imported names is not ! * an XML name according to the XML version in use specified in the ! * Document.xmlVersion attribute. This may happen when ! * importing an XML 1.1 [XML 1.1] element * into an XML 1.0 document, for instance. * @since DOM Level 2 */ ! public Node importNode(Node importedNode, boolean deep) throws DOMException; /** * Creates an element of the given qualified name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the * namespaceURI parameter for methods if they wish to have no namespace. * @param namespaceURI The namespace URI of the element to create. ! * @param qualifiedName The qualified name of the element type to * instantiate. ! * @return A new Element object with the following * attributes: * * --- 186,327 ---- throws DOMException; /** ! * Returns a NodeList of all the Elements in ! * document order with a given tag name and are contained in the * document. ! * @param tagname The name of the tag to match on. The special value "*" ! * matches all tags. For XML, the tagname parameter is ! * case-sensitive, otherwise it depends on the case-sensitivity of the ! * markup language in use. ! * @return A new NodeList object containing all the matched * Elements. */ public NodeList getElementsByTagName(String tagname); /** ! * Imports a node from another document to this document, without altering ! * or removing the source node from the original document; this method ! * creates a new copy of the source node. The returned node has no * parent; (parentNode is null). ! *
      For all nodes, importing a node creates a node object owned by the ! * importing document, with attribute values identical to the source ! * node's nodeName and nodeType, plus the ! * attributes related to namespaces (prefix, ! * localName, and namespaceURI). As in the ! * cloneNode operation, the source node is not altered. ! * User data associated to the imported node is not carried over. ! * However, if any UserDataHandlers has been specified ! * along with the associated data these handlers will be called with the * appropriate parameters before this method returns. ! *
      Additional information is copied as appropriate to the ! * nodeType, attempting to mirror the behavior expected if ! * a fragment of XML or HTML source was copied from one document to ! * another, recognizing that the two documents may have different DTDs ! * in the XML case. The following list describes the specifics for each ! * type of node. *
      *
      ATTRIBUTE_NODE
      ! *
      The ownerElement attribute ! * is set to null and the specified flag is ! * set to true on the generated Attr. The ! * descendants of the source Attr are recursively imported * and the resulting nodes reassembled to form the corresponding subtree. ! * Note that the deep parameter has no effect on ! * Attr nodes; they always carry their children with them * when imported.
      *
      DOCUMENT_FRAGMENT_NODE
      ! *
      If the deep option ! * was set to true, the descendants of the source ! * DocumentFragment are recursively imported and the ! * resulting nodes reassembled under the imported ! * DocumentFragment to form the corresponding subtree. ! * Otherwise, this simply generates an empty * DocumentFragment.
      *
      DOCUMENT_NODE
      ! *
      Document * nodes cannot be imported.
      *
      DOCUMENT_TYPE_NODE
      ! *
      DocumentType * nodes cannot be imported.
      *
      ELEMENT_NODE
      ! *
      Specified attribute nodes of the source element are imported, and the generated ! * Attr nodes are attached to the generated ! * Element. Default attributes are not copied, though if the document being imported into defines default ! * attributes for this element name, those are assigned. If the ! * importNode deep parameter was set to ! * true, the descendants of the source element are ! * recursively imported and the resulting nodes reassembled to form the * corresponding subtree.
      *
      ENTITY_NODE
      ! *
      Entity nodes can be ! * imported, however in the current release of the DOM the ! * DocumentType is readonly. Ability to add these imported ! * nodes to a DocumentType will be considered for addition ! * to a future release of the DOM.On import, the publicId, ! * systemId, and notationName attributes are ! * copied. If a deep import is requested, the descendants ! * of the the source Entity are recursively imported and * the resulting nodes reassembled to form the corresponding subtree.
      *
      * ENTITY_REFERENCE_NODE
      ! *
      Only the EntityReference itself is ! * copied, even if a deep import is requested, since the ! * source and destination documents might have defined the entity ! * differently. If the document being imported into provides a * definition for this entity name, its value is assigned.
      *
      NOTATION_NODE
      *
      ! * Notation nodes can be imported, however in the current ! * release of the DOM the DocumentType is readonly. Ability ! * to add these imported nodes to a DocumentType will be ! * considered for addition to a future release of the DOM.On import, the * publicId and systemId attributes are copied. ! * Note that the deep parameter has no effect on this type * of nodes since they cannot have any children.
      *
      * PROCESSING_INSTRUCTION_NODE
      ! *
      The imported node copies its ! * target and data values from those of the ! * source node.Note that the deep parameter has no effect * on this type of nodes since they cannot have any children.
      ! *
      TEXT_NODE, * CDATA_SECTION_NODE, COMMENT_NODE
      ! *
      These three types of nodes inheriting ! * from CharacterData copy their data and ! * length attributes from those of the source node.Note ! * that the deep parameter has no effect on these types of * nodes since they cannot have any children.
      ! *
      * @param importedNode The node to import. ! * @param deep If true, recursively import the subtree under ! * the specified node; if false, import only the node ! * itself, as explained above. This has no effect on nodes that cannot ! * have any children, and on Attr, and * EntityReference nodes. * @return The imported node that belongs to this Document. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the type of node being imported is not * supported. ! *
      INVALID_CHARACTER_ERR: Raised if one of the imported names is not ! * an XML name according to the XML version in use specified in the ! * Document.xmlVersion attribute. This may happen when ! * importing an XML 1.1 [XML 1.1] element * into an XML 1.0 document, for instance. * @since DOM Level 2 */ ! public Node importNode(Node importedNode, boolean deep) throws DOMException; /** * Creates an element of the given qualified name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the * namespaceURI parameter for methods if they wish to have no namespace. * @param namespaceURI The namespace URI of the element to create. ! * @param qualifiedName The qualified name of the element type to * instantiate. ! * @return A new Element object with the following * attributes: *
      * *************** public interface Document extends Node { *** 340,352 **** * * * ! * * * * ! * * * --- 340,352 ---- * * * ! * * * * ! * * * *************** public interface Document extends Node { *** 356,390 **** * *
      Node.prefixprefix, extracted ! * from qualifiedName, or null if there is * no prefix
      Node.localNamelocal name, extracted from * qualifiedName
      Node.prefixprefix, extracted ! * from qualifiedName, or null if there is * no prefix
      Node.localNamelocal name, extracted from * qualifiedName
      * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified ! * qualifiedName is not an XML name according to the XML ! * version in use specified in the Document.xmlVersion * attribute. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is a ! * malformed qualified name, if the qualifiedName has a ! * prefix and the namespaceURI is null, or ! * if the qualifiedName has a prefix that is "xml" and * the namespaceURI is different from " * http://www.w3.org/XML/1998/namespace" [XML Namespaces] ! * , or if the qualifiedName or its prefix is "xmlns" and * the namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns". ! *
      NOT_SUPPORTED_ERR: Always thrown if the current document does not ! * support the "XML" feature, since namespaces were * defined by XML. * @since DOM Level 2 */ ! public Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException; /** * Creates an attribute of the given qualified name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to create. ! * @param qualifiedName The qualified name of the attribute to * instantiate. * @return A new Attr object with the following attributes: * --- 356,390 ---- * *
      * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified ! * qualifiedName is not an XML name according to the XML ! * version in use specified in the Document.xmlVersion * attribute. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is a ! * malformed qualified name, if the qualifiedName has a ! * prefix and the namespaceURI is null, or ! * if the qualifiedName has a prefix that is "xml" and * the namespaceURI is different from " * http://www.w3.org/XML/1998/namespace" [XML Namespaces] ! * , or if the qualifiedName or its prefix is "xmlns" and * the namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns". ! *
      NOT_SUPPORTED_ERR: Always thrown if the current document does not ! * support the "XML" feature, since namespaces were * defined by XML. * @since DOM Level 2 */ ! public Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException; /** * Creates an attribute of the given qualified name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to create. ! * @param qualifiedName The qualified name of the attribute to * instantiate. * @return A new Attr object with the following attributes: * *************** public interface Document extends Node { *** 405,417 **** * * ! * * * * ! * * * --- 405,417 ---- * * ! * * * * ! * * * *************** public interface Document extends Node { *** 421,473 **** * * * ! * * *
      * Node.prefixprefix, extracted from ! * qualifiedName, or null if there is no * prefix
      Node.localNamelocal name, extracted from * qualifiedName
      * Node.prefixprefix, extracted from ! * qualifiedName, or null if there is no * prefix
      Node.localNamelocal name, extracted from * qualifiedName
      Node.nodeValuethe empty * string
      * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified ! * qualifiedName is not an XML name according to the XML ! * version in use specified in the Document.xmlVersion * attribute. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is a ! * malformed qualified name, if the qualifiedName has a ! * prefix and the namespaceURI is null, if ! * the qualifiedName has a prefix that is "xml" and the * namespaceURI is different from " ! * http://www.w3.org/XML/1998/namespace", if the qualifiedName or its prefix is "xmlns" and the * namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns". ! *
      NOT_SUPPORTED_ERR: Always thrown if the current document does not ! * support the "XML" feature, since namespaces were * defined by XML. * @since DOM Level 2 */ ! public Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException; /** ! * Returns a NodeList of all the Elements with a * given local name and namespace URI in document order. ! * @param namespaceURI The namespace URI of the elements to match on. The * special value "*" matches all namespaces. ! * @param localName The local name of the elements to match on. The * special value "*" matches all local names. ! * @return A new NodeList object containing all the matched * Elements. * @since DOM Level 2 */ ! public NodeList getElementsByTagNameNS(String namespaceURI, String localName); /** ! * Returns the Element that has an ID attribute with the * given value. If no such element exists, this returns null ! * . If more than one element has an ID attribute with that value, what ! * is returned is undefined. ! *
      The DOM implementation is expected to use the attribute ! * Attr.isId to determine if an attribute is of type ID. ! *

      Note: Attributes with the name "ID" or "id" are not of type * ID unless so defined. * @param elementId The unique id value for an element. * @return The matching element or null if there is none. --- 421,473 ---- *

      Node.nodeValuethe empty * string
      * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified ! * qualifiedName is not an XML name according to the XML ! * version in use specified in the Document.xmlVersion * attribute. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is a ! * malformed qualified name, if the qualifiedName has a ! * prefix and the namespaceURI is null, if ! * the qualifiedName has a prefix that is "xml" and the * namespaceURI is different from " ! * http://www.w3.org/XML/1998/namespace", if the qualifiedName or its prefix is "xmlns" and the * namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns". ! *
      NOT_SUPPORTED_ERR: Always thrown if the current document does not ! * support the "XML" feature, since namespaces were * defined by XML. * @since DOM Level 2 */ ! public Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException; /** ! * Returns a NodeList of all the Elements with a * given local name and namespace URI in document order. ! * @param namespaceURI The namespace URI of the elements to match on. The * special value "*" matches all namespaces. ! * @param localName The local name of the elements to match on. The * special value "*" matches all local names. ! * @return A new NodeList object containing all the matched * Elements. * @since DOM Level 2 */ ! public NodeList getElementsByTagNameNS(String namespaceURI, String localName); /** ! * Returns the Element that has an ID attribute with the * given value. If no such element exists, this returns null ! * . If more than one element has an ID attribute with that value, what ! * is returned is undefined. ! *
      The DOM implementation is expected to use the attribute ! * Attr.isId to determine if an attribute is of type ID. ! *

      Note: Attributes with the name "ID" or "id" are not of type * ID unless so defined. * @param elementId The unique id value for an element. * @return The matching element or null if there is none. *************** public interface Document extends Node { *** 476,654 **** public Element getElementById(String elementId); /** ! * An attribute specifying the encoding used for this document at the time ! * of the parsing. This is null when it is not known, such * as when the Document was created in memory. * @since DOM Level 3 */ public String getInputEncoding(); /** ! * An attribute specifying, as part of the XML declaration, the encoding of this document. This is null when ! * unspecified or when it is not known, such as when the * Document was created in memory. * @since DOM Level 3 */ public String getXmlEncoding(); /** ! * An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when * unspecified. ! *

      Note: No verification is done on the value when setting ! * this attribute. Applications should use ! * Document.normalizeDocument() with the "validate" ! * parameter to verify if the value matches the validity ! * constraint for standalone document declaration as defined in [XML 1.0]. * @since DOM Level 3 */ public boolean getXmlStandalone(); /** ! * An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when * unspecified. ! *

      Note: No verification is done on the value when setting ! * this attribute. Applications should use ! * Document.normalizeDocument() with the "validate" ! * parameter to verify if the value matches the validity ! * constraint for standalone document declaration as defined in [XML 1.0]. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if this document does not support the ! * "XML" feature. * @since DOM Level 3 */ public void setXmlStandalone(boolean xmlStandalone) throws DOMException; /** ! * An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if ! * this document supports the "XML" feature, the value is ! * "1.0". If this document does not support the "XML" ! * feature, the value is always null. Changing this ! * attribute will affect methods that check for invalid characters in ! * XML names. Application should invoke ! * Document.normalizeDocument() in order to check for ! * invalid characters in the Nodes that are already part of ! * this Document. ! *
      DOM applications may use the ! * DOMImplementation.hasFeature(feature, version) method ! * with parameter values "XMLVersion" and "1.0" (respectively) to ! * determine if an implementation supports [XML 1.0]. DOM ! * applications may use the same method with parameter values ! * "XMLVersion" and "1.1" (respectively) to determine if an ! * implementation supports [XML 1.1]. In both ! * cases, in order to support XML, an implementation must also support * the "XML" feature defined in this specification. Document ! * objects supporting a version of the "XMLVersion" feature must not ! * raise a NOT_SUPPORTED_ERR exception for the same version ! * number when using Document.xmlVersion. * @since DOM Level 3 */ public String getXmlVersion(); /** ! * An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if ! * this document supports the "XML" feature, the value is ! * "1.0". If this document does not support the "XML" ! * feature, the value is always null. Changing this ! * attribute will affect methods that check for invalid characters in ! * XML names. Application should invoke ! * Document.normalizeDocument() in order to check for ! * invalid characters in the Nodes that are already part of ! * this Document. ! *
      DOM applications may use the ! * DOMImplementation.hasFeature(feature, version) method ! * with parameter values "XMLVersion" and "1.0" (respectively) to ! * determine if an implementation supports [XML 1.0]. DOM ! * applications may use the same method with parameter values ! * "XMLVersion" and "1.1" (respectively) to determine if an ! * implementation supports [XML 1.1]. In both ! * cases, in order to support XML, an implementation must also support * the "XML" feature defined in this specification. Document ! * objects supporting a version of the "XMLVersion" feature must not ! * raise a NOT_SUPPORTED_ERR exception for the same version ! * number when using Document.xmlVersion. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the version is set to a value that is ! * not supported by this Document or if this document ! * does not support the "XML" feature. * @since DOM Level 3 */ public void setXmlVersion(String xmlVersion) throws DOMException; /** ! * An attribute specifying whether error checking is enforced or not. When ! * set to false, the implementation is free to not test ! * every possible error case normally defined on DOM operations, and not ! * raise any DOMException on DOM operations or report ! * errors while using Document.normalizeDocument(). In case ! * of error, the behavior is undefined. This attribute is * true by default. * @since DOM Level 3 */ public boolean getStrictErrorChecking(); /** ! * An attribute specifying whether error checking is enforced or not. When ! * set to false, the implementation is free to not test ! * every possible error case normally defined on DOM operations, and not ! * raise any DOMException on DOM operations or report ! * errors while using Document.normalizeDocument(). In case ! * of error, the behavior is undefined. This attribute is * true by default. * @since DOM Level 3 */ public void setStrictErrorChecking(boolean strictErrorChecking); /** ! * The location of the document or null if undefined or if ! * the Document was created using ! * DOMImplementation.createDocument. No lexical checking is ! * performed when setting this attribute; this could result in a * null value returned when using Node.baseURI ! * . ! *
      Beware that when the Document supports the feature * "HTML" [DOM Level 2 HTML] ! * , the href attribute of the HTML BASE element takes precedence over ! * this attribute when computing Node.baseURI. * @since DOM Level 3 */ public String getDocumentURI(); /** ! * The location of the document or null if undefined or if ! * the Document was created using ! * DOMImplementation.createDocument. No lexical checking is ! * performed when setting this attribute; this could result in a * null value returned when using Node.baseURI ! * . ! *
      Beware that when the Document supports the feature * "HTML" [DOM Level 2 HTML] ! * , the href attribute of the HTML BASE element takes precedence over ! * this attribute when computing Node.baseURI. * @since DOM Level 3 */ public void setDocumentURI(String documentURI); /** ! * Attempts to adopt a node from another document to this document. If ! * supported, it changes the ownerDocument of the source ! * node, its children, as well as the attached attribute nodes if there ! * are any. If the source node has a parent it is first removed from the ! * child list of its parent. This effectively allows moving a subtree ! * from one document to another (unlike importNode() which ! * create a copy of the source node instead of moving it). When it ! * fails, applications should use Document.importNode() ! * instead. Note that if the adopted node is already part of this ! * document (i.e. the source and target document are the same), this ! * method still has the effect of removing the source node from the ! * child list of its parent, if any. The following list describes the ! * specifics for each type of node. *

      *
      ATTRIBUTE_NODE
      ! *
      The ! * ownerElement attribute is set to null and ! * the specified flag is set to true on the ! * adopted Attr. The descendants of the source * Attr are recursively adopted.
      *
      DOCUMENT_FRAGMENT_NODE
      ! *
      The * descendants of the source node are recursively adopted.
      *
      DOCUMENT_NODE
      *
      --- 476,654 ---- public Element getElementById(String elementId); /** ! * An attribute specifying the encoding used for this document at the time ! * of the parsing. This is null when it is not known, such * as when the Document was created in memory. * @since DOM Level 3 */ public String getInputEncoding(); /** ! * An attribute specifying, as part of the XML declaration, the encoding of this document. This is null when ! * unspecified or when it is not known, such as when the * Document was created in memory. * @since DOM Level 3 */ public String getXmlEncoding(); /** ! * An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when * unspecified. ! *

      Note: No verification is done on the value when setting ! * this attribute. Applications should use ! * Document.normalizeDocument() with the "validate" ! * parameter to verify if the value matches the validity ! * constraint for standalone document declaration as defined in [XML 1.0]. * @since DOM Level 3 */ public boolean getXmlStandalone(); /** ! * An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when * unspecified. ! *

      Note: No verification is done on the value when setting ! * this attribute. Applications should use ! * Document.normalizeDocument() with the "validate" ! * parameter to verify if the value matches the validity ! * constraint for standalone document declaration as defined in [XML 1.0]. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if this document does not support the ! * "XML" feature. * @since DOM Level 3 */ public void setXmlStandalone(boolean xmlStandalone) throws DOMException; /** ! * An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if ! * this document supports the "XML" feature, the value is ! * "1.0". If this document does not support the "XML" ! * feature, the value is always null. Changing this ! * attribute will affect methods that check for invalid characters in ! * XML names. Application should invoke ! * Document.normalizeDocument() in order to check for ! * invalid characters in the Nodes that are already part of ! * this Document. ! *
      DOM applications may use the ! * DOMImplementation.hasFeature(feature, version) method ! * with parameter values "XMLVersion" and "1.0" (respectively) to ! * determine if an implementation supports [XML 1.0]. DOM ! * applications may use the same method with parameter values ! * "XMLVersion" and "1.1" (respectively) to determine if an ! * implementation supports [XML 1.1]. In both ! * cases, in order to support XML, an implementation must also support * the "XML" feature defined in this specification. Document ! * objects supporting a version of the "XMLVersion" feature must not ! * raise a NOT_SUPPORTED_ERR exception for the same version ! * number when using Document.xmlVersion. * @since DOM Level 3 */ public String getXmlVersion(); /** ! * An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if ! * this document supports the "XML" feature, the value is ! * "1.0". If this document does not support the "XML" ! * feature, the value is always null. Changing this ! * attribute will affect methods that check for invalid characters in ! * XML names. Application should invoke ! * Document.normalizeDocument() in order to check for ! * invalid characters in the Nodes that are already part of ! * this Document. ! *
      DOM applications may use the ! * DOMImplementation.hasFeature(feature, version) method ! * with parameter values "XMLVersion" and "1.0" (respectively) to ! * determine if an implementation supports [XML 1.0]. DOM ! * applications may use the same method with parameter values ! * "XMLVersion" and "1.1" (respectively) to determine if an ! * implementation supports [XML 1.1]. In both ! * cases, in order to support XML, an implementation must also support * the "XML" feature defined in this specification. Document ! * objects supporting a version of the "XMLVersion" feature must not ! * raise a NOT_SUPPORTED_ERR exception for the same version ! * number when using Document.xmlVersion. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the version is set to a value that is ! * not supported by this Document or if this document ! * does not support the "XML" feature. * @since DOM Level 3 */ public void setXmlVersion(String xmlVersion) throws DOMException; /** ! * An attribute specifying whether error checking is enforced or not. When ! * set to false, the implementation is free to not test ! * every possible error case normally defined on DOM operations, and not ! * raise any DOMException on DOM operations or report ! * errors while using Document.normalizeDocument(). In case ! * of error, the behavior is undefined. This attribute is * true by default. * @since DOM Level 3 */ public boolean getStrictErrorChecking(); /** ! * An attribute specifying whether error checking is enforced or not. When ! * set to false, the implementation is free to not test ! * every possible error case normally defined on DOM operations, and not ! * raise any DOMException on DOM operations or report ! * errors while using Document.normalizeDocument(). In case ! * of error, the behavior is undefined. This attribute is * true by default. * @since DOM Level 3 */ public void setStrictErrorChecking(boolean strictErrorChecking); /** ! * The location of the document or null if undefined or if ! * the Document was created using ! * DOMImplementation.createDocument. No lexical checking is ! * performed when setting this attribute; this could result in a * null value returned when using Node.baseURI ! * . ! *
      Beware that when the Document supports the feature * "HTML" [DOM Level 2 HTML] ! * , the href attribute of the HTML BASE element takes precedence over ! * this attribute when computing Node.baseURI. * @since DOM Level 3 */ public String getDocumentURI(); /** ! * The location of the document or null if undefined or if ! * the Document was created using ! * DOMImplementation.createDocument. No lexical checking is ! * performed when setting this attribute; this could result in a * null value returned when using Node.baseURI ! * . ! *
      Beware that when the Document supports the feature * "HTML" [DOM Level 2 HTML] ! * , the href attribute of the HTML BASE element takes precedence over ! * this attribute when computing Node.baseURI. * @since DOM Level 3 */ public void setDocumentURI(String documentURI); /** ! * Attempts to adopt a node from another document to this document. If ! * supported, it changes the ownerDocument of the source ! * node, its children, as well as the attached attribute nodes if there ! * are any. If the source node has a parent it is first removed from the ! * child list of its parent. This effectively allows moving a subtree ! * from one document to another (unlike importNode() which ! * create a copy of the source node instead of moving it). When it ! * fails, applications should use Document.importNode() ! * instead. Note that if the adopted node is already part of this ! * document (i.e. the source and target document are the same), this ! * method still has the effect of removing the source node from the ! * child list of its parent, if any. The following list describes the ! * specifics for each type of node. *

      *
      ATTRIBUTE_NODE
      ! *
      The ! * ownerElement attribute is set to null and ! * the specified flag is set to true on the ! * adopted Attr. The descendants of the source * Attr are recursively adopted.
      *
      DOCUMENT_FRAGMENT_NODE
      ! *
      The * descendants of the source node are recursively adopted.
      *
      DOCUMENT_NODE
      *
      *************** public interface Document extends Node { *** 657,697 **** *
      * DocumentType nodes cannot be adopted.
      *
      ELEMENT_NODE
      ! *
      Specified attribute nodes of the source element are adopted. Default attributes ! * are discarded, though if the document being adopted into defines ! * default attributes for this element name, those are assigned. The * descendants of the source element are recursively adopted.
      *
      ENTITY_NODE
      *
      * Entity nodes cannot be adopted.
      *
      ENTITY_REFERENCE_NODE
      ! *
      Only ! * the EntityReference node itself is adopted, the ! * descendants are discarded, since the source and destination documents ! * might have defined the entity differently. If the document being ! * imported into provides a definition for this entity name, its value * is assigned.
      *
      NOTATION_NODE
      ! *
      Notation nodes cannot be * adopted.
      ! *
      PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, * COMMENT_NODE
      *
      These nodes can all be adopted. No specifics.
      ! *
      ! *

      Note: Since it does not create new nodes unlike the ! * Document.importNode() method, this method does not raise ! * an INVALID_CHARACTER_ERR exception, and applications ! * should use the Document.normalizeDocument() method to ! * check if an imported name is not an XML name according to the XML ! * version in use. * @param source The node to move into this document. ! * @return The adopted node, or null if this operation ! * fails, such as when the source node comes from a different * implementation. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the source node is of type * DOCUMENT, DOCUMENT_TYPE. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is * readonly. * @since DOM Level 3 */ --- 657,697 ---- *

      * DocumentType nodes cannot be adopted.
      *
      ELEMENT_NODE
      ! *
      Specified attribute nodes of the source element are adopted. Default attributes ! * are discarded, though if the document being adopted into defines ! * default attributes for this element name, those are assigned. The * descendants of the source element are recursively adopted.
      *
      ENTITY_NODE
      *
      * Entity nodes cannot be adopted.
      *
      ENTITY_REFERENCE_NODE
      ! *
      Only ! * the EntityReference node itself is adopted, the ! * descendants are discarded, since the source and destination documents ! * might have defined the entity differently. If the document being ! * imported into provides a definition for this entity name, its value * is assigned.
      *
      NOTATION_NODE
      ! *
      Notation nodes cannot be * adopted.
      ! *
      PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, * COMMENT_NODE
      *
      These nodes can all be adopted. No specifics.
      ! *
      ! *

      Note: Since it does not create new nodes unlike the ! * Document.importNode() method, this method does not raise ! * an INVALID_CHARACTER_ERR exception, and applications ! * should use the Document.normalizeDocument() method to ! * check if an imported name is not an XML name according to the XML ! * version in use. * @param source The node to move into this document. ! * @return The adopted node, or null if this operation ! * fails, such as when the source node comes from a different * implementation. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the source node is of type * DOCUMENT, DOCUMENT_TYPE. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is * readonly. * @since DOM Level 3 */ *************** public interface Document extends Node { *** 699,813 **** throws DOMException; /** ! * The configuration used when Document.normalizeDocument() ! * is invoked. * @since DOM Level 3 */ public DOMConfiguration getDomConfig(); /** ! * This method acts as if the document was going through a save and load ! * cycle, putting the document in a "normal" form. As a consequence, ! * this method updates the replacement tree of ! * EntityReference nodes and normalizes Text ! * nodes, as defined in the method Node.normalize(). ! *
      Otherwise, the actual result depends on the features being set on ! * the Document.domConfig object and governing what ! * operations actually take place. Noticeably this method could also ! * make the document namespace well-formed according to the algorithm ! * described in , check the character normalization, remove the ! * CDATASection nodes, etc. See ! * DOMConfiguration for details. ! *

      // Keep in the document 
      !      * the information defined // in the XML Information Set (Java example) 
      !      * DOMConfiguration docConfig = myDocument.getDomConfig(); 
      !      * docConfig.setParameter("infoset", Boolean.TRUE); 
             * myDocument.normalizeDocument();
      ! * ! *
      Mutation events, when supported, are generated to reflect the * changes occurring on the document. ! *
      If errors occur during the invocation of this method, such as an ! * attempt to update a read-only node or a Node.nodeName ! * contains an invalid character according to the XML version in use, ! * errors or warnings (DOMError.SEVERITY_ERROR or ! * DOMError.SEVERITY_WARNING) will be reported using the * DOMErrorHandler object associated with the "error-handler * " parameter. Note this method might also report fatal errors ( ! * DOMError.SEVERITY_FATAL_ERROR) if an implementation ! * cannot recover from an error. * @since DOM Level 3 */ public void normalizeDocument(); /** ! * Rename an existing node of type ELEMENT_NODE or * ATTRIBUTE_NODE. ! *
      When possible this simply changes the name of the given node, ! * otherwise this creates a new node with the specified name and * replaces the existing node with the new node as described below. ! *
      If simply changing the name of the given node is not possible, the ! * following operations are performed: a new node is created, any ! * registered event listener is registered on the new node, any user ! * data attached to the old node is removed from that node, the old node ! * is removed from its parent if it has one, the children are moved to ! * the new node, if the renamed node is an Element its ! * attributes are moved to the new node, the new node is inserted at the ! * position the old node used to have in its parent's child nodes list ! * if it has one, the user data that was attached to the old node is * attached to the new node. ! *
      When the node being renamed is an Element only the ! * specified attributes are moved, default attributes originated from ! * the DTD are updated according to the new element name. In addition, ! * the implementation may update default attributes from other schemas. ! * Applications should use Document.normalizeDocument() to * guarantee these attributes are up-to-date. ! *
      When the node being renamed is an Attr that is ! * attached to an Element, the node is first removed from ! * the Element attributes map. Then, once renamed, either ! * by modifying the existing node or creating a new one as described * above, it is put back. *
      In addition, *
        ! *
      • a user data event NODE_RENAMED is fired, *
      • ! *
      • ! * when the implementation supports the feature "MutationNameEvents", ! * each mutation operation involved in this method fires the appropriate * event, and in the end the event { ! * http://www.w3.org/2001/xml-events, * DOMElementNameChanged} or { ! * http://www.w3.org/2001/xml-events, ! * DOMAttributeNameChanged} is fired. *
      • *
      * @param n The node to rename. * @param namespaceURI The new namespace URI. * @param qualifiedName The new qualified name. ! * @return The renamed node. This is either the specified node or the new * node that was created to replace the specified node. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised when the type of the specified node is ! * neither ELEMENT_NODE nor ATTRIBUTE_NODE, ! * or if the implementation does not support the renaming of the * document element. ! *
      INVALID_CHARACTER_ERR: Raised if the new qualified name is not an ! * XML name according to the XML version in use specified in the * Document.xmlVersion attribute. ! *
      WRONG_DOCUMENT_ERR: Raised when the specified node was created * from a different document than this document. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is a ! * malformed qualified name, if the qualifiedName has a ! * prefix and the namespaceURI is null, or ! * if the qualifiedName has a prefix that is "xml" and * the namespaceURI is different from " * http://www.w3.org/XML/1998/namespace" [XML Namespaces] ! * . Also raised, when the node being renamed is an attribute, if the ! * qualifiedName, or its prefix, is "xmlns" and the * namespaceURI is different from "http://www.w3.org/2000/xmlns/". * @since DOM Level 3 */ ! public Node renameNode(Node n, ! String namespaceURI, String qualifiedName) throws DOMException; --- 699,813 ---- throws DOMException; /** ! * The configuration used when Document.normalizeDocument() ! * is invoked. * @since DOM Level 3 */ public DOMConfiguration getDomConfig(); /** ! * This method acts as if the document was going through a save and load ! * cycle, putting the document in a "normal" form. As a consequence, ! * this method updates the replacement tree of ! * EntityReference nodes and normalizes Text ! * nodes, as defined in the method Node.normalize(). ! *
      Otherwise, the actual result depends on the features being set on ! * the Document.domConfig object and governing what ! * operations actually take place. Noticeably this method could also ! * make the document namespace well-formed according to the algorithm ! * described in , check the character normalization, remove the ! * CDATASection nodes, etc. See ! * DOMConfiguration for details. ! *
      // Keep in the document
      !      * the information defined // in the XML Information Set (Java example)
      !      * DOMConfiguration docConfig = myDocument.getDomConfig();
      !      * docConfig.setParameter("infoset", Boolean.TRUE);
             * myDocument.normalizeDocument();
      ! * ! *
      Mutation events, when supported, are generated to reflect the * changes occurring on the document. ! *
      If errors occur during the invocation of this method, such as an ! * attempt to update a read-only node or a Node.nodeName ! * contains an invalid character according to the XML version in use, ! * errors or warnings (DOMError.SEVERITY_ERROR or ! * DOMError.SEVERITY_WARNING) will be reported using the * DOMErrorHandler object associated with the "error-handler * " parameter. Note this method might also report fatal errors ( ! * DOMError.SEVERITY_FATAL_ERROR) if an implementation ! * cannot recover from an error. * @since DOM Level 3 */ public void normalizeDocument(); /** ! * Rename an existing node of type ELEMENT_NODE or * ATTRIBUTE_NODE. ! *
      When possible this simply changes the name of the given node, ! * otherwise this creates a new node with the specified name and * replaces the existing node with the new node as described below. ! *
      If simply changing the name of the given node is not possible, the ! * following operations are performed: a new node is created, any ! * registered event listener is registered on the new node, any user ! * data attached to the old node is removed from that node, the old node ! * is removed from its parent if it has one, the children are moved to ! * the new node, if the renamed node is an Element its ! * attributes are moved to the new node, the new node is inserted at the ! * position the old node used to have in its parent's child nodes list ! * if it has one, the user data that was attached to the old node is * attached to the new node. ! *
      When the node being renamed is an Element only the ! * specified attributes are moved, default attributes originated from ! * the DTD are updated according to the new element name. In addition, ! * the implementation may update default attributes from other schemas. ! * Applications should use Document.normalizeDocument() to * guarantee these attributes are up-to-date. ! *
      When the node being renamed is an Attr that is ! * attached to an Element, the node is first removed from ! * the Element attributes map. Then, once renamed, either ! * by modifying the existing node or creating a new one as described * above, it is put back. *
      In addition, *
        ! *
      • a user data event NODE_RENAMED is fired, *
      • ! *
      • ! * when the implementation supports the feature "MutationNameEvents", ! * each mutation operation involved in this method fires the appropriate * event, and in the end the event { ! * http://www.w3.org/2001/xml-events, * DOMElementNameChanged} or { ! * http://www.w3.org/2001/xml-events, ! * DOMAttributeNameChanged} is fired. *
      • *
      * @param n The node to rename. * @param namespaceURI The new namespace URI. * @param qualifiedName The new qualified name. ! * @return The renamed node. This is either the specified node or the new * node that was created to replace the specified node. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised when the type of the specified node is ! * neither ELEMENT_NODE nor ATTRIBUTE_NODE, ! * or if the implementation does not support the renaming of the * document element. ! *
      INVALID_CHARACTER_ERR: Raised if the new qualified name is not an ! * XML name according to the XML version in use specified in the * Document.xmlVersion attribute. ! *
      WRONG_DOCUMENT_ERR: Raised when the specified node was created * from a different document than this document. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is a ! * malformed qualified name, if the qualifiedName has a ! * prefix and the namespaceURI is null, or ! * if the qualifiedName has a prefix that is "xml" and * the namespaceURI is different from " * http://www.w3.org/XML/1998/namespace" [XML Namespaces] ! * . Also raised, when the node being renamed is an attribute, if the ! * qualifiedName, or its prefix, is "xmlns" and the * namespaceURI is different from "http://www.w3.org/2000/xmlns/". * @since DOM Level 3 */ ! public Node renameNode(Node n, ! String namespaceURI, String qualifiedName) throws DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java Tue Jan 11 19:46:05 2011 *************** *** 13,51 **** package org.w3c.dom; /** ! * DocumentFragment is a "lightweight" or "minimal" ! * Document object. It is very common to want to be able to ! * extract a portion of a document's tree or to create a new fragment of a ! * document. Imagine implementing a user command like cut or rearranging a ! * document by moving fragments around. It is desirable to have an object ! * which can hold such fragments and it is quite natural to use a Node for ! * this purpose. While it is true that a Document object could ! * fulfill this role, a Document object can potentially be a ! * heavyweight object, depending on the underlying implementation. What is ! * really needed for this is a very lightweight object. * DocumentFragment is such an object. ! *

      Furthermore, various operations -- such as inserting nodes as children ! * of another Node -- may take DocumentFragment ! * objects as arguments; this results in all the child nodes of the * DocumentFragment being moved to the child list of this node. ! *

      The children of a DocumentFragment node are zero or more ! * nodes representing the tops of any sub-trees defining the structure of ! * the document. DocumentFragment nodes do not need to be ! * well-formed XML documents (although they do need to follow the rules ! * imposed upon well-formed XML parsed entities, which can have multiple top ! * nodes). For example, a DocumentFragment might have only one ! * child and that child node could be a Text node. Such a ! * structure model represents neither an HTML document nor a well-formed XML * document. ! *

      When a DocumentFragment is inserted into a ! * Document (or indeed any other Node that may ! * take children) the children of the DocumentFragment and not ! * the DocumentFragment itself are inserted into the ! * Node. This makes the DocumentFragment very ! * useful when the user wishes to create nodes that are siblings; the ! * DocumentFragment acts as the parent of these nodes so that ! * the user can use the standard methods from the Node ! * interface, such as Node.insertBefore and * Node.appendChild. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ --- 13,51 ---- package org.w3c.dom; /** ! * DocumentFragment is a "lightweight" or "minimal" ! * Document object. It is very common to want to be able to ! * extract a portion of a document's tree or to create a new fragment of a ! * document. Imagine implementing a user command like cut or rearranging a ! * document by moving fragments around. It is desirable to have an object ! * which can hold such fragments and it is quite natural to use a Node for ! * this purpose. While it is true that a Document object could ! * fulfill this role, a Document object can potentially be a ! * heavyweight object, depending on the underlying implementation. What is ! * really needed for this is a very lightweight object. * DocumentFragment is such an object. ! *

      Furthermore, various operations -- such as inserting nodes as children ! * of another Node -- may take DocumentFragment ! * objects as arguments; this results in all the child nodes of the * DocumentFragment being moved to the child list of this node. ! *

      The children of a DocumentFragment node are zero or more ! * nodes representing the tops of any sub-trees defining the structure of ! * the document. DocumentFragment nodes do not need to be ! * well-formed XML documents (although they do need to follow the rules ! * imposed upon well-formed XML parsed entities, which can have multiple top ! * nodes). For example, a DocumentFragment might have only one ! * child and that child node could be a Text node. Such a ! * structure model represents neither an HTML document nor a well-formed XML * document. ! *

      When a DocumentFragment is inserted into a ! * Document (or indeed any other Node that may ! * take children) the children of the DocumentFragment and not ! * the DocumentFragment itself are inserted into the ! * Node. This makes the DocumentFragment very ! * useful when the user wishes to create nodes that are siblings; the ! * DocumentFragment acts as the parent of these nodes so that ! * the user can use the standard methods from the Node ! * interface, such as Node.insertBefore and * Node.appendChild. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java Tue Jan 11 19:46:05 2011 *************** *** 13,57 **** package org.w3c.dom; /** ! * Each Document has a doctype attribute whose value ! * is either null or a DocumentType object. The ! * DocumentType interface in the DOM Core provides an interface ! * to the list of entities that are defined for the document, and little ! * else because the effect of namespaces and the various XML schema efforts * on DTD representation are not clearly understood as of this writing. ! *

      DOM Level 3 doesn't support editing DocumentType nodes. * DocumentType nodes are read-only. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface DocumentType extends Node { /** ! * The name of DTD; i.e., the name immediately following the * DOCTYPE keyword. */ public String getName(); /** ! * A NamedNodeMap containing the general entities, both ! * external and internal, declared in the DTD. Parameter entities are ! * not contained. Duplicates are discarded. For example in: ! *

      <!DOCTYPE 
      !      * ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar 
      !      * "bar"> <!ENTITY bar "bar2"> <!ENTITY % baz "baz"> 
             * ]> <ex/>
      ! * the interface provides access to foo ! * and the first declaration of bar but not the second ! * declaration of bar or baz. Every node in * this map also implements the Entity interface. ! *
      The DOM Level 2 does not support editing entities, therefore * entities cannot be altered in any way. */ public NamedNodeMap getEntities(); /** ! * A NamedNodeMap containing the notations declared in the ! * DTD. Duplicates are discarded. Every node in this map also implements * the Notation interface. ! *
      The DOM Level 2 does not support editing notations, therefore * notations cannot be altered in any way. */ public NamedNodeMap getNotations(); --- 13,57 ---- package org.w3c.dom; /** ! * Each Document has a doctype attribute whose value ! * is either null or a DocumentType object. The ! * DocumentType interface in the DOM Core provides an interface ! * to the list of entities that are defined for the document, and little ! * else because the effect of namespaces and the various XML schema efforts * on DTD representation are not clearly understood as of this writing. ! *

      DOM Level 3 doesn't support editing DocumentType nodes. * DocumentType nodes are read-only. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface DocumentType extends Node { /** ! * The name of DTD; i.e., the name immediately following the * DOCTYPE keyword. */ public String getName(); /** ! * A NamedNodeMap containing the general entities, both ! * external and internal, declared in the DTD. Parameter entities are ! * not contained. Duplicates are discarded. For example in: ! *

      <!DOCTYPE
      !      * ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar
      !      * "bar"> <!ENTITY bar "bar2"> <!ENTITY % baz "baz">
             * ]> <ex/>
      ! * the interface provides access to foo ! * and the first declaration of bar but not the second ! * declaration of bar or baz. Every node in * this map also implements the Entity interface. ! *
      The DOM Level 2 does not support editing entities, therefore * entities cannot be altered in any way. */ public NamedNodeMap getEntities(); /** ! * A NamedNodeMap containing the notations declared in the ! * DTD. Duplicates are discarded. Every node in this map also implements * the Notation interface. ! *
      The DOM Level 2 does not support editing notations, therefore * notations cannot be altered in any way. */ public NamedNodeMap getNotations(); *************** public interface DocumentType extends No *** 63,80 **** public String getPublicId(); /** ! * The system identifier of the external subset. This may be an absolute * URI or not. * @since DOM Level 2 */ public String getSystemId(); /** ! * The internal subset as a string, or null if there is none. * This is does not contain the delimiting square brackets. ! *

      Note: The actual content returned depends on how much ! * information is available to the implementation. This may vary ! * depending on various parameters, including the XML processor used to * build the document. * @since DOM Level 2 */ --- 63,80 ---- public String getPublicId(); /** ! * The system identifier of the external subset. This may be an absolute * URI or not. * @since DOM Level 2 */ public String getSystemId(); /** ! * The internal subset as a string, or null if there is none. * This is does not contain the delimiting square brackets. ! *

      Note: The actual content returned depends on how much ! * information is available to the implementation. This may vary ! * depending on various parameters, including the XML processor used to * build the document. * @since DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java Tue Jan 11 19:46:05 2011 *************** *** 13,45 **** package org.w3c.dom; /** ! * The Element interface represents an element in an HTML or XML ! * document. Elements may have attributes associated with them; since the ! * Element interface inherits from Node, the ! * generic Node interface attribute attributes may ! * be used to retrieve the set of all attributes for an element. There are ! * methods on the Element interface to retrieve either an ! * Attr object by name or an attribute value by name. In XML, ! * where an attribute value may contain entity references, an ! * Attr object should be retrieved to examine the possibly ! * fairly complex sub-tree representing the attribute value. On the other ! * hand, in HTML, where all attributes have simple string values, methods to * directly access an attribute value can safely be used as a convenience. ! *

      Note: In DOM Level 2, the method normalize is * inherited from the Node interface where it was moved. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Element extends Node { /** ! * The name of the element. If Node.localName is different ! * from null, this attribute is a qualified name. For ! * example, in: ! *

       <elementExample id="demo"> ... 
             * </elementExample> , 
      ! * tagName has the value ! * "elementExample". Note that this is case-preserving in ! * XML, as are all of the operations of the DOM. The HTML DOM returns ! * the tagName of an HTML element in the canonical * uppercase form, regardless of the case in the source HTML document. */ public String getTagName(); --- 13,45 ---- package org.w3c.dom; /** ! * The Element interface represents an element in an HTML or XML ! * document. Elements may have attributes associated with them; since the ! * Element interface inherits from Node, the ! * generic Node interface attribute attributes may ! * be used to retrieve the set of all attributes for an element. There are ! * methods on the Element interface to retrieve either an ! * Attr object by name or an attribute value by name. In XML, ! * where an attribute value may contain entity references, an ! * Attr object should be retrieved to examine the possibly ! * fairly complex sub-tree representing the attribute value. On the other ! * hand, in HTML, where all attributes have simple string values, methods to * directly access an attribute value can safely be used as a convenience. ! *

      Note: In DOM Level 2, the method normalize is * inherited from the Node interface where it was moved. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Element extends Node { /** ! * The name of the element. If Node.localName is different ! * from null, this attribute is a qualified name. For ! * example, in: ! *

       <elementExample id="demo"> ...
             * </elementExample> , 
      ! * tagName has the value ! * "elementExample". Note that this is case-preserving in ! * XML, as are all of the operations of the DOM. The HTML DOM returns ! * the tagName of an HTML element in the canonical * uppercase form, regardless of the case in the source HTML document. */ public String getTagName(); *************** public interface Element extends Node { *** 47,93 **** /** * Retrieves an attribute value by name. * @param name The name of the attribute to retrieve. ! * @return The Attr value as a string, or the empty string * if that attribute does not have a specified or default value. */ public String getAttribute(String name); /** ! * Adds a new attribute. If an attribute with that name is already present ! * in the element, its value is changed to be that of the value ! * parameter. This value is a simple string; it is not parsed as it is ! * being set. So any markup (such as syntax to be recognized as an ! * entity reference) is treated as literal text, and needs to be ! * appropriately escaped by the implementation when it is written out. ! * In order to assign an attribute value that contains entity ! * references, the user must create an Attr node plus any ! * Text and EntityReference nodes, build the ! * appropriate subtree, and use setAttributeNode to assign * it as the value of an attribute. ! *
      To set an attribute with a qualified name and namespace URI, use * the setAttributeNS method. * @param name The name of the attribute to create or alter. * @param value Value to set in string form. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ ! public void setAttribute(String name, String value) throws DOMException; /** ! * Removes an attribute by name. If a default value for the removed ! * attribute is defined in the DTD, a new attribute immediately appears ! * with the default value as well as the corresponding namespace URI, ! * local name, and prefix when applicable. The implementation may handle ! * default values from other schemas similarly but applications should ! * use Document.normalizeDocument() to guarantee this * information is up-to-date. *
      If no attribute with this name is found, this method has no effect. ! *
      To remove an attribute by local name and namespace URI, use the * removeAttributeNS method. * @param name The name of the attribute to remove. * @exception DOMException --- 47,93 ---- /** * Retrieves an attribute value by name. * @param name The name of the attribute to retrieve. ! * @return The Attr value as a string, or the empty string * if that attribute does not have a specified or default value. */ public String getAttribute(String name); /** ! * Adds a new attribute. If an attribute with that name is already present ! * in the element, its value is changed to be that of the value ! * parameter. This value is a simple string; it is not parsed as it is ! * being set. So any markup (such as syntax to be recognized as an ! * entity reference) is treated as literal text, and needs to be ! * appropriately escaped by the implementation when it is written out. ! * In order to assign an attribute value that contains entity ! * references, the user must create an Attr node plus any ! * Text and EntityReference nodes, build the ! * appropriate subtree, and use setAttributeNode to assign * it as the value of an attribute. ! *
      To set an attribute with a qualified name and namespace URI, use * the setAttributeNS method. * @param name The name of the attribute to create or alter. * @param value Value to set in string form. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML ! * name according to the XML version in use specified in the * Document.xmlVersion attribute. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ ! public void setAttribute(String name, String value) throws DOMException; /** ! * Removes an attribute by name. If a default value for the removed ! * attribute is defined in the DTD, a new attribute immediately appears ! * with the default value as well as the corresponding namespace URI, ! * local name, and prefix when applicable. The implementation may handle ! * default values from other schemas similarly but applications should ! * use Document.normalizeDocument() to guarantee this * information is up-to-date. *
      If no attribute with this name is found, this method has no effect. ! *
      To remove an attribute by local name and namespace URI, use the * removeAttributeNS method. * @param name The name of the attribute to remove. * @exception DOMException *************** public interface Element extends Node { *** 98,160 **** /** * Retrieves an attribute node by name. ! *
      To retrieve an attribute node by qualified name and namespace URI, * use the getAttributeNodeNS method. ! * @param name The name (nodeName) of the attribute to * retrieve. * @return The Attr node with the specified name ( ! * nodeName) or null if there is no such * attribute. */ public Attr getAttributeNode(String name); /** * Adds a new attribute node. If an attribute with that name ( ! * nodeName) is already present in the element, it is ! * replaced by the new one. Replacing an attribute node by itself has no * effect. ! *
      To add a new attribute node with a qualified name and namespace * URI, use the setAttributeNodeNS method. * @param newAttr The Attr node to add to the attribute list. ! * @return If the newAttr attribute replaces an existing ! * attribute, the replaced Attr node is returned, * otherwise null is returned. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if newAttr was created from a * different document than the one that created the element. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an ! * attribute of another Element object. The DOM user must ! * explicitly clone Attr nodes to re-use them in other * elements. */ public Attr setAttributeNode(Attr newAttr) throws DOMException; /** ! * Removes the specified attribute node. If a default value for the ! * removed Attr node is defined in the DTD, a new node ! * immediately appears with the default value as well as the ! * corresponding namespace URI, local name, and prefix when applicable. ! * The implementation may handle default values from other schemas ! * similarly but applications should use ! * Document.normalizeDocument() to guarantee this * information is up-to-date. ! * @param oldAttr The Attr node to remove from the attribute * list. * @return The Attr node that was removed. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if oldAttr is not an attribute * of the element. */ public Attr removeAttributeNode(Attr oldAttr) throws DOMException; /** ! * Returns a NodeList of all descendant Elements * with a given tag name, in document order. ! * @param name The name of the tag to match on. The special value "*" * matches all tags. * @return A list of matching Element nodes. */ --- 98,160 ---- /** * Retrieves an attribute node by name. ! *
      To retrieve an attribute node by qualified name and namespace URI, * use the getAttributeNodeNS method. ! * @param name The name (nodeName) of the attribute to * retrieve. * @return The Attr node with the specified name ( ! * nodeName) or null if there is no such * attribute. */ public Attr getAttributeNode(String name); /** * Adds a new attribute node. If an attribute with that name ( ! * nodeName) is already present in the element, it is ! * replaced by the new one. Replacing an attribute node by itself has no * effect. ! *
      To add a new attribute node with a qualified name and namespace * URI, use the setAttributeNodeNS method. * @param newAttr The Attr node to add to the attribute list. ! * @return If the newAttr attribute replaces an existing ! * attribute, the replaced Attr node is returned, * otherwise null is returned. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if newAttr was created from a * different document than the one that created the element. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an ! * attribute of another Element object. The DOM user must ! * explicitly clone Attr nodes to re-use them in other * elements. */ public Attr setAttributeNode(Attr newAttr) throws DOMException; /** ! * Removes the specified attribute node. If a default value for the ! * removed Attr node is defined in the DTD, a new node ! * immediately appears with the default value as well as the ! * corresponding namespace URI, local name, and prefix when applicable. ! * The implementation may handle default values from other schemas ! * similarly but applications should use ! * Document.normalizeDocument() to guarantee this * information is up-to-date. ! * @param oldAttr The Attr node to remove from the attribute * list. * @return The Attr node that was removed. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if oldAttr is not an attribute * of the element. */ public Attr removeAttributeNode(Attr oldAttr) throws DOMException; /** ! * Returns a NodeList of all descendant Elements * with a given tag name, in document order. ! * @param name The name of the tag to match on. The special value "*" * matches all tags. * @return A list of matching Element nodes. */ *************** public interface Element extends Node { *** 163,336 **** /** * Retrieves an attribute value by local name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to retrieve. * @param localName The local name of the attribute to retrieve. ! * @return The Attr value as a string, or the empty string * if that attribute does not have a specified or default value. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public String getAttributeNS(String namespaceURI, String localName) throws DOMException; /** ! * Adds a new attribute. If an attribute with the same local name and ! * namespace URI is already present on the element, its prefix is ! * changed to be the prefix part of the qualifiedName, and ! * its value is changed to be the value parameter. This ! * value is a simple string; it is not parsed as it is being set. So any ! * markup (such as syntax to be recognized as an entity reference) is ! * treated as literal text, and needs to be appropriately escaped by the ! * implementation when it is written out. In order to assign an ! * attribute value that contains entity references, the user must create ! * an Attr node plus any Text and ! * EntityReference nodes, build the appropriate subtree, ! * and use setAttributeNodeNS or ! * setAttributeNode to assign it as the value of an * attribute. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. ! * @param namespaceURI The namespace URI of the attribute to create or * alter. ! * @param qualifiedName The qualified name of the attribute to create or * alter. * @param value The value to set in string form. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not ! * an XML name according to the XML version in use specified in the * Document.xmlVersion attribute. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is ! * malformed per the Namespaces in XML specification, if the ! * qualifiedName has a prefix and the ! * namespaceURI is null, if the ! * qualifiedName has a prefix that is "xml" and the * namespaceURI is different from " ! * http://www.w3.org/XML/1998/namespace", if the qualifiedName or its prefix is "xmlns" and the * namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns". ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public void setAttributeNS(String namespaceURI, ! String qualifiedName, String value) throws DOMException; /** ! * Removes an attribute by local name and namespace URI. If a default ! * value for the removed attribute is defined in the DTD, a new ! * attribute immediately appears with the default value as well as the ! * corresponding namespace URI, local name, and prefix when applicable. ! * The implementation may handle default values from other schemas ! * similarly but applications should use ! * Document.normalizeDocument() to guarantee this * information is up-to-date. ! *
      If no attribute with this local name and namespace URI is found, * this method has no effect. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to remove. * @param localName The local name of the attribute to remove. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public void removeAttributeNS(String namespaceURI, String localName) throws DOMException; /** * Retrieves an Attr node by local name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to retrieve. * @param localName The local name of the attribute to retrieve. ! * @return The Attr node with the specified attribute local ! * name and namespace URI or null if there is no such * attribute. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public Attr getAttributeNodeNS(String namespaceURI, String localName) throws DOMException; /** ! * Adds a new attribute. If an attribute with that local name and that ! * namespace URI is already present in the element, it is replaced by * the new one. Replacing an attribute node by itself has no effect. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param newAttr The Attr node to add to the attribute list. ! * @return If the newAttr attribute replaces an existing ! * attribute with the same local name and namespace URI, the replaced ! * Attr node is returned, otherwise null is * returned. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if newAttr was created from a * different document than the one that created the element. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an ! * attribute of another Element object. The DOM user must ! * explicitly clone Attr nodes to re-use them in other * elements. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ public Attr setAttributeNodeNS(Attr newAttr) throws DOMException; /** ! * Returns a NodeList of all the descendant ! * Elements with a given local name and namespace URI in * document order. ! * @param namespaceURI The namespace URI of the elements to match on. The * special value "*" matches all namespaces. ! * @param localName The local name of the elements to match on. The * special value "*" matches all local names. ! * @return A new NodeList object containing all the matched * Elements. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public NodeList getElementsByTagNameNS(String namespaceURI, String localName) throws DOMException; /** ! * Returns true when an attribute with a given name is ! * specified on this element or has a default value, false * otherwise. * @param name The name of the attribute to look for. ! * @return true if an attribute with the given name is * specified on this element or has a default value, false * otherwise. * @since DOM Level 2 --- 163,336 ---- /** * Retrieves an attribute value by local name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to retrieve. * @param localName The local name of the attribute to retrieve. ! * @return The Attr value as a string, or the empty string * if that attribute does not have a specified or default value. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public String getAttributeNS(String namespaceURI, String localName) throws DOMException; /** ! * Adds a new attribute. If an attribute with the same local name and ! * namespace URI is already present on the element, its prefix is ! * changed to be the prefix part of the qualifiedName, and ! * its value is changed to be the value parameter. This ! * value is a simple string; it is not parsed as it is being set. So any ! * markup (such as syntax to be recognized as an entity reference) is ! * treated as literal text, and needs to be appropriately escaped by the ! * implementation when it is written out. In order to assign an ! * attribute value that contains entity references, the user must create ! * an Attr node plus any Text and ! * EntityReference nodes, build the appropriate subtree, ! * and use setAttributeNodeNS or ! * setAttributeNode to assign it as the value of an * attribute. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. ! * @param namespaceURI The namespace URI of the attribute to create or * alter. ! * @param qualifiedName The qualified name of the attribute to create or * alter. * @param value The value to set in string form. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not ! * an XML name according to the XML version in use specified in the * Document.xmlVersion attribute. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NAMESPACE_ERR: Raised if the qualifiedName is ! * malformed per the Namespaces in XML specification, if the ! * qualifiedName has a prefix and the ! * namespaceURI is null, if the ! * qualifiedName has a prefix that is "xml" and the * namespaceURI is different from " ! * http://www.w3.org/XML/1998/namespace", if the qualifiedName or its prefix is "xmlns" and the * namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns". ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public void setAttributeNS(String namespaceURI, ! String qualifiedName, String value) throws DOMException; /** ! * Removes an attribute by local name and namespace URI. If a default ! * value for the removed attribute is defined in the DTD, a new ! * attribute immediately appears with the default value as well as the ! * corresponding namespace URI, local name, and prefix when applicable. ! * The implementation may handle default values from other schemas ! * similarly but applications should use ! * Document.normalizeDocument() to guarantee this * information is up-to-date. ! *
      If no attribute with this local name and namespace URI is found, * this method has no effect. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to remove. * @param localName The local name of the attribute to remove. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public void removeAttributeNS(String namespaceURI, String localName) throws DOMException; /** * Retrieves an Attr node by local name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to retrieve. * @param localName The local name of the attribute to retrieve. ! * @return The Attr node with the specified attribute local ! * name and namespace URI or null if there is no such * attribute. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public Attr getAttributeNodeNS(String namespaceURI, String localName) throws DOMException; /** ! * Adds a new attribute. If an attribute with that local name and that ! * namespace URI is already present in the element, it is replaced by * the new one. Replacing an attribute node by itself has no effect. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param newAttr The Attr node to add to the attribute list. ! * @return If the newAttr attribute replaces an existing ! * attribute with the same local name and namespace URI, the replaced ! * Attr node is returned, otherwise null is * returned. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if newAttr was created from a * different document than the one that created the element. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an ! * attribute of another Element object. The DOM user must ! * explicitly clone Attr nodes to re-use them in other * elements. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ public Attr setAttributeNodeNS(Attr newAttr) throws DOMException; /** ! * Returns a NodeList of all the descendant ! * Elements with a given local name and namespace URI in * document order. ! * @param namespaceURI The namespace URI of the elements to match on. The * special value "*" matches all namespaces. ! * @param localName The local name of the elements to match on. The * special value "*" matches all local names. ! * @return A new NodeList object containing all the matched * Elements. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public NodeList getElementsByTagNameNS(String namespaceURI, String localName) throws DOMException; /** ! * Returns true when an attribute with a given name is ! * specified on this element or has a default value, false * otherwise. * @param name The name of the attribute to look for. ! * @return true if an attribute with the given name is * specified on this element or has a default value, false * otherwise. * @since DOM Level 2 *************** public interface Element extends Node { *** 338,438 **** public boolean hasAttribute(String name); /** ! * Returns true when an attribute with a given local name and ! * namespace URI is specified on this element or has a default value, * false otherwise. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to look for. * @param localName The local name of the attribute to look for. ! * @return true if an attribute with the given local name ! * and namespace URI is specified or has a default value on this * element, false otherwise. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public boolean hasAttributeNS(String namespaceURI, String localName) throws DOMException; /** ! * The type information associated with this element. * @since DOM Level 3 */ public TypeInfo getSchemaTypeInfo(); /** ! * If the parameter isId is true, this method * declares the specified attribute to be a user-determined ID attribute ! * . This affects the value of Attr.isId and the behavior ! * of Document.getElementById, but does not change any ! * schema that may be in use, in particular this does not affect the ! * Attr.schemaTypeInfo of the specified Attr ! * node. Use the value false for the parameter ! * isId to undeclare an attribute for being a ! * user-determined ID attribute. ! *
      To specify an attribute by local name and namespace URI, use the ! * setIdAttributeNS method. * @param name The name of the attribute. * @param isId Whether the attribute is a of type ID. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if the specified node is not an attribute * of this element. * @since DOM Level 3 */ ! public void setIdAttribute(String name, boolean isId) throws DOMException; /** ! * If the parameter isId is true, this method * declares the specified attribute to be a user-determined ID attribute ! * . This affects the value of Attr.isId and the behavior ! * of Document.getElementById, but does not change any ! * schema that may be in use, in particular this does not affect the ! * Attr.schemaTypeInfo of the specified Attr ! * node. Use the value false for the parameter ! * isId to undeclare an attribute for being a ! * user-determined ID attribute. * @param namespaceURI The namespace URI of the attribute. * @param localName The local name of the attribute. * @param isId Whether the attribute is a of type ID. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if the specified node is not an attribute * of this element. * @since DOM Level 3 */ ! public void setIdAttributeNS(String namespaceURI, ! String localName, boolean isId) throws DOMException; /** ! * If the parameter isId is true, this method * declares the specified attribute to be a user-determined ID attribute ! * . This affects the value of Attr.isId and the behavior ! * of Document.getElementById, but does not change any ! * schema that may be in use, in particular this does not affect the ! * Attr.schemaTypeInfo of the specified Attr ! * node. Use the value false for the parameter ! * isId to undeclare an attribute for being a ! * user-determined ID attribute. * @param idAttr The attribute node. * @param isId Whether the attribute is a of type ID. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if the specified node is not an attribute * of this element. * @since DOM Level 3 */ ! public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException; --- 338,438 ---- public boolean hasAttribute(String name); /** ! * Returns true when an attribute with a given local name and ! * namespace URI is specified on this element or has a default value, * false otherwise. *
      Per [XML Namespaces] ! * , applications must use the value null as the ! * namespaceURI parameter for methods if they wish to have * no namespace. * @param namespaceURI The namespace URI of the attribute to look for. * @param localName The local name of the attribute to look for. ! * @return true if an attribute with the given local name ! * and namespace URI is specified or has a default value on this * element, false otherwise. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed ! * through the Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public boolean hasAttributeNS(String namespaceURI, String localName) throws DOMException; /** ! * The type information associated with this element. * @since DOM Level 3 */ public TypeInfo getSchemaTypeInfo(); /** ! * If the parameter isId is true, this method * declares the specified attribute to be a user-determined ID attribute ! * . This affects the value of Attr.isId and the behavior ! * of Document.getElementById, but does not change any ! * schema that may be in use, in particular this does not affect the ! * Attr.schemaTypeInfo of the specified Attr ! * node. Use the value false for the parameter ! * isId to undeclare an attribute for being a ! * user-determined ID attribute. ! *
      To specify an attribute by local name and namespace URI, use the ! * setIdAttributeNS method. * @param name The name of the attribute. * @param isId Whether the attribute is a of type ID. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if the specified node is not an attribute * of this element. * @since DOM Level 3 */ ! public void setIdAttribute(String name, boolean isId) throws DOMException; /** ! * If the parameter isId is true, this method * declares the specified attribute to be a user-determined ID attribute ! * . This affects the value of Attr.isId and the behavior ! * of Document.getElementById, but does not change any ! * schema that may be in use, in particular this does not affect the ! * Attr.schemaTypeInfo of the specified Attr ! * node. Use the value false for the parameter ! * isId to undeclare an attribute for being a ! * user-determined ID attribute. * @param namespaceURI The namespace URI of the attribute. * @param localName The local name of the attribute. * @param isId Whether the attribute is a of type ID. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if the specified node is not an attribute * of this element. * @since DOM Level 3 */ ! public void setIdAttributeNS(String namespaceURI, ! String localName, boolean isId) throws DOMException; /** ! * If the parameter isId is true, this method * declares the specified attribute to be a user-determined ID attribute ! * . This affects the value of Attr.isId and the behavior ! * of Document.getElementById, but does not change any ! * schema that may be in use, in particular this does not affect the ! * Attr.schemaTypeInfo of the specified Attr ! * node. Use the value false for the parameter ! * isId to undeclare an attribute for being a ! * user-determined ID attribute. * @param idAttr The attribute node. * @param isId Whether the attribute is a of type ID. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if the specified node is not an attribute * of this element. * @since DOM Level 3 */ ! public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Entity.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Entity.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Entity.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Entity.java Tue Jan 11 19:46:05 2011 *************** *** 13,87 **** package org.w3c.dom; /** ! * This interface represents a known entity, either parsed or unparsed, in an * XML document. Note that this models the entity itself not the entity declaration. ! *

      The nodeName attribute that is inherited from * Node contains the name of the entity. ! *

      An XML processor may choose to completely expand entities before the ! * structure model is passed to the DOM; in this case there will be no * EntityReference nodes in the document tree. ! *

      XML does not mandate that a non-validating XML processor read and ! * process entity declarations made in the external subset or declared in ! * parameter entities. This means that parsed entities declared in the ! * external subset need not be expanded by some classes of applications, and * that the replacement text of the entity may not be available. When the ! * replacement text is available, the corresponding Entity node's child list ! * represents the structure of that replacement value. Otherwise, the child * list is empty. ! *

      DOM Level 3 does not support editing Entity nodes; if a ! * user wants to make changes to the contents of an Entity, ! * every related EntityReference node has to be replaced in the ! * structure model by a clone of the Entity's contents, and ! * then the desired changes must be made to each of those clones instead. * Entity nodes and all their descendants are readonly. *

      An Entity node does not have any parent. ! *

      Note: If the entity contains an unbound namespace prefix, the ! * namespaceURI of the corresponding node in the ! * Entity node subtree is null. The same is true ! * for EntityReference nodes that refer to this entity, when ! * they are created using the createEntityReference method of * the Document interface. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Entity extends Node { /** ! * The public identifier associated with the entity if specified, and * null otherwise. */ public String getPublicId(); /** ! * The system identifier associated with the entity if specified, and * null otherwise. This may be an absolute URI or not. */ public String getSystemId(); /** ! * For unparsed entities, the name of the notation for the entity. For * parsed entities, this is null. */ public String getNotationName(); /** ! * An attribute specifying the encoding used for this entity at the time ! * of parsing, when it is an external parsed entity. This is ! * null if it an entity from the internal subset or if it * is not known. * @since DOM Level 3 */ public String getInputEncoding(); /** ! * An attribute specifying, as part of the text declaration, the encoding ! * of this entity, when it is an external parsed entity. This is * null otherwise. * @since DOM Level 3 */ public String getXmlEncoding(); /** ! * An attribute specifying, as part of the text declaration, the version ! * number of this entity, when it is an external parsed entity. This is * null otherwise. * @since DOM Level 3 */ --- 13,87 ---- package org.w3c.dom; /** ! * This interface represents a known entity, either parsed or unparsed, in an * XML document. Note that this models the entity itself not the entity declaration. ! *

      The nodeName attribute that is inherited from * Node contains the name of the entity. ! *

      An XML processor may choose to completely expand entities before the ! * structure model is passed to the DOM; in this case there will be no * EntityReference nodes in the document tree. ! *

      XML does not mandate that a non-validating XML processor read and ! * process entity declarations made in the external subset or declared in ! * parameter entities. This means that parsed entities declared in the ! * external subset need not be expanded by some classes of applications, and * that the replacement text of the entity may not be available. When the ! * replacement text is available, the corresponding Entity node's child list ! * represents the structure of that replacement value. Otherwise, the child * list is empty. ! *

      DOM Level 3 does not support editing Entity nodes; if a ! * user wants to make changes to the contents of an Entity, ! * every related EntityReference node has to be replaced in the ! * structure model by a clone of the Entity's contents, and ! * then the desired changes must be made to each of those clones instead. * Entity nodes and all their descendants are readonly. *

      An Entity node does not have any parent. ! *

      Note: If the entity contains an unbound namespace prefix, the ! * namespaceURI of the corresponding node in the ! * Entity node subtree is null. The same is true ! * for EntityReference nodes that refer to this entity, when ! * they are created using the createEntityReference method of * the Document interface. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Entity extends Node { /** ! * The public identifier associated with the entity if specified, and * null otherwise. */ public String getPublicId(); /** ! * The system identifier associated with the entity if specified, and * null otherwise. This may be an absolute URI or not. */ public String getSystemId(); /** ! * For unparsed entities, the name of the notation for the entity. For * parsed entities, this is null. */ public String getNotationName(); /** ! * An attribute specifying the encoding used for this entity at the time ! * of parsing, when it is an external parsed entity. This is ! * null if it an entity from the internal subset or if it * is not known. * @since DOM Level 3 */ public String getInputEncoding(); /** ! * An attribute specifying, as part of the text declaration, the encoding ! * of this entity, when it is an external parsed entity. This is * null otherwise. * @since DOM Level 3 */ public String getXmlEncoding(); /** ! * An attribute specifying, as part of the text declaration, the version ! * number of this entity, when it is an external parsed entity. This is * null otherwise. * @since DOM Level 3 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java Tue Jan 11 19:46:05 2011 *************** *** 13,41 **** package org.w3c.dom; /** ! * EntityReference nodes may be used to represent an entity ! * reference in the tree. Note that character references and references to ! * predefined entities are considered to be expanded by the HTML or XML ! * processor so that characters are represented by their Unicode equivalent ! * rather than by an entity reference. Moreover, the XML processor may ! * completely expand references to entities while building the ! * Document, instead of providing EntityReference ! * nodes. If it does provide such nodes, then for an ! * EntityReference node that represents a reference to a known ! * entity an Entity exists, and the subtree of the ! * EntityReference node is a copy of the Entity ! * node subtree. However, the latter may not be true when an entity contains ! * an unbound namespace prefix. In such a case, because the namespace prefix ! * resolution depends on where the entity reference is, the descendants of ! * the EntityReference node may be bound to different namespace ! * URIs. When an EntityReference node represents a reference to ! * an unknown entity, the node has no children and its replacement value, * when used by Attr.value for example, is empty. ! *

      As for Entity nodes, EntityReference nodes and * all their descendants are readonly. ! *

      Note: EntityReference nodes may cause element ! * content and attribute value normalization problems when, such as in XML ! * 1.0 and XML Schema, the normalization is performed after entity reference * are expanded. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ --- 13,41 ---- package org.w3c.dom; /** ! * EntityReference nodes may be used to represent an entity ! * reference in the tree. Note that character references and references to ! * predefined entities are considered to be expanded by the HTML or XML ! * processor so that characters are represented by their Unicode equivalent ! * rather than by an entity reference. Moreover, the XML processor may ! * completely expand references to entities while building the ! * Document, instead of providing EntityReference ! * nodes. If it does provide such nodes, then for an ! * EntityReference node that represents a reference to a known ! * entity an Entity exists, and the subtree of the ! * EntityReference node is a copy of the Entity ! * node subtree. However, the latter may not be true when an entity contains ! * an unbound namespace prefix. In such a case, because the namespace prefix ! * resolution depends on where the entity reference is, the descendants of ! * the EntityReference node may be bound to different namespace ! * URIs. When an EntityReference node represents a reference to ! * an unknown entity, the node has no children and its replacement value, * when used by Attr.value for example, is empty. ! *

      As for Entity nodes, EntityReference nodes and * all their descendants are readonly. ! *

      Note: EntityReference nodes may cause element ! * content and attribute value normalization problems when, such as in XML ! * 1.0 and XML Schema, the normalization is performed after entity reference * are expanded. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java Tue Jan 11 19:46:05 2011 *************** *** 13,68 **** package org.w3c.dom; /** ! * The NameList interface provides the abstraction of an ordered ! * collection of parallel pairs of name and namespace values (which could be ! * null values), without defining or constraining how this collection is ! * implemented. The items in the NameList are accessible via an ! * integral index, starting from 0. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface NameList { /** ! * Returns the indexth name item in the collection. * @param index Index into the collection. ! * @return The name at the indexth position in the ! * NameList, or null if there is no name for ! * the specified index or if the index is out of range. */ public String getName(int index); /** ! * Returns the indexth namespaceURI item in the collection. * @param index Index into the collection. ! * @return The namespace URI at the indexth position in the ! * NameList, or null if there is no name for ! * the specified index or if the index is out of range. */ public String getNamespaceURI(int index); /** ! * The number of pairs (name and namespaceURI) in the list. The range of ! * valid child node indices is 0 to length-1 inclusive. */ public int getLength(); /** ! * Test if a name is part of this NameList. ! * @param str The name to look for. ! * @return true if the name has been found, ! * false otherwise. */ public boolean contains(String str); /** ! * Test if the pair namespaceURI/name is part of this ! * NameList. ! * @param namespaceURI The namespace URI to look for. ! * @param name The name to look for. ! * @return true if the pair namespaceURI/name has been ! * found, false otherwise. */ ! public boolean containsNS(String namespaceURI, String name); } --- 13,68 ---- package org.w3c.dom; /** ! * The NameList interface provides the abstraction of an ordered ! * collection of parallel pairs of name and namespace values (which could be ! * null values), without defining or constraining how this collection is ! * implemented. The items in the NameList are accessible via an ! * integral index, starting from 0. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface NameList { /** ! * Returns the indexth name item in the collection. * @param index Index into the collection. ! * @return The name at the indexth position in the ! * NameList, or null if there is no name for ! * the specified index or if the index is out of range. */ public String getName(int index); /** ! * Returns the indexth namespaceURI item in the collection. * @param index Index into the collection. ! * @return The namespace URI at the indexth position in the ! * NameList, or null if there is no name for ! * the specified index or if the index is out of range. */ public String getNamespaceURI(int index); /** ! * The number of pairs (name and namespaceURI) in the list. The range of ! * valid child node indices is 0 to length-1 inclusive. */ public int getLength(); /** ! * Test if a name is part of this NameList. ! * @param str The name to look for. ! * @return true if the name has been found, ! * false otherwise. */ public boolean contains(String str); /** ! * Test if the pair namespaceURI/name is part of this ! * NameList. ! * @param namespaceURI The namespace URI to look for. ! * @param name The name to look for. ! * @return true if the pair namespaceURI/name has been ! * found, false otherwise. */ ! public boolean containsNS(String namespaceURI, String name); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java Tue Jan 11 19:46:05 2011 *************** *** 13,26 **** package org.w3c.dom; /** ! * Objects implementing the NamedNodeMap interface are used to ! * represent collections of nodes that can be accessed by name. Note that ! * NamedNodeMap does not inherit from NodeList; ! * NamedNodeMaps are not maintained in any particular order. ! * Objects contained in an object implementing NamedNodeMap may ! * also be accessed by an ordinal index, but this is simply to allow ! * convenient enumeration of the contents of a NamedNodeMap, ! * and does not imply that the DOM specifies an order to these Nodes. *

      NamedNodeMap objects in the DOM are live. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ --- 13,26 ---- package org.w3c.dom; /** ! * Objects implementing the NamedNodeMap interface are used to ! * represent collections of nodes that can be accessed by name. Note that ! * NamedNodeMap does not inherit from NodeList; ! * NamedNodeMaps are not maintained in any particular order. ! * Objects contained in an object implementing NamedNodeMap may ! * also be accessed by an ordinal index, but this is simply to allow ! * convenient enumeration of the contents of a NamedNodeMap, ! * and does not imply that the DOM specifies an order to these Nodes. *

      NamedNodeMap objects in the DOM are live. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ *************** public interface NamedNodeMap { *** 28,81 **** /** * Retrieves a node specified by name. * @param name The nodeName of a node to retrieve. ! * @return A Node (of any type) with the specified ! * nodeName, or null if it does not identify * any node in this map. */ public Node getNamedItem(String name); /** ! * Adds a node using its nodeName attribute. If a node with ! * that name is already present in this map, it is replaced by the new * one. Replacing a node by itself has no effect. ! *
      As the nodeName attribute is used to derive the name ! * which the node must be stored under, multiple nodes of certain types ! * (those that have a "special" string value) cannot be stored as the ! * names would clash. This is seen as preferable to allowing nodes to be * aliased. ! * @param arg A node to store in this map. The node will later be * accessible using the value of its nodeName attribute. ! * @return If the new Node replaces an existing node the ! * replaced Node is returned, otherwise null * is returned. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if arg was created from a * different document than the one that created this map. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. ! *
      INUSE_ATTRIBUTE_ERR: Raised if arg is an ! * Attr that is already an attribute of another ! * Element object. The DOM user must explicitly clone * Attr nodes to re-use them in other elements. ! *
      HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node ! * doesn't belong in this NamedNodeMap. Examples would include trying ! * to insert something other than an Attr node into an Element's map ! * of attributes, or a non-Entity node into the DocumentType's map of * Entities. */ public Node setNamedItem(Node arg) throws DOMException; /** ! * Removes a node specified by name. When this map contains the attributes ! * attached to an element, if the removed attribute is known to have a ! * default value, an attribute immediately appears containing the ! * default value as well as the corresponding namespace URI, local name, * and prefix when applicable. * @param name The nodeName of the node to remove. ! * @return The node removed from this map if a node with such a name * exists. * @exception DOMException ! * NOT_FOUND_ERR: Raised if there is no node named name in * this map. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. */ --- 28,81 ---- /** * Retrieves a node specified by name. * @param name The nodeName of a node to retrieve. ! * @return A Node (of any type) with the specified ! * nodeName, or null if it does not identify * any node in this map. */ public Node getNamedItem(String name); /** ! * Adds a node using its nodeName attribute. If a node with ! * that name is already present in this map, it is replaced by the new * one. Replacing a node by itself has no effect. ! *
      As the nodeName attribute is used to derive the name ! * which the node must be stored under, multiple nodes of certain types ! * (those that have a "special" string value) cannot be stored as the ! * names would clash. This is seen as preferable to allowing nodes to be * aliased. ! * @param arg A node to store in this map. The node will later be * accessible using the value of its nodeName attribute. ! * @return If the new Node replaces an existing node the ! * replaced Node is returned, otherwise null * is returned. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if arg was created from a * different document than the one that created this map. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. ! *
      INUSE_ATTRIBUTE_ERR: Raised if arg is an ! * Attr that is already an attribute of another ! * Element object. The DOM user must explicitly clone * Attr nodes to re-use them in other elements. ! *
      HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node ! * doesn't belong in this NamedNodeMap. Examples would include trying ! * to insert something other than an Attr node into an Element's map ! * of attributes, or a non-Entity node into the DocumentType's map of * Entities. */ public Node setNamedItem(Node arg) throws DOMException; /** ! * Removes a node specified by name. When this map contains the attributes ! * attached to an element, if the removed attribute is known to have a ! * default value, an attribute immediately appears containing the ! * default value as well as the corresponding namespace URI, local name, * and prefix when applicable. * @param name The nodeName of the node to remove. ! * @return The node removed from this map if a node with such a name * exists. * @exception DOMException ! * NOT_FOUND_ERR: Raised if there is no node named name in * this map. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. */ *************** public interface NamedNodeMap { *** 83,99 **** throws DOMException; /** ! * Returns the indexth item in the map. If index ! * is greater than or equal to the number of nodes in this map, this * returns null. * @param index Index into this map. ! * @return The node at the indexth position in the map, or * null if that is not a valid index. */ public Node item(int index); /** ! * The number of nodes in this map. The range of valid child node indices * is 0 to length-1 inclusive. */ public int getLength(); --- 83,99 ---- throws DOMException; /** ! * Returns the indexth item in the map. If index ! * is greater than or equal to the number of nodes in this map, this * returns null. * @param index Index into this map. ! * @return The node at the indexth position in the map, or * null if that is not a valid index. */ public Node item(int index); /** ! * The number of nodes in this map. The range of valid child node indices * is 0 to length-1 inclusive. */ public int getLength(); *************** public interface NamedNodeMap { *** 101,182 **** /** * Retrieves a node specified by local name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the namespaceURI parameter * for methods if they wish to have no namespace. * @param namespaceURI The namespace URI of the node to retrieve. * @param localName The local name of the node to retrieve. ! * @return A Node (of any type) with the specified local ! * name and namespace URI, or null if they do not * identify any node in this map. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public Node getNamedItemNS(String namespaceURI, String localName) throws DOMException; /** ! * Adds a node using its namespaceURI and ! * localName. If a node with that namespace URI and that ! * local name is already present in this map, it is replaced by the new * one. Replacing a node by itself has no effect. *
      Per [XML Namespaces] ! * , applications must use the value null as the namespaceURI parameter * for methods if they wish to have no namespace. ! * @param arg A node to store in this map. The node will later be ! * accessible using the value of its namespaceURI and * localName attributes. ! * @return If the new Node replaces an existing node the ! * replaced Node is returned, otherwise null * is returned. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if arg was created from a * different document than the one that created this map. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. ! *
      INUSE_ATTRIBUTE_ERR: Raised if arg is an ! * Attr that is already an attribute of another ! * Element object. The DOM user must explicitly clone * Attr nodes to re-use them in other elements. ! *
      HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node ! * doesn't belong in this NamedNodeMap. Examples would include trying ! * to insert something other than an Attr node into an Element's map ! * of attributes, or a non-Entity node into the DocumentType's map of * Entities. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ public Node setNamedItemNS(Node arg) throws DOMException; /** ! * Removes a node specified by local name and namespace URI. A removed ! * attribute may be known to have a default value when this map contains ! * the attributes attached to an element, as returned by the attributes ! * attribute of the Node interface. If so, an attribute ! * immediately appears containing the default value as well as the * corresponding namespace URI, local name, and prefix when applicable. *
      Per [XML Namespaces] ! * , applications must use the value null as the namespaceURI parameter * for methods if they wish to have no namespace. * @param namespaceURI The namespace URI of the node to remove. * @param localName The local name of the node to remove. ! * @return The node removed from this map if a node with such a local * name and namespace URI exists. * @exception DOMException ! * NOT_FOUND_ERR: Raised if there is no node with the specified * namespaceURI and localName in this map. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public Node removeNamedItemNS(String namespaceURI, String localName) throws DOMException; --- 101,182 ---- /** * Retrieves a node specified by local name and namespace URI. *
      Per [XML Namespaces] ! * , applications must use the value null as the namespaceURI parameter * for methods if they wish to have no namespace. * @param namespaceURI The namespace URI of the node to retrieve. * @param localName The local name of the node to retrieve. ! * @return A Node (of any type) with the specified local ! * name and namespace URI, or null if they do not * identify any node in this map. * @exception DOMException ! * NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public Node getNamedItemNS(String namespaceURI, String localName) throws DOMException; /** ! * Adds a node using its namespaceURI and ! * localName. If a node with that namespace URI and that ! * local name is already present in this map, it is replaced by the new * one. Replacing a node by itself has no effect. *
      Per [XML Namespaces] ! * , applications must use the value null as the namespaceURI parameter * for methods if they wish to have no namespace. ! * @param arg A node to store in this map. The node will later be ! * accessible using the value of its namespaceURI and * localName attributes. ! * @return If the new Node replaces an existing node the ! * replaced Node is returned, otherwise null * is returned. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if arg was created from a * different document than the one that created this map. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. ! *
      INUSE_ATTRIBUTE_ERR: Raised if arg is an ! * Attr that is already an attribute of another ! * Element object. The DOM user must explicitly clone * Attr nodes to re-use them in other elements. ! *
      HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node ! * doesn't belong in this NamedNodeMap. Examples would include trying ! * to insert something other than an Attr node into an Element's map ! * of attributes, or a non-Entity node into the DocumentType's map of * Entities. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ public Node setNamedItemNS(Node arg) throws DOMException; /** ! * Removes a node specified by local name and namespace URI. A removed ! * attribute may be known to have a default value when this map contains ! * the attributes attached to an element, as returned by the attributes ! * attribute of the Node interface. If so, an attribute ! * immediately appears containing the default value as well as the * corresponding namespace URI, local name, and prefix when applicable. *
      Per [XML Namespaces] ! * , applications must use the value null as the namespaceURI parameter * for methods if they wish to have no namespace. * @param namespaceURI The namespace URI of the node to remove. * @param localName The local name of the node to remove. ! * @return The node removed from this map if a node with such a local * name and namespace URI exists. * @exception DOMException ! * NOT_FOUND_ERR: Raised if there is no node with the specified * namespaceURI and localName in this map. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly. ! *
      NOT_SUPPORTED_ERR: May be raised if the implementation does not ! * support the feature "XML" and the language exposed through the ! * Document does not support XML Namespaces (such as [HTML 4.01]). * @since DOM Level 2 */ ! public Node removeNamedItemNS(String namespaceURI, String localName) throws DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java Tue Jan 11 19:46:05 2011 *************** *** 13,37 **** package org.w3c.dom; /** ! * The Node interface is the primary datatype for the entire ! * Document Object Model. It represents a single node in the document tree. ! * While all objects implementing the Node interface expose ! * methods for dealing with children, not all objects implementing the ! * Node interface may have children. For example, ! * Text nodes may not have children, and adding children to * such nodes results in a DOMException being raised. ! *

      The attributes nodeName, nodeValue and ! * attributes are included as a mechanism to get at node ! * information without casting down to the specific derived interface. In ! * cases where there is no obvious mapping of these attributes for a ! * specific nodeType (e.g., nodeValue for an * Element or attributes for a Comment ! * ), this returns null. Note that the specialized interfaces ! * may contain additional and more convenient mechanisms to get and set the * relevant information. ! *

      The values of nodeName, ! * nodeValue, and attributes vary according to the ! * node type as follows: * * * --- 13,37 ---- package org.w3c.dom; /** ! * The Node interface is the primary datatype for the entire ! * Document Object Model. It represents a single node in the document tree. ! * While all objects implementing the Node interface expose ! * methods for dealing with children, not all objects implementing the ! * Node interface may have children. For example, ! * Text nodes may not have children, and adding children to * such nodes results in a DOMException being raised. ! *

      The attributes nodeName, nodeValue and ! * attributes are included as a mechanism to get at node ! * information without casting down to the specific derived interface. In ! * cases where there is no obvious mapping of these attributes for a ! * specific nodeType (e.g., nodeValue for an * Element or attributes for a Comment ! * ), this returns null. Note that the specialized interfaces ! * may contain additional and more convenient mechanisms to get and set the * relevant information. ! *

      The values of nodeName, ! * nodeValue, and attributes vary according to the ! * node type as follows: *

      Interface
      * * *************** package org.w3c.dom; *** 43,49 **** * * ! * * * --- 43,49 ---- * * ! * * * *************** package org.w3c.dom; *** 51,57 **** * * ! * * * --- 51,57 ---- * * ! * * * *************** package org.w3c.dom; *** 59,65 **** * * ! * * * --- 59,65 ---- * * ! * * * *************** package org.w3c.dom; *** 80,86 **** * * * ! * * * --- 80,86 ---- * * * ! * * * *************** package org.w3c.dom; *** 116,124 **** * * * ! * ! * * * --- 116,124 ---- * * * ! * ! * * * *************** package org.w3c.dom; *** 126,136 **** * * ! * * * ! *
      Interface * Attrsame as Attr.namesame as * Attr.valuenull
      * Attrsame as Attr.namesame as * Attr.valuenull
      CDATASection * "#cdata-section"same as CharacterData.data, the * content of the CDATA Sectionnull
      CDATASection * "#cdata-section"same as CharacterData.data, the * content of the CDATA Sectionnull
      Comment * "#comment"same as CharacterData.data, the * content of the commentnull
      Comment * "#comment"same as CharacterData.data, the * content of the commentnull
      DocumentTypesame as * DocumentType.namenullnull
      DocumentTypesame as * DocumentType.namenullnull
      ProcessingInstructionsame * as ProcessingInstruction.targetsame as * ProcessingInstruction.datanull
      ProcessingInstructionsame * as ProcessingInstruction.targetsame as * ProcessingInstruction.datanull
      Text * "#text"same as CharacterData.data, the content * of the text nodenull
      *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Node { --- 126,136 ---- * Text * * "#text" ! * same as CharacterData.data, the content * of the text node * null * ! * *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Node { *************** public interface Node { *** 190,211 **** public String getNodeName(); /** ! * The value of this node, depending on its type; see the table above. ! * When it is defined to be null, setting it has no effect, * including if the node is read-only. * @exception DOMException ! * DOMSTRING_SIZE_ERR: Raised when it would return more characters than ! * fit in a DOMString variable on the implementation * platform. */ public String getNodeValue() throws DOMException; /** ! * The value of this node, depending on its type; see the table above. ! * When it is defined to be null, setting it has no effect, * including if the node is read-only. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if * it is not defined to be null. */ public void setNodeValue(String nodeValue) --- 190,211 ---- public String getNodeName(); /** ! * The value of this node, depending on its type; see the table above. ! * When it is defined to be null, setting it has no effect, * including if the node is read-only. * @exception DOMException ! * DOMSTRING_SIZE_ERR: Raised when it would return more characters than ! * fit in a DOMString variable on the implementation * platform. */ public String getNodeValue() throws DOMException; /** ! * The value of this node, depending on its type; see the table above. ! * When it is defined to be null, setting it has no effect, * including if the node is read-only. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if * it is not defined to be null. */ public void setNodeValue(String nodeValue) *************** public interface Node { *** 217,364 **** public short getNodeType(); /** ! * The parent of this node. All nodes, except Attr, ! * Document, DocumentFragment, ! * Entity, and Notation may have a parent. ! * However, if a node has just been created and not yet added to the ! * tree, or if it has been removed from the tree, this is ! * null. */ public Node getParentNode(); /** ! * A NodeList that contains all children of this node. If ! * there are no children, this is a NodeList containing no * nodes. */ public NodeList getChildNodes(); /** ! * The first child of this node. If there is no such node, this returns * null. */ public Node getFirstChild(); /** ! * The last child of this node. If there is no such node, this returns * null. */ public Node getLastChild(); /** ! * The node immediately preceding this node. If there is no such node, * this returns null. */ public Node getPreviousSibling(); /** ! * The node immediately following this node. If there is no such node, * this returns null. */ public Node getNextSibling(); /** ! * A NamedNodeMap containing the attributes of this node (if * it is an Element) or null otherwise. */ public NamedNodeMap getAttributes(); /** ! * The Document object associated with this node. This is ! * also the Document object used to create new nodes. When ! * this node is a Document or a DocumentType ! * which is not used with any Document yet, this is * null. * @version DOM Level 2 */ public Document getOwnerDocument(); /** ! * Inserts the node newChild before the existing child node ! * refChild. If refChild is null, * insert newChild at the end of the list of children. ! *
      If newChild is a DocumentFragment object, ! * all of its children are inserted, in the same order, before ! * refChild. If the newChild is already in the * tree, it is first removed. ! *

      Note: Inserting a node before itself is implementation ! * dependent. * @param newChild The node to insert. ! * @param refChild The reference node, i.e., the node before which the * new node must be inserted. * @return The node being inserted. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not ! * allow children of the type of the newChild node, or if ! * the node to insert is one of this node's ancestors or this node ! * itself, or if this node is of type Document and the ! * DOM application attempts to insert a second * DocumentType or Element node. ! *
      WRONG_DOCUMENT_ERR: Raised if newChild was created * from a different document than the one that created this node. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or * if the parent of the node being inserted is readonly. ! *
      NOT_FOUND_ERR: Raised if refChild is not a child of * this node. ! *
      NOT_SUPPORTED_ERR: if this node is of type Document, ! * this exception might be raised if the DOM implementation doesn't ! * support the insertion of a DocumentType or * Element node. * @version DOM Level 3 */ ! public Node insertBefore(Node newChild, Node refChild) throws DOMException; /** * Replaces the child node oldChild with newChild * in the list of children, and returns the oldChild node. ! *
      If newChild is a DocumentFragment object, ! * oldChild is replaced by all of the ! * DocumentFragment children, which are inserted in the ! * same order. If the newChild is already in the tree, it * is first removed. ! *

      Note: Replacing a node with itself is implementation ! * dependent. * @param newChild The new node to put in the child list. * @param oldChild The node being replaced in the list. * @return The node replaced. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not ! * allow children of the type of the newChild node, or if ! * the node to put in is one of this node's ancestors or this node ! * itself, or if this node is of type Document and the ! * result of the replacement operation would add a second ! * DocumentType or Element on the * Document node. ! *
      WRONG_DOCUMENT_ERR: Raised if newChild was created * from a different document than the one that created this node. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent of * the new node is readonly. ! *
      NOT_FOUND_ERR: Raised if oldChild is not a child of * this node. ! *
      NOT_SUPPORTED_ERR: if this node is of type Document, ! * this exception might be raised if the DOM implementation doesn't ! * support the replacement of the DocumentType child or * Element child. * @version DOM Level 3 */ ! public Node replaceChild(Node newChild, Node oldChild) throws DOMException; /** ! * Removes the child node indicated by oldChild from the list * of children, and returns it. * @param oldChild The node being removed. * @return The node removed. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if oldChild is not a child of * this node. ! *
      NOT_SUPPORTED_ERR: if this node is of type Document, ! * this exception might be raised if the DOM implementation doesn't ! * support the removal of the DocumentType child or the * Element child. * @version DOM Level 3 */ --- 217,364 ---- public short getNodeType(); /** ! * The parent of this node. All nodes, except Attr, ! * Document, DocumentFragment, ! * Entity, and Notation may have a parent. ! * However, if a node has just been created and not yet added to the ! * tree, or if it has been removed from the tree, this is ! * null. */ public Node getParentNode(); /** ! * A NodeList that contains all children of this node. If ! * there are no children, this is a NodeList containing no * nodes. */ public NodeList getChildNodes(); /** ! * The first child of this node. If there is no such node, this returns * null. */ public Node getFirstChild(); /** ! * The last child of this node. If there is no such node, this returns * null. */ public Node getLastChild(); /** ! * The node immediately preceding this node. If there is no such node, * this returns null. */ public Node getPreviousSibling(); /** ! * The node immediately following this node. If there is no such node, * this returns null. */ public Node getNextSibling(); /** ! * A NamedNodeMap containing the attributes of this node (if * it is an Element) or null otherwise. */ public NamedNodeMap getAttributes(); /** ! * The Document object associated with this node. This is ! * also the Document object used to create new nodes. When ! * this node is a Document or a DocumentType ! * which is not used with any Document yet, this is * null. * @version DOM Level 2 */ public Document getOwnerDocument(); /** ! * Inserts the node newChild before the existing child node ! * refChild. If refChild is null, * insert newChild at the end of the list of children. ! *
      If newChild is a DocumentFragment object, ! * all of its children are inserted, in the same order, before ! * refChild. If the newChild is already in the * tree, it is first removed. ! *

      Note: Inserting a node before itself is implementation ! * dependent. * @param newChild The node to insert. ! * @param refChild The reference node, i.e., the node before which the * new node must be inserted. * @return The node being inserted. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not ! * allow children of the type of the newChild node, or if ! * the node to insert is one of this node's ancestors or this node ! * itself, or if this node is of type Document and the ! * DOM application attempts to insert a second * DocumentType or Element node. ! *
      WRONG_DOCUMENT_ERR: Raised if newChild was created * from a different document than the one that created this node. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or * if the parent of the node being inserted is readonly. ! *
      NOT_FOUND_ERR: Raised if refChild is not a child of * this node. ! *
      NOT_SUPPORTED_ERR: if this node is of type Document, ! * this exception might be raised if the DOM implementation doesn't ! * support the insertion of a DocumentType or * Element node. * @version DOM Level 3 */ ! public Node insertBefore(Node newChild, Node refChild) throws DOMException; /** * Replaces the child node oldChild with newChild * in the list of children, and returns the oldChild node. ! *
      If newChild is a DocumentFragment object, ! * oldChild is replaced by all of the ! * DocumentFragment children, which are inserted in the ! * same order. If the newChild is already in the tree, it * is first removed. ! *

      Note: Replacing a node with itself is implementation ! * dependent. * @param newChild The new node to put in the child list. * @param oldChild The node being replaced in the list. * @return The node replaced. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not ! * allow children of the type of the newChild node, or if ! * the node to put in is one of this node's ancestors or this node ! * itself, or if this node is of type Document and the ! * result of the replacement operation would add a second ! * DocumentType or Element on the * Document node. ! *
      WRONG_DOCUMENT_ERR: Raised if newChild was created * from a different document than the one that created this node. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent of * the new node is readonly. ! *
      NOT_FOUND_ERR: Raised if oldChild is not a child of * this node. ! *
      NOT_SUPPORTED_ERR: if this node is of type Document, ! * this exception might be raised if the DOM implementation doesn't ! * support the replacement of the DocumentType child or * Element child. * @version DOM Level 3 */ ! public Node replaceChild(Node newChild, Node oldChild) throws DOMException; /** ! * Removes the child node indicated by oldChild from the list * of children, and returns it. * @param oldChild The node being removed. * @return The node removed. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NOT_FOUND_ERR: Raised if oldChild is not a child of * this node. ! *
      NOT_SUPPORTED_ERR: if this node is of type Document, ! * this exception might be raised if the DOM implementation doesn't ! * support the removal of the DocumentType child or the * Element child. * @version DOM Level 3 */ *************** public interface Node { *** 366,392 **** throws DOMException; /** ! * Adds the node newChild to the end of the list of children ! * of this node. If the newChild is already in the tree, it * is first removed. ! * @param newChild The node to add.If it is a ! * DocumentFragment object, the entire contents of the * document fragment are moved into the child list of this node * @return The node added. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not ! * allow children of the type of the newChild node, or if ! * the node to append is one of this node's ancestors or this node ! * itself, or if this node is of type Document and the ! * DOM application attempts to append a second * DocumentType or Element node. ! *
      WRONG_DOCUMENT_ERR: Raised if newChild was created * from a different document than the one that created this node. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or * if the previous parent of the node being inserted is readonly. ! *
      NOT_SUPPORTED_ERR: if the newChild node is a child ! * of the Document node, this exception might be raised ! * if the DOM implementation doesn't support the removal of the * DocumentType child or Element child. * @version DOM Level 3 */ --- 366,392 ---- throws DOMException; /** ! * Adds the node newChild to the end of the list of children ! * of this node. If the newChild is already in the tree, it * is first removed. ! * @param newChild The node to add.If it is a ! * DocumentFragment object, the entire contents of the * document fragment are moved into the child list of this node * @return The node added. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not ! * allow children of the type of the newChild node, or if ! * the node to append is one of this node's ancestors or this node ! * itself, or if this node is of type Document and the ! * DOM application attempts to append a second * DocumentType or Element node. ! *
      WRONG_DOCUMENT_ERR: Raised if newChild was created * from a different document than the one that created this node. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or * if the previous parent of the node being inserted is readonly. ! *
      NOT_SUPPORTED_ERR: if the newChild node is a child ! * of the Document node, this exception might be raised ! * if the DOM implementation doesn't support the removal of the * DocumentType child or Element child. * @version DOM Level 3 */ *************** public interface Node { *** 395,548 **** /** * Returns whether this node has any children. ! * @return Returns true if this node has any children, * false otherwise. */ public boolean hasChildNodes(); /** ! * Returns a duplicate of this node, i.e., serves as a generic copy * constructor for nodes. The duplicate node has no parent ( ! * parentNode is null) and no user data. User ! * data associated to the imported node is not carried over. However, if ! * any UserDataHandlers has been specified along with the ! * associated data these handlers will be called with the appropriate * parameters before this method returns. ! *
      Cloning an Element copies all attributes and their ! * values, including those generated by the XML processor to represent ! * defaulted attributes, but this method does not copy any children it ! * contains unless it is a deep clone. This includes text contained in ! * an the Element since the text is contained in a child ! * Text node. Cloning an Attr directly, as ! * opposed to be cloned as part of an Element cloning ! * operation, returns a specified attribute (specified is ! * true). Cloning an Attr always clones its ! * children, since they represent its value, no matter whether this is a ! * deep clone or not. Cloning an EntityReference ! * automatically constructs its subtree if a corresponding ! * Entity is available, no matter whether this is a deep ! * clone or not. Cloning any other type of node simply returns a copy of * this node. ! *
      Note that cloning an immutable subtree results in a mutable copy, * but the children of an EntityReference clone are readonly ! * . In addition, clones of unspecified Attr nodes are ! * specified. And, cloning Document, ! * DocumentType, Entity, and * Notation nodes is implementation dependent. ! * @param deep If true, recursively clone the subtree under ! * the specified node; if false, clone only the node * itself (and its attributes, if it is an Element). * @return The duplicate node. */ public Node cloneNode(boolean deep); /** ! * Puts all Text nodes in the full depth of the sub-tree ! * underneath this Node, including attribute nodes, into a ! * "normal" form where only structure (e.g., elements, comments, ! * processing instructions, CDATA sections, and entity references) ! * separates Text nodes, i.e., there are neither adjacent ! * Text nodes nor empty Text nodes. This can ! * be used to ensure that the DOM view of a document is the same as if ! * it were saved and re-loaded, and is useful when operations (such as * XPointer [XPointer] ! * lookups) that depend on a particular document tree structure are to ! * be used. If the parameter "normalize-characters" of the ! * DOMConfiguration object attached to the ! * Node.ownerDocument is true, this method ! * will also fully normalize the characters of the Text ! * nodes. ! *

      Note: In cases where the document contains ! * CDATASections, the normalize operation alone may not be ! * sufficient, since XPointers do not differentiate between * Text nodes and CDATASection nodes. * @version DOM Level 3 */ public void normalize(); /** ! * Tests whether the DOM implementation implements a specific feature and ! * that feature is supported by this node, as specified in . ! * @param feature The name of the feature to test. ! * @param version This is the version number of the feature to test. ! * @return Returns true if the specified feature is * supported on this node, false otherwise. * @since DOM Level 2 */ ! public boolean isSupported(String feature, String version); /** ! * The namespace URI of this node, or null if it is * unspecified (see ). ! *
      This is not a computed value that is the result of a namespace ! * lookup based on an examination of the namespace declarations in * scope. It is merely the namespace URI given at creation time. ! *
      For nodes of any type other than ELEMENT_NODE and ! * ATTRIBUTE_NODE and nodes created with a DOM Level 1 ! * method, such as Document.createElement(), this is always * null. *

      Note: Per the Namespaces in XML Specification [XML Namespaces] ! * an attribute does not inherit its namespace from the element it is ! * attached to. If an attribute is not explicitly given a namespace, it * simply has no namespace. * @since DOM Level 2 */ public String getNamespaceURI(); /** ! * The namespace prefix of this node, or null if it is ! * unspecified. When it is defined to be null, setting it * has no effect, including if the node is read-only. ! *
      Note that setting this attribute, when permitted, changes the ! * nodeName attribute, which holds the qualified name, as ! * well as the tagName and name attributes of ! * the Element and Attr interfaces, when * applicable. ! *
      Setting the prefix to null makes it unspecified, * setting it to an empty string is implementation dependent. ! *
      Note also that changing the prefix of an attribute that is known to ! * have a default value, does not make a new attribute with the default ! * value and the original prefix appear, since the * namespaceURI and localName do not change. ! *
      For nodes of any type other than ELEMENT_NODE and ! * ATTRIBUTE_NODE and nodes created with a DOM Level 1 ! * method, such as createElement from the * Document interface, this is always null. * @since DOM Level 2 */ public String getPrefix(); /** ! * The namespace prefix of this node, or null if it is ! * unspecified. When it is defined to be null, setting it * has no effect, including if the node is read-only. ! *
      Note that setting this attribute, when permitted, changes the ! * nodeName attribute, which holds the qualified name, as ! * well as the tagName and name attributes of ! * the Element and Attr interfaces, when * applicable. ! *
      Setting the prefix to null makes it unspecified, * setting it to an empty string is implementation dependent. ! *
      Note also that changing the prefix of an attribute that is known to ! * have a default value, does not make a new attribute with the default ! * value and the original prefix appear, since the * namespaceURI and localName do not change. ! *
      For nodes of any type other than ELEMENT_NODE and ! * ATTRIBUTE_NODE and nodes created with a DOM Level 1 ! * method, such as createElement from the * Document interface, this is always null. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified prefix contains an ! * illegal character according to the XML version in use specified in * the Document.xmlVersion attribute. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NAMESPACE_ERR: Raised if the specified prefix is ! * malformed per the Namespaces in XML specification, if the ! * namespaceURI of this node is null, if the ! * specified prefix is "xml" and the namespaceURI of this * node is different from " ! * http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and ! * the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName of * this node is "xmlns" [XML Namespaces] * . * @since DOM Level 2 --- 395,548 ---- /** * Returns whether this node has any children. ! * @return Returns true if this node has any children, * false otherwise. */ public boolean hasChildNodes(); /** ! * Returns a duplicate of this node, i.e., serves as a generic copy * constructor for nodes. The duplicate node has no parent ( ! * parentNode is null) and no user data. User ! * data associated to the imported node is not carried over. However, if ! * any UserDataHandlers has been specified along with the ! * associated data these handlers will be called with the appropriate * parameters before this method returns. ! *
      Cloning an Element copies all attributes and their ! * values, including those generated by the XML processor to represent ! * defaulted attributes, but this method does not copy any children it ! * contains unless it is a deep clone. This includes text contained in ! * an the Element since the text is contained in a child ! * Text node. Cloning an Attr directly, as ! * opposed to be cloned as part of an Element cloning ! * operation, returns a specified attribute (specified is ! * true). Cloning an Attr always clones its ! * children, since they represent its value, no matter whether this is a ! * deep clone or not. Cloning an EntityReference ! * automatically constructs its subtree if a corresponding ! * Entity is available, no matter whether this is a deep ! * clone or not. Cloning any other type of node simply returns a copy of * this node. ! *
      Note that cloning an immutable subtree results in a mutable copy, * but the children of an EntityReference clone are readonly ! * . In addition, clones of unspecified Attr nodes are ! * specified. And, cloning Document, ! * DocumentType, Entity, and * Notation nodes is implementation dependent. ! * @param deep If true, recursively clone the subtree under ! * the specified node; if false, clone only the node * itself (and its attributes, if it is an Element). * @return The duplicate node. */ public Node cloneNode(boolean deep); /** ! * Puts all Text nodes in the full depth of the sub-tree ! * underneath this Node, including attribute nodes, into a ! * "normal" form where only structure (e.g., elements, comments, ! * processing instructions, CDATA sections, and entity references) ! * separates Text nodes, i.e., there are neither adjacent ! * Text nodes nor empty Text nodes. This can ! * be used to ensure that the DOM view of a document is the same as if ! * it were saved and re-loaded, and is useful when operations (such as * XPointer [XPointer] ! * lookups) that depend on a particular document tree structure are to ! * be used. If the parameter "normalize-characters" of the ! * DOMConfiguration object attached to the ! * Node.ownerDocument is true, this method ! * will also fully normalize the characters of the Text ! * nodes. ! *

      Note: In cases where the document contains ! * CDATASections, the normalize operation alone may not be ! * sufficient, since XPointers do not differentiate between * Text nodes and CDATASection nodes. * @version DOM Level 3 */ public void normalize(); /** ! * Tests whether the DOM implementation implements a specific feature and ! * that feature is supported by this node, as specified in . ! * @param feature The name of the feature to test. ! * @param version This is the version number of the feature to test. ! * @return Returns true if the specified feature is * supported on this node, false otherwise. * @since DOM Level 2 */ ! public boolean isSupported(String feature, String version); /** ! * The namespace URI of this node, or null if it is * unspecified (see ). ! *
      This is not a computed value that is the result of a namespace ! * lookup based on an examination of the namespace declarations in * scope. It is merely the namespace URI given at creation time. ! *
      For nodes of any type other than ELEMENT_NODE and ! * ATTRIBUTE_NODE and nodes created with a DOM Level 1 ! * method, such as Document.createElement(), this is always * null. *

      Note: Per the Namespaces in XML Specification [XML Namespaces] ! * an attribute does not inherit its namespace from the element it is ! * attached to. If an attribute is not explicitly given a namespace, it * simply has no namespace. * @since DOM Level 2 */ public String getNamespaceURI(); /** ! * The namespace prefix of this node, or null if it is ! * unspecified. When it is defined to be null, setting it * has no effect, including if the node is read-only. ! *
      Note that setting this attribute, when permitted, changes the ! * nodeName attribute, which holds the qualified name, as ! * well as the tagName and name attributes of ! * the Element and Attr interfaces, when * applicable. ! *
      Setting the prefix to null makes it unspecified, * setting it to an empty string is implementation dependent. ! *
      Note also that changing the prefix of an attribute that is known to ! * have a default value, does not make a new attribute with the default ! * value and the original prefix appear, since the * namespaceURI and localName do not change. ! *
      For nodes of any type other than ELEMENT_NODE and ! * ATTRIBUTE_NODE and nodes created with a DOM Level 1 ! * method, such as createElement from the * Document interface, this is always null. * @since DOM Level 2 */ public String getPrefix(); /** ! * The namespace prefix of this node, or null if it is ! * unspecified. When it is defined to be null, setting it * has no effect, including if the node is read-only. ! *
      Note that setting this attribute, when permitted, changes the ! * nodeName attribute, which holds the qualified name, as ! * well as the tagName and name attributes of ! * the Element and Attr interfaces, when * applicable. ! *
      Setting the prefix to null makes it unspecified, * setting it to an empty string is implementation dependent. ! *
      Note also that changing the prefix of an attribute that is known to ! * have a default value, does not make a new attribute with the default ! * value and the original prefix appear, since the * namespaceURI and localName do not change. ! *
      For nodes of any type other than ELEMENT_NODE and ! * ATTRIBUTE_NODE and nodes created with a DOM Level 1 ! * method, such as createElement from the * Document interface, this is always null. * @exception DOMException ! * INVALID_CHARACTER_ERR: Raised if the specified prefix contains an ! * illegal character according to the XML version in use specified in * the Document.xmlVersion attribute. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. ! *
      NAMESPACE_ERR: Raised if the specified prefix is ! * malformed per the Namespaces in XML specification, if the ! * namespaceURI of this node is null, if the ! * specified prefix is "xml" and the namespaceURI of this * node is different from " ! * http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and ! * the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName of * this node is "xmlns" [XML Namespaces] * . * @since DOM Level 2 *************** public interface Node { *** 552,560 **** /** * Returns the local part of the qualified name of this node. ! *
      For nodes of any type other than ELEMENT_NODE and ! * ATTRIBUTE_NODE and nodes created with a DOM Level 1 ! * method, such as Document.createElement(), this is always * null. * @since DOM Level 2 */ --- 552,560 ---- /** * Returns the local part of the qualified name of this node. ! *
      For nodes of any type other than ELEMENT_NODE and ! * ATTRIBUTE_NODE and nodes created with a DOM Level 1 ! * method, such as Document.createElement(), this is always * null. * @since DOM Level 2 */ *************** public interface Node { *** 562,581 **** /** * Returns whether this node (if it is an element) has any attributes. ! * @return Returns true if this node has any attributes, * false otherwise. * @since DOM Level 2 */ public boolean hasAttributes(); /** ! * The absolute base URI of this node or null if the ! * implementation wasn't able to obtain an absolute URI. This value is ! * computed as described in . However, when the Document * supports the feature "HTML" [DOM Level 2 HTML] ! * , the base URI is computed using first the value of the href ! * attribute of the HTML BASE element if any, and the value of the ! * documentURI attribute from the Document * interface otherwise. * @since DOM Level 3 */ --- 562,581 ---- /** * Returns whether this node (if it is an element) has any attributes. ! * @return Returns true if this node has any attributes, * false otherwise. * @since DOM Level 2 */ public boolean hasAttributes(); /** ! * The absolute base URI of this node or null if the ! * implementation wasn't able to obtain an absolute URI. This value is ! * computed as described in . However, when the Document * supports the feature "HTML" [DOM Level 2 HTML] ! * , the base URI is computed using first the value of the href ! * attribute of the HTML BASE element if any, and the value of the ! * documentURI attribute from the Document * interface otherwise. * @since DOM Level 3 */ *************** public interface Node { *** 583,589 **** // DocumentPosition /** ! * The two nodes are disconnected. Order between disconnected nodes is * always implementation-specific. */ public static final short DOCUMENT_POSITION_DISCONNECTED = 0x01; --- 583,589 ---- // DocumentPosition /** ! * The two nodes are disconnected. Order between disconnected nodes is * always implementation-specific. */ public static final short DOCUMENT_POSITION_DISCONNECTED = 0x01; *************** public interface Node { *** 596,627 **** */ public static final short DOCUMENT_POSITION_FOLLOWING = 0x04; /** ! * The node contains the reference node. A node which contains is always * preceding, too. */ public static final short DOCUMENT_POSITION_CONTAINS = 0x08; /** ! * The node is contained by the reference node. A node which is contained * is always following, too. */ public static final short DOCUMENT_POSITION_CONTAINED_BY = 0x10; /** ! * The determination of preceding versus following is * implementation-specific. */ public static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; /** ! * Compares the reference node, i.e. the node on which this method is ! * being called, with a node, i.e. the one passed as a parameter, with ! * regard to their position in the document and according to the * document order. * @param other The node to compare against the reference node. ! * @return Returns how the node is positioned relatively to the reference * node. * @exception DOMException ! * NOT_SUPPORTED_ERR: when the compared nodes are from different DOM ! * implementations that do not coordinate to return consistent * implementation-specific results. * @since DOM Level 3 */ --- 596,627 ---- */ public static final short DOCUMENT_POSITION_FOLLOWING = 0x04; /** ! * The node contains the reference node. A node which contains is always * preceding, too. */ public static final short DOCUMENT_POSITION_CONTAINS = 0x08; /** ! * The node is contained by the reference node. A node which is contained * is always following, too. */ public static final short DOCUMENT_POSITION_CONTAINED_BY = 0x10; /** ! * The determination of preceding versus following is * implementation-specific. */ public static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; /** ! * Compares the reference node, i.e. the node on which this method is ! * being called, with a node, i.e. the one passed as a parameter, with ! * regard to their position in the document and according to the * document order. * @param other The node to compare against the reference node. ! * @return Returns how the node is positioned relatively to the reference * node. * @exception DOMException ! * NOT_SUPPORTED_ERR: when the compared nodes are from different DOM ! * implementations that do not coordinate to return consistent * implementation-specific results. * @since DOM Level 3 */ *************** public interface Node { *** 629,649 **** throws DOMException; /** ! * This attribute returns the text content of this node and its ! * descendants. When it is defined to be null, setting it ! * has no effect. On setting, any possible children this node may have ! * are removed and, if it the new string is not empty or ! * null, replaced by a single Text node ! * containing the string this attribute is set to. ! *
      On getting, no serialization is performed, the returned string ! * does not contain any markup. No whitespace normalization is performed ! * and the returned string does not contain the white spaces in element ! * content (see the attribute ! * Text.isElementContentWhitespace). Similarly, on setting, ! * no parsing is performed either, the input string is taken as pure ! * textual content. ! *
      The string returned is made of the text content of this node ! * depending on its type, as defined below: * * * --- 629,649 ---- throws DOMException; /** ! * This attribute returns the text content of this node and its ! * descendants. When it is defined to be null, setting it ! * has no effect. On setting, any possible children this node may have ! * are removed and, if it the new string is not empty or ! * null, replaced by a single Text node ! * containing the string this attribute is set to. ! *
      On getting, no serialization is performed, the returned string ! * does not contain any markup. No whitespace normalization is performed ! * and the returned string does not contain the white spaces in element ! * content (see the attribute ! * Text.isElementContentWhitespace). Similarly, on setting, ! * no parsing is performed either, the input string is taken as pure ! * textual content. ! *
      The string returned is made of the text content of this node ! * depending on its type, as defined below: *
      Node type
      * * *************** public interface Node { *** 651,698 **** * * * ! * * * ! * * * * ! * * * *
      Node type
      ! * ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, * DOCUMENT_FRAGMENT_NODEconcatenation of the textContent ! * attribute value of every child node, excluding COMMENT_NODE and ! * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the * node has no children.
      TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, * PROCESSING_INSTRUCTION_NODEnodeValue
      DOCUMENT_NODE, * DOCUMENT_TYPE_NODE, NOTATION_NODEnull
      * @exception DOMException ! * DOMSTRING_SIZE_ERR: Raised when it would return more characters than ! * fit in a DOMString variable on the implementation * platform. * @since DOM Level 3 */ public String getTextContent() throws DOMException; /** ! * This attribute returns the text content of this node and its ! * descendants. When it is defined to be null, setting it ! * has no effect. On setting, any possible children this node may have ! * are removed and, if it the new string is not empty or ! * null, replaced by a single Text node ! * containing the string this attribute is set to. ! *
      On getting, no serialization is performed, the returned string ! * does not contain any markup. No whitespace normalization is performed ! * and the returned string does not contain the white spaces in element ! * content (see the attribute ! * Text.isElementContentWhitespace). Similarly, on setting, ! * no parsing is performed either, the input string is taken as pure ! * textual content. ! *
      The string returned is made of the text content of this node ! * depending on its type, as defined below: * * * --- 651,698 ---- * * * ! * * * ! * * * * ! * * * *
      Node type
      ! * ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, * DOCUMENT_FRAGMENT_NODEconcatenation of the textContent ! * attribute value of every child node, excluding COMMENT_NODE and ! * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the * node has no children.
      TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, * PROCESSING_INSTRUCTION_NODEnodeValue
      DOCUMENT_NODE, * DOCUMENT_TYPE_NODE, NOTATION_NODEnull
      * @exception DOMException ! * DOMSTRING_SIZE_ERR: Raised when it would return more characters than ! * fit in a DOMString variable on the implementation * platform. * @since DOM Level 3 */ public String getTextContent() throws DOMException; /** ! * This attribute returns the text content of this node and its ! * descendants. When it is defined to be null, setting it ! * has no effect. On setting, any possible children this node may have ! * are removed and, if it the new string is not empty or ! * null, replaced by a single Text node ! * containing the string this attribute is set to. ! *
      On getting, no serialization is performed, the returned string ! * does not contain any markup. No whitespace normalization is performed ! * and the returned string does not contain the white spaces in element ! * content (see the attribute ! * Text.isElementContentWhitespace). Similarly, on setting, ! * no parsing is performed either, the input string is taken as pure ! * textual content. ! *
      The string returned is made of the text content of this node ! * depending on its type, as defined below: * * * *************** public interface Node { *** 700,719 **** * * * ! * * * ! * * * * ! * * * --- 700,719 ---- * * * ! * * * ! * * * * ! * * * *************** public interface Node { *** 727,779 **** /** * Returns whether this node is the same node as the given one. ! *
      This method provides a way to determine whether two ! * Node references returned by the implementation reference ! * the same object. When two Node references are references ! * to the same object, even if through a proxy, the references may be ! * used completely interchangeably, such that all attributes have the ! * same values and calling the same DOM method on either reference * always has exactly the same effect. * @param other The node to test against. ! * @return Returns true if the nodes are the same, * false otherwise. * @since DOM Level 3 */ public boolean isSameNode(Node other); /** ! * Look up the prefix associated to the given namespace URI, starting from ! * this node. The default namespace declarations are ignored by this * method. *
      See for details on the algorithm used by this method. * @param namespaceURI The namespace URI to look for. ! * @return Returns an associated namespace prefix if found or ! * null if none is found. If more than one prefix are ! * associated to the namespace prefix, the returned namespace prefix * is implementation dependent. * @since DOM Level 3 */ public String lookupPrefix(String namespaceURI); /** ! * This method checks if the specified namespaceURI is the ! * default namespace or not. * @param namespaceURI The namespace URI to look for. ! * @return Returns true if the specified ! * namespaceURI is the default namespace, ! * false otherwise. * @since DOM Level 3 */ public boolean isDefaultNamespace(String namespaceURI); /** ! * Look up the namespace URI associated to the given prefix, starting from * this node. *
      See for details on the algorithm used by this method. ! * @param prefix The prefix to look for. If this parameter is ! * null, the method will return the default namespace URI * if any. ! * @return Returns the associated namespace URI or null if * none is found. * @since DOM Level 3 */ --- 727,779 ---- /** * Returns whether this node is the same node as the given one. ! *
      This method provides a way to determine whether two ! * Node references returned by the implementation reference ! * the same object. When two Node references are references ! * to the same object, even if through a proxy, the references may be ! * used completely interchangeably, such that all attributes have the ! * same values and calling the same DOM method on either reference * always has exactly the same effect. * @param other The node to test against. ! * @return Returns true if the nodes are the same, * false otherwise. * @since DOM Level 3 */ public boolean isSameNode(Node other); /** ! * Look up the prefix associated to the given namespace URI, starting from ! * this node. The default namespace declarations are ignored by this * method. *
      See for details on the algorithm used by this method. * @param namespaceURI The namespace URI to look for. ! * @return Returns an associated namespace prefix if found or ! * null if none is found. If more than one prefix are ! * associated to the namespace prefix, the returned namespace prefix * is implementation dependent. * @since DOM Level 3 */ public String lookupPrefix(String namespaceURI); /** ! * This method checks if the specified namespaceURI is the ! * default namespace or not. * @param namespaceURI The namespace URI to look for. ! * @return Returns true if the specified ! * namespaceURI is the default namespace, ! * false otherwise. * @since DOM Level 3 */ public boolean isDefaultNamespace(String namespaceURI); /** ! * Look up the namespace URI associated to the given prefix, starting from * this node. *
      See for details on the algorithm used by this method. ! * @param prefix The prefix to look for. If this parameter is ! * null, the method will return the default namespace URI * if any. ! * @return Returns the associated namespace URI or null if * none is found. * @since DOM Level 3 */ *************** public interface Node { *** 781,897 **** /** * Tests whether two nodes are equal. ! *
      This method tests for equality of nodes, not sameness (i.e., ! * whether the two nodes are references to the same object) which can be ! * tested with Node.isSameNode(). All nodes that are the * same will also be equal, though the reverse may not be true. ! *
      Two nodes are equal if and only if the following conditions are ! * satisfied: *
        *
      • The two nodes are of the same type. *
      • ! *
      • The following string ! * attributes are equal: nodeName, localName, * namespaceURI, prefix, nodeValue ! * . This is: they are both null, or they have the same * length and are character for character identical. *
      • ! *
      • The ! * attributes NamedNodeMaps are equal. This ! * is: they are both null, or they have the same length and ! * for each node that exists in one map there is a node that exists in ! * the other map and is equal, although not necessarily at the same * index. *
      • ! *
      • The childNodes NodeLists are equal. ! * This is: they are both null, or they have the same ! * length and contain equal nodes at the same index. Note that ! * normalization can affect equality; to avoid this, nodes should be * normalized before being compared. *
      • ! *
      ! *
      For two DocumentType nodes to be equal, the following ! * conditions must also be satisfied: *
        ! *
      • The following string attributes ! * are equal: publicId, systemId, * internalSubset. *
      • ! *
      • The entities * NamedNodeMaps are equal. *
      • ! *
      • The notations * NamedNodeMaps are equal. *
      • ! *
      ! *
      On the other hand, the following do not affect equality: the ! * ownerDocument, baseURI, and ! * parentNode attributes, the specified * attribute for Attr nodes, the schemaTypeInfo ! * attribute for Attr and Element nodes, the ! * Text.isElementContentWhitespace attribute for ! * Text nodes, as well as any user data or event listeners ! * registered on the nodes. ! *

      Note: As a general rule, anything not mentioned in the ! * description above is not significant in consideration of equality ! * checking. Note that future versions of this specification may take ! * into account more attributes and implementations conform to this ! * specification are expected to be updated accordingly. * @param arg The node to compare equality with. ! * @return Returns true if the nodes are equal, * false otherwise. * @since DOM Level 3 */ public boolean isEqualNode(Node arg); /** ! * This method returns a specialized object which implements the ! * specialized APIs of the specified feature and version, as specified ! * in . The specialized object may also be obtained by using ! * binding-specific casting methods but is not necessarily expected to, ! * as discussed in . This method also allow the implementation to * provide specialized objects which do not support the Node ! * interface. ! * @param feature The name of the feature requested. Note that any plus ! * sign "+" prepended to the name of the feature will be ignored since ! * it is not significant in the context of this method. ! * @param version This is the version number of the feature to test. ! * @return Returns an object which implements the specialized APIs of ! * the specified feature and version, if any, or null if ! * there is no object which implements interfaces associated with that ! * feature. If the DOMObject returned by this method ! * implements the Node interface, it must delegate to the ! * primary core Node and not return results inconsistent ! * with the primary core Node such as attributes, ! * childNodes, etc. * @since DOM Level 3 */ ! public Object getFeature(String feature, String version); /** ! * Associate an object to a key on this node. The object can later be ! * retrieved from this node by calling getUserData with the * same key. * @param key The key to associate the object to. ! * @param data The object to associate to the given key, or * null to remove any existing association to that key. ! * @param handler The handler to associate to that key, or * null. ! * @return Returns the DOMUserData previously associated to * the given key on this node, or null if there was none. * @since DOM Level 3 */ ! public Object setUserData(String key, ! Object data, UserDataHandler handler); /** ! * Retrieves the object associated to a key on a this node. The object ! * must first have been set to this node by calling * setUserData with the same key. * @param key The key the object is associated to. ! * @return Returns the DOMUserData associated to the given * key on this node, or null if there was none. * @since DOM Level 3 */ --- 781,897 ---- /** * Tests whether two nodes are equal. ! *
      This method tests for equality of nodes, not sameness (i.e., ! * whether the two nodes are references to the same object) which can be ! * tested with Node.isSameNode(). All nodes that are the * same will also be equal, though the reverse may not be true. ! *
      Two nodes are equal if and only if the following conditions are ! * satisfied: *

        *
      • The two nodes are of the same type. *
      • ! *
      • The following string ! * attributes are equal: nodeName, localName, * namespaceURI, prefix, nodeValue ! * . This is: they are both null, or they have the same * length and are character for character identical. *
      • ! *
      • The ! * attributes NamedNodeMaps are equal. This ! * is: they are both null, or they have the same length and ! * for each node that exists in one map there is a node that exists in ! * the other map and is equal, although not necessarily at the same * index. *
      • ! *
      • The childNodes NodeLists are equal. ! * This is: they are both null, or they have the same ! * length and contain equal nodes at the same index. Note that ! * normalization can affect equality; to avoid this, nodes should be * normalized before being compared. *
      • ! *
      ! *
      For two DocumentType nodes to be equal, the following ! * conditions must also be satisfied: *
        ! *
      • The following string attributes ! * are equal: publicId, systemId, * internalSubset. *
      • ! *
      • The entities * NamedNodeMaps are equal. *
      • ! *
      • The notations * NamedNodeMaps are equal. *
      • ! *
      ! *
      On the other hand, the following do not affect equality: the ! * ownerDocument, baseURI, and ! * parentNode attributes, the specified * attribute for Attr nodes, the schemaTypeInfo ! * attribute for Attr and Element nodes, the ! * Text.isElementContentWhitespace attribute for ! * Text nodes, as well as any user data or event listeners ! * registered on the nodes. ! *

      Note: As a general rule, anything not mentioned in the ! * description above is not significant in consideration of equality ! * checking. Note that future versions of this specification may take ! * into account more attributes and implementations conform to this ! * specification are expected to be updated accordingly. * @param arg The node to compare equality with. ! * @return Returns true if the nodes are equal, * false otherwise. * @since DOM Level 3 */ public boolean isEqualNode(Node arg); /** ! * This method returns a specialized object which implements the ! * specialized APIs of the specified feature and version, as specified ! * in . The specialized object may also be obtained by using ! * binding-specific casting methods but is not necessarily expected to, ! * as discussed in . This method also allow the implementation to * provide specialized objects which do not support the Node ! * interface. ! * @param feature The name of the feature requested. Note that any plus ! * sign "+" prepended to the name of the feature will be ignored since ! * it is not significant in the context of this method. ! * @param version This is the version number of the feature to test. ! * @return Returns an object which implements the specialized APIs of ! * the specified feature and version, if any, or null if ! * there is no object which implements interfaces associated with that ! * feature. If the DOMObject returned by this method ! * implements the Node interface, it must delegate to the ! * primary core Node and not return results inconsistent ! * with the primary core Node such as attributes, ! * childNodes, etc. * @since DOM Level 3 */ ! public Object getFeature(String feature, String version); /** ! * Associate an object to a key on this node. The object can later be ! * retrieved from this node by calling getUserData with the * same key. * @param key The key to associate the object to. ! * @param data The object to associate to the given key, or * null to remove any existing association to that key. ! * @param handler The handler to associate to that key, or * null. ! * @return Returns the DOMUserData previously associated to * the given key on this node, or null if there was none. * @since DOM Level 3 */ ! public Object setUserData(String key, ! Object data, UserDataHandler handler); /** ! * Retrieves the object associated to a key on a this node. The object ! * must first have been set to this node by calling * setUserData with the same key. * @param key The key the object is associated to. ! * @return Returns the DOMUserData associated to the given * key on this node, or null if there was none. * @since DOM Level 3 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java Tue Jan 11 19:46:05 2011 *************** *** 13,39 **** package org.w3c.dom; /** ! * The NodeList interface provides the abstraction of an ordered ! * collection of nodes, without defining or constraining how this collection * is implemented. NodeList objects in the DOM are live. ! *

      The items in the NodeList are accessible via an integral * index, starting from 0. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface NodeList { /** ! * Returns the indexth item in the collection. If ! * index is greater than or equal to the number of nodes in * the list, this returns null. * @param index Index into the collection. ! * @return The node at the indexth position in the ! * NodeList, or null if that is not a valid * index. */ public Node item(int index); /** ! * The number of nodes in the list. The range of valid child node indices * is 0 to length-1 inclusive. */ public int getLength(); --- 13,39 ---- package org.w3c.dom; /** ! * The NodeList interface provides the abstraction of an ordered ! * collection of nodes, without defining or constraining how this collection * is implemented. NodeList objects in the DOM are live. ! *

      The items in the NodeList are accessible via an integral * index, starting from 0. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface NodeList { /** ! * Returns the indexth item in the collection. If ! * index is greater than or equal to the number of nodes in * the list, this returns null. * @param index Index into the collection. ! * @return The node at the indexth position in the ! * NodeList, or null if that is not a valid * index. */ public Node item(int index); /** ! * The number of nodes in the list. The range of valid child node indices * is 0 to length-1 inclusive. */ public int getLength(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java Tue Jan 11 19:46:05 2011 *************** *** 13,38 **** package org.w3c.dom; /** ! * This interface represents a notation declared in the DTD. A notation either ! * declares, by name, the format of an unparsed entity (see section 4.7 of the XML 1.0 specification [XML 1.0]), or is ! * used for formal declaration of processing instruction targets (see section 2.6 of the XML 1.0 specification [XML 1.0]). The ! * nodeName attribute inherited from Node is set * to the declared name of the notation. ! *

      The DOM Core does not support editing Notation nodes; they * are therefore readonly. *

      A Notation node does not have any parent. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Notation extends Node { /** ! * The public identifier of this notation. If the public identifier was * not specified, this is null. */ public String getPublicId(); /** ! * The system identifier of this notation. If the system identifier was ! * not specified, this is null. This may be an absolute URI * or not. */ public String getSystemId(); --- 13,38 ---- package org.w3c.dom; /** ! * This interface represents a notation declared in the DTD. A notation either ! * declares, by name, the format of an unparsed entity (see section 4.7 of the XML 1.0 specification [XML 1.0]), or is ! * used for formal declaration of processing instruction targets (see section 2.6 of the XML 1.0 specification [XML 1.0]). The ! * nodeName attribute inherited from Node is set * to the declared name of the notation. ! *

      The DOM Core does not support editing Notation nodes; they * are therefore readonly. *

      A Notation node does not have any parent. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Notation extends Node { /** ! * The public identifier of this notation. If the public identifier was * not specified, this is null. */ public String getPublicId(); /** ! * The system identifier of this notation. If the system identifier was ! * not specified, this is null. This may be an absolute URI * or not. */ public String getSystemId(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java Tue Jan 11 19:46:05 2011 *************** *** 13,46 **** package org.w3c.dom; /** ! * The ProcessingInstruction interface represents a "processing ! * instruction", used in XML as a way to keep processor-specific information * in the text of the document. ! *

      No lexical check is done on the content of a processing instruction and ! * it is therefore possible to have the character sequence ! * "?>" in the content, which is illegal a processing ! * instruction per section 2.6 of [XML 1.0]. The ! * presence of this character sequence must generate a fatal error during ! * serialization. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface ProcessingInstruction extends Node { /** ! * The target of this processing instruction. XML defines this as being ! * the first token following the markup that begins the processing * instruction. */ public String getTarget(); /** ! * The content of this processing instruction. This is from the first non ! * white space character after the target to the character immediately * preceding the ?>. */ public String getData(); /** ! * The content of this processing instruction. This is from the first non ! * white space character after the target to the character immediately * preceding the ?>. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. --- 13,46 ---- package org.w3c.dom; /** ! * The ProcessingInstruction interface represents a "processing ! * instruction", used in XML as a way to keep processor-specific information * in the text of the document. ! *

      No lexical check is done on the content of a processing instruction and ! * it is therefore possible to have the character sequence ! * "?>" in the content, which is illegal a processing ! * instruction per section 2.6 of [XML 1.0]. The ! * presence of this character sequence must generate a fatal error during ! * serialization. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface ProcessingInstruction extends Node { /** ! * The target of this processing instruction. XML defines this as being ! * the first token following the markup that begins the processing * instruction. */ public String getTarget(); /** ! * The content of this processing instruction. This is from the first non ! * white space character after the target to the character immediately * preceding the ?>. */ public String getData(); /** ! * The content of this processing instruction. This is from the first non ! * white space character after the target to the character immediately * preceding the ?>. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java Tue Jan 11 19:46:05 2011 *************** *** 13,57 **** package org.w3c.dom; /** ! * The Text interface inherits from CharacterData ! * and represents the textual content (termed character data in XML) of an Element or Attr. If there is no ! * markup inside an element's content, the text is contained in a single ! * object implementing the Text interface that is the only ! * child of the element. If there is markup, it is parsed into the ! * information items (elements, comments, etc.) and Text nodes * that form the list of children of the element. ! *

      When a document is first made available via the DOM, there is only one ! * Text node for each block of text. Users may create adjacent ! * Text nodes that represent the contents of a given element ! * without any intervening markup, but should be aware that there is no way ! * to represent the separations between these nodes in XML or HTML, so they ! * will not (in general) persist between DOM editing sessions. The ! * Node.normalize() method merges any such adjacent * Text objects into a single node for each block of text. ! *

      No lexical check is done on the content of a Text node ! * and, depending on its position in the document, some characters must be ! * escaped during serialization using character references; e.g. the ! * characters "<&" if the textual content is part of an element or of ! * an attribute, the character sequence "]]>" when part of an element, ! * the quotation mark character " or the apostrophe character ' when part of ! * an attribute. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Text extends CharacterData { /** ! * Breaks this node into two nodes at the specified offset, ! * keeping both in the tree as siblings. After being split, this node ! * will contain all the content up to the offset point. A ! * new node of the same type, which contains all the content at and ! * after the offset point, is returned. If the original ! * node had a parent node, the new node is inserted as the next sibling ! * of the original node. When the offset is equal to the * length of this node, the new node has no data. ! * @param offset The 16-bit unit offset at which to split, starting from * 0. * @return The new node, of the same type as this node. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is negative or greater * than the number of 16-bit units in data. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ --- 13,57 ---- package org.w3c.dom; /** ! * The Text interface inherits from CharacterData ! * and represents the textual content (termed character data in XML) of an Element or Attr. If there is no ! * markup inside an element's content, the text is contained in a single ! * object implementing the Text interface that is the only ! * child of the element. If there is markup, it is parsed into the ! * information items (elements, comments, etc.) and Text nodes * that form the list of children of the element. ! *

      When a document is first made available via the DOM, there is only one ! * Text node for each block of text. Users may create adjacent ! * Text nodes that represent the contents of a given element ! * without any intervening markup, but should be aware that there is no way ! * to represent the separations between these nodes in XML or HTML, so they ! * will not (in general) persist between DOM editing sessions. The ! * Node.normalize() method merges any such adjacent * Text objects into a single node for each block of text. ! *

      No lexical check is done on the content of a Text node ! * and, depending on its position in the document, some characters must be ! * escaped during serialization using character references; e.g. the ! * characters "<&" if the textual content is part of an element or of ! * an attribute, the character sequence "]]>" when part of an element, ! * the quotation mark character " or the apostrophe character ' when part of ! * an attribute. *

      See also the Document Object Model (DOM) Level 3 Core Specification. */ public interface Text extends CharacterData { /** ! * Breaks this node into two nodes at the specified offset, ! * keeping both in the tree as siblings. After being split, this node ! * will contain all the content up to the offset point. A ! * new node of the same type, which contains all the content at and ! * after the offset point, is returned. If the original ! * node had a parent node, the new node is inserted as the next sibling ! * of the original node. When the offset is equal to the * length of this node, the new node has no data. ! * @param offset The 16-bit unit offset at which to split, starting from * 0. * @return The new node, of the same type as this node. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified offset is negative or greater * than the number of 16-bit units in data. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. */ *************** public interface Text extends CharacterD *** 60,122 **** /** * Returns whether this text node contains ! * element content whitespace, often abusively called "ignorable whitespace". The text node is ! * determined to contain whitespace in element content during the load ! * of the document or if validation occurs while using * Document.normalizeDocument(). * @since DOM Level 3 */ public boolean isElementContentWhitespace(); /** ! * Returns all text of Text nodes logically-adjacent text * nodes to this node, concatenated in document order. ! *
      For instance, in the example below wholeText on the ! * Text node that contains "bar" returns "barfoo", while on ! * the Text node that contains "foo" it returns "barfoo". * @since DOM Level 3 */ public String getWholeText(); /** ! * Replaces the text of the current node and all logically-adjacent text ! * nodes with the specified text. All logically-adjacent text nodes are ! * removed including the current node unless it was the recipient of the * replacement text. ! *
      This method returns the node which received the replacement text. ! * The returned node is: *

        ! *
      • null, when the replacement text is * the empty string; *
      • ! *
      • the current node, except when the current node is * read-only; *
      • *
      • a new Text node of the same type ( ! * Text or CDATASection) as the current node * inserted at the location of the replacement. *
      • *
      ! *
      For instance, in the above example calling ! * replaceWholeText on the Text node that ! * contains "bar" with "yo" in argument results in the following: ! *
      Where the nodes to be removed are read-only descendants of an ! * EntityReference, the EntityReference must ! * be removed instead of the read-only nodes. If any ! * EntityReference to be removed has descendants that are ! * not EntityReference, Text, or ! * CDATASection nodes, the replaceWholeText ! * method must fail before performing any modification of the document, ! * raising a DOMException with the code * NO_MODIFICATION_ALLOWED_ERR. ! *
      For instance, in the example below calling ! * replaceWholeText on the Text node that ! * contains "bar" fails, because the EntityReference node * "ent" contains an Element node which cannot be removed. * @param content The content of the replacing Text node. * @return The Text node created with the specified content. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if one of the Text * nodes being replaced is readonly. * @since DOM Level 3 */ --- 60,122 ---- /** * Returns whether this text node contains ! * element content whitespace, often abusively called "ignorable whitespace". The text node is ! * determined to contain whitespace in element content during the load ! * of the document or if validation occurs while using * Document.normalizeDocument(). * @since DOM Level 3 */ public boolean isElementContentWhitespace(); /** ! * Returns all text of Text nodes logically-adjacent text * nodes to this node, concatenated in document order. ! *
      For instance, in the example below wholeText on the ! * Text node that contains "bar" returns "barfoo", while on ! * the Text node that contains "foo" it returns "barfoo". * @since DOM Level 3 */ public String getWholeText(); /** ! * Replaces the text of the current node and all logically-adjacent text ! * nodes with the specified text. All logically-adjacent text nodes are ! * removed including the current node unless it was the recipient of the * replacement text. ! *
      This method returns the node which received the replacement text. ! * The returned node is: *
        ! *
      • null, when the replacement text is * the empty string; *
      • ! *
      • the current node, except when the current node is * read-only; *
      • *
      • a new Text node of the same type ( ! * Text or CDATASection) as the current node * inserted at the location of the replacement. *
      • *
      ! *
      For instance, in the above example calling ! * replaceWholeText on the Text node that ! * contains "bar" with "yo" in argument results in the following: ! *
      Where the nodes to be removed are read-only descendants of an ! * EntityReference, the EntityReference must ! * be removed instead of the read-only nodes. If any ! * EntityReference to be removed has descendants that are ! * not EntityReference, Text, or ! * CDATASection nodes, the replaceWholeText ! * method must fail before performing any modification of the document, ! * raising a DOMException with the code * NO_MODIFICATION_ALLOWED_ERR. ! *
      For instance, in the example below calling ! * replaceWholeText on the Text node that ! * contains "bar" fails, because the EntityReference node * "ent" contains an Element node which cannot be removed. * @param content The content of the replacing Text node. * @return The Text node created with the specified content. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if one of the Text * nodes being replaced is readonly. * @since DOM Level 3 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java Tue Jan 11 19:46:05 2011 *************** *** 13,107 **** package org.w3c.dom; /** ! * The TypeInfo interface represents a type referenced from ! * Element or Attr nodes, specified in the schemas ! * associated with the document. The type is a pair of a namespace URI and ! * name properties, and depends on the document's schema. ! *

      If the document's schema is an XML DTD [XML 1.0], the values ! * are computed as follows: *

        ! *
      • If this type is referenced from an ! * Attr node, typeNamespace is ! * "http://www.w3.org/TR/REC-xml" and typeName * represents the [attribute type] property in the [XML Information Set] * . If there is no declaration for the attribute, typeNamespace ! * and typeName are null. *
      • ! *
      • If this type is ! * referenced from an Element node, typeNamespace ! * and typeName are null. *
      • *
      *

      If the document's schema is an XML Schema [XML Schema Part 1] ! * , the values are computed as follows using the post-schema-validation ! * infoset contributions (also called PSVI contributions): *

        ! *
      • If the [validity] property exists AND is "invalid" or "notKnown": the {target namespace} and {name} properties of the declared type if ! * available, otherwise null. ! *

        Note: At the time of writing, the XML Schema specification does ! * not require exposing the declared type. Thus, DOM implementations might ! * choose not to provide type information if validity is not valid. *

      • ! *
      • If the [validity] property exists and is "valid": *
          ! *
        1. If [member type definition] exists: *
            ! *
          1. If {name} is not absent, then expose {name} and {target * namespace} properties of the [member type definition] property; *
          2. ! *
          3. Otherwise, expose the namespace and local name of the * corresponding anonymous type name. *
          4. *
          *
        2. ! *
        3. If the [type definition] property exists: *
            ! *
          1. If {name} is not absent, then expose {name} and {target * namespace} properties of the [type definition] property; *
          2. ! *
          3. Otherwise, expose the namespace and local name of the * corresponding anonymous type name. *
          4. ! *
          *
        4. ! *
        5. If the [member type definition anonymous] exists: *
            *
          1. If it is false, then expose [member type definition name] and [member type definition namespace] properties; *
          2. ! *
          3. Otherwise, expose the namespace and local name of the * corresponding anonymous type name. *
          4. ! *
          *
        6. ! *
        7. If the [type definition anonymous] exists: *
            *
          1. If it is false, then expose [type definition name] and [type definition namespace] properties; *
          2. ! *
          3. Otherwise, expose the namespace and local name of the * corresponding anonymous type name. *
          4. ! *
          *
        8. *
        *
      • *
      ! *

      Note: Other schema languages are outside the scope of the W3C ! * and therefore should define how to represent their type systems using ! * TypeInfo. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface TypeInfo { /** ! * The name of a type declared for the associated element or attribute, ! * or null if unknown. */ public String getTypeName(); /** ! * The namespace of the type declared for the associated element or ! * attribute or null if the element does not have ! * declaration or if no namespace information is available. */ public String getTypeNamespace(); --- 13,107 ---- package org.w3c.dom; /** ! * The TypeInfo interface represents a type referenced from ! * Element or Attr nodes, specified in the schemas ! * associated with the document. The type is a pair of a namespace URI and ! * name properties, and depends on the document's schema. ! *

      If the document's schema is an XML DTD [XML 1.0], the values ! * are computed as follows: *

        ! *
      • If this type is referenced from an ! * Attr node, typeNamespace is ! * "http://www.w3.org/TR/REC-xml" and typeName * represents the [attribute type] property in the [XML Information Set] * . If there is no declaration for the attribute, typeNamespace ! * and typeName are null. *
      • ! *
      • If this type is ! * referenced from an Element node, typeNamespace ! * and typeName are null. *
      • *
      *

      If the document's schema is an XML Schema [XML Schema Part 1] ! * , the values are computed as follows using the post-schema-validation ! * infoset contributions (also called PSVI contributions): *

        ! *
      • If the [validity] property exists AND is "invalid" or "notKnown": the {target namespace} and {name} properties of the declared type if ! * available, otherwise null. ! *

        Note: At the time of writing, the XML Schema specification does ! * not require exposing the declared type. Thus, DOM implementations might ! * choose not to provide type information if validity is not valid. *

      • ! *
      • If the [validity] property exists and is "valid": *
          ! *
        1. If [member type definition] exists: *
            ! *
          1. If {name} is not absent, then expose {name} and {target * namespace} properties of the [member type definition] property; *
          2. ! *
          3. Otherwise, expose the namespace and local name of the * corresponding anonymous type name. *
          4. *
          *
        2. ! *
        3. If the [type definition] property exists: *
            ! *
          1. If {name} is not absent, then expose {name} and {target * namespace} properties of the [type definition] property; *
          2. ! *
          3. Otherwise, expose the namespace and local name of the * corresponding anonymous type name. *
          4. ! *
          *
        4. ! *
        5. If the [member type definition anonymous] exists: *
            *
          1. If it is false, then expose [member type definition name] and [member type definition namespace] properties; *
          2. ! *
          3. Otherwise, expose the namespace and local name of the * corresponding anonymous type name. *
          4. ! *
          *
        6. ! *
        7. If the [type definition anonymous] exists: *
            *
          1. If it is false, then expose [type definition name] and [type definition namespace] properties; *
          2. ! *
          3. Otherwise, expose the namespace and local name of the * corresponding anonymous type name. *
          4. ! *
          *
        8. *
        *
      • *
      ! *

      Note: Other schema languages are outside the scope of the W3C ! * and therefore should define how to represent their type systems using ! * TypeInfo. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ public interface TypeInfo { /** ! * The name of a type declared for the associated element or attribute, ! * or null if unknown. */ public String getTypeName(); /** ! * The namespace of the type declared for the associated element or ! * attribute or null if the element does not have ! * declaration or if no namespace information is available. */ public String getTypeNamespace(); *************** public interface TypeInfo { *** 110,185 **** * If the document's schema is an XML Schema [XML Schema Part 1] * , this constant represents the derivation by * restriction if complex types are involved, or a ! * restriction if simple types are involved. ! *
      The reference type definition is derived by restriction from the ! * other type definition if the other type definition is the same as the ! * reference type definition, or if the other type definition can be ! * reached recursively following the {base type definition} property ! * from the reference type definition, and all the derivation methods involved are restriction. */ public static final int DERIVATION_RESTRICTION = 0x00000001; /** * If the document's schema is an XML Schema [XML Schema Part 1] * , this constant represents the derivation by ! * extension. ! *
      The reference type definition is derived by extension from the ! * other type definition if the other type definition can be reached ! * recursively following the {base type definition} property from the ! * reference type definition, and at least one of the derivation methods involved is an extension. */ public static final int DERIVATION_EXTENSION = 0x00000002; /** * If the document's schema is an XML Schema [XML Schema Part 1] * , this constant represents the ! * union if simple types are involved. ! *
      The reference type definition is derived by union from the other ! * type definition if there exists two type definitions T1 and T2 such ! * as the reference type definition is derived from T1 by ! * DERIVATION_RESTRICTION or ! * DERIVATION_EXTENSION, T2 is derived from the other type ! * definition by DERIVATION_RESTRICTION, T1 has {variety} union, and one of the {member type definitions} is T2. Note that T1 could be ! * the same as the reference type definition, and T2 could be the same ! * as the other type definition. */ public static final int DERIVATION_UNION = 0x00000004; /** * If the document's schema is an XML Schema [XML Schema Part 1] ! * , this constant represents the list. ! *
      The reference type definition is derived by list from the other ! * type definition if there exists two type definitions T1 and T2 such ! * as the reference type definition is derived from T1 by ! * DERIVATION_RESTRICTION or ! * DERIVATION_EXTENSION, T2 is derived from the other type ! * definition by DERIVATION_RESTRICTION, T1 has {variety} list, and T2 is the {item type definition}. Note that T1 could be the same as ! * the reference type definition, and T2 could be the same as the other ! * type definition. */ public static final int DERIVATION_LIST = 0x00000008; /** ! * This method returns if there is a derivation between the reference ! * type definition, i.e. the TypeInfo on which the method ! * is being called, and the other type definition, i.e. the one passed ! * as parameters. ! * @param typeNamespaceArg the namespace of the other type definition. ! * @param typeNameArg the name of the other type definition. ! * @param derivationMethod the type of derivation and conditions applied ! * between two types, as described in the list of constants provided ! * in this interface. ! * @return If the document's schema is a DTD or no schema is associated * with the document, this method will always return false ! * . If the document's schema is an XML Schema, the method will ! * true if the reference type definition is derived from ! * the other type definition according to the derivation parameter. If ! * the value of the parameter is 0 (no bit is set to ! * 1 for the derivationMethod parameter), ! * the method will return true if the other type ! * definition can be reached by recursing any combination of {base ! * type definition}, {item type definition}, or {member type ! * definitions} from the reference type definition. */ ! public boolean isDerivedFrom(String typeNamespaceArg, ! String typeNameArg, int derivationMethod); } --- 110,185 ---- * If the document's schema is an XML Schema [XML Schema Part 1] * , this constant represents the derivation by * restriction if complex types are involved, or a ! * restriction if simple types are involved. ! *
      The reference type definition is derived by restriction from the ! * other type definition if the other type definition is the same as the ! * reference type definition, or if the other type definition can be ! * reached recursively following the {base type definition} property ! * from the reference type definition, and all the derivation methods involved are restriction. */ public static final int DERIVATION_RESTRICTION = 0x00000001; /** * If the document's schema is an XML Schema [XML Schema Part 1] * , this constant represents the derivation by ! * extension. ! *
      The reference type definition is derived by extension from the ! * other type definition if the other type definition can be reached ! * recursively following the {base type definition} property from the ! * reference type definition, and at least one of the derivation methods involved is an extension. */ public static final int DERIVATION_EXTENSION = 0x00000002; /** * If the document's schema is an XML Schema [XML Schema Part 1] * , this constant represents the ! * union if simple types are involved. ! *
      The reference type definition is derived by union from the other ! * type definition if there exists two type definitions T1 and T2 such ! * as the reference type definition is derived from T1 by ! * DERIVATION_RESTRICTION or ! * DERIVATION_EXTENSION, T2 is derived from the other type ! * definition by DERIVATION_RESTRICTION, T1 has {variety} union, and one of the {member type definitions} is T2. Note that T1 could be ! * the same as the reference type definition, and T2 could be the same ! * as the other type definition. */ public static final int DERIVATION_UNION = 0x00000004; /** * If the document's schema is an XML Schema [XML Schema Part 1] ! * , this constant represents the list. ! *
      The reference type definition is derived by list from the other ! * type definition if there exists two type definitions T1 and T2 such ! * as the reference type definition is derived from T1 by ! * DERIVATION_RESTRICTION or ! * DERIVATION_EXTENSION, T2 is derived from the other type ! * definition by DERIVATION_RESTRICTION, T1 has {variety} list, and T2 is the {item type definition}. Note that T1 could be the same as ! * the reference type definition, and T2 could be the same as the other ! * type definition. */ public static final int DERIVATION_LIST = 0x00000008; /** ! * This method returns if there is a derivation between the reference ! * type definition, i.e. the TypeInfo on which the method ! * is being called, and the other type definition, i.e. the one passed ! * as parameters. ! * @param typeNamespaceArg the namespace of the other type definition. ! * @param typeNameArg the name of the other type definition. ! * @param derivationMethod the type of derivation and conditions applied ! * between two types, as described in the list of constants provided ! * in this interface. ! * @return If the document's schema is a DTD or no schema is associated * with the document, this method will always return false ! * . If the document's schema is an XML Schema, the method will ! * true if the reference type definition is derived from ! * the other type definition according to the derivation parameter. If ! * the value of the parameter is 0 (no bit is set to ! * 1 for the derivationMethod parameter), ! * the method will return true if the other type ! * definition can be reached by recursing any combination of {base ! * type definition}, {item type definition}, or {member type ! * definitions} from the reference type definition. */ ! public boolean isDerivedFrom(String typeNamespaceArg, ! String typeNameArg, int derivationMethod); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java Tue Jan 11 19:46:05 2011 *************** *** 13,24 **** package org.w3c.dom; /** ! * When associating an object to a key on a node using ! * Node.setUserData() the application can provide a handler ! * that gets called when the node the object is associated to is being ! * cloned, imported, or renamed. This can be used by the application to ! * implement various behaviors regarding the data it associates to the DOM ! * nodes. This interface defines that handler. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ --- 13,24 ---- package org.w3c.dom; /** ! * When associating an object to a key on a node using ! * Node.setUserData() the application can provide a handler ! * that gets called when the node the object is associated to is being ! * cloned, imported, or renamed. This can be used by the application to ! * implement various behaviors regarding the data it associates to the DOM ! * nodes. This interface defines that handler. *

      See also the Document Object Model (DOM) Level 3 Core Specification. * @since DOM Level 3 */ *************** public interface UserDataHandler { *** 34,41 **** public static final short NODE_IMPORTED = 2; /** * The node is deleted. ! *

      Note: This may not be supported or may not be reliable in ! * certain environments, such as Java, where the implementation has no * real control over when objects are actually deleted. */ public static final short NODE_DELETED = 3; --- 34,41 ---- public static final short NODE_IMPORTED = 2; /** * The node is deleted. ! *

      Note: This may not be supported or may not be reliable in ! * certain environments, such as Java, where the implementation has no * real control over when objects are actually deleted. */ public static final short NODE_DELETED = 3; *************** public interface UserDataHandler { *** 49,72 **** public static final short NODE_ADOPTED = 5; /** ! * This method is called whenever the node for which this handler is * registered is imported or cloned. ! *
      DOM applications must not raise exceptions in a ! * UserDataHandler. The effect of throwing exceptions from ! * the handler is DOM implementation dependent. ! * @param operation Specifies the type of operation that is being * performed on the node. ! * @param key Specifies the key for which this handler is being called. ! * @param data Specifies the data for which this handler is being called. ! * @param src Specifies the node being cloned, adopted, imported, or * renamed. This is null when the node is being deleted. ! * @param dst Specifies the node newly created if any, or * null. */ ! public void handle(short operation, ! String key, ! Object data, ! Node src, Node dst); } --- 49,72 ---- public static final short NODE_ADOPTED = 5; /** ! * This method is called whenever the node for which this handler is * registered is imported or cloned. ! *
      DOM applications must not raise exceptions in a ! * UserDataHandler. The effect of throwing exceptions from ! * the handler is DOM implementation dependent. ! * @param operation Specifies the type of operation that is being * performed on the node. ! * @param key Specifies the key for which this handler is being called. ! * @param data Specifies the data for which this handler is being called. ! * @param src Specifies the node being cloned, adopted, imported, or * renamed. This is null when the node is being deleted. ! * @param dst Specifies the node newly created if any, or * null. */ ! public void handle(short operation, ! String key, ! Object data, ! Node src, Node dst); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java Tue Jan 11 19:46:05 2011 *************** public final class DOMImplementationRegi *** 58,83 **** * DOMImplementationSource class names. */ public static final String PROPERTY = ! "org.w3c.dom.DOMImplementationSourceList"; ! /** * Default columns per line. */ private static final int DEFAULT_LINE_LENGTH = 80; ! /** * The list of DOMImplementationSources. */ private Vector sources; ! /** * Private constructor. * @param srcs Vector List of DOMImplementationSources */ private DOMImplementationRegistry(final Vector srcs) { ! sources = srcs; } ! /** * Obtain a new instance of a DOMImplementationRegistry. * --- 58,83 ---- * DOMImplementationSource class names. */ public static final String PROPERTY = ! "org.w3c.dom.DOMImplementationSourceList"; ! /** * Default columns per line. */ private static final int DEFAULT_LINE_LENGTH = 80; ! /** * The list of DOMImplementationSources. */ private Vector sources; ! /** * Private constructor. * @param srcs Vector List of DOMImplementationSources */ private DOMImplementationRegistry(final Vector srcs) { ! sources = srcs; } ! /** * Obtain a new instance of a DOMImplementationRegistry. * *************** public final class DOMImplementationRegi *** 106,154 **** * DOMImplementationSource */ public static DOMImplementationRegistry newInstance() ! throws ! ClassNotFoundException, ! InstantiationException, ! IllegalAccessException, ! ClassCastException { ! Vector sources = new Vector(); ! ! ClassLoader classLoader = getClassLoader(); ! // fetch system property: ! String p = getSystemProperty(PROPERTY); ! ! // ! // if property is not specified then use contents of // META_INF/org.w3c.dom.DOMImplementationSourceList from classpath - if (p == null) { - p = getServiceValue(classLoader); - } if (p == null) { ! // ! // DOM Implementations can modify here to add *additional* fallback ! // mechanisms to access a list of default DOMImplementationSources. ! p = "gnu.xml.dom.ImplementationSource"; ! } ! if (p != null) { ! StringTokenizer st = new StringTokenizer(p); ! while (st.hasMoreTokens()) { ! String sourceName = st.nextToken(); ! // Use context class loader, falling back to Class.forName ! // if and only if this fails... ! Class sourceClass = null; ! if (classLoader != null) { ! sourceClass = classLoader.loadClass(sourceName); ! } else { ! sourceClass = Class.forName(sourceName); ! } ! DOMImplementationSource source = ! (DOMImplementationSource) sourceClass.newInstance(); ! sources.addElement(source); ! } ! } ! return new DOMImplementationRegistry(sources); } ! /** * Return the first implementation that has the desired * features, or null if none is found. --- 106,154 ---- * DOMImplementationSource */ public static DOMImplementationRegistry newInstance() ! throws ! ClassNotFoundException, ! InstantiationException, ! IllegalAccessException, ! ClassCastException { ! Vector sources = new Vector(); ! ! ClassLoader classLoader = getClassLoader(); ! // fetch system property: ! String p = getSystemProperty(PROPERTY); ! ! // ! // if property is not specified then use contents of // META_INF/org.w3c.dom.DOMImplementationSourceList from classpath if (p == null) { ! p = getServiceValue(classLoader); ! } ! if (p == null) { ! // ! // DOM Implementations can modify here to add *additional* fallback ! // mechanisms to access a list of default DOMImplementationSources. ! p = "gnu.xml.dom.ImplementationSource"; ! } ! if (p != null) { ! StringTokenizer st = new StringTokenizer(p); ! while (st.hasMoreTokens()) { ! String sourceName = st.nextToken(); ! // Use context class loader, falling back to Class.forName ! // if and only if this fails... ! Class sourceClass = null; ! if (classLoader != null) { ! sourceClass = classLoader.loadClass(sourceName); ! } else { ! sourceClass = Class.forName(sourceName); ! } ! DOMImplementationSource source = ! (DOMImplementationSource) sourceClass.newInstance(); ! sources.addElement(source); ! } ! } ! return new DOMImplementationRegistry(sources); } ! /** * Return the first implementation that has the desired * features, or null if none is found. *************** public final class DOMImplementationRegi *** 162,180 **** * or null if none found. */ public DOMImplementation getDOMImplementation(final String features) { ! int size = sources.size(); ! String name = null; ! for (int i = 0; i < size; i++) { ! DOMImplementationSource source = ! (DOMImplementationSource) sources.elementAt(i); ! DOMImplementation impl = source.getDOMImplementation(features); ! if (impl != null) { ! return impl; ! } ! } ! return null; } ! /** * Return a list of implementations that support the * desired features. --- 162,180 ---- * or null if none found. */ public DOMImplementation getDOMImplementation(final String features) { ! int size = sources.size(); ! String name = null; ! for (int i = 0; i < size; i++) { ! DOMImplementationSource source = ! (DOMImplementationSource) sources.elementAt(i); ! DOMImplementation impl = source.getDOMImplementation(features); ! if (impl != null) { ! return impl; ! } ! } ! return null; } ! /** * Return a list of implementations that support the * desired features. *************** public final class DOMImplementationRegi *** 187,237 **** * @return A list of DOMImplementations that support the desired features. */ public DOMImplementationList getDOMImplementationList(final String features) { ! final Vector implementations = new Vector(); ! int size = sources.size(); ! for (int i = 0; i < size; i++) { ! DOMImplementationSource source = ! (DOMImplementationSource) sources.elementAt(i); ! DOMImplementationList impls = ! source.getDOMImplementationList(features); ! for (int j = 0; j < impls.getLength(); j++) { ! DOMImplementation impl = impls.item(j); ! implementations.addElement(impl); ! } ! } ! return new DOMImplementationList() { ! public DOMImplementation item(final int index) { ! if (index >= 0 && index < implementations.size()) { ! try { ! return (DOMImplementation) ! implementations.elementAt(index); ! } catch (ArrayIndexOutOfBoundsException e) { ! return null; ! } ! } ! return null; ! } ! ! public int getLength() { ! return implementations.size(); ! } ! }; } ! /** * Register an implementation. * * @param s The source to be registered, may not be null */ public void addSource(final DOMImplementationSource s) { ! if (s == null) { ! throw new NullPointerException(); ! } ! if (!sources.contains(s)) { ! sources.addElement(s); ! } } ! /** * * Gets a class loader. --- 187,237 ---- * @return A list of DOMImplementations that support the desired features. */ public DOMImplementationList getDOMImplementationList(final String features) { ! final Vector implementations = new Vector(); ! int size = sources.size(); ! for (int i = 0; i < size; i++) { ! DOMImplementationSource source = ! (DOMImplementationSource) sources.elementAt(i); ! DOMImplementationList impls = ! source.getDOMImplementationList(features); ! for (int j = 0; j < impls.getLength(); j++) { ! DOMImplementation impl = impls.item(j); ! implementations.addElement(impl); ! } ! } ! return new DOMImplementationList() { ! public DOMImplementation item(final int index) { ! if (index >= 0 && index < implementations.size()) { ! try { ! return (DOMImplementation) ! implementations.elementAt(index); ! } catch (ArrayIndexOutOfBoundsException e) { ! return null; ! } ! } ! return null; ! } ! ! public int getLength() { ! return implementations.size(); ! } ! }; } ! /** * Register an implementation. * * @param s The source to be registered, may not be null */ public void addSource(final DOMImplementationSource s) { ! if (s == null) { ! throw new NullPointerException(); ! } ! if (!sources.contains(s)) { ! sources.addElement(s); ! } } ! /** * * Gets a class loader. *************** public final class DOMImplementationRegi *** 239,258 **** * @return A class loader, possibly null */ private static ClassLoader getClassLoader() { ! try { ! ClassLoader contextClassLoader = getContextClassLoader(); ! ! if (contextClassLoader != null) { ! return contextClassLoader; ! } ! } catch (Exception e) { ! // Assume that the DOM application is in a JRE 1.1, use the ! // current ClassLoader ! return DOMImplementationRegistry.class.getClassLoader(); ! } ! return DOMImplementationRegistry.class.getClassLoader(); } ! /** * This method attempts to return the first line of the resource * META_INF/services/org.w3c.dom.DOMImplementationSourceList --- 239,258 ---- * @return A class loader, possibly null */ private static ClassLoader getClassLoader() { ! try { ! ClassLoader contextClassLoader = getContextClassLoader(); ! ! if (contextClassLoader != null) { ! return contextClassLoader; ! } ! } catch (Exception e) { ! // Assume that the DOM application is in a JRE 1.1, use the ! // current ClassLoader ! return DOMImplementationRegistry.class.getClassLoader(); ! } ! return DOMImplementationRegistry.class.getClassLoader(); } ! /** * This method attempts to return the first line of the resource * META_INF/services/org.w3c.dom.DOMImplementationSourceList *************** public final class DOMImplementationRegi *** 262,313 **** * @return first line of resource, or null */ private static String getServiceValue(final ClassLoader classLoader) { ! String serviceId = "META-INF/services/" + PROPERTY; ! // try to find services in CLASSPATH ! try { ! InputStream is = getResourceAsStream(classLoader, serviceId); ! ! if (is != null) { ! BufferedReader rd; ! try { ! rd = ! new BufferedReader(new InputStreamReader(is, "UTF-8"), ! DEFAULT_LINE_LENGTH); ! } catch (java.io.UnsupportedEncodingException e) { ! rd = ! new BufferedReader(new InputStreamReader(is), ! DEFAULT_LINE_LENGTH); ! } ! String serviceValue = rd.readLine(); ! rd.close(); ! if (serviceValue != null && serviceValue.length() > 0) { ! return serviceValue; ! } ! } ! } catch (Exception ex) { ! return null; ! } ! return null; } ! /** * A simple JRE (Java Runtime Environment) 1.1 test * ! * @return true if JRE 1.1 */ private static boolean isJRE11() { ! try { ! Class c = Class.forName("java.security.AccessController"); ! // java.security.AccessController existed since 1.2 so, if no ! // exception was thrown, the DOM application is running in a JRE ! // 1.2 or higher ! return false; ! } catch (Exception ex) { ! // ignore ! } ! return true; } ! /** * This method returns the ContextClassLoader or null if * running in a JRE 1.1 --- 262,313 ---- * @return first line of resource, or null */ private static String getServiceValue(final ClassLoader classLoader) { ! String serviceId = "META-INF/services/" + PROPERTY; ! // try to find services in CLASSPATH ! try { ! InputStream is = getResourceAsStream(classLoader, serviceId); ! ! if (is != null) { ! BufferedReader rd; ! try { ! rd = ! new BufferedReader(new InputStreamReader(is, "UTF-8"), ! DEFAULT_LINE_LENGTH); ! } catch (java.io.UnsupportedEncodingException e) { ! rd = ! new BufferedReader(new InputStreamReader(is), ! DEFAULT_LINE_LENGTH); ! } ! String serviceValue = rd.readLine(); ! rd.close(); ! if (serviceValue != null && serviceValue.length() > 0) { ! return serviceValue; ! } ! } ! } catch (Exception ex) { ! return null; ! } ! return null; } ! /** * A simple JRE (Java Runtime Environment) 1.1 test * ! * @return true if JRE 1.1 */ private static boolean isJRE11() { ! try { ! Class c = Class.forName("java.security.AccessController"); ! // java.security.AccessController existed since 1.2 so, if no ! // exception was thrown, the DOM application is running in a JRE ! // 1.2 or higher ! return false; ! } catch (Exception ex) { ! // ignore ! } ! return true; } ! /** * This method returns the ContextClassLoader or null if * running in a JRE 1.1 *************** public final class DOMImplementationRegi *** 315,387 **** * @return The Context Classloader */ private static ClassLoader getContextClassLoader() { ! return isJRE11() ! ? null ! : (ClassLoader) ! AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() { ! ClassLoader classLoader = null; ! try { ! classLoader = ! Thread.currentThread().getContextClassLoader(); ! } catch (SecurityException ex) { ! } ! return classLoader; ! } ! }); } ! /** * This method returns the system property indicated by the specified name * after checking access control privileges. For a JRE 1.1, this check is * not done. ! * ! * @param name the name of the system property * @return the system property */ private static String getSystemProperty(final String name) { ! return isJRE11() ! ? (String) System.getProperty(name) ! : (String) AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() { ! return System.getProperty(name); ! } ! }); } ! /** * This method returns an Inputstream for the reading resource * META_INF/services/org.w3c.dom.DOMImplementationSourceList after checking * access control privileges. For a JRE 1.1, this check is not done. * ! * @param classLoader classLoader ! * @param name the resource * @return an Inputstream for the resource specified */ private static InputStream getResourceAsStream(final ClassLoader classLoader, ! final String name) { ! if (isJRE11()) { ! InputStream ris; ! if (classLoader == null) { ! ris = ClassLoader.getSystemResourceAsStream(name); ! } else { ! ris = classLoader.getResourceAsStream(name); ! } ! return ris; ! } else { ! return (InputStream) ! AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() { ! InputStream ris; ! if (classLoader == null) { ! ris = ! ClassLoader.getSystemResourceAsStream(name); ! } else { ! ris = classLoader.getResourceAsStream(name); ! } ! return ris; ! } ! }); ! } } } --- 315,387 ---- * @return The Context Classloader */ private static ClassLoader getContextClassLoader() { ! return isJRE11() ! ? null ! : (ClassLoader) ! AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() { ! ClassLoader classLoader = null; ! try { ! classLoader = ! Thread.currentThread().getContextClassLoader(); ! } catch (SecurityException ex) { ! } ! return classLoader; ! } ! }); } ! /** * This method returns the system property indicated by the specified name * after checking access control privileges. For a JRE 1.1, this check is * not done. ! * ! * @param name the name of the system property * @return the system property */ private static String getSystemProperty(final String name) { ! return isJRE11() ! ? (String) System.getProperty(name) ! : (String) AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() { ! return System.getProperty(name); ! } ! }); } ! /** * This method returns an Inputstream for the reading resource * META_INF/services/org.w3c.dom.DOMImplementationSourceList after checking * access control privileges. For a JRE 1.1, this check is not done. * ! * @param classLoader classLoader ! * @param name the resource * @return an Inputstream for the resource specified */ private static InputStream getResourceAsStream(final ClassLoader classLoader, ! final String name) { ! if (isJRE11()) { ! InputStream ris; ! if (classLoader == null) { ! ris = ClassLoader.getSystemResourceAsStream(name); ! } else { ! ris = classLoader.getResourceAsStream(name); ! } ! return ris; ! } else { ! return (InputStream) ! AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() { ! InputStream ris; ! if (classLoader == null) { ! ris = ! ClassLoader.getSystemResourceAsStream(name); ! } else { ! ris = classLoader.getResourceAsStream(name); ! } ! return ris; ! } ! }); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.css; *** 15,79 **** import org.w3c.dom.DOMException; /** ! * The CSS2Properties interface represents a convenience ! * mechanism for retrieving and setting properties within a ! * CSSStyleDeclaration. The attributes of this interface ! * correspond to all the properties specified in CSS2. Getting an attribute ! * of this interface is equivalent to calling the ! * getPropertyValue method of the ! * CSSStyleDeclaration interface. Setting an attribute of this ! * interface is equivalent to calling the setProperty method of ! * the CSSStyleDeclaration interface. ! *

      A conformant implementation of the CSS module is not required to ! * implement the CSS2Properties interface. If an implementation ! * does implement this interface, the expectation is that language-specific ! * methods can be used to cast from an instance of the ! * CSSStyleDeclaration interface to the ! * CSS2Properties interface. ! *

      If an implementation does implement this interface, it is expected to ! * understand the specific syntax of the shorthand properties, and apply ! * their semantics; when the margin property is set, for ! * example, the marginTop, marginRight, ! * marginBottom and marginLeft properties are ! * actually being set by the underlying implementation. ! *

      When dealing with CSS "shorthand" properties, the shorthand properties ! * should be decomposed into their component longhand properties as ! * appropriate, and when querying for their value, the form returned should ! * be the shortest form exactly equivalent to the declarations made in the ! * ruleset. However, if there is no shorthand declaration that could be ! * added to the ruleset without changing in any way the rules already ! * declared in the ruleset (i.e., by adding longhand rules that were ! * previously not declared in the ruleset), then the empty string should be ! * returned for the shorthand property. ! *

      For example, querying for the font property should not ! * return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt ! * Arial, sans-serif" suffices. (The normals are initial values, and are ! * implied by use of the longhand property.) ! *

      If the values for all the longhand properties that compose a particular ! * string are the initial values, then a string consisting of all the ! * initial values should be returned (e.g. a border-width value ! * of "medium" should be returned as such, not as ""). ! *

      For some shorthand properties that take missing values from other ! * sides, such as the margin, padding, and ! * border-[width|style|color] properties, the minimum number of ! * sides possible should be used; i.e., "0px 10px" will be returned instead ! * of "0px 10px 0px 10px". ! *

      If the value of a shorthand property can not be decomposed into its ! * component longhand properties, as is the case for the font ! * property with a value of "menu", querying for the values of the component ! * longhand properties should return the empty string. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSS2Properties { /** ! * See the azimuth property definition in CSS2. */ public String getAzimuth(); /** ! * See the azimuth property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 15,79 ---- import org.w3c.dom.DOMException; /** ! * The CSS2Properties interface represents a convenience ! * mechanism for retrieving and setting properties within a ! * CSSStyleDeclaration. The attributes of this interface ! * correspond to all the properties specified in CSS2. Getting an attribute ! * of this interface is equivalent to calling the ! * getPropertyValue method of the ! * CSSStyleDeclaration interface. Setting an attribute of this ! * interface is equivalent to calling the setProperty method of ! * the CSSStyleDeclaration interface. ! *

      A conformant implementation of the CSS module is not required to ! * implement the CSS2Properties interface. If an implementation ! * does implement this interface, the expectation is that language-specific ! * methods can be used to cast from an instance of the ! * CSSStyleDeclaration interface to the ! * CSS2Properties interface. ! *

      If an implementation does implement this interface, it is expected to ! * understand the specific syntax of the shorthand properties, and apply ! * their semantics; when the margin property is set, for ! * example, the marginTop, marginRight, ! * marginBottom and marginLeft properties are ! * actually being set by the underlying implementation. ! *

      When dealing with CSS "shorthand" properties, the shorthand properties ! * should be decomposed into their component longhand properties as ! * appropriate, and when querying for their value, the form returned should ! * be the shortest form exactly equivalent to the declarations made in the ! * ruleset. However, if there is no shorthand declaration that could be ! * added to the ruleset without changing in any way the rules already ! * declared in the ruleset (i.e., by adding longhand rules that were ! * previously not declared in the ruleset), then the empty string should be ! * returned for the shorthand property. ! *

      For example, querying for the font property should not ! * return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt ! * Arial, sans-serif" suffices. (The normals are initial values, and are ! * implied by use of the longhand property.) ! *

      If the values for all the longhand properties that compose a particular ! * string are the initial values, then a string consisting of all the ! * initial values should be returned (e.g. a border-width value ! * of "medium" should be returned as such, not as ""). ! *

      For some shorthand properties that take missing values from other ! * sides, such as the margin, padding, and ! * border-[width|style|color] properties, the minimum number of ! * sides possible should be used; i.e., "0px 10px" will be returned instead ! * of "0px 10px 0px 10px". ! *

      If the value of a shorthand property can not be decomposed into its ! * component longhand properties, as is the case for the font ! * property with a value of "menu", querying for the values of the component ! * longhand properties should return the empty string. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSS2Properties { /** ! * See the azimuth property definition in CSS2. */ public String getAzimuth(); /** ! * See the azimuth property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 81,93 **** throws DOMException; /** ! * See the background property definition in CSS2. */ public String getBackground(); /** ! * See the background property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 81,93 ---- throws DOMException; /** ! * See the background property definition in CSS2. */ public String getBackground(); /** ! * See the background property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 95,107 **** throws DOMException; /** ! * See the background-attachment property definition in CSS2. */ public String getBackgroundAttachment(); /** ! * See the background-attachment property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 95,107 ---- throws DOMException; /** ! * See the background-attachment property definition in CSS2. */ public String getBackgroundAttachment(); /** ! * See the background-attachment property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 109,121 **** throws DOMException; /** ! * See the background-color property definition in CSS2. */ public String getBackgroundColor(); /** ! * See the background-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 109,121 ---- throws DOMException; /** ! * See the background-color property definition in CSS2. */ public String getBackgroundColor(); /** ! * See the background-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 123,135 **** throws DOMException; /** ! * See the background-image property definition in CSS2. */ public String getBackgroundImage(); /** ! * See the background-image property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 123,135 ---- throws DOMException; /** ! * See the background-image property definition in CSS2. */ public String getBackgroundImage(); /** ! * See the background-image property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 137,149 **** throws DOMException; /** ! * See the background-position property definition in CSS2. */ public String getBackgroundPosition(); /** ! * See the background-position property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 137,149 ---- throws DOMException; /** ! * See the background-position property definition in CSS2. */ public String getBackgroundPosition(); /** ! * See the background-position property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 151,163 **** throws DOMException; /** ! * See the background-repeat property definition in CSS2. */ public String getBackgroundRepeat(); /** ! * See the background-repeat property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 151,163 ---- throws DOMException; /** ! * See the background-repeat property definition in CSS2. */ public String getBackgroundRepeat(); /** ! * See the background-repeat property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 165,177 **** throws DOMException; /** ! * See the border property definition in CSS2. */ public String getBorder(); /** ! * See the border property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 165,177 ---- throws DOMException; /** ! * See the border property definition in CSS2. */ public String getBorder(); /** ! * See the border property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 179,191 **** throws DOMException; /** ! * See the border-collapse property definition in CSS2. */ public String getBorderCollapse(); /** ! * See the border-collapse property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 179,191 ---- throws DOMException; /** ! * See the border-collapse property definition in CSS2. */ public String getBorderCollapse(); /** ! * See the border-collapse property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 193,205 **** throws DOMException; /** ! * See the border-color property definition in CSS2. */ public String getBorderColor(); /** ! * See the border-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 193,205 ---- throws DOMException; /** ! * See the border-color property definition in CSS2. */ public String getBorderColor(); /** ! * See the border-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 207,219 **** throws DOMException; /** ! * See the border-spacing property definition in CSS2. */ public String getBorderSpacing(); /** ! * See the border-spacing property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 207,219 ---- throws DOMException; /** ! * See the border-spacing property definition in CSS2. */ public String getBorderSpacing(); /** ! * See the border-spacing property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 221,233 **** throws DOMException; /** ! * See the border-style property definition in CSS2. */ public String getBorderStyle(); /** ! * See the border-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 221,233 ---- throws DOMException; /** ! * See the border-style property definition in CSS2. */ public String getBorderStyle(); /** ! * See the border-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 235,247 **** throws DOMException; /** ! * See the border-top property definition in CSS2. */ public String getBorderTop(); /** ! * See the border-top property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 235,247 ---- throws DOMException; /** ! * See the border-top property definition in CSS2. */ public String getBorderTop(); /** ! * See the border-top property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 249,261 **** throws DOMException; /** ! * See the border-right property definition in CSS2. */ public String getBorderRight(); /** ! * See the border-right property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 249,261 ---- throws DOMException; /** ! * See the border-right property definition in CSS2. */ public String getBorderRight(); /** ! * See the border-right property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 263,275 **** throws DOMException; /** ! * See the border-bottom property definition in CSS2. */ public String getBorderBottom(); /** ! * See the border-bottom property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 263,275 ---- throws DOMException; /** ! * See the border-bottom property definition in CSS2. */ public String getBorderBottom(); /** ! * See the border-bottom property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 277,289 **** throws DOMException; /** ! * See the border-left property definition in CSS2. */ public String getBorderLeft(); /** ! * See the border-left property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 277,289 ---- throws DOMException; /** ! * See the border-left property definition in CSS2. */ public String getBorderLeft(); /** ! * See the border-left property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 291,303 **** throws DOMException; /** ! * See the border-top-color property definition in CSS2. */ public String getBorderTopColor(); /** ! * See the border-top-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 291,303 ---- throws DOMException; /** ! * See the border-top-color property definition in CSS2. */ public String getBorderTopColor(); /** ! * See the border-top-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 305,317 **** throws DOMException; /** ! * See the border-right-color property definition in CSS2. */ public String getBorderRightColor(); /** ! * See the border-right-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 305,317 ---- throws DOMException; /** ! * See the border-right-color property definition in CSS2. */ public String getBorderRightColor(); /** ! * See the border-right-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 319,331 **** throws DOMException; /** ! * See the border-bottom-color property definition in CSS2. */ public String getBorderBottomColor(); /** ! * See the border-bottom-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 319,331 ---- throws DOMException; /** ! * See the border-bottom-color property definition in CSS2. */ public String getBorderBottomColor(); /** ! * See the border-bottom-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 333,345 **** throws DOMException; /** ! * See the border-left-color property definition in CSS2. */ public String getBorderLeftColor(); /** ! * See the border-left-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 333,345 ---- throws DOMException; /** ! * See the border-left-color property definition in CSS2. */ public String getBorderLeftColor(); /** ! * See the border-left-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 347,359 **** throws DOMException; /** ! * See the border-top-style property definition in CSS2. */ public String getBorderTopStyle(); /** ! * See the border-top-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 347,359 ---- throws DOMException; /** ! * See the border-top-style property definition in CSS2. */ public String getBorderTopStyle(); /** ! * See the border-top-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 361,373 **** throws DOMException; /** ! * See the border-right-style property definition in CSS2. */ public String getBorderRightStyle(); /** ! * See the border-right-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 361,373 ---- throws DOMException; /** ! * See the border-right-style property definition in CSS2. */ public String getBorderRightStyle(); /** ! * See the border-right-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 375,387 **** throws DOMException; /** ! * See the border-bottom-style property definition in CSS2. */ public String getBorderBottomStyle(); /** ! * See the border-bottom-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 375,387 ---- throws DOMException; /** ! * See the border-bottom-style property definition in CSS2. */ public String getBorderBottomStyle(); /** ! * See the border-bottom-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 389,401 **** throws DOMException; /** ! * See the border-left-style property definition in CSS2. */ public String getBorderLeftStyle(); /** ! * See the border-left-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 389,401 ---- throws DOMException; /** ! * See the border-left-style property definition in CSS2. */ public String getBorderLeftStyle(); /** ! * See the border-left-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 403,415 **** throws DOMException; /** ! * See the border-top-width property definition in CSS2. */ public String getBorderTopWidth(); /** ! * See the border-top-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 403,415 ---- throws DOMException; /** ! * See the border-top-width property definition in CSS2. */ public String getBorderTopWidth(); /** ! * See the border-top-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 417,429 **** throws DOMException; /** ! * See the border-right-width property definition in CSS2. */ public String getBorderRightWidth(); /** ! * See the border-right-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 417,429 ---- throws DOMException; /** ! * See the border-right-width property definition in CSS2. */ public String getBorderRightWidth(); /** ! * See the border-right-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 431,443 **** throws DOMException; /** ! * See the border-bottom-width property definition in CSS2. */ public String getBorderBottomWidth(); /** ! * See the border-bottom-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 431,443 ---- throws DOMException; /** ! * See the border-bottom-width property definition in CSS2. */ public String getBorderBottomWidth(); /** ! * See the border-bottom-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 445,457 **** throws DOMException; /** ! * See the border-left-width property definition in CSS2. */ public String getBorderLeftWidth(); /** ! * See the border-left-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 445,457 ---- throws DOMException; /** ! * See the border-left-width property definition in CSS2. */ public String getBorderLeftWidth(); /** ! * See the border-left-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 459,471 **** throws DOMException; /** ! * See the border-width property definition in CSS2. */ public String getBorderWidth(); /** ! * See the border-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 459,471 ---- throws DOMException; /** ! * See the border-width property definition in CSS2. */ public String getBorderWidth(); /** ! * See the border-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 473,485 **** throws DOMException; /** ! * See the bottom property definition in CSS2. */ public String getBottom(); /** ! * See the bottom property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 473,485 ---- throws DOMException; /** ! * See the bottom property definition in CSS2. */ public String getBottom(); /** ! * See the bottom property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 487,499 **** throws DOMException; /** ! * See the caption-side property definition in CSS2. */ public String getCaptionSide(); /** ! * See the caption-side property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 487,499 ---- throws DOMException; /** ! * See the caption-side property definition in CSS2. */ public String getCaptionSide(); /** ! * See the caption-side property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 501,513 **** throws DOMException; /** ! * See the clear property definition in CSS2. */ public String getClear(); /** ! * See the clear property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 501,513 ---- throws DOMException; /** ! * See the clear property definition in CSS2. */ public String getClear(); /** ! * See the clear property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 515,527 **** throws DOMException; /** ! * See the clip property definition in CSS2. */ public String getClip(); /** ! * See the clip property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 515,527 ---- throws DOMException; /** ! * See the clip property definition in CSS2. */ public String getClip(); /** ! * See the clip property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 529,541 **** throws DOMException; /** ! * See the color property definition in CSS2. */ public String getColor(); /** ! * See the color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 529,541 ---- throws DOMException; /** ! * See the color property definition in CSS2. */ public String getColor(); /** ! * See the color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 543,555 **** throws DOMException; /** ! * See the content property definition in CSS2. */ public String getContent(); /** ! * See the content property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 543,555 ---- throws DOMException; /** ! * See the content property definition in CSS2. */ public String getContent(); /** ! * See the content property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 557,569 **** throws DOMException; /** ! * See the counter-increment property definition in CSS2. */ public String getCounterIncrement(); /** ! * See the counter-increment property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 557,569 ---- throws DOMException; /** ! * See the counter-increment property definition in CSS2. */ public String getCounterIncrement(); /** ! * See the counter-increment property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 571,583 **** throws DOMException; /** ! * See the counter-reset property definition in CSS2. */ public String getCounterReset(); /** ! * See the counter-reset property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 571,583 ---- throws DOMException; /** ! * See the counter-reset property definition in CSS2. */ public String getCounterReset(); /** ! * See the counter-reset property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 585,597 **** throws DOMException; /** ! * See the cue property definition in CSS2. */ public String getCue(); /** ! * See the cue property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 585,597 ---- throws DOMException; /** ! * See the cue property definition in CSS2. */ public String getCue(); /** ! * See the cue property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 599,611 **** throws DOMException; /** ! * See the cue-after property definition in CSS2. */ public String getCueAfter(); /** ! * See the cue-after property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 599,611 ---- throws DOMException; /** ! * See the cue-after property definition in CSS2. */ public String getCueAfter(); /** ! * See the cue-after property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 613,625 **** throws DOMException; /** ! * See the cue-before property definition in CSS2. */ public String getCueBefore(); /** ! * See the cue-before property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 613,625 ---- throws DOMException; /** ! * See the cue-before property definition in CSS2. */ public String getCueBefore(); /** ! * See the cue-before property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 627,639 **** throws DOMException; /** ! * See the cursor property definition in CSS2. */ public String getCursor(); /** ! * See the cursor property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 627,639 ---- throws DOMException; /** ! * See the cursor property definition in CSS2. */ public String getCursor(); /** ! * See the cursor property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 641,653 **** throws DOMException; /** ! * See the direction property definition in CSS2. */ public String getDirection(); /** ! * See the direction property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 641,653 ---- throws DOMException; /** ! * See the direction property definition in CSS2. */ public String getDirection(); /** ! * See the direction property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 655,667 **** throws DOMException; /** ! * See the display property definition in CSS2. */ public String getDisplay(); /** ! * See the display property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 655,667 ---- throws DOMException; /** ! * See the display property definition in CSS2. */ public String getDisplay(); /** ! * See the display property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 669,681 **** throws DOMException; /** ! * See the elevation property definition in CSS2. */ public String getElevation(); /** ! * See the elevation property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 669,681 ---- throws DOMException; /** ! * See the elevation property definition in CSS2. */ public String getElevation(); /** ! * See the elevation property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 683,695 **** throws DOMException; /** ! * See the empty-cells property definition in CSS2. */ public String getEmptyCells(); /** ! * See the empty-cells property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 683,695 ---- throws DOMException; /** ! * See the empty-cells property definition in CSS2. */ public String getEmptyCells(); /** ! * See the empty-cells property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 697,709 **** throws DOMException; /** ! * See the float property definition in CSS2. */ public String getCssFloat(); /** ! * See the float property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 697,709 ---- throws DOMException; /** ! * See the float property definition in CSS2. */ public String getCssFloat(); /** ! * See the float property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 711,723 **** throws DOMException; /** ! * See the font property definition in CSS2. */ public String getFont(); /** ! * See the font property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 711,723 ---- throws DOMException; /** ! * See the font property definition in CSS2. */ public String getFont(); /** ! * See the font property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 725,737 **** throws DOMException; /** ! * See the font-family property definition in CSS2. */ public String getFontFamily(); /** ! * See the font-family property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 725,737 ---- throws DOMException; /** ! * See the font-family property definition in CSS2. */ public String getFontFamily(); /** ! * See the font-family property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 739,751 **** throws DOMException; /** ! * See the font-size property definition in CSS2. */ public String getFontSize(); /** ! * See the font-size property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 739,751 ---- throws DOMException; /** ! * See the font-size property definition in CSS2. */ public String getFontSize(); /** ! * See the font-size property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 753,765 **** throws DOMException; /** ! * See the font-size-adjust property definition in CSS2. */ public String getFontSizeAdjust(); /** ! * See the font-size-adjust property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 753,765 ---- throws DOMException; /** ! * See the font-size-adjust property definition in CSS2. */ public String getFontSizeAdjust(); /** ! * See the font-size-adjust property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 767,779 **** throws DOMException; /** ! * See the font-stretch property definition in CSS2. */ public String getFontStretch(); /** ! * See the font-stretch property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 767,779 ---- throws DOMException; /** ! * See the font-stretch property definition in CSS2. */ public String getFontStretch(); /** ! * See the font-stretch property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 781,793 **** throws DOMException; /** ! * See the font-style property definition in CSS2. */ public String getFontStyle(); /** ! * See the font-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 781,793 ---- throws DOMException; /** ! * See the font-style property definition in CSS2. */ public String getFontStyle(); /** ! * See the font-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 795,807 **** throws DOMException; /** ! * See the font-variant property definition in CSS2. */ public String getFontVariant(); /** ! * See the font-variant property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 795,807 ---- throws DOMException; /** ! * See the font-variant property definition in CSS2. */ public String getFontVariant(); /** ! * See the font-variant property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 809,821 **** throws DOMException; /** ! * See the font-weight property definition in CSS2. */ public String getFontWeight(); /** ! * See the font-weight property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 809,821 ---- throws DOMException; /** ! * See the font-weight property definition in CSS2. */ public String getFontWeight(); /** ! * See the font-weight property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 823,835 **** throws DOMException; /** ! * See the height property definition in CSS2. */ public String getHeight(); /** ! * See the height property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 823,835 ---- throws DOMException; /** ! * See the height property definition in CSS2. */ public String getHeight(); /** ! * See the height property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 837,849 **** throws DOMException; /** ! * See the left property definition in CSS2. */ public String getLeft(); /** ! * See the left property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 837,849 ---- throws DOMException; /** ! * See the left property definition in CSS2. */ public String getLeft(); /** ! * See the left property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 851,863 **** throws DOMException; /** ! * See the letter-spacing property definition in CSS2. */ public String getLetterSpacing(); /** ! * See the letter-spacing property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 851,863 ---- throws DOMException; /** ! * See the letter-spacing property definition in CSS2. */ public String getLetterSpacing(); /** ! * See the letter-spacing property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 865,877 **** throws DOMException; /** ! * See the line-height property definition in CSS2. */ public String getLineHeight(); /** ! * See the line-height property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 865,877 ---- throws DOMException; /** ! * See the line-height property definition in CSS2. */ public String getLineHeight(); /** ! * See the line-height property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 879,891 **** throws DOMException; /** ! * See the list-style property definition in CSS2. */ public String getListStyle(); /** ! * See the list-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 879,891 ---- throws DOMException; /** ! * See the list-style property definition in CSS2. */ public String getListStyle(); /** ! * See the list-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 893,905 **** throws DOMException; /** ! * See the list-style-image property definition in CSS2. */ public String getListStyleImage(); /** ! * See the list-style-image property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 893,905 ---- throws DOMException; /** ! * See the list-style-image property definition in CSS2. */ public String getListStyleImage(); /** ! * See the list-style-image property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 907,919 **** throws DOMException; /** ! * See the list-style-position property definition in CSS2. */ public String getListStylePosition(); /** ! * See the list-style-position property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 907,919 ---- throws DOMException; /** ! * See the list-style-position property definition in CSS2. */ public String getListStylePosition(); /** ! * See the list-style-position property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 921,933 **** throws DOMException; /** ! * See the list-style-type property definition in CSS2. */ public String getListStyleType(); /** ! * See the list-style-type property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 921,933 ---- throws DOMException; /** ! * See the list-style-type property definition in CSS2. */ public String getListStyleType(); /** ! * See the list-style-type property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 935,947 **** throws DOMException; /** ! * See the margin property definition in CSS2. */ public String getMargin(); /** ! * See the margin property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 935,947 ---- throws DOMException; /** ! * See the margin property definition in CSS2. */ public String getMargin(); /** ! * See the margin property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 949,961 **** throws DOMException; /** ! * See the margin-top property definition in CSS2. */ public String getMarginTop(); /** ! * See the margin-top property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 949,961 ---- throws DOMException; /** ! * See the margin-top property definition in CSS2. */ public String getMarginTop(); /** ! * See the margin-top property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 963,975 **** throws DOMException; /** ! * See the margin-right property definition in CSS2. */ public String getMarginRight(); /** ! * See the margin-right property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 963,975 ---- throws DOMException; /** ! * See the margin-right property definition in CSS2. */ public String getMarginRight(); /** ! * See the margin-right property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 977,989 **** throws DOMException; /** ! * See the margin-bottom property definition in CSS2. */ public String getMarginBottom(); /** ! * See the margin-bottom property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 977,989 ---- throws DOMException; /** ! * See the margin-bottom property definition in CSS2. */ public String getMarginBottom(); /** ! * See the margin-bottom property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 991,1003 **** throws DOMException; /** ! * See the margin-left property definition in CSS2. */ public String getMarginLeft(); /** ! * See the margin-left property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 991,1003 ---- throws DOMException; /** ! * See the margin-left property definition in CSS2. */ public String getMarginLeft(); /** ! * See the margin-left property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1005,1017 **** throws DOMException; /** ! * See the marker-offset property definition in CSS2. */ public String getMarkerOffset(); /** ! * See the marker-offset property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1005,1017 ---- throws DOMException; /** ! * See the marker-offset property definition in CSS2. */ public String getMarkerOffset(); /** ! * See the marker-offset property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1019,1031 **** throws DOMException; /** ! * See the marks property definition in CSS2. */ public String getMarks(); /** ! * See the marks property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1019,1031 ---- throws DOMException; /** ! * See the marks property definition in CSS2. */ public String getMarks(); /** ! * See the marks property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1033,1045 **** throws DOMException; /** ! * See the max-height property definition in CSS2. */ public String getMaxHeight(); /** ! * See the max-height property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1033,1045 ---- throws DOMException; /** ! * See the max-height property definition in CSS2. */ public String getMaxHeight(); /** ! * See the max-height property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1047,1059 **** throws DOMException; /** ! * See the max-width property definition in CSS2. */ public String getMaxWidth(); /** ! * See the max-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1047,1059 ---- throws DOMException; /** ! * See the max-width property definition in CSS2. */ public String getMaxWidth(); /** ! * See the max-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1061,1073 **** throws DOMException; /** ! * See the min-height property definition in CSS2. */ public String getMinHeight(); /** ! * See the min-height property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1061,1073 ---- throws DOMException; /** ! * See the min-height property definition in CSS2. */ public String getMinHeight(); /** ! * See the min-height property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1075,1087 **** throws DOMException; /** ! * See the min-width property definition in CSS2. */ public String getMinWidth(); /** ! * See the min-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1075,1087 ---- throws DOMException; /** ! * See the min-width property definition in CSS2. */ public String getMinWidth(); /** ! * See the min-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1089,1101 **** throws DOMException; /** ! * See the orphans property definition in CSS2. */ public String getOrphans(); /** ! * See the orphans property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1089,1101 ---- throws DOMException; /** ! * See the orphans property definition in CSS2. */ public String getOrphans(); /** ! * See the orphans property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1103,1115 **** throws DOMException; /** ! * See the outline property definition in CSS2. */ public String getOutline(); /** ! * See the outline property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1103,1115 ---- throws DOMException; /** ! * See the outline property definition in CSS2. */ public String getOutline(); /** ! * See the outline property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1117,1129 **** throws DOMException; /** ! * See the outline-color property definition in CSS2. */ public String getOutlineColor(); /** ! * See the outline-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1117,1129 ---- throws DOMException; /** ! * See the outline-color property definition in CSS2. */ public String getOutlineColor(); /** ! * See the outline-color property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1131,1143 **** throws DOMException; /** ! * See the outline-style property definition in CSS2. */ public String getOutlineStyle(); /** ! * See the outline-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1131,1143 ---- throws DOMException; /** ! * See the outline-style property definition in CSS2. */ public String getOutlineStyle(); /** ! * See the outline-style property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1145,1157 **** throws DOMException; /** ! * See the outline-width property definition in CSS2. */ public String getOutlineWidth(); /** ! * See the outline-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1145,1157 ---- throws DOMException; /** ! * See the outline-width property definition in CSS2. */ public String getOutlineWidth(); /** ! * See the outline-width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1159,1171 **** throws DOMException; /** ! * See the overflow property definition in CSS2. */ public String getOverflow(); /** ! * See the overflow property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1159,1171 ---- throws DOMException; /** ! * See the overflow property definition in CSS2. */ public String getOverflow(); /** ! * See the overflow property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1173,1185 **** throws DOMException; /** ! * See the padding property definition in CSS2. */ public String getPadding(); /** ! * See the padding property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1173,1185 ---- throws DOMException; /** ! * See the padding property definition in CSS2. */ public String getPadding(); /** ! * See the padding property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1187,1199 **** throws DOMException; /** ! * See the padding-top property definition in CSS2. */ public String getPaddingTop(); /** ! * See the padding-top property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1187,1199 ---- throws DOMException; /** ! * See the padding-top property definition in CSS2. */ public String getPaddingTop(); /** ! * See the padding-top property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1201,1213 **** throws DOMException; /** ! * See the padding-right property definition in CSS2. */ public String getPaddingRight(); /** ! * See the padding-right property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1201,1213 ---- throws DOMException; /** ! * See the padding-right property definition in CSS2. */ public String getPaddingRight(); /** ! * See the padding-right property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1215,1227 **** throws DOMException; /** ! * See the padding-bottom property definition in CSS2. */ public String getPaddingBottom(); /** ! * See the padding-bottom property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1215,1227 ---- throws DOMException; /** ! * See the padding-bottom property definition in CSS2. */ public String getPaddingBottom(); /** ! * See the padding-bottom property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1229,1241 **** throws DOMException; /** ! * See the padding-left property definition in CSS2. */ public String getPaddingLeft(); /** ! * See the padding-left property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1229,1241 ---- throws DOMException; /** ! * See the padding-left property definition in CSS2. */ public String getPaddingLeft(); /** ! * See the padding-left property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1243,1255 **** throws DOMException; /** ! * See the page property definition in CSS2. */ public String getPage(); /** ! * See the page property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1243,1255 ---- throws DOMException; /** ! * See the page property definition in CSS2. */ public String getPage(); /** ! * See the page property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1257,1269 **** throws DOMException; /** ! * See the page-break-after property definition in CSS2. */ public String getPageBreakAfter(); /** ! * See the page-break-after property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1257,1269 ---- throws DOMException; /** ! * See the page-break-after property definition in CSS2. */ public String getPageBreakAfter(); /** ! * See the page-break-after property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1271,1283 **** throws DOMException; /** ! * See the page-break-before property definition in CSS2. */ public String getPageBreakBefore(); /** ! * See the page-break-before property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1271,1283 ---- throws DOMException; /** ! * See the page-break-before property definition in CSS2. */ public String getPageBreakBefore(); /** ! * See the page-break-before property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1285,1297 **** throws DOMException; /** ! * See the page-break-inside property definition in CSS2. */ public String getPageBreakInside(); /** ! * See the page-break-inside property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1285,1297 ---- throws DOMException; /** ! * See the page-break-inside property definition in CSS2. */ public String getPageBreakInside(); /** ! * See the page-break-inside property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1299,1311 **** throws DOMException; /** ! * See the pause property definition in CSS2. */ public String getPause(); /** ! * See the pause property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1299,1311 ---- throws DOMException; /** ! * See the pause property definition in CSS2. */ public String getPause(); /** ! * See the pause property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1313,1325 **** throws DOMException; /** ! * See the pause-after property definition in CSS2. */ public String getPauseAfter(); /** ! * See the pause-after property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1313,1325 ---- throws DOMException; /** ! * See the pause-after property definition in CSS2. */ public String getPauseAfter(); /** ! * See the pause-after property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1327,1339 **** throws DOMException; /** ! * See the pause-before property definition in CSS2. */ public String getPauseBefore(); /** ! * See the pause-before property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1327,1339 ---- throws DOMException; /** ! * See the pause-before property definition in CSS2. */ public String getPauseBefore(); /** ! * See the pause-before property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1341,1353 **** throws DOMException; /** ! * See the pitch property definition in CSS2. */ public String getPitch(); /** ! * See the pitch property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1341,1353 ---- throws DOMException; /** ! * See the pitch property definition in CSS2. */ public String getPitch(); /** ! * See the pitch property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1355,1367 **** throws DOMException; /** ! * See the pitch-range property definition in CSS2. */ public String getPitchRange(); /** ! * See the pitch-range property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1355,1367 ---- throws DOMException; /** ! * See the pitch-range property definition in CSS2. */ public String getPitchRange(); /** ! * See the pitch-range property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1369,1381 **** throws DOMException; /** ! * See the play-during property definition in CSS2. */ public String getPlayDuring(); /** ! * See the play-during property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1369,1381 ---- throws DOMException; /** ! * See the play-during property definition in CSS2. */ public String getPlayDuring(); /** ! * See the play-during property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1383,1395 **** throws DOMException; /** ! * See the position property definition in CSS2. */ public String getPosition(); /** ! * See the position property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1383,1395 ---- throws DOMException; /** ! * See the position property definition in CSS2. */ public String getPosition(); /** ! * See the position property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1397,1409 **** throws DOMException; /** ! * See the quotes property definition in CSS2. */ public String getQuotes(); /** ! * See the quotes property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1397,1409 ---- throws DOMException; /** ! * See the quotes property definition in CSS2. */ public String getQuotes(); /** ! * See the quotes property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1411,1423 **** throws DOMException; /** ! * See the richness property definition in CSS2. */ public String getRichness(); /** ! * See the richness property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1411,1423 ---- throws DOMException; /** ! * See the richness property definition in CSS2. */ public String getRichness(); /** ! * See the richness property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1425,1437 **** throws DOMException; /** ! * See the right property definition in CSS2. */ public String getRight(); /** ! * See the right property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1425,1437 ---- throws DOMException; /** ! * See the right property definition in CSS2. */ public String getRight(); /** ! * See the right property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1439,1451 **** throws DOMException; /** ! * See the size property definition in CSS2. */ public String getSize(); /** ! * See the size property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1439,1451 ---- throws DOMException; /** ! * See the size property definition in CSS2. */ public String getSize(); /** ! * See the size property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1453,1465 **** throws DOMException; /** ! * See the speak property definition in CSS2. */ public String getSpeak(); /** ! * See the speak property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1453,1465 ---- throws DOMException; /** ! * See the speak property definition in CSS2. */ public String getSpeak(); /** ! * See the speak property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1467,1479 **** throws DOMException; /** ! * See the speak-header property definition in CSS2. */ public String getSpeakHeader(); /** ! * See the speak-header property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1467,1479 ---- throws DOMException; /** ! * See the speak-header property definition in CSS2. */ public String getSpeakHeader(); /** ! * See the speak-header property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1481,1493 **** throws DOMException; /** ! * See the speak-numeral property definition in CSS2. */ public String getSpeakNumeral(); /** ! * See the speak-numeral property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1481,1493 ---- throws DOMException; /** ! * See the speak-numeral property definition in CSS2. */ public String getSpeakNumeral(); /** ! * See the speak-numeral property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1495,1507 **** throws DOMException; /** ! * See the speak-punctuation property definition in CSS2. */ public String getSpeakPunctuation(); /** ! * See the speak-punctuation property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1495,1507 ---- throws DOMException; /** ! * See the speak-punctuation property definition in CSS2. */ public String getSpeakPunctuation(); /** ! * See the speak-punctuation property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1509,1521 **** throws DOMException; /** ! * See the speech-rate property definition in CSS2. */ public String getSpeechRate(); /** ! * See the speech-rate property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1509,1521 ---- throws DOMException; /** ! * See the speech-rate property definition in CSS2. */ public String getSpeechRate(); /** ! * See the speech-rate property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1523,1535 **** throws DOMException; /** ! * See the stress property definition in CSS2. */ public String getStress(); /** ! * See the stress property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1523,1535 ---- throws DOMException; /** ! * See the stress property definition in CSS2. */ public String getStress(); /** ! * See the stress property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1537,1549 **** throws DOMException; /** ! * See the table-layout property definition in CSS2. */ public String getTableLayout(); /** ! * See the table-layout property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1537,1549 ---- throws DOMException; /** ! * See the table-layout property definition in CSS2. */ public String getTableLayout(); /** ! * See the table-layout property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1551,1563 **** throws DOMException; /** ! * See the text-align property definition in CSS2. */ public String getTextAlign(); /** ! * See the text-align property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1551,1563 ---- throws DOMException; /** ! * See the text-align property definition in CSS2. */ public String getTextAlign(); /** ! * See the text-align property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1565,1577 **** throws DOMException; /** ! * See the text-decoration property definition in CSS2. */ public String getTextDecoration(); /** ! * See the text-decoration property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1565,1577 ---- throws DOMException; /** ! * See the text-decoration property definition in CSS2. */ public String getTextDecoration(); /** ! * See the text-decoration property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1579,1591 **** throws DOMException; /** ! * See the text-indent property definition in CSS2. */ public String getTextIndent(); /** ! * See the text-indent property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1579,1591 ---- throws DOMException; /** ! * See the text-indent property definition in CSS2. */ public String getTextIndent(); /** ! * See the text-indent property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1593,1605 **** throws DOMException; /** ! * See the text-shadow property definition in CSS2. */ public String getTextShadow(); /** ! * See the text-shadow property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1593,1605 ---- throws DOMException; /** ! * See the text-shadow property definition in CSS2. */ public String getTextShadow(); /** ! * See the text-shadow property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1607,1619 **** throws DOMException; /** ! * See the text-transform property definition in CSS2. */ public String getTextTransform(); /** ! * See the text-transform property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1607,1619 ---- throws DOMException; /** ! * See the text-transform property definition in CSS2. */ public String getTextTransform(); /** ! * See the text-transform property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1621,1633 **** throws DOMException; /** ! * See the top property definition in CSS2. */ public String getTop(); /** ! * See the top property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1621,1633 ---- throws DOMException; /** ! * See the top property definition in CSS2. */ public String getTop(); /** ! * See the top property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1635,1647 **** throws DOMException; /** ! * See the unicode-bidi property definition in CSS2. */ public String getUnicodeBidi(); /** ! * See the unicode-bidi property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1635,1647 ---- throws DOMException; /** ! * See the unicode-bidi property definition in CSS2. */ public String getUnicodeBidi(); /** ! * See the unicode-bidi property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1649,1661 **** throws DOMException; /** ! * See the vertical-align property definition in CSS2. */ public String getVerticalAlign(); /** ! * See the vertical-align property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1649,1661 ---- throws DOMException; /** ! * See the vertical-align property definition in CSS2. */ public String getVerticalAlign(); /** ! * See the vertical-align property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1663,1675 **** throws DOMException; /** ! * See the visibility property definition in CSS2. */ public String getVisibility(); /** ! * See the visibility property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1663,1675 ---- throws DOMException; /** ! * See the visibility property definition in CSS2. */ public String getVisibility(); /** ! * See the visibility property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1677,1689 **** throws DOMException; /** ! * See the voice-family property definition in CSS2. */ public String getVoiceFamily(); /** ! * See the voice-family property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1677,1689 ---- throws DOMException; /** ! * See the voice-family property definition in CSS2. */ public String getVoiceFamily(); /** ! * See the voice-family property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1691,1703 **** throws DOMException; /** ! * See the volume property definition in CSS2. */ public String getVolume(); /** ! * See the volume property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1691,1703 ---- throws DOMException; /** ! * See the volume property definition in CSS2. */ public String getVolume(); /** ! * See the volume property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1705,1717 **** throws DOMException; /** ! * See the white-space property definition in CSS2. */ public String getWhiteSpace(); /** ! * See the white-space property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1705,1717 ---- throws DOMException; /** ! * See the white-space property definition in CSS2. */ public String getWhiteSpace(); /** ! * See the white-space property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1719,1731 **** throws DOMException; /** ! * See the widows property definition in CSS2. */ public String getWidows(); /** ! * See the widows property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1719,1731 ---- throws DOMException; /** ! * See the widows property definition in CSS2. */ public String getWidows(); /** ! * See the widows property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1733,1745 **** throws DOMException; /** ! * See the width property definition in CSS2. */ public String getWidth(); /** ! * See the width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1733,1745 ---- throws DOMException; /** ! * See the width property definition in CSS2. */ public String getWidth(); /** ! * See the width property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1747,1759 **** throws DOMException; /** ! * See the word-spacing property definition in CSS2. */ public String getWordSpacing(); /** ! * See the word-spacing property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1747,1759 ---- throws DOMException; /** ! * See the word-spacing property definition in CSS2. */ public String getWordSpacing(); /** ! * See the word-spacing property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ *************** public interface CSS2Properties { *** 1761,1773 **** throws DOMException; /** ! * See the z-index property definition in CSS2. */ public String getZIndex(); /** ! * See the z-index property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ --- 1761,1773 ---- throws DOMException; /** ! * See the z-index property definition in CSS2. */ public String getZIndex(); /** ! * See the z-index property definition in CSS2. * @exception DOMException ! * SYNTAX_ERR: Raised if the new value has a syntax error and is * unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.css; *** 15,48 **** import org.w3c.dom.DOMException; /** ! * The CSSCharsetRule interface represents a @charset rule in a ! * CSS style sheet. The value of the encoding attribute does ! * not affect the encoding of text data in the DOM objects; this encoding is ! * always UTF-16. After a stylesheet is loaded, the value of the ! * encoding attribute is the value found in the ! * @charset rule. If there was no @charset in the ! * original document, then no CSSCharsetRule is created. The ! * value of the encoding attribute may also be used as a hint ! * for the encoding used on serialization of the style sheet. ! *

      The value of the @charset rule (and therefore of the ! * CSSCharsetRule) may not correspond to the encoding the ! * document actually came in; character encoding information e.g. in an HTTP ! * header, has priority (see CSS document representation) but this is not ! * reflected in the CSSCharsetRule. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSCharsetRule extends CSSRule { /** ! * The encoding information used in this @charset rule. */ public String getEncoding(); /** ! * The encoding information used in this @charset rule. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified encoding value has a syntax error * and is unparsable. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is * readonly. */ public void setEncoding(String encoding) --- 15,48 ---- import org.w3c.dom.DOMException; /** ! * The CSSCharsetRule interface represents a @charset rule in a ! * CSS style sheet. The value of the encoding attribute does ! * not affect the encoding of text data in the DOM objects; this encoding is ! * always UTF-16. After a stylesheet is loaded, the value of the ! * encoding attribute is the value found in the ! * @charset rule. If there was no @charset in the ! * original document, then no CSSCharsetRule is created. The ! * value of the encoding attribute may also be used as a hint ! * for the encoding used on serialization of the style sheet. ! *

      The value of the @charset rule (and therefore of the ! * CSSCharsetRule) may not correspond to the encoding the ! * document actually came in; character encoding information e.g. in an HTTP ! * header, has priority (see CSS document representation) but this is not ! * reflected in the CSSCharsetRule. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSCharsetRule extends CSSRule { /** ! * The encoding information used in this @charset rule. */ public String getEncoding(); /** ! * The encoding information used in this @charset rule. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified encoding value has a syntax error * and is unparsable. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is * readonly. */ public void setEncoding(String encoding) diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java Tue Jan 11 19:46:05 2011 *************** *** 13,27 **** package org.w3c.dom.css; /** ! * The CSSFontFaceRule interface represents a @font-face rule in ! * a CSS style sheet. The @font-face rule is used to hold a set ! * of font descriptions. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSFontFaceRule extends CSSRule { /** ! * The declaration-block of this rule. */ public CSSStyleDeclaration getStyle(); --- 13,27 ---- package org.w3c.dom.css; /** ! * The CSSFontFaceRule interface represents a @font-face rule in ! * a CSS style sheet. The @font-face rule is used to hold a set ! * of font descriptions. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSFontFaceRule extends CSSRule { /** ! * The declaration-block of this rule. */ public CSSStyleDeclaration getStyle(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.css; *** 15,43 **** import org.w3c.dom.stylesheets.MediaList; /** ! * The CSSImportRule interface represents a @import rule within ! * a CSS style sheet. The @import rule is used to import style ! * rules from other style sheets. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSImportRule extends CSSRule { /** ! * The location of the style sheet to be imported. The attribute will not ! * contain the "url(...)" specifier around the URI. */ public String getHref(); /** ! * A list of media types for which this style sheet may be used. */ public MediaList getMedia(); /** ! * The style sheet referred to by this rule, if it has been loaded. The ! * value of this attribute is null if the style sheet has ! * not yet been loaded or if it will not be loaded (e.g. if the style ! * sheet is for a media type not supported by the user agent). */ public CSSStyleSheet getStyleSheet(); --- 15,43 ---- import org.w3c.dom.stylesheets.MediaList; /** ! * The CSSImportRule interface represents a @import rule within ! * a CSS style sheet. The @import rule is used to import style ! * rules from other style sheets. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSImportRule extends CSSRule { /** ! * The location of the style sheet to be imported. The attribute will not ! * contain the "url(...)" specifier around the URI. */ public String getHref(); /** ! * A list of media types for which this style sheet may be used. */ public MediaList getMedia(); /** ! * The style sheet referred to by this rule, if it has been loaded. The ! * value of this attribute is null if the style sheet has ! * not yet been loaded or if it will not be loaded (e.g. if the style ! * sheet is for a media type not supported by the user agent). */ public CSSStyleSheet getStyleSheet(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.DOMException; *** 16,73 **** import org.w3c.dom.stylesheets.MediaList; /** ! * The CSSMediaRule interface represents a @media rule in a CSS ! * style sheet. A @media rule can be used to delimit style ! * rules for specific media types. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSMediaRule extends CSSRule { /** ! * A list of media types for this rule. */ public MediaList getMedia(); /** ! * A list of all CSS rules contained within the media block. */ public CSSRuleList getCssRules(); /** ! * Used to insert a new rule into the media block. ! * @param rule The parsable text representing the rule. For rule sets ! * this contains both the selector and the style declaration. For ! * at-rules, this specifies both the at-identifier and the rule ! * content. ! * @param index The index within the media block's rule collection of ! * the rule before which to insert the specified rule. If the ! * specified index is equal to the length of the media blocks's rule ! * collection, the rule will be added to the end of the media block. ! * @return The index within the media block's rule collection of the ! * newly inserted rule. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the ! * specified index, e.g., if an @import rule is inserted * after a standard rule set or other at-rule. ! *
      INDEX_SIZE_ERR: Raised if the specified index is not a valid * insertion point. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is * readonly. ! *
      SYNTAX_ERR: Raised if the specified rule has a syntax error and * is unparsable. */ ! public int insertRule(String rule, int index) throws DOMException; /** ! * Used to delete a rule from the media block. ! * @param index The index within the media block's rule collection of ! * the rule to remove. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index does not correspond to * a rule in the media rule list. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is * readonly. */ public void deleteRule(int index) --- 16,73 ---- import org.w3c.dom.stylesheets.MediaList; /** ! * The CSSMediaRule interface represents a @media rule in a CSS ! * style sheet. A @media rule can be used to delimit style ! * rules for specific media types. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSMediaRule extends CSSRule { /** ! * A list of media types for this rule. */ public MediaList getMedia(); /** ! * A list of all CSS rules contained within the media block. */ public CSSRuleList getCssRules(); /** ! * Used to insert a new rule into the media block. ! * @param rule The parsable text representing the rule. For rule sets ! * this contains both the selector and the style declaration. For ! * at-rules, this specifies both the at-identifier and the rule ! * content. ! * @param index The index within the media block's rule collection of ! * the rule before which to insert the specified rule. If the ! * specified index is equal to the length of the media blocks's rule ! * collection, the rule will be added to the end of the media block. ! * @return The index within the media block's rule collection of the ! * newly inserted rule. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the ! * specified index, e.g., if an @import rule is inserted * after a standard rule set or other at-rule. ! *
      INDEX_SIZE_ERR: Raised if the specified index is not a valid * insertion point. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is * readonly. ! *
      SYNTAX_ERR: Raised if the specified rule has a syntax error and * is unparsable. */ ! public int insertRule(String rule, int index) throws DOMException; /** ! * Used to delete a rule from the media block. ! * @param index The index within the media block's rule collection of ! * the rule to remove. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index does not correspond to * a rule in the media rule list. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is * readonly. */ public void deleteRule(int index) diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.css; *** 15,35 **** import org.w3c.dom.DOMException; /** ! * The CSSPageRule interface represents a @page rule within a ! * CSS style sheet. The @page rule is used to specify the ! * dimensions, orientation, margins, etc. of a page box for paged media. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSPageRule extends CSSRule { /** ! * The parsable textual representation of the page selector for the rule. */ public String getSelectorText(); /** ! * The parsable textual representation of the page selector for the rule. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax * error and is unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly. */ --- 15,35 ---- import org.w3c.dom.DOMException; /** ! * The CSSPageRule interface represents a @page rule within a ! * CSS style sheet. The @page rule is used to specify the ! * dimensions, orientation, margins, etc. of a page box for paged media. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSPageRule extends CSSRule { /** ! * The parsable textual representation of the page selector for the rule. */ public String getSelectorText(); /** ! * The parsable textual representation of the page selector for the rule. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax * error and is unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly. */ *************** public interface CSSPageRule extends CSS *** 37,43 **** throws DOMException; /** ! * The declaration-block of this rule. */ public CSSStyleDeclaration getStyle(); --- 37,43 ---- throws DOMException; /** ! * The declaration-block of this rule. */ public CSSStyleDeclaration getStyle(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.DOMException; *** 16,168 **** /** * The CSSPrimitiveValue interface represents a single CSS value ! * . This interface may be used to determine the value of a specific style ! * property currently set in a block or to set a specific style property ! * explicitly within the block. An instance of this interface might be ! * obtained from the getPropertyCSSValue method of the ! * CSSStyleDeclaration interface. A ! * CSSPrimitiveValue object only occurs in a context of a CSS ! * property. ! *

      Conversions are allowed between absolute values (from millimeters to ! * centimeters, from degrees to radians, and so on) but not between relative ! * values. (For example, a pixel value cannot be converted to a centimeter ! * value.) Percentage values can't be converted since they are relative to ! * the parent value (or another property value). There is one exception for ! * color percentage values: since a color percentage value is relative to ! * the range 0-255, a color percentage value can be converted to a number; ! * (see also the RGBColor interface). *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSPrimitiveValue extends CSSValue { // UnitTypes /** ! * The value is not a recognized CSS2 value. The value can only be * obtained by using the cssText attribute. */ public static final short CSS_UNKNOWN = 0; /** ! * The value is a simple number. The value can be obtained by using the * getFloatValue method. */ public static final short CSS_NUMBER = 1; /** ! * The value is a percentage. The value can be obtained by using the * getFloatValue method. */ public static final short CSS_PERCENTAGE = 2; /** ! * The value is a length (ems). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_EMS = 3; /** ! * The value is a length (exs). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_EXS = 4; /** ! * The value is a length (px). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_PX = 5; /** ! * The value is a length (cm). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_CM = 6; /** ! * The value is a length (mm). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_MM = 7; /** ! * The value is a length (in). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_IN = 8; /** ! * The value is a length (pt). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_PT = 9; /** ! * The value is a length (pc). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_PC = 10; /** ! * The value is an angle (deg). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_DEG = 11; /** ! * The value is an angle (rad). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_RAD = 12; /** ! * The value is an angle (grad). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_GRAD = 13; /** ! * The value is a time (ms). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_MS = 14; /** ! * The value is a time (s). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_S = 15; /** ! * The value is a frequency (Hz). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_HZ = 16; /** ! * The value is a frequency (kHz). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_KHZ = 17; /** ! * The value is a number with an unknown dimension. The value can be * obtained by using the getFloatValue method. */ public static final short CSS_DIMENSION = 18; /** ! * The value is a STRING. The value can be obtained by using the * getStringValue method. */ public static final short CSS_STRING = 19; /** ! * The value is a URI. The value can be obtained by using the * getStringValue method. */ public static final short CSS_URI = 20; /** ! * The value is an identifier. The value can be obtained by using the * getStringValue method. */ public static final short CSS_IDENT = 21; /** ! * The value is a attribute function. The value can be obtained by using * the getStringValue method. */ public static final short CSS_ATTR = 22; /** ! * The value is a counter or counters function. The value can be obtained * by using the getCounterValue method. */ public static final short CSS_COUNTER = 23; /** ! * The value is a rect function. The value can be obtained by using the * getRectValue method. */ public static final short CSS_RECT = 24; /** ! * The value is a RGB color. The value can be obtained by using the * getRGBColorValue method. */ public static final short CSS_RGBCOLOR = 25; --- 16,168 ---- /** * The CSSPrimitiveValue interface represents a single CSS value ! * . This interface may be used to determine the value of a specific style ! * property currently set in a block or to set a specific style property ! * explicitly within the block. An instance of this interface might be ! * obtained from the getPropertyCSSValue method of the ! * CSSStyleDeclaration interface. A ! * CSSPrimitiveValue object only occurs in a context of a CSS ! * property. ! *

      Conversions are allowed between absolute values (from millimeters to ! * centimeters, from degrees to radians, and so on) but not between relative ! * values. (For example, a pixel value cannot be converted to a centimeter ! * value.) Percentage values can't be converted since they are relative to ! * the parent value (or another property value). There is one exception for ! * color percentage values: since a color percentage value is relative to ! * the range 0-255, a color percentage value can be converted to a number; ! * (see also the RGBColor interface). *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSPrimitiveValue extends CSSValue { // UnitTypes /** ! * The value is not a recognized CSS2 value. The value can only be * obtained by using the cssText attribute. */ public static final short CSS_UNKNOWN = 0; /** ! * The value is a simple number. The value can be obtained by using the * getFloatValue method. */ public static final short CSS_NUMBER = 1; /** ! * The value is a percentage. The value can be obtained by using the * getFloatValue method. */ public static final short CSS_PERCENTAGE = 2; /** ! * The value is a length (ems). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_EMS = 3; /** ! * The value is a length (exs). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_EXS = 4; /** ! * The value is a length (px). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_PX = 5; /** ! * The value is a length (cm). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_CM = 6; /** ! * The value is a length (mm). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_MM = 7; /** ! * The value is a length (in). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_IN = 8; /** ! * The value is a length (pt). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_PT = 9; /** ! * The value is a length (pc). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_PC = 10; /** ! * The value is an angle (deg). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_DEG = 11; /** ! * The value is an angle (rad). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_RAD = 12; /** ! * The value is an angle (grad). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_GRAD = 13; /** ! * The value is a time (ms). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_MS = 14; /** ! * The value is a time (s). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_S = 15; /** ! * The value is a frequency (Hz). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_HZ = 16; /** ! * The value is a frequency (kHz). The value can be obtained by using the * getFloatValue method. */ public static final short CSS_KHZ = 17; /** ! * The value is a number with an unknown dimension. The value can be * obtained by using the getFloatValue method. */ public static final short CSS_DIMENSION = 18; /** ! * The value is a STRING. The value can be obtained by using the * getStringValue method. */ public static final short CSS_STRING = 19; /** ! * The value is a URI. The value can be obtained by using the * getStringValue method. */ public static final short CSS_URI = 20; /** ! * The value is an identifier. The value can be obtained by using the * getStringValue method. */ public static final short CSS_IDENT = 21; /** ! * The value is a attribute function. The value can be obtained by using * the getStringValue method. */ public static final short CSS_ATTR = 22; /** ! * The value is a counter or counters function. The value can be obtained * by using the getCounterValue method. */ public static final short CSS_COUNTER = 23; /** ! * The value is a rect function. The value can be obtained by using the * getRectValue method. */ public static final short CSS_RECT = 24; /** ! * The value is a RGB color. The value can be obtained by using the * getRGBColorValue method. */ public static final short CSS_RGBCOLOR = 25; *************** public interface CSSPrimitiveValue exten *** 173,294 **** public short getPrimitiveType(); /** ! * A method to set the float value with a specified unit. If the property ! * attached with this value can not accept the specified unit or the ! * float value, the value will be unchanged and a ! * DOMException will be raised. ! * @param unitType A unit code as defined above. The unit code can only ! * be a float unit type (i.e. CSS_NUMBER, ! * CSS_PERCENTAGE, CSS_EMS, ! * CSS_EXS, CSS_PX, CSS_CM, ! * CSS_MM, CSS_IN, CSS_PT, ! * CSS_PC, CSS_DEG, CSS_RAD, ! * CSS_GRAD, CSS_MS, CSS_S, ! * CSS_HZ, CSS_KHZ, ! * CSS_DIMENSION). ! * @param floatValue The new float value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the attached property doesn't support * the float value or the unit type. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ ! public void setFloatValue(short unitType, float floatValue) throws DOMException; /** ! * This method is used to get a float value in a specified unit. If this ! * CSS value doesn't contain a float value or can't be converted into ! * the specified unit, a DOMException is raised. ! * @param unitType A unit code to get the float value. The unit code can ! * only be a float unit type (i.e. CSS_NUMBER, ! * CSS_PERCENTAGE, CSS_EMS, ! * CSS_EXS, CSS_PX, CSS_CM, ! * CSS_MM, CSS_IN, CSS_PT, ! * CSS_PC, CSS_DEG, CSS_RAD, ! * CSS_GRAD, CSS_MS, CSS_S, ! * CSS_HZ, CSS_KHZ, ! * CSS_DIMENSION). ! * @return The float value in the specified unit. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a float ! * value or if the float value can't be converted into the specified ! * unit. */ public float getFloatValue(short unitType) throws DOMException; /** ! * A method to set the string value with the specified unit. If the ! * property attached to this value can't accept the specified unit or ! * the string value, the value will be unchanged and a ! * DOMException will be raised. ! * @param stringType A string code as defined above. The string code can ! * only be a string unit type (i.e. CSS_STRING, ! * CSS_URI, CSS_IDENT, and ! * CSS_ATTR). ! * @param stringValue The new string value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string ! * value or if the string value can't be converted into the specified * unit. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ ! public void setStringValue(short stringType, String stringValue) throws DOMException; /** ! * This method is used to get the string value. If the CSS value doesn't ! * contain a string value, a DOMException is raised. Some ! * properties (like 'font-family' or 'voice-family') convert a ! * whitespace separated list of idents to a string. ! * @return The string value in the current unit. The current ! * primitiveType can only be a string unit type (i.e. ! * CSS_STRING, CSS_URI, ! * CSS_IDENT and CSS_ATTR). * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string ! * value. */ public String getStringValue() throws DOMException; /** ! * This method is used to get the Counter value. If this CSS value ! * doesn't contain a counter value, a DOMException is ! * raised. Modification to the corresponding style property can be ! * achieved using the Counter interface. * @return The Counter value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a ! * Counter value (e.g. this is not CSS_COUNTER). */ public Counter getCounterValue() throws DOMException; /** ! * This method is used to get the Rect value. If this CSS value doesn't ! * contain a rect value, a DOMException is raised. ! * Modification to the corresponding style property can be achieved ! * using the Rect interface. * @return The Rect value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a Rect ! * value. (e.g. this is not CSS_RECT). */ public Rect getRectValue() throws DOMException; /** ! * This method is used to get the RGB color. If this CSS value doesn't ! * contain a RGB color value, a DOMException is raised. ! * Modification to the corresponding style property can be achieved ! * using the RGBColor interface. * @return the RGB color value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the attached property can't return a ! * RGB color value (e.g. this is not CSS_RGBCOLOR). */ public RGBColor getRGBColorValue() throws DOMException; --- 173,294 ---- public short getPrimitiveType(); /** ! * A method to set the float value with a specified unit. If the property ! * attached with this value can not accept the specified unit or the ! * float value, the value will be unchanged and a ! * DOMException will be raised. ! * @param unitType A unit code as defined above. The unit code can only ! * be a float unit type (i.e. CSS_NUMBER, ! * CSS_PERCENTAGE, CSS_EMS, ! * CSS_EXS, CSS_PX, CSS_CM, ! * CSS_MM, CSS_IN, CSS_PT, ! * CSS_PC, CSS_DEG, CSS_RAD, ! * CSS_GRAD, CSS_MS, CSS_S, ! * CSS_HZ, CSS_KHZ, ! * CSS_DIMENSION). ! * @param floatValue The new float value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the attached property doesn't support * the float value or the unit type. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ ! public void setFloatValue(short unitType, float floatValue) throws DOMException; /** ! * This method is used to get a float value in a specified unit. If this ! * CSS value doesn't contain a float value or can't be converted into ! * the specified unit, a DOMException is raised. ! * @param unitType A unit code to get the float value. The unit code can ! * only be a float unit type (i.e. CSS_NUMBER, ! * CSS_PERCENTAGE, CSS_EMS, ! * CSS_EXS, CSS_PX, CSS_CM, ! * CSS_MM, CSS_IN, CSS_PT, ! * CSS_PC, CSS_DEG, CSS_RAD, ! * CSS_GRAD, CSS_MS, CSS_S, ! * CSS_HZ, CSS_KHZ, ! * CSS_DIMENSION). ! * @return The float value in the specified unit. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a float ! * value or if the float value can't be converted into the specified ! * unit. */ public float getFloatValue(short unitType) throws DOMException; /** ! * A method to set the string value with the specified unit. If the ! * property attached to this value can't accept the specified unit or ! * the string value, the value will be unchanged and a ! * DOMException will be raised. ! * @param stringType A string code as defined above. The string code can ! * only be a string unit type (i.e. CSS_STRING, ! * CSS_URI, CSS_IDENT, and ! * CSS_ATTR). ! * @param stringValue The new string value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string ! * value or if the string value can't be converted into the specified * unit. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. */ ! public void setStringValue(short stringType, String stringValue) throws DOMException; /** ! * This method is used to get the string value. If the CSS value doesn't ! * contain a string value, a DOMException is raised. Some ! * properties (like 'font-family' or 'voice-family') convert a ! * whitespace separated list of idents to a string. ! * @return The string value in the current unit. The current ! * primitiveType can only be a string unit type (i.e. ! * CSS_STRING, CSS_URI, ! * CSS_IDENT and CSS_ATTR). * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string ! * value. */ public String getStringValue() throws DOMException; /** ! * This method is used to get the Counter value. If this CSS value ! * doesn't contain a counter value, a DOMException is ! * raised. Modification to the corresponding style property can be ! * achieved using the Counter interface. * @return The Counter value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a ! * Counter value (e.g. this is not CSS_COUNTER). */ public Counter getCounterValue() throws DOMException; /** ! * This method is used to get the Rect value. If this CSS value doesn't ! * contain a rect value, a DOMException is raised. ! * Modification to the corresponding style property can be achieved ! * using the Rect interface. * @return The Rect value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a Rect ! * value. (e.g. this is not CSS_RECT). */ public Rect getRectValue() throws DOMException; /** ! * This method is used to get the RGB color. If this CSS value doesn't ! * contain a RGB color value, a DOMException is raised. ! * Modification to the corresponding style property can be achieved ! * using the RGBColor interface. * @return the RGB color value. * @exception DOMException ! * INVALID_ACCESS_ERR: Raised if the attached property can't return a ! * RGB color value (e.g. this is not CSS_RGBCOLOR). */ public RGBColor getRGBColorValue() throws DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.css; *** 15,25 **** import org.w3c.dom.DOMException; /** ! * The CSSRule interface is the abstract base interface for any ! * type of CSS statement. This includes both rule sets and at-rules. An ! * implementation is expected to preserve all rules specified in a CSS style ! * sheet, even if the rule is not recognized by the parser. Unrecognized ! * rules are represented using the CSSUnknownRule interface. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ --- 15,25 ---- import org.w3c.dom.DOMException; /** ! * The CSSRule interface is the abstract base interface for any ! * type of CSS statement. This includes both rule sets and at-rules. An ! * implementation is expected to preserve all rules specified in a CSS style ! * sheet, even if the rule is not recognized by the parser. Unrecognized ! * rules are represented using the CSSUnknownRule interface. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ *************** public interface CSSRule { *** 55,81 **** public static final short PAGE_RULE = 6; /** ! * The type of the rule, as defined above. The expectation is that ! * binding-specific casting methods can be used to cast down from an ! * instance of the CSSRule interface to the specific ! * derived interface implied by the type. */ public short getType(); /** ! * The parsable textual representation of the rule. This reflects the ! * current state of the rule and not its initial value. */ public String getCssText(); /** ! * The parsable textual representation of the rule. This reflects the ! * current state of the rule and not its initial value. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax * error and is unparsable. ! *
      INVALID_MODIFICATION_ERR: Raised if the specified CSS string * value represents a different type of rule than the current one. ! *
      HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at * this point in the style sheet. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly. */ --- 55,81 ---- public static final short PAGE_RULE = 6; /** ! * The type of the rule, as defined above. The expectation is that ! * binding-specific casting methods can be used to cast down from an ! * instance of the CSSRule interface to the specific ! * derived interface implied by the type. */ public short getType(); /** ! * The parsable textual representation of the rule. This reflects the ! * current state of the rule and not its initial value. */ public String getCssText(); /** ! * The parsable textual representation of the rule. This reflects the ! * current state of the rule and not its initial value. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax * error and is unparsable. ! *
      INVALID_MODIFICATION_ERR: Raised if the specified CSS string * value represents a different type of rule than the current one. ! *
      HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at * this point in the style sheet. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly. */ *************** public interface CSSRule { *** 83,96 **** throws DOMException; /** ! * The style sheet that contains this rule. */ public CSSStyleSheet getParentStyleSheet(); /** ! * If this rule is contained inside another rule (e.g. a style rule ! * inside an @media block), this is the containing rule. If this rule is ! * not nested inside any other rules, this returns null. */ public CSSRule getParentRule(); --- 83,96 ---- throws DOMException; /** ! * The style sheet that contains this rule. */ public CSSStyleSheet getParentStyleSheet(); /** ! * If this rule is contained inside another rule (e.g. a style rule ! * inside an @media block), this is the containing rule. If this rule is ! * not nested inside any other rules, this returns null. */ public CSSRule getParentRule(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java Tue Jan 11 19:46:05 2011 *************** *** 13,42 **** package org.w3c.dom.css; /** ! * The CSSRuleList interface provides the abstraction of an ! * ordered collection of CSS rules. ! *

      The items in the CSSRuleList are accessible via an ! * integral index, starting from 0. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSRuleList { /** ! * The number of CSSRules in the list. The range of valid ! * child rule indices is 0 to length-1 ! * inclusive. */ public int getLength(); /** ! * Used to retrieve a CSS rule by ordinal index. The order in this ! * collection represents the order of the rules in the CSS style sheet. ! * If index is greater than or equal to the number of rules in the list, ! * this returns null. * @param index Index into the collection ! * @return The style rule at the index position in the ! * CSSRuleList, or null if that is not a ! * valid index. */ public CSSRule item(int index); --- 13,42 ---- package org.w3c.dom.css; /** ! * The CSSRuleList interface provides the abstraction of an ! * ordered collection of CSS rules. ! *

      The items in the CSSRuleList are accessible via an ! * integral index, starting from 0. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSRuleList { /** ! * The number of CSSRules in the list. The range of valid ! * child rule indices is 0 to length-1 ! * inclusive. */ public int getLength(); /** ! * Used to retrieve a CSS rule by ordinal index. The order in this ! * collection represents the order of the rules in the CSS style sheet. ! * If index is greater than or equal to the number of rules in the list, ! * this returns null. * @param index Index into the collection ! * @return The style rule at the index position in the ! * CSSRuleList, or null if that is not a ! * valid index. */ public CSSRule item(int index); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.css; *** 15,161 **** import org.w3c.dom.DOMException; /** ! * The CSSStyleDeclaration interface represents a single CSS ! * declaration block. This interface may be used to determine the style ! * properties currently set in a block or to set style properties explicitly ! * within the block. ! *

      While an implementation may not recognize all CSS properties within a ! * CSS declaration block, it is expected to provide access to all specified * properties in the style sheet through the CSSStyleDeclaration ! * interface. Furthermore, implementations that support a specific level of ! * CSS should correctly handle CSS shorthand properties for that level. For ! * a further discussion of shorthand properties, see the ! * CSS2Properties interface. ! *

      This interface is also used to provide a read-only access to the ! * computed values of an element. See also the ViewCSS ! * interface. The CSS Object Model doesn't provide an access to the ! * specified or actual values of the CSS cascade. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSStyleDeclaration { /** ! * The parsable textual representation of the declaration block ! * (excluding the surrounding curly braces). Setting this attribute will ! * result in the parsing of the new value and resetting of all the ! * properties in the declaration block including the removal or addition ! * of properties. */ public String getCssText(); /** ! * The parsable textual representation of the declaration block ! * (excluding the surrounding curly braces). Setting this attribute will ! * result in the parsing of the new value and resetting of all the ! * properties in the declaration block including the removal or addition ! * of properties. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax * error and is unparsable. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is * readonly or a property is readonly. */ public void setCssText(String cssText) throws DOMException; /** ! * Used to retrieve the value of a CSS property if it has been explicitly ! * set within this declaration block. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @return Returns the value of the property if it has been explicitly ! * set for this declaration block. Returns the empty string if the ! * property has not been set. */ public String getPropertyValue(String propertyName); /** ! * Used to retrieve the object representation of the value of a CSS ! * property if it has been explicitly set within this declaration block. ! * This method returns null if the property is a shorthand ! * property. Shorthand property values can only be accessed and modified ! * as strings, using the getPropertyValue and ! * setProperty methods. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @return Returns the value of the property if it has been explicitly ! * set for this declaration block. Returns null if the ! * property has not been set. */ public CSSValue getPropertyCSSValue(String propertyName); /** ! * Used to remove a CSS property if it has been explicitly set within ! * this declaration block. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @return Returns the value of the property if it has been explicitly ! * set for this declaration block. Returns the empty string if the ! * property has not been set or the property name does not correspond ! * to a known CSS property. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly * or the property is readonly. */ public String removeProperty(String propertyName) throws DOMException; /** ! * Used to retrieve the priority of a CSS property (e.g. the ! * "important" qualifier) if the priority has been ! * explicitly set in this declaration block. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @return A string representing the priority (e.g. ! * "important") if the property has been explicitly set ! * in this declaration block and has a priority specified. The empty ! * string otherwise. */ public String getPropertyPriority(String propertyName); /** ! * Used to set a property value and priority within this declaration ! * block. setProperty permits to modify a property or add a ! * new one in the declaration block. Any call to this method may modify * the order of properties in the item method. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @param value The new value of the property. ! * @param priority The new priority of the property (e.g. ! * "important") or the empty string if none. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified value has a syntax error and is * unparsable. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is * readonly or the property is readonly. */ ! public void setProperty(String propertyName, ! String value, String priority) throws DOMException; /** ! * The number of properties that have been explicitly set in this ! * declaration block. The range of valid indices is 0 to length-1 ! * inclusive. */ public int getLength(); /** ! * Used to retrieve the properties that have been explicitly set in this ! * declaration block. The order of the properties retrieved using this ! * method does not have to be the order in which they were set. This ! * method can be used to iterate over all properties in this declaration ! * block. ! * @param index Index of the property name to retrieve. ! * @return The name of the property at this ordinal position. The empty ! * string if no property exists at this position. */ public String item(int index); /** ! * The CSS rule that contains this declaration block or null ! * if this CSSStyleDeclaration is not attached to a ! * CSSRule. */ public CSSRule getParentRule(); --- 15,161 ---- import org.w3c.dom.DOMException; /** ! * The CSSStyleDeclaration interface represents a single CSS ! * declaration block. This interface may be used to determine the style ! * properties currently set in a block or to set style properties explicitly ! * within the block. ! *

      While an implementation may not recognize all CSS properties within a ! * CSS declaration block, it is expected to provide access to all specified * properties in the style sheet through the CSSStyleDeclaration ! * interface. Furthermore, implementations that support a specific level of ! * CSS should correctly handle CSS shorthand properties for that level. For ! * a further discussion of shorthand properties, see the ! * CSS2Properties interface. ! *

      This interface is also used to provide a read-only access to the ! * computed values of an element. See also the ViewCSS ! * interface. The CSS Object Model doesn't provide an access to the ! * specified or actual values of the CSS cascade. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSStyleDeclaration { /** ! * The parsable textual representation of the declaration block ! * (excluding the surrounding curly braces). Setting this attribute will ! * result in the parsing of the new value and resetting of all the ! * properties in the declaration block including the removal or addition ! * of properties. */ public String getCssText(); /** ! * The parsable textual representation of the declaration block ! * (excluding the surrounding curly braces). Setting this attribute will ! * result in the parsing of the new value and resetting of all the ! * properties in the declaration block including the removal or addition ! * of properties. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax * error and is unparsable. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is * readonly or a property is readonly. */ public void setCssText(String cssText) throws DOMException; /** ! * Used to retrieve the value of a CSS property if it has been explicitly ! * set within this declaration block. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @return Returns the value of the property if it has been explicitly ! * set for this declaration block. Returns the empty string if the ! * property has not been set. */ public String getPropertyValue(String propertyName); /** ! * Used to retrieve the object representation of the value of a CSS ! * property if it has been explicitly set within this declaration block. ! * This method returns null if the property is a shorthand ! * property. Shorthand property values can only be accessed and modified ! * as strings, using the getPropertyValue and ! * setProperty methods. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @return Returns the value of the property if it has been explicitly ! * set for this declaration block. Returns null if the ! * property has not been set. */ public CSSValue getPropertyCSSValue(String propertyName); /** ! * Used to remove a CSS property if it has been explicitly set within ! * this declaration block. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @return Returns the value of the property if it has been explicitly ! * set for this declaration block. Returns the empty string if the ! * property has not been set or the property name does not correspond ! * to a known CSS property. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly * or the property is readonly. */ public String removeProperty(String propertyName) throws DOMException; /** ! * Used to retrieve the priority of a CSS property (e.g. the ! * "important" qualifier) if the priority has been ! * explicitly set in this declaration block. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @return A string representing the priority (e.g. ! * "important") if the property has been explicitly set ! * in this declaration block and has a priority specified. The empty ! * string otherwise. */ public String getPropertyPriority(String propertyName); /** ! * Used to set a property value and priority within this declaration ! * block. setProperty permits to modify a property or add a ! * new one in the declaration block. Any call to this method may modify * the order of properties in the item method. ! * @param propertyName The name of the CSS property. See the CSS ! * property index. ! * @param value The new value of the property. ! * @param priority The new priority of the property (e.g. ! * "important") or the empty string if none. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified value has a syntax error and is * unparsable. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is * readonly or the property is readonly. */ ! public void setProperty(String propertyName, ! String value, String priority) throws DOMException; /** ! * The number of properties that have been explicitly set in this ! * declaration block. The range of valid indices is 0 to length-1 ! * inclusive. */ public int getLength(); /** ! * Used to retrieve the properties that have been explicitly set in this ! * declaration block. The order of the properties retrieved using this ! * method does not have to be the order in which they were set. This ! * method can be used to iterate over all properties in this declaration ! * block. ! * @param index Index of the property name to retrieve. ! * @return The name of the property at this ordinal position. The empty ! * string if no property exists at this position. */ public String item(int index); /** ! * The CSS rule that contains this declaration block or null ! * if this CSSStyleDeclaration is not attached to a ! * CSSRule. */ public CSSRule getParentRule(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.css; *** 15,38 **** import org.w3c.dom.DOMException; /** ! * The CSSStyleRule interface represents a single rule set in a ! * CSS style sheet. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSStyleRule extends CSSRule { /** ! * The textual representation of the selector for the rule set. The ! * implementation may have stripped out insignificant whitespace while ! * parsing the selector. */ public String getSelectorText(); /** ! * The textual representation of the selector for the rule set. The ! * implementation may have stripped out insignificant whitespace while ! * parsing the selector. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax * error and is unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly. */ --- 15,38 ---- import org.w3c.dom.DOMException; /** ! * The CSSStyleRule interface represents a single rule set in a ! * CSS style sheet. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSStyleRule extends CSSRule { /** ! * The textual representation of the selector for the rule set. The ! * implementation may have stripped out insignificant whitespace while ! * parsing the selector. */ public String getSelectorText(); /** ! * The textual representation of the selector for the rule set. The ! * implementation may have stripped out insignificant whitespace while ! * parsing the selector. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax * error and is unparsable. *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly. */ *************** public interface CSSStyleRule extends CS *** 40,46 **** throws DOMException; /** ! * The declaration-block of this rule set. */ public CSSStyleDeclaration getStyle(); --- 40,46 ---- throws DOMException; /** ! * The declaration-block of this rule set. */ public CSSStyleDeclaration getStyle(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.DOMException; *** 16,82 **** import org.w3c.dom.stylesheets.StyleSheet; /** ! * The CSSStyleSheet interface is a concrete interface used to ! * represent a CSS style sheet i.e., a style sheet whose content type is ! * "text/css". *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSStyleSheet extends StyleSheet { /** ! * If this style sheet comes from an @import rule, the ! * ownerRule attribute will contain the ! * CSSImportRule. In that case, the ownerNode ! * attribute in the StyleSheet interface will be ! * null. If the style sheet comes from an element or a ! * processing instruction, the ownerRule attribute will be ! * null and the ownerNode attribute will ! * contain the Node. */ public CSSRule getOwnerRule(); /** ! * The list of all CSS rules contained within the style sheet. This ! * includes both rule sets and at-rules. */ public CSSRuleList getCssRules(); /** ! * Used to insert a new rule into the style sheet. The new rule now ! * becomes part of the cascade. ! * @param rule The parsable text representing the rule. For rule sets ! * this contains both the selector and the style declaration. For ! * at-rules, this specifies both the at-identifier and the rule ! * content. ! * @param index The index within the style sheet's rule list of the rule ! * before which to insert the specified rule. If the specified index ! * is equal to the length of the style sheet's rule collection, the ! * rule will be added to the end of the style sheet. ! * @return The index within the style sheet's rule collection of the ! * newly inserted rule. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the ! * specified index e.g. if an @import rule is inserted * after a standard rule set or other at-rule. ! *
      INDEX_SIZE_ERR: Raised if the specified index is not a valid * insertion point. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is * readonly. ! *
      SYNTAX_ERR: Raised if the specified rule has a syntax error and * is unparsable. */ ! public int insertRule(String rule, int index) throws DOMException; /** ! * Used to delete a rule from the style sheet. ! * @param index The index within the style sheet's rule list of the rule ! * to remove. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index does not correspond to * a rule in the style sheet's rule list. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is * readonly. */ public void deleteRule(int index) --- 16,82 ---- import org.w3c.dom.stylesheets.StyleSheet; /** ! * The CSSStyleSheet interface is a concrete interface used to ! * represent a CSS style sheet i.e., a style sheet whose content type is ! * "text/css". *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSStyleSheet extends StyleSheet { /** ! * If this style sheet comes from an @import rule, the ! * ownerRule attribute will contain the ! * CSSImportRule. In that case, the ownerNode ! * attribute in the StyleSheet interface will be ! * null. If the style sheet comes from an element or a ! * processing instruction, the ownerRule attribute will be ! * null and the ownerNode attribute will ! * contain the Node. */ public CSSRule getOwnerRule(); /** ! * The list of all CSS rules contained within the style sheet. This ! * includes both rule sets and at-rules. */ public CSSRuleList getCssRules(); /** ! * Used to insert a new rule into the style sheet. The new rule now ! * becomes part of the cascade. ! * @param rule The parsable text representing the rule. For rule sets ! * this contains both the selector and the style declaration. For ! * at-rules, this specifies both the at-identifier and the rule ! * content. ! * @param index The index within the style sheet's rule list of the rule ! * before which to insert the specified rule. If the specified index ! * is equal to the length of the style sheet's rule collection, the ! * rule will be added to the end of the style sheet. ! * @return The index within the style sheet's rule collection of the ! * newly inserted rule. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the ! * specified index e.g. if an @import rule is inserted * after a standard rule set or other at-rule. ! *
      INDEX_SIZE_ERR: Raised if the specified index is not a valid * insertion point. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is * readonly. ! *
      SYNTAX_ERR: Raised if the specified rule has a syntax error and * is unparsable. */ ! public int insertRule(String rule, int index) throws DOMException; /** ! * Used to delete a rule from the style sheet. ! * @param index The index within the style sheet's rule list of the rule ! * to remove. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index does not correspond to * a rule in the style sheet's rule list. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is * readonly. */ public void deleteRule(int index) diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java Tue Jan 11 19:46:05 2011 *************** *** 13,20 **** package org.w3c.dom.css; /** ! * The CSSUnknownRule interface represents an at-rule not ! * supported by this user agent. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ --- 13,20 ---- package org.w3c.dom.css; /** ! * The CSSUnknownRule interface represents an at-rule not ! * supported by this user agent. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.css; *** 15,23 **** import org.w3c.dom.DOMException; /** ! * The CSSValue interface represents a simple or a complex ! * value. A CSSValue object only occurs in a context of a CSS ! * property. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ --- 15,23 ---- import org.w3c.dom.DOMException; /** ! * The CSSValue interface represents a simple or a complex ! * value. A CSSValue object only occurs in a context of a CSS ! * property. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ *************** public interface CSSValue { *** 28,43 **** */ public static final short CSS_INHERIT = 0; /** ! * The value is a primitive value and an instance of the ! * CSSPrimitiveValue interface can be obtained by using ! * binding-specific casting methods on this instance of the * CSSValue interface. */ public static final short CSS_PRIMITIVE_VALUE = 1; /** ! * The value is a CSSValue list and an instance of the ! * CSSValueList interface can be obtained by using ! * binding-specific casting methods on this instance of the * CSSValue interface. */ public static final short CSS_VALUE_LIST = 2; --- 28,43 ---- */ public static final short CSS_INHERIT = 0; /** ! * The value is a primitive value and an instance of the ! * CSSPrimitiveValue interface can be obtained by using ! * binding-specific casting methods on this instance of the * CSSValue interface. */ public static final short CSS_PRIMITIVE_VALUE = 1; /** ! * The value is a CSSValue list and an instance of the ! * CSSValueList interface can be obtained by using ! * binding-specific casting methods on this instance of the * CSSValue interface. */ public static final short CSS_VALUE_LIST = 2; *************** public interface CSSValue { *** 47,70 **** public static final short CSS_CUSTOM = 3; /** ! * A string representation of the current value. */ public String getCssText(); /** ! * A string representation of the current value. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax ! * error (according to the attached property) or is unparsable. ! *
      INVALID_MODIFICATION_ERR: Raised if the specified CSS string ! * value represents a different type of values than the values allowed * by the CSS property. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this value is readonly. */ public void setCssText(String cssText) throws DOMException; /** ! * A code defining the type of the value as defined above. */ public short getCssValueType(); --- 47,70 ---- public static final short CSS_CUSTOM = 3; /** ! * A string representation of the current value. */ public String getCssText(); /** ! * A string representation of the current value. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified CSS string value has a syntax ! * error (according to the attached property) or is unparsable. ! *
      INVALID_MODIFICATION_ERR: Raised if the specified CSS string ! * value represents a different type of values than the values allowed * by the CSS property. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this value is readonly. */ public void setCssText(String cssText) throws DOMException; /** ! * A code defining the type of the value as defined above. */ public short getCssValueType(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java Tue Jan 11 19:46:05 2011 *************** *** 13,44 **** package org.w3c.dom.css; /** ! * The CSSValueList interface provides the abstraction of an * ordered collection of CSS values. ! *

      Some properties allow an empty list into their syntax. In that case, ! * these properties take the none identifier. So, an empty list ! * means that the property has the value none. ! *

      The items in the CSSValueList are accessible via an ! * integral index, starting from 0. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSValueList extends CSSValue { /** ! * The number of CSSValues in the list. The range of valid ! * values of the indices is 0 to length-1 * inclusive. */ public int getLength(); /** ! * Used to retrieve a CSSValue by ordinal index. The order in ! * this collection represents the order of the values in the CSS style ! * property. If index is greater than or equal to the number of values * in the list, this returns null. * @param index Index into the collection. ! * @return The CSSValue at the index position ! * in the CSSValueList, or null if that is * not a valid index. */ public CSSValue item(int index); --- 13,44 ---- package org.w3c.dom.css; /** ! * The CSSValueList interface provides the abstraction of an * ordered collection of CSS values. ! *

      Some properties allow an empty list into their syntax. In that case, ! * these properties take the none identifier. So, an empty list ! * means that the property has the value none. ! *

      The items in the CSSValueList are accessible via an ! * integral index, starting from 0. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface CSSValueList extends CSSValue { /** ! * The number of CSSValues in the list. The range of valid ! * values of the indices is 0 to length-1 * inclusive. */ public int getLength(); /** ! * Used to retrieve a CSSValue by ordinal index. The order in ! * this collection represents the order of the values in the CSS style ! * property. If index is greater than or equal to the number of values * in the list, this returns null. * @param index Index into the collection. ! * @return The CSSValue at the index position ! * in the CSSValueList, or null if that is * not a valid index. */ public CSSValue item(int index); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java Tue Jan 11 19:46:05 2011 *************** *** 13,37 **** package org.w3c.dom.css; /** ! * The Counter interface is used to represent any counter or ! * counters function value. This interface reflects the values in the ! * underlying style property. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface Counter { /** ! * This attribute is used for the identifier of the counter. */ public String getIdentifier(); /** ! * This attribute is used for the style of the list. */ public String getListStyle(); /** ! * This attribute is used for the separator of the nested counters. */ public String getSeparator(); --- 13,37 ---- package org.w3c.dom.css; /** ! * The Counter interface is used to represent any counter or ! * counters function value. This interface reflects the values in the ! * underlying style property. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface Counter { /** ! * This attribute is used for the identifier of the counter. */ public String getIdentifier(); /** ! * This attribute is used for the style of the list. */ public String getListStyle(); /** ! * This attribute is used for the separator of the nested counters. */ public String getSeparator(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.DOMImplementation; *** 16,39 **** import org.w3c.dom.DOMException; /** ! * This interface allows the DOM user to create a CSSStyleSheet ! * outside the context of a document. There is no way to associate the new ! * CSSStyleSheet with a document in DOM Level 2. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface DOMImplementationCSS extends DOMImplementation { /** * Creates a new CSSStyleSheet. ! * @param title The advisory title. See also the section. ! * @param media The comma-separated list of media associated with the ! * new style sheet. See also the section. * @return A new CSS style sheet. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified media string value has a syntax ! * error and is unparsable. */ ! public CSSStyleSheet createCSSStyleSheet(String title, String media) throws DOMException; --- 16,39 ---- import org.w3c.dom.DOMException; /** ! * This interface allows the DOM user to create a CSSStyleSheet ! * outside the context of a document. There is no way to associate the new ! * CSSStyleSheet with a document in DOM Level 2. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface DOMImplementationCSS extends DOMImplementation { /** * Creates a new CSSStyleSheet. ! * @param title The advisory title. See also the section. ! * @param media The comma-separated list of media associated with the ! * new style sheet. See also the section. * @return A new CSS style sheet. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified media string value has a syntax ! * error and is unparsable. */ ! public CSSStyleSheet createCSSStyleSheet(String title, String media) throws DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.stylesheets.DocumentS *** 17,50 **** /** * This interface represents a document with a CSS view. ! *

      The getOverrideStyle method provides a mechanism through ! * which a DOM author could effect immediate change to the style of an ! * element without modifying the explicitly linked style sheets of a ! * document or the inline style of elements in the style sheets. This style ! * sheet comes after the author style sheet in the cascade algorithm and is ! * called override style sheet. The override style sheet takes precedence ! * over author style sheets. An "!important" declaration still takes ! * precedence over a normal declaration. Override, author, and user style ! * sheets all may contain "!important" declarations. User "!important" rules ! * take precedence over both override and author "!important" rules, and ! * override "!important" rules take precedence over author "!important" ! * rules. ! *

      The expectation is that an instance of the DocumentCSS ! * interface can be obtained by using binding-specific casting methods on an ! * instance of the Document interface. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface DocumentCSS extends DocumentStyle { /** ! * This method is used to retrieve the override style declaration for a ! * specified element and a specified pseudo-element. ! * @param elt The element whose style is to be modified. This parameter ! * cannot be null. ! * @param pseudoElt The pseudo-element or null if none. ! * @return The override style declaration. */ ! public CSSStyleDeclaration getOverrideStyle(Element elt, String pseudoElt); } --- 17,50 ---- /** * This interface represents a document with a CSS view. ! *

      The getOverrideStyle method provides a mechanism through ! * which a DOM author could effect immediate change to the style of an ! * element without modifying the explicitly linked style sheets of a ! * document or the inline style of elements in the style sheets. This style ! * sheet comes after the author style sheet in the cascade algorithm and is ! * called override style sheet. The override style sheet takes precedence ! * over author style sheets. An "!important" declaration still takes ! * precedence over a normal declaration. Override, author, and user style ! * sheets all may contain "!important" declarations. User "!important" rules ! * take precedence over both override and author "!important" rules, and ! * override "!important" rules take precedence over author "!important" ! * rules. ! *

      The expectation is that an instance of the DocumentCSS ! * interface can be obtained by using binding-specific casting methods on an ! * instance of the Document interface. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface DocumentCSS extends DocumentStyle { /** ! * This method is used to retrieve the override style declaration for a ! * specified element and a specified pseudo-element. ! * @param elt The element whose style is to be modified. This parameter ! * cannot be null. ! * @param pseudoElt The pseudo-element or null if none. ! * @return The override style declaration. */ ! public CSSStyleDeclaration getOverrideStyle(Element elt, String pseudoElt); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java Tue Jan 11 19:46:05 2011 *************** *** 13,31 **** package org.w3c.dom.css; /** ! * Inline style information attached to elements is exposed through the ! * style attribute. This represents the contents of the STYLE ! * attribute for HTML elements (or elements in other schemas or DTDs which ! * use the STYLE attribute in the same way). The expectation is that an ! * instance of the ElementCSSInlineStyle interface can be obtained by using ! * binding-specific casting methods on an instance of the Element interface ! * when the element supports inline CSS style informations. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface ElementCSSInlineStyle { /** ! * The style attribute. */ public CSSStyleDeclaration getStyle(); --- 13,31 ---- package org.w3c.dom.css; /** ! * Inline style information attached to elements is exposed through the ! * style attribute. This represents the contents of the STYLE ! * attribute for HTML elements (or elements in other schemas or DTDs which ! * use the STYLE attribute in the same way). The expectation is that an ! * instance of the ElementCSSInlineStyle interface can be obtained by using ! * binding-specific casting methods on an instance of the Element interface ! * when the element supports inline CSS style informations. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface ElementCSSInlineStyle { /** ! * The style attribute. */ public CSSStyleDeclaration getStyle(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java Tue Jan 11 19:46:05 2011 *************** *** 13,46 **** package org.w3c.dom.css; /** ! * The RGBColor interface is used to represent any RGB color ! * value. This interface reflects the values in the underlying style ! * property. Hence, modifications made to the CSSPrimitiveValue ! * objects modify the style property. ! *

      A specified RGB color is not clipped (even if the number is outside the ! * range 0-255 or 0%-100%). A computed RGB color is clipped depending on the ! * device. ! *

      Even if a style sheet can only contain an integer for a color value, ! * the internal storage of this integer is a float, and this can be used as ! * a float in the specified or the computed style. ! *

      A color percentage value can always be converted to a number and vice ! * versa. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface RGBColor { /** ! * This attribute is used for the red value of the RGB color. */ public CSSPrimitiveValue getRed(); /** ! * This attribute is used for the green value of the RGB color. */ public CSSPrimitiveValue getGreen(); /** ! * This attribute is used for the blue value of the RGB color. */ public CSSPrimitiveValue getBlue(); --- 13,46 ---- package org.w3c.dom.css; /** ! * The RGBColor interface is used to represent any RGB color ! * value. This interface reflects the values in the underlying style ! * property. Hence, modifications made to the CSSPrimitiveValue ! * objects modify the style property. ! *

      A specified RGB color is not clipped (even if the number is outside the ! * range 0-255 or 0%-100%). A computed RGB color is clipped depending on the ! * device. ! *

      Even if a style sheet can only contain an integer for a color value, ! * the internal storage of this integer is a float, and this can be used as ! * a float in the specified or the computed style. ! *

      A color percentage value can always be converted to a number and vice ! * versa. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface RGBColor { /** ! * This attribute is used for the red value of the RGB color. */ public CSSPrimitiveValue getRed(); /** ! * This attribute is used for the green value of the RGB color. */ public CSSPrimitiveValue getGreen(); /** ! * This attribute is used for the blue value of the RGB color. */ public CSSPrimitiveValue getBlue(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java Tue Jan 11 19:46:05 2011 *************** *** 13,43 **** package org.w3c.dom.css; /** ! * The Rect interface is used to represent any rect value. This ! * interface reflects the values in the underlying style property. Hence, ! * modifications made to the CSSPrimitiveValue objects modify ! * the style property. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface Rect { /** ! * This attribute is used for the top of the rect. */ public CSSPrimitiveValue getTop(); /** ! * This attribute is used for the right of the rect. */ public CSSPrimitiveValue getRight(); /** ! * This attribute is used for the bottom of the rect. */ public CSSPrimitiveValue getBottom(); /** ! * This attribute is used for the left of the rect. */ public CSSPrimitiveValue getLeft(); --- 13,43 ---- package org.w3c.dom.css; /** ! * The Rect interface is used to represent any rect value. This ! * interface reflects the values in the underlying style property. Hence, ! * modifications made to the CSSPrimitiveValue objects modify ! * the style property. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface Rect { /** ! * This attribute is used for the top of the rect. */ public CSSPrimitiveValue getTop(); /** ! * This attribute is used for the right of the rect. */ public CSSPrimitiveValue getRight(); /** ! * This attribute is used for the bottom of the rect. */ public CSSPrimitiveValue getBottom(); /** ! * This attribute is used for the left of the rect. */ public CSSPrimitiveValue getLeft(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Element; *** 16,43 **** import org.w3c.dom.views.AbstractView; /** ! * This interface represents a CSS view. The getComputedStyle ! * method provides a read only access to the computed values of an element. ! *

      The expectation is that an instance of the ViewCSS ! * interface can be obtained by using binding-specific casting methods on an ! * instance of the AbstractView interface. ! *

      Since a computed style is related to an Element node, if ! * this element is removed from the document, the associated ! * CSSStyleDeclaration and CSSValue related to ! * this declaration are no longer valid. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface ViewCSS extends AbstractView { /** ! * This method is used to get the computed style as it is defined in [CSS2]. ! * @param elt The element whose style is to be computed. This parameter ! * cannot be null. ! * @param pseudoElt The pseudo-element or null if none. ! * @return The computed style. The CSSStyleDeclaration is ! * read-only and contains only absolute values. */ ! public CSSStyleDeclaration getComputedStyle(Element elt, String pseudoElt); } --- 16,43 ---- import org.w3c.dom.views.AbstractView; /** ! * This interface represents a CSS view. The getComputedStyle ! * method provides a read only access to the computed values of an element. ! *

      The expectation is that an instance of the ViewCSS ! * interface can be obtained by using binding-specific casting methods on an ! * instance of the AbstractView interface. ! *

      Since a computed style is related to an Element node, if ! * this element is removed from the document, the associated ! * CSSStyleDeclaration and CSSValue related to ! * this declaration are no longer valid. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface ViewCSS extends AbstractView { /** ! * This method is used to get the computed style as it is defined in [CSS2]. ! * @param elt The element whose style is to be computed. This parameter ! * cannot be null. ! * @param pseudoElt The pseudo-element or null if none. ! * @return The computed style. The CSSStyleDeclaration is ! * read-only and contains only absolute values. */ ! public CSSStyleDeclaration getComputedStyle(Element elt, String pseudoElt); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.events; *** 15,53 **** import org.w3c.dom.DOMException; /** ! * The DocumentEvent interface provides a mechanism by which the ! * user can create an Event of a type supported by the implementation. It is ! * expected that the DocumentEvent interface will be ! * implemented on the same object which implements the Document ! * interface in an implementation which supports the Event model. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ public interface DocumentEvent { /** ! * ! * @param eventType The eventType parameter specifies the ! * type of Event interface to be created. If the ! * Event interface specified is supported by the ! * implementation this method will return a new Event of ! * the interface type requested. If the Event is to be ! * dispatched via the dispatchEvent method the ! * appropriate event init method must be called after creation in ! * order to initialize the Event's values. As an example, ! * a user wishing to synthesize some kind of UIEvent ! * would call createEvent with the parameter "UIEvents". ! * The initUIEvent method could then be called on the ! * newly created UIEvent to set the specific type of ! * UIEvent to be dispatched and set its context information.The ! * createEvent method is used in creating ! * Events when it is either inconvenient or unnecessary ! * for the user to create an Event themselves. In cases ! * where the implementation provided Event is ! * insufficient, users may supply their own Event * implementations for use with the dispatchEvent method. * @return The newly created Event * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the implementation does not support the * type of Event interface requested */ public Event createEvent(String eventType) --- 15,53 ---- import org.w3c.dom.DOMException; /** ! * The DocumentEvent interface provides a mechanism by which the ! * user can create an Event of a type supported by the implementation. It is ! * expected that the DocumentEvent interface will be ! * implemented on the same object which implements the Document ! * interface in an implementation which supports the Event model. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ public interface DocumentEvent { /** ! * ! * @param eventType The eventType parameter specifies the ! * type of Event interface to be created. If the ! * Event interface specified is supported by the ! * implementation this method will return a new Event of ! * the interface type requested. If the Event is to be ! * dispatched via the dispatchEvent method the ! * appropriate event init method must be called after creation in ! * order to initialize the Event's values. As an example, ! * a user wishing to synthesize some kind of UIEvent ! * would call createEvent with the parameter "UIEvents". ! * The initUIEvent method could then be called on the ! * newly created UIEvent to set the specific type of ! * UIEvent to be dispatched and set its context information.The ! * createEvent method is used in creating ! * Events when it is either inconvenient or unnecessary ! * for the user to create an Event themselves. In cases ! * where the implementation provided Event is ! * insufficient, users may supply their own Event * implementations for use with the dispatchEvent method. * @return The newly created Event * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the implementation does not support the * type of Event interface requested */ public Event createEvent(String eventType) diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java Tue Jan 11 19:46:05 2011 *************** *** 13,26 **** package org.w3c.dom.events; /** ! * The Event interface is used to provide contextual information ! * about an event to the handler processing the event. An object which ! * implements the Event interface is generally passed as the ! * first parameter to an event handler. More specific context information is ! * passed to event handlers by deriving additional interfaces from ! * Event which contain information directly relating to the ! * type of event they accompany. These derived interfaces are also ! * implemented by the object passed to the event listener. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ --- 13,26 ---- package org.w3c.dom.events; /** ! * The Event interface is used to provide contextual information ! * about an event to the handler processing the event. An object which ! * implements the Event interface is generally passed as the ! * first parameter to an event handler. More specific context information is ! * passed to event handlers by deriving additional interfaces from ! * Event which contain information directly relating to the ! * type of event they accompany. These derived interfaces are also ! * implemented by the object passed to the event listener. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ *************** public interface Event { *** 31,37 **** */ public static final short CAPTURING_PHASE = 1; /** ! * The event is currently being evaluated at the target * EventTarget. */ public static final short AT_TARGET = 2; --- 31,37 ---- */ public static final short CAPTURING_PHASE = 1; /** ! * The event is currently being evaluated at the target * EventTarget. */ public static final short AT_TARGET = 2; *************** public interface Event { *** 46,141 **** public String getType(); /** ! * Used to indicate the EventTarget to which the event was ! * originally dispatched. */ public EventTarget getTarget(); /** ! * Used to indicate the EventTarget whose ! * EventListeners are currently being processed. This is ! * particularly useful during capturing and bubbling. */ public EventTarget getCurrentTarget(); /** ! * Used to indicate which phase of event flow is currently being ! * evaluated. */ public short getEventPhase(); /** ! * Used to indicate whether or not an event is a bubbling event. If the ! * event can bubble the value is true, else the value is false. */ public boolean getBubbles(); /** ! * Used to indicate whether or not an event can have its default action ! * prevented. If the default action can be prevented the value is true, ! * else the value is false. */ public boolean getCancelable(); /** ! * Used to specify the time (in milliseconds relative to the epoch) at ! * which the event was created. Due to the fact that some systems may ! * not provide this information the value of timeStamp may ! * be not available for all events. When not available, a value of 0 ! * will be returned. Examples of epoch time are the time of the system ! * start or 0:0:0 UTC 1st January 1970. */ public long getTimeStamp(); /** ! * The stopPropagation method is used prevent further ! * propagation of an event during event flow. If this method is called ! * by any EventListener the event will cease propagating ! * through the tree. The event will complete dispatch to all listeners ! * on the current EventTarget before event flow stops. This * method may be used during any stage of event flow. */ public void stopPropagation(); /** ! * If an event is cancelable, the preventDefault method is ! * used to signify that the event is to be canceled, meaning any default ! * action normally taken by the implementation as a result of the event ! * will not occur. If, during any stage of event flow, the ! * preventDefault method is called the event is canceled. ! * Any default action associated with the event will not occur. Calling ! * this method for a non-cancelable event has no effect. Once ! * preventDefault has been called it will remain in effect ! * throughout the remainder of the event's propagation. This method may ! * be used during any stage of event flow. */ public void preventDefault(); /** ! * The initEvent method is used to initialize the value of an ! * Event created through the DocumentEvent ! * interface. This method may only be called before the ! * Event has been dispatched via the ! * dispatchEvent method, though it may be called multiple ! * times during that phase if necessary. If called multiple times the ! * final invocation takes precedence. If called from a subclass of ! * Event interface only the values specified in the ! * initEvent method are modified, all other attributes are * left unchanged. ! * @param eventTypeArg Specifies the event type. This type may be any ! * event type currently defined in this specification or a new event ! * type.. The string must be an XML name. Any new event type must not ! * begin with any upper, lower, or mixed case version of the string ! * "DOM". This prefix is reserved for future DOM event sets. It is ! * also strongly recommended that third parties adding their own ! * events use their own prefix to avoid confusion and lessen the * probability of conflicts with other new events. * @param canBubbleArg Specifies whether or not the event can bubble. ! * @param cancelableArg Specifies whether or not the event's default * action can be prevented. */ ! public void initEvent(String eventTypeArg, ! boolean canBubbleArg, boolean cancelableArg); } --- 46,141 ---- public String getType(); /** ! * Used to indicate the EventTarget to which the event was ! * originally dispatched. */ public EventTarget getTarget(); /** ! * Used to indicate the EventTarget whose ! * EventListeners are currently being processed. This is ! * particularly useful during capturing and bubbling. */ public EventTarget getCurrentTarget(); /** ! * Used to indicate which phase of event flow is currently being ! * evaluated. */ public short getEventPhase(); /** ! * Used to indicate whether or not an event is a bubbling event. If the ! * event can bubble the value is true, else the value is false. */ public boolean getBubbles(); /** ! * Used to indicate whether or not an event can have its default action ! * prevented. If the default action can be prevented the value is true, ! * else the value is false. */ public boolean getCancelable(); /** ! * Used to specify the time (in milliseconds relative to the epoch) at ! * which the event was created. Due to the fact that some systems may ! * not provide this information the value of timeStamp may ! * be not available for all events. When not available, a value of 0 ! * will be returned. Examples of epoch time are the time of the system ! * start or 0:0:0 UTC 1st January 1970. */ public long getTimeStamp(); /** ! * The stopPropagation method is used prevent further ! * propagation of an event during event flow. If this method is called ! * by any EventListener the event will cease propagating ! * through the tree. The event will complete dispatch to all listeners ! * on the current EventTarget before event flow stops. This * method may be used during any stage of event flow. */ public void stopPropagation(); /** ! * If an event is cancelable, the preventDefault method is ! * used to signify that the event is to be canceled, meaning any default ! * action normally taken by the implementation as a result of the event ! * will not occur. If, during any stage of event flow, the ! * preventDefault method is called the event is canceled. ! * Any default action associated with the event will not occur. Calling ! * this method for a non-cancelable event has no effect. Once ! * preventDefault has been called it will remain in effect ! * throughout the remainder of the event's propagation. This method may ! * be used during any stage of event flow. */ public void preventDefault(); /** ! * The initEvent method is used to initialize the value of an ! * Event created through the DocumentEvent ! * interface. This method may only be called before the ! * Event has been dispatched via the ! * dispatchEvent method, though it may be called multiple ! * times during that phase if necessary. If called multiple times the ! * final invocation takes precedence. If called from a subclass of ! * Event interface only the values specified in the ! * initEvent method are modified, all other attributes are * left unchanged. ! * @param eventTypeArg Specifies the event type. This type may be any ! * event type currently defined in this specification or a new event ! * type.. The string must be an XML name. Any new event type must not ! * begin with any upper, lower, or mixed case version of the string ! * "DOM". This prefix is reserved for future DOM event sets. It is ! * also strongly recommended that third parties adding their own ! * events use their own prefix to avoid confusion and lessen the * probability of conflicts with other new events. * @param canBubbleArg Specifies whether or not the event can bubble. ! * @param cancelableArg Specifies whether or not the event's default * action can be prevented. */ ! public void initEvent(String eventTypeArg, ! boolean canBubbleArg, boolean cancelableArg); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java Tue Jan 11 19:46:05 2011 *************** *** 13,20 **** package org.w3c.dom.events; /** ! * Event operations may throw an EventException as specified in ! * their method descriptions. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ --- 13,20 ---- package org.w3c.dom.events; /** ! * Event operations may throw an EventException as specified in ! * their method descriptions. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ *************** public class EventException extends Runt *** 26,35 **** public short code; // EventExceptionCode /** ! * If the Event's type was not specified by initializing the ! * event before the method was called. Specification of the Event's type ! * as null or an empty string will also trigger this ! * exception. */ public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0; --- 26,35 ---- public short code; // EventExceptionCode /** ! * If the Event's type was not specified by initializing the ! * event before the method was called. Specification of the Event's type ! * as null or an empty string will also trigger this ! * exception. */ public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java Tue Jan 11 19:46:05 2011 *************** *** 13,40 **** package org.w3c.dom.events; /** ! * The EventListener interface is the primary method for ! * handling events. Users implement the EventListener interface ! * and register their listener on an EventTarget using the ! * AddEventListener method. The users should also remove their ! * EventListener from its EventTarget after they ! * have completed using the listener. ! *

      When a Node is copied using the cloneNode ! * method the EventListeners attached to the source ! * Node are not attached to the copied Node. If ! * the user wishes the same EventListeners to be added to the ! * newly created copy the user must add them manually. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ public interface EventListener { /** ! * This method is called whenever an event occurs of the type for which ! * the EventListener interface was registered. ! * @param evt The Event contains contextual information ! * about the event. It also contains the stopPropagation ! * and preventDefault methods which are used in ! * determining the event's flow and default action. */ public void handleEvent(Event evt); --- 13,40 ---- package org.w3c.dom.events; /** ! * The EventListener interface is the primary method for ! * handling events. Users implement the EventListener interface ! * and register their listener on an EventTarget using the ! * AddEventListener method. The users should also remove their ! * EventListener from its EventTarget after they ! * have completed using the listener. ! *

      When a Node is copied using the cloneNode ! * method the EventListeners attached to the source ! * Node are not attached to the copied Node. If ! * the user wishes the same EventListeners to be added to the ! * newly created copy the user must add them manually. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ public interface EventListener { /** ! * This method is called whenever an event occurs of the type for which ! * the EventListener interface was registered. ! * @param evt The Event contains contextual information ! * about the event. It also contains the stopPropagation ! * and preventDefault methods which are used in ! * determining the event's flow and default action. */ public void handleEvent(Event evt); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java Tue Jan 11 19:46:05 2011 *************** *** 13,99 **** package org.w3c.dom.events; /** ! * The EventTarget interface is implemented by all ! * Nodes in an implementation which supports the DOM Event ! * Model. Therefore, this interface can be obtained by using ! * binding-specific casting methods on an instance of the Node ! * interface. The interface allows registration and removal of ! * EventListeners on an EventTarget and dispatch * of events to that EventTarget. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ public interface EventTarget { /** ! * This method allows the registration of event listeners on the event ! * target. If an EventListener is added to an ! * EventTarget while it is processing an event, it will not ! * be triggered by the current actions but may be triggered during a ! * later stage of event flow, such as the bubbling phase. ! *
      If multiple identical EventListeners are registered ! * on the same EventTarget with the same parameters the ! * duplicate instances are discarded. They do not cause the ! * EventListener to be called twice and since they are ! * discarded they do not need to be removed with the ! * removeEventListener method. * @param type The event type for which the user is registering ! * @param listener The listener parameter takes an interface ! * implemented by the user which contains the methods to be called * when the event occurs. ! * @param useCapture If true, useCapture indicates that the ! * user wishes to initiate capture. After initiating capture, all ! * events of the specified type will be dispatched to the registered ! * EventListener before being dispatched to any ! * EventTargets beneath them in the tree. Events which ! * are bubbling upward through the tree will not trigger an * EventListener designated to use capture. */ ! public void addEventListener(String type, ! EventListener listener, boolean useCapture); /** ! * This method allows the removal of event listeners from the event ! * target. If an EventListener is removed from an ! * EventTarget while it is processing an event, it will not ! * be triggered by the current actions. EventListeners can * never be invoked after being removed. ! *
      Calling removeEventListener with arguments which do ! * not identify any currently registered EventListener on * the EventTarget has no effect. ! * @param type Specifies the event type of the EventListener ! * being removed. ! * @param listener The EventListener parameter indicates the ! * EventListener to be removed. ! * @param useCapture Specifies whether the EventListener ! * being removed was registered as a capturing listener or not. If a ! * listener was registered twice, one with capture and one without, ! * each must be removed separately. Removal of a capturing listener ! * does not affect a non-capturing version of the same listener, and ! * vice versa. */ ! public void removeEventListener(String type, ! EventListener listener, boolean useCapture); /** ! * This method allows the dispatch of events into the implementations ! * event model. Events dispatched in this manner will have the same ! * capturing and bubbling behavior as events dispatched directly by the ! * implementation. The target of the event is the ! * EventTarget on which dispatchEvent is ! * called. ! * @param evt Specifies the event type, behavior, and contextual * information to be used in processing the event. ! * @return The return value of dispatchEvent indicates ! * whether any of the listeners which handled the event called ! * preventDefault. If preventDefault was ! * called the value is false, else the value is true. * @exception EventException ! * UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event's type ! * was not specified by initializing the event before ! * dispatchEvent was called. Specification of the ! * Event's type as null or an empty string * will also trigger this exception. */ public boolean dispatchEvent(Event evt) --- 13,99 ---- package org.w3c.dom.events; /** ! * The EventTarget interface is implemented by all ! * Nodes in an implementation which supports the DOM Event ! * Model. Therefore, this interface can be obtained by using ! * binding-specific casting methods on an instance of the Node ! * interface. The interface allows registration and removal of ! * EventListeners on an EventTarget and dispatch * of events to that EventTarget. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ public interface EventTarget { /** ! * This method allows the registration of event listeners on the event ! * target. If an EventListener is added to an ! * EventTarget while it is processing an event, it will not ! * be triggered by the current actions but may be triggered during a ! * later stage of event flow, such as the bubbling phase. ! *
      If multiple identical EventListeners are registered ! * on the same EventTarget with the same parameters the ! * duplicate instances are discarded. They do not cause the ! * EventListener to be called twice and since they are ! * discarded they do not need to be removed with the ! * removeEventListener method. * @param type The event type for which the user is registering ! * @param listener The listener parameter takes an interface ! * implemented by the user which contains the methods to be called * when the event occurs. ! * @param useCapture If true, useCapture indicates that the ! * user wishes to initiate capture. After initiating capture, all ! * events of the specified type will be dispatched to the registered ! * EventListener before being dispatched to any ! * EventTargets beneath them in the tree. Events which ! * are bubbling upward through the tree will not trigger an * EventListener designated to use capture. */ ! public void addEventListener(String type, ! EventListener listener, boolean useCapture); /** ! * This method allows the removal of event listeners from the event ! * target. If an EventListener is removed from an ! * EventTarget while it is processing an event, it will not ! * be triggered by the current actions. EventListeners can * never be invoked after being removed. ! *
      Calling removeEventListener with arguments which do ! * not identify any currently registered EventListener on * the EventTarget has no effect. ! * @param type Specifies the event type of the EventListener ! * being removed. ! * @param listener The EventListener parameter indicates the ! * EventListener to be removed. ! * @param useCapture Specifies whether the EventListener ! * being removed was registered as a capturing listener or not. If a ! * listener was registered twice, one with capture and one without, ! * each must be removed separately. Removal of a capturing listener ! * does not affect a non-capturing version of the same listener, and ! * vice versa. */ ! public void removeEventListener(String type, ! EventListener listener, boolean useCapture); /** ! * This method allows the dispatch of events into the implementations ! * event model. Events dispatched in this manner will have the same ! * capturing and bubbling behavior as events dispatched directly by the ! * implementation. The target of the event is the ! * EventTarget on which dispatchEvent is ! * called. ! * @param evt Specifies the event type, behavior, and contextual * information to be used in processing the event. ! * @return The return value of dispatchEvent indicates ! * whether any of the listeners which handled the event called ! * preventDefault. If preventDefault was ! * called the value is false, else the value is true. * @exception EventException ! * UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event's type ! * was not specified by initializing the event before ! * dispatchEvent was called. Specification of the ! * Event's type as null or an empty string * will also trigger this exception. */ public boolean dispatchEvent(Event evt) diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.events; *** 15,156 **** import org.w3c.dom.views.AbstractView; /** ! * The MouseEvent interface provides specific contextual * information associated with Mouse events. ! *

      The detail attribute inherited from UIEvent ! * indicates the number of times a mouse button has been pressed and ! * released over the same screen location during a user action. The ! * attribute value is 1 when the user begins this action and increments by 1 ! * for each full sequence of pressing and releasing. If the user moves the ! * mouse between the mousedown and mouseup the value will be set to 0, * indicating that no click is occurring. ! *

      In the case of nested elements mouse events are always targeted at the ! * most deeply nested element. Ancestors of the targeted element may use ! * bubbling to obtain notification of mouse events which occur within its * descendent elements. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ public interface MouseEvent extends UIEvent { /** ! * The horizontal coordinate at which the event occurred relative to the * origin of the screen coordinate system. */ public int getScreenX(); /** ! * The vertical coordinate at which the event occurred relative to the * origin of the screen coordinate system. */ public int getScreenY(); /** ! * The horizontal coordinate at which the event occurred relative to the * DOM implementation's client area. */ public int getClientX(); /** ! * The vertical coordinate at which the event occurred relative to the DOM * implementation's client area. */ public int getClientY(); /** ! * Used to indicate whether the 'ctrl' key was depressed during the firing * of the event. */ public boolean getCtrlKey(); /** ! * Used to indicate whether the 'shift' key was depressed during the * firing of the event. */ public boolean getShiftKey(); /** ! * Used to indicate whether the 'alt' key was depressed during the firing ! * of the event. On some platforms this key may map to an alternative * key name. */ public boolean getAltKey(); /** ! * Used to indicate whether the 'meta' key was depressed during the firing ! * of the event. On some platforms this key may map to an alternative * key name. */ public boolean getMetaKey(); /** ! * During mouse events caused by the depression or release of a mouse ! * button, button is used to indicate which mouse button ! * changed state. The values for button range from zero to ! * indicate the left button of the mouse, one to indicate the middle ! * button if present, and two to indicate the right button. For mice ! * configured for left handed use in which the button actions are * reversed the values are instead read from right to left. */ public short getButton(); /** ! * Used to identify a secondary EventTarget related to a UI ! * event. Currently this attribute is used with the mouseover event to ! * indicate the EventTarget which the pointing device ! * exited and with the mouseout event to indicate the * EventTarget which the pointing device entered. */ public EventTarget getRelatedTarget(); /** ! * The initMouseEvent method is used to initialize the value ! * of a MouseEvent created through the ! * DocumentEvent interface. This method may only be called ! * before the MouseEvent has been dispatched via the ! * dispatchEvent method, though it may be called multiple ! * times during that phase if necessary. If called multiple times, the * final invocation takes precedence. * @param typeArg Specifies the event type. * @param canBubbleArg Specifies whether or not the event can bubble. ! * @param cancelableArg Specifies whether or not the event's default * action can be prevented. ! * @param viewArg Specifies the Event's * AbstractView. * @param detailArg Specifies the Event's mouse click count. ! * @param screenXArg Specifies the Event's screen x * coordinate ! * @param screenYArg Specifies the Event's screen y * coordinate ! * @param clientXArg Specifies the Event's client x * coordinate ! * @param clientYArg Specifies the Event's client y * coordinate ! * @param ctrlKeyArg Specifies whether or not control key was depressed * during the Event. ! * @param altKeyArg Specifies whether or not alt key was depressed during * the Event. ! * @param shiftKeyArg Specifies whether or not shift key was depressed * during the Event. ! * @param metaKeyArg Specifies whether or not meta key was depressed * during the Event. * @param buttonArg Specifies the Event's mouse button. ! * @param relatedTargetArg Specifies the Event's related * EventTarget. */ ! public void initMouseEvent(String typeArg, ! boolean canBubbleArg, ! boolean cancelableArg, ! AbstractView viewArg, ! int detailArg, ! int screenXArg, ! int screenYArg, ! int clientXArg, ! int clientYArg, ! boolean ctrlKeyArg, ! boolean altKeyArg, ! boolean shiftKeyArg, ! boolean metaKeyArg, ! short buttonArg, EventTarget relatedTargetArg); } --- 15,156 ---- import org.w3c.dom.views.AbstractView; /** ! * The MouseEvent interface provides specific contextual * information associated with Mouse events. ! *

      The detail attribute inherited from UIEvent ! * indicates the number of times a mouse button has been pressed and ! * released over the same screen location during a user action. The ! * attribute value is 1 when the user begins this action and increments by 1 ! * for each full sequence of pressing and releasing. If the user moves the ! * mouse between the mousedown and mouseup the value will be set to 0, * indicating that no click is occurring. ! *

      In the case of nested elements mouse events are always targeted at the ! * most deeply nested element. Ancestors of the targeted element may use ! * bubbling to obtain notification of mouse events which occur within its * descendent elements. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ public interface MouseEvent extends UIEvent { /** ! * The horizontal coordinate at which the event occurred relative to the * origin of the screen coordinate system. */ public int getScreenX(); /** ! * The vertical coordinate at which the event occurred relative to the * origin of the screen coordinate system. */ public int getScreenY(); /** ! * The horizontal coordinate at which the event occurred relative to the * DOM implementation's client area. */ public int getClientX(); /** ! * The vertical coordinate at which the event occurred relative to the DOM * implementation's client area. */ public int getClientY(); /** ! * Used to indicate whether the 'ctrl' key was depressed during the firing * of the event. */ public boolean getCtrlKey(); /** ! * Used to indicate whether the 'shift' key was depressed during the * firing of the event. */ public boolean getShiftKey(); /** ! * Used to indicate whether the 'alt' key was depressed during the firing ! * of the event. On some platforms this key may map to an alternative * key name. */ public boolean getAltKey(); /** ! * Used to indicate whether the 'meta' key was depressed during the firing ! * of the event. On some platforms this key may map to an alternative * key name. */ public boolean getMetaKey(); /** ! * During mouse events caused by the depression or release of a mouse ! * button, button is used to indicate which mouse button ! * changed state. The values for button range from zero to ! * indicate the left button of the mouse, one to indicate the middle ! * button if present, and two to indicate the right button. For mice ! * configured for left handed use in which the button actions are * reversed the values are instead read from right to left. */ public short getButton(); /** ! * Used to identify a secondary EventTarget related to a UI ! * event. Currently this attribute is used with the mouseover event to ! * indicate the EventTarget which the pointing device ! * exited and with the mouseout event to indicate the * EventTarget which the pointing device entered. */ public EventTarget getRelatedTarget(); /** ! * The initMouseEvent method is used to initialize the value ! * of a MouseEvent created through the ! * DocumentEvent interface. This method may only be called ! * before the MouseEvent has been dispatched via the ! * dispatchEvent method, though it may be called multiple ! * times during that phase if necessary. If called multiple times, the * final invocation takes precedence. * @param typeArg Specifies the event type. * @param canBubbleArg Specifies whether or not the event can bubble. ! * @param cancelableArg Specifies whether or not the event's default * action can be prevented. ! * @param viewArg Specifies the Event's * AbstractView. * @param detailArg Specifies the Event's mouse click count. ! * @param screenXArg Specifies the Event's screen x * coordinate ! * @param screenYArg Specifies the Event's screen y * coordinate ! * @param clientXArg Specifies the Event's client x * coordinate ! * @param clientYArg Specifies the Event's client y * coordinate ! * @param ctrlKeyArg Specifies whether or not control key was depressed * during the Event. ! * @param altKeyArg Specifies whether or not alt key was depressed during * the Event. ! * @param shiftKeyArg Specifies whether or not shift key was depressed * during the Event. ! * @param metaKeyArg Specifies whether or not meta key was depressed * during the Event. * @param buttonArg Specifies the Event's mouse button. ! * @param relatedTargetArg Specifies the Event's related * EventTarget. */ ! public void initMouseEvent(String typeArg, ! boolean canBubbleArg, ! boolean cancelableArg, ! AbstractView viewArg, ! int detailArg, ! int screenXArg, ! int screenYArg, ! int clientXArg, ! int clientYArg, ! boolean ctrlKeyArg, ! boolean altKeyArg, ! boolean shiftKeyArg, ! boolean metaKeyArg, ! short buttonArg, EventTarget relatedTargetArg); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.events; *** 15,22 **** import org.w3c.dom.Node; /** ! * The MutationEvent interface provides specific contextual ! * information associated with Mutation events. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ --- 15,22 ---- import org.w3c.dom.Node; /** ! * The MutationEvent interface provides specific contextual ! * information associated with Mutation events. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 */ *************** public interface MutationEvent extends E *** 36,108 **** public static final short REMOVAL = 3; /** ! * relatedNode is used to identify a secondary node related ! * to a mutation event. For example, if a mutation event is dispatched ! * to a node indicating that its parent has changed, the ! * relatedNode is the changed parent. If an event is ! * instead dispatched to a subtree indicating a node was changed within ! * it, the relatedNode is the changed node. In the case of ! * the DOMAttrModified event it indicates the Attr node ! * which was modified, added, or removed. */ public Node getRelatedNode(); /** ! * prevValue indicates the previous value of the ! * Attr node in DOMAttrModified events, and of the ! * CharacterData node in DOMCharacterDataModified events. */ public String getPrevValue(); /** ! * newValue indicates the new value of the Attr ! * node in DOMAttrModified events, and of the CharacterData ! * node in DOMCharacterDataModified events. */ public String getNewValue(); /** ! * attrName indicates the name of the changed ! * Attr node in a DOMAttrModified event. */ public String getAttrName(); /** ! * attrChange indicates the type of change which triggered * the DOMAttrModified event. The values can be MODIFICATION ! * , ADDITION, or REMOVAL. */ public short getAttrChange(); /** ! * The initMutationEvent method is used to initialize the ! * value of a MutationEvent created through the ! * DocumentEvent interface. This method may only be called ! * before the MutationEvent has been dispatched via the ! * dispatchEvent method, though it may be called multiple ! * times during that phase if necessary. If called multiple times, the * final invocation takes precedence. * @param typeArg Specifies the event type. * @param canBubbleArg Specifies whether or not the event can bubble. ! * @param cancelableArg Specifies whether or not the event's default * action can be prevented. * @param relatedNodeArg Specifies the Event's related Node. ! * @param prevValueArg Specifies the Event's * prevValue attribute. This value may be null. ! * @param newValueArg Specifies the Event's * newValue attribute. This value may be null. ! * @param attrNameArg Specifies the Event's * attrName attribute. This value may be null. ! * @param attrChangeArg Specifies the Event's * attrChange attribute */ ! public void initMutationEvent(String typeArg, ! boolean canBubbleArg, ! boolean cancelableArg, ! Node relatedNodeArg, ! String prevValueArg, ! String newValueArg, ! String attrNameArg, short attrChangeArg); } --- 36,108 ---- public static final short REMOVAL = 3; /** ! * relatedNode is used to identify a secondary node related ! * to a mutation event. For example, if a mutation event is dispatched ! * to a node indicating that its parent has changed, the ! * relatedNode is the changed parent. If an event is ! * instead dispatched to a subtree indicating a node was changed within ! * it, the relatedNode is the changed node. In the case of ! * the DOMAttrModified event it indicates the Attr node ! * which was modified, added, or removed. */ public Node getRelatedNode(); /** ! * prevValue indicates the previous value of the ! * Attr node in DOMAttrModified events, and of the ! * CharacterData node in DOMCharacterDataModified events. */ public String getPrevValue(); /** ! * newValue indicates the new value of the Attr ! * node in DOMAttrModified events, and of the CharacterData ! * node in DOMCharacterDataModified events. */ public String getNewValue(); /** ! * attrName indicates the name of the changed ! * Attr node in a DOMAttrModified event. */ public String getAttrName(); /** ! * attrChange indicates the type of change which triggered * the DOMAttrModified event. The values can be MODIFICATION ! * , ADDITION, or REMOVAL. */ public short getAttrChange(); /** ! * The initMutationEvent method is used to initialize the ! * value of a MutationEvent created through the ! * DocumentEvent interface. This method may only be called ! * before the MutationEvent has been dispatched via the ! * dispatchEvent method, though it may be called multiple ! * times during that phase if necessary. If called multiple times, the * final invocation takes precedence. * @param typeArg Specifies the event type. * @param canBubbleArg Specifies whether or not the event can bubble. ! * @param cancelableArg Specifies whether or not the event's default * action can be prevented. * @param relatedNodeArg Specifies the Event's related Node. ! * @param prevValueArg Specifies the Event's * prevValue attribute. This value may be null. ! * @param newValueArg Specifies the Event's * newValue attribute. This value may be null. ! * @param attrNameArg Specifies the Event's * attrName attribute. This value may be null. ! * @param attrChangeArg Specifies the Event's * attrChange attribute */ ! public void initMutationEvent(String typeArg, ! boolean canBubbleArg, ! boolean cancelableArg, ! Node relatedNodeArg, ! String prevValueArg, ! String newValueArg, ! String attrNameArg, short attrChangeArg); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.events; *** 15,21 **** import org.w3c.dom.views.AbstractView; /** ! * The UIEvent interface provides specific contextual information * associated with User Interface events. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 --- 15,21 ---- import org.w3c.dom.views.AbstractView; /** ! * The UIEvent interface provides specific contextual information * associated with User Interface events. *

      See also the Document Object Model (DOM) Level 2 Events Specification. * @since DOM Level 2 *************** public interface UIEvent extends Event { *** 28,58 **** public AbstractView getView(); /** ! * Specifies some detail information about the Event, * depending on the type of event. */ public int getDetail(); /** ! * The initUIEvent method is used to initialize the value of ! * a UIEvent created through the DocumentEvent ! * interface. This method may only be called before the ! * UIEvent has been dispatched via the ! * dispatchEvent method, though it may be called multiple ! * times during that phase if necessary. If called multiple times, the * final invocation takes precedence. * @param typeArg Specifies the event type. * @param canBubbleArg Specifies whether or not the event can bubble. ! * @param cancelableArg Specifies whether or not the event's default * action can be prevented. ! * @param viewArg Specifies the Event's * AbstractView. * @param detailArg Specifies the Event's detail. */ ! public void initUIEvent(String typeArg, ! boolean canBubbleArg, ! boolean cancelableArg, ! AbstractView viewArg, int detailArg); } --- 28,58 ---- public AbstractView getView(); /** ! * Specifies some detail information about the Event, * depending on the type of event. */ public int getDetail(); /** ! * The initUIEvent method is used to initialize the value of ! * a UIEvent created through the DocumentEvent ! * interface. This method may only be called before the ! * UIEvent has been dispatched via the ! * dispatchEvent method, though it may be called multiple ! * times during that phase if necessary. If called multiple times, the * final invocation takes precedence. * @param typeArg Specifies the event type. * @param canBubbleArg Specifies whether or not the event can bubble. ! * @param cancelableArg Specifies whether or not the event's default * action can be prevented. ! * @param viewArg Specifies the Event's * AbstractView. * @param detailArg Specifies the Event's detail. */ ! public void initUIEvent(String typeArg, ! boolean canBubbleArg, ! boolean cancelableArg, ! AbstractView viewArg, int detailArg); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,75 **** */ public interface HTMLAnchorElement extends HTMLElement { /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * The character encoding of the linked resource. See the charset * attribute definition in HTML 4.01. */ public String getCharset(); /** ! * The character encoding of the linked resource. See the charset * attribute definition in HTML 4.01. */ public void setCharset(String charset); /** ! * Comma-separated list of lengths, defining an active region geometry. ! * See also shape for the shape of the region. See the * coords attribute definition in HTML 4.01. */ public String getCoords(); /** ! * Comma-separated list of lengths, defining an active region geometry. ! * See also shape for the shape of the region. See the * coords attribute definition in HTML 4.01. */ public void setCoords(String coords); /** ! * The absolute URI [IETF RFC 2396] of the linked resource. See the href attribute * definition in HTML 4.01. */ public String getHref(); /** ! * The absolute URI [IETF RFC 2396] of the linked resource. See the href attribute * definition in HTML 4.01. */ public void setHref(String href); /** ! * Language code of the linked resource. See the hreflang attribute * definition in HTML 4.01. */ public String getHreflang(); /** ! * Language code of the linked resource. See the hreflang attribute * definition in HTML 4.01. */ public void setHreflang(String hreflang); --- 18,75 ---- */ public interface HTMLAnchorElement extends HTMLElement { /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * The character encoding of the linked resource. See the charset * attribute definition in HTML 4.01. */ public String getCharset(); /** ! * The character encoding of the linked resource. See the charset * attribute definition in HTML 4.01. */ public void setCharset(String charset); /** ! * Comma-separated list of lengths, defining an active region geometry. ! * See also shape for the shape of the region. See the * coords attribute definition in HTML 4.01. */ public String getCoords(); /** ! * Comma-separated list of lengths, defining an active region geometry. ! * See also shape for the shape of the region. See the * coords attribute definition in HTML 4.01. */ public void setCoords(String coords); /** ! * The absolute URI [IETF RFC 2396] of the linked resource. See the href attribute * definition in HTML 4.01. */ public String getHref(); /** ! * The absolute URI [IETF RFC 2396] of the linked resource. See the href attribute * definition in HTML 4.01. */ public void setHref(String href); /** ! * Language code of the linked resource. See the hreflang attribute * definition in HTML 4.01. */ public String getHreflang(); /** ! * Language code of the linked resource. See the hreflang attribute * definition in HTML 4.01. */ public void setHreflang(String hreflang); *************** public interface HTMLAnchorElement exten *** 102,135 **** public void setRev(String rev); /** ! * The shape of the active area. The coordinates are given by * coords. See the shape attribute definition in HTML 4.01. */ public String getShape(); /** ! * The shape of the active area. The coordinates are given by * coords. See the shape attribute definition in HTML 4.01. */ public void setShape(String shape); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public String getTarget(); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public void setTarget(String target); --- 102,135 ---- public void setRev(String rev); /** ! * The shape of the active area. The coordinates are given by * coords. See the shape attribute definition in HTML 4.01. */ public String getShape(); /** ! * The shape of the active area. The coordinates are given by * coords. See the shape attribute definition in HTML 4.01. */ public void setShape(String shape); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public String getTarget(); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public void setTarget(String target); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,154 **** package org.w3c.dom.html2; /** ! * An embedded Java applet. See the APPLET element definition in HTML 4.01. * This element is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLAppletElement extends HTMLElement { /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Alternate text for user agents not rendering the normal content of this ! * element. See the alt attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getAlt(); /** ! * Alternate text for user agents not rendering the normal content of this ! * element. See the alt attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setAlt(String alt); /** ! * Comma-separated archive list. See the archive attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getArchive(); /** ! * Comma-separated archive list. See the archive attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setArchive(String archive); /** ! * Applet class file. See the code attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getCode(); /** ! * Applet class file. See the code attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setCode(String code); /** ! * Optional base URI [IETF RFC 2396] for applet. See the codebase attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getCodeBase(); /** ! * Optional base URI [IETF RFC 2396] for applet. See the codebase attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCodeBase(String codeBase); /** ! * Override height. See the height attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getHeight(); /** ! * Override height. See the height attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setHeight(String height); /** ! * Horizontal space, in pixels, to the left and right of this image, ! * applet, or object. See the hspace attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public int getHspace(); /** ! * Horizontal space, in pixels, to the left and right of this image, ! * applet, or object. See the hspace attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public void setHspace(int hspace); /** ! * The name of the applet. See the name attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getName(); /** ! * The name of the applet. See the name attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setName(String name); /** * The value of the "object" attribute. See the object attribute definition ! * in HTML 4.01. This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public String getObject(); /** * The value of the "object" attribute. See the object attribute definition ! * in HTML 4.01. This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public void setObject(String object); /** ! * Vertical space, in pixels, above and below this image, applet, or ! * object. See the vspace attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public int getVspace(); /** ! * Vertical space, in pixels, above and below this image, applet, or ! * object. See the vspace attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public void setVspace(int vspace); /** ! * Override width. See the width attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getWidth(); /** ! * Override width. See the width attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setWidth(String width); --- 13,154 ---- package org.w3c.dom.html2; /** ! * An embedded Java applet. See the APPLET element definition in HTML 4.01. * This element is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLAppletElement extends HTMLElement { /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Alternate text for user agents not rendering the normal content of this ! * element. See the alt attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getAlt(); /** ! * Alternate text for user agents not rendering the normal content of this ! * element. See the alt attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setAlt(String alt); /** ! * Comma-separated archive list. See the archive attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getArchive(); /** ! * Comma-separated archive list. See the archive attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setArchive(String archive); /** ! * Applet class file. See the code attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getCode(); /** ! * Applet class file. See the code attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setCode(String code); /** ! * Optional base URI [IETF RFC 2396] for applet. See the codebase attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getCodeBase(); /** ! * Optional base URI [IETF RFC 2396] for applet. See the codebase attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCodeBase(String codeBase); /** ! * Override height. See the height attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getHeight(); /** ! * Override height. See the height attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setHeight(String height); /** ! * Horizontal space, in pixels, to the left and right of this image, ! * applet, or object. See the hspace attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public int getHspace(); /** ! * Horizontal space, in pixels, to the left and right of this image, ! * applet, or object. See the hspace attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public void setHspace(int hspace); /** ! * The name of the applet. See the name attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getName(); /** ! * The name of the applet. See the name attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setName(String name); /** * The value of the "object" attribute. See the object attribute definition ! * in HTML 4.01. This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public String getObject(); /** * The value of the "object" attribute. See the object attribute definition ! * in HTML 4.01. This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public void setObject(String object); /** ! * Vertical space, in pixels, above and below this image, applet, or ! * object. See the vspace attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public int getVspace(); /** ! * Vertical space, in pixels, above and below this image, applet, or ! * object. See the vspace attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public void setVspace(int vspace); /** ! * Override width. See the width attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getWidth(); /** ! * Override width. See the width attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setWidth(String width); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,109 **** package org.w3c.dom.html2; /** ! * Client-side image map area definition. See the AREA element definition in * HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLAreaElement extends HTMLElement { /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public String getAlt(); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public void setAlt(String alt); /** ! * Comma-separated list of lengths, defining an active region geometry. ! * See also shape for the shape of the region. See the * coords attribute definition in HTML 4.01. */ public String getCoords(); /** ! * Comma-separated list of lengths, defining an active region geometry. ! * See also shape for the shape of the region. See the * coords attribute definition in HTML 4.01. */ public void setCoords(String coords); /** ! * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in * HTML 4.01. */ public String getHref(); /** ! * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in * HTML 4.01. */ public void setHref(String href); /** ! * Specifies that this area is inactive, i.e., has no associated action. * See the nohref attribute definition in HTML 4.01. */ public boolean getNoHref(); /** ! * Specifies that this area is inactive, i.e., has no associated action. * See the nohref attribute definition in HTML 4.01. */ public void setNoHref(boolean noHref); /** ! * The shape of the active area. The coordinates are given by * coords. See the shape attribute definition in HTML 4.01. */ public String getShape(); /** ! * The shape of the active area. The coordinates are given by * coords. See the shape attribute definition in HTML 4.01. */ public void setShape(String shape); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public String getTarget(); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public void setTarget(String target); --- 13,109 ---- package org.w3c.dom.html2; /** ! * Client-side image map area definition. See the AREA element definition in * HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLAreaElement extends HTMLElement { /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public String getAlt(); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public void setAlt(String alt); /** ! * Comma-separated list of lengths, defining an active region geometry. ! * See also shape for the shape of the region. See the * coords attribute definition in HTML 4.01. */ public String getCoords(); /** ! * Comma-separated list of lengths, defining an active region geometry. ! * See also shape for the shape of the region. See the * coords attribute definition in HTML 4.01. */ public void setCoords(String coords); /** ! * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in * HTML 4.01. */ public String getHref(); /** ! * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in * HTML 4.01. */ public void setHref(String href); /** ! * Specifies that this area is inactive, i.e., has no associated action. * See the nohref attribute definition in HTML 4.01. */ public boolean getNoHref(); /** ! * Specifies that this area is inactive, i.e., has no associated action. * See the nohref attribute definition in HTML 4.01. */ public void setNoHref(boolean noHref); /** ! * The shape of the active area. The coordinates are given by * coords. See the shape attribute definition in HTML 4.01. */ public String getShape(); /** ! * The shape of the active area. The coordinates are given by * coords. See the shape attribute definition in HTML 4.01. */ public void setShape(String shape); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public String getTarget(); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public void setTarget(String target); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,29 **** */ public interface HTMLBRElement extends HTMLElement { /** ! * Control flow of text around floats. See the clear attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getClear(); /** ! * Control flow of text around floats. See the clear attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setClear(String clear); --- 18,29 ---- */ public interface HTMLBRElement extends HTMLElement { /** ! * Control flow of text around floats. See the clear attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getClear(); /** ! * Control flow of text around floats. See the clear attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setClear(String clear); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java Tue Jan 11 19:46:05 2011 *************** public interface HTMLBaseElement extends *** 27,38 **** public void setHref(String href); /** ! * The default target frame. See the target attribute definition in HTML * 4.01. */ public String getTarget(); /** ! * The default target frame. See the target attribute definition in HTML * 4.01. */ public void setTarget(String target); --- 27,38 ---- public void setHref(String href); /** ! * The default target frame. See the target attribute definition in HTML * 4.01. */ public String getTarget(); /** ! * The default target frame. See the target attribute definition in HTML * 4.01. */ public void setTarget(String target); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,53 **** package org.w3c.dom.html2; /** ! * Base font. See the BASEFONT element definition in HTML 4.01. This element * is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLBaseFontElement extends HTMLElement { /** ! * Font color. See the color attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getColor(); /** ! * Font color. See the color attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setColor(String color); /** ! * Font face identifier. See the face attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getFace(); /** ! * Font face identifier. See the face attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setFace(String face); /** ! * Computed font size. See the size attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public int getSize(); /** ! * Computed font size. See the size attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ --- 13,53 ---- package org.w3c.dom.html2; /** ! * Base font. See the BASEFONT element definition in HTML 4.01. This element * is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLBaseFontElement extends HTMLElement { /** ! * Font color. See the color attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getColor(); /** ! * Font color. See the color attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setColor(String color); /** ! * Font face identifier. See the face attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getFace(); /** ! * Font face identifier. See the face attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setFace(String face); /** ! * Computed font size. See the size attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ public int getSize(); /** ! * Computed font size. See the size attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. * @version DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,92 **** package org.w3c.dom.html2; /** ! * The HTML document body. This element is always present in the DOM API, even ! * if the tags are not present in the source document. See the BODY element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLBodyElement extends HTMLElement { /** ! * Color of active links (after mouse-button down, but before mouse-button ! * up). See the alink attribute definition in HTML 4.01. This attribute * is deprecated in HTML 4.01. */ public String getALink(); /** ! * Color of active links (after mouse-button down, but before mouse-button ! * up). See the alink attribute definition in HTML 4.01. This attribute * is deprecated in HTML 4.01. */ public void setALink(String aLink); /** ! * URI [IETF RFC 2396] of the background texture tile image. See the background attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getBackground(); /** ! * URI [IETF RFC 2396] of the background texture tile image. See the background attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setBackground(String background); /** ! * Document background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getBgColor(); /** ! * Document background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setBgColor(String bgColor); /** ! * Color of links that are not active and unvisited. See the link ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public String getLink(); /** ! * Color of links that are not active and unvisited. See the link ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public void setLink(String link); /** ! * Document text color. See the text attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getText(); /** ! * Document text color. See the text attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setText(String text); /** ! * Color of links that have been visited by the user. See the vlink ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public String getVLink(); /** ! * Color of links that have been visited by the user. See the vlink ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public void setVLink(String vLink); --- 13,92 ---- package org.w3c.dom.html2; /** ! * The HTML document body. This element is always present in the DOM API, even ! * if the tags are not present in the source document. See the BODY element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLBodyElement extends HTMLElement { /** ! * Color of active links (after mouse-button down, but before mouse-button ! * up). See the alink attribute definition in HTML 4.01. This attribute * is deprecated in HTML 4.01. */ public String getALink(); /** ! * Color of active links (after mouse-button down, but before mouse-button ! * up). See the alink attribute definition in HTML 4.01. This attribute * is deprecated in HTML 4.01. */ public void setALink(String aLink); /** ! * URI [IETF RFC 2396] of the background texture tile image. See the background attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getBackground(); /** ! * URI [IETF RFC 2396] of the background texture tile image. See the background attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setBackground(String background); /** ! * Document background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getBgColor(); /** ! * Document background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setBgColor(String bgColor); /** ! * Color of links that are not active and unvisited. See the link ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public String getLink(); /** ! * Color of links that are not active and unvisited. See the link ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public void setLink(String link); /** ! * Document text color. See the text attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getText(); /** ! * Document text color. See the text attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setText(String text); /** ! * Color of links that have been visited by the user. See the vlink ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public String getVLink(); /** ! * Color of links that have been visited by the user. See the vlink ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public void setVLink(String vLink); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,86 **** */ public interface HTMLButtonElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * The type of button (all lower case). See the type attribute definition * in HTML 4.01. */ public String getType(); /** ! * The current form control value. See the value attribute definition in * HTML 4.01. */ public String getValue(); /** ! * The current form control value. See the value attribute definition in * HTML 4.01. */ public void setValue(String value); --- 18,86 ---- */ public interface HTMLButtonElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * The type of button (all lower case). See the type attribute definition * in HTML 4.01. */ public String getType(); /** ! * The current form control value. See the value attribute definition in * HTML 4.01. */ public String getValue(); /** ! * The current form control value. See the value attribute definition in * HTML 4.01. */ public void setValue(String value); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 15,57 **** import org.w3c.dom.Node; /** ! * An HTMLCollection is a list of nodes. An individual node may ! * be accessed by either ordinal index or the node's name or ! * id attributes. Collections in the HTML DOM are assumed to be ! * live meaning that they are automatically updated when the underlying ! * document is changed. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLCollection { /** ! * This attribute specifies the length or size of the list. */ public int getLength(); /** ! * This method retrieves a node specified by ordinal index. Nodes are * numbered in tree order (depth-first traversal order). ! * @param index The index of the node to be fetched. The index origin is * 0. ! * @return The Node at the corresponding position upon ! * success. A value of null is returned if the index is ! * out of range. */ public Node item(int index); /** ! * This method retrieves a Node using a name. With [HTML 4.01] ! * documents, it first searches for a Node with a matching ! * id attribute. If it doesn't find one, it then searches ! * for a Node with a matching name attribute, ! * but only on those elements that are allowed a name attribute. With [XHTML 1.0] ! * documents, this method only searches for Nodes with a ! * matching id attribute. This method is case insensitive * in HTML documents and case sensitive in XHTML documents. * @param name The name of the Node to be fetched. ! * @return The Node with a name or ! * id attribute whose value corresponds to the specified ! * string. Upon failure (e.g., no node with this name exists), returns * null. */ public Node namedItem(String name); --- 15,57 ---- import org.w3c.dom.Node; /** ! * An HTMLCollection is a list of nodes. An individual node may ! * be accessed by either ordinal index or the node's name or ! * id attributes. Collections in the HTML DOM are assumed to be ! * live meaning that they are automatically updated when the underlying ! * document is changed. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLCollection { /** ! * This attribute specifies the length or size of the list. */ public int getLength(); /** ! * This method retrieves a node specified by ordinal index. Nodes are * numbered in tree order (depth-first traversal order). ! * @param index The index of the node to be fetched. The index origin is * 0. ! * @return The Node at the corresponding position upon ! * success. A value of null is returned if the index is ! * out of range. */ public Node item(int index); /** ! * This method retrieves a Node using a name. With [HTML 4.01] ! * documents, it first searches for a Node with a matching ! * id attribute. If it doesn't find one, it then searches ! * for a Node with a matching name attribute, ! * but only on those elements that are allowed a name attribute. With [XHTML 1.0] ! * documents, this method only searches for Nodes with a ! * matching id attribute. This method is case insensitive * in HTML documents and case sensitive in XHTML documents. * @param name The name of the Node to be fetched. ! * @return The Node with a name or ! * id attribute whose value corresponds to the specified ! * string. Upon failure (e.g., no node with this name exists), returns * null. */ public Node namedItem(String name); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,29 **** */ public interface HTMLDListElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); --- 18,29 ---- */ public interface HTMLDListElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,30 **** package org.w3c.dom.html2; /** ! * Directory list. See the DIR element definition in HTML 4.01. This element * is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLDirectoryElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); --- 13,30 ---- package org.w3c.dom.html2; /** ! * Directory list. See the DIR element definition in HTML 4.01. This element * is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLDirectoryElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,29 **** */ public interface HTMLDivElement extends HTMLElement { /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); --- 18,29 ---- */ public interface HTMLDivElement extends HTMLElement { /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.NodeList; *** 17,234 **** import org.w3c.dom.DOMException; /** ! * An HTMLDocument is the root of the HTML hierarchy and holds ! * the entire content. Besides providing access to the hierarchy, it also ! * provides some convenience methods for accessing certain sets of * information from the document. ! *

      The following properties have been deprecated in favor of the * corresponding ones for the BODY element:alinkColorbackground ! * bgColorfgColorlinkColorvlinkColorIn DOM Level 2, the method ! * getElementById is inherited from the Document * interface where it was moved to. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLDocument extends Document { /** ! * The title of a document as specified by the TITLE element ! * in the head of the document. */ public String getTitle(); /** ! * The title of a document as specified by the TITLE element ! * in the head of the document. */ public void setTitle(String title); /** ! * Returns the URI [IETF RFC 2396] of the page that linked to this page. The value is an ! * empty string if the user navigated to the page directly (not through ! * a link, but, for example, via a bookmark). */ public String getReferrer(); /** ! * The domain name of the server that served the document, or ! * null if the server cannot be identified by a domain ! * name. */ public String getDomain(); /** ! * The absolute URI [IETF RFC 2396] of the document. */ public String getURL(); /** ! * The element that contains the content for the document. In documents ! * with BODY contents, returns the BODY ! * element. In frameset documents, this returns the outermost ! * FRAMESET element. */ public HTMLElement getBody(); /** ! * The element that contains the content for the document. In documents ! * with BODY contents, returns the BODY ! * element. In frameset documents, this returns the outermost ! * FRAMESET element. */ public void setBody(HTMLElement body); /** ! * A collection of all the IMG elements in a document. The ! * behavior is limited to IMG elements for backwards ! * compatibility. As suggested by [HTML 4.01], to include images, authors may use ! * the OBJECT element or the IMG element. ! * Therefore, it is recommended not to use this attribute to find the ! * images in the document but getElementsByTagName with * HTML 4.01 or getElementsByTagNameNS with XHTML 1.0. */ public HTMLCollection getImages(); /** ! * A collection of all the OBJECT elements that include ! * applets and APPLET (deprecated) elements in a document. */ public HTMLCollection getApplets(); /** * A collection of all AREA elements and anchor ( ! * A) elements in a document with a value for the ! * href attribute. */ public HTMLCollection getLinks(); /** ! * A collection of all the forms of a document. */ public HTMLCollection getForms(); /** ! * A collection of all the anchor (A) elements in a document ! * with a value for the name attribute. For reasons of ! * backward compatibility, the returned set of anchors only contains ! * those anchors created with the name attribute, not those ! * created with the id attribute. Note that in [XHTML 1.0], the ! * name attribute (see section 4.10) has no semantics and ! * is only present for legacy user agents: the id attribute ! * is used instead. Users should prefer the iterator mechanisms provided ! * by [DOM Level 2 Traversal] instead. */ public HTMLCollection getAnchors(); /** ! * This mutable string attribute denotes persistent state information ! * that (1) is associated with the current frame or document and (2) is ! * composed of information described by the cookies ! * non-terminal of [IETF RFC 2965], Section 4.2.2. ! *
      If no persistent state information is available for the current ! * frame or document document, then this property's value is an empty ! * string. ! *
      When this attribute is read, all cookies are returned as a single ! * string, with each cookie's name-value pair concatenated into a list ! * of name-value pairs, each list item being separated by a ';' ! * (semicolon). ! *
      When this attribute is set, the value it is set to should be a ! * string that adheres to the cookie non-terminal of [IETF RFC 2965]; that ! * is, it should be a single name-value pair followed by zero or more ! * cookie attribute values. If no domain attribute is specified, then ! * the domain attribute for the new value defaults to the host portion ! * of an absolute URI [IETF RFC 2396] of the current frame or document. If no path ! * attribute is specified, then the path attribute for the new value ! * defaults to the absolute path portion of the URI [IETF RFC 2396] of the current ! * frame or document. If no max-age attribute is specified, then the ! * max-age attribute for the new value defaults to a user agent defined ! * value. If a cookie with the specified name is already associated with ! * the current frame or document, then the new value as well as the new ! * attributes replace the old value and attributes. If a max-age ! * attribute of 0 is specified for the new value, then any existing ! * cookies of the specified name are removed from the cookie storage. ! * See [IETF RFC 2965] for the semantics of persistent state item attribute value ! * pairs. The precise nature of a user agent session is not defined by ! * this specification. */ public String getCookie(); /** ! * This mutable string attribute denotes persistent state information ! * that (1) is associated with the current frame or document and (2) is ! * composed of information described by the cookies ! * non-terminal of [IETF RFC 2965], Section 4.2.2. ! *
      If no persistent state information is available for the current ! * frame or document document, then this property's value is an empty ! * string. ! *
      When this attribute is read, all cookies are returned as a single ! * string, with each cookie's name-value pair concatenated into a list ! * of name-value pairs, each list item being separated by a ';' ! * (semicolon). ! *
      When this attribute is set, the value it is set to should be a ! * string that adheres to the cookie non-terminal of [IETF RFC 2965]; that ! * is, it should be a single name-value pair followed by zero or more ! * cookie attribute values. If no domain attribute is specified, then ! * the domain attribute for the new value defaults to the host portion ! * of an absolute URI [IETF RFC 2396] of the current frame or document. If no path ! * attribute is specified, then the path attribute for the new value ! * defaults to the absolute path portion of the URI [IETF RFC 2396] of the current ! * frame or document. If no max-age attribute is specified, then the ! * max-age attribute for the new value defaults to a user agent defined ! * value. If a cookie with the specified name is already associated with ! * the current frame or document, then the new value as well as the new ! * attributes replace the old value and attributes. If a max-age ! * attribute of 0 is specified for the new value, then any existing ! * cookies of the specified name are removed from the cookie storage. ! * See [IETF RFC 2965] for the semantics of persistent state item attribute value ! * pairs. The precise nature of a user agent session is not defined by ! * this specification. * @exception DOMException ! * SYNTAX_ERR: If the new value does not adhere to the cookie syntax ! * specified by [IETF RFC 2965]. */ public void setCookie(String cookie) throws DOMException; /** ! * Open a document stream for writing. If a document exists in the target, ! * this method clears it. This method and the ones following allow a ! * user to add to or replace the structure model of a document using ! * strings of unparsed HTML. At the time of writing alternate methods ! * for providing similar functionality for both HTML and XML documents * were being considered (see [DOM Level 3 Load and Save]). */ public void open(); /** ! * Closes a document stream opened by open() and forces * rendering. */ public void close(); /** ! * Write a string of text to a document stream opened by ! * open(). Note that the function will produce a document ! * which is not necessarily driven by a DTD and therefore might be * produce an invalid result in the context of the document. ! * @param text The string to be parsed into some structure in the * document structure model. */ public void write(String text); /** ! * Write a string of text followed by a newline character to a document ! * stream opened by open(). Note that the function will ! * produce a document which is not necessarily driven by a DTD and ! * therefore might be produce an invalid result in the context of the * document ! * @param text The string to be parsed into some structure in the * document structure model. */ public void writeln(String text); /** ! * With [HTML 4.01] documents, this method returns the (possibly empty) collection ! * of elements whose name value is given by ! * elementName. In [XHTML 1.0] documents, this methods only return the ! * (possibly empty) collection of form controls with matching name. This ! * method is case sensitive. ! * @param elementName The name attribute value for an * element. * @return The matching elements. */ --- 17,234 ---- import org.w3c.dom.DOMException; /** ! * An HTMLDocument is the root of the HTML hierarchy and holds ! * the entire content. Besides providing access to the hierarchy, it also ! * provides some convenience methods for accessing certain sets of * information from the document. ! *

      The following properties have been deprecated in favor of the * corresponding ones for the BODY element:alinkColorbackground ! * bgColorfgColorlinkColorvlinkColorIn DOM Level 2, the method ! * getElementById is inherited from the Document * interface where it was moved to. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLDocument extends Document { /** ! * The title of a document as specified by the TITLE element ! * in the head of the document. */ public String getTitle(); /** ! * The title of a document as specified by the TITLE element ! * in the head of the document. */ public void setTitle(String title); /** ! * Returns the URI [IETF RFC 2396] of the page that linked to this page. The value is an ! * empty string if the user navigated to the page directly (not through ! * a link, but, for example, via a bookmark). */ public String getReferrer(); /** ! * The domain name of the server that served the document, or ! * null if the server cannot be identified by a domain ! * name. */ public String getDomain(); /** ! * The absolute URI [IETF RFC 2396] of the document. */ public String getURL(); /** ! * The element that contains the content for the document. In documents ! * with BODY contents, returns the BODY ! * element. In frameset documents, this returns the outermost ! * FRAMESET element. */ public HTMLElement getBody(); /** ! * The element that contains the content for the document. In documents ! * with BODY contents, returns the BODY ! * element. In frameset documents, this returns the outermost ! * FRAMESET element. */ public void setBody(HTMLElement body); /** ! * A collection of all the IMG elements in a document. The ! * behavior is limited to IMG elements for backwards ! * compatibility. As suggested by [HTML 4.01], to include images, authors may use ! * the OBJECT element or the IMG element. ! * Therefore, it is recommended not to use this attribute to find the ! * images in the document but getElementsByTagName with * HTML 4.01 or getElementsByTagNameNS with XHTML 1.0. */ public HTMLCollection getImages(); /** ! * A collection of all the OBJECT elements that include ! * applets and APPLET (deprecated) elements in a document. */ public HTMLCollection getApplets(); /** * A collection of all AREA elements and anchor ( ! * A) elements in a document with a value for the ! * href attribute. */ public HTMLCollection getLinks(); /** ! * A collection of all the forms of a document. */ public HTMLCollection getForms(); /** ! * A collection of all the anchor (A) elements in a document ! * with a value for the name attribute. For reasons of ! * backward compatibility, the returned set of anchors only contains ! * those anchors created with the name attribute, not those ! * created with the id attribute. Note that in [XHTML 1.0], the ! * name attribute (see section 4.10) has no semantics and ! * is only present for legacy user agents: the id attribute ! * is used instead. Users should prefer the iterator mechanisms provided ! * by [DOM Level 2 Traversal] instead. */ public HTMLCollection getAnchors(); /** ! * This mutable string attribute denotes persistent state information ! * that (1) is associated with the current frame or document and (2) is ! * composed of information described by the cookies ! * non-terminal of [IETF RFC 2965], Section 4.2.2. ! *
      If no persistent state information is available for the current ! * frame or document document, then this property's value is an empty ! * string. ! *
      When this attribute is read, all cookies are returned as a single ! * string, with each cookie's name-value pair concatenated into a list ! * of name-value pairs, each list item being separated by a ';' ! * (semicolon). ! *
      When this attribute is set, the value it is set to should be a ! * string that adheres to the cookie non-terminal of [IETF RFC 2965]; that ! * is, it should be a single name-value pair followed by zero or more ! * cookie attribute values. If no domain attribute is specified, then ! * the domain attribute for the new value defaults to the host portion ! * of an absolute URI [IETF RFC 2396] of the current frame or document. If no path ! * attribute is specified, then the path attribute for the new value ! * defaults to the absolute path portion of the URI [IETF RFC 2396] of the current ! * frame or document. If no max-age attribute is specified, then the ! * max-age attribute for the new value defaults to a user agent defined ! * value. If a cookie with the specified name is already associated with ! * the current frame or document, then the new value as well as the new ! * attributes replace the old value and attributes. If a max-age ! * attribute of 0 is specified for the new value, then any existing ! * cookies of the specified name are removed from the cookie storage. ! * See [IETF RFC 2965] for the semantics of persistent state item attribute value ! * pairs. The precise nature of a user agent session is not defined by ! * this specification. */ public String getCookie(); /** ! * This mutable string attribute denotes persistent state information ! * that (1) is associated with the current frame or document and (2) is ! * composed of information described by the cookies ! * non-terminal of [IETF RFC 2965], Section 4.2.2. ! *
      If no persistent state information is available for the current ! * frame or document document, then this property's value is an empty ! * string. ! *
      When this attribute is read, all cookies are returned as a single ! * string, with each cookie's name-value pair concatenated into a list ! * of name-value pairs, each list item being separated by a ';' ! * (semicolon). ! *
      When this attribute is set, the value it is set to should be a ! * string that adheres to the cookie non-terminal of [IETF RFC 2965]; that ! * is, it should be a single name-value pair followed by zero or more ! * cookie attribute values. If no domain attribute is specified, then ! * the domain attribute for the new value defaults to the host portion ! * of an absolute URI [IETF RFC 2396] of the current frame or document. If no path ! * attribute is specified, then the path attribute for the new value ! * defaults to the absolute path portion of the URI [IETF RFC 2396] of the current ! * frame or document. If no max-age attribute is specified, then the ! * max-age attribute for the new value defaults to a user agent defined ! * value. If a cookie with the specified name is already associated with ! * the current frame or document, then the new value as well as the new ! * attributes replace the old value and attributes. If a max-age ! * attribute of 0 is specified for the new value, then any existing ! * cookies of the specified name are removed from the cookie storage. ! * See [IETF RFC 2965] for the semantics of persistent state item attribute value ! * pairs. The precise nature of a user agent session is not defined by ! * this specification. * @exception DOMException ! * SYNTAX_ERR: If the new value does not adhere to the cookie syntax ! * specified by [IETF RFC 2965]. */ public void setCookie(String cookie) throws DOMException; /** ! * Open a document stream for writing. If a document exists in the target, ! * this method clears it. This method and the ones following allow a ! * user to add to or replace the structure model of a document using ! * strings of unparsed HTML. At the time of writing alternate methods ! * for providing similar functionality for both HTML and XML documents * were being considered (see [DOM Level 3 Load and Save]). */ public void open(); /** ! * Closes a document stream opened by open() and forces * rendering. */ public void close(); /** ! * Write a string of text to a document stream opened by ! * open(). Note that the function will produce a document ! * which is not necessarily driven by a DTD and therefore might be * produce an invalid result in the context of the document. ! * @param text The string to be parsed into some structure in the * document structure model. */ public void write(String text); /** ! * Write a string of text followed by a newline character to a document ! * stream opened by open(). Note that the function will ! * produce a document which is not necessarily driven by a DTD and ! * therefore might be produce an invalid result in the context of the * document ! * @param text The string to be parsed into some structure in the * document structure model. */ public void writeln(String text); /** ! * With [HTML 4.01] documents, this method returns the (possibly empty) collection ! * of elements whose name value is given by ! * elementName. In [XHTML 1.0] documents, this methods only return the ! * (possibly empty) collection of form controls with matching name. This ! * method is case sensitive. ! * @param elementName The name attribute value for an * element. * @return The matching elements. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 15,29 **** import org.w3c.dom.Element; /** ! * All HTML element interfaces derive from this class. Elements that only ! * expose the HTML core attributes are represented by the base ! * HTMLElement interface. These elements are as follows: * special: SUB, SUP, SPAN, BDOfont: TT, I, B, U, S, STRIKE, BIG, SMALL ! * phrase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ACRONYM, ABBRlist: ! * DD, DTNOFRAMES, NOSCRIPTADDRESS, CENTERThe style attribute ! * of an HTML element is accessible through the ! * ElementCSSInlineStyle interface which is defined in the CSS ! * module [DOM Level 2 Style Sheets and CSS]. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLElement extends Element { --- 15,29 ---- import org.w3c.dom.Element; /** ! * All HTML element interfaces derive from this class. Elements that only ! * expose the HTML core attributes are represented by the base ! * HTMLElement interface. These elements are as follows: * special: SUB, SUP, SPAN, BDOfont: TT, I, B, U, S, STRIKE, BIG, SMALL ! * phrase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ACRONYM, ABBRlist: ! * DD, DTNOFRAMES, NOSCRIPTADDRESS, CENTERThe style attribute ! * of an HTML element is accessible through the ! * ElementCSSInlineStyle interface which is defined in the CSS ! * module [DOM Level 2 Style Sheets and CSS]. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLElement extends Element { *************** public interface HTMLElement extends Ele *** 37,85 **** public void setId(String id); /** ! * The element's advisory title. See the title attribute definition in * HTML 4.01. */ public String getTitle(); /** ! * The element's advisory title. See the title attribute definition in * HTML 4.01. */ public void setTitle(String title); /** ! * Language code defined in RFC 1766. See the lang attribute definition in * HTML 4.01. */ public String getLang(); /** ! * Language code defined in RFC 1766. See the lang attribute definition in * HTML 4.01. */ public void setLang(String lang); /** ! * Specifies the base direction of directionally neutral text and the ! * directionality of tables. See the dir attribute definition in HTML * 4.01. */ public String getDir(); /** ! * Specifies the base direction of directionally neutral text and the ! * directionality of tables. See the dir attribute definition in HTML * 4.01. */ public void setDir(String dir); /** ! * The class attribute of the element. This attribute has been renamed due ! * to conflicts with the "class" keyword exposed by many languages. See * the class attribute definition in HTML 4.01. */ public String getClassName(); /** ! * The class attribute of the element. This attribute has been renamed due ! * to conflicts with the "class" keyword exposed by many languages. See * the class attribute definition in HTML 4.01. */ public void setClassName(String className); --- 37,85 ---- public void setId(String id); /** ! * The element's advisory title. See the title attribute definition in * HTML 4.01. */ public String getTitle(); /** ! * The element's advisory title. See the title attribute definition in * HTML 4.01. */ public void setTitle(String title); /** ! * Language code defined in RFC 1766. See the lang attribute definition in * HTML 4.01. */ public String getLang(); /** ! * Language code defined in RFC 1766. See the lang attribute definition in * HTML 4.01. */ public void setLang(String lang); /** ! * Specifies the base direction of directionally neutral text and the ! * directionality of tables. See the dir attribute definition in HTML * 4.01. */ public String getDir(); /** ! * Specifies the base direction of directionally neutral text and the ! * directionality of tables. See the dir attribute definition in HTML * 4.01. */ public void setDir(String dir); /** ! * The class attribute of the element. This attribute has been renamed due ! * to conflicts with the "class" keyword exposed by many languages. See * the class attribute definition in HTML 4.01. */ public String getClassName(); /** ! * The class attribute of the element. This attribute has been renamed due ! * to conflicts with the "class" keyword exposed by many languages. See * the class attribute definition in HTML 4.01. */ public void setClassName(String className); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,27 **** package org.w3c.dom.html2; /** ! * Organizes form controls into logical groups. See the FIELDSET element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLFieldSetElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); --- 13,27 ---- package org.w3c.dom.html2; /** ! * Organizes form controls into logical groups. See the FIELDSET element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLFieldSetElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,52 **** package org.w3c.dom.html2; /** ! * Local change to font. See the FONT element definition in HTML 4.01. This * element is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLFontElement extends HTMLElement { /** ! * Font color. See the color attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getColor(); /** ! * Font color. See the color attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setColor(String color); /** ! * Font face identifier. See the face attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getFace(); /** ! * Font face identifier. See the face attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setFace(String face); /** ! * Font size. See the size attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getSize(); /** ! * Font size. See the size attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setSize(String size); --- 13,52 ---- package org.w3c.dom.html2; /** ! * Local change to font. See the FONT element definition in HTML 4.01. This * element is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLFontElement extends HTMLElement { /** ! * Font color. See the color attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getColor(); /** ! * Font color. See the color attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setColor(String color); /** ! * Font face identifier. See the face attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getFace(); /** ! * Font face identifier. See the face attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setFace(String face); /** ! * Font size. See the size attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getSize(); /** ! * Font size. See the size attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setSize(String size); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,27 **** package org.w3c.dom.html2; /** ! * The FORM element encompasses behavior similar to a collection ! * and an element. It provides direct access to the contained form controls ! * as well as the attributes of the form element. See the FORM element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLFormElement extends HTMLElement { /** ! * Returns a collection of all form control elements in the form. */ public HTMLCollection getElements(); --- 13,27 ---- package org.w3c.dom.html2; /** ! * The FORM element encompasses behavior similar to a collection ! * and an element. It provides direct access to the contained form controls ! * as well as the attributes of the form element. See the FORM element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLFormElement extends HTMLElement { /** ! * Returns a collection of all form control elements in the form. */ public HTMLCollection getElements(); *************** public interface HTMLFormElement extends *** 31,103 **** public int getLength(); /** ! * Names the form. */ public String getName(); /** ! * Names the form. */ public void setName(String name); /** ! * List of character sets supported by the server. See the accept-charset * attribute definition in HTML 4.01. */ public String getAcceptCharset(); /** ! * List of character sets supported by the server. See the accept-charset * attribute definition in HTML 4.01. */ public void setAcceptCharset(String acceptCharset); /** ! * Server-side form handler. See the action attribute definition in HTML * 4.01. */ public String getAction(); /** ! * Server-side form handler. See the action attribute definition in HTML * 4.01. */ public void setAction(String action); /** ! * The content type of the submitted form, generally ! * "application/x-www-form-urlencoded". See the enctype attribute ! * definition in HTML 4.01. The onsubmit even handler is not guaranteed ! * to be triggered when invoking this method. The behavior is ! * inconsistent for historical reasons and authors should not rely on a ! * particular one. */ public String getEnctype(); /** ! * The content type of the submitted form, generally ! * "application/x-www-form-urlencoded". See the enctype attribute ! * definition in HTML 4.01. The onsubmit even handler is not guaranteed ! * to be triggered when invoking this method. The behavior is ! * inconsistent for historical reasons and authors should not rely on a ! * particular one. */ public void setEnctype(String enctype); /** ! * HTTP method [IETF RFC 2616] used to submit form. See the method attribute definition * in HTML 4.01. */ public String getMethod(); /** ! * HTTP method [IETF RFC 2616] used to submit form. See the method attribute definition * in HTML 4.01. */ public void setMethod(String method); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public String getTarget(); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public void setTarget(String target); --- 31,103 ---- public int getLength(); /** ! * Names the form. */ public String getName(); /** ! * Names the form. */ public void setName(String name); /** ! * List of character sets supported by the server. See the accept-charset * attribute definition in HTML 4.01. */ public String getAcceptCharset(); /** ! * List of character sets supported by the server. See the accept-charset * attribute definition in HTML 4.01. */ public void setAcceptCharset(String acceptCharset); /** ! * Server-side form handler. See the action attribute definition in HTML * 4.01. */ public String getAction(); /** ! * Server-side form handler. See the action attribute definition in HTML * 4.01. */ public void setAction(String action); /** ! * The content type of the submitted form, generally ! * "application/x-www-form-urlencoded". See the enctype attribute ! * definition in HTML 4.01. The onsubmit even handler is not guaranteed ! * to be triggered when invoking this method. The behavior is ! * inconsistent for historical reasons and authors should not rely on a ! * particular one. */ public String getEnctype(); /** ! * The content type of the submitted form, generally ! * "application/x-www-form-urlencoded". See the enctype attribute ! * definition in HTML 4.01. The onsubmit even handler is not guaranteed ! * to be triggered when invoking this method. The behavior is ! * inconsistent for historical reasons and authors should not rely on a ! * particular one. */ public void setEnctype(String enctype); /** ! * HTTP method [IETF RFC 2616] used to submit form. See the method attribute definition * in HTML 4.01. */ public String getMethod(); /** ! * HTTP method [IETF RFC 2616] used to submit form. See the method attribute definition * in HTML 4.01. */ public void setMethod(String method); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public String getTarget(); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public void setTarget(String target); *************** public interface HTMLFormElement extends *** 108,114 **** public void submit(); /** ! * Restores a form element's default values. It performs the same action * as a reset button. */ public void reset(); --- 108,114 ---- public void submit(); /** ! * Restores a form element's default values. It performs the same action * as a reset button. */ public void reset(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Document; *** 20,114 **** */ public interface HTMLFrameElement extends HTMLElement { /** ! * Request frame borders. See the frameborder attribute definition in HTML * 4.01. */ public String getFrameBorder(); /** ! * Request frame borders. See the frameborder attribute definition in HTML * 4.01. */ public void setFrameBorder(String frameBorder); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public String getLongDesc(); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public void setLongDesc(String longDesc); /** ! * Frame margin height, in pixels. See the marginheight attribute * definition in HTML 4.01. */ public String getMarginHeight(); /** ! * Frame margin height, in pixels. See the marginheight attribute * definition in HTML 4.01. */ public void setMarginHeight(String marginHeight); /** ! * Frame margin width, in pixels. See the marginwidth attribute definition * in HTML 4.01. */ public String getMarginWidth(); /** ! * Frame margin width, in pixels. See the marginwidth attribute definition * in HTML 4.01. */ public void setMarginWidth(String marginWidth); /** ! * The frame name (object of the target attribute). See the * name attribute definition in HTML 4.01. */ public String getName(); /** ! * The frame name (object of the target attribute). See the * name attribute definition in HTML 4.01. */ public void setName(String name); /** ! * When true, forbid user from resizing frame. See the noresize attribute * definition in HTML 4.01. */ public boolean getNoResize(); /** ! * When true, forbid user from resizing frame. See the noresize attribute * definition in HTML 4.01. */ public void setNoResize(boolean noResize); /** ! * Specify whether or not the frame should have scrollbars. See the * scrolling attribute definition in HTML 4.01. */ public String getScrolling(); /** ! * Specify whether or not the frame should have scrollbars. See the * scrolling attribute definition in HTML 4.01. */ public void setScrolling(String scrolling); /** ! * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute * definition in HTML 4.01. */ public String getSrc(); /** ! * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute * definition in HTML 4.01. */ public void setSrc(String src); /** ! * The document this frame contains, if there is any and it is available, * or null otherwise. * @since DOM Level 2 */ --- 20,114 ---- */ public interface HTMLFrameElement extends HTMLElement { /** ! * Request frame borders. See the frameborder attribute definition in HTML * 4.01. */ public String getFrameBorder(); /** ! * Request frame borders. See the frameborder attribute definition in HTML * 4.01. */ public void setFrameBorder(String frameBorder); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public String getLongDesc(); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public void setLongDesc(String longDesc); /** ! * Frame margin height, in pixels. See the marginheight attribute * definition in HTML 4.01. */ public String getMarginHeight(); /** ! * Frame margin height, in pixels. See the marginheight attribute * definition in HTML 4.01. */ public void setMarginHeight(String marginHeight); /** ! * Frame margin width, in pixels. See the marginwidth attribute definition * in HTML 4.01. */ public String getMarginWidth(); /** ! * Frame margin width, in pixels. See the marginwidth attribute definition * in HTML 4.01. */ public void setMarginWidth(String marginWidth); /** ! * The frame name (object of the target attribute). See the * name attribute definition in HTML 4.01. */ public String getName(); /** ! * The frame name (object of the target attribute). See the * name attribute definition in HTML 4.01. */ public void setName(String name); /** ! * When true, forbid user from resizing frame. See the noresize attribute * definition in HTML 4.01. */ public boolean getNoResize(); /** ! * When true, forbid user from resizing frame. See the noresize attribute * definition in HTML 4.01. */ public void setNoResize(boolean noResize); /** ! * Specify whether or not the frame should have scrollbars. See the * scrolling attribute definition in HTML 4.01. */ public String getScrolling(); /** ! * Specify whether or not the frame should have scrollbars. See the * scrolling attribute definition in HTML 4.01. */ public void setScrolling(String scrolling); /** ! * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute * definition in HTML 4.01. */ public String getSrc(); /** ! * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute * definition in HTML 4.01. */ public void setSrc(String src); /** ! * The document this frame contains, if there is any and it is available, * or null otherwise. * @since DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,40 **** */ public interface HTMLFrameSetElement extends HTMLElement { /** ! * The number of columns of frames in the frameset. See the cols attribute * definition in HTML 4.01. */ public String getCols(); /** ! * The number of columns of frames in the frameset. See the cols attribute * definition in HTML 4.01. */ public void setCols(String cols); /** ! * The number of rows of frames in the frameset. See the rows attribute * definition in HTML 4.01. */ public String getRows(); /** ! * The number of rows of frames in the frameset. See the rows attribute * definition in HTML 4.01. */ public void setRows(String rows); --- 18,40 ---- */ public interface HTMLFrameSetElement extends HTMLElement { /** ! * The number of columns of frames in the frameset. See the cols attribute * definition in HTML 4.01. */ public String getCols(); /** ! * The number of columns of frames in the frameset. See the cols attribute * definition in HTML 4.01. */ public void setCols(String cols); /** ! * The number of rows of frames in the frameset. See the rows attribute * definition in HTML 4.01. */ public String getRows(); /** ! * The number of rows of frames in the frameset. See the rows attribute * definition in HTML 4.01. */ public void setRows(String rows); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,64 **** */ public interface HTMLHRElement extends HTMLElement { /** ! * Align the rule on the page. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Align the rule on the page. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Indicates to the user agent that there should be no shading in the ! * rendering of this element. See the noshade attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getNoShade(); /** ! * Indicates to the user agent that there should be no shading in the ! * rendering of this element. See the noshade attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setNoShade(boolean noShade); /** ! * The height of the rule. See the size attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getSize(); /** ! * The height of the rule. See the size attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setSize(String size); /** ! * The width of the rule. See the width attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getWidth(); /** ! * The width of the rule. See the width attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setWidth(String width); --- 18,64 ---- */ public interface HTMLHRElement extends HTMLElement { /** ! * Align the rule on the page. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Align the rule on the page. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Indicates to the user agent that there should be no shading in the ! * rendering of this element. See the noshade attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getNoShade(); /** ! * Indicates to the user agent that there should be no shading in the ! * rendering of this element. See the noshade attribute definition in * HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setNoShade(boolean noShade); /** ! * The height of the rule. See the size attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getSize(); /** ! * The height of the rule. See the size attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setSize(String size); /** ! * The width of the rule. See the width attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getWidth(); /** ! * The width of the rule. See the width attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setWidth(String width); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,29 **** */ public interface HTMLHeadElement extends HTMLElement { /** ! * URI [IETF RFC 2396] designating a metadata profile. See the profile attribute * definition in HTML 4.01. */ public String getProfile(); /** ! * URI [IETF RFC 2396] designating a metadata profile. See the profile attribute * definition in HTML 4.01. */ public void setProfile(String profile); --- 18,29 ---- */ public interface HTMLHeadElement extends HTMLElement { /** ! * URI [IETF RFC 2396] designating a metadata profile. See the profile attribute * definition in HTML 4.01. */ public String getProfile(); /** ! * URI [IETF RFC 2396] designating a metadata profile. See the profile attribute * definition in HTML 4.01. */ public void setProfile(String profile); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,30 **** package org.w3c.dom.html2; /** ! * For the H1 to H6 elements. See the H1 element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLHeadingElement extends HTMLElement { /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); --- 13,30 ---- package org.w3c.dom.html2; /** ! * For the H1 to H6 elements. See the H1 element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLHeadingElement extends HTMLElement { /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,29 **** */ public interface HTMLHtmlElement extends HTMLElement { /** ! * Version information about the document's DTD. See the version attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getVersion(); /** ! * Version information about the document's DTD. See the version attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setVersion(String version); --- 18,29 ---- */ public interface HTMLHtmlElement extends HTMLElement { /** ! * Version information about the document's DTD. See the version attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getVersion(); /** ! * Version information about the document's DTD. See the version attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setVersion(String version); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Document; *** 20,44 **** */ public interface HTMLIFrameElement extends HTMLElement { /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Request frame borders. See the frameborder attribute definition in HTML * 4.01. */ public String getFrameBorder(); /** ! * Request frame borders. See the frameborder attribute definition in HTML * 4.01. */ public void setFrameBorder(String frameBorder); --- 20,44 ---- */ public interface HTMLIFrameElement extends HTMLElement { /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Request frame borders. See the frameborder attribute definition in HTML * 4.01. */ public String getFrameBorder(); /** ! * Request frame borders. See the frameborder attribute definition in HTML * 4.01. */ public void setFrameBorder(String frameBorder); *************** public interface HTMLIFrameElement exten *** 53,119 **** public void setHeight(String height); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public String getLongDesc(); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public void setLongDesc(String longDesc); /** ! * Frame margin height, in pixels. See the marginheight attribute * definition in HTML 4.01. */ public String getMarginHeight(); /** ! * Frame margin height, in pixels. See the marginheight attribute * definition in HTML 4.01. */ public void setMarginHeight(String marginHeight); /** ! * Frame margin width, in pixels. See the marginwidth attribute definition * in HTML 4.01. */ public String getMarginWidth(); /** ! * Frame margin width, in pixels. See the marginwidth attribute definition * in HTML 4.01. */ public void setMarginWidth(String marginWidth); /** ! * The frame name (object of the target attribute). See the * name attribute definition in HTML 4.01. */ public String getName(); /** ! * The frame name (object of the target attribute). See the * name attribute definition in HTML 4.01. */ public void setName(String name); /** ! * Specify whether or not the frame should have scrollbars. See the * scrolling attribute definition in HTML 4.01. */ public String getScrolling(); /** ! * Specify whether or not the frame should have scrollbars. See the * scrolling attribute definition in HTML 4.01. */ public void setScrolling(String scrolling); /** ! * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute * definition in HTML 4.01. */ public String getSrc(); /** ! * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute * definition in HTML 4.01. */ public void setSrc(String src); --- 53,119 ---- public void setHeight(String height); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public String getLongDesc(); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public void setLongDesc(String longDesc); /** ! * Frame margin height, in pixels. See the marginheight attribute * definition in HTML 4.01. */ public String getMarginHeight(); /** ! * Frame margin height, in pixels. See the marginheight attribute * definition in HTML 4.01. */ public void setMarginHeight(String marginHeight); /** ! * Frame margin width, in pixels. See the marginwidth attribute definition * in HTML 4.01. */ public String getMarginWidth(); /** ! * Frame margin width, in pixels. See the marginwidth attribute definition * in HTML 4.01. */ public void setMarginWidth(String marginWidth); /** ! * The frame name (object of the target attribute). See the * name attribute definition in HTML 4.01. */ public String getName(); /** ! * The frame name (object of the target attribute). See the * name attribute definition in HTML 4.01. */ public void setName(String name); /** ! * Specify whether or not the frame should have scrollbars. See the * scrolling attribute definition in HTML 4.01. */ public String getScrolling(); /** ! * Specify whether or not the frame should have scrollbars. See the * scrolling attribute definition in HTML 4.01. */ public void setScrolling(String scrolling); /** ! * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute * definition in HTML 4.01. */ public String getSrc(); /** ! * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute * definition in HTML 4.01. */ public void setSrc(String src); *************** public interface HTMLIFrameElement exten *** 128,134 **** public void setWidth(String width); /** ! * The document this frame contains, if there is any and it is available, * or null otherwise. * @since DOM Level 2 */ --- 128,134 ---- public void setWidth(String width); /** ! * The document this frame contains, if there is any and it is available, * or null otherwise. * @since DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,173 **** */ public interface HTMLImageElement extends HTMLElement { /** ! * The name of the element (for backwards compatibility). */ public String getName(); /** ! * The name of the element (for backwards compatibility). */ public void setName(String name); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public String getAlt(); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public void setAlt(String alt); /** ! * Width of border around image. See the border attribute definition in ! * HTML 4.01. This attribute is deprecated in HTML 4.01. Note that the * type of this attribute was DOMString in DOM Level 1 HTML [DOM Level 1] * . */ public String getBorder(); /** ! * Width of border around image. See the border attribute definition in ! * HTML 4.01. This attribute is deprecated in HTML 4.01. Note that the * type of this attribute was DOMString in DOM Level 1 HTML [DOM Level 1] * . */ public void setBorder(String border); /** ! * Height of the image in pixels. See the height attribute definition in ! * HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public int getHeight(); /** ! * Height of the image in pixels. See the height attribute definition in ! * HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public void setHeight(int height); /** ! * Horizontal space to the left and right of this image in pixels. See the ! * hspace attribute definition in HTML 4.01. This attribute is ! * deprecated in HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public int getHspace(); /** ! * Horizontal space to the left and right of this image in pixels. See the ! * hspace attribute definition in HTML 4.01. This attribute is ! * deprecated in HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public void setHspace(int hspace); /** ! * Use server-side image map. See the ismap attribute definition in HTML * 4.01. */ public boolean getIsMap(); /** ! * Use server-side image map. See the ismap attribute definition in HTML * 4.01. */ public void setIsMap(boolean isMap); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public String getLongDesc(); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public void setLongDesc(String longDesc); /** ! * URI [IETF RFC 2396] designating the source of this image. See the src attribute * definition in HTML 4.01. */ public String getSrc(); /** ! * URI [IETF RFC 2396] designating the source of this image. See the src attribute * definition in HTML 4.01. */ public void setSrc(String src); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public String getUseMap(); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public void setUseMap(String useMap); /** ! * Vertical space above and below this image in pixels. See the vspace ! * attribute definition in HTML 4.01. This attribute is deprecated in ! * HTML 4.01. Note that the type of this attribute was "DOMString" in * DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public int getVspace(); /** ! * Vertical space above and below this image in pixels. See the vspace ! * attribute definition in HTML 4.01. This attribute is deprecated in ! * HTML 4.01. Note that the type of this attribute was "DOMString" in * DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public void setVspace(int vspace); /** ! * The width of the image in pixels. See the width attribute definition in ! * HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public int getWidth(); /** ! * The width of the image in pixels. See the width attribute definition in ! * HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ --- 18,173 ---- */ public interface HTMLImageElement extends HTMLElement { /** ! * The name of the element (for backwards compatibility). */ public String getName(); /** ! * The name of the element (for backwards compatibility). */ public void setName(String name); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public String getAlt(); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public void setAlt(String alt); /** ! * Width of border around image. See the border attribute definition in ! * HTML 4.01. This attribute is deprecated in HTML 4.01. Note that the * type of this attribute was DOMString in DOM Level 1 HTML [DOM Level 1] * . */ public String getBorder(); /** ! * Width of border around image. See the border attribute definition in ! * HTML 4.01. This attribute is deprecated in HTML 4.01. Note that the * type of this attribute was DOMString in DOM Level 1 HTML [DOM Level 1] * . */ public void setBorder(String border); /** ! * Height of the image in pixels. See the height attribute definition in ! * HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public int getHeight(); /** ! * Height of the image in pixels. See the height attribute definition in ! * HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public void setHeight(int height); /** ! * Horizontal space to the left and right of this image in pixels. See the ! * hspace attribute definition in HTML 4.01. This attribute is ! * deprecated in HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public int getHspace(); /** ! * Horizontal space to the left and right of this image in pixels. See the ! * hspace attribute definition in HTML 4.01. This attribute is ! * deprecated in HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public void setHspace(int hspace); /** ! * Use server-side image map. See the ismap attribute definition in HTML * 4.01. */ public boolean getIsMap(); /** ! * Use server-side image map. See the ismap attribute definition in HTML * 4.01. */ public void setIsMap(boolean isMap); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public String getLongDesc(); /** ! * URI [IETF RFC 2396] designating a long description of this image or frame. See the * longdesc attribute definition in HTML 4.01. */ public void setLongDesc(String longDesc); /** ! * URI [IETF RFC 2396] designating the source of this image. See the src attribute * definition in HTML 4.01. */ public String getSrc(); /** ! * URI [IETF RFC 2396] designating the source of this image. See the src attribute * definition in HTML 4.01. */ public void setSrc(String src); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public String getUseMap(); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public void setUseMap(String useMap); /** ! * Vertical space above and below this image in pixels. See the vspace ! * attribute definition in HTML 4.01. This attribute is deprecated in ! * HTML 4.01. Note that the type of this attribute was "DOMString" in * DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public int getVspace(); /** ! * Vertical space above and below this image in pixels. See the vspace ! * attribute definition in HTML 4.01. This attribute is deprecated in ! * HTML 4.01. Note that the type of this attribute was "DOMString" in * DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public void setVspace(int vspace); /** ! * The width of the image in pixels. See the width attribute definition in ! * HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ public int getWidth(); /** ! * The width of the image in pixels. See the width attribute definition in ! * HTML 4.01. Note that the type of this attribute was * DOMString in DOM Level 1 HTML [DOM Level 1]. * @version DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,277 **** package org.w3c.dom.html2; /** ! * Form control.Depending upon the environment in which the page is being ! * viewed, the value property may be read-only for the file upload input ! * type. For the "password" input type, the actual value returned may be * masked to prevent unauthorized use. See the INPUT element definition in [HTML 4.01]. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLInputElement extends HTMLElement { /** ! * When the type attribute of the element has the value ! * "text", "file" or "password", this represents the HTML value ! * attribute of the element. The value of this attribute does not change ! * if the contents of the corresponding form control, in an interactive * user agent, changes. See the value attribute definition in HTML 4.01. */ public String getDefaultValue(); /** ! * When the type attribute of the element has the value ! * "text", "file" or "password", this represents the HTML value ! * attribute of the element. The value of this attribute does not change ! * if the contents of the corresponding form control, in an interactive * user agent, changes. See the value attribute definition in HTML 4.01. */ public void setDefaultValue(String defaultValue); /** ! * When type has the value "radio" or "checkbox", this ! * represents the HTML checked attribute of the element. The value of ! * this attribute does not change if the state of the corresponding form ! * control, in an interactive user agent, changes. See the checked * attribute definition in HTML 4.01. */ public boolean getDefaultChecked(); /** ! * When type has the value "radio" or "checkbox", this ! * represents the HTML checked attribute of the element. The value of ! * this attribute does not change if the state of the corresponding form ! * control, in an interactive user agent, changes. See the checked * attribute definition in HTML 4.01. */ public void setDefaultChecked(boolean defaultChecked); /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A comma-separated list of content types that a server processing this ! * form will handle correctly. See the accept attribute definition in * HTML 4.01. */ public String getAccept(); /** ! * A comma-separated list of content types that a server processing this ! * form will handle correctly. See the accept attribute definition in * HTML 4.01. */ public void setAccept(String accept); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public String getAlt(); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public void setAlt(String alt); /** ! * When the type attribute of the element has the value ! * "radio" or "checkbox", this represents the current state of the form ! * control, in an interactive user agent. Changes to this attribute ! * change the state of the form control, but do not change the value of ! * the HTML checked attribute of the INPUT element.During the handling ! * of a click event on an input element with a type attribute that has ! * the value "radio" or "checkbox", some implementations may change the ! * value of this property before the event is being dispatched in the ! * document. If the default action of the event is canceled, the value ! * of the property may be changed back to its original value. This means ! * that the value of this property during the handling of click events * is implementation dependent. */ public boolean getChecked(); /** ! * When the type attribute of the element has the value ! * "radio" or "checkbox", this represents the current state of the form ! * control, in an interactive user agent. Changes to this attribute ! * change the state of the form control, but do not change the value of ! * the HTML checked attribute of the INPUT element.During the handling ! * of a click event on an input element with a type attribute that has ! * the value "radio" or "checkbox", some implementations may change the ! * value of this property before the event is being dispatched in the ! * document. If the default action of the event is canceled, the value ! * of the property may be changed back to its original value. This means ! * that the value of this property during the handling of click events * is implementation dependent. */ public void setChecked(boolean checked); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * Maximum number of characters for text fields, when type ! * has the value "text" or "password". See the maxlength attribute * definition in HTML 4.01. */ public int getMaxLength(); /** ! * Maximum number of characters for text fields, when type ! * has the value "text" or "password". See the maxlength attribute * definition in HTML 4.01. */ public void setMaxLength(int maxLength); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); /** ! * This control is read-only. Relevant only when type has the ! * value "text" or "password". See the readonly attribute definition in * HTML 4.01. */ public boolean getReadOnly(); /** ! * This control is read-only. Relevant only when type has the ! * value "text" or "password". See the readonly attribute definition in * HTML 4.01. */ public void setReadOnly(boolean readOnly); /** ! * Size information. The precise meaning is specific to each type of * field. See the size attribute definition in HTML 4.01. * @version DOM Level 2 */ public int getSize(); /** ! * Size information. The precise meaning is specific to each type of * field. See the size attribute definition in HTML 4.01. * @version DOM Level 2 */ public void setSize(int size); /** ! * When the type attribute has the value "image", this ! * attribute specifies the location of the image to be used to decorate ! * the graphical submit button. See the src attribute definition in HTML * 4.01. */ public String getSrc(); /** ! * When the type attribute has the value "image", this ! * attribute specifies the location of the image to be used to decorate ! * the graphical submit button. See the src attribute definition in HTML * 4.01. */ public void setSrc(String src); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * The type of control created (all lower case). See the type attribute * definition in HTML 4.01. * @version DOM Level 2 */ public String getType(); /** ! * The type of control created (all lower case). See the type attribute * definition in HTML 4.01. * @version DOM Level 2 */ public void setType(String type); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public String getUseMap(); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public void setUseMap(String useMap); /** ! * When the type attribute of the element has the value ! * "text", "file" or "password", this represents the current contents of ! * the corresponding form control, in an interactive user agent. ! * Changing this attribute changes the contents of the form control, but ! * does not change the value of the HTML value attribute of the element. ! * When the type attribute of the element has the value ! * "button", "hidden", "submit", "reset", "image", "checkbox" or ! * "radio", this represents the HTML value attribute of the element. See * the value attribute definition in HTML 4.01. */ public String getValue(); /** ! * When the type attribute of the element has the value ! * "text", "file" or "password", this represents the current contents of ! * the corresponding form control, in an interactive user agent. ! * Changing this attribute changes the contents of the form control, but ! * does not change the value of the HTML value attribute of the element. ! * When the type attribute of the element has the value ! * "button", "hidden", "submit", "reset", "image", "checkbox" or ! * "radio", this represents the HTML value attribute of the element. See * the value attribute definition in HTML 4.01. */ public void setValue(String value); --- 13,277 ---- package org.w3c.dom.html2; /** ! * Form control.Depending upon the environment in which the page is being ! * viewed, the value property may be read-only for the file upload input ! * type. For the "password" input type, the actual value returned may be * masked to prevent unauthorized use. See the INPUT element definition in [HTML 4.01]. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLInputElement extends HTMLElement { /** ! * When the type attribute of the element has the value ! * "text", "file" or "password", this represents the HTML value ! * attribute of the element. The value of this attribute does not change ! * if the contents of the corresponding form control, in an interactive * user agent, changes. See the value attribute definition in HTML 4.01. */ public String getDefaultValue(); /** ! * When the type attribute of the element has the value ! * "text", "file" or "password", this represents the HTML value ! * attribute of the element. The value of this attribute does not change ! * if the contents of the corresponding form control, in an interactive * user agent, changes. See the value attribute definition in HTML 4.01. */ public void setDefaultValue(String defaultValue); /** ! * When type has the value "radio" or "checkbox", this ! * represents the HTML checked attribute of the element. The value of ! * this attribute does not change if the state of the corresponding form ! * control, in an interactive user agent, changes. See the checked * attribute definition in HTML 4.01. */ public boolean getDefaultChecked(); /** ! * When type has the value "radio" or "checkbox", this ! * represents the HTML checked attribute of the element. The value of ! * this attribute does not change if the state of the corresponding form ! * control, in an interactive user agent, changes. See the checked * attribute definition in HTML 4.01. */ public void setDefaultChecked(boolean defaultChecked); /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A comma-separated list of content types that a server processing this ! * form will handle correctly. See the accept attribute definition in * HTML 4.01. */ public String getAccept(); /** ! * A comma-separated list of content types that a server processing this ! * form will handle correctly. See the accept attribute definition in * HTML 4.01. */ public void setAccept(String accept); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public String getAlt(); /** ! * Alternate text for user agents not rendering the normal content of this * element. See the alt attribute definition in HTML 4.01. */ public void setAlt(String alt); /** ! * When the type attribute of the element has the value ! * "radio" or "checkbox", this represents the current state of the form ! * control, in an interactive user agent. Changes to this attribute ! * change the state of the form control, but do not change the value of ! * the HTML checked attribute of the INPUT element.During the handling ! * of a click event on an input element with a type attribute that has ! * the value "radio" or "checkbox", some implementations may change the ! * value of this property before the event is being dispatched in the ! * document. If the default action of the event is canceled, the value ! * of the property may be changed back to its original value. This means ! * that the value of this property during the handling of click events * is implementation dependent. */ public boolean getChecked(); /** ! * When the type attribute of the element has the value ! * "radio" or "checkbox", this represents the current state of the form ! * control, in an interactive user agent. Changes to this attribute ! * change the state of the form control, but do not change the value of ! * the HTML checked attribute of the INPUT element.During the handling ! * of a click event on an input element with a type attribute that has ! * the value "radio" or "checkbox", some implementations may change the ! * value of this property before the event is being dispatched in the ! * document. If the default action of the event is canceled, the value ! * of the property may be changed back to its original value. This means ! * that the value of this property during the handling of click events * is implementation dependent. */ public void setChecked(boolean checked); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * Maximum number of characters for text fields, when type ! * has the value "text" or "password". See the maxlength attribute * definition in HTML 4.01. */ public int getMaxLength(); /** ! * Maximum number of characters for text fields, when type ! * has the value "text" or "password". See the maxlength attribute * definition in HTML 4.01. */ public void setMaxLength(int maxLength); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); /** ! * This control is read-only. Relevant only when type has the ! * value "text" or "password". See the readonly attribute definition in * HTML 4.01. */ public boolean getReadOnly(); /** ! * This control is read-only. Relevant only when type has the ! * value "text" or "password". See the readonly attribute definition in * HTML 4.01. */ public void setReadOnly(boolean readOnly); /** ! * Size information. The precise meaning is specific to each type of * field. See the size attribute definition in HTML 4.01. * @version DOM Level 2 */ public int getSize(); /** ! * Size information. The precise meaning is specific to each type of * field. See the size attribute definition in HTML 4.01. * @version DOM Level 2 */ public void setSize(int size); /** ! * When the type attribute has the value "image", this ! * attribute specifies the location of the image to be used to decorate ! * the graphical submit button. See the src attribute definition in HTML * 4.01. */ public String getSrc(); /** ! * When the type attribute has the value "image", this ! * attribute specifies the location of the image to be used to decorate ! * the graphical submit button. See the src attribute definition in HTML * 4.01. */ public void setSrc(String src); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * The type of control created (all lower case). See the type attribute * definition in HTML 4.01. * @version DOM Level 2 */ public String getType(); /** ! * The type of control created (all lower case). See the type attribute * definition in HTML 4.01. * @version DOM Level 2 */ public void setType(String type); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public String getUseMap(); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public void setUseMap(String useMap); /** ! * When the type attribute of the element has the value ! * "text", "file" or "password", this represents the current contents of ! * the corresponding form control, in an interactive user agent. ! * Changing this attribute changes the contents of the form control, but ! * does not change the value of the HTML value attribute of the element. ! * When the type attribute of the element has the value ! * "button", "hidden", "submit", "reset", "image", "checkbox" or ! * "radio", this represents the HTML value attribute of the element. See * the value attribute definition in HTML 4.01. */ public String getValue(); /** ! * When the type attribute of the element has the value ! * "text", "file" or "password", this represents the current contents of ! * the corresponding form control, in an interactive user agent. ! * Changing this attribute changes the contents of the form control, but ! * does not change the value of the HTML value attribute of the element. ! * When the type attribute of the element has the value ! * "button", "hidden", "submit", "reset", "image", "checkbox" or ! * "radio", this represents the HTML value attribute of the element. See * the value attribute definition in HTML 4.01. */ public void setValue(String value); *************** public interface HTMLInputElement extend *** 287,301 **** public void focus(); /** ! * Select the contents of the text area. For INPUT elements ! * whose type attribute has one of the following values: * "text", "file", or "password". */ public void select(); /** ! * Simulate a mouse-click. For INPUT elements whose ! * type attribute has one of the following values: * "button", "checkbox", "radio", "reset", or "submit". */ public void click(); --- 287,301 ---- public void focus(); /** ! * Select the contents of the text area. For INPUT elements ! * whose type attribute has one of the following values: * "text", "file", or "password". */ public void select(); /** ! * Simulate a mouse-click. For INPUT elements whose ! * type attribute has one of the following values: * "button", "checkbox", "radio", "reset", or "submit". */ public void click(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,37 **** package org.w3c.dom.html2; /** ! * This element is used for single-line text input. See the ISINDEX element * definition in HTML 4.01. This element is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLIsIndexElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * The prompt message. See the prompt attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getPrompt(); /** ! * The prompt message. See the prompt attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setPrompt(String prompt); --- 13,37 ---- package org.w3c.dom.html2; /** ! * This element is used for single-line text input. See the ISINDEX element * definition in HTML 4.01. This element is deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLIsIndexElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * The prompt message. See the prompt attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getPrompt(); /** ! * The prompt message. See the prompt attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setPrompt(String prompt); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,42 **** */ public interface HTMLLIElement extends HTMLElement { /** ! * List item bullet style. See the type attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getType(); /** ! * List item bullet style. See the type attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setType(String type); /** ! * Reset sequence number when used in OL. See the value ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public int getValue(); /** ! * Reset sequence number when used in OL. See the value ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public void setValue(int value); --- 18,42 ---- */ public interface HTMLLIElement extends HTMLElement { /** ! * List item bullet style. See the type attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getType(); /** ! * List item bullet style. See the type attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setType(String type); /** ! * Reset sequence number when used in OL. See the value ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public int getValue(); /** ! * Reset sequence number when used in OL. See the value ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public void setValue(int value); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,49 **** */ public interface HTMLLabelElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * This attribute links this label with another form control by ! * id attribute. See the for attribute definition in HTML * 4.01. */ public String getHtmlFor(); /** ! * This attribute links this label with another form control by ! * id attribute. See the for attribute definition in HTML * 4.01. */ public void setHtmlFor(String htmlFor); --- 18,49 ---- */ public interface HTMLLabelElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * This attribute links this label with another form control by ! * id attribute. See the for attribute definition in HTML * 4.01. */ public String getHtmlFor(); /** ! * This attribute links this label with another form control by ! * id attribute. See the for attribute definition in HTML * 4.01. */ public void setHtmlFor(String htmlFor); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,50 **** package org.w3c.dom.html2; /** ! * Provides a caption for a FIELDSET grouping. See the LEGEND * element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLLegendElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * Text alignment relative to FIELDSET. See the align ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public String getAlign(); /** ! * Text alignment relative to FIELDSET. See the align ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public void setAlign(String align); --- 13,50 ---- package org.w3c.dom.html2; /** ! * Provides a caption for a FIELDSET grouping. See the LEGEND * element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLLegendElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * Text alignment relative to FIELDSET. See the align ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public String getAlign(); /** ! * Text alignment relative to FIELDSET. See the align ! * attribute definition in HTML 4.01. This attribute is deprecated in * HTML 4.01. */ public void setAlign(String align); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,76 **** package org.w3c.dom.html2; /** ! * The LINK element specifies a link to an external resource, and ! * defines this document's relationship to that resource (or vice versa). ! * See the LINK element definition in HTML 4.01 (see also the * LinkStyle interface in the StyleSheet module [DOM Level 2 Style Sheets and CSS]). *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLLinkElement extends HTMLElement { /** ! * Enables/disables the link. This is currently only used for style sheet ! * links, and may be used to activate or deactivate style sheets. */ public boolean getDisabled(); /** ! * Enables/disables the link. This is currently only used for style sheet ! * links, and may be used to activate or deactivate style sheets. */ public void setDisabled(boolean disabled); /** ! * The character encoding of the resource being linked to. See the charset * attribute definition in HTML 4.01. */ public String getCharset(); /** ! * The character encoding of the resource being linked to. See the charset * attribute definition in HTML 4.01. */ public void setCharset(String charset); /** ! * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in * HTML 4.01. */ public String getHref(); /** ! * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in * HTML 4.01. */ public void setHref(String href); /** ! * Language code of the linked resource. See the hreflang attribute * definition in HTML 4.01. */ public String getHreflang(); /** ! * Language code of the linked resource. See the hreflang attribute * definition in HTML 4.01. */ public void setHreflang(String hreflang); /** ! * Designed for use with one or more target media. See the media attribute * definition in HTML 4.01. */ public String getMedia(); /** ! * Designed for use with one or more target media. See the media attribute * definition in HTML 4.01. */ public void setMedia(String media); --- 13,76 ---- package org.w3c.dom.html2; /** ! * The LINK element specifies a link to an external resource, and ! * defines this document's relationship to that resource (or vice versa). ! * See the LINK element definition in HTML 4.01 (see also the * LinkStyle interface in the StyleSheet module [DOM Level 2 Style Sheets and CSS]). *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLLinkElement extends HTMLElement { /** ! * Enables/disables the link. This is currently only used for style sheet ! * links, and may be used to activate or deactivate style sheets. */ public boolean getDisabled(); /** ! * Enables/disables the link. This is currently only used for style sheet ! * links, and may be used to activate or deactivate style sheets. */ public void setDisabled(boolean disabled); /** ! * The character encoding of the resource being linked to. See the charset * attribute definition in HTML 4.01. */ public String getCharset(); /** ! * The character encoding of the resource being linked to. See the charset * attribute definition in HTML 4.01. */ public void setCharset(String charset); /** ! * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in * HTML 4.01. */ public String getHref(); /** ! * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in * HTML 4.01. */ public void setHref(String href); /** ! * Language code of the linked resource. See the hreflang attribute * definition in HTML 4.01. */ public String getHreflang(); /** ! * Language code of the linked resource. See the hreflang attribute * definition in HTML 4.01. */ public void setHreflang(String hreflang); /** ! * Designed for use with one or more target media. See the media attribute * definition in HTML 4.01. */ public String getMedia(); /** ! * Designed for use with one or more target media. See the media attribute * definition in HTML 4.01. */ public void setMedia(String media); *************** public interface HTMLLinkElement extends *** 94,105 **** public void setRev(String rev); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public String getTarget(); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public void setTarget(String target); --- 94,105 ---- public void setRev(String rev); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public String getTarget(); /** ! * Frame to render the resource in. See the target attribute definition in * HTML 4.01. */ public void setTarget(String target); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,34 **** */ public interface HTMLMapElement extends HTMLElement { /** ! * The list of areas defined for the image map. */ public HTMLCollection getAreas(); /** ! * Names the map (for use with usemap). See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Names the map (for use with usemap). See the name * attribute definition in HTML 4.01. */ public void setName(String name); --- 18,34 ---- */ public interface HTMLMapElement extends HTMLElement { /** ! * The list of areas defined for the image map. */ public HTMLCollection getAreas(); /** ! * Names the map (for use with usemap). See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Names the map (for use with usemap). See the name * attribute definition in HTML 4.01. */ public void setName(String name); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,30 **** package org.w3c.dom.html2; /** ! * Menu list. See the MENU element definition in HTML 4.01. This element is * deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLMenuElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); --- 13,30 ---- package org.w3c.dom.html2; /** ! * Menu list. See the MENU element definition in HTML 4.01. This element is * deprecated in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLMenuElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,41 **** package org.w3c.dom.html2; /** ! * This contains generic meta-information about the document. See the META * element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLMetaElement extends HTMLElement { /** ! * Associated information. See the content attribute definition in HTML * 4.01. */ public String getContent(); /** ! * Associated information. See the content attribute definition in HTML * 4.01. */ public void setContent(String content); /** ! * HTTP response header name [IETF RFC 2616]. See the http-equiv attribute definition in * HTML 4.01. */ public String getHttpEquiv(); /** ! * HTTP response header name [IETF RFC 2616]. See the http-equiv attribute definition in * HTML 4.01. */ public void setHttpEquiv(String httpEquiv); --- 13,41 ---- package org.w3c.dom.html2; /** ! * This contains generic meta-information about the document. See the META * element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLMetaElement extends HTMLElement { /** ! * Associated information. See the content attribute definition in HTML * 4.01. */ public String getContent(); /** ! * Associated information. See the content attribute definition in HTML * 4.01. */ public void setContent(String content); /** ! * HTTP response header name [IETF RFC 2616]. See the http-equiv attribute definition in * HTML 4.01. */ public String getHttpEquiv(); /** ! * HTTP response header name [IETF RFC 2616]. See the http-equiv attribute definition in * HTML 4.01. */ public void setHttpEquiv(String httpEquiv); *************** public interface HTMLMetaElement extends *** 50,61 **** public void setName(String name); /** ! * Select form of content. See the scheme attribute definition in HTML * 4.01. */ public String getScheme(); /** ! * Select form of content. See the scheme attribute definition in HTML * 4.01. */ public void setScheme(String scheme); --- 50,61 ---- public void setName(String name); /** ! * Select form of content. See the scheme attribute definition in HTML * 4.01. */ public String getScheme(); /** ! * Select form of content. See the scheme attribute definition in HTML * 4.01. */ public void setScheme(String scheme); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,41 **** package org.w3c.dom.html2; /** ! * Notice of modification to part of a document. See the INS and DEL element ! * definitions in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLModElement extends HTMLElement { /** ! * A URI [IETF RFC 2396] designating a document that describes the reason for the change. * See the cite attribute definition in HTML 4.01. */ public String getCite(); /** ! * A URI [IETF RFC 2396] designating a document that describes the reason for the change. * See the cite attribute definition in HTML 4.01. */ public void setCite(String cite); /** ! * The date and time of the change. See the datetime attribute definition * in HTML 4.01. */ public String getDateTime(); /** ! * The date and time of the change. See the datetime attribute definition * in HTML 4.01. */ public void setDateTime(String dateTime); --- 13,41 ---- package org.w3c.dom.html2; /** ! * Notice of modification to part of a document. See the INS and DEL element ! * definitions in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLModElement extends HTMLElement { /** ! * A URI [IETF RFC 2396] designating a document that describes the reason for the change. * See the cite attribute definition in HTML 4.01. */ public String getCite(); /** ! * A URI [IETF RFC 2396] designating a document that describes the reason for the change. * See the cite attribute definition in HTML 4.01. */ public void setCite(String cite); /** ! * The date and time of the change. See the datetime attribute definition * in HTML 4.01. */ public String getDateTime(); /** ! * The date and time of the change. See the datetime attribute definition * in HTML 4.01. */ public void setDateTime(String dateTime); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,51 **** */ public interface HTMLOListElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); /** ! * Starting sequence number. See the start attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public int getStart(); /** ! * Starting sequence number. See the start attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setStart(int start); /** ! * Numbering style. See the type attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getType(); /** ! * Numbering style. See the type attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setType(String type); --- 18,51 ---- */ public interface HTMLOListElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); /** ! * Starting sequence number. See the start attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public int getStart(); /** ! * Starting sequence number. See the start attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setStart(int start); /** ! * Numbering style. See the type attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getType(); /** ! * Numbering style. See the type attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setType(String type); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 15,122 **** import org.w3c.dom.Document; /** ! * Generic embedded object.In principle, all properties on the object element ! * are read-write but in some environments some properties may be read-only ! * once the underlying object is instantiated. See the OBJECT element * definition in [HTML 4.01]. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLObjectElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * Applet class file. See the code attribute for ! * HTMLAppletElement. */ public String getCode(); /** ! * Applet class file. See the code attribute for ! * HTMLAppletElement. */ public void setCode(String code); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Space-separated list of archives. See the archive attribute definition * in HTML 4.01. */ public String getArchive(); /** ! * Space-separated list of archives. See the archive attribute definition * in HTML 4.01. */ public void setArchive(String archive); /** ! * Width of border around the object. See the border attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getBorder(); /** ! * Width of border around the object. See the border attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setBorder(String border); /** ! * Base URI [IETF RFC 2396] for classid, data, and * archive attributes. See the codebase attribute definition * in HTML 4.01. */ public String getCodeBase(); /** ! * Base URI [IETF RFC 2396] for classid, data, and * archive attributes. See the codebase attribute definition * in HTML 4.01. */ public void setCodeBase(String codeBase); /** ! * Content type for data downloaded via classid attribute. * See the codetype attribute definition in HTML 4.01. */ public String getCodeType(); /** ! * Content type for data downloaded via classid attribute. * See the codetype attribute definition in HTML 4.01. */ public void setCodeType(String codeType); /** ! * A URI [IETF RFC 2396] specifying the location of the object's data. See the data * attribute definition in HTML 4.01. */ public String getData(); /** ! * A URI [IETF RFC 2396] specifying the location of the object's data. See the data * attribute definition in HTML 4.01. */ public void setData(String data); /** ! * Declare (for future reference), but do not instantiate, this object. * See the declare attribute definition in HTML 4.01. */ public boolean getDeclare(); /** ! * Declare (for future reference), but do not instantiate, this object. * See the declare attribute definition in HTML 4.01. */ public void setDeclare(boolean declare); --- 15,122 ---- import org.w3c.dom.Document; /** ! * Generic embedded object.In principle, all properties on the object element ! * are read-write but in some environments some properties may be read-only ! * once the underlying object is instantiated. See the OBJECT element * definition in [HTML 4.01]. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLObjectElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * Applet class file. See the code attribute for ! * HTMLAppletElement. */ public String getCode(); /** ! * Applet class file. See the code attribute for ! * HTMLAppletElement. */ public void setCode(String code); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Aligns this object (vertically or horizontally) with respect to its ! * surrounding text. See the align attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Space-separated list of archives. See the archive attribute definition * in HTML 4.01. */ public String getArchive(); /** ! * Space-separated list of archives. See the archive attribute definition * in HTML 4.01. */ public void setArchive(String archive); /** ! * Width of border around the object. See the border attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getBorder(); /** ! * Width of border around the object. See the border attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setBorder(String border); /** ! * Base URI [IETF RFC 2396] for classid, data, and * archive attributes. See the codebase attribute definition * in HTML 4.01. */ public String getCodeBase(); /** ! * Base URI [IETF RFC 2396] for classid, data, and * archive attributes. See the codebase attribute definition * in HTML 4.01. */ public void setCodeBase(String codeBase); /** ! * Content type for data downloaded via classid attribute. * See the codetype attribute definition in HTML 4.01. */ public String getCodeType(); /** ! * Content type for data downloaded via classid attribute. * See the codetype attribute definition in HTML 4.01. */ public void setCodeType(String codeType); /** ! * A URI [IETF RFC 2396] specifying the location of the object's data. See the data * attribute definition in HTML 4.01. */ public String getData(); /** ! * A URI [IETF RFC 2396] specifying the location of the object's data. See the data * attribute definition in HTML 4.01. */ public void setData(String data); /** ! * Declare (for future reference), but do not instantiate, this object. * See the declare attribute definition in HTML 4.01. */ public boolean getDeclare(); /** ! * Declare (for future reference), but do not instantiate, this object. * See the declare attribute definition in HTML 4.01. */ public void setDeclare(boolean declare); *************** public interface HTMLObjectElement exten *** 131,212 **** public void setHeight(String height); /** ! * Horizontal space, in pixels, to the left and right of this image, ! * applet, or object. See the hspace attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public int getHspace(); /** ! * Horizontal space, in pixels, to the left and right of this image, ! * applet, or object. See the hspace attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setHspace(int hspace); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); /** ! * Message to render while loading the object. See the standby attribute * definition in HTML 4.01. */ public String getStandby(); /** ! * Message to render while loading the object. See the standby attribute * definition in HTML 4.01. */ public void setStandby(String standby); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * Content type for data downloaded via data attribute. See * the type attribute definition in HTML 4.01. */ public String getType(); /** ! * Content type for data downloaded via data attribute. See * the type attribute definition in HTML 4.01. */ public void setType(String type); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public String getUseMap(); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public void setUseMap(String useMap); /** ! * Vertical space, in pixels, above and below this image, applet, or ! * object. See the vspace attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public int getVspace(); /** ! * Vertical space, in pixels, above and below this image, applet, or ! * object. See the vspace attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setVspace(int vspace); --- 131,212 ---- public void setHeight(String height); /** ! * Horizontal space, in pixels, to the left and right of this image, ! * applet, or object. See the hspace attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public int getHspace(); /** ! * Horizontal space, in pixels, to the left and right of this image, ! * applet, or object. See the hspace attribute definition in HTML 4.01. * This attribute is deprecated in HTML 4.01. */ public void setHspace(int hspace); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); /** ! * Message to render while loading the object. See the standby attribute * definition in HTML 4.01. */ public String getStandby(); /** ! * Message to render while loading the object. See the standby attribute * definition in HTML 4.01. */ public void setStandby(String standby); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * Content type for data downloaded via data attribute. See * the type attribute definition in HTML 4.01. */ public String getType(); /** ! * Content type for data downloaded via data attribute. See * the type attribute definition in HTML 4.01. */ public void setType(String type); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public String getUseMap(); /** ! * Use client-side image map. See the usemap attribute definition in HTML * 4.01. */ public void setUseMap(String useMap); /** ! * Vertical space, in pixels, above and below this image, applet, or ! * object. See the vspace attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public int getVspace(); /** ! * Vertical space, in pixels, above and below this image, applet, or ! * object. See the vspace attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setVspace(int vspace); *************** public interface HTMLObjectElement exten *** 221,227 **** public void setWidth(String width); /** ! * The document this object contains, if there is any and it is available, * or null otherwise. * @since DOM Level 2 */ --- 221,227 ---- public void setWidth(String width); /** ! * The document this object contains, if there is any and it is available, * or null otherwise. * @since DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,30 **** package org.w3c.dom.html2; /** ! * Group options together in logical subdivisions. See the OPTGROUP element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLOptGroupElement extends HTMLElement { /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); --- 13,30 ---- package org.w3c.dom.html2; /** ! * Group options together in logical subdivisions. See the OPTGROUP element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLOptGroupElement extends HTMLElement { /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,48 **** */ public interface HTMLOptionElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * Represents the value of the HTML selected attribute. The value of this ! * attribute does not change if the state of the corresponding form ! * control, in an interactive user agent, changes. See the selected * attribute definition in HTML 4.01. * @version DOM Level 2 */ public boolean getDefaultSelected(); /** ! * Represents the value of the HTML selected attribute. The value of this ! * attribute does not change if the state of the corresponding form ! * control, in an interactive user agent, changes. See the selected * attribute definition in HTML 4.01. * @version DOM Level 2 */ public void setDefaultSelected(boolean defaultSelected); /** ! * The text contained within the option element. */ public String getText(); --- 18,48 ---- */ public interface HTMLOptionElement extends HTMLElement { /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * Represents the value of the HTML selected attribute. The value of this ! * attribute does not change if the state of the corresponding form ! * control, in an interactive user agent, changes. See the selected * attribute definition in HTML 4.01. * @version DOM Level 2 */ public boolean getDefaultSelected(); /** ! * Represents the value of the HTML selected attribute. The value of this ! * attribute does not change if the state of the corresponding form ! * control, in an interactive user agent, changes. See the selected * attribute definition in HTML 4.01. * @version DOM Level 2 */ public void setDefaultSelected(boolean defaultSelected); /** ! * The text contained within the option element. */ public String getText(); *************** public interface HTMLOptionElement exten *** 54,102 **** public int getIndex(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * Option label for use in hierarchical menus. See the label attribute * definition in HTML 4.01. */ public String getLabel(); /** ! * Option label for use in hierarchical menus. See the label attribute * definition in HTML 4.01. */ public void setLabel(String label); /** ! * Represents the current state of the corresponding form control, in an ! * interactive user agent. Changing this attribute changes the state of ! * the form control, but does not change the value of the HTML selected * attribute of the element. */ public boolean getSelected(); /** ! * Represents the current state of the corresponding form control, in an ! * interactive user agent. Changing this attribute changes the state of ! * the form control, but does not change the value of the HTML selected * attribute of the element. */ public void setSelected(boolean selected); /** ! * The current form control value. See the value attribute definition in * HTML 4.01. */ public String getValue(); /** ! * The current form control value. See the value attribute definition in * HTML 4.01. */ public void setValue(String value); --- 54,102 ---- public int getIndex(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * Option label for use in hierarchical menus. See the label attribute * definition in HTML 4.01. */ public String getLabel(); /** ! * Option label for use in hierarchical menus. See the label attribute * definition in HTML 4.01. */ public void setLabel(String label); /** ! * Represents the current state of the corresponding form control, in an ! * interactive user agent. Changing this attribute changes the state of ! * the form control, but does not change the value of the HTML selected * attribute of the element. */ public boolean getSelected(); /** ! * Represents the current state of the corresponding form control, in an ! * interactive user agent. Changing this attribute changes the state of ! * the form control, but does not change the value of the HTML selected * attribute of the element. */ public void setSelected(boolean selected); /** ! * The current form control value. See the value attribute definition in * HTML 4.01. */ public String getValue(); /** ! * The current form control value. See the value attribute definition in * HTML 4.01. */ public void setValue(String value); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 16,66 **** import org.w3c.dom.DOMException; /** ! * An HTMLOptionsCollection is a list of nodes representing HTML ! * option element. An individual node may be accessed by either ordinal ! * index or the node's name or id attributes. ! * Collections in the HTML DOM are assumed to be live meaning that they are ! * automatically updated when the underlying document is changed. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. * @since DOM Level 2 */ public interface HTMLOptionsCollection { /** ! * This attribute specifies the length or size of the list. */ public int getLength(); /** ! * This attribute specifies the length or size of the list. * @exception DOMException ! * NOT_SUPPORTED_ERR: if setting the length is not allowed by the ! * implementation. */ public void setLength(int length) throws DOMException; /** ! * This method retrieves a node specified by ordinal index. Nodes are ! * numbered in tree order (depth-first traversal order). ! * @param index The index of the node to be fetched. The index origin is * 0. ! * @return The Node at the corresponding position upon ! * success. A value of null is returned if the index is ! * out of range. */ public Node item(int index); /** ! * This method retrieves a Node using a name. It first ! * searches for a Node with a matching id ! * attribute. If it doesn't find one, it then searches for a ! * Node with a matching name attribute, but ! * only on those elements that are allowed a name attribute. This method ! * is case insensitive in HTML documents and case sensitive in XHTML * documents. * @param name The name of the Node to be fetched. ! * @return The Node with a name or ! * id attribute whose value corresponds to the specified ! * string. Upon failure (e.g., no node with this name exists), returns * null. */ public Node namedItem(String name); --- 16,66 ---- import org.w3c.dom.DOMException; /** ! * An HTMLOptionsCollection is a list of nodes representing HTML ! * option element. An individual node may be accessed by either ordinal ! * index or the node's name or id attributes. ! * Collections in the HTML DOM are assumed to be live meaning that they are ! * automatically updated when the underlying document is changed. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. * @since DOM Level 2 */ public interface HTMLOptionsCollection { /** ! * This attribute specifies the length or size of the list. */ public int getLength(); /** ! * This attribute specifies the length or size of the list. * @exception DOMException ! * NOT_SUPPORTED_ERR: if setting the length is not allowed by the ! * implementation. */ public void setLength(int length) throws DOMException; /** ! * This method retrieves a node specified by ordinal index. Nodes are ! * numbered in tree order (depth-first traversal order). ! * @param index The index of the node to be fetched. The index origin is * 0. ! * @return The Node at the corresponding position upon ! * success. A value of null is returned if the index is ! * out of range. */ public Node item(int index); /** ! * This method retrieves a Node using a name. It first ! * searches for a Node with a matching id ! * attribute. If it doesn't find one, it then searches for a ! * Node with a matching name attribute, but ! * only on those elements that are allowed a name attribute. This method ! * is case insensitive in HTML documents and case sensitive in XHTML * documents. * @param name The name of the Node to be fetched. ! * @return The Node with a name or ! * id attribute whose value corresponds to the specified ! * string. Upon failure (e.g., no node with this name exists), returns * null. */ public Node namedItem(String name); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,29 **** */ public interface HTMLParagraphElement extends HTMLElement { /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); --- 18,29 ---- */ public interface HTMLParagraphElement extends HTMLElement { /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Horizontal text alignment. See the align attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,65 **** package org.w3c.dom.html2; /** ! * Parameters fed to the OBJECT element. See the PARAM element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLParamElement extends HTMLElement { /** ! * The name of a run-time parameter. See the name attribute definition in * HTML 4.01. */ public String getName(); /** ! * The name of a run-time parameter. See the name attribute definition in * HTML 4.01. */ public void setName(String name); /** ! * Content type for the value attribute when ! * valuetype has the value "ref". See the type attribute * definition in HTML 4.01. */ public String getType(); /** ! * Content type for the value attribute when ! * valuetype has the value "ref". See the type attribute * definition in HTML 4.01. */ public void setType(String type); /** ! * The value of a run-time parameter. See the value attribute definition * in HTML 4.01. */ public String getValue(); /** ! * The value of a run-time parameter. See the value attribute definition * in HTML 4.01. */ public void setValue(String value); /** ! * Information about the meaning of the value attribute * value. See the valuetype attribute definition in HTML 4.01. */ public String getValueType(); /** ! * Information about the meaning of the value attribute * value. See the valuetype attribute definition in HTML 4.01. */ public void setValueType(String valueType); --- 13,65 ---- package org.w3c.dom.html2; /** ! * Parameters fed to the OBJECT element. See the PARAM element * definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLParamElement extends HTMLElement { /** ! * The name of a run-time parameter. See the name attribute definition in * HTML 4.01. */ public String getName(); /** ! * The name of a run-time parameter. See the name attribute definition in * HTML 4.01. */ public void setName(String name); /** ! * Content type for the value attribute when ! * valuetype has the value "ref". See the type attribute * definition in HTML 4.01. */ public String getType(); /** ! * Content type for the value attribute when ! * valuetype has the value "ref". See the type attribute * definition in HTML 4.01. */ public void setType(String type); /** ! * The value of a run-time parameter. See the value attribute definition * in HTML 4.01. */ public String getValue(); /** ! * The value of a run-time parameter. See the value attribute definition * in HTML 4.01. */ public void setValue(String value); /** ! * Information about the meaning of the value attribute * value. See the valuetype attribute definition in HTML 4.01. */ public String getValueType(); /** ! * Information about the meaning of the value attribute * value. See the valuetype attribute definition in HTML 4.01. */ public void setValueType(String valueType); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,29 **** */ public interface HTMLPreElement extends HTMLElement { /** ! * Fixed width for content. See the width attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public int getWidth(); /** ! * Fixed width for content. See the width attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setWidth(int width); --- 18,29 ---- */ public interface HTMLPreElement extends HTMLElement { /** ! * Fixed width for content. See the width attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public int getWidth(); /** ! * Fixed width for content. See the width attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setWidth(int width); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,30 **** package org.w3c.dom.html2; /** ! * For the Q and BLOCKQUOTE elements. See the Q * element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLQuoteElement extends HTMLElement { /** ! * A URI [IETF RFC 2396] designating a source document or message. See the cite attribute * definition in HTML 4.01. */ public String getCite(); /** ! * A URI [IETF RFC 2396] designating a source document or message. See the cite attribute * definition in HTML 4.01. */ public void setCite(String cite); --- 13,30 ---- package org.w3c.dom.html2; /** ! * For the Q and BLOCKQUOTE elements. See the Q * element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLQuoteElement extends HTMLElement { /** ! * A URI [IETF RFC 2396] designating a source document or message. See the cite attribute * definition in HTML 4.01. */ public String getCite(); /** ! * A URI [IETF RFC 2396] designating a source document or message. See the cite attribute * definition in HTML 4.01. */ public void setCite(String cite); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,89 **** */ public interface HTMLScriptElement extends HTMLElement { /** ! * The script content of the element. */ public String getText(); /** ! * The script content of the element. */ public void setText(String text); /** ! * Reserved for future use. */ public String getHtmlFor(); /** ! * Reserved for future use. */ public void setHtmlFor(String htmlFor); /** ! * Reserved for future use. */ public String getEvent(); /** ! * Reserved for future use. */ public void setEvent(String event); /** ! * The character encoding of the linked resource. See the charset * attribute definition in HTML 4.01. */ public String getCharset(); /** ! * The character encoding of the linked resource. See the charset * attribute definition in HTML 4.01. */ public void setCharset(String charset); /** ! * Indicates that the user agent can defer processing of the script. See * the defer attribute definition in HTML 4.01. */ public boolean getDefer(); /** ! * Indicates that the user agent can defer processing of the script. See * the defer attribute definition in HTML 4.01. */ public void setDefer(boolean defer); /** ! * URI [IETF RFC 2396] designating an external script. See the src attribute definition * in HTML 4.01. */ public String getSrc(); /** ! * URI [IETF RFC 2396] designating an external script. See the src attribute definition * in HTML 4.01. */ public void setSrc(String src); /** ! * The content type of the script language. See the type attribute * definition in HTML 4.01. */ public String getType(); /** ! * The content type of the script language. See the type attribute * definition in HTML 4.01. */ public void setType(String type); --- 18,89 ---- */ public interface HTMLScriptElement extends HTMLElement { /** ! * The script content of the element. */ public String getText(); /** ! * The script content of the element. */ public void setText(String text); /** ! * Reserved for future use. */ public String getHtmlFor(); /** ! * Reserved for future use. */ public void setHtmlFor(String htmlFor); /** ! * Reserved for future use. */ public String getEvent(); /** ! * Reserved for future use. */ public void setEvent(String event); /** ! * The character encoding of the linked resource. See the charset * attribute definition in HTML 4.01. */ public String getCharset(); /** ! * The character encoding of the linked resource. See the charset * attribute definition in HTML 4.01. */ public void setCharset(String charset); /** ! * Indicates that the user agent can defer processing of the script. See * the defer attribute definition in HTML 4.01. */ public boolean getDefer(); /** ! * Indicates that the user agent can defer processing of the script. See * the defer attribute definition in HTML 4.01. */ public void setDefer(boolean defer); /** ! * URI [IETF RFC 2396] designating an external script. See the src attribute definition * in HTML 4.01. */ public String getSrc(); /** ! * URI [IETF RFC 2396] designating an external script. See the src attribute definition * in HTML 4.01. */ public void setSrc(String src); /** ! * The content type of the script language. See the type attribute * definition in HTML 4.01. */ public String getType(); /** ! * The content type of the script language. See the type attribute * definition in HTML 4.01. */ public void setType(String type); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 15,119 **** import org.w3c.dom.DOMException; /** ! * The select element allows the selection of an option. The contained options ! * can be directly accessed through the select element as a collection. See * the SELECT element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLSelectElement extends HTMLElement { /** ! * The type of this form control. This is the string "select-multiple" ! * when the multiple attribute is true and the string * "select-one" when false. */ public String getType(); /** ! * The ordinal index of the selected option, starting from 0. The value -1 ! * is returned if no element is selected. If multiple options are ! * selected, the index of the first selected option is returned. */ public int getSelectedIndex(); /** ! * The ordinal index of the selected option, starting from 0. The value -1 ! * is returned if no element is selected. If multiple options are ! * selected, the index of the first selected option is returned. */ public void setSelectedIndex(int selectedIndex); /** ! * The current form control value (i.e. the value of the currently ! * selected option), if multiple options are selected this is the value ! * of the first selected option. */ public String getValue(); /** ! * The current form control value (i.e. the value of the currently ! * selected option), if multiple options are selected this is the value ! * of the first selected option. */ public void setValue(String value); /** ! * The number of options in this SELECT. * @version DOM Level 2 */ public int getLength(); /** ! * The number of options in this SELECT. * @exception DOMException ! * NOT_SUPPORTED_ERR: if setting the length is not allowed by the ! * implementation. * @version DOM Level 2 */ public void setLength(int length) throws DOMException; /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * The collection of OPTION elements contained by this ! * element. * @version DOM Level 2 */ public HTMLOptionsCollection getOptions(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * If true, multiple OPTION elements may be selected in this ! * SELECT. See the multiple attribute definition in HTML * 4.01. */ public boolean getMultiple(); /** ! * If true, multiple OPTION elements may be selected in this ! * SELECT. See the multiple attribute definition in HTML * 4.01. */ public void setMultiple(boolean multiple); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); --- 15,119 ---- import org.w3c.dom.DOMException; /** ! * The select element allows the selection of an option. The contained options ! * can be directly accessed through the select element as a collection. See * the SELECT element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLSelectElement extends HTMLElement { /** ! * The type of this form control. This is the string "select-multiple" ! * when the multiple attribute is true and the string * "select-one" when false. */ public String getType(); /** ! * The ordinal index of the selected option, starting from 0. The value -1 ! * is returned if no element is selected. If multiple options are ! * selected, the index of the first selected option is returned. */ public int getSelectedIndex(); /** ! * The ordinal index of the selected option, starting from 0. The value -1 ! * is returned if no element is selected. If multiple options are ! * selected, the index of the first selected option is returned. */ public void setSelectedIndex(int selectedIndex); /** ! * The current form control value (i.e. the value of the currently ! * selected option), if multiple options are selected this is the value ! * of the first selected option. */ public String getValue(); /** ! * The current form control value (i.e. the value of the currently ! * selected option), if multiple options are selected this is the value ! * of the first selected option. */ public void setValue(String value); /** ! * The number of options in this SELECT. * @version DOM Level 2 */ public int getLength(); /** ! * The number of options in this SELECT. * @exception DOMException ! * NOT_SUPPORTED_ERR: if setting the length is not allowed by the ! * implementation. * @version DOM Level 2 */ public void setLength(int length) throws DOMException; /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * The collection of OPTION elements contained by this ! * element. * @version DOM Level 2 */ public HTMLOptionsCollection getOptions(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * If true, multiple OPTION elements may be selected in this ! * SELECT. See the multiple attribute definition in HTML * 4.01. */ public boolean getMultiple(); /** ! * If true, multiple OPTION elements may be selected in this ! * SELECT. See the multiple attribute definition in HTML * 4.01. */ public void setMultiple(boolean multiple); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); *************** public interface HTMLSelectElement exten *** 128,166 **** public void setSize(int size); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * Add a new element to the collection of OPTION elements for ! * this SELECT. This method is the equivalent of the ! * appendChild method of the Node interface if ! * the before parameter is null. It is ! * equivalent to the insertBefore method on the parent of ! * before in all other cases. This method may have no ! * effect if the new element is not an OPTION or an * OPTGROUP. * @param element The element to add. ! * @param before The element to insert before, or null for * the tail of the list. * @exception DOMException ! * NOT_FOUND_ERR: Raised if before is not a descendant of ! * the SELECT element. */ ! public void add(HTMLElement element, HTMLElement before) throws DOMException; /** ! * Remove an element from the collection of OPTION elements ! * for this SELECT. Does nothing if no element has the * given index. * @param index The index of the item to remove, starting from 0. */ --- 128,166 ---- public void setSize(int size); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); /** ! * Add a new element to the collection of OPTION elements for ! * this SELECT. This method is the equivalent of the ! * appendChild method of the Node interface if ! * the before parameter is null. It is ! * equivalent to the insertBefore method on the parent of ! * before in all other cases. This method may have no ! * effect if the new element is not an OPTION or an * OPTGROUP. * @param element The element to add. ! * @param before The element to insert before, or null for * the tail of the list. * @exception DOMException ! * NOT_FOUND_ERR: Raised if before is not a descendant of ! * the SELECT element. */ ! public void add(HTMLElement element, HTMLElement before) throws DOMException; /** ! * Remove an element from the collection of OPTION elements ! * for this SELECT. Does nothing if no element has the * given index. * @param index The index of the item to remove, starting from 0. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,51 **** package org.w3c.dom.html2; /** ! * Style information. See the STYLE element definition in HTML 4.01, the CSS ! * module [DOM Level 2 Style Sheets and CSS] and the LinkStyle interface in the StyleSheets ! * module [DOM Level 2 Style Sheets and CSS]. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLStyleElement extends HTMLElement { /** ! * Enables/disables the style sheet. */ public boolean getDisabled(); /** ! * Enables/disables the style sheet. */ public void setDisabled(boolean disabled); /** ! * Designed for use with one or more target media. See the media attribute * definition in HTML 4.01. */ public String getMedia(); /** ! * Designed for use with one or more target media. See the media attribute * definition in HTML 4.01. */ public void setMedia(String media); /** ! * The content type of the style sheet language. See the type attribute * definition in HTML 4.01. */ public String getType(); /** ! * The content type of the style sheet language. See the type attribute * definition in HTML 4.01. */ public void setType(String type); --- 13,51 ---- package org.w3c.dom.html2; /** ! * Style information. See the STYLE element definition in HTML 4.01, the CSS ! * module [DOM Level 2 Style Sheets and CSS] and the LinkStyle interface in the StyleSheets ! * module [DOM Level 2 Style Sheets and CSS]. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLStyleElement extends HTMLElement { /** ! * Enables/disables the style sheet. */ public boolean getDisabled(); /** ! * Enables/disables the style sheet. */ public void setDisabled(boolean disabled); /** ! * Designed for use with one or more target media. See the media attribute * definition in HTML 4.01. */ public String getMedia(); /** ! * Designed for use with one or more target media. See the media attribute * definition in HTML 4.01. */ public void setMedia(String media); /** ! * The content type of the style sheet language. See the type attribute * definition in HTML 4.01. */ public String getType(); /** ! * The content type of the style sheet language. See the type attribute * definition in HTML 4.01. */ public void setType(String type); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,29 **** */ public interface HTMLTableCaptionElement extends HTMLElement { /** ! * Caption alignment with respect to the table. See the align attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Caption alignment with respect to the table. See the align attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); --- 18,29 ---- */ public interface HTMLTableCaptionElement extends HTMLElement { /** ! * Caption alignment with respect to the table. See the align attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Caption alignment with respect to the table. See the align attribute * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setAlign(String align); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,36 **** package org.w3c.dom.html2; /** ! * The object used to represent the TH and TD * elements. See the TD element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLTableCellElement extends HTMLElement { /** ! * The index of this cell in the row, starting from 0. This index is in * document tree order and not display order. */ public int getCellIndex(); /** ! * Abbreviation for header cells. See the abbr attribute definition in * HTML 4.01. */ public String getAbbr(); /** ! * Abbreviation for header cells. See the abbr attribute definition in * HTML 4.01. */ public void setAbbr(String abbr); --- 13,36 ---- package org.w3c.dom.html2; /** ! * The object used to represent the TH and TD * elements. See the TD element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLTableCellElement extends HTMLElement { /** ! * The index of this cell in the row, starting from 0. This index is in * document tree order and not display order. */ public int getCellIndex(); /** ! * Abbreviation for header cells. See the abbr attribute definition in * HTML 4.01. */ public String getAbbr(); /** ! * Abbreviation for header cells. See the abbr attribute definition in * HTML 4.01. */ public void setAbbr(String abbr); *************** public interface HTMLTableCellElement ex *** 47,179 **** public void setAlign(String align); /** ! * Names group of related headers. See the axis attribute definition in * HTML 4.01. */ public String getAxis(); /** ! * Names group of related headers. See the axis attribute definition in * HTML 4.01. */ public void setAxis(String axis); /** ! * Cell background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getBgColor(); /** ! * Cell background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setBgColor(String bgColor); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public String getCh(); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public void setCh(String ch); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public String getChOff(); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public void setChOff(String chOff); /** ! * Number of columns spanned by cell. See the colspan attribute definition * in HTML 4.01. */ public int getColSpan(); /** ! * Number of columns spanned by cell. See the colspan attribute definition * in HTML 4.01. */ public void setColSpan(int colSpan); /** ! * List of id attribute values for header cells. See the * headers attribute definition in HTML 4.01. */ public String getHeaders(); /** ! * List of id attribute values for header cells. See the * headers attribute definition in HTML 4.01. */ public void setHeaders(String headers); /** ! * Cell height. See the height attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getHeight(); /** ! * Cell height. See the height attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setHeight(String height); /** ! * Suppress word wrapping. See the nowrap attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getNoWrap(); /** ! * Suppress word wrapping. See the nowrap attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setNoWrap(boolean noWrap); /** ! * Number of rows spanned by cell. See the rowspan attribute definition in * HTML 4.01. */ public int getRowSpan(); /** ! * Number of rows spanned by cell. See the rowspan attribute definition in * HTML 4.01. */ public void setRowSpan(int rowSpan); /** ! * Scope covered by header cells. See the scope attribute definition in * HTML 4.01. */ public String getScope(); /** ! * Scope covered by header cells. See the scope attribute definition in * HTML 4.01. */ public void setScope(String scope); /** ! * Vertical alignment of data in cell. See the valign attribute definition * in HTML 4.01. */ public String getVAlign(); /** ! * Vertical alignment of data in cell. See the valign attribute definition * in HTML 4.01. */ public void setVAlign(String vAlign); /** ! * Cell width. See the width attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getWidth(); /** ! * Cell width. See the width attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setWidth(String width); --- 47,179 ---- public void setAlign(String align); /** ! * Names group of related headers. See the axis attribute definition in * HTML 4.01. */ public String getAxis(); /** ! * Names group of related headers. See the axis attribute definition in * HTML 4.01. */ public void setAxis(String axis); /** ! * Cell background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getBgColor(); /** ! * Cell background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setBgColor(String bgColor); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public String getCh(); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public void setCh(String ch); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public String getChOff(); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public void setChOff(String chOff); /** ! * Number of columns spanned by cell. See the colspan attribute definition * in HTML 4.01. */ public int getColSpan(); /** ! * Number of columns spanned by cell. See the colspan attribute definition * in HTML 4.01. */ public void setColSpan(int colSpan); /** ! * List of id attribute values for header cells. See the * headers attribute definition in HTML 4.01. */ public String getHeaders(); /** ! * List of id attribute values for header cells. See the * headers attribute definition in HTML 4.01. */ public void setHeaders(String headers); /** ! * Cell height. See the height attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getHeight(); /** ! * Cell height. See the height attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setHeight(String height); /** ! * Suppress word wrapping. See the nowrap attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getNoWrap(); /** ! * Suppress word wrapping. See the nowrap attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setNoWrap(boolean noWrap); /** ! * Number of rows spanned by cell. See the rowspan attribute definition in * HTML 4.01. */ public int getRowSpan(); /** ! * Number of rows spanned by cell. See the rowspan attribute definition in * HTML 4.01. */ public void setRowSpan(int rowSpan); /** ! * Scope covered by header cells. See the scope attribute definition in * HTML 4.01. */ public String getScope(); /** ! * Scope covered by header cells. See the scope attribute definition in * HTML 4.01. */ public void setScope(String scope); /** ! * Vertical alignment of data in cell. See the valign attribute definition * in HTML 4.01. */ public String getVAlign(); /** ! * Vertical alignment of data in cell. See the valign attribute definition * in HTML 4.01. */ public void setVAlign(String vAlign); /** ! * Cell width. See the width attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getWidth(); /** ! * Cell width. See the width attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setWidth(String width); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java Tue Jan 11 19:46:05 2011 *************** *** 13,74 **** package org.w3c.dom.html2; /** ! * Regroups the COL and COLGROUP elements. See the * COL element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLTableColElement extends HTMLElement { /** ! * Horizontal alignment of cell data in column. See the align attribute * definition in HTML 4.01. */ public String getAlign(); /** ! * Horizontal alignment of cell data in column. See the align attribute * definition in HTML 4.01. */ public void setAlign(String align); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public String getCh(); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public void setCh(String ch); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public String getChOff(); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public void setChOff(String chOff); /** ! * Indicates the number of columns in a group or affected by a grouping. * See the span attribute definition in HTML 4.01. */ public int getSpan(); /** ! * Indicates the number of columns in a group or affected by a grouping. * See the span attribute definition in HTML 4.01. */ public void setSpan(int span); /** ! * Vertical alignment of cell data in column. See the valign attribute * definition in HTML 4.01. */ public String getVAlign(); /** ! * Vertical alignment of cell data in column. See the valign attribute * definition in HTML 4.01. */ public void setVAlign(String vAlign); --- 13,74 ---- package org.w3c.dom.html2; /** ! * Regroups the COL and COLGROUP elements. See the * COL element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLTableColElement extends HTMLElement { /** ! * Horizontal alignment of cell data in column. See the align attribute * definition in HTML 4.01. */ public String getAlign(); /** ! * Horizontal alignment of cell data in column. See the align attribute * definition in HTML 4.01. */ public void setAlign(String align); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public String getCh(); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public void setCh(String ch); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public String getChOff(); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public void setChOff(String chOff); /** ! * Indicates the number of columns in a group or affected by a grouping. * See the span attribute definition in HTML 4.01. */ public int getSpan(); /** ! * Indicates the number of columns in a group or affected by a grouping. * See the span attribute definition in HTML 4.01. */ public void setSpan(int span); /** ! * Vertical alignment of cell data in column. See the valign attribute * definition in HTML 4.01. */ public String getVAlign(); /** ! * Vertical alignment of cell data in column. See the valign attribute * definition in HTML 4.01. */ public void setVAlign(String vAlign); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 15,79 **** import org.w3c.dom.DOMException; /** ! * The create* and delete* methods on the table allow authors to construct and ! * modify tables. [HTML 4.01] specifies that only one of each of the ! * CAPTION, THEAD, and TFOOT elements ! * may exist in a table. Therefore, if one exists, and the createTHead() or ! * createTFoot() method is called, the method returns the existing THead or * TFoot element. See the TABLE element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLTableElement extends HTMLElement { /** ! * Returns the table's CAPTION, or void if none exists. * @version DOM Level 2 */ public HTMLTableCaptionElement getCaption(); /** ! * Returns the table's CAPTION, or void if none exists. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: if the element is not a CAPTION. * @version DOM Level 2 */ public void setCaption(HTMLTableCaptionElement caption) throws DOMException; /** ! * Returns the table's THEAD, or null if none ! * exists. * @version DOM Level 2 */ public HTMLTableSectionElement getTHead(); /** ! * Returns the table's THEAD, or null if none ! * exists. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: if the element is not a THEAD. * @version DOM Level 2 */ public void setTHead(HTMLTableSectionElement tHead) throws DOMException; /** ! * Returns the table's TFOOT, or null if none ! * exists. * @version DOM Level 2 */ public HTMLTableSectionElement getTFoot(); /** ! * Returns the table's TFOOT, or null if none ! * exists. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: if the element is not a TFOOT. * @version DOM Level 2 */ public void setTFoot(HTMLTableSectionElement tFoot) throws DOMException; /** ! * Returns a collection of all the rows in the table, including all in ! * THEAD, TFOOT, all TBODY ! * elements. */ public HTMLCollection getRows(); --- 15,79 ---- import org.w3c.dom.DOMException; /** ! * The create* and delete* methods on the table allow authors to construct and ! * modify tables. [HTML 4.01] specifies that only one of each of the ! * CAPTION, THEAD, and TFOOT elements ! * may exist in a table. Therefore, if one exists, and the createTHead() or ! * createTFoot() method is called, the method returns the existing THead or * TFoot element. See the TABLE element definition in HTML 4.01. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLTableElement extends HTMLElement { /** ! * Returns the table's CAPTION, or void if none exists. * @version DOM Level 2 */ public HTMLTableCaptionElement getCaption(); /** ! * Returns the table's CAPTION, or void if none exists. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: if the element is not a CAPTION. * @version DOM Level 2 */ public void setCaption(HTMLTableCaptionElement caption) throws DOMException; /** ! * Returns the table's THEAD, or null if none ! * exists. * @version DOM Level 2 */ public HTMLTableSectionElement getTHead(); /** ! * Returns the table's THEAD, or null if none ! * exists. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: if the element is not a THEAD. * @version DOM Level 2 */ public void setTHead(HTMLTableSectionElement tHead) throws DOMException; /** ! * Returns the table's TFOOT, or null if none ! * exists. * @version DOM Level 2 */ public HTMLTableSectionElement getTFoot(); /** ! * Returns the table's TFOOT, or null if none ! * exists. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: if the element is not a TFOOT. * @version DOM Level 2 */ public void setTFoot(HTMLTableSectionElement tFoot) throws DOMException; /** ! * Returns a collection of all the rows in the table, including all in ! * THEAD, TFOOT, all TBODY ! * elements. */ public HTMLCollection getRows(); *************** public interface HTMLTableElement extend *** 83,184 **** public HTMLCollection getTBodies(); /** ! * Specifies the table's position with respect to the rest of the ! * document. See the align attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Specifies the table's position with respect to the rest of the ! * document. See the align attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Cell background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getBgColor(); /** ! * Cell background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setBgColor(String bgColor); /** ! * The width of the border around the table. See the border attribute * definition in HTML 4.01. */ public String getBorder(); /** ! * The width of the border around the table. See the border attribute * definition in HTML 4.01. */ public void setBorder(String border); /** ! * Specifies the horizontal and vertical space between cell content and * cell borders. See the cellpadding attribute definition in HTML 4.01. */ public String getCellPadding(); /** ! * Specifies the horizontal and vertical space between cell content and * cell borders. See the cellpadding attribute definition in HTML 4.01. */ public void setCellPadding(String cellPadding); /** ! * Specifies the horizontal and vertical separation between cells. See the * cellspacing attribute definition in HTML 4.01. */ public String getCellSpacing(); /** ! * Specifies the horizontal and vertical separation between cells. See the * cellspacing attribute definition in HTML 4.01. */ public void setCellSpacing(String cellSpacing); /** ! * Specifies which external table borders to render. See the frame * attribute definition in HTML 4.01. */ public String getFrame(); /** ! * Specifies which external table borders to render. See the frame * attribute definition in HTML 4.01. */ public void setFrame(String frame); /** ! * Specifies which internal table borders to render. See the rules * attribute definition in HTML 4.01. */ public String getRules(); /** ! * Specifies which internal table borders to render. See the rules * attribute definition in HTML 4.01. */ public void setRules(String rules); /** ! * Description about the purpose or structure of a table. See the summary * attribute definition in HTML 4.01. */ public String getSummary(); /** ! * Description about the purpose or structure of a table. See the summary * attribute definition in HTML 4.01. */ public void setSummary(String summary); /** ! * Specifies the desired table width. See the width attribute definition * in HTML 4.01. */ public String getWidth(); /** ! * Specifies the desired table width. See the width attribute definition * in HTML 4.01. */ public void setWidth(String width); --- 83,184 ---- public HTMLCollection getTBodies(); /** ! * Specifies the table's position with respect to the rest of the ! * document. See the align attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getAlign(); /** ! * Specifies the table's position with respect to the rest of the ! * document. See the align attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setAlign(String align); /** ! * Cell background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getBgColor(); /** ! * Cell background color. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setBgColor(String bgColor); /** ! * The width of the border around the table. See the border attribute * definition in HTML 4.01. */ public String getBorder(); /** ! * The width of the border around the table. See the border attribute * definition in HTML 4.01. */ public void setBorder(String border); /** ! * Specifies the horizontal and vertical space between cell content and * cell borders. See the cellpadding attribute definition in HTML 4.01. */ public String getCellPadding(); /** ! * Specifies the horizontal and vertical space between cell content and * cell borders. See the cellpadding attribute definition in HTML 4.01. */ public void setCellPadding(String cellPadding); /** ! * Specifies the horizontal and vertical separation between cells. See the * cellspacing attribute definition in HTML 4.01. */ public String getCellSpacing(); /** ! * Specifies the horizontal and vertical separation between cells. See the * cellspacing attribute definition in HTML 4.01. */ public void setCellSpacing(String cellSpacing); /** ! * Specifies which external table borders to render. See the frame * attribute definition in HTML 4.01. */ public String getFrame(); /** ! * Specifies which external table borders to render. See the frame * attribute definition in HTML 4.01. */ public void setFrame(String frame); /** ! * Specifies which internal table borders to render. See the rules * attribute definition in HTML 4.01. */ public String getRules(); /** ! * Specifies which internal table borders to render. See the rules * attribute definition in HTML 4.01. */ public void setRules(String rules); /** ! * Description about the purpose or structure of a table. See the summary * attribute definition in HTML 4.01. */ public String getSummary(); /** ! * Description about the purpose or structure of a table. See the summary * attribute definition in HTML 4.01. */ public void setSummary(String summary); /** ! * Specifies the desired table width. See the width attribute definition * in HTML 4.01. */ public String getWidth(); /** ! * Specifies the desired table width. See the width attribute definition * in HTML 4.01. */ public void setWidth(String width); *************** public interface HTMLTableElement extend *** 217,235 **** public void deleteCaption(); /** ! * Insert a new empty row in the table. The new row is inserted ! * immediately before and in the same section as the current ! * indexth row in the table. If index is -1 or ! * equal to the number of rows, the new row is appended. In addition, ! * when the table is empty the row is inserted into a TBODY ! * which is created and inserted into the table.A table row cannot be * empty according to [HTML 4.01]. ! * @param index The row number where to insert a new row. This index ! * starts from 0 and is relative to the logical order (not document * order) of all the rows contained inside the table. * @return The newly created row. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater than the * number of rows or if the index is a negative number other than -1. * @version DOM Level 2 */ --- 217,235 ---- public void deleteCaption(); /** ! * Insert a new empty row in the table. The new row is inserted ! * immediately before and in the same section as the current ! * indexth row in the table. If index is -1 or ! * equal to the number of rows, the new row is appended. In addition, ! * when the table is empty the row is inserted into a TBODY ! * which is created and inserted into the table.A table row cannot be * empty according to [HTML 4.01]. ! * @param index The row number where to insert a new row. This index ! * starts from 0 and is relative to the logical order (not document * order) of all the rows contained inside the table. * @return The newly created row. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater than the * number of rows or if the index is a negative number other than -1. * @version DOM Level 2 */ *************** public interface HTMLTableElement extend *** 238,250 **** /** * Delete a table row. ! * @param index The index of the row to be deleted. This index starts ! * from 0 and is relative to the logical order (not document order) of ! * all the rows contained inside the table. If the index is -1 the * last row in the table is deleted. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater than or ! * equal to the number of rows or if the index is a negative number * other than -1. * @version DOM Level 2 */ --- 238,250 ---- /** * Delete a table row. ! * @param index The index of the row to be deleted. This index starts ! * from 0 and is relative to the logical order (not document order) of ! * all the rows contained inside the table. If the index is -1 the * last row in the table is deleted. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater than or ! * equal to the number of rows or if the index is a negative number * other than -1. * @version DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.DOMException; *** 20,30 **** */ public interface HTMLTableRowElement extends HTMLElement { /** ! * This is in logical order and not in document order. The * rowIndex does take into account sections ( ! * THEAD, TFOOT, or TBODY) within ! * the table, placing THEAD rows first in the index, ! * followed by TBODY rows, followed by TFOOT * rows. * @version DOM Level 2 */ --- 20,30 ---- */ public interface HTMLTableRowElement extends HTMLElement { /** ! * This is in logical order and not in document order. The * rowIndex does take into account sections ( ! * THEAD, TFOOT, or TBODY) within ! * the table, placing THEAD rows first in the index, ! * followed by TBODY rows, followed by TFOOT * rows. * @version DOM Level 2 */ *************** public interface HTMLTableRowElement ext *** 32,113 **** /** * The index of this row, relative to the current section ( ! * THEAD, TFOOT, or TBODY), * starting from 0. * @version DOM Level 2 */ public int getSectionRowIndex(); /** ! * The collection of cells in this row. * @version DOM Level 2 */ public HTMLCollection getCells(); /** ! * Horizontal alignment of data within cells of this row. See the align * attribute definition in HTML 4.01. */ public String getAlign(); /** ! * Horizontal alignment of data within cells of this row. See the align * attribute definition in HTML 4.01. */ public void setAlign(String align); /** ! * Background color for rows. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getBgColor(); /** ! * Background color for rows. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setBgColor(String bgColor); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public String getCh(); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public void setCh(String ch); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public String getChOff(); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public void setChOff(String chOff); /** ! * Vertical alignment of data within cells of this row. See the valign * attribute definition in HTML 4.01. */ public String getVAlign(); /** ! * Vertical alignment of data within cells of this row. See the valign * attribute definition in HTML 4.01. */ public void setVAlign(String vAlign); /** ! * Insert an empty TD cell into this row. If ! * index is -1 or equal to the number of cells, the new * cell is appended. * @param index The place to insert the cell, starting from 0. * @return The newly created cell. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater ! * than the number of cells or if the index is a negative number other * than -1. * @version DOM Level 2 */ --- 32,113 ---- /** * The index of this row, relative to the current section ( ! * THEAD, TFOOT, or TBODY), * starting from 0. * @version DOM Level 2 */ public int getSectionRowIndex(); /** ! * The collection of cells in this row. * @version DOM Level 2 */ public HTMLCollection getCells(); /** ! * Horizontal alignment of data within cells of this row. See the align * attribute definition in HTML 4.01. */ public String getAlign(); /** ! * Horizontal alignment of data within cells of this row. See the align * attribute definition in HTML 4.01. */ public void setAlign(String align); /** ! * Background color for rows. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public String getBgColor(); /** ! * Background color for rows. See the bgcolor attribute definition in HTML * 4.01. This attribute is deprecated in HTML 4.01. */ public void setBgColor(String bgColor); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public String getCh(); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public void setCh(String ch); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public String getChOff(); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public void setChOff(String chOff); /** ! * Vertical alignment of data within cells of this row. See the valign * attribute definition in HTML 4.01. */ public String getVAlign(); /** ! * Vertical alignment of data within cells of this row. See the valign * attribute definition in HTML 4.01. */ public void setVAlign(String vAlign); /** ! * Insert an empty TD cell into this row. If ! * index is -1 or equal to the number of cells, the new * cell is appended. * @param index The place to insert the cell, starting from 0. * @return The newly created cell. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater ! * than the number of cells or if the index is a negative number other * than -1. * @version DOM Level 2 */ *************** public interface HTMLTableRowElement ext *** 116,126 **** /** * Delete a cell from the current row. ! * @param index The index of the cell to delete, starting from 0. If the * index is -1 the last cell in the row is deleted. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater ! * than or equal to the number of cells or if the index is a negative * number other than -1. * @version DOM Level 2 */ --- 116,126 ---- /** * Delete a cell from the current row. ! * @param index The index of the cell to delete, starting from 0. If the * index is -1 the last cell in the row is deleted. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater ! * than or equal to the number of cells or if the index is a negative * number other than -1. * @version DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 15,85 **** import org.w3c.dom.DOMException; /** ! * The THEAD, TFOOT, and TBODY ! * elements. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLTableSectionElement extends HTMLElement { /** ! * Horizontal alignment of data in cells. See the align ! * attribute for HTMLTheadElement for details. */ public String getAlign(); /** ! * Horizontal alignment of data in cells. See the align ! * attribute for HTMLTheadElement for details. */ public void setAlign(String align); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public String getCh(); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public void setCh(String ch); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public String getChOff(); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public void setChOff(String chOff); /** ! * Vertical alignment of data in cells. See the valign ! * attribute for HTMLTheadElement for details. */ public String getVAlign(); /** ! * Vertical alignment of data in cells. See the valign ! * attribute for HTMLTheadElement for details. */ public void setVAlign(String vAlign); /** ! * The collection of rows in this table section. */ public HTMLCollection getRows(); /** ! * Insert a row into this section. The new row is inserted immediately ! * before the current indexth row in this section. If ! * index is -1 or equal to the number of rows in this * section, the new row is appended. ! * @param index The row number where to insert a new row. This index ! * starts from 0 and is relative only to the rows contained inside * this section, not all the rows in the table. * @return The newly created row. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater than the * number of rows of if the index is a negative number other than -1. * @version DOM Level 2 */ --- 15,85 ---- import org.w3c.dom.DOMException; /** ! * The THEAD, TFOOT, and TBODY ! * elements. *

      See also the Document Object Model (DOM) Level 2 HTML Specification. */ public interface HTMLTableSectionElement extends HTMLElement { /** ! * Horizontal alignment of data in cells. See the align ! * attribute for HTMLTheadElement for details. */ public String getAlign(); /** ! * Horizontal alignment of data in cells. See the align ! * attribute for HTMLTheadElement for details. */ public void setAlign(String align); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public String getCh(); /** ! * Alignment character for cells in a column. See the char attribute * definition in HTML 4.01. */ public void setCh(String ch); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public String getChOff(); /** ! * Offset of alignment character. See the charoff attribute definition in * HTML 4.01. */ public void setChOff(String chOff); /** ! * Vertical alignment of data in cells. See the valign ! * attribute for HTMLTheadElement for details. */ public String getVAlign(); /** ! * Vertical alignment of data in cells. See the valign ! * attribute for HTMLTheadElement for details. */ public void setVAlign(String vAlign); /** ! * The collection of rows in this table section. */ public HTMLCollection getRows(); /** ! * Insert a row into this section. The new row is inserted immediately ! * before the current indexth row in this section. If ! * index is -1 or equal to the number of rows in this * section, the new row is appended. ! * @param index The row number where to insert a new row. This index ! * starts from 0 and is relative only to the rows contained inside * this section, not all the rows in the table. * @return The newly created row. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater than the * number of rows of if the index is a negative number other than -1. * @version DOM Level 2 */ *************** public interface HTMLTableSectionElement *** 88,99 **** /** * Delete a row from this section. ! * @param index The index of the row to be deleted, or -1 to delete the ! * last row. This index starts from 0 and is relative only to the rows * contained inside this section, not all the rows in the table. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater than or ! * equal to the number of rows or if the index is a negative number * other than -1. * @version DOM Level 2 */ --- 88,99 ---- /** * Delete a row from this section. ! * @param index The index of the row to be deleted, or -1 to delete the ! * last row. This index starts from 0 and is relative only to the rows * contained inside this section, not all the rows in the table. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if the specified index is greater than or ! * equal to the number of rows or if the index is a negative number * other than -1. * @version DOM Level 2 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,95 **** */ public interface HTMLTextAreaElement extends HTMLElement { /** ! * Represents the contents of the element. The value of this attribute ! * does not change if the contents of the corresponding form control, in * an interactive user agent, changes. * @version DOM Level 2 */ public String getDefaultValue(); /** ! * Represents the contents of the element. The value of this attribute ! * does not change if the contents of the corresponding form control, in * an interactive user agent, changes. * @version DOM Level 2 */ public void setDefaultValue(String defaultValue); /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * Width of control (in characters). See the cols attribute definition in * HTML 4.01. */ public int getCols(); /** ! * Width of control (in characters). See the cols attribute definition in * HTML 4.01. */ public void setCols(int cols); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); /** ! * This control is read-only. See the readonly attribute definition in * HTML 4.01. */ public boolean getReadOnly(); /** ! * This control is read-only. See the readonly attribute definition in * HTML 4.01. */ public void setReadOnly(boolean readOnly); --- 18,95 ---- */ public interface HTMLTextAreaElement extends HTMLElement { /** ! * Represents the contents of the element. The value of this attribute ! * does not change if the contents of the corresponding form control, in * an interactive user agent, changes. * @version DOM Level 2 */ public String getDefaultValue(); /** ! * Represents the contents of the element. The value of this attribute ! * does not change if the contents of the corresponding form control, in * an interactive user agent, changes. * @version DOM Level 2 */ public void setDefaultValue(String defaultValue); /** ! * Returns the FORM element containing this control. Returns ! * null if this control is not within the context of a ! * form. */ public HTMLFormElement getForm(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public String getAccessKey(); /** ! * A single character access key to give access to the form control. See * the accesskey attribute definition in HTML 4.01. */ public void setAccessKey(String accessKey); /** ! * Width of control (in characters). See the cols attribute definition in * HTML 4.01. */ public int getCols(); /** ! * Width of control (in characters). See the cols attribute definition in * HTML 4.01. */ public void setCols(int cols); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public boolean getDisabled(); /** ! * The control is unavailable in this context. See the disabled attribute * definition in HTML 4.01. */ public void setDisabled(boolean disabled); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public String getName(); /** ! * Form control or object name when submitted with a form. See the name * attribute definition in HTML 4.01. */ public void setName(String name); /** ! * This control is read-only. See the readonly attribute definition in * HTML 4.01. */ public boolean getReadOnly(); /** ! * This control is read-only. See the readonly attribute definition in * HTML 4.01. */ public void setReadOnly(boolean readOnly); *************** public interface HTMLTextAreaElement ext *** 104,115 **** public void setRows(int rows); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); --- 104,115 ---- public void setRows(int rows); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public int getTabIndex(); /** ! * Index that represents the element's position in the tabbing order. See * the tabindex attribute definition in HTML 4.01. */ public void setTabIndex(int tabIndex); *************** public interface HTMLTextAreaElement ext *** 120,137 **** public String getType(); /** ! * Represents the current contents of the corresponding form control, in ! * an interactive user agent. Changing this attribute changes the ! * contents of the form control, but does not change the contents of the ! * element. If the entirety of the data can not fit into a single * DOMString, the implementation may truncate the data. */ public String getValue(); /** ! * Represents the current contents of the corresponding form control, in ! * an interactive user agent. Changing this attribute changes the ! * contents of the form control, but does not change the contents of the ! * element. If the entirety of the data can not fit into a single * DOMString, the implementation may truncate the data. */ public void setValue(String value); --- 120,137 ---- public String getType(); /** ! * Represents the current contents of the corresponding form control, in ! * an interactive user agent. Changing this attribute changes the ! * contents of the form control, but does not change the contents of the ! * element. If the entirety of the data can not fit into a single * DOMString, the implementation may truncate the data. */ public String getValue(); /** ! * Represents the current contents of the corresponding form control, in ! * an interactive user agent. Changing this attribute changes the ! * contents of the form control, but does not change the contents of the ! * element. If the entirety of the data can not fit into a single * DOMString, the implementation may truncate the data. */ public void setValue(String value); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,28 **** */ public interface HTMLTitleElement extends HTMLElement { /** ! * The specified title as a string. */ public String getText(); /** ! * The specified title as a string. */ public void setText(String text); --- 18,28 ---- */ public interface HTMLTitleElement extends HTMLElement { /** ! * The specified title as a string. */ public String getText(); /** ! * The specified title as a string. */ public void setText(String text); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.html2; *** 18,40 **** */ public interface HTMLUListElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); /** ! * Bullet style. See the type attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getType(); /** ! * Bullet style. See the type attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setType(String type); --- 18,40 ---- */ public interface HTMLUListElement extends HTMLElement { /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public boolean getCompact(); /** ! * Reduce spacing between list items. See the compact attribute definition * in HTML 4.01. This attribute is deprecated in HTML 4.01. */ public void setCompact(boolean compact); /** ! * Bullet style. See the type attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public String getType(); /** ! * Bullet style. See the type attribute definition in HTML 4.01. This * attribute is deprecated in HTML 4.01. */ public void setType(String type); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.ls; *** 15,31 **** import org.w3c.dom.DOMException; /** ! * DOMImplementationLS contains the factory methods for creating ! * Load and Save objects. ! *

      The expectation is that an instance of the ! * DOMImplementationLS interface can be obtained by using ! * binding-specific casting methods on an instance of the ! * DOMImplementation interface or, if the Document ! * supports the feature "Core" version "3.0" * defined in [DOM Level 3 Core] ! * , by using the method DOMImplementation.getFeature with ! * parameter values "LS" (or "LS-Async") and ! * "3.0" (respectively). *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ --- 15,31 ---- import org.w3c.dom.DOMException; /** ! * DOMImplementationLS contains the factory methods for creating ! * Load and Save objects. ! *

      The expectation is that an instance of the ! * DOMImplementationLS interface can be obtained by using ! * binding-specific casting methods on an instance of the ! * DOMImplementation interface or, if the Document ! * supports the feature "Core" version "3.0" * defined in [DOM Level 3 Core] ! * , by using the method DOMImplementation.getFeature with ! * parameter values "LS" (or "LS-Async") and ! * "3.0" (respectively). *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ *************** public interface DOMImplementationLS { *** 41,121 **** public static final short MODE_ASYNCHRONOUS = 2; /** ! * Create a new LSParser. The newly constructed parser may ! * then be configured by means of its DOMConfiguration * object, and used to parse documents by means of its parse ! * method. ! * @param mode The mode argument is either ! * MODE_SYNCHRONOUS or MODE_ASYNCHRONOUS, if ! * mode is MODE_SYNCHRONOUS then the ! * LSParser that is created will operate in synchronous ! * mode, if it's MODE_ASYNCHRONOUS then the ! * LSParser that is created will operate in asynchronous ! * mode. ! * @param schemaType An absolute URI representing the type of the schema ! * language used during the load of a Document using the ! * newly created LSParser. Note that no lexical checking ! * is done on the absolute URI. In order to create a ! * LSParser for any kind of schema types (i.e. the ! * LSParser will be free to use any schema found), use the value ! * null. *

      Note: For W3C XML Schema [XML Schema Part 1] ! * , applications must use the value ! * "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0], ! * applications must use the value ! * "http://www.w3.org/TR/REC-xml". Other Schema languages ! * are outside the scope of the W3C and therefore should recommend an ! * absolute URI in order to use this method. ! * @return The newly created LSParser object. This ! * LSParser is either synchronous or asynchronous ! * depending on the value of the mode argument. ! *

      Note: By default, the newly created LSParser ! * does not contain a DOMErrorHandler, i.e. the value of * the " ! * error-handler" configuration parameter is null. However, implementations ! * may provide a default error handler at creation time. In that case, ! * the initial value of the "error-handler" configuration ! * parameter on the new LSParser object contains a ! * reference to the default error handler. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the requested mode or schema type is ! * not supported. */ ! public LSParser createLSParser(short mode, String schemaType) throws DOMException; /** ! * Create a new LSSerializer object. * @return The newly created LSSerializer object. ! *

      Note: By default, the newly created ! * LSSerializer has no DOMErrorHandler, i.e. ! * the value of the "error-handler" configuration ! * parameter is null. However, implementations may ! * provide a default error handler at creation time. In that case, the ! * initial value of the "error-handler" configuration ! * parameter on the new LSSerializer object contains a ! * reference to the default error handler. */ public LSSerializer createLSSerializer(); /** ! * Create a new empty input source object where * LSInput.characterStream, LSInput.byteStream ! * , LSInput.stringData LSInput.systemId, ! * LSInput.publicId, LSInput.baseURI, and ! * LSInput.encoding are null, and ! * LSInput.certifiedText is false. ! * @return The newly created input object. */ public LSInput createLSInput(); /** ! * Create a new empty output destination object where ! * LSOutput.characterStream, ! * LSOutput.byteStream, LSOutput.systemId, ! * LSOutput.encoding are null. ! * @return The newly created output object. */ public LSOutput createLSOutput(); --- 41,121 ---- public static final short MODE_ASYNCHRONOUS = 2; /** ! * Create a new LSParser. The newly constructed parser may ! * then be configured by means of its DOMConfiguration * object, and used to parse documents by means of its parse ! * method. ! * @param mode The mode argument is either ! * MODE_SYNCHRONOUS or MODE_ASYNCHRONOUS, if ! * mode is MODE_SYNCHRONOUS then the ! * LSParser that is created will operate in synchronous ! * mode, if it's MODE_ASYNCHRONOUS then the ! * LSParser that is created will operate in asynchronous ! * mode. ! * @param schemaType An absolute URI representing the type of the schema ! * language used during the load of a Document using the ! * newly created LSParser. Note that no lexical checking ! * is done on the absolute URI. In order to create a ! * LSParser for any kind of schema types (i.e. the ! * LSParser will be free to use any schema found), use the value ! * null. *

      Note: For W3C XML Schema [XML Schema Part 1] ! * , applications must use the value ! * "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0], ! * applications must use the value ! * "http://www.w3.org/TR/REC-xml". Other Schema languages ! * are outside the scope of the W3C and therefore should recommend an ! * absolute URI in order to use this method. ! * @return The newly created LSParser object. This ! * LSParser is either synchronous or asynchronous ! * depending on the value of the mode argument. ! *

      Note: By default, the newly created LSParser ! * does not contain a DOMErrorHandler, i.e. the value of * the " ! * error-handler" configuration parameter is null. However, implementations ! * may provide a default error handler at creation time. In that case, ! * the initial value of the "error-handler" configuration ! * parameter on the new LSParser object contains a ! * reference to the default error handler. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the requested mode or schema type is ! * not supported. */ ! public LSParser createLSParser(short mode, String schemaType) throws DOMException; /** ! * Create a new LSSerializer object. * @return The newly created LSSerializer object. ! *

      Note: By default, the newly created ! * LSSerializer has no DOMErrorHandler, i.e. ! * the value of the "error-handler" configuration ! * parameter is null. However, implementations may ! * provide a default error handler at creation time. In that case, the ! * initial value of the "error-handler" configuration ! * parameter on the new LSSerializer object contains a ! * reference to the default error handler. */ public LSSerializer createLSSerializer(); /** ! * Create a new empty input source object where * LSInput.characterStream, LSInput.byteStream ! * , LSInput.stringData LSInput.systemId, ! * LSInput.publicId, LSInput.baseURI, and ! * LSInput.encoding are null, and ! * LSInput.certifiedText is false. ! * @return The newly created input object. */ public LSInput createLSInput(); /** ! * Create a new empty output destination object where ! * LSOutput.characterStream, ! * LSOutput.byteStream, LSOutput.systemId, ! * LSOutput.encoding are null. ! * @return The newly created output object. */ public LSOutput createLSOutput(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java Tue Jan 11 19:46:05 2011 *************** *** 13,28 **** package org.w3c.dom.ls; /** ! * Parser or write operations may throw an LSException if the ! * processing is stopped. The processing can be stopped due to a ! * DOMError with a severity of ! * DOMError.SEVERITY_FATAL_ERROR or a non recovered ! * DOMError.SEVERITY_ERROR, or if ! * DOMErrorHandler.handleError() returned false. ! *

      Note: As suggested in the definition of the constants in the ! * DOMError interface, a DOM implementation may choose to ! * continue after a fatal error, but the resulting DOM tree is then ! * implementation dependent. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ --- 13,28 ---- package org.w3c.dom.ls; /** ! * Parser or write operations may throw an LSException if the ! * processing is stopped. The processing can be stopped due to a ! * DOMError with a severity of ! * DOMError.SEVERITY_FATAL_ERROR or a non recovered ! * DOMError.SEVERITY_ERROR, or if ! * DOMErrorHandler.handleError() returned false. ! *

      Note: As suggested in the definition of the constants in the ! * DOMError interface, a DOM implementation may choose to ! * continue after a fatal error, but the resulting DOM tree is then ! * implementation dependent. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ *************** public class LSException extends Runtime *** 34,46 **** public short code; // LSExceptionCode /** ! * If an attempt was made to load a document, or an XML Fragment, using ! * LSParser and the processing has been stopped. */ public static final short PARSE_ERR = 81; /** ! * If an attempt was made to serialize a Node using ! * LSSerializer and the processing has been stopped. */ public static final short SERIALIZE_ERR = 82; --- 34,46 ---- public short code; // LSExceptionCode /** ! * If an attempt was made to load a document, or an XML Fragment, using ! * LSParser and the processing has been stopped. */ public static final short PARSE_ERR = 81; /** ! * If an attempt was made to serialize a Node using ! * LSSerializer and the processing has been stopped. */ public static final short SERIALIZE_ERR = 82; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java Tue Jan 11 19:46:05 2011 *************** *** 13,217 **** package org.w3c.dom.ls; /** ! * This interface represents an input source for data. ! *

      This interface allows an application to encapsulate information about ! * an input source in a single object, which may include a public ! * identifier, a system identifier, a byte stream (possibly with a specified ! * encoding), a base URI, and/or a character stream. ! *

      The exact definitions of a byte stream and a character stream are ! * binding dependent. ! *

      The application is expected to provide objects that implement this ! * interface whenever such objects are needed. The application can either ! * provide its own objects that implement this interface, or it can use the ! * generic factory method DOMImplementationLS.createLSInput() ! * to create objects that implement this interface. ! *

      The LSParser will use the LSInput object to ! * determine how to read data. The LSParser will look at the ! * different inputs specified in the LSInput in the following ! * order to know which one to read from, the first one that is not null and ! * not an empty string will be used: *

        ! *
      1. LSInput.characterStream *
      2. ! *
      3. ! * LSInput.byteStream *
      4. ! *
      5. LSInput.stringData *
      6. ! *
      7. ! * LSInput.systemId *
      8. ! *
      9. LSInput.publicId *
      10. ! *
      ! *

      If all inputs are null, the LSParser will report a ! * DOMError with its DOMError.type set to ! * "no-input-specified" and its DOMError.severity ! * set to DOMError.SEVERITY_FATAL_ERROR. ! *

      LSInput objects belong to the application. The DOM ! * implementation will never modify them (though it may make copies and ! * modify the copies, if necessary). *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSInput { /** ! * An attribute of a language and binding dependent type that represents ! * a stream of 16-bit units. The application must encode the stream ! * using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when ! * using character streams. If an XML declaration is present, the value ! * of the encoding attribute will be ignored. */ public java.io.Reader getCharacterStream(); /** ! * An attribute of a language and binding dependent type that represents ! * a stream of 16-bit units. The application must encode the stream ! * using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when ! * using character streams. If an XML declaration is present, the value ! * of the encoding attribute will be ignored. */ public void setCharacterStream(java.io.Reader characterStream); /** ! * An attribute of a language and binding dependent type that represents ! * a stream of bytes. ! *
      If the application knows the character encoding of the byte ! * stream, it should set the encoding attribute. Setting the encoding in ! * this way will override any encoding specified in an XML declaration ! * in the data. */ public java.io.InputStream getByteStream(); /** ! * An attribute of a language and binding dependent type that represents ! * a stream of bytes. ! *
      If the application knows the character encoding of the byte ! * stream, it should set the encoding attribute. Setting the encoding in ! * this way will override any encoding specified in an XML declaration ! * in the data. */ public void setByteStream(java.io.InputStream byteStream); /** ! * String data to parse. If provided, this will always be treated as a ! * sequence of 16-bit units (UTF-16 encoded characters). It is not a ! * requirement to have an XML declaration when using ! * stringData. If an XML declaration is present, the value ! * of the encoding attribute will be ignored. */ public String getStringData(); /** ! * String data to parse. If provided, this will always be treated as a ! * sequence of 16-bit units (UTF-16 encoded characters). It is not a ! * requirement to have an XML declaration when using ! * stringData. If an XML declaration is present, the value ! * of the encoding attribute will be ignored. */ public void setStringData(String stringData); /** ! * The system identifier, a URI reference [IETF RFC 2396], for this ! * input source. The system identifier is optional if there is a byte ! * stream, a character stream, or string data. It is still useful to ! * provide one, since the application will use it to resolve any ! * relative URIs and can include it in error messages and warnings. (The ! * LSParser will only attempt to fetch the resource identified by the ! * URI reference if there is no other input available in the input ! * source.) ! *
      If the application knows the character encoding of the object ! * pointed to by the system identifier, it can set the encoding using ! * the encoding attribute. ! *
      If the specified system ID is a relative URI reference (see ! * section 5 in [IETF RFC 2396]), the DOM ! * implementation will attempt to resolve the relative URI with the ! * baseURI as the base, if that fails, the behavior is ! * implementation dependent. */ public String getSystemId(); /** ! * The system identifier, a URI reference [IETF RFC 2396], for this ! * input source. The system identifier is optional if there is a byte ! * stream, a character stream, or string data. It is still useful to ! * provide one, since the application will use it to resolve any ! * relative URIs and can include it in error messages and warnings. (The ! * LSParser will only attempt to fetch the resource identified by the ! * URI reference if there is no other input available in the input ! * source.) ! *
      If the application knows the character encoding of the object ! * pointed to by the system identifier, it can set the encoding using ! * the encoding attribute. ! *
      If the specified system ID is a relative URI reference (see ! * section 5 in [IETF RFC 2396]), the DOM ! * implementation will attempt to resolve the relative URI with the ! * baseURI as the base, if that fails, the behavior is ! * implementation dependent. */ public void setSystemId(String systemId); /** ! * The public identifier for this input source. This may be mapped to an ! * input source using an implementation dependent mechanism (such as ! * catalogues or other mappings). The public identifier, if specified, ! * may also be reported as part of the location information when errors ! * are reported. */ public String getPublicId(); /** ! * The public identifier for this input source. This may be mapped to an ! * input source using an implementation dependent mechanism (such as ! * catalogues or other mappings). The public identifier, if specified, ! * may also be reported as part of the location information when errors ! * are reported. */ public void setPublicId(String publicId); /** ! * The base URI to be used (see section 5.1.4 in [IETF RFC 2396]) for ! * resolving a relative systemId to an absolute URI. ! *
      If, when used, the base URI is itself a relative URI, an empty ! * string, or null, the behavior is implementation dependent. */ public String getBaseURI(); /** ! * The base URI to be used (see section 5.1.4 in [IETF RFC 2396]) for ! * resolving a relative systemId to an absolute URI. ! *
      If, when used, the base URI is itself a relative URI, an empty ! * string, or null, the behavior is implementation dependent. */ public void setBaseURI(String baseURI); /** ! * The character encoding, if known. The encoding must be a string ! * acceptable for an XML encoding declaration ([XML 1.0] section ! * 4.3.3 "Character Encoding in Entities"). ! *
      This attribute has no effect when the application provides a ! * character stream or string data. For other sources of input, an ! * encoding specified by means of this attribute will override any ! * encoding specified in the XML declaration or the Text declaration, or ! * an encoding obtained from a higher level protocol, such as HTTP [IETF RFC 2616]. */ public String getEncoding(); /** ! * The character encoding, if known. The encoding must be a string ! * acceptable for an XML encoding declaration ([XML 1.0] section ! * 4.3.3 "Character Encoding in Entities"). ! *
      This attribute has no effect when the application provides a ! * character stream or string data. For other sources of input, an ! * encoding specified by means of this attribute will override any ! * encoding specified in the XML declaration or the Text declaration, or ! * an encoding obtained from a higher level protocol, such as HTTP [IETF RFC 2616]. */ public void setEncoding(String encoding); /** ! * If set to true, assume that the input is certified (see section 2.13 ! * in [XML 1.1]) when ! * parsing [XML 1.1]. */ public boolean getCertifiedText(); /** ! * If set to true, assume that the input is certified (see section 2.13 ! * in [XML 1.1]) when ! * parsing [XML 1.1]. */ public void setCertifiedText(boolean certifiedText); --- 13,217 ---- package org.w3c.dom.ls; /** ! * This interface represents an input source for data. ! *

      This interface allows an application to encapsulate information about ! * an input source in a single object, which may include a public ! * identifier, a system identifier, a byte stream (possibly with a specified ! * encoding), a base URI, and/or a character stream. ! *

      The exact definitions of a byte stream and a character stream are ! * binding dependent. ! *

      The application is expected to provide objects that implement this ! * interface whenever such objects are needed. The application can either ! * provide its own objects that implement this interface, or it can use the ! * generic factory method DOMImplementationLS.createLSInput() ! * to create objects that implement this interface. ! *

      The LSParser will use the LSInput object to ! * determine how to read data. The LSParser will look at the ! * different inputs specified in the LSInput in the following ! * order to know which one to read from, the first one that is not null and ! * not an empty string will be used: *

        ! *
      1. LSInput.characterStream *
      2. ! *
      3. ! * LSInput.byteStream *
      4. ! *
      5. LSInput.stringData *
      6. ! *
      7. ! * LSInput.systemId *
      8. ! *
      9. LSInput.publicId *
      10. ! *
      ! *

      If all inputs are null, the LSParser will report a ! * DOMError with its DOMError.type set to ! * "no-input-specified" and its DOMError.severity ! * set to DOMError.SEVERITY_FATAL_ERROR. ! *

      LSInput objects belong to the application. The DOM ! * implementation will never modify them (though it may make copies and ! * modify the copies, if necessary). *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSInput { /** ! * An attribute of a language and binding dependent type that represents ! * a stream of 16-bit units. The application must encode the stream ! * using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when ! * using character streams. If an XML declaration is present, the value ! * of the encoding attribute will be ignored. */ public java.io.Reader getCharacterStream(); /** ! * An attribute of a language and binding dependent type that represents ! * a stream of 16-bit units. The application must encode the stream ! * using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when ! * using character streams. If an XML declaration is present, the value ! * of the encoding attribute will be ignored. */ public void setCharacterStream(java.io.Reader characterStream); /** ! * An attribute of a language and binding dependent type that represents ! * a stream of bytes. ! *
      If the application knows the character encoding of the byte ! * stream, it should set the encoding attribute. Setting the encoding in ! * this way will override any encoding specified in an XML declaration ! * in the data. */ public java.io.InputStream getByteStream(); /** ! * An attribute of a language and binding dependent type that represents ! * a stream of bytes. ! *
      If the application knows the character encoding of the byte ! * stream, it should set the encoding attribute. Setting the encoding in ! * this way will override any encoding specified in an XML declaration ! * in the data. */ public void setByteStream(java.io.InputStream byteStream); /** ! * String data to parse. If provided, this will always be treated as a ! * sequence of 16-bit units (UTF-16 encoded characters). It is not a ! * requirement to have an XML declaration when using ! * stringData. If an XML declaration is present, the value ! * of the encoding attribute will be ignored. */ public String getStringData(); /** ! * String data to parse. If provided, this will always be treated as a ! * sequence of 16-bit units (UTF-16 encoded characters). It is not a ! * requirement to have an XML declaration when using ! * stringData. If an XML declaration is present, the value ! * of the encoding attribute will be ignored. */ public void setStringData(String stringData); /** ! * The system identifier, a URI reference [IETF RFC 2396], for this ! * input source. The system identifier is optional if there is a byte ! * stream, a character stream, or string data. It is still useful to ! * provide one, since the application will use it to resolve any ! * relative URIs and can include it in error messages and warnings. (The ! * LSParser will only attempt to fetch the resource identified by the ! * URI reference if there is no other input available in the input ! * source.) ! *
      If the application knows the character encoding of the object ! * pointed to by the system identifier, it can set the encoding using ! * the encoding attribute. ! *
      If the specified system ID is a relative URI reference (see ! * section 5 in [IETF RFC 2396]), the DOM ! * implementation will attempt to resolve the relative URI with the ! * baseURI as the base, if that fails, the behavior is ! * implementation dependent. */ public String getSystemId(); /** ! * The system identifier, a URI reference [IETF RFC 2396], for this ! * input source. The system identifier is optional if there is a byte ! * stream, a character stream, or string data. It is still useful to ! * provide one, since the application will use it to resolve any ! * relative URIs and can include it in error messages and warnings. (The ! * LSParser will only attempt to fetch the resource identified by the ! * URI reference if there is no other input available in the input ! * source.) ! *
      If the application knows the character encoding of the object ! * pointed to by the system identifier, it can set the encoding using ! * the encoding attribute. ! *
      If the specified system ID is a relative URI reference (see ! * section 5 in [IETF RFC 2396]), the DOM ! * implementation will attempt to resolve the relative URI with the ! * baseURI as the base, if that fails, the behavior is ! * implementation dependent. */ public void setSystemId(String systemId); /** ! * The public identifier for this input source. This may be mapped to an ! * input source using an implementation dependent mechanism (such as ! * catalogues or other mappings). The public identifier, if specified, ! * may also be reported as part of the location information when errors ! * are reported. */ public String getPublicId(); /** ! * The public identifier for this input source. This may be mapped to an ! * input source using an implementation dependent mechanism (such as ! * catalogues or other mappings). The public identifier, if specified, ! * may also be reported as part of the location information when errors ! * are reported. */ public void setPublicId(String publicId); /** ! * The base URI to be used (see section 5.1.4 in [IETF RFC 2396]) for ! * resolving a relative systemId to an absolute URI. ! *
      If, when used, the base URI is itself a relative URI, an empty ! * string, or null, the behavior is implementation dependent. */ public String getBaseURI(); /** ! * The base URI to be used (see section 5.1.4 in [IETF RFC 2396]) for ! * resolving a relative systemId to an absolute URI. ! *
      If, when used, the base URI is itself a relative URI, an empty ! * string, or null, the behavior is implementation dependent. */ public void setBaseURI(String baseURI); /** ! * The character encoding, if known. The encoding must be a string ! * acceptable for an XML encoding declaration ([XML 1.0] section ! * 4.3.3 "Character Encoding in Entities"). ! *
      This attribute has no effect when the application provides a ! * character stream or string data. For other sources of input, an ! * encoding specified by means of this attribute will override any ! * encoding specified in the XML declaration or the Text declaration, or ! * an encoding obtained from a higher level protocol, such as HTTP [IETF RFC 2616]. */ public String getEncoding(); /** ! * The character encoding, if known. The encoding must be a string ! * acceptable for an XML encoding declaration ([XML 1.0] section ! * 4.3.3 "Character Encoding in Entities"). ! *
      This attribute has no effect when the application provides a ! * character stream or string data. For other sources of input, an ! * encoding specified by means of this attribute will override any ! * encoding specified in the XML declaration or the Text declaration, or ! * an encoding obtained from a higher level protocol, such as HTTP [IETF RFC 2616]. */ public void setEncoding(String encoding); /** ! * If set to true, assume that the input is certified (see section 2.13 ! * in [XML 1.1]) when ! * parsing [XML 1.1]. */ public boolean getCertifiedText(); /** ! * If set to true, assume that the input is certified (see section 2.13 ! * in [XML 1.1]) when ! * parsing [XML 1.1]. */ public void setCertifiedText(boolean certifiedText); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Document; *** 16,23 **** import org.w3c.dom.events.Event; /** ! * This interface represents a load event object that signals the completion ! * of a document load. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ --- 16,23 ---- import org.w3c.dom.events.Event; /** ! * This interface represents a load event object that signals the completion ! * of a document load. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java Tue Jan 11 19:46:05 2011 *************** *** 13,105 **** package org.w3c.dom.ls; /** ! * This interface represents an output destination for data. ! *

      This interface allows an application to encapsulate information about ! * an output destination in a single object, which may include a URI, a byte ! * stream (possibly with a specified encoding), a base URI, and/or a ! * character stream. ! *

      The exact definitions of a byte stream and a character stream are ! * binding dependent. ! *

      The application is expected to provide objects that implement this ! * interface whenever such objects are needed. The application can either ! * provide its own objects that implement this interface, or it can use the ! * generic factory method DOMImplementationLS.createLSOutput() ! * to create objects that implement this interface. ! *

      The LSSerializer will use the LSOutput object ! * to determine where to serialize the output to. The ! * LSSerializer will look at the different outputs specified in ! * the LSOutput in the following order to know which one to ! * output to, the first one that is not null and not an empty string will be ! * used: *

        ! *
      1. LSOutput.characterStream *
      2. ! *
      3. ! * LSOutput.byteStream *
      4. ! *
      5. LSOutput.systemId *
      6. ! *
      ! *

      LSOutput objects belong to the application. The DOM ! * implementation will never modify them (though it may make copies and ! * modify the copies, if necessary). *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSOutput { /** ! * An attribute of a language and binding dependent type that represents ! * a writable stream to which 16-bit units can be output. */ public java.io.Writer getCharacterStream(); /** ! * An attribute of a language and binding dependent type that represents ! * a writable stream to which 16-bit units can be output. */ public void setCharacterStream(java.io.Writer characterStream); /** ! * An attribute of a language and binding dependent type that represents ! * a writable stream of bytes. */ public java.io.OutputStream getByteStream(); /** ! * An attribute of a language and binding dependent type that represents ! * a writable stream of bytes. */ public void setByteStream(java.io.OutputStream byteStream); /** ! * The system identifier, a URI reference [IETF RFC 2396], for this ! * output destination. ! *
      If the system ID is a relative URI reference (see section 5 in [IETF RFC 2396]), the ! * behavior is implementation dependent. */ public String getSystemId(); /** ! * The system identifier, a URI reference [IETF RFC 2396], for this ! * output destination. ! *
      If the system ID is a relative URI reference (see section 5 in [IETF RFC 2396]), the ! * behavior is implementation dependent. */ public void setSystemId(String systemId); /** ! * The character encoding to use for the output. The encoding must be a ! * string acceptable for an XML encoding declaration ([XML 1.0] section ! * 4.3.3 "Character Encoding in Entities"), it is recommended that ! * character encodings registered (as charsets) with the Internet * Assigned Numbers Authority [IANA-CHARSETS] ! * should be referred to using their registered names. */ public String getEncoding(); /** ! * The character encoding to use for the output. The encoding must be a ! * string acceptable for an XML encoding declaration ([XML 1.0] section ! * 4.3.3 "Character Encoding in Entities"), it is recommended that ! * character encodings registered (as charsets) with the Internet * Assigned Numbers Authority [IANA-CHARSETS] ! * should be referred to using their registered names. */ public void setEncoding(String encoding); --- 13,105 ---- package org.w3c.dom.ls; /** ! * This interface represents an output destination for data. ! *

      This interface allows an application to encapsulate information about ! * an output destination in a single object, which may include a URI, a byte ! * stream (possibly with a specified encoding), a base URI, and/or a ! * character stream. ! *

      The exact definitions of a byte stream and a character stream are ! * binding dependent. ! *

      The application is expected to provide objects that implement this ! * interface whenever such objects are needed. The application can either ! * provide its own objects that implement this interface, or it can use the ! * generic factory method DOMImplementationLS.createLSOutput() ! * to create objects that implement this interface. ! *

      The LSSerializer will use the LSOutput object ! * to determine where to serialize the output to. The ! * LSSerializer will look at the different outputs specified in ! * the LSOutput in the following order to know which one to ! * output to, the first one that is not null and not an empty string will be ! * used: *

        ! *
      1. LSOutput.characterStream *
      2. ! *
      3. ! * LSOutput.byteStream *
      4. ! *
      5. LSOutput.systemId *
      6. ! *
      ! *

      LSOutput objects belong to the application. The DOM ! * implementation will never modify them (though it may make copies and ! * modify the copies, if necessary). *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSOutput { /** ! * An attribute of a language and binding dependent type that represents ! * a writable stream to which 16-bit units can be output. */ public java.io.Writer getCharacterStream(); /** ! * An attribute of a language and binding dependent type that represents ! * a writable stream to which 16-bit units can be output. */ public void setCharacterStream(java.io.Writer characterStream); /** ! * An attribute of a language and binding dependent type that represents ! * a writable stream of bytes. */ public java.io.OutputStream getByteStream(); /** ! * An attribute of a language and binding dependent type that represents ! * a writable stream of bytes. */ public void setByteStream(java.io.OutputStream byteStream); /** ! * The system identifier, a URI reference [IETF RFC 2396], for this ! * output destination. ! *
      If the system ID is a relative URI reference (see section 5 in [IETF RFC 2396]), the ! * behavior is implementation dependent. */ public String getSystemId(); /** ! * The system identifier, a URI reference [IETF RFC 2396], for this ! * output destination. ! *
      If the system ID is a relative URI reference (see section 5 in [IETF RFC 2396]), the ! * behavior is implementation dependent. */ public void setSystemId(String systemId); /** ! * The character encoding to use for the output. The encoding must be a ! * string acceptable for an XML encoding declaration ([XML 1.0] section ! * 4.3.3 "Character Encoding in Entities"), it is recommended that ! * character encodings registered (as charsets) with the Internet * Assigned Numbers Authority [IANA-CHARSETS] ! * should be referred to using their registered names. */ public String getEncoding(); /** ! * The character encoding to use for the output. The encoding must be a ! * string acceptable for an XML encoding declaration ([XML 1.0] section ! * 4.3.3 "Character Encoding in Entities"), it is recommended that ! * character encodings registered (as charsets) with the Internet * Assigned Numbers Authority [IANA-CHARSETS] ! * should be referred to using their registered names. */ public void setEncoding(String encoding); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 18,173 **** import org.w3c.dom.DOMException; /** ! * An interface to an object that is able to build, or augment, a DOM tree ! * from various input sources. ! *

      LSParser provides an API for parsing XML and building the ! * corresponding DOM document structure. A LSParser instance ! * can be obtained by invoking the ! * DOMImplementationLS.createLSParser() method. *

      As specified in [DOM Level 3 Core] ! * , when a document is first made available via the LSParser: *

        ! *
      • there will ! * never be two adjacent nodes of type NODE_TEXT, and there will never be ! * empty text nodes. *
      • ! *
      • it is expected that the value and ! * nodeValue attributes of an Attr node initially ! * return the XML 1.0 * normalized value. However, if the parameters " * validate-if-schema" and " ! * datatype-normalization" are set to true, depending on the attribute normalization ! * used, the attribute values may differ from the ones obtained by the XML * 1.0 attribute normalization. If the parameters " ! * datatype-normalization" is set to false, the XML 1.0 attribute normalization is ! * guaranteed to occur, and if the attributes list does not contain ! * namespace declarations, the attributes attribute on * Element node represents the property [attributes] defined in [XML Information Set] ! * . *
      • *
      ! *

      Asynchronous LSParser objects are expected to also ! * implement the events::EventTarget interface so that event ! * listeners can be registered on asynchronous LSParser ! * objects. ! *

      Events supported by asynchronous LSParser objects are: *

      *
      load
      *
      ! * The LSParser finishes to load the document. See also the * definition of the LSLoadEvent interface.
      *
      progress
      ! *
      The ! * LSParser signals progress as data is parsed. This ! * specification does not attempt to define exactly when progress events ! * should be dispatched. That is intentionally left as ! * implementation-dependent. Here is one example of how an application might ! * dispatch progress events: Once the parser starts receiving data, a ! * progress event is dispatched to indicate that the parsing starts. From ! * there on, a progress event is dispatched for every 4096 bytes of data ! * that is received and processed. This is only one example, though, and ! * implementations can choose to dispatch progress events at any time while ! * parsing, or not dispatch them at all. See also the definition of the * LSProgressEvent interface.
      *
      ! *

      Note: All events defined in this specification use the ! * namespace URI "http://www.w3.org/2002/DOMLS". ! *

      While parsing an input source, errors are reported to the application * through the error handler (LSParser.domConfig's " ! * error-handler" parameter). This specification does in no way try to define all possible ! * errors that can occur while parsing XML, or any other markup, but some ! * common error cases are defined. The types (DOMError.type) of ! * errors and warnings defined by this specification are: *

      ! *
      * "check-character-normalization-failure" [error]
      ! *
      Raised if * the parameter " ! * check-character-normalization" is set to true and a string is encountered that fails normalization * checking.
      *
      "doctype-not-allowed" [fatal]
      ! *
      Raised if the ! * configuration parameter "disallow-doctype" is set to true * and a doctype is encountered.
      *
      "no-input-specified" [fatal]
      ! *
      ! * Raised when loading a document and no input is specified in the * LSInput object.
      *
      * "pi-base-uri-not-preserved" [warning]
      ! *
      Raised if a processing ! * instruction is encountered in a location where the base URI of the ! * processing instruction can not be preserved. One example of a case where * this warning will be raised is if the configuration parameter " ! * entities" is set to false and the following XML file is parsed: *
      !  * <!DOCTYPE root [ <!ENTITY e SYSTEM 'subdir/myentity.ent' ]> 
         * <root> &e; </root>
      ! * And subdir/myentity.ent ! * contains: ! *
      <one> <two/> </one> <?pi 3.14159?> 
         * <more/>
      *
      *
      "unbound-prefix-in-entity" [warning]
      ! *
      An ! * implementation dependent warning that may be raised if the configuration * parameter " ! * namespaces" is set to true and an unbound namespace prefix is ! * encountered in an entity's replacement text. Raising this warning is not ! * enforced since some existing parsers may not recognize unbound namespace * prefixes in the replacement text of entities.
      *
      * "unknown-character-denormalization" [fatal]
      ! *
      Raised if the ! * configuration parameter "ignore-unknown-character-denormalizations" is ! * set to false and a character is encountered for which the * processor cannot determine the normalization properties.
      *
      * "unsupported-encoding" [fatal]
      ! *
      Raised if an unsupported * encoding is encountered.
      *
      "unsupported-media-type" [fatal]
      ! *
      ! * Raised if the configuration parameter "supported-media-types-only" is set * to true and an unsupported media type is encountered.
      ! *
      ! *

      In addition to raising the defined errors and warnings, implementations ! * are expected to raise implementation specific errors and warnings for any ! * other error and warning cases such as IO errors (file not found, ! * permission denied,...), XML well-formedness errors, and so on. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSParser { /** ! * The DOMConfiguration object used when parsing an input ! * source. This DOMConfiguration is specific to the parse * operation. No parameter values from this DOMConfiguration ! * object are passed automatically to the DOMConfiguration ! * object on the Document that is created, or used, by the ! * parse operation. The DOM application is responsible for passing any ! * needed parameter values from this DOMConfiguration ! * object to the DOMConfiguration object referenced by the ! * Document object. *
      In addition to the parameters recognized in on the * DOMConfiguration interface defined in [DOM Level 3 Core] ! * , the DOMConfiguration objects for LSParser ! * add or modify the following parameters: *

      *
      * "charset-overrides-xml-encoding"
      *
      *
      *
      true
      ! *
      [optional] (default) If a higher level protocol such as HTTP [IETF RFC 2616] provides an ! * indication of the character encoding of the input stream being ! * processed, that will override any encoding specified in the XML ! * declaration or the Text declaration (see also section 4.3.3, ! * "Character Encoding in Entities", in [XML 1.0]). ! * Explicitly setting an encoding in the LSInput overrides * any encoding from the protocol.
      *
      false
      ! *
      [required] The parser ignores any character set encoding information from * higher-level protocols.
      *
      *
      "disallow-doctype"
      --- 18,173 ---- import org.w3c.dom.DOMException; /** ! * An interface to an object that is able to build, or augment, a DOM tree ! * from various input sources. ! *

      LSParser provides an API for parsing XML and building the ! * corresponding DOM document structure. A LSParser instance ! * can be obtained by invoking the ! * DOMImplementationLS.createLSParser() method. *

      As specified in [DOM Level 3 Core] ! * , when a document is first made available via the LSParser: *

        ! *
      • there will ! * never be two adjacent nodes of type NODE_TEXT, and there will never be ! * empty text nodes. *
      • ! *
      • it is expected that the value and ! * nodeValue attributes of an Attr node initially ! * return the XML 1.0 * normalized value. However, if the parameters " * validate-if-schema" and " ! * datatype-normalization" are set to true, depending on the attribute normalization ! * used, the attribute values may differ from the ones obtained by the XML * 1.0 attribute normalization. If the parameters " ! * datatype-normalization" is set to false, the XML 1.0 attribute normalization is ! * guaranteed to occur, and if the attributes list does not contain ! * namespace declarations, the attributes attribute on * Element node represents the property [attributes] defined in [XML Information Set] ! * . *
      • *
      ! *

      Asynchronous LSParser objects are expected to also ! * implement the events::EventTarget interface so that event ! * listeners can be registered on asynchronous LSParser ! * objects. ! *

      Events supported by asynchronous LSParser objects are: *

      *
      load
      *
      ! * The LSParser finishes to load the document. See also the * definition of the LSLoadEvent interface.
      *
      progress
      ! *
      The ! * LSParser signals progress as data is parsed. This ! * specification does not attempt to define exactly when progress events ! * should be dispatched. That is intentionally left as ! * implementation-dependent. Here is one example of how an application might ! * dispatch progress events: Once the parser starts receiving data, a ! * progress event is dispatched to indicate that the parsing starts. From ! * there on, a progress event is dispatched for every 4096 bytes of data ! * that is received and processed. This is only one example, though, and ! * implementations can choose to dispatch progress events at any time while ! * parsing, or not dispatch them at all. See also the definition of the * LSProgressEvent interface.
      *
      ! *

      Note: All events defined in this specification use the ! * namespace URI "http://www.w3.org/2002/DOMLS". ! *

      While parsing an input source, errors are reported to the application * through the error handler (LSParser.domConfig's " ! * error-handler" parameter). This specification does in no way try to define all possible ! * errors that can occur while parsing XML, or any other markup, but some ! * common error cases are defined. The types (DOMError.type) of ! * errors and warnings defined by this specification are: *

      ! *
      * "check-character-normalization-failure" [error]
      ! *
      Raised if * the parameter " ! * check-character-normalization" is set to true and a string is encountered that fails normalization * checking.
      *
      "doctype-not-allowed" [fatal]
      ! *
      Raised if the ! * configuration parameter "disallow-doctype" is set to true * and a doctype is encountered.
      *
      "no-input-specified" [fatal]
      ! *
      ! * Raised when loading a document and no input is specified in the * LSInput object.
      *
      * "pi-base-uri-not-preserved" [warning]
      ! *
      Raised if a processing ! * instruction is encountered in a location where the base URI of the ! * processing instruction can not be preserved. One example of a case where * this warning will be raised is if the configuration parameter " ! * entities" is set to false and the following XML file is parsed: *
      !  * <!DOCTYPE root [ <!ENTITY e SYSTEM 'subdir/myentity.ent' ]>
         * <root> &e; </root>
      ! * And subdir/myentity.ent ! * contains: ! *
      <one> <two/> </one> <?pi 3.14159?>
         * <more/>
      *
      *
      "unbound-prefix-in-entity" [warning]
      ! *
      An ! * implementation dependent warning that may be raised if the configuration * parameter " ! * namespaces" is set to true and an unbound namespace prefix is ! * encountered in an entity's replacement text. Raising this warning is not ! * enforced since some existing parsers may not recognize unbound namespace * prefixes in the replacement text of entities.
      *
      * "unknown-character-denormalization" [fatal]
      ! *
      Raised if the ! * configuration parameter "ignore-unknown-character-denormalizations" is ! * set to false and a character is encountered for which the * processor cannot determine the normalization properties.
      *
      * "unsupported-encoding" [fatal]
      ! *
      Raised if an unsupported * encoding is encountered.
      *
      "unsupported-media-type" [fatal]
      ! *
      ! * Raised if the configuration parameter "supported-media-types-only" is set * to true and an unsupported media type is encountered.
      ! *
      ! *

      In addition to raising the defined errors and warnings, implementations ! * are expected to raise implementation specific errors and warnings for any ! * other error and warning cases such as IO errors (file not found, ! * permission denied,...), XML well-formedness errors, and so on. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSParser { /** ! * The DOMConfiguration object used when parsing an input ! * source. This DOMConfiguration is specific to the parse * operation. No parameter values from this DOMConfiguration ! * object are passed automatically to the DOMConfiguration ! * object on the Document that is created, or used, by the ! * parse operation. The DOM application is responsible for passing any ! * needed parameter values from this DOMConfiguration ! * object to the DOMConfiguration object referenced by the ! * Document object. *
      In addition to the parameters recognized in on the * DOMConfiguration interface defined in [DOM Level 3 Core] ! * , the DOMConfiguration objects for LSParser ! * add or modify the following parameters: *

      *
      * "charset-overrides-xml-encoding"
      *
      *
      *
      true
      ! *
      [optional] (default) If a higher level protocol such as HTTP [IETF RFC 2616] provides an ! * indication of the character encoding of the input stream being ! * processed, that will override any encoding specified in the XML ! * declaration or the Text declaration (see also section 4.3.3, ! * "Character Encoding in Entities", in [XML 1.0]). ! * Explicitly setting an encoding in the LSInput overrides * any encoding from the protocol.
      *
      false
      ! *
      [required] The parser ignores any character set encoding information from * higher-level protocols.
      *
      *
      "disallow-doctype"
      *************** public interface LSParser { *** 175,182 **** *
      *
      * true
      ! *
      [optional] Throw a fatal "doctype-not-allowed" error if a doctype node is found while parsing the document. This is ! * useful when dealing with things like SOAP envelopes where doctype * nodes are not allowed.
      *
      false
      *
      [required] (default) Allow doctype nodes in the document.
      --- 175,182 ---- *
      *
      * true
      ! *
      [optional] Throw a fatal "doctype-not-allowed" error if a doctype node is found while parsing the document. This is ! * useful when dealing with things like SOAP envelopes where doctype * nodes are not allowed.
      *
      false
      *
      [required] (default) Allow doctype nodes in the document.
      *************** public interface LSParser { *** 187,207 **** *
      *
      * true
      ! *
      [required] (default) If, while verifying full normalization when [XML 1.1] is ! * supported, a processor encounters characters for which it cannot ! * determine the normalization properties, then the processor will ! * ignore any possible denormalizations caused by these characters. * This parameter is ignored for [XML 1.0].
      *
      * false
      ! *
      [optional] Report an fatal "unknown-character-denormalization" error if a character is encountered for which the processor cannot * determine the normalization properties.
      *
      *
      "infoset"
      ! *
      See ! * the definition of DOMConfiguration for a description of * this parameter. Unlike in [DOM Level 3 Core] ! * , this parameter will default to true for * LSParser.
      *
      "namespaces"
      *
      --- 187,207 ---- *
      *
      * true
      ! *
      [required] (default) If, while verifying full normalization when [XML 1.1] is ! * supported, a processor encounters characters for which it cannot ! * determine the normalization properties, then the processor will ! * ignore any possible denormalizations caused by these characters. * This parameter is ignored for [XML 1.0].
      *
      * false
      ! *
      [optional] Report an fatal "unknown-character-denormalization" error if a character is encountered for which the processor cannot * determine the normalization properties.
      *
      *
      "infoset"
      ! *
      See ! * the definition of DOMConfiguration for a description of * this parameter. Unlike in [DOM Level 3 Core] ! * , this parameter will default to true for * LSParser.
      *
      "namespaces"
      *
      *************** public interface LSParser { *** 215,255 **** *
      *
      * "resource-resolver"
      ! *
      [required] A reference to a LSResourceResolver object, or null. If ! * the value of this parameter is not null when an external resource ! * (such as an external XML entity or an XML schema location) is ! * encountered, the implementation will request that the ! * LSResourceResolver referenced in this parameter resolves * the resource.
      *
      "supported-media-types-only"
      *
      *
      *
      * true
      ! *
      [optional] Check that the media type of the parsed resource is a supported media ! * type. If an unsupported media type is encountered, a fatal error of ! * type "unsupported-media-type" will be raised. The media types defined in [IETF RFC 3023] must always * be accepted.
      *
      false
      *
      [required] (default) Accept any media type.
      *
      *
      "validate"
      ! *
      See the definition of ! * DOMConfiguration for a description of this parameter. * Unlike in [DOM Level 3 Core] ! * , the processing of the internal subset is always accomplished, even * if this parameter is set to false.
      *
      * "validate-if-schema"
      ! *
      See the definition of ! * DOMConfiguration for a description of this parameter. * Unlike in [DOM Level 3 Core] ! * , the processing of the internal subset is always accomplished, even * if this parameter is set to false.
      *
      * "well-formed"
      ! *
      See the definition of ! * DOMConfiguration for a description of this parameter. * Unlike in [DOM Level 3 Core] * , this parameter cannot be set to false.
      *
      --- 215,255 ---- *
      *
      * "resource-resolver"
      ! *
      [required] A reference to a LSResourceResolver object, or null. If ! * the value of this parameter is not null when an external resource ! * (such as an external XML entity or an XML schema location) is ! * encountered, the implementation will request that the ! * LSResourceResolver referenced in this parameter resolves * the resource.
      *
      "supported-media-types-only"
      *
      *
      *
      * true
      ! *
      [optional] Check that the media type of the parsed resource is a supported media ! * type. If an unsupported media type is encountered, a fatal error of ! * type "unsupported-media-type" will be raised. The media types defined in [IETF RFC 3023] must always * be accepted.
      *
      false
      *
      [required] (default) Accept any media type.
      *
      *
      "validate"
      ! *
      See the definition of ! * DOMConfiguration for a description of this parameter. * Unlike in [DOM Level 3 Core] ! * , the processing of the internal subset is always accomplished, even * if this parameter is set to false.
      *
      * "validate-if-schema"
      ! *
      See the definition of ! * DOMConfiguration for a description of this parameter. * Unlike in [DOM Level 3 Core] ! * , the processing of the internal subset is always accomplished, even * if this parameter is set to false.
      *
      * "well-formed"
      ! *
      See the definition of ! * DOMConfiguration for a description of this parameter. * Unlike in [DOM Level 3 Core] * , this parameter cannot be set to false.
      *
      *************** public interface LSParser { *** 257,465 **** public DOMConfiguration getDomConfig(); /** ! * When a filter is provided, the implementation will call out to the ! * filter as it is constructing the DOM tree structure. The filter can ! * choose to remove elements from the document being constructed, or to ! * terminate the parsing early. ! *
      The filter is invoked after the operations requested by the ! * DOMConfiguration parameters have been applied. For * example, if " ! * validate" is set to true, the validation is done before invoking the ! * filter. */ public LSParserFilter getFilter(); /** ! * When a filter is provided, the implementation will call out to the ! * filter as it is constructing the DOM tree structure. The filter can ! * choose to remove elements from the document being constructed, or to ! * terminate the parsing early. ! *
      The filter is invoked after the operations requested by the ! * DOMConfiguration parameters have been applied. For * example, if " ! * validate" is set to true, the validation is done before invoking the ! * filter. */ public void setFilter(LSParserFilter filter); /** ! * true if the LSParser is asynchronous, ! * false if it is synchronous. */ public boolean getAsync(); /** ! * true if the LSParser is currently busy ! * loading a document, otherwise false. */ public boolean getBusy(); /** ! * Parse an XML document from a resource identified by a * LSInput. ! * @param input The LSInput from which the source of the ! * document is to be read. ! * @return If the LSParser is a synchronous ! * LSParser, the newly created and populated ! * Document is returned. If the LSParser is ! * asynchronous, null is returned since the document ! * object may not yet be constructed when this method returns. * @exception DOMException ! * INVALID_STATE_ERR: Raised if the LSParser's ! * LSParser.busy attribute is true. * @exception LSException ! * PARSE_ERR: Raised if the LSParser was unable to load ! * the XML document. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ public Document parse(LSInput input) throws DOMException, LSException; /** ! * Parse an XML document from a location identified by a URI reference [IETF RFC 2396]. If the URI ! * contains a fragment identifier (see section 4.1 in [IETF RFC 2396]), the ! * behavior is not defined by this specification, future versions of ! * this specification may define the behavior. * @param uri The location of the XML document to be read. ! * @return If the LSParser is a synchronous ! * LSParser, the newly created and populated ! * Document is returned, or null if an error ! * occured. If the LSParser is asynchronous, ! * null is returned since the document object may not yet ! * be constructed when this method returns. * @exception DOMException ! * INVALID_STATE_ERR: Raised if the LSParser.busy ! * attribute is true. * @exception LSException ! * PARSE_ERR: Raised if the LSParser was unable to load ! * the XML document. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ public Document parseURI(String uri) throws DOMException, LSException; // ACTION_TYPES /** ! * Append the result of the parse operation as children of the context ! * node. For this action to work, the context node must be an ! * Element or a DocumentFragment. */ public static final short ACTION_APPEND_AS_CHILDREN = 1; /** ! * Replace all the children of the context node with the result of the ! * parse operation. For this action to work, the context node must be an ! * Element, a Document, or a ! * DocumentFragment. */ public static final short ACTION_REPLACE_CHILDREN = 2; /** ! * Insert the result of the parse operation as the immediately preceding ! * sibling of the context node. For this action to work the context ! * node's parent must be an Element or a ! * DocumentFragment. */ public static final short ACTION_INSERT_BEFORE = 3; /** ! * Insert the result of the parse operation as the immediately following ! * sibling of the context node. For this action to work the context ! * node's parent must be an Element or a ! * DocumentFragment. */ public static final short ACTION_INSERT_AFTER = 4; /** ! * Replace the context node with the result of the parse operation. For ! * this action to work, the context node must have a parent, and the ! * parent must be an Element or a ! * DocumentFragment. */ public static final short ACTION_REPLACE = 5; /** ! * Parse an XML fragment from a resource identified by a ! * LSInput and insert the content into an existing document ! * at the position specified with the context and ! * action arguments. When parsing the input stream, the ! * context node (or its parent, depending on where the result will be ! * inserted) is used for resolving unbound namespace prefixes. The ! * context node's ownerDocument node (or the node itself if ! * the node of type DOCUMENT_NODE) is used to resolve ! * default attributes and entity references. ! *
      As the new data is inserted into the document, at least one ! * mutation event is fired per new immediate child or sibling of the ! * context node. ! *
      If the context node is a Document node and the action ! * is ACTION_REPLACE_CHILDREN, then the document that is ! * passed as the context node will be changed such that its ! * xmlEncoding, documentURI, ! * xmlVersion, inputEncoding, ! * xmlStandalone, and all other such attributes are set to ! * what they would be set to if the input source was parsed using ! * LSParser.parse(). ! *
      This method is always synchronous, even if the ! * LSParser is asynchronous (LSParser.async is ! * true). ! *
      If an error occurs while parsing, the caller is notified through * the ErrorHandler instance associated with the " ! * error-handler" parameter of the DOMConfiguration. ! *
      When calling parseWithContext, the values of the ! * following configuration parameters will be ignored and their default * values will always be used instead: " * validate", " * validate-if-schema", and " ! * element-content-whitespace". Other parameters will be treated normally, and the parser is expected ! * to call the LSParserFilter just as if a whole document ! * was parsed. ! * @param input The LSInput from which the source document ! * is to be read. The source document must be an XML fragment, i.e. ! * anything except a complete XML document (except in the case where ! * the context node of type DOCUMENT_NODE, and the action ! * is ACTION_REPLACE_CHILDREN), a DOCTYPE (internal ! * subset), entity declaration(s), notation declaration(s), or XML or ! * text declaration(s). ! * @param contextArg The node that is used as the context for the data ! * that is being parsed. This node must be a Document ! * node, a DocumentFragment node, or a node of a type ! * that is allowed as a child of an Element node, e.g. it ! * cannot be an Attribute node. ! * @param action This parameter describes which action should be taken ! * between the new set of nodes being inserted and the existing ! * children of the context node. The set of possible actions is ! * defined in ACTION_TYPES above. ! * @return Return the node that is the result of the parse operation. If ! * the result is more than one top-level node, the first one is ! * returned. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if the content cannot replace, be ! * inserted before, after, or as a child of the context node (see also * Node.insertBefore or Node.replaceChild in [DOM Level 3 Core] * ). ! *
      NOT_SUPPORTED_ERR: Raised if the LSParser doesn't ! * support this method, or if the context node is of type ! * Document and the DOM implementation doesn't support ! * the replacement of the DocumentType child or ! * Element child. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if the context node is a ! * read only node and the content is being appended to its child list, ! * or if the parent node of the context node is read only node and the * content is being inserted in its child list. ! *
      INVALID_STATE_ERR: Raised if the LSParser.busy ! * attribute is true. * @exception LSException ! * PARSE_ERR: Raised if the LSParser was unable to load ! * the XML fragment. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ ! public Node parseWithContext(LSInput input, ! Node contextArg, short action) throws DOMException, LSException; /** ! * Abort the loading of the document that is currently being loaded by ! * the LSParser. If the LSParser is currently ! * not busy, a call to this method does nothing. */ public void abort(); --- 257,465 ---- public DOMConfiguration getDomConfig(); /** ! * When a filter is provided, the implementation will call out to the ! * filter as it is constructing the DOM tree structure. The filter can ! * choose to remove elements from the document being constructed, or to ! * terminate the parsing early. ! *
      The filter is invoked after the operations requested by the ! * DOMConfiguration parameters have been applied. For * example, if " ! * validate" is set to true, the validation is done before invoking the ! * filter. */ public LSParserFilter getFilter(); /** ! * When a filter is provided, the implementation will call out to the ! * filter as it is constructing the DOM tree structure. The filter can ! * choose to remove elements from the document being constructed, or to ! * terminate the parsing early. ! *
      The filter is invoked after the operations requested by the ! * DOMConfiguration parameters have been applied. For * example, if " ! * validate" is set to true, the validation is done before invoking the ! * filter. */ public void setFilter(LSParserFilter filter); /** ! * true if the LSParser is asynchronous, ! * false if it is synchronous. */ public boolean getAsync(); /** ! * true if the LSParser is currently busy ! * loading a document, otherwise false. */ public boolean getBusy(); /** ! * Parse an XML document from a resource identified by a * LSInput. ! * @param input The LSInput from which the source of the ! * document is to be read. ! * @return If the LSParser is a synchronous ! * LSParser, the newly created and populated ! * Document is returned. If the LSParser is ! * asynchronous, null is returned since the document ! * object may not yet be constructed when this method returns. * @exception DOMException ! * INVALID_STATE_ERR: Raised if the LSParser's ! * LSParser.busy attribute is true. * @exception LSException ! * PARSE_ERR: Raised if the LSParser was unable to load ! * the XML document. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ public Document parse(LSInput input) throws DOMException, LSException; /** ! * Parse an XML document from a location identified by a URI reference [IETF RFC 2396]. If the URI ! * contains a fragment identifier (see section 4.1 in [IETF RFC 2396]), the ! * behavior is not defined by this specification, future versions of ! * this specification may define the behavior. * @param uri The location of the XML document to be read. ! * @return If the LSParser is a synchronous ! * LSParser, the newly created and populated ! * Document is returned, or null if an error ! * occured. If the LSParser is asynchronous, ! * null is returned since the document object may not yet ! * be constructed when this method returns. * @exception DOMException ! * INVALID_STATE_ERR: Raised if the LSParser.busy ! * attribute is true. * @exception LSException ! * PARSE_ERR: Raised if the LSParser was unable to load ! * the XML document. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ public Document parseURI(String uri) throws DOMException, LSException; // ACTION_TYPES /** ! * Append the result of the parse operation as children of the context ! * node. For this action to work, the context node must be an ! * Element or a DocumentFragment. */ public static final short ACTION_APPEND_AS_CHILDREN = 1; /** ! * Replace all the children of the context node with the result of the ! * parse operation. For this action to work, the context node must be an ! * Element, a Document, or a ! * DocumentFragment. */ public static final short ACTION_REPLACE_CHILDREN = 2; /** ! * Insert the result of the parse operation as the immediately preceding ! * sibling of the context node. For this action to work the context ! * node's parent must be an Element or a ! * DocumentFragment. */ public static final short ACTION_INSERT_BEFORE = 3; /** ! * Insert the result of the parse operation as the immediately following ! * sibling of the context node. For this action to work the context ! * node's parent must be an Element or a ! * DocumentFragment. */ public static final short ACTION_INSERT_AFTER = 4; /** ! * Replace the context node with the result of the parse operation. For ! * this action to work, the context node must have a parent, and the ! * parent must be an Element or a ! * DocumentFragment. */ public static final short ACTION_REPLACE = 5; /** ! * Parse an XML fragment from a resource identified by a ! * LSInput and insert the content into an existing document ! * at the position specified with the context and ! * action arguments. When parsing the input stream, the ! * context node (or its parent, depending on where the result will be ! * inserted) is used for resolving unbound namespace prefixes. The ! * context node's ownerDocument node (or the node itself if ! * the node of type DOCUMENT_NODE) is used to resolve ! * default attributes and entity references. ! *
      As the new data is inserted into the document, at least one ! * mutation event is fired per new immediate child or sibling of the ! * context node. ! *
      If the context node is a Document node and the action ! * is ACTION_REPLACE_CHILDREN, then the document that is ! * passed as the context node will be changed such that its ! * xmlEncoding, documentURI, ! * xmlVersion, inputEncoding, ! * xmlStandalone, and all other such attributes are set to ! * what they would be set to if the input source was parsed using ! * LSParser.parse(). ! *
      This method is always synchronous, even if the ! * LSParser is asynchronous (LSParser.async is ! * true). ! *
      If an error occurs while parsing, the caller is notified through * the ErrorHandler instance associated with the " ! * error-handler" parameter of the DOMConfiguration. ! *
      When calling parseWithContext, the values of the ! * following configuration parameters will be ignored and their default * values will always be used instead: " * validate", " * validate-if-schema", and " ! * element-content-whitespace". Other parameters will be treated normally, and the parser is expected ! * to call the LSParserFilter just as if a whole document ! * was parsed. ! * @param input The LSInput from which the source document ! * is to be read. The source document must be an XML fragment, i.e. ! * anything except a complete XML document (except in the case where ! * the context node of type DOCUMENT_NODE, and the action ! * is ACTION_REPLACE_CHILDREN), a DOCTYPE (internal ! * subset), entity declaration(s), notation declaration(s), or XML or ! * text declaration(s). ! * @param contextArg The node that is used as the context for the data ! * that is being parsed. This node must be a Document ! * node, a DocumentFragment node, or a node of a type ! * that is allowed as a child of an Element node, e.g. it ! * cannot be an Attribute node. ! * @param action This parameter describes which action should be taken ! * between the new set of nodes being inserted and the existing ! * children of the context node. The set of possible actions is ! * defined in ACTION_TYPES above. ! * @return Return the node that is the result of the parse operation. If ! * the result is more than one top-level node, the first one is ! * returned. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if the content cannot replace, be ! * inserted before, after, or as a child of the context node (see also * Node.insertBefore or Node.replaceChild in [DOM Level 3 Core] * ). ! *
      NOT_SUPPORTED_ERR: Raised if the LSParser doesn't ! * support this method, or if the context node is of type ! * Document and the DOM implementation doesn't support ! * the replacement of the DocumentType child or ! * Element child. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if the context node is a ! * read only node and the content is being appended to its child list, ! * or if the parent node of the context node is read only node and the * content is being inserted in its child list. ! *
      INVALID_STATE_ERR: Raised if the LSParser.busy ! * attribute is true. * @exception LSException ! * PARSE_ERR: Raised if the LSParser was unable to load ! * the XML fragment. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ ! public Node parseWithContext(LSInput input, ! Node contextArg, short action) throws DOMException, LSException; /** ! * Abort the loading of the document that is currently being loaded by ! * the LSParser. If the LSParser is currently ! * not busy, a call to this method does nothing. */ public void abort(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 16,47 **** import org.w3c.dom.Element; /** ! * LSParserFilters provide applications the ability to examine ! * nodes as they are being constructed while parsing. As each node is ! * examined, it may be modified or removed, or the entire parse may be ! * terminated early. ! *

      At the time any of the filter methods are called by the parser, the ! * owner Document and DOMImplementation objects exist and are accessible. ! * The document element is never passed to the LSParserFilter ! * methods, i.e. it is not possible to filter out the document element. ! * Document, DocumentType, Notation, ! * Entity, and Attr nodes are never passed to the ! * acceptNode method on the filter. The child nodes of an ! * EntityReference node are passed to the filter if the * parameter " * entities" is set to false. Note that, as described by the parameter " ! * entities", unexpanded entity reference nodes are never discarded and are always ! * passed to the filter. ! *

      All validity checking while parsing a document occurs on the source ! * document as it appears on the input stream, not on the DOM document as it ! * is built in memory. With filters, the document in memory may be a subset ! * of the document on the stream, and its validity may have been affected by ! * the filtering. ! *

      All default attributes must be present on elements when the elements ! * are passed to the filter methods. All other default content must be ! * passed to the filter methods. ! *

      DOM applications must not raise exceptions in a filter. The effect of ! * throwing exceptions from a filter is DOM implementation dependent. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ --- 16,47 ---- import org.w3c.dom.Element; /** ! * LSParserFilters provide applications the ability to examine ! * nodes as they are being constructed while parsing. As each node is ! * examined, it may be modified or removed, or the entire parse may be ! * terminated early. ! *

      At the time any of the filter methods are called by the parser, the ! * owner Document and DOMImplementation objects exist and are accessible. ! * The document element is never passed to the LSParserFilter ! * methods, i.e. it is not possible to filter out the document element. ! * Document, DocumentType, Notation, ! * Entity, and Attr nodes are never passed to the ! * acceptNode method on the filter. The child nodes of an ! * EntityReference node are passed to the filter if the * parameter " * entities" is set to false. Note that, as described by the parameter " ! * entities", unexpanded entity reference nodes are never discarded and are always ! * passed to the filter. ! *

      All validity checking while parsing a document occurs on the source ! * document as it appears on the input stream, not on the DOM document as it ! * is built in memory. With filters, the document in memory may be a subset ! * of the document on the stream, and its validity may have been affected by ! * the filtering. ! *

      All default attributes must be present on elements when the elements ! * are passed to the filter methods. All other default content must be ! * passed to the filter methods. ! *

      DOM applications must not raise exceptions in a filter. The effect of ! * throwing exceptions from a filter is DOM implementation dependent. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ *************** public interface LSParserFilter { *** 56,171 **** */ public static final short FILTER_REJECT = 2; /** ! * Skip this single node. The children of this node will still be ! * considered. */ public static final short FILTER_SKIP = 3; /** ! * Interrupt the normal processing of the document. */ public static final short FILTER_INTERRUPT = 4; /** ! * The parser will call this method after each Element start ! * tag has been scanned, but before the remainder of the ! * Element is processed. The intent is to allow the ! * element, including any children, to be efficiently skipped. Note that ! * only element nodes are passed to the startElement ! * function. ! *
      The element node passed to startElement for filtering ! * will include all of the Element's attributes, but none of the ! * children nodes. The Element may not yet be in place in the document ! * being constructed (it may not have a parent node.) ! *
      A startElement filter function may access or change ! * the attributes for the Element. Changing Namespace declarations will * have no effect on namespace resolution by the parser. ! *
      For efficiency, the Element node passed to the filter may not be ! * the same one as is actually placed in the tree if the node is ! * accepted. And the actual node (node object identity) may be reused * during the process of reading in and filtering a document. ! * @param elementArg The newly encountered element. At the time this ! * method is called, the element is incomplete - it will have its ! * attributes, but no children. ! * @return *

        ! *
      • FILTER_ACCEPT if the Element should ! * be included in the DOM document being built. *
      • ! *
      • ! * FILTER_REJECT if the Element and all of ! * its children should be rejected. *
      • ! *
      • FILTER_SKIP if the ! * Element should be skipped. All of its children are ! * inserted in place of the skipped Element node. *
      • ! *
      • ! * FILTER_INTERRUPT if the filter wants to stop the ! * processing of the document. Interrupting the processing of the ! * document does no longer guarantee that the resulting DOM tree is ! * XML well-formed. The Element is rejected. *
      • ! *
      Returning ! * any other values will result in unspecified behavior. */ public short startElement(Element elementArg); /** ! * This method will be called by the parser at the completion of the ! * parsing of each node. The node and all of its descendants will exist ! * and be complete. The parent node will also exist, although it may be ! * incomplete, i.e. it may have additional children that have not yet * been parsed. Attribute nodes are never passed to this function. ! *
      From within this method, the new node may be freely modified - ! * children may be added or removed, text nodes modified, etc. The state ! * of the rest of the document outside this node is not defined, and the ! * affect of any attempt to navigate to, or to modify any other part of ! * the document is undefined. ! *
      For validating parsers, the checks are made on the original ! * document, before any modification by the filter. No validity checks * are made on any document modifications made by the filter. ! *
      If this new node is rejected, the parser might reuse the new node * and any of its descendants. ! * @param nodeArg The newly constructed element. At the time this method ! * is called, the element is complete - it has all of its children ! * (and their children, recursively) and attributes, and is attached ! * as a child to its parent. ! * @return *
        ! *
      • FILTER_ACCEPT if this Node should ! * be included in the DOM document being built. *
      • ! *
      • ! * FILTER_REJECT if the Node and all of its ! * children should be rejected. *
      • ! *
      • FILTER_SKIP if the ! * Node should be skipped and the Node ! * should be replaced by all the children of the Node. *
      • ! *
      • ! * FILTER_INTERRUPT if the filter wants to stop the ! * processing of the document. Interrupting the processing of the ! * document does no longer guarantee that the resulting DOM tree is ! * XML well-formed. The Node is accepted and will be the ! * last completely parsed node. *
      • *
      */ public short acceptNode(Node nodeArg); /** ! * Tells the LSParser what types of nodes to show to the ! * method LSParserFilter.acceptNode. If a node is not shown ! * to the filter using this attribute, it is automatically included in ! * the DOM document being built. See NodeFilter for * definition of the constants. The constants SHOW_ATTRIBUTE ! * , SHOW_DOCUMENT, SHOW_DOCUMENT_TYPE, ! * SHOW_NOTATION, SHOW_ENTITY, and ! * SHOW_DOCUMENT_FRAGMENT are meaningless here. Those nodes ! * will never be passed to LSParserFilter.acceptNode. *
      The constants used here are defined in [DOM Level 2 Traversal and Range] ! * . */ public int getWhatToShow(); --- 56,171 ---- */ public static final short FILTER_REJECT = 2; /** ! * Skip this single node. The children of this node will still be ! * considered. */ public static final short FILTER_SKIP = 3; /** ! * Interrupt the normal processing of the document. */ public static final short FILTER_INTERRUPT = 4; /** ! * The parser will call this method after each Element start ! * tag has been scanned, but before the remainder of the ! * Element is processed. The intent is to allow the ! * element, including any children, to be efficiently skipped. Note that ! * only element nodes are passed to the startElement ! * function. ! *
      The element node passed to startElement for filtering ! * will include all of the Element's attributes, but none of the ! * children nodes. The Element may not yet be in place in the document ! * being constructed (it may not have a parent node.) ! *
      A startElement filter function may access or change ! * the attributes for the Element. Changing Namespace declarations will * have no effect on namespace resolution by the parser. ! *
      For efficiency, the Element node passed to the filter may not be ! * the same one as is actually placed in the tree if the node is ! * accepted. And the actual node (node object identity) may be reused * during the process of reading in and filtering a document. ! * @param elementArg The newly encountered element. At the time this ! * method is called, the element is incomplete - it will have its ! * attributes, but no children. ! * @return *
        ! *
      • FILTER_ACCEPT if the Element should ! * be included in the DOM document being built. *
      • ! *
      • ! * FILTER_REJECT if the Element and all of ! * its children should be rejected. *
      • ! *
      • FILTER_SKIP if the ! * Element should be skipped. All of its children are ! * inserted in place of the skipped Element node. *
      • ! *
      • ! * FILTER_INTERRUPT if the filter wants to stop the ! * processing of the document. Interrupting the processing of the ! * document does no longer guarantee that the resulting DOM tree is ! * XML well-formed. The Element is rejected. *
      • ! *
      Returning ! * any other values will result in unspecified behavior. */ public short startElement(Element elementArg); /** ! * This method will be called by the parser at the completion of the ! * parsing of each node. The node and all of its descendants will exist ! * and be complete. The parent node will also exist, although it may be ! * incomplete, i.e. it may have additional children that have not yet * been parsed. Attribute nodes are never passed to this function. ! *
      From within this method, the new node may be freely modified - ! * children may be added or removed, text nodes modified, etc. The state ! * of the rest of the document outside this node is not defined, and the ! * affect of any attempt to navigate to, or to modify any other part of ! * the document is undefined. ! *
      For validating parsers, the checks are made on the original ! * document, before any modification by the filter. No validity checks * are made on any document modifications made by the filter. ! *
      If this new node is rejected, the parser might reuse the new node * and any of its descendants. ! * @param nodeArg The newly constructed element. At the time this method ! * is called, the element is complete - it has all of its children ! * (and their children, recursively) and attributes, and is attached ! * as a child to its parent. ! * @return *
        ! *
      • FILTER_ACCEPT if this Node should ! * be included in the DOM document being built. *
      • ! *
      • ! * FILTER_REJECT if the Node and all of its ! * children should be rejected. *
      • ! *
      • FILTER_SKIP if the ! * Node should be skipped and the Node ! * should be replaced by all the children of the Node. *
      • ! *
      • ! * FILTER_INTERRUPT if the filter wants to stop the ! * processing of the document. Interrupting the processing of the ! * document does no longer guarantee that the resulting DOM tree is ! * XML well-formed. The Node is accepted and will be the ! * last completely parsed node. *
      • *
      */ public short acceptNode(Node nodeArg); /** ! * Tells the LSParser what types of nodes to show to the ! * method LSParserFilter.acceptNode. If a node is not shown ! * to the filter using this attribute, it is automatically included in ! * the DOM document being built. See NodeFilter for * definition of the constants. The constants SHOW_ATTRIBUTE ! * , SHOW_DOCUMENT, SHOW_DOCUMENT_TYPE, ! * SHOW_NOTATION, SHOW_ENTITY, and ! * SHOW_DOCUMENT_FRAGMENT are meaningless here. Those nodes ! * will never be passed to LSParserFilter.acceptNode. *
      The constants used here are defined in [DOM Level 2 Traversal and Range] ! * . */ public int getWhatToShow(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.ls; *** 15,27 **** import org.w3c.dom.events.Event; /** ! * This interface represents a progress event object that notifies the ! * application about progress as a document is parsed. It extends the * Event interface defined in [DOM Level 3 Events] ! * . ! *

      The units used for the attributes position and ! * totalSize are not specified and can be implementation and ! * input dependent. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ --- 15,27 ---- import org.w3c.dom.events.Event; /** ! * This interface represents a progress event object that notifies the ! * application about progress as a document is parsed. It extends the * Event interface defined in [DOM Level 3 Events] ! * . ! *

      The units used for the attributes position and ! * totalSize are not specified and can be implementation and ! * input dependent. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ *************** public interface LSProgressEvent extends *** 32,46 **** public LSInput getInput(); /** ! * The current position in the input source, including all external * entities and other resources that have been read. */ public int getPosition(); /** ! * The total size of the document including all external resources, this ! * number might change as a document is being parsed if references to ! * more external resources are seen. A value of 0 is * returned if the total size cannot be determined or estimated. */ public int getTotalSize(); --- 32,46 ---- public LSInput getInput(); /** ! * The current position in the input source, including all external * entities and other resources that have been read. */ public int getPosition(); /** ! * The total size of the document including all external resources, this ! * number might change as a document is being parsed if references to ! * more external resources are seen. A value of 0 is * returned if the total size cannot be determined or estimated. */ public int getTotalSize(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java Tue Jan 11 19:46:05 2011 *************** *** 13,81 **** package org.w3c.dom.ls; /** ! * LSResourceResolver provides a way for applications to ! * redirect references to external resources. ! *

      Applications needing to implement custom handling for external ! * resources can implement this interface and register their implementation ! * by setting the "resource-resolver" parameter of ! * DOMConfiguration objects attached to LSParser ! * and LSSerializer. It can also be register on ! * DOMConfiguration objects attached to Document ! * if the "LS" feature is supported. ! *

      The LSParser will then allow the application to intercept ! * any external entities, including the external DTD subset and external ! * parameter entities, before including them. The top-level document entity ! * is never passed to the resolveResource method. ! *

      Many DOM applications will not need to implement this interface, but it ! * will be especially useful for applications that build XML documents from ! * databases or other specialized input sources, or for applications that ! * use URNs. ! *

      Note: LSResourceResolver is based on the SAX2 [SAX] EntityResolver ! * interface. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSResourceResolver { /** ! * Allow the application to resolve external resources. ! *
      The LSParser will call this method before opening any ! * external resource, including the external DTD subset, external ! * entities referenced within the DTD, and external entities referenced ! * within the document element (however, the top-level document entity ! * is not passed to this method). The application may then request that ! * the LSParser resolve the external resource itself, that ! * it use an alternative URI, or that it use an entirely different input ! * source. ! *
      Application writers can use this method to redirect external ! * system identifiers to secure and/or local URI, to look up public ! * identifiers in a catalogue, or to read an entity from a database or ! * other input source (including, for example, a dialog box). ! * @param type The type of the resource being resolved. For XML [XML 1.0] resources ! * (i.e. entities), applications must use the value * "http://www.w3.org/TR/REC-xml". For XML Schema [XML Schema Part 1] ! * , applications must use the value ! * "http://www.w3.org/2001/XMLSchema". Other types of ! * resources are outside the scope of this specification and therefore ! * should recommend an absolute URI in order to use this method. ! * @param namespaceURI The namespace of the resource being resolved, * e.g. the target namespace of the XML Schema [XML Schema Part 1] ! * when resolving XML Schema resources. ! * @param publicId The public identifier of the external entity being ! * referenced, or null if no public identifier was ! * supplied or if the resource is not an entity. ! * @param systemId The system identifier, a URI reference [IETF RFC 2396], of the ! * external resource being referenced, or null if no ! * system identifier was supplied. ! * @param baseURI The absolute base URI of the resource being parsed, or ! * null if there is no base URI. ! * @return A LSInput object describing the new input ! * source, or null to request that the parser open a ! * regular URI connection to the resource. */ ! public LSInput resolveResource(String type, ! String namespaceURI, ! String publicId, ! String systemId, String baseURI); } --- 13,81 ---- package org.w3c.dom.ls; /** ! * LSResourceResolver provides a way for applications to ! * redirect references to external resources. ! *

      Applications needing to implement custom handling for external ! * resources can implement this interface and register their implementation ! * by setting the "resource-resolver" parameter of ! * DOMConfiguration objects attached to LSParser ! * and LSSerializer. It can also be register on ! * DOMConfiguration objects attached to Document ! * if the "LS" feature is supported. ! *

      The LSParser will then allow the application to intercept ! * any external entities, including the external DTD subset and external ! * parameter entities, before including them. The top-level document entity ! * is never passed to the resolveResource method. ! *

      Many DOM applications will not need to implement this interface, but it ! * will be especially useful for applications that build XML documents from ! * databases or other specialized input sources, or for applications that ! * use URNs. ! *

      Note: LSResourceResolver is based on the SAX2 [SAX] EntityResolver ! * interface. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSResourceResolver { /** ! * Allow the application to resolve external resources. ! *
      The LSParser will call this method before opening any ! * external resource, including the external DTD subset, external ! * entities referenced within the DTD, and external entities referenced ! * within the document element (however, the top-level document entity ! * is not passed to this method). The application may then request that ! * the LSParser resolve the external resource itself, that ! * it use an alternative URI, or that it use an entirely different input ! * source. ! *
      Application writers can use this method to redirect external ! * system identifiers to secure and/or local URI, to look up public ! * identifiers in a catalogue, or to read an entity from a database or ! * other input source (including, for example, a dialog box). ! * @param type The type of the resource being resolved. For XML [XML 1.0] resources ! * (i.e. entities), applications must use the value * "http://www.w3.org/TR/REC-xml". For XML Schema [XML Schema Part 1] ! * , applications must use the value ! * "http://www.w3.org/2001/XMLSchema". Other types of ! * resources are outside the scope of this specification and therefore ! * should recommend an absolute URI in order to use this method. ! * @param namespaceURI The namespace of the resource being resolved, * e.g. the target namespace of the XML Schema [XML Schema Part 1] ! * when resolving XML Schema resources. ! * @param publicId The public identifier of the external entity being ! * referenced, or null if no public identifier was ! * supplied or if the resource is not an entity. ! * @param systemId The system identifier, a URI reference [IETF RFC 2396], of the ! * external resource being referenced, or null if no ! * system identifier was supplied. ! * @param baseURI The absolute base URI of the resource being parsed, or ! * null if there is no base URI. ! * @return A LSInput object describing the new input ! * source, or null to request that the parser open a ! * regular URI connection to the resource. */ ! public LSInput resolveResource(String type, ! String namespaceURI, ! String publicId, ! String systemId, String baseURI); } diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 17,203 **** import org.w3c.dom.DOMException; /** ! * A LSSerializer provides an API for serializing (writing) a ! * DOM document out into XML. The XML data is written to a string or an ! * output stream. Any changes or fixups made during the serialization affect ! * only the serialized data. The Document object and its ! * children are never altered by the serialization operation. *

      During serialization of XML data, namespace fixup is done as defined in [DOM Level 3 Core] * , Appendix B. [DOM Level 2 Core] ! * allows empty strings as a real namespace URI. If the ! * namespaceURI of a Node is empty string, the ! * serialization will treat them as null, ignoring the prefix ! * if any. ! *

      LSSerializer accepts any node type for serialization. For ! * nodes of type Document or Entity, well-formed ! * XML will be created when possible (well-formedness is guaranteed if the ! * document or entity comes from a parse operation and is unchanged since it ! * was created). The serialized output for these node types is either as a ! * XML document or an External XML Entity, respectively, and is acceptable ! * input for an XML parser. For all other types of nodes the serialized form ! * is implementation dependent. ! *

      Within a Document, DocumentFragment, or ! * Entity being serialized, Nodes are processed as * follows *

        ! *
      • Document nodes are written, including the XML ! * declaration (unless the parameter "xml-declaration" is set to ! * false) and a DTD subset, if one exists in the DOM. Writing a ! * Document node serializes the entire document. *
      • ! *
      • ! * Entity nodes, when written directly by ! * LSSerializer.write, outputs the entity expansion but no ! * namespace fixup is done. The resulting output will be valid as an ! * external entity. *
      • *
      • If the parameter " ! * entities" is set to true, EntityReference nodes are * serialized as an entity reference of the form " ! * &entityName;" in the output. Child nodes (the expansion) * of the entity reference are ignored. If the parameter " ! * entities" is set to false, only the children of the entity reference ! * are serialized. EntityReference nodes with no children (no ! * corresponding Entity node or the corresponding ! * Entity nodes have no children) are always serialized. *
      • ! *
      • ! * CDATAsections containing content characters that cannot be ! * represented in the specified output encoding are handled according to the * " ! * split-cdata-sections" parameter. If the parameter is set to true, ! * CDATAsections are split, and the unrepresentable characters ! * are serialized as numeric character references in ordinary content. The ! * exact position and number of splits is not specified. If the parameter ! * is set to false, unrepresentable characters in a ! * CDATAsection are reported as * "wf-invalid-character" errors if the parameter " ! * well-formed" is set to true. The error is not recoverable - there is no ! * mechanism for supplying alternative characters and continuing with the ! * serialization. *
      • ! *
      • DocumentFragment nodes are serialized by ! * serializing the children of the document fragment in the order they ! * appear in the document fragment. *
      • ! *
      • All other node types (Element, Text, ! * etc.) are serialized to their corresponding XML source form. *
      • *
      ! *

      Note: The serialization of a Node does not always ! * generate a well-formed XML document, i.e. a LSParser might ! * throw fatal errors when parsing the resulting serialization. ! *

      Within the character data of a document (outside of markup), any ! * characters that cannot be represented directly are replaced with ! * character references. Occurrences of '<' and '&' are replaced by ! * the predefined entities &lt; and &amp;. The other predefined ! * entities (&gt;, &apos;, and &quot;) might not be used, except ! * where needed (e.g. using &gt; in cases such as ']]>'). Any ! * characters that cannot be represented directly in the output character ! * encoding are serialized as numeric character references (and since ! * character encoding standards commonly use hexadecimal representations of ! * characters, using the hexadecimal representation when serializing ! * character references is encouraged). ! *

      To allow attribute values to contain both single and double quotes, the ! * apostrophe or single-quote character (') may be represented as ! * "&apos;", and the double-quote character (") as "&quot;". New ! * line characters and other characters that cannot be represented directly ! * in attribute values in the output character encoding are serialized as a ! * numeric character reference. ! *

      Within markup, but outside of attributes, any occurrence of a character ! * that cannot be represented in the output character encoding is reported ! * as a DOMError fatal error. An example would be serializing ! * the element <LaCa\u00f1ada/> with encoding="us-ascii". ! * This will result with a generation of a DOMError * "wf-invalid-character-in-node-name" (as proposed in " ! * well-formed"). *

      When requested by setting the parameter " ! * normalize-characters" on LSSerializer to true, character normalization is ! * performed according to the definition of fully ! * normalized characters included in appendix E of [XML 1.1] on all ! * data to be serialized, both markup and character data. The character ! * normalization process affects only the data as it is being written; it ! * does not alter the DOM's view of the document after serialization has ! * completed. ! *

      Implementations are required to support the encodings "UTF-8", ! * "UTF-16", "UTF-16BE", and "UTF-16LE" to guarantee that data is ! * serializable in all encodings that are required to be supported by all ! * XML parsers. When the encoding is UTF-8, whether or not a byte order mark ! * is serialized, or if the output is big-endian or little-endian, is ! * implementation dependent. When the encoding is UTF-16, whether or not the ! * output is big-endian or little-endian is implementation dependent, but a ! * Byte Order Mark must be generated for non-character outputs, such as ! * LSOutput.byteStream or LSOutput.systemId. If ! * the Byte Order Mark is not generated, a "byte-order-mark-needed" warning ! * is reported. When the encoding is UTF-16LE or UTF-16BE, the output is ! * big-endian (UTF-16BE) or little-endian (UTF-16LE) and the Byte Order Mark ! * is not be generated. In all cases, the encoding declaration, if ! * generated, will correspond to the encoding used during the serialization ! * (e.g. encoding="UTF-16" will appear if UTF-16 was ! * requested). ! *

      Namespaces are fixed up during serialization, the serialization process ! * will verify that namespace declarations, namespace prefixes and the ! * namespace URI associated with elements and attributes are consistent. If ! * inconsistencies are found, the serialized form of the document will be ! * altered to remove them. The method used for doing the namespace fixup ! * while serializing a document is the algorithm defined in Appendix B.1, * "Namespace normalization", of [DOM Level 3 Core] ! * . ! *

      While serializing a document, the parameter "discard-default-content" ! * controls whether or not non-specified data is serialized. ! *

      While serializing, errors and warnings are reported to the application * through the error handler (LSSerializer.domConfig's " ! * error-handler" parameter). This specification does in no way try to define all possible ! * errors and warnings that can occur while serializing a DOM node, but some * common error and warning cases are defined. The types ( ! * DOMError.type) of errors and warnings defined by this ! * specification are: *

      *
      "no-output-specified" [fatal]
      ! *
      Raised when ! * writing to a LSOutput if no output is specified in the * LSOutput.
      ! *
      * "unbound-prefix-in-entity-reference" [fatal]
      ! *
      Raised if the * configuration parameter " ! * namespaces" is set to true and an entity whose replacement text ! * contains unbound namespace prefixes is referenced in a location where * there are no bindings for the namespace prefixes.
      *
      * "unsupported-encoding" [fatal]
      ! *
      Raised if an unsupported * encoding is encountered.
      ! *
      ! *

      In addition to raising the defined errors and warnings, implementations ! * are expected to raise implementation specific errors and warnings for any ! * other error and warning cases such as IO errors (file not found, ! * permission denied,...) and so on. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSSerializer { /** ! * The DOMConfiguration object used by the ! * LSSerializer when serializing a DOM node. *
      In addition to the parameters recognized by the * DOMConfiguration interface defined in [DOM Level 3 Core] ! * , the DOMConfiguration objects for ! * LSSerializer adds, or modifies, the following ! * parameters: *

      *
      "canonical-form"
      *
      *
      *
      true
      ! *
      [optional] Writes the document according to the rules specified in [Canonical XML]. * In addition to the behavior described in " * canonical-form" [DOM Level 3 Core] ! * , setting this parameter to true will set the parameters * "format-pretty-print", "discard-default-content", and "xml-declaration ! * ", to false. Setting one of those parameters to ! * true will set this parameter to false. ! * Serializing an XML 1.1 document when "canonical-form" is * true will generate a fatal error.
      *
      false
      *
      [required] (default) Do not canonicalize the output.
      --- 17,203 ---- import org.w3c.dom.DOMException; /** ! * A LSSerializer provides an API for serializing (writing) a ! * DOM document out into XML. The XML data is written to a string or an ! * output stream. Any changes or fixups made during the serialization affect ! * only the serialized data. The Document object and its ! * children are never altered by the serialization operation. *

      During serialization of XML data, namespace fixup is done as defined in [DOM Level 3 Core] * , Appendix B. [DOM Level 2 Core] ! * allows empty strings as a real namespace URI. If the ! * namespaceURI of a Node is empty string, the ! * serialization will treat them as null, ignoring the prefix ! * if any. ! *

      LSSerializer accepts any node type for serialization. For ! * nodes of type Document or Entity, well-formed ! * XML will be created when possible (well-formedness is guaranteed if the ! * document or entity comes from a parse operation and is unchanged since it ! * was created). The serialized output for these node types is either as a ! * XML document or an External XML Entity, respectively, and is acceptable ! * input for an XML parser. For all other types of nodes the serialized form ! * is implementation dependent. ! *

      Within a Document, DocumentFragment, or ! * Entity being serialized, Nodes are processed as * follows *

        ! *
      • Document nodes are written, including the XML ! * declaration (unless the parameter "xml-declaration" is set to ! * false) and a DTD subset, if one exists in the DOM. Writing a ! * Document node serializes the entire document. *
      • ! *
      • ! * Entity nodes, when written directly by ! * LSSerializer.write, outputs the entity expansion but no ! * namespace fixup is done. The resulting output will be valid as an ! * external entity. *
      • *
      • If the parameter " ! * entities" is set to true, EntityReference nodes are * serialized as an entity reference of the form " ! * &entityName;" in the output. Child nodes (the expansion) * of the entity reference are ignored. If the parameter " ! * entities" is set to false, only the children of the entity reference ! * are serialized. EntityReference nodes with no children (no ! * corresponding Entity node or the corresponding ! * Entity nodes have no children) are always serialized. *
      • ! *
      • ! * CDATAsections containing content characters that cannot be ! * represented in the specified output encoding are handled according to the * " ! * split-cdata-sections" parameter. If the parameter is set to true, ! * CDATAsections are split, and the unrepresentable characters ! * are serialized as numeric character references in ordinary content. The ! * exact position and number of splits is not specified. If the parameter ! * is set to false, unrepresentable characters in a ! * CDATAsection are reported as * "wf-invalid-character" errors if the parameter " ! * well-formed" is set to true. The error is not recoverable - there is no ! * mechanism for supplying alternative characters and continuing with the ! * serialization. *
      • ! *
      • DocumentFragment nodes are serialized by ! * serializing the children of the document fragment in the order they ! * appear in the document fragment. *
      • ! *
      • All other node types (Element, Text, ! * etc.) are serialized to their corresponding XML source form. *
      • *
      ! *

      Note: The serialization of a Node does not always ! * generate a well-formed XML document, i.e. a LSParser might ! * throw fatal errors when parsing the resulting serialization. ! *

      Within the character data of a document (outside of markup), any ! * characters that cannot be represented directly are replaced with ! * character references. Occurrences of '<' and '&' are replaced by ! * the predefined entities &lt; and &amp;. The other predefined ! * entities (&gt;, &apos;, and &quot;) might not be used, except ! * where needed (e.g. using &gt; in cases such as ']]>'). Any ! * characters that cannot be represented directly in the output character ! * encoding are serialized as numeric character references (and since ! * character encoding standards commonly use hexadecimal representations of ! * characters, using the hexadecimal representation when serializing ! * character references is encouraged). ! *

      To allow attribute values to contain both single and double quotes, the ! * apostrophe or single-quote character (') may be represented as ! * "&apos;", and the double-quote character (") as "&quot;". New ! * line characters and other characters that cannot be represented directly ! * in attribute values in the output character encoding are serialized as a ! * numeric character reference. ! *

      Within markup, but outside of attributes, any occurrence of a character ! * that cannot be represented in the output character encoding is reported ! * as a DOMError fatal error. An example would be serializing ! * the element <LaCa\u00f1ada/> with encoding="us-ascii". ! * This will result with a generation of a DOMError * "wf-invalid-character-in-node-name" (as proposed in " ! * well-formed"). *

      When requested by setting the parameter " ! * normalize-characters" on LSSerializer to true, character normalization is ! * performed according to the definition of fully ! * normalized characters included in appendix E of [XML 1.1] on all ! * data to be serialized, both markup and character data. The character ! * normalization process affects only the data as it is being written; it ! * does not alter the DOM's view of the document after serialization has ! * completed. ! *

      Implementations are required to support the encodings "UTF-8", ! * "UTF-16", "UTF-16BE", and "UTF-16LE" to guarantee that data is ! * serializable in all encodings that are required to be supported by all ! * XML parsers. When the encoding is UTF-8, whether or not a byte order mark ! * is serialized, or if the output is big-endian or little-endian, is ! * implementation dependent. When the encoding is UTF-16, whether or not the ! * output is big-endian or little-endian is implementation dependent, but a ! * Byte Order Mark must be generated for non-character outputs, such as ! * LSOutput.byteStream or LSOutput.systemId. If ! * the Byte Order Mark is not generated, a "byte-order-mark-needed" warning ! * is reported. When the encoding is UTF-16LE or UTF-16BE, the output is ! * big-endian (UTF-16BE) or little-endian (UTF-16LE) and the Byte Order Mark ! * is not be generated. In all cases, the encoding declaration, if ! * generated, will correspond to the encoding used during the serialization ! * (e.g. encoding="UTF-16" will appear if UTF-16 was ! * requested). ! *

      Namespaces are fixed up during serialization, the serialization process ! * will verify that namespace declarations, namespace prefixes and the ! * namespace URI associated with elements and attributes are consistent. If ! * inconsistencies are found, the serialized form of the document will be ! * altered to remove them. The method used for doing the namespace fixup ! * while serializing a document is the algorithm defined in Appendix B.1, * "Namespace normalization", of [DOM Level 3 Core] ! * . ! *

      While serializing a document, the parameter "discard-default-content" ! * controls whether or not non-specified data is serialized. ! *

      While serializing, errors and warnings are reported to the application * through the error handler (LSSerializer.domConfig's " ! * error-handler" parameter). This specification does in no way try to define all possible ! * errors and warnings that can occur while serializing a DOM node, but some * common error and warning cases are defined. The types ( ! * DOMError.type) of errors and warnings defined by this ! * specification are: *

      *
      "no-output-specified" [fatal]
      ! *
      Raised when ! * writing to a LSOutput if no output is specified in the * LSOutput.
      ! *
      * "unbound-prefix-in-entity-reference" [fatal]
      ! *
      Raised if the * configuration parameter " ! * namespaces" is set to true and an entity whose replacement text ! * contains unbound namespace prefixes is referenced in a location where * there are no bindings for the namespace prefixes.
      *
      * "unsupported-encoding" [fatal]
      ! *
      Raised if an unsupported * encoding is encountered.
      ! *
      ! *

      In addition to raising the defined errors and warnings, implementations ! * are expected to raise implementation specific errors and warnings for any ! * other error and warning cases such as IO errors (file not found, ! * permission denied,...) and so on. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSSerializer { /** ! * The DOMConfiguration object used by the ! * LSSerializer when serializing a DOM node. *
      In addition to the parameters recognized by the * DOMConfiguration interface defined in [DOM Level 3 Core] ! * , the DOMConfiguration objects for ! * LSSerializer adds, or modifies, the following ! * parameters: *

      *
      "canonical-form"
      *
      *
      *
      true
      ! *
      [optional] Writes the document according to the rules specified in [Canonical XML]. * In addition to the behavior described in " * canonical-form" [DOM Level 3 Core] ! * , setting this parameter to true will set the parameters * "format-pretty-print", "discard-default-content", and "xml-declaration ! * ", to false. Setting one of those parameters to ! * true will set this parameter to false. ! * Serializing an XML 1.1 document when "canonical-form" is * true will generate a fatal error.
      *
      false
      *
      [required] (default) Do not canonicalize the output.
      *************** public interface LSSerializer { *** 207,217 **** *
      *
      * true
      ! *
      [required] (default) Use the Attr.specified attribute to decide what attributes ! * should be discarded. Note that some implementations might use ! * whatever information available to the implementation (i.e. XML ! * schema, DTD, the Attr.specified attribute, and so on) to ! * determine what attributes and content to discard if this parameter is * set to true.
      *
      false
      *
      [required]Keep all attributes and all content.
      --- 207,217 ---- *
      *
      * true
      ! *
      [required] (default) Use the Attr.specified attribute to decide what attributes ! * should be discarded. Note that some implementations might use ! * whatever information available to the implementation (i.e. XML ! * schema, DTD, the Attr.specified attribute, and so on) to ! * determine what attributes and content to discard if this parameter is * set to true.
      *
      false
      *
      [required]Keep all attributes and all content.
      *************** public interface LSSerializer { *** 221,260 **** *
      *
      * true
      ! *
      [optional] Formatting the output by adding whitespace to produce a pretty-printed, ! * indented, human-readable form. The exact form of the transformations ! * is not specified by this specification. Pretty-printing changes the ! * content of the document and may affect the validity of the document, * validating implementations should preserve validity.
      *
      * false
      *
      [required] (default) Don't pretty-print the result.
      *
      ! *
      * "ignore-unknown-character-denormalizations"
      *
      *
      *
      * true
      ! *
      [required] (default) If, while verifying full normalization when [XML 1.1] is ! * supported, a character is encountered for which the normalization ! * properties cannot be determined, then raise a ! * "unknown-character-denormalization" warning (instead of ! * raising an error, if this parameter is not set) and ignore any * possible denormalizations caused by these characters.
      *
      * false
      ! *
      [optional] Report a fatal error if a character is encountered for which the * processor cannot determine the normalization properties.
      *
      *
      * "normalize-characters"
      ! *
      This parameter is equivalent to * the one defined by DOMConfiguration in [DOM Level 3 Core] ! * . Unlike in the Core, the default value for this parameter is ! * true. While DOM implementations are not required to ! * support fully ! * normalizing the characters in the document according to appendix E of [XML 1.1], this * parameter must be activated by default if supported.
      *
      * "xml-declaration"
      --- 221,260 ---- *
      *
      * true
      ! *
      [optional] Formatting the output by adding whitespace to produce a pretty-printed, ! * indented, human-readable form. The exact form of the transformations ! * is not specified by this specification. Pretty-printing changes the ! * content of the document and may affect the validity of the document, * validating implementations should preserve validity.
      *
      * false
      *
      [required] (default) Don't pretty-print the result.
      *
      ! *
      * "ignore-unknown-character-denormalizations"
      *
      *
      *
      * true
      ! *
      [required] (default) If, while verifying full normalization when [XML 1.1] is ! * supported, a character is encountered for which the normalization ! * properties cannot be determined, then raise a ! * "unknown-character-denormalization" warning (instead of ! * raising an error, if this parameter is not set) and ignore any * possible denormalizations caused by these characters.
      *
      * false
      ! *
      [optional] Report a fatal error if a character is encountered for which the * processor cannot determine the normalization properties.
      *
      *
      * "normalize-characters"
      ! *
      This parameter is equivalent to * the one defined by DOMConfiguration in [DOM Level 3 Core] ! * . Unlike in the Core, the default value for this parameter is ! * true. While DOM implementations are not required to ! * support fully ! * normalizing the characters in the document according to appendix E of [XML 1.1], this * parameter must be activated by default if supported.
      *
      * "xml-declaration"
      *************** public interface LSSerializer { *** 262,278 **** *
      *
      true
      *
      [required] (default) If a Document, Element, or Entity ! * node is serialized, the XML declaration, or text declaration, should ! * be included. The version (Document.xmlVersion if the ! * document is a Level 3 document and the version is non-null, otherwise ! * use the value "1.0"), and the output encoding (see ! * LSSerializer.write for details on how to find the output * encoding) are specified in the serialized XML declaration.
      *
      * false
      ! *
      [required] Do not serialize the XML and text declarations. Report a ! * "xml-declaration-needed" warning if this will cause ! * problems (i.e. the serialized data is of an XML version other than [XML 1.0], or an * encoding would be needed to be able to re-parse the serialized data).
      *
      *
      --- 262,278 ---- *
      *
      true
      *
      [required] (default) If a Document, Element, or Entity ! * node is serialized, the XML declaration, or text declaration, should ! * be included. The version (Document.xmlVersion if the ! * document is a Level 3 document and the version is non-null, otherwise ! * use the value "1.0"), and the output encoding (see ! * LSSerializer.write for details on how to find the output * encoding) are specified in the serialized XML declaration.
      *
      * false
      ! *
      [required] Do not serialize the XML and text declarations. Report a ! * "xml-declaration-needed" warning if this will cause ! * problems (i.e. the serialized data is of an XML version other than [XML 1.0], or an * encoding would be needed to be able to re-parse the serialized data).
      *
      * *************** public interface LSSerializer { *** 280,434 **** public DOMConfiguration getDomConfig(); /** ! * The end-of-line sequence of characters to be used in the XML being ! * written out. Any string is supported, but XML treats only a certain ! * set of characters sequence as end-of-line (See section 2.11, ! * "End-of-Line Handling" in [XML 1.0], if the ! * serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" ! * in [XML 1.1], if the ! * serialized content is XML 1.1). Using other character sequences than ! * the recommended ones can result in a document that is either not ! * serializable or not well-formed). ! *
      On retrieval, the default value of this attribute is the ! * implementation specific default end-of-line sequence. DOM ! * implementations should choose the default to match the usual ! * convention for text files in the environment being used. ! * Implementations must choose a default sequence that matches one of ! * those allowed by XML 1.0 or XML 1.1, depending on the serialized ! * content. Setting this attribute to null will reset its ! * value to the default value. ! *
      */ public String getNewLine(); /** ! * The end-of-line sequence of characters to be used in the XML being ! * written out. Any string is supported, but XML treats only a certain ! * set of characters sequence as end-of-line (See section 2.11, ! * "End-of-Line Handling" in [XML 1.0], if the ! * serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" ! * in [XML 1.1], if the ! * serialized content is XML 1.1). Using other character sequences than ! * the recommended ones can result in a document that is either not ! * serializable or not well-formed). ! *
      On retrieval, the default value of this attribute is the ! * implementation specific default end-of-line sequence. DOM ! * implementations should choose the default to match the usual ! * convention for text files in the environment being used. ! * Implementations must choose a default sequence that matches one of ! * those allowed by XML 1.0 or XML 1.1, depending on the serialized ! * content. Setting this attribute to null will reset its ! * value to the default value. ! *
      */ public void setNewLine(String newLine); /** ! * When the application provides a filter, the serializer will call out ! * to the filter before serializing each Node. The filter implementation ! * can choose to remove the node from the stream or to terminate the ! * serialization early. ! *
      The filter is invoked after the operations requested by the ! * DOMConfiguration parameters have been applied. For * example, CDATA sections won't be passed to the filter if " ! * cdata-sections" is set to false. */ public LSSerializerFilter getFilter(); /** ! * When the application provides a filter, the serializer will call out ! * to the filter before serializing each Node. The filter implementation ! * can choose to remove the node from the stream or to terminate the ! * serialization early. ! *
      The filter is invoked after the operations requested by the ! * DOMConfiguration parameters have been applied. For * example, CDATA sections won't be passed to the filter if " ! * cdata-sections" is set to false. */ public void setFilter(LSSerializerFilter filter); /** ! * Serialize the specified node as described above in the general ! * description of the LSSerializer interface. The output is ! * written to the supplied LSOutput. ! *
      When writing to a LSOutput, the encoding is found by ! * looking at the encoding information that is reachable through the ! * LSOutput and the item to be written (or its owner ! * document) in this order: *
        ! *
      1. LSOutput.encoding, *
      2. ! *
      3. ! * Document.inputEncoding, *
      4. ! *
      5. ! * Document.xmlEncoding. *
      6. *
      ! *
      If no encoding is reachable through the above properties, a ! * default encoding of "UTF-8" will be used. If the specified encoding ! * is not supported an "unsupported-encoding" fatal error is raised. ! *
      If no output is specified in the LSOutput, a ! * "no-output-specified" fatal error is raised. ! *
      The implementation is responsible of associating the appropriate ! * media type with the serialized data. ! *
      When writing to a HTTP URI, a HTTP PUT is performed. When writing ! * to other types of URIs, the mechanism for writing the data to the URI ! * is implementation dependent. ! * @param nodeArg The node to serialize. * @param destination The destination for the serialized DOM. ! * @return Returns true if node was ! * successfully serialized. Return false in case the ! * normal processing stopped but the implementation kept serializing ! * the document; the result of the serialization being implementation ! * dependent then. * @exception LSException ! * SERIALIZE_ERR: Raised if the LSSerializer was unable to ! * serialize the node. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ ! public boolean write(Node nodeArg, LSOutput destination) throws LSException; /** ! * A convenience method that acts as if LSSerializer.write ! * was called with a LSOutput with no encoding specified ! * and LSOutput.systemId set to the uri ! * argument. ! * @param nodeArg The node to serialize. * @param uri The URI to write to. ! * @return Returns true if node was ! * successfully serialized. Return false in case the ! * normal processing stopped but the implementation kept serializing ! * the document; the result of the serialization being implementation ! * dependent then. * @exception LSException ! * SERIALIZE_ERR: Raised if the LSSerializer was unable to ! * serialize the node. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ ! public boolean writeToURI(Node nodeArg, String uri) throws LSException; /** ! * Serialize the specified node as described above in the general ! * description of the LSSerializer interface. The output is ! * written to a DOMString that is returned to the caller. ! * The encoding used is the encoding of the DOMString type, ! * i.e. UTF-16. Note that no Byte Order Mark is generated in a ! * DOMString object. ! * @param nodeArg The node to serialize. ! * @return Returns the serialized data. * @exception DOMException ! * DOMSTRING_SIZE_ERR: Raised if the resulting string is too long to ! * fit in a DOMString. * @exception LSException ! * SERIALIZE_ERR: Raised if the LSSerializer was unable to ! * serialize the node. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ public String writeToString(Node nodeArg) throws DOMException, LSException; --- 280,434 ---- public DOMConfiguration getDomConfig(); /** ! * The end-of-line sequence of characters to be used in the XML being ! * written out. Any string is supported, but XML treats only a certain ! * set of characters sequence as end-of-line (See section 2.11, ! * "End-of-Line Handling" in [XML 1.0], if the ! * serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" ! * in [XML 1.1], if the ! * serialized content is XML 1.1). Using other character sequences than ! * the recommended ones can result in a document that is either not ! * serializable or not well-formed). ! *
      On retrieval, the default value of this attribute is the ! * implementation specific default end-of-line sequence. DOM ! * implementations should choose the default to match the usual ! * convention for text files in the environment being used. ! * Implementations must choose a default sequence that matches one of ! * those allowed by XML 1.0 or XML 1.1, depending on the serialized ! * content. Setting this attribute to null will reset its ! * value to the default value. ! *
      */ public String getNewLine(); /** ! * The end-of-line sequence of characters to be used in the XML being ! * written out. Any string is supported, but XML treats only a certain ! * set of characters sequence as end-of-line (See section 2.11, ! * "End-of-Line Handling" in [XML 1.0], if the ! * serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" ! * in [XML 1.1], if the ! * serialized content is XML 1.1). Using other character sequences than ! * the recommended ones can result in a document that is either not ! * serializable or not well-formed). ! *
      On retrieval, the default value of this attribute is the ! * implementation specific default end-of-line sequence. DOM ! * implementations should choose the default to match the usual ! * convention for text files in the environment being used. ! * Implementations must choose a default sequence that matches one of ! * those allowed by XML 1.0 or XML 1.1, depending on the serialized ! * content. Setting this attribute to null will reset its ! * value to the default value. ! *
      */ public void setNewLine(String newLine); /** ! * When the application provides a filter, the serializer will call out ! * to the filter before serializing each Node. The filter implementation ! * can choose to remove the node from the stream or to terminate the ! * serialization early. ! *
      The filter is invoked after the operations requested by the ! * DOMConfiguration parameters have been applied. For * example, CDATA sections won't be passed to the filter if " ! * cdata-sections" is set to false. */ public LSSerializerFilter getFilter(); /** ! * When the application provides a filter, the serializer will call out ! * to the filter before serializing each Node. The filter implementation ! * can choose to remove the node from the stream or to terminate the ! * serialization early. ! *
      The filter is invoked after the operations requested by the ! * DOMConfiguration parameters have been applied. For * example, CDATA sections won't be passed to the filter if " ! * cdata-sections" is set to false. */ public void setFilter(LSSerializerFilter filter); /** ! * Serialize the specified node as described above in the general ! * description of the LSSerializer interface. The output is ! * written to the supplied LSOutput. ! *
      When writing to a LSOutput, the encoding is found by ! * looking at the encoding information that is reachable through the ! * LSOutput and the item to be written (or its owner ! * document) in this order: *
        ! *
      1. LSOutput.encoding, *
      2. ! *
      3. ! * Document.inputEncoding, *
      4. ! *
      5. ! * Document.xmlEncoding. *
      6. *
      ! *
      If no encoding is reachable through the above properties, a ! * default encoding of "UTF-8" will be used. If the specified encoding ! * is not supported an "unsupported-encoding" fatal error is raised. ! *
      If no output is specified in the LSOutput, a ! * "no-output-specified" fatal error is raised. ! *
      The implementation is responsible of associating the appropriate ! * media type with the serialized data. ! *
      When writing to a HTTP URI, a HTTP PUT is performed. When writing ! * to other types of URIs, the mechanism for writing the data to the URI ! * is implementation dependent. ! * @param nodeArg The node to serialize. * @param destination The destination for the serialized DOM. ! * @return Returns true if node was ! * successfully serialized. Return false in case the ! * normal processing stopped but the implementation kept serializing ! * the document; the result of the serialization being implementation ! * dependent then. * @exception LSException ! * SERIALIZE_ERR: Raised if the LSSerializer was unable to ! * serialize the node. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ ! public boolean write(Node nodeArg, LSOutput destination) throws LSException; /** ! * A convenience method that acts as if LSSerializer.write ! * was called with a LSOutput with no encoding specified ! * and LSOutput.systemId set to the uri ! * argument. ! * @param nodeArg The node to serialize. * @param uri The URI to write to. ! * @return Returns true if node was ! * successfully serialized. Return false in case the ! * normal processing stopped but the implementation kept serializing ! * the document; the result of the serialization being implementation ! * dependent then. * @exception LSException ! * SERIALIZE_ERR: Raised if the LSSerializer was unable to ! * serialize the node. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ ! public boolean writeToURI(Node nodeArg, String uri) throws LSException; /** ! * Serialize the specified node as described above in the general ! * description of the LSSerializer interface. The output is ! * written to a DOMString that is returned to the caller. ! * The encoding used is the encoding of the DOMString type, ! * i.e. UTF-16. Note that no Byte Order Mark is generated in a ! * DOMString object. ! * @param nodeArg The node to serialize. ! * @return Returns the serialized data. * @exception DOMException ! * DOMSTRING_SIZE_ERR: Raised if the resulting string is too long to ! * fit in a DOMString. * @exception LSException ! * SERIALIZE_ERR: Raised if the LSSerializer was unable to ! * serialize the node. DOM applications should attach a * DOMErrorHandler using the parameter " ! * error-handler" if they wish to get details on the error. */ public String writeToString(Node nodeArg) throws DOMException, LSException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.ls; *** 15,62 **** import org.w3c.dom.traversal.NodeFilter; /** ! * LSSerializerFilters provide applications the ability to ! * examine nodes as they are being serialized and decide what nodes should ! * be serialized or not. The LSSerializerFilter interface is * based on the NodeFilter interface defined in [DOM Level 2 Traversal and Range] ! * . ! *

      Document, DocumentType, * DocumentFragment, Notation, Entity ! * , and children of Attr nodes are not passed to the filter. ! * The child nodes of an EntityReference node are only passed ! * to the filter if the EntityReference node is skipped by the ! * method LSParserFilter.acceptNode(). ! *

      When serializing an Element, the element is passed to the ! * filter before any of its attributes are passed to the filter. Namespace * declaration attributes, and default attributes (except in the case when " ! * discard-default-content" is set to false), are never passed ! * to the filter. ! *

      The result of any attempt to modify a node passed to a ! * LSSerializerFilter is implementation dependent. ! *

      DOM applications must not raise exceptions in a filter. The effect of ! * throwing exceptions from a filter is DOM implementation dependent. ! *

      For efficiency, a node passed to the filter may not be the same as the ! * one that is actually in the tree. And the actual node (node object ! * identity) may be reused during the process of filtering and serializing a ! * document. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSSerializerFilter extends NodeFilter { /** ! * Tells the LSSerializer what types of nodes to show to the ! * filter. If a node is not shown to the filter using this attribute, it ! * is automatically serialized. See NodeFilter for * definition of the constants. The constants SHOW_DOCUMENT * , SHOW_DOCUMENT_TYPE, SHOW_DOCUMENT_FRAGMENT ! * , SHOW_NOTATION, and SHOW_ENTITY are ! * meaningless here, such nodes will never be passed to a ! * LSSerializerFilter. *
      Unlike [DOM Level 2 Traversal and Range] ! * , the SHOW_ATTRIBUTE constant indicates that the ! * Attr nodes are shown and passed to the filter. *
      The constants used here are defined in [DOM Level 2 Traversal and Range] ! * . */ public int getWhatToShow(); --- 15,62 ---- import org.w3c.dom.traversal.NodeFilter; /** ! * LSSerializerFilters provide applications the ability to ! * examine nodes as they are being serialized and decide what nodes should ! * be serialized or not. The LSSerializerFilter interface is * based on the NodeFilter interface defined in [DOM Level 2 Traversal and Range] ! * . ! *

      Document, DocumentType, * DocumentFragment, Notation, Entity ! * , and children of Attr nodes are not passed to the filter. ! * The child nodes of an EntityReference node are only passed ! * to the filter if the EntityReference node is skipped by the ! * method LSParserFilter.acceptNode(). ! *

      When serializing an Element, the element is passed to the ! * filter before any of its attributes are passed to the filter. Namespace * declaration attributes, and default attributes (except in the case when " ! * discard-default-content" is set to false), are never passed ! * to the filter. ! *

      The result of any attempt to modify a node passed to a ! * LSSerializerFilter is implementation dependent. ! *

      DOM applications must not raise exceptions in a filter. The effect of ! * throwing exceptions from a filter is DOM implementation dependent. ! *

      For efficiency, a node passed to the filter may not be the same as the ! * one that is actually in the tree. And the actual node (node object ! * identity) may be reused during the process of filtering and serializing a ! * document. *

      See also the Document Object Model (DOM) Level 3 Load and Save Specification. */ public interface LSSerializerFilter extends NodeFilter { /** ! * Tells the LSSerializer what types of nodes to show to the ! * filter. If a node is not shown to the filter using this attribute, it ! * is automatically serialized. See NodeFilter for * definition of the constants. The constants SHOW_DOCUMENT * , SHOW_DOCUMENT_TYPE, SHOW_DOCUMENT_FRAGMENT ! * , SHOW_NOTATION, and SHOW_ENTITY are ! * meaningless here, such nodes will never be passed to a ! * LSSerializerFilter. *
      Unlike [DOM Level 2 Traversal and Range] ! * , the SHOW_ATTRIBUTE constant indicates that the ! * Attr nodes are shown and passed to the filter. *
      The constants used here are defined in [DOM Level 2 Traversal and Range] ! * . */ public int getWhatToShow(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.ranges; *** 18,31 **** */ public interface DocumentRange { /** ! * This interface can be obtained from the object implementing the ! * Document interface using binding-specific casting * methods. ! * @return The initial state of the Range returned from this method is ! * such that both of its boundary-points are positioned at the ! * beginning of the corresponding Document, before any content. The ! * Range returned can only be used to select content associated with ! * this Document, or with DocumentFragments and Attrs for which this * Document is the ownerDocument. */ public Range createRange(); --- 18,31 ---- */ public interface DocumentRange { /** ! * This interface can be obtained from the object implementing the ! * Document interface using binding-specific casting * methods. ! * @return The initial state of the Range returned from this method is ! * such that both of its boundary-points are positioned at the ! * beginning of the corresponding Document, before any content. The ! * Range returned can only be used to select content associated with ! * this Document, or with DocumentFragments and Attrs for which this * Document is the ownerDocument. */ public Range createRange(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.DocumentFragment; *** 22,141 **** */ public interface Range { /** ! * Node within which the Range begins * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public Node getStartContainer() throws DOMException; /** ! * Offset within the starting node of the Range. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public int getStartOffset() throws DOMException; /** ! * Node within which the Range ends * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public Node getEndContainer() throws DOMException; /** ! * Offset within the ending node of the Range. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public int getEndOffset() throws DOMException; /** ! * TRUE if the Range is collapsed * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public boolean getCollapsed() throws DOMException; /** ! * The deepest common ancestor container of the Range's two * boundary-points. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public Node getCommonAncestorContainer() throws DOMException; /** ! * Sets the attributes describing the start of the Range. ! * @param refNode The refNode value. This parameter must be * different from null. ! * @param offset The startOffset value. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor ! * of refNode is an Entity, Notation, or DocumentType * node. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if offset is negative or greater ! * than the number of child units in refNode. Child units ! * are 16-bit units if refNode is a type of CharacterData ! * node (e.g., a Text or Comment node) or a ProcessingInstruction * node. Child units are Nodes in all other cases. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ ! public void setStart(Node refNode, int offset) throws RangeException, DOMException; /** * Sets the attributes describing the end of a Range. ! * @param refNode The refNode value. This parameter must be * different from null. ! * @param offset The endOffset value. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor ! * of refNode is an Entity, Notation, or DocumentType * node. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if offset is negative or greater ! * than the number of child units in refNode. Child units ! * are 16-bit units if refNode is a type of CharacterData ! * node (e.g., a Text or Comment node) or a ProcessingInstruction * node. Child units are Nodes in all other cases. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ ! public void setEnd(Node refNode, int offset) throws RangeException, DOMException; /** * Sets the start position to be before a node ! * @param refNode Range starts before refNode * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if the root container of ! * refNode is not an Attr, Document, or DocumentFragment ! * node or if refNode is a Document, DocumentFragment, * Attr, Entity, or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void setStartBefore(Node refNode) --- 22,141 ---- */ public interface Range { /** ! * Node within which the Range begins * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public Node getStartContainer() throws DOMException; /** ! * Offset within the starting node of the Range. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public int getStartOffset() throws DOMException; /** ! * Node within which the Range ends * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public Node getEndContainer() throws DOMException; /** ! * Offset within the ending node of the Range. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public int getEndOffset() throws DOMException; /** ! * TRUE if the Range is collapsed * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public boolean getCollapsed() throws DOMException; /** ! * The deepest common ancestor container of the Range's two * boundary-points. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public Node getCommonAncestorContainer() throws DOMException; /** ! * Sets the attributes describing the start of the Range. ! * @param refNode The refNode value. This parameter must be * different from null. ! * @param offset The startOffset value. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor ! * of refNode is an Entity, Notation, or DocumentType * node. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if offset is negative or greater ! * than the number of child units in refNode. Child units ! * are 16-bit units if refNode is a type of CharacterData ! * node (e.g., a Text or Comment node) or a ProcessingInstruction * node. Child units are Nodes in all other cases. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ ! public void setStart(Node refNode, int offset) throws RangeException, DOMException; /** * Sets the attributes describing the end of a Range. ! * @param refNode The refNode value. This parameter must be * different from null. ! * @param offset The endOffset value. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor ! * of refNode is an Entity, Notation, or DocumentType * node. * @exception DOMException ! * INDEX_SIZE_ERR: Raised if offset is negative or greater ! * than the number of child units in refNode. Child units ! * are 16-bit units if refNode is a type of CharacterData ! * node (e.g., a Text or Comment node) or a ProcessingInstruction * node. Child units are Nodes in all other cases. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ ! public void setEnd(Node refNode, int offset) throws RangeException, DOMException; /** * Sets the start position to be before a node ! * @param refNode Range starts before refNode * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if the root container of ! * refNode is not an Attr, Document, or DocumentFragment ! * node or if refNode is a Document, DocumentFragment, * Attr, Entity, or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void setStartBefore(Node refNode) *************** public interface Range { *** 143,235 **** /** * Sets the start position to be after a node ! * @param refNode Range starts after refNode * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if the root container of ! * refNode is not an Attr, Document, or DocumentFragment ! * node or if refNode is a Document, DocumentFragment, * Attr, Entity, or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void setStartAfter(Node refNode) throws RangeException, DOMException; /** ! * Sets the end position to be before a node. ! * @param refNode Range ends before refNode * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if the root container of ! * refNode is not an Attr, Document, or DocumentFragment ! * node or if refNode is a Document, DocumentFragment, * Attr, Entity, or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void setEndBefore(Node refNode) throws RangeException, DOMException; /** ! * Sets the end of a Range to be after a node ! * @param refNode Range ends after refNode. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if the root container of ! * refNode is not an Attr, Document or DocumentFragment ! * node or if refNode is a Document, DocumentFragment, * Attr, Entity, or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void setEndAfter(Node refNode) throws RangeException, DOMException; /** ! * Collapse a Range onto one of its boundary-points ! * @param toStart If TRUE, collapses the Range onto its start; if FALSE, ! * collapses it onto its end. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public void collapse(boolean toStart) throws DOMException; /** ! * Select a node and its contents ! * @param refNode The node to select. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if an ancestor of refNode ! * is an Entity, Notation or DocumentType node or if ! * refNode is a Document, DocumentFragment, Attr, Entity, * or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void selectNode(Node refNode) throws RangeException, DOMException; /** ! * Select the contents within a node ! * @param refNode Node to select from * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor * of refNode is an Entity, Notation or DocumentType node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void selectNodeContents(Node refNode) --- 143,235 ---- /** * Sets the start position to be after a node ! * @param refNode Range starts after refNode * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if the root container of ! * refNode is not an Attr, Document, or DocumentFragment ! * node or if refNode is a Document, DocumentFragment, * Attr, Entity, or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void setStartAfter(Node refNode) throws RangeException, DOMException; /** ! * Sets the end position to be before a node. ! * @param refNode Range ends before refNode * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if the root container of ! * refNode is not an Attr, Document, or DocumentFragment ! * node or if refNode is a Document, DocumentFragment, * Attr, Entity, or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void setEndBefore(Node refNode) throws RangeException, DOMException; /** ! * Sets the end of a Range to be after a node ! * @param refNode Range ends after refNode. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if the root container of ! * refNode is not an Attr, Document or DocumentFragment ! * node or if refNode is a Document, DocumentFragment, * Attr, Entity, or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void setEndAfter(Node refNode) throws RangeException, DOMException; /** ! * Collapse a Range onto one of its boundary-points ! * @param toStart If TRUE, collapses the Range onto its start; if FALSE, ! * collapses it onto its end. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public void collapse(boolean toStart) throws DOMException; /** ! * Select a node and its contents ! * @param refNode The node to select. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if an ancestor of refNode ! * is an Entity, Notation or DocumentType node or if ! * refNode is a Document, DocumentFragment, Attr, Entity, * or Notation node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void selectNode(Node refNode) throws RangeException, DOMException; /** ! * Select the contents within a node ! * @param refNode Node to select from * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor * of refNode is an Entity, Notation or DocumentType node. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. ! *
      WRONG_DOCUMENT_ERR: Raised if refNode was created * from a different document than the one that created this range. */ public void selectNodeContents(Node refNode) *************** public interface Range { *** 237,413 **** // CompareHow /** ! * Compare start boundary-point of sourceRange to start ! * boundary-point of Range on which compareBoundaryPoints * is invoked. */ public static final short START_TO_START = 0; /** ! * Compare start boundary-point of sourceRange to end ! * boundary-point of Range on which compareBoundaryPoints * is invoked. */ public static final short START_TO_END = 1; /** ! * Compare end boundary-point of sourceRange to end ! * boundary-point of Range on which compareBoundaryPoints * is invoked. */ public static final short END_TO_END = 2; /** ! * Compare end boundary-point of sourceRange to start ! * boundary-point of Range on which compareBoundaryPoints * is invoked. */ public static final short END_TO_START = 3; /** * Compare the boundary-points of two Ranges in a document. ! * @param how A code representing the type of comparison, as defined * above. ! * @param sourceRange The Range on which this current * Range is compared to. ! * @return -1, 0 or 1 depending on whether the corresponding ! * boundary-point of the Range is respectively before, equal to, or ! * after the corresponding boundary-point of sourceRange. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same * Document or DocumentFragment. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. */ ! public short compareBoundaryPoints(short how, Range sourceRange) throws DOMException; /** ! * Removes the contents of a Range from the containing document or ! * document fragment without returning a reference to the removed ! * content. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of ! * the Range is read-only or any of the nodes that contain any of the * content of the Range are read-only. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. */ public void deleteContents() throws DOMException; /** ! * Moves the contents of a Range from the containing document or document ! * fragment to a new DocumentFragment. ! * @return A DocumentFragment containing the extracted contents. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of ! * the Range is read-only or any of the nodes which contain any of the * content of the Range are read-only. ! *
      HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be * extracted into the new DocumentFragment. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. */ public DocumentFragment extractContents() throws DOMException; /** ! * Duplicates the contents of a Range ! * @return A DocumentFragment that contains content equivalent to this * Range. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be * extracted into the new DocumentFragment. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. */ public DocumentFragment cloneContents() throws DOMException; /** ! * Inserts a node into the Document or DocumentFragment at the start of ! * the Range. If the container is a Text node, this will be split at the ! * start of the Range (as if the Text node's splitText method was ! * performed at the insertion point) and the insertion will occur ! * between the two resulting Text nodes. Adjacent Text nodes will not be ! * automatically merged. If the node to be inserted is a ! * DocumentFragment node, the children will be inserted rather than the * DocumentFragment node itself. ! * @param newNode The node to insert at the start of the Range * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the * start of the Range is read-only. ! *
      WRONG_DOCUMENT_ERR: Raised if newNode and the ! * container of the start of the Range were not created from the same * document. ! *
      HIERARCHY_REQUEST_ERR: Raised if the container of the start of ! * the Range is of a type that does not allow children of the type of ! * newNode or if newNode is an ancestor of * the container. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if newNode is an Attr, * Entity, Notation, or Document node. */ public void insertNode(Node newNode) throws DOMException, RangeException; /** ! * Reparents the contents of the Range to the given node and inserts the ! * node at the position of the start of the Range. ! * @param newParent The node to surround the contents with. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of * either boundary-point of the Range is read-only. ! *
      WRONG_DOCUMENT_ERR: Raised if newParent and the ! * container of the start of the Range were not created from the same * document. ! *
      HIERARCHY_REQUEST_ERR: Raised if the container of the start of ! * the Range is of a type that does not allow children of the type of ! * newParent or if newParent is an ancestor ! * of the container or if node would end up with a child * node of a type not allowed by the type of node. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. * @exception RangeException ! * BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a * non-text node. ! *
      INVALID_NODE_TYPE_ERR: Raised if node is an Attr, * Entity, DocumentType, Notation, Document, or DocumentFragment node. */ public void surroundContents(Node newParent) throws DOMException, RangeException; /** ! * Produces a new Range whose boundary-points are equal to the ! * boundary-points of the Range. ! * @return The duplicated Range. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public Range cloneRange() throws DOMException; /** ! * Returns the contents of a Range as a string. This string contains only ! * the data characters, not any markup. * @return The contents of the Range. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public String toString() throws DOMException; /** ! * Called to indicate that the Range is no longer in use and that the ! * implementation may relinquish any resources associated with this ! * Range. Subsequent calls to any methods or attribute getters on this ! * Range will result in a DOMException being thrown with an * error code of INVALID_STATE_ERR. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public void detach() --- 237,413 ---- // CompareHow /** ! * Compare start boundary-point of sourceRange to start ! * boundary-point of Range on which compareBoundaryPoints * is invoked. */ public static final short START_TO_START = 0; /** ! * Compare start boundary-point of sourceRange to end ! * boundary-point of Range on which compareBoundaryPoints * is invoked. */ public static final short START_TO_END = 1; /** ! * Compare end boundary-point of sourceRange to end ! * boundary-point of Range on which compareBoundaryPoints * is invoked. */ public static final short END_TO_END = 2; /** ! * Compare end boundary-point of sourceRange to start ! * boundary-point of Range on which compareBoundaryPoints * is invoked. */ public static final short END_TO_START = 3; /** * Compare the boundary-points of two Ranges in a document. ! * @param how A code representing the type of comparison, as defined * above. ! * @param sourceRange The Range on which this current * Range is compared to. ! * @return -1, 0 or 1 depending on whether the corresponding ! * boundary-point of the Range is respectively before, equal to, or ! * after the corresponding boundary-point of sourceRange. * @exception DOMException ! * WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same * Document or DocumentFragment. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. */ ! public short compareBoundaryPoints(short how, Range sourceRange) throws DOMException; /** ! * Removes the contents of a Range from the containing document or ! * document fragment without returning a reference to the removed ! * content. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of ! * the Range is read-only or any of the nodes that contain any of the * content of the Range are read-only. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. */ public void deleteContents() throws DOMException; /** ! * Moves the contents of a Range from the containing document or document ! * fragment to a new DocumentFragment. ! * @return A DocumentFragment containing the extracted contents. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of ! * the Range is read-only or any of the nodes which contain any of the * content of the Range are read-only. ! *
      HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be * extracted into the new DocumentFragment. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. */ public DocumentFragment extractContents() throws DOMException; /** ! * Duplicates the contents of a Range ! * @return A DocumentFragment that contains content equivalent to this * Range. * @exception DOMException ! * HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be * extracted into the new DocumentFragment. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. */ public DocumentFragment cloneContents() throws DOMException; /** ! * Inserts a node into the Document or DocumentFragment at the start of ! * the Range. If the container is a Text node, this will be split at the ! * start of the Range (as if the Text node's splitText method was ! * performed at the insertion point) and the insertion will occur ! * between the two resulting Text nodes. Adjacent Text nodes will not be ! * automatically merged. If the node to be inserted is a ! * DocumentFragment node, the children will be inserted rather than the * DocumentFragment node itself. ! * @param newNode The node to insert at the start of the Range * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the * start of the Range is read-only. ! *
      WRONG_DOCUMENT_ERR: Raised if newNode and the ! * container of the start of the Range were not created from the same * document. ! *
      HIERARCHY_REQUEST_ERR: Raised if the container of the start of ! * the Range is of a type that does not allow children of the type of ! * newNode or if newNode is an ancestor of * the container. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. * @exception RangeException ! * INVALID_NODE_TYPE_ERR: Raised if newNode is an Attr, * Entity, Notation, or Document node. */ public void insertNode(Node newNode) throws DOMException, RangeException; /** ! * Reparents the contents of the Range to the given node and inserts the ! * node at the position of the start of the Range. ! * @param newParent The node to surround the contents with. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of * either boundary-point of the Range is read-only. ! *
      WRONG_DOCUMENT_ERR: Raised if newParent and the ! * container of the start of the Range were not created from the same * document. ! *
      HIERARCHY_REQUEST_ERR: Raised if the container of the start of ! * the Range is of a type that does not allow children of the type of ! * newParent or if newParent is an ancestor ! * of the container or if node would end up with a child * node of a type not allowed by the type of node. ! *
      INVALID_STATE_ERR: Raised if detach() has already * been invoked on this object. * @exception RangeException ! * BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a * non-text node. ! *
      INVALID_NODE_TYPE_ERR: Raised if node is an Attr, * Entity, DocumentType, Notation, Document, or DocumentFragment node. */ public void surroundContents(Node newParent) throws DOMException, RangeException; /** ! * Produces a new Range whose boundary-points are equal to the ! * boundary-points of the Range. ! * @return The duplicated Range. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public Range cloneRange() throws DOMException; /** ! * Returns the contents of a Range as a string. This string contains only ! * the data characters, not any markup. * @return The contents of the Range. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public String toString() throws DOMException; /** ! * Called to indicate that the Range is no longer in use and that the ! * implementation may relinquish any resources associated with this ! * Range. Subsequent calls to any methods or attribute getters on this ! * Range will result in a DOMException being thrown with an * error code of INVALID_STATE_ERR. * @exception DOMException ! * INVALID_STATE_ERR: Raised if detach() has already been * invoked on this object. */ public void detach() diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java Tue Jan 11 19:46:05 2011 *************** *** 13,19 **** package org.w3c.dom.ranges; /** ! * Range operations may throw a RangeException as specified in * their method descriptions. *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 --- 13,19 ---- package org.w3c.dom.ranges; /** ! * Range operations may throw a RangeException as specified in * their method descriptions. *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 *************** public class RangeException extends Runt *** 30,37 **** */ public static final short BAD_BOUNDARYPOINTS_ERR = 1; /** ! * If the container of an boundary-point of a Range is being set to either ! * a node of an invalid type or a node with an ancestor of an invalid * type. */ public static final short INVALID_NODE_TYPE_ERR = 2; --- 30,37 ---- */ public static final short BAD_BOUNDARYPOINTS_ERR = 1; /** ! * If the container of an boundary-point of a Range is being set to either ! * a node of an invalid type or a node with an ancestor of an invalid * type. */ public static final short INVALID_NODE_TYPE_ERR = 2; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java Tue Jan 11 19:46:05 2011 *************** *** 13,33 **** package org.w3c.dom.stylesheets; /** ! * The DocumentStyle interface provides a mechanism by which the ! * style sheets embedded in a document can be retrieved. The expectation is ! * that an instance of the DocumentStyle interface can be ! * obtained by using binding-specific casting methods on an instance of the ! * Document interface. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface DocumentStyle { /** ! * A list containing all the style sheets explicitly linked into or ! * embedded in a document. For HTML documents, this includes external ! * style sheets, included via the HTML LINK element, and inline STYLE ! * elements. In XML, this includes external style sheets, included via ! * style sheet processing instructions (see [XML StyleSheet]). */ public StyleSheetList getStyleSheets(); --- 13,33 ---- package org.w3c.dom.stylesheets; /** ! * The DocumentStyle interface provides a mechanism by which the ! * style sheets embedded in a document can be retrieved. The expectation is ! * that an instance of the DocumentStyle interface can be ! * obtained by using binding-specific casting methods on an instance of the ! * Document interface. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface DocumentStyle { /** ! * A list containing all the style sheets explicitly linked into or ! * embedded in a document. For HTML documents, this includes external ! * style sheets, included via the HTML LINK element, and inline STYLE ! * elements. In XML, this includes external style sheets, included via ! * style sheet processing instructions (see [XML StyleSheet]). */ public StyleSheetList getStyleSheets(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java Tue Jan 11 19:46:05 2011 *************** *** 13,30 **** package org.w3c.dom.stylesheets; /** ! * The LinkStyle interface provides a mechanism by which a style ! * sheet can be retrieved from the node responsible for linking it into a ! * document. An instance of the LinkStyle interface can be ! * obtained using binding-specific casting methods on an instance of a ! * linking node (HTMLLinkElement, HTMLStyleElement ! * or ProcessingInstruction in DOM Level 2). *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface LinkStyle { /** ! * The style sheet. */ public StyleSheet getSheet(); --- 13,30 ---- package org.w3c.dom.stylesheets; /** ! * The LinkStyle interface provides a mechanism by which a style ! * sheet can be retrieved from the node responsible for linking it into a ! * document. An instance of the LinkStyle interface can be ! * obtained using binding-specific casting methods on an instance of a ! * linking node (HTMLLinkElement, HTMLStyleElement ! * or ProcessingInstruction in DOM Level 2). *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface LinkStyle { /** ! * The style sheet. */ public StyleSheet getSheet(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.stylesheets; *** 15,83 **** import org.w3c.dom.DOMException; /** ! * The MediaList interface provides the abstraction of an ! * ordered collection of media, without defining or constraining how this ! * collection is implemented. An empty list is the same as a list that ! * contains the medium "all". ! *

      The items in the MediaList are accessible via an integral ! * index, starting from 0. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface MediaList { /** ! * The parsable textual representation of the media list. This is a ! * comma-separated list of media. */ public String getMediaText(); /** ! * The parsable textual representation of the media list. This is a ! * comma-separated list of media. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified string value has a syntax error * and is unparsable. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is * readonly. */ public void setMediaText(String mediaText) throws DOMException; /** ! * The number of media in the list. The range of valid media is ! * 0 to length-1 inclusive. */ public int getLength(); /** ! * Returns the indexth in the list. If index is ! * greater than or equal to the number of media in the list, this ! * returns null. ! * @param index Index into the collection. ! * @return The medium at the indexth position in the ! * MediaList, or null if that is not a valid ! * index. */ public String item(int index); /** ! * Deletes the medium indicated by oldMedium from the list. * @param oldMedium The medium to delete in the media list. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly. ! *
      NOT_FOUND_ERR: Raised if oldMedium is not in the ! * list. */ public void deleteMedium(String oldMedium) throws DOMException; /** ! * Adds the medium newMedium to the end of the list. If the ! * newMedium is already used, it is first removed. * @param newMedium The new medium to add. * @exception DOMException ! * INVALID_CHARACTER_ERR: If the medium contains characters that are ! * invalid in the underlying style language. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly. */ public void appendMedium(String newMedium) throws DOMException; --- 15,83 ---- import org.w3c.dom.DOMException; /** ! * The MediaList interface provides the abstraction of an ! * ordered collection of media, without defining or constraining how this ! * collection is implemented. An empty list is the same as a list that ! * contains the medium "all". ! *

      The items in the MediaList are accessible via an integral ! * index, starting from 0. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface MediaList { /** ! * The parsable textual representation of the media list. This is a ! * comma-separated list of media. */ public String getMediaText(); /** ! * The parsable textual representation of the media list. This is a ! * comma-separated list of media. * @exception DOMException ! * SYNTAX_ERR: Raised if the specified string value has a syntax error * and is unparsable. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is * readonly. */ public void setMediaText(String mediaText) throws DOMException; /** ! * The number of media in the list. The range of valid media is ! * 0 to length-1 inclusive. */ public int getLength(); /** ! * Returns the indexth in the list. If index is ! * greater than or equal to the number of media in the list, this ! * returns null. ! * @param index Index into the collection. ! * @return The medium at the indexth position in the ! * MediaList, or null if that is not a valid ! * index. */ public String item(int index); /** ! * Deletes the medium indicated by oldMedium from the list. * @param oldMedium The medium to delete in the media list. * @exception DOMException ! * NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly. ! *
      NOT_FOUND_ERR: Raised if oldMedium is not in the ! * list. */ public void deleteMedium(String oldMedium) throws DOMException; /** ! * Adds the medium newMedium to the end of the list. If the ! * newMedium is already used, it is first removed. * @param newMedium The new medium to add. * @exception DOMException ! * INVALID_CHARACTER_ERR: If the medium contains characters that are ! * invalid in the underlying style language. ! *
      NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly. */ public void appendMedium(String newMedium) throws DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.stylesheets; *** 15,102 **** import org.w3c.dom.Node; /** ! * The StyleSheet interface is the abstract base interface for ! * any type of style sheet. It represents a single style sheet associated ! * with a structured document. In HTML, the StyleSheet interface represents ! * either an external style sheet, included via the HTML LINK element, or ! * an inline STYLE element. In XML, this interface represents an external ! * style sheet, included via a style sheet processing instruction. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface StyleSheet { /** ! * This specifies the style sheet language for this style sheet. The ! * style sheet language is specified as a content type (e.g. ! * "text/css"). The content type is often specified in the ! * ownerNode. Also see the type attribute definition for ! * the LINK element in HTML 4.0, and the type ! * pseudo-attribute for the XML style sheet processing instruction. */ public String getType(); /** ! * false if the style sheet is applied to the document. ! * true if it is not. Modifying this attribute may cause a ! * new resolution of style for the document. A stylesheet only applies ! * if both an appropriate medium definition is present and the disabled ! * attribute is false. So, if the media doesn't apply to the current ! * user agent, the disabled attribute is ignored. */ public boolean getDisabled(); /** ! * false if the style sheet is applied to the document. ! * true if it is not. Modifying this attribute may cause a ! * new resolution of style for the document. A stylesheet only applies ! * if both an appropriate medium definition is present and the disabled ! * attribute is false. So, if the media doesn't apply to the current ! * user agent, the disabled attribute is ignored. */ public void setDisabled(boolean disabled); /** ! * The node that associates this style sheet with the document. For HTML, ! * this may be the corresponding LINK or STYLE ! * element. For XML, it may be the linking processing instruction. For ! * style sheets that are included by other style sheets, the value of ! * this attribute is null. */ public Node getOwnerNode(); /** ! * For style sheet languages that support the concept of style sheet ! * inclusion, this attribute represents the including style sheet, if ! * one exists. If the style sheet is a top-level style sheet, or the ! * style sheet language does not support inclusion, the value of this ! * attribute is null. */ public StyleSheet getParentStyleSheet(); /** ! * If the style sheet is a linked style sheet, the value of its attribute ! * is its location. For inline style sheets, the value of this attribute ! * is null. See the href attribute definition for the ! * LINK element in HTML 4.0, and the href pseudo-attribute ! * for the XML style sheet processing instruction. */ public String getHref(); /** ! * The advisory title. The title is often specified in the ! * ownerNode. See the title attribute definition for the ! * LINK element in HTML 4.0, and the title pseudo-attribute ! * for the XML style sheet processing instruction. */ public String getTitle(); /** ! * The intended destination media for style information. The media is ! * often specified in the ownerNode. If no media has been ! * specified, the MediaList will be empty. See the media ! * attribute definition for the LINK element in HTML 4.0, ! * and the media pseudo-attribute for the XML style sheet processing ! * instruction . Modifying the media list may cause a change to the ! * attribute disabled. */ public MediaList getMedia(); --- 15,102 ---- import org.w3c.dom.Node; /** ! * The StyleSheet interface is the abstract base interface for ! * any type of style sheet. It represents a single style sheet associated ! * with a structured document. In HTML, the StyleSheet interface represents ! * either an external style sheet, included via the HTML LINK element, or ! * an inline STYLE element. In XML, this interface represents an external ! * style sheet, included via a style sheet processing instruction. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface StyleSheet { /** ! * This specifies the style sheet language for this style sheet. The ! * style sheet language is specified as a content type (e.g. ! * "text/css"). The content type is often specified in the ! * ownerNode. Also see the type attribute definition for ! * the LINK element in HTML 4.0, and the type ! * pseudo-attribute for the XML style sheet processing instruction. */ public String getType(); /** ! * false if the style sheet is applied to the document. ! * true if it is not. Modifying this attribute may cause a ! * new resolution of style for the document. A stylesheet only applies ! * if both an appropriate medium definition is present and the disabled ! * attribute is false. So, if the media doesn't apply to the current ! * user agent, the disabled attribute is ignored. */ public boolean getDisabled(); /** ! * false if the style sheet is applied to the document. ! * true if it is not. Modifying this attribute may cause a ! * new resolution of style for the document. A stylesheet only applies ! * if both an appropriate medium definition is present and the disabled ! * attribute is false. So, if the media doesn't apply to the current ! * user agent, the disabled attribute is ignored. */ public void setDisabled(boolean disabled); /** ! * The node that associates this style sheet with the document. For HTML, ! * this may be the corresponding LINK or STYLE ! * element. For XML, it may be the linking processing instruction. For ! * style sheets that are included by other style sheets, the value of ! * this attribute is null. */ public Node getOwnerNode(); /** ! * For style sheet languages that support the concept of style sheet ! * inclusion, this attribute represents the including style sheet, if ! * one exists. If the style sheet is a top-level style sheet, or the ! * style sheet language does not support inclusion, the value of this ! * attribute is null. */ public StyleSheet getParentStyleSheet(); /** ! * If the style sheet is a linked style sheet, the value of its attribute ! * is its location. For inline style sheets, the value of this attribute ! * is null. See the href attribute definition for the ! * LINK element in HTML 4.0, and the href pseudo-attribute ! * for the XML style sheet processing instruction. */ public String getHref(); /** ! * The advisory title. The title is often specified in the ! * ownerNode. See the title attribute definition for the ! * LINK element in HTML 4.0, and the title pseudo-attribute ! * for the XML style sheet processing instruction. */ public String getTitle(); /** ! * The intended destination media for style information. The media is ! * often specified in the ownerNode. If no media has been ! * specified, the MediaList will be empty. See the media ! * attribute definition for the LINK element in HTML 4.0, ! * and the media pseudo-attribute for the XML style sheet processing ! * instruction . Modifying the media list may cause a change to the ! * attribute disabled. */ public MediaList getMedia(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java Tue Jan 11 19:46:05 2011 *************** *** 13,41 **** package org.w3c.dom.stylesheets; /** ! * The StyleSheetList interface provides the abstraction of an ! * ordered collection of style sheets. ! *

      The items in the StyleSheetList are accessible via an ! * integral index, starting from 0. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface StyleSheetList { /** ! * The number of StyleSheets in the list. The range of valid ! * child stylesheet indices is 0 to length-1 ! * inclusive. */ public int getLength(); /** ! * Used to retrieve a style sheet by ordinal index. If index is greater ! * than or equal to the number of style sheets in the list, this returns ! * null. * @param index Index into the collection ! * @return The style sheet at the index position in the ! * StyleSheetList, or null if that is not a ! * valid index. */ public StyleSheet item(int index); --- 13,41 ---- package org.w3c.dom.stylesheets; /** ! * The StyleSheetList interface provides the abstraction of an ! * ordered collection of style sheets. ! *

      The items in the StyleSheetList are accessible via an ! * integral index, starting from 0. *

      See also the Document Object Model (DOM) Level 2 Style Specification. * @since DOM Level 2 */ public interface StyleSheetList { /** ! * The number of StyleSheets in the list. The range of valid ! * child stylesheet indices is 0 to length-1 ! * inclusive. */ public int getLength(); /** ! * Used to retrieve a style sheet by ordinal index. If index is greater ! * than or equal to the number of style sheets in the list, this returns ! * null. * @param index Index into the collection ! * @return The style sheet at the index position in the ! * StyleSheetList, or null if that is not a ! * valid index. */ public StyleSheet item(int index); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 16,92 **** import org.w3c.dom.DOMException; /** ! * DocumentTraversal contains methods that create ! * NodeIterators and TreeWalkers to traverse a ! * node and its children in document order (depth first, pre-order ! * traversal, which is equivalent to the order in which the start tags occur ! * in the text representation of the document). In DOMs which support the ! * Traversal feature, DocumentTraversal will be implemented by * the same objects that implement the Document interface. *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 */ public interface DocumentTraversal { /** ! * Create a new NodeIterator over the subtree rooted at the * specified node. ! * @param root The node which will be iterated together with its ! * children. The NodeIterator is initially positioned ! * just before this node. The whatToShow flags and the ! * filter, if any, are not considered when setting this position. The * root must not be null. ! * @param whatToShow This flag specifies which node types may appear in ! * the logical view of the tree presented by the ! * NodeIterator. See the description of ! * NodeFilter for the set of possible SHOW_ * values.These flags can be combined using OR. ! * @param filter The NodeFilter to be used with this ! * NodeIterator, or null to indicate no * filter. ! * @param entityReferenceExpansion The value of this flag determines * whether entity reference nodes are expanded. * @return The newly created NodeIterator. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the specified root is * null. */ ! public NodeIterator createNodeIterator(Node root, ! int whatToShow, ! NodeFilter filter, boolean entityReferenceExpansion) throws DOMException; /** ! * Create a new TreeWalker over the subtree rooted at the * specified node. ! * @param root The node which will serve as the root for the ! * TreeWalker. The whatToShow flags and the ! * NodeFilter are not considered when setting this value; ! * any node type will be accepted as the root. The ! * currentNode of the TreeWalker is ! * initialized to this node, whether or not it is visible. The ! * root functions as a stopping point for traversal ! * methods that look upward in the document structure, such as ! * parentNode and nextNode. The root must * not be null. ! * @param whatToShow This flag specifies which node types may appear in ! * the logical view of the tree presented by the ! * TreeWalker. See the description of ! * NodeFilter for the set of possible SHOW_ * values.These flags can be combined using OR. ! * @param filter The NodeFilter to be used with this * TreeWalker, or null to indicate no filter. ! * @param entityReferenceExpansion If this flag is false, the contents of ! * EntityReference nodes are not presented in the logical * view. * @return The newly created TreeWalker. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the specified root is * null. */ ! public TreeWalker createTreeWalker(Node root, ! int whatToShow, ! NodeFilter filter, boolean entityReferenceExpansion) throws DOMException; --- 16,92 ---- import org.w3c.dom.DOMException; /** ! * DocumentTraversal contains methods that create ! * NodeIterators and TreeWalkers to traverse a ! * node and its children in document order (depth first, pre-order ! * traversal, which is equivalent to the order in which the start tags occur ! * in the text representation of the document). In DOMs which support the ! * Traversal feature, DocumentTraversal will be implemented by * the same objects that implement the Document interface. *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 */ public interface DocumentTraversal { /** ! * Create a new NodeIterator over the subtree rooted at the * specified node. ! * @param root The node which will be iterated together with its ! * children. The NodeIterator is initially positioned ! * just before this node. The whatToShow flags and the ! * filter, if any, are not considered when setting this position. The * root must not be null. ! * @param whatToShow This flag specifies which node types may appear in ! * the logical view of the tree presented by the ! * NodeIterator. See the description of ! * NodeFilter for the set of possible SHOW_ * values.These flags can be combined using OR. ! * @param filter The NodeFilter to be used with this ! * NodeIterator, or null to indicate no * filter. ! * @param entityReferenceExpansion The value of this flag determines * whether entity reference nodes are expanded. * @return The newly created NodeIterator. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the specified root is * null. */ ! public NodeIterator createNodeIterator(Node root, ! int whatToShow, ! NodeFilter filter, boolean entityReferenceExpansion) throws DOMException; /** ! * Create a new TreeWalker over the subtree rooted at the * specified node. ! * @param root The node which will serve as the root for the ! * TreeWalker. The whatToShow flags and the ! * NodeFilter are not considered when setting this value; ! * any node type will be accepted as the root. The ! * currentNode of the TreeWalker is ! * initialized to this node, whether or not it is visible. The ! * root functions as a stopping point for traversal ! * methods that look upward in the document structure, such as ! * parentNode and nextNode. The root must * not be null. ! * @param whatToShow This flag specifies which node types may appear in ! * the logical view of the tree presented by the ! * TreeWalker. See the description of ! * NodeFilter for the set of possible SHOW_ * values.These flags can be combined using OR. ! * @param filter The NodeFilter to be used with this * TreeWalker, or null to indicate no filter. ! * @param entityReferenceExpansion If this flag is false, the contents of ! * EntityReference nodes are not presented in the logical * view. * @return The newly created TreeWalker. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if the specified root is * null. */ ! public TreeWalker createTreeWalker(Node root, ! int whatToShow, ! NodeFilter filter, boolean entityReferenceExpansion) throws DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.traversal; *** 15,33 **** import org.w3c.dom.Node; /** ! * Filters are objects that know how to "filter out" nodes. If a ! * NodeIterator or TreeWalker is given a ! * NodeFilter, it applies the filter before it returns the next ! * node. If the filter says to accept the node, the traversal logic returns ! * it; otherwise, traversal looks for the next node and pretends that the * node that was rejected was not there. ! *

      The DOM does not provide any filters. NodeFilter is just an ! * interface that users can implement to provide their own filters. ! *

      NodeFilters do not need to know how to traverse from node ! * to node, nor do they need to know anything about the data structure that ! * is being traversed. This makes it very easy to write filters, since the ! * only thing they have to know how to do is evaluate a single node. One ! * filter may be used with a number of different kinds of traversals, * encouraging code reuse. *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 --- 15,33 ---- import org.w3c.dom.Node; /** ! * Filters are objects that know how to "filter out" nodes. If a ! * NodeIterator or TreeWalker is given a ! * NodeFilter, it applies the filter before it returns the next ! * node. If the filter says to accept the node, the traversal logic returns ! * it; otherwise, traversal looks for the next node and pretends that the * node that was rejected was not there. ! *

      The DOM does not provide any filters. NodeFilter is just an ! * interface that users can implement to provide their own filters. ! *

      NodeFilters do not need to know how to traverse from node ! * to node, nor do they need to know anything about the data structure that ! * is being traversed. This makes it very easy to write filters, since the ! * only thing they have to know how to do is evaluate a single node. One ! * filter may be used with a number of different kinds of traversals, * encouraging code reuse. *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 *************** import org.w3c.dom.Node; *** 35,59 **** public interface NodeFilter { // Constants returned by acceptNode /** ! * Accept the node. Navigation methods defined for ! * NodeIterator or TreeWalker will return this * node. */ public static final short FILTER_ACCEPT = 1; /** ! * Reject the node. Navigation methods defined for ! * NodeIterator or TreeWalker will not return ! * this node. For TreeWalker, the children of this node ! * will also be rejected. NodeIterators treat this as a * synonym for FILTER_SKIP. */ public static final short FILTER_REJECT = 2; /** ! * Skip this single node. Navigation methods defined for ! * NodeIterator or TreeWalker will not return ! * this node. For both NodeIterator and ! * TreeWalker, the children of this node will still be ! * considered. */ public static final short FILTER_SKIP = 3; --- 35,59 ---- public interface NodeFilter { // Constants returned by acceptNode /** ! * Accept the node. Navigation methods defined for ! * NodeIterator or TreeWalker will return this * node. */ public static final short FILTER_ACCEPT = 1; /** ! * Reject the node. Navigation methods defined for ! * NodeIterator or TreeWalker will not return ! * this node. For TreeWalker, the children of this node ! * will also be rejected. NodeIterators treat this as a * synonym for FILTER_SKIP. */ public static final short FILTER_REJECT = 2; /** ! * Skip this single node. Navigation methods defined for ! * NodeIterator or TreeWalker will not return ! * this node. For both NodeIterator and ! * TreeWalker, the children of this node will still be ! * considered. */ public static final short FILTER_SKIP = 3; *************** public interface NodeFilter { *** 67,77 **** */ public static final int SHOW_ELEMENT = 0x00000001; /** ! * Show Attr nodes. This is meaningful only when creating an ! * NodeIterator or TreeWalker with an ! * attribute node as its root; in this case, it means that ! * the attribute node will appear in the first position of the iteration ! * or traversal. Since attributes are never children of other nodes, * they do not appear when traversing over the document tree. */ public static final int SHOW_ATTRIBUTE = 0x00000002; --- 67,77 ---- */ public static final int SHOW_ELEMENT = 0x00000001; /** ! * Show Attr nodes. This is meaningful only when creating an ! * NodeIterator or TreeWalker with an ! * attribute node as its root; in this case, it means that ! * the attribute node will appear in the first position of the iteration ! * or traversal. Since attributes are never children of other nodes, * they do not appear when traversing over the document tree. */ public static final int SHOW_ATTRIBUTE = 0x00000002; *************** public interface NodeFilter { *** 88,99 **** */ public static final int SHOW_ENTITY_REFERENCE = 0x00000010; /** ! * Show Entity nodes. This is meaningful only when creating ! * an NodeIterator or TreeWalker with an ! * Entity node as its root; in this case, it ! * means that the Entity node will appear in the first ! * position of the traversal. Since entities are not part of the ! * document tree, they do not appear when traversing over the document * tree. */ public static final int SHOW_ENTITY = 0x00000020; --- 88,99 ---- */ public static final int SHOW_ENTITY_REFERENCE = 0x00000010; /** ! * Show Entity nodes. This is meaningful only when creating ! * an NodeIterator or TreeWalker with an ! * Entity node as its root; in this case, it ! * means that the Entity node will appear in the first ! * position of the traversal. Since entities are not part of the ! * document tree, they do not appear when traversing over the document * tree. */ public static final int SHOW_ENTITY = 0x00000020; *************** public interface NodeFilter { *** 118,142 **** */ public static final int SHOW_DOCUMENT_FRAGMENT = 0x00000400; /** ! * Show Notation nodes. This is meaningful only when creating ! * an NodeIterator or TreeWalker with a ! * Notation node as its root; in this case, it ! * means that the Notation node will appear in the first ! * position of the traversal. Since notations are not part of the ! * document tree, they do not appear when traversing over the document * tree. */ public static final int SHOW_NOTATION = 0x00000800; /** ! * Test whether a specified node is visible in the logical view of a ! * TreeWalker or NodeIterator. This function ! * will be called by the implementation of TreeWalker and ! * NodeIterator; it is not normally called directly from ! * user code. (Though you could do so if you wanted to use the same * filter to guide your own application logic.) * @param n The node to check to see if it passes the filter or not. ! * @return A constant to determine whether the node is accepted, * rejected, or skipped, as defined above. */ public short acceptNode(Node n); --- 118,142 ---- */ public static final int SHOW_DOCUMENT_FRAGMENT = 0x00000400; /** ! * Show Notation nodes. This is meaningful only when creating ! * an NodeIterator or TreeWalker with a ! * Notation node as its root; in this case, it ! * means that the Notation node will appear in the first ! * position of the traversal. Since notations are not part of the ! * document tree, they do not appear when traversing over the document * tree. */ public static final int SHOW_NOTATION = 0x00000800; /** ! * Test whether a specified node is visible in the logical view of a ! * TreeWalker or NodeIterator. This function ! * will be called by the implementation of TreeWalker and ! * NodeIterator; it is not normally called directly from ! * user code. (Though you could do so if you wanted to use the same * filter to guide your own application logic.) * @param n The node to check to see if it passes the filter or not. ! * @return A constant to determine whether the node is accepted, * rejected, or skipped, as defined above. */ public short acceptNode(Node n); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 16,47 **** import org.w3c.dom.DOMException; /** ! * NodeIterators are used to step through a set of nodes, e.g. ! * the set of nodes in a NodeList, the document subtree ! * governed by a particular Node, the results of a query, or ! * any other set of nodes. The set of nodes to be iterated is determined by ! * the implementation of the NodeIterator. DOM Level 2 ! * specifies a single NodeIterator implementation for ! * document-order traversal of a document subtree. Instances of these ! * NodeIterators are created by calling * DocumentTraversal.createNodeIterator(). *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 */ public interface NodeIterator { /** ! * The root node of the NodeIterator, as specified when it * was created. */ public Node getRoot(); /** ! * This attribute determines which node types are presented via the ! * NodeIterator. The available set of constants is defined ! * in the NodeFilter interface. Nodes not accepted by ! * whatToShow will be skipped, but their children may still ! * be considered. Note that this skip takes precedence over the filter, ! * if any. */ public int getWhatToShow(); --- 16,47 ---- import org.w3c.dom.DOMException; /** ! * NodeIterators are used to step through a set of nodes, e.g. ! * the set of nodes in a NodeList, the document subtree ! * governed by a particular Node, the results of a query, or ! * any other set of nodes. The set of nodes to be iterated is determined by ! * the implementation of the NodeIterator. DOM Level 2 ! * specifies a single NodeIterator implementation for ! * document-order traversal of a document subtree. Instances of these ! * NodeIterators are created by calling * DocumentTraversal.createNodeIterator(). *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 */ public interface NodeIterator { /** ! * The root node of the NodeIterator, as specified when it * was created. */ public Node getRoot(); /** ! * This attribute determines which node types are presented via the ! * NodeIterator. The available set of constants is defined ! * in the NodeFilter interface. Nodes not accepted by ! * whatToShow will be skipped, but their children may still ! * be considered. Note that this skip takes precedence over the filter, ! * if any. */ public int getWhatToShow(); *************** public interface NodeIterator { *** 51,107 **** public NodeFilter getFilter(); /** ! * The value of this flag determines whether the children of entity ! * reference nodes are visible to the NodeIterator. If ! * false, these children and their descendants will be rejected. Note ! * that this rejection takes precedence over whatToShow and ! * the filter. Also note that this is currently the only situation where ! * NodeIterators may reject a complete subtree rather than ! * skipping individual nodes. *
      ! *
      To produce a view of the document that has entity references ! * expanded and does not expose the entity reference node itself, use ! * the whatToShow flags to hide the entity reference node ! * and set expandEntityReferences to true when creating the ! * NodeIterator. To produce a view of the document that has ! * entity reference nodes but no entity expansion, use the ! * whatToShow flags to show the entity reference node and * set expandEntityReferences to false. */ public boolean getExpandEntityReferences(); /** ! * Returns the next node in the set and advances the position of the ! * NodeIterator in the set. After a ! * NodeIterator is created, the first call to * nextNode() returns the first node in the set. ! * @return The next Node in the set being iterated over, or * null if there are no more members in that set. * @exception DOMException ! * INVALID_STATE_ERR: Raised if this method is called after the * detach method was invoked. */ public Node nextNode() throws DOMException; /** ! * Returns the previous node in the set and moves the position of the * NodeIterator backwards in the set. ! * @return The previous Node in the set being iterated over, ! * or null if there are no more members in that set. * @exception DOMException ! * INVALID_STATE_ERR: Raised if this method is called after the * detach method was invoked. */ public Node previousNode() throws DOMException; /** ! * Detaches the NodeIterator from the set which it iterated ! * over, releasing any computational resources and placing the ! * NodeIterator in the INVALID state. After ! * detach has been invoked, calls to nextNode ! * or previousNode will raise the exception * INVALID_STATE_ERR. */ public void detach(); --- 51,107 ---- public NodeFilter getFilter(); /** ! * The value of this flag determines whether the children of entity ! * reference nodes are visible to the NodeIterator. If ! * false, these children and their descendants will be rejected. Note ! * that this rejection takes precedence over whatToShow and ! * the filter. Also note that this is currently the only situation where ! * NodeIterators may reject a complete subtree rather than ! * skipping individual nodes. *
      ! *
      To produce a view of the document that has entity references ! * expanded and does not expose the entity reference node itself, use ! * the whatToShow flags to hide the entity reference node ! * and set expandEntityReferences to true when creating the ! * NodeIterator. To produce a view of the document that has ! * entity reference nodes but no entity expansion, use the ! * whatToShow flags to show the entity reference node and * set expandEntityReferences to false. */ public boolean getExpandEntityReferences(); /** ! * Returns the next node in the set and advances the position of the ! * NodeIterator in the set. After a ! * NodeIterator is created, the first call to * nextNode() returns the first node in the set. ! * @return The next Node in the set being iterated over, or * null if there are no more members in that set. * @exception DOMException ! * INVALID_STATE_ERR: Raised if this method is called after the * detach method was invoked. */ public Node nextNode() throws DOMException; /** ! * Returns the previous node in the set and moves the position of the * NodeIterator backwards in the set. ! * @return The previous Node in the set being iterated over, ! * or null if there are no more members in that set. * @exception DOMException ! * INVALID_STATE_ERR: Raised if this method is called after the * detach method was invoked. */ public Node previousNode() throws DOMException; /** ! * Detaches the NodeIterator from the set which it iterated ! * over, releasing any computational resources and placing the ! * NodeIterator in the INVALID state. After ! * detach has been invoked, calls to nextNode ! * or previousNode will raise the exception * INVALID_STATE_ERR. */ public void detach(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 16,52 **** import org.w3c.dom.DOMException; /** ! * TreeWalker objects are used to navigate a document tree or ! * subtree using the view of the document defined by their ! * whatToShow flags and filter (if any). Any function which ! * performs navigation using a TreeWalker will automatically * support any view defined by a TreeWalker. ! *

      Omitting nodes from the logical view of a subtree can result in a ! * structure that is substantially different from the same subtree in the ! * complete, unfiltered document. Nodes that are siblings in the ! * TreeWalker view may be children of different, widely ! * separated nodes in the original view. For instance, consider a ! * NodeFilter that skips all nodes except for Text nodes and ! * the root node of a document. In the logical view that results, all text ! * nodes will be siblings and appear as direct children of the root node, no * matter how deeply nested the structure of the original document. *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 */ public interface TreeWalker { /** ! * The root node of the TreeWalker, as specified * when it was created. */ public Node getRoot(); /** ! * This attribute determines which node types are presented via the ! * TreeWalker. The available set of constants is defined in ! * the NodeFilter interface. Nodes not accepted by ! * whatToShow will be skipped, but their children may still ! * be considered. Note that this skip takes precedence over the filter, ! * if any. */ public int getWhatToShow(); --- 16,52 ---- import org.w3c.dom.DOMException; /** ! * TreeWalker objects are used to navigate a document tree or ! * subtree using the view of the document defined by their ! * whatToShow flags and filter (if any). Any function which ! * performs navigation using a TreeWalker will automatically * support any view defined by a TreeWalker. ! *

      Omitting nodes from the logical view of a subtree can result in a ! * structure that is substantially different from the same subtree in the ! * complete, unfiltered document. Nodes that are siblings in the ! * TreeWalker view may be children of different, widely ! * separated nodes in the original view. For instance, consider a ! * NodeFilter that skips all nodes except for Text nodes and ! * the root node of a document. In the logical view that results, all text ! * nodes will be siblings and appear as direct children of the root node, no * matter how deeply nested the structure of the original document. *

      See also the Document Object Model (DOM) Level 2 Traversal and Range Specification. * @since DOM Level 2 */ public interface TreeWalker { /** ! * The root node of the TreeWalker, as specified * when it was created. */ public Node getRoot(); /** ! * This attribute determines which node types are presented via the ! * TreeWalker. The available set of constants is defined in ! * the NodeFilter interface. Nodes not accepted by ! * whatToShow will be skipped, but their children may still ! * be considered. Note that this skip takes precedence over the filter, ! * if any. */ public int getWhatToShow(); *************** public interface TreeWalker { *** 56,178 **** public NodeFilter getFilter(); /** ! * The value of this flag determines whether the children of entity ! * reference nodes are visible to the TreeWalker. If false, ! * these children and their descendants will be rejected. Note that ! * this rejection takes precedence over whatToShow and the ! * filter, if any. ! *
      To produce a view of the document that has entity references ! * expanded and does not expose the entity reference node itself, use ! * the whatToShow flags to hide the entity reference node ! * and set expandEntityReferences to true when creating the ! * TreeWalker. To produce a view of the document that has ! * entity reference nodes but no entity expansion, use the ! * whatToShow flags to show the entity reference node and * set expandEntityReferences to false. */ public boolean getExpandEntityReferences(); /** * The node at which the TreeWalker is currently positioned. ! *
      Alterations to the DOM tree may cause the current node to no longer ! * be accepted by the TreeWalker's associated filter. ! * currentNode may also be explicitly set to any node, ! * whether or not it is within the subtree specified by the ! * root node or would be accepted by the filter and ! * whatToShow flags. Further traversal occurs relative to ! * currentNode even if it is not part of the current view, ! * by applying the filters in the requested direction; if no traversal ! * is possible, currentNode is not changed. */ public Node getCurrentNode(); /** * The node at which the TreeWalker is currently positioned. ! *
      Alterations to the DOM tree may cause the current node to no longer ! * be accepted by the TreeWalker's associated filter. ! * currentNode may also be explicitly set to any node, ! * whether or not it is within the subtree specified by the ! * root node or would be accepted by the filter and ! * whatToShow flags. Further traversal occurs relative to ! * currentNode even if it is not part of the current view, ! * by applying the filters in the requested direction; if no traversal ! * is possible, currentNode is not changed. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if an attempt is made to set * currentNode to null. */ public void setCurrentNode(Node currentNode) throws DOMException; /** ! * Moves to and returns the closest visible ancestor node of the current ! * node. If the search for parentNode attempts to step ! * upward from the TreeWalker's root node, or ! * if it fails to find a visible ancestor node, this method retains the * current position and returns null. ! * @return The new parent node, or null if the current node ! * has no parent in the TreeWalker's logical view. */ public Node parentNode(); /** ! * Moves the TreeWalker to the first visible child of the ! * current node, and returns the new node. If the current node has no ! * visible children, returns null, and retains the current * node. ! * @return The new node, or null if the current node has no ! * visible children in the TreeWalker's logical view. */ public Node firstChild(); /** ! * Moves the TreeWalker to the last visible child of the ! * current node, and returns the new node. If the current node has no ! * visible children, returns null, and retains the current * node. ! * @return The new node, or null if the current node has no ! * children in the TreeWalker's logical view. */ public Node lastChild(); /** ! * Moves the TreeWalker to the previous sibling of the ! * current node, and returns the new node. If the current node has no ! * visible previous sibling, returns null, and retains the * current node. ! * @return The new node, or null if the current node has no ! * previous sibling. in the TreeWalker's logical view. */ public Node previousSibling(); /** ! * Moves the TreeWalker to the next sibling of the current ! * node, and returns the new node. If the current node has no visible * next sibling, returns null, and retains the current node. ! * @return The new node, or null if the current node has no ! * next sibling. in the TreeWalker's logical view. */ public Node nextSibling(); /** ! * Moves the TreeWalker to the previous visible node in ! * document order relative to the current node, and returns the new ! * node. If the current node has no previous node, or if the search for ! * previousNode attempts to step upward from the ! * TreeWalker's root node, returns ! * null, and retains the current node. ! * @return The new node, or null if the current node has no ! * previous node in the TreeWalker's logical view. */ public Node previousNode(); /** ! * Moves the TreeWalker to the next visible node in document ! * order relative to the current node, and returns the new node. If the ! * current node has no next node, or if the search for nextNode attempts ! * to step upward from the TreeWalker's root * node, returns null, and retains the current node. ! * @return The new node, or null if the current node has no ! * next node in the TreeWalker's logical view. */ public Node nextNode(); --- 56,178 ---- public NodeFilter getFilter(); /** ! * The value of this flag determines whether the children of entity ! * reference nodes are visible to the TreeWalker. If false, ! * these children and their descendants will be rejected. Note that ! * this rejection takes precedence over whatToShow and the ! * filter, if any. ! *
      To produce a view of the document that has entity references ! * expanded and does not expose the entity reference node itself, use ! * the whatToShow flags to hide the entity reference node ! * and set expandEntityReferences to true when creating the ! * TreeWalker. To produce a view of the document that has ! * entity reference nodes but no entity expansion, use the ! * whatToShow flags to show the entity reference node and * set expandEntityReferences to false. */ public boolean getExpandEntityReferences(); /** * The node at which the TreeWalker is currently positioned. ! *
      Alterations to the DOM tree may cause the current node to no longer ! * be accepted by the TreeWalker's associated filter. ! * currentNode may also be explicitly set to any node, ! * whether or not it is within the subtree specified by the ! * root node or would be accepted by the filter and ! * whatToShow flags. Further traversal occurs relative to ! * currentNode even if it is not part of the current view, ! * by applying the filters in the requested direction; if no traversal ! * is possible, currentNode is not changed. */ public Node getCurrentNode(); /** * The node at which the TreeWalker is currently positioned. ! *
      Alterations to the DOM tree may cause the current node to no longer ! * be accepted by the TreeWalker's associated filter. ! * currentNode may also be explicitly set to any node, ! * whether or not it is within the subtree specified by the ! * root node or would be accepted by the filter and ! * whatToShow flags. Further traversal occurs relative to ! * currentNode even if it is not part of the current view, ! * by applying the filters in the requested direction; if no traversal ! * is possible, currentNode is not changed. * @exception DOMException ! * NOT_SUPPORTED_ERR: Raised if an attempt is made to set * currentNode to null. */ public void setCurrentNode(Node currentNode) throws DOMException; /** ! * Moves to and returns the closest visible ancestor node of the current ! * node. If the search for parentNode attempts to step ! * upward from the TreeWalker's root node, or ! * if it fails to find a visible ancestor node, this method retains the * current position and returns null. ! * @return The new parent node, or null if the current node ! * has no parent in the TreeWalker's logical view. */ public Node parentNode(); /** ! * Moves the TreeWalker to the first visible child of the ! * current node, and returns the new node. If the current node has no ! * visible children, returns null, and retains the current * node. ! * @return The new node, or null if the current node has no ! * visible children in the TreeWalker's logical view. */ public Node firstChild(); /** ! * Moves the TreeWalker to the last visible child of the ! * current node, and returns the new node. If the current node has no ! * visible children, returns null, and retains the current * node. ! * @return The new node, or null if the current node has no ! * children in the TreeWalker's logical view. */ public Node lastChild(); /** ! * Moves the TreeWalker to the previous sibling of the ! * current node, and returns the new node. If the current node has no ! * visible previous sibling, returns null, and retains the * current node. ! * @return The new node, or null if the current node has no ! * previous sibling. in the TreeWalker's logical view. */ public Node previousSibling(); /** ! * Moves the TreeWalker to the next sibling of the current ! * node, and returns the new node. If the current node has no visible * next sibling, returns null, and retains the current node. ! * @return The new node, or null if the current node has no ! * next sibling. in the TreeWalker's logical view. */ public Node nextSibling(); /** ! * Moves the TreeWalker to the previous visible node in ! * document order relative to the current node, and returns the new ! * node. If the current node has no previous node, or if the search for ! * previousNode attempts to step upward from the ! * TreeWalker's root node, returns ! * null, and retains the current node. ! * @return The new node, or null if the current node has no ! * previous node in the TreeWalker's logical view. */ public Node previousNode(); /** ! * Moves the TreeWalker to the next visible node in document ! * order relative to the current node, and returns the new node. If the ! * current node has no next node, or if the search for nextNode attempts ! * to step upward from the TreeWalker's root * node, returns null, and retains the current node. ! * @return The new node, or null if the current node has no ! * next node in the TreeWalker's logical view. */ public Node nextNode(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java Tue Jan 11 19:46:05 2011 *************** package org.w3c.dom.views; *** 19,25 **** */ public interface AbstractView { /** ! * The source DocumentView of which this is an * AbstractView. */ public DocumentView getDocument(); --- 19,25 ---- */ public interface AbstractView { /** ! * The source DocumentView of which this is an * AbstractView. */ public DocumentView getDocument(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java Tue Jan 11 19:46:05 2011 *************** *** 13,28 **** package org.w3c.dom.views; /** ! * The DocumentView interface is implemented by ! * Document objects in DOM implementations supporting DOM ! * Views. It provides an attribute to retrieve the default view of a * document. *

      See also the Document Object Model (DOM) Level 2 Views Specification. * @since DOM Level 2 */ public interface DocumentView { /** ! * The default AbstractView for this Document, * or null if none available. */ public AbstractView getDefaultView(); --- 13,28 ---- package org.w3c.dom.views; /** ! * The DocumentView interface is implemented by ! * Document objects in DOM implementations supporting DOM ! * Views. It provides an attribute to retrieve the default view of a * document. *

      See also the Document Object Model (DOM) Level 2 Views Specification. * @since DOM Level 2 */ public interface DocumentView { /** ! * The default AbstractView for this Document, * or null if none available. */ public AbstractView getDefaultView(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 16,133 **** import org.w3c.dom.DOMException; /** ! * The evaluation of XPath expressions is provided by ! * XPathEvaluator. In a DOM implementation which supports the ! * XPath 3.0 feature, as described above, the XPathEvaluator ! * interface will be implemented on the same object which implements the ! * Document interface permitting it to be obtained by the usual ! * binding-specific method such as casting or by using the DOM Level 3 ! * getInterface method. In this case the implementation obtained from the ! * Document supports the XPath DOM module and is compatible with the XPath ! * 1.0 specification. ! *

      Evaluation of expressions with specialized extension functions or ! * variables may not work in all implementations and is, therefore, not ! * portable. XPathEvaluator implementations may be available ! * from other sources that could provide specific support for specialized ! * extension functions or variables as would be defined by other ! * specifications. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ public interface XPathEvaluator { /** ! * Creates a parsed XPath expression with resolved namespaces. This is ! * useful when an expression will be reused in an application since it ! * makes it possible to compile the expression string into a more ! * efficient internal form and preresolve all namespace prefixes which * occur within the expression. * @param expression The XPath expression string to be parsed. ! * @param resolver The resolver permits translation of all ! * prefixes, including the xml namespace prefix, within ! * the XPath expression into appropriate namespace URIs. If this is ! * specified as null, any namespace prefix within the ! * expression will result in DOMException being thrown * with the code NAMESPACE_ERR. * @return The compiled form of the XPath expression. * @exception XPathException ! * INVALID_EXPRESSION_ERR: Raised if the expression is not legal * according to the rules of the XPathEvaluator. * @exception DOMException ! * NAMESPACE_ERR: Raised if the expression contains namespace prefixes ! * which cannot be resolved by the specified * XPathNSResolver. */ ! public XPathExpression createExpression(String expression, XPathNSResolver resolver) throws XPathException, DOMException; /** ! * Adapts any DOM node to resolve namespaces so that an XPath expression ! * can be easily evaluated relative to the context of the node where it ! * appeared within the document. This adapter works like the DOM Level 3 ! * method lookupNamespaceURI on nodes in resolving the ! * namespaceURI from a given prefix using the current information ! * available in the node's hierarchy at the time lookupNamespaceURI is * called. also correctly resolving the implicit xml prefix. ! * @param nodeResolver The node to be used as a context for namespace * resolution. ! * @return XPathNSResolver which resolves namespaces with * respect to the definitions in scope for a specified node. */ public XPathNSResolver createNSResolver(Node nodeResolver); /** ! * Evaluates an XPath expression string and returns a result of the * specified type if possible. ! * @param expression The XPath expression string to be parsed and * evaluated. ! * @param contextNode The context is context node for the ! * evaluation of this XPath expression. If the XPathEvaluator was ! * obtained by casting the Document then this must be ! * owned by the same document and must be a Document, ! * Element, Attribute, Text, ! * CDATASection, Comment, ! * ProcessingInstruction, or XPathNamespace ! * node. If the context node is a Text or a ! * CDATASection, then the context is interpreted as the ! * whole logical text node as seen by XPath, unless the node is empty * in which case it may not serve as the XPath context. ! * @param resolver The resolver permits translation of all ! * prefixes, including the xml namespace prefix, within ! * the XPath expression into appropriate namespace URIs. If this is ! * specified as null, any namespace prefix within the ! * expression will result in DOMException being thrown * with the code NAMESPACE_ERR. ! * @param type If a specific type is specified, then the ! * result will be returned as the corresponding type.For XPath 1.0 ! * results, this must be one of the codes of the * XPathResult interface. ! * @param result The result specifies a specific result ! * object which may be reused and returned by this method. If this is ! * specified as nullor the implementation does not reuse ! * the specified result, a new result object will be constructed and ! * returned.For XPath 1.0 results, this object will be of type * XPathResult. ! * @return The result of the evaluation of the XPath expression.For XPath * 1.0 results, this object will be of type XPathResult. * @exception XPathException ! * INVALID_EXPRESSION_ERR: Raised if the expression is not legal * according to the rules of the XPathEvaluatori ! *
      TYPE_ERR: Raised if the result cannot be converted to return the * specified type. * @exception DOMException ! * NAMESPACE_ERR: Raised if the expression contains namespace prefixes ! * which cannot be resolved by the specified * XPathNSResolver. ! *
      WRONG_DOCUMENT_ERR: The Node is from a document that is not * supported by this XPathEvaluator. ! *
      NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath ! * context node or the request type is not permitted by this * XPathEvaluator. */ ! public Object evaluate(String expression, ! Node contextNode, ! XPathNSResolver resolver, ! short type, Object result) throws XPathException, DOMException; --- 16,133 ---- import org.w3c.dom.DOMException; /** ! * The evaluation of XPath expressions is provided by ! * XPathEvaluator. In a DOM implementation which supports the ! * XPath 3.0 feature, as described above, the XPathEvaluator ! * interface will be implemented on the same object which implements the ! * Document interface permitting it to be obtained by the usual ! * binding-specific method such as casting or by using the DOM Level 3 ! * getInterface method. In this case the implementation obtained from the ! * Document supports the XPath DOM module and is compatible with the XPath ! * 1.0 specification. ! *

      Evaluation of expressions with specialized extension functions or ! * variables may not work in all implementations and is, therefore, not ! * portable. XPathEvaluator implementations may be available ! * from other sources that could provide specific support for specialized ! * extension functions or variables as would be defined by other ! * specifications. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ public interface XPathEvaluator { /** ! * Creates a parsed XPath expression with resolved namespaces. This is ! * useful when an expression will be reused in an application since it ! * makes it possible to compile the expression string into a more ! * efficient internal form and preresolve all namespace prefixes which * occur within the expression. * @param expression The XPath expression string to be parsed. ! * @param resolver The resolver permits translation of all ! * prefixes, including the xml namespace prefix, within ! * the XPath expression into appropriate namespace URIs. If this is ! * specified as null, any namespace prefix within the ! * expression will result in DOMException being thrown * with the code NAMESPACE_ERR. * @return The compiled form of the XPath expression. * @exception XPathException ! * INVALID_EXPRESSION_ERR: Raised if the expression is not legal * according to the rules of the XPathEvaluator. * @exception DOMException ! * NAMESPACE_ERR: Raised if the expression contains namespace prefixes ! * which cannot be resolved by the specified * XPathNSResolver. */ ! public XPathExpression createExpression(String expression, XPathNSResolver resolver) throws XPathException, DOMException; /** ! * Adapts any DOM node to resolve namespaces so that an XPath expression ! * can be easily evaluated relative to the context of the node where it ! * appeared within the document. This adapter works like the DOM Level 3 ! * method lookupNamespaceURI on nodes in resolving the ! * namespaceURI from a given prefix using the current information ! * available in the node's hierarchy at the time lookupNamespaceURI is * called. also correctly resolving the implicit xml prefix. ! * @param nodeResolver The node to be used as a context for namespace * resolution. ! * @return XPathNSResolver which resolves namespaces with * respect to the definitions in scope for a specified node. */ public XPathNSResolver createNSResolver(Node nodeResolver); /** ! * Evaluates an XPath expression string and returns a result of the * specified type if possible. ! * @param expression The XPath expression string to be parsed and * evaluated. ! * @param contextNode The context is context node for the ! * evaluation of this XPath expression. If the XPathEvaluator was ! * obtained by casting the Document then this must be ! * owned by the same document and must be a Document, ! * Element, Attribute, Text, ! * CDATASection, Comment, ! * ProcessingInstruction, or XPathNamespace ! * node. If the context node is a Text or a ! * CDATASection, then the context is interpreted as the ! * whole logical text node as seen by XPath, unless the node is empty * in which case it may not serve as the XPath context. ! * @param resolver The resolver permits translation of all ! * prefixes, including the xml namespace prefix, within ! * the XPath expression into appropriate namespace URIs. If this is ! * specified as null, any namespace prefix within the ! * expression will result in DOMException being thrown * with the code NAMESPACE_ERR. ! * @param type If a specific type is specified, then the ! * result will be returned as the corresponding type.For XPath 1.0 ! * results, this must be one of the codes of the * XPathResult interface. ! * @param result The result specifies a specific result ! * object which may be reused and returned by this method. If this is ! * specified as nullor the implementation does not reuse ! * the specified result, a new result object will be constructed and ! * returned.For XPath 1.0 results, this object will be of type * XPathResult. ! * @return The result of the evaluation of the XPath expression.For XPath * 1.0 results, this object will be of type XPathResult. * @exception XPathException ! * INVALID_EXPRESSION_ERR: Raised if the expression is not legal * according to the rules of the XPathEvaluatori ! *
      TYPE_ERR: Raised if the result cannot be converted to return the * specified type. * @exception DOMException ! * NAMESPACE_ERR: Raised if the expression contains namespace prefixes ! * which cannot be resolved by the specified * XPathNSResolver. ! *
      WRONG_DOCUMENT_ERR: The Node is from a document that is not * supported by this XPathEvaluator. ! *
      NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath ! * context node or the request type is not permitted by this * XPathEvaluator. */ ! public Object evaluate(String expression, ! Node contextNode, ! XPathNSResolver resolver, ! short type, Object result) throws XPathException, DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java Tue Jan 11 19:46:05 2011 *************** *** 13,19 **** package org.w3c.dom.xpath; /** ! * A new exception has been created for exceptions specific to these XPath * interfaces. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ --- 13,19 ---- package org.w3c.dom.xpath; /** ! * A new exception has been created for exceptions specific to these XPath * interfaces. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ *************** public class XPathException extends Runt *** 25,33 **** public short code; // XPathExceptionCode /** ! * If the expression has a syntax error or otherwise is not a legal ! * expression according to the rules of the specific ! * XPathEvaluator or contains specialized extension * functions or variables not supported by this implementation. */ public static final short INVALID_EXPRESSION_ERR = 51; --- 25,33 ---- public short code; // XPathExceptionCode /** ! * If the expression has a syntax error or otherwise is not a legal ! * expression according to the rules of the specific ! * XPathEvaluator or contains specialized extension * functions or variables not supported by this implementation. */ public static final short INVALID_EXPRESSION_ERR = 51; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 16,64 **** import org.w3c.dom.DOMException; /** ! * The XPathExpression interface represents a parsed and resolved * XPath expression. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ public interface XPathExpression { /** * Evaluates this XPath expression and returns a result. ! * @param contextNode The context is context node for the ! * evaluation of this XPath expression.If the XPathEvaluator was ! * obtained by casting the Document then this must be ! * owned by the same document and must be a Document, ! * Element, Attribute, Text, ! * CDATASection, Comment, ! * ProcessingInstruction, or XPathNamespace ! * node.If the context node is a Text or a ! * CDATASection, then the context is interpreted as the ! * whole logical text node as seen by XPath, unless the node is empty * in which case it may not serve as the XPath context. ! * @param type If a specific type is specified, then the ! * result will be coerced to return the specified type relying on ! * XPath conversions and fail if the desired coercion is not possible. * This must be one of the type codes of XPathResult. ! * @param result The result specifies a specific result ! * object which may be reused and returned by this method. If this is ! * specified as nullor the implementation does not reuse ! * the specified result, a new result object will be constructed and ! * returned.For XPath 1.0 results, this object will be of type * XPathResult. ! * @return The result of the evaluation of the XPath expression.For XPath * 1.0 results, this object will be of type XPathResult. * @exception XPathException ! * TYPE_ERR: Raised if the result cannot be converted to return the * specified type. * @exception DOMException ! * WRONG_DOCUMENT_ERR: The Node is from a document that is not supported * by the XPathEvaluator that created this XPathExpression * . ! *
      NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath ! * context node or the request type is not permitted by this * XPathExpression. */ ! public Object evaluate(Node contextNode, ! short type, Object result) throws XPathException, DOMException; --- 16,64 ---- import org.w3c.dom.DOMException; /** ! * The XPathExpression interface represents a parsed and resolved * XPath expression. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ public interface XPathExpression { /** * Evaluates this XPath expression and returns a result. ! * @param contextNode The context is context node for the ! * evaluation of this XPath expression.If the XPathEvaluator was ! * obtained by casting the Document then this must be ! * owned by the same document and must be a Document, ! * Element, Attribute, Text, ! * CDATASection, Comment, ! * ProcessingInstruction, or XPathNamespace ! * node.If the context node is a Text or a ! * CDATASection, then the context is interpreted as the ! * whole logical text node as seen by XPath, unless the node is empty * in which case it may not serve as the XPath context. ! * @param type If a specific type is specified, then the ! * result will be coerced to return the specified type relying on ! * XPath conversions and fail if the desired coercion is not possible. * This must be one of the type codes of XPathResult. ! * @param result The result specifies a specific result ! * object which may be reused and returned by this method. If this is ! * specified as nullor the implementation does not reuse ! * the specified result, a new result object will be constructed and ! * returned.For XPath 1.0 results, this object will be of type * XPathResult. ! * @return The result of the evaluation of the XPath expression.For XPath * 1.0 results, this object will be of type XPathResult. * @exception XPathException ! * TYPE_ERR: Raised if the result cannot be converted to return the * specified type. * @exception DOMException ! * WRONG_DOCUMENT_ERR: The Node is from a document that is not supported * by the XPathEvaluator that created this XPathExpression * . ! *
      NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath ! * context node or the request type is not permitted by this * XPathExpression. */ ! public Object evaluate(Node contextNode, ! short type, Object result) throws XPathException, DOMException; diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java Tue Jan 11 19:46:05 2011 *************** *** 13,32 **** package org.w3c.dom.xpath; /** ! * The XPathNSResolver interface permit prefix ! * strings in the expression to be properly bound to ! * namespaceURI strings. XPathEvaluator can ! * construct an implementation of XPathNSResolver from a node, * or the interface may be implemented by any application. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ public interface XPathNSResolver { /** ! * Look up the namespace URI associated to the given namespace prefix. The ! * XPath evaluator must never call this with a null or * empty argument, because the result of doing this is undefined. * @param prefix The prefix to look for. ! * @return Returns the associated namespace URI or null if * none is found. */ public String lookupNamespaceURI(String prefix); --- 13,32 ---- package org.w3c.dom.xpath; /** ! * The XPathNSResolver interface permit prefix ! * strings in the expression to be properly bound to ! * namespaceURI strings. XPathEvaluator can ! * construct an implementation of XPathNSResolver from a node, * or the interface may be implemented by any application. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ public interface XPathNSResolver { /** ! * Look up the namespace URI associated to the given namespace prefix. The ! * XPath evaluator must never call this with a null or * empty argument, because the result of doing this is undefined. * @param prefix The prefix to look for. ! * @return Returns the associated namespace URI or null if * none is found. */ public String lookupNamespaceURI(String prefix); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Element; *** 16,51 **** import org.w3c.dom.Node; /** ! * The XPathNamespace interface is returned by ! * XPathResult interfaces to represent the XPath namespace node ! * type that DOM lacks. There is no public constructor for this node type. ! * Attempts to place it into a hierarchy or a NamedNodeMap result in a * DOMException with the code HIERARCHY_REQUEST_ERR ! * . This node is read only, so methods or setting of attributes that would ! * mutate the node result in a DOMException with the code * NO_MODIFICATION_ALLOWED_ERR. ! *

      The core specification describes attributes of the Node ! * interface that are different for different node types but does not ! * describe XPATH_NAMESPACE_NODE, so here is a description of ! * those attributes for this node type. All attributes of Node ! * not described in this section have a null or * false value. ! *

      ownerDocument matches the ownerDocument of the * ownerElement even if the element is later adopted. *

      nodeName is always the string "#namespace". ! *

      prefix is the prefix of the namespace represented by the * node. *

      localName is the same as prefix. *

      nodeType is equal to XPATH_NAMESPACE_NODE. ! *

      namespaceURI is the namespace URI of the namespace * represented by the node. *

      nodeValue is the same as namespaceURI. ! *

      adoptNode, cloneNode, and ! * importNode fail on this node type by raising a * DOMException with the code NOT_SUPPORTED_ERR. ! *

      Note: In future versions of the XPath specification, the ! * definition of a namespace node may be changed incomatibly, in which case ! * incompatible changes to field values may be required to implement * versions beyond XPath 1.0. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ --- 16,51 ---- import org.w3c.dom.Node; /** ! * The XPathNamespace interface is returned by ! * XPathResult interfaces to represent the XPath namespace node ! * type that DOM lacks. There is no public constructor for this node type. ! * Attempts to place it into a hierarchy or a NamedNodeMap result in a * DOMException with the code HIERARCHY_REQUEST_ERR ! * . This node is read only, so methods or setting of attributes that would ! * mutate the node result in a DOMException with the code * NO_MODIFICATION_ALLOWED_ERR. ! *

      The core specification describes attributes of the Node ! * interface that are different for different node types but does not ! * describe XPATH_NAMESPACE_NODE, so here is a description of ! * those attributes for this node type. All attributes of Node ! * not described in this section have a null or * false value. ! *

      ownerDocument matches the ownerDocument of the * ownerElement even if the element is later adopted. *

      nodeName is always the string "#namespace". ! *

      prefix is the prefix of the namespace represented by the * node. *

      localName is the same as prefix. *

      nodeType is equal to XPATH_NAMESPACE_NODE. ! *

      namespaceURI is the namespace URI of the namespace * represented by the node. *

      nodeValue is the same as namespaceURI. ! *

      adoptNode, cloneNode, and ! * importNode fail on this node type by raising a * DOMException with the code NOT_SUPPORTED_ERR. ! *

      Note: In future versions of the XPath specification, the ! * definition of a namespace node may be changed incomatibly, in which case ! * incompatible changes to field values may be required to implement * versions beyond XPath 1.0. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ *************** public interface XPathNamespace extends *** 57,65 **** public static final short XPATH_NAMESPACE_NODE = 13; /** ! * The Element on which the namespace was in scope when it ! * was requested. This does not change on a returned namespace node even ! * if the document changes such that the namespace goes out of scope on * that element and this node is no longer found there by XPath. */ public Element getOwnerElement(); --- 57,65 ---- public static final short XPATH_NAMESPACE_NODE = 13; /** ! * The Element on which the namespace was in scope when it ! * was requested. This does not change on a returned namespace node even ! * if the document changes such that the namespace goes out of scope on * that element and this node is no longer found there by XPath. */ public Element getOwnerElement(); diff -Nrcpad gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java *** gcc-4.5.2/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.Node; *** 16,130 **** import org.w3c.dom.DOMException; /** ! * The XPathResult interface represents the result of the ! * evaluation of an XPath 1.0 expression within the context of a particular ! * node. Since evaluation of an XPath expression can result in various ! * result types, this object makes it possible to discover and manipulate * the type and value of the result. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ public interface XPathResult { // XPathResultType /** ! * This code does not represent a specific type. An evaluation of an XPath ! * expression will never produce this type. If this type is requested, ! * then the evaluation returns whatever type naturally results from ! * evaluation of the expression. ! *
      If the natural result is a node set when ANY_TYPE was ! * requested, then UNORDERED_NODE_ITERATOR_TYPE is always ! * the resulting type. Any other representation of a node set must be * explicitly requested. */ public static final short ANY_TYPE = 0; /** ! * The result is a number as defined by [XPath 1.0]. ! * Document modification does not invalidate the number, but may mean * that reevaluation would not yield the same number. */ public static final short NUMBER_TYPE = 1; /** ! * The result is a string as defined by [XPath 1.0]. ! * Document modification does not invalidate the string, but may mean * that the string no longer corresponds to the current document. */ public static final short STRING_TYPE = 2; /** ! * The result is a boolean as defined by [XPath 1.0]. ! * Document modification does not invalidate the boolean, but may mean * that reevaluation would not yield the same boolean. */ public static final short BOOLEAN_TYPE = 3; /** ! * The result is a node set as defined by [XPath 1.0] that ! * will be accessed iteratively, which may not produce nodes in a * particular order. Document modification invalidates the iteration. ! *
      This is the default type returned if the result is a node set and * ANY_TYPE is requested. */ public static final short UNORDERED_NODE_ITERATOR_TYPE = 4; /** ! * The result is a node set as defined by [XPath 1.0] that ! * will be accessed iteratively, which will produce document-ordered * nodes. Document modification invalidates the iteration. */ public static final short ORDERED_NODE_ITERATOR_TYPE = 5; /** ! * The result is a node set as defined by [XPath 1.0] that ! * will be accessed as a snapshot list of nodes that may not be in a ! * particular order. Document modification does not invalidate the ! * snapshot but may mean that reevaluation would not yield the same ! * snapshot and nodes in the snapshot may have been altered, moved, or * removed from the document. */ public static final short UNORDERED_NODE_SNAPSHOT_TYPE = 6; /** ! * The result is a node set as defined by [XPath 1.0] that ! * will be accessed as a snapshot list of nodes that will be in original ! * document order. Document modification does not invalidate the ! * snapshot but may mean that reevaluation would not yield the same ! * snapshot and nodes in the snapshot may have been altered, moved, or * removed from the document. */ public static final short ORDERED_NODE_SNAPSHOT_TYPE = 7; /** ! * The result is a node set as defined by [XPath 1.0] and ! * will be accessed as a single node, which may be nullif ! * the node set is empty. Document modification does not invalidate the ! * node, but may mean that the result node no longer corresponds to the ! * current document. This is a convenience that permits optimization ! * since the implementation can stop once any node in the resulting set * has been found. ! *
      If there is more than one node in the actual result, the single * node returned might not be the first in document order. */ public static final short ANY_UNORDERED_NODE_TYPE = 8; /** ! * The result is a node set as defined by [XPath 1.0] and ! * will be accessed as a single node, which may be null if ! * the node set is empty. Document modification does not invalidate the ! * node, but may mean that the result node no longer corresponds to the ! * current document. This is a convenience that permits optimization ! * since the implementation can stop once the first node in document * order of the resulting set has been found. ! *
      If there are more than one node in the actual result, the single * node returned will be the first in document order. */ public static final short FIRST_ORDERED_NODE_TYPE = 9; /** ! * A code representing the type of this result, as defined by the type * constants. */ public short getResultType(); /** ! * The value of this number result. If the native double type of the DOM ! * binding does not directly support the exact IEEE 754 result of the ! * XPath expression, then it is up to the definition of the binding to ! * specify how the XPath number is converted to the native binding * number. * @exception XPathException ! * TYPE_ERR: raised if resultType is not * NUMBER_TYPE. */ public double getNumberValue() --- 16,130 ---- import org.w3c.dom.DOMException; /** ! * The XPathResult interface represents the result of the ! * evaluation of an XPath 1.0 expression within the context of a particular ! * node. Since evaluation of an XPath expression can result in various ! * result types, this object makes it possible to discover and manipulate * the type and value of the result. *

      See also the Document Object Model (DOM) Level 3 XPath Specification. */ public interface XPathResult { // XPathResultType /** ! * This code does not represent a specific type. An evaluation of an XPath ! * expression will never produce this type. If this type is requested, ! * then the evaluation returns whatever type naturally results from ! * evaluation of the expression. ! *
      If the natural result is a node set when ANY_TYPE was ! * requested, then UNORDERED_NODE_ITERATOR_TYPE is always ! * the resulting type. Any other representation of a node set must be * explicitly requested. */ public static final short ANY_TYPE = 0; /** ! * The result is a number as defined by [XPath 1.0]. ! * Document modification does not invalidate the number, but may mean * that reevaluation would not yield the same number. */ public static final short NUMBER_TYPE = 1; /** ! * The result is a string as defined by [XPath 1.0]. ! * Document modification does not invalidate the string, but may mean * that the string no longer corresponds to the current document. */ public static final short STRING_TYPE = 2; /** ! * The result is a boolean as defined by [XPath 1.0]. ! * Document modification does not invalidate the boolean, but may mean * that reevaluation would not yield the same boolean. */ public static final short BOOLEAN_TYPE = 3; /** ! * The result is a node set as defined by [XPath 1.0] that ! * will be accessed iteratively, which may not produce nodes in a * particular order. Document modification invalidates the iteration. ! *
      This is the default type returned if the result is a node set and * ANY_TYPE is requested. */ public static final short UNORDERED_NODE_ITERATOR_TYPE = 4; /** ! * The result is a node set as defined by [XPath 1.0] that ! * will be accessed iteratively, which will produce document-ordered * nodes. Document modification invalidates the iteration. */ public static final short ORDERED_NODE_ITERATOR_TYPE = 5; /** ! * The result is a node set as defined by [XPath 1.0] that ! * will be accessed as a snapshot list of nodes that may not be in a ! * particular order. Document modification does not invalidate the ! * snapshot but may mean that reevaluation would not yield the same ! * snapshot and nodes in the snapshot may have been altered, moved, or * removed from the document. */ public static final short UNORDERED_NODE_SNAPSHOT_TYPE = 6; /** ! * The result is a node set as defined by [XPath 1.0] that ! * will be accessed as a snapshot list of nodes that will be in original ! * document order. Document modification does not invalidate the ! * snapshot but may mean that reevaluation would not yield the same ! * snapshot and nodes in the snapshot may have been altered, moved, or * removed from the document. */ public static final short ORDERED_NODE_SNAPSHOT_TYPE = 7; /** ! * The result is a node set as defined by [XPath 1.0] and ! * will be accessed as a single node, which may be nullif ! * the node set is empty. Document modification does not invalidate the ! * node, but may mean that the result node no longer corresponds to the ! * current document. This is a convenience that permits optimization ! * since the implementation can stop once any node in the resulting set * has been found. ! *
      If there is more than one node in the actual result, the single * node returned might not be the first in document order. */ public static final short ANY_UNORDERED_NODE_TYPE = 8; /** ! * The result is a node set as defined by [XPath 1.0] and ! * will be accessed as a single node, which may be null if ! * the node set is empty. Document modification does not invalidate the ! * node, but may mean that the result node no longer corresponds to the ! * current document. This is a convenience that permits optimization ! * since the implementation can stop once the first node in document * order of the resulting set has been found. ! *
      If there are more than one node in the actual result, the single * node returned will be the first in document order. */ public static final short FIRST_ORDERED_NODE_TYPE = 9; /** ! * A code representing the type of this result, as defined by the type * constants. */ public short getResultType(); /** ! * The value of this number result. If the native double type of the DOM ! * binding does not directly support the exact IEEE 754 result of the ! * XPath expression, then it is up to the definition of the binding to ! * specify how the XPath number is converted to the native binding * number. * @exception XPathException ! * TYPE_ERR: raised if resultType is not * NUMBER_TYPE. */ public double getNumberValue() *************** public interface XPathResult { *** 133,139 **** /** * The value of this string result. * @exception XPathException ! * TYPE_ERR: raised if resultType is not * STRING_TYPE. */ public String getStringValue() --- 133,139 ---- /** * The value of this string result. * @exception XPathException ! * TYPE_ERR: raised if resultType is not * STRING_TYPE. */ public String getStringValue() *************** public interface XPathResult { *** 142,148 **** /** * The value of this boolean result. * @exception XPathException ! * TYPE_ERR: raised if resultType is not * BOOLEAN_TYPE. */ public boolean getBooleanValue() --- 142,148 ---- /** * The value of this boolean result. * @exception XPathException ! * TYPE_ERR: raised if resultType is not * BOOLEAN_TYPE. */ public boolean getBooleanValue() *************** public interface XPathResult { *** 151,211 **** /** * The value of this single node result, which may be null. * @exception XPathException ! * TYPE_ERR: raised if resultType is not ! * ANY_UNORDERED_NODE_TYPE or * FIRST_ORDERED_NODE_TYPE. */ public Node getSingleNodeValue() throws XPathException; /** ! * Signifies that the iterator has become invalid. True if ! * resultType is UNORDERED_NODE_ITERATOR_TYPE ! * or ORDERED_NODE_ITERATOR_TYPE and the document has been * modified since this result was returned. */ public boolean getInvalidIteratorState(); /** ! * The number of nodes in the result snapshot. Valid values for ! * snapshotItem indices are 0 to * snapshotLength-1 inclusive. * @exception XPathException ! * TYPE_ERR: raised if resultType is not ! * UNORDERED_NODE_SNAPSHOT_TYPE or * ORDERED_NODE_SNAPSHOT_TYPE. */ public int getSnapshotLength() throws XPathException; /** ! * Iterates and returns the next node from the node set or * nullif there are no more nodes. * @return Returns the next node. * @exception XPathException ! * TYPE_ERR: raised if resultType is not ! * UNORDERED_NODE_ITERATOR_TYPE or * ORDERED_NODE_ITERATOR_TYPE. * @exception DOMException ! * INVALID_STATE_ERR: The document has been mutated since the result was * returned. */ public Node iterateNext() throws XPathException, DOMException; /** ! * Returns the indexth item in the snapshot collection. If ! * index is greater than or equal to the number of nodes in ! * the list, this method returns null. Unlike the iterator ! * result, the snapshot does not become invalid, but may not correspond * to the current document if it is mutated. * @param index Index into the snapshot collection. ! * @return The node at the indexth position in the ! * NodeList, or null if that is not a valid * index. * @exception XPathException ! * TYPE_ERR: raised if resultType is not ! * UNORDERED_NODE_SNAPSHOT_TYPE or * ORDERED_NODE_SNAPSHOT_TYPE. */ public Node snapshotItem(int index) --- 151,211 ---- /** * The value of this single node result, which may be null. * @exception XPathException ! * TYPE_ERR: raised if resultType is not ! * ANY_UNORDERED_NODE_TYPE or * FIRST_ORDERED_NODE_TYPE. */ public Node getSingleNodeValue() throws XPathException; /** ! * Signifies that the iterator has become invalid. True if ! * resultType is UNORDERED_NODE_ITERATOR_TYPE ! * or ORDERED_NODE_ITERATOR_TYPE and the document has been * modified since this result was returned. */ public boolean getInvalidIteratorState(); /** ! * The number of nodes in the result snapshot. Valid values for ! * snapshotItem indices are 0 to * snapshotLength-1 inclusive. * @exception XPathException ! * TYPE_ERR: raised if resultType is not ! * UNORDERED_NODE_SNAPSHOT_TYPE or * ORDERED_NODE_SNAPSHOT_TYPE. */ public int getSnapshotLength() throws XPathException; /** ! * Iterates and returns the next node from the node set or * nullif there are no more nodes. * @return Returns the next node. * @exception XPathException ! * TYPE_ERR: raised if resultType is not ! * UNORDERED_NODE_ITERATOR_TYPE or * ORDERED_NODE_ITERATOR_TYPE. * @exception DOMException ! * INVALID_STATE_ERR: The document has been mutated since the result was * returned. */ public Node iterateNext() throws XPathException, DOMException; /** ! * Returns the indexth item in the snapshot collection. If ! * index is greater than or equal to the number of nodes in ! * the list, this method returns null. Unlike the iterator ! * result, the snapshot does not become invalid, but may not correspond * to the current document if it is mutated. * @param index Index into the snapshot collection. ! * @return The node at the indexth position in the ! * NodeList, or null if that is not a valid * index. * @exception XPathException ! * TYPE_ERR: raised if resultType is not ! * UNORDERED_NODE_SNAPSHOT_TYPE or * ORDERED_NODE_SNAPSHOT_TYPE. */ public Node snapshotItem(int index) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/BigDecimalHelper.java gcc-4.6.0/libjava/classpath/gnu/CORBA/BigDecimalHelper.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/BigDecimalHelper.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/BigDecimalHelper.java Tue Jan 11 19:46:05 2011 *************** public class BigDecimalHelper *** 117,123 **** if (f >= 0) bout.write(f); } ! // The last byte has 0xC or 0xD in the last halfbyte. while ((f & 0xF) <= 0x9); return createFixed(scale, bout.toByteArray()); --- 117,123 ---- if (f >= 0) bout.write(f); } ! // The last byte has 0xC or 0xD in the last halfbyte. while ((f & 0xF) <= 0x9); return createFixed(scale, bout.toByteArray()); *************** public class BigDecimalHelper *** 126,132 **** /** * Write the big decimal as CORBA fixed<.code>. * The scale will not be stored. ! * * @param out a stream to write into. * @param x a big decimal to write. * --- 126,132 ---- /** * Write the big decimal as CORBA fixed<.code>. * The scale will not be stored. ! * * @param out a stream to write into. * @param x a big decimal to write. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java Tue Jan 11 19:46:05 2011 *************** import java.math.BigDecimal; *** 86,98 **** * from the given {@link java.io.InputStream}. The primitive types are aligned * on they natural boundaries by implementing the abstract method * {@link #align(int boundary)}. ! * * The same class also implements {@link org.omg.CORBA.DataInputStream} to read * the object content in a user defined way. ! * * TODO This class uses 16 bits per Unicode character only, as it was until jdk * 1.4 inclusive. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public abstract class AbstractCdrInput --- 86,98 ---- * from the given {@link java.io.InputStream}. The primitive types are aligned * on they natural boundaries by implementing the abstract method * {@link #align(int boundary)}. ! * * The same class also implements {@link org.omg.CORBA.DataInputStream} to read * the object content in a user defined way. ! * * TODO This class uses 16 bits per Unicode character only, as it was until jdk * 1.4 inclusive. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public abstract class AbstractCdrInput *************** public abstract class AbstractCdrInput *** 173,179 **** /** * Creates the stream. The stream reads Big Endian by default. ! * * @param readFrom a stream to read CORBA input from. */ public AbstractCdrInput(java.io.InputStream readFrom) --- 173,179 ---- /** * Creates the stream. The stream reads Big Endian by default. ! * * @param readFrom a stream to read CORBA input from. */ public AbstractCdrInput(java.io.InputStream readFrom) *************** public abstract class AbstractCdrInput *** 194,200 **** /** * Set the Big Endian or Little Endian encoding. The stream reads Big Endian * by default. ! * * @param use_big_endian if true, the stream expect the multi-byte data in * the form "most significant byte first" (Big Endian). This is the * java standard. --- 194,200 ---- /** * Set the Big Endian or Little Endian encoding. The stream reads Big Endian * by default. ! * * @param use_big_endian if true, the stream expect the multi-byte data in * the form "most significant byte first" (Big Endian). This is the * java standard. *************** public abstract class AbstractCdrInput *** 207,213 **** /** * Get the used encoding. ! * * @return true for Big Endian, false for Little Endian. */ public boolean isBigEndian() --- 207,213 ---- /** * Get the used encoding. ! * * @return true for Big Endian, false for Little Endian. */ public boolean isBigEndian() *************** public abstract class AbstractCdrInput *** 228,234 **** /** * Set the input stream that receives the CORBA input. ! * * @param readFrom the stream. */ public void setInputStream(java.io.InputStream readFrom) --- 228,234 ---- /** * Set the input stream that receives the CORBA input. ! * * @param readFrom the stream. */ public void setInputStream(java.io.InputStream readFrom) *************** public abstract class AbstractCdrInput *** 249,255 **** /** * Set the orb, associated with this stream. ! * * @param an_orb */ public void setOrb(ORB an_orb) --- 249,255 ---- /** * Set the orb, associated with this stream. ! * * @param an_orb */ public void setOrb(ORB an_orb) *************** public abstract class AbstractCdrInput *** 323,329 **** /** * Return the associated {@link ORB}. ! * * @return the associated {@link ORB} or null is no such is set. */ public ORB orb() --- 323,329 ---- /** * Return the associated {@link ORB}. ! * * @return the associated {@link ORB} or null is no such is set. */ public ORB orb() *************** public abstract class AbstractCdrInput *** 393,406 **** * plain (not a string-encoded) IOR profile without the heading endian * indicator. The responsible method for reading such data is * {@link IOR.read_no_endian}. ! * * The returned object is usually casted into the given type using the .narrow * method of its helper, despite in some cases the direct cast would also * work. ! * * The null objects are recognised from the empty profile set. For such * objects, null is returned. ! * * @return the loaded and constructed object. */ public org.omg.CORBA.Object read_Object() --- 393,406 ---- * plain (not a string-encoded) IOR profile without the heading endian * indicator. The responsible method for reading such data is * {@link IOR.read_no_endian}. ! * * The returned object is usually casted into the given type using the .narrow * method of its helper, despite in some cases the direct cast would also * work. ! * * The null objects are recognised from the empty profile set. For such * objects, null is returned. ! * * @return the loaded and constructed object. */ public org.omg.CORBA.Object read_Object() *************** public abstract class AbstractCdrInput *** 991,997 **** * Read a singe byte string. The method firs reads the byte array and then * calls a constructor to create a string from this array. The character * encoding, if previously set, is taken into consideration. ! * * @return a loaded string. */ public String read_string() --- 991,997 ---- * Read a singe byte string. The method firs reads the byte array and then * calls a constructor to create a string from this array. The character * encoding, if previously set, is taken into consideration. ! * * @return a loaded string. */ public String read_string() *************** public abstract class AbstractCdrInput *** 1195,1201 **** /** * Reads the string in wide character format (ussually UTF-16, Unicode). Takes * the currently set charset into consideration. ! * * If the native (UTF-16) encoding is used of the GIOP protocol is before 1.2, * delegates functionality to "plain" {@link #read_wstring_UTF_16}. */ --- 1195,1201 ---- /** * Reads the string in wide character format (ussually UTF-16, Unicode). Takes * the currently set charset into consideration. ! * * If the native (UTF-16) encoding is used of the GIOP protocol is before 1.2, * delegates functionality to "plain" {@link #read_wstring_UTF_16}. */ *************** public abstract class AbstractCdrInput *** 1239,1245 **** { int p = 0; int n = read_long(); ! if (n<0) { MARSHAL m = new MARSHAL("Negative string size"); --- 1239,1245 ---- { int p = 0; int n = read_long(); ! if (n<0) { MARSHAL m = new MARSHAL("Negative string size"); *************** public abstract class AbstractCdrInput *** 1336,1344 **** * Read the object that is an instance of the given class. The current * implementation delegates functionality to the parameterless * {@link readObject()}. ! * * @param klass a class of that this object the instance is. ! * * @return the returned object. */ public org.omg.CORBA.Object read_Object(Class klass) --- 1336,1344 ---- * Read the object that is an instance of the given class. The current * implementation delegates functionality to the parameterless * {@link readObject()}. ! * * @param klass a class of that this object the instance is. ! * * @return the returned object. */ public org.omg.CORBA.Object read_Object(Class klass) *************** public abstract class AbstractCdrInput *** 1348,1358 **** /** * Read a value type structure from the stream. ! * * OMG specification states the writing format is outside the scope of GIOP * definition. This implementation uses java serialization mechanism, calling * {@link ObjectInputStream#readObject} ! * * @return an value type structure, unmarshaled from the stream */ public Serializable read_Value() --- 1348,1358 ---- /** * Read a value type structure from the stream. ! * * OMG specification states the writing format is outside the scope of GIOP * definition. This implementation uses java serialization mechanism, calling * {@link ObjectInputStream#readObject} ! * * @return an value type structure, unmarshaled from the stream */ public Serializable read_Value() *************** public abstract class AbstractCdrInput *** 1363,1373 **** /** * Read the abstract interface. An abstract interface can be either CORBA * value type or CORBA object and is returned as an abstract java.lang.Object. ! * * As specified in OMG specification, this reads a single boolean and then * delegates either to {@link #read_Object()} (for false) or to * {@link #read_Value()} (for true). ! * * @return an abstract interface, unmarshaled from the stream */ public java.lang.Object read_Abstract() --- 1363,1373 ---- /** * Read the abstract interface. An abstract interface can be either CORBA * value type or CORBA object and is returned as an abstract java.lang.Object. ! * * As specified in OMG specification, this reads a single boolean and then * delegates either to {@link #read_Object()} (for false) or to * {@link #read_Value()} (for true). ! * * @return an abstract interface, unmarshaled from the stream */ public java.lang.Object read_Abstract() *************** public abstract class AbstractCdrInput *** 1402,1412 **** /** * If required, allocate or resize the char array to fit the newly read * values. ! * * @param holder_value the existing char array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1402,1412 ---- /** * If required, allocate or resize the char array to fit the newly read * values. ! * * @param holder_value the existing char array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1450,1460 **** /** * If required, allocate or resize the int array to fit the newly read values. ! * * @param holder_value the existing int array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1450,1460 ---- /** * If required, allocate or resize the int array to fit the newly read values. ! * * @param holder_value the existing int array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1487,1497 **** /** * If required, allocate or resize the float array to fit the newly read * values. ! * * @param holder_value the existing float array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1487,1497 ---- /** * If required, allocate or resize the float array to fit the newly read * values. ! * * @param holder_value the existing float array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1524,1534 **** /** * If required, allocate or resize the double array to fit the newly read * values. ! * * @param holder_value the existing double array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1524,1534 ---- /** * If required, allocate or resize the double array to fit the newly read * values. ! * * @param holder_value the existing double array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1568,1578 **** /** * If required, allocate or resize the short array to fit the newly read * values. ! * * @param holder_value the existing short array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1568,1578 ---- /** * If required, allocate or resize the short array to fit the newly read * values. ! * * @param holder_value the existing short array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1605,1615 **** /** * If required, allocate or resize the byte array to fit the newly read * values. ! * * @param holder_value the existing byte array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1605,1615 ---- /** * If required, allocate or resize the byte array to fit the newly read * values. ! * * @param holder_value the existing byte array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1656,1666 **** /** * If required, allocate or resize the array of longs to fit the newly read * values. ! * * @param holder_value the existing array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1656,1666 ---- /** * If required, allocate or resize the array of longs to fit the newly read * values. ! * * @param holder_value the existing array, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1693,1703 **** /** * If required, allocate or resize the array of booleans to fit the newly read * values. ! * * @param holder_value the existing array of booleans, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1693,1703 ---- /** * If required, allocate or resize the array of booleans to fit the newly read * values. ! * * @param holder_value the existing array of booleans, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1733,1743 **** /** * If required, allocate or resize the array of Anys to fit the newly read * values. ! * * @param holder_value the existing array of Anys, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ --- 1733,1743 ---- /** * If required, allocate or resize the array of Anys to fit the newly read * values. ! * * @param holder_value the existing array of Anys, may be null. * @param offset the required offset to read. * @param length the length of the new sequence. ! * * @return the allocated or resized array, same array if no such operations * are required. */ *************** public abstract class AbstractCdrInput *** 1758,1768 **** /** * This method is required to represent the DataInputStream as a value type * object. ! * * @return a single entity "IDL:omg.org/CORBA/DataInputStream:1.0", always. */ public String[] _truncatable_ids() { return new String[] { "IDL:omg.org/CORBA/DataInputStream:1.0" }; } ! } \ No newline at end of file --- 1758,1768 ---- /** * This method is required to represent the DataInputStream as a value type * object. ! * * @return a single entity "IDL:omg.org/CORBA/DataInputStream:1.0", always. */ public String[] _truncatable_ids() { return new String[] { "IDL:omg.org/CORBA/DataInputStream:1.0" }; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java Tue Jan 11 19:46:05 2011 *************** import java.math.BigDecimal; *** 79,85 **** * The same class also implements the {@link DataInputStream}, * providing support for writing the value type objects * in a user defined way. ! * * TODO This class uses 16 bits per Unicode character only, as it was until * jdk 1.4 inclusive. * --- 79,85 ---- * The same class also implements the {@link DataInputStream}, * providing support for writing the value type objects * in a user defined way. ! * * TODO This class uses 16 bits per Unicode character only, as it was until * jdk 1.4 inclusive. * *************** public abstract class AbstractCdrOutput *** 90,100 **** implements org.omg.CORBA.DataOutputStream { /** ! * The runtime, associated with this stream. This field is only used when * reading and writing value types and filled-in in gnu.CORBA.CDR.Vio. */ ! public transient gnuRuntime runtime; ! /** * This instance is used to convert primitive data types into the * byte sequences. --- 90,100 ---- implements org.omg.CORBA.DataOutputStream { /** ! * The runtime, associated with this stream. This field is only used when * reading and writing value types and filled-in in gnu.CORBA.CDR.Vio. */ ! public transient gnuRuntime runtime; ! /** * This instance is used to convert primitive data types into the * byte sequences. *************** public abstract class AbstractCdrOutput *** 177,183 **** * stream is different from 0. */ public abstract void setOffset(int an_offset); ! /** * Clone all important settings to another stream. */ --- 177,183 ---- * stream is different from 0. */ public abstract void setOffset(int an_offset); ! /** * Clone all important settings to another stream. */ *************** public abstract class AbstractCdrOutput *** 187,193 **** stream.setCodeSet(getCodeSet()); stream.setVersion(giop); stream.setOrb(orb); ! } /** * Set the current code set context. --- 187,193 ---- stream.setCodeSet(getCodeSet()); stream.setVersion(giop); stream.setOrb(orb); ! } /** * Set the current code set context. *************** public abstract class AbstractCdrOutput *** 336,342 **** * Read the CORBA object. The object is written form of the plain (not a * string-encoded) IOR profile without the heading endian indicator. The * responsible method for reading such data is {@link IOR.write_no_endian}. ! * * The null value is written as defined in OMG specification (zero length * string, followed by an empty set of profiles). */ --- 336,342 ---- * Read the CORBA object. The object is written form of the plain (not a * string-encoded) IOR profile without the heading endian indicator. The * responsible method for reading such data is {@link IOR.write_no_endian}. ! * * The null value is written as defined in OMG specification (zero length * string, followed by an empty set of profiles). */ *************** public abstract class AbstractCdrOutput *** 901,907 **** /** * Writes the character as two byte short integer (Unicode value), high byte * first. Writes in Big Endian, but never writes the endian indicator. ! * * The character is always written using the native UTF-16BE charset because * its size under arbitrary encoding is not evident. */ --- 901,907 ---- /** * Writes the character as two byte short integer (Unicode value), high byte * first. Writes in Big Endian, but never writes the endian indicator. ! * * The character is always written using the native UTF-16BE charset because * its size under arbitrary encoding is not evident. */ *************** public abstract class AbstractCdrOutput *** 944,954 **** /** * Write the array of wide chars. ! * * @param chars the array of wide chars * @param offset offset * @param length length ! * * The char array is always written using the native UTF-16BE charset because * the character size under arbitrary encoding is not evident. */ --- 944,954 ---- /** * Write the array of wide chars. ! * * @param chars the array of wide chars * @param offset offset * @param length length ! * * The char array is always written using the native UTF-16BE charset because * the character size under arbitrary encoding is not evident. */ *************** public abstract class AbstractCdrOutput *** 1044,1047 **** { write_value(value); } ! } \ No newline at end of file --- 1044,1047 ---- { write_value(value); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AbstractDataInput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AbstractDataInput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AbstractDataInput.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AbstractDataInput.java Tue Jan 11 19:46:05 2011 *************** public interface AbstractDataInput *** 389,392 **** */ int skipBytes(int n) throws IOException; ! } \ No newline at end of file --- 389,392 ---- */ int skipBytes(int n) throws IOException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AbstractDataOutput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AbstractDataOutput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AbstractDataOutput.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AbstractDataOutput.java Tue Jan 11 19:46:05 2011 *************** public interface AbstractDataOutput *** 182,185 **** */ void writeDouble(double value) throws IOException; ! } \ No newline at end of file --- 182,185 ---- */ void writeDouble(double value) throws IOException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AligningInput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AligningInput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AligningInput.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AligningInput.java Tue Jan 11 19:46:05 2011 *************** public class AligningInput *** 107,123 **** { return buf; } ! /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition() { return pos + offset; ! } ! /** * Jump to the given position, taking offset into consideration. */ --- 107,123 ---- { return buf; } ! /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition() { return pos + offset; ! } ! /** * Jump to the given position, taking offset into consideration. */ *************** public class AligningInput *** 127,131 **** throw new ArrayIndexOutOfBoundsException(position + " is out of valid ["+offset+".." + (count+offset) + "[ range"); pos = position - offset; ! } } --- 127,131 ---- throw new ArrayIndexOutOfBoundsException(position + " is out of valid ["+offset+".." + (count+offset) + "[ range"); pos = position - offset; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AligningOutput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AligningOutput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/AligningOutput.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/AligningOutput.java Tue Jan 11 19:46:05 2011 *************** public class AligningOutput *** 117,133 **** write(0); } } ! /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition() { return size()+offset; } ! /** * Seek to the given position (not in use). */ --- 117,133 ---- write(0); } } ! /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition() { return size()+offset; } ! /** * Seek to the given position (not in use). */ *************** public class AligningOutput *** 135,141 **** { count = position - offset; } ! /** * Get the buffer without copying it. Use with care. */ --- 135,141 ---- { count = position - offset; } ! /** * Get the buffer without copying it. Use with care. */ *************** public class AligningOutput *** 143,148 **** { return buf; } ! } --- 143,148 ---- { return buf; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/ArrayValueHelper.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/ArrayValueHelper.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/ArrayValueHelper.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/ArrayValueHelper.java Tue Jan 11 19:46:05 2011 *************** import javax.rmi.CORBA.ValueHandler; *** 63,69 **** * Writes arrays as a boxed value types. A single instance is used to write a * single array. This class is only used with RMI/IIOP, to handle array boxed * values. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ class ArrayValueHelper --- 63,69 ---- * Writes arrays as a boxed value types. A single instance is used to write a * single array. This class is only used with RMI/IIOP, to handle array boxed * values. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ class ArrayValueHelper diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/BigEndianInputStream.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/BigEndianInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/BigEndianInputStream.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/BigEndianInputStream.java Tue Jan 11 19:46:05 2011 *************** public class BigEndianInputStream *** 58,61 **** { super(in); } ! } \ No newline at end of file --- 58,61 ---- { super(in); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/BigEndianOutputStream.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/BigEndianOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/BigEndianOutputStream.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/BigEndianOutputStream.java Tue Jan 11 19:46:05 2011 *************** public class BigEndianOutputStream *** 59,62 **** { super(out); } ! } \ No newline at end of file --- 59,62 ---- { super(out); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/BufferedCdrOutput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/BufferedCdrOutput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/BufferedCdrOutput.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/BufferedCdrOutput.java Tue Jan 11 19:46:05 2011 *************** import java.io.ByteArrayOutputStream; *** 42,48 **** /** * A CORBA output stream, writing data into the internal buffer ({@link ByteArrayOutputStream}). ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class BufferedCdrOutput --- 42,48 ---- /** * A CORBA output stream, writing data into the internal buffer ({@link ByteArrayOutputStream}). ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class BufferedCdrOutput *************** public class BufferedCdrOutput *** 61,67 **** /** * Creates the instance with the given initial buffer size. ! * * @param bufSize the buffer size. */ public BufferedCdrOutput(int bufSize) --- 61,67 ---- /** * Creates the instance with the given initial buffer size. ! * * @param bufSize the buffer size. */ public BufferedCdrOutput(int bufSize) *************** public class BufferedCdrOutput *** 121,127 **** /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition() --- 121,127 ---- /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/BufferredCdrInput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/BufferredCdrInput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/BufferredCdrInput.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/BufferredCdrInput.java Tue Jan 11 19:46:05 2011 *************** package gnu.CORBA.CDR; *** 45,58 **** * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class BufferredCdrInput ! extends AbstractCdrInput implements gnuValueStream { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The byte array input stream to read data from. */ --- 45,58 ---- * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class BufferredCdrInput ! extends AbstractCdrInput implements gnuValueStream { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The byte array input stream to read data from. */ *************** public class BufferredCdrInput *** 114,130 **** buffer.reset(); setInputStream(buffer); } ! /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition() { return buffer.getPosition(); } ! /** * Jump to the given position, taking offset into consideration. */ --- 114,130 ---- buffer.reset(); setInputStream(buffer); } ! /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition() { return buffer.getPosition(); } ! /** * Jump to the given position, taking offset into consideration. */ *************** public class BufferredCdrInput *** 133,147 **** buffer.seek(position); setInputStream(buffer); } ! /** * Get the associated RunTime. */ public gnuRuntime getRunTime() { return runtime; ! } ! /** * Replace the instance of RunTime. */ --- 133,147 ---- buffer.seek(position); setInputStream(buffer); } ! /** * Get the associated RunTime. */ public gnuRuntime getRunTime() { return runtime; ! } ! /** * Replace the instance of RunTime. */ *************** public class BufferredCdrInput *** 149,153 **** { runtime = a_runtime; } ! } --- 149,153 ---- { runtime = a_runtime; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java Tue Jan 11 19:46:05 2011 *************** import java.math.BigDecimal; *** 71,80 **** * Substitutes the main stream in factories when the header is already behind. * Overrides methods that may be invoked from the factory, forcing not to read * the header if called first time on this stream. ! * * This stream reverts to default behavior if one or more call are made (reading * value types that are nested fields of the value type). ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class HeadlessInput --- 71,80 ---- * Substitutes the main stream in factories when the header is already behind. * Overrides methods that may be invoked from the factory, forcing not to read * the header if called first time on this stream. ! * * This stream reverts to default behavior if one or more call are made (reading * value types that are nested fields of the value type). ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class HeadlessInput *************** public class HeadlessInput *** 103,109 **** /** * Create an instance, reading from the given buffer. ! * * @param a_stream a stream from where the data will be read. * @param inheritSettings a stream from that endian and other settings are * inherited. --- 103,109 ---- /** * Create an instance, reading from the given buffer. ! * * @param a_stream a stream from where the data will be read. * @param inheritSettings a stream from that endian and other settings are * inherited. *************** public class HeadlessInput *** 746,749 **** stream.seek(position); } ! } \ No newline at end of file --- 746,749 ---- stream.seek(position); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/IDLTypeHelper.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/IDLTypeHelper.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/IDLTypeHelper.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/IDLTypeHelper.java Tue Jan 11 19:46:05 2011 *************** import java.lang.reflect.Modifier; *** 52,58 **** /** * Handles case when the CORBA IDL type with the known helper is wrapped into * Value type. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class IDLTypeHelper --- 52,58 ---- /** * Handles case when the CORBA IDL type with the known helper is wrapped into * Value type. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class IDLTypeHelper *************** public class IDLTypeHelper *** 118,124 **** catch (Exception ex) { MARSHAL m = new MARSHAL(msg() + " read(..)"); ! m.minor = Minor.Boxed; m.initCause(ex); throw m; } --- 118,124 ---- catch (Exception ex) { MARSHAL m = new MARSHAL(msg() + " read(..)"); ! m.minor = Minor.Boxed; m.initCause(ex); throw m; } *************** public class IDLTypeHelper *** 152,158 **** catch (Exception ex) { MARSHAL m = new MARSHAL(msg() + " write(..)"); ! m.minor = Minor.Boxed; m.initCause(ex); throw m; } --- 152,158 ---- catch (Exception ex) { MARSHAL m = new MARSHAL(msg() + " write(..)"); ! m.minor = Minor.Boxed; m.initCause(ex); throw m; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/LittleEndianOutputStream.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/LittleEndianOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/LittleEndianOutputStream.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/LittleEndianOutputStream.java Tue Jan 11 19:46:05 2011 *************** public class LittleEndianOutputStream *** 250,253 **** { writeLong(Double.doubleToLongBits(value)); } ! } \ No newline at end of file --- 250,253 ---- { writeLong(Double.doubleToLongBits(value)); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/UnknownExceptionCtxHandler.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/UnknownExceptionCtxHandler.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/UnknownExceptionCtxHandler.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/UnknownExceptionCtxHandler.java Tue Jan 11 19:46:05 2011 *************** import javax.rmi.CORBA.Util; *** 54,60 **** /** * Reads the data about an unknown exception from the UnknownExceptionInfo. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class UnknownExceptionCtxHandler --- 54,60 ---- /** * Reads the data about an unknown exception from the UnknownExceptionInfo. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class UnknownExceptionCtxHandler *************** public class UnknownExceptionCtxHandler *** 109,124 **** * Following the documentation, this must be just value type, but it seems * that in Sun's implementation is is not, as starts from 0x0. For value type, * this would be null. ! * * TODO Implement reading and writing in Sun format, making Classpath IIOP * interoperable with Sun's implementation. Current inmplementation reads and * reproduces the exception class type only. ! * * @param input the input stream to read the context (orb and other settings * are inherited from the main stream that received the message). ! * * @param contexts all service contexts that were present in the message. ! * * @return the Throwable, extracted from context, on null, if this has failed. */ public static Throwable read(BufferredCdrInput input, ServiceContext[] contexts) --- 109,124 ---- * Following the documentation, this must be just value type, but it seems * that in Sun's implementation is is not, as starts from 0x0. For value type, * this would be null. ! * * TODO Implement reading and writing in Sun format, making Classpath IIOP * interoperable with Sun's implementation. Current inmplementation reads and * reproduces the exception class type only. ! * * @param input the input stream to read the context (orb and other settings * are inherited from the main stream that received the message). ! * * @param contexts all service contexts that were present in the message. ! * * @return the Throwable, extracted from context, on null, if this has failed. */ public static Throwable read(BufferredCdrInput input, ServiceContext[] contexts) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/VMVio.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/VMVio.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/VMVio.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/VMVio.java Tue Jan 11 19:46:05 2011 *************** *** 36,48 **** exception statement from your version. */ /** ! * This is a temporary replacement for the native call that would allocate * objects without public constructors. The replacement only allocates * objects with public parameterless constructor and objects with public * constructor taking string (like some Throwables). * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) ! * * TODO FIXME replace by native call like in VMObjectInputStream. * Required modification of Classpath the build system. */ --- 36,48 ---- exception statement from your version. */ /** ! * This is a temporary replacement for the native call that would allocate * objects without public constructors. The replacement only allocates * objects with public parameterless constructor and objects with public * constructor taking string (like some Throwables). * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) ! * * TODO FIXME replace by native call like in VMObjectInputStream. * Required modification of Classpath the build system. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/Vio.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/Vio.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/Vio.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/Vio.java Tue Jan 11 19:46:05 2011 *************** import javax.rmi.CORBA.ValueHandler; *** 69,75 **** /** * A specialised class for reading and writing the value types. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public abstract class Vio --- 69,75 ---- /** * A specialised class for reading and writing the value types. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public abstract class Vio *************** public abstract class Vio *** 79,85 **** * and is not required for interoperability with jdk 1.5, but is left in the * implementation as the optional mode for solving possible interoperability * problems with non-Sun CORBA implementations. ! * * The current implementation would accept both single chunk or multiple * chunks, but will always send a single chunk (if true) or unchunked data (if * false). --- 79,85 ---- * and is not required for interoperability with jdk 1.5, but is left in the * implementation as the optional mode for solving possible interoperability * problems with non-Sun CORBA implementations. ! * * The current implementation would accept both single chunk or multiple * chunks, but will always send a single chunk (if true) or unchunked data (if * false). *************** public abstract class Vio *** 155,165 **** * required when an unitialised instance or at least class of the value type * is known. Hence it may be faster to use the alternative methods, * read(InputStream, Class) or read(InputStream, Serializable). ! * * @param input a stream to read from. ! * * @return the loaded value. ! * * @throws MARSHAL if the reading has failed due any reason. */ public static Serializable read(InputStream input) --- 155,165 ---- * required when an unitialised instance or at least class of the value type * is known. Hence it may be faster to use the alternative methods, * read(InputStream, Class) or read(InputStream, Serializable). ! * * @param input a stream to read from. ! * * @return the loaded value. ! * * @throws MARSHAL if the reading has failed due any reason. */ public static Serializable read(InputStream input) *************** public abstract class Vio *** 173,184 **** * required when an unitialised instance or at least class of the value type * is known. Hence it may be faster to use the alternative methods, * read(InputStream, Class) or read(InputStream, Serializable). ! * * @param input a stream to read from. * @param repository_id a repository id of the object being read, may be null. ! * * @return the loaded value. ! * * @throws MARSHAL if the reading has failed due any reason. */ public static Serializable read(InputStream input, String repository_id) --- 173,184 ---- * required when an unitialised instance or at least class of the value type * is known. Hence it may be faster to use the alternative methods, * read(InputStream, Class) or read(InputStream, Serializable). ! * * @param input a stream to read from. * @param repository_id a repository id of the object being read, may be null. ! * * @return the loaded value. ! * * @throws MARSHAL if the reading has failed due any reason. */ public static Serializable read(InputStream input, String repository_id) *************** public abstract class Vio *** 240,246 **** catch (Exception ex) { MARSHAL m = new MARSHAL(); ! m.minor = Minor.Value; m.initCause(ex); throw m; } --- 240,246 ---- catch (Exception ex) { MARSHAL m = new MARSHAL(); ! m.minor = Minor.Value; m.initCause(ex); throw m; } *************** public abstract class Vio *** 249,260 **** /** * Read the value base from the given input stream when the value base class * is available. Hence there is no need to guess it from the repository id. ! * * @param input a stream to read from. * @param value_class the class of the value being read. ! * * @return the loaded value. ! * * @throws MARSHAL if the reading has failed due any reason. */ public static Serializable read(InputStream input, Class value_class) --- 249,260 ---- /** * Read the value base from the given input stream when the value base class * is available. Hence there is no need to guess it from the repository id. ! * * @param input a stream to read from. * @param value_class the class of the value being read. ! * * @return the loaded value. ! * * @throws MARSHAL if the reading has failed due any reason. */ public static Serializable read(InputStream input, Class value_class) *************** public abstract class Vio *** 353,370 **** * Read the value base from the given input stream when the unitialised * instance is available. Hence there is no need to guess the class from the * repository id and then to instantiate an instance. ! * * @param input a stream to read from. ! * * @param value_instance an pre-created instance of the value. If the helper * is not null, this parameter is ignored an should be null. ! * * @param helper a helper to create an instance and read the object- specific * part of the record. If the value_instance is used instead, this parameter * should be null. ! * * @return the loaded value. ! * * @throws MARSHAL if the reading has failed due any reason. */ public static Object read(InputStream input, Object value_instance, --- 353,370 ---- * Read the value base from the given input stream when the unitialised * instance is available. Hence there is no need to guess the class from the * repository id and then to instantiate an instance. ! * * @param input a stream to read from. ! * * @param value_instance an pre-created instance of the value. If the helper * is not null, this parameter is ignored an should be null. ! * * @param helper a helper to create an instance and read the object- specific * part of the record. If the value_instance is used instead, this parameter * should be null. ! * * @return the loaded value. ! * * @throws MARSHAL if the reading has failed due any reason. */ public static Object read(InputStream input, Object value_instance, *************** public abstract class Vio *** 431,440 **** * Read using provided boxed value helper. This method expects the full value * type header, followed by contents, that are delegated to the provided * helper. It handles null. ! * * @param input the stream to read from. * @param helper the helper that reads the type-specific part of the content. ! * * @return the value, created by the helper, or null if the header indicates * that null was previously written. */ --- 431,440 ---- * Read using provided boxed value helper. This method expects the full value * type header, followed by contents, that are delegated to the provided * helper. It handles null. ! * * @param input the stream to read from. * @param helper the helper that reads the type-specific part of the content. ! * * @return the value, created by the helper, or null if the header indicates * that null was previously written. */ *************** public abstract class Vio *** 447,463 **** * Fill in the instance fields by the data from the input stream. The method * assumes that the value header, if any, is already behind. The information * from the stream is stored into the passed ox parameter. ! * * @param input an input stream to read from. ! * * @param value a pre-instantiated value type object, must be either * Streamable or CustomMarshal. If the helper is used, this parameter is * ignored and should be null. ! * * @param value_tag the tag that must be read previously. * @param helper the helper for read object specific part; may be null to read * in using other methods. ! * * @return the value that was read. */ static Object read_instance(InputStream input, final int position, --- 447,463 ---- * Fill in the instance fields by the data from the input stream. The method * assumes that the value header, if any, is already behind. The information * from the stream is stored into the passed ox parameter. ! * * @param input an input stream to read from. ! * * @param value a pre-instantiated value type object, must be either * Streamable or CustomMarshal. If the helper is used, this parameter is * ignored and should be null. ! * * @param value_tag the tag that must be read previously. * @param helper the helper for read object specific part; may be null to read * in using other methods. ! * * @return the value that was read. */ static Object read_instance(InputStream input, final int position, *************** public abstract class Vio *** 542,554 **** /** * Read the chunked nested value from the given input stream, transferring the * contents to the given output stream. ! * * @param value_tag the value tag of the value being read. * @param input the input stream from where the remainder of the nested value * must be read. * @param output the output stream where the unchunked nested value must be * copied. ! * * @return the tag that ended the nested value. */ public static int readNestedValue(int value_tag, InputStream input, --- 542,554 ---- /** * Read the chunked nested value from the given input stream, transferring the * contents to the given output stream. ! * * @param value_tag the value tag of the value being read. * @param input the input stream from where the remainder of the nested value * must be read. * @param output the output stream where the unchunked nested value must be * copied. ! * * @return the tag that ended the nested value. */ public static int readNestedValue(int value_tag, InputStream input, *************** public abstract class Vio *** 769,780 **** /** * Write the value base into the given stream. ! * * @param output a stream to write to. ! * * @param value a value type object, must be either Streamable or * CustomMarshal. ! * * @throws MARSHAL if the writing failed due any reason. */ public static void write(OutputStream output, Serializable value) --- 769,780 ---- /** * Write the value base into the given stream. ! * * @param output a stream to write to. ! * * @param value a value type object, must be either Streamable or * CustomMarshal. ! * * @throws MARSHAL if the writing failed due any reason. */ public static void write(OutputStream output, Serializable value) *************** public abstract class Vio *** 791,801 **** /** * Write the value base into the given stream, stating that it is an instance * of the given class. ! * * @param output a stream to write to. ! * * @param value a value to write. ! * * @throws MARSHAL if the writing failed due any reason. */ public static void write(OutputStream output, Serializable value, --- 791,801 ---- /** * Write the value base into the given stream, stating that it is an instance * of the given class. ! * * @param output a stream to write to. ! * * @param value a value to write. ! * * @throws MARSHAL if the writing failed due any reason. */ public static void write(OutputStream output, Serializable value, *************** public abstract class Vio *** 831,841 **** * Write the value base into the given stream, supplementing it with an array * of the provided repository ids plus the repository id, derived from the * passed value. ! * * @param output a stream to write to. ! * * @param value a value to write. ! * * @throws MARSHAL if the writing failed due any reason. */ public static void write(OutputStream output, Serializable value, --- 831,841 ---- * Write the value base into the given stream, supplementing it with an array * of the provided repository ids plus the repository id, derived from the * passed value. ! * * @param output a stream to write to. ! * * @param value a value to write. ! * * @throws MARSHAL if the writing failed due any reason. */ public static void write(OutputStream output, Serializable value, *************** public abstract class Vio *** 857,863 **** /** * Write value when its repository Id is explicitly given. Only this Id is * written, the type of value is not taken into consideration. ! * * @param output an output stream to write into. * @param value a value to write. * @param id a value repository id. --- 857,863 ---- /** * Write value when its repository Id is explicitly given. Only this Id is * written, the type of value is not taken into consideration. ! * * @param output an output stream to write into. * @param value a value to write. * @param id a value repository id. *************** public abstract class Vio *** 873,879 **** /** * Write standard value type header, followed by contents, produced by the * boxed value helper. ! * * @param output the stream to write to. * @param value the value to write, can be null. * @param helper the helper that writes the value content if it is not null --- 873,879 ---- /** * Write standard value type header, followed by contents, produced by the * boxed value helper. ! * * @param output the stream to write to. * @param value the value to write, can be null. * @param helper the helper that writes the value content if it is not null *************** public abstract class Vio *** 902,908 **** /** * Write value when its repository Id is explicitly given. Does not handle * null. ! * * @param output an output stream to write into. * @param value a value to write. * @param ids a value repository id (can be either single string or string --- 902,908 ---- /** * Write value when its repository Id is explicitly given. Does not handle * null. ! * * @param output an output stream to write into. * @param value a value to write. * @param ids a value repository id (can be either single string or string *************** public abstract class Vio *** 1070,1076 **** /** * Read the indirection data and return the object that was already written to * this stream. ! * * @param an_input the input stream, must be BufferredCdrInput. */ static Serializable readIndirection(InputStream an_input) --- 1070,1076 ---- /** * Read the indirection data and return the object that was already written to * this stream. ! * * @param an_input the input stream, must be BufferredCdrInput. */ static Serializable readIndirection(InputStream an_input) *************** public abstract class Vio *** 1106,1114 **** /** * Check the passed value tag for correctness. ! * * @param value_tag a tag to check, must be between 0x7fffff00 and 0x7fffffff ! * * @throws MARSHAL if the tag is outside this interval. */ static void checkTag(int value_tag) --- 1106,1114 ---- /** * Check the passed value tag for correctness. ! * * @param value_tag a tag to check, must be between 0x7fffff00 and 0x7fffffff ! * * @throws MARSHAL if the tag is outside this interval. */ static void checkTag(int value_tag) *************** public abstract class Vio *** 1452,1458 **** * Instantiate an instance of this class anyway; also in the case when it has * no parameterless or any other constructor. The fields will be assigned * while reading the class from the stream. ! * * @param clazz a class for that the instance should be instantiated. */ public static Object instantiateAnyWay(Class clazz) --- 1452,1458 ---- * Instantiate an instance of this class anyway; also in the case when it has * no parameterless or any other constructor. The fields will be assigned * while reading the class from the stream. ! * * @param clazz a class for that the instance should be instantiated. */ public static Object instantiateAnyWay(Class clazz) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java Tue Jan 11 19:46:05 2011 *************** import java.util.TreeSet; *** 56,62 **** /** * Our implementation of the sending context runtime. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class gnuRuntime --- 56,62 ---- /** * Our implementation of the sending context runtime. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class gnuRuntime *************** public class gnuRuntime *** 165,171 **** /** * Create Runtime. ! * * @param a_id a repository Id, if only one Id was specified in the stream. * @param a_ids a repository Ids, if the multiple Ids were specified in te * stream. --- 165,171 ---- /** * Create Runtime. ! * * @param a_id a repository Id, if only one Id was specified in the stream. * @param a_ids a repository Ids, if the multiple Ids were specified in te * stream. *************** public class gnuRuntime *** 200,206 **** /** * Check if the object is already written. ! * * @return the position, at that the object is allready written or -1 if it is * not yet written. */ --- 200,206 ---- /** * Check if the object is already written. ! * * @return the position, at that the object is allready written or -1 if it is * not yet written. */ *************** public class gnuRuntime *** 224,232 **** /** * Get the object, written at the given position. This returs both shared * objects and repository Ids. ! * * @return the position, at that the object is allready written. ! * * @throws MARSHAL if there is no object written at that position. */ public Object isObjectWrittenAt(int x, int offset) --- 224,232 ---- /** * Get the object, written at the given position. This returs both shared * objects and repository Ids. ! * * @return the position, at that the object is allready written. ! * * @throws MARSHAL if there is no object written at that position. */ public Object isObjectWrittenAt(int x, int offset) *************** public class gnuRuntime *** 238,244 **** return e.object; else { ! MARSHAL m = new MARSHAL("No object was written at " + x + " (offset " + offset + ") r " + this + dump()); m.minor = Minor.Graph; throw m; --- 238,244 ---- return e.object; else { ! MARSHAL m = new MARSHAL("No object was written at " + x + " (offset " + offset + ") r " + this + dump()); m.minor = Minor.Graph; throw m; *************** public class gnuRuntime *** 268,274 **** public void multipleIdsWritten(String[] ids, int at) { if (sh_ids.containsKey(ids)) ! throw new InternalError("Repetetive writing of the same string " + ids + dump()); Entry e = new Entry(); --- 268,274 ---- public void multipleIdsWritten(String[] ids, int at) { if (sh_ids.containsKey(ids)) ! throw new InternalError("Repetetive writing of the same string " + ids + dump()); Entry e = new Entry(); *************** public class gnuRuntime *** 281,287 **** /** * Check if the object is already written. ! * * @return the position, at that the object is allready written or -1 if it is * not yet written. */ --- 281,287 ---- /** * Check if the object is already written. ! * * @return the position, at that the object is allready written or -1 if it is * not yet written. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/gnuValueStream.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/gnuValueStream.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CDR/gnuValueStream.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CDR/gnuValueStream.java Tue Jan 11 19:46:05 2011 *************** public interface gnuValueStream *** 48,71 **** { /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition(); ! /** * Jump to the given position, taking offset into consideration. */ public void seek(int position); ! /** ! * Get the RunTime information. */ public gnuRuntime getRunTime(); ! /** ! * Replace the instance of RunTime. */ public void setRunTime(gnuRuntime a_runtime); ! } --- 48,71 ---- { /** * Get the current position in the buffer. ! * * @return The position in the buffer, taking offset into consideration. */ public int getPosition(); ! /** * Jump to the given position, taking offset into consideration. */ public void seek(int position); ! /** ! * Get the RunTime information. */ public gnuRuntime getRunTime(); ! /** ! * Replace the instance of RunTime. */ public void setRunTime(gnuRuntime a_runtime); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CdrEncapsCodecImpl.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CdrEncapsCodecImpl.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CdrEncapsCodecImpl.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CdrEncapsCodecImpl.java Tue Jan 11 19:46:05 2011 *************** import org.omg.IOP.CodecPackage.TypeMism *** 57,63 **** /** * The local {@link Codec} implementation for ENCODING_CDR_ENCAPS * encoding. This is a local implementation; the remote side should ! * have its own Codec of this kind. * * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) --- 57,63 ---- /** * The local {@link Codec} implementation for ENCODING_CDR_ENCAPS * encoding. This is a local implementation; the remote side should ! * have its own Codec of this kind. * * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) *************** public class CdrEncapsCodecImpl *** 66,73 **** extends LocalObject implements Codec { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; --- 66,73 ---- extends LocalObject implements Codec { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; *************** public class CdrEncapsCodecImpl *** 355,358 **** { lengthIndicator = use_lengthIndicator; } ! } \ No newline at end of file --- 355,358 ---- { lengthIndicator = use_lengthIndicator; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/CollocatedOrbs.java gcc-4.6.0/libjava/classpath/gnu/CORBA/CollocatedOrbs.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/CollocatedOrbs.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/CollocatedOrbs.java Tue Jan 11 19:46:05 2011 *************** import java.util.ArrayList; *** 51,83 **** * between two independent ORBs, instantiated via ORB.init. The call to the * object, obtained via IOR reference from the ORB where it was locally * connected is always local anyway. ! * * For security reasons it may be sensible to keep this class and all support * package private. ! * * @author Audrius Meskauskas */ class CollocatedOrbs { /** * This field is used in automated Classpath specific testing to disable ! * the direct calls. */ static boolean DIRECT_CALLS_ALLOWED = true; ! /** * Containts the references of the all running GNU Classpath ORBs in the * local virtual machine. GNU Classpath ORBs register themselves here when ! * created and unregister when either ORB.destroy is called or in the * finalizer. */ private static ArrayList orbs = new ArrayList(); ! /** * The address of the local host. */ static String localHost; ! static { try --- 51,83 ---- * between two independent ORBs, instantiated via ORB.init. The call to the * object, obtained via IOR reference from the ORB where it was locally * connected is always local anyway. ! * * For security reasons it may be sensible to keep this class and all support * package private. ! * * @author Audrius Meskauskas */ class CollocatedOrbs { /** * This field is used in automated Classpath specific testing to disable ! * the direct calls. */ static boolean DIRECT_CALLS_ALLOWED = true; ! /** * Containts the references of the all running GNU Classpath ORBs in the * local virtual machine. GNU Classpath ORBs register themselves here when ! * created and unregister when either ORB.destroy is called or in the * finalizer. */ private static ArrayList orbs = new ArrayList(); ! /** * The address of the local host. */ static String localHost; ! static { try *************** class CollocatedOrbs *** 89,98 **** throw new InternalError("Local host is not accessible:" + ex); } } ! /** * Register the new ORB ! * * @param orb the orb to register */ static void registerOrb(OrbFunctional orb) --- 89,98 ---- throw new InternalError("Local host is not accessible:" + ex); } } ! /** * Register the new ORB ! * * @param orb the orb to register */ static void registerOrb(OrbFunctional orb) *************** class CollocatedOrbs *** 104,114 **** orbs.add(orb); } } ! /** * Unregister the ORB. The ORB will no longer be reacheable locally but may * be reacheable via network as if it would be remote. ! * * @param orb the orb to unregister */ static void unregisterOrb(OrbFunctional orb) --- 104,114 ---- orbs.add(orb); } } ! /** * Unregister the ORB. The ORB will no longer be reacheable locally but may * be reacheable via network as if it would be remote. ! * * @param orb the orb to unregister */ static void unregisterOrb(OrbFunctional orb) *************** class CollocatedOrbs *** 120,130 **** orbs.remove(orb); } } ! /** * Search the possibly local object. If the IOR is not local or none of the * found ORBs of this virtual machine knows about it, null is returned. ! * * @param ior the IOR to search * @return the found local CORBA object or null in not found. */ --- 120,130 ---- orbs.remove(orb); } } ! /** * Search the possibly local object. If the IOR is not local or none of the * found ORBs of this virtual machine knows about it, null is returned. ! * * @param ior the IOR to search * @return the found local CORBA object or null in not found. */ *************** class CollocatedOrbs *** 156,160 **** } return null; } ! } --- 156,160 ---- } return null; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Connected_objects.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Connected_objects.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Connected_objects.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Connected_objects.java Tue Jan 11 19:46:05 2011 *************** public class Connected_objects *** 242,255 **** free_object_number++; return instance_number; } ! /** * Get the number of the connected objects. ! * * @return the size of the internal map. */ public int size() { return objects.size(); } ! } \ No newline at end of file --- 242,255 ---- free_object_number++; return instance_number; } ! /** * Get the number of the connected objects. ! * * @return the size of the internal map. */ public int size() { return objects.size(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DefaultSocketFactory.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DefaultSocketFactory.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DefaultSocketFactory.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DefaultSocketFactory.java Tue Jan 11 19:46:05 2011 *************** import java.net.Socket; *** 47,53 **** /** * The default socket factory that forges "plain" server and client sockets. The * class can be replaced by setting the gnu.CORBA.SocketFactory property. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class DefaultSocketFactory --- 47,53 ---- /** * The default socket factory that forges "plain" server and client sockets. The * class can be replaced by setting the gnu.CORBA.SocketFactory property. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class DefaultSocketFactory diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DuplicateNameHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DuplicateNameHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DuplicateNameHolder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DuplicateNameHolder.java Tue Jan 11 19:46:05 2011 *************** public class DuplicateNameHolder *** 103,106 **** { return DuplicateNameHelper.type(); } ! } \ No newline at end of file --- 103,106 ---- { return DuplicateNameHelper.type(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/AbstractAny.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/AbstractAny.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/AbstractAny.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/AbstractAny.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractAny *** 174,177 **** { return "Size mismatch, " + other + " (expected " + here + ")"; } ! } \ No newline at end of file --- 174,177 ---- { return "Size mismatch, " + other + " (expected " + here + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java Tue Jan 11 19:46:05 2011 *************** public abstract class DivideableAny *** 509,512 **** throw u; } } ! } \ No newline at end of file --- 509,512 ---- throw u; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/NameValuePairHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/NameValuePairHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/NameValuePairHolder.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/NameValuePairHolder.java Tue Jan 11 19:46:05 2011 *************** public class NameValuePairHolder *** 91,94 **** { NameValuePairHelper.write(output, value); } ! } \ No newline at end of file --- 91,94 ---- { NameValuePairHelper.write(output, value); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/RecordAny.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/RecordAny.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/RecordAny.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/RecordAny.java Tue Jan 11 19:46:05 2011 *************** public abstract class RecordAny *** 402,405 **** throw t; } } ! } \ No newline at end of file --- 402,405 ---- throw t; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/ValueChangeListener.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/ValueChangeListener.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/ValueChangeListener.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/ValueChangeListener.java Tue Jan 11 19:46:05 2011 *************** package gnu.CORBA.DynAn; *** 47,50 **** public interface ValueChangeListener { void changed(); ! } \ No newline at end of file --- 47,50 ---- public interface ValueChangeListener { void changed(); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynAny.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynAny.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynAny.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynAny.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynAny extends AbstractA *** 942,945 **** if (t.value() != final_type.kind().value()) throw new TypeMismatch(t.value() + "!=" + final_type.kind().value()); } ! } \ No newline at end of file --- 942,945 ---- if (t.value() != final_type.kind().value()) throw new TypeMismatch(t.value() + "!=" + final_type.kind().value()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynAnyFactory.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynAnyFactory.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynAnyFactory.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynAnyFactory.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynAnyFactory *** 353,356 **** } return created; } ! } \ No newline at end of file --- 353,356 ---- } return created; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynArray *** 334,337 **** if (array.length != Array.getLength(members)) throw new InvalidValue(sizeMismatch(array.length, Array.getLength(members))); } ! } \ No newline at end of file --- 334,337 ---- if (array.length != Array.getLength(members)) throw new InvalidValue(sizeMismatch(array.length, Array.getLength(members))); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynEnum.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynEnum.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynEnum.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynEnum.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynEnum extends Undivide *** 241,244 **** a.type(official_type); return a; } ! } \ No newline at end of file --- 241,244 ---- a.type(official_type); return a; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynFixed.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynFixed.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynFixed.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynFixed.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynFixed extends Undivid *** 249,252 **** g.insert_fixed(value, official_type); return g; } ! } \ No newline at end of file --- 249,252 ---- g.insert_fixed(value, official_type); return g; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynSequence.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynSequence.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynSequence.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynSequence.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynSequence *** 251,254 **** if (get_length() != Array.getLength(members)) set_length(Array.getLength(members)); } ! } \ No newline at end of file --- 251,254 ---- if (get_length() != Array.getLength(members)) set_length(Array.getLength(members)); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynUnion *** 434,437 **** throw new Unexpected(ex); } } ! } \ No newline at end of file --- 434,437 ---- throw new Unexpected(ex); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynValue.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynValue.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynValue.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynValue.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynValue extends RecordA *** 377,380 **** from_any(a); valueChanged(); } ! } \ No newline at end of file --- 377,380 ---- from_any(a); valueChanged(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynValueBox.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynValueBox.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAn/gnuDynValueBox.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAn/gnuDynValueBox.java Tue Jan 11 19:46:05 2011 *************** public class gnuDynValueBox *** 386,389 **** a.type(orb.get_primitive_tc(TCKind.tk_null)); return a; } ! } \ No newline at end of file --- 386,389 ---- a.type(orb.get_primitive_tc(TCKind.tk_null)); return a; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAnySeqHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAnySeqHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/DynAnySeqHolder.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/DynAnySeqHolder.java Tue Jan 11 19:46:05 2011 *************** public class DynAnySeqHolder *** 113,116 **** { return DynAnySeqHelper.type(); } ! } \ No newline at end of file --- 113,116 ---- { return DynAnySeqHelper.type(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java Tue Jan 11 19:46:05 2011 *************** public class EmptyExceptionHolder *** 128,131 **** throw bad; } } ! } \ No newline at end of file --- 128,131 ---- throw bad; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/ForwardRequestHelper.java gcc-4.6.0/libjava/classpath/gnu/CORBA/ForwardRequestHelper.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/ForwardRequestHelper.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/ForwardRequestHelper.java Tue Jan 11 19:46:05 2011 *************** public abstract class ForwardRequestHelp *** 129,137 **** { ORB orb = OrbRestricted.Singleton; StructMember[] members = new StructMember[ 1 ]; ! TypeCode field; ! field = ObjectHelper.type(); members [ 0 ] = new StructMember("forward_reference", field, null); return orb.create_exception_tc(id(), "ForwardRequest", members); --- 129,137 ---- { ORB orb = OrbRestricted.Singleton; StructMember[] members = new StructMember[ 1 ]; ! TypeCode field; ! field = ObjectHelper.type(); members [ 0 ] = new StructMember("forward_reference", field, null); return orb.create_exception_tc(id(), "ForwardRequest", members); *************** public abstract class ForwardRequestHelp *** 149,152 **** output.write_string(id()); output.write_Object(value.forward_reference); } ! } \ No newline at end of file --- 149,152 ---- output.write_string(id()); output.write_Object(value.forward_reference); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/CharSets_OSF.java gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/CharSets_OSF.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/CharSets_OSF.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/CharSets_OSF.java Tue Jan 11 19:46:05 2011 *************** import java.util.Set; *** 48,54 **** * This class contains the codes, used to identify character sets * in CORBA. These codes are defined in Open Software Foundation (OSF) * code set registry. ! * * The name of this class specially sets "OSF" apart if somebody would start * searching Open Software Foundation abbreviation. * --- 48,54 ---- * This class contains the codes, used to identify character sets * in CORBA. These codes are defined in Open Software Foundation (OSF) * code set registry. ! * * The name of this class specially sets "OSF" apart if somebody would start * searching Open Software Foundation abbreviation. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/CloseMessage.java gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/CloseMessage.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/CloseMessage.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/CloseMessage.java Tue Jan 11 19:46:05 2011 *************** import java.io.OutputStream; *** 58,68 **** public class CloseMessage extends MessageHeader { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The singleton close message is typically enough, despite new * instances may be instantiated if the specific version field --- 58,68 ---- public class CloseMessage extends MessageHeader { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The singleton close message is typically enough, despite new * instances may be instantiated if the specific version field *************** public class CloseMessage *** 103,106 **** throw m; } } ! } \ No newline at end of file --- 103,106 ---- throw m; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/ErrorMessage.java gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/ErrorMessage.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/ErrorMessage.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/ErrorMessage.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.ORB; *** 62,72 **** public class ErrorMessage extends MessageHeader { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Create a new error message, setting the message field * to the {@link MESSAGE_ERROR} and the version number to --- 62,72 ---- public class ErrorMessage extends MessageHeader { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Create a new error message, setting the message field * to the {@link MESSAGE_ERROR} and the version number to *************** public class ErrorMessage *** 83,89 **** * * @param ior the IOR address (host and port, other fields * are not used). ! * * @param orb the ORB, sending the error message. */ public void send(IOR ior, ORB orb) --- 83,89 ---- * * @param ior the IOR address (host and port, other fields * are not used). ! * * @param orb the ORB, sending the error message. */ public void send(IOR ior, ORB orb) *************** public class ErrorMessage *** 91,97 **** try { Socket socket; ! if (orb instanceof OrbFunctional) socket = ((OrbFunctional) orb).socketFactory.createClientSocket( ior.Internet.host, ior.Internet.port); --- 91,97 ---- try { Socket socket; ! if (orb instanceof OrbFunctional) socket = ((OrbFunctional) orb).socketFactory.createClientSocket( ior.Internet.host, ior.Internet.port); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 62,68 **** /** * The GIOP message header. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class MessageHeader --- 62,68 ---- /** * The GIOP message header. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class MessageHeader *************** public class MessageHeader *** 159,165 **** /** * Create an empty message header, corresponding the given version. ! * * @param major the major message header version. * @param minor the minot message header version. */ --- 159,165 ---- /** * Create an empty message header, corresponding the given version. ! * * @param major the major message header version. * @param minor the minot message header version. */ *************** public class MessageHeader *** 187,193 **** /** * Set the encoding to use. ! * * @param use_big_endian if true (default), the Big Endian encoding is used. * If false, the Little Endian encoding is used. */ --- 187,193 ---- /** * Set the encoding to use. ! * * @param use_big_endian if true (default), the Big Endian encoding is used. * If false, the Little Endian encoding is used. */ *************** public class MessageHeader *** 209,217 **** /** * Get the message type as string. ! * * @param type the message type as int (the field {@link message_type}). ! * * @return the message type as string. */ public String getTypeString(int type) --- 209,217 ---- /** * Get the message type as string. ! * * @param type the message type as int (the field {@link message_type}). ! * * @return the message type as string. */ public String getTypeString(int type) *************** public class MessageHeader *** 228,234 **** /** * Creates reply header, matching the message header version number. ! * * @return one of {@link gnu.CORBA.GIOP.v1_0.ReplyHeader}, * {@link gnu.CORBA.GIOP.v1_2.ReplyHeader}, etc - depending on the version * number in this header. --- 228,234 ---- /** * Creates reply header, matching the message header version number. ! * * @return one of {@link gnu.CORBA.GIOP.v1_0.ReplyHeader}, * {@link gnu.CORBA.GIOP.v1_2.ReplyHeader}, etc - depending on the version * number in this header. *************** public class MessageHeader *** 243,249 **** /** * Creates request header, matching the message header version number. ! * * @return one of {@link gnu.CORBA.GIOP.v1_0.RequestHeader}, * {@link gnu.CORBA.GIOP.v1_2.RequestHeader}, etc - depending on the version * number in this header. --- 243,249 ---- /** * Creates request header, matching the message header version number. ! * * @return one of {@link gnu.CORBA.GIOP.v1_0.RequestHeader}, * {@link gnu.CORBA.GIOP.v1_2.RequestHeader}, etc - depending on the version * number in this header. *************** public class MessageHeader *** 274,284 **** /** * Read the header from the stream. ! * * @param istream a stream to read from. * @throws MARSHAL if this is not a GIOP 1.0 header. */ ! public void read(java.io.InputStream istream) throws MARSHAL, EOFException { try --- 274,284 ---- /** * Read the header from the stream. ! * * @param istream a stream to read from. * @throws MARSHAL if this is not a GIOP 1.0 header. */ ! public void read(java.io.InputStream istream) throws MARSHAL, EOFException { try *************** public class MessageHeader *** 336,342 **** /** * Get the short string summary of the message. ! * * @return a short message summary. */ public String toString() --- 336,342 ---- /** * Get the short string summary of the message. ! * * @return a short message summary. */ public String toString() *************** public class MessageHeader *** 348,354 **** /** * Write the header to stream. ! * * @param out a stream to write into. */ public void write(java.io.OutputStream out) --- 348,354 ---- /** * Write the header to stream. ! * * @param out a stream to write into. */ public void write(java.io.OutputStream out) *************** public class MessageHeader *** 382,388 **** /** * Read data, followed by the message header. Handle fragmented messages. ! * * @param source the data source to read from. * @param service the socket on that the time outs are set. Can be null (no * timeouts are set). --- 382,388 ---- /** * Read data, followed by the message header. Handle fragmented messages. ! * * @param source the data source to read from. * @param service the socket on that the time outs are set. Can be null (no * timeouts are set). diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/ServiceContext.java gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/ServiceContext.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/ServiceContext.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/ServiceContext.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.portable.IDLEntity; *** 48,54 **** /** * Contains the ORB service data being passed. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class ServiceContext --- 48,54 ---- /** * Contains the ORB service data being passed. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class ServiceContext *************** public class ServiceContext *** 134,140 **** /** * Read the context values from the stream. ! * * @param istream a stream to read from. */ public static ServiceContext read(AbstractCdrInput istream) --- 134,140 ---- /** * Read the context values from the stream. ! * * @param istream a stream to read from. */ public static ServiceContext read(AbstractCdrInput istream) *************** public class ServiceContext *** 172,178 **** /** * Write the context values into the stream. ! * * @param ostream a stream to write the data to. */ public void write(AbstractCdrOutput ostream) --- 172,178 ---- /** * Write the context values into the stream. ! * * @param ostream a stream to write the data to. */ public void write(AbstractCdrOutput ostream) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java Mon Jan 28 17:08:39 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.NO_IMPLEMENT; *** 59,69 **** public class RequestHeader extends gnu.CORBA.GIOP.v1_0.RequestHeader { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Indicates that the object is addressed by the object key. */ --- 59,69 ---- public class RequestHeader extends gnu.CORBA.GIOP.v1_0.RequestHeader { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Indicates that the object is addressed by the object key. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/GeneralHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/GeneralHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/GeneralHolder.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/GeneralHolder.java Tue Jan 11 19:46:05 2011 *************** public class GeneralHolder *** 175,178 **** throw new Unexpected(ex); } } ! } \ No newline at end of file --- 175,178 ---- throw new Unexpected(ex); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/IOR.java gcc-4.6.0/libjava/classpath/gnu/CORBA/IOR.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/IOR.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/IOR.java Tue Jan 11 19:46:05 2011 *************** public class IOR *** 142,148 **** b.append(' '); return b.toString(); } ! /** * Get a better formatted multiline string representation. */ --- 142,148 ---- b.append(' '); return b.toString(); } ! /** * Get a better formatted multiline string representation. */ *************** public class IOR *** 162,168 **** b.append("\n"); return b.toString(); } ! /** * Write into CDR stream. --- 162,168 ---- b.append("\n"); return b.toString(); } ! /** * Write into CDR stream. *************** public class IOR *** 613,621 **** return b.toString(); } ! /** ! * Returns a multiline formatted human readable string representation of * this IOR object. */ public String toStringFormatted() --- 613,621 ---- return b.toString(); } ! /** ! * Returns a multiline formatted human readable string representation of * this IOR object. */ public String toStringFormatted() *************** public class IOR *** 629,635 **** if (Big_Endian) b.append("\n Big endian encoding"); else ! b.append("\n Little endian encoding."); b.append("\nObject Key\n "); --- 629,635 ---- if (Big_Endian) b.append("\n Big endian encoding"); else ! b.append("\n Little endian encoding."); b.append("\nObject Key\n "); *************** public class IOR *** 645,651 **** b.append(Internet.CodeSets.wide.toStringFormatted()); return b.toString(); ! } /** * Returs a stringified reference. --- 645,651 ---- b.append(Internet.CodeSets.wide.toStringFormatted()); return b.toString(); ! } /** * Returs a stringified reference. *************** public class IOR *** 774,780 **** // The future supported tagged profiles should be added here. throw new BAD_PARAM("Unsupported profile type " + profile.tag); } ! /** * Checks for equality. */ --- 774,780 ---- // The future supported tagged profiles should be added here. throw new BAD_PARAM("Unsupported profile type " + profile.tag); } ! /** * Checks for equality. */ *************** public class IOR *** 786,795 **** boolean hosts = true; IOR other = (IOR) x; ! if (Internet==null || other.Internet==null) return Internet == other.Internet; ! if (key != null && other.key != null) keys = Arrays.equals(key, other.key); else --- 786,795 ---- boolean hosts = true; IOR other = (IOR) x; ! if (Internet==null || other.Internet==null) return Internet == other.Internet; ! if (key != null && other.key != null) keys = Arrays.equals(key, other.key); else *************** public class IOR *** 804,810 **** else return false; } ! /** * Get the hashcode of this IOR. */ --- 804,810 ---- else return false; } ! /** * Get the hashcode of this IOR. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/ClientRequestInterceptors.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/ClientRequestInterceptors.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/ClientRequestInterceptors.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/ClientRequestInterceptors.java Tue Jan 11 19:46:05 2011 *************** public class ClientRequestInterceptors *** 136,139 **** { return getClass().getName(); } ! } \ No newline at end of file --- 136,139 ---- { return getClass().getName(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/ForwardRequestHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/ForwardRequestHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/ForwardRequestHolder.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/ForwardRequestHolder.java Tue Jan 11 19:46:05 2011 *************** public class ForwardRequestHolder implem *** 103,106 **** { return ForwardRequestHelper.type(); } ! } \ No newline at end of file --- 103,106 ---- { return ForwardRequestHelper.type(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java Tue Jan 11 19:46:05 2011 *************** public class IORInterceptors implements *** 162,168 **** /** * Call this method for all registered CORBA 3.0 interceptors. ! * * @throws OBJ_ADAPTER minor 6 on any failure (as defined by OMG specs). */ public void components_established(IORInfo info) --- 162,168 ---- /** * Call this method for all registered CORBA 3.0 interceptors. ! * * @throws OBJ_ADAPTER minor 6 on any failure (as defined by OMG specs). */ public void components_established(IORInfo info) *************** public class IORInterceptors implements *** 186,189 **** } } } ! } \ No newline at end of file --- 186,189 ---- } } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/Registrator.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/Registrator.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/Registrator.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/Registrator.java Tue Jan 11 19:46:05 2011 *************** public class Registrator extends LocalOb *** 184,190 **** { String cn = sk.substring(m_prefix.length()); Class iClass = ObjectCreator.forName(cn); ! ORBInitializer initializer = (ORBInitializer) iClass.newInstance(); m_initializers.add(initializer); --- 184,190 ---- { String cn = sk.substring(m_prefix.length()); Class iClass = ObjectCreator.forName(cn); ! ORBInitializer initializer = (ORBInitializer) iClass.newInstance(); m_initializers.add(initializer); *************** public class Registrator extends LocalOb *** 469,472 **** { return m_ior.size() > 0; } ! } \ No newline at end of file --- 469,472 ---- { return m_ior.size() > 0; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/ServerRequestInterceptors.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/ServerRequestInterceptors.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/ServerRequestInterceptors.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/ServerRequestInterceptors.java Tue Jan 11 19:46:05 2011 *************** public class ServerRequestInterceptors *** 136,139 **** { return getClass().getName(); } ! } \ No newline at end of file --- 136,139 ---- { return getClass().getName(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/gnuClientRequestInfo.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/gnuClientRequestInfo.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/gnuClientRequestInfo.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/gnuClientRequestInfo.java Tue Jan 11 19:46:05 2011 *************** public class gnuClientRequestInfo extend *** 334,337 **** { return request.get_request_service_context(ctx_name); } ! } \ No newline at end of file --- 334,337 ---- { return request.get_request_service_context(ctx_name); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/gnuIcCurrent.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/gnuIcCurrent.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/gnuIcCurrent.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/gnuIcCurrent.java Tue Jan 11 19:46:05 2011 *************** public class gnuIcCurrent extends Object *** 252,255 **** throw new InvalidSlot("Slot " + slot_id); } } ! } \ No newline at end of file --- 252,255 ---- throw new InvalidSlot("Slot " + slot_id); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/gnuIorInfo.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/gnuIorInfo.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/gnuIorInfo.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/gnuIorInfo.java Tue Jan 11 19:46:05 2011 *************** public class gnuIorInfo extends LocalObj *** 137,143 **** } /** ! * Set the object factory of the current POA. */ public void current_factory(ObjectReferenceFactory factory) { --- 137,143 ---- } /** ! * Set the object factory of the current POA. */ public void current_factory(ObjectReferenceFactory factory) { *************** public class gnuIorInfo extends LocalObj *** 145,156 **** } /** ! * The method currently uses system identity hashcode that should be * different for each object. */ public int manager_id() { ! // The System.identityHashCode is also called in gnuPoaManager. return System.identityHashCode(poa.the_POAManager()); } ! } \ No newline at end of file --- 145,156 ---- } /** ! * The method currently uses system identity hashcode that should be * different for each object. */ public int manager_id() { ! // The System.identityHashCode is also called in gnuPoaManager. return System.identityHashCode(poa.the_POAManager()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/gnuServerRequestInfo.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/gnuServerRequestInfo.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Interceptor/gnuServerRequestInfo.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Interceptor/gnuServerRequestInfo.java Tue Jan 11 19:46:05 2011 *************** public class gnuServerRequestInfo extend *** 472,476 **** { return OrbFunctional.server_id; } ! ! } \ No newline at end of file --- 472,476 ---- { return OrbFunctional.server_id; } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/IorDelegate.java gcc-4.6.0/libjava/classpath/gnu/CORBA/IorDelegate.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/IorDelegate.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/IorDelegate.java Tue Jan 11 19:46:05 2011 *************** public class IorDelegate extends SimpleD *** 152,169 **** * request to the new direction. The ReplyHeader.LOCATION_FORWARD_PERM will * cause additionally to remember the new location by this delegate, so * subsequent calls will be immediately delivered to the new target. ! * * @param target the target object. * @param output the output stream, previously returned by * {@link #request(org.omg.CORBA.Object, String, boolean)}. ! * * @return the input stream, to read the response from or null for a one-way * request. ! * * @throws SystemException if the SystemException has been thrown on the * remote side (the exact type and the minor code matches the data of the * remote exception that has been thrown). ! * * @throws org.omg.CORBA.portable.ApplicationException as specified. * @throws org.omg.CORBA.portable.RemarshalException as specified. */ --- 152,169 ---- * request to the new direction. The ReplyHeader.LOCATION_FORWARD_PERM will * cause additionally to remember the new location by this delegate, so * subsequent calls will be immediately delivered to the new target. ! * * @param target the target object. * @param output the output stream, previously returned by * {@link #request(org.omg.CORBA.Object, String, boolean)}. ! * * @return the input stream, to read the response from or null for a one-way * request. ! * * @throws SystemException if the SystemException has been thrown on the * remote side (the exact type and the minor code matches the data of the * remote exception that has been thrown). ! * * @throws org.omg.CORBA.portable.ApplicationException as specified. * @throws org.omg.CORBA.portable.RemarshalException as specified. */ *************** public class IorDelegate extends SimpleD *** 422,425 **** { return false; } ! } \ No newline at end of file --- 422,425 ---- { return false; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/IorObject.java gcc-4.6.0/libjava/classpath/gnu/CORBA/IorObject.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/IorObject.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/IorObject.java Tue Jan 11 19:46:05 2011 *************** public class IorObject *** 83,89 **** _set_delegate(new IorDelegate(orb, ior)); id = new String[] { ior.Id }; } ! /** * Get the IOR of this object. */ --- 83,89 ---- _set_delegate(new IorDelegate(orb, ior)); id = new String[] { ior.Id }; } ! /** * Get the IOR of this object. */ *************** public class IorObject *** 115,118 **** { _get_delegate().release(this); } ! } \ No newline at end of file --- 115,118 ---- { _get_delegate().release(this); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Minor.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Minor.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Minor.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Minor.java Tue Jan 11 19:46:05 2011 *************** package gnu.CORBA; *** 43,49 **** * Provides information and operations, related to about the 20 bit vendor minor * code Id. This code is included into all CORBA system exceptions and is also * transferred to remote side. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public interface Minor --- 43,49 ---- * Provides information and operations, related to about the 20 bit vendor minor * code Id. This code is included into all CORBA system exceptions and is also * transferred to remote side. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public interface Minor *************** public interface Minor *** 257,278 **** * for the given policy type. */ int PolicyType = 15 | vendor; ! /* NO_RESOURCES */ ! /** * Unable to get a free port for a new socket. Proably too many objects under * unsuitable POA policy. */ int Ports = 20 | vendor; ! /** * Too many parallel calls (too many parallel threads). The thread control * prevents malicios client from knocking the server out by suddenly * submitting large number of requests. */ int Threads = 21 | vendor; ! /** * The IOR starts with file://, http:// or ftp://, but this local or remote * resource is not accessible. --- 257,278 ---- * for the given policy type. */ int PolicyType = 15 | vendor; ! /* NO_RESOURCES */ ! /** * Unable to get a free port for a new socket. Proably too many objects under * unsuitable POA policy. */ int Ports = 20 | vendor; ! /** * Too many parallel calls (too many parallel threads). The thread control * prevents malicios client from knocking the server out by suddenly * submitting large number of requests. */ int Threads = 21 | vendor; ! /** * The IOR starts with file://, http:// or ftp://, but this local or remote * resource is not accessible. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/NameDynAnyPairHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/NameDynAnyPairHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/NameDynAnyPairHolder.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/NameDynAnyPairHolder.java Tue Jan 11 19:46:05 2011 *************** public class NameDynAnyPairHolder *** 112,115 **** { return NameDynAnyPairHelper.type(); } ! } \ No newline at end of file --- 112,115 ---- { return NameDynAnyPairHelper.type(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/NameDynAnyPairSeqHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/NameDynAnyPairSeqHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/NameDynAnyPairSeqHolder.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/NameDynAnyPairSeqHolder.java Tue Jan 11 19:46:05 2011 *************** public class NameDynAnyPairSeqHolder *** 112,115 **** { return NameDynAnyPairSeqHelper.type(); } ! } \ No newline at end of file --- 112,115 ---- { return NameDynAnyPairSeqHelper.type(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/NameValuePairHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/NameValuePairHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/NameValuePairHolder.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/NameValuePairHolder.java Tue Jan 11 19:46:05 2011 *************** public class NameValuePairHolder *** 102,105 **** { return NameValuePairHelper.type(); } ! } \ No newline at end of file --- 102,105 ---- { return NameValuePairHelper.type(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/NameValuePairSeqHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/NameValuePairSeqHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/NameValuePairSeqHolder.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/NameValuePairSeqHolder.java Tue Jan 11 19:46:05 2011 *************** public class NameValuePairSeqHolder *** 102,105 **** { return NameValuePairSeqHelper.type(); } ! } \ No newline at end of file --- 102,105 ---- { return NameValuePairSeqHelper.type(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/NamingService/NameParser.java gcc-4.6.0/libjava/classpath/gnu/CORBA/NamingService/NameParser.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/NamingService/NameParser.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/NamingService/NameParser.java Tue Jan 11 19:46:05 2011 *************** import java.util.StringTokenizer; *** 68,82 **** /** * Parses the alternative IOR representations into our IOR structure. ! * * TODO This parser currently supports only one address per target string. A * string with the multiple addresses will be accepted, but only the last * address will be taken into consideration. The fault tolerance is not yet * implemented. ! * * The key string is filtered using {@link java.net.URLDecoder} that replaces * the agreed escape sequences by the corresponding non alphanumeric characters. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class NameParser --- 68,82 ---- /** * Parses the alternative IOR representations into our IOR structure. ! * * TODO This parser currently supports only one address per target string. A * string with the multiple addresses will be accepted, but only the last * address will be taken into consideration. The fault tolerance is not yet * implemented. ! * * The key string is filtered using {@link java.net.URLDecoder} that replaces * the agreed escape sequences by the corresponding non alphanumeric characters. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class NameParser *************** public class NameParser *** 96,112 **** * The IOR prefix. */ public static final String pxIOR = "ior"; ! /** * The file:// prefix. */ public static final String pxFILE = "file://"; ! /** * The ftp:// prefix. */ public static final String pxFTP = "ftp://"; ! /** * The http:// prefix. */ --- 96,112 ---- * The IOR prefix. */ public static final String pxIOR = "ior"; ! /** * The file:// prefix. */ public static final String pxFILE = "file://"; ! /** * The ftp:// prefix. */ public static final String pxFTP = "ftp://"; ! /** * The http:// prefix. */ *************** public class NameParser *** 149,155 **** /** * Parse CORBALOC. ! * * The expected format is:
      * 1. corbaloc:[iiop][version.subversion@]:host[:port]/key
      * 2. corbaloc:rir:[/key]
      --- 149,155 ---- /** * Parse CORBALOC. ! * * The expected format is:
      * 1. corbaloc:[iiop][version.subversion@]:host[:port]/key
      * 2. corbaloc:rir:[/key]
      *************** public class NameParser *** 158,169 **** * 5. file://[file name]
      * 6. http://[url]
      * 7. ftp://[url]
      ! * * Protocol defaults to IOP, the object key defaults to the NameService. ! * * @param corbaloc the string to parse. * @param orb the ORB, needed to create IORs and resolve rir references. ! * * @return the resolved object. */ public synchronized org.omg.CORBA.Object corbaloc(String corbaloc, --- 158,169 ---- * 5. file://[file name]
      * 6. http://[url]
      * 7. ftp://[url]
      ! * * Protocol defaults to IOP, the object key defaults to the NameService. ! * * @param corbaloc the string to parse. * @param orb the ORB, needed to create IORs and resolve rir references. ! * * @return the resolved object. */ public synchronized org.omg.CORBA.Object corbaloc(String corbaloc, *************** public class NameParser *** 172,178 **** { return corbaloc(corbaloc, orb, 0); } ! /** * Parse controlling against the infinite recursion loop. */ --- 172,178 ---- { return corbaloc(corbaloc, orb, 0); } ! /** * Parse controlling against the infinite recursion loop. */ *************** public class NameParser *** 184,190 **** // by malicious attempt. if (recursion > 10) throw new DATA_CONVERSION("More than 10 redirections"); ! if (corbaloc.startsWith(pxFILE)) return corbaloc(readFile(corbaloc.substring(pxFILE.length())), orb, recursion+1); else if (corbaloc.startsWith(pxHTTP)) --- 184,190 ---- // by malicious attempt. if (recursion > 10) throw new DATA_CONVERSION("More than 10 redirections"); ! if (corbaloc.startsWith(pxFILE)) return corbaloc(readFile(corbaloc.substring(pxFILE.length())), orb, recursion+1); else if (corbaloc.startsWith(pxHTTP)) *************** public class NameParser *** 347,353 **** else throw new DATA_CONVERSION("Unsupported protocol '" + t[p] + "'"); } ! /** * Read IOR from the file in the local file system. */ --- 347,353 ---- else throw new DATA_CONVERSION("Unsupported protocol '" + t[p] + "'"); } ! /** * Read IOR from the file in the local file system. */ *************** public class NameParser *** 376,382 **** throw (d); } } ! /** * Read IOR from the remote URL. */ --- 376,382 ---- throw (d); } } ! /** * Read IOR from the remote URL. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/NamingService/NamingMap.java gcc-4.6.0/libjava/classpath/gnu/CORBA/NamingService/NamingMap.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/NamingService/NamingMap.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/NamingService/NamingMap.java Tue Jan 11 19:46:05 2011 *************** public class NamingMap *** 95,101 **** if (containsValue(object)) throw new AlreadyBound("The object has another name"); } ! // There are no restrictions in binding the object. rebind(name, object); } --- 95,101 ---- if (containsValue(object)) throw new AlreadyBound("The object has another name"); } ! // There are no restrictions in binding the object. rebind(name, object); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/NamingService/NamingServiceTransient.java gcc-4.6.0/libjava/classpath/gnu/CORBA/NamingService/NamingServiceTransient.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/NamingService/NamingServiceTransient.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/NamingService/NamingServiceTransient.java Tue Jan 11 19:46:05 2011 *************** import java.io.UnsupportedEncodingExcept *** 51,61 **** * The server for the gnu classpath naming service. This is an executable class * that must be started to launch the GNU Classpath CORBA transient naming * service. ! * * GNU Classpath currently works with this naming service and is also * interoperable with the Sun Microsystems naming services from releases 1.3 and * 1.4, both transient tnameserv and persistent orbd. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class NamingServiceTransient --- 51,61 ---- * The server for the gnu classpath naming service. This is an executable class * that must be started to launch the GNU Classpath CORBA transient naming * service. ! * * GNU Classpath currently works with this naming service and is also * interoperable with the Sun Microsystems naming services from releases 1.3 and * 1.4, both transient tnameserv and persistent orbd. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class NamingServiceTransient *************** public class NamingServiceTransient *** 69,75 **** /** * Get the object key for the naming service. The default key is the string * "NameService" in ASCII. ! * * @return the byte array. */ public static byte[] getDefaultKey() --- 69,75 ---- /** * Get the object key for the naming service. The default key is the string * "NameService" in ASCII. ! * * @return the byte array. */ public static byte[] getDefaultKey() *************** public class NamingServiceTransient *** 86,92 **** /** * Start the naming service on the current host at the given port. ! * * @param portArgument the port on which the service will be * started, or -1 to use the default port, 900 * @param fileArgument if non-null, store the IOR string of this --- 86,92 ---- /** * Start the naming service on the current host at the given port. ! * * @param portArgument the port on which the service will be * started, or -1 to use the default port, 900 * @param fileArgument if non-null, store the IOR string of this diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/NamingService/TransientContext.java gcc-4.6.0/libjava/classpath/gnu/CORBA/NamingService/TransientContext.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/NamingService/TransientContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/NamingService/TransientContext.java Tue Jan 11 19:46:05 2011 *************** public class TransientContext *** 77,83 **** * Use serial version UID for interoperability. */ private static final long serialVersionUID = 2; ! /** * The already named contexts. */ --- 77,83 ---- * Use serial version UID for interoperability. */ private static final long serialVersionUID = 2; ! /** * The already named contexts. */ *************** public class TransientContext *** 87,93 **** * The already named objects. */ protected final NamingMap named_objects; ! /** * Create the naming conetxt with default (transient) naming maps. */ --- 87,93 ---- * The already named objects. */ protected final NamingMap named_objects; ! /** * Create the naming conetxt with default (transient) naming maps. */ *************** public class TransientContext *** 95,104 **** { this(new NamingMap(), new NamingMap()); } ! /** * Create the naming conetxt with the two provided naming maps. ! * * @param context_map the map for contexts * @param object_map the map for objectss */ --- 95,104 ---- { this(new NamingMap(), new NamingMap()); } ! /** * Create the naming conetxt with the two provided naming maps. ! * * @param context_map the map for contexts * @param object_map the map for objectss */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/ObjectCreator.java gcc-4.6.0/libjava/classpath/gnu/CORBA/ObjectCreator.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/ObjectCreator.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/ObjectCreator.java Tue Jan 11 19:46:05 2011 *************** import javax.rmi.CORBA.Util; *** 68,74 **** /** * Creates java objects from the agreed IDL names for the simple case when the * CORBA object is directly mapped into the locally defined java class. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class ObjectCreator --- 68,74 ---- /** * Creates java objects from the agreed IDL names for the simple case when the * CORBA object is directly mapped into the locally defined java class. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class ObjectCreator *************** public class ObjectCreator *** 110,116 **** * Try to instantiate an object with the given IDL name. The object must be * mapped to the local java class. The omg.org domain must be mapped into the * object in either org/omg or gnu/CORBA namespace. ! * * @param idl name * @return instantiated object instance or null if no such available. */ --- 110,116 ---- * Try to instantiate an object with the given IDL name. The object must be * mapped to the local java class. The omg.org domain must be mapped into the * object in either org/omg or gnu/CORBA namespace. ! * * @param idl name * @return instantiated object instance or null if no such available. */ *************** public class ObjectCreator *** 165,174 **** /** * Read the system exception from the given stream. ! * * @param input the CDR stream to read from. * @param contexts the service contexts in request/reply header/ ! * * @return the exception that has been stored in the stream (IDL name, minor * code and completion status). */ --- 165,174 ---- /** * Read the system exception from the given stream. ! * * @param input the CDR stream to read from. * @param contexts the service contexts in request/reply header/ ! * * @return the exception that has been stored in the stream (IDL name, minor * code and completion status). */ *************** public class ObjectCreator *** 228,237 **** * Reads the user exception, having the given Id, from the input stream. The * id is expected to be in the form like * 'IDL:test/org/omg/CORBA/ORB/communication/ourUserException:1.0' ! * * @param idl the exception idl name. * @param input the stream to read from. ! * * @return the loaded exception. * @return null if the helper class cannot be found. */ --- 228,237 ---- * Reads the user exception, having the given Id, from the input stream. The * id is expected to be in the form like * 'IDL:test/org/omg/CORBA/ORB/communication/ourUserException:1.0' ! * * @param idl the exception idl name. * @param input the stream to read from. ! * * @return the loaded exception. * @return null if the helper class cannot be found. */ *************** public class ObjectCreator *** 261,267 **** /** * Gets the helper class name from the string like * 'IDL:test/org/omg/CORBA/ORB/communication/ourUserException:1.0' ! * * @param IDL the idl name. */ public static String toHelperName(String IDL) --- 261,267 ---- /** * Gets the helper class name from the string like * 'IDL:test/org/omg/CORBA/ORB/communication/ourUserException:1.0' ! * * @param IDL the idl name. */ public static String toHelperName(String IDL) *************** public class ObjectCreator *** 280,286 **** /** * Writes the system exception data to CDR output stream. ! * * @param output a stream to write data to. * @param ex an exception to write. */ --- 280,286 ---- /** * Writes the system exception data to CDR output stream. ! * * @param output a stream to write data to. * @param ex an exception to write. */ *************** public class ObjectCreator *** 295,303 **** /** * Converts the given IDL name to class name. ! * * @param IDL the idl name. ! * */ protected static String toClassName(String prefix, String IDL) { --- 295,303 ---- /** * Converts the given IDL name to class name. ! * * @param IDL the idl name. ! * */ protected static String toClassName(String prefix, String IDL) { *************** public class ObjectCreator *** 317,325 **** * Converts the given IDL name to class name and tries to load the matching * class. The OMG prefix (omg.org) is replaced by the java prefix org.omg. No * other prefixes are added. ! * * @param IDL the idl name. ! * * @return the matching class or null if no such is available. */ public static Class Idl2class(String IDL) --- 317,325 ---- * Converts the given IDL name to class name and tries to load the matching * class. The OMG prefix (omg.org) is replaced by the java prefix org.omg. No * other prefixes are added. ! * * @param IDL the idl name. ! * * @return the matching class or null if no such is available. */ public static Class Idl2class(String IDL) *************** public class ObjectCreator *** 362,370 **** * and create an object instance with parameterless constructor. The OMG * prefix (omg.org) is replaced by the java prefix org.omg. No other prefixes * are added. ! * * @param IDL the idl name. ! * * @return instantiated object instance or null if such attempt was not * successful. */ --- 362,370 ---- * and create an object instance with parameterless constructor. The OMG * prefix (omg.org) is replaced by the java prefix org.omg. No other prefixes * are added. ! * * @param IDL the idl name. ! * * @return instantiated object instance or null if such attempt was not * successful. */ *************** public class ObjectCreator *** 390,398 **** * inherits from IDLEntity, ValueBase or SystemException, returns repository * Id in the IDL:(..) form. If it does not, returns repository Id in the * RMI:(..) form. ! * * @param cx the class for that the name must be computed. ! * * @return the idl or rmi name. */ public static synchronized String getRepositoryId(Class cx) --- 390,398 ---- * inherits from IDLEntity, ValueBase or SystemException, returns repository * Id in the IDL:(..) form. If it does not, returns repository Id in the * RMI:(..) form. ! * * @param cx the class for that the name must be computed. ! * * @return the idl or rmi name. */ public static synchronized String getRepositoryId(Class cx) *************** public class ObjectCreator *** 427,438 **** * Insert the passed parameter into the given Any, assuming that the helper * class is available. The helper class must have the "Helper" suffix and be * in the same package as the class of the object being inserted. ! * * @param into the target to insert. ! * * @param object the object to insert. It can be any object as far as the * corresponding helper is provided. ! * * @return true on success, false otherwise. */ public static boolean insertWithHelper(Any into, Object object) --- 427,438 ---- * Insert the passed parameter into the given Any, assuming that the helper * class is available. The helper class must have the "Helper" suffix and be * in the same package as the class of the object being inserted. ! * * @param into the target to insert. ! * * @param object the object to insert. It can be any object as far as the * corresponding helper is provided. ! * * @return true on success, false otherwise. */ public static boolean insertWithHelper(Any into, Object object) *************** public class ObjectCreator *** 547,553 **** } } } ! /** * Load the class with the given name. This method tries to use the context * class loader first. If this fails, it searches for the suitable class --- 547,553 ---- } } } ! /** * Load the class with the given name. This method tries to use the context * class loader first. If this fails, it searches for the suitable class *************** public class ObjectCreator *** 587,590 **** } throw new ClassNotFoundException(className); } ! } \ No newline at end of file --- 587,590 ---- } throw new ClassNotFoundException(className); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/OrbFocused.java gcc-4.6.0/libjava/classpath/gnu/CORBA/OrbFocused.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/OrbFocused.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/OrbFocused.java Tue Jan 11 19:46:05 2011 *************** import java.util.StringTokenizer; *** 62,77 **** * to allow CORBA to work on one fixed port or (for better performance) on a * small fixed range of ports. This does not restrict the maximal number of the * connected objects as the objects can share the same port. ! * * The used port or the used port range can be specified via property * gnu.CORBA.ListenerPort. The value of this property is a single port or range * of ports, boundary values (inclusive) being separeted by dash (for instance, * "1245-1250"). ! * * It is possible to instantiate multiple instances of the focused ORBs and * combine them with the ordinary ORBs. If you instantiate several instances of * the focused ORBs on the same host, they used port sets should not overlap. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class OrbFocused --- 62,77 ---- * to allow CORBA to work on one fixed port or (for better performance) on a * small fixed range of ports. This does not restrict the maximal number of the * connected objects as the objects can share the same port. ! * * The used port or the used port range can be specified via property * gnu.CORBA.ListenerPort. The value of this property is a single port or range * of ports, boundary values (inclusive) being separeted by dash (for instance, * "1245-1250"). ! * * It is possible to instantiate multiple instances of the focused ORBs and * combine them with the ordinary ORBs. If you instantiate several instances of * the focused ORBs on the same host, they used port sets should not overlap. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class OrbFocused *************** public class OrbFocused *** 136,142 **** /** * Set the port range. ! * * @param from - start of the port range, inclusive. * @param to - end of the port range, inclusive. */ --- 136,142 ---- /** * Set the port range. ! * * @param from - start of the port range, inclusive. * @param to - end of the port range, inclusive. */ *************** public class OrbFocused *** 231,237 **** /** * Start the ORBs main working cycle (receive invocation - invoke on the local * object - send response - wait for another invocation). ! * * The method only returns after calling {@link #shutdown(boolean)}. */ public void run() --- 231,237 ---- /** * Start the ORBs main working cycle (receive invocation - invoke on the local * object - send response - wait for another invocation). ! * * The method only returns after calling {@link #shutdown(boolean)}. */ public void run() *************** public class OrbFocused *** 281,287 **** * Connect the given CORBA object to this ORB, explicitly specifying the * object key and the identity of the thread (and port), where the object must * be served. The identity is normally the POA. ! * * The new port server will be started only if there is no one already running * for the same identity. Otherwise, the task of the existing port server will * be widened, including duty to serve the given object. All objects, --- 281,287 ---- * Connect the given CORBA object to this ORB, explicitly specifying the * object key and the identity of the thread (and port), where the object must * be served. The identity is normally the POA. ! * * The new port server will be started only if there is no one already running * for the same identity. Otherwise, the task of the existing port server will * be widened, including duty to serve the given object. All objects, *************** public class OrbFocused *** 289,301 **** * subsequently in the same thread. The method is used when the expected * number of the objects is too large to have a single port and thread per * object. This method is used by POAs, having a single thread policy. ! * * @param object the object, must implement the {@link InvokeHandler}) * interface. * @param key the object key, usually used to identify the object from remote * side. * @param port the port, where the object must be connected. ! * * @throws BAD_PARAM if the object does not implement the * {@link InvokeHandler}). */ --- 289,301 ---- * subsequently in the same thread. The method is used when the expected * number of the objects is too large to have a single port and thread per * object. This method is used by POAs, having a single thread policy. ! * * @param object the object, must implement the {@link InvokeHandler}) * interface. * @param key the object key, usually used to identify the object from remote * side. * @param port the port, where the object must be connected. ! * * @throws BAD_PARAM if the object does not implement the * {@link InvokeHandler}). */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/OrbFunctional.java gcc-4.6.0/libjava/classpath/gnu/CORBA/OrbFunctional.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/OrbFunctional.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/OrbFunctional.java Tue Jan 11 19:46:05 2011 *************** public class OrbFunctional extends OrbRe *** 184,190 **** /** * Perform a single serving step. ! * * @throws java.lang.Exception */ void tick() --- 184,190 ---- /** * Perform a single serving step. ! * * @throws java.lang.Exception */ void tick() *************** public class OrbFunctional extends OrbRe *** 251,269 **** * for a free port. */ public static int DEFAULT_INITIAL_PORT = 1126; ! /** * When trying to open the socket on a random port, start of the interval to * try. */ public static int RANDOM_PORT_FROM = 1024; ! /** * When trying to open the socket on a random port, end of the interval to * try. */ public static int RANDOM_PORT_TO = 4024; ! /** * The number of attempts to try when opening random port. */ --- 251,269 ---- * for a free port. */ public static int DEFAULT_INITIAL_PORT = 1126; ! /** * When trying to open the socket on a random port, start of the interval to * try. */ public static int RANDOM_PORT_FROM = 1024; ! /** * When trying to open the socket on a random port, end of the interval to * try. */ public static int RANDOM_PORT_TO = 4024; ! /** * The number of attempts to try when opening random port. */ *************** public class OrbFunctional extends OrbRe *** 296,313 **** * The string, defining the naming service initial reference. */ public static final String NAME_SERVICE = "NameService"; ! /** * Defines the ORB ID that is accessible by IOR interceptors. */ public static final String ORB_ID = "org.omg.CORBA.ORBid"; ! ! /** * Defines the SERVER ID that is accessible by IOR interceptors. */ public static final String SERVER_ID = "org.omg.CORBA.ServerId"; ! /** * The if the client has once opened a socket, it should start sending the * message header in a given time. Otherwise the server will close the socket. --- 296,313 ---- * The string, defining the naming service initial reference. */ public static final String NAME_SERVICE = "NameService"; ! /** * Defines the ORB ID that is accessible by IOR interceptors. */ public static final String ORB_ID = "org.omg.CORBA.ORBid"; ! ! /** * Defines the SERVER ID that is accessible by IOR interceptors. */ public static final String SERVER_ID = "org.omg.CORBA.ServerId"; ! /** * The if the client has once opened a socket, it should start sending the * message header in a given time. Otherwise the server will close the socket. *************** public class OrbFunctional extends OrbRe *** 331,337 **** */ public static String AFTER_RECEIVING = "gnu.classpath.CORBA.TOUT_AFTER_RECEIVING"; ! /** * The server waits for this duration after the potentially transient error * during its servicing cycle. --- 331,337 ---- */ public static String AFTER_RECEIVING = "gnu.classpath.CORBA.TOUT_AFTER_RECEIVING"; ! /** * The server waits for this duration after the potentially transient error * during its servicing cycle. *************** public class OrbFunctional extends OrbRe *** 366,372 **** * received task. We make it 40 minutes. */ public int TOUT_AFTER_RECEIVING = 40 * 60 * 1000; ! /** * The server waits for this duration after the potentially transient error * during its servicing cycle. --- 366,372 ---- * received task. We make it 40 minutes. */ public int TOUT_AFTER_RECEIVING = 40 * 60 * 1000; ! /** * The server waits for this duration after the potentially transient error * during its servicing cycle. *************** public class OrbFunctional extends OrbRe *** 381,397 **** * seven seconds. */ public static int TANDEM_REQUESTS = 7000; ! /** * The Id of this ORB. */ public String orb_id = "orb_"+hashCode(); ! /** * The Id of this Server. This field is defined static to ensure it has * the same value over all ORB's in this machine. */ ! public static String server_id = "server_"+OrbFunctional.class.hashCode(); /** * The map of the already conncted objects. --- 381,397 ---- * seven seconds. */ public static int TANDEM_REQUESTS = 7000; ! /** * The Id of this ORB. */ public String orb_id = "orb_"+hashCode(); ! /** * The Id of this Server. This field is defined static to ensure it has * the same value over all ORB's in this machine. */ ! public static String server_id = "server_"+OrbFunctional.class.hashCode(); /** * The map of the already conncted objects. *************** public class OrbFunctional extends OrbRe *** 440,446 **** * The port, on that the name service is expected to be running. */ private int ns_port = 900; ! /** * The name parser. */ --- 440,446 ---- * The port, on that the name service is expected to be running. */ private int ns_port = 900; ! /** * The name parser. */ *************** public class OrbFunctional extends OrbRe *** 468,474 **** * exceeding this limit, the NO_RESOURCES is thrown back to the client. */ private int MAX_RUNNING_THREADS = 256; ! /** * The producer of the client and server sockets for this ORB. */ --- 468,474 ---- * exceeding this limit, the NO_RESOURCES is thrown back to the client. */ private int MAX_RUNNING_THREADS = 256; ! /** * The producer of the client and server sockets for this ORB. */ *************** public class OrbFunctional extends OrbRe *** 516,524 **** /** * Get the currently free port, starting from the initially set port and going * up max 20 steps, then trying to bind into any free address. ! * * @return the currently available free port. ! * * @throws NO_RESOURCES if the server socked cannot be opened on the local * host. */ --- 516,524 ---- /** * Get the currently free port, starting from the initially set port and going * up max 20 steps, then trying to bind into any free address. ! * * @return the currently available free port. ! * * @throws NO_RESOURCES if the server socked cannot be opened on the local * host. */ *************** public class OrbFunctional extends OrbRe *** 595,601 **** * on this port first. It the port is busy, or if more objects are connected, * the subsequent object will receive a larger port values, skipping * unavailable ports, if required. The change applies globally. ! * * @param a_Port a port, on that the server is listening for requests. */ public static void setPort(int a_Port) --- 595,601 ---- * on this port first. It the port is busy, or if more objects are connected, * the subsequent object will receive a larger port values, skipping * unavailable ports, if required. The change applies globally. ! * * @param a_Port a port, on that the server is listening for requests. */ public static void setPort(int a_Port) *************** public class OrbFunctional extends OrbRe *** 988,1004 **** CollocatedOrbs.unregisterOrb(this); } } ! /** * Start the server in a new thread, if not already running. This method is ! * used to ensure that the objects being transfered will be served from the * remote side, if required. If the ORB is started using this method, it * starts as a daemon thread. */ public void ensureRunning() { final OrbFunctional THIS = this; ! if (!running) { Thread t = new Thread() --- 988,1004 ---- CollocatedOrbs.unregisterOrb(this); } } ! /** * Start the server in a new thread, if not already running. This method is ! * used to ensure that the objects being transfered will be served from the * remote side, if required. If the ORB is started using this method, it * starts as a daemon thread. */ public void ensureRunning() { final OrbFunctional THIS = this; ! if (!running) { Thread t = new Thread() *************** public class OrbFunctional extends OrbRe *** 1039,1047 **** * representation. The object can (an usually is) located on a remote * computer, possibly running a different (not necessary java) CORBA * implementation. ! * * @param an_ior the object IOR representation string. ! * * @return the found CORBA object. * @see object_to_string(org.omg.CORBA.Object) */ --- 1039,1047 ---- * representation. The object can (an usually is) located on a remote * computer, possibly running a different (not necessary java) CORBA * implementation. ! * * @param an_ior the object IOR representation string. ! * * @return the found CORBA object. * @see object_to_string(org.omg.CORBA.Object) */ *************** public class OrbFunctional extends OrbRe *** 1049,1055 **** { return nameParser.corbaloc(an_ior, this); } ! /** * Convert ior reference to CORBA object. */ --- 1049,1055 ---- { return nameParser.corbaloc(an_ior, this); } ! /** * Convert ior reference to CORBA object. */ *************** public class OrbFunctional extends OrbRe *** 1106,1115 **** /** * Find and return the object, that must be previously connected to this ORB. * Return null if no such object is available. ! * * @param key the object key. * @param port the port where the object is connected. ! * * @return the connected object, null if none. */ protected org.omg.CORBA.Object find_connected_object(byte[] key, int port) --- 1106,1115 ---- /** * Find and return the object, that must be previously connected to this ORB. * Return null if no such object is available. ! * * @param key the object key. * @param port the port where the object is connected. ! * * @return the connected object, null if none. */ protected org.omg.CORBA.Object find_connected_object(byte[] key, int port) *************** public class OrbFunctional extends OrbRe *** 1126,1134 **** /** * Set the ORB parameters. This method is normally called from * {@link #init(Applet, Properties)}. ! * * @param app the current applet. ! * * @param props application specific properties, passed as the second * parameter in {@link #init(Applet, Properties)}. Can be null. */ --- 1126,1134 ---- /** * Set the ORB parameters. This method is normally called from * {@link #init(Applet, Properties)}. ! * * @param app the current applet. ! * * @param props application specific properties, passed as the second * parameter in {@link #init(Applet, Properties)}. Can be null. */ *************** public class OrbFunctional extends OrbRe *** 1184,1194 **** /** * Set the ORB parameters. This method is normally called from * {@link #init(String[], Properties)}. ! * * @param para the parameters, that were passed as the parameters to the * main(String[] args) method of the current standalone * application. ! * * @param props application specific properties that were passed as a second * parameter in {@link init(String[], Properties)}). Can be null. */ --- 1184,1194 ---- /** * Set the ORB parameters. This method is normally called from * {@link #init(String[], Properties)}. ! * * @param para the parameters, that were passed as the parameters to the * main(String[] args) method of the current standalone * application. ! * * @param props application specific properties that were passed as a second * parameter in {@link init(String[], Properties)}). Can be null. */ *************** public class OrbFunctional extends OrbRe *** 1433,1443 **** /** * A single servicing step, when the client socket is alrady open. ! * * Normally, each task matches a single remote invocation. However under * frequent tandem submissions the same task may span over several * invocations. ! * * @param service the opened client socket. * @param no_resources if true, the "NO RESOURCES" exception is thrown to the * client. --- 1433,1443 ---- /** * A single servicing step, when the client socket is alrady open. ! * * Normally, each task matches a single remote invocation. However under * frequent tandem submissions the same task may span over several * invocations. ! * * @param service the opened client socket. * @param no_resources if true, the "NO RESOURCES" exception is thrown to the * client. *************** public class OrbFunctional extends OrbRe *** 1555,1566 **** catch (SystemException ex) { sysEx = ex; ! org.omg.CORBA.portable.OutputStream ech = handler.createExceptionReply(); ! rh_reply.service_context = UnknownExceptionCtxHandler.addExceptionContext( rh_reply.service_context, ex, ech); ! ObjectCreator.writeSystemException(ech, ex); } catch (Exception except) --- 1555,1566 ---- catch (SystemException ex) { sysEx = ex; ! org.omg.CORBA.portable.OutputStream ech = handler.createExceptionReply(); ! rh_reply.service_context = UnknownExceptionCtxHandler.addExceptionContext( rh_reply.service_context, ex, ech); ! ObjectCreator.writeSystemException(ech, ex); } catch (Exception except) *************** public class OrbFunctional extends OrbRe *** 1620,1626 **** } finally { ! try { if (service!=null && !service.isClosed()) service.close(); --- 1620,1626 ---- } finally { ! try { if (service!=null && !service.isClosed()) service.close(); *************** public class OrbFunctional extends OrbRe *** 1631,1637 **** } } } ! /** * Set the ORB parameters from the properties that were accumulated * from several locations. --- 1631,1637 ---- } } } ! /** * Set the ORB parameters from the properties that were accumulated * from several locations. *************** public class OrbFunctional extends OrbRe *** 1658,1664 **** TOUT_AFTER_RECEIVING = Integer.parseInt(props.getProperty(AFTER_RECEIVING)); if (props.containsKey(SERVER_ERROR_PAUSE)) ! TWAIT_SERVER_ERROR_PAUSE = Integer.parseInt(props.getProperty(SERVER_ERROR_PAUSE)); } catch (NumberFormatException ex) --- 1658,1664 ---- TOUT_AFTER_RECEIVING = Integer.parseInt(props.getProperty(AFTER_RECEIVING)); if (props.containsKey(SERVER_ERROR_PAUSE)) ! TWAIT_SERVER_ERROR_PAUSE = Integer.parseInt(props.getProperty(SERVER_ERROR_PAUSE)); } catch (NumberFormatException ex) *************** public class OrbFunctional extends OrbRe *** 1668,1674 **** "'" ); } ! if (props.containsKey(SocketFactory.PROPERTY)) { String factory = null; --- 1668,1674 ---- "'" ); } ! if (props.containsKey(SocketFactory.PROPERTY)) { String factory = null; *************** public class OrbFunctional extends OrbRe *** 1676,1682 **** { factory = props.getProperty(SocketFactory.PROPERTY); if (factory!=null) ! socketFactory = (SocketFactory) ObjectCreator.forName(factory).newInstance(); } catch (Exception ex) --- 1676,1682 ---- { factory = props.getProperty(SocketFactory.PROPERTY); if (factory!=null) ! socketFactory = (SocketFactory) ObjectCreator.forName(factory).newInstance(); } catch (Exception ex) *************** public class OrbFunctional extends OrbRe *** 1686,1698 **** throw p; } } ! if (props.containsKey(ORB_ID)) orb_id = props.getProperty(ORB_ID); ! if (props.containsKey(SERVER_ID)) server_id = props.getProperty(SERVER_ID); ! Enumeration en = props.elements(); while (en.hasMoreElements()) { --- 1686,1698 ---- throw p; } } ! if (props.containsKey(ORB_ID)) orb_id = props.getProperty(ORB_ID); ! if (props.containsKey(SERVER_ID)) server_id = props.getProperty(SERVER_ID); ! Enumeration en = props.elements(); while (en.hasMoreElements()) { *************** public class OrbFunctional extends OrbRe *** 1781,1794 **** running = false; super.finalize(); } ! /** * Get the number of objects that are connected to this ORB. ! * * @return the number of objects, connected to this ORB. */ public int countConnectedObjects() ! { return connected_objects.size(); } ! } \ No newline at end of file --- 1781,1794 ---- running = false; super.finalize(); } ! /** * Get the number of objects that are connected to this ORB. ! * * @return the number of objects, connected to this ORB. */ public int countConnectedObjects() ! { return connected_objects.size(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/OrbRestricted.java gcc-4.6.0/libjava/classpath/gnu/CORBA/OrbRestricted.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/OrbRestricted.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/OrbRestricted.java Tue Jan 11 19:46:05 2011 *************** public class OrbRestricted extends org.o *** 527,533 **** super.destroy(); } ! /** * Create a typecode, representing a tree-like structure. * This structure contains a member that is a sequence of the same type, --- 527,533 ---- super.destroy(); } ! /** * Create a typecode, representing a tree-like structure. * This structure contains a member that is a sequence of the same type, *************** public class OrbRestricted extends org.o *** 565,571 **** r.add(new StructMember("", recurs, null)); return r; } ! /** * Get the default context of this ORB. This is an initial root of all * contexts. --- 565,571 ---- r.add(new StructMember("", recurs, null)); return r; } ! /** * Get the default context of this ORB. This is an initial root of all * contexts. *************** public class OrbRestricted extends org.o *** 579,583 **** { return new gnuContext("", null); } ! ! } \ No newline at end of file --- 579,583 ---- { return new gnuContext("", null); } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/AOM.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/AOM.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/AOM.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/AOM.java Tue Jan 11 19:46:05 2011 *************** public class AOM *** 162,170 **** /** * Get the record of the stored object. If the object is mapped several times * under the different keys, one of the mappings is used. ! * * @param stored_object the stored object ! * * @return the record about the stored object, null if this object is not * stored here. */ --- 162,170 ---- /** * Get the record of the stored object. If the object is mapped several times * under the different keys, one of the mappings is used. ! * * @param stored_object the stored object ! * * @return the record about the stored object, null if this object is not * stored here. */ *************** public class AOM *** 214,222 **** /** * Find the reference info for the given servant. If the servant is mapped to * several objects, this returns the first found occurence. ! * * @param servant a servant to find. ! * * @return the servant/object/POA binding or null if no such found. */ public Obj findServant(Servant servant) --- 214,222 ---- /** * Find the reference info for the given servant. If the servant is mapped to * several objects, this returns the first found occurence. ! * * @param servant a servant to find. ! * * @return the servant/object/POA binding or null if no such found. */ public Obj findServant(Servant servant) *************** public class AOM *** 403,406 **** return r; } ! } \ No newline at end of file --- 403,406 ---- return r; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/AccessiblePolicy.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/AccessiblePolicy.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/AccessiblePolicy.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/AccessiblePolicy.java Tue Jan 11 19:46:05 2011 *************** public interface AccessiblePolicy *** 59,62 **** */ int getCode(); ! } \ No newline at end of file --- 59,62 ---- */ int getCode(); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/DynamicImpHandler.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/DynamicImpHandler.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/DynamicImpHandler.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/DynamicImpHandler.java Tue Jan 11 19:46:05 2011 *************** public class DynamicImpHandler *** 82,85 **** { throw new BAD_OPERATION(servant + " is not an InvokeHandler."); } ! } \ No newline at end of file --- 82,85 ---- { throw new BAD_OPERATION(servant + " is not an InvokeHandler."); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/ForwardRequestHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/ForwardRequestHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/ForwardRequestHolder.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/ForwardRequestHolder.java Tue Jan 11 19:46:05 2011 *************** public class ForwardRequestHolder *** 104,107 **** { ForwardRequestHelper.write(output, value); } ! } \ No newline at end of file --- 104,107 ---- { ForwardRequestHelper.write(output, value); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/ForwardedServant.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/ForwardedServant.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/ForwardedServant.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/ForwardedServant.java Tue Jan 11 19:46:05 2011 *************** public class ForwardedServant *** 206,209 **** { return ref._ids(); } ! } \ No newline at end of file --- 206,209 ---- { return ref._ids(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/InvalidPolicyHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/InvalidPolicyHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/InvalidPolicyHolder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/InvalidPolicyHolder.java Tue Jan 11 19:46:05 2011 *************** public class InvalidPolicyHolder *** 103,106 **** { return InvalidPolicyHelper.type(); } ! } \ No newline at end of file --- 103,106 ---- { return InvalidPolicyHelper.type(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/LocalDelegate.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/LocalDelegate.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/LocalDelegate.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/LocalDelegate.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 70,76 **** * A local delegate, transferring all object requests to the locally available * servant. This class is involved in handling the method invocations on the * local object, obtained by POA.create_reference_with_id. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class LocalDelegate --- 70,76 ---- * A local delegate, transferring all object requests to the locally available * servant. This class is involved in handling the method invocations on the * local object, obtained by POA.create_reference_with_id. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class LocalDelegate *************** public class LocalDelegate *** 98,104 **** poa = a_poa; Id = an_id; } ! /** * Get the IOR of the connected object. */ --- 98,104 ---- poa = a_poa; Id = an_id; } ! /** * Get the IOR of the connected object. */ *************** public class LocalDelegate *** 171,179 **** /** * Check if this object could be named by the given repository id. ! * * @param idl_id the repository id to check. ! * * @return true if it is one of the possible repository ids of this object. */ public boolean is_a(org.omg.CORBA.Object a_servant, String idl_id) --- 171,179 ---- /** * Check if this object could be named by the given repository id. ! * * @param idl_id the repository id to check. ! * * @return true if it is one of the possible repository ids of this object. */ public boolean is_a(org.omg.CORBA.Object a_servant, String idl_id) *************** public class LocalDelegate *** 238,248 **** /** * Create a request to invoke the method of this CORBA object. ! * * @param operation the name of the method to invoke. * @param response_expected specifies if this is one way message or the * response to the message is expected. ! * * @return the stream where the method arguments should be written. */ public org.omg.CORBA.portable.OutputStream request( --- 238,248 ---- /** * Create a request to invoke the method of this CORBA object. ! * * @param operation the name of the method to invoke. * @param response_expected specifies if this is one way message or the * response to the message is expected. ! * * @return the stream where the method arguments should be written. */ public org.omg.CORBA.portable.OutputStream request( *************** public class LocalDelegate *** 289,295 **** /** * Make an invocation. ! * * @param target not in use. * @param output the stream request that should be returned by * {@link #m_request} in this method. --- 289,295 ---- /** * Make an invocation. ! * * @param target not in use. * @param output the stream request that should be returned by * {@link #m_request} in this method. *************** public class LocalDelegate *** 382,385 **** { release(target); } ! } \ No newline at end of file --- 382,385 ---- { release(target); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/LocalRequest.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/LocalRequest.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/LocalRequest.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/LocalRequest.java Tue Jan 11 19:46:05 2011 *************** public class LocalRequest extends gnuReq *** 199,206 **** public org.omg.CORBA.portable.InputStream v_invoke(InvokeHandler handler) { // Check maybe POA is in the discarding mode (will throw TRANSIENT if it is). ! poa.checkDiscarding(); ! // Local request must be intercepted both by server and request // interceptors. boolean s_intercept = false; --- 199,206 ---- public org.omg.CORBA.portable.InputStream v_invoke(InvokeHandler handler) { // Check maybe POA is in the discarding mode (will throw TRANSIENT if it is). ! poa.checkDiscarding(); ! // Local request must be intercepted both by server and request // interceptors. boolean s_intercept = false; *************** public class LocalRequest extends gnuReq *** 249,255 **** s_interceptor.receive_request_service_contexts(s_info); } ! if (handler == null) { handler = object.getHandler(operation(), cookie, false); --- 249,255 ---- s_interceptor.receive_request_service_contexts(s_info); } ! if (handler == null) { handler = object.getHandler(operation(), cookie, false); *************** public class LocalRequest extends gnuReq *** 684,687 **** { return poa; } ! } \ No newline at end of file --- 684,687 ---- { return poa; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/LocalServerRequest.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/LocalServerRequest.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/LocalServerRequest.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/LocalServerRequest.java Tue Jan 11 19:46:05 2011 *************** public class LocalServerRequest *** 196,199 **** { set_exception(exc); } ! } \ No newline at end of file --- 196,199 ---- { set_exception(exc); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java Tue Jan 11 19:46:05 2011 *************** public class ORB_1_4 *** 255,261 **** super.set_parameters(para, props); registerInterceptors(props, para); } ! /** * This method is called by RMI-IIOP {@link javax.rmi.Tie#orb(ORB)}, passing * this as parameter. The ORB will try to connect that tie as --- 255,261 ---- super.set_parameters(para, props); registerInterceptors(props, para); } ! /** * This method is called by RMI-IIOP {@link javax.rmi.Tie#orb(ORB)}, passing * this as parameter. The ORB will try to connect that tie as *************** public class ORB_1_4 *** 288,293 **** throw bad; } } ! } } --- 288,293 ---- throw bad; } } ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/ServantDelegateImpl.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/ServantDelegateImpl.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/ServantDelegateImpl.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/ServantDelegateImpl.java Tue Jan 11 19:46:05 2011 *************** public class ServantDelegateImpl *** 229,232 **** if (servant != some_servant) throw new InternalError("Only one servant per delegate is supported."); } ! } \ No newline at end of file --- 229,232 ---- if (servant != some_servant) throw new InternalError("Only one servant per delegate is supported."); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/StandardPolicies.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/StandardPolicies.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/StandardPolicies.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/StandardPolicies.java Tue Jan 11 19:46:05 2011 *************** public class StandardPolicies *** 125,128 **** } return complete; } ! } \ No newline at end of file --- 125,128 ---- } return complete; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuAdapterActivator.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuAdapterActivator.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuAdapterActivator.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuAdapterActivator.java Tue Jan 11 19:46:05 2011 *************** public class gnuAdapterActivator *** 78,81 **** } return true; } ! } \ No newline at end of file --- 78,81 ---- } return true; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuForwardRequest.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuForwardRequest.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuForwardRequest.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuForwardRequest.java Tue Jan 11 19:46:05 2011 *************** public class gnuForwardRequest *** 87,90 **** else throw new BAD_PARAM("ObjectImpl expected"); } ! } \ No newline at end of file --- 87,90 ---- else throw new BAD_PARAM("ObjectImpl expected"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuIdAssignmentPolicy.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuIdAssignmentPolicy.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuIdAssignmentPolicy.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuIdAssignmentPolicy.java Tue Jan 11 19:46:05 2011 *************** public class gnuIdAssignmentPolicy *** 77,80 **** { return (IdAssignmentPolicyValue) getValue(); } ! } \ No newline at end of file --- 77,80 ---- { return (IdAssignmentPolicyValue) getValue(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuIdUniquenessPolicy.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuIdUniquenessPolicy.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuIdUniquenessPolicy.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuIdUniquenessPolicy.java Tue Jan 11 19:46:05 2011 *************** public class gnuIdUniquenessPolicy *** 77,80 **** { return (IdUniquenessPolicyValue) getValue(); } ! } \ No newline at end of file --- 77,80 ---- { return (IdUniquenessPolicyValue) getValue(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuImplicitActivationPolicy.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuImplicitActivationPolicy.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuImplicitActivationPolicy.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuImplicitActivationPolicy.java Tue Jan 11 19:46:05 2011 *************** public class gnuImplicitActivationPolicy *** 77,80 **** { return (ImplicitActivationPolicyValue) getValue(); } ! } \ No newline at end of file --- 77,80 ---- { return (ImplicitActivationPolicyValue) getValue(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuLifespanPolicy.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuLifespanPolicy.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuLifespanPolicy.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuLifespanPolicy.java Tue Jan 11 19:46:05 2011 *************** public class gnuLifespanPolicy *** 77,80 **** { return (LifespanPolicyValue) getValue(); } ! } \ No newline at end of file --- 77,80 ---- { return (LifespanPolicyValue) getValue(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java Tue Jan 11 19:46:05 2011 *************** public class gnuPOA *** 110,125 **** { /** * The object reference template, associated with this POA. ! * * @since 1.5 */ class RefTemplate implements ObjectReferenceTemplate { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! RefTemplate() { // The adapter name is computed once. --- 110,125 ---- { /** * The object reference template, associated with this POA. ! * * @since 1.5 */ class RefTemplate implements ObjectReferenceTemplate { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! RefTemplate() { // The adapter name is computed once. *************** public class gnuPOA *** 140,151 **** for (int i = 0; i < m_adapter_name.length; i++) m_adapter_name[i] = (String) names.get(m_adapter_name.length - i - 1); } ! /** * The adapter name */ final String[] m_adapter_name; ! /** * Get the name of this POA. */ --- 140,151 ---- for (int i = 0; i < m_adapter_name.length; i++) m_adapter_name[i] = (String) names.get(m_adapter_name.length - i - 1); } ! /** * The adapter name */ final String[] m_adapter_name; ! /** * Get the name of this POA. */ *************** public class gnuPOA *** 186,209 **** return ref_template_ids; } } ! ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The adapter reference template. */ ObjectReferenceTemplate refTemplate; ! /** * The reference template repository ids. Defined outside the class as it * cannot have static members. */ ! final static String[] ref_template_ids = new String[] { ObjectReferenceTemplateHelper.id() }; ! /** * The active object map, mapping between object keys, objects and servants. */ --- 186,209 ---- return ref_template_ids; } } ! ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The adapter reference template. */ ObjectReferenceTemplate refTemplate; ! /** * The reference template repository ids. Defined outside the class as it * cannot have static members. */ ! final static String[] ref_template_ids = new String[] { ObjectReferenceTemplateHelper.id() }; ! /** * The active object map, mapping between object keys, objects and servants. */ *************** public class gnuPOA *** 287,293 **** * necessity of the frequent checks. */ public final boolean retain_servant; ! /** * The object reference factory, used to create the new object * references. --- 287,293 ---- * necessity of the frequent checks. */ public final boolean retain_servant; ! /** * The object reference factory, used to create the new object * references. *************** public class gnuPOA *** 339,345 **** retain_servant = applies(ServantRetentionPolicyValue.RETAIN); validatePolicies(a_policies); ! refTemplate = new RefTemplate(); } --- 339,345 ---- retain_servant = applies(ServantRetentionPolicyValue.RETAIN); validatePolicies(a_policies); ! refTemplate = new RefTemplate(); } *************** public class gnuPOA *** 538,553 **** * Generate the Object Id for the given servant and add the servant to the * Active Object Map using this Id a a key. If the servant activator is set, * its incarnate method will be called. ! * * @param a_servant a servant that would serve the object with the returned * Object Id. If null is passed, under apporoprate policies the servant * activator is invoked. ! * * @return the generated objert Id for the given servant. ! * * @throws ServantAlreadyActive if this servant is already in the Active * Object Map and the UNIQUE_ID policy applies. ! * * @throws WrongPolicy if the required policies SYSTEM_ID and RETAIN do not * apply to this POA. */ --- 538,553 ---- * Generate the Object Id for the given servant and add the servant to the * Active Object Map using this Id a a key. If the servant activator is set, * its incarnate method will be called. ! * * @param a_servant a servant that would serve the object with the returned * Object Id. If null is passed, under apporoprate policies the servant * activator is invoked. ! * * @return the generated objert Id for the given servant. ! * * @throws ServantAlreadyActive if this servant is already in the Active * Object Map and the UNIQUE_ID policy applies. ! * * @throws WrongPolicy if the required policies SYSTEM_ID and RETAIN do not * apply to this POA. */ *************** public class gnuPOA *** 589,600 **** * Add the given servant to the Active Object Map as a servant for the object * with the provided Object Id. If the servant activator is set, its incarnate * method will be called. ! * * @param an_Object_Id an object id for the given object. * @param a_servant a servant that will serve the object with the given Object * Id. If null is passed, under apporoprate policies the servant activator is * invoked. ! * * @throws ObjectAlreadyActive if the given object id is already in the Active * Object Map. * @throws ServantAlreadyActive if the UNIQUE_ID policy applies and this --- 589,600 ---- * Add the given servant to the Active Object Map as a servant for the object * with the provided Object Id. If the servant activator is set, its incarnate * method will be called. ! * * @param an_Object_Id an object id for the given object. * @param a_servant a servant that will serve the object with the given Object * Id. If null is passed, under apporoprate policies the servant activator is * invoked. ! * * @throws ObjectAlreadyActive if the given object id is already in the Active * Object Map. * @throws ServantAlreadyActive if the UNIQUE_ID policy applies and this *************** public class gnuPOA *** 659,671 **** /** * Locate the servant for this object Id and connect it to ORB. ! * * @param an_Object_Id the object id. * @param a_servant the servant (may be null). * @param exists an existing active object map entry. * @param use_forwarding allow to throw the gnuForwardRequest if the activator * throws ForwardRequest. ! * * @throws OBJ_ADAPTER minor 4 if the servant cannot be located (the required * servant manager may be missing). */ --- 659,671 ---- /** * Locate the servant for this object Id and connect it to ORB. ! * * @param an_Object_Id the object id. * @param a_servant the servant (may be null). * @param exists an existing active object map entry. * @param use_forwarding allow to throw the gnuForwardRequest if the activator * throws ForwardRequest. ! * * @throws OBJ_ADAPTER minor 4 if the servant cannot be located (the required * servant manager may be missing). */ *************** public class gnuPOA *** 1054,1065 **** /** * Returns the servant that is serving this object. ! * * @return if the RETAIN policy applies and the object is in the Active Object * Map, the method returns the servant, associated with this object. * Otherwise, if the USE_DEFAULT_SERVANT policy applies, the method returns * the default servant (if one was set). ! * * @throws ObjectNotActive if none of the conditions above are satisfied. * @throws WrongAdapter if the object reference was not created with this POA. * @throws WrongPolicy. This method requires either RETAIN or --- 1054,1065 ---- /** * Returns the servant that is serving this object. ! * * @return if the RETAIN policy applies and the object is in the Active Object * Map, the method returns the servant, associated with this object. * Otherwise, if the USE_DEFAULT_SERVANT policy applies, the method returns * the default servant (if one was set). ! * * @throws ObjectNotActive if none of the conditions above are satisfied. * @throws WrongAdapter if the object reference was not created with this POA. * @throws WrongPolicy. This method requires either RETAIN or *************** public class gnuPOA *** 1076,1082 **** { String object; if (the_Object == null) ! object = "null passed"; else if (the_Object instanceof gnuServantObject) { gnuServantObject gs = (gnuServantObject) the_Object; --- 1076,1082 ---- { String object; if (the_Object == null) ! object = "null passed"; else if (the_Object instanceof gnuServantObject) { gnuServantObject gs = (gnuServantObject) the_Object; *************** public class gnuPOA *** 1123,1129 **** * executing a request on the default servant, the method returns the ObjectId * associated with the current invocation. * ! * * @throws ServantNotActive in all cases, not listed in the list above. * @throws WrongPolicy The method requres USE_DEFAULT_SERVANT policy or a * combination of the RETAIN policy and either the UNIQUE_ID or --- 1123,1129 ---- * executing a request on the default servant, the method returns the ObjectId * associated with the current invocation. * ! * * @throws ServantNotActive in all cases, not listed in the list above. * @throws WrongPolicy The method requres USE_DEFAULT_SERVANT policy or a * combination of the RETAIN policy and either the UNIQUE_ID or *************** public class gnuPOA *** 1182,1193 **** * this case, if the servant activator is set, the * {@link ServantActivatorOperations#incarnate} method will be called. *

      ! * * @throws ServantNotActive if the servant is inactive and no * IMPLICIT_ACTIVATION policy applies. * @throws WrongPolicy This method needs the RETAIN policy and either the * UNIQUE_ID or IMPLICIT_ACTIVATION policies. ! * * @return the object, exposing the given servant in the context of this POA. */ public org.omg.CORBA.Object servant_to_reference(Servant the_Servant) --- 1182,1193 ---- * this case, if the servant activator is set, the * {@link ServantActivatorOperations#incarnate} method will be called. *

      ! * * @throws ServantNotActive if the servant is inactive and no * IMPLICIT_ACTIVATION policy applies. * @throws WrongPolicy This method needs the RETAIN policy and either the * UNIQUE_ID or IMPLICIT_ACTIVATION policies. ! * * @return the object, exposing the given servant in the context of this POA. */ public org.omg.CORBA.Object servant_to_reference(Servant the_Servant) *************** public class gnuPOA *** 1237,1251 **** /** * Incarnate in cases when request forwarding is not expected because the * servant must be provided by the servant activator. ! * * @param x the aom entry, where the object is replaced by value, returned by * servant activator (if not null). ! * * @param object_key the object key. ! * * @param a_servant the servant that was passed as a parameter in the * activation method. ! * * @param use_forwarding if true, the gnuForwardRequest is throw under the * forwarding exception (for remote client). Otherwise, the request is * internally redirected (for local invocation). --- 1237,1251 ---- /** * Incarnate in cases when request forwarding is not expected because the * servant must be provided by the servant activator. ! * * @param x the aom entry, where the object is replaced by value, returned by * servant activator (if not null). ! * * @param object_key the object key. ! * * @param a_servant the servant that was passed as a parameter in the * activation method. ! * * @param use_forwarding if true, the gnuForwardRequest is throw under the * forwarding exception (for remote client). Otherwise, the request is * internally redirected (for local invocation). *************** public class gnuPOA *** 1415,1428 **** * The remote invocation on the target, belonging to the POA that is currently * destroyed return the remote exception ({@link TRANSIENT}, minor code 4). *

      ! * * @param etherealize_objects if true, and POA has RETAIN policy, and the * servant manager is available, the servant manager method * {@link ServantActivatorOperations#etherealize} is called for each active * object in the Active Object Map. This method should not try to access POA * being destroyed. If destroy is called multiple times before * the destruction completes, the etherialization should be invoked only once. ! * * @param wait_for_completion if true, the method waits till the POA being * destroyed completes all current requests and etherialization. If false, the * method returns immediately. --- 1415,1428 ---- * The remote invocation on the target, belonging to the POA that is currently * destroyed return the remote exception ({@link TRANSIENT}, minor code 4). *

      ! * * @param etherealize_objects if true, and POA has RETAIN policy, and the * servant manager is available, the servant manager method * {@link ServantActivatorOperations#etherealize} is called for each active * object in the Active Object Map. This method should not try to access POA * being destroyed. If destroy is called multiple times before * the destruction completes, the etherialization should be invoked only once. ! * * @param wait_for_completion if true, the method waits till the POA being * destroyed completes all current requests and etherialization. If false, the * method returns immediately. *************** public class gnuPOA *** 1669,1675 **** } return h; } ! /** * Recursively searches for the given key in the POA tree. * @param ior_key the key, ecapsulating both object --- 1669,1675 ---- } return h; } ! /** * Recursively searches for the given key in the POA tree. * @param ior_key the key, ecapsulating both object *************** public class gnuPOA *** 1748,1754 **** else return null; } ! /** * Recursively searches for the given servant in the POA tree. */ --- 1748,1754 ---- else return null; } ! /** * Recursively searches for the given servant in the POA tree. */ *************** public class gnuPOA *** 1768,1774 **** } return h; } ! /** * Get the object reference template of this POA. * Instantiate a singleton instance, if required. --- 1768,1774 ---- } return h; } ! /** * Get the object reference template of this POA. * Instantiate a singleton instance, if required. *************** public class gnuPOA *** 1777,1791 **** { if (refTemplate == null) refTemplate = new RefTemplate(); ! return refTemplate; } ! public ObjectReferenceFactory getReferenceFactory() { return m_object_factory; } ! public void setReferenceFactory(ObjectReferenceFactory factory) { m_object_factory = factory; --- 1777,1791 ---- { if (refTemplate == null) refTemplate = new RefTemplate(); ! return refTemplate; } ! public ObjectReferenceFactory getReferenceFactory() { return m_object_factory; } ! public void setReferenceFactory(ObjectReferenceFactory factory) { m_object_factory = factory; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java Tue Jan 11 19:46:05 2011 *************** public class gnuPOAManager *** 60,70 **** extends LocalObject implements POAManager { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The POAs, controlled by this manager. */ --- 60,70 ---- extends LocalObject implements POAManager { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The POAs, controlled by this manager. */ *************** public class gnuPOAManager *** 75,81 **** * in the holding state. */ State state = State.HOLDING; ! /** * Get the state of the POA manager. */ --- 75,81 ---- * in the holding state. */ State state = State.HOLDING; ! /** * Get the state of the POA manager. */ *************** public class gnuPOAManager *** 99,106 **** state = State.ACTIVE; else throw new AdapterInactive(); ! ! notifyInterceptors(state.value()); } /** --- 99,106 ---- state = State.ACTIVE; else throw new AdapterInactive(); ! ! notifyInterceptors(state.value()); } /** *************** public class gnuPOAManager *** 120,128 **** state = State.HOLDING; else throw new AdapterInactive(); ! notifyInterceptors(state.value()); ! if (wait_for_completion) waitForIdle(); } --- 120,128 ---- state = State.HOLDING; else throw new AdapterInactive(); ! notifyInterceptors(state.value()); ! if (wait_for_completion) waitForIdle(); } *************** public class gnuPOAManager *** 154,162 **** if (state == State.INACTIVE) throw new AdapterInactive("Repetetive inactivation"); state = State.INACTIVE; ! ! notifyInterceptors(state.value()); ! if (wait_for_completion) waitForIdle(); --- 154,162 ---- if (state == State.INACTIVE) throw new AdapterInactive("Repetetive inactivation"); state = State.INACTIVE; ! ! notifyInterceptors(state.value()); ! if (wait_for_completion) waitForIdle(); *************** public class gnuPOAManager *** 191,199 **** state = State.DISCARDING; else throw new AdapterInactive(); ! ! notifyInterceptors(state.value()); ! if (wait_for_completion) waitForIdle(); } --- 191,199 ---- state = State.DISCARDING; else throw new AdapterInactive(); ! ! notifyInterceptors(state.value()); ! if (wait_for_completion) waitForIdle(); } *************** public class gnuPOAManager *** 209,218 **** { if (state == State.ACTIVE) throw new BAD_INV_ORDER("The state is active"); ! gnuPOA poa; Iterator iter = POAs.iterator(); ! while (iter.hasNext()) { poa = (gnuPOA) iter.next(); --- 209,218 ---- { if (state == State.ACTIVE) throw new BAD_INV_ORDER("The state is active"); ! gnuPOA poa; Iterator iter = POAs.iterator(); ! while (iter.hasNext()) { poa = (gnuPOA) iter.next(); *************** public class gnuPOAManager *** 240,255 **** { POAs.remove(poa); } ! /** * This method is called when POA is destryed. The interceptors are * notified. */ public void poaDestroyed(gnuPOA poa) { ! notifyInterceptors(NON_EXISTENT.value); } ! /** * Notify CORBA 3.0 interceptors about the status change. */ --- 240,255 ---- { POAs.remove(poa); } ! /** * This method is called when POA is destryed. The interceptors are * notified. */ public void poaDestroyed(gnuPOA poa) { ! notifyInterceptors(NON_EXISTENT.value); } ! /** * Notify CORBA 3.0 interceptors about the status change. */ *************** public class gnuPOAManager *** 269,272 **** } } } ! } \ No newline at end of file --- 269,272 ---- } } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuPoaCurrent.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuPoaCurrent.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuPoaCurrent.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuPoaCurrent.java Tue Jan 11 19:46:05 2011 *************** public class gnuPoaCurrent *** 176,179 **** threads.remove(t.getName()); } } ! } \ No newline at end of file --- 176,179 ---- threads.remove(t.getName()); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuRequestProcessingPolicy.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuRequestProcessingPolicy.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuRequestProcessingPolicy.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuRequestProcessingPolicy.java Tue Jan 11 19:46:05 2011 *************** public class gnuRequestProcessingPolicy *** 77,80 **** { return (RequestProcessingPolicyValue) getValue(); } ! } \ No newline at end of file --- 77,80 ---- { return (RequestProcessingPolicyValue) getValue(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java Tue Jan 11 19:46:05 2011 *************** public class gnuServantObject extends Ob *** 131,137 **** * ids are requested from the servant. */ public final String[] repository_ids; ! /** * True indicates that the NO_RETAIN policy applies for the servant. * The servant must be discarded after the each call. --- 131,137 ---- * ids are requested from the servant. */ public final String[] repository_ids; ! /** * True indicates that the NO_RETAIN policy applies for the servant. * The servant must be discarded after the each call. *************** public class gnuServantObject extends Ob *** 155,170 **** manager = a_poa.the_POAManager(); poa = a_poa; orb = an_orb; ! ! noRetain = poa.applies(ServantRetentionPolicyValue.NON_RETAIN); } ! /** * Get the IOR as it would be for this object. */ public IOR getIor() { ! return orb.getLocalIor(this); } /** --- 155,170 ---- manager = a_poa.the_POAManager(); poa = a_poa; orb = an_orb; ! ! noRetain = poa.applies(ServantRetentionPolicyValue.NON_RETAIN); } ! /** * Get the IOR as it would be for this object. */ public IOR getIor() { ! return orb.getLocalIor(this); } /** *************** public class gnuServantObject extends Ob *** 192,198 **** } repository_ids = null; orb = an_orb; ! noRetain = poa != null && poa.applies(ServantRetentionPolicyValue.NON_RETAIN); } --- 192,198 ---- } repository_ids = null; orb = an_orb; ! noRetain = poa != null && poa.applies(ServantRetentionPolicyValue.NON_RETAIN); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuServantRetentionPolicy.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuServantRetentionPolicy.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuServantRetentionPolicy.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuServantRetentionPolicy.java Tue Jan 11 19:46:05 2011 *************** public class gnuServantRetentionPolicy *** 77,80 **** { return (ServantRetentionPolicyValue) getValue(); } ! } \ No newline at end of file --- 77,80 ---- { return (ServantRetentionPolicyValue) getValue(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuThreadPolicy.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuThreadPolicy.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Poa/gnuThreadPolicy.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Poa/gnuThreadPolicy.java Tue Jan 11 19:46:05 2011 *************** public class gnuThreadPolicy *** 77,80 **** { return (ThreadPolicyValue) getValue(); } ! } \ No newline at end of file --- 77,80 ---- { return (ThreadPolicyValue) getValue(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java gcc-4.6.0/libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java Tue Jan 11 19:46:05 2011 *************** public class ServiceRequestAdapter *** 164,167 **** throw new InternalError(); } } ! } \ No newline at end of file --- 164,167 ---- throw new InternalError(); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/SetOverrideTypeHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/SetOverrideTypeHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/SetOverrideTypeHolder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/SetOverrideTypeHolder.java Tue Jan 11 19:46:05 2011 *************** public class SetOverrideTypeHolder *** 87,90 **** { SetOverrideTypeHelper.write(out, value); } ! } \ No newline at end of file --- 87,90 ---- { SetOverrideTypeHelper.write(out, value); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/SimpleDelegate.java gcc-4.6.0/libjava/classpath/gnu/CORBA/SimpleDelegate.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/SimpleDelegate.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/SimpleDelegate.java Tue Jan 11 19:46:05 2011 *************** public class SimpleDelegate *** 118,124 **** g.set_args(parameters); if (returns != null) g.set_result(returns); ! return g; } /** --- 118,124 ---- g.set_args(parameters); if (returns != null) g.set_result(returns); ! return g; } /** *************** public class SimpleDelegate *** 315,318 **** g.m_target = target; return g; } ! } \ No newline at end of file --- 315,318 ---- g.m_target = target; return g; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/SocketRepository.java gcc-4.6.0/libjava/classpath/gnu/CORBA/SocketRepository.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/SocketRepository.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/SocketRepository.java Tue Jan 11 19:46:05 2011 *************** public class SocketRepository *** 57,63 **** * The socket map. */ private static HashMap sockets = new HashMap(); ! /** * Put a socket. This method also discards all not reusable sockets from * the map. --- 57,63 ---- * The socket map. */ private static HashMap sockets = new HashMap(); ! /** * Put a socket. This method also discards all not reusable sockets from * the map. *************** public class SocketRepository *** 74,101 **** gc(); } } ! /** * Removes all non reusable sockets. As it is private, ! * we know we call from the synchronized code already. */ private static void gc() { Iterator iter = sockets.entrySet().iterator(); ! Map.Entry e; Socket sx; ! while (iter.hasNext()) { e = (Map.Entry) iter.next(); sx = (Socket) e.getValue(); ! if (not_reusable(sx)) iter.remove(); } } ! /** * Return true if the socket is no longer reusable. */ --- 74,101 ---- gc(); } } ! /** * Removes all non reusable sockets. As it is private, ! * we know we call from the synchronized code already. */ private static void gc() { Iterator iter = sockets.entrySet().iterator(); ! Map.Entry e; Socket sx; ! while (iter.hasNext()) { e = (Map.Entry) iter.next(); sx = (Socket) e.getValue(); ! if (not_reusable(sx)) iter.remove(); } } ! /** * Return true if the socket is no longer reusable. */ *************** public class SocketRepository *** 107,115 **** /** * Get a socket. ! * * @param key a socket key. ! * * @return an opened socket for reuse, null if no such available or it is * closed, its input or output has been shutown or otherwise the socket is not * reuseable. --- 107,115 ---- /** * Get a socket. ! * * @param key a socket key. ! * * @return an opened socket for reuse, null if no such available or it is * closed, its input or output has been shutown or otherwise the socket is not * reuseable. *************** public class SocketRepository *** 145,148 **** } } } ! } \ No newline at end of file --- 145,148 ---- } } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/StreamHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/StreamHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/StreamHolder.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/StreamHolder.java Tue Jan 11 19:46:05 2011 *************** public class StreamHolder *** 120,123 **** { return stream; } ! } \ No newline at end of file --- 120,123 ---- { return stream; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/TypeCodeHelper.java gcc-4.6.0/libjava/classpath/gnu/CORBA/TypeCodeHelper.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/TypeCodeHelper.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/TypeCodeHelper.java Tue Jan 11 19:46:05 2011 *************** public class TypeCodeHelper *** 84,90 **** p.setLength(in.read_long()); rt = p; break; ! case TCKind._tk_string : case TCKind._tk_wstring : s = new StringTypeCode(kind); --- 84,90 ---- p.setLength(in.read_long()); rt = p; break; ! case TCKind._tk_string : case TCKind._tk_wstring : s = new StringTypeCode(kind); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/TypeKindNamer.java gcc-4.6.0/libjava/classpath/gnu/CORBA/TypeKindNamer.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/TypeKindNamer.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/TypeKindNamer.java Tue Jan 11 19:46:05 2011 *************** public class TypeKindNamer *** 180,183 **** return "type of kind '" + type.kind().value() + "'"; } } ! } \ No newline at end of file --- 180,183 ---- return "type of kind '" + type.kind().value() + "'"; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/Version.java gcc-4.6.0/libjava/classpath/gnu/CORBA/Version.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/Version.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/Version.java Tue Jan 11 19:46:05 2011 *************** public class Version *** 99,105 **** Version that = (Version) other; return same(that); } ! /** * Get the hashcode, higher 8 bits being the major version and lower 8 bits * the minor version. --- 99,105 ---- Version that = (Version) other; return same(that); } ! /** * Get the hashcode, higher 8 bits being the major version and lower 8 bits * the minor version. *************** public class Version *** 107,113 **** public int hashCode() { return major << 8 | minor; ! } /** * Read from the input stream, major number first. --- 107,113 ---- public int hashCode() { return major << 8 | minor; ! } /** * Read from the input stream, major number first. *************** public class Version *** 218,222 **** throw m; } } ! } --- 218,222 ---- throw m; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/_PolicyImplBase.java gcc-4.6.0/libjava/classpath/gnu/CORBA/_PolicyImplBase.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/_PolicyImplBase.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/_PolicyImplBase.java Tue Jan 11 19:46:05 2011 *************** public abstract class _PolicyImplBase *** 165,171 **** output.write_long(policyCode); } else ! throw new BAD_OPERATION(method, Minor.Method, CompletionStatus.COMPLETED_MAYBE); return output; --- 165,171 ---- output.write_long(policyCode); } else ! throw new BAD_OPERATION(method, Minor.Method, CompletionStatus.COMPLETED_MAYBE); return output; *************** public abstract class _PolicyImplBase *** 229,232 **** { return x == null ? false : getValue().equals(x); } ! } \ No newline at end of file --- 229,232 ---- { return x == null ? false : getValue().equals(x); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuAny.java gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuAny.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuAny.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuAny.java Tue Jan 11 19:46:05 2011 *************** import java.util.zip.Adler32; *** 90,100 **** public class gnuAny extends Any { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The value, returned by {@link #type()} if the value has been * not intialized. --- 90,100 ---- public class gnuAny extends Any { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The value, returned by {@link #type()} if the value has been * not intialized. *************** public class gnuAny *** 209,215 **** return Arrays.equals(ba, bb); } ! /** * Get the content - dependent hashcode. */ --- 209,215 ---- return Arrays.equals(ba, bb); } ! /** * Get the content - dependent hashcode. */ *************** public class gnuAny *** 224,233 **** BufferedCdrOutput a = new BufferedCdrOutput(); a.setOrb(orb); write_value(a); ! adler.update(a.buffer.toByteArray()); adler.update(type().kind().value()); ! return (int) adler.getValue() & Integer.MAX_VALUE; } } --- 224,233 ---- BufferedCdrOutput a = new BufferedCdrOutput(); a.setOrb(orb); write_value(a); ! adler.update(a.buffer.toByteArray()); adler.update(type().kind().value()); ! return (int) adler.getValue() & Integer.MAX_VALUE; } } *************** public class gnuAny *** 856,862 **** /** * Check if the current value if the value of the given kind. ! * * @param kind a kind to check. * @throws BAD_OPERATION if the value is not set of is different kind. */ --- 856,862 ---- /** * Check if the current value if the value of the given kind. ! * * @param kind a kind to check. * @throws BAD_OPERATION if the value is not set of is different kind. */ *************** public class gnuAny *** 904,907 **** typecode = null; xKind = -1; } ! } \ No newline at end of file --- 904,907 ---- typecode = null; xKind = -1; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuCodecFactory.java gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuCodecFactory.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuCodecFactory.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuCodecFactory.java Tue Jan 11 19:46:05 2011 *************** public class gnuCodecFactory extends Loc *** 87,90 **** new Version(for_encoding.major_version, for_encoding.minor_version) ); } ! } \ No newline at end of file --- 87,90 ---- new Version(for_encoding.major_version, for_encoding.minor_version) ); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuEnvironment.java gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuEnvironment.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuEnvironment.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuEnvironment.java Tue Jan 11 19:46:05 2011 *************** public class gnuEnvironment *** 51,57 **** * The stored exception. */ protected Exception exception; ! /** {@inheritDoc} */ public void clear() { --- 51,57 ---- * The stored exception. */ protected Exception exception; ! /** {@inheritDoc} */ public void clear() { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuRequest.java gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuRequest.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuRequest.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuRequest.java Tue Jan 11 19:46:05 2011 *************** public class gnuRequest extends Request *** 592,598 **** { final gnuRequest cloned = Clone(); cloned.oneWay = true; ! new Thread() { public void run() --- 592,598 ---- { final gnuRequest cloned = Clone(); cloned.oneWay = true; ! new Thread() { public void run() *************** public class gnuRequest extends Request *** 714,720 **** /** * Do the actual invocation. This implementation requires to set the IOR * property ({@link #setIOR(IOR)} before calling this method. ! * * @throws BAD_INV_ORDER, minor code 0, if the IOR has not been previously set * or if the direct argument addition is mixed with the direct * argument writing into the output stream. --- 714,720 ---- /** * Do the actual invocation. This implementation requires to set the IOR * property ({@link #setIOR(IOR)} before calling this method. ! * * @throws BAD_INV_ORDER, minor code 0, if the IOR has not been previously set * or if the direct argument addition is mixed with the direct * argument writing into the output stream. *************** public synchronized RawReply submit() *** 936,942 **** throws SystemException, ForwardRequest { RawReply response = submit(); ! // If this is a one way message, do not care about the response. if (oneWay && response == EMPTY) return; --- 936,942 ---- throws SystemException, ForwardRequest { RawReply response = submit(); ! // If this is a one way message, do not care about the response. if (oneWay && response == EMPTY) return; *************** public synchronized RawReply submit() *** 1420,1423 **** CompletionStatus.COMPLETED_MAYBE ); } ! } \ No newline at end of file --- 1420,1423 ---- CompletionStatus.COMPLETED_MAYBE ); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuValueHolder.java gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuValueHolder.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/gnuValueHolder.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/gnuValueHolder.java Tue Jan 11 19:46:05 2011 *************** public class gnuValueHolder *** 132,135 **** helper_NA = true; } } ! } \ No newline at end of file --- 132,135 ---- helper_NA = true; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/interfaces/SocketFactory.java gcc-4.6.0/libjava/classpath/gnu/CORBA/interfaces/SocketFactory.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/interfaces/SocketFactory.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/interfaces/SocketFactory.java Tue Jan 11 19:46:05 2011 *************** import java.net.Socket; *** 49,59 **** * for implementing the desired timeout policies, for HTTP tunnels and in some * other similar cases. While such functionality is provided by near all * existing CORBA implementations, no standard mechanism is defined. ! * * The socket factory may need to put additional information to the IORs of the * objects, released by the ORB. Because of this reason, this interface extends * IORInterceptorOperations. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public interface SocketFactory --- 49,59 ---- * for implementing the desired timeout policies, for HTTP tunnels and in some * other similar cases. While such functionality is provided by near all * existing CORBA implementations, no standard mechanism is defined. ! * * The socket factory may need to put additional information to the IORs of the * objects, released by the ORB. Because of this reason, this interface extends * IORInterceptorOperations. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public interface SocketFactory *************** public interface SocketFactory *** 63,90 **** * factory class, the name of that (String) is the value of this property. */ final String PROPERTY = "gnu.CORBA.SocketFactory"; ! /** * Create a server socket that should serve remote invocations on the given * port. The ORB may use this socket to serve either one or more objects. ! * * @param port the port, on that the socket should be listening for requests. * The port policy can be controlled by {@link gnuPortManager}. ! * * @throws IOException if the socket cannot be created on the given port due * any reasons. The ORB may try to open the socket on another port, calling * this method with the different parameter. */ ServerSocket createServerSocket(int port) throws IOException; ! /** * Create a client socket that should send a request to the remote side. When * returned, the socket should be opened and ready to communicate. ! * * @param port the port, on that the socket should be openend. The port is * usually part of the internet profile. ! * * @throws IOException if the socket cannot be created on the given port due * any reasons. The ORB may try to open the socket on another port, calling * this method with the different parameter. --- 63,90 ---- * factory class, the name of that (String) is the value of this property. */ final String PROPERTY = "gnu.CORBA.SocketFactory"; ! /** * Create a server socket that should serve remote invocations on the given * port. The ORB may use this socket to serve either one or more objects. ! * * @param port the port, on that the socket should be listening for requests. * The port policy can be controlled by {@link gnuPortManager}. ! * * @throws IOException if the socket cannot be created on the given port due * any reasons. The ORB may try to open the socket on another port, calling * this method with the different parameter. */ ServerSocket createServerSocket(int port) throws IOException; ! /** * Create a client socket that should send a request to the remote side. When * returned, the socket should be opened and ready to communicate. ! * * @param port the port, on that the socket should be openend. The port is * usually part of the internet profile. ! * * @throws IOException if the socket cannot be created on the given port due * any reasons. The ORB may try to open the socket on another port, calling * this method with the different parameter. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/AliasTypeCode.java gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/AliasTypeCode.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/AliasTypeCode.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/AliasTypeCode.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.TypeCodePackage.Bad *** 51,61 **** public class AliasTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The typecode repository id. */ --- 51,61 ---- public class AliasTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The typecode repository id. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/ArrayTypeCode.java gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/ArrayTypeCode.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/ArrayTypeCode.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/ArrayTypeCode.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.TypeCodePackage.Bad *** 50,61 **** public class ArrayTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! ! /** * The array components. */ --- 50,61 ---- public class ArrayTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! ! /** * The array components. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.TypeCodePackage.Bad *** 52,63 **** public class FixedTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! ! /** * The number of the used digits. */ --- 52,63 ---- public class FixedTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! ! /** * The number of the used digits. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/GeneralTypeCode.java gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/GeneralTypeCode.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/GeneralTypeCode.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/GeneralTypeCode.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.TypeCodePackage.Bad *** 59,70 **** public class GeneralTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! ! /** * Indicates that the field value has not been previously set. */ --- 59,70 ---- public class GeneralTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! ! /** * Indicates that the field value has not been previously set. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/PrimitiveTypeCode.java gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/PrimitiveTypeCode.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/PrimitiveTypeCode.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/PrimitiveTypeCode.java Tue Jan 11 19:46:05 2011 *************** public class PrimitiveTypeCode *** 64,74 **** extends TypeCode implements IDLEntity, Serializable { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The kind of this TypeCode. */ --- 64,74 ---- extends TypeCode implements IDLEntity, Serializable { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The kind of this TypeCode. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/RecordTypeCode.java gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/RecordTypeCode.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/RecordTypeCode.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/RecordTypeCode.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.ValueMember; *** 58,68 **** public class RecordTypeCode extends GeneralTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The individual field of the record. */ --- 58,68 ---- public class RecordTypeCode extends GeneralTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The individual field of the record. */ *************** public class RecordTypeCode *** 151,157 **** f.name = m.name; f.type = m.type; f.visibility = m.access; ! } /** --- 151,157 ---- f.name = m.name; f.type = m.type; f.visibility = m.access; ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.TCKind; *** 48,58 **** public class RecursiveTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The id of the type for that this type serves as a * placeholder. --- 48,58 ---- public class RecursiveTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * The id of the type for that this type serves as a * placeholder. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/StringTypeCode.java gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/StringTypeCode.java *** gcc-4.5.2/libjava/classpath/gnu/CORBA/typecodes/StringTypeCode.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/CORBA/typecodes/StringTypeCode.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.TCKind; *** 48,58 **** public class StringTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! private int len = 0; /** --- 48,58 ---- public class StringTypeCode extends PrimitiveTypeCode { ! /** ! * Use serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! private int len = 0; /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/Pair.java gcc-4.6.0/libjava/classpath/gnu/classpath/Pair.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/Pair.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/Pair.java Tue Jan 11 19:46:05 2011 *************** public class Pair *** 101,111 **** { if (obj instanceof Pair) { ! Pair p = (Pair) obj; ! A lp = p.getLeft(); ! B rp = p.getRight(); ! return (lp == null ? left == null : lp.equals(left)) && ! (rp == null ? right == null : rp.equals(right)); } return false; } --- 101,111 ---- { if (obj instanceof Pair) { ! Pair p = (Pair) obj; ! A lp = p.getLeft(); ! B rp = p.getRight(); ! return (lp == null ? left == null : lp.equals(left)) && ! (rp == null ? right == null : rp.equals(right)); } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/Pointer.java gcc-4.6.0/libjava/classpath/gnu/classpath/Pointer.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/Pointer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/Pointer.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package gnu.classpath; ! /** A type used to indicate special data used by native code that should not be marked by the garbage collector. */ public abstract class Pointer --- 39,45 ---- package gnu.classpath; ! /** A type used to indicate special data used by native code that should not be marked by the garbage collector. */ public abstract class Pointer diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/Pointer32.java gcc-4.6.0/libjava/classpath/gnu/classpath/Pointer32.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/Pointer32.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/Pointer32.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,50 **** package gnu.classpath; /** ! * A type used to indicate special data used by native code that should not * be marked by the garbage collector. */ public final class Pointer32 extends Pointer { final int data; ! public Pointer32(int data) { this.data = data; --- 38,50 ---- package gnu.classpath; /** ! * A type used to indicate special data used by native code that should not * be marked by the garbage collector. */ public final class Pointer32 extends Pointer { final int data; ! public Pointer32(int data) { this.data = data; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/Pointer64.java gcc-4.6.0/libjava/classpath/gnu/classpath/Pointer64.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/Pointer64.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/Pointer64.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,50 **** package gnu.classpath; /** ! * A type used to indicate special data used by native code that should not * be marked by the garbage collector. */ public final class Pointer64 extends Pointer { final long data; ! public Pointer64(long data) { this.data = data; --- 38,50 ---- package gnu.classpath; /** ! * A type used to indicate special data used by native code that should not * be marked by the garbage collector. */ public final class Pointer64 extends Pointer { final long data; ! public Pointer64(long data) { this.data = data; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/ServiceFactory.java gcc-4.6.0/libjava/classpath/gnu/classpath/ServiceFactory.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/ServiceFactory.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/ServiceFactory.java Tue Jan 11 19:46:05 2011 *************** public final class ServiceFactory *** 224,230 **** * null. */ public static

      Iterator

      lookupProviders(Class

      spi, ! ClassLoader loader) { return lookupProviders(spi, loader, false); } --- 224,230 ---- * null. */ public static

      Iterator

      lookupProviders(Class

      spi, ! ClassLoader loader) { return lookupProviders(spi, loader, false); } *************** public final class ServiceFactory *** 268,275 **** * null. */ public static

      Iterator

      lookupProviders(Class

      spi, ! ClassLoader loader, ! boolean error) { String resourceName; Enumeration urls; --- 268,275 ---- * null. */ public static

      Iterator

      lookupProviders(Class

      spi, ! ClassLoader loader, ! boolean error) { String resourceName; Enumeration urls; *************** public final class ServiceFactory *** 292,309 **** * does not return anything (no providers installed). */ log(Level.WARNING, "cannot access {0}", resourceName, ioex); ! if (error) ! throw new ServiceConfigurationError("Failed to access + " + ! resourceName, ioex); ! else ! { ! List

      empty = Collections.emptyList(); ! return empty.iterator(); ! } } return new ServiceIterator

      (spi, urls, loader, error, ! AccessController.getContext()); } --- 292,309 ---- * does not return anything (no providers installed). */ log(Level.WARNING, "cannot access {0}", resourceName, ioex); ! if (error) ! throw new ServiceConfigurationError("Failed to access + " + ! resourceName, ioex); ! else ! { ! List

      empty = Collections.emptyList(); ! return empty.iterator(); ! } } return new ServiceIterator

      (spi, urls, loader, error, ! AccessController.getContext()); } *************** public final class ServiceFactory *** 379,385 **** * been fetched. */ private BufferedReader reader; ! /** * The URL currently being processed. This is only used for --- 379,385 ---- * been fetched. */ private BufferedReader reader; ! /** * The URL currently being processed. This is only used for *************** public final class ServiceFactory *** 425,431 **** * and initializing service providers. */ ServiceIterator(Class

      spi, Enumeration urls, ClassLoader loader, ! boolean error, AccessControlContext securityContext) { this.spi = spi; this.urls = urls; --- 425,431 ---- * and initializing service providers. */ ServiceIterator(Class

      spi, Enumeration urls, ClassLoader loader, ! boolean error, AccessControlContext securityContext) { this.spi = spi; this.urls = urls; *************** public final class ServiceFactory *** 468,474 **** private P loadNextServiceProvider() { String line; ! if (reader == null) advanceReader(); --- 468,474 ---- private P loadNextServiceProvider() { String line; ! if (reader == null) advanceReader(); *************** public final class ServiceFactory *** 489,497 **** log(Level.WARNING, "IOException upon reading {0}", currentURL, readProblem); line = null; ! if (error) ! throw new ServiceConfigurationError("Error reading " + ! currentURL, readProblem); } /* When we are at the end of one list of services, --- 489,497 ---- log(Level.WARNING, "IOException upon reading {0}", currentURL, readProblem); line = null; ! if (error) ! throw new ServiceConfigurationError("Error reading " + ! currentURL, readProblem); } /* When we are at the end of one list of services, *************** public final class ServiceFactory *** 540,555 **** + " of \"{1}\". Specified" + " by \"META-INF/services/{1}\" in {2}."; ! log(Level.WARNING, msg, new Object[] { line, spi.getName(), currentURL }, ex); ! if (error) ! throw new ServiceConfigurationError("Cannot load service "+ ! "provider class " + ! line + " specified by "+ ! "\"META-INF/services/"+ ! spi.getName() + "\" in "+ ! currentURL, ex); continue; } } --- 540,555 ---- + " of \"{1}\". Specified" + " by \"META-INF/services/{1}\" in {2}."; ! log(Level.WARNING, msg, new Object[] { line, spi.getName(), currentURL }, ex); ! if (error) ! throw new ServiceConfigurationError("Cannot load service "+ ! "provider class " + ! line + " specified by "+ ! "\"META-INF/services/"+ ! spi.getName() + "\" in "+ ! currentURL, ex); continue; } } *************** public final class ServiceFactory *** 570,578 **** catch (Exception ex) { log(Level.WARNING, "cannot close {0}", currentURL, ex); ! if (error) ! throw new ServiceConfigurationError("Cannot close " + ! currentURL, ex); } reader = null; currentURL = null; --- 570,578 ---- catch (Exception ex) { log(Level.WARNING, "cannot close {0}", currentURL, ex); ! if (error) ! throw new ServiceConfigurationError("Cannot close " + ! currentURL, ex); } reader = null; currentURL = null; *************** public final class ServiceFactory *** 591,599 **** catch (Exception ex) { log(Level.WARNING, "cannot open {0}", currentURL, ex); ! if (error) ! throw new ServiceConfigurationError("Cannot open " + ! currentURL, ex); } } while (reader == null); --- 591,599 ---- catch (Exception ex) { log(Level.WARNING, "cannot open {0}", currentURL, ex); ! if (error) ! throw new ServiceConfigurationError("Cannot open " + ! currentURL, ex); } } while (reader == null); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java gcc-4.6.0/libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java Tue Jan 11 19:46:05 2011 *************** final class ServiceProviderLoadingAction *** 108,114 **** this.loader = loader; } ! /** * Loads an implementation class for a service provider, and creates * a new instance of the loaded class by invoking its public --- 108,114 ---- this.loader = loader; } ! /** * Loads an implementation class for a service provider, and creates * a new instance of the loaded class by invoking its public diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/SystemProperties.java gcc-4.6.0/libjava/classpath/gnu/classpath/SystemProperties.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/SystemProperties.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/SystemProperties.java Tue Jan 11 19:46:05 2011 *************** public class SystemProperties *** 75,105 **** // Set base URL if not already set. if (defaultProperties.get("gnu.classpath.home.url") == null) defaultProperties.put("gnu.classpath.home.url", ! "file://" ! + Configuration.CLASSPATH_HOME ! + "/lib"); // Set short name if not already set. if (defaultProperties.get("gnu.classpath.vm.shortname") == null) { ! String value = defaultProperties.getProperty("java.vm.name"); ! int index = value.lastIndexOf(' '); ! if (index != -1) ! value = value.substring(index + 1); ! defaultProperties.put("gnu.classpath.vm.shortname", value); } // Network properties if (defaultProperties.get("http.agent") == null) { ! String userAgent = ("gnu-classpath/" ! + defaultProperties.getProperty("gnu.classpath.version") ! + " (" ! + defaultProperties.getProperty("gnu.classpath.vm.shortname") ! + "/" ! + defaultProperties.getProperty("java.vm.version") ! + ")"); ! defaultProperties.put("http.agent", userAgent); } // 8859_1 is a safe default encoding to use when not explicitly set --- 75,105 ---- // Set base URL if not already set. if (defaultProperties.get("gnu.classpath.home.url") == null) defaultProperties.put("gnu.classpath.home.url", ! "file://" ! + Configuration.CLASSPATH_HOME ! + "/lib"); // Set short name if not already set. if (defaultProperties.get("gnu.classpath.vm.shortname") == null) { ! String value = defaultProperties.getProperty("java.vm.name"); ! int index = value.lastIndexOf(' '); ! if (index != -1) ! value = value.substring(index + 1); ! defaultProperties.put("gnu.classpath.vm.shortname", value); } // Network properties if (defaultProperties.get("http.agent") == null) { ! String userAgent = ("gnu-classpath/" ! + defaultProperties.getProperty("gnu.classpath.version") ! + " (" ! + defaultProperties.getProperty("gnu.classpath.vm.shortname") ! + "/" ! + defaultProperties.getProperty("java.vm.version") ! + ")"); ! defaultProperties.put("http.agent", userAgent); } // 8859_1 is a safe default encoding to use when not explicitly set *************** public class SystemProperties *** 160,166 **** /** * Removes the supplied system property and its current value. * If the specified property does not exist, nothing happens. ! * * @throws NullPointerException if the property name is null. * @return the value of the removed property, or null if no * such property exists. --- 160,166 ---- /** * Removes the supplied system property and its current value. * If the specified property does not exist, nothing happens. ! * * @throws NullPointerException if the property name is null. * @return the value of the removed property, or null if no * such property exists. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/debug/Component.java gcc-4.6.0/libjava/classpath/gnu/classpath/debug/Component.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/debug/Component.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/debug/Component.java Tue Jan 11 19:46:05 2011 *************** public final class Component extends Lev *** 97,103 **** * Trace details about the SSL key exchange. */ public static final Component SSL_KEY_EXCHANGE = new Component ("SSL KEY EXCHANGE", 2); ! /** * Trace running of delegated tasks. */ --- 97,103 ---- * Trace details about the SSL key exchange. */ public static final Component SSL_KEY_EXCHANGE = new Component ("SSL KEY EXCHANGE", 2); ! /** * Trace running of delegated tasks. */ *************** public final class Component extends Lev *** 120,126 **** * java.policy files. */ public static final Component POLICY = new Component ("POLICY", 7); ! /** * Trace ipp implementation. */ --- 120,126 ---- * java.policy files. */ public static final Component POLICY = new Component ("POLICY", 7); ! /** * Trace ipp implementation. */ *************** public final class Component extends Lev *** 151,165 **** { try { ! Field f = Component.class.getField (name.toUpperCase ()); ! if (!Modifier.isStatic (f.getModifiers ()) ! || Component.class.isAssignableFrom (f.getClass ())) ! return null; ! return (Component) f.get (null); } catch (Throwable _) { ! return null; } } --- 151,165 ---- { try { ! Field f = Component.class.getField (name.toUpperCase ()); ! if (!Modifier.isStatic (f.getModifiers ()) ! || Component.class.isAssignableFrom (f.getClass ())) ! return null; ! return (Component) f.get (null); } catch (Throwable _) { ! return null; } } *************** public final class Component extends Lev *** 172,175 **** { return endIndex; } ! } \ No newline at end of file --- 172,175 ---- { return endIndex; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/debug/PreciseFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/debug/PreciseFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/debug/PreciseFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/debug/PreciseFilter.java Tue Jan 11 19:46:05 2011 *************** public final class PreciseFilter impleme *** 95,105 **** { try { ! return isEnabled ((Component) record.getLevel ()); } catch (ClassCastException cce) { ! return true; } } ! } \ No newline at end of file --- 95,105 ---- { try { ! return isEnabled ((Component) record.getLevel ()); } catch (ClassCastException cce) { ! return true; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/debug/SystemLogger.java gcc-4.6.0/libjava/classpath/gnu/classpath/debug/SystemLogger.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/debug/SystemLogger.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/debug/SystemLogger.java Tue Jan 11 19:46:05 2011 *************** public final class SystemLogger extends *** 79,85 **** // XXX Check some permission here? return SYSTEM; } ! /** * Keep only one instance of the system logger. */ --- 79,85 ---- // XXX Check some permission here? return SYSTEM; } ! /** * Keep only one instance of the system logger. */ *************** public final class SystemLogger extends *** 87,96 **** { super("gnu.classpath", null); } ! /** * Variable-arguments log method. ! * * @param level The level to log to. * @param format The format string. * @param args The arguments. --- 87,96 ---- { super("gnu.classpath", null); } ! /** * Variable-arguments log method. ! * * @param level The level to log to. * @param format The format string. * @param args The arguments. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/debug/TeeInputStream.java gcc-4.6.0/libjava/classpath/gnu/classpath/debug/TeeInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/debug/TeeInputStream.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/debug/TeeInputStream.java Tue Jan 11 19:46:05 2011 *************** public class TeeInputStream *** 94,98 **** { return false; } ! } --- 94,98 ---- { return false; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/debug/TeeReader.java gcc-4.6.0/libjava/classpath/gnu/classpath/debug/TeeReader.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/debug/TeeReader.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/debug/TeeReader.java Tue Jan 11 19:46:05 2011 *************** public class TeeReader *** 94,98 **** { return false; } ! } --- 94,98 ---- { return false; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/Jdwp.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/Jdwp.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/Jdwp.java Mon May 7 20:45:21 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/Jdwp.java Tue Jan 11 19:46:05 2011 *************** public class Jdwp *** 118,131 **** /** * Get the thread group used by JDWP threads ! * * @return the thread group */ public ThreadGroup getJdwpThreadGroup() { return _group; } ! /** * Should the virtual machine suspend on startup? */ --- 118,131 ---- /** * Get the thread group used by JDWP threads ! * * @return the thread group */ public ThreadGroup getJdwpThreadGroup() { return _group; } ! /** * Should the virtual machine suspend on startup? */ *************** public class Jdwp *** 134,142 **** Jdwp jdwp = getDefault (); if (jdwp != null) { ! String suspend = (String) jdwp._properties.get (_PROPERTY_SUSPEND); ! if (suspend != null && suspend.equals ("y")) ! return true; } return false; --- 134,142 ---- Jdwp jdwp = getDefault (); if (jdwp != null) { ! String suspend = (String) jdwp._properties.get (_PROPERTY_SUSPEND); ! if (suspend != null && suspend.equals ("y")) ! return true; } return false; *************** public class Jdwp *** 167,176 **** _packetProcessor = new PacketProcessor (_connection); _ppThread = new Thread (_group, new Runnable () { ! public void run () ! { ! AccessController.doPrivileged (_packetProcessor); ! } }, "packet processor"); _ppThread.start (); } --- 167,176 ---- _packetProcessor = new PacketProcessor (_connection); _ppThread = new Thread (_group, new Runnable () { ! public void run () ! { ! AccessController.doPrivileged (_packetProcessor); ! } }, "packet processor"); _ppThread.start (); } *************** public class Jdwp *** 178,201 **** /** * Shutdown the JDWP back-end * ! * NOTE: This does not quite work properly. See notes in * run() on this subject (catch of InterruptedException). */ public void shutdown () { if (!_shutdown) { ! _packetProcessor.shutdown (); ! _ppThread.interrupt (); ! _connection.shutdown (); ! _shutdown = true; ! isDebugging = false; ! /* FIXME: probably need to check state of user's ! program -- if it is suspended, we need to either ! resume or kill them. */ ! interrupt (); } } --- 178,201 ---- /** * Shutdown the JDWP back-end * ! * NOTE: This does not quite work properly. See notes in * run() on this subject (catch of InterruptedException). */ public void shutdown () { if (!_shutdown) { ! _packetProcessor.shutdown (); ! _ppThread.interrupt (); ! _connection.shutdown (); ! _shutdown = true; ! isDebugging = false; ! /* FIXME: probably need to check state of user's ! program -- if it is suspended, we need to either ! resume or kill them. */ ! interrupt (); } } *************** public class Jdwp *** 215,239 **** Jdwp jdwp = getDefault(); if (jdwp != null) { ! EventManager em = EventManager.getDefault(); ! EventRequest[] requests = em.getEventRequests(event); ! for (int i = 0; i < requests.length; ++i) ! { ! try ! { ! sendEvent(requests[i], event); ! jdwp._enforceSuspendPolicy(requests[i].getSuspendPolicy()); ! } ! catch (Exception e) ! { ! /* Really not much we can do. For now, just print out ! a warning to the user. */ ! System.out.println ("Jdwp.notify: caught exception: " + e); ! } ! } } } ! /** * Notify the debugger of "co-located" events. This method should * not be called if debugging is not active (but it would not --- 215,239 ---- Jdwp jdwp = getDefault(); if (jdwp != null) { ! EventManager em = EventManager.getDefault(); ! EventRequest[] requests = em.getEventRequests(event); ! for (int i = 0; i < requests.length; ++i) ! { ! try ! { ! sendEvent(requests[i], event); ! jdwp._enforceSuspendPolicy(requests[i].getSuspendPolicy()); ! } ! catch (Exception e) ! { ! /* Really not much we can do. For now, just print out ! a warning to the user. */ ! System.out.println ("Jdwp.notify: caught exception: " + e); ! } ! } } } ! /** * Notify the debugger of "co-located" events. This method should * not be called if debugging is not active (but it would not *************** public class Jdwp *** 248,292 **** public static void notify(Event[] events) { Jdwp jdwp = getDefault(); ! if (jdwp != null) { ! byte suspendPolicy = JdwpConstants.SuspendPolicy.NONE; ! EventManager em = EventManager.getDefault(); ! ArrayList allEvents = new ArrayList (); ! ArrayList allRequests = new ArrayList (); ! for (int i = 0; i < events.length; ++i) ! { ! EventRequest[] r = em.getEventRequests(events[i]); ! for (int j = 0; j < r.length; ++j) ! { ! /* This is hacky, but it's not clear whether this ! can really happen, and if it does, what should ! occur. */ ! allEvents.add (events[i]); ! allRequests.add (r[j]); ! // Perhaps this is overkill? ! if (r[j].getSuspendPolicy() > suspendPolicy) ! suspendPolicy = r[j].getSuspendPolicy(); ! } ! } ! try ! { ! Event[] e = new Event[allEvents.size()]; ! allEvents.toArray(e); ! EventRequest[] r = new EventRequest[allRequests.size()]; ! allRequests.toArray(r); ! sendEvents(r, e, suspendPolicy); ! jdwp._enforceSuspendPolicy(suspendPolicy); ! } ! catch (Exception e) ! { ! /* Really not much we can do. For now, just print out ! a warning to the user. */ ! System.out.println ("Jdwp.notify: caught exception: " + e); ! } } } --- 248,292 ---- public static void notify(Event[] events) { Jdwp jdwp = getDefault(); ! if (jdwp != null) { ! byte suspendPolicy = JdwpConstants.SuspendPolicy.NONE; ! EventManager em = EventManager.getDefault(); ! ArrayList allEvents = new ArrayList (); ! ArrayList allRequests = new ArrayList (); ! for (int i = 0; i < events.length; ++i) ! { ! EventRequest[] r = em.getEventRequests(events[i]); ! for (int j = 0; j < r.length; ++j) ! { ! /* This is hacky, but it's not clear whether this ! can really happen, and if it does, what should ! occur. */ ! allEvents.add (events[i]); ! allRequests.add (r[j]); ! // Perhaps this is overkill? ! if (r[j].getSuspendPolicy() > suspendPolicy) ! suspendPolicy = r[j].getSuspendPolicy(); ! } ! } ! try ! { ! Event[] e = new Event[allEvents.size()]; ! allEvents.toArray(e); ! EventRequest[] r = new EventRequest[allRequests.size()]; ! allRequests.toArray(r); ! sendEvents(r, e, suspendPolicy); ! jdwp._enforceSuspendPolicy(suspendPolicy); ! } ! catch (Exception e) ! { ! /* Really not much we can do. For now, just print out ! a warning to the user. */ ! System.out.println ("Jdwp.notify: caught exception: " + e); ! } } } *************** public class Jdwp *** 303,309 **** throws IOException { sendEvents (new EventRequest[] { request }, new Event[] { event }, ! request.getSuspendPolicy()); } /** --- 303,309 ---- throws IOException { sendEvents (new EventRequest[] { request }, new Event[] { event }, ! request.getSuspendPolicy()); } /** *************** public class Jdwp *** 317,332 **** * @throws IOException if a communications failure occurs */ public static void sendEvents (EventRequest[] requests, Event[] events, ! byte suspendPolicy) throws IOException { Jdwp jdwp = getDefault(); if (jdwp != null) { ! synchronized (jdwp._connection) ! { ! jdwp._connection.sendEvents (requests, events, suspendPolicy); ! } } } --- 317,332 ---- * @throws IOException if a communications failure occurs */ public static void sendEvents (EventRequest[] requests, Event[] events, ! byte suspendPolicy) throws IOException { Jdwp jdwp = getDefault(); if (jdwp != null) { ! synchronized (jdwp._connection) ! { ! jdwp._connection.sendEvents (requests, events, suspendPolicy); ! } } } *************** public class Jdwp *** 337,352 **** switch (suspendPolicy) { case EventRequest.SUSPEND_NONE: ! // do nothing ! break; case EventRequest.SUSPEND_THREAD: ! VMVirtualMachine.suspendThread (Thread.currentThread ()); ! break; case EventRequest.SUSPEND_ALL: ! VMVirtualMachine.suspendAllThreads (); ! break; } } --- 337,352 ---- switch (suspendPolicy) { case EventRequest.SUSPEND_NONE: ! // do nothing ! break; case EventRequest.SUSPEND_THREAD: ! VMVirtualMachine.suspendThread (Thread.currentThread ()); ! break; case EventRequest.SUSPEND_ALL: ! VMVirtualMachine.suspendAllThreads (); ! break; } } *************** public class Jdwp *** 360,367 **** { synchronized (_initLock) { ! ++_initCount; ! _initLock.notify (); } } --- 360,367 ---- { synchronized (_initLock) { ! ++_initCount; ! _initLock.notify (); } } *************** public class Jdwp *** 369,390 **** { try { ! _doInitialization (); ! /* We need a little internal synchronization here, so that ! when this thread dies, the back-end will be fully initialized, ! ready to start servicing the VM and debugger. */ ! synchronized (_initLock) ! { ! while (_initCount != 2) ! _initLock.wait (); ! } ! _initLock = null; } catch (Throwable t) { ! System.out.println ("Exception in JDWP back-end: " + t); ! System.exit (1); } /* Force creation of the EventManager. If the event manager --- 369,390 ---- { try { ! _doInitialization (); ! /* We need a little internal synchronization here, so that ! when this thread dies, the back-end will be fully initialized, ! ready to start servicing the VM and debugger. */ ! synchronized (_initLock) ! { ! while (_initCount != 2) ! _initLock.wait (); ! } ! _initLock = null; } catch (Throwable t) { ! System.out.println ("Exception in JDWP back-end: " + t); ! System.exit (1); } /* Force creation of the EventManager. If the event manager *************** public class Jdwp *** 407,416 **** String[] options = configString.split (","); for (int i = 0; i < options.length; ++i) { ! String[] property = options[i].split ("="); ! if (property.length == 2) ! _properties.put (property[0], property[1]); ! // ignore malformed options } } } --- 407,416 ---- String[] options = configString.split (","); for (int i = 0; i < options.length; ++i) { ! String[] property = options[i].split ("="); ! if (property.length == 2) ! _properties.put (property[0], property[1]); ! // ignore malformed options } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java Tue Jan 11 19:46:05 2011 *************** public class JdwpConstants *** 51,57 **** public static final int MAJOR = 1; public static final int MINOR = 4; } ! //////////////////////////////////////// // Commands/Sets // //////////////////////////////////////// --- 51,57 ---- public static final int MAJOR = 1; public static final int MINOR = 4; } ! //////////////////////////////////////// // Commands/Sets // //////////////////////////////////////// *************** public class JdwpConstants *** 77,83 **** public static final byte CAPABILITIES = 12; public static final byte CLASS_PATHS = 13; public static final byte DISPOSE_OBJECTS = 14; ! public static final byte HOLD_EVENTS = 15; public static final byte RELEASE_EVENTS = 16; public static final byte CAPABILITIES_NEW = 17; public static final byte REDEFINE_CLASSES = 18; --- 77,83 ---- public static final byte CAPABILITIES = 12; public static final byte CLASS_PATHS = 13; public static final byte DISPOSE_OBJECTS = 14; ! public static final byte HOLD_EVENTS = 15; public static final byte RELEASE_EVENTS = 16; public static final byte CAPABILITIES_NEW = 17; public static final byte REDEFINE_CLASSES = 18; *************** public class JdwpConstants *** 94,100 **** public static final byte CLASS_LOADER= 2; public static final byte MODIFIERS = 3; public static final byte FIELDS = 4; ! public static final byte METHODS = 5; public static final byte GET_VALUES = 6; public static final byte SOURCE_FILE = 7; public static final byte NESTED_TYPES = 8; --- 94,100 ---- public static final byte CLASS_LOADER= 2; public static final byte MODIFIERS = 3; public static final byte FIELDS = 4; ! public static final byte METHODS = 5; public static final byte GET_VALUES = 6; public static final byte SOURCE_FILE = 7; public static final byte NESTED_TYPES = 8; *************** public class JdwpConstants *** 587,593 **** public static final byte METHOD_ENTRY = 40; public static final byte METHOD_EXIT = 41; public static final byte VM_INIT = 90; ! public static final byte VM_DEATH = 99; public static final byte VM_DISCONNECTED = 100; public static final byte VM_START = VM_INIT; --- 587,593 ---- public static final byte METHOD_ENTRY = 40; public static final byte METHOD_EXIT = 41; public static final byte VM_INIT = 90; ! public static final byte VM_DEATH = 99; public static final byte VM_DISCONNECTED = 100; public static final byte VM_START = VM_INIT; *************** public class JdwpConstants *** 617,623 **** public static final byte THREAD_ONLY = 3; /** ! * For class prepare events, restricts generated events * to be the preparation of the given reference type and any * subtypes. * --- 617,623 ---- public static final byte THREAD_ONLY = 3; /** ! * For class prepare events, restricts generated events * to be the preparation of the given reference type and any * subtypes. * *************** public class JdwpConstants *** 647,653 **** /** * Restricts reported events to those for classes whose name does not * match the given restricted regular expression. ! * * For class prepare events, the prepared class name is matched. * For class unload events, the unloaded class name is matched. * For other events, the class name of the event's location is matched. --- 647,653 ---- /** * Restricts reported events to those for classes whose name does not * match the given restricted regular expression. ! * * For class prepare events, the prepared class name is matched. * For class unload events, the unloaded class name is matched. * For other events, the class name of the event's location is matched. *************** public class JdwpConstants *** 682,688 **** /** * Restricts reported step events to those which satisfy depth and * size constraints. ! * * May be used with step event kinds only. */ public static final byte STEP = 10; --- 682,688 ---- /** * Restricts reported step events to those which satisfy depth and * size constraints. ! * * May be used with step event kinds only. */ public static final byte STEP = 10; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/BreakpointEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/BreakpointEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/BreakpointEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/BreakpointEvent.java Tue Jan 11 19:46:05 2011 *************** public class BreakpointEvent *** 62,68 **** // Location where breakpoint occurred private Location _location; ! //object instance private Object _instance; --- 62,68 ---- // Location where breakpoint occurred private Location _location; ! //object instance private Object _instance; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/ClassPrepareEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/ClassPrepareEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/ClassPrepareEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/ClassPrepareEvent.java Tue Jan 11 19:46:05 2011 *************** public class ClassPrepareEvent *** 141,147 **** tid.write (outStream); rid.writeTagged (outStream); JdwpString.writeString (outStream, ! Signature.computeClassSignature (_class)); outStream.writeInt (_status); } } --- 141,147 ---- tid.write (outStream); rid.writeTagged (outStream); JdwpString.writeString (outStream, ! Signature.computeClassSignature (_class)); outStream.writeInt (_status); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/ClassUnloadEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/ClassUnloadEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/ClassUnloadEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/ClassUnloadEvent.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 47,53 **** /** * "Notification of a class unload in the target VM" -- JDWP 1.4.2 ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class ClassUnloadEvent --- 47,53 ---- /** * "Notification of a class unload in the target VM" -- JDWP 1.4.2 ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class ClassUnloadEvent *************** public class ClassUnloadEvent *** 58,64 **** /** * Constructs a new ClassUnloadEvent ! * * @param signature the signature reported from the VM */ public ClassUnloadEvent(String signature) --- 58,64 ---- /** * Constructs a new ClassUnloadEvent ! * * @param signature the signature reported from the VM */ public ClassUnloadEvent(String signature) *************** public class ClassUnloadEvent *** 70,76 **** /** * Returns a specific filtering parameter for this event. Class is the only * valid type. ! * * @param type the type of parameter desired * @returns the desired parameter or null */ --- 70,76 ---- /** * Returns a specific filtering parameter for this event. Class is the only * valid type. ! * * @param type the type of parameter desired * @returns the desired parameter or null */ *************** public class ClassUnloadEvent *** 82,91 **** /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); --- 82,91 ---- /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/Event.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/Event.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/Event.java Mon May 7 20:45:21 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/Event.java Tue Jan 11 19:46:05 2011 *************** public abstract class Event *** 58,79 **** * The class of the object in which the event occurred */ public static final int EVENT_CLASS = 1; ! /** * The thread where the event occurred */ public static final int EVENT_THREAD = 2; ! /** * The location where an event occurred */ public static final int EVENT_LOCATION = 3; ! /** * The instance of the class where the event occurred */ public static final int EVENT_INSTANCE = 4; ! /** * The field acted on by an event */ --- 58,79 ---- * The class of the object in which the event occurred */ public static final int EVENT_CLASS = 1; ! /** * The thread where the event occurred */ public static final int EVENT_THREAD = 2; ! /** * The location where an event occurred */ public static final int EVENT_LOCATION = 3; ! /** * The instance of the class where the event occurred */ public static final int EVENT_INSTANCE = 4; ! /** * The field acted on by an event */ *************** public abstract class Event *** 88,94 **** * Whether this exception was caught (only valid for ExceptionEvents) */ public static final int EVENT_EXCEPTION_CAUGHT = 7; ! // The kind of event represented by this event private byte _eventKind; --- 88,94 ---- * Whether this exception was caught (only valid for ExceptionEvents) */ public static final int EVENT_EXCEPTION_CAUGHT = 7; ! // The kind of event represented by this event private byte _eventKind; *************** public abstract class Event *** 144,168 **** * @returns a JdwpPacket of the events */ public static JdwpPacket toPacket (DataOutputStream dos, ! Event[] events, ! EventRequest[] requests, ! byte suspendPolicy) { JdwpPacket pkt; try { ! dos.writeByte (suspendPolicy); ! dos.writeInt (events.length); ! for (int i = 0; i < events.length; ++i) ! _toData (dos, events[i], requests[i]); ! pkt ! = new JdwpCommandPacket (JdwpConstants.CommandSet.Event.CS_VALUE, ! JdwpConstants.CommandSet.Event.COMPOSITE); } catch (IOException ioe) { ! pkt = null; } return pkt; --- 144,168 ---- * @returns a JdwpPacket of the events */ public static JdwpPacket toPacket (DataOutputStream dos, ! Event[] events, ! EventRequest[] requests, ! byte suspendPolicy) { JdwpPacket pkt; try { ! dos.writeByte (suspendPolicy); ! dos.writeInt (events.length); ! for (int i = 0; i < events.length; ++i) ! _toData (dos, events[i], requests[i]); ! pkt ! = new JdwpCommandPacket (JdwpConstants.CommandSet.Event.CS_VALUE, ! JdwpConstants.CommandSet.Event.COMPOSITE); } catch (IOException ioe) { ! pkt = null; } return pkt; *************** public abstract class Event *** 170,176 **** // Helper function for toPacket private static void _toData (DataOutputStream dos, Event event, ! EventRequest request) throws IOException { dos.writeByte (event._eventKind); --- 170,176 ---- // Helper function for toPacket private static void _toData (DataOutputStream dos, Event event, ! EventRequest request) throws IOException { dos.writeByte (event._eventKind); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/EventManager.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/EventManager.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/EventManager.java Sat Apr 28 01:05:36 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/EventManager.java Tue Jan 11 19:46:05 2011 *************** import java.util.Iterator; *** 53,62 **** * Manages event requests and filters event notifications. * * The purpose of this class is actually two-fold: ! * * 1) Maintain a list of event requests from the debugger * 2) Filter event notifications from the VM ! * * If an event request arrives from the debugger, the back-end will * call {@link #requestEvent}, which will first check for a valid event. * If it is valid, EventManager will record the request --- 53,62 ---- * Manages event requests and filters event notifications. * * The purpose of this class is actually two-fold: ! * * 1) Maintain a list of event requests from the debugger * 2) Filter event notifications from the VM ! * * If an event request arrives from the debugger, the back-end will * call {@link #requestEvent}, which will first check for a valid event. * If it is valid, EventManager will record the request *************** import java.util.Iterator; *** 65,71 **** * breakpoints and other execution-related events), or it may decide to * allow the EventManager to handle notifications and all * filtering (which is convenient for other events such as class (un)loading). ! * * @author Keith Seitz (keiths@redhat.com) */ public class EventManager --- 65,71 ---- * breakpoints and other execution-related events), or it may decide to * allow the EventManager to handle notifications and all * filtering (which is convenient for other events such as class (un)loading). ! * * @author Keith Seitz (keiths@redhat.com) */ public class EventManager *************** public class EventManager *** 96,148 **** // Add lists for all the event types _requests.put (new Byte (EventRequest.EVENT_SINGLE_STEP), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_BREAKPOINT), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_FRAME_POP), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_EXCEPTION), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_USER_DEFINED), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_THREAD_START), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_THREAD_END), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_CLASS_PREPARE), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_CLASS_UNLOAD), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_CLASS_LOAD), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_FIELD_ACCESS), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_FIELD_MODIFY), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_METHOD_ENTRY), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_METHOD_EXIT), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_VM_INIT), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_VM_DEATH), ! new Hashtable ()); // Add auto-generated event notifications // only two: VM_INIT, VM_DEATH try { ! byte sp = (Jdwp.suspendOnStartup() ! ? EventRequest.SUSPEND_THREAD : EventRequest.SUSPEND_NONE); ! requestEvent (new EventRequest (0, ! EventRequest.EVENT_VM_INIT, sp)); ! requestEvent (new EventRequest (0, ! EventRequest.EVENT_VM_DEATH, ! EventRequest.SUSPEND_NONE)); } catch (JdwpException e) { ! // This can't happen } } --- 96,148 ---- // Add lists for all the event types _requests.put (new Byte (EventRequest.EVENT_SINGLE_STEP), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_BREAKPOINT), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_FRAME_POP), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_EXCEPTION), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_USER_DEFINED), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_THREAD_START), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_THREAD_END), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_CLASS_PREPARE), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_CLASS_UNLOAD), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_CLASS_LOAD), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_FIELD_ACCESS), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_FIELD_MODIFY), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_METHOD_ENTRY), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_METHOD_EXIT), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_VM_INIT), ! new Hashtable ()); _requests.put (new Byte (EventRequest.EVENT_VM_DEATH), ! new Hashtable ()); // Add auto-generated event notifications // only two: VM_INIT, VM_DEATH try { ! byte sp = (Jdwp.suspendOnStartup() ! ? EventRequest.SUSPEND_THREAD : EventRequest.SUSPEND_NONE); ! requestEvent (new EventRequest (0, ! EventRequest.EVENT_VM_INIT, sp)); ! requestEvent (new EventRequest (0, ! EventRequest.EVENT_VM_DEATH, ! EventRequest.SUSPEND_NONE)); } catch (JdwpException e) { ! // This can't happen } } *************** public class EventManager *** 163,170 **** requests = (Hashtable) _requests.get(kind); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException("invalid event kind: " + kind); } // Loop through the requests. Must look at ALL requests in order --- 163,170 ---- requests = (Hashtable) _requests.get(kind); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException("invalid event kind: " + kind); } // Loop through the requests. Must look at ALL requests in order *************** public class EventManager *** 172,180 **** Iterator rIter = requests.values().iterator(); while (rIter.hasNext()) { ! EventRequest request = (EventRequest) rIter.next(); ! if (request.matches(event)) ! interestedEvents.add(request); } EventRequest[] r = new EventRequest[interestedEvents.size()]; --- 172,180 ---- Iterator rIter = requests.values().iterator(); while (rIter.hasNext()) { ! EventRequest request = (EventRequest) rIter.next(); ! if (request.matches(event)) ! interestedEvents.add(request); } EventRequest[] r = new EventRequest[interestedEvents.size()]; *************** public class EventManager *** 205,212 **** requests = (Hashtable) _requests.get (kind); if (requests == null) { ! // Did not get a valid event type ! throw new InvalidEventTypeException (request.getEventKind ()); } // Register the event with the VM --- 205,212 ---- requests = (Hashtable) _requests.get (kind); if (requests == null) { ! // Did not get a valid event type ! throw new InvalidEventTypeException (request.getEventKind ()); } // Register the event with the VM *************** public class EventManager *** 229,244 **** requests = (Hashtable) _requests.get (new Byte (kind)); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException ("invalid event kind: " + kind); } Integer iid = new Integer (id); EventRequest request = (EventRequest) requests.get (iid); if (request != null) { ! VMVirtualMachine.unregisterEvent (request); ! requests.remove (iid); } } --- 229,244 ---- requests = (Hashtable) _requests.get (new Byte (kind)); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException ("invalid event kind: " + kind); } Integer iid = new Integer (id); EventRequest request = (EventRequest) requests.get (iid); if (request != null) { ! VMVirtualMachine.unregisterEvent (request); ! requests.remove (iid); } } *************** public class EventManager *** 255,262 **** Hashtable requests = (Hashtable) _requests.get (new Byte (kind)); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException ("invalid event kind: " + kind); } VMVirtualMachine.clearEvents (kind); --- 255,262 ---- Hashtable requests = (Hashtable) _requests.get (new Byte (kind)); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException ("invalid event kind: " + kind); } VMVirtualMachine.clearEvents (kind); *************** public class EventManager *** 277,284 **** Hashtable requests = (Hashtable) _requests.get (new Byte (kind)); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException ("invalid event kind: " + kind); } return (EventRequest) requests.get (new Integer (id)); --- 277,284 ---- Hashtable requests = (Hashtable) _requests.get (new Byte (kind)); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException ("invalid event kind: " + kind); } return (EventRequest) requests.get (new Integer (id)); *************** public class EventManager *** 296,305 **** Hashtable requests = (Hashtable) _requests.get (new Byte (kind)); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException ("invalid event kind: " + kind); } ! return requests.values (); } } --- 296,305 ---- Hashtable requests = (Hashtable) _requests.get (new Byte (kind)); if (requests == null) { ! // Did not get a valid event type ! throw new IllegalArgumentException ("invalid event kind: " + kind); } ! return requests.values (); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/EventRequest.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/EventRequest.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/EventRequest.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/EventRequest.java Tue Jan 11 19:46:05 2011 *************** public class EventRequest *** 88,100 **** /** * User-defined event */ ! public static final byte EVENT_USER_DEFINED = JdwpConstants.EventKind.USER_DEFINED; /** * Thread start event */ ! public static final byte EVENT_THREAD_START = JdwpConstants.EventKind.THREAD_START; /** --- 88,100 ---- /** * User-defined event */ ! public static final byte EVENT_USER_DEFINED = JdwpConstants.EventKind.USER_DEFINED; /** * Thread start event */ ! public static final byte EVENT_THREAD_START = JdwpConstants.EventKind.THREAD_START; /** *************** public class EventRequest *** 142,148 **** /** * Method exit event */ ! public static final byte EVENT_METHOD_EXIT = JdwpConstants.EventKind.METHOD_EXIT; /** --- 142,148 ---- /** * Method exit event */ ! public static final byte EVENT_METHOD_EXIT = JdwpConstants.EventKind.METHOD_EXIT; /** *************** public class EventRequest *** 165,171 **** /** * Do not suspend any threads */ ! public static final byte SUSPEND_NONE = JdwpConstants.SuspendPolicy.NONE; /** --- 165,171 ---- /** * Do not suspend any threads */ ! public static final byte SUSPEND_NONE = JdwpConstants.SuspendPolicy.NONE; /** *************** public class EventRequest *** 207,213 **** _filters = new LinkedList (); synchronized (_idLock) { ! _id = ++_last_id; } _kind = kind; _suspendPolicy = suspendPolicy; --- 207,213 ---- _filters = new LinkedList (); synchronized (_idLock) { ! _id = ++_last_id; } _kind = kind; _suspendPolicy = suspendPolicy; *************** public class EventRequest *** 243,317 **** Class clazz = filter.getClass (); if (clazz == ClassExcludeFilter.class) { ! if (_kind == EVENT_THREAD_START ! || _kind == EVENT_THREAD_END) ! valid = false; } else if (clazz == ClassMatchFilter.class) { ! if (_kind == EVENT_THREAD_START ! || _kind == EVENT_THREAD_END) ! valid = false; } else if (clazz == ClassOnlyFilter.class) { ! if (_kind == EVENT_CLASS_UNLOAD ! || _kind == EVENT_THREAD_START ! || _kind == EVENT_THREAD_END) ! valid = false; } else if (clazz == ConditionalFilter.class) { ! // JDWP 1.4 does not say much about this } else if (clazz == CountFilter.class) { ! // may be used with any event } else if (clazz == ExceptionOnlyFilter.class) { ! if (_kind != EVENT_EXCEPTION) ! valid = false; } else if (clazz == FieldOnlyFilter.class) { ! if (_kind != EVENT_FIELD_ACCESS ! && _kind != EVENT_FIELD_MODIFY) ! valid = false; } else if (clazz == InstanceOnlyFilter.class) { ! if (_kind == EVENT_CLASS_PREPARE ! || _kind == EVENT_CLASS_UNLOAD ! || _kind == EVENT_THREAD_START ! || _kind == EVENT_THREAD_END) ! valid = false; } else if (clazz == LocationOnlyFilter.class) { ! if (_kind != EVENT_BREAKPOINT ! && _kind != EVENT_FIELD_ACCESS ! && _kind != EVENT_FIELD_MODIFY ! && _kind != EVENT_SINGLE_STEP ! && _kind != EVENT_EXCEPTION) ! valid = false; } else if (clazz == StepFilter.class) { ! if (_kind != EVENT_SINGLE_STEP) ! valid = false; } else if (clazz == ThreadOnlyFilter.class) { ! if (_kind == EVENT_CLASS_UNLOAD) ! valid = false; } if (!valid) { ! String msg = ("cannot use " + filter.getClass ().getName () ! + " with class unload events"); ! throw new JdwpIllegalArgumentException (msg); } // Add filter to list --- 243,317 ---- Class clazz = filter.getClass (); if (clazz == ClassExcludeFilter.class) { ! if (_kind == EVENT_THREAD_START ! || _kind == EVENT_THREAD_END) ! valid = false; } else if (clazz == ClassMatchFilter.class) { ! if (_kind == EVENT_THREAD_START ! || _kind == EVENT_THREAD_END) ! valid = false; } else if (clazz == ClassOnlyFilter.class) { ! if (_kind == EVENT_CLASS_UNLOAD ! || _kind == EVENT_THREAD_START ! || _kind == EVENT_THREAD_END) ! valid = false; } else if (clazz == ConditionalFilter.class) { ! // JDWP 1.4 does not say much about this } else if (clazz == CountFilter.class) { ! // may be used with any event } else if (clazz == ExceptionOnlyFilter.class) { ! if (_kind != EVENT_EXCEPTION) ! valid = false; } else if (clazz == FieldOnlyFilter.class) { ! if (_kind != EVENT_FIELD_ACCESS ! && _kind != EVENT_FIELD_MODIFY) ! valid = false; } else if (clazz == InstanceOnlyFilter.class) { ! if (_kind == EVENT_CLASS_PREPARE ! || _kind == EVENT_CLASS_UNLOAD ! || _kind == EVENT_THREAD_START ! || _kind == EVENT_THREAD_END) ! valid = false; } else if (clazz == LocationOnlyFilter.class) { ! if (_kind != EVENT_BREAKPOINT ! && _kind != EVENT_FIELD_ACCESS ! && _kind != EVENT_FIELD_MODIFY ! && _kind != EVENT_SINGLE_STEP ! && _kind != EVENT_EXCEPTION) ! valid = false; } else if (clazz == StepFilter.class) { ! if (_kind != EVENT_SINGLE_STEP) ! valid = false; } else if (clazz == ThreadOnlyFilter.class) { ! if (_kind == EVENT_CLASS_UNLOAD) ! valid = false; } if (!valid) { ! String msg = ("cannot use " + filter.getClass ().getName () ! + " with class unload events"); ! throw new JdwpIllegalArgumentException (msg); } // Add filter to list *************** public class EventRequest *** 373,381 **** Iterator iter = _filters.iterator (); while (iter.hasNext ()) { ! IEventFilter filter = (IEventFilter) iter.next (); ! if (!filter.matches (theEvent)) ! matches = false; } return matches; --- 373,381 ---- Iterator iter = _filters.iterator (); while (iter.hasNext ()) { ! IEventFilter filter = (IEventFilter) iter.next (); ! if (!filter.matches (theEvent)) ! matches = false; } return matches; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 50,56 **** /** * Notification from the VM that an exception has occurred along with where it * occurred, and if and where it was caught. ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class ExceptionEvent --- 50,56 ---- /** * Notification from the VM that an exception has occurred along with where it * occurred, and if and where it was caught. ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class ExceptionEvent *************** public class ExceptionEvent *** 58,64 **** { //object instance private Object _instance; ! // the exception thrown private Throwable _exception; --- 58,64 ---- { //object instance private Object _instance; ! // the exception thrown private Throwable _exception; *************** public class ExceptionEvent *** 67,83 **** // the location where the exception was thrown private Location _location; ! //the location where the exception was caught private Location _catchLocation; ! //the class where the exeption was thrown private Class _klass; /** * Constructs a new ExceptionEvent where the exception was * caught. ! * * @param exception the throwable object that generated the event * @param thread the thread where the exception occurred * @param location the location where the exception was thrown --- 67,83 ---- // the location where the exception was thrown private Location _location; ! //the location where the exception was caught private Location _catchLocation; ! //the class where the exeption was thrown private Class _klass; /** * Constructs a new ExceptionEvent where the exception was * caught. ! * * @param exception the throwable object that generated the event * @param thread the thread where the exception occurred * @param location the location where the exception was thrown *************** public class ExceptionEvent *** 99,105 **** /** * Returns a specific filtering parameter for this event. Valid types are * thread, location, and catchLocation. ! * * @param type the type of parameter desired * @returns the desired parameter or null */ --- 99,105 ---- /** * Returns a specific filtering parameter for this event. Valid types are * thread, location, and catchLocation. ! * * @param type the type of parameter desired * @returns the desired parameter or null */ *************** public class ExceptionEvent *** 123,133 **** return null; } ! /** * Sets the catchLocation, used for exceptions that are caught in different * stack frames from where they are thrown. ! * * @param catchLoc the location of the catch */ public void setCatchLoc(Location catchLoc) --- 123,133 ---- return null; } ! /** * Sets the catchLocation, used for exceptions that are caught in different * stack frames from where they are thrown. ! * * @param catchLoc the location of the catch */ public void setCatchLoc(Location catchLoc) *************** public class ExceptionEvent *** 137,147 **** /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to * @throws IOException */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); --- 137,147 ---- /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to * @throws IOException */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/MethodEntryEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/MethodEntryEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/MethodEntryEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/MethodEntryEvent.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 48,54 **** /** * Notification from the VM that that a method has been invoked ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class MethodEntryEvent --- 48,54 ---- /** * Notification from the VM that that a method has been invoked ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class MethodEntryEvent *************** public class MethodEntryEvent *** 65,71 **** /** * Constructs a new MethodEntryEvent ! * * @param thread the thread where the exception occurred * @param location the location single stepped to * @param instance instance from which the method was called --- 65,71 ---- /** * Constructs a new MethodEntryEvent ! * * @param thread the thread where the exception occurred * @param location the location single stepped to * @param instance instance from which the method was called *************** public class MethodEntryEvent *** 81,87 **** /** * Returns a specific filtering parameter for this event. Valid types are * thread and location ! * * @param type the type of parameter desired * @returns the desired parameter or null */ --- 81,87 ---- /** * Returns a specific filtering parameter for this event. Valid types are * thread and location ! * * @param type the type of parameter desired * @returns the desired parameter or null */ *************** public class MethodEntryEvent *** 101,111 **** /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to * @throws IOException */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); --- 101,111 ---- /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to * @throws IOException */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/MethodExitEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/MethodExitEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/MethodExitEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/MethodExitEvent.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 48,54 **** /** * Notification from the VM that that a method has returned ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class MethodExitEvent --- 48,54 ---- /** * Notification from the VM that that a method has returned ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class MethodExitEvent *************** public class MethodExitEvent *** 65,71 **** /** * Constructs a new MethodExitEvent ! * * @param thread the thread where the exception occurred * @param location the location single stepped to * @param instance the instance from which the method was called --- 65,71 ---- /** * Constructs a new MethodExitEvent ! * * @param thread the thread where the exception occurred * @param location the location single stepped to * @param instance the instance from which the method was called *************** public class MethodExitEvent *** 81,87 **** /** * Returns a specific filtering parameter for this event. Valid types are * thread and location ! * * @param type the type of parameter desired * @returns the desired parameter or null */ --- 81,87 ---- /** * Returns a specific filtering parameter for this event. Valid types are * thread and location ! * * @param type the type of parameter desired * @returns the desired parameter or null */ *************** public class MethodExitEvent *** 99,109 **** /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to * @throws IOException */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); --- 99,109 ---- /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to * @throws IOException */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/SingleStepEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/SingleStepEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/SingleStepEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/SingleStepEvent.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 51,57 **** /** * Notification from the VM that a single step has compleated including the * thread and location stepped to ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class SingleStepEvent --- 51,57 ---- /** * Notification from the VM that a single step has compleated including the * thread and location stepped to ! * * @author Kyle Galloway (kgallowa@redhat.com) */ public class SingleStepEvent *************** public class SingleStepEvent *** 68,74 **** /** * Constructs a new SingleStepEvent ! * * @param thread the thread where the exception occurred * @param location the location single stepped to * @param instance the instance in which the single step occurred --- 68,74 ---- /** * Constructs a new SingleStepEvent ! * * @param thread the thread where the exception occurred * @param location the location single stepped to * @param instance the instance in which the single step occurred *************** public class SingleStepEvent *** 84,90 **** /** * Returns a specific filtering parameter for this event. Valid types are * thread and location ! * * @param type the type of parameter desired * @returns the desired parameter or null */ --- 84,90 ---- /** * Returns a specific filtering parameter for this event. Valid types are * thread and location ! * * @param type the type of parameter desired * @returns the desired parameter or null */ *************** public class SingleStepEvent *** 104,114 **** /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to * @throws IOException */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); --- 104,114 ---- /** * Writes the event to the given stream ! * * @param outStream the output stream to write the event to * @throws IOException */ ! protected void _writeData(DataOutputStream outStream) throws IOException { VMIdManager idm = VMIdManager.getDefault(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/ThreadEndEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/ThreadEndEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/ThreadEndEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/ThreadEndEvent.java Tue Jan 11 19:46:05 2011 *************** public class ThreadEndEvent *** 102,105 **** tid.write (outStream); } } - --- 102,104 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/VmDeathEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/VmDeathEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/VmDeathEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/VmDeathEvent.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 46,52 **** /** * Event notifying the debugger that the virtual machine has terminated. ! * * @author Keith Seitz (keiths@redhat.com) */ public class VmDeathEvent --- 46,52 ---- /** * Event notifying the debugger that the virtual machine has terminated. ! * * @author Keith Seitz (keiths@redhat.com) */ public class VmDeathEvent diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/VmInitEvent.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/VmInitEvent.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/VmInitEvent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/VmInitEvent.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 50,56 **** * "Notification of initialization of a target VM. This event is * received before the main thread is started and before any application * code has been executed." -- JDWP 1.4.2 ! * * @author Keith Seitz (keiths@redhat.com) */ public class VmInitEvent --- 50,56 ---- * "Notification of initialization of a target VM. This event is * received before the main thread is started and before any application * code has been executed." -- JDWP 1.4.2 ! * * @author Keith Seitz (keiths@redhat.com) */ public class VmInitEvent diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.jdwp.event.Event; *** 43,49 **** import gnu.classpath.jdwp.exception.InvalidStringException; /** ! * An event filter which excludes events matching a * specified class pattern (exact match or start/end with "*"). * * @author Keith Seitz (keiths@redhat.com) --- 43,49 ---- import gnu.classpath.jdwp.exception.InvalidStringException; /** ! * An event filter which excludes events matching a * specified class pattern (exact match or start/end with "*"). * * @author Keith Seitz (keiths@redhat.com) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassMatchFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassMatchFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassMatchFilter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassMatchFilter.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.jdwp.event.Event; *** 43,49 **** import gnu.classpath.jdwp.exception.InvalidStringException; /** ! * An event filter which includes events matching a * specified class pattern (exact match or start/end with "*"). * * @author Keith Seitz (keiths@redhat.com) --- 43,49 ---- import gnu.classpath.jdwp.exception.InvalidStringException; /** ! * An event filter which includes events matching a * specified class pattern (exact match or start/end with "*"). * * @author Keith Seitz (keiths@redhat.com) *************** public class ClassMatchFilter *** 66,74 **** int index = pattern.indexOf ('*'); if (index != -1 && index != 0 && index != (pattern.length () - 1)) { ! // '*' must be first char or last char ! throw new InvalidStringException ("pattern may be an exact match or " ! + "start/end with \"*\""); } _pattern = pattern; } --- 66,74 ---- int index = pattern.indexOf ('*'); if (index != -1 && index != 0 && index != (pattern.length () - 1)) { ! // '*' must be first char or last char ! throw new InvalidStringException ("pattern may be an exact match or " ! + "start/end with \"*\""); } _pattern = pattern; } *************** public class ClassMatchFilter *** 93,110 **** Object type = event.getParameter (Event.EVENT_CLASS); if (type != null) { ! Class eventClass = (Class) type; ! String name = eventClass.getName (); ! ! if (_pattern.startsWith ("*")) ! return name.endsWith (_pattern.substring (1)); ! else if (_pattern.endsWith ("*")) ! { ! int end = _pattern.length () - 1; ! return name.startsWith (_pattern.substring (0, end)); ! } ! else ! return name.matches (_pattern); } return false; --- 93,110 ---- Object type = event.getParameter (Event.EVENT_CLASS); if (type != null) { ! Class eventClass = (Class) type; ! String name = eventClass.getName (); ! ! if (_pattern.startsWith ("*")) ! return name.endsWith (_pattern.substring (1)); ! else if (_pattern.endsWith ("*")) ! { ! int end = _pattern.length () - 1; ! return name.startsWith (_pattern.substring (0, end)); ! } ! else ! return name.matches (_pattern); } return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.java Tue Jan 11 19:46:05 2011 *************** public class ClassOnlyFilter *** 90,107 **** Object type = event.getParameter (Event.EVENT_CLASS); if (type != null) { ! try ! { ! Class clazz = _id.getType (); ! Class eventClass = (Class) type; ! if (clazz.isAssignableFrom (eventClass)) ! return true; ! } ! catch (InvalidClassException ice) ! { ! // class is no longer valid ! return false; ! } } return false; --- 90,107 ---- Object type = event.getParameter (Event.EVENT_CLASS); if (type != null) { ! try ! { ! Class clazz = _id.getType (); ! Class eventClass = (Class) type; ! if (clazz.isAssignableFrom (eventClass)) ! return true; ! } ! catch (InvalidClassException ice) ! { ! // class is no longer valid ! return false; ! } } return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.jdwp.id.ReferenceTy *** 46,52 **** /** * Restricts reported exceptions by their class and whether they are caught * or uncaught. ! * * This modifier can be used with exception event kinds only. * * @author Keith Seitz (keiths@redhat.com) --- 46,52 ---- /** * Restricts reported exceptions by their class and whether they are caught * or uncaught. ! * * This modifier can be used with exception event kinds only. * * @author Keith Seitz (keiths@redhat.com) *************** public class ExceptionOnlyFilter *** 67,73 **** * @throws InvalidClassException if refid is invalid */ public ExceptionOnlyFilter (ReferenceTypeId refId, boolean caught, ! boolean uncaught) throws InvalidClassException { if (refId != null && refId.getReference().get() == null) --- 67,73 ---- * @throws InvalidClassException if refid is invalid */ public ExceptionOnlyFilter (ReferenceTypeId refId, boolean caught, ! boolean uncaught) throws InvalidClassException { if (refId != null && refId.getReference().get() == null) *************** public class ExceptionOnlyFilter *** 88,97 **** return _refId; } ! /** * Does the given event match the filter? ! * * @param event the Event to scrutinize */ public boolean matches(Event event) --- 88,97 ---- return _refId; } ! /** * Does the given event match the filter? ! * * @param event the Event to scrutinize */ public boolean matches(Event event) *************** public class ExceptionOnlyFilter *** 103,109 **** { try { ! Class klass = (Class) event.getParameter(Event.EVENT_EXCEPTION_CLASS); classMatch = klass == _refId.getType(); } --- 103,109 ---- { try { ! Class klass = (Class) event.getParameter(Event.EVENT_EXCEPTION_CLASS); classMatch = klass == _refId.getType(); } *************** public class ExceptionOnlyFilter *** 112,123 **** classMatch = false; } } ! // check against the caught and uncaught options ! Boolean caught = (Boolean) event.getParameter(Event.EVENT_EXCEPTION_CAUGHT); return classMatch && ((caught.booleanValue()) ? _caught : _uncaught); } ! } --- 112,123 ---- classMatch = false; } } ! // check against the caught and uncaught options ! Boolean caught = (Boolean) event.getParameter(Event.EVENT_EXCEPTION_CAUGHT); return classMatch && ((caught.booleanValue()) ? _caught : _uncaught); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.jdwp.id.ReferenceTy *** 46,52 **** /** * Restricts reported events to those that occur for a given field. ! * * This modifier can be used with field access and field modification event * kinds only. * --- 46,52 ---- /** * Restricts reported events to those that occur for a given field. ! * * This modifier can be used with field access and field modification event * kinds only. * *************** public class FieldOnlyFilter *** 80,86 **** } /** ! * Returns the class in which the field is declared * * @return the class's id */ --- 80,86 ---- } /** ! * Returns the class in which the field is declared * * @return the class's id */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.jdwp.id.ObjectId; *** 46,52 **** /** * Restricts reported events to those whose active 'this' object is the * given object. Match value is the null object for static methods. ! * * This modifier can be used with any event kind except class prepare, * class unload, thread start, and thread end. Introduced in JDWP version 1.4. * --- 46,52 ---- /** * Restricts reported events to those whose active 'this' object is the * given object. Match value is the null object for static methods. ! * * This modifier can be used with any event kind except class prepare, * class unload, thread start, and thread end. Introduced in JDWP version 1.4. * *************** public class InstanceOnlyFilter *** 92,99 **** Object eventInstance = event.getParameter (Event.EVENT_INSTANCE); if (eventInstance != null) { ! Object myInstance = _instance.getReference().get (); ! return ((myInstance != null) && (myInstance == eventInstance)); } return false; --- 92,99 ---- Object eventInstance = event.getParameter (Event.EVENT_INSTANCE); if (eventInstance != null) { ! Object myInstance = _instance.getReference().get (); ! return ((myInstance != null) && (myInstance == eventInstance)); } return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.jdwp.id.ThreadId; *** 51,59 **** * This "filter" is not really a filter. It is simply a way to communicate * stepping information in a convenient way between the JDWP backend and * the virtual machine. ! * * Consequently, this "filter" always matches. ! * * @author Keith Seitz (keiths@redhat.com) */ public class StepFilter --- 51,59 ---- * This "filter" is not really a filter. It is simply a way to communicate * stepping information in a convenient way between the JDWP backend and * the virtual machine. ! * * Consequently, this "filter" always matches. ! * * @author Keith Seitz (keiths@redhat.com) */ public class StepFilter diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java Tue Jan 11 19:46:05 2011 *************** public class ThreadOnlyFilter *** 91,99 **** Object thread = event.getParameter (Event.EVENT_THREAD); if (thread != null) { ! Thread eventThread = (Thread) thread; ! Thread myThread = (Thread) _tid.getReference().get (); ! return (eventThread == myThread); } return false; --- 91,99 ---- Object thread = event.getParameter (Event.EVENT_THREAD); if (thread != null) { ! Thread eventThread = (Thread) thread; ! Thread myThread = (Thread) _tid.getReference().get (); ! return (eventThread == myThread); } return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidClassException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidClassException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidClassException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidClassException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidClassException *** 53,59 **** public InvalidClassException (long id) { super (JdwpConstants.Error.INVALID_CLASS, ! "invalid class id (" + id + ")"); } public InvalidClassException (Throwable t) --- 53,59 ---- public InvalidClassException (long id) { super (JdwpConstants.Error.INVALID_CLASS, ! "invalid class id (" + id + ")"); } public InvalidClassException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidClassLoaderException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidClassLoaderException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidClassLoaderException.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidClassLoaderException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidClassLoaderException *** 52,58 **** public InvalidClassLoaderException (long id) { super (JdwpConstants.Error.INVALID_CLASS_LOADER, ! "invalid class loader (" + id + ")"); } public InvalidClassLoaderException (Throwable t) --- 52,58 ---- public InvalidClassLoaderException (long id) { super (JdwpConstants.Error.INVALID_CLASS_LOADER, ! "invalid class loader (" + id + ")"); } public InvalidClassLoaderException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidEventTypeException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidEventTypeException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidEventTypeException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidEventTypeException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidEventTypeException *** 53,59 **** public InvalidEventTypeException (byte kind) { super (JdwpConstants.Error.INVALID_EVENT_TYPE, ! "invalid event type (" + kind + ")"); } public InvalidEventTypeException (Throwable t) --- 53,59 ---- public InvalidEventTypeException (byte kind) { super (JdwpConstants.Error.INVALID_EVENT_TYPE, ! "invalid event type (" + kind + ")"); } public InvalidEventTypeException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidFieldException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidFieldException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidFieldException.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidFieldException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidFieldException *** 53,59 **** public InvalidFieldException (long id) { super (JdwpConstants.Error.INVALID_FIELDID, ! "invalid field id (" + id + ")"); } public InvalidFieldException (Throwable t) --- 53,59 ---- public InvalidFieldException (long id) { super (JdwpConstants.Error.INVALID_FIELDID, ! "invalid field id (" + id + ")"); } public InvalidFieldException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidFrameException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidFrameException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidFrameException.java Thu Feb 8 18:44:37 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidFrameException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidFrameException *** 52,59 **** { public InvalidFrameException(long id) { ! super(JdwpConstants.Error.INVALID_FRAMEID, ! "invalid frame id (" + id + ")"); } public InvalidFrameException(String msg) --- 52,59 ---- { public InvalidFrameException(long id) { ! super(JdwpConstants.Error.INVALID_FRAMEID, ! "invalid frame id (" + id + ")"); } public InvalidFrameException(String msg) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidLocationException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidLocationException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidLocationException.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidLocationException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidLocationException *** 52,58 **** public InvalidLocationException (/*something*/) { super (JdwpConstants.Error.INVALID_LOCATION, ! "invalid location (" + "something" + ")"); } public InvalidLocationException (Throwable t) --- 52,58 ---- public InvalidLocationException (/*something*/) { super (JdwpConstants.Error.INVALID_LOCATION, ! "invalid location (" + "something" + ")"); } public InvalidLocationException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidMethodException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidMethodException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidMethodException.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidMethodException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidMethodException *** 53,59 **** public InvalidMethodException (long id) { super (JdwpConstants.Error.INVALID_METHODID, ! "invalid method id (" + id + ")"); } public InvalidMethodException (Throwable t) --- 53,59 ---- public InvalidMethodException (long id) { super (JdwpConstants.Error.INVALID_METHODID, ! "invalid method id (" + id + ")"); } public InvalidMethodException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidObjectException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidObjectException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidObjectException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidObjectException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidObjectException *** 53,59 **** public InvalidObjectException (long id) { super (JdwpConstants.Error.INVALID_OBJECT, ! "invalid object id (" + id + ")"); } public InvalidObjectException (Throwable t) --- 53,59 ---- public InvalidObjectException (long id) { super (JdwpConstants.Error.INVALID_OBJECT, ! "invalid object id (" + id + ")"); } public InvalidObjectException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidSlotException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidSlotException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidSlotException.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidSlotException.java Tue Jan 11 19:46:05 2011 *************** package gnu.classpath.jdwp.exception; *** 42,48 **** import gnu.classpath.jdwp.JdwpConstants; /** ! * An exception thrown when an invalid Slot id is used by the debugger * (i.e. when trying to access a variable slot which doesn't exist). * * @author Kyle Galloway (kgallowa@redhat.com) --- 42,48 ---- import gnu.classpath.jdwp.JdwpConstants; /** ! * An exception thrown when an invalid Slot id is used by the debugger * (i.e. when trying to access a variable slot which doesn't exist). * * @author Kyle Galloway (kgallowa@redhat.com) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidStringException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidStringException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidStringException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidStringException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidStringException *** 52,64 **** public InvalidStringException (String str) { super (JdwpConstants.Error.INVALID_STRING, ! "invalid string (" + str + ")"); } public InvalidStringException (long id) { super (JdwpConstants.Error.INVALID_STRING, ! "invalid string id (" + id + ")"); } public InvalidStringException (Throwable t) --- 52,64 ---- public InvalidStringException (String str) { super (JdwpConstants.Error.INVALID_STRING, ! "invalid string (" + str + ")"); } public InvalidStringException (long id) { super (JdwpConstants.Error.INVALID_STRING, ! "invalid string id (" + id + ")"); } public InvalidStringException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidThreadException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidThreadException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidThreadException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidThreadException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidThreadException *** 53,59 **** public InvalidThreadException (long id) { super (JdwpConstants.Error.INVALID_THREAD, ! "invalid thread id (" + id + ")"); } public InvalidThreadException (Throwable t) --- 53,59 ---- public InvalidThreadException (long id) { super (JdwpConstants.Error.INVALID_THREAD, ! "invalid thread id (" + id + ")"); } public InvalidThreadException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidThreadGroupException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidThreadGroupException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/InvalidThreadGroupException.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/InvalidThreadGroupException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidThreadGroupException *** 53,59 **** public InvalidThreadGroupException (long id) { super (JdwpConstants.Error.INVALID_THREAD_GROUP, ! "invalid thread group id (" + id + ")"); } public InvalidThreadGroupException (Throwable t) --- 53,59 ---- public InvalidThreadGroupException (long id) { super (JdwpConstants.Error.INVALID_THREAD_GROUP, ! "invalid thread group id (" + id + ")"); } public InvalidThreadGroupException (Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/NativeMethodException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/NativeMethodException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/NativeMethodException.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/NativeMethodException.java Tue Jan 11 19:46:05 2011 *************** public class NativeMethodException *** 53,59 **** public NativeMethodException(long id) { super(JdwpConstants.Error.NATIVE_METHOD, ! "invalid method id (" + id + ")"); } public NativeMethodException(Throwable t) --- 53,59 ---- public NativeMethodException(long id) { super(JdwpConstants.Error.NATIVE_METHOD, ! "invalid method id (" + id + ")"); } public NativeMethodException(Throwable t) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/NotImplementedException.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/NotImplementedException.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/exception/NotImplementedException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/exception/NotImplementedException.java Tue Jan 11 19:46:05 2011 *************** public class NotImplementedException *** 53,58 **** public NotImplementedException (String feature) { super (JdwpConstants.Error.NOT_IMPLEMENTED, ! feature + " is not yet implemented"); } } --- 53,58 ---- public NotImplementedException (String feature) { super (JdwpConstants.Error.NOT_IMPLEMENTED, ! feature + " is not yet implemented"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/id/JdwpId.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/id/JdwpId.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/id/JdwpId.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/id/JdwpId.java Tue Jan 11 19:46:05 2011 *************** public abstract class JdwpId *** 119,125 **** /** * Compares two object ids for equality. Two object ids * are equal if they point to the same type and contain to ! * the same id number. */ public boolean equals (JdwpId id) { --- 119,125 ---- /** * Compares two object ids for equality. Two object ids * are equal if they point to the same type and contain to ! * the same id number. */ public boolean equals (JdwpId id) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/id/NullObjectId.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/id/NullObjectId.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/id/NullObjectId.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/id/NullObjectId.java Tue Jan 11 19:46:05 2011 *************** public class NullObjectId *** 57,63 **** * The object class that this id represents */ public static final Class typeClass = NullObject.class; ! /** * Constructs a new NullObjectId */ --- 57,63 ---- * The object class that this id represents */ public static final Class typeClass = NullObject.class; ! /** * Constructs a new NullObjectId */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 56,62 **** /** * A class representing the ArrayReference Command Set. ! * * @author Aaron Luchko */ public class ArrayReferenceCommandSet --- 56,62 ---- /** * A class representing the ArrayReference Command Set. ! * * @author Aaron Luchko */ public class ArrayReferenceCommandSet diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,6 **** /* ArrayTypeCommandSet.java -- class to implement the ArrayType Command Set Copyright (C) 2005 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,6 ---- /* ArrayTypeCommandSet.java -- class to implement the ArrayType Command Set Copyright (C) 2005 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** import java.nio.ByteBuffer; *** 52,58 **** /** * A class representing the ArrayType Command Set. ! * * @author Aaron Luchko */ public class ArrayTypeCommandSet --- 52,58 ---- /** * A class representing the ArrayType Command Set. ! * * @author Aaron Luchko */ public class ArrayTypeCommandSet diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClassLoaderReferenceCommandSet.java -- class to implement the ClassLoaderReference Command Set Copyright (C) 2005 Free Software Foundation --- 1,4 ---- ! /* ClassLoaderReferenceCommandSet.java -- class to implement the ClassLoaderReference Command Set Copyright (C) 2005 Free Software Foundation *************** import java.util.Iterator; *** 56,62 **** /** * A class representing the ClassLoaderReference Command Set. ! * * @author Aaron Luchko */ public class ClassLoaderReferenceCommandSet --- 56,62 ---- /** * A class representing the ClassLoaderReference Command Set. ! * * @author Aaron Luchko */ public class ClassLoaderReferenceCommandSet diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClassObjectReferenceCommandSet.java -- class to implement the ClassObjectReference Command Set Copyright (C) 2005 Free Software Foundation --- 1,4 ---- ! /* ClassObjectReferenceCommandSet.java -- class to implement the ClassObjectReference Command Set Copyright (C) 2005 Free Software Foundation *************** import java.nio.ByteBuffer; *** 52,58 **** /** * A class representing the ClassObjectReference Command Set. ! * * @author Aaron Luchko */ public class ClassObjectReferenceCommandSet --- 52,58 ---- /** * A class representing the ClassObjectReference Command Set. ! * * @author Aaron Luchko */ public class ClassObjectReferenceCommandSet diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ClassTypeCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ClassTypeCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ClassTypeCommandSet.java Wed Jun 20 20:30:34 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ClassTypeCommandSet.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 61,67 **** /** * A class representing the ClassType Command Set. ! * * @author Aaron Luchko */ public class ClassTypeCommandSet --- 61,67 ---- /** * A class representing the ClassType Command Set. ! * * @author Aaron Luchko */ public class ClassTypeCommandSet *************** public class ClassTypeCommandSet *** 109,118 **** Class superClazz = clazz.getSuperclass(); if (superClazz == null) { ! os.writeLong(0L); } else { ! ReferenceTypeId clazzId = idMan.getReferenceTypeId(superClazz); ! clazzId.write(os); } } --- 109,118 ---- Class superClazz = clazz.getSuperclass(); if (superClazz == null) { ! os.writeLong(0L); } else { ! ReferenceTypeId clazzId = idMan.getReferenceTypeId(superClazz); ! clazzId.write(os); } } *************** public class ClassTypeCommandSet *** 198,205 **** int invokeOpts = bb.getInt(); MethodResult mr = VMVirtualMachine.executeMethod(null, thread, ! clazz, method, ! values, invokeOpts); return mr; } } --- 198,205 ---- int invokeOpts = bb.getInt(); MethodResult mr = VMVirtualMachine.executeMethod(null, thread, ! clazz, method, ! values, invokeOpts); return mr; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/CommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/CommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/CommandSet.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/CommandSet.java Tue Jan 11 19:46:05 2011 *************** public abstract class CommandSet *** 61,67 **** /** * Runs the given command with the data in distr and writes the data for the * reply packet to ostr. ! * * @param bb holds the data portion of the Command Packet * @param os data portion of the Reply Packet will be written here * @param command the command field of the Command Packet --- 61,67 ---- /** * Runs the given command with the data in distr and writes the data for the * reply packet to ostr. ! * * @param bb holds the data portion of the Command Packet * @param os data portion of the Reply Packet will be written here * @param command the command field of the Command Packet *************** public abstract class CommandSet *** 69,74 **** * @throws JdwpException command wasn't carried out successfully */ public abstract boolean runCommand(ByteBuffer bb, DataOutputStream os, ! byte command) throws JdwpException; } --- 69,74 ---- * @throws JdwpException command wasn't carried out successfully */ public abstract boolean runCommand(ByteBuffer bb, DataOutputStream os, ! byte command) throws JdwpException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/EventRequestCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/EventRequestCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/EventRequestCommandSet.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/EventRequestCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,7 **** /* EventRequestCommandSet.java -- class to implement the EventRequest Command Set Copyright (C) 2005, 2007 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,7 ---- /* EventRequestCommandSet.java -- class to implement the EventRequest Command Set Copyright (C) 2005, 2007 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** import java.nio.ByteBuffer; *** 70,76 **** /** * A class representing the EventRequest Command Set. ! * * @author Aaron Luchko */ public class EventRequestCommandSet --- 70,76 ---- /** * A class representing the EventRequest Command Set. ! * * @author Aaron Luchko */ public class EventRequestCommandSet *************** public class EventRequestCommandSet *** 93,99 **** executeClearAllBreakpoints(bb, os); break; default: ! throw new NotImplementedException("Command " + command + " not found in EventRequest Reference Command Set."); } } --- 93,99 ---- executeClearAllBreakpoints(bb, os); break; default: ! throw new NotImplementedException("Command " + command + " not found in EventRequest Reference Command Set."); } } *************** public class EventRequestCommandSet *** 116,139 **** switch (eventKind) { ! case JdwpConstants.EventKind.FIELD_ACCESS: ! if (!VMVirtualMachine.canWatchFieldAccess) ! { ! String msg = "watching field accesses is not supported"; ! throw new NotImplementedException(msg); ! } ! break; ! case JdwpConstants.EventKind.FIELD_MODIFICATION: ! if (!VMVirtualMachine.canWatchFieldModification) ! { ! String msg = "watching field modifications is not supported"; ! throw new NotImplementedException(msg); ! } ! break; default: ! // okay } EventRequest eventReq = new EventRequest(eventKind, suspendPolicy); --- 116,139 ---- switch (eventKind) { ! case JdwpConstants.EventKind.FIELD_ACCESS: ! if (!VMVirtualMachine.canWatchFieldAccess) ! { ! String msg = "watching field accesses is not supported"; ! throw new NotImplementedException(msg); ! } ! break; ! case JdwpConstants.EventKind.FIELD_MODIFICATION: ! if (!VMVirtualMachine.canWatchFieldModification) ! { ! String msg = "watching field modifications is not supported"; ! throw new NotImplementedException(msg); ! } ! break; default: ! // okay } EventRequest eventReq = new EventRequest(eventKind, suspendPolicy); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/FieldCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/FieldCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/FieldCommandSet.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/FieldCommandSet.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 46,52 **** /** * A class representing the Field Command Set. ! * * @author Aaron Luchko */ public class FieldCommandSet --- 46,52 ---- /** * A class representing the Field Command Set. ! * * @author Aaron Luchko */ public class FieldCommandSet *************** public class FieldCommandSet *** 55,61 **** /** * There are no commands for this CommandSet at this time so we just throw a * NotImplementedException whenever it's called. ! * * @throws JdwpException An exception will always be thrown */ public boolean runCommand(ByteBuffer bb, DataOutputStream os, byte command) --- 55,61 ---- /** * There are no commands for this CommandSet at this time so we just throw a * NotImplementedException whenever it's called. ! * * @throws JdwpException An exception will always be thrown */ public boolean runCommand(ByteBuffer bb, DataOutputStream os, byte command) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 47,53 **** /** * A class representing the InterfaceType Command Set. ! * * @author Aaron Luchko */ public class InterfaceTypeCommandSet --- 47,53 ---- /** * A class representing the InterfaceType Command Set. ! * * @author Aaron Luchko */ public class InterfaceTypeCommandSet *************** public class InterfaceTypeCommandSet *** 56,62 **** /** * There are no commands for this CommandSet at this time so we just throw a * NotImplementedException whenever it's called. ! * * @throws JdwpException An exception will always be thrown */ public boolean runCommand(ByteBuffer bb, DataOutputStream os, byte command) --- 56,62 ---- /** * There are no commands for this CommandSet at this time so we just throw a * NotImplementedException whenever it's called. ! * * @throws JdwpException An exception will always be thrown */ public boolean runCommand(ByteBuffer bb, DataOutputStream os, byte command) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/MethodCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/MethodCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/MethodCommandSet.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/MethodCommandSet.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 54,60 **** /** * A class representing the Method Command Set. ! * * @author Aaron Luchko */ public class MethodCommandSet --- 54,60 ---- /** * A class representing the Method Command Set. ! * * @author Aaron Luchko */ public class MethodCommandSet *************** public class MethodCommandSet *** 124,131 **** { if (!VMVirtualMachine.canGetBytecodes) { ! String msg = "getting bytecodes is unsupported"; ! throw new NotImplementedException(msg); } ReferenceTypeId id = idMan.readReferenceTypeId(bb); --- 124,131 ---- { if (!VMVirtualMachine.canGetBytecodes) { ! String msg = "getting bytecodes is unsupported"; ! throw new NotImplementedException(msg); } ReferenceTypeId id = idMan.readReferenceTypeId(bb); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 60,66 **** /** * A class representing the ObjectReference Command Set. ! * * @author Aaron Luchko */ public class ObjectReferenceCommandSet --- 60,66 ---- /** * A class representing the ObjectReference Command Set. ! * * @author Aaron Luchko */ public class ObjectReferenceCommandSet *************** public class ObjectReferenceCommandSet *** 139,145 **** { field.setAccessible(true); // Might be a private field Object value = field.get(obj); ! Value val = ValueFactory.createFromObject(value, field.getType()); val.writeTagged(os); } --- 139,145 ---- { field.setAccessible(true); // Might be a private field Object value = field.get(obj); ! Value val = ValueFactory.createFromObject(value, field.getType()); val.writeTagged(os); } *************** public class ObjectReferenceCommandSet *** 191,198 **** { if (!VMVirtualMachine.canGetMonitorInfo) { ! String msg = "getting monitor info not supported"; ! throw new NotImplementedException(msg); } ObjectId oid = idMan.readObjectId(bb); --- 191,198 ---- { if (!VMVirtualMachine.canGetMonitorInfo) { ! String msg = "getting monitor info not supported"; ! throw new NotImplementedException(msg); } ObjectId oid = idMan.readObjectId(bb); *************** public class ObjectReferenceCommandSet *** 223,230 **** int invokeOptions = bb.getInt(); MethodResult mr = VMVirtualMachine.executeMethod(obj, thread, ! clazz, method, ! values, invokeOptions); Throwable exception = mr.getThrownException(); ObjectId eId = idMan.getObjectId(exception); mr.getReturnedValue().writeTagged(os); --- 223,230 ---- int invokeOptions = bb.getInt(); MethodResult mr = VMVirtualMachine.executeMethod(obj, thread, ! clazz, method, ! values, invokeOptions); Throwable exception = mr.getThrownException(); ObjectId eId = idMan.getObjectId(exception); mr.getReturnedValue().writeTagged(os); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/PacketProcessor.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/PacketProcessor.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/PacketProcessor.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/PacketProcessor.java Tue Jan 11 19:46:05 2011 *************** public class PacketProcessor *** 67,76 **** { // The connection to the debugger private JdwpConnection _connection; ! // Shutdown this thread? private boolean _shutdown; ! // A Mapping of the command set (Byte) to the specific CommandSet private CommandSet[] _sets; --- 67,76 ---- { // The connection to the debugger private JdwpConnection _connection; ! // Shutdown this thread? private boolean _shutdown; ! // A Mapping of the command set (Byte) to the specific CommandSet private CommandSet[] _sets; *************** public class PacketProcessor *** 79,85 **** // Output stream around _outputBytes private DataOutputStream _os; ! /** * Constructs a new PacketProcessor object * Connection must be validated before getting here! --- 79,85 ---- // Output stream around _outputBytes private DataOutputStream _os; ! /** * Constructs a new PacketProcessor object * Connection must be validated before getting here! *************** public class PacketProcessor *** 90,97 **** { _connection = con; _shutdown = false; ! ! // MAXIMUM is the value of the largest command set we may receive _sets = new CommandSet[JdwpConstants.CommandSet.MAXIMUM + 1]; _outputBytes = new ByteArrayOutputStream(); _os = new DataOutputStream (_outputBytes); --- 90,97 ---- { _connection = con; _shutdown = false; ! ! // MAXIMUM is the value of the largest command set we may receive _sets = new CommandSet[JdwpConstants.CommandSet.MAXIMUM + 1]; _outputBytes = new ByteArrayOutputStream(); _os = new DataOutputStream (_outputBytes); *************** public class PacketProcessor *** 130,136 **** _sets[JdwpConstants.CommandSet.ClassObjectReference.CS_VALUE] = new ClassObjectReferenceCommandSet(); } ! /** * Main run routine for this thread. Will loop getting packets * from the connection and processing them. --- 130,136 ---- _sets[JdwpConstants.CommandSet.ClassObjectReference.CS_VALUE] = new ClassObjectReferenceCommandSet(); } ! /** * Main run routine for this thread. Will loop getting packets * from the connection and processing them. *************** public class PacketProcessor *** 140,146 **** // Notify initialization thread (gnu.classpath.jdwp.Jdwp) that // the PacketProcessor thread is ready. Jdwp.getDefault().subcomponentInitialized (); ! try { while (!_shutdown) --- 140,146 ---- // Notify initialization thread (gnu.classpath.jdwp.Jdwp) that // the PacketProcessor thread is ready. Jdwp.getDefault().subcomponentInitialized (); ! try { while (!_shutdown) *************** public class PacketProcessor *** 156,162 **** Jdwp.getDefault().shutdown(); return null; } ! /** * Shutdown the packet processor */ --- 156,162 ---- Jdwp.getDefault().shutdown(); return null; } ! /** * Shutdown the packet processor */ *************** public class PacketProcessor *** 164,197 **** { _shutdown = true; } ! // Helper function which actually does all the work of waiting // for a packet and getting it processed. private void _processOnePacket () throws IOException { JdwpPacket pkt = _connection.getPacket (); ! if (!(pkt instanceof JdwpCommandPacket)) { // We're not supposed to get these from the debugger! // Drop it on the floor return; } ! if (pkt != null) { JdwpCommandPacket commandPkt = (JdwpCommandPacket) pkt; JdwpReplyPacket reply = new JdwpReplyPacket(commandPkt); ! // Reset our output stream _outputBytes.reset(); ! ! // Create a ByteBuffer around the command packet ByteBuffer bb = ByteBuffer.wrap(commandPkt.getData()); byte command = commandPkt.getCommand(); byte commandSet = commandPkt.getCommandSet(); ! CommandSet set = null; try { --- 164,197 ---- { _shutdown = true; } ! // Helper function which actually does all the work of waiting // for a packet and getting it processed. private void _processOnePacket () throws IOException { JdwpPacket pkt = _connection.getPacket (); ! if (!(pkt instanceof JdwpCommandPacket)) { // We're not supposed to get these from the debugger! // Drop it on the floor return; } ! if (pkt != null) { JdwpCommandPacket commandPkt = (JdwpCommandPacket) pkt; JdwpReplyPacket reply = new JdwpReplyPacket(commandPkt); ! // Reset our output stream _outputBytes.reset(); ! ! // Create a ByteBuffer around the command packet ByteBuffer bb = ByteBuffer.wrap(commandPkt.getData()); byte command = commandPkt.getCommand(); byte commandSet = commandPkt.getCommandSet(); ! CommandSet set = null; try { *************** public class PacketProcessor *** 200,206 **** { set = _sets[commandPkt.getCommandSet()]; } ! if (set != null) { _shutdown = set.runCommand(bb, _os, command); reply.setData(_outputBytes.toByteArray()); --- 200,206 ---- { set = _sets[commandPkt.getCommandSet()]; } ! if (set != null) { _shutdown = set.runCommand(bb, _os, command); reply.setData(_outputBytes.toByteArray()); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 60,66 **** /** * A class representing the ReferenceType Command Set. ! * * @author Aaron Luchko */ public class ReferenceTypeCommandSet --- 60,66 ---- /** * A class representing the ReferenceType Command Set. ! * * @author Aaron Luchko */ public class ReferenceTypeCommandSet *************** public class ReferenceTypeCommandSet *** 219,225 **** { field.setAccessible(true); // Might be a private field Object value = field.get(null); ! Value val = ValueFactory.createFromObject(value, field.getType()); val.writeTagged(os); } --- 219,225 ---- { field.setAccessible(true); // Might be a private field Object value = field.get(null); ! Value val = ValueFactory.createFromObject(value, field.getType()); val.writeTagged(os); } *************** public class ReferenceTypeCommandSet *** 306,313 **** { if (!VMVirtualMachine.canGetSourceDebugExtension) { ! String msg = "source debug extension is not supported"; ! throw new NotImplementedException(msg); } ReferenceTypeId id = idMan.readReferenceTypeId(bb); --- 306,313 ---- { if (!VMVirtualMachine.canGetSourceDebugExtension) { ! String msg = "source debug extension is not supported"; ! throw new NotImplementedException(msg); } ReferenceTypeId id = idMan.readReferenceTypeId(bb); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/StackFrameCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/StackFrameCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/StackFrameCommandSet.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/StackFrameCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,6 **** /* StackFrameCommandSet.java -- class to implement the StackFrame Command Set Copyright (C) 2005, 2007 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,6 ---- /* StackFrameCommandSet.java -- class to implement the StackFrame Command Set Copyright (C) 2005, 2007 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** import java.nio.ByteBuffer; *** 56,62 **** /** * A class representing the StackFrame Command Set. ! * * @author Aaron Luchko */ public class StackFrameCommandSet --- 56,62 ---- /** * A class representing the StackFrame Command Set. ! * * @author Aaron Luchko */ public class StackFrameCommandSet *************** public class StackFrameCommandSet *** 83,89 **** executePopFrames(bb, os); break; default: ! throw new NotImplementedException("Command " + command + " not found in Stack Frame Command Set."); } } --- 83,89 ---- executePopFrames(bb, os); break; default: ! throw new NotImplementedException("Command " + command + " not found in Stack Frame Command Set."); } } *************** public class StackFrameCommandSet *** 158,165 **** { if (!VMVirtualMachine.canPopFrames) { ! String msg = "popping frames is unsupported"; ! throw new NotImplementedException(msg); } ThreadId tid = (ThreadId) idMan.readObjectId(bb); --- 158,165 ---- { if (!VMVirtualMachine.canPopFrames) { ! String msg = "popping frames is unsupported"; ! throw new NotImplementedException(msg); } ThreadId tid = (ThreadId) idMan.readObjectId(bb); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/StringReferenceCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/StringReferenceCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/StringReferenceCommandSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/StringReferenceCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,7 **** /* StringReferenceCommandSet.java -- class to implement the StringReference Command Set Copyright (C) 2005 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,7 ---- /* StringReferenceCommandSet.java -- class to implement the StringReference Command Set Copyright (C) 2005 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** import java.nio.ByteBuffer; *** 53,59 **** /** * A class representing the StringReference Command Set. ! * * @author Aaron Luchko */ public class StringReferenceCommandSet --- 53,59 ---- /** * A class representing the StringReference Command Set. ! * * @author Aaron Luchko */ public class StringReferenceCommandSet diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,7 **** ! /* ThreadGroupReferenceCommandSet.java -- class to implement the ThreadGroupReference Command Set Copyright (C) 2005 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,7 ---- ! /* ThreadGroupReferenceCommandSet.java -- class to implement the ThreadGroupReference Command Set Copyright (C) 2005 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** import java.nio.ByteBuffer; *** 52,58 **** /** * A class representing the ThreadGroupReference Command Set. ! * * @author Aaron Luchko */ public class ThreadGroupReferenceCommandSet --- 52,58 ---- /** * A class representing the ThreadGroupReference Command Set. ! * * @author Aaron Luchko */ public class ThreadGroupReferenceCommandSet *************** public class ThreadGroupReferenceCommand *** 104,113 **** ThreadGroup group = (ThreadGroup) oid.getObject(); ThreadGroup parent = group.getParent(); if (parent == null) { ! os.writeLong(0L); } else { ! ObjectId parentId = idMan.getObjectId(parent); ! parentId.write(os); } } --- 104,113 ---- ThreadGroup group = (ThreadGroup) oid.getObject(); ThreadGroup parent = group.getParent(); if (parent == null) { ! os.writeLong(0L); } else { ! ObjectId parentId = idMan.getObjectId(parent); ! parentId.write(os); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java Mon Apr 2 12:52:01 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,6 **** /* ThreadReferenceCommandSet.java -- class to implement the ThreadReference Command Set Copyright (C) 2005, 2007 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,6 ---- /* ThreadReferenceCommandSet.java -- class to implement the ThreadReference Command Set Copyright (C) 2005, 2007 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** import java.util.ArrayList; *** 57,63 **** /** * A class representing the ThreadReference Command Set. ! * * @author Aaron Luchko */ public class ThreadReferenceCommandSet --- 57,63 ---- /** * A class representing the ThreadReference Command Set. ! * * @author Aaron Luchko */ public class ThreadReferenceCommandSet *************** public class ThreadReferenceCommandSet *** 107,113 **** executeSuspendCount(bb, os); break; default: ! throw new NotImplementedException("Command " + command + " not found in Thread Reference Command Set."); } } --- 107,113 ---- executeSuspendCount(bb, os); break; default: ! throw new NotImplementedException("Command " + command + " not found in Thread Reference Command Set."); } } *************** public class ThreadReferenceCommandSet *** 202,209 **** { if (!VMVirtualMachine.canGetOwnedMonitorInfo) { ! String msg = "getting owned monitors is not supported"; ! throw new NotImplementedException(msg); } ThreadId tid = (ThreadId) idMan.readObjectId(bb); --- 202,209 ---- { if (!VMVirtualMachine.canGetOwnedMonitorInfo) { ! String msg = "getting owned monitors is not supported"; ! throw new NotImplementedException(msg); } ThreadId tid = (ThreadId) idMan.readObjectId(bb); *************** public class ThreadReferenceCommandSet *** 213,220 **** os.write(monitors.length); for (int i = 0; i < monitors.length; ++i) { ! ObjectId id = idMan.getObjectId(monitors[i]); ! id.writeTagged(os); } } --- 213,220 ---- os.write(monitors.length); for (int i = 0; i < monitors.length; ++i) { ! ObjectId id = idMan.getObjectId(monitors[i]); ! id.writeTagged(os); } } *************** public class ThreadReferenceCommandSet *** 224,231 **** { if (!VMVirtualMachine.canGetCurrentContendedMonitor) { ! String msg = "getting current contended monitor is not supported"; ! throw new NotImplementedException(msg); } ThreadId tid = (ThreadId) idMan.readObjectId(bb); --- 224,231 ---- { if (!VMVirtualMachine.canGetCurrentContendedMonitor) { ! String msg = "getting current contended monitor is not supported"; ! throw new NotImplementedException(msg); } ThreadId tid = (ThreadId) idMan.readObjectId(bb); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,7 **** /* VirtualMachineCommandSet.java -- class to implement the VirtualMachine Command Set Copyright (C) 2005, 2006, 2007 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,7 ---- /* VirtualMachineCommandSet.java -- class to implement the VirtualMachine Command Set Copyright (C) 2005, 2006, 2007 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** import java.util.Properties; *** 60,66 **** /** * A class representing the VirtualMachine Command Set. ! * * @author Aaron Luchko */ public class VirtualMachineCommandSet --- 60,66 ---- /** * A class representing the VirtualMachine Command Set. ! * * @author Aaron Luchko */ public class VirtualMachineCommandSet *************** public class VirtualMachineCommandSet *** 103,109 **** executeResume(bb, os); break; case JdwpConstants.CommandSet.VirtualMachine.EXIT: ! shutdown = true; executeExit(bb, os); break; case JdwpConstants.CommandSet.VirtualMachine.CREATE_STRING: --- 103,109 ---- executeResume(bb, os); break; case JdwpConstants.CommandSet.VirtualMachine.EXIT: ! shutdown = true; executeExit(bb, os); break; case JdwpConstants.CommandSet.VirtualMachine.CREATE_STRING: *************** public class VirtualMachineCommandSet *** 321,327 **** { String string = JdwpString.readString(bb); ObjectId stringId = idMan.getObjectId(string); ! // Since this string isn't referenced anywhere we'll disable garbage // collection on it so it's still around when the debugger gets back to it. stringId.disableCollection(); --- 321,327 ---- { String string = JdwpString.readString(bb); ObjectId stringId = idMan.getObjectId(string); ! // Since this string isn't referenced anywhere we'll disable garbage // collection on it so it's still around when the debugger gets back to it. stringId.disableCollection(); *************** public class VirtualMachineCommandSet *** 404,411 **** os.writeBoolean(VMVirtualMachine.canSetDefaultStratum); for (int i = 15; i < CAPABILITIES_NEW_SIZE; i++) { ! // Future capabilities (currently unused) ! os.writeBoolean(false); } } --- 404,411 ---- os.writeBoolean(VMVirtualMachine.canSetDefaultStratum); for (int i = 15; i < CAPABILITIES_NEW_SIZE; i++) { ! // Future capabilities (currently unused) ! os.writeBoolean(false); } } *************** public class VirtualMachineCommandSet *** 414,421 **** { if (!VMVirtualMachine.canRedefineClasses) { ! String msg = "redefinition of classes is not supported"; ! throw new NotImplementedException(msg); } int classes = bb.getInt(); --- 414,421 ---- { if (!VMVirtualMachine.canRedefineClasses) { ! String msg = "redefinition of classes is not supported"; ! throw new NotImplementedException(msg); } int classes = bb.getInt(); *************** public class VirtualMachineCommandSet *** 423,434 **** byte[][] bytecodes = new byte[classes][]; for (int i = 0; i < classes; ++i) { ! ReferenceTypeId id = idMan.readReferenceTypeId(bb); ! int classfile = bb.getInt(); ! byte[] bytecode = new byte[classfile]; ! bb.get(bytecode); ! types[i] = id.getType(); ! bytecodes[i] = bytecode; } VMVirtualMachine.redefineClasses (types, bytecodes); --- 423,434 ---- byte[][] bytecodes = new byte[classes][]; for (int i = 0; i < classes; ++i) { ! ReferenceTypeId id = idMan.readReferenceTypeId(bb); ! int classfile = bb.getInt(); ! byte[] bytecode = new byte[classfile]; ! bb.get(bytecode); ! types[i] = id.getType(); ! bytecodes[i] = bytecode; } VMVirtualMachine.redefineClasses (types, bytecodes); *************** public class VirtualMachineCommandSet *** 439,446 **** { if (!VMVirtualMachine.canSetDefaultStratum) { ! String msg = "setting the default stratum is not supported"; ! throw new NotImplementedException(msg); } String stratum = JdwpString.readString(bb); --- 439,446 ---- { if (!VMVirtualMachine.canSetDefaultStratum) { ! String msg = "setting the default stratum is not supported"; ! throw new NotImplementedException(msg); } String stratum = JdwpString.readString(bb); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/JdwpCommandPacket.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/JdwpCommandPacket.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/JdwpCommandPacket.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/JdwpCommandPacket.java Tue Jan 11 19:46:05 2011 *************** public class JdwpCommandPacket extends J *** 74,80 **** // Don't assign an id. This constructor is called by // JdwpPacket.fromBytes, and that will assign a packet id. } ! /** * Constructs a new JdwpCommandPacket * with the given command set and command --- 74,80 ---- // Don't assign an id. This constructor is called by // JdwpPacket.fromBytes, and that will assign a packet id. } ! /** * Constructs a new JdwpCommandPacket * with the given command set and command *************** public class JdwpCommandPacket extends J *** 109,115 **** * Sets the command set */ public void setCommandSet (byte cs) ! { _commandSet = cs; } --- 109,115 ---- * Sets the command set */ public void setCommandSet (byte cs) ! { _commandSet = cs; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/JdwpConnection.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/JdwpConnection.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/JdwpConnection.java Mon May 7 20:45:21 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/JdwpConnection.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 60,66 **** *

      This class is also a thread that is responsible for pulling * packets off the wire and sticking them in a queue for packet * processing threads. ! * * @author Keith Seitz (keiths@redhat.com) */ public class JdwpConnection --- 60,66 ---- *

      This class is also a thread that is responsible for pulling * packets off the wire and sticking them in a queue for packet * processing threads. ! * * @author Keith Seitz (keiths@redhat.com) */ public class JdwpConnection *************** public class JdwpConnection *** 68,74 **** { // The JDWP handshake private static final byte[] _HANDSHAKE = {'J', 'D', 'W', 'P', '-', 'H', 'a', ! 'n', 'd', 's', 'h', 'a', 'k', 'e'}; // Transport method private ITransport _transport; --- 68,74 ---- { // The JDWP handshake private static final byte[] _HANDSHAKE = {'J', 'D', 'W', 'P', '-', 'H', 'a', ! 'n', 'd', 's', 'h', 'a', 'k', 'e'}; // Transport method private ITransport _transport; *************** public class JdwpConnection *** 121,133 **** // Do handshake try { ! _inStream = new DataInputStream (_transport.getInputStream ()); ! _outStream = new DataOutputStream (_transport.getOutputStream ()); ! _doHandshake (); } catch (IOException ioe) { ! throw new TransportException (ioe); } } --- 121,133 ---- // Do handshake try { ! _inStream = new DataInputStream (_transport.getInputStream ()); ! _outStream = new DataOutputStream (_transport.getOutputStream ()); ! _doHandshake (); } catch (IOException ioe) { ! throw new TransportException (ioe); } } *************** public class JdwpConnection *** 147,159 **** if (Arrays.equals (hshake, _HANDSHAKE)) { ! // Send reply handshake ! _outStream.write (_HANDSHAKE, 0, _HANDSHAKE.length); ! return; } else { ! throw new IOException ("invalid JDWP handshake (\"" + hshake + "\")"); } } --- 147,159 ---- if (Arrays.equals (hshake, _HANDSHAKE)) { ! // Send reply handshake ! _outStream.write (_HANDSHAKE, 0, _HANDSHAKE.length); ! return; } else { ! throw new IOException ("invalid JDWP handshake (\"" + hshake + "\")"); } } *************** public class JdwpConnection *** 171,195 **** while (!_shutdown) { ! try ! { ! _readOnePacket (); ! } ! catch (IOException ioe) ! { ! /* IOException can occur for two reasons: ! 1. Lost connection with the other side ! 2. Transport was shutdown ! In either case, we make sure that all of the ! back-end gets shutdown. */ ! Jdwp.getDefault().shutdown (); ! } ! catch (Throwable t) ! { ! System.out.println ("JdwpConnection.run: caught an exception: " ! + t); ! // Just keep going ! } } } --- 171,195 ---- while (!_shutdown) { ! try ! { ! _readOnePacket (); ! } ! catch (IOException ioe) ! { ! /* IOException can occur for two reasons: ! 1. Lost connection with the other side ! 2. Transport was shutdown ! In either case, we make sure that all of the ! back-end gets shutdown. */ ! Jdwp.getDefault().shutdown (); ! } ! catch (Throwable t) ! { ! System.out.println ("JdwpConnection.run: caught an exception: " ! + t); ! // Just keep going ! } } } *************** public class JdwpConnection *** 204,211 **** int length = _inStream.readInt (); if (length < 11) { ! throw new IOException ("JDWP packet length < 11 (" ! + length + ")"); } data = new byte[length]; --- 204,211 ---- int length = _inStream.readInt (); if (length < 11) { ! throw new IOException ("JDWP packet length < 11 (" ! + length + ")"); } data = new byte[length]; *************** public class JdwpConnection *** 218,228 **** JdwpPacket packet = JdwpPacket.fromBytes (data); if (packet != null) { ! synchronized (_commandQueue) ! { ! _commandQueue.add (packet); ! _commandQueue.notifyAll (); ! } } } --- 218,228 ---- JdwpPacket packet = JdwpPacket.fromBytes (data); if (packet != null) { ! synchronized (_commandQueue) ! { ! _commandQueue.add (packet); ! _commandQueue.notifyAll (); ! } } } *************** public class JdwpConnection *** 236,256 **** { synchronized (_commandQueue) { ! while (_commandQueue.isEmpty ()) ! { ! try ! { ! _commandQueue.wait (); ! } ! catch (InterruptedException ie) ! { ! /* PacketProcessor is interrupted ! when shutting down */ ! return null; ! } ! } ! return (JdwpPacket) _commandQueue.remove (0); } } --- 236,256 ---- { synchronized (_commandQueue) { ! while (_commandQueue.isEmpty ()) ! { ! try ! { ! _commandQueue.wait (); ! } ! catch (InterruptedException ie) ! { ! /* PacketProcessor is interrupted ! when shutting down */ ! return null; ! } ! } ! return (JdwpPacket) _commandQueue.remove (0); } } *************** public class JdwpConnection *** 277,292 **** * @throws IOException */ public void sendEvents(EventRequest[] requests, Event[] events, ! byte suspendPolicy) throws IOException { JdwpPacket pkt; synchronized (_bytes) { ! _bytes.reset (); ! pkt = Event.toPacket (_doStream, events, requests, suspendPolicy); ! pkt.setData (_bytes.toByteArray ()); } sendPacket (pkt); --- 277,292 ---- * @throws IOException */ public void sendEvents(EventRequest[] requests, Event[] events, ! byte suspendPolicy) throws IOException { JdwpPacket pkt; synchronized (_bytes) { ! _bytes.reset (); ! pkt = Event.toPacket (_doStream, events, requests, suspendPolicy); ! pkt.setData (_bytes.toByteArray ()); } sendPacket (pkt); *************** public class JdwpConnection *** 299,307 **** { if (!_shutdown) { ! _transport.shutdown (); ! _shutdown = true; ! interrupt (); } } } --- 299,307 ---- { if (!_shutdown) { ! _transport.shutdown (); ! _shutdown = true; ! interrupt (); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/JdwpPacket.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/JdwpPacket.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/JdwpPacket.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/JdwpPacket.java Tue Jan 11 19:46:05 2011 *************** public abstract class JdwpPacket *** 113,119 **** * Returns the packet id */ public int getId () ! { return _id; } --- 113,119 ---- * Returns the packet id */ public int getId () ! { return _id; } *************** public abstract class JdwpPacket *** 121,127 **** * Sets the packet id */ public void setId (int id) ! { _id = id; } --- 121,127 ---- * Sets the packet id */ public void setId (int id) ! { _id = id; } *************** public abstract class JdwpPacket *** 129,135 **** * Returns the packet flags */ public byte getFlags () ! { return _flags; } --- 129,135 ---- * Returns the packet flags */ public byte getFlags () ! { return _flags; } *************** public abstract class JdwpPacket *** 137,143 **** * Sets the packet flags */ public void setFlags (byte flags) ! { _flags = flags; } --- 137,143 ---- * Sets the packet flags */ public void setFlags (byte flags) ! { _flags = flags; } *************** public abstract class JdwpPacket *** 145,151 **** * Gets the command/reply-specific data in this packet */ public byte[] getData () ! { return _data; } --- 145,151 ---- * Gets the command/reply-specific data in this packet */ public byte[] getData () ! { return _data; } *************** public abstract class JdwpPacket *** 153,159 **** * Sets the command/reply-specific data in this packet */ public void setData (byte[] data) ! { _data = data; } --- 153,159 ---- * Sets the command/reply-specific data in this packet */ public void setData (byte[] data) ! { _data = data; } *************** public abstract class JdwpPacket *** 161,173 **** * Returns the length of this entire packet */ public int getLength () ! { return MINIMUM_SIZE + (_data == null ? 0 : _data.length); } /** * Allow subclasses to initialize from data ! * * @param bytes packet data from the wire * @param index index into bytes to start processing * @return number of bytes in bytes processed --- 161,173 ---- * Returns the length of this entire packet */ public int getLength () ! { return MINIMUM_SIZE + (_data == null ? 0 : _data.length); } /** * Allow subclasses to initialize from data ! * * @param bytes packet data from the wire * @param index index into bytes to start processing * @return number of bytes in bytes processed *************** public abstract class JdwpPacket *** 181,187 **** * * If the given data does not represent a valid JDWP packet, it returns * null. ! * * @param bytes packet data from the wire * @return number of bytes in bytes processed */ --- 181,187 ---- * * If the given data does not represent a valid JDWP packet, it returns * null. ! * * @param bytes packet data from the wire * @return number of bytes in bytes processed */ *************** public abstract class JdwpPacket *** 195,242 **** if (bytes.length == length) { ! id = ((bytes[i++] & 0xff) << 24 | (bytes[i++] & 0xff) << 16 | (bytes[i++] & 0xff) << 8 | (bytes[i++] & 0xff)); ! flags = bytes[i++]; ! Class clazz = null; ! if (flags == 0) ! clazz = JdwpCommandPacket.class; ! else if ((flags & JDWP_FLAG_REPLY) != 0) ! clazz = JdwpReplyPacket.class; ! else ! { ! // Malformed packet. Discard it. ! return null; ! } ! JdwpPacket pkt = null; ! try ! { ! pkt = (JdwpPacket) clazz.newInstance (); ! } ! catch (InstantiationException ie) ! { ! // Discard packet ! return null; ! } ! catch (IllegalAccessException iae) ! { ! // Discard packet ! return null; ! } ! pkt.setId (id); ! pkt.setFlags (flags); ! i += pkt.myFromBytes (bytes, i); ! byte[] data = new byte[length - i]; ! System.arraycopy (bytes, i, data, 0, data.length); ! pkt.setData (data); ! return pkt; } ! return null; } --- 195,242 ---- if (bytes.length == length) { ! id = ((bytes[i++] & 0xff) << 24 | (bytes[i++] & 0xff) << 16 | (bytes[i++] & 0xff) << 8 | (bytes[i++] & 0xff)); ! flags = bytes[i++]; ! Class clazz = null; ! if (flags == 0) ! clazz = JdwpCommandPacket.class; ! else if ((flags & JDWP_FLAG_REPLY) != 0) ! clazz = JdwpReplyPacket.class; ! else ! { ! // Malformed packet. Discard it. ! return null; ! } ! JdwpPacket pkt = null; ! try ! { ! pkt = (JdwpPacket) clazz.newInstance (); ! } ! catch (InstantiationException ie) ! { ! // Discard packet ! return null; ! } ! catch (IllegalAccessException iae) ! { ! // Discard packet ! return null; ! } ! pkt.setId (id); ! pkt.setFlags (flags); ! i += pkt.myFromBytes (bytes, i); ! byte[] data = new byte[length - i]; ! System.arraycopy (bytes, i, data, 0, data.length); ! pkt.setData (data); ! return pkt; } ! return null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/JdwpReplyPacket.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/JdwpReplyPacket.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/JdwpReplyPacket.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/JdwpReplyPacket.java Tue Jan 11 19:46:05 2011 *************** public class JdwpReplyPacket extends Jdw *** 124,130 **** { int i = 0; setErrorCode ((short) ((bytes[index + i++] & 0xff) << 8 ! | (bytes[index + i++] & 0xff))); return i; } --- 124,130 ---- { int i = 0; setErrorCode ((short) ((bytes[index + i++] & 0xff) << 8 ! | (bytes[index + i++] & 0xff))); return i; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/SocketTransport.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/SocketTransport.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/SocketTransport.java Mon Apr 2 21:32:10 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/SocketTransport.java Tue Jan 11 19:46:05 2011 *************** class SocketTransport *** 76,82 **** // Host name private String _host; ! // Are we acting as a server? private boolean _server = false; --- 76,82 ---- // Host name private String _host; ! // Are we acting as a server? private boolean _server = false; *************** class SocketTransport *** 96,124 **** String p = (String) properties.get(_PROPERTY_SERVER); if (p != null) { ! if (p.toLowerCase().equals("y")) ! _server = true; } // Get address [form: "hostname:port"] p = (String) properties.get(_PROPERTY_ADDRESS); if (p != null) { ! String[] s = p.split(":"); ! if (s.length == 1) ! { ! // Port number only. Assume "localhost" ! _port = Integer.parseInt(s[0]); ! _host = "localhost"; ! } ! else ! { ! if (s[0].length() == 0) ! _host = "localhost"; ! else ! _host = s[0]; ! _port = Integer.parseInt(s[1]); ! } } } --- 96,124 ---- String p = (String) properties.get(_PROPERTY_SERVER); if (p != null) { ! if (p.toLowerCase().equals("y")) ! _server = true; } // Get address [form: "hostname:port"] p = (String) properties.get(_PROPERTY_ADDRESS); if (p != null) { ! String[] s = p.split(":"); ! if (s.length == 1) ! { ! // Port number only. Assume "localhost" ! _port = Integer.parseInt(s[0]); ! _host = "localhost"; ! } ! else ! { ! if (s[0].length() == 0) ! _host = "localhost"; ! else ! _host = s[0]; ! _port = Integer.parseInt(s[1]); ! } } } *************** class SocketTransport *** 133,156 **** { try { ! if (_server) ! { ! // Get a server socket ! ServerSocketFactory ssf = ServerSocketFactory.getDefault (); ! ServerSocket ss = ssf.createServerSocket (_port, 1); ! _socket = ss.accept (); ! } ! else ! { ! // Get a client socket (the factory will connect it) ! SocketFactory sf = SocketFactory.getDefault (); ! _socket = sf.createSocket (_host, _port); ! } } catch (IOException ioe) { ! // This will grab UnknownHostException, too. ! throw new TransportException (ioe); } } --- 133,156 ---- { try { ! if (_server) ! { ! // Get a server socket ! ServerSocketFactory ssf = ServerSocketFactory.getDefault (); ! ServerSocket ss = ssf.createServerSocket (_port, 1); ! _socket = ss.accept (); ! } ! else ! { ! // Get a client socket (the factory will connect it) ! SocketFactory sf = SocketFactory.getDefault (); ! _socket = sf.createSocket (_host, _port); ! } } catch (IOException ioe) { ! // This will grab UnknownHostException, too. ! throw new TransportException (ioe); } } *************** class SocketTransport *** 162,172 **** { try { ! _socket.close (); } catch (Throwable t) { ! // We don't really care about errors at this point } } --- 162,172 ---- { try { ! _socket.close (); } catch (Throwable t) { ! // We don't really care about errors at this point } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/TransportFactory.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/TransportFactory.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/transport/TransportFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/transport/TransportFactory.java Tue Jan 11 19:46:05 2011 *************** public class TransportFactory *** 90,113 **** for (int i = 0; i < _transportMethods.length; ++i) { ! if (_transportMethods[i].name.equals (name)) ! { ! try ! { ! ITransport t; ! t = (ITransport) _transportMethods[i].clazz.newInstance (); ! t.configure (properties); ! return t; ! } ! catch (TransportException te) ! { ! throw te; ! } ! catch (Exception e) ! { ! throw new TransportException (e); ! } ! } } throw new TransportException ("transport \"" + name + "\" not found"); --- 90,113 ---- for (int i = 0; i < _transportMethods.length; ++i) { ! if (_transportMethods[i].name.equals (name)) ! { ! try ! { ! ITransport t; ! t = (ITransport) _transportMethods[i].clazz.newInstance (); ! t.configure (properties); ! return t; ! } ! catch (TransportException te) ! { ! throw te; ! } ! catch (Exception e) ! { ! throw new TransportException (e); ! } ! } } throw new TransportException ("transport \"" + name + "\" not found"); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/JdwpString.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/JdwpString.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/JdwpString.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/JdwpString.java Tue Jan 11 19:46:05 2011 *************** *** 1,13 **** /* JdwpString.java -- utility class to read and write jdwp strings Copyright (C) 2005 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 1,13 ---- /* JdwpString.java -- utility class to read and write jdwp strings Copyright (C) 2005 Free Software Foundation ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.nio.ByteBuffer; *** 46,52 **** /** * A class to compute the JDWP representation of Strings. ! * * @author Aaron Luchko */ public class JdwpString --- 46,52 ---- /** * A class to compute the JDWP representation of Strings. ! * * @author Aaron Luchko */ public class JdwpString *************** public class JdwpString *** 54,60 **** /** * Write this String to the outStream as a string understood by jdwp. ! * * @param os write the String here * @param string the String to write * @throws IOException --- 54,60 ---- /** * Write this String to the outStream as a string understood by jdwp. ! * * @param os write the String here * @param string the String to write * @throws IOException *************** public class JdwpString *** 70,76 **** /** * Read a jdwp style string from the ByteBuffer. ! * * @param bb contains the string * @return the String that was read * @throws JdwpInternalErrorException bb didn't contain a value UTF-8 string --- 70,76 ---- /** * Read a jdwp style string from the ByteBuffer. ! * * @param bb contains the string * @return the String that was read * @throws JdwpInternalErrorException bb didn't contain a value UTF-8 string diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/LineTable.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/LineTable.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/LineTable.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/LineTable.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * A class representing a Line Table for a method. ! * * @author Aaron Luchko */ public class LineTable --- 44,50 ---- /** * A class representing a Line Table for a method. ! * * @author Aaron Luchko */ public class LineTable *************** public class LineTable *** 57,63 **** /** * Construct a line table with the given parameters. ! * * @param start lowest code index for method, -1 if native * @param end highest code index for method, -1 if native * @param lineNum line numbers for in line tables --- 57,63 ---- /** * Construct a line table with the given parameters. ! * * @param start lowest code index for method, -1 if native * @param end highest code index for method, -1 if native * @param lineNum line numbers for in line tables *************** public class LineTable *** 73,82 **** this.lineNum = lineNum; this.lineCI = lineCI; } ! /** * Writes this line table to the given DataOutputStream. ! * * @param os the stream to write it to * @throws IOException */ --- 73,82 ---- this.lineNum = lineNum; this.lineCI = lineCI; } ! /** * Writes this line table to the given DataOutputStream. ! * * @param os the stream to write it to * @throws IOException */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/Location.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/Location.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/Location.java Sat Apr 28 01:02:10 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/Location.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 49,55 **** /** * A class to read/write JDWP locations. ! * * @author Aaron Luchko */ public class Location --- 49,55 ---- /** * A class to read/write JDWP locations. ! * * @author Aaron Luchko */ public class Location *************** public class Location *** 59,65 **** /** * Create a location with the given parameters. ! * * @param method the method * @param index location in the method */ --- 59,65 ---- /** * Create a location with the given parameters. ! * * @param method the method * @param index location in the method */ *************** public class Location *** 72,78 **** /** * Read a location from the given bytebuffer, consists of a TAG (byte), * followed by a ReferenceTypeId, a MethodId and an index (long). ! * * @param bb this holds the location * @throws IOException when an error occurs reading from the buffer * @throws JdwpException for invalid class or method IDs --- 72,78 ---- /** * Read a location from the given bytebuffer, consists of a TAG (byte), * followed by a ReferenceTypeId, a MethodId and an index (long). ! * * @param bb this holds the location * @throws IOException when an error occurs reading from the buffer * @throws JdwpException for invalid class or method IDs *************** public class Location *** 81,87 **** throws IOException, JdwpException { byte tag = bb.get(); ! ClassReferenceTypeId classId = (ClassReferenceTypeId) VMIdManager.getDefault().readReferenceTypeId(bb); Class klass = classId.getType(); method = VMMethod.readId(klass, bb); --- 81,87 ---- throws IOException, JdwpException { byte tag = bb.get(); ! ClassReferenceTypeId classId = (ClassReferenceTypeId) VMIdManager.getDefault().readReferenceTypeId(bb); Class klass = classId.getType(); method = VMMethod.readId(klass, bb); *************** public class Location *** 90,108 **** /** * Write the given location to an output stream. ! * * @param os stream to write to * @throws IOException when an error occurs writing to the stream */ ! public void write(DataOutputStream os) throws IOException { // check if this is an empty location if (method != null) { VMIdManager idm = VMIdManager.getDefault(); ! ClassReferenceTypeId crti = ! (ClassReferenceTypeId) idm.getReferenceTypeId(method.getDeclaringClass()); crti.writeTagged(os); --- 90,108 ---- /** * Write the given location to an output stream. ! * * @param os stream to write to * @throws IOException when an error occurs writing to the stream */ ! public void write(DataOutputStream os) throws IOException { // check if this is an empty location if (method != null) { VMIdManager idm = VMIdManager.getDefault(); ! ClassReferenceTypeId crti = ! (ClassReferenceTypeId) idm.getReferenceTypeId(method.getDeclaringClass()); crti.writeTagged(os); *************** public class Location *** 117,136 **** os.writeLong((long) 0); } } ! /** * Sets up an empty location ! * * @return new Location (setup as empty) */ public static Location getEmptyLocation() { return new Location(null, 0); } ! /** * Gets the method of this location ! * * @return the method */ public VMMethod getMethod() --- 117,136 ---- os.writeLong((long) 0); } } ! /** * Sets up an empty location ! * * @return new Location (setup as empty) */ public static Location getEmptyLocation() { return new Location(null, 0); } ! /** * Gets the method of this location ! * * @return the method */ public VMMethod getMethod() *************** public class Location *** 140,146 **** /** * Gets the code index of this location ! * * @return the code index */ public long getIndex () --- 140,146 ---- /** * Gets the code index of this location ! * * @return the code index */ public long getIndex () *************** public class Location *** 158,166 **** { if (obj instanceof Location) { ! Location l = (Location) obj; ! return (getMethod().equals(l.getMethod()) ! && getIndex() == l.getIndex()); } return false; --- 158,166 ---- { if (obj instanceof Location) { ! Location l = (Location) obj; ! return (getMethod().equals(l.getMethod()) ! && getIndex() == l.getIndex()); } return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/MethodResult.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/MethodResult.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/MethodResult.java Wed Jun 20 20:30:34 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/MethodResult.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* MethodResult.java -- class to wrap around values returned from a Method call ! in the VM Copyright (C) 2005, 2007 Free Software Foundation This file is part of GNU Classpath. --- 1,5 ---- /* MethodResult.java -- class to wrap around values returned from a Method call ! in the VM Copyright (C) 2005, 2007 Free Software Foundation This file is part of GNU Classpath. *************** import gnu.classpath.jdwp.value.Value; *** 44,60 **** /** * A class to wrap around values returned from a Method call in the VM. ! * * @author Aaron Luchko */ public class MethodResult { // The Object returned by the executing method private Value returnedValue; ! // Any Exception that was thrown by the executing method private Throwable thrownException; ! /** * Constructs a new MethodResult object * --- 44,60 ---- /** * A class to wrap around values returned from a Method call in the VM. ! * * @author Aaron Luchko */ public class MethodResult { // The Object returned by the executing method private Value returnedValue; ! // Any Exception that was thrown by the executing method private Throwable thrownException; ! /** * Constructs a new MethodResult object * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/MonitorInfo.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/MonitorInfo.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/MonitorInfo.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/MonitorInfo.java Tue Jan 11 19:46:05 2011 *************** public class MonitorInfo *** 69,76 **** os.write(waiters.length); for (int i = 0; i < waiters.length; ++i) { ! id = idm.getObjectId(waiters[i]); ! id.write(os); } } } --- 69,76 ---- os.write(waiters.length); for (int i = 0; i < waiters.length; ++i) { ! id = idm.getObjectId(waiters[i]); ! id.write(os); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/Signature.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/Signature.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/Signature.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/Signature.java Tue Jan 11 19:46:05 2011 *************** public class Signature *** 89,105 **** public static String computeMethodSignature (Method method) { return _computeSignature (method.getReturnType (), ! method.getParameterTypes ()); } private static String _computeSignature (Class returnType, ! Class[] paramTypes) { CPStringBuilder sb = new CPStringBuilder ("("); if (paramTypes != null) { ! for (int i = 0; i < paramTypes.length; ++i) ! _addToSignature (sb, paramTypes[i]); } sb.append (")"); _addToSignature (sb, returnType); --- 89,105 ---- public static String computeMethodSignature (Method method) { return _computeSignature (method.getReturnType (), ! method.getParameterTypes ()); } private static String _computeSignature (Class returnType, ! Class[] paramTypes) { CPStringBuilder sb = new CPStringBuilder ("("); if (paramTypes != null) { ! for (int i = 0; i < paramTypes.length; ++i) ! _addToSignature (sb, paramTypes[i]); } sb.append (")"); _addToSignature (sb, returnType); *************** public class Signature *** 132,138 **** sb.append('J'); return; } ! String name = k.getName (); int len = name.length (); sb.ensureCapacity (len); --- 132,138 ---- sb.append('J'); return; } ! String name = k.getName (); int len = name.length (); sb.ensureCapacity (len); *************** public class Signature *** 140,149 **** sb.append('L'); for (int i = 0; i < len; ++i) { ! char c = name.charAt (i); ! if (c == '.') ! c = '/'; ! sb.append (c); } if (! k.isArray ()) sb.append(';'); --- 140,149 ---- sb.append('L'); for (int i = 0; i < len; ++i) { ! char c = name.charAt (i); ! if (c == '.') ! c = '/'; ! sb.append (c); } if (! k.isArray ()) sb.append(';'); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/VariableTable.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/VariableTable.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/util/VariableTable.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/util/VariableTable.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * A class representing a Variable Table for a method. ! * * @author Aaron Luchko */ public class VariableTable --- 44,50 ---- /** * A class representing a Variable Table for a method. ! * * @author Aaron Luchko */ public class VariableTable *************** public class VariableTable *** 66,72 **** /** * Make a new variable table with the given values. ! * * @param argCnt number of words used by arguments in this frame * @param slots number of variables * @param lineCI first code index of given variable (size slots) --- 66,72 ---- /** * Make a new variable table with the given values. ! * * @param argCnt number of words used by arguments in this frame * @param slots number of variables * @param lineCI first code index of given variable (size slots) *************** public class VariableTable *** 89,95 **** /** * Writes this line table to the given DataOutputStream. ! * * @param os the stream to write it to * @throws IOException */ --- 89,95 ---- /** * Writes this line table to the given DataOutputStream. ! * * @param os the stream to write it to * @throws IOException */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ArrayValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ArrayValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ArrayValue.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ArrayValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 46,52 **** /** * Wrapper for an Array value. ! * * @author Kyle Galloway */ public class ArrayValue --- 46,52 ---- /** * Wrapper for an Array value. ! * * @author Kyle Galloway */ public class ArrayValue *************** public class ArrayValue *** 57,63 **** /** * Create a new ArrayValue from an Object ! * * @param value the Object to wrap */ public ArrayValue(Object value) --- 57,63 ---- /** * Create a new ArrayValue from an Object ! * * @param value the Object to wrap */ public ArrayValue(Object value) *************** public class ArrayValue *** 65,74 **** super(JdwpConstants.Tag.ARRAY); _value = value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 65,74 ---- super(JdwpConstants.Tag.ARRAY); _value = value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public class ArrayValue *** 79,85 **** /** * Write the wrapped object to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 79,85 ---- /** * Write the wrapped object to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/BooleanValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/BooleanValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/BooleanValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/BooleanValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an boolean value. ! * * @author Kyle Galloway */ public final class BooleanValue --- 44,50 ---- /** * Wrapper for an boolean value. ! * * @author Kyle Galloway */ public final class BooleanValue *************** public final class BooleanValue *** 55,61 **** /** * Create a new BooleanValue from an boolean ! * * @param value the boolean to wrap */ public BooleanValue(boolean value) --- 55,61 ---- /** * Create a new BooleanValue from an boolean ! * * @param value the boolean to wrap */ public BooleanValue(boolean value) *************** public final class BooleanValue *** 63,82 **** super(JdwpConstants.Tag.BOOLEAN); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public boolean getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 63,82 ---- super(JdwpConstants.Tag.BOOLEAN); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public boolean getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class BooleanValue *** 87,93 **** /** * Write the wrapped boolean to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 87,93 ---- /** * Write the wrapped boolean to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override *************** public final class BooleanValue *** 97,100 **** os.writeBoolean(_value); } } - --- 97,99 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ByteValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ByteValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ByteValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ByteValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an byte value. ! * * @author Kyle Galloway */ public final class ByteValue --- 44,50 ---- /** * Wrapper for an byte value. ! * * @author Kyle Galloway */ public final class ByteValue *************** public final class ByteValue *** 55,61 **** /** * Create a new ByteValue from an byte ! * * @param value the byte to wrap */ public ByteValue(byte value) --- 55,61 ---- /** * Create a new ByteValue from an byte ! * * @param value the byte to wrap */ public ByteValue(byte value) *************** public final class ByteValue *** 63,82 **** super(JdwpConstants.Tag.BYTE); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public byte getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 63,82 ---- super(JdwpConstants.Tag.BYTE); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public byte getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class ByteValue *** 87,93 **** /** * Write the wrapped byte to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 87,93 ---- /** * Write the wrapped byte to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/CharValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/CharValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/CharValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/CharValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an char value. ! * * @author Kyle Galloway */ public final class CharValue --- 44,50 ---- /** * Wrapper for an char value. ! * * @author Kyle Galloway */ public final class CharValue *************** public final class CharValue *** 55,61 **** /** * Create a new CharValue from an char ! * * @param value the char to wrap */ public CharValue(char value) --- 55,61 ---- /** * Create a new CharValue from an char ! * * @param value the char to wrap */ public CharValue(char value) *************** public final class CharValue *** 63,82 **** super(JdwpConstants.Tag.CHAR); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public char getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 63,82 ---- super(JdwpConstants.Tag.CHAR); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public char getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class CharValue *** 87,93 **** /** * Write the wrapped char to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 87,93 ---- /** * Write the wrapped char to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override *************** public final class CharValue *** 97,100 **** os.writeChar(_value); } } - --- 97,99 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/DoubleValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/DoubleValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/DoubleValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/DoubleValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an double value. ! * * @author Kyle Galloway */ public final class DoubleValue --- 44,50 ---- /** * Wrapper for an double value. ! * * @author Kyle Galloway */ public final class DoubleValue *************** public final class DoubleValue *** 55,61 **** /** * Create a new DoubleValue from an double ! * * @param value the double to wrap */ public DoubleValue(double value) --- 55,61 ---- /** * Create a new DoubleValue from an double ! * * @param value the double to wrap */ public DoubleValue(double value) *************** public final class DoubleValue *** 63,82 **** super(JdwpConstants.Tag.DOUBLE); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public double getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 63,82 ---- super(JdwpConstants.Tag.DOUBLE); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public double getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class DoubleValue *** 87,93 **** /** * Write the wrapped double to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 87,93 ---- /** * Write the wrapped double to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override *************** public final class DoubleValue *** 97,100 **** os.writeDouble(_value); } } - --- 97,99 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/FloatValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/FloatValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/FloatValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/FloatValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an float value. ! * * @author Kyle Galloway */ public final class FloatValue --- 44,50 ---- /** * Wrapper for an float value. ! * * @author Kyle Galloway */ public final class FloatValue *************** public final class FloatValue *** 55,61 **** /** * Create a new FloatValue from an float ! * * @param value the float to wrap */ public FloatValue(float value) --- 55,61 ---- /** * Create a new FloatValue from an float ! * * @param value the float to wrap */ public FloatValue(float value) *************** public final class FloatValue *** 63,82 **** super(JdwpConstants.Tag.FLOAT); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public float getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 63,82 ---- super(JdwpConstants.Tag.FLOAT); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public float getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class FloatValue *** 87,93 **** /** * Write the wrapped float to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 87,93 ---- /** * Write the wrapped float to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override *************** public final class FloatValue *** 97,100 **** os.writeFloat(_value); } } - --- 97,99 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/IntValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/IntValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/IntValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/IntValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an int value. ! * * @author Kyle Galloway */ public final class IntValue --- 44,50 ---- /** * Wrapper for an int value. ! * * @author Kyle Galloway */ public final class IntValue *************** public final class IntValue *** 55,61 **** /** * Create a new IntValue from an int ! * * @param value the int to wrap */ public IntValue(int value) --- 55,61 ---- /** * Create a new IntValue from an int ! * * @param value the int to wrap */ public IntValue(int value) *************** public final class IntValue *** 63,82 **** super(JdwpConstants.Tag.INT); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public int getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 63,82 ---- super(JdwpConstants.Tag.INT); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public int getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class IntValue *** 87,93 **** /** * Write the wrapped int to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 87,93 ---- /** * Write the wrapped int to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override *************** public final class IntValue *** 97,100 **** os.writeInt(_value); } } - --- 97,99 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/LongValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/LongValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/LongValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/LongValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an long value. ! * * @author Kyle Galloway */ public final class LongValue --- 44,50 ---- /** * Wrapper for an long value. ! * * @author Kyle Galloway */ public final class LongValue *************** public final class LongValue *** 55,61 **** /** * Create a new LongValue from an long ! * * @param value the long to wrap */ public LongValue(long value) --- 55,61 ---- /** * Create a new LongValue from an long ! * * @param value the long to wrap */ public LongValue(long value) *************** public final class LongValue *** 63,82 **** super(JdwpConstants.Tag.LONG); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public long getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 63,82 ---- super(JdwpConstants.Tag.LONG); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public long getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class LongValue *** 87,93 **** /** * Write the wrapped long to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 87,93 ---- /** * Write the wrapped long to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override *************** public final class LongValue *** 97,100 **** os.writeLong(_value); } } - --- 97,99 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ObjectValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ObjectValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ObjectValue.java Wed Jun 20 20:30:34 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ObjectValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 46,52 **** /** * Wrapper for an Object value. ! * * @author Kyle Galloway */ public final class ObjectValue --- 46,52 ---- /** * Wrapper for an Object value. ! * * @author Kyle Galloway */ public final class ObjectValue *************** public final class ObjectValue *** 57,63 **** /** * Create a new ObjectValue from an Object ! * * @param value the Object to wrap */ public ObjectValue(Object value) --- 57,63 ---- /** * Create a new ObjectValue from an Object ! * * @param value the Object to wrap */ public ObjectValue(Object value) *************** public final class ObjectValue *** 65,74 **** super(JdwpConstants.Tag.OBJECT); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public Object getValue() --- 65,74 ---- super(JdwpConstants.Tag.OBJECT); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public Object getValue() *************** public final class ObjectValue *** 78,84 **** /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 78,84 ---- /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class ObjectValue *** 89,95 **** /** * Write the wrapped object to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 89,95 ---- /** * Write the wrapped object to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ShortValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ShortValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ShortValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ShortValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an short value. ! * * @author Kyle Galloway */ public final class ShortValue --- 44,50 ---- /** * Wrapper for an short value. ! * * @author Kyle Galloway */ public final class ShortValue *************** public final class ShortValue *** 55,61 **** /** * Create a new ShortValue from a short ! * * @param value the short to wrap */ public ShortValue(short value) --- 55,61 ---- /** * Create a new ShortValue from a short ! * * @param value the short to wrap */ public ShortValue(short value) *************** public final class ShortValue *** 63,82 **** super(JdwpConstants.Tag.SHORT); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public short getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 63,82 ---- super(JdwpConstants.Tag.SHORT); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public short getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class ShortValue *** 87,93 **** /** * Write the wrapped short to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 87,93 ---- /** * Write the wrapped short to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override *************** public final class ShortValue *** 97,100 **** os.writeShort(_value); } } - --- 97,99 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/StringValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/StringValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/StringValue.java Wed Jun 20 20:35:22 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/StringValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 46,52 **** /** * Wrapper for an String value. ! * * @author Kyle Galloway */ public final class StringValue --- 46,52 ---- /** * Wrapper for an String value. ! * * @author Kyle Galloway */ public final class StringValue *************** public final class StringValue *** 57,63 **** /** * Create a new StringValue from an String ! * * @param value the String to wrap */ public StringValue(String value) --- 57,63 ---- /** * Create a new StringValue from an String ! * * @param value the String to wrap */ public StringValue(String value) *************** public final class StringValue *** 65,84 **** super(JdwpConstants.Tag.STRING); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public String getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 65,84 ---- super(JdwpConstants.Tag.STRING); _value = value; } ! /** * Get the value held in this Value ! * * @return the value represented by this Value object */ public String getValue() { return _value; } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public final class StringValue *** 89,95 **** /** * Write the wrapped object to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override --- 89,95 ---- /** * Write the wrapped object to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/Value.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/Value.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/Value.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/Value.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 49,98 **** /** * Superclass for all JDWP Values. ! * * @author Kyle Galloway */ public abstract class Value { // A Tag representing the type of this value private byte _tag; ! /** * Create a new value of type tag. ! * * @param tag the type of the value ! */ protected Value(byte tag) { _tag = tag; } ! /** * Get the tag for this Value ! * * @return the byte tag of this Value */ public byte getTag() { return _tag; } ! /** ! * Calls the dervied classes writeValue method to write its value to the * DataOutputStream. ! * * @param os write the value here * @throws IOException ! */ public void writeUntagged(DataOutputStream os) throws IOException { write(os); } ! /** * Will write the given object as a tagged value to the DataOutputStream. ! * * @param os write the value here * @param obj the Object to write * @throws IOException --- 49,98 ---- /** * Superclass for all JDWP Values. ! * * @author Kyle Galloway */ public abstract class Value { // A Tag representing the type of this value private byte _tag; ! /** * Create a new value of type tag. ! * * @param tag the type of the value ! */ protected Value(byte tag) { _tag = tag; } ! /** * Get the tag for this Value ! * * @return the byte tag of this Value */ public byte getTag() { return _tag; } ! /** ! * Calls the dervied classes writeValue method to write its value to the * DataOutputStream. ! * * @param os write the value here * @throws IOException ! */ public void writeUntagged(DataOutputStream os) throws IOException { write(os); } ! /** * Will write the given object as a tagged value to the DataOutputStream. ! * * @param os write the value here * @param obj the Object to write * @throws IOException *************** public abstract class Value *** 103,129 **** os.write (_tag); write(os); } ! /** * This method must write the value to the DataOutputStream in a manner * appropriate for the type of the value. ! * * @param os DataOutputStream to write to * @throws IOException */ protected abstract void write(DataOutputStream os) throws IOException; ! /** * Returns an object representing this type ! * * @return an Object represntation of this value */ protected abstract Object getObject(); ! /** * Get an untagged object from the ByteBuffer ! * * @param bb the ByteBuffer to extract the value from * @param type a Class representing the type * @return an Object from the ByteBuffer of the type of the Class parameter --- 103,129 ---- os.write (_tag); write(os); } ! /** * This method must write the value to the DataOutputStream in a manner * appropriate for the type of the value. ! * * @param os DataOutputStream to write to * @throws IOException */ protected abstract void write(DataOutputStream os) throws IOException; ! /** * Returns an object representing this type ! * * @return an Object represntation of this value */ protected abstract Object getObject(); ! /** * Get an untagged object from the ByteBuffer ! * * @param bb the ByteBuffer to extract the value from * @param type a Class representing the type * @return an Object from the ByteBuffer of the type of the Class parameter *************** public abstract class Value *** 136,145 **** Value val = ValueFactory.createFromUntagged(bb, type); return val.getObject(); } ! /** * Get an untagged object from the ByteBuffer ! * * @param bb the ByteBuffer to extract the value from * @param tag a byte tag representing the type * @return an Object from the ByteBuffer of the type of the Class parameter --- 136,145 ---- Value val = ValueFactory.createFromUntagged(bb, type); return val.getObject(); } ! /** * Get an untagged object from the ByteBuffer ! * * @param bb the ByteBuffer to extract the value from * @param tag a byte tag representing the type * @return an Object from the ByteBuffer of the type of the Class parameter diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ValueFactory.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ValueFactory.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/ValueFactory.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/ValueFactory.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 50,56 **** /** * A factory to create JDWP Values. ! * * @author Kyle Galloway */ public class ValueFactory --- 50,56 ---- /** * A factory to create JDWP Values. ! * * @author Kyle Galloway */ public class ValueFactory *************** public class ValueFactory *** 58,64 **** /** * Creates a new Value of appropriate type for the value in the ByteBuffer * by reading the tag byte from the front of the buffer. ! * * @param bb contains the Object * @return A new Value of appropriate type * @throws JdwpInternalErrorException --- 58,64 ---- /** * Creates a new Value of appropriate type for the value in the ByteBuffer * by reading the tag byte from the front of the buffer. ! * * @param bb contains the Object * @return A new Value of appropriate type * @throws JdwpInternalErrorException *************** public class ValueFactory *** 69,79 **** { return create(bb, bb.get()); } ! /** * Creates a new Value of appropriate type for the value in the ByteBuffer * by checking the type of the Class passed in. ! * * @param bb contains the Object * @param type a Class representing the type of the value in the ByteBuffer * @return A new Value of appropriate type --- 69,79 ---- { return create(bb, bb.get()); } ! /** * Creates a new Value of appropriate type for the value in the ByteBuffer * by checking the type of the Class passed in. ! * * @param bb contains the Object * @param type a Class representing the type of the value in the ByteBuffer * @return A new Value of appropriate type *************** public class ValueFactory *** 84,90 **** throws JdwpInternalErrorException, InvalidObjectException, InvalidClassException { byte tag = getTagForClass(type); ! try { return create(bb, tag); --- 84,90 ---- throws JdwpInternalErrorException, InvalidObjectException, InvalidClassException { byte tag = getTagForClass(type); ! try { return create(bb, tag); *************** public class ValueFactory *** 94,103 **** throw new InvalidClassException(ite); } } ! /** * Creates a new Value of appropriate type for the value in the ByteBuffer. ! * * @param bb contains the Object * @param tag a byte representing the type of the object * @return A new Value of appropriate type --- 94,103 ---- throw new InvalidClassException(ite); } } ! /** * Creates a new Value of appropriate type for the value in the ByteBuffer. ! * * @param bb contains the Object * @param tag a byte representing the type of the object * @return A new Value of appropriate type *************** public class ValueFactory *** 152,164 **** default: throw new InvalidTagException(tag); } ! return val; } ! /** * Creates a tag for the type of the class. ! * * @param klass the type to get a tag for * @return a byte tag representing the class * @throws JdwpInternalErrorException --- 152,164 ---- default: throw new InvalidTagException(tag); } ! return val; } ! /** * Creates a tag for the type of the class. ! * * @param klass the type to get a tag for * @return a byte tag representing the class * @throws JdwpInternalErrorException *************** public class ValueFactory *** 168,174 **** throws JdwpInternalErrorException { byte tag; ! if (klass.isPrimitive()) { if (klass == byte.class) --- 168,174 ---- throws JdwpInternalErrorException { byte tag; ! if (klass.isPrimitive()) { if (klass == byte.class) *************** public class ValueFactory *** 196,210 **** { tag = JdwpConstants.Tag.OBJECT; } ! return tag; } ! /** * Create a value type for an Object of type determined by a Class. This is * a special case where a value needs to be created, but the value to create * it for is already in an object, not in a buffer. ! * * @param value the Object to convert to a Value * @param type the Class type of the object * @return a new Value representing this object --- 196,210 ---- { tag = JdwpConstants.Tag.OBJECT; } ! return tag; } ! /** * Create a value type for an Object of type determined by a Class. This is * a special case where a value needs to be created, but the value to create * it for is already in an object, not in a buffer. ! * * @param value the Object to convert to a Value * @param type the Class type of the object * @return a new Value representing this object *************** public class ValueFactory *** 212,218 **** public static Value createFromObject(Object value, Class type) { Value val = null; ! if (type.isPrimitive()) { if (type == byte.class) --- 212,218 ---- public static Value createFromObject(Object value, Class type) { Value val = null; ! if (type.isPrimitive()) { if (type == byte.class) *************** public class ValueFactory *** 241,247 **** else val = new ObjectValue(value); } ! return val; } } --- 241,247 ---- else val = new ObjectValue(value); } ! return val; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/VoidValue.java gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/VoidValue.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/jdwp/value/VoidValue.java Tue Mar 27 18:40:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/classpath/jdwp/value/VoidValue.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 44,50 **** /** * Wrapper for an void value. ! * * @author Kyle Galloway */ public class VoidValue --- 44,50 ---- /** * Wrapper for an void value. ! * * @author Kyle Galloway */ public class VoidValue *************** public class VoidValue *** 57,66 **** { super(JdwpConstants.Tag.VOID); } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override --- 57,66 ---- { super(JdwpConstants.Tag.VOID); } ! /** * Return an object representing this type ! * * @return an Object represntation of this value */ @Override *************** public class VoidValue *** 71,81 **** /** * Write the wrapped void to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override ! protected void write(DataOutputStream os) throws IOException { } --- 71,81 ---- /** * Write the wrapped void to the given DataOutputStream. ! * * @param os the output stream to write to */ @Override ! protected void write(DataOutputStream os) throws IOException { } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java gcc-4.6.0/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java *** gcc-4.5.2/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java Sun Feb 3 16:23:27 2008 --- gcc-4.6.0/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* DefaultDaemonThreadFactory.java -- Factory for Deamon Threads. ! Copyright (C) 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* DefaultDaemonThreadFactory.java -- Factory for Deamon Threads. ! Copyright (C) 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.concurrent.ThreadFactor *** 45,51 **** * Create a new thread using all the default settings as returned by * Executors.defaultThreadFactory() plus calling * thread.setDaemon(true) on the newly created thread. ! * * @author Mario Torre */ public class DefaultDaemonThreadFactory implements ThreadFactory --- 45,51 ---- * Create a new thread using all the default settings as returned by * Executors.defaultThreadFactory() plus calling * thread.setDaemon(true) on the newly created thread. ! * * @author Mario Torre */ public class DefaultDaemonThreadFactory implements ThreadFactory diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/AWTUtilities.java gcc-4.6.0/libjava/classpath/gnu/java/awt/AWTUtilities.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/AWTUtilities.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/AWTUtilities.java Tue Jan 11 19:46:05 2011 *************** import java.util.WeakHashMap; *** 57,63 **** import java.lang.reflect.InvocationTargetException; /** ! * This class mirrors the javax.swing.SwingUtilities class. It * provides commonly needed functionalities for AWT classes without * the need to reference classes in the javax.swing package. */ --- 57,63 ---- import java.lang.reflect.InvocationTargetException; /** ! * This class mirrors the javax.swing.SwingUtilities class. It * provides commonly needed functionalities for AWT classes without * the need to reference classes in the javax.swing package. */ *************** public class AWTUtilities *** 91,103 **** */ VisibleComponentIterator(int listIndex) { ! this.listIndex = listIndex; ! int visibleComponentsFound = 0; ! for (index = 0; visibleComponentsFound != listIndex; index++) ! { ! if (components[index].isVisible()) ! visibleComponentsFound++; ! } } /** --- 91,103 ---- */ VisibleComponentIterator(int listIndex) { ! this.listIndex = listIndex; ! int visibleComponentsFound = 0; ! for (index = 0; visibleComponentsFound != listIndex; index++) ! { ! if (components[index].isVisible()) ! visibleComponentsFound++; ! } } /** *************** public class AWTUtilities *** 109,124 **** */ public boolean hasNext() { ! boolean hasNext = false; ! for (int i = index; i < components.length; i++) ! { ! if (components[i].isVisible()) ! { ! hasNext = true; ! break; ! } ! } ! return hasNext; } /** --- 109,124 ---- */ public boolean hasNext() { ! boolean hasNext = false; ! for (int i = index; i < components.length; i++) ! { ! if (components[i].isVisible()) ! { ! hasNext = true; ! break; ! } ! } ! return hasNext; } /** *************** public class AWTUtilities *** 130,152 **** */ public Object next() { ! Object o = null; ! for (; index < components.length; index++) ! { ! if (components[index].isVisible()) ! { ! o = components[index]; ! break; ! } ! } ! if (o != null) ! { ! index++; ! listIndex++; ! return o; ! } ! else ! throw new NoSuchElementException(); } /** --- 130,152 ---- */ public Object next() { ! Object o = null; ! for (; index < components.length; index++) ! { ! if (components[index].isVisible()) ! { ! o = components[index]; ! break; ! } ! } ! if (o != null) ! { ! index++; ! listIndex++; ! return o; ! } ! else ! throw new NoSuchElementException(); } /** *************** public class AWTUtilities *** 158,173 **** */ public boolean hasPrevious() { ! boolean hasPrevious = false; ! for (int i = index - 1; i >= 0; i--) ! { ! if (components[i].isVisible()) ! { ! hasPrevious = true; ! break; ! } ! } ! return hasPrevious; } /** --- 158,173 ---- */ public boolean hasPrevious() { ! boolean hasPrevious = false; ! for (int i = index - 1; i >= 0; i--) ! { ! if (components[i].isVisible()) ! { ! hasPrevious = true; ! break; ! } ! } ! return hasPrevious; } /** *************** public class AWTUtilities *** 179,200 **** */ public Object previous() { ! Object o = null; ! for (index--; index >= 0; index--) ! { ! if (components[index].isVisible()) ! { ! o = components[index]; ! break; ! } ! } ! if (o != null) ! { ! listIndex--; ! return o; ! } ! else ! throw new NoSuchElementException(); } /** --- 179,200 ---- */ public Object previous() { ! Object o = null; ! for (index--; index >= 0; index--) ! { ! if (components[index].isVisible()) ! { ! o = components[index]; ! break; ! } ! } ! if (o != null) ! { ! listIndex--; ! return o; ! } ! else ! throw new NoSuchElementException(); } /** *************** public class AWTUtilities *** 204,210 **** */ public int nextIndex() { ! return listIndex + 1; } /** --- 204,210 ---- */ public int nextIndex() { ! return listIndex + 1; } /** *************** public class AWTUtilities *** 214,220 **** */ public int previousIndex() { ! return listIndex - 1; } /** --- 214,220 ---- */ public int previousIndex() { ! return listIndex - 1; } /** *************** public class AWTUtilities *** 224,231 **** */ public void remove() { ! throw new UnsupportedOperationException ! ("VisibleComponentList is immutable"); } /** --- 224,231 ---- */ public void remove() { ! throw new UnsupportedOperationException ! ("VisibleComponentList is immutable"); } /** *************** public class AWTUtilities *** 237,244 **** */ public void set(Object o) { ! throw new UnsupportedOperationException ! ("VisibleComponentList is immutable"); } /** --- 237,244 ---- */ public void set(Object o) { ! throw new UnsupportedOperationException ! ("VisibleComponentList is immutable"); } /** *************** public class AWTUtilities *** 250,257 **** */ public void add(Object o) { ! throw new UnsupportedOperationException ! ("VisibleComponentList is immutable"); } } --- 250,257 ---- */ public void add(Object o) { ! throw new UnsupportedOperationException ! ("VisibleComponentList is immutable"); } } *************** public class AWTUtilities *** 291,298 **** { int visibleComponents = 0; for (int i = 0; i < components.length; i++) ! if (components[i].isVisible()) ! visibleComponents++; return visibleComponents; } } --- 291,298 ---- { int visibleComponents = 0; for (int i = 0; i < components.length; i++) ! if (components[i].isVisible()) ! visibleComponents++; return visibleComponents; } } *************** public class AWTUtilities *** 322,329 **** VisibleComponentList visibleChildren = null; if (o == null) { ! visibleChildren = new VisibleComponentList(children); ! visibleChildrenCache.put(children, visibleChildren); } else visibleChildren = (VisibleComponentList) o; --- 322,329 ---- VisibleComponentList visibleChildren = null; if (o == null) { ! visibleChildren = new VisibleComponentList(children); ! visibleChildrenCache.put(children, visibleChildren); } else visibleChildren = (VisibleComponentList) o; *************** public class AWTUtilities *** 419,426 **** * * @see #getAncestorOfClass * @see #windowForComponent ! * @see ! * */ public static Container getAncestorOfClass(Class c, Component comp) { --- 419,426 ---- * * @see #getAncestorOfClass * @see #windowForComponent ! * @see ! * */ public static Container getAncestorOfClass(Class c, Component comp) { *************** public class AWTUtilities *** 432,438 **** /** * Equivalent to calling getAncestorOfClass(Window, comp). * ! * @param comp The component to search for an ancestor window * * @return An ancestral window, or null if none exists */ --- 432,438 ---- /** * Equivalent to calling getAncestorOfClass(Window, comp). * ! * @param comp The component to search for an ancestor window * * @return An ancestral window, or null if none exists */ *************** public class AWTUtilities *** 500,506 **** * (x,y). Returns null when either * (x,y) is outside the bounds of parent, or parent is * null. ! * * @param parent The component to search the descendents of * @param x Horizontal coordinate to search for * @param y Vertical coordinate to search for --- 500,506 ---- * (x,y). Returns null when either * (x,y) is outside the bounds of parent, or parent is * null. ! * * @param parent The component to search the descendents of * @param x Horizontal coordinate to search for * @param y Vertical coordinate to search for *************** public class AWTUtilities *** 593,599 **** if (destination == null) destination = getRoot(source); ! if (source.isShowing() && destination.isShowing()) { convertPointToScreen(pt, source); --- 593,599 ---- if (destination == null) destination = getRoot(source); ! if (source.isShowing() && destination.isShowing()) { convertPointToScreen(pt, source); *************** public class AWTUtilities *** 603,609 **** return pt; } ! /** * Converts a rectangle from the coordinate space of one component to * another. This is equivalent to converting the rectangle from --- 603,609 ---- return pt; } ! /** * Converts a rectangle from the coordinate space of one component to * another. This is equivalent to converting the rectangle from *************** public class AWTUtilities *** 668,685 **** } ! /** * Calls {@link java.awt.EventQueue.invokeLater} with the ! * specified {@link Runnable}. */ public static void invokeLater(Runnable doRun) { java.awt.EventQueue.invokeLater(doRun); } ! /** * Calls {@link java.awt.EventQueue.invokeAndWait} with the ! * specified {@link Runnable}. */ public static void invokeAndWait(Runnable doRun) throws InterruptedException, --- 668,685 ---- } ! /** * Calls {@link java.awt.EventQueue.invokeLater} with the ! * specified {@link Runnable}. */ public static void invokeLater(Runnable doRun) { java.awt.EventQueue.invokeLater(doRun); } ! /** * Calls {@link java.awt.EventQueue.invokeAndWait} with the ! * specified {@link Runnable}. */ public static void invokeAndWait(Runnable doRun) throws InterruptedException, *************** public class AWTUtilities *** 688,694 **** java.awt.EventQueue.invokeAndWait(doRun); } ! /** * Calls {@link java.awt.EventQueue.isEventDispatchThread}. */ public static boolean isEventDispatchThread() --- 688,694 ---- java.awt.EventQueue.invokeAndWait(doRun); } ! /** * Calls {@link java.awt.EventQueue.isEventDispatchThread}. */ public static boolean isEventDispatchThread() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/BitMaskExtent.java gcc-4.6.0/libjava/classpath/gnu/java/awt/BitMaskExtent.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/BitMaskExtent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/BitMaskExtent.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 36,42 **** package gnu.java.awt; ! /** * Simple transparent utility class that can be used to perform bit * mask extent calculations. */ --- 36,42 ---- package gnu.java.awt; ! /** * Simple transparent utility class that can be used to perform bit * mask extent calculations. */ *************** public final class BitMaskExtent *** 47,53 **** /** The number of bits in the bit mask extent. */ public byte bitWidth; ! /** * Set the bit mask. This will calculate and set the leastSignificantBit * and bitWidth fields. --- 47,53 ---- /** The number of bits in the bit mask extent. */ public byte bitWidth; ! /** * Set the bit mask. This will calculate and set the leastSignificantBit * and bitWidth fields. *************** public final class BitMaskExtent *** 63,79 **** long shiftMask = mask; for (; (shiftMask&1) == 0; shiftMask >>>=1) leastSignificantBit++; for (; (shiftMask&1) != 0; shiftMask >>>=1) bitWidth++; ! if (shiftMask != 0) throw new IllegalArgumentException("mask must be continuous"); } ! ! /** * Calculate the bit mask based on the values of the * leastSignificantBit and bitWidth fields. */ public long toMask() { return ((1<>>=1) leastSignificantBit++; for (; (shiftMask&1) != 0; shiftMask >>>=1) bitWidth++; ! if (shiftMask != 0) throw new IllegalArgumentException("mask must be continuous"); } ! ! /** * Calculate the bit mask based on the values of the * leastSignificantBit and bitWidth fields. */ public long toMask() { return ((1<The purpose of this composite is to support the {@link * Graphics#setXORMode(Color)} method in composite-aware graphics * implementations. Applications typically would use --- 63,69 ---- * white, blue, black, orange, green, and brown, respectively. Each * composite was used to paint a fully white rectangle on top of the * blue bar in the background. ! * *

      The purpose of this composite is to support the {@link * Graphics#setXORMode(Color)} method in composite-aware graphics * implementations. Applications typically would use *************** public class BitwiseXORComposite *** 96,102 **** */ protected Color xorColor; ! /** * Constructs a new composite for xor-ing the pixel value. * --- 96,102 ---- */ protected Color xorColor; ! /** * Constructs a new composite for xor-ing the pixel value. * *************** public class BitwiseXORComposite *** 128,134 **** return new GeneralContext(srcColorModel, dstColorModel, xorColor); } ! /** * A fallback CompositeContext that performs bitwise XOR of pixel * values with the pixel value of the specified xorColor. --- 128,134 ---- return new GeneralContext(srcColorModel, dstColorModel, xorColor); } ! /** * A fallback CompositeContext that performs bitwise XOR of pixel * values with the pixel value of the specified xorColor. *************** public class BitwiseXORComposite *** 164,170 **** Rectangle srcRect = src.getBounds(); Rectangle dstInRect = dstIn.getBounds(); Rectangle dstOutRect = dstOut.getBounds(); ! int xp = xorColor.getRGB(); int w = Math.min(Math.min(srcRect.width, dstOutRect.width), dstInRect.width); --- 164,170 ---- Rectangle srcRect = src.getBounds(); Rectangle dstInRect = dstIn.getBounds(); Rectangle dstOutRect = dstOut.getBounds(); ! int xp = xorColor.getRGB(); int w = Math.min(Math.min(srcRect.width, dstOutRect.width), dstInRect.width); *************** public class BitwiseXORComposite *** 186,192 **** int sp = srcColorModel.getRGB(srcPix); int dp = dstColorModel.getRGB(dstPix); int rp = sp ^ xp ^ dp; ! dstOut.setDataElements(x + dstOutRect.x, y + dstOutRect.y, dstColorModel.getDataElements(rp, rpPix)); } } --- 186,192 ---- int sp = srcColorModel.getRGB(srcPix); int dp = dstColorModel.getRGB(dstPix); int rp = sp ^ xp ^ dp; ! dstOut.setDataElements(x + dstOutRect.x, y + dstOutRect.y, dstColorModel.getDataElements(rp, rpPix)); } } *************** public class BitwiseXORComposite *** 249,255 **** srcLine = new int[width]; dstLine = new int[width]; ! /* We need an int[] array with at least one element here; * srcLine is as good as any other. */ --- 249,255 ---- srcLine = new int[width]; dstLine = new int[width]; ! /* We need an int[] array with at least one element here; * srcLine is as good as any other. */ *************** public class BitwiseXORComposite *** 268,274 **** } } ! /** * Determines whether an instance of this CompositeContext would * be able to process the specified color models. --- 268,274 ---- } } ! /** * Determines whether an instance of this CompositeContext would * be able to process the specified color models. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/Buffers.java gcc-4.6.0/libjava/classpath/gnu/java/awt/Buffers.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/Buffers.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/Buffers.java Tue Jan 11 19:46:05 2011 *************** import java.awt.image.DataBufferInt; *** 46,52 **** import java.awt.image.DataBufferShort; import java.awt.image.DataBufferUShort; ! /** * Utility class for creating and accessing data buffers of arbitrary * data types. */ --- 46,52 ---- import java.awt.image.DataBufferShort; import java.awt.image.DataBufferUShort; ! /** * Utility class for creating and accessing data buffers of arbitrary * data types. */ *************** public final class Buffers *** 60,66 **** * @param size the size of the data buffer bank */ public static DataBuffer createBuffer(int dataType, Object data, ! int size) { if (data == null) return createBuffer(dataType, size, 1); --- 60,66 ---- * @param size the size of the data buffer bank */ public static DataBuffer createBuffer(int dataType, Object data, ! int size) { if (data == null) return createBuffer(dataType, size, 1); *************** public final class Buffers *** 90,111 **** switch (dataType) { case DataBuffer.TYPE_BYTE: ! return new DataBufferByte(size, numBanks); case DataBuffer.TYPE_SHORT: ! return new DataBufferShort(size, numBanks); case DataBuffer.TYPE_USHORT: ! return new DataBufferUShort(size, numBanks); case DataBuffer.TYPE_INT: ! return new DataBufferInt(size, numBanks); case DataBuffer.TYPE_FLOAT: ! return new DataBufferFloat(size, numBanks); case DataBuffer.TYPE_DOUBLE: ! return new DataBufferDouble(size, numBanks); default: ! throw new UnsupportedOperationException(); } } ! /** * Create a data buffer of a particular type. * --- 90,111 ---- switch (dataType) { case DataBuffer.TYPE_BYTE: ! return new DataBufferByte(size, numBanks); case DataBuffer.TYPE_SHORT: ! return new DataBufferShort(size, numBanks); case DataBuffer.TYPE_USHORT: ! return new DataBufferUShort(size, numBanks); case DataBuffer.TYPE_INT: ! return new DataBufferInt(size, numBanks); case DataBuffer.TYPE_FLOAT: ! return new DataBufferFloat(size, numBanks); case DataBuffer.TYPE_DOUBLE: ! return new DataBufferDouble(size, numBanks); default: ! throw new UnsupportedOperationException(); } } ! /** * Create a data buffer of a particular type. * *************** public final class Buffers *** 114,141 **** * @param size the size of the data buffer bank */ public static DataBuffer createBufferFromData(int dataType, Object data, ! int size) { switch (dataType) { case DataBuffer.TYPE_BYTE: ! return new DataBufferByte((byte[]) data, size); case DataBuffer.TYPE_SHORT: ! return new DataBufferShort((short[]) data, size); case DataBuffer.TYPE_USHORT: ! return new DataBufferUShort((short[]) data, size); case DataBuffer.TYPE_INT: ! return new DataBufferInt((int[]) data, size); case DataBuffer.TYPE_FLOAT: ! return new DataBufferFloat((float[]) data, size); case DataBuffer.TYPE_DOUBLE: ! return new DataBufferDouble((double[]) data, size); default: ! throw new UnsupportedOperationException(); } } ! /** * Return the data array of a data buffer, regardless of the data * type. * --- 114,141 ---- * @param size the size of the data buffer bank */ public static DataBuffer createBufferFromData(int dataType, Object data, ! int size) { switch (dataType) { case DataBuffer.TYPE_BYTE: ! return new DataBufferByte((byte[]) data, size); case DataBuffer.TYPE_SHORT: ! return new DataBufferShort((short[]) data, size); case DataBuffer.TYPE_USHORT: ! return new DataBufferUShort((short[]) data, size); case DataBuffer.TYPE_INT: ! return new DataBufferInt((int[]) data, size); case DataBuffer.TYPE_FLOAT: ! return new DataBufferFloat((float[]) data, size); case DataBuffer.TYPE_DOUBLE: ! return new DataBufferDouble((double[]) data, size); default: ! throw new UnsupportedOperationException(); } } ! /** * Return the data array of a data buffer, regardless of the data * type. * *************** public final class Buffers *** 147,202 **** return getData(buffer, 0, null, 0, buffer.getSize()); } ! /** * Copy data from array contained in data buffer, much like * System.arraycopy. Create a suitable destination array if the * given destination array is null. */ public static Object getData(DataBuffer src, int srcOffset, ! Object dest, int dstOffset, ! int length) { Object from; switch(src.getDataType()) { case DataBuffer.TYPE_BYTE: ! if (dest == null) dest = new byte[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((byte[])dest)[i + dstOffset] = (byte)src.getElem(i + srcOffset); ! break; case DataBuffer.TYPE_DOUBLE: ! if (dest == null) dest = new double[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((double[])dest)[i + dstOffset] = src.getElemDouble(i + srcOffset); ! break; case DataBuffer.TYPE_FLOAT: ! if (dest == null) dest = new float[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((float[])dest)[i + dstOffset] = src.getElemFloat(i + srcOffset); ! break; case DataBuffer.TYPE_INT: ! if (dest == null) dest = new int[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((int[])dest)[i + dstOffset] = src.getElem(i + srcOffset); ! break; case DataBuffer.TYPE_SHORT: case DataBuffer.TYPE_USHORT: ! if (dest == null) dest = new short[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((short[])dest)[i + dstOffset] = (short)src.getElem(i + srcOffset); ! break; case DataBuffer.TYPE_UNDEFINED: ! throw new ClassCastException("Unknown data buffer type"); } return dest; } ! /** * @param bits the width of a data element measured in bits * --- 147,202 ---- return getData(buffer, 0, null, 0, buffer.getSize()); } ! /** * Copy data from array contained in data buffer, much like * System.arraycopy. Create a suitable destination array if the * given destination array is null. */ public static Object getData(DataBuffer src, int srcOffset, ! Object dest, int dstOffset, ! int length) { Object from; switch(src.getDataType()) { case DataBuffer.TYPE_BYTE: ! if (dest == null) dest = new byte[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((byte[])dest)[i + dstOffset] = (byte)src.getElem(i + srcOffset); ! break; case DataBuffer.TYPE_DOUBLE: ! if (dest == null) dest = new double[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((double[])dest)[i + dstOffset] = src.getElemDouble(i + srcOffset); ! break; case DataBuffer.TYPE_FLOAT: ! if (dest == null) dest = new float[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((float[])dest)[i + dstOffset] = src.getElemFloat(i + srcOffset); ! break; case DataBuffer.TYPE_INT: ! if (dest == null) dest = new int[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((int[])dest)[i + dstOffset] = src.getElem(i + srcOffset); ! break; case DataBuffer.TYPE_SHORT: case DataBuffer.TYPE_USHORT: ! if (dest == null) dest = new short[length+dstOffset]; ! for(int i = 0; i < length; i++) ! ((short[])dest)[i + dstOffset] = (short)src.getElem(i + srcOffset); ! break; case DataBuffer.TYPE_UNDEFINED: ! throw new ClassCastException("Unknown data buffer type"); } return dest; } ! /** * @param bits the width of a data element measured in bits * *************** public final class Buffers *** 207,225 **** { if (bits <= 8) { ! return DataBuffer.TYPE_BYTE; } else if (bits <= 16) { ! return DataBuffer.TYPE_USHORT; ! } else if (bits <= 32) { ! return DataBuffer.TYPE_INT; } else { ! return DataBuffer.TYPE_UNDEFINED; } } } --- 207,225 ---- { if (bits <= 8) { ! return DataBuffer.TYPE_BYTE; } else if (bits <= 16) { ! return DataBuffer.TYPE_USHORT; ! } else if (bits <= 32) { ! return DataBuffer.TYPE_INT; } else { ! return DataBuffer.TYPE_UNDEFINED; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/ClasspathGraphicsEnvironment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/ClasspathGraphicsEnvironment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/ClasspathGraphicsEnvironment.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/ClasspathGraphicsEnvironment.java Tue Jan 11 19:46:05 2011 *************** import java.awt.image.WritableRaster; *** 45,51 **** /** * This class extends the GraphicsEnvironment API with some Classpath-specific * methods, in order to provide optimized graphics handling. ! * * @author Francis Kung */ public abstract class ClasspathGraphicsEnvironment --- 45,51 ---- /** * This class extends the GraphicsEnvironment API with some Classpath-specific * methods, in order to provide optimized graphics handling. ! * * @author Francis Kung */ public abstract class ClasspathGraphicsEnvironment *************** public abstract class ClasspathGraphicsE *** 54,60 **** /** * Returns an appropriate Raster that can efficiently back a * BufferedImage with the given ColorModel and SampleModel. ! * * @param cm The color model. * @param sm The samepl model. * @return An appropriate WritableRaster, or null if acceleration/optimization --- 54,60 ---- /** * Returns an appropriate Raster that can efficiently back a * BufferedImage with the given ColorModel and SampleModel. ! * * @param cm The color model. * @param sm The samepl model. * @return An appropriate WritableRaster, or null if acceleration/optimization diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/ClasspathToolkit.java gcc-4.6.0/libjava/classpath/gnu/java/awt/ClasspathToolkit.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/ClasspathToolkit.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/ClasspathToolkit.java Tue Jan 11 19:46:05 2011 *************** public abstract class ClasspathToolkit *** 102,108 **** * * @param name The logical name of the font. This may be either a face * name or a logical font name, or may even be null. A default ! * implementation of name decoding is provided in * {@link ClasspathFontPeer}, but may be overridden in other toolkits. * * @param attrs Any extra {@link java.awt.font.TextAttribute} attributes --- 102,108 ---- * * @param name The logical name of the font. This may be either a face * name or a logical font name, or may even be null. A default ! * implementation of name decoding is provided in * {@link ClasspathFontPeer}, but may be overridden in other toolkits. * * @param attrs Any extra {@link java.awt.font.TextAttribute} attributes *************** public abstract class ClasspathToolkit *** 110,126 **** * transformation. */ public abstract ClasspathFontPeer getClasspathFontPeer (String name, ! Map attrs); ! /** * Creates a {@link Font}, in a platform-specific manner. ! * * The default implementation simply constructs a {@link Font}, but some ! * toolkits may wish to override this, to return {@link Font} subclasses * which implement {@link java.awt.font.OpenType} or * {@link java.awt.font.MultipleMaster}. */ ! public Font getFont (String name, Map attrs) { Font f = null; --- 110,126 ---- * transformation. */ public abstract ClasspathFontPeer getClasspathFontPeer (String name, ! Map attrs); ! /** * Creates a {@link Font}, in a platform-specific manner. ! * * The default implementation simply constructs a {@link Font}, but some ! * toolkits may wish to override this, to return {@link Font} subclasses * which implement {@link java.awt.font.OpenType} or * {@link java.awt.font.MultipleMaster}. */ ! public Font getFont (String name, Map attrs) { Font f = null; *************** public abstract class ClasspathToolkit *** 170,176 **** * * @throws IllegalArgumentException if format is * not supported. ! * * @throws FontFormatException if stream does not * contain data in the expected format, or if required tables are * missing from a font. --- 170,176 ---- * * @throws IllegalArgumentException if format is * not supported. ! * * @throws FontFormatException if stream does not * contain data in the expected format, or if required tables are * missing from a font. *************** public abstract class ClasspathToolkit *** 211,221 **** * toolkit implementors should overload this method if possible. * @since 1.5 */ ! public int getMouseNumberOfButtons() { return -1; } ! /* (non-Javadoc) * @see java.awt.Toolkit#createDesktopPeer(java.awt.Desktop) */ --- 211,221 ---- * toolkit implementors should overload this method if possible. * @since 1.5 */ ! public int getMouseNumberOfButtons() { return -1; } ! /* (non-Javadoc) * @see java.awt.Toolkit#createDesktopPeer(java.awt.Desktop) */ *************** public abstract class ClasspathToolkit *** 224,232 **** { if (GraphicsEnvironment.isHeadless()) throw new HeadlessException(); ! return ClasspathDesktopPeer.getDesktop(); } } - --- 224,231 ---- { if (GraphicsEnvironment.isHeadless()) throw new HeadlessException(); ! return ClasspathDesktopPeer.getDesktop(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/ComponentDataBlitOp.java gcc-4.6.0/libjava/classpath/gnu/java/awt/ComponentDataBlitOp.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/ComponentDataBlitOp.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/ComponentDataBlitOp.java Tue Jan 11 19:46:05 2011 *************** import java.awt.image.WritableRaster; *** 52,58 **** * * @throws java.lang.ClassCastException if the sample models of the * rasters are not of type ComponentSampleModel. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class ComponentDataBlitOp implements RasterOp --- 52,58 ---- * * @throws java.lang.ClassCastException if the sample models of the * rasters are not of type ComponentSampleModel. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class ComponentDataBlitOp implements RasterOp *************** public class ComponentDataBlitOp impleme *** 63,76 **** { if (dest == null) dest = createCompatibleDestRaster(src); ! DataBuffer srcDB = src.getDataBuffer(); DataBuffer destDB = dest.getDataBuffer(); ! ComponentSampleModel srcSM = (ComponentSampleModel) src.getSampleModel(); ComponentSampleModel destSM = (ComponentSampleModel) dest.getSampleModel(); ! // Calculate offset to data in the underlying arrays: int srcScanlineStride = srcSM.getScanlineStride(); --- 63,76 ---- { if (dest == null) dest = createCompatibleDestRaster(src); ! DataBuffer srcDB = src.getDataBuffer(); DataBuffer destDB = dest.getDataBuffer(); ! ComponentSampleModel srcSM = (ComponentSampleModel) src.getSampleModel(); ComponentSampleModel destSM = (ComponentSampleModel) dest.getSampleModel(); ! // Calculate offset to data in the underlying arrays: int srcScanlineStride = srcSM.getScanlineStride(); *************** public class ComponentDataBlitOp impleme *** 84,91 **** /* We can't use getOffset(x, y) from the sample model since we don't want the band offset added in. */ ! ! int srcOffset = numBands*srcX + srcScanlineStride*srcY + // from sample model srcDB.getOffset(); // from data buffer --- 84,91 ---- /* We can't use getOffset(x, y) from the sample model since we don't want the band offset added in. */ ! ! int srcOffset = numBands*srcX + srcScanlineStride*srcY + // from sample model srcDB.getOffset(); // from data buffer *************** public class ComponentDataBlitOp impleme *** 94,137 **** destDB.getOffset(); // from data buffer // Determine how much, and how many times to blit. ! int rowSize = src.getWidth()*numBands; int h = src.getHeight(); ! if ((rowSize == srcScanlineStride) && ! (rowSize == destScanlineStride)) { ! // collapse scan line blits to one large blit. ! rowSize *= h; ! h = 1; } ! // Do blitting ! Object srcArray = Buffers.getData(srcDB); Object destArray = Buffers.getData(destDB); ! for (int yd = 0; ydCIE XYZ conversions in SrgbConverter are used. * * @author Sven de Marothy --- 40,46 ---- /** * CieXyzConverter - converts to/from a D50-relative CIE XYZ color space. ! * * The sRGB<->CIE XYZ conversions in SrgbConverter are used. * * @author Sven de Marothy diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/ClutProfileConverter.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/ClutProfileConverter.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/ClutProfileConverter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/ClutProfileConverter.java Tue Jan 11 19:46:05 2011 *************** public class ClutProfileConverter implem *** 56,79 **** nChannels = profile.getNumComponents(); // Sun does not specifiy which rendering intent should be used, ! // neither does the ICC v2 spec really. // Try intent 0 try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB0Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA0Tag); } catch (Exception e) { ! fromPCS = null; } if (toPCS != null || fromPCS != null) --- 56,79 ---- nChannels = profile.getNumComponents(); // Sun does not specifiy which rendering intent should be used, ! // neither does the ICC v2 spec really. // Try intent 0 try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB0Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA0Tag); } catch (Exception e) { ! fromPCS = null; } if (toPCS != null || fromPCS != null) *************** public class ClutProfileConverter implem *** 82,101 **** // If no intent 0 clut is available, look for a intent 1 clut. try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB1Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA1Tag); } catch (Exception e) { ! fromPCS = null; } if (toPCS != null || fromPCS != null) --- 82,101 ---- // If no intent 0 clut is available, look for a intent 1 clut. try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB1Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA1Tag); } catch (Exception e) { ! fromPCS = null; } if (toPCS != null || fromPCS != null) *************** public class ClutProfileConverter implem *** 104,123 **** // Last shot.. intent 2 CLUT. try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB2Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA2Tag); } catch (Exception e) { ! fromPCS = null; } if (toPCS == null && fromPCS == null) --- 104,123 ---- // Last shot.. intent 2 CLUT. try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB2Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA2Tag); } catch (Exception e) { ! fromPCS = null; } if (toPCS == null && fromPCS == null) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/ColorLookUpTable.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/ColorLookUpTable.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/ColorLookUpTable.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/ColorLookUpTable.java Tue Jan 11 19:46:05 2011 *************** public class ColorLookUpTable *** 77,83 **** float[][] inMatrix; // input matrix (XYZ only) boolean useMatrix; // Whether to use the matrix or not. int[] multiplier; ! int[] offsets; // Hypercube offsets boolean inputLab; // Set if the CLUT input CS is Lab boolean outputLab; // Set if the CLUT output CS is Lab --- 77,83 ---- float[][] inMatrix; // input matrix (XYZ only) boolean useMatrix; // Whether to use the matrix or not. int[] multiplier; ! int[] offsets; // Hypercube offsets boolean inputLab; // Set if the CLUT input CS is Lab boolean outputLab; // Set if the CLUT output CS is Lab *************** public class ColorLookUpTable *** 95,115 **** case ICC_Profile.icSigAToB0Tag: case ICC_Profile.icSigAToB1Tag: case ICC_Profile.icSigAToB2Tag: ! if (profile.getColorSpaceType() == ColorSpace.TYPE_XYZ) ! useMatrix = true; ! inputLab = false; ! outputLab = (profile.getPCSType() == ColorSpace.TYPE_Lab); ! break; case ICC_Profile.icSigBToA0Tag: case ICC_Profile.icSigBToA1Tag: case ICC_Profile.icSigBToA2Tag: ! if (profile.getPCSType() == ColorSpace.TYPE_XYZ) ! useMatrix = true; ! inputLab = (profile.getPCSType() == ColorSpace.TYPE_Lab); ! outputLab = false; ! break; default: ! throw new IllegalArgumentException("Not a clut-type tag."); } byte[] data = profile.getData(tag); --- 95,115 ---- case ICC_Profile.icSigAToB0Tag: case ICC_Profile.icSigAToB1Tag: case ICC_Profile.icSigAToB2Tag: ! if (profile.getColorSpaceType() == ColorSpace.TYPE_XYZ) ! useMatrix = true; ! inputLab = false; ! outputLab = (profile.getPCSType() == ColorSpace.TYPE_Lab); ! break; case ICC_Profile.icSigBToA0Tag: case ICC_Profile.icSigBToA1Tag: case ICC_Profile.icSigBToA2Tag: ! if (profile.getPCSType() == ColorSpace.TYPE_XYZ) ! useMatrix = true; ! inputLab = (profile.getPCSType() == ColorSpace.TYPE_Lab); ! outputLab = false; ! break; default: ! throw new IllegalArgumentException("Not a clut-type tag."); } byte[] data = profile.getData(tag); *************** public class ColorLookUpTable *** 144,167 **** inMatrix = new float[3][3]; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) ! inMatrix[i][j] = ((float) (buf.getInt(12 + (i * 3 + j) * 4))) / 65536.0f; inTable = new double[nIn][nInTableEntries]; for (int channel = 0; channel < nIn; channel++) for (int i = 0; i < nInTableEntries; i++) ! inTable[channel][i] = (double) ((int) buf.getShort(52 ! + (channel * nInTableEntries ! + i) * 2) ! & (0xFFFF)) / 65536.0; nClut = nOut; multiplier = new int[nIn]; multiplier[nIn - 1] = nOut; for (int i = 0; i < nIn; i++) { ! nClut *= gridpoints; ! if (i > 0) ! multiplier[nIn - i - 1] = multiplier[nIn - i] * gridpoints; } int clutOffset = 52 + nIn * nInTableEntries * 2; --- 144,167 ---- inMatrix = new float[3][3]; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) ! inMatrix[i][j] = ((float) (buf.getInt(12 + (i * 3 + j) * 4))) / 65536.0f; inTable = new double[nIn][nInTableEntries]; for (int channel = 0; channel < nIn; channel++) for (int i = 0; i < nInTableEntries; i++) ! inTable[channel][i] = (double) ((int) buf.getShort(52 ! + (channel * nInTableEntries ! + i) * 2) ! & (0xFFFF)) / 65536.0; nClut = nOut; multiplier = new int[nIn]; multiplier[nIn - 1] = nOut; for (int i = 0; i < nIn; i++) { ! nClut *= gridpoints; ! if (i > 0) ! multiplier[nIn - i - 1] = multiplier[nIn - i] * gridpoints; } int clutOffset = 52 + nIn * nInTableEntries * 2; *************** public class ColorLookUpTable *** 172,189 **** outTable = new short[nOut][nOutTableEntries]; for (int channel = 0; channel < nOut; channel++) for (int i = 0; i < nOutTableEntries; i++) ! outTable[channel][i] = buf.getShort(clutOffset ! + (nClut ! + channel * nOutTableEntries + i) * 2); // calculate the hypercube corner offsets offsets = new int[(1 << nIn)]; offsets[0] = 0; for (int j = 0; j < nIn; j++) { ! int factor = 1 << j; ! for (int i = 0; i < factor; i++) ! offsets[factor + i] = offsets[i] + multiplier[j]; } } --- 172,189 ---- outTable = new short[nOut][nOutTableEntries]; for (int channel = 0; channel < nOut; channel++) for (int i = 0; i < nOutTableEntries; i++) ! outTable[channel][i] = buf.getShort(clutOffset ! + (nClut ! + channel * nOutTableEntries + i) * 2); // calculate the hypercube corner offsets offsets = new int[(1 << nIn)]; offsets[0] = 0; for (int j = 0; j < nIn; j++) { ! int factor = 1 << j; ! for (int i = 0; i < factor; i++) ! offsets[factor + i] = offsets[i] + multiplier[j]; } } *************** public class ColorLookUpTable *** 203,225 **** inMatrix = new float[3][3]; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) ! inMatrix[i][j] = ((float) (buf.getInt(12 + (i * 3 + j) * 4))) / 65536.0f; inTable = new double[nIn][nInTableEntries]; for (int channel = 0; channel < nIn; channel++) for (int i = 0; i < nInTableEntries; i++) ! inTable[channel][i] = (double) ((int) buf.get(48 ! + (channel * nInTableEntries ! + i)) & (0xFF)) / 255.0; nClut = nOut; multiplier = new int[nIn]; multiplier[nIn - 1] = nOut; for (int i = 0; i < nIn; i++) { ! nClut *= gridpoints; ! if (i > 0) ! multiplier[nIn - i - 1] = multiplier[nIn - i] * gridpoints; } int clutOffset = 48 + nIn * nInTableEntries; --- 203,225 ---- inMatrix = new float[3][3]; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) ! inMatrix[i][j] = ((float) (buf.getInt(12 + (i * 3 + j) * 4))) / 65536.0f; inTable = new double[nIn][nInTableEntries]; for (int channel = 0; channel < nIn; channel++) for (int i = 0; i < nInTableEntries; i++) ! inTable[channel][i] = (double) ((int) buf.get(48 ! + (channel * nInTableEntries ! + i)) & (0xFF)) / 255.0; nClut = nOut; multiplier = new int[nIn]; multiplier[nIn - 1] = nOut; for (int i = 0; i < nIn; i++) { ! nClut *= gridpoints; ! if (i > 0) ! multiplier[nIn - i - 1] = multiplier[nIn - i] * gridpoints; } int clutOffset = 48 + nIn * nInTableEntries; *************** public class ColorLookUpTable *** 230,247 **** outTable = new short[nOut][nOutTableEntries]; for (int channel = 0; channel < nOut; channel++) for (int i = 0; i < nOutTableEntries; i++) ! outTable[channel][i] = (short) (buf.get(clutOffset + nClut ! + channel * nOutTableEntries ! + i) * 257); // calculate the hypercube corner offsets offsets = new int[(1 << nIn)]; offsets[0] = 0; for (int j = 0; j < nIn; j++) { ! int factor = 1 << j; ! for (int i = 0; i < factor; i++) ! offsets[factor + i] = offsets[i] + multiplier[j]; } } --- 230,247 ---- outTable = new short[nOut][nOutTableEntries]; for (int channel = 0; channel < nOut; channel++) for (int i = 0; i < nOutTableEntries; i++) ! outTable[channel][i] = (short) (buf.get(clutOffset + nClut ! + channel * nOutTableEntries ! + i) * 257); // calculate the hypercube corner offsets offsets = new int[(1 << nIn)]; offsets[0] = 0; for (int j = 0; j < nIn; j++) { ! int factor = 1 << j; ! for (int i = 0; i < factor; i++) ! offsets[factor + i] = offsets[i] + multiplier[j]; } } *************** public class ColorLookUpTable *** 260,291 **** float[] in2 = new float[in.length]; if (useMatrix) { ! for (int i = 0; i < 3; i++) ! in2[i] = in[0] * inMatrix[i][0] + in[1] * inMatrix[i][1] ! + in[2] * inMatrix[i][2]; } else if (inputLab) in2 = XYZtoLab(in); else System.arraycopy(in, 0, in2, 0, in.length); ! // input table for (int i = 0; i < nIn; i++) { ! int index = (int) Math.floor(in2[i] * (double) (nInTableEntries - 1)); // floor in ! // clip values. ! if (index >= nInTableEntries - 1) ! in2[i] = (float) inTable[i][nInTableEntries - 1]; ! else if (index < 0) ! in2[i] = (float) inTable[i][0]; ! else ! { ! // linear interpolation ! double alpha = in2[i] * ((double) nInTableEntries - 1.0) - index; ! in2[i] = (float) (inTable[i][index] * (1 - alpha) ! + inTable[i][index + 1] * alpha); ! } } // CLUT lookup --- 260,291 ---- float[] in2 = new float[in.length]; if (useMatrix) { ! for (int i = 0; i < 3; i++) ! in2[i] = in[0] * inMatrix[i][0] + in[1] * inMatrix[i][1] ! + in[2] * inMatrix[i][2]; } else if (inputLab) in2 = XYZtoLab(in); else System.arraycopy(in, 0, in2, 0, in.length); ! // input table for (int i = 0; i < nIn; i++) { ! int index = (int) Math.floor(in2[i] * (double) (nInTableEntries - 1)); // floor in ! // clip values. ! if (index >= nInTableEntries - 1) ! in2[i] = (float) inTable[i][nInTableEntries - 1]; ! else if (index < 0) ! in2[i] = (float) inTable[i][0]; ! else ! { ! // linear interpolation ! double alpha = in2[i] * ((double) nInTableEntries - 1.0) - index; ! in2[i] = (float) (inTable[i][index] * (1 - alpha) ! + inTable[i][index + 1] * alpha); ! } } // CLUT lookup *************** public class ColorLookUpTable *** 295,325 **** int offset = 0; // = gp for (int i = 0; i < nIn; i++) { ! int index = (int) Math.floor(in2[i] * ((double) gridpoints - 1.0)); ! double alpha = in2[i] * ((double) gridpoints - 1.0) - (double) index; ! // clip values. ! if (index >= gridpoints - 1) ! { ! index = gridpoints - 1; ! alpha = 1.0; ! } ! else if (index < 0) ! index = 0; ! clutalpha[i] = alpha; ! offset += index * multiplier[i]; } // Calculate interpolation weights weights[0] = 1.0; for (int j = 0; j < nIn; j++) { ! int factor = 1 << j; ! for (int i = 0; i < factor; i++) ! { ! weights[factor + i] = weights[i] * clutalpha[j]; ! weights[i] *= (1.0 - clutalpha[j]); ! } } for (int i = 0; i < nOut; i++) --- 295,325 ---- int offset = 0; // = gp for (int i = 0; i < nIn; i++) { ! int index = (int) Math.floor(in2[i] * ((double) gridpoints - 1.0)); ! double alpha = in2[i] * ((double) gridpoints - 1.0) - (double) index; ! // clip values. ! if (index >= gridpoints - 1) ! { ! index = gridpoints - 1; ! alpha = 1.0; ! } ! else if (index < 0) ! index = 0; ! clutalpha[i] = alpha; ! offset += index * multiplier[i]; } // Calculate interpolation weights weights[0] = 1.0; for (int j = 0; j < nIn; j++) { ! int factor = 1 << j; ! for (int i = 0; i < factor; i++) ! { ! weights[factor + i] = weights[i] * clutalpha[j]; ! weights[i] *= (1.0 - clutalpha[j]); ! } } for (int i = 0; i < nOut; i++) *************** public class ColorLookUpTable *** 327,358 **** for (int i = 1; i < (1 << nIn); i++) { ! int offset2 = offset + offsets[i]; ! for (int f = 0; f < nOut; f++) ! output2[f] += weights[i] * clut[offset2 + f]; } ! // output table float[] output = new float[nOut]; for (int i = 0; i < nOut; i++) { ! int index = (int) Math.floor(output2[i] * ((double) nOutTableEntries ! - 1.0)); ! // clip values. ! if (index >= nOutTableEntries - 1) ! output[i] = outTable[i][nOutTableEntries - 1]; ! else if (index < 0) ! output[i] = outTable[i][0]; ! else ! { ! // linear interpolation ! double a = output2[i] * ((double) nOutTableEntries - 1.0) ! - (double) index; ! output[i] = (float) ((double) ((int) outTable[i][index] & (0xFFFF)) * (1 ! - a) ! + (double) ((int) outTable[i][index + 1] & (0xFFFF)) * a) / 65536f; ! } } if (outputLab) --- 327,358 ---- for (int i = 1; i < (1 << nIn); i++) { ! int offset2 = offset + offsets[i]; ! for (int f = 0; f < nOut; f++) ! output2[f] += weights[i] * clut[offset2 + f]; } ! // output table float[] output = new float[nOut]; for (int i = 0; i < nOut; i++) { ! int index = (int) Math.floor(output2[i] * ((double) nOutTableEntries ! - 1.0)); ! // clip values. ! if (index >= nOutTableEntries - 1) ! output[i] = outTable[i][nOutTableEntries - 1]; ! else if (index < 0) ! output[i] = outTable[i][0]; ! else ! { ! // linear interpolation ! double a = output2[i] * ((double) nOutTableEntries - 1.0) ! - (double) index; ! output[i] = (float) ((double) ((int) outTable[i][index] & (0xFFFF)) * (1 ! - a) ! + (double) ((int) outTable[i][index + 1] & (0xFFFF)) * a) / 65536f; ! } } if (outputLab) *************** public class ColorLookUpTable *** 365,371 **** */ private float[] LabtoXYZ(float[] in) { ! // Convert from byte-packed format to a // more convenient one (actual Lab values) // (See ICC spec for details) // factor is 100 * 65536 / 65280 --- 365,371 ---- */ private float[] LabtoXYZ(float[] in) { ! // Convert from byte-packed format to a // more convenient one (actual Lab values) // (See ICC spec for details) // factor is 100 * 65536 / 65280 *************** public class ColorLookUpTable *** 381,392 **** for (int i = 0; i < 3; i++) { ! double exp = out[i] * out[i] * out[i]; ! if (exp <= 0.008856) ! out[i] = (out[i] - 16.0f / 116.0f) / 7.787f; ! else ! out[i] = (float) exp; ! out[i] = D50[i] * out[i]; } return out; } --- 381,392 ---- for (int i = 0; i < 3; i++) { ! double exp = out[i] * out[i] * out[i]; ! if (exp <= 0.008856) ! out[i] = (out[i] - 16.0f / 116.0f) / 7.787f; ! else ! out[i] = (float) exp; ! out[i] = D50[i] * out[i]; } return out; } *************** public class ColorLookUpTable *** 400,411 **** for (int i = 0; i < 3; i++) { ! temp[i] = in[i] / D50[i]; ! if (temp[i] <= 0.008856f) ! temp[i] = (7.7870689f * temp[i]) + (16f / 116.0f); ! else ! temp[i] = (float) Math.exp((1.0 / 3.0) * Math.log(temp[i])); } float[] out = new float[3]; --- 400,411 ---- for (int i = 0; i < 3; i++) { ! temp[i] = in[i] / D50[i]; ! if (temp[i] <= 0.008856f) ! temp[i] = (7.7870689f * temp[i]) + (16f / 116.0f); ! else ! temp[i] = (float) Math.exp((1.0 / 3.0) * Math.log(temp[i])); } float[] out = new float[3]; *************** public class ColorLookUpTable *** 419,428 **** out[2] = (out[2] + 128f) / 256f; for (int i = 0; i < 3; i++) { ! if (out[i] < 0f) ! out[i] = 0f; ! if (out[i] > 1f) ! out[i] = 1f; } return out; } --- 419,428 ---- out[2] = (out[2] + 128f) / 256f; for (int i = 0; i < 3; i++) { ! if (out[i] < 0f) ! out[i] = 0f; ! if (out[i] > 1f) ! out[i] = 1f; } return out; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/GrayProfileConverter.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/GrayProfileConverter.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/GrayProfileConverter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/GrayProfileConverter.java Tue Jan 11 19:46:05 2011 *************** public class GrayProfileConverter implem *** 67,77 **** { try { ! trc = new ToneReproductionCurve(profile.getGamma()); } catch (ProfileDataException e) { ! trc = new ToneReproductionCurve(profile.getTRC()); } // linear grayscale converter --- 67,77 ---- { try { ! trc = new ToneReproductionCurve(profile.getGamma()); } catch (ProfileDataException e) { ! trc = new ToneReproductionCurve(profile.getTRC()); } // linear grayscale converter *************** public class GrayProfileConverter implem *** 84,103 **** // unpredictable results. This is in line with the Java specification, try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB0Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA0Tag); } catch (Exception e) { ! fromPCS = null; } } --- 84,103 ---- // unpredictable results. This is in line with the Java specification, try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB0Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA0Tag); } catch (Exception e) { ! fromPCS = null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/GrayScaleConverter.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/GrayScaleConverter.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/GrayScaleConverter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/GrayScaleConverter.java Tue Jan 11 19:46:05 2011 *************** public class GrayScaleConverter implemen *** 95,109 **** out[0] = 0; for (int i = 0; i < 3; i++) { ! float n = in[i]; ! if (n < 0) ! n = 0f; ! if (n > 1) ! n = 1f; ! if (n <= 0.03928f) ! out[0] += (float) (coeff[i] * n / 12.92); ! else ! out[0] += (float) (coeff[i] * Math.exp(2.4 * Math.log((n + 0.055) / 1.055))); } return out; } --- 95,109 ---- out[0] = 0; for (int i = 0; i < 3; i++) { ! float n = in[i]; ! if (n < 0) ! n = 0f; ! if (n > 1) ! n = 1f; ! if (n <= 0.03928f) ! out[0] += (float) (coeff[i] * n / 12.92); ! else ! out[0] += (float) (coeff[i] * Math.exp(2.4 * Math.log((n + 0.055) / 1.055))); } return out; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/LinearRGBConverter.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/LinearRGBConverter.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/LinearRGBConverter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/LinearRGBConverter.java Tue Jan 11 19:46:05 2011 *************** public class LinearRGBConverter implemen *** 58,73 **** float[] out = new float[3]; for (int i = 0; i < 3; i++) { ! float n = in[i]; ! if (n < 0) ! n = 0f; ! if (n > 1) ! n = 1f; ! if (n <= 0.00304f) ! out[i] = in[0] * 12.92f; ! else ! out[i] = 1.055f * ((float) Math.exp((1 / 2.4) * Math.log(n))) ! - 0.055f; } return out; } --- 58,73 ---- float[] out = new float[3]; for (int i = 0; i < 3; i++) { ! float n = in[i]; ! if (n < 0) ! n = 0f; ! if (n > 1) ! n = 1f; ! if (n <= 0.00304f) ! out[i] = in[0] * 12.92f; ! else ! out[i] = 1.055f * ((float) Math.exp((1 / 2.4) * Math.log(n))) ! - 0.055f; } return out; } *************** public class LinearRGBConverter implemen *** 84,98 **** // numbers from the w3 spec. for (int i = 0; i < 3; i++) { ! float n = in[i]; ! if (n < 0) ! n = 0f; ! if (n > 1) ! n = 1f; ! if (n <= 0.03928f) ! out[i] = (float) (n / 12.92); ! else ! out[i] = (float) (Math.exp(2.4 * Math.log((n + 0.055) / 1.055))); } return out; } --- 84,98 ---- // numbers from the w3 spec. for (int i = 0; i < 3; i++) { ! float n = in[i]; ! if (n < 0) ! n = 0f; ! if (n > 1) ! n = 1f; ! if (n <= 0.03928f) ! out[i] = (float) (n / 12.92); ! else ! out[i] = (float) (Math.exp(2.4 * Math.log((n + 0.055) / 1.055))); } return out; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/ProfileHeader.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/ProfileHeader.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/ProfileHeader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/ProfileHeader.java Tue Jan 11 19:46:05 2011 *************** public class ProfileHeader *** 57,63 **** /** * Mapping from ICC Profile signatures to ColorSpace types */ ! private static final int[] csTypeMap = { ICC_Profile.icSigXYZData, ColorSpace.TYPE_XYZ, --- 57,63 ---- /** * Mapping from ICC Profile signatures to ColorSpace types */ ! private static final int[] csTypeMap = { ICC_Profile.icSigXYZData, ColorSpace.TYPE_XYZ, *************** public class ProfileHeader *** 119,125 **** /** * Mapping of ICC class signatures to profile class constants */ ! private static final int[] classMap = { ICC_Profile.icSigInputClass, ICC_Profile.CLASS_INPUT, --- 119,125 ---- /** * Mapping of ICC class signatures to profile class constants */ ! private static final int[] classMap = { ICC_Profile.icSigInputClass, ICC_Profile.CLASS_INPUT, *************** public class ProfileHeader *** 194,200 **** { ByteBuffer buf = ByteBuffer.wrap(data); ! // Get size (the sign bit shouldn't matter. // A valid profile can never be +2Gb) size = buf.getInt(ICC_Profile.icHdrSize); --- 194,200 ---- { ByteBuffer buf = ByteBuffer.wrap(data); ! // Get size (the sign bit shouldn't matter. // A valid profile can never be +2Gb) size = buf.getInt(ICC_Profile.icHdrSize); *************** public class ProfileHeader *** 211,218 **** for (int i = 0; i < classMap.length; i += 2) if (classMap[i] == classSig) { ! profileClass = classMap[i + 1]; ! break; } // get the data color space --- 211,218 ---- for (int i = 0; i < classMap.length; i += 2) if (classMap[i] == classSig) { ! profileClass = classMap[i + 1]; ! break; } // get the data color space *************** public class ProfileHeader *** 221,228 **** for (int i = 0; i < csTypeMap.length; i += 2) if (csTypeMap[i] == csSig) { ! colorSpace = csTypeMap[i + 1]; ! break; } // get the profile color space (PCS), must be xyz or lab except --- 221,228 ---- for (int i = 0; i < csTypeMap.length; i += 2) if (csTypeMap[i] == csSig) { ! colorSpace = csTypeMap[i + 1]; ! break; } // get the profile color space (PCS), must be xyz or lab except *************** public class ProfileHeader *** 231,249 **** profileColorSpace = -1; if (profileClass != ICC_Profile.CLASS_DEVICELINK) { ! if (pcsSig == ICC_Profile.icSigXYZData) ! profileColorSpace = ColorSpace.TYPE_XYZ; ! if (pcsSig == ICC_Profile.icSigLabData) ! profileColorSpace = ColorSpace.TYPE_Lab; } else { ! for (int i = 0; i < csTypeMap.length; i += 2) ! if (csTypeMap[i] == pcsSig) ! { ! profileColorSpace = csTypeMap[i + 1]; ! break; ! } } // creation timestamp --- 231,249 ---- profileColorSpace = -1; if (profileClass != ICC_Profile.CLASS_DEVICELINK) { ! if (pcsSig == ICC_Profile.icSigXYZData) ! profileColorSpace = ColorSpace.TYPE_XYZ; ! if (pcsSig == ICC_Profile.icSigLabData) ! profileColorSpace = ColorSpace.TYPE_Lab; } else { ! for (int i = 0; i < csTypeMap.length; i += 2) ! if (csTypeMap[i] == pcsSig) ! { ! profileColorSpace = csTypeMap[i + 1]; ! break; ! } } // creation timestamp *************** public class ProfileHeader *** 266,272 **** System.arraycopy(data, ICC_Profile.icHdrAttributes, attributes, 0, 8); // rendering intent intent = buf.getInt(ICC_Profile.icHdrRenderingIntent); ! // illuminant info illuminant = new byte[12]; System.arraycopy(data, ICC_Profile.icHdrIlluminant, illuminant, 0, 12); // Creator signature --- 266,272 ---- System.arraycopy(data, ICC_Profile.icHdrAttributes, attributes, 0, 8); // rendering intent intent = buf.getInt(ICC_Profile.icHdrRenderingIntent); ! // illuminant info illuminant = new byte[12]; System.arraycopy(data, ICC_Profile.icHdrIlluminant, illuminant, 0, 12); // Creator signature *************** public class ProfileHeader *** 321,333 **** (short) (majorVersion << 8 | minorVersion)); for (int i = 1; i < classMap.length; i += 2) if (profileClass == classMap[i]) ! buf.putInt(ICC_Profile.icHdrDeviceClass, classMap[i - 1]); for (int i = 1; i < csTypeMap.length; i += 2) if (csTypeMap[i] == colorSpace) ! buf.putInt(ICC_Profile.icHdrColorSpace, csTypeMap[i - 1]); for (int i = 1; i < csTypeMap.length; i += 2) if (csTypeMap[i] == profileColorSpace) ! buf.putInt(ICC_Profile.icHdrPcs, csTypeMap[i - 1]); System.arraycopy(timestamp, 0, data, ICC_Profile.icHdrDate, timestamp.length); --- 321,333 ---- (short) (majorVersion << 8 | minorVersion)); for (int i = 1; i < classMap.length; i += 2) if (profileClass == classMap[i]) ! buf.putInt(ICC_Profile.icHdrDeviceClass, classMap[i - 1]); for (int i = 1; i < csTypeMap.length; i += 2) if (csTypeMap[i] == colorSpace) ! buf.putInt(ICC_Profile.icHdrColorSpace, csTypeMap[i - 1]); for (int i = 1; i < csTypeMap.length; i += 2) if (csTypeMap[i] == profileColorSpace) ! buf.putInt(ICC_Profile.icHdrPcs, csTypeMap[i - 1]); System.arraycopy(timestamp, 0, data, ICC_Profile.icHdrDate, timestamp.length); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/RgbProfileConverter.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/RgbProfileConverter.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/RgbProfileConverter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/RgbProfileConverter.java Tue Jan 11 19:46:05 2011 *************** public class RgbProfileConverter impleme *** 82,108 **** // get TRCs try { ! rTRC = new ToneReproductionCurve(profile.getGamma(ICC_ProfileRGB.REDCOMPONENT)); } catch (ProfileDataException e) { ! rTRC = new ToneReproductionCurve(profile.getTRC(ICC_ProfileRGB.REDCOMPONENT)); } try { ! gTRC = new ToneReproductionCurve(profile.getGamma(ICC_ProfileRGB.GREENCOMPONENT)); } catch (ProfileDataException e) { ! gTRC = new ToneReproductionCurve(profile.getTRC(ICC_ProfileRGB.GREENCOMPONENT)); } try { ! bTRC = new ToneReproductionCurve(profile.getGamma(ICC_ProfileRGB.BLUECOMPONENT)); } catch (ProfileDataException e) { ! bTRC = new ToneReproductionCurve(profile.getTRC(ICC_ProfileRGB.BLUECOMPONENT)); } // If a CLUT is available, it should be used, and the TRCs ignored. --- 82,108 ---- // get TRCs try { ! rTRC = new ToneReproductionCurve(profile.getGamma(ICC_ProfileRGB.REDCOMPONENT)); } catch (ProfileDataException e) { ! rTRC = new ToneReproductionCurve(profile.getTRC(ICC_ProfileRGB.REDCOMPONENT)); } try { ! gTRC = new ToneReproductionCurve(profile.getGamma(ICC_ProfileRGB.GREENCOMPONENT)); } catch (ProfileDataException e) { ! gTRC = new ToneReproductionCurve(profile.getTRC(ICC_ProfileRGB.GREENCOMPONENT)); } try { ! bTRC = new ToneReproductionCurve(profile.getGamma(ICC_ProfileRGB.BLUECOMPONENT)); } catch (ProfileDataException e) { ! bTRC = new ToneReproductionCurve(profile.getTRC(ICC_ProfileRGB.BLUECOMPONENT)); } // If a CLUT is available, it should be used, and the TRCs ignored. *************** public class RgbProfileConverter impleme *** 112,141 **** // unpredictable results. This is in line with the Java specification, try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB0Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA0Tag); } catch (Exception e) { ! fromPCS = null; } // Calculate the inverse matrix if no reverse CLUT is available if(fromPCS == null) ! inv_matrix = invertMatrix(matrix); ! else { // otherwise just set it to an identity matrix ! inv_matrix = new float[3][3]; ! inv_matrix[0][0] = inv_matrix[1][1] = inv_matrix[2][2] = 1.0f; } } --- 112,141 ---- // unpredictable results. This is in line with the Java specification, try { ! toPCS = new ColorLookUpTable(profile, ICC_Profile.icSigAToB0Tag); } catch (Exception e) { ! toPCS = null; } try { ! fromPCS = new ColorLookUpTable(profile, ICC_Profile.icSigBToA0Tag); } catch (Exception e) { ! fromPCS = null; } // Calculate the inverse matrix if no reverse CLUT is available if(fromPCS == null) ! inv_matrix = invertMatrix(matrix); ! else { // otherwise just set it to an identity matrix ! inv_matrix = new float[3][3]; ! inv_matrix[0][0] = inv_matrix[1][1] = inv_matrix[2][2] = 1.0f; } } *************** public class RgbProfileConverter impleme *** 191,197 **** out[2] = bTRC.reverseLookup(temp[2]); // FIXME: Sun appears to clip the return values to [0,1] ! // I don't believe that is a Good Thing, // (some colorspaces may allow values outside that range.) // So we return the actual values here. return out; --- 191,197 ---- out[2] = bTRC.reverseLookup(temp[2]); // FIXME: Sun appears to clip the return values to [0,1] ! // I don't believe that is a Good Thing, // (some colorspaces may allow values outside that range.) // So we return the actual values here. return out; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/SrgbConverter.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/SrgbConverter.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/SrgbConverter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/SrgbConverter.java Tue Jan 11 19:46:05 2011 *************** public class SrgbConverter implements Co *** 107,121 **** float[] out = new float[3]; for (int i = 0; i < 3; i++) { ! if (temp[i] < 0) ! temp[i] = 0.0f; ! if (temp[i] > 1) ! temp[i] = 1.0f; ! if (temp[i] <= 0.00304f) ! out[i] = temp[i] * 12.92f; ! else ! out[i] = 1.055f * ((float) Math.exp((1 / 2.4) * Math.log(temp[i]))) ! - 0.055f; } return out; } --- 107,121 ---- float[] out = new float[3]; for (int i = 0; i < 3; i++) { ! if (temp[i] < 0) ! temp[i] = 0.0f; ! if (temp[i] > 1) ! temp[i] = 1.0f; ! if (temp[i] <= 0.00304f) ! out[i] = temp[i] * 12.92f; ! else ! out[i] = 1.055f * ((float) Math.exp((1 / 2.4) * Math.log(temp[i]))) ! - 0.055f; } return out; } *************** public class SrgbConverter implements Co *** 132,140 **** float[] out = new float[3]; for (int i = 0; i < 3; i++) if (in[i] <= 0.03928f) ! temp[i] = in[i] / 12.92f; else ! temp[i] = (float) Math.exp(2.4 * Math.log((in[i] + 0.055) / 1.055)); /* * Note: The numbers which were used to calculate this only had four --- 132,140 ---- float[] out = new float[3]; for (int i = 0; i < 3; i++) if (in[i] <= 0.03928f) ! temp[i] = in[i] / 12.92f; else ! temp[i] = (float) Math.exp(2.4 * Math.log((in[i] + 0.055) / 1.055)); /* * Note: The numbers which were used to calculate this only had four diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/color/ToneReproductionCurve.java gcc-4.6.0/libjava/classpath/gnu/java/awt/color/ToneReproductionCurve.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/color/ToneReproductionCurve.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/color/ToneReproductionCurve.java Tue Jan 11 19:46:05 2011 *************** public class ToneReproductionCurve *** 103,122 **** if (trc == null) { ! if (in == 0f) ! return 0.0f; ! return (float) Math.exp(gamma * Math.log(in)); } else { ! double alpha = in * (trc.length - 1); ! int index = (int) Math.floor(alpha); ! alpha = alpha - (double) index; ! if (index >= trc.length - 1) ! return trc[trc.length - 1]; ! if (index <= 0) ! return trc[0]; ! out = (float) (trc[index] * (1.0 - alpha) + trc[index + 1] * alpha); } return out; } --- 103,122 ---- if (trc == null) { ! if (in == 0f) ! return 0.0f; ! return (float) Math.exp(gamma * Math.log(in)); } else { ! double alpha = in * (trc.length - 1); ! int index = (int) Math.floor(alpha); ! alpha = alpha - (double) index; ! if (index >= trc.length - 1) ! return trc[trc.length - 1]; ! if (index <= 0) ! return trc[0]; ! out = (float) (trc[index] * (1.0 - alpha) + trc[index + 1] * alpha); } return out; } *************** public class ToneReproductionCurve *** 130,150 **** if (trc == null) { ! if (in == 0f) ! return 0.0f; ! return (float) Math.exp((1.0 / gamma) * Math.log(in)); } else { ! double alpha = in * (reverseTrc.length - 1); ! int index = (int) Math.floor(alpha); ! alpha = alpha - (double) index; ! if (index >= reverseTrc.length - 1) ! return reverseTrc[reverseTrc.length - 1]; ! if (index <= 0) ! return reverseTrc[0]; ! out = (float) (reverseTrc[index] * (1.0 - alpha) ! + reverseTrc[index + 1] * alpha); } return out; } --- 130,150 ---- if (trc == null) { ! if (in == 0f) ! return 0.0f; ! return (float) Math.exp((1.0 / gamma) * Math.log(in)); } else { ! double alpha = in * (reverseTrc.length - 1); ! int index = (int) Math.floor(alpha); ! alpha = alpha - (double) index; ! if (index >= reverseTrc.length - 1) ! return reverseTrc[reverseTrc.length - 1]; ! if (index <= 0) ! return reverseTrc[0]; ! out = (float) (reverseTrc[index] * (1.0 - alpha) ! + reverseTrc[index + 1] * alpha); } return out; } *************** public class ToneReproductionCurve *** 164,177 **** int j = 0; for (int i = 0; i < 10000; i++) { ! float n = ((float) i) / 10000f; ! while (trc[j + 1] < n && j < trc.length - 2) ! j++; ! if (j == trc.length - 2) ! reverseTrc[i] = trc[trc.length - 1]; ! else ! reverseTrc[i] = (j + (n - trc[j]) / (trc[j + 1] - trc[j])) / ((float) trc.length); } } } --- 164,177 ---- int j = 0; for (int i = 0; i < 10000; i++) { ! float n = ((float) i) / 10000f; ! while (trc[j + 1] < n && j < trc.length - 2) ! j++; ! if (j == trc.length - 2) ! reverseTrc[i] = trc[trc.length - 1]; ! else ! reverseTrc[i] = (j + (n - trc[j]) / (trc[j + 1] - trc[j])) / ((float) trc.length); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java Sat Jul 29 18:39:18 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java Tue Jan 11 19:46:05 2011 *************** public class GtkMouseDragGestureRecogniz *** 59,86 **** { this (ds, c, 0, null); } ! public GtkMouseDragGestureRecognizer (DragSource ds, Component c, int act) { this(ds, c, act, null); } ! public GtkMouseDragGestureRecognizer (DragSource ds, Component c, int act, DragGestureListener dgl) { super(ds, c, act, dgl); } ! public void registerListeners () { super.registerListeners(); } ! public void unregisterListeners () { super.unregisterListeners(); } ! public void mouseClicked (MouseEvent e) { // Nothing to do here. --- 59,86 ---- { this (ds, c, 0, null); } ! public GtkMouseDragGestureRecognizer (DragSource ds, Component c, int act) { this(ds, c, act, null); } ! public GtkMouseDragGestureRecognizer (DragSource ds, Component c, int act, DragGestureListener dgl) { super(ds, c, act, dgl); } ! public void registerListeners () { super.registerListeners(); } ! public void unregisterListeners () { super.unregisterListeners(); } ! public void mouseClicked (MouseEvent e) { // Nothing to do here. *************** public class GtkMouseDragGestureRecogniz *** 115,121 **** if (!events.isEmpty()) { int act = getDropActionFromEvent(e); ! if (act == DnDConstants.ACTION_NONE) return; --- 115,121 ---- if (!events.isEmpty()) { int act = getDropActionFromEvent(e); ! if (act == DnDConstants.ACTION_NONE) return; *************** public class GtkMouseDragGestureRecogniz *** 124,137 **** int dx = Math.abs(origin.x - current.x); int dy = Math.abs(origin.y - current.y); int threshold = DragSource.getDragThreshold(); ! if (dx > threshold || dy > threshold) fireDragGestureRecognized(act, origin); else appendEvent(e); } } ! public void mouseMoved (MouseEvent e) { // Nothing to do here. --- 124,137 ---- int dx = Math.abs(origin.x - current.x); int dy = Math.abs(origin.y - current.y); int threshold = DragSource.getDragThreshold(); ! if (dx > threshold || dy > threshold) fireDragGestureRecognized(act, origin); else appendEvent(e); } } ! public void mouseMoved (MouseEvent e) { // Nothing to do here. *************** public class GtkMouseDragGestureRecogniz *** 142,151 **** int modEx = e.getModifiersEx(); int buttons = modEx & (MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON2_DOWN_MASK | MouseEvent.BUTTON3_DOWN_MASK); ! if (!(buttons == MouseEvent.BUTTON1_DOWN_MASK || buttons == MouseEvent.BUTTON2_DOWN_MASK)) return DnDConstants.ACTION_NONE; ! // Convert modifier to a drop action int sourceActions = getSourceActions(); int mod = modEx --- 142,151 ---- int modEx = e.getModifiersEx(); int buttons = modEx & (MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON2_DOWN_MASK | MouseEvent.BUTTON3_DOWN_MASK); ! if (!(buttons == MouseEvent.BUTTON1_DOWN_MASK || buttons == MouseEvent.BUTTON2_DOWN_MASK)) return DnDConstants.ACTION_NONE; ! // Convert modifier to a drop action int sourceActions = getSourceActions(); int mod = modEx diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkDragSourceContextPeer *** 62,115 **** private Cursor cursor; private DragSourceContext context; public static Component target; ! native void nativeStartDrag(Image i, int x, int y, int action, String target); native void connectSignals(ComponentPeer comp); native void create(ComponentPeer comp); native void nativeSetCursor(int cursor); native void setTarget(GtkDropTargetContextPeer target); ! public GtkDragSourceContextPeer(DragGestureEvent e) { super(e.getComponent()); Component comp = e.getComponent(); peer = getComponentPeer(comp); ! create(peer); connectSignals(peer); cursor = comp.getCursor(); ! // FIXME: Where do we set the target? ! if ((target != null)) setTarget(new GtkDropTargetContextPeer(target)); } ! ComponentPeer getComponentPeer(Component c) { if (c == null) return null; ! Component curr = c; while (curr.getPeer() instanceof LightweightPeer) curr = curr.getParent(); ! if (curr != null) return curr.getPeer(); return null; } ! public void startDrag(DragSourceContext context, Cursor c, Image i, Point p) throws InvalidDnDOperationException ! { this.context = context; if (p == null) p = new Point(); ! // FIXME: use proper DataFlavor, not "text/plain". // Also, add check to determine if dragging. ! setCursor(c); nativeStartDrag(i, p.x, p.y, context.getTrigger().getDragAction(), "text/plain"); --- 62,115 ---- private Cursor cursor; private DragSourceContext context; public static Component target; ! native void nativeStartDrag(Image i, int x, int y, int action, String target); native void connectSignals(ComponentPeer comp); native void create(ComponentPeer comp); native void nativeSetCursor(int cursor); native void setTarget(GtkDropTargetContextPeer target); ! public GtkDragSourceContextPeer(DragGestureEvent e) { super(e.getComponent()); Component comp = e.getComponent(); peer = getComponentPeer(comp); ! create(peer); connectSignals(peer); cursor = comp.getCursor(); ! // FIXME: Where do we set the target? ! if ((target != null)) setTarget(new GtkDropTargetContextPeer(target)); } ! ComponentPeer getComponentPeer(Component c) { if (c == null) return null; ! Component curr = c; while (curr.getPeer() instanceof LightweightPeer) curr = curr.getParent(); ! if (curr != null) return curr.getPeer(); return null; } ! public void startDrag(DragSourceContext context, Cursor c, Image i, Point p) throws InvalidDnDOperationException ! { this.context = context; if (p == null) p = new Point(); ! // FIXME: use proper DataFlavor, not "text/plain". // Also, add check to determine if dragging. ! setCursor(c); nativeStartDrag(i, p.x, p.y, context.getTrigger().getDragAction(), "text/plain"); *************** public class GtkDragSourceContextPeer *** 133,139 **** { // Nothing to do here. } ! /** * Called from native code. */ --- 133,139 ---- { // Nothing to do here. } ! /** * Called from native code. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkDropTargetContextPeer *** 50,61 **** extends GtkGenericPeer implements DropTargetContextPeer { ! public GtkDropTargetContextPeer(Object obj) { super(obj); } ! public void setTargetActions(int actions) { // FIXME: Not Implemented --- 50,61 ---- extends GtkGenericPeer implements DropTargetContextPeer { ! public GtkDropTargetContextPeer(Object obj) { super(obj); } ! public void setTargetActions(int actions) { // FIXME: Not Implemented diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkDropTargetPeer *** 52,58 **** { super(null); } ! public void addDropTarget(DropTarget target) { // FIXME: Not Implemented --- 52,58 ---- { super(null); } ! public void addDropTarget(DropTarget target) { // FIXME: Not Implemented diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/FontDelegate.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/FontDelegate.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/FontDelegate.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/FontDelegate.java Tue Jan 11 19:46:05 2011 *************** public interface FontDelegate *** 77,84 **** * @return the face name. */ public String getFullName(Locale locale); ! ! /** * Returns the name of the family to which this font face belongs, * for example “Univers”. --- 77,84 ---- * @return the face name. */ public String getFullName(Locale locale); ! ! /** * Returns the name of the family to which this font face belongs, * for example “Univers”. *************** public interface FontDelegate *** 99,106 **** * @return the name of the face inside its family. */ public String getSubFamilyName(Locale locale); ! ! /** * Returns the PostScript name of this font face, for example * “Helvetica-Bold”. --- 99,106 ---- * @return the name of the face inside its family. */ public String getSubFamilyName(Locale locale); ! ! /** * Returns the PostScript name of this font face, for example * “Helvetica-Bold”. *************** public interface FontDelegate *** 131,137 **** * glyph as an empty box. */ public int getMissingGlyphCode(); ! /** * Creates a GlyphVector by mapping each character in a --- 131,137 ---- * glyph as an empty box. */ public int getMissingGlyphCode(); ! /** * Creates a GlyphVector by mapping each character in a *************** public interface FontDelegate *** 205,211 **** boolean fractionalMetrics, boolean horizontal, Point2D advance); ! /** * Returns the shape of a glyph. --- 205,211 ---- boolean fractionalMetrics, boolean horizontal, Point2D advance); ! /** * Returns the shape of a glyph. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/FontFactory.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/FontFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/FontFactory.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/FontFactory.java Tue Jan 11 19:46:05 2011 *************** public final class FontFactory *** 58,64 **** { } ! /** * Creates FontDelegate objects for the fonts in the specified buffer. * The following font formats are currently recognized: --- 58,64 ---- { } ! /** * Creates FontDelegate objects for the fonts in the specified buffer. * The following font formats are currently recognized: diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java Tue Jan 11 19:46:05 2011 *************** public class GNUGlyphVector *** 113,119 **** this.font = font; this.renderContext = renderContext; this.glyphs = glyphs; ! fontSize = font.getSize2D(); transform = font.getTransform(); // returns a modifiable copy //transform.concatenate(renderContext.getTransform()); --- 113,119 ---- this.font = font; this.renderContext = renderContext; this.glyphs = glyphs; ! fontSize = font.getSize2D(); transform = font.getTransform(); // returns a modifiable copy //transform.concatenate(renderContext.getTransform()); *************** public class GNUGlyphVector *** 156,162 **** for (i = p = 0; i < glyphs.length; i++) { p += 2; ! if ((transforms == null) || (tx = transforms[i]) == null) tx = this.transform; else --- 156,162 ---- for (i = p = 0; i < glyphs.length; i++) { p += 2; ! if ((transforms == null) || (tx = transforms[i]) == null) tx = this.transform; else *************** public class GNUGlyphVector *** 164,170 **** tx = new AffineTransform(tx); tx.concatenate(this.transform); } ! fontDelegate.getAdvance(glyphs[i], fontSize, tx, renderContext.isAntiAliased(), renderContext.usesFractionalMetrics(), --- 164,170 ---- tx = new AffineTransform(tx); tx.concatenate(this.transform); } ! fontDelegate.getAdvance(glyphs[i], fontSize, tx, renderContext.isAntiAliased(), renderContext.usesFractionalMetrics(), *************** public class GNUGlyphVector *** 502,512 **** { return layoutFlags; } ! ! /** * Returns the positions of a range of glyphs in this vector. ! * * @param firstGlyphIndex the index of the first glyph whose * position is retrieved. * --- 502,512 ---- { return layoutFlags; } ! ! /** * Returns the positions of a range of glyphs in this vector. ! * * @param firstGlyphIndex the index of the first glyph whose * position is retrieved. * *************** public class GNUGlyphVector *** 546,552 **** return outPositions; } ! private float getAscent() { return fontDelegate.getAscent(fontSize, transform, --- 546,552 ---- return outPositions; } ! private float getAscent() { return fontDelegate.getAscent(fontSize, transform, *************** public class GNUGlyphVector *** 561,567 **** return fontDelegate.getDescent(fontSize, transform, renderContext.isAntiAliased(), renderContext.usesFractionalMetrics(), ! /* horizontal */ true); } --- 561,567 ---- return fontDelegate.getDescent(fontSize, transform, renderContext.isAntiAliased(), renderContext.usesFractionalMetrics(), ! /* horizontal */ true); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java Tue Jan 11 19:46:05 2011 *************** public class OpenTypeFontPeer *** 180,186 **** { return 0.F; } ! } private class XFontMetrics --- 180,186 ---- { return 0.F; } ! } private class XFontMetrics *************** public class OpenTypeFontPeer *** 207,213 **** return (int) fontDelegate.getDescent(getFont().getSize(), IDENDITY, false, false, false); } ! public int getHeight() { GlyphVector gv = fontDelegate.createGlyphVector(getFont(), --- 207,213 ---- return (int) fontDelegate.getDescent(getFont().getSize(), IDENDITY, false, false, false); } ! public int getHeight() { GlyphVector gv = fontDelegate.createGlyphVector(getFont(), *************** public class OpenTypeFontPeer *** 441,447 **** case Font.PLAIN: default: key.append("p"); ! } return key.toString(); --- 441,447 ---- case Font.PLAIN: default: key.append("p"); ! } return key.toString(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/autofit/GlyphHints.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/autofit/GlyphHints.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/autofit/GlyphHints.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/autofit/GlyphHints.java Tue Jan 11 19:46:05 2011 *************** class GlyphHints *** 84,90 **** metrics = m; // TODO: Copy scalerFlags. } ! void reload(Zone outline) { numPoints = 0; --- 84,90 ---- metrics = m; // TODO: Copy scalerFlags. } ! void reload(Zone outline) { numPoints = 0; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/autofit/Latin.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/autofit/Latin.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/autofit/Latin.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/autofit/Latin.java Tue Jan 11 19:46:05 2011 *************** class Latin *** 103,109 **** hints.alignStrongPoints(dim); if (hints.doAlignWeakPoints()) hints.alignWeakPoints(dim); ! } } // FreeType does a save call here. I guess that's not needed as we operate --- 103,109 ---- hints.alignStrongPoints(dim); if (hints.doAlignWeakPoints()) hints.alignWeakPoints(dim); ! } } // FreeType does a save call here. I guess that's not needed as we operate *************** class Latin *** 407,413 **** dist += 54; else dist += delta; ! } else { --- 407,413 ---- dist += 54; else dist += delta; ! } else { *************** class Latin *** 969,975 **** blue.flags = 0; if (isTopBlue(bb)) blue.flags |= LatinBlue.FLAG_TOP; ! // The following flag is used later to adjust y and x scales in // order to optimize the pixel grid alignment of the top small // letters. if (bb == SMALL_TOP) --- 969,975 ---- blue.flags = 0; if (isTopBlue(bb)) blue.flags |= LatinBlue.FLAG_TOP; ! // The following flag is used later to adjust y and x scales in // order to optimize the pixel grid alignment of the top small // letters. if (bb == SMALL_TOP) *************** class Latin *** 1043,1049 **** last = point; boolean passed = false; boolean onEdge = false; ! while (true) { int u, v; if (onEdge) --- 1043,1049 ---- last = point; boolean passed = false; boolean onEdge = false; ! while (true) { int u, v; if (onEdge) *************** class Latin *** 1099,1105 **** point = point.getNext(); } } ! } private boolean isTopBlue(int b) --- 1099,1105 ---- point = point.getNext(); } } ! } private boolean isTopBlue(int b) *************** class Latin *** 1276,1282 **** // Debug: Print out all edges. // System.err.println("edge# " + e + ": " + edge); ! } } private void computeBlueEdges(GlyphHints hints, LatinMetrics metrics) --- 1276,1282 ---- // Debug: Print out all edges. // System.err.println("edge# " + e + ": " + edge); ! } } private void computeBlueEdges(GlyphHints hints, LatinMetrics metrics) *************** class Latin *** 1297,1303 **** // System.err.println("checking edge: " + edge); Width bestBlue = null; int bestDist = Fixed.mul16(metrics.unitsPerEm / 40, scale); ! if (bestDist > 64 / 2) bestDist = 64 / 2; for (int bb = 0; bb < BLUE_MAX; bb++) --- 1297,1303 ---- // System.err.println("checking edge: " + edge); Width bestBlue = null; int bestDist = Fixed.mul16(metrics.unitsPerEm / 40, scale); ! if (bestDist > 64 / 2) bestDist = 64 / 2; for (int bb = 0; bb < BLUE_MAX; bb++) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/autofit/Utils.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/autofit/Utils.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/autofit/Utils.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/autofit/Utils.java Tue Jan 11 19:46:05 2011 *************** class Utils *** 158,164 **** return angle; } ! angle = 0; if (dx < 0) { --- 158,164 ---- return angle; } ! angle = 0; if (dx < 0) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/CharGlyphMap.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/CharGlyphMap.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/CharGlyphMap.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/CharGlyphMap.java Tue Jan 11 19:46:05 2011 *************** public abstract class CharGlyphMap *** 89,95 **** /** * Reads a CharGlyphMap from an OpenType or TrueType cmap * table. The current implementation works as follows: ! * *

      1. If the font has a type 4 cmap for the Unicode platform * (encoding 0, 1, 2, 3 or 4), or a type 4 cmap for the Microsoft * platform (encodings 1 or 10), that table is used to map Unicode --- 89,95 ---- /** * Reads a CharGlyphMap from an OpenType or TrueType cmap * table. The current implementation works as follows: ! * *

        1. If the font has a type 4 cmap for the Unicode platform * (encoding 0, 1, 2, 3 or 4), or a type 4 cmap for the Microsoft * platform (encodings 1 or 10), that table is used to map Unicode *************** public abstract class CharGlyphMap *** 132,138 **** version = buf.getChar(); if (version != 0) return null; ! numTables = buf.getChar(); for (int i = 0; i < numTables; i++) { --- 132,138 ---- version = buf.getChar(); if (version != 0) return null; ! numTables = buf.getChar(); for (int i = 0; i < numTables; i++) { *************** public abstract class CharGlyphMap *** 229,236 **** return 0; } } ! ! /** * A mapping from Unicode code points to glyph IDs through CMAP Type * 0 tables. These tables have serious limitations: Only the first --- 229,236 ---- return 0; } } ! ! /** * A mapping from Unicode code points to glyph IDs through CMAP Type * 0 tables. These tables have serious limitations: Only the first *************** public abstract class CharGlyphMap *** 255,262 **** * Unicode code point of glyph i in the font. */ private char[] glyphToUCS2 = new char[256]; ! ! /** * A String whose charAt(i) is the Unicode character * that corresponds to the codepoint i + 127 in the --- 255,262 ---- * Unicode code point of glyph i in the font. */ private char[] glyphToUCS2 = new char[256]; ! ! /** * A String whose charAt(i) is the Unicode character * that corresponds to the codepoint i + 127 in the *************** public abstract class CharGlyphMap *** 562,568 **** /* The CMAP version must be 0. */ if (buf.getChar() != 0) throw new IllegalStateException(); ! numTables = buf.getChar(); for (int i = 0; i < numTables; i++) { --- 562,568 ---- /* The CMAP version must be 0. */ if (buf.getChar() != 0) throw new IllegalStateException(); ! numTables = buf.getChar(); for (int i = 0; i < numTables; i++) { *************** public abstract class CharGlyphMap *** 705,711 **** return null; } } ! /** * A mapping from Unicode code points to glyph IDs through CMAP Type --- 705,711 ---- return null; } } ! /** * A mapping from Unicode code points to glyph IDs through CMAP Type *************** public abstract class CharGlyphMap *** 805,811 **** buf.position(pos); idRangeOffset_glyphID = buf.asCharBuffer(); ! endCode.limit(segCount); startCode.limit(segCount); idDelta.limit(segCount); --- 805,811 ---- buf.position(pos); idRangeOffset_glyphID = buf.asCharBuffer(); ! endCode.limit(segCount); startCode.limit(segCount); idDelta.limit(segCount); *************** public abstract class CharGlyphMap *** 856,862 **** segStart = firstChar.get(segment); if ((c < segStart) || (c > lastChar.get(segment))) return 0; ! /* * System.out.println("seg " + segment * + ", range=" + (int) rangeID[segment] --- 856,862 ---- segStart = firstChar.get(segment); if ((c < segStart) || (c > lastChar.get(segment))) return 0; ! /* * System.out.println("seg " + segment * + ", range=" + (int) rangeID[segment] *************** public abstract class CharGlyphMap *** 912,919 **** { int numGroups; IntBuffer data; ! ! /** * Determines whether this implementation supports a combination * of platform and encoding for a type 12 cmap table. --- 912,919 ---- { int numGroups; IntBuffer data; ! ! /** * Determines whether this implementation supports a combination * of platform and encoding for a type 12 cmap table. *************** public abstract class CharGlyphMap *** 964,971 **** numGroups = buf.getInt(); data = buf.asIntBuffer(); } ! ! /** * Determines the glyph index for a given Unicode codepoint. Users * should be aware that the character-to-glyph mapping not not --- 964,971 ---- numGroups = buf.getInt(); data = buf.asIntBuffer(); } ! ! /** * Determines the glyph index for a given Unicode codepoint. Users * should be aware that the character-to-glyph mapping not not *************** public abstract class CharGlyphMap *** 993,999 **** startCharCode = data.get(3 * mid); endCharCode = data.get(3 * mid + 1); ! /* System.out.println("group " + mid + " (U+" + Integer.toHexString(startCharCode) --- 993,999 ---- startCharCode = data.get(3 * mid); endCharCode = data.get(3 * mid + 1); ! /* System.out.println("group " + mid + " (U+" + Integer.toHexString(startCharCode) *************** public abstract class CharGlyphMap *** 1005,1011 **** return ucs4 - startCharCode + /* startGlyphID */ data.get(mid * 3 + 2); ! if (endCharCode < ucs4) min = mid + 1; else --- 1005,1011 ---- return ucs4 - startCharCode + /* startGlyphID */ data.get(mid * 3 + 2); ! if (endCharCode < ucs4) min = mid + 1; else diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java Tue Jan 11 19:46:05 2011 *************** final class GlyphNamer *** 411,417 **** readPost(); } ! /** * Sets up the information which allows to retrieve the information --- 411,417 ---- readPost(); } ! /** * Sets up the information which allows to retrieve the information *************** final class GlyphNamer *** 625,631 **** * print " private static final String %s" % name * for i in range(0, len(s), 60): * print ' + "%s"' % s[i:i+60] ! * * glyphs = {} * for line in open('aglfn13.txt', 'r').readlines(): * if line[0] == '#': continue --- 625,631 ---- * print " private static final String %s" % name * for i in range(0, len(s), 60): * print ' + "%s"' % s[i:i+60] ! * * glyphs = {} * for line in open('aglfn13.txt', 'r').readlines(): * if line[0] == '#': continue *************** final class GlyphNamer *** 1009,1015 **** */ min = 0; max = AGLFN_GLYPHS.length() - 1; ! mid = max >> 1; midChar = AGLFN_GLYPHS.charAt(mid); do { --- 1009,1015 ---- */ min = 0; max = AGLFN_GLYPHS.length() - 1; ! mid = max >> 1; midChar = AGLFN_GLYPHS.charAt(mid); do { *************** final class GlyphNamer *** 1023,1029 **** midChar = AGLFN_GLYPHS.charAt(mid); } while (min < max); ! if (midChar != c) return null; --- 1023,1029 ---- midChar = AGLFN_GLYPHS.charAt(mid); } while (min < max); ! if (midChar != c) return null; *************** final class GlyphNamer *** 1078,1084 **** if (name != null) return name; } ! CPStringBuilder buf = new CPStringBuilder(numChars * 8); for (int i = 0; i < numChars; i++) { --- 1078,1084 ---- if (name != null) return name; } ! CPStringBuilder buf = new CPStringBuilder(numChars * 8); for (int i = 0; i < numChars; i++) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/MacResourceFork.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/MacResourceFork.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/MacResourceFork.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/MacResourceFork.java Tue Jan 11 19:46:05 2011 *************** final class MacResourceFork *** 123,129 **** } } } ! public Resource[] getResources(int type) { --- 123,129 ---- } } } ! public Resource[] getResources(int type) { *************** final class MacResourceFork *** 137,143 **** } return null; } ! public Resource getResource(int type, short id) { --- 137,143 ---- } return null; } ! public Resource getResource(int type, short id) { *************** final class MacResourceFork *** 149,155 **** { if (types[i] != type) continue; ! res = resources[i]; for (int j = 0; j < res.length; j++) if (res[j].getID() == id) --- 149,155 ---- { if (types[i] != type) continue; ! res = resources[i]; for (int j = 0; j < res.length; j++) if (res[j].getID() == id) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/NameDecoder.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/NameDecoder.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/NameDecoder.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/NameDecoder.java Tue Jan 11 19:46:05 2011 *************** public class NameDecoder *** 139,158 **** nameLen = nameTable.getShort(); nameStart = offset + nameTable.getShort(); ! if (nameID != name) continue; // Handle PS seperately as it can be only ASCII, although // possibly encoded as UTF-16BE if ( name == NAME_POSTSCRIPT ) ! { ! if( nameTable.get(nameStart) == 0 ) // Peek at top byte ! result = decodeName("UTF-16BE", nameTable, nameStart, nameLen); ! else ! result = decodeName("ASCII", nameTable, nameStart, nameLen); ! return result; ! } match = false; switch (namePlatform) --- 139,158 ---- nameLen = nameTable.getShort(); nameStart = offset + nameTable.getShort(); ! if (nameID != name) continue; // Handle PS seperately as it can be only ASCII, although // possibly encoded as UTF-16BE if ( name == NAME_POSTSCRIPT ) ! { ! if( nameTable.get(nameStart) == 0 ) // Peek at top byte ! result = decodeName("UTF-16BE", nameTable, nameStart, nameLen); ! else ! result = decodeName("ASCII", nameTable, nameStart, nameLen); ! return result; ! } match = false; switch (namePlatform) *************** public class NameDecoder *** 186,192 **** break; } ! if (match) { result = decodeName(namePlatform, nameEncoding, nameLanguage, --- 186,192 ---- break; } ! if (match) { result = decodeName(namePlatform, nameEncoding, nameLanguage, *************** public class NameDecoder *** 316,322 **** if (loc == null) return -1; ! code = findLanguageCode(loc.getLanguage(), macLanguageCodes); switch (code) { --- 316,322 ---- if (loc == null) return -1; ! code = findLanguageCode(loc.getLanguage(), macLanguageCodes); switch (code) { *************** public class NameDecoder *** 333,342 **** // know what do do about them. See the method documentation for // details. } ! return code; } ! /** * Maps a Java Locale into a Microsoft language code. --- 333,342 ---- // know what do do about them. See the method documentation for // details. } ! return code; } ! /** * Maps a Java Locale into a Microsoft language code. *************** public class NameDecoder *** 348,354 **** if (locale == null) return -1; ! isoCode = locale.getLanguage(); code = findLanguageCode(isoCode, microsoftLanguageCodes); if (code == -1) --- 348,354 ---- if (locale == null) return -1; ! isoCode = locale.getLanguage(); code = findLanguageCode(isoCode, microsoftLanguageCodes); if (code == -1) *************** public class NameDecoder *** 572,578 **** } } ! /** * Maps a Microsoft locale ID (LCID) to the name of the * corresponding Java Charset. --- 572,578 ---- } } ! /** * Maps a Microsoft locale ID (LCID) to the name of the * corresponding Java Charset. *************** public class NameDecoder *** 664,670 **** case 3: /* Microsoft Windows */ return getWindowsLocale(language); ! default: return null; } --- 664,670 ---- case 3: /* Microsoft Windows */ return getWindowsLocale(language); ! default: return null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java Tue Jan 11 19:46:05 2011 *************** public final class OpenTypeFont *** 83,89 **** static final int TAG_TRUE = 0x74727565; // 'true' static final int TAG_TTCF = 0x74746366; // 'ttcf' static final int TAG_ZAPF = 0x5a617066; // 'Zapf' ! /** * A buffer containing the font data. Note that this may well be an --- 83,89 ---- static final int TAG_TRUE = 0x74727565; // 'true' static final int TAG_TTCF = 0x74746366; // 'ttcf' static final int TAG_ZAPF = 0x5a617066; // 'Zapf' ! /** * A buffer containing the font data. Note that this may well be an *************** public final class OpenTypeFont *** 112,118 **** */ private int version; ! /** * The number of font units per em. For fonts with TrueType * outlines, this is usually a power of two (such as 2048). For --- 112,118 ---- */ private int version; ! /** * The number of font units per em. For fonts with TrueType * outlines, this is usually a power of two (such as 2048). For *************** public final class OpenTypeFont *** 133,139 **** * The scaler to which the actual scaling work is delegated. */ private Scaler scaler; ! /** * A delegate object for mapping Unicode UCS-4 codepoints to glyph --- 133,139 ---- * The scaler to which the actual scaling work is delegated. */ private Scaler scaler; ! /** * A delegate object for mapping Unicode UCS-4 codepoints to glyph *************** public final class OpenTypeFont *** 277,284 **** return i; return -1; } ! ! /** * Returns the name of the family to which this font face belongs, --- 277,284 ---- return i; return -1; } ! ! /** * Returns the name of the family to which this font face belongs, *************** public final class OpenTypeFont *** 352,359 **** return name; } ! ! /** * Returns the full name of this font face, for example --- 352,359 ---- return name; } ! ! /** * Returns the full name of this font face, for example *************** public final class OpenTypeFont *** 404,410 **** */ return numGlyphs; } ! /** * Returns the index of the glyph which gets displayed if the font --- 404,410 ---- */ return numGlyphs; } ! /** * Returns the index of the glyph which gets displayed if the font *************** public final class OpenTypeFont *** 489,495 **** result.limit(len); return result; } ! /** * Returns the size of one of the tables in the font, --- 489,495 ---- result.limit(len); return result; } ! /** * Returns the size of one of the tables in the font, *************** public final class OpenTypeFont *** 508,514 **** { if (cmap != null) return cmap; ! synchronized (this) { if (cmap == null) --- 508,514 ---- { if (cmap != null) return cmap; ! synchronized (this) { if (cmap == null) *************** public final class OpenTypeFont *** 545,551 **** return getCharGlyphMap().getGlyph(ucs4); } ! /** * Creates a GlyphVector by mapping each character in a * CharacterIterator to the corresponding glyph. --- 545,551 ---- return getCharGlyphMap().getGlyph(ucs4); } ! /** * Creates a GlyphVector by mapping each character in a * CharacterIterator to the corresponding glyph. *************** public final class OpenTypeFont *** 584,590 **** // Initialize hinter if necessary. checkHinter(FontDelegate.FLAG_FITTED); ! CharGlyphMap cmap; int numGlyphs; int[] glyphs; int glyph; --- 584,590 ---- // Initialize hinter if necessary. checkHinter(FontDelegate.FLAG_FITTED); ! CharGlyphMap cmap; int numGlyphs; int[] glyphs; int glyph; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFontFactory.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFontFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFontFactory.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFontFactory.java Tue Jan 11 19:46:05 2011 *************** public final class OpenTypeFontFactory *** 126,132 **** rsrc = fork.getResources(OpenTypeFont.TAG_SFNT); fonts = new OpenTypeFont[rsrc.length]; ! for (int i = 0; i < fonts.length; i++) fonts[i] = new OpenTypeFont(rsrc[i].getContent(), 0); return fonts; --- 126,132 ---- rsrc = fork.getResources(OpenTypeFont.TAG_SFNT); fonts = new OpenTypeFont[rsrc.length]; ! for (int i = 0; i < fonts.length; i++) fonts[i] = new OpenTypeFont(rsrc[i].getContent(), 0); return fonts; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLoader.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLoader.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLoader.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLoader.java Tue Jan 11 19:46:05 2011 *************** final class GlyphLoader *** 71,78 **** * glyph. */ private final GlyphMeasurer glyphMeasurer; ! ! /** * The virtual machine for executing TrueType bytecodes. */ --- 71,78 ---- * glyph. */ private final GlyphMeasurer glyphMeasurer; ! ! /** * The virtual machine for executing TrueType bytecodes. */ *************** final class GlyphLoader *** 157,163 **** yMin = glyph.getChar(); xMax = glyph.getChar(); yMax = glyph.getChar(); ! if (numContours >= 0) loadSimpleGlyph(glyphIndex, pointSize, transform, antialias, --- 157,163 ---- yMin = glyph.getChar(); xMax = glyph.getChar(); yMax = glyph.getChar(); ! if (numContours >= 0) loadSimpleGlyph(glyphIndex, pointSize, transform, antialias, *************** final class GlyphLoader *** 272,284 **** if ((flags & WE_HAVE_A_SCALE) != 0) { a = d = getDouble214(glyph); ! b = c = 0.0; } else if ((flags & WE_HAVE_AN_X_AND_Y_SCALE) != 0) { a = getDouble214(glyph); d = getDouble214(glyph); ! b = c = 0.0; } else if ((flags & WE_HAVE_A_TWO_BY_TWO) != 0) { --- 272,284 ---- if ((flags & WE_HAVE_A_SCALE) != 0) { a = d = getDouble214(glyph); ! b = c = 0.0; } else if ((flags & WE_HAVE_AN_X_AND_Y_SCALE) != 0) { a = getDouble214(glyph); d = getDouble214(glyph); ! b = c = 0.0; } else if ((flags & WE_HAVE_A_TWO_BY_TWO) != 0) { *************** final class GlyphLoader *** 310,316 **** if (Math.abs(Math.abs(c) - Math.abs(d)) <= 33.0/65536.0) n = n * 2; ! if ((flags & ARGS_ARE_XY_VALUES) != 0) { e = m * arg1; --- 310,316 ---- if (Math.abs(Math.abs(c) - Math.abs(d)) <= 33.0/65536.0) n = n * 2; ! if ((flags & ARGS_ARE_XY_VALUES) != 0) { e = m * arg1; *************** final class GlyphLoader *** 320,333 **** e = f = 0.0; componentTransform.setTransform(a, b, c, d, 0.0, 0.0); ! // System.out.println("componentTransform = " + componentTransform // + ", e=" + e + ", f=" + f); componentTransform.concatenate(transform); int pos = glyph.position(); int lim = glyph.limit(); ! loadSubGlyph(subGlyphIndex, pointSize, componentTransform, antialias, subGlyphZone, Math.round((float) e + preTranslateX), --- 320,333 ---- e = f = 0.0; componentTransform.setTransform(a, b, c, d, 0.0, 0.0); ! // System.out.println("componentTransform = " + componentTransform // + ", e=" + e + ", f=" + f); componentTransform.concatenate(transform); int pos = glyph.position(); int lim = glyph.limit(); ! loadSubGlyph(subGlyphIndex, pointSize, componentTransform, antialias, subGlyphZone, Math.round((float) e + preTranslateX), *************** final class GlyphLoader *** 431,437 **** glyphMeasurer.getAdvanceWidth(glyphIndex, true)); glyphZone.setOriginalY(numPoints + 1, glyphMeasurer.getAdvanceHeight(glyphIndex, true)); ! /* Phantom point 2: Vertical origin. */ int vertX = glyphMeasurer.getAscent(/* vertical */ false); int vertY = glyphMeasurer.getAscent(/* horizontal */ true); --- 431,437 ---- glyphMeasurer.getAdvanceWidth(glyphIndex, true)); glyphZone.setOriginalY(numPoints + 1, glyphMeasurer.getAdvanceHeight(glyphIndex, true)); ! /* Phantom point 2: Vertical origin. */ int vertX = glyphMeasurer.getAscent(/* vertical */ false); int vertY = glyphMeasurer.getAscent(/* horizontal */ true); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLocator.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLocator.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLocator.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLocator.java Tue Jan 11 19:46:05 2011 *************** abstract class GlyphLocator *** 94,100 **** case 1: return new GlyphLocator.FourByte(loca, glyf); ! default: throw new FontFormatException("unsupported loca format"); } --- 94,100 ---- case 1: return new GlyphLocator.FourByte(loca, glyf); ! default: throw new FontFormatException("unsupported loca format"); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.java Tue Jan 11 19:46:05 2011 *************** final class GlyphMeasurer *** 69,75 **** * font’s vmtx table as shorts. */ private final ShortBuffer verticalGlyphMetrics; ! private final int numLongHorizontalMetricsEntries; private final int numLongVerticalMetricsEntries; --- 69,75 ---- * font’s vmtx table as shorts. */ private final ShortBuffer verticalGlyphMetrics; ! private final int numLongHorizontalMetricsEntries; private final int numLongVerticalMetricsEntries; *************** final class GlyphMeasurer *** 82,88 **** private final int horizontalLineGap; ! /** * Constructs a GlyphMeasurer from TrueType/OpenType font tables. * --- 82,88 ---- private final int horizontalLineGap; ! /** * Constructs a GlyphMeasurer from TrueType/OpenType font tables. * *************** final class GlyphMeasurer *** 145,151 **** { return horizontal ? horizontalAscent : verticalAscent; } ! /** * Returns the distance from the baseline to the lowest descender. --- 145,151 ---- { return horizontal ? horizontalAscent : verticalAscent; } ! /** * Returns the distance from the baseline to the lowest descender. *************** final class GlyphMeasurer *** 156,162 **** * @return the maximal descent, in font units. */ public int getDescent(boolean horizontal) ! { return horizontal ? horizontalDescent : verticalDescent; } --- 156,162 ---- * @return the maximal descent, in font units. */ public int getDescent(boolean horizontal) ! { return horizontal ? horizontalDescent : verticalDescent; } *************** final class GlyphMeasurer *** 188,194 **** * @return the advance width, in font units. */ public int getAdvanceWidth(int glyphIndex, boolean horizontal) ! { if (!horizontal) return 0; --- 188,194 ---- * @return the advance width, in font units. */ public int getAdvanceWidth(int glyphIndex, boolean horizontal) ! { if (!horizontal) return 0; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java Tue Jan 11 19:46:05 2011 *************** public class Point *** 53,59 **** public static final short FLAG_INFLECTION = 32; public static final short FLAG_DONE_X = 64; public static final short FLAG_DONE_Y = 128; ! /** * Right direction. */ --- 53,59 ---- public static final short FLAG_INFLECTION = 32; public static final short FLAG_DONE_X = 64; public static final short FLAG_DONE_Y = 128; ! /** * Right direction. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java Tue Jan 11 19:46:05 2011 *************** public final class TrueTypeScaler *** 137,143 **** ByteBuffer htmx, ByteBuffer vhea, ByteBuffer vtmx, ! ByteBuffer maxp, ByteBuffer controlValueTable, ByteBuffer fpgm, int locaFormat, ByteBuffer loca, --- 137,143 ---- ByteBuffer htmx, ByteBuffer vhea, ByteBuffer vtmx, ! ByteBuffer maxp, ByteBuffer controlValueTable, ByteBuffer fpgm, int locaFormat, ByteBuffer loca, *************** public final class TrueTypeScaler *** 254,260 **** advance.setLocation( scaleFactor * glyphMeasurer.getAdvanceWidth(glyphIndex, horizontal), scaleFactor * glyphMeasurer.getAdvanceHeight(glyphIndex, horizontal)); ! transform.transform(advance, advance); } --- 254,260 ---- advance.setLocation( scaleFactor * glyphMeasurer.getAdvanceWidth(glyphIndex, horizontal), scaleFactor * glyphMeasurer.getAdvanceHeight(glyphIndex, horizontal)); ! transform.transform(advance, advance); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ShortBuffer; *** 70,76 **** * obtained from Apple Computer to use the patented technology inside * the United States. For other countries, different dates might * apply, or no license might be needed. ! * *

          The default build of this class does not use the patented * algorithms. If you have obtained a license from Apple, or if the * patent protection has expired, or if no license is required for --- 70,76 ---- * obtained from Apple Computer to use the patented technology inside * the United States. For other countries, different dates might * apply, or no license might be needed. ! * *

          The default build of this class does not use the patented * algorithms. If you have obtained a license from Apple, or if the * patent protection has expired, or if no license is required for *************** class VirtualMachine *** 348,354 **** /* Read the contents of the Control Value Table. */ if (controlValueTable != null) this.controlValueTable = controlValueTable.asShortBuffer(); ! maxInstructionDefs = maxp.getChar(22); maxStackElements = maxp.getChar(24); storage = new int[maxStorage]; --- 348,354 ---- /* Read the contents of the Control Value Table. */ if (controlValueTable != null) this.controlValueTable = controlValueTable.asShortBuffer(); ! maxInstructionDefs = maxp.getChar(22); maxStackElements = maxp.getChar(24); storage = new int[maxStorage]; *************** class VirtualMachine *** 356,362 **** this.preProgram = preProgram; numTwilightPoints = maxp.getChar(16); } ! /** * Sets the graphics state to default values. --- 356,362 ---- this.preProgram = preProgram; numTwilightPoints = maxp.getChar(16); } ! /** * Sets the graphics state to default values. *************** class VirtualMachine *** 462,468 **** changeCTM = ((pointSize_Fixed != this.pointSize) || !deviceTransform.equals(this.deviceTransform) || (antialiased != this.antialiased)); ! if (changeCTM) { this.pointSize = pointSize_Fixed; --- 462,468 ---- changeCTM = ((pointSize_Fixed != this.pointSize) || !deviceTransform.equals(this.deviceTransform) || (antialiased != this.antialiased)); ! if (changeCTM) { this.pointSize = pointSize_Fixed; *************** class VirtualMachine *** 489,495 **** return executeGlyphInstructions; } ! /** * Executes a stream of TrueType instructions. --- 489,495 ---- return executeGlyphInstructions; } ! /** * Executes a stream of TrueType instructions. *************** class VirtualMachine *** 577,583 **** sbuf.append(getHex(inst.get(pc + 1 + i))); } } ! while (sbuf.length() < 30) sbuf.append(' '); sbuf.append('|'); --- 577,583 ---- sbuf.append(getHex(inst.get(pc + 1 + i))); } } ! while (sbuf.length() < 30) sbuf.append(' '); sbuf.append('|'); *************** class VirtualMachine *** 814,820 **** case 0x16: // SZPS, Set Zone PointerS zp0 = zp1 = zp2 = getZone(stack[sp--]); break; ! case 0x17: // SLOOP, Set LOOP variable loop = stack[sp--]; break; --- 814,820 ---- case 0x16: // SZPS, Set Zone PointerS zp0 = zp1 = zp2 = getZone(stack[sp--]); break; ! case 0x17: // SLOOP, Set LOOP variable loop = stack[sp--]; break; *************** class VirtualMachine *** 837,843 **** /* illegal: --, -- */ -1, -1, /* handle nested if clauses */ true); break; ! case 0x1C: // JMPR, JuMP Relative inst.position(inst.position() - 1 + stack[sp--]); break; --- 837,843 ---- /* illegal: --, -- */ -1, -1, /* handle nested if clauses */ true); break; ! case 0x1C: // JMPR, JuMP Relative inst.position(inst.position() - 1 + stack[sp--]); break; *************** class VirtualMachine *** 905,911 **** execute(fdefBuffer[i], fdefEntryPoint[i]); inst.position(e1); break; ! case 0x2C: // FDEF, Function DEFinition i = stack[sp--]; fdefBuffer[i] = inst; --- 905,911 ---- execute(fdefBuffer[i], fdefEntryPoint[i]); inst.position(e1); break; ! case 0x2C: // FDEF, Function DEFinition i = stack[sp--]; fdefBuffer[i] = inst; *************** class VirtualMachine *** 1170,1176 **** sp -= 2 * count; deltaC(stack, sp + 1, count, 32); break; ! case 0x76: // SROUND, Super ROUND setRoundingMode(Fixed.ONE, stack[sp--]); break; --- 1170,1176 ---- sp -= 2 * count; deltaC(stack, sp + 1, count, 32); break; ! case 0x76: // SROUND, Super ROUND setRoundingMode(Fixed.ONE, stack[sp--]); break; *************** class VirtualMachine *** 1198,1204 **** break; case 0x7c: // RUTG, Round Up To Grid ! setRoundingMode(Fixed.ONE, 0x40); break; case 0x7d: // RDTG, Round Down To Grid --- 1198,1204 ---- break; case 0x7c: // RUTG, Round Up To Grid ! setRoundingMode(Fixed.ONE, 0x40); break; case 0x7d: // RDTG, Round Down To Grid *************** class VirtualMachine *** 1279,1285 **** break; } break; ! case 0xb0: // PUSHB[0] case 0xb1: // PUSHB[1] case 0xb2: // PUSHB[2] --- 1279,1285 ---- break; } break; ! case 0xb0: // PUSHB[0] case 0xb1: // PUSHB[1] case 0xb2: // PUSHB[2] *************** class VirtualMachine *** 1424,1430 **** delta = (arg & 15) - 8; if (delta >= 0) ++delta; ! rightShift = deltaShift - 6; if (rightShift > 0) delta = delta >> rightShift; --- 1424,1430 ---- delta = (arg & 15) - 8; if (delta >= 0) ++delta; ! rightShift = deltaShift - 6; if (rightShift > 0) delta = delta >> rightShift; *************** class VirtualMachine *** 1570,1576 **** org_a = getOriginalProjection(zp0, rp1); cur_a = getProjection(zp0, rp1); ! org_b = getOriginalProjection(zp1, rp2); cur_b = getProjection(zp1, rp2); while (--loop >= 0) --- 1570,1576 ---- org_a = getOriginalProjection(zp0, rp1); cur_a = getProjection(zp0, rp1); ! org_b = getOriginalProjection(zp1, rp2); cur_b = getProjection(zp1, rp2); while (--loop >= 0) *************** class VirtualMachine *** 1643,1649 **** { result = compensation - roundPhase + roundThreshold - distance; result &= -roundPeriod; ! return Math.max(-result, 0) - roundPhase; } } --- 1643,1649 ---- { result = compensation - roundPhase + roundThreshold - distance; result &= -roundPeriod; ! return Math.max(-result, 0) - roundPhase; } } *************** class VirtualMachine *** 1694,1700 **** { cachedPixelsPerEM = Fixed.intValue(Fixed.vectorLength( applyCTM_x(projX >> 8, projY >> 8), ! applyCTM_y(projX >> 8, projY >> 8))); } return cachedPixelsPerEM; --- 1694,1700 ---- { cachedPixelsPerEM = Fixed.intValue(Fixed.vectorLength( applyCTM_x(projX >> 8, projY >> 8), ! applyCTM_y(projX >> 8, projY >> 8))); } return cachedPixelsPerEM; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/Zone.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/Zone.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/Zone.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/Zone.java Tue Jan 11 19:46:05 2011 *************** public final class Zone *** 229,235 **** System.out.print('.'); else System.out.print('c'); ! if (isContourEnd(i)) System.out.print('E'); System.out.println(); if (isContourEnd(i)) --- 229,235 ---- System.out.print('.'); else System.out.print('c'); ! if (isContourEnd(i)) System.out.print('E'); System.out.println(); if (isContourEnd(i)) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/ZonePathIterator.java gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/ZonePathIterator.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/font/opentype/truetype/ZonePathIterator.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/font/opentype/truetype/ZonePathIterator.java Tue Jan 11 19:46:05 2011 *************** final class ZonePathIterator *** 70,76 **** */ private static final int EMIT_CLOSE = 1; ! /** * If state has this value, currentSegment * will emit a SEG_MOVETO segment to the first point in --- 70,76 ---- */ private static final int EMIT_CLOSE = 1; ! /** * If state has this value, currentSegment * will emit a SEG_MOVETO segment to the first point in *************** final class ZonePathIterator *** 115,121 **** */ private int contourStart; ! private int type; /** --- 115,121 ---- */ private int contourStart; ! private int type; /** *************** final class ZonePathIterator *** 152,158 **** return (state != EMIT_CLOSE) && (curPoint >= numPoints); } ! public void next() { boolean onCurve; --- 152,158 ---- return (state != EMIT_CLOSE) && (curPoint >= numPoints); } ! public void next() { boolean onCurve; *************** final class ZonePathIterator *** 231,237 **** else return p + 1; } ! /** --- 231,237 ---- else return p + 1; } ! /** *************** final class ZonePathIterator *** 244,250 **** { case EMIT_CLOSE: return PathIterator.SEG_CLOSE; ! case EMIT_MOVETO: return getStartSegment(curPoint, coords); --- 244,250 ---- { case EMIT_CLOSE: return PathIterator.SEG_CLOSE; ! case EMIT_MOVETO: return getStartSegment(curPoint, coords); *************** final class ZonePathIterator *** 270,276 **** if (floats == null) floats = new float[6]; int result; ! result = currentSegment(floats); for (int i = 0; i < 6; i++) coords[i] = floats[i]; --- 270,276 ---- if (floats == null) floats = new float[6]; int result; ! result = currentSegment(floats); for (int i = 0; i < 6; i++) coords[i] = floats[i]; *************** final class ZonePathIterator *** 362,368 **** if (zone.isOnCurve(contourStart)) { x = zone.getX(contourStart, type); ! y = zone.getY(contourStart, type); } else { --- 362,368 ---- if (zone.isOnCurve(contourStart)) { x = zone.getX(contourStart, type); ! y = zone.getY(contourStart, type); } else { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/image/AsyncImage.java gcc-4.6.0/libjava/classpath/gnu/java/awt/image/AsyncImage.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/image/AsyncImage.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/image/AsyncImage.java Tue Jan 11 19:46:05 2011 *************** public class AsyncImage *** 159,167 **** g = r.getGraphics(); // Should we return some dummy graphics instead? return g; } ! public boolean isComplete() { ! return complete; } public int getHeight(ImageObserver observer) --- 159,167 ---- g = r.getGraphics(); // Should we return some dummy graphics instead? return g; } ! public boolean isComplete() { ! return complete; } public int getHeight(ImageObserver observer) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/image/ImageConverter.java gcc-4.6.0/libjava/classpath/gnu/java/awt/image/ImageConverter.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/image/ImageConverter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/image/ImageConverter.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 55,61 **** /** * Convert an Image to a BufferedImage. ! * * @author Roman Kennke (kennke@aicas.com) */ public class ImageConverter implements ImageConsumer --- 55,61 ---- /** * Convert an Image to a BufferedImage. ! * * @author Roman Kennke (kennke@aicas.com) */ public class ImageConverter implements ImageConsumer *************** public class ImageConverter implements I *** 121,127 **** scansize, transparency); } else if (model instanceof IndexColorModel ! && targetColorModel.equals(ColorModel.getRGBdefault())) { transparency = convertIndexColorModelToSRGB(x, y, w, h, (IndexColorModel) model, --- 121,127 ---- scansize, transparency); } else if (model instanceof IndexColorModel ! && targetColorModel.equals(ColorModel.getRGBdefault())) { transparency = convertIndexColorModelToSRGB(x, y, w, h, (IndexColorModel) model, *************** public class ImageConverter implements I *** 246,252 **** * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int transferPixels(int x, int y, int w, int h, ColorModel model, --- 246,252 ---- * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int transferPixels(int x, int y, int w, int h, ColorModel model, *************** public class ImageConverter implements I *** 281,287 **** * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int transferPixels(int x, int y, int w, int h, ColorModel model, --- 281,287 ---- * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int transferPixels(int x, int y, int w, int h, ColorModel model, *************** public class ImageConverter implements I *** 317,323 **** * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int convertPixels(int x, int y, int w, int h, ColorModel model, --- 317,323 ---- * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int convertPixels(int x, int y, int w, int h, ColorModel model, *************** public class ImageConverter implements I *** 356,362 **** * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int convertPixels(int x, int y, int w, int h, ColorModel model, --- 356,362 ---- * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int convertPixels(int x, int y, int w, int h, ColorModel model, *************** public class ImageConverter implements I *** 394,400 **** * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int convertIndexColorModelToSRGB(int x, int y, int w, int h, --- 394,400 ---- * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int convertIndexColorModelToSRGB(int x, int y, int w, int h, *************** public class ImageConverter implements I *** 447,453 **** * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int convertIndexColorModelToSRGB(int x, int y, int w, int h, --- 447,453 ---- * @param offset the offset in the pixel array * @param scansize the scanline size * @param transparency the assumed transparency ! * * @return the determined transparency */ private int convertIndexColorModelToSRGB(int x, int y, int w, int h, diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/image/ImageDecoder.java gcc-4.6.0/libjava/classpath/gnu/java/awt/image/ImageDecoder.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/image/ImageDecoder.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/image/ImageDecoder.java Tue Jan 11 19:46:05 2011 *************** import java.io.InputStream; *** 48,54 **** import java.net.URL; import java.util.Vector; ! public abstract class ImageDecoder implements ImageProducer { Vector consumers = new Vector (); String filename; --- 48,54 ---- import java.net.URL; import java.util.Vector; ! public abstract class ImageDecoder implements ImageProducer { Vector consumers = new Vector (); String filename; *************** public abstract class ImageDecoder imple *** 94,100 **** length = imagelength; } ! public void addConsumer (ImageConsumer ic) { consumers.addElement (ic); } --- 94,100 ---- length = imagelength; } ! public void addConsumer (ImageConsumer ic) { consumers.addElement (ic); } *************** public abstract class ImageDecoder imple *** 103,109 **** { return consumers.contains (ic); } ! public void removeConsumer (ImageConsumer ic) { consumers.removeElement (ic); --- 103,109 ---- { return consumers.contains (ic); } ! public void removeConsumer (ImageConsumer ic) { consumers.removeElement (ic); *************** public abstract class ImageDecoder imple *** 115,134 **** addConsumer(ic); Vector list = (Vector) consumers.clone (); ! try { ! // Create the input stream here rather than in the ! // ImageDecoder constructors so that exceptions cause ! // imageComplete to be called with an appropriate error ! // status. if (input == null) { ! try { if (url != null) input = url.openStream(); ! else if (datainput != null) ! input = new DataInputStreamWrapper(datainput); else { if (filename != null) --- 115,134 ---- addConsumer(ic); Vector list = (Vector) consumers.clone (); ! try { ! // Create the input stream here rather than in the ! // ImageDecoder constructors so that exceptions cause ! // imageComplete to be called with an appropriate error ! // status. if (input == null) { ! try { if (url != null) input = url.openStream(); ! else if (datainput != null) ! input = new DataInputStreamWrapper(datainput); else { if (filename != null) *************** public abstract class ImageDecoder imple *** 137,144 **** input = new ByteArrayInputStream (data, offset, length); } produce (list, input); ! } ! finally { input = null; } --- 137,144 ---- input = new ByteArrayInputStream (data, offset, length); } produce (list, input); ! } ! finally { input = null; } *************** public abstract class ImageDecoder imple *** 150,165 **** } catch (Exception e) { ! for (int i = 0; i < list.size (); i++) ! { ! ImageConsumer ic2 = (ImageConsumer) list.elementAt (i); ! ic2.imageComplete (ImageConsumer.IMAGEERROR); ! } } } ! public void requestTopDownLeftRightResend (ImageConsumer ic) ! { } public abstract void produce (Vector v, InputStream is) throws IOException; --- 150,165 ---- } catch (Exception e) { ! for (int i = 0; i < list.size (); i++) ! { ! ImageConsumer ic2 = (ImageConsumer) list.elementAt (i); ! ic2.imageComplete (ImageConsumer.IMAGEERROR); ! } } } ! public void requestTopDownLeftRightResend (ImageConsumer ic) ! { } public abstract void produce (Vector v, InputStream is) throws IOException; *************** public abstract class ImageDecoder imple *** 176,188 **** public int read() throws IOException { try ! { ! return datainput.readByte() & 0xFF; ! } catch (EOFException eofe) ! { ! return -1; ! } } } } --- 176,188 ---- public int read() throws IOException { try ! { ! return datainput.readByte() & 0xFF; ! } catch (EOFException eofe) ! { ! return -1; ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/image/XBMDecoder.java gcc-4.6.0/libjava/classpath/gnu/java/awt/image/XBMDecoder.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/image/XBMDecoder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/image/XBMDecoder.java Tue Jan 11 19:46:05 2011 *************** public class XBMDecoder extends ImageDec *** 55,62 **** static final ColorModel cm = ColorModel.getRGBdefault (); static final int black = 0xff000000; static final int transparent = 0x00000000; ! static final int masktable[] = { 0x01, 0x02, 0x04, 0x08, ! 0x10, 0x20, 0x40, 0x80 }; public XBMDecoder (String filename) { --- 55,62 ---- static final ColorModel cm = ColorModel.getRGBdefault (); static final int black = 0xff000000; static final int transparent = 0x00000000; ! static final int masktable[] = { 0x01, 0x02, 0x04, 0x08, ! 0x10, 0x20, 0x40, 0x80 }; public XBMDecoder (String filename) { *************** public class XBMDecoder extends ImageDec *** 75,101 **** for (int i = 0; i < 2; i++) { ! String line = reader.readLine (); ! StringTokenizer st = new StringTokenizer (line); ! ! st.nextToken (); // #define ! st.nextToken (); // name_[width|height] ! if (i == 0) ! width = Integer.parseInt (st.nextToken (), 10); ! else ! height = Integer.parseInt (st.nextToken (), 10); } for (int i = 0; i < v.size (); i++) { ! ImageConsumer ic = (ImageConsumer) v.elementAt (i); ! ic.setDimensions (width, height); ! ic.setColorModel (cm); ! ic.setHints (ImageConsumer.COMPLETESCANLINES ! | ImageConsumer.SINGLEFRAME ! | ImageConsumer.SINGLEPASS ! | ImageConsumer.TOPDOWNLEFTRIGHT); } /* skip to the byte array */ --- 75,101 ---- for (int i = 0; i < 2; i++) { ! String line = reader.readLine (); ! StringTokenizer st = new StringTokenizer (line); ! ! st.nextToken (); // #define ! st.nextToken (); // name_[width|height] ! if (i == 0) ! width = Integer.parseInt (st.nextToken (), 10); ! else ! height = Integer.parseInt (st.nextToken (), 10); } for (int i = 0; i < v.size (); i++) { ! ImageConsumer ic = (ImageConsumer) v.elementAt (i); ! ic.setDimensions (width, height); ! ic.setColorModel (cm); ! ic.setHints (ImageConsumer.COMPLETESCANLINES ! | ImageConsumer.SINGLEFRAME ! | ImageConsumer.SINGLEPASS ! | ImageConsumer.TOPDOWNLEFTRIGHT); } /* skip to the byte array */ *************** public class XBMDecoder extends ImageDec *** 104,125 **** /* loop through each scanline */ for (int line = 0; line < height; line++) { ! int scanline[] = getScanline (reader, width); ! for (int i = 0; i < v.size (); i++) ! { ! ImageConsumer ic = (ImageConsumer) v.elementAt (i); ! ic.setPixels (0, 0 + line, width, 1, cm, scanline, 0, width); ! } } /* tell each ImageConsumer that we're finished */ for (int i = 0; i < v.size (); i++) { ! ImageConsumer ic = (ImageConsumer) v.elementAt (i); ! ic.imageComplete (ImageConsumer.STATICIMAGEDONE); } ! } public static int[] getScanline (Reader in, int len) throws IOException { --- 104,125 ---- /* loop through each scanline */ for (int line = 0; line < height; line++) { ! int scanline[] = getScanline (reader, width); ! for (int i = 0; i < v.size (); i++) ! { ! ImageConsumer ic = (ImageConsumer) v.elementAt (i); ! ic.setPixels (0, 0 + line, width, 1, cm, scanline, 0, width); ! } } /* tell each ImageConsumer that we're finished */ for (int i = 0; i < v.size (); i++) { ! ImageConsumer ic = (ImageConsumer) v.elementAt (i); ! ic.imageComplete (ImageConsumer.STATICIMAGEDONE); } ! } public static int[] getScanline (Reader in, int len) throws IOException { *************** public class XBMDecoder extends ImageDec *** 129,153 **** while (x < len) { ! int ch = in.read (); ! if (ch == '0') ! { ! in.read (); // 'x' ! ! byteStr[0] = (char) in.read (); ! byteStr[1] = (char) in.read (); ! int byteVal = Integer.parseInt (new String (byteStr), 16); ! for (int i = 0; i < 8; i++, x++) ! { ! if (x == len) // condition occurs if bitmap is padded ! return scanline; ! scanline[x] = ((byteVal & masktable[i]) != 0) ? ! black : transparent; ! } ! } } return scanline; --- 129,153 ---- while (x < len) { ! int ch = in.read (); ! if (ch == '0') ! { ! in.read (); // 'x' ! byteStr[0] = (char) in.read (); ! byteStr[1] = (char) in.read (); ! int byteVal = Integer.parseInt (new String (byteStr), 16); ! for (int i = 0; i < 8; i++, x++) ! { ! if (x == len) // condition occurs if bitmap is padded ! return scanline; ! ! scanline[x] = ((byteVal & masktable[i]) != 0) ? ! black : transparent; ! } ! } } return scanline; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractGraphics2D *** 166,172 **** */ protected static final WeakHashMap> imageCache = new WeakHashMap>(); ! /** * Wether we use anti aliasing for rendering text by default or not. */ --- 166,172 ---- */ protected static final WeakHashMap> imageCache = new WeakHashMap>(); ! /** * Wether we use anti aliasing for rendering text by default or not. */ *************** public abstract class AbstractGraphics2D *** 234,240 **** */ private Color foreground = Color.BLACK; private boolean isForegroundColorNull = true; ! /** * The current font. */ --- 234,240 ---- */ private Color foreground = Color.BLACK; private boolean isForegroundColorNull = true; ! /** * The current font. */ *************** public abstract class AbstractGraphics2D *** 287,302 **** private static final HashMap STANDARD_HINTS; static { ! HashMap hints = new HashMap(); hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT); hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_DEFAULT); ! STANDARD_HINTS = hints; } ! /** * Creates a new AbstractGraphics2D instance. */ --- 287,302 ---- private static final HashMap STANDARD_HINTS; static { ! HashMap hints = new HashMap(); hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT); hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_DEFAULT); ! STANDARD_HINTS = hints; } ! /** * Creates a new AbstractGraphics2D instance. */ *************** public abstract class AbstractGraphics2D *** 398,405 **** * * @param image the source buffered image * @param op the filter to apply to the buffered image before rendering ! * @param x the x coordinate to render the image to ! * @param y the y coordinate to render the image to */ public void drawImage(BufferedImage image, BufferedImageOp op, int x, int y) { --- 398,405 ---- * * @param image the source buffered image * @param op the filter to apply to the buffered image before rendering ! * @param x the x coordinate to render the image to ! * @param y the y coordinate to render the image to */ public void drawImage(BufferedImage image, BufferedImageOp op, int x, int y) { *************** public abstract class AbstractGraphics2D *** 415,421 **** * transform is used to convert the image into user space. The transform * of this AbstractGraphics2D object is used to transform from user space * to device space. ! * * The rendering is performed using the scanline algorithm that performs the * rendering of other shapes and a custom Paint implementation, that supplies * the pixel values of the rendered image. --- 415,421 ---- * transform is used to convert the image into user space. The transform * of this AbstractGraphics2D object is used to transform from user space * to device space. ! * * The rendering is performed using the scanline algorithm that performs the * rendering of other shapes and a custom Paint implementation, that supplies * the pixel values of the rendered image. *************** public abstract class AbstractGraphics2D *** 438,444 **** * of this AbstractGraphics2D object is used to transform from user space * to device space. Only the area specified by areaOfInterest * is finally rendered to the target. ! * * The rendering is performed using the scanline algorithm that performs the * rendering of other shapes and a custom Paint implementation, that supplies * the pixel values of the rendered image. --- 438,444 ---- * of this AbstractGraphics2D object is used to transform from user space * to device space. Only the area specified by areaOfInterest * is finally rendered to the target. ! * * The rendering is performed using the scanline algorithm that performs the * rendering of other shapes and a custom Paint implementation, that supplies * the pixel values of the rendered image. *************** public abstract class AbstractGraphics2D *** 504,510 **** (int) image.getWidth(), (int) image.getHeight()); drawRenderableImageImpl(image, xform, areaOfInterest); ! } /** --- 504,510 ---- (int) image.getWidth(), (int) image.getHeight()); drawRenderableImageImpl(image, xform, areaOfInterest); ! } /** *************** public abstract class AbstractGraphics2D *** 648,654 **** if (p != null) { paint = p; ! if (! (paint instanceof Color)) { isOptimized = false; --- 648,654 ---- if (p != null) { paint = p; ! if (! (paint instanceof Color)) { isOptimized = false; *************** public abstract class AbstractGraphics2D *** 665,675 **** this.foreground = Color.BLACK; isForegroundColorNull = true; } ! // free resources if needed, then put the paint context to null if (this.paintContext != null) this.paintContext.dispose(); ! this.paintContext = null; } --- 665,675 ---- this.foreground = Color.BLACK; isForegroundColorNull = true; } ! // free resources if needed, then put the paint context to null if (this.paintContext != null) this.paintContext.dispose(); ! this.paintContext = null; } *************** public abstract class AbstractGraphics2D *** 745,751 **** * Translates the coordinate system by (x, y). * * @param x the translation X coordinate ! * @param y the translation Y coordinate */ public void translate(int x, int y) { --- 745,751 ---- * Translates the coordinate system by (x, y). * * @param x the translation X coordinate ! * @param y the translation Y coordinate */ public void translate(int x, int y) { *************** public abstract class AbstractGraphics2D *** 775,781 **** * Translates the coordinate system by (tx, ty). * * @param tx the translation X coordinate ! * @param ty the translation Y coordinate */ public void translate(double tx, double ty) { --- 775,781 ---- * Translates the coordinate system by (tx, ty). * * @param tx the translation X coordinate ! * @param ty the translation Y coordinate */ public void translate(double tx, double ty) { *************** public abstract class AbstractGraphics2D *** 992,998 **** if (clip == null) setClip(s); ! // This is so common, let's optimize this. else if (clip instanceof Rectangle && s instanceof Rectangle) { Rectangle clipRect = (Rectangle) clip; --- 992,998 ---- if (clip == null) setClip(s); ! // This is so common, let's optimize this. else if (clip instanceof Rectangle && s instanceof Rectangle) { Rectangle clipRect = (Rectangle) clip; *************** public abstract class AbstractGraphics2D *** 1076,1083 **** else copy.clip = null; ! copy.renderingHints = new RenderingHints(null); ! copy.renderingHints.putAll(renderingHints); copy.transform = new AffineTransform(transform); // The remaining state is inmmutable and doesn't need to be copied. return copy; --- 1076,1083 ---- else copy.clip = null; ! copy.renderingHints = new RenderingHints(null); ! copy.renderingHints.putAll(renderingHints); copy.transform = new AffineTransform(transform); // The remaining state is inmmutable and doesn't need to be copied. return copy; *************** public abstract class AbstractGraphics2D *** 1097,1103 **** { if (isForegroundColorNull) return null; ! return this.foreground; } --- 1097,1103 ---- { if (isForegroundColorNull) return null; ! return this.foreground; } *************** public abstract class AbstractGraphics2D *** 1107,1113 **** * @param color the foreground to set */ public void setColor(Color color) ! { this.setPaint(color); } --- 1107,1113 ---- * @param color the foreground to set */ public void setColor(Color color) ! { this.setPaint(color); } *************** public abstract class AbstractGraphics2D *** 1298,1304 **** /** * Fills a rectangle with the current background color. * ! * This implementation temporarily sets the foreground color to the * background and forwards the call to {@link #fillRect(int, int, int, int)}. * * @param x the upper left corner, X coordinate --- 1298,1304 ---- /** * Fills a rectangle with the current background color. * ! * This implementation temporarily sets the foreground color to the * background and forwards the call to {@link #fillRect(int, int, int, int)}. * * @param x the upper left corner, X coordinate *************** public abstract class AbstractGraphics2D *** 1590,1596 **** int dy = Math.min(dy1, dy2); int dw = Math.abs(dx1 - dx2); int dh = Math.abs(dy1 - dy2); ! AffineTransform t = new AffineTransform(); t.translate(sx - dx, sy - dy); double scaleX = (double) sw / (double) dw; --- 1590,1596 ---- int dy = Math.min(dy1, dy2); int dw = Math.abs(dx1 - dx2); int dh = Math.abs(dy1 - dy2); ! AffineTransform t = new AffineTransform(); t.translate(sx - dx, sy - dy); double scaleX = (double) sw / (double) dw; *************** public abstract class AbstractGraphics2D *** 1693,1699 **** * * @param x0 the starting point, X coordinate * @param y0 the starting point, Y coordinate ! * @param x1 the end point, X coordinate * @param y1 the end point, Y coordinate */ protected void rawDrawLine(int x0, int y0, int x1, int y1) --- 1693,1699 ---- * * @param x0 the starting point, X coordinate * @param y0 the starting point, Y coordinate ! * @param x1 the end point, X coordinate * @param y1 the end point, Y coordinate */ protected void rawDrawLine(int x0, int y0, int x1, int y1) *************** public abstract class AbstractGraphics2D *** 1806,1812 **** public void renderScanline(int y, ScanlineCoverage c) { PaintContext pCtx = getPaintContext(); ! int x0 = c.getMinX(); int x1 = c.getMaxX(); Raster paintRaster = pCtx.getRaster(x0, y, x1 - x0, 1); --- 1806,1812 ---- public void renderScanline(int y, ScanlineCoverage c) { PaintContext pCtx = getPaintContext(); ! int x0 = c.getMinX(); int x1 = c.getMaxX(); Raster paintRaster = pCtx.getRaster(x0, y, x1 - x0, 1); *************** public abstract class AbstractGraphics2D *** 1842,1848 **** renderingHints); WritableRaster raster = getDestinationRaster(); WritableRaster targetChild = raster.createWritableTranslatedChild(-x0, -y); ! cCtx.compose(paintRaster, targetChild, targetChild); updateRaster(raster, x0, y, x1 - x0, 1); cCtx.dispose(); --- 1842,1848 ---- renderingHints); WritableRaster raster = getDestinationRaster(); WritableRaster targetChild = raster.createWritableTranslatedChild(-x0, -y); ! cCtx.compose(paintRaster, targetChild, targetChild); updateRaster(raster, x0, y, x1 - x0, 1); cCtx.dispose(); *************** public abstract class AbstractGraphics2D *** 2042,2048 **** getTransform(), getRenderingHints()); } ! return this.paintContext; } --- 2042,2048 ---- getTransform(), getRenderingHints()); } ! return this.paintContext; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/AlphaCompositeContext.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/AlphaCompositeContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/AlphaCompositeContext.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/AlphaCompositeContext.java Tue Jan 11 19:46:05 2011 *************** public class AlphaCompositeContext *** 82,88 **** /** * Creates a new AlphaCompositeContext. * ! * @param aComp the AlphaComposite object * @param srcCM the source color model * @param dstCM the destination color model */ --- 82,88 ---- /** * Creates a new AlphaCompositeContext. * ! * @param aComp the AlphaComposite object * @param srcCM the source color model * @param dstCM the destination color model */ *************** public class AlphaCompositeContext *** 93,99 **** srcColorModel = srcCM; dstColorModel = dstCM; ! // Determine the blending factors according to the rule in the // AlphaComposite. For some rules the factors must be determined // dynamically because they depend on the actual pixel value. --- 93,99 ---- srcColorModel = srcCM; dstColorModel = dstCM; ! // Determine the blending factors according to the rule in the // AlphaComposite. For some rules the factors must be determined // dynamically because they depend on the actual pixel value. *************** public class AlphaCompositeContext *** 301,307 **** { for (int i = 0; i < dstComponentsLength - 1; i++) { ! dstComponents[i] = dstComponents[i] / dstAlpha; } } --- 301,307 ---- { for (int i = 0; i < dstComponentsLength - 1; i++) { ! dstComponents[i] = dstComponents[i] / dstAlpha; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/CubicSegment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/CubicSegment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/CubicSegment.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/CubicSegment.java Tue Jan 11 19:46:05 2011 *************** public class CubicSegment extends Segmen *** 80,90 **** public Object clone() { CubicSegment segment = null; ! try { segment = (CubicSegment) super.clone(); ! segment.P1 = (Point2D) P1.clone(); segment.P2 = (Point2D) P2.clone(); segment.cp1 = (Point2D) cp1.clone(); --- 80,90 ---- public Object clone() { CubicSegment segment = null; ! try { segment = (CubicSegment) super.clone(); ! segment.P1 = (Point2D) P1.clone(); segment.P2 = (Point2D) P2.clone(); segment.cp1 = (Point2D) cp1.clone(); *************** public class CubicSegment extends Segmen *** 96,102 **** ie.initCause(cnse); throw ie; } ! return segment; } --- 96,102 ---- ie.initCause(cnse); throw ie; } ! return segment; } *************** public class CubicSegment extends Segmen *** 161,167 **** return new Segment[] { segmentTop, segmentBottom }; } ! public void reverse() { Point2D temp = P1; --- 161,167 ---- return new Segment[] { segmentTop, segmentBottom }; } ! public void reverse() { Point2D temp = P1; *************** public class CubicSegment extends Segmen *** 174,184 **** public double[] cp1() { ! return new double[]{cp1.getX(), cp1.getY()}; } public double[] cp2() { ! return new double[]{cp2.getX(), cp2.getY()}; } } // class CubicSegment --- 174,184 ---- public double[] cp1() { ! return new double[]{cp1.getX(), cp1.getY()}; } public double[] cp2() { ! return new double[]{cp2.getX(), cp2.getY()}; } } // class CubicSegment diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/LineSegment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/LineSegment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/LineSegment.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/LineSegment.java Tue Jan 11 19:46:05 2011 *************** public class LineSegment extends Segment *** 63,69 **** public Object clone() { LineSegment segment = null; ! try { segment = (LineSegment) super.clone(); --- 63,69 ---- public Object clone() { LineSegment segment = null; ! try { segment = (LineSegment) super.clone(); *************** public class LineSegment extends Segment *** 76,82 **** ie.initCause(cnse); throw ie; } ! return segment; } --- 76,82 ---- ie.initCause(cnse); throw ie; } ! return segment; } *************** public class LineSegment extends Segment *** 108,118 **** public double[] cp1() { ! return new double[]{P2.getX(), P2.getY()}; } public double[] cp2() { ! return new double[]{P1.getX(), P1.getY()}; } } // class LineSegment --- 108,118 ---- public double[] cp1() { ! return new double[]{P2.getX(), P2.getY()}; } public double[] cp2() { ! return new double[]{P1.getX(), P1.getY()}; } } // class LineSegment diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java Tue Jan 11 19:46:05 2011 *************** final class PixelCoverage *** 124,130 **** Bucket match = current; while (match != null && match.xPos != x) { ! } return match; --- 124,130 ---- Bucket match = current; while (match != null && match.xPos != x) { ! } return match; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/QuadSegment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/QuadSegment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/QuadSegment.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/QuadSegment.java Tue Jan 11 19:46:05 2011 *************** public class QuadSegment extends Segment *** 89,95 **** public Object clone() { QuadSegment segment = null; ! try { segment = (QuadSegment) super.clone(); --- 89,95 ---- public Object clone() { QuadSegment segment = null; ! try { segment = (QuadSegment) super.clone(); *************** public class QuadSegment extends Segment *** 104,110 **** ie.initCause(cnse); throw ie; } ! return segment; } --- 104,110 ---- ie.initCause(cnse); throw ie; } ! return segment; } *************** public class QuadSegment extends Segment *** 135,144 **** return new Segment[]{s1, s2}; } ! private QuadSegment offsetSubdivided(QuadCurve2D curve, boolean plus) { ! double[] n1 = normal(curve.getX1(), curve.getY1(), curve.getCtrlX(), curve.getCtrlY()); double[] n2 = normal(curve.getCtrlX(), curve.getCtrlY(), curve.getX2(), curve.getY2()); --- 135,144 ---- return new Segment[]{s1, s2}; } ! private QuadSegment offsetSubdivided(QuadCurve2D curve, boolean plus) { ! double[] n1 = normal(curve.getX1(), curve.getY1(), curve.getCtrlX(), curve.getCtrlY()); double[] n2 = normal(curve.getCtrlX(), curve.getCtrlY(), curve.getX2(), curve.getY2()); *************** public class QuadSegment extends Segment *** 152,158 **** n2[0] = -n2[0]; n2[1] = -n2[1]; } ! // Handle special cases where the control point is equal to an end point // or end points are equal (ie, straight lines) if (curve.getP1().equals(curve.getCtrlPt())) --- 152,158 ---- n2[0] = -n2[0]; n2[1] = -n2[1]; } ! // Handle special cases where the control point is equal to an end point // or end points are equal (ie, straight lines) if (curve.getP1().equals(curve.getCtrlPt())) *************** public class QuadSegment extends Segment *** 179,185 **** double ratio = radius / length; deltaX *= ratio; deltaY *= ratio; ! if (plus) cp.setLocation(cp.getX() + deltaX, cp.getY() + deltaY); else --- 179,185 ---- double ratio = radius / length; deltaX *= ratio; deltaY *= ratio; ! if (plus) cp.setLocation(cp.getX() + deltaX, cp.getY() + deltaY); else *************** public class QuadSegment extends Segment *** 192,207 **** } else { ! cp = lineIntersection(curve.getX1() + n1[0], curve.getY1() + n1[1], curve.getCtrlX() + n1[0], curve.getCtrlY() + n1[1], curve.getCtrlX() + n2[0], curve.getCtrlY() + n2[1], ! curve.getX2() + n2[0], curve.getY2() + n2[1], true); } ! s = new QuadSegment(curve.getX1() + n1[0], curve.getY1() + n1[1], cp.getX(), cp.getY(), curve.getX2() + n2[0], curve.getY2() + n2[1]); --- 192,207 ---- } else { ! cp = lineIntersection(curve.getX1() + n1[0], curve.getY1() + n1[1], curve.getCtrlX() + n1[0], curve.getCtrlY() + n1[1], curve.getCtrlX() + n2[0], curve.getCtrlY() + n2[1], ! curve.getX2() + n2[0], curve.getY2() + n2[1], true); } ! s = new QuadSegment(curve.getX1() + n1[0], curve.getY1() + n1[1], cp.getX(), cp.getY(), curve.getX2() + n2[0], curve.getY2() + n2[1]); *************** public class QuadSegment extends Segment *** 209,217 **** return s; } ! private Point2D lineIntersection(double X1, double Y1, ! double X2, double Y2, ! double X3, double Y3, double X4, double Y4, boolean infinite) { --- 209,217 ---- return s; } ! private Point2D lineIntersection(double X1, double Y1, ! double X2, double Y2, ! double X3, double Y3, double X4, double Y4, boolean infinite) { *************** public class QuadSegment extends Segment *** 250,260 **** public double[] cp1() { ! return new double[]{cp.getX(), cp.getY()}; } public double[] cp2() { ! return new double[]{cp.getX(), cp.getY()}; } } --- 250,260 ---- public double[] cp1() { ! return new double[]{cp.getX(), cp.getY()}; } public double[] cp2() { ! return new double[]{cp.getX(), cp.getY()}; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java Tue Jan 11 19:46:05 2011 *************** public class RasterGraphics *** 77,86 **** { if (y >= getDeviceBounds().width) return; ! super.renderScanline(y, c); } ! /** * Returns the color model of this Graphics object. * --- 77,86 ---- { if (y >= getDeviceBounds().width) return; ! super.renderScanline(y, c); } ! /** * Returns the color model of this Graphics object. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java Tue Jan 11 19:46:05 2011 *************** public final class ScanlineConverter *** 206,212 **** // Ok, now we can perform the actual scanlining. int realY = Fixed.intValue(FIXED_DIGITS, y + resolution); boolean push = lastRealY != realY; ! doScanline(p, y, push, haveClip); // Remove obsolete active edges. --- 206,212 ---- // Ok, now we can perform the actual scanlining. int realY = Fixed.intValue(FIXED_DIGITS, y + resolution); boolean push = lastRealY != realY; ! doScanline(p, y, push, haveClip); // Remove obsolete active edges. *************** public final class ScanlineConverter *** 299,305 **** p.renderScanline(Fixed.intValue(FIXED_DIGITS, y), scanlineCoverage); scanlineCoverage.clear(); } ! } /** --- 299,305 ---- p.renderScanline(Fixed.intValue(FIXED_DIGITS, y), scanlineCoverage); scanlineCoverage.clear(); } ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java Tue Jan 11 19:46:05 2011 *************** public final class ScanlineCoverage *** 199,205 **** /** * Returns the X start position (left) on the scanline. This value * is considered to be in pixels and device space. ! * * @return the X position on the scanline */ public int getXPos() --- 199,205 ---- /** * Returns the X start position (left) on the scanline. This value * is considered to be in pixels and device space. ! * * @return the X position on the scanline */ public int getXPos() *************** public final class ScanlineCoverage *** 445,451 **** * Returns the maximum coverage value for the scanline. * * @return the maximum coverage value for the scanline ! */ public int getMaxCoverage() { return maxCoverage; --- 445,451 ---- * Returns the maximum coverage value for the scanline. * * @return the maximum coverage value for the scanline ! */ public int getMaxCoverage() { return maxCoverage; *************** public final class ScanlineCoverage *** 574,580 **** // Testpoint 6. cov = new Coverage(); } ! cov.xPos = x; cov.covDelta = 0; cov.pixelCoverage = 0; --- 574,580 ---- // Testpoint 6. cov = new Coverage(); } ! cov.xPos = x; cov.covDelta = 0; cov.pixelCoverage = 0; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/Segment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/Segment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/Segment.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/Segment.java Tue Jan 11 19:46:05 2011 *************** public abstract class Segment implements *** 45,56 **** // Start and end points of THIS segment public Point2D P1; public Point2D P2; ! // Segments can be linked together internally as a linked list public Segment first; public Segment next; public Segment last; ! // Half the stroke width protected double radius; --- 45,56 ---- // Start and end points of THIS segment public Point2D P1; public Point2D P2; ! // Segments can be linked together internally as a linked list public Segment first; public Segment next; public Segment last; ! // Half the stroke width protected double radius; *************** public abstract class Segment implements *** 116,122 **** { dy = radius * ((dx > 0)?1:-1); dx = 0; ! } else if( dx == 0 ) { dx = radius * ((dy > 0)?-1:1); --- 116,122 ---- { dy = radius * ((dx > 0)?1:-1); dx = 0; ! } else if( dx == 0 ) { dx = radius * ((dy > 0)?-1:1); *************** public abstract class Segment implements *** 148,154 **** * for a line segment. */ public abstract double[] cp1(); ! /** * Returns the coordinates of the second control point, or the end point * for a line segment. --- 148,154 ---- * for a line segment. */ public abstract double[] cp1(); ! /** * Returns the coordinates of the second control point, or the end point * for a line segment. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/TexturePaintContext.java gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/TexturePaintContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/java2d/TexturePaintContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/java2d/TexturePaintContext.java Tue Jan 11 19:46:05 2011 *************** public class TexturePaintContext *** 148,154 **** * @param h the height * * @return the Raster that is used for painting ! * */ public Raster getRaster(int x1, int y1, int w, int h) { --- 148,154 ---- * @param h the height * * @return the Raster that is used for painting ! * */ public Raster getRaster(int x1, int y1, int w, int h) { *************** public class TexturePaintContext *** 175,183 **** int dy = (int) dest[1]; // The modulo operation gives us the replication effect. ! dx = ((dx - minX) % width) + minX; dy = ((dy - minY) % height) + minY; ! // Handle possible negative values (replicating above the top-left) if (dx < 0) dx += width; --- 175,183 ---- int dy = (int) dest[1]; // The modulo operation gives us the replication effect. ! dx = ((dx - minX) % width) + minX; dy = ((dy - minY) % height) + minY; ! // Handle possible negative values (replicating above the top-left) if (dx < 0) dx += width; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/ClasspathDesktopPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/ClasspathDesktopPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/ClasspathDesktopPeer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/ClasspathDesktopPeer.java Tue Jan 11 19:46:05 2011 *************** import java.util.prefs.Preferences; *** 51,57 **** /** * Offers a common implementation for the Desktop peers, that enables * access to default system application within java processes. ! * * @author Mario Torre */ public class ClasspathDesktopPeer --- 51,57 ---- /** * Offers a common implementation for the Desktop peers, that enables * access to default system application within java processes. ! * * @author Mario Torre */ public class ClasspathDesktopPeer *************** public class ClasspathDesktopPeer *** 59,97 **** { /** This is the fallback browser, if no desktop was detected. */ protected static final String _DEFAULT_BROWSER = "firefox"; ! /** gnu.java.awt.peer.Desktop.html.command */ protected static final String _BROWSE = "html"; ! /** gnu.java.awt.peer.Desktop.mail.command */ protected static final String _MAIL = "mail"; ! /** gnu.java.awt.peer.Desktop.edit.command */ protected static final String _EDIT = "edit"; ! /** gnu.java.awt.peer.Desktop.print.command */ protected static final String _PRINT = "print"; ! /** gnu.java.awt.peer.Desktop.open.command */ protected static final String _OPEN = "open"; ! /** */ protected static final KDEDesktopPeer kde = new KDEDesktopPeer(); ! /** */ protected static final GnomeDesktopPeer gnome = new GnomeDesktopPeer(); ! /** */ protected static final ClasspathDesktopPeer classpath = ! new ClasspathDesktopPeer(); ! /** * Preference subsystem. Packagers and users can override the default * behaviour of this class via preferences and system properties. */ protected Preferences prefs = Preferences.userNodeForPackage(ClasspathDesktopPeer.class).node("Desktop"); ! /** * @param target */ --- 59,97 ---- { /** This is the fallback browser, if no desktop was detected. */ protected static final String _DEFAULT_BROWSER = "firefox"; ! /** gnu.java.awt.peer.Desktop.html.command */ protected static final String _BROWSE = "html"; ! /** gnu.java.awt.peer.Desktop.mail.command */ protected static final String _MAIL = "mail"; ! /** gnu.java.awt.peer.Desktop.edit.command */ protected static final String _EDIT = "edit"; ! /** gnu.java.awt.peer.Desktop.print.command */ protected static final String _PRINT = "print"; ! /** gnu.java.awt.peer.Desktop.open.command */ protected static final String _OPEN = "open"; ! /** */ protected static final KDEDesktopPeer kde = new KDEDesktopPeer(); ! /** */ protected static final GnomeDesktopPeer gnome = new GnomeDesktopPeer(); ! /** */ protected static final ClasspathDesktopPeer classpath = ! new ClasspathDesktopPeer(); ! /** * Preference subsystem. Packagers and users can override the default * behaviour of this class via preferences and system properties. */ protected Preferences prefs = Preferences.userNodeForPackage(ClasspathDesktopPeer.class).node("Desktop"); ! /** * @param target */ *************** public class ClasspathDesktopPeer *** 103,233 **** public boolean isSupported(Action action) { String check = null; ! switch(action) { case BROWSE: check = _BROWSE; break; ! case MAIL: check = _MAIL; break; ! case EDIT: check = _EDIT; break; ! case PRINT: check = _PRINT; break; ! case OPEN: default: check = _OPEN; break; } ! return this.supportCommand(check); } public void browse(URI url) throws IOException { checkPermissions(); ! String browser = getCommand(_BROWSE); ! if (browser == null) throw new UnsupportedOperationException(); ! browser = browser + " " + url.toString(); ! Runtime.getRuntime().exec(browser); } public void edit(File file) throws IOException { checkPermissions(file, false); ! String edit = getCommand(_EDIT); ! if (edit == null) throw new UnsupportedOperationException(); ! ! edit = edit + " " + file.getAbsolutePath(); Runtime.getRuntime().exec(edit); } public void mail(URI mailtoURL) throws IOException { checkPermissions(); ! String scheme = mailtoURL.getScheme(); if (scheme == null || !scheme.equalsIgnoreCase("mailto")) throw new IllegalArgumentException("URI Scheme not of type mailto"); ! String mail = getCommand(_MAIL); ! if (mail == null) throw new UnsupportedOperationException(); ! mail = mail + " " + mailtoURL.toString(); ! Runtime.getRuntime().exec(mail); } public void mail() throws IOException { checkPermissions(); ! String mail = getCommand(_MAIL); ! if (mail == null) throw new UnsupportedOperationException(); ! Runtime.getRuntime().exec(mail); } ! public void open(File file) throws IOException { checkPermissions(file, true); ! String open = getCommand(_OPEN); ! if (open == null) throw new UnsupportedOperationException(); ! ! open = open + " " + file.getAbsolutePath(); Runtime.getRuntime().exec(open); } public void print(File file) throws IOException { checkPrintPermissions(file); ! String print = getCommand(_PRINT); ! if (print == null) throw new UnsupportedOperationException(); ! ! print = print + " " + file.getAbsolutePath(); Runtime.getRuntime().exec(print); } ! protected String getCommand(String action) { // check if a system property exist String command = System.getProperty("gnu.java.awt.peer.Desktop." + action + ".command"); ! // otherwise, get it from preferences, if any if (command == null) { command = prefs.node(action).get("command", null); } ! return command; } ! /** * Note: Checks for AWTPermission("showWindowWithoutWarningBanner") only. */ --- 103,233 ---- public boolean isSupported(Action action) { String check = null; ! switch(action) { case BROWSE: check = _BROWSE; break; ! case MAIL: check = _MAIL; break; ! case EDIT: check = _EDIT; break; ! case PRINT: check = _PRINT; break; ! case OPEN: default: check = _OPEN; break; } ! return this.supportCommand(check); } public void browse(URI url) throws IOException { checkPermissions(); ! String browser = getCommand(_BROWSE); ! if (browser == null) throw new UnsupportedOperationException(); ! browser = browser + " " + url.toString(); ! Runtime.getRuntime().exec(browser); } public void edit(File file) throws IOException { checkPermissions(file, false); ! String edit = getCommand(_EDIT); ! if (edit == null) throw new UnsupportedOperationException(); ! ! edit = edit + " " + file.getAbsolutePath(); Runtime.getRuntime().exec(edit); } public void mail(URI mailtoURL) throws IOException { checkPermissions(); ! String scheme = mailtoURL.getScheme(); if (scheme == null || !scheme.equalsIgnoreCase("mailto")) throw new IllegalArgumentException("URI Scheme not of type mailto"); ! String mail = getCommand(_MAIL); ! if (mail == null) throw new UnsupportedOperationException(); ! mail = mail + " " + mailtoURL.toString(); ! Runtime.getRuntime().exec(mail); } public void mail() throws IOException { checkPermissions(); ! String mail = getCommand(_MAIL); ! if (mail == null) throw new UnsupportedOperationException(); ! Runtime.getRuntime().exec(mail); } ! public void open(File file) throws IOException { checkPermissions(file, true); ! String open = getCommand(_OPEN); ! if (open == null) throw new UnsupportedOperationException(); ! ! open = open + " " + file.getAbsolutePath(); Runtime.getRuntime().exec(open); } public void print(File file) throws IOException { checkPrintPermissions(file); ! String print = getCommand(_PRINT); ! if (print == null) throw new UnsupportedOperationException(); ! ! print = print + " " + file.getAbsolutePath(); Runtime.getRuntime().exec(print); } ! protected String getCommand(String action) { // check if a system property exist String command = System.getProperty("gnu.java.awt.peer.Desktop." + action + ".command"); ! // otherwise, get it from preferences, if any if (command == null) { command = prefs.node(action).get("command", null); } ! return command; } ! /** * Note: Checks for AWTPermission("showWindowWithoutWarningBanner") only. */ *************** public class ClasspathDesktopPeer *** 238,259 **** sm.checkPermission(new AWTPermission("showWindowWithoutWarningBanner")); } } ! /** ! * Calls checkPermissions() and checks for SecurityManager.checkRead() ! * and, if readOnly is false, for SecurityManager.checkWrite() */ protected void checkPermissions(File file, boolean readOnly) { checkPermissions(); ! SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkRead(file.toString()); if (!readOnly) sm.checkWrite(file.toString()); } } ! /** * Calls checkPermissions(file, true) and checks for * SecurityManager.checkPrintJobAccess() --- 238,259 ---- sm.checkPermission(new AWTPermission("showWindowWithoutWarningBanner")); } } ! /** ! * Calls checkPermissions() and checks for SecurityManager.checkRead() ! * and, if readOnly is false, for SecurityManager.checkWrite() */ protected void checkPermissions(File file, boolean readOnly) { checkPermissions(); ! SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkRead(file.toString()); if (!readOnly) sm.checkWrite(file.toString()); } } ! /** * Calls checkPermissions(file, true) and checks for * SecurityManager.checkPrintJobAccess() *************** public class ClasspathDesktopPeer *** 261,273 **** protected void checkPrintPermissions(File file) { checkPermissions(file, true); ! SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkPrintJobAccess(); ! } } ! /** * @param check * @return --- 261,273 ---- protected void checkPrintPermissions(File file) { checkPermissions(file, true); ! SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkPrintJobAccess(); ! } } ! /** * @param check * @return *************** public class ClasspathDesktopPeer *** 276,282 **** { return ((this.getCommand(check) != null) ? true : false); } ! /** * @return */ --- 276,282 ---- { return ((this.getCommand(check) != null) ? true : false); } ! /** * @return */ *************** public class ClasspathDesktopPeer *** 285,291 **** // check if we are under Gnome or KDE or anything else String desktopSession = System.getenv("GNOME_DESKTOP_SESSION_ID"); if (desktopSession == null) ! { desktopSession = System.getenv("KDE_FULL_SESSION"); if (desktopSession != null) return kde; --- 285,291 ---- // check if we are under Gnome or KDE or anything else String desktopSession = System.getenv("GNOME_DESKTOP_SESSION_ID"); if (desktopSession == null) ! { desktopSession = System.getenv("KDE_FULL_SESSION"); if (desktopSession != null) return kde; *************** public class ClasspathDesktopPeer *** 294,300 **** { return gnome; } ! // revert to this class for default values return classpath; } --- 294,300 ---- { return gnome; } ! // revert to this class for default values return classpath; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java Tue Jan 11 19:46:05 2011 *************** import java.util.Map; *** 68,74 **** * object in the default implementation. If you wish to share peers between * fonts, you will need to subclass both ClasspathFontPeer and * {@link ClasspathToolKit}.

          ! * *

          Thread Safety: Methods of this interface may be called * from arbitrary threads at any time. Implementations of the * ClasspathFontPeer interface are required to perform --- 68,74 ---- * object in the default implementation. If you wish to share peers between * fonts, you will need to subclass both ClasspathFontPeer and * {@link ClasspathToolKit}.

          ! * *

          Thread Safety: Methods of this interface may be called * from arbitrary threads at any time. Implementations of the * ClasspathFontPeer interface are required to perform *************** public abstract class ClasspathFontPeer *** 85,95 **** { /*************************************************************************/ ! /* * Instance Variables */ ! /** * The 3 names of this font. all fonts have 3 names, some of which * may be equal: --- 85,95 ---- { /*************************************************************************/ ! /* * Instance Variables */ ! /** * The 3 names of this font. all fonts have 3 names, some of which * may be equal: *************** public abstract class ClasspathFontPeer *** 98,116 **** * family -- a designer or brand name (Helvetica) * face -- specific instance of a design (Helvetica Regular) * ! * @see isLogicalFontName */ ! protected String logicalName; protected String familyName; protected String faceName; ! /** * The font style, which is a combination (by OR-ing) of the font style * constants PLAIN, BOLD and ITALIC, in this class. */ protected int style; ! /** * The font point size. A point is 1/72 of an inch. */ --- 98,116 ---- * family -- a designer or brand name (Helvetica) * face -- specific instance of a design (Helvetica Regular) * ! * @see isLogicalFontName */ ! protected String logicalName; protected String familyName; protected String faceName; ! /** * The font style, which is a combination (by OR-ing) of the font style * constants PLAIN, BOLD and ITALIC, in this class. */ protected int style; ! /** * The font point size. A point is 1/72 of an inch. */ *************** public abstract class ClasspathFontPeer *** 143,155 **** return (ClasspathToolkit)(Toolkit.getDefaultToolkit ()); } ! /* * Confusingly, a Logical Font is a concept unrelated to ! * a Font's Logical Name. * * A Logical Font is one of 6 built-in, abstract font types * which must be supported by any java environment: SansSerif, ! * Serif, Monospaced, Dialog, and DialogInput. * * A Font's Logical Name is the name the font was constructed * from. This might be the name of a Logical Font, or it might --- 143,155 ---- return (ClasspathToolkit)(Toolkit.getDefaultToolkit ()); } ! /* * Confusingly, a Logical Font is a concept unrelated to ! * a Font's Logical Name. * * A Logical Font is one of 6 built-in, abstract font types * which must be supported by any java environment: SansSerif, ! * Serif, Monospaced, Dialog, and DialogInput. * * A Font's Logical Name is the name the font was constructed * from. This might be the name of a Logical Font, or it might *************** public abstract class ClasspathFontPeer *** 209,240 **** if (fam != null) attrs.put (TextAttribute.FAMILY, fam); } ! public static void copySizeToAttrs (float size, Map attrs) { attrs.put (TextAttribute.SIZE, new Float (size)); } ! protected static void copyTransformToAttrs (AffineTransform trans, Map attrs) { if (trans != null) { ! TransformAttribute ta; synchronized(transCache) { ! ta = transCache.get(trans); ! if (ta == null) ! { ! ta = new TransformAttribute(trans); ! transCache.put(trans, ta); ! } ! } ! attrs.put(TextAttribute.TRANSFORM, ta); } } ! protected void setStandardAttributes (String name, String family, int style, float size, AffineTransform trans) { this.logicalName = name; --- 209,240 ---- if (fam != null) attrs.put (TextAttribute.FAMILY, fam); } ! public static void copySizeToAttrs (float size, Map attrs) { attrs.put (TextAttribute.SIZE, new Float (size)); } ! protected static void copyTransformToAttrs (AffineTransform trans, Map attrs) { if (trans != null) { ! TransformAttribute ta; synchronized(transCache) { ! ta = transCache.get(trans); ! if (ta == null) ! { ! ta = new TransformAttribute(trans); ! transCache.put(trans, ta); ! } ! } ! attrs.put(TextAttribute.TRANSFORM, ta); } } ! protected void setStandardAttributes (String name, String family, int style, float size, AffineTransform trans) { this.logicalName = name; *************** public abstract class ClasspathFontPeer *** 248,254 **** this.familyName = family; else this.familyName = faceNameToFamilyName (faceName); ! this.style = style; this.size = size; this.transform = trans; --- 248,254 ---- this.familyName = family; else this.familyName = faceNameToFamilyName (faceName); ! this.style = style; this.size = size; this.transform = trans; *************** public abstract class ClasspathFontPeer *** 296,311 **** if (attribs.containsKey (TextAttribute.TRANSFORM)) { ! TransformAttribute ta = (TransformAttribute) attribs.get(TextAttribute.TRANSFORM); ! trans = ta.getTransform (); } setStandardAttributes (name, family, style, size, trans); } protected void getStandardAttributes (Map attrs) ! { copyFamilyToAttrs (this.familyName, attrs); copySizeToAttrs (this.size, attrs); copyStyleToAttrs (this.style, attrs); --- 296,311 ---- if (attribs.containsKey (TextAttribute.TRANSFORM)) { ! TransformAttribute ta = (TransformAttribute) attribs.get(TextAttribute.TRANSFORM); ! trans = ta.getTransform (); } setStandardAttributes (name, family, style, size, trans); } protected void getStandardAttributes (Map attrs) ! { copyFamilyToAttrs (this.familyName, attrs); copySizeToAttrs (this.size, attrs); copyStyleToAttrs (this.style, attrs); *************** public abstract class ClasspathFontPeer *** 322,332 **** public ClasspathFontPeer (String name, int style, int size) { ! setStandardAttributes (name, (String)null, style, (float)size, (AffineTransform)null); } ! /** * Implementation of {@link Font#getName} * * @param font the font this peer is being called from. This may be --- 322,332 ---- public ClasspathFontPeer (String name, int style, int size) { ! setStandardAttributes (name, (String)null, style, (float)size, (AffineTransform)null); } ! /** * Implementation of {@link Font#getName} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 334,345 **** * be ignored. */ ! public String getName (Font font) ! { ! return logicalName; } ! /** * Implementation of {@link Font#getFamily()} * * @param font the font this peer is being called from. This may be --- 334,345 ---- * be ignored. */ ! public String getName (Font font) ! { ! return logicalName; } ! /** * Implementation of {@link Font#getFamily()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 347,358 **** * be ignored. */ ! public String getFamily (Font font) ! { ! return familyName; } ! /** * Implementation of {@link Font#getFamily(Locale)} * * @param font the font this peer is being called from. This may be --- 347,358 ---- * be ignored. */ ! public String getFamily (Font font) ! { ! return familyName; } ! /** * Implementation of {@link Font#getFamily(Locale)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 360,371 **** * be ignored. */ ! public String getFamily (Font font, Locale lc) ! { ! return familyName; } ! /** * Implementation of {@link Font#getFontName()} * * @param font the font this peer is being called from. This may be --- 360,371 ---- * be ignored. */ ! public String getFamily (Font font, Locale lc) ! { ! return familyName; } ! /** * Implementation of {@link Font#getFontName()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 373,384 **** * be ignored. */ ! public String getFontName (Font font) ! { ! return faceName; } ! /** * Implementation of {@link Font#getFontName(Locale)} * * @param font the font this peer is being called from. This may be --- 373,384 ---- * be ignored. */ ! public String getFontName (Font font) ! { ! return faceName; } ! /** * Implementation of {@link Font#getFontName(Locale)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 386,397 **** * be ignored. */ ! public String getFontName (Font font, Locale lc) ! { ! return faceName; } ! /** * Implementation of {@link Font#getSize} * * @param font the font this peer is being called from. This may be --- 386,397 ---- * be ignored. */ ! public String getFontName (Font font, Locale lc) ! { ! return faceName; } ! /** * Implementation of {@link Font#getSize} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 399,436 **** * be ignored. */ ! public float getSize (Font font) ! { ! return size; } ! /** * Implementation of {@link Font#isPlain} * * @param font the font this peer is being called from. This may be * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ ! ! public boolean isPlain (Font font) ! { ! return style == Font.PLAIN; } ! /** * Implementation of {@link Font#isBold} * * @param font the font this peer is being called from. This may be * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ ! ! public boolean isBold (Font font) ! { ! return ((style & Font.BOLD) == Font.BOLD); } ! /** * Implementation of {@link Font#isItalic} * * @param font the font this peer is being called from. This may be --- 399,436 ---- * be ignored. */ ! public float getSize (Font font) ! { ! return size; } ! /** * Implementation of {@link Font#isPlain} * * @param font the font this peer is being called from. This may be * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ ! ! public boolean isPlain (Font font) ! { ! return style == Font.PLAIN; } ! /** * Implementation of {@link Font#isBold} * * @param font the font this peer is being called from. This may be * useful if you are sharing peers between Font objects. Otherwise it may * be ignored. */ ! ! public boolean isBold (Font font) ! { ! return ((style & Font.BOLD) == Font.BOLD); } ! /** * Implementation of {@link Font#isItalic} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 438,449 **** * be ignored. */ ! public boolean isItalic (Font font) ! { ! return ((style & Font.ITALIC) == Font.ITALIC); } ! /** * Implementation of {@link Font#deriveFont(int, float)} * * @param font the font this peer is being called from. This may be --- 438,449 ---- * be ignored. */ ! public boolean isItalic (Font font) ! { ! return ((style & Font.ITALIC) == Font.ITALIC); } ! /** * Implementation of {@link Font#deriveFont(int, float)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 460,466 **** return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(float)} * * @param font the font this peer is being called from. This may be --- 460,466 ---- return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(float)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 476,482 **** return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(int)} * * @param font the font this peer is being called from. This may be --- 476,482 ---- return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(int)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 492,498 **** return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(int, AffineTransform)} * * @param font the font this peer is being called from. This may be --- 492,498 ---- return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(int, AffineTransform)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 509,515 **** return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(AffineTransform)} * * @param font the font this peer is being called from. This may be --- 509,515 ---- return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(AffineTransform)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 525,531 **** return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(Map)} * * @param font the font this peer is being called from. This may be --- 525,531 ---- return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#deriveFont(Map)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 538,544 **** return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#getAttributes()} * * @param font the font this peer is being called from. This may be --- 538,544 ---- return tk().getFont (logicalName, attrs); } ! /** * Implementation of {@link Font#getAttributes()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 553,559 **** return h; } ! /** * Implementation of {@link Font#getAvailableAttributes()} * * @param font the font this peer is being called from. This may be --- 553,559 ---- return h; } ! /** * Implementation of {@link Font#getAvailableAttributes()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 563,569 **** public AttributedCharacterIterator.Attribute[] getAvailableAttributes(Font font) { ! AttributedCharacterIterator.Attribute a[] = new AttributedCharacterIterator.Attribute[5]; a[0] = TextAttribute.FAMILY; a[1] = TextAttribute.SIZE; --- 563,569 ---- public AttributedCharacterIterator.Attribute[] getAvailableAttributes(Font font) { ! AttributedCharacterIterator.Attribute a[] = new AttributedCharacterIterator.Attribute[5]; a[0] = TextAttribute.FAMILY; a[1] = TextAttribute.SIZE; *************** public abstract class ClasspathFontPeer *** 573,579 **** return a; } ! /** * Implementation of {@link Font#getTransform()} * * @param font the font this peer is being called from. This may be --- 573,579 ---- return a; } ! /** * Implementation of {@link Font#getTransform()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 588,594 **** return transform; } ! /** * Implementation of {@link Font#isTransformed()} * * @param font the font this peer is being called from. This may be --- 588,594 ---- return transform; } ! /** * Implementation of {@link Font#isTransformed()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 601,607 **** return ! transform.isIdentity (); } ! /** * Implementation of {@link Font#getItalicAngle()} * * @param font the font this peer is being called from. This may be --- 601,607 ---- return ! transform.isIdentity (); } ! /** * Implementation of {@link Font#getItalicAngle()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 618,624 **** } ! /** * Implementation of {@link Font#getStyle()} * * @param font the font this peer is being called from. This may be --- 618,624 ---- } ! /** * Implementation of {@link Font#getStyle()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 626,634 **** * be ignored. */ ! public int getStyle (Font font) ! { ! return style; } --- 626,634 ---- * be ignored. */ ! public int getStyle (Font font) ! { ! return style; } *************** public abstract class ClasspathFontPeer *** 636,642 **** /* Remaining methods are abstract */ ! /** * Implementation of {@link Font#canDisplay(char)} * * @param font the font this peer is being called from. This may be --- 636,642 ---- /* Remaining methods are abstract */ ! /** * Implementation of {@link Font#canDisplay(char)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 646,652 **** public abstract boolean canDisplay (Font font, int c); ! /** * Implementation of {@link Font#canDisplay(String)}, * {@link Font#canDisplay(char [], int, int)}, and * {@link Font#canDisplay(CharacterIterator, int, int)}. --- 646,652 ---- public abstract boolean canDisplay (Font font, int c); ! /** * Implementation of {@link Font#canDisplay(String)}, * {@link Font#canDisplay(char [], int, int)}, and * {@link Font#canDisplay(CharacterIterator, int, int)}. *************** public abstract class ClasspathFontPeer *** 678,686 **** */ public abstract String getSubFamilyName (Font font, Locale locale); - ! /** * Implementation of {@link Font#getPSName()} * * @param font the font this peer is being called from. This may be --- 678,686 ---- */ public abstract String getSubFamilyName (Font font, Locale locale); ! ! /** * Implementation of {@link Font#getPSName()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 691,697 **** public abstract String getPostScriptName (Font font); ! /** * Implementation of {@link Font#getNumGlyphs()} * * @param font the font this peer is being called from. This may be --- 691,697 ---- public abstract String getPostScriptName (Font font); ! /** * Implementation of {@link Font#getNumGlyphs()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 702,708 **** public abstract int getNumGlyphs (Font font); ! /** * Implementation of {@link Font#getMissingGlyphCode()} * * @param font the font this peer is being called from. This may be --- 702,708 ---- public abstract int getNumGlyphs (Font font); ! /** * Implementation of {@link Font#getMissingGlyphCode()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 713,719 **** public abstract int getMissingGlyphCode (Font font); ! /** * Implementation of {@link Font#getBaselineFor(char)} * * @param font the font this peer is being called from. This may be --- 713,719 ---- public abstract int getMissingGlyphCode (Font font); ! /** * Implementation of {@link Font#getBaselineFor(char)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 767,773 **** public abstract String getGlyphName (Font font, int glyphIndex); ! /** * Implementation of {@link * Font#createGlyphVector(FontRenderContext, String)}, {@link * Font#createGlyphVector(FontRenderContext, char[])}, and {@link --- 767,773 ---- public abstract String getGlyphName (Font font, int glyphIndex); ! /** * Implementation of {@link * Font#createGlyphVector(FontRenderContext, String)}, {@link * Font#createGlyphVector(FontRenderContext, char[])}, and {@link *************** public abstract class ClasspathFontPeer *** 782,790 **** public abstract GlyphVector createGlyphVector (Font font, FontRenderContext frc, CharacterIterator ci); - ! /** * Implementation of {@link Font#createGlyphVector(FontRenderContext, * int[])}. * --- 782,790 ---- public abstract GlyphVector createGlyphVector (Font font, FontRenderContext frc, CharacterIterator ci); ! ! /** * Implementation of {@link Font#createGlyphVector(FontRenderContext, * int[])}. * *************** public abstract class ClasspathFontPeer *** 794,805 **** * not with font peers. */ ! public abstract GlyphVector createGlyphVector (Font font, ! FontRenderContext ctx, int[] glyphCodes); ! /** * Implementation of {@link Font#layoutGlyphVector(FontRenderContext, * char[], int, int, int)}. * --- 794,805 ---- * not with font peers. */ ! public abstract GlyphVector createGlyphVector (Font font, ! FontRenderContext ctx, int[] glyphCodes); ! /** * Implementation of {@link Font#layoutGlyphVector(FontRenderContext, * char[], int, int, int)}. * *************** public abstract class ClasspathFontPeer *** 809,821 **** * not with font peers. */ ! public abstract GlyphVector layoutGlyphVector (Font font, ! FontRenderContext frc, ! char[] chars, int start, int limit, int flags); ! /** * Implementation of {@link Font#getFontMetrics()} * * @param font the font this peer is being called from. This may be --- 809,821 ---- * not with font peers. */ ! public abstract GlyphVector layoutGlyphVector (Font font, ! FontRenderContext frc, ! char[] chars, int start, int limit, int flags); ! /** * Implementation of {@link Font#getFontMetrics()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 826,832 **** public abstract FontMetrics getFontMetrics (Font font); ! /** * Implementation of {@link Font#hasUniformLineMetrics()} * * @param font the font this peer is being called from. This may be --- 826,832 ---- public abstract FontMetrics getFontMetrics (Font font); ! /** * Implementation of {@link Font#hasUniformLineMetrics()} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 837,843 **** public abstract boolean hasUniformLineMetrics (Font font); ! /** * Implementation of {@link Font#getLineMetrics(CharacterIterator, int, * int, FontRenderContext)} * --- 837,843 ---- public abstract boolean hasUniformLineMetrics (Font font); ! /** * Implementation of {@link Font#getLineMetrics(CharacterIterator, int, * int, FontRenderContext)} * *************** public abstract class ClasspathFontPeer *** 846,857 **** * be ignored. */ ! public abstract LineMetrics getLineMetrics (Font font, ! CharacterIterator ci, ! int begin, int limit, FontRenderContext rc); ! /** * Implementation of {@link Font#getMaxCharBounds(FontRenderContext)} * * @param font the font this peer is being called from. This may be --- 846,857 ---- * be ignored. */ ! public abstract LineMetrics getLineMetrics (Font font, ! CharacterIterator ci, ! int begin, int limit, FontRenderContext rc); ! /** * Implementation of {@link Font#getMaxCharBounds(FontRenderContext)} * * @param font the font this peer is being called from. This may be *************** public abstract class ClasspathFontPeer *** 859,865 **** * be ignored. */ ! public abstract Rectangle2D getMaxCharBounds (Font font, FontRenderContext rc); } --- 859,865 ---- * be ignored. */ ! public abstract Rectangle2D getMaxCharBounds (Font font, FontRenderContext rc); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java Tue Jan 11 19:46:05 2011 *************** import java.awt.peer.LightweightPeer; *** 71,77 **** * Lightweight components are painted directly onto their parent * containers through an Image object provided by the toolkit. */ ! public class GLightweightPeer implements LightweightPeer, ContainerPeer { public GLightweightPeer() --- 71,77 ---- * Lightweight components are painted directly onto their parent * containers through an Image object provided by the toolkit. */ ! public class GLightweightPeer implements LightweightPeer, ContainerPeer { public GLightweightPeer() *************** public class GLightweightPeer *** 80,118 **** } // -------- java.awt.peer.ContainerPeer implementation: ! public Insets insets() { // Nothing to do here for lightweights. return null; } ! public Insets getInsets() { // Nothing to do here for lightweights. return null; } ! public void beginValidate() { // Nothing to do here for lightweights. } ! public void endValidate() { // Nothing to do here for lightweights. } ! public void beginLayout() { // Nothing to do here for lightweights. } ! public void endLayout() { // Nothing to do here for lightweights. } ! public boolean isPaintPending() { // Nothing to do here for lightweights. --- 80,118 ---- } // -------- java.awt.peer.ContainerPeer implementation: ! public Insets insets() { // Nothing to do here for lightweights. return null; } ! public Insets getInsets() { // Nothing to do here for lightweights. return null; } ! public void beginValidate() { // Nothing to do here for lightweights. } ! public void endValidate() { // Nothing to do here for lightweights. } ! public void beginLayout() { // Nothing to do here for lightweights. } ! public void endLayout() { // Nothing to do here for lightweights. } ! public boolean isPaintPending() { // Nothing to do here for lightweights. *************** public class GLightweightPeer *** 235,241 **** // Nothing to do here for lightweights. } ! public boolean isFocusable() { // Nothing to do here for lightweights. return false; --- 235,241 ---- // Nothing to do here for lightweights. } ! public boolean isFocusable() { // Nothing to do here for lightweights. return false; *************** public class GLightweightPeer *** 263,269 **** } public boolean prepareImage(Image img, int width, int height, ! ImageObserver o) { // Nothing to do here for lightweights. return false; --- 263,269 ---- } public boolean prepareImage(Image img, int width, int height, ! ImageObserver o) { // Nothing to do here for lightweights. return false; *************** public class GLightweightPeer *** 373,382 **** // Nothing to do here for lightweights. } ! public VolatileImage createVolatileImage(int width, int height) ! { // Nothing to do here for lightweights. ! return null; } public boolean handlesWheelScrolling() --- 373,382 ---- // Nothing to do here for lightweights. } ! public VolatileImage createVolatileImage(int width, int height) ! { // Nothing to do here for lightweights. ! return null; } public boolean handlesWheelScrolling() *************** public class GLightweightPeer *** 385,391 **** return false; } ! public void createBuffers(int x, BufferCapabilities capabilities) throws AWTException { // Nothing to do here for lightweights. --- 385,391 ---- return false; } ! public void createBuffers(int x, BufferCapabilities capabilities) throws AWTException { // Nothing to do here for lightweights. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java Tue Jan 11 19:46:05 2011 *************** public class GnomeDesktopPeer *** 60,72 **** { // check if a command already exists String command = super.getCommand(action); ! if (command == null) { try { if (action == _BROWSE) ! { command = execQuery(BROWSER_QUERY_GNOME); } else if (action == _PRINT) --- 60,72 ---- { // check if a command already exists String command = super.getCommand(action); ! if (command == null) { try { if (action == _BROWSE) ! { command = execQuery(BROWSER_QUERY_GNOME); } else if (action == _PRINT) *************** public class GnomeDesktopPeer *** 83,128 **** command = null; } } ! return command; } ! public void browse(URI url) throws IOException { checkPermissions(); ! String browser = getCommand(_BROWSE); ! if (browser == null) throw new UnsupportedOperationException(); ! browser = browser + " " + url.toString(); ! Runtime.getRuntime().exec(browser); } protected boolean supportCommand(String check) { if (check == _PRINT) ! { return super.supportCommand(check); } ! return true; } public void mail() throws IOException { checkPermissions(); ! String mail = getCommand(_MAIL); ! if (mail == null) throw new UnsupportedOperationException(); ! Runtime.getRuntime().exec(mail + " mailto:"); } ! protected String execQuery(String command) throws IOException { InputStream in = null; --- 83,128 ---- command = null; } } ! return command; } ! public void browse(URI url) throws IOException { checkPermissions(); ! String browser = getCommand(_BROWSE); ! if (browser == null) throw new UnsupportedOperationException(); ! browser = browser + " " + url.toString(); ! Runtime.getRuntime().exec(browser); } protected boolean supportCommand(String check) { if (check == _PRINT) ! { return super.supportCommand(check); } ! return true; } public void mail() throws IOException { checkPermissions(); ! String mail = getCommand(_MAIL); ! if (mail == null) throw new UnsupportedOperationException(); ! Runtime.getRuntime().exec(mail + " mailto:"); } ! protected String execQuery(String command) throws IOException { InputStream in = null; *************** public class GnomeDesktopPeer *** 149,155 **** // remove %s from the string, leave only the command line int index = output.indexOf("%s"); output.delete(index, index + 1); ! return output.toString().trim(); } } --- 149,155 ---- // remove %s from the string, leave only the command line int index = output.indexOf("%s"); output.delete(index, index + 1); ! return output.toString().trim(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java Tue Jan 11 19:46:05 2011 *************** public class KDEDesktopPeer *** 56,71 **** "gconftool-2 -g /desktop/gnome/url-handlers/http/command"; protected String getCommand(String action) ! { // check if a command already exists String command = super.getCommand(action); ! if (command == null) { try { if (action == _MAIL) ! { command = "kfmclient exec"; } else if (action == _PRINT) --- 56,71 ---- "gconftool-2 -g /desktop/gnome/url-handlers/http/command"; protected String getCommand(String action) ! { // check if a command already exists String command = super.getCommand(action); ! if (command == null) { try { if (action == _MAIL) ! { command = "kfmclient exec"; } else if (action == _PRINT) *************** public class KDEDesktopPeer *** 82,108 **** command = null; } } ! return command; } ! protected boolean supportCommand(String check) { return true; } ! public void mail() throws IOException { checkPermissions(); ! String mail = getCommand(_MAIL); ! if (mail == null) throw new UnsupportedOperationException(); ! Runtime.getRuntime().exec(mail + " 'mailto: '"); } ! protected String execQuery(String command) throws IOException { InputStream in = null; --- 82,108 ---- command = null; } } ! return command; } ! protected boolean supportCommand(String check) { return true; } ! public void mail() throws IOException { checkPermissions(); ! String mail = getCommand(_MAIL); ! if (mail == null) throw new UnsupportedOperationException(); ! Runtime.getRuntime().exec(mail + " 'mailto: '"); } ! protected String execQuery(String command) throws IOException { InputStream in = null; *************** public class KDEDesktopPeer *** 129,135 **** // remove %s from the string, leave only the command line int index = output.indexOf("%s"); output.delete(index, index + 1); ! return output.toString().trim(); } } --- 129,135 ---- // remove %s from the string, leave only the command line int index = output.indexOf("%s"); output.delete(index, index + 1); ! return output.toString().trim(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/AsyncImage.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/AsyncImage.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/AsyncImage.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/AsyncImage.java Tue Jan 11 19:46:05 2011 *************** public class AsyncImage *** 98,104 **** ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE); } } ! } /** --- 98,104 ---- ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE); } } ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java Tue Jan 11 19:46:05 2011 *************** import java.util.WeakHashMap; *** 64,70 **** /** * Implementation of Graphics2D on a Cairo surface. * ! * Simutanously maintains a CairoSurface and updates the * BufferedImage from that after each drawing operation. */ public class BufferedImageGraphics extends CairoGraphics2D --- 64,70 ---- /** * Implementation of Graphics2D on a Cairo surface. * ! * Simutanously maintains a CairoSurface and updates the * BufferedImage from that after each drawing operation. */ public class BufferedImageGraphics extends CairoGraphics2D *************** public class BufferedImageGraphics exten *** 73,79 **** * the buffered Image. */ private BufferedImage image, buffer; ! /** * Image size. */ --- 73,79 ---- * the buffered Image. */ private BufferedImage image, buffer; ! /** * Image size. */ *************** public class BufferedImageGraphics exten *** 104,110 **** this.image = bi; imageWidth = bi.getWidth(); imageHeight = bi.getHeight(); ! if (!(image.getSampleModel() instanceof SinglePixelPackedSampleModel)) hasFastCM = false; else if(bi.getColorModel().equals(CairoSurface.cairoCM_opaque)) --- 104,110 ---- this.image = bi; imageWidth = bi.getWidth(); imageHeight = bi.getHeight(); ! if (!(image.getSampleModel() instanceof SinglePixelPackedSampleModel)) hasFastCM = false; else if(bi.getColorModel().equals(CairoSurface.cairoCM_opaque)) *************** public class BufferedImageGraphics exten *** 151,161 **** { int[] pixels2 = new int[imageWidth * imageHeight]; int scanline = sm.getScanlineStride(); ! for (int i = 0; i < imageHeight; i++) System.arraycopy(pixels, (i - minY) * scanline - minX, pixels2, i * imageWidth, imageWidth); ! pixels = pixels2; } --- 151,161 ---- { int[] pixels2 = new int[imageWidth * imageHeight]; int scanline = sm.getScanlineStride(); ! for (int i = 0; i < imageHeight; i++) System.arraycopy(pixels, (i - minY) * scanline - minX, pixels2, i * imageWidth, imageWidth); ! pixels = pixels2; } *************** public class BufferedImageGraphics exten *** 172,182 **** System.arraycopy(pixels, 0, surface.getData(), 0, pixels.length); } ! setup( cairo_t ); setClip(0, 0, imageWidth, imageHeight); } ! BufferedImageGraphics(BufferedImageGraphics copyFrom) { image = copyFrom.image; --- 172,182 ---- System.arraycopy(pixels, 0, surface.getData(), 0, pixels.length); } ! setup( cairo_t ); setClip(0, 0, imageWidth, imageHeight); } ! BufferedImageGraphics(BufferedImageGraphics copyFrom) { image = copyFrom.image; *************** public class BufferedImageGraphics exten *** 184,190 **** cairo_t = surface.newCairoContext(); imageWidth = copyFrom.imageWidth; imageHeight = copyFrom.imageHeight; ! hasFastCM = copyFrom.hasFastCM; hasAlpha = copyFrom.hasAlpha; --- 184,190 ---- cairo_t = surface.newCairoContext(); imageWidth = copyFrom.imageWidth; imageHeight = copyFrom.imageHeight; ! hasFastCM = copyFrom.hasFastCM; hasAlpha = copyFrom.hasAlpha; *************** public class BufferedImageGraphics exten *** 195,201 **** * Update a rectangle of the bufferedImage. This can be improved upon a lot. */ private void updateBufferedImage(int x, int y, int width, int height) ! { Rectangle bounds = new Rectangle(x, y, width, height); bounds = getTransformedBounds(bounds, transform).getBounds(); x = bounds.x; --- 195,201 ---- * Update a rectangle of the bufferedImage. This can be improved upon a lot. */ private void updateBufferedImage(int x, int y, int width, int height) ! { Rectangle bounds = new Rectangle(x, y, width, height); bounds = getTransformedBounds(bounds, transform).getBounds(); x = bounds.x; *************** public class BufferedImageGraphics exten *** 207,213 **** if( x > imageWidth || y > imageHeight ) return; ! // Deal with negative width/height. if (height < 0) { --- 207,213 ---- if( x > imageWidth || y > imageHeight ) return; ! // Deal with negative width/height. if (height < 0) { *************** public class BufferedImageGraphics exten *** 219,262 **** x += width; width = -width; } ! // Clip edges. if( x < 0 ) x = 0; if( y < 0 ) y = 0; ! ! if( x + width > imageWidth ) width = imageWidth - x; ! if( y + height > imageHeight ) height = imageHeight - y; ! if(!hasFastCM) { ! image.setRGB(x, y, width, height, pixels, x + y * imageWidth, imageWidth); // The setRGB method assumes (or should assume) that pixels are NOT // alpha-premultiplied, but Cairo stores data with premultiplication // (thus the pixels returned in getPixels are premultiplied). // This is ignored for consistency, however, since in // CairoGrahpics2D.drawImage we also use non-premultiplied data ! } else { int[] db = ((DataBufferInt)image.getRaster().getDataBuffer()). getData(); ! // This should not fail, as we check the image sample model when we // set the hasFastCM flag SinglePixelPackedSampleModel sm = (SinglePixelPackedSampleModel)image.getSampleModel() ; ! int minX = image.getRaster().getSampleModelTranslateX(); int minY = image.getRaster().getSampleModelTranslateY(); ! ! if (sm.getScanlineStride() == imageWidth && minX == 0) { ! System.arraycopy(pixels, y * imageWidth, db, (y - minY) * imageWidth, height * imageWidth); } --- 219,262 ---- x += width; width = -width; } ! // Clip edges. if( x < 0 ) x = 0; if( y < 0 ) y = 0; ! ! if( x + width > imageWidth ) width = imageWidth - x; ! if( y + height > imageHeight ) height = imageHeight - y; ! if(!hasFastCM) { ! image.setRGB(x, y, width, height, pixels, x + y * imageWidth, imageWidth); // The setRGB method assumes (or should assume) that pixels are NOT // alpha-premultiplied, but Cairo stores data with premultiplication // (thus the pixels returned in getPixels are premultiplied). // This is ignored for consistency, however, since in // CairoGrahpics2D.drawImage we also use non-premultiplied data ! } else { int[] db = ((DataBufferInt)image.getRaster().getDataBuffer()). getData(); ! // This should not fail, as we check the image sample model when we // set the hasFastCM flag SinglePixelPackedSampleModel sm = (SinglePixelPackedSampleModel)image.getSampleModel() ; ! int minX = image.getRaster().getSampleModelTranslateX(); int minY = image.getRaster().getSampleModelTranslateY(); ! ! if (sm.getScanlineStride() == imageWidth && minX == 0) { ! System.arraycopy(pixels, y * imageWidth, db, (y - minY) * imageWidth, height * imageWidth); } *************** public class BufferedImageGraphics exten *** 266,284 **** for (int i = y; i < (height + y); i++) System.arraycopy(pixels, i * imageWidth + x, db, (i - minY) * scanline + x - minX, width); ! } } } /** * Abstract methods. ! */ public Graphics create() { return new BufferedImageGraphics(this); } ! public GraphicsConfiguration getDeviceConfiguration() { return null; --- 266,284 ---- for (int i = y; i < (height + y); i++) System.arraycopy(pixels, i * imageWidth + x, db, (i - minY) * scanline + x - minX, width); ! } } } /** * Abstract methods. ! */ public Graphics create() { return new BufferedImageGraphics(this); } ! public GraphicsConfiguration getDeviceConfiguration() { return null; *************** public class BufferedImageGraphics exten *** 288,294 **** { return new Rectangle2D.Double(0.0, 0.0, imageWidth, imageHeight); } ! public void copyAreaImpl(int x, int y, int width, int height, int dx, int dy) { surface.copyAreaNative(x, y, width, height, dx, dy, surface.width); --- 288,294 ---- { return new Rectangle2D.Double(0.0, 0.0, imageWidth, imageHeight); } ! public void copyAreaImpl(int x, int y, int width, int height, int dx, int dy) { surface.copyAreaNative(x, y, width, height, dx, dy, surface.width); *************** public class BufferedImageGraphics exten *** 296,302 **** } /** ! * Overloaded methods that do actual drawing need to enter the gdk threads * and also do certain things before and after. */ public void draw(Shape s) --- 296,302 ---- } /** ! * Overloaded methods that do actual drawing need to enter the gdk threads * and also do certain things before and after. */ public void draw(Shape s) *************** public class BufferedImageGraphics exten *** 308,314 **** r.width++; r.height++; } ! // Do the drawing if (comp == null || comp instanceof AlphaComposite) { --- 308,314 ---- r.width++; r.height++; } ! // Do the drawing if (comp == null || comp instanceof AlphaComposite) { *************** public class BufferedImageGraphics exten *** 318,330 **** else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setStroke(this.getStroke()); g2d.setColor(this.getColor()); g2d.setTransform(transform); g2d.draw(s); ! drawComposite(r.getBounds2D(), null); } } --- 318,330 ---- else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setStroke(this.getStroke()); g2d.setColor(this.getColor()); g2d.setTransform(transform); g2d.draw(s); ! drawComposite(r.getBounds2D(), null); } } *************** public class BufferedImageGraphics exten *** 340,352 **** else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.setTransform(transform); g2d.fill(s); ! drawComposite(s.getBounds2D(), null); } } --- 340,352 ---- else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.setTransform(transform); g2d.fill(s); ! drawComposite(s.getBounds2D(), null); } } *************** public class BufferedImageGraphics exten *** 366,379 **** g2d.setRenderingHints(this.getRenderingHints()); g2d.setTransform(transform); g2d.drawRenderedImage(image, xform); ! drawComposite(buffer.getRaster().getBounds(), null); } } protected boolean drawImage(Image img, AffineTransform xform, ! Color bgcolor, ImageObserver obs) { if (comp == null || comp instanceof AlphaComposite) { --- 366,379 ---- g2d.setRenderingHints(this.getRenderingHints()); g2d.setTransform(transform); g2d.drawRenderedImage(image, xform); ! drawComposite(buffer.getRaster().getBounds(), null); } } protected boolean drawImage(Image img, AffineTransform xform, ! Color bgcolor, ImageObserver obs) { if (comp == null || comp instanceof AlphaComposite) { *************** public class BufferedImageGraphics exten *** 392,407 **** img = Toolkit.getDefaultToolkit().createImage(source); } BufferedImage bImg = (BufferedImage) img; ! // Find translated bounds Rectangle2D bounds = new Rectangle(bImg.getMinX(), bImg.getMinY(), bImg.getWidth(), bImg.getHeight()); if (xform != null) bounds = getTransformedBounds(bounds, xform); ! // Create buffer and draw image createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawImage(img, xform, obs); --- 392,407 ---- img = Toolkit.getDefaultToolkit().createImage(source); } BufferedImage bImg = (BufferedImage) img; ! // Find translated bounds Rectangle2D bounds = new Rectangle(bImg.getMinX(), bImg.getMinY(), bImg.getWidth(), bImg.getHeight()); if (xform != null) bounds = getTransformedBounds(bounds, xform); ! // Create buffer and draw image createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawImage(img, xform, obs); *************** public class BufferedImageGraphics exten *** 413,432 **** public void drawGlyphVector(GlyphVector gv, float x, float y) { ! // Find absolute bounds, in user-space, of this glyph vector Rectangle2D bounds = gv.getLogicalBounds(); bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), bounds.getWidth(), bounds.getHeight()); ! // Perform draw operation if (comp == null || comp instanceof AlphaComposite) { super.drawGlyphVector(gv, x, y); ! // this returns an integer-based Rectangle (rather than a // Rectangle2D), which takes care of any necessary rounding for us. bounds = bounds.getBounds(); ! updateBufferedImage((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight()); } --- 413,432 ---- public void drawGlyphVector(GlyphVector gv, float x, float y) { ! // Find absolute bounds, in user-space, of this glyph vector Rectangle2D bounds = gv.getLogicalBounds(); bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), bounds.getWidth(), bounds.getHeight()); ! // Perform draw operation if (comp == null || comp instanceof AlphaComposite) { super.drawGlyphVector(gv, x, y); ! // this returns an integer-based Rectangle (rather than a // Rectangle2D), which takes care of any necessary rounding for us. bounds = bounds.getBounds(); ! updateBufferedImage((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight()); } *************** public class BufferedImageGraphics exten *** 439,455 **** g2d.setStroke(this.getStroke()); g2d.setTransform(transform); g2d.drawGlyphVector(gv, x, y); ! drawComposite(bounds, null); } } ! /** * Perform composite drawing from the buffer onto the main image. ! * * The image to be composited should already be drawn into the buffer, in the * proper place, after all necessary transforms have been applied. ! * * @param bounds The bounds to draw, in user-space. * @param observer The image observer, if any (may be null). * @return True on success, false on failure. --- 439,455 ---- g2d.setStroke(this.getStroke()); g2d.setTransform(transform); g2d.drawGlyphVector(gv, x, y); ! drawComposite(bounds, null); } } ! /** * Perform composite drawing from the buffer onto the main image. ! * * The image to be composited should already be drawn into the buffer, in the * proper place, after all necessary transforms have been applied. ! * * @param bounds The bounds to draw, in user-space. * @param observer The image observer, if any (may be null). * @return True on success, false on failure. *************** public class BufferedImageGraphics exten *** 465,471 **** devClip = new Rectangle(buffer.getMinX(), buffer.getMinY(), buffer.getWidth(), buffer.getHeight()); Rectangle2D.intersect(bounds, devClip, bounds); ! // Round bounds as needed, but be careful in our rounding // (otherwise it may leave unpainted stripes) double x = bounds.getX(); --- 465,471 ---- devClip = new Rectangle(buffer.getMinX(), buffer.getMinY(), buffer.getWidth(), buffer.getHeight()); Rectangle2D.intersect(bounds, devClip, bounds); ! // Round bounds as needed, but be careful in our rounding // (otherwise it may leave unpainted stripes) double x = bounds.getX(); *************** public class BufferedImageGraphics exten *** 475,481 **** x = Math.round(x); y = Math.round(y); bounds.setRect(x, y, Math.round(maxX - x), Math.round(maxY - y)); ! // Find subimage of internal buffer for updating BufferedImage buffer2 = buffer; if (!bounds.equals(buffer2.getRaster().getBounds())) --- 475,481 ---- x = Math.round(x); y = Math.round(y); bounds.setRect(x, y, Math.round(maxX - x), Math.round(maxY - y)); ! // Find subimage of internal buffer for updating BufferedImage buffer2 = buffer; if (!bounds.equals(buffer2.getRaster().getBounds())) *************** public class BufferedImageGraphics exten *** 492,503 **** // Perform actual composite operation compCtx.compose(buffer2.getRaster(), current.getRaster(), current.getRaster()); ! // Set cairo's composite to direct SRC, since we've already done our own ! // compositing Composite oldcomp = comp; setComposite(AlphaComposite.Src); ! // This MUST call directly into the "action" method in CairoGraphics2D, // not one of the wrappers, to ensure that the composite isn't processed // more than once! --- 492,503 ---- // Perform actual composite operation compCtx.compose(buffer2.getRaster(), current.getRaster(), current.getRaster()); ! // Set cairo's composite to direct SRC, since we've already done our own ! // compositing Composite oldcomp = comp; setComposite(AlphaComposite.Src); ! // This MUST call directly into the "action" method in CairoGraphics2D, // not one of the wrappers, to ensure that the composite isn't processed // more than once! *************** public class BufferedImageGraphics exten *** 509,515 **** updateColor(); return rv; } ! private void createBuffer() { if (buffer == null) --- 509,515 ---- updateColor(); return rv; } ! private void createBuffer() { if (buffer == null) *************** public class BufferedImageGraphics exten *** 520,539 **** else { Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); ! g2d.setBackground(new Color(0,0,0,0)); g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } } ! protected ColorModel getNativeCM() { return image.getColorModel(); } ! protected ColorModel getBufferCM() { return ColorModel.getRGBdefault(); } } - --- 520,538 ---- else { Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); ! g2d.setBackground(new Color(0,0,0,0)); g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } } ! protected ColorModel getNativeCM() { return image.getColorModel(); } ! protected ColorModel getBufferCM() { return ColorModel.getRGBdefault(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java Tue Jan 11 19:46:05 2011 *************** import java.util.HashMap; *** 101,107 **** import java.util.Map; /** ! * This is an abstract implementation of Graphics2D on Cairo. * * It should be subclassed for different Cairo contexts. * --- 101,107 ---- import java.util.Map; /** ! * This is an abstract implementation of Graphics2D on Cairo. * * It should be subclassed for different Cairo contexts. * *************** import java.util.Map; *** 112,118 **** * GraphicsConfiguration getDeviceConfiguration() * copyArea(int x, int y, int width, int height, int dx, int dy) * ! * Also, dispose() must be overloaded to free any native datastructures * used by subclass and in addition call super.dispose() to free the * native cairographics2d structure and cairo_t. * --- 112,118 ---- * GraphicsConfiguration getDeviceConfiguration() * copyArea(int x, int y, int width, int height, int dx, int dy) * ! * Also, dispose() must be overloaded to free any native datastructures * used by subclass and in addition call super.dispose() to free the * native cairographics2d structure and cairo_t. * *************** import java.util.Map; *** 120,126 **** */ public abstract class CairoGraphics2D extends Graphics2D { ! static { if (true) // GCJ LOCAL { --- 120,126 ---- */ public abstract class CairoGraphics2D extends Graphics2D { ! static { if (true) // GCJ LOCAL { *************** public abstract class CairoGraphics2D ex *** 177,183 **** * Rendering hint map. */ private RenderingHints hints; ! /** * Status of the anti-alias flag in cairo. */ --- 177,183 ---- * Rendering hint map. */ private RenderingHints hints; ! /** * Status of the anti-alias flag in cairo. */ *************** public abstract class CairoGraphics2D ex *** 187,193 **** /** * Some operations (drawing rather than filling) require that their * coords be shifted to land on 0.5-pixel boundaries, in order to land on ! * "middle of pixel" coordinates and light up complete pixels. */ protected boolean shiftDrawCalls = false; --- 187,193 ---- /** * Some operations (drawing rather than filling) require that their * coords be shifted to land on 0.5-pixel boundaries, in order to land on ! * "middle of pixel" coordinates and light up complete pixels. */ protected boolean shiftDrawCalls = false; *************** public abstract class CairoGraphics2D ex *** 203,210 **** private static BasicStroke draw3DRectStroke = new BasicStroke(); static ColorModel rgb32 = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF); ! static ColorModel argb32 = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, ! 0xFF000000); /** * Native constants for interpolation methods. --- 203,210 ---- private static BasicStroke draw3DRectStroke = new BasicStroke(); static ColorModel rgb32 = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF); ! static ColorModel argb32 = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, ! 0xFF000000); /** * Native constants for interpolation methods. *************** public abstract class CairoGraphics2D ex *** 217,223 **** ALPHA_INTERPOLATION_QUALITY = 3, ALPHA_INTERPOLATION_DEFAULT = 4; // TODO: Does ALPHA_INTERPOLATION really correspond to CAIRO_FILTER_FAST/BEST/GOOD? ! /** * Constructor does nothing. */ --- 217,223 ---- ALPHA_INTERPOLATION_QUALITY = 3, ALPHA_INTERPOLATION_DEFAULT = 4; // TODO: Does ALPHA_INTERPOLATION really correspond to CAIRO_FILTER_FAST/BEST/GOOD? ! /** * Constructor does nothing. */ *************** public abstract class CairoGraphics2D ex *** 230,236 **** * @param cairo_t_pointer a native pointer to a cairo_t of the context. */ public void setup(long cairo_t_pointer) ! { nativePointer = init(cairo_t_pointer); setRenderingHints(new RenderingHints(getDefaultHints())); setFont(new Font("SansSerif", Font.PLAIN, 12)); --- 230,236 ---- * @param cairo_t_pointer a native pointer to a cairo_t of the context. */ public void setup(long cairo_t_pointer) ! { nativePointer = init(cairo_t_pointer); setRenderingHints(new RenderingHints(getDefaultHints())); setFont(new Font("SansSerif", Font.PLAIN, 12)); *************** public abstract class CairoGraphics2D ex *** 251,257 **** paint = g.paint; stroke = g.stroke; setRenderingHints(g.hints); ! Color foreground; if (g.fg.getAlpha() != -1) --- 251,257 ---- paint = g.paint; stroke = g.stroke; setRenderingHints(g.hints); ! Color foreground; if (g.fg.getAlpha() != -1) *************** public abstract class CairoGraphics2D ex *** 286,292 **** setTransformImpl(transform); setClip(clip); setComposite(comp); ! antialias = !g.antialias; setAntialias(g.antialias); } --- 286,292 ---- setTransformImpl(transform); setClip(clip); setComposite(comp); ! antialias = !g.antialias; setAntialias(g.antialias); } *************** public abstract class CairoGraphics2D ex *** 300,308 **** } /** ! * Disposes the native cairographics2d structure, including the ! * cairo_t and any gradient stuff, if allocated. ! * Subclasses should of course overload and call this if * they have additional native structures. */ public void dispose() --- 300,308 ---- } /** ! * Disposes the native cairographics2d structure, including the ! * cairo_t and any gradient stuff, if allocated. ! * Subclasses should of course overload and call this if * they have additional native structures. */ public void dispose() *************** public abstract class CairoGraphics2D ex *** 332,338 **** /** * Find the bounds of this graphics context, in device space. ! * * @return the bounds in device-space */ protected abstract Rectangle2D getRealBounds(); --- 332,338 ---- /** * Find the bounds of this graphics context, in device space. ! * * @return the bounds in device-space */ protected abstract Rectangle2D getRealBounds(); *************** public abstract class CairoGraphics2D ex *** 359,365 **** double x2, double y2, int r1, int g1, int b1, int a1, int r2, int g2, int b2, int a2, boolean cyclic); ! protected native void setPaintPixels(long pointer, int[] pixels, int w, int h, int stride, boolean repeat, int x, int y); --- 359,365 ---- double x2, double y2, int r1, int g1, int b1, int a1, int r2, int g2, int b2, int a2, boolean cyclic); ! protected native void setPaintPixels(long pointer, int[] pixels, int w, int h, int stride, boolean repeat, int x, int y); *************** public abstract class CairoGraphics2D ex *** 368,374 **** * Set the current transform matrix */ protected native void cairoSetMatrix(long pointer, double[] m); ! /** * Scaling method */ --- 368,374 ---- * Set the current transform matrix */ protected native void cairoSetMatrix(long pointer, double[] m); ! /** * Scaling method */ *************** public abstract class CairoGraphics2D ex *** 406,413 **** /* * Draws a Glyph Vector */ ! protected native void cairoDrawGlyphVector(long pointer, GdkFontPeer font, ! float x, float y, int n, int[] codes, float[] positions, long[] fontset); /** --- 406,413 ---- /* * Draws a Glyph Vector */ ! protected native void cairoDrawGlyphVector(long pointer, GdkFontPeer font, ! float x, float y, int n, int[] codes, float[] positions, long[] fontset); /** *************** public abstract class CairoGraphics2D ex *** 420,426 **** */ protected native void cairoRectangle(long pointer, double x, double y, double width, double height); ! /** * Appends an arc to the current path */ --- 420,426 ---- */ protected native void cairoRectangle(long pointer, double x, double y, double width, double height); ! /** * Appends an arc to the current path */ *************** public abstract class CairoGraphics2D ex *** 438,444 **** */ protected native void cairoNewPath(long pointer); ! /** * Close current path */ protected native void cairoClosePath(long pointer); --- 438,444 ---- */ protected native void cairoNewPath(long pointer); ! /** * Close current path */ protected native void cairoClosePath(long pointer); *************** public abstract class CairoGraphics2D ex *** 464,479 **** */ protected native void cairoFill(long pointer, double alpha); ! /** * Clip current path */ protected native void cairoClip(long pointer); ! /** * Clear clip */ protected native void cairoResetClip(long pointer); ! /** * Set antialias. */ --- 464,479 ---- */ protected native void cairoFill(long pointer, double alpha); ! /** * Clip current path */ protected native void cairoClip(long pointer); ! /** * Clear clip */ protected native void cairoResetClip(long pointer); ! /** * Set antialias. */ *************** public abstract class CairoGraphics2D ex *** 483,489 **** ///////////////////////// TRANSFORMS /////////////////////////////////// /** * Set the current transform ! */ public void setTransform(AffineTransform tx) { // Transform clip into target space using the old transform. --- 483,489 ---- ///////////////////////// TRANSFORMS /////////////////////////////////// /** * Set the current transform ! */ public void setTransform(AffineTransform tx) { // Transform clip into target space using the old transform. *************** public abstract class CairoGraphics2D ex *** 588,594 **** setTransformImpl(transform); } ! public void translate(int x, int y) { translate((double) x, (double) y); --- 588,594 ---- setTransformImpl(transform); } ! public void translate(int x, int y) { translate((double) x, (double) y); *************** public abstract class CairoGraphics2D ex *** 670,682 **** setColor((Color) paint); customPaint = false; } ! else if (paint instanceof TexturePaint) { TexturePaint tp = (TexturePaint) paint; BufferedImage img = tp.getImage(); ! // map the image to the anchor rectangle int width = (int) tp.getAnchorRect().getWidth(); int height = (int) tp.getAnchorRect().getHeight(); --- 670,682 ---- setColor((Color) paint); customPaint = false; } ! else if (paint instanceof TexturePaint) { TexturePaint tp = (TexturePaint) paint; BufferedImage img = tp.getImage(); ! // map the image to the anchor rectangle int width = (int) tp.getAnchorRect().getWidth(); int height = (int) tp.getAnchorRect().getHeight(); *************** public abstract class CairoGraphics2D ex *** 690,696 **** setPaintPixels(nativePointer, pixels, width, height, width, true, 0, 0); customPaint = false; } ! else if (paint instanceof GradientPaint) { GradientPaint gp = (GradientPaint) paint; --- 690,696 ---- setPaintPixels(nativePointer, pixels, width, height, width, true, 0, 0); customPaint = false; } ! else if (paint instanceof GradientPaint) { GradientPaint gp = (GradientPaint) paint; *************** public abstract class CairoGraphics2D ex *** 707,718 **** else { customPaint = true; ! } } ! /** * Sets a custom paint ! * * @param bounds the bounding box, in user space */ protected void setCustomPaint(Rectangle bounds) --- 707,718 ---- else { customPaint = true; ! } } ! /** * Sets a custom paint ! * * @param bounds the bounding box, in user space */ protected void setCustomPaint(Rectangle bounds) *************** public abstract class CairoGraphics2D ex *** 720,731 **** if (paint instanceof Color || paint instanceof TexturePaint || paint instanceof GradientPaint) return; ! int userX = bounds.x; int userY = bounds.y; int userWidth = bounds.width; int userHeight = bounds.height; ! // Find bounds in device space Rectangle2D bounds2D = getTransformedBounds(bounds, transform); int deviceX = (int)bounds2D.getX(); --- 720,731 ---- if (paint instanceof Color || paint instanceof TexturePaint || paint instanceof GradientPaint) return; ! int userX = bounds.x; int userY = bounds.y; int userWidth = bounds.width; int userHeight = bounds.height; ! // Find bounds in device space Rectangle2D bounds2D = getTransformedBounds(bounds, transform); int deviceX = (int)bounds2D.getX(); *************** public abstract class CairoGraphics2D ex *** 740,753 **** deviceHeight), bounds, transform, hints); ! Raster raster = pc.getRaster(deviceX, deviceY, deviceWidth, deviceHeight); ! // Clear the transform matrix in Cairo, since the raster returned by the // PaintContext is already in device-space AffineTransform oldTx = new AffineTransform(transform); ! setTransformImpl(new AffineTransform()); // Set pixels in cairo, aligning the top-left of the background image // to the top-left corner in device space --- 740,753 ---- deviceHeight), bounds, transform, hints); ! Raster raster = pc.getRaster(deviceX, deviceY, deviceWidth, deviceHeight); ! // Clear the transform matrix in Cairo, since the raster returned by the // PaintContext is already in device-space AffineTransform oldTx = new AffineTransform(transform); ! setTransformImpl(new AffineTransform()); // Set pixels in cairo, aligning the top-left of the background image // to the top-left corner in device space *************** public abstract class CairoGraphics2D ex *** 762,768 **** deviceWidth, deviceHeight, deviceWidth, false, deviceX, deviceY); } ! else if (pc.getColorModel().equals(CairoSurface.cairoCM_opaque) && raster.getSampleModel().getTransferType() == DataBuffer.TYPE_INT) { --- 762,768 ---- deviceWidth, deviceHeight, deviceWidth, false, deviceX, deviceY); } ! else if (pc.getColorModel().equals(CairoSurface.cairoCM_opaque) && raster.getSampleModel().getTransferType() == DataBuffer.TYPE_INT) { *************** public abstract class CairoGraphics2D ex *** 770,805 **** // but without an alpha channel; we just add the alpha int[] pixels = (int[])raster.getDataElements(0, 0, deviceWidth, deviceHeight, null); ! for (int i = 0; i < pixels.length; i++) pixels[i] = 0xff000000 | (pixels[i] & 0x00ffffff); ! setPaintPixels(nativePointer, pixels, deviceWidth, deviceHeight, deviceWidth, false, deviceX, deviceY); } ! else { ! // Fall back on wrapping the raster in a BufferedImage, and ! // use BufferedImage.getRGB() to do color-model conversion WritableRaster wr = Raster.createWritableRaster(raster.getSampleModel(), new Point(raster.getMinX(), raster.getMinY())); wr.setRect(raster); ! BufferedImage img2 = new BufferedImage(pc.getColorModel(), wr, pc.getColorModel().isAlphaPremultiplied(), null); ! setPaintPixels(nativePointer, img2.getRGB(0, 0, deviceWidth, deviceHeight, null, 0, deviceWidth), deviceWidth, deviceHeight, deviceWidth, false, deviceX, deviceY); } ! // Restore transform ! setTransformImpl(oldTx); } public Stroke getStroke() --- 770,805 ---- // but without an alpha channel; we just add the alpha int[] pixels = (int[])raster.getDataElements(0, 0, deviceWidth, deviceHeight, null); ! for (int i = 0; i < pixels.length; i++) pixels[i] = 0xff000000 | (pixels[i] & 0x00ffffff); ! setPaintPixels(nativePointer, pixels, deviceWidth, deviceHeight, deviceWidth, false, deviceX, deviceY); } ! else { ! // Fall back on wrapping the raster in a BufferedImage, and ! // use BufferedImage.getRGB() to do color-model conversion WritableRaster wr = Raster.createWritableRaster(raster.getSampleModel(), new Point(raster.getMinX(), raster.getMinY())); wr.setRect(raster); ! BufferedImage img2 = new BufferedImage(pc.getColorModel(), wr, pc.getColorModel().isAlphaPremultiplied(), null); ! setPaintPixels(nativePointer, img2.getRGB(0, 0, deviceWidth, deviceHeight, null, 0, deviceWidth), deviceWidth, deviceHeight, deviceWidth, false, deviceX, deviceY); } ! // Restore transform ! setTransformImpl(oldTx); } public Stroke getStroke() *************** public abstract class CairoGraphics2D ex *** 813,819 **** if (stroke instanceof BasicStroke) { BasicStroke bs = (BasicStroke) stroke; ! cairoSetLine(nativePointer, bs.getLineWidth(), bs.getEndCap(), bs.getLineJoin(), bs.getMiterLimit()); float[] dashes = bs.getDashArray(); --- 813,819 ---- if (stroke instanceof BasicStroke) { BasicStroke bs = (BasicStroke) stroke; ! cairoSetLine(nativePointer, bs.getLineWidth(), bs.getEndCap(), bs.getLineJoin(), bs.getMiterLimit()); float[] dashes = bs.getDashArray(); *************** public abstract class CairoGraphics2D ex *** 822,828 **** double[] double_dashes = new double[dashes.length]; for (int i = 0; i < dashes.length; i++) double_dashes[i] = dashes[i]; ! cairoSetDash(nativePointer, double_dashes, double_dashes.length, (double) bs.getDashPhase()); } --- 822,828 ---- double[] double_dashes = new double[dashes.length]; for (int i = 0; i < dashes.length; i++) double_dashes[i] = dashes[i]; ! cairoSetDash(nativePointer, double_dashes, double_dashes.length, (double) bs.getDashPhase()); } *************** public abstract class CairoGraphics2D ex *** 833,846 **** /** * Utility method to find the bounds of a shape, including the stroke width. ! * * @param s the shape * @return the bounds of the shape, including stroke width */ protected Rectangle findStrokedBounds(Shape s) { Rectangle r = s.getBounds(); ! if (stroke instanceof BasicStroke) { int strokeWidth = (int)Math.ceil(((BasicStroke)stroke).getLineWidth()); --- 833,846 ---- /** * Utility method to find the bounds of a shape, including the stroke width. ! * * @param s the shape * @return the bounds of the shape, including stroke width */ protected Rectangle findStrokedBounds(Shape s) { Rectangle r = s.getBounds(); ! if (stroke instanceof BasicStroke) { int strokeWidth = (int)Math.ceil(((BasicStroke)stroke).getLineWidth()); *************** public abstract class CairoGraphics2D ex *** 854,860 **** Shape s2 = stroke.createStrokedShape(s); r = s2.getBounds(); } ! return r; } --- 854,860 ---- Shape s2 = stroke.createStrokedShape(s); r = s2.getBounds(); } ! return r; } *************** public abstract class CairoGraphics2D ex *** 877,883 **** paint = c; updateColor(); } ! /** * Set the current fg value as the cairo color. */ --- 877,883 ---- paint = c; updateColor(); } ! /** * Set the current fg value as the cairo color. */ *************** public abstract class CairoGraphics2D ex *** 885,891 **** { if (fg == null) fg = Color.BLACK; ! cairoSetRGBAColor(nativePointer, fg.getRed() / 255.0, fg.getGreen() / 255.0,fg.getBlue() / 255.0, fg.getAlpha() / 255.0); --- 885,891 ---- { if (fg == null) fg = Color.BLACK; ! cairoSetRGBAColor(nativePointer, fg.getRed() / 255.0, fg.getGreen() / 255.0,fg.getBlue() / 255.0, fg.getAlpha() / 255.0); *************** public abstract class CairoGraphics2D ex *** 951,959 **** public void setClip(Shape s) { ! // The first time the clip is set, save it as the original clip ! // to reset to on s == null. We can rely on this being non-null ! // because the constructor in subclasses is expected to set the // initial clip properly. if( firstClip ) { --- 951,959 ---- public void setClip(Shape s) { ! // The first time the clip is set, save it as the original clip ! // to reset to on s == null. We can rely on this being non-null ! // because the constructor in subclasses is expected to set the // initial clip properly. if( firstClip ) { *************** public abstract class CairoGraphics2D ex *** 975,981 **** } else walkPath(clip.getPathIterator(null), false); ! cairoClip(nativePointer); } } --- 975,981 ---- } else walkPath(clip.getPathIterator(null), false); ! cairoClip(nativePointer); } } *************** public abstract class CairoGraphics2D ex *** 1010,1016 **** { if (this.comp == comp) return; ! this.comp = comp; if (compCtx != null) compCtx.dispose(); --- 1010,1016 ---- { if (this.comp == comp) return; ! this.comp = comp; if (compCtx != null) compCtx.dispose(); *************** public abstract class CairoGraphics2D ex *** 1021,1031 **** AlphaComposite a = (AlphaComposite) comp; cairoSetOperator(nativePointer, a.getRule()); } ! else { cairoSetOperator(nativePointer, AlphaComposite.SRC_OVER); ! if (comp != null) { // FIXME: this check is only required "if this Graphics2D --- 1021,1031 ---- AlphaComposite a = (AlphaComposite) comp; cairoSetOperator(nativePointer, a.getRule()); } ! else { cairoSetOperator(nativePointer, AlphaComposite.SRC_OVER); ! if (comp != null) { // FIXME: this check is only required "if this Graphics2D *************** public abstract class CairoGraphics2D ex *** 1033,1056 **** SecurityManager sm = System.getSecurityManager(); if (sm != null) sm.checkPermission(new AWTPermission("readDisplayPixels")); ! compCtx = comp.createContext(getBufferCM(), getNativeCM(), hints); } } } ! /** * Returns the Colour Model describing the native, raw image data for this * specific peer. ! * * @return ColorModel the ColorModel of native data in this peer */ protected abstract ColorModel getNativeCM(); ! /** * Returns the Color Model describing the buffer that this peer uses * for custom composites. ! * * @return ColorModel the ColorModel of the composite buffer in this peer. */ protected ColorModel getBufferCM() --- 1033,1056 ---- SecurityManager sm = System.getSecurityManager(); if (sm != null) sm.checkPermission(new AWTPermission("readDisplayPixels")); ! compCtx = comp.createContext(getBufferCM(), getNativeCM(), hints); } } } ! /** * Returns the Colour Model describing the native, raw image data for this * specific peer. ! * * @return ColorModel the ColorModel of native data in this peer */ protected abstract ColorModel getNativeCM(); ! /** * Returns the Color Model describing the buffer that this peer uses * for custom composites. ! * * @return ColorModel the ColorModel of the composite buffer in this peer. */ protected ColorModel getBufferCM() *************** public abstract class CairoGraphics2D ex *** 1107,1113 **** if (s instanceof Rectangle2D) { Rectangle2D r = (Rectangle2D) s; ! // Pixels need to be shifted in draw operations to ensure that they // light up entire pixels, but we also need to make sure the rectangle // does not get distorted by this shifting operation --- 1107,1113 ---- if (s instanceof Rectangle2D) { Rectangle2D r = (Rectangle2D) s; ! // Pixels need to be shifted in draw operations to ensure that they // light up entire pixels, but we also need to make sure the rectangle // does not get distorted by this shifting operation *************** public abstract class CairoGraphics2D ex *** 1117,1123 **** double h = Math.round(r.getHeight()); cairoRectangle(nativePointer, x, y, w, h); } ! // Lines are easy too else if (s instanceof Line2D) { --- 1117,1123 ---- double h = Math.round(r.getHeight()); cairoRectangle(nativePointer, x, y, w, h); } ! // Lines are easy too else if (s instanceof Line2D) { *************** public abstract class CairoGraphics2D ex *** 1170,1176 **** /** * Note that the rest of the drawing methods go via fill() or draw() for the drawing, ! * although subclasses may with to overload these methods where context-specific * optimizations are possible (e.g. bitmaps and fillRect(int, int, int, int) */ --- 1170,1176 ---- /** * Note that the rest of the drawing methods go via fill() or draw() for the drawing, ! * although subclasses may with to overload these methods where context-specific * optimizations are possible (e.g. bitmaps and fillRect(int, int, int, int) */ *************** public abstract class CairoGraphics2D ex *** 1274,1290 **** } /** ! * CopyArea - performs clipping to the native surface as a convenience * (requires getRealBounds). Then calls copyAreaImpl. */ ! public void copyArea(int ox, int oy, int owidth, int oheight, ! int odx, int ody) { // FIXME: does this handle a rotation transform properly? // (the width/height might not be correct) Point2D pos = transform.transform(new Point2D.Double(ox, oy), (Point2D) null); ! Point2D dim = transform.transform(new Point2D.Double(ox + owidth, oy + oheight), (Point2D) null); Point2D p2 = transform.transform(new Point2D.Double(ox + odx, oy + ody), --- 1274,1290 ---- } /** ! * CopyArea - performs clipping to the native surface as a convenience * (requires getRealBounds). Then calls copyAreaImpl. */ ! public void copyArea(int ox, int oy, int owidth, int oheight, ! int odx, int ody) { // FIXME: does this handle a rotation transform properly? // (the width/height might not be correct) Point2D pos = transform.transform(new Point2D.Double(ox, oy), (Point2D) null); ! Point2D dim = transform.transform(new Point2D.Double(ox + owidth, oy + oheight), (Point2D) null); Point2D p2 = transform.transform(new Point2D.Double(ox + odx, oy + ody), *************** public abstract class CairoGraphics2D ex *** 1307,1313 **** if( x + dx + width < r.getX() || y + dy + height < r.getY() ) return; ! // Clip edges if necessary if( x + dx < r.getX() ) // left { width = x + dx + width; --- 1307,1313 ---- if( x + dx + width < r.getX() || y + dy + height < r.getY() ) return; ! // Clip edges if necessary if( x + dx < r.getX() ) // left { width = x + dx + width; *************** public abstract class CairoGraphics2D ex *** 1348,1357 **** { this.hints = new RenderingHints(getDefaultHints()); this.hints.putAll(hints); ! shiftDrawCalls = hints.containsValue(RenderingHints.VALUE_STROKE_NORMALIZE) || hints.containsValue(RenderingHints.VALUE_STROKE_DEFAULT); ! if (compCtx != null) { compCtx.dispose(); --- 1348,1357 ---- { this.hints = new RenderingHints(getDefaultHints()); this.hints.putAll(hints); ! shiftDrawCalls = hints.containsValue(RenderingHints.VALUE_STROKE_NORMALIZE) || hints.containsValue(RenderingHints.VALUE_STROKE_DEFAULT); ! if (compCtx != null) { compCtx.dispose(); *************** public abstract class CairoGraphics2D ex *** 1368,1374 **** { return hints; } ! private int getInterpolation() { if (this.hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) --- 1368,1374 ---- { return hints; } ! private int getInterpolation() { if (this.hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) *************** public abstract class CairoGraphics2D ex *** 1392,1409 **** // Do bilinear interpolation as default return INTERPOLATION_BILINEAR; } ! /** * Set antialias if needed. If the ignoreAA flag is set, this method will * return without doing anything. ! * * @param needAA RenderingHints.VALUE_ANTIALIAS_ON or RenderingHints.VALUE_ANTIALIAS_OFF */ private void setAntialias(boolean needAA) { if (ignoreAA) return; ! if (needAA != antialias) { antialias = !antialias; --- 1392,1409 ---- // Do bilinear interpolation as default return INTERPOLATION_BILINEAR; } ! /** * Set antialias if needed. If the ignoreAA flag is set, this method will * return without doing anything. ! * * @param needAA RenderingHints.VALUE_ANTIALIAS_ON or RenderingHints.VALUE_ANTIALIAS_OFF */ private void setAntialias(boolean needAA) { if (ignoreAA) return; ! if (needAA != antialias) { antialias = !antialias; *************** public abstract class CairoGraphics2D ex *** 1425,1432 **** // In this case, xform is an AffineTransform that transforms bounding // box of the specified image from image space to user space. However // when we pass this transform to cairo, cairo will use this transform ! // to map "user coordinates" to "pixel" coordinates, which is the ! // other way around. Therefore to get the "user -> pixel" transform // that cairo wants from "image -> user" transform that we currently // have, we will need to invert the transformation matrix. AffineTransform invertedXform; --- 1425,1432 ---- // In this case, xform is an AffineTransform that transforms bounding // box of the specified image from image space to user space. However // when we pass this transform to cairo, cairo will use this transform ! // to map "user coordinates" to "pixel" coordinates, which is the ! // other way around. Therefore to get the "user -> pixel" transform // that cairo wants from "image -> user" transform that we currently // have, we will need to invert the transformation matrix. AffineTransform invertedXform; *************** public abstract class CairoGraphics2D ex *** 1459,1468 **** double[] i2u = new double[6]; int width = b.getWidth(); int height = b.getHeight(); ! ! // If this BufferedImage has a BufferedImageGraphics object, // use the cached CairoSurface that BIG is drawing onto ! if( BufferedImageGraphics.bufferedImages.get( b ) != null ) raster = BufferedImageGraphics.bufferedImages.get( b ); else --- 1459,1468 ---- double[] i2u = new double[6]; int width = b.getWidth(); int height = b.getHeight(); ! ! // If this BufferedImage has a BufferedImageGraphics object, // use the cached CairoSurface that BIG is drawing onto ! if( BufferedImageGraphics.bufferedImages.get( b ) != null ) raster = BufferedImageGraphics.bufferedImages.get( b ); else *************** public abstract class CairoGraphics2D ex *** 1481,1498 **** updateColor(); return true; } ! if( bgcolor != null ) { Color oldColor = bg; setBackground(bgcolor); ! Rectangle2D bounds = new Rectangle2D.Double(0, 0, width, height); bounds = getTransformedBounds(bounds, xform); ! clearRect((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight()); ! setBackground(oldColor); } --- 1481,1498 ---- updateColor(); return true; } ! if( bgcolor != null ) { Color oldColor = bg; setBackground(bgcolor); ! Rectangle2D bounds = new Rectangle2D.Double(0, 0, width, height); bounds = getTransformedBounds(bounds, xform); ! clearRect((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight()); ! setBackground(oldColor); } *************** public abstract class CairoGraphics2D ex *** 1500,1506 **** // FIXME: The above method returns data in the standard ARGB colorspace, // meaning data should NOT be alpha pre-multiplied; however Cairo expects // data to be premultiplied. ! cairoSave(nativePointer); Rectangle2D bounds = new Rectangle2D.Double(0, 0, width, height); bounds = getTransformedBounds(bounds, xform); --- 1500,1506 ---- // FIXME: The above method returns data in the standard ARGB colorspace, // meaning data should NOT be alpha pre-multiplied; however Cairo expects // data to be premultiplied. ! cairoSave(nativePointer); Rectangle2D bounds = new Rectangle2D.Double(0, 0, width, height); bounds = getTransformedBounds(bounds, xform); *************** public abstract class CairoGraphics2D ex *** 1510,1516 **** drawPixels(nativePointer, pixels, width, height, width, i2u, alpha, getInterpolation()); ! cairoRestore(nativePointer); // Cairo seems to lose the current color which must be restored. --- 1510,1516 ---- drawPixels(nativePointer, pixels, width, height, width, i2u, alpha, getInterpolation()); ! cairoRestore(nativePointer); // Cairo seems to lose the current color which must be restored. *************** public abstract class CairoGraphics2D ex *** 1585,1591 **** int destWidth = dx2 - dx1; int destHeight = dy2 - dy1; ! if(destWidth == 0 || destHeight == 0 || sourceWidth == 0 || sourceHeight == 0) return true; --- 1585,1591 ---- int destWidth = dx2 - dx1; int destHeight = dy2 - dy1; ! if(destWidth == 0 || destHeight == 0 || sourceWidth == 0 || sourceHeight == 0) return true; *************** public abstract class CairoGraphics2D ex *** 1593,1610 **** double scaleY = destHeight / (double) sourceHeight; // FIXME: Avoid using an AT if possible here - it's at least twice as slow. ! Shape oldClip = getClip(); int cx, cy, cw, ch; ! if( dx1 < dx2 ) { cx = dx1; cw = dx2 - dx1; } else { cx = dx2; cw = dx1 - dx2; } ! if( dy1 < dy2 ) { cy = dy1; ch = dy2 - dy1; } else { cy = dy2; ch = dy1 - dy2; } ! clipRect( cx, cy, cw, ch ); AffineTransform tx = new AffineTransform(); --- 1593,1610 ---- double scaleY = destHeight / (double) sourceHeight; // FIXME: Avoid using an AT if possible here - it's at least twice as slow. ! Shape oldClip = getClip(); int cx, cy, cw, ch; ! if( dx1 < dx2 ) { cx = dx1; cw = dx2 - dx1; } else { cx = dx2; cw = dx1 - dx2; } ! if( dy1 < dy2 ) { cy = dy1; ch = dy2 - dy1; } else { cy = dy2; ch = dy1 - dy2; } ! clipRect( cx, cy, cw, ch ); AffineTransform tx = new AffineTransform(); *************** public abstract class CairoGraphics2D ex *** 1622,1631 **** { return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null, observer); } ! /** * Optimized method for drawing a CairoSurface onto this graphics context. ! * * @param surface The surface to draw. * @param tx The transformation matrix (cannot be null). * @param alpha The alpha value to paint with ( 0 <= alpha <= 1). --- 1622,1631 ---- { return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null, observer); } ! /** * Optimized method for drawing a CairoSurface onto this graphics context. ! * * @param surface The surface to draw. * @param tx The transformation matrix (cannot be null). * @param alpha The alpha value to paint with ( 0 <= alpha <= 1). *************** public abstract class CairoGraphics2D ex *** 1642,1660 **** Point2D origin = new Point2D.Double(0, 0); Point2D offset = new Point2D.Double(surface.getSampleModelTranslateX(), surface.getSampleModelTranslateY()); ! tx.transform(origin, origin); tx.transform(offset, offset); ! tx.translate(offset.getX() - origin.getX(), offset.getY() - origin.getY()); } ! // Find dimensions of this surface relative to the root parent surface Rectangle bounds = new Rectangle(-surface.getSampleModelTranslateX(), -surface.getSampleModelTranslateY(), surface.width, surface.height); ! // Clip to the translated image // We use direct cairo methods to avoid the overhead of maintaining a // java copy of the clip, since we will be reverting it immediately --- 1642,1660 ---- Point2D origin = new Point2D.Double(0, 0); Point2D offset = new Point2D.Double(surface.getSampleModelTranslateX(), surface.getSampleModelTranslateY()); ! tx.transform(origin, origin); tx.transform(offset, offset); ! tx.translate(offset.getX() - origin.getX(), offset.getY() - origin.getY()); } ! // Find dimensions of this surface relative to the root parent surface Rectangle bounds = new Rectangle(-surface.getSampleModelTranslateX(), -surface.getSampleModelTranslateY(), surface.width, surface.height); ! // Clip to the translated image // We use direct cairo methods to avoid the overhead of maintaining a // java copy of the clip, since we will be reverting it immediately *************** public abstract class CairoGraphics2D ex *** 1663,1669 **** cairoSave(nativePointer); walkPath(newBounds.getPathIterator(null), false); cairoClip(nativePointer); ! // Draw the surface try { --- 1663,1669 ---- cairoSave(nativePointer); walkPath(newBounds.getPathIterator(null), false); cairoClip(nativePointer); ! // Draw the surface try { *************** public abstract class CairoGraphics2D ex *** 1677,1683 **** // This should never happen(?), so we don't need to do anything here. ; } ! // Restore clip cairoRestore(nativePointer); } --- 1677,1683 ---- // This should never happen(?), so we don't need to do anything here. ; } ! // Restore clip cairoRestore(nativePointer); } *************** public abstract class CairoGraphics2D ex *** 1696,1708 **** tl = new TextLayout( str, getFont(), getFontRenderContext() ); fontPeer.textLayoutCache.put(str, tl); } ! // Set antialias to text_antialiasing, and set the ignoreAA flag so that // the setting doesn't get overridden in a draw() or fill() call. setAntialias(!hints.get(RenderingHints.KEY_TEXT_ANTIALIASING) .equals(RenderingHints.VALUE_TEXT_ANTIALIAS_OFF)); ignoreAA = true; ! tl.draw(this, x, y); ignoreAA = false; } --- 1696,1708 ---- tl = new TextLayout( str, getFont(), getFontRenderContext() ); fontPeer.textLayoutCache.put(str, tl); } ! // Set antialias to text_antialiasing, and set the ignoreAA flag so that // the setting doesn't get overridden in a draw() or fill() call. setAntialias(!hints.get(RenderingHints.KEY_TEXT_ANTIALIASING) .equals(RenderingHints.VALUE_TEXT_ANTIALIAS_OFF)); ignoreAA = true; ! tl.draw(this, x, y); ignoreAA = false; } *************** public abstract class CairoGraphics2D ex *** 1726,1739 **** if (customPaint) setCustomPaint(gv.getOutline().getBounds()); ! if (comp instanceof AlphaComposite) alpha = ((AlphaComposite) comp).getAlpha(); ! setAntialias(!hints.get(RenderingHints.KEY_TEXT_ANTIALIASING) .equals(RenderingHints.VALUE_TEXT_ANTIALIAS_OFF)); ignoreAA = true; ! if (gv instanceof FreetypeGlyphVector && alpha == 1.0 && !((FreetypeGlyphVector)gv).hasTransforms()) { --- 1726,1739 ---- if (customPaint) setCustomPaint(gv.getOutline().getBounds()); ! if (comp instanceof AlphaComposite) alpha = ((AlphaComposite) comp).getAlpha(); ! setAntialias(!hints.get(RenderingHints.KEY_TEXT_ANTIALIASING) .equals(RenderingHints.VALUE_TEXT_ANTIALIAS_OFF)); ignoreAA = true; ! if (gv instanceof FreetypeGlyphVector && alpha == 1.0 && !((FreetypeGlyphVector)gv).hasTransforms()) { *************** public abstract class CairoGraphics2D ex *** 1744,1751 **** setFont (gv.getFont ()); GdkFontPeer fontPeer = (GdkFontPeer) font.getPeer(); ! synchronized (fontPeer) ! { cairoDrawGlyphVector(nativePointer, fontPeer, x, y, n, codes, positions, fontset); } --- 1744,1751 ---- setFont (gv.getFont ()); GdkFontPeer fontPeer = (GdkFontPeer) font.getPeer(); ! synchronized (fontPeer) ! { cairoDrawGlyphVector(nativePointer, fontPeer, x, y, n, codes, positions, fontset); } *************** public abstract class CairoGraphics2D ex *** 1756,1762 **** fill(gv.getOutline()); translate(-x, -y); } ! ignoreAA = false; } --- 1756,1762 ---- fill(gv.getOutline()); translate(-x, -y); } ! ignoreAA = false; } *************** public abstract class CairoGraphics2D ex *** 1767,1773 **** } /** ! * Should perhaps be contexct dependent, but this is left for now as an * overloadable default implementation. */ public FontRenderContext getFontRenderContext() --- 1767,1773 ---- } /** ! * Should perhaps be contexct dependent, but this is left for now as an * overloadable default implementation. */ public FontRenderContext getFontRenderContext() *************** public abstract class CairoGraphics2D ex *** 1799,1808 **** if (f.getPeer() instanceof GdkFontPeer) font = f; else ! font = ((ClasspathToolkit)(Toolkit.getDefaultToolkit())) ! .getFont(f.getName(), f.getAttributes()); ! GdkFontPeer fontpeer = (GdkFontPeer) getFont().getPeer(); synchronized (fontpeer) { --- 1799,1808 ---- if (f.getPeer() instanceof GdkFontPeer) font = f; else ! font = ((ClasspathToolkit)(Toolkit.getDefaultToolkit())) ! .getFont(f.getName(), f.getAttributes()); ! GdkFontPeer fontpeer = (GdkFontPeer) getFont().getPeer(); synchronized (fontpeer) { *************** public abstract class CairoGraphics2D ex *** 1824,1834 **** if( onStroke ) { Shape stroked = stroke.createStrokedShape( s ); ! return stroked.intersects( (double)rect.x, (double)rect.y, (double)rect.width, (double)rect.height ); } ! return s.intersects( (double)rect.x, (double)rect.y, ! (double)rect.width, (double)rect.height ); } public String toString() --- 1824,1834 ---- if( onStroke ) { Shape stroked = stroke.createStrokedShape( s ); ! return stroked.intersects( (double)rect.x, (double)rect.y, (double)rect.width, (double)rect.height ); } ! return s.intersects( (double)rect.x, (double)rect.y, ! (double)rect.width, (double)rect.height ); } public String toString() *************** public abstract class CairoGraphics2D ex *** 1836,1842 **** return (getClass().getName() + "[font=" + getFont().toString() + ",color=" + fg.toString() ! + "]"); } ///////////////////////// PRIVATE METHODS /////////////////////////////////// --- 1836,1842 ---- return (getClass().getName() + "[font=" + getFont().toString() + ",color=" + fg.toString() ! + "]"); } ///////////////////////// PRIVATE METHODS /////////////////////////////////// *************** public abstract class CairoGraphics2D ex *** 1845,1851 **** * All the drawImage() methods eventually get delegated here if the image * is not a Cairo surface. * ! * @param bgcolor - if non-null draws the background color before * drawing the image. */ private boolean drawRaster(ColorModel cm, Raster r, --- 1845,1851 ---- * All the drawImage() methods eventually get delegated here if the image * is not a Cairo surface. * ! * @param bgcolor - if non-null draws the background color before * drawing the image. */ private boolean drawRaster(ColorModel cm, Raster r, *************** public abstract class CairoGraphics2D ex *** 1881,1887 **** if (pixels == null) { // FIXME: I don't think this code will work correctly with a non-RGB ! // MultiPixelPackedSampleModel. Although this entire method should // probably be rewritten to better utilize Cairo's different supported // data formats. if (sm instanceof MultiPixelPackedSampleModel) --- 1881,1887 ---- if (pixels == null) { // FIXME: I don't think this code will work correctly with a non-RGB ! // MultiPixelPackedSampleModel. Although this entire method should // probably be rewritten to better utilize Cairo's different supported // data formats. if (sm instanceof MultiPixelPackedSampleModel) *************** public abstract class CairoGraphics2D ex *** 1917,1929 **** double alpha = 1.0; if (comp instanceof AlphaComposite) alpha = ((AlphaComposite) comp).getAlpha(); ! drawPixels(nativePointer, pixels, r.getWidth(), r.getHeight(), r.getWidth(), i2u, alpha, getInterpolation()); // Cairo seems to lose the current color which must be restored. updateColor(); ! return true; } --- 1917,1929 ---- double alpha = 1.0; if (comp instanceof AlphaComposite) alpha = ((AlphaComposite) comp).getAlpha(); ! drawPixels(nativePointer, pixels, r.getWidth(), r.getHeight(), r.getWidth(), i2u, alpha, getInterpolation()); // Cairo seems to lose the current color which must be restored. updateColor(); ! return true; } *************** public abstract class CairoGraphics2D ex *** 2112,2118 **** { if (! (clip instanceof GeneralPath)) clip = new GeneralPath(clip); ! GeneralPath p = (GeneralPath) clip; p.transform(t); } --- 2112,2118 ---- { if (! (clip instanceof GeneralPath)) clip = new GeneralPath(clip); ! GeneralPath p = (GeneralPath) clip; p.transform(t); } *************** public abstract class CairoGraphics2D ex *** 2138,2144 **** return rect; } ! static Rectangle2D getTransformedBounds(Rectangle2D bounds, AffineTransform tx) { double x1 = bounds.getX(); --- 2138,2144 ---- return rect; } ! static Rectangle2D getTransformedBounds(Rectangle2D bounds, AffineTransform tx) { double x1 = bounds.getX(); *************** public abstract class CairoGraphics2D ex *** 2149,2158 **** double y2 = y1; double y3 = bounds.getY() + bounds.getHeight(); double y4 = y3; ! double[] points = new double[] {x1, y1, x2, y2, x3, y3, x4, y4}; tx.transform(points, 0, points, 0, 4); ! double minX = points[0]; double maxX = minX; double minY = points[1]; --- 2149,2158 ---- double y2 = y1; double y3 = bounds.getY() + bounds.getHeight(); double y4 = y3; ! double[] points = new double[] {x1, y1, x2, y2, x3, y3, x4, y4}; tx.transform(points, 0, points, 0, 4); ! double minX = points[0]; double maxX = minX; double minY = points[1]; *************** public abstract class CairoGraphics2D ex *** 2164,2176 **** if (points[i] > maxX) maxX = points[i]; i++; ! if (points[i] < minY) minY = points[i]; if (points[i] > maxY) maxY = points[i]; } ! return new Rectangle2D.Double(minX, minY, (maxX - minX), (maxY - minY)); } } --- 2164,2176 ---- if (points[i] > maxX) maxX = points[i]; i++; ! if (points[i] < minY) minY = points[i]; if (points[i] > maxY) maxY = points[i]; } ! return new Rectangle2D.Double(minX, minY, (maxX - minX), (maxY - minY)); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java Tue Jan 11 19:46:05 2011 *************** public class CairoSurface extends Writab *** 68,74 **** int width = -1, height = -1; /** ! * The native pointer to the Cairo surface. */ long surfacePointer; --- 68,74 ---- int width = -1, height = -1; /** ! * The native pointer to the Cairo surface. */ long surfacePointer; *************** public class CairoSurface extends Writab *** 93,100 **** 0xFF000000, true, Buffers.smallestAppropriateTransferType(32)); ! ! // This CM corresponds to the CAIRO_FORMAT_RGB24 type in Cairo static ColorModel cairoCM_opaque = new DirectColorModel(24, 0x00FF0000, 0x0000FF00, 0x000000FF); --- 93,100 ---- 0xFF000000, true, Buffers.smallestAppropriateTransferType(32)); ! ! // This CM corresponds to the CAIRO_FORMAT_RGB24 type in Cairo static ColorModel cairoCM_opaque = new DirectColorModel(24, 0x00FF0000, 0x0000FF00, 0x000000FF); *************** public class CairoSurface extends Writab *** 112,118 **** private native void destroy(long surfacePointer, int[] buf); /** ! * Draws this image to a given CairoGraphics context, * with an affine transform given by i2u. */ public native void nativeDrawSurface(long surfacePointer, long contextPointer, --- 112,118 ---- private native void destroy(long surfacePointer, int[] buf); /** ! * Draws this image to a given CairoGraphics context, * with an affine transform given by i2u. */ public native void nativeDrawSurface(long surfacePointer, long contextPointer, *************** public class CairoSurface extends Writab *** 122,144 **** /** * Synchronizes the image's data buffers, copying any changes made in the * Java array into the native array. ! * * This method should only be called if (sharedBuffers == false). */ native void syncNativeToJava(long surfacePointer, int[] buffer); ! /** * Synchronizes the image's data buffers, copying any changes made in the * native array into the Java array. ! * * This method should only be called if (sharedBuffers == false). */ native void syncJavaToNative(long surfacePointer, int[] buffer); ! /** * Return the buffer, with the sample values of each pixel reversed ! * (ie, in ABGR instead of ARGB). ! * * @return A pointer to a flipped buffer. The memory is allocated in native * code, and must be explicitly freed when it is no longer needed. */ --- 122,144 ---- /** * Synchronizes the image's data buffers, copying any changes made in the * Java array into the native array. ! * * This method should only be called if (sharedBuffers == false). */ native void syncNativeToJava(long surfacePointer, int[] buffer); ! /** * Synchronizes the image's data buffers, copying any changes made in the * native array into the Java array. ! * * This method should only be called if (sharedBuffers == false). */ native void syncJavaToNative(long surfacePointer, int[] buffer); ! /** * Return the buffer, with the sample values of each pixel reversed ! * (ie, in ABGR instead of ARGB). ! * * @return A pointer to a flipped buffer. The memory is allocated in native * code, and must be explicitly freed when it is no longer needed. */ *************** public class CairoSurface extends Writab *** 146,166 **** /** * Create a cairo_surface_t with specified width and height. ! * The format will be ARGB32 with premultiplied alpha and native bit * and word ordering. */ public CairoSurface(int width, int height) { this(0, 0, width, height); } ! public CairoSurface(int x, int y, int width, int height) { super(createCairoSampleModel(width, height), null, new Point(x, y)); if(width <= 0 || height <= 0) throw new IllegalArgumentException("Image must be at least 1x1 pixels."); ! this.width = width; this.height = height; dataBuffer = new DataBufferInt(width * height); --- 146,166 ---- /** * Create a cairo_surface_t with specified width and height. ! * The format will be ARGB32 with premultiplied alpha and native bit * and word ordering. */ public CairoSurface(int width, int height) { this(0, 0, width, height); } ! public CairoSurface(int x, int y, int width, int height) { super(createCairoSampleModel(width, height), null, new Point(x, y)); if(width <= 0 || height <= 0) throw new IllegalArgumentException("Image must be at least 1x1 pixels."); ! this.width = width; this.height = height; dataBuffer = new DataBufferInt(width * height); *************** public class CairoSurface extends Writab *** 169,175 **** if(surfacePointer == 0) throw new Error("Could not allocate bitmap."); } ! /** * Create a Cairo Surface that is a subimage of another Cairo Surface */ --- 169,175 ---- if(surfacePointer == 0) throw new Error("Could not allocate bitmap."); } ! /** * Create a Cairo Surface that is a subimage of another Cairo Surface */ *************** public class CairoSurface extends Writab *** 177,183 **** Point origin) { super(sm, parent.dataBuffer, bounds, origin, parent); ! this.width = super.width; this.height = super.height; this.surfacePointer = parent.surfacePointer; --- 177,183 ---- Point origin) { super(sm, parent.dataBuffer, bounds, origin, parent); ! this.width = super.width; this.height = super.height; this.surfacePointer = parent.surfacePointer; *************** public class CairoSurface extends Writab *** 258,267 **** { return new GtkImage(width, height, getFlippedBuffer(surfacePointer)); } ! /** * Convenience method to quickly grab the data array backing this Raster. ! * * @return The array behind the databuffer. */ public int[] getData() --- 258,267 ---- { return new GtkImage(width, height, getFlippedBuffer(surfacePointer)); } ! /** * Convenience method to quickly grab the data array backing this Raster. ! * * @return The array behind the databuffer. */ public int[] getData() *************** public class CairoSurface extends Writab *** 271,286 **** /** * Returns a BufferedImage backed by a Cairo surface. ! */ public static BufferedImage getBufferedImage(int width, int height) { return getBufferedImage(new CairoSurface(width, height)); } /** ! * Returns a BufferedImage backed by a Cairo surface, * created from a GtkImage. ! */ public static BufferedImage getBufferedImage(GtkImage image) { return getBufferedImage(new CairoSurface(image)); --- 271,286 ---- /** * Returns a BufferedImage backed by a Cairo surface. ! */ public static BufferedImage getBufferedImage(int width, int height) { return getBufferedImage(new CairoSurface(width, height)); } /** ! * Returns a BufferedImage backed by a Cairo surface, * created from a GtkImage. ! */ public static BufferedImage getBufferedImage(GtkImage image) { return getBufferedImage(new CairoSurface(image)); *************** public class CairoSurface extends Writab *** 288,294 **** /** * Returns a BufferedImage backed by a Cairo surface. ! */ public static BufferedImage getBufferedImage(CairoSurface surface) { return new BufferedImage(cairoColorModel, surface, --- 288,294 ---- /** * Returns a BufferedImage backed by a Cairo surface. ! */ public static BufferedImage getBufferedImage(CairoSurface surface) { return new BufferedImage(cairoColorModel, surface, *************** public class CairoSurface extends Writab *** 302,308 **** public Graphics2D getGraphics() { return new CairoSurfaceGraphics(this); ! } ///// Methods used by CairoSurfaceGraphics ///// /** --- 302,308 ---- public Graphics2D getGraphics() { return new CairoSurfaceGraphics(this); ! } ///// Methods used by CairoSurfaceGraphics ///// /** *************** public class CairoSurface extends Writab *** 319,325 **** /** * Copy a portion of this surface to another area on the surface. The given * parameters must be within bounds - count on a segfault otherwise. ! * * @param x The x coordinate of the area to be copied from. * @param y The y coordinate of the area to be copied from. * @param width The width of the area to be copied. --- 319,325 ---- /** * Copy a portion of this surface to another area on the surface. The given * parameters must be within bounds - count on a segfault otherwise. ! * * @param x The x coordinate of the area to be copied from. * @param y The y coordinate of the area to be copied from. * @param width The width of the area to be copied. *************** public class CairoSurface extends Writab *** 336,342 **** native void copyAreaNative2(long surfacePointer, int x, int y, int width, int height, int dx, int dy, int stride); ! /** * Creates a SampleModel that matches Cairo's native format */ --- 336,342 ---- native void copyAreaNative2(long surfacePointer, int x, int y, int width, int height, int dx, int dy, int stride); ! /** * Creates a SampleModel that matches Cairo's native format */ *************** public class CairoSurface extends Writab *** 344,355 **** { return new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT, w, h, new int[]{0x00FF0000, 0x0000FF00, ! 0x000000FF, 0xFF000000}); } ! /** * Returns whether this ColorModel is compatible with Cairo's native types. ! * * @param cm The color model to check. * @return Whether it is compatible. */ --- 344,355 ---- { return new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT, w, h, new int[]{0x00FF0000, 0x0000FF00, ! 0x000000FF, 0xFF000000}); } ! /** * Returns whether this ColorModel is compatible with Cairo's native types. ! * * @param cm The color model to check. * @return Whether it is compatible. */ *************** public class CairoSurface extends Writab *** 358,367 **** return (cm.equals(cairoCM_pre) || cm.equals(cairoCM_opaque) || cm.equals(cairoColorModel)); } ! /** * Returns whether this SampleModel is compatible with Cairo's native types. ! * * @param sm The sample model to check. * @return Whether it is compatible. */ --- 358,367 ---- return (cm.equals(cairoCM_pre) || cm.equals(cairoCM_opaque) || cm.equals(cairoColorModel)); } ! /** * Returns whether this SampleModel is compatible with Cairo's native types. ! * * @param sm The sample model to check. * @return Whether it is compatible. */ *************** public class CairoSurface extends Writab *** 381,403 **** return createWritableChild(parentX, parentY, width, height, childMinX, childMinY, bandList); } ! public WritableRaster createCompatibleWritableRaster() { return new CairoSurface(width, height); } ! public WritableRaster createCompatibleWritableRaster (int x, int y, int w, int h) { return new CairoSurface(x, y, w, h); } ! public Raster createTranslatedChild(int childMinX, int childMinY) { return createWritableTranslatedChild(childMinX, childMinY); } ! public WritableRaster createWritableChild(int parentX, int parentY, int w, int h, int childMinX, int childMinY, int[] bandList) --- 381,403 ---- return createWritableChild(parentX, parentY, width, height, childMinX, childMinY, bandList); } ! public WritableRaster createCompatibleWritableRaster() { return new CairoSurface(width, height); } ! public WritableRaster createCompatibleWritableRaster (int x, int y, int w, int h) { return new CairoSurface(x, y, w, h); } ! public Raster createTranslatedChild(int childMinX, int childMinY) { return createWritableTranslatedChild(childMinX, childMinY); } ! public WritableRaster createWritableChild(int parentX, int parentY, int w, int h, int childMinX, int childMinY, int[] bandList) *************** public class CairoSurface extends Writab *** 405,411 **** if (parentX < minX || parentX + w > minX + width || parentY < minY || parentY + h > minY + height) throw new RasterFormatException("Child raster extends beyond parent"); ! SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); --- 405,411 ---- if (parentX < minX || parentX + w > minX + width || parentY < minY || parentY + h > minY + height) throw new RasterFormatException("Child raster extends beyond parent"); ! SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); *************** public class CairoSurface extends Writab *** 415,426 **** new Point(sampleModelTranslateX + childMinX - parentX, sampleModelTranslateY + childMinY - parentY)); } ! public WritableRaster createWritableTranslatedChild(int x, int y) { int tcx = sampleModelTranslateX - minX + x; int tcy = sampleModelTranslateY - minY + y; ! return new CairoSurface(sampleModel, this, new Rectangle(x, y, width, height), new Point(tcx, tcy)); --- 415,426 ---- new Point(sampleModelTranslateX + childMinX - parentX, sampleModelTranslateY + childMinY - parentY)); } ! public WritableRaster createWritableTranslatedChild(int x, int y) { int tcx = sampleModelTranslateX - minX + x; int tcy = sampleModelTranslateY - minY + y; ! return new CairoSurface(sampleModel, this, new Rectangle(x, y, width, height), new Point(tcx, tcy)); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java Tue Jan 11 19:46:05 2011 *************** public class CairoSurfaceGraphics extend *** 67,73 **** protected CairoSurface surface; private BufferedImage buffer; private long cairo_t; ! /** * Create a graphics context from a cairo surface */ --- 67,73 ---- protected CairoSurface surface; private BufferedImage buffer; private long cairo_t; ! /** * Create a graphics context from a cairo surface */ *************** public class CairoSurfaceGraphics extend *** 82,105 **** /** * Creates another context from a surface. * Used by create(). ! */ private CairoSurfaceGraphics(CairoSurfaceGraphics copyFrom) { surface = copyFrom.surface; cairo_t = surface.newCairoContext(); copy( copyFrom, cairo_t ); } ! public Graphics create() { return new CairoSurfaceGraphics(this); } ! public GraphicsConfiguration getDeviceConfiguration() { return GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(); } ! protected Rectangle2D getRealBounds() { return new Rectangle2D.Double(0.0, 0.0, surface.width, surface.height); --- 82,105 ---- /** * Creates another context from a surface. * Used by create(). ! */ private CairoSurfaceGraphics(CairoSurfaceGraphics copyFrom) { surface = copyFrom.surface; cairo_t = surface.newCairoContext(); copy( copyFrom, cairo_t ); } ! public Graphics create() { return new CairoSurfaceGraphics(this); } ! public GraphicsConfiguration getDeviceConfiguration() { return GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(); } ! protected Rectangle2D getRealBounds() { return new Rectangle2D.Double(0.0, 0.0, surface.width, surface.height); *************** public class CairoSurfaceGraphics extend *** 109,115 **** { surface.copyAreaNative(x, y, width, height, dx, dy, surface.width); } ! /** * Overloaded methods that do actual drawing need to account for custom * composites --- 109,115 ---- { surface.copyAreaNative(x, y, width, height, dx, dy, surface.width); } ! /** * Overloaded methods that do actual drawing need to account for custom * composites *************** public class CairoSurfaceGraphics extend *** 118,124 **** { if (!surface.sharedBuffer) surface.syncJavaToNative(surface.surfacePointer, surface.getData()); ! // Find total bounds of shape Rectangle r = findStrokedBounds(s); if (shiftDrawCalls) --- 118,124 ---- { if (!surface.sharedBuffer) surface.syncJavaToNative(surface.surfacePointer, surface.getData()); ! // Find total bounds of shape Rectangle r = findStrokedBounds(s); if (shiftDrawCalls) *************** public class CairoSurfaceGraphics extend *** 126,149 **** r.width++; r.height++; } ! // Do the drawing if (comp == null || comp instanceof AlphaComposite) super.draw(s); ! else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setStroke(this.getStroke()); g2d.setColor(this.getColor()); g2d.setTransform(transform); g2d.draw(s); ! drawComposite(r.getBounds2D(), null); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); } --- 126,149 ---- r.width++; r.height++; } ! // Do the drawing if (comp == null || comp instanceof AlphaComposite) super.draw(s); ! else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setStroke(this.getStroke()); g2d.setColor(this.getColor()); g2d.setTransform(transform); g2d.draw(s); ! drawComposite(r.getBounds2D(), null); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); } *************** public class CairoSurfaceGraphics extend *** 152,174 **** { if (!surface.sharedBuffer) surface.syncJavaToNative(surface.surfacePointer, surface.getData()); ! if (comp == null || comp instanceof AlphaComposite) super.fill(s); ! else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.setTransform(transform); g2d.fill(s); ! drawComposite(s.getBounds2D(), null); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); } --- 152,174 ---- { if (!surface.sharedBuffer) surface.syncJavaToNative(surface.surfacePointer, surface.getData()); ! if (comp == null || comp instanceof AlphaComposite) super.fill(s); ! else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.setTransform(transform); g2d.fill(s); ! drawComposite(s.getBounds2D(), null); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); } *************** public class CairoSurfaceGraphics extend *** 177,186 **** { if (!surface.sharedBuffer) surface.syncJavaToNative(surface.surfacePointer, surface.getData()); ! if (comp == null || comp instanceof AlphaComposite) super.drawRenderedImage(image, xform); ! else { createBuffer(); --- 177,186 ---- { if (!surface.sharedBuffer) surface.syncJavaToNative(surface.surfacePointer, surface.getData()); ! if (comp == null || comp instanceof AlphaComposite) super.drawRenderedImage(image, xform); ! else { createBuffer(); *************** public class CairoSurfaceGraphics extend *** 189,198 **** g2d.setRenderingHints(this.getRenderingHints()); g2d.setTransform(transform); g2d.drawRenderedImage(image, xform); ! drawComposite(buffer.getRaster().getBounds(), null); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); } --- 189,198 ---- g2d.setRenderingHints(this.getRenderingHints()); g2d.setTransform(transform); g2d.drawRenderedImage(image, xform); ! drawComposite(buffer.getRaster().getBounds(), null); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); } *************** public class CairoSurfaceGraphics extend *** 206,212 **** boolean ret; if (comp == null || comp instanceof AlphaComposite) ret = super.drawImage(img, xform, bgcolor, obs); ! else { // Get buffered image of source --- 206,212 ---- boolean ret; if (comp == null || comp instanceof AlphaComposite) ret = super.drawImage(img, xform, bgcolor, obs); ! else { // Get buffered image of source *************** public class CairoSurfaceGraphics extend *** 218,233 **** img = Toolkit.getDefaultToolkit().createImage(source); } BufferedImage bImg = (BufferedImage) img; ! // Find translated bounds Rectangle2D bounds = new Rectangle(bImg.getMinX(), bImg.getMinY(), bImg.getWidth(), bImg.getHeight()); if (xform != null) bounds = getTransformedBounds(bounds, xform); ! // Create buffer and draw image createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawImage(img, xform, obs); --- 218,233 ---- img = Toolkit.getDefaultToolkit().createImage(source); } BufferedImage bImg = (BufferedImage) img; ! // Find translated bounds Rectangle2D bounds = new Rectangle(bImg.getMinX(), bImg.getMinY(), bImg.getWidth(), bImg.getHeight()); if (xform != null) bounds = getTransformedBounds(bounds, xform); ! // Create buffer and draw image createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawImage(img, xform, obs); *************** public class CairoSurfaceGraphics extend *** 235,244 **** // Perform compositing ret = drawComposite(bounds, obs); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); ! return ret; } --- 235,244 ---- // Perform compositing ret = drawComposite(bounds, obs); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); ! return ret; } *************** public class CairoSurfaceGraphics extend *** 246,255 **** { if (!surface.sharedBuffer) surface.syncJavaToNative(surface.surfacePointer, surface.getData()); ! if (comp == null || comp instanceof AlphaComposite) super.drawGlyphVector(gv, x, y); ! else { createBuffer(); --- 246,255 ---- { if (!surface.sharedBuffer) surface.syncJavaToNative(surface.surfacePointer, surface.getData()); ! if (comp == null || comp instanceof AlphaComposite) super.drawGlyphVector(gv, x, y); ! else { createBuffer(); *************** public class CairoSurfaceGraphics extend *** 258,274 **** g2d.setPaint(this.getPaint()); g2d.setStroke(this.getStroke()); g2d.drawGlyphVector(gv, x, y); ! Rectangle2D bounds = gv.getLogicalBounds(); bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), bounds.getWidth(), bounds.getHeight()); drawComposite(bounds, null); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); } ! private boolean drawComposite(Rectangle2D bounds, ImageObserver observer) { // Find bounds in device space --- 258,274 ---- g2d.setPaint(this.getPaint()); g2d.setStroke(this.getStroke()); g2d.drawGlyphVector(gv, x, y); ! Rectangle2D bounds = gv.getLogicalBounds(); bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), bounds.getWidth(), bounds.getHeight()); drawComposite(bounds, null); } ! if (!surface.sharedBuffer) surface.syncNativeToJava(surface.surfacePointer, surface.getData()); } ! private boolean drawComposite(Rectangle2D bounds, ImageObserver observer) { // Find bounds in device space *************** public class CairoSurfaceGraphics extend *** 280,286 **** devClip = new Rectangle(buffer.getMinX(), buffer.getMinY(), buffer.getWidth(), buffer.getHeight()); Rectangle2D.intersect(bounds, devClip, bounds); ! // Round bounds as needed, but be careful in our rounding // (otherwise it may leave unpainted stripes) double x = bounds.getX(); --- 280,286 ---- devClip = new Rectangle(buffer.getMinX(), buffer.getMinY(), buffer.getWidth(), buffer.getHeight()); Rectangle2D.intersect(bounds, devClip, bounds); ! // Round bounds as needed, but be careful in our rounding // (otherwise it may leave unpainted stripes) double x = bounds.getX(); *************** public class CairoSurfaceGraphics extend *** 290,296 **** x = Math.round(x); y = Math.round(y); bounds.setRect(x, y, Math.round(maxX - x), Math.round(maxY - y)); ! // Find subimage of internal buffer for updating BufferedImage buffer2 = buffer; if (!bounds.equals(buffer2.getRaster().getBounds())) --- 290,296 ---- x = Math.round(x); y = Math.round(y); bounds.setRect(x, y, Math.round(maxX - x), Math.round(maxY - y)); ! // Find subimage of internal buffer for updating BufferedImage buffer2 = buffer; if (!bounds.equals(buffer2.getRaster().getBounds())) *************** public class CairoSurfaceGraphics extend *** 307,318 **** // Perform actual composite operation compCtx.compose(buffer2.getRaster(), current.getRaster(), buffer2.getRaster()); ! // Set cairo's composite to direct SRC, since we've already done our own ! // compositing Composite oldcomp = comp; setComposite(AlphaComposite.Src); ! // This MUST call directly into the "action" method in CairoGraphics2D, // not one of the wrappers, to ensure that the composite isn't processed // more than once! --- 307,318 ---- // Perform actual composite operation compCtx.compose(buffer2.getRaster(), current.getRaster(), buffer2.getRaster()); ! // Set cairo's composite to direct SRC, since we've already done our own ! // compositing Composite oldcomp = comp; setComposite(AlphaComposite.Src); ! // This MUST call directly into the "action" method in CairoGraphics2D, // not one of the wrappers, to ensure that the composite isn't processed // more than once! *************** public class CairoSurfaceGraphics extend *** 324,330 **** updateColor(); return rv; } ! private void createBuffer() { if (buffer == null) --- 324,330 ---- updateColor(); return rv; } ! private void createBuffer() { if (buffer == null) *************** public class CairoSurfaceGraphics extend *** 337,353 **** else { Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); ! g2d.setBackground(new Color(0,0,0,0)); g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } } ! protected ColorModel getNativeCM() { return CairoSurface.cairoCM_pre; } ! protected ColorModel getBufferCM() { return CairoSurface.cairoColorModel; --- 337,353 ---- else { Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); ! g2d.setBackground(new Color(0,0,0,0)); g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } } ! protected ColorModel getNativeCM() { return CairoSurface.cairoCM_pre; } ! protected ColorModel getBufferCM() { return CairoSurface.cairoColorModel; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java Tue Jan 11 19:46:05 2011 *************** public class ComponentGraphics extends C *** 83,89 **** ComponentGraphics() { } ! private ComponentGraphics(GtkComponentPeer component) { this.component = component; --- 83,89 ---- ComponentGraphics() { } ! private ComponentGraphics(GtkComponentPeer component) { this.component = component; *************** public class ComponentGraphics extends C *** 114,120 **** /** * Obtain and hold a GDK lock, which is required for all drawing operations * in this graphics context (since it is backed by an X surface). ! * * This method causes the GDK locking behaviour to be re-entrant. No race * conditions are caused since a ThreadLocal is used and each thread has its * own lock counter. --- 114,120 ---- /** * Obtain and hold a GDK lock, which is required for all drawing operations * in this graphics context (since it is backed by an X surface). ! * * This method causes the GDK locking behaviour to be re-entrant. No race * conditions are caused since a ThreadLocal is used and each thread has its * own lock counter. *************** public class ComponentGraphics extends C *** 176,186 **** */ private static native Pointer nativeGrab(GtkComponentPeer component); ! private native void copyAreaNative(GtkComponentPeer component, int x, int y, int width, int height, int dx, int dy); private native void drawVolatile(GtkComponentPeer component, ! long vimg, int x, int y, int width, int height, int cx, int cy, int cw, int ch); --- 176,186 ---- */ private static native Pointer nativeGrab(GtkComponentPeer component); ! private native void copyAreaNative(GtkComponentPeer component, int x, int y, int width, int height, int dx, int dy); private native void drawVolatile(GtkComponentPeer component, ! long vimg, int x, int y, int width, int height, int cx, int cy, int cw, int ch); *************** public class ComponentGraphics extends C *** 193,199 **** } /** ! * Returns a Graphics2D object for a component, either an instance of this * class (if xrender is supported), or a context which copies. */ public static Graphics2D getComponentGraphics(GtkComponentPeer component) --- 193,199 ---- } /** ! * Returns a Graphics2D object for a component, either an instance of this * class (if xrender is supported), or a context which copies. */ public static Graphics2D getComponentGraphics(GtkComponentPeer component) *************** public class ComponentGraphics extends C *** 214,220 **** { return new ComponentGraphics(this); } ! protected Rectangle2D getRealBounds() { return component.awtComponent.getBounds(); --- 214,220 ---- { return new ComponentGraphics(this); } ! protected Rectangle2D getRealBounds() { return component.awtComponent.getBounds(); *************** public class ComponentGraphics extends C *** 226,248 **** } /** ! * Overloaded methods that do actual drawing need to enter the gdk threads * and also do certain things before and after. */ public void draw(Shape s) { if (comp == null || comp instanceof AlphaComposite) super.draw(s); ! else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setStroke(this.getStroke()); g2d.setColor(this.getColor()); g2d.draw(s); ! drawComposite(s.getBounds2D(), null); } } --- 226,248 ---- } /** ! * Overloaded methods that do actual drawing need to enter the gdk threads * and also do certain things before and after. */ public void draw(Shape s) { if (comp == null || comp instanceof AlphaComposite) super.draw(s); ! else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setStroke(this.getStroke()); g2d.setColor(this.getColor()); g2d.draw(s); ! drawComposite(s.getBounds2D(), null); } } *************** public class ComponentGraphics extends C *** 251,266 **** { if (comp == null || comp instanceof AlphaComposite) super.fill(s); ! else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.fill(s); ! drawComposite(s.getBounds2D(), null); } } --- 251,266 ---- { if (comp == null || comp instanceof AlphaComposite) super.fill(s); ! else { createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.fill(s); ! drawComposite(s.getBounds2D(), null); } } *************** public class ComponentGraphics extends C *** 269,275 **** { if (comp == null || comp instanceof AlphaComposite) super.drawRenderedImage(image, xform); ! else { createBuffer(); --- 269,275 ---- { if (comp == null || comp instanceof AlphaComposite) super.drawRenderedImage(image, xform); ! else { createBuffer(); *************** public class ComponentGraphics extends C *** 277,294 **** Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawRenderedImage(image, xform); ! drawComposite(buffer.getRaster().getBounds(), null); } } protected boolean drawImage(Image img, AffineTransform xform, ! Color bgcolor, ImageObserver obs) { boolean rv; if (comp == null || comp instanceof AlphaComposite) rv = super.drawImage(img, xform, bgcolor, obs); ! else { // Get buffered image of source --- 277,294 ---- Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawRenderedImage(image, xform); ! drawComposite(buffer.getRaster().getBounds(), null); } } protected boolean drawImage(Image img, AffineTransform xform, ! Color bgcolor, ImageObserver obs) { boolean rv; if (comp == null || comp instanceof AlphaComposite) rv = super.drawImage(img, xform, bgcolor, obs); ! else { // Get buffered image of source *************** public class ComponentGraphics extends C *** 300,306 **** img = Toolkit.getDefaultToolkit().createImage(source); } BufferedImage bImg = (BufferedImage) img; ! // Find translated bounds Point2D origin = new Point2D.Double(bImg.getMinX(), bImg.getMinY()); Point2D pt = new Point2D.Double(bImg.getWidth() + bImg.getMinX(), --- 300,306 ---- img = Toolkit.getDefaultToolkit().createImage(source); } BufferedImage bImg = (BufferedImage) img; ! // Find translated bounds Point2D origin = new Point2D.Double(bImg.getMinX(), bImg.getMinY()); Point2D pt = new Point2D.Double(bImg.getWidth() + bImg.getMinX(), *************** public class ComponentGraphics extends C *** 310,319 **** origin = xform.transform(origin, origin); pt = xform.transform(pt, pt); } ! // Create buffer and draw image createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawImage(img, xform, obs); --- 310,319 ---- origin = xform.transform(origin, origin); pt = xform.transform(pt, pt); } ! // Create buffer and draw image createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawImage(img, xform, obs); *************** public class ComponentGraphics extends C *** 331,337 **** { if (comp == null || comp instanceof AlphaComposite) super.drawGlyphVector(gv, x, y); ! else { createBuffer(); --- 331,337 ---- { if (comp == null || comp instanceof AlphaComposite) super.drawGlyphVector(gv, x, y); ! else { createBuffer(); *************** public class ComponentGraphics extends C *** 340,353 **** g2d.setPaint(this.getPaint()); g2d.setStroke(this.getStroke()); g2d.drawGlyphVector(gv, x, y); ! Rectangle2D bounds = gv.getLogicalBounds(); bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), bounds.getWidth(), bounds.getHeight()); drawComposite(bounds, null); } } ! public boolean drawImage(Image img, int x, int y, ImageObserver observer) { // If it is a GtkVolatileImage with an "easy" transform then --- 340,353 ---- g2d.setPaint(this.getPaint()); g2d.setStroke(this.getStroke()); g2d.drawGlyphVector(gv, x, y); ! Rectangle2D bounds = gv.getLogicalBounds(); bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), bounds.getWidth(), bounds.getHeight()); drawComposite(bounds, null); } } ! public boolean drawImage(Image img, int x, int y, ImageObserver observer) { // If it is a GtkVolatileImage with an "easy" transform then *************** public class ComponentGraphics extends C *** 390,396 **** } return super.drawImage(bimg, x, y, observer); } ! public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { --- 390,396 ---- } return super.drawImage(bimg, x, y, observer); } ! public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { *************** public class ComponentGraphics extends C *** 446,486 **** clip = new Rectangle(buffer.getMinX(), buffer.getMinY(), buffer.getWidth(), buffer.getHeight()); Rectangle2D.intersect(bounds, clip, bounds); ! BufferedImage buffer2 = buffer; if (!bounds.equals(buffer2.getRaster().getBounds())) buffer2 = buffer2.getSubimage((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight()); ! // Get destination clip to bounds double[] points = new double[] {bounds.getX(), bounds.getY(), bounds.getMaxX(), bounds.getMaxY()}; transform.transform(points, 0, points, 0, 2); ! Rectangle2D deviceBounds = new Rectangle2D.Double(points[0], points[1], points[2] - points[0], points[3] - points[1]); ! Rectangle2D.intersect(deviceBounds, this.getClipInDevSpace(), deviceBounds); ! // Get current image on the component GtkImage img = grab(component); Graphics gr = componentBuffer.createGraphics(); gr.drawImage(img, 0, 0, null); gr.dispose(); ! BufferedImage cBuffer = componentBuffer; if (!deviceBounds.equals(cBuffer.getRaster().getBounds())) cBuffer = cBuffer.getSubimage((int)deviceBounds.getX(), (int)deviceBounds.getY(), (int)deviceBounds.getWidth(), (int)deviceBounds.getHeight()); ! // Perform actual composite operation compCtx.compose(buffer2.getRaster(), cBuffer.getRaster(), cBuffer.getRaster()); ! // This MUST call directly into the "action" method in CairoGraphics2D, // not one of the wrappers, to ensure that the composite isn't processed // more than once! --- 446,486 ---- clip = new Rectangle(buffer.getMinX(), buffer.getMinY(), buffer.getWidth(), buffer.getHeight()); Rectangle2D.intersect(bounds, clip, bounds); ! BufferedImage buffer2 = buffer; if (!bounds.equals(buffer2.getRaster().getBounds())) buffer2 = buffer2.getSubimage((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight()); ! // Get destination clip to bounds double[] points = new double[] {bounds.getX(), bounds.getY(), bounds.getMaxX(), bounds.getMaxY()}; transform.transform(points, 0, points, 0, 2); ! Rectangle2D deviceBounds = new Rectangle2D.Double(points[0], points[1], points[2] - points[0], points[3] - points[1]); ! Rectangle2D.intersect(deviceBounds, this.getClipInDevSpace(), deviceBounds); ! // Get current image on the component GtkImage img = grab(component); Graphics gr = componentBuffer.createGraphics(); gr.drawImage(img, 0, 0, null); gr.dispose(); ! BufferedImage cBuffer = componentBuffer; if (!deviceBounds.equals(cBuffer.getRaster().getBounds())) cBuffer = cBuffer.getSubimage((int)deviceBounds.getX(), (int)deviceBounds.getY(), (int)deviceBounds.getWidth(), (int)deviceBounds.getHeight()); ! // Perform actual composite operation compCtx.compose(buffer2.getRaster(), cBuffer.getRaster(), cBuffer.getRaster()); ! // This MUST call directly into the "action" method in CairoGraphics2D, // not one of the wrappers, to ensure that the composite isn't processed // more than once! *************** public class ComponentGraphics extends C *** 490,496 **** null, null); return rv; } ! private void createBuffer() { if (buffer == null) --- 490,496 ---- null, null); return rv; } ! private void createBuffer() { if (buffer == null) *************** public class ComponentGraphics extends C *** 499,505 **** rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(component.awtComponent.getWidth(), component.awtComponent.getHeight()), new Point(0,0)); ! buffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), new Hashtable()); --- 499,505 ---- rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(component.awtComponent.getWidth(), component.awtComponent.getHeight()), new Point(0,0)); ! buffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), new Hashtable()); *************** public class ComponentGraphics extends C *** 507,566 **** else { Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); ! g2d.setBackground(new Color(0,0,0,0)); g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } ! if (componentBuffer == null) { WritableRaster rst; rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(component.awtComponent.getWidth(), component.awtComponent.getHeight()), new Point(0,0)); ! componentBuffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), new Hashtable()); } } ! protected ColorModel getNativeCM() { return GtkVolatileImage.gdkColorModel; } ! /* --- START OVERRIDDEN NATIVE METHODS ---- * All native methods in CairoGraphics2D should be overridden here and * enclosed in locks, since the cairo surface is backed by an X surface * in this graphics context and the X surface requires external locking. ! * * We lock everything "just in case", since it's difficult to know which * calls are and aren't thread-safe. Overriding and locking the native ! * methods allows superclass code in CairoGraphics2D to execute properly, * without the need to override every single method. ! * * CAVEAT: if native code obtains a lock (using gdk_threads_enter(), not the * lock() method provided here) and then calls back into Java and one of these * methods ends up being called, we will deadlock. The lock is only reentrant ! * when called via our lock() method. */ ! /* These methods are already locked in the superclass CairoGraphics2D * so they do not need to be overridden: ! * * public void disposeNative * * protected void cairoDrawGlyphVector ! * * protected void cairoSetFont */ ! @Override protected long init(long pointer) { long ret; ! try { lock(); --- 507,566 ---- else { Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); ! g2d.setBackground(new Color(0,0,0,0)); g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } ! if (componentBuffer == null) { WritableRaster rst; rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(component.awtComponent.getWidth(), component.awtComponent.getHeight()), new Point(0,0)); ! componentBuffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), new Hashtable()); } } ! protected ColorModel getNativeCM() { return GtkVolatileImage.gdkColorModel; } ! /* --- START OVERRIDDEN NATIVE METHODS ---- * All native methods in CairoGraphics2D should be overridden here and * enclosed in locks, since the cairo surface is backed by an X surface * in this graphics context and the X surface requires external locking. ! * * We lock everything "just in case", since it's difficult to know which * calls are and aren't thread-safe. Overriding and locking the native ! * methods allows superclass code in CairoGraphics2D to execute properly, * without the need to override every single method. ! * * CAVEAT: if native code obtains a lock (using gdk_threads_enter(), not the * lock() method provided here) and then calls back into Java and one of these * methods ends up being called, we will deadlock. The lock is only reentrant ! * when called via our lock() method. */ ! /* These methods are already locked in the superclass CairoGraphics2D * so they do not need to be overridden: ! * * public void disposeNative * * protected void cairoDrawGlyphVector ! * * protected void cairoSetFont */ ! @Override protected long init(long pointer) { long ret; ! try { lock(); *************** public class ComponentGraphics extends C *** 570,579 **** { unlock(); } ! return ret; } ! @Override protected void drawPixels(long pointer, int[] pixels, int w, int h, int stride, double[] i2u, double alpha, --- 570,579 ---- { unlock(); } ! return ret; } ! @Override protected void drawPixels(long pointer, int[] pixels, int w, int h, int stride, double[] i2u, double alpha, *************** public class ComponentGraphics extends C *** 590,599 **** unlock(); } } ! @Override ! protected void setGradient(long pointer, double x1, double y1, ! double x2, double y2, int r1, int g1, int b1, int a1, int r2, int g2, int b2, int a2, boolean cyclic) { --- 590,599 ---- unlock(); } } ! @Override ! protected void setGradient(long pointer, double x1, double y1, ! double x2, double y2, int r1, int g1, int b1, int a1, int r2, int g2, int b2, int a2, boolean cyclic) { *************** public class ComponentGraphics extends C *** 608,614 **** unlock(); } } ! @Override protected void setPaintPixels(long pointer, int[] pixels, int w, int h, int stride, boolean repeat, int x, int y) --- 608,614 ---- unlock(); } } ! @Override protected void setPaintPixels(long pointer, int[] pixels, int w, int h, int stride, boolean repeat, int x, int y) *************** public class ComponentGraphics extends C *** 623,629 **** unlock(); } } ! @Override protected void cairoSetMatrix(long pointer, double[] m) { --- 623,629 ---- unlock(); } } ! @Override protected void cairoSetMatrix(long pointer, double[] m) { *************** public class ComponentGraphics extends C *** 637,643 **** unlock(); } } ! @Override protected void cairoScale(long pointer, double x, double y) { --- 637,643 ---- unlock(); } } ! @Override protected void cairoScale(long pointer, double x, double y) { *************** public class ComponentGraphics extends C *** 651,657 **** unlock(); } } ! @Override protected void cairoSetOperator(long pointer, int cairoOperator) { --- 651,657 ---- unlock(); } } ! @Override protected void cairoSetOperator(long pointer, int cairoOperator) { *************** public class ComponentGraphics extends C *** 665,671 **** unlock(); } } ! @Override protected void cairoSetRGBAColor(long pointer, double red, double green, double blue, double alpha) --- 665,671 ---- unlock(); } } ! @Override protected void cairoSetRGBAColor(long pointer, double red, double green, double blue, double alpha) *************** public class ComponentGraphics extends C *** 680,686 **** unlock(); } } ! @Override protected void cairoSetFillRule(long pointer, int cairoFillRule) { --- 680,686 ---- unlock(); } } ! @Override protected void cairoSetFillRule(long pointer, int cairoFillRule) { *************** public class ComponentGraphics extends C *** 694,700 **** unlock(); } } ! @Override protected void cairoSetLine(long pointer, double width, int cap, int join, double miterLimit) --- 694,700 ---- unlock(); } } ! @Override protected void cairoSetLine(long pointer, double width, int cap, int join, double miterLimit) *************** public class ComponentGraphics extends C *** 709,717 **** unlock(); } } ! @Override ! protected void cairoSetDash(long pointer, double[] dashes, int ndash, double offset) { try --- 709,717 ---- unlock(); } } ! @Override ! protected void cairoSetDash(long pointer, double[] dashes, int ndash, double offset) { try *************** public class ComponentGraphics extends C *** 739,747 **** unlock(); } } ! @Override ! protected void cairoArc(long pointer, double x, double y, double radius, double angle1, double angle2) { try --- 739,747 ---- unlock(); } } ! @Override ! protected void cairoArc(long pointer, double x, double y, double radius, double angle1, double angle2) { try *************** public class ComponentGraphics extends C *** 754,760 **** unlock(); } } ! @Override protected void cairoSave(long pointer) { --- 754,760 ---- unlock(); } } ! @Override protected void cairoSave(long pointer) { *************** public class ComponentGraphics extends C *** 768,774 **** unlock(); } } ! @Override protected void cairoRestore(long pointer) { --- 768,774 ---- unlock(); } } ! @Override protected void cairoRestore(long pointer) { *************** public class ComponentGraphics extends C *** 782,788 **** unlock(); } } ! @Override protected void cairoNewPath(long pointer) { --- 782,788 ---- unlock(); } } ! @Override protected void cairoNewPath(long pointer) { *************** public class ComponentGraphics extends C *** 796,802 **** unlock(); } } ! @Override protected void cairoClosePath(long pointer) { --- 796,802 ---- unlock(); } } ! @Override protected void cairoClosePath(long pointer) { *************** public class ComponentGraphics extends C *** 810,816 **** unlock(); } } ! @Override protected void cairoMoveTo(long pointer, double x, double y) { --- 810,816 ---- unlock(); } } ! @Override protected void cairoMoveTo(long pointer, double x, double y) { *************** public class ComponentGraphics extends C *** 824,830 **** unlock(); } } ! @Override protected void cairoLineTo(long pointer, double x, double y) { --- 824,830 ---- unlock(); } } ! @Override protected void cairoLineTo(long pointer, double x, double y) { *************** public class ComponentGraphics extends C *** 838,844 **** unlock(); } } ! @Override protected void cairoCurveTo(long pointer, double x1, double y1, double x2, double y2, double x3, double y3) --- 838,844 ---- unlock(); } } ! @Override protected void cairoCurveTo(long pointer, double x1, double y1, double x2, double y2, double x3, double y3) *************** public class ComponentGraphics extends C *** 853,859 **** unlock(); } } ! @Override protected void cairoStroke(long pointer) { --- 853,859 ---- unlock(); } } ! @Override protected void cairoStroke(long pointer) { *************** public class ComponentGraphics extends C *** 867,873 **** unlock(); } } ! @Override protected void cairoFill(long pointer, double alpha) { --- 867,873 ---- unlock(); } } ! @Override protected void cairoFill(long pointer, double alpha) { *************** public class ComponentGraphics extends C *** 881,887 **** unlock(); } } ! @Override protected void cairoClip(long pointer) { --- 881,887 ---- unlock(); } } ! @Override protected void cairoClip(long pointer) { *************** public class ComponentGraphics extends C *** 895,901 **** unlock(); } } ! @Override protected void cairoResetClip(long pointer) { --- 895,901 ---- unlock(); } } ! @Override protected void cairoResetClip(long pointer) { *************** public class ComponentGraphics extends C *** 909,915 **** unlock(); } } ! @Override protected void cairoSetAntialias(long pointer, boolean aa) { --- 909,915 ---- unlock(); } } ! @Override protected void cairoSetAntialias(long pointer, boolean aa) { *************** public class ComponentGraphics extends C *** 923,929 **** unlock(); } } ! @Override protected void drawCairoSurface(CairoSurface surface, AffineTransform tx, double alpha, int interpolation) --- 923,929 ---- unlock(); } } ! @Override protected void drawCairoSurface(CairoSurface surface, AffineTransform tx, double alpha, int interpolation) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java Tue Jan 11 19:46:05 2011 *************** import java.awt.image.RenderedImage; *** 48,54 **** import java.awt.image.ImageObserver; /** ! * Implementation of Graphics2D for Components for servers which * do not have xrender. * * A mirrored GtkImage of the component is stored in memory --- 48,54 ---- import java.awt.image.ImageObserver; /** ! * Implementation of Graphics2D for Components for servers which * do not have xrender. * * A mirrored GtkImage of the component is stored in memory *************** public class ComponentGraphicsCopy exten *** 62,78 **** * GtkImage sharing its data buffer with this Cairo surface. */ private GtkImage gtkimage; ! private int width, height; native void getPixbuf( GtkComponentPeer component, GtkImage image ); ! native void copyPixbuf( GtkComponentPeer component, GtkImage image, ! int x, int y, int w, int h ); ! public ComponentGraphicsCopy(int width, int height, ! GtkComponentPeer component) ! { super( new CairoSurface( width, height ) ); this.component = component; this.width = width; --- 62,78 ---- * GtkImage sharing its data buffer with this Cairo surface. */ private GtkImage gtkimage; ! private int width, height; native void getPixbuf( GtkComponentPeer component, GtkImage image ); ! native void copyPixbuf( GtkComponentPeer component, GtkImage image, ! int x, int y, int w, int h ); ! public ComponentGraphicsCopy(int width, int height, ! GtkComponentPeer component) ! { super( new CairoSurface( width, height ) ); this.component = component; this.width = width; *************** public class ComponentGraphicsCopy exten *** 82,88 **** } /** ! * Overloaded methods that do actual drawing need to enter the gdk threads * and also do certain things before and after. */ public void draw(Shape s) --- 82,88 ---- } /** ! * Overloaded methods that do actual drawing need to enter the gdk threads * and also do certain things before and after. */ public void draw(Shape s) *************** public class ComponentGraphicsCopy exten *** 106,112 **** } protected boolean drawImage(Image img, AffineTransform xform, ! Color bgcolor, ImageObserver obs) { boolean rv = super.drawImage(img, xform, bgcolor, obs); copyPixbuf(component, gtkimage, 0, 0, width, height); --- 106,112 ---- } protected boolean drawImage(Image img, AffineTransform xform, ! Color bgcolor, ImageObserver obs) { boolean rv = super.drawImage(img, xform, bgcolor, obs); copyPixbuf(component, gtkimage, 0, 0, width, height); *************** public class ComponentGraphicsCopy exten *** 120,123 **** copyPixbuf(component, gtkimage, r.x, r.y, r.width, r.height); } } - --- 120,122 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java Wed Nov 5 14:19:06 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java Tue Jan 11 19:46:05 2011 *************** public class FreetypeGlyphVector extends *** 81,87 **** * The glyph codes */ private int[] glyphCodes; ! /** * The set of fonts used in this glyph vector. */ --- 81,87 ---- * The glyph codes */ private int[] glyphCodes; ! /** * The set of fonts used in this glyph vector. */ *************** public class FreetypeGlyphVector extends *** 89,110 **** /** * Glyph transforms. Supports all transform operations. ! * * The identity transform should not be stored in this array; use a null * instead (will result in performance improvements). */ private AffineTransform[] glyphTransforms; private GlyphMetrics[] metricsCache; ! private native void dispose(long[] fonts); ! /** * Returns a pointer to the native PangoFcFont object. ! * * The object will be referenced with g_object_ref n times before being * returned, and must be unreferenced a corresponding number of times. ! * * @param n Number of times to reference the object. * @return Pointer to the native default font. */ --- 89,110 ---- /** * Glyph transforms. Supports all transform operations. ! * * The identity transform should not be stored in this array; use a null * instead (will result in performance improvements). */ private AffineTransform[] glyphTransforms; private GlyphMetrics[] metricsCache; ! private native void dispose(long[] fonts); ! /** * Returns a pointer to the native PangoFcFont object. ! * * The object will be referenced with g_object_ref n times before being * returned, and must be unreferenced a corresponding number of times. ! * * @param n Number of times to reference the object. * @return Pointer to the native default font. */ *************** public class FreetypeGlyphVector extends *** 158,176 **** glyphCodes = new int[ codes.length ]; System.arraycopy(codes, 0, glyphCodes, 0, codes.length); nGlyphs = glyphCodes.length; ! if (fontSet == null) { fontSet = new long[nGlyphs]; Arrays.fill(fontSet, getNativeFontPointer(nGlyphs)); } ! performDefaultLayout(); } /** * Cloning constructor ! */ private FreetypeGlyphVector( FreetypeGlyphVector gv ) { font = gv.font; --- 158,176 ---- glyphCodes = new int[ codes.length ]; System.arraycopy(codes, 0, glyphCodes, 0, codes.length); nGlyphs = glyphCodes.length; ! if (fontSet == null) { fontSet = new long[nGlyphs]; Arrays.fill(fontSet, getNativeFontPointer(nGlyphs)); } ! performDefaultLayout(); } /** * Cloning constructor ! */ private FreetypeGlyphVector( FreetypeGlyphVector gv ) { font = gv.font; *************** public class FreetypeGlyphVector extends *** 191,197 **** glyphPositions = new float[(nGlyphs + 1) * 2]; glyphTransforms = new AffineTransform[ nGlyphs ]; Arrays.fill(glyphTransforms, null); ! for(int i = 0; i < nGlyphs; i++ ) { if (gv.glyphTransforms[i] != null) --- 191,197 ---- glyphPositions = new float[(nGlyphs + 1) * 2]; glyphTransforms = new AffineTransform[ nGlyphs ]; Arrays.fill(glyphTransforms, null); ! for(int i = 0; i < nGlyphs; i++ ) { if (gv.glyphTransforms[i] != null) *************** public class FreetypeGlyphVector extends *** 203,209 **** System.arraycopy(gv.glyphCodes, 0, glyphCodes, 0, nGlyphs); System.arraycopy(gv.fontSet, 0, fontSet, 0, nGlyphs); } ! public void finalize() { dispose(fontSet); --- 203,209 ---- System.arraycopy(gv.glyphCodes, 0, glyphCodes, 0, nGlyphs); System.arraycopy(gv.fontSet, 0, fontSet, 0, nGlyphs); } ! public void finalize() { dispose(fontSet); *************** public class FreetypeGlyphVector extends *** 247,254 **** /** * Returns the kerning of a glyph pair */ ! private native void getKerning(int leftGlyph, int rightGlyph, long font, ! float[] p); private native double[] getMetricsNative(int glyphCode, long font); --- 247,254 ---- /** * Returns the kerning of a glyph pair */ ! private native void getKerning(int leftGlyph, int rightGlyph, long font, ! float[] p); private native double[] getMetricsNative(int glyphCode, long font); *************** public class FreetypeGlyphVector extends *** 268,276 **** if( ! (gv instanceof FreetypeGlyphVector) ) return false; ! return (((FreetypeGlyphVector)gv).font.equals(font) && ! ((FreetypeGlyphVector)gv).frc.equals(frc) ! && ((FreetypeGlyphVector)gv).s.equals(s)); } /** --- 268,276 ---- if( ! (gv instanceof FreetypeGlyphVector) ) return false; ! return (((FreetypeGlyphVector)gv).font.equals(font) && ! ((FreetypeGlyphVector)gv).frc.equals(frc) ! && ((FreetypeGlyphVector)gv).s.equals(s)); } /** *************** public class FreetypeGlyphVector extends *** 323,341 **** } glyphPositions[nGlyphs * 2] = x; glyphPositions[nGlyphs * 2 + 1] = y; ! // Apply any transform that may be in the font's attributes TransformAttribute ta; ta = (TransformAttribute)font.getAttributes().get(TextAttribute.TRANSFORM); if (ta != null) { AffineTransform tx = ta.getTransform(); ! // Transform glyph positions tx.transform(glyphPositions, 0, glyphPositions, 0, glyphPositions.length / 2); ! ! // Also store per-glyph scale/shear/rotate (but not translation) double[] matrix = new double[4]; tx.getMatrix(matrix); AffineTransform deltaTx = new AffineTransform(matrix); --- 323,341 ---- } glyphPositions[nGlyphs * 2] = x; glyphPositions[nGlyphs * 2 + 1] = y; ! // Apply any transform that may be in the font's attributes TransformAttribute ta; ta = (TransformAttribute)font.getAttributes().get(TextAttribute.TRANSFORM); if (ta != null) { AffineTransform tx = ta.getTransform(); ! // Transform glyph positions tx.transform(glyphPositions, 0, glyphPositions, 0, glyphPositions.length / 2); ! ! // Also store per-glyph scale/shear/rotate (but not translation) double[] matrix = new double[4]; tx.getMatrix(matrix); AffineTransform deltaTx = new AffineTransform(matrix); *************** public class FreetypeGlyphVector extends *** 355,361 **** /** * Returns multiple glyphcodes. */ ! public int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn) { int[] rval; --- 355,361 ---- /** * Returns multiple glyphcodes. */ ! public int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn) { int[] rval; *************** public class FreetypeGlyphVector extends *** 364,370 **** rval = new int[ numEntries ]; else rval = codeReturn; ! System.arraycopy(glyphCodes, beginGlyphIndex, rval, 0, numEntries); return rval; --- 364,370 ---- rval = new int[ numEntries ]; else rval = codeReturn; ! System.arraycopy(glyphCodes, beginGlyphIndex, rval, 0, numEntries); return rval; *************** public class FreetypeGlyphVector extends *** 372,381 **** /** * Returns pointers to the fonts used in this glyph vector. ! * * The array index matches that of the glyph vector itself. */ ! protected long[] getGlyphFonts(int beginGlyphIndex, int numEntries, long[] codeReturn) { long[] rval; --- 372,381 ---- /** * Returns pointers to the fonts used in this glyph vector. ! * * The array index matches that of the glyph vector itself. */ ! protected long[] getGlyphFonts(int beginGlyphIndex, int numEntries, long[] codeReturn) { long[] rval; *************** public class FreetypeGlyphVector extends *** 384,390 **** rval = new long[ numEntries ]; else rval = codeReturn; ! System.arraycopy(fontSet, beginGlyphIndex, rval, 0, numEntries); return rval; --- 384,390 ---- rval = new long[ numEntries ]; else rval = codeReturn; ! System.arraycopy(fontSet, beginGlyphIndex, rval, 0, numEntries); return rval; *************** public class FreetypeGlyphVector extends *** 394,411 **** { GlyphMetrics gm = getGlyphMetrics( glyphIndex ); if( gm == null ) ! return null; Rectangle2D r = gm.getBounds2D(); Point2D p = getGlyphPosition( glyphIndex ); ! double[] bounds = new double[] {p.getX() + r.getX() - gm.getLSB(), p.getY() + r.getY(), p.getX() + r.getX() - gm.getLSB() + gm.getAdvanceX(), p.getY() + r.getY() + r.getHeight()}; ! if (glyphTransforms[glyphIndex] != null) glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 2); ! return new Rectangle2D.Double(bounds[0], bounds[1], bounds[2] - bounds[0], bounds[3] - bounds[1]); } --- 394,411 ---- { GlyphMetrics gm = getGlyphMetrics( glyphIndex ); if( gm == null ) ! return null; Rectangle2D r = gm.getBounds2D(); Point2D p = getGlyphPosition( glyphIndex ); ! double[] bounds = new double[] {p.getX() + r.getX() - gm.getLSB(), p.getY() + r.getY(), p.getX() + r.getX() - gm.getLSB() + gm.getAdvanceX(), p.getY() + r.getY() + r.getHeight()}; ! if (glyphTransforms[glyphIndex] != null) glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 2); ! return new Rectangle2D.Double(bounds[0], bounds[1], bounds[2] - bounds[0], bounds[3] - bounds[1]); } *************** public class FreetypeGlyphVector extends *** 428,437 **** gm = null; else { ! gm = new GlyphMetrics(true, ! (float)val[1], ! (float)val[2], ! new Rectangle2D.Double(val[3], val[4], val[5], val[6] ), GlyphMetrics.STANDARD ); peer.putGlyphMetrics( glyphCodes[ i ], gm ); --- 428,437 ---- gm = null; else { ! gm = new GlyphMetrics(true, ! (float)val[1], ! (float)val[2], ! new Rectangle2D.Double(val[3], val[4], val[5], val[6] ), GlyphMetrics.STANDARD ); peer.putGlyphMetrics( glyphCodes[ i ], gm ); *************** public class FreetypeGlyphVector extends *** 454,460 **** /** * Returns the outline of a single glyph. ! * * Despite what the Sun API says, this method returns the glyph relative to * the origin of the *entire string*, not each individual glyph. */ --- 454,460 ---- /** * Returns the outline of a single glyph. ! * * Despite what the Sun API says, this method returns the glyph relative to * the origin of the *entire string*, not each individual glyph. */ *************** public class FreetypeGlyphVector extends *** 462,468 **** { GeneralPath gp = getGlyphOutlineNative(glyphCodes[glyphIndex], fontSet[glyphIndex]); ! AffineTransform tx = AffineTransform.getTranslateInstance(glyphPositions[glyphIndex*2], glyphPositions[glyphIndex*2+1]); if (glyphTransforms[glyphIndex] != null) --- 462,468 ---- { GeneralPath gp = getGlyphOutlineNative(glyphCodes[glyphIndex], fontSet[glyphIndex]); ! AffineTransform tx = AffineTransform.getTranslateInstance(glyphPositions[glyphIndex*2], glyphPositions[glyphIndex*2+1]); if (glyphTransforms[glyphIndex] != null) *************** public class FreetypeGlyphVector extends *** 484,495 **** /** * Returns the positions of multiple glyphs. */ ! public float[] getGlyphPositions(int beginGlyphIndex, int numEntries, ! float[] positionReturn) { if (positionReturn == null || positionReturn.length < (numEntries * 2)) positionReturn = new float[numEntries*2]; ! System.arraycopy(glyphPositions, beginGlyphIndex*2, positionReturn, 0, numEntries*2); return positionReturn; --- 484,495 ---- /** * Returns the positions of multiple glyphs. */ ! public float[] getGlyphPositions(int beginGlyphIndex, int numEntries, ! float[] positionReturn) { if (positionReturn == null || positionReturn.length < (numEntries * 2)) positionReturn = new float[numEntries*2]; ! System.arraycopy(glyphPositions, beginGlyphIndex*2, positionReturn, 0, numEntries*2); return positionReturn; *************** public class FreetypeGlyphVector extends *** 502,508 **** { return glyphTransforms[glyphIndex]; } ! /** * Checks whether any transform has been set on any glyphs. */ --- 502,508 ---- { return glyphTransforms[glyphIndex]; } ! /** * Checks whether any transform has been set on any glyphs. */ *************** public class FreetypeGlyphVector extends *** 511,520 **** for (int i = 0; i < glyphTransforms.length; i++) if (glyphTransforms[i] != null) return true; ! return false; } ! /** * Returns the visual bounds of a glyph * May be off by a pixel or two due to hinting/rasterization. --- 511,520 ---- for (int i = 0; i < glyphTransforms.length; i++) if (glyphTransforms[i] != null) return true; ! return false; } ! /** * Returns the visual bounds of a glyph * May be off by a pixel or two due to hinting/rasterization. *************** public class FreetypeGlyphVector extends *** 538,544 **** for( int i = 1; i < nGlyphs; i++ ) { Rectangle2D r2 = (Rectangle2D)getGlyphLogicalBounds( i ); ! rect = rect.createUnion( r2 ); } --- 538,544 ---- for( int i = 1; i < nGlyphs; i++ ) { Rectangle2D r2 = (Rectangle2D)getGlyphLogicalBounds( i ); ! rect = rect.createUnion( r2 ); } *************** public class FreetypeGlyphVector extends *** 566,574 **** } /** ! * TODO: ! * FreeType does not currently have an API for the JSTF table. We should ! * probably get the table ourselves from FT and pass it to some parser * which the native font peers will need. */ public GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex) --- 566,574 ---- } /** ! * TODO: ! * FreeType does not currently have an API for the JSTF table. We should ! * probably get the table ourselves from FT and pass it to some parser * which the native font peers will need. */ public GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex) *************** public class FreetypeGlyphVector extends *** 615,628 **** // using and checking for nulls can be much faster. if (newTX != null && newTX.isIdentity()) newTX = null; ! // If the old and new transforms are identical, bail if (glyphTransforms[glyphIndex] == null && newTX == null) return; ! if (newTX != null && newTX.equals(glyphTransforms[glyphIndex])) return; ! // Invalidate bounds cache and set new transform logicalBounds = null; glyphTransforms[glyphIndex] = newTX; --- 615,628 ---- // using and checking for nulls can be much faster. if (newTX != null && newTX.isIdentity()) newTX = null; ! // If the old and new transforms are identical, bail if (glyphTransforms[glyphIndex] == null && newTX == null) return; ! if (newTX != null && newTX.equals(glyphTransforms[glyphIndex])) return; ! // Invalidate bounds cache and set new transform logicalBounds = null; glyphTransforms[glyphIndex] = newTX; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java Tue Jan 11 19:46:05 2011 *************** public class GdkFontPeer extends Classpa *** 78,84 **** { public GdkFontMetrics (Font font) ! { super(initFont(font)); } --- 78,84 ---- { public GdkFontMetrics (Font font) ! { super(initFont(font)); } *************** public class GdkFontPeer extends Classpa *** 167,173 **** GdkFontMetrics metrics; ! static { if (true) // GCJ LOCAL { --- 167,173 ---- GdkFontMetrics metrics; ! static { if (true) // GCJ LOCAL { *************** public class GdkFontPeer extends Classpa *** 204,210 **** dispose (); } ! /* * Helpers for the 3-way overloading that this class seems to suffer * from. Remove them if you feel like they're a performance bottleneck, * for the time being I prefer my code not be written and debugged in --- 204,210 ---- dispose (); } ! /* * Helpers for the 3-way overloading that this class seems to suffer * from. Remove them if you feel like they're a performance bottleneck, * for the time being I prefer my code not be written and debugged in *************** public class GdkFontPeer extends Classpa *** 214,220 **** private String buildString(CharacterIterator iter) { CPStringBuilder sb = new CPStringBuilder(); ! for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) sb.append(c); return sb.toString(); } --- 214,220 ---- private String buildString(CharacterIterator iter) { CPStringBuilder sb = new CPStringBuilder(); ! for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) sb.append(c); return sb.toString(); } *************** public class GdkFontPeer extends Classpa *** 223,229 **** { CPStringBuilder sb = new CPStringBuilder(); int i = 0; ! for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next(), i++) { if (begin <= i) sb.append(c); --- 223,229 ---- { CPStringBuilder sb = new CPStringBuilder(); int i = 0; ! for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next(), i++) { if (begin <= i) sb.append(c); *************** public class GdkFontPeer extends Classpa *** 232,238 **** } return sb.toString(); } ! private String buildString(char[] chars, int begin, int limit) { return new String(chars, begin, limit - begin); --- 232,238 ---- } return sb.toString(); } ! private String buildString(char[] chars, int begin, int limit) { return new String(chars, begin, limit - begin); *************** public class GdkFontPeer extends Classpa *** 247,254 **** } public GdkFontPeer (String name, int style, int size) ! { ! super(name, style, size); initState (); setFont (this.familyName, this.style, (int)this.size); metricsCache = new HashMap(); --- 247,254 ---- } public GdkFontPeer (String name, int style, int size) ! { ! super(name, style, size); initState (); setFont (this.familyName, this.style, (int)this.size); metricsCache = new HashMap(); *************** public class GdkFontPeer extends Classpa *** 299,312 **** /** * Unneeded, but implemented anyway. ! */ public String getSubFamilyName(Font font, Locale locale) { String name; ! if (locale == null) locale = Locale.getDefault(); ! name = getName(NameDecoder.NAME_SUBFAMILY, locale); if (name == null) { --- 299,312 ---- /** * Unneeded, but implemented anyway. ! */ public String getSubFamilyName(Font font, Locale locale) { String name; ! if (locale == null) locale = Locale.getDefault(); ! name = getName(NameDecoder.NAME_SUBFAMILY, locale); if (name == null) { *************** public class GdkFontPeer extends Classpa *** 322,341 **** * Returns the bytes belonging to a TrueType/OpenType table, * Parameters n,a,m,e identify the 4-byte ASCII tag of the table. * ! * Returns null if the font is not TT, the table is nonexistant, * or if some other unexpected error occured. * */ private native byte[] getTrueTypeTable(byte n, byte a, byte m, byte e); /** ! * Returns the PostScript name of the font, defaults to the familyName if * a PS name could not be retrieved. */ public String getPostScriptName(Font font) { ! String name = getName(NameDecoder.NAME_POSTSCRIPT, ! /* any language */ null); if( name == null ) return this.familyName; --- 322,341 ---- * Returns the bytes belonging to a TrueType/OpenType table, * Parameters n,a,m,e identify the 4-byte ASCII tag of the table. * ! * Returns null if the font is not TT, the table is nonexistant, * or if some other unexpected error occured. * */ private native byte[] getTrueTypeTable(byte n, byte a, byte m, byte e); /** ! * Returns the PostScript name of the font, defaults to the familyName if * a PS name could not be retrieved. */ public String getPostScriptName(Font font) { ! String name = getName(NameDecoder.NAME_POSTSCRIPT, ! /* any language */ null); if( name == null ) return this.familyName; *************** public class GdkFontPeer extends Classpa *** 356,362 **** { if (nameTable == null) { ! byte[] data = getTrueTypeTable((byte)'n', (byte) 'a', (byte) 'm', (byte) 'e'); if( data == null ) return null; --- 356,362 ---- { if (nameTable == null) { ! byte[] data = getTrueTypeTable((byte)'n', (byte) 'a', (byte) 'm', (byte) 'e'); if( data == null ) return null; *************** public class GdkFontPeer extends Classpa *** 378,393 **** // FIXME: inquire with pango return -1; } ! ! public GlyphVector createGlyphVector (Font font, ! FontRenderContext ctx, CharacterIterator i) { return new FreetypeGlyphVector(font, buildString (i), ctx); } ! public GlyphVector createGlyphVector (Font font, ! FontRenderContext ctx, int[] glyphCodes) { return new FreetypeGlyphVector(font, glyphCodes, ctx); --- 378,393 ---- // FIXME: inquire with pango return -1; } ! ! public GlyphVector createGlyphVector (Font font, ! FontRenderContext ctx, CharacterIterator i) { return new FreetypeGlyphVector(font, buildString (i), ctx); } ! public GlyphVector createGlyphVector (Font font, ! FontRenderContext ctx, int[] glyphCodes) { return new FreetypeGlyphVector(font, glyphCodes, ctx); *************** public class GdkFontPeer extends Classpa *** 411,442 **** { return ascent; } ! public int getBaselineIndex() ! { // FIXME return Font.ROMAN_BASELINE; } ! public float[] getBaselineOffsets() { return new float[3]; } ! public float getDescent() { return descent; } ! public float getHeight() { return height; } ! public float getLeading() { return height - (ascent + descent); ! } public int getNumChars() { --- 411,442 ---- { return ascent; } ! public int getBaselineIndex() ! { // FIXME return Font.ROMAN_BASELINE; } ! public float[] getBaselineOffsets() { return new float[3]; } ! public float getDescent() { return descent; } ! public float getHeight() { return height; } ! public float getLeading() { return height - (ascent + descent); ! } public int getNumChars() { *************** public class GdkFontPeer extends Classpa *** 447,459 **** { // FreeType doesn't seem to provide a value here. return ascent / 2; ! } public float getStrikethroughThickness() { // FreeType doesn't seem to provide a value here. return 1.f; ! } public float getUnderlineOffset() { --- 447,459 ---- { // FreeType doesn't seem to provide a value here. return ascent / 2; ! } public float getStrikethroughThickness() { // FreeType doesn't seem to provide a value here. return 1.f; ! } public float getUnderlineOffset() { *************** public class GdkFontPeer extends Classpa *** 467,473 **** } ! public LineMetrics getLineMetrics (Font font, CharacterIterator ci, int begin, int limit, FontRenderContext rc) { return new GdkFontLineMetrics (this, limit - begin); --- 467,473 ---- } ! public LineMetrics getLineMetrics (Font font, CharacterIterator ci, int begin, int limit, FontRenderContext rc) { return new GdkFontLineMetrics (this, limit - begin); *************** public class GdkFontPeer extends Classpa *** 490,501 **** public int getNumGlyphs (Font font) { ! byte[] data = getTrueTypeTable((byte)'m', (byte) 'a', ! (byte)'x', (byte) 'p'); if( data == null ) return -1; ! ByteBuffer buf = ByteBuffer.wrap( data ); return buf.getShort(4); } --- 490,501 ---- public int getNumGlyphs (Font font) { ! byte[] data = getTrueTypeTable((byte)'m', (byte) 'a', ! (byte)'x', (byte) 'p'); if( data == null ) return -1; ! ByteBuffer buf = ByteBuffer.wrap( data ); return buf.getShort(4); } *************** public class GdkFontPeer extends Classpa *** 504,518 **** return true; } ! public GlyphVector layoutGlyphVector (Font font, FontRenderContext frc, ! char[] chars, int start, int limit, int flags) { return new FreetypeGlyphVector(font, chars, start, limit - start, frc, flags); } ! public LineMetrics getLineMetrics (Font font, String str, FontRenderContext frc) { return new GdkFontLineMetrics (this, str.length ()); --- 504,518 ---- return true; } ! public GlyphVector layoutGlyphVector (Font font, FontRenderContext frc, ! char[] chars, int start, int limit, int flags) { return new FreetypeGlyphVector(font, chars, start, limit - start, frc, flags); } ! public LineMetrics getLineMetrics (Font font, String str, FontRenderContext frc) { return new GdkFontLineMetrics (this, str.length ()); *************** public class GdkFontPeer extends Classpa *** 536,542 **** /** * Put a GlyphMetrics object in the cache. ! */ void putGlyphMetrics( int glyphCode, GlyphMetrics metrics ) { metricsCache.put( new Integer( glyphCode ), metrics ); --- 536,542 ---- /** * Put a GlyphMetrics object in the cache. ! */ void putGlyphMetrics( int glyphCode, GlyphMetrics metrics ) { metricsCache.put( new Integer( glyphCode ), metrics ); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java Tue Jan 11 19:46:05 2011 *************** import java.awt.image.ColorModel; *** 51,71 **** import java.awt.image.DirectColorModel; import java.awt.image.VolatileImage; ! public class GdkGraphicsConfiguration extends GraphicsConfiguration { GdkScreenGraphicsDevice gdkScreenGraphicsDevice; ! ColorModel opaqueColorModel; ColorModel bitmaskColorModel; ColorModel translucentColorModel; ! public GdkGraphicsConfiguration(GdkScreenGraphicsDevice dev) { gdkScreenGraphicsDevice = dev; ! opaqueColorModel = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, 0); bitmaskColorModel = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, 0x1000000); translucentColorModel = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, 0xFF000000); --- 51,71 ---- import java.awt.image.DirectColorModel; import java.awt.image.VolatileImage; ! public class GdkGraphicsConfiguration extends GraphicsConfiguration { GdkScreenGraphicsDevice gdkScreenGraphicsDevice; ! ColorModel opaqueColorModel; ColorModel bitmaskColorModel; ColorModel translucentColorModel; ! public GdkGraphicsConfiguration(GdkScreenGraphicsDevice dev) { gdkScreenGraphicsDevice = dev; ! opaqueColorModel = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, 0); bitmaskColorModel = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, 0x1000000); translucentColorModel = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, 0xFF000000); *************** public class GdkGraphicsConfiguration *** 81,87 **** return new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); } ! public BufferedImage createCompatibleImage(int w, int h, int transparency) { return createCompatibleImage(w, h); --- 81,87 ---- return new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); } ! public BufferedImage createCompatibleImage(int w, int h, int transparency) { return createCompatibleImage(w, h); *************** public class GdkGraphicsConfiguration *** 137,143 **** public BufferCapabilities getBufferCapabilities() { ! return new BufferCapabilities(getImageCapabilities(), getImageCapabilities(), BufferCapabilities.FlipContents.UNDEFINED); } --- 137,143 ---- public BufferCapabilities getBufferCapabilities() { ! return new BufferCapabilities(getImageCapabilities(), getImageCapabilities(), BufferCapabilities.FlipContents.UNDEFINED); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java Sun Aug 17 21:42:34 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.Pointer; *** 58,66 **** public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment { private final int native_state = GtkGenericPeer.getUniqueInteger (); ! private GdkScreenGraphicsDevice defaultDevice; ! private GdkScreenGraphicsDevice[] devices; /** --- 58,66 ---- public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment { private final int native_state = GtkGenericPeer.getUniqueInteger (); ! private GdkScreenGraphicsDevice defaultDevice; ! private GdkScreenGraphicsDevice[] devices; /** *************** public class GdkGraphicsEnvironment exte *** 81,94 **** GtkToolkit.initializeGlobalIDs(); initIDs(); } ! private static native void initIDs(); ! public GdkGraphicsEnvironment () { nativeInitState(); } ! native void nativeInitState(); public GraphicsDevice[] getScreenDevices () --- 81,94 ---- GtkToolkit.initializeGlobalIDs(); initIDs(); } ! private static native void initIDs(); ! public GdkGraphicsEnvironment () { nativeInitState(); } ! native void nativeInitState(); public GraphicsDevice[] getScreenDevices () *************** public class GdkGraphicsEnvironment exte *** 97,113 **** { devices = nativeGetScreenDevices(); } ! return (GraphicsDevice[]) devices.clone(); } ! private native GdkScreenGraphicsDevice[] nativeGetScreenDevices(); public GraphicsDevice getDefaultScreenDevice () { if (GraphicsEnvironment.isHeadless ()) throw new HeadlessException (); ! synchronized (GdkGraphicsEnvironment.class) { if (defaultDevice == null) --- 97,113 ---- { devices = nativeGetScreenDevices(); } ! return (GraphicsDevice[]) devices.clone(); } ! private native GdkScreenGraphicsDevice[] nativeGetScreenDevices(); public GraphicsDevice getDefaultScreenDevice () { if (GraphicsEnvironment.isHeadless ()) throw new HeadlessException (); ! synchronized (GdkGraphicsEnvironment.class) { if (defaultDevice == null) *************** public class GdkGraphicsEnvironment exte *** 115,124 **** defaultDevice = nativeGetDefaultScreenDevice(); } } ! return defaultDevice; } ! private native GdkScreenGraphicsDevice nativeGetDefaultScreenDevice(); public Graphics2D createGraphics (BufferedImage image) --- 115,124 ---- defaultDevice = nativeGetDefaultScreenDevice(); } } ! return defaultDevice; } ! private native GdkScreenGraphicsDevice nativeGetDefaultScreenDevice(); public Graphics2D createGraphics (BufferedImage image) *************** public class GdkGraphicsEnvironment exte *** 129,135 **** return new BufferedImageGraphics( image ); } ! private native int nativeGetNumFontFamilies(); private native void nativeGetFontFamilies(String[] family_names); --- 129,135 ---- return new BufferedImageGraphics( image ); } ! private native int nativeGetNumFontFamilies(); private native void nativeGetFontFamilies(String[] family_names); *************** public class GdkGraphicsEnvironment exte *** 157,166 **** /** * Used by GtkMouseInfoPeer. ! */ native int[] getMouseCoordinates(); native boolean isWindowUnderMouse(GtkWindowPeer windowPeer); ! public WritableRaster createRaster(ColorModel cm, SampleModel sm) { if (CairoSurface.isCompatibleSampleModel(sm) --- 157,166 ---- /** * Used by GtkMouseInfoPeer. ! */ native int[] getMouseCoordinates(); native boolean isWindowUnderMouse(GtkWindowPeer windowPeer); ! public WritableRaster createRaster(ColorModel cm, SampleModel sm) { if (CairoSurface.isCompatibleSampleModel(sm) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java Sun Aug 17 21:42:34 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.Pointer; *** 73,79 **** public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder { ! static { if (true) // GCJ LOCAL { --- 73,79 ---- public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder { ! static { if (true) // GCJ LOCAL { *************** public class GdkPixbufDecoder extends gn *** 82,88 **** initStaticState (); } ! /** * Lock that should be held for all gdkpixbuf operations. We don't use * the global gdk_threads_enter/leave functions since gdkpixbuf --- 82,88 ---- initStaticState (); } ! /** * Lock that should be held for all gdkpixbuf operations. We don't use * the global gdk_threads_enter/leave functions since gdkpixbuf *************** public class GdkPixbufDecoder extends gn *** 124,132 **** boolean hasAlpha, GdkPixbufWriter writer); // gdk-pixbuf provids data in RGBA format ! static final ColorModel cm = new DirectColorModel (32, 0xff000000, ! 0x00ff0000, ! 0x0000ff00, 0x000000ff); public GdkPixbufDecoder (DataInput datainput) { --- 124,132 ---- boolean hasAlpha, GdkPixbufWriter writer); // gdk-pixbuf provids data in RGBA format ! static final ColorModel cm = new DirectColorModel (32, 0xff000000, ! 0x00ff0000, ! 0x0000ff00, 0x000000ff); public GdkPixbufDecoder (DataInput datainput) { *************** public class GdkPixbufDecoder extends gn *** 142,148 **** { super (filename); } ! public GdkPixbufDecoder (URL url) { super (url); --- 142,148 ---- { super (filename); } ! public GdkPixbufDecoder (URL url) { super (url); *************** public class GdkPixbufDecoder extends gn *** 168,188 **** ic.setHints (ImageConsumer.RANDOMPIXELORDER); } } ! // called back by native side: area_updated_cb ! void areaUpdated (int x, int y, int width, int height, int pixels[], int scansize) { if (curr == null) return; ! for (int i = 0; i < curr.size (); i++) { ImageConsumer ic = (ImageConsumer) curr.elementAt (i); ic.setPixels (x, y, width, height, cm, pixels, 0, scansize); } } ! // called from an async image loader of one sort or another, this method // repeatedly reads bytes from the input stream and passes them through a // GdkPixbufLoader using the native method pumpBytes. pumpBytes in turn --- 168,188 ---- ic.setHints (ImageConsumer.RANDOMPIXELORDER); } } ! // called back by native side: area_updated_cb ! void areaUpdated (int x, int y, int width, int height, int pixels[], int scansize) { if (curr == null) return; ! for (int i = 0; i < curr.size (); i++) { ImageConsumer ic = (ImageConsumer) curr.elementAt (i); ic.setPixels (x, y, width, height, cm, pixels, 0, scansize); } } ! // called from an async image loader of one sort or another, this method // repeatedly reads bytes from the input stream and passes them through a // GdkPixbufLoader using the native method pumpBytes. pumpBytes in turn *************** public class GdkPixbufDecoder extends gn *** 217,223 **** } needsClose = false; ! for (int i = 0; i < curr.size (); i++) { ImageConsumer ic = (ImageConsumer) curr.elementAt (i); --- 217,223 ---- } needsClose = false; ! for (int i = 0; i < curr.size (); i++) { ImageConsumer ic = (ImageConsumer) curr.elementAt (i); *************** public class GdkPixbufDecoder extends gn *** 239,245 **** public static class ImageFormatSpec { public String name; ! public boolean writable = false; public ArrayList mimeTypes = new ArrayList(); public ArrayList extensions = new ArrayList(); --- 239,245 ---- public static class ImageFormatSpec { public String name; ! public boolean writable = false; public ArrayList mimeTypes = new ArrayList(); public ArrayList extensions = new ArrayList(); *************** public class GdkPixbufDecoder extends gn *** 257,268 **** public synchronized void addExtension(String e) { extensions.add(e); ! } } static ArrayList imageFormatSpecs; ! public static ImageFormatSpec registerFormat(String name, boolean writable) { ImageFormatSpec ifs = new ImageFormatSpec(name, writable); synchronized(GdkPixbufDecoder.class) --- 257,268 ---- public synchronized void addExtension(String e) { extensions.add(e); ! } } static ArrayList imageFormatSpecs; ! public static ImageFormatSpec registerFormat(String name, boolean writable) { ImageFormatSpec ifs = new ImageFormatSpec(name, writable); synchronized(GdkPixbufDecoder.class) *************** public class GdkPixbufDecoder extends gn *** 277,283 **** static String[] getFormatNames(boolean writable) { ArrayList names = new ArrayList(); ! synchronized (imageFormatSpecs) { Iterator i = imageFormatSpecs.iterator(); while (i.hasNext()) --- 277,283 ---- static String[] getFormatNames(boolean writable) { ArrayList names = new ArrayList(); ! synchronized (imageFormatSpecs) { Iterator i = imageFormatSpecs.iterator(); while (i.hasNext()) *************** public class GdkPixbufDecoder extends gn *** 287,296 **** continue; names.add(ifs.name); ! /* * In order to make the filtering code work, we need to register * this type under every "format name" likely to be used as a synonym. ! * This generally means "all the extensions people might use". */ Iterator j = ifs.extensions.iterator(); --- 287,296 ---- continue; names.add(ifs.name); ! /* * In order to make the filtering code work, we need to register * this type under every "format name" likely to be used as a synonym. ! * This generally means "all the extensions people might use". */ Iterator j = ifs.extensions.iterator(); *************** public class GdkPixbufDecoder extends gn *** 304,310 **** static String[] getFormatExtensions(boolean writable) { ArrayList extensions = new ArrayList(); ! synchronized (imageFormatSpecs) { Iterator i = imageFormatSpecs.iterator(); while (i.hasNext()) --- 304,310 ---- static String[] getFormatExtensions(boolean writable) { ArrayList extensions = new ArrayList(); ! synchronized (imageFormatSpecs) { Iterator i = imageFormatSpecs.iterator(); while (i.hasNext()) *************** public class GdkPixbufDecoder extends gn *** 323,329 **** static String[] getFormatMimeTypes(boolean writable) { ArrayList mimeTypes = new ArrayList(); ! synchronized (imageFormatSpecs) { Iterator i = imageFormatSpecs.iterator(); while (i.hasNext()) --- 323,329 ---- static String[] getFormatMimeTypes(boolean writable) { ArrayList mimeTypes = new ArrayList(); ! synchronized (imageFormatSpecs) { Iterator i = imageFormatSpecs.iterator(); while (i.hasNext()) *************** public class GdkPixbufDecoder extends gn *** 339,345 **** return mimeTypes.toArray(new String[mimeTypes.size()]); } ! static String findFormatName(Object ext, boolean needWritable) { if (ext == null) --- 339,345 ---- return mimeTypes.toArray(new String[mimeTypes.size()]); } ! static String findFormatName(Object ext, boolean needWritable) { if (ext == null) *************** public class GdkPixbufDecoder extends gn *** 361,367 **** if (ifs.name.equals(str)) return str; ! Iterator j = ifs.extensions.iterator(); while (j.hasNext()) { String extension = j.next(); --- 361,367 ---- if (ifs.name.equals(str)) return str; ! Iterator j = ifs.extensions.iterator(); while (j.hasNext()) { String extension = j.next(); *************** public class GdkPixbufDecoder extends gn *** 369,382 **** return ifs.name; } ! j = ifs.mimeTypes.iterator(); while (j.hasNext()) { String mimeType = j.next(); if (mimeType.equals(str)) return ifs.name; } ! } throw new IllegalArgumentException("unknown extension '" + str + "'"); } --- 369,382 ---- return ifs.name; } ! j = ifs.mimeTypes.iterator(); while (j.hasNext()) { String mimeType = j.next(); if (mimeType.equals(str)) return ifs.name; } ! } throw new IllegalArgumentException("unknown extension '" + str + "'"); } *************** public class GdkPixbufDecoder extends gn *** 397,403 **** return writerSpi; } ! public static void registerSpis(IIORegistry reg) { reg.registerServiceProvider(getReaderSpi(), ImageReaderSpi.class); reg.registerServiceProvider(getWriterSpi(), ImageWriterSpi.class); --- 397,403 ---- return writerSpi; } ! public static void registerSpis(IIORegistry reg) { reg.registerServiceProvider(getReaderSpi(), ImageReaderSpi.class); reg.registerServiceProvider(getWriterSpi(), ImageWriterSpi.class); *************** public class GdkPixbufDecoder extends gn *** 405,415 **** public static class GdkPixbufWriterSpi extends ImageWriterSpi { ! public GdkPixbufWriterSpi() ! { super("GdkPixbuf", "2.x", ! GdkPixbufDecoder.getFormatNames(true), ! GdkPixbufDecoder.getFormatExtensions(true), GdkPixbufDecoder.getFormatMimeTypes(true), "gnu.java.awt.peer.gtk.GdkPixbufDecoder$GdkPixbufWriter", new Class[] { ImageOutputStream.class }, --- 405,415 ---- public static class GdkPixbufWriterSpi extends ImageWriterSpi { ! public GdkPixbufWriterSpi() ! { super("GdkPixbuf", "2.x", ! GdkPixbufDecoder.getFormatNames(true), ! GdkPixbufDecoder.getFormatExtensions(true), GdkPixbufDecoder.getFormatMimeTypes(true), "gnu.java.awt.peer.gtk.GdkPixbufDecoder$GdkPixbufWriter", new Class[] { ImageOutputStream.class }, *************** public class GdkPixbufDecoder extends gn *** 437,447 **** public static class GdkPixbufReaderSpi extends ImageReaderSpi { ! public GdkPixbufReaderSpi() ! { super("GdkPixbuf", "2.x", ! GdkPixbufDecoder.getFormatNames(false), ! GdkPixbufDecoder.getFormatExtensions(false), GdkPixbufDecoder.getFormatMimeTypes(false), "gnu.java.awt.peer.gtk.GdkPixbufDecoder$GdkPixbufReader", new Class[] { ImageInputStream.class }, --- 437,447 ---- public static class GdkPixbufReaderSpi extends ImageReaderSpi { ! public GdkPixbufReaderSpi() ! { super("GdkPixbuf", "2.x", ! GdkPixbufDecoder.getFormatNames(false), ! GdkPixbufDecoder.getFormatExtensions(false), GdkPixbufDecoder.getFormatMimeTypes(false), "gnu.java.awt.peer.gtk.GdkPixbufDecoder$GdkPixbufReader", new Class[] { ImageInputStream.class }, *************** public class GdkPixbufDecoder extends gn *** 450,458 **** false, null, null, null, null); } ! public boolean canDecodeInput(Object obj) ! { ! return true; } public ImageReader createReaderInstance(Object ext) --- 450,458 ---- false, null, null, null, null); } ! public boolean canDecodeInput(Object obj) ! { ! return true; } public ImageReader createReaderInstance(Object ext) *************** public class GdkPixbufDecoder extends gn *** 489,495 **** return null; } ! public IIOMetadata getDefaultImageMetadata (ImageTypeSpecifier imageType, ImageWriteParam param) { return null; --- 489,495 ---- return null; } ! public IIOMetadata getDefaultImageMetadata (ImageTypeSpecifier imageType, ImageWriteParam param) { return null; *************** public class GdkPixbufDecoder extends gn *** 509,515 **** int height = ras.getHeight(); ColorModel model = image.getColorModel(); int[] pixels = CairoGraphics2D.findSimpleIntegerArray (image.getColorModel(), ras); ! if (pixels == null) { BufferedImage img; --- 509,515 ---- int height = ras.getHeight(); ColorModel model = image.getColorModel(); int[] pixels = CairoGraphics2D.findSimpleIntegerArray (image.getColorModel(), ras); ! if (pixels == null) { BufferedImage img; *************** public class GdkPixbufDecoder extends gn *** 520,526 **** for (int y = 0; y < height; ++y) for (int x = 0; x < width; ++x) img.setRGB(x, y, model.getRGB(ras.getPixel(x, y, pix))); ! pixels = CairoGraphics2D.findSimpleIntegerArray (img.getColorModel(), img.getRaster()); model = img.getColorModel(); } --- 520,526 ---- for (int y = 0; y < height; ++y) for (int x = 0; x < width; ++x) img.setRGB(x, y, model.getRGB(ras.getPixel(x, y, pix))); ! pixels = CairoGraphics2D.findSimpleIntegerArray (img.getColorModel(), img.getRaster()); model = img.getColorModel(); } *************** public class GdkPixbufDecoder extends gn *** 530,536 **** processImageStarted(1); synchronized(pixbufLock) { ! streamImage(pixels, this.ext, width, height, model.hasAlpha(), this); } synchronized(data) --- 530,536 ---- processImageStarted(1); synchronized(pixbufLock) { ! streamImage(pixels, this.ext, width, height, model.hasAlpha(), this); } synchronized(data) *************** public class GdkPixbufDecoder extends gn *** 555,561 **** throw exception; processImageComplete(); ! } /** * Object marking end of data from native streamImage code. --- 555,561 ---- throw exception; processImageComplete(); ! } /** * Object marking end of data from native streamImage code. *************** public class GdkPixbufDecoder extends gn *** 627,633 **** } } ! private static class GdkPixbufReader extends ImageReader implements ImageConsumer { --- 627,633 ---- } } ! private static class GdkPixbufReader extends ImageReader implements ImageConsumer { *************** public class GdkPixbufDecoder extends gn *** 638,644 **** int width; int height; String ext; ! public GdkPixbufReader(GdkPixbufReaderSpi ownerSpi, Object ext) { super(ownerSpi); --- 638,644 ---- int width; int height; String ext; ! public GdkPixbufReader(GdkPixbufReaderSpi ownerSpi, Object ext) { super(ownerSpi); *************** public class GdkPixbufDecoder extends gn *** 658,686 **** width = w; height = h; } ! public void setProperties(Hashtable props) {} ! public void setColorModel(ColorModel model) { defaultModel = model; } public void setHints(int flags) {} ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize) { ! } ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, int[] pixels, int offset, int scansize) { if (model == null) model = defaultModel; ! if (bufferedImage == null) { if(model != null && model.hasAlpha()) --- 658,686 ---- width = w; height = h; } ! public void setProperties(Hashtable props) {} ! public void setColorModel(ColorModel model) { defaultModel = model; } public void setHints(int flags) {} ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize) { ! } ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, int[] pixels, int offset, int scansize) { if (model == null) model = defaultModel; ! if (bufferedImage == null) { if(model != null && model.hasAlpha()) *************** public class GdkPixbufDecoder extends gn *** 709,715 **** processImageProgress(y / (height == 0 ? 1 : height)); } ! public void imageComplete(int status) { processImageComplete(); } --- 709,715 ---- processImageProgress(y / (height == 0 ? 1 : height)); } ! public void imageComplete(int status) { processImageComplete(); } *************** public class GdkPixbufDecoder extends gn *** 729,735 **** return 1; } ! public IIOMetadata getImageMetadata(int i) { return null; } --- 729,735 ---- return 1; } ! public IIOMetadata getImageMetadata(int i) { return null; } *************** public class GdkPixbufDecoder extends gn *** 748,754 **** vec.add(new ImageTypeSpecifier(img)); return vec.iterator(); } ! public int getHeight(int imageIndex) throws IOException { --- 748,754 ---- vec.add(new ImageTypeSpecifier(img)); return vec.iterator(); } ! public int getHeight(int imageIndex) throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java Tue Jan 11 19:46:05 2011 *************** public class GdkRobotPeer implements Rob *** 53,61 **** { // gdk-pixbuf provides data in RGBA format static final ColorModel cm = new DirectColorModel (32, 0xff000000, ! 0x00ff0000, ! 0x0000ff00, ! 0x000000ff); public GdkRobotPeer (GraphicsDevice screen) throws AWTException { --- 53,61 ---- { // gdk-pixbuf provides data in RGBA format static final ColorModel cm = new DirectColorModel (32, 0xff000000, ! 0x00ff0000, ! 0x0000ff00, ! 0x000000ff); public GdkRobotPeer (GraphicsDevice screen) throws AWTException { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java Sun Aug 17 21:42:34 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.Pointer; *** 52,79 **** class GdkScreenGraphicsDevice extends GraphicsDevice { private final int native_state = GtkGenericPeer.getUniqueInteger (); ! private Window fullscreenWindow; ! private boolean oldWindowDecorationState; ! private Rectangle oldWindowBounds; ! private Rectangle bounds; ! private GdkGraphicsConfiguration[] configurations; ! /** The GdkGraphicsEnvironment instance that created this * GdkScreenGraphicsDevice. This is only needed for native * methods which need to access the 'native_state' field storing a pointer * to a GdkDisplay object. ! */ GdkGraphicsEnvironment env; ! /** An identifier that is created by Gdk */ String idString; ! /** The display modes supported by this GdkScreenGraphicsDevice. * If the array is null nativeGetDisplayModes has * to be called. --- 52,79 ---- class GdkScreenGraphicsDevice extends GraphicsDevice { private final int native_state = GtkGenericPeer.getUniqueInteger (); ! private Window fullscreenWindow; ! private boolean oldWindowDecorationState; ! private Rectangle oldWindowBounds; ! private Rectangle bounds; ! private GdkGraphicsConfiguration[] configurations; ! /** The GdkGraphicsEnvironment instance that created this * GdkScreenGraphicsDevice. This is only needed for native * methods which need to access the 'native_state' field storing a pointer * to a GdkDisplay object. ! */ GdkGraphicsEnvironment env; ! /** An identifier that is created by Gdk */ String idString; ! /** The display modes supported by this GdkScreenGraphicsDevice. * If the array is null nativeGetDisplayModes has * to be called. *************** class GdkScreenGraphicsDevice extends Gr *** 85,91 **** * is still null afterwards, the XRandR extension is available * and display mode changes are possible. If it is non-null XRandR is not * available, no display mode changes are possible and no other native ! * method must be called. */ DisplayMode fixedDisplayMode; --- 85,91 ---- * is still null afterwards, the XRandR extension is available * and display mode changes are possible. If it is non-null XRandR is not * available, no display mode changes are possible and no other native ! * method must be called. */ DisplayMode fixedDisplayMode; *************** class GdkScreenGraphicsDevice extends Gr *** 107,120 **** GtkToolkit.initializeGlobalIDs(); initIDs(); } ! static native void initIDs(); ! GdkScreenGraphicsDevice (GdkGraphicsEnvironment e) { super(); env = e; ! configurations = new GdkGraphicsConfiguration[1]; configurations[0] = new GdkGraphicsConfiguration(this); } --- 107,120 ---- GtkToolkit.initializeGlobalIDs(); initIDs(); } ! static native void initIDs(); ! GdkScreenGraphicsDevice (GdkGraphicsEnvironment e) { super(); env = e; ! configurations = new GdkGraphicsConfiguration[1]; configurations[0] = new GdkGraphicsConfiguration(this); } *************** class GdkScreenGraphicsDevice extends Gr *** 126,138 **** { fixedDisplayMode = nativeGetFixedDisplayMode(env); } ! /** Depending on the availability of the XRandR extension the method returns * the screens' non-changeable display mode or null, meaning that XRandR can * handle display mode changes. */ native DisplayMode nativeGetFixedDisplayMode(GdkGraphicsEnvironment env); ! public int getType () { // Gdk manages only raster screens. --- 126,138 ---- { fixedDisplayMode = nativeGetFixedDisplayMode(env); } ! /** Depending on the availability of the XRandR extension the method returns * the screens' non-changeable display mode or null, meaning that XRandR can * handle display mode changes. */ native DisplayMode nativeGetFixedDisplayMode(GdkGraphicsEnvironment env); ! public int getType () { // Gdk manages only raster screens. *************** class GdkScreenGraphicsDevice extends Gr *** 143,159 **** { if (idString == null) idString = nativeGetIDString(); ! return idString; } ! ! private native String nativeGetIDString(); public GraphicsConfiguration[] getConfigurations () { return (GraphicsConfiguration[]) configurations.clone(); } ! public GraphicsConfiguration getDefaultConfiguration () { return configurations[0]; --- 143,159 ---- { if (idString == null) idString = nativeGetIDString(); ! return idString; } ! ! private native String nativeGetIDString(); public GraphicsConfiguration[] getConfigurations () { return (GraphicsConfiguration[]) configurations.clone(); } ! public GraphicsConfiguration getDefaultConfiguration () { return configurations[0]; *************** class GdkScreenGraphicsDevice extends Gr *** 172,178 **** { if (fixedDisplayMode != null) return fixedDisplayMode; ! synchronized (this) { if (displayModes == null) --- 172,178 ---- { if (fixedDisplayMode != null) return fixedDisplayMode; ! synchronized (this) { if (displayModes == null) *************** class GdkScreenGraphicsDevice extends Gr *** 181,208 **** int index = nativeGetDisplayModeIndex(env); int rate = nativeGetDisplayModeRate(env); ! return new DisplayMode(displayModes[index].width, displayModes[index].height, DisplayMode.BIT_DEPTH_MULTI, rate); } ! native int nativeGetDisplayModeIndex(GdkGraphicsEnvironment env); ! native int nativeGetDisplayModeRate(GdkGraphicsEnvironment env); ! public DisplayMode[] getDisplayModes() { if (fixedDisplayMode != null) return new DisplayMode[] { fixedDisplayMode }; ! synchronized (this) { if (displayModes == null) displayModes = nativeGetDisplayModes(env); } ! ArrayList list = new ArrayList(); for(int i=0;i list = new ArrayList(); for(int i=0;i properties) { this.width = width; this.height = height; --- 361,368 ---- /** * Callback from the image consumer. */ ! public void setImage(int width, int height, ! int[] pixels, Hashtable properties) { this.width = width; this.height = height; *************** public class GtkImage extends Image *** 392,403 **** return width; } ! public synchronized int getHeight (ImageObserver observer) { if (addObserver(observer)) return -1; ! return height; } --- 392,403 ---- return width; } ! public synchronized int getHeight (ImageObserver observer) { if (addObserver(observer)) return -1; ! return height; } *************** public class GtkImage extends Image *** 405,411 **** { if (addObserver(observer)) return UndefinedProperty; ! Object value = props.get (name); return (value == null) ? UndefinedProperty : value; } --- 405,411 ---- { if (addObserver(observer)) return UndefinedProperty; ! Object value = props.get (name); return (value == null) ? UndefinedProperty : value; } *************** public class GtkImage extends Image *** 426,432 **** else return null; } ! return new MemoryImageSource(width, height, nativeModel, pixels, 0, width); } --- 426,432 ---- else return null; } ! return new MemoryImageSource(width, height, nativeModel, pixels, 0, width); } *************** public class GtkImage extends Image *** 438,444 **** throw new IllegalAccessError("This method only works for off-screen" +" Images."); } ! /** * Returns a scaled instance of this pixbuf. */ --- 438,444 ---- throw new IllegalAccessError("This method only works for off-screen" +" Images."); } ! /** * Returns a scaled instance of this pixbuf. */ *************** public class GtkImage extends Image *** 454,460 **** } /** ! * If the image is loaded and comes from an ImageProducer, * regenerate the image from there. * * I have no idea if this is ever actually used. Since GtkImage can't be --- 454,460 ---- } /** ! * If the image is loaded and comes from an ImageProducer, * regenerate the image from there. * * I have no idea if this is ever actually used. Since GtkImage can't be *************** public class GtkImage extends Image *** 468,476 **** observers = new Vector(); isLoaded = false; synchronized(pixbufLock) ! { ! freePixbuf(); ! } source.startProduction(new GtkImageConsumer(this, source)); } } --- 468,476 ---- observers = new Vector(); isLoaded = false; synchronized(pixbufLock) ! { ! freePixbuf(); ! } source.startProduction(new GtkImageConsumer(this, source)); } } *************** public class GtkImage extends Image *** 510,516 **** */ private void deliver() { ! int flags = ImageObserver.HEIGHT | ImageObserver.WIDTH | ImageObserver.PROPERTIES | ImageObserver.ALLBITS; --- 510,516 ---- */ private void deliver() { ! int flags = ImageObserver.HEIGHT | ImageObserver.WIDTH | ImageObserver.PROPERTIES | ImageObserver.ALLBITS; *************** public class GtkImage extends Image *** 522,528 **** observers = null; } ! /** * Adds an observer, if we need to. * @return true if an observer was added. --- 522,528 ---- observers = null; } ! /** * Adds an observer, if we need to. * @return true if an observer was added. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java Tue Jan 11 19:46:05 2011 *************** public class GtkImageConsumer implements *** 92,102 **** public synchronized void setHints (int flags) { // This method informs us in which order the pixels are ! // delivered, for progressive-loading support, etc. // Since we wait until it's all loaded, we can ignore the hints. } ! public synchronized void setPixels (int x, int y, int width, int height, ColorModel cm, byte[] pixels, int offset, int scansize) { --- 92,102 ---- public synchronized void setHints (int flags) { // This method informs us in which order the pixels are ! // delivered, for progressive-loading support, etc. // Since we wait until it's all loaded, we can ignore the hints. } ! public synchronized void setPixels (int x, int y, int width, int height, ColorModel cm, byte[] pixels, int offset, int scansize) { *************** public class GtkImageConsumer implements *** 158,164 **** for (int i = 0; i < pixels.length; i++) ret[i] = pixels[i] & 0xFF; ! return ret; } --- 158,164 ---- for (int i = 0; i < pixels.length; i++) ret[i] = pixels[i] & 0xFF; ! return ret; } *************** public class GtkImageConsumer implements *** 167,171 **** this.properties = props; } } - - --- 167,169 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkLabelPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkLabelPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkLabelPeer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkLabelPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkLabelPeer extends GtkCom *** 74,80 **** if (text != null) setNativeText(text); } ! public GtkLabelPeer (Label l) { super (l); --- 74,80 ---- if (text != null) setNativeText(text); } ! public GtkLabelPeer (Label l) { super (l); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkListPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkListPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkListPeer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkListPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkListPeer extends GtkComp *** 73,79 **** public GtkListPeer (List list) { super (list); ! setMultipleMode (list.isMultipleMode ()); if (list.getItemCount () > 0) --- 73,79 ---- public GtkListPeer (List list) { super (list); ! setMultipleMode (list.isMultipleMode ()); if (list.getItemCount () > 0) *************** public class GtkListPeer extends GtkComp *** 83,102 **** native void append (String items[]); public native void add (String item, int index); ! public void addItem (String item, int index) { add (item, index); } ! public void clear () { removeAll (); } ! public native void delItems (int start, int end); public native void deselect (int index); ! public Dimension getMinimumSize (int rows) { return minimumSize (rows); --- 83,102 ---- native void append (String items[]); public native void add (String item, int index); ! public void addItem (String item, int index) { add (item, index); } ! public void clear () { removeAll (); } ! public native void delItems (int start, int end); public native void deselect (int index); ! public Dimension getMinimumSize (int rows) { return minimumSize (rows); *************** public class GtkListPeer extends GtkComp *** 106,112 **** { return preferredSize (rows); } ! public native int[] getSelectedIndexes (); public native void makeVisible (int index); --- 106,112 ---- { return preferredSize (rows); } ! public native int[] getSelectedIndexes (); public native void makeVisible (int index); *************** public class GtkListPeer extends GtkComp *** 158,164 **** // Double-click only generates an Action event if // something is selected. if (selectedItem != null) ! postActionEvent (((List) awtComponent).getSelectedItem (), me.getModifiersEx ()); } } --- 158,164 ---- // Double-click only generates an Action event if // something is selected. if (selectedItem != null) ! postActionEvent (((List) awtComponent).getSelectedItem (), me.getModifiersEx ()); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java Tue Jan 11 19:46:05 2011 *************** public abstract class GtkMenuComponentPe *** 60,66 **** { MenuComponent mc = ((MenuComponent) awtWidget); Font f = mc.getFont(); ! if (f == null) { MenuContainer parent = mc.getParent (); --- 60,66 ---- { MenuComponent mc = ((MenuComponent) awtWidget); Font f = mc.getFont(); ! if (f == null) { MenuContainer parent = mc.getParent (); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkMenuPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkMenuPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkMenuPeer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkMenuPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkMenuPeer extends GtkMenu *** 57,63 **** protected native void create (String label); private native void addItem(MenuItemPeer item, int key, ! boolean shiftModifier); /** XXX - Document this and the override in GtkPopupMenuPeer. */ native void setupAccelGroup (GtkGenericPeer container); --- 57,63 ---- protected native void create (String label); private native void addItem(MenuItemPeer item, int key, ! boolean shiftModifier); /** XXX - Document this and the override in GtkPopupMenuPeer. */ native void setupAccelGroup (GtkGenericPeer container); *************** public class GtkMenuPeer extends GtkMenu *** 75,81 **** public GtkMenuPeer (Menu menu) { super (menu); ! if (menu.isTearOff()) addTearOff(); --- 75,81 ---- public GtkMenuPeer (Menu menu) { super (menu); ! if (menu.isTearOff()) addTearOff(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java Wed Dec 5 18:04:44 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java Tue Jan 11 19:46:05 2011 *************** import java.awt.peer.MouseInfoPeer; *** 49,66 **** public class GtkMouseInfoPeer implements MouseInfoPeer { private static GdkGraphicsEnvironment gde = new GdkGraphicsEnvironment(); ! public int fillPointWithCoords(Point p) { int[] coords = gde.getMouseCoordinates(); ! p.x = coords[1]; p.y = coords[2]; return coords[0]; } ! public boolean isWindowUnderMouse(Window w) { return gde.isWindowUnderMouse((GtkWindowPeer) w.getPeer()); } } - --- 49,65 ---- public class GtkMouseInfoPeer implements MouseInfoPeer { private static GdkGraphicsEnvironment gde = new GdkGraphicsEnvironment(); ! public int fillPointWithCoords(Point p) { int[] coords = gde.getMouseCoordinates(); ! p.x = coords[1]; p.y = coords[2]; return coords[0]; } ! public boolean isWindowUnderMouse(Window w) { return gde.isWindowUnderMouse((GtkWindowPeer) w.getPeer()); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkPanelPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkPanelPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkPanelPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkPanelPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkPanelPeer extends GtkCon *** 59,65 **** if (id == MouseEvent.MOUSE_PRESSED) awtComponent.requestFocusInWindow(); ! super.handleEvent(event); } --- 59,65 ---- if (id == MouseEvent.MOUSE_PRESSED) awtComponent.requestFocusInWindow(); ! super.handleEvent(event); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkPopupMenuPeer extends Gt *** 60,66 **** Point abs = origin.getLocationOnScreen (); show (abs.x + x, abs.y + y, 0); } ! public void show (Event e) { --- 60,66 ---- Point abs = origin.getLocationOnScreen (); show (abs.x + x, abs.y + y, 0); } ! public void show (Event e) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkScrollbarPeer extends Gt *** 50,56 **** Scrollbar sb = (Scrollbar) awtComponent; create (sb.getOrientation (), sb.getValue (), ! sb.getMinimum (), sb.getMaximum (), sb.getUnitIncrement (), sb.getBlockIncrement (), sb.getVisibleAmount ()); } --- 50,56 ---- Scrollbar sb = (Scrollbar) awtComponent; create (sb.getOrientation (), sb.getValue (), ! sb.getMinimum (), sb.getMaximum (), sb.getUnitIncrement (), sb.getBlockIncrement (), sb.getVisibleAmount ()); } *************** public class GtkScrollbarPeer extends Gt *** 85,91 **** protected void postAdjustmentEvent (int type, int value) { Scrollbar bar = (Scrollbar) awtComponent; ! q().postEvent(new AdjustmentEvent(bar, AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, type, value, true)); } --- 85,91 ---- protected void postAdjustmentEvent (int type, int value) { Scrollbar bar = (Scrollbar) awtComponent; ! q().postEvent(new AdjustmentEvent(bar, AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, type, value, true)); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkSelection.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkSelection.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkSelection.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkSelection.java Tue Jan 11 19:46:05 2011 *************** public class GtkSelection implements Tra *** 87,93 **** * mimeTypesDelivered is true. */ private DataFlavor[] dataFlavors; ! /** * Indicates a requestText() call was made and the corresponding * textAvailable() callback was triggered. --- 87,93 ---- * mimeTypesDelivered is true. */ private DataFlavor[] dataFlavors; ! /** * Indicates a requestText() call was made and the corresponding * textAvailable() callback was triggered. *************** public class GtkSelection implements Tra *** 100,106 **** * is true. */ private String text; ! /** * Indicates a requestImage() call was made and the corresponding * imageAvailable() callback was triggered. --- 100,106 ---- * is true. */ private String text; ! /** * Indicates a requestImage() call was made and the corresponding * imageAvailable() callback was triggered. *************** public class GtkSelection implements Tra *** 228,234 **** // extra element. ArrayList flavorsList = new ArrayList(mimeTypes.length + 1); ! for (int i = 0; i < mimeTypes.length; i++) { try --- 228,234 ---- // extra element. ArrayList flavorsList = new ArrayList(mimeTypes.length + 1); ! for (int i = 0; i < mimeTypes.length; i++) { try *************** public class GtkSelection implements Tra *** 262,268 **** npe.printStackTrace(); } } ! dataFlavors = new DataFlavor[flavorsList.size()]; flavorsList.toArray(dataFlavors); } --- 262,268 ---- npe.printStackTrace(); } } ! dataFlavors = new DataFlavor[flavorsList.size()]; flavorsList.toArray(dataFlavors); } *************** public class GtkSelection implements Tra *** 406,415 **** } requestInProgress = false; } ! if (imagePointer != null) image = new GtkImage(imagePointer); ! imagePointer = null; result = image; if (! GtkClipboard.canCache) --- 406,415 ---- } requestInProgress = false; } ! if (imagePointer != null) image = new GtkImage(imagePointer); ! imagePointer = null; result = image; if (! GtkClipboard.canCache) *************** public class GtkSelection implements Tra *** 572,578 **** bytes = null; bytesDelivered = false; requestInProgress = false; ! requestLock.notifyAll(); } return result; --- 572,578 ---- bytes = null; bytesDelivered = false; requestInProgress = false; ! requestLock.notifyAll(); } return result; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java Sun Aug 17 21:42:34 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java Tue Jan 11 19:46:05 2011 *************** public class GtkToolkit extends gnu.java *** 182,191 **** */ initializeGlobalIDs(); ! int portableNativeSync; ! String portNatSyncProp = System.getProperty("gnu.classpath.awt.gtk.portable.native.sync"); ! if (portNatSyncProp == null) portableNativeSync = -1; // unset else if (Boolean.valueOf(portNatSyncProp).booleanValue()) --- 182,191 ---- */ initializeGlobalIDs(); ! int portableNativeSync; ! String portNatSyncProp = System.getProperty("gnu.classpath.awt.gtk.portable.native.sync"); ! if (portNatSyncProp == null) portableNativeSync = -1; // unset else if (Boolean.valueOf(portNatSyncProp).booleanValue()) *************** public class GtkToolkit extends gnu.java *** 204,215 **** public native void beep(); private native void getScreenSizeDimensions(int[] xy); ! ! public int checkImage (Image image, int width, int height, ! ImageObserver observer) { ! int status = ImageObserver.ALLBITS ! | ImageObserver.WIDTH | ImageObserver.HEIGHT; if (image instanceof GtkImage) --- 204,215 ---- public native void beep(); private native void getScreenSizeDimensions(int[] xy); ! ! public int checkImage (Image image, int width, int height, ! ImageObserver observer) { ! int status = ImageObserver.ALLBITS ! | ImageObserver.WIDTH | ImageObserver.HEIGHT; if (image instanceof GtkImage) *************** public class GtkToolkit extends gnu.java *** 223,239 **** -1, -1, image.getWidth (observer), image.getHeight (observer)); ! return status; } ! /** * Helper to return either a Image -- the argument -- or a * GtkImage with the errorLoading flag set if the argument is null. */ static Image imageOrError(Image b) { ! if (b == null) return GtkImage.getErrorImage(); else return b; --- 223,239 ---- -1, -1, image.getWidth (observer), image.getHeight (observer)); ! return status; } ! /** * Helper to return either a Image -- the argument -- or a * GtkImage with the errorLoading flag set if the argument is null. */ static Image imageOrError(Image b) { ! if (b == null) return GtkImage.getErrorImage(); else return b; *************** public class GtkToolkit extends gnu.java *** 243,249 **** { if (filename.length() == 0) return new GtkImage (); ! Image image; try { --- 243,249 ---- { if (filename.length() == 0) return new GtkImage (); ! Image image; try { *************** public class GtkToolkit extends gnu.java *** 261,271 **** return new AsyncImage(url); } ! public Image createImage (ImageProducer producer) { if (producer == null) return null; ! Image image; try { --- 261,271 ---- return new AsyncImage(url); } ! public Image createImage (ImageProducer producer) { if (producer == null) return null; ! Image image; try { *************** public class GtkToolkit extends gnu.java *** 279,285 **** } public Image createImage (byte[] imagedata, int imageoffset, ! int imagelength) { Image image; try --- 279,285 ---- } public Image createImage (byte[] imagedata, int imageoffset, ! int imagelength) { Image image; try *************** public class GtkToolkit extends gnu.java *** 294,306 **** } return imageOrError(image); } ! /** * Creates an ImageProducer from the specified URL. The image is assumed ! * to be in a recognised format. * * @param url URL to read image data from. ! */ public ImageProducer createImageProducer(URL url) { return createImage( url ).getSource(); --- 294,306 ---- } return imageOrError(image); } ! /** * Creates an ImageProducer from the specified URL. The image is assumed ! * to be in a recognised format. * * @param url URL to read image data from. ! */ public ImageProducer createImageProducer(URL url) { return createImage( url ).getSource(); *************** public class GtkToolkit extends gnu.java *** 308,336 **** /** * Returns the native color model (which isn't the same as the default ! * ARGB color model, but doesn't have to be). */ ! public ColorModel getColorModel () { /* Return the GDK-native ABGR format */ ! return new DirectColorModel(32, 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000); } ! public String[] getFontList () { ! return (new String[] { "Dialog", ! "DialogInput", ! "Monospaced", "Serif", "SansSerif" }); } static class LRUCache extends LinkedHashMap ! { int max_entries; public LRUCache(int max) { --- 308,336 ---- /** * Returns the native color model (which isn't the same as the default ! * ARGB color model, but doesn't have to be). */ ! public ColorModel getColorModel () { /* Return the GDK-native ABGR format */ ! return new DirectColorModel(32, 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000); } ! public String[] getFontList () { ! return (new String[] { "Dialog", ! "DialogInput", ! "Monospaced", "Serif", "SansSerif" }); } static class LRUCache extends LinkedHashMap ! { int max_entries; public LRUCache(int max) { *************** public class GtkToolkit extends gnu.java *** 347,358 **** new LRUCache(50); private LRUCache imageCache = new LRUCache(50); ! public FontMetrics getFontMetrics (Font font) { return ((GdkFontPeer) font.getPeer()).getFontMetrics(font); } ! public Image getImage (String filename) { if (imageCache.containsKey(filename)) return imageCache.get(filename); --- 347,358 ---- new LRUCache(50); private LRUCache imageCache = new LRUCache(50); ! public FontMetrics getFontMetrics (Font font) { return ((GdkFontPeer) font.getPeer()).getFontMetrics(font); } ! public Image getImage (String filename) { if (imageCache.containsKey(filename)) return imageCache.get(filename); *************** public class GtkToolkit extends gnu.java *** 364,370 **** } } ! public Image getImage (URL url) { if (imageCache.containsKey(url)) return imageCache.get(url); --- 364,370 ---- } } ! public Image getImage (URL url) { if (imageCache.containsKey(url)) return imageCache.get(url); *************** public class GtkToolkit extends gnu.java *** 376,382 **** } } ! public PrintJob getPrintJob (Frame frame, String jobtitle, Properties props) { SecurityManager sm; sm = System.getSecurityManager(); --- 376,382 ---- } } ! public PrintJob getPrintJob (Frame frame, String jobtitle, Properties props) { SecurityManager sm; sm = System.getSecurityManager(); *************** public class GtkToolkit extends gnu.java *** 395,401 **** return new Dimension(dim[0], dim[1]); } ! public Clipboard getSystemClipboard() { SecurityManager secman = System.getSecurityManager(); if (secman != null) --- 395,401 ---- return new Dimension(dim[0], dim[1]); } ! public Clipboard getSystemClipboard() { SecurityManager secman = System.getSecurityManager(); if (secman != null) *************** public class GtkToolkit extends gnu.java *** 409,415 **** SecurityManager secman = System.getSecurityManager(); if (secman != null) secman.checkSystemClipboardAccess(); ! return GtkClipboard.getSelectionInstance(); } --- 409,415 ---- SecurityManager secman = System.getSecurityManager(); if (secman != null) secman.checkSystemClipboardAccess(); ! return GtkClipboard.getSelectionInstance(); } *************** public class GtkToolkit extends gnu.java *** 417,424 **** * Prepares a GtkImage. For every other kind of Image it just * assumes the image is already prepared for rendering. */ ! public boolean prepareImage (Image image, int width, int height, ! ImageObserver observer) { /* GtkImages are always prepared, as long as they're loaded. */ if (image instanceof GtkImage) --- 417,424 ---- * Prepares a GtkImage. For every other kind of Image it just * assumes the image is already prepared for rendering. */ ! public boolean prepareImage (Image image, int width, int height, ! ImageObserver observer) { /* GtkImages are always prepared, as long as they're loaded. */ if (image instanceof GtkImage) *************** public class GtkToolkit extends gnu.java *** 446,458 **** if (c.getBackground () == null) c.setBackground (cp.getBackground ()); // if (c.getFont () == null) ! // c.setFont (cp.getFont ()); ! /* Make the Peer reflect the state of the Component */ if (! (c instanceof Window)) { cp.setCursor (c.getCursor ()); ! Rectangle bounds = c.getBounds (); cp.setBounds (bounds.x, bounds.y, bounds.width, bounds.height); cp.setVisible (c.isVisible ()); --- 446,458 ---- if (c.getBackground () == null) c.setBackground (cp.getBackground ()); // if (c.getFont () == null) ! // c.setFont (cp.getFont ()); ! /* Make the Peer reflect the state of the Component */ if (! (c instanceof Window)) { cp.setCursor (c.getCursor ()); ! Rectangle bounds = c.getBounds (); cp.setBounds (bounds.x, bounds.y, bounds.width, bounds.height); cp.setVisible (c.isVisible ()); *************** public class GtkToolkit extends gnu.java *** 465,477 **** return new GtkButtonPeer (b); } ! protected CanvasPeer createCanvas (Canvas c) { checkHeadless(); return new GtkCanvasPeer (c); } ! protected CheckboxPeer createCheckbox (Checkbox cb) { checkHeadless(); return new GtkCheckboxPeer (cb); --- 465,477 ---- return new GtkButtonPeer (b); } ! protected CanvasPeer createCanvas (Canvas c) { checkHeadless(); return new GtkCanvasPeer (c); } ! protected CheckboxPeer createCheckbox (Checkbox cb) { checkHeadless(); return new GtkCheckboxPeer (cb); *************** public class GtkToolkit extends gnu.java *** 483,489 **** return new GtkCheckboxMenuItemPeer (cmi); } ! protected ChoicePeer createChoice (Choice c) { checkHeadless(); return new GtkChoicePeer (c); --- 483,489 ---- return new GtkCheckboxMenuItemPeer (cmi); } ! protected ChoicePeer createChoice (Choice c) { checkHeadless(); return new GtkChoicePeer (c); *************** public class GtkToolkit extends gnu.java *** 509,515 **** return new GtkFramePeer (f); } ! protected LabelPeer createLabel (Label label) { checkHeadless(); return new GtkLabelPeer (label); --- 509,515 ---- return new GtkFramePeer (f); } ! protected LabelPeer createLabel (Label label) { checkHeadless(); return new GtkLabelPeer (label); *************** public class GtkToolkit extends gnu.java *** 521,575 **** return new GtkListPeer (list); } ! protected MenuPeer createMenu (Menu m) { checkHeadless(); return new GtkMenuPeer (m); } ! protected MenuBarPeer createMenuBar (MenuBar mb) { checkHeadless(); return new GtkMenuBarPeer (mb); } ! protected MenuItemPeer createMenuItem (MenuItem mi) { checkHeadless(); return new GtkMenuItemPeer (mi); } ! protected PanelPeer createPanel (Panel p) { checkHeadless(); return new GtkPanelPeer (p); } ! protected PopupMenuPeer createPopupMenu (PopupMenu target) { checkHeadless(); return new GtkPopupMenuPeer (target); } ! protected ScrollPanePeer createScrollPane (ScrollPane sp) { checkHeadless(); return new GtkScrollPanePeer (sp); } ! protected ScrollbarPeer createScrollbar (Scrollbar sb) { checkHeadless(); return new GtkScrollbarPeer (sb); } ! protected TextAreaPeer createTextArea (TextArea ta) { checkHeadless(); return new GtkTextAreaPeer (ta); } ! protected TextFieldPeer createTextField (TextField tf) { checkHeadless(); return new GtkTextFieldPeer (tf); --- 521,575 ---- return new GtkListPeer (list); } ! protected MenuPeer createMenu (Menu m) { checkHeadless(); return new GtkMenuPeer (m); } ! protected MenuBarPeer createMenuBar (MenuBar mb) { checkHeadless(); return new GtkMenuBarPeer (mb); } ! protected MenuItemPeer createMenuItem (MenuItem mi) { checkHeadless(); return new GtkMenuItemPeer (mi); } ! protected PanelPeer createPanel (Panel p) { checkHeadless(); return new GtkPanelPeer (p); } ! protected PopupMenuPeer createPopupMenu (PopupMenu target) { checkHeadless(); return new GtkPopupMenuPeer (target); } ! protected ScrollPanePeer createScrollPane (ScrollPane sp) { checkHeadless(); return new GtkScrollPanePeer (sp); } ! protected ScrollbarPeer createScrollbar (Scrollbar sb) { checkHeadless(); return new GtkScrollbarPeer (sb); } ! protected TextAreaPeer createTextArea (TextArea ta) { checkHeadless(); return new GtkTextAreaPeer (ta); } ! protected TextFieldPeer createTextField (TextField tf) { checkHeadless(); return new GtkTextFieldPeer (tf); *************** public class GtkToolkit extends gnu.java *** 589,595 **** return new GtkEmbeddedWindowPeer (w); } ! /** * @deprecated part of the older "logical font" system in earlier AWT * implementations. Our newer Font class uses getClasspathFontPeer. */ --- 589,595 ---- return new GtkEmbeddedWindowPeer (w); } ! /** * @deprecated part of the older "logical font" system in earlier AWT * implementations. Our newer Font class uses getClasspathFontPeer. */ *************** public class GtkToolkit extends gnu.java *** 601,607 **** /** * Private method that allows size to be set at initialization time. */ ! private FontPeer getFontPeer (String name, int style, int size) { Map attrs = new HashMap(); ClasspathFontPeer.copyStyleToAttrs (style, attrs); --- 601,607 ---- /** * Private method that allows size to be set at initialization time. */ ! private FontPeer getFontPeer (String name, int style, int size) { Map attrs = new HashMap(); ClasspathFontPeer.copyStyleToAttrs (style, attrs); *************** public class GtkToolkit extends gnu.java *** 612,618 **** /** * Newer method to produce a peer for a Font object, even though Sun's * design claims Font should now be peerless, we do not agree with this ! * model, hence "ClasspathFontPeer". */ public ClasspathFontPeer getClasspathFontPeer (String name, --- 612,618 ---- /** * Newer method to produce a peer for a Font object, even though Sun's * design claims Font should now be peerless, we do not agree with this ! * model, hence "ClasspathFontPeer". */ public ClasspathFontPeer getClasspathFontPeer (String name, *************** public class GtkToolkit extends gnu.java *** 634,640 **** } } ! protected EventQueue getSystemEventQueueImpl() { synchronized (GtkToolkit.class) { --- 634,640 ---- } } ! protected EventQueue getSystemEventQueueImpl() { synchronized (GtkToolkit.class) { *************** public class GtkToolkit extends gnu.java *** 642,648 **** { q = new EventQueue(); } ! } return q; } --- 642,648 ---- { q = new EventQueue(); } ! } return q; } *************** public class GtkToolkit extends gnu.java *** 659,667 **** throw new InvalidDnDOperationException(); return new GtkDragSourceContextPeer(e); } ! public T ! createDragGestureRecognizer(Class recognizer, DragSource ds, Component comp, int actions, DragGestureListener l) { --- 659,667 ---- throw new InvalidDnDOperationException(); return new GtkDragSourceContextPeer(e); } ! public T ! createDragGestureRecognizer(Class recognizer, DragSource ds, Component comp, int actions, DragGestureListener l) { *************** public class GtkToolkit extends gnu.java *** 690,696 **** getScreenSizeDimensions(dims); return new Rectangle(0, 0, dims[0], dims[1]); } ! // ClasspathToolkit methods public GraphicsEnvironment getLocalGraphicsEnvironment() --- 690,696 ---- getScreenSizeDimensions(dims); return new Rectangle(0, 0, dims[0], dims[1]); } ! // ClasspathToolkit methods public GraphicsEnvironment getLocalGraphicsEnvironment() *************** public class GtkToolkit extends gnu.java *** 711,724 **** public boolean getLockingKeyState(int keyCode) { int state = getLockState(keyCode); ! if (state != -1) return state == 1; ! if (AWTUtilities.isValidKey(keyCode)) throw new UnsupportedOperationException ("cannot get locking state of key code " + keyCode); ! throw new IllegalArgumentException("invalid key code " + keyCode); } --- 711,724 ---- public boolean getLockingKeyState(int keyCode) { int state = getLockState(keyCode); ! if (state != -1) return state == 1; ! if (AWTUtilities.isValidKey(keyCode)) throw new UnsupportedOperationException ("cannot get locking state of key code " + keyCode); ! throw new IllegalArgumentException("invalid key code " + keyCode); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java Tue Jan 11 19:46:05 2011 *************** public class GtkVolatileImage extends Vo *** 65,71 **** 0x0000FF00, 0x00FF0000, 0xFF000000); ! /** * Don't touch, accessed from native code. */ --- 65,71 ---- 0x0000FF00, 0x00FF0000, 0xFF000000); ! /** * Don't touch, accessed from native code. */ *************** public class GtkVolatileImage extends Vo *** 76,90 **** native void destroy(long pointer); native int[] nativeGetPixels(long pointer); ! /** * Gets the pixels in the current image from GDK. ! * * Note that pixels are in 32-bit RGBA, non-premultiplied, which is different * from Cairo's premultiplied ARGB, which is different from Java's standard * non-premultiplied ARGB. Caution is advised when using this method, to * ensure that the data format remains consistent with what you expect. ! * * @return the current pixels, as reported by GDK. */ public int[] getPixels() --- 76,90 ---- native void destroy(long pointer); native int[] nativeGetPixels(long pointer); ! /** * Gets the pixels in the current image from GDK. ! * * Note that pixels are in 32-bit RGBA, non-premultiplied, which is different * from Cairo's premultiplied ARGB, which is different from Java's standard * non-premultiplied ARGB. Caution is advised when using this method, to * ensure that the data format remains consistent with what you expect. ! * * @return the current pixels, as reported by GDK. */ public int[] getPixels() *************** public class GtkVolatileImage extends Vo *** 106,113 **** nativeDrawVolatile(nativePointer, srcPtr, x, y, w, h); } ! public GtkVolatileImage(GtkComponentPeer component, ! int width, int height, ImageCapabilities caps) { this.width = width; this.height = height; --- 106,113 ---- nativeDrawVolatile(nativePointer, srcPtr, x, y, w, h); } ! public GtkVolatileImage(GtkComponentPeer component, ! int width, int height, ImageCapabilities caps) { this.width = width; this.height = height; *************** public class GtkVolatileImage extends Vo *** 184,190 **** { return width; } ! public int getHeight(java.awt.image.ImageObserver observer) { return height; --- 184,190 ---- { return width; } ! public int getHeight(java.awt.image.ImageObserver observer) { return height; *************** public class GtkVolatileImage extends Vo *** 194,200 **** { return null; } ! /** * Creates a SampleModel that matches GDK's native format */ --- 194,200 ---- { return null; } ! /** * Creates a SampleModel that matches GDK's native format */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java Tue Jan 11 19:46:05 2011 *************** public class GtkWindowPeer extends GtkCo *** 119,131 **** y = awtComponent.getY(); height = awtComponent.getHeight(); width = awtComponent.getWidth(); ! if (!window.isFocusableWindow()) type = GDK_WINDOW_TYPE_HINT_MENU; ! if (parent != null) parent_peer = (GtkWindowPeer) awtComponent.getParent().getPeer(); ! create (type, decorated, parent_peer); } --- 119,131 ---- y = awtComponent.getY(); height = awtComponent.getHeight(); width = awtComponent.getWidth(); ! if (!window.isFocusableWindow()) type = GDK_WINDOW_TYPE_HINT_MENU; ! if (parent != null) parent_peer = (GtkWindowPeer) awtComponent.getParent().getPeer(); ! create (type, decorated, parent_peer); } *************** public class GtkWindowPeer extends GtkCo *** 173,186 **** public void setBounds (int x, int y, int width, int height) { ! if (x != getX() || y != getY() || width != getWidth() || height != getHeight()) { this.x = x; this.y = y; this.width = width; this.height = height; ! nativeSetBounds (x, y, width - insets.left - insets.right, height - insets.top - insets.bottom); --- 173,186 ---- public void setBounds (int x, int y, int width, int height) { ! if (x != getX() || y != getY() || width != getWidth() || height != getHeight()) { this.x = x; this.y = y; this.width = width; this.height = height; ! nativeSetBounds (x, y, width - insets.left - insets.right, height - insets.top - insets.bottom); *************** public class GtkWindowPeer extends GtkCo *** 194,200 **** // Called from setResizable protected native void setSize (int width, int height); ! /** * Needed by both GtkFramePeer and GtkDialogPeer subclasses, so * implemented here. But never actually called on a GtkWindowPeer --- 194,200 ---- // Called from setResizable protected native void setSize (int width, int height); ! /** * Needed by both GtkFramePeer and GtkDialogPeer subclasses, so * implemented here. But never actually called on a GtkWindowPeer *************** public class GtkWindowPeer extends GtkCo *** 215,221 **** } protected void postInsetsChangedEvent (int top, int left, ! int bottom, int right) { insets.top = top; insets.left = left; --- 215,221 ---- } protected void postInsetsChangedEvent (int top, int left, ! int bottom, int right) { insets.top = top; insets.left = left; *************** public class GtkWindowPeer extends GtkCo *** 324,331 **** // insets but GtkFramePeer and GtkDialogPeer insets will be // non-zero. q().postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT, ! new Rectangle (x + insets.left, ! y + insets.top, width, height))); } --- 324,331 ---- // insets but GtkFramePeer and GtkDialogPeer insets will be // non-zero. q().postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT, ! new Rectangle (x + insets.left, ! y + insets.top, width, height))); } *************** public class GtkWindowPeer extends GtkCo *** 335,341 **** return false; } ! public boolean requestFocus (Component request, boolean temporary, boolean allowWindowFocus, long time) { assert request == awtComponent || isLightweightDescendant(request); --- 335,341 ---- return false; } ! public boolean requestFocus (Component request, boolean temporary, boolean allowWindowFocus, long time) { assert request == awtComponent || isLightweightDescendant(request); *************** public class GtkWindowPeer extends GtkCo *** 380,386 **** return g; } ! protected void postMouseEvent(int id, long when, int mods, int x, int y, int clickCount, boolean popupTrigger) { // Translate AWT co-ordinates, which include a window frame's --- 380,386 ---- return g; } ! protected void postMouseEvent(int id, long when, int mods, int x, int y, int clickCount, boolean popupTrigger) { // Translate AWT co-ordinates, which include a window frame's *************** public class GtkWindowPeer extends GtkCo *** 388,395 **** // frame's insets. GtkWindowPeer should always have all-zero // insets but GtkFramePeer and GtkDialogPeer insets will be // non-zero. ! super.postMouseEvent (id, when, mods, ! x + insets.left, y + insets.top, clickCount, popupTrigger); } --- 388,395 ---- // frame's insets. GtkWindowPeer should always have all-zero // insets but GtkFramePeer and GtkDialogPeer insets will be // non-zero. ! super.postMouseEvent (id, when, mods, ! x + insets.left, y + insets.top, clickCount, popupTrigger); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java Tue Jan 11 19:46:05 2011 *************** public class VolatileImageGraphics exten *** 108,114 **** { if (comp == null || comp instanceof AlphaComposite) super.draw(s); ! // Custom composite else { --- 108,114 ---- { if (comp == null || comp instanceof AlphaComposite) super.draw(s); ! // Custom composite else { *************** public class VolatileImageGraphics exten *** 119,129 **** g2d.setColor(this.getColor()); g2d.setStroke(this.getStroke()); g2d.draw(s); ! drawComposite(s.getBounds2D(), null); } } ! public void fill(Shape s) { if (comp == null || comp instanceof AlphaComposite) --- 119,129 ---- g2d.setColor(this.getColor()); g2d.setStroke(this.getStroke()); g2d.draw(s); ! drawComposite(s.getBounds2D(), null); } } ! public void fill(Shape s) { if (comp == null || comp instanceof AlphaComposite) *************** public class VolatileImageGraphics exten *** 139,154 **** g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.fill(s); ! drawComposite(s.getBounds2D(), null); } } ! public void drawGlyphVector(GlyphVector gv, float x, float y) { if (comp == null || comp instanceof AlphaComposite) super.drawGlyphVector(gv, x, y); ! // Custom composite else { --- 139,154 ---- g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.fill(s); ! drawComposite(s.getBounds2D(), null); } } ! public void drawGlyphVector(GlyphVector gv, float x, float y) { if (comp == null || comp instanceof AlphaComposite) super.drawGlyphVector(gv, x, y); ! // Custom composite else { *************** public class VolatileImageGraphics exten *** 156,166 **** createBuffer(); Graphics2D g2d = (Graphics2D)buffer.getGraphics(); ! g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.drawGlyphVector(gv, x, y); ! Rectangle2D bounds = gv.getLogicalBounds(); bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), bounds.getWidth(), bounds.getHeight()); --- 156,166 ---- createBuffer(); Graphics2D g2d = (Graphics2D)buffer.getGraphics(); ! g2d.setPaint(this.getPaint()); g2d.setColor(this.getColor()); g2d.drawGlyphVector(gv, x, y); ! Rectangle2D bounds = gv.getLogicalBounds(); bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), bounds.getWidth(), bounds.getHeight()); *************** public class VolatileImageGraphics exten *** 173,179 **** { if (comp == null || comp instanceof AlphaComposite) return super.drawImage(img, xform, bgcolor, obs); ! // Custom composite else { --- 173,179 ---- { if (comp == null || comp instanceof AlphaComposite) return super.drawImage(img, xform, bgcolor, obs); ! // Custom composite else { *************** public class VolatileImageGraphics exten *** 186,192 **** img = Toolkit.getDefaultToolkit().createImage(source); } BufferedImage bImg = (BufferedImage) img; ! // Find dimensions of translation Point2D origin = new Point2D.Double(bImg.getMinX(), bImg.getMinY()); Point2D pt = new Point2D.Double(bImg.getWidth(), bImg.getHeight()); --- 186,192 ---- img = Toolkit.getDefaultToolkit().createImage(source); } BufferedImage bImg = (BufferedImage) img; ! // Find dimensions of translation Point2D origin = new Point2D.Double(bImg.getMinX(), bImg.getMinY()); Point2D pt = new Point2D.Double(bImg.getWidth(), bImg.getHeight()); *************** public class VolatileImageGraphics exten *** 195,204 **** origin = xform.transform(origin, origin); pt = xform.transform(pt, pt); } ! // Create buffer and draw image createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawImage(img, xform, obs); --- 195,204 ---- origin = xform.transform(origin, origin); pt = xform.transform(pt, pt); } ! // Create buffer and draw image createBuffer(); ! Graphics2D g2d = (Graphics2D)buffer.getGraphics(); g2d.setRenderingHints(this.getRenderingHints()); g2d.drawImage(img, xform, obs); *************** public class VolatileImageGraphics exten *** 211,241 **** obs); } } ! public boolean drawImage(Image img, int x, int y, ImageObserver observer) { if (img instanceof GtkVolatileImage && (comp == null || comp instanceof AlphaComposite)) { ! owner.drawVolatile( ((GtkVolatileImage)img).nativePointer, x, y, ! ((GtkVolatileImage)img).width, ((GtkVolatileImage)img).height ); return true; ! } return super.drawImage( img, x, y, observer ); } ! public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { if ((img instanceof GtkVolatileImage) && (comp == null || comp instanceof AlphaComposite)) { ! owner.drawVolatile( ((GtkVolatileImage)img).nativePointer, x, y, width, height ); return true; ! } return super.drawImage( img, x, y, width, height, observer ); } --- 211,241 ---- obs); } } ! public boolean drawImage(Image img, int x, int y, ImageObserver observer) { if (img instanceof GtkVolatileImage && (comp == null || comp instanceof AlphaComposite)) { ! owner.drawVolatile( ((GtkVolatileImage)img).nativePointer, x, y, ! ((GtkVolatileImage)img).width, ((GtkVolatileImage)img).height ); return true; ! } return super.drawImage( img, x, y, observer ); } ! public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { if ((img instanceof GtkVolatileImage) && (comp == null || comp instanceof AlphaComposite)) { ! owner.drawVolatile( ((GtkVolatileImage)img).nativePointer, x, y, width, height ); return true; ! } return super.drawImage( img, x, y, width, height, observer ); } *************** public class VolatileImageGraphics exten *** 243,273 **** { return new Rectangle2D.Double(0, 0, owner.width, owner.height); } ! private boolean drawComposite(Rectangle2D bounds, ImageObserver observer) { // Clip source to visible areas that need updating Rectangle2D clip = this.getClipBounds(); Rectangle2D.intersect(bounds, clip, bounds); ! BufferedImage buffer2 = buffer; if (!bounds.equals(buffer2.getRaster().getBounds())) buffer2 = buffer2.getSubimage((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight()); ! // Get current on-screen pixels (destination) and clip to bounds BufferedImage current = owner.getSnapshot(); double[] points = new double[] {bounds.getX(), bounds.getY(), bounds.getMaxX(), bounds.getMaxY()}; transform.transform(points, 0, points, 0, 2); ! Rectangle2D deviceBounds = new Rectangle2D.Double(points[0], points[1], points[2] - points[0], points[3] - points[1]); Rectangle2D.intersect(deviceBounds, this.getClipInDevSpace(), deviceBounds); ! current = current.getSubimage((int)deviceBounds.getX(), (int)deviceBounds.getY(), (int)deviceBounds.getWidth(), --- 243,273 ---- { return new Rectangle2D.Double(0, 0, owner.width, owner.height); } ! private boolean drawComposite(Rectangle2D bounds, ImageObserver observer) { // Clip source to visible areas that need updating Rectangle2D clip = this.getClipBounds(); Rectangle2D.intersect(bounds, clip, bounds); ! BufferedImage buffer2 = buffer; if (!bounds.equals(buffer2.getRaster().getBounds())) buffer2 = buffer2.getSubimage((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight()); ! // Get current on-screen pixels (destination) and clip to bounds BufferedImage current = owner.getSnapshot(); double[] points = new double[] {bounds.getX(), bounds.getY(), bounds.getMaxX(), bounds.getMaxY()}; transform.transform(points, 0, points, 0, 2); ! Rectangle2D deviceBounds = new Rectangle2D.Double(points[0], points[1], points[2] - points[0], points[3] - points[1]); Rectangle2D.intersect(deviceBounds, this.getClipInDevSpace(), deviceBounds); ! current = current.getSubimage((int)deviceBounds.getX(), (int)deviceBounds.getY(), (int)deviceBounds.getWidth(), *************** public class VolatileImageGraphics exten *** 276,282 **** // Perform actual composite operation compCtx.compose(buffer2.getRaster(), current.getRaster(), buffer2.getRaster()); ! // This MUST call directly into the "action" method in CairoGraphics2D, // not one of the wrappers, to ensure that the composite isn't processed // more than once! --- 276,282 ---- // Perform actual composite operation compCtx.compose(buffer2.getRaster(), current.getRaster(), buffer2.getRaster()); ! // This MUST call directly into the "action" method in CairoGraphics2D, // not one of the wrappers, to ensure that the composite isn't processed // more than once! *************** public class VolatileImageGraphics exten *** 290,296 **** return rv; } ! private void createBuffer() { if (buffer == null) --- 290,296 ---- return rv; } ! private void createBuffer() { if (buffer == null) *************** public class VolatileImageGraphics exten *** 299,305 **** rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(owner.width, owner.height), new Point(0,0)); ! buffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), new Hashtable()); --- 299,305 ---- rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(owner.width, owner.height), new Point(0,0)); ! buffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), new Hashtable()); *************** public class VolatileImageGraphics exten *** 307,318 **** else { Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); ! g2d.setBackground(new Color(0,0,0,0)); g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } } ! protected ColorModel getNativeCM() { // We should really return GtkVolatileImage.gdkColorModel , --- 307,318 ---- else { Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); ! g2d.setBackground(new Color(0,0,0,0)); g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } } ! protected ColorModel getNativeCM() { // We should really return GtkVolatileImage.gdkColorModel , *************** public class VolatileImageGraphics exten *** 323,326 **** return CairoSurface.cairoCM_pre; } } - --- 323,325 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HeadlessGraphicsEnvironment.java -- A graphics environment for headless mode Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* HeadlessGraphicsEnvironment.java -- A graphics environment for headless mode Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/MainQtThread.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/MainQtThread.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/MainQtThread.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/MainQtThread.java Tue Jan 11 19:46:05 2011 *************** public class MainQtThread extends Thread *** 81,86 **** exec(QApplicationPointer); } ! } ! ! --- 81,84 ---- exec(QApplicationPointer); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QMatrix.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QMatrix.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QMatrix.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QMatrix.java Tue Jan 11 19:46:05 2011 *************** public class QMatrix extends NativeWrapp *** 53,60 **** init( matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5] ); } ! private native void init(double m00, double m10, double m01, double m11, ! double m02, double m12 ); private native double[] getMatrix(); --- 53,60 ---- init( matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5] ); } ! private native void init(double m00, double m10, double m01, double m11, ! double m02, double m12 ); private native double[] getMatrix(); *************** public class QMatrix extends NativeWrapp *** 64,73 **** } public native void dispose(); ! public void finalize() { dispose(); } } - --- 64,72 ---- } public native void dispose(); ! public void finalize() { dispose(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QPainterPath.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QPainterPath.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QPainterPath.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QPainterPath.java Tue Jan 11 19:46:05 2011 *************** public class QPainterPath extends Native *** 61,91 **** while( !pi.isDone() ) { ! switch( pi.currentSegment(coords) ) ! { ! case PathIterator.SEG_MOVETO: ! moveTo( coords[0], coords[1] ); ! break; ! case PathIterator.SEG_CLOSE: ! close(); ! break; ! ! case PathIterator.SEG_LINETO: ! lineTo( coords[0], coords[1] ); ! break; ! ! case PathIterator.SEG_QUADTO: ! quadTo( coords[0], coords[1], coords[2], coords[3] ); ! break; ! ! case PathIterator.SEG_CUBICTO: ! cubicTo( coords[0], coords[1], ! coords[2], coords[3], ! coords[4], coords[5] ); ! break; ! } ! pi.next(); } } --- 61,91 ---- while( !pi.isDone() ) { ! switch( pi.currentSegment(coords) ) ! { ! case PathIterator.SEG_MOVETO: ! moveTo( coords[0], coords[1] ); ! break; ! case PathIterator.SEG_CLOSE: ! close(); ! break; ! ! case PathIterator.SEG_LINETO: ! lineTo( coords[0], coords[1] ); ! break; ! ! case PathIterator.SEG_QUADTO: ! quadTo( coords[0], coords[1], coords[2], coords[3] ); ! break; ! ! case PathIterator.SEG_CUBICTO: ! cubicTo( coords[0], coords[1], ! coords[2], coords[3], ! coords[4], coords[5] ); ! break; ! } ! pi.next(); } } *************** public class QPainterPath extends Native *** 129,141 **** private native void quadTo(double x1, double y1, double x2, double y2); private native void cubicTo(double x1, double y1, double x2, double y2, ! double x3, double y3); public native void dispose(); ! public void finalize() { dispose(); } } - --- 129,140 ---- private native void quadTo(double x1, double y1, double x2, double y2); private native void cubicTo(double x1, double y1, double x2, double y2, ! double x3, double y3); public native void dispose(); ! public void finalize() { dispose(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QPen.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QPen.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QPen.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QPen.java Tue Jan 11 19:46:05 2011 *************** public class QPen extends NativeWrapper *** 62,71 **** private native void init(double width, int cap, int join, double miterlimit); public native void dispose(); ! public void finalize() { dispose(); } } - --- 62,70 ---- private native void init(double width, int cap, int join, double miterlimit); public native void dispose(); ! public void finalize() { dispose(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtAudioClip.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtAudioClip.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtAudioClip.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtAudioClip.java Tue Jan 11 19:46:05 2011 *************** public class QtAudioClip extends NativeW *** 57,65 **** File f = new File(filename); try { ! String fn = f.getCanonicalPath(); ! loadClip( fn ); ! } catch(IOException e) { } --- 57,65 ---- File f = new File(filename); try { ! String fn = f.getCanonicalPath(); ! loadClip( fn ); ! } catch(IOException e) { } *************** public class QtAudioClip extends NativeW *** 67,73 **** public QtAudioClip(URL url) { ! } private native void loadClip(String filename); --- 67,73 ---- public QtAudioClip(URL url) { ! } private native void loadClip(String filename); *************** public class QtAudioClip extends NativeW *** 78,84 **** /** * Checks that Qt and sound is available. ! */ private void checkForQt() { if( t == null ) --- 78,84 ---- /** * Checks that Qt and sound is available. ! */ private void checkForQt() { if( t == null ) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtButtonPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtButtonPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtButtonPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtButtonPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtButtonPeer extends QtComp *** 62,79 **** void fireClick(int modifiers) { ActionEvent e = new ActionEvent(owner, ! ActionEvent.ACTION_PERFORMED, ! ((Button)owner).getActionCommand(), ! System.currentTimeMillis(), ! modifiers); QtToolkit.eventQueue.postEvent(e); } // ************ Public methods ********************* ! public native void setLabel( String label ); } - - - - --- 62,75 ---- void fireClick(int modifiers) { ActionEvent e = new ActionEvent(owner, ! ActionEvent.ACTION_PERFORMED, ! ((Button)owner).getActionCommand(), ! System.currentTimeMillis(), ! modifiers); QtToolkit.eventQueue.postEvent(e); } // ************ Public methods ********************* ! public native void setLabel( String label ); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtCheckboxPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtCheckboxPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtCheckboxPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtCheckboxPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtCheckboxPeer extends QtCo *** 50,67 **** // Map QButtonGroup<->CheckboxGroup private static WeakHashMap groupMap; ! static { groupMap = new WeakHashMap(); } ! public QtCheckboxPeer( QtToolkit kit, Checkbox owner ) { super( kit, owner ); } ! protected native void init(); ! protected void setup() { super.setup(); --- 50,67 ---- // Map QButtonGroup<->CheckboxGroup private static WeakHashMap groupMap; ! static { groupMap = new WeakHashMap(); } ! public QtCheckboxPeer( QtToolkit kit, Checkbox owner ) { super( kit, owner ); } ! protected native void init(); ! protected void setup() { super.setup(); *************** public class QtCheckboxPeer extends QtCo *** 73,104 **** private void fireToggle(boolean checked) { if (group == null) ! ((Checkbox)owner).setState( checked ); else if ( checked ) ! group.setSelectedCheckbox((Checkbox)owner); int sel = checked ? ItemEvent.SELECTED : ItemEvent.DESELECTED; ! ItemEvent e = new ItemEvent((Checkbox)owner, ! ItemEvent.ITEM_STATE_CHANGED, ! ((Checkbox)owner).getLabel(), ! sel); QtToolkit.eventQueue.postEvent(e); } ! // ************ Public methods ********************* ! public void setCheckboxGroup( CheckboxGroup group ) ! { ! if(this.group == group) return; // if we change from a checkbox to a radio button or vice versa if((this.group == null) != (group == null)) { ! this.group = group; ! callInit(); ! setup(); } this.group = group; --- 73,104 ---- private void fireToggle(boolean checked) { if (group == null) ! ((Checkbox)owner).setState( checked ); else if ( checked ) ! group.setSelectedCheckbox((Checkbox)owner); int sel = checked ? ItemEvent.SELECTED : ItemEvent.DESELECTED; ! ItemEvent e = new ItemEvent((Checkbox)owner, ! ItemEvent.ITEM_STATE_CHANGED, ! ((Checkbox)owner).getLabel(), ! sel); QtToolkit.eventQueue.postEvent(e); } ! // ************ Public methods ********************* ! public void setCheckboxGroup( CheckboxGroup group ) ! { ! if(this.group == group) return; // if we change from a checkbox to a radio button or vice versa if((this.group == null) != (group == null)) { ! this.group = group; ! callInit(); ! setup(); } this.group = group; *************** public class QtCheckboxPeer extends QtCo *** 109,113 **** public native void setState( boolean state ); } - - --- 109,111 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtChoicePeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtChoicePeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtChoicePeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtChoicePeer.java Tue Jan 11 19:46:05 2011 *************** public class QtChoicePeer extends QtComp *** 47,62 **** { super( kit, owner ); } ! protected native void init(); protected void setup() { super.setup(); ! Choice c = (Choice) owner; int n = c.getItemCount(); ! for ( int i = 0; i < n ; i++ ) add( c.getItem( i ), i ); select( c.getSelectedIndex() ); } --- 47,62 ---- { super( kit, owner ); } ! protected native void init(); protected void setup() { super.setup(); ! Choice c = (Choice) owner; int n = c.getItemCount(); ! for ( int i = 0; i < n ; i++ ) add( c.getItem( i ), i ); select( c.getSelectedIndex() ); } *************** public class QtChoicePeer extends QtComp *** 64,73 **** private void fireChoice( int index ) { ((Choice)owner).select( index ); ! ItemEvent e = new ItemEvent((Choice)owner, ! ItemEvent.ITEM_STATE_CHANGED, ! ((Choice)owner).getItem(index), ! ItemEvent.SELECTED); QtToolkit.eventQueue.postEvent(e); } --- 64,73 ---- private void fireChoice( int index ) { ((Choice)owner).select( index ); ! ItemEvent e = new ItemEvent((Choice)owner, ! ItemEvent.ITEM_STATE_CHANGED, ! ((Choice)owner).getItem(index), ! ItemEvent.SELECTED); QtToolkit.eventQueue.postEvent(e); } *************** public class QtChoicePeer extends QtComp *** 91,95 **** public native void select( int index ); } - - --- 91,93 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtComponentGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtComponentGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtComponentGraphics.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtComponentGraphics.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Graphics; *** 43,50 **** import java.awt.Rectangle; /** ! * QtComponentPainter is a Graphics2D context for painting directly to AWT ! * components. They require an existing QPainter object (the one passed into * the native paint method), and are created there (ONLY). * * Since this context does direct on-screen drawing it is NOT thread-safe, --- 43,50 ---- import java.awt.Rectangle; /** ! * QtComponentPainter is a Graphics2D context for painting directly to AWT ! * components. They require an existing QPainter object (the one passed into * the native paint method), and are created there (ONLY). * * Since this context does direct on-screen drawing it is NOT thread-safe, *************** public class QtComponentGraphics extends *** 63,77 **** * * @param ptr the pointer to the QPainter object. */ ! public QtComponentGraphics(long ptr, QtComponentPeer component, ! int x, int y, int w, int h) { nativeObject = ptr; peer = component; Rectangle r = new Rectangle(x, y, w, h); initialClip = r; ! setAlpha( 1.0 ); Color c = component.owner.getBackground(); if(c == null) --- 63,77 ---- * * @param ptr the pointer to the QPainter object. */ ! public QtComponentGraphics(long ptr, QtComponentPeer component, ! int x, int y, int w, int h) { nativeObject = ptr; peer = component; Rectangle r = new Rectangle(x, y, w, h); initialClip = r; ! setAlpha( 1.0 ); Color c = component.owner.getBackground(); if(c == null) *************** public class QtComponentGraphics extends *** 103,113 **** /** * This is a tricky one ! */ ! public void copyArea(int x, int y, int width, int height, ! int dx, int dy) { ! // FIXME } /** --- 103,113 ---- /** * This is a tricky one ! */ ! public void copyArea(int x, int y, int width, int height, ! int dx, int dy) { ! // FIXME } /** *************** public class QtComponentGraphics extends *** 117,122 **** { return peer.getGraphicsConfiguration(); } ! } ! ! --- 117,120 ---- { return peer.getGraphicsConfiguration(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java Tue Jan 11 19:46:05 2011 *************** import java.awt.event.ComponentEvent; // *** 66,72 **** import java.awt.event.FocusEvent; // 100% import java.awt.event.InputEvent; // (abstract) import java.awt.event.KeyEvent; // 2/3 ! import java.awt.event.MouseEvent; // 70%? import java.awt.event.PaintEvent; // Yup. import java.awt.event.WindowEvent; // 2/ 12 import java.util.Timer; --- 66,72 ---- import java.awt.event.FocusEvent; // 100% import java.awt.event.InputEvent; // (abstract) import java.awt.event.KeyEvent; // 2/3 ! import java.awt.event.MouseEvent; // 70%? import java.awt.event.PaintEvent; // Yup. import java.awt.event.WindowEvent; // 2/ 12 import java.util.Timer; *************** public class QtComponentPeer extends Nat *** 117,132 **** this.toolkit = kit; qtApp = QtToolkit.guiThread.QApplicationPointer; nativeObject = 0; ! synchronized(this) { ! callInit(); // Calls the init method FROM THE MAIN THREAD. ! try ! { ! wait(); // Wait for the thing to be created. ! } ! catch(InterruptedException e) ! { ! } } setup(); hasMotionListeners = false; --- 117,132 ---- this.toolkit = kit; qtApp = QtToolkit.guiThread.QApplicationPointer; nativeObject = 0; ! synchronized(this) { ! callInit(); // Calls the init method FROM THE MAIN THREAD. ! try ! { ! wait(); // Wait for the thing to be created. ! } ! catch(InterruptedException e) ! { ! } } setup(); hasMotionListeners = false; *************** public class QtComponentPeer extends Nat *** 147,176 **** settingUp = true; if (owner != null) { ! if (owner instanceof javax.swing.JComponent) ! setBackground(owner.getBackground()); ! else ! owner.setBackground(getNativeBackground()); ! ! if (owner.getForeground() != null) ! setForeground(owner.getForeground()); ! else ! setForeground( Color.black ); ! if (owner.getCursor() != null) ! if (owner.getCursor().getType() != Cursor.DEFAULT_CURSOR) ! setCursor(owner.getCursor()); ! ! if (owner.getFont() != null) ! setFont(owner.getFont()); ! setEnabled( owner.isEnabled() ); ! backBuffer = null; ! updateBounds(); ! setVisible( owner.isVisible() ); ! QtToolkit.repaintThread.queueComponent(this); } settingUp = false; } --- 147,176 ---- settingUp = true; if (owner != null) { ! if (owner instanceof javax.swing.JComponent) ! setBackground(owner.getBackground()); ! else ! owner.setBackground(getNativeBackground()); ! if (owner.getForeground() != null) ! setForeground(owner.getForeground()); ! else ! setForeground( Color.black ); ! if (owner.getCursor() != null) ! if (owner.getCursor().getType() != Cursor.DEFAULT_CURSOR) ! setCursor(owner.getCursor()); ! if (owner.getFont() != null) ! setFont(owner.getFont()); ! setEnabled( owner.isEnabled() ); ! ! backBuffer = null; ! updateBounds(); ! ! setVisible( owner.isVisible() ); ! QtToolkit.repaintThread.queueComponent(this); } settingUp = false; } *************** public class QtComponentPeer extends Nat *** 189,197 **** private boolean drawableComponent() { ! return ((this instanceof QtContainerPeer && ! !(this instanceof QtScrollPanePeer)) || ! (this instanceof QtCanvasPeer)); } void updateBounds() --- 189,197 ---- private boolean drawableComponent() { ! return ((this instanceof QtContainerPeer && ! !(this instanceof QtScrollPanePeer)) || ! (this instanceof QtCanvasPeer)); } void updateBounds() *************** public class QtComponentPeer extends Nat *** 204,222 **** { if(width <= 0 || height <= 0) return; ! if( !drawableComponent() && backBuffer == null) return; if( backBuffer != null ) { ! if( width < backBuffer.width && height < backBuffer.height ) ! return; ! backBuffer.dispose(); } backBuffer = new QtImage(width, height); } ! // ************ Event methods ********************* --- 204,222 ---- { if(width <= 0 || height <= 0) return; ! if( !drawableComponent() && backBuffer == null) return; if( backBuffer != null ) { ! if( width < backBuffer.width && height < backBuffer.height ) ! return; ! backBuffer.dispose(); } backBuffer = new QtImage(width, height); } ! // ************ Event methods ********************* *************** public class QtComponentPeer extends Nat *** 227,244 **** { if (owner instanceof Window) { ! WindowEvent e = new WindowEvent((Window)owner, ! WindowEvent.WINDOW_CLOSING); ! QtToolkit.eventQueue.postEvent(e); } } protected void enterEvent(int modifiers, int x, int y, int dummy) { ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_ENTERED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, 0, false); QtToolkit.eventQueue.postEvent(e); } --- 227,244 ---- { if (owner instanceof Window) { ! WindowEvent e = new WindowEvent((Window)owner, ! WindowEvent.WINDOW_CLOSING); ! QtToolkit.eventQueue.postEvent(e); } } protected void enterEvent(int modifiers, int x, int y, int dummy) { ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_ENTERED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, 0, false); QtToolkit.eventQueue.postEvent(e); } *************** public class QtComponentPeer extends Nat *** 257,287 **** protected void keyPressEvent(int modifiers, int code, int unicode, int dummy) { KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ! KeyEvent e = new KeyEvent(owner, ! KeyEvent.KEY_PRESSED, ! System.currentTimeMillis(), ! modifiers, code, (char)(unicode & 0xFFFF), ! KeyEvent.KEY_LOCATION_UNKNOWN); if (!manager.dispatchEvent (e)) QtToolkit.eventQueue.postEvent(e); } protected void keyReleaseEvent(int modifiers, int code, int unicode, int dummy) { ! KeyEvent e = new KeyEvent(owner, ! KeyEvent.KEY_RELEASED, ! System.currentTimeMillis(), ! modifiers, code, (char)(unicode & 0xFFFF), ! KeyEvent.KEY_LOCATION_UNKNOWN); QtToolkit.eventQueue.postEvent(e); } protected void leaveEvent(int modifiers, int x, int y, int dummy) { ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_EXITED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, 0, false); QtToolkit.eventQueue.postEvent(e); } --- 257,287 ---- protected void keyPressEvent(int modifiers, int code, int unicode, int dummy) { KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ! KeyEvent e = new KeyEvent(owner, ! KeyEvent.KEY_PRESSED, ! System.currentTimeMillis(), ! modifiers, code, (char)(unicode & 0xFFFF), ! KeyEvent.KEY_LOCATION_UNKNOWN); if (!manager.dispatchEvent (e)) QtToolkit.eventQueue.postEvent(e); } protected void keyReleaseEvent(int modifiers, int code, int unicode, int dummy) { ! KeyEvent e = new KeyEvent(owner, ! KeyEvent.KEY_RELEASED, ! System.currentTimeMillis(), ! modifiers, code, (char)(unicode & 0xFFFF), ! KeyEvent.KEY_LOCATION_UNKNOWN); QtToolkit.eventQueue.postEvent(e); } protected void leaveEvent(int modifiers, int x, int y, int dummy) { ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_EXITED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, 0, false); QtToolkit.eventQueue.postEvent(e); } *************** public class QtComponentPeer extends Nat *** 291,307 **** if( (eventMask & AWTEvent.MOUSE_EVENT_MASK) == 0 ) return; int button = 0; ! if((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK) button = 1; ! if((modifiers & InputEvent.BUTTON2_DOWN_MASK) == InputEvent.BUTTON2_DOWN_MASK) button = 2; ! if((modifiers & InputEvent.BUTTON3_DOWN_MASK) == InputEvent.BUTTON3_DOWN_MASK) button = 3; ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_CLICKED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, clickCount, ! false, button); QtToolkit.eventQueue.postEvent(e); } --- 291,307 ---- if( (eventMask & AWTEvent.MOUSE_EVENT_MASK) == 0 ) return; int button = 0; ! if((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK) button = 1; ! if((modifiers & InputEvent.BUTTON2_DOWN_MASK) == InputEvent.BUTTON2_DOWN_MASK) button = 2; ! if((modifiers & InputEvent.BUTTON3_DOWN_MASK) == InputEvent.BUTTON3_DOWN_MASK) button = 3; ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_CLICKED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, clickCount, ! false, button); QtToolkit.eventQueue.postEvent(e); } *************** public class QtComponentPeer extends Nat *** 311,331 **** return; int button = 0; ! if((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK) button = 1; ! if((modifiers & InputEvent.BUTTON2_DOWN_MASK) == InputEvent.BUTTON2_DOWN_MASK) button = 2; ! if((modifiers & InputEvent.BUTTON3_DOWN_MASK) == ! InputEvent.BUTTON3_DOWN_MASK) button = 3; ! int type = (button != 0) ? MouseEvent.MOUSE_DRAGGED :MouseEvent.MOUSE_MOVED; ! ! MouseEvent e = new MouseEvent(owner, ! type, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, clickCount, ! false, button); QtToolkit.eventQueue.postEvent(e); } --- 311,331 ---- return; int button = 0; ! if((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK) button = 1; ! if((modifiers & InputEvent.BUTTON2_DOWN_MASK) == InputEvent.BUTTON2_DOWN_MASK) button = 2; ! if((modifiers & InputEvent.BUTTON3_DOWN_MASK) == ! InputEvent.BUTTON3_DOWN_MASK) button = 3; ! int type = (button != 0) ? MouseEvent.MOUSE_DRAGGED :MouseEvent.MOUSE_MOVED; ! ! MouseEvent e = new MouseEvent(owner, ! type, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, clickCount, ! false, button); QtToolkit.eventQueue.postEvent(e); } *************** public class QtComponentPeer extends Nat *** 334,351 **** if( (eventMask & AWTEvent.MOUSE_EVENT_MASK) == 0 ) return; int button = 0; ! if((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK) button = 1; ! if((modifiers & InputEvent.BUTTON2_DOWN_MASK) == InputEvent.BUTTON2_DOWN_MASK) button = 2; ! if((modifiers & InputEvent.BUTTON3_DOWN_MASK) == InputEvent.BUTTON3_DOWN_MASK) button = 3; ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_PRESSED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, clickCount, ! ( button == POPUP_TRIGGER ), ! button); QtToolkit.eventQueue.postEvent(e); } --- 334,351 ---- if( (eventMask & AWTEvent.MOUSE_EVENT_MASK) == 0 ) return; int button = 0; ! if((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK) button = 1; ! if((modifiers & InputEvent.BUTTON2_DOWN_MASK) == InputEvent.BUTTON2_DOWN_MASK) button = 2; ! if((modifiers & InputEvent.BUTTON3_DOWN_MASK) == InputEvent.BUTTON3_DOWN_MASK) button = 3; ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_PRESSED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, clickCount, ! ( button == POPUP_TRIGGER ), ! button); QtToolkit.eventQueue.postEvent(e); } *************** public class QtComponentPeer extends Nat *** 354,371 **** if( (eventMask & AWTEvent.MOUSE_EVENT_MASK) == 0 ) return; int button = 0; ! if((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK) button = 1; ! if((modifiers & InputEvent.BUTTON2_DOWN_MASK) == InputEvent.BUTTON2_DOWN_MASK) button = 2; ! if((modifiers & InputEvent.BUTTON3_DOWN_MASK) == InputEvent.BUTTON3_DOWN_MASK) button = 3; ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_RELEASED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, clickCount, ! false, button); QtToolkit.eventQueue.postEvent(e); } --- 354,371 ---- if( (eventMask & AWTEvent.MOUSE_EVENT_MASK) == 0 ) return; int button = 0; ! if((modifiers & InputEvent.BUTTON1_DOWN_MASK) == InputEvent.BUTTON1_DOWN_MASK) button = 1; ! if((modifiers & InputEvent.BUTTON2_DOWN_MASK) == InputEvent.BUTTON2_DOWN_MASK) button = 2; ! if((modifiers & InputEvent.BUTTON3_DOWN_MASK) == InputEvent.BUTTON3_DOWN_MASK) button = 3; ! MouseEvent e = new MouseEvent(owner, ! MouseEvent.MOUSE_RELEASED, ! System.currentTimeMillis(), ! (modifiers & 0x2FF), x, y, clickCount, ! false, button); QtToolkit.eventQueue.postEvent(e); } *************** public class QtComponentPeer extends Nat *** 373,388 **** { if( !ignoreResize ) { ! // Since Component.setLocation calls back to setBounds, ! // we need to ignore that. ! ignoreResize = true; ! owner.setLocation( x, y ); ! ignoreResize = false; } } ! protected void resizeEvent(int oldWidth, int oldHeight, ! int width, int height) { if(!(owner instanceof Window)) return; --- 373,388 ---- { if( !ignoreResize ) { ! // Since Component.setLocation calls back to setBounds, ! // we need to ignore that. ! ignoreResize = true; ! owner.setLocation( x, y ); ! ignoreResize = false; } } ! protected void resizeEvent(int oldWidth, int oldHeight, ! int width, int height) { if(!(owner instanceof Window)) return; *************** public class QtComponentPeer extends Nat *** 390,397 **** ignoreResize = true; owner.setSize(width, height); ignoreResize = false; ! ComponentEvent e = new ComponentEvent(owner, ! ComponentEvent.COMPONENT_RESIZED); QtToolkit.eventQueue.postEvent(e); QtToolkit.repaintThread.queueComponent(this); } --- 390,397 ---- ignoreResize = true; owner.setSize(width, height); ignoreResize = false; ! ComponentEvent e = new ComponentEvent(owner, ! ComponentEvent.COMPONENT_RESIZED); QtToolkit.eventQueue.postEvent(e); QtToolkit.repaintThread.queueComponent(this); } *************** public class QtComponentPeer extends Nat *** 400,421 **** { if (owner instanceof Window) { ! WindowEvent e = new WindowEvent((Window)owner, ! WindowEvent.WINDOW_OPENED); ! QtToolkit.eventQueue.postEvent(e); } ! else { ! ComponentEvent e = new ComponentEvent(owner, ! ComponentEvent.COMPONENT_SHOWN); ! QtToolkit.eventQueue.postEvent(e); } } protected void hideEvent() { ! ComponentEvent e = new ComponentEvent(owner, ! ComponentEvent.COMPONENT_HIDDEN); QtToolkit.eventQueue.postEvent(e); } --- 400,421 ---- { if (owner instanceof Window) { ! WindowEvent e = new WindowEvent((Window)owner, ! WindowEvent.WINDOW_OPENED); ! QtToolkit.eventQueue.postEvent(e); } ! else { ! ComponentEvent e = new ComponentEvent(owner, ! ComponentEvent.COMPONENT_SHOWN); ! QtToolkit.eventQueue.postEvent(e); } } protected void hideEvent() { ! ComponentEvent e = new ComponentEvent(owner, ! ComponentEvent.COMPONENT_HIDDEN); QtToolkit.eventQueue.postEvent(e); } *************** public class QtComponentPeer extends Nat *** 431,448 **** public boolean canDetermineObscurity() { return true; ! } public int checkImage(Image img, ! int w, ! int h, ! ImageObserver o) { return toolkit.checkImage(img, w, h, o); } public void createBuffers(int numBuffers, BufferCapabilities caps) ! throws AWTException { // FIXME } --- 431,448 ---- public boolean canDetermineObscurity() { return true; ! } public int checkImage(Image img, ! int w, ! int h, ! ImageObserver o) { return toolkit.checkImage(img, w, h, o); } public void createBuffers(int numBuffers, BufferCapabilities caps) ! throws AWTException { // FIXME } *************** public class QtComponentPeer extends Nat *** 516,524 **** public Graphics getGraphics() { if( backBuffer == null ) ! { ! Rectangle r = owner.getBounds(); ! backBuffer = new QtImage( r.width, r.height ); } return backBuffer.getDirectGraphics( this ); } --- 516,524 ---- public Graphics getGraphics() { if( backBuffer == null ) ! { ! Rectangle r = owner.getBounds(); ! backBuffer = new QtImage( r.width, r.height ); } return backBuffer.getDirectGraphics( this ); } *************** public class QtComponentPeer extends Nat *** 533,548 **** public Point getLocationOnScreen() { Point p = new Point(); ! synchronized( p ) { ! getLocationOnScreenNative( p ); ! try ! { ! p.wait(); // Wait for the thing to be created. ! } ! catch(InterruptedException e) ! { ! } } return p; } --- 533,548 ---- public Point getLocationOnScreen() { Point p = new Point(); ! synchronized( p ) { ! getLocationOnScreenNative( p ); ! try ! { ! p.wait(); // Wait for the thing to be created. ! } ! catch(InterruptedException e) ! { ! } } return p; } *************** public class QtComponentPeer extends Nat *** 552,567 **** private Dimension getSize(boolean preferred) { Dimension d = new Dimension(); ! synchronized( d ) { ! getSizeNative(d, preferred); ! try ! { ! d.wait(); // Wait for the thing to be created. ! } ! catch(InterruptedException e) ! { ! } } return d; } --- 552,567 ---- private Dimension getSize(boolean preferred) { Dimension d = new Dimension(); ! synchronized( d ) { ! getSizeNative(d, preferred); ! try ! { ! d.wait(); // Wait for the thing to be created. ! } ! catch(InterruptedException e) ! { ! } } return d; } *************** public class QtComponentPeer extends Nat *** 570,576 **** { return getSize( false ); } ! public Dimension getPreferredSize() { return getSize( true ); --- 570,576 ---- { return getSize( false ); } ! public Dimension getPreferredSize() { return getSize( true ); *************** public class QtComponentPeer extends Nat *** 582,588 **** } public native boolean handlesWheelScrolling(); ! public void hide() { setVisible(false); --- 582,588 ---- } public native boolean handlesWheelScrolling(); ! public void hide() { setVisible(false); *************** public class QtComponentPeer extends Nat *** 610,626 **** public native void requestFocus(); ! public boolean requestFocus (Component source, boolean bool1, ! boolean bool2, long x) { // FIXME return true; } public void reshape(int x, ! int y, ! int width, ! int height) { setBounds( x, y, width, height ); } --- 610,626 ---- public native void requestFocus(); ! public boolean requestFocus (Component source, boolean bool1, ! boolean bool2, long x) { // FIXME return true; } public void reshape(int x, ! int y, ! int width, ! int height) { setBounds( x, y, width, height ); } *************** public class QtComponentPeer extends Nat *** 662,668 **** return; setGround(c.getRed(), c.getGreen(), c.getBlue(), true); } ! public native void setVisible(boolean b); public void show() --- 662,668 ---- return; setGround(c.getRed(), c.getGreen(), c.getBlue(), true); } ! public native void setVisible(boolean b); public void show() *************** public class QtComponentPeer extends Nat *** 678,748 **** switch (eventID) { case ComponentEvent.COMPONENT_SHOWN: ! QtToolkit.repaintThread.queueComponent(this); break; case PaintEvent.PAINT: ! case PaintEvent.UPDATE: ! r = ((PaintEvent)e).getUpdateRect(); ! QtToolkit.repaintThread.queueComponent(this, r.x, r.y, ! r.width, r.height); break; case KeyEvent.KEY_PRESSED: ! break; case KeyEvent.KEY_RELEASED: ! break; } } /** * paint() is called back from the native side in response to a native * repaint event. ! */ public void paint(Graphics g) { Rectangle r = g.getClipBounds(); if (backBuffer != null) ! backBuffer.drawPixelsScaledFlipped ((QtGraphics) g, ! 0, 0, 0, /* bg colors */ ! false, false, /* no flipping */ ! r.x, r.y, r.width, r.height, ! r.x, r.y, r.width, r.height, ! false ); /* no compositing */ } public void paintBackBuffer() throws InterruptedException { if( backBuffer != null ) { ! backBuffer.clear(); ! Graphics2D bbg = (Graphics2D)backBuffer.getGraphics(); ! owner.paint(bbg); ! bbg.dispose(); } } ! public void paintBackBuffer(int x, int y, int w, int h) throws InterruptedException { if( backBuffer != null ) { ! Graphics2D bbg = (Graphics2D)backBuffer.getGraphics(); ! bbg.setBackground( getNativeBackground() ); ! bbg.clearRect(x, y, w, h); ! bbg.setClip(x, y, w, h); ! owner.paint(bbg); ! bbg.dispose(); } } public boolean prepareImage(Image img, ! int w, ! int h, ! ImageObserver o) { return toolkit.prepareImage(img, w, h, o); } ! public void print(Graphics g) { // FIXME --- 678,748 ---- switch (eventID) { case ComponentEvent.COMPONENT_SHOWN: ! QtToolkit.repaintThread.queueComponent(this); break; case PaintEvent.PAINT: ! case PaintEvent.UPDATE: ! r = ((PaintEvent)e).getUpdateRect(); ! QtToolkit.repaintThread.queueComponent(this, r.x, r.y, ! r.width, r.height); break; case KeyEvent.KEY_PRESSED: ! break; case KeyEvent.KEY_RELEASED: ! break; } } /** * paint() is called back from the native side in response to a native * repaint event. ! */ public void paint(Graphics g) { Rectangle r = g.getClipBounds(); if (backBuffer != null) ! backBuffer.drawPixelsScaledFlipped ((QtGraphics) g, ! 0, 0, 0, /* bg colors */ ! false, false, /* no flipping */ ! r.x, r.y, r.width, r.height, ! r.x, r.y, r.width, r.height, ! false ); /* no compositing */ } public void paintBackBuffer() throws InterruptedException { if( backBuffer != null ) { ! backBuffer.clear(); ! Graphics2D bbg = (Graphics2D)backBuffer.getGraphics(); ! owner.paint(bbg); ! bbg.dispose(); } } ! public void paintBackBuffer(int x, int y, int w, int h) throws InterruptedException { if( backBuffer != null ) { ! Graphics2D bbg = (Graphics2D)backBuffer.getGraphics(); ! bbg.setBackground( getNativeBackground() ); ! bbg.clearRect(x, y, w, h); ! bbg.setClip(x, y, w, h); ! owner.paint(bbg); ! bbg.dispose(); } } public boolean prepareImage(Image img, ! int w, ! int h, ! ImageObserver o) { return toolkit.prepareImage(img, w, h, o); } ! public void print(Graphics g) { // FIXME *************** public class QtComponentPeer extends Nat *** 752,767 **** * Schedules a timed repaint. */ public void repaint(long tm, ! int x, ! int y, ! int w, ! int h) { if( tm <= 0 ) { ! QtToolkit.repaintThread.queueComponent(this, x, y, w, h); ! return; ! } Timer t = new Timer(); t.schedule(new RepaintTimerTask(this, x, y, w, h), tm); } --- 752,767 ---- * Schedules a timed repaint. */ public void repaint(long tm, ! int x, ! int y, ! int w, ! int h) { if( tm <= 0 ) { ! QtToolkit.repaintThread.queueComponent(this, x, y, w, h); ! return; ! } Timer t = new Timer(); t.schedule(new RepaintTimerTask(this, x, y, w, h), tm); } *************** public class QtComponentPeer extends Nat *** 778,797 **** /** * Timed repainter */ ! private class RepaintTimerTask extends TimerTask ! { private int x, y, w, h; private QtComponentPeer peer; RepaintTimerTask(QtComponentPeer peer, int x, int y, int w, int h) ! { this.x=x; this.y=y; this.w=w; ! this.h=h; this.peer=peer; } public void run() ! { QtToolkit.repaintThread.queueComponent(peer, x, y, w, h); } } --- 778,797 ---- /** * Timed repainter */ ! private class RepaintTimerTask extends TimerTask ! { private int x, y, w, h; private QtComponentPeer peer; RepaintTimerTask(QtComponentPeer peer, int x, int y, int w, int h) ! { this.x=x; this.y=y; this.w=w; ! this.h=h; this.peer=peer; } public void run() ! { QtToolkit.repaintThread.queueComponent(peer, x, y, w, h); } } *************** public class QtComponentPeer extends Nat *** 808,814 **** public void setBounds(int x, int y, int width, int height, int z) { // TODO Auto-generated method stub ! } public boolean isReparentSupported() --- 808,814 ---- public void setBounds(int x, int y, int width, int height, int z) { // TODO Auto-generated method stub ! } public boolean isReparentSupported() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtContainerPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtContainerPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtContainerPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtContainerPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtContainerPeer extends QtC *** 60,72 **** // ************ Public methods ********************* public void beginLayout() { ! // FIXME } public void beginValidate() { } ! public void endLayout() { QtUpdate(); --- 60,72 ---- // ************ Public methods ********************* public void beginLayout() { ! // FIXME } public void beginValidate() { } ! public void endLayout() { QtUpdate(); *************** public class QtContainerPeer extends QtC *** 75,81 **** public void endValidate() { } ! public Insets getInsets() { return new Insets(0, 0, 0, 0); --- 75,81 ---- public void endValidate() { } ! public Insets getInsets() { return new Insets(0, 0, 0, 0); *************** public class QtContainerPeer extends QtC *** 101,115 **** public void cancelPendingPaint(int x, int y, int width, int height) { // TODO Auto-generated method stub ! } public void restack() { // TODO Auto-generated method stub ! } } - - - --- 101,112 ---- public void cancelPendingPaint(int x, int y, int width, int height) { // TODO Auto-generated method stub ! } public void restack() { // TODO Auto-generated method stub ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtDialogPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtDialogPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtDialogPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtDialogPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtDialogPeer extends QtWind *** 68,73 **** public void setBounds(int x, int y, int width, int height) { setBoundsNative(x, y, width, height, ! !((Dialog)owner).isResizable()); } } --- 68,73 ---- public void setBounds(int x, int y, int width, int height) { setBoundsNative(x, y, width, height, ! !((Dialog)owner).isResizable()); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.awt.peer.qt; *** 40,46 **** import java.awt.Component; import gnu.java.awt.peer.EmbeddedWindowPeer; ! /** * Embedded window peer for applets. * FIXME: EmbeddedWindowPeer and this class should extend Window, NOT Frame. */ --- 40,46 ---- import java.awt.Component; import gnu.java.awt.peer.EmbeddedWindowPeer; ! /** * Embedded window peer for applets. * FIXME: EmbeddedWindowPeer and this class should extend Window, NOT Frame. */ *************** public class QtEmbeddedWindowPeer extend *** 50,56 **** { super( kit, owner ); } ! protected native void init(); protected void setup() --- 50,56 ---- { super( kit, owner ); } ! protected native void init(); protected void setup() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtFileDialogPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtFileDialogPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtFileDialogPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtFileDialogPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtFileDialogPeer extends Qt *** 81,84 **** // FIXME } } - --- 81,83 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java Tue Jan 11 19:46:05 2011 *************** public class QtFontMetrics extends FontM *** 93,99 **** native Rectangle2D getStringBounds(String s); // ****************** Package private *************************** ! native boolean canDisplay( int c ); // ****************** Public methods **************************** --- 93,99 ---- native Rectangle2D getStringBounds(String s); // ****************** Package private *************************** ! native boolean canDisplay( int c ); // ****************** Public methods **************************** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtFontPeer extends Classpat *** 103,119 **** return metrics.canDisplay( c ); } ! public int canDisplayUpTo (Font font, CharacterIterator i, ! int start, int limit) { int index = start; char c = i.setIndex( index ); while( index <= limit ) { ! if(!canDisplay(font, c)) ! return index; ! index++; ! c = i.next(); } return -1; } --- 103,119 ---- return metrics.canDisplay( c ); } ! public int canDisplayUpTo (Font font, CharacterIterator i, ! int start, int limit) { int index = start; char c = i.setIndex( index ); while( index <= limit ) { ! if(!canDisplay(font, c)) ! return index; ! index++; ! c = i.next(); } return -1; } *************** public class QtFontPeer extends Classpat *** 149,171 **** } public GlyphVector createGlyphVector (Font font, ! FontRenderContext frc, ! CharacterIterator ci) { throw new UnsupportedOperationException(); } ! public GlyphVector createGlyphVector (Font font, ! FontRenderContext ctx, ! int[] glyphCodes) { throw new UnsupportedOperationException(); } ! public GlyphVector layoutGlyphVector (Font font, ! FontRenderContext frc, ! char[] chars, int start, ! int limit, int flags) { throw new UnsupportedOperationException(); } --- 149,171 ---- } public GlyphVector createGlyphVector (Font font, ! FontRenderContext frc, ! CharacterIterator ci) { throw new UnsupportedOperationException(); } ! public GlyphVector createGlyphVector (Font font, ! FontRenderContext ctx, ! int[] glyphCodes) { throw new UnsupportedOperationException(); } ! public GlyphVector layoutGlyphVector (Font font, ! FontRenderContext frc, ! char[] chars, int start, ! int limit, int flags) { throw new UnsupportedOperationException(); } *************** public class QtFontPeer extends Classpat *** 180,195 **** throw new UnsupportedOperationException(); } ! public LineMetrics getLineMetrics (Font font, ! CharacterIterator ci, ! int begin, int limit, ! FontRenderContext rc) { throw new UnsupportedOperationException(); } ! public Rectangle2D getMaxCharBounds (Font font, ! FontRenderContext rc) { throw new UnsupportedOperationException(); } --- 180,195 ---- throw new UnsupportedOperationException(); } ! public LineMetrics getLineMetrics (Font font, ! CharacterIterator ci, ! int begin, int limit, ! FontRenderContext rc) { throw new UnsupportedOperationException(); } ! public Rectangle2D getMaxCharBounds (Font font, ! FontRenderContext rc) { throw new UnsupportedOperationException(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java Tue Jan 11 19:46:05 2011 *************** public class QtFramePeer extends QtWindo *** 75,81 **** private native int menuBarHeight(); // ************ Public methods ********************* ! public void destroy() { dispose(); --- 75,81 ---- private native int menuBarHeight(); // ************ Public methods ********************* ! public void destroy() { dispose(); *************** public class QtFramePeer extends QtWindo *** 83,95 **** public int getState() { ! // FIXME return theState; } public Insets getInsets() { ! int mbHeight = ( ((Frame)owner).getMenuBar() != null ) ? menuBarHeight() : 0; return new Insets(mbHeight, 0, 0, 0); } --- 83,95 ---- public int getState() { ! // FIXME return theState; } public Insets getInsets() { ! int mbHeight = ( ((Frame)owner).getMenuBar() != null ) ? menuBarHeight() : 0; return new Insets(mbHeight, 0, 0, 0); } *************** public class QtFramePeer extends QtWindo *** 98,127 **** { if (im instanceof QtImage) setIcon( (QtImage)im ); ! else setIcon( new QtImage( im.getSource() ) ); } public void setMaximizedBounds(Rectangle rect) { // FIXME ! } public void setMenuBar(MenuBar mb) { if( mb != null ) { ! QtMenuBarPeer mbpeer = (QtMenuBarPeer)mb.getPeer(); ! if( mbpeer == null ) ! { ! mb.addNotify(); ! mbpeer = (QtMenuBarPeer)mb.getPeer(); ! if( mbpeer == null ) ! throw new IllegalStateException("No menu bar peer."); ! } ! mbpeer.addMenus(); ! setMenu( mbpeer ); ! } else setMenu( null ); } --- 98,127 ---- { if (im instanceof QtImage) setIcon( (QtImage)im ); ! else setIcon( new QtImage( im.getSource() ) ); } public void setMaximizedBounds(Rectangle rect) { // FIXME ! } public void setMenuBar(MenuBar mb) { if( mb != null ) { ! QtMenuBarPeer mbpeer = (QtMenuBarPeer)mb.getPeer(); ! if( mbpeer == null ) ! { ! mb.addNotify(); ! mbpeer = (QtMenuBarPeer)mb.getPeer(); ! if( mbpeer == null ) ! throw new IllegalStateException("No menu bar peer."); ! } ! mbpeer.addMenus(); ! setMenu( mbpeer ); ! } else setMenu( null ); } *************** public class QtFramePeer extends QtWindo *** 140,152 **** public void setBoundsPrivate(int x, int y, int width, int height) { // TODO Auto-generated method stub ! } public void updateAlwaysOnTop() { // TODO Auto-generated method stub ! } public boolean requestWindowFocus() --- 140,152 ---- public void setBoundsPrivate(int x, int y, int width, int height) { // TODO Auto-generated method stub ! } public void updateAlwaysOnTop() { // TODO Auto-generated method stub ! } public boolean requestWindowFocus() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtGraphics.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtGraphics.java Tue Jan 11 19:46:05 2011 *************** import java.util.Map; *** 75,81 **** /** * QtGraphics is an abstract implementation of Graphics2D over a QPainter ! * object. This is to be subclassed for different drawing contexts, * which may have different requirements. */ public abstract class QtGraphics extends Graphics2D --- 75,81 ---- /** * QtGraphics is an abstract implementation of Graphics2D over a QPainter ! * object. This is to be subclassed for different drawing contexts, * which may have different requirements. */ public abstract class QtGraphics extends Graphics2D *************** public abstract class QtGraphics extends *** 100,108 **** protected Paint currentPaint; // current paint protected RenderingHints renderingHints; // the rendering hints. ! /** * Owner Graphics, used by subcontext created by create() ! * to avoid GC of the original context. */ Graphics parent; --- 100,108 ---- protected Paint currentPaint; // current paint protected RenderingHints renderingHints; // the rendering hints. ! /** * Owner Graphics, used by subcontext created by create() ! * to avoid GC of the original context. */ Graphics parent; *************** public abstract class QtGraphics extends *** 154,165 **** { AffineTransform current = getTransform(); setTransform( identity ); ! setClip( initialClip ); setTransform( current ); } ! protected native void initImage(QtImage image); ! protected native void initVolatileImage(QtVolatileImage image); // Creates a new native QPainter object on the same context. private native void cloneNativeContext( QtGraphics parent ); --- 154,165 ---- { AffineTransform current = getTransform(); setTransform( identity ); ! setClip( initialClip ); setTransform( current ); } ! protected native void initImage(QtImage image); ! protected native void initVolatileImage(QtVolatileImage image); // Creates a new native QPainter object on the same context. private native void cloneNativeContext( QtGraphics parent ); *************** public abstract class QtGraphics extends *** 174,183 **** private native void setNativeStroke(QPen p); private native void setNativeComposite(int alphaMode); private native void drawStringNative(String string, double x, double y); ! private native void setLinearGradient(int r1, int g1, int b1, ! int r2, int g2, int b2, ! double x1, double y1, ! double x2, double y2, boolean cyclic); private native void setAlphaNative(double alpha); private native void setFontNative(QtFontPeer font); private native QPainterPath getClipNative(); --- 174,183 ---- private native void setNativeStroke(QPen p); private native void setNativeComposite(int alphaMode); private native void drawStringNative(String string, double x, double y); ! private native void setLinearGradient(int r1, int g1, int b1, ! int r2, int g2, int b2, ! double x1, double y1, ! double x2, double y2, boolean cyclic); private native void setAlphaNative(double alpha); private native void setFontNative(QtFontPeer font); private native QPainterPath getClipNative(); *************** public abstract class QtGraphics extends *** 195,202 **** */ public abstract Graphics create(); ! public abstract void copyArea(int x, int y, int width, int height, ! int dx, int dy); public abstract GraphicsConfiguration getDeviceConfiguration(); --- 195,202 ---- */ public abstract Graphics create(); ! public abstract void copyArea(int x, int y, int width, int height, ! int dx, int dy); public abstract GraphicsConfiguration getDeviceConfiguration(); *************** public abstract class QtGraphics extends *** 210,216 **** { if( c == null ) c = Color.white; ! this.color = c; int alpha = (int)(c.getAlpha() * currentAlpha); setColor(c.getRed(), c.getGreen(), c.getBlue(), alpha); } --- 210,216 ---- { if( c == null ) c = Color.white; ! this.color = c; int alpha = (int)(c.getAlpha() * currentAlpha); setColor(c.getRed(), c.getGreen(), c.getBlue(), alpha); } *************** public abstract class QtGraphics extends *** 238,252 **** { if( onStroke ) { ! Shape stroked = currentStroke.createStrokedShape( s ); ! return stroked.intersects( (double)rect.x, (double)rect.y, ! (double)rect.width, (double)rect.height ); } ! return s.intersects( (double)rect.x, (double)rect.y, ! (double)rect.width, (double)rect.height ); } ! // ******************* Font *********************** public Font getFont() { return font; --- 238,252 ---- { if( onStroke ) { ! Shape stroked = currentStroke.createStrokedShape( s ); ! return stroked.intersects( (double)rect.x, (double)rect.y, ! (double)rect.width, (double)rect.height ); } ! return s.intersects( (double)rect.x, (double)rect.y, ! (double)rect.width, (double)rect.height ); } ! // ******************* Font *********************** public Font getFont() { return font; *************** public abstract class QtGraphics extends *** 287,293 **** } public Shape getClip() ! { return getClipNative().getPath(); } --- 287,293 ---- } public Shape getClip() ! { return getClipNative().getPath(); } *************** public abstract class QtGraphics extends *** 307,313 **** // ***************** Drawing primitives ********************* public void draw(Shape s) ! { if( nativeStroking ) drawNative( new QPainterPath(s) ); else --- 307,313 ---- // ***************** Drawing primitives ********************* public void draw(Shape s) ! { if( nativeStroking ) drawNative( new QPainterPath(s) ); else *************** public abstract class QtGraphics extends *** 330,343 **** public void drawRect(int x, int y, int width, int height) { if( nativeStroking ) ! drawNative( new QPainterPath((double)x, (double)y, ! (double)width, (double)height) ); else fillNative( new QPainterPath ! ( currentStroke.createStrokedShape ! (new Rectangle2D.Double ! ((double)x, (double)y, ! (double)width, (double)height) ) ) ); } public void fillRect(int x, int y, int width, int height) --- 330,343 ---- public void drawRect(int x, int y, int width, int height) { if( nativeStroking ) ! drawNative( new QPainterPath((double)x, (double)y, ! (double)width, (double)height) ); else fillNative( new QPainterPath ! ( currentStroke.createStrokedShape ! (new Rectangle2D.Double ! ((double)x, (double)y, ! (double)width, (double)height) ) ) ); } public void fillRect(int x, int y, int width, int height) *************** public abstract class QtGraphics extends *** 353,376 **** setColor( c ); } ! public void drawRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { ! draw( new RoundRectangle2D.Double(x, y, width, height, ! arcWidth, arcHeight) ); } ! public void fillRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { ! fill( new RoundRectangle2D.Double(x, y, width, height, ! arcWidth, arcHeight) ); } public void drawOval(int x, int y, int width, int height) { ! draw( new Ellipse2D.Double((double)x, (double)y, ! (double)width, (double)height) ); } public void fillOval(int x, int y, int width, int height) --- 353,376 ---- setColor( c ); } ! public void drawRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { ! draw( new RoundRectangle2D.Double(x, y, width, height, ! arcWidth, arcHeight) ); } ! public void fillRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { ! fill( new RoundRectangle2D.Double(x, y, width, height, ! arcWidth, arcHeight) ); } public void drawOval(int x, int y, int width, int height) { ! draw( new Ellipse2D.Double((double)x, (double)y, ! (double)width, (double)height) ); } public void fillOval(int x, int y, int width, int height) *************** public abstract class QtGraphics extends *** 378,395 **** fill( new Ellipse2D.Double(x, y, width, height) ); } ! public void drawArc(int x, int y, int width, int height, ! int arcStart, int arcAngle) { ! draw( new Arc2D.Double(x, y, width, height, arcStart, arcAngle, ! Arc2D.OPEN) ); } ! public void fillArc(int x, int y, int width, int height, ! int arcStart, int arcAngle) { ! fill( new Arc2D.Double(x, y, width, height, arcStart, arcAngle, ! Arc2D.CHORD) ); } public void drawPolyline(int xPoints[], int yPoints[], int npoints) --- 378,395 ---- fill( new Ellipse2D.Double(x, y, width, height) ); } ! public void drawArc(int x, int y, int width, int height, ! int arcStart, int arcAngle) { ! draw( new Arc2D.Double(x, y, width, height, arcStart, arcAngle, ! Arc2D.OPEN) ); } ! public void fillArc(int x, int y, int width, int height, ! int arcStart, int arcAngle) { ! fill( new Arc2D.Double(x, y, width, height, arcStart, arcAngle, ! Arc2D.CHORD) ); } public void drawPolyline(int xPoints[], int yPoints[], int npoints) *************** public abstract class QtGraphics extends *** 428,444 **** { // FIXME - to something more correct ? String s = ""; ! for(char c = ci.first(); c != CharacterIterator.DONE; c = ci.next()) s += c; drawString(s, x, y); } ! public void drawString(AttributedCharacterIterator ci, ! float x, float y) { // FIXME - to something more correct ? String s = ""; ! for(char c = ci.first(); c != CharacterIterator.DONE; c = ci.next()) s += c; drawString(s, x, y); } --- 428,444 ---- { // FIXME - to something more correct ? String s = ""; ! for(char c = ci.first(); c != CharacterIterator.DONE; c = ci.next()) s += c; drawString(s, x, y); } ! public void drawString(AttributedCharacterIterator ci, ! float x, float y) { // FIXME - to something more correct ? String s = ""; ! for(char c = ci.first(); c != CharacterIterator.DONE; c = ci.next()) s += c; drawString(s, x, y); } *************** public abstract class QtGraphics extends *** 450,517 **** // ******************* Image drawing ****************************** public boolean drawImage(Image image, ! AffineTransform Tx, ! ImageObserver obs) { if (image instanceof QtImage) return ((QtImage)image).drawImage(this, new QMatrix( Tx ), obs); ! return (new QtImage(image.getSource())).drawImage(this, ! new QMatrix( Tx ), ! obs); } ! public boolean drawImage(Image image, int x, int y, Color bgcolor, ! ImageObserver observer) { if (image instanceof QtImage) return ((QtImage)image).drawImage (this, x, y, bgcolor, observer); ! return (new QtImage(image.getSource())).drawImage (this, x, y, ! bgcolor, observer); } ! public boolean drawImage(Image image, ! int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ! Color bgcolor, ImageObserver observer) { if (image instanceof QtImage) ! return ((QtImage)image).drawImage(this, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, bgcolor, observer); ! return (new QtImage(image.getSource())).drawImage(this, dx1, dy1, ! dx2, dy2, ! sx1, sy1, sx2, sy2, ! bgcolor, observer); } ! public boolean drawImage(Image image, int x, int y, ! int width, int height, Color bgcolor, ! ImageObserver observer) { if (image instanceof QtImage) ! return ((QtImage)image).drawImage (this, x, y, width, height, ! bgcolor, observer); ! return (new QtImage(image.getSource())).drawImage (this, x, y, ! width, height, ! bgcolor, observer); } ! ! public boolean drawImage(Image image, int x, int y, int width, int height, ! ImageObserver observer) { return drawImage(image, x, y, width, height, null, observer); } ! public boolean drawImage(Image image, int x, int y, ImageObserver observer) { return drawImage(image, x, y, null, observer); } ! public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { ! return drawImage(image, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, null, observer); } // *********************** Transform methods ************************* --- 450,517 ---- // ******************* Image drawing ****************************** public boolean drawImage(Image image, ! AffineTransform Tx, ! ImageObserver obs) { if (image instanceof QtImage) return ((QtImage)image).drawImage(this, new QMatrix( Tx ), obs); ! return (new QtImage(image.getSource())).drawImage(this, ! new QMatrix( Tx ), ! obs); } ! public boolean drawImage(Image image, int x, int y, Color bgcolor, ! ImageObserver observer) { if (image instanceof QtImage) return ((QtImage)image).drawImage (this, x, y, bgcolor, observer); ! return (new QtImage(image.getSource())).drawImage (this, x, y, ! bgcolor, observer); } ! public boolean drawImage(Image image, ! int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ! Color bgcolor, ImageObserver observer) { if (image instanceof QtImage) ! return ((QtImage)image).drawImage(this, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, bgcolor, observer); ! return (new QtImage(image.getSource())).drawImage(this, dx1, dy1, ! dx2, dy2, ! sx1, sy1, sx2, sy2, ! bgcolor, observer); } ! public boolean drawImage(Image image, int x, int y, ! int width, int height, Color bgcolor, ! ImageObserver observer) { if (image instanceof QtImage) ! return ((QtImage)image).drawImage (this, x, y, width, height, ! bgcolor, observer); ! return (new QtImage(image.getSource())).drawImage (this, x, y, ! width, height, ! bgcolor, observer); } ! ! public boolean drawImage(Image image, int x, int y, int width, int height, ! ImageObserver observer) { return drawImage(image, x, y, width, height, null, observer); } ! public boolean drawImage(Image image, int x, int y, ImageObserver observer) { return drawImage(image, x, y, null, observer); } ! public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { ! return drawImage(image, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, null, observer); } // *********************** Transform methods ************************* *************** public abstract class QtGraphics extends *** 531,537 **** xform.rotate( theta ); setQtTransform( new QMatrix( xform ) ); } ! public void rotate(double theta, double x, double y) { xform.rotate(theta, x, y); --- 531,537 ---- xform.rotate( theta ); setQtTransform( new QMatrix( xform ) ); } ! public void rotate(double theta, double x, double y) { xform.rotate(theta, x, y); *************** public abstract class QtGraphics extends *** 549,555 **** xform.shear(shx, shy); setQtTransform( new QMatrix( xform ) ); } ! public void transform(AffineTransform Tx) { xform.concatenate( Tx ); --- 549,555 ---- xform.shear(shx, shy); setQtTransform( new QMatrix( xform ) ); } ! public void transform(AffineTransform Tx) { xform.concatenate( Tx ); *************** public abstract class QtGraphics extends *** 572,585 **** { try // ..to convert the stroke into a native one. { ! QPen pen = new QPen( s ); ! nativeStroking = true; ! setNativeStroke( pen ); ! setColor( color ); ! } catch (IllegalArgumentException e) { ! nativeStroking = false; } currentStroke = s; } --- 572,585 ---- { try // ..to convert the stroke into a native one. { ! QPen pen = new QPen( s ); ! nativeStroking = true; ! setNativeStroke( pen ); ! setColor( color ); ! } catch (IllegalArgumentException e) { ! nativeStroking = false; } currentStroke = s; } *************** public abstract class QtGraphics extends *** 593,619 **** { if( comp == null) { ! setNativeComposite( AlphaComposite.SRC_OVER ); ! return; } if( comp instanceof AlphaComposite ) { ! if( ((AlphaComposite)comp).getRule() != AlphaComposite.XOR ) ! setAlpha( ((AlphaComposite)comp).getAlpha() ); ! setNativeComposite( ((AlphaComposite)comp).getRule() ); ! composite = comp; } else { ! // FIXME: this check is only required "if this Graphics2D ! // context is drawing to a Component on the display screen". ! SecurityManager sm = System.getSecurityManager(); ! if (sm != null) ! sm.checkPermission(new AWTPermission("readDisplayPixels")); ! throw new UnsupportedOperationException("We don't support custom"+ ! " composites yet."); } } --- 593,619 ---- { if( comp == null) { ! setNativeComposite( AlphaComposite.SRC_OVER ); ! return; } if( comp instanceof AlphaComposite ) { ! if( ((AlphaComposite)comp).getRule() != AlphaComposite.XOR ) ! setAlpha( ((AlphaComposite)comp).getAlpha() ); ! setNativeComposite( ((AlphaComposite)comp).getRule() ); ! composite = comp; } else { ! // FIXME: this check is only required "if this Graphics2D ! // context is drawing to a Component on the display screen". ! SecurityManager sm = System.getSecurityManager(); ! if (sm != null) ! sm.checkPermission(new AWTPermission("readDisplayPixels")); ! throw new UnsupportedOperationException("We don't support custom"+ ! " composites yet."); } } *************** public abstract class QtGraphics extends *** 625,652 **** public void setPaint(Paint p) { if( p == null ) ! return; // FIXME currentPaint = p; if( p instanceof GradientPaint ) { ! GradientPaint lg = (GradientPaint)p; ! setLinearGradient(lg.getColor1().getRed(), lg.getColor1().getGreen(), ! lg.getColor1().getBlue(), lg.getColor2().getRed(), ! lg.getColor2().getGreen(), lg.getColor2().getBlue(), ! lg.getPoint1().getX(), lg.getPoint1().getY(), ! lg.getPoint2().getX(), lg.getPoint2().getY(), ! lg.isCyclic() ); ! return; } if( p instanceof Color ) { ! setColor((Color) p); ! return; } throw new UnsupportedOperationException("We don't support custom"+ ! " paints yet."); } public Paint getPaint() --- 625,652 ---- public void setPaint(Paint p) { if( p == null ) ! return; // FIXME currentPaint = p; if( p instanceof GradientPaint ) { ! GradientPaint lg = (GradientPaint)p; ! setLinearGradient(lg.getColor1().getRed(), lg.getColor1().getGreen(), ! lg.getColor1().getBlue(), lg.getColor2().getRed(), ! lg.getColor2().getGreen(), lg.getColor2().getBlue(), ! lg.getPoint1().getX(), lg.getPoint1().getY(), ! lg.getPoint2().getX(), lg.getPoint2().getY(), ! lg.isCyclic() ); ! return; } if( p instanceof Color ) { ! setColor((Color) p); ! return; } throw new UnsupportedOperationException("We don't support custom"+ ! " paints yet."); } public Paint getPaint() *************** public abstract class QtGraphics extends *** 671,677 **** { return (RenderingHints) renderingHints.clone(); } ! public void setRenderingHints(Map hints) { renderingHints = new RenderingHints( null ); --- 671,677 ---- { return (RenderingHints) renderingHints.clone(); } ! public void setRenderingHints(Map hints) { renderingHints = new RenderingHints( null ); *************** public abstract class QtGraphics extends *** 711,715 **** { throw new UnsupportedOperationException("Not implemented yet"); } ! } ! --- 711,714 ---- { throw new UnsupportedOperationException("Not implemented yet"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtGraphicsEnvironment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtGraphicsEnvironment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtGraphicsEnvironment.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtGraphicsEnvironment.java Tue Jan 11 19:46:05 2011 *************** public class QtGraphicsEnvironment exten *** 55,61 **** toolkit = tk; // Get the number of screens from Qt. int n = toolkit.numScreens(); ! /** * Create the screen device objects */ --- 55,61 ---- toolkit = tk; // Get the number of screens from Qt. int n = toolkit.numScreens(); ! /** * Create the screen device objects */ *************** public class QtGraphicsEnvironment exten *** 77,83 **** { return toolkit.getFontList(); } ! public String[] getAvailableFontFamilyNames(Locale l) { return getAvailableFontFamilyNames(); --- 77,83 ---- { return toolkit.getFontList(); } ! public String[] getAvailableFontFamilyNames(Locale l) { return getAvailableFontFamilyNames(); *************** public class QtGraphicsEnvironment exten *** 103,107 **** return toolkit; } } - - --- 103,105 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtImage.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtImage.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtImage.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtImage.java Tue Jan 11 19:46:05 2011 *************** public class QtImage extends Image *** 95,105 **** /* * The 32-bit AARRGGBB format the uses. */ ! static ColorModel nativeModel = new DirectColorModel(32, ! 0x00FF0000, ! 0x0000FF00, ! 0x000000FF, ! 0xFF000000); /** * HashMap of Graphics objects painting on this Image. */ --- 95,105 ---- /* * The 32-bit AARRGGBB format the uses. */ ! static ColorModel nativeModel = new DirectColorModel(32, ! 0x00FF0000, ! 0x0000FF00, ! 0x000000FF, ! 0xFF000000); /** * HashMap of Graphics objects painting on this Image. */ *************** public class QtImage extends Image *** 126,132 **** private native void setPixels(int[] pixels); /** ! * Loads an image */ private native boolean loadImage(String name); --- 126,132 ---- private native void setPixels(int[] pixels); /** ! * Loads an image */ private native boolean loadImage(String name); *************** public class QtImage extends Image *** 153,187 **** /** * Draws the image optionally composited. */ ! native void drawPixels (QtGraphics gc, ! int bg_red, int bg_green, int bg_blue, ! int x, int y, ! boolean composite); /** * Draws the image, optionally scaled and composited. */ ! private native void drawPixelsScaled (QtGraphics gc, ! int bg_red, int bg_green, int bg_blue, ! int x, int y, int width, int height, ! boolean composite); /** * Draws the image transformed. */ private native void drawPixelsTransformed (QtGraphics gc, QMatrix transform); ! /** * Draws the image scaled flipped and optionally composited. */ ! native void drawPixelsScaledFlipped (QtGraphics gc, ! int bg_red, int bg_green, ! int bg_blue, ! boolean flipX, boolean flipY, ! int srcX, int srcY, ! int srcWidth, int srcHeight, ! int dstX, int dstY, ! int dstWidth, int dstHeight, ! boolean composite); /** * Creates the image from an ImageProducer. May result in an error image. --- 153,187 ---- /** * Draws the image optionally composited. */ ! native void drawPixels (QtGraphics gc, ! int bg_red, int bg_green, int bg_blue, ! int x, int y, ! boolean composite); /** * Draws the image, optionally scaled and composited. */ ! private native void drawPixelsScaled (QtGraphics gc, ! int bg_red, int bg_green, int bg_blue, ! int x, int y, int width, int height, ! boolean composite); /** * Draws the image transformed. */ private native void drawPixelsTransformed (QtGraphics gc, QMatrix transform); ! /** * Draws the image scaled flipped and optionally composited. */ ! native void drawPixelsScaledFlipped (QtGraphics gc, ! int bg_red, int bg_green, ! int bg_blue, ! boolean flipX, boolean flipY, ! int srcX, int srcY, ! int srcWidth, int srcHeight, ! int dstX, int dstY, ! int dstWidth, int dstHeight, ! boolean composite); /** * Creates the image from an ImageProducer. May result in an error image. *************** public class QtImage extends Image *** 216,228 **** byte[] buf = new byte[5000]; int n = 0; ! while ( (n = bis.read( buf )) != -1 ) ! baos.write(buf, 0, n); bis.close(); } catch(IOException e) { ! throw new IllegalArgumentException("Couldn't load image."); } if ( loadImageFromData( baos.toByteArray() ) != true ) throw new IllegalArgumentException("Couldn't load image."); --- 216,228 ---- byte[] buf = new byte[5000]; int n = 0; ! while ( (n = bis.read( buf )) != -1 ) ! baos.write(buf, 0, n); bis.close(); } catch(IOException e) { ! throw new IllegalArgumentException("Couldn't load image."); } if ( loadImageFromData( baos.toByteArray() ) != true ) throw new IllegalArgumentException("Couldn't load image."); *************** public class QtImage extends Image *** 245,263 **** props = new Hashtable(); try { ! String fn = f.getCanonicalPath(); ! if (loadImage( fn ) != true) ! { ! errorLoading = true; ! isLoaded = false; ! return; ! } ! } catch(IOException e) { ! errorLoading = true; ! isLoaded = false; ! return; } errorLoading = false; isLoaded = true; --- 245,263 ---- props = new Hashtable(); try { ! String fn = f.getCanonicalPath(); ! if (loadImage( fn ) != true) ! { ! errorLoading = true; ! isLoaded = false; ! return; ! } ! } catch(IOException e) { ! errorLoading = true; ! isLoaded = false; ! return; } errorLoading = false; isLoaded = true; *************** public class QtImage extends Image *** 315,322 **** /** * Callback from the image consumer. */ ! public void setImage(int width, int height, ! int[] pixels, Hashtable properties) { this.width = width; this.height = height; --- 315,322 ---- /** * Callback from the image consumer. */ ! public void setImage(int width, int height, ! int[] pixels, Hashtable properties) { this.width = width; this.height = height; *************** public class QtImage extends Image *** 324,331 **** if (width <= 0 || height <= 0 || pixels == null) { ! errorLoading = true; ! return; } isLoaded = true; --- 324,331 ---- if (width <= 0 || height <= 0 || pixels == null) { ! errorLoading = true; ! return; } isLoaded = true; *************** public class QtImage extends Image *** 343,354 **** return width; } ! public int getHeight (ImageObserver observer) { if (addObserver(observer)) return -1; ! return height; } --- 343,354 ---- return width; } ! public int getHeight (ImageObserver observer) { if (addObserver(observer)) return -1; ! return height; } *************** public class QtImage extends Image *** 356,362 **** { if (addObserver(observer)) return UndefinedProperty; ! Object value = props.get (name); return (value == null) ? UndefinedProperty : value; } --- 356,362 ---- { if (addObserver(observer)) return UndefinedProperty; ! Object value = props.get (name); return (value == null) ? UndefinedProperty : value; } *************** public class QtImage extends Image *** 368,375 **** { if (!isLoaded) return null; ! return new MemoryImageSource(width, height, nativeModel, getPixels(), ! 0, width); } void putPainter(QtImageGraphics g) --- 368,375 ---- { if (!isLoaded) return null; ! return new MemoryImageSource(width, height, nativeModel, getPixels(), ! 0, width); } void putPainter(QtImageGraphics g) *************** public class QtImage extends Image *** 391,397 **** */ public Graphics getGraphics () { ! if (!isLoaded || killFlag) return null; return new QtImageGraphics(this); --- 391,397 ---- */ public Graphics getGraphics () { ! if (!isLoaded || killFlag) return null; return new QtImageGraphics(this); *************** public class QtImage extends Image *** 402,429 **** */ Graphics getDirectGraphics(QtComponentPeer peer) { ! if (!isLoaded) return null; return new QtImageDirectGraphics(this, peer); } ! /** * Returns a scaled instance of this image. */ public Image getScaledInstance(int width, ! int height, ! int hints) { if (width <= 0 || height <= 0) throw new IllegalArgumentException("Width and height of scaled bitmap"+ ! "must be >= 0"); return new QtImage(this, width, height, hints); } /** ! * If the image is loaded and comes from an ImageProducer, * regenerate the image from there. * * I have no idea if this is ever actually used. Since QtImage can't be --- 402,429 ---- */ Graphics getDirectGraphics(QtComponentPeer peer) { ! if (!isLoaded) return null; return new QtImageDirectGraphics(this, peer); } ! /** * Returns a scaled instance of this image. */ public Image getScaledInstance(int width, ! int height, ! int hints) { if (width <= 0 || height <= 0) throw new IllegalArgumentException("Width and height of scaled bitmap"+ ! "must be >= 0"); return new QtImage(this, width, height, hints); } /** ! * If the image is loaded and comes from an ImageProducer, * regenerate the image from there. * * I have no idea if this is ever actually used. Since QtImage can't be *************** public class QtImage extends Image *** 434,443 **** { if (isLoaded && source != null) { ! observers = new Vector(); ! isLoaded = false; ! freeImage(); ! source.startProduction(new QtImageConsumer(this, source)); } } --- 434,443 ---- { if (isLoaded && source != null) { ! observers = new Vector(); ! isLoaded = false; ! freeImage(); ! source.startProduction(new QtImageConsumer(this, source)); } } *************** public class QtImage extends Image *** 450,460 **** { if (isLoaded) { ! if( painters == null || painters.isEmpty() ) ! freeImage(); ! else ! killFlag = true; // can't destroy image yet. ! // Do so when all painters are gone. } } --- 450,460 ---- { if (isLoaded) { ! if( painters == null || painters.isEmpty() ) ! freeImage(); ! else ! killFlag = true; // can't destroy image yet. ! // Do so when all painters are gone. } } *************** public class QtImage extends Image *** 465,476 **** { if (addObserver(observer)) { ! if (errorLoading == true) ! return ImageObserver.ERROR; ! else ! return 0; } ! return ImageObserver.ALLBITS | ImageObserver.WIDTH | ImageObserver.HEIGHT; } --- 465,476 ---- { if (addObserver(observer)) { ! if (errorLoading == true) ! return ImageObserver.ERROR; ! else ! return 0; } ! return ImageObserver.ALLBITS | ImageObserver.WIDTH | ImageObserver.HEIGHT; } *************** public class QtImage extends Image *** 480,486 **** * Draws an image with eventual scaling/transforming. */ public boolean drawImage (QtGraphics g, QMatrix matrix, ! ImageObserver observer) { if (addObserver(observer)) return false; --- 480,486 ---- * Draws an image with eventual scaling/transforming. */ public boolean drawImage (QtGraphics g, QMatrix matrix, ! ImageObserver observer) { if (addObserver(observer)) return false; *************** public class QtImage extends Image *** 495,508 **** * compositing with a background color. */ public boolean drawImage (QtGraphics g, int x, int y, ! Color bgcolor, ImageObserver observer) { if (addObserver(observer)) return false; if(bgcolor != null) ! drawPixels(g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), x, y, true); else drawPixels(g, 0, 0, 0, x, y, false); --- 495,508 ---- * compositing with a background color. */ public boolean drawImage (QtGraphics g, int x, int y, ! Color bgcolor, ImageObserver observer) { if (addObserver(observer)) return false; if(bgcolor != null) ! drawPixels(g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), x, y, true); else drawPixels(g, 0, 0, 0, x, y, false); *************** public class QtImage extends Image *** 510,527 **** } /** ! * Draws an image to the QtGraphics context, at (x,y) scaled to * width and height, with optional compositing with a background color. */ public boolean drawImage (QtGraphics g, int x, int y, int width, int height, ! Color bgcolor, ImageObserver observer) { if (addObserver(observer)) return false; if(bgcolor != null) ! drawPixelsScaled(g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), x, y, width, height, true); else drawPixelsScaled(g, 0, 0, 0, x, y, width, height, false); --- 510,527 ---- } /** ! * Draws an image to the QtGraphics context, at (x,y) scaled to * width and height, with optional compositing with a background color. */ public boolean drawImage (QtGraphics g, int x, int y, int width, int height, ! Color bgcolor, ImageObserver observer) { if (addObserver(observer)) return false; if(bgcolor != null) ! drawPixelsScaled(g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), x, y, width, height, true); else drawPixelsScaled(g, 0, 0, 0, x, y, width, height, false); *************** public class QtImage extends Image *** 531,539 **** /** * Draws an image with eventual scaling/transforming. */ ! public boolean drawImage (QtGraphics g, int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ! Color bgcolor, ImageObserver observer) { if (addObserver(observer)) return false; --- 531,539 ---- /** * Draws an image with eventual scaling/transforming. */ ! public boolean drawImage (QtGraphics g, int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ! Color bgcolor, ImageObserver observer) { if (addObserver(observer)) return false; *************** public class QtImage extends Image *** 549,601 **** int dstX = (dx1 < dx2) ? dx1 : dx2; int dstY = (dy1 < dy2) ? dy1 : dy2; ! // Clipping. This requires the dst to be scaled as well, if (srcWidth > width) { ! dstWidth = (int)((double)dstWidth*((double)width/(double)srcWidth)); ! srcWidth = width - srcX; } ! if (srcHeight > height) { ! dstHeight = (int)((double)dstHeight*((double)height/(double)srcHeight)); ! srcHeight = height - srcY; } if (srcWidth + srcX > width) { ! dstWidth = (int)((double)dstWidth * (double)(width - srcX)/(double)srcWidth); ! srcWidth = width - srcX; } if (srcHeight + srcY > height) { ! dstHeight = (int)((double)dstHeight * (double)(width - srcY)/(double)srcHeight); ! srcHeight = height - srcY; } if ( srcWidth <= 0 || srcHeight <= 0 || dstWidth <= 0 || dstHeight <= 0) return true; if(bgcolor != null) ! drawPixelsScaledFlipped (g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), ! flipX, flipY, ! srcX, srcY, ! srcWidth, srcHeight, ! dstX, dstY, ! dstWidth, dstHeight, ! true); else drawPixelsScaledFlipped (g, 0, 0, 0, flipX, flipY, ! srcX, srcY, srcWidth, srcHeight, ! dstX, dstY, dstWidth, dstHeight, ! false); return true; } ! public native void copyArea(int x, int y, int width, int height, ! int dx, int dy); // Private methods //////////////////////////////////////////////// --- 549,601 ---- int dstX = (dx1 < dx2) ? dx1 : dx2; int dstY = (dy1 < dy2) ? dy1 : dy2; ! // Clipping. This requires the dst to be scaled as well, if (srcWidth > width) { ! dstWidth = (int)((double)dstWidth*((double)width/(double)srcWidth)); ! srcWidth = width - srcX; } ! if (srcHeight > height) { ! dstHeight = (int)((double)dstHeight*((double)height/(double)srcHeight)); ! srcHeight = height - srcY; } if (srcWidth + srcX > width) { ! dstWidth = (int)((double)dstWidth * (double)(width - srcX)/(double)srcWidth); ! srcWidth = width - srcX; } if (srcHeight + srcY > height) { ! dstHeight = (int)((double)dstHeight * (double)(width - srcY)/(double)srcHeight); ! srcHeight = height - srcY; } if ( srcWidth <= 0 || srcHeight <= 0 || dstWidth <= 0 || dstHeight <= 0) return true; if(bgcolor != null) ! drawPixelsScaledFlipped (g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), ! flipX, flipY, ! srcX, srcY, ! srcWidth, srcHeight, ! dstX, dstY, ! dstWidth, dstHeight, ! true); else drawPixelsScaledFlipped (g, 0, 0, 0, flipX, flipY, ! srcX, srcY, srcWidth, srcHeight, ! dstX, dstY, dstWidth, dstHeight, ! false); return true; } ! public native void copyArea(int x, int y, int width, int height, ! int dx, int dy); // Private methods //////////////////////////////////////////////// *************** public class QtImage extends Image *** 604,622 **** */ private void deliver() { ! int flags = ImageObserver.HEIGHT | ImageObserver.WIDTH | ImageObserver.PROPERTIES | ImageObserver.ALLBITS; if (observers != null) for(int i=0; i < observers.size(); i++) ! ((ImageObserver)observers.elementAt(i)). ! imageUpdate(this, flags, 0, 0, width, height); observers = null; } ! /** * Adds an observer, if we need to. * @return true if an observer was added. --- 604,622 ---- */ private void deliver() { ! int flags = ImageObserver.HEIGHT | ImageObserver.WIDTH | ImageObserver.PROPERTIES | ImageObserver.ALLBITS; if (observers != null) for(int i=0; i < observers.size(); i++) ! ((ImageObserver)observers.elementAt(i)). ! imageUpdate(this, flags, 0, 0, width, height); observers = null; } ! /** * Adds an observer, if we need to. * @return true if an observer was added. *************** public class QtImage extends Image *** 625,634 **** { if (!isLoaded) { ! if(observer != null) ! if (!observers.contains (observer)) ! observers.addElement (observer); ! return true; } return false; } --- 625,634 ---- { if (!isLoaded) { ! if(observer != null) ! if (!observers.contains (observer)) ! observers.addElement (observer); ! return true; } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtImageConsumer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtImageConsumer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtImageConsumer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtImageConsumer.java Tue Jan 11 19:46:05 2011 *************** public class QtImageConsumer implements *** 86,129 **** public synchronized void setHints (int flags) { // This method informs us in which order the pixels are ! // delivered, for progressive-loading support, etc. // Since we wait until it's all loaded, we can ignore the hints. } ! public synchronized void setPixels (int x, int y, int width, int height, ! ColorModel cm, byte[] pixels, ! int offset, int scansize) { setPixels (x, y, width, height, cm, convertPixels (pixels), offset, scansize); } ! public synchronized void setPixels (int x, int y, int width, int height, ! ColorModel cm, int[] pixels, ! int offset, int scansize) { if (pixelCache == null) return; // Not sure this should ever happen. if (cm.equals(QtImage.nativeModel)) for (int i = 0; i < height; i++) ! System.arraycopy (pixels, offset + (i * scansize), ! pixelCache, (y + i) * this.width + x, ! width); else { ! for (int i = 0; i < height; i++) ! for (int j = 0; j < width; j++) ! { ! // get in AARRGGBB and convert to AABBGGRR ! int pix = cm.getRGB(pixels[offset + (i * scansize) + x + j]); ! byte b = (byte)(pix & 0xFF); ! byte r = (byte)(((pix & 0x00FF0000) >> 16) & 0xFF); ! pix &= 0xFF00FF00; ! pix |= ((b & 0xFF) << 16); ! pix |= (r & 0xFF); ! pixelCache[(y + i) * this.width + x + j] = pix; ! } } } --- 86,129 ---- public synchronized void setHints (int flags) { // This method informs us in which order the pixels are ! // delivered, for progressive-loading support, etc. // Since we wait until it's all loaded, we can ignore the hints. } ! public synchronized void setPixels (int x, int y, int width, int height, ! ColorModel cm, byte[] pixels, ! int offset, int scansize) { setPixels (x, y, width, height, cm, convertPixels (pixels), offset, scansize); } ! public synchronized void setPixels (int x, int y, int width, int height, ! ColorModel cm, int[] pixels, ! int offset, int scansize) { if (pixelCache == null) return; // Not sure this should ever happen. if (cm.equals(QtImage.nativeModel)) for (int i = 0; i < height; i++) ! System.arraycopy (pixels, offset + (i * scansize), ! pixelCache, (y + i) * this.width + x, ! width); else { ! for (int i = 0; i < height; i++) ! for (int j = 0; j < width; j++) ! { ! // get in AARRGGBB and convert to AABBGGRR ! int pix = cm.getRGB(pixels[offset + (i * scansize) + x + j]); ! byte b = (byte)(pix & 0xFF); ! byte r = (byte)(((pix & 0x00FF0000) >> 16) & 0xFF); ! pix &= 0xFF00FF00; ! pix |= ((b & 0xFF) << 16); ! pix |= (r & 0xFF); ! pixelCache[(y + i) * this.width + x + j] = pix; ! } } } *************** public class QtImageConsumer implements *** 136,142 **** for (int i = 0; i < pixels.length; i++) ret[i] = pixels[i] & 0xFF; ! return ret; } --- 136,142 ---- for (int i = 0; i < pixels.length; i++) ret[i] = pixels[i] & 0xFF; ! return ret; } *************** public class QtImageConsumer implements *** 145,149 **** this.properties = props; } } - - --- 145,147 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtImageDirectGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtImageDirectGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtImageDirectGraphics.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtImageDirectGraphics.java Tue Jan 11 19:46:05 2011 *************** public class QtImageDirectGraphics exten *** 75,81 **** } public void draw(Shape s) ! { super.draw(s); scheduleUpdate(); } --- 75,81 ---- } public void draw(Shape s) ! { super.draw(s); scheduleUpdate(); } *************** public class QtImageDirectGraphics exten *** 105,147 **** } public boolean drawImage(Image image, ! AffineTransform Tx, ! ImageObserver obs) { boolean r = super.drawImage(image, Tx, obs); scheduleUpdate(); return r; } ! public boolean drawImage(Image image, int x, int y, Color bgcolor, ! ImageObserver observer) { boolean r = super.drawImage(image, x, y, bgcolor, observer); scheduleUpdate(); return r; } ! public boolean drawImage(Image image, ! int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ! Color bgcolor, ImageObserver observer) { ! boolean r = super.drawImage( image, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, ! bgcolor, observer); scheduleUpdate(); return r; } ! public boolean drawImage(Image image, int x, int y, ! int width, int height, Color bgcolor, ! ImageObserver observer) { ! boolean r = super.drawImage(image, x, y, width, height, bgcolor, ! observer); scheduleUpdate(); return r; } ! } ! ! --- 105,145 ---- } public boolean drawImage(Image image, ! AffineTransform Tx, ! ImageObserver obs) { boolean r = super.drawImage(image, Tx, obs); scheduleUpdate(); return r; } ! public boolean drawImage(Image image, int x, int y, Color bgcolor, ! ImageObserver observer) { boolean r = super.drawImage(image, x, y, bgcolor, observer); scheduleUpdate(); return r; } ! public boolean drawImage(Image image, ! int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ! Color bgcolor, ImageObserver observer) { ! boolean r = super.drawImage( image, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, ! bgcolor, observer); scheduleUpdate(); return r; } ! public boolean drawImage(Image image, int x, int y, ! int width, int height, Color bgcolor, ! ImageObserver observer) { ! boolean r = super.drawImage(image, x, y, width, height, bgcolor, ! observer); scheduleUpdate(); return r; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtImageGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtImageGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtImageGraphics.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtImageGraphics.java Tue Jan 11 19:46:05 2011 *************** public class QtImageGraphics extends QtG *** 65,81 **** int w, h; if(image instanceof QtImage) { ! w = ((QtImage)image).width; ! h = ((QtImage)image).height; ! initImage((QtImage) image ); ! ((QtImage)image).putPainter( this ); ! } else { ! w = ((QtVolatileImage)image).width; ! h = ((QtVolatileImage)image).height; ! initVolatileImage((QtVolatileImage) image ); ! ((QtVolatileImage)image).putPainter( this ); } parentImage = image; --- 65,81 ---- int w, h; if(image instanceof QtImage) { ! w = ((QtImage)image).width; ! h = ((QtImage)image).height; ! initImage((QtImage) image ); ! ((QtImage)image).putPainter( this ); ! } else { ! w = ((QtVolatileImage)image).width; ! h = ((QtVolatileImage)image).height; ! initVolatileImage((QtVolatileImage) image ); ! ((QtVolatileImage)image).putPainter( this ); } parentImage = image; *************** public class QtImageGraphics extends QtG *** 92,98 **** */ QtImageGraphics( QtImageGraphics g ) { ! super( g ); parentImage = g.parentImage; if(parentImage instanceof QtImage) ((QtImage)parentImage).putPainter( this ); --- 92,98 ---- */ QtImageGraphics( QtImageGraphics g ) { ! super( g ); parentImage = g.parentImage; if(parentImage instanceof QtImage) ((QtImage)parentImage).putPainter( this ); *************** public class QtImageGraphics extends QtG *** 119,127 **** /** * Copy an area. ! */ ! public void copyArea(int x, int y, int width, int height, ! int dx, int dy) { if(parentImage instanceof QtImage) ((QtImage)parentImage).copyArea(x, y, width, height, dx, dy); --- 119,127 ---- /** * Copy an area. ! */ ! public void copyArea(int x, int y, int width, int height, ! int dx, int dy) { if(parentImage instanceof QtImage) ((QtImage)parentImage).copyArea(x, y, width, height, dx, dy); *************** public class QtImageGraphics extends QtG *** 136,141 **** { throw new UnsupportedOperationException("Not implemented yet"); } ! } ! ! --- 136,139 ---- { throw new UnsupportedOperationException("Not implemented yet"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtLabelPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtLabelPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtLabelPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtLabelPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtLabelPeer extends QtCompo *** 46,54 **** { super( kit, owner ); } ! protected native void init(); ! protected void setup() { super.setup(); --- 46,54 ---- { super( kit, owner ); } ! protected native void init(); ! protected void setup() { super.setup(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtListPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtListPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtListPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtListPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtListPeer extends QtCompon *** 84,109 **** if( index == -1) ((List)owner).deselect( ((List)owner).getSelectedIndex() ); else ! { ! ((List)owner).select( index ); ! ItemEvent e = new ItemEvent((List)owner, ! ItemEvent.ITEM_STATE_CHANGED, ! ""+index, ! ItemEvent.SELECTED); ! QtToolkit.eventQueue.postEvent(e); ! } } /** * Called back when an item is double-clicked. ! */ private void itemDoubleClicked( int index, int modifiers ) { ActionEvent e = new ActionEvent(owner, ! ActionEvent.ACTION_PERFORMED, ! ((List)owner).getItem( index ), ! System.currentTimeMillis(), ! modifiers); QtToolkit.eventQueue.postEvent(e); } --- 84,109 ---- if( index == -1) ((List)owner).deselect( ((List)owner).getSelectedIndex() ); else ! { ! ((List)owner).select( index ); ! ItemEvent e = new ItemEvent((List)owner, ! ItemEvent.ITEM_STATE_CHANGED, ! ""+index, ! ItemEvent.SELECTED); ! QtToolkit.eventQueue.postEvent(e); ! } } /** * Called back when an item is double-clicked. ! */ private void itemDoubleClicked( int index, int modifiers ) { ActionEvent e = new ActionEvent(owner, ! ActionEvent.ACTION_PERFORMED, ! ((List)owner).getItem( index ), ! System.currentTimeMillis(), ! modifiers); QtToolkit.eventQueue.postEvent(e); } *************** public class QtListPeer extends QtCompon *** 129,138 **** public native void delItems(int start_index, int end_index); public void deselect(int index) ! { if( ignoreNextSelect == true ) ignoreNextSelect = false; ! else select(index, false); } --- 129,138 ---- public native void delItems(int start_index, int end_index); public void deselect(int index) ! { if( ignoreNextSelect == true ) ignoreNextSelect = false; ! else select(index, false); } *************** public class QtListPeer extends QtCompon *** 159,165 **** { if( ignoreNextSelect == true ) ignoreNextSelect = false; ! else select(index, true); } --- 159,165 ---- { if( ignoreNextSelect == true ) ignoreNextSelect = false; ! else select(index, true); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtMenuBarPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtMenuBarPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtMenuBarPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtMenuBarPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtMenuBarPeer extends QtMen *** 47,61 **** { super( kit, owner ); } ! protected native void init(); ! protected void setup() { } ! /** ! * Recurses the menubar adding menus (and menu items), * called from the Frame peer. */ void addMenus() --- 47,61 ---- { super( kit, owner ); } ! protected native void init(); ! protected void setup() { } ! /** ! * Recurses the menubar adding menus (and menu items), * called from the Frame peer. */ void addMenus() *************** public class QtMenuBarPeer extends QtMen *** 99,102 **** delMenu( (QtMenuPeer)m.getPeer() ); } } - --- 99,101 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtMenuComponentPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtMenuComponentPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtMenuComponentPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtMenuComponentPeer.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Font; *** 41,67 **** import java.awt.MenuComponent; import java.awt.peer.MenuComponentPeer; ! public class QtMenuComponentPeer extends NativeWrapper implements MenuComponentPeer { protected QtToolkit toolkit; protected MenuComponent owner; ! public QtMenuComponentPeer( QtToolkit kit, MenuComponent owner ) { this.toolkit = kit; this.owner = owner; nativeObject = 0; ! synchronized(this) { ! callInit(); // Calls the init method FROM THE MAIN THREAD. ! try ! { ! wait(); // Wait for the thing to be created. ! } ! catch(InterruptedException e) ! { ! } } setup(); } --- 41,67 ---- import java.awt.MenuComponent; import java.awt.peer.MenuComponentPeer; ! public class QtMenuComponentPeer extends NativeWrapper implements MenuComponentPeer { protected QtToolkit toolkit; protected MenuComponent owner; ! public QtMenuComponentPeer( QtToolkit kit, MenuComponent owner ) { this.toolkit = kit; this.owner = owner; nativeObject = 0; ! synchronized(this) { ! callInit(); // Calls the init method FROM THE MAIN THREAD. ! try ! { ! wait(); // Wait for the thing to be created. ! } ! catch(InterruptedException e) ! { ! } } setup(); } *************** public class QtMenuComponentPeer extends *** 80,86 **** { dispose(); } ! // ************ Public methods ********************* public native void dispose(); --- 80,86 ---- { dispose(); } ! // ************ Public methods ********************* public native void dispose(); *************** public class QtMenuComponentPeer extends *** 88,94 **** public void setFont(Font font) { // TODO Auto-generated method stub ! } } --- 88,94 ---- public void setFont(Font font) { // TODO Auto-generated method stub ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtMenuItemPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtMenuItemPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtMenuItemPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtMenuItemPeer.java Tue Jan 11 19:46:05 2011 *************** import java.awt.event.ActionEvent; *** 43,49 **** import java.awt.peer.MenuItemPeer; import java.awt.peer.CheckboxMenuItemPeer; ! public class QtMenuItemPeer extends QtMenuComponentPeer implements MenuItemPeer, CheckboxMenuItemPeer { public QtMenuItemPeer( QtToolkit toolkit, MenuItem owner ) --- 43,49 ---- import java.awt.peer.MenuItemPeer; import java.awt.peer.CheckboxMenuItemPeer; ! public class QtMenuItemPeer extends QtMenuComponentPeer implements MenuItemPeer, CheckboxMenuItemPeer { public QtMenuItemPeer( QtToolkit toolkit, MenuItem owner ) *************** public class QtMenuItemPeer extends QtMe *** 73,87 **** private void fireClick(int modifiers) { ActionEvent e = new ActionEvent(owner, ! ActionEvent.ACTION_PERFORMED, ! ((MenuItem)owner).getActionCommand(), ! System.currentTimeMillis(), ! (modifiers & 0x2FF)); QtToolkit.eventQueue.postEvent(e); } // ************ Public methods ********************* ! public void disable() { setEnabled(false); --- 73,87 ---- private void fireClick(int modifiers) { ActionEvent e = new ActionEvent(owner, ! ActionEvent.ACTION_PERFORMED, ! ((MenuItem)owner).getActionCommand(), ! System.currentTimeMillis(), ! (modifiers & 0x2FF)); QtToolkit.eventQueue.postEvent(e); } // ************ Public methods ********************* ! public void disable() { setEnabled(false); *************** public class QtMenuItemPeer extends QtMe *** 98,107 **** public native void setState(boolean state); } - - - - - - - --- 98,100 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtMenuPeer extends QtMenuCo *** 56,62 **** } protected native void init(); ! protected void setup() { items = new Vector(); --- 56,62 ---- } protected native void init(); ! protected void setup() { items = new Vector(); *************** public class QtMenuPeer extends QtMenuCo *** 65,93 **** allowTearOff(); } ! // Recurse the menu tree adding items, // called from the MenuBar addMenus() method, called from the Frame peer. void addItems() { if(!itemsAdded) { ! Menu o = (Menu)owner; ! for( int i=0; i < o.getItemCount(); i++ ) ! { ! MenuItem ci = o.getItem(i); ! if (ci instanceof Menu && ci.getPeer() != null) ! ((QtMenuPeer)ci.getPeer()).addItems(); ! addItem( ci ); ! } ! itemsAdded = true; } } private void fireClick() { ActionEvent e = new ActionEvent(owner, ! ActionEvent.ACTION_PERFORMED, ! ((Menu)owner).getActionCommand()); QtToolkit.eventQueue.postEvent(e); } --- 65,93 ---- allowTearOff(); } ! // Recurse the menu tree adding items, // called from the MenuBar addMenus() method, called from the Frame peer. void addItems() { if(!itemsAdded) { ! Menu o = (Menu)owner; ! for( int i=0; i < o.getItemCount(); i++ ) ! { ! MenuItem ci = o.getItem(i); ! if (ci instanceof Menu && ci.getPeer() != null) ! ((QtMenuPeer)ci.getPeer()).addItems(); ! addItem( ci ); ! } ! itemsAdded = true; } } private void fireClick() { ActionEvent e = new ActionEvent(owner, ! ActionEvent.ACTION_PERFORMED, ! ((Menu)owner).getActionCommand()); QtToolkit.eventQueue.postEvent(e); } *************** public class QtMenuPeer extends QtMenuCo *** 112,124 **** { if( item instanceof Menu || item instanceof PopupMenu) insertMenu((QtMenuPeer)item.getPeer()); ! else { ! QtMenuItemPeer p = (QtMenuItemPeer)item.getPeer(); ! insertItem(p); } } ! public void addSeparator() { insertSeperator(); --- 112,124 ---- { if( item instanceof Menu || item instanceof PopupMenu) insertMenu((QtMenuPeer)item.getPeer()); ! else { ! QtMenuItemPeer p = (QtMenuItemPeer)item.getPeer(); ! insertItem(p); } } ! public void addSeparator() { insertSeperator(); *************** public class QtMenuPeer extends QtMenuCo *** 147,152 **** public native void setLabel(String text); } - - - --- 147,149 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtPanelPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtPanelPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtPanelPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtPanelPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtPanelPeer extends QtConta *** 46,52 **** { super( kit, owner ); } ! protected native void init(); protected void setup() --- 46,52 ---- { super( kit, owner ); } ! protected native void init(); protected void setup() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtPopupMenuPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtPopupMenuPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtPopupMenuPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtPopupMenuPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtPopupMenuPeer extends QtM *** 74,79 **** show((Component)e.target, e.x, e.y); } } - - - --- 74,76 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtRepaintThread.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtRepaintThread.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtRepaintThread.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtRepaintThread.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.awt.peer.qt; *** 42,54 **** * do this directly from the paint callback in QtComponentPeer, because that * is executed from the main thread. Thus, if a call is made at the same time * which requires execution by the main thread, and this is sharing a lock with ! * paint(), then a deadlock will occur, which must be avoided. In general, * the main Qt thread should avoid calling into java code as far as possible. * */ ! public class QtRepaintThread extends Thread { ! static class RepaintComponent { public QtComponentPeer curr; public RepaintComponent next; --- 42,54 ---- * do this directly from the paint callback in QtComponentPeer, because that * is executed from the main thread. Thus, if a call is made at the same time * which requires execution by the main thread, and this is sharing a lock with ! * paint(), then a deadlock will occur, which must be avoided. In general, * the main Qt thread should avoid calling into java code as far as possible. * */ ! public class QtRepaintThread extends Thread { ! static class RepaintComponent { public QtComponentPeer curr; public RepaintComponent next; *************** public class QtRepaintThread extends Thr *** 72,78 **** this.h = h; } } ! RepaintComponent component; boolean busy; --- 72,78 ---- this.h = h; } } ! RepaintComponent component; boolean busy; *************** public class QtRepaintThread extends Thr *** 85,123 **** { while( true ) { ! try ! { ! busy = false; ! // Wait for a repaint ! sleep(100); ! busy = true; ! } ! catch (InterruptedException ie) ! { ! while( component != null ) ! { ! try ! { ! if( component.paintAll ) ! { ! // update the back-buffer. ! component.curr.paintBackBuffer(); ! component.curr.QtUpdate(); // trigger a native repaint event ! } ! else ! { ! component.curr.paintBackBuffer(component.x, component.y, ! component.w, component.h); ! component.curr.QtUpdateArea(component.x, component.y, ! component.w, component.h); ! } ! } ! catch (InterruptedException e) ! { ! } ! component = component.next; ! } ! } } } --- 85,123 ---- { while( true ) { ! try ! { ! busy = false; ! // Wait for a repaint ! sleep(100); ! busy = true; ! } ! catch (InterruptedException ie) ! { ! while( component != null ) ! { ! try ! { ! if( component.paintAll ) ! { ! // update the back-buffer. ! component.curr.paintBackBuffer(); ! component.curr.QtUpdate(); // trigger a native repaint event ! } ! else ! { ! component.curr.paintBackBuffer(component.x, component.y, ! component.w, component.h); ! component.curr.QtUpdateArea(component.x, component.y, ! component.w, component.h); ! } ! } ! catch (InterruptedException e) ! { ! } ! component = component.next; ! } ! } } } *************** public class QtRepaintThread extends Thr *** 130,138 **** component = new RepaintComponent(p); else { ! RepaintComponent r = component; ! while( r.next != null ) r = r.next; ! r.next = new RepaintComponent(p); } interrupt(); } --- 130,138 ---- component = new RepaintComponent(p); else { ! RepaintComponent r = component; ! while( r.next != null ) r = r.next; ! r.next = new RepaintComponent(p); } interrupt(); } *************** public class QtRepaintThread extends Thr *** 140,155 **** /** * Enqueue a component for repainting. */ ! public synchronized void queueComponent(QtComponentPeer p, int x, int y, ! int w, int h) { if( component == null ) component = new RepaintComponent(p, x, y, w, h); else { ! RepaintComponent r = component; ! while( r.next != null ) r = r.next; ! r.next = new RepaintComponent(p, x, y, w, h); } interrupt(); } --- 140,155 ---- /** * Enqueue a component for repainting. */ ! public synchronized void queueComponent(QtComponentPeer p, int x, int y, ! int w, int h) { if( component == null ) component = new RepaintComponent(p, x, y, w, h); else { ! RepaintComponent r = component; ! while( r.next != null ) r = r.next; ! r.next = new RepaintComponent(p, x, y, w, h); } interrupt(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtScreenDevice.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtScreenDevice.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtScreenDevice.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtScreenDevice.java Tue Jan 11 19:46:05 2011 *************** public class QtScreenDevice extends Grap *** 113,116 **** { } } - --- 113,115 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java Tue Jan 11 19:46:05 2011 *************** import java.awt.image.VolatileImage; *** 47,53 **** import java.awt.geom.AffineTransform; public class QtScreenDeviceConfiguration extends GraphicsConfiguration { ! private QtScreenDevice owner; private Rectangle bounds; private double dpiX, dpiY; --- 47,53 ---- import java.awt.geom.AffineTransform; public class QtScreenDeviceConfiguration extends GraphicsConfiguration { ! private QtScreenDevice owner; private Rectangle bounds; private double dpiX, dpiY; *************** public class QtScreenDeviceConfiguration *** 67,87 **** switch( depth ) { case 24: ! return new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR); case 16: ! return new BufferedImage(width, height, ! BufferedImage.TYPE_USHORT_565_RGB); case 8: ! return new BufferedImage(width, height, BufferedImage.TYPE_BYTE_INDEXED); default: case 32: ! return new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); } } public BufferedImage createCompatibleImage(int width, int height, int transparency) { ! // FIXME: Take the transpareny flag into account? // For now, ignore it and just use an alpha channel. if(depth == 32) return new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); --- 67,87 ---- switch( depth ) { case 24: ! return new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR); case 16: ! return new BufferedImage(width, height, ! BufferedImage.TYPE_USHORT_565_RGB); case 8: ! return new BufferedImage(width, height, BufferedImage.TYPE_BYTE_INDEXED); default: case 32: ! return new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); } } public BufferedImage createCompatibleImage(int width, int height, int transparency) { ! // FIXME: Take the transpareny flag into account? // For now, ignore it and just use an alpha channel. if(depth == 32) return new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); *************** public class QtScreenDeviceConfiguration *** 92,100 **** { return new QtVolatileImage( width, height ); } ! ! public VolatileImage createCompatibleVolatileImage(int width, int height, ! ImageCapabilities caps) { return createCompatibleVolatileImage( width, height ); } --- 92,100 ---- { return new QtVolatileImage( width, height ); } ! ! public VolatileImage createCompatibleVolatileImage(int width, int height, ! ImageCapabilities caps) { return createCompatibleVolatileImage( width, height ); } *************** public class QtScreenDeviceConfiguration *** 121,127 **** return new AffineTransform(); } ! public GraphicsDevice getDevice() { return owner; } --- 121,127 ---- return new AffineTransform(); } ! public GraphicsDevice getDevice() { return owner; } *************** public class QtScreenDeviceConfiguration *** 137,144 **** return nTrans; } ! public VolatileImage createCompatibleVolatileImage(int width, int height, ! int transparency) { return createCompatibleVolatileImage(width, height); } --- 137,144 ---- return nTrans; } ! public VolatileImage createCompatibleVolatileImage(int width, int height, ! int transparency) { return createCompatibleVolatileImage(width, height); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtScrollPanePeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtScrollPanePeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtScrollPanePeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtScrollPanePeer.java Tue Jan 11 19:46:05 2011 *************** public class QtScrollPanePeer extends Qt *** 48,54 **** { super( kit, owner ); } ! protected native void init(); protected void setup() --- 48,54 ---- { super( kit, owner ); } ! protected native void init(); protected void setup() *************** public class QtScrollPanePeer extends Qt *** 73,81 **** { // FIXME : more accurate? return new Insets(5 + getHScrollbarHeight(), // Top ! 5 + getVScrollbarWidth(), // Left ! 5, // Bottom ! 5); // Right } public void setUnitIncrement(Adjustable item, int inc) --- 73,81 ---- { // FIXME : more accurate? return new Insets(5 + getHScrollbarHeight(), // Top ! 5 + getVScrollbarWidth(), // Left ! 5, // Bottom ! 5); // Right } public void setUnitIncrement(Adjustable item, int inc) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtScrollbarPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtScrollbarPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtScrollbarPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtScrollbarPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtScrollbarPeer extends QtC *** 65,77 **** private void fireMoved(int type, int value) { AdjustmentEvent e = new AdjustmentEvent((Scrollbar)owner, ! AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, ! type, value); QtToolkit.eventQueue.postEvent(e); } ! // ************ Public methods ********************* ! public native void setLineIncrement(int inc); public native void setPageIncrement(int inc); --- 65,77 ---- private void fireMoved(int type, int value) { AdjustmentEvent e = new AdjustmentEvent((Scrollbar)owner, ! AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, ! type, value); QtToolkit.eventQueue.postEvent(e); } ! // ************ Public methods ********************* ! public native void setLineIncrement(int inc); public native void setPageIncrement(int inc); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtTextAreaPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtTextAreaPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtTextAreaPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtTextAreaPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtTextAreaPeer extends QtCo *** 69,75 **** * Called back on a text edit. */ private void textChanged() ! { TextEvent e = new TextEvent(owner, TextEvent.TEXT_VALUE_CHANGED); QtToolkit.eventQueue.postEvent(e); } --- 69,75 ---- * Called back on a text edit. */ private void textChanged() ! { TextEvent e = new TextEvent(owner, TextEvent.TEXT_VALUE_CHANGED); QtToolkit.eventQueue.postEvent(e); } *************** public class QtTextAreaPeer extends QtCo *** 95,101 **** public native int getIndexAtPoint(int x, int y); // public void reshape(int x, int y, ! // int width, int height) // { // if(width != 0 || height != 0) // super.reshape(x, y, width, height); --- 95,101 ---- public native int getIndexAtPoint(int x, int y); // public void reshape(int x, int y, ! // int width, int height) // { // if(width != 0 || height != 0) // super.reshape(x, y, width, height); *************** public class QtTextAreaPeer extends QtCo *** 177,180 **** return null; } } - --- 177,179 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtTextFieldPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtTextFieldPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtTextFieldPeer.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtTextFieldPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtTextFieldPeer extends QtC *** 80,86 **** // ************ Public methods ********************* ! public long filterEvents(long e) { return e; } --- 80,86 ---- // ************ Public methods ********************* ! public long filterEvents(long e) { return e; } *************** public class QtTextFieldPeer extends QtC *** 91,97 **** { return new Rectangle(0,0,0,0); } ! public int getIndexAtPoint(int x, int y) { // FIXME --- 91,97 ---- { return new Rectangle(0,0,0,0); } ! public int getIndexAtPoint(int x, int y) { // FIXME *************** public class QtTextFieldPeer extends QtC *** 157,160 **** return null; } } - --- 157,159 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java Tue Jan 11 19:46:05 2011 *************** import java.util.Properties; *** 111,117 **** public class QtToolkit extends ClasspathToolkit { public static EventQueue eventQueue = null; // the native event queue ! public static QtRepaintThread repaintThread = null; public static MainQtThread guiThread = null; public static QtGraphicsEnvironment graphicsEnv = null; --- 111,117 ---- public class QtToolkit extends ClasspathToolkit { public static EventQueue eventQueue = null; // the native event queue ! public static QtRepaintThread repaintThread = null; public static MainQtThread guiThread = null; public static QtGraphicsEnvironment graphicsEnv = null; *************** public class QtToolkit extends Classpath *** 122,133 **** System.loadLibrary("qtpeer"); String theme = null; ! try { ! String style = System.getProperty("qtoptions.style"); ! if(style != null) ! theme = style; ! } catch(SecurityException e) { } --- 122,133 ---- System.loadLibrary("qtpeer"); String theme = null; ! try { ! String style = System.getProperty("qtoptions.style"); ! if(style != null) ! theme = style; ! } catch(SecurityException e) { } *************** public class QtToolkit extends Classpath *** 136,147 **** } boolean doublebuffer = true; ! try { ! String style = System.getProperty("qtoptions.nodoublebuffer"); ! if(style != null) ! doublebuffer = false; ! } catch(SecurityException e) { } --- 136,147 ---- } boolean doublebuffer = true; ! try { ! String style = System.getProperty("qtoptions.nodoublebuffer"); ! if(style != null) ! doublebuffer = false; ! } catch(SecurityException e) { } *************** public class QtToolkit extends Classpath *** 171,177 **** } native String[] nativeFontFamilies(); ! native int numScreens(); native int defaultScreen(); --- 171,177 ---- } native String[] nativeFontFamilies(); ! native int numScreens(); native int defaultScreen(); *************** public class QtToolkit extends Classpath *** 213,219 **** return new QtMenuItemPeer( this, target ); } ! public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent dge) { throw new RuntimeException("Not implemented"); } --- 213,219 ---- return new QtMenuItemPeer( this, target ); } ! public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent dge) { throw new RuntimeException("Not implemented"); } *************** public class QtToolkit extends Classpath *** 232,247 **** { return new QtImage( producer ); } ! public Image createImage(byte[] imageData, ! int imageOffset, ! int imageLength) { byte[] dataCopy = new byte[imageLength]; System.arraycopy(imageData, imageOffset, dataCopy, 0, imageLength); return new QtImage( dataCopy ); } ! public Image createImage(String filename) { return new QtImage( filename ); --- 232,247 ---- { return new QtImage( producer ); } ! public Image createImage(byte[] imageData, ! int imageOffset, ! int imageLength) { byte[] dataCopy = new byte[imageLength]; System.arraycopy(imageData, imageOffset, dataCopy, 0, imageLength); return new QtImage( dataCopy ); } ! public Image createImage(String filename) { return new QtImage( filename ); *************** public class QtToolkit extends Classpath *** 256,262 **** { return new QtTextFieldPeer(this,target); } ! protected LabelPeer createLabel(Label target) { return new QtLabelPeer( this, target ); --- 256,262 ---- { return new QtTextFieldPeer(this,target); } ! protected LabelPeer createLabel(Label target) { return new QtLabelPeer( this, target ); *************** public class QtToolkit extends Classpath *** 335,345 **** public ColorModel getColorModel() { ! return new DirectColorModel(32, ! 0x00FF0000, ! 0x0000FF00, ! 0x000000FF, ! 0xFF000000); } /** --- 335,345 ---- public ColorModel getColorModel() { ! return new DirectColorModel(32, ! 0x00FF0000, ! 0x0000FF00, ! 0x000000FF, ! 0xFF000000); } /** *************** public class QtToolkit extends Classpath *** 347,357 **** */ public String[] getFontList() { ! String[] builtIn = new String[] { "Dialog", ! "DialogInput", ! "Monospaced", ! "Serif", ! "SansSerif" }; String[] nat = nativeFontFamilies(); String[] allFonts = new String[ nat.length + 5 ]; System.arraycopy(builtIn, 0, allFonts, 0, 5); --- 347,357 ---- */ public String[] getFontList() { ! String[] builtIn = new String[] { "Dialog", ! "DialogInput", ! "Monospaced", ! "Serif", ! "SansSerif" }; String[] nat = nativeFontFamilies(); String[] allFonts = new String[ nat.length + 5 ]; System.arraycopy(builtIn, 0, allFonts, 0, 5); *************** public class QtToolkit extends Classpath *** 365,371 **** } protected FontPeer getFontPeer(String name, ! int style) { Map attrs = new HashMap (); ClasspathFontPeer.copyStyleToAttrs(style, attrs); --- 365,371 ---- } protected FontPeer getFontPeer(String name, ! int style) { Map attrs = new HashMap (); ClasspathFontPeer.copyStyleToAttrs(style, attrs); *************** public class QtToolkit extends Classpath *** 384,397 **** } public PrintJob getPrintJob(Frame frame, ! String jobtitle, ! Properties props) { SecurityManager sm; sm = System.getSecurityManager(); if (sm != null) sm.checkPrintJobAccess(); ! throw new RuntimeException("Not implemented"); } --- 384,397 ---- } public PrintJob getPrintJob(Frame frame, ! String jobtitle, ! Properties props) { SecurityManager sm; sm = System.getSecurityManager(); if (sm != null) sm.checkPrintJobAccess(); ! throw new RuntimeException("Not implemented"); } *************** public class QtToolkit extends Classpath *** 412,419 **** public Map mapInputMethodHighlight(InputMethodHighlight highlight) { return null; // FIXME ! } ! public boolean prepareImage(Image image, int w, int h, ImageObserver observer) { if(image instanceof QtImage) --- 412,419 ---- public Map mapInputMethodHighlight(InputMethodHighlight highlight) { return null; // FIXME ! } ! public boolean prepareImage(Image image, int w, int h, ImageObserver observer) { if(image instanceof QtImage) *************** public class QtToolkit extends Classpath *** 431,437 **** } public ClasspathFontPeer getClasspathFontPeer (String name, Map attrs) ! { return new QtFontPeer (name, attrs); } --- 431,437 ---- } public ClasspathFontPeer getClasspathFontPeer (String name, Map attrs) ! { return new QtFontPeer (name, attrs); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtVolatileImage.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtVolatileImage.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtVolatileImage.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtVolatileImage.java Tue Jan 11 19:46:05 2011 *************** public class QtVolatileImage extends Vol *** 74,84 **** /* * The 32-bit AARRGGBB format the uses. */ ! static ColorModel nativeModel = new DirectColorModel(32, ! 0x00FF0000, ! 0x0000FF00, ! 0x000000FF, ! 0xFF000000); /** * Clears the image to RGBA 0 --- 74,84 ---- /* * The 32-bit AARRGGBB format the uses. */ ! static ColorModel nativeModel = new DirectColorModel(32, ! 0x00FF0000, ! 0x0000FF00, ! 0x000000FF, ! 0xFF000000); /** * Clears the image to RGBA 0 *************** public class QtVolatileImage extends Vol *** 111,117 **** private native void freeImage(); /** ! * Blit a QImage */ public native void blit(QtImage i); public native void blit(QtImage i, int x, int y, int w, int h); --- 111,117 ---- private native void freeImage(); /** ! * Blit a QImage */ public native void blit(QtImage i); public native void blit(QtImage i, int x, int y, int w, int h); *************** public class QtVolatileImage extends Vol *** 124,158 **** /** * Draws the image optionally composited. */ ! private native void drawPixels (QtGraphics gc, ! int bg_red, int bg_green, int bg_blue, ! int x, int y, ! boolean composite); /** * Draws the image, optionally scaled and composited. */ ! private native void drawPixelsScaled (QtGraphics gc, ! int bg_red, int bg_green, int bg_blue, ! int x, int y, int width, int height, ! boolean composite); /** * Draws the image transformed. */ private native void drawPixelsTransformed (QtGraphics gc, QMatrix transform); ! /** * Draws the image scaled flipped and optionally composited. */ ! native void drawPixelsScaledFlipped (QtGraphics gc, ! int bg_red, int bg_green, ! int bg_blue, ! boolean flipX, boolean flipY, ! int srcX, int srcY, ! int srcWidth, int srcHeight, ! int dstX, int dstY, ! int dstWidth, int dstHeight, ! boolean composite); /** * Constructs an empty QtVolatileImage. --- 124,158 ---- /** * Draws the image optionally composited. */ ! private native void drawPixels (QtGraphics gc, ! int bg_red, int bg_green, int bg_blue, ! int x, int y, ! boolean composite); /** * Draws the image, optionally scaled and composited. */ ! private native void drawPixelsScaled (QtGraphics gc, ! int bg_red, int bg_green, int bg_blue, ! int x, int y, int width, int height, ! boolean composite); /** * Draws the image transformed. */ private native void drawPixelsTransformed (QtGraphics gc, QMatrix transform); ! /** * Draws the image scaled flipped and optionally composited. */ ! native void drawPixelsScaledFlipped (QtGraphics gc, ! int bg_red, int bg_green, ! int bg_blue, ! boolean flipX, boolean flipY, ! int srcX, int srcY, ! int srcWidth, int srcHeight, ! int dstX, int dstY, ! int dstWidth, int dstHeight, ! boolean composite); /** * Constructs an empty QtVolatileImage. *************** public class QtVolatileImage extends Vol *** 169,176 **** /** * Constructs a scaled version of the src bitmap, using Qt */ ! private QtVolatileImage (QtVolatileImage src, int width, int height, ! int hints) { this.width = width; this.height = height; --- 169,176 ---- /** * Constructs a scaled version of the src bitmap, using Qt */ ! private QtVolatileImage (QtVolatileImage src, int width, int height, ! int hints) { this.width = width; this.height = height; *************** public class QtVolatileImage extends Vol *** 190,196 **** if( painters == null || painters.isEmpty() ) freeImage(); else ! killFlag = true; // can't destroy image yet. // Do so when all painters are gone. } --- 190,196 ---- if( painters == null || painters.isEmpty() ) freeImage(); else ! killFlag = true; // can't destroy image yet. // Do so when all painters are gone. } *************** public class QtVolatileImage extends Vol *** 200,206 **** { return getWidth(); } ! public int getHeight (ImageObserver observer) { return getHeight(); --- 200,206 ---- { return getWidth(); } ! public int getHeight (ImageObserver observer) { return getHeight(); *************** public class QtVolatileImage extends Vol *** 217,224 **** */ public ImageProducer getSource () { ! return new MemoryImageSource(width, height, nativeModel, getPixels(), ! 0, width); } void putPainter(QtImageGraphics g) --- 217,224 ---- */ public ImageProducer getSource () { ! return new MemoryImageSource(width, height, nativeModel, getPixels(), ! 0, width); } void putPainter(QtImageGraphics g) *************** public class QtVolatileImage extends Vol *** 244,260 **** putPainter( g ); return g; } ! /** * Returns a scaled instance of this image. */ public Image getScaledInstance(int width, ! int height, ! int hints) { if (width <= 0 || height <= 0) throw new IllegalArgumentException("Width and height of scaled bitmap"+ ! "must be >= 0"); return new QtVolatileImage(this, width, height, hints); } --- 244,260 ---- putPainter( g ); return g; } ! /** * Returns a scaled instance of this image. */ public Image getScaledInstance(int width, ! int height, ! int hints) { if (width <= 0 || height <= 0) throw new IllegalArgumentException("Width and height of scaled bitmap"+ ! "must be >= 0"); return new QtVolatileImage(this, width, height, hints); } *************** public class QtVolatileImage extends Vol *** 280,286 **** * Draws an image with eventual scaling/transforming. */ public boolean drawImage (QtGraphics g, QMatrix matrix, ! ImageObserver observer) { drawPixelsTransformed (g, matrix); return true; --- 280,286 ---- * Draws an image with eventual scaling/transforming. */ public boolean drawImage (QtGraphics g, QMatrix matrix, ! ImageObserver observer) { drawPixelsTransformed (g, matrix); return true; *************** public class QtVolatileImage extends Vol *** 291,301 **** * compositing with a background color. */ public boolean drawImage (QtGraphics g, int x, int y, ! Color bgcolor, ImageObserver observer) { if(bgcolor != null) ! drawPixels(g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), x, y, true); else drawPixels(g, 0, 0, 0, x, y, false); --- 291,301 ---- * compositing with a background color. */ public boolean drawImage (QtGraphics g, int x, int y, ! Color bgcolor, ImageObserver observer) { if(bgcolor != null) ! drawPixels(g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), x, y, true); else drawPixels(g, 0, 0, 0, x, y, false); *************** public class QtVolatileImage extends Vol *** 303,329 **** } /** ! * Draws an image to the QtGraphics context, at (x,y) scaled to * width and height, with optional compositing with a background color. */ public boolean drawImage (QtGraphics g, int x, int y, int width, int height, ! Color bgcolor, ImageObserver observer) { if(bgcolor != null) ! drawPixelsScaled(g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), x, y, width, height, true); else drawPixelsScaled(g, 0, 0, 0, x, y, width, height, false); ! return true; } /** * Draws an image with eventual scaling/transforming. */ ! public boolean drawImage (QtGraphics g, int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ! Color bgcolor, ImageObserver observer) { boolean flipX = (dx1 > dx2)^(sx1 > sx2); boolean flipY = (dy1 > dy2)^(sy1 > sy2); --- 303,329 ---- } /** ! * Draws an image to the QtGraphics context, at (x,y) scaled to * width and height, with optional compositing with a background color. */ public boolean drawImage (QtGraphics g, int x, int y, int width, int height, ! Color bgcolor, ImageObserver observer) { if(bgcolor != null) ! drawPixelsScaled(g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), x, y, width, height, true); else drawPixelsScaled(g, 0, 0, 0, x, y, width, height, false); ! return true; } /** * Draws an image with eventual scaling/transforming. */ ! public boolean drawImage (QtGraphics g, int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ! Color bgcolor, ImageObserver observer) { boolean flipX = (dx1 > dx2)^(sx1 > sx2); boolean flipY = (dy1 > dy2)^(sy1 > sy2); *************** public class QtVolatileImage extends Vol *** 336,388 **** int dstX = (dx1 < dx2) ? dx1 : dx2; int dstY = (dy1 < dy2) ? dy1 : dy2; ! // Clipping. This requires the dst to be scaled as well, if (srcWidth > width) { ! dstWidth = (int)((double)dstWidth*((double)width/(double)srcWidth)); ! srcWidth = width - srcX; } ! if (srcHeight > height) { ! dstHeight = (int)((double)dstHeight*((double)height/(double)srcHeight)); ! srcHeight = height - srcY; } if (srcWidth + srcX > width) { ! dstWidth = (int)((double)dstWidth * (double)(width - srcX)/(double)srcWidth); ! srcWidth = width - srcX; } if (srcHeight + srcY > height) { ! dstHeight = (int)((double)dstHeight * (double)(width - srcY)/(double)srcHeight); ! srcHeight = height - srcY; } if ( srcWidth <= 0 || srcHeight <= 0 || dstWidth <= 0 || dstHeight <= 0) return true; if(bgcolor != null) ! drawPixelsScaledFlipped (g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), ! flipX, flipY, ! srcX, srcY, ! srcWidth, srcHeight, ! dstX, dstY, ! dstWidth, dstHeight, ! true); else drawPixelsScaledFlipped (g, 0, 0, 0, flipX, flipY, ! srcX, srcY, srcWidth, srcHeight, ! dstX, dstY, dstWidth, dstHeight, ! false); return true; } ! ! public native void copyArea(int x, int y, int width, int height, ! int dx, int dy); //******************** VolatileImage stuff ******************** --- 336,388 ---- int dstX = (dx1 < dx2) ? dx1 : dx2; int dstY = (dy1 < dy2) ? dy1 : dy2; ! // Clipping. This requires the dst to be scaled as well, if (srcWidth > width) { ! dstWidth = (int)((double)dstWidth*((double)width/(double)srcWidth)); ! srcWidth = width - srcX; } ! if (srcHeight > height) { ! dstHeight = (int)((double)dstHeight*((double)height/(double)srcHeight)); ! srcHeight = height - srcY; } if (srcWidth + srcX > width) { ! dstWidth = (int)((double)dstWidth * (double)(width - srcX)/(double)srcWidth); ! srcWidth = width - srcX; } if (srcHeight + srcY > height) { ! dstHeight = (int)((double)dstHeight * (double)(width - srcY)/(double)srcHeight); ! srcHeight = height - srcY; } if ( srcWidth <= 0 || srcHeight <= 0 || dstWidth <= 0 || dstHeight <= 0) return true; if(bgcolor != null) ! drawPixelsScaledFlipped (g, bgcolor.getRed (), bgcolor.getGreen (), ! bgcolor.getBlue (), ! flipX, flipY, ! srcX, srcY, ! srcWidth, srcHeight, ! dstX, dstY, ! dstWidth, dstHeight, ! true); else drawPixelsScaledFlipped (g, 0, 0, 0, flipX, flipY, ! srcX, srcY, srcWidth, srcHeight, ! dstX, dstY, dstWidth, dstHeight, ! false); return true; } ! ! public native void copyArea(int x, int y, int width, int height, ! int dx, int dy); //******************** VolatileImage stuff ******************** *************** public class QtVolatileImage extends Vol *** 402,411 **** { return new ImageCapabilities(false) { ! public boolean isTrueVolatile() ! { ! return false; ! } }; } --- 402,411 ---- { return new ImageCapabilities(false) { ! public boolean isTrueVolatile() ! { ! return false; ! } }; } *************** public class QtVolatileImage extends Vol *** 416,423 **** public BufferedImage getSnapshot() { ! BufferedImage bi = new BufferedImage(width, height, ! BufferedImage.TYPE_INT_ARGB_PRE); bi.setRGB( 0, 0, width, height, getPixels(), 0, width); return bi; } --- 416,423 ---- public BufferedImage getSnapshot() { ! BufferedImage bi = new BufferedImage(width, height, ! BufferedImage.TYPE_INT_ARGB_PRE); bi.setRGB( 0, 0, width, height, getPixels(), 0, width); return bi; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java Tue Jan 11 19:46:05 2011 *************** public class QtWindowPeer extends QtCont *** 53,59 **** { super.setup(); } ! // ************ Public methods ********************* public native void toBack(); --- 53,59 ---- { super.setup(); } ! // ************ Public methods ********************* public native void toBack(); *************** public class QtWindowPeer extends QtCont *** 68,74 **** public void updateAlwaysOnTop() { // TODO Auto-generated method stub ! } public boolean requestWindowFocus() --- 68,74 ---- public void updateAlwaysOnTop() { // TODO Auto-generated method stub ! } public boolean requestWindowFocus() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingButtonPeer *** 185,191 **** par = button.getParent(); return par; } ! /** * Handles focus events by forwarding it to * processFocusEvent(). --- 185,191 ---- par = button.getParent(); return par; } ! /** * Handles focus events by forwarding it to * processFocusEvent(). *************** public class SwingButtonPeer *** 232,238 **** for (int i = 0; i < l.length; ++i) l[i].actionPerformed(ev); } ! } /** --- 232,238 ---- for (int i = 0; i < l.length; ++i) l[i].actionPerformed(ev); } ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingCheckboxPeer extends S *** 62,68 **** /** * A spezialized Swing checkbox used to paint the checkbox for the ! * AWT checkbox. */ private class SwingCheckbox extends JCheckBox --- 62,68 ---- /** * A spezialized Swing checkbox used to paint the checkbox for the ! * AWT checkbox. */ private class SwingCheckbox extends JCheckBox *************** public class SwingCheckboxPeer extends S *** 211,217 **** * Receives notification when an action was performend on the button. * * @param event the action event ! */ public void itemStateChanged(ItemEvent event) { awtCheckbox.setState(event.getStateChange()==ItemEvent.SELECTED); --- 211,217 ---- * Receives notification when an action was performend on the button. * * @param event the action event ! */ public void itemStateChanged(ItemEvent event) { awtCheckbox.setState(event.getStateChange()==ItemEvent.SELECTED); *************** public class SwingCheckboxPeer extends S *** 224,230 **** l[i].itemStateChanged(ev); } } ! /** * Creates a new SwingCheckboxPeer instance. */ --- 224,230 ---- l[i].itemStateChanged(ev); } } ! /** * Creates a new SwingCheckboxPeer instance. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java Tue Jan 11 19:46:05 2011 *************** public interface SwingComponent *** 87,93 **** * @param ev the key event */ void handleKeyEvent(KeyEvent ev); ! /** * Handles a focus event. This is usually forwarded to * {@link Component#processFocusEvent(FocusEvent)} of the swing --- 87,93 ---- * @param ev the key event */ void handleKeyEvent(KeyEvent ev); ! /** * Handles a focus event. This is usually forwarded to * {@link Component#processFocusEvent(FocusEvent)} of the swing diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingComponentPeer *** 195,201 **** public Image createImage(ImageProducer prod) { Image image = Toolkit.getDefaultToolkit().createImage(prod); ! return image; } /** --- 195,201 ---- public Image createImage(ImageProducer prod) { Image image = Toolkit.getDefaultToolkit().createImage(prod); ! return image; } /** *************** public class SwingComponentPeer *** 379,385 **** /** * Handles the given event. This is called from ! * {@link Component#dispatchEvent(AWTEvent)} to give the peer a chance to * react to events for the component. * * @param e the event --- 379,385 ---- /** * Handles the given event. This is called from ! * {@link Component#dispatchEvent(AWTEvent)} to give the peer a chance to * react to events for the component. * * @param e the event *************** public class SwingComponentPeer *** 458,464 **** /** * Returns true if the component can receive keyboard input * focus. This is called from {@link Component#isFocusTraversable()}. ! * * This is implemented to return isFocusable() from the Swing component. * * @specnote Part of the earlier 1.1 API, replaced by isFocusable(). --- 458,464 ---- /** * Returns true if the component can receive keyboard input * focus. This is called from {@link Component#isFocusTraversable()}. ! * * This is implemented to return isFocusable() from the Swing component. * * @specnote Part of the earlier 1.1 API, replaced by isFocusable(). *************** public class SwingComponentPeer *** 591,600 **** /** * Requests that this component receives the focus. This is called from * {@link Component#requestFocus()}. ! * * This calls requestFocus() on the Swing component. * ! * @specnote Part of the earlier 1.1 API, apparently replaced by argument * form of the same method. */ public void requestFocus() --- 591,600 ---- /** * Requests that this component receives the focus. This is called from * {@link Component#requestFocus()}. ! * * This calls requestFocus() on the Swing component. * ! * @specnote Part of the earlier 1.1 API, apparently replaced by argument * form of the same method. */ public void requestFocus() *************** public class SwingComponentPeer *** 762,768 **** swingComponent.getJComponent().setVisible(true); } ! /** * Get the graphics configuration of the component. The color model * of the component can be derived from the configuration. * --- 762,768 ---- swingComponent.getJComponent().setVisible(true); } ! /** * Get the graphics configuration of the component. The color model * of the component can be derived from the configuration. * *************** public class SwingComponentPeer *** 845,851 **** * Returns true, if this component can handle wheel scrolling, * false otherwise. * ! * This is not yet implemented and returns false. * * @return true, if this component can handle wheel scrolling, * false otherwise --- 845,851 ---- * Returns true, if this component can handle wheel scrolling, * false otherwise. * ! * This is not yet implemented and returns false. * * @return true, if this component can handle wheel scrolling, * false otherwise *************** public class SwingComponentPeer *** 979,985 **** /** * Reparent this component under another container. ! * * @param parent * @since 1.5 */ --- 979,985 ---- /** * Reparent this component under another container. ! * * @param parent * @since 1.5 */ *************** public class SwingComponentPeer *** 1009,1015 **** /** * Check if this component supports being reparented. ! * * @return true if this component can be reparented, * false otherwise. * @since 1.5 --- 1009,1015 ---- /** * Check if this component supports being reparented. ! * * @return true if this component can be reparented, * false otherwise. * @since 1.5 *************** public class SwingComponentPeer *** 1051,1063 **** } finally { userGraphics.dispose(); } ! } /** * Paints the actual 'heavyweight' swing component, if there is one * associated to this peer. ! * * @param g the graphics to paint the component with */ protected void peerPaintComponent(Graphics g) --- 1051,1063 ---- } finally { userGraphics.dispose(); } ! } /** * Paints the actual 'heavyweight' swing component, if there is one * associated to this peer. ! * * @param g the graphics to paint the component with */ protected void peerPaintComponent(Graphics g) *************** public class SwingComponentPeer *** 1115,1121 **** swingComponent.handleFocusEvent(e); } ! /** * Returns the AWT component for this peer. * --- 1115,1121 ---- swingComponent.handleFocusEvent(e); } ! /** * Returns the AWT component for this peer. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingContainerPeer *** 340,346 **** } } } ! /** * Handles key events on the component. This is usually forwarded to the * SwingComponent's processKeyEvent() method. --- 340,346 ---- } } } ! /** * Handles key events on the component. This is usually forwarded to the * SwingComponent's processKeyEvent() method. *************** public class SwingContainerPeer *** 352,363 **** Component owner = getFocusOwner(); if(owner != null) owner.getPeer().handleEvent(e); ! else super.handleKeyEvent(e); } private Component focusOwner = null; ! private Component getFocusOwner() { if(focusOwner == null) --- 352,363 ---- Component owner = getFocusOwner(); if(owner != null) owner.getPeer().handleEvent(e); ! else super.handleKeyEvent(e); } private Component focusOwner = null; ! private Component getFocusOwner() { if(focusOwner == null) *************** public class SwingContainerPeer *** 369,378 **** { focusOwner = child; break; ! } } } return focusOwner; } ! } --- 369,378 ---- { focusOwner = child; break; ! } } } return focusOwner; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingLabelPeer *** 62,68 **** { /** ! * A spezialized Swing label used to paint the label for the AWT Label. * * @author Roman Kennke (kennke@aicas.com) */ --- 62,68 ---- { /** ! * A spezialized Swing label used to paint the label for the AWT Label. * * @author Roman Kennke (kennke@aicas.com) */ *************** public class SwingLabelPeer *** 71,83 **** implements SwingComponent { Label label; ! ! SwingLabel(Label label) { this.label = label; } ! /** * Returns this label. * --- 71,83 ---- implements SwingComponent { Label label; ! ! SwingLabel(Label label) { this.label = label; } ! /** * Returns this label. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingListPeer *** 63,69 **** { /** ! * A spezialized Swing scroller used to hold the list. * * @author Roman Kennke (kennke@aicas.com) */ --- 63,69 ---- { /** ! * A spezialized Swing scroller used to hold the list. * * @author Roman Kennke (kennke@aicas.com) */ *************** public class SwingListPeer *** 139,145 **** processFocusEvent(ev); } ! /** * Overridden so that this method returns the correct value even without a * peer. --- 139,145 ---- processFocusEvent(ev); } ! /** * Overridden so that this method returns the correct value even without a * peer. *************** public class SwingListPeer *** 356,362 **** super.peerPaint(g, update); jList.doLayout(); jList.list(); ! Rectangle r = getBounds(); g.setColor(Color.RED); g.drawRect(r.x, r.y, r.width, r.height); --- 356,362 ---- super.peerPaint(g, update); jList.doLayout(); jList.list(); ! Rectangle r = getBounds(); g.setColor(Color.RED); g.drawRect(r.x, r.y, r.width, r.height); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuItemPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuItemPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuItemPeer.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuItemPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingMenuItemPeer *** 83,89 **** event.setSource(awtMenuItem); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); } ! } /** --- 83,89 ---- event.setSource(awtMenuItem); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); } ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuPeer.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingMenuPeer *** 140,146 **** { MenuItem item = awtMenu.getItem(i); item.addNotify(); ! SwingMenuItemPeer peer = (SwingMenuItemPeer) item.getPeer(); menu.add(peer.menuItem); } } --- 140,146 ---- { MenuItem item = awtMenu.getItem(i); item.addNotify(); ! SwingMenuItemPeer peer = (SwingMenuItemPeer) item.getPeer(); menu.add(peer.menuItem); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingTextAreaPeer *** 66,72 **** { /** ! * A spezialized Swing scroller used to hold the textarea. * * @author Roman Kennke (kennke@aicas.com) */ --- 66,72 ---- { /** ! * A spezialized Swing scroller used to hold the textarea. * * @author Roman Kennke (kennke@aicas.com) */ *************** public class SwingTextAreaPeer *** 112,118 **** else { ev.setSource(this); ! this.dispatchEvent(ev); } } --- 112,118 ---- else { ev.setSource(this); ! this.dispatchEvent(ev); } } *************** public class SwingTextAreaPeer *** 208,214 **** par = SwingTextAreaPeer.this.awtComponent.getParent(); return par; } ! public void requestFocus() { SwingTextAreaPeer.this.requestFocus(awtComponent, false, true, 0); } --- 208,214 ---- par = SwingTextAreaPeer.this.awtComponent.getParent(); return par; } ! public void requestFocus() { SwingTextAreaPeer.this.requestFocus(awtComponent, false, true, 0); } *************** public class SwingTextAreaPeer *** 311,317 **** true, 0); } } ! /** * The actual JTextArea. */ --- 311,317 ---- true, 0); } } ! /** * The actual JTextArea. */ *************** public class SwingTextAreaPeer *** 349,355 **** rows = 5; textArea.setRows(rows); } ! jTextArea.setColumns(columns); jTextArea.setRows(rows); } --- 349,355 ---- rows = 5; textArea.setRows(rows); } ! jTextArea.setColumns(columns); jTextArea.setRows(rows); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java Tue Jan 11 19:46:05 2011 *************** public class SwingTextFieldPeer *** 76,82 **** SwingTextField(TextField textField) { ! this.textField = textField; } /** --- 76,82 ---- SwingTextField(TextField textField) { ! this.textField = textField; } /** *************** public class SwingTextFieldPeer *** 173,179 **** processFocusEvent(ev); } ! public Container getParent() { Container par = null; --- 173,179 ---- processFocusEvent(ev); } ! public Container getParent() { Container par = null; *************** public class SwingTextFieldPeer *** 186,192 **** { return SwingTextFieldPeer.this.getGraphics(); } ! public void requestFocus() { SwingTextFieldPeer.this.requestFocus(awtComponent, false, true, 0); } --- 186,192 ---- { return SwingTextFieldPeer.this.getGraphics(); } ! public void requestFocus() { SwingTextFieldPeer.this.requestFocus(awtComponent, false, true, 0); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java Tue Jan 11 19:46:05 2011 *************** public class GLGraphics extends Abstract *** 72,78 **** public void setBackground(Color b) { super.setBackground(b); ! gl.clearColor(b.getRed() / 255.F, b.getGreen() / 255.F, b.getBlue() / 255.F, b.getAlpha() / 255.F); } --- 72,78 ---- public void setBackground(Color b) { super.setBackground(b); ! gl.clearColor(b.getRed() / 255.F, b.getGreen() / 255.F, b.getBlue() / 255.F, b.getAlpha() / 255.F); } *************** public class GLGraphics extends Abstract *** 128,134 **** { // FIXME: not sure it's correct return new Rectangle(0, 0, ! gl.display.default_screen.width, gl.display.default_screen.height); } } --- 128,134 ---- { // FIXME: not sure it's correct return new Rectangle(0, 0, ! gl.display.default_screen.width, gl.display.default_screen.height); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java Tue Jan 11 19:46:05 2011 *************** final class KeyboardMapping *** 54,60 **** /** * Maps X keycodes to AWT keycodes. ! * * @param xInput the X input event * @param xKeyCode the X keycode to map * @param xMods the X modifiers --- 54,60 ---- /** * Maps X keycodes to AWT keycodes. ! * * @param xInput the X input event * @param xKeyCode the X keycode to map * @param xMods the X modifiers diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java Tue Jan 11 19:46:05 2011 *************** public class XEventPump *** 178,184 **** { target = awtWindow; } ! MouseEvent mp = new MouseEvent(target, MouseEvent.MOUSE_PRESSED, System.currentTimeMillis(), KeyboardMapping.mapModifiers(event.getState()) --- 178,184 ---- { target = awtWindow; } ! MouseEvent mp = new MouseEvent(target, MouseEvent.MOUSE_PRESSED, System.currentTimeMillis(), KeyboardMapping.mapModifiers(event.getState()) *************** public class XEventPump *** 187,212 **** 1, false, button); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mp); } ! private void handleButtonRelease(ButtonRelease event) { Integer key = new Integer(event.getEventWindowID()); Window awtWindow = (Window) windows.get(key); int button = event.detail(); ! // AWT cannot handle more than 3 buttons and expects 0 instead. if (button >= gnu.x11.Input.BUTTON3) button = 0; drag = -1; ! Component target = findMouseEventTarget(awtWindow, event.getEventX(), event.getEventY()); if(target == null) { target = awtWindow; } ! MouseEvent mr = new MouseEvent(target, MouseEvent.MOUSE_RELEASED, System.currentTimeMillis(), KeyboardMapping.mapModifiers(event.getState()) --- 187,212 ---- 1, false, button); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mp); } ! private void handleButtonRelease(ButtonRelease event) { Integer key = new Integer(event.getEventWindowID()); Window awtWindow = (Window) windows.get(key); int button = event.detail(); ! // AWT cannot handle more than 3 buttons and expects 0 instead. if (button >= gnu.x11.Input.BUTTON3) button = 0; drag = -1; ! Component target = findMouseEventTarget(awtWindow, event.getEventX(), event.getEventY()); if(target == null) { target = awtWindow; } ! MouseEvent mr = new MouseEvent(target, MouseEvent.MOUSE_RELEASED, System.currentTimeMillis(), KeyboardMapping.mapModifiers(event.getState()) *************** public class XEventPump *** 215,229 **** 1, false, button); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mr); } ! ! private void handleMotionNotify(MotionNotify event) { Integer key = new Integer(event.getEventWindowID()); Window awtWindow = (Window) windows.get(key); int button = event.detail(); ! // AWT cannot handle more than 3 buttons and expects 0 instead. if (button >= gnu.x11.Input.BUTTON3) button = 0; --- 215,229 ---- 1, false, button); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mr); } ! ! private void handleMotionNotify(MotionNotify event) { Integer key = new Integer(event.getEventWindowID()); Window awtWindow = (Window) windows.get(key); int button = event.detail(); ! // AWT cannot handle more than 3 buttons and expects 0 instead. if (button >= gnu.x11.Input.BUTTON3) button = 0; *************** public class XEventPump *** 250,275 **** } Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mm); } ! // FIME: refactor and make faster, maybe caching the event and handle // and/or check timing (timing is generated for PropertyChange)? private void handleExpose(Expose event) { Integer key = new Integer(event.window_id); Window awtWindow = (Window) windows.get(key); ! if (XToolkit.DEBUG) System.err.println("expose request for window id: " + key); ! Rectangle r = new Rectangle(event.x(), event.y(), event.width(), event.height()); // We need to clear the background of the exposed rectangle. assert awtWindow != null : "awtWindow == null for window ID: " + key; ! Graphics g = awtWindow.getGraphics(); g.clearRect(r.x, r.y, r.width, r.height); g.dispose(); ! XWindowPeer xwindow = (XWindowPeer) awtWindow.getPeer(); Insets i = xwindow.insets(); if (event.width() != awtWindow.getWidth() - i.left - i.right --- 250,275 ---- } Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mm); } ! // FIME: refactor and make faster, maybe caching the event and handle // and/or check timing (timing is generated for PropertyChange)? private void handleExpose(Expose event) { Integer key = new Integer(event.window_id); Window awtWindow = (Window) windows.get(key); ! if (XToolkit.DEBUG) System.err.println("expose request for window id: " + key); ! Rectangle r = new Rectangle(event.x(), event.y(), event.width(), event.height()); // We need to clear the background of the exposed rectangle. assert awtWindow != null : "awtWindow == null for window ID: " + key; ! Graphics g = awtWindow.getGraphics(); g.clearRect(r.x, r.y, r.width, r.height); g.dispose(); ! XWindowPeer xwindow = (XWindowPeer) awtWindow.getPeer(); Insets i = xwindow.insets(); if (event.width() != awtWindow.getWidth() - i.left - i.right *************** public class XEventPump *** 279,353 **** int h = event.height(); int x = xwindow.xwindow.x; int y = xwindow.xwindow.y; ! if (XToolkit.DEBUG) System.err.println("Setting size on AWT window: " + w + ", " + h + ", " + awtWindow.getWidth() + ", " + awtWindow.getHeight()); ! // new width and height xwindow.xwindow.width = w; xwindow.xwindow.height = h; ! // reshape the window ComponentReshapeEvent cre = new ComponentReshapeEvent(awtWindow, x, y, w, h); awtWindow.dispatchEvent(cre); } ! ComponentEvent ce = new ComponentEvent(awtWindow, ComponentEvent.COMPONENT_RESIZED); awtWindow.dispatchEvent(ce); ! PaintEvent pev = new PaintEvent(awtWindow, PaintEvent.UPDATE, r); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(pev); } ! private void handleDestroyNotify(DestroyNotify destroyNotify) { if (XToolkit.DEBUG) System.err.println("DestroyNotify event: " + destroyNotify); ! Integer key = new Integer(destroyNotify.event_window_id); Window awtWindow = (Window) windows.get(key); ! AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_CLOSED); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); } ! private void handleClientMessage(ClientMessage clientMessage) { if (XToolkit.DEBUG) System.err.println("ClientMessage event: " + clientMessage); ! if (clientMessage.delete_window()) { if (XToolkit.DEBUG) System.err.println("ClientMessage is a delete_window event"); ! Integer key = new Integer(clientMessage.window_id); Window awtWindow = (Window) windows.get(key); ! AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_CLOSING); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); } } ! private void handleEvent(Event xEvent) { if (XToolkit.DEBUG) System.err.println("fetched event: " + xEvent); ! switch (xEvent.code() & 0x7f) { case ButtonPress.CODE: this.handleButtonPress((ButtonPress) xEvent); break; case ButtonRelease.CODE: ! this.handleButtonRelease((ButtonRelease) xEvent); break; case MotionNotify.CODE: ! this.handleMotionNotify((MotionNotify) xEvent); break; case Expose.CODE: this.handleExpose((Expose) xEvent); --- 279,353 ---- int h = event.height(); int x = xwindow.xwindow.x; int y = xwindow.xwindow.y; ! if (XToolkit.DEBUG) System.err.println("Setting size on AWT window: " + w + ", " + h + ", " + awtWindow.getWidth() + ", " + awtWindow.getHeight()); ! // new width and height xwindow.xwindow.width = w; xwindow.xwindow.height = h; ! // reshape the window ComponentReshapeEvent cre = new ComponentReshapeEvent(awtWindow, x, y, w, h); awtWindow.dispatchEvent(cre); } ! ComponentEvent ce = new ComponentEvent(awtWindow, ComponentEvent.COMPONENT_RESIZED); awtWindow.dispatchEvent(ce); ! PaintEvent pev = new PaintEvent(awtWindow, PaintEvent.UPDATE, r); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(pev); } ! private void handleDestroyNotify(DestroyNotify destroyNotify) { if (XToolkit.DEBUG) System.err.println("DestroyNotify event: " + destroyNotify); ! Integer key = new Integer(destroyNotify.event_window_id); Window awtWindow = (Window) windows.get(key); ! AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_CLOSED); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); } ! private void handleClientMessage(ClientMessage clientMessage) { if (XToolkit.DEBUG) System.err.println("ClientMessage event: " + clientMessage); ! if (clientMessage.delete_window()) { if (XToolkit.DEBUG) System.err.println("ClientMessage is a delete_window event"); ! Integer key = new Integer(clientMessage.window_id); Window awtWindow = (Window) windows.get(key); ! AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_CLOSING); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); } } ! private void handleEvent(Event xEvent) { if (XToolkit.DEBUG) System.err.println("fetched event: " + xEvent); ! switch (xEvent.code() & 0x7f) { case ButtonPress.CODE: this.handleButtonPress((ButtonPress) xEvent); break; case ButtonRelease.CODE: ! this.handleButtonRelease((ButtonRelease) xEvent); break; case MotionNotify.CODE: ! this.handleMotionNotify((MotionNotify) xEvent); break; case Expose.CODE: this.handleExpose((Expose) xEvent); *************** public class XEventPump *** 410,416 **** keyChar); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(ke); } ! } else { --- 410,416 ---- keyChar); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(ke); } ! } else { *************** public class XEventPump *** 438,446 **** return MouseEvent.BUTTON3_DOWN_MASK | MouseEvent.BUTTON3_MASK; } ! return 0; } ! /** * Finds the heavyweight mouse event target. * --- 438,446 ---- return MouseEvent.BUTTON3_DOWN_MASK | MouseEvent.BUTTON3_MASK; } ! return 0; } ! /** * Finds the heavyweight mouse event target. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java Tue Jan 11 19:46:05 2011 *************** public class XFontPeer *** 98,109 **** { /** * The ascent of the font. ! */ int ascent; /** * The descent of the font. ! */ int descent; /** --- 98,109 ---- { /** * The ascent of the font. ! */ int ascent; /** * The descent of the font. ! */ int descent; /** *************** public class XFontPeer *** 253,259 **** * * @param c the char buffer holding the string * @param offset the starting offset of the string in the buffer ! * @param length the number of characters in the string buffer * * @return the overall width of the specified string */ --- 253,259 ---- * * @param c the char buffer holding the string * @param offset the starting offset of the string in the buffer ! * @param length the number of characters in the string buffer * * @return the overall width of the specified string */ *************** public class XFontPeer *** 393,399 **** { return 1.F; // TODO: Provided by X?? } ! } /** --- 393,399 ---- { return 1.F; // TODO: Provided by X?? } ! } /** *************** public class XFontPeer *** 410,416 **** /** * The font metrics for this font. */ ! XFontMetrics fontMetrics; /** * Creates a new XFontPeer for the specified font name, style and size. --- 410,416 ---- /** * The font metrics for this font. */ ! XFontMetrics fontMetrics; /** * Creates a new XFontPeer for the specified font name, style and size. *************** public class XFontPeer *** 694,700 **** case Font.PLAIN: default: key.append("plain"); ! } String protoType = fontProperties.getProperty(key.toString()); --- 694,700 ---- case Font.PLAIN: default: key.append("plain"); ! } String protoType = fontProperties.getProperty(key.toString()); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java Tue Jan 11 19:46:05 2011 *************** public class XFramePeer *** 107,116 **** // TODO: Implement this. throw new UnsupportedOperationException("Not yet implemented."); } ! /** * Check if this frame peer supports being restacked. ! * * @return true if this frame peer can be restacked, * false otherwise * @since 1.5 --- 107,116 ---- // TODO: Implement this. throw new UnsupportedOperationException("Not yet implemented."); } ! /** * Check if this frame peer supports being restacked. ! * * @return true if this frame peer can be restacked, * false otherwise * @since 1.5 *************** public class XFramePeer *** 120,129 **** // TODO: Implement this. throw new UnsupportedOperationException("Not yet implemented."); } ! /** * Sets the bounds of this frame peer. ! * * @param x the new x co-ordinate * @param y the new y co-ordinate * @param width the new width --- 120,129 ---- // TODO: Implement this. throw new UnsupportedOperationException("Not yet implemented."); } ! /** * Sets the bounds of this frame peer. ! * * @param x the new x co-ordinate * @param y the new y co-ordinate * @param width the new width diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java Tue Jan 11 19:46:05 2011 *************** public class XGraphics2D *** 325,331 **** colorMap.put(c, col); }*/ //xgc.set_foreground(col); ! xgc.set_foreground(c.getRGB()); foreground = c; } --- 325,331 ---- colorMap.put(c, col); }*/ //xgc.set_foreground(col); ! xgc.set_foreground(c.getRGB()); foreground = c; } *************** public class XGraphics2D *** 394,412 **** xdrawable.put_image(xgc, zpixmap, x, y); imageCache.put(image, zpixmap); } else { ! // TODO optimize reusing the rectangles Rectangle source = new Rectangle(0, 0, xdrawable.width, xdrawable.height); Rectangle target = new Rectangle(x, y, w, h); ! ! Rectangle destination = source.intersection(target); ! x = destination.x; y = destination.y; w = destination.width; h = destination.height; ! ZPixmap zpixmap = (ZPixmap) xdrawable.image(x, y, w, h, 0xffffffff, --- 394,412 ---- xdrawable.put_image(xgc, zpixmap, x, y); imageCache.put(image, zpixmap); } else { ! // TODO optimize reusing the rectangles Rectangle source = new Rectangle(0, 0, xdrawable.width, xdrawable.height); Rectangle target = new Rectangle(x, y, w, h); ! ! Rectangle destination = source.intersection(target); ! x = destination.x; y = destination.y; w = destination.width; h = destination.height; ! ZPixmap zpixmap = (ZPixmap) xdrawable.image(x, y, w, h, 0xffffffff, *************** public class XGraphics2D *** 506,509 **** } } - --- 506,508 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java Tue Jan 11 19:46:05 2011 *************** public class XGraphicsConfiguration *** 127,133 **** throw new UnsupportedOperationException("Not yet implemented"); default: throw new IllegalArgumentException("Unknown transparency type: " ! + transparency); } return im; } --- 127,133 ---- throw new UnsupportedOperationException("Not yet implemented"); default: throw new IllegalArgumentException("Unknown transparency type: " ! + transparency); } return im; } *************** public class XGraphicsConfiguration *** 159,166 **** { Display d = device.getDisplay(); Screen screen = d.default_screen; ! ! return new Rectangle(0, 0, screen.width, screen.height); } /** --- 159,166 ---- { Display d = device.getDisplay(); Screen screen = d.default_screen; ! ! return new Rectangle(0, 0, screen.width, screen.height); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java Tue Jan 11 19:46:05 2011 *************** public class XGraphicsDevice *** 136,142 **** } catch (EscherServerConnectionException e) { ! throw new RuntimeException(e.getCause()); } } } --- 136,142 ---- } catch (EscherServerConnectionException e) { ! throw new RuntimeException(e.getCause()); } } } *************** public class XGraphicsDevice *** 155,161 **** throw new RuntimeException(e.getCause()); } } ! eventPump = new XEventPump(display); } return display; --- 155,161 ---- throw new RuntimeException(e.getCause()); } } ! eventPump = new XEventPump(display); } return display; *************** public class XGraphicsDevice *** 167,173 **** } /** ! * Tries to load the LocalSocket class and initiate a connection to the * local X server. */ private Socket createLocalSocket() --- 167,173 ---- } /** ! * Tries to load the LocalSocket class and initiate a connection to the * local X server. */ private Socket createLocalSocket() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java Tue Jan 11 19:46:05 2011 *************** public class XGraphicsEnvironment *** 130,136 **** defaultDevice = initDefaultDevice(); devices = new XGraphicsDevice[]{ defaultDevice }; } ! } /** --- 130,136 ---- defaultDevice = initDefaultDevice(); devices = new XGraphicsDevice[]{ defaultDevice }; } ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XImage.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XImage.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XImage.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XImage.java Tue Jan 11 19:46:05 2011 *************** public class XImage *** 81,87 **** public ImageProducer getSource() { ! return new XImageProducer(); } /** --- 81,87 ---- public ImageProducer getSource() { ! return new XImageProducer(); } /** *************** public class XImage *** 113,123 **** { pixmap.free(); } ! protected class XImageProducer implements ImageProducer { private Vector consumers = new Vector(); ! public void addConsumer(ImageConsumer ic) { if (ic != null && !isConsumer(ic)) --- 113,123 ---- { pixmap.free(); } ! protected class XImageProducer implements ImageProducer { private Vector consumers = new Vector(); ! public void addConsumer(ImageConsumer ic) { if (ic != null && !isConsumer(ic)) *************** public class XImage *** 148,177 **** { int width = XImage.this.getWidth(null); int height = XImage.this.getHeight(null); ! XGraphics2D graphics = (XGraphics2D) getGraphics(); ColorModel model = graphics.getColorModel(); graphics.dispose(); ! ZPixmap zpixmap = (ZPixmap) XImage.this.pixmap.image(0, 0, width, height, 0xffffffff, gnu.x11.image.Image.Format.ZPIXMAP); ! int size = zpixmap.get_data_length(); System.out.println("size: " + size + ", w = " + width + ", h = " + height); ! int [] pixel = new int[size]; for (int i = 0; i < size; i++) pixel[i] = zpixmap.get_data_element(i); consumer.setHints(ImageConsumer.SINGLEPASS); ! consumer.setDimensions(width, height); consumer.setPixels(0, 0, width, height, model, pixel, 0, width); consumer.imageComplete(ImageConsumer.STATICIMAGEDONE); } ! System.out.println("done!"); } } --- 148,177 ---- { int width = XImage.this.getWidth(null); int height = XImage.this.getHeight(null); ! XGraphics2D graphics = (XGraphics2D) getGraphics(); ColorModel model = graphics.getColorModel(); graphics.dispose(); ! ZPixmap zpixmap = (ZPixmap) XImage.this.pixmap.image(0, 0, width, height, 0xffffffff, gnu.x11.image.Image.Format.ZPIXMAP); ! int size = zpixmap.get_data_length(); System.out.println("size: " + size + ", w = " + width + ", h = " + height); ! int [] pixel = new int[size]; for (int i = 0; i < size; i++) pixel[i] = zpixmap.get_data_element(i); consumer.setHints(ImageConsumer.SINGLEPASS); ! consumer.setDimensions(width, height); consumer.setPixels(0, 0, width, height, model, pixel, 0, width); consumer.imageComplete(ImageConsumer.STATICIMAGEDONE); } ! System.out.println("done!"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java Tue Jan 11 19:46:05 2011 *************** public class XToolkit *** 239,261 **** protected ButtonPeer createButton(Button target) { checkHeadLess("No ButtonPeer can be created in an headless" + ! "graphics environment."); ! return new SwingButtonPeer(target); } protected TextFieldPeer createTextField(TextField target) { checkHeadLess("No TextFieldPeer can be created in an headless " + ! "graphics environment."); ! return new SwingTextFieldPeer(target); } protected LabelPeer createLabel(Label target) { checkHeadLess("No LabelPeer can be created in an headless graphics " + ! "environment."); return new SwingLabelPeer(target); } --- 239,261 ---- protected ButtonPeer createButton(Button target) { checkHeadLess("No ButtonPeer can be created in an headless" + ! "graphics environment."); ! return new SwingButtonPeer(target); } protected TextFieldPeer createTextField(TextField target) { checkHeadLess("No TextFieldPeer can be created in an headless " + ! "graphics environment."); ! return new SwingTextFieldPeer(target); } protected LabelPeer createLabel(Label target) { checkHeadLess("No LabelPeer can be created in an headless graphics " + ! "environment."); return new SwingLabelPeer(target); } *************** public class XToolkit *** 269,275 **** { checkHeadLess("No CheckboxPeer can be created in an headless graphics " + "environment."); ! return new SwingCheckboxPeer(target); } --- 269,275 ---- { checkHeadLess("No CheckboxPeer can be created in an headless graphics " + "environment."); ! return new SwingCheckboxPeer(target); } *************** public class XToolkit *** 288,295 **** protected TextAreaPeer createTextArea(TextArea target) { checkHeadLess("No TextAreaPeer can be created in an headless graphics " + ! "environment."); ! return new SwingTextAreaPeer(target); } --- 288,295 ---- protected TextAreaPeer createTextArea(TextArea target) { checkHeadLess("No TextAreaPeer can be created in an headless graphics " + ! "environment."); ! return new SwingTextAreaPeer(target); } *************** public class XToolkit *** 518,524 **** /** * Creates an image that is returned when calls to createImage() yields an * error. ! * * @return an image that is returned when calls to createImage() yields an * error */ --- 518,524 ---- /** * Creates an image that is returned when calls to createImage() yields an * error. ! * * @return an image that is returned when calls to createImage() yields an * error */ *************** public class XToolkit *** 660,666 **** { if(message == null) message = "This method cannot be called in headless mode."; ! throw new HeadlessException(message); } } --- 660,666 ---- { if(message == null) message = "This method cannot be called in headless mode."; ! throw new HeadlessException(message); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java Tue Jan 11 19:46:05 2011 *************** public class XWindowPeer *** 80,86 **** | Event.KEY_RELEASE_MASK //| Event.VISIBILITY_CHANGE_MASK // ; ! /** * The X window. */ --- 80,86 ---- | Event.KEY_RELEASE_MASK //| Event.VISIBILITY_CHANGE_MASK // ; ! /** * The X window. */ *************** public class XWindowPeer *** 105,114 **** int h = Math.max(window.getHeight(), 1); xwindow = new Window(dev.getDisplay().default_root, x, y, w, h, 0, atts); xwindow.select_input(standardSelect); ! dev.getEventPump().registerWindow(xwindow, window); xwindow.set_wm_delete_window(); ! boolean undecorated; if (awtComponent instanceof Frame) { --- 105,114 ---- int h = Math.max(window.getHeight(), 1); xwindow = new Window(dev.getDisplay().default_root, x, y, w, h, 0, atts); xwindow.select_input(standardSelect); ! dev.getEventPump().registerWindow(xwindow, window); xwindow.set_wm_delete_window(); ! boolean undecorated; if (awtComponent instanceof Frame) { *************** public class XWindowPeer *** 178,188 **** */ public Graphics getGraphics() { ! XGraphics2D xg2d = new XGraphics2D(xwindow); ! xg2d.setColor(awtComponent.getForeground()); ! xg2d.setBackground(awtComponent.getBackground()); ! xg2d.setFont(awtComponent.getFont()); ! return xg2d; } public Image createImage(int w, int h) --- 178,188 ---- */ public Graphics getGraphics() { ! XGraphics2D xg2d = new XGraphics2D(xwindow); ! xg2d.setColor(awtComponent.getForeground()); ! xg2d.setBackground(awtComponent.getBackground()); ! xg2d.setFont(awtComponent.getFont()); ! return xg2d; } public Image createImage(int w, int h) *************** public class XWindowPeer *** 226,232 **** // // Reset input selection. // atts.set_override_redirect(false); // xwindow.change_attributes(atts); ! // Determine the frame insets. Atom atom = (Atom) Atom.intern(dev.getDisplay(), "_NET_FRAME_EXTENTS"); Window.Property p = xwindow.get_property(false, atom, Atom.CARDINAL, 0, --- 226,232 ---- // // Reset input selection. // atts.set_override_redirect(false); // xwindow.change_attributes(atts); ! // Determine the frame insets. Atom atom = (Atom) Atom.intern(dev.getDisplay(), "_NET_FRAME_EXTENTS"); Window.Property p = xwindow.get_property(false, atom, Atom.CARDINAL, 0, *************** public class XWindowPeer *** 295,301 **** XGraphicsDevice dev = XToolkit.getDefaultDevice(); dev.getEventPump().unregisterWindow(xwindow); } ! public Window getXwindow() { return xwindow; --- 295,301 ---- XGraphicsDevice dev = XToolkit.getDefaultDevice(); dev.getEventPump().unregisterWindow(xwindow); } ! public Window getXwindow() { return xwindow; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/print/JavaPrinterGraphics.java gcc-4.6.0/libjava/classpath/gnu/java/awt/print/JavaPrinterGraphics.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/print/JavaPrinterGraphics.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/print/JavaPrinterGraphics.java Tue Jan 11 19:46:05 2011 *************** public class JavaPrinterGraphics extends *** 107,153 **** * If Pageable is non-null, it will print that, otherwise it will use * the supplied printable and pageFormat. */ ! public SpooledDocument spoolPostScript(Printable printable, ! PageFormat pageFormat, ! Pageable pageable) throws PrinterException { ! try { ! // spool to a temporary file ! File temp = File.createTempFile("cpspool", ".ps"); ! temp.deleteOnExit(); ! ! PrintWriter out = new PrintWriter ! (new BufferedWriter ! (new OutputStreamWriter ! (new FileOutputStream(temp), "ISO8859_1"), 1000000)); ! writePSHeader(out); ! ! if(pageable != null) ! { ! for(int index = 0; index < pageable.getNumberOfPages(); index++) ! spoolPage(out, pageable.getPrintable(index), ! pageable.getPageFormat(index), index); ! } ! else ! { ! int index = 0; ! while(spoolPage(out, printable, pageFormat, index++) == ! Printable.PAGE_EXISTS) ; ! } ! out.println("%%Trailer"); ! out.println("%%EOF"); ! out.close(); ! return new SpooledDocument( temp ); ! } ! catch (IOException e) { ! PrinterException pe = new PrinterException(); ! pe.initCause(e); ! throw pe; } } --- 107,153 ---- * If Pageable is non-null, it will print that, otherwise it will use * the supplied printable and pageFormat. */ ! public SpooledDocument spoolPostScript(Printable printable, ! PageFormat pageFormat, ! Pageable pageable) throws PrinterException { ! try { ! // spool to a temporary file ! File temp = File.createTempFile("cpspool", ".ps"); ! temp.deleteOnExit(); ! PrintWriter out = new PrintWriter ! (new BufferedWriter ! (new OutputStreamWriter ! (new FileOutputStream(temp), "ISO8859_1"), 1000000)); ! ! writePSHeader(out); ! ! if(pageable != null) ! { ! for(int index = 0; index < pageable.getNumberOfPages(); index++) ! spoolPage(out, pageable.getPrintable(index), ! pageable.getPageFormat(index), index); ! } ! else ! { ! int index = 0; ! while(spoolPage(out, printable, pageFormat, index++) == ! Printable.PAGE_EXISTS) ; ! } ! out.println("%%Trailer"); ! out.println("%%EOF"); ! out.close(); ! return new SpooledDocument( temp ); ! } ! catch (IOException e) { ! PrinterException pe = new PrinterException(); ! pe.initCause(e); ! throw pe; } } *************** public class JavaPrinterGraphics extends *** 156,164 **** * PAGE_EXISTS if it was. */ public int spoolPage(PrintWriter out, ! Printable printable, ! PageFormat pageFormat, ! int index) throws IOException, PrinterException { initImage( pageFormat ); if(printable.print(this, pageFormat, index) == Printable.NO_SUCH_PAGE) --- 156,164 ---- * PAGE_EXISTS if it was. */ public int spoolPage(PrintWriter out, ! Printable printable, ! PageFormat pageFormat, ! int index) throws IOException, PrinterException { initImage( pageFormat ); if(printable.print(this, pageFormat, index) == Printable.NO_SUCH_PAGE) *************** public class JavaPrinterGraphics extends *** 168,189 **** writePage( out, pageFormat ); return Printable.PAGE_EXISTS; } ! private void initImage(PageFormat pageFormat) { // Create a really big image and draw to that. xSize = (int)(DPI*pageFormat.getWidth()/72.0); ySize = (int)(DPI*pageFormat.getHeight()/72.0); ! // Swap X and Y sizes if it's a Landscape page. if( pageFormat.getOrientation() != PageFormat.PORTRAIT ) { ! int t = xSize; ! xSize = ySize; ! ySize = t; } ! // FIXME: This should at least be BufferedImage. // Fix once we have a working B.I. // Graphics2D should also be supported of course. image = CairoSurface.getBufferedImage(xSize, ySize); --- 168,189 ---- writePage( out, pageFormat ); return Printable.PAGE_EXISTS; } ! private void initImage(PageFormat pageFormat) { // Create a really big image and draw to that. xSize = (int)(DPI*pageFormat.getWidth()/72.0); ySize = (int)(DPI*pageFormat.getHeight()/72.0); ! // Swap X and Y sizes if it's a Landscape page. if( pageFormat.getOrientation() != PageFormat.PORTRAIT ) { ! int t = xSize; ! xSize = ySize; ! ySize = t; } ! // FIXME: This should at least be BufferedImage. // Fix once we have a working B.I. // Graphics2D should also be supported of course. image = CairoSurface.getBufferedImage(xSize, ySize); *************** public class JavaPrinterGraphics extends *** 196,202 **** private void writePSHeader(PrintWriter out) { ! out.println("%!PS-Adobe-3.0"); out.println("%%Title: "+printerJob.getJobName()); out.println("%%Creator: GNU Classpath "); out.println("%%DocumentData: Clean8Bit"); --- 196,202 ---- private void writePSHeader(PrintWriter out) { ! out.println("%!PS-Adobe-3.0"); out.println("%%Title: "+printerJob.getJobName()); out.println("%%Creator: GNU Classpath "); out.println("%%DocumentData: Clean8Bit"); *************** public class JavaPrinterGraphics extends *** 204,222 **** out.println("%%DocumentNeededResources: font Times-Roman Helvetica Courier"); // out.println("%%Pages: "+); // FIXME # pages. out.println("%%EndComments"); ! out.println("%%BeginProlog"); out.println("%%EndProlog"); out.println("%%BeginSetup"); ! // FIXME: Paper name // E.g. "A4" "Letter" // out.println("%%BeginFeature: *PageSize A4"); ! out.println("%%EndFeature"); out.println("%%EndSetup"); ! // out.println("%%Page: 1 1"); } --- 204,222 ---- out.println("%%DocumentNeededResources: font Times-Roman Helvetica Courier"); // out.println("%%Pages: "+); // FIXME # pages. out.println("%%EndComments"); ! out.println("%%BeginProlog"); out.println("%%EndProlog"); out.println("%%BeginSetup"); ! // FIXME: Paper name // E.g. "A4" "Letter" // out.println("%%BeginFeature: *PageSize A4"); ! out.println("%%EndFeature"); out.println("%%EndSetup"); ! // out.println("%%Page: 1 1"); } *************** public class JavaPrinterGraphics extends *** 232,245 **** out.println( "%%Orientation: Portrait" ); else { ! out.println( "%%Orientation: Landscape" ); ! double t = pWidth; ! pWidth = pHeight; ! pHeight = t; } ! out.println("gsave % first save"); ! // 595x842; 612x792 respectively out.println("<< /PageSize [" +pWidth + " "+pHeight+ "] >> setpagedevice"); --- 232,245 ---- out.println( "%%Orientation: Portrait" ); else { ! out.println( "%%Orientation: Landscape" ); ! double t = pWidth; ! pWidth = pHeight; ! pHeight = t; } ! out.println("gsave % first save"); ! // 595x842; 612x792 respectively out.println("<< /PageSize [" +pWidth + " "+pHeight+ "] >> setpagedevice"); *************** public class JavaPrinterGraphics extends *** 247,254 **** AffineTransform pageTransform = new AffineTransform(); if( pageFormat.getOrientation() == PageFormat.REVERSE_LANDSCAPE ) { ! pageTransform.translate(pWidth, pHeight); ! pageTransform.scale(-1.0, -1.0); } concatCTM(out, pageTransform); out.println("%%EndPageSetup"); --- 247,254 ---- AffineTransform pageTransform = new AffineTransform(); if( pageFormat.getOrientation() == PageFormat.REVERSE_LANDSCAPE ) { ! pageTransform.translate(pWidth, pHeight); ! pageTransform.scale(-1.0, -1.0); } concatCTM(out, pageTransform); out.println("%%EndPageSetup"); *************** public class JavaPrinterGraphics extends *** 257,263 **** // Draw the image ! out.println(xSize+" "+ySize+" 8 [1 0 0 -1 0 "+ySize+" ]"); out.println("{currentfile 3 string readhexstring pop} bind"); out.println("false 3 colorimage"); int[] pixels = new int[xSize * ySize]; --- 257,263 ---- // Draw the image ! out.println(xSize+" "+ySize+" 8 [1 0 0 -1 0 "+ySize+" ]"); out.println("{currentfile 3 string readhexstring pop} bind"); out.println("false 3 colorimage"); int[] pixels = new int[xSize * ySize]; *************** public class JavaPrinterGraphics extends *** 272,290 **** int n = 0; for (int j = 0; j < ySize; j++) { for (int i = 0; i < xSize; i++) { ! out.print( colorTripleHex(pixels[j * xSize + i]) ); ! if(((++n)%11) == 0) out.println(); } } ! out.println(); out.println("%%EOF"); out.println("grestore"); out.println("showpage"); } ! /** ! * Get a nonsperated hex RGB triple, e.g. FFFFFF = white */ private String colorTripleHex(int num){ String s = ""; --- 272,290 ---- int n = 0; for (int j = 0; j < ySize; j++) { for (int i = 0; i < xSize; i++) { ! out.print( colorTripleHex(pixels[j * xSize + i]) ); ! if(((++n)%11) == 0) out.println(); } } ! out.println(); out.println("%%EOF"); out.println("grestore"); out.println("showpage"); } ! /** ! * Get a nonsperated hex RGB triple, e.g. FFFFFF = white */ private String colorTripleHex(int num){ String s = ""; *************** public class JavaPrinterGraphics extends *** 292,301 **** try { s = Integer.toHexString( ( num & 0x00FFFFFF ) ); if( s.length() < 6 ) ! { ! s = "000000"+s; ! return s.substring(s.length()-6); ! } } catch (Exception e){ s = "FFFFFF"; } --- 292,301 ---- try { s = Integer.toHexString( ( num & 0x00FFFFFF ) ); if( s.length() < 6 ) ! { ! s = "000000"+s; ! return s.substring(s.length()-6); ! } } catch (Exception e){ s = "FFFFFF"; } *************** public class JavaPrinterGraphics extends *** 306,312 **** private void concatCTM(PrintWriter out, AffineTransform Tx){ double[] matrixElements = new double[6]; Tx.getMatrix(matrixElements); ! out.print("[ "); for(int i=0;i<6;i++) out.print(matrixElements[i]+" "); --- 306,312 ---- private void concatCTM(PrintWriter out, AffineTransform Tx){ double[] matrixElements = new double[6]; Tx.getMatrix(matrixElements); ! out.print("[ "); for(int i=0;i<6;i++) out.print(matrixElements[i]+" "); *************** public class JavaPrinterGraphics extends *** 349,362 **** { } ! public void drawArc(int x, int y, int width, int height, int startAngle, ! int arcAngle) { g.drawArc(x, y, width, height, startAngle, arcAngle); } ! public boolean drawImage(Image img, int x, int y, Color bgcolor, ! ImageObserver observer) { return g.drawImage(img, x, y, bgcolor, observer); } --- 349,362 ---- { } ! public void drawArc(int x, int y, int width, int height, int startAngle, ! int arcAngle) { g.drawArc(x, y, width, height, startAngle, arcAngle); } ! public boolean drawImage(Image img, int x, int y, Color bgcolor, ! ImageObserver observer) { return g.drawImage(img, x, y, bgcolor, observer); } *************** public class JavaPrinterGraphics extends *** 366,396 **** return g.drawImage(img, x, y, observer); } ! public boolean drawImage(Image img, int x, int y, int width, int height, ! Color bgcolor, ImageObserver observer) { return g.drawImage(img, x, y, width, height, bgcolor, observer); } ! public boolean drawImage(Image img, int x, int y, int width, int height, ! ImageObserver observer) { return g.drawImage(img, x, y, width, height, observer); } ! public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, Color bgcolor, ! ImageObserver observer) { ! return g.drawImage(img, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, bgcolor, observer); } ! public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { ! return g.drawImage(img, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, observer); } public void drawLine(int x1, int y1, int x2, int y2) --- 366,396 ---- return g.drawImage(img, x, y, observer); } ! public boolean drawImage(Image img, int x, int y, int width, int height, ! Color bgcolor, ImageObserver observer) { return g.drawImage(img, x, y, width, height, bgcolor, observer); } ! public boolean drawImage(Image img, int x, int y, int width, int height, ! ImageObserver observer) { return g.drawImage(img, x, y, width, height, observer); } ! public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, Color bgcolor, ! ImageObserver observer) { ! return g.drawImage(img, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, bgcolor, observer); } ! public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, ! int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { ! return g.drawImage(img, dx1, dy1, dx2, dy2, ! sx1, sy1, sx2, sy2, observer); } public void drawLine(int x1, int y1, int x2, int y2) *************** public class JavaPrinterGraphics extends *** 413,420 **** g.drawPolyline(xPoints, yPoints, nPoints); } ! public void drawRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { g.drawRoundRect(x, y, width, height, arcWidth, arcHeight); } --- 413,420 ---- g.drawPolyline(xPoints, yPoints, nPoints); } ! public void drawRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { g.drawRoundRect(x, y, width, height, arcWidth, arcHeight); } *************** public class JavaPrinterGraphics extends *** 429,436 **** g.drawString(str, x, y); } ! public void fillArc(int x, int y, int width, int height, ! int startAngle, int arcAngle) { g.fillArc(x, y, width, height, startAngle, arcAngle); } --- 429,436 ---- g.drawString(str, x, y); } ! public void fillArc(int x, int y, int width, int height, ! int startAngle, int arcAngle) { g.fillArc(x, y, width, height, startAngle, arcAngle); } *************** public class JavaPrinterGraphics extends *** 450,457 **** g.fillRect(x, y, width, height); } ! public void fillRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { g.fillRoundRect(x, y, width, height, arcWidth, arcHeight); } --- 450,457 ---- g.fillRect(x, y, width, height); } ! public void fillRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { g.fillRoundRect(x, y, width, height, arcWidth, arcHeight); } *************** public class JavaPrinterGraphics extends *** 516,519 **** g.translate(x, y); } } - --- 516,518 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/print/JavaPrinterJob.java gcc-4.6.0/libjava/classpath/gnu/java/awt/print/JavaPrinterJob.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/print/JavaPrinterJob.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/print/JavaPrinterJob.java Tue Jan 11 19:46:05 2011 *************** public class JavaPrinterJob extends Prin *** 113,127 **** { // lookup all services without any constraints services = PrintServiceLookup.lookupPrintServices ! (DocFlavor.INPUT_STREAM.POSTSCRIPT, null); } private static final Class copyClass = (new Copies(1)).getClass(); private static final Class jobNameClass = (new JobName("", null)).getClass(); private static final Class userNameClass = (new RequestingUserName("", null)).getClass(); ! /** ! * Initializes a new instance of PrinterJob. */ public JavaPrinterJob() { --- 113,127 ---- { // lookup all services without any constraints services = PrintServiceLookup.lookupPrintServices ! (DocFlavor.INPUT_STREAM.POSTSCRIPT, null); } private static final Class copyClass = (new Copies(1)).getClass(); private static final Class jobNameClass = (new JobName("", null)).getClass(); private static final Class userNameClass = (new RequestingUserName("", null)).getClass(); ! /** ! * Initializes a new instance of PrinterJob. */ public JavaPrinterJob() { *************** public class JavaPrinterJob extends Prin *** 143,149 **** else if( orientation.equals(OrientationRequested.LANDSCAPE) ) pageFormat.setOrientation(PageFormat.LANDSCAPE); else if( orientation.equals(OrientationRequested.REVERSE_LANDSCAPE) ) ! pageFormat.setOrientation(PageFormat.REVERSE_LANDSCAPE); } /** --- 143,149 ---- else if( orientation.equals(OrientationRequested.LANDSCAPE) ) pageFormat.setOrientation(PageFormat.LANDSCAPE); else if( orientation.equals(OrientationRequested.REVERSE_LANDSCAPE) ) ! pageFormat.setOrientation(PageFormat.REVERSE_LANDSCAPE); } /** *************** public class JavaPrinterJob extends Prin *** 203,213 **** { try { ! if(printJob != null && (printJob instanceof CancelablePrintJob)) ! { ! ((CancelablePrintJob)printJob).cancel(); ! cancelled = true; ! } } catch(PrintException pe) { --- 203,213 ---- { try { ! if(printJob != null && (printJob instanceof CancelablePrintJob)) ! { ! ((CancelablePrintJob)printJob).cancel(); ! cancelled = true; ! } } catch(PrintException pe) { *************** public class JavaPrinterJob extends Prin *** 261,280 **** return; PostScriptGraphics2D pg = new PostScriptGraphics2D( this ); ! SpooledDocument doc = pg.spoolPostScript( printable, pageFormat, ! pageable ); cancelled = false; printJob = printer.createPrintJob(); try { ! printJob.print(doc, attributes); } ! catch (PrintException pe) { ! PrinterException p = new PrinterException(); ! p.initCause(pe); ! throw p; } // no printjob active. printJob = null; --- 261,280 ---- return; PostScriptGraphics2D pg = new PostScriptGraphics2D( this ); ! SpooledDocument doc = pg.spoolPostScript( printable, pageFormat, ! pageable ); cancelled = false; printJob = printer.createPrintJob(); try { ! printJob.print(doc, attributes); } ! catch (PrintException pe) { ! PrinterException p = new PrinterException(); ! p.initCause(pe); ! throw p; } // no printjob active. printJob = null; *************** public class JavaPrinterJob extends Prin *** 313,334 **** throws HeadlessException { PrintService chosenPrinter = ServiceUI.printDialog ! (null, 50, 50, services, null, DocFlavor.INPUT_STREAM.POSTSCRIPT, attributes); getPageAttributes(); if( chosenPrinter != null ) { ! try ! { ! setPrintService( chosenPrinter ); ! } ! catch(PrinterException pe) ! { ! // Should not happen. ! } ! return true; } return false; } --- 313,334 ---- throws HeadlessException { PrintService chosenPrinter = ServiceUI.printDialog ! (null, 50, 50, services, null, DocFlavor.INPUT_STREAM.POSTSCRIPT, attributes); getPageAttributes(); if( chosenPrinter != null ) { ! try ! { ! setPrintService( chosenPrinter ); ! } ! catch(PrinterException pe) ! { ! // Should not happen. ! } ! return true; } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java gcc-4.6.0/libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java Tue Jan 11 19:46:05 2011 *************** class PostScriptGraphics2D extends Graph *** 126,132 **** private double Y = pageY; private boolean gradientOn = false; ! /** * Constructor * */ --- 126,132 ---- private double Y = pageY; private boolean gradientOn = false; ! /** * Constructor * */ *************** class PostScriptGraphics2D extends Graph *** 162,235 **** * If Pageable is non-null, it will print that, otherwise it will use * the supplied printable and pageFormat. */ ! public SpooledDocument spoolPostScript(Printable printable, ! PageFormat pageFormat, ! Pageable pageable) throws PrinterException { ! try { ! // spool to a temporary file ! File temp = File.createTempFile("cpspool", ".ps"); ! temp.deleteOnExit(); ! ! out = new PrintWriter(new BufferedWriter ! (new OutputStreamWriter ! (new FileOutputStream(temp), ! "ISO8859_1"), 1000000)); ! ! writePSHeader(); ! ! if(pageable != null) ! { ! for(int index = 0; index < pageable.getNumberOfPages(); index++) ! spoolPage(out, pageable.getPrintable(index), ! pageable.getPageFormat(index), index); ! } ! else ! { ! int index = 0; ! while(spoolPage(out, printable, pageFormat, index++) == ! Printable.PAGE_EXISTS) ; ! } ! out.println("%%Trailer"); ! out.println("%%EOF"); ! out.close(); ! return new SpooledDocument( temp ); ! } ! catch (IOException e) { ! PrinterException pe = new PrinterException(); ! pe.initCause(e); ! throw pe; } } //-------------------------------------------------------------------------- ! /** * Write the postscript file header, ! * setup the page format and transforms. */ private void writePSHeader() { ! out.println("%!PS-Adobe-3.0"); out.println("%%Title: "+printerJob.getJobName()); out.println("%%Creator: GNU Classpath "); out.println("%%DocumentData: Clean8Bit"); out.println("%%DocumentNeededResources: font Times-Roman Helvetica Courier"); out.println("%%EndComments"); ! out.println("%%BeginProlog"); out.println("%%EndProlog"); out.println("%%BeginSetup"); ! out.println("%%EndFeature"); setupFonts(); out.println("%%EndSetup"); ! // set default fonts and colors setFont( new Font("Dialog", Font.PLAIN, 12) ); currentColor = Color.white; --- 162,235 ---- * If Pageable is non-null, it will print that, otherwise it will use * the supplied printable and pageFormat. */ ! public SpooledDocument spoolPostScript(Printable printable, ! PageFormat pageFormat, ! Pageable pageable) throws PrinterException { ! try { ! // spool to a temporary file ! File temp = File.createTempFile("cpspool", ".ps"); ! temp.deleteOnExit(); ! ! out = new PrintWriter(new BufferedWriter ! (new OutputStreamWriter ! (new FileOutputStream(temp), ! "ISO8859_1"), 1000000)); ! ! writePSHeader(); ! ! if(pageable != null) ! { ! for(int index = 0; index < pageable.getNumberOfPages(); index++) ! spoolPage(out, pageable.getPrintable(index), ! pageable.getPageFormat(index), index); ! } ! else ! { ! int index = 0; ! while(spoolPage(out, printable, pageFormat, index++) == ! Printable.PAGE_EXISTS) ; ! } ! out.println("%%Trailer"); ! out.println("%%EOF"); ! out.close(); ! return new SpooledDocument( temp ); ! } ! catch (IOException e) { ! PrinterException pe = new PrinterException(); ! pe.initCause(e); ! throw pe; } } //-------------------------------------------------------------------------- ! /** * Write the postscript file header, ! * setup the page format and transforms. */ private void writePSHeader() { ! out.println("%!PS-Adobe-3.0"); out.println("%%Title: "+printerJob.getJobName()); out.println("%%Creator: GNU Classpath "); out.println("%%DocumentData: Clean8Bit"); out.println("%%DocumentNeededResources: font Times-Roman Helvetica Courier"); out.println("%%EndComments"); ! out.println("%%BeginProlog"); out.println("%%EndProlog"); out.println("%%BeginSetup"); ! out.println("%%EndFeature"); setupFonts(); out.println("%%EndSetup"); ! // set default fonts and colors setFont( new Font("Dialog", Font.PLAIN, 12) ); currentColor = Color.white; *************** class PostScriptGraphics2D extends Graph *** 268,276 **** * PAGE_EXISTS if it was. */ public int spoolPage(PrintWriter out, ! Printable printable, ! PageFormat pageFormat, ! int index) throws IOException, PrinterException { out.println("%%BeginPageSetup"); --- 268,276 ---- * PAGE_EXISTS if it was. */ public int spoolPage(PrintWriter out, ! Printable printable, ! PageFormat pageFormat, ! int index) throws IOException, PrinterException { out.println("%%BeginPageSetup"); *************** class PostScriptGraphics2D extends Graph *** 282,304 **** out.println( "%%Orientation: Portrait" ); else { ! out.println( "%%Orientation: Landscape" ); ! double t = pageX; ! pageX = pageY; ! pageY = t; } ! setClip(0, 0, (int)pageX, (int)pageY); out.println("gsave % first save"); ! // 595x842; 612x792 respectively out.println("<< /PageSize [" +pageX + " "+pageY+ "] >> setpagedevice"); if( pageFormat.getOrientation() != PageFormat.LANDSCAPE ) { ! pageTransform.translate(pageX, 0); ! pageTransform.scale(-1.0, 1.0); } // save the original CTM --- 282,304 ---- out.println( "%%Orientation: Portrait" ); else { ! out.println( "%%Orientation: Landscape" ); ! double t = pageX; ! pageX = pageY; ! pageY = t; } ! setClip(0, 0, (int)pageX, (int)pageY); out.println("gsave % first save"); ! // 595x842; 612x792 respectively out.println("<< /PageSize [" +pageX + " "+pageY+ "] >> setpagedevice"); if( pageFormat.getOrientation() != PageFormat.LANDSCAPE ) { ! pageTransform.translate(pageX, 0); ! pageTransform.scale(-1.0, 1.0); } // save the original CTM *************** class PostScriptGraphics2D extends Graph *** 312,318 **** if( printable.print(this, pageFormat, index) == Printable.NO_SUCH_PAGE ) return Printable.NO_SUCH_PAGE; ! out.println("grestore"); out.println("showpage"); --- 312,318 ---- if( printable.print(this, pageFormat, index) == Printable.NO_SUCH_PAGE ) return Printable.NO_SUCH_PAGE; ! out.println("grestore"); out.println("showpage"); *************** class PostScriptGraphics2D extends Graph *** 417,423 **** setStroke(currentStroke); } ! //--------------- Image drawing ------------------------------------------ public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) { --- 417,423 ---- setStroke(currentStroke); } ! //--------------- Image drawing ------------------------------------------ public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) { *************** class PostScriptGraphics2D extends Graph *** 425,431 **** int h = img.getHeight(null); return drawImage(img, x, y, x + w, y + h, 0, 0, w - 1, h - 1, bgcolor, ! observer); } public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, --- 425,431 ---- int h = img.getHeight(null); return drawImage(img, x, y, x + w, y + h, 0, 0, w - 1, h - 1, bgcolor, ! observer); } public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, *************** class PostScriptGraphics2D extends Graph *** 439,469 **** // swap X and Y's if (sx1 > sx2) { ! n = sx1; ! sx1 = sx2; ! sx2 = n; ! flipx = ! flipx; } if (sy1 > sy2) { ! n = sy1; ! sy1 = sy2; ! sy2 = n; ! flipy = ! flipy; } if (dx1 > dx2) { ! n = dx1; ! dx1 = dx2; ! dx2 = n; ! flipx = ! flipx; } if (dy1 > dy2) { ! n = dy1; ! dy1 = dy2; ! dy2 = n; ! flipy = ! flipy; } n = 0; int sw = sx2 - sx1; // source width --- 439,469 ---- // swap X and Y's if (sx1 > sx2) { ! n = sx1; ! sx1 = sx2; ! sx2 = n; ! flipx = ! flipx; } if (sy1 > sy2) { ! n = sy1; ! sy1 = sy2; ! sy2 = n; ! flipy = ! flipy; } if (dx1 > dx2) { ! n = dx1; ! dx1 = dx2; ! dx2 = n; ! flipx = ! flipx; } if (dy1 > dy2) { ! n = dy1; ! dy1 = dy2; ! dy2 = n; ! flipy = ! flipy; } n = 0; int sw = sx2 - sx1; // source width *************** class PostScriptGraphics2D extends Graph *** 487,514 **** PixelGrabber pg = new PixelGrabber(img, sx1, sy1, sw, sh, pixels, 0, sw); try { ! pg.grabPixels(); } catch (InterruptedException e) { ! System.err.println("interrupted waiting for pixels!"); ! return (false); } if ((pg.getStatus() & ImageObserver.ABORT) != 0) { ! System.err.println("image fetch aborted or errored"); ! return (false); } for (int j = 0; j < sh; j++) { ! for (int i = 0; i < sw; i++) ! { ! out.print(colorTripleHex(new Color(pixels[j * sw + i]))); ! if (((++n) % 11) == 0) ! out.println(); ! } } out.println(); --- 487,514 ---- PixelGrabber pg = new PixelGrabber(img, sx1, sy1, sw, sh, pixels, 0, sw); try { ! pg.grabPixels(); } catch (InterruptedException e) { ! System.err.println("interrupted waiting for pixels!"); ! return (false); } if ((pg.getStatus() & ImageObserver.ABORT) != 0) { ! System.err.println("image fetch aborted or errored"); ! return (false); } for (int j = 0; j < sh; j++) { ! for (int i = 0; i < sw; i++) ! { ! out.print(colorTripleHex(new Color(pixels[j * sw + i]))); ! if (((++n) % 11) == 0) ! out.println(); ! } } out.println(); *************** class PostScriptGraphics2D extends Graph *** 522,528 **** ImageObserver observer) { return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null, ! observer); } public boolean drawImage(Image img, int x, int y, ImageObserver observer) --- 522,528 ---- ImageObserver observer) { return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null, ! observer); } public boolean drawImage(Image img, int x, int y, ImageObserver observer) *************** class PostScriptGraphics2D extends Graph *** 531,548 **** } public boolean drawImage(Image img, int x, int y, int width, int height, ! Color bgcolor, ImageObserver observer) { int sw = img.getWidth(null); int sh = img.getHeight(null); return drawImage(img, x, y, x + width, y + height, /* destination */ ! 0, 0, sw - 1, sh - 1, /* source */ ! bgcolor, observer); // correct? } public boolean drawImage(Image img, int x, int y, int width, int height, ! ImageObserver observer) { return drawImage(img, x, y, width, height, null, observer); } --- 531,548 ---- } public boolean drawImage(Image img, int x, int y, int width, int height, ! Color bgcolor, ImageObserver observer) { int sw = img.getWidth(null); int sh = img.getHeight(null); return drawImage(img, x, y, x + width, y + height, /* destination */ ! 0, 0, sw - 1, sh - 1, /* source */ ! bgcolor, observer); // correct? } public boolean drawImage(Image img, int x, int y, int width, int height, ! ImageObserver observer) { return drawImage(img, x, y, width, height, null, observer); } *************** class PostScriptGraphics2D extends Graph *** 602,609 **** if( currentFontIsPS ) { ! drawStringPSFont(str, x, y); ! return; } TextLayout text = new TextLayout(str, currentFont, getFontRenderContext()); --- 602,609 ---- if( currentFontIsPS ) { ! drawStringPSFont(str, x, y); ! return; } TextLayout text = new TextLayout(str, currentFont, getFontRenderContext()); *************** class PostScriptGraphics2D extends Graph *** 626,647 **** popCTM(); pushCTM(); ! double[] test = { ! pageTransform.getScaleX(), pageTransform.getShearY(), ! pageTransform.getShearX(), pageTransform.getScaleY(), ! pageTransform.getTranslateX(), ! -pageTransform.getTranslateY() + pageY }; ! double[] test2 = { ! currentTransform.getScaleX(), ! currentTransform.getShearY(), ! -currentTransform.getShearX(), ! -currentTransform.getScaleY(), ! currentTransform.getTranslateX(), ! currentTransform.getTranslateY() }; AffineTransform total = new AffineTransform(test); --- 626,647 ---- popCTM(); pushCTM(); ! double[] test = { ! pageTransform.getScaleX(), pageTransform.getShearY(), ! pageTransform.getShearX(), pageTransform.getScaleY(), ! pageTransform.getTranslateX(), ! -pageTransform.getTranslateY() + pageY }; ! double[] test2 = { ! currentTransform.getScaleX(), ! currentTransform.getShearY(), ! -currentTransform.getShearX(), ! -currentTransform.getScaleY(), ! currentTransform.getTranslateX(), ! currentTransform.getTranslateY() }; AffineTransform total = new AffineTransform(test); *************** class PostScriptGraphics2D extends Graph *** 673,715 **** while (! pi.isDone()) { ! switch (pi.currentSegment(coords)) ! { ! case PathIterator.SEG_MOVETO: ! out.println((coords[0]) + " " + (Y - coords[1]) + " moveto"); ! cx = coords[0]; ! cy = coords[1]; ! break; ! case PathIterator.SEG_LINETO: ! out.println((coords[0]) + " " + (Y - coords[1]) + " lineto"); ! cx = coords[0]; ! cy = coords[1]; ! break; ! case PathIterator.SEG_QUADTO: ! // convert to cubic bezier points ! float x1 = (cx + 2 * coords[0]) / 3; ! float y1 = (cy + 2 * coords[1]) / 3; ! float x2 = (2 * coords[2] + coords[0]) / 3; ! float y2 = (2 * coords[3] + coords[1]) / 3; ! out.print((x1) + " " + (Y - y1) + " "); ! out.print((x2) + " " + (Y - y2) + " "); ! out.println((coords[2]) + " " + (Y - coords[3]) + " curveto"); ! cx = coords[2]; ! cy = coords[3]; ! break; ! case PathIterator.SEG_CUBICTO: ! out.print((coords[0]) + " " + (Y - coords[1]) + " "); ! out.print((coords[2]) + " " + (Y - coords[3]) + " "); ! out.println((coords[4]) + " " + (Y - coords[5]) + " curveto"); ! cx = coords[4]; ! cy = coords[5]; ! break; ! case PathIterator.SEG_CLOSE: ! out.println("closepath"); ! break; ! } ! pi.next(); } out.println("fill"); --- 673,715 ---- while (! pi.isDone()) { ! switch (pi.currentSegment(coords)) ! { ! case PathIterator.SEG_MOVETO: ! out.println((coords[0]) + " " + (Y - coords[1]) + " moveto"); ! cx = coords[0]; ! cy = coords[1]; ! break; ! case PathIterator.SEG_LINETO: ! out.println((coords[0]) + " " + (Y - coords[1]) + " lineto"); ! cx = coords[0]; ! cy = coords[1]; ! break; ! case PathIterator.SEG_QUADTO: ! // convert to cubic bezier points ! float x1 = (cx + 2 * coords[0]) / 3; ! float y1 = (cy + 2 * coords[1]) / 3; ! float x2 = (2 * coords[2] + coords[0]) / 3; ! float y2 = (2 * coords[3] + coords[1]) / 3; ! out.print((x1) + " " + (Y - y1) + " "); ! out.print((x2) + " " + (Y - y2) + " "); ! out.println((coords[2]) + " " + (Y - coords[3]) + " curveto"); ! cx = coords[2]; ! cy = coords[3]; ! break; ! case PathIterator.SEG_CUBICTO: ! out.print((coords[0]) + " " + (Y - coords[1]) + " "); ! out.print((coords[2]) + " " + (Y - coords[3]) + " "); ! out.println((coords[4]) + " " + (Y - coords[5]) + " curveto"); ! cx = coords[4]; ! cy = coords[5]; ! break; ! case PathIterator.SEG_CLOSE: ! out.println("closepath"); ! break; ! } ! pi.next(); } out.println("fill"); *************** class PostScriptGraphics2D extends Graph *** 851,857 **** try { ! out.close(); } catch (Exception e) { --- 851,857 ---- try { ! out.close(); } catch (Exception e) { *************** class PostScriptGraphics2D extends Graph *** 877,919 **** while (! pi.isDone()) { ! switch (pi.currentSegment(coords)) ! { ! case PathIterator.SEG_MOVETO: ! out.println(coords[0] + " " + (coords[1]) + " moveto"); ! cx = coords[0]; ! cy = coords[1]; ! break; ! case PathIterator.SEG_LINETO: ! out.println(coords[0] + " " + (coords[1]) + " lineto"); ! cx = coords[0]; ! cy = coords[1]; ! break; ! case PathIterator.SEG_QUADTO: ! // convert to cubic bezier points ! float x1 = (cx + 2 * coords[0]) / 3; ! float y1 = (cy + 2 * coords[1]) / 3; ! float x2 = (2 * coords[2] + coords[0]) / 3; ! float y2 = (2 * coords[3] + coords[1]) / 3; ! out.print(x1 + " " + (Y - y1) + " "); ! out.print(x2 + " " + (Y - y2) + " "); ! out.println(coords[2] + " " + (Y - coords[3]) + " curveto"); ! cx = coords[2]; ! cy = coords[3]; ! break; ! case PathIterator.SEG_CUBICTO: ! out.print(coords[0] + " " + coords[1] + " "); ! out.print(coords[2] + " " + coords[3] + " "); ! out.println(coords[4] + " " + coords[5] + " curveto"); ! cx = coords[4]; ! cy = coords[5]; ! break; ! case PathIterator.SEG_CLOSE: ! out.println("closepath"); ! break; ! } ! pi.next(); } } --- 877,919 ---- while (! pi.isDone()) { ! switch (pi.currentSegment(coords)) ! { ! case PathIterator.SEG_MOVETO: ! out.println(coords[0] + " " + (coords[1]) + " moveto"); ! cx = coords[0]; ! cy = coords[1]; ! break; ! case PathIterator.SEG_LINETO: ! out.println(coords[0] + " " + (coords[1]) + " lineto"); ! cx = coords[0]; ! cy = coords[1]; ! break; ! case PathIterator.SEG_QUADTO: ! // convert to cubic bezier points ! float x1 = (cx + 2 * coords[0]) / 3; ! float y1 = (cy + 2 * coords[1]) / 3; ! float x2 = (2 * coords[2] + coords[0]) / 3; ! float y2 = (2 * coords[3] + coords[1]) / 3; ! out.print(x1 + " " + (Y - y1) + " "); ! out.print(x2 + " " + (Y - y2) + " "); ! out.println(coords[2] + " " + (Y - coords[3]) + " curveto"); ! cx = coords[2]; ! cy = coords[3]; ! break; ! case PathIterator.SEG_CUBICTO: ! out.print(coords[0] + " " + coords[1] + " "); ! out.print(coords[2] + " " + coords[3] + " "); ! out.println(coords[4] + " " + coords[5] + " curveto"); ! cx = coords[4]; ! cy = coords[5]; ! break; ! case PathIterator.SEG_CLOSE: ! out.println("closepath"); ! break; ! } ! pi.next(); } } *************** class PostScriptGraphics2D extends Graph *** 923,930 **** { clipShape = s; out.println("% clip INACTIVE"); ! // writeShape(s); ! // out.println("clip"); } /** Strokes the outline of a Shape using the --- 923,930 ---- { clipShape = s; out.println("% clip INACTIVE"); ! // writeShape(s); ! // out.println("clip"); } /** Strokes the outline of a Shape using the *************** class PostScriptGraphics2D extends Graph *** 946,952 **** out.println("% drawGlyphVector"); Shape s = gv.getOutline(); drawStringShape(AffineTransform.getTranslateInstance(x, y) ! .createTransformedShape(s)); } /** Renders the text of the specified iterator, --- 946,952 ---- out.println("% drawGlyphVector"); Shape s = gv.getOutline(); drawStringShape(AffineTransform.getTranslateInstance(x, y) ! .createTransformedShape(s)); } /** Renders the text of the specified iterator, *************** class PostScriptGraphics2D extends Graph *** 971,987 **** out.println("% fill"); if (! gradientOn) { ! writeShape(s); ! out.println("fill"); } else { ! out.println("gsave"); ! writeShape(s); ! out.println("clip"); ! writeGradient(); ! out.println("shfill"); ! out.println("grestore"); } } --- 971,987 ---- out.println("% fill"); if (! gradientOn) { ! writeShape(s); ! out.println("fill"); } else { ! out.println("gsave"); ! writeShape(s); ! out.println("clip"); ! writeGradient(); ! out.println("shfill"); ! out.println("grestore"); } } *************** class PostScriptGraphics2D extends Graph *** 1011,1020 **** { out.println("% getFontRenderContext()"); ! double[] scaling = { ! pageTransform.getScaleX(), 0, 0, ! -pageTransform.getScaleY(), 0, 0 }; return (new FontRenderContext(new AffineTransform(scaling), false, true)); --- 1011,1020 ---- { out.println("% getFontRenderContext()"); ! double[] scaling = { ! pageTransform.getScaleX(), 0, 0, ! -pageTransform.getScaleY(), 0, 0 }; return (new FontRenderContext(new AffineTransform(scaling), false, true)); *************** class PostScriptGraphics2D extends Graph *** 1050,1064 **** return currentTransform; } ! /** ! * Checks whether or not the specified Shape intersects ! * the specified Rectangle, which is in device space. */ public boolean hit(Rectangle rect, Shape s, boolean onStroke) { Rectangle2D.Double r = new Rectangle2D.Double(rect.getX(), rect.getY(), ! rect.getWidth(), ! rect.getHeight()); return s.intersects(r); } --- 1050,1064 ---- return currentTransform; } ! /** ! * Checks whether or not the specified Shape intersects ! * the specified Rectangle, which is in device space. */ public boolean hit(Rectangle rect, Shape s, boolean onStroke) { Rectangle2D.Double r = new Rectangle2D.Double(rect.getX(), rect.getY(), ! rect.getWidth(), ! rect.getHeight()); return s.intersects(r); } *************** class PostScriptGraphics2D extends Graph *** 1082,1094 **** gradientOn = false; if (paint instanceof Color) { ! setColor((Color) paint); ! return; } if (paint instanceof GradientPaint) { ! gradientOn = true; ! return; } } --- 1082,1094 ---- gradientOn = false; if (paint instanceof Color) { ! setColor((Color) paint); ! return; } if (paint instanceof GradientPaint) { ! gradientOn = true; ! return; } } *************** class PostScriptGraphics2D extends Graph *** 1096,1108 **** private String colorTriple(Color c) { return (((double) c.getRed() / 255.0) + " " ! + ((double) c.getGreen() / 255.0) + " " ! + ((double) c.getBlue() / 255.0)); } /** * Get a nonsperated hex RGB triple, eg FFFFFF = white ! * used by writeGradient and drawImage */ private String colorTripleHex(Color c) { --- 1096,1108 ---- private String colorTriple(Color c) { return (((double) c.getRed() / 255.0) + " " ! + ((double) c.getGreen() / 255.0) + " " ! + ((double) c.getBlue() / 255.0)); } /** * Get a nonsperated hex RGB triple, eg FFFFFF = white ! * used by writeGradient and drawImage */ private String colorTripleHex(Color c) { *************** class PostScriptGraphics2D extends Graph *** 1135,1145 **** // get number of repetitions while (x + n * dx < pageY && y + n * dy < pageX && x + n * dx > 0 ! && y + n * dy > 0) n++; out.println("<<"); // start ! out.println("/ShadingType 2"); // gradient fill out.println("/ColorSpace [ /DeviceRGB ]"); // RGB colors out.print("/Coords ["); out.print(x + " " + y + " " + (x + n * dx) + " " + (y + n * dy) + " "); --- 1135,1145 ---- // get number of repetitions while (x + n * dx < pageY && y + n * dy < pageX && x + n * dx > 0 ! && y + n * dy > 0) n++; out.println("<<"); // start ! out.println("/ShadingType 2"); // gradient fill out.println("/ColorSpace [ /DeviceRGB ]"); // RGB colors out.print("/Coords ["); out.print(x + " " + y + " " + (x + n * dx) + " " + (y + n * dy) + " "); *************** class PostScriptGraphics2D extends Graph *** 1152,1168 **** out.println("/BitsPerSample 8"); out.println("/Size [ " + (1 + n) + " ]"); out.print("/DataSource < " + colorTripleHex(paint.getColor1()) + " " ! + colorTripleHex(paint.getColor2()) + " "); for (; n > 1; n--) if (paint.isCyclic()) ! { ! if ((n % 2) == 1) ! out.print(colorTripleHex(paint.getColor1()) + " "); ! else ! out.print(colorTripleHex(paint.getColor2()) + " "); ! } else ! out.print(colorTripleHex(paint.getColor2()) + " "); out.println(">"); out.println(">>"); out.println(">>"); --- 1152,1168 ---- out.println("/BitsPerSample 8"); out.println("/Size [ " + (1 + n) + " ]"); out.print("/DataSource < " + colorTripleHex(paint.getColor1()) + " " ! + colorTripleHex(paint.getColor2()) + " "); for (; n > 1; n--) if (paint.isCyclic()) ! { ! if ((n % 2) == 1) ! out.print(colorTripleHex(paint.getColor1()) + " "); ! else ! out.print(colorTripleHex(paint.getColor2()) + " "); ! } else ! out.print(colorTripleHex(paint.getColor2()) + " "); out.println(">"); out.println(">>"); out.println(">>"); *************** class PostScriptGraphics2D extends Graph *** 1181,1187 **** /* we don't allow the changing of rendering hints. */ } ! /** * Sets the Stroke for the Graphics2D context. BasicStroke fully implemented. */ public void setStroke(Stroke s) --- 1181,1187 ---- /* we don't allow the changing of rendering hints. */ } ! /** * Sets the Stroke for the Graphics2D context. BasicStroke fully implemented. */ public void setStroke(Stroke s) *************** class PostScriptGraphics2D extends Graph *** 1195,1247 **** out.println("% setStroke()"); try { ! // set the line width ! out.println(bs.getLineWidth() + " setlinewidth"); ! // set the line dash ! float[] dashArray = bs.getDashArray(); ! if (dashArray != null) ! { ! out.print("[ "); ! for (int i = 0; i < dashArray.length; i++) ! out.print(dashArray[i] + " "); ! out.println("] " + bs.getDashPhase() + " setdash"); ! } ! else ! out.println("[] 0 setdash"); // set solid ! // set the line cap ! switch (bs.getEndCap()) ! { ! case BasicStroke.CAP_BUTT: ! out.println("0 setlinecap"); ! break; ! case BasicStroke.CAP_ROUND: ! out.println("1 setlinecap"); ! break; ! case BasicStroke.CAP_SQUARE: ! out.println("2 setlinecap"); ! break; ! } ! // set the line join ! switch (bs.getLineJoin()) ! { ! case BasicStroke.JOIN_BEVEL: ! out.println("2 setlinejoin"); ! break; ! case BasicStroke.JOIN_MITER: ! out.println("0 setlinejoin"); ! out.println(bs.getMiterLimit() + " setmiterlimit"); ! break; ! case BasicStroke.JOIN_ROUND: ! out.println("1 setlinejoin"); ! break; ! } } catch (Exception e) { ! out.println("% Exception in setStroke()"); } } --- 1195,1247 ---- out.println("% setStroke()"); try { ! // set the line width ! out.println(bs.getLineWidth() + " setlinewidth"); ! // set the line dash ! float[] dashArray = bs.getDashArray(); ! if (dashArray != null) ! { ! out.print("[ "); ! for (int i = 0; i < dashArray.length; i++) ! out.print(dashArray[i] + " "); ! out.println("] " + bs.getDashPhase() + " setdash"); ! } ! else ! out.println("[] 0 setdash"); // set solid ! // set the line cap ! switch (bs.getEndCap()) ! { ! case BasicStroke.CAP_BUTT: ! out.println("0 setlinecap"); ! break; ! case BasicStroke.CAP_ROUND: ! out.println("1 setlinecap"); ! break; ! case BasicStroke.CAP_SQUARE: ! out.println("2 setlinecap"); ! break; ! } ! // set the line join ! switch (bs.getLineJoin()) ! { ! case BasicStroke.JOIN_BEVEL: ! out.println("2 setlinejoin"); ! break; ! case BasicStroke.JOIN_MITER: ! out.println("0 setlinejoin"); ! out.println(bs.getMiterLimit() + " setmiterlimit"); ! break; ! case BasicStroke.JOIN_ROUND: ! out.println("1 setlinejoin"); ! break; ! } } catch (Exception e) { ! out.println("% Exception in setStroke()"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/awt/print/SpooledDocument.java gcc-4.6.0/libjava/classpath/gnu/java/awt/print/SpooledDocument.java *** gcc-4.5.2/libjava/classpath/gnu/java/awt/print/SpooledDocument.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/awt/print/SpooledDocument.java Tue Jan 11 19:46:05 2011 *************** public class SpooledDocument implements *** 53,65 **** public SpooledDocument(File file) { ! try { ! fis = new FileInputStream(file); } ! catch (FileNotFoundException ffne) { ! // Shouldn't happen. } } --- 53,65 ---- public SpooledDocument(File file) { ! try { ! fis = new FileInputStream(file); } ! catch (FileNotFoundException ffne) { ! // Shouldn't happen. } } *************** public class SpooledDocument implements *** 77,83 **** { return fis; } ! public Reader getReaderForText() { return new InputStreamReader(fis); --- 77,83 ---- { return fis; } ! public Reader getReaderForText() { return new InputStreamReader(fis); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/BeanInfoEmbryo.java gcc-4.6.0/libjava/classpath/gnu/java/beans/BeanInfoEmbryo.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/BeanInfoEmbryo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/BeanInfoEmbryo.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Vector; *** 70,148 **** public class BeanInfoEmbryo { ! // by using a TreeMap the properties will be sorted alphabetically by name ! // which matches the (undocumented) behavior of jdk ! TreeMap properties = new TreeMap(); ! Hashtable events = new Hashtable(); ! Vector methods = new Vector(); ! BeanDescriptor beanDescriptor; ! BeanInfo[] additionalBeanInfo; ! java.awt.Image[] im; ! String defaultPropertyName; ! String defaultEventName; ! public BeanInfoEmbryo() { ! } ! public BeanInfo getBeanInfo() { ! int defaultProperty = -1; ! int defaultEvent = -1; ! PropertyDescriptor[] Aproperties = new PropertyDescriptor[properties.size()]; ! int i = 0; ! Iterator it = properties.entrySet().iterator(); ! while (it.hasNext()) { ! Aproperties[i] = (PropertyDescriptor) (((Map.Entry)it.next()).getValue()); ! if(defaultPropertyName != null && Aproperties[i].getName().equals(defaultPropertyName)) { ! defaultProperty = i; ! } ! i++; ! } ! EventSetDescriptor[] Aevents = new EventSetDescriptor[events.size()]; ! i = 0; ! Enumeration e = events.elements(); ! while (e.hasMoreElements()) { ! Aevents[i] = (EventSetDescriptor) e.nextElement(); ! if(defaultEventName != null && Aevents[i].getName().equals(defaultEventName)) { ! defaultEvent = i; ! } ! i++; ! } ! MethodDescriptor[] Amethods = new MethodDescriptor[methods.size()]; ! methods.copyInto(Amethods); ! return new ExplicitBeanInfo(beanDescriptor,additionalBeanInfo,Aproperties,defaultProperty,Aevents,defaultEvent,Amethods,im); ! } ! public void setBeanDescriptor(BeanDescriptor b) { ! beanDescriptor = b; ! } ! public void setAdditionalBeanInfo(BeanInfo[] b) { ! additionalBeanInfo = b; ! } ! public boolean hasProperty(PropertyDescriptor p) { ! return properties.get(p.getName()) != null; ! } ! public void addProperty(PropertyDescriptor p) { ! properties.put(p.getName(),p); ! } ! public void addIndexedProperty(IndexedPropertyDescriptor p) { ! properties.put(p.getName(),p); ! } ! public boolean hasEvent(EventSetDescriptor e) { ! return events.get(e.getName()) != null; ! } ! public void addEvent(EventSetDescriptor e) { ! events.put(e.getName(),e); ! } ! public boolean hasMethod(MethodDescriptor m) { for(int i=0;i ! *

        2. boolean "is" getter
        3. ! *
        4. "get" style getter
        5. ! *
        6. single argument setter
        7. ! *
        8. indiced setter and getter
        9. ! * ! * It files the method as a listener method if all of these rules apply: ! *
            ! *
          • the method name starts with "add" or "remove"
          • ! *
          • there is only a single argument
          • ! *
          • the argument type is a subclass of java.util.EventListener
          • ! *
          ! * All public methods are filed as such. ! * ! * @param method The method instance to examine. ! */ ! public void addMethod(Method method) { ! if(Modifier.isPublic(method.getModifiers())) { ! String name = ClassHelper.getTruncatedName(method.getName()); ! Class retType = method.getReturnType(); ! Class[] params = method.getParameterTypes(); ! boolean isVoid = retType.equals(java.lang.Void.TYPE); ! Class methodClass = method.getDeclaringClass(); ! ! /* Accepts the method for examination if no stop class is given or the method is declared in a subclass of the stop class. ! * The rules for this are described in {@link java.beans.Introspector.getBeanInfo(Class, Class)}. ! * This block finds out whether the method is a suitable getter or setter method (or read/write method). ! */ ! if(isReachable(propertyStopClass, methodClass)) { ! /* At this point a method may regarded as a property's read or write method if its name ! * starts with "is", "get" or "set". However, if a method is static it cannot be part ! * of a property. ! */ ! if(Modifier.isStatic(method.getModifiers())) { ! // files method as other because it is static ! otherMethods.addElement(method); ! } else if(name.startsWith("is") ! && retType.equals(java.lang.Boolean.TYPE) ! && params.length == 0) { ! // files method as boolean "is" style getter ! addToPropertyHash(name,method,IS); ! } else if(name.startsWith("get") && !isVoid) { ! if(params.length == 0) { ! // files as legal non-argument getter ! addToPropertyHash(name,method,GET); ! } else if(params.length == 1 && params[0].equals(java.lang.Integer.TYPE)) { ! // files as legal indiced getter ! addToPropertyHash(name,method,GET_I); ! } else { ! // files as other because the method's signature is not Bean-like ! otherMethods.addElement(method); ! } ! } else if(name.startsWith("set") && isVoid) { ! if(params.length == 1) { ! // files as legal single-argument setter method ! addToPropertyHash(name,method,SET); ! } else if(params.length == 2 && params[0].equals(java.lang.Integer.TYPE)) { ! // files as legal indiced setter method ! addToPropertyHash(name,method,SET_I); ! } else { ! // files as other because the method's signature is not Bean-like ! otherMethods.addElement(method); ! } ! } ! } ! ! if(isReachable(eventStopClass, methodClass)) { ! if(name.startsWith("add") ! && isVoid ! && params.length == 1 ! && java.util.EventListener.class.isAssignableFrom(params[0])) { ! addToListenerHash(name,method,ADD); ! } else if(name.startsWith("remove") ! && isVoid ! && params.length == 1 ! && java.util.EventListener.class.isAssignableFrom(params[0])) { ! addToListenerHash(name,method,REMOVE); ! } ! } ! ! if(isReachable(methodStopClass, methodClass)) { ! // files as reachable public method ! otherMethods.addElement(method); ! } ! ! } ! } ! public void addMethods(Method[] m) { ! for(int i=0;istopClass
          is null ! * or declaringClass is a true subclass of stopClass. ! * This expression is useful to detect whether a method should be introspected or not. ! * The rules for this are described in {@link java.beans.Introspector.getBeanInfo(Class, Class)}. ! */ ! static boolean isReachable(Class stopClass, Class declaringClass) { ! return stopClass == null || (stopClass.isAssignableFrom(declaringClass) && !stopClass.equals(declaringClass)); ! } ! /** Transforms a property name into a part of a method name. ! * E.g. "value" becomes "Value" which can then concatenated with ! * "set", "get" or "is" to form a valid method name. ! * ! * Implementation notes: ! * If "" is the argument, it is returned without changes. ! * If null is the argument, null is returned. ! * ! * @param name Name of a property. ! * @return Part of a method name of a property. ! */ ! static String capitalize(String name) { ! try { ! if(Character.isUpperCase(name.charAt(0))) { ! return name; ! } else { ! char[] c = name.toCharArray(); ! c[0] = Character.toLowerCase(c[0]); ! return new String(c); ! } ! } catch(StringIndexOutOfBoundsException E) { ! return name; ! } catch(NullPointerException E) { ! return null; ! } ! } } /** This class is a hashmap key that consists of a Class and a * String element. ! * * It is used for XXX: find out what this is used for ! * * @author John Keiser * @author Robert Schuster ! */ class DoubleKey { ! Class type; ! String name; ! DoubleKey(Class type, String name) { ! this.type = type; ! this.name = name; ! } ! Class getType() { ! return type; ! } ! String getName() { ! return name; ! } ! public boolean equals(Object o) { ! if(o instanceof DoubleKey) { ! DoubleKey d = (DoubleKey)o; ! return d.type.equals(type) && d.name.equals(name); ! } else { ! return false; ! } ! } ! public int hashCode() { ! return type.hashCode() ^ name.hashCode(); ! } } --- 69,441 ---- **/ public class IntrospectionIncubator { ! Hashtable propertyMethods = new Hashtable(); ! Hashtable listenerMethods = new Hashtable(); ! Vector otherMethods = new Vector(); ! Class propertyStopClass; ! Class eventStopClass; ! Class methodStopClass; ! public IntrospectionIncubator() { ! } ! /** Examines the given method and files it in a suitable collection. ! * It files the method as a property method if it finds: ! *
            ! *
          • boolean "is" getter
          • ! *
          • "get" style getter
          • ! *
          • single argument setter
          • ! *
          • indiced setter and getter
          • ! *
          ! * It files the method as a listener method if all of these rules apply: ! *
            ! *
          • the method name starts with "add" or "remove"
          • ! *
          • there is only a single argument
          • ! *
          • the argument type is a subclass of java.util.EventListener
          • ! *
          ! * All public methods are filed as such. ! * ! * @param method The method instance to examine. ! */ ! public void addMethod(Method method) { ! if(Modifier.isPublic(method.getModifiers())) { ! String name = ClassHelper.getTruncatedName(method.getName()); ! Class retType = method.getReturnType(); ! Class[] params = method.getParameterTypes(); ! boolean isVoid = retType.equals(java.lang.Void.TYPE); ! Class methodClass = method.getDeclaringClass(); ! /* Accepts the method for examination if no stop class is given or the method is declared in a subclass of the stop class. ! * The rules for this are described in {@link java.beans.Introspector.getBeanInfo(Class, Class)}. ! * This block finds out whether the method is a suitable getter or setter method (or read/write method). ! */ ! if(isReachable(propertyStopClass, methodClass)) { ! /* At this point a method may regarded as a property's read or write method if its name ! * starts with "is", "get" or "set". However, if a method is static it cannot be part ! * of a property. ! */ ! if(Modifier.isStatic(method.getModifiers())) { ! // files method as other because it is static ! otherMethods.addElement(method); ! } else if(name.startsWith("is") ! && retType.equals(java.lang.Boolean.TYPE) ! && params.length == 0) { ! // files method as boolean "is" style getter ! addToPropertyHash(name,method,IS); ! } else if(name.startsWith("get") && !isVoid) { ! if(params.length == 0) { ! // files as legal non-argument getter ! addToPropertyHash(name,method,GET); ! } else if(params.length == 1 && params[0].equals(java.lang.Integer.TYPE)) { ! // files as legal indiced getter ! addToPropertyHash(name,method,GET_I); ! } else { ! // files as other because the method's signature is not Bean-like ! otherMethods.addElement(method); ! } ! } else if(name.startsWith("set") && isVoid) { ! if(params.length == 1) { ! // files as legal single-argument setter method ! addToPropertyHash(name,method,SET); ! } else if(params.length == 2 && params[0].equals(java.lang.Integer.TYPE)) { ! // files as legal indiced setter method ! addToPropertyHash(name,method,SET_I); ! } else { ! // files as other because the method's signature is not Bean-like ! otherMethods.addElement(method); ! } ! } ! } ! if(isReachable(eventStopClass, methodClass)) { ! if(name.startsWith("add") ! && isVoid ! && params.length == 1 ! && java.util.EventListener.class.isAssignableFrom(params[0])) { ! addToListenerHash(name,method,ADD); ! } else if(name.startsWith("remove") ! && isVoid ! && params.length == 1 ! && java.util.EventListener.class.isAssignableFrom(params[0])) { ! addToListenerHash(name,method,REMOVE); ! } ! } ! if(isReachable(methodStopClass, methodClass)) { ! // files as reachable public method ! otherMethods.addElement(method); ! } ! } ! } + public void addMethods(Method[] m) { + for(int i=0;istopClass
          is null ! * or declaringClass is a true subclass of stopClass. ! * This expression is useful to detect whether a method should be introspected or not. ! * The rules for this are described in {@link java.beans.Introspector.getBeanInfo(Class, Class)}. ! */ ! static boolean isReachable(Class stopClass, Class declaringClass) { ! return stopClass == null || (stopClass.isAssignableFrom(declaringClass) && !stopClass.equals(declaringClass)); ! } ! ! /** Transforms a property name into a part of a method name. ! * E.g. "value" becomes "Value" which can then concatenated with ! * "set", "get" or "is" to form a valid method name. ! * ! * Implementation notes: ! * If "" is the argument, it is returned without changes. ! * If null is the argument, null is returned. ! * ! * @param name Name of a property. ! * @return Part of a method name of a property. ! */ ! static String capitalize(String name) { ! try { ! if(Character.isUpperCase(name.charAt(0))) { ! return name; ! } else { ! char[] c = name.toCharArray(); ! c[0] = Character.toLowerCase(c[0]); ! return new String(c); ! } ! } catch(StringIndexOutOfBoundsException E) { ! return name; ! } catch(NullPointerException E) { ! return null; ! } ! } } /** This class is a hashmap key that consists of a Class and a * String element. ! * * It is used for XXX: find out what this is used for ! * * @author John Keiser * @author Robert Schuster ! */ class DoubleKey { ! Class type; ! String name; ! DoubleKey(Class type, String name) { ! this.type = type; ! this.name = name; ! } ! Class getType() { ! return type; ! } ! String getName() { ! return name; ! } ! public boolean equals(Object o) { ! if(o instanceof DoubleKey) { ! DoubleKey d = (DoubleKey)o; ! return d.type.equals(type) && d.name.equals(name); ! } else { ! return false; ! } ! } ! public int hashCode() { ! return type.hashCode() ^ name.hashCode(); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AbstractContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AbstractContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AbstractContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AbstractContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AbstractCreatableObjectContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AbstractCreatableObjectContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AbstractCreatableObjectContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AbstractCreatableObjectContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** abstract class AbstractCreatableObjectCo *** 65,71 **** /** Adds a parameter object to this Context. Implement this without caring * for illegal states because this has been done already. * ! * @param obj The parameter object to be added. */ protected abstract void addParameterObjectImpl(Object obj); --- 65,71 ---- /** Adds a parameter object to this Context. Implement this without caring * for illegal states because this has been done already. * ! * @param obj The parameter object to be added. */ protected abstract void addParameterObjectImpl(Object obj); *************** abstract class AbstractCreatableObjectCo *** 83,89 **** /** Creates the result object. This method is called only once. Implement this * without checking for double invocations as this is already being prevented. * ! * @param outerContext The Context that exists around this one. * @return The result object. * @throws AssemblerException if the object creation fails somehow. */ --- 83,89 ---- /** Creates the result object. This method is called only once. Implement this * without checking for double invocations as this is already being prevented. * ! * @param outerContext The Context that exists around this one. * @return The result object. * @throws AssemblerException if the object creation fails somehow. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AbstractElementHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AbstractElementHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AbstractElementHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AbstractElementHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** abstract class AbstractElementHandler im *** 91,111 **** { try { ! // lets the subclass create the appropriate Context instance ! context = startElement(attributes, exceptionListener); } catch (AssemblyException pe) { ! Throwable t = pe.getCause(); ! if (t instanceof Exception) ! exceptionListener.exceptionThrown((Exception) t); ! else ! throw new InternalError("Unexpected Throwable type in AssemblerException. Please file a bug report."); ! notifyContextFailed(); ! return; } } --- 91,111 ---- { try { ! // lets the subclass create the appropriate Context instance ! context = startElement(attributes, exceptionListener); } catch (AssemblyException pe) { ! Throwable t = pe.getCause(); ! if (t instanceof Exception) ! exceptionListener.exceptionThrown((Exception) t); ! else ! throw new InternalError("Unexpected Throwable type in AssemblerException. Please file a bug report."); ! notifyContextFailed(); ! return; } } *************** abstract class AbstractElementHandler im *** 129,176 **** // is then invalid or may not exist at all) if (!hasFailed) { ! try ! { ! // note: the order of operations is very important here ! // sends the stored character data to the Context ! endElement(buffer.toString()); ! // reports to the parent handler if this handler's Context is a ! // statement (returning no value BACK to the parent's Context) ! if (context.isStatement()) ! { ! // This may create a valid result in the parent's Context ! // or let it fail ! parent.notifyStatement(exceptionListener); ! // skips any further processing if the parent handler is now marked ! // as failed ! if (parent.hasFailed()) ! return; ! } ! // processes the Context and stores the result ! putObject(context.getId(), context.endContext(parent.getContext())); ! // transfers the Context's results to the parent's Context ! // if it is an expression (rather than a statement) ! if (! context.isStatement()) ! parent.getContext().addParameterObject(context.getResult()); ! } ! catch (AssemblyException pe) ! { ! // notifies that an exception was thrown in this handler's Context ! Throwable t = pe.getCause(); ! if (t instanceof Exception) ! exceptionListener.exceptionThrown((Exception) t); ! else ! throw (InternalError) new InternalError("Severe problem while decoding XML data.") ! .initCause(t); ! // marks the handler as failed ! notifyContextFailed(); ! } } } --- 129,176 ---- // is then invalid or may not exist at all) if (!hasFailed) { ! try ! { ! // note: the order of operations is very important here ! // sends the stored character data to the Context ! endElement(buffer.toString()); ! // reports to the parent handler if this handler's Context is a ! // statement (returning no value BACK to the parent's Context) ! if (context.isStatement()) ! { ! // This may create a valid result in the parent's Context ! // or let it fail ! parent.notifyStatement(exceptionListener); ! // skips any further processing if the parent handler is now marked ! // as failed ! if (parent.hasFailed()) ! return; ! } ! // processes the Context and stores the result ! putObject(context.getId(), context.endContext(parent.getContext())); ! // transfers the Context's results to the parent's Context ! // if it is an expression (rather than a statement) ! if (! context.isStatement()) ! parent.getContext().addParameterObject(context.getResult()); ! } ! catch (AssemblyException pe) ! { ! // notifies that an exception was thrown in this handler's Context ! Throwable t = pe.getCause(); ! if (t instanceof Exception) ! exceptionListener.exceptionThrown((Exception) t); ! else ! throw (InternalError) new InternalError("Severe problem while decoding XML data.") ! .initCause(t); ! // marks the handler as failed ! notifyContextFailed(); ! } } } *************** abstract class AbstractElementHandler im *** 184,214 **** { try { ! ! // propagates to parent handler first to generate objects ! // needed by this Context instance ! if(context.isStatement()) ! { ! parent.notifyStatement(exceptionListener); ! } ! ! // Some Context instances do stuff which can fail now. If that ! // happens this handler is marked as failed. ! context.notifyStatement(parent.getContext()); } catch (AssemblyException ae) { ! // notifies that an exception was thrown in this handler's Context ! Throwable t = ae.getCause(); ! if (t instanceof Exception) ! exceptionListener.exceptionThrown((Exception) t); ! else ! throw (InternalError) new InternalError("Severe problem while decoding XML data.") ! .initCause(t); ! // marks the handler as failed ! notifyContextFailed(); } } --- 184,214 ---- { try { ! ! // propagates to parent handler first to generate objects ! // needed by this Context instance ! if(context.isStatement()) ! { ! parent.notifyStatement(exceptionListener); ! } ! ! // Some Context instances do stuff which can fail now. If that ! // happens this handler is marked as failed. ! context.notifyStatement(parent.getContext()); } catch (AssemblyException ae) { ! // notifies that an exception was thrown in this handler's Context ! Throwable t = ae.getCause(); ! if (t instanceof Exception) ! exceptionListener.exceptionThrown((Exception) t); ! else ! throw (InternalError) new InternalError("Severe problem while decoding XML data.") ! .initCause(t); ! // marks the handler as failed ! notifyContextFailed(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AbstractObjectContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AbstractObjectContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AbstractObjectContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AbstractObjectContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ArrayContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ArrayContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ArrayContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ArrayContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class ArrayContext extends AbstractConte *** 67,73 **** */ public void notifyStatement(Context outerContext) { ! // method call intentionally ignored because there is not any useful effect } /* (non-Javadoc) --- 67,73 ---- */ public void notifyStatement(Context outerContext) { ! // method call intentionally ignored because there is not any useful effect } /* (non-Javadoc) *************** class ArrayContext extends AbstractConte *** 92,102 **** { try { ! Array.set(array, index, o); } catch (ArrayIndexOutOfBoundsException aioobe) { ! throw new AssemblyException(aioobe); } } --- 92,102 ---- { try { ! Array.set(array, index, o); } catch (ArrayIndexOutOfBoundsException aioobe) { ! throw new AssemblyException(aioobe); } } *************** class ArrayContext extends AbstractConte *** 104,114 **** { try { ! return Array.get(array, index); } catch (ArrayIndexOutOfBoundsException aioobe) { ! throw new AssemblyException(aioobe); } } --- 104,114 ---- { try { ! return Array.get(array, index); } catch (ArrayIndexOutOfBoundsException aioobe) { ! throw new AssemblyException(aioobe); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ArrayHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ArrayHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ArrayHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ArrayHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class ArrayHandler extends AbstractEleme *** 86,116 **** if (className != null) { ! try ! { ! Class klass; ! if (typeMap.containsKey(className)) ! klass = (Class) typeMap.get(className); ! else ! klass = instantiateClass(className); ! String length = attributes.getValue("length"); ! if (length != null) ! // creates Array with predefined length ! return new ArrayContext(id, klass, Integer.parseInt(length)); ! else ! // creates Array without length restriction ! return new GrowableArrayContext(id, klass); ! } ! catch (ClassNotFoundException cnfe) ! { ! throw new AssemblyException(cnfe); ! } ! catch (NumberFormatException nfe) ! { ! throw new AssemblyException(nfe); ! } } throw new AssemblyException(new IllegalArgumentException("Missing 'class' attribute in tag.")); --- 86,116 ---- if (className != null) { ! try ! { ! Class klass; ! if (typeMap.containsKey(className)) ! klass = (Class) typeMap.get(className); ! else ! klass = instantiateClass(className); ! String length = attributes.getValue("length"); ! if (length != null) ! // creates Array with predefined length ! return new ArrayContext(id, klass, Integer.parseInt(length)); ! else ! // creates Array without length restriction ! return new GrowableArrayContext(id, klass); ! } ! catch (ClassNotFoundException cnfe) ! { ! throw new AssemblyException(cnfe); ! } ! catch (NumberFormatException nfe) ! { ! throw new AssemblyException(nfe); ! } } throw new AssemblyException(new IllegalArgumentException("Missing 'class' attribute in tag.")); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AssemblyException.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AssemblyException.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/AssemblyException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/AssemblyException.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package gnu.java.beans.decoder; *** 41,47 **** /** The AssemblyException is used to wrap the cause of problems when assembling objects. * In all cases only the wrapped exception is given to the PersistenceParser's * ExceptionListener instance (never the AssemblyException itself). ! * *

          Note: Often multiple steps are needed to construct a fully usuable object instance. * Such a construction can be called assembly and thats why this exception was * named AssemblyException.

          --- 41,47 ---- /** The AssemblyException is used to wrap the cause of problems when assembling objects. * In all cases only the wrapped exception is given to the PersistenceParser's * ExceptionListener instance (never the AssemblyException itself). ! * *

          Note: Often multiple steps are needed to construct a fully usuable object instance. * Such a construction can be called assembly and thats why this exception was * named AssemblyException.

          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/BooleanHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/BooleanHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/BooleanHandler.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/BooleanHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ByteHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ByteHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ByteHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ByteHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/CharHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/CharHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/CharHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/CharHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ClassHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ClassHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ClassHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ClassHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class ClassHandler extends SimpleHandler *** 56,66 **** { try { ! return instantiateClass(characters); } catch (ClassNotFoundException cnfe) { ! throw new AssemblyException(cnfe); } } } --- 56,66 ---- { try { ! return instantiateClass(characters); } catch (ClassNotFoundException cnfe) { ! throw new AssemblyException(cnfe); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ConstructorContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ConstructorContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ConstructorContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ConstructorContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class ConstructorContext extends Abstrac *** 57,63 **** ConstructorContext(String id, Class newClass) { setId(id); ! // sets superclass field klass = newClass; } --- 57,63 ---- ConstructorContext(String id, Class newClass) { setId(id); ! // sets superclass field klass = newClass; } *************** class ConstructorContext extends Abstrac *** 76,102 **** try { ! Constructor constructor = MethodFinder.getConstructor(klass, args); ! // instantiates object (klass field gets re-set by superclass) ! return constructor.newInstance(args); } catch (NoSuchMethodException nsme) { ! throw new AssemblyException(nsme); } catch (InvocationTargetException ite) { ! throw new AssemblyException(ite.getCause()); } catch (IllegalAccessException iae) { ! throw new AssemblyException(iae); } catch (InstantiationException ie) { ! throw new AssemblyException(ie); } } ! } --- 76,102 ---- try { ! Constructor constructor = MethodFinder.getConstructor(klass, args); ! // instantiates object (klass field gets re-set by superclass) ! return constructor.newInstance(args); } catch (NoSuchMethodException nsme) { ! throw new AssemblyException(nsme); } catch (InvocationTargetException ite) { ! throw new AssemblyException(ite.getCause()); } catch (IllegalAccessException iae) { ! throw new AssemblyException(iae); } catch (InstantiationException ie) { ! throw new AssemblyException(ie); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/Context.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/Context.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/Context.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/Context.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/DecoderContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/DecoderContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/DecoderContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/DecoderContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class DecoderContext extends Abst *** 113,124 **** } /** Returns an Iterator that retrieves the assembled objects. ! * * @return An Iterator retrieving assembled objects. */ public Iterator iterator() { return objects.iterator(); } ! } --- 113,124 ---- } /** Returns an Iterator that retrieves the assembled objects. ! * * @return An Iterator retrieving assembled objects. */ public Iterator iterator() { return objects.iterator(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/DoubleHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/DoubleHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/DoubleHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/DoubleHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/DummyContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/DummyContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/DummyContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/DummyContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class DummyContext extends Abstra *** 60,66 **** */ public void notifyStatement(Context outerContext) throws AssemblyException { ! // intentionally ignored } /* (non-Javadoc) --- 60,66 ---- */ public void notifyStatement(Context outerContext) throws AssemblyException { ! // intentionally ignored } /* (non-Javadoc) *************** public class DummyContext extends Abstra *** 69,75 **** public Object endContext(Context outerContext) throws AssemblyException { fail(); ! return null; } /* (non-Javadoc) --- 69,75 ---- public Object endContext(Context outerContext) throws AssemblyException { fail(); ! return null; } /* (non-Javadoc) *************** public class DummyContext extends Abstra *** 78,84 **** public boolean subContextFailed() { fail(); ! return false; } /* (non-Javadoc) --- 78,84 ---- public boolean subContextFailed() { fail(); ! return false; } /* (non-Javadoc) *************** public class DummyContext extends Abstra *** 95,101 **** public Object get(int index) throws AssemblyException { fail(); ! return null; } /* (non-Javadoc) --- 95,101 ---- public Object get(int index) throws AssemblyException { fail(); ! return null; } /* (non-Javadoc) *************** public class DummyContext extends Abstra *** 104,116 **** public Object getResult() { fail(); ! return null; } private void fail() { throw new InternalError("Invoking the DummyContext is not expected" ! + " - Please file a bug report at" ! + " http://www/gnu.org/software/classpath/."); } } --- 104,116 ---- public Object getResult() { fail(); ! return null; } private void fail() { throw new InternalError("Invoking the DummyContext is not expected" ! + " - Please file a bug report at" ! + " http://www/gnu.org/software/classpath/."); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/DummyHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/DummyHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/DummyHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/DummyHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class DummyHandler implements ElementHan *** 89,95 **** throws ClassNotFoundException { fail(); ! return null; } /* (non-Javadoc) --- 89,95 ---- throws ClassNotFoundException { fail(); ! return null; } /* (non-Javadoc) *************** class DummyHandler implements ElementHan *** 138,156 **** public Object getObject(String objectId) { fail(); ! return null; } public ElementHandler getParent() { fail(); ! return null; } private void fail() { throw new InternalError("Invoking the DummyHandler is not expected" ! + " - Please file a bug report at " ! + " http://www.gnu.org/software/classpath/."); } } --- 138,156 ---- public Object getObject(String objectId) { fail(); ! return null; } public ElementHandler getParent() { fail(); ! return null; } private void fail() { throw new InternalError("Invoking the DummyHandler is not expected" ! + " - Please file a bug report at " ! + " http://www.gnu.org/software/classpath/."); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ElementHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ElementHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ElementHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ElementHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** interface ElementHandler *** 72,90 **** /** Returns whether a subelement of the given name is allowed. The rules * for evaluating this are derived from the javabeans.dtd which can be found * here: Java Persistence Article. ! * ! * @param subElementName * @return */ boolean isSubelementAllowed(String subElementName); /** Provides the same functionality as Class.forName() but allows the decoder * to use a different class loader. ! * * @param className * @return * @throws ClassNotFoundException ! */ Class instantiateClass(String className) throws ClassNotFoundException; /** Notifies the handler's Context that its child Context will not return --- 72,90 ---- /** Returns whether a subelement of the given name is allowed. The rules * for evaluating this are derived from the javabeans.dtd which can be found * here: Java Persistence Article. ! * ! * @param subElementName * @return */ boolean isSubelementAllowed(String subElementName); /** Provides the same functionality as Class.forName() but allows the decoder * to use a different class loader. ! * * @param className * @return * @throws ClassNotFoundException ! */ Class instantiateClass(String className) throws ClassNotFoundException; /** Notifies the handler's Context that its child Context will not return *************** interface ElementHandler *** 104,124 **** boolean hasFailed(); /** Returns the Context instance this handler is working on. ! * * @return The handler's Context instance. */ Context getContext(); /** Notifies the handler that its Context failed and starts a recursive * invocation of the parent handler if it is affected by that failure. ! * * Although the method is a public API member it is only used internally. */ void notifyContextFailed(); /** Stores the object under the given id. The object is not stored if the * id is null. ! * * @param objectId * @param o */ --- 104,124 ---- boolean hasFailed(); /** Returns the Context instance this handler is working on. ! * * @return The handler's Context instance. */ Context getContext(); /** Notifies the handler that its Context failed and starts a recursive * invocation of the parent handler if it is affected by that failure. ! * * Although the method is a public API member it is only used internally. */ void notifyContextFailed(); /** Stores the object under the given id. The object is not stored if the * id is null. ! * * @param objectId * @param o */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/FloatHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/FloatHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/FloatHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/FloatHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/GrowableArrayContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/GrowableArrayContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/GrowableArrayContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/GrowableArrayContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.lang.reflect.Array; *** 46,56 **** class GrowableArrayContext extends AbstractContext { private static final int INITIAL_SIZE = 16; ! private Class klass; private Object array; private int length; ! GrowableArrayContext(String id, Class newClass) { setId(id); --- 46,56 ---- class GrowableArrayContext extends AbstractContext { private static final int INITIAL_SIZE = 16; ! private Class klass; private Object array; private int length; ! GrowableArrayContext(String id, Class newClass) { setId(id); *************** class GrowableArrayContext extends Abstr *** 69,75 **** System.arraycopy(array, 0, tmp, 0, length); array = tmp; } ! try { Array.set(array, length++, o); } catch(IllegalArgumentException iae) { --- 69,75 ---- System.arraycopy(array, 0, tmp, 0, length); array = tmp; } ! try { Array.set(array, length++, o); } catch(IllegalArgumentException iae) { *************** class GrowableArrayContext extends Abstr *** 97,103 **** System.arraycopy(array, 0, tmp, 0, length); array = tmp; } ! return array; } --- 97,103 ---- System.arraycopy(array, 0, tmp, 0, length); array = tmp; } ! return array; } *************** class GrowableArrayContext extends Abstr *** 119,125 **** try { Array.set(array, index, o); } catch(IllegalArgumentException iae) { ! throw new AssemblyException(iae); } } --- 119,125 ---- try { Array.set(array, index, o); } catch(IllegalArgumentException iae) { ! throw new AssemblyException(iae); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/IndexContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/IndexContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/IndexContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/IndexContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class IndexContext extends AbstractConte *** 65,72 **** { if (! isSetter) { ! argument = o; ! isSetter = true; } else throw new AssemblyException(new IllegalStateException("More than one argument for indiced access is not possible.")); --- 65,72 ---- { if (! isSetter) { ! argument = o; ! isSetter = true; } else throw new AssemblyException(new IllegalStateException("More than one argument for indiced access is not possible.")); *************** class IndexContext extends AbstractConte *** 87,96 **** { if (isSetter) { ! // setter ! outerContext.set(index, argument); ! return null; } else // getter --- 87,96 ---- { if (isSetter) { ! // setter ! outerContext.set(index, argument); ! return null; } else // getter diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/IntHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/IntHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/IntHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/IntHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/JavaHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/JavaHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/JavaHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/JavaHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class JavaHandler extends Abstrac *** 69,75 **** protected Context startElement(Attributes attributes, ExceptionListener exceptionListener) throws AssemblyException { ! // may expect version and class attribute but it not used in JDK // so we do either return context; } --- 69,75 ---- protected Context startElement(Attributes attributes, ExceptionListener exceptionListener) throws AssemblyException { ! // may expect version and class attribute but it not used in JDK // so we do either return context; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/LongHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/LongHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/LongHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/LongHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/MethodContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/MethodContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/MethodContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/MethodContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/MethodFinder.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/MethodFinder.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/MethodFinder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/MethodFinder.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.HashMap; *** 43,177 **** class MethodFinder { ! /** Provides a mapping between a wrapper class and its corresponding primitive's type. */ ! private static HashMap typeMapping = new HashMap(); ! static { ! typeMapping.put(Byte.class, Byte.TYPE); ! typeMapping.put(Short.class, Short.TYPE); ! typeMapping.put(Integer.class, Integer.TYPE); ! typeMapping.put(Long.class, Long.TYPE); ! typeMapping.put(Float.class, Float.TYPE); ! typeMapping.put(Double.class, Double.TYPE); ! typeMapping.put(Character.class, Character.TYPE); ! typeMapping.put(Boolean.class, Boolean.TYPE); ! } ! private MethodFinder() ! { ! } ! /** Searches a Method which can accept the given arguments. ! * ! * @param klass ! * @param name ! * @param arguments ! * @return ! * @throws NoSuchMethodException ! */ ! static Method getMethod(Class klass, String name, Object[] arguments) ! throws NoSuchMethodException ! { ! // prepares array containing the types of the arguments ! Class[] argumentTypes = getArgumentTypes(arguments); ! Method[] methods = klass.getMethods(); ! // iterates over all public methods ! for (int i = 0; i < methods.length; i++) ! { ! if (methods[i].getName().equals(name)) ! { ! if (matchingArgumentTypes(methods[i].getParameterTypes(), ! argumentTypes)) ! return methods[i]; ! } ! } ! throw new NoSuchMethodException( ! "Could not find a matching method named " ! + name ! + "() in class " ! + klass); ! } ! static Constructor getConstructor(Class klass, Object[] arguments) ! throws NoSuchMethodException ! { ! Class[] argumentTypes = getArgumentTypes(arguments); ! Constructor[] constructors = klass.getConstructors(); ! // iterates over all public methods ! for (int i = 0; i < constructors.length; i++) ! { ! if (matchingArgumentTypes(constructors[i].getParameterTypes(), ! argumentTypes)) ! return constructors[i]; ! } ! throw new NoSuchMethodException( ! "Could not find a matching constructor in class " + klass); ! } ! /** Transforms an array of argument objects into an array of argument types. ! * For each argument being null the argument is null, too. An argument type ! * being null means: Accepts everything (although this can be ambigous). ! * ! * @param arguments ! * @return ! */ ! private static Class[] getArgumentTypes(Object[] arguments) ! { ! if (arguments == null) ! return new Class[0]; ! // prepares array containing the types of the arguments ! Class[] argumentTypes = new Class[arguments.length]; ! for (int i = 0; i < arguments.length; i++) ! argumentTypes[i] = ! (arguments[i] == null) ? null : arguments[i].getClass(); ! return argumentTypes; ! } ! /** Tests whether the argument types supplied to the method argument types ! * are assignable. In addition to the assignment specifications this method ! * handles the primitive's wrapper classes as if they were of their ! * primitive type (e.g Boolean.class equals Boolean.TYPE). ! * When a supplied argument type is null it is assumed that no argument ! * object was supplied for it and the test for this particular parameter will ! * pass. ! * ! * @param methodArgTypes ! * @param suppliedArgTypes ! * @return ! */ ! private static boolean matchingArgumentTypes( ! Class[] methodArgTypes, ! Class[] suppliedArgTypes) ! { ! if (methodArgTypes.length != suppliedArgTypes.length) ! return false; ! for (int i = 0; i < methodArgTypes.length; i++) ! { ! if (suppliedArgTypes[i] == null) ! { ! // by definition a non-existant argument type (null) can be converted to everything ! continue; ! } ! else if (typeMapping.containsKey(suppliedArgTypes[i])) ! { ! Class primitiveType = ! (Class) typeMapping.get(suppliedArgTypes[i]); ! if (!(methodArgTypes[i].isAssignableFrom(suppliedArgTypes[i]) ! || methodArgTypes[i].isAssignableFrom(primitiveType))) ! return false; ! } ! else if (!methodArgTypes[i].isAssignableFrom(suppliedArgTypes[i])) ! return false; ! } ! return true; ! } } --- 43,177 ---- class MethodFinder { ! /** Provides a mapping between a wrapper class and its corresponding primitive's type. */ ! private static HashMap typeMapping = new HashMap(); ! static { ! typeMapping.put(Byte.class, Byte.TYPE); ! typeMapping.put(Short.class, Short.TYPE); ! typeMapping.put(Integer.class, Integer.TYPE); ! typeMapping.put(Long.class, Long.TYPE); ! typeMapping.put(Float.class, Float.TYPE); ! typeMapping.put(Double.class, Double.TYPE); ! typeMapping.put(Character.class, Character.TYPE); ! typeMapping.put(Boolean.class, Boolean.TYPE); ! } ! private MethodFinder() ! { ! } ! /** Searches a Method which can accept the given arguments. ! * ! * @param klass ! * @param name ! * @param arguments ! * @return ! * @throws NoSuchMethodException ! */ ! static Method getMethod(Class klass, String name, Object[] arguments) ! throws NoSuchMethodException ! { ! // prepares array containing the types of the arguments ! Class[] argumentTypes = getArgumentTypes(arguments); ! Method[] methods = klass.getMethods(); ! // iterates over all public methods ! for (int i = 0; i < methods.length; i++) ! { ! if (methods[i].getName().equals(name)) ! { ! if (matchingArgumentTypes(methods[i].getParameterTypes(), ! argumentTypes)) ! return methods[i]; ! } ! } ! throw new NoSuchMethodException( ! "Could not find a matching method named " ! + name ! + "() in class " ! + klass); ! } ! static Constructor getConstructor(Class klass, Object[] arguments) ! throws NoSuchMethodException ! { ! Class[] argumentTypes = getArgumentTypes(arguments); ! Constructor[] constructors = klass.getConstructors(); ! // iterates over all public methods ! for (int i = 0; i < constructors.length; i++) ! { ! if (matchingArgumentTypes(constructors[i].getParameterTypes(), ! argumentTypes)) ! return constructors[i]; ! } ! throw new NoSuchMethodException( ! "Could not find a matching constructor in class " + klass); ! } ! /** Transforms an array of argument objects into an array of argument types. ! * For each argument being null the argument is null, too. An argument type ! * being null means: Accepts everything (although this can be ambigous). ! * ! * @param arguments ! * @return ! */ ! private static Class[] getArgumentTypes(Object[] arguments) ! { ! if (arguments == null) ! return new Class[0]; ! // prepares array containing the types of the arguments ! Class[] argumentTypes = new Class[arguments.length]; ! for (int i = 0; i < arguments.length; i++) ! argumentTypes[i] = ! (arguments[i] == null) ? null : arguments[i].getClass(); ! return argumentTypes; ! } ! /** Tests whether the argument types supplied to the method argument types ! * are assignable. In addition to the assignment specifications this method ! * handles the primitive's wrapper classes as if they were of their ! * primitive type (e.g Boolean.class equals Boolean.TYPE). ! * When a supplied argument type is null it is assumed that no argument ! * object was supplied for it and the test for this particular parameter will ! * pass. ! * ! * @param methodArgTypes ! * @param suppliedArgTypes ! * @return ! */ ! private static boolean matchingArgumentTypes( ! Class[] methodArgTypes, ! Class[] suppliedArgTypes) ! { ! if (methodArgTypes.length != suppliedArgTypes.length) ! return false; ! for (int i = 0; i < methodArgTypes.length; i++) ! { ! if (suppliedArgTypes[i] == null) ! { ! // by definition a non-existant argument type (null) can be converted to everything ! continue; ! } ! else if (typeMapping.containsKey(suppliedArgTypes[i])) ! { ! Class primitiveType = ! (Class) typeMapping.get(suppliedArgTypes[i]); ! if (!(methodArgTypes[i].isAssignableFrom(suppliedArgTypes[i]) ! || methodArgTypes[i].isAssignableFrom(primitiveType))) ! return false; ! } ! else if (!methodArgTypes[i].isAssignableFrom(suppliedArgTypes[i])) ! return false; ! } ! return true; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/NullHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/NullHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/NullHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/NullHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ObjectContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ObjectContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ObjectContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ObjectContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ObjectHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ObjectHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ObjectHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ObjectHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class ObjectHandler extends Abstr *** 90,167 **** // decides whether we are in a static (className present) or dynamic context if (className != null) { ! try ! { ! Class klass = instantiateClass(className); ! // class name exists which means that we are in a static context. ! // so we may want to ... ! // access a static field if the fieldName exists ! if (fieldName != null) ! { ! try ! { ! return new ObjectContext(id, ! klass.getField(fieldName).get(null)); ! } ! catch (NoSuchFieldException nsfe) ! { ! throw new AssemblyException(nsfe); ! } ! catch (IllegalAccessException iae) ! { ! throw new AssemblyException(iae); ! } ! } ! // (falling through is important!) ! // run a constructor if methodName is "new" or null ! if (methodName == null || methodName.equals("new")) ! return new ConstructorContext(id, klass); ! // (falling through is important!) ! // run a static method on the given class (if methodName exists, which is implied already) ! return new StaticMethodContext(id, klass, methodName); ! // XXX: should fail if unexpected attributes are present? ! } ! catch (ClassNotFoundException cnfe) ! { ! throw new AssemblyException(cnfe); ! } } else { ! // className does not exist which means we are in the context of ! // some object and want to ... ! // access the get(int index) method if index != null ! if (index != null) ! { ! try ! { ! // Note: http://java.sun.com/products/jfc/tsc/articles/persistence3/ says ! // that will make up a get()-call. But this is wrong because ! // tags never return values (to the surrounding context) ! return new IndexContext(id, Integer.parseInt(index)); ! } ! catch (NumberFormatException nfe) ! { ! throw new AssemblyException(nfe); ! } ! } ! // access a method if methodName exists ! if (methodName != null) ! return new MethodContext(id, methodName); ! // (falling through is important!) ! // access a property if a propertyName exists ! if (propertyName != null && propertyName.length() > 0) ! // this is reported as an ordinary method access where the propertyName is ! // converted into a 'getter'-method name: convert first character of property name ! // to upper case and prepend 'get' ! // Note: This will be a getter-method because the tag implies that a return ! // value is expected. ! return new PropertyContext(id, propertyName); } throw new AssemblyException(new IllegalArgumentException("Wrong or missing attributes for tag.")); --- 90,167 ---- // decides whether we are in a static (className present) or dynamic context if (className != null) { ! try ! { ! Class klass = instantiateClass(className); ! // class name exists which means that we are in a static context. ! // so we may want to ... ! // access a static field if the fieldName exists ! if (fieldName != null) ! { ! try ! { ! return new ObjectContext(id, ! klass.getField(fieldName).get(null)); ! } ! catch (NoSuchFieldException nsfe) ! { ! throw new AssemblyException(nsfe); ! } ! catch (IllegalAccessException iae) ! { ! throw new AssemblyException(iae); ! } ! } ! // (falling through is important!) ! // run a constructor if methodName is "new" or null ! if (methodName == null || methodName.equals("new")) ! return new ConstructorContext(id, klass); ! // (falling through is important!) ! // run a static method on the given class (if methodName exists, which is implied already) ! return new StaticMethodContext(id, klass, methodName); ! // XXX: should fail if unexpected attributes are present? ! } ! catch (ClassNotFoundException cnfe) ! { ! throw new AssemblyException(cnfe); ! } } else { ! // className does not exist which means we are in the context of ! // some object and want to ... ! // access the get(int index) method if index != null ! if (index != null) ! { ! try ! { ! // Note: http://java.sun.com/products/jfc/tsc/articles/persistence3/ says ! // that will make up a get()-call. But this is wrong because ! // tags never return values (to the surrounding context) ! return new IndexContext(id, Integer.parseInt(index)); ! } ! catch (NumberFormatException nfe) ! { ! throw new AssemblyException(nfe); ! } ! } ! // access a method if methodName exists ! if (methodName != null) ! return new MethodContext(id, methodName); ! // (falling through is important!) ! // access a property if a propertyName exists ! if (propertyName != null && propertyName.length() > 0) ! // this is reported as an ordinary method access where the propertyName is ! // converted into a 'getter'-method name: convert first character of property name ! // to upper case and prepend 'get' ! // Note: This will be a getter-method because the tag implies that a return ! // value is expected. ! return new PropertyContext(id, propertyName); } throw new AssemblyException(new IllegalArgumentException("Wrong or missing attributes for tag.")); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/PersistenceParser.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/PersistenceParser.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/PersistenceParser.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/PersistenceParser.java Tue Jan 11 19:46:05 2011 *************** import org.xml.sax.helpers.DefaultHandle *** 62,485 **** */ public class PersistenceParser extends DefaultHandler implements Context { ! /** The ExceptionListener instance which is informed of non-critical parsing exceptions. ! */ ! private ExceptionListener exceptionListener; ! /** When an element was not usable all elements inside it should be skipped. ! * This is done by skipping startElement() and endElement() invocations whenever ! * this value is above 0. ! */ ! private int skipElement; ! /** Stores the Creator instances which can instantiate the appropriate handler implementation ! * for a given element. ! */ ! private HashMap handlerCreators = new HashMap(); ! /** Denotes the current ElementHandler. To avoid checking for null-values it is pre-assigned ! * with a DummyHandler instance which must not be used but acts as a root element. ! */ ! private ElementHandler currentHandler; ! /** The real root element that stores all objects created during parsing. ! * Package-private to avoid an accessor method. ! */ ! JavaHandler javaHandler; ! /** Stores the decoded objects. */ ! private List objects = new LinkedList(); ! /** The XMLDecoder instance that started this PersistenceParser */ ! private XMLDecoder decoder; ! /** Creates a PersistenceParser which reads XML data from the given InputStream, reports ! * exceptions to ExceptionListener instance, stores resulting object in the DecoderContext ! * and uses the given ClassLoader to resolve classes. ! * ! * @param inputStream ! * @param exceptionListener ! * @param decoderContext ! * @param cl ! */ ! public PersistenceParser( ! InputStream inputStream, ! ExceptionListener exceptionListener, ! ClassLoader cl, ! XMLDecoder decoder) ! { ! this.exceptionListener = exceptionListener; ! this.decoder = decoder; ! DummyHandler dummyHandler = new DummyHandler(); ! currentHandler = dummyHandler; ! javaHandler = new JavaHandler(dummyHandler, this, cl); ! SAXParserFactory factory = SAXParserFactory.newInstance(); ! SAXParser parser; ! try ! { ! parser = factory.newSAXParser(); ! } ! catch (ParserConfigurationException pce) ! { ! // should not happen when a parser is available because we did ! // not request any requirements on the XML parser ! throw (InternalError) new InternalError( ! "No SAX Parser available.").initCause( ! pce); ! } ! catch (SAXException saxe) ! { ! // should not happen when a parser is available because we did ! // not request any requirements on the XML parser ! throw (InternalError) new InternalError( ! "No SAX Parser available.").initCause( ! saxe); ! } ! // prepares a map of Creator instances which can instantiate a handler which is ! // appropriate for the tag that is used as a key for the Creator ! handlerCreators.put("java", new JavaHandlerCreator()); ! // calls methods (properties), constructors, access fields ! handlerCreators.put("object", new ObjectHandlerCreator()); ! handlerCreators.put("void", new VoidHandlerCreator()); ! handlerCreators.put("array", new ArrayHandlerCreator()); ! // these handler directly create an Object (or null) ! handlerCreators.put("class", new ClassHandlerCreator()); ! handlerCreators.put("null", new NullHandlerCreator()); ! handlerCreators.put("char", new CharHandlerCreator()); ! handlerCreators.put("string", new StringHandlerCreator()); ! handlerCreators.put("boolean", new BooleanHandlerCreator()); ! handlerCreators.put("byte", new ByteHandlerCreator()); ! handlerCreators.put("short", new ShortHandlerCreator()); ! handlerCreators.put("int", new IntHandlerCreator()); ! handlerCreators.put("long", new LongHandlerCreator()); ! handlerCreators.put("float", new FloatHandlerCreator()); ! handlerCreators.put("double", new DoubleHandlerCreator()); ! // parses the data and sends all exceptions to the ExceptionListener ! try ! { ! parser.parse(inputStream, this); ! } ! catch (SAXException saxe) ! { ! exceptionListener.exceptionThrown( ! new IllegalArgumentException("XML data not well-formed.")); ! } ! catch (IOException ioe) ! { ! exceptionListener.exceptionThrown(ioe); ! } ! } ! public void startElement( ! String uri, ! String localName, ! String qName, ! Attributes attributes) ! throws SAXException ! { ! /* The element is skipped if ! * a) the current handler has already failed or a previous error occured ! * which makes all children obsolete ! */ ! if (currentHandler.hasFailed() || skipElement > 0) ! { ! exceptionListener.exceptionThrown( ! new IllegalArgumentException( ! "Element unusable due to previous error: " + qName)); ! skipElement++; ! return; ! } ! /* b) Subelements are not allowed within the current ElementHandler. ! */ ! if (!currentHandler.isSubelementAllowed(qName)) ! { ! exceptionListener.exceptionThrown( ! new IllegalArgumentException( ! "Element is not allowed here: " + qName)); ! skipElement++; ! return; ! } ! /* c) The tag name is not a key in the map of Creator instances. This means that ! * either the XML data is of a newer version or simply contains a miss-spelled element. ! */ ! if (!handlerCreators.containsKey(qName)) ! { ! exceptionListener.exceptionThrown( ! new IllegalArgumentException( ! "Element unusable because tag is unknown: " + qName)); ! skipElement++; ! return; ! } ! // creates a new handler for the new element ! AbstractElementHandler handler = ! ((Creator) handlerCreators.get(qName)).createHandler( ! currentHandler); ! // makes it the current handler to receive character data ! currentHandler = handler; ! // starts the handler ! currentHandler.start(attributes, exceptionListener); ! } ! public void endElement(String uri, String localName, String qName) ! throws SAXException ! { ! // skips processing the current handler if we are parsing an element ! // which was marked invalid (in startElement() ) ! if (skipElement > 0) ! { ! skipElement--; ! return; ! } ! // invokes the handler's finishing method ! currentHandler.end(exceptionListener); ! // removes the current handler and reactivates its parent ! currentHandler = currentHandler.getParent(); ! } ! /** Transfers character data to the current handler ! */ ! public void characters(char[] ch, int start, int length) ! throws SAXException ! { ! // prevents sending character data of invalid elements ! if (skipElement > 0) ! return; ! currentHandler.characters(ch, start, length); ! } ! /** Creator interface provided a mechanism to instantiate ElementHandler instances ! * for the appropriate tag. ! * ! * @author Robert Schuster ! */ ! interface Creator ! { ! /** Creates an ElementHandler instance using the given ElementHandler as its parent. ! * ! * @param parent The parent ElementHandler of the result. ! * @return A new ElementHandler instance. ! */ ! AbstractElementHandler createHandler(ElementHandler parent); ! } ! class BooleanHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new BooleanHandler(parent); ! } ! } ! class ByteHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ByteHandler(parent); ! } ! } ! class ShortHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ShortHandler(parent); ! } ! } ! class IntHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new IntHandler(parent); ! } ! } ! class LongHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new LongHandler(parent); ! } ! } ! class FloatHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new FloatHandler(parent); ! } ! } ! class DoubleHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new DoubleHandler(parent); ! } ! } ! class CharHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new CharHandler(parent); ! } ! } ! class StringHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new StringHandler(parent); ! } ! } ! class JavaHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return javaHandler; ! } ! } ! class ObjectHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ObjectHandler(parent); ! } ! } ! class VoidHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new VoidHandler(parent); ! } ! } ! class ClassHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ClassHandler(parent); ! } ! } ! class NullHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new NullHandler(parent); ! } ! } ! class ArrayHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ArrayHandler(parent); ! } ! } ! /** Adds a decoded object to the Context. */ ! public void addParameterObject(Object o) throws AssemblyException ! { ! objects.add(o); ! } ! public void notifyStatement(Context outerContext) throws AssemblyException ! { ! // can be ignored because theis Context does not react to statement and expressions ! // differently ! } ! public Object endContext(Context outerContext) throws AssemblyException ! { ! return null; ! } ! public boolean subContextFailed() ! { ! // failing of subcontexts is no problem for the mother of all contexts ! return false; ! } ! public void set(int index, Object o) throws AssemblyException ! { ! // not supported ! throw new AssemblyException( ! new IllegalArgumentException("Set method is not allowed in decoder context.")); ! } ! public Object get(int index) throws AssemblyException ! { ! // not supported ! throw new AssemblyException( ! new IllegalArgumentException("Get method is not allowed in decoder context.")); ! } ! public Object getResult() ! { ! // returns the XMLDecoder instance which is requested by child contexts this way. ! // That is needed to invoke methods on the decoder. ! return decoder; ! } ! public void setId(String id) ! { ! exceptionListener.exceptionThrown(new IllegalArgumentException("id attribute is not allowed for tag.")); ! } ! public String getId() ! { ! // appears to have no id ! return null; ! } ! public boolean isStatement() ! { ! // this context is a statement by definition because it never returns anything to a parent because ! // there is no such parent (DummyContext does not count!) ! return true; ! } ! public void setStatement(boolean b) ! { ! // ignores that because this Context is always a statement ! } ! /** Returns an Iterator instance which returns the decoded objects. ! * ! * This method is used by the XMLDecoder directly. ! */ ! public Iterator iterator() ! { ! return objects.iterator(); ! } } --- 62,485 ---- */ public class PersistenceParser extends DefaultHandler implements Context { ! /** The ExceptionListener instance which is informed of non-critical parsing exceptions. ! */ ! private ExceptionListener exceptionListener; ! /** When an element was not usable all elements inside it should be skipped. ! * This is done by skipping startElement() and endElement() invocations whenever ! * this value is above 0. ! */ ! private int skipElement; ! /** Stores the Creator instances which can instantiate the appropriate handler implementation ! * for a given element. ! */ ! private HashMap handlerCreators = new HashMap(); ! /** Denotes the current ElementHandler. To avoid checking for null-values it is pre-assigned ! * with a DummyHandler instance which must not be used but acts as a root element. ! */ ! private ElementHandler currentHandler; ! /** The real root element that stores all objects created during parsing. ! * Package-private to avoid an accessor method. ! */ ! JavaHandler javaHandler; ! /** Stores the decoded objects. */ ! private List objects = new LinkedList(); ! /** The XMLDecoder instance that started this PersistenceParser */ ! private XMLDecoder decoder; ! /** Creates a PersistenceParser which reads XML data from the given InputStream, reports ! * exceptions to ExceptionListener instance, stores resulting object in the DecoderContext ! * and uses the given ClassLoader to resolve classes. ! * ! * @param inputStream ! * @param exceptionListener ! * @param decoderContext ! * @param cl ! */ ! public PersistenceParser( ! InputStream inputStream, ! ExceptionListener exceptionListener, ! ClassLoader cl, ! XMLDecoder decoder) ! { ! this.exceptionListener = exceptionListener; ! this.decoder = decoder; ! DummyHandler dummyHandler = new DummyHandler(); ! currentHandler = dummyHandler; ! javaHandler = new JavaHandler(dummyHandler, this, cl); ! SAXParserFactory factory = SAXParserFactory.newInstance(); ! SAXParser parser; ! try ! { ! parser = factory.newSAXParser(); ! } ! catch (ParserConfigurationException pce) ! { ! // should not happen when a parser is available because we did ! // not request any requirements on the XML parser ! throw (InternalError) new InternalError( ! "No SAX Parser available.").initCause( ! pce); ! } ! catch (SAXException saxe) ! { ! // should not happen when a parser is available because we did ! // not request any requirements on the XML parser ! throw (InternalError) new InternalError( ! "No SAX Parser available.").initCause( ! saxe); ! } ! // prepares a map of Creator instances which can instantiate a handler which is ! // appropriate for the tag that is used as a key for the Creator ! handlerCreators.put("java", new JavaHandlerCreator()); ! // calls methods (properties), constructors, access fields ! handlerCreators.put("object", new ObjectHandlerCreator()); ! handlerCreators.put("void", new VoidHandlerCreator()); ! handlerCreators.put("array", new ArrayHandlerCreator()); ! // these handler directly create an Object (or null) ! handlerCreators.put("class", new ClassHandlerCreator()); ! handlerCreators.put("null", new NullHandlerCreator()); ! handlerCreators.put("char", new CharHandlerCreator()); ! handlerCreators.put("string", new StringHandlerCreator()); ! handlerCreators.put("boolean", new BooleanHandlerCreator()); ! handlerCreators.put("byte", new ByteHandlerCreator()); ! handlerCreators.put("short", new ShortHandlerCreator()); ! handlerCreators.put("int", new IntHandlerCreator()); ! handlerCreators.put("long", new LongHandlerCreator()); ! handlerCreators.put("float", new FloatHandlerCreator()); ! handlerCreators.put("double", new DoubleHandlerCreator()); ! // parses the data and sends all exceptions to the ExceptionListener ! try ! { ! parser.parse(inputStream, this); ! } ! catch (SAXException saxe) ! { ! exceptionListener.exceptionThrown( ! new IllegalArgumentException("XML data not well-formed.")); ! } ! catch (IOException ioe) ! { ! exceptionListener.exceptionThrown(ioe); ! } ! } ! public void startElement( ! String uri, ! String localName, ! String qName, ! Attributes attributes) ! throws SAXException ! { ! /* The element is skipped if ! * a) the current handler has already failed or a previous error occured ! * which makes all children obsolete ! */ ! if (currentHandler.hasFailed() || skipElement > 0) ! { ! exceptionListener.exceptionThrown( ! new IllegalArgumentException( ! "Element unusable due to previous error: " + qName)); ! skipElement++; ! return; ! } ! /* b) Subelements are not allowed within the current ElementHandler. ! */ ! if (!currentHandler.isSubelementAllowed(qName)) ! { ! exceptionListener.exceptionThrown( ! new IllegalArgumentException( ! "Element is not allowed here: " + qName)); ! skipElement++; ! return; ! } ! /* c) The tag name is not a key in the map of Creator instances. This means that ! * either the XML data is of a newer version or simply contains a miss-spelled element. ! */ ! if (!handlerCreators.containsKey(qName)) ! { ! exceptionListener.exceptionThrown( ! new IllegalArgumentException( ! "Element unusable because tag is unknown: " + qName)); ! skipElement++; ! return; ! } ! // creates a new handler for the new element ! AbstractElementHandler handler = ! ((Creator) handlerCreators.get(qName)).createHandler( ! currentHandler); ! // makes it the current handler to receive character data ! currentHandler = handler; ! // starts the handler ! currentHandler.start(attributes, exceptionListener); ! } ! public void endElement(String uri, String localName, String qName) ! throws SAXException ! { ! // skips processing the current handler if we are parsing an element ! // which was marked invalid (in startElement() ) ! if (skipElement > 0) ! { ! skipElement--; ! return; ! } ! // invokes the handler's finishing method ! currentHandler.end(exceptionListener); ! // removes the current handler and reactivates its parent ! currentHandler = currentHandler.getParent(); ! } ! /** Transfers character data to the current handler ! */ ! public void characters(char[] ch, int start, int length) ! throws SAXException ! { ! // prevents sending character data of invalid elements ! if (skipElement > 0) ! return; ! currentHandler.characters(ch, start, length); ! } ! /** Creator interface provided a mechanism to instantiate ElementHandler instances ! * for the appropriate tag. ! * ! * @author Robert Schuster ! */ ! interface Creator ! { ! /** Creates an ElementHandler instance using the given ElementHandler as its parent. ! * ! * @param parent The parent ElementHandler of the result. ! * @return A new ElementHandler instance. ! */ ! AbstractElementHandler createHandler(ElementHandler parent); ! } ! class BooleanHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new BooleanHandler(parent); ! } ! } ! class ByteHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ByteHandler(parent); ! } ! } ! class ShortHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ShortHandler(parent); ! } ! } ! class IntHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new IntHandler(parent); ! } ! } ! class LongHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new LongHandler(parent); ! } ! } ! class FloatHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new FloatHandler(parent); ! } ! } ! class DoubleHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new DoubleHandler(parent); ! } ! } ! class CharHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new CharHandler(parent); ! } ! } ! class StringHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new StringHandler(parent); ! } ! } ! class JavaHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return javaHandler; ! } ! } ! class ObjectHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ObjectHandler(parent); ! } ! } ! class VoidHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new VoidHandler(parent); ! } ! } ! class ClassHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ClassHandler(parent); ! } ! } ! class NullHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new NullHandler(parent); ! } ! } ! class ArrayHandlerCreator implements Creator ! { ! public AbstractElementHandler createHandler(ElementHandler parent) ! { ! return new ArrayHandler(parent); ! } ! } ! /** Adds a decoded object to the Context. */ ! public void addParameterObject(Object o) throws AssemblyException ! { ! objects.add(o); ! } ! public void notifyStatement(Context outerContext) throws AssemblyException ! { ! // can be ignored because theis Context does not react to statement and expressions ! // differently ! } ! public Object endContext(Context outerContext) throws AssemblyException ! { ! return null; ! } ! public boolean subContextFailed() ! { ! // failing of subcontexts is no problem for the mother of all contexts ! return false; ! } ! public void set(int index, Object o) throws AssemblyException ! { ! // not supported ! throw new AssemblyException( ! new IllegalArgumentException("Set method is not allowed in decoder context.")); ! } ! public Object get(int index) throws AssemblyException ! { ! // not supported ! throw new AssemblyException( ! new IllegalArgumentException("Get method is not allowed in decoder context.")); ! } ! public Object getResult() ! { ! // returns the XMLDecoder instance which is requested by child contexts this way. ! // That is needed to invoke methods on the decoder. ! return decoder; ! } ! public void setId(String id) ! { ! exceptionListener.exceptionThrown(new IllegalArgumentException("id attribute is not allowed for tag.")); ! } ! public String getId() ! { ! // appears to have no id ! return null; ! } ! public boolean isStatement() ! { ! // this context is a statement by definition because it never returns anything to a parent because ! // there is no such parent (DummyContext does not count!) ! return true; ! } ! public void setStatement(boolean b) ! { ! // ignores that because this Context is always a statement ! } ! /** Returns an Iterator instance which returns the decoded objects. ! * ! * This method is used by the XMLDecoder directly. ! */ ! public Iterator iterator() ! { ! return objects.iterator(); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/PropertyContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/PropertyContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/PropertyContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/PropertyContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class PropertyContext extends AbstractOb *** 74,80 **** throw new AssemblyException(new IllegalArgumentException("Property attribut allows zero or one argument only.")); argument = o; ! setStatement(true); prefix = "set"; } --- 74,80 ---- throw new AssemblyException(new IllegalArgumentException("Property attribut allows zero or one argument only.")); argument = o; ! setStatement(true); prefix = "set"; } *************** class PropertyContext extends AbstractOb *** 91,98 **** if (outerObject == null) throw new AssemblyException(new NullPointerException("No object to access property " ! + propertyName)); ! // converts property name into a method name String methodName = prefix + propertyName.substring(0, 1).toUpperCase() --- 91,98 ---- if (outerObject == null) throw new AssemblyException(new NullPointerException("No object to access property " ! + propertyName)); ! // converts property name into a method name String methodName = prefix + propertyName.substring(0, 1).toUpperCase() *************** class PropertyContext extends AbstractOb *** 103,125 **** try { ! Method method = MethodFinder.getMethod(outerObject.getClass(), ! methodName, args); ! // stores the result whether it is available or not ! setObject(method.invoke(outerObject, args)); } catch (NoSuchMethodException nsme) { ! throw new AssemblyException(nsme); } catch (InvocationTargetException ite) { ! throw new AssemblyException(ite.getCause()); } catch (IllegalAccessException iae) { ! throw new AssemblyException(iae); } } --- 103,125 ---- try { ! Method method = MethodFinder.getMethod(outerObject.getClass(), ! methodName, args); ! // stores the result whether it is available or not ! setObject(method.invoke(outerObject, args)); } catch (NoSuchMethodException nsme) { ! throw new AssemblyException(nsme); } catch (InvocationTargetException ite) { ! throw new AssemblyException(ite.getCause()); } catch (IllegalAccessException iae) { ! throw new AssemblyException(iae); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ShortHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ShortHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/ShortHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/ShortHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/SimpleHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/SimpleHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/SimpleHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/SimpleHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** abstract class SimpleHandler extends Abs *** 65,71 **** protected final Context startElement(Attributes attributes, ExceptionListener exceptionListener) throws AssemblyException { ! // note: simple elements should not have any attributes. We inform // the user of this syntactical but uncritical problem by sending // an IllegalArgumentException for each unneccessary attribute --- 65,71 ---- protected final Context startElement(Attributes attributes, ExceptionListener exceptionListener) throws AssemblyException { ! // note: simple elements should not have any attributes. We inform // the user of this syntactical but uncritical problem by sending // an IllegalArgumentException for each unneccessary attribute *************** abstract class SimpleHandler extends Abs *** 79,85 **** + "' discarded."); exceptionListener.exceptionThrown(e); } ! return context = new ObjectContext(); } --- 79,85 ---- + "' discarded."); exceptionListener.exceptionThrown(e); } ! return context = new ObjectContext(); } *************** abstract class SimpleHandler extends Abs *** 89,99 **** // reports the number when the character data can be parsed try { ! context.setObject(parse(characters)); } catch (NumberFormatException nfe) { ! throw new AssemblyException(nfe); } } --- 89,99 ---- // reports the number when the character data can be parsed try { ! context.setObject(parse(characters)); } catch (NumberFormatException nfe) { ! throw new AssemblyException(nfe); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/StaticMethodContext.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/StaticMethodContext.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/StaticMethodContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/StaticMethodContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class StaticMethodContext extends Abstra *** 75,95 **** try { ! Method method = MethodFinder.getMethod(klass, methodName, args); ! return method.invoke(null, args); } catch (NoSuchMethodException nsme) { ! throw new AssemblyException(nsme); } catch (InvocationTargetException ite) { ! // rethrows the reason for the InvocationTargetsException (ie. the exception in the called code) ! throw new AssemblyException(ite.getCause()); } catch (IllegalAccessException iae) { ! throw new AssemblyException(iae); } } } --- 75,95 ---- try { ! Method method = MethodFinder.getMethod(klass, methodName, args); ! return method.invoke(null, args); } catch (NoSuchMethodException nsme) { ! throw new AssemblyException(nsme); } catch (InvocationTargetException ite) { ! // rethrows the reason for the InvocationTargetsException (ie. the exception in the called code) ! throw new AssemblyException(ite.getCause()); } catch (IllegalAccessException iae) { ! throw new AssemblyException(iae); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/StringHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/StringHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/StringHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/StringHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/VoidHandler.java gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/VoidHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/decoder/VoidHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/decoder/VoidHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class VoidHandler extends Abstrac *** 86,92 **** return new ConstructorContext(id, klass); // (falling through is important!) ! // run a static method on the given class (if methodName exists, which is implied already) return new StaticMethodContext(id, klass, methodName); } catch (ClassNotFoundException cnfe) --- 86,92 ---- return new ConstructorContext(id, klass); // (falling through is important!) ! // run a static method on the given class (if methodName exists, which is implied already) return new StaticMethodContext(id, klass, methodName); } catch (ClassNotFoundException cnfe) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/editors/ColorEditor.java gcc-4.6.0/libjava/classpath/gnu/java/beans/editors/ColorEditor.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/editors/ColorEditor.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/editors/ColorEditor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.beans.PropertyEditorSupport; *** 50,100 **** **/ public class ColorEditor extends PropertyEditorSupport { ! Color[] stdColors = {Color.black,Color.blue,Color.cyan, ! Color.darkGray,Color.gray,Color.green, ! Color.lightGray,Color.magenta,Color.orange, ! Color.pink,Color.red,Color.white, ! Color.yellow}; ! String[] stdColorNames = {"black","blue","cyan", ! "dark gray","gray","green", ! "light gray","magenta","orange", ! "pink","red","white", ! "yellow"}; ! /** setAsText for Color checks for standard color names ! ** and then checks for a #RRGGBB value or just RRGGBB, ! ** both in hex. ! **/ ! public void setAsText(String val) throws IllegalArgumentException { ! if(val.length() == 0) { ! throw new IllegalArgumentException("Tried to set empty value!"); ! } ! for(int i=0;iThe ClassPersistenceDelegate creates * Expression instances which denote class resolutions.

          ! * *

          The class resolution is always the last step when serializing a tree * of objects. Due to the recursive nature of the algorithm we need a way * to end the recursion. This is achieved by the implementation of this --- 43,49 ---- /**

          The ClassPersistenceDelegate creates * Expression instances which denote class resolutions.

          ! * *

          The class resolution is always the last step when serializing a tree * of objects. Due to the recursive nature of the algorithm we need a way * to end the recursion. This is achieved by the implementation of this *************** import java.beans.PersistenceDelegate; *** 52,59 **** * we call getClass() on a String.class instance. * This in turn lead to the resolution of the String class which is always * encoded as "".getClass(). Finally the Encoder ! * treats strings in a special way so that the recursion ends here. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class ClassPersistenceDelegate extends PersistenceDelegate --- 52,59 ---- * we call getClass() on a String.class instance. * This in turn lead to the resolution of the String class which is always * encoded as "".getClass(). Finally the Encoder ! * treats strings in a special way so that the recursion ends here. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class ClassPersistenceDelegate extends PersistenceDelegate *************** public class ClassPersistenceDelegate ex *** 62,68 **** protected Expression instantiate(Object oldInstance, Encoder out) { Class oldClass = (Class) oldInstance; ! // Due to the special handling of String instances in the Encoder // this Expression does not lead to further class resolutions. if (oldClass == String.class) --- 62,68 ---- protected Expression instantiate(Object oldInstance, Encoder out) { Class oldClass = (Class) oldInstance; ! // Due to the special handling of String instances in the Encoder // this Expression does not lead to further class resolutions. if (oldClass == String.class) *************** public class ClassPersistenceDelegate ex *** 72,78 **** if (oldClass == Class.class) return new Expression(oldClass, String.class, "getClass", null); ! // This Expression will lead to the class resolution of Class.class. return new Expression(oldClass, Class.class, "forName", new Object[] { oldClass.getName() }); } --- 72,78 ---- if (oldClass == Class.class) return new Expression(oldClass, String.class, "getClass", null); ! // This Expression will lead to the class resolution of Class.class. return new Expression(oldClass, Class.class, "forName", new Object[] { oldClass.getName() }); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java Tue Jan 11 19:46:05 2011 *************** *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Iterator; *** 49,58 **** /**

          A PersistenceDelegate implementation that calls * the no-argument constructor to create the Collection instance and * uses an iterator to add all the objects it reaches through it.

          ! * *

          It is used for Set and List * implementations.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class CollectionPersistenceDelegate extends PersistenceDelegate --- 49,58 ---- /**

          A PersistenceDelegate implementation that calls * the no-argument constructor to create the Collection instance and * uses an iterator to add all the objects it reaches through it.

          ! * *

          It is used for Set and List * implementations.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class CollectionPersistenceDelegate extends PersistenceDelegate diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/Context.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/Context.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/Context.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/Context.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder; *** 41,60 **** /** A Contect object describes the current state * and the call number while processing the original object * tree in the {@link ScanEngine}. ! * *

          The class allows to distinguish the different calling states * and is neccessary for the child element skipping feature of ! * the {@link GenericScannerState}.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ public class Context { private String state; ! private int call; ! Context(String newState, int newCall) { state = newState; --- 41,60 ---- /** A Contect object describes the current state * and the call number while processing the original object * tree in the {@link ScanEngine}. ! * *

          The class allows to distinguish the different calling states * and is neccessary for the child element skipping feature of ! * the {@link GenericScannerState}.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ public class Context { private String state; ! private int call; ! Context(String newState, int newCall) { state = newState; *************** public class Context *** 66,86 **** int hc = 7; hc = 31 * hc + state.hashCode(); hc = 31 * hc + call; ! return hc; } ! public boolean equals(Object o) { if (!(o instanceof Context)) return false; ! Context that = (Context) o; ! return state.equals(that.state) && call == that.call; } ! public String toString() { return "Context [state=" + state + ", call=" + call + "]"; --- 66,86 ---- int hc = 7; hc = 31 * hc + state.hashCode(); hc = 31 * hc + call; ! return hc; } ! public boolean equals(Object o) { if (!(o instanceof Context)) return false; ! Context that = (Context) o; ! return state.equals(that.state) && call == that.call; } ! public String toString() { return "Context [state=" + state + ", call=" + call + "]"; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/GenericScannerState.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/GenericScannerState.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/GenericScannerState.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/GenericScannerState.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.beans.encoder.elements.S *** 60,71 **** * This class is a {@link ScannerState} implementation that creates * suitable {@link gnu.java.beans.encoder.elements.Element} instances * for each transition variant. ! * *

          Furthermore it can optionally skip a certain number of child ! * elements. The algorithm can cope with the fact that one * GenericScannerState instance may be called at * different levels of recursions.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ class GenericScannerState extends ScannerState --- 60,71 ---- * This class is a {@link ScannerState} implementation that creates * suitable {@link gnu.java.beans.encoder.elements.Element} instances * for each transition variant. ! * *

          Furthermore it can optionally skip a certain number of child ! * elements. The algorithm can cope with the fact that one * GenericScannerState instance may be called at * different levels of recursions.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ class GenericScannerState extends ScannerState *************** class GenericScannerState extends Scanne *** 89,107 **** if (skipElements > 0) skipValues = new HashMap(); } ! protected void enterImpl(Context ctx) { if (skipValues != null) { Integer skip = (Integer) skipValues.get(ctx); ! if (skip == null) { skip = Integer.valueOf(initialSkipElements); skipValues.put(ctx, skip); } ! skipElements = skip.intValue(); } } --- 89,107 ---- if (skipElements > 0) skipValues = new HashMap(); } ! protected void enterImpl(Context ctx) { if (skipValues != null) { Integer skip = (Integer) skipValues.get(ctx); ! if (skip == null) { skip = Integer.valueOf(initialSkipElements); skipValues.put(ctx, skip); } ! skipElements = skip.intValue(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/IgnoringScannerState.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/IgnoringScannerState.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/IgnoringScannerState.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/IgnoringScannerState.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder; *** 40,46 **** /** A special {@link ScannerState} implementation that ignores all child * elements. ! * *

          Consider the call hierarchy: * * methodInvocation --- 40,46 ---- /** A special {@link ScannerState} implementation that ignores all child * elements. ! * *

          Consider the call hierarchy: * * methodInvocation *************** package gnu.java.beans.encoder; *** 50,65 **** * classResolution * *

          ! * *

          When the ignoring state is active one can filter the elements of * one level. One has to set up the state machine that a transition * via "class resolution" from a state that was reached via "object * instantation" reaches an IgnoringScannerState.

          ! * *

          Setting the default successor of a IgnoringScannerState * to itself causes all elements of the call hierarchy to be skipped ! * until another state is reached by going back.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 50,65 ---- * classResolution *
          *

          ! * *

          When the ignoring state is active one can filter the elements of * one level. One has to set up the state machine that a transition * via "class resolution" from a state that was reached via "object * instantation" reaches an IgnoringScannerState.

          ! * *

          Setting the default successor of a IgnoringScannerState * to itself causes all elements of the call hierarchy to be skipped ! * until another state is reached by going back.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ *************** class IgnoringScannerState extends Scann *** 125,133 **** void objectReference(ObjectId id) { } ! void end() { } ! } --- 125,133 ---- void objectReference(ObjectId id) { } ! void end() { } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java Tue Jan 11 19:46:05 2011 *************** *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/ObjectId.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/ObjectId.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/ObjectId.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/ObjectId.java Tue Jan 11 19:46:05 2011 *************** import java.util.HashMap; *** 45,51 **** * ObjectId provides an object identification mechanism which gives each object * a name in the form <class><Nameindex>. *

          ! * *

          * Each id can be in an unused state which means that only one instance of the * object is in use and a special id is not needed. Certain {@link --- 45,51 ---- * ObjectId provides an object identification mechanism which gives each object * a name in the form <class><Nameindex>. *

          ! * *

          * Each id can be in an unused state which means that only one instance of the * object is in use and a special id is not needed. Certain {@link *************** import java.util.HashMap; *** 57,63 **** * The second user should then invoke the {@link #init} method to generate the * identification string and bring the id in the 'used' state. *

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class ObjectId --- 57,63 ---- * The second user should then invoke the {@link #init} method to generate the * identification string and bring the id in the 'used' state. *

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class ObjectId diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.beans.PersistenceDelegate; *** 44,50 **** /** * A shared PersistenceDelegate implementation for all primitive types. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class PrimitivePersistenceDelegate extends PersistenceDelegate --- 44,50 ---- /** * A shared PersistenceDelegate implementation for all primitive types. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class PrimitivePersistenceDelegate extends PersistenceDelegate *************** public class PrimitivePersistenceDelegat *** 70,74 **** out.writeExpression(new Expression(oldInstance, oldInstance.getClass(), "new", new Object[] { oldInstance.toString() })); } ! } --- 70,74 ---- out.writeExpression(new Expression(oldInstance, oldInstance.getClass(), "new", new Object[] { oldInstance.toString() })); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/ReportingScannerState.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/ReportingScannerState.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/ReportingScannerState.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/ReportingScannerState.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder; *** 42,48 **** * A ScannerState implementation that prints useful details * about its arguments. Use it when the XML encoding does not work correctly * and you want to find out how things relate to each other. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ class ReportingScannerState extends ScannerState --- 42,48 ---- * A ScannerState implementation that prints useful details * about its arguments. Use it when the XML encoding does not work correctly * and you want to find out how things relate to each other. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ class ReportingScannerState extends ScannerState *************** class ReportingScannerState extends Scan *** 50,61 **** void methodInvocation(String methodName) { ! System.out.println("methodInvocation: " + methodName + "()"); } void staticMethodInvocation(String className, String methodName) { ! System.out.println("staticMethodInvocation: " + className + "." + methodName + "()"); } void staticFieldAccess(String className, String fieldName) --- 50,61 ---- void methodInvocation(String methodName) { ! System.out.println("methodInvocation: " + methodName + "()"); } void staticMethodInvocation(String className, String methodName) { ! System.out.println("staticMethodInvocation: " + className + "." + methodName + "()"); } void staticFieldAccess(String className, String fieldName) *************** class ReportingScannerState extends Scan *** 65,81 **** void classResolution(String className) { ! System.out.println("classResolution: " + className); } void objectInstantiation(String className, ObjectId objectId) { ! System.out.println("objectInstantiation: " + className); } void primitiveInstantiation(String primitiveName, String valueAsString) { ! System.out.println("primitiveInstantiation: (" + primitiveName + ") " + valueAsString); } void objectArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId) --- 65,81 ---- void classResolution(String className) { ! System.out.println("classResolution: " + className); } void objectInstantiation(String className, ObjectId objectId) { ! System.out.println("objectInstantiation: " + className); } void primitiveInstantiation(String primitiveName, String valueAsString) { ! System.out.println("primitiveInstantiation: (" + primitiveName + ") " + valueAsString); } void objectArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId) *************** class ReportingScannerState extends Scan *** 90,116 **** void arraySet(String indexAsString) { ! System.out.println("arraySet: " + indexAsString); } void arrayGet(String indexAsString) { ! System.out.println("arrayGet: " + indexAsString); } void listGet() { ! System.out.println("listGet"); } void listSet() { ! System.out.println("listSet"); } void nullObject() { ! System.out.println("nullObject"); } void stringReference(String string) --- 90,116 ---- void arraySet(String indexAsString) { ! System.out.println("arraySet: " + indexAsString); } void arrayGet(String indexAsString) { ! System.out.println("arrayGet: " + indexAsString); } void listGet() { ! System.out.println("listGet"); } void listSet() { ! System.out.println("listSet"); } void nullObject() { ! System.out.println("nullObject"); } void stringReference(String string) *************** class ReportingScannerState extends Scan *** 125,131 **** void end() { ! System.out.println("-close"); } ! } --- 125,131 ---- void end() { ! System.out.println("-close"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/Root.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/Root.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/Root.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/Root.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.beans.encoder.elements.E *** 46,59 **** /**

          Root provides a simple interface to a tree of * objects.

          ! * *

          Using an instance of this class a logical representation of * the real object tree that is serialized can be built. When the * actual data should be written as XML Root and * {@link gnu.java.beans.encoder.elements.Element} class can provide * context information which is used to write the best fitting * XML representation.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class Root --- 46,59 ---- /**

          Root provides a simple interface to a tree of * objects.

          ! * *

          Using an instance of this class a logical representation of * the real object tree that is serialized can be built. When the * actual data should be written as XML Root and * {@link gnu.java.beans.encoder.elements.Element} class can provide * context information which is used to write the best fitting * XML representation.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class Root *************** public class Root *** 61,67 **** private Stack parents = new Stack(); private Element rootElement, current; ! private boolean started; public Root() --- 61,67 ---- private Stack parents = new Stack(); private Element rootElement, current; ! private boolean started; public Root() *************** public class Root *** 70,79 **** } /**

          Adds another child element to the tree.

          ! * *

          The new element automatically becomes the current * element.

          ! * * @param elem The new child element. */ public void addChild(Element elem) --- 70,79 ---- } /**

          Adds another child element to the tree.

          ! * *

          The new element automatically becomes the current * element.

          ! * * @param elem The new child element. */ public void addChild(Element elem) *************** public class Root *** 88,94 **** *

          Marks that the end of the current element * is reached and that no more childs are added to * it.

          ! * *

          The behavior is to return to the nearest parent * element.

          */ --- 88,94 ---- *

          Marks that the end of the current element * is reached and that no more childs are added to * it.

          ! * *

          The behavior is to return to the nearest parent * element.

          */ *************** public class Root *** 100,106 **** /** *

          Goes back to the nearest parent element but * deletes the just created child.

          ! * *

          This is used if something went wrong while * processing the child element's {@link java.beans.Expression} * or {@link java.beans.Statement}.

          --- 100,106 ---- /** *

          Goes back to the nearest parent element but * deletes the just created child.

          ! * *

          This is used if something went wrong while * processing the child element's {@link java.beans.Expression} * or {@link java.beans.Statement}.

          *************** public class Root *** 117,125 **** *

          Traverses the elements in the object tree * and creates their XML representation in the output * stream of the given {@link Writer}.

          ! * *

          Finally the Writer is flushed.

          ! * * @param writer The Writer instance that generates the XML representation. */ public void traverse(Writer writer) --- 117,125 ---- *

          Traverses the elements in the object tree * and creates their XML representation in the output * stream of the given {@link Writer}.

          ! * *

          Finally the Writer is flushed.

          ! * * @param writer The Writer instance that generates the XML representation. */ public void traverse(Writer writer) *************** public class Root *** 130,145 **** rootElement.writeStart(writer); } started = true; ! traverse(writer, rootElement.iterator()); ! rootElement.clear(); ! writer.flush(); } /** Writes the closing element and closes the {@link Writer} ! * * @param writer The Writer instance that generates the XML representation. */ public void close(Writer writer) --- 130,145 ---- rootElement.writeStart(writer); } started = true; ! traverse(writer, rootElement.iterator()); ! rootElement.clear(); ! writer.flush(); } /** Writes the closing element and closes the {@link Writer} ! * * @param writer The Writer instance that generates the XML representation. */ public void close(Writer writer) *************** public class Root *** 149,155 **** } /** Recursively traverses the object tree. ! * * @param writer The Writer instance that generates the XML representation. * @param ite An Iterator returning Element instances. */ --- 149,155 ---- } /** Recursively traverses the object tree. ! * * @param writer The Writer instance that generates the XML representation. * @param ite An Iterator returning Element instances. */ *************** public class Root *** 163,181 **** traverse(writer, e.iterator()); e.writeEnd(writer); ! e.clear(); } } /**

          A special Element implementation that represents the * encoder's context.

          ! * *

          This element is written only once per Writer.

          ! * *

          It is assumed that this element is never empty to simplify * the implementation.

          ! * * @author Robert Schuster (robertschuster@fsfe.org); * */ --- 163,181 ---- traverse(writer, e.iterator()); e.writeEnd(writer); ! e.clear(); } } /**

          A special Element implementation that represents the * encoder's context.

          ! * *

          This element is written only once per Writer.

          ! * *

          It is assumed that this element is never empty to simplify * the implementation.

          ! * * @author Robert Schuster (robertschuster@fsfe.org); * */ *************** public class Root *** 187,193 **** new String[] { System.getProperty("java.version"), XMLEncoder.class.getName() }, false); } ! public void writeEnd(Writer writer) { writer.writeEnd(false); --- 187,193 ---- new String[] { System.getProperty("java.version"), XMLEncoder.class.getName() }, false); } ! public void writeEnd(Writer writer) { writer.writeEnd(false); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/ScanEngine.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/ScanEngine.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/ScanEngine.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/ScanEngine.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ScanEngine.java -- Scans the input and generates an object tree that can be written as XML. Copyright (C) 2005 Free Software Foundation, Inc. --- 1,4 ---- ! /* ScanEngine.java -- Scans the input and generates an object tree that can be written as XML. Copyright (C) 2005 Free Software Foundation, Inc. *************** import java.util.Stack; *** 54,60 **** * {@link #writeObject} method and feeds it to a state machine. The * state machine then constructs and object tree which is finally * written as XML by a {@link Writer} implementation.

          ! * *

          How does it work?

          *

          The ScanEngine sits below the {@link java.beans.XMLEncoder} * class and is called by it exclusively. The XMLEncoder sends --- 54,60 ---- * {@link #writeObject} method and feeds it to a state machine. The * state machine then constructs and object tree which is finally * written as XML by a {@link Writer} implementation.

          ! * *

          How does it work?

          *

          The ScanEngine sits below the {@link java.beans.XMLEncoder} * class and is called by it exclusively. The XMLEncoder sends *************** import java.util.Stack; *** 65,71 **** * Furthermore the meaning of certain Expressions differs * depending on the enclosing elements or the inner elements have to be * simply discarded.

          ! * *

          To cope with this state dependant nature the ScanEngine * contains a state machine which is programmed statically (no adjustments are * needed, all ScanEngine engines use the same setup). The --- 65,71 ---- * Furthermore the meaning of certain Expressions differs * depending on the enclosing elements or the inner elements have to be * simply discarded.

          ! * *

          To cope with this state dependant nature the ScanEngine * contains a state machine which is programmed statically (no adjustments are * needed, all ScanEngine engines use the same setup). The *************** import java.util.Stack; *** 83,89 **** * the current state and then the event method is called in the new current * state. The last step allows the state instance to do something meaningful * to the object tree.

          ! * *

          The state machine knows the concept of returning to the previous * state. This is done using a stack of states which is popped every * time a call to writeStatement, writeExpression --- 83,89 ---- * the current state and then the event method is called in the new current * state. The last step allows the state instance to do something meaningful * to the object tree.

          ! * *

          The state machine knows the concept of returning to the previous * state. This is done using a stack of states which is popped every * time a call to writeStatement, writeExpression *************** import java.util.Stack; *** 93,99 **** * ScanEngine itself to decide when an expression or statement * ended. This can only be done in case of {@link #writeObject} calls because * they are not nested.

          ! * *

          When the XML persistence mechanism reaches an object twice (and more) * it should generate an XML element using the "idref" attribute and add * an "id" attribute to its first instantiation. This complicates things a bit --- 93,99 ---- * ScanEngine itself to decide when an expression or statement * ended. This can only be done in case of {@link #writeObject} calls because * they are not nested.

          ! * *

          When the XML persistence mechanism reaches an object twice (and more) * it should generate an XML element using the "idref" attribute and add * an "id" attribute to its first instantiation. This complicates things a bit *************** import java.util.Stack; *** 106,117 **** * instance is stored in the ScanEngine and gets cleared whenever * the {@link #flush} method is called. This method also writes the currently * built object tree and generates the XML representation.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class ScanEngine { ! /** Change this to true to let the ScanEngine print state transition * information. */ --- 106,117 ---- * instance is stored in the ScanEngine and gets cleared whenever * the {@link #flush} method is called. This method also writes the currently * built object tree and generates the XML representation.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class ScanEngine { ! /** Change this to true to let the ScanEngine print state transition * information. */ *************** public class ScanEngine *** 145,151 **** /** Stores the relationship between objects and their {@link ObjectId} instance. */ IdentityHashMap objects = new IdentityHashMap(); ! public ScanEngine(OutputStream os) { // TODO: Provide another Writer implementation (e.g. one that does not use --- 145,151 ---- /** Stores the relationship between objects and their {@link ObjectId} instance. */ IdentityHashMap objects = new IdentityHashMap(); ! public ScanEngine(OutputStream os) { // TODO: Provide another Writer implementation (e.g. one that does not use *************** public class ScanEngine *** 182,188 **** "newObj0"); conf = register("newObj0", new GenericScannerState(root)); conf.setDefaultSuccessor("ignoreAll"); ! // Simply use the start state to encode method invocations inside of // objects. conf.putSuccessor(ScannerState.TRANSITION_METHOD_INVOCATION, "start"); --- 182,188 ---- "newObj0"); conf = register("newObj0", new GenericScannerState(root)); conf.setDefaultSuccessor("ignoreAll"); ! // Simply use the start state to encode method invocations inside of // objects. conf.putSuccessor(ScannerState.TRANSITION_METHOD_INVOCATION, "start"); *************** public class ScanEngine *** 203,216 **** conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll"); conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "ignoreAll"); ! // Get here when a value is set in the array. register("newOArrayGet", conf = new GenericScannerState(root)); ! conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "newOArrayGet_ignoreFirstInteger"); ! // "newArrayGet_ignoreFirstInteger" is set up mostly identical like the "start" // state. Otherwise things would not behave the same when done inside // arrays. --- 203,216 ---- conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll"); conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "ignoreAll"); ! // Get here when a value is set in the array. register("newOArrayGet", conf = new GenericScannerState(root)); ! conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "newOArrayGet_ignoreFirstInteger"); ! // "newArrayGet_ignoreFirstInteger" is set up mostly identical like the "start" // state. Otherwise things would not behave the same when done inside // arrays. *************** public class ScanEngine *** 223,243 **** "newPrimitiveArray"); conf.putSuccessor(ScannerState.TRANSITION_OBJECT_ARRAY_INSTANTIATION, "newObjectArray"); ! conf = register("newOArrayGet_ignoreFirstInteger", new GenericScannerState(root, 1)); ! // In non-int primitive arrays class resolutions can happen // but they should be ignored. conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll"); ! // Spurious object and string references occur when setting array // elements. This suppresses them. conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "ignoreAll"); conf.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE, "ignoreAll"); conf.putSuccessor(ScannerState.TRANSITION_STRING_REFERENCE, "ignoreAll"); ! conf.setDefaultSuccessor("start"); // Primitive arrays use the ARRAY_SET transition to create setting the --- 223,243 ---- "newPrimitiveArray"); conf.putSuccessor(ScannerState.TRANSITION_OBJECT_ARRAY_INSTANTIATION, "newObjectArray"); ! conf = register("newOArrayGet_ignoreFirstInteger", new GenericScannerState(root, 1)); ! // In non-int primitive arrays class resolutions can happen // but they should be ignored. conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll"); ! // Spurious object and string references occur when setting array // elements. This suppresses them. conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "ignoreAll"); conf.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE, "ignoreAll"); conf.putSuccessor(ScannerState.TRANSITION_STRING_REFERENCE, "ignoreAll"); ! conf.setDefaultSuccessor("start"); // Primitive arrays use the ARRAY_SET transition to create setting the *************** public class ScanEngine *** 252,262 **** conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll"); conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "ignoreAll"); ! conf = register("newPArraySet", new GenericScannerState(root)); conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "newPArraySet_ignoreFirstInteger"); ! // Primitive arrays ignore all kinds of non-primitive object information. conf.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE, "ignoreAll"); --- 252,262 ---- conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll"); conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "ignoreAll"); ! conf = register("newPArraySet", new GenericScannerState(root)); conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, "newPArraySet_ignoreFirstInteger"); ! // Primitive arrays ignore all kinds of non-primitive object information. conf.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE, "ignoreAll"); *************** public class ScanEngine *** 271,281 **** conf = register("newPArraySet_ignoreFirstInteger", new GenericScannerState(root, 1)); ! // In non-int primitive arrays class resolutions can happen // but they should be ignored. conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll"); ! // Spurious object and string references occur when setting array // elements. This suppresses them. conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, --- 271,281 ---- conf = register("newPArraySet_ignoreFirstInteger", new GenericScannerState(root, 1)); ! // In non-int primitive arrays class resolutions can happen // but they should be ignored. conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll"); ! // Spurious object and string references occur when setting array // elements. This suppresses them. conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION, *************** public class ScanEngine *** 287,293 **** } /** Registers a ScannerState under a certain name. ! * * @param name Name of the state * @param state The ScannerState instance. * @return The second argument. --- 287,293 ---- } /** Registers a ScannerState under a certain name. ! * * @param name Name of the state * @param state The ScannerState instance. * @return The second argument. *************** public class ScanEngine *** 295,320 **** private ScannerState register(String name, ScannerState state) { state.init(name); ! states.put(name, state); return state; } ! /** Generates or returns an id for the given object which can be activated * later if the object is suitable. ! * *

          Objects are unsuitable if they are an instance of a primitive wrapper * or String.

          ! * ! * @param value The object to retrieve an id for. * @return The id for the object or null. */ private ObjectId retrieveId(Object value) { Class valueClass = value.getClass(); ObjectId id = null; ! // Although multiple accesses to Class objects are not handled // through ids we generate one for them, too. This allows us to detect // second time references to such objects in the writeObject method --- 295,320 ---- private ScannerState register(String name, ScannerState state) { state.init(name); ! states.put(name, state); return state; } ! /** Generates or returns an id for the given object which can be activated * later if the object is suitable. ! * *

          Objects are unsuitable if they are an instance of a primitive wrapper * or String.

          ! * ! * @param value The object to retrieve an id for. * @return The id for the object or null. */ private ObjectId retrieveId(Object value) { Class valueClass = value.getClass(); ObjectId id = null; ! // Although multiple accesses to Class objects are not handled // through ids we generate one for them, too. This allows us to detect // second time references to such objects in the writeObject method *************** public class ScanEngine *** 329,341 **** objects.put(value, id); } } ! return id; } /** Scans the argument and calls one of event methods. See * the introduction of this class for details. ! * * @param expr The expression to serialize. */ public void writeExpression(Expression expr) --- 329,341 ---- objects.put(value, id); } } ! return id; } /** Scans the argument and calls one of event methods. See * the introduction of this class for details. ! * * @param expr The expression to serialize. */ public void writeExpression(Expression expr) *************** public class ScanEngine *** 344,350 **** Object[] args = expr.getArguments(); Object target = expr.getTarget(); Object value = null; ! try { value = expr.getValue(); --- 344,350 ---- Object[] args = expr.getArguments(); Object target = expr.getTarget(); Object value = null; ! try { value = expr.getValue(); *************** public class ScanEngine *** 366,374 **** if (methodName.equals("newInstance")) { id = retrieveId(value); ! Class ct = (Class) args[0]; ! if (ct.isPrimitive() || ct == Boolean.class || ct == Byte.class || ct == Short.class || ct == Integer.class || ct == Long.class || ct == Float.class || ct == Double.class) --- 366,374 ---- if (methodName.equals("newInstance")) { id = retrieveId(value); ! Class ct = (Class) args[0]; ! if (ct.isPrimitive() || ct == Boolean.class || ct == Byte.class || ct == Short.class || ct == Integer.class || ct == Long.class || ct == Float.class || ct == Double.class) *************** public class ScanEngine *** 379,385 **** objectArrayInstantiation(ct.getName(), args[1].toString(), id); ! return; } else if (methodName.equals("get")) --- 379,385 ---- objectArrayInstantiation(ct.getName(), args[1].toString(), id); ! return; } else if (methodName.equals("get")) *************** public class ScanEngine *** 398,404 **** objectReference(id); end(); } ! return; } else if (methodName.equals("set")) --- 398,404 ---- objectReference(id); end(); } ! return; } else if (methodName.equals("set")) *************** public class ScanEngine *** 407,413 **** return; } } ! id = retrieveId(value); if (target instanceof Class) --- 407,413 ---- return; } } ! id = retrieveId(value); if (target instanceof Class) *************** public class ScanEngine *** 517,523 **** /** Scans the argument and calls one of event methods. See * the introduction of this class for details. ! * * @param stmt The statement to serialize. */ public void writeStatement(Statement stmt) --- 517,523 ---- /** Scans the argument and calls one of event methods. See * the introduction of this class for details. ! * * @param stmt The statement to serialize. */ public void writeStatement(Statement stmt) *************** public class ScanEngine *** 553,559 **** /** Scans the argument and calls one of event methods. See * the introduction of this class for details. ! * * @param o The object to serialize. */ public boolean writeObject(Object o) --- 553,559 ---- /** Scans the argument and calls one of event methods. See * the introduction of this class for details. ! * * @param o The object to serialize. */ public boolean writeObject(Object o) *************** public class ScanEngine *** 585,593 **** end(); return false; } ! // If our object has a corresponding ObjectId instance ! // then generate an objectReference. This will // initialize the id (= brings it in the "used" state) // when this is the first referal. objectReference(id); --- 585,593 ---- end(); return false; } ! // If our object has a corresponding ObjectId instance ! // then generate an objectReference. This will // initialize the id (= brings it in the "used" state) // when this is the first referal. objectReference(id); *************** public class ScanEngine *** 622,631 **** /** * Does a transition from one state to another using the given event. ! * *

          This involves saving the current state, retrieving it's * successor and setting it as the current state.

          ! * * @param transition One of {@link ScannerStates]'s transition constants. */ private void transition(int transition) --- 622,631 ---- /** * Does a transition from one state to another using the given event. ! * *

          This involves saving the current state, retrieving it's * successor and setting it as the current state.

          ! * * @param transition One of {@link ScannerStates]'s transition constants. */ private void transition(int transition) *************** public class ScanEngine *** 633,639 **** parents.push(current); String stateName = current.getSuccessor(transition); ! if (DEBUG) { System.err.println("from state: " + current.getName() + "\n\troute: " --- 633,639 ---- parents.push(current); String stateName = current.getSuccessor(transition); ! if (DEBUG) { System.err.println("from state: " + current.getName() + "\n\troute: " *************** public class ScanEngine *** 641,649 **** + "\n\t\tto state: " + stateName); } ! ScannerState newState = (ScannerState) states.get(stateName); ! newState.enter(new Context(current.getName(), current.getCalls())); assert (newState != null) : "State '" + stateName + "' was not defined."; --- 641,649 ---- + "\n\t\tto state: " + stateName); } ! ScannerState newState = (ScannerState) states.get(stateName); ! newState.enter(new Context(current.getName(), current.getCalls())); assert (newState != null) : "State '" + stateName + "' was not defined."; *************** public class ScanEngine *** 655,661 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param methodName The name of the method which is called. */ void methodInvocation(String methodName) --- 655,661 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param methodName The name of the method which is called. */ void methodInvocation(String methodName) *************** public class ScanEngine *** 669,675 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param methodName The name of the method which is called. * @param className The name of the class in which the method is called. */ --- 669,675 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param methodName The name of the method which is called. * @param className The name of the class in which the method is called. */ *************** public class ScanEngine *** 684,690 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param fieldName The name of the field whose value is retrieved. * @param className The name of the class in which the method is called. */ --- 684,690 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param fieldName The name of the field whose value is retrieved. * @param className The name of the class in which the method is called. */ *************** public class ScanEngine *** 699,705 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param className The name of the class in which the method is called. */ void classResolution(String className) --- 699,705 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param className The name of the class in which the method is called. */ void classResolution(String className) *************** public class ScanEngine *** 713,719 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param className The name of the class in which the method is called. * @param objectId An ObjectId instance which can be activated later. */ --- 713,719 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param className The name of the class in which the method is called. * @param objectId An ObjectId instance which can be activated later. */ *************** public class ScanEngine *** 728,734 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param primitiveName One of "boolean, "byte", "short", "int", "long" * , "float" or "double" * @param valueAsString The value of the primitive as a String. --- 728,734 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param primitiveName One of "boolean, "byte", "short", "int", "long" * , "float" or "double" * @param valueAsString The value of the primitive as a String. *************** public class ScanEngine *** 744,750 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param arrayClassName The array's class name. * @param objectId An ObjectId instance which can be activated later. * @param lengthAsString The array's length as String. --- 744,750 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param arrayClassName The array's class name. * @param objectId An ObjectId instance which can be activated later. * @param lengthAsString The array's length as String. *************** public class ScanEngine *** 761,767 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param arrayClassName The array's class name. * @param objectId An ObjectId instance which can be activated later. * @param lengthAsString The array's length as String. --- 761,767 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param arrayClassName The array's class name. * @param objectId An ObjectId instance which can be activated later. * @param lengthAsString The array's length as String. *************** public class ScanEngine *** 773,784 **** current.objectArrayInstantiation(arrayClassName, lengthAsString, objectId); } ! /** Event method that denotes the setting of a value in an array. * *

          More details about this method can be found in this * class' introduction.

          ! * * @param indexAsString The index to as a String. */ void arraySet(String indexAsString) --- 773,784 ---- current.objectArrayInstantiation(arrayClassName, lengthAsString, objectId); } ! /** Event method that denotes the setting of a value in an array. * *

          More details about this method can be found in this * class' introduction.

          ! * * @param indexAsString The index to as a String. */ void arraySet(String indexAsString) *************** public class ScanEngine *** 792,798 **** * *

          More details about this method can be found in this * class' introduction.

          ! * * @param indexAsString The index to as a String. */ void arrayGet(String indexAsString) --- 792,798 ---- * *

          More details about this method can be found in this * class' introduction.

          ! * * @param indexAsString The index to as a String. */ void arrayGet(String indexAsString) *************** public class ScanEngine *** 836,842 **** } /** Event method that denotes a string. ! * * @param string The string that should be written. */ void stringReference(String string) --- 836,842 ---- } /** Event method that denotes a string. ! * * @param string The string that should be written. */ void stringReference(String string) *************** public class ScanEngine *** 847,853 **** } /** Event method that denotes a reference to an existing object. ! * * @param id The ObjectId to be used. */ void objectReference(ObjectId id) --- 847,853 ---- } /** Event method that denotes a reference to an existing object. ! * * @param id The ObjectId to be used. */ void objectReference(ObjectId id) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/ScannerState.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/ScannerState.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/ScannerState.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/ScannerState.java Tue Jan 11 19:46:05 2011 *************** import java.util.HashMap; *** 42,53 **** /**

          Provides the infrastructure for the state machine and the transition * mechanism.

          ! * *

          Each states knows a set of successor. There can be one successor for * every transition variant. Furthermore a state knows about a default * successor which is taken when there is no special setup for a * transition.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 42,53 ---- /**

          Provides the infrastructure for the state machine and the transition * mechanism.

          ! * *

          Each states knows a set of successor. There can be one successor for * every transition variant. Furthermore a state knows about a default * successor which is taken when there is no special setup for a * transition.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ *************** public abstract class ScannerState *** 105,146 **** * transition->successor's state name. */ HashMap transitions = new HashMap(); ! int calls; ! Context context; ! String name; ! final void init(String newName) { assert (name == null); ! name = newName; } ! final String getName() { return name; } ! final void enter(Context ctx) { calls++; context = ctx; ! enterImpl(ctx); } ! protected void enterImpl(Context ctx) { } ! final Context context() { return context; } ! final int getCalls() { return calls; --- 105,146 ---- * transition->successor's state name. */ HashMap transitions = new HashMap(); ! int calls; ! Context context; ! String name; ! final void init(String newName) { assert (name == null); ! name = newName; } ! final String getName() { return name; } ! final void enter(Context ctx) { calls++; context = ctx; ! enterImpl(ctx); } ! protected void enterImpl(Context ctx) { } ! final Context context() { return context; } ! final int getCalls() { return calls; *************** public abstract class ScannerState *** 148,157 **** /** *

          Stores a successor's state name for a certain transition.

          ! * *

          This method is only used at the configuration time of the state * machine.

          ! * * @param transition One of the transition constants. * @param stateName The state name of the successor. */ --- 148,157 ---- /** *

          Stores a successor's state name for a certain transition.

          ! * *

          This method is only used at the configuration time of the state * machine.

          ! * * @param transition One of the transition constants. * @param stateName The state name of the successor. */ *************** public abstract class ScannerState *** 165,174 **** /**

          Retrieves a the state name of a successor for the given transition * constant.

          ! * *

          Returns the default successor's state name if no special setup was * prepared.

          ! * * @param transition One of the transition constants. * @return The state name of the successor. */ --- 165,174 ---- /**

          Retrieves a the state name of a successor for the given transition * constant.

          ! * *

          Returns the default successor's state name if no special setup was * prepared.

          ! * * @param transition One of the transition constants. * @return The state name of the successor. */ *************** public abstract class ScannerState *** 181,187 **** /** * Sets the name for the default successor state. ! * * @param newDefaultSuccessor The default successor's state name. */ final void setDefaultSuccessor(String newDefaultSuccessor) --- 181,187 ---- /** * Sets the name for the default successor state. ! * * @param newDefaultSuccessor The default successor's state name. */ final void setDefaultSuccessor(String newDefaultSuccessor) *************** public abstract class ScannerState *** 203,209 **** String valueAsString); abstract void objectArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId); ! abstract void primitiveArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId); abstract void arraySet(String indexAsString); --- 203,209 ---- String valueAsString); abstract void objectArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId); ! abstract void primitiveArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId); abstract void arraySet(String indexAsString); *************** public abstract class ScannerState *** 222,228 **** /** *

          A special event that does not provoke a direct transition.

          ! * *

          Instead the transition is done by the ScanEngine: It goes * back to the previous state and just uses this method to inform the state * about this happening.

          --- 222,228 ---- /** *

          A special event that does not provoke a direct transition.

          ! * *

          Instead the transition is done by the ScanEngine: It goes * back to the previous state and just uses this method to inform the state * about this happening.

          *************** public abstract class ScannerState *** 232,236 **** void enter() { } ! } --- 232,236 ---- void enter() { } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/StAXWriter.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/StAXWriter.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/StAXWriter.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/StAXWriter.java Tue Jan 11 19:46:05 2011 *************** import javax.xml.stream.XMLStreamExcepti *** 45,51 **** import javax.xml.stream.XMLStreamWriter; /** A {@link Writer} implementation based on the StAX API. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 45,51 ---- import javax.xml.stream.XMLStreamWriter; /** A {@link Writer} implementation based on the StAX API. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ *************** public class StAXWriter implements Write *** 54,60 **** XMLStreamWriter writer; int indent = 0; ! public StAXWriter(OutputStream os) { try --- 54,60 ---- XMLStreamWriter writer; int indent = 0; ! public StAXWriter(OutputStream os) { try *************** public class StAXWriter implements Write *** 71,77 **** } } ! public void flush() { if (writer != null) --- 71,77 ---- } } ! public void flush() { if (writer != null) *************** public class StAXWriter implements Write *** 138,144 **** } } ! public void writeEndNoChildren() { try --- 138,144 ---- } } ! public void writeEndNoChildren() { try diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/Writer.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/Writer.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/Writer.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/Writer.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder; *** 40,59 **** /** A Writer represents a simplified interface to an XML * writer that is used for the XML persistence mechanism. ! * *

          Its sole purpose is to allow multiple backends which may remove * the need to have certain APIs in the classpath. Eg. it is possible * to write a stripped down XML Writer that does not rely on SAX, StAX * or DOM APIs.

          ! * *

          The caller may assume that every action is done immediately. However * it is possible that the underlying implementation uses buffering streams. * To make sure the data is written call the {@link flush} method.

          ! * *

          The Writer implementation should care about the formatting * of the XML stream making it possible to generate three types of formats using * a special method invocation chain.

          ! * *

          Write * * <element/> --- 40,59 ---- /** A Writer represents a simplified interface to an XML * writer that is used for the XML persistence mechanism. ! * *

          Its sole purpose is to allow multiple backends which may remove * the need to have certain APIs in the classpath. Eg. it is possible * to write a stripped down XML Writer that does not rely on SAX, StAX * or DOM APIs.

          ! * *

          The caller may assume that every action is done immediately. However * it is possible that the underlying implementation uses buffering streams. * To make sure the data is written call the {@link flush} method.

          ! * *

          The Writer implementation should care about the formatting * of the XML stream making it possible to generate three types of formats using * a special method invocation chain.

          ! * *

          Write * * <element/> *************** package gnu.java.beans.encoder; *** 61,73 **** * by issuing write("element", true) (or any of the other * write-variants that allows specifying the isEmpty argument) * and writeEnd(true).

          ! * *

          Write * * <element>body</element> * * by issuing writeNoChildren("element", "body") and writeNoChildrenEnd().

          ! * *

          * Write * --- 61,73 ---- * by issuing write("element", true) (or any of the other * write-variants that allows specifying the isEmpty argument) * and writeEnd(true).

          ! * *

          Write * * <element>body</element> * * by issuing writeNoChildren("element", "body") and writeNoChildrenEnd().

          ! * *

          * Write * *************** package gnu.java.beans.encoder; *** 80,86 **** * by issuing write("element", false) (or any of the other * write-variants that allows specifying the isEmpty argument) * and writeEnd(false).

          ! * *

          Note: It is important that the values of isEmpty and * wasEmpty match. Otherwise strange things might happen to * the layout.

          --- 80,86 ---- * by issuing write("element", false) (or any of the other * write-variants that allows specifying the isEmpty argument) * and writeEnd(false).

          ! * *

          Note: It is important that the values of isEmpty and * wasEmpty match. Otherwise strange things might happen to * the layout.

          *************** package gnu.java.beans.encoder; *** 90,129 **** */ public interface Writer { ! // TODO: This interface's design is not the best. Feel free to // improve it as you like. /** Writes the XML preamble. */ void writePreamble(); /** Writes the end of an XML tag. ! * *

          If your tag has not generated any body text or child * elements provide true as the argument to generate ! * more space efficient variant of the tag.>/p> ! * * @param wasEmpty Whether the tag was empty or not. */ void writeEnd(boolean wasEmpty); ! /** Writes an XML tag without any attributes. ! * * @param tagName The name of the tag to write. * @param empty Whether the element has child elements. */ void write(String tagName, boolean empty); /** Writes an XML tag with one attribute name and value. ! * * @param tagName The name of the tag to write. ! * @param attributeName The name of attribute. * @param attributeValue The attribute's value. * @param empty Whether the element has child elements. */ void write(String tagName, String attributeName, String attributeValue, boolean empty); /** Writes an XML tag with multiple attributes and a body text. ! * * @param tagName The name of the tag to write. * @param value The element's body content. * @param attributeNames A set of attribute names. --- 90,129 ---- */ public interface Writer { ! // TODO: This interface's design is not the best. Feel free to // improve it as you like. /** Writes the XML preamble. */ void writePreamble(); /** Writes the end of an XML tag. ! * *

          If your tag has not generated any body text or child * elements provide true as the argument to generate ! * more space efficient variant of the tag.>/p> ! * * @param wasEmpty Whether the tag was empty or not. */ void writeEnd(boolean wasEmpty); ! /** Writes an XML tag without any attributes. ! * * @param tagName The name of the tag to write. * @param empty Whether the element has child elements. */ void write(String tagName, boolean empty); /** Writes an XML tag with one attribute name and value. ! * * @param tagName The name of the tag to write. ! * @param attributeName The name of attribute. * @param attributeValue The attribute's value. * @param empty Whether the element has child elements. */ void write(String tagName, String attributeName, String attributeValue, boolean empty); /** Writes an XML tag with multiple attributes and a body text. ! * * @param tagName The name of the tag to write. * @param value The element's body content. * @param attributeNames A set of attribute names. *************** public interface Writer *** 134,140 **** String[] attributeValues, boolean empty); /** Writes an XML tag with multiple attributes without a body text. ! * * @param tagName The name of the tag to write. * @param attributeNames A set of attribute names. * @param attributeValues A set of attribute values. --- 134,140 ---- String[] attributeValues, boolean empty); /** Writes an XML tag with multiple attributes without a body text. ! * * @param tagName The name of the tag to write. * @param attributeNames A set of attribute names. * @param attributeValues A set of attribute values. *************** public interface Writer *** 144,150 **** /** Writes an XML tag with no attributes but with a body text * that may have child elements. ! * * @param tagName The name of the tag to write. * @param value The element's body content. */ --- 144,150 ---- /** Writes an XML tag with no attributes but with a body text * that may have child elements. ! * * @param tagName The name of the tag to write. * @param value The element's body content. */ *************** public interface Writer *** 152,165 **** /** Writes an XML tag with no attributes but with a body text * that does not have child elements. ! * * @param tagName The name of the tag to write. * @param value The element's body content. */ void writeNoChildren(String tagName, String value); ! /** Writes the end of an XML tag that has no child elements. ! * *

          Must be used in combination with {@link writeNoChildren} only.

          */ void writeEndNoChildren(); --- 152,165 ---- /** Writes an XML tag with no attributes but with a body text * that does not have child elements. ! * * @param tagName The name of the tag to write. * @param value The element's body content. */ void writeNoChildren(String tagName, String value); ! /** Writes the end of an XML tag that has no child elements. ! * *

          Must be used in combination with {@link writeNoChildren} only.

          */ void writeEndNoChildren(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.beans.encoder.ObjectId; *** 42,48 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the instantiation of an array. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 42,48 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the instantiation of an array. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/Array_Get.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/Array_Get.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/Array_Get.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/Array_Get.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.beans.encoder.Writer; *** 42,48 **** /** * Generates an XML element denoting the retrieval of an array value. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class Array_Get extends Element --- 42,48 ---- /** * Generates an XML element denoting the retrieval of an array value. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public class Array_Get extends Element diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/ClassResolution.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/ClassResolution.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/ClassResolution.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/ClassResolution.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder.elements; *** 41,47 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the resolution of a class. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 41,47 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the resolution of a class. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ *************** public class ClassResolution extends Ele *** 58,64 **** { writer.writeNoChildren("class", className); } ! public void writeEnd(Writer writer) { writer.writeEndNoChildren(); --- 58,64 ---- { writer.writeNoChildren("class", className); } ! public void writeEnd(Writer writer) { writer.writeEndNoChildren(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/Element.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/Element.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/Element.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/Element.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.beans.encoder.ObjectId; *** 45,55 **** import gnu.java.beans.encoder.Writer; /** Element is the base class for the object tree elements. ! * *

          It provides the neccessary infrastructure every element subclass * needs in order to interact with the {@link gnu.java.beans.encoder.Root} * class.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public abstract class Element --- 45,55 ---- import gnu.java.beans.encoder.Writer; /** Element is the base class for the object tree elements. ! * *

          It provides the neccessary infrastructure every element subclass * needs in order to interact with the {@link gnu.java.beans.encoder.Root} * class.

          ! * * @author Robert Schuster (robertschuster@fsfe.org) */ public abstract class Element *************** public abstract class Element *** 58,157 **** * Stores the child elements. */ private LinkedList children = new LinkedList(); ! /** * An optional ObjectId instance which is needed for certain subclasses * only. */ private ObjectId objectId; ! /** Sets an {@link gnu.java.beans.encoder.ObjectId} instance in this * Element. ! * *

          This can only be done once.

          ! * * @param objectId An ObjectId instance. */ public final void initId(ObjectId objectId) { assert (this.objectId == null); assert (objectId != null); ! this.objectId = objectId; } /** Adds a child element to this Element. ! * * @param elem The new child. */ public final void addChild(Element elem) { children.add(elem); } ! /** Removes the child element added last. */ public final void removeLast() { children.removeLast(); } ! /** Provides access to the child elements via an iterator. ! * * @return An iterator for the child elements. */ public final Iterator iterator(){ return children.iterator(); } ! /** Clears all the stored child elements. ! * */ public final void clear() { ! children.clear(); } ! /** Returns whether this element contains child elements. ! * *

          This method is useful to decide which formatting variant * for the XML element can be chosen.

          ! * * @return Whether the element has child elements. */ public final boolean isEmpty() { ! return children.isEmpty(); } ! /** Retrieves the element's {@link gnu.java.beans.encoder.ObjectId} instance * if it has one. ! * * @return The ObjectId instance or null. */ public final ObjectId getId() { return objectId; } ! /** Writes the opening XML tag. ! * * @param writer The writer to be used for XML writing. */ public abstract void writeStart(Writer writer); ! /** Writes the closing XML tag. ! * *

          By default this does writer.writeEnd(children.isEmpty()). * Override if neccessary, for example when using the * {@link gnu.java.beans.encoder.Writer#writeNoChildren} method ! * variants. ! * * @param writer The writer to be used for XML writing. */ public void writeEnd(Writer writer) { writer.writeEnd(children.isEmpty()); } ! } --- 58,157 ---- * Stores the child elements. */ private LinkedList children = new LinkedList(); ! /** * An optional ObjectId instance which is needed for certain subclasses * only. */ private ObjectId objectId; ! /** Sets an {@link gnu.java.beans.encoder.ObjectId} instance in this * Element. ! * *

          This can only be done once.

          ! * * @param objectId An ObjectId instance. */ public final void initId(ObjectId objectId) { assert (this.objectId == null); assert (objectId != null); ! this.objectId = objectId; } /** Adds a child element to this Element. ! * * @param elem The new child. */ public final void addChild(Element elem) { children.add(elem); } ! /** Removes the child element added last. */ public final void removeLast() { children.removeLast(); } ! /** Provides access to the child elements via an iterator. ! * * @return An iterator for the child elements. */ public final Iterator iterator(){ return children.iterator(); } ! /** Clears all the stored child elements. ! * */ public final void clear() { ! children.clear(); } ! /** Returns whether this element contains child elements. ! * *

          This method is useful to decide which formatting variant * for the XML element can be chosen.

          ! * * @return Whether the element has child elements. */ public final boolean isEmpty() { ! return children.isEmpty(); } ! /** Retrieves the element's {@link gnu.java.beans.encoder.ObjectId} instance * if it has one. ! * * @return The ObjectId instance or null. */ public final ObjectId getId() { return objectId; } ! /** Writes the opening XML tag. ! * * @param writer The writer to be used for XML writing. */ public abstract void writeStart(Writer writer); ! /** Writes the closing XML tag. ! * *

          By default this does writer.writeEnd(children.isEmpty()). * Override if neccessary, for example when using the * {@link gnu.java.beans.encoder.Writer#writeNoChildren} method ! * variants. ! * * @param writer The writer to be used for XML writing. */ public void writeEnd(Writer writer) { writer.writeEnd(children.isEmpty()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/List_Get.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/List_Get.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/List_Get.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/List_Get.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder.elements; *** 41,47 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the retrieval of a list's element. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 41,47 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the retrieval of a list's element. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ *************** public class List_Get extends Element *** 52,56 **** { writer.write("object", "get"); } ! } --- 52,56 ---- { writer.write("object", "get"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/List_Set.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/List_Set.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/List_Set.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/List_Set.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder.elements; *** 41,47 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the setting of a list's element. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 41,47 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the setting of a list's element. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ *************** public class List_Set extends Element *** 52,56 **** { writer.write("object", "set"); } ! } --- 52,56 ---- { writer.write("object", "set"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/MethodInvocation.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/MethodInvocation.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/MethodInvocation.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/MethodInvocation.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder.elements; *** 41,62 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting a non-static method call. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ public class MethodInvocation extends Element { final String methodName; ! public MethodInvocation(String newMethodName) { methodName = newMethodName; } ! public void writeStart(Writer writer) { writer.write("void", "method", methodName, isEmpty()); } ! } --- 41,62 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting a non-static method call. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ public class MethodInvocation extends Element { final String methodName; ! public MethodInvocation(String newMethodName) { methodName = newMethodName; } ! public void writeStart(Writer writer) { writer.write("void", "method", methodName, isEmpty()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/NullObject.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/NullObject.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/NullObject.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/NullObject.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder.elements; *** 41,47 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the null value. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 41,47 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the null value. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.beans.encoder.ObjectId; *** 42,48 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the instantiation of an object. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 42,48 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting the instantiation of an object. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/ObjectReference.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/ObjectReference.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/ObjectReference.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/ObjectReference.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.beans.encoder.ObjectId; *** 42,48 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting referencing an existing object. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 42,48 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting referencing an existing object. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ *************** public class ObjectReference extends Ele *** 53,59 **** public ObjectReference(ObjectId newId) { id = newId; ! // Initializing the Id here is making sure it gets // actually used. This step modifies the Id instance // in other elements. --- 53,59 ---- public ObjectReference(ObjectId newId) { id = newId; ! // Initializing the Id here is making sure it gets // actually used. This step modifies the Id instance // in other elements. *************** public class ObjectReference extends Ele *** 64,68 **** { writer.write("object", "idref", id.toString(), isEmpty()); } ! } --- 64,68 ---- { writer.write("object", "idref", id.toString(), isEmpty()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder.elements; *** 41,47 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting a primitive data value. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 41,47 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting a primitive data value. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder.elements; *** 41,47 **** import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting a static method call. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ --- 41,47 ---- import gnu.java.beans.encoder.Writer; /** Generates an XML element denoting a static method call. ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.beans.encoder.elements; *** 42,67 **** import gnu.java.beans.encoder.Writer; /** ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ public class StaticMethodInvocation extends Element { final String className; ! final String methodName; ! public StaticMethodInvocation(String newClassName, String newMethodName) { className = newClassName; methodName = newMethodName; } ! public void writeStart(Writer writer) { writer.write("void", new String[] { "class", "method" }, new String[] { className, methodName }, isEmpty()); } ! } --- 42,67 ---- import gnu.java.beans.encoder.Writer; /** ! * * @author Robert Schuster (robertschuster@fsfe.org) * */ public class StaticMethodInvocation extends Element { final String className; ! final String methodName; ! public StaticMethodInvocation(String newClassName, String newMethodName) { className = newClassName; methodName = newMethodName; } ! public void writeStart(Writer writer) { writer.write("void", new String[] { "class", "method" }, new String[] { className, methodName }, isEmpty()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/StringReference.java gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/StringReference.java *** gcc-4.5.2/libjava/classpath/gnu/java/beans/encoder/elements/StringReference.java Mon Jan 16 20:59:05 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/beans/encoder/elements/StringReference.java Tue Jan 11 19:46:05 2011 *************** public class StringReference extends Ele *** 54,60 **** { writer.writeNoChildren("string", string); } ! public void writeEnd(Writer writer) { writer.writeEndNoChildren(); --- 54,60 ---- { writer.writeNoChildren("string", string); } ! public void writeEnd(Writer writer) { writer.writeEndNoChildren(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/io/ASN1ParsingException.java gcc-4.6.0/libjava/classpath/gnu/java/io/ASN1ParsingException.java *** gcc-4.5.2/libjava/classpath/gnu/java/io/ASN1ParsingException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/io/ASN1ParsingException.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package gnu.java.io; *** 44,56 **** public class ASN1ParsingException extends java.io.IOException { ! public ASN1ParsingException() ! { ! super(); ! } ! public ASN1ParsingException(String msg) ! { ! super(msg); ! } } --- 44,56 ---- public class ASN1ParsingException extends java.io.IOException { ! public ASN1ParsingException() ! { ! super(); ! } ! public ASN1ParsingException(String msg) ! { ! super(msg); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/io/Base64InputStream.java gcc-4.6.0/libjava/classpath/gnu/java/io/Base64InputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/io/Base64InputStream.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/io/Base64InputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Base64InputStream extends F *** 57,63 **** // ------------------------------------------------------------------------ /** Base-64 digits. */ ! private static final String BASE_64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; /** Base-64 padding character. */ --- 57,63 ---- // ------------------------------------------------------------------------ /** Base-64 digits. */ ! private static final String BASE_64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; /** Base-64 padding character. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/io/ClassLoaderObjectInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/io/ClassLoaderObjectInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/io/ClassLoaderObjectInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/io/ClassLoaderObjectInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.StreamCorruptedException; *** 52,73 **** */ public class ClassLoaderObjectInputStream extends ObjectInputStream { ! ClassLoader myClassLoader; ! /** Create the new ClassLoaderObjectInputStream. ! * @param in the InputStream to read the Objects from. ! * @param myClassLoader the ClassLoader to load classes ! * with. ! */ ! public ClassLoaderObjectInputStream(InputStream in, ClassLoader myClassLoader) throws IOException,StreamCorruptedException { ! super(in); ! this.myClassLoader = myClassLoader; ! } ! /** Overriden method to use the loadClass() method from ! * the ClassLoader. ! */ ! public Class resolveClass(String name) throws IOException, ClassNotFoundException { ! return myClassLoader.loadClass(name); ! } } --- 52,73 ---- */ public class ClassLoaderObjectInputStream extends ObjectInputStream { ! ClassLoader myClassLoader; ! /** Create the new ClassLoaderObjectInputStream. ! * @param in the InputStream to read the Objects from. ! * @param myClassLoader the ClassLoader to load classes ! * with. ! */ ! public ClassLoaderObjectInputStream(InputStream in, ClassLoader myClassLoader) throws IOException,StreamCorruptedException { ! super(in); ! this.myClassLoader = myClassLoader; ! } ! /** Overriden method to use the loadClass() method from ! * the ClassLoader. ! */ ! public Class resolveClass(String name) throws IOException, ClassNotFoundException { ! return myClassLoader.loadClass(name); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/io/NullOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/io/NullOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/io/NullOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/io/NullOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/io/ObjectIdentityMap2Int.java gcc-4.6.0/libjava/classpath/gnu/java/io/ObjectIdentityMap2Int.java *** gcc-4.5.2/libjava/classpath/gnu/java/io/ObjectIdentityMap2Int.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/io/ObjectIdentityMap2Int.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package gnu.java.io; *** 50,56 **** * @author Fridtjof Siebert (siebert@aicas.com) */ public class ObjectIdentityMap2Int ! { /** --- 50,56 ---- * @author Fridtjof Siebert (siebert@aicas.com) */ public class ObjectIdentityMap2Int ! { /** *************** public class ObjectIdentityMap2Int *** 58,64 **** * prime number since the delta used for conflict resulution must * not have any common divisors with the length. */ ! private static final int[] PRIMES = { 0x1f, 0x3d, 0x7f, --- 58,64 ---- * prime number since the delta used for conflict resulution must * not have any common divisors with the length. */ ! private static final int[] PRIMES = { 0x1f, 0x3d, 0x7f, *************** public class ObjectIdentityMap2Int *** 93,99 **** */ private static final Object NIL = new Object(); ! /** * The objects in this map: * --- 93,99 ---- */ private static final Object NIL = new Object(); ! /** * The objects in this map: * *************** public class ObjectIdentityMap2Int *** 118,130 **** * invariant * size < limit */ ! private int size = 0; /** * The index in primes of the size of the tables. */ ! private int cap = 0; /** --- 118,130 ---- * invariant * size < limit */ ! private int size = 0; /** * The index in primes of the size of the tables. */ ! private int cap = 0; /** *************** public class ObjectIdentityMap2Int *** 133,139 **** * invariant * limit = PRIMES[cap] / 4 * 3; */ ! private int limit = 0; /** --- 133,139 ---- * invariant * limit = PRIMES[cap] / 4 * 3; */ ! private int limit = 0; /** *************** public class ObjectIdentityMap2Int *** 148,154 **** /** * Helper function to alloc the object and int array for the given * capacity. Set limit, reset size to 0. ! * * No elements will be stored in the newly allocated arrays. * * @param c the capacity: this is an index in PRIMES, PRIMES[c] --- 148,154 ---- /** * Helper function to alloc the object and int array for the given * capacity. Set limit, reset size to 0. ! * * No elements will be stored in the newly allocated arrays. * * @param c the capacity: this is an index in PRIMES, PRIMES[c] *************** public class ObjectIdentityMap2Int *** 161,168 **** */ private void alloc(int c) { ! if (c >= PRIMES.length) ! throw new InternalError("Hash table size overflow"); cap = c; int len = PRIMES[c]; --- 161,168 ---- */ private void alloc(int c) { ! if (c >= PRIMES.length) ! throw new InternalError("Hash table size overflow"); cap = c; int len = PRIMES[c]; *************** public class ObjectIdentityMap2Int *** 170,176 **** intTable = new int[len]; limit = len / 4 * 3; ! size = 0; } --- 170,176 ---- intTable = new int[len]; limit = len / 4 * 3; ! size = 0; } *************** public class ObjectIdentityMap2Int *** 180,186 **** * ensures * (get(o) == i); * ! * @param o object reference or null that is to be mapped. * * @param i the integer id to be associated with o * --- 180,186 ---- * ensures * (get(o) == i); * ! * @param o object reference or null that is to be mapped. * * @param i the integer id to be associated with o * *************** public class ObjectIdentityMap2Int *** 189,197 **** * @throws InternalError if hash tables has grown to more then * 0x7fffffff entries (ie., size >= 0x7fffffff*3/4). */ ! public void put(Object o, int i) { ! if (i < 0) throw new IllegalArgumentException("int argument must be postive: "+i); o = (o == null) ? NIL : o; --- 189,197 ---- * @throws InternalError if hash tables has grown to more then * 0x7fffffff entries (ie., size >= 0x7fffffff*3/4). */ ! public void put(Object o, int i) { ! if (i < 0) throw new IllegalArgumentException("int argument must be postive: "+i); o = (o == null) ? NIL : o; *************** public class ObjectIdentityMap2Int *** 200,207 **** intTable[s] = i; if (objectTable[s] == null) { ! objectTable[s] = o; ! size++; if (size >= limit) { rehash(); --- 200,207 ---- intTable[s] = i; if (objectTable[s] == null) { ! objectTable[s] = o; ! size++; if (size >= limit) { rehash(); *************** public class ObjectIdentityMap2Int *** 219,232 **** * * @param o an object, must not be null. * ! * @return an index of o */ private int slot(Object o) { Object[] ot = objectTable; int hc = System.identityHashCode(o); int len = ot.length; ! int result = hc % len; result = result < 0 ? -result : result; int delta = 16 - (hc & 15); Object existing = ot[result]; --- 219,232 ---- * * @param o an object, must not be null. * ! * @return an index of o */ private int slot(Object o) { Object[] ot = objectTable; int hc = System.identityHashCode(o); int len = ot.length; ! int result = hc % len; result = result < 0 ? -result : result; int delta = 16 - (hc & 15); Object existing = ot[result]; *************** public class ObjectIdentityMap2Int *** 249,257 **** * ensure * (cap == \old cap+1); */ ! private void rehash() { ! Object[] ot = objectTable; int [] it = intTable; alloc(cap + 1); --- 249,257 ---- * ensure * (cap == \old cap+1); */ ! private void rehash() { ! Object[] ot = objectTable; int [] it = intTable; alloc(cap + 1); *************** public class ObjectIdentityMap2Int *** 268,274 **** * @return the corresponding integer id for o or -1 if o has not * been put into this map. */ ! public int get(Object o) { o = (o == null) ? NIL : o; int s = slot(o); --- 268,274 ---- * @return the corresponding integer id for o or -1 if o has not * been put into this map. */ ! public int get(Object o) { o = (o == null) ? NIL : o; int s = slot(o); *************** public class ObjectIdentityMap2Int *** 281,290 **** * ensures * ((size == 0) && \forall Object o: get(o) == -1) */ ! public void clear() { ! Object[] ot = objectTable; ! size = 0; for (int i = 0; i < ot.length; i++) ot[i] = null; } --- 281,290 ---- * ensures * ((size == 0) && \forall Object o: get(o) == -1) */ ! public void clear() { ! Object[] ot = objectTable; ! size = 0; for (int i = 0; i < ot.length; i++) ot[i] = null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/io/ObjectIdentityWrapper.java gcc-4.6.0/libjava/classpath/gnu/java/io/ObjectIdentityWrapper.java *** gcc-4.5.2/libjava/classpath/gnu/java/io/ObjectIdentityWrapper.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/io/ObjectIdentityWrapper.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/io/PlatformHelper.java gcc-4.6.0/libjava/classpath/gnu/java/io/PlatformHelper.java *** gcc-4.5.2/libjava/classpath/gnu/java/io/PlatformHelper.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/io/PlatformHelper.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class PlatformHelper *** 52,58 **** public static final char pathSeparatorChar = pathSeparator.charAt(0); /** ! * On most platforms 260 is equal or greater than a max path value, * so we can set the initial buffer size of StringBuffer to half of this value * to improve performance. */ --- 52,58 ---- public static final char pathSeparatorChar = pathSeparator.charAt(0); /** ! * On most platforms 260 is equal or greater than a max path value, * so we can set the initial buffer size of StringBuffer to half of this value * to improve performance. */ *************** public class PlatformHelper *** 106,112 **** } /** ! * This routine removes from input param "path" the tail separator if it exists, * and return the remain part. */ public static final String removeTailSeparator(String path) --- 106,112 ---- } /** ! * This routine removes from input param "path" the tail separator if it exists, * and return the remain part. */ public static final String removeTailSeparator(String path) *************** public class PlatformHelper *** 118,124 **** } /** ! * This routine returns last index of separator in input param "path", * and return it. */ public static final int lastIndexOfSeparator(String path) --- 118,124 ---- } /** ! * This routine returns last index of separator in input param "path", * and return it. */ public static final int lastIndexOfSeparator(String path) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/CPStringBuilder.java gcc-4.6.0/libjava/classpath/gnu/java/lang/CPStringBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/CPStringBuilder.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/CPStringBuilder.java Tue Jan 11 19:46:05 2011 *************** public final class CPStringBuilder *** 215,227 **** /* If the StringBuffer's value just grew, then we know that value is newly allocated and the region between count and newLength is filled with '\0'. */ ! count = newLength; } else { ! /* The StringBuffer's value doesn't need to grow. However, ! we should clear out any cruft that may exist. */ ! while (count < newLength) value[count++] = '\0'; } } --- 215,227 ---- /* If the StringBuffer's value just grew, then we know that value is newly allocated and the region between count and newLength is filled with '\0'. */ ! count = newLength; } else { ! /* The StringBuffer's value doesn't need to grow. However, ! we should clear out any cruft that may exist. */ ! while (count < newLength) value[count++] = '\0'; } } *************** public final class CPStringBuilder *** 290,296 **** * @see System#arraycopy(Object, int, Object, int, int) */ public void getChars(int srcOffset, int srcEnd, ! char[] dst, int dstOffset) { if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset) throw new StringIndexOutOfBoundsException(); --- 290,296 ---- * @see System#arraycopy(Object, int, Object, int, int) */ public void getChars(int srcOffset, int srcEnd, ! char[] dst, int dstOffset) { if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset) throw new StringIndexOutOfBoundsException(); *************** public final class CPStringBuilder *** 362,371 **** return append("null"); synchronized (stringBuffer) { ! int len = stringBuffer.length(); ! ensureCapacity(count + len); ! stringBuffer.getChars(0, len, value, count); ! count += len; } return this; } --- 362,371 ---- return append("null"); synchronized (stringBuffer) { ! int len = stringBuffer.length(); ! ensureCapacity(count + len); ! stringBuffer.getChars(0, len, value, count); ! count += len; } return this; } *************** public final class CPStringBuilder *** 466,474 **** return append("null"); if (end - start > 0) { ! ensureCapacity(count + end - start); ! for (; start < end; ++start) ! value[count++] = seq.charAt(start); } return this; } --- 466,474 ---- return append("null"); if (end - start > 0) { ! ensureCapacity(count + end - start); ! for (; start < end; ++start) ! value[count++] = seq.charAt(start); } return this; } *************** public final class CPStringBuilder *** 979,1001 **** int count = 0; while (start < end) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == end ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! ++count; } return count; } --- 979,1001 ---- int count = 0; while (start < end) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == end ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! ++count; } return count; } *************** public final class CPStringBuilder *** 1015,1036 **** { while (codePoints > 0) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! --codePoints; } return start; } --- 1015,1036 ---- { while (codePoints > 0) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! --codePoints; } return start; } *************** public final class CPStringBuilder *** 1040,1046 **** * ensure that an expensive growing operation will not occur until either * minimumCapacity is reached or the array has been allocated. * The buffer is grown to either minimumCapacity * 2, if ! * the array has been allocated or the larger of minimumCapacity and * capacity() * 2 + 2, if it is not already large enough. * * @param minimumCapacity the new capacity --- 1040,1046 ---- * ensure that an expensive growing operation will not occur until either * minimumCapacity is reached or the array has been allocated. * The buffer is grown to either minimumCapacity * 2, if ! * the array has been allocated or the larger of minimumCapacity and * capacity() * 2 + 2, if it is not already large enough. * * @param minimumCapacity the new capacity *************** public final class CPStringBuilder *** 1050,1063 **** { if (allocated || minimumCapacity > value.length) { ! if (minimumCapacity > value.length) ! { ! int max = value.length * 2 + 2; ! minimumCapacity = (minimumCapacity < max ? max : minimumCapacity); ! } ! else ! minimumCapacity *= 2; ! allocateArray(minimumCapacity); } } --- 1050,1063 ---- { if (allocated || minimumCapacity > value.length) { ! if (minimumCapacity > value.length) ! { ! int max = value.length * 2 + 2; ! minimumCapacity = (minimumCapacity < max ? max : minimumCapacity); ! } ! else ! minimumCapacity *= 2; ! allocateArray(minimumCapacity); } } *************** public final class CPStringBuilder *** 1076,1082 **** value = nb; allocated = false; } ! /** * Get the length of the String this StringBuilder * would create. Not to be confused with the capacity of the --- 1076,1082 ---- value = nb; allocated = false; } ! /** * Get the length of the String this StringBuilder * would create. Not to be confused with the capacity of the diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/CharData.java gcc-4.6.0/libjava/classpath/gnu/java/lang/CharData.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/CharData.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/CharData.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.lang; *** 58,64 **** * attribute tables are much smaller than 0xffff entries; as many characters * in Unicode share common attributes. Numbers that are too large to fit * into NUM_VALUE as 16 bit chars are stored in LARGENUMS and a number N is ! * stored in NUM_VALUE such that (-N - 3) is the offset into LARGENUMS for * the particular character. The DIRECTION table also contains a field for * detecting characters with multi-character uppercase expansions. * Next, there is a listing for TITLE exceptions (most characters --- 58,64 ---- * attribute tables are much smaller than 0xffff entries; as many characters * in Unicode share common attributes. Numbers that are too large to fit * into NUM_VALUE as 16 bit chars are stored in LARGENUMS and a number N is ! * stored in NUM_VALUE such that (-N - 3) is the offset into LARGENUMS for * the particular character. The DIRECTION table also contains a field for * detecting characters with multi-character uppercase expansions. * Next, there is a listing for TITLE exceptions (most characters *************** public interface CharData *** 81,87 **** /** * The character shift amount to look up the block offset. In other words, ! * (char) (BLOCKS.value[ch >> SHIFT[p]] + ch) is the index * where ch is described in DATA if ch * is in Unicode plane p. Note that p is simply * the integer division of ch and 0x10000. --- 81,87 ---- /** * The character shift amount to look up the block offset. In other words, ! * (char) (BLOCKS.value[ch >> SHIFT[p]] + ch) is the index * where ch is described in DATA if ch * is in Unicode plane p. Note that p is simply * the integer division of ch and 0x10000. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/InstrumentationImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/InstrumentationImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/InstrumentationImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/InstrumentationImpl.java Tue Jan 11 19:46:05 2011 *************** public final class InstrumentationImpl i *** 66,72 **** private ArrayList transformers = new ArrayList(); ! InstrumentationImpl() { } --- 66,72 ---- private ArrayList transformers = new ArrayList(); ! InstrumentationImpl() { } *************** public final class InstrumentationImpl i *** 76,82 **** * to the instrumentation. Each time a class is defined * or redefined, the transform method of the * transformer object is called. ! * * @param transformer the transformer to add * @throws NullPointerException if transformer is null */ --- 76,82 ---- * to the instrumentation. Each time a class is defined * or redefined, the transform method of the * transformer object is called. ! * * @param transformer the transformer to add * @throws NullPointerException if transformer is null */ *************** public final class InstrumentationImpl i *** 89,99 **** transformers.add(transformer); } } ! /** * Removes the given transformer from the set of transformers * this Instrumentation object has. ! * * @param transformer the transformer to remove * @return true if the transformer was found and removed, false if * the transformer was not found --- 89,99 ---- transformers.add(transformer); } } ! /** * Removes the given transformer from the set of transformers * this Instrumentation object has. ! * * @param transformer the transformer to remove * @return true if the transformer was found and removed, false if * the transformer was not found *************** public final class InstrumentationImpl i *** 103,110 **** { if (transformer == null) throw new NullPointerException(); ! ! boolean result; synchronized (transformers) { result = transformers.remove(transformer); --- 103,110 ---- { if (transformer == null) throw new NullPointerException(); ! ! boolean result; synchronized (transformers) { result = transformers.remove(transformer); *************** public final class InstrumentationImpl i *** 114,135 **** /** * Returns if the current JVM supports class redefinition ! * * @return true if the current JVM supports class redefinition */ public boolean isRedefineClassesSupported() { return VMInstrumentationImpl.isRedefineClassesSupported(); } ! /** * Redefine classes present in the definitions array, with * the corresponding class files. * * @param definitions an array of classes to redefine ! * ! * @throws ClassNotFoundException if a class cannot be found ! * @throws UnmodifiableClassException if a class cannot be modified * @throws UnsupportedOperationException if the JVM does not support * redefinition or the redefinition made unsupported changes * @throws ClassFormatError if a class file is not valid --- 114,135 ---- /** * Returns if the current JVM supports class redefinition ! * * @return true if the current JVM supports class redefinition */ public boolean isRedefineClassesSupported() { return VMInstrumentationImpl.isRedefineClassesSupported(); } ! /** * Redefine classes present in the definitions array, with * the corresponding class files. * * @param definitions an array of classes to redefine ! * ! * @throws ClassNotFoundException if a class cannot be found ! * @throws UnmodifiableClassException if a class cannot be modified * @throws UnsupportedOperationException if the JVM does not support * redefinition or the redefinition made unsupported changes * @throws ClassFormatError if a class file is not valid *************** public final class InstrumentationImpl i *** 139,145 **** * are unsupported * @throws ClassCircularityError if circularity occured with the new * classes ! * @throws LinkageError if a linkage error occurs * @throws NullPointerException if the definitions array is null, or any * of its element * --- 139,145 ---- * are unsupported * @throws ClassCircularityError if circularity occured with the new * classes ! * @throws LinkageError if a linkage error occurs * @throws NullPointerException if the definitions array is null, or any * of its element * *************** public final class InstrumentationImpl i *** 153,166 **** { if (!isRedefineClassesSupported()) throw new UnsupportedOperationException(); ! VMInstrumentationImpl.redefineClasses(this, definitions); } /** * Get all the classes loaded by the JVM. ! * * @return an array containing all the classes loaded by the JVM. The array * is empty if no class is loaded. */ --- 153,166 ---- { if (!isRedefineClassesSupported()) throw new UnsupportedOperationException(); ! VMInstrumentationImpl.redefineClasses(this, definitions); } /** * Get all the classes loaded by the JVM. ! * * @return an array containing all the classes loaded by the JVM. The array * is empty if no class is loaded. */ *************** public final class InstrumentationImpl i *** 171,179 **** /** * Get all the classes loaded by a given class loader ! * * @param loader the loader ! * * @return an array containing all the classes loaded by the given loader. * The array is empty if no class was loaded by the loader. */ --- 171,179 ---- /** * Get all the classes loaded by a given class loader ! * * @param loader the loader ! * * @return an array containing all the classes loaded by the given loader. * The array is empty if no class was loaded by the loader. */ *************** public final class InstrumentationImpl i *** 184,190 **** /** * Get the size of an object. ! * * @param objectToSize the object * @return the size of the object * @throws NullPointerException if objectToSize is null. --- 184,190 ---- /** * Get the size of an object. ! * * @param objectToSize the object * @return the size of the object * @throws NullPointerException if objectToSize is null. *************** public final class InstrumentationImpl i *** 207,218 **** * @param protectionDomain the protection domain of the class being defined * or redefined * @param classfileBuffer the input byte buffer in class file format ! * * @return the new class file */ public byte[] callTransformers(ClassLoader loader, String className, ! Class classBeingRedefined, ProtectionDomain protectionDomain, ! byte[] classfileBuffer) { byte[] newBuffer = null; byte[] oldBuffer = classfileBuffer; --- 207,218 ---- * @param protectionDomain the protection domain of the class being defined * or redefined * @param classfileBuffer the input byte buffer in class file format ! * * @return the new class file */ public byte[] callTransformers(ClassLoader loader, String className, ! Class classBeingRedefined, ProtectionDomain protectionDomain, ! byte[] classfileBuffer) { byte[] newBuffer = null; byte[] oldBuffer = classfileBuffer; *************** public final class InstrumentationImpl i *** 227,239 **** { newBuffer = current.transform(loader, className, classBeingRedefined, protectionDomain, oldBuffer); ! } ! catch (IllegalClassFormatException ignored) ! { //IGNORED ! } if (newBuffer != null) ! oldBuffer = newBuffer; } } return oldBuffer; --- 227,239 ---- { newBuffer = current.transform(loader, className, classBeingRedefined, protectionDomain, oldBuffer); ! } ! catch (IllegalClassFormatException ignored) ! { //IGNORED ! } if (newBuffer != null) ! oldBuffer = newBuffer; } } return oldBuffer; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/MainThread.java gcc-4.6.0/libjava/classpath/gnu/java/lang/MainThread.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/MainThread.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/MainThread.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class MainThread *** 58,64 **** throws ClassNotFoundException, NoSuchMethodException { Class found = Class.forName(classname, true, ! ClassLoader.getSystemClassLoader()); Class[] argTypes = new Class[1]; argTypes[0] = args.getClass(); mainMethod = found.getMethod("main", argTypes); --- 58,64 ---- throws ClassNotFoundException, NoSuchMethodException { Class found = Class.forName(classname, true, ! ClassLoader.getSystemClassLoader()); Class[] argTypes = new Class[1]; argTypes[0] = args.getClass(); mainMethod = found.getMethod("main", argTypes); *************** public class MainThread *** 69,83 **** { try { ! mainMethod.invoke(null,(Object) args); } catch(IllegalAccessException e) { ! // Ignore. } catch(InvocationTargetException e) { ! // Ignore. } } } --- 69,83 ---- { try { ! mainMethod.invoke(null,(Object) args); } catch(IllegalAccessException e) { ! // Ignore. } catch(InvocationTargetException e) { ! // Ignore. } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/BeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/BeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/BeanImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/BeanImpl.java Tue Jan 11 19:46:05 2011 *************** public class BeanImpl *** 116,181 **** return; try { ! MBeanAttributeInfo[] oldA = info.getAttributes(); ! OpenMBeanAttributeInfo[] attribs = ! new OpenMBeanAttributeInfoSupport[oldA.length]; ! for (int a = 0; a < oldA.length; ++a) ! { ! OpenMBeanParameterInfo param = Translator.translate(oldA[a].getType()); ! if (param.getMinValue() == null) ! { ! Object[] lv; ! if (param.getLegalValues() == null) ! lv = null; ! else ! lv = param.getLegalValues().toArray(); ! attribs[a] = new OpenMBeanAttributeInfoSupport(oldA[a].getName(), ! oldA[a].getDescription(), ! ((OpenType) ! param.getOpenType()), ! oldA[a].isReadable(), ! oldA[a].isWritable(), ! oldA[a].isIs(), ! param.getDefaultValue(), ! lv); ! } ! else ! attribs[a] = new OpenMBeanAttributeInfoSupport(oldA[a].getName(), ! oldA[a].getDescription(), ! ((OpenType) ! param.getOpenType()), ! oldA[a].isReadable(), ! oldA[a].isWritable(), ! oldA[a].isIs(), ! param.getDefaultValue(), ! ((Comparable) ! param.getMinValue()), ! ((Comparable) ! param.getMaxValue())); ! } ! MBeanConstructorInfo[] oldC = info.getConstructors(); ! OpenMBeanConstructorInfo[] cons = new OpenMBeanConstructorInfoSupport[oldC.length]; ! for (int a = 0; a < oldC.length; ++a) ! cons[a] = ! new OpenMBeanConstructorInfoSupport(oldC[a].getName(), ! oldC[a].getDescription(), ! translateSignature(oldC[a].getSignature())); ! MBeanOperationInfo[] oldO = info.getOperations(); ! OpenMBeanOperationInfo[] ops = new OpenMBeanOperationInfoSupport[oldO.length]; ! for (int a = 0; a < oldO.length; ++a) ! ops[a] = ! new OpenMBeanOperationInfoSupport(oldO[a].getName(), ! oldO[a].getDescription(), ! translateSignature(oldO[a].getSignature()), ! Translator.translate(oldO[a].getReturnType()).getOpenType(), ! oldO[a].getImpact()); ! openInfo = new OpenMBeanInfoSupport(info.getClassName(), info.getDescription(), ! attribs, cons, ops, info.getNotifications()); } catch (OpenDataException e) { ! throw (InternalError) (new InternalError("A problem occurred creating the open type " + ! "descriptors.").initCause(e)); } } --- 116,181 ---- return; try { ! MBeanAttributeInfo[] oldA = info.getAttributes(); ! OpenMBeanAttributeInfo[] attribs = ! new OpenMBeanAttributeInfoSupport[oldA.length]; ! for (int a = 0; a < oldA.length; ++a) ! { ! OpenMBeanParameterInfo param = Translator.translate(oldA[a].getType()); ! if (param.getMinValue() == null) ! { ! Object[] lv; ! if (param.getLegalValues() == null) ! lv = null; ! else ! lv = param.getLegalValues().toArray(); ! attribs[a] = new OpenMBeanAttributeInfoSupport(oldA[a].getName(), ! oldA[a].getDescription(), ! ((OpenType) ! param.getOpenType()), ! oldA[a].isReadable(), ! oldA[a].isWritable(), ! oldA[a].isIs(), ! param.getDefaultValue(), ! lv); ! } ! else ! attribs[a] = new OpenMBeanAttributeInfoSupport(oldA[a].getName(), ! oldA[a].getDescription(), ! ((OpenType) ! param.getOpenType()), ! oldA[a].isReadable(), ! oldA[a].isWritable(), ! oldA[a].isIs(), ! param.getDefaultValue(), ! ((Comparable) ! param.getMinValue()), ! ((Comparable) ! param.getMaxValue())); ! } ! MBeanConstructorInfo[] oldC = info.getConstructors(); ! OpenMBeanConstructorInfo[] cons = new OpenMBeanConstructorInfoSupport[oldC.length]; ! for (int a = 0; a < oldC.length; ++a) ! cons[a] = ! new OpenMBeanConstructorInfoSupport(oldC[a].getName(), ! oldC[a].getDescription(), ! translateSignature(oldC[a].getSignature())); ! MBeanOperationInfo[] oldO = info.getOperations(); ! OpenMBeanOperationInfo[] ops = new OpenMBeanOperationInfoSupport[oldO.length]; ! for (int a = 0; a < oldO.length; ++a) ! ops[a] = ! new OpenMBeanOperationInfoSupport(oldO[a].getName(), ! oldO[a].getDescription(), ! translateSignature(oldO[a].getSignature()), ! Translator.translate(oldO[a].getReturnType()).getOpenType(), ! oldO[a].getImpact()); ! openInfo = new OpenMBeanInfoSupport(info.getClassName(), info.getDescription(), ! attribs, cons, ops, info.getNotifications()); } catch (OpenDataException e) { ! throw (InternalError) (new InternalError("A problem occurred creating the open type " + ! "descriptors.").initCause(e)); } } *************** public class BeanImpl *** 195,201 **** public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ! ReflectionException { Object value = super.getAttribute(attribute); if (value instanceof Enum) --- 195,201 ---- public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ! ReflectionException { Object value = super.getAttribute(attribute); if (value instanceof Enum) *************** public class BeanImpl *** 207,266 **** String[] allowedTypes = OpenType.ALLOWED_CLASSNAMES; for (int a = 0; a < allowedTypes.length; ++a) if (cName.equals(allowedTypes[a])) ! return value; OpenMBeanInfo info = (OpenMBeanInfo) getMBeanInfo(); MBeanAttributeInfo[] attribs = (MBeanAttributeInfo[]) info.getAttributes(); OpenType type = null; for (int a = 0; a < attribs.length; ++a) if (attribs[a].getName().equals(attribute)) ! type = ((OpenMBeanAttributeInfo) attribs[a]).getOpenType(); if (value instanceof List) { ! try ! { ! Class e = ! Class.forName(((ArrayType) type).getElementOpenType().getClassName()); ! List l = (List) value; ! Object[] array = (Object[]) Array.newInstance(e, l.size()); ! return l.toArray(array); ! } ! catch (ClassNotFoundException e) ! { ! throw (InternalError) (new InternalError("The class of the list " + ! "element type could not " + ! "be created").initCause(e)); ! } } if (value instanceof Map) { ! TabularType ttype = (TabularType) type; ! TabularData data = new TabularDataSupport(ttype); ! Iterator it = ((Map) value).entrySet().iterator(); ! while (it.hasNext()) ! { ! Map.Entry entry = (Map.Entry) it.next(); ! try ! { ! data.put(new CompositeDataSupport(ttype.getRowType(), ! new String[] { ! "key", ! "value" ! }, ! new Object[] { ! entry.getKey(), ! entry.getValue() ! })); ! } ! catch (OpenDataException e) ! { ! throw (InternalError) (new InternalError("A problem occurred " + ! "converting the map " + ! "to a composite data " + ! "structure.").initCause(e)); ! } ! } ! return data; } CompositeType cType = (CompositeType) type; Set names = cType.keySet(); --- 207,266 ---- String[] allowedTypes = OpenType.ALLOWED_CLASSNAMES; for (int a = 0; a < allowedTypes.length; ++a) if (cName.equals(allowedTypes[a])) ! return value; OpenMBeanInfo info = (OpenMBeanInfo) getMBeanInfo(); MBeanAttributeInfo[] attribs = (MBeanAttributeInfo[]) info.getAttributes(); OpenType type = null; for (int a = 0; a < attribs.length; ++a) if (attribs[a].getName().equals(attribute)) ! type = ((OpenMBeanAttributeInfo) attribs[a]).getOpenType(); if (value instanceof List) { ! try ! { ! Class e = ! Class.forName(((ArrayType) type).getElementOpenType().getClassName()); ! List l = (List) value; ! Object[] array = (Object[]) Array.newInstance(e, l.size()); ! return l.toArray(array); ! } ! catch (ClassNotFoundException e) ! { ! throw (InternalError) (new InternalError("The class of the list " + ! "element type could not " + ! "be created").initCause(e)); ! } } if (value instanceof Map) { ! TabularType ttype = (TabularType) type; ! TabularData data = new TabularDataSupport(ttype); ! Iterator it = ((Map) value).entrySet().iterator(); ! while (it.hasNext()) ! { ! Map.Entry entry = (Map.Entry) it.next(); ! try ! { ! data.put(new CompositeDataSupport(ttype.getRowType(), ! new String[] { ! "key", ! "value" ! }, ! new Object[] { ! entry.getKey(), ! entry.getValue() ! })); ! } ! catch (OpenDataException e) ! { ! throw (InternalError) (new InternalError("A problem occurred " + ! "converting the map " + ! "to a composite data " + ! "structure.").initCause(e)); ! } ! } ! return data; } CompositeType cType = (CompositeType) type; Set names = cType.keySet(); *************** public class BeanImpl *** 268,318 **** List values = new ArrayList(names.size()); while (it.hasNext()) { ! String field = (String) it.next(); ! Method getter = null; ! try ! { ! getter = vClass.getMethod("get" + field); ! } ! catch (NoSuchMethodException e) ! { ! /* Ignored; the type tells us it's there. */ ! } ! try ! { ! values.add(getter.invoke(value)); ! } ! catch (IllegalAccessException e) ! { ! throw new ReflectionException(e, "Failed to retrieve " + field); ! } ! catch (IllegalArgumentException e) ! { ! throw new ReflectionException(e, "Failed to retrieve " + field); ! } ! catch (InvocationTargetException e) ! { ! throw new MBeanException((Exception) e.getCause(), ! "The getter of " + field + ! " threw an exception"); ! } } try { ! return new CompositeDataSupport(cType, ! (String[]) ! names.toArray(new String[names.size()]), ! values.toArray()); } catch (OpenDataException e) { ! throw (InternalError) (new InternalError("A problem occurred " + ! "converting the value " + ! "to a composite data " + ! "structure.").initCause(e)); } } ! protected MBeanInfo getCachedMBeanInfo() { return (MBeanInfo) openInfo; --- 268,318 ---- List values = new ArrayList(names.size()); while (it.hasNext()) { ! String field = (String) it.next(); ! Method getter = null; ! try ! { ! getter = vClass.getMethod("get" + field); ! } ! catch (NoSuchMethodException e) ! { ! /* Ignored; the type tells us it's there. */ ! } ! try ! { ! values.add(getter.invoke(value)); ! } ! catch (IllegalAccessException e) ! { ! throw new ReflectionException(e, "Failed to retrieve " + field); ! } ! catch (IllegalArgumentException e) ! { ! throw new ReflectionException(e, "Failed to retrieve " + field); ! } ! catch (InvocationTargetException e) ! { ! throw new MBeanException((Exception) e.getCause(), ! "The getter of " + field + ! " threw an exception"); ! } } try { ! return new CompositeDataSupport(cType, ! (String[]) ! names.toArray(new String[names.size()]), ! values.toArray()); } catch (OpenDataException e) { ! throw (InternalError) (new InternalError("A problem occurred " + ! "converting the value " + ! "to a composite data " + ! "structure.").initCause(e)); } } ! protected MBeanInfo getCachedMBeanInfo() { return (MBeanInfo) openInfo; *************** public class BeanImpl *** 322,336 **** * Override this method so as to prevent the description of a constructor's * parameter being @code{null}. Open MBeans can not have @code{null} descriptions, * but one will occur as the names of parameters aren't stored for reflection. ! * * @param constructor the constructor whose parameter needs describing. * @param parameter the parameter to be described. * @param sequenceNo the number of the parameter to describe. * @return a description of the constructor's parameter. */ protected String getDescription(MBeanConstructorInfo constructor, ! MBeanParameterInfo parameter, ! int sequenceNo) { String desc = parameter.getDescription(); if (desc == null) --- 322,336 ---- * Override this method so as to prevent the description of a constructor's * parameter being @code{null}. Open MBeans can not have @code{null} descriptions, * but one will occur as the names of parameters aren't stored for reflection. ! * * @param constructor the constructor whose parameter needs describing. * @param parameter the parameter to be described. * @param sequenceNo the number of the parameter to describe. * @return a description of the constructor's parameter. */ protected String getDescription(MBeanConstructorInfo constructor, ! MBeanParameterInfo parameter, ! int sequenceNo) { String desc = parameter.getDescription(); if (desc == null) *************** public class BeanImpl *** 343,357 **** * Override this method so as to prevent the description of an operation's * parameter being @code{null}. Open MBeans can not have @code{null} descriptions, * but one will occur as the names of parameters aren't stored for reflection. ! * * @param operation the operation whose parameter needs describing. * @param parameter the parameter to be described. * @param sequenceNo the number of the parameter to describe. * @return a description of the operation's parameter. */ protected String getDescription(MBeanOperationInfo operation, ! MBeanParameterInfo parameter, ! int sequenceNo) { String desc = parameter.getDescription(); if (desc == null) --- 343,357 ---- * Override this method so as to prevent the description of an operation's * parameter being @code{null}. Open MBeans can not have @code{null} descriptions, * but one will occur as the names of parameters aren't stored for reflection. ! * * @param operation the operation whose parameter needs describing. * @param parameter the parameter to be described. * @param sequenceNo the number of the parameter to describe. * @return a description of the operation's parameter. */ protected String getDescription(MBeanOperationInfo operation, ! MBeanParameterInfo parameter, ! int sequenceNo) { String desc = parameter.getDescription(); if (desc == null) *************** public class BeanImpl *** 364,378 **** * Override this method so as to prevent the name of a constructor's * parameter being @code{null}. Open MBeans can not have @code{null} names, * but one will occur as the names of parameters aren't stored for reflection. ! * * @param constructor the constructor whose parameter needs a name. * @param parameter the parameter to be named. * @param sequenceNo the number of the parameter to name. * @return a description of the constructor's parameter. */ protected String getParameterName(MBeanConstructorInfo constructor, ! MBeanParameterInfo parameter, ! int sequenceNo) { String name = parameter.getName(); if (name == null) --- 364,378 ---- * Override this method so as to prevent the name of a constructor's * parameter being @code{null}. Open MBeans can not have @code{null} names, * but one will occur as the names of parameters aren't stored for reflection. ! * * @param constructor the constructor whose parameter needs a name. * @param parameter the parameter to be named. * @param sequenceNo the number of the parameter to name. * @return a description of the constructor's parameter. */ protected String getParameterName(MBeanConstructorInfo constructor, ! MBeanParameterInfo parameter, ! int sequenceNo) { String name = parameter.getName(); if (name == null) *************** public class BeanImpl *** 385,399 **** * Override this method so as to prevent the name of an operation's * parameter being @code{null}. Open MBeans can not have @code{null} names, * but one will occur as the names of parameters aren't stored for reflection. ! * * @param operation the operation whose parameter needs a name. * @param parameter the parameter to be named. * @param sequenceNo the number of the parameter to name. * @return a description of the operation's parameter. */ protected String getParameterName(MBeanOperationInfo operation, ! MBeanParameterInfo parameter, ! int sequenceNo) { String name = parameter.getName(); if (name == null) --- 385,399 ---- * Override this method so as to prevent the name of an operation's * parameter being @code{null}. Open MBeans can not have @code{null} names, * but one will occur as the names of parameters aren't stored for reflection. ! * * @param operation the operation whose parameter needs a name. * @param parameter the parameter to be named. * @param sequenceNo the number of the parameter to name. * @return a description of the operation's parameter. */ protected String getParameterName(MBeanOperationInfo operation, ! MBeanParameterInfo parameter, ! int sequenceNo) { String name = parameter.getName(); if (name == null) *************** public class BeanImpl *** 414,444 **** OpenMBeanParameterInfo[] sig = new OpenMBeanParameterInfoSupport[oldS.length]; for (int a = 0; a < oldS.length; ++a) { ! OpenMBeanParameterInfo param = Translator.translate(oldS[a].getType()); ! if (param.getMinValue() == null) ! { ! Object[] lv; ! if (param.getLegalValues() == null) ! lv = null; ! else ! lv = param.getLegalValues().toArray(); ! sig[a] = new OpenMBeanParameterInfoSupport(oldS[a].getName(), ! oldS[a].getDescription(), ! ((OpenType) ! param.getOpenType()), ! param.getDefaultValue(), ! lv); ! } ! else ! sig[a] = new OpenMBeanParameterInfoSupport(oldS[a].getName(), ! oldS[a].getDescription(), ! ((OpenType) ! param.getOpenType()), ! param.getDefaultValue(), ! ((Comparable) ! param.getMinValue()), ! ((Comparable) ! param.getMaxValue())); } return sig; } --- 414,444 ---- OpenMBeanParameterInfo[] sig = new OpenMBeanParameterInfoSupport[oldS.length]; for (int a = 0; a < oldS.length; ++a) { ! OpenMBeanParameterInfo param = Translator.translate(oldS[a].getType()); ! if (param.getMinValue() == null) ! { ! Object[] lv; ! if (param.getLegalValues() == null) ! lv = null; ! else ! lv = param.getLegalValues().toArray(); ! sig[a] = new OpenMBeanParameterInfoSupport(oldS[a].getName(), ! oldS[a].getDescription(), ! ((OpenType) ! param.getOpenType()), ! param.getDefaultValue(), ! lv); ! } ! else ! sig[a] = new OpenMBeanParameterInfoSupport(oldS[a].getName(), ! oldS[a].getDescription(), ! ((OpenType) ! param.getOpenType()), ! param.getDefaultValue(), ! ((Comparable) ! param.getMinValue()), ! ((Comparable) ! param.getMaxValue())); } return sig; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/ClassLoadingMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/ClassLoadingMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/ClassLoadingMXBeanImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/ClassLoadingMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** import java.lang.management.ClassLoading *** 42,48 **** import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about the class loading * behaviour of the current invocation of the virtual * machine. Instances of this bean are obtained by calling * {@link ManagementFactory#getClassLoadingMXBean()}. --- 42,48 ---- import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about the class loading * behaviour of the current invocation of the virtual * machine. Instances of this bean are obtained by calling * {@link ManagementFactory#getClassLoadingMXBean()}. *************** public final class ClassLoadingMXBeanImp *** 96,99 **** } } - --- 96,98 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/CompilationMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/CompilationMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/CompilationMXBeanImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/CompilationMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** import java.lang.management.CompilationM *** 44,50 **** import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about the JIT * compiler of the virtual machine, if one exists. * Instances of this bean are obtained by calling * {@link ManagementFactory#getCompilationMXBean()}, --- 44,50 ---- import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about the JIT * compiler of the virtual machine, if one exists. * Instances of this bean are obtained by calling * {@link ManagementFactory#getCompilationMXBean()}, *************** public final class CompilationMXBeanImpl *** 66,72 **** /** * Constant for compilation time support. */ ! private static final String COMPILATION_TIME_SUPPORT = "gnu.java.lang.management.CompilationTimeSupport"; /** --- 66,72 ---- /** * Constant for compilation time support. */ ! private static final String COMPILATION_TIME_SUPPORT = "gnu.java.lang.management.CompilationTimeSupport"; /** *************** public final class CompilationMXBeanImpl *** 87,93 **** { return SystemProperties.getProperty(COMPILER_NAME); } ! public boolean isCompilationTimeMonitoringSupported() { return SystemProperties.getProperty(COMPILATION_TIME_SUPPORT) != null; --- 87,93 ---- { return SystemProperties.getProperty(COMPILER_NAME); } ! public boolean isCompilationTimeMonitoringSupported() { return SystemProperties.getProperty(COMPILATION_TIME_SUPPORT) != null; *************** public final class CompilationMXBeanImpl *** 99,105 **** return VMCompilationMXBeanImpl.getTotalCompilationTime(); else throw new UnsupportedOperationException("Compilation time monitoring " ! + "is not supported"); } } --- 99,105 ---- return VMCompilationMXBeanImpl.getTotalCompilationTime(); else throw new UnsupportedOperationException("Compilation time monitoring " ! + "is not supported"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/GarbageCollectorMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/GarbageCollectorMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/GarbageCollectorMXBeanImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/GarbageCollectorMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** import java.lang.management.GarbageColle *** 42,48 **** import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about one of the garbage * collectors used by the current invocation of the * virtual machine. An instance of this bean for each garbage * collector is obtained by calling --- 42,48 ---- import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about one of the garbage * collectors used by the current invocation of the * virtual machine. An instance of this bean for each garbage * collector is obtained by calling diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/MemoryMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/MemoryMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/MemoryMXBeanImpl.java Fri Feb 16 13:51:04 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/MemoryMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** import javax.management.openmbean.OpenTy *** 63,69 **** import javax.management.openmbean.SimpleType; /** ! * Provides access to information about the memory * management of the current invocation of the virtual * machine. Instances of this bean are obtained by calling * {@link ManagementFactory#getMemoryMXBean()}. --- 63,69 ---- import javax.management.openmbean.SimpleType; /** ! * Provides access to information about the memory * management of the current invocation of the virtual * machine. Instances of this bean are obtained by calling * {@link ManagementFactory#getMemoryMXBean()}. *************** public final class MemoryMXBeanImpl *** 88,126 **** { try { ! CompositeType usageType = ! new CompositeType(MemoryUsage.class.getName(), ! "Describes the usage levels of a pool", ! new String[] { "init", "used", ! "committed", "max" ! }, ! new String[] { "Initial level", ! "Used level", ! "Committed level", ! "Maximum level" ! }, ! new OpenType[] { ! SimpleType.LONG, SimpleType.LONG, ! SimpleType.LONG, SimpleType.LONG ! }); ! CompositeType notifType = ! new CompositeType(MemoryNotificationInfo.class.getName(), ! "Provides the notification info on memory usage", ! new String[] { "poolName", "usage", "count" }, ! new String[] { "Name of the memory pool", ! "Usage level of the memory pool", ! "Number of times the threshold " + ! "has been crossed" ! }, ! new OpenType[] { ! SimpleType.STRING, usageType, SimpleType.LONG ! }); ! } ! catch (OpenDataException e) ! { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data types.", e); ! } } /** --- 88,126 ---- { try { ! CompositeType usageType = ! new CompositeType(MemoryUsage.class.getName(), ! "Describes the usage levels of a pool", ! new String[] { "init", "used", ! "committed", "max" ! }, ! new String[] { "Initial level", ! "Used level", ! "Committed level", ! "Maximum level" ! }, ! new OpenType[] { ! SimpleType.LONG, SimpleType.LONG, ! SimpleType.LONG, SimpleType.LONG ! }); ! CompositeType notifType = ! new CompositeType(MemoryNotificationInfo.class.getName(), ! "Provides the notification info on memory usage", ! new String[] { "poolName", "usage", "count" }, ! new String[] { "Name of the memory pool", ! "Usage level of the memory pool", ! "Number of times the threshold " + ! "has been crossed" ! }, ! new OpenType[] { ! SimpleType.STRING, usageType, SimpleType.LONG ! }); ! } ! catch (OpenDataException e) ! { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data types.", e); ! } } /** *************** public final class MemoryMXBeanImpl *** 171,178 **** } public void addNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) { if (listener == null) throw new IllegalArgumentException("Null listener added to bean."); --- 171,178 ---- } public void addNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) { if (listener == null) throw new IllegalArgumentException("Null listener added to bean."); *************** public final class MemoryMXBeanImpl *** 183,195 **** { return new MBeanNotificationInfo[] { ! new MBeanNotificationInfo(new String[] ! { ! MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED, ! MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED ! }, ! Notification.class.getName(), ! "Memory Usage Notifications") }; } --- 183,195 ---- { return new MBeanNotificationInfo[] { ! new MBeanNotificationInfo(new String[] ! { ! MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED, ! MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED ! }, ! Notification.class.getName(), ! "Memory Usage Notifications") }; } *************** public final class MemoryMXBeanImpl *** 200,281 **** boolean foundOne = false; while (it.hasNext()) { ! ListenerData data = (ListenerData) it.next(); ! if (data.getListener() == listener) ! { ! it.remove(); ! foundOne = true; ! } } if (!foundOne) throw new ListenerNotFoundException("The specified listener, " + listener + ! "is not registered with this bean."); } public void removeNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws ListenerNotFoundException { if (!(listeners.remove(new ListenerData(listener, filter, passback)))) { ! throw new ListenerNotFoundException("The specified listener, " + listener + ! " with filter " + filter + ! "and passback " + passback + ! ", is not registered with this bean."); } } void fireNotification(String type, String poolName, long init, long used, ! long committed, long max, long count) { Notification notif = new Notification(type, this, notificationCount); MemoryUsage usage = new MemoryUsage(init, used, committed, max); CompositeData data; try { ! data = new CompositeDataSupport(notifType, ! new String[] { ! "poolName", "usage", "count" ! }, ! new Object[] { ! poolName, usage, Long.valueOf(count) ! }); } catch (OpenDataException e) { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data instance.", e); } notif.setUserData(data); Iterator it = listeners.iterator(); while (it.hasNext()) { ! ListenerData ldata = (ListenerData) it.next(); ! NotificationFilter filter = ldata.getFilter(); ! if (filter == null || filter.isNotificationEnabled(notif)) ! ldata.getListener().handleNotification(notif, ldata.getPassback()); } ++notificationCount; } void fireThresholdExceededNotification(String poolName, long init, ! long used, long committed, ! long max, long count) { fireNotification(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED, ! poolName, init, used, committed, max, count); } void fireCollectionThresholdExceededNotification(String poolName, ! long init, ! long used, ! long committed, ! long max, ! long count) { fireNotification(MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED, ! poolName, init, used, committed, max, count); } } --- 200,281 ---- boolean foundOne = false; while (it.hasNext()) { ! ListenerData data = (ListenerData) it.next(); ! if (data.getListener() == listener) ! { ! it.remove(); ! foundOne = true; ! } } if (!foundOne) throw new ListenerNotFoundException("The specified listener, " + listener + ! "is not registered with this bean."); } public void removeNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws ListenerNotFoundException { if (!(listeners.remove(new ListenerData(listener, filter, passback)))) { ! throw new ListenerNotFoundException("The specified listener, " + listener + ! " with filter " + filter + ! "and passback " + passback + ! ", is not registered with this bean."); } } void fireNotification(String type, String poolName, long init, long used, ! long committed, long max, long count) { Notification notif = new Notification(type, this, notificationCount); MemoryUsage usage = new MemoryUsage(init, used, committed, max); CompositeData data; try { ! data = new CompositeDataSupport(notifType, ! new String[] { ! "poolName", "usage", "count" ! }, ! new Object[] { ! poolName, usage, Long.valueOf(count) ! }); } catch (OpenDataException e) { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data instance.", e); } notif.setUserData(data); Iterator it = listeners.iterator(); while (it.hasNext()) { ! ListenerData ldata = (ListenerData) it.next(); ! NotificationFilter filter = ldata.getFilter(); ! if (filter == null || filter.isNotificationEnabled(notif)) ! ldata.getListener().handleNotification(notif, ldata.getPassback()); } ++notificationCount; } void fireThresholdExceededNotification(String poolName, long init, ! long used, long committed, ! long max, long count) { fireNotification(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED, ! poolName, init, used, committed, max, count); } void fireCollectionThresholdExceededNotification(String poolName, ! long init, ! long used, ! long committed, ! long max, ! long count) { fireNotification(MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED, ! poolName, init, used, committed, max, count); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/MemoryManagerMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/MemoryManagerMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/MemoryManagerMXBeanImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/MemoryManagerMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** import java.lang.management.MemoryManage *** 42,48 **** import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about one of the memory * managers used by the current invocation of the * virtual machine. An instance of this bean for each memory * manager is obtained by calling --- 42,48 ---- import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about one of the memory * managers used by the current invocation of the * virtual machine. An instance of this bean for each memory * manager is obtained by calling diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/MemoryPoolMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/MemoryPoolMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/MemoryPoolMXBeanImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/MemoryPoolMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** import java.lang.management.MemoryUsage; *** 46,52 **** import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about one of the memory * resources or pools used by the current invocation of the * virtual machine. An instance of this bean for each memory * pool is obtained by calling --- 46,52 ---- import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about one of the memory * resources or pools used by the current invocation of the * virtual machine. An instance of this bean for each memory * pool is obtained by calling *************** public final class MemoryPoolMXBeanImpl *** 68,80 **** /** * Constant for collection usage threshold. */ ! private static final String COLLECTION_USAGE_THRESHOLD = "gnu.java.lang.management.CollectionUsageThresholdSupport"; /** * Constant for thread time support. */ ! private static final String USAGE_THRESHOLD = "gnu.java.lang.management.UsageThresholdSupport"; /** --- 68,80 ---- /** * Constant for collection usage threshold. */ ! private static final String COLLECTION_USAGE_THRESHOLD = "gnu.java.lang.management.CollectionUsageThresholdSupport"; /** * Constant for thread time support. */ ! private static final String USAGE_THRESHOLD = "gnu.java.lang.management.UsageThresholdSupport"; /** *************** public final class MemoryPoolMXBeanImpl *** 104,110 **** return VMMemoryPoolMXBeanImpl.getCollectionUsageThreshold(name); else throw new UnsupportedOperationException("A collection usage "+ ! "threshold is not supported."); } public long getCollectionUsageThresholdCount() --- 104,110 ---- return VMMemoryPoolMXBeanImpl.getCollectionUsageThreshold(name); else throw new UnsupportedOperationException("A collection usage "+ ! "threshold is not supported."); } public long getCollectionUsageThresholdCount() *************** public final class MemoryPoolMXBeanImpl *** 113,119 **** return VMMemoryPoolMXBeanImpl.getCollectionUsageThresholdCount(name); else throw new UnsupportedOperationException("A collection usage "+ ! "threshold is not supported."); } public String[] getMemoryManagerNames() --- 113,119 ---- return VMMemoryPoolMXBeanImpl.getCollectionUsageThresholdCount(name); else throw new UnsupportedOperationException("A collection usage "+ ! "threshold is not supported."); } public String[] getMemoryManagerNames() *************** public final class MemoryPoolMXBeanImpl *** 136,142 **** public MemoryType getType() { ! return MemoryType.valueOf(VMMemoryPoolMXBeanImpl.getType(name)); } --- 136,142 ---- public MemoryType getType() { ! return MemoryType.valueOf(VMMemoryPoolMXBeanImpl.getType(name)); } *************** public final class MemoryPoolMXBeanImpl *** 154,160 **** return VMMemoryPoolMXBeanImpl.getUsageThreshold(name); else throw new UnsupportedOperationException("A usage threshold " + ! "is not supported."); } public long getUsageThresholdCount() --- 154,160 ---- return VMMemoryPoolMXBeanImpl.getUsageThreshold(name); else throw new UnsupportedOperationException("A usage threshold " + ! "is not supported."); } public long getUsageThresholdCount() *************** public final class MemoryPoolMXBeanImpl *** 163,169 **** return VMMemoryPoolMXBeanImpl.getUsageThresholdCount(name); else throw new UnsupportedOperationException("A usage threshold " + ! "is not supported."); } public boolean isCollectionUsageThresholdExceeded() --- 163,169 ---- return VMMemoryPoolMXBeanImpl.getUsageThresholdCount(name); else throw new UnsupportedOperationException("A usage threshold " + ! "is not supported."); } public boolean isCollectionUsageThresholdExceeded() *************** public final class MemoryPoolMXBeanImpl *** 202,213 **** checkControlPermissions(); if (threshold < 0) throw new IllegalArgumentException("Threshold of " + threshold + ! "is less than zero."); if (isCollectionUsageThresholdSupported()) VMMemoryPoolMXBeanImpl.setCollectionUsageThreshold(name, threshold); else throw new UnsupportedOperationException("A collection usage "+ ! "threshold is not supported."); } public void setUsageThreshold(long threshold) --- 202,213 ---- checkControlPermissions(); if (threshold < 0) throw new IllegalArgumentException("Threshold of " + threshold + ! "is less than zero."); if (isCollectionUsageThresholdSupported()) VMMemoryPoolMXBeanImpl.setCollectionUsageThreshold(name, threshold); else throw new UnsupportedOperationException("A collection usage "+ ! "threshold is not supported."); } public void setUsageThreshold(long threshold) *************** public final class MemoryPoolMXBeanImpl *** 215,227 **** checkControlPermissions(); if (threshold < 0) throw new IllegalArgumentException("Threshold of " + threshold + ! "is less than zero."); if (isUsageThresholdSupported()) VMMemoryPoolMXBeanImpl.setUsageThreshold(name, threshold); else throw new UnsupportedOperationException("A usage threshold " + ! "is not supported."); } } - --- 215,226 ---- checkControlPermissions(); if (threshold < 0) throw new IllegalArgumentException("Threshold of " + threshold + ! "is less than zero."); if (isUsageThresholdSupported()) VMMemoryPoolMXBeanImpl.setUsageThreshold(name, threshold); else throw new UnsupportedOperationException("A usage threshold " + ! "is not supported."); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/OperatingSystemMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/OperatingSystemMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/OperatingSystemMXBeanImpl.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/OperatingSystemMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** import javax.management.NotCompliantMBea *** 43,49 **** /** * Provides access to information about the underlying operating ! * system. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 43,49 ---- /** * Provides access to information about the underlying operating ! * system. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public final class OperatingSystemMXBean *** 91,95 **** { return System.getProperty("os.version"); } ! } --- 91,95 ---- { return System.getProperty("os.version"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/RuntimeMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/RuntimeMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/RuntimeMXBeanImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/RuntimeMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** public final class RuntimeMXBeanImpl *** 92,99 **** return bootClassPath; else throw ! new UnsupportedOperationException("Retrieving the boot " + ! "classpath is not supported."); } public String getClassPath() --- 92,99 ---- return bootClassPath; else throw ! new UnsupportedOperationException("Retrieving the boot " + ! "classpath is not supported."); } public String getClassPath() *************** public final class RuntimeMXBeanImpl *** 151,166 **** Iterator entries = props.entrySet().iterator(); while (entries.hasNext()) { ! Map.Entry next = (Map.Entry) entries.next(); ! Object key = next.getKey(); ! Object value = next.getValue(); ! if (key instanceof String && ! value instanceof String) ! map.put(key, value); } return map; } ! public long getUptime() { return new Date().getTime() - getStartTime(); --- 151,166 ---- Iterator entries = props.entrySet().iterator(); while (entries.hasNext()) { ! Map.Entry next = (Map.Entry) entries.next(); ! Object key = next.getKey(); ! Object value = next.getValue(); ! if (key instanceof String && ! value instanceof String) ! map.put(key, value); } return map; } ! public long getUptime() { return new Date().getTime() - getStartTime(); *************** public final class RuntimeMXBeanImpl *** 185,195 **** { if (bootClassPath == null) { ! bootClassPath = SystemProperties.getProperty(JAVA_BOOT_CLASS_PATH); ! if (bootClassPath == null) ! bootClassPath = SystemProperties.getProperty(SUN_BOOT_CLASS_PATH); ! if (bootClassPath == null) ! bootClassPathSupported = false; } return bootClassPathSupported; } --- 185,195 ---- { if (bootClassPath == null) { ! bootClassPath = SystemProperties.getProperty(JAVA_BOOT_CLASS_PATH); ! if (bootClassPath == null) ! bootClassPath = SystemProperties.getProperty(SUN_BOOT_CLASS_PATH); ! if (bootClassPath == null) ! bootClassPathSupported = false; } return bootClassPathSupported; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/management/ThreadMXBeanImpl.java gcc-4.6.0/libjava/classpath/gnu/java/lang/management/ThreadMXBeanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/management/ThreadMXBeanImpl.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/management/ThreadMXBeanImpl.java Tue Jan 11 19:46:05 2011 *************** import java.lang.management.ThreadMXBean *** 45,51 **** import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about the threads * of the virtual machine. An instance of this bean is * obtained by calling * {@link ManagementFactory#getThreadMXBean()}. --- 45,51 ---- import javax.management.NotCompliantMBeanException; /** ! * Provides access to information about the threads * of the virtual machine. An instance of this bean is * obtained by calling * {@link ManagementFactory#getThreadMXBean()}. *************** public final class ThreadMXBeanImpl *** 63,87 **** /** * Constant for current thread time support. */ ! private static final String CURRENT_THREAD_TIME_SUPPORT = "gnu.java.lang.management.CurrentThreadTimeSupport"; /** * Constant for thread time support. */ ! private static final String THREAD_TIME_SUPPORT = "gnu.java.lang.management.ThreadTimeSupport"; /** * Constant for thread contention support. */ ! private static final String CONTENTION_SUPPORT = "gnu.java.lang.management.ThreadContentionSupport"; /** * Constant for initial value of thread time support. */ ! private static final String TIME_ENABLED = "gnu.java.lang.management.ThreadTimeInitallyEnabled"; /** --- 63,87 ---- /** * Constant for current thread time support. */ ! private static final String CURRENT_THREAD_TIME_SUPPORT = "gnu.java.lang.management.CurrentThreadTimeSupport"; /** * Constant for thread time support. */ ! private static final String THREAD_TIME_SUPPORT = "gnu.java.lang.management.ThreadTimeSupport"; /** * Constant for thread contention support. */ ! private static final String CONTENTION_SUPPORT = "gnu.java.lang.management.ThreadContentionSupport"; /** * Constant for initial value of thread time support. */ ! private static final String TIME_ENABLED = "gnu.java.lang.management.ThreadTimeInitallyEnabled"; /** *************** public final class ThreadMXBeanImpl *** 125,134 **** } public ThreadInfo[] dumpAllThreads(boolean lockedMonitors, ! boolean lockedSynchronizers) { return getThreadInfo(getAllThreadIds(), lockedMonitors, ! lockedSynchronizers); } public long[] findDeadlockedThreads() --- 125,134 ---- } public ThreadInfo[] dumpAllThreads(boolean lockedMonitors, ! boolean lockedSynchronizers) { return getThreadInfo(getAllThreadIds(), lockedMonitors, ! lockedSynchronizers); } public long[] findDeadlockedThreads() *************** public final class ThreadMXBeanImpl *** 136,143 **** checkMonitorPermissions(); if (!isSynchronizerUsageSupported()) throw new UnsupportedOperationException("Ownable synchronizer usage " + ! "monitoring is not provided " + ! "by this VM."); return VMThreadMXBeanImpl.findDeadlockedThreads(); } --- 136,143 ---- checkMonitorPermissions(); if (!isSynchronizerUsageSupported()) throw new UnsupportedOperationException("Ownable synchronizer usage " + ! "monitoring is not provided " + ! "by this VM."); return VMThreadMXBeanImpl.findDeadlockedThreads(); } *************** public final class ThreadMXBeanImpl *** 157,163 **** { if (!isCurrentThreadCpuTimeSupported()) throw new UnsupportedOperationException("Current thread CPU " + ! "time not supported."); if (!timeEnabled) return -1; return VMThreadMXBeanImpl.getCurrentThreadCpuTime(); --- 157,163 ---- { if (!isCurrentThreadCpuTimeSupported()) throw new UnsupportedOperationException("Current thread CPU " + ! "time not supported."); if (!timeEnabled) return -1; return VMThreadMXBeanImpl.getCurrentThreadCpuTime(); *************** public final class ThreadMXBeanImpl *** 167,173 **** { if (!isCurrentThreadCpuTimeSupported()) throw new UnsupportedOperationException("Current thread user " + ! "time not supported."); if (!timeEnabled) return -1; return VMThreadMXBeanImpl.getCurrentThreadUserTime(); --- 167,173 ---- { if (!isCurrentThreadCpuTimeSupported()) throw new UnsupportedOperationException("Current thread user " + ! "time not supported."); if (!timeEnabled) return -1; return VMThreadMXBeanImpl.getCurrentThreadUserTime(); *************** public final class ThreadMXBeanImpl *** 192,198 **** { if (!isThreadCpuTimeSupported()) throw new UnsupportedOperationException("Thread CPU time not " + ! "supported."); if (id <= 0) throw new IllegalArgumentException("Invalid thread id: " + id); if (!timeEnabled) --- 192,198 ---- { if (!isThreadCpuTimeSupported()) throw new UnsupportedOperationException("Thread CPU time not " + ! "supported."); if (id <= 0) throw new IllegalArgumentException("Invalid thread id: " + id); if (!timeEnabled) *************** public final class ThreadMXBeanImpl *** 228,259 **** ThreadInfo[] infos = new ThreadInfo[ids.length]; for (int a = 0; a < ids.length; ++a) { ! if (ids[a] <= 0) ! throw new IllegalArgumentException("Invalid thread id " + a + ! ": " + ids[a]); ! infos[a] = VMThreadMXBeanImpl.getThreadInfoForId(ids[a], maxDepth); } return infos; } public ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, ! boolean lockedSynchronizers) { checkMonitorPermissions(); if (lockedMonitors && !isObjectMonitorUsageSupported()) throw new UnsupportedOperationException("Monitor usage monitoring is " + ! "not provided by this VM."); if (lockedSynchronizers && !isSynchronizerUsageSupported()) throw new UnsupportedOperationException("Ownable synchronizer usage " + ! "monitoring is not provided " + ! "by this VM."); ThreadInfo[] infos = getThreadInfo(ids, Integer.MAX_VALUE); if (lockedMonitors) for (ThreadInfo info : infos) ! VMThreadMXBeanImpl.getMonitorInfo(info); if (lockedSynchronizers) for (ThreadInfo info : infos) ! VMThreadMXBeanImpl.getLockInfo(info); return infos; } --- 228,259 ---- ThreadInfo[] infos = new ThreadInfo[ids.length]; for (int a = 0; a < ids.length; ++a) { ! if (ids[a] <= 0) ! throw new IllegalArgumentException("Invalid thread id " + a + ! ": " + ids[a]); ! infos[a] = VMThreadMXBeanImpl.getThreadInfoForId(ids[a], maxDepth); } return infos; } public ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, ! boolean lockedSynchronizers) { checkMonitorPermissions(); if (lockedMonitors && !isObjectMonitorUsageSupported()) throw new UnsupportedOperationException("Monitor usage monitoring is " + ! "not provided by this VM."); if (lockedSynchronizers && !isSynchronizerUsageSupported()) throw new UnsupportedOperationException("Ownable synchronizer usage " + ! "monitoring is not provided " + ! "by this VM."); ThreadInfo[] infos = getThreadInfo(ids, Integer.MAX_VALUE); if (lockedMonitors) for (ThreadInfo info : infos) ! VMThreadMXBeanImpl.getMonitorInfo(info); if (lockedSynchronizers) for (ThreadInfo info : infos) ! VMThreadMXBeanImpl.getLockInfo(info); return infos; } *************** public final class ThreadMXBeanImpl *** 261,267 **** { if (!isThreadCpuTimeSupported()) throw new UnsupportedOperationException("Thread user time not " + ! "supported."); if (id <= 0) throw new IllegalArgumentException("Invalid thread id: " + id); if (!timeEnabled) --- 261,267 ---- { if (!isThreadCpuTimeSupported()) throw new UnsupportedOperationException("Thread user time not " + ! "supported."); if (id <= 0) throw new IllegalArgumentException("Invalid thread id: " + id); if (!timeEnabled) *************** public final class ThreadMXBeanImpl *** 297,303 **** return contentionEnabled; else throw new UnsupportedOperationException("Contention monitoring " + ! "not supported."); } public boolean isThreadContentionMonitoringSupported() --- 297,303 ---- return contentionEnabled; else throw new UnsupportedOperationException("Contention monitoring " + ! "not supported."); } public boolean isThreadContentionMonitoringSupported() *************** public final class ThreadMXBeanImpl *** 308,320 **** public boolean isThreadCpuTimeEnabled() { if (isThreadCpuTimeSupported() || ! isCurrentThreadCpuTimeSupported()) return timeEnabled; else throw new UnsupportedOperationException("Thread time not " + ! "supported."); } ! public boolean isThreadCpuTimeSupported() { return SystemProperties.getProperty(THREAD_TIME_SUPPORT) != null; --- 308,320 ---- public boolean isThreadCpuTimeEnabled() { if (isThreadCpuTimeSupported() || ! isCurrentThreadCpuTimeSupported()) return timeEnabled; else throw new UnsupportedOperationException("Thread time not " + ! "supported."); } ! public boolean isThreadCpuTimeSupported() { return SystemProperties.getProperty(THREAD_TIME_SUPPORT) != null; *************** public final class ThreadMXBeanImpl *** 325,331 **** checkControlPermissions(); VMThreadMXBeanImpl.resetPeakThreadCount(); } ! public void setThreadContentionMonitoringEnabled(boolean enable) { checkControlPermissions(); --- 325,331 ---- checkControlPermissions(); VMThreadMXBeanImpl.resetPeakThreadCount(); } ! public void setThreadContentionMonitoringEnabled(boolean enable) { checkControlPermissions(); *************** public final class ThreadMXBeanImpl *** 333,351 **** contentionEnabled = enable; else throw new UnsupportedOperationException("Contention monitoring " + ! "not supported."); ! } ! public void setThreadCpuTimeEnabled(boolean enable) { checkControlPermissions(); if (isThreadCpuTimeSupported() || ! isCurrentThreadCpuTimeSupported()) timeEnabled = enable; else throw new UnsupportedOperationException("Thread time not " + ! "supported."); } } - --- 333,350 ---- contentionEnabled = enable; else throw new UnsupportedOperationException("Contention monitoring " + ! "not supported."); ! } ! public void setThreadCpuTimeEnabled(boolean enable) { checkControlPermissions(); if (isThreadCpuTimeSupported() || ! isCurrentThreadCpuTimeSupported()) timeEnabled = enable; else throw new UnsupportedOperationException("Thread time not " + ! "supported."); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java gcc-4.6.0/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java *** gcc-4.5.2/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java Tue Jan 11 19:46:05 2011 *************** public class TypeSignature *** 176,182 **** * @see #getClassForEncoding(String, boolean) */ public static Class getClassForEncoding(String type_code, boolean descriptor, ! ClassLoader loader) throws ClassNotFoundException { if (descriptor) --- 176,182 ---- * @see #getClassForEncoding(String, boolean) */ public static Class getClassForEncoding(String type_code, boolean descriptor, ! ClassLoader loader) throws ClassNotFoundException { if (descriptor) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/locale/LocaleHelper.java gcc-4.6.0/libjava/classpath/gnu/java/locale/LocaleHelper.java *** gcc-4.5.2/libjava/classpath/gnu/java/locale/LocaleHelper.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/locale/LocaleHelper.java Tue Jan 11 19:46:05 2011 *************** public class LocaleHelper *** 85,91 **** int uscore = variant.indexOf('_'); if (uscore != -1) return new Locale(language, country, ! variant.substring(0, uscore)); if (!variant.isEmpty()) return new Locale(language, country, ""); if (!country.isEmpty()) --- 85,91 ---- int uscore = variant.indexOf('_'); if (uscore != -1) return new Locale(language, country, ! variant.substring(0, uscore)); if (!variant.isEmpty()) return new Locale(language, country, ""); if (!country.isEmpty()) *************** public class LocaleHelper *** 95,101 **** /** * Return an array of all the locales for which there is a ! * {@link Collator} instance. A new array is returned each time. */ public static Locale[] getCollatorLocales() { --- 95,101 ---- /** * Return an array of all the locales for which there is a ! * {@link Collator} instance. A new array is returned each time. */ public static Locale[] getCollatorLocales() { *************** public class LocaleHelper *** 145,148 **** return LocaleData.localeNames[n]; } } - --- 145,147 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/math/Fixed.java gcc-4.6.0/libjava/classpath/gnu/java/math/Fixed.java *** gcc-4.5.2/libjava/classpath/gnu/java/math/Fixed.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/math/Fixed.java Tue Jan 11 19:46:05 2011 *************** public final class Fixed *** 45,51 **** { /** ! * Private constructor to avoid instantiation. */ private Fixed() { --- 45,51 ---- { /** ! * Private constructor to avoid instantiation. */ private Fixed() { *************** public final class Fixed *** 138,144 **** /** * Returns the fixed point value a with n digits * as float. ! * * @param n the number of digits * @param a the fixed point value * --- 138,144 ---- /** * Returns the fixed point value a with n digits * as float. ! * * @param n the number of digits * @param a the fixed point value * *************** public final class Fixed *** 152,158 **** /** * Returns the fixed point value a with n digits * as double. ! * * @param n the number of digits * @param a the fixed point value * --- 152,158 ---- /** * Returns the fixed point value a with n digits * as double. ! * * @param n the number of digits * @param a the fixed point value * *************** public final class Fixed *** 194,200 **** /** * Returns the integer value of the specified fixed point value * a. This simply cuts of the digits (== floor(a)). ! * * @param n the number of digits * @param a the fixed point value * --- 194,200 ---- /** * Returns the integer value of the specified fixed point value * a. This simply cuts of the digits (== floor(a)). ! * * @param n the number of digits * @param a the fixed point value * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/math/GMP.java gcc-4.6.0/libjava/classpath/gnu/java/math/GMP.java *** gcc-4.5.2/libjava/classpath/gnu/java/math/GMP.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/math/GMP.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public final class GMP *** 47,57 **** { private Pointer native_ptr; private int refCount = 1; ! public GMP() { super(); ! natInitialize(); } --- 47,57 ---- { private Pointer native_ptr; private int refCount = 1; ! public GMP() { super(); ! natInitialize(); } *************** public final class GMP *** 59,88 **** { refCount++; } ! private synchronized void releaseRef() { refCount--; if (refCount == 0) { ! natFinalize(); ! native_ptr = null; } } ! protected void finalize() { releaseRef(); } ! ! public void fromByteArray(byte[] v) { acquireRef(); natFromByteArray(v); releaseRef(); } ! public void fromBI(GMP x) { acquireRef(); --- 59,88 ---- { refCount++; } ! private synchronized void releaseRef() { refCount--; if (refCount == 0) { ! natFinalize(); ! native_ptr = null; } } ! protected void finalize() { releaseRef(); } ! ! public void fromByteArray(byte[] v) { acquireRef(); natFromByteArray(v); releaseRef(); } ! public void fromBI(GMP x) { acquireRef(); *************** public final class GMP *** 91,104 **** x.releaseRef(); releaseRef(); } ! public void fromLong(long n) { acquireRef(); natFromLong(n); releaseRef(); } ! public int fromString(String s, int rdx) { acquireRef(); --- 91,104 ---- x.releaseRef(); releaseRef(); } ! public void fromLong(long n) { acquireRef(); natFromLong(n); releaseRef(); } ! public int fromString(String s, int rdx) { acquireRef(); *************** public final class GMP *** 106,119 **** releaseRef(); return result; } ! public void fromSignedMagnitude(byte[] m, boolean isNegative) { acquireRef(); natFromSignedMagnitude(m, isNegative); releaseRef(); } ! public String toString(int b) { acquireRef(); --- 106,119 ---- releaseRef(); return result; } ! public void fromSignedMagnitude(byte[] m, boolean isNegative) { acquireRef(); natFromSignedMagnitude(m, isNegative); releaseRef(); } ! public String toString(int b) { acquireRef(); *************** public final class GMP *** 121,134 **** releaseRef(); return result; } ! public void toByteArray(byte[] r) { acquireRef(); natToByteArray(r); releaseRef(); } ! public double doubleValue() { acquireRef(); --- 121,134 ---- releaseRef(); return result; } ! public void toByteArray(byte[] r) { acquireRef(); natToByteArray(r); releaseRef(); } ! public double doubleValue() { acquireRef(); *************** public final class GMP *** 136,142 **** releaseRef(); return result; } ! public int absIntValue() { acquireRef(); --- 136,142 ---- releaseRef(); return result; } ! public int absIntValue() { acquireRef(); *************** public final class GMP *** 144,150 **** releaseRef(); return result; } ! public int compare(GMP x) { acquireRef(); --- 144,150 ---- releaseRef(); return result; } ! public int compare(GMP x) { acquireRef(); *************** public final class GMP *** 154,160 **** releaseRef(); return result; } ! public void add(GMP x, GMP r) { acquireRef(); --- 154,160 ---- releaseRef(); return result; } ! public void add(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 165,171 **** x.releaseRef(); releaseRef(); } ! public void subtract(GMP x, GMP r) { acquireRef(); --- 165,171 ---- x.releaseRef(); releaseRef(); } ! public void subtract(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 176,182 **** x.releaseRef(); releaseRef(); } ! public void multiply(GMP x, GMP r) { acquireRef(); --- 176,182 ---- x.releaseRef(); releaseRef(); } ! public void multiply(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 187,193 **** x.releaseRef(); releaseRef(); } ! public void quotient(GMP x, GMP r) { acquireRef(); --- 187,193 ---- x.releaseRef(); releaseRef(); } ! public void quotient(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 198,204 **** x.releaseRef(); releaseRef(); } ! public void remainder(GMP x, GMP r) { acquireRef(); --- 198,204 ---- x.releaseRef(); releaseRef(); } ! public void remainder(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 209,215 **** x.releaseRef(); releaseRef(); } ! public void quotientAndRemainder(GMP x, GMP q, GMP r) { acquireRef(); --- 209,215 ---- x.releaseRef(); releaseRef(); } ! public void quotientAndRemainder(GMP x, GMP q, GMP r) { acquireRef(); *************** public final class GMP *** 222,228 **** x.releaseRef(); releaseRef(); } ! public void modulo(GMP x, GMP r) { acquireRef(); --- 222,228 ---- x.releaseRef(); releaseRef(); } ! public void modulo(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 233,239 **** x.releaseRef(); releaseRef(); } ! public void pow(int n, GMP r) { acquireRef(); --- 233,239 ---- x.releaseRef(); releaseRef(); } ! public void pow(int n, GMP r) { acquireRef(); *************** public final class GMP *** 242,248 **** r.releaseRef(); releaseRef(); } ! public void modPow(GMP e, GMP m, GMP r) { acquireRef(); --- 242,248 ---- r.releaseRef(); releaseRef(); } ! public void modPow(GMP e, GMP m, GMP r) { acquireRef(); *************** public final class GMP *** 255,261 **** e.releaseRef(); releaseRef(); } ! public void modInverse(GMP m, GMP r) { acquireRef(); --- 255,261 ---- e.releaseRef(); releaseRef(); } ! public void modInverse(GMP m, GMP r) { acquireRef(); *************** public final class GMP *** 277,283 **** x.releaseRef(); releaseRef(); } ! public void shiftLeft(int n, GMP r) { acquireRef(); --- 277,283 ---- x.releaseRef(); releaseRef(); } ! public void shiftLeft(int n, GMP r) { acquireRef(); *************** public final class GMP *** 286,292 **** r.releaseRef(); releaseRef(); } ! public void shiftRight(int n, GMP r) { acquireRef(); --- 286,292 ---- r.releaseRef(); releaseRef(); } ! public void shiftRight(int n, GMP r) { acquireRef(); *************** public final class GMP *** 295,301 **** r.releaseRef(); releaseRef(); } ! public void abs(GMP r) { acquireRef(); --- 295,301 ---- r.releaseRef(); releaseRef(); } ! public void abs(GMP r) { acquireRef(); *************** public final class GMP *** 304,310 **** r.releaseRef(); releaseRef(); } ! public void negate(GMP r) { acquireRef(); --- 304,310 ---- r.releaseRef(); releaseRef(); } ! public void negate(GMP r) { acquireRef(); *************** public final class GMP *** 313,319 **** r.releaseRef(); releaseRef(); } ! public int bitLength() { acquireRef(); --- 313,319 ---- r.releaseRef(); releaseRef(); } ! public int bitLength() { acquireRef(); *************** public final class GMP *** 321,327 **** releaseRef(); return result; } ! public int bitCount() { acquireRef(); --- 321,327 ---- releaseRef(); return result; } ! public int bitCount() { acquireRef(); *************** public final class GMP *** 329,335 **** releaseRef(); return result; } ! public void and(GMP x, GMP r) { acquireRef(); --- 329,335 ---- releaseRef(); return result; } ! public void and(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 340,346 **** x.releaseRef(); releaseRef(); } ! public void or(GMP x, GMP r) { acquireRef(); --- 340,346 ---- x.releaseRef(); releaseRef(); } ! public void or(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 351,357 **** x.releaseRef(); releaseRef(); } ! public void xor(GMP x, GMP r) { acquireRef(); --- 351,357 ---- x.releaseRef(); releaseRef(); } ! public void xor(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 362,368 **** x.releaseRef(); releaseRef(); } ! public void andNot(GMP x, GMP r) { acquireRef(); --- 362,368 ---- x.releaseRef(); releaseRef(); } ! public void andNot(GMP x, GMP r) { acquireRef(); *************** public final class GMP *** 373,379 **** x.releaseRef(); releaseRef(); } ! public void not(GMP r) { acquireRef(); --- 373,379 ---- x.releaseRef(); releaseRef(); } ! public void not(GMP r) { acquireRef(); *************** public final class GMP *** 382,388 **** r.releaseRef(); releaseRef(); } ! public void flipBit(int n, GMP r) { acquireRef(); --- 382,388 ---- r.releaseRef(); releaseRef(); } ! public void flipBit(int n, GMP r) { acquireRef(); *************** public final class GMP *** 399,405 **** releaseRef(); return result; } ! public void setBit(int n, boolean setIt, GMP r) { acquireRef(); --- 399,405 ---- releaseRef(); return result; } ! public void setBit(int n, boolean setIt, GMP r) { acquireRef(); *************** public final class GMP *** 408,414 **** r.releaseRef(); releaseRef(); } ! public int testPrimality(int certainty) { acquireRef(); --- 408,414 ---- r.releaseRef(); releaseRef(); } ! public int testPrimality(int certainty) { acquireRef(); *************** public final class GMP *** 416,422 **** releaseRef(); return result; } ! public int lowestSetBit() { acquireRef(); --- 416,422 ---- releaseRef(); return result; } ! public int lowestSetBit() { acquireRef(); *************** public final class GMP *** 424,448 **** releaseRef(); return result; } ! // Native methods ......................................................... ! public static native void natInitializeLibrary(); ! private native void natInitialize(); private native void natFinalize(); ! private native void natFromLong(long n); private native void natFromBI(Pointer x); private native void natFromByteArray(byte[] v); private native int natFromString(String s, int rdx); private native void natFromSignedMagnitude(byte[] m, boolean isNegative); ! private native String natToString(int base); private native void natToByteArray(byte[] r); private native int natAbsIntValue(); private native double natDoubleValue(); ! private native int natCompare(Pointer y); private native void natAdd(Pointer x, Pointer r); private native void natSubtract(Pointer x, Pointer r); --- 424,448 ---- releaseRef(); return result; } ! // Native methods ......................................................... ! public static native void natInitializeLibrary(); ! private native void natInitialize(); private native void natFinalize(); ! private native void natFromLong(long n); private native void natFromBI(Pointer x); private native void natFromByteArray(byte[] v); private native int natFromString(String s, int rdx); private native void natFromSignedMagnitude(byte[] m, boolean isNegative); ! private native String natToString(int base); private native void natToByteArray(byte[] r); private native int natAbsIntValue(); private native double natDoubleValue(); ! private native int natCompare(Pointer y); private native void natAdd(Pointer x, Pointer r); private native void natSubtract(Pointer x, Pointer r); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/math/MPN.java gcc-4.6.0/libjava/classpath/gnu/java/math/MPN.java *** gcc-4.5.2/libjava/classpath/gnu/java/math/MPN.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/math/MPN.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class MPN *** 59,67 **** long carry = (long) y & 0xffffffffL; for (int i = 0; i < size; i++) { ! carry += ((long) x[i] & 0xffffffffL); ! dest[i] = (int) carry; ! carry >>= 32; } return (int) carry; } --- 59,67 ---- long carry = (long) y & 0xffffffffL; for (int i = 0; i < size; i++) { ! carry += ((long) x[i] & 0xffffffffL); ! dest[i] = (int) carry; ! carry >>= 32; } return (int) carry; } *************** public class MPN *** 77,86 **** long carry = 0; for (int i = 0; i < len; i++) { ! carry += ((long) x[i] & 0xffffffffL) ! + ((long) y[i] & 0xffffffffL); ! dest[i] = (int) carry; ! carry >>>= 32; } return (int) carry; } --- 77,86 ---- long carry = 0; for (int i = 0; i < len; i++) { ! carry += ((long) x[i] & 0xffffffffL) ! + ((long) y[i] & 0xffffffffL); ! dest[i] = (int) carry; ! carry >>>= 32; } return (int) carry; } *************** public class MPN *** 96,110 **** int cy = 0; for (int i = 0; i < size; i++) { ! int y = Y[i]; ! int x = X[i]; ! y += cy; /* add previous carry to subtrahend */ ! // Invert the high-order bit, because: (unsigned) X > (unsigned) Y ! // iff: (int) (X^0x80000000) > (int) (Y^0x80000000). ! cy = (y^0x80000000) < (cy^0x80000000) ? 1 : 0; ! y = x - y; ! cy += (y^0x80000000) > (x ^ 0x80000000) ? 1 : 0; ! dest[i] = y; } return cy; } --- 96,110 ---- int cy = 0; for (int i = 0; i < size; i++) { ! int y = Y[i]; ! int x = X[i]; ! y += cy; /* add previous carry to subtrahend */ ! // Invert the high-order bit, because: (unsigned) X > (unsigned) Y ! // iff: (int) (X^0x80000000) > (int) (Y^0x80000000). ! cy = (y^0x80000000) < (cy^0x80000000) ? 1 : 0; ! y = x - y; ! cy += (y^0x80000000) > (x ^ 0x80000000) ? 1 : 0; ! dest[i] = y; } return cy; } *************** public class MPN *** 142,164 **** * This function is basically the same gmp's mpn_mul. */ public static void mul (int[] dest, ! int[] x, int xlen, ! int[] y, int ylen) { dest[xlen] = MPN.mul_1 (dest, x, xlen, y[0]); for (int i = 1; i < ylen; i++) { ! long yword = (long) y[i] & 0xffffffffL; ! long carry = 0; ! for (int j = 0; j < xlen; j++) ! { ! carry += ((long) x[j] & 0xffffffffL) * yword ! + ((long) dest[i+j] & 0xffffffffL); ! dest[i+j] = (int) carry; ! carry >>>= 32; ! } ! dest[i+xlen] = (int) carry; } } --- 142,164 ---- * This function is basically the same gmp's mpn_mul. */ public static void mul (int[] dest, ! int[] x, int xlen, ! int[] y, int ylen) { dest[xlen] = MPN.mul_1 (dest, x, xlen, y[0]); for (int i = 1; i < ylen; i++) { ! long yword = (long) y[i] & 0xffffffffL; ! long carry = 0; ! for (int j = 0; j < xlen; j++) ! { ! carry += ((long) x[j] & 0xffffffffL) * yword ! + ((long) dest[i+j] & 0xffffffffL); ! dest[i+j] = (int) carry; ! carry >>>= 32; ! } ! dest[i+xlen] = (int) carry; } } *************** public class MPN *** 174,244 **** long a0 = N & 0xffffffffL; if (D >= 0) { ! if (a1 < ((D - a1 - (a0 >>> 31)) & 0xffffffffL)) ! { ! /* dividend, divisor, and quotient are nonnegative */ ! q = N / D; ! r = N % D; ! } ! else ! { ! /* Compute c1*2^32 + c0 = a1*2^32 + a0 - 2^31*d */ ! long c = N - ((long) D << 31); ! /* Divide (c1*2^32 + c0) by d */ ! q = c / D; ! r = c % D; ! /* Add 2^31 to quotient */ ! q += 1 << 31; ! } } else { ! long b1 = D >>> 1; /* d/2, between 2^30 and 2^31 - 1 */ ! //long c1 = (a1 >> 1); /* A/2 */ ! //int c0 = (a1 << 31) + (a0 >> 1); ! long c = N >>> 1; ! if (a1 < b1 || (a1 >> 1) < b1) ! { ! if (a1 < b1) ! { ! q = c / b1; ! r = c % b1; ! } ! else /* c1 < b1, so 2^31 <= (A/2)/b1 < 2^32 */ ! { ! c = ~(c - (b1 << 32)); ! q = c / b1; /* (A/2) / (d/2) */ ! r = c % b1; ! q = (~q) & 0xffffffffL; /* (A/2)/b1 */ ! r = (b1 - 1) - r; /* r < b1 => new r >= 0 */ ! } ! r = 2 * r + (a0 & 1); ! if ((D & 1) != 0) ! { ! if (r >= q) { ! r = r - q; ! } else if (q - r <= ((long) D & 0xffffffffL)) { r = r - q + D; ! q -= 1; ! } else { r = r - q + D + D; ! q -= 2; ! } ! } ! } ! else /* Implies c1 = b1 */ ! { /* Hence a1 = d - 1 = 2*b1 - 1 */ ! if (a0 >= ((long)(-D) & 0xffffffffL)) ! { ! q = -1; ! r = a0 + D; ! } ! else ! { ! q = -2; ! r = a0 + D + D; ! } ! } } return (r << 32) | (q & 0xFFFFFFFFl); --- 174,244 ---- long a0 = N & 0xffffffffL; if (D >= 0) { ! if (a1 < ((D - a1 - (a0 >>> 31)) & 0xffffffffL)) ! { ! /* dividend, divisor, and quotient are nonnegative */ ! q = N / D; ! r = N % D; ! } ! else ! { ! /* Compute c1*2^32 + c0 = a1*2^32 + a0 - 2^31*d */ ! long c = N - ((long) D << 31); ! /* Divide (c1*2^32 + c0) by d */ ! q = c / D; ! r = c % D; ! /* Add 2^31 to quotient */ ! q += 1 << 31; ! } } else { ! long b1 = D >>> 1; /* d/2, between 2^30 and 2^31 - 1 */ ! //long c1 = (a1 >> 1); /* A/2 */ ! //int c0 = (a1 << 31) + (a0 >> 1); ! long c = N >>> 1; ! if (a1 < b1 || (a1 >> 1) < b1) ! { ! if (a1 < b1) ! { ! q = c / b1; ! r = c % b1; ! } ! else /* c1 < b1, so 2^31 <= (A/2)/b1 < 2^32 */ ! { ! c = ~(c - (b1 << 32)); ! q = c / b1; /* (A/2) / (d/2) */ ! r = c % b1; ! q = (~q) & 0xffffffffL; /* (A/2)/b1 */ ! r = (b1 - 1) - r; /* r < b1 => new r >= 0 */ ! } ! r = 2 * r + (a0 & 1); ! if ((D & 1) != 0) ! { ! if (r >= q) { ! r = r - q; ! } else if (q - r <= ((long) D & 0xffffffffL)) { r = r - q + D; ! q -= 1; ! } else { r = r - q + D + D; ! q -= 2; ! } ! } ! } ! else /* Implies c1 = b1 */ ! { /* Hence a1 = d - 1 = 2*b1 - 1 */ ! if (a0 >= ((long)(-D) & 0xffffffffL)) ! { ! q = -1; ! r = a0 + D; ! } ! else ! { ! q = -2; ! r = a0 + D + D; ! } ! } } return (r << 32) | (q & 0xFFFFFFFFl); *************** public class MPN *** 251,257 **** */ public static int divmod_1 (int[] quotient, int[] dividend, ! int len, int divisor) { int i = len - 1; long r = dividend[i]; --- 251,257 ---- */ public static int divmod_1 (int[] quotient, int[] dividend, ! int len, int divisor) { int i = len - 1; long r = dividend[i]; *************** public class MPN *** 259,274 **** r = 0; else { ! quotient[i--] = 0; ! r <<= 32; } for (; i >= 0; i--) { ! int n0 = dividend[i]; ! r = (r & ~0xffffffffL) | (n0 & 0xffffffffL); ! r = udiv_qrnnd (r, divisor); ! quotient[i] = (int) r; } return (int)(r >> 32); } --- 259,274 ---- r = 0; else { ! quotient[i--] = 0; ! r <<= 32; } for (; i >= 0; i--) { ! int n0 = dividend[i]; ! r = (r & ~0xffffffffL) | (n0 & 0xffffffffL); ! r = udiv_qrnnd (r, divisor); ! quotient[i] = (int) r; } return (int)(r >> 32); } *************** public class MPN *** 285,303 **** int j = 0; do { ! long prod = ((long) x[j] & 0xffffffffL) * yl; ! int prod_low = (int) prod; ! int prod_high = (int) (prod >> 32); ! prod_low += carry; ! // Invert the high-order bit, because: (unsigned) X > (unsigned) Y ! // iff: (int) (X^0x80000000) > (int) (Y^0x80000000). ! carry = ((prod_low ^ 0x80000000) < (carry ^ 0x80000000) ? 1 : 0) ! + prod_high; ! int x_j = dest[offset+j]; ! prod_low = x_j - prod_low; ! if ((prod_low ^ 0x80000000) > (x_j ^ 0x80000000)) ! carry++; ! dest[offset+j] = prod_low; } while (++j < len); return carry; --- 285,303 ---- int j = 0; do { ! long prod = ((long) x[j] & 0xffffffffL) * yl; ! int prod_low = (int) prod; ! int prod_high = (int) (prod >> 32); ! prod_low += carry; ! // Invert the high-order bit, because: (unsigned) X > (unsigned) Y ! // iff: (int) (X^0x80000000) > (int) (Y^0x80000000). ! carry = ((prod_low ^ 0x80000000) < (carry ^ 0x80000000) ? 1 : 0) ! + prod_high; ! int x_j = dest[offset+j]; ! prod_low = x_j - prod_low; ! if ((prod_low ^ 0x80000000) > (x_j ^ 0x80000000)) ! carry++; ! dest[offset+j] = prod_low; } while (++j < len); return carry; *************** public class MPN *** 328,364 **** int j = nx; do { // loop over digits of quotient ! // Knuth's j == our nx-j. ! // Knuth's u[j:j+n] == our zds[j:j-ny]. ! int qhat; // treated as unsigned ! if (zds[j]==y[ny-1]) ! qhat = -1; // 0xffffffff ! else ! { ! long w = (((long)(zds[j])) << 32) + ((long)zds[j-1] & 0xffffffffL); ! qhat = (int) udiv_qrnnd (w, y[ny-1]); ! } ! if (qhat != 0) ! { ! int borrow = submul_1 (zds, j - ny, y, ny, qhat); ! int save = zds[j]; ! long num = ((long)save&0xffffffffL) - ((long)borrow&0xffffffffL); while (num != 0) ! { ! qhat--; ! long carry = 0; ! for (int i = 0; i < ny; i++) ! { ! carry += ((long) zds[j-ny+i] & 0xffffffffL) ! + ((long) y[i] & 0xffffffffL); ! zds[j-ny+i] = (int) carry; ! carry >>>= 32; ! } ! zds[j] += carry; ! num = carry - 1; ! } ! } ! zds[j] = qhat; } while (--j >= ny); } --- 328,364 ---- int j = nx; do { // loop over digits of quotient ! // Knuth's j == our nx-j. ! // Knuth's u[j:j+n] == our zds[j:j-ny]. ! int qhat; // treated as unsigned ! if (zds[j]==y[ny-1]) ! qhat = -1; // 0xffffffff ! else ! { ! long w = (((long)(zds[j])) << 32) + ((long)zds[j-1] & 0xffffffffL); ! qhat = (int) udiv_qrnnd (w, y[ny-1]); ! } ! if (qhat != 0) ! { ! int borrow = submul_1 (zds, j - ny, y, ny, qhat); ! int save = zds[j]; ! long num = ((long)save&0xffffffffL) - ((long)borrow&0xffffffffL); while (num != 0) ! { ! qhat--; ! long carry = 0; ! for (int i = 0; i < ny; i++) ! { ! carry += ((long) zds[j-ny+i] & 0xffffffffL) ! + ((long) y[i] & 0xffffffffL); ! zds[j-ny+i] = (int) carry; ! carry >>>= 32; ! } ! zds[j] += carry; ! num = carry - 1; ! } ! } ! zds[j] = qhat; } while (--j >= ny); } *************** public class MPN *** 372,390 **** { if (radix < 10) { ! if (radix < 8) ! { ! if (radix <= 2) ! return 32; ! else if (radix == 3) ! return 20; ! else if (radix == 4) ! return 16; ! else ! return 18 - radix; ! } ! else ! return 10; } else if (radix < 12) return 9; --- 372,390 ---- { if (radix < 10) { ! if (radix < 8) ! { ! if (radix <= 2) ! return 32; ! else if (radix == 3) ! return 20; ! else if (radix == 4) ! return 16; ! else ! return 18 - radix; ! } ! else ! return 10; } else if (radix < 12) return 9; *************** public class MPN *** 410,418 **** for (int k = 16; k > 0; k = k >> 1) { int j = i >>> k; if (j == 0) ! count += k; else ! i = j; } return count; } --- 410,418 ---- for (int k = 16; k > 0; k = k >> 1) { int j = i >>> k; if (j == 0) ! count += k; else ! i = j; } return count; } *************** public class MPN *** 422,482 **** int size = 0; if ((base & (base - 1)) == 0) { ! // The base is a power of 2. Read the input string from ! // least to most significant character/digit. */ ! int next_bitpos = 0; ! int bits_per_indigit = 0; ! for (int i = base; (i >>= 1) != 0; ) bits_per_indigit++; ! int res_digit = 0; ! for (int i = str_len; --i >= 0; ) ! { ! int inp_digit = str[i]; ! res_digit |= inp_digit << next_bitpos; ! next_bitpos += bits_per_indigit; ! if (next_bitpos >= 32) ! { ! dest[size++] = res_digit; ! next_bitpos -= 32; ! res_digit = inp_digit >> (bits_per_indigit - next_bitpos); ! } ! } ! if (res_digit != 0) ! dest[size++] = res_digit; } else { ! // General case. The base is not a power of 2. ! int indigits_per_limb = MPN.chars_per_word (base); ! int str_pos = 0; ! while (str_pos < str_len) ! { ! int chunk = str_len - str_pos; ! if (chunk > indigits_per_limb) ! chunk = indigits_per_limb; ! int res_digit = str[str_pos++]; ! int big_base = base; ! while (--chunk > 0) ! { ! res_digit = res_digit * base + str[str_pos++]; ! big_base *= base; ! } ! int cy_limb; ! if (size == 0) ! cy_limb = res_digit; ! else ! { ! cy_limb = MPN.mul_1 (dest, dest, size, big_base); ! cy_limb += MPN.add_1 (dest, dest, size, res_digit); ! } ! if (cy_limb != 0) ! dest[size++] = cy_limb; ! } } return size; } --- 422,482 ---- int size = 0; if ((base & (base - 1)) == 0) { ! // The base is a power of 2. Read the input string from ! // least to most significant character/digit. */ ! int next_bitpos = 0; ! int bits_per_indigit = 0; ! for (int i = base; (i >>= 1) != 0; ) bits_per_indigit++; ! int res_digit = 0; ! for (int i = str_len; --i >= 0; ) ! { ! int inp_digit = str[i]; ! res_digit |= inp_digit << next_bitpos; ! next_bitpos += bits_per_indigit; ! if (next_bitpos >= 32) ! { ! dest[size++] = res_digit; ! next_bitpos -= 32; ! res_digit = inp_digit >> (bits_per_indigit - next_bitpos); ! } ! } ! if (res_digit != 0) ! dest[size++] = res_digit; } else { ! // General case. The base is not a power of 2. ! int indigits_per_limb = MPN.chars_per_word (base); ! int str_pos = 0; ! while (str_pos < str_len) ! { ! int chunk = str_len - str_pos; ! if (chunk > indigits_per_limb) ! chunk = indigits_per_limb; ! int res_digit = str[str_pos++]; ! int big_base = base; ! while (--chunk > 0) ! { ! res_digit = res_digit * base + str[str_pos++]; ! big_base *= base; ! } ! int cy_limb; ! if (size == 0) ! cy_limb = res_digit; ! else ! { ! cy_limb = MPN.mul_1 (dest, dest, size, big_base); ! cy_limb += MPN.add_1 (dest, dest, size, res_digit); ! } ! if (cy_limb != 0) ! dest[size++] = cy_limb; ! } } return size; } *************** public class MPN *** 489,510 **** { while (--size >= 0) { ! int x_word = x[size]; ! int y_word = y[size]; ! if (x_word != y_word) ! { ! // Invert the high-order bit, because: ! // (unsigned) X > (unsigned) Y iff ! // (int) (X^0x80000000) > (int) (Y^0x80000000). ! return (x_word ^ 0x80000000) > (y_word ^0x80000000) ? 1 : -1; ! } } return 0; } /** * Compare x[0:xlen-1] with y[0:ylen-1], treating them as unsigned integers. ! * * @return -1, 0, or 1 depending on if x<y, x==y, or x>y. */ public static int cmp (int[] x, int xlen, int[] y, int ylen) --- 489,510 ---- { while (--size >= 0) { ! int x_word = x[size]; ! int y_word = y[size]; ! if (x_word != y_word) ! { ! // Invert the high-order bit, because: ! // (unsigned) X > (unsigned) Y iff ! // (int) (X^0x80000000) > (int) (Y^0x80000000). ! return (x_word ^ 0x80000000) > (y_word ^0x80000000) ? 1 : -1; ! } } return 0; } /** * Compare x[0:xlen-1] with y[0:ylen-1], treating them as unsigned integers. ! * * @return -1, 0, or 1 depending on if x<y, x==y, or x>y. */ public static int cmp (int[] x, int xlen, int[] y, int ylen) *************** public class MPN *** 521,527 **** * Assumes: 0 < count < 32 */ public static int rshift (int[] dest, int[] x, int x_start, ! int len, int count) { int count_2 = 32 - count; int low_word = x[x_start]; --- 521,527 ---- * Assumes: 0 < count < 32 */ public static int rshift (int[] dest, int[] x, int x_start, ! int len, int count) { int count_2 = 32 - count; int low_word = x[x_start]; *************** public class MPN *** 529,537 **** int i = 1; for (; i < len; i++) { ! int high_word = x[x_start+i]; ! dest[i-1] = (low_word >>> count) | (high_word << count_2); ! low_word = high_word; } dest[i-1] = low_word >>> count; return retval; --- 529,537 ---- int i = 1; for (; i < len; i++) { ! int high_word = x[x_start+i]; ! dest[i-1] = (low_word >>> count) | (high_word << count_2); ! low_word = high_word; } dest[i-1] = low_word >>> count; return retval; *************** public class MPN *** 546,558 **** * Same as rshift, but handles count==0 (and has no return value). */ public static void rshift0 (int[] dest, int[] x, int x_start, ! int len, int count) { if (count > 0) rshift(dest, x, x_start, len, count); else for (int i = 0; i < len; i++) ! dest[i] = x[i + x_start]; } /** Return the long-truncated value of right shifting. --- 546,558 ---- * Same as rshift, but handles count==0 (and has no return value). */ public static void rshift0 (int[] dest, int[] x, int x_start, ! int len, int count) { if (count > 0) rshift(dest, x, x_start, len, count); else for (int i = 0; i < len; i++) ! dest[i] = x[i + x_start]; } /** Return the long-truncated value of right shifting. *************** public class MPN *** 571,580 **** int w1 = wordno >= len ? sign : x[wordno]; if (count != 0) { ! wordno++; ! int w2 = wordno >= len ? sign : x[wordno]; ! w0 = (w0 >>> count) | (w1 << (32-count)); ! w1 = (w1 >>> count) | (w2 << (32-count)); } return ((long)w1 << 32) | ((long)w0 & 0xffffffffL); } --- 571,580 ---- int w1 = wordno >= len ? sign : x[wordno]; if (count != 0) { ! wordno++; ! int w2 = wordno >= len ? sign : x[wordno]; ! w0 = (w0 >>> count) | (w1 << (32-count)); ! w1 = (w1 >>> count) | (w2 << (32-count)); } return ((long)w1 << 32) | ((long)w0 & 0xffffffffL); } *************** public class MPN *** 587,593 **** */ public static int lshift (int[] dest, int d_offset, ! int[] x, int len, int count) { int count_2 = 32 - count; int i = len - 1; --- 587,593 ---- */ public static int lshift (int[] dest, int d_offset, ! int[] x, int len, int count) { int count_2 = 32 - count; int i = len - 1; *************** public class MPN *** 596,604 **** d_offset++; while (--i >= 0) { ! int low_word = x[i]; ! dest[d_offset+i] = (high_word << count) | (low_word >>> count_2); ! high_word = low_word; } dest[d_offset+i] = high_word << count; return retval; --- 596,604 ---- d_offset++; while (--i >= 0) { ! int low_word = x[i]; ! dest[d_offset+i] = (high_word << count) | (low_word >>> count_2); ! high_word = low_word; } dest[d_offset+i] = high_word << count; return retval; *************** public class MPN *** 611,623 **** int i = 0; while ((word & 0xF) == 0) { ! word >>= 4; ! i += 4; } if ((word & 3) == 0) { ! word >>= 2; ! i += 2; } if ((word & 1) == 0) i += 1; --- 611,623 ---- int i = 0; while ((word & 0xF) == 0) { ! word >>= 4; ! i += 4; } if ((word & 3) == 0) { ! word >>= 2; ! i += 2; } if ((word & 1) == 0) i += 1; *************** public class MPN *** 630,637 **** { for (int i = 0; ; i++) { ! if (words[i] != 0) ! return 32 * i + findLowestBit (words[i]); } } --- 630,637 ---- { for (int i = 0; ; i++) { ! if (words[i] != 0) ! return 32 * i + findLowestBit (words[i]); } } *************** public class MPN *** 646,657 **** // Find sh such that both x and y are divisible by 2**sh. for (i = 0; ; i++) { ! word = x[i] | y[i]; ! if (word != 0) ! { ! // Must terminate, since x and y are non-zero. ! break; ! } } int initShiftWords = i; int initShiftBits = findLowestBit (word); --- 646,657 ---- // Find sh such that both x and y are divisible by 2**sh. for (i = 0; ; i++) { ! word = x[i] | y[i]; ! if (word != 0) ! { ! // Must terminate, since x and y are non-zero. ! break; ! } } int initShiftWords = i; int initShiftBits = findLowestBit (word); *************** public class MPN *** 666,734 **** int[] other_arg; /* The other one can be even or odd. */ if ((x[0] & 1) != 0) { ! odd_arg = x; ! other_arg = y; } else { ! odd_arg = y; ! other_arg = x; } for (;;) { ! // Shift other_arg until it is odd; this doesn't ! // affect the gcd, since we divide by 2**k, which does not ! // divide odd_arg. ! for (i = 0; other_arg[i] == 0; ) i++; ! if (i > 0) ! { ! int j; ! for (j = 0; j < len-i; j++) ! other_arg[j] = other_arg[j+i]; ! for ( ; j < len; j++) ! other_arg[j] = 0; ! } ! i = findLowestBit(other_arg[0]); ! if (i > 0) ! MPN.rshift (other_arg, other_arg, 0, len, i); ! // Now both odd_arg and other_arg are odd. ! // Subtract the smaller from the larger. ! // This does not change the result, since gcd(a-b,b)==gcd(a,b). ! i = MPN.cmp(odd_arg, other_arg, len); ! if (i == 0) ! break; ! if (i > 0) ! { // odd_arg > other_arg ! MPN.sub_n (odd_arg, odd_arg, other_arg, len); ! // Now odd_arg is even, so swap with other_arg; ! int[] tmp = odd_arg; odd_arg = other_arg; other_arg = tmp; ! } ! else ! { // other_arg > odd_arg ! MPN.sub_n (other_arg, other_arg, odd_arg, len); ! } ! while (odd_arg[len-1] == 0 && other_arg[len-1] == 0) ! len--; } if (initShiftWords + initShiftBits > 0) { ! if (initShiftBits > 0) ! { ! int sh_out = MPN.lshift (x, initShiftWords, x, len, initShiftBits); ! if (sh_out != 0) ! x[(len++)+initShiftWords] = sh_out; ! } ! else ! { ! for (i = len; --i >= 0;) ! x[i+initShiftWords] = x[i]; ! } ! for (i = initShiftWords; --i >= 0; ) ! x[i] = 0; ! len += initShiftWords; } return len; } --- 666,734 ---- int[] other_arg; /* The other one can be even or odd. */ if ((x[0] & 1) != 0) { ! odd_arg = x; ! other_arg = y; } else { ! odd_arg = y; ! other_arg = x; } for (;;) { ! // Shift other_arg until it is odd; this doesn't ! // affect the gcd, since we divide by 2**k, which does not ! // divide odd_arg. ! for (i = 0; other_arg[i] == 0; ) i++; ! if (i > 0) ! { ! int j; ! for (j = 0; j < len-i; j++) ! other_arg[j] = other_arg[j+i]; ! for ( ; j < len; j++) ! other_arg[j] = 0; ! } ! i = findLowestBit(other_arg[0]); ! if (i > 0) ! MPN.rshift (other_arg, other_arg, 0, len, i); ! // Now both odd_arg and other_arg are odd. ! // Subtract the smaller from the larger. ! // This does not change the result, since gcd(a-b,b)==gcd(a,b). ! i = MPN.cmp(odd_arg, other_arg, len); ! if (i == 0) ! break; ! if (i > 0) ! { // odd_arg > other_arg ! MPN.sub_n (odd_arg, odd_arg, other_arg, len); ! // Now odd_arg is even, so swap with other_arg; ! int[] tmp = odd_arg; odd_arg = other_arg; other_arg = tmp; ! } ! else ! { // other_arg > odd_arg ! MPN.sub_n (other_arg, other_arg, odd_arg, len); ! } ! while (odd_arg[len-1] == 0 && other_arg[len-1] == 0) ! len--; } if (initShiftWords + initShiftBits > 0) { ! if (initShiftBits > 0) ! { ! int sh_out = MPN.lshift (x, initShiftWords, x, len, initShiftBits); ! if (sh_out != 0) ! x[(len++)+initShiftWords] = sh_out; ! } ! else ! { ! for (i = len; --i >= 0;) ! x[i+initShiftWords] = x[i]; ! } ! for (i = initShiftWords; --i >= 0; ) ! x[i] = 0; ! len += initShiftWords; } return len; } *************** public class MPN *** 761,769 **** ps.print('('); for (int i = 0; i < len; i++) { ! if (i > 0) ! ps.print (' '); ! ps.print ("#x" + Long.toString ((long) x[i] & 0xffffffffL, 16)); } ps.print(')'); } --- 761,769 ---- ps.print('('); for (int i = 0; i < len; i++) { ! if (i > 0) ! ps.print (' '); ! ps.print ("#x" + Long.toString ((long) x[i] & 0xffffffffL, 16)); } ps.print(')'); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/CRLFInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/CRLFInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/CRLFInputStream.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/CRLFInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class CRLFInputStream *** 64,70 **** * The underlying input stream. */ protected InputStream in; ! private boolean doReset; /** --- 64,70 ---- * The underlying input stream. */ protected InputStream in; ! private boolean doReset; /** *************** public class CRLFInputStream *** 100,106 **** } return c; } ! /** * Reads up to b.length bytes of data from this input stream into * an array of bytes. --- 100,106 ---- } return c; } ! /** * Reads up to b.length bytes of data from this input stream into * an array of bytes. *************** public class CRLFInputStream *** 176,179 **** } } - --- 176,178 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/CRLFOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/CRLFOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/CRLFOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/CRLFOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.IOException; *** 43,49 **** import java.io.OutputStream; import java.io.UnsupportedEncodingException; ! /** * An output stream that filters LFs into CR/LF pairs. * * @author Chris Burdess (dog@gnu.org) --- 43,49 ---- import java.io.OutputStream; import java.io.UnsupportedEncodingException; ! /** * An output stream that filters LFs into CR/LF pairs. * * @author Chris Burdess (dog@gnu.org) *************** public class CRLFOutputStream *** 105,111 **** } last = ch; } ! /** * Writes a byte array to the underlying stream. * @exception IOException if an I/O error occurred --- 105,111 ---- } last = ch; } ! /** * Writes a byte array to the underlying stream. * @exception IOException if an I/O error occurred *************** public class CRLFOutputStream *** 150,156 **** out.write (b, d, len - d); } } ! /** * Writes the specified ASCII string to the underlying stream. * @exception IOException if an I/O error occurred --- 150,156 ---- out.write (b, d, len - d); } } ! /** * Writes the specified ASCII string to the underlying stream. * @exception IOException if an I/O error occurred *************** public class CRLFOutputStream *** 180,183 **** out.write(CRLF, 0, 2); } } - --- 180,182 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/DefaultContentHandlerFactory.java gcc-4.6.0/libjava/classpath/gnu/java/net/DefaultContentHandlerFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/DefaultContentHandlerFactory.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/DefaultContentHandlerFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.HashSet; *** 49,55 **** class ImageHandler extends ContentHandler { static ImageHandler instance = new ImageHandler(); ! public Object getContent(URLConnection urlc) throws IOException { // FIXME: implement using ImageIO --- 49,55 ---- class ImageHandler extends ContentHandler { static ImageHandler instance = new ImageHandler(); ! public Object getContent(URLConnection urlc) throws IOException { // FIXME: implement using ImageIO *************** public class DefaultContentHandlerFactor *** 80,86 **** "image/x-xbitmap", "image/x-xpixmap" }; ! private static HashSet imageTypes = new HashSet(Arrays.asList(known_image_types)); --- 80,86 ---- "image/x-xbitmap", "image/x-xpixmap" }; ! private static HashSet imageTypes = new HashSet(Arrays.asList(known_image_types)); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/DefaultProxySelector.java gcc-4.6.0/libjava/classpath/gnu/java/net/DefaultProxySelector.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/DefaultProxySelector.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/DefaultProxySelector.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public final class DefaultProxySelector *** 50,62 **** extends ProxySelector { private static final List proxies = new ArrayList(); ! static { // The default proxy selector supports only direct connections. proxies.add(Proxy.NO_PROXY); } ! public DefaultProxySelector() { // Do nothing by default. --- 50,62 ---- extends ProxySelector { private static final List proxies = new ArrayList(); ! static { // The default proxy selector supports only direct connections. proxies.add(Proxy.NO_PROXY); } ! public DefaultProxySelector() { // Do nothing by default. *************** public final class DefaultProxySelector *** 69,75 **** // Do nothing by default. } ! public List select(URI uri) { if (uri == null) --- 69,75 ---- // Do nothing by default. } ! public List select(URI uri) { if (uri == null) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/EmptyX509TrustManager.java gcc-4.6.0/libjava/classpath/gnu/java/net/EmptyX509TrustManager.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/EmptyX509TrustManager.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/EmptyX509TrustManager.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class EmptyX509TrustManager *** 67,70 **** return new X509Certificate[0]; } } - --- 67,69 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/GetLocalHostAction.java gcc-4.6.0/libjava/classpath/gnu/java/net/GetLocalHostAction.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/GetLocalHostAction.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/GetLocalHostAction.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class GetLocalHostAction *** 62,65 **** } } } - --- 62,64 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/HeaderFieldHelper.java gcc-4.6.0/libjava/classpath/gnu/java/net/HeaderFieldHelper.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/HeaderFieldHelper.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/HeaderFieldHelper.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HeaderFieldHelper.java -- Helps manage headers fields Copyright (C) 1998, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* HeaderFieldHelper.java -- Helps manage headers fields Copyright (C) 1998, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class HeaderFieldHelper *** 105,116 **** try { ! value = headerFieldValues.elementAt(headerFieldKeys.indexOf(key)); } catch (ArrayIndexOutOfBoundsException e) { } ! return value; } --- 105,116 ---- try { ! value = headerFieldValues.elementAt(headerFieldKeys.indexOf(key)); } catch (ArrayIndexOutOfBoundsException e) { } ! return value; } *************** public class HeaderFieldHelper *** 121,128 **** for (int index = 0; index < max; index++) { ! headers.put(headerFieldKeys.elementAt(index), ! headerFieldValues.elementAt(index)); } return headers; --- 121,128 ---- for (int index = 0; index < max; index++) { ! headers.put(headerFieldKeys.elementAt(index), ! headerFieldValues.elementAt(index)); } return headers; *************** public class HeaderFieldHelper *** 134,137 **** } } // class HeaderFieldHelper - --- 134,136 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/IndexListParser.java gcc-4.6.0/libjava/classpath/gnu/java/net/IndexListParser.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/IndexListParser.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/IndexListParser.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IndexListParser.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IndexListParser.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Set; *** 47,57 **** import java.util.jar.JarFile; /** ! * The INDEX.LIST file contains sections each separated by a blank line. * Each section defines the content of a jar, with a * header defining the jar file path name, followed by a list of paths. * The jar file paths are relative to the codebase of the root jar. ! * Specification index file : version-info blankline section* version-info : JarIndex-Version: version-number --- 47,57 ---- import java.util.jar.JarFile; /** ! * The INDEX.LIST file contains sections each separated by a blank line. * Each section defines the content of a jar, with a * header defining the jar file path name, followed by a list of paths. * The jar file paths are relative to the codebase of the root jar. ! * Specification index file : version-info blankline section* version-info : JarIndex-Version: version-number *************** import java.util.jar.JarFile; *** 60,66 **** body : header name* header : char+.jar newline name : char+ newline ! * @author langel at redhat dot com */ public class IndexListParser --- 60,66 ---- body : header name* header : char+.jar newline name : char+ newline ! * @author langel at redhat dot com */ public class IndexListParser *************** public class IndexListParser *** 73,82 **** // This is intentionally kept in insertion order. LinkedHashMap> prefixes = new LinkedHashMap>(); ! /** * Parses the given jarfile's INDEX.LIST file if it exists. ! * * @param jarfile - the given jar file * @param baseJarURL - the codebase of the jar file * @param baseURL - the base url for the headers --- 73,82 ---- // This is intentionally kept in insertion order. LinkedHashMap> prefixes = new LinkedHashMap>(); ! /** * Parses the given jarfile's INDEX.LIST file if it exists. ! * * @param jarfile - the given jar file * @param baseJarURL - the codebase of the jar file * @param baseURL - the base url for the headers *************** public class IndexListParser *** 90,102 **** { BufferedReader br = new BufferedReader(new InputStreamReader(new URL(baseJarURL, JAR_INDEX_FILE).openStream())); ! // Must start with version info String line = br.readLine(); if (!line.startsWith(JAR_INDEX_VERSION_KEY)) return; versionNumber = Double.parseDouble(line.substring(JAR_INDEX_VERSION_KEY.length()).trim()); ! // Blank line must be next line = br.readLine(); if (! "".equals(line)) --- 90,102 ---- { BufferedReader br = new BufferedReader(new InputStreamReader(new URL(baseJarURL, JAR_INDEX_FILE).openStream())); ! // Must start with version info String line = br.readLine(); if (!line.startsWith(JAR_INDEX_VERSION_KEY)) return; versionNumber = Double.parseDouble(line.substring(JAR_INDEX_VERSION_KEY.length()).trim()); ! // Blank line must be next line = br.readLine(); if (! "".equals(line)) *************** public class IndexListParser *** 104,116 **** clearAll(); return; } ! // May contain sections. while ((line = br.readLine()) != null) { URL jarURL = new URL(baseURL, line); HashSet values = new HashSet(); ! // Read the names in the section. while ((line = br.readLine()) != null) { --- 104,116 ---- clearAll(); return; } ! // May contain sections. while ((line = br.readLine()) != null) { URL jarURL = new URL(baseURL, line); HashSet values = new HashSet(); ! // Read the names in the section. while ((line = br.readLine()) != null) { *************** public class IndexListParser *** 138,144 **** clearAll(); } } ! /** * Clears all the variables. This is called when parsing fails. */ --- 138,144 ---- clearAll(); } } ! /** * Clears all the variables. This is called when parsing fails. */ *************** public class IndexListParser *** 147,179 **** versionNumber = 0; prefixes = null; } ! /** * Gets the version info for the file. ! * * @return the version info. */ public String getVersionInfo() { return JAR_INDEX_VERSION_KEY + getVersionNumber(); } ! /** * Gets the version number of the file. ! * * @return the version number. */ public double getVersionNumber() { return versionNumber; } ! /** * Gets the map of all the headers found in the file. * The keys in the map are URLs of jars. The values in the map * are Sets of package prefixes (and top-level file names), as * specifed in INDEX.LIST. ! * * @return an map of all the headers, or null if no INDEX.LIST was found */ public LinkedHashMap> getHeaders() --- 147,179 ---- versionNumber = 0; prefixes = null; } ! /** * Gets the version info for the file. ! * * @return the version info. */ public String getVersionInfo() { return JAR_INDEX_VERSION_KEY + getVersionNumber(); } ! /** * Gets the version number of the file. ! * * @return the version number. */ public double getVersionNumber() { return versionNumber; } ! /** * Gets the map of all the headers found in the file. * The keys in the map are URLs of jars. The values in the map * are Sets of package prefixes (and top-level file names), as * specifed in INDEX.LIST. ! * * @return an map of all the headers, or null if no INDEX.LIST was found */ public LinkedHashMap> getHeaders() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/LineInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/LineInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/LineInputStream.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/LineInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class LineInputStream *** 56,62 **** * The underlying input stream. */ protected InputStream in; ! /* * Line buffer. */ --- 56,62 ---- * The underlying input stream. */ protected InputStream in; ! /* * Line buffer. */ *************** public class LineInputStream *** 112,118 **** { return in.read(buf); } ! public int read(byte[] buf, int off, int len) throws IOException { --- 112,118 ---- { return in.read(buf); } ! public int read(byte[] buf, int off, int len) throws IOException { *************** public class LineInputStream *** 221,224 **** return -1; } } - --- 221,223 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java gcc-4.6.0/libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.nio.ByteBuffer; *** 69,87 **** public final class PlainDatagramSocketImpl extends DatagramSocketImpl { private final VMChannel channel; ! /** * The platform-specific socket implementation. */ private final VMPlainSocketImpl impl; ! /** ! * Lock object to serialize threads wanting to receive */ private final Object RECEIVE_LOCK = new Object(); ! /** ! * Lock object to serialize threads wanting to send */ private final Object SEND_LOCK = new Object(); --- 69,87 ---- public final class PlainDatagramSocketImpl extends DatagramSocketImpl { private final VMChannel channel; ! /** * The platform-specific socket implementation. */ private final VMPlainSocketImpl impl; ! /** ! * Lock object to serialize threads wanting to receive */ private final Object RECEIVE_LOCK = new Object(); ! /** ! * Lock object to serialize threads wanting to send */ private final Object SEND_LOCK = new Object(); *************** public final class PlainDatagramSocketIm *** 99,105 **** synchronized (this) { if (channel.getState().isValid()) ! close(); } super.finalize(); }*/ --- 99,105 ---- synchronized (this) { if (channel.getState().isValid()) ! close(); } super.finalize(); }*/ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/PlainSocketImpl.java gcc-4.6.0/libjava/classpath/gnu/java/net/PlainSocketImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/PlainSocketImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/PlainSocketImpl.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class PlainSocketImpl extends Soc *** 93,105 **** * is being invoked on this socket. */ private boolean inChannelOperation; ! /** * The socket channel we use for IO operation. Package-private for * use by inner classes. */ SocketChannelImpl channel; ! /** * Indicates whether we should ignore whether any associated * channel is set to non-blocking mode. Certain operations --- 93,105 ---- * is being invoked on this socket. */ private boolean inChannelOperation; ! /** * The socket channel we use for IO operation. Package-private for * use by inner classes. */ SocketChannelImpl channel; ! /** * Indicates whether we should ignore whether any associated * channel is set to non-blocking mode. Certain operations *************** public class PlainSocketImpl extends Soc *** 111,117 **** { return inChannelOperation; } ! /** * Sets our indicator of whether an I/O operation is being * initiated by a channel. --- 111,117 ---- { return inChannelOperation; } ! /** * Sets our indicator of whether an I/O operation is being * initiated by a channel. *************** public class PlainSocketImpl extends Soc *** 120,126 **** { inChannelOperation = b; } ! /** * Default do nothing constructor. */ --- 120,126 ---- { inChannelOperation = b; } ! /** * Default do nothing constructor. */ *************** public class PlainSocketImpl extends Soc *** 149,155 **** case SO_BROADCAST: case SO_KEEPALIVE: case SO_OOBINLINE: ! case TCP_NODELAY: case IP_TOS: case SO_RCVBUF: case SO_SNDBUF: --- 149,155 ---- case SO_BROADCAST: case SO_KEEPALIVE: case SO_OOBINLINE: ! case TCP_NODELAY: case IP_TOS: case SO_RCVBUF: case SO_SNDBUF: *************** public class PlainSocketImpl extends Soc *** 188,194 **** throw se; } } ! // This filters options which are invalid for TCP. switch (optionId) { --- 188,194 ---- throw se; } } ! // This filters options which are invalid for TCP. switch (optionId) { *************** public class PlainSocketImpl extends Soc *** 197,203 **** case SO_BROADCAST: case SO_KEEPALIVE: case SO_OOBINLINE: ! case TCP_NODELAY: case IP_TOS: case SO_RCVBUF: case SO_SNDBUF: --- 197,203 ---- case SO_BROADCAST: case SO_KEEPALIVE: case SO_OOBINLINE: ! case TCP_NODELAY: case IP_TOS: case SO_RCVBUF: case SO_SNDBUF: *************** public class PlainSocketImpl extends Soc *** 207,213 **** default: throw new SocketException("Unrecognized TCP option: " + optionId); } ! } public void shutdownInput() throws IOException --- 207,213 ---- default: throw new SocketException("Unrecognized TCP option: " + optionId); } ! } public void shutdownInput() throws IOException *************** public class PlainSocketImpl extends Soc *** 281,290 **** boolean connected = channel.connect(address, timeout); if (!connected) throw new SocketTimeoutException("connect timed out"); ! // Using the given SocketAddress is important to preserve // hostnames given by the caller. ! InetSocketAddress addr = (InetSocketAddress) address; this.address = addr.getAddress(); this.port = addr.getPort(); } --- 281,290 ---- boolean connected = channel.connect(address, timeout); if (!connected) throw new SocketTimeoutException("connect timed out"); ! // Using the given SocketAddress is important to preserve // hostnames given by the caller. ! InetSocketAddress addr = (InetSocketAddress) address; this.address = addr.getAddress(); this.port = addr.getPort(); } *************** public class PlainSocketImpl extends Soc *** 314,320 **** * number, additional connections will be refused. * * @param queuelen The length of the pending connection queue ! * * @throws IOException If an error occurs */ protected synchronized void listen(int queuelen) --- 314,320 ---- * number, additional connections will be refused. * * @param queuelen The length of the pending connection queue ! * * @throws IOException If an error occurs */ protected synchronized void listen(int queuelen) *************** public class PlainSocketImpl extends Soc *** 324,330 **** } /** ! * Accepts a new connection on this socket and returns in in the * passed in SocketImpl. * * @param impl The SocketImpl object to accept this connection. --- 324,330 ---- } /** ! * Accepts a new connection on this socket and returns in in the * passed in SocketImpl. * * @param impl The SocketImpl object to accept this connection. *************** public class PlainSocketImpl extends Soc *** 349,355 **** /** * Returns the number of bytes that the caller can read from this socket ! * without blocking. * * @return the number of readable bytes before blocking * --- 349,355 ---- /** * Returns the number of bytes that the caller can read from this socket ! * without blocking. * * @return the number of readable bytes before blocking * *************** public class PlainSocketImpl extends Soc *** 377,383 **** { if (impl.getState().isValid()) impl.close(); ! address = null; port = -1; } --- 377,383 ---- { if (impl.getState().isValid()) impl.close(); ! address = null; port = -1; } *************** public class PlainSocketImpl extends Soc *** 418,424 **** return out; } ! public VMChannel getVMChannel() { if (channel == null) --- 418,424 ---- return out; } ! public VMChannel getVMChannel() { if (channel == null) *************** public class PlainSocketImpl extends Soc *** 433,439 **** { if (channel == null) return null; ! try { InetSocketAddress remote = channel.getVMChannel().getPeerAddress(); --- 433,439 ---- { if (channel == null) return null; ! try { InetSocketAddress remote = channel.getVMChannel().getPeerAddress(); *************** public class PlainSocketImpl extends Soc *** 444,450 **** // was created by the native layer (this preserves exact hostnames). if (address != null) return address; ! return remote.getAddress(); } catch (IOException ioe) --- 444,450 ---- // was created by the native layer (this preserves exact hostnames). if (address != null) return address; ! return remote.getAddress(); } catch (IOException ioe) *************** public class PlainSocketImpl extends Soc *** 472,478 **** return -1; } } ! public InetSocketAddress getLocalAddress() { if (channel == null) --- 472,478 ---- return -1; } } ! public InetSocketAddress getLocalAddress() { if (channel == null) *************** public class PlainSocketImpl extends Soc *** 494,500 **** { if (channel == null) return -1; ! try { InetSocketAddress remote = channel.getVMChannel().getPeerAddress(); --- 494,500 ---- { if (channel == null) return -1; ! try { InetSocketAddress remote = channel.getVMChannel().getPeerAddress(); *************** public class PlainSocketImpl extends Soc *** 509,515 **** } /** ! * This class contains an implementation of InputStream for * sockets. It in an internal only class used by PlainSocketImpl. * * @author Nic Ferrier --- 509,515 ---- } /** ! * This class contains an implementation of InputStream for * sockets. It in an internal only class used by PlainSocketImpl. * * @author Nic Ferrier *************** public class PlainSocketImpl extends Soc *** 536,542 **** } /** ! * Reads the next byte of data and returns it as an int. * * @return The byte read (as an int) or -1 if end of stream); * --- 536,542 ---- } /** ! * Reads the next byte of data and returns it as an int. * * @return The byte read (as an int) or -1 if end of stream); * *************** public class PlainSocketImpl extends Soc *** 599,606 **** } /** ! * This class is used internally by PlainSocketImpl to be the ! * OutputStream subclass returned by its * getOutputStream method. It expects only to be used in that * context. * --- 599,606 ---- } /** ! * This class is used internally by PlainSocketImpl to be the ! * OutputStream subclass returned by its * getOutputStream method. It expects only to be used in that * context. * *************** public class PlainSocketImpl extends Soc *** 623,629 **** /** * Writes a byte (passed in as an int) to the given output stream ! * * @param b The byte to write * * @exception IOException If an error occurs --- 623,629 ---- /** * Writes a byte (passed in as an int) to the given output stream ! * * @param b The byte to write * * @exception IOException If an error occurs diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/loader/FileResource.java gcc-4.6.0/libjava/classpath/gnu/java/net/loader/FileResource.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/loader/FileResource.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/loader/FileResource.java Tue Jan 11 19:46:05 2011 *************** public final class FileResource extends *** 79,82 **** throw ie; } } ! } \ No newline at end of file --- 79,82 ---- throw ie; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/loader/FileURLLoader.java gcc-4.6.0/libjava/classpath/gnu/java/net/loader/FileURLLoader.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/loader/FileURLLoader.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/loader/FileURLLoader.java Tue Jan 11 19:46:05 2011 *************** public final class FileURLLoader extends *** 66,72 **** /** get resource with the name "name" in the file url */ public Resource getResource(String name) { ! try { // Make sure that all components in name are valid by walking through // them --- 66,72 ---- /** get resource with the name "name" in the file url */ public Resource getResource(String name) { ! try { // Make sure that all components in name are valid by walking through // them *************** public final class FileURLLoader extends *** 91,97 **** * directory or a non directory component (plain file, symbolic link, ...). * An empty or null path is valid. Pathnames components are separated by * File.separatorChar ! * * @param resourceFileName the name to be checked for validity. * @return the canonical file pointed by the resourceFileName or null if the * walking failed --- 91,97 ---- * directory or a non directory component (plain file, symbolic link, ...). * An empty or null path is valid. Pathnames components are separated by * File.separatorChar ! * * @param resourceFileName the name to be checked for validity. * @return the canonical file pointed by the resourceFileName or null if the * walking failed *************** public final class FileURLLoader extends *** 108,137 **** for (int i = 0; i < tokenCount - 1; i++) { String currentToken = stringTokenizer.nextToken(); ! // If we are at the root directory and trying to go up, the walking is // finished with an error if ("..".equals(currentToken) && currentFile.equals(dir)) return null; ! currentFile = new File(currentFile, currentToken); // If the current file doesn't exist or is not a directory, the walking is // finished with an error if (! (currentFile.exists() && currentFile.isDirectory())) return null; ! } ! // Treat the last token differently, if it exists, because it does not need // to be a directory if (tokenCount > 0) { String currentToken = stringTokenizer.nextToken(); ! if ("..".equals(currentToken) && currentFile.equals(dir)) return null; ! currentFile = new File(currentFile, currentToken); // If the current file doesn't exist, the walking is --- 108,137 ---- for (int i = 0; i < tokenCount - 1; i++) { String currentToken = stringTokenizer.nextToken(); ! // If we are at the root directory and trying to go up, the walking is // finished with an error if ("..".equals(currentToken) && currentFile.equals(dir)) return null; ! currentFile = new File(currentFile, currentToken); // If the current file doesn't exist or is not a directory, the walking is // finished with an error if (! (currentFile.exists() && currentFile.isDirectory())) return null; ! } ! // Treat the last token differently, if it exists, because it does not need // to be a directory if (tokenCount > 0) { String currentToken = stringTokenizer.nextToken(); ! if ("..".equals(currentToken) && currentFile.equals(dir)) return null; ! currentFile = new File(currentFile, currentToken); // If the current file doesn't exist, the walking is *************** public final class FileURLLoader extends *** 139,145 **** if (! currentFile.exists()) return null; } ! return currentFile.getCanonicalFile(); } ! } \ No newline at end of file --- 139,145 ---- if (! currentFile.exists()) return null; } ! return currentFile.getCanonicalFile(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/loader/JarURLLoader.java gcc-4.6.0/libjava/classpath/gnu/java/net/loader/JarURLLoader.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/loader/JarURLLoader.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/loader/JarURLLoader.java Tue Jan 11 19:46:05 2011 *************** public final class JarURLLoader extends *** 83,89 **** { jarfile = ((JarURLConnection) baseJarURL.openConnection()).getJarFile(); ! Manifest manifest; Attributes attributes; String classPathString; --- 83,89 ---- { jarfile = ((JarURLConnection) baseJarURL.openConnection()).getJarFile(); ! Manifest manifest; Attributes attributes; String classPathString; *************** public final class JarURLLoader extends *** 124,135 **** else if ((manifest = jarfile.getManifest()) != null && (attributes = manifest.getMainAttributes()) != null && ((classPathString ! = attributes.getValue(Attributes.Name.CLASS_PATH)) != null)) { this.classPath = new ArrayList(); StringTokenizer st = new StringTokenizer(classPathString, " "); ! while (st.hasMoreElements ()) { String e = st.nextToken (); try --- 124,135 ---- else if ((manifest = jarfile.getManifest()) != null && (attributes = manifest.getMainAttributes()) != null && ((classPathString ! = attributes.getValue(Attributes.Name.CLASS_PATH)) != null)) { this.classPath = new ArrayList(); StringTokenizer st = new StringTokenizer(classPathString, " "); ! while (st.hasMoreElements ()) { String e = st.nextToken (); try diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/loader/JarURLResource.java gcc-4.6.0/libjava/classpath/gnu/java/net/loader/JarURLResource.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/loader/JarURLResource.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/loader/JarURLResource.java Tue Jan 11 19:46:05 2011 *************** public final class JarURLResource extend *** 91,94 **** throw ie; } } ! } \ No newline at end of file --- 91,94 ---- throw ie; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/loader/RemoteResource.java gcc-4.6.0/libjava/classpath/gnu/java/net/loader/RemoteResource.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/loader/RemoteResource.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/loader/RemoteResource.java Tue Jan 11 19:46:05 2011 *************** public final class RemoteResource extend *** 75,78 **** { return url; } ! } \ No newline at end of file --- 75,78 ---- { return url; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/loader/RemoteURLLoader.java gcc-4.6.0/libjava/classpath/gnu/java/net/loader/RemoteURLLoader.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/loader/RemoteURLLoader.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/loader/RemoteURLLoader.java Tue Jan 11 19:46:05 2011 *************** public final class RemoteURLLoader exten *** 98,101 **** return null; } } ! } \ No newline at end of file --- 98,101 ---- return null; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/loader/Resource.java gcc-4.6.0/libjava/classpath/gnu/java/net/loader/Resource.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/loader/Resource.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/loader/Resource.java Tue Jan 11 19:46:05 2011 *************** public abstract class Resource *** 107,110 **** * this resource can be loaded. */ public abstract InputStream getInputStream() throws IOException; ! } \ No newline at end of file --- 107,110 ---- * this resource can be loaded. */ public abstract InputStream getInputStream() throws IOException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/loader/URLLoader.java gcc-4.6.0/libjava/classpath/gnu/java/net/loader/URLLoader.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/loader/URLLoader.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/loader/URLLoader.java Tue Jan 11 19:46:05 2011 *************** public abstract class URLLoader *** 145,148 **** { return null; } ! } \ No newline at end of file --- 145,148 ---- { return null; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/file/Connection.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/file/Connection.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/file/Connection.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/file/Connection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Connection extends URLConne *** 89,95 **** SystemProperties.getProperty("line.separator"); } ! /** * This is a File object for this connection */ --- 89,95 ---- SystemProperties.getProperty("line.separator"); } ! /** * This is a File object for this connection */ *************** public class Connection extends URLConne *** 109,115 **** * OutputStream if we are writing to the file */ private OutputStream outputStream; ! /** * FilePermission to read the file */ --- 109,115 ---- * OutputStream if we are writing to the file */ private OutputStream outputStream; ! /** * FilePermission to read the file */ *************** public class Connection extends URLConne *** 124,130 **** permission = new FilePermission(getURL().getFile(), DEFAULT_PERMISSION); } ! /** * Unquote "%" + hex quotes characters * --- 124,130 ---- permission = new FilePermission(getURL().getFile(), DEFAULT_PERMISSION); } ! /** * Unquote "%" + hex quotes characters * *************** public class Connection extends URLConne *** 146,183 **** int pos = 0; for (int i = 0; i < str.length(); i++) { ! char c = str.charAt(i); ! if (c == '%') ! { ! if (i + 2 >= str.length()) ! throw new MalformedURLException(str + " : Invalid quoted character"); ! int hi = Character.digit(str.charAt(++i), 16); ! int lo = Character.digit(str.charAt(++i), 16); ! if (lo < 0 || hi < 0) ! throw new MalformedURLException(str + " : Invalid quoted character"); ! buf[pos++] = (byte) (hi * 16 + lo); ! } ! else if (c > 127) { ! try { ! byte [] c_as_bytes = Character.toString(c).getBytes("utf-8"); ! final int c_length = c_as_bytes.length; ! System.arraycopy(c_as_bytes, 0, buf, pos, c_length); ! pos += c_length; ! } ! catch (java.io.UnsupportedEncodingException x2) { ! throw (Error) new InternalError().initCause(x2); ! } ! } ! else ! buf[pos++] = (byte) c; } try { ! return new String(buf, 0, pos, "utf-8"); } catch (java.io.UnsupportedEncodingException x2) { ! throw (Error) new InternalError().initCause(x2); } } --- 146,183 ---- int pos = 0; for (int i = 0; i < str.length(); i++) { ! char c = str.charAt(i); ! if (c == '%') ! { ! if (i + 2 >= str.length()) ! throw new MalformedURLException(str + " : Invalid quoted character"); ! int hi = Character.digit(str.charAt(++i), 16); ! int lo = Character.digit(str.charAt(++i), 16); ! if (lo < 0 || hi < 0) ! throw new MalformedURLException(str + " : Invalid quoted character"); ! buf[pos++] = (byte) (hi * 16 + lo); ! } ! else if (c > 127) { ! try { ! byte [] c_as_bytes = Character.toString(c).getBytes("utf-8"); ! final int c_length = c_as_bytes.length; ! System.arraycopy(c_as_bytes, 0, buf, pos, c_length); ! pos += c_length; ! } ! catch (java.io.UnsupportedEncodingException x2) { ! throw (Error) new InternalError().initCause(x2); ! } ! } ! else ! buf[pos++] = (byte) c; } try { ! return new String(buf, 0, pos, "utf-8"); } catch (java.io.UnsupportedEncodingException x2) { ! throw (Error) new InternalError().initCause(x2); } } *************** public class Connection extends URLConne *** 189,218 **** // Call is ignored if already connected. if (connected) return; ! // If not connected, then file needs to be openned. file = new File (unquote(getURL().getFile())); if (! file.isDirectory()) { ! if (doInput) ! inputStream = new BufferedInputStream(new FileInputStream(file)); ! ! if (doOutput) ! outputStream = new BufferedOutputStream(new FileOutputStream(file)); } else { ! if (doInput) ! { inputStream = new ByteArrayInputStream(getDirectoryListing()); ! } ! if (doOutput) ! throw new ProtocolException ! ("file: protocol does not support output on directories"); } ! connected = true; } --- 189,218 ---- // Call is ignored if already connected. if (connected) return; ! // If not connected, then file needs to be openned. file = new File (unquote(getURL().getFile())); if (! file.isDirectory()) { ! if (doInput) ! inputStream = new BufferedInputStream(new FileInputStream(file)); ! ! if (doOutput) ! outputStream = new BufferedOutputStream(new FileOutputStream(file)); } else { ! if (doInput) ! { inputStream = new ByteArrayInputStream(getDirectoryListing()); ! } ! if (doOutput) ! throw new ProtocolException ! ("file: protocol does not support output on directories"); } ! connected = true; } *************** public class Connection extends URLConne *** 228,236 **** ByteArrayOutputStream sink = new ByteArrayOutputStream(); // NB uses default character encoding for this system Writer writer = new OutputStreamWriter(sink); ! String[] files = file.list(); ! for (int i = 0; i < files.length; i++) { writer.write(files[i]); --- 228,236 ---- ByteArrayOutputStream sink = new ByteArrayOutputStream(); // NB uses default character encoding for this system Writer writer = new OutputStreamWriter(sink); ! String[] files = file.list(); ! for (int i = 0; i < files.length; i++) { writer.write(files[i]); *************** public class Connection extends URLConne *** 239,247 **** directoryListing = sink.toByteArray(); } ! return directoryListing; } ! /** * Opens the file for reading and returns a stream for it. * --- 239,247 ---- directoryListing = sink.toByteArray(); } ! return directoryListing; } ! /** * Opens the file for reading and returns a stream for it. * *************** public class Connection extends URLConne *** 254,263 **** { if (!doInput) throw new ProtocolException("Can't open InputStream if doInput is false"); ! if (!connected) connect(); ! return inputStream; } --- 254,263 ---- { if (!doInput) throw new ProtocolException("Can't open InputStream if doInput is false"); ! if (!connected) connect(); ! return inputStream; } *************** public class Connection extends URLConne *** 273,283 **** { if (!doOutput) throw new ! ProtocolException("Can't open OutputStream if doOutput is false"); if (!connected) connect(); ! return outputStream; } --- 273,283 ---- { if (!doOutput) throw new ! ProtocolException("Can't open OutputStream if doOutput is false"); if (!connected) connect(); ! return outputStream; } *************** public class Connection extends URLConne *** 290,319 **** { try { ! if (!connected) ! connect(); ! return file.lastModified(); } catch (IOException e) { ! return -1; } } ! /** ! * Get an http-style header field. Just handle a few common ones. */ public String getHeaderField(String field) { try { ! if (!connected) ! connect(); ! if (field.equals("content-type")) return guessContentTypeFromName(file.getName()); ! else if (field.equals("content-length")) { if (file.isDirectory()) { --- 290,319 ---- { try { ! if (!connected) ! connect(); ! return file.lastModified(); } catch (IOException e) { ! return -1; } } ! /** ! * Get an http-style header field. Just handle a few common ones. */ public String getHeaderField(String field) { try { ! if (!connected) ! connect(); ! if (field.equals("content-type")) return guessContentTypeFromName(file.getName()); ! else if (field.equals("content-length")) { if (file.isDirectory()) { *************** public class Connection extends URLConne *** 321,334 **** } return Long.toString(file.length()); } ! else if (field.equals("last-modified")) ! { ! synchronized (StaticData.dateFormat) ! { ! return StaticData.dateFormat.format( new Date(file.lastModified())); ! } ! } } catch (IOException e) { --- 321,334 ---- } return Long.toString(file.length()); } ! else if (field.equals("last-modified")) ! { ! synchronized (StaticData.dateFormat) ! { ! return StaticData.dateFormat.format( new Date(file.lastModified())); ! } ! } } catch (IOException e) { *************** public class Connection extends URLConne *** 346,366 **** { try { ! if (!connected) ! connect(); ! if (file.isDirectory()) { return getDirectoryListing().length; } ! return (int) file.length(); } catch (IOException e) { ! return -1; } } ! /** * This method returns a Permission object representing the * permissions required to access this URL. This method returns a --- 346,366 ---- { try { ! if (!connected) ! connect(); ! if (file.isDirectory()) { return getDirectoryListing().length; } ! return (int) file.length(); } catch (IOException e) { ! return -1; } } ! /** * This method returns a Permission object representing the * permissions required to access this URL. This method returns a diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/file/Handler.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/file/Handler.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/file/Handler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/file/Handler.java Tue Jan 11 19:46:05 2011 *************** public class Handler extends URLStreamHa *** 76,89 **** String host = url.getHost(); if ((host != null) && (! host.equals(""))) { ! // Reset the protocol (and implicitly the handler) for this URL. ! // Then have the URL attempt the connection again, as it will ! // get the changed handler the next time around. ! // If the ftp protocol handler is not installed, an ! // exception will be thrown from the new openConnection() call. ! setURL (url, "ftp", url.getHost(), url.getPort(), url.getFile(), ! url.getRef()); ! return url.openConnection(); } return new Connection(url); --- 76,89 ---- String host = url.getHost(); if ((host != null) && (! host.equals(""))) { ! // Reset the protocol (and implicitly the handler) for this URL. ! // Then have the URL attempt the connection again, as it will ! // get the changed handler the next time around. ! // If the ftp protocol handler is not installed, an ! // exception will be thrown from the new openConnection() call. ! setURL (url, "ftp", url.getHost(), url.getPort(), url.getFile(), ! url.getRef()); ! return url.openConnection(); } return new Connection(url); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/ActiveModeDTP.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/ActiveModeDTP.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/ActiveModeDTP.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/ActiveModeDTP.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** final class ActiveModeDTP *** 128,134 **** } acceptThread = null; } ! /** * Returns an input stream from which a remote file can be read. */ --- 128,134 ---- } acceptThread = null; } ! /** * Returns an input stream from which a remote file can be read. */ *************** final class ActiveModeDTP *** 213,219 **** transferComplete(); return inProgress; } ! public void transferComplete() { if (socket == null) --- 213,219 ---- transferComplete(); return inProgress; } ! public void transferComplete() { if (socket == null) *************** final class ActiveModeDTP *** 247,252 **** } } } - - } --- 247,251 ---- } } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/BlockInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/BlockInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/BlockInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/BlockInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class BlockInputStream *** 147,150 **** } } - --- 147,149 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/BlockOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/BlockOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/BlockOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/BlockOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class BlockOutputStream *** 108,111 **** } } - --- 108,110 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/CompressedInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/CompressedInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/CompressedInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/CompressedInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class CompressedInputStream *** 133,145 **** n--; return c; } ! public int read(byte[] buf) throws IOException { return read(buf, 0, buf.length); } ! public int read(byte[] buf, int off, int len) throws IOException { --- 133,145 ---- n--; return c; } ! public int read(byte[] buf) throws IOException { return read(buf, 0, buf.length); } ! public int read(byte[] buf, int off, int len) throws IOException { *************** class CompressedInputStream *** 186,192 **** return l; */ } ! /** * Reads the block header. */ --- 186,192 ---- return l; */ } ! /** * Reads the block header. */ *************** class CompressedInputStream *** 212,215 **** } } - --- 212,214 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/CompressedOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/CompressedOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/CompressedOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/CompressedOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class CompressedOutputStream *** 57,63 **** { super(dtp, out); } ! /** * Just one byte cannot be compressed. * It takes 5 bytes to transmit - hardly very compressed! --- 57,63 ---- { super(dtp, out); } ! /** * Just one byte cannot be compressed. * It takes 5 bytes to transmit - hardly very compressed! *************** class CompressedOutputStream *** 190,196 **** System.arraycopy(buf, 0, ret, 3, pos); return ret; } ! int flush_compressed(byte[] buf, int pos, int count, byte c) { buf[pos++] = (byte) (0x80 | count); --- 190,196 ---- System.arraycopy(buf, 0, ret, 3, pos); return ret; } ! int flush_compressed(byte[] buf, int pos, int count, byte c) { buf[pos++] = (byte) (0x80 | count); *************** class CompressedOutputStream *** 225,228 **** } } - --- 225,227 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/DTP.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/DTP.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/DTP.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/DTP.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** interface DTP *** 89,92 **** void transferComplete(); } - --- 89,91 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/DTPInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/DTPInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/DTPInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/DTPInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** abstract class DTPInputStream *** 74,80 **** { transferComplete = flag; } ! /** * Notifies the controlling DTP that this stream has completed transfer. */ --- 74,80 ---- { transferComplete = flag; } ! /** * Notifies the controlling DTP that this stream has completed transfer. */ *************** abstract class DTPInputStream *** 85,88 **** } } - --- 85,87 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/DTPOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/DTPOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/DTPOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/DTPOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class FTPConnection *** 125,131 **** protected static final String STAT = "STAT"; protected static final String HELP = "HELP"; protected static final String NOOP = "NOOP"; ! protected static final String AUTH = "AUTH"; protected static final String PBSZ = "PBSZ"; protected static final String PROT = "PROT"; --- 125,131 ---- protected static final String STAT = "STAT"; protected static final String HELP = "HELP"; protected static final String NOOP = "NOOP"; ! protected static final String AUTH = "AUTH"; protected static final String PBSZ = "PBSZ"; protected static final String PROT = "PROT"; *************** public class FTPConnection *** 211,217 **** { this(hostname, -1, 0, 0, false); } ! /** * Creates a new connection to the server. * @param hostname the hostname of the server to connect to --- 211,217 ---- { this(hostname, -1, 0, 0, false); } ! /** * Creates a new connection to the server. * @param hostname the hostname of the server to connect to *************** public class FTPConnection *** 242,248 **** { port = FTP_PORT; } ! // Set up socket socket = new Socket(); InetSocketAddress address = new InetSocketAddress(hostname, port); --- 242,248 ---- { port = FTP_PORT; } ! // Set up socket socket = new Socket(); InetSocketAddress address = new InetSocketAddress(hostname, port); *************** public class FTPConnection *** 258,264 **** { socket.setSoTimeout(timeout); } ! InputStream in = socket.getInputStream(); in = new BufferedInputStream(in); in = new CRLFInputStream(in); --- 258,264 ---- { socket.setSoTimeout(timeout); } ! InputStream in = socket.getInputStream(); in = new BufferedInputStream(in); in = new CRLFInputStream(in); *************** public class FTPConnection *** 266,272 **** OutputStream out = socket.getOutputStream(); out = new BufferedOutputStream(out); this.out = new CRLFOutputStream(out); ! // Read greeting FTPResponse response = getResponse(); switch (response.getCode()) --- 266,272 ---- OutputStream out = socket.getOutputStream(); out = new BufferedOutputStream(out); this.out = new CRLFOutputStream(out); ! // Read greeting FTPResponse response = getResponse(); switch (response.getCode()) *************** public class FTPConnection *** 277,283 **** throw new FTPException(response); } } ! /** * Authenticate using the specified username and password. * If the username suffices for the server, the password will not be used --- 277,283 ---- throw new FTPException(response); } } ! /** * Authenticate using the specified username and password. * If the username suffices for the server, the password will not be used *************** public class FTPConnection *** 331,337 **** { return starttls(confidential, new EmptyX509TrustManager()); } ! /** * Negotiates TLS over the current connection. * See IETF draft-murray-auth-ftp-ssl-15.txt for details. --- 331,337 ---- { return starttls(confidential, new EmptyX509TrustManager()); } ! /** * Negotiates TLS over the current connection. * See IETF draft-murray-auth-ftp-ssl-15.txt for details. *************** public class FTPConnection *** 351,357 **** TrustManager[] trust = new TrustManager[] { tm }; context.init(null, trust, null); SSLSocketFactory factory = context.getSocketFactory(); ! send(AUTH + ' ' + TLS); FTPResponse response = getResponse(); switch (response.getCode()) --- 351,357 ---- TrustManager[] trust = new TrustManager[] { tm }; context.init(null, trust, null); SSLSocketFactory factory = context.getSocketFactory(); ! send(AUTH + ' ' + TLS); FTPResponse response = getResponse(); switch (response.getCode()) *************** public class FTPConnection *** 367,373 **** default: throw new FTPException(response); } ! String hostname = socket.getInetAddress().getHostName(); int port = socket.getPort(); SSLSocket ss = --- 367,373 ---- default: throw new FTPException(response); } ! String hostname = socket.getInetAddress().getHostName(); int port = socket.getPort(); SSLSocket ss = *************** public class FTPConnection *** 403,409 **** default: throw new FTPException(response); } ! if (confidential) { // Set up streams --- 403,409 ---- default: throw new FTPException(response); } ! if (confidential) { // Set up streams *************** public class FTPConnection *** 422,428 **** return false; } } ! /** * Changes directory to the specified path. * @param path an absolute or relative pathname --- 422,428 ---- return false; } } ! /** * Changes directory to the specified path. * @param path an absolute or relative pathname *************** public class FTPConnection *** 447,453 **** throw new FTPException(response); } } ! /** * Changes directory to the parent of the current working directory. * @return true on success, false otherwise --- 447,453 ---- throw new FTPException(response); } } ! /** * Changes directory to the parent of the current working directory. * @return true on success, false otherwise *************** public class FTPConnection *** 521,527 **** { } } ! /** * Initialise the data transfer process. */ --- 521,527 ---- { } } ! /** * Initialise the data transfer process. */ *************** public class FTPConnection *** 533,539 **** dtp.complete(); dtp = null; } ! InetAddress localhost = socket.getLocalAddress(); if (passive) { --- 533,539 ---- dtp.complete(); dtp = null; } ! InetAddress localhost = socket.getLocalAddress(); if (passive) { *************** public class FTPConnection *** 568,574 **** { c = message.charAt((++end) + 1); } ! String address = message.substring(start, mid1).replace(',', '.'); int port_hi = --- 568,574 ---- { c = message.charAt((++end) + 1); } ! String address = message.substring(start, mid1).replace(',', '.'); int port_hi = *************** public class FTPConnection *** 576,582 **** int port_lo = Integer.parseInt(message.substring(mid2 + 1, end + 1)); int port = (port_hi << 8) | port_lo; ! /*System.out.println("Entering passive mode: " + address + ":" + port);*/ dtp = new PassiveModeDTP(address, port, localhost, --- 576,582 ---- int port_lo = Integer.parseInt(message.substring(mid2 + 1, end + 1)); int port = (port_hi << 8) | port_lo; ! /*System.out.println("Entering passive mode: " + address + ":" + port);*/ dtp = new PassiveModeDTP(address, port, localhost, *************** public class FTPConnection *** 621,627 **** } } } ! // Send PORT command CPStringBuilder buf = new CPStringBuilder(PORT); buf.append(' '); --- 621,627 ---- } } } ! // Send PORT command CPStringBuilder buf = new CPStringBuilder(PORT); buf.append(' '); *************** public class FTPConnection *** 657,663 **** } dtp.setTransferMode(transferMode); } ! /** * Set passive mode. * @param flag true if we should use passive mode, false otherwise --- 657,663 ---- } dtp.setTransferMode(transferMode); } ! /** * Set passive mode. * @param flag true if we should use passive mode, false otherwise *************** public class FTPConnection *** 671,677 **** initialiseDTP(); } } ! /** * Returns the current representation type of the transfer data. * @return TYPE_ASCII, TYPE_EBCDIC, or TYPE_BINARY --- 671,677 ---- initialiseDTP(); } } ! /** * Returns the current representation type of the transfer data. * @return TYPE_ASCII, TYPE_EBCDIC, or TYPE_BINARY *************** public class FTPConnection *** 809,815 **** throw new FTPException(response); } } ! /** * Retrieves the specified file. * @param filename the filename of the file to retrieve --- 809,815 ---- throw new FTPException(response); } } ! /** * Retrieves the specified file. * @param filename the filename of the file to retrieve *************** public class FTPConnection *** 849,855 **** throw new FTPException(response); } } ! /** * Returns a stream for uploading a file. * If a file with the same filename already exists on the server, it will --- 849,855 ---- throw new FTPException(response); } } ! /** * Returns a stream for uploading a file. * If a file with the same filename already exists on the server, it will *************** public class FTPConnection *** 903,909 **** throw new FTPException(response); } } ! /** * This command may be required by some servers to reserve sufficient * storage to accommodate the new file to be transferred. --- 903,909 ---- throw new FTPException(response); } } ! /** * This command may be required by some servers to reserve sufficient * storage to accommodate the new file to be transferred. *************** public class FTPConnection *** 926,932 **** throw new FTPException(response); } } ! /** * Renames a file. * @param oldName the current name of the file --- 926,932 ---- throw new FTPException(response); } } ! /** * Renames a file. * @param oldName the current name of the file *************** public class FTPConnection *** 963,969 **** throw new FTPException(response); } } ! /** * Aborts the transfer in progress. * @return true if a transfer was in progress, false otherwise --- 963,969 ---- throw new FTPException(response); } } ! /** * Aborts the transfer in progress. * @return true if a transfer was in progress, false otherwise *************** public class FTPConnection *** 993,999 **** throw new FTPException(response); } } ! /** * Causes the file specified to be deleted at the server site. * @param filename the file to delete --- 993,999 ---- throw new FTPException(response); } } ! /** * Causes the file specified to be deleted at the server site. * @param filename the file to delete *************** public class FTPConnection *** 1015,1021 **** throw new FTPException(response); } } ! /** * Causes the directory specified to be deleted. * This may be an absolute or relative pathname. --- 1015,1021 ---- throw new FTPException(response); } } ! /** * Causes the directory specified to be deleted. * This may be an absolute or relative pathname. *************** public class FTPConnection *** 1059,1065 **** throw new FTPException(response); } } ! /** * Returns the current working directory. */ --- 1059,1065 ---- throw new FTPException(response); } } ! /** * Returns the current working directory. */ *************** public class FTPConnection *** 1097,1103 **** throw new FTPException(response); } } ! /** * Returns a listing of information about the specified pathname. * If the pathname specifies a directory or other group of files, the --- 1097,1103 ---- throw new FTPException(response); } } ! /** * Returns a listing of information about the specified pathname. * If the pathname specifies a directory or other group of files, the *************** public class FTPConnection *** 1133,1139 **** throw new FTPException(response); } } ! /** * Returns a directory listing. The pathname should specify a * directory or other system-specific file group descriptor; a null --- 1133,1139 ---- throw new FTPException(response); } } ! /** * Returns a directory listing. The pathname should specify a * directory or other system-specific file group descriptor; a null *************** public class FTPConnection *** 1179,1185 **** throw new FTPException(response); } } ! /** * Returns the type of operating system at the server. */ --- 1179,1185 ---- throw new FTPException(response); } } ! /** * Returns the type of operating system at the server. */ *************** public class FTPConnection *** 1205,1211 **** throw new FTPException(response); } } ! /** * Does nothing. * This method can be used to ensure that the connection does not time --- 1205,1211 ---- throw new FTPException(response); } } ! /** * Does nothing. * This method can be used to ensure that the connection does not time *************** public class FTPConnection *** 1316,1322 **** throw new ProtocolException(line); } } ! /* * Parses the 3-digit numeric code at the beginning of the given line. * Returns -1 on failure. --- 1316,1322 ---- throw new ProtocolException(line); } } ! /* * Parses the 3-digit numeric code at the beginning of the given line. * Returns -1 on failure. *************** public class FTPConnection *** 1350,1353 **** } } - --- 1350,1352 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/FTPException.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/FTPException.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/FTPException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/FTPException.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class FTPException *** 63,69 **** super(response.getMessage()); this.response = response; } ! /** * Returns the response that provoked this exception. */ --- 63,69 ---- super(response.getMessage()); this.response = response; } ! /** * Returns the response that provoked this exception. */ *************** public class FTPException *** 73,76 **** } } - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/FTPResponse.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/FTPResponse.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/FTPResponse.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/FTPResponse.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public final class FTPResponse *** 109,112 **** } } - --- 109,111 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/FTPURLConnection.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/FTPURLConnection.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/FTPURLConnection.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/FTPURLConnection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class FTPURLConnection *** 137,143 **** connection.setTransferMode(transferMode); } } ! /** * This connection supports doInput. */ --- 137,143 ---- connection.setTransferMode(transferMode); } } ! /** * This connection supports doInput. */ *************** public class FTPURLConnection *** 153,159 **** { doOutput = dooutput; } ! /** * Returns an input stream that reads from this open connection. */ --- 153,159 ---- { doOutput = dooutput; } ! /** * Returns an input stream that reads from this open connection. */ *************** public class FTPURLConnection *** 174,180 **** return this.new ClosingInputStream(connection.retrieve(path)); } } ! /** * Returns an output stream that writes to this connection. */ --- 174,180 ---- return this.new ClosingInputStream(connection.retrieve(path)); } } ! /** * Returns an output stream that writes to this connection. */ *************** public class FTPURLConnection *** 252,258 **** l.add(value); map.put(key, l); } ! public void setRequestProperty(String key, String value) { if (connected) --- 252,258 ---- l.add(value); map.put(key, l); } ! public void setRequestProperty(String key, String value) { if (connected) *************** public class FTPURLConnection *** 351,357 **** super.close(); connection.logout(); } ! } class ClosingOutputStream --- 351,357 ---- super.close(); connection.logout(); } ! } class ClosingOutputStream *************** public class FTPURLConnection *** 369,376 **** super.close(); connection.logout(); } ! } } - --- 369,375 ---- super.close(); connection.logout(); } ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/Handler.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/Handler.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/Handler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/Handler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Handler *** 67,70 **** } } - --- 67,69 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/PassiveModeDTP.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/PassiveModeDTP.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/PassiveModeDTP.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/PassiveModeDTP.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** final class PassiveModeDTP *** 118,124 **** in.setTransferComplete(false); return in; } ! /** * Returns an output stream to which a local file can be written for * upload. --- 118,124 ---- in.setTransferComplete(false); return in; } ! /** * Returns an output stream to which a local file can be written for * upload. *************** final class PassiveModeDTP *** 147,158 **** out.setTransferComplete(false); return out; } ! public void setTransferMode(int mode) { transferMode = mode; } ! public void complete() { completed = true; --- 147,158 ---- out.setTransferComplete(false); return out; } ! public void setTransferMode(int mode) { transferMode = mode; } ! public void complete() { completed = true; *************** final class PassiveModeDTP *** 198,201 **** } } - --- 198,200 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/StreamInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/StreamInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/StreamInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/StreamInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class StreamInputStream *** 54,60 **** { super(dtp, in); } ! public int read() throws IOException { --- 54,60 ---- { super(dtp, in); } ! public int read() throws IOException { *************** class StreamInputStream *** 92,95 **** } } - --- 92,94 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/StreamOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/StreamOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/ftp/StreamOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/ftp/StreamOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class StreamOutputStream *** 54,60 **** { super(dtp, out); } ! public void write(int c) throws IOException { --- 54,60 ---- { super(dtp, out); } ! public void write(int c) throws IOException { *************** class StreamOutputStream *** 70,76 **** { write(b, 0, b.length); } ! public void write(byte[] b, int off, int len) throws IOException { --- 70,76 ---- { write(b, 0, b.length); } ! public void write(byte[] b, int off, int len) throws IOException { *************** class StreamOutputStream *** 80,85 **** } out.write(b, off, len); } - - } --- 80,84 ---- } out.write(b, off, len); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Authenticator.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Authenticator.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Authenticator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Authenticator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public interface Authenticator *** 54,59 **** * unsuccessful attempt */ Credentials getCredentials(String realm, int attempt); - - } --- 54,58 ---- * unsuccessful attempt */ Credentials getCredentials(String realm, int attempt); + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class ByteArrayRequestBodyWriter *** 102,107 **** } return len; } - - } --- 102,106 ---- } return len; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class ChunkedInputStream *** 158,172 **** } else { ! int canRead = Math.min(size - count, length); ! int len = in.read(buffer, offset, canRead); ! if (len == -1) ! { ! // This is an error condition but it isn't clear what we ! // should do with it. ! eof = true; ! return -1; ! } count += len; if (count == size) { --- 158,172 ---- } else { ! int canRead = Math.min(size - count, length); ! int len = in.read(buffer, offset, canRead); ! if (len == -1) ! { ! // This is an error condition but it isn't clear what we ! // should do with it. ! eof = true; ! return -1; ! } count += len; if (count == size) { *************** public class ChunkedInputStream *** 205,224 **** { if (meta) return 0; ! return Math.min(in.available(), size - count); } /** * This method closes the ChunkedInputStream by closing the underlying * InputStream. ! * * @exception IOException If an error occurs */ public void close() throws IOException { in.close(); } - - } --- 205,223 ---- { if (meta) return 0; ! return Math.min(in.available(), size - count); } /** * This method closes the ChunkedInputStream by closing the underlying * InputStream. ! * * @exception IOException If an error occurs */ public void close() throws IOException { in.close(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Cookie.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Cookie.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Cookie.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Cookie.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Cookie *** 138,144 **** { return toString(true, true); } ! public String toString(boolean showPath, boolean showDomain) { CPStringBuilder buf = new CPStringBuilder(); --- 138,144 ---- { return toString(true, true); } ! public String toString(boolean showPath, boolean showDomain) { CPStringBuilder buf = new CPStringBuilder(); *************** public class Cookie *** 159,162 **** } } - --- 159,161 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/CookieManager.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/CookieManager.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/CookieManager.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/CookieManager.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public interface CookieManager *** 61,65 **** * @param path the path to access */ Cookie[] getCookies(String host, boolean secure, String path); ! } --- 61,65 ---- * @param path the path to access */ Cookie[] getCookies(String host, boolean secure, String path); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Credentials.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Credentials.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Credentials.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Credentials.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Credentials *** 83,88 **** { return password; } - - } --- 83,87 ---- { return password; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class HTTPConnection *** 201,207 **** this(hostname, secure ? HTTPS_PORT : HTTP_PORT, secure, connectionTimeout, timeout); } ! /** * Creates a new HTTP connection on the specified port. * @param hostname the name of the host to connect to --- 201,207 ---- this(hostname, secure ? HTTPS_PORT : HTTP_PORT, secure, connectionTimeout, timeout); } ! /** * Creates a new HTTP connection on the specified port. * @param hostname the name of the host to connect to *************** public class HTTPConnection *** 222,228 **** { this(hostname, port, secure, 0, 0); } ! /** * Creates a new HTTP or HTTPS connection on the specified port. * @param hostname the name of the host to connect to --- 222,228 ---- { this(hostname, port, secure, 0, 0); } ! /** * Creates a new HTTP or HTTPS connection on the specified port. * @param hostname the name of the host to connect to *************** public class HTTPConnection *** 239,245 **** { if (connectionTimeout < 0 || timeout < 0) throw new IllegalArgumentException(); ! this.hostname = hostname; this.port = port; this.secure = secure; --- 239,245 ---- { if (connectionTimeout < 0 || timeout < 0) throw new IllegalArgumentException(); ! this.hostname = hostname; this.port = port; this.secure = secure; *************** public class HTTPConnection *** 477,484 **** */ synchronized HTTPConnection get(String host, int port, ! boolean secure, ! int connectionTimeout, int timeout) { String ttl = SystemProperties.getProperty("classpath.net.http.keepAliveTTL"); --- 477,484 ---- */ synchronized HTTPConnection get(String host, int port, ! boolean secure, ! int connectionTimeout, int timeout) { String ttl = SystemProperties.getProperty("classpath.net.http.keepAliveTTL"); *************** public class HTTPConnection *** 510,516 **** } HTTPConnection c = null; ! ListIterator it = connectionPool.listIterator(0); while (it.hasNext()) { --- 510,516 ---- } HTTPConnection c = null; ! ListIterator it = connectionPool.listIterator(0); while (it.hasNext()) { *************** public class HTTPConnection *** 584,590 **** } } } ! /** * The number of times this HTTPConnection has be used via keep-alive. */ --- 584,590 ---- } } } ! /** * The number of times this HTTPConnection has be used via keep-alive. */ *************** public class HTTPConnection *** 618,624 **** { useCount++; pool.put(this); ! } else { --- 618,624 ---- { useCount++; pool.put(this); ! } else { *************** public class HTTPConnection *** 878,884 **** } // -- Events -- ! void addHandshakeCompletedListener(HandshakeCompletedListener l) { synchronized (handshakeCompletedListeners) --- 878,884 ---- } // -- Events -- ! void addHandshakeCompletedListener(HandshakeCompletedListener l) { synchronized (handshakeCompletedListeners) *************** public class HTTPConnection *** 895,898 **** } } - --- 895,897 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/HTTPDateFormat.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/HTTPDateFormat.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/HTTPDateFormat.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/HTTPDateFormat.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class HTTPDateFormat *** 145,151 **** // Get time offset in minutes int zoneOffset =(calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET)) / 60000; ! // Apply + or - appropriately if (zoneOffset < 0) { --- 145,151 ---- // Get time offset in minutes int zoneOffset =(calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET)) / 60000; ! // Apply + or - appropriately if (zoneOffset < 0) { *************** public class HTTPDateFormat *** 156,162 **** { buf.append('+'); } ! // Set the 2 2-char fields as specified above int tzhours = zoneOffset / 60; buf.append(Character.forDigit(tzhours / 10, 10)); --- 156,162 ---- { buf.append('+'); } ! // Set the 2 2-char fields as specified above int tzhours = zoneOffset / 60; buf.append(Character.forDigit(tzhours / 10, 10)); *************** public class HTTPDateFormat *** 340,353 **** } second = Integer.parseInt(text.substring(start, end)); } ! calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, month); calendar.set(Calendar.DAY_OF_MONTH, date); calendar.set(Calendar.HOUR, hour); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, second); ! if (end != len) { // Timezone --- 340,353 ---- } second = Integer.parseInt(text.substring(start, end)); } ! calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, month); calendar.set(Calendar.DAY_OF_MONTH, date); calendar.set(Calendar.HOUR, hour); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, second); ! if (end != len) { // Timezone *************** public class HTTPDateFormat *** 380,386 **** } } pos.setIndex(end); ! return calendar.getTime(); } catch (NumberFormatException e) --- 380,386 ---- } } pos.setIndex(end); ! return calendar.getTime(); } catch (NumberFormatException e) *************** public class HTTPDateFormat *** 400,406 **** { pos++; } ! return pos; } private int skipNonWhitespace(String text, int pos) --- 400,406 ---- { pos++; } ! return pos; } private int skipNonWhitespace(String text, int pos) *************** public class HTTPDateFormat *** 409,415 **** { pos++; } ! return pos; } private int skipTo(String text, int pos, char c) --- 409,415 ---- { pos++; } ! return pos; } private int skipTo(String text, int pos, char c) *************** public class HTTPDateFormat *** 418,424 **** { pos++; } ! return pos; } /** --- 418,424 ---- { pos++; } ! return pos; } /** *************** public class HTTPDateFormat *** 438,441 **** } } - --- 438,440 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class HTTPURLConnection *** 151,157 **** } final Credentials creds = (username == null) ? null : new Credentials (username, password); ! if ("POST".equals(method)) { String contentType = requestHeaders.getValue("Content-Type"); --- 151,157 ---- } final Credentials creds = (username == null) ? null : new Credentials (username, password); ! if ("POST".equals(method)) { String contentType = requestHeaders.getValue("Content-Type"); *************** public class HTTPURLConnection *** 241,353 **** throw ioe; } } ! if (response.isRedirect() && getInstanceFollowRedirects()) { ! // Read the response body, if there is one. If the ! // redirect points us back at the same server, we will use ! // the cached connection, so we must make sure there is no ! // pending data in it. InputStream body = response.getBody(); ! if (body != null) ! { ! byte[] ignore = new byte[1024]; ! while (true) ! { ! int n = body.read(ignore, 0, ignore.length); ! if (n == -1) ! break; ! } ! } // Follow redirect String location = response.getHeader("Location"); ! if (location != null) ! { ! String connectionUri = connection.getURI(); ! int start = connectionUri.length(); ! if (location.startsWith(connectionUri) && ! location.charAt(start) == '/') ! { ! file = location.substring(start); ! retry = true; ! } ! else if (location.startsWith("http:")) ! { ! connection.close(); ! connection = null; ! secure = false; ! start = 7; ! int end = location.indexOf('/', start); if (end == -1) end = location.length(); ! host = location.substring(start, end); ! int ci = host.lastIndexOf(':'); ! if (ci != -1) ! { ! port = Integer.parseInt(host.substring (ci + 1)); ! host = host.substring(0, ci); ! } ! else ! { ! port = HTTPConnection.HTTP_PORT; ! } ! file = location.substring(end); ! retry = true; ! } ! else if (location.startsWith("https:")) ! { ! connection.close(); ! connection = null; ! secure = true; ! start = 8; ! int end = location.indexOf('/', start); if (end == -1) end = location.length(); ! host = location.substring(start, end); ! int ci = host.lastIndexOf(':'); ! if (ci != -1) ! { ! port = Integer.parseInt(host.substring (ci + 1)); ! host = host.substring(0, ci); ! } ! else ! { ! port = HTTPConnection.HTTPS_PORT; ! } ! file = location.substring(end); ! retry = true; ! } ! else if (location.length() > 0) ! { ! // Malformed absolute URI, treat as file part of URI ! if (location.charAt(0) == '/') ! { ! // Absolute path ! file = location; ! } ! else ! { ! // Relative path ! int lsi = file.lastIndexOf('/'); ! file = (lsi == -1) ? "/" : file.substring(0, lsi + 1); ! file += location; ! } ! retry = true; ! } ! } } else { responseSink = response.getBody(); ! if (response.isError()) ! errorSink = responseSink; } } while (retry); connected = true; ! } /** * Returns a connection, from the pool if necessary. --- 241,353 ---- throw ioe; } } ! if (response.isRedirect() && getInstanceFollowRedirects()) { ! // Read the response body, if there is one. If the ! // redirect points us back at the same server, we will use ! // the cached connection, so we must make sure there is no ! // pending data in it. InputStream body = response.getBody(); ! if (body != null) ! { ! byte[] ignore = new byte[1024]; ! while (true) ! { ! int n = body.read(ignore, 0, ignore.length); ! if (n == -1) ! break; ! } ! } // Follow redirect String location = response.getHeader("Location"); ! if (location != null) ! { ! String connectionUri = connection.getURI(); ! int start = connectionUri.length(); ! if (location.startsWith(connectionUri) && ! location.charAt(start) == '/') ! { ! file = location.substring(start); ! retry = true; ! } ! else if (location.startsWith("http:")) ! { ! connection.close(); ! connection = null; ! secure = false; ! start = 7; ! int end = location.indexOf('/', start); if (end == -1) end = location.length(); ! host = location.substring(start, end); ! int ci = host.lastIndexOf(':'); ! if (ci != -1) ! { ! port = Integer.parseInt(host.substring (ci + 1)); ! host = host.substring(0, ci); ! } ! else ! { ! port = HTTPConnection.HTTP_PORT; ! } ! file = location.substring(end); ! retry = true; ! } ! else if (location.startsWith("https:")) ! { ! connection.close(); ! connection = null; ! secure = true; ! start = 8; ! int end = location.indexOf('/', start); if (end == -1) end = location.length(); ! host = location.substring(start, end); ! int ci = host.lastIndexOf(':'); ! if (ci != -1) ! { ! port = Integer.parseInt(host.substring (ci + 1)); ! host = host.substring(0, ci); ! } ! else ! { ! port = HTTPConnection.HTTPS_PORT; ! } ! file = location.substring(end); ! retry = true; ! } ! else if (location.length() > 0) ! { ! // Malformed absolute URI, treat as file part of URI ! if (location.charAt(0) == '/') ! { ! // Absolute path ! file = location; ! } ! else ! { ! // Relative path ! int lsi = file.lastIndexOf('/'); ! file = (lsi == -1) ? "/" : file.substring(0, lsi + 1); ! file += location; ! } ! retry = true; ! } ! } } else { responseSink = response.getBody(); ! if (response.isError()) ! errorSink = responseSink; } } while (retry); connected = true; ! } /** * Returns a connection, from the pool if necessary. *************** public class HTTPURLConnection *** 425,431 **** } public String getRequestProperty(String key) ! { return requestHeaders.getValue(key); } --- 425,431 ---- } public String getRequestProperty(String key) ! { return requestHeaders.getValue(key); } *************** public class HTTPURLConnection *** 433,439 **** { if (connected) throw new IllegalStateException("Already connected"); ! Map> m = requestHeaders.getAsMap(); return Collections.unmodifiableMap(m); } --- 433,439 ---- { if (connected) throw new IllegalStateException("Already connected"); ! Map> m = requestHeaders.getAsMap(); return Collections.unmodifiableMap(m); } *************** public class HTTPURLConnection *** 441,447 **** public void setRequestProperty(String key, String value) { super.setRequestProperty(key, value); ! requestHeaders.put(key, value); } --- 441,447 ---- public void setRequestProperty(String key, String value) { super.setRequestProperty(key, value); ! requestHeaders.put(key, value); } *************** public class HTTPURLConnection *** 477,485 **** } return requestSink; } ! // -- Response -- ! public InputStream getInputStream() throws IOException { --- 477,485 ---- } return requestSink; } ! // -- Response -- ! public InputStream getInputStream() throws IOException { *************** public class HTTPURLConnection *** 491,507 **** { throw new ProtocolException("doInput is false"); } ! if (response.isError()) { int code = response.getCode(); if (code == 404 || code == 410) throw new FileNotFoundException(url.toString()); ! throw new IOException("Server returned HTTP response code " + code + " for URL " + url.toString()); } ! return responseSink; } --- 491,507 ---- { throw new ProtocolException("doInput is false"); } ! if (response.isError()) { int code = response.getCode(); if (code == 404 || code == 410) throw new FileNotFoundException(url.toString()); ! throw new IOException("Server returned HTTP response code " + code + " for URL " + url.toString()); } ! return responseSink; } *************** public class HTTPURLConnection *** 535,541 **** " " + response.getCode() + " " + response.getMessage(); } ! public String getHeaderField(int index) { if (!connected) --- 535,541 ---- " " + response.getCode() + " " + response.getMessage(); } ! public String getHeaderField(int index) { if (!connected) *************** public class HTTPURLConnection *** 641,647 **** } return handshakeEvent.getCipherSuite(); } ! public Certificate[] getLocalCertificates() { if (!connected) --- 641,647 ---- } return handshakeEvent.getCipherSuite(); } ! public Certificate[] getLocalCertificates() { if (!connected) *************** public class HTTPURLConnection *** 681,694 **** super.setReadTimeout(timeout); if (connection == null) return; ! try { ! connection.getSocket().setSoTimeout(timeout); ! } catch (IOException se) { ! // Ignore socket exceptions. } } } - --- 681,693 ---- super.setReadTimeout(timeout); if (connection == null) return; ! try { ! connection.getSocket().setSoTimeout(timeout); ! } catch (IOException se) { ! // Ignore socket exceptions. } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Handler.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Handler.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Handler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Handler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Handler *** 70,73 **** } } - --- 70,72 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Headers.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Headers.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Headers.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Headers.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class Headers implements Iterable
          headers = new ArrayList(); ! /** * The HTTP dateformat used to parse date header fields. */ --- 71,77 ---- */ private final ArrayList headers = new ArrayList(); ! /** * The HTTP dateformat used to parse date header fields. */ *************** class Headers implements Iterable
          null if not found. */ --- 111,121 ---- { return headers.iterator(); } ! /** * Returns the value of the specified header as a string. If * multiple values are present, the last one is returned. ! * * @param header the header name (case insensitive search) * @return The header value or null if not found. */ *************** class Headers implements Iterable
          -1 if not present or * not an integer value. --- 135,141 ---- /** * Returns the value of the specified header as an integer. If * multiple values are present, the last one is returned. ! * * @param header the header name (case insensitive search) * @return The header value or -1 if not present or * not an integer value. *************** class Headers implements Iterable
          -1 if not present or * not a long value. --- 161,167 ---- /** * Returns the value of the specified header as a long. If * multiple values are present, the last one is returned. ! * * @param header the header name (case insensitive search) * @return The header value or -1 if not present or * not a long value. *************** class Headers implements Iterable
          null if not present or * not a date value. --- 187,193 ---- /** * Returns the value of the specified header as a date. If * multiple values are present, the last one is returned. ! * * @param header the header name (case insensitive search) * @return The header value or null if not present or * not a date value. *************** class Headers implements Iterable
          = 0; i--) { HeaderElement e = headers.get(i); --- 221,227 ---- * @see #addValue(String, String) */ public void put(String name, String value) ! { for (int i = headers.size() - 1; i >= 0; i--) { HeaderElement e = headers.get(i); *************** class Headers implements Iterable
          * The returned map is modifiable. Changing it will not effect this * collection of Headers in any way.

          * --- 352,363 ---- /** * Get a new Map containing all the headers. The keys of the Map ! * are Strings (the header names). The headers will be included * case-sensitive in the map so that querying must be done with the * correct case of the needed header name. The values of the Map are * unmodifiable Lists containing Strings (the header values). * ! *

          * The returned map is modifiable. Changing it will not effect this * collection of Headers in any way.

          * *************** class Headers implements Iterable
          = headers.size() || i < 0) return null; ! return headers.get(i).name; } --- 401,407 ---- { if (i >= headers.size() || i < 0) return null; ! return headers.get(i).name; } *************** class Headers implements Iterable
          = headers.size() || i < 0) return null; ! return headers.get(i).value; } } --- 418,424 ---- { if (i >= headers.size() || i < 0) return null; ! return headers.get(i).value; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Request.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Request.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Request.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Request.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Request *** 280,293 **** setHeader("Content-Length", Integer.toString(contentLength)); } } ! try { // Loop while authentication fails or continue do { retry = false; ! // Get socket output and input streams OutputStream out = connection.getOutputStream(); --- 280,293 ---- setHeader("Content-Length", Integer.toString(contentLength)); } } ! try { // Loop while authentication fails or continue do { retry = false; ! // Get socket output and input streams OutputStream out = connection.getOutputStream(); *************** public class Request *** 314,320 **** byte[] buffer = new byte[4096]; int len; int count = 0; ! requestBodyWriter.reset(); do { --- 314,320 ---- byte[] buffer = new byte[4096]; int len; int count = 0; ! requestBodyWriter.reset(); do { *************** public class Request *** 372,384 **** } return response; } ! Response readResponse(InputStream in) throws IOException { String line; int len; ! // Read response status line LineInputStream lis = new LineInputStream(in); --- 372,384 ---- } return response; } ! Response readResponse(InputStream in) throws IOException { String line; int len; ! // Read response status line LineInputStream lis = new LineInputStream(in); *************** public class Request *** 414,420 **** responseHeaders.parse(lis); notifyHeaderHandlers(responseHeaders); InputStream body = null; ! switch (code) { case 100: --- 414,420 ---- responseHeaders.parse(lis); notifyHeaderHandlers(responseHeaders); InputStream body = null; ! switch (code) { case 100: *************** public class Request *** 459,465 **** throws IOException { long contentLength = -1; ! // Persistent connections are the default in HTTP/1.1 boolean doClose = "close".equalsIgnoreCase(getHeader("Connection")) || "close".equalsIgnoreCase(responseHeaders.getValue("Connection")) || --- 459,465 ---- throws IOException { long contentLength = -1; ! // Persistent connections are the default in HTTP/1.1 boolean doClose = "close".equalsIgnoreCase(getHeader("Connection")) || "close".equalsIgnoreCase(responseHeaders.getValue("Connection")) || *************** public class Request *** 475,483 **** else if ("chunked".equalsIgnoreCase(transferCoding)) { in = new LimitedLengthInputStream(in, -1, false, connection, doClose); ! in = new ChunkedInputStream(in, responseHeaders); ! } else { contentLength = responseHeaders.getLongValue("Content-Length"); --- 475,483 ---- else if ("chunked".equalsIgnoreCase(transferCoding)) { in = new LimitedLengthInputStream(in, -1, false, connection, doClose); ! in = new ChunkedInputStream(in, responseHeaders); ! } else { contentLength = responseHeaders.getLongValue("Content-Length"); *************** public class Request *** 505,513 **** throw new ProtocolException("Unsupported Content-Encoding: " + contentCoding); } ! // Remove the Content-Encoding header because the content is ! // no longer compressed. ! responseHeaders.remove("Content-Encoding"); } return in; } --- 505,513 ---- throw new ProtocolException("Unsupported Content-Encoding: " + contentCoding); } ! // Remove the Content-Encoding header because the content is ! // no longer compressed. ! responseHeaders.remove("Content-Encoding"); } return in; } *************** public class Request *** 551,557 **** { MessageDigest md5 = MessageDigest.getInstance("MD5"); final byte[] COLON = { 0x3a }; ! // Calculate H(A1) md5.reset(); md5.update(username.getBytes("US-ASCII")); --- 551,557 ---- { MessageDigest md5 = MessageDigest.getInstance("MD5"); final byte[] COLON = { 0x3a }; ! // Calculate H(A1) md5.reset(); md5.update(username.getBytes("US-ASCII")); *************** public class Request *** 572,578 **** ha1 = md5.digest(); } String ha1Hex = toHexString(ha1); ! // Calculate H(A2) md5.reset(); md5.update(method.getBytes("US-ASCII")); --- 572,578 ---- ha1 = md5.digest(); } String ha1Hex = toHexString(ha1); ! // Calculate H(A2) md5.reset(); md5.update(method.getBytes("US-ASCII")); *************** public class Request *** 586,592 **** } byte[] ha2 = md5.digest(); String ha2Hex = toHexString(ha2); ! // Calculate response md5.reset(); md5.update(ha1Hex.getBytes("US-ASCII")); --- 586,592 ---- } byte[] ha2 = md5.digest(); String ha2Hex = toHexString(ha2); ! // Calculate response md5.reset(); md5.update(ha1Hex.getBytes("US-ASCII")); *************** public class Request *** 606,613 **** md5.update(COLON); md5.update(ha2Hex.getBytes("US-ASCII")); String digestResponse = toHexString(md5.digest()); ! ! String authorization = scheme + " username=\"" + username + "\"" + " realm=\"" + realm + "\"" + " nonce=\"" + nonce + "\"" + --- 606,613 ---- md5.update(COLON); md5.update(ha2Hex.getBytes("US-ASCII")); String digestResponse = toHexString(md5.digest()); ! ! String authorization = scheme + " username=\"" + username + "\"" + " realm=\"" + realm + "\"" + " nonce=\"" + nonce + "\"" + *************** public class Request *** 652,658 **** buf.setLength(0); } else if (c != ',' || (i <(len - 1) && text.charAt(i + 1) != ' ')) ! { buf.append(c); } } --- 652,658 ---- buf.setLength(0); } else if (c != ',' || (i <(len - 1) && text.charAt(i + 1) != ' ')) ! { buf.append(c); } } *************** public class Request *** 855,858 **** } } - --- 855,857 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/RequestBodyWriter.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/RequestBodyWriter.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/RequestBodyWriter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/RequestBodyWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public interface RequestBodyWriter *** 64,69 **** * @return the number of bytes written */ int write(byte[] buffer); - - } --- 64,68 ---- * @return the number of bytes written */ int write(byte[] buffer); + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Response.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Response.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/Response.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/Response.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Response *** 61,67 **** /** * The HTTP status code of the response. ! */ protected final int code; /** --- 61,67 ---- /** * The HTTP status code of the response. ! */ protected final int code; /** *************** public class Response *** 114,120 **** /** * Returns the HTTP status code of the response. * @see #code ! */ public int getCode() { return code; --- 114,120 ---- /** * Returns the HTTP status code of the response. * @see #code ! */ public int getCode() { return code; *************** public class Response *** 188,209 **** { return headers.getDateValue(name); } ! /** * Tests whether this response indicates a redirection. ! * * @return true if, false otherwise. */ public boolean isRedirect() { return (code != 304 && getCodeClass() == 3); } ! /** * Tests whether this response indicates an error. * Errors are the response codes 4xx - Client error and * 5xx - Server error. ! * * @return true if, false otherwise. */ public boolean isError() --- 188,209 ---- { return headers.getDateValue(name); } ! /** * Tests whether this response indicates a redirection. ! * * @return true if, false otherwise. */ public boolean isRedirect() { return (code != 304 && getCodeClass() == 3); } ! /** * Tests whether this response indicates an error. * Errors are the response codes 4xx - Client error and * 5xx - Server error. ! * * @return true if, false otherwise. */ public boolean isError() *************** public class Response *** 221,224 **** return body; } } - --- 221,223 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/ResponseHeaderHandler.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/ResponseHeaderHandler.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/ResponseHeaderHandler.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/ResponseHeaderHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public interface ResponseHeaderHandler *** 52,57 **** * Sets the value for the header associated with this handler. */ void setValue(String value); - - } --- 52,56 ---- * Sets the value for the header associated with this handler. */ void setValue(String value); + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/SimpleCookieManager.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/SimpleCookieManager.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/http/SimpleCookieManager.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/http/SimpleCookieManager.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class SimpleCookieManager *** 133,138 **** } } } - - } --- 133,137 ---- } } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/https/Handler.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/https/Handler.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/https/Handler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/https/Handler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Handler *** 73,76 **** } } - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/jar/Connection.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/jar/Connection.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/jar/Connection.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/jar/Connection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public final class Connection extends Ja *** 73,85 **** private JarFile jar_file; private JarEntry jar_entry; private URL jar_url; ! public static class JarFileCache { private static Hashtable cache = new Hashtable(); private static final int READBUFSIZE = 4*1024; ! public static synchronized JarFile get (URL url, boolean useCaches) throws IOException { --- 73,85 ---- private JarFile jar_file; private JarEntry jar_entry; private URL jar_url; ! public static class JarFileCache { private static Hashtable cache = new Hashtable(); private static final int READBUFSIZE = 4*1024; ! public static synchronized JarFile get (URL url, boolean useCaches) throws IOException { *************** public final class Connection extends Ja *** 92,122 **** } if ("file".equals (url.getProtocol())) ! { ! String fn = url.getFile(); ! fn = gnu.java.net.protocol.file.Connection.unquote(fn); ! File f = new File (fn); ! jf = new JarFile (f, true, ZipFile.OPEN_READ); ! } else ! { ! URLConnection urlconn = url.openConnection(); ! InputStream is = urlconn.getInputStream(); ! byte[] buf = new byte [READBUFSIZE]; ! File f = File.createTempFile ("cache", "jar"); ! FileOutputStream fos = new FileOutputStream (f); ! int len = 0; ! ! while ((len = is.read (buf)) != -1) ! { ! fos.write (buf, 0, len); ! } ! ! fos.close(); ! // Always verify the Manifest, open read only and delete when done. ! jf = new JarFile (f, true, ! ZipFile.OPEN_READ | ZipFile.OPEN_DELETE); ! } if (useCaches) cache.put (url, jf); --- 92,122 ---- } if ("file".equals (url.getProtocol())) ! { ! String fn = url.getFile(); ! fn = gnu.java.net.protocol.file.Connection.unquote(fn); ! File f = new File (fn); ! jf = new JarFile (f, true, ZipFile.OPEN_READ); ! } else ! { ! URLConnection urlconn = url.openConnection(); ! InputStream is = urlconn.getInputStream(); ! byte[] buf = new byte [READBUFSIZE]; ! File f = File.createTempFile ("cache", "jar"); ! FileOutputStream fos = new FileOutputStream (f); ! int len = 0; ! ! while ((len = is.read (buf)) != -1) ! { ! fos.write (buf, 0, len); ! } ! ! fos.close(); ! // Always verify the Manifest, open read only and delete when done. ! jf = new JarFile (f, true, ! ZipFile.OPEN_READ | ZipFile.OPEN_DELETE); ! } if (useCaches) cache.put (url, jf); *************** public final class Connection extends Ja *** 140,146 **** jar_url = getJarFileURL(); jar_file = JarFileCache.get (jar_url, useCaches); String entry_name = getEntryName(); ! if (entry_name != null && !entry_name.equals ("")) { --- 140,146 ---- jar_url = getJarFileURL(); jar_file = JarFileCache.get (jar_url, useCaches); String entry_name = getEntryName(); ! if (entry_name != null && !entry_name.equals ("")) { *************** public final class Connection extends Ja *** 160,166 **** if (! doInput) throw new ProtocolException("Can't open InputStream if doInput is false"); ! return jar_file.getInputStream (jar_entry); } --- 160,166 ---- if (! doInput) throw new ProtocolException("Can't open InputStream if doInput is false"); ! return jar_file.getInputStream (jar_entry); } *************** public final class Connection extends Ja *** 179,204 **** { try { ! if (!connected) ! connect(); ! if (field.equals("content-type")) return guessContentTypeFromName(getJarEntry().getName()); ! else if (field.equals("content-length")) return Long.toString(getJarEntry().getSize()); ! else if (field.equals("last-modified")) ! { ! // Both creating and manipulating dateFormat need synchronization. ! synchronized (Connection.class) ! { ! if (dateFormat == null) ! dateFormat = new SimpleDateFormat ! ("EEE, dd MMM yyyy hh:mm:ss 'GMT'", ! new Locale ("En", "Us", "Unix")); ! return dateFormat.format(new Date(getJarEntry().getTime())); ! } ! } } catch (IOException e) { --- 179,204 ---- { try { ! if (!connected) ! connect(); ! if (field.equals("content-type")) return guessContentTypeFromName(getJarEntry().getName()); ! else if (field.equals("content-length")) return Long.toString(getJarEntry().getSize()); ! else if (field.equals("last-modified")) ! { ! // Both creating and manipulating dateFormat need synchronization. ! synchronized (Connection.class) ! { ! if (dateFormat == null) ! dateFormat = new SimpleDateFormat ! ("EEE, dd MMM yyyy hh:mm:ss 'GMT'", ! new Locale ("En", "Us", "Unix")); ! return dateFormat.format(new Date(getJarEntry().getTime())); ! } ! } } catch (IOException e) { *************** public final class Connection extends Ja *** 222,232 **** try { ! return getJarEntry().getTime(); } catch (IOException e) { ! return -1; } } } --- 222,232 ---- try { ! return getJarEntry().getTime(); } catch (IOException e) { ! return -1; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/jar/Handler.java gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/jar/Handler.java *** gcc-4.5.2/libjava/classpath/gnu/java/net/protocol/jar/Handler.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/net/protocol/jar/Handler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Handler extends URLStreamHa *** 91,124 **** // strategy when we encounter an error in parsing is to return without // doing anything. String file = url.getFile(); ! if (!file.equals("")) { //has context url ! url_string = url_string.substring (start, end); if (url_string.startsWith("/")) { //url string is an absolute path int idx = file.lastIndexOf ("!/"); ! ! if (idx < 0) ! throw new URLParseError("no !/ in spec"); ! ! file = file.substring (0, idx + 1) + url_string; } else if (url_string.length() > 0) { int idx = file.lastIndexOf ("/"); if (idx == -1) //context path is weird ! file = "/" + url_string; else if (idx == (file.length() - 1)) //just concatenate two parts file = file + url_string; else ! // according to Java API Documentation, here is a little different // with URLStreamHandler.parseURL // but JDK seems doesn't handle it well file = file.substring(0, idx + 1) + url_string; } ! setURL (url, "jar", url.getHost(), url.getPort(), flat(file), null); return; } --- 91,124 ---- // strategy when we encounter an error in parsing is to return without // doing anything. String file = url.getFile(); ! if (!file.equals("")) { //has context url ! url_string = url_string.substring (start, end); if (url_string.startsWith("/")) { //url string is an absolute path int idx = file.lastIndexOf ("!/"); ! ! if (idx < 0) ! throw new URLParseError("no !/ in spec"); ! ! file = file.substring (0, idx + 1) + url_string; } else if (url_string.length() > 0) { int idx = file.lastIndexOf ("/"); if (idx == -1) //context path is weird ! file = "/" + url_string; else if (idx == (file.length() - 1)) //just concatenate two parts file = file + url_string; else ! // according to Java API Documentation, here is a little different // with URLStreamHandler.parseURL // but JDK seems doesn't handle it well file = file.substring(0, idx + 1) + url_string; } ! setURL (url, "jar", url.getHost(), url.getPort(), flat(file), null); return; } *************** public class Handler extends URLStreamHa *** 130,136 **** return; if (start > url_string.length()) return; ! // Skip remains of protocol url_string = url_string.substring (start, end); --- 130,136 ---- return; if (start > url_string.length()) return; ! // Skip remains of protocol url_string = url_string.substring (start, end); *************** public class Handler extends URLStreamHa *** 140,155 **** try { ! new URL(url_string.substring (0, jar_stop)); } catch (MalformedURLException e) { ! throw new URLParseError("invalid inner URL: " + e.getMessage()); } ! if (!url.getProtocol().equals ("jar") ) throw new URLParseError("unexpected protocol " + url.getProtocol()); ! setURL (url, "jar", url.getHost(), url.getPort(), url_string, null); } --- 140,155 ---- try { ! new URL(url_string.substring (0, jar_stop)); } catch (MalformedURLException e) { ! throw new URLParseError("invalid inner URL: " + e.getMessage()); } ! if (!url.getProtocol().equals ("jar") ) throw new URLParseError("unexpected protocol " + url.getProtocol()); ! setURL (url, "jar", url.getHost(), url.getPort(), url_string, null); } *************** public class Handler extends URLStreamHa *** 170,185 **** StringTokenizer st = new StringTokenizer(jar_path, "/"); while (st.hasMoreTokens()) { ! String token = st.nextToken(); if (token.equals(".")) continue; else if (token.equals("..")) ! { ! if (! tokens.isEmpty()) ! tokens.remove(tokens.size() - 1); ! } ! else ! tokens.add(token); } CPStringBuilder path = new CPStringBuilder(url_string.length()); --- 170,185 ---- StringTokenizer st = new StringTokenizer(jar_path, "/"); while (st.hasMoreTokens()) { ! String token = st.nextToken(); if (token.equals(".")) continue; else if (token.equals("..")) ! { ! if (! tokens.isEmpty()) ! tokens.remove(tokens.size() - 1); ! } ! else ! tokens.add(token); } CPStringBuilder path = new CPStringBuilder(url_string.length()); *************** public class Handler extends URLStreamHa *** 203,210 **** String ref = url.getRef(); // return "jar:" + file; ! // Performance!!: ! // Do the concatenation manually to avoid resize StringBuffer's // internal buffer. The length of ref is not taken into consideration // as it's a rare path. CPStringBuilder sb = new CPStringBuilder (file.length() + 5); --- 203,210 ---- String ref = url.getRef(); // return "jar:" + file; ! // Performance!!: ! // Do the concatenation manually to avoid resize StringBuffer's // internal buffer. The length of ref is not taken into consideration // as it's a rare path. CPStringBuilder sb = new CPStringBuilder (file.length() + 5); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/ChannelInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/nio/ChannelInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/ChannelInputStream.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/ChannelInputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ChannelInputStream.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ChannelInputStream.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.nio.channels.SelectableChann *** 51,61 **** public final class ChannelInputStream extends InputStream { private ReadableByteChannel ch; ! public ChannelInputStream (ReadableByteChannel ch) { super(); ! this.ch = ch; } --- 51,61 ---- public final class ChannelInputStream extends InputStream { private ReadableByteChannel ch; ! public ChannelInputStream (ReadableByteChannel ch) { super(); ! this.ch = ch; } *************** public final class ChannelInputStream ex *** 72,80 **** public int read() throws IOException { if (ch instanceof SelectableChannel ! && (! ((SelectableChannel) ch).isBlocking())) throw new IllegalBlockingModeException(); ! ByteBuffer buffer = ByteBuffer.allocate(1); int result = ch.read(buffer); --- 72,80 ---- public int read() throws IOException { if (ch instanceof SelectableChannel ! && (! ((SelectableChannel) ch).isBlocking())) throw new IllegalBlockingModeException(); ! ByteBuffer buffer = ByteBuffer.allocate(1); int result = ch.read(buffer); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/ChannelOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/nio/ChannelOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/ChannelOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/ChannelOutputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ChannelOutputStream.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ChannelOutputStream.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.nio.channels.WritableByteCha *** 49,59 **** public final class ChannelOutputStream extends OutputStream { private WritableByteChannel ch; ! public ChannelOutputStream (WritableByteChannel ch) { super(); ! this.ch = ch; } --- 49,59 ---- public final class ChannelOutputStream extends OutputStream { private WritableByteChannel ch; ! public ChannelOutputStream (WritableByteChannel ch) { super(); ! this.ch = ch; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/ChannelReader.java gcc-4.6.0/libjava/classpath/gnu/java/nio/ChannelReader.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/ChannelReader.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/ChannelReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ChannelReader.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ChannelReader.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.nio.charset.CodingErrorActio *** 50,60 **** /** * A Reader implementation that works using a ReadableByteChannel and a * CharsetDecoder. ! * *

          * This is a bridge between NIO <-> IO character decoding. *

          ! * * @author Robert Schuster */ public class ChannelReader extends Reader --- 50,60 ---- /** * A Reader implementation that works using a ReadableByteChannel and a * CharsetDecoder. ! * *

          * This is a bridge between NIO <-> IO character decoding. *

          ! * * @author Robert Schuster */ public class ChannelReader extends Reader *************** public class ChannelReader extends Reade *** 97,132 **** // I declared channel being null meaning that the reader is closed. if (!channel.isOpen()) throw new IOException("Reader was already closed."); ! // I declared decoder being null meaning that there is no more data to read // and convert. if (decoder == null) return -1; ! // Stores the amount of character being read. It -1 so that if no conversion // occured the caller will see this as an 'end of file'. int sum = -1; ! // Copies any characters which may be left from the last invocation into the // destination array. if (charBuffer.remaining() > 0) { sum = Math.min(count, charBuffer.remaining()); charBuffer.get(buf, offset, sum); ! // Updates the control variables according to the latest copy operation. offset += sum; count -= sum; } ! // Copies the character which have not been put in the destination array to // the beginning. If data is actually copied count will be 0. If no data is // copied count is >0 and we can now convert some more characters. charBuffer.compact(); ! int converted = 0; boolean last = false; ! while (count != 0) { // Tries to convert some bytes (Which will intentionally fail in the --- 97,132 ---- // I declared channel being null meaning that the reader is closed. if (!channel.isOpen()) throw new IOException("Reader was already closed."); ! // I declared decoder being null meaning that there is no more data to read // and convert. if (decoder == null) return -1; ! // Stores the amount of character being read. It -1 so that if no conversion // occured the caller will see this as an 'end of file'. int sum = -1; ! // Copies any characters which may be left from the last invocation into the // destination array. if (charBuffer.remaining() > 0) { sum = Math.min(count, charBuffer.remaining()); charBuffer.get(buf, offset, sum); ! // Updates the control variables according to the latest copy operation. offset += sum; count -= sum; } ! // Copies the character which have not been put in the destination array to // the beginning. If data is actually copied count will be 0. If no data is // copied count is >0 and we can now convert some more characters. charBuffer.compact(); ! int converted = 0; boolean last = false; ! while (count != 0) { // Tries to convert some bytes (Which will intentionally fail in the *************** public class ChannelReader extends Reade *** 139,145 **** // unmappable. result.throwException(); } ! // Marks that we should end this loop regardless whether the caller // wants more chars or not, when this was the last conversion. if (last) --- 139,145 ---- // unmappable. result.throwException(); } ! // Marks that we should end this loop regardless whether the caller // wants more chars or not, when this was the last conversion. if (last) *************** public class ChannelReader extends Reade *** 149,159 **** else if (result.isUnderflow()) { // We need more bytes to do the conversion. ! // Copies the not yet converted bytes to the beginning making it // being able to receive more bytes. byteBuffer.compact(); ! // Reads in another bunch of bytes for being converted. if (channel.read(byteBuffer) == -1) { --- 149,159 ---- else if (result.isUnderflow()) { // We need more bytes to do the conversion. ! // Copies the not yet converted bytes to the beginning making it // being able to receive more bytes. byteBuffer.compact(); ! // Reads in another bunch of bytes for being converted. if (channel.read(byteBuffer) == -1) { *************** public class ChannelReader extends Reade *** 162,203 **** // done in the next loop iteration. last = true; } ! // Prepares the byteBuffer for the next character conversion run. byteBuffer.flip(); } ! // Prepares the charBuffer for being drained. charBuffer.flip(); ! converted = Math.min(count, charBuffer.remaining()); charBuffer.get(buf, offset, converted); ! // Copies characters which have not yet being copied into the char-Array // to the beginning making it possible to read them later (If data is // really copied here, then the caller has received enough characters so // far.). charBuffer.compact(); ! // Updates the control variables according to the latest copy operation. offset += converted; count -= converted; ! // Updates the amount of transferred characters. sum += converted; ! if (decoder == null) { break; } ! // Now that more characters have been transfered we let the loop decide // what to do next. } ! // Makes the charBuffer ready for reading on the next invocation. charBuffer.flip(); ! return sum; } } --- 162,203 ---- // done in the next loop iteration. last = true; } ! // Prepares the byteBuffer for the next character conversion run. byteBuffer.flip(); } ! // Prepares the charBuffer for being drained. charBuffer.flip(); ! converted = Math.min(count, charBuffer.remaining()); charBuffer.get(buf, offset, converted); ! // Copies characters which have not yet being copied into the char-Array // to the beginning making it possible to read them later (If data is // really copied here, then the caller has received enough characters so // far.). charBuffer.compact(); ! // Updates the control variables according to the latest copy operation. offset += converted; count -= converted; ! // Updates the amount of transferred characters. sum += converted; ! if (decoder == null) { break; } ! // Now that more characters have been transfered we let the loop decide // what to do next. } ! // Makes the charBuffer ready for reading on the next invocation. charBuffer.flip(); ! return sum; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/ChannelWriter.java gcc-4.6.0/libjava/classpath/gnu/java/nio/ChannelWriter.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/ChannelWriter.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/ChannelWriter.java Tue Jan 11 19:46:05 2011 *************** public class ChannelWriter *** 117,123 **** { if (enc == null) throw new IOException("writer already closed"); ! byteBuffer.clear(); charBuffer.flip(); CoderResult res = enc.encode(charBuffer, byteBuffer, true); --- 117,123 ---- { if (enc == null) throw new IOException("writer already closed"); ! byteBuffer.clear(); charBuffer.flip(); CoderResult res = enc.encode(charBuffer, byteBuffer, true); *************** public class ChannelWriter *** 173,179 **** break; } lastLen = len; ! // Convert. byteBuffer.clear(); CoderResult res = enc.encode(charBuffer, byteBuffer, false); --- 173,179 ---- break; } lastLen = len; ! // Convert. byteBuffer.clear(); CoderResult res = enc.encode(charBuffer, byteBuffer, false); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DatagramChannelImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DatagramChannelImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class DatagramChannelImpl e *** 57,63 **** { private NIODatagramSocket socket; private VMChannel channel; ! /** * Indicates whether this channel initiated whatever operation * is being invoked on our datagram socket. --- 57,63 ---- { private NIODatagramSocket socket; private VMChannel channel; ! /** * Indicates whether this channel initiated whatever operation * is being invoked on our datagram socket. *************** public final class DatagramChannelImpl e *** 85,91 **** { return inChannelOperation; } ! /** * Sets our indicator of whether we are initiating an I/O operation * on our socket. --- 85,91 ---- { return inChannelOperation; } ! /** * Sets our indicator of whether we are initiating an I/O operation * on our socket. *************** public final class DatagramChannelImpl e *** 94,111 **** { inChannelOperation = b; } ! public DatagramSocket socket () { return socket; } ! protected void implCloseSelectableChannel () throws IOException { channel.close(); } ! protected void implConfigureBlocking (boolean blocking) throws IOException { --- 94,111 ---- { inChannelOperation = b; } ! public DatagramSocket socket () { return socket; } ! protected void implCloseSelectableChannel () throws IOException { channel.close(); } ! protected void implConfigureBlocking (boolean blocking) throws IOException { *************** public final class DatagramChannelImpl e *** 117,123 **** { if (!isOpen()) throw new ClosedChannelException(); ! try { channel.connect((InetSocketAddress) remote, 0); --- 117,123 ---- { if (!isOpen()) throw new ClosedChannelException(); ! try { channel.connect((InetSocketAddress) remote, 0); *************** public final class DatagramChannelImpl e *** 128,141 **** } return this; } ! public DatagramChannel disconnect () throws IOException { channel.disconnect(); return this; } ! public boolean isConnected() { try --- 128,141 ---- } return this; } ! public DatagramChannel disconnect () throws IOException { channel.disconnect(); return this; } ! public boolean isConnected() { try *************** public final class DatagramChannelImpl e *** 147,159 **** return false; } } ! public int write (ByteBuffer src) throws IOException { if (!isConnected ()) throw new NotYetConnectedException (); ! return channel.write(src); } --- 147,159 ---- return false; } } ! public int write (ByteBuffer src) throws IOException { if (!isConnected ()) throw new NotYetConnectedException (); ! return channel.write(src); } *************** public final class DatagramChannelImpl e *** 180,211 **** { if (!isConnected ()) throw new NotYetConnectedException (); ! return channel.read(dst); } ! public long read (ByteBuffer[] dsts, int offset, int length) throws IOException { if (!isConnected()) throw new NotYetConnectedException(); ! if ((offset < 0) || (offset > dsts.length) || (length < 0) || (length > (dsts.length - offset))) throw new IndexOutOfBoundsException(); ! /* Likewise, see the comment int write above. */ return channel.readScattering(dsts, offset, length); } ! public SocketAddress receive (ByteBuffer dst) throws IOException { if (!isOpen()) throw new ClosedChannelException(); ! try { begin(); --- 180,211 ---- { if (!isConnected ()) throw new NotYetConnectedException (); ! return channel.read(dst); } ! public long read (ByteBuffer[] dsts, int offset, int length) throws IOException { if (!isConnected()) throw new NotYetConnectedException(); ! if ((offset < 0) || (offset > dsts.length) || (length < 0) || (length > (dsts.length - offset))) throw new IndexOutOfBoundsException(); ! /* Likewise, see the comment int write above. */ return channel.readScattering(dsts, offset, length); } ! public SocketAddress receive (ByteBuffer dst) throws IOException { if (!isOpen()) throw new ClosedChannelException(); ! try { begin(); *************** public final class DatagramChannelImpl e *** 216,238 **** end(true); } } ! public int send (ByteBuffer src, SocketAddress target) throws IOException { if (!isOpen()) throw new ClosedChannelException(); ! if (!(target instanceof InetSocketAddress)) throw new IOException("can only send to inet socket addresses"); ! InetSocketAddress dst = (InetSocketAddress) target; if (dst.isUnresolved()) throw new IOException("Target address not resolved"); return channel.send(src, dst); } ! public VMChannel getVMChannel() { return channel; --- 216,238 ---- end(true); } } ! public int send (ByteBuffer src, SocketAddress target) throws IOException { if (!isOpen()) throw new ClosedChannelException(); ! if (!(target instanceof InetSocketAddress)) throw new IOException("can only send to inet socket addresses"); ! InetSocketAddress dst = (InetSocketAddress) target; if (dst.isUnresolved()) throw new IOException("Target address not resolved"); return channel.send(src, dst); } ! public VMChannel getVMChannel() { return channel; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/DatagramChannelSelectionKey.java gcc-4.6.0/libjava/classpath/gnu/java/nio/DatagramChannelSelectionKey.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/DatagramChannelSelectionKey.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/DatagramChannelSelectionKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DatagramChannelSelectionKey.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DatagramChannelSelectionKey.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/EpollSelectionKeyImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/EpollSelectionKeyImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/EpollSelectionKeyImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/EpollSelectionKeyImpl.java Tue Jan 11 19:46:05 2011 *************** public class EpollSelectionKeyImpl exten *** 58,64 **** int key; boolean valid; boolean cancelled; ! EpollSelectionKeyImpl(EpollSelectorImpl selector, SelectableChannel channel, int fd) { --- 58,64 ---- int key; boolean valid; boolean cancelled; ! EpollSelectionKeyImpl(EpollSelectorImpl selector, SelectableChannel channel, int fd) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/EpollSelectorImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/EpollSelectorImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/EpollSelectorImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/EpollSelectorImpl.java Tue Jan 11 19:46:05 2011 *************** public class EpollSelectorImpl extends A *** 65,84 **** // XXX is this reasonable? Does it matter? private static final int DEFAULT_EPOLL_SIZE = 128; private static final int sizeof_struct_epoll_event; ! private static final int OP_ACCEPT = SelectionKey.OP_ACCEPT; private static final int OP_CONNECT = SelectionKey.OP_CONNECT; private static final int OP_READ = SelectionKey.OP_READ; private static final int OP_WRITE = SelectionKey.OP_WRITE; ! /** our epoll file descriptor. */ private int epoll_fd; ! private final HashMap keys; private Set selectedKeys; private Thread waitingThread; private ByteBuffer events; ! private static final int INITIAL_CAPACITY; private static final int MAX_DOUBLING_CAPACITY; private static final int CAPACITY_INCREMENT; --- 65,84 ---- // XXX is this reasonable? Does it matter? private static final int DEFAULT_EPOLL_SIZE = 128; private static final int sizeof_struct_epoll_event; ! private static final int OP_ACCEPT = SelectionKey.OP_ACCEPT; private static final int OP_CONNECT = SelectionKey.OP_CONNECT; private static final int OP_READ = SelectionKey.OP_READ; private static final int OP_WRITE = SelectionKey.OP_WRITE; ! /** our epoll file descriptor. */ private int epoll_fd; ! private final HashMap keys; private Set selectedKeys; private Thread waitingThread; private ByteBuffer events; ! private static final int INITIAL_CAPACITY; private static final int MAX_DOUBLING_CAPACITY; private static final int CAPACITY_INCREMENT; *************** public class EpollSelectorImpl extends A *** 87,103 **** { if (Configuration.INIT_LOAD_LIBRARY) System.loadLibrary("javanio"); ! if (epoll_supported()) sizeof_struct_epoll_event = sizeof_struct(); else sizeof_struct_epoll_event = -1; ! INITIAL_CAPACITY = 64 * sizeof_struct_epoll_event; MAX_DOUBLING_CAPACITY = 1024 * sizeof_struct_epoll_event; CAPACITY_INCREMENT = 128 * sizeof_struct_epoll_event; } ! public EpollSelectorImpl(SelectorProvider provider) throws IOException { --- 87,103 ---- { if (Configuration.INIT_LOAD_LIBRARY) System.loadLibrary("javanio"); ! if (epoll_supported()) sizeof_struct_epoll_event = sizeof_struct(); else sizeof_struct_epoll_event = -1; ! INITIAL_CAPACITY = 64 * sizeof_struct_epoll_event; MAX_DOUBLING_CAPACITY = 1024 * sizeof_struct_epoll_event; CAPACITY_INCREMENT = 128 * sizeof_struct_epoll_event; } ! public EpollSelectorImpl(SelectorProvider provider) throws IOException { *************** public class EpollSelectorImpl extends A *** 135,141 **** throw new IllegalArgumentException("invalid timeout"); return doSelect((int) timeout); } ! private int doSelect(int timeout) throws IOException { synchronized (keys) --- 135,141 ---- throw new IllegalArgumentException("invalid timeout"); return doSelect((int) timeout); } ! private int doSelect(int timeout) throws IOException { synchronized (keys) *************** public class EpollSelectorImpl extends A *** 152,158 **** it.remove(); deregister(key); } ! // Clear out closed channels. The fds are removed from the epoll // fd when closed, so there is no need to remove them manually. for (Iterator it = keys.values().iterator(); it.hasNext(); ) --- 152,158 ---- it.remove(); deregister(key); } ! // Clear out closed channels. The fds are removed from the epoll // fd when closed, so there is no need to remove them manually. for (Iterator it = keys.values().iterator(); it.hasNext(); ) *************** public class EpollSelectorImpl extends A *** 165,171 **** it.remove(); } } ! // Don't bother if we have nothing to select. if (keys.isEmpty()) return 0; --- 165,171 ---- it.remove(); } } ! // Don't bother if we have nothing to select. if (keys.isEmpty()) return 0; *************** public class EpollSelectorImpl extends A *** 183,189 **** waitingThread = null; end(); } ! HashSet s = new HashSet(ret); for (int i = 0; i < ret; i++) { --- 183,189 ---- waitingThread = null; end(); } ! HashSet s = new HashSet(ret); for (int i = 0; i < ret; i++) { *************** public class EpollSelectorImpl extends A *** 197,205 **** key.selectedOps = selected_ops(b) & key.interestOps; s.add(key); } ! reallocateBuffer(); ! selectedKeys = s; return ret; } --- 197,205 ---- key.selectedOps = selected_ops(b) & key.interestOps; s.add(key); } ! reallocateBuffer(); ! selectedKeys = s; return ret; } *************** public class EpollSelectorImpl extends A *** 239,245 **** } return this; } ! /* (non-Javadoc) * @see java.nio.channels.spi.AbstractSelector#implCloseSelector() */ --- 239,245 ---- } return this; } ! /* (non-Javadoc) * @see java.nio.channels.spi.AbstractSelector#implCloseSelector() */ *************** public class EpollSelectorImpl extends A *** 275,281 **** result.key = System.identityHashCode(result); epoll_add(epoll_fd, result.fd, ops); keys.put(Integer.valueOf(native_fd), result); ! reallocateBuffer(); return result; } } --- 275,281 ---- result.key = System.identityHashCode(result); epoll_add(epoll_fd, result.fd, ops); keys.put(Integer.valueOf(native_fd), result); ! reallocateBuffer(); return result; } } *************** public class EpollSelectorImpl extends A *** 284,290 **** throw new IllegalArgumentException(ioe); } } ! private void reallocateBuffer() { // Ensure we have enough space for all potential events that may be --- 284,290 ---- throw new IllegalArgumentException(ioe); } } ! private void reallocateBuffer() { // Ensure we have enough space for all potential events that may be *************** public class EpollSelectorImpl extends A *** 301,318 **** // Ensure that the events buffer is not too large, given the number of // events registered. else if (events.capacity() > keys.size() * sizeof_struct_epoll_event * 2 + 1 ! && events.capacity() > INITIAL_CAPACITY) { int cap = events.capacity() >>> 1; events = ByteBuffer.allocateDirect(cap); } } ! void epoll_modify(EpollSelectionKeyImpl key, int ops) throws IOException { epoll_modify(epoll_fd, key.fd, ops); } ! /** * Tell if epoll is supported by this system, and support was compiled in. * --- 301,318 ---- // Ensure that the events buffer is not too large, given the number of // events registered. else if (events.capacity() > keys.size() * sizeof_struct_epoll_event * 2 + 1 ! && events.capacity() > INITIAL_CAPACITY) { int cap = events.capacity() >>> 1; events = ByteBuffer.allocateDirect(cap); } } ! void epoll_modify(EpollSelectionKeyImpl key, int ops) throws IOException { epoll_modify(epoll_fd, key.fd, ops); } ! /** * Tell if epoll is supported by this system, and support was compiled in. * *************** public class EpollSelectorImpl extends A *** 327,334 **** * @return The size of `struct epoll_event'. */ private static native int sizeof_struct(); ! ! /** * Open a new epoll file descriptor. * --- 327,334 ---- * @return The size of `struct epoll_event'. */ private static native int sizeof_struct(); ! ! /** * Open a new epoll file descriptor. * *************** public class EpollSelectorImpl extends A *** 337,343 **** * @throws IOException If allocating a new epoll descriptor fails. */ private static native int epoll_create(int size) throws IOException; ! /** * Add a file descriptor to this selector. * --- 337,343 ---- * @throws IOException If allocating a new epoll descriptor fails. */ private static native int epoll_create(int size) throws IOException; ! /** * Add a file descriptor to this selector. * *************** public class EpollSelectorImpl extends A *** 347,353 **** */ private static native void epoll_add(int efd, int fd, int ops) throws IOException; ! /** * Modify the interest ops of the key selecting for the given FD. * --- 347,353 ---- */ private static native void epoll_add(int efd, int fd, int ops) throws IOException; ! /** * Modify the interest ops of the key selecting for the given FD. * *************** public class EpollSelectorImpl extends A *** 358,364 **** */ private static native void epoll_modify(int efd, int fd, int ops) throws IOException; ! /** * Remove a file descriptor from this selector. * --- 358,364 ---- */ private static native void epoll_modify(int efd, int fd, int ops) throws IOException; ! /** * Remove a file descriptor from this selector. * *************** public class EpollSelectorImpl extends A *** 367,373 **** * @throws IOException */ private static native void epoll_delete(int efd, int fd) throws IOException; ! /** * Select events. * --- 367,373 ---- * @throws IOException */ private static native void epoll_delete(int efd, int fd) throws IOException; ! /** * Select events. * *************** public class EpollSelectorImpl extends A *** 380,386 **** */ private static native int epoll_wait(int efd, ByteBuffer state, int n, int timeout) throws IOException; ! /** * Fetch the fd value from a selected struct epoll_event. * --- 380,386 ---- */ private static native int epoll_wait(int efd, ByteBuffer state, int n, int timeout) throws IOException; ! /** * Fetch the fd value from a selected struct epoll_event. * *************** public class EpollSelectorImpl extends A *** 388,394 **** * @return The fd value. */ private static native int selected_fd(ByteBuffer struct); ! /** * Fetch the enabled operations from a selected struct epoll_event. * --- 388,394 ---- * @return The fd value. */ private static native int selected_fd(ByteBuffer struct); ! /** * Fetch the enabled operations from a selected struct epoll_event. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/FileChannelImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/FileChannelImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/FileChannelImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/FileChannelImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FileChannelImpl.java -- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FileChannelImpl.java -- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.nio.channels.WritableByteCha *** 58,64 **** /** * This file is not user visible ! * But alas, Java does not have a concept of friendly packages ! * so this class is public. * Instances of this class are created by invoking getChannel * Upon a Input/Output/RandomAccessFile object. */ --- 58,64 ---- /** * This file is not user visible ! * But alas, Java does not have a concept of friendly packages ! * so this class is public. * Instances of this class are created by invoking getChannel * Upon a Input/Output/RandomAccessFile object. */ *************** public final class FileChannelImpl exten *** 86,92 **** { System.loadLibrary("javanio"); } ! //init(); FileChannelImpl ch = null; --- 86,92 ---- { System.loadLibrary("javanio"); } ! //init(); FileChannelImpl ch = null; *************** public final class FileChannelImpl exten *** 99,105 **** throw new Error(ioe); } in = ch; ! ch = null; try { --- 99,105 ---- throw new Error(ioe); } in = ch; ! ch = null; try { *************** public final class FileChannelImpl exten *** 110,120 **** throw new Error(ioe); } out = ch; ! ch = null; try { ! ch = new FileChannelImpl(VMChannel.getStderr(), WRITE); } catch (IOException ioe) { --- 110,120 ---- throw new Error(ioe); } out = ch; ! ch = null; try { ! ch = new FileChannelImpl(VMChannel.getStderr(), WRITE); } catch (IOException ioe) { *************** public final class FileChannelImpl exten *** 154,169 **** // to avoid race condition. if (file.isDirectory()) { ! try ! { ! close(); ! } ! catch (IOException e) ! { ! /* ignore it */ ! } ! throw new FileNotFoundException(description + " is a directory"); } } --- 154,169 ---- // to avoid race condition. if (file.isDirectory()) { ! try ! { ! close(); ! } ! catch (IOException e) ! { ! /* ignore it */ ! } ! throw new FileNotFoundException(description + " is a directory"); } } *************** public final class FileChannelImpl exten *** 202,208 **** { ch.truncate(size); } ! public void unlock(long pos, long len) throws IOException { ch.unlock(pos, len); --- 202,208 ---- { ch.truncate(size); } ! public void unlock(long pos, long len) throws IOException { ch.unlock(pos, len); *************** public final class FileChannelImpl exten *** 212,218 **** { return ch.size(); } ! protected void implCloseChannel() throws IOException { ch.close(); --- 212,218 ---- { return ch.size(); } ! protected void implCloseChannel() throws IOException { ch.close(); *************** public final class FileChannelImpl exten *** 241,247 **** position (position); int result = read(dst); position (oldPosition); ! return result; } --- 241,247 ---- position (position); int result = read(dst); position (oldPosition); ! return result; } *************** public final class FileChannelImpl exten *** 260,266 **** { return ch.write(src); } ! public int write (ByteBuffer src, long position) throws IOException { --- 260,266 ---- { return ch.write(src); } ! public int write (ByteBuffer src, long position) throws IOException { *************** public final class FileChannelImpl exten *** 269,275 **** if (!isOpen ()) throw new ClosedChannelException (); ! if ((mode & WRITE) == 0) throw new NonWritableChannelException (); --- 269,275 ---- if (!isOpen ()) throw new ClosedChannelException (); ! if ((mode & WRITE) == 0) throw new NonWritableChannelException (); *************** public final class FileChannelImpl exten *** 280,286 **** seek (position); result = write(src); seek (oldPosition); ! return result; } --- 280,286 ---- seek (position); result = write(src); seek (oldPosition); ! return result; } *************** public final class FileChannelImpl exten *** 296,325 **** } public MappedByteBuffer map (FileChannel.MapMode mode, ! long position, long size) throws IOException { char nmode = 0; if (mode == MapMode.READ_ONLY) { ! nmode = 'r'; ! if ((this.mode & READ) == 0) ! throw new NonReadableChannelException(); } else if (mode == MapMode.READ_WRITE || mode == MapMode.PRIVATE) { ! nmode = mode == MapMode.READ_WRITE ? '+' : 'c'; ! if ((this.mode & WRITE) != WRITE) ! throw new NonWritableChannelException(); ! if ((this.mode & READ) != READ) ! throw new NonReadableChannelException(); } else throw new IllegalArgumentException ("mode: " + mode); ! if (position < 0 || size < 0 || size > Integer.MAX_VALUE) throw new IllegalArgumentException ("position: " + position ! + ", size: " + size); return ch.map(nmode, position, (int) size); } --- 296,325 ---- } public MappedByteBuffer map (FileChannel.MapMode mode, ! long position, long size) throws IOException { char nmode = 0; if (mode == MapMode.READ_ONLY) { ! nmode = 'r'; ! if ((this.mode & READ) == 0) ! throw new NonReadableChannelException(); } else if (mode == MapMode.READ_WRITE || mode == MapMode.PRIVATE) { ! nmode = mode == MapMode.READ_WRITE ? '+' : 'c'; ! if ((this.mode & WRITE) != WRITE) ! throw new NonWritableChannelException(); ! if ((this.mode & READ) != READ) ! throw new NonReadableChannelException(); } else throw new IllegalArgumentException ("mode: " + mode); ! if (position < 0 || size < 0 || size > Integer.MAX_VALUE) throw new IllegalArgumentException ("position: " + position ! + ", size: " + size); return ch.map(nmode, position, (int) size); } *************** public final class FileChannelImpl exten *** 335,433 **** } // like transferTo, but with a count of less than 2Gbytes ! private int smallTransferTo (long position, int count, ! WritableByteChannel target) throws IOException { ByteBuffer buffer; try { ! // Try to use a mapped buffer if we can. If this fails for ! // any reason we'll fall back to using a ByteBuffer. ! buffer = map (MapMode.READ_ONLY, position, count); } catch (IOException e) { ! buffer = ByteBuffer.allocate (count); ! read (buffer, position); ! buffer.flip(); } return target.write (buffer); } ! public long transferTo (long position, long count, ! WritableByteChannel target) throws IOException { if (position < 0 || count < 0) throw new IllegalArgumentException ("position: " + position ! + ", count: " + count); if (!isOpen ()) throw new ClosedChannelException (); if ((mode & READ) == 0) throw new NonReadableChannelException (); ! final int pageSize = 65536; long total = 0; while (count > 0) { ! int transferred ! = smallTransferTo (position, (int)Math.min (count, pageSize), ! target); ! if (transferred < 0) ! break; ! total += transferred; ! position += transferred; ! count -= transferred; } return total; } // like transferFrom, but with a count of less than 2Gbytes ! private int smallTransferFrom (ReadableByteChannel src, long position, ! int count) throws IOException { ByteBuffer buffer = null; if (src instanceof FileChannel) { ! try ! { ! // Try to use a mapped buffer if we can. If this fails ! // for any reason we'll fall back to using a ByteBuffer. ! buffer = ((FileChannel)src).map (MapMode.READ_ONLY, position, ! count); ! } ! catch (IOException e) ! { ! } } if (buffer == null) { ! buffer = ByteBuffer.allocate (count); ! src.read (buffer); ! buffer.flip(); } return write (buffer, position); } ! public long transferFrom (ReadableByteChannel src, long position, ! long count) throws IOException { if (position < 0 || count < 0) throw new IllegalArgumentException ("position: " + position ! + ", count: " + count); if (!isOpen ()) throw new ClosedChannelException (); --- 335,433 ---- } // like transferTo, but with a count of less than 2Gbytes ! private int smallTransferTo (long position, int count, ! WritableByteChannel target) throws IOException { ByteBuffer buffer; try { ! // Try to use a mapped buffer if we can. If this fails for ! // any reason we'll fall back to using a ByteBuffer. ! buffer = map (MapMode.READ_ONLY, position, count); } catch (IOException e) { ! buffer = ByteBuffer.allocate (count); ! read (buffer, position); ! buffer.flip(); } return target.write (buffer); } ! public long transferTo (long position, long count, ! WritableByteChannel target) throws IOException { if (position < 0 || count < 0) throw new IllegalArgumentException ("position: " + position ! + ", count: " + count); if (!isOpen ()) throw new ClosedChannelException (); if ((mode & READ) == 0) throw new NonReadableChannelException (); ! final int pageSize = 65536; long total = 0; while (count > 0) { ! int transferred ! = smallTransferTo (position, (int)Math.min (count, pageSize), ! target); ! if (transferred < 0) ! break; ! total += transferred; ! position += transferred; ! count -= transferred; } return total; } // like transferFrom, but with a count of less than 2Gbytes ! private int smallTransferFrom (ReadableByteChannel src, long position, ! int count) throws IOException { ByteBuffer buffer = null; if (src instanceof FileChannel) { ! try ! { ! // Try to use a mapped buffer if we can. If this fails ! // for any reason we'll fall back to using a ByteBuffer. ! buffer = ((FileChannel)src).map (MapMode.READ_ONLY, position, ! count); ! } ! catch (IOException e) ! { ! } } if (buffer == null) { ! buffer = ByteBuffer.allocate (count); ! src.read (buffer); ! buffer.flip(); } return write (buffer, position); } ! public long transferFrom (ReadableByteChannel src, long position, ! long count) throws IOException { if (position < 0 || count < 0) throw new IllegalArgumentException ("position: " + position ! + ", count: " + count); if (!isOpen ()) throw new ClosedChannelException (); *************** public final class FileChannelImpl exten *** 440,452 **** while (count > 0) { ! int transferred = smallTransferFrom (src, position, ! (int)Math.min (count, pageSize)); ! if (transferred < 0) ! break; ! total += transferred; ! position += transferred; ! count -= transferred; } return total; --- 440,452 ---- while (count > 0) { ! int transferred = smallTransferFrom (src, position, ! (int)Math.min (count, pageSize)); ! if (transferred < 0) ! break; ! total += transferred; ! position += transferred; ! count -= transferred; } return total; *************** public final class FileChannelImpl exten *** 459,472 **** if (position < 0 || size < 0) throw new IllegalArgumentException ("position: " + position ! + ", size: " + size); if (!isOpen ()) throw new ClosedChannelException(); if (shared && ((mode & READ) == 0)) throw new NonReadableChannelException(); ! if (!shared && ((mode & WRITE) == 0)) throw new NonWritableChannelException(); } --- 459,472 ---- if (position < 0 || size < 0) throw new IllegalArgumentException ("position: " + position ! + ", size: " + size); if (!isOpen ()) throw new ClosedChannelException(); if (shared && ((mode & READ) == 0)) throw new NonReadableChannelException(); ! if (!shared && ((mode & WRITE) == 0)) throw new NonWritableChannelException(); } *************** public final class FileChannelImpl exten *** 479,497 **** boolean completed = false; try { ! begin(); ! boolean lockable = ch.lock(position, size, shared, false); ! completed = true; ! return (lockable ! ? new FileLockImpl(this, position, size, shared) ! : null); } finally { ! end(completed); } } ! public FileLock lock (long position, long size, boolean shared) throws IOException { --- 479,497 ---- boolean completed = false; try { ! begin(); ! boolean lockable = ch.lock(position, size, shared, false); ! completed = true; ! return (lockable ! ? new FileLockImpl(this, position, size, shared) ! : null); } finally { ! end(completed); } } ! public FileLock lock (long position, long size, boolean shared) throws IOException { *************** public final class FileChannelImpl exten *** 500,514 **** boolean completed = false; try { ! boolean lockable = ch.lock(position, size, shared, true); ! completed = true; ! return (lockable ! ? new FileLockImpl(this, position, size, shared) ! : null); } finally { ! end(completed); } } --- 500,514 ---- boolean completed = false; try { ! boolean lockable = ch.lock(position, size, shared, true); ! completed = true; ! return (lockable ! ? new FileLockImpl(this, position, size, shared) ! : null); } finally { ! end(completed); } } *************** public final class FileChannelImpl exten *** 520,526 **** return implPosition (); } ! public FileChannel position (long newPosition) throws IOException { --- 520,526 ---- return implPosition (); } ! public FileChannel position (long newPosition) throws IOException { *************** public final class FileChannelImpl exten *** 535,541 **** seek (newPosition); return this; } ! public FileChannel truncate (long size) throws IOException { --- 535,541 ---- seek (newPosition); return this; } ! public FileChannel truncate (long size) throws IOException { *************** public final class FileChannelImpl exten *** 557,565 **** public String toString() { return (super.toString() ! + "[ fd: " + ch.getState() ! + "; mode: " + Integer.toOctalString(mode) ! + "; " + description + " ]"); } /** --- 557,565 ---- public String toString() { return (super.toString() ! + "[ fd: " + ch.getState() ! + "; mode: " + Integer.toOctalString(mode) ! + "; " + description + " ]"); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/FileLockImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/FileLockImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/FileLockImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/FileLockImpl.java Tue Jan 11 19:46:05 2011 *************** public final class FileLockImpl extends *** 69,82 **** { try { ! release(); } catch (IOException e) { ! // Ignore this. } } ! /** * Whether or not this lock is valid, false when channel is closed or * release has been explicitly called. --- 69,82 ---- { try { ! release(); } catch (IOException e) { ! // Ignore this. } } ! /** * Whether or not this lock is valid, false when channel is closed or * release has been explicitly called. *************** public final class FileLockImpl extends *** 95,102 **** { if (isValid()) { ! valid = false; ! ((FileChannelImpl) channel()).unlock(position(), size()); } } } --- 95,102 ---- { if (isValid()) { ! valid = false; ! ((FileChannelImpl) channel()).unlock(position(), size()); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/InputStreamChannel.java gcc-4.6.0/libjava/classpath/gnu/java/nio/InputStreamChannel.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/InputStreamChannel.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/InputStreamChannel.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* InputStreamChannel.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* InputStreamChannel.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class InputStreamChannel im *** 51,57 **** { private boolean closed = false; private InputStream in; ! public InputStreamChannel (InputStream in) { super(); --- 51,57 ---- { private boolean closed = false; private InputStream in; ! public InputStreamChannel (InputStream in) { super(); *************** public final class InputStreamChannel im *** 76,82 **** { if (!isOpen()) throw new ClosedChannelException(); ! byte[] buffer = new byte [dst.remaining()]; int readBytes = in.read (buffer); --- 76,82 ---- { if (!isOpen()) throw new ClosedChannelException(); ! byte[] buffer = new byte [dst.remaining()]; int readBytes = in.read (buffer); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java Tue Jan 11 19:46:05 2011 *************** public class KqueueSelectionKeyImpl exte *** 57,68 **** /** The selector we were created for. */ private final KqueueSelectorImpl selector; ! /** The channel we are attached to. */ private final SelectableChannel channel; ! private final VMChannelOwner natChannel; ! public KqueueSelectionKeyImpl(KqueueSelectorImpl selector, SelectableChannel channel) { --- 57,68 ---- /** The selector we were created for. */ private final KqueueSelectorImpl selector; ! /** The channel we are attached to. */ private final SelectableChannel channel; ! private final VMChannelOwner natChannel; ! public KqueueSelectionKeyImpl(KqueueSelectorImpl selector, SelectableChannel channel) { *************** public class KqueueSelectionKeyImpl exte *** 101,107 **** throw new IllegalStateException("key is invalid"); if ((ops & ~channel.validOps()) != 0) throw new IllegalArgumentException("channel does not support all operations"); ! selector.setInterestOps(this, ops); return this; } --- 101,107 ---- throw new IllegalStateException("key is invalid"); if ((ops & ~channel.validOps()) != 0) throw new IllegalArgumentException("channel does not support all operations"); ! selector.setInterestOps(this, ops); return this; } *************** public class KqueueSelectionKeyImpl exte *** 123,129 **** { return selector; } ! public String toString() { if (!isValid()) --- 123,129 ---- { return selector; } ! public String toString() { if (!isValid()) *************** public class KqueueSelectionKeyImpl exte *** 140,151 **** + ((readyOps & OP_WRITE) != 0 ? " OP_WRITE" : "") + " } ]"; } ! public int hashCode() { return fd; } ! public boolean equals(Object o) { if (!(o instanceof KqueueSelectionKeyImpl)) --- 140,151 ---- + ((readyOps & OP_WRITE) != 0 ? " OP_WRITE" : "") + " } ]"; } ! public int hashCode() { return fd; } ! public boolean equals(Object o) { if (!(o instanceof KqueueSelectionKeyImpl)) *************** public class KqueueSelectionKeyImpl exte *** 153,160 **** KqueueSelectionKeyImpl that = (KqueueSelectionKeyImpl) o; return that.fd == this.fd && that.channel.equals(this.channel); } ! ! boolean isReadActive() { return (activeOps & (OP_READ | OP_ACCEPT)) != 0; --- 153,160 ---- KqueueSelectionKeyImpl that = (KqueueSelectionKeyImpl) o; return that.fd == this.fd && that.channel.equals(this.channel); } ! ! boolean isReadActive() { return (activeOps & (OP_READ | OP_ACCEPT)) != 0; *************** public class KqueueSelectionKeyImpl exte *** 164,180 **** { return (interestOps & (OP_READ | OP_ACCEPT)) != 0; } ! boolean isWriteActive() { return (activeOps & (OP_WRITE | OP_CONNECT)) != 0; } ! boolean isWriteInterested() { return (interestOps & (OP_WRITE | OP_CONNECT)) != 0; } ! boolean needCommitRead() { return isReadActive() == (!isReadInterested()); --- 164,180 ---- { return (interestOps & (OP_READ | OP_ACCEPT)) != 0; } ! boolean isWriteActive() { return (activeOps & (OP_WRITE | OP_CONNECT)) != 0; } ! boolean isWriteInterested() { return (interestOps & (OP_WRITE | OP_CONNECT)) != 0; } ! boolean needCommitRead() { return isReadActive() == (!isReadInterested()); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/KqueueSelectorImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/KqueueSelectorImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/KqueueSelectorImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/KqueueSelectorImpl.java Tue Jan 11 19:46:05 2011 *************** public class KqueueSelectorImpl extends *** 70,76 **** private static final int MAX_DOUBLING_CAPACITY = 16384; private static final int CAP_INCREMENT = 1024; private static final int INITIAL_CAPACITY; ! static { try --- 70,76 ---- private static final int MAX_DOUBLING_CAPACITY = 16384; private static final int CAP_INCREMENT = 1024; private static final int INITIAL_CAPACITY; ! static { try *************** public class KqueueSelectorImpl extends *** 88,94 **** _sizeof_struct_kevent = -1; INITIAL_CAPACITY = 16 * _sizeof_struct_kevent; } ! /** * Tell if kqueue-based selectors are supported on this system. * --- 88,94 ---- _sizeof_struct_kevent = -1; INITIAL_CAPACITY = 16 * _sizeof_struct_kevent; } ! /** * Tell if kqueue-based selectors are supported on this system. * *************** public class KqueueSelectorImpl extends *** 96,110 **** * compiled in to Classpath. */ public static native boolean kqueue_supported(); ! /* Our native file descriptor. */ private int kq; ! private HashMap/**/ keys; private HashSet/**/ selected; private Thread blockedThread; private ByteBuffer events; ! private static final int OP_ACCEPT = SelectionKey.OP_ACCEPT; private static final int OP_CONNECT = SelectionKey.OP_CONNECT; private static final int OP_READ = SelectionKey.OP_READ; --- 96,110 ---- * compiled in to Classpath. */ public static native boolean kqueue_supported(); ! /* Our native file descriptor. */ private int kq; ! private HashMap/**/ keys; private HashSet/**/ selected; private Thread blockedThread; private ByteBuffer events; ! private static final int OP_ACCEPT = SelectionKey.OP_ACCEPT; private static final int OP_CONNECT = SelectionKey.OP_CONNECT; private static final int OP_READ = SelectionKey.OP_READ; *************** public class KqueueSelectorImpl extends *** 160,166 **** { if (!isOpen()) throw new ClosedSelectorException(); ! return selected; } --- 160,166 ---- { if (!isOpen()) throw new ClosedSelectorException(); ! return selected; } *************** public class KqueueSelectorImpl extends *** 181,200 **** blockedThread.interrupt(); return this; } ! public String toString() { return super.toString() + " [ fd: " + kq + " ]"; } ! public boolean equals(Object o) { if (!(o instanceof KqueueSelectorImpl)) return false; ! return ((KqueueSelectorImpl) o).kq == kq; } ! int doSelect(long timeout) throws IOException { Set cancelled = cancelledKeys(); --- 181,200 ---- blockedThread.interrupt(); return this; } ! public String toString() { return super.toString() + " [ fd: " + kq + " ]"; } ! public boolean equals(Object o) { if (!(o instanceof KqueueSelectorImpl)) return false; ! return ((KqueueSelectorImpl) o).kq == kq; } ! int doSelect(long timeout) throws IOException { Set cancelled = cancelledKeys(); *************** public class KqueueSelectorImpl extends *** 207,213 **** KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) it.next(); key.interestOps = 0; } ! int events_size = (2 * _sizeof_struct_kevent) * keys.size(); int num_events = 0; --- 207,213 ---- KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) it.next(); key.interestOps = 0; } ! int events_size = (2 * _sizeof_struct_kevent) * keys.size(); int num_events = 0; *************** public class KqueueSelectorImpl extends *** 215,221 **** { Map.Entry e = (Map.Entry) it.next(); KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) e.getValue(); ! SelectableChannel ch = key.channel(); if (ch instanceof VMChannelOwner) { --- 215,221 ---- { Map.Entry e = (Map.Entry) it.next(); KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) e.getValue(); ! SelectableChannel ch = key.channel(); if (ch instanceof VMChannelOwner) { *************** public class KqueueSelectorImpl extends *** 226,232 **** continue; } } ! // If this key is registering a read filter, add it to the buffer. if (key.needCommitRead()) { --- 226,232 ---- continue; } } ! // If this key is registering a read filter, add it to the buffer. if (key.needCommitRead()) { *************** public class KqueueSelectorImpl extends *** 235,241 **** key.activeOps & (OP_READ | OP_ACCEPT), key.key); num_events++; } ! // If this key is registering a write filter, add it to the buffer. if (key.needCommitWrite()) { --- 235,241 ---- key.activeOps & (OP_READ | OP_ACCEPT), key.key); num_events++; } ! // If this key is registering a write filter, add it to the buffer. if (key.needCommitWrite()) { *************** public class KqueueSelectorImpl extends *** 271,277 **** //System.out.println("dump of keys selected:"); //dump_selection_keys((ByteBuffer) events.duplicate().limit(n * _sizeof_struct_kevent)); ! // Commit the operations we've just added in the call to kevent. for (Iterator it = keys.values().iterator(); it.hasNext(); ) { --- 271,277 ---- //System.out.println("dump of keys selected:"); //dump_selection_keys((ByteBuffer) events.duplicate().limit(n * _sizeof_struct_kevent)); ! // Commit the operations we've just added in the call to kevent. for (Iterator it = keys.values().iterator(); it.hasNext(); ) { *************** public class KqueueSelectorImpl extends *** 288,294 **** int y = fetch_key(events.slice()); KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) keys.get(new Integer(y)); ! if (key == null) { System.out.println("WARNING! no key found for selected key " + y); --- 288,294 ---- int y = fetch_key(events.slice()); KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) keys.get(new Integer(y)); ! if (key == null) { System.out.println("WARNING! no key found for selected key " + y); *************** public class KqueueSelectorImpl extends *** 301,307 **** key.readyOps = ready_ops(events.slice(), key.interestOps); selected.add(key); } ! // Finally, remove the cancelled keys. for (Iterator it = cancelled.iterator(); it.hasNext(); ) { --- 301,307 ---- key.readyOps = ready_ops(events.slice(), key.interestOps); selected.add(key); } ! // Finally, remove the cancelled keys. for (Iterator it = cancelled.iterator(); it.hasNext(); ) { *************** public class KqueueSelectorImpl extends *** 317,323 **** } } } ! protected SelectionKey register(AbstractSelectableChannel channel, int interestOps, Object attachment) --- 317,323 ---- } } } ! protected SelectionKey register(AbstractSelectableChannel channel, int interestOps, Object attachment) *************** public class KqueueSelectorImpl extends *** 336,342 **** { throw new IllegalArgumentException("channel is closed or invalid"); } ! KqueueSelectionKeyImpl result = new KqueueSelectionKeyImpl(this, channel); result.interestOps = interestOps; result.attach(attachment); --- 336,342 ---- { throw new IllegalArgumentException("channel is closed or invalid"); } ! KqueueSelectionKeyImpl result = new KqueueSelectionKeyImpl(this, channel); result.interestOps = interestOps; result.attach(attachment); *************** public class KqueueSelectorImpl extends *** 351,357 **** } return result; } ! void setInterestOps(KqueueSelectionKeyImpl key, int ops) { synchronized (keys) --- 351,357 ---- } return result; } ! void setInterestOps(KqueueSelectionKeyImpl key, int ops) { synchronized (keys) *************** public class KqueueSelectorImpl extends *** 359,369 **** key.interestOps = ops; } } ! /** * Reallocate the events buffer. This is the destination buffer for * events returned by kevent. This method will: ! * * * Grow the buffer if there is insufficent space for all registered * events. * * Shrink the buffer if it is more than twice the size needed. --- 359,369 ---- key.interestOps = ops; } } ! /** * Reallocate the events buffer. This is the destination buffer for * events returned by kevent. This method will: ! * * * Grow the buffer if there is insufficent space for all registered * events. * * Shrink the buffer if it is more than twice the size needed. *************** public class KqueueSelectorImpl extends *** 380,386 **** cap += CAP_INCREMENT; else cap = cap << 1; ! events = ByteBuffer.allocateDirect(cap); } else if (events.capacity() > 4 * (_sizeof_struct_kevent) * keys.size() + 1 --- 380,386 ---- cap += CAP_INCREMENT; else cap = cap << 1; ! events = ByteBuffer.allocateDirect(cap); } else if (events.capacity() > 4 * (_sizeof_struct_kevent) * keys.size() + 1 *************** public class KqueueSelectorImpl extends *** 392,403 **** } } } ! //synchronized void updateOps(KqueueSelectionKeyImpl key, int interestOps) //{ // updateOps(key, interestOps, 0, false); //} ! /*void updateOps(KqueueSelectionKeyImpl key, int interestOps, int activeOps, int fd) { --- 392,403 ---- } } } ! //synchronized void updateOps(KqueueSelectionKeyImpl key, int interestOps) //{ // updateOps(key, interestOps, 0, false); //} ! /*void updateOps(KqueueSelectionKeyImpl key, int interestOps, int activeOps, int fd) { *************** public class KqueueSelectorImpl extends *** 437,461 **** + " }"); } } ! /** * Return the size of a struct kevent on this system. * * @return The size of struct kevent. */ private static native int sizeof_struct_kevent(); ! /** * Opens a kqueue descriptor. ! * * @return The new kqueue descriptor. * @throws IOException If opening fails. */ private static native int implOpen() throws IOException; ! /** * Closes the kqueue file descriptor. ! * * @param kq The kqueue file descriptor. * @throws IOException */ --- 437,461 ---- + " }"); } } ! /** * Return the size of a struct kevent on this system. * * @return The size of struct kevent. */ private static native int sizeof_struct_kevent(); ! /** * Opens a kqueue descriptor. ! * * @return The new kqueue descriptor. * @throws IOException If opening fails. */ private static native int implOpen() throws IOException; ! /** * Closes the kqueue file descriptor. ! * * @param kq The kqueue file descriptor. * @throws IOException */ *************** public class KqueueSelectorImpl extends *** 474,480 **** */ private static native void kevent_set(ByteBuffer nstate, int i, int fd, int interestOps, int activeOps, int key); ! /** * Poll for events. The source events are stored in events, * which is also where polled events will be placed. --- 474,480 ---- */ private static native void kevent_set(ByteBuffer nstate, int i, int fd, int interestOps, int activeOps, int key); ! /** * Poll for events. The source events are stored in events, * which is also where polled events will be placed. *************** public class KqueueSelectorImpl extends *** 490,496 **** */ private static native int kevent(int kq, ByteBuffer events, int nevents, int nout, long timeout); ! /** * Fetch a polled key from a native state buffer. For each kevent key we * create, we put the native state info (one or more struct --- 490,496 ---- */ private static native int kevent(int kq, ByteBuffer events, int nevents, int nout, long timeout); ! /** * Fetch a polled key from a native state buffer. For each kevent key we * create, we put the native state info (one or more struct *************** public class KqueueSelectorImpl extends *** 503,509 **** * @return The key object. */ private static native int fetch_key(ByteBuffer nstate); ! /** * Fetch the ready ops of the associated native state. That is, this * inspects the first argument as a struct kevent, looking --- 503,509 ---- * @return The key object. */ private static native int fetch_key(ByteBuffer nstate); ! /** * Fetch the ready ops of the associated native state. That is, this * inspects the first argument as a struct kevent, looking *************** public class KqueueSelectorImpl extends *** 516,522 **** * @return The bit set representing the ready operations. */ private static native int ready_ops(ByteBuffer nstate, int interestOps); ! /** * Check if kevent returned EV_EOF for a selection key. * --- 516,522 ---- * @return The bit set representing the ready operations. */ private static native int ready_ops(ByteBuffer nstate, int interestOps); ! /** * Check if kevent returned EV_EOF for a selection key. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/NIODatagramSocket.java gcc-4.6.0/libjava/classpath/gnu/java/nio/NIODatagramSocket.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/NIODatagramSocket.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/NIODatagramSocket.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NIODatagramSocket.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NIODatagramSocket.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class NIODatagramSocket ext *** 50,56 **** { private PlainDatagramSocketImpl impl; private DatagramChannelImpl channel; ! public NIODatagramSocket (PlainDatagramSocketImpl impl, DatagramChannelImpl channel) { --- 50,56 ---- { private PlainDatagramSocketImpl impl; private DatagramChannelImpl channel; ! public NIODatagramSocket (PlainDatagramSocketImpl impl, DatagramChannelImpl channel) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/NIOServerSocket.java gcc-4.6.0/libjava/classpath/gnu/java/nio/NIOServerSocket.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/NIOServerSocket.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/NIOServerSocket.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NIOServerSocket.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NIOServerSocket.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.security.PrivilegedException *** 55,61 **** public final class NIOServerSocket extends ServerSocket { private ServerSocketChannelImpl channel; ! protected NIOServerSocket (ServerSocketChannelImpl channel) throws IOException { --- 55,61 ---- public final class NIOServerSocket extends ServerSocket { private ServerSocketChannelImpl channel; ! protected NIOServerSocket (ServerSocketChannelImpl channel) throws IOException { *************** public final class NIOServerSocket exten *** 67,90 **** { try { ! final Object t = this; ! final Method method = ServerSocket.class.getDeclaredMethod("getImpl", new Class[0]); ! method.setAccessible(true); ! PrivilegedExceptionAction action = new PrivilegedExceptionAction() ! { ! public Object run() throws Exception ! { ! return method.invoke(t, new Object[0]); ! } ! }; ! return (PlainSocketImpl) AccessController.doPrivileged(action); } catch (Exception e) { ! // This should never happen. ! Error error = new InternalError("unable to invoke method ServerSocket.getImpl()"); ! error.initCause(e); ! throw error; } } --- 67,90 ---- { try { ! final Object t = this; ! final Method method = ServerSocket.class.getDeclaredMethod("getImpl", new Class[0]); ! method.setAccessible(true); ! PrivilegedExceptionAction action = new PrivilegedExceptionAction() ! { ! public Object run() throws Exception ! { ! return method.invoke(t, new Object[0]); ! } ! }; ! return (PlainSocketImpl) AccessController.doPrivileged(action); } catch (Exception e) { ! // This should never happen. ! Error error = new InternalError("unable to invoke method ServerSocket.getImpl()"); ! error.initCause(e); ! throw error; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/NIOSocket.java gcc-4.6.0/libjava/classpath/gnu/java/nio/NIOSocket.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/NIOSocket.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/NIOSocket.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NIOSocket.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NIOSocket.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.nio.channels.SocketChannel; *** 48,54 **** public final class NIOSocket extends Socket { private SocketChannelImpl channel; ! protected NIOSocket (SocketChannelImpl channel) throws IOException { --- 48,54 ---- public final class NIOSocket extends Socket { private SocketChannelImpl channel; ! protected NIOSocket (SocketChannelImpl channel) throws IOException { *************** public final class NIOSocket extends Soc *** 66,77 **** // this.impl = channel.getPlainSocketImpl(); // this.channel = channel; //} ! public final SocketChannel getChannel() { return channel; } ! public boolean isConnected() { return channel.isConnected(); --- 66,77 ---- // this.impl = channel.getPlainSocketImpl(); // this.channel = channel; //} ! public final SocketChannel getChannel() { return channel; } ! public boolean isConnected() { return channel.isConnected(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/NIOSocketImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/NIOSocketImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/NIOSocketImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/NIOSocketImpl.java Tue Jan 11 19:46:05 2011 *************** public class NIOSocketImpl extends Plain *** 50,56 **** { private final SocketChannelImpl channel; ! NIOSocketImpl(SocketChannelImpl channel) throws IOException { this.channel = channel; --- 50,56 ---- { private final SocketChannelImpl channel; ! NIOSocketImpl(SocketChannelImpl channel) throws IOException { this.channel = channel; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/OutputStreamChannel.java gcc-4.6.0/libjava/classpath/gnu/java/nio/OutputStreamChannel.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/OutputStreamChannel.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/OutputStreamChannel.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OutputStreamChannel.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* OutputStreamChannel.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class OutputStreamChannel i *** 51,61 **** { private boolean closed = false; private OutputStream out; ! public OutputStreamChannel (OutputStream out) { super(); ! this.out = out; } --- 51,61 ---- { private boolean closed = false; private OutputStream out; ! public OutputStreamChannel (OutputStream out) { super(); ! this.out = out; } *************** public final class OutputStreamChannel i *** 72,83 **** { return !closed; } ! public int write (ByteBuffer src) throws IOException { if (!isOpen()) throw new ClosedChannelException(); ! int len = src.remaining(); byte[] buffer = new byte [len]; src.get (buffer); --- 72,83 ---- { return !closed; } ! public int write (ByteBuffer src) throws IOException { if (!isOpen()) throw new ClosedChannelException(); ! int len = src.remaining(); byte[] buffer = new byte [len]; src.get (buffer); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/PipeImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/PipeImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/PipeImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/PipeImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PipeImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PipeImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class PipeImpl extends Pipe *** 49,55 **** implements VMChannelOwner { private VMChannel vmch; ! public SourceChannelImpl (SelectorProvider selectorProvider, VMChannel channel) { --- 49,55 ---- implements VMChannelOwner { private VMChannel vmch; ! public SourceChannelImpl (SelectorProvider selectorProvider, VMChannel channel) { *************** class PipeImpl extends Pipe *** 82,99 **** } public final synchronized long read (ByteBuffer[] srcs, int offset, ! int len) throws IOException { if (offset < 0 ! || offset > srcs.length ! || len < 0 ! || len > srcs.length - offset) ! throw new IndexOutOfBoundsException(); return vmch.readScattering(srcs, offset, len); } ! public VMChannel getVMChannel() { return vmch; --- 82,99 ---- } public final synchronized long read (ByteBuffer[] srcs, int offset, ! int len) throws IOException { if (offset < 0 ! || offset > srcs.length ! || len < 0 ! || len > srcs.length - offset) ! throw new IndexOutOfBoundsException(); return vmch.readScattering(srcs, offset, len); } ! public VMChannel getVMChannel() { return vmch; *************** class PipeImpl extends Pipe *** 104,110 **** implements VMChannelOwner { private VMChannel vmch; ! public SinkChannelImpl (SelectorProvider selectorProvider, VMChannel channel) { --- 104,110 ---- implements VMChannelOwner { private VMChannel vmch; ! public SinkChannelImpl (SelectorProvider selectorProvider, VMChannel channel) { *************** class PipeImpl extends Pipe *** 140,153 **** throws IOException { if (offset < 0 ! || offset > srcs.length ! || len < 0 ! || len > srcs.length - offset) ! throw new IndexOutOfBoundsException(); ! return vmch.writeGathering(srcs, offset, len); } ! public VMChannel getVMChannel() { return vmch; --- 140,153 ---- throws IOException { if (offset < 0 ! || offset > srcs.length ! || len < 0 ! || len > srcs.length - offset) ! throw new IndexOutOfBoundsException(); ! return vmch.writeGathering(srcs, offset, len); } ! public VMChannel getVMChannel() { return vmch; *************** class PipeImpl extends Pipe *** 156,162 **** private SinkChannelImpl sink; private SourceChannelImpl source; ! public PipeImpl (SelectorProvider provider) throws IOException { --- 156,162 ---- private SinkChannelImpl sink; private SourceChannelImpl source; ! public PipeImpl (SelectorProvider provider) throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/SelectionKeyImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/SelectionKeyImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/SelectionKeyImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/SelectionKeyImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SelectionKeyImpl.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SelectionKeyImpl.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class SelectionKeyImpl e *** 65,71 **** { if (!isValid()) throw new CancelledKeyException(); ! return readyOps; } --- 65,71 ---- { if (!isValid()) throw new CancelledKeyException(); ! return readyOps; } *************** public abstract class SelectionKeyImpl e *** 73,79 **** { if (!isValid()) throw new CancelledKeyException(); ! readyOps = ops; return this; } --- 73,79 ---- { if (!isValid()) throw new CancelledKeyException(); ! readyOps = ops; return this; } *************** public abstract class SelectionKeyImpl e *** 82,91 **** { if (!isValid()) throw new CancelledKeyException(); ! synchronized (impl.selectedKeys()) { ! return interestOps; } } --- 82,91 ---- { if (!isValid()) throw new CancelledKeyException(); ! synchronized (impl.selectedKeys()) { ! return interestOps; } } *************** public abstract class SelectionKeyImpl e *** 96,106 **** synchronized (impl.selectedKeys()) { ! interestOps = ops; } return this; } ! public Selector selector () { return impl; --- 96,106 ---- synchronized (impl.selectedKeys()) { ! interestOps = ops; } return this; } ! public Selector selector () { return impl; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/SelectorImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/SelectorImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/SelectorImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/SelectorImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SelectorImpl.java -- Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SelectorImpl.java -- Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SelectorImpl extends Abstra *** 62,73 **** * selectThread and unhandledWakeup fields. */ private Object selectThreadMutex = new Object (); ! /** * Any thread that's currently blocked in a select operation. */ private Thread selectThread; ! /** * Indicates whether we have an unhandled wakeup call. This can * be due to either wakeup() triggering a thread interruption while --- 62,73 ---- * selectThread and unhandledWakeup fields. */ private Object selectThreadMutex = new Object (); ! /** * Any thread that's currently blocked in a select operation. */ private Thread selectThread; ! /** * Indicates whether we have an unhandled wakeup call. This can * be due to either wakeup() triggering a thread interruption while *************** public class SelectorImpl extends Abstra *** 82,88 **** public SelectorImpl (SelectorProvider provider) { super (provider); ! keys = new HashSet (); selected = new HashSet (); } --- 82,88 ---- public SelectorImpl (SelectorProvider provider) { super (provider); ! keys = new HashSet (); selected = new HashSet (); } *************** public class SelectorImpl extends Abstra *** 97,103 **** { // Cancel any pending select operation. wakeup(); ! synchronized (keys) { synchronized (selected) --- 97,103 ---- { // Cancel any pending select operation. wakeup(); ! synchronized (keys) { synchronized (selected) *************** public class SelectorImpl extends Abstra *** 117,123 **** return Collections.unmodifiableSet (keys); } ! public final int selectNow() throws IOException { --- 117,123 ---- return Collections.unmodifiableSet (keys); } ! public final int selectNow() throws IOException { *************** public class SelectorImpl extends Abstra *** 174,180 **** { if (!isOpen()) throw new ClosedSelectorException(); ! synchronized (keys) { synchronized (selected) --- 174,180 ---- { if (!isOpen()) throw new ClosedSelectorException(); ! synchronized (keys) { synchronized (selected) *************** public class SelectorImpl extends Abstra *** 199,205 **** // FIXME: Not sure from the spec at what point we should // return "immediately". Is it here or immediately upon // entry to this function? ! // NOTE: There's a possibility of another thread calling // wakeup() immediately after our thread releases // selectThreadMutex's monitor here, in which case we'll --- 199,205 ---- // FIXME: Not sure from the spec at what point we should // return "immediately". Is it here or immediately upon // entry to this function? ! // NOTE: There's a possibility of another thread calling // wakeup() immediately after our thread releases // selectThreadMutex's monitor here, in which case we'll *************** public class SelectorImpl extends Abstra *** 285,302 **** // Set new ready write ops for (int i = 0; i < write.length; i++) { ! if (key.getNativeFD() == write[i]) ! { ! if (key.channel() instanceof SocketChannel) ! { ! if (((SocketChannel) key.channel ()).isConnected ()) ! ops = ops | SelectionKey.OP_WRITE; ! else ! ops = ops | SelectionKey.OP_CONNECT; ! } ! else ! ops = ops | SelectionKey.OP_WRITE; ! } } // FIXME: We dont handle exceptional file descriptors yet. --- 285,302 ---- // Set new ready write ops for (int i = 0; i < write.length; i++) { ! if (key.getNativeFD() == write[i]) ! { ! if (key.channel() instanceof SocketChannel) ! { ! if (((SocketChannel) key.channel ()).isConnected ()) ! ops = ops | SelectionKey.OP_WRITE; ! else ! ops = ops | SelectionKey.OP_CONNECT; ! } ! else ! ops = ops | SelectionKey.OP_WRITE; ! } } // FIXME: We dont handle exceptional file descriptors yet. *************** public class SelectorImpl extends Abstra *** 311,322 **** key.readyOps (key.interestOps () & ops); } deregisterCancelledKeys(); ! return result; } } } ! public final Set selectedKeys() { if (!isOpen()) --- 311,322 ---- key.readyOps (key.interestOps () & ops); } deregisterCancelledKeys(); ! return result; } } } ! public final Set selectedKeys() { if (!isOpen()) *************** public class SelectorImpl extends Abstra *** 332,350 **** // do the reverse under the covers: wakeup triggers a thread // interrupt followed by a subsequent reset of the thread's // interrupt status within select(). ! // First, acquire the monitor of the object regulating // access to our selectThread and unhandledWakeup fields. synchronized (selectThreadMutex) { unhandledWakeup = true; ! // Interrupt any thread which is currently blocked in // a select operation. if (selectThread != null) selectThread.interrupt (); } ! return this; } --- 332,350 ---- // do the reverse under the covers: wakeup triggers a thread // interrupt followed by a subsequent reset of the thread's // interrupt status within select(). ! // First, acquire the monitor of the object regulating // access to our selectThread and unhandledWakeup fields. synchronized (selectThreadMutex) { unhandledWakeup = true; ! // Interrupt any thread which is currently blocked in // a select operation. if (selectThread != null) selectThread.interrupt (); } ! return this; } *************** public class SelectorImpl extends Abstra *** 372,378 **** Object att) { SelectionKeyImpl result; ! if (ch instanceof SocketChannelImpl) result = new SocketChannelSelectionKey (ch, this); else if (ch instanceof DatagramChannelImpl) --- 372,378 ---- Object att) { SelectionKeyImpl result; ! if (ch instanceof SocketChannelImpl) result = new SocketChannelSelectionKey (ch, this); else if (ch instanceof DatagramChannelImpl) *************** public class SelectorImpl extends Abstra *** 388,395 **** { keys.add (result); ! result.interestOps (ops); ! result.attach (att); } return result; --- 388,395 ---- { keys.add (result); ! result.interestOps (ops); ! result.attach (att); } return result; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SelectorProviderImpl.java -- Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SelectorProviderImpl.java -- Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SelectorProviderImpl extend *** 54,60 **** private static final String SELECTOR_IMPL_EPOLL = "epoll"; private static final String SELECTOR_IMPL = "gnu.java.nio.selectorImpl"; private static boolean epoll_failed = false; ! public SelectorProviderImpl () { } --- 54,60 ---- private static final String SELECTOR_IMPL_EPOLL = "epoll"; private static final String SELECTOR_IMPL = "gnu.java.nio.selectorImpl"; private static boolean epoll_failed = false; ! public SelectorProviderImpl () { } *************** public class SelectorProviderImpl extend *** 70,76 **** { return new PipeImpl (this); } ! public AbstractSelector openSelector () throws IOException { --- 70,76 ---- { return new PipeImpl (this); } ! public AbstractSelector openSelector () throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ServerSocketChannelImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ServerSocketChannelImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class ServerSocketChannelIm *** 97,103 **** throw new NotYetBoundException(); boolean completed = false; ! try { begin(); --- 97,103 ---- throw new NotYetBoundException(); boolean completed = false; ! try { begin(); *************** public final class ServerSocketChannelIm *** 120,126 **** { return serverSocket; } ! public VMChannel getVMChannel() { return channel; --- 120,126 ---- { return serverSocket; } ! public VMChannel getVMChannel() { return channel; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java gcc-4.6.0/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ServerSocketChannelSelectionKey.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ServerSocketChannelSelectionKey.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/SocketChannelImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/SocketChannelImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/SocketChannelImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/SocketChannelImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SocketChannelImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SocketChannelImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class SocketChannelImpl ext *** 62,68 **** private boolean connectionPending; private boolean connected; private InetSocketAddress connectAddress; ! public SocketChannelImpl(boolean create) throws IOException { // XXX consider adding security check; this is used by --- 62,68 ---- private boolean connectionPending; private boolean connected; private InetSocketAddress connectAddress; ! public SocketChannelImpl(boolean create) throws IOException { // XXX consider adding security check; this is used by *************** public final class SocketChannelImpl ext *** 74,80 **** { this(new SelectorProviderImpl(), channel, false); } ! SocketChannelImpl(SelectorProvider provider) throws IOException { this(provider, true); --- 74,80 ---- { this(new SelectorProviderImpl(), channel, false); } ! SocketChannelImpl(SelectorProvider provider) throws IOException { this(provider, true); *************** public final class SocketChannelImpl ext *** 85,91 **** { this(provider, new VMChannel(), create); } ! SocketChannelImpl(SelectorProvider provider, VMChannel channel, boolean create) throws IOException { --- 85,91 ---- { this(provider, new VMChannel(), create); } ! SocketChannelImpl(SelectorProvider provider, VMChannel channel, boolean create) throws IOException { *************** public final class SocketChannelImpl ext *** 96,102 **** socket = new NIOSocket(this); configureBlocking(true); } ! /*SocketChannelImpl (SelectorProvider provider, NIOSocket socket) throws IOException --- 96,102 ---- socket = new NIOSocket(this); configureBlocking(true); } ! /*SocketChannelImpl (SelectorProvider provider, NIOSocket socket) throws IOException *************** public final class SocketChannelImpl ext *** 133,150 **** protected void implConfigureBlocking (boolean blocking) throws IOException { channel.setBlocking(blocking); ! } public boolean connect (SocketAddress remote) throws IOException { return connect(remote, 0); } ! public boolean connect (SocketAddress remote, int timeout) throws IOException { if (!isOpen()) throw new ClosedChannelException(); ! if (isConnected()) throw new AlreadyConnectedException(); --- 133,150 ---- protected void implConfigureBlocking (boolean blocking) throws IOException { channel.setBlocking(blocking); ! } public boolean connect (SocketAddress remote) throws IOException { return connect(remote, 0); } ! public boolean connect (SocketAddress remote, int timeout) throws IOException { if (!isOpen()) throw new ClosedChannelException(); ! if (isConnected()) throw new AlreadyConnectedException(); *************** public final class SocketChannelImpl ext *** 153,164 **** if (!(remote instanceof InetSocketAddress)) throw new UnsupportedAddressTypeException(); ! connectAddress = (InetSocketAddress) remote; if (connectAddress.isUnresolved()) throw new UnresolvedAddressException(); ! connected = channel.connect(connectAddress, timeout); connectionPending = !connected; return connected; --- 153,164 ---- if (!(remote instanceof InetSocketAddress)) throw new UnsupportedAddressTypeException(); ! connectAddress = (InetSocketAddress) remote; if (connectAddress.isUnresolved()) throw new UnresolvedAddressException(); ! connected = channel.connect(connectAddress, timeout); connectionPending = !connected; return connected; *************** public final class SocketChannelImpl ext *** 176,185 **** connectionPending = false; return true; } ! if (!connectionPending) throw new NoConnectionPendingException(); ! return false; } --- 176,185 ---- connectionPending = false; return true; } ! if (!connectionPending) throw new NoConnectionPendingException(); ! return false; } *************** public final class SocketChannelImpl ext *** 200,211 **** return false; } } ! public boolean isConnectionPending () { return connectionPending; } ! public Socket socket () { return socket; --- 200,211 ---- return false; } } ! public boolean isConnectionPending () { return connectionPending; } ! public Socket socket () { return socket; *************** public final class SocketChannelImpl ext *** 215,239 **** { if (!isConnected()) throw new NotYetConnectedException(); ! return channel.read(dst); } ! public long read (ByteBuffer[] dsts, int offset, int length) throws IOException { if (!isConnected()) throw new NotYetConnectedException(); ! if ((offset < 0) || (offset > dsts.length) || (length < 0) || (length > (dsts.length - offset))) throw new IndexOutOfBoundsException(); ! return channel.readScattering(dsts, offset, length); } ! public int write(ByteBuffer src) throws IOException { if (!isConnected()) --- 215,239 ---- { if (!isConnected()) throw new NotYetConnectedException(); ! return channel.read(dst); } ! public long read (ByteBuffer[] dsts, int offset, int length) throws IOException { if (!isConnected()) throw new NotYetConnectedException(); ! if ((offset < 0) || (offset > dsts.length) || (length < 0) || (length > (dsts.length - offset))) throw new IndexOutOfBoundsException(); ! return channel.readScattering(dsts, offset, length); } ! public int write(ByteBuffer src) throws IOException { if (!isConnected()) *************** public final class SocketChannelImpl ext *** 247,253 **** { if (!isConnected()) throw new NotYetConnectedException(); ! if ((offset < 0) || (offset > srcs.length) || (length < 0) --- 247,253 ---- { if (!isConnected()) throw new NotYetConnectedException(); ! if ((offset < 0) || (offset > srcs.length) || (length < 0) *************** public final class SocketChannelImpl ext *** 256,262 **** return channel.writeGathering(srcs, offset, length); } ! public VMChannel getVMChannel() { // XXX security check? --- 256,262 ---- return channel.writeGathering(srcs, offset, length); } ! public VMChannel getVMChannel() { // XXX security check? diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/SocketChannelSelectionKey.java gcc-4.6.0/libjava/classpath/gnu/java/nio/SocketChannelSelectionKey.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/SocketChannelSelectionKey.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/SocketChannelSelectionKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SocketChannelSelectionKey.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SocketChannelSelectionKey.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class SocketChannelSelectio *** 49,55 **** { super (channel, selector); } ! // FIXME don't use file descriptor integers public int getNativeFD() { --- 49,55 ---- { super (channel, selector); } ! // FIXME don't use file descriptor integers public int getNativeFD() { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java gcc-4.6.0/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java Tue Jan 11 19:46:05 2011 *************** public class SocketChannelSelectionKeyIm *** 49,55 **** { SocketChannelImpl ch; ! /** * @param ch * @param impl --- 49,55 ---- { SocketChannelImpl ch; ! /** * @param ch * @param impl diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/VMChannelOwner.java gcc-4.6.0/libjava/classpath/gnu/java/nio/VMChannelOwner.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/VMChannelOwner.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/VMChannelOwner.java Tue Jan 11 19:46:05 2011 *************** interface VMChannelOwner *** 50,56 **** { /** * Return the underlying platform-specific Channel instance. ! * * @return The platform channel object. */ VMChannel getVMChannel(); --- 50,56 ---- { /** * Return the underlying platform-specific Channel instance. ! * * @return The platform channel object. */ VMChannel getVMChannel(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ByteCharset.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ByteCharset.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ByteCharset.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ByteCharset.java Tue Jan 11 19:46:05 2011 *************** import java.nio.charset.CoderResult; *** 47,56 **** /** * A generic encoding framework for single-byte encodings, utilizing a look-up * table. ! * * This replaces the gnu.java.io.EncoderEightBitLookup class, created by Aron * Renn. ! * * @author Sven de Marothy * @modified Ian Rogers */ --- 47,56 ---- /** * A generic encoding framework for single-byte encodings, utilizing a look-up * table. ! * * This replaces the gnu.java.io.EncoderEightBitLookup class, created by Aron * Renn. ! * * @author Sven de Marothy * @modified Ian Rogers */ *************** abstract class ByteCharset extends Chars *** 96,102 **** { /** Lookup of byte to char mappings */ private final char[] lookup; ! /** Helper to decode loops */ private final ByteDecodeLoopHelper helper = new ByteDecodeLoopHelper() { --- 96,102 ---- { /** Lookup of byte to char mappings */ private final char[] lookup; ! /** Helper to decode loops */ private final ByteDecodeLoopHelper helper = new ByteDecodeLoopHelper() { *************** abstract class ByteCharset extends Chars *** 109,115 **** return lookup[(int) (b & 0xFF)]; } }; ! // Package-private to avoid a trampoline constructor. Decoder(ByteCharset cs) { --- 109,115 ---- return lookup[(int) (b & 0xFF)]; } }; ! // Package-private to avoid a trampoline constructor. Decoder(ByteCharset cs) { *************** abstract class ByteCharset extends Chars *** 127,133 **** { /** Lookup of char to byte mappings */ private final byte[] lookup; ! /** Helper to encode loops */ private final ByteEncodeLoopHelper helper = new ByteEncodeLoopHelper() { --- 127,133 ---- { /** Lookup of char to byte mappings */ private final byte[] lookup; ! /** Helper to encode loops */ private final ByteEncodeLoopHelper helper = new ByteEncodeLoopHelper() { *************** abstract class ByteCharset extends Chars *** 140,146 **** return lookup[c]; } }; ! // Package-private to avoid a trampoline constructor. Encoder(ByteCharset cs) { --- 140,146 ---- return lookup[c]; } }; ! // Package-private to avoid a trampoline constructor. Encoder(ByteCharset cs) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java Tue Jan 11 19:46:05 2011 *************** import java.nio.charset.CoderResult; *** 43,49 **** /** * Helper class to deal with decoding loops that read a byte at a time ! * * @author Ian Rogers */ public abstract class ByteDecodeLoopHelper --- 43,49 ---- /** * Helper class to deal with decoding loops that read a byte at a time ! * * @author Ian Rogers */ public abstract class ByteDecodeLoopHelper *************** public abstract class ByteDecodeLoopHelp *** 61,67 **** /** * Encodes one or more characters into one or more bytes, mapping each * character to only one byte ! * * @param in character buffer to read from * @param out byte buffer to write to * @return the result state of the encoder --- 61,67 ---- /** * Encodes one or more characters into one or more bytes, mapping each * character to only one byte ! * * @param in character buffer to read from * @param out byte buffer to write to * @return the result state of the encoder *************** public abstract class ByteDecodeLoopHelp *** 120,126 **** int outRemaining = out.remaining(); CoderResult result; ! bailOut: if (inRemaining <= outRemaining) { for (int i = 0; i < inRemaining; i++) --- 120,126 ---- int outRemaining = out.remaining(); CoderResult result; ! bailOut: if (inRemaining <= outRemaining) { for (int i = 0; i < inRemaining; i++) *************** public abstract class ByteDecodeLoopHelp *** 131,137 **** { inPos--; result = CoderResult.unmappableForLength(1); ! break bailOut; } char c = mapToChar(b); outArray[outPos] = c; --- 131,137 ---- { inPos--; result = CoderResult.unmappableForLength(1); ! break bailOut; } char c = mapToChar(b); outArray[outPos] = c; *************** public abstract class ByteDecodeLoopHelp *** 149,155 **** { inPos--; result = CoderResult.unmappableForLength(1); ! break bailOut; } char c = mapToChar(b); outArray[outPos] = c; --- 149,155 ---- { inPos--; result = CoderResult.unmappableForLength(1); ! break bailOut; } char c = mapToChar(b); outArray[outPos] = c; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java Tue Jan 11 19:46:05 2011 *************** import java.nio.charset.CoderResult; *** 43,49 **** /** * Helper class to deal with encoding loops that write a byte at a time ! * * @author Ian Rogers */ public abstract class ByteEncodeLoopHelper --- 43,49 ---- /** * Helper class to deal with encoding loops that write a byte at a time ! * * @author Ian Rogers */ public abstract class ByteEncodeLoopHelper *************** public abstract class ByteEncodeLoopHelp *** 62,68 **** /** * Encodes one or more characters into one or more bytes, mapping each * character to only one byte ! * * @param in character buffer to read from * @param out byte buffer to write to * @return the result state of the encoder --- 62,68 ---- /** * Encodes one or more characters into one or more bytes, mapping each * character to only one byte ! * * @param in character buffer to read from * @param out byte buffer to write to * @return the result state of the encoder *************** public abstract class ByteEncodeLoopHelp *** 121,127 **** int outRemaining = out.remaining(); CoderResult result; ! bailOut: if (inRemaining <= outRemaining) { for (int i = 0; i < inRemaining; i++) --- 121,127 ---- int outRemaining = out.remaining(); CoderResult result; ! bailOut: if (inRemaining <= outRemaining) { for (int i = 0; i < inRemaining; i++) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp424.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp424.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp424.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp424.java Tue Jan 11 19:46:05 2011 *************** public final class Cp424 extends ByteCha *** 45,82 **** */ private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F, ! 0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087, ! 0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007, ! 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A, ! 0x0020, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, ! 0x05D7, 0x05D8, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, ! 0x0026, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, ! 0x05E0, 0x05E1, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, ! 0x002D, 0x002F, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, ! 0x05E8, 0x05E9, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, ! NONE, 0x05EA, NONE, NONE, 0x00A0, NONE, NONE, NONE, ! 0x2017, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, ! NONE, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x00AB, 0x00BB, NONE, NONE, NONE, 0x00B1, ! 0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, ! 0x0071, 0x0072, NONE, NONE, NONE, 0x00B8, NONE, 0x00A4, ! 0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, ! 0x0079, 0x007A, NONE, NONE, NONE, NONE, NONE, 0x00AE, ! 0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, ! 0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7, ! 0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x00AD, NONE, NONE, NONE, NONE, NONE, ! 0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, ! 0x0051, 0x0052, 0x00B9, NONE, NONE, NONE, NONE, NONE, ! 0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, ! 0x0059, 0x005A, 0x00B2, NONE, NONE, NONE, NONE, NONE, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x00B3, NONE, NONE, NONE, NONE, 0x009F }; public Cp424() { --- 45,82 ---- */ private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F, ! 0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087, ! 0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007, ! 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A, ! 0x0020, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, ! 0x05D7, 0x05D8, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, ! 0x0026, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, ! 0x05E0, 0x05E1, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, ! 0x002D, 0x002F, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, ! 0x05E8, 0x05E9, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, ! NONE, 0x05EA, NONE, NONE, 0x00A0, NONE, NONE, NONE, ! 0x2017, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, ! NONE, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x00AB, 0x00BB, NONE, NONE, NONE, 0x00B1, ! 0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, ! 0x0071, 0x0072, NONE, NONE, NONE, 0x00B8, NONE, 0x00A4, ! 0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, ! 0x0079, 0x007A, NONE, NONE, NONE, NONE, NONE, 0x00AE, ! 0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, ! 0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7, ! 0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x00AD, NONE, NONE, NONE, NONE, NONE, ! 0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, ! 0x0051, 0x0052, 0x00B9, NONE, NONE, NONE, NONE, NONE, ! 0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, ! 0x0059, 0x005A, 0x00B2, NONE, NONE, NONE, NONE, NONE, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x00B3, NONE, NONE, NONE, NONE, 0x009F }; public Cp424() { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp437.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp437.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp437.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp437.java Tue Jan 11 19:46:05 2011 *************** public final class Cp437 extends ByteCha *** 43,82 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, ! 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp437() --- 43,82 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, ! 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp437() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp737.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp737.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp737.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp737.java Tue Jan 11 19:46:05 2011 *************** public final class Cp737 extends ByteCha *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, ! 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, ! 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, ! 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, ! 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, ! 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, ! 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, ! 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp737() { ! super("Cp737", new String[] {}, lookup); } } // class Cp737 --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, ! 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, ! 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, ! 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, ! 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, ! 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, ! 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, ! 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp737() { ! super("Cp737", new String[] {}, lookup); } } // class Cp737 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp775.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp775.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp775.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp775.java Tue Jan 11 19:46:05 2011 *************** public final class Cp775 extends ByteCha *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, ! 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, ! 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, ! 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, ! 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, ! 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, ! 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, ! 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, ! 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, ! 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, ! 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 }; public Cp775() { ! super("Cp775", new String[] {}, lookup); } } // class Cp775 --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, ! 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, ! 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, ! 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, ! 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, ! 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, ! 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, ! 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, ! 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, ! 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, ! 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 }; public Cp775() { ! super("Cp775", new String[] {}, lookup); } } // class Cp775 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp850.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp850.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp850.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp850.java Tue Jan 11 19:46:05 2011 *************** public final class Cp850 extends ByteCha *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, ! 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, ! 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, ! 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE, ! 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, ! 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, ! 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, ! 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, ! 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 }; public Cp850() { ! super("Cp850", new String[] {}, lookup); } } // class Cp850 --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, ! 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, ! 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, ! 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE, ! 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, ! 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, ! 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, ! 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, ! 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 }; public Cp850() { ! super("Cp850", new String[] {}, lookup); } } // class Cp850 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp852.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp852.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp852.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp852.java Tue Jan 11 19:46:05 2011 *************** public final class Cp852 extends ByteCha *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, ! 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, ! 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, ! 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, ! 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, ! 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, ! 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, ! 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, ! 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, ! 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, ! 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, ! 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0 }; public Cp852() { ! super("Cp852", new String[] {}, lookup); } } // class Cp852 --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, ! 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, ! 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, ! 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, ! 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, ! 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, ! 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, ! 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, ! 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, ! 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, ! 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, ! 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0 }; public Cp852() { ! super("Cp852", new String[] {}, lookup); } } // class Cp852 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp855.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp855.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp855.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp855.java Tue Jan 11 19:46:05 2011 *************** public final class Cp855 extends ByteCha *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, ! 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, ! 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, ! 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, ! 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, ! 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, ! 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, ! 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, ! 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, ! 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, ! 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, ! 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, ! 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0 }; public Cp855() { ! super("Cp855", new String[] {"cp-855",}, lookup); } } // class Cp855 --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, ! 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, ! 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, ! 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, ! 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, ! 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, ! 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, ! 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, ! 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, ! 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, ! 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, ! 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, ! 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0 }; public Cp855() { ! super("Cp855", new String[] {"cp-855",}, lookup); } } // class Cp855 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp857.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp857.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp857.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp857.java Tue Jan 11 19:46:05 2011 *************** public final class Cp857 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, ! 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, ! 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, ! 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, ! 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, NONE, 0x00CD, 0x00CE, ! 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, ! 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, NONE, ! 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, ! 0x00AD, 0x00B1, NONE, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, ! 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 }; public Cp857() { ! super("Cp857", new String[] {"cp-857"}, lookup); } } // class Cp857 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, ! 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, ! 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, ! 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, ! 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, NONE, 0x00CD, 0x00CE, ! 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, ! 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, NONE, ! 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, ! 0x00AD, 0x00B1, NONE, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, ! 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 }; public Cp857() { ! super("Cp857", new String[] {"cp-857"}, lookup); } } // class Cp857 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp860.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp860.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp860.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp860.java Tue Jan 11 19:46:05 2011 *************** public final class Cp860 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, ! 0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2, ! 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, ! 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp860() { ! super("Cp860", new String[] {"cp-860"}, lookup); } } // class Cp860 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, ! 0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2, ! 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, ! 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp860() { ! super("Cp860", new String[] {"cp-860"}, lookup); } } // class Cp860 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp861.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp861.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp861.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp861.java Tue Jan 11 19:46:05 2011 *************** public final class Cp861 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, ! 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, ! 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp861() { ! super("Cp861", new String[] {"cp-861"}, lookup); } } // class Cp861 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, ! 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, ! 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp861() { ! super("Cp861", new String[] {"cp-861"}, lookup); } } // class Cp861 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp862.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp862.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp862.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp862.java Tue Jan 11 19:46:05 2011 *************** public final class Cp862 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, ! 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, ! 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, ! 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp862() { ! super("Cp862", new String[] {"Cp-862"}, lookup); } } // class Cp862 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, ! 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, ! 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, ! 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp862() { ! super("Cp862", new String[] {"Cp-862"}, lookup); } } // class Cp862 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp863.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp863.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp863.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp863.java Tue Jan 11 19:46:05 2011 *************** public final class Cp863 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x2017, 0x00C0, 0x00A7, ! 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, ! 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, ! 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00B8, 0x00B3, 0x00AF, ! 0x00CE, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp863() { ! super("Cp863", new String[] {"Cp-863"}, lookup); } } // class Cp863 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x2017, 0x00C0, 0x00A7, ! 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, ! 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, ! 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00B8, 0x00B3, 0x00AF, ! 0x00CE, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp863() { ! super("Cp863", new String[] {"Cp-863"}, lookup); } } // class Cp863 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp864.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp864.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp864.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp864.java Tue Jan 11 19:46:05 2011 *************** public final class Cp864 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066A, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, ! 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, ! 0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, ! 0x00BB, 0xFEF7, 0xFEF8, NONE, NONE, 0xFEFB, 0xFEFC, NONE, ! 0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, NONE, NONE, ! 0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5, ! 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, ! 0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F, ! 0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, ! 0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9, ! 0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, ! 0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9, ! 0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, ! 0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1, ! 0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, ! 0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0, NONE }; public Cp864() { ! super("Cp864", new String[] {"Cp-864"}, lookup); } } // class Cp864 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066A, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, ! 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, ! 0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, ! 0x00BB, 0xFEF7, 0xFEF8, NONE, NONE, 0xFEFB, 0xFEFC, NONE, ! 0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, NONE, NONE, ! 0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5, ! 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, ! 0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F, ! 0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, ! 0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9, ! 0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, ! 0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9, ! 0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, ! 0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1, ! 0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, ! 0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0, NONE }; public Cp864() { ! super("Cp864", new String[] {"Cp-864"}, lookup); } } // class Cp864 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp865.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp865.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp865.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp865.java Tue Jan 11 19:46:05 2011 *************** public final class Cp865 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, ! 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp865() { ! super("Cp865", new String[] {"Cp-865"}, lookup); } } // class Cp865 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, ! 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, ! 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, ! 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, ! 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, ! 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, ! 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, ! 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 }; public Cp865() { ! super("Cp865", new String[] {"Cp-865"}, lookup); } } // class Cp865 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp866.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp866.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp866.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp866.java Tue Jan 11 19:46:05 2011 *************** public final class Cp866 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, ! 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, ! 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, ! 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, ! 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, ! 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, ! 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, ! 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0 }; public Cp866() { ! super("Cp866", new String[] {"cp-866"}, lookup); } } // class Cp866 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, ! 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, ! 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, ! 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, ! 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, ! 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, ! 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, ! 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, ! 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, ! 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, ! 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, ! 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, ! 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0 }; public Cp866() { ! super("Cp866", new String[] {"cp-866"}, lookup); } } // class Cp866 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp869.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp869.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp869.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp869.java Tue Jan 11 19:46:05 2011 *************** public final class Cp869 extends ByteCha *** 44,88 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! NONE, NONE, NONE, NONE, NONE, NONE, 0x0386, NONE, ! 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, ! 0x038A, 0x03AA, 0x038C, NONE, NONE, 0x038E, 0x03AB, 0x00A9, ! 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, ! 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, ! 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, ! 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, ! 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, ! 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, ! 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, ! 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, ! 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, ! 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0 }; public Cp869() { ! super("Cp869", new String[] {"Cp-869"}, lookup); } } // class Cp869 --- 44,88 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! NONE, NONE, NONE, NONE, NONE, NONE, 0x0386, NONE, ! 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, ! 0x038A, 0x03AA, 0x038C, NONE, NONE, 0x038E, 0x03AB, 0x00A9, ! 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, ! 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, ! 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, ! 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, ! 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, ! 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1, ! 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, ! 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, ! 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, ! 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, ! 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, ! 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, ! 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0 }; public Cp869() { ! super("Cp869", new String[] {"Cp-869"}, lookup); } } // class Cp869 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp874.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp874.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Cp874.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Cp874.java Tue Jan 11 19:46:05 2011 *************** public final class Cp874 extends ByteCha *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, NONE, NONE, NONE, 0x2026, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, ! 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, ! 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, ! 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, ! 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, ! 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, ! 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, ! 0x0E38, 0x0E39, 0x0E3A, NONE, NONE, NONE, NONE, 0x0E3F, ! 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, ! 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, ! 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, ! 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, NONE, NONE, NONE, NONE }; public Cp874() { ! super("Cp874", new String[] {}, lookup); } } // class Cp874 --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, NONE, NONE, NONE, 0x2026, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, ! 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, ! 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, ! 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, ! 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, ! 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, ! 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, ! 0x0E38, 0x0E39, 0x0E3A, NONE, NONE, NONE, NONE, 0x0E3F, ! 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, ! 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, ! 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, ! 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, NONE, NONE, NONE, NONE }; public Cp874() { ! super("Cp874", new String[] {}, lookup); } } // class Cp874 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/EncodingHelper.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/EncodingHelper.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/EncodingHelper.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/EncodingHelper.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.nio.charset.Charset; *** 45,51 **** import java.io.UnsupportedEncodingException; /** ! * This class provides some useful utility methods * for charset encoding for the java.lang and java.io methods. * * @author Sven de Marothy --- 45,51 ---- import java.io.UnsupportedEncodingException; /** ! * This class provides some useful utility methods * for charset encoding for the java.lang and java.io methods. * * @author Sven de Marothy *************** public class EncodingHelper *** 54,148 **** { /** ! * Contains the mapping from java.io canonical names * to java.nio canonical names. */ private static final HashMap canonicalNames; static { ! canonicalNames = new HashMap(); ! canonicalNames.put("US-ASCII", "ASCII"); ! canonicalNames.put("windows-1250", "Cp1250"); ! canonicalNames.put("windows-1251", "Cp1251"); ! canonicalNames.put("windows-1252", "Cp1252"); ! canonicalNames.put("windows-1253", "Cp1253"); ! canonicalNames.put("windows-1254", "Cp1254"); ! canonicalNames.put("windows-1257", "Cp1257"); ! canonicalNames.put("ISO-8859-1", "ISO8859_1"); ! canonicalNames.put("ISO-8859-2", "ISO8859_2"); ! canonicalNames.put("ISO-8859-4", "ISO8859_4"); ! canonicalNames.put("ISO-8859-5", "ISO8859_5"); ! canonicalNames.put("ISO-8859-7", "ISO8859_7"); ! canonicalNames.put("ISO-8859-9", "ISO8859_9"); ! canonicalNames.put("ISO-8859-13", "ISO8859_13"); ! canonicalNames.put("ISO-8859-15", "ISO8859_15"); ! canonicalNames.put("KOI8-R", "KOI8_R"); ! canonicalNames.put("UTF-8", "UTF8"); ! canonicalNames.put("UTF-16BE", "UnicodeBigUnmarked"); ! canonicalNames.put("UTF-16LE", "UnicodeLittleUnmarked"); ! canonicalNames.put("windows-1255", "Cp1255"); ! canonicalNames.put("windows-1256", "Cp1256"); ! canonicalNames.put("windows-1258", "Cp1258"); ! canonicalNames.put("ISO-8859-3", "ISO8859_3"); ! canonicalNames.put("ISO-8859-6", "ISO8859_6"); ! canonicalNames.put("ISO-8859-8", "ISO8859_8"); } /** ! * Returns the name of the default encoding, * falls back on defaults to Latin-1 if there's a problem. */ public static String getDefaultEncoding() { ! try ! { ! return System.getProperty("file.encoding"); ! } catch(SecurityException e) { ! } catch(IllegalArgumentException e) { ! } ! // XXX - Throw an error here? For now, default to the 'safe' encoding. ! return "8859_1"; } /** ! * Returns the java.io canonical name of a charset given with the * java.nio canonical name. If the charset does not have a java.io * canonical name, the input string is returned. */ public static String getOldCanonical(String newCanonical) { ! String oldCanonical = (String) canonicalNames.get(newCanonical); ! return (oldCanonical != null)?oldCanonical : newCanonical; } public static boolean isISOLatin1(String s) { ! if(s.equals("ISO-8859-1") || ! s.equals("8859_1") || ! s.equals("ISO_8859-1") || ! s.equals("latin1") || ! s.equals("ISO8859_1") || ! s.equals("ISO_8859_1")) ! return true; ! return false; } /** ! * Gets a charset, throwing the java.io exception and not * the java.nio exception if an error occurs. */ ! public static Charset getCharset(String name) ! throws UnsupportedEncodingException { ! try { return Charset.forName(name); ! } ! catch(IllegalCharsetNameException e) { throw new UnsupportedEncodingException("Charset "+name+" not found."); ! } ! catch(UnsupportedCharsetException e) { throw new UnsupportedEncodingException("Charset "+name+" not found."); } --- 54,148 ---- { /** ! * Contains the mapping from java.io canonical names * to java.nio canonical names. */ private static final HashMap canonicalNames; static { ! canonicalNames = new HashMap(); ! canonicalNames.put("US-ASCII", "ASCII"); ! canonicalNames.put("windows-1250", "Cp1250"); ! canonicalNames.put("windows-1251", "Cp1251"); ! canonicalNames.put("windows-1252", "Cp1252"); ! canonicalNames.put("windows-1253", "Cp1253"); ! canonicalNames.put("windows-1254", "Cp1254"); ! canonicalNames.put("windows-1257", "Cp1257"); ! canonicalNames.put("ISO-8859-1", "ISO8859_1"); ! canonicalNames.put("ISO-8859-2", "ISO8859_2"); ! canonicalNames.put("ISO-8859-4", "ISO8859_4"); ! canonicalNames.put("ISO-8859-5", "ISO8859_5"); ! canonicalNames.put("ISO-8859-7", "ISO8859_7"); ! canonicalNames.put("ISO-8859-9", "ISO8859_9"); ! canonicalNames.put("ISO-8859-13", "ISO8859_13"); ! canonicalNames.put("ISO-8859-15", "ISO8859_15"); ! canonicalNames.put("KOI8-R", "KOI8_R"); ! canonicalNames.put("UTF-8", "UTF8"); ! canonicalNames.put("UTF-16BE", "UnicodeBigUnmarked"); ! canonicalNames.put("UTF-16LE", "UnicodeLittleUnmarked"); ! canonicalNames.put("windows-1255", "Cp1255"); ! canonicalNames.put("windows-1256", "Cp1256"); ! canonicalNames.put("windows-1258", "Cp1258"); ! canonicalNames.put("ISO-8859-3", "ISO8859_3"); ! canonicalNames.put("ISO-8859-6", "ISO8859_6"); ! canonicalNames.put("ISO-8859-8", "ISO8859_8"); } /** ! * Returns the name of the default encoding, * falls back on defaults to Latin-1 if there's a problem. */ public static String getDefaultEncoding() { ! try ! { ! return System.getProperty("file.encoding"); ! } catch(SecurityException e) { ! } catch(IllegalArgumentException e) { ! } ! // XXX - Throw an error here? For now, default to the 'safe' encoding. ! return "8859_1"; } /** ! * Returns the java.io canonical name of a charset given with the * java.nio canonical name. If the charset does not have a java.io * canonical name, the input string is returned. */ public static String getOldCanonical(String newCanonical) { ! String oldCanonical = (String) canonicalNames.get(newCanonical); ! return (oldCanonical != null)?oldCanonical : newCanonical; } public static boolean isISOLatin1(String s) { ! if(s.equals("ISO-8859-1") || ! s.equals("8859_1") || ! s.equals("ISO_8859-1") || ! s.equals("latin1") || ! s.equals("ISO8859_1") || ! s.equals("ISO_8859_1")) ! return true; ! return false; } /** ! * Gets a charset, throwing the java.io exception and not * the java.nio exception if an error occurs. */ ! public static Charset getCharset(String name) ! throws UnsupportedEncodingException { ! try { return Charset.forName(name); ! } ! catch(IllegalCharsetNameException e) { throw new UnsupportedEncodingException("Charset "+name+" not found."); ! } ! catch(UnsupportedCharsetException e) { throw new UnsupportedEncodingException("Charset "+name+" not found."); } *************** public class EncodingHelper *** 159,164 **** return new UTF_8(); } } - - - --- 159,161 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ISO_8859_1.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ISO_8859_1.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ISO_8859_1 extends Charset *** 58,64 **** * http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html */ super ("ISO-8859-1", new String[] { ! /* These names are provided by * http://www.iana.org/assignments/character-sets */ "iso-ir-100", --- 58,64 ---- * http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html */ super ("ISO-8859-1", new String[] { ! /* These names are provided by * http://www.iana.org/assignments/character-sets */ "iso-ir-100", *************** final class ISO_8859_1 extends Charset *** 111,117 **** return (char)(b & 0xFF); } }; ! // Package-private to avoid a trampoline constructor. Decoder (Charset cs) { --- 111,117 ---- return (char)(b & 0xFF); } }; ! // Package-private to avoid a trampoline constructor. Decoder (Charset cs) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_13 extends B *** 47,103 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, ! 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, ! 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, ! 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, ! 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, ! 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, ! 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, ! 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, ! 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, ! 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019 ! }; public ISO_8859_13() { super("ISO-8859-13", new String[] { ! "ISO8859_13", ! "8859_13", ! "ibm-921_P100-1995", ! "ibm-921", ! "iso_8859_13", ! "iso8859_13", ! "iso-8859-13", ! "8859_13", ! "cp921", ! "921" }, lookup); } - - } // class ISO_8859_13 --- 47,102 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, ! 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, ! 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, ! 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, ! 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, ! 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, ! 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, ! 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, ! 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, ! 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019 ! }; public ISO_8859_13() { super("ISO-8859-13", new String[] { ! "ISO8859_13", ! "8859_13", ! "ibm-921_P100-1995", ! "ibm-921", ! "iso_8859_13", ! "iso8859_13", ! "iso-8859-13", ! "8859_13", ! "cp921", ! "921" }, lookup); } + } // class ISO_8859_13 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_15 extends B *** 47,110 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7, ! 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7, ! 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, ! 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF ! }; public ISO_8859_15() { super("ISO-8859-15", new String[] { ! "8859_15", ! "iso8859_15", ! "iso-8859-15", ! "8859-15", ! "latin9", ! "iso_8859_15", ! "ibm-923_P100-1998", ! "ibm-923", ! "Latin-9", ! "l9", ! "latin0", ! "csisolatin0", ! "csisolatin9", ! "iso8859_15_fdis", ! "cp923", ! "923", ! "windows-28605" }, lookup); } - - } // class ISO_8859_15 --- 47,109 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7, ! 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7, ! 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, ! 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF ! }; public ISO_8859_15() { super("ISO-8859-15", new String[] { ! "8859_15", ! "iso8859_15", ! "iso-8859-15", ! "8859-15", ! "latin9", ! "iso_8859_15", ! "ibm-923_P100-1998", ! "ibm-923", ! "Latin-9", ! "l9", ! "latin0", ! "csisolatin0", ! "csisolatin9", ! "iso8859_15_fdis", ! "cp923", ! "923", ! "windows-28605" }, lookup); } + } // class ISO_8859_15 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_2 extends By *** 48,54 **** * This is the lookup table for this encoding * Note: ranges 0-1F and 7f-97 aren't defined in the spec file aron used. */ ! private static final char[] lookup = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, --- 48,54 ---- * This is the lookup table for this encoding * Note: ranges 0-1F and 7f-97 aren't defined in the spec file aron used. */ ! private static final char[] lookup = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, *************** public final class ISO_8859_2 extends By *** 82,109 **** 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 ! }; public ISO_8859_2() { super("ISO-8859-2", new String[] { ! "ISO8859_2", ! "8859_2", ! "ibm-912_P100-1995", ! "ibm-912", ! "iso_8859_2", ! "iso8859_2", ! "iso-8859-2", ! "ISO_8859-2:1987", ! "latin2", ! "csISOLatin2", ! "iso-ir-101", ! "l2", ! "cp912", ! "912", ! "windows-28592" }, lookup); } - - } // class ISO_8859_2 --- 82,108 ---- 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 ! }; public ISO_8859_2() { super("ISO-8859-2", new String[] { ! "ISO8859_2", ! "8859_2", ! "ibm-912_P100-1995", ! "ibm-912", ! "iso_8859_2", ! "iso8859_2", ! "iso-8859-2", ! "ISO_8859-2:1987", ! "latin2", ! "csISOLatin2", ! "iso-ir-101", ! "l2", ! "cp912", ! "912", ! "windows-28592" }, lookup); } + } // class ISO_8859_2 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_3 extends By *** 47,108 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, NONE, 0x0124, 0x00A7, ! 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, NONE, 0x017B, ! 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, ! 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, NONE, 0x017C, ! 0x00C0, 0x00C1, 0x00C2, NONE, 0x00C4, 0x010A, 0x0108, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! NONE, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, ! 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, NONE, 0x00E4, 0x010B, 0x0109, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! NONE, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, ! 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 ! }; public ISO_8859_3() { super("ISO-8859-3", new String[] { ! "ISO8859_3", ! "8859_3", ! "ibm-913_P100-2000", ! "ibm-913", ! "iso_8859_3", ! "iso8859_3", ! "iso-8859-3", ! "ISO_8859-3:1988", ! "latin3", ! "csISOLatin3", ! "iso-ir-109", ! "l3", ! "cp913", ! "913", ! "windows-28593" }, lookup); } - - } // class ISO_8859_3 --- 47,107 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, NONE, 0x0124, 0x00A7, ! 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, NONE, 0x017B, ! 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, ! 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, NONE, 0x017C, ! 0x00C0, 0x00C1, 0x00C2, NONE, 0x00C4, 0x010A, 0x0108, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! NONE, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, ! 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, NONE, 0x00E4, 0x010B, 0x0109, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! NONE, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, ! 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 ! }; public ISO_8859_3() { super("ISO-8859-3", new String[] { ! "ISO8859_3", ! "8859_3", ! "ibm-913_P100-2000", ! "ibm-913", ! "iso_8859_3", ! "iso8859_3", ! "iso-8859-3", ! "ISO_8859-3:1988", ! "latin3", ! "csISOLatin3", ! "iso-ir-109", ! "l3", ! "cp913", ! "913", ! "windows-28593" }, lookup); } + } // class ISO_8859_3 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_4 extends By *** 48,54 **** * This is the lookup table for this encoding * Note: ranges 0-1F and 7f-9f aren't defined in the spec file aron used. */ ! private static final char[] lookup = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, --- 48,54 ---- * This is the lookup table for this encoding * Note: ranges 0-1F and 7f-9f aren't defined in the spec file aron used. */ ! private static final char[] lookup = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, *************** public final class ISO_8859_4 extends By *** 82,109 **** 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9 ! }; public ISO_8859_4() { super("ISO-8859-4", new String[] { ! "ISO8859_4", ! "8859_4", ! "ibm-914_P100-1995", ! "ibm-914", ! "iso_8859_4", ! "iso8859_4", ! "iso-8859-4", ! "latin4", ! "csISOLatin4", ! "iso-ir-110", ! "ISO_8859-4:1988", ! "l4", ! "cp914", ! "914", ! "windows-28594" }, lookup); } - - } // class ISO_8859_4 --- 82,108 ---- 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9 ! }; public ISO_8859_4() { super("ISO-8859-4", new String[] { ! "ISO8859_4", ! "8859_4", ! "ibm-914_P100-1995", ! "ibm-914", ! "iso_8859_4", ! "iso8859_4", ! "iso-8859-4", ! "latin4", ! "csISOLatin4", ! "iso-ir-110", ! "ISO_8859-4:1988", ! "l4", ! "cp914", ! "914", ! "windows-28594" }, lookup); } + } // class ISO_8859_4 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_5 extends By *** 47,107 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, ! 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, ! 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, ! 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, ! 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, ! 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, ! 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, ! 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, ! 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, ! 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, ! 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F ! }; public ISO_8859_5() { super("ISO-8859-5", new String[] { ! "ISO8859_5", ! "8859_5", ! "ibm-915_P100-1995", ! "ibm-915", ! "iso_8859_5", ! "iso8859_5", ! "iso-8859-5", ! "cyrillic", ! "csISOLatinCyrillic", ! "iso-ir-144", ! "ISO_8859-5:1988", ! "cp915", ! "915", ! "windows-28595" }, lookup); } - - } // class ISO_8859_5 --- 47,106 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, ! 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, ! 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, ! 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, ! 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, ! 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, ! 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, ! 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, ! 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, ! 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, ! 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F ! }; public ISO_8859_5() { super("ISO-8859-5", new String[] { ! "ISO8859_5", ! "8859_5", ! "ibm-915_P100-1995", ! "ibm-915", ! "iso_8859_5", ! "iso8859_5", ! "iso-8859-5", ! "cyrillic", ! "csISOLatinCyrillic", ! "iso-ir-144", ! "ISO_8859-5:1988", ! "cp915", ! "915", ! "windows-28595" }, lookup); } + } // class ISO_8859_5 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_6 extends By *** 47,111 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, NONE, NONE, NONE, 0x00A4, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, 0x060C, 0x00AD, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, 0x061B, NONE, NONE, NONE, 0x061F, ! NONE, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, ! 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, ! 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, ! 0x0638, 0x0639, 0x063A, NONE, NONE, NONE, NONE, NONE, ! 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, ! 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, ! 0x0650, 0x0651, 0x0652, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE ! }; public ISO_8859_6() { super("ISO-8859-6", new String[] { ! "8859_6", ! "ibm-1089_P100-1995", ! "ibm-1089", ! "iso_8859_6", ! "iso8859_6", ! "iso-8859-6", ! "arabic", ! "csISOLatinArabic", ! "iso-ir-127", ! "ISO_8859-6:1987", ! "ECMA-114", ! "ASMO-708", ! "8859_6", ! "cp1089", ! "1089", ! "windows-28596", ! "ISO-8859-6-I", ! "ISO-8859-6-E" }, lookup); } - - } // class ISO_8859_6 --- 47,110 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, NONE, NONE, NONE, 0x00A4, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, 0x060C, 0x00AD, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, 0x061B, NONE, NONE, NONE, 0x061F, ! NONE, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, ! 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, ! 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, ! 0x0638, 0x0639, 0x063A, NONE, NONE, NONE, NONE, NONE, ! 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, ! 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, ! 0x0650, 0x0651, 0x0652, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE ! }; public ISO_8859_6() { super("ISO-8859-6", new String[] { ! "8859_6", ! "ibm-1089_P100-1995", ! "ibm-1089", ! "iso_8859_6", ! "iso8859_6", ! "iso-8859-6", ! "arabic", ! "csISOLatinArabic", ! "iso-ir-127", ! "ISO_8859-6:1987", ! "ECMA-114", ! "ASMO-708", ! "8859_6", ! "cp1089", ! "1089", ! "windows-28596", ! "ISO-8859-6-I", ! "ISO-8859-6-E" }, lookup); } + } // class ISO_8859_6 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_7 extends By *** 47,110 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x02BD, 0x02BC, 0x00A3, NONE, NONE, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, NONE, 0x00AB, 0x00AC, 0x00AD, NONE, 0x2015, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, ! 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, ! 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, ! 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, ! 0x03A0, 0x03A1, NONE, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, ! 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, ! 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, ! 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, ! 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, NONE ! }; public ISO_8859_7() { super("ISO-8859-7", new String[] { ! "ISO8859_7", ! "8859_7", ! "ibm-813_P100-1995", ! "ibm-813", ! "iso_8859_7", ! "iso8859_7", ! "iso-8859-7", ! "greek", ! "greek8", ! "ELOT_928", ! "ECMA-118", ! "csISOLatinGreek", ! "iso-ir-126", ! "ISO_8859-7:1987", ! "cp813", ! "813", ! "windows-28597" }, lookup); } - - } // class ISO_8859_7 --- 47,109 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x02BD, 0x02BC, 0x00A3, NONE, NONE, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, NONE, 0x00AB, 0x00AC, 0x00AD, NONE, 0x2015, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, ! 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, ! 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, ! 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, ! 0x03A0, 0x03A1, NONE, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, ! 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, ! 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, ! 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, ! 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, NONE ! }; public ISO_8859_7() { super("ISO-8859-7", new String[] { ! "ISO8859_7", ! "8859_7", ! "ibm-813_P100-1995", ! "ibm-813", ! "iso_8859_7", ! "iso8859_7", ! "iso-8859-7", ! "greek", ! "greek8", ! "ELOT_928", ! "ECMA-118", ! "csISOLatinGreek", ! "iso-ir-126", ! "ISO_8859-7:1987", ! "cp813", ! "813", ! "windows-28597" }, lookup); } + } // class ISO_8859_7 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_8 extends By *** 47,109 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, NONE, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x203E, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, 0x2017, ! 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, ! 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, ! 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, ! 0x05E8, 0x05E9, 0x05EA, NONE, NONE, NONE, NONE, NONE ! }; public ISO_8859_8() { super("ISO-8859-8", new String[] { ! "ISO8859_8", ! "8859_8", ! "ibm-916_P100-1995", ! "ibm-916", ! "iso_8859_8", ! "iso8859_8", ! "iso-8859-8", ! "hebrew", ! "csISOLatinHebrew", ! "iso-ir-138", ! "ISO_8859-8:1988", ! "ISO-8859-8-I", ! "ISO-8859-8-E", ! "cp916", ! "916", ! "windows-28598" }, lookup); } - - } // class ISO_8859_8 --- 47,108 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, NONE, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x203E, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, 0x2017, ! 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, ! 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, ! 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, ! 0x05E8, 0x05E9, 0x05EA, NONE, NONE, NONE, NONE, NONE ! }; public ISO_8859_8() { super("ISO-8859-8", new String[] { ! "ISO8859_8", ! "8859_8", ! "ibm-916_P100-1995", ! "ibm-916", ! "iso_8859_8", ! "iso8859_8", ! "iso-8859-8", ! "hebrew", ! "csISOLatinHebrew", ! "iso-ir-138", ! "ISO_8859-8:1988", ! "ISO-8859-8-I", ! "ISO-8859-8-E", ! "cp916", ! "916", ! "windows-28598" }, lookup); } + } // class ISO_8859_8 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java Tue Jan 11 19:46:05 2011 *************** public final class ISO_8859_9 extends By *** 47,109 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF ! }; public ISO_8859_9() { super("ISO-8859-9", new String[] { ! "ISO8859_9", ! "8859_9", ! "ibm-920_P100-1995", ! "ibm-920", ! "iso8859_9", ! "iso-8859-9", ! "iso_8859_9", ! "latin5", ! "csISOLatin5", ! "iso-ir-148", ! "ISO_8859-9:1989", ! "l5", ! "cp920", ! "920", ! "windows-28599", ! "ECMA-128" }, lookup); } - - } // class ISO_8859_9 --- 47,108 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, ! 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, ! 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, ! 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF ! }; public ISO_8859_9() { super("ISO-8859-9", new String[] { ! "ISO8859_9", ! "8859_9", ! "ibm-920_P100-1995", ! "ibm-920", ! "iso8859_9", ! "iso-8859-9", ! "iso_8859_9", ! "latin5", ! "csISOLatin5", ! "iso-ir-148", ! "ISO_8859-9:1989", ! "l5", ! "cp920", ! "920", ! "windows-28599", ! "ECMA-128" }, lookup); } + } // class ISO_8859_9 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/KOI_8.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/KOI_8.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/KOI_8.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/KOI_8.java Tue Jan 11 19:46:05 2011 *************** public final class KOI_8 extends ByteCha *** 47,53 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, --- 47,53 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, *************** public final class KOI_8 extends ByteCha *** 81,101 **** 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A ! }; public KOI_8() { super("KOI8-R", new String[] { ! "KOI8_R", ! "KOI8", ! "KOI-8", ! "KOI_8", ! "koi8-r", ! "koi8r", ! "koi-8-r", ! "koi" }, lookup); } - - } // class KOI_8 --- 81,100 ---- 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A ! }; public KOI_8() { super("KOI8-R", new String[] { ! "KOI8_R", ! "KOI8", ! "KOI-8", ! "KOI_8", ! "koi8-r", ! "koi8r", ! "koi-8-r", ! "koi" }, lookup); } + } // class KOI_8 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MS874.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MS874.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MS874.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MS874.java Tue Jan 11 19:46:05 2011 *************** public final class MS874 extends ByteCha *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, NONE, NONE, NONE, 0x2026, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, ! 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, ! 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, ! 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, ! 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, ! 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, ! 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, ! 0x0E38, 0x0E39, 0x0E3A, NONE, NONE, NONE, NONE, 0x0E3F, ! 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, ! 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, ! 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, ! 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, NONE, NONE, NONE, NONE }; public MS874() { ! super("MS874", new String[] {}, lookup); } } // class MS874 --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, NONE, NONE, NONE, 0x2026, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, ! 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, ! 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, ! 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, ! 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, ! 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, ! 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, ! 0x0E38, 0x0E39, 0x0E3A, NONE, NONE, NONE, NONE, 0x0E3F, ! 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, ! 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, ! 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, ! 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, NONE, NONE, NONE, NONE }; public MS874() { ! super("MS874", new String[] {}, lookup); } } // class MS874 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java Tue Jan 11 19:46:05 2011 *************** public final class MacCentralEurope exte *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1, ! 0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179, ! 0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3, ! 0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC, ! 0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x0123, 0x012E, ! 0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211, ! 0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145, ! 0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156, ! 0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1, ! 0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4, ! 0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, ! 0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7 ! }; public MacCentralEurope() { ! super("MacCentralEurope", new String[] {}, lookup); } } // class MacCentralEurope --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1, ! 0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179, ! 0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3, ! 0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC, ! 0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x0123, 0x012E, ! 0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211, ! 0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145, ! 0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156, ! 0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1, ! 0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4, ! 0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, ! 0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7 ! }; public MacCentralEurope() { ! super("MacCentralEurope", new String[] {}, lookup); } } // class MacCentralEurope diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacCroatian.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacCroatian.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacCroatian.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacCroatian.java Tue Jan 11 19:46:05 2011 *************** public final class MacCroatian extends B *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x0160, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x017D, 0x00D8, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x2206, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x0161, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x017E, 0x00F8, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0106, 0x00AB, ! 0x010C, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x0110, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0xF8FF, 0x00A9, 0x2044, 0x20AC, 0x2039, 0x203A, 0x00C6, 0x00BB, ! 0x2013, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x0107, 0x00C1, ! 0x010D, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0x0111, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, ! 0x00AF, 0x03C0, 0x00CB, 0x02DA, 0x00B8, 0x00CA, 0x00E6, 0x02C7 }; public MacCroatian() { ! super("MacCroatian", new String[] {}, lookup); } } // class MacCroatian --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x0160, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x017D, 0x00D8, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x2206, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x0161, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x017E, 0x00F8, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0106, 0x00AB, ! 0x010C, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x0110, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0xF8FF, 0x00A9, 0x2044, 0x20AC, 0x2039, 0x203A, 0x00C6, 0x00BB, ! 0x2013, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x0107, 0x00C1, ! 0x010D, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0x0111, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, ! 0x00AF, 0x03C0, 0x00CB, 0x02DA, 0x00B8, 0x00CA, 0x00E6, 0x02C7 }; public MacCroatian() { ! super("MacCroatian", new String[] {}, lookup); } } // class MacCroatian diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacCyrillic.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacCyrillic.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacCyrillic.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacCyrillic.java Tue Jan 11 19:46:05 2011 *************** public final class MacCyrillic extends B *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, ! 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, ! 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, ! 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, ! 0x2020, 0x00B0, 0x0490, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406, ! 0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x0491, 0x0408, ! 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A, ! 0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E, ! 0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F, ! 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, ! 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, ! 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, ! 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x20AC }; public MacCyrillic() { ! super("MacCyrillic", new String[] {}, lookup); } } // class MacCyrillic --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, ! 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, ! 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, ! 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, ! 0x2020, 0x00B0, 0x0490, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406, ! 0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x0491, 0x0408, ! 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A, ! 0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E, ! 0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F, ! 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, ! 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, ! 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, ! 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x20AC }; public MacCyrillic() { ! super("MacCyrillic", new String[] {}, lookup); } } // class MacCyrillic diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacDingbat.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacDingbat.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacDingbat.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacDingbat.java Tue Jan 11 19:46:05 2011 *************** public final class MacDingbat extends By *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x2701, 0x2702, 0x2703, 0x2704, 0x260E, 0x2706, 0x2707, ! 0x2708, 0x2709, 0x261B, 0x261E, 0x270C, 0x270D, 0x270E, 0x270F, ! 0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, ! 0x2718, 0x2719, 0x271A, 0x271B, 0x271C, 0x271D, 0x271E, 0x271F, ! 0x2720, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, ! 0x2605, 0x2729, 0x272A, 0x272B, 0x272C, 0x272D, 0x272E, 0x272F, ! 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, ! 0x2738, 0x2739, 0x273A, 0x273B, 0x273C, 0x273D, 0x273E, 0x273F, ! 0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, ! 0x2748, 0x2749, 0x274A, 0x274B, 0x25CF, 0x274D, 0x25A0, 0x274F, ! 0x2750, 0x2751, 0x2752, 0x25B2, 0x25BC, 0x25C6, 0x2756, 0x25D7, ! 0x2758, 0x2759, 0x275A, 0x275B, 0x275C, 0x275D, 0x275E, NONE, ! 0x2768, 0x2769, 0x276A, 0x276B, 0x276C, 0x276D, 0x276E, 0x276F, ! 0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, ! 0x2663, 0x2666, 0x2665, 0x2660, 0x2460, 0x2461, 0x2462, 0x2463, ! 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x2776, 0x2777, ! 0x2778, 0x2779, 0x277A, 0x277B, 0x277C, 0x277D, 0x277E, 0x277F, ! 0x2780, 0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, ! 0x2788, 0x2789, 0x278A, 0x278B, 0x278C, 0x278D, 0x278E, 0x278F, ! 0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2192, 0x2194, 0x2195, ! 0x2798, 0x2799, 0x279A, 0x279B, 0x279C, 0x279D, 0x279E, 0x279F, ! 0x27A0, 0x27A1, 0x27A2, 0x27A3, 0x27A4, 0x27A5, 0x27A6, 0x27A7, ! 0x27A8, 0x27A9, 0x27AA, 0x27AB, 0x27AC, 0x27AD, 0x27AE, 0x27AF, ! NONE, 0x27B1, 0x27B2, 0x27B3, 0x27B4, 0x27B5, 0x27B6, 0x27B7, ! 0x27B8, 0x27B9, 0x27BA, 0x27BB, 0x27BC, 0x27BD, 0x27BE, NONE }; public MacDingbat() { ! super("MacDingbat", new String[] {}, lookup); } } // class MacDingbat --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x2701, 0x2702, 0x2703, 0x2704, 0x260E, 0x2706, 0x2707, ! 0x2708, 0x2709, 0x261B, 0x261E, 0x270C, 0x270D, 0x270E, 0x270F, ! 0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, ! 0x2718, 0x2719, 0x271A, 0x271B, 0x271C, 0x271D, 0x271E, 0x271F, ! 0x2720, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, ! 0x2605, 0x2729, 0x272A, 0x272B, 0x272C, 0x272D, 0x272E, 0x272F, ! 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, ! 0x2738, 0x2739, 0x273A, 0x273B, 0x273C, 0x273D, 0x273E, 0x273F, ! 0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, ! 0x2748, 0x2749, 0x274A, 0x274B, 0x25CF, 0x274D, 0x25A0, 0x274F, ! 0x2750, 0x2751, 0x2752, 0x25B2, 0x25BC, 0x25C6, 0x2756, 0x25D7, ! 0x2758, 0x2759, 0x275A, 0x275B, 0x275C, 0x275D, 0x275E, NONE, ! 0x2768, 0x2769, 0x276A, 0x276B, 0x276C, 0x276D, 0x276E, 0x276F, ! 0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, ! 0x2663, 0x2666, 0x2665, 0x2660, 0x2460, 0x2461, 0x2462, 0x2463, ! 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x2776, 0x2777, ! 0x2778, 0x2779, 0x277A, 0x277B, 0x277C, 0x277D, 0x277E, 0x277F, ! 0x2780, 0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, ! 0x2788, 0x2789, 0x278A, 0x278B, 0x278C, 0x278D, 0x278E, 0x278F, ! 0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2192, 0x2194, 0x2195, ! 0x2798, 0x2799, 0x279A, 0x279B, 0x279C, 0x279D, 0x279E, 0x279F, ! 0x27A0, 0x27A1, 0x27A2, 0x27A3, 0x27A4, 0x27A5, 0x27A6, 0x27A7, ! 0x27A8, 0x27A9, 0x27AA, 0x27AB, 0x27AC, 0x27AD, 0x27AE, 0x27AF, ! NONE, 0x27B1, 0x27B2, 0x27B3, 0x27B4, 0x27B5, 0x27B6, 0x27B7, ! 0x27B8, 0x27B9, 0x27BA, 0x27BB, 0x27BC, 0x27BD, 0x27BE, NONE }; public MacDingbat() { ! super("MacDingbat", new String[] {}, lookup); } } // class MacDingbat diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacGreek.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacGreek.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacGreek.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacGreek.java Tue Jan 11 19:46:05 2011 *************** public final class MacGreek extends Byte *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00B9, 0x00B2, 0x00C9, 0x00B3, 0x00D6, 0x00DC, 0x0385, ! 0x00E0, 0x00E2, 0x00E4, 0x0384, 0x00A8, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00A3, 0x2122, 0x00EE, 0x00EF, 0x2022, 0x00BD, ! 0x2030, 0x00F4, 0x00F6, 0x00A6, 0x20AC, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x0393, 0x0394, 0x0398, 0x039B, 0x039E, 0x03A0, 0x00DF, ! 0x00AE, 0x00A9, 0x03A3, 0x03AA, 0x00A7, 0x2260, 0x00B0, 0x00B7, ! 0x0391, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x0392, 0x0395, 0x0396, ! 0x0397, 0x0399, 0x039A, 0x039C, 0x03A6, 0x03AB, 0x03A8, 0x03A9, ! 0x03AC, 0x039D, 0x00AC, 0x039F, 0x03A1, 0x2248, 0x03A4, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x03A5, 0x03A7, 0x0386, 0x0388, 0x0153, ! 0x2013, 0x2015, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x0389, ! 0x038A, 0x038C, 0x038E, 0x03AD, 0x03AE, 0x03AF, 0x03CC, 0x038F, ! 0x03CD, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3, ! 0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF, ! 0x03C0, 0x03CE, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2, ! 0x03C7, 0x03C5, 0x03B6, 0x03CA, 0x03CB, 0x0390, 0x03B0, 0x00AD }; public MacGreek() { ! super("MacGreek", new String[] {}, lookup); } } // class MacGreek --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00B9, 0x00B2, 0x00C9, 0x00B3, 0x00D6, 0x00DC, 0x0385, ! 0x00E0, 0x00E2, 0x00E4, 0x0384, 0x00A8, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00A3, 0x2122, 0x00EE, 0x00EF, 0x2022, 0x00BD, ! 0x2030, 0x00F4, 0x00F6, 0x00A6, 0x20AC, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x0393, 0x0394, 0x0398, 0x039B, 0x039E, 0x03A0, 0x00DF, ! 0x00AE, 0x00A9, 0x03A3, 0x03AA, 0x00A7, 0x2260, 0x00B0, 0x00B7, ! 0x0391, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x0392, 0x0395, 0x0396, ! 0x0397, 0x0399, 0x039A, 0x039C, 0x03A6, 0x03AB, 0x03A8, 0x03A9, ! 0x03AC, 0x039D, 0x00AC, 0x039F, 0x03A1, 0x2248, 0x03A4, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x03A5, 0x03A7, 0x0386, 0x0388, 0x0153, ! 0x2013, 0x2015, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x0389, ! 0x038A, 0x038C, 0x038E, 0x03AD, 0x03AE, 0x03AF, 0x03CC, 0x038F, ! 0x03CD, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3, ! 0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF, ! 0x03C0, 0x03CE, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2, ! 0x03C7, 0x03C5, 0x03B6, 0x03CA, 0x03CB, 0x0390, 0x03B0, 0x00AD }; public MacGreek() { ! super("MacGreek", new String[] {}, lookup); } } // class MacGreek diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacIceland.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacIceland.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacIceland.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacIceland.java Tue Jan 11 19:46:05 2011 *************** public final class MacIceland extends By *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x00DD, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x00FF, 0x0178, 0x2044, 0x20AC, 0x00D0, 0x00F0, 0x00DE, 0x00FE, ! 0x00FD, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, ! 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, ! 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; public MacIceland() { ! super("MacIceland", new String[] {}, lookup); } } // class MacIceland --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x00DD, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x00FF, 0x0178, 0x2044, 0x20AC, 0x00D0, 0x00F0, 0x00DE, 0x00FE, ! 0x00FD, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, ! 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, ! 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; public MacIceland() { ! super("MacIceland", new String[] {}, lookup); } } // class MacIceland diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacRoman.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacRoman.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacRoman.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacRoman.java Tue Jan 11 19:46:05 2011 *************** public final class MacRoman extends Byte *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, 0xFB01, 0xFB02, ! 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, ! 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, ! 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; public MacRoman() { ! super("MacRoman", new String[] {}, lookup); } } // class MacRoman --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, 0xFB01, 0xFB02, ! 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, ! 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, ! 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; public MacRoman() { ! super("MacRoman", new String[] {}, lookup); } } // class MacRoman diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacRomania.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacRomania.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacRomania.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacRomania.java Tue Jan 11 19:46:05 2011 *************** public final class MacRomania extends By *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x0102, 0x0218, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x0103, 0x0219, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, 0x021A, 0x021B, ! 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, ! 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, ! 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; public MacRomania() { ! super("MacRomania", new String[] {}, lookup); } } // class MacRomania --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x0102, 0x0218, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x0103, 0x0219, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, 0x021A, 0x021B, ! 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, ! 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, ! 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; public MacRomania() { ! super("MacRomania", new String[] {}, lookup); } } // class MacRomania diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacSymbol.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacSymbol.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacSymbol.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacSymbol.java Tue Jan 11 19:46:05 2011 *************** public final class MacSymbol extends Byt *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x2200, 0x0023, 0x2203, 0x0025, 0x0026, 0x220D, ! 0x0028, 0x0029, 0x2217, 0x002B, 0x002C, 0x2212, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x2245, 0x0391, 0x0392, 0x03A7, 0x0394, 0x0395, 0x03A6, 0x0393, ! 0x0397, 0x0399, 0x03D1, 0x039A, 0x039B, 0x039C, 0x039D, 0x039F, ! 0x03A0, 0x0398, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03C2, 0x03A9, ! 0x039E, 0x03A8, 0x0396, 0x005B, 0x2234, 0x005D, 0x22A5, 0x005F, ! 0xF8E5, 0x03B1, 0x03B2, 0x03C7, 0x03B4, 0x03B5, 0x03C6, 0x03B3, ! 0x03B7, 0x03B9, 0x03D5, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF, ! 0x03C0, 0x03B8, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03D6, 0x03C9, ! 0x03BE, 0x03C8, 0x03B6, 0x007B, 0x007C, 0x007D, 0x223C, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! 0x20AC, 0x03D2, 0x2032, 0x2264, 0x2044, 0x221E, 0x0192, 0x2663, ! 0x2666, 0x2665, 0x2660, 0x2194, 0x2190, 0x2191, 0x2192, 0x2193, ! 0x00B0, 0x00B1, 0x2033, 0x2265, 0x00D7, 0x221D, 0x2202, 0x2022, ! 0x00F7, 0x2260, 0x2261, 0x2248, 0x2026, 0xF8E6, 0x23AF, 0x21B5, ! 0x2135, 0x2111, 0x211C, 0x2118, 0x2297, 0x2295, 0x2205, 0x2229, ! 0x222A, 0x2283, 0x2287, 0x2284, 0x2282, 0x2286, 0x2208, 0x2209, ! 0x2220, 0x2207, 0x00AE, 0x00A9, 0x2122, 0x220F, 0x221A, 0x22C5, ! 0x00AC, 0x2227, 0x2228, 0x21D4, 0x21D0, 0x21D1, 0x21D2, 0x21D3, ! 0x22C4, 0x3008, NONE, NONE, NONE, 0x2211, 0x239B, 0x239C, ! 0x239D, 0x23A1, 0x23A2, 0x23A3, 0x23A7, 0x23A8, 0x23A9, 0x23AA, ! 0xF8FF, 0x3009, 0x222B, 0x2320, 0x23AE, 0x2321, 0x239E, 0x239F, ! 0x23A0, 0x23A4, 0x23A5, 0x23A6, 0x23AB, 0x23AC, 0x23AD, NONE }; public MacSymbol() { ! super("MacSymbol", new String[] {}, lookup); } } // class MacSymbol --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x2200, 0x0023, 0x2203, 0x0025, 0x0026, 0x220D, ! 0x0028, 0x0029, 0x2217, 0x002B, 0x002C, 0x2212, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x2245, 0x0391, 0x0392, 0x03A7, 0x0394, 0x0395, 0x03A6, 0x0393, ! 0x0397, 0x0399, 0x03D1, 0x039A, 0x039B, 0x039C, 0x039D, 0x039F, ! 0x03A0, 0x0398, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03C2, 0x03A9, ! 0x039E, 0x03A8, 0x0396, 0x005B, 0x2234, 0x005D, 0x22A5, 0x005F, ! 0xF8E5, 0x03B1, 0x03B2, 0x03C7, 0x03B4, 0x03B5, 0x03C6, 0x03B3, ! 0x03B7, 0x03B9, 0x03D5, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF, ! 0x03C0, 0x03B8, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03D6, 0x03C9, ! 0x03BE, 0x03C8, 0x03B6, 0x007B, 0x007C, 0x007D, 0x223C, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, ! 0x20AC, 0x03D2, 0x2032, 0x2264, 0x2044, 0x221E, 0x0192, 0x2663, ! 0x2666, 0x2665, 0x2660, 0x2194, 0x2190, 0x2191, 0x2192, 0x2193, ! 0x00B0, 0x00B1, 0x2033, 0x2265, 0x00D7, 0x221D, 0x2202, 0x2022, ! 0x00F7, 0x2260, 0x2261, 0x2248, 0x2026, 0xF8E6, 0x23AF, 0x21B5, ! 0x2135, 0x2111, 0x211C, 0x2118, 0x2297, 0x2295, 0x2205, 0x2229, ! 0x222A, 0x2283, 0x2287, 0x2284, 0x2282, 0x2286, 0x2208, 0x2209, ! 0x2220, 0x2207, 0x00AE, 0x00A9, 0x2122, 0x220F, 0x221A, 0x22C5, ! 0x00AC, 0x2227, 0x2228, 0x21D4, 0x21D0, 0x21D1, 0x21D2, 0x21D3, ! 0x22C4, 0x3008, NONE, NONE, NONE, 0x2211, 0x239B, 0x239C, ! 0x239D, 0x23A1, 0x23A2, 0x23A3, 0x23A7, 0x23A8, 0x23A9, 0x23AA, ! 0xF8FF, 0x3009, 0x222B, 0x2320, 0x23AE, 0x2321, 0x239E, 0x239F, ! 0x23A0, 0x23A4, 0x23A5, 0x23A6, 0x23AB, 0x23AC, 0x23AD, NONE }; public MacSymbol() { ! super("MacSymbol", new String[] {}, lookup); } } // class MacSymbol diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacThai.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacThai.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacThai.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacThai.java Tue Jan 11 19:46:05 2011 *************** public final class MacThai extends ByteC *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00AB, 0x00BB, 0x2026, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, 0x201C, 0x201D, NONE, ! NONE, 0x2022, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, 0x2018, 0x2019, NONE, ! 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, ! 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, ! 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, ! 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, ! 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, ! 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, ! 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, ! 0x0E38, 0x0E39, 0x0E3A, 0x2060, 0x200B, 0x2013, 0x2014, 0x0E3F, ! 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, ! 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x2122, 0x0E4F, ! 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, ! 0x0E58, 0x0E59, 0x00AE, 0x00A9, NONE, NONE, NONE, NONE }; public MacThai() { ! super("MacThai", new String[] {}, lookup); } } // class MacThai --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00AB, 0x00BB, 0x2026, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, 0x201C, 0x201D, NONE, ! NONE, 0x2022, NONE, NONE, NONE, NONE, NONE, NONE, ! NONE, NONE, NONE, NONE, NONE, 0x2018, 0x2019, NONE, ! 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, ! 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, ! 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, ! 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, ! 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, ! 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, ! 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, ! 0x0E38, 0x0E39, 0x0E3A, 0x2060, 0x200B, 0x2013, 0x2014, 0x0E3F, ! 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, ! 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x2122, 0x0E4F, ! 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, ! 0x0E58, 0x0E59, 0x00AE, 0x00A9, NONE, NONE, NONE, NONE }; public MacThai() { ! super("MacThai", new String[] {}, lookup); } } // class MacThai diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacTurkish.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacTurkish.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/MacTurkish.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/MacTurkish.java Tue Jan 11 19:46:05 2011 *************** public final class MacTurkish extends By *** 43,87 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x00FF, 0x0178, 0x011E, 0x011F, 0x0130, 0x0131, 0x015E, 0x015F, ! 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, ! 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0xF8A0, 0x02C6, 0x02DC, ! 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; public MacTurkish() { ! super("MacTurkish", new String[] {}, lookup); } } // class MacTurkish --- 43,87 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, NONE, ! 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, ! 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, ! 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, ! 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, ! 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, ! 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, ! 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, ! 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, ! 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, ! 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, ! 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, ! 0x00FF, 0x0178, 0x011E, 0x011F, 0x0130, 0x0131, 0x015E, 0x015F, ! 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, ! 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, ! 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0xF8A0, 0x02C6, 0x02DC, ! 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; public MacTurkish() { ! super("MacTurkish", new String[] {}, lookup); } } // class MacTurkish diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Provider.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Provider.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Provider.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Provider.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Provider.java -- Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Provider.java -- Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class Provider extends Char *** 65,71 **** /** * Map from charset name to charset canonical name. The strings * are all lower-case to allow case-insensitive retrieval of ! * Charset instances. */ private final HashMap canonicalNames; --- 65,71 ---- /** * Map from charset name to charset canonical name. The strings * are all lower-case to allow case-insensitive retrieval of ! * Charset instances. */ private final HashMap canonicalNames; *************** public final class Provider extends Char *** 214,222 **** * Returns a Charset instance by converting the given * name to lower-case, looking up the canonical charset * name and finally looking up the Charset with that name. ! * *

          The lookup is therefore case-insensitive.

          ! * * @returns The Charset having charsetName * as its alias or null if no such Charset exist. */ --- 214,222 ---- * Returns a Charset instance by converting the given * name to lower-case, looking up the canonical charset * name and finally looking up the Charset with that name. ! * *

          The lookup is therefore case-insensitive.

          ! * * @returns The Charset having charsetName * as its alias or null if no such Charset exist. */ *************** public final class Provider extends Char *** 234,253 **** /** * Puts a Charset under its canonical name into the 'charsets' map. * Then puts a mapping from all its alias names to the canonical name. ! * *

          All names are converted to lower-case

          . ! * * @param cs */ private void addCharset (Charset cs) { String canonicalName = cs.name().toLowerCase(); charsets.put (canonicalName, cs); ! /* Adds a mapping between the canonical name * itself making a lookup using that name * no special case. ! */ canonicalNames.put(canonicalName, canonicalName); for (Iterator i = cs.aliases ().iterator (); i.hasNext (); ) --- 234,253 ---- /** * Puts a Charset under its canonical name into the 'charsets' map. * Then puts a mapping from all its alias names to the canonical name. ! * *

          All names are converted to lower-case

          . ! * * @param cs */ private void addCharset (Charset cs) { String canonicalName = cs.name().toLowerCase(); charsets.put (canonicalName, cs); ! /* Adds a mapping between the canonical name * itself making a lookup using that name * no special case. ! */ canonicalNames.put(canonicalName, canonicalName); for (Iterator i = cs.aliases ().iterator (); i.hasNext (); ) *************** public final class Provider extends Char *** 259,271 **** // The default provider is safe to instantiate. if (singleton == null) singleton = AccessController.doPrivileged ! (new PrivilegedAction() ! { ! public Provider run() ! { ! return new Provider(); ! } ! }); return singleton; } } --- 259,271 ---- // The default provider is safe to instantiate. if (singleton == null) singleton = AccessController.doPrivileged ! (new PrivilegedAction() ! { ! public Provider run() ! { ! return new Provider(); ! } ! }); return singleton; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/US_ASCII.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/US_ASCII.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/US_ASCII.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/US_ASCII.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* US_ASCII.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* US_ASCII.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class US_ASCII extends Charset *** 58,64 **** * http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html */ super ("US-ASCII", new String[] { ! /* These names are provided by * http://www.iana.org/assignments/character-sets */ "iso-ir-6", --- 58,64 ---- * http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html */ super ("US-ASCII", new String[] { ! /* These names are provided by * http://www.iana.org/assignments/character-sets */ "iso-ir-6", *************** final class US_ASCII extends Charset *** 108,114 **** return (char)b; } }; ! // Package-private to avoid a trampoline constructor. Decoder (Charset cs) { --- 108,114 ---- return (char)b; } }; ! // Package-private to avoid a trampoline constructor. Decoder (Charset cs) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UTF_16.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UTF_16.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16BE.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16BE.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16BE.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16BE.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UTF_16BE.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UTF_16BE.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16Decoder.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16Decoder.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16Decoder.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16Decoder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UTF_16Decoder.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UTF_16Decoder.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class UTF_16Decoder extends Charse *** 117,131 **** } } ! // FIXME: Change so you only do a single comparison here. char c = (byteOrder == BIG_ENDIAN ! ? (char) (((b1 & 0xFF) << 8) | (b2 & 0xFF)) ! : (char) (((b2 & 0xFF) << 8) | (b1 & 0xFF))); if (0xD800 <= c && c <= 0xDFFF) { // c is a surrogate ! // make sure c is a high surrogate if (c > 0xDBFF) return CoderResult.malformedForLength (2); --- 117,131 ---- } } ! // FIXME: Change so you only do a single comparison here. char c = (byteOrder == BIG_ENDIAN ! ? (char) (((b1 & 0xFF) << 8) | (b2 & 0xFF)) ! : (char) (((b2 & 0xFF) << 8) | (b1 & 0xFF))); if (0xD800 <= c && c <= 0xDFFF) { // c is a surrogate ! // make sure c is a high surrogate if (c > 0xDBFF) return CoderResult.malformedForLength (2); *************** final class UTF_16Decoder extends Charse *** 134,141 **** byte b3 = in.get (); byte b4 = in.get (); char d = (byteOrder == BIG_ENDIAN ! ? (char) (((b3 & 0xFF) << 8) | (b4 & 0xFF)) ! : (char) (((b4 & 0xFF) << 8) | (b3 & 0xFF))); // make sure d is a low surrogate if (d < 0xDC00 || d > 0xDFFF) return CoderResult.malformedForLength (2); --- 134,141 ---- byte b3 = in.get (); byte b4 = in.get (); char d = (byteOrder == BIG_ENDIAN ! ? (char) (((b3 & 0xFF) << 8) | (b4 & 0xFF)) ! : (char) (((b4 & 0xFF) << 8) | (b3 & 0xFF))); // make sure d is a low surrogate if (d < 0xDC00 || d > 0xDFFF) return CoderResult.malformedForLength (2); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16Encoder.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16Encoder.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16Encoder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16Encoder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UTF_16Encoder.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UTF_16Encoder.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class UTF_16Encoder extends Charse *** 68,75 **** byteOrder == BIG_ENDIAN ? new byte[] { (byte) 0xFF, (byte) 0xFD } : new byte[] { (byte) 0xFD, (byte) 0xFF }); ! this.byteOrder = (byteOrder == BIG_ENDIAN) ? ! ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN; this.useByteOrderMark = useByteOrderMark; this.needsByteOrderMark = useByteOrderMark; } --- 68,75 ---- byteOrder == BIG_ENDIAN ? new byte[] { (byte) 0xFF, (byte) 0xFD } : new byte[] { (byte) 0xFD, (byte) 0xFF }); ! this.byteOrder = (byteOrder == BIG_ENDIAN) ? ! ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN; this.useByteOrderMark = useByteOrderMark; this.needsByteOrderMark = useByteOrderMark; } *************** final class UTF_16Encoder extends Charse *** 84,94 **** if (needsByteOrderMark) { if (out.remaining () < 2) ! { ! out.order(originalBO); ! return CoderResult.OVERFLOW; ! } ! out.putChar (BYTE_ORDER_MARK); needsByteOrderMark = false; } --- 84,94 ---- if (needsByteOrderMark) { if (out.remaining () < 2) ! { ! out.order(originalBO); ! return CoderResult.OVERFLOW; ! } ! out.putChar (BYTE_ORDER_MARK); needsByteOrderMark = false; } *************** final class UTF_16Encoder extends Charse *** 118,132 **** else { if (out.remaining () < 2) ! { ! out.order(originalBO); ! return CoderResult.OVERFLOW; ! } out.putChar (c); inPos++; } } ! out.order(originalBO); return CoderResult.UNDERFLOW; } finally --- 118,132 ---- else { if (out.remaining () < 2) ! { ! out.order(originalBO); ! return CoderResult.OVERFLOW; ! } out.putChar (c); inPos++; } } ! out.order(originalBO); return CoderResult.UNDERFLOW; } finally diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16LE.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16LE.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_16LE.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_16LE.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UTF_16LE.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UTF_16LE.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class UTF_16LE extends Charset *** 53,59 **** { super ("UTF-16LE", new String[] { // witnessed by the internet ! "UTF16LE", /* These names are provided by * http://oss.software.ibm.com/cgi-bin/icu/convexp?s=ALL */ --- 53,59 ---- { super ("UTF-16LE", new String[] { // witnessed by the internet ! "UTF16LE", /* These names are provided by * http://oss.software.ibm.com/cgi-bin/icu/convexp?s=ALL */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_8.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_8.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UTF_8.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UTF_8.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UTF_8.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UTF_8.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.nio.charset.CoderResult; *** 46,57 **** /** * UTF-8 charset. ! * *

          UTF-8 references: *

          --- 46,57 ---- /** * UTF-8 charset. ! * *

          UTF-8 references: *

          *************** final class UTF_8 extends Charset *** 101,107 **** protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out) { // TODO: Optimize this in the case in.hasArray() / out.hasArray() ! int inPos = in.position(); try { while (in.hasRemaining ()) --- 101,107 ---- protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out) { // TODO: Optimize this in the case in.hasArray() / out.hasArray() ! int inPos = in.position(); try { while (in.hasRemaining ()) *************** final class UTF_8 extends Charset *** 117,123 **** return CoderResult.OVERFLOW; out.put ((char) b1); inPos++; ! break; case 0xC: case 0xD: byte b2; --- 117,123 ---- return CoderResult.OVERFLOW; out.put ((char) b1); inPos++; ! break; case 0xC: case 0xD: byte b2; *************** final class UTF_8 extends Charset *** 159,165 **** byte b4; if (in.remaining () < 3) return CoderResult.UNDERFLOW; ! if((b1&0x0F) > 4) return CoderResult.malformedForLength (4); if (out.remaining () < 2) return CoderResult.OVERFLOW; --- 159,165 ---- byte b4; if (in.remaining () < 3) return CoderResult.UNDERFLOW; ! if((b1&0x0F) > 4) return CoderResult.malformedForLength (4); if (out.remaining () < 2) return CoderResult.OVERFLOW; *************** final class UTF_8 extends Charset *** 169,180 **** return CoderResult.malformedForLength (2); if (!isContinuation (b4 = in.get ())) return CoderResult.malformedForLength (1); ! int n = (((b1 & 0x3) << 18) ! | ((b2 & 0x3F) << 12) ! | ((b3 & 0x3F) << 6) ! | (b4 & 0x3F)) - 0x10000; ! char c1 = (char)(0xD800 | (n & 0xFFC00)>>10); ! char c2 = (char)(0xDC00 | (n & 0x003FF)); out.put (c1); out.put (c2); inPos += 4; --- 169,180 ---- return CoderResult.malformedForLength (2); if (!isContinuation (b4 = in.get ())) return CoderResult.malformedForLength (1); ! int n = (((b1 & 0x3) << 18) ! | ((b2 & 0x3F) << 12) ! | ((b3 & 0x3F) << 6) ! | (b4 & 0x3F)) - 0x10000; ! char c1 = (char)(0xD800 | (n & 0xFFC00)>>10); ! char c2 = (char)(0xDC00 | (n & 0x003FF)); out.put (c1); out.put (c2); inPos += 4; *************** final class UTF_8 extends Charset *** 213,219 **** // Most Latin-script languages take about 1.1 bytes. Greek, Russian, // Arabic and Hebrew take about 1.7 bytes, and most others (including // Japanese, Chinese, Korean and Hindi) take about 3 bytes. ! // We assume we will be dealing with latin scripts, and use 1.1 // for averageBytesPerChar. super (cs, 1.1f, 4.0f); } --- 213,219 ---- // Most Latin-script languages take about 1.1 bytes. Greek, Russian, // Arabic and Hebrew take about 1.7 bytes, and most others (including // Japanese, Chinese, Korean and Hindi) take about 3 bytes. ! // We assume we will be dealing with latin scripts, and use 1.1 // for averageBytesPerChar. super (cs, 1.1f, 4.0f); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UnicodeLittle.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UnicodeLittle.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/UnicodeLittle.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/UnicodeLittle.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnicodeLittle.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnicodeLittle.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.nio.charset.CharsetEncoder; *** 45,51 **** /** * UTF-16 little endian with a byte-order mark * Included for java.io completeness. ! * ("UTF-16" is equal to UnicodeBig, and * UTF-16BE/LE do not have a BOM */ final class UnicodeLittle extends Charset --- 45,51 ---- /** * UTF-16 little endian with a byte-order mark * Included for java.io completeness. ! * ("UTF-16" is equal to UnicodeBig, and * UTF-16BE/LE do not have a BOM */ final class UnicodeLittle extends Charset diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1250.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1250.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1250.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1250.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package gnu.java.nio.charset; /** ! * Encoding table for Windows-1250-Latin-1, * aka cp1250 or Windows-1250 or whatever. */ public final class Windows1250 extends ByteCharset --- 39,45 ---- package gnu.java.nio.charset; /** ! * Encoding table for Windows-1250-Latin-1, * aka cp1250 or Windows-1250 or whatever. */ public final class Windows1250 extends ByteCharset *************** public final class Windows1250 extends B *** 48,102 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, 0xFFFD, 0x201A, 0xFFFD, 0x201E, 0x2026, 0x2020, 0x2021, ! 0xFFFD, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, ! 0xFFFD, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0xFFFD, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, ! 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, ! 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, ! 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, ! 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, ! 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, ! 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, ! 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, ! 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, ! 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, ! 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 }; public Windows1250() { super("windows-1250", new String[] { ! "Windows1250", ! "ibm-5346_P100-1998", ! "ibm-5346", ! "cp1250", ! "cp-1250", ! "cp_1250", ! "windows1250", ! "windows_1250" }, lookup); } - - } // class Windows1250 --- 48,101 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, 0xFFFD, 0x201A, 0xFFFD, 0x201E, 0x2026, 0x2020, 0x2021, ! 0xFFFD, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, ! 0xFFFD, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0xFFFD, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, ! 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, ! 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, ! 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, ! 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, ! 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, ! 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, ! 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, ! 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, ! 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, ! 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 }; public Windows1250() { super("windows-1250", new String[] { ! "Windows1250", ! "ibm-5346_P100-1998", ! "ibm-5346", ! "cp1250", ! "cp-1250", ! "cp_1250", ! "windows1250", ! "windows_1250" }, lookup); } + } // class Windows1250 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1251.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1251.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1251.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1251.java Tue Jan 11 19:46:05 2011 *************** public final class Windows1251 extends B *** 48,100 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, ! 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, ! 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, ! 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, ! 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, ! 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, ! 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, ! 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, ! 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, ! 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, ! 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, ! 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, ! 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, ! 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F }; public Windows1251() { super("windows-1251", new String[] { ! "Windows1251", ! "cp1251", ! "cp-1251", ! "cp_1251", ! "windows1251", ! "windows_1251" }, lookup); } - - } // class Windows1251 --- 48,99 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, ! 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, ! 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, ! 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, ! 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, ! 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, ! 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, ! 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, ! 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, ! 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, ! 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, ! 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, ! 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, ! 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F }; public Windows1251() { super("windows-1251", new String[] { ! "Windows1251", ! "cp1251", ! "cp-1251", ! "cp_1251", ! "windows1251", ! "windows_1251" }, lookup); } + } // class Windows1251 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1252.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1252.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1252.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1252.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package gnu.java.nio.charset; /** ! * Encoding table for Windows-1252-Latin-1, * aka cp1252 or Windows-1252 or whatever. */ public final class Windows1252 extends ByteCharset --- 39,45 ---- package gnu.java.nio.charset; /** ! * Encoding table for Windows-1252-Latin-1, * aka cp1252 or Windows-1252 or whatever. */ public final class Windows1252 extends ByteCharset *************** public final class Windows1252 extends B *** 48,99 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = ! { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, NONE, 0x017D, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, NONE, 0x017E, 0x0178, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF }; public Windows1252() { super("windows-1252", new String[] { ! "Windows1252", ! "ibm-5348_P100-1997", ! "ibm-5348", ! "windows-1252", ! "cp1252", ! "cp-1252" }, lookup); } - - } // class Windows1252 --- 48,98 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = ! { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, NONE, 0x017D, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, NONE, 0x017E, 0x0178, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF }; public Windows1252() { super("windows-1252", new String[] { ! "Windows1252", ! "ibm-5348_P100-1997", ! "ibm-5348", ! "windows-1252", ! "cp1252", ! "cp-1252" }, lookup); } + } // class Windows1252 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1253.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1253.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1253.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1253.java Tue Jan 11 19:46:05 2011 *************** public final class Windows1253 extends B *** 48,100 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! NONE, 0x2030, NONE, 0x2039, NONE, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, 0x2122, NONE, 0x203A, NONE, NONE, NONE, NONE, ! 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, NONE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, ! 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, ! 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, ! 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, ! 0x03A0, 0x03A1, NONE, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, ! 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, ! 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, ! 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, ! 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, ! 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, NONE }; public Windows1253() { super("windows-1253", new String[] { ! "Windows1253", ! "cp1253", ! "cp-1253", ! "cp_1253", ! "windows1253", ! "windows_1253" }, lookup); } - - } // class Windows1253 --- 48,99 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! NONE, 0x2030, NONE, 0x2039, NONE, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, 0x2122, NONE, 0x203A, NONE, NONE, NONE, NONE, ! 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, NONE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, ! 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, ! 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, ! 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, ! 0x03A0, 0x03A1, NONE, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, ! 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, ! 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, ! 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, ! 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, ! 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, NONE }; public Windows1253() { super("windows-1253", new String[] { ! "Windows1253", ! "cp1253", ! "cp-1253", ! "cp_1253", ! "windows1253", ! "windows_1253" }, lookup); } + } // class Windows1253 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1254.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1254.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1254.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1254.java Tue Jan 11 19:46:05 2011 *************** public final class Windows1254 extends B *** 48,100 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, NONE, NONE, 0x0178, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, ! 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF }; public Windows1254() { super("windows-1254", new String[] { ! "Windows1254", ! "cp1254", ! "cp-1254", ! "cp_1254", ! "windows1254", ! "windows_1254" }, lookup); } - - } // class Windows1254 --- 48,99 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, NONE, NONE, 0x0178, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, ! 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, ! 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, ! 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF }; public Windows1254() { super("windows-1254", new String[] { ! "Windows1254", ! "cp1254", ! "cp-1254", ! "cp_1254", ! "windows1254", ! "windows_1254" }, lookup); } + } // class Windows1254 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1255.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1255.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1255.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1255.java Tue Jan 11 19:46:05 2011 *************** public final class Windows1255 extends B *** 48,100 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, 0xFFFD, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, 0xFFFD, 0x2039, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ! 0xFFFD, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x02DC, 0x2122, 0xFFFD, 0x203A, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7, ! 0x05B8, 0x05B9, 0xFFFD, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF, ! 0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3, ! 0x05F4, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ! 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, ! 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, ! 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, ! 0x05E8, 0x05E9, 0x05EA, 0xFFFD, 0xFFFD, 0x200E, 0x200F, 0xFFFD }; public Windows1255() { super("windows-1255", new String[] { ! "Windows1255", ! "cp1255", ! "cp-1255", ! "cp_1255", ! "windows1255", ! "windows_1255" }, lookup); } - - } // class Windows1255 --- 48,99 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, 0xFFFD, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, 0xFFFD, 0x2039, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ! 0xFFFD, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x02DC, 0x2122, 0xFFFD, 0x203A, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7, ! 0x05B8, 0x05B9, 0xFFFD, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF, ! 0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3, ! 0x05F4, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, ! 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, ! 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, ! 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, ! 0x05E8, 0x05E9, 0x05EA, 0xFFFD, 0xFFFD, 0x200E, 0x200F, 0xFFFD }; public Windows1255() { super("windows-1255", new String[] { ! "Windows1255", ! "cp1255", ! "cp-1255", ! "cp_1255", ! "windows1255", ! "windows_1255" }, lookup); } + } // class Windows1255 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1256.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1256.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1256.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1256.java Tue Jan 11 19:46:05 2011 *************** public final class Windows1256 extends B *** 48,100 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, ! 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA, ! 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F, ! 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, ! 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, ! 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7, ! 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643, ! 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF, ! 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7, ! 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2 }; public Windows1256() { super("windows-1256", new String[] { ! "Windows1256", ! "cp1256", ! "cp-1256", ! "cp_1256", ! "windows1256", ! "windows_1256" }, lookup); } - - } // class Windows1256 --- 48,99 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, ! 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA, ! 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F, ! 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, ! 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, ! 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7, ! 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643, ! 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF, ! 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7, ! 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2 }; public Windows1256() { super("windows-1256", new String[] { ! "Windows1256", ! "cp1256", ! "cp-1256", ! "cp_1256", ! "windows1256", ! "windows_1256" }, lookup); } + } // class Windows1256 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1257.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1257.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1257.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1257.java Tue Jan 11 19:46:05 2011 *************** public final class Windows1257 extends B *** 48,100 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, NONE, 0x201E, 0x2026, 0x2020, 0x2021, ! NONE, 0x2030, NONE, 0x2039, NONE, 0x00A8, 0x02C7, 0x00B8, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, 0x2122, NONE, 0x203A, NONE, 0x00AF, 0x02DB, NONE, ! 0x00A0, NONE, 0x00A2, 0x00A3, 0x00A4, NONE, 0x00A6, 0x00A7, ! 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, ! 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, ! 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, ! 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, ! 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, ! 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, ! 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, ! 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, ! 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9 }; public Windows1257() { super("windows-1257", new String[] { ! "Windows1257", ! "cp1257", ! "cp-1257", ! "cp_1257", ! "windows1257", ! "windows_1257" }, lookup); } - - } // class Windows1257 --- 48,99 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, NONE, 0x201E, 0x2026, 0x2020, 0x2021, ! NONE, 0x2030, NONE, 0x2039, NONE, 0x00A8, 0x02C7, 0x00B8, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! NONE, 0x2122, NONE, 0x203A, NONE, 0x00AF, 0x02DB, NONE, ! 0x00A0, NONE, 0x00A2, 0x00A3, 0x00A4, NONE, 0x00A6, 0x00A7, ! 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, ! 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, ! 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, ! 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, ! 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, ! 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, ! 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, ! 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, ! 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9 }; public Windows1257() { super("windows-1257", new String[] { ! "Windows1257", ! "cp1257", ! "cp-1257", ! "cp_1257", ! "windows1257", ! "windows_1257" }, lookup); } + } // class Windows1257 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1258.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1258.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/Windows1258.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/Windows1258.java Tue Jan 11 19:46:05 2011 *************** public final class Windows1258 extends B *** 48,100 **** /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, NONE, 0x2039, 0x0152, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x02DC, 0x2122, NONE, 0x203A, 0x0153, NONE, NONE, 0x0178, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF, ! 0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF, ! 0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7, ! 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF }; public Windows1258() { super("windows-1258", new String[] { ! "Windows1258", ! "cp1258", ! "cp-1258", ! "cp_1258", ! "windows1258", ! "windows_1258" }, lookup); } - - } // class Windows1258 --- 48,99 ---- /** * This is the lookup table for this encoding */ ! private static final char[] lookup = { ! 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, ! 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, ! 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, ! 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, ! 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, ! 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, ! 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, ! 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, ! 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, ! 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, ! 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, ! 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, ! 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, ! 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, ! 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, ! 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, ! 0x20AC, NONE, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, ! 0x02C6, 0x2030, NONE, 0x2039, 0x0152, NONE, NONE, NONE, ! NONE, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, ! 0x02DC, 0x2122, NONE, 0x203A, 0x0153, NONE, NONE, 0x0178, ! 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, ! 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, ! 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, ! 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, ! 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7, ! 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF, ! 0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7, ! 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF, ! 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7, ! 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF, ! 0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7, ! 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF }; public Windows1258() { super("windows-1258", new String[] { ! "Windows1258", ! "cp1258", ! "cp-1258", ! "cp_1258", ! "windows1258", ! "windows_1258" }, lookup); } + } // class Windows1258 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/iconv/IconvCharset.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/iconv/IconvCharset.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/iconv/IconvCharset.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/iconv/IconvCharset.java Tue Jan 11 19:46:05 2011 *************** public final class IconvCharset extends *** 63,73 **** { try { ! return new IconvDecoder(this, info); } catch (IllegalArgumentException e) { ! return null; } } --- 63,73 ---- { try { ! return new IconvDecoder(this, info); } catch (IllegalArgumentException e) { ! return null; } } *************** public final class IconvCharset extends *** 75,85 **** { try { ! return new IconvEncoder(this, info); } catch (IllegalArgumentException e) { ! return null; } } } --- 75,85 ---- { try { ! return new IconvEncoder(this, info); } catch (IllegalArgumentException e) { ! return null; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/iconv/IconvDecoder.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/iconv/IconvDecoder.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/iconv/IconvDecoder.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/iconv/IconvDecoder.java Tue Jan 11 19:46:05 2011 *************** final class IconvDecoder extends Charset *** 78,97 **** inArr = in.array(); else { ! inArr = new byte[remIn]; ! in.get(inArr); } if (out.hasArray()) { ! ret = decode(inArr, out.array(), inPos, remIn, outPos, remOut); ! out.position(outPos + (remOut - outremaining)); } else { ! char[] outArr = new char[remOut]; ! ret = decode(inArr, outArr, inPos, remIn, outPos, remOut); ! out.put(outArr, 0, (remOut - outremaining)); } in.position(inPos + (remIn - inremaining)); --- 78,97 ---- inArr = in.array(); else { ! inArr = new byte[remIn]; ! in.get(inArr); } if (out.hasArray()) { ! ret = decode(inArr, out.array(), inPos, remIn, outPos, remOut); ! out.position(outPos + (remOut - outremaining)); } else { ! char[] outArr = new char[remOut]; ! ret = decode(inArr, outArr, inPos, remIn, outPos, remOut); ! out.put(outArr, 0, (remOut - outremaining)); } in.position(inPos + (remIn - inremaining)); *************** final class IconvDecoder extends Charset *** 108,112 **** closeIconv(); } } - - --- 108,110 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/iconv/IconvEncoder.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/iconv/IconvEncoder.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/iconv/IconvEncoder.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/iconv/IconvEncoder.java Tue Jan 11 19:46:05 2011 *************** final class IconvEncoder extends Charset *** 78,97 **** inArr = in.array(); else { ! inArr = new char[remIn]; ! in.get(inArr); } if (out.hasArray()) { ! ret = encode(inArr, out.array(), inPos, remIn, outPos, remOut); ! out.position(outPos + (remOut - outremaining)); } else { ! byte[] outArr = new byte[remOut]; ! ret = encode(inArr, outArr, inPos, remIn, outPos, remOut); ! out.put(outArr, 0, (remOut - outremaining)); } in.position(inPos + (remIn - inremaining)); --- 78,97 ---- inArr = in.array(); else { ! inArr = new char[remIn]; ! in.get(inArr); } if (out.hasArray()) { ! ret = encode(inArr, out.array(), inPos, remIn, outPos, remOut); ! out.position(outPos + (remOut - outremaining)); } else { ! byte[] outArr = new byte[remOut]; ! ret = encode(inArr, outArr, inPos, remIn, outPos, remOut); ! out.put(outArr, 0, (remOut - outremaining)); } in.position(inPos + (remIn - inremaining)); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/iconv/IconvProvider.java gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/iconv/IconvProvider.java *** gcc-4.5.2/libjava/classpath/gnu/java/nio/charset/iconv/IconvProvider.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/nio/charset/iconv/IconvProvider.java Tue Jan 11 19:46:05 2011 *************** public final class IconvProvider extends *** 72,84 **** Vector charsets = new Vector(); for (int i = 0; i < names.size(); i++) { ! try ! { ! charsets.add(new IconvCharset((IconvMetaData) names.elementAt(i))); ! } ! catch (IllegalArgumentException e) ! { ! } } return charsets.iterator(); } --- 72,84 ---- Vector charsets = new Vector(); for (int i = 0; i < names.size(); i++) { ! try ! { ! charsets.add(new IconvCharset((IconvMetaData) names.elementAt(i))); ! } ! catch (IllegalArgumentException e) ! { ! } } return charsets.iterator(); } *************** public final class IconvProvider extends *** 87,103 **** { try { ! IconvMetaData info = IconvMetaData.get(charsetName); ! // Try anyway if the set isn't found. ! if (info == null) ! info = new IconvMetaData(charsetName, 2.0f, 2.0f, 2.0f, 2.0f, ! new String[] { }, charsetName); ! return new IconvCharset(info); } catch (IllegalArgumentException e) { ! return null; } } --- 87,103 ---- { try { ! IconvMetaData info = IconvMetaData.get(charsetName); ! // Try anyway if the set isn't found. ! if (info == null) ! info = new IconvMetaData(charsetName, 2.0f, 2.0f, 2.0f, 2.0f, ! new String[] { }, charsetName); ! return new IconvCharset(info); } catch (IllegalArgumentException e) { ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/RMIMarshalledObjectInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/RMIMarshalledObjectInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/RMIMarshalledObjectInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/RMIMarshalledObjectInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.IOException; *** 45,65 **** import java.io.ObjectInputStream; /** ! * This class is only for java.rmi.MarshalledObject to deserialize object from * objBytes and locBytes */ public class RMIMarshalledObjectInputStream extends RMIObjectInputStream { private ObjectInputStream locStream; ! public RMIMarshalledObjectInputStream(byte[] objBytes, byte[] locBytes) throws IOException { super(new ByteArrayInputStream(objBytes)); if(locBytes != null) locStream = new ObjectInputStream(new ByteArrayInputStream(locBytes)); } ! //This method overrides RMIObjectInputStream's protected Object getAnnotation() throws IOException, ClassNotFoundException { --- 45,65 ---- import java.io.ObjectInputStream; /** ! * This class is only for java.rmi.MarshalledObject to deserialize object from * objBytes and locBytes */ public class RMIMarshalledObjectInputStream extends RMIObjectInputStream { private ObjectInputStream locStream; ! public RMIMarshalledObjectInputStream(byte[] objBytes, byte[] locBytes) throws IOException { super(new ByteArrayInputStream(objBytes)); if(locBytes != null) locStream = new ObjectInputStream(new ByteArrayInputStream(locBytes)); } ! //This method overrides RMIObjectInputStream's protected Object getAnnotation() throws IOException, ClassNotFoundException { *************** public class RMIMarshalledObjectInputStr *** 67,71 **** return null; return locStream.readObject(); } ! } // End of RMIMarshalledObjectInputStream --- 67,71 ---- return null; return locStream.readObject(); } ! } // End of RMIMarshalledObjectInputStream diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/RMIMarshalledObjectOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/RMIMarshalledObjectOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/RMIMarshalledObjectOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/RMIMarshalledObjectOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.ObjectOutputStream; *** 46,79 **** import java.io.OutputStream; /** ! * This class is only for java.rmi.MarshalledObject to serialize object and * got objBytes and locBytes */ public class RMIMarshalledObjectOutputStream extends RMIObjectOutputStream { private ObjectOutputStream locStream; private ByteArrayOutputStream locBytesStream; ! public RMIMarshalledObjectOutputStream(OutputStream objStream) throws IOException { super(objStream); locBytesStream = new ByteArrayOutputStream(256); locStream = new ObjectOutputStream(locBytesStream); } ! //This method overrides RMIObjectOutputStream's. protected void setAnnotation(String annotation) throws IOException{ locStream.writeObject(annotation); } ! public void flush() throws IOException { super.flush(); locStream.flush(); } ! public byte[] getLocBytes(){ return locBytesStream.toByteArray(); } - - } // End of RMIMarshalledObjectOutputStream --- 46,78 ---- import java.io.OutputStream; /** ! * This class is only for java.rmi.MarshalledObject to serialize object and * got objBytes and locBytes */ public class RMIMarshalledObjectOutputStream extends RMIObjectOutputStream { private ObjectOutputStream locStream; private ByteArrayOutputStream locBytesStream; ! public RMIMarshalledObjectOutputStream(OutputStream objStream) throws IOException { super(objStream); locBytesStream = new ByteArrayOutputStream(256); locStream = new ObjectOutputStream(locBytesStream); } ! //This method overrides RMIObjectOutputStream's. protected void setAnnotation(String annotation) throws IOException{ locStream.writeObject(annotation); } ! public void flush() throws IOException { super.flush(); locStream.flush(); } ! public byte[] getLocBytes(){ return locBytesStream.toByteArray(); } + } // End of RMIMarshalledObjectOutputStream diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/activation/ActivationSystemTransient.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/activation/ActivationSystemTransient.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/activation/ActivationSystemTransient.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/activation/ActivationSystemTransient.java Tue Jan 11 19:46:05 2011 *************** import java.util.Map; *** 59,65 **** /** * Provides the default transient activation system. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public class ActivationSystemTransient --- 59,65 ---- /** * Provides the default transient activation system. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public class ActivationSystemTransient *************** public class ActivationSystemTransient *** 69,76 **** /** * Maps group identifiers into group descriptions. */ ! protected final BidiTable groupDescs; ! /** * Maps object identifiers into object activation descriptions */ --- 69,76 ---- /** * Maps group identifiers into group descriptions. */ ! protected final BidiTable groupDescs; ! /** * Maps object identifiers into object activation descriptions */ *************** public class ActivationSystemTransient *** 80,108 **** * Maps group identifiers into already activated groups. */ protected transient final Map groupInstantiators = new Hashtable(); ! /** * The cache of the activated objects, maps activation ids to remote * object stubs. */ protected transient final Map activatedObjects = new HashMap(); ! /** * The object incarnation counter. */ static long groupIncarnations = 0; ! /** * The singleton of this activation system */ static ActivationSystem singleton; ! /** * Set to true to print the event messages to console. */ public static boolean debug = false; ! ! /** * Creates the group which uses the given maps to store the data. */ --- 80,108 ---- * Maps group identifiers into already activated groups. */ protected transient final Map groupInstantiators = new Hashtable(); ! /** * The cache of the activated objects, maps activation ids to remote * object stubs. */ protected transient final Map activatedObjects = new HashMap(); ! /** * The object incarnation counter. */ static long groupIncarnations = 0; ! /** * The singleton of this activation system */ static ActivationSystem singleton; ! /** * Set to true to print the event messages to console. */ public static boolean debug = false; ! ! /** * Creates the group which uses the given maps to store the data. */ *************** public class ActivationSystemTransient *** 112,118 **** descriptions = objectDescriptions; groupDescs = groupDescriptiopns; } ! /** * Creates the group with transient maps. */ --- 112,118 ---- descriptions = objectDescriptions; groupDescs = groupDescriptiopns; } ! /** * Creates the group with transient maps. */ *************** public class ActivationSystemTransient *** 120,133 **** { this (new BidiTable(), new BidiTable()); } ! public static ActivationSystem getInstance() { if (singleton == null) singleton = new ActivationSystemTransient(); return singleton; } ! /** * Activate the given object (try cache first if force = false) */ --- 120,133 ---- { this (new BidiTable(), new BidiTable()); } ! public static ActivationSystem getInstance() { if (singleton == null) singleton = new ActivationSystemTransient(); return singleton; } ! /** * Activate the given object (try cache first if force = false) */ *************** public class ActivationSystemTransient *** 149,155 **** throw new UnknownObjectException("Activating unknown object "+ id == null ? "null" : id.toString()); ! ActivationInstantiator group = (ActivationInstantiator) groupInstantiators.get(desc.getGroupID()); if (group == null) --- 149,155 ---- throw new UnknownObjectException("Activating unknown object "+ id == null ? "null" : id.toString()); ! ActivationInstantiator group = (ActivationInstantiator) groupInstantiators.get(desc.getGroupID()); if (group == null) *************** public class ActivationSystemTransient *** 159,165 **** ActivationGroupDesc adesc = (ActivationGroupDesc) groupDescs.get(gid); if (adesc == null) ! throw new UnknownGroupException("Activating unknown group " + gid + " for "+ id+" this "+this); synchronized (ActivationSystemTransient.class) --- 159,165 ---- ActivationGroupDesc adesc = (ActivationGroupDesc) groupDescs.get(gid); if (adesc == null) ! throw new UnknownGroupException("Activating unknown group " + gid + " for "+ id+" this "+this); synchronized (ActivationSystemTransient.class) *************** public class ActivationSystemTransient *** 179,185 **** } return object; } ! /** * Returns the activation monitor (THIS) and remebers the instantiator, used * by that group. --- 179,185 ---- } return object; } ! /** * Returns the activation monitor (THIS) and remebers the instantiator, used * by that group. *************** public class ActivationSystemTransient *** 192,201 **** groupInstantiators.put(id, group); return this; } ! /** * Get the activation descriptor for the given activation id. ! * * @return the activation descriptor, never null. * @throws UnknownObjectException if such object is unknown. */ --- 192,201 ---- groupInstantiators.put(id, group); return this; } ! /** * Get the activation descriptor for the given activation id. ! * * @return the activation descriptor, never null. * @throws UnknownObjectException if such object is unknown. */ *************** public class ActivationSystemTransient *** 208,217 **** id == null ? "null" : id.toString()); return desc; } ! /** * Get the descriptor of the given activation group. ! * * @return the activation group descriptor, never null. * @throws UnknownGroupException if such group is unknown */ --- 208,217 ---- id == null ? "null" : id.toString()); return desc; } ! /** * Get the descriptor of the given activation group. ! * * @return the activation group descriptor, never null. * @throws UnknownGroupException if such group is unknown */ *************** public class ActivationSystemTransient *** 245,251 **** return id; } ! /** * Create the object activation id and put this id-descriptor combination into * the group map. The new ID will only be created if this description has not --- 245,251 ---- return id; } ! /** * Create the object activation id and put this id-descriptor combination into * the group map. The new ID will only be created if this description has not *************** public class ActivationSystemTransient *** 261,273 **** id = new ActivationID(this); descriptions.put(id, desc); } ! if (debug) System.out.println("Register object " + id +":"+desc+" this "+this); ! return id; } ! /** * Replace the activation descriptor, return the previous descriptor. */ --- 261,273 ---- id = new ActivationID(this); descriptions.put(id, desc); } ! if (debug) System.out.println("Register object " + id +":"+desc+" this "+this); ! return id; } ! /** * Replace the activation descriptor, return the previous descriptor. */ *************** public class ActivationSystemTransient *** 279,285 **** descriptions.put(id, desc); return prev; } ! /** * Replace the activation group descriptor, return the previous descriptor. */ --- 279,285 ---- descriptions.put(id, desc); return prev; } ! /** * Replace the activation group descriptor, return the previous descriptor. */ *************** public class ActivationSystemTransient *** 292,298 **** groupDescs.put(groupId, groupDesc); return prev; } ! /** * Calls .shutdown on all bidirectional tables (has no effect if these * table are not persistent). --- 292,298 ---- groupDescs.put(groupId, groupDesc); return prev; } ! /** * Calls .shutdown on all bidirectional tables (has no effect if these * table are not persistent). *************** public class ActivationSystemTransient *** 302,308 **** descriptions.shutdown(); groupDescs.shutdown(); } ! /** * Remove the group from the group map */ --- 302,308 ---- descriptions.shutdown(); groupDescs.shutdown(); } ! /** * Remove the group from the group map */ *************** public class ActivationSystemTransient *** 311,321 **** { if (! groupDescs.containsKey(groupId)) throw new UnknownGroupException("Unknown group "+groupId); ! groupDescs.removeKey(groupId); groupInstantiators.remove(groupId); } ! /** * Remove the object id from the active object and description maps. */ --- 311,321 ---- { if (! groupDescs.containsKey(groupId)) throw new UnknownGroupException("Unknown group "+groupId); ! groupDescs.removeKey(groupId); groupInstantiators.remove(groupId); } ! /** * Remove the object id from the active object and description maps. */ *************** public class ActivationSystemTransient *** 331,337 **** activatedObjects.remove(id); } } ! /** * Put the object into active object map. */ --- 331,337 ---- activatedObjects.remove(id); } } ! /** * Put the object into active object map. */ *************** public class ActivationSystemTransient *** 360,366 **** throw un; } } ! /** * Check if the group is known. Remove all active objects, belonging to * that group, from the active object cache. --- 360,366 ---- throw un; } } ! /** * Check if the group is known. Remove all active objects, belonging to * that group, from the active object cache. *************** public class ActivationSystemTransient *** 370,378 **** { if (! groupInstantiators.containsKey(groupId)) throw new UnknownGroupException("Inactivating unkwnon group"); ! groupInstantiators.remove(groupId); ! // Remove all members of this group from the cache. synchronized (activatedObjects) { --- 370,378 ---- { if (! groupInstantiators.containsKey(groupId)) throw new UnknownGroupException("Inactivating unkwnon group"); ! groupInstantiators.remove(groupId); ! // Remove all members of this group from the cache. synchronized (activatedObjects) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/activation/BidiTable.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/activation/BidiTable.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/activation/BidiTable.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/activation/BidiTable.java Tue Jan 11 19:46:05 2011 *************** import java.util.Map; *** 45,70 **** /** * The bidirectional hash table, maps both a to b and b to a. ! * ! * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ ! public class BidiTable { /** * Use serialVerionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Maps keys to values */ protected Map k2v; ! /** * Maps values to keys (in reverse) */ protected Map v2k; ! /** * Create a new table that is ready to use. */ --- 45,70 ---- /** * The bidirectional hash table, maps both a to b and b to a. ! * ! * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ ! public class BidiTable { /** * Use serialVerionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Maps keys to values */ protected Map k2v; ! /** * Maps values to keys (in reverse) */ protected Map v2k; ! /** * Create a new table that is ready to use. */ *************** public class BidiTable *** 73,89 **** k2v = new HashMap(); v2k = new HashMap(); } ! /** * Create a new instance where the hashtable fields are not initialised * (called from derivatives that intialise hashtables in they own way. ! * * @param flags currently used to mark the different constructor only. */ protected BidiTable(int flags) { } ! /** * Get key by value */ --- 73,89 ---- k2v = new HashMap(); v2k = new HashMap(); } ! /** * Create a new instance where the hashtable fields are not initialised * (called from derivatives that intialise hashtables in they own way. ! * * @param flags currently used to mark the different constructor only. */ protected BidiTable(int flags) { } ! /** * Get key by value */ *************** public class BidiTable *** 91,97 **** { return v2k.get(value); } ! /** * Put key-value pair. */ --- 91,97 ---- { return v2k.get(value); } ! /** * Put key-value pair. */ *************** public class BidiTable *** 100,106 **** k2v.put(key, value); v2k.put(value, key); } ! /** * Get value from key */ --- 100,106 ---- k2v.put(key, value); v2k.put(value, key); } ! /** * Get value from key */ *************** public class BidiTable *** 108,114 **** { return k2v.get(key); } ! /** * Remove the key-value pair by key */ --- 108,114 ---- { return k2v.get(key); } ! /** * Remove the key-value pair by key */ *************** public class BidiTable *** 121,127 **** v2k.remove(value); } } ! /** * Check if the table contains this key. */ --- 121,127 ---- v2k.remove(value); } } ! /** * Check if the table contains this key. */ *************** public class BidiTable *** 129,135 **** { return k2v.containsKey(key); } ! /** * This method is called before exit and may be used to write the database * to the disk. The default method does nothing. --- 129,135 ---- { return k2v.containsKey(key); } ! /** * This method is called before exit and may be used to write the database * to the disk. The default method does nothing. *************** public class BidiTable *** 137,143 **** public synchronized void shutdown() { } ! /** * Get the size. */ --- 137,143 ---- public synchronized void shutdown() { } ! /** * Get the size. */ *************** public class BidiTable *** 145,151 **** { return k2v.size(); } ! /** * Get the key collection. */ --- 145,151 ---- { return k2v.size(); } ! /** * Get the key collection. */ *************** public class BidiTable *** 157,163 **** Iterator iter = keys.iterator(); for (int i = 0; i < k.length; i++) k[i] = iter.next(); ! return k; } } --- 157,163 ---- Iterator iter = keys.iterator(); for (int i = 0; i < k.length; i++) k[i] = iter.next(); ! return k; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/activation/DefaultActivationGroup.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/activation/DefaultActivationGroup.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/activation/DefaultActivationGroup.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/activation/DefaultActivationGroup.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.activation.UnknownObject *** 55,63 **** /** * The default activation group class. This activation group assumes that * all classes are accessible via current thread context class loader. ! * The remote class loading is not supported for security reasons. The * activation always occurs in the current jre. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class DefaultActivationGroup --- 55,63 ---- /** * The default activation group class. This activation group assumes that * all classes are accessible via current thread context class loader. ! * The remote class loading is not supported for security reasons. The * activation always occurs in the current jre. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class DefaultActivationGroup *************** public class DefaultActivationGroup *** 67,73 **** * Use the serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Used during the group creation (required constructor). */ --- 67,73 ---- * Use the serialVersionUID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Used during the group creation (required constructor). */ *************** public class DefaultActivationGroup *** 76,98 **** ActivationID.class, MarshalledObject.class }; ! ! /** * Create the new default activation group. ! * * @param id the group activation id. * @param data may contain the group initialization data (unused and can be * null) * @throws RemoteException if the super constructor does ! */ public DefaultActivationGroup(ActivationGroupID id, MarshalledObject data) throws RemoteException { super(id); } ! ! /** * May be overridden and used as a hook. This method is called each time * the new object is instantiated. --- 76,98 ---- ActivationID.class, MarshalledObject.class }; ! ! /** * Create the new default activation group. ! * * @param id the group activation id. * @param data may contain the group initialization data (unused and can be * null) * @throws RemoteException if the super constructor does ! */ public DefaultActivationGroup(ActivationGroupID id, MarshalledObject data) throws RemoteException { super(id); } ! ! /** * May be overridden and used as a hook. This method is called each time * the new object is instantiated. *************** public class DefaultActivationGroup *** 108,121 **** * information, stored in the passed descriptor. The method expects the object * class to have the two parameter constructor, the first parameter being the * {@link ActivationID} and the second the {@link MarshalledObject}. ! * * @param id the object activation id * @param desc the activation descriptor, providing the information, necessary * to create and activate the object * @return the marshalled object, containing the exported stub of the created * object * @throws ActivationException if the activation fails due any reason ! */ public MarshalledObject newInstance(ActivationID id, ActivationDesc desc) throws ActivationException, RemoteException { --- 108,121 ---- * information, stored in the passed descriptor. The method expects the object * class to have the two parameter constructor, the first parameter being the * {@link ActivationID} and the second the {@link MarshalledObject}. ! * * @param id the object activation id * @param desc the activation descriptor, providing the information, necessary * to create and activate the object * @return the marshalled object, containing the exported stub of the created * object * @throws ActivationException if the activation fails due any reason ! */ public MarshalledObject newInstance(ActivationID id, ActivationDesc desc) throws ActivationException, RemoteException { *************** public class DefaultActivationGroup *** 123,129 **** { if (ActivationSystemTransient.debug) System.out.println("Instantiating "+desc.getClassName()); ! Remote object; Class objectClass; --- 123,129 ---- { if (ActivationSystemTransient.debug) System.out.println("Instantiating "+desc.getClassName()); ! Remote object; Class objectClass; *************** public class DefaultActivationGroup *** 132,150 **** Constructor constructor = objectClass.getConstructor(cConstructorTypes); object = (Remote) constructor.newInstance( new Object[] { id, desc.getData() }); ! // Make the object accessible and create the stub. ActivatableServerRef ref = UnicastServer.getActivatableRef(id); Remote stub = ref.exportObject(object); ! MarshalledObject marsh = new MarshalledObject(stub); ! // Notify the activation monitor. activeObject(id, marsh); ! // Make call to the hook that may be overridden. activeObject(id, stub); ! return marsh; } catch (Exception e) --- 132,150 ---- Constructor constructor = objectClass.getConstructor(cConstructorTypes); object = (Remote) constructor.newInstance( new Object[] { id, desc.getData() }); ! // Make the object accessible and create the stub. ActivatableServerRef ref = UnicastServer.getActivatableRef(id); Remote stub = ref.exportObject(object); ! MarshalledObject marsh = new MarshalledObject(stub); ! // Notify the activation monitor. activeObject(id, marsh); ! // Make call to the hook that may be overridden. activeObject(id, stub); ! return marsh; } catch (Exception e) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/activation/DefaultActivationSystem.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/activation/DefaultActivationSystem.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/activation/DefaultActivationSystem.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/activation/DefaultActivationSystem.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.registry.Registry; *** 44,50 **** /** * Finds and returns the default activation system for this jre. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public abstract class DefaultActivationSystem --- 44,50 ---- /** * Finds and returns the default activation system for this jre. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public abstract class DefaultActivationSystem *************** public abstract class DefaultActivationS *** 53,69 **** * The activation system (assigned if once found). */ static ActivationSystem system; ! /** * The default activation registry port. */ static int ACTIVATION_REGISTRY_PORT; ! /** * The name of the activation system registry port property. */ static String AS_PORT_PROPERTY = "java.rmi.activation.port"; ! /** * The defalut name of the activation system in the activation registry. */ --- 53,69 ---- * The activation system (assigned if once found). */ static ActivationSystem system; ! /** * The default activation registry port. */ static int ACTIVATION_REGISTRY_PORT; ! /** * The name of the activation system registry port property. */ static String AS_PORT_PROPERTY = "java.rmi.activation.port"; ! /** * The defalut name of the activation system in the activation registry. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/dgc/DGCImpl.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/dgc/DGCImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/dgc/DGCImpl.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/dgc/DGCImpl.java Tue Jan 11 19:46:05 2011 *************** public class DGCImpl *** 68,79 **** * The DGCImpl extends UnicastServerRef and not UnicastRemoteObject, because * UnicastRemoteObject must exportObject automatically. */ ! /** * Use the serial version UID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Protects the array of object Id's for the scheduled period of time * (lease). After the time expires, the protector is automatically discarded, --- 68,79 ---- * The DGCImpl extends UnicastServerRef and not UnicastRemoteObject, because * UnicastRemoteObject must exportObject automatically. */ ! /** * Use the serial version UID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Protects the array of object Id's for the scheduled period of time * (lease). After the time expires, the protector is automatically discarded, *************** public class DGCImpl *** 87,97 **** * multiple references that are stored to collection. */ Collection[] references; ! /** * Create the new instance of the reference protector that protects the * given array of ids and exists for the given period of time. ! * * @param ids the ids to protect. */ RefProtector(ObjID[] ids, long timeToLive) --- 87,97 ---- * multiple references that are stored to collection. */ Collection[] references; ! /** * Create the new instance of the reference protector that protects the * given array of ids and exists for the given period of time. ! * * @param ids the ids to protect. */ RefProtector(ObjID[] ids, long timeToLive) *************** public class DGCImpl *** 101,111 **** { references[i] = UnicastServer.getExported(ids[i]); } ! // Schedule the existence. LeaseRenewingTask.timer.schedule(this, timeToLive); } ! /** * Break all links, ensuring easy collection of the references by the gc. */ --- 101,111 ---- { references[i] = UnicastServer.getExported(ids[i]); } ! // Schedule the existence. LeaseRenewingTask.timer.schedule(this, timeToLive); } ! /** * Break all links, ensuring easy collection of the references by the gc. */ *************** public class DGCImpl *** 118,133 **** } } } ! /** * This defauld lease value is used if the lease value, passed to the * {@link #dirty} is equal to zero. */ static final long LEASE_VALUE = 600000L; ! /** * Create the new DGC implementation. ! * * @throws RemoteException if the super constructor throws or the * socket factory fails. */ --- 118,133 ---- } } } ! /** * This defauld lease value is used if the lease value, passed to the * {@link #dirty} is equal to zero. */ static final long LEASE_VALUE = 600000L; ! /** * Create the new DGC implementation. ! * * @throws RemoteException if the super constructor throws or the * socket factory fails. */ *************** public class DGCImpl *** 138,144 **** /** * Mark the given objects referecnes as used on the client side. ! * * @param ids the ids of the used objects. * @param sequenceNum the number of the call (used to detect and discard late * calls). --- 138,144 ---- /** * Mark the given objects referecnes as used on the client side. ! * * @param ids the ids of the used objects. * @param sequenceNum the number of the call (used to detect and discard late * calls). *************** public class DGCImpl *** 147,163 **** */ public Lease dirty(ObjID[] ids, long sequenceNum, Lease lease) throws RemoteException ! { // We do not fill in VMID because in this implementation it is not used. long leaseValue = lease.getValue(); ! // Grant the maximal default lease time if the passed value is zero. if (leaseValue <= 0) leaseValue = LEASE_VALUE; ! // Create (and shedule of the given existence) the new reference // protector. ! new RefProtector(ids, leaseValue); lease = new Lease(lease.getVMID(), leaseValue); return lease; --- 147,163 ---- */ public Lease dirty(ObjID[] ids, long sequenceNum, Lease lease) throws RemoteException ! { // We do not fill in VMID because in this implementation it is not used. long leaseValue = lease.getValue(); ! // Grant the maximal default lease time if the passed value is zero. if (leaseValue <= 0) leaseValue = LEASE_VALUE; ! // Create (and shedule of the given existence) the new reference // protector. ! new RefProtector(ids, leaseValue); lease = new Lease(lease.getVMID(), leaseValue); return lease; *************** public class DGCImpl *** 165,171 **** /** * Mark the given objects as no longer used on the client side. ! * * @param ids the ids of the objects that are no longer used. * @param sequenceNum the number of the call (used to detect and discard late * calls) --- 165,171 ---- /** * Mark the given objects as no longer used on the client side. ! * * @param ids the ids of the objects that are no longer used. * @param sequenceNum the number of the call (used to detect and discard late * calls) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Skel.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Skel.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Skel.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Skel.java Tue Jan 11 19:46:05 2011 *************** public final class DGCImpl_Skel *** 44,59 **** implements java.rmi.server.Skeleton { private static final long interfaceHash = -669196253586618813L; ! private static final java.rmi.server.Operation[] operations = { new java.rmi.server.Operation("void clean(java.rmi.server.ObjID[], long, java.rmi.dgc.VMID, boolean"), new java.rmi.server.Operation("java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease") }; ! public java.rmi.server.Operation[] getOperations() { return ((java.rmi.server.Operation[]) operations.clone()); } ! public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) throws java.lang.Exception { if (opnum < 0) { if (hash == -5803803475088455571L) { --- 44,59 ---- implements java.rmi.server.Skeleton { private static final long interfaceHash = -669196253586618813L; ! private static final java.rmi.server.Operation[] operations = { new java.rmi.server.Operation("void clean(java.rmi.server.ObjID[], long, java.rmi.dgc.VMID, boolean"), new java.rmi.server.Operation("java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease") }; ! public java.rmi.server.Operation[] getOperations() { return ((java.rmi.server.Operation[]) operations.clone()); } ! public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) throws java.lang.Exception { if (opnum < 0) { if (hash == -5803803475088455571L) { *************** public final class DGCImpl_Skel *** 69,75 **** else if (hash != interfaceHash) { throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); } ! gnu.java.rmi.dgc.DGCImpl server = (gnu.java.rmi.dgc.DGCImpl)obj; switch (opnum) { case 0: --- 69,75 ---- else if (hash != interfaceHash) { throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); } ! gnu.java.rmi.dgc.DGCImpl server = (gnu.java.rmi.dgc.DGCImpl)obj; switch (opnum) { case 0: *************** public final class DGCImpl_Skel *** 84,90 **** $param_1 = (long)in.readLong(); $param_2 = (java.rmi.dgc.VMID)in.readObject(); $param_3 = (boolean)in.readBoolean(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); --- 84,90 ---- $param_1 = (long)in.readLong(); $param_2 = (java.rmi.dgc.VMID)in.readObject(); $param_3 = (boolean)in.readBoolean(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); *************** public final class DGCImpl_Skel *** 104,110 **** } break; } ! case 1: { java.rmi.server.ObjID[] $param_0; --- 104,110 ---- } break; } ! case 1: { java.rmi.server.ObjID[] $param_0; *************** public final class DGCImpl_Skel *** 115,121 **** $param_0 = (java.rmi.server.ObjID[])in.readObject(); $param_1 = (long)in.readLong(); $param_2 = (java.rmi.dgc.Lease)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); --- 115,121 ---- $param_0 = (java.rmi.server.ObjID[])in.readObject(); $param_1 = (long)in.readLong(); $param_2 = (java.rmi.dgc.Lease)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); *************** public final class DGCImpl_Skel *** 136,142 **** } break; } ! default: throw new java.rmi.UnmarshalException("invalid method number"); } --- 136,142 ---- } break; } ! default: throw new java.rmi.UnmarshalException("invalid method number"); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Stub.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Stub.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Stub.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Stub.java Tue Jan 11 19:46:05 2011 *************** public final class DGCImpl_Stub *** 45,83 **** implements java.rmi.dgc.DGC { private static final long serialVersionUID = 2L; ! private static final long interfaceHash = -669196253586618813L; ! private static boolean useNewInvoke; ! private static final java.rmi.server.Operation[] operations = { new java.rmi.server.Operation("void clean(java.rmi.server.ObjID[], long, java.rmi.dgc.VMID, boolean)"), new java.rmi.server.Operation("java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)") }; ! private static java.lang.reflect.Method $method_clean_0; private static java.lang.reflect.Method $method_dirty_1; ! static { try { java.rmi.server.RemoteRef.class.getMethod("invoke", new java.lang.Class[] { java.rmi.Remote.class, java.lang.reflect.Method.class, java.lang.Object[].class, long.class }); useNewInvoke = true; $method_clean_0 = gnu.java.rmi.dgc.DGCImpl.class.getMethod("clean", new java.lang.Class[] {java.rmi.server.ObjID[].class, long.class, java.rmi.dgc.VMID.class, boolean.class}); $method_dirty_1 = gnu.java.rmi.dgc.DGCImpl.class.getMethod("dirty", new java.lang.Class[] {java.rmi.server.ObjID[].class, long.class, java.rmi.dgc.Lease.class}); ! } catch (java.lang.NoSuchMethodException e) { useNewInvoke = false; } } ! public DGCImpl_Stub() { super(); } public DGCImpl_Stub(java.rmi.server.RemoteRef ref) { super(ref); } ! public void clean(java.rmi.server.ObjID[] $param_0, long $param_1, java.rmi.dgc.VMID $param_2, boolean $param_3) throws java.rmi.RemoteException { try { if (useNewInvoke) { --- 45,83 ---- implements java.rmi.dgc.DGC { private static final long serialVersionUID = 2L; ! private static final long interfaceHash = -669196253586618813L; ! private static boolean useNewInvoke; ! private static final java.rmi.server.Operation[] operations = { new java.rmi.server.Operation("void clean(java.rmi.server.ObjID[], long, java.rmi.dgc.VMID, boolean)"), new java.rmi.server.Operation("java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)") }; ! private static java.lang.reflect.Method $method_clean_0; private static java.lang.reflect.Method $method_dirty_1; ! static { try { java.rmi.server.RemoteRef.class.getMethod("invoke", new java.lang.Class[] { java.rmi.Remote.class, java.lang.reflect.Method.class, java.lang.Object[].class, long.class }); useNewInvoke = true; $method_clean_0 = gnu.java.rmi.dgc.DGCImpl.class.getMethod("clean", new java.lang.Class[] {java.rmi.server.ObjID[].class, long.class, java.rmi.dgc.VMID.class, boolean.class}); $method_dirty_1 = gnu.java.rmi.dgc.DGCImpl.class.getMethod("dirty", new java.lang.Class[] {java.rmi.server.ObjID[].class, long.class, java.rmi.dgc.Lease.class}); ! } catch (java.lang.NoSuchMethodException e) { useNewInvoke = false; } } ! public DGCImpl_Stub() { super(); } public DGCImpl_Stub(java.rmi.server.RemoteRef ref) { super(ref); } ! public void clean(java.rmi.server.ObjID[] $param_0, long $param_1, java.rmi.dgc.VMID $param_2, boolean $param_3) throws java.rmi.RemoteException { try { if (useNewInvoke) { *************** public final class DGCImpl_Stub *** 114,120 **** throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[] $param_0, long $param_1, java.rmi.dgc.Lease $param_2) throws java.rmi.RemoteException { try { if (useNewInvoke) { --- 114,120 ---- throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[] $param_0, long $param_1, java.rmi.dgc.Lease $param_2) throws java.rmi.RemoteException { try { if (useNewInvoke) { *************** public final class DGCImpl_Stub *** 154,158 **** throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! } --- 154,158 ---- throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/dgc/LeaseRenewingTask.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/dgc/LeaseRenewingTask.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/dgc/LeaseRenewingTask.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/dgc/LeaseRenewingTask.java Tue Jan 11 19:46:05 2011 *************** import java.util.WeakHashMap; *** 54,64 **** * sheduled task does not prevent it from being garbage collected. If the * reference has not been garbage collected, the task is resheduled after * the lease is renewed. ! * * @author Audrius Meskauskas (Audriusa@Bioinformatics.org) */ public class LeaseRenewingTask ! { /** * The sheduled timer task to call the renew() method. */ --- 54,64 ---- * sheduled task does not prevent it from being garbage collected. If the * reference has not been garbage collected, the task is resheduled after * the lease is renewed. ! * * @author Audrius Meskauskas (Audriusa@Bioinformatics.org) */ public class LeaseRenewingTask ! { /** * The sheduled timer task to call the renew() method. */ *************** public class LeaseRenewingTask *** 69,80 **** renew(); } } ! /** * The default requested lease duration time (one minute by default). */ public static long REQUEST_LEASE_DURATION = 60000; ! /** * The reference to the UnicastRef that must renew its lease until not * garbage collected. The different members of this list may point to the --- 69,80 ---- renew(); } } ! /** * The default requested lease duration time (one minute by default). */ public static long REQUEST_LEASE_DURATION = 60000; ! /** * The reference to the UnicastRef that must renew its lease until not * garbage collected. The different members of this list may point to the *************** public class LeaseRenewingTask *** 84,111 **** * frequent deletions from the middle easy. */ LinkedList ref = new LinkedList(); ! /** * The granted (or supposed) lease. */ Lease lease = new Lease(null, REQUEST_LEASE_DURATION); ! /** * The timer, shared by all lease renewing tasks. The same instance is also * used for the reference protector discarding in DGCImpl. */ static Timer timer = new Timer(true); ! /** * Maps the UnicastRef to its renewing task. */ ! static WeakHashMap existingTasks = new WeakHashMap(); ! /** * Creates the lease renewing task that renews the lease of the given * UnicastRef until it is not collected. This constructor requests the lease * value from the server and schedules the lease renewal action. ! * * @param renewIt the reference that must be renewed. */ public LeaseRenewingTask(UnicastRef renewIt) --- 84,111 ---- * frequent deletions from the middle easy. */ LinkedList ref = new LinkedList(); ! /** * The granted (or supposed) lease. */ Lease lease = new Lease(null, REQUEST_LEASE_DURATION); ! /** * The timer, shared by all lease renewing tasks. The same instance is also * used for the reference protector discarding in DGCImpl. */ static Timer timer = new Timer(true); ! /** * Maps the UnicastRef to its renewing task. */ ! static WeakHashMap existingTasks = new WeakHashMap(); ! /** * Creates the lease renewing task that renews the lease of the given * UnicastRef until it is not collected. This constructor requests the lease * value from the server and schedules the lease renewal action. ! * * @param renewIt the reference that must be renewed. */ public LeaseRenewingTask(UnicastRef renewIt) *************** public class LeaseRenewingTask *** 117,126 **** ref.add(new WeakReference(renewIt)); } } ! /** * Schedule periodic leases for the given UnicastRef reference. ! * * @param renewIt the reference, for that the leases must be scheduled. */ public static void scheduleLeases(UnicastRef renewIt) --- 117,126 ---- ref.add(new WeakReference(renewIt)); } } ! /** * Schedule periodic leases for the given UnicastRef reference. ! * * @param renewIt the reference, for that the leases must be scheduled. */ public static void scheduleLeases(UnicastRef renewIt) *************** public class LeaseRenewingTask *** 155,177 **** throw ierr; } } ! /** * Shedule the renewing call, taking into consideration that the following * lease was granted. ! * * @param lease the lease that was granted. */ public void schedule(Lease lease) { long value = lease.getValue(); ! // Shedule a 10 % earlier because some time is needed for the message // to reach the server. long reduced = (value * 90)/100; if (reduced == 0) reduced = value; ! timer.schedule(new LeaseTimerTask(), reduced); } --- 155,177 ---- throw ierr; } } ! /** * Shedule the renewing call, taking into consideration that the following * lease was granted. ! * * @param lease the lease that was granted. */ public void schedule(Lease lease) { long value = lease.getValue(); ! // Shedule a 10 % earlier because some time is needed for the message // to reach the server. long reduced = (value * 90)/100; if (reduced == 0) reduced = value; ! timer.schedule(new LeaseTimerTask(), reduced); } *************** public class LeaseRenewingTask *** 197,207 **** iter.remove(); } } ! if (renewIt!=null) { Lease lease = notifyDGC( (UnicastRef) renewIt); ! // Schedule the next renewing session. if (lease!=null) schedule(lease); --- 197,207 ---- iter.remove(); } } ! if (renewIt!=null) { Lease lease = notifyDGC( (UnicastRef) renewIt); ! // Schedule the next renewing session. if (lease!=null) schedule(lease); *************** public class LeaseRenewingTask *** 210,219 **** // All references collected - discard this entry. } } ! /** * Notify DGC that we still hold this reference. ! * * @param renewIt the reference we still have (must not be null). */ public Lease notifyDGC(UnicastRef renewIt) --- 210,219 ---- // All references collected - discard this entry. } } ! /** * Notify DGC that we still hold this reference. ! * * @param renewIt the reference we still have (must not be null). */ public Lease notifyDGC(UnicastRef renewIt) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java Sat Jan 9 00:00:42 2010 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* RegistryImpl.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2005, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* RegistryImpl.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2005, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Enumeration; *** 56,154 **** import java.util.Hashtable; public class RegistryImpl ! extends UnicastRemoteObject implements Registry { private Hashtable bindings = new Hashtable(); public RegistryImpl(int port) throws RemoteException { ! this(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory()); } public RegistryImpl(int port, RMIClientSocketFactory cf, RMIServerSocketFactory sf) throws RemoteException { ! super(new UnicastServerRef(new ObjID(ObjID.REGISTRY_ID), port, sf)); ! // The following is unnecessary, because UnicastRemoteObject export itself automatically. ! //((UnicastServerRef)getRef()).exportObject(this); } public Remote lookup(String name) throws RemoteException, NotBoundException, AccessException { ! Object obj = bindings.get(name); ! if (obj == null) { ! throw new NotBoundException(name); ! } ! return ((Remote)obj); } public void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException { ! if (bindings.containsKey(name)) { ! throw new AlreadyBoundException(name); ! } ! bindings.put(name, obj); } public void unbind(String name) throws RemoteException, NotBoundException, AccessException { ! Object obj = bindings.remove(name); ! if (obj == null) { ! throw new NotBoundException(name); ! } } public void rebind(String name, Remote obj) throws RemoteException, AccessException { ! bindings.put(name, obj); } public String[] list() throws RemoteException, AccessException { ! int size = bindings.size(); ! String[] strings = new String[size]; ! Enumeration e = bindings.keys(); ! for (int i = 0; i < size; i++) { ! strings[i] = (String)e.nextElement(); ! } ! return (strings); } public static void version() { ! System.out.println("rmiregistry (" ! + System.getProperty("java.vm.name") ! + ") " ! + System.getProperty("java.vm.version")); ! System.out.println("Copyright 2010 Free Software Foundation, Inc."); ! System.out.println("This is free software; see the source for copying conditions. There is NO"); ! System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); ! System.exit(0); } public static void help() { ! System.out.println( "Usage: rmiregistry [OPTION | PORT]\n" + "\n" + " --help Print this help, then exit\n" + " --version Print version number, then exit\n"); ! System.exit(0); } public static void main(String[] args) { ! int port = Registry.REGISTRY_PORT; ! if (args.length > 0) { ! if (args[0].equals("--version")) { ! version(); ! } ! else if (args[0].equals("--help")) { ! help(); ! } ! try { ! port = Integer.parseInt(args[0]); ! } ! catch (NumberFormatException _) { ! System.err.println("Bad port number - using default"); ! } ! } ! try { ! Registry impl = LocateRegistry.createRegistry(port); ! } ! catch (RemoteException _) { ! System.err.println("Registry failed"); ! } } } --- 56,154 ---- import java.util.Hashtable; public class RegistryImpl ! extends UnicastRemoteObject implements Registry { private Hashtable bindings = new Hashtable(); public RegistryImpl(int port) throws RemoteException { ! this(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory()); } public RegistryImpl(int port, RMIClientSocketFactory cf, RMIServerSocketFactory sf) throws RemoteException { ! super(new UnicastServerRef(new ObjID(ObjID.REGISTRY_ID), port, sf)); ! // The following is unnecessary, because UnicastRemoteObject export itself automatically. ! //((UnicastServerRef)getRef()).exportObject(this); } public Remote lookup(String name) throws RemoteException, NotBoundException, AccessException { ! Object obj = bindings.get(name); ! if (obj == null) { ! throw new NotBoundException(name); ! } ! return ((Remote)obj); } public void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException { ! if (bindings.containsKey(name)) { ! throw new AlreadyBoundException(name); ! } ! bindings.put(name, obj); } public void unbind(String name) throws RemoteException, NotBoundException, AccessException { ! Object obj = bindings.remove(name); ! if (obj == null) { ! throw new NotBoundException(name); ! } } public void rebind(String name, Remote obj) throws RemoteException, AccessException { ! bindings.put(name, obj); } public String[] list() throws RemoteException, AccessException { ! int size = bindings.size(); ! String[] strings = new String[size]; ! Enumeration e = bindings.keys(); ! for (int i = 0; i < size; i++) { ! strings[i] = (String)e.nextElement(); ! } ! return (strings); } public static void version() { ! System.out.println("rmiregistry (" ! + System.getProperty("java.vm.name") ! + ") " ! + System.getProperty("java.vm.version")); ! System.out.println("Copyright 2011 Free Software Foundation, Inc."); ! System.out.println("This is free software; see the source for copying conditions. There is NO"); ! System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); ! System.exit(0); } public static void help() { ! System.out.println( "Usage: rmiregistry [OPTION | PORT]\n" + "\n" + " --help Print this help, then exit\n" + " --version Print version number, then exit\n"); ! System.exit(0); } public static void main(String[] args) { ! int port = Registry.REGISTRY_PORT; ! if (args.length > 0) { ! if (args[0].equals("--version")) { ! version(); ! } ! else if (args[0].equals("--help")) { ! help(); ! } ! try { ! port = Integer.parseInt(args[0]); ! } ! catch (NumberFormatException _) { ! System.err.println("Bad port number - using default"); ! } ! } ! try { ! Registry impl = LocateRegistry.createRegistry(port); ! } ! catch (RemoteException _) { ! System.err.println("Registry failed"); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Skel.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Skel.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Skel.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Skel.java Tue Jan 11 19:46:05 2011 *************** public final class RegistryImpl_Skel *** 44,50 **** implements java.rmi.server.Skeleton { private static final long interfaceHash = 4905912898345647071L; ! private static final java.rmi.server.Operation[] operations = { new java.rmi.server.Operation("void bind(java.lang.String, java.rmi.Remote"), new java.rmi.server.Operation("java.lang.String[] list("), --- 44,50 ---- implements java.rmi.server.Skeleton { private static final long interfaceHash = 4905912898345647071L; ! private static final java.rmi.server.Operation[] operations = { new java.rmi.server.Operation("void bind(java.lang.String, java.rmi.Remote"), new java.rmi.server.Operation("java.lang.String[] list("), *************** public final class RegistryImpl_Skel *** 52,62 **** new java.rmi.server.Operation("void rebind(java.lang.String, java.rmi.Remote"), new java.rmi.server.Operation("void unbind(java.lang.String") }; ! public java.rmi.server.Operation[] getOperations() { return ((java.rmi.server.Operation[]) operations.clone()); } ! public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) throws java.lang.Exception { if (opnum < 0) { if (hash == 7583982177005850366L) { --- 52,62 ---- new java.rmi.server.Operation("void rebind(java.lang.String, java.rmi.Remote"), new java.rmi.server.Operation("void unbind(java.lang.String") }; ! public java.rmi.server.Operation[] getOperations() { return ((java.rmi.server.Operation[]) operations.clone()); } ! public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) throws java.lang.Exception { if (opnum < 0) { if (hash == 7583982177005850366L) { *************** public final class RegistryImpl_Skel *** 81,87 **** else if (hash != interfaceHash) { throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); } ! gnu.java.rmi.registry.RegistryImpl server = (gnu.java.rmi.registry.RegistryImpl)obj; switch (opnum) { case 0: --- 81,87 ---- else if (hash != interfaceHash) { throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); } ! gnu.java.rmi.registry.RegistryImpl server = (gnu.java.rmi.registry.RegistryImpl)obj; switch (opnum) { case 0: *************** public final class RegistryImpl_Skel *** 92,98 **** java.io.ObjectInput in = call.getInputStream(); $param_0 = (java.lang.String)in.readObject(); $param_1 = (java.rmi.Remote)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); --- 92,98 ---- java.io.ObjectInput in = call.getInputStream(); $param_0 = (java.lang.String)in.readObject(); $param_1 = (java.rmi.Remote)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); *************** public final class RegistryImpl_Skel *** 112,123 **** } break; } ! case 1: { try { java.io.ObjectInput in = call.getInputStream(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); --- 112,123 ---- } break; } ! case 1: { try { java.io.ObjectInput in = call.getInputStream(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); *************** public final class RegistryImpl_Skel *** 135,148 **** } break; } ! case 2: { java.lang.String $param_0; try { java.io.ObjectInput in = call.getInputStream(); $param_0 = (java.lang.String)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); --- 135,148 ---- } break; } ! case 2: { java.lang.String $param_0; try { java.io.ObjectInput in = call.getInputStream(); $param_0 = (java.lang.String)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); *************** public final class RegistryImpl_Skel *** 163,169 **** } break; } ! case 3: { java.lang.String $param_0; --- 163,169 ---- } break; } ! case 3: { java.lang.String $param_0; *************** public final class RegistryImpl_Skel *** 172,178 **** java.io.ObjectInput in = call.getInputStream(); $param_0 = (java.lang.String)in.readObject(); $param_1 = (java.rmi.Remote)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); --- 172,178 ---- java.io.ObjectInput in = call.getInputStream(); $param_0 = (java.lang.String)in.readObject(); $param_1 = (java.rmi.Remote)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); *************** public final class RegistryImpl_Skel *** 192,205 **** } break; } ! case 4: { java.lang.String $param_0; try { java.io.ObjectInput in = call.getInputStream(); $param_0 = (java.lang.String)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); --- 192,205 ---- } break; } ! case 4: { java.lang.String $param_0; try { java.io.ObjectInput in = call.getInputStream(); $param_0 = (java.lang.String)in.readObject(); ! } catch (java.io.IOException e) { throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); *************** public final class RegistryImpl_Skel *** 219,225 **** } break; } ! default: throw new java.rmi.UnmarshalException("invalid method number"); } --- 219,225 ---- } break; } ! default: throw new java.rmi.UnmarshalException("invalid method number"); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Stub.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Stub.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Stub.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Stub.java Tue Jan 11 19:46:05 2011 *************** public final class RegistryImpl_Stub *** 45,55 **** implements java.rmi.registry.Registry { private static final long serialVersionUID = 2L; ! private static final long interfaceHash = 4905912898345647071L; ! private static boolean useNewInvoke; ! private static final java.rmi.server.Operation[] operations = { new java.rmi.server.Operation("void bind(java.lang.String, java.rmi.Remote)"), new java.rmi.server.Operation("java.lang.String[] list()"), --- 45,55 ---- implements java.rmi.registry.Registry { private static final long serialVersionUID = 2L; ! private static final long interfaceHash = 4905912898345647071L; ! private static boolean useNewInvoke; ! private static final java.rmi.server.Operation[] operations = { new java.rmi.server.Operation("void bind(java.lang.String, java.rmi.Remote)"), new java.rmi.server.Operation("java.lang.String[] list()"), *************** public final class RegistryImpl_Stub *** 57,69 **** new java.rmi.server.Operation("void rebind(java.lang.String, java.rmi.Remote)"), new java.rmi.server.Operation("void unbind(java.lang.String)") }; ! private static java.lang.reflect.Method $method_bind_0; private static java.lang.reflect.Method $method_list_1; private static java.lang.reflect.Method $method_lookup_2; private static java.lang.reflect.Method $method_rebind_3; private static java.lang.reflect.Method $method_unbind_4; ! static { try { java.rmi.server.RemoteRef.class.getMethod("invoke", new java.lang.Class[] { java.rmi.Remote.class, java.lang.reflect.Method.class, java.lang.Object[].class, long.class }); --- 57,69 ---- new java.rmi.server.Operation("void rebind(java.lang.String, java.rmi.Remote)"), new java.rmi.server.Operation("void unbind(java.lang.String)") }; ! private static java.lang.reflect.Method $method_bind_0; private static java.lang.reflect.Method $method_list_1; private static java.lang.reflect.Method $method_lookup_2; private static java.lang.reflect.Method $method_rebind_3; private static java.lang.reflect.Method $method_unbind_4; ! static { try { java.rmi.server.RemoteRef.class.getMethod("invoke", new java.lang.Class[] { java.rmi.Remote.class, java.lang.reflect.Method.class, java.lang.Object[].class, long.class }); *************** public final class RegistryImpl_Stub *** 73,92 **** $method_lookup_2 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("lookup", new java.lang.Class[] {java.lang.String.class}); $method_rebind_3 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("rebind", new java.lang.Class[] {java.lang.String.class, java.rmi.Remote.class}); $method_unbind_4 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("unbind", new java.lang.Class[] {java.lang.String.class}); ! } catch (java.lang.NoSuchMethodException e) { useNewInvoke = false; } } ! public RegistryImpl_Stub() { super(); } public RegistryImpl_Stub(java.rmi.server.RemoteRef ref) { super(ref); } ! public void bind(java.lang.String $param_0, java.rmi.Remote $param_1) throws java.rmi.AccessException, java.rmi.AlreadyBoundException, java.rmi.RemoteException { try { if (useNewInvoke) { --- 73,92 ---- $method_lookup_2 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("lookup", new java.lang.Class[] {java.lang.String.class}); $method_rebind_3 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("rebind", new java.lang.Class[] {java.lang.String.class, java.rmi.Remote.class}); $method_unbind_4 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("unbind", new java.lang.Class[] {java.lang.String.class}); ! } catch (java.lang.NoSuchMethodException e) { useNewInvoke = false; } } ! public RegistryImpl_Stub() { super(); } public RegistryImpl_Stub(java.rmi.server.RemoteRef ref) { super(ref); } ! public void bind(java.lang.String $param_0, java.rmi.Remote $param_1) throws java.rmi.AccessException, java.rmi.AlreadyBoundException, java.rmi.RemoteException { try { if (useNewInvoke) { *************** public final class RegistryImpl_Stub *** 127,133 **** throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public java.lang.String[] list() throws java.rmi.AccessException, java.rmi.RemoteException { try { if (useNewInvoke) { --- 127,133 ---- throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public java.lang.String[] list() throws java.rmi.AccessException, java.rmi.RemoteException { try { if (useNewInvoke) { *************** public final class RegistryImpl_Stub *** 167,173 **** throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public java.rmi.Remote lookup(java.lang.String $param_0) throws java.rmi.AccessException, java.rmi.NotBoundException, java.rmi.RemoteException { try { if (useNewInvoke) { --- 167,173 ---- throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public java.rmi.Remote lookup(java.lang.String $param_0) throws java.rmi.AccessException, java.rmi.NotBoundException, java.rmi.RemoteException { try { if (useNewInvoke) { *************** public final class RegistryImpl_Stub *** 211,217 **** throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public void rebind(java.lang.String $param_0, java.rmi.Remote $param_1) throws java.rmi.AccessException, java.rmi.RemoteException { try { if (useNewInvoke) { --- 211,217 ---- throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public void rebind(java.lang.String $param_0, java.rmi.Remote $param_1) throws java.rmi.AccessException, java.rmi.RemoteException { try { if (useNewInvoke) { *************** public final class RegistryImpl_Stub *** 249,255 **** throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public void unbind(java.lang.String $param_0) throws java.rmi.AccessException, java.rmi.NotBoundException, java.rmi.RemoteException { try { if (useNewInvoke) { --- 249,255 ---- throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! public void unbind(java.lang.String $param_0) throws java.rmi.AccessException, java.rmi.NotBoundException, java.rmi.RemoteException { try { if (useNewInvoke) { *************** public final class RegistryImpl_Stub *** 289,293 **** throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! } --- 289,293 ---- throw new java.rmi.UnexpectedException("undeclared checked exception", e); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/ActivatableRef.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/ActivatableRef.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/ActivatableRef.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/ActivatableRef.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.server.RemoteRef; *** 58,64 **** * appears to be not accessible, it tries to reactivate it before reporting * any errors. Apart the fields of the UnicastRef, the activatable reference * contains the ActivationID that is used for this activation. ! * * @author Audrius Meskauskas (Audriusa@Bioinformatics.org) */ public class ActivatableRef extends UnicastRef --- 58,64 ---- * appears to be not accessible, it tries to reactivate it before reporting * any errors. Apart the fields of the UnicastRef, the activatable reference * contains the ActivationID that is used for this activation. ! * * @author Audrius Meskauskas (Audriusa@Bioinformatics.org) */ public class ActivatableRef extends UnicastRef *************** public class ActivatableRef extends Unic *** 67,78 **** * Use serial version UID for iteroperability */ private static final long serialVersionUID = 1; ! /** * The activation id. */ ActivationID actId; ! /** * Delegate call to the superclass. */ --- 67,78 ---- * Use serial version UID for iteroperability */ private static final long serialVersionUID = 1; ! /** * The activation id. */ ActivationID actId; ! /** * Delegate call to the superclass. */ *************** public class ActivatableRef extends Unic *** 128,134 **** out.writeUTF("UnicastRef2"); super.writeExternal(out); } ! /** * Invoke the remote method on the given object and try to activate the object * if it is not reacheable with the current manager. --- 128,134 ---- out.writeUTF("UnicastRef2"); super.writeExternal(out); } ! /** * Invoke the remote method on the given object and try to activate the object * if it is not reacheable with the current manager. *************** public class ActivatableRef extends Unic *** 153,162 **** } else if (Proxy.isProxyClass(reactivated.getClass())) { ! RemoteObjectInvocationHandler hander = ! (RemoteObjectInvocationHandler) Proxy.getInvocationHandler(reactivated); ! RemoteRef ref = hander.getRef(); manager = ((UnicastRef) ref).manager; } --- 153,162 ---- } else if (Proxy.isProxyClass(reactivated.getClass())) { ! RemoteObjectInvocationHandler hander = ! (RemoteObjectInvocationHandler) Proxy.getInvocationHandler(reactivated); ! RemoteRef ref = hander.getRef(); manager = ((UnicastRef) ref).manager; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/ActivatableServerRef.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/ActivatableServerRef.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/ActivatableServerRef.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/ActivatableServerRef.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.server.Skeleton; *** 54,60 **** * additionally activates the associated object on demand, during the first * incoming call. When UnicastServerReference takes the working reference, * the ActivatableServerRef takes the activation id instead. ! * * @author Audrius Meskauskas (Audriusa@Bioinformatics.org) */ public class ActivatableServerRef extends UnicastServerRef --- 54,60 ---- * additionally activates the associated object on demand, during the first * incoming call. When UnicastServerReference takes the working reference, * the ActivatableServerRef takes the activation id instead. ! * * @author Audrius Meskauskas (Audriusa@Bioinformatics.org) */ public class ActivatableServerRef extends UnicastServerRef *************** public class ActivatableServerRef extend *** 63,69 **** * Use SVUID for interoperability */ private static final long serialVersionUID = 1; ! /** * The object activation id. */ --- 63,69 ---- * Use SVUID for interoperability */ private static final long serialVersionUID = 1; ! /** * The object activation id. */ *************** public class ActivatableServerRef extend *** 76,82 **** { super(); } ! /** * Create the new activatable server reference that will activate object on * the first call using the given activation id. --- 76,82 ---- { super(); } ! /** * Create the new activatable server reference that will activate object on * the first call using the given activation id. *************** public class ActivatableServerRef extend *** 87,99 **** { super(id, aPort, ssFactory); actId = anId; ! // The object ID will be placed in the object map and should deliver // incoming call to {@link #incommingMessageCall}. The object itself // is currently null. UnicastServer.exportActivatableObject(this); } ! /** * Inactivate the object (stop the server). */ --- 87,99 ---- { super(id, aPort, ssFactory); actId = anId; ! // The object ID will be placed in the object map and should deliver // incoming call to {@link #incommingMessageCall}. The object itself // is currently null. UnicastServer.exportActivatableObject(this); } ! /** * Inactivate the object (stop the server). */ *************** public class ActivatableServerRef extend *** 101,107 **** { manager.stopServer(); } ! /** * Activate the object (normally during the first call). */ --- 101,107 ---- { manager.stopServer(); } ! /** * Activate the object (normally during the first call). */ *************** public class ActivatableServerRef extend *** 110,116 **** try { Remote self = actId.activate(false); ! // This will call UnicastServer.exportObject, replacing null by // the activated object (self) in the object map. exportObject(self); --- 110,116 ---- try { Remote self = actId.activate(false); ! // This will call UnicastServer.exportObject, replacing null by // the activated object (self) in the object map. exportObject(self); *************** public class ActivatableServerRef extend *** 139,145 **** } /** ! * Export object and ensure it is present in the server activation table * as well. */ public Remote exportObject(Remote obj) throws RemoteException --- 139,145 ---- } /** ! * Export object and ensure it is present in the server activation table * as well. */ public Remote exportObject(Remote obj) throws RemoteException *************** public class ActivatableServerRef extend *** 148,158 **** UnicastServer.registerActivatable(this); return r; } ! /** * Export object and ensure it is present in the server activation table as * well. ! * * @param aClass the class being exported, must implement Remote. */ public Remote exportClass(Class aClass) throws RemoteException --- 148,158 ---- UnicastServer.registerActivatable(this); return r; } ! /** * Export object and ensure it is present in the server activation table as * well. ! * * @param aClass the class being exported, must implement Remote. */ public Remote exportClass(Class aClass) throws RemoteException *************** public class ActivatableServerRef extend *** 161,177 **** throw new InternalError(aClass.getName()+" must implement Remote"); String ignoreStubs; ! ! ClassLoader loader =aClass.getClassLoader(); ! // Stubs are always searched for the bootstrap classes that may have // obsolete pattern and may still need also skeletons. if (loader==null) ignoreStubs = "false"; else ! ignoreStubs = System.getProperty("java.rmi.server.ignoreStubClasses", "false"); ! if (! ignoreStubs.equals("true")) { // Find and install the stub --- 161,177 ---- throw new InternalError(aClass.getName()+" must implement Remote"); String ignoreStubs; ! ! ClassLoader loader =aClass.getClassLoader(); ! // Stubs are always searched for the bootstrap classes that may have // obsolete pattern and may still need also skeletons. if (loader==null) ignoreStubs = "false"; else ! ignoreStubs = System.getProperty("java.rmi.server.ignoreStubClasses", "false"); ! if (! ignoreStubs.equals("true")) { // Find and install the stub *************** public class ActivatableServerRef extend *** 223,227 **** super.writeExternal(out); out.writeObject(actId); } ! } --- 223,227 ---- super.writeExternal(out); out.writeObject(actId); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/CombinedClassLoader.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/CombinedClassLoader.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/CombinedClassLoader.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/CombinedClassLoader.java Tue Jan 11 19:46:05 2011 *************** import java.util.ArrayList; *** 49,56 **** * This class supports the multiple class loaders to load the resources. It is * used for constructing proxy classes that implement interfaces, loaded by * the several different class loaders. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class CombinedClassLoader extends ClassLoader { --- 49,56 ---- * This class supports the multiple class loaders to load the resources. It is * used for constructing proxy classes that implement interfaces, loaded by * the several different class loaders. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class CombinedClassLoader extends ClassLoader { *************** public class CombinedClassLoader extends *** 58,77 **** * The class loader array. */ ClassLoader[] loaders; ! /** * Create a new combined class loader that uses the given collection of * loaders to load the classes and resources. The loader order is equal to * the order, returned by the collection interator. The duplicate loaders * are discarded and the system class loader is added as the last loader. ! * * @param a_loaders the loadery collection (may contain duplicate instances * that will be discarded. */ public CombinedClassLoader(Collection a_loaders) { ArrayList sLoaders = new ArrayList(a_loaders.size()); ! Iterator iter = a_loaders.iterator(); Object cl; while (iter.hasNext()) --- 58,77 ---- * The class loader array. */ ClassLoader[] loaders; ! /** * Create a new combined class loader that uses the given collection of * loaders to load the classes and resources. The loader order is equal to * the order, returned by the collection interator. The duplicate loaders * are discarded and the system class loader is added as the last loader. ! * * @param a_loaders the loadery collection (may contain duplicate instances * that will be discarded. */ public CombinedClassLoader(Collection a_loaders) { ArrayList sLoaders = new ArrayList(a_loaders.size()); ! Iterator iter = a_loaders.iterator(); Object cl; while (iter.hasNext()) *************** public class CombinedClassLoader extends *** 80,86 **** if (cl!=null && !sLoaders.contains(cl)) sLoaders.add(cl); } ! loaders = new ClassLoader[sLoaders.size()]; for (int i = 0; i < loaders.length; i++) --- 80,86 ---- if (cl!=null && !sLoaders.contains(cl)) sLoaders.add(cl); } ! loaders = new ClassLoader[sLoaders.size()]; for (int i = 0; i < loaders.length; i++) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Arrays; *** 45,105 **** class ConnectionRunnerPool { ! ! public static class ConnectionRunner extends Thread{ private UnicastConnection conn; private volatile boolean exiting = false; ! public ConnectionRunner(ThreadGroup group, String id){ super(group, id); } ! public synchronized void run(){ while(!exiting){ ! if(conn == null) ! try{ ! wait(); ! }catch(InterruptedException e){ ! continue; ! } ! else{ ! conn.run(); ! conn = null; ! synchronized(ConnectionRunnerPool.class){ ! freelist.add(this); ! if(freelist.size() == 1) ! ConnectionRunnerPool.class.notifyAll(); ! } ! } } } ! public synchronized void dispatch(UnicastConnection conn){ this.conn = conn; notify(); } ! void exit(){ exiting = true; if(conn != null) ! try{ ! join(500); ! }catch(InterruptedException e){} interrupt(); } ! } ! // Should this value equal to number of CPU? private static int size = 5; private static int max_size = 10; ! // Package-private to avoid a trampoline. static ArrayList freelist; ! private static ThreadGroup group = new ThreadGroup("pool"); ! static { ConnectionRunner[] pools = new ConnectionRunner[size]; for(int i = 0; i < pools.length; i++){ --- 45,105 ---- class ConnectionRunnerPool { ! ! public static class ConnectionRunner extends Thread{ private UnicastConnection conn; private volatile boolean exiting = false; ! public ConnectionRunner(ThreadGroup group, String id){ super(group, id); } ! public synchronized void run(){ while(!exiting){ ! if(conn == null) ! try{ ! wait(); ! }catch(InterruptedException e){ ! continue; ! } ! else{ ! conn.run(); ! conn = null; ! synchronized(ConnectionRunnerPool.class){ ! freelist.add(this); ! if(freelist.size() == 1) ! ConnectionRunnerPool.class.notifyAll(); ! } ! } } } ! public synchronized void dispatch(UnicastConnection conn){ this.conn = conn; notify(); } ! void exit(){ exiting = true; if(conn != null) ! try{ ! join(500); ! }catch(InterruptedException e){} interrupt(); } ! } ! // Should this value equal to number of CPU? private static int size = 5; private static int max_size = 10; ! // Package-private to avoid a trampoline. static ArrayList freelist; ! private static ThreadGroup group = new ThreadGroup("pool"); ! static { ConnectionRunner[] pools = new ConnectionRunner[size]; for(int i = 0; i < pools.length; i++){ *************** class ConnectionRunnerPool *** 109,150 **** } freelist = new ArrayList(Arrays.asList(pools)); } ! public static void setSize(int size_){ size = size_; } ! public static void setMaxSize(int size){ max_size = size; } ! private static synchronized ConnectionRunner getConnectionRunner() { if(freelist.size() == 0){ if(size < max_size){ ! ++size; ! ConnectionRunner a = new ConnectionRunner(group, Integer.toString(size)); ! a.start(); ! freelist.add(a); }else ! while(freelist.size() == 0) ! try{ ! ConnectionRunnerPool.class.wait(); ! }catch(InterruptedException e){} } ! // always let the first in pool most busy or other scheduling plan?? ConnectionRunner a = (ConnectionRunner)freelist.get(0); freelist.remove(a); return a; } ! public static void dispatchConnection(UnicastConnection conn) { ConnectionRunner r = getConnectionRunner(); r.dispatch(conn); } ! public static void exit() { Thread[] list = new Thread[group.activeCount()]; --- 109,150 ---- } freelist = new ArrayList(Arrays.asList(pools)); } ! public static void setSize(int size_){ size = size_; } ! public static void setMaxSize(int size){ max_size = size; } ! private static synchronized ConnectionRunner getConnectionRunner() { if(freelist.size() == 0){ if(size < max_size){ ! ++size; ! ConnectionRunner a = new ConnectionRunner(group, Integer.toString(size)); ! a.start(); ! freelist.add(a); }else ! while(freelist.size() == 0) ! try{ ! ConnectionRunnerPool.class.wait(); ! }catch(InterruptedException e){} } ! // always let the first in pool most busy or other scheduling plan?? ConnectionRunner a = (ConnectionRunner)freelist.get(0); freelist.remove(a); return a; } ! public static void dispatchConnection(UnicastConnection conn) { ConnectionRunner r = getConnectionRunner(); r.dispatch(conn); } ! public static void exit() { Thread[] list = new Thread[group.activeCount()]; *************** class ConnectionRunnerPool *** 152,156 **** for(int i = 0; i < list.length; i++) ((ConnectionRunner)list[i]).exit(); } ! } --- 152,156 ---- for(int i = 0; i < list.length; i++) ((ConnectionRunner)list[i]).exit(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/ProtocolConstants.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/ProtocolConstants.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/ProtocolConstants.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/ProtocolConstants.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java Tue Jan 11 19:46:05 2011 *************** public class RMIClassLoaderImpl extends *** 90,110 **** private final String annotation; } ! /** ! * This class is used to identify a cached classloader by its codebase and * the context classloader that is its parent. ! */ private static class CacheKey { private String mCodeBase; private ClassLoader mContextClassLoader; ! public CacheKey (String theCodebase, ClassLoader theContextClassLoader) { mCodeBase = theCodebase; mContextClassLoader = theContextClassLoader; } ! /** * @return true if the codebase and the context classloader are equal */ --- 90,110 ---- private final String annotation; } ! /** ! * This class is used to identify a cached classloader by its codebase and * the context classloader that is its parent. ! */ private static class CacheKey { private String mCodeBase; private ClassLoader mContextClassLoader; ! public CacheKey (String theCodebase, ClassLoader theContextClassLoader) { mCodeBase = theCodebase; mContextClassLoader = theContextClassLoader; } ! /** * @return true if the codebase and the context classloader are equal */ *************** public class RMIClassLoaderImpl extends *** 113,125 **** if (theOther instanceof CacheKey) { CacheKey key = (CacheKey) theOther; ! return (equals (this.mCodeBase,key.mCodeBase) && equals (this.mContextClassLoader, key.mContextClassLoader)); } return false; } ! /** * Test if the two objects are equal or both null. * @param theOne --- 113,125 ---- if (theOther instanceof CacheKey) { CacheKey key = (CacheKey) theOther; ! return (equals (this.mCodeBase,key.mCodeBase) && equals (this.mContextClassLoader, key.mContextClassLoader)); } return false; } ! /** * Test if the two objects are equal or both null. * @param theOne *************** public class RMIClassLoaderImpl extends *** 132,148 **** } /** ! * @return hashCode */ public int hashCode() { ! return ((mCodeBase != null ? mCodeBase.hashCode() : 0) ^(mContextClassLoader != null ? mContextClassLoader.hashCode() : -1)); } public String toString() { ! return "[" + mCodeBase + "," + mContextClassLoader + "]"; } } --- 132,148 ---- } /** ! * @return hashCode */ public int hashCode() { ! return ((mCodeBase != null ? mCodeBase.hashCode() : 0) ^(mContextClassLoader != null ? mContextClassLoader.hashCode() : -1)); } public String toString() { ! return "[" + mCodeBase + "," + mContextClassLoader + "]"; } } *************** public class RMIClassLoaderImpl extends *** 214,220 **** ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException { ! try { if (defaultLoader != null) return Class.forName(name, false, defaultLoader); --- 214,220 ---- ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException { ! try { if (defaultLoader != null) return Class.forName(name, false, defaultLoader); *************** public class RMIClassLoaderImpl extends *** 236,242 **** { clss[i] = loadClass(codeBase, interfaces[i], defaultLoader); } ! // Chain all class loaders (they may differ). ArrayList loaders = new ArrayList(clss.length); ClassLoader loader = null; --- 236,242 ---- { clss[i] = loadClass(codeBase, interfaces[i], defaultLoader); } ! // Chain all class loaders (they may differ). ArrayList loaders = new ArrayList(clss.length); ClassLoader loader = null; *************** public class RMIClassLoaderImpl extends *** 266,276 **** /** * Gets a classloader for the given codebase and with the current * context classloader as parent. ! * * @param codebase ! * * @return a classloader for the given codebase ! * * @throws MalformedURLException if the codebase contains a malformed URL */ public ClassLoader getClassLoader(String codebase) --- 266,276 ---- /** * Gets a classloader for the given codebase and with the current * context classloader as parent. ! * * @param codebase ! * * @return a classloader for the given codebase ! * * @throws MalformedURLException if the codebase contains a malformed URL */ public ClassLoader getClassLoader(String codebase) *************** public class RMIClassLoaderImpl extends *** 283,305 **** CacheKey loaderKey = new CacheKey (codebase, Thread.currentThread().getContextClassLoader()); loader = (ClassLoader) cacheLoaders.get (loaderKey); ! if (loader == null) { //create an entry in cacheLoaders mapping a loader to codebases. // codebases are separated by " " StringTokenizer tok = new StringTokenizer (codebase, " "); ArrayList urls = new ArrayList(); ! while (tok.hasMoreTokens()) urls.add (new URL(tok.nextToken())); ! loader = new MyClassLoader((URL[]) urls.toArray(new URL [urls.size()]), Thread.currentThread().getContextClassLoader(), codebase); cacheLoaders.put (loaderKey, loader); } ! return loader; } --- 283,305 ---- CacheKey loaderKey = new CacheKey (codebase, Thread.currentThread().getContextClassLoader()); loader = (ClassLoader) cacheLoaders.get (loaderKey); ! if (loader == null) { //create an entry in cacheLoaders mapping a loader to codebases. // codebases are separated by " " StringTokenizer tok = new StringTokenizer (codebase, " "); ArrayList urls = new ArrayList(); ! while (tok.hasMoreTokens()) urls.add (new URL(tok.nextToken())); ! loader = new MyClassLoader((URL[]) urls.toArray(new URL [urls.size()]), Thread.currentThread().getContextClassLoader(), codebase); cacheLoaders.put (loaderKey, loader); } ! return loader; } *************** public class RMIClassLoaderImpl extends *** 315,352 **** public String getClassAnnotation(Class cl) { ClassLoader loader = cl.getClassLoader(); ! if (loader == null || loader == ClassLoader.getSystemClassLoader()) { return System.getProperty ("java.rmi.server.codebase"); } ! if (loader instanceof MyClassLoader) { return ((MyClassLoader) loader).getClassAnnotation(); } ! String s = (String) cacheAnnotations.get (loader); ! if (s != null) return s; ! if (loader instanceof URLClassLoader) { URL[] urls = ((URLClassLoader) loader).getURLs(); ! if (urls.length == 0) return null; ! CPStringBuilder annotation = new CPStringBuilder (64 * urls.length); ! for (int i = 0; i < urls.length; i++) { annotation.append (urls [i].toExternalForm()); annotation.append (' '); } ! s = annotation.toString(); cacheAnnotations.put (loader, s); return s; --- 315,352 ---- public String getClassAnnotation(Class cl) { ClassLoader loader = cl.getClassLoader(); ! if (loader == null || loader == ClassLoader.getSystemClassLoader()) { return System.getProperty ("java.rmi.server.codebase"); } ! if (loader instanceof MyClassLoader) { return ((MyClassLoader) loader).getClassAnnotation(); } ! String s = (String) cacheAnnotations.get (loader); ! if (s != null) return s; ! if (loader instanceof URLClassLoader) { URL[] urls = ((URLClassLoader) loader).getURLs(); ! if (urls.length == 0) return null; ! CPStringBuilder annotation = new CPStringBuilder (64 * urls.length); ! for (int i = 0; i < urls.length; i++) { annotation.append (urls [i].toExternalForm()); annotation.append (' '); } ! s = annotation.toString(); cacheAnnotations.put (loader, s); return s; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIDefaultSocketFactory.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIDefaultSocketFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIDefaultSocketFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIDefaultSocketFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.net.Socket; *** 43,59 **** import java.rmi.server.RMISocketFactory; public class RMIDefaultSocketFactory ! extends RMISocketFactory { public RMIDefaultSocketFactory() { } public Socket createSocket(String host, int port) throws IOException { ! return (new Socket(host, port)); } public ServerSocket createServerSocket(int port) throws IOException { ! return (new ServerSocket(port)); } } --- 43,59 ---- import java.rmi.server.RMISocketFactory; public class RMIDefaultSocketFactory ! extends RMISocketFactory { public RMIDefaultSocketFactory() { } public Socket createSocket(String host, int port) throws IOException { ! return (new Socket(host, port)); } public ServerSocket createServerSocket(int port) throws IOException { ! return (new ServerSocket(port)); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIHashes.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIHashes.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIHashes.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIHashes.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class RMIHashes *** 51,57 **** { //There're other places using DigestOutputStream to generate hash in classpath, but I think the way I used //here is more efficient, anyway, you can switch to DigestOutputStream by doing like "//or:" comments say. ! //or:add this statement: private static final NullOutputStream nullOutputStream = new NullOutputStream (); public static long getMethodHash(Method meth) { --- 51,57 ---- { //There're other places using DigestOutputStream to generate hash in classpath, but I think the way I used //here is more efficient, anyway, you can switch to DigestOutputStream by doing like "//or:" comments say. ! //or:add this statement: private static final NullOutputStream nullOutputStream = new NullOutputStream (); public static long getMethodHash(Method meth) { *************** public class RMIHashes *** 62,68 **** //or:remove this statement: DigestOutputStream digest_out = new DigestOutputStream (nullOutputStream, md); ByteArrayOutputStream digest_out = new ByteArrayOutputStream(); DataOutputStream data_out = new DataOutputStream (digest_out); ! CPStringBuilder sbuf = new CPStringBuilder(); sbuf.append(meth.getName()); sbuf.append('('); --- 62,68 ---- //or:remove this statement: DigestOutputStream digest_out = new DigestOutputStream (nullOutputStream, md); ByteArrayOutputStream digest_out = new ByteArrayOutputStream(); DataOutputStream data_out = new DataOutputStream (digest_out); ! CPStringBuilder sbuf = new CPStringBuilder(); sbuf.append(meth.getName()); sbuf.append('('); *************** public class RMIHashes *** 75,81 **** sbuf.append(TypeSignature.getEncodingOfClass(rcls)); else sbuf.append('V'); ! data_out.writeUTF (sbuf.toString()); data_out.flush(); data_out.close (); --- 75,81 ---- sbuf.append(TypeSignature.getEncodingOfClass(rcls)); else sbuf.append('V'); ! data_out.writeUTF (sbuf.toString()); data_out.flush(); data_out.close (); *************** public class RMIHashes *** 97,100 **** return clazz.hashCode (); } } - --- 97,99 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIIncomingThread.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIIncomingThread.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIIncomingThread.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIIncomingThread.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** this exception to your version of the li *** 35,58 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package gnu.java.rmi.server; - public class RMIIncomingThread extends Thread { - - private String clientHost = null; - - public RMIIncomingThread(Runnable runnable, String s_clientHost) { - super(runnable); - clientHost = s_clientHost; - } - - public String toString() { - return "RMIIncoming from " + clientHost + " " + super.toString(); - } - - public String getClientHost() { - return clientHost; - } - } --- 35,58 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package gnu.java.rmi.server; ! ! public class RMIIncomingThread extends Thread { ! ! private String clientHost = null; ! ! public RMIIncomingThread(Runnable runnable, String s_clientHost) { ! super(runnable); ! clientHost = s_clientHost; ! } ! ! public String toString() { ! return "RMIIncoming from " + clientHost + " " + super.toString(); ! } ! ! public String getClientHost() { ! return clientHost; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.net.MalformedURLException; *** 48,91 **** import java.rmi.server.RMIClassLoader; public class RMIObjectInputStream ! extends ObjectInputStream { public RMIObjectInputStream(InputStream strm) throws IOException { ! super(strm); ! enableResolveObject(true); } protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { ! try { return RMIClassLoader.loadClass( (String)getAnnotation(), desc.getName(), VMStackWalker.firstNonNullClassLoader()); ! } ! catch (MalformedURLException x) { ! throw new ClassNotFoundException(desc.getName(), x); ! } } //Separate it for override by MarshalledObject protected Object getAnnotation() ! throws IOException, ClassNotFoundException { return readObject(); } ! protected Class resolveProxyClass(String intfs[]) throws IOException, ClassNotFoundException { ! try { return RMIClassLoader.loadProxyClass( (String)getAnnotation(), intfs, VMStackWalker.firstNonNullClassLoader()); } ! catch (MalformedURLException x) { throw new ClassNotFoundException(null, x); } --- 48,91 ---- import java.rmi.server.RMIClassLoader; public class RMIObjectInputStream ! extends ObjectInputStream { public RMIObjectInputStream(InputStream strm) throws IOException { ! super(strm); ! enableResolveObject(true); } protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { ! try { return RMIClassLoader.loadClass( (String)getAnnotation(), desc.getName(), VMStackWalker.firstNonNullClassLoader()); ! } ! catch (MalformedURLException x) { ! throw new ClassNotFoundException(desc.getName(), x); ! } } //Separate it for override by MarshalledObject protected Object getAnnotation() ! throws IOException, ClassNotFoundException { return readObject(); } ! protected Class resolveProxyClass(String intfs[]) throws IOException, ClassNotFoundException { ! try { return RMIClassLoader.loadProxyClass( (String)getAnnotation(), intfs, VMStackWalker.firstNonNullClassLoader()); } ! catch (MalformedURLException x) { throw new ClassNotFoundException(null, x); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIObjectOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIObjectOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/RMIObjectOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/RMIObjectOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.server.RMIClassLoader; *** 47,57 **** import java.rmi.server.RemoteStub; public class RMIObjectOutputStream ! extends ObjectOutputStream { public RMIObjectOutputStream(OutputStream strm) throws IOException { ! super(strm); ! enableReplaceObject(true); } //Separate it for override by MarshalledObject --- 47,57 ---- import java.rmi.server.RemoteStub; public class RMIObjectOutputStream ! extends ObjectOutputStream { public RMIObjectOutputStream(OutputStream strm) throws IOException { ! super(strm); ! enableReplaceObject(true); } //Separate it for override by MarshalledObject *************** protected void setAnnotation(String anno *** 60,66 **** } protected void annotateClass(Class cls) throws IOException { ! setAnnotation(RMIClassLoader.getClassAnnotation(cls)); } protected void annotateProxyClass(Class cls) --- 60,66 ---- } protected void annotateClass(Class cls) throws IOException { ! setAnnotation(RMIClassLoader.getClassAnnotation(cls)); } protected void annotateProxyClass(Class cls) *************** protected void annotateProxyClass(Class *** 68,81 **** { annotateClass(cls); } ! protected Object replaceObject(Object obj) throws IOException { if((obj instanceof Remote) && !(obj instanceof RemoteStub)){ ! UnicastServerRef ref = UnicastServer.getExportedRef((Remote)obj); ! if (ref != null) ! return ref.getStub(); } return obj; } --- 68,81 ---- { annotateClass(cls); } ! protected Object replaceObject(Object obj) throws IOException { if((obj instanceof Remote) && !(obj instanceof RemoteStub)){ ! UnicastServerRef ref = UnicastServer.getExportedRef((Remote)obj); ! if (ref != null) ! return ref.getStub(); } return obj; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastConnection.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastConnection.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastConnection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastConnection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.ObjectOutputStream; *** 49,56 **** import java.net.Socket; import java.rmi.RemoteException; ! public class UnicastConnection ! implements Runnable, ProtocolConstants { UnicastConnectionManager manager; Socket sock; --- 49,56 ---- import java.net.Socket; import java.rmi.RemoteException; ! public class UnicastConnection ! implements Runnable, ProtocolConstants { UnicastConnectionManager manager; Socket sock; *************** long reviveTime = 0; *** 64,141 **** long expireTime = Long.MAX_VALUE; UnicastConnection(UnicastConnectionManager man, Socket sock) { ! this.manager = man; ! this.sock = sock; } void acceptConnection() throws IOException { //System.out.println("Accepting connection on " + sock); //Use BufferedXXXStream would be more efficient ! din = new DataInputStream(new BufferedInputStream(sock.getInputStream())); ! dout = new DataOutputStream(new BufferedOutputStream(sock.getOutputStream())); ! int sig = din.readInt(); ! if (sig != PROTOCOL_HEADER) { ! throw new IOException("bad protocol header"); ! } ! short ver = din.readShort(); ! if (ver != PROTOCOL_VERSION) { ! throw new IOException("bad protocol version"); ! } ! int protocol = din.readUnsignedByte(); ! if (protocol != SINGLE_OP_PROTOCOL) { ! // Send an ACK ! dout.writeByte(PROTOCOL_ACK); ! // Send my hostname and port ! dout.writeUTF(manager.serverName); ! dout.writeInt(manager.serverPort); ! dout.flush(); ! // Read their hostname and port ! String rhost = din.readUTF(); ! int rport = din.readInt(); ! } ! // Okay, ready to roll ... } void makeConnection(int protocol) throws IOException { //Use BufferedXXXStream would be more efficient ! din = new DataInputStream(new BufferedInputStream(sock.getInputStream())); ! dout = new DataOutputStream(new BufferedOutputStream(sock.getOutputStream())); ! // Send header ! dout.writeInt(PROTOCOL_HEADER); ! dout.writeShort(PROTOCOL_VERSION); ! dout.writeByte(protocol); dout.flush(); - - if (protocol != SINGLE_OP_PROTOCOL) { - // Get back ack. - int ack = din.readUnsignedByte(); - if (ack != PROTOCOL_ACK) { - throw new RemoteException("Unsupported protocol"); - } ! // Read in host and port ! String dicard_rhost = din.readUTF(); ! int discard_rport = din.readInt(); ! // Send them my endpoint ! dout.writeUTF(manager.serverName); ! dout.writeInt(manager.serverPort); ! dout.flush(); ! } ! // Okay, ready to roll ... } DataInputStream getDataInputStream() throws IOException { ! return (din); } DataOutputStream getDataOutputStream() throws IOException { ! return (dout); } /* --- 64,141 ---- long expireTime = Long.MAX_VALUE; UnicastConnection(UnicastConnectionManager man, Socket sock) { ! this.manager = man; ! this.sock = sock; } void acceptConnection() throws IOException { //System.out.println("Accepting connection on " + sock); //Use BufferedXXXStream would be more efficient ! din = new DataInputStream(new BufferedInputStream(sock.getInputStream())); ! dout = new DataOutputStream(new BufferedOutputStream(sock.getOutputStream())); ! int sig = din.readInt(); ! if (sig != PROTOCOL_HEADER) { ! throw new IOException("bad protocol header"); ! } ! short ver = din.readShort(); ! if (ver != PROTOCOL_VERSION) { ! throw new IOException("bad protocol version"); ! } ! int protocol = din.readUnsignedByte(); ! if (protocol != SINGLE_OP_PROTOCOL) { ! // Send an ACK ! dout.writeByte(PROTOCOL_ACK); ! // Send my hostname and port ! dout.writeUTF(manager.serverName); ! dout.writeInt(manager.serverPort); ! dout.flush(); ! // Read their hostname and port ! String rhost = din.readUTF(); ! int rport = din.readInt(); ! } ! // Okay, ready to roll ... } void makeConnection(int protocol) throws IOException { //Use BufferedXXXStream would be more efficient ! din = new DataInputStream(new BufferedInputStream(sock.getInputStream())); ! dout = new DataOutputStream(new BufferedOutputStream(sock.getOutputStream())); ! // Send header ! dout.writeInt(PROTOCOL_HEADER); ! dout.writeShort(PROTOCOL_VERSION); ! dout.writeByte(protocol); dout.flush(); ! if (protocol != SINGLE_OP_PROTOCOL) { ! // Get back ack. ! int ack = din.readUnsignedByte(); ! if (ack != PROTOCOL_ACK) { ! throw new RemoteException("Unsupported protocol"); ! } ! // Read in host and port ! String dicard_rhost = din.readUTF(); ! int discard_rport = din.readInt(); ! ! // Send them my endpoint ! dout.writeUTF(manager.serverName); ! dout.writeInt(manager.serverPort); ! dout.flush(); ! } ! // Okay, ready to roll ... } DataInputStream getDataInputStream() throws IOException { ! return (din); } DataOutputStream getDataOutputStream() throws IOException { ! return (dout); } /* *************** DataOutputStream getDataOutputStream() t *** 144,153 **** * */ ObjectInputStream getObjectInputStream() throws IOException { ! if (oin == null) { ! throw new IOException("no ObjectInputtream for reading more objects"); ! } ! return (oin); } /** --- 144,153 ---- * */ ObjectInputStream getObjectInputStream() throws IOException { ! if (oin == null) { ! throw new IOException("no ObjectInputtream for reading more objects"); ! } ! return (oin); } /** *************** ObjectInputStream getObjectInputStream() *** 156,162 **** * */ ObjectInputStream startObjectInputStream() throws IOException { ! return (oin = new RMIObjectInputStream(din)); } /** --- 156,162 ---- * */ ObjectInputStream startObjectInputStream() throws IOException { ! return (oin = new RMIObjectInputStream(din)); } /** *************** ObjectInputStream startObjectInputStream *** 165,174 **** * */ ObjectOutputStream getObjectOutputStream() throws IOException { ! if (oout == null) { ! throw new IOException("no ObjectOutputStream for sending more objects"); ! } ! return (oout); } /** --- 165,174 ---- * */ ObjectOutputStream getObjectOutputStream() throws IOException { ! if (oout == null) { ! throw new IOException("no ObjectOutputStream for sending more objects"); ! } ! return (oout); } /** *************** ObjectOutputStream getObjectOutputStream *** 177,199 **** * */ ObjectOutputStream startObjectOutputStream() throws IOException { ! return (oout = new RMIObjectOutputStream(dout)); ! } void disconnect() { ! try { ! if(oout != null) ! oout.close(); sock.close(); ! } ! catch (IOException _) { } ! oin = null; oout = null; ! din = null; ! dout = null; ! sock = null; } public static final long CONNECTION_TIMEOUT = 10000L; --- 177,199 ---- * */ ObjectOutputStream startObjectOutputStream() throws IOException { ! return (oout = new RMIObjectOutputStream(dout)); ! } void disconnect() { ! try { ! if(oout != null) ! oout.close(); sock.close(); ! } ! catch (IOException _) { } ! oin = null; oout = null; ! din = null; ! dout = null; ! sock = null; } public static final long CONNECTION_TIMEOUT = 10000L; *************** static void resetTime(UnicastConnection *** 215,229 **** */ public void run() { do{ ! try { ! UnicastServer.dispatch(this); //don't discardConnection explicitly, only when ! // exception happens or the connection's expireTime // comes } catch (Exception e ){ ! manager.discardConnection(this); break; ! } }while(true); } --- 215,229 ---- */ public void run() { do{ ! try { ! UnicastServer.dispatch(this); //don't discardConnection explicitly, only when ! // exception happens or the connection's expireTime // comes } catch (Exception e ){ ! manager.discardConnection(this); break; ! } }while(true); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastConnectionManager.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastConnectionManager.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastConnectionManager.java Wed Apr 18 17:07:48 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastConnectionManager.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Hashtable; *** 56,62 **** import java.util.Iterator; public class UnicastConnectionManager ! implements Runnable, ProtocolConstants { private static String localhost; // use different maps for server/client type UnicastConnectionManager --- 56,62 ---- import java.util.Iterator; public class UnicastConnectionManager ! implements Runnable, ProtocolConstants { private static String localhost; // use different maps for server/client type UnicastConnectionManager *************** static { *** 100,107 **** catch (UnknownHostException _) { localhost = "localhost"; } ! ! } //Only one scavenger thread running globally --- 100,107 ---- catch (UnknownHostException _) { localhost = "localhost"; } ! ! } //Only one scavenger thread running globally *************** private static void startScavenger(){ *** 134,140 **** if (UnicastConnection.isExpired(conn, l)){ conns.remove(last); conn.disconnect(); ! conn = null; }else liveon = true; //there're still live connections } --- 134,140 ---- if (UnicastConnection.isExpired(conn, l)){ conns.remove(last); conn.disconnect(); ! conn = null; }else liveon = true; //there're still live connections } *************** private static void startScavenger(){ *** 159,169 **** * Client UnicastConnectionManager constructor */ private UnicastConnectionManager(String host, int port, RMIClientSocketFactory csf) { ! ssock = null; ! serverName = host; ! serverPort = port; ! serverFactory = null; ! clientFactory = csf; connections = new ArrayList(); } --- 159,169 ---- * Client UnicastConnectionManager constructor */ private UnicastConnectionManager(String host, int port, RMIClientSocketFactory csf) { ! ssock = null; ! serverName = host; ! serverPort = port; ! serverFactory = null; ! clientFactory = csf; connections = new ArrayList(); } *************** private UnicastConnectionManager(String *** 172,195 **** */ private UnicastConnectionManager(int port, RMIServerSocketFactory ssf) throws RemoteException { ! try { ! ssock = ssf.createServerSocket(port); ! serverPort = ssock.getLocalPort(); ! } ! catch (IOException ioex) { ! ssock = null; ! serverPort = 0; ! throw new java.rmi.server.ExportException("can not create Server Socket on port " + port,ioex); ! } ! // Note that for compatibility the serverName is "localhost", ! // not UnicastConnectionManager.localhost, which is the name ! // of the local box. A server listening on localhost:port is ! // listening on the loopback interface, 127.0.0.1, but ! // UnicastConnectionManager.localhost is an externally ! // accessible IP address. ! serverName = "localhost"; ! serverFactory = ssf; ! clientFactory = null; } /** --- 172,195 ---- */ private UnicastConnectionManager(int port, RMIServerSocketFactory ssf) throws RemoteException { ! try { ! ssock = ssf.createServerSocket(port); ! serverPort = ssock.getLocalPort(); ! } ! catch (IOException ioex) { ! ssock = null; ! serverPort = 0; ! throw new java.rmi.server.ExportException("can not create Server Socket on port " + port,ioex); ! } ! // Note that for compatibility the serverName is "localhost", ! // not UnicastConnectionManager.localhost, which is the name ! // of the local box. A server listening on localhost:port is ! // listening on the loopback interface, 127.0.0.1, but ! // UnicastConnectionManager.localhost is an externally ! // accessible IP address. ! serverName = "localhost"; ! serverFactory = ssf; ! clientFactory = null; } /** *************** private UnicastConnectionManager(int por *** 198,228 **** */ public static synchronized UnicastConnectionManager getInstance(String host, int port, RMIClientSocketFactory csf) { //System.out.println("getInstance: " + host + "," + port + "," + csf); ! if (csf == null) { csf = defaultSocketFactory; ! } ! // change host name to host address to avoid name resolving issues ! try{ ! host = InetAddress.getByName(host).getHostAddress(); }catch(Exception _){} ! ! TripleKey key = new TripleKey(host, port, csf); ! UnicastConnectionManager man = (UnicastConnectionManager)clients.get(key); ! if (man == null) { ! man = new UnicastConnectionManager(host, port, csf); if (debug) { ncmanager++; System.out.println("\n\n ====== " + ncmanager + " client managers.\n\n"); } ! clients.put(key, man); ! // Detect if client and server are in the same VM, i.e., their keys are equal UnicastConnectionManager svrman = (UnicastConnectionManager)servers.get(key); if(svrman != null){ // server and client are in the same VM man.serverobj = svrman.serverobj; } ! } ! return (man); } /** --- 198,228 ---- */ public static synchronized UnicastConnectionManager getInstance(String host, int port, RMIClientSocketFactory csf) { //System.out.println("getInstance: " + host + "," + port + "," + csf); ! if (csf == null) { csf = defaultSocketFactory; ! } ! // change host name to host address to avoid name resolving issues ! try{ ! host = InetAddress.getByName(host).getHostAddress(); }catch(Exception _){} ! ! TripleKey key = new TripleKey(host, port, csf); ! UnicastConnectionManager man = (UnicastConnectionManager)clients.get(key); ! if (man == null) { ! man = new UnicastConnectionManager(host, port, csf); if (debug) { ncmanager++; System.out.println("\n\n ====== " + ncmanager + " client managers.\n\n"); } ! clients.put(key, man); ! // Detect if client and server are in the same VM, i.e., their keys are equal UnicastConnectionManager svrman = (UnicastConnectionManager)servers.get(key); if(svrman != null){ // server and client are in the same VM man.serverobj = svrman.serverobj; } ! } ! return (man); } /** *************** public static synchronized UnicastConnec *** 231,280 **** */ public static synchronized UnicastConnectionManager getInstance(int port, RMIServerSocketFactory ssf) throws RemoteException { //System.out.println("getInstance: " + port + "," + ssf); ! if (ssf == null) { ssf = defaultSocketFactory; ! } ! TripleKey key = new TripleKey(localhost, port, ssf); ! UnicastConnectionManager man = (UnicastConnectionManager)servers.get(key); ! if (man == null) { ! man = new UnicastConnectionManager(port, ssf); if (debug) { nsmanager++; System.out.println("\n\n ****** " + nsmanager + " server managers.\n\n"); } ! // The provided port might not be the set port. ! key.port = man.serverPort; ! servers.put(key, man); ! } ! return (man); } /** * Get a connection from this manager. */ public UnicastConnection getConnection() throws IOException { ! if (ssock == null) { ! return (getClientConnection()); ! } ! else { ! return (getServerConnection()); ! } } /** * Accept a connection to this server. */ private UnicastConnection getServerConnection() throws IOException { ! Socket sock = ssock.accept(); sock.setTcpNoDelay(true); //?? ! UnicastConnection conn = new UnicastConnection(this, sock); ! conn.acceptConnection(); if (debug){ nssock++; System.out.println("\n\n ****** " + nssock + " server socks.\n\n"); } //System.out.println("Server connection " + sock); ! return (conn); } /** --- 231,280 ---- */ public static synchronized UnicastConnectionManager getInstance(int port, RMIServerSocketFactory ssf) throws RemoteException { //System.out.println("getInstance: " + port + "," + ssf); ! if (ssf == null) { ssf = defaultSocketFactory; ! } ! TripleKey key = new TripleKey(localhost, port, ssf); ! UnicastConnectionManager man = (UnicastConnectionManager)servers.get(key); ! if (man == null) { ! man = new UnicastConnectionManager(port, ssf); if (debug) { nsmanager++; System.out.println("\n\n ****** " + nsmanager + " server managers.\n\n"); } ! // The provided port might not be the set port. ! key.port = man.serverPort; ! servers.put(key, man); ! } ! return (man); } /** * Get a connection from this manager. */ public UnicastConnection getConnection() throws IOException { ! if (ssock == null) { ! return (getClientConnection()); ! } ! else { ! return (getServerConnection()); ! } } /** * Accept a connection to this server. */ private UnicastConnection getServerConnection() throws IOException { ! Socket sock = ssock.accept(); sock.setTcpNoDelay(true); //?? ! UnicastConnection conn = new UnicastConnection(this, sock); ! conn.acceptConnection(); if (debug){ nssock++; System.out.println("\n\n ****** " + nssock + " server socks.\n\n"); } //System.out.println("Server connection " + sock); ! return (conn); } /** *************** private UnicastConnection getServerConne *** 283,319 **** private UnicastConnection getClientConnection() throws IOException { ArrayList conns = connections; UnicastConnection conn; ! synchronized(conns) { int nconn = conns.size() - 1; ! // if there're free connections in connection pool if(nconn >= 0) { conn = (UnicastConnection)conns.get(nconn); //Should we check if conn is alive using Ping?? conns.remove(nconn); ! // Check if the connection is already expired long l = System.currentTimeMillis(); if (!UnicastConnection.isExpired(conn, l)){ return conn; }else { conn.disconnect(); ! conn = null; } } } ! ! Socket sock = clientFactory.createSocket(serverName, serverPort); conn = new UnicastConnection(this, sock); ! conn.makeConnection(DEFAULT_PROTOCOL); ! if (debug) { ncsock++; System.out.println("\n\n ====== " + ncsock + " client socks.\n\n"); } ! return (conn); } /** --- 283,319 ---- private UnicastConnection getClientConnection() throws IOException { ArrayList conns = connections; UnicastConnection conn; ! synchronized(conns) { int nconn = conns.size() - 1; ! // if there're free connections in connection pool if(nconn >= 0) { conn = (UnicastConnection)conns.get(nconn); //Should we check if conn is alive using Ping?? conns.remove(nconn); ! // Check if the connection is already expired long l = System.currentTimeMillis(); if (!UnicastConnection.isExpired(conn, l)){ return conn; }else { conn.disconnect(); ! conn = null; } } } ! ! Socket sock = clientFactory.createSocket(serverName, serverPort); conn = new UnicastConnection(this, sock); ! conn.makeConnection(DEFAULT_PROTOCOL); ! if (debug) { ncsock++; System.out.println("\n\n ====== " + ncsock + " client socks.\n\n"); } ! return (conn); } /** *************** public void discardConnection(UnicastCon *** 332,344 **** //System.out.println("Discarding connection " + conn); //conn.disconnect(); if (ssock != null) //server connection ! conn.disconnect(); else { // To client connection, we'd like to return back to pool UnicastConnection.resetTime(conn); //Ensure there're only one scavenger globally synchronized(GLOBAL_LOCK) { ! connections.add(conn); //borrow this lock to garantee thread safety if (scavenger == null) startScavenger(); } --- 332,344 ---- //System.out.println("Discarding connection " + conn); //conn.disconnect(); if (ssock != null) //server connection ! conn.disconnect(); else { // To client connection, we'd like to return back to pool UnicastConnection.resetTime(conn); //Ensure there're only one scavenger globally synchronized(GLOBAL_LOCK) { ! connections.add(conn); //borrow this lock to garantee thread safety if (scavenger == null) startScavenger(); } *************** public void discardConnection(UnicastCon *** 350,364 **** * already got one running. */ public void startServer() { ! synchronized(this) { ! if (ssock == null || serverThread != null) { ! return; ! } ! serverThread = new Thread(this); // The following is not necessary when java.lang.Thread's constructor do this. // serverThread.setContextClassLoader(Thread.currentThread().getContextClassLoader()); ! } ! serverThread.start(); } /** --- 350,364 ---- * already got one running. */ public void startServer() { ! synchronized(this) { ! if (ssock == null || serverThread != null) { ! return; ! } ! serverThread = new Thread(this); // The following is not necessary when java.lang.Thread's constructor do this. // serverThread.setContextClassLoader(Thread.currentThread().getContextClassLoader()); ! } ! serverThread.start(); } /** *************** public void startServer() { *** 366,377 **** */ public void stopServer() { synchronized(this) { ! if(serverThread != null){ ! serverThread = null; ! try{ ! ssock.close(); ! }catch(Exception _){} ! } } } --- 366,377 ---- */ public void stopServer() { synchronized(this) { ! if(serverThread != null){ ! serverThread = null; ! try{ ! ssock.close(); ! }catch(Exception _){} ! } } } *************** public void stopServer() { *** 379,404 **** * Server thread for connection manager. */ public void run() { ! for (;serverThread != null;) { // if serverThread==null, then exit thread ! try { //System.out.println("Waiting for connection on " + serverPort); ! UnicastConnection conn = getServerConnection(); ! // get address of remote host for the RMIIncomingThread object ! String remoteHost = null; ! if (conn.sock != null) { ! remoteHost = conn.sock.getInetAddress().getHostAddress(); ! } ! // use a thread pool to improve performance //ConnectionRunnerPool.dispatchConnection(conn); (new RMIIncomingThread(conn, remoteHost)).start(); ! // (new Thread(conn)).start(); ! } ! catch (Exception e) { e.printStackTrace(); ! } ! } } /** --- 379,404 ---- * Server thread for connection manager. */ public void run() { ! for (;serverThread != null;) { // if serverThread==null, then exit thread ! try { //System.out.println("Waiting for connection on " + serverPort); ! UnicastConnection conn = getServerConnection(); ! // get address of remote host for the RMIIncomingThread object ! String remoteHost = null; ! if (conn.sock != null) { ! remoteHost = conn.sock.getInetAddress().getHostAddress(); ! } ! // use a thread pool to improve performance //ConnectionRunnerPool.dispatchConnection(conn); (new RMIIncomingThread(conn, remoteHost)).start(); ! // (new Thread(conn)).start(); ! } ! catch (Exception e) { e.printStackTrace(); ! } ! } } /** *************** int port; *** 432,440 **** Object other; TripleKey(String host, int port, Object other) { ! this.host = host; ! this.port = port; ! this.other = other; } /** --- 432,440 ---- Object other; TripleKey(String host, int port, Object other) { ! this.host = host; ! this.port = port; ! this.other = other; } /** *************** TripleKey(String host, int port, Object *** 442,460 **** * this has unusual matching behaviour. */ public int hashCode() { ! return (host.hashCode() ^ other.hashCode()); } public boolean equals(Object obj) { ! if (obj instanceof TripleKey) { ! TripleKey other = (TripleKey)obj; ! if (this.host.equals(other.host) && ! this.other == other.other && (this.port == other.port /* || this.port == 0 || other.port == 0*/)) { ! return (true); ! } ! } ! return (false); } /** --- 442,460 ---- * this has unusual matching behaviour. */ public int hashCode() { ! return (host.hashCode() ^ other.hashCode()); } public boolean equals(Object obj) { ! if (obj instanceof TripleKey) { ! TripleKey other = (TripleKey)obj; ! if (this.host.equals(other.host) && ! this.other == other.other && (this.port == other.port /* || this.port == 0 || other.port == 0*/)) { ! return (true); ! } ! } ! return (false); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastRef.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastRef.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastRef.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastRef.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class UnicastRef *** 461,467 **** { return ("UnicastRef"); } ! /** * Return the string representing the remote reference information. */ --- 461,467 ---- { return ("UnicastRef"); } ! /** * Return the string representing the remote reference information. */ *************** public class UnicastRef *** 497,503 **** /** * Check if this UnicastRef points to the object as the passed UnicastRef. * Both the object Id and manager must be the same. ! * * @return true if the passed reference points to the same remote object as * this reference, false otherwise. */ --- 497,503 ---- /** * Check if this UnicastRef points to the object as the passed UnicastRef. * Both the object Id and manager must be the same. ! * * @return true if the passed reference points to the same remote object as * this reference, false otherwise. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastRemoteCall.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastRemoteCall.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastRemoteCall.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastRemoteCall.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.server.UID; *** 54,60 **** import java.util.Vector; public class UnicastRemoteCall ! implements RemoteCall, ProtocolConstants { private UnicastConnection conn; --- 54,60 ---- import java.util.Vector; public class UnicastRemoteCall ! implements RemoteCall, ProtocolConstants { private UnicastConnection conn; *************** public class UnicastRemoteCall *** 89,100 **** this.hash = hash; this.objid = objid; } ! UnicastConnection getConnection() { return conn; } ! public ObjectOutput getOutputStream() throws IOException { if (vec == null) --- 89,100 ---- this.hash = hash; this.objid = objid; } ! UnicastConnection getConnection() { return conn; } ! public ObjectOutput getOutputStream() throws IOException { if (vec == null) *************** public class UnicastRemoteCall *** 106,138 **** { if (vec != null) { ! oout = conn.getObjectOutputStream(); ! ! for (int i = 0; i < vec.size(); i += 2) ! { ! boolean primitive = ((Boolean)vec.elementAt(i)).booleanValue(); ! Object data = vec.elementAt(i+1); ! // No type, this is ! if (!primitive) ! oout.writeObject(data); ! else ! { ! if (data instanceof Boolean) ! oout.writeBoolean(((Boolean)data).booleanValue()); ! else if (data instanceof Character) ! oout.writeChar(((Character)data).charValue()); ! else if (data instanceof Byte) ! oout.writeByte(((Byte)data).byteValue()); ! else if (data instanceof Short) ! oout.writeShort(((Short)data).shortValue()); ! else if (data instanceof Integer) ! oout.writeInt(((Integer)data).intValue()); ! else if (data instanceof Long) ! oout.writeLong(((Long)data).longValue()); ! } ! } ! vec = null; } if(oout != null) oout.flush(); --- 106,138 ---- { if (vec != null) { ! oout = conn.getObjectOutputStream(); ! for (int i = 0; i < vec.size(); i += 2) ! { ! boolean primitive = ((Boolean)vec.elementAt(i)).booleanValue(); ! Object data = vec.elementAt(i+1); ! ! // No type, this is ! if (!primitive) ! oout.writeObject(data); ! else ! { ! if (data instanceof Boolean) ! oout.writeBoolean(((Boolean)data).booleanValue()); ! else if (data instanceof Character) ! oout.writeChar(((Character)data).charValue()); ! else if (data instanceof Byte) ! oout.writeByte(((Byte)data).byteValue()); ! else if (data instanceof Short) ! oout.writeShort(((Short)data).shortValue()); ! else if (data instanceof Integer) ! oout.writeInt(((Integer)data).intValue()); ! else if (data instanceof Long) ! oout.writeLong(((Long)data).longValue()); ! } ! } ! vec = null; } if(oout != null) oout.flush(); *************** public class UnicastRemoteCall *** 142,155 **** * * (re)starts ObjectInputStream * ! */ public ObjectInput startInputStream() throws IOException { ! if (conn != null) { ! return (oin = conn.startObjectInputStream()); ! } else { ! return getInputStream(); // dummy Input Stream ! } } --- 142,155 ---- * * (re)starts ObjectInputStream * ! */ public ObjectInput startInputStream() throws IOException { ! if (conn != null) { ! return (oin = conn.startObjectInputStream()); ! } else { ! return getInputStream(); // dummy Input Stream ! } } *************** public class UnicastRemoteCall *** 157,171 **** { if (conn != null) { ! if(oin == null) ! return (oin = conn.getObjectInputStream()); ! else ! return oin; } else { ! ptr = 0; ! return (new DummyObjectInputStream()); } } --- 157,171 ---- { if (conn != null) { ! if(oin == null) ! return (oin = conn.getObjectInputStream()); ! else ! return oin; } else { ! ptr = 0; ! return (new DummyObjectInputStream()); } } *************** public class UnicastRemoteCall *** 180,213 **** vec = new Vector(); return new DummyObjectOutputStream(); } ! public void executeCall() throws Exception { byte returncode; ObjectInput oin; ! // signal the call when constructing try { ! DataOutputStream dout = conn.getDataOutputStream(); ! dout.write(MESSAGE_CALL); ! ! oout = conn.startObjectOutputStream(); // (re)start ObjectOutputStream ! objid.write(oout); ! oout.writeInt(opnum); ! oout.writeLong(hash); } catch(IOException ex) { ! throw new MarshalException("Try to write header but failed.", ex); } try { ! releaseOutputStream(); ! DataInputStream din = conn.getDataInputStream(); if (din.readByte() != MESSAGE_CALL_ACK) ! throw new RemoteException("Call not acked"); oin = startInputStream(); returncode = oin.readByte(); --- 180,213 ---- vec = new Vector(); return new DummyObjectOutputStream(); } ! public void executeCall() throws Exception { byte returncode; ObjectInput oin; ! // signal the call when constructing try { ! DataOutputStream dout = conn.getDataOutputStream(); ! dout.write(MESSAGE_CALL); ! ! oout = conn.startObjectOutputStream(); // (re)start ObjectOutputStream ! objid.write(oout); ! oout.writeInt(opnum); ! oout.writeLong(hash); } catch(IOException ex) { ! throw new MarshalException("Try to write header but failed.", ex); } try { ! releaseOutputStream(); ! DataInputStream din = conn.getDataInputStream(); if (din.readByte() != MESSAGE_CALL_ACK) ! throw new RemoteException("Call not acked"); oin = startInputStream(); returncode = oin.readByte(); *************** public class UnicastRemoteCall *** 217,247 **** { throw new UnmarshalException("Try to read header but failed:", ex); } ! //check return code switch(returncode) { case RETURN_ACK: //it's ok ! return; case RETURN_NACK: ! Object returnobj; ! try ! { ! returnobj = oin.readObject(); ! } ! catch(Exception ex2) ! { ! throw new UnmarshalException ! ("Try to read exception object but failed", ex2); ! } ! ! if(!(returnobj instanceof Exception)) ! throw new UnmarshalException("Should be Exception type here: " ! + returnobj); ! throw (Exception)returnobj; ! default: ! throw new UnmarshalException("Invalid return code"); } } --- 217,247 ---- { throw new UnmarshalException("Try to read header but failed:", ex); } ! //check return code switch(returncode) { case RETURN_ACK: //it's ok ! return; case RETURN_NACK: ! Object returnobj; ! try ! { ! returnobj = oin.readObject(); ! } ! catch(Exception ex2) ! { ! throw new UnmarshalException ! ("Try to read exception object but failed", ex2); ! } ! ! if(!(returnobj instanceof Exception)) ! throw new UnmarshalException("Should be Exception type here: " ! + returnobj); ! throw (Exception)returnobj; ! default: ! throw new UnmarshalException("Invalid return code"); } } *************** public class UnicastRemoteCall *** 254,260 **** { return vec.size() > 0; } ! Object returnValue() { // This is not the first one (Boolean) but the second. --- 254,260 ---- { return vec.size() > 0; } ! Object returnValue() { // This is not the first one (Boolean) but the second. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastRemoteStub.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastRemoteStub.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastRemoteStub.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastRemoteStub.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.server.RemoteRef; *** 41,50 **** import java.rmi.server.RemoteStub; public class UnicastRemoteStub ! extends RemoteStub { public static void setStubRef(RemoteStub stub, RemoteRef ref) { ! setRef(stub, ref); } } --- 41,50 ---- import java.rmi.server.RemoteStub; public class UnicastRemoteStub ! extends RemoteStub { public static void setStubRef(RemoteStub stub, RemoteRef ref) { ! setRef(stub, ref); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastServer.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastServer.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastServer.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastServer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class UnicastServer *** 75,95 **** * Mapping obj itself to server ref by identity. */ static private Map refcache = Collections.synchronizedMap(new WeakIdentityHashMap()); ! /** * Mapping the registered activatable objects into they server references. */ public static Map actIds = new Hashtable(); ! /** ! * The reference to the local distributed garbage collector. */ static private DGCImpl dgc; ! /** * Connect this server reference to the server, allowing the local * implementation, associated with this object, to receive remote calls. ! * * @param obj the server reference, encloses the (usually local) remote * object. */ --- 75,95 ---- * Mapping obj itself to server ref by identity. */ static private Map refcache = Collections.synchronizedMap(new WeakIdentityHashMap()); ! /** * Mapping the registered activatable objects into they server references. */ public static Map actIds = new Hashtable(); ! /** ! * The reference to the local distributed garbage collector. */ static private DGCImpl dgc; ! /** * Connect this server reference to the server, allowing the local * implementation, associated with this object, to receive remote calls. ! * * @param obj the server reference, encloses the (usually local) remote * object. */ *************** public class UnicastServer *** 100,106 **** refcache.put(obj.myself, obj); obj.manager.startServer(); } ! /** * Register the activatable object into the table of the activatable * objects. --- 100,106 ---- refcache.put(obj.myself, obj); obj.manager.startServer(); } ! /** * Register the activatable object into the table of the activatable * objects. *************** public class UnicastServer *** 109,115 **** { actIds.put(ref.actId, ref); } ! /** * Export tha activatable object. The object id is placed into the map, * but the object itself not. This is enough to deliver call to --- 109,115 ---- { actIds.put(ref.actId, ref); } ! /** * Export tha activatable object. The object id is placed into the map, * but the object itself not. This is enough to deliver call to *************** public class UnicastServer *** 123,130 **** ref.manager.startServer(); actIds.put(ref.actId, ref); } ! ! /** * Get the activatable server reference that is handling activation of the * given activation id. --- 123,130 ---- ref.manager.startServer(); actIds.put(ref.actId, ref); } ! ! /** * Get the activatable server reference that is handling activation of the * given activation id. *************** public class UnicastServer *** 137,151 **** throw new ActivationException(id + " was not registered with this server"); return ref; } ! /** * Unregister the previously registered activatable server reference. */ public static void unregisterActivatable(ActivationID id) { ! actIds.remove(id); } ! // FIX ME: I haven't handle force parameter /** * Remove the given server reference. The remote object, associated with --- 137,151 ---- throw new ActivationException(id + " was not registered with this server"); return ref; } ! /** * Unregister the previously registered activatable server reference. */ public static void unregisterActivatable(ActivationID id) { ! actIds.remove(id); } ! // FIX ME: I haven't handle force parameter /** * Remove the given server reference. The remote object, associated with *************** public class UnicastServer *** 156,162 **** objects.remove(obj.objid); refcache.remove(obj.myself); obj.manager.stopServer(); ! if (obj instanceof ActivatableServerRef) { ActivationID id = ((ActivatableServerRef) obj).actId; --- 156,162 ---- objects.remove(obj.objid); refcache.remove(obj.myself); obj.manager.stopServer(); ! if (obj instanceof ActivatableServerRef) { ActivationID id = ((ActivatableServerRef) obj).actId; *************** public class UnicastServer *** 164,178 **** } return true; } ! /** * Get the exported reference of the given Remote. The identity map is used, * the non-null value will only be returned if exactly the passed remote ! * is part of the registered UnicastServerRef. ! * ! * @param remote the Remote that is connected to this server via * {@link UnicastServerRef}. ! * * @return the UnicastServerRef that is used to connect the passed * remote with this server or null, if this Remote is not connected * to this server. --- 164,178 ---- } return true; } ! /** * Get the exported reference of the given Remote. The identity map is used, * the non-null value will only be returned if exactly the passed remote ! * is part of the registered UnicastServerRef. ! * ! * @param remote the Remote that is connected to this server via * {@link UnicastServerRef}. ! * * @return the UnicastServerRef that is used to connect the passed * remote with this server or null, if this Remote is not connected * to this server. *************** public class UnicastServer *** 186,192 **** * Get the server references to the object, previously exported via this * server. As the identity map is scanned, more than one reference may match * this Id. ! * * @param id the id of the exported object * @return the server reference to this object, null if none. */ --- 186,192 ---- * Get the server references to the object, previously exported via this * server. As the identity map is scanned, more than one reference may match * this Id. ! * * @param id the id of the exported object * @return the server reference to this object, null if none. */ *************** public class UnicastServer *** 244,253 **** throw new Exception("bad method type"); } } ! /** * This method is invoked when the remote call is received. The method ! * dispatches the call to the responsible object, connected to this * server via UnicastServerReference. */ private static void incomingMessageCall(UnicastConnection conn) --- 244,253 ---- throw new Exception("bad method type"); } } ! /** * This method is invoked when the remote call is received. The method ! * dispatches the call to the responsible object, connected to this * server via UnicastServerReference. */ private static void incomingMessageCall(UnicastConnection conn) *************** public class UnicastServer *** 287,293 **** catch (Error e) { returnval = new ServerError( ! "Server error, ObjID: " + objid + ", method: " + method + ", hash: "+ hash, e); returncode = RETURN_NACK; } --- 287,293 ---- catch (Error e) { returnval = new ServerError( ! "Server error, ObjID: " + objid + ", method: " + method + ", hash: "+ hash, e); returncode = RETURN_NACK; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastServerRef.java gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastServerRef.java *** gcc-4.5.2/libjava/classpath/gnu/java/rmi/server/UnicastServerRef.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/rmi/server/UnicastServerRef.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Iterator; *** 60,98 **** /** * This class connects the local, remotely available (exported) object to ! * the local RMI server that accepts the remote calls. */ public class UnicastServerRef extends UnicastRef ! { /** * Use GNU Classpath v 0.20 SVUID for interoperability */ private static final long serialVersionUID = - 5585608108300801246L; ! /** ! * The class array, defining parameters of the jdk 1.2 RMI stub constructor. */ private static final Class[] stubprototype = new Class[] { RemoteRef.class }; ! /** * The exported remote object itself. */ Remote myself; // save the remote object itself ! /** * The skeleton (if any), associated with the exported remote object. */ protected Skeleton skel; ! /** * The stub, associated with the exported remote object (may be proxy class). */ protected Remote stub; ! /** ! * The method table (RMI hash code to method) of the methods of the * exported object. */ protected Hashtable methods = new Hashtable(); --- 60,98 ---- /** * This class connects the local, remotely available (exported) object to ! * the local RMI server that accepts the remote calls. */ public class UnicastServerRef extends UnicastRef ! { /** * Use GNU Classpath v 0.20 SVUID for interoperability */ private static final long serialVersionUID = - 5585608108300801246L; ! /** ! * The class array, defining parameters of the jdk 1.2 RMI stub constructor. */ private static final Class[] stubprototype = new Class[] { RemoteRef.class }; ! /** * The exported remote object itself. */ Remote myself; // save the remote object itself ! /** * The skeleton (if any), associated with the exported remote object. */ protected Skeleton skel; ! /** * The stub, associated with the exported remote object (may be proxy class). */ protected Remote stub; ! /** ! * The method table (RMI hash code to method) of the methods of the * exported object. */ protected Hashtable methods = new Hashtable(); *************** public class UnicastServerRef *** 110,124 **** super(id); manager = UnicastConnectionManager.getInstance(port, ssf); } ! /** * Export the object and return its remote stub. The method tries to locate * existing stubs and skeletons. If this fails, the method instantiates the * proxy stub class. ! * ! * Stubs and skeletons are always ignored (even if present) if the * java.rmi.server.ignoreStubClasses property is set to true. ! * * @param obj the object being exported. * @return the stub (existing class or proxy) of the exported object. * @throws RemoteException if the export failed due any reason --- 110,124 ---- super(id); manager = UnicastConnectionManager.getInstance(port, ssf); } ! /** * Export the object and return its remote stub. The method tries to locate * existing stubs and skeletons. If this fails, the method instantiates the * proxy stub class. ! * ! * Stubs and skeletons are always ignored (even if present) if the * java.rmi.server.ignoreStubClasses property is set to true. ! * * @param obj the object being exported. * @return the stub (existing class or proxy) of the exported object. * @throws RemoteException if the export failed due any reason *************** public class UnicastServerRef *** 133,149 **** manager.serverobj = obj; String ignoreStubs; ! ! ClassLoader loader =obj.getClass().getClassLoader(); ! // Stubs are always searched for the bootstrap classes that may have // obsolete pattern and may still need also skeletons. if (loader==null) ignoreStubs = "false"; else ! ignoreStubs = System.getProperty("java.rmi.server.ignoreStubClasses", "false"); ! if (! ignoreStubs.equals("true")) { // Find and install the stub --- 133,149 ---- manager.serverobj = obj; String ignoreStubs; ! ! ClassLoader loader =obj.getClass().getClassLoader(); ! // Stubs are always searched for the bootstrap classes that may have // obsolete pattern and may still need also skeletons. if (loader==null) ignoreStubs = "false"; else ! ignoreStubs = System.getProperty("java.rmi.server.ignoreStubClasses", "false"); ! if (! ignoreStubs.equals("true")) { // Find and install the stub *************** public class UnicastServerRef *** 172,192 **** return stub; } ! /** * Get the stub (actual class or proxy) of the exported remote object. ! * * @return the remote stub (null if exportObject has not been called). */ public Remote getStub() { return stub; } ! /** ! * Unexport the object (remove methods from the method hashcode table * and call UnicastServer.unexportObject. ! * * @param obj the object being unexported * @param force passed to the UnicastServer.unexportObject. * @return value, returned by the UnicastServer.unexportObject. --- 172,192 ---- return stub; } ! /** * Get the stub (actual class or proxy) of the exported remote object. ! * * @return the remote stub (null if exportObject has not been called). */ public Remote getStub() { return stub; } ! /** ! * Unexport the object (remove methods from the method hashcode table * and call UnicastServer.unexportObject. ! * * @param obj the object being unexported * @param force passed to the UnicastServer.unexportObject. * @return value, returned by the UnicastServer.unexportObject. *************** public class UnicastServerRef *** 202,208 **** * Return the class in the hierarchy for that the stub class is defined. * The Subs/Skels might not there for the actual class, but maybe for one of * the superclasses. ! * * @return the class having stub defined, null if none. */ protected Class findStubSkelClass(Class startCls) --- 202,208 ---- * Return the class in the hierarchy for that the stub class is defined. * The Subs/Skels might not there for the actual class, but maybe for one of * the superclasses. ! * * @return the class having stub defined, null if none. */ protected Class findStubSkelClass(Class startCls) *************** public class UnicastServerRef *** 231,247 **** } } } ! /** ! * Get the helper (assisting) class with the given type. ! * * @param cls the class, for that the helper class is requested. This class * and the requested helper class must share the same class loader. ! * * @param type the type of the assisting helper. The only currently supported * non deprecated value is "_Stub" (load jdk 1.1 or 1.2 RMI stub). Another * (deprecated) value is "_Skel" (load skeleton). ! * * @return the instantiated instance of the helper class or null if the * helper class cannot be found or instantiated. */ --- 231,247 ---- } } } ! /** ! * Get the helper (assisting) class with the given type. ! * * @param cls the class, for that the helper class is requested. This class * and the requested helper class must share the same class loader. ! * * @param type the type of the assisting helper. The only currently supported * non deprecated value is "_Stub" (load jdk 1.1 or 1.2 RMI stub). Another * (deprecated) value is "_Skel" (load skeleton). ! * * @return the instantiated instance of the helper class or null if the * helper class cannot be found or instantiated. */ *************** public class UnicastServerRef *** 303,316 **** { return RemoteServer.getClientHost(); } ! /** * Build the method has code table and put it into {@link #methods} * (mapping RMI hashcode tos method). The same method is used to remove * the table. ! * ! * @param cls the class for that the method table is built. ! * @param build if true, the class methods are added to the table. If * false, they are removed from the table. */ protected void buildMethodHash(Class cls, boolean build) --- 303,316 ---- { return RemoteServer.getClientHost(); } ! /** * Build the method has code table and put it into {@link #methods} * (mapping RMI hashcode tos method). The same method is used to remove * the table. ! * ! * @param cls the class for that the method table is built. ! * @param build if true, the class methods are added to the table. If * false, they are removed from the table. */ protected void buildMethodHash(Class cls, boolean build) *************** public class UnicastServerRef *** 342,348 **** else return null; } ! /** * This method is called from the {@link UnicastServer#incomingMessageCall} * to deliver the remote call to this object. --- 342,348 ---- else return null; } ! /** * This method is called from the {@link UnicastServer#incomingMessageCall} * to deliver the remote call to this object. *************** public class UnicastServerRef *** 422,428 **** { if (skel == null) throw new NoSuchMethodException("JDK 1.1 call - Skeleton required"); ! UnicastRemoteCall call = new UnicastRemoteCall(conn); skel.dispatch(myself, call, method, hash); if (! call.isReturnValue()) --- 422,428 ---- { if (skel == null) throw new NoSuchMethodException("JDK 1.1 call - Skeleton required"); ! UnicastRemoteCall call = new UnicastRemoteCall(conn); skel.dispatch(myself, call, method, hash); if (! call.isReturnValue()) *************** public class UnicastServerRef *** 431,446 **** return (call.returnValue()); } } ! /** * Create the 1.2 proxy stub in the case when the pre-generated stub is not * available of the system is explicitly instructed to use proxy stubs. ! * * @param stubFor the class for that the proxy class must be constructed. * @param reference the remote reference, used to find the given object ! * * @return the applicable proxy stub. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ Remote createProxyStub(Class stubFor, RemoteRef reference) --- 431,446 ---- return (call.returnValue()); } } ! /** * Create the 1.2 proxy stub in the case when the pre-generated stub is not * available of the system is explicitly instructed to use proxy stubs. ! * * @param stubFor the class for that the proxy class must be constructed. * @param reference the remote reference, used to find the given object ! * * @return the applicable proxy stub. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ Remote createProxyStub(Class stubFor, RemoteRef reference) *************** public class UnicastServerRef *** 467,483 **** for (int i = 0; i < intfs.length; i++) intfs[i] = (Class) it.next(); ! ! RemoteObjectInvocationHandler handler = new RemoteObjectInvocationHandler(reference); ! ! Object proxy = Proxy.newProxyInstance(stubFor.getClassLoader(), intfs, handler); return (Remote) proxy; } - - - } --- 467,481 ---- for (int i = 0; i < intfs.length; i++) intfs[i] = (Class) it.next(); ! ! RemoteObjectInvocationHandler handler = new RemoteObjectInvocationHandler(reference); ! ! Object proxy = Proxy.newProxyInstance(stubFor.getClassLoader(), intfs, handler); return (Remote) proxy; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/Engine.java gcc-4.6.0/libjava/classpath/gnu/java/security/Engine.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/Engine.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/Engine.java Tue Jan 11 19:46:05 2011 *************** import java.util.Enumeration; *** 58,64 **** * represents. * * @see Provider ! * @author Casey Marshall */ public final class Engine { --- 58,64 ---- * represents. * * @see Provider ! * @author Casey Marshall */ public final class Engine { *************** public final class Engine *** 85,91 **** * Return the implementation for algorithm for service service * from provider. The service is e.g. "Signature", and the algorithm * "DSA". ! * * @param service The service name. * @param algorithm The name of the algorithm to get. * @param provider The provider to get the implementation from. --- 85,91 ---- * Return the implementation for algorithm for service service * from provider. The service is e.g. "Signature", and the algorithm * "DSA". ! * * @param service The service name. * @param algorithm The name of the algorithm to get. * @param provider The provider to get the implementation from. *************** public final class Engine *** 111,117 **** * constructor (which cannot be null; pass a zero-length array if the SPI * takes no arguments). The service is e.g. "Signature", and the algorithm * "DSA". ! * * @param service The service name. * @param algorithm The name of the algorithm to get. * @param provider The provider to get the implementation from. --- 111,117 ---- * constructor (which cannot be null; pass a zero-length array if the SPI * takes no arguments). The service is e.g. "Signature", and the algorithm * "DSA". ! * * @param service The service name. * @param algorithm The name of the algorithm to get. * @param provider The provider to get the implementation from. *************** public final class Engine *** 159,165 **** if (key.equalsIgnoreCase(service + "." + algorithm)) { // remove the service portion from the key ! algorithm = key.substring(service.length() + 1); algorithmFound = true; break; } --- 159,165 ---- if (key.equalsIgnoreCase(service + "." + algorithm)) { // remove the service portion from the key ! algorithm = key.substring(service.length() + 1); algorithmFound = true; break; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/OID.java gcc-4.6.0/libjava/classpath/gnu/java/security/OID.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/OID.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/OID.java Tue Jan 11 19:46:05 2011 *************** public class OID implements Cloneable, C *** 75,81 **** /* Serial version id for serialization. */ static final long serialVersionUID = 5722492029044597779L; ! /** * The numeric ID structure. */ --- 75,81 ---- /* Serial version id for serialization. */ static final long serialVersionUID = 5722492029044597779L; ! /** * The numeric ID structure. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/PolicyFile.java gcc-4.6.0/libjava/classpath/gnu/java/security/PolicyFile.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/PolicyFile.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/PolicyFile.java Tue Jan 11 19:46:05 2011 *************** public final class PolicyFile extends Po *** 154,160 **** // Added to cut redundant AccessController.doPrivileged calls private static GetPropertyAction prop = new GetPropertyAction("file.separator"); private static final String fs = (String) AccessController.doPrivileged(prop); ! private static final String DEFAULT_POLICY = (String) AccessController.doPrivileged(prop.setParameters("java.home")) + fs + "lib" + fs + "security" + fs + "java.policy"; --- 154,160 ---- // Added to cut redundant AccessController.doPrivileged calls private static GetPropertyAction prop = new GetPropertyAction("file.separator"); private static final String fs = (String) AccessController.doPrivileged(prop); ! private static final String DEFAULT_POLICY = (String) AccessController.doPrivileged(prop.setParameters("java.home")) + fs + "lib" + fs + "security" + fs + "java.policy"; *************** public final class PolicyFile extends Po *** 536,542 **** if (clazz == null) { currentPerms.add(new UnresolvedPermission(className, ! null, null, (Certificate[]) currentCerts.toArray(new Certificate[currentCerts.size()]))); continue; } try --- 536,542 ---- if (clazz == null) { currentPerms.add(new UnresolvedPermission(className, ! null, null, (Certificate[]) currentCerts.toArray(new Certificate[currentCerts.size()]))); continue; } try *************** public final class PolicyFile extends Po *** 558,564 **** if (clazz == null) { currentPerms.add(new UnresolvedPermission(className, ! target, null, (Certificate[]) currentCerts.toArray(new Certificate[currentCerts.size()]))); continue; } try --- 558,564 ---- if (clazz == null) { currentPerms.add(new UnresolvedPermission(className, ! target, null, (Certificate[]) currentCerts.toArray(new Certificate[currentCerts.size()]))); continue; } try *************** public final class PolicyFile extends Po *** 601,607 **** if (clazz == null) { currentPerms.add(new UnresolvedPermission(className, ! target, action, (Certificate[]) currentCerts.toArray(new Certificate[currentCerts.size()]))); continue; } else --- 601,607 ---- if (clazz == null) { currentPerms.add(new UnresolvedPermission(className, ! target, action, (Certificate[]) currentCerts.toArray(new Certificate[currentCerts.size()]))); continue; } else diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/Properties.java gcc-4.6.0/libjava/classpath/gnu/java/security/Properties.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/Properties.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/Properties.java Tue Jan 11 19:46:05 2011 *************** public final class Properties *** 90,96 **** /** * Returns the string representation of the library global configuration * property with the designated key. ! * * @param key the case-insensitive, non-null and non-empty name of a * configuration property. * @return the string representation of the designated property, or --- 90,96 ---- /** * Returns the string representation of the library global configuration * property with the designated key. ! * * @param key the case-insensitive, non-null and non-empty name of a * configuration property. * @return the string representation of the designated property, or *************** public final class Properties *** 113,119 **** /** * Sets the value of a designated library global configuration property, to a * string representation of what should be a legal value. ! * * @param key the case-insensitive, non-null and non-empty name of a * configuration property. * @param value the non-null, non-empty string representation of a legal value --- 113,119 ---- /** * Sets the value of a designated library global configuration property, to a * string representation of what should be a legal value. ! * * @param key the case-insensitive, non-null and non-empty name of a * configuration property. * @param value the non-null, non-empty string representation of a legal value *************** public final class Properties *** 151,157 **** * A convenience method that returns, as a boolean, the library global * configuration property indicating if the default Pseudo Random Number * Generator produces, or not, the same bit stream when instantiated. ! * * @return true if the default PRNG produces the same bit * stream with every VM instance. Returns false if the * default PRNG is seeded with the time of day of its first --- 151,157 ---- * A convenience method that returns, as a boolean, the library global * configuration property indicating if the default Pseudo Random Number * Generator produces, or not, the same bit stream when instantiated. ! * * @return true if the default PRNG produces the same bit * stream with every VM instance. Returns false if the * default PRNG is seeded with the time of day of its first *************** public final class Properties *** 171,177 **** * block ciphers check, or not, for possible/potential weak and semi-weak keys * that may be produced in the course of generating round encryption and/or * decryption keys. ! * * @return true if the cipher implementations check for weak * and semi-weak keys. Returns false if the cipher * implementations do not check for weak or semi-weak keys. --- 171,177 ---- * block ciphers check, or not, for possible/potential weak and semi-weak keys * that may be produced in the course of generating round encryption and/or * decryption keys. ! * * @return true if the cipher implementations check for weak * and semi-weak keys. Returns false if the cipher * implementations do not check for weak or semi-weak keys. *************** public final class Properties *** 188,194 **** * A convenience method that returns, as a boolean, the library global * configuration property indicating if RSA decryption (RSADP primitive), * does, or not, blinding against timing attacks. ! * * @return true if the RSA decryption primitive includes a * blinding operation. Returns false if the RSA * decryption primitive does not include the additional blinding --- 188,194 ---- * A convenience method that returns, as a boolean, the library global * configuration property indicating if RSA decryption (RSADP primitive), * does, or not, blinding against timing attacks. ! * * @return true if the RSA decryption primitive includes a * blinding operation. Returns false if the RSA * decryption primitive does not include the additional blinding *************** public final class Properties *** 205,211 **** /** * A convenience method to set the global property for reproducibility of the * default PRNG bit stream output. ! * * @param value if true then the default PRNG bit stream output * is the same with every invocation of the VM. */ --- 205,211 ---- /** * A convenience method to set the global property for reproducibility of the * default PRNG bit stream output. ! * * @param value if true then the default PRNG bit stream output * is the same with every invocation of the VM. */ *************** public final class Properties *** 221,227 **** /** * A convenience method to set the global property for checking for weak and * semi-weak cipher keys. ! * * @param value if true then the cipher implementations will * invoke additional checks for weak and semi-weak key values that * may get generated. --- 221,227 ---- /** * A convenience method to set the global property for checking for weak and * semi-weak cipher keys. ! * * @param value if true then the cipher implementations will * invoke additional checks for weak and semi-weak key values that * may get generated. *************** public final class Properties *** 238,244 **** /** * A convenience method to set the global property fo adding a blinding * operation when executing the RSA decryption primitive. ! * * @param value if true then the code for performing the RSA * decryption primitive will include a blinding operation. */ --- 238,244 ---- /** * A convenience method to set the global property fo adding a blinding * operation when executing the RSA decryption primitive. ! * * @param value if true then the code for performing the RSA * decryption primitive will include a blinding operation. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/Registry.java gcc-4.6.0/libjava/classpath/gnu/java/security/Registry.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/Registry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/Registry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Registry.java -- Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Registry.java -- Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/Requires.java gcc-4.6.0/libjava/classpath/gnu/java/security/Requires.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/Requires.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/security/Requires.java Tue Jan 11 19:46:05 2011 *************** import static java.lang.annotation.Reten *** 46,53 **** import java.security.Permission; /** ! * ! * * @author Casey Marshall (csm@gnu.org) */ @Documented @Retention(CLASS) @Target(METHOD) --- 46,53 ---- import java.security.Permission; /** ! * ! * * @author Casey Marshall (csm@gnu.org) */ @Documented @Retention(CLASS) @Target(METHOD) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/action/GetPropertyAction.java gcc-4.6.0/libjava/classpath/gnu/java/security/action/GetPropertyAction.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/action/GetPropertyAction.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/security/action/GetPropertyAction.java Tue Jan 11 19:46:05 2011 *************** public class GetPropertyAction implement *** 57,63 **** public GetPropertyAction() { } ! public GetPropertyAction(String propName) { setParameters(propName); --- 57,63 ---- public GetPropertyAction() { } ! public GetPropertyAction(String propName) { setParameters(propName); *************** public class GetPropertyAction implement *** 67,78 **** { setParameters(propName, defaultValue); } ! public String run() { return System.getProperty(name, value); } ! public GetPropertyAction setParameters(String propName) { this.name = propName; --- 67,78 ---- { setParameters(propName, defaultValue); } ! public String run() { return System.getProperty(name, value); } ! public GetPropertyAction setParameters(String propName) { this.name = propName; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/action/SetAccessibleAction.java gcc-4.6.0/libjava/classpath/gnu/java/security/action/SetAccessibleAction.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/action/SetAccessibleAction.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/security/action/SetAccessibleAction.java Tue Jan 11 19:46:05 2011 *************** import java.lang.reflect.AccessibleObjec *** 41,47 **** import java.security.PrivilegedAction; /** ! * PrivilegedAction implementation that calls setAccessible(true) on the * AccessibleObject passed to its constructor. * * Example of use: --- 41,47 ---- import java.security.PrivilegedAction; /** ! * PrivilegedAction implementation that calls setAccessible(true) on the * AccessibleObject passed to its constructor. * * Example of use: *************** import java.security.PrivilegedAction; *** 53,74 **** public class SetAccessibleAction implements PrivilegedAction { AccessibleObject member; ! public SetAccessibleAction() { } ! public SetAccessibleAction(AccessibleObject member) { this.member = member; } ! public Object run() { member.setAccessible(true); return null; } ! public SetAccessibleAction setMember(AccessibleObject member) { this.member = member; --- 53,74 ---- public class SetAccessibleAction implements PrivilegedAction { AccessibleObject member; ! public SetAccessibleAction() { } ! public SetAccessibleAction(AccessibleObject member) { this.member = member; } ! public Object run() { member.setAccessible(true); return null; } ! public SetAccessibleAction setMember(AccessibleObject member) { this.member = member; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/der/DERValue.java gcc-4.6.0/libjava/classpath/gnu/java/security/der/DERValue.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/der/DERValue.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/der/DERValue.java Tue Jan 11 19:46:05 2011 *************** public class DERValue implements DER *** 173,183 **** public String toString() { String start = "DERValue ( ["; ! if (tagClass == DER.UNIVERSAL) start = start + "UNIVERSAL "; ! else if (tagClass == DER.PRIVATE) start = start + "PRIVATE "; ! else if (tagClass == DER.APPLICATION) start = start + "APPLICATION "; start = start + tag + "] constructed=" + constructed + ", value="; if (constructed) --- 173,183 ---- public String toString() { String start = "DERValue ( ["; ! if (tagClass == DER.UNIVERSAL) start = start + "UNIVERSAL "; ! else if (tagClass == DER.PRIVATE) start = start + "PRIVATE "; ! else if (tagClass == DER.APPLICATION) start = start + "APPLICATION "; start = start + tag + "] constructed=" + constructed + ", value="; if (constructed) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/BaseHash.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/BaseHash.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/BaseHash.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/BaseHash.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BaseHash.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BaseHash.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class BaseHash *** 61,67 **** /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name prefix of this instance. * @param hashSize the block size of the output in bytes. * @param blockSize the block size of the internal transform. --- 61,67 ---- /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name prefix of this instance. * @param hashSize the block size of the output in bytes. * @param blockSize the block size of the internal transform. *************** public abstract class BaseHash *** 156,162 **** /** * Returns the byte array to use as padding before completing a hash * operation. ! * * @return the bytes to pad the remaining bytes in the buffer before * completing a hash operation. */ --- 156,162 ---- /** * Returns the byte array to use as padding before completing a hash * operation. ! * * @return the bytes to pad the remaining bytes in the buffer before * completing a hash operation. */ *************** public abstract class BaseHash *** 164,170 **** /** * Constructs the result from the contents of the current context. ! * * @return the output of the completed hash operation. */ protected abstract byte[] getResult(); --- 164,170 ---- /** * Constructs the result from the contents of the current context. ! * * @return the output of the completed hash operation. */ protected abstract byte[] getResult(); *************** public abstract class BaseHash *** 174,180 **** /** * The block digest transformation per se. ! * * @param in the blockSize long block, as an array of bytes to digest. * @param offset the index where the data to digest is located within the * input buffer. --- 174,180 ---- /** * The block digest transformation per se. ! * * @param in the blockSize long block, as an array of bytes to digest. * @param offset the index where the data to digest is located within the * input buffer. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/HashFactory.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/HashFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/HashFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/HashFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HashFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HashFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class HashFactory *** 57,63 **** /** * Return an instance of a hash algorithm given its name. ! * * @param name the name of the hash algorithm. * @return an instance of the hash algorithm, or null if none found. * @exception InternalError if the implementation does not pass its self- --- 57,63 ---- /** * Return an instance of a hash algorithm given its name. ! * * @param name the name of the hash algorithm. * @return an instance of the hash algorithm, or null if none found. * @exception InternalError if the implementation does not pass its self- *************** public class HashFactory *** 111,117 **** /** * Returns a {@link Set} of names of hash algorithms supported by this * Factory. ! * * @return a {@link Set} of hash names (Strings). */ public static final Set getNames() --- 111,117 ---- /** * Returns a {@link Set} of names of hash algorithms supported by this * Factory. ! * * @return a {@link Set} of hash names (Strings). */ public static final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Haval.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Haval.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Haval.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Haval.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Haval.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Haval.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class Haval *** 105,111 **** /** * Calls the constructor with two arguments using the designated output size, * and {@link #HAVAL_3_ROUND} for the value of number of rounds. ! * * @param size the output size in bytes of this instance. * @throws IllegalArgumentException if the designated output size is invalid. * @see #HAVAL_128_BIT --- 105,111 ---- /** * Calls the constructor with two arguments using the designated output size, * and {@link #HAVAL_3_ROUND} for the value of number of rounds. ! * * @param size the output size in bytes of this instance. * @throws IllegalArgumentException if the designated output size is invalid. * @see #HAVAL_128_BIT *************** public class Haval *** 125,131 **** * 20, 24, 28 and * 32. Valid values for rounds are in the range * 3..5 inclusive. ! * * @param size the output size in bytes of this instance. * @param rounds the number of rounds to apply when transforming data. * @throws IllegalArgumentException if the designated output size is invalid, --- 125,131 ---- * 20, 24, 28 and * 32. Valid values for rounds are in the range * 3..5 inclusive. ! * * @param size the output size in bytes of this instance. * @param rounds the number of rounds to apply when transforming data. * @throws IllegalArgumentException if the designated output size is invalid, *************** public class Haval *** 160,166 **** /** * Private constructor for cloning purposes. ! * * @param md the instance to clone. */ private Haval(Haval md) --- 160,166 ---- /** * Private constructor for cloning purposes. ! * * @param md the instance to clone. */ private Haval(Haval md) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/IMessageDigest.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/IMessageDigest.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/IMessageDigest.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/IMessageDigest.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IMessageDigest.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IMessageDigest.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IMessageDigest *** 49,76 **** { /** * Returns the canonical name of this algorithm. ! * * @return the canonical name of this instance. */ String name(); /** * Returns the output length in bytes of this message digest algorithm. ! * * @return the output length in bytes of this message digest algorithm. */ int hashSize(); /** * Returns the algorithm's (inner) block size in bytes. ! * * @return the algorithm's inner block size in bytes. */ int blockSize(); /** * Continues a message digest operation using the input byte. ! * * @param b the input byte to digest. */ void update(byte b); --- 49,76 ---- { /** * Returns the canonical name of this algorithm. ! * * @return the canonical name of this instance. */ String name(); /** * Returns the output length in bytes of this message digest algorithm. ! * * @return the output length in bytes of this message digest algorithm. */ int hashSize(); /** * Returns the algorithm's (inner) block size in bytes. ! * * @return the algorithm's inner block size in bytes. */ int blockSize(); /** * Continues a message digest operation using the input byte. ! * * @param b the input byte to digest. */ void update(byte b); *************** public interface IMessageDigest *** 79,85 **** * Continues a message digest operation, by filling the buffer, processing * data in the algorithm's HASH_SIZE-bit block(s), updating the context and * count, and buffering the remaining bytes in buffer for the next operation. ! * * @param in the input block. */ void update(byte[] in); --- 79,85 ---- * Continues a message digest operation, by filling the buffer, processing * data in the algorithm's HASH_SIZE-bit block(s), updating the context and * count, and buffering the remaining bytes in buffer for the next operation. ! * * @param in the input block. */ void update(byte[] in); *************** public interface IMessageDigest *** 88,94 **** * Continues a message digest operation, by filling the buffer, processing * data in the algorithm's HASH_SIZE-bit block(s), updating the context and * count, and buffering the remaining bytes in buffer for the next operation. ! * * @param in the input block. * @param offset start of meaningful bytes in input block. * @param length number of bytes, in input block, to consider. --- 88,94 ---- * Continues a message digest operation, by filling the buffer, processing * data in the algorithm's HASH_SIZE-bit block(s), updating the context and * count, and buffering the remaining bytes in buffer for the next operation. ! * * @param in the input block. * @param offset start of meaningful bytes in input block. * @param length number of bytes, in input block, to consider. *************** public interface IMessageDigest *** 98,104 **** /** * Completes the message digest by performing final operations such as padding * and resetting the instance. ! * * @return the array of bytes representing the hash value. */ byte[] digest(); --- 98,104 ---- /** * Completes the message digest by performing final operations such as padding * and resetting the instance. ! * * @return the array of bytes representing the hash value. */ byte[] digest(); *************** public interface IMessageDigest *** 112,118 **** /** * A basic test. Ensures that the digest of a pre-determined message is equal * to a known pre-computed value. ! * * @return true if the implementation passes a basic self-test. * Returns false otherwise. */ --- 112,118 ---- /** * A basic test. Ensures that the digest of a pre-determined message is equal * to a known pre-computed value. ! * * @return true if the implementation passes a basic self-test. * Returns false otherwise. */ *************** public interface IMessageDigest *** 120,126 **** /** * Returns a clone copy of this instance. ! * * @return a clone copy of this instance. */ Object clone(); --- 120,126 ---- /** * Returns a clone copy of this instance. ! * * @return a clone copy of this instance. */ Object clone(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/MD2.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/MD2.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/MD2.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/MD2.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD2.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD2.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/MD4.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/MD4.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/MD4.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/MD4.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD4.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD4.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/MD5.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/MD5.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/MD5.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/MD5.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD5.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD5.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/RipeMD128.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/RipeMD128.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/RipeMD128.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/RipeMD128.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RipeMD128.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RipeMD128.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/RipeMD160.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/RipeMD160.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/RipeMD160.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/RipeMD160.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RipeMD160.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RipeMD160.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Sha160.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Sha160.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Sha160.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Sha160.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha160.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha160.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Sha256.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Sha256.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Sha256.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Sha256.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha256.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha256.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Sha384.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Sha384.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Sha384.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Sha384.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha384.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha384.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Sha512.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Sha512.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Sha512.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Sha512.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha512.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha512.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Tiger.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Tiger.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Tiger.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Tiger.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Tiger.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Tiger.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Whirlpool.java gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Whirlpool.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/hash/Whirlpool.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/hash/Whirlpool.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Whirlpool.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Whirlpool.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class Whirlpool *** 548,554 **** // so far. hence the minimal number of bytes added to the message proper // are 33 (1 for the 1-bit followed by the 0-bits and the encoding of // the count framed in a 256-bit block). our formula is then: ! // count + 33 + padding = 0 (mod BLOCK_SIZE) int n = (int)((count + 33) % BLOCK_SIZE); int padding = n == 0 ? 33 : BLOCK_SIZE - n + 33; byte[] result = new byte[padding]; --- 548,554 ---- // so far. hence the minimal number of bytes added to the message proper // are 33 (1 for the 1-bit followed by the 0-bits and the encoding of // the count framed in a 256-bit block). our formula is then: ! // count + 33 + padding = 0 (mod BLOCK_SIZE) int n = (int)((count + 33) % BLOCK_SIZE); int padding = n == 0 ? 33 : BLOCK_SIZE - n + 33; byte[] result = new byte[padding]; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/HavalSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/HavalSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/HavalSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/HavalSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HavalSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HavalSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/MD2Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/MD2Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/MD2Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/MD2Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD2Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD2Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/MD4Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/MD4Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/MD4Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/MD4Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD4Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD4Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/MD5Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/MD5Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/MD5Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/MD5Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD5Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD5Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/MessageDigestAdapter.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/MessageDigestAdapter.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/MessageDigestAdapter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/MessageDigestAdapter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MessageDigestAdapter.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MessageDigestAdapter.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** class MessageDigestAdapter *** 69,75 **** /** * Trivial protected constructor. ! * * @param mdName the canonical name of the hash algorithm. */ protected MessageDigestAdapter(String mdName) --- 69,75 ---- /** * Trivial protected constructor. ! * * @param mdName the canonical name of the hash algorithm. */ protected MessageDigestAdapter(String mdName) *************** class MessageDigestAdapter *** 79,85 **** /** * Private constructor for cloning purposes. ! * * @param adaptee a clone of the underlying hash algorithm instance. */ private MessageDigestAdapter(IMessageDigest adaptee) --- 79,85 ---- /** * Private constructor for cloning purposes. ! * * @param adaptee a clone of the underlying hash algorithm instance. */ private MessageDigestAdapter(IMessageDigest adaptee) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/RipeMD128Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/RipeMD128Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/RipeMD128Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/RipeMD128Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RipeMD128Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RipeMD128Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/RipeMD160Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/RipeMD160Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/RipeMD160Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/RipeMD160Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RipeMD160Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RipeMD160Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/Sha160Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/Sha160Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/Sha160Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/Sha160Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha160Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha160Spi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/Sha256Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/Sha256Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/Sha256Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/Sha256Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha256Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha256Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/Sha384Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/Sha384Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/Sha384Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/Sha384Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha384Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha384Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/Sha512Spi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/Sha512Spi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/Sha512Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/Sha512Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha512Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha512Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/TigerSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/TigerSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/TigerSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/TigerSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TigerSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TigerSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/WhirlpoolSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/WhirlpoolSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/hash/WhirlpoolSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/hash/WhirlpoolSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WhirlpoolSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* WhirlpoolSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/HavalRandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/HavalRandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/HavalRandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/HavalRandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HavalRandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HavalRandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/MD2RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/MD2RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/MD2RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/MD2RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD2RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD2RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/MD4RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/MD4RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/MD4RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/MD4RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD4RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD4RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/MD5RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/MD5RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/MD5RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/MD5RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MD5RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MD5RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/RipeMD128RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/RipeMD128RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/RipeMD128RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/RipeMD128RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RipeMD128RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RipeMD128RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/RipeMD160RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/RipeMD160RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/RipeMD160RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/RipeMD160RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RipeMD160RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RipeMD160RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/SecureRandomAdapter.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/SecureRandomAdapter.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/SecureRandomAdapter.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/SecureRandomAdapter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SecureRandomAdapter.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SecureRandomAdapter.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.net.URL; *** 68,74 **** *

          All the abstract methods in the {@link SecureRandomSpi} class are * implemented by this class and all its sub-classes.

          */ ! public abstract class SecureRandomAdapter extends SecureRandomSpi { --- 68,74 ---- *

          All the abstract methods in the {@link SecureRandomSpi} class are * implemented by this class and all its sub-classes.

          */ ! public abstract class SecureRandomAdapter extends SecureRandomSpi { *************** public abstract class SecureRandomAdapte *** 100,106 **** } public static final byte[] getSeed(int numBytes) ! { URL sourceUrl = null; String urlStr = null; --- 100,106 ---- } public static final byte[] getSeed(int numBytes) ! { URL sourceUrl = null; String urlStr = null; *************** public abstract class SecureRandomAdapte *** 117,123 **** catch (MalformedURLException ignored) { logger.log(Level.WARNING, ! SECURERANDOM_SOURCE + " property is malformed: {0}", urlStr); } --- 117,123 ---- catch (MalformedURLException ignored) { logger.log(Level.WARNING, ! SECURERANDOM_SOURCE + " property is malformed: {0}", urlStr); } *************** public abstract class SecureRandomAdapte *** 132,138 **** catch (MalformedURLException mue) { logger.log(Level.WARNING, ! JAVA_SECURITY_EGD + " property is malformed: {0}", urlStr); } } --- 132,138 ---- catch (MalformedURLException mue) { logger.log(Level.WARNING, ! JAVA_SECURITY_EGD + " property is malformed: {0}", urlStr); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/Sha160RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/Sha160RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/Sha160RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/Sha160RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha160RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha160RandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/Sha256RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/Sha256RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/Sha256RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/Sha256RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha256RandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha256RandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/Sha384RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/Sha384RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/Sha384RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/Sha384RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha384RandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha384RandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/Sha512RandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/Sha512RandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/Sha512RandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/Sha512RandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sha512RandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Sha512RandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/TigerRandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/TigerRandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/TigerRandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/TigerRandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TigerRandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TigerRandomSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/WhirlpoolRandomSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/WhirlpoolRandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/prng/WhirlpoolRandomSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/prng/WhirlpoolRandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WhirlpoolRandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* WhirlpoolRandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/DSSKeyFactory.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/DSSKeyFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/DSSKeyFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/DSSKeyFactory.java Tue Jan 11 19:46:05 2011 *************** import java.security.spec.X509EncodedKey *** 61,67 **** /** * DSA key factory. ! * * @author Casey Marshall (rsdio@metastatic.org) */ public class DSSKeyFactory --- 61,67 ---- /** * DSA key factory. ! * * @author Casey Marshall (rsdio@metastatic.org) */ public class DSSKeyFactory diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DSSKeyPairGeneratorSpi.java -- Copyright 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DSSKeyPairGeneratorSpi.java -- Copyright 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java Tue Jan 11 19:46:05 2011 *************** public class DSSParameters *** 99,106 **** /** * Decodes the set of DSS parameters as per RFC-2459; i.e. the DER-encoded ! * form of the following ASN.1 construct: ! * *
               *   DssParams ::= SEQUENCE {
               *     p   INTEGER,
          --- 99,106 ----
            
              /**
               * Decodes the set of DSS parameters as per RFC-2459; i.e. the DER-encoded
          !    * form of the following ASN.1 construct:
          !    *
               * 
               *   DssParams ::= SEQUENCE {
               *     p   INTEGER,
          *************** public class DSSParameters
          *** 152,159 ****
            
              /**
               * Encodes the set of DSS parameters as per RFC-2459; i.e. as the DER-encoded
          !    * form of the following ASN.1 construct: 
          !    * 
               * 
               *   DssParams ::= SEQUENCE {
               *     p   INTEGER,
          --- 152,159 ----
            
              /**
               * Encodes the set of DSS parameters as per RFC-2459; i.e. as the DER-encoded
          !    * form of the following ASN.1 construct:
          !    *
               * 
               *   DssParams ::= SEQUENCE {
               *     p   INTEGER,
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/DSSRawSignatureSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/DSSRawSignatureSpi.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/DSSRawSignatureSpi.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/DSSRawSignatureSpi.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* DSSRawSignatureSpi.java -- 
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* DSSRawSignatureSpi.java --
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* KeyPairGeneratorAdapter.java -- 
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* KeyPairGeneratorAdapter.java --
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public abstract class KeyPairGeneratorAd
          *** 72,78 ****
            
              /**
               * Trivial protected constructor.
          !    * 
               * @param kpgName the canonical name of the keypair generator algorithm.
               */
              protected KeyPairGeneratorAdapter(String kpgName)
          --- 72,78 ----
            
              /**
               * Trivial protected constructor.
          !    *
               * @param kpgName the canonical name of the keypair generator algorithm.
               */
              protected KeyPairGeneratorAdapter(String kpgName)
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* RSAPSSRawSignatureSpi.java -- 
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* RSAPSSRawSignatureSpi.java --
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/SignatureAdapter.java gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/SignatureAdapter.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/jce/sig/SignatureAdapter.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/jce/sig/SignatureAdapter.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* SignatureAdapter.java -- 
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* SignatureAdapter.java --
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** class SignatureAdapter
          *** 85,91 ****
            
              /**
               * Trivial protected constructor.
          !    * 
               * @param sigName the canonical name of the signature scheme.
               * @param codec the signature codec engine to use with this scheme.
               */
          --- 85,91 ----
            
              /**
               * Trivial protected constructor.
          !    *
               * @param sigName the canonical name of the signature scheme.
               * @param codec the signature codec engine to use with this scheme.
               */
          *************** class SignatureAdapter
          *** 96,102 ****
            
              /**
               * Private constructor for cloning purposes.
          !    * 
               * @param adaptee a clone of the underlying signature scheme instance.
               * @param codec the signature codec engine to use with this scheme.
               */
          --- 96,102 ----
            
              /**
               * Private constructor for cloning purposes.
          !    *
               * @param adaptee a clone of the underlying signature scheme instance.
               * @param codec the signature codec engine to use with this scheme.
               */
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/IKeyPairCodec.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/IKeyPairCodec.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/IKeyPairCodec.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/IKeyPairCodec.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* IKeyPairCodec.java -- 
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* IKeyPairCodec.java --
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public interface IKeyPairCodec
          *** 69,82 ****
              /**
               * Returns the unique identifier (within this library) of the format used to
               * externalise public and private keys.
          !    * 
               * @return the identifier of the format, the object supports.
               */
              int getFormatID();
            
              /**
               * Encodes an instance of a public key for storage or transmission purposes.
          !    * 
               * @param key the non-null key to encode.
               * @return a byte sequence representing the encoding of the designated key
               *         according to the format supported by this codec.
          --- 69,82 ----
              /**
               * Returns the unique identifier (within this library) of the format used to
               * externalise public and private keys.
          !    *
               * @return the identifier of the format, the object supports.
               */
              int getFormatID();
            
              /**
               * Encodes an instance of a public key for storage or transmission purposes.
          !    *
               * @param key the non-null key to encode.
               * @return a byte sequence representing the encoding of the designated key
               *         according to the format supported by this codec.
          *************** public interface IKeyPairCodec
          *** 87,93 ****
            
              /**
               * Encodes an instance of a private key for storage or transmission purposes.
          !    * 
               * @param key the non-null key to encode.
               * @return a byte sequence representing the encoding of the designated key
               *         according to the format supported by this codec.
          --- 87,93 ----
            
              /**
               * Encodes an instance of a private key for storage or transmission purposes.
          !    *
               * @param key the non-null key to encode.
               * @return a byte sequence representing the encoding of the designated key
               *         according to the format supported by this codec.
          *************** public interface IKeyPairCodec
          *** 99,105 ****
              /**
               * Decodes an instance of an external public key into its native Java
               * representation.
          !    * 
               * @param input the source of the externalised key to decode.
               * @return a concrete instance of a public key, reconstructed from the
               *         designated input.
          --- 99,105 ----
              /**
               * Decodes an instance of an external public key into its native Java
               * representation.
          !    *
               * @param input the source of the externalised key to decode.
               * @return a concrete instance of a public key, reconstructed from the
               *         designated input.
          *************** public interface IKeyPairCodec
          *** 112,118 ****
              /**
               * Decodes an instance of an external private key into its native Java
               * representation.
          !    * 
               * @param input the source of the externalised key to decode.
               * @return a concrete instance of a private key, reconstructed from the
               *         designated input.
          --- 112,118 ----
              /**
               * Decodes an instance of an external private key into its native Java
               * representation.
          !    *
               * @param input the source of the externalised key to decode.
               * @return a concrete instance of a private key, reconstructed from the
               *         designated input.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/IKeyPairGenerator.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/IKeyPairGenerator.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/IKeyPairGenerator.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/IKeyPairGenerator.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* IKeyPairGenerator.java -- 
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* IKeyPairGenerator.java --
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public interface IKeyPairGenerator
          *** 48,61 ****
            {
              /**
               * Returns the canonical name of this keypair generator.
          !    * 
               * @return the canonical name of this instance.
               */
              String name();
            
              /**
               * [Re]-initialises this instance for use with a given set of attributes.
          !    * 
               * @param attributes a map of name/value pairs to use for setting up the
               *          instance.
               * @exception IllegalArgumentException if at least one of the mandatory
          --- 48,61 ----
            {
              /**
               * Returns the canonical name of this keypair generator.
          !    *
               * @return the canonical name of this instance.
               */
              String name();
            
              /**
               * [Re]-initialises this instance for use with a given set of attributes.
          !    *
               * @param attributes a map of name/value pairs to use for setting up the
               *          instance.
               * @exception IllegalArgumentException if at least one of the mandatory
          *************** public interface IKeyPairGenerator
          *** 66,72 ****
              /**
               * Generates a new keypair based on the attributes used to configure the
               * instance.
          !    * 
               * @return a new keypair.
               */
              KeyPair generate();
          --- 66,72 ----
              /**
               * Generates a new keypair based on the attributes used to configure the
               * instance.
          !    *
               * @return a new keypair.
               */
              KeyPair generate();
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/KeyPairCodecFactory.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/KeyPairCodecFactory.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/KeyPairCodecFactory.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/KeyPairCodecFactory.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* KeyPairCodecFactory.java -- 
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* KeyPairCodecFactory.java --
               Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class KeyPairCodecFactory
          *** 79,85 ****
               * IMPORTANT: For backward compatibility, when the encoding format
               * name is missing, the Raw encoding format is assumed. When this is the case
               * the trailing forward slash is discarded from the name.
          !    * 
               * @param name the case-insensitive key codec name.
               * @return an instance of the keypair codec, or null if none
               *         found.
          --- 79,85 ----
               * IMPORTANT: For backward compatibility, when the encoding format
               * name is missing, the Raw encoding format is assumed. When this is the case
               * the trailing forward slash is discarded from the name.
          !    *
               * @param name the case-insensitive key codec name.
               * @return an instance of the keypair codec, or null if none
               *         found.
          *************** public class KeyPairCodecFactory
          *** 113,119 ****
               * Returns an instance of a keypair codec given the canonical name of the
               * key-pair algorithm, and the name of the encoding format to use when
               * externalizing the keys.
          !    * 
               * @param name the case-insensitive key-pair algorithm name.
               * @param format the name of the encoding format to use when externalizing the
               *          keys generated by the key-pair algorithm.
          --- 113,119 ----
               * Returns an instance of a keypair codec given the canonical name of the
               * key-pair algorithm, and the name of the encoding format to use when
               * externalizing the keys.
          !    *
               * @param name the case-insensitive key-pair algorithm name.
               * @param format the name of the encoding format to use when externalizing the
               *          keys generated by the key-pair algorithm.
          *************** public class KeyPairCodecFactory
          *** 133,139 ****
               * Returns an instance of a keypair codec given the canonical name of the
               * key-pair algorithm, and the identifier of the format to use when
               * externalizing the keys.
          !    * 
               * @param name the case-insensitive key-pair algorithm name.
               * @param formatID the identifier of the format to use when externalizing the
               *          keys generated by the key-pair algorithm.
          --- 133,139 ----
               * Returns an instance of a keypair codec given the canonical name of the
               * key-pair algorithm, and the identifier of the format to use when
               * externalizing the keys.
          !    *
               * @param name the case-insensitive key-pair algorithm name.
               * @param formatID the identifier of the format to use when externalizing the
               *          keys generated by the key-pair algorithm.
          *************** public class KeyPairCodecFactory
          *** 161,167 ****
            
              /**
               * Returns an instance of a keypair codec given a key.
          !    * 
               * @param key the key to encode.
               * @return an instance of the keypair codec, or null if none
               *         found.
          --- 161,167 ----
            
              /**
               * Returns an instance of a keypair codec given a key.
          !    *
               * @param key the key to encode.
               * @return an instance of the keypair codec, or null if none
               *         found.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/KeyPairGeneratorFactory.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/KeyPairGeneratorFactory.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/KeyPairGeneratorFactory.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/KeyPairGeneratorFactory.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* KeyPairGeneratorFactory.java -- 
               Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* KeyPairGeneratorFactory.java --
               Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class KeyPairGeneratorFactory
          *** 60,66 ****
            
              /**
               * Returns an instance of a keypair generator given its name.
          !    * 
               * @param name the case-insensitive key generator name.
               * @return an instance of the keypair generator, or null if
               *         none found.
          --- 60,66 ----
            
              /**
               * Returns an instance of a keypair generator given its name.
          !    *
               * @param name the case-insensitive key generator name.
               * @return an instance of the keypair generator, or null if
               *         none found.
          *************** public class KeyPairGeneratorFactory
          *** 89,95 ****
               * Returns a {@link Set} of keypair generator names supported by this
               * Factory. Those keypair generators may be used in conjunction with
               * the digital signature schemes with appendix supported by this library.
          !    * 
               * @return a {@link Set} of keypair generator names (Strings).
               */
              public static final Set getNames()
          --- 89,95 ----
               * Returns a {@link Set} of keypair generator names supported by this
               * Factory. Those keypair generators may be used in conjunction with
               * the digital signature schemes with appendix supported by this library.
          !    *
               * @return a {@link Set} of keypair generator names (Strings).
               */
              public static final Set getNames()
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKey.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKey.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKey.java	Tue Oct 21 17:55:01 2008
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKey.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* DSSKey.java -- 
               Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* DSSKey.java --
               Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** import java.security.spec.DSAParameterSp
          *** 66,72 ****
             * IMPORTANT: Under certain circumstances (e.g. in an X.509 certificate
             * with inherited AlgorithmIdentifier's parameters of a SubjectPublicKeyInfo
             * element) these three MPIs may be null.
          !  * 
             * @see DSSPrivateKey#getEncoded
             * @see DSSPublicKey#getEncoded
             */
          --- 66,72 ----
             * IMPORTANT: Under certain circumstances (e.g. in an X.509 certificate
             * with inherited AlgorithmIdentifier's parameters of a SubjectPublicKeyInfo
             * element) these three MPIs may be null.
          !  *
             * @see DSSPrivateKey#getEncoded
             * @see DSSPublicKey#getEncoded
             */
          *************** public abstract class DSSKey
          *** 108,114 ****
            
              /**
               * Trivial protected constructor.
          !    * 
               * @param defaultFormat the identifier of the encoding format to use by
               *          default when externalizing the key.
               * @param p the DSS parameter p.
          --- 108,114 ----
            
              /**
               * Trivial protected constructor.
          !    *
               * @param defaultFormat the identifier of the encoding format to use by
               *          default when externalizing the key.
               * @param p the DSS parameter p.
          *************** public abstract class DSSKey
          *** 156,162 ****
               * inherited. This may be the case when the key is re-constructed from
               * an X.509 certificate with absent or NULL AlgorithmIdentifier's parameters
               * field.
          !    * 
               * @param obj the other non-null DSS key to compare to.
               * @return true if the designated object is of the same type
               *         and value as this one.
          --- 156,162 ----
               * inherited. This may be the case when the key is re-constructed from
               * an X.509 certificate with absent or NULL AlgorithmIdentifier's parameters
               * field.
          !    *
               * @param obj the other non-null DSS key to compare to.
               * @return true if the designated object is of the same type
               *         and value as this one.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairGenerator.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairGenerator.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairGenerator.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairGenerator.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* DSSKeyPairGenerator.java -- 
               Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* DSSKeyPairGenerator.java --
               Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class DSSKeyPairGenerator
          *** 217,223 ****
            
              /**
               * Configures this instance.
          !    * 
               * @param attributes the map of name/value pairs to use.
               * @exception IllegalArgumentException if the designated MODULUS_LENGTH value
               *              is not greater than 512, less than 1024 and not of the form
          --- 217,223 ----
            
              /**
               * Configures this instance.
          !    *
               * @param attributes the map of name/value pairs to use.
               * @exception IllegalArgumentException if the designated MODULUS_LENGTH value
               *              is not greater than 512, less than 1024 and not of the form
          *************** public class DSSKeyPairGenerator
          *** 361,367 ****
            
              /**
               * Fills the designated byte array with random data.
          !    * 
               * @param buffer the byte array to fill with random data.
               */
              private void nextRandomBytes(byte[] buffer)
          --- 361,367 ----
            
              /**
               * Fills the designated byte array with random data.
          !    *
               * @param buffer the byte array to fill with random data.
               */
              private void nextRandomBytes(byte[] buffer)
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java	Tue Jan 11 19:46:05 2011
          *************** public class DSSKeyPairPKCS8Codec
          *** 88,94 ****
              /**
               * Returns the PKCS#8 ASN.1 PrivateKeyInfo representation of a DSA
               * private key. The ASN.1 specification is as follows:
          !    * 
               * 
               *   PrivateKeyInfo ::= SEQUENCE {
               *     version              INTEGER, -- MUST be 0
          --- 88,94 ----
              /**
               * Returns the PKCS#8 ASN.1 PrivateKeyInfo representation of a DSA
               * private key. The ASN.1 specification is as follows:
          !    *
               * 
               *   PrivateKeyInfo ::= SEQUENCE {
               *     version              INTEGER, -- MUST be 0
          *************** public class DSSKeyPairPKCS8Codec
          *** 107,113 ****
               *     g   INTEGER
               *   }
               * 
          ! * * @return the DER encoded form of the ASN.1 representation of the * PrivateKeyInfo field in an X.509 certificate. * @throw InvalidParameterException if an error occurs during the marshalling --- 107,113 ---- * g INTEGER * } *
          ! * * @return the DER encoded form of the ASN.1 representation of the * PrivateKeyInfo field in an X.509 certificate. * @throw InvalidParameterException if an error occurs during the marshalling diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairRawCodec.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairRawCodec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairRawCodec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairRawCodec.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DSSKeyPairRawCodec.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DSSKeyPairRawCodec.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class DSSKeyPairRawCodec *** 92,98 **** * the toByteArray() method on the DSA parameter y, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @throws IllegalArgumentException if the designated key is not a DSS --- 92,98 ---- * the toByteArray() method on the DSA parameter y, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @throws IllegalArgumentException if the designated key is not a DSS *************** public class DSSKeyPairRawCodec *** 235,241 **** * the toByteArray() method on the DSA parameter x, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @throws IllegalArgumentException if the designated key is not a DSS --- 235,241 ---- * the toByteArray() method on the DSA parameter x, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @throws IllegalArgumentException if the designated key is not a DSS diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairX509Codec.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairX509Codec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairX509Codec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairX509Codec.java Tue Jan 11 19:46:05 2011 *************** public class DSSKeyPairX509Codec *** 103,113 **** *

          * The subjectPublicKey field, which is a BIT STRING, contains the * DER-encoded form of the DSA public key as an INTEGER. ! * *

               *       DSAPublicKey ::= INTEGER -- public key, Y
               * 
          ! * * @param key the {@link PublicKey} instance to encode. MUST be an instance of * {@link DSSPublicKey}. * @return the ASN.1 representation of the SubjectPublicKeyInfo in an --- 103,113 ---- *

          * The subjectPublicKey field, which is a BIT STRING, contains the * DER-encoded form of the DSA public key as an INTEGER. ! * *

               *       DSAPublicKey ::= INTEGER -- public key, Y
               * 
          ! * * @param key the {@link PublicKey} instance to encode. MUST be an instance of * {@link DSSPublicKey}. * @return the ASN.1 representation of the SubjectPublicKeyInfo in an diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DSSPrivateKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DSSPrivateKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.security.interfaces.DSAPriva *** 52,58 **** /** * An object that embodies a DSS (Digital Signature Standard) private key. ! * * @see #getEncoded */ public class DSSPrivateKey --- 52,58 ---- /** * An object that embodies a DSS (Digital Signature Standard) private key. ! * * @see #getEncoded */ public class DSSPrivateKey *************** public class DSSPrivateKey *** 72,78 **** * Convenience constructor. Calls the constructor with 5 arguments passing * {@link Registry#RAW_ENCODING_ID} as the identifier of the preferred * encoding format. ! * * @param p the public modulus. * @param q the public prime divisor of p-1. * @param g a generator of the unique cyclic group Z* --- 72,78 ---- * Convenience constructor. Calls the constructor with 5 arguments passing * {@link Registry#RAW_ENCODING_ID} as the identifier of the preferred * encoding format. ! * * @param p the public modulus. * @param q the public prime divisor of p-1. * @param g a generator of the unique cyclic group Z* *************** public class DSSPrivateKey *** 87,93 **** /** * Constructs a new instance of a DSSPrivateKey given the * designated arguments. ! * * @param preferredFormat the indetifier of the preferred encoding format to * use when externalizing this key. * @param p the public modulus. --- 87,93 ---- /** * Constructs a new instance of a DSSPrivateKey given the * designated arguments. ! * * @param preferredFormat the indetifier of the preferred encoding format to * use when externalizing this key. * @param p the public modulus. *************** public class DSSPrivateKey *** 110,116 **** * method of a DSS keypair codec object (an instance implementing * {@link gnu.java.security.key.IKeyPairCodec} for DSS keys, and re-constructs * an instance of this object. ! * * @param k the contents of a previously encoded instance of this object. * @exception ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an --- 110,116 ---- * method of a DSS keypair codec object (an instance implementing * {@link gnu.java.security.key.IKeyPairCodec} for DSS keys, and re-constructs * an instance of this object. ! * * @param k the contents of a previously encoded instance of this object. * @exception ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an *************** public class DSSPrivateKey *** 141,147 **** /** * Returns the encoded form of this private key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. --- 141,147 ---- /** * Returns the encoded form of this private key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. *************** public class DSSPrivateKey *** 170,176 **** * Returns true if the designated object is an instance of * {@link DSAPrivateKey} and has the same DSS (Digital Signature Standard) * parameter values as this one. ! * * @param obj the other non-null DSS key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 170,176 ---- * Returns true if the designated object is an instance of * {@link DSAPrivateKey} and has the same DSS (Digital Signature Standard) * parameter values as this one. ! * * @param obj the other non-null DSS key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DSSPublicKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DSSPublicKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.security.interfaces.DSAPubli *** 51,57 **** /** * An object that embodies a DSS (Digital Signature Standard) public key. ! * * @see #getEncoded */ public class DSSPublicKey --- 51,57 ---- /** * An object that embodies a DSS (Digital Signature Standard) public key. ! * * @see #getEncoded */ public class DSSPublicKey *************** public class DSSPublicKey *** 71,77 **** * Conveience constructor. Calls the constructor with 5 arguments passing * {@link Registry#RAW_ENCODING_ID} as the identifier of the preferred * encoding format. ! * * @param p the public modulus. * @param q the public prime divisor of p-1. * @param g a generator of the unique cyclic group Z* --- 71,77 ---- * Conveience constructor. Calls the constructor with 5 arguments passing * {@link Registry#RAW_ENCODING_ID} as the identifier of the preferred * encoding format. ! * * @param p the public modulus. * @param q the public prime divisor of p-1. * @param g a generator of the unique cyclic group Z* *************** public class DSSPublicKey *** 86,92 **** /** * Constructs a new instance of DSSPublicKey given the * designated arguments. ! * * @param preferredFormat the identifier of the preferred encoding format to * use when externalizing this key. * @param p the public modulus. --- 86,92 ---- /** * Constructs a new instance of DSSPublicKey given the * designated arguments. ! * * @param preferredFormat the identifier of the preferred encoding format to * use when externalizing this key. * @param p the public modulus. *************** public class DSSPublicKey *** 109,115 **** * method of a DSS keypair codec object (an instance implementing * {@link gnu.java.security.key.IKeyPairCodec} for DSS keys, and re-constructs * an instance of this object. ! * * @param k the contents of a previously encoded instance of this object. * @exception ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an --- 109,115 ---- * method of a DSS keypair codec object (an instance implementing * {@link gnu.java.security.key.IKeyPairCodec} for DSS keys, and re-constructs * an instance of this object. ! * * @param k the contents of a previously encoded instance of this object. * @exception ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an *************** public class DSSPublicKey *** 140,146 **** /** * Returns the encoded form of this public key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. --- 140,146 ---- /** * Returns the encoded form of this public key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. *************** public class DSSPublicKey *** 169,175 **** * Returns true if the designated object is an instance of * {@link DSAPublicKey} and has the same DSS (Digital Signature Standard) * parameter values as this one. ! * * @param obj the other non-null DSS key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 169,175 ---- * Returns true if the designated object is an instance of * {@link DSAPublicKey} and has the same DSS (Digital Signature Standard) * parameter values as this one. ! * * @param obj the other non-null DSS key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/FIPS186.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/FIPS186.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/dss/FIPS186.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/dss/FIPS186.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FIPS186.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* FIPS186.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class FIPS186 *** 241,247 **** /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ private void nextRandomBytes(byte[] buffer) --- 241,247 ---- /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ private void nextRandomBytes(byte[] buffer) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuRSAKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuRSAKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class GnuRSAKey *** 72,78 **** /** * Trivial protected constructor. ! * * @param defaultFormat the identifier of the encoding format to use by * default when externalizing the key. * @param n the public modulus n. --- 72,78 ---- /** * Trivial protected constructor. ! * * @param defaultFormat the identifier of the encoding format to use by * default when externalizing the key. * @param n the public modulus n. *************** public abstract class GnuRSAKey *** 111,117 **** /** * Returns the modulus n. ! * * @return the modulus n. */ public BigInteger getN() --- 111,117 ---- /** * Returns the modulus n. ! * * @return the modulus n. */ public BigInteger getN() *************** public abstract class GnuRSAKey *** 121,127 **** /** * Returns the public exponent e. ! * * @return the public exponent e. */ public BigInteger getPublicExponent() --- 121,127 ---- /** * Returns the public exponent e. ! * * @return the public exponent e. */ public BigInteger getPublicExponent() *************** public abstract class GnuRSAKey *** 131,137 **** /** * Same as {@link #getPublicExponent()}. ! * * @return the public exponent e. */ public BigInteger getE() --- 131,137 ---- /** * Same as {@link #getPublicExponent()}. ! * * @return the public exponent e. */ public BigInteger getE() *************** public abstract class GnuRSAKey *** 142,148 **** /** * Returns true if the designated object is an instance of * {@link RSAKey} and has the same RSA parameter values as this one. ! * * @param obj the other non-null RSA key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 142,148 ---- /** * Returns true if the designated object is an instance of * {@link RSAKey} and has the same RSA parameter values as this one. ! * * @param obj the other non-null RSA key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuRSAPrivateKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuRSAPrivateKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class GnuRSAPrivateKey *** 92,98 **** * Convenience constructor. Calls the constructor with 5 arguments passing * {@link Registry#RAW_ENCODING_ID} as the identifier of the preferred * encoding format. ! * * @param p the modulus first prime divisor. * @param q the modulus second prime divisor. * @param e the public exponent. --- 92,98 ---- * Convenience constructor. Calls the constructor with 5 arguments passing * {@link Registry#RAW_ENCODING_ID} as the identifier of the preferred * encoding format. ! * * @param p the modulus first prime divisor. * @param q the modulus second prime divisor. * @param e the public exponent. *************** public class GnuRSAPrivateKey *** 106,112 **** /** * Constructs a new instance of a GnuRSAPrivateKey given the * designated arguments. ! * * @param preferredFormat the indetifier of the preferred encoding format to * use when externalizing this key. * @param p the modulus first prime divisor. --- 106,112 ---- /** * Constructs a new instance of a GnuRSAPrivateKey given the * designated arguments. ! * * @param preferredFormat the indetifier of the preferred encoding format to * use when externalizing this key. * @param p the modulus first prime divisor. *************** public class GnuRSAPrivateKey *** 128,134 **** /** * Constructs a new instance of a GnuRSAPrivateKey given the * designated arguments. ! * * @param preferredFormat the indetifier of the preferred encoding format to * use when externalizing this key. * @param n the public modulus, which is also the product of p --- 128,134 ---- /** * Constructs a new instance of a GnuRSAPrivateKey given the * designated arguments. ! * * @param preferredFormat the indetifier of the preferred encoding format to * use when externalizing this key. * @param n the public modulus, which is also the product of p *************** public class GnuRSAPrivateKey *** 173,179 **** * method of an RSA keypair codec object (an instance implementing * {@link IKeyPairCodec} for RSA keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @throws ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an instance --- 173,179 ---- * method of an RSA keypair codec object (an instance implementing * {@link IKeyPairCodec} for RSA keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @throws ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an instance *************** public class GnuRSAPrivateKey *** 229,235 **** /** * Returns the encoded form of this private key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. --- 229,235 ---- /** * Returns the encoded form of this private key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. *************** public class GnuRSAPrivateKey *** 258,264 **** /** * Returns true if the designated object is an instance of this * class and has the same RSA parameter values as this one. ! * * @param obj the other non-null RSA key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 258,264 ---- /** * Returns true if the designated object is an instance of this * class and has the same RSA parameter values as this one. ! * * @param obj the other non-null RSA key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuRSAPublicKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuRSAPublicKey.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class GnuRSAPublicKey *** 72,78 **** * Conveience constructor. Calls the constructor with 3 arguments passing * {@link Registry#RAW_ENCODING_ID} as the identifier of the preferred * encoding format. ! * * @param n the modulus. * @param e the public exponent. */ --- 72,78 ---- * Conveience constructor. Calls the constructor with 3 arguments passing * {@link Registry#RAW_ENCODING_ID} as the identifier of the preferred * encoding format. ! * * @param n the modulus. * @param e the public exponent. */ *************** public class GnuRSAPublicKey *** 84,90 **** /** * Constructs a new instance of GnuRSAPublicKey given the * designated arguments. ! * * @param preferredFormat the identifier of the preferred encoding format to * use when externalizing this key. * @param n the modulus. --- 84,90 ---- /** * Constructs a new instance of GnuRSAPublicKey given the * designated arguments. ! * * @param preferredFormat the identifier of the preferred encoding format to * use when externalizing this key. * @param n the modulus. *************** public class GnuRSAPublicKey *** 102,108 **** * method of an RSA keypair codec object (an instance implementing * {@link IKeyPairCodec} for RSA keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @throws ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an instance --- 102,108 ---- * method of an RSA keypair codec object (an instance implementing * {@link IKeyPairCodec} for RSA keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @throws ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an instance *************** public class GnuRSAPublicKey *** 128,134 **** /** * Returns the encoded form of this public key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. --- 128,134 ---- /** * Returns the encoded form of this public key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. *************** public class GnuRSAPublicKey *** 156,162 **** /** * Returns true if the designated object is an instance of this * class and has the same RSA parameter values as this one. ! * * @param obj the other non-null RSA key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 156,162 ---- /** * Returns true if the designated object is an instance of this * class and has the same RSA parameter values as this one. ! * * @param obj the other non-null RSA key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairGenerator.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairGenerator.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairGenerator.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairGenerator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RSAKeyPairGenerator.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RSAKeyPairGenerator.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class RSAKeyPairGenerator *** 135,141 **** /** * Configures this instance. ! * * @param attributes the map of name/value pairs to use. * @exception IllegalArgumentException if the designated MODULUS_LENGTH value * is less than 1024. --- 135,141 ---- /** * Configures this instance. ! * * @param attributes the map of name/value pairs to use. * @exception IllegalArgumentException if the designated MODULUS_LENGTH value * is less than 1024. *************** public class RSAKeyPairGenerator *** 175,181 **** * The algorithm used here is described in nessie-pss-B.pdf document * which is part of the RSA-PSS submission to NESSIE. *

          ! * * @return an RSA keypair. */ public KeyPair generate() --- 175,181 ---- * The algorithm used here is described in nessie-pss-B.pdf document * which is part of the RSA-PSS submission to NESSIE. *

          ! * * @return an RSA keypair. */ public KeyPair generate() *************** public class RSAKeyPairGenerator *** 225,231 **** /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ private void nextRandomBytes(byte[] buffer) --- 225,231 ---- /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ private void nextRandomBytes(byte[] buffer) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java Tue Jan 11 19:46:05 2011 *************** public class RSAKeyPairPKCS8Codec *** 116,122 **** * coefficient INTEGER, -- (inverse of q) mod p * } *
          ! * * @return the DER encoded form of the ASN.1 representation of the * PrivateKeyInfo field for an RSA {@link PrivateKey}.. * @throw InvalidParameterException if an error occurs during the marshalling --- 116,122 ---- * coefficient INTEGER, -- (inverse of q) mod p * } *
          ! * * @return the DER encoded form of the ASN.1 representation of the * PrivateKeyInfo field for an RSA {@link PrivateKey}.. * @throw InvalidParameterException if an error occurs during the marshalling *************** public class RSAKeyPairPKCS8Codec *** 251,257 **** der = new DERReader(pkBytes); DERValue derRSAPrivateKey = der.read(); DerUtil.checkIsConstructed(derRSAPrivateKey, "Wrong RSAPrivateKey field"); ! val = der.read(); DerUtil.checkIsBigInteger(val, "Wrong RSAPrivateKey Version field"); version = (BigInteger) val.getValue(); --- 251,257 ---- der = new DERReader(pkBytes); DERValue derRSAPrivateKey = der.read(); DerUtil.checkIsConstructed(derRSAPrivateKey, "Wrong RSAPrivateKey field"); ! val = der.read(); DerUtil.checkIsBigInteger(val, "Wrong RSAPrivateKey Version field"); version = (BigInteger) val.getValue(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairRawCodec.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairRawCodec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairRawCodec.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairRawCodec.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RSAKeyPairRawCodec.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RSAKeyPairRawCodec.java -- Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class RSAKeyPairRawCodec *** 190,196 **** * the toByteArray() method on the RSA parameter d, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. */ --- 190,196 ---- * the toByteArray() method on the RSA parameter d, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairX509Codec.java gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairX509Codec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairX509Codec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairX509Codec.java Tue Jan 11 19:46:05 2011 *************** public class RSAKeyPairX509Codec *** 97,110 **** *

          * The subjectPublicKey field, which is a BIT STRING, contains the * DER-encoded form of the RSA public key defined as: ! * *

               *   RSAPublicKey ::= SEQUENCE {
               *     modulus         INTEGER, -- n
               *     publicExponent  INTEGER  -- e
               *   }
               * 
          ! * * @param key the {@link PublicKey} instance to encode. MUST be an instance of * {@link GnuRSAPublicKey}. * @return the ASN.1 representation of the SubjectPublicKeyInfo in an --- 97,110 ---- *

          * The subjectPublicKey field, which is a BIT STRING, contains the * DER-encoded form of the RSA public key defined as: ! * *

               *   RSAPublicKey ::= SEQUENCE {
               *     modulus         INTEGER, -- n
               *     publicExponent  INTEGER  -- e
               *   }
               * 
          ! * * @param key the {@link PublicKey} instance to encode. MUST be an instance of * {@link GnuRSAPublicKey}. * @return the ASN.1 representation of the SubjectPublicKeyInfo in an diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/pkcs/PKCS7Data.java gcc-4.6.0/libjava/classpath/gnu/java/security/pkcs/PKCS7Data.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/pkcs/PKCS7Data.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/pkcs/PKCS7Data.java Tue Jan 11 19:46:05 2011 *************** public class PKCS7Data *** 52,58 **** /** * Constructs a new instance of PKCS7Data with the possibly * null (implicetly referenced) content data. ! * * @param data the raw bytes of the data to use in a PKCS#7 framework. */ public PKCS7Data(byte[] data) --- 52,58 ---- /** * Constructs a new instance of PKCS7Data with the possibly * null (implicetly referenced) content data. ! * * @param data the raw bytes of the data to use in a PKCS#7 framework. */ public PKCS7Data(byte[] data) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/pkcs/PKCS7SignedData.java gcc-4.6.0/libjava/classpath/gnu/java/security/pkcs/PKCS7SignedData.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/pkcs/PKCS7SignedData.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/pkcs/PKCS7SignedData.java Tue Jan 11 19:46:05 2011 *************** public class PKCS7SignedData *** 333,339 **** /** * Constructs a new instance of PKCS7SignedData given a * designated set of fields. ! * * @param digestAlgorithms the collection of DigestAlgorithm elements. Each * DigestAlgorithm is a {@link List} of two elements, the first is an * OID while the second is dependent on the value of the OID element. --- 333,339 ---- /** * Constructs a new instance of PKCS7SignedData given a * designated set of fields. ! * * @param digestAlgorithms the collection of DigestAlgorithm elements. Each * DigestAlgorithm is a {@link List} of two elements, the first is an * OID while the second is dependent on the value of the OID element. *************** public class PKCS7SignedData *** 401,407 **** /** * Writes to the designated output stream the DER encoding of the current * contents of this instance. ! * * @param out the destination output stream. * @throws IOException if an I/O related exception occurs during the process. * @throws CRLException if an exception occurs while encoding the certificate --- 401,407 ---- /** * Writes to the designated output stream the DER encoding of the current * contents of this instance. ! * * @param out the destination output stream. * @throws IOException if an I/O related exception occurs during the process. * @throws CRLException if an exception occurs while encoding the certificate diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/pkcs/SignerInfo.java gcc-4.6.0/libjava/classpath/gnu/java/security/pkcs/SignerInfo.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/pkcs/SignerInfo.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/pkcs/SignerInfo.java Tue Jan 11 19:46:05 2011 *************** public class SignerInfo *** 90,98 **** * issuer Name, * serialNumber CertificateSerialNumber * } ! * * DigestAlgorithmIdentifier ::= AlgorithmIdentifier ! * * DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier * * EncryptedDigest ::= OCTET STRING --- 90,98 ---- * issuer Name, * serialNumber CertificateSerialNumber * } ! * * DigestAlgorithmIdentifier ::= AlgorithmIdentifier ! * * DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier * * EncryptedDigest ::= OCTET STRING *************** public class SignerInfo *** 269,275 **** /** * Constructs a new instance of SignerInfo given a designated * set of fields. ! * * @param issuer the X.500 Principal name of the signer referenced by this * instance. * @param serialNumber the serial number of the certificate being used. Both --- 269,275 ---- /** * Constructs a new instance of SignerInfo given a designated * set of fields. ! * * @param issuer the X.500 Principal name of the signer referenced by this * instance. * @param serialNumber the serial number of the certificate being used. Both *************** public class SignerInfo *** 369,375 **** /** * Writes to the designated output stream the DER encoding of the current * contents of this instance. ! * * @param out the destination output stream. * @throws IOException if an I/O related exception occurs during the process. */ --- 369,375 ---- /** * Writes to the designated output stream the DER encoding of the current * contents of this instance. ! * * @param out the destination output stream. * @throws IOException if an I/O related exception occurs during the process. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/prng/BasePRNG.java gcc-4.6.0/libjava/classpath/gnu/java/security/prng/BasePRNG.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/prng/BasePRNG.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/prng/BasePRNG.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BasePRNG.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BasePRNG.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class BasePRNG *** 60,66 **** /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name of this instance. */ protected BasePRNG(String name) --- 60,66 ---- /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name of this instance. */ protected BasePRNG(String name) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/prng/EntropySource.java gcc-4.6.0/libjava/classpath/gnu/java/security/prng/EntropySource.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/prng/EntropySource.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/prng/EntropySource.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EntropySource.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* EntropySource.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface EntropySource *** 58,61 **** * @return The next random bytes. */ byte[] nextBytes(); ! } \ No newline at end of file --- 58,61 ---- * @return The next random bytes. */ byte[] nextBytes(); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/prng/IRandom.java gcc-4.6.0/libjava/classpath/gnu/java/security/prng/IRandom.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/prng/IRandom.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/prng/IRandom.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IRandom.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IRandom.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IRandom *** 79,85 **** { /** * Returns the canonical name of this instance. ! * * @return the canonical name of this instance. */ String name(); --- 79,85 ---- { /** * Returns the canonical name of this instance. ! * * @return the canonical name of this instance. */ String name(); *************** public interface IRandom *** 87,93 **** /** * Initialises the pseudo-random number generator scheme with the appropriate * attributes. ! * * @param attributes a set of name-value pairs that describe the desired * future instance behaviour. * @exception IllegalArgumentException if at least one of the defined name/ --- 87,93 ---- /** * Initialises the pseudo-random number generator scheme with the appropriate * attributes. ! * * @param attributes a set of name-value pairs that describe the desired * future instance behaviour. * @exception IllegalArgumentException if at least one of the defined name/ *************** public interface IRandom *** 97,103 **** /** * Returns the next 8 bits of random data generated from this instance. ! * * @return the next 8 bits of random data generated from this instance. * @exception IllegalStateException if the instance is not yet initialised. * @exception LimitReachedException if this instance has reached its --- 97,103 ---- /** * Returns the next 8 bits of random data generated from this instance. ! * * @return the next 8 bits of random data generated from this instance. * @exception IllegalStateException if the instance is not yet initialised. * @exception LimitReachedException if this instance has reached its *************** public interface IRandom *** 110,116 **** * Fills the designated byte array, starting from byte at index * offset, for a maximum of length bytes with * the output of this generator instance. ! * * @param out the placeholder to contain the generated random bytes. * @param offset the starting index in out to consider. This method * does nothing if this parameter is not within 0 and --- 110,116 ---- * Fills the designated byte array, starting from byte at index * offset, for a maximum of length bytes with * the output of this generator instance. ! * * @param out the placeholder to contain the generated random bytes. * @param offset the starting index in out to consider. This method * does nothing if this parameter is not within 0 and *************** public interface IRandom *** 132,138 **** * Implementations are not required to implement this method in any meaningful * way; this may be a no-operation, and implementations may throw an * {@link UnsupportedOperationException}. ! * * @param b The byte to add. */ void addRandomByte(byte b); --- 132,138 ---- * Implementations are not required to implement this method in any meaningful * way; this may be a no-operation, and implementations may throw an * {@link UnsupportedOperationException}. ! * * @param b The byte to add. */ void addRandomByte(byte b); *************** public interface IRandom *** 144,150 **** * Implementations are not required to implement this method in any meaningful * way; this may be a no-operation, and implementations may throw an * {@link UnsupportedOperationException}. ! * * @param in The buffer of new random bytes to add. */ void addRandomBytes(byte[] in); --- 144,150 ---- * Implementations are not required to implement this method in any meaningful * way; this may be a no-operation, and implementations may throw an * {@link UnsupportedOperationException}. ! * * @param in The buffer of new random bytes to add. */ void addRandomBytes(byte[] in); *************** public interface IRandom *** 156,162 **** * Implementations are not required to implement this method in any meaningful * way; this may be a no-operation, and implementations may throw an * {@link UnsupportedOperationException}. ! * * @param in The buffer of new random bytes to add. * @param offset The offset from whence to begin reading random bytes. * @param length The number of random bytes to add. --- 156,162 ---- * Implementations are not required to implement this method in any meaningful * way; this may be a no-operation, and implementations may throw an * {@link UnsupportedOperationException}. ! * * @param in The buffer of new random bytes to add. * @param offset The offset from whence to begin reading random bytes. * @param length The number of random bytes to add. *************** public interface IRandom *** 167,173 **** /** * Returns a clone copy of this instance. ! * * @return a clone copy of this instance. */ Object clone() throws CloneNotSupportedException; --- 167,173 ---- /** * Returns a clone copy of this instance. ! * * @return a clone copy of this instance. */ Object clone() throws CloneNotSupportedException; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/prng/LimitReachedException.java gcc-4.6.0/libjava/classpath/gnu/java/security/prng/LimitReachedException.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/prng/LimitReachedException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/prng/LimitReachedException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LimitReachedException.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* LimitReachedException.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/prng/MDGenerator.java gcc-4.6.0/libjava/classpath/gnu/java/security/prng/MDGenerator.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/prng/MDGenerator.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/prng/MDGenerator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MDGenerator.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MDGenerator.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/prng/PRNGFactory.java gcc-4.6.0/libjava/classpath/gnu/java/security/prng/PRNGFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/prng/PRNGFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/prng/PRNGFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PRNGFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PRNGFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class PRNGFactory *** 57,63 **** /** * Returns an instance of a padding algorithm given its name. ! * * @param prng the case-insensitive name of the PRNG. * @return an instance of the pseudo-random number generator. * @exception InternalError if the implementation does not pass its self- --- 57,63 ---- /** * Returns an instance of a padding algorithm given its name. ! * * @param prng the case-insensitive name of the PRNG. * @return an instance of the pseudo-random number generator. * @exception InternalError if the implementation does not pass its self- *************** public class PRNGFactory *** 79,85 **** /** * Returns a {@link Set} of names of padding algorithms supported by this * Factory. ! * * @return a {@link Set} of pseudo-random number generator algorithm names * (Strings). */ --- 79,85 ---- /** * Returns a {@link Set} of names of padding algorithms supported by this * Factory. ! * * @return a {@link Set} of pseudo-random number generator algorithm names * (Strings). */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/prng/RandomEventListener.java gcc-4.6.0/libjava/classpath/gnu/java/security/prng/RandomEventListener.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/prng/RandomEventListener.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/prng/RandomEventListener.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RandomEventListener.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RandomEventListener.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/provider/DefaultPolicy.java gcc-4.6.0/libjava/classpath/gnu/java/security/provider/DefaultPolicy.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/provider/DefaultPolicy.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/security/provider/DefaultPolicy.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.security.PermissionCollectio *** 44,50 **** import java.security.Permissions; import java.security.Policy; ! /** * This is just a stub policy implementation which grants all permissions * to any code source. FIXME: This should be replaced with a real * implementation that reads the policy configuration from a file, like --- 44,50 ---- import java.security.Permissions; import java.security.Policy; ! /** * This is just a stub policy implementation which grants all permissions * to any code source. FIXME: This should be replaced with a real * implementation that reads the policy configuration from a file, like *************** public class DefaultPolicy extends Polic *** 60,66 **** perms.add(allPermission); return perms; } ! public void refresh() { // Nothing. --- 60,66 ---- perms.add(allPermission); return perms; } ! public void refresh() { // Nothing. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java gcc-4.6.0/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java Tue Jan 11 19:46:05 2011 *************** import java.util.logging.Logger; *** 91,97 **** * See RFC 3280: Internet X.509 * Public Key Infrastructure Certificate and Certificate Revocation List (CRL) * Profile. ! * * @author Casey Marshall (rsdio@metastatic.org) */ public class PKIXCertPathValidatorImpl --- 91,97 ---- * See RFC 3280: Internet X.509 * Public Key Infrastructure Certificate and Certificate Revocation List (CRL) * Profile. ! * * @author Casey Marshall (rsdio@metastatic.org) */ public class PKIXCertPathValidatorImpl *************** public class PKIXCertPathValidatorImpl *** 403,409 **** *
        10. The CRL is signed by a certificate in the given cert stores, and that * cert is signed by one of the certificates in the path.
        11. * ! * * @param crl The CRL being checked. * @param path The path this CRL is being checked against. * @param now The value to use as 'now'. --- 403,409 ---- *
        12. The CRL is signed by a certificate in the given cert stores, and that * cert is signed by one of the certificates in the path.
        13. * ! * * @param crl The CRL being checked. * @param path The path this CRL is being checked against. * @param now The value to use as 'now'. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/BaseSignature.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/BaseSignature.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/BaseSignature.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/BaseSignature.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BaseSignature.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BaseSignature.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class BaseSignature *** 77,83 **** /** * Trivial constructor. ! * * @param schemeName the name of this signature scheme. * @param md the underlying instance of the message digest algorithm. * @throws IllegalArgumentException if the designated hash instance is --- 77,83 ---- /** * Trivial constructor. ! * * @param schemeName the name of this signature scheme. * @param md the underlying instance of the message digest algorithm. * @throws IllegalArgumentException if the designated hash instance is *************** public abstract class BaseSignature *** 174,180 **** /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ protected void nextRandomBytes(byte[] buffer) --- 174,180 ---- /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ protected void nextRandomBytes(byte[] buffer) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/ISignature.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/ISignature.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/ISignature.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/ISignature.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ISignature.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ISignature.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface ISignature *** 75,88 **** /** * Returns the canonical name of this signature scheme. ! * * @return the canonical name of this instance. */ String name(); /** * Initialises this instance for signature verification. ! * * @param attributes the attributes to use for setting up this instance. * @throws IllegalArgumentException if the designated public key is not * appropriate for this signature scheme. --- 75,88 ---- /** * Returns the canonical name of this signature scheme. ! * * @return the canonical name of this instance. */ String name(); /** * Initialises this instance for signature verification. ! * * @param attributes the attributes to use for setting up this instance. * @throws IllegalArgumentException if the designated public key is not * appropriate for this signature scheme. *************** public interface ISignature *** 93,99 **** /** * Initialises this instance for signature generation. ! * * @param attributes the attributes to use for setting up this instance. * @throws IllegalArgumentException if the designated private key is not * appropriate for this signature scheme. --- 93,99 ---- /** * Initialises this instance for signature generation. ! * * @param attributes the attributes to use for setting up this instance. * @throws IllegalArgumentException if the designated private key is not * appropriate for this signature scheme. *************** public interface ISignature *** 104,110 **** /** * Digests one byte of a message for signing or verification purposes. ! * * @param b the message byte to digest. * @throws IllegalStateException if this instance was not setup for signature * generation/verification. --- 104,110 ---- /** * Digests one byte of a message for signing or verification purposes. ! * * @param b the message byte to digest. * @throws IllegalStateException if this instance was not setup for signature * generation/verification. *************** public interface ISignature *** 114,120 **** /** * Digests a sequence of bytes from a message for signing or verification * purposes. ! * * @param buffer the byte sequence to consider. * @param offset the byte poisition in buffer of the first byte * to consider. --- 114,120 ---- /** * Digests a sequence of bytes from a message for signing or verification * purposes. ! * * @param buffer the byte sequence to consider. * @param offset the byte poisition in buffer of the first byte * to consider. *************** public interface ISignature *** 129,135 **** /** * Terminates a signature generation phase by digesting and processing the * context of the underlying message digest algorithm instance. ! * * @return a {@link Object} representing the native output of the signature * scheme implementation. * @throws IllegalStateException if this instance was not setup for signature --- 129,135 ---- /** * Terminates a signature generation phase by digesting and processing the * context of the underlying message digest algorithm instance. ! * * @return a {@link Object} representing the native output of the signature * scheme implementation. * @throws IllegalStateException if this instance was not setup for signature *************** public interface ISignature *** 140,146 **** /** * Terminates a signature verification phase by digesting and processing the * context of the underlying message digest algorithm instance. ! * * @param signature a native signature object previously generated by an * invocation of the sign() method. * @return true iff the outpout of the verification phase --- 140,146 ---- /** * Terminates a signature verification phase by digesting and processing the * context of the underlying message digest algorithm instance. ! * * @param signature a native signature object previously generated by an * invocation of the sign() method. * @return true iff the outpout of the verification phase *************** public interface ISignature *** 153,159 **** /** * Returns a clone copy of this instance. ! * * @return a clone copy of this instance. */ Object clone(); --- 153,159 ---- /** * Returns a clone copy of this instance. ! * * @return a clone copy of this instance. */ Object clone(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/ISignatureCodec.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/ISignatureCodec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/ISignatureCodec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/ISignatureCodec.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ISignatureCodec.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ISignatureCodec.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/SignatureCodecFactory.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/SignatureCodecFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/SignatureCodecFactory.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/SignatureCodecFactory.java Tue Jan 11 19:46:05 2011 *************** public class SignatureCodecFactory *** 74,80 **** * When the encoding format name is missing, the Raw encoding format is * assumed. When this is the case the trailing forward slash is discarded from * the name. ! * * @param name the case-insensitive, possibly composed, signature codec name. * @return an instance of the signaturecodec, or null if none * found. --- 74,80 ---- * When the encoding format name is missing, the Raw encoding format is * assumed. When this is the case the trailing forward slash is discarded from * the name. ! * * @param name the case-insensitive, possibly composed, signature codec name. * @return an instance of the signaturecodec, or null if none * found. *************** public class SignatureCodecFactory *** 107,113 **** /** * Returns an instance of a signature codec given the canonical name of the * signature algorithm, and that of the encoding format. ! * * @param name the case-insensitive signature algorithm name. * @param format the name of the format to use when encodigng/decoding * signatures generated by the named algorithm. --- 107,113 ---- /** * Returns an instance of a signature codec given the canonical name of the * signature algorithm, and that of the encoding format. ! * * @param name the case-insensitive signature algorithm name. * @param format the name of the format to use when encodigng/decoding * signatures generated by the named algorithm. *************** public class SignatureCodecFactory *** 127,133 **** * Returns an instance of a signature codec given the canonical name of the * signature algorithm, and the identifier of the format to use when * encoding/decoding signatures generated by that algorithm. ! * * @param name the case-insensitive signature algorithm name. * @param formatID the identifier of the format to use when encoding / * decoding signatures generated by the designated algorithm. --- 127,133 ---- * Returns an instance of a signature codec given the canonical name of the * signature algorithm, and the identifier of the format to use when * encoding/decoding signatures generated by that algorithm. ! * * @param name the case-insensitive signature algorithm name. * @param formatID the identifier of the format to use when encoding / * decoding signatures generated by the designated algorithm. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/SignatureFactory.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/SignatureFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/SignatureFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/SignatureFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SignatureFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SignatureFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SignatureFactory *** 61,67 **** /** * Returns an instance of a signature-with-appendix scheme given its name. ! * * @param ssa the case-insensitive signature-with-appendix scheme name. * @return an instance of the scheme, or null if none found. */ --- 61,67 ---- /** * Returns an instance of a signature-with-appendix scheme given its name. ! * * @param ssa the case-insensitive signature-with-appendix scheme name. * @return an instance of the scheme, or null if none found. */ *************** public class SignatureFactory *** 84,90 **** /** * Returns a {@link Set} of signature-with-appendix scheme names supported by * this Factory. ! * * @return a {@link Set} of signature-with-appendix scheme names (Strings). */ public static synchronized final Set getNames() --- 84,90 ---- /** * Returns a {@link Set} of signature-with-appendix scheme names supported by * this Factory. ! * * @return a {@link Set} of signature-with-appendix scheme names (Strings). */ public static synchronized final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/dss/DSSSignature.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/dss/DSSSignature.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/dss/DSSSignature.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/dss/DSSSignature.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DSSSignature.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DSSSignature.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class DSSSignature *** 211,217 **** /** * Returns the output of a signature generation phase. ! * * @return an object encapsulating the DSS signature pair r and * s. */ --- 211,217 ---- /** * Returns the output of a signature generation phase. ! * * @return an object encapsulating the DSS signature pair r and * s. */ *************** public class DSSSignature *** 223,229 **** /** * Returns the output of a previously generated signature object as a pair of * {@link java.math.BigInteger}. ! * * @return the DSS signature pair r and s. */ private BigInteger[] decodeSignature(Object signature) --- 223,229 ---- /** * Returns the output of a previously generated signature object as a pair of * {@link java.math.BigInteger}. ! * * @return the DSS signature pair r and s. */ private BigInteger[] decodeSignature(Object signature) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/dss/DSSSignatureRawCodec.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/dss/DSSSignatureRawCodec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/dss/DSSSignatureRawCodec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/dss/DSSSignatureRawCodec.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DSSSignatureRawCodec.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DSSSignatureRawCodec.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class DSSSignatureRawCodec *** 78,84 **** * the toByteArray() method on the DSS parameter s. * * ! * * @param signature the signature to encode, consisting of the two DSS * parameters r and s as a * {@link BigInteger} array. --- 78,84 ---- * the toByteArray() method on the DSS parameter s. * * ! * * @param signature the signature to encode, consisting of the two DSS * parameters r and s as a * {@link BigInteger} array. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/dss/DSSSignatureX509Codec.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/dss/DSSSignatureX509Codec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/dss/DSSSignatureX509Codec.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/dss/DSSSignatureX509Codec.java Tue Jan 11 19:46:05 2011 *************** import java.util.ArrayList; *** 60,66 **** *

          * Digital signatures when transmitted in an X.509 certificates are encoded * in DER (Distinguished Encoding Rules) as a BIT STRING; i.e. ! * *

             * Certificate ::= SEQUENCE {
             *   tbsCertificate       TBSCertificate,
          --- 60,66 ----
             * 

          * Digital signatures when transmitted in an X.509 certificates are encoded * in DER (Distinguished Encoding Rules) as a BIT STRING; i.e. ! * *

             * Certificate ::= SEQUENCE {
             *   tbsCertificate       TBSCertificate,
          *************** import java.util.ArrayList;
          *** 77,83 ****
             * generates two MPIs, commonly called r and s, as the
             * result of digitally signing a message, these two numbers will be transferred
             * as the following ASN.1 structure:
          !  * 
             * 
             *   Dss-Sig-Value ::= SEQUENCE {
             *     r  INTEGER,
          --- 77,83 ----
             * generates two MPIs, commonly called r and s, as the
             * result of digitally signing a message, these two numbers will be transferred
             * as the following ASN.1 structure:
          !  *
             * 
             *   Dss-Sig-Value ::= SEQUENCE {
             *     r  INTEGER,
          *************** public class DSSSignatureX509Codec
          *** 112,118 ****
               * Encodes a DSS Signature output as the signature raw bytes which can
               * be used to construct an ASN.1 DER-encoded BIT STRING as defined in the
               * documentation of this class.
          !    * 
               * @param signature the output of the DSS signature algorithm; i.e. the value
               *          returned by the invocation of
               *          {@link gnu.java.security.sig.ISignature#sign()} method. In the
          --- 112,118 ----
               * Encodes a DSS Signature output as the signature raw bytes which can
               * be used to construct an ASN.1 DER-encoded BIT STRING as defined in the
               * documentation of this class.
          !    *
               * @param signature the output of the DSS signature algorithm; i.e. the value
               *          returned by the invocation of
               *          {@link gnu.java.security.sig.ISignature#sign()} method. In the
          *************** public class DSSSignatureX509Codec
          *** 154,160 ****
            
              /**
               * Decodes a signature as defined in the documentation of this class.
          !    * 
               * @param input the byte array to unmarshall into a valid DSS signature
               *          instance; i.e. an array of two MPIs. MUST NOT be null.
               * @return an array of two MPIs, r and s in this
          --- 154,160 ----
            
              /**
               * Decodes a signature as defined in the documentation of this class.
          !    *
               * @param input the byte array to unmarshall into a valid DSS signature
               *          instance; i.e. an array of two MPIs. MUST NOT be null.
               * @return an array of two MPIs, r and s in this
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* EME_PKCS1_V1_5.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* EME_PKCS1_V1_5.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class EME_PKCS1_V1_5
          *** 104,110 ****
               * 
          *

          * This method uses a default PRNG to obtain the padding bytes. ! * * @param M the message to encode. * @return the encoded message EM. */ --- 104,110 ---- *

          *

          * This method uses a default PRNG to obtain the padding bytes. ! * * @param M the message to encode. * @return the encoded message EM. */ *************** public class EME_PKCS1_V1_5 *** 133,139 **** * Similar to {@link #encode(byte[])} method, except that the source of * randomness to use for obtaining the padding bytes (an instance of * {@link IRandom}) is given as a parameter. ! * * @param M the message to encode. * @param irnd the {@link IRandom} instance to use as a source of randomness. * @return the encoded message EM. --- 133,139 ---- * Similar to {@link #encode(byte[])} method, except that the source of * randomness to use for obtaining the padding bytes (an instance of * {@link IRandom}) is given as a parameter. ! * * @param M the message to encode. * @param irnd the {@link IRandom} instance to use as a source of randomness. * @return the encoded message EM. *************** public class EME_PKCS1_V1_5 *** 173,179 **** /** * Similar to the {@link #encode(byte[], IRandom)} method, except that the * source of randmoness is an instance of {@link Random}. ! * * @param M the message to encode. * @param rnd the {@link Random} instance to use as a source of randomness. * @return the encoded message EM. --- 173,179 ---- /** * Similar to the {@link #encode(byte[], IRandom)} method, except that the * source of randmoness is an instance of {@link Random}. ! * * @param M the message to encode. * @param rnd the {@link Random} instance to use as a source of randomness. * @return the encoded message EM. *************** public class EME_PKCS1_V1_5 *** 213,219 **** * hexadecimal value 0x00 to separate PS from * M, or if the length of PS is less than * 8 octets, output "decryption error" and stop. ! * * @param EM the designated encoded message. * @return the decoded message M framed in the designated * EM value. --- 213,219 ---- * hexadecimal value 0x00 to separate PS from * M, or if the length of PS is less than * 8 octets, output "decryption error" and stop. ! * * @param EM the designated encoded message. * @return the decoded message M framed in the designated * EM value. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EMSA_PKCS1_V1_5.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* EMSA_PKCS1_V1_5.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PSS.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PSS.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PSS.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PSS.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EMSA_PSS.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* EMSA_PSS.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class EMSA_PSS *** 83,89 **** /** * Trivial private constructor to enforce use through Factory method. ! * * @param hash the message digest instance to use with this scheme instance. */ private EMSA_PSS(IMessageDigest hash) --- 83,89 ---- /** * Trivial private constructor to enforce use through Factory method. ! * * @param hash the message digest instance to use with this scheme instance. */ private EMSA_PSS(IMessageDigest hash) *************** public class EMSA_PSS *** 97,103 **** /** * Returns an instance of this object given a designated name of a hash * function. ! * * @param mdName the canonical name of a hash function. * @return an instance of this object configured for use with the designated * options. --- 97,103 ---- /** * Returns an instance of this object given a designated name of a hash * function. ! * * @param mdName the canonical name of a hash function. * @return an instance of this object configured for use with the designated * options. *************** public class EMSA_PSS *** 118,124 **** * M using a hash function and maps the result to an encoded * message EM of a specified length using a mask generation * function. ! * * @param mHash the byte sequence resulting from applying the message digest * algorithm Hash to the message M. * @param emBits the maximal bit length of the integer OS2IP(EM), at least --- 118,124 ---- * M using a hash function and maps the result to an encoded * message EM of a specified length using a mask generation * function. ! * * @param mHash the byte sequence resulting from applying the message digest * algorithm Hash to the message M. * @param emBits the maximal bit length of the integer OS2IP(EM), at least *************** public class EMSA_PSS *** 192,198 **** * The decoding operation EMSA-PSS-Decode recovers the message hash from an * encoded message EM and compares it to the hash of * M. ! * * @param mHash the byte sequence resulting from applying the message digest * algorithm Hash to the message M. * @param EM the encoded message, an octet string of length --- 192,198 ---- * The decoding operation EMSA-PSS-Decode recovers the message hash from an * encoded message EM and compares it to the hash of * M. ! * * @param mHash the byte sequence resulting from applying the message digest * algorithm Hash to the message M. * @param EM the encoded message, an octet string of length *************** public class EMSA_PSS *** 324,330 **** * the output. The provable security of RSA-PSS relies on the random nature of * the output of the mask generation function, which in turn relies on the * random nature of the underlying hash function. ! * * @param Z a seed. * @param l the desired output length in octets. * @return the mask. --- 324,330 ---- * the output. The provable security of RSA-PSS relies on the random nature of * the output of the mask generation function, which in turn relies on the * random nature of the underlying hash function. ! * * @param Z a seed. * @param l the desired output length in octets. * @return the mask. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSA.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSA.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSA.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSA.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RSA.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RSA.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class RSA *** 87,93 **** * RSA private key is a valid one, this method computes a signature * representative for a designated message representative signed * by the holder of the designated RSA private key. ! * * @param K the RSA private key. * @param m the message representative: an integer between * 0 and n - 1, where n --- 87,93 ---- * RSA private key is a valid one, this method computes a signature * representative for a designated message representative signed * by the holder of the designated RSA private key. ! * * @param K the RSA private key. * @param m the message representative: an integer between * 0 and n - 1, where n *************** public class RSA *** 117,123 **** * representative for the designated signature representative * generated by an RSA private key, for a message intended for the holder of * the designated RSA public key. ! * * @param K the RSA public key. * @param s the signature representative, an integer between * 0 and n - 1, where n --- 117,123 ---- * representative for the designated signature representative * generated by an RSA private key, for a message intended for the holder of * the designated RSA public key. ! * * @param K the RSA public key. * @param s the signature representative, an integer between * 0 and n - 1, where n *************** public class RSA *** 143,149 **** /** * An implementation of the RSAEP algorithm. ! * * @param K the recipient's RSA public key. * @param m the message representative as an MPI. * @return the resulting MPI --an MPI between 0 and --- 143,149 ---- /** * An implementation of the RSAEP algorithm. ! * * @param K the recipient's RSA public key. * @param m the message representative as an MPI. * @return the resulting MPI --an MPI between 0 and *************** public class RSA *** 170,176 **** /** * An implementation of the RSADP algorithm. ! * * @param K the recipient's RSA private key. * @param c the ciphertext representative as an MPI. * @return the message representative, an MPI between 0 and --- 170,176 ---- /** * An implementation of the RSADP algorithm. ! * * @param K the recipient's RSA private key. * @param c the ciphertext representative as an MPI. * @return the message representative, an MPI between 0 and *************** public class RSA *** 197,203 **** /** * Converts a multi-precision integer (MPI) s into an * octet sequence of length k. ! * * @param s the multi-precision integer to convert. * @param k the length of the output. * @return the result of the transform. --- 197,203 ---- /** * Converts a multi-precision integer (MPI) s into an * octet sequence of length k. ! * * @param s the multi-precision integer to convert. * @param k the length of the output. * @return the result of the transform. *************** public class RSA *** 302,308 **** /** * Returns a random MPI with a random bit-length of the form 8b, * where b is in the range [32..64]. ! * * @return a random MPI whose length in bytes is between 32 and 64 inclusive. */ private static final BigInteger newR(final BigInteger N) --- 302,308 ---- /** * Returns a random MPI with a random bit-length of the form 8b, * where b is in the range [32..64]. ! * * @return a random MPI whose length in bytes is between 32 and 64 inclusive. */ private static final BigInteger newR(final BigInteger N) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RSAPKCS1V1_5Signature.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RSAPKCS1V1_5Signature.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class RSAPKCS1V1_5Signature *** 85,91 **** /** * Constructs an instance of this object using the designated message digest * algorithm as its underlying hash function. ! * * @param mdName the canonical name of the underlying hash function. */ public RSAPKCS1V1_5Signature(final String mdName) --- 85,91 ---- /** * Constructs an instance of this object using the designated message digest * algorithm as its underlying hash function. ! * * @param mdName the canonical name of the underlying hash function. */ public RSAPKCS1V1_5Signature(final String mdName) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java Tue Jan 11 19:46:05 2011 *************** public class RSAPKCS1V1_5SignatureRawCod *** 71,77 **** * signature bytes in internet order, *

        14. the RSA-PKCS#1 (v1.5) signature bytes in internet order.
        15. * ! * * @param signature the signature to encode, consisting of the output of the * sign() method of a {@link RSAPKCS1V1_5Signature} * instance --a byte array. --- 71,77 ---- * signature bytes in internet order, *
        16. the RSA-PKCS#1 (v1.5) signature bytes in internet order.
        17. * ! * * @param signature the signature to encode, consisting of the output of the * sign() method of a {@link RSAPKCS1V1_5Signature} * instance --a byte array. *************** public class RSAPKCS1V1_5SignatureRawCod *** 116,122 **** /** * Returns the decoded object from a designated input assumed to have been * generated by the {@link #encodeSignature(Object)} method. ! * * @param input the input bytes of a previously Raw-encoded RSA PKCS1 (v1.5) * signature. * @return the signature object. --- 116,122 ---- /** * Returns the decoded object from a designated input assumed to have been * generated by the {@link #encodeSignature(Object)} method. ! * * @param input the input bytes of a previously Raw-encoded RSA PKCS1 (v1.5) * signature. * @return the signature object. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java Tue Jan 11 19:46:05 2011 *************** import java.security.InvalidParameterExc *** 51,57 **** *

          * Digital signatures when transmitted in an X.509 certificates are encoded * in DER (Distinguished Encoding Rules) as a BIT STRING; i.e. ! * *

             * Certificate ::= SEQUENCE {
             *   tbsCertificate       TBSCertificate,
          --- 51,57 ----
             * 

          * Digital signatures when transmitted in an X.509 certificates are encoded * in DER (Distinguished Encoding Rules) as a BIT STRING; i.e. ! * *

             * Certificate ::= SEQUENCE {
             *   tbsCertificate       TBSCertificate,
          *************** public class RSAPKCS1V1_5SignatureX509Co
          *** 95,101 ****
              /**
               * Encodes an RSA Signature output as a signature BIT STRING as
               * defined in the documentation of this class.
          !    * 
               * @param signature the output of the RSA PKCS1 (v1.5) signature algorithm;
               *          i.e. the value returned by the invocation of
               *          {@link gnu.java.security.sig.ISignature#sign()} method. In the
          --- 95,101 ----
              /**
               * Encodes an RSA Signature output as a signature BIT STRING as
               * defined in the documentation of this class.
          !    *
               * @param signature the output of the RSA PKCS1 (v1.5) signature algorithm;
               *          i.e. the value returned by the invocation of
               *          {@link gnu.java.security.sig.ISignature#sign()} method. In the
          *************** public class RSAPKCS1V1_5SignatureX509Co
          *** 111,117 ****
            
              /**
               * Decodes a signature as defined in the documentation of this class.
          !    * 
               * @param input the byte array to unmarshall into a valid RSA PKCS1 (v1.5)
               *          signature instance; i.e. a byte array. MUST NOT be null.
               * @return an array of raw bytes decoded from the designated input. In the
          --- 111,117 ----
            
              /**
               * Decodes a signature as defined in the documentation of this class.
          !    *
               * @param input the byte array to unmarshall into a valid RSA PKCS1 (v1.5)
               *          signature instance; i.e. a byte array. MUST NOT be null.
               * @return an array of raw bytes decoded from the designated input. In the
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignature.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignature.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignature.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignature.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* RSAPSSSignature.java -- 
               Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* RSAPSSSignature.java --
               Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class RSAPSSSignature
          *** 95,101 ****
              /**
               * Constructs an instance of this object using the designated message digest
               * algorithm as its underlying hash function, and having 0-octet salt.
          !    * 
               * @param mdName the canonical name of the underlying hash function.
               */
              public RSAPSSSignature(String mdName)
          --- 95,101 ----
              /**
               * Constructs an instance of this object using the designated message digest
               * algorithm as its underlying hash function, and having 0-octet salt.
          !    *
               * @param mdName the canonical name of the underlying hash function.
               */
              public RSAPSSSignature(String mdName)
          *************** public class RSAPSSSignature
          *** 106,112 ****
              /**
               * Constructs an instance of this object using the designated message digest
               * algorithm as its underlying hash function.
          !    * 
               * @param mdName the canonical name of the underlying hash function.
               * @param sLen the desired length in octets of the salt to use for encoding /
               *          decoding signatures.
          --- 106,112 ----
              /**
               * Constructs an instance of this object using the designated message digest
               * algorithm as its underlying hash function.
          !    *
               * @param mdName the canonical name of the underlying hash function.
               * @param sLen the desired length in octets of the salt to use for encoding /
               *          decoding signatures.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* RSAPSSSignatureRawCodec.java -- 
               Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* RSAPSSSignatureRawCodec.java --
               Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class RSAPSSSignatureRawCodec
          *** 72,78 ****
               * bytes in internet order,
               * 
        18. the RSA-PSS signature bytes in internet order.
        19. * ! * * @param signature the signature to encode, consisting of the output of the * sign() method of a {@link RSAPSSSignature} instance * --a byte array. --- 72,78 ---- * bytes in internet order, *
        20. the RSA-PSS signature bytes in internet order.
        21. * ! * * @param signature the signature to encode, consisting of the output of the * sign() method of a {@link RSAPSSSignature} instance * --a byte array. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSASignatureFactory.java gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSASignatureFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/sig/rsa/RSASignatureFactory.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/sig/rsa/RSASignatureFactory.java Tue Jan 11 19:46:05 2011 *************** public class RSASignatureFactory *** 71,77 **** * hyphen chanaracter - followed by the canonical message digest * algorithm name. When no message digest algorithm name is given, SHA-160 is * used. ! * * @param name the composite RSA signature name. * @return a new instance of an RSA Signature algorithm implementation. * Returns null if the given name does not correspond to any --- 71,77 ---- * hyphen chanaracter - followed by the canonical message digest * algorithm name. When no message digest algorithm name is given, SHA-160 is * used. ! * * @param name the composite RSA signature name. * @return a new instance of an RSA Signature algorithm implementation. * Returns null if the given name does not correspond to any *************** public class RSASignatureFactory *** 102,108 **** /** * Returns a {@link Set} of names of RSA signatures supported by this * Factory. ! * * @return a {@link Set} of RSA Signature algorithm names (Strings). */ public static synchronized final Set getNames() --- 102,108 ---- /** * Returns a {@link Set} of names of RSA signatures supported by this * Factory. ! * * @return a {@link Set} of RSA Signature algorithm names (Strings). */ public static synchronized final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/ByteArray.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/ByteArray.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/ByteArray.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/ByteArray.java Tue Jan 11 19:46:05 2011 *************** public final class ByteArray *** 65,87 **** int len = value.length; while (i < len) { ! out.print (formatInt (i, 16, 8)); ! out.print (" "); ! int l = Math.min (16, len - i); ! String s = toHexString (value, i, l, ' '); ! out.print (s); ! for (int j = 56 - (56 - s.length ()); j < 56; j++) ! out.print (" "); ! for (int j = 0; j < l; j++) ! { ! byte b = value[i+j]; ! if ((b & 0xFF) < 0x20 || (b & 0xFF) > 0x7E) ! out.print ("."); ! else ! out.print ((char) (b & 0xFF)); ! } ! out.println (); ! i += 16; } return str.toString (); } --- 65,87 ---- int len = value.length; while (i < len) { ! out.print (formatInt (i, 16, 8)); ! out.print (" "); ! int l = Math.min (16, len - i); ! String s = toHexString (value, i, l, ' '); ! out.print (s); ! for (int j = 56 - (56 - s.length ()); j < 56; j++) ! out.print (" "); ! for (int j = 0; j < l; j++) ! { ! byte b = value[i+j]; ! if ((b & 0xFF) < 0x20 || (b & 0xFF) > 0x7E) ! out.print ("."); ! else ! out.print ((char) (b & 0xFF)); ! } ! out.println (); ! i += 16; } return str.toString (); } *************** public final class ByteArray *** 91,98 **** CPStringBuilder str = new CPStringBuilder(); for (int i = 0; i < len; i++) { ! str.append (Character.forDigit (buf[i+off] >>> 4 & 0x0F, 16)); ! str.append (Character.forDigit (buf[i+off] & 0x0F, 16)); if (i < len - 1) str.append(sep); } --- 91,98 ---- CPStringBuilder str = new CPStringBuilder(); for (int i = 0; i < len; i++) { ! str.append (Character.forDigit (buf[i+off] >>> 4 & 0x0F, 16)); ! str.append (Character.forDigit (buf[i+off] & 0x0F, 16)); if (i < len - 1) str.append(sep); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/ByteBufferOutputStream.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/ByteBufferOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/ByteBufferOutputStream.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/ByteBufferOutputStream.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 47,64 **** /** * An output stream that writes bytes to a ByteBuffer, which will be resized * if more space is needed. ! * * @author Casey Marshall (csm@gnu.org) */ public class ByteBufferOutputStream extends OutputStream { private ByteBuffer buffer; ! public ByteBufferOutputStream() { this(256); } ! public ByteBufferOutputStream(int initialCapacity) { buffer = ByteBuffer.allocate(initialCapacity); --- 47,64 ---- /** * An output stream that writes bytes to a ByteBuffer, which will be resized * if more space is needed. ! * * @author Casey Marshall (csm@gnu.org) */ public class ByteBufferOutputStream extends OutputStream { private ByteBuffer buffer; ! public ByteBufferOutputStream() { this(256); } ! public ByteBufferOutputStream(int initialCapacity) { buffer = ByteBuffer.allocate(initialCapacity); *************** public class ByteBufferOutputStream exte *** 71,86 **** { if (!buffer.hasRemaining()) growBuffer(); ! buffer.put((byte) b); } ! public @Override synchronized void write(byte[] b, int offset, int length) { if (buffer.remaining() < length) growBuffer(); buffer.put(b, offset, length); } ! public @Override void write(byte[] b) { write(b, 0, b.length); --- 71,86 ---- { if (!buffer.hasRemaining()) growBuffer(); ! buffer.put((byte) b); } ! public @Override synchronized void write(byte[] b, int offset, int length) { if (buffer.remaining() < length) growBuffer(); buffer.put(b, offset, length); } ! public @Override void write(byte[] b) { write(b, 0, b.length); *************** public class ByteBufferOutputStream exte *** 90,108 **** * Get the current state of the buffer. The returned buffer will have * its position set to zero, its capacity set to the current limit, * and its limit set to its capacity. ! * * @return The buffer. */ public ByteBuffer buffer() { return ((ByteBuffer) buffer.duplicate().flip()).slice(); } ! public String toString() { return super.toString() + " [ buffer: " + buffer + " ]"; } ! private void growBuffer() { int newCapacity = buffer.capacity(); --- 90,108 ---- * Get the current state of the buffer. The returned buffer will have * its position set to zero, its capacity set to the current limit, * and its limit set to its capacity. ! * * @return The buffer. */ public ByteBuffer buffer() { return ((ByteBuffer) buffer.duplicate().flip()).slice(); } ! public String toString() { return super.toString() + " [ buffer: " + buffer + " ]"; } ! private void growBuffer() { int newCapacity = buffer.capacity(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/ExpirableObject.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/ExpirableObject.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/ExpirableObject.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/ExpirableObject.java Tue Jan 11 19:46:05 2011 *************** import javax.security.auth.Destroyable; *** 57,63 **** *

          * Note that if a {@link DestroyFailedException} occurs when the timeout * expires, it will not be reported. ! * * @see Destroyable */ public abstract class ExpirableObject --- 57,63 ---- *

          * Note that if a {@link DestroyFailedException} occurs when the timeout * expires, it will not be reported. ! * * @see Destroyable */ public abstract class ExpirableObject *************** public abstract class ExpirableObject *** 89,95 **** /** * Create a new expirable object that will expire after the specified timeout. ! * * @param delay The delay before expiration. * @throws IllegalArgumentException If delay is negative, or if * delay + System.currentTimeMillis() is negative. --- 89,95 ---- /** * Create a new expirable object that will expire after the specified timeout. ! * * @param delay The delay before expiration. * @throws IllegalArgumentException If delay is negative, or if * delay + System.currentTimeMillis() is negative. *************** public abstract class ExpirableObject *** 104,110 **** * Destroys this object. This method calls {@link #doDestroy}, then, if no * exception is thrown, cancels the task that would destroy this object when * the timeout is reached. ! * * @throws DestroyFailedException If this operation fails. */ public final void destroy() throws DestroyFailedException --- 104,110 ---- * Destroys this object. This method calls {@link #doDestroy}, then, if no * exception is thrown, cancels the task that would destroy this object when * the timeout is reached. ! * * @throws DestroyFailedException If this operation fails. */ public final void destroy() throws DestroyFailedException *************** public abstract class ExpirableObject *** 116,122 **** /** * Subclasses must implement this method instead of the {@link * Destroyable#destroy()} method. ! * * @throws DestroyFailedException If this operation fails. */ protected abstract void doDestroy() throws DestroyFailedException; --- 116,122 ---- /** * Subclasses must implement this method instead of the {@link * Destroyable#destroy()} method. ! * * @throws DestroyFailedException If this operation fails. */ protected abstract void doDestroy() throws DestroyFailedException; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/FormatUtil.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/FormatUtil.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/FormatUtil.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/FormatUtil.java Tue Jan 11 19:46:05 2011 *************** public class FormatUtil *** 53,59 **** /** * Returns the fully qualified name of the designated encoding ID. ! * * @param formatID the unique identifier of the encoding format. * @return the fully qualified name of the designated format. Returns * null if no such encoding format is known. --- 53,59 ---- /** * Returns the fully qualified name of the designated encoding ID. ! * * @param formatID the unique identifier of the encoding format. * @return the fully qualified name of the designated format. Returns * null if no such encoding format is known. *************** public class FormatUtil *** 83,89 **** /** * Returns the short name of the designated encoding ID. This is used by the * JCE Adapters. ! * * @param formatID the unique identifier of the encoding format. * @return the short name of the designated format. Returns null * if no such encoding format is known. --- 83,89 ---- /** * Returns the short name of the designated encoding ID. This is used by the * JCE Adapters. ! * * @param formatID the unique identifier of the encoding format. * @return the short name of the designated format. Returns null * if no such encoding format is known. *************** public class FormatUtil *** 112,118 **** /** * Returns the identifier of the encoding format given its short name. ! * * @param name the case-insensitive canonical short name of an encoding * format. * @return the identifier of the designated encoding format, or 0 --- 112,118 ---- /** * Returns the identifier of the encoding format given its short name. ! * * @param name the case-insensitive canonical short name of an encoding * format. * @return the identifier of the designated encoding format, or 0 *************** public class FormatUtil *** 134,140 **** result = Registry.X509_ENCODING_ID; else if (name.equalsIgnoreCase(Registry.PKCS8_ENCODING_SHORT_NAME)) result = Registry.PKCS8_ENCODING_ID; ! return result; } } --- 134,140 ---- result = Registry.X509_ENCODING_ID; else if (name.equalsIgnoreCase(Registry.PKCS8_ENCODING_SHORT_NAME)) result = Registry.PKCS8_ENCODING_ID; ! return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/IntegerUtil.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/IntegerUtil.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/IntegerUtil.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/IntegerUtil.java Tue Jan 11 19:46:05 2011 *************** public abstract class IntegerUtil *** 71,77 **** * This method MUST be used in the gnu.java.security and gnu.javax.crypto * packages to ensure they would work with a version 1.4 only of the Java * class library API. ! * * @param aString a string representation of an integer. * @return the {@link Integer} object representing the designated string. */ --- 71,77 ---- * This method MUST be used in the gnu.java.security and gnu.javax.crypto * packages to ensure they would work with a version 1.4 only of the Java * class library API. ! * * @param aString a string representation of an integer. * @return the {@link Integer} object representing the designated string. */ *************** public abstract class IntegerUtil *** 98,104 **** * This method MUST be used in the gnu.java.security and gnu.javax.crypto * packages to ensure they would work with a version 1.4 only of the Java * class library API. ! * * @param anInt a decimal integer. * @return the {@link Integer} object representing the designated primitive. */ --- 98,104 ---- * This method MUST be used in the gnu.java.security and gnu.javax.crypto * packages to ensure they would work with a version 1.4 only of the Java * class library API. ! * * @param anInt a decimal integer. * @return the {@link Integer} object representing the designated primitive. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/PRNG.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/PRNG.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/PRNG.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/PRNG.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.security.prng.MDGenerato *** 47,53 **** /** * A useful hash-based (SHA) pseudo-random number generator used throughout this * library. ! * * @see MDGenerator */ public class PRNG --- 47,53 ---- /** * A useful hash-based (SHA) pseudo-random number generator used throughout this * library. ! * * @see MDGenerator */ public class PRNG *************** public class PRNG *** 57,63 **** /** * Private constructor to enforce using the Factory method. ! * * @param delegate the undelying {@link IRandom} object used. */ private PRNG(IRandom delegate) --- 57,63 ---- /** * Private constructor to enforce using the Factory method. ! * * @param delegate the undelying {@link IRandom} object used. */ private PRNG(IRandom delegate) *************** public class PRNG *** 93,99 **** /** * Completely fills the designated buffer with random data * generated by the underlying delegate. ! * * @param buffer the place holder of random bytes generated by the underlying * delegate. On output, the contents of buffer are * replaced with pseudo-random data, iff the buffer --- 93,99 ---- /** * Completely fills the designated buffer with random data * generated by the underlying delegate. ! * * @param buffer the place holder of random bytes generated by the underlying * delegate. On output, the contents of buffer are * replaced with pseudo-random data, iff the buffer *************** public class PRNG *** 108,114 **** * Fills the designated buffer, starting from byte at position * offset with, at most, length bytes of random * data generated by the underlying delegate. ! * * @see IRandom#nextBytes */ public void nextBytes(byte[] buffer, int offset, int length) --- 108,114 ---- * Fills the designated buffer, starting from byte at position * offset with, at most, length bytes of random * data generated by the underlying delegate. ! * * @see IRandom#nextBytes */ public void nextBytes(byte[] buffer, int offset, int length) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/Prime.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/Prime.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/Prime.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/Prime.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public final class Prime *** 55,103 **** BigInteger p = new BigInteger( (pmax + pmin)/2, new Random() ); if( p.compareTo( BigInteger.valueOf( 1 ).shiftLeft( pmin ) ) <= 0 ) { ! p = p.add( BigInteger.valueOf( 1 ).shiftLeft( pmin ).subtract( p ) ); } ! //Step 2 - test for even if( p.mod( BigInteger.valueOf(2) ).compareTo( BigInteger.valueOf( 0 )) == 0) p = p.add( BigInteger.valueOf( 1 ) ); for(;;) { ! //Step 3 ! if( p.compareTo( BigInteger.valueOf( 1 ).shiftLeft( pmax)) > 0) ! { ! //Step 3.1 ! p = p.subtract( BigInteger.valueOf( 1 ).shiftLeft( pmax) ); ! p = p.add( BigInteger.valueOf( 1 ).shiftLeft( pmin) ); ! p = p.subtract( BigInteger.valueOf( 1 ) ); ! //Step 3.2 ! // put step 2 code here so looping code is cleaner ! //Step 2 - test for even ! if( p.mod( BigInteger.valueOf(2) ).compareTo( BigInteger.valueOf( 0 )) == 0) ! p = p.add( BigInteger.valueOf( 1 ) ); ! continue; ! } ! ! //Step 4 - compute GCD ! d = p.subtract( BigInteger.valueOf(1) ); ! d = d.gcd( f ); ! //Step 5 - test d ! if( d.compareTo( BigInteger.valueOf( 1 ) ) == 0) ! { ! //Step 5.1 - test primality ! if( p.isProbablePrime( 1 ) == true ) ! { ! //Step 5.2; ! return p; ! } ! } ! //Step 6 ! p = p.add( BigInteger.valueOf( 2 ) ); ! //Step 7 } } --- 55,103 ---- BigInteger p = new BigInteger( (pmax + pmin)/2, new Random() ); if( p.compareTo( BigInteger.valueOf( 1 ).shiftLeft( pmin ) ) <= 0 ) { ! p = p.add( BigInteger.valueOf( 1 ).shiftLeft( pmin ).subtract( p ) ); } ! //Step 2 - test for even if( p.mod( BigInteger.valueOf(2) ).compareTo( BigInteger.valueOf( 0 )) == 0) p = p.add( BigInteger.valueOf( 1 ) ); for(;;) { ! //Step 3 ! if( p.compareTo( BigInteger.valueOf( 1 ).shiftLeft( pmax)) > 0) ! { ! //Step 3.1 ! p = p.subtract( BigInteger.valueOf( 1 ).shiftLeft( pmax) ); ! p = p.add( BigInteger.valueOf( 1 ).shiftLeft( pmin) ); ! p = p.subtract( BigInteger.valueOf( 1 ) ); ! //Step 3.2 ! // put step 2 code here so looping code is cleaner ! //Step 2 - test for even ! if( p.mod( BigInteger.valueOf(2) ).compareTo( BigInteger.valueOf( 0 )) == 0) ! p = p.add( BigInteger.valueOf( 1 ) ); ! continue; ! } ! //Step 4 - compute GCD ! d = p.subtract( BigInteger.valueOf(1) ); ! d = d.gcd( f ); ! //Step 5 - test d ! if( d.compareTo( BigInteger.valueOf( 1 ) ) == 0) ! { ! //Step 5.1 - test primality ! if( p.isProbablePrime( 1 ) == true ) ! { ! //Step 5.2; ! return p; ! } ! } ! //Step 6 ! p = p.add( BigInteger.valueOf( 2 ) ); ! ! //Step 7 } } *************** public final class Prime *** 122,164 **** //Step 4 - test for even if( p.mod( BigInteger.valueOf(2) ).compareTo( BigInteger.valueOf( 0 )) == 0) ! p = p.add( r ); for(;;) ! { ! //Step 5 ! if( p.compareTo( BigInteger.valueOf( 1 ).shiftLeft( pmax)) > 0) ! { ! //Step 5.1 ! p = p.subtract( BigInteger.valueOf( 1 ).shiftLeft( pmax) ); ! p = p.add( BigInteger.valueOf( 1 ).shiftLeft( pmin) ); ! p = p.subtract( BigInteger.valueOf( 1 ) ); ! //Step 5.2 - goto to Step 2 ! break steptwo; ! } ! //Step 6 ! d = p.subtract( BigInteger.valueOf(1) ); ! d = d.gcd( f ); ! //Step 7 - test d ! if( d.compareTo( BigInteger.valueOf( 1 ) ) == 0) ! { ! //Step 7.1 - test primality ! if( p.isProbablePrime( 1 ) == true ) ! { ! //Step 7.2; ! return p; ! } ! } ! //Step 8 ! p = p.add( r.multiply( BigInteger.valueOf(2) ) ); ! //Step 9 ! } } //Should never reach here but makes the compiler happy ! return BigInteger.valueOf(0); } } --- 122,164 ---- //Step 4 - test for even if( p.mod( BigInteger.valueOf(2) ).compareTo( BigInteger.valueOf( 0 )) == 0) ! p = p.add( r ); for(;;) ! { ! //Step 5 ! if( p.compareTo( BigInteger.valueOf( 1 ).shiftLeft( pmax)) > 0) ! { ! //Step 5.1 ! p = p.subtract( BigInteger.valueOf( 1 ).shiftLeft( pmax) ); ! p = p.add( BigInteger.valueOf( 1 ).shiftLeft( pmin) ); ! p = p.subtract( BigInteger.valueOf( 1 ) ); ! //Step 5.2 - goto to Step 2 ! break steptwo; ! } ! //Step 6 ! d = p.subtract( BigInteger.valueOf(1) ); ! d = d.gcd( f ); ! //Step 7 - test d ! if( d.compareTo( BigInteger.valueOf( 1 ) ) == 0) ! { ! //Step 7.1 - test primality ! if( p.isProbablePrime( 1 ) == true ) ! { ! //Step 7.2; ! return p; ! } ! } ! //Step 8 ! p = p.add( r.multiply( BigInteger.valueOf(2) ) ); ! //Step 9 ! } } //Should never reach here but makes the compiler happy ! return BigInteger.valueOf(0); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/Sequence.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/Sequence.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/Sequence.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/Sequence.java Tue Jan 11 19:46:05 2011 *************** public final class Sequence *** 55,61 **** * through all positive integers then negative integers until the end value is * reached. Naturally, this will result in an enormous object, so don't do * this. ! * * @param end The ending value. */ public Sequence(int end) --- 55,61 ---- * through all positive integers then negative integers until the end value is * reached. Naturally, this will result in an enormous object, so don't do * this. ! * * @param end The ending value. */ public Sequence(int end) *************** public final class Sequence *** 68,74 **** * increment of 1. If end is less than start, then the * sequence will wrap around until the end value is reached. Naturally, this * will result in an enormous object, so don't do this. ! * * @param start The starting value. * @param end The ending value. */ --- 68,74 ---- * increment of 1. If end is less than start, then the * sequence will wrap around until the end value is reached. Naturally, this * will result in an enormous object, so don't do this. ! * * @param start The starting value. * @param end The ending value. */ *************** public final class Sequence *** 88,94 **** * If span is 0, then the sequence will contain {start, * end} if start != end, or just the singleton * start if start == end. ! * * @param start The starting value. * @param end The ending value. * @param span The increment value. --- 88,94 ---- * If span is 0, then the sequence will contain {start, * end} if start != end, or just the singleton * start if start == end. ! * * @param start The starting value. * @param end The ending value. * @param span The increment value. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/SimpleList.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/SimpleList.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/SimpleList.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/SimpleList.java Tue Jan 11 19:46:05 2011 *************** public final class SimpleList *** 54,60 **** /** * Create a singleton list. ! * * @param element The first element. */ public SimpleList(final Object element) --- 54,60 ---- /** * Create a singleton list. ! * * @param element The first element. */ public SimpleList(final Object element) *************** public final class SimpleList *** 65,71 **** /** * Create an ordered pair (2-tuple). ! * * @param e1 The first element. * @param e2 The second element. */ --- 65,71 ---- /** * Create an ordered pair (2-tuple). ! * * @param e1 The first element. * @param e2 The second element. */ *************** public final class SimpleList *** 78,84 **** /** * Create a 3-tuple. ! * * @param e1 The first element. * @param e2 The second element. * @param e3 The third element. --- 78,84 ---- /** * Create a 3-tuple. ! * * @param e1 The first element. * @param e2 The second element. * @param e3 The third element. *************** public final class SimpleList *** 93,99 **** /** * Create a 4-tuple. ! * * @param e1 The first element. * @param e2 The second element. * @param e3 The third element. --- 93,99 ---- /** * Create a 4-tuple. ! * * @param e1 The first element. * @param e2 The second element. * @param e3 The third element. *************** public final class SimpleList *** 121,127 **** * Create an n-tuple of arbitrary size. Even if the supplied collection has no * natural order, the created n-tuple will have the order that the elements * are returned by the collection's iterator. ! * * @param c The collection. */ public SimpleList(Collection c) --- 121,127 ---- * Create an n-tuple of arbitrary size. Even if the supplied collection has no * natural order, the created n-tuple will have the order that the elements * are returned by the collection's iterator. ! * * @param c The collection. */ public SimpleList(Collection c) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/util/Util.java gcc-4.6.0/libjava/classpath/gnu/java/security/util/Util.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/util/Util.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/security/util/Util.java Tue Jan 11 19:46:05 2011 *************** public class Util *** 70,76 **** *

               * toString(ba, 0, ba.length);
               * 
          ! * * @param ba the byte array to convert. * @return a string of hexadecimal characters (two for each byte) representing * the designated input byte array. --- 70,76 ---- *
               * toString(ba, 0, ba.length);
               * 
          ! * * @param ba the byte array to convert. * @return a string of hexadecimal characters (two for each byte) representing * the designated input byte array. *************** public class Util *** 84,90 **** * Returns a string of hexadecimal digits from a byte array, starting at * offset and consisting of length bytes. Each * byte is converted to 2 hex symbols; zero(es) included. ! * * @param ba the byte array to convert. * @param offset the index from which to start considering the bytes to * convert. --- 84,90 ---- * Returns a string of hexadecimal digits from a byte array, starting at * offset and consisting of length bytes. Each * byte is converted to 2 hex symbols; zero(es) included. ! * * @param ba the byte array to convert. * @param offset the index from which to start considering the bytes to * convert. *************** public class Util *** 114,120 **** *
               * toReversedString(ba, 0, ba.length);
               * 
          ! * * @param ba the byte array to convert. * @return a string of hexadecimal characters (two for each byte) representing * the designated input byte array. --- 114,120 ---- *
               * toReversedString(ba, 0, ba.length);
               * 
          ! * * @param ba the byte array to convert. * @return a string of hexadecimal characters (two for each byte) representing * the designated input byte array. *************** public class Util *** 131,137 **** *

          * The byte array is treated as a large little-endian integer, and is returned * as a large big-endian integer. ! * * @param ba the byte array to convert. * @param offset the index from which to start considering the bytes to * convert. --- 131,137 ---- *

          * The byte array is treated as a large little-endian integer, and is returned * as a large big-endian integer. ! * * @param ba the byte array to convert. * @param offset the index from which to start considering the bytes to * convert. *************** public class Util *** 156,162 **** *

          * Returns a byte array from a string of hexadecimal digits. *

          ! * * @param s a string of hexadecimal ASCII characters * @return the decoded byte array from the input hexadecimal string. */ --- 156,162 ---- *

          * Returns a byte array from a string of hexadecimal digits. *

          ! * * @param s a string of hexadecimal ASCII characters * @return the decoded byte array from the input hexadecimal string. */ *************** public class Util *** 179,185 **** * Returns a byte array from a string of hexadecimal digits, interpreting them * as a large big-endian integer and returning it as a large little-endian * integer. ! * * @param s a string of hexadecimal ASCII characters * @return the decoded byte array from the input hexadecimal string. */ --- 179,185 ---- * Returns a byte array from a string of hexadecimal digits, interpreting them * as a large big-endian integer and returning it as a large little-endian * integer. ! * * @param s a string of hexadecimal ASCII characters * @return the decoded byte array from the input hexadecimal string. */ *************** public class Util *** 201,207 **** /** * Returns a number from 0 to 15 corresponding * to the designated hexadecimal digit. ! * * @param c a hexadecimal ASCII symbol. */ public static int fromDigit(char c) --- 201,207 ---- /** * Returns a number from 0 to 15 corresponding * to the designated hexadecimal digit. ! * * @param c a hexadecimal ASCII symbol. */ public static int fromDigit(char c) *************** public class Util *** 219,225 **** /** * Returns a string of 8 hexadecimal digits (most significant digit first) * corresponding to the unsigned integer n. ! * * @param n the unsigned integer to convert. * @return a hexadecimal string 8-character long. */ --- 219,225 ---- /** * Returns a string of 8 hexadecimal digits (most significant digit first) * corresponding to the unsigned integer n. ! * * @param n the unsigned integer to convert. * @return a hexadecimal string 8-character long. */ *************** public class Util *** 260,266 **** /** * Returns a string of 16 hexadecimal digits (most significant digit first) * corresponding to the unsigned long n. ! * * @param n the unsigned long to convert. * @return a hexadecimal string 16-character long. */ --- 260,266 ---- /** * Returns a string of 16 hexadecimal digits (most significant digit first) * corresponding to the unsigned long n. ! * * @param n the unsigned long to convert. * @return a hexadecimal string 16-character long. */ *************** public class Util *** 280,286 **** * escape character is inserted before every pair of bytes. Useful to * externalise byte arrays that will be constructed later from such strings; * eg. s-box values. ! * * @throws ArrayIndexOutOfBoundsException if the length is odd. */ public static String toUnicodeString(byte[] ba) --- 280,286 ---- * escape character is inserted before every pair of bytes. Useful to * externalise byte arrays that will be constructed later from such strings; * eg. s-box values. ! * * @throws ArrayIndexOutOfBoundsException if the length is odd. */ public static String toUnicodeString(byte[] ba) *************** public class Util *** 293,299 **** * escape character is inserted before every pair of bytes. Useful to * externalise byte arrays that will be constructed later from such strings; * eg. s-box values. ! * * @throws ArrayIndexOutOfBoundsException if the length is odd. */ public static final String toUnicodeString(byte[] ba, int offset, int length) --- 293,299 ---- * escape character is inserted before every pair of bytes. Useful to * externalise byte arrays that will be constructed later from such strings; * eg. s-box values. ! * * @throws ArrayIndexOutOfBoundsException if the length is odd. */ public static final String toUnicodeString(byte[] ba, int offset, int length) *************** public class Util *** 324,330 **** * escape character is inserted before every pair of bytes. Useful to * externalise integer arrays that will be constructed later from such * strings; eg. s-box values. ! * * @throws ArrayIndexOutOfBoundsException if the length is not a multiple of * 4. */ --- 324,330 ---- * escape character is inserted before every pair of bytes. Useful to * externalise integer arrays that will be constructed later from such * strings; eg. s-box values. ! * * @throws ArrayIndexOutOfBoundsException if the length is not a multiple of * 4. */ *************** public class Util *** 376,382 **** * If offset and length are omitted, the whole * array is used. If m is omitted, nothing is prepended to each * line. ! * * @param data the byte array to be dumped. * @param offset the offset within data to start from. * @param length the number of bytes to dump. --- 376,382 ---- * If offset and length are omitted, the whole * array is used. If m is omitted, nothing is prepended to each * line. ! * * @param data the byte array to be dumped. * @param offset the offset within data to start from. * @param length the number of bytes to dump. *************** public class Util *** 433,439 **** /** * Returns a string of 2 hexadecimal digits (most significant digit first) * corresponding to the lowest 8 bits of n. ! * * @param n the byte value to convert. * @return a string of 2 hex characters representing the input. */ --- 433,439 ---- /** * Returns a string of 2 hexadecimal digits (most significant digit first) * corresponding to the lowest 8 bits of n. ! * * @param n the byte value to convert. * @return a string of 2 hex characters representing the input. */ *************** public class Util *** 449,455 **** * '.' (dot) shall be used instead of "+' (plus). *

          * Used by SASL password file manipulation primitives. ! * * @param buffer an arbitrary sequence of bytes to represent in Base-64. * @return unpadded (without the '=' character(s)) Base-64 representation of * the input. --- 449,455 ---- * '.' (dot) shall be used instead of "+' (plus). *

          * Used by SASL password file manipulation primitives. ! * * @param buffer an arbitrary sequence of bytes to represent in Base-64. * @return unpadded (without the '=' character(s)) Base-64 representation of * the input. *************** public class Util *** 525,531 **** *

          * Converts a string representing the encoding of some bytes in Base-64 to * their original form. ! * * @param str the Base-64 encoded representation of some byte(s). * @return the bytes represented by the str. * @throws NumberFormatException if str is null, --- 525,531 ---- *

          * Converts a string representing the encoding of some bytes in Base-64 to * their original form. ! * * @param str the Base-64 encoded representation of some byte(s). * @return the bytes represented by the str. * @throws NumberFormatException if str is null, *************** public class Util *** 597,603 **** * Treats the input as the MSB representation of a number, and discards * leading zero elements. For efficiency, the input is simply returned if no * leading zeroes are found. ! * * @param n the {@link BigInteger} to trim. * @return the byte array representation of the designated {@link BigInteger} * with no leading 0-bytes. --- 597,603 ---- * Treats the input as the MSB representation of a number, and discards * leading zero elements. For efficiency, the input is simply returned if no * leading zeroes are found. ! * * @param n the {@link BigInteger} to trim. * @return the byte array representation of the designated {@link BigInteger} * with no leading 0-bytes. *************** public class Util *** 618,624 **** /** * Returns a hexadecimal dump of the trimmed bytes of a {@link BigInteger}. ! * * @param x the {@link BigInteger} to display. * @return the string representation of the designated {@link BigInteger}. */ --- 618,624 ---- /** * Returns a hexadecimal dump of the trimmed bytes of a {@link BigInteger}. ! * * @param x the {@link BigInteger} to display. * @return the string representation of the designated {@link BigInteger}. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/x509/X509CRLSelectorImpl.java gcc-4.6.0/libjava/classpath/gnu/java/security/x509/X509CRLSelectorImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/x509/X509CRLSelectorImpl.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/security/x509/X509CRLSelectorImpl.java Tue Jan 11 19:46:05 2011 *************** public class X509CRLSelectorImpl impleme *** 135,138 **** return false; } } - --- 135,137 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/x509/X509CertSelectorImpl.java gcc-4.6.0/libjava/classpath/gnu/java/security/x509/X509CertSelectorImpl.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/x509/X509CertSelectorImpl.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/security/x509/X509CertSelectorImpl.java Tue Jan 11 19:46:05 2011 *************** public class X509CertSelectorImpl implem *** 194,197 **** return matchIssuer && matchSubject; } } - --- 194,196 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/x509/ext/CertificatePolicies.java gcc-4.6.0/libjava/classpath/gnu/java/security/x509/ext/CertificatePolicies.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/x509/ext/CertificatePolicies.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/security/x509/ext/CertificatePolicies.java Tue Jan 11 19:46:05 2011 *************** public class CertificatePolicies extends *** 142,148 **** { return policies; } ! /** * Returns the list of policy OIDs, formatted as dotted-decimal strings. * --- 142,148 ---- { return policies; } ! /** * Returns the list of policy OIDs, formatted as dotted-decimal strings. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/x509/ext/GeneralName.java gcc-4.6.0/libjava/classpath/gnu/java/security/x509/ext/GeneralName.java *** gcc-4.5.2/libjava/classpath/gnu/java/security/x509/ext/GeneralName.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/security/x509/ext/GeneralName.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 48,54 **** /** * The GeneralName structure from X.509. ! * *

              GeneralName ::= CHOICE {
                otherName                       [0]     OtherName,
          --- 48,54 ----
            
            /**
             * The GeneralName structure from X.509.
          !  *
             * 
              GeneralName ::= CHOICE {
                otherName                       [0]     OtherName,
          *************** public class GeneralName
          *** 87,98 ****
                registeredId (8);
            
                private int tag;
          !     
                private Kind(int tag)
                {
                  this.tag = tag;
                }
          !     
                public static Kind forTag(final int tag)
                {
                  switch (tag)
          --- 87,98 ----
                registeredId (8);
            
                private int tag;
          ! 
                private Kind(int tag)
                {
                  this.tag = tag;
                }
          ! 
                public static Kind forTag(final int tag)
                {
                  switch (tag)
          *************** public class GeneralName
          *** 107,116 ****
                    case 7: return iPAddress;
                    case 8: return registeredId;
                  }
          !       
                  throw new IllegalArgumentException("invalid tag: " + tag);
                }
          !     
                public int tag()
                {
                  return tag;
          --- 107,116 ----
                    case 7: return iPAddress;
                    case 8: return registeredId;
                  }
          ! 
                  throw new IllegalArgumentException("invalid tag: " + tag);
                }
          ! 
                public int tag()
                {
                  return tag;
          *************** public class GeneralName
          *** 120,136 ****
              private final Kind kind;
              private final byte[] name;
              private final byte[] encoded;
          !   
              public GeneralName(byte[] encoded) throws IOException
              {
                DERReader reader = new DERReader(encoded);
                DERValue value = reader.read();
          !     
                if (value.getTagClass() != DER.CONTEXT)
                  throw new IOException("malformed GeneralName");
          !     
                this.encoded = value.getEncoded();
          !     
                kind = Kind.forTag(value.getTag());
                switch (kind)
                {
          --- 120,136 ----
              private final Kind kind;
              private final byte[] name;
              private final byte[] encoded;
          ! 
              public GeneralName(byte[] encoded) throws IOException
              {
                DERReader reader = new DERReader(encoded);
                DERValue value = reader.read();
          ! 
                if (value.getTagClass() != DER.CONTEXT)
                  throw new IOException("malformed GeneralName");
          ! 
                this.encoded = value.getEncoded();
          ! 
                kind = Kind.forTag(value.getTag());
                switch (kind)
                {
          *************** public class GeneralName
          *** 176,204 ****
                    name = value.getEncoded();
                    name[0] = DER.OBJECT_IDENTIFIER;
                    break;
          !         
                  default:
                    name = null; // Not reached.
                }
              }
          !   
              public GeneralName(Kind kind, byte[] name)
              {
                this.kind = kind;
                this.name = (byte[]) name.clone();
                this.encoded = null;
              }
          !   
              public Kind kind()
              {
                return kind;
              }
          !   
              public byte[] name()
              {
                return (byte[]) name.clone();
              }
          !   
              public byte[] encoded()
              {
                try
          --- 176,204 ----
                    name = value.getEncoded();
                    name[0] = DER.OBJECT_IDENTIFIER;
                    break;
          ! 
                  default:
                    name = null; // Not reached.
                }
              }
          ! 
              public GeneralName(Kind kind, byte[] name)
              {
                this.kind = kind;
                this.name = (byte[]) name.clone();
                this.encoded = null;
              }
          ! 
              public Kind kind()
              {
                return kind;
              }
          ! 
              public byte[] name()
              {
                return (byte[]) name.clone();
              }
          ! 
              public byte[] encoded()
              {
                try
          *************** public class GeneralName
          *** 210,216 ****
                    return null;
                  }
              }
          !   
              public boolean equals(Object o)
              {
                try
          --- 210,216 ----
                    return null;
                  }
              }
          ! 
              public boolean equals(Object o)
              {
                try
          *************** public class GeneralName
          *** 223,229 ****
                    return false;
                  }
              }
          !   
              public String toString()
              {
                return (super.toString() + " [ kind=" + kind + "; name=" +
          --- 223,229 ----
                    return false;
                  }
              }
          ! 
              public String toString()
              {
                return (super.toString() + " [ kind=" + kind + "; name=" +
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/x509/ext/GeneralSubtree.java gcc-4.6.0/libjava/classpath/gnu/java/security/x509/ext/GeneralSubtree.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/x509/ext/GeneralSubtree.java	Sun Jun  3 23:18:43 2007
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/x509/ext/GeneralSubtree.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* GeneralSubtree.java -- 
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* GeneralSubtree.java --
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class GeneralSubtree
          *** 63,82 ****
              private final GeneralName base;
              private final int minimum;
              private final int maximum;
          !   
              public GeneralSubtree(byte[] encoded) throws IOException
              {
                DERReader reader = new DERReader(encoded);
                DERValue generalSubtree = reader.read();
          !     
                if (!generalSubtree.isConstructed())
                  throw new IOException("malformed GeneralSubtree");
          !     
                DERValue generalName = reader.read();
                base = new GeneralName(generalName.getEncoded());
                if (generalName.isConstructed())
                  reader.skip(generalName.getLength());
          !     
                int len = generalName.getEncodedLength();
                if (len < generalSubtree.getLength())
                  {
          --- 63,82 ----
              private final GeneralName base;
              private final int minimum;
              private final int maximum;
          ! 
              public GeneralSubtree(byte[] encoded) throws IOException
              {
                DERReader reader = new DERReader(encoded);
                DERValue generalSubtree = reader.read();
          ! 
                if (!generalSubtree.isConstructed())
                  throw new IOException("malformed GeneralSubtree");
          ! 
                DERValue generalName = reader.read();
                base = new GeneralName(generalName.getEncoded());
                if (generalName.isConstructed())
                  reader.skip(generalName.getLength());
          ! 
                int len = generalName.getEncodedLength();
                if (len < generalSubtree.getLength())
                  {
          *************** public class GeneralSubtree
          *** 116,122 ****
                    maximum = -1;
                  }
              }
          !   
              /**
               * Returns the base name.
               *
          --- 116,122 ----
                    maximum = -1;
                  }
              }
          ! 
              /**
               * Returns the base name.
               *
          *************** public class GeneralSubtree
          *** 126,132 ****
              {
                return base;
              }
          !   
              /**
               * Returns the minimum base distance, possibly zero.
               *
          --- 126,132 ----
              {
                return base;
              }
          ! 
              /**
               * Returns the minimum base distance, possibly zero.
               *
          *************** public class GeneralSubtree
          *** 136,142 ****
              {
                return minimum;
              }
          !   
              /**
               * Returns the maximum base distance, or -1 if this value was not specified.
               *
          --- 136,142 ----
              {
                return minimum;
              }
          ! 
              /**
               * Returns the maximum base distance, or -1 if this value was not specified.
               *
          *************** public class GeneralSubtree
          *** 146,152 ****
              {
                return maximum;
              }
          !   
              public String toString()
              {
                return (GeneralSubtree.class.getName() + " [ base=" + base
          --- 146,152 ----
              {
                return maximum;
              }
          ! 
              public String toString()
              {
                return (GeneralSubtree.class.getName() + " [ base=" + base
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/security/x509/ext/NameConstraints.java gcc-4.6.0/libjava/classpath/gnu/java/security/x509/ext/NameConstraints.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/security/x509/ext/NameConstraints.java	Sun Jun  3 23:18:43 2007
          --- gcc-4.6.0/libjava/classpath/gnu/java/security/x509/ext/NameConstraints.java	Tue Jan 11 19:46:05 2011
          *************** import java.util.List;
          *** 51,57 ****
            /**
             * The NameConstraints extension. From RFC 3280, section 4.2.1.11, this
             * extension is defined as:
          !  * 
             * 
              id-ce-nameConstraints OBJECT IDENTIFIER ::=  { id-ce 30 }
            
          --- 51,57 ----
            /**
             * The NameConstraints extension. From RFC 3280, section 4.2.1.11, this
             * extension is defined as:
          !  *
             * 
              id-ce-nameConstraints OBJECT IDENTIFIER ::=  { id-ce 30 }
            
          *************** import java.util.List;
          *** 68,96 ****
            
              BaseDistance ::= INTEGER (0..MAX)
              
          ! * * See also the classes {@link GeneralNames} and {@link GeneralSubtree}. ! * * @author csm */ public class NameConstraints extends Value { public static final OID ID = new OID("2.5.29.30"); ! private List permittedSubtrees; private List excludedSubtrees; ! public NameConstraints(byte[] encoded) throws IOException { super(encoded); ! DERReader der = new DERReader(encoded); DERValue value = der.read(); if (!value.isConstructed()) { throw new IOException("malformed NameConstraints"); } ! permittedSubtrees = new LinkedList(); excludedSubtrees = new LinkedList(); int len = 0; --- 68,96 ---- BaseDistance ::= INTEGER (0..MAX)
          ! * * See also the classes {@link GeneralNames} and {@link GeneralSubtree}. ! * * @author csm */ public class NameConstraints extends Value { public static final OID ID = new OID("2.5.29.30"); ! private List permittedSubtrees; private List excludedSubtrees; ! public NameConstraints(byte[] encoded) throws IOException { super(encoded); ! DERReader der = new DERReader(encoded); DERValue value = der.read(); if (!value.isConstructed()) { throw new IOException("malformed NameConstraints"); } ! permittedSubtrees = new LinkedList(); excludedSubtrees = new LinkedList(); int len = 0; *************** public class NameConstraints extends Val *** 108,114 **** len2 += subtree.getEncodedLength(); } len += subtrees.getEncodedLength(); ! if (len < value.getLength()) { subtrees = der.read(); --- 108,114 ---- len2 += subtree.getEncodedLength(); } len += subtrees.getEncodedLength(); ! if (len < value.getLength()) { subtrees = der.read(); *************** public class NameConstraints extends Val *** 134,157 **** excludedSubtrees.add(new GeneralSubtree(subtree.getEncoded())); der.skip(subtree.getLength()); len2 += subtree.getEncodedLength(); ! } } else throw new IOException("unexpected tag " + subtrees.getTag() + " (expecting 0 or 1)"); } } ! public List permittedSubtrees() { return Collections.unmodifiableList(permittedSubtrees); } ! public List excludedSubtrees() { return Collections.unmodifiableList(excludedSubtrees); } ! public String toString() { return NameConstraints.class.getName() + " [ permittedSubtrees=" --- 134,157 ---- excludedSubtrees.add(new GeneralSubtree(subtree.getEncoded())); der.skip(subtree.getLength()); len2 += subtree.getEncodedLength(); ! } } else throw new IOException("unexpected tag " + subtrees.getTag() + " (expecting 0 or 1)"); } } ! public List permittedSubtrees() { return Collections.unmodifiableList(permittedSubtrees); } ! public List excludedSubtrees() { return Collections.unmodifiableList(excludedSubtrees); } ! public String toString() { return NameConstraints.class.getName() + " [ permittedSubtrees=" diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java gcc-4.6.0/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class AttributedFormatBuffer impl *** 56,68 **** private final ArrayList ranges; private final ArrayList attributes; private int[] a_ranges; ! private HashMap[] a_attributes; private int startingRange; AttributedCharacterIterator.Attribute defaultAttr; /** * This constructor accepts a StringBuffer. If the buffer contains ! * already some characters they will not be attributed. */ public AttributedFormatBuffer(CPStringBuilder buffer) { --- 56,68 ---- private final ArrayList ranges; private final ArrayList attributes; private int[] a_ranges; ! private HashMap[] a_attributes; private int startingRange; AttributedCharacterIterator.Attribute defaultAttr; /** * This constructor accepts a StringBuffer. If the buffer contains ! * already some characters they will not be attributed. */ public AttributedFormatBuffer(CPStringBuilder buffer) { *************** public class AttributedFormatBuffer impl *** 72,79 **** this.defaultAttr = null; if (buffer.length() != 0) { ! this.startingRange = buffer.length(); ! addAttribute(buffer.length(), null); } else this.startingRange = -1; --- 72,79 ---- this.defaultAttr = null; if (buffer.length() != 0) { ! this.startingRange = buffer.length(); ! addAttribute(buffer.length(), null); } else this.startingRange = -1; *************** public class AttributedFormatBuffer impl *** 96,111 **** * * @param new_range A new range to insert in the list. * @param attr A new attribute to insert in the list. ! */ private final void addAttribute(int new_range, AttributedCharacterIterator.Attribute attr) { HashMap map; if (attr != null) { ! map = new HashMap(); ! map.put(attr, attr); ! attributes.add(map); } else attributes.add(null); --- 96,111 ---- * * @param new_range A new range to insert in the list. * @param attr A new attribute to insert in the list. ! */ private final void addAttribute(int new_range, AttributedCharacterIterator.Attribute attr) { HashMap map; if (attr != null) { ! map = new HashMap(); ! map.put(attr, attr); ! attributes.add(map); } else attributes.add(null); *************** public class AttributedFormatBuffer impl *** 119,125 **** startingRange = 0; buffer.append(s); } ! public void append(String s, AttributedCharacterIterator.Attribute attr) { setDefaultAttribute(attr); --- 119,125 ---- startingRange = 0; buffer.append(s); } ! public void append(String s, AttributedCharacterIterator.Attribute attr) { setDefaultAttribute(attr); *************** public class AttributedFormatBuffer impl *** 135,145 **** setDefaultAttribute(null); if (ranges != null) { ! for (int i = 0; i < ranges.length; i++) ! { ! this.ranges.add(new Integer(ranges[i] + curPos)); ! this.attributes.add(attrs[i]); ! } } startingRange = buffer.length(); buffer.append(s); --- 135,145 ---- setDefaultAttribute(null); if (ranges != null) { ! for (int i = 0; i < ranges.length; i++) ! { ! this.ranges.add(new Integer(ranges[i] + curPos)); ! this.attributes.add(attrs[i]); ! } } startingRange = buffer.length(); buffer.append(s); *************** public class AttributedFormatBuffer impl *** 168,174 **** if (startingRange != currentPos && startingRange >= 0) { ! addAttribute(currentPos, defaultAttr); } defaultAttr = attr; startingRange = currentPos; --- 168,174 ---- if (startingRange != currentPos && startingRange >= 0) { ! addAttribute(currentPos, defaultAttr); } defaultAttr = attr; startingRange = currentPos; *************** public class AttributedFormatBuffer impl *** 212,218 **** a_ranges = new int[ranges.size()]; for (int i = 0; i < a_ranges.length; i++) a_ranges[i] = ((Integer)(ranges.get (i))).intValue(); ! a_attributes = new HashMap[attributes.size()]; System.arraycopy(attributes.toArray(), 0, a_attributes, 0, a_attributes.length); } --- 212,218 ---- a_ranges = new int[ranges.size()]; for (int i = 0; i < a_ranges.length; i++) a_ranges[i] = ((Integer)(ranges.get (i))).intValue(); ! a_attributes = new HashMap[attributes.size()]; System.arraycopy(attributes.toArray(), 0, a_attributes, 0, a_attributes.length); } *************** public class AttributedFormatBuffer impl *** 239,245 **** } /** ! * This method returns the array containing the map on the * attributes. * * @return An array of {@link java.util.Map} containing the attributes. --- 239,245 ---- } /** ! * This method returns the array containing the map on the * attributes. * * @return An array of {@link java.util.Map} containing the attributes. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/BaseBreakIterator.java gcc-4.6.0/libjava/classpath/gnu/java/text/BaseBreakIterator.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/BaseBreakIterator.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/text/BaseBreakIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public abstract class BaseBreakIterator *** 70,76 **** /** * Return the first boundary after pos. ! * This has the side effect of setting the index of the * CharacterIterator. */ public int following (int pos) --- 70,76 ---- /** * Return the first boundary after pos. ! * This has the side effect of setting the index of the * CharacterIterator. */ public int following (int pos) *************** public abstract class BaseBreakIterator *** 98,116 **** int r = iter.getIndex (); if (n > 0) { ! while (n > 0 && r != DONE) ! { ! r = next (); ! --n; ! } } else if (n < 0) { ! while (n < 0 && r != DONE) ! { ! r = previous (); ! ++n; ! } } return r; } --- 98,116 ---- int r = iter.getIndex (); if (n > 0) { ! while (n > 0 && r != DONE) ! { ! r = next (); ! --n; ! } } else if (n < 0) { ! while (n < 0 && r != DONE) ! { ! r = previous (); ! ++n; ! } } return r; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/CharacterBreakIterator.java gcc-4.6.0/libjava/classpath/gnu/java/text/CharacterBreakIterator.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/CharacterBreakIterator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/text/CharacterBreakIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class CharacterBreakIterator exte *** 111,154 **** char c; for (char prev = CharacterIterator.DONE; iter.getIndex() < end; prev = c) { ! c = iter.next(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! // Break after paragraph separators. ! if (type == Character.PARAGRAPH_SEPARATOR) ! break; ! // Now we need some lookahead. ! char ahead = iter.next(); ! iter.previous(); ! if (ahead == CharacterIterator.DONE) ! break; ! int aheadType = Character.getType(ahead); ! if (aheadType != Character.NON_SPACING_MARK ! && ! isLowSurrogate (ahead) ! && ! isLVT (ahead)) ! break; ! if (! isLVT (c) && isLVT (ahead)) ! break; ! if (isL (c) && ! isLVT (ahead) ! && aheadType != Character.NON_SPACING_MARK) ! break; ! if (isV (c) && ! isV (ahead) && !isT (ahead) ! && aheadType != Character.NON_SPACING_MARK) ! break; ! if (isT (c) && ! isT (ahead) ! && aheadType != Character.NON_SPACING_MARK) ! break; ! if (! isHighSurrogate (c) && isLowSurrogate (ahead)) ! break; ! if (isHighSurrogate (c) && ! isLowSurrogate (ahead)) ! break; ! if (! isHighSurrogate (prev) && isLowSurrogate (c)) ! break; } return iter.getIndex(); --- 111,154 ---- char c; for (char prev = CharacterIterator.DONE; iter.getIndex() < end; prev = c) { ! c = iter.next(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! // Break after paragraph separators. ! if (type == Character.PARAGRAPH_SEPARATOR) ! break; ! // Now we need some lookahead. ! char ahead = iter.next(); ! iter.previous(); ! if (ahead == CharacterIterator.DONE) ! break; ! int aheadType = Character.getType(ahead); ! if (aheadType != Character.NON_SPACING_MARK ! && ! isLowSurrogate (ahead) ! && ! isLVT (ahead)) ! break; ! if (! isLVT (c) && isLVT (ahead)) ! break; ! if (isL (c) && ! isLVT (ahead) ! && aheadType != Character.NON_SPACING_MARK) ! break; ! if (isV (c) && ! isV (ahead) && !isT (ahead) ! && aheadType != Character.NON_SPACING_MARK) ! break; ! if (isT (c) && ! isT (ahead) ! && aheadType != Character.NON_SPACING_MARK) ! break; ! if (! isHighSurrogate (c) && isLowSurrogate (ahead)) ! break; ! if (isHighSurrogate (c) && ! isLowSurrogate (ahead)) ! break; ! if (! isHighSurrogate (prev) && isLowSurrogate (c)) ! break; } return iter.getIndex(); *************** public class CharacterBreakIterator exte *** 161,211 **** while (iter.getIndex() >= iter.getBeginIndex()) { ! char c = iter.previous(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! if (type != Character.NON_SPACING_MARK ! && ! isLowSurrogate (c) ! && ! isLVT (c)) ! break; ! // Now we need some lookahead. ! char ahead = iter.previous(); ! if (ahead == CharacterIterator.DONE) ! { ! iter.next(); ! break; ! } ! char ahead2 = iter.previous(); ! iter.next(); ! iter.next(); ! if (ahead2 == CharacterIterator.DONE) ! break; ! int aheadType = Character.getType(ahead); ! if (aheadType == Character.PARAGRAPH_SEPARATOR) ! break; ! if (isLVT (c) && ! isLVT (ahead)) ! break; ! if (! isLVT (c) && type != Character.NON_SPACING_MARK ! && isL (ahead)) ! break; ! if (! isV (c) && ! isT (c) && type != Character.NON_SPACING_MARK ! && isV (ahead)) ! break; ! if (! isT (c) && type != Character.NON_SPACING_MARK ! && isT (ahead)) ! break; ! if (isLowSurrogate (c) && ! isHighSurrogate (ahead)) ! break; ! if (! isLowSurrogate (c) && isHighSurrogate (ahead)) ! break; ! if (isLowSurrogate (ahead) && ! isHighSurrogate (ahead2)) ! break; } return iter.getIndex(); --- 161,211 ---- while (iter.getIndex() >= iter.getBeginIndex()) { ! char c = iter.previous(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! if (type != Character.NON_SPACING_MARK ! && ! isLowSurrogate (c) ! && ! isLVT (c)) ! break; ! // Now we need some lookahead. ! char ahead = iter.previous(); ! if (ahead == CharacterIterator.DONE) ! { ! iter.next(); ! break; ! } ! char ahead2 = iter.previous(); ! iter.next(); ! iter.next(); ! if (ahead2 == CharacterIterator.DONE) ! break; ! int aheadType = Character.getType(ahead); ! if (aheadType == Character.PARAGRAPH_SEPARATOR) ! break; ! if (isLVT (c) && ! isLVT (ahead)) ! break; ! if (! isLVT (c) && type != Character.NON_SPACING_MARK ! && isL (ahead)) ! break; ! if (! isV (c) && ! isT (c) && type != Character.NON_SPACING_MARK ! && isV (ahead)) ! break; ! if (! isT (c) && type != Character.NON_SPACING_MARK ! && isT (ahead)) ! break; ! if (isLowSurrogate (c) && ! isHighSurrogate (ahead)) ! break; ! if (! isLowSurrogate (c) && isHighSurrogate (ahead)) ! break; ! if (isLowSurrogate (ahead) && ! isHighSurrogate (ahead2)) ! break; } return iter.getIndex(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/FormatBuffer.java gcc-4.6.0/libjava/classpath/gnu/java/text/FormatBuffer.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/FormatBuffer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/text/FormatBuffer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.HashMap; *** 42,55 **** /** * This interface describes a modifiable buffer which contains attributed * characters. The implementation may or may not implements attributes. It ! * aims to greatly simplify and clarify the implementation of java.text * formatters. The buffer may be appended or have its tail cut. It may also * be completely cleant up. * * @author Guilhem Lavaux * @date April 10, 2004 */ ! public interface FormatBuffer { /** * This method appends a simple string to the buffer. This part of --- 42,55 ---- /** * This interface describes a modifiable buffer which contains attributed * characters. The implementation may or may not implements attributes. It ! * aims to greatly simplify and clarify the implementation of java.text * formatters. The buffer may be appended or have its tail cut. It may also * be completely cleant up. * * @author Guilhem Lavaux * @date April 10, 2004 */ ! public interface FormatBuffer { /** * This method appends a simple string to the buffer. This part of *************** public interface FormatBuffer *** 72,79 **** /** * This method appends a simple string to the buffer. This part of * the buffer will be attributed using the specified ranges and attributes. ! * To have an example on how to specify ranges see {@link gnu.java.text.FormatCharacterIterator}. ! * * @param s The string to append to the buffer. * @param ranges The ranges describing how the attributes should be applied * to the string. --- 72,79 ---- /** * This method appends a simple string to the buffer. This part of * the buffer will be attributed using the specified ranges and attributes. ! * To have an example on how to specify ranges see {@link gnu.java.text.FormatCharacterIterator}. ! * * @param s The string to append to the buffer. * @param ranges The ranges describing how the attributes should be applied * to the string. *************** public interface FormatBuffer *** 121,127 **** * @param length Number of characters to cut at the end of the buffer. */ public void cutTail(int length); ! /** * This method resets completely the buffer. */ --- 121,127 ---- * @param length Number of characters to cut at the end of the buffer. */ public void cutTail(int length); ! /** * This method resets completely the buffer. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/FormatCharacterIterator.java gcc-4.6.0/libjava/classpath/gnu/java/text/FormatCharacterIterator.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/FormatCharacterIterator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/text/FormatCharacterIterator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FormatCharacter.java -- Implementation of AttributedCharacterIterator for formatters. Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. --- 1,4 ---- ! /* FormatCharacter.java -- Implementation of AttributedCharacterIterator for formatters. Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class FormatCharacterIterator imp *** 78,84 **** } /** ! * This constructor take a string s, a set of ranges * and the corresponding attributes. This is used to build an iterator. * The array ranges should be formatted as follow: * each element of ranges specifies the index in the string --- 78,84 ---- } /** ! * This constructor take a string s, a set of ranges * and the corresponding attributes. This is used to build an iterator. * The array ranges should be formatted as follow: * each element of ranges specifies the index in the string *************** public class FormatCharacterIterator imp *** 98,107 **** this.ranges = ranges; this.attributes = attributes; } ! ! /* * The following methods are inherited from AttributedCharacterIterator, ! * and thus are already documented. */ public Set getAllAttributeKeys() --- 98,107 ---- this.ranges = ranges; this.attributes = attributes; } ! ! /* * The following methods are inherited from AttributedCharacterIterator, ! * and thus are already documented. */ public Set getAllAttributeKeys() *************** public class FormatCharacterIterator imp *** 111,117 **** else return new HashSet(); } ! public Map getAttributes() { if (attributes != null && attributes[attributeIndex] != null) --- 111,117 ---- else return new HashSet(); } ! public Map getAttributes() { if (attributes != null && attributes[attributeIndex] != null) *************** public class FormatCharacterIterator imp *** 119,125 **** else return new HashMap(); } ! public Object getAttribute (AttributedCharacterIterator.Attribute attrib) { if (attributes != null && attributes[attributeIndex] != null) --- 119,125 ---- else return new HashMap(); } ! public Object getAttribute (AttributedCharacterIterator.Attribute attrib) { if (attributes != null && attributes[attributeIndex] != null) *************** public class FormatCharacterIterator imp *** 127,133 **** else return null; } ! public int getRunLimit(Set reqAttrs) { if (attributes == null) --- 127,133 ---- else return null; } ! public int getRunLimit(Set reqAttrs) { if (attributes == null) *************** public class FormatCharacterIterator imp *** 138,156 **** do { ! currentAttrIndex++; ! if (currentAttrIndex == attributes.length) ! return formattedString.length(); ! if (attributes[currentAttrIndex] == null) ! break; ! newKeys = attributes[currentAttrIndex].keySet(); } while (newKeys.containsAll (reqAttrs)); return ranges[currentAttrIndex-1]; } ! ! public int getRunLimit (AttributedCharacterIterator.Attribute attribute) { Set s = new HashSet(); --- 138,156 ---- do { ! currentAttrIndex++; ! if (currentAttrIndex == attributes.length) ! return formattedString.length(); ! if (attributes[currentAttrIndex] == null) ! break; ! newKeys = attributes[currentAttrIndex].keySet(); } while (newKeys.containsAll (reqAttrs)); return ranges[currentAttrIndex-1]; } ! ! public int getRunLimit (AttributedCharacterIterator.Attribute attribute) { Set s = new HashSet(); *************** public class FormatCharacterIterator imp *** 164,201 **** return formattedString.length(); if (attributes[attributeIndex] == null) { ! for (int i=attributeIndex+1;i 0) ? ranges[currentAttrIndex-1] : 0; ! } ! public int getRunStart() { if (attributes == null) --- 164,201 ---- return formattedString.length(); if (attributes[attributeIndex] == null) { ! for (int i=attributeIndex+1;i 0) ? ranges[currentAttrIndex-1] : 0; ! } ! public int getRunStart() { if (attributes == null) *************** public class FormatCharacterIterator imp *** 203,221 **** if (attributes[attributeIndex] == null) { ! for (int i=attributeIndex;i>0;i--) ! if (attributes[i] != null) ! return ranges[attributeIndex-1]; ! return 0; } return getRunStart (attributes[attributeIndex].keySet()); } ! ! public int getRunStart (AttributedCharacterIterator.Attribute attribute) { Set s = new HashSet(); ! s.add (attribute); return getRunStart (s); } --- 203,221 ---- if (attributes[attributeIndex] == null) { ! for (int i=attributeIndex;i>0;i--) ! if (attributes[i] != null) ! return ranges[attributeIndex-1]; ! return 0; } return getRunStart (attributes[attributeIndex].keySet()); } ! ! public int getRunStart (AttributedCharacterIterator.Attribute attribute) { Set s = new HashSet(); ! s.add (attribute); return getRunStart (s); } *************** public class FormatCharacterIterator imp *** 224,230 **** { return new FormatCharacterIterator (formattedString, ranges, attributes); } ! /* * The following methods are inherited from CharacterIterator and thus * are already documented. --- 224,230 ---- { return new FormatCharacterIterator (formattedString, ranges, attributes); } ! /* * The following methods are inherited from CharacterIterator and thus * are already documented. *************** public class FormatCharacterIterator imp *** 234,262 **** { return formattedString.charAt (charIndex); } ! public char first() { charIndex = 0; attributeIndex = 0; return formattedString.charAt (0); } ! public int getBeginIndex() { return 0; } ! public int getEndIndex() { return formattedString.length(); } ! public int getIndex() { return charIndex; } ! public char last() { charIndex = formattedString.length()-1; --- 234,262 ---- { return formattedString.charAt (charIndex); } ! public char first() { charIndex = 0; attributeIndex = 0; return formattedString.charAt (0); } ! public int getBeginIndex() { return 0; } ! public int getEndIndex() { return formattedString.length(); } ! public int getIndex() { return charIndex; } ! public char last() { charIndex = formattedString.length()-1; *************** public class FormatCharacterIterator imp *** 264,316 **** attributeIndex = attributes.length-1; return formattedString.charAt (charIndex); } ! public char next() { charIndex++; if (charIndex >= formattedString.length()) { ! charIndex = getEndIndex(); ! return DONE; } if (attributes != null) { ! if (charIndex >= ranges[attributeIndex]) ! attributeIndex++; } return formattedString.charAt (charIndex); } ! public char previous() { charIndex--; if (charIndex < 0) { ! charIndex = 0; ! return DONE; } ! if (attributes != null) { ! if (charIndex < ranges[attributeIndex]) ! attributeIndex--; } return formattedString.charAt (charIndex); } ! public char setIndex (int position) { if (position < 0 || position > formattedString.length()) throw new IllegalArgumentException ("position is out of range"); ! charIndex = position; if (attributes != null) { ! for (attributeIndex=0;attributeIndex charIndex) ! break; ! attributeIndex--; } if (charIndex == formattedString.length()) return DONE; --- 264,316 ---- attributeIndex = attributes.length-1; return formattedString.charAt (charIndex); } ! public char next() { charIndex++; if (charIndex >= formattedString.length()) { ! charIndex = getEndIndex(); ! return DONE; } if (attributes != null) { ! if (charIndex >= ranges[attributeIndex]) ! attributeIndex++; } return formattedString.charAt (charIndex); } ! public char previous() { charIndex--; if (charIndex < 0) { ! charIndex = 0; ! return DONE; } ! if (attributes != null) { ! if (charIndex < ranges[attributeIndex]) ! attributeIndex--; } return formattedString.charAt (charIndex); } ! public char setIndex (int position) { if (position < 0 || position > formattedString.length()) throw new IllegalArgumentException ("position is out of range"); ! charIndex = position; if (attributes != null) { ! for (attributeIndex=0;attributeIndex charIndex) ! break; ! attributeIndex--; } if (charIndex == formattedString.length()) return DONE; *************** public class FormatCharacterIterator imp *** 334,397 **** int i = 0, j = 0; debug("merging " + attributes.length + " attrs"); ! while (i < this.ranges.length && j < ranges.length) { ! if (this.attributes[i] != null) ! { ! new_attributes.add (this.attributes[i]); ! if (attributes[j] != null) ! this.attributes[i].putAll (attributes[j]); ! } ! else ! { ! new_attributes.add (attributes[j]); ! } ! if (this.ranges[i] == ranges[j]) ! { ! new_ranges.add (new Integer (ranges[j])); ! i++; ! j++; ! } ! else if (this.ranges[i] < ranges[j]) ! { ! new_ranges.add (new Integer (this.ranges[i])); ! i++; ! } ! else ! { ! new_ranges.add (new Integer (ranges[j])); ! j++; ! } } ! if (i != this.ranges.length) { ! for (;i " + ranges[i] + ":"); ! if (attributes[i] == null) ! System.out.println("null"); ! else ! { ! Set keyset = attributes[i].keySet(); ! if (keyset != null) ! { ! Iterator keys = keyset.iterator(); ! ! while (keys.hasNext()) ! System.out.print(" " + keys.next()); ! } ! else ! System.out.println("keySet null"); ! System.out.println(); ! } } System.out.println(); System.out.flush(); --- 502,531 ---- private void dumpTable() { int start_range = 0; ! if (!DEBUG) return; System.out.println("Dumping internal table:"); for (int i = 0; i < ranges.length; i++) { ! System.out.print("\t" + start_range + " => " + ranges[i] + ":"); ! if (attributes[i] == null) ! System.out.println("null"); ! else ! { ! Set keyset = attributes[i].keySet(); ! if (keyset != null) ! { ! Iterator keys = keyset.iterator(); ! ! while (keys.hasNext()) ! System.out.print(" " + keys.next()); ! } ! else ! System.out.println("keySet null"); ! System.out.println(); ! } } System.out.println(); System.out.flush(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/LineBreakIterator.java gcc-4.6.0/libjava/classpath/gnu/java/text/LineBreakIterator.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/LineBreakIterator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/text/LineBreakIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class LineBreakIterator extends B *** 65,87 **** // Some methods to tell us different properties of characters. private final boolean isNb (char c) { ! return (c == 0x00a0 // NO-BREAK SPACE ! || c == 0x2011 // NON-BREAKING HYPHEN ! || c == 0xfeff); // ZERO WITH NO-BREAK SPACE } private final boolean isClose (int type) { return (type == Character.END_PUNCTUATION ! // Unicode book says "comma, period, ...", which I take to ! // mean "Po" class. ! || type == Character.OTHER_PUNCTUATION); } private final boolean isIdeo (char c) { ! return (c >= 0x3040 && c <= 0x309f // Hiragana ! || c >= 0x30a0 && c <= 0x30ff // Katakana ! || c >= 0x4e00 && c <= 0x9fff // Han ! || c >= 0x3100 && c <= 0x312f); // Bopomofo } public int next () --- 65,87 ---- // Some methods to tell us different properties of characters. private final boolean isNb (char c) { ! return (c == 0x00a0 // NO-BREAK SPACE ! || c == 0x2011 // NON-BREAKING HYPHEN ! || c == 0xfeff); // ZERO WITH NO-BREAK SPACE } private final boolean isClose (int type) { return (type == Character.END_PUNCTUATION ! // Unicode book says "comma, period, ...", which I take to ! // mean "Po" class. ! || type == Character.OTHER_PUNCTUATION); } private final boolean isIdeo (char c) { ! return (c >= 0x3040 && c <= 0x309f // Hiragana ! || c >= 0x30a0 && c <= 0x30ff // Katakana ! || c >= 0x4e00 && c <= 0x9fff // Han ! || c >= 0x3100 && c <= 0x312f); // Bopomofo } public int next () *************** public class LineBreakIterator extends B *** 92,145 **** while (iter.getIndex() < end) { ! char c = iter.current(); ! int type = Character.getType(c); ! char n = iter.next(); ! if (n == CharacterIterator.DONE ! || type == Character.PARAGRAPH_SEPARATOR ! || type == Character.LINE_SEPARATOR) ! break; ! // Handle two cases where we must scan for non-spacing marks. ! int start = iter.getIndex(); ! if (type == Character.SPACE_SEPARATOR ! || type == Character.START_PUNCTUATION ! || isIdeo (c)) ! { ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.NON_SPACING_MARK) ! n = iter.next(); ! if (n == CharacterIterator.DONE) ! break; ! if (type == Character.SPACE_SEPARATOR) ! { ! int nt = Character.getType(n); ! if (nt != Character.NON_SPACING_MARK ! && nt != Character.SPACE_SEPARATOR ! && ! isNb (n)) ! break; ! } ! else if (type == Character.START_PUNCTUATION) ! { ! if (isIdeo (n)) ! { ! // Open punctuation followed by non spacing marks ! // and then ideograph does not have a break in ! // it. So skip all this. ! start = iter.getIndex(); ! } ! } ! else ! { ! // Ideograph preceded this character. ! if (isClose (Character.getType(n))) ! break; ! } ! } ! iter.setIndex(start); } return iter.getIndex(); --- 92,145 ---- while (iter.getIndex() < end) { ! char c = iter.current(); ! int type = Character.getType(c); ! char n = iter.next(); ! if (n == CharacterIterator.DONE ! || type == Character.PARAGRAPH_SEPARATOR ! || type == Character.LINE_SEPARATOR) ! break; ! // Handle two cases where we must scan for non-spacing marks. ! int start = iter.getIndex(); ! if (type == Character.SPACE_SEPARATOR ! || type == Character.START_PUNCTUATION ! || isIdeo (c)) ! { ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.NON_SPACING_MARK) ! n = iter.next(); ! if (n == CharacterIterator.DONE) ! break; ! if (type == Character.SPACE_SEPARATOR) ! { ! int nt = Character.getType(n); ! if (nt != Character.NON_SPACING_MARK ! && nt != Character.SPACE_SEPARATOR ! && ! isNb (n)) ! break; ! } ! else if (type == Character.START_PUNCTUATION) ! { ! if (isIdeo (n)) ! { ! // Open punctuation followed by non spacing marks ! // and then ideograph does not have a break in ! // it. So skip all this. ! start = iter.getIndex(); ! } ! } ! else ! { ! // Ideograph preceded this character. ! if (isClose (Character.getType(n))) ! break; ! } ! } ! iter.setIndex(start); } return iter.getIndex(); *************** public class LineBreakIterator extends B *** 153,192 **** while (iter.getIndex() >= start) { ! char c = iter.previous(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! char n = iter.previous(); ! if (n == CharacterIterator.DONE) ! break; ! iter.next(); ! int nt = Character.getType(n); ! // Break after paragraph separators. ! if (nt == Character.PARAGRAPH_SEPARATOR ! || nt == Character.LINE_SEPARATOR) ! break; ! // Skip non-spacing marks. ! int init = iter.getIndex(); ! while (n != CharacterIterator.DONE && nt == Character.NON_SPACING_MARK) ! { ! n = iter.previous(); ! nt = Character.getType(n); ! } ! if (nt == Character.SPACE_SEPARATOR ! && type != Character.SPACE_SEPARATOR ! && type != Character.NON_SPACING_MARK ! && ! isNb (c)) ! break; ! if (! isClose (type) && isIdeo (n)) ! break; ! if (isIdeo (c) && nt != Character.START_PUNCTUATION) ! break; ! iter.setIndex(init); } return iter.getIndex(); --- 153,192 ---- while (iter.getIndex() >= start) { ! char c = iter.previous(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! char n = iter.previous(); ! if (n == CharacterIterator.DONE) ! break; ! iter.next(); ! int nt = Character.getType(n); ! // Break after paragraph separators. ! if (nt == Character.PARAGRAPH_SEPARATOR ! || nt == Character.LINE_SEPARATOR) ! break; ! // Skip non-spacing marks. ! int init = iter.getIndex(); ! while (n != CharacterIterator.DONE && nt == Character.NON_SPACING_MARK) ! { ! n = iter.previous(); ! nt = Character.getType(n); ! } ! if (nt == Character.SPACE_SEPARATOR ! && type != Character.SPACE_SEPARATOR ! && type != Character.NON_SPACING_MARK ! && ! isNb (c)) ! break; ! if (! isClose (type) && isIdeo (n)) ! break; ! if (isIdeo (c) && nt != Character.START_PUNCTUATION) ! break; ! iter.setIndex(init); } return iter.getIndex(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/SentenceBreakIterator.java gcc-4.6.0/libjava/classpath/gnu/java/text/SentenceBreakIterator.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/SentenceBreakIterator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/text/SentenceBreakIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class SentenceBreakIterator exten *** 70,135 **** while (iter.getIndex() < end) { ! char c = iter.current(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! char n = iter.next(); ! if (n == CharacterIterator.DONE) ! break; ! // Always break after paragraph separator. ! if (type == Character.PARAGRAPH_SEPARATOR) ! break; ! if (c == '!' || c == '?') ! { ! // Skip close punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.END_PUNCTUATION) ! n = iter.next(); ! // Skip (java) space, line and paragraph separators. ! while (n != CharacterIterator.DONE && Character.isWhitespace(n)) ! n = iter.next(); ! // There's always a break somewhere after `!' or `?'. ! break; ! } ! if (c == '.') ! { ! int save = iter.getIndex(); ! // Skip close punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.END_PUNCTUATION) ! n = iter.next(); ! // Skip (java) space, line and paragraph separators. ! // We keep count because we need at least one for this period to ! // represent a terminator. ! int spcount = 0; ! while (n != CharacterIterator.DONE && Character.isWhitespace(n)) ! { ! n = iter.next(); ! ++spcount; ! } ! if (spcount > 0) ! { ! int save2 = iter.getIndex(); ! // Skip over open puncutation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.START_PUNCTUATION) ! n = iter.next(); ! // Next character must not be lower case. ! if (n == CharacterIterator.DONE ! || ! Character.isLowerCase(n)) ! { ! iter.setIndex(save2); ! break; ! } ! } ! iter.setIndex(save); ! } } return iter.getIndex(); --- 70,135 ---- while (iter.getIndex() < end) { ! char c = iter.current(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! char n = iter.next(); ! if (n == CharacterIterator.DONE) ! break; ! // Always break after paragraph separator. ! if (type == Character.PARAGRAPH_SEPARATOR) ! break; ! if (c == '!' || c == '?') ! { ! // Skip close punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.END_PUNCTUATION) ! n = iter.next(); ! // Skip (java) space, line and paragraph separators. ! while (n != CharacterIterator.DONE && Character.isWhitespace(n)) ! n = iter.next(); ! // There's always a break somewhere after `!' or `?'. ! break; ! } ! if (c == '.') ! { ! int save = iter.getIndex(); ! // Skip close punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.END_PUNCTUATION) ! n = iter.next(); ! // Skip (java) space, line and paragraph separators. ! // We keep count because we need at least one for this period to ! // represent a terminator. ! int spcount = 0; ! while (n != CharacterIterator.DONE && Character.isWhitespace(n)) ! { ! n = iter.next(); ! ++spcount; ! } ! if (spcount > 0) ! { ! int save2 = iter.getIndex(); ! // Skip over open puncutation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.START_PUNCTUATION) ! n = iter.next(); ! // Next character must not be lower case. ! if (n == CharacterIterator.DONE ! || ! Character.isLowerCase(n)) ! { ! iter.setIndex(save2); ! break; ! } ! } ! iter.setIndex(save); ! } } return iter.getIndex(); *************** public class SentenceBreakIterator exten *** 143,228 **** while (iter.getIndex() >= start) { ! char c = iter.previous(); ! if (c == CharacterIterator.DONE) ! break; ! char n = iter.previous(); ! if (n == CharacterIterator.DONE) ! break; ! iter.next(); ! int nt = Character.getType(n); ! if (! Character.isLowerCase(c) ! && (nt == Character.START_PUNCTUATION ! || Character.isWhitespace(n))) ! { ! int save = iter.getIndex(); ! int save_nt = nt; ! char save_n = n; ! // Skip open punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.START_PUNCTUATION) ! n = iter.previous(); ! if (n == CharacterIterator.DONE) ! break; ! if (Character.isWhitespace(n)) ! { ! // Must have at least one (java) space after the `.'. ! int save2 = iter.getIndex(); ! while (n != CharacterIterator.DONE ! && Character.isWhitespace(n)) ! n = iter.previous(); ! // Skip close punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.END_PUNCTUATION) ! n = iter.previous(); ! if (n == CharacterIterator.DONE || n == '.') ! { ! // Communicate location of actual end. ! period = iter.getIndex(); ! iter.setIndex(save2); ! break; ! } ! } ! iter.setIndex(save); ! nt = save_nt; ! n = save_n; ! } ! if (nt == Character.PARAGRAPH_SEPARATOR) ! { ! // Communicate location of actual end. ! period = iter.getIndex(); ! break; ! } ! else if (Character.isWhitespace(n) ! || nt == Character.END_PUNCTUATION) ! { ! int save = iter.getIndex(); ! // Skip (java) space, line and paragraph separators. ! while (n != CharacterIterator.DONE ! && Character.isWhitespace(n)) ! n = iter.previous(); ! // Skip close punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.END_PUNCTUATION) ! n = iter.previous(); ! int here = iter.getIndex(); ! iter.setIndex(save); ! if (n == CharacterIterator.DONE || n == '!' || n == '?') ! { ! // Communicate location of actual end. ! period = here; ! break; ! } ! } ! else if (n == '!' || n == '?') ! { ! // Communicate location of actual end. ! period = iter.getIndex(); ! break; ! } } return iter.getIndex(); --- 143,228 ---- while (iter.getIndex() >= start) { ! char c = iter.previous(); ! if (c == CharacterIterator.DONE) ! break; ! char n = iter.previous(); ! if (n == CharacterIterator.DONE) ! break; ! iter.next(); ! int nt = Character.getType(n); ! if (! Character.isLowerCase(c) ! && (nt == Character.START_PUNCTUATION ! || Character.isWhitespace(n))) ! { ! int save = iter.getIndex(); ! int save_nt = nt; ! char save_n = n; ! // Skip open punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.START_PUNCTUATION) ! n = iter.previous(); ! if (n == CharacterIterator.DONE) ! break; ! if (Character.isWhitespace(n)) ! { ! // Must have at least one (java) space after the `.'. ! int save2 = iter.getIndex(); ! while (n != CharacterIterator.DONE ! && Character.isWhitespace(n)) ! n = iter.previous(); ! // Skip close punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.END_PUNCTUATION) ! n = iter.previous(); ! if (n == CharacterIterator.DONE || n == '.') ! { ! // Communicate location of actual end. ! period = iter.getIndex(); ! iter.setIndex(save2); ! break; ! } ! } ! iter.setIndex(save); ! nt = save_nt; ! n = save_n; ! } ! if (nt == Character.PARAGRAPH_SEPARATOR) ! { ! // Communicate location of actual end. ! period = iter.getIndex(); ! break; ! } ! else if (Character.isWhitespace(n) ! || nt == Character.END_PUNCTUATION) ! { ! int save = iter.getIndex(); ! // Skip (java) space, line and paragraph separators. ! while (n != CharacterIterator.DONE ! && Character.isWhitespace(n)) ! n = iter.previous(); ! // Skip close punctuation. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.END_PUNCTUATION) ! n = iter.previous(); ! int here = iter.getIndex(); ! iter.setIndex(save); ! if (n == CharacterIterator.DONE || n == '!' || n == '?') ! { ! // Communicate location of actual end. ! period = here; ! break; ! } ! } ! else if (n == '!' || n == '?') ! { ! // Communicate location of actual end. ! period = iter.getIndex(); ! break; ! } } return iter.getIndex(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/StringFormatBuffer.java gcc-4.6.0/libjava/classpath/gnu/java/text/StringFormatBuffer.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/StringFormatBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/text/StringFormatBuffer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.HashMap; *** 41,47 **** /** * This class is an implementation of a FormatBuffer without attributes. ! * * @author Guilhem Lavaux * @date April 10, 2004 */ --- 41,47 ---- /** * This class is an implementation of a FormatBuffer without attributes. ! * * @author Guilhem Lavaux * @date April 10, 2004 */ *************** public class StringFormatBuffer implemen *** 64,70 **** { buffer.append(s); } ! public void append(String s, AttributedCharacterIterator.Attribute attr) { buffer.append(s); --- 64,70 ---- { buffer.append(s); } ! public void append(String s, AttributedCharacterIterator.Attribute attr) { buffer.append(s); *************** public class StringFormatBuffer implemen *** 111,117 **** } /** ! * This method returns the internal {@link java.lang.StringBuffer} which * contains the string of character. */ public StringBuffer getBuffer() --- 111,117 ---- } /** ! * This method returns the internal {@link java.lang.StringBuffer} which * contains the string of character. */ public StringBuffer getBuffer() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/text/WordBreakIterator.java gcc-4.6.0/libjava/classpath/gnu/java/text/WordBreakIterator.java *** gcc-4.5.2/libjava/classpath/gnu/java/text/WordBreakIterator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/java/text/WordBreakIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class WordBreakIterator extends B *** 84,161 **** while (iter.getIndex() < end) { ! char c = iter.current(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! char n = iter.next(); ! if (n == CharacterIterator.DONE) ! break; ! // Break after paragraph separators. ! if (type == Character.PARAGRAPH_SEPARATOR ! || type == Character.LINE_SEPARATOR) ! break; ! // Break between letters and non-letters. ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! boolean is_letter = Character.isLetter(c); ! if (c != '\'' && ! is_letter && type != Character.NON_SPACING_MARK ! && Character.isLetter(n)) ! break; ! // Always break after certain symbols, such as punctuation. ! // This heuristic is derived from hints in the JCL book and is ! // not part of Unicode. It seems to be right, however. ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! if (c != '\'' ! && (type == Character.DASH_PUNCTUATION ! || type == Character.START_PUNCTUATION ! || type == Character.END_PUNCTUATION ! || type == Character.CONNECTOR_PUNCTUATION ! || type == Character.OTHER_PUNCTUATION ! || type == Character.MATH_SYMBOL ! || type == Character.CURRENCY_SYMBOL ! || type == Character.MODIFIER_SYMBOL ! || type == Character.OTHER_SYMBOL ! || type == Character.FORMAT ! || type == Character.CONTROL)) ! break; ! boolean is_hira = isHira (c); ! boolean is_kata = isKata (c); ! boolean is_han = isHan (c); ! // Special case Japanese. ! if (! is_hira && ! is_kata && ! is_han ! && type != Character.NON_SPACING_MARK ! && (isHira (n) || isKata (n) || isHan (n))) ! break; ! if (is_hira || is_kata || is_han || is_letter) ! { ! // Now we need to do some lookahead. We might need to do ! // quite a bit of lookahead, so we save our position and ! // restore it later. ! int save = iter.getIndex(); ! // Skip string of non spacing marks. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.NON_SPACING_MARK) ! n = iter.next(); ! if (n == CharacterIterator.DONE) ! break; ! if ((is_hira && ! isHira (n)) ! || (is_kata && ! isHira (n) && ! isKata (n)) ! || (is_han && ! isHira (n) && ! isHan (n)) ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! || (is_letter && ! Character.isLetter(n) && n != '\'')) ! break; ! iter.setIndex(save); ! } } return iter.getIndex(); --- 84,161 ---- while (iter.getIndex() < end) { ! char c = iter.current(); ! if (c == CharacterIterator.DONE) ! break; ! int type = Character.getType(c); ! char n = iter.next(); ! if (n == CharacterIterator.DONE) ! break; ! // Break after paragraph separators. ! if (type == Character.PARAGRAPH_SEPARATOR ! || type == Character.LINE_SEPARATOR) ! break; ! // Break between letters and non-letters. ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! boolean is_letter = Character.isLetter(c); ! if (c != '\'' && ! is_letter && type != Character.NON_SPACING_MARK ! && Character.isLetter(n)) ! break; ! // Always break after certain symbols, such as punctuation. ! // This heuristic is derived from hints in the JCL book and is ! // not part of Unicode. It seems to be right, however. ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! if (c != '\'' ! && (type == Character.DASH_PUNCTUATION ! || type == Character.START_PUNCTUATION ! || type == Character.END_PUNCTUATION ! || type == Character.CONNECTOR_PUNCTUATION ! || type == Character.OTHER_PUNCTUATION ! || type == Character.MATH_SYMBOL ! || type == Character.CURRENCY_SYMBOL ! || type == Character.MODIFIER_SYMBOL ! || type == Character.OTHER_SYMBOL ! || type == Character.FORMAT ! || type == Character.CONTROL)) ! break; ! boolean is_hira = isHira (c); ! boolean is_kata = isKata (c); ! boolean is_han = isHan (c); ! // Special case Japanese. ! if (! is_hira && ! is_kata && ! is_han ! && type != Character.NON_SPACING_MARK ! && (isHira (n) || isKata (n) || isHan (n))) ! break; ! if (is_hira || is_kata || is_han || is_letter) ! { ! // Now we need to do some lookahead. We might need to do ! // quite a bit of lookahead, so we save our position and ! // restore it later. ! int save = iter.getIndex(); ! // Skip string of non spacing marks. ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.NON_SPACING_MARK) ! n = iter.next(); ! if (n == CharacterIterator.DONE) ! break; ! if ((is_hira && ! isHira (n)) ! || (is_kata && ! isHira (n) && ! isKata (n)) ! || (is_han && ! isHira (n) && ! isHan (n)) ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! || (is_letter && ! Character.isLetter(n) && n != '\'')) ! break; ! iter.setIndex(save); ! } } return iter.getIndex(); *************** public class WordBreakIterator extends B *** 169,248 **** while (iter.getIndex() >= start) { ! char c = iter.previous(); ! if (c == CharacterIterator.DONE) ! break; ! boolean is_hira = isHira (c); ! boolean is_kata = isKata (c); ! boolean is_han = isHan (c); ! boolean is_letter = Character.isLetter(c); ! char n = iter.previous(); ! if (n == CharacterIterator.DONE) ! break; ! iter.next(); ! int type = Character.getType(n); ! // Break after paragraph separators. ! if (type == Character.PARAGRAPH_SEPARATOR ! || type == Character.LINE_SEPARATOR) ! break; ! // Break between letters and non-letters. ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! if (n != '\'' && ! Character.isLetter(n) ! && type != Character.NON_SPACING_MARK ! && is_letter) ! break; ! // Always break after certain symbols, such as punctuation. ! // This heuristic is derived from hints in the JCL book and is ! // not part of Unicode. It seems to be right, however. ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! if (n != '\'' ! && (type == Character.DASH_PUNCTUATION ! || type == Character.START_PUNCTUATION ! || type == Character.END_PUNCTUATION ! || type == Character.CONNECTOR_PUNCTUATION ! || type == Character.OTHER_PUNCTUATION ! || type == Character.MATH_SYMBOL ! || type == Character.CURRENCY_SYMBOL ! || type == Character.MODIFIER_SYMBOL ! || type == Character.OTHER_SYMBOL ! || type == Character.FORMAT ! || type == Character.CONTROL)) ! break; ! // Special case Japanese. ! if ((is_hira || is_kata || is_han) ! && ! isHira (n) && ! isKata (n) && ! isHan (n) ! && type != Character.NON_SPACING_MARK) ! break; ! // We might have to skip over non spacing marks to see what's ! // on the other side. ! if (! is_hira || (! is_letter && c != '\'')) ! { ! int save = iter.getIndex(); ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.NON_SPACING_MARK) ! n = iter.previous(); ! iter.setIndex(save); ! // This is a strange case: a bunch of non-spacing marks at ! // the beginning. We treat the current location as a word ! // break. ! if (n == CharacterIterator.DONE) ! break; ! if ((isHira (n) && ! is_hira) ! || (isKata (n) && ! is_hira && ! is_kata) ! || (isHan (n) && ! is_hira && ! is_han) ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! || (! is_letter && c != '\'' && Character.isLetter(n))) ! break; ! } } return iter.getIndex(); --- 169,248 ---- while (iter.getIndex() >= start) { ! char c = iter.previous(); ! if (c == CharacterIterator.DONE) ! break; ! boolean is_hira = isHira (c); ! boolean is_kata = isKata (c); ! boolean is_han = isHan (c); ! boolean is_letter = Character.isLetter(c); ! char n = iter.previous(); ! if (n == CharacterIterator.DONE) ! break; ! iter.next(); ! int type = Character.getType(n); ! // Break after paragraph separators. ! if (type == Character.PARAGRAPH_SEPARATOR ! || type == Character.LINE_SEPARATOR) ! break; ! // Break between letters and non-letters. ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! if (n != '\'' && ! Character.isLetter(n) ! && type != Character.NON_SPACING_MARK ! && is_letter) ! break; ! // Always break after certain symbols, such as punctuation. ! // This heuristic is derived from hints in the JCL book and is ! // not part of Unicode. It seems to be right, however. ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! if (n != '\'' ! && (type == Character.DASH_PUNCTUATION ! || type == Character.START_PUNCTUATION ! || type == Character.END_PUNCTUATION ! || type == Character.CONNECTOR_PUNCTUATION ! || type == Character.OTHER_PUNCTUATION ! || type == Character.MATH_SYMBOL ! || type == Character.CURRENCY_SYMBOL ! || type == Character.MODIFIER_SYMBOL ! || type == Character.OTHER_SYMBOL ! || type == Character.FORMAT ! || type == Character.CONTROL)) ! break; ! // Special case Japanese. ! if ((is_hira || is_kata || is_han) ! && ! isHira (n) && ! isKata (n) && ! isHan (n) ! && type != Character.NON_SPACING_MARK) ! break; ! // We might have to skip over non spacing marks to see what's ! // on the other side. ! if (! is_hira || (! is_letter && c != '\'')) ! { ! int save = iter.getIndex(); ! while (n != CharacterIterator.DONE ! && Character.getType(n) == Character.NON_SPACING_MARK) ! n = iter.previous(); ! iter.setIndex(save); ! // This is a strange case: a bunch of non-spacing marks at ! // the beginning. We treat the current location as a word ! // break. ! if (n == CharacterIterator.DONE) ! break; ! if ((isHira (n) && ! is_hira) ! || (isKata (n) && ! is_hira && ! is_kata) ! || (isHan (n) && ! is_hira && ! is_han) ! // FIXME: we treat apostrophe as part of a word. This ! // is an English-ism. ! || (! is_letter && c != '\'' && Character.isLetter(n))) ! break; ! } } return iter.getIndex(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/Base64.java gcc-4.6.0/libjava/classpath/gnu/java/util/Base64.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/Base64.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/Base64.java Tue Jan 11 19:46:05 2011 *************** public final class Base64 *** 114,120 **** { return encode(buf, 0); } ! /** * Base64 encode a byte array, returning the returning string. * --- 114,120 ---- { return encode(buf, 0); } ! /** * Base64 encode a byte array, returning the returning string. * *************** public final class Base64 *** 129,135 **** /** * Base64 encode a byte array, returning the returning string. ! * * @param buf The byte array to encode. * @param offset The offset in the byte array to start. * @param length The number of bytes to encode. --- 129,135 ---- /** * Base64 encode a byte array, returning the returning string. ! * * @param buf The byte array to encode. * @param offset The offset in the byte array to start. * @param length The number of bytes to encode. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/DoubleEnumeration.java gcc-4.6.0/libjava/classpath/gnu/java/util/DoubleEnumeration.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/DoubleEnumeration.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/util/DoubleEnumeration.java Tue Jan 11 19:46:05 2011 *************** import java.util.NoSuchElementException; *** 46,52 **** * It returns the elements of the first Enumeration until it has * no more elements and then returns the elements of the second * Enumeration.
          ! * * In the default case: *
             * doubleEnum = new DoubleEnumeration(enum1, enum2);
          --- 46,52 ----
             * It returns the elements of the first Enumeration until it has
             * no more elements and then returns the elements of the second
             * Enumeration.
          ! * * In the default case: *
             * doubleEnum = new DoubleEnumeration(enum1, enum2);
          *************** public class DoubleEnumeration implem
          *** 67,73 ****
            {
              /**
               * This is true as long as one of the enumerations has more
          !    * elements.  
               * Only valid when hasChecked is true.
               * Set in hasMoreElements()
               */
          --- 67,73 ----
            {
              /**
               * This is true as long as one of the enumerations has more
          !    * elements.
               * Only valid when hasChecked is true.
               * Set in hasMoreElements()
               */
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/EmptyEnumeration.java gcc-4.6.0/libjava/classpath/gnu/java/util/EmptyEnumeration.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/util/EmptyEnumeration.java	Tue Oct 21 17:55:01 2008
          --- gcc-4.6.0/libjava/classpath/gnu/java/util/EmptyEnumeration.java	Tue Jan 11 19:46:05 2011
          *************** import java.util.NoSuchElementException;
          *** 54,60 ****
            public final class EmptyEnumeration implements Enumeration, Serializable
            {
              /** The only instance of this class */
          !   private static final EmptyEnumeration instance = 
                new EmptyEnumeration();
            
              /**
          --- 54,60 ----
            public final class EmptyEnumeration implements Enumeration, Serializable
            {
              /** The only instance of this class */
          !   private static final EmptyEnumeration instance =
                new EmptyEnumeration();
            
              /**
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/WeakIdentityHashMap.java gcc-4.6.0/libjava/classpath/gnu/java/util/WeakIdentityHashMap.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/util/WeakIdentityHashMap.java	Tue Jan 17 18:09:40 2006
          --- gcc-4.6.0/libjava/classpath/gnu/java/util/WeakIdentityHashMap.java	Tue Jan 11 19:46:05 2011
          *************** public class WeakIdentityHashMap extends
          *** 686,697 ****
                  {
                     if (next == null)
                        throw new InternalError("WeakIdentityHashMap in inconsistent state");
          !          prev = next; 
                     next = prev.next;
                  }
                if (prev == null)
                  buckets[slot] = bucket.next;
          !     else 
                  prev.next = bucket.next;
            
                size--;
          --- 686,697 ----
                  {
                     if (next == null)
                        throw new InternalError("WeakIdentityHashMap in inconsistent state");
          !          prev = next;
                     next = prev.next;
                  }
                if (prev == null)
                  buckets[slot] = bucket.next;
          !     else
                  prev.next = bucket.next;
            
                size--;
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/ZoneInfo.java gcc-4.6.0/libjava/classpath/gnu/java/util/ZoneInfo.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/util/ZoneInfo.java	Thu Feb 22 16:04:55 2007
          --- gcc-4.6.0/libjava/classpath/gnu/java/util/ZoneInfo.java	Tue Jan 11 19:46:05 2011
          *************** public class ZoneInfo extends TimeZone
          *** 134,140 ****
               * rules after the last transition.
               */
              public ZoneInfo(int rawOffset, String id, long[] transitions,
          ! 		  SimpleTimeZone lastRule)
              {
                if (transitions == null || transitions.length < 1)
                  throw new IllegalArgumentException("transitions must not be null");
          --- 134,140 ----
               * rules after the last transition.
               */
              public ZoneInfo(int rawOffset, String id, long[] transitions,
          !                   SimpleTimeZone lastRule)
              {
                if (transitions == null || transitions.length < 1)
                  throw new IllegalArgumentException("transitions must not be null");
          *************** public class ZoneInfo extends TimeZone
          *** 166,172 ****
               * @throws IllegalArgumentException if arguments are incorrect.
               */
              public int getOffset(int era, int year, int month, int day, int dayOfWeek,
          ! 		       int millis)
              {
                if (gmtZone == null)
                  gmtZone = new SimpleTimeZone(0, "GMT");
          --- 166,172 ----
               * @throws IllegalArgumentException if arguments are incorrect.
               */
              public int getOffset(int era, int year, int month, int day, int dayOfWeek,
          !                        int millis)
              {
                if (gmtZone == null)
                  gmtZone = new SimpleTimeZone(0, "GMT");
          *************** public class ZoneInfo extends TimeZone
          *** 201,215 ****
                int mid = 1;
                while (lo < hi)
                  {
          ! 	mid = (lo + hi) / 2;
          ! 	// secs < (transitions[mid-1] >> SECS_SHIFT)
          ! 	if (val <= transitions[mid-1])
          ! 	  hi = mid;
          ! 	// secs >= (transitions[mid] >> SECS_SHIFT)
          ! 	else if (val > transitions[mid])
          ! 	  lo = mid + 1;
          ! 	else
          ! 	  break;
                  }
                return transitions[mid];
              }
          --- 201,215 ----
                int mid = 1;
                while (lo < hi)
                  {
          !         mid = (lo + hi) / 2;
          !         // secs < (transitions[mid-1] >> SECS_SHIFT)
          !         if (val <= transitions[mid-1])
          !           hi = mid;
          !         // secs >= (transitions[mid] >> SECS_SHIFT)
          !         else if (val > transitions[mid])
          !           lo = mid + 1;
          !         else
          !           break;
                  }
                return transitions[mid];
              }
          *************** public class ZoneInfo extends TimeZone
          *** 257,286 ****
              {
                if (lastRule.useDaylightTime())
                  {
          ! 	dstSavings = lastRule.getDSTSavings();
          ! 	useDaylight = true;
                  }
                else
                  {
          ! 	dstSavings = 0;
          ! 	useDaylight = false;
          ! 	// lastRule might say no DST is in effect simply because
          ! 	// the DST rules are too complex for SimpleTimeZone, say
          ! 	// for Asia/Jerusalem.
          ! 	// Look at the last DST offset if it is newer than current time.
          ! 	long currentSecs = System.currentTimeMillis() / 1000;
          ! 	int i;
          ! 	for (i = transitions.length - 1;
          ! 	     i >= 0 && currentSecs < (transitions[i] >> SECS_SHIFT);
          ! 	     i--)
          ! 	  if ((transitions[i] & IS_DST) != 0)
          ! 	    {
          ! 	      dstSavings = (int) (((transitions[i] << OFFSET_SHIFT)
          ! 				   >> OFFSET_SHIFT) * 1000)
          ! 			   - rawOffset;
          ! 	      useDaylight = true;
          ! 	      break;
          ! 	    }
                  }
              }
            
          --- 257,286 ----
              {
                if (lastRule.useDaylightTime())
                  {
          !         dstSavings = lastRule.getDSTSavings();
          !         useDaylight = true;
                  }
                else
                  {
          !         dstSavings = 0;
          !         useDaylight = false;
          !         // lastRule might say no DST is in effect simply because
          !         // the DST rules are too complex for SimpleTimeZone, say
          !         // for Asia/Jerusalem.
          !         // Look at the last DST offset if it is newer than current time.
          !         long currentSecs = System.currentTimeMillis() / 1000;
          !         int i;
          !         for (i = transitions.length - 1;
          !              i >= 0 && currentSecs < (transitions[i] >> SECS_SHIFT);
          !              i--)
          !           if ((transitions[i] & IS_DST) != 0)
          !             {
          !               dstSavings = (int) (((transitions[i] << OFFSET_SHIFT)
          !                                    >> OFFSET_SHIFT) * 1000)
          !                            - rawOffset;
          !               useDaylight = true;
          !               break;
          !             }
                  }
              }
            
          *************** public class ZoneInfo extends TimeZone
          *** 372,381 ****
              public String toString()
              {
                return getClass().getName() + "[" + "id=" + getID() + ",offset="
          ! 	   + rawOffset + ",transitions=" + transitions.length
          ! 	   + ",useDaylight=" + useDaylight
          ! 	   + (useDaylight ? (",dstSavings=" + dstSavings) : "")
          ! 	   + ",lastRule=" + lastRule.toString() + "]";
              }
            
              /**
          --- 372,381 ----
              public String toString()
              {
                return getClass().getName() + "[" + "id=" + getID() + ",offset="
          !            + rawOffset + ",transitions=" + transitions.length
          !            + ",useDaylight=" + useDaylight
          !            + (useDaylight ? (",dstSavings=" + dstSavings) : "")
          !            + ",lastRule=" + lastRule.toString() + "]";
              }
            
              /**
          *************** public class ZoneInfo extends TimeZone
          *** 389,858 ****
                DataInputStream dis = null;
                try
                  {
          ! 	FileInputStream fis = new FileInputStream(file);
          ! 	BufferedInputStream bis = new BufferedInputStream(fis);
          ! 	dis = new DataInputStream(bis);
            
          ! 	// Make sure we are reading a tzfile.
          ! 	byte[] tzif = new byte[5];
          ! 	dis.readFully(tzif);
          ! 	int tzif2 = 4;
          ! 	if (tzif[0] == 'T' && tzif[1] == 'Z'
          ! 	    && tzif[2] == 'i' && tzif[3] == 'f')
          ! 	  {
          ! 	    if (tzif[4] >= '2')
          ! 	      tzif2 = 8;
          ! 	    // Reserved bytes
          ! 	    skipFully(dis, 16 - 1);
          ! 	  }
          ! 	else
          ! 	  // Darwin has tzdata files that don't start with the TZif marker
          ! 	  skipFully(dis, 16 - 5);
            
          ! 	int ttisgmtcnt = dis.readInt();
          ! 	int ttisstdcnt = dis.readInt();
          ! 	int leapcnt = dis.readInt();
          ! 	int timecnt = dis.readInt();
          ! 	int typecnt = dis.readInt();
          ! 	int charcnt = dis.readInt();
          ! 	if (tzif2 == 8)
          ! 	  {
          ! 	    skipFully(dis, timecnt * (4 + 1) + typecnt * (4 + 1 + 1) + charcnt
          ! 			   + leapcnt * (4 + 4) + ttisgmtcnt + ttisstdcnt);
            
          ! 	    dis.readFully(tzif);
          ! 	    if (tzif[0] != 'T' || tzif[1] != 'Z' || tzif[2] != 'i'
          ! 		|| tzif[3] != 'f' || tzif[4] < '2')
          ! 	      return null;
            
          ! 	    // Reserved bytes
          ! 	    skipFully(dis, 16 - 1);
          ! 	    ttisgmtcnt = dis.readInt();
          ! 	    ttisstdcnt = dis.readInt();
          ! 	    leapcnt = dis.readInt();
          ! 	    timecnt = dis.readInt();
          ! 	    typecnt = dis.readInt();
          ! 	    charcnt = dis.readInt();
          ! 	  }
            
          ! 	// Sanity checks
          ! 	if (typecnt <= 0 || timecnt < 0 || charcnt < 0
          ! 	    || leapcnt < 0 || ttisgmtcnt < 0 || ttisstdcnt < 0
          ! 	    || ttisgmtcnt > typecnt || ttisstdcnt > typecnt)
          ! 	  return null;
            
          ! 	// Transition times
          ! 	long[] times = new long[timecnt];
          ! 	for (int i = 0; i < timecnt; i++)
          ! 	  if (tzif2 == 8)
          ! 	    times[i] = dis.readLong();
          ! 	  else
          ! 	    times[i] = (long) dis.readInt();
            
          ! 	// Transition types
          ! 	int[] types = new int[timecnt];
          ! 	for (int i = 0; i < timecnt; i++)
          ! 	  {
          ! 	    types[i] = dis.readByte();
          ! 	    if (types[i] < 0)
          ! 	      types[i] += 256;
          ! 	    if (types[i] >= typecnt)
          ! 	      return null;
          ! 	  }
            
          ! 	// Types
          ! 	int[] offsets = new int[typecnt];
          ! 	int[] typeflags = new int[typecnt];
          ! 	for (int i = 0; i < typecnt; i++)
          ! 	  {
          ! 	    offsets[i] = dis.readInt();
          ! 	    if (offsets[i] >= IS_DST / 2 || offsets[i] <= -IS_DST / 2)
          ! 	      return null;
          ! 	    int dst = dis.readByte();
          ! 	    int abbrind = dis.readByte();
          ! 	    if (abbrind < 0)
          ! 	      abbrind += 256;
          ! 	    if (abbrind >= charcnt)
          ! 	      return null;
          ! 	    typeflags[i] = (dst != 0 ? (1 << 8) : 0) + abbrind;
          ! 	  }
            
          ! 	// Abbrev names
          ! 	byte[] names = new byte[charcnt];
          ! 	dis.readFully(names);
            
          ! 	// Leap transitions, for now ignore
          ! 	skipFully(dis, leapcnt * (tzif2 + 4) + ttisstdcnt + ttisgmtcnt);
            
          ! 	// tzIf2 format has optional POSIX TZ env string
          ! 	String tzstr = null;
          ! 	if (tzif2 == 8 && dis.readByte() == '\n')
          ! 	  {
          ! 	    tzstr = dis.readLine();
          ! 	    if (tzstr.length() <= 0)
          ! 	      tzstr = null;
          ! 	  }
            
          ! 	// Get std/dst_offset and dst/non-dst time zone names.
          ! 	int std_ind = -1;
          ! 	int dst_ind = -1;
          ! 	if (timecnt == 0)
          ! 	  std_ind = 0;
          ! 	else
          ! 	  for (int i = timecnt - 1; i >= 0; i--)
          ! 	    {
          ! 	      if (std_ind == -1 && (typeflags[types[i]] & (1 << 8)) == 0)
          ! 		std_ind = types[i];
          ! 	      else if (dst_ind == -1 && (typeflags[types[i]] & (1 << 8)) != 0)
          ! 		dst_ind = types[i];
          ! 	      if (dst_ind != -1 && std_ind != -1)
          ! 		break;
          ! 	    }
            
          ! 	if (std_ind == -1)
          ! 	  return null;
            
          ! 	int j = typeflags[std_ind] & 255;
          ! 	while (j < charcnt && names[j] != 0)
          ! 	  j++;
          ! 	String std_zonename = new String(names, typeflags[std_ind] & 255,
          ! 					 j - (typeflags[std_ind] & 255),
          ! 					 "ASCII");
            
          ! 	String dst_zonename = "";
          ! 	if (dst_ind != -1)
          ! 	  {
          ! 	    j = typeflags[dst_ind] & 255;
          ! 	    while (j < charcnt && names[j] != 0)
          ! 	      j++;
          ! 	    dst_zonename = new String(names, typeflags[dst_ind] & 255,
          ! 				      j - (typeflags[dst_ind] & 255), "ASCII");
          ! 	  }
            
          ! 	// Only use gmt offset when necessary.
          ! 	// Also special case GMT+/- timezones.
          ! 	String std_offset_string = "";
          ! 	String dst_offset_string = "";
          ! 	if (tzstr == null
          ! 	    && (dst_ind != -1
          ! 		|| (offsets[std_ind] != 0
          ! 		    && !std_zonename.startsWith("GMT+")
          ! 		    && !std_zonename.startsWith("GMT-"))))
          ! 	  {
          ! 	    std_offset_string = Integer.toString(-offsets[std_ind] / 3600);
          ! 	    int seconds = -offsets[std_ind] % 3600;
          ! 	    if (seconds != 0)
          ! 	      {
          ! 		if (seconds < 0)
          ! 		  seconds *= -1;
          ! 		if (seconds < 600)
          ! 		  std_offset_string += ":0" + Integer.toString(seconds / 60);
          ! 		else
          ! 		  std_offset_string += ":" + Integer.toString(seconds / 60);
          ! 		seconds = seconds % 60;
          ! 		if (seconds >= 10)
          ! 		  std_offset_string += ":" + Integer.toString(seconds);
          ! 		else if (seconds > 0)
          ! 		  std_offset_string += ":0" + Integer.toString(seconds);
          ! 	      }
            
          ! 	    if (dst_ind != -1 && offsets[dst_ind] != offsets[std_ind] + 3600)
          ! 	      {
          ! 		dst_offset_string = Integer.toString(-offsets[dst_ind] / 3600);
          ! 		seconds = -offsets[dst_ind] % 3600;
          ! 		if (seconds != 0)
          ! 		  {
          ! 		    if (seconds < 0)
          ! 		      seconds *= -1;
          ! 		    if (seconds < 600)
          ! 		      dst_offset_string
          ! 			+= ":0" + Integer.toString(seconds / 60);
          ! 		    else
          ! 		      dst_offset_string
          ! 			+= ":" + Integer.toString(seconds / 60);
          ! 		    seconds = seconds % 60;
          ! 		    if (seconds >= 10)
          ! 		      dst_offset_string += ":" + Integer.toString(seconds);
          ! 		    else if (seconds > 0)
          ! 		      dst_offset_string += ":0" + Integer.toString(seconds);
          ! 		  }
          ! 	      }
          ! 	  }
            
          ! 	/*
          ! 	 * If no tzIf2 POSIX TZ string is available and the timezone
          ! 	 * uses DST, try to guess the last rule by trying to make
          ! 	 * sense from transitions at 5 years in the future and onwards.
          ! 	 * tzdata actually uses only 3 forms of rules:
          ! 	 * fixed date within a month, e.g. change on April, 5th
          ! 	 * 1st weekday on or after Nth: change on Sun>=15 in April
          ! 	 * last weekday in a month: change on lastSun in April
          ! 	 */
          ! 	String[] change_spec = { null, null };
          ! 	if (tzstr == null && dst_ind != -1 && timecnt > 10)
          ! 	  {
          ! 	    long nowPlus5y = System.currentTimeMillis() / 1000
          ! 			     + 5 * 365 * 86400;
          ! 	    int first;
            
          ! 	    for (first = timecnt - 1; first >= 0; first--)
          ! 	      if (times[first] < nowPlus5y
          ! 		  || (types[first] != std_ind && types[first] != dst_ind)
          ! 		  || types[first] != types[timecnt - 2 + ((first ^ timecnt) & 1)])
          ! 		break;
          ! 	    first++;
            
          ! 	    if (timecnt - first >= 10 && types[timecnt - 1] != types[timecnt - 2])
          ! 	      {
          ! 		GregorianCalendar cal
          ! 		  = new GregorianCalendar(new SimpleTimeZone(0, "GMT"));
            
          ! 		int[] values = new int[2 * 11];
          ! 		int i;
          ! 		for (i = timecnt - 1; i >= first; i--)
          ! 		  {
          ! 		    int base = (i % 2) * 11;
          ! 		    int offset = offsets[types[i > first ? i - 1 : i + 1]];
          ! 		    cal.setTimeInMillis((times[i] + offset) * 1000);
          ! 		    if (i >= timecnt - 2)
          ! 		      {
          ! 			values[base + 0] = cal.get(Calendar.YEAR);
          ! 			values[base + 1] = cal.get(Calendar.MONTH);
          ! 			values[base + 2] = cal.get(Calendar.DAY_OF_MONTH);
          ! 			values[base + 3]
          ! 			  = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
          ! 			values[base + 4] = cal.get(Calendar.DAY_OF_WEEK);
          ! 			values[base + 5] = cal.get(Calendar.HOUR_OF_DAY);
          ! 			values[base + 6] = cal.get(Calendar.MINUTE);
          ! 			values[base + 7] = cal.get(Calendar.SECOND);
          ! 			values[base + 8] = values[base + 2]; // Range start
          ! 			values[base + 9] = values[base + 2]; // Range end
          ! 			values[base + 10] = 0; // Determined type
          ! 		      }
          ! 		    else
          ! 		      {
          ! 			int year = cal.get(Calendar.YEAR);
          ! 			int month = cal.get(Calendar.MONTH);
          ! 			int day_of_month = cal.get(Calendar.DAY_OF_MONTH);
          ! 			int month_days
          ! 			  = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
          ! 			int day_of_week = cal.get(Calendar.DAY_OF_WEEK);
          ! 			int hour = cal.get(Calendar.HOUR_OF_DAY);
          ! 			int minute = cal.get(Calendar.MINUTE);
          ! 			int second = cal.get(Calendar.SECOND);
          ! 			if (year != values[base + 0] - 1
          ! 			    || month != values[base + 1]
          ! 			    || hour != values[base + 5]
          ! 			    || minute != values[base + 6]
          ! 			    || second != values[base + 7])
          ! 			  break;
          ! 			if (day_of_week == values[base + 4])
          ! 			  {
          ! 			    // Either a Sun>=8 or lastSun rule.
          ! 			    if (day_of_month < values[base + 8])
          ! 			      values[base + 8] = day_of_month;
          ! 			    if (day_of_month > values[base + 9])
          ! 			      values[base + 9] = day_of_month;
          ! 			    if (values[base + 10] < 0)
          ! 			      break;
          ! 			    if (values[base + 10] == 0)
          ! 			      {
          ! 				values[base + 10] = 1;
          ! 				// If day of month > 28, this is
          ! 				// certainly lastSun rule.
          ! 				if (values[base + 2] > 28)
          ! 				  values[base + 2] = 3;
          ! 				// If day of month isn't in the last
          ! 				// week, it can't be lastSun rule.
          ! 				else if (values[base + 2]
          ! 					 <= values[base + 3] - 7)
          ! 				  values[base + 3] = 2;
          ! 			      }
          ! 			    if (values[base + 10] == 1)
          ! 			      {
          ! 				// If day of month is > 28, this is
          ! 				// certainly lastSun rule.
          ! 				if (day_of_month > 28)
          ! 				  values[base + 10] = 3;
          ! 				// If day of month isn't in the last
          ! 				// week, it can't be lastSun rule.
          ! 				else if (day_of_month <= month_days - 7)
          ! 				  values[base + 10] = 2;
          ! 			      }
          ! 			    else if ((values[base + 10] == 2
          ! 				      && day_of_month > 28)
          ! 				     || (values[base + 10] == 3
          ! 					 && day_of_month <= month_days - 7))
          ! 			      break;
          ! 			  }
          ! 			else
          ! 			  {
          ! 			    // Must be fixed day in month rule.
          ! 			    if (day_of_month != values[base + 2]
          ! 				|| values[base + 10] > 0)
          ! 			      break;
          ! 			    values[base + 4] = day_of_week;
          ! 			    values[base + 10] = -1;
          ! 			  }
          ! 			values[base + 0] -= 1;
          ! 		      }
          ! 		  }
            
          ! 		if (i < first)
          ! 		  {
          ! 		    for (i = 0; i < 2; i++)
          ! 		      {
          ! 			int base = 11 * i;
          ! 			if (values[base + 10] == 0)
          ! 			  continue;
          ! 			if (values[base + 10] == -1)
          ! 			  {
          ! 			    int[] dayCount
          ! 			      = { 0, 31, 59, 90, 120, 151,
          ! 				  181, 212, 243, 273, 304, 334 };
          ! 			    int d = dayCount[values[base + 1]
          ! 					     - Calendar.JANUARY];
          ! 			    d += values[base + 2];
          ! 			    change_spec[i] = ",J" + Integer.toString(d);
          ! 			  }
          ! 			else if (values[base + 10] == 2)
          ! 			  {
          ! 			    // If we haven't seen all days of the week,
          ! 			    // we can't be sure what the rule really is.
          ! 			    if (values[base + 8] + 6 != values[base + 9])
          ! 			      continue;
            
          ! 			    int d;
          ! 			    d = values[base + 1] - Calendar.JANUARY + 1;
          ! 			    // E.g. Sun >= 5 is not representable in POSIX
          ! 			    // TZ env string, use ",Am.n.d" extension
          ! 			    // where m is month 1 .. 12, n is the date on
          ! 			    // or after which it happens and d is day
          ! 			    // of the week, 0 .. 6.  So Sun >= 5 in April
          ! 			    // is ",A4.5.0".
          ! 			    if ((values[base + 8] % 7) == 1)
          ! 			      {
          ! 				change_spec[i] = ",M" + Integer.toString(d);
          ! 				d = (values[base + 8] + 6) / 7;
          ! 			      }
          ! 			    else
          ! 			      {
          ! 				change_spec[i] = ",A" + Integer.toString(d);
          ! 				d = values[base + 8];
          ! 			      }
          ! 			    change_spec[i] += "." + Integer.toString(d);
          ! 			    d = values[base + 4] - Calendar.SUNDAY;
          ! 			    change_spec[i] += "." + Integer.toString(d);
          ! 			  }
          ! 			else
          ! 			  {
          ! 			    // If we don't know whether this is lastSun or
          ! 			    // Sun >= 22 rule.  That can be either because
          ! 			    // there was insufficient number of
          ! 			    // transitions, or February, where it is quite
          ! 			    // probable we haven't seen any 29th dates.
          ! 			    // For February, assume lastSun rule, otherwise
          ! 			    // punt.
          ! 			    if (values[base + 10] == 1
          ! 				&& values[base + 1] != Calendar.FEBRUARY)
          ! 			      continue;
            
          ! 			    int d;
          ! 			    d = values[base + 1] - Calendar.JANUARY + 1;
          ! 			    change_spec[i] = ",M" + Integer.toString(d);
          ! 			    d = values[base + 4] - Calendar.SUNDAY;
          ! 			    change_spec[i] += ".5." + Integer.toString(d);
          ! 			  }
            
          ! 			// Don't add time specification if time is
          ! 			// 02:00:00.
          ! 			if (values[base + 5] != 2
          ! 			    || values[base + 6] != 0
          ! 			    || values[base + 7] != 0)
          ! 			  {
          ! 			    int d = values[base + 5];
          ! 			    change_spec[i] += "/" + Integer.toString(d);
          ! 			    if (values[base + 6] != 0 || values[base + 7] != 0)
          ! 			      {
          ! 				d = values[base + 6];
          ! 				if (d < 10)
          ! 				  change_spec[i]
          ! 				    += ":0" + Integer.toString(d);
          ! 				else
          ! 				  change_spec[i] += ":" + Integer.toString(d);
          ! 				d = values[base + 7];
          ! 				if (d >= 10)
          ! 				   change_spec[i]
          ! 				     += ":" + Integer.toString(d);
          ! 				else if (d > 0)
          ! 				  change_spec[i]
          ! 				    += ":0" + Integer.toString(d);
          ! 			      }
          ! 			  }
          ! 		      }
          ! 		    if (types[(timecnt - 1) & -2] == std_ind)
          ! 		      {
          ! 			String tmp = change_spec[0];
          ! 			change_spec[0] = change_spec[1];
          ! 			change_spec[1] = tmp;
          ! 		      }
          ! 		  }
          ! 	      }
          ! 	  }
            
          ! 	if (tzstr == null)
          ! 	  {
          ! 	    tzstr = std_zonename + std_offset_string;
          ! 	    if (change_spec[0] != null && change_spec[1] != null)
          ! 	      tzstr += dst_zonename + dst_offset_string
          ! 		       + change_spec[0] + change_spec[1];
          ! 	  }
            
          ! 	if (timecnt == 0)
          ! 	  return new SimpleTimeZone(offsets[std_ind] * 1000,
          ! 				    id != null ? id : tzstr);
            
          ! 	SimpleTimeZone endRule = createLastRule(tzstr);
          ! 	if (endRule == null)
          ! 	  return null;
            
          ! 	/* Finally adjust the times array into the form the constructor
          ! 	 * expects.  times[0] is special, the offset and DST flag there
          ! 	 * are for all times before that transition.  Use the first non-DST
          ! 	 * type.  For all other transitions, the data file has the type
          ! 	 * () for the time interval starting
          ! 	 */
          ! 	for (int i = 0; i < typecnt; i++)
          ! 	  if ((typeflags[i] & (1 << 8)) == 0)
          ! 	    {
          ! 	      times[0] = (times[0] << SECS_SHIFT) | (offsets[i] & OFFSET_MASK);
          ! 	      break;
          ! 	    }
            
          ! 	for (int i = 1; i < timecnt; i++)
          ! 	  times[i] = (times[i] << SECS_SHIFT)
          ! 		     | (offsets[types[i - 1]] & OFFSET_MASK)
          ! 		     | ((typeflags[types[i - 1]] & (1 << 8)) != 0 ? IS_DST : 0);
            
          ! 	return new ZoneInfo(offsets[std_ind] * 1000, id != null ? id : tzstr,
          ! 			    times, endRule);
                  }
                catch (IOException ioe)
                  {
          ! 	// Parse error, not a proper tzfile.
          ! 	return null;
                  }
                finally
                  {
          ! 	try
          ! 	  {
          ! 	    if (dis != null)
          ! 	      dis.close();
          ! 	  }
          ! 	catch(IOException ioe)
          ! 	  {
          ! 	    // Error while close, nothing we can do.
          ! 	  }
                  }
              }
            
          --- 389,858 ----
                DataInputStream dis = null;
                try
                  {
          !         FileInputStream fis = new FileInputStream(file);
          !         BufferedInputStream bis = new BufferedInputStream(fis);
          !         dis = new DataInputStream(bis);
            
          !         // Make sure we are reading a tzfile.
          !         byte[] tzif = new byte[5];
          !         dis.readFully(tzif);
          !         int tzif2 = 4;
          !         if (tzif[0] == 'T' && tzif[1] == 'Z'
          !             && tzif[2] == 'i' && tzif[3] == 'f')
          !           {
          !             if (tzif[4] >= '2')
          !               tzif2 = 8;
          !             // Reserved bytes
          !             skipFully(dis, 16 - 1);
          !           }
          !         else
          !           // Darwin has tzdata files that don't start with the TZif marker
          !           skipFully(dis, 16 - 5);
            
          !         int ttisgmtcnt = dis.readInt();
          !         int ttisstdcnt = dis.readInt();
          !         int leapcnt = dis.readInt();
          !         int timecnt = dis.readInt();
          !         int typecnt = dis.readInt();
          !         int charcnt = dis.readInt();
          !         if (tzif2 == 8)
          !           {
          !             skipFully(dis, timecnt * (4 + 1) + typecnt * (4 + 1 + 1) + charcnt
          !                            + leapcnt * (4 + 4) + ttisgmtcnt + ttisstdcnt);
            
          !             dis.readFully(tzif);
          !             if (tzif[0] != 'T' || tzif[1] != 'Z' || tzif[2] != 'i'
          !                 || tzif[3] != 'f' || tzif[4] < '2')
          !               return null;
            
          !             // Reserved bytes
          !             skipFully(dis, 16 - 1);
          !             ttisgmtcnt = dis.readInt();
          !             ttisstdcnt = dis.readInt();
          !             leapcnt = dis.readInt();
          !             timecnt = dis.readInt();
          !             typecnt = dis.readInt();
          !             charcnt = dis.readInt();
          !           }
            
          !         // Sanity checks
          !         if (typecnt <= 0 || timecnt < 0 || charcnt < 0
          !             || leapcnt < 0 || ttisgmtcnt < 0 || ttisstdcnt < 0
          !             || ttisgmtcnt > typecnt || ttisstdcnt > typecnt)
          !           return null;
            
          !         // Transition times
          !         long[] times = new long[timecnt];
          !         for (int i = 0; i < timecnt; i++)
          !           if (tzif2 == 8)
          !             times[i] = dis.readLong();
          !           else
          !             times[i] = (long) dis.readInt();
            
          !         // Transition types
          !         int[] types = new int[timecnt];
          !         for (int i = 0; i < timecnt; i++)
          !           {
          !             types[i] = dis.readByte();
          !             if (types[i] < 0)
          !               types[i] += 256;
          !             if (types[i] >= typecnt)
          !               return null;
          !           }
            
          !         // Types
          !         int[] offsets = new int[typecnt];
          !         int[] typeflags = new int[typecnt];
          !         for (int i = 0; i < typecnt; i++)
          !           {
          !             offsets[i] = dis.readInt();
          !             if (offsets[i] >= IS_DST / 2 || offsets[i] <= -IS_DST / 2)
          !               return null;
          !             int dst = dis.readByte();
          !             int abbrind = dis.readByte();
          !             if (abbrind < 0)
          !               abbrind += 256;
          !             if (abbrind >= charcnt)
          !               return null;
          !             typeflags[i] = (dst != 0 ? (1 << 8) : 0) + abbrind;
          !           }
            
          !         // Abbrev names
          !         byte[] names = new byte[charcnt];
          !         dis.readFully(names);
            
          !         // Leap transitions, for now ignore
          !         skipFully(dis, leapcnt * (tzif2 + 4) + ttisstdcnt + ttisgmtcnt);
            
          !         // tzIf2 format has optional POSIX TZ env string
          !         String tzstr = null;
          !         if (tzif2 == 8 && dis.readByte() == '\n')
          !           {
          !             tzstr = dis.readLine();
          !             if (tzstr.length() <= 0)
          !               tzstr = null;
          !           }
            
          !         // Get std/dst_offset and dst/non-dst time zone names.
          !         int std_ind = -1;
          !         int dst_ind = -1;
          !         if (timecnt == 0)
          !           std_ind = 0;
          !         else
          !           for (int i = timecnt - 1; i >= 0; i--)
          !             {
          !               if (std_ind == -1 && (typeflags[types[i]] & (1 << 8)) == 0)
          !                 std_ind = types[i];
          !               else if (dst_ind == -1 && (typeflags[types[i]] & (1 << 8)) != 0)
          !                 dst_ind = types[i];
          !               if (dst_ind != -1 && std_ind != -1)
          !                 break;
          !             }
            
          !         if (std_ind == -1)
          !           return null;
            
          !         int j = typeflags[std_ind] & 255;
          !         while (j < charcnt && names[j] != 0)
          !           j++;
          !         String std_zonename = new String(names, typeflags[std_ind] & 255,
          !                                          j - (typeflags[std_ind] & 255),
          !                                          "ASCII");
            
          !         String dst_zonename = "";
          !         if (dst_ind != -1)
          !           {
          !             j = typeflags[dst_ind] & 255;
          !             while (j < charcnt && names[j] != 0)
          !               j++;
          !             dst_zonename = new String(names, typeflags[dst_ind] & 255,
          !                                       j - (typeflags[dst_ind] & 255), "ASCII");
          !           }
            
          !         // Only use gmt offset when necessary.
          !         // Also special case GMT+/- timezones.
          !         String std_offset_string = "";
          !         String dst_offset_string = "";
          !         if (tzstr == null
          !             && (dst_ind != -1
          !                 || (offsets[std_ind] != 0
          !                     && !std_zonename.startsWith("GMT+")
          !                     && !std_zonename.startsWith("GMT-"))))
          !           {
          !             std_offset_string = Integer.toString(-offsets[std_ind] / 3600);
          !             int seconds = -offsets[std_ind] % 3600;
          !             if (seconds != 0)
          !               {
          !                 if (seconds < 0)
          !                   seconds *= -1;
          !                 if (seconds < 600)
          !                   std_offset_string += ":0" + Integer.toString(seconds / 60);
          !                 else
          !                   std_offset_string += ":" + Integer.toString(seconds / 60);
          !                 seconds = seconds % 60;
          !                 if (seconds >= 10)
          !                   std_offset_string += ":" + Integer.toString(seconds);
          !                 else if (seconds > 0)
          !                   std_offset_string += ":0" + Integer.toString(seconds);
          !               }
            
          !             if (dst_ind != -1 && offsets[dst_ind] != offsets[std_ind] + 3600)
          !               {
          !                 dst_offset_string = Integer.toString(-offsets[dst_ind] / 3600);
          !                 seconds = -offsets[dst_ind] % 3600;
          !                 if (seconds != 0)
          !                   {
          !                     if (seconds < 0)
          !                       seconds *= -1;
          !                     if (seconds < 600)
          !                       dst_offset_string
          !                         += ":0" + Integer.toString(seconds / 60);
          !                     else
          !                       dst_offset_string
          !                         += ":" + Integer.toString(seconds / 60);
          !                     seconds = seconds % 60;
          !                     if (seconds >= 10)
          !                       dst_offset_string += ":" + Integer.toString(seconds);
          !                     else if (seconds > 0)
          !                       dst_offset_string += ":0" + Integer.toString(seconds);
          !                   }
          !               }
          !           }
            
          !         /*
          !          * If no tzIf2 POSIX TZ string is available and the timezone
          !          * uses DST, try to guess the last rule by trying to make
          !          * sense from transitions at 5 years in the future and onwards.
          !          * tzdata actually uses only 3 forms of rules:
          !          * fixed date within a month, e.g. change on April, 5th
          !          * 1st weekday on or after Nth: change on Sun>=15 in April
          !          * last weekday in a month: change on lastSun in April
          !          */
          !         String[] change_spec = { null, null };
          !         if (tzstr == null && dst_ind != -1 && timecnt > 10)
          !           {
          !             long nowPlus5y = System.currentTimeMillis() / 1000
          !                              + 5 * 365 * 86400;
          !             int first;
            
          !             for (first = timecnt - 1; first >= 0; first--)
          !               if (times[first] < nowPlus5y
          !                   || (types[first] != std_ind && types[first] != dst_ind)
          !                   || types[first] != types[timecnt - 2 + ((first ^ timecnt) & 1)])
          !                 break;
          !             first++;
            
          !             if (timecnt - first >= 10 && types[timecnt - 1] != types[timecnt - 2])
          !               {
          !                 GregorianCalendar cal
          !                   = new GregorianCalendar(new SimpleTimeZone(0, "GMT"));
            
          !                 int[] values = new int[2 * 11];
          !                 int i;
          !                 for (i = timecnt - 1; i >= first; i--)
          !                   {
          !                     int base = (i % 2) * 11;
          !                     int offset = offsets[types[i > first ? i - 1 : i + 1]];
          !                     cal.setTimeInMillis((times[i] + offset) * 1000);
          !                     if (i >= timecnt - 2)
          !                       {
          !                         values[base + 0] = cal.get(Calendar.YEAR);
          !                         values[base + 1] = cal.get(Calendar.MONTH);
          !                         values[base + 2] = cal.get(Calendar.DAY_OF_MONTH);
          !                         values[base + 3]
          !                           = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
          !                         values[base + 4] = cal.get(Calendar.DAY_OF_WEEK);
          !                         values[base + 5] = cal.get(Calendar.HOUR_OF_DAY);
          !                         values[base + 6] = cal.get(Calendar.MINUTE);
          !                         values[base + 7] = cal.get(Calendar.SECOND);
          !                         values[base + 8] = values[base + 2]; // Range start
          !                         values[base + 9] = values[base + 2]; // Range end
          !                         values[base + 10] = 0; // Determined type
          !                       }
          !                     else
          !                       {
          !                         int year = cal.get(Calendar.YEAR);
          !                         int month = cal.get(Calendar.MONTH);
          !                         int day_of_month = cal.get(Calendar.DAY_OF_MONTH);
          !                         int month_days
          !                           = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
          !                         int day_of_week = cal.get(Calendar.DAY_OF_WEEK);
          !                         int hour = cal.get(Calendar.HOUR_OF_DAY);
          !                         int minute = cal.get(Calendar.MINUTE);
          !                         int second = cal.get(Calendar.SECOND);
          !                         if (year != values[base + 0] - 1
          !                             || month != values[base + 1]
          !                             || hour != values[base + 5]
          !                             || minute != values[base + 6]
          !                             || second != values[base + 7])
          !                           break;
          !                         if (day_of_week == values[base + 4])
          !                           {
          !                             // Either a Sun>=8 or lastSun rule.
          !                             if (day_of_month < values[base + 8])
          !                               values[base + 8] = day_of_month;
          !                             if (day_of_month > values[base + 9])
          !                               values[base + 9] = day_of_month;
          !                             if (values[base + 10] < 0)
          !                               break;
          !                             if (values[base + 10] == 0)
          !                               {
          !                                 values[base + 10] = 1;
          !                                 // If day of month > 28, this is
          !                                 // certainly lastSun rule.
          !                                 if (values[base + 2] > 28)
          !                                   values[base + 2] = 3;
          !                                 // If day of month isn't in the last
          !                                 // week, it can't be lastSun rule.
          !                                 else if (values[base + 2]
          !                                          <= values[base + 3] - 7)
          !                                   values[base + 3] = 2;
          !                               }
          !                             if (values[base + 10] == 1)
          !                               {
          !                                 // If day of month is > 28, this is
          !                                 // certainly lastSun rule.
          !                                 if (day_of_month > 28)
          !                                   values[base + 10] = 3;
          !                                 // If day of month isn't in the last
          !                                 // week, it can't be lastSun rule.
          !                                 else if (day_of_month <= month_days - 7)
          !                                   values[base + 10] = 2;
          !                               }
          !                             else if ((values[base + 10] == 2
          !                                       && day_of_month > 28)
          !                                      || (values[base + 10] == 3
          !                                          && day_of_month <= month_days - 7))
          !                               break;
          !                           }
          !                         else
          !                           {
          !                             // Must be fixed day in month rule.
          !                             if (day_of_month != values[base + 2]
          !                                 || values[base + 10] > 0)
          !                               break;
          !                             values[base + 4] = day_of_week;
          !                             values[base + 10] = -1;
          !                           }
          !                         values[base + 0] -= 1;
          !                       }
          !                   }
            
          !                 if (i < first)
          !                   {
          !                     for (i = 0; i < 2; i++)
          !                       {
          !                         int base = 11 * i;
          !                         if (values[base + 10] == 0)
          !                           continue;
          !                         if (values[base + 10] == -1)
          !                           {
          !                             int[] dayCount
          !                               = { 0, 31, 59, 90, 120, 151,
          !                                   181, 212, 243, 273, 304, 334 };
          !                             int d = dayCount[values[base + 1]
          !                                              - Calendar.JANUARY];
          !                             d += values[base + 2];
          !                             change_spec[i] = ",J" + Integer.toString(d);
          !                           }
          !                         else if (values[base + 10] == 2)
          !                           {
          !                             // If we haven't seen all days of the week,
          !                             // we can't be sure what the rule really is.
          !                             if (values[base + 8] + 6 != values[base + 9])
          !                               continue;
            
          !                             int d;
          !                             d = values[base + 1] - Calendar.JANUARY + 1;
          !                             // E.g. Sun >= 5 is not representable in POSIX
          !                             // TZ env string, use ",Am.n.d" extension
          !                             // where m is month 1 .. 12, n is the date on
          !                             // or after which it happens and d is day
          !                             // of the week, 0 .. 6.  So Sun >= 5 in April
          !                             // is ",A4.5.0".
          !                             if ((values[base + 8] % 7) == 1)
          !                               {
          !                                 change_spec[i] = ",M" + Integer.toString(d);
          !                                 d = (values[base + 8] + 6) / 7;
          !                               }
          !                             else
          !                               {
          !                                 change_spec[i] = ",A" + Integer.toString(d);
          !                                 d = values[base + 8];
          !                               }
          !                             change_spec[i] += "." + Integer.toString(d);
          !                             d = values[base + 4] - Calendar.SUNDAY;
          !                             change_spec[i] += "." + Integer.toString(d);
          !                           }
          !                         else
          !                           {
          !                             // If we don't know whether this is lastSun or
          !                             // Sun >= 22 rule.  That can be either because
          !                             // there was insufficient number of
          !                             // transitions, or February, where it is quite
          !                             // probable we haven't seen any 29th dates.
          !                             // For February, assume lastSun rule, otherwise
          !                             // punt.
          !                             if (values[base + 10] == 1
          !                                 && values[base + 1] != Calendar.FEBRUARY)
          !                               continue;
            
          !                             int d;
          !                             d = values[base + 1] - Calendar.JANUARY + 1;
          !                             change_spec[i] = ",M" + Integer.toString(d);
          !                             d = values[base + 4] - Calendar.SUNDAY;
          !                             change_spec[i] += ".5." + Integer.toString(d);
          !                           }
            
          !                         // Don't add time specification if time is
          !                         // 02:00:00.
          !                         if (values[base + 5] != 2
          !                             || values[base + 6] != 0
          !                             || values[base + 7] != 0)
          !                           {
          !                             int d = values[base + 5];
          !                             change_spec[i] += "/" + Integer.toString(d);
          !                             if (values[base + 6] != 0 || values[base + 7] != 0)
          !                               {
          !                                 d = values[base + 6];
          !                                 if (d < 10)
          !                                   change_spec[i]
          !                                     += ":0" + Integer.toString(d);
          !                                 else
          !                                   change_spec[i] += ":" + Integer.toString(d);
          !                                 d = values[base + 7];
          !                                 if (d >= 10)
          !                                    change_spec[i]
          !                                      += ":" + Integer.toString(d);
          !                                 else if (d > 0)
          !                                   change_spec[i]
          !                                     += ":0" + Integer.toString(d);
          !                               }
          !                           }
          !                       }
          !                     if (types[(timecnt - 1) & -2] == std_ind)
          !                       {
          !                         String tmp = change_spec[0];
          !                         change_spec[0] = change_spec[1];
          !                         change_spec[1] = tmp;
          !                       }
          !                   }
          !               }
          !           }
            
          !         if (tzstr == null)
          !           {
          !             tzstr = std_zonename + std_offset_string;
          !             if (change_spec[0] != null && change_spec[1] != null)
          !               tzstr += dst_zonename + dst_offset_string
          !                        + change_spec[0] + change_spec[1];
          !           }
            
          !         if (timecnt == 0)
          !           return new SimpleTimeZone(offsets[std_ind] * 1000,
          !                                     id != null ? id : tzstr);
            
          !         SimpleTimeZone endRule = createLastRule(tzstr);
          !         if (endRule == null)
          !           return null;
            
          !         /* Finally adjust the times array into the form the constructor
          !          * expects.  times[0] is special, the offset and DST flag there
          !          * are for all times before that transition.  Use the first non-DST
          !          * type.  For all other transitions, the data file has the type
          !          * () for the time interval starting
          !          */
          !         for (int i = 0; i < typecnt; i++)
          !           if ((typeflags[i] & (1 << 8)) == 0)
          !             {
          !               times[0] = (times[0] << SECS_SHIFT) | (offsets[i] & OFFSET_MASK);
          !               break;
          !             }
            
          !         for (int i = 1; i < timecnt; i++)
          !           times[i] = (times[i] << SECS_SHIFT)
          !                      | (offsets[types[i - 1]] & OFFSET_MASK)
          !                      | ((typeflags[types[i - 1]] & (1 << 8)) != 0 ? IS_DST : 0);
            
          !         return new ZoneInfo(offsets[std_ind] * 1000, id != null ? id : tzstr,
          !                             times, endRule);
                  }
                catch (IOException ioe)
                  {
          !         // Parse error, not a proper tzfile.
          !         return null;
                  }
                finally
                  {
          !         try
          !           {
          !             if (dis != null)
          !               dis.close();
          !           }
          !         catch(IOException ioe)
          !           {
          !             // Error while close, nothing we can do.
          !           }
                  }
              }
            
          *************** public class ZoneInfo extends TimeZone
          *** 865,874 ****
              {
                while (l > 0)
                  {
          ! 	long k = is.skip(l);
          ! 	if (k <= 0)
          ! 	  throw new EOFException();
          ! 	l -= k;
                  }
              }
            
          --- 865,874 ----
              {
                while (l > 0)
                  {
          !         long k = is.skip(l);
          !         if (k <= 0)
          !           throw new EOFException();
          !         l -= k;
                  }
              }
            
          *************** public class ZoneInfo extends TimeZone
          *** 887,1032 ****
                int dstOffs;
                try
                  {
          ! 	int idLength = tzstr.length();
            
          ! 	int index = 0;
          ! 	int prevIndex;
          ! 	char c;
            
          ! 	// get std
          ! 	do
          ! 	  c = tzstr.charAt(index);
          ! 	while (c != '+' && c != '-' && c != ',' && c != ':'
          ! 	       && ! Character.isDigit(c) && c != '\0' && ++index < idLength);
            
          ! 	if (index >= idLength)
          ! 	  return new SimpleTimeZone(0, tzstr);
            
          ! 	stdName = tzstr.substring(0, index);
          ! 	prevIndex = index;
            
          ! 	// get the std offset
          ! 	do
          ! 	  c = tzstr.charAt(index++);
          ! 	while ((c == '-' || c == '+' || c == ':' || Character.isDigit(c))
          ! 	       && index < idLength);
          ! 	if (index < idLength)
          ! 	  index--;
            
          ! 	{ // convert the dst string to a millis number
          ! 	    String offset = tzstr.substring(prevIndex, index);
          ! 	    prevIndex = index;
            
          ! 	    if (offset.charAt(0) == '+' || offset.charAt(0) == '-')
          ! 	      stdOffs = parseTime(offset.substring(1));
          ! 	    else
          ! 	      stdOffs = parseTime(offset);
            
          ! 	    if (offset.charAt(0) == '-')
          ! 	      stdOffs = -stdOffs;
            
          ! 	    // TZ timezone offsets are positive when WEST of the meridian.
          ! 	    stdOffs = -stdOffs;
          ! 	}
            
          ! 	// Done yet? (Format: std offset)
          ! 	if (index >= idLength)
          ! 	  return new SimpleTimeZone(stdOffs, stdName);
            
          ! 	// get dst
          ! 	do
          ! 	  c = tzstr.charAt(index);
          ! 	while (c != '+' && c != '-' && c != ',' && c != ':'
          ! 	       && ! Character.isDigit(c) && c != '\0' && ++index < idLength);
            
          ! 	// Done yet? (Format: std offset dst)
          ! 	if (index >= idLength)
          ! 	  return new SimpleTimeZone(stdOffs, stdName);
            
          ! 	// get the dst offset
          ! 	prevIndex = index;
          ! 	do
          ! 	  c = tzstr.charAt(index++);
          ! 	while ((c == '-' || c == '+' || c == ':' || Character.isDigit(c))
          ! 	       && index < idLength);
          ! 	if (index < idLength)
          ! 	  index--;
            
          ! 	if (index == prevIndex && (c == ',' || c == ';'))
          ! 	  {
          ! 	    // Missing dst offset defaults to one hour ahead of standard
          ! 	    // time.
          ! 	    dstOffs = stdOffs + 60 * 60 * 1000;
          ! 	  }
          ! 	else
          ! 	  { // convert the dst string to a millis number
          ! 	    String offset = tzstr.substring(prevIndex, index);
          ! 	    prevIndex = index;
            
          ! 	    if (offset.charAt(0) == '+' || offset.charAt(0) == '-')
          ! 	      dstOffs = parseTime(offset.substring(1));
          ! 	    else
          ! 	      dstOffs = parseTime(offset);
            
          ! 	    if (offset.charAt(0) == '-')
          ! 	      dstOffs = -dstOffs;
            
          ! 	    // TZ timezone offsets are positive when WEST of the meridian.
          ! 	    dstOffs = -dstOffs;
          ! 	  }
            
          ! 	// Done yet? (Format: std offset dst offset)
          ! 	if (index >= idLength)
          ! 	  return new SimpleTimeZone(stdOffs, stdName);
            
          ! 	// get the DST rule
          ! 	if (tzstr.charAt(index) == ','
          ! 	    || tzstr.charAt(index) == ';')
          ! 	  {
          ! 	    index++;
          ! 	    int offs = index;
          ! 	    while (tzstr.charAt(index) != ','
          ! 		   && tzstr.charAt(index) != ';')
          ! 	      index++;
          ! 	    String startTime = tzstr.substring(offs, index);
          ! 	    index++;
          ! 	    String endTime = tzstr.substring(index);
            
          ! 	    index = startTime.indexOf('/');
          ! 	    int startMillis;
          ! 	    int endMillis;
          ! 	    String startDate;
          ! 	    String endDate;
          ! 	    if (index != -1)
          ! 	      {
          ! 		startDate = startTime.substring(0, index);
          ! 		startMillis = parseTime(startTime.substring(index + 1));
          ! 	      }
          ! 	    else
          ! 	      {
          ! 		startDate = startTime;
          ! 		// if time isn't given, default to 2:00:00 AM.
          ! 		startMillis = 2 * 60 * 60 * 1000;
          ! 	      }
          ! 	    index = endTime.indexOf('/');
          ! 	    if (index != -1)
          ! 	      {
          ! 		endDate = endTime.substring(0, index);
          ! 		endMillis = parseTime(endTime.substring(index + 1));
          ! 	      }
          ! 	    else
          ! 	      {
          ! 		endDate = endTime;
          ! 		// if time isn't given, default to 2:00:00 AM.
          ! 		endMillis = 2 * 60 * 60 * 1000;
          ! 	      }
            
          ! 	    int[] start = getDateParams(startDate);
          ! 	    int[] end = getDateParams(endDate);
          ! 	    return new SimpleTimeZone(stdOffs, tzstr, start[0], start[1],
          ! 				      start[2], startMillis, end[0], end[1],
          ! 				      end[2], endMillis, (dstOffs - stdOffs));
          ! 	  }
                  }
            
                catch (IndexOutOfBoundsException _)
          --- 887,1032 ----
                int dstOffs;
                try
                  {
          !         int idLength = tzstr.length();
            
          !         int index = 0;
          !         int prevIndex;
          !         char c;
            
          !         // get std
          !         do
          !           c = tzstr.charAt(index);
          !         while (c != '+' && c != '-' && c != ',' && c != ':'
          !                && ! Character.isDigit(c) && c != '\0' && ++index < idLength);
            
          !         if (index >= idLength)
          !           return new SimpleTimeZone(0, tzstr);
            
          !         stdName = tzstr.substring(0, index);
          !         prevIndex = index;
            
          !         // get the std offset
          !         do
          !           c = tzstr.charAt(index++);
          !         while ((c == '-' || c == '+' || c == ':' || Character.isDigit(c))
          !                && index < idLength);
          !         if (index < idLength)
          !           index--;
            
          !         { // convert the dst string to a millis number
          !             String offset = tzstr.substring(prevIndex, index);
          !             prevIndex = index;
            
          !             if (offset.charAt(0) == '+' || offset.charAt(0) == '-')
          !               stdOffs = parseTime(offset.substring(1));
          !             else
          !               stdOffs = parseTime(offset);
            
          !             if (offset.charAt(0) == '-')
          !               stdOffs = -stdOffs;
            
          !             // TZ timezone offsets are positive when WEST of the meridian.
          !             stdOffs = -stdOffs;
          !         }
            
          !         // Done yet? (Format: std offset)
          !         if (index >= idLength)
          !           return new SimpleTimeZone(stdOffs, stdName);
            
          !         // get dst
          !         do
          !           c = tzstr.charAt(index);
          !         while (c != '+' && c != '-' && c != ',' && c != ':'
          !                && ! Character.isDigit(c) && c != '\0' && ++index < idLength);
            
          !         // Done yet? (Format: std offset dst)
          !         if (index >= idLength)
          !           return new SimpleTimeZone(stdOffs, stdName);
            
          !         // get the dst offset
          !         prevIndex = index;
          !         do
          !           c = tzstr.charAt(index++);
          !         while ((c == '-' || c == '+' || c == ':' || Character.isDigit(c))
          !                && index < idLength);
          !         if (index < idLength)
          !           index--;
            
          !         if (index == prevIndex && (c == ',' || c == ';'))
          !           {
          !             // Missing dst offset defaults to one hour ahead of standard
          !             // time.
          !             dstOffs = stdOffs + 60 * 60 * 1000;
          !           }
          !         else
          !           { // convert the dst string to a millis number
          !             String offset = tzstr.substring(prevIndex, index);
          !             prevIndex = index;
            
          !             if (offset.charAt(0) == '+' || offset.charAt(0) == '-')
          !               dstOffs = parseTime(offset.substring(1));
          !             else
          !               dstOffs = parseTime(offset);
            
          !             if (offset.charAt(0) == '-')
          !               dstOffs = -dstOffs;
            
          !             // TZ timezone offsets are positive when WEST of the meridian.
          !             dstOffs = -dstOffs;
          !           }
            
          !         // Done yet? (Format: std offset dst offset)
          !         if (index >= idLength)
          !           return new SimpleTimeZone(stdOffs, stdName);
            
          !         // get the DST rule
          !         if (tzstr.charAt(index) == ','
          !             || tzstr.charAt(index) == ';')
          !           {
          !             index++;
          !             int offs = index;
          !             while (tzstr.charAt(index) != ','
          !                    && tzstr.charAt(index) != ';')
          !               index++;
          !             String startTime = tzstr.substring(offs, index);
          !             index++;
          !             String endTime = tzstr.substring(index);
            
          !             index = startTime.indexOf('/');
          !             int startMillis;
          !             int endMillis;
          !             String startDate;
          !             String endDate;
          !             if (index != -1)
          !               {
          !                 startDate = startTime.substring(0, index);
          !                 startMillis = parseTime(startTime.substring(index + 1));
          !               }
          !             else
          !               {
          !                 startDate = startTime;
          !                 // if time isn't given, default to 2:00:00 AM.
          !                 startMillis = 2 * 60 * 60 * 1000;
          !               }
          !             index = endTime.indexOf('/');
          !             if (index != -1)
          !               {
          !                 endDate = endTime.substring(0, index);
          !                 endMillis = parseTime(endTime.substring(index + 1));
          !               }
          !             else
          !               {
          !                 endDate = endTime;
          !                 // if time isn't given, default to 2:00:00 AM.
          !                 endMillis = 2 * 60 * 60 * 1000;
          !               }
            
          !             int[] start = getDateParams(startDate);
          !             int[] end = getDateParams(endDate);
          !             return new SimpleTimeZone(stdOffs, tzstr, start[0], start[1],
          !                                       start[2], startMillis, end[0], end[1],
          !                                       end[2], endMillis, (dstOffs - stdOffs));
          !           }
                  }
            
                catch (IndexOutOfBoundsException _)
          *************** public class ZoneInfo extends TimeZone
          *** 1057,1100 ****
            
                if (type > 0)
                  {
          ! 	int day;
            
          ! 	// Month, week of month, day of week
          ! 	// "Mm.w.d".  d is between 0 (Sunday) and 6.  Week w is
          ! 	// between 1 and 5; Week 1 is the first week in which day d
          ! 	// occurs and Week 5 specifies the last d day in the month.
          ! 	// Month m is between 1 and 12.
            
          ! 	// Month, day of month, day of week
          ! 	// ZoneInfo extension, not in POSIX
          ! 	// "Am.n.d".  d is between 0 (Sunday) and 6.  Day of month n is
          ! 	// between 1 and 25.  Month m is between 1 and 12.
            
          ! 	month = Integer.parseInt(date.substring(1, date.indexOf('.')));
          ! 	int week = Integer.parseInt(date.substring(date.indexOf('.') + 1,
          ! 						   date.lastIndexOf('.')));
          ! 	int dayOfWeek = Integer.parseInt(date.substring(date.lastIndexOf('.')
          ! 							+ 1));
          ! 	dayOfWeek++; // Java day of week is one-based, Sunday is first day.
            
          ! 	if (type == 2)
          ! 	  {
          ! 	    day = week;
          ! 	    dayOfWeek = -dayOfWeek;
          ! 	  }
          !  	else if (week == 5)
          !  	  day = -1; // last day of month is -1 in java, 5 in TZ
          !  	else
          ! 	  {
          ! 	    // First day of week starting on or after.  For example,
          ! 	    // to specify the second Sunday of April, set month to
          ! 	    // APRIL, day-of-month to 8, and day-of-week to -SUNDAY.
          ! 	    day = (week - 1) * 7 + 1;
          ! 	    dayOfWeek = -dayOfWeek;
          ! 	  }
            
          ! 	month--; // Java month is zero-based.
          ! 	return new int[] { month, day, dayOfWeek };
                  }
            
                // julian day, either zero-based 0<=n<=365 (incl feb 29)
          --- 1057,1100 ----
            
                if (type > 0)
                  {
          !         int day;
            
          !         // Month, week of month, day of week
          !         // "Mm.w.d".  d is between 0 (Sunday) and 6.  Week w is
          !         // between 1 and 5; Week 1 is the first week in which day d
          !         // occurs and Week 5 specifies the last d day in the month.
          !         // Month m is between 1 and 12.
            
          !         // Month, day of month, day of week
          !         // ZoneInfo extension, not in POSIX
          !         // "Am.n.d".  d is between 0 (Sunday) and 6.  Day of month n is
          !         // between 1 and 25.  Month m is between 1 and 12.
            
          !         month = Integer.parseInt(date.substring(1, date.indexOf('.')));
          !         int week = Integer.parseInt(date.substring(date.indexOf('.') + 1,
          !                                                    date.lastIndexOf('.')));
          !         int dayOfWeek = Integer.parseInt(date.substring(date.lastIndexOf('.')
          !                                                         + 1));
          !         dayOfWeek++; // Java day of week is one-based, Sunday is first day.
            
          !         if (type == 2)
          !           {
          !             day = week;
          !             dayOfWeek = -dayOfWeek;
          !           }
          !         else if (week == 5)
          !           day = -1; // last day of month is -1 in java, 5 in TZ
          !         else
          !           {
          !             // First day of week starting on or after.  For example,
          !             // to specify the second Sunday of April, set month to
          !             // APRIL, day-of-month to 8, and day-of-week to -SUNDAY.
          !             day = (week - 1) * 7 + 1;
          !             dayOfWeek = -dayOfWeek;
          !           }
            
          !         month--; // Java month is zero-based.
          !         return new int[] { month, day, dayOfWeek };
                  }
            
                // julian day, either zero-based 0<=n<=365 (incl feb 29)
          *************** public class ZoneInfo extends TimeZone
          *** 1103,1115 ****
            
                if (date.charAt(0) != 'J' || date.charAt(0) != 'j')
                  {
          ! 	julianDay = Integer.parseInt(date.substring(1));
          ! 	julianDay++; // make 1-based
          ! 	// Adjust day count to include feb 29.
          ! 	dayCount = new int[]
          ! 		   {
          ! 		     0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335
          ! 		   };
                  }
                else
                  // 1-based julian day
          --- 1103,1115 ----
            
                if (date.charAt(0) != 'J' || date.charAt(0) != 'j')
                  {
          !         julianDay = Integer.parseInt(date.substring(1));
          !         julianDay++; // make 1-based
          !         // Adjust day count to include feb 29.
          !         dayCount = new int[]
          !                    {
          !                      0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335
          !                    };
                  }
                else
                  // 1-based julian day
          *************** public class ZoneInfo extends TimeZone
          *** 1118,1126 ****
                int i = 11;
                while (i > 0)
                  if (dayCount[i] < julianDay)
          ! 	break;
                  else
          ! 	i--;
                julianDay -= dayCount[i];
                month = i;
                return new int[] { month, julianDay, 0 };
          --- 1118,1126 ----
                int i = 11;
                while (i > 0)
                  if (dayCount[i] < julianDay)
          !         break;
                  else
          !         i--;
                julianDay -= dayCount[i];
                month = i;
                return new int[] { month, julianDay, 0 };
          *************** public class ZoneInfo extends TimeZone
          *** 1137,1145 ****
            
                while (i < time.length())
                  if (time.charAt(i) == ':')
          ! 	break;
                  else
          ! 	i++;
                millis = 60 * 60 * 1000 * Integer.parseInt(time.substring(0, i));
                if (i >= time.length())
                  return millis;
          --- 1137,1145 ----
            
                while (i < time.length())
                  if (time.charAt(i) == ':')
          !         break;
                  else
          !         i++;
                millis = 60 * 60 * 1000 * Integer.parseInt(time.substring(0, i));
                if (i >= time.length())
                  return millis;
          *************** public class ZoneInfo extends TimeZone
          *** 1147,1155 ****
                int iprev = ++i;
                while (i < time.length())
                  if (time.charAt(i) == ':')
          ! 	break;
                  else
          ! 	i++;
                millis += 60 * 1000 * Integer.parseInt(time.substring(iprev, i));
                if (i >= time.length())
                  return millis;
          --- 1147,1155 ----
                int iprev = ++i;
                while (i < time.length())
                  if (time.charAt(i) == ':')
          !         break;
                  else
          !         i++;
                millis += 60 * 1000 * Integer.parseInt(time.substring(iprev, i));
                if (i >= time.length())
                  return millis;
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/jar/JarUtils.java gcc-4.6.0/libjava/classpath/gnu/java/util/jar/JarUtils.java
          *** gcc-4.5.2/libjava/classpath/gnu/java/util/jar/JarUtils.java	Fri Mar 30 04:09:35 2007
          --- gcc-4.6.0/libjava/classpath/gnu/java/util/jar/JarUtils.java	Tue Jan 11 19:46:05 2011
          *************** public abstract class JarUtils
          *** 73,79 ****
            
              /**
               * The original string representation of the manifest version attribute name.
          !    */ 
              public static final String MANIFEST_VERSION = "Manifest-Version";
            
              /**
          --- 73,79 ----
            
              /**
               * The original string representation of the manifest version attribute name.
          !    */
              public static final String MANIFEST_VERSION = "Manifest-Version";
            
              /**
          *************** public abstract class JarUtils
          *** 115,121 ****
                  {
                    String version = expectHeader(version_header, br);
                    attr.putValue(SIGNATURE_VERSION, version);
          ! 	// This may cause problems during VM bootstrap.
                    // if (! DEFAULT_SF_VERSION.equals(version))
                    //  log.warning("Unexpected version number: " + version
                    //              + ". Continue (but may fail later)");
          --- 115,121 ----
                  {
                    String version = expectHeader(version_header, br);
                    attr.putValue(SIGNATURE_VERSION, version);
          !         // This may cause problems during VM bootstrap.
                    // if (! DEFAULT_SF_VERSION.equals(version))
                    //  log.warning("Unexpected version number: " + version
                    //              + ". Continue (but may fail later)");
          *************** public abstract class JarUtils
          *** 382,401 ****
               * The basic method for writing Mainfest attributes. This
               * implementation respects the rule stated in the Jar Specification concerning
               * the maximum allowed line length; i.e.
          !    * 
               * 
               * No line may be longer than 72 bytes (not characters), in its UTF8-encoded
               * form. If a value would make the initial line longer than this, it should
               * be continued on extra lines (each starting with a single SPACE).
               * 
          ! * * and ! * *
               * Because header names cannot be continued, the maximum length of a header
               * name is 70 bytes (there must be a colon and a SPACE after the name).
               * 
          ! * * @param name the name of the attribute. * @param value the value of the attribute. * @param out the output stream to write the attribute's name/value pair to. --- 382,401 ---- * The basic method for writing Mainfest attributes. This * implementation respects the rule stated in the Jar Specification concerning * the maximum allowed line length; i.e. ! * *
               * No line may be longer than 72 bytes (not characters), in its UTF8-encoded
               * form. If a value would make the initial line longer than this, it should
               * be continued on extra lines (each starting with a single SPACE).
               * 
          ! * * and ! * *
               * Because header names cannot be continued, the maximum length of a header
               * name is 70 bytes (there must be a colon and a SPACE after the name).
               * 
          ! * * @param name the name of the attribute. * @param value the value of the attribute. * @param out the output stream to write the attribute's name/value pair to. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/FileBasedFactory.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/FileBasedFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/FileBasedFactory.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/FileBasedFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/FileBasedPreferences.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/FileBasedPreferences.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/FileBasedPreferences.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/FileBasedPreferences.java Tue Jan 11 19:46:05 2011 *************** import java.util.prefs.BackingStoreExcep *** 57,63 **** * beneath the user's home directory. The preferences for the node are * stored in a single properties file in that directory. Sub-nodes are * stored in subdirectories. This implementation uses file locking to ! * mediate access to the properties files. */ public class FileBasedPreferences extends AbstractPreferences --- 57,63 ---- * beneath the user's home directory. The preferences for the node are * stored in a single properties file in that directory. Sub-nodes are * stored in subdirectories. This implementation uses file locking to ! * mediate access to the properties files. */ public class FileBasedPreferences extends AbstractPreferences *************** public class FileBasedPreferences *** 217,223 **** { // Write the underlying file. directory.mkdirs(); ! FileOutputStream fos = null; FileLock lock = null; try --- 217,223 ---- { // Write the underlying file. directory.mkdirs(); ! FileOutputStream fos = null; FileLock lock = null; try diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/GConfBasedFactory.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/GConfBasedFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/GConfBasedFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/GConfBasedFactory.java Tue Jan 11 19:46:05 2011 *************** import java.util.prefs.PreferencesFactor *** 43,49 **** /** * Factory object that generates a Preferences nodes that are read from a GConf * daemon. ! * * @author Mario Torre */ public class GConfBasedFactory implements PreferencesFactory --- 43,49 ---- /** * Factory object that generates a Preferences nodes that are read from a GConf * daemon. ! * * @author Mario Torre */ public class GConfBasedFactory implements PreferencesFactory *************** public class GConfBasedFactory implement *** 58,64 **** /** * Returns the system root preference node. ! * * @see java.util.prefs.PreferencesFactory#systemRoot() */ public Preferences systemRoot() --- 58,64 ---- /** * Returns the system root preference node. ! * * @see java.util.prefs.PreferencesFactory#systemRoot() */ public Preferences systemRoot() *************** public class GConfBasedFactory implement *** 68,74 **** /** * Returns the user root preference node corresponding to the calling user. ! * * @see java.util.prefs.PreferencesFactory#userRoot() */ public Preferences userRoot() --- 68,74 ---- /** * Returns the user root preference node corresponding to the calling user. ! * * @see java.util.prefs.PreferencesFactory#userRoot() */ public Preferences userRoot() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java Tue Jan 11 19:46:05 2011 *************** import java.util.prefs.BackingStoreExcep *** 54,75 **** *
          * User Root:
          *
          ! * *
             * gnu.java.util.prefs.gconf.user_root
             * 
          ! * *
          *
          * and System Root:
          *
          ! * *
             * gnu.java.util.prefs.gconf.system_root
             * 
          ! * *
          ! * * @author Mario Torre */ public class GConfBasedPreferences --- 54,75 ---- *
          * User Root:
          *
          ! * *
             * gnu.java.util.prefs.gconf.user_root
             * 
          ! * *
          *
          * and System Root:
          *
          ! * *
             * gnu.java.util.prefs.gconf.system_root
             * 
          ! * *
          ! * * @author Mario Torre */ public class GConfBasedPreferences *************** public class GConfBasedPreferences *** 115,121 **** * Creates a new preference node given a parent node and a name, which has to * be relative to its parent. When isUser is true it will be user * node otherwise it will be a system node. ! * * @param parent The parent node of this newly created node. * @param name A name relative to the parent node. * @param isUser Set to true initializes this node to be --- 115,121 ---- * Creates a new preference node given a parent node and a name, which has to * be relative to its parent. When isUser is true it will be user * node otherwise it will be a system node. ! * * @param parent The parent node of this newly created node. * @param name A name relative to the parent node. * @param isUser Set to true initializes this node to be *************** public class GConfBasedPreferences *** 142,148 **** absolutePath = absolutePath.substring(0, index + 1); absolutePath = absolutePath + GConfNativePeer.escapeString(name); } ! this.node = this.getRealRoot(isUser) + absolutePath; boolean nodeExist = backend.nodeExist(this.node); --- 142,148 ---- absolutePath = absolutePath.substring(0, index + 1); absolutePath = absolutePath + GConfNativePeer.escapeString(name); } ! this.node = this.getRealRoot(isUser) + absolutePath; boolean nodeExist = backend.nodeExist(this.node); *************** public class GConfBasedPreferences *** 153,159 **** /** * Returns a child node with the given name. * If the child node does not exists, it will be created. ! * * @param name The name of the requested node. * @return A new reference to the node, creating the node if it is necessary. */ --- 153,159 ---- /** * Returns a child node with the given name. * If the child node does not exists, it will be created. ! * * @param name The name of the requested node. * @return A new reference to the node, creating the node if it is necessary. */ *************** public class GConfBasedPreferences *** 162,171 **** // we don't check anything here, if the node is a new node this will be // detected in the constructor, so we simply return a new reference to // the requested node. ! GConfBasedPreferences preferenceNode = new GConfBasedPreferences(this, name, this.isUser); ! return preferenceNode; } --- 162,171 ---- // we don't check anything here, if the node is a new node this will be // detected in the constructor, so we simply return a new reference to // the requested node. ! GConfBasedPreferences preferenceNode = new GConfBasedPreferences(this, name, this.isUser); ! return preferenceNode; } *************** public class GConfBasedPreferences *** 173,179 **** * Returns an array of names of the children of this preference node. * If the current node does not have children, the returned array will be * of size 0 (that is, not null). ! * * @return A String array of names of children of the current * node. * @throws BackingStoreException if this operation cannot be completed. --- 173,179 ---- * Returns an array of names of the children of this preference node. * If the current node does not have children, the returned array will be * of size 0 (that is, not null). ! * * @return A String array of names of children of the current * node. * @throws BackingStoreException if this operation cannot be completed. *************** public class GConfBasedPreferences *** 192,198 **** * GConf handles this for us asynchronously. More over, both sync and flush * have the same meaning in this class, so calling sync has exactly the same * effect. ! * * @see #sync * @throws BackingStoreException if this operation cannot be completed. */ --- 192,198 ---- * GConf handles this for us asynchronously. More over, both sync and flush * have the same meaning in this class, so calling sync has exactly the same * effect. ! * * @see #sync * @throws BackingStoreException if this operation cannot be completed. */ *************** public class GConfBasedPreferences *** 203,209 **** /** * Request a flush. ! * * @see #flush * @throws BackingStoreException if this operation cannot be completed. */ --- 203,209 ---- /** * Request a flush. ! * * @see #flush * @throws BackingStoreException if this operation cannot be completed. */ *************** public class GConfBasedPreferences *** 216,222 **** * Returns all of the key in this preference node. * If the current node does not have preferences, the returned array will be * of size zero. ! * * @return A String array of keys stored under the current * node. * @throws BackingStoreException if this operation cannot be completed. --- 216,222 ---- * Returns all of the key in this preference node. * If the current node does not have preferences, the returned array will be * of size zero. ! * * @return A String array of keys stored under the current * node. * @throws BackingStoreException if this operation cannot be completed. *************** public class GConfBasedPreferences *** 233,239 **** /** * Does a recursive postorder traversal of the preference tree, starting from * the given directory invalidating every preference found in the node. ! * * @param directory The name of the starting directory (node) */ private void postorderRemove(String directory) --- 233,239 ---- /** * Does a recursive postorder traversal of the preference tree, starting from * the given directory invalidating every preference found in the node. ! * * @param directory The name of the starting directory (node) */ private void postorderRemove(String directory) *************** public class GConfBasedPreferences *** 271,277 **** /** * Stores the given key-value pair into this preference node. ! * * @param key The key of this preference. * @param value The value of this preference. */ --- 271,277 ---- /** * Stores the given key-value pair into this preference node. ! * * @param key The key of this preference. * @param value The value of this preference. */ *************** public class GConfBasedPreferences *** 293,299 **** /** * Removes the given key from this preference node. * If the key does not exist, no operation is performed. ! * * @param key The key to remove. */ protected void removeSpi(String key) --- 293,299 ---- /** * Removes the given key from this preference node. * If the key does not exist, no operation is performed. ! * * @param key The key to remove. */ protected void removeSpi(String key) *************** public class GConfBasedPreferences *** 305,311 **** * Suggest a sync to the backend. Actually, this is only a suggestion as GConf * handles this for us asynchronously. More over, both sync and flush have the * same meaning in this class, so calling flush has exactly the same effect. ! * * @see #flush * @throws BackingStoreException if this operation cannot be completed due to * a failure in the backing store, or inability to communicate with --- 305,311 ---- * Suggest a sync to the backend. Actually, this is only a suggestion as GConf * handles this for us asynchronously. More over, both sync and flush have the * same meaning in this class, so calling flush has exactly the same effect. ! * * @see #flush * @throws BackingStoreException if this operation cannot be completed due to * a failure in the backing store, or inability to communicate with *************** public class GConfBasedPreferences *** 318,324 **** /** * Request a sync. ! * * @see #sync * @throws BackingStoreException if this operation cannot be completed due to * a failure in the backing store, or inability to communicate with --- 318,324 ---- /** * Request a sync. ! * * @see #sync * @throws BackingStoreException if this operation cannot be completed due to * a failure in the backing store, or inability to communicate with *************** public class GConfBasedPreferences *** 333,339 **** * Returns the value of the given key. * If the keys does not have a value, or there is an error in the backing * store, null is returned instead. ! * * @param key The key to retrieve. * @return The value associated with the given key. */ --- 333,339 ---- * Returns the value of the given key. * If the keys does not have a value, or there is an error in the backing * store, null is returned instead. ! * * @param key The key to retrieve. * @return The value associated with the given key. */ *************** public class GConfBasedPreferences *** 345,351 **** /** * Returns true if this preference node is a user node, * false if is a system preference node. ! * * @return true if this preference node is a user node, * false if is a system preference node. */ --- 345,351 ---- /** * Returns true if this preference node is a user node, * false if is a system preference node. ! * * @return true if this preference node is a user node, * false if is a system preference node. */ *************** public class GConfBasedPreferences *** 360,377 **** /** * Builds a GConf key string suitable for operations on the backend. ! * * @param key The key to convert into a valid GConf key. * @return A valid Gconf key. */ private String getGConfKey(String key) { String nodeName = ""; ! // strip key // please, note that all names are unescaped into the native peer key = GConfNativePeer.escapeString(key); ! if (this.node.endsWith("/")) { nodeName = this.node + key; --- 360,377 ---- /** * Builds a GConf key string suitable for operations on the backend. ! * * @param key The key to convert into a valid GConf key. * @return A valid Gconf key. */ private String getGConfKey(String key) { String nodeName = ""; ! // strip key // please, note that all names are unescaped into the native peer key = GConfNativePeer.escapeString(key); ! if (this.node.endsWith("/")) { nodeName = this.node + key; *************** public class GConfBasedPreferences *** 380,392 **** { nodeName = this.node + "/" + key; } ! return nodeName; } /** * Builds the root node to use for this preference. ! * * @param isUser Defines if this node is a user (true) or system * (false) node. * @return The real root of this preference tree. --- 380,392 ---- { nodeName = this.node + "/" + key; } ! return nodeName; } /** * Builds the root node to use for this preference. ! * * @param isUser Defines if this node is a user (true) or system * (false) node. * @return The real root of this preference tree. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/MemoryBasedFactory.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/MemoryBasedFactory.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/MemoryBasedFactory.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/MemoryBasedFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/MemoryBasedPreferences.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/MemoryBasedPreferences.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/MemoryBasedPreferences.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/MemoryBasedPreferences.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/NodeReader.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/NodeReader.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/NodeReader.java Fri Aug 18 17:27:29 2006 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/NodeReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class NodeReader { *** 128,134 **** readNodes(subnode); skipTill(""); } ! } private void readMap(Preferences node) --- 128,134 ---- readNodes(subnode); skipTill(""); } ! } private void readMap(Preferences node) *************** public class NodeReader { *** 169,175 **** while(true) { if (line == null) throw new InvalidPreferencesFormatException(s + " not found"); ! int index = line.indexOf(s); if (index == -1) { line = br.readLine(); --- 169,175 ---- while(true) { if (line == null) throw new InvalidPreferencesFormatException(s + " not found"); ! int index = line.indexOf(s); if (index == -1) { line = br.readLine(); *************** public class NodeReader { *** 199,205 **** while(true) { if (line == null) throw new InvalidPreferencesFormatException("unexpected EOF"); ! int start = line.indexOf("<"); if (start == -1) { line = br.readLine(); --- 199,205 ---- while(true) { if (line == null) throw new InvalidPreferencesFormatException("unexpected EOF"); ! int start = line.indexOf("<"); if (start == -1) { line = br.readLine(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/NodeWriter.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/NodeWriter.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/NodeWriter.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/NodeWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class NodeWriter { *** 271,277 **** } } ! private void writeMap(Preferences node, int indent) throws BackingStoreException, IOException { // construct String used for indentation --- 271,277 ---- } } ! private void writeMap(Preferences node, int indent) throws BackingStoreException, IOException { // construct String used for indentation diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java Tue Jan 11 19:46:05 2011 *************** import java.util.prefs.BackingStoreExcep *** 43,49 **** /** * Native peer for GConf based preference backend. ! * * @author Mario Torre */ public final class GConfNativePeer --- 43,49 ---- /** * Native peer for GConf based preference backend. ! * * @author Mario Torre */ public final class GConfNativePeer *************** public final class GConfNativePeer *** 59,65 **** /** * Queries whether the node node exists in theGConf database. * Returns true or false. ! * * @param node the node to check. */ public boolean nodeExist(String node) --- 59,65 ---- /** * Queries whether the node node exists in theGConf database. * Returns true or false. ! * * @param node the node to check. */ public boolean nodeExist(String node) *************** public final class GConfNativePeer *** 72,78 **** * exist before (ie it was unset or it only had a default value). * Key names must be valid GConf key names, that is, there can be more * restrictions than for normal Preference Backend. ! * * @param key the key to alter (or add). * @param value the new value for this key. * @return true if the key was updated, false otherwise. --- 72,78 ---- * exist before (ie it was unset or it only had a default value). * Key names must be valid GConf key names, that is, there can be more * restrictions than for normal Preference Backend. ! * * @param key the key to alter (or add). * @param value the new value for this key. * @return true if the key was updated, false otherwise. *************** public final class GConfNativePeer *** 86,92 **** * Unsets the value of key; if key is already unset, has no effect. Depending * on the GConf daemon, unsetting a key may have the side effect to remove it * completely form the database. ! * * @param key the key to unset. * @return true on success, false if the key was not updated. */ --- 86,92 ---- * Unsets the value of key; if key is already unset, has no effect. Depending * on the GConf daemon, unsetting a key may have the side effect to remove it * completely form the database. ! * * @param key the key to unset. * @return true on success, false if the key was not updated. */ *************** public final class GConfNativePeer *** 97,103 **** /** * Gets the value of a configuration key. ! * * @param key the configuration key. * @return the values of this key, null if the key is not valid. */ --- 97,103 ---- /** * Gets the value of a configuration key. ! * * @param key the configuration key. * @return the values of this key, null if the key is not valid. */ *************** public final class GConfNativePeer *** 110,116 **** * Lists the key in the given node. Does not list subnodes. Keys names are the * stripped names (name relative to the current node) of the keys stored in * this node. ! * * @param node the node where keys are stored. * @return a java.util.List of keys. If there are no keys in the given node, a * list of size 0 is returned. --- 110,116 ---- * Lists the key in the given node. Does not list subnodes. Keys names are the * stripped names (name relative to the current node) of the keys stored in * this node. ! * * @param node the node where keys are stored. * @return a java.util.List of keys. If there are no keys in the given node, a * list of size 0 is returned. *************** public final class GConfNativePeer *** 123,129 **** /** * Lists the subnodes in node. The returned list contains * allocated strings. Each string is the name relative tho the given node. ! * * @param node the node to get subnodes from. If there are no subnodes in the * given node, a list of size 0 is returned. */ --- 123,129 ---- /** * Lists the subnodes in node. The returned list contains * allocated strings. Each string is the name relative tho the given node. ! * * @param node the node to get subnodes from. If there are no subnodes in the * given node, a list of size 0 is returned. */ *************** public final class GConfNativePeer *** 139,145 **** { return gconf_escape_key(plain); } ! /** * Unescape a string escaped with {@link #escapeString}. */ --- 139,145 ---- { return gconf_escape_key(plain); } ! /** * Unescape a string escaped with {@link #escapeString}. */ *************** public final class GConfNativePeer *** 147,153 **** { return gconf_unescape_key(escaped); } ! /** * Suggest to the backend GConf daemon to synch with the database. */ --- 147,153 ---- { return gconf_unescape_key(escaped); } ! /** * Suggest to the backend GConf daemon to synch with the database. */ *************** public final class GConfNativePeer *** 155,161 **** { gconf_suggest_sync(); } ! protected void finalize() throws Throwable { try --- 155,161 ---- { gconf_suggest_sync(); } ! protected void finalize() throws Throwable { try *************** public final class GConfNativePeer *** 181,187 **** * It is meant to be used by the static initializer. */ native synchronized static final private void init_id_cache(); ! /** * Initialize the GConf native peer. This is meant to be used by the * class constructor. --- 181,187 ---- * It is meant to be used by the static initializer. */ native synchronized static final private void init_id_cache(); ! /** * Initialize the GConf native peer. This is meant to be used by the * class constructor. *************** public final class GConfNativePeer *** 196,202 **** /** * Queries the GConf database to see if the given node exists, returning * true if the node exist, false otherwise. ! * * @param node the node to query for existence. * @return true if the node exist, false otherwise. */ --- 196,202 ---- /** * Queries the GConf database to see if the given node exists, returning * true if the node exist, false otherwise. ! * * @param node the node to query for existence. * @return true if the node exist, false otherwise. */ *************** public final class GConfNativePeer *** 206,212 **** /** * Sets the given key/value pair into the GConf database. * The key must be a valid GConf key. ! * * @param key the key to store in the GConf database * @param value the value to associate to the given key. * @return true if the change has effect, false otherwise. --- 206,212 ---- /** * Sets the given key/value pair into the GConf database. * The key must be a valid GConf key. ! * * @param key the key to store in the GConf database * @param value the value to associate to the given key. * @return true if the change has effect, false otherwise. *************** public final class GConfNativePeer *** 217,223 **** /** * Returns the key associated to the given key. Null is returned if the * key is not valid. ! * * @param key the key to return the value of. * @return The value associated to the given key, or null. */ --- 217,223 ---- /** * Returns the key associated to the given key. Null is returned if the * key is not valid. ! * * @param key the key to return the value of. * @return The value associated to the given key, or null. */ *************** public final class GConfNativePeer *** 226,232 **** /** * Usets the given key, removing the key from the database. ! * * @param key the key to remove. * @return true if the operation success, false otherwise. */ --- 226,232 ---- /** * Usets the given key, removing the key from the database. ! * * @param key the key to remove. * @return true if the operation success, false otherwise. */ *************** public final class GConfNativePeer *** 238,283 **** */ native synchronized static final protected void gconf_suggest_sync() throws BackingStoreException; ! /** * Returns a list of all nodes under the given node. ! * * @param node the source node. * @return A list of nodes under the given source node. */ native static synchronized final protected List gconf_all_nodes(String node) throws BackingStoreException; ! /** * Returns a list of all keys stored in the given node. ! * * @param node the source node. * @return A list of all keys stored in the given node. */ ! native synchronized static final protected List gconf_all_keys(String node) throws BackingStoreException; /** * Escape the input String so that it's a valid element for GConf. ! * * @param plain the String to escape. * @return An escaped String for use with GConf. */ ! native synchronized static final protected String gconf_escape_key(String plain); ! /** * Converts a string escaped with gconf_escape_key back into its * original form. ! * ! * @param escaped key as returned by gconf_escape_key * @return An unescaped key. */ ! native synchronized static final protected String gconf_unescape_key(String escaped); ! static { System.loadLibrary("gconfpeer"); --- 238,283 ---- */ native synchronized static final protected void gconf_suggest_sync() throws BackingStoreException; ! /** * Returns a list of all nodes under the given node. ! * * @param node the source node. * @return A list of nodes under the given source node. */ native static synchronized final protected List gconf_all_nodes(String node) throws BackingStoreException; ! /** * Returns a list of all keys stored in the given node. ! * * @param node the source node. * @return A list of all keys stored in the given node. */ ! native synchronized static final protected List gconf_all_keys(String node) throws BackingStoreException; /** * Escape the input String so that it's a valid element for GConf. ! * * @param plain the String to escape. * @return An escaped String for use with GConf. */ ! native synchronized static final protected String gconf_escape_key(String plain); ! /** * Converts a string escaped with gconf_escape_key back into its * original form. ! * ! * @param escaped key as returned by gconf_escape_key * @return An unescaped key. */ ! native synchronized static final protected String gconf_unescape_key(String escaped); ! static { System.loadLibrary("gconfpeer"); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/BacktrackStack.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/BacktrackStack.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/BacktrackStack.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/BacktrackStack.java Tue Jan 11 19:46:05 2011 *************** final class BacktrackStack *** 50,65 **** /** A set of data to be used for backtracking. */ static class Backtrack { ! /** REToken to which to go back */ REToken token; ! /** CharIndexed on which matches are being searched for. */ CharIndexed input; ! /** REMatch to be used by the REToken token. */ REMatch match; ! /** Some parameter used by the token's backtrack method. */ Object param; Backtrack (REToken token, CharIndexed input, REMatch match, ! Object param) { this.token = token; this.input = input; --- 50,65 ---- /** A set of data to be used for backtracking. */ static class Backtrack { ! /** REToken to which to go back */ REToken token; ! /** CharIndexed on which matches are being searched for. */ CharIndexed input; ! /** REMatch to be used by the REToken token. */ REMatch match; ! /** Some parameter used by the token's backtrack method. */ Object param; Backtrack (REToken token, CharIndexed input, REMatch match, ! Object param) { this.token = token; this.input = input; *************** final class BacktrackStack *** 104,110 **** { for (int i = 0; i < size; i++) { ! stack[i] = null; } size = 0; } --- 104,110 ---- { for (int i = 0; i < size; i++) { ! stack[i] = null; } size = 0; } *************** final class BacktrackStack *** 113,122 **** { if (size >= capacity) { ! capacity += CAPACITY_INCREMENT; ! Backtrack[]newStack = new Backtrack[capacity]; ! System.arraycopy (stack, 0, newStack, 0, size); ! stack = newStack; } stack[size++] = bt; } --- 113,122 ---- { if (size >= capacity) { ! capacity += CAPACITY_INCREMENT; ! Backtrack[]newStack = new Backtrack[capacity]; ! System.arraycopy (stack, 0, newStack, 0, size); ! stack = newStack; } stack[size++] = bt; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/CharIndexed.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/CharIndexed.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/CharIndexed.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/CharIndexed.java Tue Jan 11 19:46:05 2011 *************** public interface CharIndexed *** 82,88 **** * true if the new cursor position is valid or cursor position is at * the end of input. */ ! boolean move1 (int index); // I cannot think of a better name for this. /** * Returns true if the most recent move() operation placed the cursor --- 82,88 ---- * true if the new cursor position is valid or cursor position is at * the end of input. */ ! boolean move1 (int index); // I cannot think of a better name for this. /** * Returns true if the most recent move() operation placed the cursor diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java Tue Jan 11 19:46:05 2011 *************** import java.io.InputStream; *** 45,51 **** class CharIndexedInputStream implements CharIndexed { private static final int BUFFER_INCREMENT = 1024; ! private static final int UNKNOWN = Integer.MAX_VALUE; // value for end private BufferedInputStream br; --- 45,51 ---- class CharIndexedInputStream implements CharIndexed { private static final int BUFFER_INCREMENT = 1024; ! private static final int UNKNOWN = Integer.MAX_VALUE; // value for end private BufferedInputStream br; *************** class CharIndexedInputStream implements *** 78,99 **** { if (end == 1) return false; ! end--; // closer to end try { if (index != -1) ! { ! br.reset (); ! } int i = br.read (); br.mark (bufsize); if (i == -1) ! { ! end = 1; ! cached = OUT_OF_BOUNDS; ! return false; ! } cached = (char) i; index = 1; } catch (IOException e) --- 78,99 ---- { if (end == 1) return false; ! end--; // closer to end try { if (index != -1) ! { ! br.reset (); ! } int i = br.read (); br.mark (bufsize); if (i == -1) ! { ! end = 1; ! cached = OUT_OF_BOUNDS; ! return false; ! } cached = (char) i; index = 1; } catch (IOException e) *************** class CharIndexedInputStream implements *** 109,170 **** { if (index == 0) { ! return cached; } else if (index >= end) { ! return OUT_OF_BOUNDS; } else if (index == -1) { ! return lookBehind[0]; } else if (index == -2) { ! return lookBehind[1]; } else if (index < -2) { ! return OUT_OF_BOUNDS; } else if (index >= bufsize) { ! // Allocate more space in the buffer. ! try ! { ! while (bufsize <= index) ! bufsize += BUFFER_INCREMENT; ! br.reset (); ! br.mark (bufsize); ! br.skip (index - 1); ! } ! catch (IOException e) ! { ! } } else if (this.index != index) { ! try ! { ! br.reset (); ! br.skip (index - 1); ! } ! catch (IOException e) ! { ! } } char ch = OUT_OF_BOUNDS; try { int i = br.read (); ! this.index = index + 1; // this.index is index of next pos relative to charAt(0) if (i == -1) ! { ! // set flag that next should fail next time? ! end = index; ! return ch; ! } ch = (char) i; } catch (IOException ie) { --- 109,170 ---- { if (index == 0) { ! return cached; } else if (index >= end) { ! return OUT_OF_BOUNDS; } else if (index == -1) { ! return lookBehind[0]; } else if (index == -2) { ! return lookBehind[1]; } else if (index < -2) { ! return OUT_OF_BOUNDS; } else if (index >= bufsize) { ! // Allocate more space in the buffer. ! try ! { ! while (bufsize <= index) ! bufsize += BUFFER_INCREMENT; ! br.reset (); ! br.mark (bufsize); ! br.skip (index - 1); ! } ! catch (IOException e) ! { ! } } else if (this.index != index) { ! try ! { ! br.reset (); ! br.skip (index - 1); ! } ! catch (IOException e) ! { ! } } char ch = OUT_OF_BOUNDS; try { int i = br.read (); ! this.index = index + 1; // this.index is index of next pos relative to charAt(0) if (i == -1) ! { ! // set flag that next should fail next time? ! end = index; ! return ch; ! } ch = (char) i; } catch (IOException ie) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RE.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RE.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RE.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RE.java Tue Jan 11 19:46:05 2011 *************** import java.util.ResourceBundle; *** 53,59 **** * expressions. *

          * A regular expression object (class RE) is compiled by constructing it ! * from a String, StringBuffer or character array, with optional * compilation flags (below) * and an optional syntax specification (see RESyntax; if not specified, * RESyntax.RE_SYNTAX_PERL5 is used). --- 53,59 ---- * expressions. *

          * A regular expression object (class RE) is compiled by constructing it ! * from a String, StringBuffer or character array, with optional * compilation flags (below) * and an optional syntax specification (see RESyntax; if not specified, * RESyntax.RE_SYNTAX_PERL5 is used). *************** import java.util.ResourceBundle; *** 110,116 **** *

          * You can optionally affect the execution environment by using a * combination of execution flags (constants listed below). ! * *

          * All operations on a regular expression are performed in a * thread-safe manner. --- 110,116 ---- *

          * You can optionally affect the execution environment by using a * combination of execution flags (constants listed below). ! * *

          * All operations on a regular expression are performed in a * thread-safe manner. *************** public class RE extends REToken *** 281,287 **** { if (messages == null) messages = ! PropertyResourceBundle.getBundle (bundle, Locale.getDefault ()); return messages.getString (key); } --- 281,287 ---- { if (messages == null) messages = ! PropertyResourceBundle.getBundle (bundle, Locale.getDefault ()); return messages.getString (key); } *************** public class RE extends REToken *** 335,341 **** // internal constructor used for alternation private RE (REToken first, REToken last, int subs, int subIndex, ! int minLength, int maxLength) { super (subIndex); firstToken = first; --- 335,341 ---- // internal constructor used for alternation private RE (REToken first, REToken last, int subs, int subIndex, ! int minLength, int maxLength) { super (subIndex); firstToken = first; *************** public class RE extends REToken *** 347,355 **** } private RE (Object patternObj, int cflags, RESyntax syntax, int myIndex, ! int nextSub) throws REException { ! super (myIndex); // Subexpression index of this token. initialize (patternObj, cflags, syntax, myIndex, nextSub); } --- 347,355 ---- } private RE (Object patternObj, int cflags, RESyntax syntax, int myIndex, ! int nextSub) throws REException { ! super (myIndex); // Subexpression index of this token. initialize (patternObj, cflags, syntax, myIndex, nextSub); } *************** public class RE extends REToken *** 361,401 **** // The meat of construction protected void initialize (Object patternObj, int cflags, RESyntax syntax, ! int myIndex, int nextSub) throws REException { char[] pattern; if (patternObj instanceof String) { ! pattern = ((String) patternObj).toCharArray (); } else if (patternObj instanceof char[]) { ! pattern = (char[]) patternObj; } else if (patternObj instanceof StringBuffer) { ! pattern = new char[((StringBuffer) patternObj).length ()]; ! ((StringBuffer) patternObj).getChars (0, pattern.length, pattern, 0); } else if (patternObj instanceof StringBuilder) { ! pattern = new char[((StringBuilder) patternObj).length ()]; ! ((StringBuilder) patternObj).getChars (0, pattern.length, pattern, 0); } else if (patternObj instanceof CPStringBuilder) { ! pattern = new char[((CPStringBuilder) patternObj).length ()]; ! ((CPStringBuilder) patternObj).getChars (0, pattern.length, pattern, ! 0); } else { ! pattern = patternObj.toString ().toCharArray (); } int pLength = pattern.length; ! numSubs = 0; // Number of subexpressions in this token. ArrayList < REToken > branches = null; // linked list of tokens (sort of -- some closed loops can exist) --- 361,401 ---- // The meat of construction protected void initialize (Object patternObj, int cflags, RESyntax syntax, ! int myIndex, int nextSub) throws REException { char[] pattern; if (patternObj instanceof String) { ! pattern = ((String) patternObj).toCharArray (); } else if (patternObj instanceof char[]) { ! pattern = (char[]) patternObj; } else if (patternObj instanceof StringBuffer) { ! pattern = new char[((StringBuffer) patternObj).length ()]; ! ((StringBuffer) patternObj).getChars (0, pattern.length, pattern, 0); } else if (patternObj instanceof StringBuilder) { ! pattern = new char[((StringBuilder) patternObj).length ()]; ! ((StringBuilder) patternObj).getChars (0, pattern.length, pattern, 0); } else if (patternObj instanceof CPStringBuilder) { ! pattern = new char[((CPStringBuilder) patternObj).length ()]; ! ((CPStringBuilder) patternObj).getChars (0, pattern.length, pattern, ! 0); } else { ! pattern = patternObj.toString ().toCharArray (); } int pLength = pattern.length; ! numSubs = 0; // Number of subexpressions in this token. ArrayList < REToken > branches = null; // linked list of tokens (sort of -- some closed loops can exist) *************** public class RE extends REToken *** 429,1384 **** while (index < pLength) { ! // read the next character unit (including backslash escapes) ! index = getCharUnit (pattern, index, unit, quot); ! if (unit.bk) ! if (unit.ch == 'Q') ! { ! quot = true; ! continue; ! } ! else if (unit.ch == 'E') ! { ! quot = false; ! continue; ! } ! if (quot) ! unit.bk = false; ! if (((cflags & REG_X_COMMENTS) > 0) && (!unit.bk) && (!quot)) ! { ! if (Character.isWhitespace (unit.ch)) ! { ! continue; ! } ! if (unit.ch == '#') ! { ! for (int i = index; i < pLength; i++) ! { ! if (pattern[i] == '\n') ! { ! index = i + 1; ! continue; ! } ! else if (pattern[i] == '\r') ! { ! if (i + 1 < pLength && pattern[i + 1] == '\n') ! { ! index = i + 2; ! } ! else ! { ! index = i + 1; ! } ! continue; ! } ! } ! index = pLength; ! continue; ! } ! } ! // ALTERNATION OPERATOR ! // \| or | (if RE_NO_BK_VBAR) or newline (if RE_NEWLINE_ALT) ! // not available if RE_LIMITED_OPS is set ! // TODO: the '\n' literal here should be a test against REToken.newline, ! // which unfortunately may be more than a single character. ! if (((unit.ch == '|' ! && (syntax.get (RESyntax.RE_NO_BK_VBAR) ^ (unit.bk || quot))) ! || (syntax.get (RESyntax.RE_NEWLINE_ALT) && (unit.ch == '\n') ! && !(unit.bk || quot))) ! && !syntax.get (RESyntax.RE_LIMITED_OPS)) ! { ! // make everything up to here be a branch. create vector if nec. ! addToken (currentToken); ! RE theBranch = ! new RE (firstToken, lastToken, numSubs, subIndex, minimumLength, ! maximumLength); ! minimumLength = 0; ! maximumLength = 0; ! if (branches == null) ! { ! branches = new ArrayList < REToken > (); ! } ! branches.add (theBranch); ! firstToken = lastToken = currentToken = null; ! } ! // INTERVAL OPERATOR: ! // {x} | {x,} | {x,y} (RE_INTERVALS && RE_NO_BK_BRACES) ! // \{x\} | \{x,\} | \{x,y\} (RE_INTERVALS && !RE_NO_BK_BRACES) ! // ! // OPEN QUESTION: ! // what is proper interpretation of '{' at start of string? ! // ! // This method used to check "repeat.empty.token" to avoid such regexp ! // as "(a*){2,}", but now "repeat.empty.token" is allowed. ! else if ((unit.ch == '{') && syntax.get (RESyntax.RE_INTERVALS) ! && (syntax. ! get (RESyntax.RE_NO_BK_BRACES) ^ (unit.bk || quot))) ! { ! int newIndex = getMinMax (pattern, index, minMax, syntax); ! if (newIndex > index) ! { ! if (minMax.first > minMax.second) ! throw new ! REException (getLocalizedMessage ("interval.order"), ! REException.REG_BADRPT, newIndex); ! if (currentToken == null) ! throw new ! REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, newIndex); ! if (currentToken instanceof RETokenRepeated) ! throw new ! REException (getLocalizedMessage ("repeat.chained"), ! REException.REG_BADRPT, newIndex); ! if (currentToken instanceof RETokenWordBoundary ! || currentToken instanceof RETokenWordBoundary) ! throw new ! REException (getLocalizedMessage ("repeat.assertion"), ! REException.REG_BADRPT, newIndex); ! index = newIndex; ! currentToken = ! setRepeated (currentToken, minMax.first, minMax.second, ! index); ! } ! else ! { ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, unit.ch, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! } ! // LIST OPERATOR: ! // [...] | [^...] ! else if ((unit.ch == '[') && !(unit.bk || quot)) ! { ! // Create a new RETokenOneOf ! ParseCharClassResult result = ! parseCharClass (subIndex, pattern, index, pLength, cflags, ! syntax, 0); ! addToken (currentToken); ! currentToken = result.token; ! index = result.index; ! } ! // SUBEXPRESSIONS ! // (...) | \(...\) depending on RE_NO_BK_PARENS ! else if ((unit.ch == '(') ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))) ! { ! boolean pure = false; ! boolean comment = false; ! boolean lookAhead = false; ! boolean lookBehind = false; ! boolean independent = false; ! boolean negativelh = false; ! boolean negativelb = false; ! if ((index + 1 < pLength) && (pattern[index] == '?')) ! { ! switch (pattern[index + 1]) ! { ! case '!': ! if (syntax.get (RESyntax.RE_LOOKAHEAD)) ! { ! pure = true; ! negativelh = true; ! lookAhead = true; ! index += 2; ! } ! break; ! case '=': ! if (syntax.get (RESyntax.RE_LOOKAHEAD)) ! { ! pure = true; ! lookAhead = true; ! index += 2; ! } ! break; ! case '<': ! // We assume that if the syntax supports look-ahead, ! // it also supports look-behind. ! if (syntax.get (RESyntax.RE_LOOKAHEAD)) ! { ! index++; ! switch (pattern[index + 1]) ! { ! case '!': ! pure = true; ! negativelb = true; ! lookBehind = true; ! index += 2; ! break; ! case '=': ! pure = true; ! lookBehind = true; ! index += 2; ! } ! } ! break; ! case '>': ! // We assume that if the syntax supports look-ahead, ! // it also supports independent group. ! if (syntax.get (RESyntax.RE_LOOKAHEAD)) ! { ! pure = true; ! independent = true; ! index += 2; ! } ! break; ! case 'i': ! case 'd': ! case 'm': ! case 's': ! case 'u': ! case 'x': ! case '-': ! if (!syntax.get (RESyntax.RE_EMBEDDED_FLAGS)) ! break; ! // Set or reset syntax flags. ! int flagIndex = index + 1; ! int endFlag = -1; ! RESyntax newSyntax = new RESyntax (syntax); ! int newCflags = cflags; ! boolean negate = false; ! while (flagIndex < pLength && endFlag < 0) ! { ! switch (pattern[flagIndex]) ! { ! case 'i': ! if (negate) ! newCflags &= ~REG_ICASE; ! else ! newCflags |= REG_ICASE; ! flagIndex++; ! break; ! case 'd': ! if (negate) ! newSyntax.setLineSeparator (RESyntax. ! DEFAULT_LINE_SEPARATOR); ! else ! newSyntax.setLineSeparator ("\n"); ! flagIndex++; ! break; ! case 'm': ! if (negate) ! newCflags &= ~REG_MULTILINE; ! else ! newCflags |= REG_MULTILINE; ! flagIndex++; ! break; ! case 's': ! if (negate) ! newCflags &= ~REG_DOT_NEWLINE; ! else ! newCflags |= REG_DOT_NEWLINE; ! flagIndex++; ! break; ! case 'u': ! if (negate) ! newCflags |= REG_ICASE_USASCII; ! else ! newCflags &= ~REG_ICASE_USASCII; ! flagIndex++; ! break; ! case 'x': ! if (negate) ! newCflags &= ~REG_X_COMMENTS; ! else ! newCflags |= REG_X_COMMENTS; ! flagIndex++; ! break; ! case '-': ! negate = true; ! flagIndex++; ! break; ! case ':': ! case ')': ! endFlag = pattern[flagIndex]; ! break; ! default: ! throw new ! REException (getLocalizedMessage ! ("repeat.no.token"), ! REException.REG_BADRPT, index); ! } ! } ! if (endFlag == ')') ! { ! syntax = newSyntax; ! cflags = newCflags; ! insens = ((cflags & REG_ICASE) > 0); ! insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0); ! // This can be treated as though it were a comment. ! comment = true; ! index = flagIndex - 1; ! break; ! } ! if (endFlag == ':') ! { ! savedSyntax = syntax; ! savedCflags = cflags; ! flagsSaved = true; ! syntax = newSyntax; ! cflags = newCflags; ! insens = ((cflags & REG_ICASE) > 0); ! insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0); ! index = flagIndex - 1; ! // Fall through to the next case. ! } ! else ! { ! throw new ! REException (getLocalizedMessage ! ("unmatched.paren"), ! REException.REG_ESUBREG, index); ! } ! case ':': ! if (syntax.get (RESyntax.RE_PURE_GROUPING)) ! { ! pure = true; ! index += 2; ! } ! break; ! case '#': ! if (syntax.get (RESyntax.RE_COMMENTS)) ! { ! comment = true; ! } ! break; ! default: ! throw new ! REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); ! } ! } ! if (index >= pLength) ! { ! throw new ! REException (getLocalizedMessage ("unmatched.paren"), ! REException.REG_ESUBREG, index); ! } ! // find end of subexpression ! int endIndex = index; ! int nextIndex = index; ! int nested = 0; ! while (((nextIndex = ! getCharUnit (pattern, endIndex, unit, false)) > 0) ! && !(nested == 0 && (unit.ch == ')') ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk ! || quot)))) ! { ! if ((endIndex = nextIndex) >= pLength) ! throw new ! REException (getLocalizedMessage ("subexpr.no.end"), ! REException.REG_ESUBREG, nextIndex); ! else ! if ((unit.ch == '[') && !(unit.bk || quot)) ! { ! // I hate to do something similar to the LIST OPERATOR matters ! // above, but ... ! int listIndex = nextIndex; ! if (listIndex < pLength && pattern[listIndex] == '^') ! listIndex++; ! if (listIndex < pLength && pattern[listIndex] == ']') ! listIndex++; ! int listEndIndex = -1; ! int listNest = 0; ! while (listIndex < pLength && listEndIndex < 0) ! { ! switch (pattern[listIndex++]) ! { ! case '\\': ! listIndex++; ! break; ! case '[': ! // Sun's API document says that regexp like "[a-d[m-p]]" ! // is legal. Even something like "[[[^]]]]" is accepted. ! listNest++; ! if (listIndex < pLength ! && pattern[listIndex] == '^') ! listIndex++; ! if (listIndex < pLength ! && pattern[listIndex] == ']') ! listIndex++; ! break; ! case ']': ! if (listNest == 0) ! listEndIndex = listIndex; ! listNest--; ! break; ! } ! } ! if (listEndIndex >= 0) ! { ! nextIndex = listEndIndex; ! if ((endIndex = nextIndex) >= pLength) ! throw new ! REException (getLocalizedMessage ("subexpr.no.end"), ! REException.REG_ESUBREG, nextIndex); ! else ! continue; ! } ! throw new ! REException (getLocalizedMessage ("subexpr.no.end"), ! REException.REG_ESUBREG, nextIndex); ! } ! else if (unit.ch == '(' ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk ! || quot))) ! nested++; ! else if (unit.ch == ')' ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk ! || quot))) ! nested--; ! } ! // endIndex is now position at a ')','\)' ! // nextIndex is end of string or position after ')' or '\)' ! if (comment) ! index = nextIndex; ! else ! { // not a comment ! // create RE subexpression as token. ! addToken (currentToken); ! if (!pure) ! { ! numSubs++; ! } ! int useIndex = (pure || lookAhead || lookBehind ! || independent) ? 0 : nextSub + numSubs; ! currentToken = ! new RE (String.valueOf (pattern, index, endIndex - index). ! toCharArray (), cflags, syntax, useIndex, ! nextSub + numSubs); ! numSubs += ((RE) currentToken).getNumSubs (); ! if (lookAhead) ! { ! currentToken = ! new RETokenLookAhead (currentToken, negativelh); ! } ! else if (lookBehind) ! { ! currentToken = ! new RETokenLookBehind (currentToken, negativelb); ! } ! else if (independent) ! { ! currentToken = new RETokenIndependent (currentToken); ! } ! index = nextIndex; ! if (flagsSaved) ! { ! syntax = savedSyntax; ! cflags = savedCflags; ! insens = ((cflags & REG_ICASE) > 0); ! insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0); ! flagsSaved = false; ! } ! } // not a comment ! } // subexpression ! // UNMATCHED RIGHT PAREN ! // ) or \) throw exception if ! // !syntax.get(RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD) ! else if (!syntax.get (RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD) ! && ((unit.ch == ')') ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))) ! { ! throw new REException (getLocalizedMessage ("unmatched.paren"), ! REException.REG_EPAREN, index); ! } ! // START OF LINE OPERATOR ! // ^ ! else if ((unit.ch == '^') && !(unit.bk || quot)) ! { ! addToken (currentToken); ! currentToken = null; ! RETokenStart token = null; ! if ((cflags & REG_MULTILINE) > 0) ! { ! String sep = syntax.getLineSeparator (); ! if (sep == null) ! { ! token = new RETokenStart (subIndex, null, true); ! } ! else ! { ! token = new RETokenStart (subIndex, sep); ! } ! } ! else ! { ! token = new RETokenStart (subIndex, null); ! } ! addToken (token); ! } ! // END OF LINE OPERATOR ! // $ ! else if ((unit.ch == '$') && !(unit.bk || quot)) ! { ! addToken (currentToken); ! currentToken = null; ! RETokenEnd token = null; ! if ((cflags & REG_MULTILINE) > 0) ! { ! String sep = syntax.getLineSeparator (); ! if (sep == null) ! { ! token = new RETokenEnd (subIndex, null, true); ! } ! else ! { ! token = new RETokenEnd (subIndex, sep); ! } ! } ! else ! { ! token = new RETokenEnd (subIndex, null); ! } ! addToken (token); ! } ! // MATCH-ANY-CHARACTER OPERATOR (except possibly newline and null) ! // . ! else if ((unit.ch == '.') && !(unit.bk || quot)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenAny (subIndex, syntax.get (RESyntax.RE_DOT_NEWLINE) ! || ((cflags & REG_DOT_NEWLINE) > 0), ! syntax.get (RESyntax.RE_DOT_NOT_NULL)); ! } ! // ZERO-OR-MORE REPEAT OPERATOR ! // * ! // ! // This method used to check "repeat.empty.token" to avoid such regexp ! // as "(a*)*", but now "repeat.empty.token" is allowed. ! else if ((unit.ch == '*') && !(unit.bk || quot)) ! { ! if (currentToken == null) ! throw new REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); ! if (currentToken instanceof RETokenRepeated) ! throw new REException (getLocalizedMessage ("repeat.chained"), ! REException.REG_BADRPT, index); ! if (currentToken instanceof RETokenWordBoundary ! || currentToken instanceof RETokenWordBoundary) ! throw new REException (getLocalizedMessage ("repeat.assertion"), ! REException.REG_BADRPT, index); ! currentToken = ! setRepeated (currentToken, 0, Integer.MAX_VALUE, index); ! } ! // ONE-OR-MORE REPEAT OPERATOR / POSSESSIVE MATCHING OPERATOR ! // + | \+ depending on RE_BK_PLUS_QM ! // not available if RE_LIMITED_OPS is set ! // ! // This method used to check "repeat.empty.token" to avoid such regexp ! // as "(a*)+", but now "repeat.empty.token" is allowed. ! else if ((unit.ch == '+') && !syntax.get (RESyntax.RE_LIMITED_OPS) ! && (!syntax. ! get (RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) ! { ! if (currentToken == null) ! throw new REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); ! // Check for possessive matching on RETokenRepeated ! if (currentToken instanceof RETokenRepeated) ! { ! RETokenRepeated tokenRep = (RETokenRepeated) currentToken; ! if (syntax.get (RESyntax.RE_POSSESSIVE_OPS) ! && !tokenRep.isPossessive () && !tokenRep.isStingy ()) ! tokenRep.makePossessive (); ! else ! throw new ! REException (getLocalizedMessage ("repeat.chained"), ! REException.REG_BADRPT, index); ! } ! else if (currentToken instanceof RETokenWordBoundary ! || currentToken instanceof RETokenWordBoundary) ! throw new REException (getLocalizedMessage ("repeat.assertion"), ! REException.REG_BADRPT, index); ! else ! currentToken = ! setRepeated (currentToken, 1, Integer.MAX_VALUE, index); ! } ! // ZERO-OR-ONE REPEAT OPERATOR / STINGY MATCHING OPERATOR ! // ? | \? depending on RE_BK_PLUS_QM ! // not available if RE_LIMITED_OPS is set ! // stingy matching if RE_STINGY_OPS is set and it follows a quantifier ! else if ((unit.ch == '?') && !syntax.get (RESyntax.RE_LIMITED_OPS) ! && (!syntax. ! get (RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) ! { ! if (currentToken == null) ! throw new REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); ! // Check for stingy matching on RETokenRepeated ! if (currentToken instanceof RETokenRepeated) ! { ! RETokenRepeated tokenRep = (RETokenRepeated) currentToken; ! if (syntax.get (RESyntax.RE_STINGY_OPS) ! && !tokenRep.isStingy () && !tokenRep.isPossessive ()) ! tokenRep.makeStingy (); ! else ! throw new ! REException (getLocalizedMessage ("repeat.chained"), ! REException.REG_BADRPT, index); ! } ! else if (currentToken instanceof RETokenWordBoundary ! || currentToken instanceof RETokenWordBoundary) ! throw new REException (getLocalizedMessage ("repeat.assertion"), ! REException.REG_BADRPT, index); ! else ! currentToken = setRepeated (currentToken, 0, 1, index); ! } ! // OCTAL CHARACTER ! // \0377 ! else if (unit.bk && (unit.ch == '0') ! && syntax.get (RESyntax.RE_OCTAL_CHAR)) ! { ! CharExpression ce = ! getCharExpression (pattern, index - 2, pLength, syntax); ! if (ce == null) ! throw new REException ("invalid octal character", ! REException.REG_ESCAPE, index); ! index = index - 2 + ce.len; ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, ce.ch, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // BACKREFERENCE OPERATOR ! // \1 \2 ... \9 and \10 \11 \12 ... ! // not available if RE_NO_BK_REFS is set ! // Perl recognizes \10, \11, and so on only if enough number of ! // parentheses have opened before it, otherwise they are treated ! // as aliases of \010, \011, ... (octal characters). In case of ! // Sun's JDK, octal character expression must always begin with \0. ! // We will do as JDK does. But FIXME, take a look at "(a)(b)\29". ! // JDK treats \2 as a back reference to the 2nd group because ! // there are only two groups. But in our poor implementation, ! // we cannot help but treat \29 as a back reference to the 29th group. ! else if (unit.bk && Character.isDigit (unit.ch) ! && !syntax.get (RESyntax.RE_NO_BK_REFS)) ! { ! addToken (currentToken); ! int numBegin = index - 1; ! int numEnd = pLength; ! for (int i = index; i < pLength; i++) ! { ! if (!Character.isDigit (pattern[i])) ! { ! numEnd = i; ! break; ! } ! } ! int num = parseInt (pattern, numBegin, numEnd - numBegin, 10); ! currentToken = new RETokenBackRef (subIndex, num, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! index = numEnd; ! } ! // START OF STRING OPERATOR ! // \A if RE_STRING_ANCHORS is set ! else if (unit.bk && (unit.ch == 'A') ! && syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = new RETokenStart (subIndex, null); ! } ! // WORD BREAK OPERATOR ! // \b if ???? ! else if (unit.bk && (unit.ch == 'b') ! && syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenWordBoundary (subIndex, ! RETokenWordBoundary. ! BEGIN | RETokenWordBoundary.END, ! false); ! } ! // WORD BEGIN OPERATOR ! // \< if ???? ! else if (unit.bk && (unit.ch == '<')) ! { ! addToken (currentToken); ! currentToken = ! new RETokenWordBoundary (subIndex, RETokenWordBoundary.BEGIN, ! false); ! } ! // WORD END OPERATOR ! // \> if ???? ! else if (unit.bk && (unit.ch == '>')) ! { ! addToken (currentToken); ! currentToken = ! new RETokenWordBoundary (subIndex, RETokenWordBoundary.END, ! false); ! } ! // NON-WORD BREAK OPERATOR ! // \B if ???? ! else if (unit.bk && (unit.ch == 'B') ! && syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenWordBoundary (subIndex, ! RETokenWordBoundary. ! BEGIN | RETokenWordBoundary.END, true); ! } ! // DIGIT OPERATOR ! // \d if RE_CHAR_CLASS_ESCAPES is set ! else if (unit.bk && (unit.ch == 'd') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.DIGIT, insens, false); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NON-DIGIT OPERATOR ! // \D ! else if (unit.bk && (unit.ch == 'D') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.DIGIT, insens, true); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NEWLINE ESCAPE ! // \n ! else if (unit.bk && (unit.ch == 'n')) ! { ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, '\n', false); ! } ! // RETURN ESCAPE ! // \r ! else if (unit.bk && (unit.ch == 'r')) ! { ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, '\r', false); ! } ! // WHITESPACE OPERATOR ! // \s if RE_CHAR_CLASS_ESCAPES is set ! else if (unit.bk && (unit.ch == 's') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.SPACE, insens, false); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NON-WHITESPACE OPERATOR ! // \S ! else if (unit.bk && (unit.ch == 'S') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.SPACE, insens, true); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // TAB ESCAPE ! // \t ! else if (unit.bk && (unit.ch == 't')) ! { ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, '\t', false); ! } ! // ALPHANUMERIC OPERATOR ! // \w ! else if (unit.bk && (unit.ch == 'w') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.ALNUM, insens, false); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NON-ALPHANUMERIC OPERATOR ! // \W ! else if (unit.bk && (unit.ch == 'W') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.ALNUM, insens, true); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // END OF STRING OPERATOR ! // \Z, \z ! // FIXME: \Z and \z are different in that if the input string ! // ends with a line terminator, \Z matches the position before ! // the final terminator. This special behavior of \Z is yet ! // to be implemented. ! else if (unit.bk && (unit.ch == 'Z' || unit.ch == 'z') && ! syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = new RETokenEnd (subIndex, null); ! } ! // HEX CHARACTER, UNICODE CHARACTER ! // \x1B, \u1234 ! else ! if ((unit.bk && (unit.ch == 'x') ! && syntax.get (RESyntax.RE_HEX_CHAR)) || (unit.bk ! && (unit.ch == 'u') ! && syntax. ! get (RESyntax. ! RE_UNICODE_CHAR))) ! { ! CharExpression ce = ! getCharExpression (pattern, index - 2, pLength, syntax); ! if (ce == null) ! throw new REException ("invalid hex character", ! REException.REG_ESCAPE, index); ! index = index - 2 + ce.len; ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, ce.ch, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NAMED PROPERTY ! // \p{prop}, \P{prop} ! else ! if ((unit.bk && (unit.ch == 'p') ! && syntax.get (RESyntax.RE_NAMED_PROPERTY)) || (unit.bk ! && (unit.ch == ! 'P') ! && syntax. ! get (RESyntax. ! RE_NAMED_PROPERTY))) ! { ! NamedProperty np = getNamedProperty (pattern, index - 2, pLength); ! if (np == null) ! throw new REException ("invalid escape sequence", ! REException.REG_ESCAPE, index); ! index = index - 2 + np.len; ! addToken (currentToken); ! currentToken = ! getRETokenNamedProperty (subIndex, np, insens, index); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // END OF PREVIOUS MATCH ! // \G ! else if (unit.bk && (unit.ch == 'G') && ! syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = new RETokenEndOfPreviousMatch (subIndex); ! } ! // NON-SPECIAL CHARACTER (or escape to make literal) ! // c | \* for example ! else ! { // not a special character ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, unit.ch, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! } // end while // Add final buffered token and an EndSub marker addToken (currentToken); if (branches != null) { ! branches. ! add (new ! RE (firstToken, lastToken, numSubs, subIndex, minimumLength, ! maximumLength)); ! branches.trimToSize (); // compact the Vector ! minimumLength = 0; ! maximumLength = 0; ! firstToken = lastToken = null; ! addToken (new RETokenOneOf (subIndex, branches, false)); } else addToken (new RETokenEndSub (subIndex)); --- 429,1384 ---- while (index < pLength) { ! // read the next character unit (including backslash escapes) ! index = getCharUnit (pattern, index, unit, quot); ! if (unit.bk) ! if (unit.ch == 'Q') ! { ! quot = true; ! continue; ! } ! else if (unit.ch == 'E') ! { ! quot = false; ! continue; ! } ! if (quot) ! unit.bk = false; ! if (((cflags & REG_X_COMMENTS) > 0) && (!unit.bk) && (!quot)) ! { ! if (Character.isWhitespace (unit.ch)) ! { ! continue; ! } ! if (unit.ch == '#') ! { ! for (int i = index; i < pLength; i++) ! { ! if (pattern[i] == '\n') ! { ! index = i + 1; ! continue; ! } ! else if (pattern[i] == '\r') ! { ! if (i + 1 < pLength && pattern[i + 1] == '\n') ! { ! index = i + 2; ! } ! else ! { ! index = i + 1; ! } ! continue; ! } ! } ! index = pLength; ! continue; ! } ! } ! // ALTERNATION OPERATOR ! // \| or | (if RE_NO_BK_VBAR) or newline (if RE_NEWLINE_ALT) ! // not available if RE_LIMITED_OPS is set ! // TODO: the '\n' literal here should be a test against REToken.newline, ! // which unfortunately may be more than a single character. ! if (((unit.ch == '|' ! && (syntax.get (RESyntax.RE_NO_BK_VBAR) ^ (unit.bk || quot))) ! || (syntax.get (RESyntax.RE_NEWLINE_ALT) && (unit.ch == '\n') ! && !(unit.bk || quot))) ! && !syntax.get (RESyntax.RE_LIMITED_OPS)) ! { ! // make everything up to here be a branch. create vector if nec. ! addToken (currentToken); ! RE theBranch = ! new RE (firstToken, lastToken, numSubs, subIndex, minimumLength, ! maximumLength); ! minimumLength = 0; ! maximumLength = 0; ! if (branches == null) ! { ! branches = new ArrayList < REToken > (); ! } ! branches.add (theBranch); ! firstToken = lastToken = currentToken = null; ! } ! // INTERVAL OPERATOR: ! // {x} | {x,} | {x,y} (RE_INTERVALS && RE_NO_BK_BRACES) ! // \{x\} | \{x,\} | \{x,y\} (RE_INTERVALS && !RE_NO_BK_BRACES) ! // ! // OPEN QUESTION: ! // what is proper interpretation of '{' at start of string? ! // ! // This method used to check "repeat.empty.token" to avoid such regexp ! // as "(a*){2,}", but now "repeat.empty.token" is allowed. ! else if ((unit.ch == '{') && syntax.get (RESyntax.RE_INTERVALS) ! && (syntax. ! get (RESyntax.RE_NO_BK_BRACES) ^ (unit.bk || quot))) ! { ! int newIndex = getMinMax (pattern, index, minMax, syntax); ! if (newIndex > index) ! { ! if (minMax.first > minMax.second) ! throw new ! REException (getLocalizedMessage ("interval.order"), ! REException.REG_BADRPT, newIndex); ! if (currentToken == null) ! throw new ! REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, newIndex); ! if (currentToken instanceof RETokenRepeated) ! throw new ! REException (getLocalizedMessage ("repeat.chained"), ! REException.REG_BADRPT, newIndex); ! if (currentToken instanceof RETokenWordBoundary ! || currentToken instanceof RETokenWordBoundary) ! throw new ! REException (getLocalizedMessage ("repeat.assertion"), ! REException.REG_BADRPT, newIndex); ! index = newIndex; ! currentToken = ! setRepeated (currentToken, minMax.first, minMax.second, ! index); ! } ! else ! { ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, unit.ch, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! } ! // LIST OPERATOR: ! // [...] | [^...] ! else if ((unit.ch == '[') && !(unit.bk || quot)) ! { ! // Create a new RETokenOneOf ! ParseCharClassResult result = ! parseCharClass (subIndex, pattern, index, pLength, cflags, ! syntax, 0); ! addToken (currentToken); ! currentToken = result.token; ! index = result.index; ! } ! // SUBEXPRESSIONS ! // (...) | \(...\) depending on RE_NO_BK_PARENS ! else if ((unit.ch == '(') ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))) ! { ! boolean pure = false; ! boolean comment = false; ! boolean lookAhead = false; ! boolean lookBehind = false; ! boolean independent = false; ! boolean negativelh = false; ! boolean negativelb = false; ! if ((index + 1 < pLength) && (pattern[index] == '?')) ! { ! switch (pattern[index + 1]) ! { ! case '!': ! if (syntax.get (RESyntax.RE_LOOKAHEAD)) ! { ! pure = true; ! negativelh = true; ! lookAhead = true; ! index += 2; ! } ! break; ! case '=': ! if (syntax.get (RESyntax.RE_LOOKAHEAD)) ! { ! pure = true; ! lookAhead = true; ! index += 2; ! } ! break; ! case '<': ! // We assume that if the syntax supports look-ahead, ! // it also supports look-behind. ! if (syntax.get (RESyntax.RE_LOOKAHEAD)) ! { ! index++; ! switch (pattern[index + 1]) ! { ! case '!': ! pure = true; ! negativelb = true; ! lookBehind = true; ! index += 2; ! break; ! case '=': ! pure = true; ! lookBehind = true; ! index += 2; ! } ! } ! break; ! case '>': ! // We assume that if the syntax supports look-ahead, ! // it also supports independent group. ! if (syntax.get (RESyntax.RE_LOOKAHEAD)) ! { ! pure = true; ! independent = true; ! index += 2; ! } ! break; ! case 'i': ! case 'd': ! case 'm': ! case 's': ! case 'u': ! case 'x': ! case '-': ! if (!syntax.get (RESyntax.RE_EMBEDDED_FLAGS)) ! break; ! // Set or reset syntax flags. ! int flagIndex = index + 1; ! int endFlag = -1; ! RESyntax newSyntax = new RESyntax (syntax); ! int newCflags = cflags; ! boolean negate = false; ! while (flagIndex < pLength && endFlag < 0) ! { ! switch (pattern[flagIndex]) ! { ! case 'i': ! if (negate) ! newCflags &= ~REG_ICASE; ! else ! newCflags |= REG_ICASE; ! flagIndex++; ! break; ! case 'd': ! if (negate) ! newSyntax.setLineSeparator (RESyntax. ! DEFAULT_LINE_SEPARATOR); ! else ! newSyntax.setLineSeparator ("\n"); ! flagIndex++; ! break; ! case 'm': ! if (negate) ! newCflags &= ~REG_MULTILINE; ! else ! newCflags |= REG_MULTILINE; ! flagIndex++; ! break; ! case 's': ! if (negate) ! newCflags &= ~REG_DOT_NEWLINE; ! else ! newCflags |= REG_DOT_NEWLINE; ! flagIndex++; ! break; ! case 'u': ! if (negate) ! newCflags |= REG_ICASE_USASCII; ! else ! newCflags &= ~REG_ICASE_USASCII; ! flagIndex++; ! break; ! case 'x': ! if (negate) ! newCflags &= ~REG_X_COMMENTS; ! else ! newCflags |= REG_X_COMMENTS; ! flagIndex++; ! break; ! case '-': ! negate = true; ! flagIndex++; ! break; ! case ':': ! case ')': ! endFlag = pattern[flagIndex]; ! break; ! default: ! throw new ! REException (getLocalizedMessage ! ("repeat.no.token"), ! REException.REG_BADRPT, index); ! } ! } ! if (endFlag == ')') ! { ! syntax = newSyntax; ! cflags = newCflags; ! insens = ((cflags & REG_ICASE) > 0); ! insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0); ! // This can be treated as though it were a comment. ! comment = true; ! index = flagIndex - 1; ! break; ! } ! if (endFlag == ':') ! { ! savedSyntax = syntax; ! savedCflags = cflags; ! flagsSaved = true; ! syntax = newSyntax; ! cflags = newCflags; ! insens = ((cflags & REG_ICASE) > 0); ! insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0); ! index = flagIndex - 1; ! // Fall through to the next case. ! } ! else ! { ! throw new ! REException (getLocalizedMessage ! ("unmatched.paren"), ! REException.REG_ESUBREG, index); ! } ! case ':': ! if (syntax.get (RESyntax.RE_PURE_GROUPING)) ! { ! pure = true; ! index += 2; ! } ! break; ! case '#': ! if (syntax.get (RESyntax.RE_COMMENTS)) ! { ! comment = true; ! } ! break; ! default: ! throw new ! REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); ! } ! } ! if (index >= pLength) ! { ! throw new ! REException (getLocalizedMessage ("unmatched.paren"), ! REException.REG_ESUBREG, index); ! } ! // find end of subexpression ! int endIndex = index; ! int nextIndex = index; ! int nested = 0; ! while (((nextIndex = ! getCharUnit (pattern, endIndex, unit, false)) > 0) ! && !(nested == 0 && (unit.ch == ')') ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk ! || quot)))) ! { ! if ((endIndex = nextIndex) >= pLength) ! throw new ! REException (getLocalizedMessage ("subexpr.no.end"), ! REException.REG_ESUBREG, nextIndex); ! else ! if ((unit.ch == '[') && !(unit.bk || quot)) ! { ! // I hate to do something similar to the LIST OPERATOR matters ! // above, but ... ! int listIndex = nextIndex; ! if (listIndex < pLength && pattern[listIndex] == '^') ! listIndex++; ! if (listIndex < pLength && pattern[listIndex] == ']') ! listIndex++; ! int listEndIndex = -1; ! int listNest = 0; ! while (listIndex < pLength && listEndIndex < 0) ! { ! switch (pattern[listIndex++]) ! { ! case '\\': ! listIndex++; ! break; ! case '[': ! // Sun's API document says that regexp like "[a-d[m-p]]" ! // is legal. Even something like "[[[^]]]]" is accepted. ! listNest++; ! if (listIndex < pLength ! && pattern[listIndex] == '^') ! listIndex++; ! if (listIndex < pLength ! && pattern[listIndex] == ']') ! listIndex++; ! break; ! case ']': ! if (listNest == 0) ! listEndIndex = listIndex; ! listNest--; ! break; ! } ! } ! if (listEndIndex >= 0) ! { ! nextIndex = listEndIndex; ! if ((endIndex = nextIndex) >= pLength) ! throw new ! REException (getLocalizedMessage ("subexpr.no.end"), ! REException.REG_ESUBREG, nextIndex); ! else ! continue; ! } ! throw new ! REException (getLocalizedMessage ("subexpr.no.end"), ! REException.REG_ESUBREG, nextIndex); ! } ! else if (unit.ch == '(' ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk ! || quot))) ! nested++; ! else if (unit.ch == ')' ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk ! || quot))) ! nested--; ! } ! // endIndex is now position at a ')','\)' ! // nextIndex is end of string or position after ')' or '\)' ! if (comment) ! index = nextIndex; ! else ! { // not a comment ! // create RE subexpression as token. ! addToken (currentToken); ! if (!pure) ! { ! numSubs++; ! } ! int useIndex = (pure || lookAhead || lookBehind ! || independent) ? 0 : nextSub + numSubs; ! currentToken = ! new RE (String.valueOf (pattern, index, endIndex - index). ! toCharArray (), cflags, syntax, useIndex, ! nextSub + numSubs); ! numSubs += ((RE) currentToken).getNumSubs (); ! if (lookAhead) ! { ! currentToken = ! new RETokenLookAhead (currentToken, negativelh); ! } ! else if (lookBehind) ! { ! currentToken = ! new RETokenLookBehind (currentToken, negativelb); ! } ! else if (independent) ! { ! currentToken = new RETokenIndependent (currentToken); ! } ! index = nextIndex; ! if (flagsSaved) ! { ! syntax = savedSyntax; ! cflags = savedCflags; ! insens = ((cflags & REG_ICASE) > 0); ! insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0); ! flagsSaved = false; ! } ! } // not a comment ! } // subexpression ! // UNMATCHED RIGHT PAREN ! // ) or \) throw exception if ! // !syntax.get(RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD) ! else if (!syntax.get (RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD) ! && ((unit.ch == ')') ! && (syntax. ! get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))) ! { ! throw new REException (getLocalizedMessage ("unmatched.paren"), ! REException.REG_EPAREN, index); ! } ! // START OF LINE OPERATOR ! // ^ ! else if ((unit.ch == '^') && !(unit.bk || quot)) ! { ! addToken (currentToken); ! currentToken = null; ! RETokenStart token = null; ! if ((cflags & REG_MULTILINE) > 0) ! { ! String sep = syntax.getLineSeparator (); ! if (sep == null) ! { ! token = new RETokenStart (subIndex, null, true); ! } ! else ! { ! token = new RETokenStart (subIndex, sep); ! } ! } ! else ! { ! token = new RETokenStart (subIndex, null); ! } ! addToken (token); ! } ! // END OF LINE OPERATOR ! // $ ! else if ((unit.ch == '$') && !(unit.bk || quot)) ! { ! addToken (currentToken); ! currentToken = null; ! RETokenEnd token = null; ! if ((cflags & REG_MULTILINE) > 0) ! { ! String sep = syntax.getLineSeparator (); ! if (sep == null) ! { ! token = new RETokenEnd (subIndex, null, true); ! } ! else ! { ! token = new RETokenEnd (subIndex, sep); ! } ! } ! else ! { ! token = new RETokenEnd (subIndex, null); ! } ! addToken (token); ! } ! // MATCH-ANY-CHARACTER OPERATOR (except possibly newline and null) ! // . ! else if ((unit.ch == '.') && !(unit.bk || quot)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenAny (subIndex, syntax.get (RESyntax.RE_DOT_NEWLINE) ! || ((cflags & REG_DOT_NEWLINE) > 0), ! syntax.get (RESyntax.RE_DOT_NOT_NULL)); ! } ! // ZERO-OR-MORE REPEAT OPERATOR ! // * ! // ! // This method used to check "repeat.empty.token" to avoid such regexp ! // as "(a*)*", but now "repeat.empty.token" is allowed. ! else if ((unit.ch == '*') && !(unit.bk || quot)) ! { ! if (currentToken == null) ! throw new REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); ! if (currentToken instanceof RETokenRepeated) ! throw new REException (getLocalizedMessage ("repeat.chained"), ! REException.REG_BADRPT, index); ! if (currentToken instanceof RETokenWordBoundary ! || currentToken instanceof RETokenWordBoundary) ! throw new REException (getLocalizedMessage ("repeat.assertion"), ! REException.REG_BADRPT, index); ! currentToken = ! setRepeated (currentToken, 0, Integer.MAX_VALUE, index); ! } ! // ONE-OR-MORE REPEAT OPERATOR / POSSESSIVE MATCHING OPERATOR ! // + | \+ depending on RE_BK_PLUS_QM ! // not available if RE_LIMITED_OPS is set ! // ! // This method used to check "repeat.empty.token" to avoid such regexp ! // as "(a*)+", but now "repeat.empty.token" is allowed. ! else if ((unit.ch == '+') && !syntax.get (RESyntax.RE_LIMITED_OPS) ! && (!syntax. ! get (RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) ! { ! if (currentToken == null) ! throw new REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); ! // Check for possessive matching on RETokenRepeated ! if (currentToken instanceof RETokenRepeated) ! { ! RETokenRepeated tokenRep = (RETokenRepeated) currentToken; ! if (syntax.get (RESyntax.RE_POSSESSIVE_OPS) ! && !tokenRep.isPossessive () && !tokenRep.isStingy ()) ! tokenRep.makePossessive (); ! else ! throw new ! REException (getLocalizedMessage ("repeat.chained"), ! REException.REG_BADRPT, index); ! } ! else if (currentToken instanceof RETokenWordBoundary ! || currentToken instanceof RETokenWordBoundary) ! throw new REException (getLocalizedMessage ("repeat.assertion"), ! REException.REG_BADRPT, index); ! else ! currentToken = ! setRepeated (currentToken, 1, Integer.MAX_VALUE, index); ! } ! // ZERO-OR-ONE REPEAT OPERATOR / STINGY MATCHING OPERATOR ! // ? | \? depending on RE_BK_PLUS_QM ! // not available if RE_LIMITED_OPS is set ! // stingy matching if RE_STINGY_OPS is set and it follows a quantifier ! else if ((unit.ch == '?') && !syntax.get (RESyntax.RE_LIMITED_OPS) ! && (!syntax. ! get (RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) ! { ! if (currentToken == null) ! throw new REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); ! // Check for stingy matching on RETokenRepeated ! if (currentToken instanceof RETokenRepeated) ! { ! RETokenRepeated tokenRep = (RETokenRepeated) currentToken; ! if (syntax.get (RESyntax.RE_STINGY_OPS) ! && !tokenRep.isStingy () && !tokenRep.isPossessive ()) ! tokenRep.makeStingy (); ! else ! throw new ! REException (getLocalizedMessage ("repeat.chained"), ! REException.REG_BADRPT, index); ! } ! else if (currentToken instanceof RETokenWordBoundary ! || currentToken instanceof RETokenWordBoundary) ! throw new REException (getLocalizedMessage ("repeat.assertion"), ! REException.REG_BADRPT, index); ! else ! currentToken = setRepeated (currentToken, 0, 1, index); ! } ! // OCTAL CHARACTER ! // \0377 ! else if (unit.bk && (unit.ch == '0') ! && syntax.get (RESyntax.RE_OCTAL_CHAR)) ! { ! CharExpression ce = ! getCharExpression (pattern, index - 2, pLength, syntax); ! if (ce == null) ! throw new REException ("invalid octal character", ! REException.REG_ESCAPE, index); ! index = index - 2 + ce.len; ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, ce.ch, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // BACKREFERENCE OPERATOR ! // \1 \2 ... \9 and \10 \11 \12 ... ! // not available if RE_NO_BK_REFS is set ! // Perl recognizes \10, \11, and so on only if enough number of ! // parentheses have opened before it, otherwise they are treated ! // as aliases of \010, \011, ... (octal characters). In case of ! // Sun's JDK, octal character expression must always begin with \0. ! // We will do as JDK does. But FIXME, take a look at "(a)(b)\29". ! // JDK treats \2 as a back reference to the 2nd group because ! // there are only two groups. But in our poor implementation, ! // we cannot help but treat \29 as a back reference to the 29th group. ! else if (unit.bk && Character.isDigit (unit.ch) ! && !syntax.get (RESyntax.RE_NO_BK_REFS)) ! { ! addToken (currentToken); ! int numBegin = index - 1; ! int numEnd = pLength; ! for (int i = index; i < pLength; i++) ! { ! if (!Character.isDigit (pattern[i])) ! { ! numEnd = i; ! break; ! } ! } ! int num = parseInt (pattern, numBegin, numEnd - numBegin, 10); ! currentToken = new RETokenBackRef (subIndex, num, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! index = numEnd; ! } ! // START OF STRING OPERATOR ! // \A if RE_STRING_ANCHORS is set ! else if (unit.bk && (unit.ch == 'A') ! && syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = new RETokenStart (subIndex, null); ! } ! // WORD BREAK OPERATOR ! // \b if ???? ! else if (unit.bk && (unit.ch == 'b') ! && syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenWordBoundary (subIndex, ! RETokenWordBoundary. ! BEGIN | RETokenWordBoundary.END, ! false); ! } ! // WORD BEGIN OPERATOR ! // \< if ???? ! else if (unit.bk && (unit.ch == '<')) ! { ! addToken (currentToken); ! currentToken = ! new RETokenWordBoundary (subIndex, RETokenWordBoundary.BEGIN, ! false); ! } ! // WORD END OPERATOR ! // \> if ???? ! else if (unit.bk && (unit.ch == '>')) ! { ! addToken (currentToken); ! currentToken = ! new RETokenWordBoundary (subIndex, RETokenWordBoundary.END, ! false); ! } ! // NON-WORD BREAK OPERATOR ! // \B if ???? ! else if (unit.bk && (unit.ch == 'B') ! && syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenWordBoundary (subIndex, ! RETokenWordBoundary. ! BEGIN | RETokenWordBoundary.END, true); ! } ! // DIGIT OPERATOR ! // \d if RE_CHAR_CLASS_ESCAPES is set ! else if (unit.bk && (unit.ch == 'd') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.DIGIT, insens, false); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NON-DIGIT OPERATOR ! // \D ! else if (unit.bk && (unit.ch == 'D') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.DIGIT, insens, true); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NEWLINE ESCAPE ! // \n ! else if (unit.bk && (unit.ch == 'n')) ! { ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, '\n', false); ! } ! // RETURN ESCAPE ! // \r ! else if (unit.bk && (unit.ch == 'r')) ! { ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, '\r', false); ! } ! // WHITESPACE OPERATOR ! // \s if RE_CHAR_CLASS_ESCAPES is set ! else if (unit.bk && (unit.ch == 's') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.SPACE, insens, false); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NON-WHITESPACE OPERATOR ! // \S ! else if (unit.bk && (unit.ch == 'S') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.SPACE, insens, true); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // TAB ESCAPE ! // \t ! else if (unit.bk && (unit.ch == 't')) ! { ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, '\t', false); ! } ! // ALPHANUMERIC OPERATOR ! // \w ! else if (unit.bk && (unit.ch == 'w') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.ALNUM, insens, false); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NON-ALPHANUMERIC OPERATOR ! // \W ! else if (unit.bk && (unit.ch == 'W') ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES)) ! { ! addToken (currentToken); ! currentToken = ! new RETokenPOSIX (subIndex, RETokenPOSIX.ALNUM, insens, true); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // END OF STRING OPERATOR ! // \Z, \z ! // FIXME: \Z and \z are different in that if the input string ! // ends with a line terminator, \Z matches the position before ! // the final terminator. This special behavior of \Z is yet ! // to be implemented. ! else if (unit.bk && (unit.ch == 'Z' || unit.ch == 'z') && ! syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = new RETokenEnd (subIndex, null); ! } ! // HEX CHARACTER, UNICODE CHARACTER ! // \x1B, \u1234 ! else ! if ((unit.bk && (unit.ch == 'x') ! && syntax.get (RESyntax.RE_HEX_CHAR)) || (unit.bk ! && (unit.ch == 'u') ! && syntax. ! get (RESyntax. ! RE_UNICODE_CHAR))) ! { ! CharExpression ce = ! getCharExpression (pattern, index - 2, pLength, syntax); ! if (ce == null) ! throw new REException ("invalid hex character", ! REException.REG_ESCAPE, index); ! index = index - 2 + ce.len; ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, ce.ch, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // NAMED PROPERTY ! // \p{prop}, \P{prop} ! else ! if ((unit.bk && (unit.ch == 'p') ! && syntax.get (RESyntax.RE_NAMED_PROPERTY)) || (unit.bk ! && (unit.ch == ! 'P') ! && syntax. ! get (RESyntax. ! RE_NAMED_PROPERTY))) ! { ! NamedProperty np = getNamedProperty (pattern, index - 2, pLength); ! if (np == null) ! throw new REException ("invalid escape sequence", ! REException.REG_ESCAPE, index); ! index = index - 2 + np.len; ! addToken (currentToken); ! currentToken = ! getRETokenNamedProperty (subIndex, np, insens, index); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! // END OF PREVIOUS MATCH ! // \G ! else if (unit.bk && (unit.ch == 'G') && ! syntax.get (RESyntax.RE_STRING_ANCHORS)) ! { ! addToken (currentToken); ! currentToken = new RETokenEndOfPreviousMatch (subIndex); ! } ! // NON-SPECIAL CHARACTER (or escape to make literal) ! // c | \* for example ! else ! { // not a special character ! addToken (currentToken); ! currentToken = new RETokenChar (subIndex, unit.ch, insens); ! if (insensUSASCII) ! currentToken.unicodeAware = false; ! } ! } // end while // Add final buffered token and an EndSub marker addToken (currentToken); if (branches != null) { ! branches. ! add (new ! RE (firstToken, lastToken, numSubs, subIndex, minimumLength, ! maximumLength)); ! branches.trimToSize (); // compact the Vector ! minimumLength = 0; ! maximumLength = 0; ! firstToken = lastToken = null; ! addToken (new RETokenOneOf (subIndex, branches, false)); } else addToken (new RETokenEndSub (subIndex)); *************** public class RE extends REToken *** 1403,1413 **** * @param syntax Syntax used to parse the pattern. */ private static ParseCharClassResult parseCharClass (int subIndex, ! char[]pattern, ! int index, int pLength, ! int cflags, ! RESyntax syntax, ! int pflags) throws REException { --- 1403,1413 ---- * @param syntax Syntax used to parse the pattern. */ private static ParseCharClassResult parseCharClass (int subIndex, ! char[]pattern, ! int index, int pLength, ! int cflags, ! RESyntax syntax, ! int pflags) throws REException { *************** public class RE extends REToken *** 1425,1680 **** boolean lastCharIsSet = false; if (index == pLength) throw new REException (getLocalizedMessage ("unmatched.bracket"), ! REException.REG_EBRACK, index); // Check for initial caret, negation if ((ch = pattern[index]) == '^') { ! negative = true; ! if (++index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); ! ch = pattern[index]; } // Check for leading right bracket literal if (ch == ']') { ! lastChar = ch; ! lastCharIsSet = true; ! if (++index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); } while ((ch = pattern[index++]) != ']') { ! if ((ch == '-') && (lastCharIsSet)) ! { ! if (index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); ! if ((ch = pattern[index]) == ']') ! { ! RETokenChar t = new RETokenChar (subIndex, lastChar, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! lastChar = '-'; ! } ! else ! { ! if ((ch == '\\') ! && syntax.get (RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS)) ! { ! CharExpression ce = ! getCharExpression (pattern, index, pLength, syntax); ! if (ce == null) ! throw new REException ("invalid escape sequence", ! REException.REG_ESCAPE, index); ! ch = ce.ch; ! index = index + ce.len - 1; ! } ! RETokenRange t = ! new RETokenRange (subIndex, lastChar, ch, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! lastChar = 0; ! lastCharIsSet = false; ! index++; ! } ! } ! else if ((ch == '\\') ! && syntax.get (RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS)) ! { ! if (index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); ! int posixID = -1; ! boolean negate = false; ! char asciiEsc = 0; ! boolean asciiEscIsSet = false; ! NamedProperty np = null; ! if (("dswDSW".indexOf (pattern[index]) != -1) ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESC_IN_LISTS)) ! { ! switch (pattern[index]) ! { ! case 'D': ! negate = true; ! case 'd': ! posixID = RETokenPOSIX.DIGIT; ! break; ! case 'S': ! negate = true; ! case 's': ! posixID = RETokenPOSIX.SPACE; ! break; ! case 'W': ! negate = true; ! case 'w': ! posixID = RETokenPOSIX.ALNUM; ! break; ! } ! } ! if (("pP".indexOf (pattern[index]) != -1) ! && syntax.get (RESyntax.RE_NAMED_PROPERTY)) ! { ! np = getNamedProperty (pattern, index - 1, pLength); ! if (np == null) ! throw new REException ("invalid escape sequence", ! REException.REG_ESCAPE, index); ! index = index - 1 + np.len - 1; ! } ! else ! { ! CharExpression ce = ! getCharExpression (pattern, index - 1, pLength, syntax); ! if (ce == null) ! throw new REException ("invalid escape sequence", ! REException.REG_ESCAPE, index); ! asciiEsc = ce.ch; ! asciiEscIsSet = true; ! index = index - 1 + ce.len - 1; ! } ! if (lastCharIsSet) ! { ! RETokenChar t = new RETokenChar (subIndex, lastChar, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! if (posixID != -1) ! { ! RETokenPOSIX t = ! new RETokenPOSIX (subIndex, posixID, insens, negate); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! else if (np != null) ! { ! RETokenNamedProperty t = ! getRETokenNamedProperty (subIndex, np, insens, index); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! else if (asciiEscIsSet) ! { ! lastChar = asciiEsc; ! lastCharIsSet = true; ! } ! else ! { ! lastChar = pattern[index]; ! lastCharIsSet = true; ! } ! ++index; ! } ! else if ((ch == '[') && (syntax.get (RESyntax.RE_CHAR_CLASSES)) ! && (index < pLength) && (pattern[index] == ':')) ! { ! CPStringBuilder posixSet = new CPStringBuilder (); ! index = getPosixSet (pattern, index + 1, posixSet); ! int posixId = RETokenPOSIX.intValue (posixSet.toString ()); ! if (posixId != -1) ! { ! RETokenPOSIX t = ! new RETokenPOSIX (subIndex, posixId, insens, false); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! } ! else if ((ch == '[') && (syntax.get (RESyntax.RE_NESTED_CHARCLASS))) ! { ! ParseCharClassResult result = ! parseCharClass (subIndex, pattern, index, pLength, cflags, ! syntax, 0); ! addition.add (result.token); ! addition.add ("|"); ! index = result.index; ! } ! else if ((ch == '&') && ! (syntax.get (RESyntax.RE_NESTED_CHARCLASS)) && ! (index < pLength) && (pattern[index] == '&')) ! { ! if (returnAtAndOperator) ! { ! ParseCharClassResult result = new ParseCharClassResult (); ! options.trimToSize (); ! if (additionAndAppeared) ! addition.add ("&"); ! if (addition.size () == 0) ! addition = null; ! result.token = new RETokenOneOf (subIndex, ! options, addition, negative); ! result.index = index - 1; ! result.returnAtAndOperator = true; ! return result; ! } ! // The precedence of the operator "&&" is the lowest. ! // So we postpone adding "&" until other elements ! // are added. And we insert Boolean.FALSE at the ! // beginning of the list of tokens following "&&". ! // So, "&&[a-b][k-m]" will be stored in the Vecter ! // addition in this order: ! // Boolean.FALSE, [a-b], "|", [k-m], "|", "&" ! if (additionAndAppeared) ! addition.add ("&"); ! addition.add (Boolean.FALSE); ! additionAndAppeared = true; ! // The part on which "&&" operates may be either ! // (1) explicitly enclosed by [] ! // or ! // (2) not enclosed by [] and terminated by the ! // next "&&" or the end of the character list. ! // Let the preceding else if block do the case (1). ! // We must do something in case of (2). ! if ((index + 1 < pLength) && (pattern[index + 1] != '[')) ! { ! ParseCharClassResult result = ! parseCharClass (subIndex, pattern, index + 1, pLength, ! cflags, syntax, ! RETURN_AT_AND); ! addition.add (result.token); ! addition.add ("|"); ! // If the method returned at the next "&&", it is OK. ! // Otherwise we have eaten the mark of the end of this ! // character list "]". In this case we must give back ! // the end mark. ! index = (result.returnAtAndOperator ? ! result.index : result.index - 1); ! } ! } ! else ! { ! if (lastCharIsSet) ! { ! RETokenChar t = new RETokenChar (subIndex, lastChar, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! lastChar = ch; ! lastCharIsSet = true; ! } ! if (index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); ! } // while in list // Out of list, index is one past ']' if (lastCharIsSet) { ! RETokenChar t = new RETokenChar (subIndex, lastChar, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); } ParseCharClassResult result = new ParseCharClassResult (); --- 1425,1680 ---- boolean lastCharIsSet = false; if (index == pLength) throw new REException (getLocalizedMessage ("unmatched.bracket"), ! REException.REG_EBRACK, index); // Check for initial caret, negation if ((ch = pattern[index]) == '^') { ! negative = true; ! if (++index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); ! ch = pattern[index]; } // Check for leading right bracket literal if (ch == ']') { ! lastChar = ch; ! lastCharIsSet = true; ! if (++index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); } while ((ch = pattern[index++]) != ']') { ! if ((ch == '-') && (lastCharIsSet)) ! { ! if (index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); ! if ((ch = pattern[index]) == ']') ! { ! RETokenChar t = new RETokenChar (subIndex, lastChar, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! lastChar = '-'; ! } ! else ! { ! if ((ch == '\\') ! && syntax.get (RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS)) ! { ! CharExpression ce = ! getCharExpression (pattern, index, pLength, syntax); ! if (ce == null) ! throw new REException ("invalid escape sequence", ! REException.REG_ESCAPE, index); ! ch = ce.ch; ! index = index + ce.len - 1; ! } ! RETokenRange t = ! new RETokenRange (subIndex, lastChar, ch, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! lastChar = 0; ! lastCharIsSet = false; ! index++; ! } ! } ! else if ((ch == '\\') ! && syntax.get (RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS)) ! { ! if (index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); ! int posixID = -1; ! boolean negate = false; ! char asciiEsc = 0; ! boolean asciiEscIsSet = false; ! NamedProperty np = null; ! if (("dswDSW".indexOf (pattern[index]) != -1) ! && syntax.get (RESyntax.RE_CHAR_CLASS_ESC_IN_LISTS)) ! { ! switch (pattern[index]) ! { ! case 'D': ! negate = true; ! case 'd': ! posixID = RETokenPOSIX.DIGIT; ! break; ! case 'S': ! negate = true; ! case 's': ! posixID = RETokenPOSIX.SPACE; ! break; ! case 'W': ! negate = true; ! case 'w': ! posixID = RETokenPOSIX.ALNUM; ! break; ! } ! } ! if (("pP".indexOf (pattern[index]) != -1) ! && syntax.get (RESyntax.RE_NAMED_PROPERTY)) ! { ! np = getNamedProperty (pattern, index - 1, pLength); ! if (np == null) ! throw new REException ("invalid escape sequence", ! REException.REG_ESCAPE, index); ! index = index - 1 + np.len - 1; ! } ! else ! { ! CharExpression ce = ! getCharExpression (pattern, index - 1, pLength, syntax); ! if (ce == null) ! throw new REException ("invalid escape sequence", ! REException.REG_ESCAPE, index); ! asciiEsc = ce.ch; ! asciiEscIsSet = true; ! index = index - 1 + ce.len - 1; ! } ! if (lastCharIsSet) ! { ! RETokenChar t = new RETokenChar (subIndex, lastChar, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! if (posixID != -1) ! { ! RETokenPOSIX t = ! new RETokenPOSIX (subIndex, posixID, insens, negate); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! else if (np != null) ! { ! RETokenNamedProperty t = ! getRETokenNamedProperty (subIndex, np, insens, index); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! else if (asciiEscIsSet) ! { ! lastChar = asciiEsc; ! lastCharIsSet = true; ! } ! else ! { ! lastChar = pattern[index]; ! lastCharIsSet = true; ! } ! ++index; ! } ! else if ((ch == '[') && (syntax.get (RESyntax.RE_CHAR_CLASSES)) ! && (index < pLength) && (pattern[index] == ':')) ! { ! CPStringBuilder posixSet = new CPStringBuilder (); ! index = getPosixSet (pattern, index + 1, posixSet); ! int posixId = RETokenPOSIX.intValue (posixSet.toString ()); ! if (posixId != -1) ! { ! RETokenPOSIX t = ! new RETokenPOSIX (subIndex, posixId, insens, false); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! } ! else if ((ch == '[') && (syntax.get (RESyntax.RE_NESTED_CHARCLASS))) ! { ! ParseCharClassResult result = ! parseCharClass (subIndex, pattern, index, pLength, cflags, ! syntax, 0); ! addition.add (result.token); ! addition.add ("|"); ! index = result.index; ! } ! else if ((ch == '&') && ! (syntax.get (RESyntax.RE_NESTED_CHARCLASS)) && ! (index < pLength) && (pattern[index] == '&')) ! { ! if (returnAtAndOperator) ! { ! ParseCharClassResult result = new ParseCharClassResult (); ! options.trimToSize (); ! if (additionAndAppeared) ! addition.add ("&"); ! if (addition.size () == 0) ! addition = null; ! result.token = new RETokenOneOf (subIndex, ! options, addition, negative); ! result.index = index - 1; ! result.returnAtAndOperator = true; ! return result; ! } ! // The precedence of the operator "&&" is the lowest. ! // So we postpone adding "&" until other elements ! // are added. And we insert Boolean.FALSE at the ! // beginning of the list of tokens following "&&". ! // So, "&&[a-b][k-m]" will be stored in the Vecter ! // addition in this order: ! // Boolean.FALSE, [a-b], "|", [k-m], "|", "&" ! if (additionAndAppeared) ! addition.add ("&"); ! addition.add (Boolean.FALSE); ! additionAndAppeared = true; ! // The part on which "&&" operates may be either ! // (1) explicitly enclosed by [] ! // or ! // (2) not enclosed by [] and terminated by the ! // next "&&" or the end of the character list. ! // Let the preceding else if block do the case (1). ! // We must do something in case of (2). ! if ((index + 1 < pLength) && (pattern[index + 1] != '[')) ! { ! ParseCharClassResult result = ! parseCharClass (subIndex, pattern, index + 1, pLength, ! cflags, syntax, ! RETURN_AT_AND); ! addition.add (result.token); ! addition.add ("|"); ! // If the method returned at the next "&&", it is OK. ! // Otherwise we have eaten the mark of the end of this ! // character list "]". In this case we must give back ! // the end mark. ! index = (result.returnAtAndOperator ? ! result.index : result.index - 1); ! } ! } ! else ! { ! if (lastCharIsSet) ! { ! RETokenChar t = new RETokenChar (subIndex, lastChar, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); ! } ! lastChar = ch; ! lastCharIsSet = true; ! } ! if (index == pLength) ! throw new REException (getLocalizedMessage ("class.no.end"), ! REException.REG_EBRACK, index); ! } // while in list // Out of list, index is one past ']' if (lastCharIsSet) { ! RETokenChar t = new RETokenChar (subIndex, lastChar, insens); ! if (insensUSASCII) ! t.unicodeAware = false; ! options.add (t); } ParseCharClassResult result = new ParseCharClassResult (); *************** public class RE extends REToken *** 1690,1706 **** } private static int getCharUnit (char[]input, int index, CharUnit unit, ! boolean quot) throws REException { unit.ch = input[index++]; unit.bk = (unit.ch == '\\' ! && (!quot || index >= input.length || input[index] == 'E')); if (unit.bk) if (index < input.length) ! unit.ch = input[index++]; else ! throw new REException (getLocalizedMessage ("ends.with.backslash"), ! REException.REG_ESCAPE, index); return index; } --- 1690,1706 ---- } private static int getCharUnit (char[]input, int index, CharUnit unit, ! boolean quot) throws REException { unit.ch = input[index++]; unit.bk = (unit.ch == '\\' ! && (!quot || index >= input.length || input[index] == 'E')); if (unit.bk) if (index < input.length) ! unit.ch = input[index++]; else ! throw new REException (getLocalizedMessage ("ends.with.backslash"), ! REException.REG_ESCAPE, index); return index; } *************** public class RE extends REToken *** 1709,1715 **** int ret = 0; for (int i = pos; i < pos + len; i++) { ! ret = ret * radix + Character.digit (input[i], radix); } return ret; } --- 1709,1715 ---- int ret = 0; for (int i = pos; i < pos + len; i++) { ! ret = ret * radix + Character.digit (input[i], radix); } return ret; } *************** public class RE extends REToken *** 1736,1827 **** } private static CharExpression getCharExpression (char[]input, int pos, ! int lim, RESyntax syntax) { CharExpression ce = new CharExpression (); char c = input[pos]; if (c == '\\') { ! if (pos + 1 >= lim) ! return null; ! c = input[pos + 1]; ! switch (c) ! { ! case 't': ! ce.ch = '\t'; ! ce.len = 2; ! break; ! case 'n': ! ce.ch = '\n'; ! ce.len = 2; ! break; ! case 'r': ! ce.ch = '\r'; ! ce.len = 2; ! break; ! case 'x': ! case 'u': ! if ((c == 'x' && syntax.get (RESyntax.RE_HEX_CHAR)) || ! (c == 'u' && syntax.get (RESyntax.RE_UNICODE_CHAR))) ! { ! int l = 0; ! int expectedLength = (c == 'x' ? 2 : 4); ! for (int i = pos + 2; i < pos + 2 + expectedLength; i++) ! { ! if (i >= lim) ! break; ! if (!((input[i] >= '0' && input[i] <= '9') || ! (input[i] >= 'A' && input[i] <= 'F') || ! (input[i] >= 'a' && input[i] <= 'f'))) ! break; ! l++; ! } ! if (l != expectedLength) ! return null; ! ce.ch = (char) (parseInt (input, pos + 2, l, 16)); ! ce.len = l + 2; ! } ! else ! { ! ce.ch = c; ! ce.len = 2; ! } ! break; ! case '0': ! if (syntax.get (RESyntax.RE_OCTAL_CHAR)) ! { ! int l = 0; ! for (int i = pos + 2; i < pos + 2 + 3; i++) ! { ! if (i >= lim) ! break; ! if (input[i] < '0' || input[i] > '7') ! break; ! l++; ! } ! if (l == 3 && input[pos + 2] > '3') ! l--; ! if (l <= 0) ! return null; ! ce.ch = (char) (parseInt (input, pos + 2, l, 8)); ! ce.len = l + 2; ! } ! else ! { ! ce.ch = c; ! ce.len = 2; ! } ! break; ! default: ! ce.ch = c; ! ce.len = 2; ! break; ! } } else { ! ce.ch = input[pos]; ! ce.len = 1; } ce.expr = new String (input, pos, ce.len); return ce; --- 1736,1827 ---- } private static CharExpression getCharExpression (char[]input, int pos, ! int lim, RESyntax syntax) { CharExpression ce = new CharExpression (); char c = input[pos]; if (c == '\\') { ! if (pos + 1 >= lim) ! return null; ! c = input[pos + 1]; ! switch (c) ! { ! case 't': ! ce.ch = '\t'; ! ce.len = 2; ! break; ! case 'n': ! ce.ch = '\n'; ! ce.len = 2; ! break; ! case 'r': ! ce.ch = '\r'; ! ce.len = 2; ! break; ! case 'x': ! case 'u': ! if ((c == 'x' && syntax.get (RESyntax.RE_HEX_CHAR)) || ! (c == 'u' && syntax.get (RESyntax.RE_UNICODE_CHAR))) ! { ! int l = 0; ! int expectedLength = (c == 'x' ? 2 : 4); ! for (int i = pos + 2; i < pos + 2 + expectedLength; i++) ! { ! if (i >= lim) ! break; ! if (!((input[i] >= '0' && input[i] <= '9') || ! (input[i] >= 'A' && input[i] <= 'F') || ! (input[i] >= 'a' && input[i] <= 'f'))) ! break; ! l++; ! } ! if (l != expectedLength) ! return null; ! ce.ch = (char) (parseInt (input, pos + 2, l, 16)); ! ce.len = l + 2; ! } ! else ! { ! ce.ch = c; ! ce.len = 2; ! } ! break; ! case '0': ! if (syntax.get (RESyntax.RE_OCTAL_CHAR)) ! { ! int l = 0; ! for (int i = pos + 2; i < pos + 2 + 3; i++) ! { ! if (i >= lim) ! break; ! if (input[i] < '0' || input[i] > '7') ! break; ! l++; ! } ! if (l == 3 && input[pos + 2] > '3') ! l--; ! if (l <= 0) ! return null; ! ce.ch = (char) (parseInt (input, pos + 2, l, 8)); ! ce.len = l + 2; ! } ! else ! { ! ce.ch = c; ! ce.len = 2; ! } ! break; ! default: ! ce.ch = c; ! ce.len = 2; ! break; ! } } else { ! ce.ch = input[pos]; ! ce.len = 1; } ce.expr = new String (input, pos, ce.len); return ce; *************** public class RE extends REToken *** 1846,1905 **** } private static NamedProperty getNamedProperty (char[]input, int pos, ! int lim) { NamedProperty np = new NamedProperty (); char c = input[pos]; if (c == '\\') { ! if (++pos >= lim) ! return null; ! c = input[pos++]; ! switch (c) ! { ! case 'p': ! np.negate = false; ! break; ! case 'P': ! np.negate = true; ! break; ! default: ! return null; ! } ! c = input[pos++]; ! if (c == '{') ! { ! int p = -1; ! for (int i = pos; i < lim; i++) ! { ! if (input[i] == '}') ! { ! p = i; ! break; ! } ! } ! if (p < 0) ! return null; ! int len = p - pos; ! np.name = new String (input, pos, len); ! np.len = len + 4; ! } ! else ! { ! np.name = new String (input, pos - 1, 1); ! np.len = 3; ! } ! return np; } else return null; } private static RETokenNamedProperty getRETokenNamedProperty (int subIndex, ! NamedProperty ! np, ! boolean insens, ! int index) throws REException { try --- 1846,1905 ---- } private static NamedProperty getNamedProperty (char[]input, int pos, ! int lim) { NamedProperty np = new NamedProperty (); char c = input[pos]; if (c == '\\') { ! if (++pos >= lim) ! return null; ! c = input[pos++]; ! switch (c) ! { ! case 'p': ! np.negate = false; ! break; ! case 'P': ! np.negate = true; ! break; ! default: ! return null; ! } ! c = input[pos++]; ! if (c == '{') ! { ! int p = -1; ! for (int i = pos; i < lim; i++) ! { ! if (input[i] == '}') ! { ! p = i; ! break; ! } ! } ! if (p < 0) ! return null; ! int len = p - pos; ! np.name = new String (input, pos, len); ! np.len = len + 4; ! } ! else ! { ! np.name = new String (input, pos - 1, 1); ! np.len = 3; ! } ! return np; } else return null; } private static RETokenNamedProperty getRETokenNamedProperty (int subIndex, ! NamedProperty ! np, ! boolean insens, ! int index) throws REException { try *************** public class RE extends REToken *** 1953,1970 **** private boolean isMatchImpl (CharIndexed input, int index, int eflags) { ! if (firstToken == null) // Trivial case return (input.charAt (0) == CharIndexed.OUT_OF_BOUNDS); REMatch m = new REMatch (numSubs, index, eflags); if (firstToken.match (input, m)) { ! if (m != null) ! { ! if (input.charAt (m.index) == CharIndexed.OUT_OF_BOUNDS) ! { ! return true; ! } ! } } return false; } --- 1953,1970 ---- private boolean isMatchImpl (CharIndexed input, int index, int eflags) { ! if (firstToken == null) // Trivial case return (input.charAt (0) == CharIndexed.OUT_OF_BOUNDS); REMatch m = new REMatch (numSubs, index, eflags); if (firstToken.match (input, m)) { ! if (m != null) ! { ! if (input.charAt (m.index) == CharIndexed.OUT_OF_BOUNDS) ! { ! return true; ! } ! } } return false; } *************** public class RE extends REToken *** 1984,1993 **** { if (lastToken != null) { ! lastToken.setUncle (uncle); } else ! super.setUncle (uncle); // to deal with empty subexpressions } // Overrides REToken.chain --- 1984,1993 ---- { if (lastToken != null) { ! lastToken.setUncle (uncle); } else ! super.setUncle (uncle); // to deal with empty subexpressions } // Overrides REToken.chain *************** public class RE extends REToken *** 2063,2087 **** // this has been changed since 1.03 to be non-overlapping matches private REMatch[] getAllMatchesImpl (CharIndexed input, int index, ! int eflags) { List < REMatch > all = new ArrayList < REMatch > (); REMatch m = null; while ((m = getMatchImpl (input, index, eflags, null)) != null) { ! all.add (m); ! index = m.getEndIndex (); ! if (m.end[0] == 0) ! { // handle pathological case of zero-length match ! index++; ! input.move (1); ! } ! else ! { ! input.move (m.end[0]); ! } ! if (!input.isValid ()) ! break; } return all.toArray (new REMatch[all.size ()]); } --- 2063,2087 ---- // this has been changed since 1.03 to be non-overlapping matches private REMatch[] getAllMatchesImpl (CharIndexed input, int index, ! int eflags) { List < REMatch > all = new ArrayList < REMatch > (); REMatch m = null; while ((m = getMatchImpl (input, index, eflags, null)) != null) { ! all.add (m); ! index = m.getEndIndex (); ! if (m.end[0] == 0) ! { // handle pathological case of zero-length match ! index++; ! input.move (1); ! } ! else ! { ! input.move (m.end[0]); ! } ! if (!input.isValid ()) ! break; } return all.toArray (new REMatch[all.size ()]); } *************** public class RE extends REToken *** 2092,2098 **** input.setHitEnd (mymatch); if (firstToken == null) { ! return next (input, mymatch); } // Note the start of this subexpression --- 2092,2098 ---- input.setHitEnd (mymatch); if (firstToken == null) { ! return next (input, mymatch); } // Note the start of this subexpression *************** public class RE extends REToken *** 2108,2114 **** boolean b = match (input, mymatch); if (b) { ! return mymatch; } return null; } --- 2108,2114 ---- boolean b = match (input, mymatch); if (b) { ! return mymatch; } return null; } *************** public class RE extends REToken *** 2168,2245 **** * @param buffer The StringBuffer to save pre-match text in. * @return An REMatch instance referencing the match, or null if none. */ public REMatch getMatch (Object input, int index, int eflags, ! CPStringBuilder buffer) { return getMatchImpl (makeCharIndexed (input, index), index, eflags, ! buffer); } REMatch getMatchImpl (CharIndexed input, int anchor, int eflags, ! CPStringBuilder buffer) { boolean tryEntireMatch = ((eflags & REG_TRY_ENTIRE_MATCH) != 0); boolean doMove = ((eflags & REG_FIX_STARTING_POSITION) == 0); RE re = (tryEntireMatch ? (RE) this.clone () : this); if (tryEntireMatch) { ! RETokenEnd reEnd = new RETokenEnd (0, null); ! reEnd.setFake (true); ! re.chain (reEnd); } // Create a new REMatch to hold results REMatch mymatch = new REMatch (numSubs, anchor, eflags); do { ! /* The following potimization is commented out because ! the matching should be tried even if the length of ! input is obviously too short in order that ! java.util.regex.Matcher#hitEnd() may work correctly. ! // Optimization: check if anchor + minimumLength > length ! if (minimumLength == 0 || input.charAt(minimumLength-1) != CharIndexed.OUT_OF_BOUNDS) { ! */ ! if (re.match (input, mymatch)) ! { ! REMatch best = mymatch; ! // We assume that the match that coms first is the best. ! // And the following "The longer, the better" rule has ! // been commented out. The longest is not neccesarily ! // the best. For example, "a" out of "aaa" is the best ! // match for /a+?/. ! /* ! // Find best match of them all to observe leftmost longest ! while ((mymatch = mymatch.next) != null) { ! if (mymatch.index > best.index) { ! best = mymatch; ! } ! } ! */ ! best.end[0] = best.index; ! best.finish (input); ! input.setLastMatch (best); ! return best; ! } ! /* End of the optimization commented out ! } ! */ ! mymatch.clear (++anchor); ! // Append character to buffer if needed ! if (buffer != null && input.charAt (0) != CharIndexed.OUT_OF_BOUNDS) ! { ! buffer.append (input.charAt (0)); ! } ! // java.util.regex.Matcher#hitEnd() requires that the search should ! // be tried at the end of input, so we use move1(1) instead of move(1) } while (doMove && input.move1 (1)); // Special handling at end of input for e.g. "$" if (minimumLength == 0) { ! if (match (input, mymatch)) ! { ! mymatch.finish (input); ! return mymatch; ! } } return null; --- 2168,2245 ---- * @param buffer The StringBuffer to save pre-match text in. * @return An REMatch instance referencing the match, or null if none. */ public REMatch getMatch (Object input, int index, int eflags, ! CPStringBuilder buffer) { return getMatchImpl (makeCharIndexed (input, index), index, eflags, ! buffer); } REMatch getMatchImpl (CharIndexed input, int anchor, int eflags, ! CPStringBuilder buffer) { boolean tryEntireMatch = ((eflags & REG_TRY_ENTIRE_MATCH) != 0); boolean doMove = ((eflags & REG_FIX_STARTING_POSITION) == 0); RE re = (tryEntireMatch ? (RE) this.clone () : this); if (tryEntireMatch) { ! RETokenEnd reEnd = new RETokenEnd (0, null); ! reEnd.setFake (true); ! re.chain (reEnd); } // Create a new REMatch to hold results REMatch mymatch = new REMatch (numSubs, anchor, eflags); do { ! /* The following potimization is commented out because ! the matching should be tried even if the length of ! input is obviously too short in order that ! java.util.regex.Matcher#hitEnd() may work correctly. ! // Optimization: check if anchor + minimumLength > length ! if (minimumLength == 0 || input.charAt(minimumLength-1) != CharIndexed.OUT_OF_BOUNDS) { ! */ ! if (re.match (input, mymatch)) ! { ! REMatch best = mymatch; ! // We assume that the match that coms first is the best. ! // And the following "The longer, the better" rule has ! // been commented out. The longest is not neccesarily ! // the best. For example, "a" out of "aaa" is the best ! // match for /a+?/. ! /* ! // Find best match of them all to observe leftmost longest ! while ((mymatch = mymatch.next) != null) { ! if (mymatch.index > best.index) { ! best = mymatch; ! } ! } ! */ ! best.end[0] = best.index; ! best.finish (input); ! input.setLastMatch (best); ! return best; ! } ! /* End of the optimization commented out ! } ! */ ! mymatch.clear (++anchor); ! // Append character to buffer if needed ! if (buffer != null && input.charAt (0) != CharIndexed.OUT_OF_BOUNDS) ! { ! buffer.append (input.charAt (0)); ! } ! // java.util.regex.Matcher#hitEnd() requires that the search should ! // be tried at the end of input, so we use move1(1) instead of move(1) } while (doMove && input.move1 (1)); // Special handling at end of input for e.g. "$" if (minimumLength == 0) { ! if (match (input, mymatch)) ! { ! mymatch.finish (input); ! return mymatch; ! } } return null; *************** public class RE extends REToken *** 2283,2292 **** * set to the index position specified. */ public REMatchEnumeration getMatchEnumeration (Object input, int index, ! int eflags) { return new REMatchEnumeration (this, makeCharIndexed (input, index), ! index, eflags); } --- 2283,2292 ---- * set to the index position specified. */ public REMatchEnumeration getMatchEnumeration (Object input, int index, ! int eflags) { return new REMatchEnumeration (this, makeCharIndexed (input, index), ! index, eflags); } *************** public class RE extends REToken *** 2307,2313 **** * Substitutes the replacement text for the first match found in the input * beginning at the specified index position. Specifying an index * effectively causes the regular expression engine to throw away the ! * specified number of characters. * * @param input The input text. * @param replace The replacement text, which may contain $x metacharacters (see REMatch.substituteInto). --- 2307,2313 ---- * Substitutes the replacement text for the first match found in the input * beginning at the specified index position. Specifying an index * effectively causes the regular expression engine to throw away the ! * specified number of characters. * * @param input The input text. * @param replace The replacement text, which may contain $x metacharacters (see REMatch.substituteInto). *************** public class RE extends REToken *** 2335,2348 **** * @see REMatch#substituteInto */ public String substitute (Object input, String replace, int index, ! int eflags) { return substituteImpl (makeCharIndexed (input, index), replace, index, ! eflags); } private String substituteImpl (CharIndexed input, String replace, int index, ! int eflags) { CPStringBuilder buffer = new CPStringBuilder (); REMatch m = getMatchImpl (input, index, eflags, buffer); --- 2335,2348 ---- * @see REMatch#substituteInto */ public String substitute (Object input, String replace, int index, ! int eflags) { return substituteImpl (makeCharIndexed (input, index), replace, index, ! eflags); } private String substituteImpl (CharIndexed input, String replace, int index, ! int eflags) { CPStringBuilder buffer = new CPStringBuilder (); REMatch m = getMatchImpl (input, index, eflags, buffer); *************** public class RE extends REToken *** 2351,2367 **** buffer.append (getReplacement (replace, m, eflags)); if (input.move (m.end[0])) { ! do ! { ! buffer.append (input.charAt (0)); ! } ! while (input.move (1)); } return buffer.toString (); } /** ! * Substitutes the replacement text for each non-overlapping match found * in the input text. * * @param input The input text. --- 2351,2367 ---- buffer.append (getReplacement (replace, m, eflags)); if (input.move (m.end[0])) { ! do ! { ! buffer.append (input.charAt (0)); ! } ! while (input.move (1)); } return buffer.toString (); } /** ! * Substitutes the replacement text for each non-overlapping match found * in the input text. * * @param input The input text. *************** public class RE extends REToken *** 2375,2381 **** } /** ! * Substitutes the replacement text for each non-overlapping match found * in the input text, starting at the specified index. * * If the regular expression allows the empty string to match, it will --- 2375,2381 ---- } /** ! * Substitutes the replacement text for each non-overlapping match found * in the input text, starting at the specified index. * * If the regular expression allows the empty string to match, it will *************** public class RE extends REToken *** 2394,2400 **** } /** ! * Substitutes the replacement text for each non-overlapping match found * in the input text, starting at the specified index and using the * specified execution flags. * --- 2394,2400 ---- } /** ! * Substitutes the replacement text for each non-overlapping match found * in the input text, starting at the specified index and using the * specified execution flags. * *************** public class RE extends REToken *** 2407,2441 **** * @see REMatch#substituteInto */ public String substituteAll (Object input, String replace, int index, ! int eflags) { return substituteAllImpl (makeCharIndexed (input, index), replace, index, ! eflags); } private String substituteAllImpl (CharIndexed input, String replace, ! int index, int eflags) { CPStringBuilder buffer = new CPStringBuilder (); REMatch m; while ((m = getMatchImpl (input, index, eflags, buffer)) != null) { ! buffer.append (getReplacement (replace, m, eflags)); ! index = m.getEndIndex (); ! if (m.end[0] == 0) ! { ! char ch = input.charAt (0); ! if (ch != CharIndexed.OUT_OF_BOUNDS) ! buffer.append (ch); ! input.move (1); ! } ! else ! { ! input.move (m.end[0]); ! } ! if (!input.isValid ()) ! break; } return buffer.toString (); } --- 2407,2441 ---- * @see REMatch#substituteInto */ public String substituteAll (Object input, String replace, int index, ! int eflags) { return substituteAllImpl (makeCharIndexed (input, index), replace, index, ! eflags); } private String substituteAllImpl (CharIndexed input, String replace, ! int index, int eflags) { CPStringBuilder buffer = new CPStringBuilder (); REMatch m; while ((m = getMatchImpl (input, index, eflags, buffer)) != null) { ! buffer.append (getReplacement (replace, m, eflags)); ! index = m.getEndIndex (); ! if (m.end[0] == 0) ! { ! char ch = input.charAt (0); ! if (ch != CharIndexed.OUT_OF_BOUNDS) ! buffer.append (ch); ! input.move (1); ! } ! else ! { ! input.move (m.end[0]); ! } ! if (!input.isValid ()) ! break; } return buffer.toString (); } *************** public class RE extends REToken *** 2446,2481 **** return replace; else { ! if ((eflags & REG_REPLACE_USE_BACKSLASHESCAPE) > 0) ! { ! CPStringBuilder sb = new CPStringBuilder (); ! int l = replace.length (); ! for (int i = 0; i < l; i++) ! { ! char c = replace.charAt (i); ! switch (c) ! { ! case '\\': ! i++; ! // Let StringIndexOutOfBoundsException be thrown. ! sb.append (replace.charAt (i)); ! break; ! case '$': ! int i1 = i + 1; ! while (i1 < replace.length () && ! Character.isDigit (replace.charAt (i1))) ! i1++; ! sb.append (m.substituteInto (replace.substring (i, i1))); ! i = i1 - 1; ! break; ! default: ! sb.append (c); ! } ! } ! return sb.toString (); ! } ! else ! return m.substituteInto (replace); } } --- 2446,2481 ---- return replace; else { ! if ((eflags & REG_REPLACE_USE_BACKSLASHESCAPE) > 0) ! { ! CPStringBuilder sb = new CPStringBuilder (); ! int l = replace.length (); ! for (int i = 0; i < l; i++) ! { ! char c = replace.charAt (i); ! switch (c) ! { ! case '\\': ! i++; ! // Let StringIndexOutOfBoundsException be thrown. ! sb.append (replace.charAt (i)); ! break; ! case '$': ! int i1 = i + 1; ! while (i1 < replace.length () && ! Character.isDigit (replace.charAt (i1))) ! i1++; ! sb.append (m.substituteInto (replace.substring (i, i1))); ! i = i1 - 1; ! break; ! default: ! sb.append (c); ! } ! } ! return sb.toString (); ! } ! else ! return m.substituteInto (replace); } } *************** public class RE extends REToken *** 2493,2537 **** if (firstToken == null) { ! lastToken = firstToken = next; } else { ! // if chain returns false, it "rejected" the token due to ! // an optimization, and next was combined with lastToken ! if (lastToken.chain (next)) ! { ! lastToken = next; ! } } } private static REToken setRepeated (REToken current, int min, int max, ! int index) throws REException { if (current == null) throw new REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); return new RETokenRepeated (current.subIndex, current, min, max); } private static int getPosixSet (char[]pattern, int index, ! CPStringBuilder buf) { // Precondition: pattern[index-1] == ':' // we will return pos of closing ']'. int i; for (i = index; i < (pattern.length - 1); i++) { ! if ((pattern[i] == ':') && (pattern[i + 1] == ']')) ! return i + 2; ! buf.append (pattern[i]); } ! return index; // didn't match up } private int getMinMax (char[]input, int index, IntPair minMax, ! RESyntax syntax) throws REException { // Precondition: input[index-1] == '{', minMax != null --- 2493,2537 ---- if (firstToken == null) { ! lastToken = firstToken = next; } else { ! // if chain returns false, it "rejected" the token due to ! // an optimization, and next was combined with lastToken ! if (lastToken.chain (next)) ! { ! lastToken = next; ! } } } private static REToken setRepeated (REToken current, int min, int max, ! int index) throws REException { if (current == null) throw new REException (getLocalizedMessage ("repeat.no.token"), ! REException.REG_BADRPT, index); return new RETokenRepeated (current.subIndex, current, min, max); } private static int getPosixSet (char[]pattern, int index, ! CPStringBuilder buf) { // Precondition: pattern[index-1] == ':' // we will return pos of closing ']'. int i; for (i = index; i < (pattern.length - 1); i++) { ! if ((pattern[i] == ':') && (pattern[i + 1] == ']')) ! return i + 2; ! buf.append (pattern[i]); } ! return index; // didn't match up } private int getMinMax (char[]input, int index, IntPair minMax, ! RESyntax syntax) throws REException { // Precondition: input[index-1] == '{', minMax != null *************** public class RE extends REToken *** 2539,2549 **** int startIndex = index; if (index == input.length) { ! if (mustMatch) ! throw new REException (getLocalizedMessage ("unmatched.brace"), ! REException.REG_EBRACE, index); ! else ! return startIndex; } int min, max = 0; --- 2539,2549 ---- int startIndex = index; if (index == input.length) { ! if (mustMatch) ! throw new REException (getLocalizedMessage ("unmatched.brace"), ! REException.REG_EBRACE, index); ! else ! return startIndex; } int min, max = 0; *************** public class RE extends REToken *** 2553,2572 **** // Read string of digits do { ! index = getCharUnit (input, index, unit, false); ! if (Character.isDigit (unit.ch)) ! buf.append (unit.ch); } while ((index != input.length) && Character.isDigit (unit.ch)); // Check for {} tomfoolery if (buf.length () == 0) { ! if (mustMatch) ! throw new REException (getLocalizedMessage ("interval.error"), ! REException.REG_EBRACE, index); ! else ! return startIndex; } min = Integer.parseInt (buf.toString ()); --- 2553,2572 ---- // Read string of digits do { ! index = getCharUnit (input, index, unit, false); ! if (Character.isDigit (unit.ch)) ! buf.append (unit.ch); } while ((index != input.length) && Character.isDigit (unit.ch)); // Check for {} tomfoolery if (buf.length () == 0) { ! if (mustMatch) ! throw new REException (getLocalizedMessage ("interval.error"), ! REException.REG_EBRACE, index); ! else ! return startIndex; } min = Integer.parseInt (buf.toString ()); *************** public class RE extends REToken *** 2575,2582 **** max = min; else if (index == input.length) if (mustMatch) ! throw new REException (getLocalizedMessage ("interval.no.end"), ! REException.REG_EBRACE, index); else return startIndex; else --- 2575,2582 ---- max = min; else if (index == input.length) if (mustMatch) ! throw new REException (getLocalizedMessage ("interval.no.end"), ! REException.REG_EBRACE, index); else return startIndex; else *************** public class RE extends REToken *** 2585,2612 **** buf = new CPStringBuilder (); // Read string of digits while (((index = ! getCharUnit (input, index, unit, false)) != input.length) ! && Character.isDigit (unit.ch)) ! buf.append (unit.ch); if (! ! ((unit.ch == '}') ! && (syntax.get (RESyntax.RE_NO_BK_BRACES) ^ unit.bk))) ! if (mustMatch) ! throw new REException (getLocalizedMessage ("interval.error"), ! REException.REG_EBRACE, index); else return startIndex; // This is the case of {x,} if (buf.length () == 0) ! max = Integer.MAX_VALUE; else ! max = Integer.parseInt (buf.toString ()); } else if (mustMatch) throw new REException (getLocalizedMessage ("interval.error"), ! REException.REG_EBRACE, index); else return startIndex; --- 2585,2612 ---- buf = new CPStringBuilder (); // Read string of digits while (((index = ! getCharUnit (input, index, unit, false)) != input.length) ! && Character.isDigit (unit.ch)) ! buf.append (unit.ch); if (! ! ((unit.ch == '}') ! && (syntax.get (RESyntax.RE_NO_BK_BRACES) ^ unit.bk))) ! if (mustMatch) ! throw new REException (getLocalizedMessage ("interval.error"), ! REException.REG_EBRACE, index); else return startIndex; // This is the case of {x,} if (buf.length () == 0) ! max = Integer.MAX_VALUE; else ! max = Integer.parseInt (buf.toString ()); } else if (mustMatch) throw new REException (getLocalizedMessage ("interval.error"), ! REException.REG_EBRACE, index); else return startIndex; *************** public class RE extends REToken *** 2651,2663 **** // be the most likely because this is the case with // java.util.regex.Matcher. // We could let a String or a CharSequence fall through ! // to final input, but since it'a very likely input type, // we check it first. if (input instanceof CharIndexed) { ! CharIndexed ci = (CharIndexed) input; ! ci.setAnchor (index); ! return ci; } else if (input instanceof CharSequence) return new CharIndexedCharSequence ((CharSequence) input, index); --- 2651,2663 ---- // be the most likely because this is the case with // java.util.regex.Matcher. // We could let a String or a CharSequence fall through ! // to final input, but since it'a very likely input type, // we check it first. if (input instanceof CharIndexed) { ! CharIndexed ci = (CharIndexed) input; ! ci.setAnchor (index); ! return ci; } else if (input instanceof CharSequence) return new CharIndexedCharSequence ((CharSequence) input, index); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/REFilterInputStream.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/REFilterInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/REFilterInputStream.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/REFilterInputStream.java Tue Jan 11 19:46:05 2011 *************** public class REFilterInputStream extends *** 70,76 **** * * @param stream The InputStream to be filtered. * @param expr The regular expression to search for. ! * @param replace The text pattern to replace matches with. */ public REFilterInputStream (InputStream stream, RE expr, String replace) { --- 70,76 ---- * * @param stream The InputStream to be filtered. * @param expr The regular expression to search for. ! * @param replace The text pattern to replace matches with. */ public REFilterInputStream (InputStream stream, RE expr, String replace) { *************** public class REFilterInputStream extends *** 89,95 **** // If we have buffered replace data, use it. if ((buffer != null) && (bufpos < buffer.length ())) { ! return (int) buffer.charAt (bufpos++); } // check if input is at a valid position --- 89,95 ---- // If we have buffered replace data, use it. if ((buffer != null) && (bufpos < buffer.length ())) { ! return (int) buffer.charAt (bufpos++); } // check if input is at a valid position *************** public class REFilterInputStream extends *** 99,116 **** REMatch mymatch = new REMatch (expr.getNumSubs (), offset, 0); if (expr.match (stream, mymatch)) { ! mymatch.end[0] = mymatch.index; ! mymatch.finish (stream); ! stream.move (mymatch.toString ().length ()); ! offset += mymatch.toString ().length (); ! buffer = mymatch.substituteInto (replace); ! bufpos = 1; ! // This is prone to infinite loops if replace string turns out empty. ! if (buffer.length () > 0) ! { ! return buffer.charAt (0); ! } } char ch = stream.charAt (0); if (ch == CharIndexed.OUT_OF_BOUNDS) --- 99,116 ---- REMatch mymatch = new REMatch (expr.getNumSubs (), offset, 0); if (expr.match (stream, mymatch)) { ! mymatch.end[0] = mymatch.index; ! mymatch.finish (stream); ! stream.move (mymatch.toString ().length ()); ! offset += mymatch.toString ().length (); ! buffer = mymatch.substituteInto (replace); ! bufpos = 1; ! // This is prone to infinite loops if replace string turns out empty. ! if (buffer.length () > 0) ! { ! return buffer.charAt (0); ! } } char ch = stream.charAt (0); if (ch == CharIndexed.OUT_OF_BOUNDS) *************** public class REFilterInputStream extends *** 120,128 **** return ch; } ! /** * Returns false. REFilterInputStream does not support mark() and ! * reset() methods. */ public boolean markSupported () { --- 120,128 ---- return ch; } ! /** * Returns false. REFilterInputStream does not support mark() and ! * reset() methods. */ public boolean markSupported () { *************** public class REFilterInputStream extends *** 136,146 **** int ok = 0; while (len-- > 0) { ! i = read (); ! if (i == -1) ! return (ok == 0) ? -1 : ok; ! b[off++] = (byte) i; ! ok++; } return ok; } --- 136,146 ---- int ok = 0; while (len-- > 0) { ! i = read (); ! if (i == -1) ! return (ok == 0) ? -1 : ok; ! b[off++] = (byte) i; ! ok++; } return ok; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/REMatch.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/REMatch.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/REMatch.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/REMatch.java Tue Jan 11 19:46:05 2011 *************** public final class REMatch implements Se *** 56,62 **** private CharIndexed matchedCharIndexed; // These variables are package scope for fast access within the engine ! int eflags; // execution flags this match was made using // Offset in source text where match was tried. This is zero-based; // the actual position in the source text is given by (offset + anchor). --- 56,62 ---- private CharIndexed matchedCharIndexed; // These variables are package scope for fast access within the engine ! int eflags; // execution flags this match was made using // Offset in source text where match was tried. This is zero-based; // the actual position in the source text is given by (offset + anchor). *************** public final class REMatch implements Se *** 68,86 **** int anchor; // Package scope; used by RE. ! int index; // used while matching to mark current match position in input // start1[i] is set when the i-th subexp starts. And start1[i] is copied // to start[i] when the i-th subexp ends. So start[i] keeps the previously // assigned value while the i-th subexp is being processed. This makes // backreference to the i-th subexp within the i-th subexp possible. ! int[] start; // start positions (relative to offset) for each (sub)exp. ! int[] start1; // start positions (relative to offset) for each (sub)exp. ! int[] end; // end positions for the same // start[i] == -1 or end[i] == -1 means that the start/end position is void. // start[i] == p or end[i] == p where p < 0 and p != -1 means that // the actual start/end position is (p+1). Start/end positions may // become negative when the subexpression is in a RETokenLookBehind. ! boolean empty; // empty string matched. This flag is used only within // RETokenRepeated. BacktrackStack backtrackStack; --- 68,86 ---- int anchor; // Package scope; used by RE. ! int index; // used while matching to mark current match position in input // start1[i] is set when the i-th subexp starts. And start1[i] is copied // to start[i] when the i-th subexp ends. So start[i] keeps the previously // assigned value while the i-th subexp is being processed. This makes // backreference to the i-th subexp within the i-th subexp possible. ! int[] start; // start positions (relative to offset) for each (sub)exp. ! int[] start1; // start positions (relative to offset) for each (sub)exp. ! int[] end; // end positions for the same // start[i] == -1 or end[i] == -1 means that the start/end position is void. // start[i] == p or end[i] == p where p < 0 and p != -1 means that // the actual start/end position is (p+1). Start/end positions may // become negative when the subexpression is in a RETokenLookBehind. ! boolean empty; // empty string matched. This flag is used only within // RETokenRepeated. BacktrackStack backtrackStack; *************** public final class REMatch implements Se *** 99,105 **** } catch (CloneNotSupportedException e) { ! throw new Error (); // doesn't happen } } --- 99,105 ---- } catch (CloneNotSupportedException e) { ! throw new Error (); // doesn't happen } } *************** public final class REMatch implements Se *** 133,145 **** matchedCharIndexed = text; for (i = 0; i < start.length; i++) { ! // If any subexpressions didn't terminate, they don't count ! // TODO check if this code ever gets hit ! if ((start[i] == -1) ^ (end[i] == -1)) ! { ! start[i] = -1; ! end[i] = -1; ! } } backtrackStack = null; } --- 133,145 ---- matchedCharIndexed = text; for (i = 0; i < start.length; i++) { ! // If any subexpressions didn't terminate, they don't count ! // TODO check if this code ever gets hit ! if ((start[i] == -1) ^ (end[i] == -1)) ! { ! start[i] = -1; ! end[i] = -1; ! } } backtrackStack = null; } *************** public final class REMatch implements Se *** 151,157 **** this.index = 0; for (int i = 0; i < start.length; i++) { ! start[i] = start1[i] = end[i] = -1; } backtrackStack = null; } --- 151,157 ---- this.index = 0; for (int i = 0; i < start.length; i++) { ! start[i] = start1[i] = end[i] = -1; } backtrackStack = null; } *************** public final class REMatch implements Se *** 160,166 **** * Returns the string matching the pattern. This makes it convenient * to write code like the following: *

          ! * * REMatch myMatch = myExpression.getMatch(myString);
          * if (myMatch != null) System.out.println("Regexp found: "+myMatch); *
          --- 160,166 ---- * Returns the string matching the pattern. This makes it convenient * to write code like the following: *

          ! * * REMatch myMatch = myExpression.getMatch(myString);
          * if (myMatch != null) System.out.println("Regexp found: "+myMatch); *
          *************** public final class REMatch implements Se *** 194,200 **** * myMatch.getEndIndex()); *

          * But you can save yourself that work, since the toString() ! * method (above) does exactly that for you. */ public int getEndIndex () { --- 194,200 ---- * myMatch.getEndIndex()); *

          * But you can save yourself that work, since the toString() ! * method (above) does exactly that for you. */ public int getEndIndex () { *************** public final class REMatch implements Se *** 219,239 **** return (matchedText.substring (start[sub], end[sub])); else { ! // This case occurs with RETokenLookAhead or RETokenLookBehind. ! CPStringBuilder sb = new CPStringBuilder (); ! int s = start[sub]; ! int e = end[sub]; ! if (s < 0) ! s += 1; ! if (e < 0) ! e += 1; ! for (int i = start[0] + s; i < start[0] + e; i++) ! sb.append (matchedCharIndexed.charAt (i)); ! return sb.toString (); } } ! /** * Returns the index within the input string used to generate this match * where subexpression number sub begins, or -1 if * the subexpression does not exist. The initial position is zero. --- 219,239 ---- return (matchedText.substring (start[sub], end[sub])); else { ! // This case occurs with RETokenLookAhead or RETokenLookBehind. ! CPStringBuilder sb = new CPStringBuilder (); ! int s = start[sub]; ! int e = end[sub]; ! if (s < 0) ! s += 1; ! if (e < 0) ! e += 1; ! for (int i = start[0] + s; i < start[0] + e; i++) ! sb.append (matchedCharIndexed.charAt (i)); ! return sb.toString (); } } ! /** * Returns the index within the input string used to generate this match * where subexpression number sub begins, or -1 if * the subexpression does not exist. The initial position is zero. *************** public final class REMatch implements Se *** 249,255 **** return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1; } ! /** * Returns the index within the input string used to generate this match * where subexpression number sub begins, or -1 if * the subexpression does not exist. The initial position is zero. --- 249,255 ---- return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1; } ! /** * Returns the index within the input string used to generate this match * where subexpression number sub begins, or -1 if * the subexpression does not exist. The initial position is zero. *************** public final class REMatch implements Se *** 265,271 **** return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1; } ! /** * Returns the index within the input string used to generate this match * where subexpression number sub ends, or -1 if * the subexpression does not exist. The initial position is zero. --- 265,271 ---- return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1; } ! /** * Returns the index within the input string used to generate this match * where subexpression number sub ends, or -1 if * the subexpression does not exist. The initial position is zero. *************** public final class REMatch implements Se *** 281,287 **** return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1; } ! /** * Returns the index within the input string used to generate this match * where subexpression number sub ends, or -1 if * the subexpression does not exist. The initial position is zero. --- 281,287 ---- return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1; } ! /** * Returns the index within the input string used to generate this match * where subexpression number sub ends, or -1 if * the subexpression does not exist. The initial position is zero. *************** public final class REMatch implements Se *** 314,343 **** int pos; for (pos = 0; pos < input.length () - 1; pos++) { ! if ((input.charAt (pos) == '$') ! && (Character.isDigit (input.charAt (pos + 1)))) ! { ! int val = Character.digit (input.charAt (++pos), 10); ! int pos1 = pos + 1; ! while (pos1 < input.length () && ! Character.isDigit (input.charAt (pos1))) ! { ! int val1 = ! val * 10 + Character.digit (input.charAt (pos1), 10); ! if (val1 >= start.length) ! break; ! pos1++; ! val = val1; ! } ! pos = pos1 - 1; ! if (val < start.length) ! { ! output.append (toString (val)); ! } ! } ! else ! output.append (input.charAt (pos)); } if (pos < input.length ()) output.append (input.charAt (pos)); --- 314,343 ---- int pos; for (pos = 0; pos < input.length () - 1; pos++) { ! if ((input.charAt (pos) == '$') ! && (Character.isDigit (input.charAt (pos + 1)))) ! { ! int val = Character.digit (input.charAt (++pos), 10); ! int pos1 = pos + 1; ! while (pos1 < input.length () && ! Character.isDigit (input.charAt (pos1))) ! { ! int val1 = ! val * 10 + Character.digit (input.charAt (pos1), 10); ! if (val1 >= start.length) ! break; ! pos1++; ! val = val1; ! } ! pos = pos1 - 1; ! if (val < start.length) ! { ! output.append (toString (val)); ! } ! } ! else ! output.append (input.charAt (pos)); } if (pos < input.length ()) output.append (input.charAt (pos)); *************** public final class REMatch implements Se *** 346,361 **** /* The following are used for debugging purpose public static String d(REMatch m) { ! if (m == null) return "null"; else return "[" + m.index + "]"; } public String substringUptoIndex(CharIndexed input) { ! StringBuffer sb = new StringBuffer(); ! for (int i = 0; i < index; i++) { ! sb.append(input.charAt(i)); ! } ! return sb.toString(); } */ --- 346,361 ---- /* The following are used for debugging purpose public static String d(REMatch m) { ! if (m == null) return "null"; else return "[" + m.index + "]"; } public String substringUptoIndex(CharIndexed input) { ! StringBuffer sb = new StringBuffer(); ! for (int i = 0; i < index; i++) { ! sb.append(input.charAt(i)); ! } ! return sb.toString(); } */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java Tue Jan 11 19:46:05 2011 *************** import java.util.NoSuchElementException; *** 47,53 **** * An REMatchEnumeration enumerates regular expression matches over a * given input text. You obtain a reference to an enumeration using * the getMatchEnumeration() methods on an instance of ! * RE. * *

          * --- 47,53 ---- * An REMatchEnumeration enumerates regular expression matches over a * given input text. You obtain a reference to an enumeration using * the getMatchEnumeration() methods on an instance of ! * RE. * *

          * *************** import java.util.NoSuchElementException; *** 59,73 **** * not need to be searched immediately. * *

          ! * * The enumerated type is especially useful when searching on a Reader * or InputStream, because the InputStream read position cannot be * guaranteed after calling getMatch() (see the * description of that method for an explanation of why). Enumeration * also saves a lot of overhead required when calling * getMatch() multiple times. ! * ! * @author Wes Biggs */ public class REMatchEnumeration implements Enumeration < REMatch >, Serializable --- 59,73 ---- * not need to be searched immediately. * *

          ! * * The enumerated type is especially useful when searching on a Reader * or InputStream, because the InputStream read position cannot be * guaranteed after calling getMatch() (see the * description of that method for an explanation of why). Enumeration * also saves a lot of overhead required when calling * getMatch() multiple times. ! * ! * @author Wes Biggs */ public class REMatchEnumeration implements Enumeration < REMatch >, Serializable *************** public class REMatchEnumeration *** 113,129 **** { if (more == MAYBE) { ! match = expr.getMatchImpl (input, index, eflags, buffer); ! if (match != null) ! { ! input.move ((match.end[0] > 0) ? match.end[0] : 1); ! index = ! (match.end[0] > 0) ? match.end[0] + match.offset : index + 1; ! more = YES; ! } ! else ! more = NO; } return (more == YES); } --- 113,129 ---- { if (more == MAYBE) { ! match = expr.getMatchImpl (input, index, eflags, buffer); ! if (match != null) ! { ! input.move ((match.end[0] > 0) ? match.end[0] : 1); ! index = ! (match.end[0] > 0) ? match.end[0] + match.offset : index + 1; ! more = YES; ! } ! else ! more = NO; } return (more == YES); } *************** public class REMatchEnumeration *** 133,140 **** { if (hasMoreElements ()) { ! more = (input.isValid ())? MAYBE : NO; ! return match; } throw new NoSuchElementException (); } --- 133,140 ---- { if (hasMoreElements ()) { ! more = (input.isValid ())? MAYBE : NO; ! return match; } throw new NoSuchElementException (); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RESyntax.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RESyntax.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RESyntax.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RESyntax.java Tue Jan 11 19:46:05 2011 *************** public final class RESyntax implements S *** 94,100 **** /** * Syntax bit. Repetition and alternation operators are invalid ! * at start and end of pattern and other places. * Not implemented. */ public static final int RE_CONTEXT_INVALID_OPS = 5; --- 94,100 ---- /** * Syntax bit. Repetition and alternation operators are invalid ! * at start and end of pattern and other places. * Not implemented. */ public static final int RE_CONTEXT_INVALID_OPS = 5; *************** public final class RESyntax implements S *** 115,121 **** public static final int RE_INTERVALS = 8; /** ! * Syntax bit. No alternation (|), match one-or-more (+), or * match zero-or-one (?) operators. */ public static final int RE_LIMITED_OPS = 9; --- 115,121 ---- public static final int RE_INTERVALS = 8; /** ! * Syntax bit. No alternation (|), match one-or-more (+), or * match zero-or-one (?) operators. */ public static final int RE_LIMITED_OPS = 9; *************** public final class RESyntax implements S *** 123,129 **** /** * Syntax bit. Newline is an alternation operator. */ ! public static final int RE_NEWLINE_ALT = 10; // impl. /** * Syntax bit. Intervals use { } instead of \{ \} --- 123,129 ---- /** * Syntax bit. Newline is an alternation operator. */ ! public static final int RE_NEWLINE_ALT = 10; // impl. /** * Syntax bit. Intervals use { } instead of \{ \} *************** public final class RESyntax implements S *** 317,323 **** * Emulates regular expression support in Larry Wall's perl, version 4, * using single line mode (/s modifier). */ ! public static final RESyntax RE_SYNTAX_PERL4_S; // single line mode (/s) /** * Predefined syntax. --- 317,323 ---- * Emulates regular expression support in Larry Wall's perl, version 4, * using single line mode (/s modifier). */ ! public static final RESyntax RE_SYNTAX_PERL4_S; // single line mode (/s) /** * Predefined syntax. *************** public final class RESyntax implements S *** 403,425 **** /* There is no official Perl spec, but here's a "best guess" */ ! RE_SYNTAX_PERL4 = new RESyntax ().set (RE_BACKSLASH_ESCAPE_IN_LISTS).set (RE_CONTEXT_INDEP_ANCHORS).set (RE_CONTEXT_INDEP_OPS) // except for '{', apparently ! .set (RE_INTERVALS).set (RE_NO_BK_BRACES).set (RE_NO_BK_PARENS).set (RE_NO_BK_VBAR).set (RE_NO_EMPTY_RANGES).set (RE_CHAR_CLASS_ESCAPES) // \d,\D,\w,\W,\s,\S .makeFinal (); RE_SYNTAX_PERL4_S = new RESyntax (RE_SYNTAX_PERL4).set (RE_DOT_NEWLINE).makeFinal (); ! RE_SYNTAX_PERL5 = new RESyntax (RE_SYNTAX_PERL4).set (RE_PURE_GROUPING) // (?:) ! .set (RE_STINGY_OPS) // *?,??,+?,{}? ! .set (RE_LOOKAHEAD) // (?=)(?!) ! .set (RE_STRING_ANCHORS) // \A,\Z ! .set (RE_CHAR_CLASS_ESC_IN_LISTS) // \d,\D,\w,\W,\s,\S within [] ! .set (RE_COMMENTS) // (?#) ! .set (RE_EMBEDDED_FLAGS) // (?imsx-imsx) ! .set (RE_OCTAL_CHAR) // \0377 ! .set (RE_HEX_CHAR) // \x1b ! .set (RE_NAMED_PROPERTY) // \p{prop}, \P{prop} .makeFinal (); RE_SYNTAX_PERL5_S = --- 403,425 ---- /* There is no official Perl spec, but here's a "best guess" */ ! RE_SYNTAX_PERL4 = new RESyntax ().set (RE_BACKSLASH_ESCAPE_IN_LISTS).set (RE_CONTEXT_INDEP_ANCHORS).set (RE_CONTEXT_INDEP_OPS) // except for '{', apparently ! .set (RE_INTERVALS).set (RE_NO_BK_BRACES).set (RE_NO_BK_PARENS).set (RE_NO_BK_VBAR).set (RE_NO_EMPTY_RANGES).set (RE_CHAR_CLASS_ESCAPES) // \d,\D,\w,\W,\s,\S .makeFinal (); RE_SYNTAX_PERL4_S = new RESyntax (RE_SYNTAX_PERL4).set (RE_DOT_NEWLINE).makeFinal (); ! RE_SYNTAX_PERL5 = new RESyntax (RE_SYNTAX_PERL4).set (RE_PURE_GROUPING) // (?:) ! .set (RE_STINGY_OPS) // *?,??,+?,{}? ! .set (RE_LOOKAHEAD) // (?=)(?!) ! .set (RE_STRING_ANCHORS) // \A,\Z ! .set (RE_CHAR_CLASS_ESC_IN_LISTS) // \d,\D,\w,\W,\s,\S within [] ! .set (RE_COMMENTS) // (?#) ! .set (RE_EMBEDDED_FLAGS) // (?imsx-imsx) ! .set (RE_OCTAL_CHAR) // \0377 ! .set (RE_HEX_CHAR) // \x1b ! .set (RE_NAMED_PROPERTY) // \p{prop}, \P{prop} .makeFinal (); RE_SYNTAX_PERL5_S = *************** public final class RESyntax implements S *** 427,435 **** RE_SYNTAX_JAVA_1_4 = new RESyntax (RE_SYNTAX_PERL5) // XXX ! .set (RE_POSSESSIVE_OPS) // *+,?+,++,{}+ ! .set (RE_UNICODE_CHAR) // \u1234 ! .set (RE_NESTED_CHARCLASS) // [a-z&&[^p-r]] .makeFinal (); } --- 427,435 ---- RE_SYNTAX_JAVA_1_4 = new RESyntax (RE_SYNTAX_PERL5) // XXX ! .set (RE_POSSESSIVE_OPS) // *+,?+,++,{}+ ! .set (RE_UNICODE_CHAR) // \u1234 ! .set (RE_NESTED_CHARCLASS) // [a-z&&[^p-r]] .makeFinal (); } *************** public final class RESyntax implements S *** 457,463 **** } /** ! * Construct a new syntax object with all bits set the same * as the other syntax. */ public RESyntax (RESyntax other) --- 457,463 ---- } /** ! * Construct a new syntax object with all bits set the same * as the other syntax. */ public RESyntax (RESyntax other) *************** public final class RESyntax implements S *** 474,480 **** } /** ! * Set a given bit in this syntax. * * @param index the constant (RESyntax.RE_xxx) bit to set. * @return a reference to this object for easy chaining. --- 474,480 ---- } /** ! * Set a given bit in this syntax. * * @param index the constant (RESyntax.RE_xxx) bit to set. * @return a reference to this object for easy chaining. *************** public final class RESyntax implements S *** 488,494 **** } /** ! * Clear a given bit in this syntax. * * @param index the constant (RESyntax.RE_xxx) bit to clear. * @return a reference to this object for easy chaining. --- 488,494 ---- } /** ! * Clear a given bit in this syntax. * * @param index the constant (RESyntax.RE_xxx) bit to clear. * @return a reference to this object for easy chaining. *************** public final class RESyntax implements S *** 516,522 **** * characters that have specific meaning within the current syntax * can cause unexpected chronosynclastic infundibula. * ! * @return this object for convenient chaining */ public RESyntax setLineSeparator (String aSeparator) { --- 516,522 ---- * characters that have specific meaning within the current syntax * can cause unexpected chronosynclastic infundibula. * ! * @return this object for convenient chaining */ public RESyntax setLineSeparator (String aSeparator) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/REToken.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/REToken.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/REToken.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/REToken.java Tue Jan 11 19:46:05 2011 *************** abstract class REToken implements Serial *** 58,64 **** } catch (CloneNotSupportedException e) { ! throw new Error (); // doesn't happen } } --- 58,64 ---- } catch (CloneNotSupportedException e) { ! throw new Error (); // doesn't happen } } *************** abstract class REToken implements Serial *** 96,110 **** { if (!fake) { ! setHitEnd (input, mymatch); } REMatch m = matchThis (input, mymatch); if (m == null) return false; if (next (input, m)) { ! mymatch.assignFrom (m); ! return true; } return false; } --- 96,110 ---- { if (!fake) { ! setHitEnd (input, mymatch); } REMatch m = matchThis (input, mymatch); if (m == null) return false; if (next (input, m)) { ! mymatch.assignFrom (m); ! return true; } return false; } *************** abstract class REToken implements Serial *** 188,194 **** boolean chain (REToken token) { next = token; ! return true; // Token was accepted } abstract void dump (CPStringBuilder os); --- 188,194 ---- boolean chain (REToken token) { next = token; ! return true; // Token was accepted } abstract void dump (CPStringBuilder os); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenAny.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenAny.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenAny.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenAny.java Tue Jan 11 19:46:05 2011 *************** final class RETokenAny extends REToken *** 71,78 **** boolean retval = matchOneChar (ch); if (retval) { ! ++mymatch.index; ! return mymatch; } return null; } --- 71,78 ---- boolean retval = matchOneChar (ch); if (retval) { ! ++mymatch.index; ! return mymatch; } return null; } *************** final class RETokenAny extends REToken *** 80,88 **** boolean matchOneChar (char ch) { if ((ch == CharIndexed.OUT_OF_BOUNDS) ! || (!newline && (ch == '\n')) || (matchNull && (ch == 0))) { ! return false; } return true; } --- 80,88 ---- boolean matchOneChar (char ch) { if ((ch == CharIndexed.OUT_OF_BOUNDS) ! || (!newline && (ch == '\n')) || (matchNull && (ch == 0))) { ! return false; } return true; } *************** final class RETokenAny extends REToken *** 98,109 **** int numRepeats = 0; while (true) { ! if (numRepeats >= max) ! break; ! char ch = input.charAt (index++); ! if (!matchOneChar (ch)) ! break; ! numRepeats++; } return numRepeats; } --- 98,109 ---- int numRepeats = 0; while (true) { ! if (numRepeats >= max) ! break; ! char ch = input.charAt (index++); ! if (!matchOneChar (ch)) ! break; ! numRepeats++; } return numRepeats; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenBackRef.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenBackRef.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenBackRef.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenBackRef.java Tue Jan 11 19:46:05 2011 *************** final class RETokenBackRef extends RETok *** 64,93 **** b = mymatch.start[num]; e = mymatch.end[num]; if ((b == -1) || (e == -1)) ! return null; // this shouldn't happen, but... if (b < 0) b += 1; if (e < 0) e += 1; for (int i = b; i < e; i++) { ! char c1 = input.charAt (mymatch.index + i - b); ! char c2 = input.charAt (i); ! if (c1 != c2) ! { ! if (insens) ! { ! if (c1 != toLowerCase (c2, unicodeAware) && ! c1 != toUpperCase (c2, unicodeAware)) ! { ! return null; ! } ! } ! else ! { ! return null; ! } ! } } mymatch.index += e - b; return mymatch; --- 64,93 ---- b = mymatch.start[num]; e = mymatch.end[num]; if ((b == -1) || (e == -1)) ! return null; // this shouldn't happen, but... if (b < 0) b += 1; if (e < 0) e += 1; for (int i = b; i < e; i++) { ! char c1 = input.charAt (mymatch.index + i - b); ! char c2 = input.charAt (i); ! if (c1 != c2) ! { ! if (insens) ! { ! if (c1 != toLowerCase (c2, unicodeAware) && ! c1 != toUpperCase (c2, unicodeAware)) ! { ! return null; ! } ! } ! else ! { ! return null; ! } ! } } mymatch.index += e - b; return mymatch; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenChar.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenChar.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenChar.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenChar.java Tue Jan 11 19:46:05 2011 *************** final class RETokenChar extends REToken *** 67,74 **** { if (matchOneString (input, mymatch.index)) { ! mymatch.index += matchedLength; ! return mymatch; } // java.util.regex.Matcher#hitEnd() requires that the length of // partial match be counted. --- 67,74 ---- { if (matchOneString (input, mymatch.index)) { ! mymatch.index += matchedLength; ! return mymatch; } // java.util.regex.Matcher#hitEnd() requires that the length of // partial match be counted. *************** final class RETokenChar extends REToken *** 85,96 **** char c; for (int i = 0; i < z; i++) { ! c = input.charAt (index + i); ! if (!charEquals (c, ch[i])) ! { ! return false; ! } ! ++matchedLength; } return true; } --- 85,96 ---- char c; for (int i = 0; i < z; i++) { ! c = input.charAt (index + i); ! if (!charEquals (c, ch[i])) ! { ! return false; ! } ! ++matchedLength; } return true; } *************** final class RETokenChar extends REToken *** 120,134 **** int z = ch.length; while (true) { ! if (numRepeats >= max) ! break; ! if (matchOneString (input, index)) ! { ! index += z; ! numRepeats++; ! } ! else ! break; } return numRepeats; } --- 120,134 ---- int z = ch.length; while (true) { ! if (numRepeats >= max) ! break; ! if (matchOneString (input, index)) ! { ! index += z; ! numRepeats++; ! } ! else ! break; } return numRepeats; } *************** final class RETokenChar extends REToken *** 138,155 **** { if (next instanceof RETokenChar && ((RETokenChar) next).insens == insens) { ! RETokenChar cnext = (RETokenChar) next; ! int newsize = ch.length + cnext.ch.length; ! char[] chTemp = new char[newsize]; ! System.arraycopy (ch, 0, chTemp, 0, ch.length); ! System.arraycopy (cnext.ch, 0, chTemp, ch.length, cnext.ch.length); ! ch = chTemp; ! if (cnext.next == null) ! return false; ! return chain (cnext.next); } else return super.chain (next); --- 138,155 ---- { if (next instanceof RETokenChar && ((RETokenChar) next).insens == insens) { ! RETokenChar cnext = (RETokenChar) next; ! int newsize = ch.length + cnext.ch.length; ! char[] chTemp = new char[newsize]; ! System.arraycopy (ch, 0, chTemp, 0, ch.length); ! System.arraycopy (cnext.ch, 0, chTemp, ch.length, cnext.ch.length); ! ch = chTemp; ! if (cnext.next == null) ! return false; ! return chain (cnext.next); } else return super.chain (next); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenEnd.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenEnd.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenEnd.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenEnd.java Tue Jan 11 19:46:05 2011 *************** final class RETokenEnd extends REToken *** 92,129 **** return ((mymatch.eflags & RE.REG_NOTEOL) > 0) ? null : mymatch; if (check_java_line_terminators) { ! if (ch == '\n') ! { ! char ch1 = input.charAt (mymatch.index - 1); ! if (ch1 == '\r') ! return null; ! return mymatch; ! } ! if (ch == '\r') ! return mymatch; ! if (ch == '\u0085') ! return mymatch; // A next-line character ! if (ch == '\u2028') ! return mymatch; // A line-separator character ! if (ch == '\u2029') ! return mymatch; // A paragraph-separator character ! return null; } if (newline != null) { ! char z; ! int i = 0; // position in newline ! do ! { ! z = newline.charAt (i); ! if (ch != z) ! return null; ! ++i; ! ch = input.charAt (mymatch.index + i); ! } ! while (i < newline.length ()); ! return mymatch; } return null; } --- 92,129 ---- return ((mymatch.eflags & RE.REG_NOTEOL) > 0) ? null : mymatch; if (check_java_line_terminators) { ! if (ch == '\n') ! { ! char ch1 = input.charAt (mymatch.index - 1); ! if (ch1 == '\r') ! return null; ! return mymatch; ! } ! if (ch == '\r') ! return mymatch; ! if (ch == '\u0085') ! return mymatch; // A next-line character ! if (ch == '\u2028') ! return mymatch; // A line-separator character ! if (ch == '\u2029') ! return mymatch; // A paragraph-separator character ! return null; } if (newline != null) { ! char z; ! int i = 0; // position in newline ! do ! { ! z = newline.charAt (i); ! if (ch != z) ! return null; ! ++i; ! ch = input.charAt (mymatch.index + i); ! } ! while (i < newline.length ()); ! return mymatch; } return null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java Tue Jan 11 19:46:05 2011 *************** class RETokenEndOfPreviousMatch extends *** 58,70 **** if (lastMatch == null) return super.matchThis (input, mymatch); if (input.getAnchor () + mymatch.index == ! lastMatch.anchor + lastMatch.index) { ! return mymatch; } else { ! return null; } } --- 58,70 ---- if (lastMatch == null) return super.matchThis (input, mymatch); if (input.getAnchor () + mymatch.index == ! lastMatch.anchor + lastMatch.index) { ! return mymatch; } else { ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenIndependent.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenIndependent.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenIndependent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenIndependent.java Tue Jan 11 19:46:05 2011 *************** final class RETokenIndependent extends R *** 67,76 **** boolean b = re.match (input, mymatch); if (b) { ! // Once we have found a match, we do not see other possible matches. ! if (mymatch.backtrackStack != null) ! mymatch.backtrackStack.clear (); ! return mymatch; } return null; --- 67,76 ---- boolean b = re.match (input, mymatch); if (b) { ! // Once we have found a match, we do not see other possible matches. ! if (mymatch.backtrackStack != null) ! mymatch.backtrackStack.clear (); ! return mymatch; } return null; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java Tue Jan 11 19:46:05 2011 *************** final class RETokenLookAhead extends RET *** 65,80 **** REMatch trymatch = (REMatch) mymatch.clone (); if (re.match (input, trymatch)) { ! if (negative) ! return null; ! trymatch.index = mymatch.index; ! return trymatch; } else { ! if (negative) ! return mymatch; ! return null; } } --- 65,80 ---- REMatch trymatch = (REMatch) mymatch.clone (); if (re.match (input, trymatch)) { ! if (negative) ! return null; ! trymatch.index = mymatch.index; ! return trymatch; } else { ! if (negative) ! return mymatch; ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java Tue Jan 11 19:46:05 2011 *************** final class RETokenLookBehind extends RE *** 73,101 **** re1.chain (stopper); if (re1.match (behind, trymatch)) { ! if (negative) ! return null; ! for (int i = 0; i < trymatch.start.length; i++) ! { ! if (trymatch.start[i] != -1 && trymatch.end[i] != -1) ! { ! trymatch.start[i] -= diff; ! if (trymatch.start[i] < 0) ! trymatch.start[i] -= 1; ! trymatch.end[i] -= diff; ! if (trymatch.end[i] < 0) ! trymatch.end[i] -= 1; ! } ! } ! trymatch.index = mymatch.index; ! trymatch.offset = mymatch.offset; ! return trymatch; } else { ! if (negative) ! return mymatch; ! return null; } } --- 73,101 ---- re1.chain (stopper); if (re1.match (behind, trymatch)) { ! if (negative) ! return null; ! for (int i = 0; i < trymatch.start.length; i++) ! { ! if (trymatch.start[i] != -1 && trymatch.end[i] != -1) ! { ! trymatch.start[i] -= diff; ! if (trymatch.start[i] < 0) ! trymatch.start[i] -= 1; ! trymatch.end[i] -= diff; ! if (trymatch.end[i] < 0) ! trymatch.end[i] -= 1; ! } ! } ! trymatch.index = mymatch.index; ! trymatch.offset = mymatch.offset; ! return trymatch; } else { ! if (negative) ! return mymatch; ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java Tue Jan 11 19:46:05 2011 *************** final class RETokenNamedProperty extends *** 96,102 **** }; RETokenNamedProperty (int subIndex, String name, boolean insens, ! boolean negate) throws REException { super (subIndex); this.name = name; --- 96,102 ---- }; RETokenNamedProperty (int subIndex, String name, boolean insens, ! boolean negate) throws REException { super (subIndex); this.name = name; *************** final class RETokenNamedProperty extends *** 121,128 **** boolean retval = matchOneChar (ch); if (retval) { ! ++mymatch.index; ! return mymatch; } return null; } --- 121,128 ---- boolean retval = matchOneChar (ch); if (retval) { ! ++mymatch.index; ! return mymatch; } return null; } *************** final class RETokenNamedProperty extends *** 135,143 **** boolean retval = handler.includes (ch); if (insens) { ! retval = retval || ! handler.includes (toUpperCase (ch, unicodeAware)) || ! handler.includes (toLowerCase (ch, unicodeAware)); } if (negate) --- 135,143 ---- boolean retval = handler.includes (ch); if (insens) { ! retval = retval || ! handler.includes (toUpperCase (ch, unicodeAware)) || ! handler.includes (toLowerCase (ch, unicodeAware)); } if (negate) *************** final class RETokenNamedProperty extends *** 156,167 **** int numRepeats = 0; while (true) { ! if (numRepeats >= max) ! break; ! char ch = input.charAt (index++); ! if (!matchOneChar (ch)) ! break; ! numRepeats++; } return numRepeats; } --- 156,167 ---- int numRepeats = 0; while (true) { ! if (numRepeats >= max) ! break; ! char ch = input.charAt (index++); ! if (!matchOneChar (ch)) ! break; ! numRepeats++; } return numRepeats; } *************** final class RETokenNamedProperty extends *** 179,215 **** private Handler getHandler (String name) throws REException { if (name.equals ("Lower") || name.equals ("Upper") || ! // name.equals("ASCII") || ! name.equals ("Alpha") || ! name.equals ("Digit") || ! name.equals ("Alnum") || ! name.equals ("Punct") || ! name.equals ("Graph") || ! name.equals ("Print") || ! name.equals ("Blank") || ! name.equals ("Cntrl") || ! name.equals ("XDigit") || name.equals ("Space")) { ! return new POSIXHandler (name); } if (name.startsWith ("In")) { ! try ! { ! name = name.substring (2); ! Character.UnicodeBlock block = ! Character.UnicodeBlock.forName (name); ! return new UnicodeBlockHandler (block); ! } ! catch (IllegalArgumentException e) ! { ! throw new REException ("Invalid Unicode block name: " + name, ! REException.REG_ESCAPE, 0); ! } } if (name.startsWith ("Is")) { ! name = name.substring (2); } // "grouped properties" --- 179,215 ---- private Handler getHandler (String name) throws REException { if (name.equals ("Lower") || name.equals ("Upper") || ! // name.equals("ASCII") || ! name.equals ("Alpha") || ! name.equals ("Digit") || ! name.equals ("Alnum") || ! name.equals ("Punct") || ! name.equals ("Graph") || ! name.equals ("Print") || ! name.equals ("Blank") || ! name.equals ("Cntrl") || ! name.equals ("XDigit") || name.equals ("Space")) { ! return new POSIXHandler (name); } if (name.startsWith ("In")) { ! try ! { ! name = name.substring (2); ! Character.UnicodeBlock block = ! Character.UnicodeBlock.forName (name); ! return new UnicodeBlockHandler (block); ! } ! catch (IllegalArgumentException e) ! { ! throw new REException ("Invalid Unicode block name: " + name, ! REException.REG_ESCAPE, 0); ! } } if (name.startsWith ("Is")) { ! name = name.substring (2); } // "grouped properties" *************** final class RETokenNamedProperty extends *** 291,317 **** if (name.equals ("all")) return new Handler () { ! public boolean includes (char c) ! { ! return true; ! } }; if (name.startsWith ("java")) { ! try ! { ! Method m = Character.class.getMethod ("is" + name.substring (4), ! Character.TYPE); ! return new JavaCategoryHandler (m); ! } ! catch (NoSuchMethodException e) ! { ! throw new REException ("Unsupported Java handler: " + name, e, ! REException.REG_ESCAPE, 0); ! } } throw new REException ("unsupported name " + name, REException.REG_ESCAPE, ! 0); } private static class POSIXHandler extends Handler --- 291,317 ---- if (name.equals ("all")) return new Handler () { ! public boolean includes (char c) ! { ! return true; ! } }; if (name.startsWith ("java")) { ! try ! { ! Method m = Character.class.getMethod ("is" + name.substring (4), ! Character.TYPE); ! return new JavaCategoryHandler (m); ! } ! catch (NoSuchMethodException e) ! { ! throw new REException ("Unsupported Java handler: " + name, e, ! REException.REG_ESCAPE, 0); ! } } throw new REException ("unsupported name " + name, REException.REG_ESCAPE, ! 0); } private static class POSIXHandler extends Handler *************** final class RETokenNamedProperty extends *** 321,329 **** { int posixId = RETokenPOSIX.intValue (name.toLowerCase ()); if (posixId != -1) ! retoken = new RETokenPOSIX (0, posixId, false, false); else ! throw new RuntimeException ("Unknown posix ID: " + name); } public boolean includes (char c) { --- 321,329 ---- { int posixId = RETokenPOSIX.intValue (name.toLowerCase ()); if (posixId != -1) ! retoken = new RETokenPOSIX (0, posixId, false, false); else ! throw new RuntimeException ("Unknown posix ID: " + name); } public boolean includes (char c) { *************** final class RETokenNamedProperty extends *** 355,362 **** { int category = Character.getType (c); for (int i = 0; i < categories.length; i++) ! if (category == categories[i]) ! return true; return false; } } --- 355,362 ---- { int category = Character.getType (c); for (int i = 0; i < categories.length; i++) ! if (category == categories[i]) ! return true; return false; } } *************** final class RETokenNamedProperty extends *** 394,408 **** { try { ! return (Boolean) method.invoke (null, c); } catch (IllegalAccessException e) { ! throw new InternalError ("Unable to access method " + method); } catch (InvocationTargetException e) { ! throw new InternalError ("Error invoking " + method); } } } --- 394,408 ---- { try { ! return (Boolean) method.invoke (null, c); } catch (IllegalAccessException e) { ! throw new InternalError ("Unable to access method " + method); } catch (InvocationTargetException e) { ! throw new InternalError ("Error invoking " + method); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenOneOf.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenOneOf.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenOneOf.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenOneOf.java Tue Jan 11 19:46:05 2011 *************** final class RETokenOneOf extends REToken *** 59,65 **** // the basic part /2-7a-c/ is stored in the ArrayList options, and // the additional part /[f-k][m-z]&&[^p-v][st]/ is stored in the // ArrayList addition in the following order (Reverse Polish Notation): ! // -- The matching result of the basic part is assumed here. // [f-k] -- REToken // "|" -- or // [m-z] -- REToken --- 59,65 ---- // the basic part /2-7a-c/ is stored in the ArrayList options, and // the additional part /[f-k][m-z]&&[^p-v][st]/ is stored in the // ArrayList addition in the following order (Reverse Polish Notation): ! // -- The matching result of the basic part is assumed here. // [f-k] -- REToken // "|" -- or // [m-z] -- REToken *************** final class RETokenOneOf extends REToken *** 80,86 **** // \D --> new RETokenOneOf("0123456789",true, ..) RETokenOneOf (int subIndex, String optionsStr, boolean negative, ! boolean insens) { super (subIndex); options = new ArrayList < REToken > (); --- 80,86 ---- // \D --> new RETokenOneOf("0123456789",true, ..) RETokenOneOf (int subIndex, String optionsStr, boolean negative, ! boolean insens) { super (subIndex); options = new ArrayList < REToken > (); *************** final class RETokenOneOf extends REToken *** 97,103 **** } RETokenOneOf (int subIndex, List < REToken > options, ! List < Object > addition, boolean negative) { super (subIndex); this.options = options; --- 97,103 ---- } RETokenOneOf (int subIndex, List < REToken > options, ! List < Object > addition, boolean negative) { super (subIndex); this.options = options; *************** final class RETokenOneOf extends REToken *** 114,121 **** int x; for (REToken t:options) { ! if ((x = t.getMinimumLength ()) < min) ! min = x; } return min; } --- 114,121 ---- int x; for (REToken t:options) { ! if ((x = t.getMinimumLength ()) < min) ! min = x; } return min; } *************** final class RETokenOneOf extends REToken *** 128,135 **** int x; for (REToken t:options) { ! if ((x = t.getMaximumLength ()) > max) ! max = x; } return max; } --- 128,135 ---- int x; for (REToken t:options) { ! if ((x = t.getMaximumLength ()) > max) ! max = x; } return max; } *************** final class RETokenOneOf extends REToken *** 149,161 **** boolean tryOnly; if (addition == null) { ! tryMatch = mymatch; ! tryOnly = false; } else { ! tryMatch = (REMatch) mymatch.clone (); ! tryOnly = true; } boolean b = negative ? matchN (input, tryMatch, tryOnly) : matchP (input, tryMatch, tryOnly); --- 149,161 ---- boolean tryOnly; if (addition == null) { ! tryMatch = mymatch; ! tryOnly = false; } else { ! tryMatch = (REMatch) mymatch.clone (); ! tryOnly = true; } boolean b = negative ? matchN (input, tryMatch, tryOnly) : matchP (input, tryMatch, tryOnly); *************** final class RETokenOneOf extends REToken *** 166,201 **** stack.push (new Boolean (b)); for (Object obj:addition) { ! if (obj instanceof REToken) ! { ! b = ((REToken) obj).match (input, (REMatch) mymatch.clone ()); ! stack.push (new Boolean (b)); ! } ! else if (obj instanceof Boolean) ! { ! stack.push ((Boolean) obj); ! } ! else if (obj.equals ("|")) ! { ! b = stack.pop (); ! b = stack.pop () || b; ! stack.push (new Boolean (b)); ! } ! else if (obj.equals ("&")) ! { ! b = stack.pop (); ! b = stack.pop () && b; ! stack.push (new Boolean (b)); ! } ! else ! { ! throw new RuntimeException ("Invalid object found"); ! } } if (stack.pop ()) { ! ++mymatch.index; ! return next (input, mymatch); } return false; } --- 166,201 ---- stack.push (new Boolean (b)); for (Object obj:addition) { ! if (obj instanceof REToken) ! { ! b = ((REToken) obj).match (input, (REMatch) mymatch.clone ()); ! stack.push (new Boolean (b)); ! } ! else if (obj instanceof Boolean) ! { ! stack.push ((Boolean) obj); ! } ! else if (obj.equals ("|")) ! { ! b = stack.pop (); ! b = stack.pop () || b; ! stack.push (new Boolean (b)); ! } ! else if (obj.equals ("&")) ! { ! b = stack.pop (); ! b = stack.pop () && b; ! stack.push (new Boolean (b)); ! } ! else ! { ! throw new RuntimeException ("Invalid object found"); ! } } if (stack.pop ()) { ! ++mymatch.index; ! return next (input, mymatch); } return false; } *************** final class RETokenOneOf extends REToken *** 207,218 **** for (REToken tk:options) { ! REMatch tryMatch = (REMatch) mymatch.clone (); ! if (tk.match (input, tryMatch)) ! { // match was successful ! return false; ! } // is a match ! } // try next option if (tryOnly) return true; --- 207,218 ---- for (REToken tk:options) { ! REMatch tryMatch = (REMatch) mymatch.clone (); ! if (tk.match (input, tryMatch)) ! { // match was successful ! return false; ! } // is a match ! } // try next option if (tryOnly) return true; *************** final class RETokenOneOf extends REToken *** 224,240 **** { for (REToken tk:options) { ! REMatch tryMatch = (REMatch) mymatch.clone (); ! if (tk.match (input, tryMatch)) ! { // match was successful ! if (tryOnly) ! return true; ! if (next (input, tryMatch)) ! { ! mymatch.assignFrom (tryMatch); ! return true; ! } ! } } return false; } --- 224,240 ---- { for (REToken tk:options) { ! REMatch tryMatch = (REMatch) mymatch.clone (); ! if (tk.match (input, tryMatch)) ! { // match was successful ! if (tryOnly) ! return true; ! if (next (input, tryMatch)) ! { ! mymatch.assignFrom (tryMatch); ! return true; ! } ! } } return false; } *************** final class RETokenOneOf extends REToken *** 244,251 **** REMatch newMatch = findMatch (input, mymatch); if (newMatch != null) { ! mymatch.assignFrom (newMatch); ! return true; } return false; } --- 244,251 ---- REMatch newMatch = findMatch (input, mymatch); if (newMatch != null) { ! mymatch.assignFrom (newMatch); ! return true; } return false; } *************** final class RETokenOneOf extends REToken *** 263,294 **** } private REMatch findMatch (CharIndexed input, REMatch mymatch, ! int optionIndex) { for (int i = optionIndex; i < options.size (); i++) { ! REToken tk = options.get (i); ! tk = (REToken) tk.clone (); ! tk.chain (getNext ()); ! REMatch tryMatch = (REMatch) mymatch.clone (); ! if (tryMatch.backtrackStack == null) ! { ! tryMatch.backtrackStack = new BacktrackStack (); ! } ! boolean stackPushed = false; ! if (i + 1 < options.size ()) ! { ! tryMatch.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! i + 1)); ! stackPushed = true; ! } ! if (tk.match (input, tryMatch)) ! { ! return tryMatch; ! } ! if (stackPushed) ! tryMatch.backtrackStack.pop (); } return null; } --- 263,294 ---- } private REMatch findMatch (CharIndexed input, REMatch mymatch, ! int optionIndex) { for (int i = optionIndex; i < options.size (); i++) { ! REToken tk = options.get (i); ! tk = (REToken) tk.clone (); ! tk.chain (getNext ()); ! REMatch tryMatch = (REMatch) mymatch.clone (); ! if (tryMatch.backtrackStack == null) ! { ! tryMatch.backtrackStack = new BacktrackStack (); ! } ! boolean stackPushed = false; ! if (i + 1 < options.size ()) ! { ! tryMatch.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! i + 1)); ! stackPushed = true; ! } ! if (tk.match (input, tryMatch)) ! { ! return tryMatch; ! } ! if (stackPushed) ! tryMatch.backtrackStack.pop (); } return null; } *************** final class RETokenOneOf extends REToken *** 308,319 **** tk.chain (null); while (true) { ! if (numRepeats >= max) ! break; ! m = tk.findMatch (input, m); ! if (m == null) ! break; ! numRepeats++; } return numRepeats; } --- 308,319 ---- tk.chain (null); while (true) { ! if (numRepeats >= max) ! break; ! m = tk.findMatch (input, m); ! if (m == null) ! break; ! numRepeats++; } return numRepeats; } *************** final class RETokenOneOf extends REToken *** 323,331 **** os.append (negative ? "[^" : "(?:"); for (int i = 0; i < options.size (); i++) { ! if (!negative && (i > 0)) ! os.append ('|'); ! options.get (i).dumpAll (os); } os.append (negative ? ']' : ')'); } --- 323,331 ---- os.append (negative ? "[^" : "(?:"); for (int i = 0; i < options.size (); i++) { ! if (!negative && (i > 0)) ! os.append ('|'); ! options.get (i).dumpAll (os); } os.append (negative ? ']' : ')'); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java Tue Jan 11 19:46:05 2011 *************** final class RETokenPOSIX extends REToken *** 70,77 **** { for (int i = 0; i < s_nameTable.length; i++) { ! if (s_nameTable[i].equals (key)) ! return i; } return -1; } --- 70,77 ---- { for (int i = 0; i < s_nameTable.length; i++) { ! if (s_nameTable[i].equals (key)) ! return i; } return -1; } *************** final class RETokenPOSIX extends REToken *** 100,107 **** boolean retval = matchOneChar (ch); if (retval) { ! ++mymatch.index; ! return mymatch; } return null; } --- 100,107 ---- boolean retval = matchOneChar (ch); if (retval) { ! ++mymatch.index; ! return mymatch; } return null; } *************** final class RETokenPOSIX extends REToken *** 115,163 **** switch (type) { case ALNUM: ! // Note that there is some debate over whether '_' should be included ! retval = Character.isLetterOrDigit (ch) || (ch == '_'); ! break; case ALPHA: ! retval = Character.isLetter (ch); ! break; case BLANK: ! retval = ((ch == ' ') || (ch == '\t')); ! break; case CNTRL: ! retval = Character.isISOControl (ch); ! break; case DIGIT: ! retval = Character.isDigit (ch); ! break; case GRAPH: ! retval = ! (!(Character.isWhitespace (ch) || Character.isISOControl (ch))); ! break; case LOWER: ! retval = ((insens && Character.isLetter (ch)) ! || Character.isLowerCase (ch)); ! break; case PRINT: ! retval = ! (!(Character.isWhitespace (ch) || Character.isISOControl (ch))) ! || (ch == ' '); ! break; case PUNCT: ! // This feels sloppy, especially for non-U.S. locales. ! retval = ("`~!@#$%^&*()-_=+[]{}\\|;:'\"/?,.<>".indexOf (ch) != -1); ! break; case SPACE: ! retval = Character.isWhitespace (ch); ! break; case UPPER: ! retval = ((insens && Character.isLetter (ch)) ! || Character.isUpperCase (ch)); ! break; case XDIGIT: ! retval = (Character.isDigit (ch) ! || ("abcdefABCDEF".indexOf (ch) != -1)); ! break; } if (negated) --- 115,163 ---- switch (type) { case ALNUM: ! // Note that there is some debate over whether '_' should be included ! retval = Character.isLetterOrDigit (ch) || (ch == '_'); ! break; case ALPHA: ! retval = Character.isLetter (ch); ! break; case BLANK: ! retval = ((ch == ' ') || (ch == '\t')); ! break; case CNTRL: ! retval = Character.isISOControl (ch); ! break; case DIGIT: ! retval = Character.isDigit (ch); ! break; case GRAPH: ! retval = ! (!(Character.isWhitespace (ch) || Character.isISOControl (ch))); ! break; case LOWER: ! retval = ((insens && Character.isLetter (ch)) ! || Character.isLowerCase (ch)); ! break; case PRINT: ! retval = ! (!(Character.isWhitespace (ch) || Character.isISOControl (ch))) ! || (ch == ' '); ! break; case PUNCT: ! // This feels sloppy, especially for non-U.S. locales. ! retval = ("`~!@#$%^&*()-_=+[]{}\\|;:'\"/?,.<>".indexOf (ch) != -1); ! break; case SPACE: ! retval = Character.isWhitespace (ch); ! break; case UPPER: ! retval = ((insens && Character.isLetter (ch)) ! || Character.isUpperCase (ch)); ! break; case XDIGIT: ! retval = (Character.isDigit (ch) ! || ("abcdefABCDEF".indexOf (ch) != -1)); ! break; } if (negated) *************** final class RETokenPOSIX extends REToken *** 176,187 **** int numRepeats = 0; while (true) { ! if (numRepeats >= max) ! break; ! char ch = input.charAt (index++); ! if (!matchOneChar (ch)) ! break; ! numRepeats++; } return numRepeats; } --- 176,187 ---- int numRepeats = 0; while (true) { ! if (numRepeats >= max) ! break; ! char ch = input.charAt (index++); ! if (!matchOneChar (ch)) ! break; ! numRepeats++; } return numRepeats; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenRange.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenRange.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenRange.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenRange.java Tue Jan 11 19:46:05 2011 *************** final class RETokenRange extends REToken *** 67,74 **** char c = input.charAt (mymatch.index); if (matchOneChar (c)) { ! ++mymatch.index; ! return mymatch; } return null; } --- 67,74 ---- char c = input.charAt (mymatch.index); if (matchOneChar (c)) { ! ++mymatch.index; ! return mymatch; } return null; } *************** final class RETokenRange extends REToken *** 80,92 **** boolean matches = (c >= lo) && (c <= hi); if (!matches && insens) { ! char c1 = toLowerCase (c, unicodeAware); ! matches = (c1 >= lo) && (c1 <= hi); ! if (!matches) ! { ! c1 = toUpperCase (c, unicodeAware); ! matches = (c1 >= lo) && (c1 <= hi); ! } } return matches; } --- 80,92 ---- boolean matches = (c >= lo) && (c <= hi); if (!matches && insens) { ! char c1 = toLowerCase (c, unicodeAware); ! matches = (c1 >= lo) && (c1 <= hi); ! if (!matches) ! { ! c1 = toUpperCase (c, unicodeAware); ! matches = (c1 >= lo) && (c1 <= hi); ! } } return matches; } *************** final class RETokenRange extends REToken *** 102,113 **** int numRepeats = 0; while (true) { ! if (numRepeats >= max) ! break; ! char ch = input.charAt (index++); ! if (!matchOneChar (ch)) ! break; ! numRepeats++; } return numRepeats; } --- 102,113 ---- int numRepeats = 0; while (true) { ! if (numRepeats >= max) ! break; ! char ch = input.charAt (index++); ! if (!matchOneChar (ch)) ! break; ! numRepeats++; } return numRepeats; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java Tue Jan 11 19:46:05 2011 *************** final class RETokenRepeated extends RETo *** 59,69 **** this.max = max; if (token.returnsFixedLengthMatches ()) { ! tokenFixedLength = token.getMaximumLength (); } else { ! tokenFixedLength = -1; } } --- 59,69 ---- this.max = max; if (token.returnsFixedLengthMatches ()) { ! tokenFixedLength = token.getMaximumLength (); } else { ! tokenFixedLength = -1; } } *************** final class RETokenRepeated extends RETo *** 125,131 **** { this.tk = tk; this.input = input; ! this.rematch = (REMatch) mymatch.clone (); // MUST make a clone this.rematch.backtrackStack = new BacktrackStack (); findFirst = true; } --- 125,131 ---- { this.tk = tk; this.input = input; ! this.rematch = (REMatch) mymatch.clone (); // MUST make a clone this.rematch.backtrackStack = new BacktrackStack (); findFirst = true; } *************** final class RETokenRepeated extends RETo *** 135,165 **** int origin = rematch.index; REMatch rem; if (findFirst) ! { ! rem = tk.findMatch (input, rematch); ! findFirst = false; ! } else ! { ! while (true) ! { ! if (rematch.backtrackStack.empty ()) ! { ! rem = null; ! break; ! } ! BacktrackStack.Backtrack bt = rematch.backtrackStack.pop (); ! rem = bt.token.backtrack (bt.input, bt.match, bt.param); ! if (rem != null) ! break; ! } ! } if (rem == null) ! return null; if (rem.index == origin) ! rem.empty = true; rematch = rem; ! return (REMatch) rem.clone (); // MUST make a clone. } boolean noMore () --- 135,165 ---- int origin = rematch.index; REMatch rem; if (findFirst) ! { ! rem = tk.findMatch (input, rematch); ! findFirst = false; ! } else ! { ! while (true) ! { ! if (rematch.backtrackStack.empty ()) ! { ! rem = null; ! break; ! } ! BacktrackStack.Backtrack bt = rematch.backtrackStack.pop (); ! rem = bt.token.backtrack (bt.input, bt.match, bt.param); ! if (rem != null) ! break; ! } ! } if (rem == null) ! return null; if (rem.index == origin) ! rem.empty = true; rematch = rem; ! return (REMatch) rem.clone (); // MUST make a clone. } boolean noMore () *************** final class RETokenRepeated extends RETo *** 190,196 **** int[] visited; DoablesFinder finder; StackedInfo (CharIndexed input, int numRepeats, REMatch match, ! int[]visited, DoablesFinder finder) { super (null, input, match, null); this.numRepeats = numRepeats; --- 190,196 ---- int[] visited; DoablesFinder finder; StackedInfo (CharIndexed input, int numRepeats, REMatch match, ! int[]visited, DoablesFinder finder) { super (null, input, match, null); this.numRepeats = numRepeats; *************** final class RETokenRepeated extends RETo *** 214,220 **** } private REMatch findMatch (BacktrackStack stack, ! Deque < FindMatchControl > controlStack) { REMatch result = null; StackedInfo si = null; --- 214,220 ---- } private REMatch findMatch (BacktrackStack stack, ! Deque < FindMatchControl > controlStack) { REMatch result = null; StackedInfo si = null; *************** final class RETokenRepeated extends RETo *** 235,414 **** while (true) { ! // This is the second entry point of this method. ! // If you want to call this method recursively but you do not need the ! // result returned, just continue from this point. MAIN_LOOP: ! while (true) ! { ! if (stack.empty ()) ! break MAIN_LOOP; ! si = (StackedInfo) (stack.peek ()); ! input = si.input; ! numRepeats = si.numRepeats; ! mymatch = si.match; ! visited = si.visited; ! finder = si.finder; ! if (mymatch.backtrackStack == null) ! mymatch.backtrackStack = new BacktrackStack (); ! if (numRepeats >= max) ! { ! stack.pop (); ! REMatch m1 = matchRest (input, mymatch); ! if (m1 != null) ! { ! if (!stack.empty ()) ! { ! m1.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, ! mymatch, stack)); ! } ! result = m1; ! break MAIN_LOOP; ! } ! if (stingy) ! { ! continue MAIN_LOOP; ! } ! break MAIN_LOOP; ! } ! if (finder == null) ! { ! finder = new DoablesFinder (token, input, mymatch); ! si.finder = finder; ! } ! if (numRepeats < min) ! { ! while (true) ! { ! REMatch doable = finder.find (); ! if (doable == null) ! { ! if (stack.empty ()) ! return null; ! stack.pop (); ! continue MAIN_LOOP; ! } ! if (finder.noMore ()) ! stack.pop (); ! int newNumRepeats = (doable.empty ? min : numRepeats + 1); ! stack. ! push (new ! StackedInfo (input, newNumRepeats, doable, ! visited, null)); ! continue MAIN_LOOP; ! } ! } ! if (visited == null) ! visited = initVisited (); ! if (stingy) ! { ! REMatch nextMatch = finder.find (); ! if (nextMatch != null && !nextMatch.empty) ! { ! stack. ! push (new ! StackedInfo (input, numRepeats + 1, nextMatch, ! visited, null)); ! } ! else ! { ! stack.pop (); ! } ! REMatch m1 = matchRest (input, mymatch); ! if (m1 != null) ! { ! if (!stack.empty ()) ! { ! m1.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, ! mymatch, stack)); ! } ! result = m1; ! break MAIN_LOOP; ! } ! else ! { ! continue MAIN_LOOP; ! } ! } ! visited = addVisited (mymatch.index, visited); ! TryAnotherResult taresult = ! tryAnother (stack, input, mymatch, numRepeats, finder, visited); ! visited = taresult.visited; ! switch (taresult.status) ! { ! case TryAnotherResult.TRY_FURTHER: ! controlStack.push (new FindMatchControl (finder)); ! continue MAIN_LOOP0; ! case TryAnotherResult.RESULT_FOUND: ! result = taresult.result; ! break MAIN_LOOP; ! } ! if (!stack.empty ()) ! { ! stack.pop (); ! } ! if (possessive) ! { ! stack.clear (); ! } ! REMatch m1 = matchRest (input, mymatch); ! if (m1 != null) ! { ! if (!stack.empty ()) ! { ! m1.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! stack)); ! } ! result = m1; ! break MAIN_LOOP; ! } ! } // MAIN_LOOP ! if (controlStack.isEmpty ()) ! return result; ! FindMatchControl control = controlStack.pop (); ! if (possessive) ! { ! return result; ! } ! if (result != null) ! { ! result.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! stack)); ! return result; ! } ! finder = control.finder; ! TryAnotherResult taresult = ! tryAnother (stack, input, mymatch, numRepeats, finder, visited); ! visited = taresult.visited; ! switch (taresult.status) ! { ! case TryAnotherResult.TRY_FURTHER: ! controlStack.push (new FindMatchControl (finder)); ! continue MAIN_LOOP0; ! case TryAnotherResult.RESULT_FOUND: ! return taresult.result; ! } ! continue MAIN_LOOP0; ! } // MAIN_LOOP0 } private static class TryAnotherResult --- 235,414 ---- while (true) { ! // This is the second entry point of this method. ! // If you want to call this method recursively but you do not need the ! // result returned, just continue from this point. MAIN_LOOP: ! while (true) ! { ! if (stack.empty ()) ! break MAIN_LOOP; ! si = (StackedInfo) (stack.peek ()); ! input = si.input; ! numRepeats = si.numRepeats; ! mymatch = si.match; ! visited = si.visited; ! finder = si.finder; ! if (mymatch.backtrackStack == null) ! mymatch.backtrackStack = new BacktrackStack (); ! if (numRepeats >= max) ! { ! stack.pop (); ! REMatch m1 = matchRest (input, mymatch); ! if (m1 != null) ! { ! if (!stack.empty ()) ! { ! m1.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, ! mymatch, stack)); ! } ! result = m1; ! break MAIN_LOOP; ! } ! if (stingy) ! { ! continue MAIN_LOOP; ! } ! break MAIN_LOOP; ! } ! if (finder == null) ! { ! finder = new DoablesFinder (token, input, mymatch); ! si.finder = finder; ! } ! if (numRepeats < min) ! { ! while (true) ! { ! REMatch doable = finder.find (); ! if (doable == null) ! { ! if (stack.empty ()) ! return null; ! stack.pop (); ! continue MAIN_LOOP; ! } ! if (finder.noMore ()) ! stack.pop (); ! int newNumRepeats = (doable.empty ? min : numRepeats + 1); ! stack. ! push (new ! StackedInfo (input, newNumRepeats, doable, ! visited, null)); ! continue MAIN_LOOP; ! } ! } ! if (visited == null) ! visited = initVisited (); ! if (stingy) ! { ! REMatch nextMatch = finder.find (); ! if (nextMatch != null && !nextMatch.empty) ! { ! stack. ! push (new ! StackedInfo (input, numRepeats + 1, nextMatch, ! visited, null)); ! } ! else ! { ! stack.pop (); ! } ! REMatch m1 = matchRest (input, mymatch); ! if (m1 != null) ! { ! if (!stack.empty ()) ! { ! m1.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, ! mymatch, stack)); ! } ! result = m1; ! break MAIN_LOOP; ! } ! else ! { ! continue MAIN_LOOP; ! } ! } ! visited = addVisited (mymatch.index, visited); ! TryAnotherResult taresult = ! tryAnother (stack, input, mymatch, numRepeats, finder, visited); ! visited = taresult.visited; ! switch (taresult.status) ! { ! case TryAnotherResult.TRY_FURTHER: ! controlStack.push (new FindMatchControl (finder)); ! continue MAIN_LOOP0; ! case TryAnotherResult.RESULT_FOUND: ! result = taresult.result; ! break MAIN_LOOP; ! } ! if (!stack.empty ()) ! { ! stack.pop (); ! } ! if (possessive) ! { ! stack.clear (); ! } ! REMatch m1 = matchRest (input, mymatch); ! if (m1 != null) ! { ! if (!stack.empty ()) ! { ! m1.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! stack)); ! } ! result = m1; ! break MAIN_LOOP; ! } ! } // MAIN_LOOP ! if (controlStack.isEmpty ()) ! return result; ! FindMatchControl control = controlStack.pop (); ! if (possessive) ! { ! return result; ! } ! if (result != null) ! { ! result.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! stack)); ! return result; ! } ! finder = control.finder; ! TryAnotherResult taresult = ! tryAnother (stack, input, mymatch, numRepeats, finder, visited); ! visited = taresult.visited; ! switch (taresult.status) ! { ! case TryAnotherResult.TRY_FURTHER: ! controlStack.push (new FindMatchControl (finder)); ! continue MAIN_LOOP0; ! case TryAnotherResult.RESULT_FOUND: ! return taresult.result; ! } ! continue MAIN_LOOP0; ! } // MAIN_LOOP0 } private static class TryAnotherResult *************** final class RETokenRepeated extends RETo *** 422,430 **** } private TryAnotherResult tryAnother (BacktrackStack stack, ! CharIndexed input, REMatch mymatch, ! int numRepeats, DoablesFinder finder, ! int[]visited) { TryAnotherResult taresult = new TryAnotherResult (); --- 422,430 ---- } private TryAnotherResult tryAnother (BacktrackStack stack, ! CharIndexed input, REMatch mymatch, ! int numRepeats, DoablesFinder finder, ! int[]visited) { TryAnotherResult taresult = new TryAnotherResult (); *************** final class RETokenRepeated extends RETo *** 437,494 **** DO_ONE_DOABLE: while (true) ! { ! REMatch doable = finder.find (); ! if (doable == null) ! { ! break DO_THIS; ! } ! if (doable.empty) ! emptyMatchFound = true; ! if (!emptyMatchFound) ! { ! int n = doable.index; ! if (visitedContains (n, visited)) ! { ! continue DO_ONE_DOABLE; ! } ! visited = addVisited (n, visited); ! stack. ! push (new ! StackedInfo (input, numRepeats + 1, doable, visited, ! null)); ! taresult.visited = visited; ! taresult.status = TryAnotherResult.TRY_FURTHER; ! return taresult; ! } ! else ! { ! REMatch m1 = matchRest (input, doable); ! if (possessive) ! { ! taresult.result = m1; ! taresult.status = TryAnotherResult.RESULT_FOUND; ! return taresult; ! } ! if (m1 != null) ! { ! if (!stack.empty ()) ! { ! m1.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! stack)); ! } ! taresult.result = m1; ! taresult.status = TryAnotherResult.RESULT_FOUND; ! return taresult; ! } ! } ! } // DO_ONE_DOABLE ! } // DO_THIS taresult.status = TryAnotherResult.NOTHING_FOUND; return taresult; --- 437,494 ---- DO_ONE_DOABLE: while (true) ! { ! REMatch doable = finder.find (); ! if (doable == null) ! { ! break DO_THIS; ! } ! if (doable.empty) ! emptyMatchFound = true; ! if (!emptyMatchFound) ! { ! int n = doable.index; ! if (visitedContains (n, visited)) ! { ! continue DO_ONE_DOABLE; ! } ! visited = addVisited (n, visited); ! stack. ! push (new ! StackedInfo (input, numRepeats + 1, doable, visited, ! null)); ! taresult.visited = visited; ! taresult.status = TryAnotherResult.TRY_FURTHER; ! return taresult; ! } ! else ! { ! REMatch m1 = matchRest (input, doable); ! if (possessive) ! { ! taresult.result = m1; ! taresult.status = TryAnotherResult.RESULT_FOUND; ! return taresult; ! } ! if (m1 != null) ! { ! if (!stack.empty ()) ! { ! m1.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! stack)); ! } ! taresult.result = m1; ! taresult.status = TryAnotherResult.RESULT_FOUND; ! return taresult; ! } ! } ! } // DO_ONE_DOABLE ! } // DO_THIS taresult.status = TryAnotherResult.NOTHING_FOUND; return taresult; *************** final class RETokenRepeated extends RETo *** 501,508 **** REMatch m1 = findMatch (input, mymatch); if (m1 != null) { ! mymatch.assignFrom (m1); ! return true; } return false; } --- 501,508 ---- REMatch m1 = findMatch (input, mymatch); if (m1 != null) { ! mymatch.assignFrom (m1); ! return true; } return false; } *************** final class RETokenRepeated extends RETo *** 523,530 **** // simple linear search is faster than binary search. for (int i = 1; i < visited[0]; i++) { ! if (n == visited[i]) ! return true; } return false; } --- 523,530 ---- // simple linear search is faster than binary search. for (int i = 1; i < visited[0]; i++) { ! if (n == visited[i]) ! return true; } return false; } *************** final class RETokenRepeated extends RETo *** 535,543 **** return visited; if (visited[0] >= visited.length - 1) { ! int[] newvisited = new int[visited.length + 32]; ! System.arraycopy (visited, 0, newvisited, 0, visited.length); ! visited = newvisited; } visited[0]++; visited[visited[0]] = n; --- 535,543 ---- return visited; if (visited[0] >= visited.length - 1) { ! int[] newvisited = new int[visited.length + 32]; ! System.arraycopy (visited, 0, newvisited, 0, visited.length); ! visited = newvisited; } visited[0]++; visited[visited[0]] = n; *************** final class RETokenRepeated extends RETo *** 548,554 **** { if (next (input, newMatch)) { ! return newMatch; } return null; } --- 548,554 ---- { if (next (input, newMatch)) { ! return newMatch; } return null; } *************** final class RETokenRepeated extends RETo *** 573,579 **** } private REMatch backtrackFixedLength (CharIndexed input, REMatch mymatch, ! Object param) { int[] params = (int[]) param; int index = params[0]; --- 573,579 ---- } private REMatch backtrackFixedLength (CharIndexed input, REMatch mymatch, ! Object param) { int[] params = (int[]) param; int index = params[0]; *************** final class RETokenRepeated extends RETo *** 582,615 **** } private REMatch findMatchFixedLength (CharIndexed input, REMatch mymatch, ! int index, int count) { REMatch tryMatch = (REMatch) mymatch.clone (); while (true) { ! tryMatch.index = index; ! REMatch m = matchRest (input, tryMatch); ! count--; ! if (stingy) ! index += tokenFixedLength; ! else ! index -= tokenFixedLength; ! if (possessive) ! return m; ! if (m != null) ! { ! if (count > 0) ! { ! m.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! new int[] ! { ! index, count})); ! } ! return m; ! } ! if (count <= 0) ! return null; } } --- 582,615 ---- } private REMatch findMatchFixedLength (CharIndexed input, REMatch mymatch, ! int index, int count) { REMatch tryMatch = (REMatch) mymatch.clone (); while (true) { ! tryMatch.index = index; ! REMatch m = matchRest (input, tryMatch); ! count--; ! if (stingy) ! index += tokenFixedLength; ! else ! index -= tokenFixedLength; ! if (possessive) ! return m; ! if (m != null) ! { ! if (count > 0) ! { ! m.backtrackStack.push (new BacktrackStack. ! Backtrack (this, input, mymatch, ! new int[] ! { ! index, count})); ! } ! return m; ! } ! if (count <= 0) ! return null; } } *************** final class RETokenRepeated extends RETo *** 624,637 **** os.append ('?'); else { ! os.append ('{').append (min); ! if (max > min) ! { ! os.append (','); ! if (max != Integer.MAX_VALUE) ! os.append (max); ! } ! os.append ('}'); } if (stingy) os.append ('?'); --- 624,637 ---- os.append ('?'); else { ! os.append ('{').append (min); ! if (max > min) ! { ! os.append (','); ! if (max != Integer.MAX_VALUE) ! os.append (max); ! } ! os.append ('}'); } if (stingy) os.append ('?'); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenStart.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenStart.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenStart.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenStart.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.lang.CPStringBuilder; *** 41,47 **** class RETokenStart extends REToken { ! private String newline; // matches after a newline private boolean check_java_line_terminators; RETokenStart (int subIndex, String newline) --- 41,47 ---- class RETokenStart extends REToken { ! private String newline; // matches after a newline private boolean check_java_line_terminators; RETokenStart (int subIndex, String newline) *************** class RETokenStart extends REToken *** 58,70 **** this.check_java_line_terminators = b; } ! @Override int getMaximumLength () { return 0; } ! @Override REMatch matchThis (CharIndexed input, REMatch mymatch) { // charAt(index-n) may be unknown on a Reader/InputStream. FIXME --- 58,70 ---- this.check_java_line_terminators = b; } ! @Override int getMaximumLength () { return 0; } ! @Override REMatch matchThis (CharIndexed input, REMatch mymatch) { // charAt(index-n) may be unknown on a Reader/InputStream. FIXME *************** class RETokenStart extends REToken *** 72,123 **** if (check_java_line_terminators) { ! char ch = input.charAt (mymatch.index - 1); ! if (ch != CharIndexed.OUT_OF_BOUNDS) ! { ! if (ch == '\n') ! return mymatch; ! if (ch == '\r') ! { ! char ch1 = input.charAt (mymatch.index); ! if (ch1 != '\n') ! return mymatch; ! return null; ! } ! if (ch == '\u0085') ! return mymatch; // A next-line character ! if (ch == '\u2028') ! return mymatch; // A line-separator character ! if (ch == '\u2029') ! return mymatch; // A paragraph-separator character ! } } if (newline != null) { ! int len = newline.length (); ! if (mymatch.offset >= len) ! { ! boolean found = true; ! char z; ! int i = 0; // position in REToken.newline ! char ch = input.charAt (mymatch.index - len); ! do ! { ! z = newline.charAt (i); ! if (ch != z) ! { ! found = false; ! break; ! } ! ++i; ! ch = input.charAt (mymatch.index - len + i); ! } ! while (i < len); ! if (found) ! return mymatch; ! } } // Don't match at all if REG_NOTBOL is set. --- 72,123 ---- if (check_java_line_terminators) { ! char ch = input.charAt (mymatch.index - 1); ! if (ch != CharIndexed.OUT_OF_BOUNDS) ! { ! if (ch == '\n') ! return mymatch; ! if (ch == '\r') ! { ! char ch1 = input.charAt (mymatch.index); ! if (ch1 != '\n') ! return mymatch; ! return null; ! } ! if (ch == '\u0085') ! return mymatch; // A next-line character ! if (ch == '\u2028') ! return mymatch; // A line-separator character ! if (ch == '\u2029') ! return mymatch; // A paragraph-separator character ! } } if (newline != null) { ! int len = newline.length (); ! if (mymatch.offset >= len) ! { ! boolean found = true; ! char z; ! int i = 0; // position in REToken.newline ! char ch = input.charAt (mymatch.index - len); ! do ! { ! z = newline.charAt (i); ! if (ch != z) ! { ! found = false; ! break; ! } ! ++i; ! ch = input.charAt (mymatch.index - len + i); ! } ! while (i < len); ! if (found) ! return mymatch; ! } } // Don't match at all if REG_NOTBOL is set. *************** class RETokenStart extends REToken *** 130,136 **** return ((mymatch.index == 0) && (mymatch.offset == 0)) ? mymatch : null; } ! @Override boolean returnsFixedLengthMatches () { return true; --- 130,136 ---- return ((mymatch.index == 0) && (mymatch.offset == 0)) ? mymatch : null; } ! @Override boolean returnsFixedLengthMatches () { return true; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java Tue Jan 11 19:46:05 2011 *************** final class RETokenWordBoundary extends *** 71,94 **** // In the string "one two three", these positions match: // |o|n|e| |t|w|o| |t|h|r|e|e| // ^ ^ ^ ^ ^ ^ ! boolean after = false; // is current character a letter or digit? ! boolean before = false; // is previous character a letter or digit? char ch; // TODO: Also check REG_ANCHORINDEX vs. anchor if (((mymatch.eflags & RE.REG_ANCHORINDEX) != RE.REG_ANCHORINDEX) ! || (mymatch.offset + mymatch.index > mymatch.anchor)) { ! if ((ch = ! input.charAt (mymatch.index - 1)) != CharIndexed.OUT_OF_BOUNDS) ! { ! before = Character.isLetterOrDigit (ch) || (ch == '_'); ! } } if ((ch = input.charAt (mymatch.index)) != CharIndexed.OUT_OF_BOUNDS) { ! after = Character.isLetterOrDigit (ch) || (ch == '_'); } // if (before) and (!after), we're at end (\>) --- 71,94 ---- // In the string "one two three", these positions match: // |o|n|e| |t|w|o| |t|h|r|e|e| // ^ ^ ^ ^ ^ ^ ! boolean after = false; // is current character a letter or digit? ! boolean before = false; // is previous character a letter or digit? char ch; // TODO: Also check REG_ANCHORINDEX vs. anchor if (((mymatch.eflags & RE.REG_ANCHORINDEX) != RE.REG_ANCHORINDEX) ! || (mymatch.offset + mymatch.index > mymatch.anchor)) { ! if ((ch = ! input.charAt (mymatch.index - 1)) != CharIndexed.OUT_OF_BOUNDS) ! { ! before = Character.isLetterOrDigit (ch) || (ch == '_'); ! } } if ((ch = input.charAt (mymatch.index)) != CharIndexed.OUT_OF_BOUNDS) { ! after = Character.isLetterOrDigit (ch) || (ch == '_'); } // if (before) and (!after), we're at end (\>) *************** final class RETokenWordBoundary extends *** 97,107 **** if ((where & BEGIN) == BEGIN) { ! doNext = after && !before; } if ((where & END) == END) { ! doNext ^= before && !after; } if (negated) --- 97,107 ---- if ((where & BEGIN) == BEGIN) { ! doNext = after && !before; } if ((where & END) == END) { ! doNext ^= before && !after; } if (negated) *************** final class RETokenWordBoundary extends *** 127,141 **** { if (where == (BEGIN | END)) { ! os.append (negated ? "\\B" : "\\b"); } else if (where == BEGIN) { ! os.append ("\\<"); } else { ! os.append ("\\>"); } } } --- 127,141 ---- { if (where == (BEGIN | END)) { ! os.append (negated ? "\\B" : "\\b"); } else if (where == BEGIN) { ! os.append ("\\<"); } else { ! os.append ("\\>"); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/java/util/regex/UncheckedRE.java gcc-4.6.0/libjava/classpath/gnu/java/util/regex/UncheckedRE.java *** gcc-4.5.2/libjava/classpath/gnu/java/util/regex/UncheckedRE.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/java/util/regex/UncheckedRE.java Tue Jan 11 19:46:05 2011 *************** package gnu.java.util.regex; *** 47,57 **** *

          * Note that this makes UncheckedRE dangerous if constructed with * dynamic data. Do not use UncheckedRE unless you are completely sure ! * that all input being passed to it contains valid, well-formed * regular expressions for the syntax specified. * * @author Wes Biggs ! * @see gnu.java.util.regex.RE * @since gnu.regexp 1.1.4 */ --- 47,57 ---- *

          * Note that this makes UncheckedRE dangerous if constructed with * dynamic data. Do not use UncheckedRE unless you are completely sure ! * that all input being passed to it contains valid, well-formed * regular expressions for the syntax specified. * * @author Wes Biggs ! * @see gnu.java.util.regex.RE * @since gnu.regexp 1.1.4 */ *************** public final class UncheckedRE extends R *** 105,111 **** try { initialize (pattern, cflags, syntax, 0, 0); ! } catch (REException e) { throw new RuntimeException (e.getMessage ()); --- 105,111 ---- try { initialize (pattern, cflags, syntax, 0, 0); ! } catch (REException e) { throw new RuntimeException (e.getMessage ()); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java gcc-4.6.0/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java Tue Jan 11 19:46:05 2011 *************** public class ImageViewer extends Compone *** 129,135 **** if (is.width > -1 && is.height > -1) { Dimension cs = getSize(); ! g.drawImage(image, 0, 0, cs.width, cs.height, 0, 0, is.width, is.height, this); } } --- 129,135 ---- if (is.width > -1 && is.height > -1) { Dimension cs = getSize(); ! g.drawImage(image, 0, 0, cs.width, cs.height, 0, 0, is.width, is.height, this); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java gcc-4.6.0/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java *** gcc-4.5.2/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java Tue Jan 11 19:46:05 2011 *************** public class TextEditor extends TextArea *** 104,110 **** { try { ! out.close(); } catch (IOException e) --- 104,110 ---- { try { ! out.close(); } catch (IOException e) *************** public class TextEditor extends TextArea *** 115,119 **** } } } ! } --- 115,119 ---- } } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java gcc-4.6.0/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java Tue Jan 11 19:46:05 2011 *************** public class TextViewer extends TextArea *** 77,81 **** in.close(); setText(bytes.toString()); } ! } --- 77,81 ---- in.close(); setText(bytes.toString()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Assembly.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Assembly.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Assembly.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Assembly.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Assembly.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Assembly.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.util.Map; *** 49,55 **** * Once constructed, and correctly initialised, the bulk of the methods * available on the Assembly are delegated to the head of * the {@link Transformer} chain of the Assembly. ! * * @see Transformer */ public class Assembly --- 49,55 ---- * Once constructed, and correctly initialised, the bulk of the methods * available on the Assembly are delegated to the head of * the {@link Transformer} chain of the Assembly. ! * * @see Transformer */ public class Assembly *************** public class Assembly *** 79,85 **** * in pre-processing mode; i.e. it should apply its internal transformation * algorithm on the input data stream, before it passes that stream to * the next element in the chain. ! * * @param t the {@link Transformer} to add at the head of the current chain. * @throws IllegalArgumentException if the designated {@link Transformer} has * a non-null tail; i.e. it is already an element of a chain. --- 79,85 ---- * in pre-processing mode; i.e. it should apply its internal transformation * algorithm on the input data stream, before it passes that stream to * the next element in the chain. ! * * @param t the {@link Transformer} to add at the head of the current chain. * @throws IllegalArgumentException if the designated {@link Transformer} has * a non-null tail; i.e. it is already an element of a chain. *************** public class Assembly *** 94,100 **** * in post-processing mode; i.e. it should apply its internal transformation * algorithm on the input data stream, after it passes that stream to * the next element in the chain. ! * * @param t the {@link Transformer} to add at the head of the current chain. * @throws IllegalArgumentException if the designated {@link Transformer} has * a non-null tail; i.e. it is already an element of a chain. --- 94,100 ---- * in post-processing mode; i.e. it should apply its internal transformation * algorithm on the input data stream, after it passes that stream to * the next element in the chain. ! * * @param t the {@link Transformer} to add at the head of the current chain. * @throws IllegalArgumentException if the designated {@link Transformer} has * a non-null tail; i.e. it is already an element of a chain. *************** public class Assembly *** 107,113 **** /** * Initialises the Assembly for operation with specific * characteristics. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalStateException if the instance is already initialised. --- 107,113 ---- /** * Initialises the Assembly for operation with specific * characteristics. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalStateException if the instance is already initialised. *************** public class Assembly *** 138,144 **** * Convenience method that calls the method with same name and three * arguments, using a byte array of length 1 whose contents are * the designated byte. ! * * @param b the byte to process. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. --- 138,144 ---- * Convenience method that calls the method with same name and three * arguments, using a byte array of length 1 whose contents are * the designated byte. ! * * @param b the byte to process. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. *************** public class Assembly *** 155,161 **** * Convenience method that calls the method with same name and three * arguments. All bytes in in, starting from index position * 0 are considered. ! * * @param in the input data bytes. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. --- 155,161 ---- * Convenience method that calls the method with same name and three * arguments. All bytes in in, starting from index position * 0 are considered. ! * * @param in the input data bytes. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. *************** public class Assembly *** 170,176 **** /** * Processes a designated number of bytes from a given byte array. ! * * @param in the input data bytes. * @param offset index of in from which to start considering * data. --- 170,176 ---- /** * Processes a designated number of bytes from a given byte array. ! * * @param in the input data bytes. * @param offset index of in from which to start considering * data. *************** public class Assembly *** 191,197 **** /** * Convenience method that calls the method with same name and three arguments * using a 0-long byte array. ! * * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. * @throws TransformerException if a transformation-related exception occurs --- 191,197 ---- /** * Convenience method that calls the method with same name and three arguments * using a 0-long byte array. ! * * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. * @throws TransformerException if a transformation-related exception occurs *************** public class Assembly *** 207,213 **** * Convenience method that calls the method with same name and three * arguments, using a byte array of length 1 whose contents are * the designated byte. ! * * @param b the byte to process. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. --- 207,213 ---- * Convenience method that calls the method with same name and three * arguments, using a byte array of length 1 whose contents are * the designated byte. ! * * @param b the byte to process. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. *************** public class Assembly *** 224,230 **** * Convenience method that calls the method with same name and three * arguments. All bytes in in, starting from index position * 0 are considered. ! * * @param in the input data bytes. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. --- 224,230 ---- * Convenience method that calls the method with same name and three * arguments. All bytes in in, starting from index position * 0 are considered. ! * * @param in the input data bytes. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. *************** public class Assembly *** 241,247 **** * Processes a designated number of bytes from a given byte array and signals, * at the same time, that this is the last push operation for this * Assembly. ! * * @param in the input data bytes. * @param offset index of in from which to start considering * data. --- 241,247 ---- * Processes a designated number of bytes from a given byte array and signals, * at the same time, that this is the last push operation for this * Assembly. ! * * @param in the input data bytes. * @param offset index of in from which to start considering * data. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Cascade.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Cascade.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Cascade.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Cascade.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Cascade.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Cascade.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class Cascade *** 100,106 **** /** * Returns the Least Common Multiple of two integers. ! * * @param a the first integer. * @param b the second integer. * @return the LCM of abs(a) and abs(b). --- 100,106 ---- /** * Returns the Least Common Multiple of two integers. ! * * @param a the first integer. * @param b the second integer. * @return the LCM of abs(a) and abs(b). *************** public class Cascade *** 114,120 **** /** * Adds to the end of the current chain, a designated {@link Stage}. ! * * @param stage the {@link Stage} to append to the chain. * @return a unique identifier for this stage, within this cascade. * @throws IllegalStateException if the instance is already initialised. --- 114,120 ---- /** * Adds to the end of the current chain, a designated {@link Stage}. ! * * @param stage the {@link Stage} to append to the chain. * @return a unique identifier for this stage, within this cascade. * @throws IllegalStateException if the instance is already initialised. *************** public class Cascade *** 129,135 **** /** * Adds to the begining of the current chain, a designated {@link Stage}. ! * * @param stage the {@link Stage} to prepend to the chain. * @return a unique identifier for this stage, within this cascade. * @throws IllegalStateException if the instance is already initialised. --- 129,135 ---- /** * Adds to the begining of the current chain, a designated {@link Stage}. ! * * @param stage the {@link Stage} to prepend to the chain. * @return a unique identifier for this stage, within this cascade. * @throws IllegalStateException if the instance is already initialised. *************** public class Cascade *** 145,151 **** /** * Inserts a {@link Stage} into the current chain, at the specified index * (zero-based) position. ! * * @param stage the {@link Stage} to insert into the chain. * @return a unique identifier for this stage, within this cascade. * @throws IllegalArgumentException if the designated stage is already in the --- 145,151 ---- /** * Inserts a {@link Stage} into the current chain, at the specified index * (zero-based) position. ! * * @param stage the {@link Stage} to insert into the chain. * @return a unique identifier for this stage, within this cascade. * @throws IllegalArgumentException if the designated stage is already in the *************** public class Cascade *** 187,193 **** /** * Returns the current number of stages in this chain. ! * * @return the current count of stages in this chain. */ public int size() --- 187,193 ---- /** * Returns the current number of stages in this chain. ! * * @return the current count of stages in this chain. */ public int size() *************** public class Cascade *** 199,205 **** * Returns an {@link Iterator} over the stages contained in this instance. * Each element of this iterator is a concrete implementation of a {@link * Stage}. ! * * @return an {@link Iterator} over the stages contained in this instance. * Each element of the returned iterator is a concrete instance of a * {@link Stage}. --- 199,205 ---- * Returns an {@link Iterator} over the stages contained in this instance. * Each element of this iterator is a concrete implementation of a {@link * Stage}. ! * * @return an {@link Iterator} over the stages contained in this instance. * Each element of the returned iterator is a concrete instance of a * {@link Stage}. *************** public class Cascade *** 216,222 **** * Returns the {@link Set} of supported block sizes for this * Cascade that are common to all of its chained stages. Each * element in the returned {@link Set} is an instance of {@link Integer}. ! * * @return a {@link Set} of supported block sizes common to all the stages of * the chain. */ --- 216,222 ---- * Returns the {@link Set} of supported block sizes for this * Cascade that are common to all of its chained stages. Each * element in the returned {@link Set} is an instance of {@link Integer}. ! * * @return a {@link Set} of supported block sizes common to all the stages of * the chain. */ *************** public class Cascade *** 236,242 **** /** * Initialises the chain for operation with specific characteristics. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalStateException if the chain, or any of its stages, is --- 236,242 ---- /** * Initialises the chain for operation with specific characteristics. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalStateException if the chain, or any of its stages, is *************** public class Cascade *** 273,279 **** /** * Returns the currently set block size for the chain. ! * * @return the current block size for the chain. * @throws IllegalStateException if the instance is not initialised. */ --- 273,279 ---- /** * Returns the currently set block size for the chain. ! * * @return the current block size for the chain. * @throws IllegalStateException if the instance is not initialised. */ *************** public class Cascade *** 302,308 **** * Processes exactly one block of plaintext (if initialised in the * {@link Direction#FORWARD} state) or ciphertext (if initialised in * the {@link Direction#REVERSED} state). ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. --- 302,308 ---- * Processes exactly one block of plaintext (if initialised in the * {@link Direction#FORWARD} state) or ciphertext (if initialised in * the {@link Direction#REVERSED} state). ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. *************** public class Cascade *** 332,338 **** * encryption / decryption test(s) for all supported block and key sizes of * underlying block cipher(s) wrapped by Mode leafs. The test also includes * one (1) variable key Known Answer Test (KAT) for each block cipher. ! * * @return true if the implementation passes simple * correctness tests. Returns false otherwise. */ --- 332,338 ---- * encryption / decryption test(s) for all supported block and key sizes of * underlying block cipher(s) wrapped by Mode leafs. The test also includes * one (1) variable key Known Answer Test (KAT) for each block cipher. ! * * @return true if the implementation passes simple * correctness tests. Returns false otherwise. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/CascadeStage.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/CascadeStage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/CascadeStage.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/CascadeStage.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CascadeStage.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CascadeStage.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/CascadeTransformer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/CascadeTransformer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/CascadeTransformer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/CascadeTransformer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CascadeTransformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CascadeTransformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/DeflateTransformer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/DeflateTransformer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/DeflateTransformer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/DeflateTransformer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DeflateTransformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DeflateTransformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Direction.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Direction.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Direction.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Direction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Direction.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Direction.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/LoopbackTransformer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/LoopbackTransformer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/LoopbackTransformer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/LoopbackTransformer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LoopbackTransformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* LoopbackTransformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/ModeStage.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/ModeStage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/ModeStage.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/ModeStage.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ModeStage.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ModeStage.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Operation.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Operation.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Operation.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Operation.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Operation.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Operation.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/PaddingTransformer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/PaddingTransformer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/PaddingTransformer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/PaddingTransformer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PaddingTransformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PaddingTransformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Stage.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Stage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Stage.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Stage.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Stage.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Stage.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.util.Set; *** 56,62 **** * the specification of how to wire the stage into the chain. The following * diagrams may help understand the paradigme. The first shows two stages * chained each with a {@link Direction#FORWARD} direction. ! * *

             *            FORWARD         FORWARD
             *        +------+       +-------+
          --- 56,62 ----
             * the specification of how to wire the stage into the chain. The following
             * diagrams may help understand the paradigme. The first shows two stages
             * chained each with a {@link Direction#FORWARD} direction.
          !  *
             * 
             *            FORWARD         FORWARD
             *        +------+       +-------+
          *************** import java.util.Set;
          *** 67,78 ****
             *               |       |       |      |
             *               +-------+       +------+
             * 
          ! * *

          * The second diagram shows two stages, one in a {@link Direction#FORWARD} * direction, while the other is wired in a {@link Direction#REVERSED} * direction. ! * *

             *            FORWARD         REVERSED
             *        +------+               +------+
          --- 67,78 ----
             *               |       |       |      |
             *               +-------+       +------+
             * 
          ! * *

          * The second diagram shows two stages, one in a {@link Direction#FORWARD} * direction, while the other is wired in a {@link Direction#REVERSED} * direction. ! * *

             *            FORWARD         REVERSED
             *        +------+               +------+
          *************** import java.util.Set;
          *** 83,89 ****
             *               |               |
             *               +---------------+
             * 
          ! * * @see ModeStage * @see CascadeStage */ --- 83,89 ---- * | | * +---------------+ *
          ! * * @see ModeStage * @see CascadeStage */ *************** public abstract class Stage *** 118,131 **** * Returns the {@link Set} of supported block sizes for this * Stage. Each element in the returned {@link Set} is an * instance of {@link Integer}. ! * * @return a {@link Set} of supported block sizes. */ public abstract Set blockSizes(); /** * Initialises the stage for operation with specific characteristics. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalStateException if the instance is already initialised. --- 118,131 ---- * Returns the {@link Set} of supported block sizes for this * Stage. Each element in the returned {@link Set} is an * instance of {@link Integer}. ! * * @return a {@link Set} of supported block sizes. */ public abstract Set blockSizes(); /** * Initialises the stage for operation with specific characteristics. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalStateException if the instance is already initialised. *************** public abstract class Stage *** 147,153 **** /** * Returns the currently set block size for the stage. ! * * @return the current block size for this stage. * @throws IllegalStateException if the instance is not initialised. */ --- 147,153 ---- /** * Returns the currently set block size for the stage. ! * * @return the current block size for this stage. * @throws IllegalStateException if the instance is not initialised. */ *************** public abstract class Stage *** 167,173 **** * Processes exactly one block of plaintext (if initialised in the * {@link Direction#FORWARD} state) or ciphertext (if initialised in * the {@link Direction#REVERSED} state). ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. --- 167,173 ---- * Processes exactly one block of plaintext (if initialised in the * {@link Direction#FORWARD} state) or ciphertext (if initialised in * the {@link Direction#REVERSED} state). ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. *************** public abstract class Stage *** 187,193 **** * encryption / decryption test(s) for all supported block and key sizes of * underlying block cipher(s) wrapped by Mode leafs. The test also includes * one (1) variable key Known Answer Test (KAT) for each block cipher. ! * * @return true if the implementation passes simple * correctness tests. Returns false otherwise. */ --- 187,193 ---- * encryption / decryption test(s) for all supported block and key sizes of * underlying block cipher(s) wrapped by Mode leafs. The test also includes * one (1) variable key Known Answer Test (KAT) for each block cipher. ! * * @return true if the implementation passes simple * correctness tests. Returns false otherwise. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Transformer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Transformer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/Transformer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/Transformer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Transformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Transformer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.util.Map; *** 73,79 **** * buffering, from the previous element, is needed --which is independant of * buffering the input if the Transformer implementation itself * is block-based. ! * * @see CascadeTransformer * @see PaddingTransformer * @see DeflateTransformer --- 73,79 ---- * buffering, from the previous element, is needed --which is independant of * buffering the input if the Transformer implementation itself * is block-based. ! * * @see CascadeTransformer * @see PaddingTransformer * @see DeflateTransformer *************** public abstract class Transformer *** 117,123 **** /** * Sets the operational mode of this Transformer. ! * * @param mode the processing mode this Transformer is required * to operate in. * @throws IllegalStateException if this instance has already been assigned an --- 117,123 ---- /** * Sets the operational mode of this Transformer. ! * * @param mode the processing mode this Transformer is required * to operate in. * @throws IllegalStateException if this instance has already been assigned an *************** public abstract class Transformer *** 133,139 **** /** * Returns true if this Transformer was wired in * pre-processing mode; false otherwise. ! * * @return true if this Transformer has been * wired in pre-processing mode; false otherwise. * @throws IllegalStateException if this instance has not yet been assigned an --- 133,139 ---- /** * Returns true if this Transformer was wired in * pre-processing mode; false otherwise. ! * * @return true if this Transformer has been * wired in pre-processing mode; false otherwise. * @throws IllegalStateException if this instance has not yet been assigned an *************** public abstract class Transformer *** 149,155 **** /** * Returns true if this Transformer was wired in * post-processing mode; false otherwise. ! * * @return true if this Transformer has been * wired in post-processing mode; false otherwise. * @throws IllegalStateException if this instance has not yet been assigned an --- 149,155 ---- /** * Returns true if this Transformer was wired in * post-processing mode; false otherwise. ! * * @return true if this Transformer has been * wired in post-processing mode; false otherwise. * @throws IllegalStateException if this instance has not yet been assigned an *************** public abstract class Transformer *** 163,169 **** /** * Initialises the Transformer for operation with specific * characteristics. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalStateException if the instance is already initialised. --- 163,169 ---- /** * Initialises the Transformer for operation with specific * characteristics. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalStateException if the instance is already initialised. *************** public abstract class Transformer *** 185,191 **** /** * Returns the block-size of this Transformer. A value of * 1 indicates that this instance is block-agnostic. ! * * @return the current minimal required block size. */ public int currentBlockSize() --- 185,191 ---- /** * Returns the block-size of this Transformer. A value of * 1 indicates that this instance is block-agnostic. ! * * @return the current minimal required block size. */ public int currentBlockSize() *************** public abstract class Transformer *** 212,218 **** * Convenience method that calls the method with same name and three * arguments, using a byte array of length 1 whose contents are * the designated byte. ! * * @param b the byte to process. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. --- 212,218 ---- * Convenience method that calls the method with same name and three * arguments, using a byte array of length 1 whose contents are * the designated byte. ! * * @param b the byte to process. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. *************** public abstract class Transformer *** 229,235 **** * Convenience method that calls the same method with three arguments. All * bytes in in, starting from index position 0 * are considered. ! * * @param in the input data bytes. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. --- 229,235 ---- * Convenience method that calls the same method with three arguments. All * bytes in in, starting from index position 0 * are considered. ! * * @param in the input data bytes. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. *************** public abstract class Transformer *** 244,250 **** /** * Processes a designated number of bytes from a given byte array. ! * * @param in the input data bytes. * @param offset index of in from which to start considering * data. --- 244,250 ---- /** * Processes a designated number of bytes from a given byte array. ! * * @param in the input data bytes. * @param offset index of in from which to start considering * data. *************** public abstract class Transformer *** 267,273 **** /** * Convenience method that calls the same method with three arguments. A * zero-long byte array is used. ! * * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. * @throws TransformerException if a transformation-related exception occurs --- 267,273 ---- /** * Convenience method that calls the same method with three arguments. A * zero-long byte array is used. ! * * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. * @throws TransformerException if a transformation-related exception occurs *************** public abstract class Transformer *** 287,293 **** * Convenience method that calls the method with same name and three * arguments, using a byte array of length 1 whose contents are * the designated byte. ! * * @param b the byte to process. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. --- 287,293 ---- * Convenience method that calls the method with same name and three * arguments, using a byte array of length 1 whose contents are * the designated byte. ! * * @param b the byte to process. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. *************** public abstract class Transformer *** 304,310 **** * Convenience method that calls the same method with three arguments. All * bytes in in, starting from index position 0 * are considered. ! * * @param in the input data bytes. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. --- 304,310 ---- * Convenience method that calls the same method with three arguments. All * bytes in in, starting from index position 0 * are considered. ! * * @param in the input data bytes. * @return the result of transformation. * @throws IllegalStateException if the instance is not initialised. *************** public abstract class Transformer *** 321,327 **** * Processes a designated number of bytes from a given byte array and signals, * at the same time, that this is the last push operation on this * Transformer. ! * * @param in the input data bytes. * @param offset index of in from which to start considering * data. --- 321,327 ---- * Processes a designated number of bytes from a given byte array and signals, * at the same time, that this is the last push operation on this * Transformer. ! * * @param in the input data bytes. * @param offset index of in from which to start considering * data. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TransformerException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TransformerException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class TransformerException *** 95,101 **** * Prints this exception's stack trace to a print stream. If this exception * has a root exception; the stack trace of the root exception is also printed * to the print stream. ! * * @param ps the non-null print stream to which to print. */ public void printStackTrace(PrintStream ps) --- 95,101 ---- * Prints this exception's stack trace to a print stream. If this exception * has a root exception; the stack trace of the root exception is also printed * to the print stream. ! * * @param ps the non-null print stream to which to print. */ public void printStackTrace(PrintStream ps) *************** public class TransformerException *** 109,115 **** * Prints this exception's stack trace to a print writer. If this exception * has a root exception; the stack trace of the root exception is also printed * to the print writer. ! * * @param pw the non-null print writer to use for output. */ public void printStackTrace(PrintWriter pw) --- 109,115 ---- * Prints this exception's stack trace to a print writer. If this exception * has a root exception; the stack trace of the root exception is also printed * to the print writer. ! * * @param pw the non-null print writer to use for output. */ public void printStackTrace(PrintWriter pw) *************** public class TransformerException *** 125,131 **** * and if it has a root exception, the string representation of the root * exception. This string representation is meant for debugging and not meant * to be interpreted programmatically. ! * * @return the non-null string representation of this exception. * @see Throwable#getMessage() */ --- 125,131 ---- * and if it has a root exception, the string representation of the root * exception. This string representation is meant for debugging and not meant * to be interpreted programmatically. ! * * @return the non-null string representation of this exception. * @see Throwable#getMessage() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Anubis.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Anubis.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Anubis.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Anubis.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Anubis.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Anubis.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class Anubis *** 315,321 **** /** * Expands a user-supplied key material into a session key for a designated * block size. ! * * @param uk the 32N-bit user-supplied key material; 4 <= N <= 10. * @param bs the desired block size in bytes. * @return an Object encapsulating the session key. --- 315,321 ---- /** * Expands a user-supplied key material into a session key for a designated * block size. ! * * @param uk the 32N-bit user-supplied key material; 4 <= N <= 10. * @param bs the desired block size in bytes. * @return an Object encapsulating the session key. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BaseCipher.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BaseCipher.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class BaseCipher *** 72,78 **** /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name prefix of this instance. * @param defaultBlockSize the default block size in bytes. * @param defaultKeySize the default key size in bytes. --- 72,78 ---- /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name prefix of this instance. * @param defaultBlockSize the default block size in bytes. * @param defaultKeySize the default key size in bytes. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Blowfish.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Blowfish.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Blowfish.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Blowfish.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Blowfish.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Blowfish.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Cast5.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Cast5.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Cast5.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Cast5.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Cast5.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Cast5.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/CipherFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/CipherFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/CipherFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/CipherFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CipherFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CipherFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class CipherFactory *** 58,64 **** /** * Returns an instance of a block cipher given its name. ! * * @param name the case-insensitive name of the symmetric-key block cipher * algorithm. * @return an instance of the designated cipher algorithm, or --- 58,64 ---- /** * Returns an instance of a block cipher given its name. ! * * @param name the case-insensitive name of the symmetric-key block cipher * algorithm. * @return an instance of the designated cipher algorithm, or *************** public class CipherFactory *** 107,113 **** /** * Returns a {@link Set} of symmetric key block cipher implementation names * supported by this Factory. ! * * @return a {@link Set} of block cipher names (Strings). */ public static final Set getNames() --- 107,113 ---- /** * Returns a {@link Set} of symmetric key block cipher implementation names * supported by this Factory. ! * * @return a {@link Set} of block cipher names (Strings). */ public static final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/DES.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/DES.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/DES.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/DES.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DES.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DES.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class DES *** 204,210 **** /** * Weak keys (parity adjusted): If all the bits in each half are either 0 * or 1, then the key used for any cycle of the algorithm is the same as ! * all other cycles. */ public static final byte[][] WEAK_KEYS = { Util.toBytesFromString("0101010101010101"), --- 204,210 ---- /** * Weak keys (parity adjusted): If all the bits in each half are either 0 * or 1, then the key used for any cycle of the algorithm is the same as ! * all other cycles. */ public static final byte[][] WEAK_KEYS = { Util.toBytesFromString("0101010101010101"), diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/IBlockCipher.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/IBlockCipher.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/IBlockCipher.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/IBlockCipher.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IBlockCipher.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IBlockCipher.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IBlockCipher *** 88,108 **** /** * Returns the canonical name of this instance. ! * * @return the canonical name of this instance. */ String name(); /** * Returns the default value, in bytes, of the algorithm's block size. ! * * @return the default value, in bytes, of the algorithm's block size. */ int defaultBlockSize(); /** * Returns the default value, in bytes, of the algorithm's key size. ! * * @return the default value, in bytes, of the algorithm's key size. */ int defaultKeySize(); --- 88,108 ---- /** * Returns the canonical name of this instance. ! * * @return the canonical name of this instance. */ String name(); /** * Returns the default value, in bytes, of the algorithm's block size. ! * * @return the default value, in bytes, of the algorithm's block size. */ int defaultBlockSize(); /** * Returns the default value, in bytes, of the algorithm's key size. ! * * @return the default value, in bytes, of the algorithm's key size. */ int defaultKeySize(); *************** public interface IBlockCipher *** 110,116 **** /** * Returns an {@link Iterator} over the supported block sizes. Each element * returned by this object is an {@link Integer}. ! * * @return an {@link Iterator} over the supported block sizes. */ Iterator blockSizes(); --- 110,116 ---- /** * Returns an {@link Iterator} over the supported block sizes. Each element * returned by this object is an {@link Integer}. ! * * @return an {@link Iterator} over the supported block sizes. */ Iterator blockSizes(); *************** public interface IBlockCipher *** 118,131 **** /** * Returns an {@link Iterator} over the supported key sizes. Each element * returned by this object is an {@link Integer}. ! * * @return an {@link Iterator} over the supported key sizes. */ Iterator keySizes(); /** * Returns a clone of this instance. ! * * @return a clone copy of this instance. */ Object clone(); --- 118,131 ---- /** * Returns an {@link Iterator} over the supported key sizes. Each element * returned by this object is an {@link Integer}. ! * * @return an {@link Iterator} over the supported key sizes. */ Iterator keySizes(); /** * Returns a clone of this instance. ! * * @return a clone copy of this instance. */ Object clone(); *************** public interface IBlockCipher *** 133,139 **** /** * Initialises the algorithm with designated attributes. Permissible names and * values are described in the class documentation above. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @exception InvalidKeyException if the key data is invalid. --- 133,139 ---- /** * Initialises the algorithm with designated attributes. Permissible names and * values are described in the class documentation above. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @exception InvalidKeyException if the key data is invalid. *************** public interface IBlockCipher *** 145,151 **** /** * Returns the currently set block size for this instance. ! * * @return the current block size for this instance. * @exception IllegalStateException if the instance is not initialised. */ --- 145,151 ---- /** * Returns the currently set block size for this instance. ! * * @return the current block size for this instance. * @exception IllegalStateException if the instance is not initialised. */ *************** public interface IBlockCipher *** 159,165 **** /** * Encrypts exactly one block of plaintext. ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. --- 159,165 ---- /** * Encrypts exactly one block of plaintext. ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. *************** public interface IBlockCipher *** 172,178 **** /** * Decrypts exactly one block of ciphertext. ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. --- 172,178 ---- /** * Decrypts exactly one block of ciphertext. ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. *************** public interface IBlockCipher *** 187,193 **** * A correctness test that consists of basic symmetric encryption / * decryption test(s) for all supported block and key sizes, as well as one * (1) variable key Known Answer Test (KAT). ! * * @return true if the implementation passes simple * correctness tests. Returns false otherwise. */ --- 187,193 ---- * A correctness test that consists of basic symmetric encryption / * decryption test(s) for all supported block and key sizes, as well as one * (1) variable key Known Answer Test (KAT). ! * * @return true if the implementation passes simple * correctness tests. Returns false otherwise. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/IBlockCipherSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/IBlockCipherSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/IBlockCipherSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/IBlockCipherSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IBlockCipherSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IBlockCipherSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** interface IBlockCipherSpi *** 51,57 **** /** * Returns an {@link Iterator} over the supported block sizes. Each element * returned by this object is a {@link java.lang.Integer}. ! * * @return an Iterator over the supported block sizes. */ Iterator blockSizes(); --- 51,57 ---- /** * Returns an {@link Iterator} over the supported block sizes. Each element * returned by this object is a {@link java.lang.Integer}. ! * * @return an Iterator over the supported block sizes. */ Iterator blockSizes(); *************** interface IBlockCipherSpi *** 59,65 **** /** * Returns an {@link Iterator} over the supported key sizes. Each element * returned by this object is a {@link java.lang.Integer}. ! * * @return an Iterator over the supported key sizes. */ Iterator keySizes(); --- 59,65 ---- /** * Returns an {@link Iterator} over the supported key sizes. Each element * returned by this object is a {@link java.lang.Integer}. ! * * @return an Iterator over the supported key sizes. */ Iterator keySizes(); *************** interface IBlockCipherSpi *** 67,73 **** /** * Expands a user-supplied key material into a session key for a designated * block size. ! * * @param k the user-supplied key material. * @param bs the desired block size in bytes. * @return an Object encapsulating the session key. --- 67,73 ---- /** * Expands a user-supplied key material into a session key for a designated * block size. ! * * @param k the user-supplied key material. * @param bs the desired block size in bytes. * @return an Object encapsulating the session key. *************** interface IBlockCipherSpi *** 78,84 **** /** * Encrypts exactly one block of plaintext. ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. --- 78,84 ---- /** * Encrypts exactly one block of plaintext. ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. *************** interface IBlockCipherSpi *** 96,102 **** /** * Decrypts exactly one block of ciphertext. ! * * @param in the ciphertext. * @param inOffset index of in from which to start considering * data. --- 96,102 ---- /** * Decrypts exactly one block of ciphertext. ! * * @param in the ciphertext. * @param inOffset index of in from which to start considering * data. *************** interface IBlockCipherSpi *** 116,122 **** * A correctness test that consists of basic symmetric encryption / * decryption test(s) for all supported block and key sizes, as well as one * (1) variable key Known Answer Test (KAT). ! * * @return true if the implementation passes simple * correctness tests. Returns false otherwise. */ --- 116,122 ---- * A correctness test that consists of basic symmetric encryption / * decryption test(s) for all supported block and key sizes, as well as one * (1) variable key Known Answer Test (KAT). ! * * @return true if the implementation passes simple * correctness tests. Returns false otherwise. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Khazad.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Khazad.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Khazad.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Khazad.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Khazad.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Khazad.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class Khazad *** 317,323 **** /** * Expands a user-supplied key material into a session key for a designated * block size. ! * * @param uk the 128-bit user-supplied key material. * @param bs the desired block size in bytes. * @return an Object encapsulating the session key. --- 317,323 ---- /** * Expands a user-supplied key material into a session key for a designated * block size. ! * * @param uk the 128-bit user-supplied key material. * @param bs the desired block size in bytes. * @return an Object encapsulating the session key. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/NullCipher.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/NullCipher.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/NullCipher.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/NullCipher.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NullCipher.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* NullCipher.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Rijndael.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Rijndael.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Rijndael.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Rijndael.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Rijndael.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Rijndael.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class Rijndael *** 305,311 **** /** * Returns the number of rounds for a given Rijndael's key and block sizes. ! * * @param ks the size of the user key material in bytes. * @param bs the desired block size in bytes. * @return the number of rounds for a given Rijndael's key and block sizes. --- 305,311 ---- /** * Returns the number of rounds for a given Rijndael's key and block sizes. ! * * @param ks the size of the user key material in bytes. * @param bs the desired block size in bytes. * @return the number of rounds for a given Rijndael's key and block sizes. *************** public final class Rijndael *** 591,597 **** /** * Expands a user-supplied key material into a session key for a designated * block size. ! * * @param k the 128/192/256-bit user-key to use. * @param bs the block size in bytes of this Rijndael. * @return an Object encapsulating the session key. --- 591,597 ---- /** * Expands a user-supplied key material into a session key for a designated * block size. ! * * @param k the 128/192/256-bit user-key to use. * @param bs the block size in bytes of this Rijndael. * @return an Object encapsulating the session key. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Serpent.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Serpent.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Serpent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Serpent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Serpent.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Serpent.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Square.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Square.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Square.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Square.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Square.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Square.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class Square *** 271,277 **** /** * Left rotate a 32-bit chunk. ! * * @param x the 32-bit data to rotate * @param s number of places to left-rotate by * @return the newly permutated value. --- 271,277 ---- /** * Left rotate a 32-bit chunk. ! * * @param x the 32-bit data to rotate * @param s number of places to left-rotate by * @return the newly permutated value. *************** public final class Square *** 283,289 **** /** * Right rotate a 32-bit chunk. ! * * @param x the 32-bit data to rotate * @param s number of places to right-rotate by * @return the newly permutated value. --- 283,289 ---- /** * Right rotate a 32-bit chunk. ! * * @param x the 32-bit data to rotate * @param s number of places to right-rotate by * @return the newly permutated value. *************** public final class Square *** 299,305 **** * Field in GF(2**8). *

          * For best performance call it with abs(b) < abs(a). ! * * @param a operand for multiply. * @param b operand for multiply. * @return the result of (a * b) % ROOT. --- 299,305 ---- * Field in GF(2**8). *

          * For best performance call it with abs(b) < abs(a). ! * * @param a operand for multiply. * @param b operand for multiply. * @return the result of (a * b) % ROOT. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/TripleDES.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/TripleDES.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/TripleDES.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/TripleDES.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TripleDES.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TripleDES.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class TripleDES *** 96,102 **** /** * Convenience method which calls the method with same name and three * arguments, passing 3 as the value of the first parameter. ! * * @param kb The key bytes to adjust. * @param offset The starting offset into the key bytes. */ --- 96,102 ---- /** * Convenience method which calls the method with same name and three * arguments, passing 3 as the value of the first parameter. ! * * @param kb The key bytes to adjust. * @param offset The starting offset into the key bytes. */ *************** public class TripleDES *** 108,114 **** /** * Adjusts, in-situ, the parity of the designated bytes, so they can be used * as DES keys for a 3-DES 1-, 2- or 3-key cipher. ! * * @param keyCount the number of independent DES keys. Can be either * 1, 2 or 3. Any other value * will cause an {@link IllegalArgumentException} to be raised. --- 108,114 ---- /** * Adjusts, in-situ, the parity of the designated bytes, so they can be used * as DES keys for a 3-DES 1-, 2- or 3-key cipher. ! * * @param keyCount the number of independent DES keys. Can be either * 1, 2 or 3. Any other value * will cause an {@link IllegalArgumentException} to be raised. *************** public class TripleDES *** 133,139 **** /** * Convenience method which calls the method with same name and three * arguments, passing 3 as the value of the first parameter. ! * * @param kb The key bytes to test. * @param offset The starting offset into the key bytes. * @return true if the bytes in kb starting at --- 133,139 ---- /** * Convenience method which calls the method with same name and three * arguments, passing 3 as the value of the first parameter. ! * * @param kb The key bytes to test. * @param offset The starting offset into the key bytes. * @return true if the bytes in kb starting at *************** public class TripleDES *** 150,156 **** * Tests if enough bytes, expected to be used as DES keys for a 3-DES 1-, 2- * or 3-key cipher, located in a designated byte array, has already been * parity adjusted. ! * * @param keyCount the number of independent DES keys. Can be either * 1, 2 or 3. Any other value * will cause an {@link IllegalArgumentException} to be raised. --- 150,156 ---- * Tests if enough bytes, expected to be used as DES keys for a 3-DES 1-, 2- * or 3-key cipher, located in a designated byte array, has already been * parity adjusted. ! * * @param keyCount the number of independent DES keys. Can be either * 1, 2 or 3. Any other value * will cause an {@link IllegalArgumentException} to be raised. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Twofish.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Twofish.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/Twofish.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/Twofish.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Twofish.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Twofish.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/WeakKeyException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/WeakKeyException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/cipher/WeakKeyException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/cipher/WeakKeyException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WeakKeyException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* WeakKeyException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java Tue Jan 11 19:46:05 2011 *************** import javax.crypto.spec.SecretKeySpec; *** 54,60 **** /** * The JCE implementation of a 2-party Diffie-Hellman key agreement. ! * * @author Casey Marshall (csm@gnu.org) */ public final class DiffieHellmanImpl --- 54,60 ---- /** * The JCE implementation of a 2-party Diffie-Hellman key agreement. ! * * @author Casey Marshall (csm@gnu.org) */ public final class DiffieHellmanImpl diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/GnuCrypto.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/GnuCrypto.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/GnuCrypto.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/GnuCrypto.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuCrypto.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuCrypto.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.util.Set; *** 51,57 **** /** * The additional GNU algorithm implementation as a Java Cryptographic Extension * (JCE) Provider. ! * * @see java.security.Provider */ public final class GnuCrypto --- 51,57 ---- /** * The additional GNU algorithm implementation as a Java Cryptographic Extension * (JCE) Provider. ! * * @see java.security.Provider */ public final class GnuCrypto *************** public final class GnuCrypto *** 574,580 **** /** * Returns a {@link Set} of names of symmetric key block cipher algorithms * available from this {@link Provider}. ! * * @return a {@link Set} of cipher names (Strings). */ public static final Set getCipherNames() --- 574,580 ---- /** * Returns a {@link Set} of names of symmetric key block cipher algorithms * available from this {@link Provider}. ! * * @return a {@link Set} of cipher names (Strings). */ public static final Set getCipherNames() *************** public final class GnuCrypto *** 588,594 **** /** * Returns a {@link Set} of names of MAC algorithms available from this * {@link Provider}. ! * * @return a {@link Set} of MAC names (Strings). */ public static final Set getMacNames() --- 588,594 ---- /** * Returns a {@link Set} of names of MAC algorithms available from this * {@link Provider}. ! * * @return a {@link Set} of MAC names (Strings). */ public static final Set getMacNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/GnuSasl.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/GnuSasl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/GnuSasl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/GnuSasl.java Tue Jan 11 19:46:05 2011 *************** public final class GnuSasl *** 103,109 **** /** * Returns a {@link Set} of names of SASL Client mechanisms available from * this {@link Provider}. ! * * @return a {@link Set} of SASL Client mechanisms (Strings). */ public static final Set getSaslClientMechanismNames() --- 103,109 ---- /** * Returns a {@link Set} of names of SASL Client mechanisms available from * this {@link Provider}. ! * * @return a {@link Set} of SASL Client mechanisms (Strings). */ public static final Set getSaslClientMechanismNames() *************** public final class GnuSasl *** 114,120 **** /** * Returns a {@link Set} of names of SASL Server mechanisms available from * this {@link Provider}. ! * * @return a {@link Set} of SASL Server mechanisms (Strings). */ public static final Set getSaslServerMechanismNames() --- 114,120 ---- /** * Returns a {@link Set} of names of SASL Server mechanisms available from * this {@link Provider}. ! * * @return a {@link Set} of SASL Server mechanisms (Strings). */ public static final Set getSaslServerMechanismNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PBKDF2SecretKeyFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PBKDF2SecretKeyFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java Tue Jan 11 19:46:05 2011 *************** abstract class AESKeyWrapSpi *** 56,62 **** *

          * In wrapping, the number of 8-byte output blocks is ALWAYS one block longer * than the input. ! * * @param inputLength the size of the plain text. * @return the size in bytes of n + 1 8-byte blocks where * n is the smallest number of 8-byte blocks that contain the --- 56,62 ---- *

          * In wrapping, the number of 8-byte output blocks is ALWAYS one block longer * than the input. ! * * @param inputLength the size of the plain text. * @return the size in bytes of n + 1 8-byte blocks where * n is the smallest number of 8-byte blocks that contain the *************** abstract class AESKeyWrapSpi *** 74,80 **** *

          * In unwrapping, the number of 8-byte output blocks is ALWAYS one block * shorter than the input. ! * * @param inputLength the size of the cipher text. * @return the size in bytes of n - 1 8-byte blocks where * n is the smallest number of 8-byte blocks that contain the --- 74,80 ---- *

          * In unwrapping, the number of 8-byte output blocks is ALWAYS one block * shorter than the input. ! * * @param inputLength the size of the cipher text. * @return the size in bytes of n - 1 8-byte blocks where * n is the smallest number of 8-byte blocks that contain the diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/AESSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/AESSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/AESSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/AESSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AESSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AESSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/ARCFourSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/ARCFourSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/ARCFourSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/ARCFourSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ARCFourSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ARCFourSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/AnubisSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/AnubisSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/AnubisSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/AnubisSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnubisSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AnubisSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/BlowfishSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/BlowfishSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/BlowfishSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/BlowfishSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BlowfishSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BlowfishSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/Cast5Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/Cast5Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/Cast5Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/Cast5Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Cast5Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Cast5Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/CipherAdapter.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/CipherAdapter.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/CipherAdapter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/CipherAdapter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CipherAdapter.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CipherAdapter.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** class CipherAdapter *** 110,116 **** * should be the appropriate one listed in {@link Registry}. The basic cipher * instance is created, along with an instance of the * {@link gnu.javax.crypto.mode.ECB} mode and no padding. ! * * @param cipherName The cipher to instantiate. * @param blockLen The block length to use. */ --- 110,116 ---- * should be the appropriate one listed in {@link Registry}. The basic cipher * instance is created, along with an instance of the * {@link gnu.javax.crypto.mode.ECB} mode and no padding. ! * * @param cipherName The cipher to instantiate. * @param blockLen The block length to use. */ *************** class CipherAdapter *** 125,131 **** /** * Creates a new cipher adapter with the default block size. ! * * @param cipherName The cipher to instantiate. */ protected CipherAdapter(String cipherName) --- 125,131 ---- /** * Creates a new cipher adapter with the default block size. ! * * @param cipherName The cipher to instantiate. */ protected CipherAdapter(String cipherName) *************** class CipherAdapter *** 236,242 **** /** * Executes initialization logic after all parameters have been handled by the * engineInit()s. ! * * @param opmode the desired mode of operation for this instance. * @param key the key material to use for initialization. * @param random a source of randmoness to use if/when needed. --- 236,242 ---- /** * Executes initialization logic after all parameters have been handled by the * engineInit()s. ! * * @param opmode the desired mode of operation for this instance. * @param key the key material to use for initialization. * @param random a source of randmoness to use if/when needed. *************** class CipherAdapter *** 288,294 **** // cipher, that is less than or equal to the length of the kb array. // set keyLen to kbLength. either the cipher implementation will throw // an InvalidKeyException, or it is implemented in a way which can deal ! // with an unsupported key-size. keyLen = kbLength; } if (keyLen < kbLength) --- 288,294 ---- // cipher, that is less than or equal to the length of the kb array. // set keyLen to kbLength. either the cipher implementation will throw // an InvalidKeyException, or it is implemented in a way which can deal ! // with an unsupported key-size. keyLen = kbLength; } if (keyLen < kbLength) *************** class CipherAdapter *** 348,354 **** { throw new InvalidAlgorithmParameterException(); } ! attributes.put(IMode.IV, ((IvParameterSpec) params).getIV()); blockLen = cipher.defaultBlockSize(); attributes.put(IBlockCipher.CIPHER_BLOCK_SIZE, Integer.valueOf(blockLen)); --- 348,354 ---- { throw new InvalidAlgorithmParameterException(); } ! attributes.put(IMode.IV, ((IvParameterSpec) params).getIV()); blockLen = cipher.defaultBlockSize(); attributes.put(IBlockCipher.CIPHER_BLOCK_SIZE, Integer.valueOf(blockLen)); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/DESSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/DESSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/DESSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/DESSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DESSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DESSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java Tue Jan 11 19:46:05 2011 *************** abstract class KeyWrappingAlgorithmAdapt *** 94,100 **** /** * Creates a new JCE Adapter for the designated Key Wrapping Algorithm name. ! * * @param name the canonical name of the key-wrapping algorithm. * @param blockSize the block size in bytes of the underlying symmetric-key * block cipher algorithm. --- 94,100 ---- /** * Creates a new JCE Adapter for the designated Key Wrapping Algorithm name. ! * * @param name the canonical name of the key-wrapping algorithm. * @param blockSize the block size in bytes of the underlying symmetric-key * block cipher algorithm. *************** abstract class KeyWrappingAlgorithmAdapt *** 116,122 **** /** * Wraps the encoded form of a designated {@link Key}. ! * * @param key the key-material to wrap. * @return the wrapped key. * @throws InvalidKeyException If the key cannot be wrapped. --- 116,122 ---- /** * Wraps the encoded form of a designated {@link Key}. ! * * @param key the key-material to wrap. * @return the wrapped key. * @throws InvalidKeyException If the key cannot be wrapped. *************** abstract class KeyWrappingAlgorithmAdapt *** 131,137 **** /** * Unwraps a previously-wrapped key-material. ! * * @param wrappedKey the wrapped key-material to unwrap. * @param wrappedKeyAlgorithm the canonical name of the algorithm, which the * unwrapped key-material represents. This name is used to --- 131,137 ---- /** * Unwraps a previously-wrapped key-material. ! * * @param wrappedKey the wrapped key-material to unwrap. * @param wrappedKeyAlgorithm the canonical name of the algorithm, which the * unwrapped key-material represents. This name is used to *************** abstract class KeyWrappingAlgorithmAdapt *** 286,292 **** ivBytes = ((BlockCipherParameterSpec) params).getIV(); else if (params instanceof IvParameterSpec) ivBytes = ((IvParameterSpec) params).getIV(); ! initAlgorithm(opmode, kekBytes, ivBytes, random); } --- 286,292 ---- ivBytes = ((BlockCipherParameterSpec) params).getIV(); else if (params instanceof IvParameterSpec) ivBytes = ((IvParameterSpec) params).getIV(); ! initAlgorithm(opmode, kekBytes, ivBytes, random); } *************** abstract class KeyWrappingAlgorithmAdapt *** 341,347 **** * kwaBlockSize --passed to this method through its * constructor-- greater than or equal to the designated * inputLength. ! * * @param inputLength the size of a plain text. * @return an estimate of the size, in bytes, of the place holder to receive * the resulting bytes of a wrap method. --- 341,347 ---- * kwaBlockSize --passed to this method through its * constructor-- greater than or equal to the designated * inputLength. ! * * @param inputLength the size of a plain text. * @return an estimate of the size, in bytes, of the place holder to receive * the resulting bytes of a wrap method. *************** abstract class KeyWrappingAlgorithmAdapt *** 360,366 **** * paddingBlockSize --passed to this method through its * constructor-- greater than or equal to the designated * inputLength. ! * * @param inputLength the size of a cipher text. * @return an estimate of the size, in bytes, of the place holder to receive * the resulting bytes of an uwrap method. --- 360,366 ---- * paddingBlockSize --passed to this method through its * constructor-- greater than or equal to the designated * inputLength. ! * * @param inputLength the size of a cipher text. * @return an estimate of the size, in bytes, of the place holder to receive * the resulting bytes of an uwrap method. *************** abstract class KeyWrappingAlgorithmAdapt *** 383,389 **** /** * Returns the key bytes, iff it was in RAW format. ! * * @param key the opaque JCE secret key to use as the KEK. * @return the bytes of the encoded form of the designated kek, iff it was in * RAW format. --- 383,389 ---- /** * Returns the key bytes, iff it was in RAW format. ! * * @param key the opaque JCE secret key to use as the KEK. * @return the bytes of the encoded form of the designated kek, iff it was in * RAW format. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/KhazadSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/KhazadSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/KhazadSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/KhazadSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* KhazadSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* KhazadSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/NullCipherSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/NullCipherSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/NullCipherSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/NullCipherSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NullCipherSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* NullCipherSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/PBES2.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/PBES2.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/PBES2.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/PBES2.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PBES2.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PBES2.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/RijndaelSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/RijndaelSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/RijndaelSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/RijndaelSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RijndaelSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RijndaelSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/SerpentSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/SerpentSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/SerpentSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/SerpentSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SerpentSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SerpentSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/SquareSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/SquareSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/SquareSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/SquareSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SquareSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SquareSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/TripleDESSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/TripleDESSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/TripleDESSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/TripleDESSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TripleDESSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TripleDESSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/TwofishSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/TwofishSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/cipher/TwofishSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/cipher/TwofishSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TwofishSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TwofishSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnubisSecretKeyFactoryImpl.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AnubisSecretKeyFactoryImpl.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BlowfishSecretKeyFactoryImpl.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BlowfishSecretKeyFactoryImpl.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Cast5SecretKeyFactoryImpl.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Cast5SecretKeyFactoryImpl.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java Tue Jan 6 22:44:05 2009 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java Tue Jan 11 19:46:05 2011 *************** public class SecretKeyGeneratorImpl *** 97,104 **** { keySize >>>= 3; // Use bytes. if (! keySizes.contains(Integer.valueOf(keySize))) ! throw new InvalidParameterException("unsupported key size: " + keySize ! + ", valid sizes are: " + keySizes); currentKeySize = keySize; this.random = random; init = true; --- 97,104 ---- { keySize >>>= 3; // Use bytes. if (! keySizes.contains(Integer.valueOf(keySize))) ! throw new InvalidParameterException("unsupported key size: " + keySize ! + ", valid sizes are: " + keySizes); currentKeySize = keySize; this.random = random; init = true; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java Tue Jan 11 19:46:05 2011 *************** public class GnuKeyring *** 263,269 **** result = privateKR.getPublicKey(alias); } else if (privateKR.containsPrivateKey(alias)) ! result = privateKR.getPrivateKey(alias, password); if (Configuration.DEBUG) log.exiting(this.getClass().getName(), "engineGetKey", --- 263,269 ---- result = privateKR.getPublicKey(alias); } else if (privateKR.containsPrivateKey(alias)) ! result = privateKR.getPrivateKey(alias, password); if (Configuration.DEBUG) log.exiting(this.getClass().getName(), "engineGetKey", *************** public class GnuKeyring *** 400,406 **** /** * Load the private keyring from the designated input stream. ! * * @param in the input stream to process. * @param password the password protecting the keyring. * @throws MalformedKeyringException if the keyring is not a private one. --- 400,406 ---- /** * Load the private keyring from the designated input stream. ! * * @param in the input stream to process. * @param password the password protecting the keyring. * @throws MalformedKeyringException if the keyring is not a private one. *************** public class GnuKeyring *** 433,439 **** /** * Load the public keyring from the designated input stream. ! * * @param in the input stream to process. * @param password the password protecting the keyring. * @throws MalformedKeyringException if the keyring is not a public one. --- 433,439 ---- /** * Load the public keyring from the designated input stream. ! * * @param in the input stream to process. * @param password the password protecting the keyring. * @throws MalformedKeyringException if the keyring is not a public one. *************** public class GnuKeyring *** 466,472 **** /** * Return the creation date of a named alias in a designated keyring. ! * * @param alias the alias to look for. * @param keyring the keyring to search. * @return the creattion date of the entry named alias. Return --- 466,472 ---- /** * Return the creation date of a named alias in a designated keyring. ! * * @param alias the alias to look for. * @param keyring the keyring to search. * @return the creattion date of the entry named alias. Return diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacHavalSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacHavalSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacHavalSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacHavalSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacHavalSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacHavalSpi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD2Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD2Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD2Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD2Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacMD2Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacMD2Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD4Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD4Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD4Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD4Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacMD4Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacMD4Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD5Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD5Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD5Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacMD5Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacMD5Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacMD5Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacRipeMD128Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacRipeMD128Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacRipeMD160Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacRipeMD160Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA160Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA160Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA160Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA160Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacSHA160Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacSHA160Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA256Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA256Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA256Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA256Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacSHA256Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacSHA256Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA384Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA384Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA384Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA384Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacSHA384Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacSHA384Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA512Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA512Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA512Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacSHA512Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacSHA512Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacSHA512Spi.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacTigerSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacTigerSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacTigerSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacTigerSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacTigerSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacTigerSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacWhirlpoolSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacWhirlpoolSpi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/MacAdapter.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/MacAdapter.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/MacAdapter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/MacAdapter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MacAdapter.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MacAdapter.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** class MacAdapter *** 69,75 **** /** * Creates a new Mac instance for the given name. ! * * @param name The name of the mac to create. */ protected MacAdapter(String name) --- 69,75 ---- /** * Creates a new Mac instance for the given name. ! * * @param name The name of the mac to create. */ protected MacAdapter(String name) *************** class MacAdapter *** 80,86 **** /** * Private constructor for cloning purposes. ! * * @param mac a clone of the internal {@link IMac} instance. * @param attributes a clone of the current {@link Map} of attributes. */ --- 80,86 ---- /** * Private constructor for cloning purposes. ! * * @param mac a clone of the internal {@link IMac} instance. * @param attributes a clone of the current {@link Map} of attributes. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/TMMH16Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/TMMH16Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/TMMH16Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/TMMH16Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TMMH16Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TMMH16Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/UHash32Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/UHash32Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/UHash32Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/UHash32Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UHash32Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* UHash32Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/UMac32Spi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/UMac32Spi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/mac/UMac32Spi.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/mac/UMac32Spi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UMac32Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* UMac32Spi.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/params/BlockCipherParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/params/BlockCipherParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/params/BlockCipherParameters.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/params/BlockCipherParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BlockCipherParameters.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BlockCipherParameters.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class BlockCipherParameters *** 74,80 **** * keySize INTEGER, * initializationVector OCTET STRING OPTIONAL } * ! * * @return The parameters, encoded an an ASN.1 DER sequence. * @throws java.io.IOException If encoding these parameters fails. */ --- 74,80 ---- * keySize INTEGER, * initializationVector OCTET STRING OPTIONAL } * ! * * @return The parameters, encoded an an ASN.1 DER sequence. * @throws java.io.IOException If encoding these parameters fails. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/params/DEREncodingException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/params/DEREncodingException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/params/DEREncodingException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/params/DEREncodingException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DEREncodingException.java -- Copyright (C) 1999, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DEREncodingException.java -- Copyright (C) 1999, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/params/DERReader.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/params/DERReader.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/params/DERReader.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/params/DERReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DERReader.java -- Copyright (C) 1999, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DERReader.java -- Copyright (C) 1999, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/params/DERWriter.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/params/DERWriter.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/params/DERWriter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/params/DERWriter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DERWriter.java -- Copyright (C) 1999, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DERWriter.java -- Copyright (C) 1999, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ARCFourRandomSpi.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ARCFourRandomSpi.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/CSPRNGSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/CSPRNGSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/CSPRNGSpi.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/CSPRNGSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CSPRNGSpi.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CSPRNGSpi.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/FortunaImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/FortunaImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/FortunaImpl.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/FortunaImpl.java Tue Jan 11 19:46:05 2011 *************** public final class FortunaImpl *** 62,69 **** { synchronized (adaptee) { ! if (virgin) ! { adaptee.init (Collections.singletonMap (Fortuna.SEED, seed)); virgin = false; } --- 62,69 ---- { synchronized (adaptee) { ! if (virgin) ! { adaptee.init (Collections.singletonMap (Fortuna.SEED, seed)); virgin = false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/ICMRandomSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/ICMRandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/ICMRandomSpi.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/ICMRandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ICMRandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ICMRandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/UMacRandomSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/UMacRandomSpi.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/prng/UMacRandomSpi.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/prng/UMacRandomSpi.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UMacRandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* UMacRandomSpi.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java Tue Jan 11 19:46:05 2011 *************** public class DHParameters *** 92,99 **** /** * Decodes the set of DH parameters as per RFC-2459; i.e. the DER-encoded ! * form of the following ASN.1 construct: ! * *

               *   DhParams ::= SEQUENCE {
               *     p  INTEGER, -- odd prime, p=jq +1
          --- 92,99 ----
            
              /**
               * Decodes the set of DH parameters as per RFC-2459; i.e. the DER-encoded
          !    * form of the following ASN.1 construct:
          !    *
               * 
               *   DhParams ::= SEQUENCE {
               *     p  INTEGER, -- odd prime, p=jq +1
          *************** public class DHParameters
          *** 151,158 ****
            
              /**
               * Encodes the set of DH parameters as per RFC-2459; i.e. as the DER-encoded
          !    * form of the following ASN.1 construct: 
          !    * 
               * 
               *   DhParams ::= SEQUENCE {
               *     p  INTEGER, -- odd prime, p=jq +1
          --- 151,158 ----
            
              /**
               * Encodes the set of DH parameters as per RFC-2459; i.e. as the DER-encoded
          !    * form of the following ASN.1 construct:
          !    *
               * 
               *   DhParams ::= SEQUENCE {
               *     p  INTEGER, -- odd prime, p=jq +1
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* BlockCipherParameterSpec.java -- 
               Copyright (C) 2002, 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* BlockCipherParameterSpec.java --
               Copyright (C) 2002, 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class BlockCipherParameterSpec
          *** 58,64 ****
            
              /**
               * Create a new parameter specification.
          !    * 
               * @param iv The initialization vector, or null if there is no
               *          IV.
               * @param blockSize The cipher's block size, in bytes.
          --- 58,64 ----
            
              /**
               * Create a new parameter specification.
          !    *
               * @param iv The initialization vector, or null if there is no
               *          IV.
               * @param blockSize The cipher's block size, in bytes.
          *************** public class BlockCipherParameterSpec
          *** 73,79 ****
            
              /**
               * Create a new parameter specification with no IV.
          !    * 
               * @param blockSize The cipher's block size, in bytes.
               * @param keySize The cipher's key size, in bytes.
               */
          --- 73,79 ----
            
              /**
               * Create a new parameter specification with no IV.
          !    *
               * @param blockSize The cipher's block size, in bytes.
               * @param keySize The cipher's key size, in bytes.
               */
          *************** public class BlockCipherParameterSpec
          *** 85,91 ****
              /**
               * Get the initialization vector for the cipher, or null if
               * there is no IV.
          !    * 
               * @return The IV.
               */
              public byte[] getIV()
          --- 85,91 ----
              /**
               * Get the initialization vector for the cipher, or null if
               * there is no IV.
          !    *
               * @return The IV.
               */
              public byte[] getIV()
          *************** public class BlockCipherParameterSpec
          *** 95,101 ****
            
              /**
               * Get the block size of the cipher these parameters are for.
          !    * 
               * @return The block size.
               */
              public int getBlockSize()
          --- 95,101 ----
            
              /**
               * Get the block size of the cipher these parameters are for.
          !    *
               * @return The block size.
               */
              public int getBlockSize()
          *************** public class BlockCipherParameterSpec
          *** 105,111 ****
            
              /**
               * Get the key size of the cipher these parameters are for.
          !    * 
               * @return The block size.
               */
              public int getKeySize()
          --- 105,111 ----
            
              /**
               * Get the key size of the cipher these parameters are for.
          !    *
               * @return The block size.
               */
              public int getKeySize()
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/spec/TMMHParameterSpec.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/spec/TMMHParameterSpec.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/spec/TMMHParameterSpec.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/spec/TMMHParameterSpec.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* TMMHParameterSpec.java -- 
               Copyright (C) 2002, 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* TMMHParameterSpec.java --
               Copyright (C) 2002, 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class TMMHParameterSpec
          *** 62,68 ****
            
              /**
               * Create a new parameter specification.
          !    * 
               * @param keystream The (PRNG) key stream.
               * @param tagLength The tag length.
               * @param prefix The prefix.
          --- 62,68 ----
            
              /**
               * Create a new parameter specification.
          !    *
               * @param keystream The (PRNG) key stream.
               * @param tagLength The tag length.
               * @param prefix The prefix.
          *************** public class TMMHParameterSpec
          *** 76,82 ****
            
              /**
               * Create a new parameter specification with no prefix.
          !    * 
               * @param keystream The (PRNG) key stream.
               * @param tagLength The tag length.
               */
          --- 76,82 ----
            
              /**
               * Create a new parameter specification with no prefix.
          !    *
               * @param keystream The (PRNG) key stream.
               * @param tagLength The tag length.
               */
          *************** public class TMMHParameterSpec
          *** 87,93 ****
            
              /**
               * Return the key stream this specification was initialized with.
          !    * 
               * @return The key stream.
               */
              public IRandom getKeystream()
          --- 87,93 ----
            
              /**
               * Return the key stream this specification was initialized with.
          !    *
               * @return The key stream.
               */
              public IRandom getKeystream()
          *************** public class TMMHParameterSpec
          *** 97,103 ****
            
              /**
               * Return the tag length this specification was initialized with.
          !    * 
               * @return The tag length.
               */
              public Integer getTagLength()
          --- 97,103 ----
            
              /**
               * Return the tag length this specification was initialized with.
          !    *
               * @return The tag length.
               */
              public Integer getTagLength()
          *************** public class TMMHParameterSpec
          *** 107,113 ****
            
              /**
               * Return the prefix, or null if no prefix was specified.
          !    * 
               * @return The prefix.
               */
              public byte[] getPrefix()
          --- 107,113 ----
            
              /**
               * Return the prefix, or null if no prefix was specified.
          !    *
               * @return The prefix.
               */
              public byte[] getPrefix()
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* UMac32ParameterSpec.java -- 
               Copyright (C) 2002, 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* UMac32ParameterSpec.java --
               Copyright (C) 2002, 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class UMac32ParameterSpec
          *** 53,59 ****
            
              /**
               * Create a new parameter instance.
          !    * 
               * @param nonce The nonce material.
               */
              public UMac32ParameterSpec(byte[] nonce)
          --- 53,59 ----
            
              /**
               * Create a new parameter instance.
          !    *
               * @param nonce The nonce material.
               */
              public UMac32ParameterSpec(byte[] nonce)
          *************** public class UMac32ParameterSpec
          *** 63,69 ****
            
              /**
               * Return the nonce material.
          !    * 
               * @return The nonce material.
               */
              public byte[] getNonce()
          --- 63,69 ----
            
              /**
               * Return the nonce material.
          !    *
               * @return The nonce material.
               */
              public byte[] getNonce()
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/BaseKeyAgreementParty.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/BaseKeyAgreementParty.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/BaseKeyAgreementParty.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/BaseKeyAgreementParty.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* BaseKeyAgreementParty.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* BaseKeyAgreementParty.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public abstract class BaseKeyAgreementPa
          *** 137,143 ****
            
              /**
               * Fills the designated byte array with random data.
          !    * 
               * @param buffer the byte array to fill with random data.
               */
              protected void nextRandomBytes(byte[] buffer)
          --- 137,143 ----
            
              /**
               * Fills the designated byte array with random data.
          !    *
               * @param buffer the byte array to fill with random data.
               */
              protected void nextRandomBytes(byte[] buffer)
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/GnuPBEKey.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/GnuPBEKey.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/GnuPBEKey.java	Tue Jan  9 19:58:05 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/GnuPBEKey.java	Tue Jan 11 19:46:05 2011
          *************** import javax.crypto.spec.PBEKeySpec;
          *** 43,49 ****
            
            /**
             * An implementation of a password-based encryption key.
          !  * 
             * @author Casey Marshall (csm@gnu.org)
             */
            public class GnuPBEKey
          --- 43,49 ----
            
            /**
             * An implementation of a password-based encryption key.
          !  *
             * @author Casey Marshall (csm@gnu.org)
             */
            public class GnuPBEKey
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/GnuSecretKey.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/GnuSecretKey.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/GnuSecretKey.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/GnuSecretKey.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* GnuSecretKey.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* GnuSecretKey.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class GnuSecretKey
          *** 55,61 ****
              /**
               * Creates a new secret key. The supplied byte array is copied by this
               * constructor.
          !    * 
               * @param key The raw, secret key.
               * @param algorithm The algorithm name, which can be null or empty.
               */
          --- 55,61 ----
              /**
               * Creates a new secret key. The supplied byte array is copied by this
               * constructor.
          !    *
               * @param key The raw, secret key.
               * @param algorithm The algorithm name, which can be null or empty.
               */
          *************** public class GnuSecretKey
          *** 66,72 ****
            
              /**
               * Creates a new secret key from a portion of a byte array.
          !    * 
               * @param key The raw, secret key.
               * @param offset The offset at which the key begins.
               * @param length The number of bytes that comprise the key.
          --- 66,72 ----
            
              /**
               * Creates a new secret key from a portion of a byte array.
          !    *
               * @param key The raw, secret key.
               * @param offset The offset at which the key begins.
               * @param length The number of bytes that comprise the key.
          *************** public class GnuSecretKey
          *** 81,87 ****
            
              /**
               * Returns the algorithm name, if any.
          !    * 
               * @return The algorithm name.
               */
              public String getAlgorithm()
          --- 81,87 ----
            
              /**
               * Returns the algorithm name, if any.
          !    *
               * @return The algorithm name.
               */
              public String getAlgorithm()
          *************** public class GnuSecretKey
          *** 93,99 ****
               * Returns the encoded key, which is merely the byte array this class was
               * created with. A reference to the internal byte array is returned, so the
               * caller can delete this key from memory by modifying the returned array.
          !    * 
               * @return The raw key.
               */
              public byte[] getEncoded()
          --- 93,99 ----
               * Returns the encoded key, which is merely the byte array this class was
               * created with. A reference to the internal byte array is returned, so the
               * caller can delete this key from memory by modifying the returned array.
          !    *
               * @return The raw key.
               */
              public byte[] getEncoded()
          *************** public class GnuSecretKey
          *** 103,109 ****
            
              /**
               * Returns the string "RAW".
          !    * 
               * @return The string "RAW".
               */
              public String getFormat()
          --- 103,109 ----
            
              /**
               * Returns the string "RAW".
          !    *
               * @return The string "RAW".
               */
              public String getFormat()
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/IKeyAgreementParty.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/IKeyAgreementParty.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/IKeyAgreementParty.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/IKeyAgreementParty.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* IKeyAgreementParty.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* IKeyAgreementParty.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public interface IKeyAgreementParty
          *** 47,60 ****
            {
              /**
               * Returns the canonical name of the key agreement protocol.
          !    * 
               * @return the canonical name of the key agreement protocol.
               */
              String name();
            
              /**
               * Sets up the instance to operate with specific attributes.
          !    * 
               * @param attributes a map of name-values used by concrete implementations.
               * @throws KeyAgreementException if an exception occurs during the setup.
               */
          --- 47,60 ----
            {
              /**
               * Returns the canonical name of the key agreement protocol.
          !    *
               * @return the canonical name of the key agreement protocol.
               */
              String name();
            
              /**
               * Sets up the instance to operate with specific attributes.
          !    *
               * @param attributes a map of name-values used by concrete implementations.
               * @throws KeyAgreementException if an exception occurs during the setup.
               */
          *************** public interface IKeyAgreementParty
          *** 63,69 ****
              /**
               * Processes an incoming message at one end, generating a message that will be
               * processed by the other party(ies).
          !    * 
               * @param in the incoming message.
               * @return an outgoing message, or null if this is an
               *         intermediary step that does not cause any output.
          --- 63,69 ----
              /**
               * Processes an incoming message at one end, generating a message that will be
               * processed by the other party(ies).
          !    *
               * @param in the incoming message.
               * @return an outgoing message, or null if this is an
               *         intermediary step that does not cause any output.
          *************** public interface IKeyAgreementParty
          *** 79,85 ****
               * exchange has completed its part of the exchange. If this is the case an
               * {@link IllegalStateException} is thrown for any method invocation except
               * init() or reset().
          !    * 
               * @return true if this party has completed its part of the key
               *         agreement protocol exchange; false otherwise.
               */
          --- 79,85 ----
               * exchange has completed its part of the exchange. If this is the case an
               * {@link IllegalStateException} is thrown for any method invocation except
               * init() or reset().
          !    *
               * @return true if this party has completed its part of the key
               *         agreement protocol exchange; false otherwise.
               */
          *************** public interface IKeyAgreementParty
          *** 88,94 ****
              /**
               * Returns the byte array containing the shared secret as generated by this
               * party.
          !    * 
               * @return the generated shared secret.
               * @throws KeyAgreementException if the key agreement is not yet initialised,
               *           or is initialised but the exchange is still in progress.
          --- 88,94 ----
              /**
               * Returns the byte array containing the shared secret as generated by this
               * party.
          !    *
               * @return the generated shared secret.
               * @throws KeyAgreementException if the key agreement is not yet initialised,
               *           or is initialised but the exchange is still in progress.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/IncomingMessage.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* IncomingMessage.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* IncomingMessage.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class IncomingMessage
          *** 71,77 ****
              /**
               * Constructs an incoming message given the message's encoded form, including
               * its header bytes.
          !    * 
               * @param b the encoded form, including the header bytes, of an incoming
               *          message.
               * @throws KeyAgreementException if the buffer is malformed.
          --- 71,77 ----
              /**
               * Constructs an incoming message given the message's encoded form, including
               * its header bytes.
          !    *
               * @param b the encoded form, including the header bytes, of an incoming
               *          message.
               * @throws KeyAgreementException if the buffer is malformed.
          *************** public class IncomingMessage
          *** 103,109 ****
               * 

          * Calls the method with the same name and three arguments as: * getInstance(raw, 0, raw.length). ! * * @param raw the encoded form, excluding the header bytes. * @return a new instance of IncomingMessage. */ --- 103,109 ---- *

          * Calls the method with the same name and three arguments as: * getInstance(raw, 0, raw.length). ! * * @param raw the encoded form, excluding the header bytes. * @return a new instance of IncomingMessage. */ *************** public class IncomingMessage *** 115,121 **** /** * Returns an instance of a message given its encoded contents, excluding the * message's header bytes. ! * * @param raw the encoded form, excluding the header bytes. * @param offset offset where to start using raw bytes from. * @param len number of bytes to use. --- 115,121 ---- /** * Returns an instance of a message given its encoded contents, excluding the * message's header bytes. ! * * @param raw the encoded form, excluding the header bytes. * @param offset offset where to start using raw bytes from. * @param len number of bytes to use. *************** public class IncomingMessage *** 130,136 **** /** * Converts two octets into the number that they represent. ! * * @param b the two octets. * @return the length. */ --- 130,136 ---- /** * Converts two octets into the number that they represent. ! * * @param b the two octets. * @return the length. */ *************** public class IncomingMessage *** 144,150 **** /** * Converts four octets into the number that they represent. ! * * @param b the four octets. * @return the length. */ --- 144,150 ---- /** * Converts four octets into the number that they represent. ! * * @param b the four octets. * @return the length. */ *************** public class IncomingMessage *** 169,175 **** *

          * See {@link OutgoingMessage#writePublicKey(java.security.PublicKey)} for * more details on the internal format. ! * * @throws KeyAgreementException if an encoding size constraint is violated or * a mismatch was detected in the encoding. */ --- 169,175 ---- *

          * See {@link OutgoingMessage#writePublicKey(java.security.PublicKey)} for * more details on the internal format. ! * * @throws KeyAgreementException if an encoding size constraint is violated or * a mismatch was detected in the encoding. */ *************** public class IncomingMessage *** 196,202 **** *

          * See {@link OutgoingMessage#writePrivateKey(java.security.PrivateKey)} for * more details. ! * * @throws KeyAgreementException if an encoding size constraint is violated or * a mismatch was detected in the encoding. */ --- 196,202 ---- *

          * See {@link OutgoingMessage#writePrivateKey(java.security.PrivateKey)} for * more details. ! * * @throws KeyAgreementException if an encoding size constraint is violated or * a mismatch was detected in the encoding. */ *************** public class IncomingMessage *** 220,226 **** /** * Decodes an MPI from the current message's contents. ! * * @return a native representation of an MPI. * @throws KeyAgreementException if an encoding exception occurs during the * operation. --- 220,226 ---- /** * Decodes an MPI from the current message's contents. ! * * @return a native representation of an MPI. * @throws KeyAgreementException if an encoding exception occurs during the * operation. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* KeyAgreementException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* KeyAgreementException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class KeyAgreementException *** 68,74 **** /** * Constructs a new instance of KeyAgreementException with a * detailed message. The root exception is null. ! * * @param detail a possibly null string containing details of * the exception. * @see Throwable#getMessage() --- 68,74 ---- /** * Constructs a new instance of KeyAgreementException with a * detailed message. The root exception is null. ! * * @param detail a possibly null string containing details of * the exception. * @see Throwable#getMessage() *************** public class KeyAgreementException *** 81,87 **** /** * Constructs a new instance of KeyAgreementException with a * detailed message and a root exception. ! * * @param detail a possibly null string containing details of * the exception. * @param cause a possibly null root exception that caused this --- 81,87 ---- /** * Constructs a new instance of KeyAgreementException with a * detailed message and a root exception. ! * * @param detail a possibly null string containing details of * the exception. * @param cause a possibly null root exception that caused this *************** public class KeyAgreementException *** 99,105 **** * Returns the cause of this throwable or null if the cause is * nonexistent or unknown. The cause is the throwable that caused this * exception to be thrown. ! * * @return the possibly null exception that caused this one. */ public Throwable getCause() --- 99,105 ---- * Returns the cause of this throwable or null if the cause is * nonexistent or unknown. The cause is the throwable that caused this * exception to be thrown. ! * * @return the possibly null exception that caused this one. */ public Throwable getCause() *************** public class KeyAgreementException *** 123,129 **** * Prints this exception's stack trace to a print stream. If this exception * has a root exception; the stack trace of the root exception * is also printed to the print stream. ! * * @param ps the non-null print stream to which to print. */ public void printStackTrace(PrintStream ps) --- 123,129 ---- * Prints this exception's stack trace to a print stream. If this exception * has a root exception; the stack trace of the root exception * is also printed to the print stream. ! * * @param ps the non-null print stream to which to print. */ public void printStackTrace(PrintStream ps) *************** public class KeyAgreementException *** 137,143 **** * Prints this exception's stack trace to a print writer. If this exception * has a root exception; the stack trace of the root exception * is also printed to the print writer. ! * * @param pw the non-null print writer to use for output. */ public void printStackTrace(PrintWriter pw) --- 137,143 ---- * Prints this exception's stack trace to a print writer. If this exception * has a root exception; the stack trace of the root exception * is also printed to the print writer. ! * * @param pw the non-null print writer to use for output. */ public void printStackTrace(PrintWriter pw) *************** public class KeyAgreementException *** 153,159 **** * and if it has a root exception, the string representation of the * root exception. This string representation is meant for debugging and is * not meant to be interpreted programmatically. ! * * @return the non-null string representation of this exception. * @see Throwable#getMessage() */ --- 153,159 ---- * and if it has a root exception, the string representation of the * root exception. This string representation is meant for debugging and is * not meant to be interpreted programmatically. ! * * @return the non-null string representation of this exception. * @see Throwable#getMessage() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/KeyAgreementFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/KeyAgreementFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/KeyAgreementFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/KeyAgreementFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* KeyAgreementFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* KeyAgreementFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class KeyAgreementFactory *** 71,77 **** * A in a two-party A..B exchange, given the * canonical name of this protocol. Party A is usually the * initiator of the exchange. ! * * @param name the case-insensitive key agreement protocol name. * @return an instance of the key agreement protocol handler for party * A, or null if none found. --- 71,77 ---- * A in a two-party A..B exchange, given the * canonical name of this protocol. Party A is usually the * initiator of the exchange. ! * * @param name the case-insensitive key agreement protocol name. * @return an instance of the key agreement protocol handler for party * A, or null if none found. *************** public class KeyAgreementFactory *** 99,105 **** * Returns an instance of a key agreeent protocol handler, for party * B in a two-party A..B exchange, given the * canonical name of this protocol. ! * * @param name the case-insensitive key agreement protocol name. * @return an instance of the key agreement protocol handler for party * B, or null if none found. --- 99,105 ---- * Returns an instance of a key agreeent protocol handler, for party * B in a two-party A..B exchange, given the * canonical name of this protocol. ! * * @param name the case-insensitive key agreement protocol name. * @return an instance of the key agreement protocol handler for party * B, or null if none found. *************** public class KeyAgreementFactory *** 126,132 **** /** * Returns a {@link Set} of key agreement protocol names supported by this * Factory. ! * * @return a {@link Set} of key agreement protocol names (Strings). */ public static final Set getNames() --- 126,132 ---- /** * Returns a {@link Set} of key agreement protocol names supported by this * Factory. ! * * @return a {@link Set} of key agreement protocol names (Strings). */ public static final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/OutgoingMessage.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/OutgoingMessage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/OutgoingMessage.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/OutgoingMessage.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OutgoingMessage.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* OutgoingMessage.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class OutgoingMessage *** 70,76 **** /** * Returns the encoded form of the current message including the 4-byte length * header. ! * * @throws KeyAgreementException if an encoding size constraint is violated. */ public byte[] toByteArray() throws KeyAgreementException --- 70,76 ---- /** * Returns the encoded form of the current message including the 4-byte length * header. ! * * @throws KeyAgreementException if an encoding size constraint is violated. */ public byte[] toByteArray() throws KeyAgreementException *************** public class OutgoingMessage *** 89,95 **** /** * Returns the encoded form of the current message excluding the 4-byte length * header. ! * * @throws KeyAgreementException if an encoding size constraint is violated. */ public byte[] wrap() throws KeyAgreementException --- 89,95 ---- /** * Returns the encoded form of the current message excluding the 4-byte length * header. ! * * @throws KeyAgreementException if an encoding size constraint is violated. */ public byte[] wrap() throws KeyAgreementException *************** public class OutgoingMessage *** 114,120 **** *

               * key --> 4-byte-length || 1-byte-type-and-format || encoded-key-bytes
               * 
          ! * * @param k the public key to encode. * @throws KeyAgreementException if an encoding size constraint is violated. */ --- 114,120 ---- *
               * key --> 4-byte-length || 1-byte-type-and-format || encoded-key-bytes
               * 
          ! * * @param k the public key to encode. * @throws KeyAgreementException if an encoding size constraint is violated. */ *************** public class OutgoingMessage *** 137,143 **** *
               * key --> 4-byte-length || 1-byte-type-and-format || encoded-key-bytes
               * 
          ! * * @param k the private key to encode. * @throws KeyAgreementException if an encoding size constraint is violated. */ --- 137,143 ---- *
               * key --> 4-byte-length || 1-byte-type-and-format || encoded-key-bytes
               * 
          ! * * @param k the private key to encode. * @throws KeyAgreementException if an encoding size constraint is violated. */ *************** public class OutgoingMessage *** 148,154 **** /** * Encodes an MPI into the message. ! * * @param val the MPI to encode. * @throws KeyAgreementException if an encoding size constraint is violated. */ --- 148,154 ---- /** * Encodes an MPI into the message. ! * * @param val the MPI to encode. * @throws KeyAgreementException if an encoding size constraint is violated. */ *************** public class OutgoingMessage *** 165,171 **** /** * Encodes a string into the message. ! * * @param s the string to encode. * @throws KeyAgreementException if the UTF8 encoding is not supported on this * platform, or if an encoding size constraint is violated. --- 165,171 ---- /** * Encodes a string into the message. ! * * @param s the string to encode. * @throws KeyAgreementException if the UTF8 encoding is not supported on this * platform, or if an encoding size constraint is violated. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java Tue Jan 11 19:46:05 2011 *************** public class DHKeyPairPKCS8Codec *** 79,85 **** /** * Returns the DER-encoded form of the PKCS#8 ASN.1 PrivateKeyInfo * representation of a DH private key. The ASN.1 specification is as follows: ! * *
               *   PrivateKeyInfo ::= SEQUENCE {
               *     version              INTEGER, -- MUST be 0
          --- 79,85 ----
              /**
               * Returns the DER-encoded form of the PKCS#8 ASN.1 PrivateKeyInfo
               * representation of a DH private key. The ASN.1 specification is as follows:
          !    *
               * 
               *   PrivateKeyInfo ::= SEQUENCE {
               *     version              INTEGER, -- MUST be 0
          *************** public class DHKeyPairPKCS8Codec
          *** 105,111 ****
               * parameter. RFC-2631 DOES NOT allow for an optional value for that
               * parameter, hence we replace such null values with 0, and do
               * the reverse in the corresponding decode method.
          !    * 
               * @return the DER encoded form of the ASN.1 representation of the
               *         PrivateKeyInfo field in an X.509 certificate.
               * @throw InvalidParameterException if an error occurs during the marshalling
          --- 105,111 ----
               * parameter. RFC-2631 DOES NOT allow for an optional value for that
               * parameter, hence we replace such null values with 0, and do
               * the reverse in the corresponding decode method.
          !    *
               * @return the DER encoded form of the ASN.1 representation of the
               *         PrivateKeyInfo field in an X.509 certificate.
               * @throw InvalidParameterException if an error occurs during the marshalling
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* DHKeyPairRawCodec.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* DHKeyPairRawCodec.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class DHKeyPairRawCodec
          *** 89,95 ****
               * the toByteArray() method on the DH parameter y,
               * 
               * 
          !    * 
               * @param key the key to encode.
               * @return the Raw format encoding of the designated key.
               * @throws IllegalArgumentException if the designated key is not a DH one.
          --- 89,95 ----
               * the toByteArray() method on the DH parameter y,
               * 
               * 
          !    *
               * @param key the key to encode.
               * @return the Raw format encoding of the designated key.
               * @throws IllegalArgumentException if the designated key is not a DH one.
          *************** public class DHKeyPairRawCodec
          *** 227,233 ****
               * the toByteArray() method on the DH parameter x,
               * 
               * 
          !    * 
               * @param key the key to encode.
               * @return the Raw format encoding of the designated key.
               * @throws IllegalArgumentException if the designated key is not a DH one.
          --- 227,233 ----
               * the toByteArray() method on the DH parameter x,
               * 
               * 
          !    *
               * @param key the key to encode.
               * @return the Raw format encoding of the designated key.
               * @throws IllegalArgumentException if the designated key is not a DH one.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java	Tue Jan 11 19:46:05 2011
          *************** public class DHKeyPairX509Codec
          *** 90,99 ****
               *     q  INTEGER  -- factor of p-1
               *   }
               * 
          ! * *

          The subjectPublicKey field, which is a BIT STRING, contains the * DER-encoded form of the DH public key as an INTEGER.

          ! * *
               *       DHPublicKey ::= INTEGER -- public key, y = g^x mod p
               * 
          --- 90,99 ---- * q INTEGER -- factor of p-1 * } *
          ! * *

          The subjectPublicKey field, which is a BIT STRING, contains the * DER-encoded form of the DH public key as an INTEGER.

          ! * *
               *       DHPublicKey ::= INTEGER -- public key, y = g^x mod p
               * 
          *************** public class DHKeyPairX509Codec *** 104,110 **** * parameter. RFC-2631 DOES NOT allow for an optional value for that * parameter, hence we replace such null values with 0, and do * the reverse in the corresponding decode method. ! * * @param key the {@link PublicKey} instance to encode. MUST be an instance of * {@link GnuDHPublicKey}. * @return the DER-encoded form of the ASN.1 representation of the --- 104,110 ---- * parameter. RFC-2631 DOES NOT allow for an optional value for that * parameter, hence we replace such null values with 0, and do * the reverse in the corresponding decode method. ! * * @param key the {@link PublicKey} instance to encode. MUST be an instance of * {@link GnuDHPublicKey}. * @return the DER-encoded form of the ASN.1 representation of the diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DiffieHellmanKeyAgreement.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DiffieHellmanKeyAgreement.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.crypto.interfaces.DHPrivate *** 77,83 **** * message) in order to ensure that different messages use different * KEKs. Implementations MAY implement Static-Static mode." *
          ! * *

          * Reference: *

            --- 77,83 ---- * message) in order to ensure that different messages use different * KEKs. Implementations MAY implement Static-Static mode." *
          ! * *

          * Reference: *

            diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DiffieHellmanReceiver.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DiffieHellmanReceiver.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.crypto.interfaces.DHPrivate *** 53,59 **** /** * This implementation is the receiver's part of the basic version of the * Diffie-Hellman key agreement exchange (B in [HAC]). ! * * @see DiffieHellmanKeyAgreement */ public class DiffieHellmanReceiver --- 53,59 ---- /** * This implementation is the receiver's part of the basic version of the * Diffie-Hellman key agreement exchange (B in [HAC]). ! * * @see DiffieHellmanKeyAgreement */ public class DiffieHellmanReceiver diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanSender.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanSender.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanSender.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/DiffieHellmanSender.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DiffieHellmanSender.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DiffieHellmanSender.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.crypto.interfaces.DHPrivate *** 53,59 **** /** * This implementation is the sender's part of the basic version of the * Diffie-Hellman key agreement exchange (A in [HAC]). ! * * @see DiffieHellmanKeyAgreement */ public class DiffieHellmanSender --- 53,59 ---- /** * This implementation is the sender's part of the basic version of the * Diffie-Hellman key agreement exchange (A in [HAC]). ! * * @see DiffieHellmanKeyAgreement */ public class DiffieHellmanSender diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ElGamalKeyAgreement.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ElGamalKeyAgreement.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalReceiver.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalReceiver.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalReceiver.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalReceiver.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ElGamalReceiver.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ElGamalReceiver.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.crypto.interfaces.DHPrivate *** 51,57 **** /** * This implementation is the receiver's part of the ElGamal key agreement * exchange (B in [HAC]). ! * * @see ElGamalKeyAgreement */ public class ElGamalReceiver --- 51,57 ---- /** * This implementation is the receiver's part of the ElGamal key agreement * exchange (B in [HAC]). ! * * @see ElGamalKeyAgreement */ public class ElGamalReceiver diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalSender.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalSender.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalSender.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/ElGamalSender.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ElGamalSender.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ElGamalSender.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.crypto.interfaces.DHPublicK *** 51,57 **** /** * This implementation is the sender's part of the ElGamal key agreement * exchange (A in [HAC]). ! * * @see ElGamalKeyAgreement */ public class ElGamalSender --- 51,57 ---- /** * This implementation is the sender's part of the ElGamal key agreement * exchange (A in [HAC]). ! * * @see ElGamalKeyAgreement */ public class ElGamalSender diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuDHKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuDHKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class GnuDHKey *** 86,92 **** /** * Trivial protected constructor. ! * * @param defaultFormat the identifier of the encoding format to use by * default when externalizing the key. * @param q a prime divisor of p-1. --- 86,92 ---- /** * Trivial protected constructor. ! * * @param defaultFormat the identifier of the encoding format to use by * default when externalizing the key. * @param q a prime divisor of p-1. *************** public abstract class GnuDHKey *** 135,141 **** /** * Returns true if the designated object is an instance of * {@link DHKey} and has the same Diffie-Hellman parameter values as this one. ! * * @param obj the other non-null DH key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 135,141 ---- /** * Returns true if the designated object is an instance of * {@link DHKey} and has the same Diffie-Hellman parameter values as this one. ! * * @param obj the other non-null DH key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuDHKeyPairGenerator.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuDHKeyPairGenerator.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class GnuDHKeyPairGenerator *** 214,220 **** /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ private void nextRandomBytes(byte[] buffer) --- 214,220 ---- /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ private void nextRandomBytes(byte[] buffer) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHPrivateKey.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHPrivateKey.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHPrivateKey.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHPrivateKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuDHPrivateKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuDHPrivateKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class GnuDHPrivateKey *** 70,76 **** /** * Convenience constructor. Calls the constructor with five arguments passing * {@link Registry#RAW_ENCODING_ID} as the value of its first argument. ! * * @param q a prime divisor of p-1. * @param p the public prime. * @param g the generator of the group. --- 70,76 ---- /** * Convenience constructor. Calls the constructor with five arguments passing * {@link Registry#RAW_ENCODING_ID} as the value of its first argument. ! * * @param q a prime divisor of p-1. * @param p the public prime. * @param g the generator of the group. *************** public class GnuDHPrivateKey *** 84,90 **** /** * Constructs a new instance of GnuDHPrivateKey given the * designated parameters. ! * * @param preferredFormat the identifier of the encoding format to use by * default when externalizing the key. * @param q a prime divisor of p-1. --- 84,90 ---- /** * Constructs a new instance of GnuDHPrivateKey given the * designated parameters. ! * * @param preferredFormat the identifier of the encoding format to use by * default when externalizing the key. * @param q a prime divisor of p-1. *************** public class GnuDHPrivateKey *** 106,112 **** * method of a DH keypair codec object (an instance implementing * {@link IKeyPairCodec} for DH keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @exception ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an --- 106,112 ---- * method of a DH keypair codec object (an instance implementing * {@link IKeyPairCodec} for DH keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @exception ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an *************** public class GnuDHPrivateKey *** 137,143 **** /** * Returns the encoded form of this private key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. --- 137,143 ---- /** * Returns the encoded form of this private key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. *************** public class GnuDHPrivateKey *** 165,171 **** /** * Returns true if the designated object is an instance of * {@link DHPrivateKey} and has the same parameter values as this one. ! * * @param obj the other non-null DH key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 165,171 ---- /** * Returns true if the designated object is an instance of * {@link DHPrivateKey} and has the same parameter values as this one. ! * * @param obj the other non-null DH key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHPublicKey.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHPublicKey.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHPublicKey.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHPublicKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuDHPublicKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuDHPublicKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class GnuDHPublicKey *** 68,74 **** /** * Convenience constructor. Calls the constructor with five arguments passing * {@link Registry#RAW_ENCODING_ID} as the value of its first argument. ! * * @param q a prime divisor of p-1. * @param p the public prime. * @param g the generator of the group. --- 68,74 ---- /** * Convenience constructor. Calls the constructor with five arguments passing * {@link Registry#RAW_ENCODING_ID} as the value of its first argument. ! * * @param q a prime divisor of p-1. * @param p the public prime. * @param g the generator of the group. *************** public class GnuDHPublicKey *** 82,88 **** /** * Constructs a new instance of GnuDHPublicKey given the * designated parameters. ! * * @param preferredFormat the identifier of the encoding format to use by * default when externalizing the key. * @param q a prime divisor of p-1. --- 82,88 ---- /** * Constructs a new instance of GnuDHPublicKey given the * designated parameters. ! * * @param preferredFormat the identifier of the encoding format to use by * default when externalizing the key. * @param q a prime divisor of p-1. *************** public class GnuDHPublicKey *** 104,110 **** * method of a DH keypair codec object (an instance implementing * {@link IKeyPairCodec} for DSS keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @exception ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an --- 104,110 ---- * method of a DH keypair codec object (an instance implementing * {@link IKeyPairCodec} for DSS keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @exception ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an *************** public class GnuDHPublicKey *** 135,141 **** /** * Returns the encoded form of this public key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. --- 135,141 ---- /** * Returns the encoded form of this public key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. *************** public class GnuDHPublicKey *** 162,168 **** /** * Returns true if the designated object is an instance of * {@link DHPublicKey} and has the same parameter values as this one. ! * * @param obj the other non-null DH key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 162,168 ---- /** * Returns true if the designated object is an instance of * {@link DHPublicKey} and has the same parameter values as this one. ! * * @param obj the other non-null DH key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RFC2631.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* RFC2631.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6Host.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6Host.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6Host.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6Host.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRP6Host.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRP6Host.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRP6KeyAgreement.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRP6KeyAgreement.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.math.BigInteger; *** 66,88 **** * A,B Public ephemeral values * x Private key (derived from p and s) * v Password verifier ! * * The host stores passwords using the following formula: * x = H(s | H(I ":" p)) (s is chosen randomly) * v = gˆx (computes password verifier) ! * * The host then keeps {I, s, v} in its password database. ! * * The authentication protocol itself goes as follows: * User -> Host: I, A = gˆa (identifies self, a = random number) * Host -> User: s, B = 3v + gˆb (sends salt, b = random number) ! * * Both: u = H(A, B) ! * * User: x = H(s, p) (user enters password) * User: S = (B - 3gˆx) ˆ (a + ux) (computes session key) * User: K = H(S) ! * * Host: S = (Avˆu) ˆ b (computes session key) * Host: K = H(S) *
          --- 66,88 ---- * A,B Public ephemeral values * x Private key (derived from p and s) * v Password verifier ! * * The host stores passwords using the following formula: * x = H(s | H(I ":" p)) (s is chosen randomly) * v = gˆx (computes password verifier) ! * * The host then keeps {I, s, v} in its password database. ! * * The authentication protocol itself goes as follows: * User -> Host: I, A = gˆa (identifies self, a = random number) * Host -> User: s, B = 3v + gˆb (sends salt, b = random number) ! * * Both: u = H(A, B) ! * * User: x = H(s, p) (user enters password) * User: S = (B - 3gˆx) ˆ (a + ux) (computes session key) * User: K = H(S) ! * * Host: S = (Avˆu) ˆ b (computes session key) * Host: K = H(S) *
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6SaslClient.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6SaslClient.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6SaslClient.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6SaslClient.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRP6SaslClient.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRP6SaslClient.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.math.BigInteger; *** 52,64 **** * User (client side). *

          * In this alternative, the exchange goes as follows: ! * *

             *     C -> S:  I                      (identifies self)
             *     S -> C:  N, g, s, B = 3v + gˆb  (sends salt, b = random number)
             *     C -> S:  A = gˆa                (a = random number)
             * 
          ! * *

          * All elements are computed the same way as in the standard version. *

          --- 52,64 ---- * User (client side). *

          * In this alternative, the exchange goes as follows: ! * *

             *     C -> S:  I                      (identifies self)
             *     S -> C:  N, g, s, B = 3v + gˆb  (sends salt, b = random number)
             *     C -> S:  A = gˆa                (a = random number)
             * 
          ! * *

          * All elements are computed the same way as in the standard version. *

          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6SaslServer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6SaslServer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6SaslServer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6SaslServer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRP6SaslServer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRP6SaslServer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.math.BigInteger; *** 52,64 **** * Host (server side). *

          * In this alternative, the exchange goes as follows: ! * *

             *     C -> S:  I                      (identifies self)
             *     S -> C:  N, g, s, B = 3v + gˆb  (sends salt, b = random number)
             *     C -> S:  A = gˆa                (a = random number)
             * 
          ! * *

          * All elements are computed the same way as in the standard version. *

          --- 52,64 ---- * Host (server side). *

          * In this alternative, the exchange goes as follows: ! * *

             *     C -> S:  I                      (identifies self)
             *     S -> C:  N, g, s, B = 3v + gˆb  (sends salt, b = random number)
             *     C -> S:  A = gˆa                (a = random number)
             * 
          ! * *

          * All elements are computed the same way as in the standard version. *

          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6TLSClient.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6TLSClient.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6TLSClient.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6TLSClient.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRP6TLSClient.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRP6TLSClient.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6TLSServer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6TLSServer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6TLSServer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6TLSServer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRP6TLSServer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRP6TLSServer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6User.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6User.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6User.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRP6User.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRP6User.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRP6User.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPAlgorithm.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPAlgorithm.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPAlgorithm.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPAlgorithm.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRPAlgorithm.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRPAlgorithm.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKey.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKey.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKey.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRPKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRPKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class SRPKey *** 80,86 **** /** * Returns the standard algorithm name for this key. ! * * @return the standard algorithm name for this key. */ public String getAlgorithm() --- 80,86 ---- /** * Returns the standard algorithm name for this key. ! * * @return the standard algorithm name for this key. */ public String getAlgorithm() *************** public abstract class SRPKey *** 97,103 **** /** * Returns {@link Registry#RAW_ENCODING_SHORT_NAME} which is the sole format * supported for this type of keys. ! * * @return {@link Registry#RAW_ENCODING_SHORT_NAME} ALWAYS. */ public String getFormat() --- 97,103 ---- /** * Returns {@link Registry#RAW_ENCODING_SHORT_NAME} which is the sole format * supported for this type of keys. ! * * @return {@link Registry#RAW_ENCODING_SHORT_NAME} ALWAYS. */ public String getFormat() *************** public abstract class SRPKey *** 107,113 **** /** * Returns the public shared modulus. ! * * @return N. */ public BigInteger getN() --- 107,113 ---- /** * Returns the public shared modulus. ! * * @return N. */ public BigInteger getN() *************** public abstract class SRPKey *** 117,123 **** /** * Returns the generator. ! * * @return g. */ public BigInteger getG() --- 117,123 ---- /** * Returns the generator. ! * * @return g. */ public BigInteger getG() *************** public abstract class SRPKey *** 128,134 **** /** * Returns true if the designated object is an instance of * SRPKey and has the same SRP parameter values as this one. ! * * @param obj the other non-null SRP key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 128,134 ---- /** * Returns true if the designated object is an instance of * SRPKey and has the same SRP parameter values as this one. ! * * @param obj the other non-null SRP key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRPKeyPairGenerator.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRPKeyPairGenerator.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRPKeyPairRawCodec.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRPKeyPairRawCodec.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SRPKeyPairRawCodec *** 92,98 **** * the toByteArray() method on the SRP parameter y, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @throws IllegalArgumentException if the designated key is not an SRP one. --- 92,98 ---- * the toByteArray() method on the SRP parameter y, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @throws IllegalArgumentException if the designated key is not an SRP one. *************** public class SRPKeyPairRawCodec *** 215,221 **** * the toByteArray() method on the SRP parameter v, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @throws IllegalArgumentException if the designated key is not an SRP one. --- 215,221 ---- * the toByteArray() method on the SRP parameter v, * * ! * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @throws IllegalArgumentException if the designated key is not an SRP one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPPrivateKey.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPPrivateKey.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPPrivateKey.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPPrivateKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRPPrivateKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRPPrivateKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SRPPrivateKey *** 71,77 **** /** * Public constructor for use from outside this package. ! * * @param N the public shared modulus. * @param g the generator. * @param x the private exponent of the ephemeral key. --- 71,77 ---- /** * Public constructor for use from outside this package. ! * * @param N the public shared modulus. * @param g the generator. * @param x the private exponent of the ephemeral key. *************** public class SRPPrivateKey *** 83,89 **** /** * Public constructor for use from outside this package. ! * * @param N the public shared modulus. * @param g the generator. * @param x the private exponent of the ephemeral key. --- 83,89 ---- /** * Public constructor for use from outside this package. ! * * @param N the public shared modulus. * @param g the generator. * @param x the private exponent of the ephemeral key. *************** public class SRPPrivateKey *** 100,106 **** /** * Default constructor. Assumes N and g are already validated. ! * * @param params an array of either 3 or 4 values representing N, g, and * either v and X for the server, or just X for the client. Those * values represent the following: --- 100,106 ---- /** * Default constructor. Assumes N and g are already validated. ! * * @param params an array of either 3 or 4 values representing N, g, and * either v and X for the server, or just X for the client. Those * values represent the following: *************** public class SRPPrivateKey *** 133,139 **** * method of an SRP keypair codec object (an instance implementing * {@link IKeyPairCodec} for DSS keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @throws ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an instance --- 133,139 ---- * method of an SRP keypair codec object (an instance implementing * {@link IKeyPairCodec} for DSS keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @throws ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an instance *************** public class SRPPrivateKey *** 160,166 **** /** * Returns the private exponent of the key as a {@link BigInteger}. ! * * @return the private exponent of the key as a {@link BigInteger}. */ public BigInteger getX() --- 160,166 ---- /** * Returns the private exponent of the key as a {@link BigInteger}. ! * * @return the private exponent of the key as a {@link BigInteger}. */ public BigInteger getX() *************** public class SRPPrivateKey *** 170,176 **** /** * Returns the user's verifier as a {@link BigInteger}. ! * * @return the user's verifier as a {@link BigInteger} if this is an SRP * private key of a Host, or null if this is a private * SRP key for a User. --- 170,176 ---- /** * Returns the user's verifier as a {@link BigInteger}. ! * * @return the user's verifier as a {@link BigInteger} if this is an SRP * private key of a Host, or null if this is a private * SRP key for a User. *************** public class SRPPrivateKey *** 183,189 **** /** * Returns the encoded form of this private key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. --- 183,189 ---- /** * Returns the encoded form of this private key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. *************** public class SRPPrivateKey *** 207,213 **** * Returns true if the designated object is an instance of * SRPPrivateKey and has the same SRP parameter values as this * one. ! * * @param obj the other non-null SRP key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 207,213 ---- * Returns true if the designated object is an instance of * SRPPrivateKey and has the same SRP parameter values as this * one. ! * * @param obj the other non-null SRP key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPPublicKey.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPPublicKey.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/key/srp6/SRPPublicKey.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/key/srp6/SRPPublicKey.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SRPPublicKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SRPPublicKey.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SRPPublicKey *** 65,71 **** /** * Public constructor for use from outside this package. ! * * @param N the public shared modulus. * @param g the generator. * @param Y the public exponent of the ephemeral key. --- 65,71 ---- /** * Public constructor for use from outside this package. ! * * @param N the public shared modulus. * @param g the generator. * @param Y the public exponent of the ephemeral key. *************** public class SRPPublicKey *** 80,86 **** /** * Default constructor. Assumes that N and g are already validated. ! * * @param params an array of 3 values representing N, g and Y; the latter * being the client's or server's public exponent. */ --- 80,86 ---- /** * Default constructor. Assumes that N and g are already validated. ! * * @param params an array of 3 values representing N, g and Y; the latter * being the client's or server's public exponent. */ *************** public class SRPPublicKey *** 96,102 **** * method of an SRP keypair codec object (an instance implementing * {@link IKeyPairCodec} for SRP keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @throws ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an instance --- 96,102 ---- * method of an SRP keypair codec object (an instance implementing * {@link IKeyPairCodec} for SRP keys, and re-constructs an instance of this * object. ! * * @param k the contents of a previously encoded instance of this object. * @throws ArrayIndexOutOfBoundsException if there is not enough bytes, in * k, to represent a valid encoding of an instance *************** public class SRPPublicKey *** 123,129 **** /** * Returns the public exponent of the key as a {@link BigInteger}. ! * * @return the public exponent of the key as a {@link BigInteger}. */ public BigInteger getY() --- 123,129 ---- /** * Returns the public exponent of the key as a {@link BigInteger}. ! * * @return the public exponent of the key as a {@link BigInteger}. */ public BigInteger getY() *************** public class SRPPublicKey *** 134,140 **** /** * Returns the encoded form of this public key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. --- 134,140 ---- /** * Returns the encoded form of this public key according to the designated * format. ! * * @param format the desired format identifier of the resulting encoding. * @return the byte sequence encoding this key according to the designated * format. *************** public class SRPPublicKey *** 158,164 **** * Returns true if the designated object is an instance of * SRPPublicKeyand has the same SRP parameter values as this * one. ! * * @param obj the other non-null SRP key to compare to. * @return true if the designated object is of the same type * and value as this one. --- 158,164 ---- * Returns true if the designated object is an instance of * SRPPublicKeyand has the same SRP parameter values as this * one. ! * * @param obj the other non-null SRP key to compare to. * @return true if the designated object is of the same type * and value as this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/AuthenticatedEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/AuthenticatedEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/AuthenticatedEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/AuthenticatedEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AuthenticatedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AuthenticatedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class AuthenticatedEntry *** 90,96 **** /** * Computes the mac over this envelope's data. This method must be * called before this entry in encoded. ! * * @param key The key to authenticate with. * @throws IOException If encoding fails. * @throws InvalidKeyException If the supplied key is bad. --- 90,96 ---- /** * Computes the mac over this envelope's data. This method must be * called before this entry in encoded. ! * * @param key The key to authenticate with. * @throws IOException If encoding fails. * @throws InvalidKeyException If the supplied key is bad. *************** public final class AuthenticatedEntry *** 115,121 **** /** * Verifies this entry's payload. This method will unmask this entry, thus it * must be called before accessing its contents. ! * * @param key The key to use to authenticate. * @throws InvalidKeyException If the given key is improper. */ --- 115,121 ---- /** * Verifies this entry's payload. This method will unmask this entry, thus it * must be called before accessing its contents. ! * * @param key The key to use to authenticate. * @throws InvalidKeyException If the given key is improper. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/BaseKeyring.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/BaseKeyring.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/BaseKeyring.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/BaseKeyring.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BaseKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BaseKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/BinaryDataEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/BinaryDataEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/BinaryDataEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/BinaryDataEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BinaryDataEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BinaryDataEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class BinaryDataEntry *** 53,59 **** /** * Creates a new binary data entry. ! * * @param contentType The content type of this entry. This parameter can be * null if no content type is needed. * @param data The data. --- 53,59 ---- /** * Creates a new binary data entry. ! * * @param contentType The content type of this entry. This parameter can be * null if no content type is needed. * @param data The data. *************** public class BinaryDataEntry *** 86,92 **** /** * Returns the content type of this entry, or null if this * property is not set. ! * * @return The content type. */ public String getContentType() --- 86,92 ---- /** * Returns the content type of this entry, or null if this * property is not set. ! * * @return The content type. */ public String getContentType() *************** public class BinaryDataEntry *** 96,102 **** /** * Returns this object's data field. ! * * @return The data. */ public byte[] getData() --- 96,102 ---- /** * Returns this object's data field. ! * * @return The data. */ public byte[] getData() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/CertPathEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/CertPathEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/CertPathEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/CertPathEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CertPathEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CertPathEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/CertificateEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/CertificateEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/CertificateEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/CertificateEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CertificateEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CertificateEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class CertificateEntry *** 58,64 **** /** * Creates a new certificate entry. ! * * @param certificate The certificate. * @param creationDate The creation date. * @param properties The alias. --- 58,64 ---- /** * Creates a new certificate entry. ! * * @param certificate The certificate. * @param creationDate The creation date. * @param properties The alias. *************** public final class CertificateEntry *** 106,112 **** /** * Returns this entry's certificate. ! * * @return The certificate. */ public Certificate getCertificate() --- 106,112 ---- /** * Returns this entry's certificate. ! * * @return The certificate. */ public Certificate getCertificate() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/CompressedEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/CompressedEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/CompressedEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/CompressedEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CompressedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CompressedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/EncryptedEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/EncryptedEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/EncryptedEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/EncryptedEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EncryptedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* EncryptedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/Entry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/Entry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/Entry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/Entry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Entry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Entry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class Entry *** 71,77 **** /** * Creates a new Entry. ! * * @param type This entry's type. * @param properties This entry's properties. * @throws IllegalArgumentException If the properties argument is null, or if --- 71,77 ---- /** * Creates a new Entry. ! * * @param type This entry's type. * @param properties This entry's properties. * @throws IllegalArgumentException If the properties argument is null, or if *************** public abstract class Entry *** 101,107 **** /** * Returns this entry's properties object. The properties are cloned before * being returned. ! * * @return The properties. */ public Properties getProperties() --- 101,107 ---- /** * Returns this entry's properties object. The properties are cloned before * being returned. ! * * @return The properties. */ public Properties getProperties() *************** public abstract class Entry *** 122,128 **** /** * This method is called when this entry needs to be written to an output * stream. ! * * @param out The stream to write to. * @throws IOException If an I/O exception occurs. */ --- 122,128 ---- /** * This method is called when this entry needs to be written to an output * stream. ! * * @param out The stream to write to. * @throws IOException If an I/O exception occurs. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EnvelopeEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* EnvelopeEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class EnvelopeEntry *** 80,86 **** /** * Adds an entry to this envelope. ! * * @param entry The entry to add. */ public void add(Entry entry) --- 80,86 ---- /** * Adds an entry to this envelope. ! * * @param entry The entry to add. */ public void add(Entry entry) *************** public abstract class EnvelopeEntry *** 102,108 **** /** * Tests if this envelope contains a primitive entry with the given alias. ! * * @param alias The alias to test. * @return True if this envelope (or one of the contained envelopes) contains * a primitive entry with the given alias. --- 102,108 ---- /** * Tests if this envelope contains a primitive entry with the given alias. ! * * @param alias The alias to test. * @return True if this envelope (or one of the contained envelopes) contains * a primitive entry with the given alias. *************** public abstract class EnvelopeEntry *** 133,139 **** /** * Tests if this envelope contains the given entry. ! * * @param entry The entry to test. * @return True if this envelope contains the given entry. */ --- 133,139 ---- /** * Tests if this envelope contains the given entry. ! * * @param entry The entry to test. * @return True if this envelope contains the given entry. */ *************** public abstract class EnvelopeEntry *** 156,162 **** /** * Returns a copy of all entries this envelope contains. ! * * @return All contained entries. */ public List getEntries() --- 156,162 ---- /** * Returns a copy of all entries this envelope contains. ! * * @return All contained entries. */ public List getEntries() *************** public abstract class EnvelopeEntry *** 167,173 **** /** * Gets all primitive entries that have the given alias. If there are any * masked entries that contain the given alias, they will be returned as well. ! * * @param alias The alias of the entries to get. * @return A list of all primitive entries that have the given alias. */ --- 167,173 ---- /** * Gets all primitive entries that have the given alias. If there are any * masked entries that contain the given alias, they will be returned as well. ! * * @param alias The alias of the entries to get. * @return A list of all primitive entries that have the given alias. */ *************** public abstract class EnvelopeEntry *** 214,220 **** /** * Returns the list of all aliases contained by this envelope, separated by a * semicolon (';'). ! * * @return The list of aliases. */ public String getAliasList() --- 214,220 ---- /** * Returns the list of all aliases contained by this envelope, separated by a * semicolon (';'). ! * * @return The list of aliases. */ public String getAliasList() *************** public abstract class EnvelopeEntry *** 228,234 **** /** * Removes the specified entry. ! * * @param entry The entry. * @return True if an entry was removed. */ --- 228,234 ---- /** * Removes the specified entry. ! * * @param entry The entry. * @return True if an entry was removed. */ *************** public abstract class EnvelopeEntry *** 280,286 **** /** * Removes all primitive entries that have the specified alias. ! * * @param alias The alias of the entries to remove. * @return true if alias was present and was * successfully trmoved. Returns false if --- 280,286 ---- /** * Removes all primitive entries that have the specified alias. ! * * @param alias The alias of the entries to remove. * @return true if alias was present and was * successfully trmoved. Returns false if diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/GnuPrivateKeyring.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/GnuPrivateKeyring.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/GnuPrivateKeyring.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/GnuPrivateKeyring.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuPrivateKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuPrivateKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.util.logging.Level; *** 56,62 **** import java.util.logging.Logger; /** ! * */ public class GnuPrivateKeyring extends BaseKeyring --- 56,62 ---- import java.util.logging.Logger; /** ! * */ public class GnuPrivateKeyring extends BaseKeyring diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnuPublicKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* GnuPublicKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/IKeyring.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/IKeyring.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/IKeyring.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/IKeyring.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IKeyring *** 79,85 **** *

          * What happens to the current contents of this keyring? are the new ones * merged with the current ones or do they simply replace them? ! * * @param attributes The attributes that designate the source where the store * is to be loaded from. What happens * @throws IllegalArgumentException If the attributes are inappropriate. --- 79,85 ---- *

          * What happens to the current contents of this keyring? are the new ones * merged with the current ones or do they simply replace them? ! * * @param attributes The attributes that designate the source where the store * is to be loaded from. What happens * @throws IllegalArgumentException If the attributes are inappropriate. *************** public interface IKeyring *** 92,98 **** /** * Stores the contents of this keyring to persistent storage as specified by * the designated attributes. ! * * @param attributes the attributes that define where the contents of this * keyring will be stored. * @throws IOException if an exception occurs during the process. --- 92,98 ---- /** * Stores the contents of this keyring to persistent storage as specified by * the designated attributes. ! * * @param attributes the attributes that define where the contents of this * keyring will be stored. * @throws IOException if an exception occurs during the process. *************** public interface IKeyring *** 107,113 **** /** * Returns the number of entries in this keyring. ! * * @return The number of current entries in this keyring. */ int size(); --- 107,113 ---- /** * Returns the number of entries in this keyring. ! * * @return The number of current entries in this keyring. */ int size(); *************** public interface IKeyring *** 115,121 **** /** * Returns an {@link Enumeration} of all aliases (instances of {@link String}) * in this keyring. ! * * @return The enumeration of {@link String}s each representing an alias * found in this keyring. */ --- 115,121 ---- /** * Returns an {@link Enumeration} of all aliases (instances of {@link String}) * in this keyring. ! * * @return The enumeration of {@link String}s each representing an alias * found in this keyring. */ *************** public interface IKeyring *** 123,129 **** /** * Tests whether or not this keyring contains the given alias. ! * * @param alias The alias to check. * @return true if this keyring contains the alias. */ --- 123,129 ---- /** * Tests whether or not this keyring contains the given alias. ! * * @param alias The alias to check. * @return true if this keyring contains the alias. */ *************** public interface IKeyring *** 133,139 **** * Returns a {@link List} of entries (instances of {@link Entry}) for the * given alias, or null if there no such entry * exists. ! * * @param alias The alias of the entry(ies) to return. * @return A list of all entries (instances of {@link Entry} that have the * given alias, or null if no one --- 133,139 ---- * Returns a {@link List} of entries (instances of {@link Entry}) for the * given alias, or null if there no such entry * exists. ! * * @param alias The alias of the entry(ies) to return. * @return A list of all entries (instances of {@link Entry} that have the * given alias, or null if no one *************** public interface IKeyring *** 145,151 **** * Adds a designated {@link Entry} to this keyring. *

          * What happens if there is already an entry with the same alias? ! * * @param entry The entry to put in this keyring. */ void add(Entry entry); --- 145,151 ---- * Adds a designated {@link Entry} to this keyring. *

          * What happens if there is already an entry with the same alias? ! * * @param entry The entry to put in this keyring. */ void add(Entry entry); *************** public interface IKeyring *** 155,161 **** * keyring. Does nothing if there was no such entry. *

          * What happens if there are more than one? ! * * @param alias The alias of the entry to remove. */ void remove(String alias); --- 155,161 ---- * keyring. Does nothing if there was no such entry. *

          * What happens if there are more than one? ! * * @param alias The alias of the entry to remove. */ void remove(String alias); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/IPrivateKeyring.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/IPrivateKeyring.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/IPrivateKeyring.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/IPrivateKeyring.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IPrivateKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IPrivateKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IPrivateKeyring *** 56,62 **** /** * Tests if this keyring contains a private key entry with the given * alias. ! * * @param alias The alias to check. * @return true if this keyring contains a private key with the * given alias; false otherwise. --- 56,62 ---- /** * Tests if this keyring contains a private key entry with the given * alias. ! * * @param alias The alias to check. * @return true if this keyring contains a private key with the * given alias; false otherwise. *************** public interface IPrivateKeyring *** 65,71 **** /** * Returns the private key with the given alias. ! * * @param alias The alias of the private key to find. * @param password The password of the private key. * @return The private, or secret, key if one is found; null if --- 65,71 ---- /** * Returns the private key with the given alias. ! * * @param alias The alias of the private key to find. * @param password The password of the private key. * @return The private, or secret, key if one is found; null if *************** public interface IPrivateKeyring *** 78,84 **** /** * Adds a private key to this keyring. ! * * @param alias The alias of the private key. * @param key The private key. * @param password The password used to protect this private key. --- 78,84 ---- /** * Adds a private key to this keyring. ! * * @param alias The alias of the private key. * @param key The private key. * @param password The password used to protect this private key. *************** public interface IPrivateKeyring *** 88,94 **** /** * Checks if this keyring contains a public key with the given * alias. ! * * @param alias The alias to test. * @return true if this keyring contains a public key entry * with the given alias; false --- 88,94 ---- /** * Checks if this keyring contains a public key with the given * alias. ! * * @param alias The alias to test. * @return true if this keyring contains a public key entry * with the given alias; false *************** public interface IPrivateKeyring *** 99,105 **** /** * Returns the public key with the given alias, or * null if there is no such entry. ! * * @param alias The alias of the public key to find. * @return The public key; or null if none were found. */ --- 99,105 ---- /** * Returns the public key with the given alias, or * null if there is no such entry. ! * * @param alias The alias of the public key to find. * @return The public key; or null if none were found. */ *************** public interface IPrivateKeyring *** 107,113 **** /** * Sets a public key entry. ! * * @param alias The alias for this public key. * @param key The public key. */ --- 107,113 ---- /** * Sets a public key entry. ! * * @param alias The alias for this public key. * @param key The public key. */ *************** public interface IPrivateKeyring *** 116,122 **** /** * Checks if this keyring contains a certificate path with the given * alias. ! * * @param alias The alias to check. * @return true if this keyring contains a certificate path * with the given alias; false --- 116,122 ---- /** * Checks if this keyring contains a certificate path with the given * alias. ! * * @param alias The alias to check. * @return true if this keyring contains a certificate path * with the given alias; false *************** public interface IPrivateKeyring *** 127,133 **** /** * Returns the certificate path with the given alias, or * null if there is no such entry. ! * * @param alias The alias of the certificate path to find. * @return The certificate path for the designated alias; or * null if none were found. --- 127,133 ---- /** * Returns the certificate path with the given alias, or * null if there is no such entry. ! * * @param alias The alias of the certificate path to find. * @return The certificate path for the designated alias; or * null if none were found. *************** public interface IPrivateKeyring *** 136,142 **** /** * Sets a certificate path entry. ! * * @param alias The alias for this certificate path. * @param path The certificate path. */ --- 136,142 ---- /** * Sets a certificate path entry. ! * * @param alias The alias for this certificate path. * @param path The certificate path. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/IPublicKeyring.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/IPublicKeyring.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/IPublicKeyring.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/IPublicKeyring.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IPublicKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IPublicKeyring.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.security.cert.Certificate; *** 43,49 **** /** * An interface for keyrings that contain trusted (by the owner) public * credentials (incl. certificates). ! * * @see IKeyring */ public interface IPublicKeyring --- 43,49 ---- /** * An interface for keyrings that contain trusted (by the owner) public * credentials (incl. certificates). ! * * @see IKeyring */ public interface IPublicKeyring *************** public interface IPublicKeyring *** 52,58 **** /** * Tests if this keyring contains a certificate entry with the specified * alias. ! * * @param alias The alias of the certificate to check. * @return true if this keyring contains a certificate entry * that has the given alias; false --- 52,58 ---- /** * Tests if this keyring contains a certificate entry with the specified * alias. ! * * @param alias The alias of the certificate to check. * @return true if this keyring contains a certificate entry * that has the given alias; false *************** public interface IPublicKeyring *** 63,69 **** /** * Returns a certificate that has the given alias, or * null if this keyring has no such entry. ! * * @param alias The alias of the certificate to find. * @return The certificate with the designated alias, or * null if none found. --- 63,69 ---- /** * Returns a certificate that has the given alias, or * null if this keyring has no such entry. ! * * @param alias The alias of the certificate to find. * @return The certificate with the designated alias, or * null if none found. *************** public interface IPublicKeyring *** 74,80 **** * Adds a certificate in this keyring, with the given alias. *

          * What happens if there is already a certificate entry with this alias? ! * * @param alias The alias of this certificate entry. * @param cert The certificate. */ --- 74,80 ---- * Adds a certificate in this keyring, with the given alias. *

          * What happens if there is already a certificate entry with this alias? ! * * @param alias The alias of this certificate entry. * @param cert The certificate. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/MalformedKeyringException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/MalformedKeyringException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/MalformedKeyringException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/MalformedKeyringException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MalformedKeyringException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MalformedKeyringException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MaskableEnvelopeEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MaskableEnvelopeEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class MaskableEnvelopeEn *** 64,70 **** /** * Sets the masked state to the specified value. ! * * @param masked The new masked state. */ protected final void setMasked(boolean masked) --- 64,70 ---- /** * Sets the masked state to the specified value. ! * * @param masked The new masked state. */ protected final void setMasked(boolean masked) *************** public abstract class MaskableEnvelopeEn *** 75,81 **** /** * Gets the masked state of this object. Certain operations on this object * will fail if it is masked. ! * * @return The current masked state. */ public boolean isMasked() --- 75,81 ---- /** * Gets the masked state of this object. Certain operations on this object * will fail if it is masked. ! * * @return The current masked state. */ public boolean isMasked() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/MeteredInputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/MeteredInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/MeteredInputStream.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/MeteredInputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MeteredInputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MeteredInputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** final class MeteredInputStream *** 59,65 **** /** * Tests if the number of bytes read has reached the limit. ! * * @return True if the limit has been reached. */ public boolean limitReached() --- 59,65 ---- /** * Tests if the number of bytes read has reached the limit. ! * * @return True if the limit has been reached. */ public boolean limitReached() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PasswordAuthenticatedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PasswordAuthenticatedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PasswordEncryptedEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PasswordEncryptedEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PasswordEncryptedEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PasswordEncryptedEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PasswordEncryptedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PasswordEncryptedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PasswordProtectedEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PasswordProtectedEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PasswordProtectedEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PasswordProtectedEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PasswordProtectedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PasswordProtectedEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface PasswordProtectedEntry *** 48,54 **** /** * Encodes this entry, protected by a password. ! * * @param out The output stream to encode to. * @param password The password. * @throws IOException If an I/O error occurs. --- 48,54 ---- /** * Encodes this entry, protected by a password. ! * * @param out The output stream to encode to. * @param password The password. * @throws IOException If an I/O error occurs. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PrimitiveEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PrimitiveEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PrimitiveEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PrimitiveEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrimitiveEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PrimitiveEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class PrimitiveEntry *** 70,76 **** /** * Returns the alias of this primitive entry. ! * * @return The alias. */ public String getAlias() --- 70,76 ---- /** * Returns the alias of this primitive entry. ! * * @return The alias. */ public String getAlias() *************** public abstract class PrimitiveEntry *** 80,86 **** /** * Returns the creation date of this primitive entry. ! * * @return The creation date. */ public Date getCreationDate() --- 80,86 ---- /** * Returns the creation date of this primitive entry. ! * * @return The creation date. */ public Date getCreationDate() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PrivateKeyEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PrivateKeyEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PrivateKeyEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PrivateKeyEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrivateKeyEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PrivateKeyEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class PrivateKeyEntry *** 65,71 **** /** * Creates a new key entry. ! * * @param key The key. * @param creationDate The entry creation date. * @param properties The entry properties. --- 65,71 ---- /** * Creates a new key entry. ! * * @param key The key. * @param creationDate The entry creation date. * @param properties The entry properties. *************** public final class PrivateKeyEntry *** 143,149 **** /** * Returns this entry's key. ! * * @return The key. */ public Key getKey() --- 143,149 ---- /** * Returns this entry's key. ! * * @return The key. */ public Key getKey() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/Properties.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/Properties.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/Properties.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/Properties.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Properties.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* Properties.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class Properties *** 74,80 **** /** * Creates a copy of this properties object. ! * * @return The copy. */ public Object clone() --- 74,80 ---- /** * Creates a copy of this properties object. ! * * @return The copy. */ public Object clone() *************** public class Properties *** 86,92 **** /** * Tests if this object contains a given property name. ! * * @param key The key to test. * @return True if this object contains the given key. */ --- 86,92 ---- /** * Tests if this object contains a given property name. ! * * @param key The key to test. * @return True if this object contains the given key. */ *************** public class Properties *** 99,105 **** /** * Tests if this object contains a given property value. ! * * @param value The value to test. * @return True if this object contains the given value. */ --- 99,105 ---- /** * Tests if this object contains a given property value. ! * * @param value The value to test. * @return True if this object contains the given value. */ *************** public class Properties *** 112,118 **** /** * Adds a new property to this object. ! * * @param key The key, which can neither be null nor empty. * @param value The value, which cannot be null. * @return The old value mapped by the key, if any. --- 112,118 ---- /** * Adds a new property to this object. ! * * @param key The key, which can neither be null nor empty. * @param value The value, which cannot be null. * @return The old value mapped by the key, if any. *************** public class Properties *** 129,135 **** /** * Returns the value mapped by the given key, or null if there is no such * mapping. ! * * @param key */ public String get(String key) --- 129,135 ---- /** * Returns the value mapped by the given key, or null if there is no such * mapping. ! * * @param key */ public String get(String key) *************** public class Properties *** 141,147 **** /** * Removes a key and its value from this object. ! * * @param key The key of the property to remove. * @return The old value mapped by the key, if any. */ --- 141,147 ---- /** * Removes a key and its value from this object. ! * * @param key The key of the property to remove. * @return The old value mapped by the key, if any. */ *************** public class Properties *** 154,160 **** /** * Decodes a set of properties from the given input stream. ! * * @param in The input stream. * @throws IOException If an I/O error occurs. */ --- 154,160 ---- /** * Decodes a set of properties from the given input stream. ! * * @param in The input stream. * @throws IOException If an I/O error occurs. */ *************** public class Properties *** 173,179 **** /** * Encodes this set of properties to the given output stream. ! * * @param out The output stream to encode to. * @throws IOException If an I/O error occurs. */ --- 173,179 ---- /** * Encodes this set of properties to the given output stream. ! * * @param out The output stream to encode to. * @throws IOException If an I/O error occurs. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PublicKeyEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PublicKeyEntry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/keyring/PublicKeyEntry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/keyring/PublicKeyEntry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PublicKeyEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PublicKeyEntry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class PublicKeyEntry *** 123,129 **** /** * Returns the public key. ! * * @return The public key. */ public PublicKey getKey() --- 123,129 ---- /** * Returns the public key. ! * * @return The public key. */ public PublicKey getKey() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java Tue Jan 11 19:46:05 2011 *************** public abstract class BaseKeyWrappingAlg *** 60,66 **** /** * Protected constructor. ! * * @param name the key wrapping algorithm canonical name. */ protected BaseKeyWrappingAlgorithm(String name) --- 60,66 ---- /** * Protected constructor. ! * * @param name the key wrapping algorithm canonical name. */ protected BaseKeyWrappingAlgorithm(String name) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java Tue Jan 11 19:46:05 2011 *************** public interface IKeyWrappingAlgorithm *** 71,77 **** /** * Returns the canonical name of this Key Wrapping Algorithm. ! * * @return the canonical name of this Key Wrapping Algorithm. */ String name(); --- 71,77 ---- /** * Returns the canonical name of this Key Wrapping Algorithm. ! * * @return the canonical name of this Key Wrapping Algorithm. */ String name(); *************** public interface IKeyWrappingAlgorithm *** 79,85 **** /** * Initializes this instance with the designated algorithm specific * attributes. ! * * @param attributes a map of name-to-value pairs the Key Wrapping Algorithm * must use for its setup. * @throws InvalidKeyException if an exception is encountered while seting up --- 79,85 ---- /** * Initializes this instance with the designated algorithm specific * attributes. ! * * @param attributes a map of name-to-value pairs the Key Wrapping Algorithm * must use for its setup. * @throws InvalidKeyException if an exception is encountered while seting up *************** public interface IKeyWrappingAlgorithm *** 89,95 **** /** * Wraps the designated plain text bytes. ! * * @param in the input byte array containing the plain text. * @param inOffset the offset into in where the first byte of * the plain text (key material) to wrap is located. --- 89,95 ---- /** * Wraps the designated plain text bytes. ! * * @param in the input byte array containing the plain text. * @param inOffset the offset into in where the first byte of * the plain text (key material) to wrap is located. *************** public interface IKeyWrappingAlgorithm *** 110,116 **** /** * Wraps the designated plain text bytes. ! * * @param in the input byte array containing the plain text. * @param inOffset the offset into in where the first byte of * the plain text (key material) to wrap is located. --- 110,116 ---- /** * Wraps the designated plain text bytes. ! * * @param in the input byte array containing the plain text. * @param inOffset the offset into in where the first byte of * the plain text (key material) to wrap is located. *************** public interface IKeyWrappingAlgorithm *** 121,127 **** /** * Unwraps the designated cipher text bytes. ! * * @param in the input byte array containing the cipher text. * @param inOffset the offset into in where the first byte of * the cipher text (already wrapped key material) to unwrap is --- 121,127 ---- /** * Unwraps the designated cipher text bytes. ! * * @param in the input byte array containing the cipher text. * @param inOffset the offset into in where the first byte of * the cipher text (already wrapped key material) to unwrap is *************** public interface IKeyWrappingAlgorithm *** 145,151 **** /** * Unwraps the designated cipher text bytes. ! * * @param in the input byte array containing the cipher text. * @param inOffset the offset into in where the first byte of * the cipher text (already wrapped key material) to unwrap is --- 145,151 ---- /** * Unwraps the designated cipher text bytes. ! * * @param in the input byte array containing the cipher text. * @param inOffset the offset into in where the first byte of * the cipher text (already wrapped key material) to unwrap is diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java Tue Jan 11 19:46:05 2011 *************** public class KeyWrappingAlgorithmFactory *** 51,57 **** { /** Names of Key Wrapping Algorihms cached for speed. */ private static Set names; ! /** Trivial constructor to enforce Singleton pattern. */ private KeyWrappingAlgorithmFactory() { --- 51,57 ---- { /** Names of Key Wrapping Algorihms cached for speed. */ private static Set names; ! /** Trivial constructor to enforce Singleton pattern. */ private KeyWrappingAlgorithmFactory() { *************** public class KeyWrappingAlgorithmFactory *** 60,66 **** /** * Returns an instance of a key-wrapping algorithm given its name. ! * * @param name the case-insensitive name of the key-wrapping algorithm. * @return an instance of the designated key-wrapping algorithm, or * null if none was found. --- 60,66 ---- /** * Returns an instance of a key-wrapping algorithm given its name. ! * * @param name the case-insensitive name of the key-wrapping algorithm. * @return an instance of the designated key-wrapping algorithm, or * null if none was found. *************** public class KeyWrappingAlgorithmFactory *** 88,94 **** /** * Returns a {@link Set} of key wrapping algorithm names supported by this * Factory. ! * * @return a {@link Set} of key wrapping algorithm names (Strings). */ public static synchronized final Set getNames() --- 88,94 ---- /** * Returns a {@link Set} of key wrapping algorithm names supported by this * Factory. ! * * @return a {@link Set} of key wrapping algorithm names (Strings). */ public static synchronized final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/kwa/TripleDESKeyWrap.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/kwa/TripleDESKeyWrap.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/kwa/TripleDESKeyWrap.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/kwa/TripleDESKeyWrap.java Tue Jan 11 19:46:05 2011 *************** public class TripleDESKeyWrap *** 124,130 **** } else System.arraycopy(in, inOffset, CEK, 0, 24); ! // TODO: check for the following: // However, a Two-key Triple-DES key MUST NOT be used to wrap a Three- // key Triple-DES key that is comprised of three unique DES keys. --- 124,130 ---- } else System.arraycopy(in, inOffset, CEK, 0, 24); ! // TODO: check for the following: // However, a Two-key Triple-DES key MUST NOT be used to wrap a Three- // key Triple-DES key that is comprised of three unique DES keys. *************** public class TripleDESKeyWrap *** 276,285 **** // 9. Use CEK as a Triple-DES key. return CEK; } ! /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ private void nextRandomBytes(byte[] buffer) --- 276,285 ---- // 9. Use CEK as a Triple-DES key. return CEK; } ! /** * Fills the designated byte array with random data. ! * * @param buffer the byte array to fill with random data. */ private void nextRandomBytes(byte[] buffer) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/BaseMac.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/BaseMac.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/BaseMac.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/BaseMac.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BaseMac.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BaseMac.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class BaseMac *** 59,65 **** /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name of this instance. */ protected BaseMac(String name) --- 59,65 ---- /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name of this instance. */ protected BaseMac(String name) *************** public abstract class BaseMac *** 71,77 **** /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name of this instance. * @param underlyingHash the underlying message digest algorithm instance. */ --- 71,77 ---- /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name of this instance. * @param underlyingHash the underlying message digest algorithm instance. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/HMac.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/HMac.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/HMac.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/HMac.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMac.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMac.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/HMacFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/HMacFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/HMacFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/HMacFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HMacFactory.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* HMacFactory.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class HMacFactory *** 63,69 **** * Return an instance of a HMAC algorithm given the name of its * underlying hash function, prefixed with the literal defined in * {@link Registry#HMAC_NAME_PREFIX}. ! * * @param name the fully qualified name of the underlying algorithm: composed * as the concatenation of a literal prefix (see * {@link Registry#HMAC_NAME_PREFIX}) and the name of the underlying --- 63,69 ---- * Return an instance of a HMAC algorithm given the name of its * underlying hash function, prefixed with the literal defined in * {@link Registry#HMAC_NAME_PREFIX}. ! * * @param name the fully qualified name of the underlying algorithm: composed * as the concatenation of a literal prefix (see * {@link Registry#HMAC_NAME_PREFIX}) and the name of the underlying *************** public class HMacFactory *** 96,102 **** * Returns a {@link java.util.Set} of names of HMAC algorithms * supported by this Factory. *

          ! * * @return a {@link java.util.Set} of HMAC algorithm names (Strings). */ public static final Set getNames() --- 96,102 ---- * Returns a {@link java.util.Set} of names of HMAC algorithms * supported by this Factory. *

          ! * * @return a {@link java.util.Set} of HMAC algorithm names (Strings). */ public static final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/IMac.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/IMac.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/IMac.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/IMac.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IMac.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IMac.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IMac *** 107,120 **** /** * Returns the canonical name of this algorithm. ! * * @return the canonical name of this algorithm. */ String name(); /** * Returns the output length in bytes of this MAC algorithm. ! * * @return the output length in bytes of this MAC algorithm. */ int macSize(); --- 107,120 ---- /** * Returns the canonical name of this algorithm. ! * * @return the canonical name of this algorithm. */ String name(); /** * Returns the output length in bytes of this MAC algorithm. ! * * @return the output length in bytes of this MAC algorithm. */ int macSize(); *************** public interface IMac *** 122,128 **** /** * Initialises the algorithm with designated attributes. Permissible names and * values are described in the class documentation above. ! * * @param attributes a set of name-value pairs that describe the desired * future instance behaviour. * @exception InvalidKeyException if the key data is invalid. --- 122,128 ---- /** * Initialises the algorithm with designated attributes. Permissible names and * values are described in the class documentation above. ! * * @param attributes a set of name-value pairs that describe the desired * future instance behaviour. * @exception InvalidKeyException if the key data is invalid. *************** public interface IMac *** 133,139 **** /** * Continues a MAC operation using the input byte. ! * * @param b the input byte to digest. */ void update(byte b); --- 133,139 ---- /** * Continues a MAC operation using the input byte. ! * * @param b the input byte to digest. */ void update(byte b); *************** public interface IMac *** 142,148 **** * Continues a MAC operation, by filling the buffer, processing data * in the algorithm's MAC_SIZE-bit block(s), updating the context and count, * and buffering the remaining bytes in buffer for the next operation. ! * * @param in the input block. * @param offset start of meaningful bytes in input block. * @param length number of bytes, in input block, to consider. --- 142,148 ---- * Continues a MAC operation, by filling the buffer, processing data * in the algorithm's MAC_SIZE-bit block(s), updating the context and count, * and buffering the remaining bytes in buffer for the next operation. ! * * @param in the input block. * @param offset start of meaningful bytes in input block. * @param length number of bytes, in input block, to consider. *************** public interface IMac *** 152,158 **** /** * Completes the MAC by performing final operations such as padding * and resetting the instance. ! * * @return the array of bytes representing the MAC value. */ byte[] digest(); --- 152,158 ---- /** * Completes the MAC by performing final operations such as padding * and resetting the instance. ! * * @return the array of bytes representing the MAC value. */ byte[] digest(); *************** public interface IMac *** 166,172 **** /** * A basic test. Ensures that the MAC of a pre-determined message is equal to * a known pre-computed value. ! * * @return true if the implementation passes a basic self-test. * Returns false otherwise. */ --- 166,172 ---- /** * A basic test. Ensures that the MAC of a pre-determined message is equal to * a known pre-computed value. ! * * @return true if the implementation passes a basic self-test. * Returns false otherwise. */ *************** public interface IMac *** 174,180 **** /** * Returns a clone copy of this instance. ! * * @return a clone copy of this instance. */ Object clone() throws CloneNotSupportedException; --- 174,180 ---- /** * Returns a clone copy of this instance. ! * * @return a clone copy of this instance. */ Object clone() throws CloneNotSupportedException; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/MacFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/MacFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/MacFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/MacFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MacFactory.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MacFactory.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class MacFactory *** 64,70 **** /** * Returns an instance of a MAC algorithm given its name. ! * * @param name the name of the MAC algorithm. * @return an instance of the MAC algorithm, or null if * none can be constructed. --- 64,70 ---- /** * Returns an instance of a MAC algorithm given its name. ! * * @param name the name of the MAC algorithm. * @return an instance of the MAC algorithm, or null if * none can be constructed. *************** public class MacFactory *** 105,111 **** /** * Returns a {@link Set} of names of MAC algorithms supported by this * Factory. ! * * @return a {@link Set} of MAC names (Strings). */ public static final Set getNames() --- 105,111 ---- /** * Returns a {@link Set} of names of MAC algorithms supported by this * Factory. ! * * @return a {@link Set} of MAC names (Strings). */ public static final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/MacInputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/MacInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/MacInputStream.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/MacInputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MacInputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MacInputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class MacInputStream *** 58,64 **** * Creates a new MacInputStream. The stream is initially set to digest data * written, the mac argument must have already been initialized, and * the mac argument is not cloned. ! * * @param in The underlying input stream. * @param mac The mac instance to use. */ --- 58,64 ---- * Creates a new MacInputStream. The stream is initially set to digest data * written, the mac argument must have already been initialized, and * the mac argument is not cloned. ! * * @param in The underlying input stream. * @param mac The mac instance to use. */ *************** public class MacInputStream *** 73,79 **** /** * Returns the MAC this stream is updating. ! * * @return The MAC. */ public IMac getMac() --- 73,79 ---- /** * Returns the MAC this stream is updating. ! * * @return The MAC. */ public IMac getMac() *************** public class MacInputStream *** 84,90 **** /** * Sets the MAC this stream is updating, which must have already been * initialized. The argument is not cloned by this method. ! * * @param mac The new MAC. * @throws NullPointerException If the argument is null. */ --- 84,90 ---- /** * Sets the MAC this stream is updating, which must have already been * initialized. The argument is not cloned by this method. ! * * @param mac The new MAC. * @throws NullPointerException If the argument is null. */ *************** public class MacInputStream *** 98,104 **** /** * Turns the digesting state on or off. When off, the MAC will not be updated * when data is written to the stream. ! * * @param flag The new digesting state. */ public void on(boolean flag) --- 98,104 ---- /** * Turns the digesting state on or off. When off, the MAC will not be updated * when data is written to the stream. ! * * @param flag The new digesting state. */ public void on(boolean flag) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/MacOutputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/MacOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/MacOutputStream.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/MacOutputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MacOutputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* MacOutputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class MacOutputStream *** 59,65 **** * to digest data written, the mac argument must have already * been initialized, and the mac argument is not * cloned. ! * * @param out The underlying output stream. * @param mac The mac instance to use. */ --- 59,65 ---- * to digest data written, the mac argument must have already * been initialized, and the mac argument is not * cloned. ! * * @param out The underlying output stream. * @param mac The mac instance to use. */ *************** public class MacOutputStream *** 74,80 **** /** * Returns the MAC this stream is updating. ! * * @return The MAC. */ public IMac getMac() --- 74,80 ---- /** * Returns the MAC this stream is updating. ! * * @return The MAC. */ public IMac getMac() *************** public class MacOutputStream *** 85,91 **** /** * Sets the MAC this stream is updating, which must have already been * initialized. The argument is not cloned by this method. ! * * @param mac The non-null new MAC. * @throws NullPointerException If the argument is null. */ --- 85,91 ---- /** * Sets the MAC this stream is updating, which must have already been * initialized. The argument is not cloned by this method. ! * * @param mac The non-null new MAC. * @throws NullPointerException If the argument is null. */ *************** public class MacOutputStream *** 99,105 **** /** * Turns the digesting state on or off. When off, the MAC will not be updated * when data is written to the stream. ! * * @param flag The new digesting state. */ public void on(boolean flag) --- 99,105 ---- /** * Turns the digesting state on or off. When off, the MAC will not be updated * when data is written to the stream. ! * * @param flag The new digesting state. */ public void on(boolean flag) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/OMAC.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/OMAC.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/OMAC.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/OMAC.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OMAC.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* OMAC.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/TMMH16.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/TMMH16.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/TMMH16.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/TMMH16.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TMMH16.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TMMH16.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class TMMH16 *** 243,249 **** /** * Similar to the same method with one argument, but uses the designated * random number generator to compute needed keying material. ! * * @param b the byte to process. * @param prng the source of randomness to use. */ --- 243,249 ---- /** * Similar to the same method with one argument, but uses the designated * random number generator to compute needed keying material. ! * * @param b the byte to process. * @param prng the source of randomness to use. */ *************** public class TMMH16 *** 271,277 **** /** * Similar to the same method with three arguments, but uses the designated * random number generator to compute needed keying material. ! * * @param b the byte array to process. * @param offset the starting offset in b to start considering * the bytes to process. --- 271,277 ---- /** * Similar to the same method with three arguments, but uses the designated * random number generator to compute needed keying material. ! * * @param b the byte array to process. * @param offset the starting offset in b to start considering * the bytes to process. *************** public class TMMH16 *** 288,294 **** /** * Similar to the same method with no arguments, but uses the designated * random number generator to compute needed keying material. ! * * @param prng the source of randomness to use. * @return the final result of the algorithm. */ --- 288,294 ---- /** * Similar to the same method with no arguments, but uses the designated * random number generator to compute needed keying material. ! * * @param prng the source of randomness to use. * @return the final result of the algorithm. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/UHash32.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/UHash32.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/UHash32.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/UHash32.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UHash32.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* UHash32.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class UHash32 *** 632,638 **** /** * 5.3 POLY: Polynomial hash Function Name: POLY ! * * @param wordbits positive integer divisible by 8: called with 64 or 128. * @param maxwordrange positive integer less than 2**wordbits. * @param k integer in the range 0 .. prime(wordbits) - 1. --- 632,638 ---- /** * 5.3 POLY: Polynomial hash Function Name: POLY ! * * @param wordbits positive integer divisible by 8: called with 64 or 128. * @param maxwordrange positive integer less than 2**wordbits. * @param k integer in the range 0 .. prime(wordbits) - 1. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/UMac32.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/UMac32.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mac/UMac32.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mac/UMac32.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UMac32.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* UMac32.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class UMac32 *** 160,166 **** /** * Private constructor for cloning purposes. ! * * @param that the instance to clone. */ private UMac32(UMac32 that) --- 160,166 ---- /** * Private constructor for cloning purposes. ! * * @param that the instance to clone. */ private UMac32(UMac32 that) *************** public class UMac32 *** 218,224 **** * (from an earlier invocation of this method). If a Key Material can * be used, but no Nonce Material is defined or previously * set/defined, then a default value of all-zeroes shall be used. ! * * @param attributes one or both of required parameters. * @throws InvalidKeyException the key material specified is not of the * correct length. --- 218,224 ---- * (from an earlier invocation of this method). If a Key Material can * be used, but no Nonce Material is defined or previously * set/defined, then a default value of all-zeroes shall be used. ! * * @param attributes one or both of required parameters. * @throws InvalidKeyException the key material specified is not of the * correct length. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BaseMode.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BaseMode.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class BaseMode *** 74,80 **** /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name prefix of this mode. * @param underlyingCipher the implementation of the underlying cipher. * @param cipherBlockSize the block size, in bytes, in which to operate the --- 74,80 ---- /** * Trivial constructor for use by concrete subclasses. ! * * @param name the canonical name prefix of this mode. * @param underlyingCipher the implementation of the underlying cipher. * @param cipherBlockSize the block size, in bytes, in which to operate the *************** public abstract class BaseMode *** 124,130 **** * the same block size as its underlying block cipher. As mentioned earlier, * the block size of the underlying block cipher itself is specified in one of * the method(s) available in the factory class. ! * * @return the default value, in bytes, of the mode's block size. * @see ModeFactory */ --- 124,130 ---- * the same block size as its underlying block cipher. As mentioned earlier, * the block size of the underlying block cipher itself is specified in one of * the method(s) available in the factory class. ! * * @return the default value, in bytes, of the mode's block size. * @see ModeFactory */ *************** public abstract class BaseMode *** 136,142 **** /** * Returns the default value, in bytes, of the underlying block cipher key * size. ! * * @return the default value, in bytes, of the underlying cipher's key size. */ public int defaultKeySize() --- 136,142 ---- /** * Returns the default value, in bytes, of the underlying block cipher key * size. ! * * @return the default value, in bytes, of the underlying cipher's key size. */ public int defaultKeySize() *************** public abstract class BaseMode *** 152,158 **** * is that currently configured for the underlying block cipher. Concrete * implementations may override this behaviour to signal their ability to * support other values. ! * * @return an {@link Iterator} over the supported block sizes. */ public Iterator blockSizes() --- 152,158 ---- * is that currently configured for the underlying block cipher. Concrete * implementations may override this behaviour to signal their ability to * support other values. ! * * @return an {@link Iterator} over the supported block sizes. */ public Iterator blockSizes() *************** public abstract class BaseMode *** 166,172 **** * Returns an {@link Iterator} over the supported underlying block cipher key * sizes. Each element returned by this object is an instance of * {@link Integer}. ! * * @return an {@link Iterator} over the supported key sizes. */ public Iterator keySizes() --- 166,172 ---- * Returns an {@link Iterator} over the supported underlying block cipher key * sizes. Each element returned by this object is an instance of * {@link Integer}. ! * * @return an {@link Iterator} over the supported key sizes. */ public Iterator keySizes() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/CBC.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/CBC.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/CBC.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/CBC.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CBC.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CBC.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import gnu.javax.crypto.cipher.IBlockCip *** 45,51 **** * The Cipher Block Chaining mode. This mode introduces feedback into the cipher * by XORing the previous ciphertext block with the plaintext block before * encipherment. That is, encrypting looks like this: ! * *
             *  Ci = EK(Piˆ Ci-1)
             * 
          --- 45,51 ---- * The Cipher Block Chaining mode. This mode introduces feedback into the cipher * by XORing the previous ciphertext block with the plaintext block before * encipherment. That is, encrypting looks like this: ! * *
             *  Ci = EK(Piˆ Ci-1)
             * 
          *************** public class CBC *** 66,72 **** /** * Package-private constructor for the factory class. ! * * @param underlyingCipher The cipher implementation. * @param cipherBlockSize The cipher's block size. */ --- 66,72 ---- /** * Package-private constructor for the factory class. ! * * @param underlyingCipher The cipher implementation. * @param cipherBlockSize The cipher's block size. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/CFB.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/CFB.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/CFB.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/CFB.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CFB.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CFB.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class CFB *** 83,89 **** /** * Package-private constructor for the factory class. ! * * @param underlyingCipher The cipher implementation. * @param cipherBlockSize The cipher's block size. */ --- 83,89 ---- /** * Package-private constructor for the factory class. ! * * @param underlyingCipher The cipher implementation. * @param cipherBlockSize The cipher's block size. */ *************** public class CFB *** 94,100 **** /** * Cloneing constructor. ! * * @param that The instance being cloned. */ private CFB(CFB that) --- 94,100 ---- /** * Cloneing constructor. ! * * @param that The instance being cloned. */ private CFB(CFB that) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/CTR.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/CTR.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/CTR.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/CTR.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CTR.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CTR.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.util.Iterator; *** 49,62 **** * The implementation of the Counter Mode. *

          * The algorithm steps are formally described as follows: ! * *

             *     CTR Encryption: O[j] = E(K)(T[j]); for j = 1, 2...n;
             *                     C[j] = P[j] ˆ O[j]; for j = 1, 2...n.
             *     CTR Decryption: O[j] = E(K)(T[j]); for j = 1, 2...n;
             *                     P[j] = C[j] ˆ O[j]; for j = 1, 2...n.
             * 
          ! * *

          * where P is the plaintext, C is the ciphertext, * E(K) is the underlying block cipher encryption function --- 49,62 ---- * The implementation of the Counter Mode. *

          * The algorithm steps are formally described as follows: ! * *

             *     CTR Encryption: O[j] = E(K)(T[j]); for j = 1, 2...n;
             *                     C[j] = P[j] ˆ O[j]; for j = 1, 2...n.
             *     CTR Decryption: O[j] = E(K)(T[j]); for j = 1, 2...n;
             *                     P[j] = C[j] ˆ O[j]; for j = 1, 2...n.
             * 
          ! * *

          * where P is the plaintext, C is the ciphertext, * E(K) is the underlying block cipher encryption function *************** public class CTR *** 83,89 **** /** * Trivial package-private constructor for use by the Factory class. ! * * @param underlyingCipher the underlying cipher implementation. * @param cipherBlockSize the underlying cipher block size to use. */ --- 83,89 ---- /** * Trivial package-private constructor for use by the Factory class. ! * * @param underlyingCipher the underlying cipher implementation. * @param cipherBlockSize the underlying cipher block size to use. */ *************** public class CTR *** 94,100 **** /** * Private constructor for cloning purposes. ! * * @param that the instance to clone. */ private CTR(CTR that) --- 94,100 ---- /** * Private constructor for cloning purposes. ! * * @param that the instance to clone. */ private CTR(CTR that) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/EAX.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/EAX.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/EAX.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/EAX.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EAX.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* EAX.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/ECB.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/ECB.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/ECB.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/ECB.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ECB.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ECB.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ECB *** 75,81 **** { /** * Trivial package-private constructor for use by the Factory class. ! * * @param underlyingCipher the underlying cipher implementation. * @param cipherBlockSize the underlying cipher block size to use. */ --- 75,81 ---- { /** * Trivial package-private constructor for use by the Factory class. ! * * @param underlyingCipher the underlying cipher implementation. * @param cipherBlockSize the underlying cipher block size to use. */ *************** public class ECB *** 86,92 **** /** * Private constructor for cloning purposes. ! * * @param that the mode to clone. */ private ECB(ECB that) --- 86,92 ---- /** * Private constructor for cloning purposes. ! * * @param that the mode to clone. */ private ECB(ECB that) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/IAuthenticatedMode.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/IAuthenticatedMode.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/IAuthenticatedMode.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/IAuthenticatedMode.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IAuthenticatedMode.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IAuthenticatedMode.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/ICM.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/ICM.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/ICM.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/ICM.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ICM.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ICM.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ICM *** 103,109 **** /** * Trivial package-private constructor for use by the Factory class. ! * * @param underlyingCipher the underlying cipher implementation. * @param cipherBlockSize the underlying cipher block size to use. */ --- 103,109 ---- /** * Trivial package-private constructor for use by the Factory class. ! * * @param underlyingCipher the underlying cipher implementation. * @param cipherBlockSize the underlying cipher block size to use. */ *************** public class ICM *** 114,120 **** /** * Private constructor for cloning purposes. ! * * @param that the instance to clone. */ private ICM(ICM that) --- 114,120 ---- /** * Private constructor for cloning purposes. ! * * @param that the instance to clone. */ private ICM(ICM that) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/IMode.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/IMode.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/IMode.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/IMode.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IMode.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IMode.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IMode *** 110,116 **** * A convenience method. Effectively invokes the encryptBlock() * or decryptBlock() method depending on the operational state * of the instance. ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. --- 110,116 ---- * A convenience method. Effectively invokes the encryptBlock() * or decryptBlock() method depending on the operational state * of the instance. ! * * @param in the plaintext. * @param inOffset index of in from which to start considering * data. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/ModeFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/ModeFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/ModeFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/ModeFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ModeFactory.java -- Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ModeFactory.java -- Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ModeFactory *** 65,71 **** /** * Returns an instance of a block cipher mode of operations given its name and * characteristics of the underlying block cipher. ! * * @param mode the case-insensitive name of the mode of operations. * @param cipher the case-insensitive name of the block cipher. * @param cipherBlockSize the block size, in bytes, of the underlying cipher. --- 65,71 ---- /** * Returns an instance of a block cipher mode of operations given its name and * characteristics of the underlying block cipher. ! * * @param mode the case-insensitive name of the mode of operations. * @param cipher the case-insensitive name of the block cipher. * @param cipherBlockSize the block size, in bytes, of the underlying cipher. *************** public class ModeFactory *** 126,132 **** /** * Returns a {@link Set} of names of mode supported by this Factory. ! * * @return a {@link Set} of mode names (Strings). */ public static final Set getNames() --- 126,132 ---- /** * Returns a {@link Set} of names of mode supported by this Factory. ! * * @return a {@link Set} of mode names (Strings). */ public static final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/OFB.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/OFB.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/mode/OFB.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/mode/OFB.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OFB.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* OFB.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class OFB *** 125,131 **** /** * Trivial package-private constructor for use by the Factory class. ! * * @param underlyingCipher the underlying cipher implementation. * @param cipherBlockSize the underlying cipher block size to use. */ --- 125,131 ---- /** * Trivial package-private constructor for use by the Factory class. ! * * @param underlyingCipher the underlying cipher implementation. * @param cipherBlockSize the underlying cipher block size to use. */ *************** public class OFB *** 136,142 **** /** * Private constructor for cloning purposes. ! * * @param that the mode to clone. */ private OFB(OFB that) --- 136,142 ---- /** * Private constructor for cloning purposes. ! * * @param that the mode to clone. */ private OFB(OFB that) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/BasePad.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/BasePad.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/BasePad.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/BasePad.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BasePad.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* BasePad.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class BasePad *** 94,100 **** * an {@link UnsupportedOperationException}. Concrete padding algorithms MUST * override this method if they wish to offer an initialisation method that * allows for other than the padding block size parameter to be specified. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @exception IllegalStateException if the instance is already initialised. --- 94,100 ---- * an {@link UnsupportedOperationException}. Concrete padding algorithms MUST * override this method if they wish to offer an initialisation method that * allows for other than the padding block size parameter to be specified. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @exception IllegalStateException if the instance is already initialised. *************** public abstract class BasePad *** 113,119 **** /** * A default implementation of a correctness test that exercises the padder * implementation, using block sizes varying from 2 to 256 bytes. ! * * @return true if the concrete implementation correctly unpads * what it pads for all tested block sizes. Returns false * if the test fails for any block size. --- 113,119 ---- /** * A default implementation of a correctness test that exercises the padder * implementation, using block sizes varying from 2 to 256 bytes. ! * * @return true if the concrete implementation correctly unpads * what it pads for all tested block sizes. Returns false * if the test fails for any block size. *************** public abstract class BasePad *** 132,138 **** *

          * The code ensures that the implementation is capable of unpadding what it * pads. ! * * @param size the block size to test. * @param buffer a work buffer. It is exposed as an argument for this method * to reduce un-necessary object allocations. --- 132,138 ---- *

          * The code ensures that the implementation is capable of unpadding what it * pads. ! * * @param size the block size to test. * @param buffer a work buffer. It is exposed as an argument for this method * to reduce un-necessary object allocations. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/IPad.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/IPad.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/IPad.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/IPad.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IPad.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IPad.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IPad *** 53,59 **** { /** * Property name of the block size in which to operate the padding algorithm. ! * The value associated with this property name is taken to be a positive * {@link Integer} greater than zero. */ String PADDING_BLOCK_SIZE = "gnu.crypto.pad.block.size"; --- 53,59 ---- { /** * Property name of the block size in which to operate the padding algorithm. ! * The value associated with this property name is taken to be a positive * {@link Integer} greater than zero. */ String PADDING_BLOCK_SIZE = "gnu.crypto.pad.block.size"; *************** public interface IPad *** 63,69 **** /** * Initialises the padding scheme with a designated block size. ! * * @param bs the designated block size. * @exception IllegalStateException if the instance is already initialised. * @exception IllegalArgumentException if the block size value is invalid. --- 63,69 ---- /** * Initialises the padding scheme with a designated block size. ! * * @param bs the designated block size. * @exception IllegalStateException if the instance is already initialised. * @exception IllegalArgumentException if the block size value is invalid. *************** public interface IPad *** 75,81 **** * recognisable by all concrete implementations are described in the class * documentation above. Other algorithm-specific attributes MUST be documented * in the implementation class of that padding algorithm. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @exception IllegalStateException if the instance is already initialised. --- 75,81 ---- * recognisable by all concrete implementations are described in the class * documentation above. Other algorithm-specific attributes MUST be documented * in the implementation class of that padding algorithm. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @exception IllegalStateException if the instance is already initialised. *************** public interface IPad *** 85,91 **** /** * Returns the byte sequence that should be appended to the designated input. ! * * @param in the input buffer containing the bytes to pad. * @param offset the starting index of meaningful data in in. * @param length the number of meaningful bytes in in. --- 85,91 ---- /** * Returns the byte sequence that should be appended to the designated input. ! * * @param in the input buffer containing the bytes to pad. * @param offset the starting index of meaningful data in in. * @param length the number of meaningful bytes in in. *************** public interface IPad *** 96,102 **** /** * Returns the number of bytes to discard from a designated input buffer. ! * * @param in the input buffer containing the bytes to unpad. * @param offset the starting index of meaningful data in in. * @param length the number of meaningful bytes in in. --- 96,102 ---- /** * Returns the number of bytes to discard from a designated input buffer. ! * * @param in the input buffer containing the bytes to unpad. * @param offset the starting index of meaningful data in in. * @param length the number of meaningful bytes in in. *************** public interface IPad *** 119,125 **** /** * A basic symmetric pad/unpad test. ! * * @return true if the implementation passes a basic symmetric * self-test. Returns false otherwise. */ --- 119,125 ---- /** * A basic symmetric pad/unpad test. ! * * @return true if the implementation passes a basic symmetric * self-test. Returns false otherwise. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/PKCS1_V1_5.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/PKCS1_V1_5.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/PKCS1_V1_5.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/PKCS1_V1_5.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PKCS1_V1_5.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PKCS1_V1_5.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.util.logging.Logger; *** 60,66 **** * RSA Cryptography Specifications Version 2.1.
          * Jakob Jonsson and Burt Kaliski. * ! * * @see EME_PKCS1_V1_5 */ public class PKCS1_V1_5 --- 60,66 ---- * RSA Cryptography Specifications Version 2.1.
          * Jakob Jonsson and Burt Kaliski. * ! * * @see EME_PKCS1_V1_5 */ public class PKCS1_V1_5 diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PKCS7.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PKCS7.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class PKCS7 *** 69,75 **** /** * Trivial package-private constructor for use by the Factory class. ! * * @see PadFactory */ PKCS7() --- 69,75 ---- /** * Trivial package-private constructor for use by the Factory class. ! * * @see PadFactory */ PKCS7() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/PadFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/PadFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/PadFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/PadFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PadFactory.java -- Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PadFactory.java -- Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class PadFactory *** 61,67 **** /** * Returns an instance of a padding algorithm given its name. ! * * @param pad the case-insensitive name of the padding algorithm. * @return an instance of the padding algorithm, operating with a given block * size, or null if none found. --- 61,67 ---- /** * Returns an instance of a padding algorithm given its name. ! * * @param pad the case-insensitive name of the padding algorithm. * @return an instance of the padding algorithm, operating with a given block * size, or null if none found. *************** public class PadFactory *** 98,104 **** /** * Returns a {@link Set} of names of padding algorithms supported by this * Factory. ! * * @return a {@link Set} of padding algorithm names (Strings). */ public static final Set getNames() --- 98,104 ---- /** * Returns a {@link Set} of names of padding algorithms supported by this * Factory. ! * * @return a {@link Set} of padding algorithm names (Strings). */ public static final Set getNames() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/TBC.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/TBC.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/TBC.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/TBC.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TBC.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* TBC.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public final class TBC *** 68,74 **** /** * Trivial package-private constructor for use by the Factory class. ! * * @see PadFactory */ TBC() --- 68,74 ---- /** * Trivial package-private constructor for use by the Factory class. ! * * @see PadFactory */ TBC() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/WrongPaddingException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/WrongPaddingException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/pad/WrongPaddingException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/pad/WrongPaddingException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WrongPaddingException.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* WrongPaddingException.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/ARCFour.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/ARCFour.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/ARCFour.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/ARCFour.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ARCFour.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ARCFour.java -- Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/CSPRNG.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/CSPRNG.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/CSPRNG.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/CSPRNG.java Tue Jan 11 19:46:05 2011 *************** public class CSPRNG *** 99,105 **** *

        22. An {@link Integer}, indicating the number of bytes to read.
        23. *
        24. A {@link String}, indicating the path to the file.
        25. * ! * * @see gnu.java.security.util.SimpleList */ public static final String FILE_SOURCES = "gnu.crypto.prng.pool.files"; --- 99,105 ---- *
        26. An {@link Integer}, indicating the number of bytes to read.
        27. *
        28. A {@link String}, indicating the path to the file.
        29. * ! * * @see gnu.java.security.util.SimpleList */ public static final String FILE_SOURCES = "gnu.crypto.prng.pool.files"; *************** public class CSPRNG *** 268,283 **** * An example of valid properties would be: *
               *  gnu.crypto.csprng.blocking=true
          !    * 
               *  gnu.crypto.csprng.file.1=75.0;0;256;/dev/random
               *  gnu.crypto.csprng.file.2=10.0;0;100;/home/user/file
          !    * 
               *  gnu.crypto.csprng.url.1=5.0;0;256;http://www.random.org/cgi-bin/randbyte?nbytes=256
               *  gnu.crypto.csprng.url.2=0;256;256;http://slashdot.org/
          !    * 
               *  gnu.crypto.csprng.program.1=0.5;0;10;last -n 50
               *  gnu.crypto.csprng.program.2=0.5;0;10;tcpdump -c 5
          !    * 
               *  gnu.crypto.csprng.other.1=foo.bar.MyEntropySource
               *  gnu.crypto.csprng.other.2=com.company.OtherEntropySource
               * 
          --- 268,283 ---- * An example of valid properties would be: *
               *  gnu.crypto.csprng.blocking=true
          !    *
               *  gnu.crypto.csprng.file.1=75.0;0;256;/dev/random
               *  gnu.crypto.csprng.file.2=10.0;0;100;/home/user/file
          !    *
               *  gnu.crypto.csprng.url.1=5.0;0;256;http://www.random.org/cgi-bin/randbyte?nbytes=256
               *  gnu.crypto.csprng.url.2=0;256;256;http://slashdot.org/
          !    *
               *  gnu.crypto.csprng.program.1=0.5;0;10;last -n 50
               *  gnu.crypto.csprng.program.2=0.5;0;10;tcpdump -c 5
          !    *
               *  gnu.crypto.csprng.other.1=foo.bar.MyEntropySource
               *  gnu.crypto.csprng.other.2=com.company.OtherEntropySource
               * 
          *************** public class CSPRNG *** 592,598 **** * Add an array of bytes into the randomness pool. Note that this method will * not increment the pool's quality counter (this can only be done via * a source provided to the setup method). ! * * @param buf The byte array. * @param off The offset from whence to start reading bytes. * @param len The number of bytes to add. --- 592,598 ---- * Add an array of bytes into the randomness pool. Note that this method will * not increment the pool's quality counter (this can only be done via * a source provided to the setup method). ! * * @param buf The byte array. * @param off The offset from whence to start reading bytes. * @param len The number of bytes to add. *************** public class CSPRNG *** 624,630 **** * Add a single random byte to the randomness pool. Note that this method will * not increment the pool's quality counter (this can only be done via * a source provided to the setup method). ! * * @param b The byte to add. */ public synchronized void addRandomByte(byte b) --- 624,630 ---- * Add a single random byte to the randomness pool. Note that this method will * not increment the pool's quality counter (this can only be done via * a source provided to the setup method). ! * * @param b The byte to add. */ public synchronized void addRandomByte(byte b) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/ICMGenerator.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/ICMGenerator.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/ICMGenerator.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/ICMGenerator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ICMGenerator.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ICMGenerator.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ICMGenerator *** 269,276 **** } catch (LimitReachedException impossible) { ! throw (InternalError) ! new InternalError().initCause(impossible); } } --- 269,276 ---- } catch (LimitReachedException impossible) { ! throw (InternalError) ! new InternalError().initCause(impossible); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/IPBE.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/IPBE.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/IPBE.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/IPBE.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IPBE.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IPBE.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/PBKDF2.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/PBKDF2.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/PBKDF2.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/PBKDF2.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PBKDF2.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PBKDF2.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class PBKDF2 *** 84,90 **** /** * Creates a new PBKDF2 object. The argument is the MAC that will serve as the * pseudo-random function. The MAC does not need to be initialized. ! * * @param mac The pseudo-random function. */ public PBKDF2(IMac mac) --- 84,90 ---- /** * Creates a new PBKDF2 object. The argument is the MAC that will serve as the * pseudo-random function. The MAC does not need to be initialized. ! * * @param mac The pseudo-random function. */ public PBKDF2(IMac mac) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/PRNGFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/PRNGFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/PRNGFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/PRNGFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PRNGFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PRNGFactory.java -- Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class PRNGFactory *** 62,68 **** /** * Returns an instance of a padding algorithm given its name. ! * * @param prng the case-insensitive name of the PRNG. * @return an instance of the pseudo-random number generator. * @exception InternalError if the implementation does not pass its self- --- 62,68 ---- /** * Returns an instance of a padding algorithm given its name. ! * * @param prng the case-insensitive name of the PRNG. * @return an instance of the pseudo-random number generator. * @exception InternalError if the implementation does not pass its self- *************** public class PRNGFactory *** 98,104 **** /** * Returns a {@link Set} of names of padding algorithms supported by this * Factory. ! * * @return a {@link Set} of pseudo-random number generator algorithm names * (Strings). */ --- 98,104 ---- /** * Returns a {@link Set} of names of padding algorithms supported by this * Factory. ! * * @return a {@link Set} of pseudo-random number generator algorithm names * (Strings). */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/UMacGenerator.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/UMacGenerator.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/prng/UMacGenerator.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/prng/UMacGenerator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UMacGenerator.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* UMacGenerator.java -- Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/AuthInfo.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/AuthInfo.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/AuthInfo.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/AuthInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AuthInfo.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AuthInfo.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class AuthInfo *** 110,116 **** * factories, one at a time, and attempts to return a new instance of the * provider for the designated mechanism. It stops at the first factory * returning a non-null provider. ! * * @param mechanism the name of a SASL mechanism. * @return an implementation that provides {@link IAuthInfoProvider} for that * mechanism; or null if none found. --- 110,116 ---- * factories, one at a time, and attempts to return a new instance of the * provider for the designated mechanism. It stops at the first factory * returning a non-null provider. ! * * @param mechanism the name of a SASL mechanism. * @return an implementation that provides {@link IAuthInfoProvider} for that * mechanism; or null if none found. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/AuthInfoProviderFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/AuthInfoProviderFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/AuthInfoProviderFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/AuthInfoProviderFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AuthInfoProviderFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AuthInfoProviderFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ClientFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ClientFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ClientFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ClientFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClientFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ClientFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ClientMechanism.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ClientMechanism.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ClientMechanism.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ClientMechanism.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClientMechanism.java -- Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ClientMechanism.java -- Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class ClientMechanism *** 235,241 **** /** * Initialises the mechanism with designated attributes. Permissible names and * values are mechanism specific. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalMechanismStateException if the instance is already --- 235,241 ---- /** * Initialises the mechanism with designated attributes. Permissible names and * values are mechanism specific. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalMechanismStateException if the instance is already *************** public abstract class ClientMechanism *** 278,284 **** /** * Resets the mechanism instance for re-initialisation and use with other * characteristics. ! * * @throws SaslException if an exception occurs during the process. */ public void reset() throws SaslException --- 278,284 ---- /** * Resets the mechanism instance for re-initialisation and use with other * characteristics. ! * * @throws SaslException if an exception occurs during the process. */ public void reset() throws SaslException diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ConfidentialityException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ConfidentialityException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ConfidentialityException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ConfidentialityException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ConfidentialityException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ConfidentialityException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ConfidentialityException *** 60,66 **** /** * Constructs a new instance of ConfidentialityException with * the specified detail message. ! * * @param s the detail message. */ public ConfidentialityException(String s) --- 60,66 ---- /** * Constructs a new instance of ConfidentialityException with * the specified detail message. ! * * @param s the detail message. */ public ConfidentialityException(String s) *************** public class ConfidentialityException *** 71,77 **** /** * Constructs a new instance of ConfidentialityException with a * detailed message and a root exception. ! * * @param s possibly null additional detail about the exception. * @param x a possibly null root exception that caused this one. */ --- 71,77 ---- /** * Constructs a new instance of ConfidentialityException with a * detailed message and a root exception. ! * * @param s possibly null additional detail about the exception. * @param x a possibly null root exception that caused this one. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/IAuthInfoProvider.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/IAuthInfoProvider.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/IAuthInfoProvider.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/IAuthInfoProvider.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IAuthInfoProvider.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IAuthInfoProvider.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IAuthInfoProvider *** 50,56 **** /** * Activates (initialises) this provider instance. SHOULD be the first method * invoked on the provider. ! * * @param context a collection of name-value bindings describing the * activation context. * @throws AuthenticationException if an exception occurs during the --- 50,56 ---- /** * Activates (initialises) this provider instance. SHOULD be the first method * invoked on the provider. ! * * @param context a collection of name-value bindings describing the * activation context. * @throws AuthenticationException if an exception occurs during the *************** public interface IAuthInfoProvider *** 62,68 **** * Passivates (releases) this provider instance. SHOULD be the last method * invoked on the provider. Once it is done, no other method may be invoked on * the same instance before it is activated agains. ! * * @throws AuthenticationException if an exception occurs during the * operation. */ --- 62,68 ---- * Passivates (releases) this provider instance. SHOULD be the last method * invoked on the provider. Once it is done, no other method may be invoked on * the same instance before it is activated agains. ! * * @throws AuthenticationException if an exception occurs during the * operation. */ *************** public interface IAuthInfoProvider *** 70,76 **** /** * Checks if a user with a designated name is known to this provider. ! * * @param userName the name of a user to check. * @return true if the user with the designated name is known * to this provider; false otherwise. --- 70,76 ---- /** * Checks if a user with a designated name is known to this provider. ! * * @param userName the name of a user to check. * @return true if the user with the designated name is known * to this provider; false otherwise. *************** public interface IAuthInfoProvider *** 82,88 **** /** * Returns a collection of information about a designated user. The contents * of the returned map is provider-specific of name-to-value mappings. ! * * @param userID a map of name-to-value bindings that fully describe a user. * @return a collection of information about the designated user. * @throws AuthenticationException if an exception occurs during the --- 82,88 ---- /** * Returns a collection of information about a designated user. The contents * of the returned map is provider-specific of name-to-value mappings. ! * * @param userID a map of name-to-value bindings that fully describe a user. * @return a collection of information about the designated user. * @throws AuthenticationException if an exception occurs during the *************** public interface IAuthInfoProvider *** 92,98 **** /** * Updates the credentials of a designated user. ! * * @param userCredentials a map of name-to-value bindings that fully describe * a user, including per new credentials. * @throws AuthenticationException if an exception occurs during the --- 92,98 ---- /** * Updates the credentials of a designated user. ! * * @param userCredentials a map of name-to-value bindings that fully describe * a user, including per new credentials. * @throws AuthenticationException if an exception occurs during the *************** public interface IAuthInfoProvider *** 105,111 **** * credentials computed in more than one message digest algorithm. This method * returns the set of name-to-value bindings describing the mode of the * provider. ! * * @param mode a unique identifier describing the operational mode. * @return a collection of name-to-value bindings describing the designated * mode. --- 105,111 ---- * credentials computed in more than one message digest algorithm. This method * returns the set of name-to-value bindings describing the mode of the * provider. ! * * @param mode a unique identifier describing the operational mode. * @return a collection of name-to-value bindings describing the designated * mode. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IAuthInfoProviderFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IAuthInfoProviderFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public interface IAuthInfoProviderFactor *** 46,52 **** /** * Returns an implementation of a provider for a designated mechanism capable * of honouring {@link IAuthInfoProvider} requests. ! * * @param mechanism the unique name of a mechanism. * @return an implementation of {@link IAuthInfoProvider} for that mechanism * or null if none found. --- 46,52 ---- /** * Returns an implementation of a provider for a designated mechanism capable * of honouring {@link IAuthInfoProvider} requests. ! * * @param mechanism the unique name of a mechanism. * @return an implementation of {@link IAuthInfoProvider} for that mechanism * or null if none found. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/IllegalMechanismStateException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/IllegalMechanismStateException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/IllegalMechanismStateException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/IllegalMechanismStateException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IllegalMechanismStateException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IllegalMechanismStateException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class IllegalMechanismStateExcept *** 62,68 **** /** * Constructs a new instance of IllegalMechanismStateException * with the specified detail message. ! * * @param detail the detail message. */ public IllegalMechanismStateException(String detail) --- 62,68 ---- /** * Constructs a new instance of IllegalMechanismStateException * with the specified detail message. ! * * @param detail the detail message. */ public IllegalMechanismStateException(String detail) *************** public class IllegalMechanismStateExcept *** 73,79 **** /** * Constructs a new instance of IllegalMechanismStateException * with the specified detail message, and cause. ! * * @param detail the detail message. * @param ex the original cause. */ --- 73,79 ---- /** * Constructs a new instance of IllegalMechanismStateException * with the specified detail message, and cause. ! * * @param detail the detail message. * @param ex the original cause. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/InputBuffer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/InputBuffer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/InputBuffer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/InputBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* InputBuffer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* InputBuffer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class InputBuffer *** 69,75 **** /** * Constructs a SASL buffer given the buffer's encoded form, including its * header bytes. ! * * @param frame the encoded form, including the header bytes, of a SASL * buffer. * @throws SaslEncodingException if the buffer is malformed. --- 69,75 ---- /** * Constructs a SASL buffer given the buffer's encoded form, including its * header bytes. ! * * @param frame the encoded form, including the header bytes, of a SASL * buffer. * @throws SaslEncodingException if the buffer is malformed. *************** public class InputBuffer *** 101,107 **** *

          * Calls the method with the same name and three arguments as: * getInstance(raw, 0, raw.length). ! * * @param raw the encoded form, excluding the header bytes, of a SASL buffer. * @return a new instance of {@link InputBuffer}. */ --- 101,107 ---- *

          * Calls the method with the same name and three arguments as: * getInstance(raw, 0, raw.length). ! * * @param raw the encoded form, excluding the header bytes, of a SASL buffer. * @return a new instance of {@link InputBuffer}. */ *************** public class InputBuffer *** 113,119 **** /** * Returns an instance of a SASL buffer given the buffer's encoded contents, * excluding the buffer's header bytes. ! * * @param raw the encoded form, excluding the header bytes, of a SASL buffer. * @param offset offset where to start using raw bytes from. * @param len number of bytes to use. --- 113,119 ---- /** * Returns an instance of a SASL buffer given the buffer's encoded contents, * excluding the buffer's header bytes. ! * * @param raw the encoded form, excluding the header bytes, of a SASL buffer. * @param offset offset where to start using raw bytes from. * @param len number of bytes to use. *************** public class InputBuffer *** 128,134 **** /** * Converts two octets into the number that they represent. ! * * @param b the two octets. * @return the length. */ --- 128,134 ---- /** * Converts two octets into the number that they represent. ! * * @param b the two octets. * @return the length. */ *************** public class InputBuffer *** 148,154 **** /** * Decodes a SASL scalar quantity, count-octet long, from the * current buffer. ! * * @param count the number of octets of this scalar quantity. * @return a native representation of a SASL scalar (unsigned integer) * quantity. --- 148,154 ---- /** * Decodes a SASL scalar quantity, count-octet long, from the * current buffer. ! * * @param count the number of octets of this scalar quantity. * @return a native representation of a SASL scalar (unsigned integer) * quantity. *************** public class InputBuffer *** 178,184 **** /** * Decodes a SASL OS from the current buffer. ! * * @return a native representation of a SASL OS. * @throws SaslEncodingException if an encoding exception occurs during the * operation. --- 178,184 ---- /** * Decodes a SASL OS from the current buffer. ! * * @return a native representation of a SASL OS. * @throws SaslEncodingException if an encoding exception occurs during the * operation. *************** public class InputBuffer *** 201,207 **** /** * Decodes a SASL EOS from the current buffer. ! * * @return a native representation of a SASL EOS. * @throws SaslEncodingException if an encoding exception occurs during the * operation. --- 201,207 ---- /** * Decodes a SASL EOS from the current buffer. ! * * @return a native representation of a SASL EOS. * @throws SaslEncodingException if an encoding exception occurs during the * operation. *************** public class InputBuffer *** 225,231 **** /** * Decodes a SASL MPI from the current buffer. ! * * @return a native representation of a SASL MPI. * @throws SaslEncodingException if an encoding exception occurs during the * operation. --- 225,231 ---- /** * Decodes a SASL MPI from the current buffer. ! * * @return a native representation of a SASL MPI. * @throws SaslEncodingException if an encoding exception occurs during the * operation. *************** public class InputBuffer *** 248,254 **** /** * Decodes a SASL Text from the current buffer. ! * * @return a native representation of a SASL Text. * @throws SaslEncodingException if an encoding exception occurs during the * operation. --- 248,254 ---- /** * Decodes a SASL Text from the current buffer. ! * * @return a native representation of a SASL Text. * @throws SaslEncodingException if an encoding exception occurs during the * operation. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/IntegrityException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/IntegrityException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/IntegrityException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/IntegrityException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IntegrityException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* IntegrityException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class IntegrityException *** 61,67 **** /** * Constructs a new instance of IntegrityException with the * specified detail message. ! * * @param s the detail message. */ public IntegrityException(String s) --- 61,67 ---- /** * Constructs a new instance of IntegrityException with the * specified detail message. ! * * @param s the detail message. */ public IntegrityException(String s) *************** public class IntegrityException *** 72,78 **** /** * Constructs a new instance of IntegrityException with a * detailed message and a root exception. ! * * @param s possibly null additional detail about the exception. * @param x a possibly null root exception that caused this one. */ --- 72,78 ---- /** * Constructs a new instance of IntegrityException with a * detailed message and a root exception. ! * * @param s possibly null additional detail about the exception. * @param x a possibly null root exception that caused this one. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/NoSuchMechanismException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/NoSuchMechanismException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/NoSuchMechanismException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/NoSuchMechanismException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NoSuchMechanismException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* NoSuchMechanismException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class NoSuchMechanismException *** 51,57 **** * Constructs a NoSuchMechanismException with the specified * detail message. In the case of this exception, the detail message * designates the offending mechanism name. ! * * @param arg the detail message, which in this case is the offending * mechanism name. */ --- 51,57 ---- * Constructs a NoSuchMechanismException with the specified * detail message. In the case of this exception, the detail message * designates the offending mechanism name. ! * * @param arg the detail message, which in this case is the offending * mechanism name. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/NoSuchUserException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/NoSuchUserException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/NoSuchUserException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/NoSuchUserException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NoSuchUserException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* NoSuchUserException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class NoSuchUserException *** 57,63 **** * Constructs a NoSuchUserException with the specified detail * message. In the case of this exception, the detail message designates the * offending username. ! * * @param arg the detail message, which in this case is the username. */ public NoSuchUserException(String arg) --- 57,63 ---- * Constructs a NoSuchUserException with the specified detail * message. In the case of this exception, the detail message designates the * offending username. ! * * @param arg the detail message, which in this case is the username. */ public NoSuchUserException(String arg) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/OutputBuffer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/OutputBuffer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/OutputBuffer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/OutputBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OutputBuffer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* OutputBuffer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class OutputBuffer *** 75,81 **** /** * Encodes a SASL scalar quantity, count-octet long, to the * current buffer. ! * * @param count number of octets to encode b with. * @param b the scalar quantity. * @throws SaslEncodingException if an encoding size constraint is violated. --- 75,81 ---- /** * Encodes a SASL scalar quantity, count-octet long, to the * current buffer. ! * * @param count number of octets to encode b with. * @param b the scalar quantity. * @throws SaslEncodingException if an encoding size constraint is violated. *************** public class OutputBuffer *** 94,100 **** /** * Encodes a SASL OS to the current buffer. ! * * @param b the OS element. * @throws SaslEncodingException if an encoding size constraint is violated. * @throws IOException if any other I/O exception occurs during the operation. --- 94,100 ---- /** * Encodes a SASL OS to the current buffer. ! * * @param b the OS element. * @throws SaslEncodingException if an encoding size constraint is violated. * @throws IOException if any other I/O exception occurs during the operation. *************** public class OutputBuffer *** 110,116 **** /** * Encodes a SASL EOS to the current buffer. ! * * @param b the EOS element. * @throws SaslEncodingException if an encoding size constraint is violated. * @throws IOException if any other I/O exception occurs during the operation. --- 110,116 ---- /** * Encodes a SASL EOS to the current buffer. ! * * @param b the EOS element. * @throws SaslEncodingException if an encoding size constraint is violated. * @throws IOException if any other I/O exception occurs during the operation. *************** public class OutputBuffer *** 127,133 **** /** * Encodes a SASL MPI to the current buffer. ! * * @param val the MPI element. * @throws SaslEncodingException if an encoding size constraint is violated. * @throws IOException if any other I/O exception occurs during the operation. --- 127,133 ---- /** * Encodes a SASL MPI to the current buffer. ! * * @param val the MPI element. * @throws SaslEncodingException if an encoding size constraint is violated. * @throws IOException if any other I/O exception occurs during the operation. *************** public class OutputBuffer *** 145,151 **** /** * Encodes a SASL Text to the current buffer. ! * * @param str the Text element. * @throws SaslEncodingException if an encoding size constraint is violated. * @throws SaslEncodingException if the UTF-8 encoding is not supported on --- 145,151 ---- /** * Encodes a SASL Text to the current buffer. ! * * @param str the Text element. * @throws SaslEncodingException if an encoding size constraint is violated. * @throws SaslEncodingException if the UTF-8 encoding is not supported on *************** public class OutputBuffer *** 166,172 **** /** * Returns the encoded form of the current buffer including the 4-byte length * header. ! * * @throws SaslEncodingException if an encoding size constraint is violated. */ public byte[] encode() throws SaslEncodingException --- 166,172 ---- /** * Returns the encoded form of the current buffer including the 4-byte length * header. ! * * @throws SaslEncodingException if an encoding size constraint is violated. */ public byte[] encode() throws SaslEncodingException *************** public class OutputBuffer *** 185,191 **** /** * Returns the encoded form of the current buffer excluding the 4-byte length * header. ! * * @throws SaslEncodingException if an encoding size constraint is violated. */ public byte[] wrap() throws SaslEncodingException --- 185,191 ---- /** * Returns the encoded form of the current buffer excluding the 4-byte length * header. ! * * @throws SaslEncodingException if an encoding size constraint is violated. */ public byte[] wrap() throws SaslEncodingException diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/SaslEncodingException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/SaslEncodingException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/SaslEncodingException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/SaslEncodingException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SaslEncodingException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SaslEncodingException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SaslEncodingException *** 56,62 **** /** * Constructs a SaslEncodingException with the specified detail * message. ! * * @param s the detail message. */ public SaslEncodingException(String s) --- 56,62 ---- /** * Constructs a SaslEncodingException with the specified detail * message. ! * * @param s the detail message. */ public SaslEncodingException(String s) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/SaslInputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/SaslInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/SaslInputStream.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/SaslInputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SaslInputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SaslInputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SaslInputStream *** 115,121 **** * the protocol driver's request for a single octet from the stream might; * i.e. an invocation of this method, may result in an entire SASL buffer * being read and processed before that single octet can be returned. ! * * @return the next byte of data, or -1 if the end of the * stream is reached. * @throws IOException if an I/O error occurs. --- 115,121 ---- * the protocol driver's request for a single octet from the stream might; * i.e. an invocation of this method, may result in an entire SASL buffer * being read and processed before that single octet can be returned. ! * * @return the next byte of data, or -1 if the end of the * stream is reached. * @throws IOException if an I/O error occurs. *************** public class SaslInputStream *** 190,196 **** * driver's request for a single octet from the stream might result in an * entire SASL buffer being read and processed before that single octet can be * returned. ! * * @param b the buffer into which the data is read. * @param off the start offset in array b at which the data is * wricodeen. --- 190,196 ---- * driver's request for a single octet from the stream might result in an * entire SASL buffer being read and processed before that single octet can be * returned. ! * * @param b the buffer into which the data is read. * @param off the start offset in array b at which the data is * wricodeen. *************** public class SaslInputStream *** 317,323 **** /** * Reads a SASL buffer from the underlying source if at least 4 bytes are * available. ! * * @return the byte[] of decoded buffer contents, or null if the underlying * source was exhausted. * @throws IOException if an I/O exception occurs during the operation. --- 317,323 ---- /** * Reads a SASL buffer from the underlying source if at least 4 bytes are * available. ! * * @return the byte[] of decoded buffer contents, or null if the underlying * source was exhausted. * @throws IOException if an I/O exception occurs during the operation. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/SaslOutputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/SaslOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/SaslOutputStream.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/SaslOutputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SaslOutputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SaslOutputStream.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/SaslUtil.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/SaslUtil.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/SaslUtil.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/SaslUtil.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SaslUtil.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SaslUtil.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ServerFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ServerFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ServerFactory.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ServerFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ServerFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ServerFactory.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ServerMechanism.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ServerMechanism.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/ServerMechanism.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/ServerMechanism.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ServerMechanism.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ServerMechanism.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class ServerMechanism *** 236,242 **** /** * Initialises the mechanism with designated attributes. Permissible names and * values are mechanism specific. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalMechanismStateException if the instance is already --- 236,242 ---- /** * Initialises the mechanism with designated attributes. Permissible names and * values are mechanism specific. ! * * @param attributes a set of name-value pairs that describes the desired * future behaviour of this instance. * @throws IllegalMechanismStateException if the instance is already *************** public abstract class ServerMechanism *** 277,283 **** /** * Resets the mechanism instance for re-initialisation and use with other * characteristics. ! * * @throws SaslException if an exception occurs during the process. */ public void reset() throws SaslException --- 277,283 ---- /** * Resets the mechanism instance for re-initialisation and use with other * characteristics. ! * * @throws SaslException if an exception occurs during the process. */ public void reset() throws SaslException diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/UserAlreadyExistsException.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/UserAlreadyExistsException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/UserAlreadyExistsException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/UserAlreadyExistsException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UserAlreadyExistsException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* UserAlreadyExistsException.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class UserAlreadyExistsException *** 60,66 **** * Constructs a UserAlreadyExistsException with the specified * detail message. In the case of this exception, the detail message * designates the offending username. ! * * @param userName the detail message, which in this case is the username. */ public UserAlreadyExistsException(String userName) --- 60,66 ---- * Constructs a UserAlreadyExistsException with the specified * detail message. In the case of this exception, the detail message * designates the offending username. ! * * @param userName the detail message, which in this case is the username. */ public UserAlreadyExistsException(String userName) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousClient.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousClient.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousClient.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousClient.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnonymousClient.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AnonymousClient.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousServer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousServer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousServer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousServer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnonymousServer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AnonymousServer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnonymousUtil.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AnonymousUtil.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CramMD5AuthInfoProvider.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CramMD5AuthInfoProvider.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Client.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Client.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Client.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Client.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CramMD5Client.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CramMD5Client.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CramMD5Registry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CramMD5Registry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Server.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Server.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Server.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Server.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CramMD5Server.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CramMD5Server.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CramMD5Util.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CramMD5Util.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PasswordFile.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PasswordFile.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PasswordFile.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PasswordFile.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PlainAuthInfoProvider.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PlainAuthInfoProvider.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PlainClient.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PlainClient.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainRegistry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainRegistry.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainRegistry.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainRegistry.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PlainRegistry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PlainRegistry.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainServer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainServer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainServer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainServer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PlainServer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PlainServer.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/CALG.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/CALG.java *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/CALG.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/CALG.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CALG.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CALG.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.security.sasl.SaslException *** 86,92 **** * other words, the input is padded at the trailing end with one of the * following sequences: *

          !  * 
             *                     01 -- if l mod k = k-1
             *                    02 02 -- if l mod k = k-2
             *                              ...
          --- 86,92 ----
             * other words, the input is padded at the trailing end with one of the
             * following sequences:
             * 
          !  *
             *                     01 -- if l mod k = k-1
             *                    02 02 -- if l mod k = k-2
             *                              ...
          *************** public final class CALG
          *** 121,127 ****
            
              /**
               * Returns an instance of a SASL-SRP CALG implementation.
          !    * 
               * @param algorithm the name of the symmetric cipher algorithm.
               * @return an instance of this object.
               */
          --- 121,127 ----
            
              /**
               * Returns an instance of a SASL-SRP CALG implementation.
          !    *
               * @param algorithm the name of the symmetric cipher algorithm.
               * @return an instance of this object.
               */
          *************** public final class CALG
          *** 145,151 ****
            
              /**
               * Initialises a SASL-SRP CALG implementation.
          !    * 
               * @param kdf the key derivation function.
               * @param iv the initial vector value to use.
               * @param dir whether this CALG is used for encryption or decryption.
          --- 145,151 ----
            
              /**
               * Initialises a SASL-SRP CALG implementation.
          !    *
               * @param kdf the key derivation function.
               * @param iv the initial vector value to use.
               * @param dir whether this CALG is used for encryption or decryption.
          *************** public final class CALG
          *** 184,190 ****
              /**
               * Encrypts or decrypts, depending on the mode already set, a designated array
               * of bytes and returns the result.
          !    * 
               * @param data the data to encrypt/decrypt.
               * @return the decrypted/encrypted result.
               * @throws ConfidentialityException if an exception occurs duirng the process.
          --- 184,190 ----
              /**
               * Encrypts or decrypts, depending on the mode already set, a designated array
               * of bytes and returns the result.
          !    *
               * @param data the data to encrypt/decrypt.
               * @return the decrypted/encrypted result.
               * @throws ConfidentialityException if an exception occurs duirng the process.
          *************** public final class CALG
          *** 197,203 ****
              /**
               * Encrypts or decrypts, depending on the mode already set, a designated array
               * of bytes and returns the result.
          !    * 
               * @param data the data to encrypt/decrypt.
               * @param offset where to start in data.
               * @param length how many bytes to consider in data.
          --- 197,203 ----
              /**
               * Encrypts or decrypts, depending on the mode already set, a designated array
               * of bytes and returns the result.
          !    *
               * @param data the data to encrypt/decrypt.
               * @param offset where to start in data.
               * @param length how many bytes to consider in data.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/ClientStore.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/ClientStore.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/ClientStore.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/ClientStore.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* ClientStore.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* ClientStore.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class ClientStore
          *** 64,70 ****
            
              /**
               * Returns the classloader Singleton.
          !    * 
               * @return the classloader Singleton instance.
               */
              static synchronized final ClientStore instance()
          --- 64,70 ----
            
              /**
               * Returns the classloader Singleton.
          !    *
               * @return the classloader Singleton instance.
               */
              static synchronized final ClientStore instance()
          *************** public class ClientStore
          *** 77,83 ****
              /**
               * Returns a boolean flag indicating if the designated client's session is
               * still alive or not.
          !    * 
               * @param uid the identifier of the client whose session to check.
               * @return true if the designated client's session is still
               *         alive. false otherwise.
          --- 77,83 ----
              /**
               * Returns a boolean flag indicating if the designated client's session is
               * still alive or not.
          !    *
               * @param uid the identifier of the client whose session to check.
               * @return true if the designated client's session is still
               *         alive. false otherwise.
          *************** public class ClientStore
          *** 105,111 ****
              /**
               * Records a mapping between a client's unique identifier and its security
               * context.
          !    * 
               * @param uid the unique identifier of the SRP client for which the session is
               *          to be cached.
               * @param ttl the session's Time-To-Live indicator (in seconds).
          --- 105,111 ----
              /**
               * Records a mapping between a client's unique identifier and its security
               * context.
          !    *
               * @param uid the unique identifier of the SRP client for which the session is
               *          to be cached.
               * @param ttl the session's Time-To-Live indicator (in seconds).
          *************** public class ClientStore
          *** 123,129 ****
              /**
               * Removes the mapping between the designated SRP client unique identifier and
               * the its session security context (and other timing information).
          !    * 
               * @param uid the identifier of the client whose session is to invalidate.
               */
              void invalidateSession(final String uid)
          --- 123,129 ----
              /**
               * Removes the mapping between the designated SRP client unique identifier and
               * the its session security context (and other timing information).
          !    *
               * @param uid the identifier of the client whose session is to invalidate.
               */
              void invalidateSession(final String uid)
          *************** public class ClientStore
          *** 138,144 ****
              /**
               * Returns an SRP client's security context record mapped by that client's
               * unique identifier.
          !    * 
               * @param uid the identifier of the client whose session is to restore.
               * @return the SRP client's security context.
               */
          --- 138,144 ----
              /**
               * Returns an SRP client's security context record mapped by that client's
               * unique identifier.
          !    *
               * @param uid the identifier of the client whose session is to restore.
               * @return the SRP client's security context.
               */
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/IALG.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/IALG.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/IALG.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/IALG.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* IALG.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* IALG.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public final class IALG
          *** 66,72 ****
            
              /**
               * Returns an instance of a SASL-SRP IALG implementation.
          !    * 
               * @param algorithm the name of the HMAC algorithm.
               * @return an instance of this object.
               */
          --- 66,72 ----
            
              /**
               * Returns an instance of a SASL-SRP IALG implementation.
          !    *
               * @param algorithm the name of the HMAC algorithm.
               * @return an instance of this object.
               */
          *************** public final class IALG
          *** 118,124 ****
            
              /**
               * Returns the length (in bytes) of this SASL SRP Integrity Algorithm.
          !    * 
               * @return the length, in bytes, of this integrity protection algorithm.
               */
              public int length()
          --- 118,124 ----
            
              /**
               * Returns the length (in bytes) of this SASL SRP Integrity Algorithm.
          !    *
               * @return the length, in bytes, of this integrity protection algorithm.
               */
              public int length()
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/KDF.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/KDF.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/KDF.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/KDF.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* KDF.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* KDF.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class KDF
          *** 63,69 ****
              /**
               * Constructs an instance of the KDF initialised with the
               * designated shared secret bytes.
          !    * 
               * @param keyMaterial the SASL SRP shared secret (K) bytes.
               */
              private KDF(final byte[] keyMaterial, final int ndx)
          --- 63,69 ----
              /**
               * Constructs an instance of the KDF initialised with the
               * designated shared secret bytes.
          !    *
               * @param keyMaterial the SASL SRP shared secret (K) bytes.
               */
              private KDF(final byte[] keyMaterial, final int ndx)
          *************** public class KDF
          *** 84,90 ****
              /**
               * A Factory mehod that returns an instance of a KDF based on
               * supplied seed data.
          !    * 
               * @param K the SASL SRP shared secret for a KDF to be used for
               *          CALG and IALG setup. null otherwise.
               * @return an instance of a KDF.
          --- 84,90 ----
              /**
               * A Factory mehod that returns an instance of a KDF based on
               * supplied seed data.
          !    *
               * @param K the SASL SRP shared secret for a KDF to be used for
               *          CALG and IALG setup. null otherwise.
               * @return an instance of a KDF.
          *************** public class KDF
          *** 116,122 ****
              /**
               * Returns a designated number of bytes suitable for use in the SASL SRP
               * mechanism.
          !    * 
               * @param length the number of bytes needed.
               * @return a byte array containing the generated/selected bytes.
               */
          --- 116,122 ----
              /**
               * Returns a designated number of bytes suitable for use in the SASL SRP
               * mechanism.
          !    *
               * @param length the number of bytes needed.
               * @return a byte array containing the generated/selected bytes.
               */
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java	Tue Oct 21 17:55:01 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* PasswordFile.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* PasswordFile.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class PasswordFile
          *** 190,196 ****
              /**
               * Returns a string representing the decimal value of an integer identifying
               * the message digest algorithm to use for the SRP computations.
          !    * 
               * @param mdName the canonical name of a message digest algorithm.
               * @return a string representing the decimal value of an ID for that
               *         algorithm.
          --- 190,196 ----
              /**
               * Returns a string representing the decimal value of an integer identifying
               * the message digest algorithm to use for the SRP computations.
          !    *
               * @param mdName the canonical name of a message digest algorithm.
               * @return a string representing the decimal value of an ID for that
               *         algorithm.
          *************** public class PasswordFile
          *** 219,225 ****
              /**
               * Checks if the current configuration file contains the <N, g> pair for
               * the designated index.
          !    * 
               * @param index a string representing 1-digit identification of an <N, g>
               *          pair used.
               * @return true if the designated index is that
          --- 219,225 ----
              /**
               * Checks if the current configuration file contains the <N, g> pair for
               * the designated index.
          !    *
               * @param index a string representing 1-digit identification of an <N, g>
               *          pair used.
               * @return true if the designated index is that
          *************** public class PasswordFile
          *** 243,249 ****
              /**
               * Returns a pair of strings representing the pair of N and
               * g MPIs for the designated index.
          !    * 
               * @param index a string representing 1-digit identification of an <N, g>
               *          pair to look up.
               * @return a pair of strings, arranged in an array, where the first (at index
          --- 243,249 ----
              /**
               * Returns a pair of strings representing the pair of N and
               * g MPIs for the designated index.
          !    *
               * @param index a string representing 1-digit identification of an <N, g>
               *          pair to look up.
               * @return a pair of strings, arranged in an array, where the first (at index
          *************** public class PasswordFile
          *** 362,368 ****
               * Returns the triplet: verifier, salt and configuration file index, of a
               * designated user, and a designated message digest algorithm name, as an
               * array of strings.
          !    * 
               * @param user the username.
               * @param mdName the canonical name of the SRP's message digest algorithm.
               * @return a string array containing, in this order, the BASE-64 encodings of
          --- 362,368 ----
               * Returns the triplet: verifier, salt and configuration file index, of a
               * designated user, and a designated message digest algorithm name, as an
               * array of strings.
          !    *
               * @param user the username.
               * @param mdName the canonical name of the SRP's message digest algorithm.
               * @return a string array containing, in this order, the BASE-64 encodings of
          *************** public class PasswordFile
          *** 465,471 ****
               * IMPORTANT: This method computes the verifiers as described in
               * RFC-2945, which differs from the description given on the web page for
               * SRP-6.
          !    * 
               * @param user the user's name.
               * @param s the user's salt.
               * @param password the user's password
          --- 465,471 ----
               * IMPORTANT: This method computes the verifiers as described in
               * RFC-2945, which differs from the description given on the web page for
               * SRP-6.
          !    *
               * @param user the user's name.
               * @param s the user's salt.
               * @param password the user's password
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRP.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRP.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRP.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRP.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* SRP.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* SRP.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public final class SRP
          *** 70,76 ****
              /**
               * Returns an instance of this object that uses the designated message digest
               * algorithm as its digest function.
          !    * 
               * @return an instance of this object for the designated digest name.
               */
              public static synchronized SRP instance(String mdName)
          --- 70,76 ----
              /**
               * Returns an instance of this object that uses the designated message digest
               * algorithm as its digest function.
          !    *
               * @return an instance of this object for the designated digest name.
               */
              public static synchronized SRP instance(String mdName)
          *************** public final class SRP
          *** 108,114 ****
               * Returns a new instance of the SRP message digest algorithm --which is
               * SHA-160 by default, but could be anything else provided the proper
               * conditions as specified in the SRP specifications.
          !    * 
               * @return a new instance of the underlying SRP message digest algorithm.
               * @throws RuntimeException if the implementation of the message digest
               *           algorithm does not support cloning.
          --- 108,114 ----
               * Returns a new instance of the SRP message digest algorithm --which is
               * SHA-160 by default, but could be anything else provided the proper
               * conditions as specified in the SRP specifications.
          !    *
               * @return a new instance of the underlying SRP message digest algorithm.
               * @throws RuntimeException if the implementation of the message digest
               *           algorithm does not support cloning.
          *************** public final class SRP
          *** 121,127 ****
              /**
               * Convenience method to return the result of digesting the designated input
               * with a new instance of the SRP message digest algorithm.
          !    * 
               * @param src some bytes to digest.
               * @return the bytes constituting the result of digesting the designated input
               *         with a new instance of the SRP message digest algorithm.
          --- 121,127 ----
              /**
               * Convenience method to return the result of digesting the designated input
               * with a new instance of the SRP message digest algorithm.
          !    *
               * @param src some bytes to digest.
               * @return the bytes constituting the result of digesting the designated input
               *         with a new instance of the SRP message digest algorithm.
          *************** public final class SRP
          *** 136,142 ****
              /**
               * Convenience method to return the result of digesting the designated input
               * with a new instance of the SRP message digest algorithm.
          !    * 
               * @param src a String whose bytes (using US-ASCII encoding) are to be
               *          digested.
               * @return the bytes constituting the result of digesting the designated input
          --- 136,142 ----
              /**
               * Convenience method to return the result of digesting the designated input
               * with a new instance of the SRP message digest algorithm.
          !    *
               * @param src a String whose bytes (using US-ASCII encoding) are to be
               *          digested.
               * @return the bytes constituting the result of digesting the designated input
          *************** public final class SRP
          *** 151,157 ****
              /**
               * Convenience method to XOR N bytes from two arrays; N being the output size
               * of the SRP message digest algorithm.
          !    * 
               * @param a the first byte array.
               * @param b the second one.
               * @return N bytes which are the result of the XOR operations on the first N
          --- 151,157 ----
              /**
               * Convenience method to XOR N bytes from two arrays; N being the output size
               * of the SRP message digest algorithm.
          !    *
               * @param a the first byte array.
               * @param b the second one.
               * @return N bytes which are the result of the XOR operations on the first N
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* SRPAuthInfoProvider.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* SRPAuthInfoProvider.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java	Tue Oct 21 17:55:01 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* SRPClient.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* SRPClient.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPRegistry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPRegistry.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPRegistry.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPRegistry.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* SRPRegistry.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* SRPRegistry.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java	Tue Oct 21 17:55:01 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* SRPServer.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* SRPServer.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SecurityContext.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SecurityContext.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/SecurityContext.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/SecurityContext.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* SecurityContext.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* SecurityContext.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java	Tue Oct 21 17:55:01 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* ServerStore.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* ServerStore.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** public class ServerStore
          *** 68,74 ****
            
              /**
               * Returns the classloader Singleton.
          !    * 
               * @return the classloader Singleton instance.
               */
              static synchronized final ServerStore instance()
          --- 68,74 ----
            
              /**
               * Returns the classloader Singleton.
          !    *
               * @return the classloader Singleton instance.
               */
              static synchronized final ServerStore instance()
          *************** public class ServerStore
          *** 80,86 ****
            
              /**
               * Returns a legible new session identifier.
          !    * 
               * @return a new session identifier.
               */
              static synchronized final byte[] getNewSessionID()
          --- 80,86 ----
            
              /**
               * Returns a legible new session identifier.
          !    *
               * @return a new session identifier.
               */
              static synchronized final byte[] getNewSessionID()
          *************** public class ServerStore
          *** 94,100 ****
              /**
               * Returns a boolean flag indicating if the designated session is still alive
               * or not.
          !    * 
               * @param sid the identifier of the session to check.
               * @return true if the designated session is still alive.
               *         false otherwise.
          --- 94,100 ----
              /**
               * Returns a boolean flag indicating if the designated session is still alive
               * or not.
          !    *
               * @param sid the identifier of the session to check.
               * @return true if the designated session is still alive.
               *         false otherwise.
          *************** public class ServerStore
          *** 125,131 ****
              /**
               * Records a mapping between a session identifier and the Security Context of
               * the designated SRP server mechanism instance.
          !    * 
               * @param ttl the session's Time-To-Live indicator (in seconds).
               * @param ctx the server's security context.
               */
          --- 125,131 ----
              /**
               * Records a mapping between a session identifier and the Security Context of
               * the designated SRP server mechanism instance.
          !    *
               * @param ttl the session's Time-To-Live indicator (in seconds).
               * @param ctx the server's security context.
               */
          *************** public class ServerStore
          *** 144,150 ****
               * designated server's SASL Security Context. In the process, computes and
               * return the underlying mechanism server's evidence that shall be returned to
               * the client in a session re-use exchange.
          !    * 
               * @param sid the identifier of the session to restore.
               * @return an SRP server's security context.
               */
          --- 144,150 ----
               * designated server's SASL Security Context. In the process, computes and
               * return the underlying mechanism server's evidence that shall be returned to
               * the client in a session re-use exchange.
          !    *
               * @param sid the identifier of the session to restore.
               * @return an SRP server's security context.
               */
          *************** public class ServerStore
          *** 162,168 ****
            
              /**
               * Removes all information related to the designated session ID.
          !    * 
               * @param sid the identifier of the seesion to invalidate.
               */
              void invalidateSession(final byte[] sid)
          --- 162,168 ----
            
              /**
               * Removes all information related to the designated session ID.
          !    *
               * @param sid the identifier of the seesion to invalidate.
               */
              void invalidateSession(final byte[] sid)
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/StoreEntry.java gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/StoreEntry.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/crypto/sasl/srp/StoreEntry.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/crypto/sasl/srp/StoreEntry.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* StoreEntry.java -- 
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* StoreEntry.java --
               Copyright (C) 2003, 2006 Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** class StoreEntry
          *** 64,70 ****
            
              /**
               * Returns true if the Time-To_live period has not elapsed.
          !    * 
               * @return true if the Time-To-Live period (in seconds) has not
               *         elapsed yet; false otherwise.
               */
          --- 64,70 ----
            
              /**
               * Returns true if the Time-To_live period has not elapsed.
          !    *
               * @return true if the Time-To-Live period (in seconds) has not
               *         elapsed yet; false otherwise.
               */
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/IIOInputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/IIOInputStream.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/IIOInputStream.java	Mon Aug 14 23:12:35 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/IIOInputStream.java	Tue Jan 11 19:46:05 2011
          *************** public class IIOInputStream extends Inpu
          *** 77,83 ****
            
              public int read() throws IOException
              {
          !     return is.read();    
              }
            
              public int read(byte[] b) throws IOException
          --- 77,83 ----
            
              public int read() throws IOException
              {
          !     return is.read();
              }
            
              public int read(byte[] b) throws IOException
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/BMPDecoder.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/BMPDecoder.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/BMPDecoder.java	Thu May 18 17:29:21 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/BMPDecoder.java	Tue Jan 11 19:46:05 2011
          *************** public abstract class BMPDecoder {
          *** 49,59 ****
                protected BMPInfoHeader infoHeader;
                protected BMPFileHeader fileHeader;
                protected long offset;
          !     
                public BMPDecoder(BMPFileHeader fh, BMPInfoHeader ih){
          ! 	fileHeader = fh;
          ! 	infoHeader = ih;
          ! 	offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
                }
            
                /**
          --- 49,59 ----
                protected BMPInfoHeader infoHeader;
                protected BMPFileHeader fileHeader;
                protected long offset;
          ! 
                public BMPDecoder(BMPFileHeader fh, BMPInfoHeader ih){
          !         fileHeader = fh;
          !         infoHeader = ih;
          !         offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
                }
            
                /**
          *************** public abstract class BMPDecoder {
          *** 61,168 ****
                 * decoder.
                 */
                public static BMPDecoder getDecoder(BMPFileHeader fh, BMPInfoHeader ih){
          ! 	switch(ih.getCompression()){
          ! 	case BMPInfoHeader.BI_RGB: // uncompressed RGB
          ! 	    switch(ih.getBitCount()){
          ! 	    case 32:
          ! 		return new DecodeBF32(fh, ih, true);
            
          ! 	    case 24:
          ! 		return new DecodeRGB24(fh, ih);
            
          ! 	    case 16:
          ! 		return new DecodeBF16(fh, ih, true);
            
          ! 	    case 8:
          ! 		return new DecodeRGB8(fh, ih);
            
          ! 	    case 4:
          ! 		return new DecodeRGB4(fh, ih);
            
          ! 	    case 1:
          ! 		return new DecodeRGB1(fh, ih);
            
          ! 	    default:
          ! 		return null;
          ! 	    }
            
          ! 	case BMPInfoHeader.BI_RLE8:
          ! 	    return new DecodeRLE8(fh, ih);
            
          ! 	case BMPInfoHeader.BI_RLE4:
          ! 	    return new DecodeRLE4(fh, ih);
            
          ! 	case BMPInfoHeader.BI_BITFIELDS:
          ! 	    switch(ih.getBitCount()){
          ! 	    case 16:
          ! 		return new DecodeBF16(fh, ih, false);
            
          ! 	    case 32:
          ! 		return new DecodeBF32(fh, ih, false);
            
          ! 	    default:
          ! 		return null;
          ! 	    }
          ! 		
          ! 	default:
          ! 	    return null;
          ! 	}
                }
            
                /**
                 * The image decoder.
                 */
          !     public abstract BufferedImage decode(ImageInputStream in) 
          ! 	throws IOException, BMPException;
            
                /**
                 * Reads r,g,b bit masks from an inputstream
                 */
                protected int[] readBitMasks(ImageInputStream in) throws IOException {
          ! 	int[] bitmasks = new int[3];
          ! 	byte[] temp = new byte[12];
          ! 	if(in.read(temp) != 12)
          ! 	    throw new IOException("Couldn't read bit masks.");
          ! 	offset += 12;
            
          ! 	ByteBuffer buf = ByteBuffer.wrap(temp);
          ! 	buf.order(ByteOrder.LITTLE_ENDIAN);
          ! 	bitmasks[0] = buf.getInt();
          ! 	bitmasks[1] = buf.getInt();
          ! 	bitmasks[2] = buf.getInt();
          ! 	return bitmasks;
                }
            
                /**
          !      * Reads an N-color palette from an inputstream in RGBQUAD format and 
                 * returns an equivalent ColorModel object
                 */
                protected IndexColorModel readPalette(ImageInputStream in) throws IOException {
          ! 	int N = infoHeader.getNumberOfPaletteEntries();
          ! 	byte[] r = new byte[N];
          ! 	byte[] g = new byte[N];
          ! 	byte[] b = new byte[N];
          ! 	for(int i=0;i=0;y--){
          ! 	    byte[] scanline = new byte[scansize];
          ! 	    if(in.read(scanline) != scansize)
          ! 		throw new IOException("Couldn't read image data.");
            
          ! 	    for(int x=0;x=0;y--){
          !             byte[] scanline = new byte[scansize];
          !             if(in.read(scanline) != scansize)
          !                 throw new IOException("Couldn't read image data.");
            
          !             for(int x=0;x=0;y--){
          - 	    byte[] scanline = new byte[scansize];
          - 	    if(in.read(scanline) != scansize)
          - 		throw new IOException("Couldn't read image data.");
            
          ! 	    for(int x=0;x=0;y--){
          !             byte[] scanline = new byte[scansize];
          !             if(in.read(scanline) != scansize)
          !                 throw new IOException("Couldn't read image data.");
            
          !             for(int x=0;x>3;
            
          ! 	int scansize = w>>3;
          ! 	byte[] data = new byte[size];
            
          ! 	for(int y=h-1;y>=0;y--){
          ! 	    // Scanlines are padded to dword boundries
          ! 	    int readsize = scansize;
          ! 	    if((readsize & 3) != 0) readsize += (4 - (scansize & 3));
            
          ! 	    byte[] scanline = new byte[readsize];
          ! 	    if(in.read(scanline) != readsize)
          ! 		throw new IOException("Couldn't read image data.");
            
          ! 	    for(int x=0;x>3;
            
          !         int scansize = w>>3;
          !         byte[] data = new byte[size];
            
          !         for(int y=h-1;y>=0;y--){
          !             // Scanlines are padded to dword boundries
          !             int readsize = scansize;
          !             if((readsize & 3) != 0) readsize += (4 - (scansize & 3));
            
          !             byte[] scanline = new byte[readsize];
          !             if(in.read(scanline) != readsize)
          !                 throw new IOException("Couldn't read image data.");
            
          !             for(int x=0;x=0;y--){
          ! 	    byte[] scanline = new byte[scansize];
          ! 	    if(in.read(scanline) != scansize)
          ! 		throw new IOException("Couldn't read image data.");
            
          ! 	    for(int x=0;x=0;y--){
          !             byte[] scanline = new byte[scansize];
          !             if(in.read(scanline) != scansize)
          !                 throw new IOException("Couldn't read image data.");
          ! 
          !             for(int x=0;x> 1;
            
          ! 	// Scanline padded to dword offsets
          ! 	int wbytes = (w + (w & 1)) >> 1;
          ! 	int scansize = ((wbytes & 3) != 0)? (wbytes + 4 - (wbytes&3)) : wbytes;
            
          ! 	byte[] data = new byte[wbytes*h];
            
          ! 	for(int y=h-1;y>=0;y--){
          ! 	    byte[] scanline = new byte[scansize];
          ! 	    if(in.read(scanline) != scansize)
          ! 		throw new IOException("Couldn't read image data.");
            
          ! 	    for(int x=0;x> 1;
            
          !         // Scanline padded to dword offsets
          !         int wbytes = (w + (w & 1)) >> 1;
          !         int scansize = ((wbytes & 3) != 0)? (wbytes + 4 - (wbytes&3)) : wbytes;
            
          !         byte[] data = new byte[wbytes*h];
            
          !         for(int y=h-1;y>=0;y--){
          !             byte[] scanline = new byte[scansize];
          !             if(in.read(scanline) != scansize)
          !                 throw new IOException("Couldn't read image data.");
            
          !             for(int x=0;x=0;y--){
          ! 	    byte[] scanline = new byte[scansize];
          ! 	    if(in.read(scanline) != scansize)
          ! 		throw new IOException("Couldn't read image data.");
            
          ! 	    for(int x=0;x=0;y--){
          !             byte[] scanline = new byte[scansize];
          !             if(in.read(scanline) != scansize)
          !                 throw new IOException("Couldn't read image data.");
            
          !             for(int x=0;x>1];
          - 	int offIn = 0;
          - 	int x=0,y=0;
          - 	
          - 	// width in bytes
          - 	w += (w&1);
          - 	w = w >> 1;
            
          ! 	try {
          ! 	    while(((x>>1) + y*w) < w*h){
          ! 		if(in.read(cmd) != 2)
          ! 		    throw new IOException("Error reading compressed data.");
            
          ! 		if(cmd[0] == ESCAPE){
          ! 		    switch(cmd[1]){
          ! 		    case EOB: // end of bitmap
          ! 			return data;
          ! 		    case EOL: // end of line
          ! 			x = 0;
          ! 			y++;
          ! 			break;
          ! 		    case DELTA: // delta
          ! 			if(in.read(cmd) != 2)
          ! 			    throw new IOException("Error reading compressed data.");
          ! 			int dx = cmd[0] & (0xFF);
          ! 			int dy = cmd[1] & (0xFF);
          ! 			x += dx;
          ! 			y += dy;
          ! 			break;
          ! 			
          ! 		    default:
          ! 			// decode a literal run
          ! 			int length = cmd[1] & (0xFF);
            
          ! 			// size of run, which is word aligned.
          ! 			int bytesize = length;
          ! 			bytesize += (bytesize & 1);
          ! 			bytesize >>= 1;
          ! 			bytesize += (bytesize & 1);
            
          ! 			byte[] run = new byte[bytesize];
          ! 			if(in.read(run) != bytesize)
          ! 			    throw new IOException("Error reading compressed data.");
            
          ! 			if((x&1) == 0){
          ! 			    length += (length&1);
          ! 			    length >>= 1;
          ! 			    System.arraycopy(run, 0, data, ((x>>1) + w*(h-y-1)), 
          ! 					     length);
          ! 			} else {
          ! 			    for(int i=0;i>1) + w*(h-y-1)] 
          ! 					|= ((run[i>>1]&0xF0) >> 4);
          ! 				else  // copy low to high
          ! 				    data[((x+i)>>1) + w*(h-y-1)] 
          ! 					|= ((run[i>>1]&0x0F) << 4);
          ! 			    }
          ! 			}
          ! 			x += cmd[1] & (0xFF);
          ! 			break;
          ! 		    }
          ! 		} else {
          ! 		    // decode a byte run
          ! 		    int length = cmd[0] & (0xFF);
          ! 		    if((x&1) == 0){
          ! 			length += (length&1);
          ! 			length >>= 1;
          ! 			for(int i=0;i> 1)] = cmd[1];
          ! 		    } else {
          ! 			for(int i=0;i>1) + w*(h-y-1)] 
          ! 				    |= ((cmd[1]&0xF0) >> 4);
          ! 			    else  // copy low to high
          ! 				data[((x+i)>>1) + w*(h-y-1)] 
          ! 				    |= ((cmd[1]&0x0F) << 4);
          ! 			}
          ! 		    }
          ! 		    x += cmd[0] & (0xFF);
          ! 		}
          ! 	    }
          ! 	    return data;
          !  	} catch(ArrayIndexOutOfBoundsException e){
          !  	    throw new BMPException("Invalid RLE data.");
          !  	}
                }
            }
          - 
          --- 62,175 ----
                private static final byte EOL = (byte)0; // end of line
                private static final byte EOB = (byte)1; // end of bitmap
                private static final byte DELTA = (byte)2; // delta
          ! 
                public BufferedImage decode(ImageInputStream in) throws IOException, BMPException {
          !         IndexColorModel palette = readPalette(in);
          !         skipToImage(in);
            
          !         Dimension d = infoHeader.getSize();
          !         int h = (int)d.getHeight();
          !         int w = (int)d.getWidth();
            
          !         byte[] data = uncompress(w, h, in);
          !         SampleModel sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE,
          !                                                          w, h, 4);
            
          !         DataBuffer db = new DataBufferByte(data, w*h, 0);
          !         WritableRaster raster = Raster.createWritableRaster(sm, db, null);
          ! 
          !         return new BufferedImage(palette, raster, false, null);
                }
            
          !     private byte[] uncompress(int w, int h, ImageInputStream in)
          !         throws BMPException, IOException {
          !         byte[] cmd = new byte[2];
          !         byte[] data = new byte[w*h>>1];
          !         int offIn = 0;
          !         int x=0,y=0;
            
          !         // width in bytes
          !         w += (w&1);
          !         w = w >> 1;
            
          !         try {
          !             while(((x>>1) + y*w) < w*h){
          !                 if(in.read(cmd) != 2)
          !                     throw new IOException("Error reading compressed data.");
            
          !                 if(cmd[0] == ESCAPE){
          !                     switch(cmd[1]){
          !                     case EOB: // end of bitmap
          !                         return data;
          !                     case EOL: // end of line
          !                         x = 0;
          !                         y++;
          !                         break;
          !                     case DELTA: // delta
          !                         if(in.read(cmd) != 2)
          !                             throw new IOException("Error reading compressed data.");
          !                         int dx = cmd[0] & (0xFF);
          !                         int dy = cmd[1] & (0xFF);
          !                         x += dx;
          !                         y += dy;
          !                         break;
            
          !                     default:
          !                         // decode a literal run
          !                         int length = cmd[1] & (0xFF);
          ! 
          !                         // size of run, which is word aligned.
          !                         int bytesize = length;
          !                         bytesize += (bytesize & 1);
          !                         bytesize >>= 1;
          !                         bytesize += (bytesize & 1);
          ! 
          !                         byte[] run = new byte[bytesize];
          !                         if(in.read(run) != bytesize)
          !                             throw new IOException("Error reading compressed data.");
          ! 
          !                         if((x&1) == 0){
          !                             length += (length&1);
          !                             length >>= 1;
          !                             System.arraycopy(run, 0, data, ((x>>1) + w*(h-y-1)),
          !                                              length);
          !                         } else {
          !                             for(int i=0;i>1) + w*(h-y-1)]
          !                                         |= ((run[i>>1]&0xF0) >> 4);
          !                                 else  // copy low to high
          !                                     data[((x+i)>>1) + w*(h-y-1)]
          !                                         |= ((run[i>>1]&0x0F) << 4);
          !                             }
          !                         }
          !                         x += cmd[1] & (0xFF);
          !                         break;
          !                     }
          !                 } else {
          !                     // decode a byte run
          !                     int length = cmd[0] & (0xFF);
          !                     if((x&1) == 0){
          !                         length += (length&1);
          !                         length >>= 1;
          !                         for(int i=0;i> 1)] = cmd[1];
          !                     } else {
          !                         for(int i=0;i>1) + w*(h-y-1)]
          !                                     |= ((cmd[1]&0xF0) >> 4);
          !                             else  // copy low to high
          !                                 data[((x+i)>>1) + w*(h-y-1)]
          !                                     |= ((cmd[1]&0x0F) << 4);
          !                         }
          !                     }
          !                     x += cmd[0] & (0xFF);
          !                 }
          !             }
          !             return data;
          !         } catch(ArrayIndexOutOfBoundsException e){
          !             throw new BMPException("Invalid RLE data.");
          !         }
                }
            }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/DecodeRLE8.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/DecodeRLE8.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/DecodeRLE8.java	Tue Nov 15 16:23:41 2005
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/DecodeRLE8.java	Tue Jan 11 19:46:05 2011
          *************** import java.awt.Dimension;
          *** 52,58 ****
            public class DecodeRLE8 extends BMPDecoder {
            
                public DecodeRLE8(BMPFileHeader fh, BMPInfoHeader ih){
          ! 	super(fh, ih);
                }
            
                /**
          --- 52,58 ----
            public class DecodeRLE8 extends BMPDecoder {
            
                public DecodeRLE8(BMPFileHeader fh, BMPInfoHeader ih){
          !         super(fh, ih);
                }
            
                /**
          *************** public class DecodeRLE8 extends BMPDecod
          *** 62,143 ****
                private static final byte EOL = (byte)0; // end of line
                private static final byte EOB = (byte)1; // end of bitmap
                private static final byte DELTA = (byte)2; // delta
          !     
                public BufferedImage decode(ImageInputStream in) throws IOException, BMPException {
          ! 	IndexColorModel palette = readPalette(in);
          ! 	skipToImage(in);
            
          ! 	Dimension d = infoHeader.getSize();
          ! 	int h = (int)d.getHeight();
          ! 	int w = (int)d.getWidth();
            
          ! 	byte[] data = uncompress(w, h, in);
          ! 	SampleModel sm = new SinglePixelPackedSampleModel(DataBuffer.TYPE_BYTE, 
          ! 							  w, h, 
          ! 							  new int[] {0xFF});
          ! 	DataBuffer db = new DataBufferByte(data, w*h, 0);
          ! 	WritableRaster raster = Raster.createWritableRaster(sm, db, null);
          !     
          ! 	return new BufferedImage(palette, raster, false, null);
                }
          -     
          -     private byte[] uncompress(int w, int h, ImageInputStream in) 
          - 	throws BMPException, IOException {
          - 	byte[] cmd = new byte[2];
          - 	byte[] data = new byte[w*h];
          - 	int offIn = 0;
          - 	int x=0,y=0;
            
          ! 	try {
          ! 	    while((x + y*w) < w*h){
          ! 		if(in.read(cmd) != 2)
          ! 		    throw new IOException("Error reading compressed data.");
            
          ! 		if(cmd[0] == ESCAPE){
          ! 		    switch(cmd[1]){
          ! 		    case EOB: // end of bitmap
          ! 			return data;
          ! 		    case EOL: // end of line
          ! 			x = 0;
          ! 			y++;
          ! 			break;
          ! 		    case DELTA: // delta
          ! 			if(in.read(cmd) != 2)
          ! 			    throw new IOException("Error reading compressed data.");
          ! 			int dx = cmd[0] & (0xFF);
          ! 			int dy = cmd[1] & (0xFF);
          ! 			x += dx;
          ! 			y += dy;
          ! 			break;
          ! 			
          ! 		    default:
          ! 			// decode a literal run
          ! 			int length = cmd[1] & (0xFF);
          ! 			int copylength = length;
            
          ! 			// absolute mode must be word-aligned
          ! 			length += (length & 1);
            
          ! 			byte[] run = new byte[length];
          ! 			if(in.read(run) != length)
          ! 			    throw new IOException("Error reading compressed data.");
            
          ! 			System.arraycopy(run, 0, data, (x+w*(h-y-1)), 
          ! 					 copylength);
          ! 			x += copylength;
          ! 			break;
          ! 		    }
          ! 		} else {
          ! 		    // decode a byte run
          ! 		    int length = cmd[0] & (0xFF);
          ! 		    for(int i=0;i> 8 & 0xFF);
          !             
                        o.write(rgb);
                        if (rowCount == infoHeader.biWidth)
                          {
          --- 101,114 ----
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          ! 
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
            
                        rgb[0] = (byte) (value & 0xFF);
                        rgb[1] = (byte) (value >> 8 & 0xFF);
          ! 
                        o.write(rgb);
                        if (rowCount == infoHeader.biWidth)
                          {
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB24.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB24.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB24.java	Thu May 18 17:29:21 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB24.java	Tue Jan 11 19:46:05 2011
          *************** public class EncodeRGB24
          *** 56,62 ****
            
              /**
               * Constructs an instance of this class.
          !    * 
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          --- 56,62 ----
            
              /**
               * Constructs an instance of this class.
          !    *
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          *************** public class EncodeRGB24
          *** 67,76 ****
                infoHeader = ih;
                offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
              }
          !   
              /**
               * The image encoder.
          !    * 
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          --- 67,76 ----
                infoHeader = ih;
                offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
              }
          ! 
              /**
               * The image encoder.
          !    *
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          *************** public class EncodeRGB24
          *** 101,107 ****
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          !         
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
          --- 101,107 ----
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          ! 
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* EncodeRGB32.java -- 
               Copyright (C) 2006 Free Software Foundation, Inc.
            
            This file is part of GNU Classpath.
          --- 1,4 ----
          ! /* EncodeRGB32.java --
               Copyright (C) 2006 Free Software Foundation, Inc.
            
            This file is part of GNU Classpath.
          *************** public class EncodeRGB32
          *** 56,62 ****
            
              /**
               * Constructs an instance of this class.
          !    * 
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          --- 56,62 ----
            
              /**
               * Constructs an instance of this class.
          !    *
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          *************** public class EncodeRGB32
          *** 67,76 ****
                infoHeader = ih;
                offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
              }
          !   
              /**
               * The image encoder.
          !    * 
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or null
               * @param image - an IIOImage containing image data.
          --- 67,76 ----
                infoHeader = ih;
                offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
              }
          ! 
              /**
               * The image encoder.
          !    *
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or null
               * @param image - an IIOImage containing image data.
          *************** public class EncodeRGB32
          *** 100,106 ****
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          !         
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
          --- 100,106 ----
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          ! 
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB4.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB4.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB4.java	Thu May 18 17:29:21 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB4.java	Tue Jan 11 19:46:05 2011
          *************** public class EncodeRGB4
          *** 56,62 ****
            
              /**
               * Constructs an instance of this class.
          !    * 
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          --- 56,62 ----
            
              /**
               * Constructs an instance of this class.
          !    *
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          *************** public class EncodeRGB4
          *** 70,76 ****
            
              /**
               * The image encoder.
          !    * 
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          --- 70,76 ----
            
              /**
               * The image encoder.
          !    *
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          *************** public class EncodeRGB4
          *** 101,113 ****
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          !         
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
            
                        rgb[0] = (byte) (value & 0xFF);
          !             
                        o.write(rgb);
                        if (rowCount == infoHeader.biWidth)
                          {
          --- 101,113 ----
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          ! 
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
            
                        rgb[0] = (byte) (value & 0xFF);
          ! 
                        o.write(rgb);
                        if (rowCount == infoHeader.biWidth)
                          {
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB8.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB8.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB8.java	Thu May 18 17:29:21 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB8.java	Tue Jan 11 19:46:05 2011
          *************** public class EncodeRGB8
          *** 56,62 ****
            
              /**
               * Constructs an instance of this class.
          !    * 
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          --- 56,62 ----
            
              /**
               * Constructs an instance of this class.
          !    *
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          *************** public class EncodeRGB8
          *** 70,76 ****
            
              /**
               * The image encoder.
          !    * 
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          --- 70,76 ----
            
              /**
               * The image encoder.
          !    *
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          *************** public class EncodeRGB8
          *** 101,107 ****
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          !         
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
          --- 101,107 ----
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          ! 
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRLE4.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRLE4.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRLE4.java	Thu May 18 17:29:21 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRLE4.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* EncodeRLE4.java -- 
               Copyright (C) 2006 Free Software Foundation, Inc.
            
            This file is part of GNU Classpath.
          --- 1,4 ----
          ! /* EncodeRLE4.java --
               Copyright (C) 2006 Free Software Foundation, Inc.
            
            This file is part of GNU Classpath.
          *************** public class EncodeRLE4
          *** 63,72 ****
              private static final byte EOL = (byte)0; // end of line
              private static final byte EOB = (byte)1; // end of bitmap
              private static final byte DELTA = (byte)2; // delta
          !   
              /**
               * Constructs an instance of this class.
          !    * 
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          --- 63,72 ----
              private static final byte EOL = (byte)0; // end of line
              private static final byte EOB = (byte)1; // end of bitmap
              private static final byte DELTA = (byte)2; // delta
          ! 
              /**
               * Constructs an instance of this class.
          !    *
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          *************** public class EncodeRLE4
          *** 77,86 ****
                infoHeader = ih;
                offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
              }
          !   
              /**
               * The image encoder.
          !    * 
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          --- 77,86 ----
                infoHeader = ih;
                offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
              }
          ! 
              /**
               * The image encoder.
          !    *
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          *************** public class EncodeRLE4
          *** 111,122 ****
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          !         
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
                        buf.put((byte) (value & 0xFF));
          !             
                        if (rowCount == infoHeader.biWidth)
                          {
                            rowCount = 1;
          --- 111,122 ----
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          ! 
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
                        buf.put((byte) (value & 0xFF));
          ! 
                        if (rowCount == infoHeader.biWidth)
                          {
                            rowCount = 1;
          *************** public class EncodeRLE4
          *** 127,133 ****
                          rowCount++;
                        rowIndex++;
                      }
          !         
                    buf.flip();
                    o.write(uncompress(infoHeader.biWidth, infoHeader.biHeight, buf));
                  }
          --- 127,133 ----
                          rowCount++;
                        rowIndex++;
                      }
          ! 
                    buf.flip();
                    o.write(uncompress(infoHeader.biWidth, infoHeader.biHeight, buf));
                  }
          *************** public class EncodeRLE4
          *** 136,145 ****
                    wb.printStackTrace();
                  }
              }
          !   
              /**
               * Uncompresses the image stored in the buffer.
          !    * 
               * @param w - the width of the image
               * @param h - the height of the image
               * @param buf - the ByteBuffer containing the pixel values.
          --- 136,145 ----
                    wb.printStackTrace();
                  }
              }
          ! 
              /**
               * Uncompresses the image stored in the buffer.
          !    *
               * @param w - the width of the image
               * @param h - the height of the image
               * @param buf - the ByteBuffer containing the pixel values.
          *************** public class EncodeRLE4
          *** 190,196 ****
                                {
                                  throw new IOException("Error reading compressed data.");
                                }
          !                     
                                int dx = cmd[0] & (0xFF);
                                int dy = cmd[1] & (0xFF);
                                x += dx;
          --- 190,196 ----
                                {
                                  throw new IOException("Error reading compressed data.");
                                }
          ! 
                                int dx = cmd[0] & (0xFF);
                                int dy = cmd[1] & (0xFF);
                                x += dx;
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRLE8.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRLE8.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/bmp/EncodeRLE8.java	Thu May 18 17:29:21 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/bmp/EncodeRLE8.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* EncodeRGB32.java -- 
               Copyright (C) 2006 Free Software Foundation, Inc.
            
            This file is part of GNU Classpath.
          --- 1,4 ----
          ! /* EncodeRGB32.java --
               Copyright (C) 2006 Free Software Foundation, Inc.
            
            This file is part of GNU Classpath.
          *************** public class EncodeRLE8
          *** 55,61 ****
              protected BMPInfoHeader infoHeader;
              protected BMPFileHeader fileHeader;
              protected long offset;
          !   
              /**
               * RLE control codes
               */
          --- 55,61 ----
              protected BMPInfoHeader infoHeader;
              protected BMPFileHeader fileHeader;
              protected long offset;
          ! 
              /**
               * RLE control codes
               */
          *************** public class EncodeRLE8
          *** 66,72 ****
            
              /**
               * Constructs an instance of this class.
          !    * 
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          --- 66,72 ----
            
              /**
               * Constructs an instance of this class.
          !    *
               * @param fh - the file header to use.
               * @param ih - the info header to use.
               */
          *************** public class EncodeRLE8
          *** 77,86 ****
                infoHeader = ih;
                offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
              }
          !   
              /**
               * The image encoder.
          !    * 
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          --- 77,86 ----
                infoHeader = ih;
                offset = BMPFileHeader.SIZE + BMPInfoHeader.SIZE;
              }
          ! 
              /**
               * The image encoder.
          !    *
               * @param o - the image output stream
               * @param streamMetadata - metadata associated with this stream, or
               * null
          *************** public class EncodeRLE8
          *** 111,122 ****
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          !         
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
                        buf.put((byte) (value & 0xFF));
          !             
                        if (rowCount == infoHeader.biWidth)
                          {
                            rowCount = 1;
          --- 111,122 ----
                                                       infoHeader.biHeight, bitmap, 0,
                                                       infoHeader.biWidth);
                    pg.grabPixels();
          ! 
                    for (j = 0; j < size; j++)
                      {
                        value = bitmap[rowIndex];
                        buf.put((byte) (value & 0xFF));
          ! 
                        if (rowCount == infoHeader.biWidth)
                          {
                            rowCount = 1;
          *************** public class EncodeRLE8
          *** 127,133 ****
                          rowCount++;
                        rowIndex++;
                      }
          !         
                    buf.flip();
                    o.write(uncompress(infoHeader.biWidth, infoHeader.biHeight, buf));
                  }
          --- 127,133 ----
                          rowCount++;
                        rowIndex++;
                      }
          ! 
                    buf.flip();
                    o.write(uncompress(infoHeader.biWidth, infoHeader.biHeight, buf));
                  }
          *************** public class EncodeRLE8
          *** 136,146 ****
                    wb.printStackTrace();
                  }
                }
          !   
            
              /**
               * Uncompresses the image stored in the buffer.
          !    * 
               * @param w - the width of the image
               * @param h - the height of the image
               * @param buf - the ByteBuffer containing the pixel values.
          --- 136,146 ----
                    wb.printStackTrace();
                  }
                }
          ! 
            
              /**
               * Uncompresses the image stored in the buffer.
          !    *
               * @param w - the width of the image
               * @param h - the height of the image
               * @param buf - the ByteBuffer containing the pixel values.
          *************** public class EncodeRLE8
          *** 187,193 ****
                                {
                                  throw new IOException("Error reading compressed data.");
                                }
          !                     
                                int dx = cmd[0] & (0xFF);
                                int dy = cmd[1] & (0xFF);
                                x += dx;
          --- 187,193 ----
                                {
                                  throw new IOException("Error reading compressed data.");
                                }
          ! 
                                int dx = cmd[0] & (0xFF);
                                int dy = cmd[1] & (0xFF);
                                x += dx;
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/gif/GIFFile.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/gif/GIFFile.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/gif/GIFFile.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/gif/GIFFile.java	Tue Jan 11 19:46:05 2011
          *************** import java.util.Vector;
          *** 43,56 ****
            
            /**
             * GIFFile - reads a GIF file.
          !  * 
             * This class only does the bare minimum work, and returns the data in raw
             * formats (described below). The class is J2ME compatible, and hopefully
             * we can keep it that way without any significant overhead.
             *
          !  * @author Sven de Marothy. 
             */
          ! public class GIFFile 
            {
              // "NETSCAPE2.0" - identifier
              private final static byte[] nsBlock = new byte[]
          --- 43,56 ----
            
            /**
             * GIFFile - reads a GIF file.
          !  *
             * This class only does the bare minimum work, and returns the data in raw
             * formats (described below). The class is J2ME compatible, and hopefully
             * we can keep it that way without any significant overhead.
             *
          !  * @author Sven de Marothy.
             */
          ! public class GIFFile
            {
              // "NETSCAPE2.0" - identifier
              private final static byte[] nsBlock = new byte[]
          *************** public class GIFFile 
          *** 67,73 ****
               * Extension block types
               */
              private final static int EXTENSION_COMMENT = 254;
          !   private final static int EXTENSION_GCONTROL = 249; 
              private final static int EXTENSION_APPLICATION = 255;
            
              /**
          --- 67,73 ----
               * Extension block types
               */
              private final static int EXTENSION_COMMENT = 254;
          !   private final static int EXTENSION_GCONTROL = 249;
              private final static int EXTENSION_APPLICATION = 255;
            
              /**
          *************** public class GIFFile 
          *** 75,81 ****
               */
              private final static int UNDRAW_OVERWRITE = 1;
              private final static int UNDRAW_RESTORE_BACKGROUND = 2;
          !   private final static int UNDRAW_RESTORE_PREVIOUS = 3; 
            
              /**
               * Image position and dimensions (images may be partial)
          --- 75,81 ----
               */
              private final static int UNDRAW_OVERWRITE = 1;
              private final static int UNDRAW_RESTORE_BACKGROUND = 2;
          !   private final static int UNDRAW_RESTORE_PREVIOUS = 3;
            
              /**
               * Image position and dimensions (images may be partial)
          *************** public class GIFFile 
          *** 121,127 ****
               * Has transparency?
               */
              private boolean hasTransparency;
          !   
              /**
               * Undraw mode (animations)
               */
          --- 121,127 ----
               * Has transparency?
               */
              private boolean hasTransparency;
          ! 
              /**
               * Undraw mode (animations)
               */
          *************** public class GIFFile 
          *** 181,187 ****
               * @throws IOException if an I/O error occured.
               * @throws GIFException if some file parsing error occured
               */
          !   public GIFFile(InputStream in) throws IOException, GIFException 
              {
                // Validate the signature
                if( !readSignature( in ) )
          --- 181,187 ----
               * @throws IOException if an I/O error occured.
               * @throws GIFException if some file parsing error occured
               */
          !   public GIFFile(InputStream in) throws IOException, GIFException
              {
                // Validate the signature
                if( !readSignature( in ) )
          *************** public class GIFFile 
          *** 190,196 ****
                {
                  byte[] data = new byte[7];
                  if (in.read(data) != 7)
          ! 	throw new IOException("Couldn't read global descriptor.");
            
                  globalWidth = ((data[1] & 0xFF) << 8) | (data[0] & 0xFF);
                  globalHeight = ((data[3] & 0xFF) << 8) | (data[2] & 0xFF);
          --- 190,196 ----
                {
                  byte[] data = new byte[7];
                  if (in.read(data) != 7)
          !         throw new IOException("Couldn't read global descriptor.");
            
                  globalWidth = ((data[1] & 0xFF) << 8) | (data[0] & 0xFF);
                  globalHeight = ((data[3] & 0xFF) << 8) | (data[2] & 0xFF);
          *************** public class GIFFile 
          *** 202,238 ****
            
                if( hasGlobalColorMap )
                  {
          ! 	globalPalette = new byte[ nColors * 3 ];
          ! 	if( in.read( globalPalette ) != nColors * 3 )
          ! 	  throw new IOException("Couldn't read color map.");
                  }
          !     
                int c = in.read();
                while( c == EXTENSION )
                  {
          ! 	readExtension( in );
          ! 	c = in.read();
                  }
          !       
                if( c != LOCAL )
                  throw new GIFException("Extension blocks not followed by a local descriptor ("+c+")");
            
                loadImage( in );
          !     c = in.read(); 
            
                if( c == TERMINATOR ) // Not an animated GIF.
                  return;
            
          !     // Load animation frames. Just quit if an error occurs instead 
                // of throwing an exception.
                animationFrames = new Vector();
          !     try 
                  {
          ! 	while( c != TERMINATOR )
          ! 	  {
          ! 	    animationFrames.add( new GIFFile( this, in, c ) );
          ! 	    c = in.read(); 
          ! 	  }
                  }
                catch(IOException ioe)
                  {
          --- 202,238 ----
            
                if( hasGlobalColorMap )
                  {
          !         globalPalette = new byte[ nColors * 3 ];
          !         if( in.read( globalPalette ) != nColors * 3 )
          !           throw new IOException("Couldn't read color map.");
                  }
          ! 
                int c = in.read();
                while( c == EXTENSION )
                  {
          !         readExtension( in );
          !         c = in.read();
                  }
          ! 
                if( c != LOCAL )
                  throw new GIFException("Extension blocks not followed by a local descriptor ("+c+")");
            
                loadImage( in );
          !     c = in.read();
            
                if( c == TERMINATOR ) // Not an animated GIF.
                  return;
            
          !     // Load animation frames. Just quit if an error occurs instead
                // of throwing an exception.
                animationFrames = new Vector();
          !     try
                  {
          !         while( c != TERMINATOR )
          !           {
          !             animationFrames.add( new GIFFile( this, in, c ) );
          !             c = in.read();
          !           }
                  }
                catch(IOException ioe)
                  {
          *************** public class GIFFile 
          *** 245,252 ****
              /**
               * Constructor for additional animation frames.
               */
          !   private GIFFile(GIFFile parent, InputStream in, int c) 
          !     throws IOException, GIFException 
              {
                // Copy global properties.
                globalWidth = parent.globalWidth;
          --- 245,252 ----
              /**
               * Constructor for additional animation frames.
               */
          !   private GIFFile(GIFFile parent, InputStream in, int c)
          !     throws IOException, GIFException
              {
                // Copy global properties.
                globalWidth = parent.globalWidth;
          *************** public class GIFFile 
          *** 261,270 ****
            
                while( c == EXTENSION )
                {
          !       readExtension( in );      
                  c = in.read();
                }
          !       
                if( c != LOCAL )
                  throw new GIFException("Extension blocks not followed by a local descriptor ("+c+")");
            
          --- 261,270 ----
            
                while( c == EXTENSION )
                {
          !       readExtension( in );
                  c = in.read();
                }
          ! 
                if( c != LOCAL )
                  throw new GIFException("Extension blocks not followed by a local descriptor ("+c+")");
            
          *************** public class GIFFile 
          *** 279,299 ****
               * @throws IOException if the signature could not be read.
               */
              public static boolean readSignature( InputStream in ) throws IOException
          !   { 
                byte[] data = new byte[6];
                if (in.read(data) != 6)
                  throw new IOException("Couldn't read signature.");
            
                if( data[0] != 0x47 || data[1] != 0x49 || data[2] != 0x46 ||
          ! 	data[3] != 0x38 ) // GIF8
                  return false;
            
                if( (data[4] != 0x39 && data[4] != 0x37) || // 7 | 9
          ! 	(data[5] != 0x61 && data[5] != 0x62) ) // 'a' or 'b'
                  return false;
                return true;
              }
          !   
            
              /**
               * Loads the image local descriptor and then loads/decodes the image raster,
          --- 279,299 ----
               * @throws IOException if the signature could not be read.
               */
              public static boolean readSignature( InputStream in ) throws IOException
          !   {
                byte[] data = new byte[6];
                if (in.read(data) != 6)
                  throw new IOException("Couldn't read signature.");
            
                if( data[0] != 0x47 || data[1] != 0x49 || data[2] != 0x46 ||
          !         data[3] != 0x38 ) // GIF8
                  return false;
            
                if( (data[4] != 0x39 && data[4] != 0x37) || // 7 | 9
          !         (data[5] != 0x61 && data[5] != 0x62) ) // 'a' or 'b'
                  return false;
                return true;
              }
          ! 
            
              /**
               * Loads the image local descriptor and then loads/decodes the image raster,
          *************** public class GIFFile 
          *** 306,318 ****
            
                try
                  {
          ! 	decodeRaster( in );
                  }
                catch(ArrayIndexOutOfBoundsException aioobe)
                  {
          ! 	throw new GIFException("Error decompressing image.");
                  }
          !     
                if( interlaced )  // Clean up
                  deinterlace();
                packPixels();
          --- 306,318 ----
            
                try
                  {
          !         decodeRaster( in );
                  }
                catch(ArrayIndexOutOfBoundsException aioobe)
                  {
          !         throw new GIFException("Error decompressing image.");
                  }
          ! 
                if( interlaced )  // Clean up
                  deinterlace();
                packPixels();
          *************** public class GIFFile 
          *** 330,360 ****
                  return;
            
                int nbits = 1;
          !     int ppbyte = 8; 
                if( nColors == 4 )
                  {
          ! 	nbits = 2;
          ! 	ppbyte = 4;
                  }
                else if( nColors == 16 )
                  {
          ! 	nbits = 4;
          ! 	ppbyte = 2;
                  }
            
                int rem = (width & (ppbyte - 1));
          !     int w = ( rem == 0 ) ? (width / ppbyte) : 
          !       ((width + ppbyte - rem) / ppbyte); 
                byte[] nr = new byte[ w * height ];
                for(int j = 0; j < height; j++)
                  {
          ! 	for(int i = 0; i < width - ppbyte; i += ppbyte)
          ! 	  for(int k = 0; k < ppbyte; k++)
          ! 	    nr[ j * w + (i / ppbyte) ] |= (byte)((raster[ width * j + i + k ]
          ! 						  << (8 - nbits * (1 + k))));
          !  	for(int i = 0; i < rem; i++)
          !  	  nr[ j * w + w - 1 ] |= (byte)((raster[ width * j + width - rem + i ]
          ! 					 << (nbits * (rem - i))));
                  }
                raster = nr;
              }
          --- 330,360 ----
                  return;
            
                int nbits = 1;
          !     int ppbyte = 8;
                if( nColors == 4 )
                  {
          !         nbits = 2;
          !         ppbyte = 4;
                  }
                else if( nColors == 16 )
                  {
          !         nbits = 4;
          !         ppbyte = 2;
                  }
            
                int rem = (width & (ppbyte - 1));
          !     int w = ( rem == 0 ) ? (width / ppbyte) :
          !       ((width + ppbyte - rem) / ppbyte);
                byte[] nr = new byte[ w * height ];
                for(int j = 0; j < height; j++)
                  {
          !         for(int i = 0; i < width - ppbyte; i += ppbyte)
          !           for(int k = 0; k < ppbyte; k++)
          !             nr[ j * w + (i / ppbyte) ] |= (byte)((raster[ width * j + i + k ]
          !                                                   << (8 - nbits * (1 + k))));
          !         for(int i = 0; i < rem; i++)
          !           nr[ j * w + w - 1 ] |= (byte)((raster[ width * j + width - rem + i ]
          !                                          << (nbits * (rem - i))));
                  }
                raster = nr;
              }
          *************** public class GIFFile 
          *** 424,446 ****
                int n = 0;
                for(int i = 0; i < ((height + 7) >> 3); i++)
                  {
          ! 	System.arraycopy( raster, n, nr, width * i * 8, width );
          ! 	n += width;
                  }
                for(int i = 0; i < ((height + 3) >> 3); i++)
                  {
          ! 	System.arraycopy( raster, n, nr, width * ( 8 * i + 4 ), width );
          ! 	n += width;
                  }
                for(int i = 0; i < (height >> 2); i++)
                  {
          ! 	System.arraycopy( raster, n, nr, width * (4 * i + 2), width );
          ! 	n += width;
                  }
                for(int i = 0; i < (height >> 1); i++)
                  {
          ! 	System.arraycopy( raster, n, nr, width * (2 * i + 1), width );
          ! 	n += width;
                  }
                raster = nr;
              }
          --- 424,446 ----
                int n = 0;
                for(int i = 0; i < ((height + 7) >> 3); i++)
                  {
          !         System.arraycopy( raster, n, nr, width * i * 8, width );
          !         n += width;
                  }
                for(int i = 0; i < ((height + 3) >> 3); i++)
                  {
          !         System.arraycopy( raster, n, nr, width * ( 8 * i + 4 ), width );
          !         n += width;
                  }
                for(int i = 0; i < (height >> 2); i++)
                  {
          !         System.arraycopy( raster, n, nr, width * (4 * i + 2), width );
          !         n += width;
                  }
                for(int i = 0; i < (height >> 1); i++)
                  {
          !         System.arraycopy( raster, n, nr, width * (2 * i + 1), width );
          !         n += width;
                  }
                raster = nr;
              }
          *************** public class GIFFile 
          *** 461,477 ****
                interlaced = (( flags & 0x40 ) != 0);
                if( (flags & 0x80) != 0 )
                  { // has a local color map
          ! 	int nLocalColors = (1 << (( flags & 0x07) + 1));
          ! 	if( !hasGlobalColorMap )
          ! 	  nColors = nLocalColors;
          ! 	localPalette = new byte[ nLocalColors * 3 ];
          ! 	if( in.read( localPalette ) != nLocalColors * 3 )
          ! 	  throw new IOException("Couldn't read color map.");
                  }
          !   }   
            
              /**
          !    * Returns the image's palette in raw format 
               * (r0,g0,b0,r1,g1,b2..r(Ncolors-1),g(Ncolors-1),b(Ncolors-1))
               */
              public byte[] getRawPalette()
          --- 461,477 ----
                interlaced = (( flags & 0x40 ) != 0);
                if( (flags & 0x80) != 0 )
                  { // has a local color map
          !         int nLocalColors = (1 << (( flags & 0x07) + 1));
          !         if( !hasGlobalColorMap )
          !           nColors = nLocalColors;
          !         localPalette = new byte[ nLocalColors * 3 ];
          !         if( in.read( localPalette ) != nLocalColors * 3 )
          !           throw new IOException("Couldn't read color map.");
                  }
          !   }
            
              /**
          !    * Returns the image's palette in raw format
               * (r0,g0,b0,r1,g1,b2..r(Ncolors-1),g(Ncolors-1),b(Ncolors-1))
               */
              public byte[] getRawPalette()
          *************** public class GIFFile 
          *** 514,554 ****
              /**
               * Handles extension blocks.
               */
          !   private void readExtension(InputStream in) throws IOException, GIFException 
              {
                int functionCode = in.read();
                byte[] data = readData(in);
                switch( functionCode )
                  {
                  case EXTENSION_COMMENT: // comment block
          ! 	comment = new String(data, "8859_1");
          ! 	break;
            
                  case EXTENSION_GCONTROL: // Graphics control extension
          ! 	undraw = (data[0] & 0x1C) >> 2;
          ! 	// allegedly there can be bad values of this.
          ! 	if( undraw < 1 && undraw > 3 ) undraw = 1; 
          ! 	hasTransparency = ((data[0] & 0x01) == 1);
          ! 	transparentIndex = (data[3] & 0xFF);
          ! 	duration = ((data[2] & 0xFF) << 8) | (data[1] & 0xFF);
          ! 	break;
            
          ! 	// Application extension. We only parse the Netscape animation
          ! 	// extension here. Which is the only one most use anyway.
                  case EXTENSION_APPLICATION:
          ! 	boolean isNS = true;
          ! 	for(int i = 0; i < nsBlock.length; i++ )
          ! 	  if( nsBlock[i] != data[i] )
          ! 	    isNS = false;
          ! 	if( isNS )
          ! 	  {
          ! 	    isLooped = true;
          ! 	    loops = ((data[12] & 0xFF) << 8) | (data[13] & 0xFF);
          ! 	  }
          ! 	break;
            
                  default:
          ! 	break;
                  }
              }
            
          --- 514,554 ----
              /**
               * Handles extension blocks.
               */
          !   private void readExtension(InputStream in) throws IOException, GIFException
              {
                int functionCode = in.read();
                byte[] data = readData(in);
                switch( functionCode )
                  {
                  case EXTENSION_COMMENT: // comment block
          !         comment = new String(data, "8859_1");
          !         break;
            
                  case EXTENSION_GCONTROL: // Graphics control extension
          !         undraw = (data[0] & 0x1C) >> 2;
          !         // allegedly there can be bad values of this.
          !         if( undraw < 1 && undraw > 3 ) undraw = 1;
          !         hasTransparency = ((data[0] & 0x01) == 1);
          !         transparentIndex = (data[3] & 0xFF);
          !         duration = ((data[2] & 0xFF) << 8) | (data[1] & 0xFF);
          !         break;
            
          !         // Application extension. We only parse the Netscape animation
          !         // extension here. Which is the only one most use anyway.
                  case EXTENSION_APPLICATION:
          !         boolean isNS = true;
          !         for(int i = 0; i < nsBlock.length; i++ )
          !           if( nsBlock[i] != data[i] )
          !             isNS = false;
          !         if( isNS )
          !           {
          !             isLooped = true;
          !             loops = ((data[12] & 0xFF) << 8) | (data[13] & 0xFF);
          !           }
          !         break;
            
                  default:
          !         break;
                  }
              }
            
          *************** public class GIFFile 
          *** 563,573 ****
                int n = in.read();
                do
                  {
          ! 	totalBytes += n;
          ! 	byte[] block = new byte[ n ];
          ! 	in.read(block);
          ! 	v.add(block);
          ! 	n = in.read();
                  }
                while( n > 0 );
            
          --- 563,573 ----
                int n = in.read();
                do
                  {
          !         totalBytes += n;
          !         byte[] block = new byte[ n ];
          !         in.read(block);
          !         v.add(block);
          !         n = in.read();
                  }
                while( n > 0 );
            
          *************** public class GIFFile 
          *** 575,583 ****
                byte[] bigBuffer = new byte[ totalBytes ];
                for( int i = 0; i < v.size(); i++ )
                  {
          ! 	byte[] block = (byte[])v.elementAt(i);
          ! 	System.arraycopy(block, 0, bigBuffer, n, block.length);
          ! 	n += block.length;
                  }
                return bigBuffer;
              }
          --- 575,583 ----
                byte[] bigBuffer = new byte[ totalBytes ];
                for( int i = 0; i < v.size(); i++ )
                  {
          !         byte[] block = (byte[])v.elementAt(i);
          !         System.arraycopy(block, 0, bigBuffer, n, block.length);
          !         n += block.length;
                  }
                return bigBuffer;
              }
          *************** public class GIFFile 
          *** 617,681 ****
            
                for(short i = 0; i < nColors; i ++ )
                  {
          ! 	dictionary[i][0] = i;  // color index	
          ! 	dictionary[i][1] = -1; // parent
          ! 	dictionary[i][2] = i;  // first	
          ! 	dictionary[i][3] = 1;  // depth
                  }
            
                code = getBits( codeSize ); // get second code
                raster[ rasterIndex++ ] = (byte)dictionary[code][0];
          !     int old = code;    
                code = getBits( codeSize ); // start at the third code
                int c;
            
                do
                  {
          ! 	if( code == clearCode )
          ! 	  {
          ! 	    codeSize = initialCodeSize + 1;
          !  	    nextCode = endCode + 1; 
          ! 	    // get and output second code
          ! 	    code = getBits( codeSize ); 
          ! 	    raster[ rasterIndex++ ] = (byte)dictionary[code][0];
          ! 	    old = code;
          ! 	  }
          ! 	else
          ! 	  {
          ! 	    dictionary[nextCode][1] = (short)old; // parent = old
          ! 	    dictionary[nextCode][2] = dictionary[old][2]; // first pixel
          ! 	    dictionary[nextCode][3] = (short)(dictionary[old][3] + 1); // depth
          ! 	
          ! 	    // appended pixel  = first pixel of c
          ! 	    if( code < nextCode )
          ! 	      {
          ! 		dictionary[nextCode][0] = dictionary[code][2]; 
          ! 		old = code;
          ! 	      }
          ! 	    else // first of old
          ! 	      {
          ! 		dictionary[nextCode][0] = dictionary[old][2]; 
          ! 		old = nextCode;
          ! 	      }
            
          ! 	    c = old;
          ! 	    // output the code c
          ! 	    int depth = dictionary[c][3];
          ! 	    for( int i = depth - 1; i >= 0; i-- )
          ! 	      {
          ! 		raster[ rasterIndex + i ] = (byte)dictionary[c][0];
          ! 		c = dictionary[c][1]; // go to parent.
          ! 	      }
          ! 	    rasterIndex += depth;
          ! 	    nextCode ++;
            
          ! 	    if( codeSize < 12 && nextCode >= (1 << codeSize) )
          ! 	      codeSize++;
          ! 	  }
          ! 	code = getBits( codeSize );
                  }
                while( code != endCode && dataBlockIndex < compressedData.length );
          !     
                compressedData = null; // throw away compressed data.
              }
            
          --- 617,681 ----
            
                for(short i = 0; i < nColors; i ++ )
                  {
          !         dictionary[i][0] = i;  // color index
          !         dictionary[i][1] = -1; // parent
          !         dictionary[i][2] = i;  // first
          !         dictionary[i][3] = 1;  // depth
                  }
            
                code = getBits( codeSize ); // get second code
                raster[ rasterIndex++ ] = (byte)dictionary[code][0];
          !     int old = code;
                code = getBits( codeSize ); // start at the third code
                int c;
            
                do
                  {
          !         if( code == clearCode )
          !           {
          !             codeSize = initialCodeSize + 1;
          !             nextCode = endCode + 1;
          !             // get and output second code
          !             code = getBits( codeSize );
          !             raster[ rasterIndex++ ] = (byte)dictionary[code][0];
          !             old = code;
          !           }
          !         else
          !           {
          !             dictionary[nextCode][1] = (short)old; // parent = old
          !             dictionary[nextCode][2] = dictionary[old][2]; // first pixel
          !             dictionary[nextCode][3] = (short)(dictionary[old][3] + 1); // depth
            
          !             // appended pixel  = first pixel of c
          !             if( code < nextCode )
          !               {
          !                 dictionary[nextCode][0] = dictionary[code][2];
          !                 old = code;
          !               }
          !             else // first of old
          !               {
          !                 dictionary[nextCode][0] = dictionary[old][2];
          !                 old = nextCode;
          !               }
            
          !             c = old;
          !             // output the code c
          !             int depth = dictionary[c][3];
          !             for( int i = depth - 1; i >= 0; i-- )
          !               {
          !                 raster[ rasterIndex + i ] = (byte)dictionary[c][0];
          !                 c = dictionary[c][1]; // go to parent.
          !               }
          !             rasterIndex += depth;
          !             nextCode ++;
          ! 
          !             if( codeSize < 12 && nextCode >= (1 << codeSize) )
          !               codeSize++;
          !           }
          !         code = getBits( codeSize );
                  }
                while( code != endCode && dataBlockIndex < compressedData.length );
          ! 
                compressedData = null; // throw away compressed data.
              }
            
          *************** public class GIFFile 
          *** 686,694 ****
              {
                while( nbits > remainingBits )
                  {
          ! 	int c = (compressedData[ dataBlockIndex++ ] & 0xFF) << remainingBits;
          ! 	currentBits |= c;
          ! 	remainingBits += 8;
                  }
                int rval = (currentBits & ((1 << nbits) - 1));
                currentBits = (currentBits >> nbits);
          --- 686,694 ----
              {
                while( nbits > remainingBits )
                  {
          !         int c = (compressedData[ dataBlockIndex++ ] & 0xFF) << remainingBits;
          !         currentBits |= c;
          !         remainingBits += 8;
                  }
                int rval = (currentBits & ((1 << nbits) - 1));
                currentBits = (currentBits >> nbits);
          *************** public class GIFFile 
          *** 699,705 ****
              /**
               * Generic exception used by GIFFile to report decoding errors.
               */
          !   public static class GIFException extends Exception 
              {
                public GIFException(String message)
                {
          --- 699,705 ----
              /**
               * Generic exception used by GIFFile to report decoding errors.
               */
          !   public static class GIFException extends Exception
              {
                public GIFException(String message)
                {
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/gif/GIFImageReader.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/gif/GIFImageReader.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/gif/GIFImageReader.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/gif/GIFImageReader.java	Tue Jan 11 19:46:05 2011
          *************** import java.awt.image.DataBufferByte;
          *** 56,62 ****
            import java.awt.image.Raster;
            import java.awt.image.WritableRaster;
            
          ! public class GIFImageReader extends ImageReader 
            {
              private GIFFile file;
            
          --- 56,62 ----
            import java.awt.image.Raster;
            import java.awt.image.WritableRaster;
            
          ! public class GIFImageReader extends ImageReader
            {
              private GIFFile file;
            
          *************** public class GIFImageReader extends Imag
          *** 65,71 ****
                super( originatingProvider );
                file = null;
              }
          !   
              private void readImage() throws IOException
              {
                if( file != null )
          --- 65,71 ----
                super( originatingProvider );
                file = null;
              }
          ! 
              private void readImage() throws IOException
              {
                if( file != null )
          *************** public class GIFImageReader extends Imag
          *** 73,86 ****
            
                try
                  {
          ! 	if( input instanceof InputStream )
          ! 	  file = new GIFFile( (InputStream)input );
          ! 	else
          ! 	  file = new GIFFile( new IIOInputStream((ImageInputStream)input) );
                  }
                catch(GIFFile.GIFException ge)
                  {
          ! 	throw new IIOException(ge.getMessage());
                  }
              }
            
          --- 73,86 ----
            
                try
                  {
          !         if( input instanceof InputStream )
          !           file = new GIFFile( (InputStream)input );
          !         else
          !           file = new GIFFile( new IIOInputStream((ImageInputStream)input) );
                  }
                catch(GIFFile.GIFException ge)
                  {
          !         throw new IIOException(ge.getMessage());
                  }
              }
            
          *************** public class GIFImageReader extends Imag
          *** 98,165 ****
            
                for(int i = 0; i < nc; i ++ )
                  {
          ! 	r[i] = data[ i * 3 ];
          ! 	g[i] = data[ i * 3 + 1 ];
          ! 	b[i] = data[ i * 3 + 2 ];
                  }
            
                if( f.hasTransparency() )
                  {
          ! 	byte[] a = new byte[nc];
          ! 	for(int i = 0; i < nc; i ++ )
          ! 	  a[i] = (byte)0xFF;
          ! 	a[f.getTransparentIndex()] = 0;
          ! 	return new IndexColorModel(8, nc, r, g, b, a);
                  }
          !     
                return new IndexColorModel(8, nc, r, g, b);
              }
            
          !   private void validateIndex(int imageIndex) 
          !     throws IndexOutOfBoundsException 
              {
                if( imageIndex < 0 || imageIndex >= getNumImages(false) )
                  throw new IndexOutOfBoundsException("Invalid image index.");
              }
            
          !   public void setInput(Object input) 
              {
                super.setInput(input);
              }
            
          !   public void setInput(Object input, 
          ! 		       boolean seekForwardOnly, 
          ! 		       boolean ignoreMetadata) 
              {
                super.setInput(input, seekForwardOnly, ignoreMetadata);
              }
          ! 	
          !   public void setInput(Object input, boolean isStreamable) 
              {
                super.setInput(input, isStreamable);
          ! 	
          !     if (!(input instanceof ImageInputStream) && 
          ! 	!(input instanceof InputStream))
                  throw new IllegalArgumentException("Input not an ImageInputStream.");
              }
            
          !   private void checkStream() throws IOException 
              {
                if (!(input instanceof ImageInputStream) &&
          ! 	!(input instanceof InputStream))
                  throw new IllegalStateException("Input not an ImageInputStream or InputStream.");
            
                if(input == null)
                  throw new IllegalStateException("No input stream.");
              }
            
          !   public int getWidth(int imageIndex) throws IOException 
              {
                validateIndex( imageIndex );
                return file.getImage( imageIndex ).getWidth();
              }
            
          !   public int getHeight(int imageIndex) throws IOException 
              {
                validateIndex( imageIndex );
                return file.getImage( imageIndex ).getHeight();
          --- 98,165 ----
            
                for(int i = 0; i < nc; i ++ )
                  {
          !         r[i] = data[ i * 3 ];
          !         g[i] = data[ i * 3 + 1 ];
          !         b[i] = data[ i * 3 + 2 ];
                  }
            
                if( f.hasTransparency() )
                  {
          !         byte[] a = new byte[nc];
          !         for(int i = 0; i < nc; i ++ )
          !           a[i] = (byte)0xFF;
          !         a[f.getTransparentIndex()] = 0;
          !         return new IndexColorModel(8, nc, r, g, b, a);
                  }
          ! 
                return new IndexColorModel(8, nc, r, g, b);
              }
            
          !   private void validateIndex(int imageIndex)
          !     throws IndexOutOfBoundsException
              {
                if( imageIndex < 0 || imageIndex >= getNumImages(false) )
                  throw new IndexOutOfBoundsException("Invalid image index.");
              }
            
          !   public void setInput(Object input)
              {
                super.setInput(input);
              }
            
          !   public void setInput(Object input,
          !                        boolean seekForwardOnly,
          !                        boolean ignoreMetadata)
              {
                super.setInput(input, seekForwardOnly, ignoreMetadata);
              }
          ! 
          !   public void setInput(Object input, boolean isStreamable)
              {
                super.setInput(input, isStreamable);
          ! 
          !     if (!(input instanceof ImageInputStream) &&
          !         !(input instanceof InputStream))
                  throw new IllegalArgumentException("Input not an ImageInputStream.");
              }
            
          !   private void checkStream() throws IOException
              {
                if (!(input instanceof ImageInputStream) &&
          !         !(input instanceof InputStream))
                  throw new IllegalStateException("Input not an ImageInputStream or InputStream.");
            
                if(input == null)
                  throw new IllegalStateException("No input stream.");
              }
            
          !   public int getWidth(int imageIndex) throws IOException
              {
                validateIndex( imageIndex );
                return file.getImage( imageIndex ).getWidth();
              }
            
          !   public int getHeight(int imageIndex) throws IOException
              {
                validateIndex( imageIndex );
                return file.getImage( imageIndex ).getHeight();
          *************** public class GIFImageReader extends Imag
          *** 172,188 ****
              }
            
              /**
          !    * Returns the number of images. 
               */
              public int getNumImages(boolean allowSearch)
              {
                try // Image should be loaded here already. But just in case:
                  {
          ! 	readImage();
                  }
                catch(IOException ioe)
                  {
          ! 	return 0; // Well, now we're in trouble. But return something anyway.
                  }
                return file.nImages();
              }
          --- 172,188 ----
              }
            
              /**
          !    * Returns the number of images.
               */
              public int getNumImages(boolean allowSearch)
              {
                try // Image should be loaded here already. But just in case:
                  {
          !         readImage();
                  }
                catch(IOException ioe)
                  {
          !         return 0; // Well, now we're in trouble. But return something anyway.
                  }
                return file.nImages();
              }
          *************** public class GIFImageReader extends Imag
          *** 202,212 ****
              }
            
              /**
          !    * Reads the image indexed by imageIndex and returns it as 
               * a complete BufferedImage, using a supplied ImageReadParam.
          !    */	      
          !   public BufferedImage read(int imageIndex, ImageReadParam param) 
          !     throws IOException, IIOException 
              {
                validateIndex( imageIndex );
                GIFFile f = file.getImage( imageIndex );
          --- 202,212 ----
              }
            
              /**
          !    * Reads the image indexed by imageIndex and returns it as
               * a complete BufferedImage, using a supplied ImageReadParam.
          !    */
          !   public BufferedImage read(int imageIndex, ImageReadParam param)
          !     throws IOException, IIOException
              {
                validateIndex( imageIndex );
                GIFFile f = file.getImage( imageIndex );
          *************** public class GIFImageReader extends Imag
          *** 216,241 ****
                switch( f.getNColors() )
                  {
                  case 16:
          ! 	sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 
          ! 					     width, height, 4);
          ! 	break;
                  case 4:
          ! 	sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 
          ! 					     width, height, 2);
          ! 	break;
                  case 2:
          ! 	sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 
          ! 					     width, height, 1);
          ! 	break;
                  default:
          ! 	sm = new SinglePixelPackedSampleModel(DataBuffer.TYPE_BYTE, 
          ! 					      width, height, 
          ! 					      new int[] {0xFF});
          ! 	break;
                  }
                DataBuffer db = new DataBufferByte(f.getRawImage(), width * height, 0);
                WritableRaster raster = Raster.createWritableRaster(sm, db, null);
          !     
                return new BufferedImage(getPalette( imageIndex ), raster, false, null);
              }
            }
          --- 216,241 ----
                switch( f.getNColors() )
                  {
                  case 16:
          !         sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE,
          !                                              width, height, 4);
          !         break;
                  case 4:
          !         sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE,
          !                                              width, height, 2);
          !         break;
                  case 2:
          !         sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE,
          !                                              width, height, 1);
          !         break;
                  default:
          !         sm = new SinglePixelPackedSampleModel(DataBuffer.TYPE_BYTE,
          !                                               width, height,
          !                                               new int[] {0xFF});
          !         break;
                  }
                DataBuffer db = new DataBufferByte(f.getRawImage(), width * height, 0);
                WritableRaster raster = Raster.createWritableRaster(sm, db, null);
          ! 
                return new BufferedImage(getPalette( imageIndex ), raster, false, null);
              }
            }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/gif/GIFImageReaderSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/gif/GIFImageReaderSpi.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/gif/GIFImageReaderSpi.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/gif/GIFImageReaderSpi.java	Tue Jan 11 19:46:05 2011
          *************** import javax.imageio.ImageReader;
          *** 46,52 ****
            import javax.imageio.spi.ImageReaderSpi;
            import javax.imageio.stream.ImageInputStream;
            
          ! public class GIFImageReaderSpi extends ImageReaderSpi 
            {
              static final String vendorName = "GNU";
              static final String version = "0.1";
          --- 46,52 ----
            import javax.imageio.spi.ImageReaderSpi;
            import javax.imageio.stream.ImageInputStream;
            
          ! public class GIFImageReaderSpi extends ImageReaderSpi
            {
              static final String vendorName = "GNU";
              static final String version = "0.1";
          *************** public class GIFImageReaderSpi extends I
          *** 68,106 ****
              static final String nativeImageMetadataFormatClassName = null;
              static final String[] extraImageMetadataFormatNames = null;
              static final String[] extraImageMetadataFormatClassNames = null;
          !     
          !   public GIFImageReaderSpi() 
              {
                super(vendorName, version,
          ! 	  names, suffixes, MIMETypes,
          ! 	  readerClassName,
          ! 	  new Class[]{ ImageInputStream.class, InputStream.class },
          ! 	  writerSpiNames,
          ! 	  supportsStandardStreamMetadataFormat,
          ! 	  nativeStreamMetadataFormatName,
          ! 	  nativeStreamMetadataFormatClassName,
          ! 	  extraStreamMetadataFormatNames,
          ! 	  extraStreamMetadataFormatClassNames,
          ! 	  supportsStandardImageMetadataFormat,
          ! 	  nativeImageMetadataFormatName,
          ! 	  nativeImageMetadataFormatClassName,
          ! 	  extraImageMetadataFormatNames,
          ! 	  extraImageMetadataFormatClassNames);
              }
          !     
          !   public String getDescription(Locale locale) 
              {
                return "Compuserve GIF";
              }
          !     
              public boolean canDecodeInput(Object input)
          !     throws IOException 
              {
                if( input == null )
                  throw new IllegalArgumentException("Input object cannot be null.");
            
          !     if( !(input instanceof ImageInputStream) && 
          ! 	!(input instanceof InputStream)) 
                  return false;
            
                boolean retval;
          --- 68,106 ----
              static final String nativeImageMetadataFormatClassName = null;
              static final String[] extraImageMetadataFormatNames = null;
              static final String[] extraImageMetadataFormatClassNames = null;
          ! 
          !   public GIFImageReaderSpi()
              {
                super(vendorName, version,
          !           names, suffixes, MIMETypes,
          !           readerClassName,
          !           new Class[]{ ImageInputStream.class, InputStream.class },
          !           writerSpiNames,
          !           supportsStandardStreamMetadataFormat,
          !           nativeStreamMetadataFormatName,
          !           nativeStreamMetadataFormatClassName,
          !           extraStreamMetadataFormatNames,
          !           extraStreamMetadataFormatClassNames,
          !           supportsStandardImageMetadataFormat,
          !           nativeImageMetadataFormatName,
          !           nativeImageMetadataFormatClassName,
          !           extraImageMetadataFormatNames,
          !           extraImageMetadataFormatClassNames);
              }
          ! 
          !   public String getDescription(Locale locale)
              {
                return "Compuserve GIF";
              }
          ! 
              public boolean canDecodeInput(Object input)
          !     throws IOException
              {
                if( input == null )
                  throw new IllegalArgumentException("Input object cannot be null.");
            
          !     if( !(input instanceof ImageInputStream) &&
          !         !(input instanceof InputStream))
                  return false;
            
                boolean retval;
          *************** public class GIFImageReaderSpi extends I
          *** 116,123 ****
            
                return retval;
              }
          !     
          !   public ImageReader createReaderInstance(Object extension) 
              {
                return new GIFImageReader(this);
              }
          --- 116,123 ----
            
                return retval;
              }
          ! 
          !   public ImageReader createReaderInstance(Object extension)
              {
                return new GIFImageReader(this);
              }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/DCT.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/DCT.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/DCT.java	Wed Jul 19 17:10:12 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/DCT.java	Tue Jan 11 19:46:05 2011
          *************** public class DCT
          *** 61,67 ****
              /**
               * Figure A.3.3 IDCT, Cu Cv on A-5 of the ISO DIS 10918-1. Requirements and
               * Guidelines.
          !    * 
               * @param u
               * @return
               */
          --- 61,67 ----
              /**
               * Figure A.3.3 IDCT, Cu Cv on A-5 of the ISO DIS 10918-1. Requirements and
               * Guidelines.
          !    *
               * @param u
               * @return
               */
          *************** public class DCT
          *** 100,106 ****
               * slow_idct - Figure A.3.3 IDCT (informative) on A-5 of the ISO DIS
               * 10918-1. Requirements and Guidelines. This is a slow IDCT, there are
               * better algorithms to use, it's fairly expensive with processor speed.
          !    * 
               * @param matrix
               * @return
               */
          --- 100,106 ----
               * slow_idct - Figure A.3.3 IDCT (informative) on A-5 of the ISO DIS
               * 10918-1. Requirements and Guidelines. This is a slow IDCT, there are
               * better algorithms to use, it's fairly expensive with processor speed.
          !    *
               * @param matrix
               * @return
               */
          *************** public class DCT
          *** 199,205 ****
               * effecient and only inaccurate at about 1/1000th of a percent of values
               * analyzed. Cannot be static because initMatrix must run before any
               * fast_idct values can be computed.
          !    * 
               * @param input
               * @return
               */
          --- 199,205 ----
               * effecient and only inaccurate at about 1/1000th of a percent of values
               * analyzed. Cannot be static because initMatrix must run before any
               * fast_idct values can be computed.
          !    *
               * @param input
               * @return
               */
          *************** public class DCT
          *** 255,261 ****
                      {
                        output[i][j] = ((double) input[i][j] - (double) 128.0);
                        //                        input[i][j] -= 128;
          !             
                      }
                  }
            
          --- 255,261 ----
                      {
                        output[i][j] = ((double) input[i][j] - (double) 128.0);
                        //                        input[i][j] -= 128;
          ! 
                      }
                  }
            
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java	Tue Jan 11 19:46:05 2011
          *************** public class JPEGComponent
          *** 59,65 ****
            
              /**
               * Initializes the component
          !    * 
               * @param id
               * @param factorHorizontal
               * @param factorVertical
          --- 59,65 ----
            
              /**
               * Initializes the component
          !    *
               * @param id
               * @param factorHorizontal
               * @param factorVertical
          *************** public class JPEGComponent
          *** 78,84 ****
               * If a restart marker is found with too little of an MCU count (i.e. our
               * Restart Interval is 63 and we have 61 we copy the last MCU until it's
               * full)
          !    * 
               * @param index
               * @param length
               */
          --- 78,84 ----
               * If a restart marker is found with too little of an MCU count (i.e. our
               * Restart Interval is 63 and we have 61 we copy the last MCU until it's
               * full)
          !    *
               * @param index
               * @param length
               */
          *************** public class JPEGComponent
          *** 180,186 ****
              /**
               * This write the block of data to the raster throwing out anything that
               * spills over the raster width or height.
          !    * 
               * @param raster
               * @param data
               * @param compIndex
          --- 180,186 ----
              /**
               * This write the block of data to the raster throwing out anything that
               * spills over the raster width or height.
          !    *
               * @param raster
               * @param data
               * @param compIndex
          *************** public class JPEGComponent
          *** 210,216 ****
               * but it writes the data to the raster block by factor size in a zig zag
               * fashion. This has the helper function writeBlock which does the actual
               * writing.
          !    * 
               * @param raster
               * @param componentIndex
               */
          --- 210,216 ----
               * but it writes the data to the raster block by factor size in a zig zag
               * fashion. This has the helper function writeBlock which does the actual
               * writing.
          !    *
               * @param raster
               * @param componentIndex
               */
          *************** public class JPEGComponent
          *** 263,269 ****
            
              /**
               * Set the quantization table for this component.
          !    * 
               * @param quanttable
               */
              public void setQuantizationTable(int[] quanttable)
          --- 263,269 ----
            
              /**
               * Set the quantization table for this component.
          !    *
               * @param quanttable
               */
              public void setQuantizationTable(int[] quanttable)
          *************** public class JPEGComponent
          *** 273,279 ****
            
              /**
               * Read in a partial MCU for this component
          !    * 
               * @param stream TODO
               * @throws JPEGException TODO
               * @throws IOException TODO
          --- 273,279 ----
            
              /**
               * Read in a partial MCU for this component
          !    *
               * @param stream TODO
               * @throws JPEGException TODO
               * @throws IOException TODO
          *************** public class JPEGComponent
          *** 293,299 ****
              /**
               * Generated from text on F-22, F.2.2.1 - Huffman decoding of DC
               * coefficients on ISO DIS 10918-1. Requirements and Guidelines.
          !    * 
               * @param JPEGStream TODO
               *
               * @return TODO
          --- 293,299 ----
              /**
               * Generated from text on F-22, F.2.2.1 - Huffman decoding of DC
               * coefficients on ISO DIS 10918-1. Requirements and Guidelines.
          !    *
               * @param JPEGStream TODO
               *
               * @return TODO
          *************** public class JPEGComponent
          *** 301,307 ****
               * @throws IOException TODO
               */
              public double decode_dc_coefficient(JPEGImageInputStream JPEGStream)
          ! 	throws JPEGException, IOException
              {
                int t = DCTable.decode(JPEGStream);
                double diff = JPEGStream.readBits(t);
          --- 301,307 ----
               * @throws IOException TODO
               */
              public double decode_dc_coefficient(JPEGImageInputStream JPEGStream)
          !         throws JPEGException, IOException
              {
                int t = DCTable.decode(JPEGStream);
                double diff = JPEGStream.readBits(t);
          *************** public class JPEGComponent
          *** 314,320 ****
              /**
               * Generated from text on F-23, F.13 - Huffman decoded of AC coefficients
               * on ISO DIS 10918-1. Requirements and Guidelines.
          !    * 
               * @param JPEGStream TODO
               * @return TODO
               *
          --- 314,320 ----
              /**
               * Generated from text on F-23, F.13 - Huffman decoded of AC coefficients
               * on ISO DIS 10918-1. Requirements and Guidelines.
          !    *
               * @param JPEGStream TODO
               * @return TODO
               *
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java	Tue Jan 11 19:46:05 2011
          *************** public class JPEGDecoder
          *** 68,74 ****
              BufferedImage image;
              int width;
              int height;
          !   
              byte marker;
            
              /**
          --- 68,74 ----
              BufferedImage image;
              int width;
              int height;
          ! 
              byte marker;
            
              /**
          *************** public class JPEGDecoder
          *** 100,106 ****
                {
                  return height;
                }
          !     
                public int getWidth()
                {
                    return width;
          --- 100,106 ----
                {
                  return height;
                }
          ! 
                public int getWidth()
                {
                    return width;
          *************** public class JPEGDecoder
          *** 333,339 ****
                              {
                                for (int i = 0; i < 64; i++)
                                  quantData[i] = jpegStream.readByte();
          !                   
                              }
                            else if ((byte) (quantSpecs >> 4) == 1)
                              // Precision 16 bit.
          --- 333,339 ----
                              {
                                for (int i = 0; i < 64; i++)
                                  quantData[i] = jpegStream.readByte();
          ! 
                              }
                            else if ((byte) (quantSpecs >> 4) == 1)
                              // Precision 16 bit.
          *************** public class JPEGDecoder
          *** 370,376 ****
                        byte endSpectralSelection = jpegStream.readByte();
                        byte successiveApproximation = jpegStream.readByte();
            
          !             int mcuIndex = 0; 
                        int mcuTotalIndex = 0;
                        // This loops through until a MarkerTagFound exception is
                        // found, if the marker tag is a RST (Restart Marker) it
          --- 370,376 ----
                        byte endSpectralSelection = jpegStream.readByte();
                        byte successiveApproximation = jpegStream.readByte();
            
          !             int mcuIndex = 0;
                        int mcuTotalIndex = 0;
                        // This loops through until a MarkerTagFound exception is
                        // found, if the marker tag is a RST (Restart Marker) it
          *************** public class JPEGDecoder
          *** 541,547 ****
                        throw new JPEGException("Unsupported Codec Type: Extended "
                                                + "Sequential DCT JPEG's Not-Supported");
                        //case JPEGMarker.SOF2:
          !             //	throw new JPEGException("Unsupported Codec Type: Progressive DCT JPEG's Not-Supported");
                      case JPEGMarker.SOF3:
                        throw new JPEGException("Unsupported Codec Type:"
                                                + " Lossless (sequential)");
          --- 541,547 ----
                        throw new JPEGException("Unsupported Codec Type: Extended "
                                                + "Sequential DCT JPEG's Not-Supported");
                        //case JPEGMarker.SOF2:
          !             //  throw new JPEGException("Unsupported Codec Type: Progressive DCT JPEG's Not-Supported");
                      case JPEGMarker.SOF3:
                        throw new JPEGException("Unsupported Codec Type:"
                                                + " Lossless (sequential)");
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java	Tue Jan 11 19:46:05 2011
          *************** public class JPEGImageInputStream
          *** 47,53 ****
              private ImageInputStream in;
            
              byte marker;
          !   
              public JPEGImageInputStream(ImageInputStream in)
              {
                super();
          --- 47,53 ----
              private ImageInputStream in;
            
              byte marker;
          ! 
              public JPEGImageInputStream(ImageInputStream in)
              {
                super();
          *************** public class JPEGImageInputStream
          *** 68,74 ****
                setBitOffset(0);
                return in.read(data, offset, len);
              }
          !   
              /**
               * Pull a byte from the stream, this checks to see if the byte is 0xff
               * and if the next byte isn't 0x00 (stuffed byte) it errors out. If it's
          --- 68,74 ----
                setBitOffset(0);
                return in.read(data, offset, len);
              }
          ! 
              /**
               * Pull a byte from the stream, this checks to see if the byte is 0xff
               * and if the next byte isn't 0x00 (stuffed byte) it errors out. If it's
          *************** public class JPEGImageInputStream
          *** 117,123 ****
               * @return the amount of bits specified by l as an integer
               *
               * @throws IOException TODO
          !    * @throws JPEGMarkerFoundException 
               * @throws BitStreamException TODO
               */
              public int readBit()
          --- 117,123 ----
               * @return the amount of bits specified by l as an integer
               *
               * @throws IOException TODO
          !    * @throws JPEGMarkerFoundException
               * @throws BitStreamException TODO
               */
              public int readBit()
          *************** public class JPEGImageInputStream
          *** 129,135 ****
              int newOffset = (bitOffset + 1) & 0x7;
            
              byte data = pullByte();
          !   
              if (bitOffset != 0)
                {
                    seek(getStreamPosition() - 1);
          --- 129,135 ----
              int newOffset = (bitOffset + 1) & 0x7;
            
              byte data = pullByte();
          ! 
              if (bitOffset != 0)
                {
                    seek(getStreamPosition() - 1);
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageReader.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageReader.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageReader.java	Wed Jul 19 17:10:12 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageReader.java	Tue Jan 11 19:46:05 2011
          *************** public class JPEGImageReader extends Ima
          *** 117,123 ****
            
              private void checkStream() throws IOException
              {
          !     if (!(input instanceof ImageInputStream)) 
                  throw new IllegalStateException("Input not an ImageInputStream.");
                if(input == null)
                  throw new IllegalStateException("No input stream.");
          --- 117,123 ----
            
              private void checkStream() throws IOException
              {
          !     if (!(input instanceof ImageInputStream))
                  throw new IllegalStateException("Input not an ImageInputStream.");
                if(input == null)
                  throw new IllegalStateException("No input stream.");
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.java	Wed Jul 19 17:10:12 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.java	Tue Jan 11 19:46:05 2011
          *************** public class JPEGImageReaderSpi extends 
          *** 88,103 ****
                      extraImageMetadataFormatClassNames);
                System.out.println ("JPEGImageReaderSPI!!!");
              }
          !     
              public String getDescription(Locale locale)
              {
                return "JPEG ISO 10918-1, JFIF V1.02";
              }
          !     
              public boolean canDecodeInput(Object input)
                throws IOException
              {
          !     if (!(input instanceof ImageInputStream)) 
                  return false;
            
                ImageInputStream in = (ImageInputStream) input;
          --- 88,103 ----
                      extraImageMetadataFormatClassNames);
                System.out.println ("JPEGImageReaderSPI!!!");
              }
          ! 
              public String getDescription(Locale locale)
              {
                return "JPEG ISO 10918-1, JFIF V1.02";
              }
          ! 
              public boolean canDecodeInput(Object input)
                throws IOException
              {
          !     if (!(input instanceof ImageInputStream))
                  return false;
            
                ImageInputStream in = (ImageInputStream) input;
          *************** public class JPEGImageReaderSpi extends 
          *** 117,123 ****
            
                return retval;
              }
          !     
              public ImageReader createReaderInstance(Object extension)
              {
                return new JPEGImageReader(this);
          --- 117,123 ----
            
                return retval;
              }
          ! 
              public ImageReader createReaderInstance(Object extension)
              {
                return new JPEGImageReader(this);
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGMarker.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGMarker.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/JPEGMarker.java	Wed Jul 19 17:10:12 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/JPEGMarker.java	Tue Jan 11 19:46:05 2011
          *************** public class JPEGMarker
          *** 172,178 ****
               * Quantization Table.
               */
              public final static byte DQT = (byte) 0xdb;
          !  
              /**
               * Start of Scan.
               */
          --- 172,178 ----
               * Quantization Table.
               */
              public final static byte DQT = (byte) 0xdb;
          ! 
              /**
               * Start of Scan.
               */
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/ZigZag.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/ZigZag.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/jpeg/ZigZag.java	Wed Jul 19 17:10:12 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/jpeg/ZigZag.java	Tue Jan 11 19:46:05 2011
          *************** public class ZigZag
          *** 63,69 ****
            
              /**
               * Encodes a matrix of equal width and height to a byte array.
          !    * 
               * @param matrix
               *
               * @return
          --- 63,69 ----
            
              /**
               * Encodes a matrix of equal width and height to a byte array.
          !    *
               * @param matrix
               *
               * @return
          *************** public class ZigZag
          *** 114,120 ****
            
              /**
               * Encodes a matrix of equal width and height to a double array
          !    * 
               * @param matrix
               *
               * @return
          --- 114,120 ----
            
              /**
               * Encodes a matrix of equal width and height to a double array
          !    *
               * @param matrix
               *
               * @return
          *************** public class ZigZag
          *** 165,171 ****
            
              /**
               * Encodes a matrix of equal width and height to a float array
          !    * 
               * @param matrix
               *
               * @return
          --- 165,171 ----
            
              /**
               * Encodes a matrix of equal width and height to a float array
          !    *
               * @param matrix
               *
               * @return
          *************** public class ZigZag
          *** 216,222 ****
            
              /**
               * Encodes a matrix of equal width and height to a float array
          !    * 
               * @param matrix
               *
               * @return
          --- 216,222 ----
            
              /**
               * Encodes a matrix of equal width and height to a float array
          !    *
               * @param matrix
               *
               * @return
          *************** public class ZigZag
          *** 268,274 ****
              /**
               * Convert a double array into a matrix with the same amount of columns and
               * rows with length sqrt(double array length)
          !    * 
               * @param data
               *
               * @return
          --- 268,274 ----
              /**
               * Convert a double array into a matrix with the same amount of columns and
               * rows with length sqrt(double array length)
          !    *
               * @param data
               *
               * @return
          *************** public class ZigZag
          *** 282,288 ****
              /**
               * Convert a byte array into a matrix with the same amount of columns and
               * rows with length sqrt(double array length)
          !    * 
               * @param data
               *
               * @return
          --- 282,288 ----
              /**
               * Convert a byte array into a matrix with the same amount of columns and
               * rows with length sqrt(double array length)
          !    *
               * @param data
               *
               * @return
          *************** public class ZigZag
          *** 314,320 ****
                  {
                    buffer[yindex][xindex] = data[dataindex];
                    dataindex++;
          !         
                    if (dir == ZigZag.ZIGZAG_FORWARD)
                      {
                        if (yindex == 0 || xindex == (width - 1))
          --- 314,320 ----
                  {
                    buffer[yindex][xindex] = data[dataindex];
                    dataindex++;
          ! 
                    if (dir == ZigZag.ZIGZAG_FORWARD)
                      {
                        if (yindex == 0 || xindex == (width - 1))
          *************** public class ZigZag
          *** 408,426 ****
              public static float[][] decode(float[] data, int width, int height)
              {
                float[][] buffer = new float[height][width];
          !     
                for (int v = 0; v < height; v++)
                  for (int z = 0; z < width; z++)
                    buffer[v][z] = 11;
          !     
                boolean dir = ZigZag.ZIGZAG_FORWARD;
                int xindex = 0, yindex = 0, dataindex = 0;
          !     
                while (xindex < width && yindex < height && dataindex < data.length)
                  {
                    buffer[yindex][xindex] = data[dataindex];
                    dataindex++;
          !         
                    if (dir == ZigZag.ZIGZAG_FORWARD)
                      {
                        if (yindex == 0 || xindex == (width - 1))
          --- 408,426 ----
              public static float[][] decode(float[] data, int width, int height)
              {
                float[][] buffer = new float[height][width];
          ! 
                for (int v = 0; v < height; v++)
                  for (int z = 0; z < width; z++)
                    buffer[v][z] = 11;
          ! 
                boolean dir = ZigZag.ZIGZAG_FORWARD;
                int xindex = 0, yindex = 0, dataindex = 0;
          ! 
                while (xindex < width && yindex < height && dataindex < data.length)
                  {
                    buffer[yindex][xindex] = data[dataindex];
                    dataindex++;
          ! 
                    if (dir == ZigZag.ZIGZAG_FORWARD)
                      {
                        if (yindex == 0 || xindex == (width - 1))
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGChunk.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGChunk.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGChunk.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGChunk.java	Tue Jan 11 19:46:05 2011
          *************** public class PNGChunk
          *** 52,71 ****
               */
              private static long[] crcTable;
            
          !   static 
               {
                 long c;
                 crcTable = new long[256];
          !    
                 for(int i = 0; i < 256; i++)
                   {
          ! 	 c = i;
          ! 	 for(int j = 0; j < 8; j++) 
          ! 	   if( (c & 1) == 1 )
          ! 	     c = 0xEDB88320L ^ (c >> 1);
          ! 	   else
          ! 	     c = c >> 1;
          ! 	 crcTable[i] = c;
                   }
               }
            
          --- 52,71 ----
               */
              private static long[] crcTable;
            
          !   static
               {
                 long c;
                 crcTable = new long[256];
          ! 
                 for(int i = 0; i < 256; i++)
                   {
          !          c = i;
          !          for(int j = 0; j < 8; j++)
          !            if( (c & 1) == 1 )
          !              c = 0xEDB88320L ^ (c >> 1);
          !            else
          !              c = c >> 1;
          !          crcTable[i] = c;
                   }
               }
            
          *************** public class PNGChunk
          *** 90,96 ****
               * The chunk data
               */
              protected byte[] data;
          !   
              /**
               * The chunk's crc
               */
          --- 90,96 ----
               * The chunk data
               */
              protected byte[] data;
          ! 
              /**
               * The chunk's crc
               */
          *************** public class PNGChunk
          *** 107,113 ****
              }
            
              /**
          !    * Constructor for creating new chunks. 
               * (only used by subclasses - creating a generic chunk is rather useless)
               */
              protected PNGChunk( int type )
          --- 107,113 ----
              }
            
              /**
          !    * Constructor for creating new chunks.
               * (only used by subclasses - creating a generic chunk is rather useless)
               */
              protected PNGChunk( int type )
          *************** public class PNGChunk
          *** 122,165 ****
               * @param strict - if true, a PNGException is thrown on all invalid chunks,
               * if false, only critical chunks will throw PNGExceptions.
               */
          !   public static PNGChunk readChunk(InputStream in, boolean strict) 
                throws IOException, PNGException
              {
                byte data[] = new byte[4];
                if( in.read( data ) != 4 )
                  throw new IOException("Could not read chunk length.");
          !     int length = ((data[0] & 0xFF) << 24) | ((data[1] & 0xFF) << 16 ) | 
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
            
                if( in.read( data ) != 4 )
                  throw new IOException("Could not read chunk type.");
          !     int type = ((data[0] & 0xFF) << 24) | ((data[1] & 0xFF) << 16 ) | 
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
            
                byte[] chkdata = new byte[ length ];
                if( in.read( chkdata ) != length )
                  throw new IOException("Could not read chunk data.");
          !     
                if( in.read( data ) != 4 )
                  throw new IOException("Could not read chunk CRC.");
          !     
          !     int crc = ((data[0] & 0xFF) << 24) | ( (data[1] & 0xFF) << 16 ) | 
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
            
                if( strict )
                  return getChunk( type, chkdata, crc );
                else
                  {
          ! 	try
          ! 	  {
          ! 	    return getChunk( type, chkdata, crc );
          ! 	  }
          ! 	catch(PNGException pnge)
          ! 	  {
          ! 	    if( isEssentialChunk( type ) )
          ! 	      throw pnge;
          ! 	    return null;
          ! 	  }
                  }
              }
            
          --- 122,165 ----
               * @param strict - if true, a PNGException is thrown on all invalid chunks,
               * if false, only critical chunks will throw PNGExceptions.
               */
          !   public static PNGChunk readChunk(InputStream in, boolean strict)
                throws IOException, PNGException
              {
                byte data[] = new byte[4];
                if( in.read( data ) != 4 )
                  throw new IOException("Could not read chunk length.");
          !     int length = ((data[0] & 0xFF) << 24) | ((data[1] & 0xFF) << 16 ) |
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
            
                if( in.read( data ) != 4 )
                  throw new IOException("Could not read chunk type.");
          !     int type = ((data[0] & 0xFF) << 24) | ((data[1] & 0xFF) << 16 ) |
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
            
                byte[] chkdata = new byte[ length ];
                if( in.read( chkdata ) != length )
                  throw new IOException("Could not read chunk data.");
          ! 
                if( in.read( data ) != 4 )
                  throw new IOException("Could not read chunk CRC.");
          ! 
          !     int crc = ((data[0] & 0xFF) << 24) | ( (data[1] & 0xFF) << 16 ) |
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
            
                if( strict )
                  return getChunk( type, chkdata, crc );
                else
                  {
          !         try
          !           {
          !             return getChunk( type, chkdata, crc );
          !           }
          !         catch(PNGException pnge)
          !           {
          !             if( isEssentialChunk( type ) )
          !               throw pnge;
          !             return null;
          !           }
                  }
              }
            
          *************** public class PNGChunk
          *** 172,192 ****
                switch( type )
                  {
                  case TYPE_HEADER:
          ! 	return new PNGHeader( type, data, crc );
                  case TYPE_DATA:
          ! 	return new PNGData( type, data, crc );
                  case TYPE_PALETTE:
          ! 	return new PNGPalette( type, data, crc );
                  case TYPE_TIME:
          ! 	return new PNGTime( type, data, crc );
                  case TYPE_PHYS:
          ! 	return new PNGPhys( type, data, crc );
                  case TYPE_GAMMA:
          ! 	return new PNGGamma( type, data, crc );
                  case TYPE_PROFILE:
          ! 	return new PNGICCProfile( type, data, crc );
                  default:
          ! 	return new PNGChunk( type, data, crc );
                  }
              }
            
          --- 172,192 ----
                switch( type )
                  {
                  case TYPE_HEADER:
          !         return new PNGHeader( type, data, crc );
                  case TYPE_DATA:
          !         return new PNGData( type, data, crc );
                  case TYPE_PALETTE:
          !         return new PNGPalette( type, data, crc );
                  case TYPE_TIME:
          !         return new PNGTime( type, data, crc );
                  case TYPE_PHYS:
          !         return new PNGPhys( type, data, crc );
                  case TYPE_GAMMA:
          !         return new PNGGamma( type, data, crc );
                  case TYPE_PROFILE:
          !         return new PNGICCProfile( type, data, crc );
                  default:
          !         return new PNGChunk( type, data, crc );
                  }
              }
            
          *************** public class PNGChunk
          *** 201,209 ****
                  case TYPE_DATA:
                  case TYPE_PALETTE:
                  case TYPE_END:
          ! 	return true;
                  default:
          ! 	return false;
                  }
              }
            
          --- 201,209 ----
                  case TYPE_DATA:
                  case TYPE_PALETTE:
                  case TYPE_END:
          !         return true;
                  default:
          !         return false;
                  }
              }
            
          *************** public class PNGChunk
          *** 224,230 ****
              }
            
              /**
          !    * Writes a PNG chunk to an output stream, 
               * performing the CRC calculation as well.
               */
              public void writeChunk(OutputStream out) throws IOException
          --- 224,230 ----
              }
            
              /**
          !    * Writes a PNG chunk to an output stream,
               * performing the CRC calculation as well.
               */
              public void writeChunk(OutputStream out) throws IOException
          *************** public class PNGChunk
          *** 267,273 ****
                byte[] t = getInt( type );
                for(int i = 0; i < 4; i++)
                  c = crcTable[ (int)((c ^ t[i]) & 0xFF) ] ^ (c >> 8);
          !       
                for(int i = 0; i < data.length; i++)
                  c = crcTable[ (int)((c ^ data[i]) & 0xFF) ] ^ (c >> 8);
            
          --- 267,273 ----
                byte[] t = getInt( type );
                for(int i = 0; i < 4; i++)
                  c = crcTable[ (int)((c ^ t[i]) & 0xFF) ] ^ (c >> 8);
          ! 
                for(int i = 0; i < data.length; i++)
                  c = crcTable[ (int)((c ^ data[i]) & 0xFF) ] ^ (c >> 8);
            
          *************** public class PNGChunk
          *** 276,283 ****
            
              public String toString()
              {
          !     return "PNG Chunk. Type: " + new String( getInt(type) ) + " , CRC: " + 
                  crc + " , calculated CRC: "+calcCRC();
              }
          !    
            }
          --- 276,283 ----
            
              public String toString()
              {
          !     return "PNG Chunk. Type: " + new String( getInt(type) ) + " , CRC: " +
                  crc + " , calculated CRC: "+calcCRC();
              }
          ! 
            }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGData.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGData.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGData.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGData.java	Tue Jan 11 19:46:05 2011
          *************** import java.util.zip.Deflater;
          *** 43,50 ****
            /**
             * A PNG IDAT (data) chunk.
             */
          ! public class PNGData extends PNGChunk 
          ! { 
              private int offset;
            
              protected PNGData( int type, byte[] data, int crc )
          --- 43,50 ----
            /**
             * A PNG IDAT (data) chunk.
             */
          ! public class PNGData extends PNGChunk
          ! {
              private int offset;
            
              protected PNGData( int type, byte[] data, int crc )
          *************** public class PNGData extends PNGChunk 
          *** 65,71 ****
               * @return true if the chunk is filled and no more data can be written,
               * false otherwise.
               */
          !   public void deflateToChunk( Deflater def ) 
              {
                offset += def.deflate( data, offset, data.length - offset );
              }
          --- 65,71 ----
               * @return true if the chunk is filled and no more data can be written,
               * false otherwise.
               */
          !   public void deflateToChunk( Deflater def )
              {
                offset += def.deflate( data, offset, data.length - offset );
              }
          *************** public class PNGData extends PNGChunk 
          *** 80,86 ****
            
              /**
               * Shrink the chunk to offset size, used for the last chunk in a stream
          !    * (no trailing data!) 
               */
              public void shrink()
              {
          --- 80,86 ----
            
              /**
               * Shrink the chunk to offset size, used for the last chunk in a stream
          !    * (no trailing data!)
               */
              public void shrink()
              {
          *************** public class PNGData extends PNGChunk 
          *** 92,98 ****
              /**
               * Feeds the data in the chunk to a ZIP inflater object.
               */
          !   public void feedToInflater( Inflater inf ) 
              {
                inf.setInput( data );
              }
          --- 92,98 ----
              /**
               * Feeds the data in the chunk to a ZIP inflater object.
               */
          !   public void feedToInflater( Inflater inf )
              {
                inf.setInput( data );
              }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java	Tue Jan 11 19:46:05 2011
          *************** public class PNGDecoder
          *** 92,102 ****
              {
                try
                  {
          ! 	return inflater.inflate( buf, offset, buf.length - offset);
                  }
                catch(DataFormatException dfe)
                  {
          ! 	throw new PNGException("Error inflating data.");
                  }
              }
            
          --- 92,102 ----
              {
                try
                  {
          !         return inflater.inflate( buf, offset, buf.length - offset);
                  }
                catch(DataFormatException dfe)
                  {
          !         throw new PNGException("Error inflating data.");
                  }
              }
            
          *************** public class PNGDecoder
          *** 111,139 ****
                chunk.feedToInflater( inflater );
                do
                  {
          ! 	if( readFilter )
          ! 	  if( getBytes( filterType, 0 ) < 1 )
          ! 	    return;
            
          ! 	n = getBytes( scanline, offset );
            
          ! 	if( offset + n < stride )
          ! 	  {
          ! 	    offset += n;
          ! 	    readFilter = false;
          ! 	  }
          ! 	else
          ! 	  {
          ! 	    scanline = PNGFilter.unFilterScanline( filterType[0], scanline,
          ! 						   lastScanline, bpp );
          ! 	    System.arraycopy( scanline, 0,
          ! 			      raster, currentScanline * stride, stride );
          ! 	    lastScanline = scanline;
          ! 	    scanline = new byte[scanline.length];
          ! 	    currentScanline++;
          ! 	    readFilter = true;
          ! 	    offset = 0;
          ! 	  }
                  }
                while( n > 0 && currentScanline < header.getHeight() );
              }
          --- 111,139 ----
                chunk.feedToInflater( inflater );
                do
                  {
          !         if( readFilter )
          !           if( getBytes( filterType, 0 ) < 1 )
          !             return;
            
          !         n = getBytes( scanline, offset );
            
          !         if( offset + n < stride )
          !           {
          !             offset += n;
          !             readFilter = false;
          !           }
          !         else
          !           {
          !             scanline = PNGFilter.unFilterScanline( filterType[0], scanline,
          !                                                    lastScanline, bpp );
          !             System.arraycopy( scanline, 0,
          !                               raster, currentScanline * stride, stride );
          !             lastScanline = scanline;
          !             scanline = new byte[scanline.length];
          !             currentScanline++;
          !             readFilter = true;
          !             offset = 0;
          !           }
                  }
                while( n > 0 && currentScanline < header.getHeight() );
              }
          *************** public class PNGDecoder
          *** 154,239 ****
                switch( header.getColorType() )
                  {
                  case PNGHeader.GRAYSCALE_WITH_ALPHA:
          ! 	if( depth == 8 )
          ! 	  {
          ! 	    t = DataBuffer.TYPE_BYTE;
          ! 	    db = getByteBuffer();
          ! 	  }
          ! 	else
          ! 	  { 
          ! 	    t = DataBuffer.TYPE_USHORT;
          ! 	    db = getShortBuffer();
          ! 	  }
          ! 	sm = new ComponentSampleModel(t, width, height, 2, width * 2,
          ! 				      new int[]{0, 1});
          ! 	break;
            
                  case PNGHeader.GRAYSCALE:
          ! 	switch( depth )
          ! 	  {
          ! 	  case 16:
          ! 	    sm = new ComponentSampleModel(DataBuffer.TYPE_USHORT, 
          ! 					  width, height, 1, width,
          ! 					  new int[]{ 0 });
          ! 	    db = getShortBuffer();
          ! 	    break;
          ! 	    
          ! 	  case 8:
          ! 	    sm = new ComponentSampleModel(DataBuffer.TYPE_BYTE, 
          ! 					  width, height, 1, width,
          ! 					  new int[]{ 0 });
          ! 	    db = getByteBuffer();
          ! 	    break;
          ! 	    
          ! 	  default:
          ! 	    sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 
          ! 						 width, height, depth);
          ! 	    db = getByteBuffer();
          ! 	    break;
          ! 	  }
          ! 	break;
            
                  case PNGHeader.RGB:
          ! 	if( depth == 8 )
          ! 	  {
          ! 	    t = DataBuffer.TYPE_BYTE;
          ! 	    db = getByteBuffer();
          ! 	  }
          ! 	else
          ! 	  { 
          ! 	    t = DataBuffer.TYPE_USHORT;
          ! 	    db = getShortBuffer();
          ! 	  }
          ! 	sm = new ComponentSampleModel(t, width, height, 3, 3 * width,
          ! 				      new int[]{0, 1, 2});
          ! 	break;
            
                  case PNGHeader.RGB_WITH_ALPHA:
          ! 	if( depth == 8 )
          ! 	  {
          ! 	    t = DataBuffer.TYPE_BYTE;
          ! 	    db = getByteBuffer();
          ! 	  }
          ! 	else
          ! 	  { 
          ! 	    t = DataBuffer.TYPE_USHORT;
          ! 	    db = getShortBuffer();
          ! 	  }
          ! 	
          ! 	sm = new ComponentSampleModel(t, width, height, 4, width * 4,
          ! 				      new int[]{0, 1, 2, 3});
          ! 	break;
          ! 	
                  case PNGHeader.INDEXED:
          ! 	if( depth == 8 )
          ! 	  sm = new SinglePixelPackedSampleModel(DataBuffer.TYPE_BYTE, 
          ! 						width, height, 
          ! 						new int[] {0xFF});
          ! 	else
          ! 	  sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 
          ! 					       width, height, depth);
          ! 	db = getByteBuffer();
          ! 	break;
                  }
            
                return Raster.createWritableRaster(sm, db, null);
          --- 154,239 ----
                switch( header.getColorType() )
                  {
                  case PNGHeader.GRAYSCALE_WITH_ALPHA:
          !         if( depth == 8 )
          !           {
          !             t = DataBuffer.TYPE_BYTE;
          !             db = getByteBuffer();
          !           }
          !         else
          !           {
          !             t = DataBuffer.TYPE_USHORT;
          !             db = getShortBuffer();
          !           }
          !         sm = new ComponentSampleModel(t, width, height, 2, width * 2,
          !                                       new int[]{0, 1});
          !         break;
            
                  case PNGHeader.GRAYSCALE:
          !         switch( depth )
          !           {
          !           case 16:
          !             sm = new ComponentSampleModel(DataBuffer.TYPE_USHORT,
          !                                           width, height, 1, width,
          !                                           new int[]{ 0 });
          !             db = getShortBuffer();
          !             break;
          ! 
          !           case 8:
          !             sm = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
          !                                           width, height, 1, width,
          !                                           new int[]{ 0 });
          !             db = getByteBuffer();
          !             break;
          ! 
          !           default:
          !             sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE,
          !                                                  width, height, depth);
          !             db = getByteBuffer();
          !             break;
          !           }
          !         break;
            
                  case PNGHeader.RGB:
          !         if( depth == 8 )
          !           {
          !             t = DataBuffer.TYPE_BYTE;
          !             db = getByteBuffer();
          !           }
          !         else
          !           {
          !             t = DataBuffer.TYPE_USHORT;
          !             db = getShortBuffer();
          !           }
          !         sm = new ComponentSampleModel(t, width, height, 3, 3 * width,
          !                                       new int[]{0, 1, 2});
          !         break;
            
                  case PNGHeader.RGB_WITH_ALPHA:
          !         if( depth == 8 )
          !           {
          !             t = DataBuffer.TYPE_BYTE;
          !             db = getByteBuffer();
          !           }
          !         else
          !           {
          !             t = DataBuffer.TYPE_USHORT;
          !             db = getShortBuffer();
          !           }
          ! 
          !         sm = new ComponentSampleModel(t, width, height, 4, width * 4,
          !                                       new int[]{0, 1, 2, 3});
          !         break;
          ! 
                  case PNGHeader.INDEXED:
          !         if( depth == 8 )
          !           sm = new SinglePixelPackedSampleModel(DataBuffer.TYPE_BYTE,
          !                                                 width, height,
          !                                                 new int[] {0xFF});
          !         else
          !           sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE,
          !                                                width, height, depth);
          !         db = getByteBuffer();
          !         break;
                  }
            
                return Raster.createWritableRaster(sm, db, null);
          *************** public class PNGDecoder
          *** 247,254 ****
              {
                short[] data = new short[(raster.length >> 1)];
                for( int i = 0; i < data.length; i++ )
          !       data[i] = (short)(((raster[i * 2] & 0xFF) << 8) | 
          ! 			(raster[i * 2 + 1] & 0xFF));
                return new DataBufferUShort( data, data.length );
              }
            
          --- 247,254 ----
              {
                short[] data = new short[(raster.length >> 1)];
                for( int i = 0; i < data.length; i++ )
          !       data[i] = (short)(((raster[i * 2] & 0xFF) << 8) |
          !                         (raster[i * 2 + 1] & 0xFF));
                return new DataBufferUShort( data, data.length );
              }
            
          *************** public class PNGDecoder
          *** 260,267 ****
                return new DataBufferByte( raster, raster.length );
              }
            
          !   public ColorModel getColorModel( ColorSpace cs, 
          ! 				   int colorType, int depth )
              {
                int[] bits;
                boolean hasAlpha = false;
          --- 260,267 ----
                return new DataBufferByte( raster, raster.length );
              }
            
          !   public ColorModel getColorModel( ColorSpace cs,
          !                                    int colorType, int depth )
              {
                int[] bits;
                boolean hasAlpha = false;
          *************** public class PNGDecoder
          *** 270,318 ****
                switch( colorType )
                  {
                  case PNGHeader.GRAYSCALE_WITH_ALPHA:
          ! 	if( cs == null )
          ! 	  cs = ColorSpace.getInstance( ColorSpace.CS_GRAY );
          ! 	hasAlpha = true;
          ! 	bits = new int[]{ depth, depth };
          ! 	break;
          ! 	
                  case PNGHeader.RGB:
          ! 	bits = new int[]{ depth, depth, depth };
          ! 	break;
            
                  case PNGHeader.RGB_WITH_ALPHA:
          ! 	hasAlpha = true;
          ! 	bits = new int[]{ depth, depth, depth, depth };
          ! 	break;
            
                  case PNGHeader.GRAYSCALE:
          ! 	if( depth < 8 )
          ! 	  return grayPalette( depth );
            
          ! 	if( cs == null )
          ! 	  cs = ColorSpace.getInstance( ColorSpace.CS_GRAY );
          ! 	bits = new int[]{ depth };
          ! 	break;
            
                  default:
                  case PNGHeader.INDEXED:
          ! 	return null; // Handled by the palette chunk.
                  }
            
                if( cs == null )
                  cs = ColorSpace.getInstance( ColorSpace.CS_sRGB );
            
            
          !     return new ComponentColorModel(cs, bits, hasAlpha, false, 
          ! 				   (hasAlpha ? 
          ! 				    ComponentColorModel.TRANSLUCENT : 
          ! 				    ComponentColorModel.OPAQUE), 
          ! 				   ((depth == 16) ? DataBuffer.TYPE_USHORT : 
          ! 				    DataBuffer.TYPE_BYTE));
              }
            
              private IndexColorModel grayPalette(int depth)
          !   { 
                byte[] c = new byte[ (1 << depth) ];
                for(int i = 0; i < c.length; i++)
                  c[i] = (byte)(255.0 * (((double)i) / ((double)c.length - 1.0)));
          --- 270,318 ----
                switch( colorType )
                  {
                  case PNGHeader.GRAYSCALE_WITH_ALPHA:
          !         if( cs == null )
          !           cs = ColorSpace.getInstance( ColorSpace.CS_GRAY );
          !         hasAlpha = true;
          !         bits = new int[]{ depth, depth };
          !         break;
          ! 
                  case PNGHeader.RGB:
          !         bits = new int[]{ depth, depth, depth };
          !         break;
            
                  case PNGHeader.RGB_WITH_ALPHA:
          !         hasAlpha = true;
          !         bits = new int[]{ depth, depth, depth, depth };
          !         break;
            
                  case PNGHeader.GRAYSCALE:
          !         if( depth < 8 )
          !           return grayPalette( depth );
            
          !         if( cs == null )
          !           cs = ColorSpace.getInstance( ColorSpace.CS_GRAY );
          !         bits = new int[]{ depth };
          !         break;
            
                  default:
                  case PNGHeader.INDEXED:
          !         return null; // Handled by the palette chunk.
                  }
            
                if( cs == null )
                  cs = ColorSpace.getInstance( ColorSpace.CS_sRGB );
            
            
          !     return new ComponentColorModel(cs, bits, hasAlpha, false,
          !                                    (hasAlpha ?
          !                                     ComponentColorModel.TRANSLUCENT :
          !                                     ComponentColorModel.OPAQUE),
          !                                    ((depth == 16) ? DataBuffer.TYPE_USHORT :
          !                                     DataBuffer.TYPE_BYTE));
              }
            
              private IndexColorModel grayPalette(int depth)
          !   {
                byte[] c = new byte[ (1 << depth) ];
                for(int i = 0; i < c.length; i++)
                  c[i] = (byte)(255.0 * (((double)i) / ((double)c.length - 1.0)));
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java	Tue Jan 11 19:46:05 2011
          *************** import java.awt.image.DataBufferUShort;
          *** 49,55 ****
            import java.awt.image.IndexColorModel;
            import java.awt.image.WritableRaster;
            
          ! public class PNGEncoder 
            {
              /**
               * The default data chunk size. 8 kb.
          --- 49,55 ----
            import java.awt.image.IndexColorModel;
            import java.awt.image.WritableRaster;
            
          ! public class PNGEncoder
            {
              /**
               * The default data chunk size. 8 kb.
          *************** public class PNGEncoder 
          *** 65,71 ****
              public PNGEncoder( BufferedImage bi ) throws PNGException
              {
                ColorModel c = bi.getColorModel();
          !     int width = bi.getWidth(); 
                int height = bi.getHeight();
                int depth = 0;
                int colorType;
          --- 65,71 ----
              public PNGEncoder( BufferedImage bi ) throws PNGException
              {
                ColorModel c = bi.getColorModel();
          !     int width = bi.getWidth();
                int height = bi.getHeight();
                int depth = 0;
                int colorType;
          *************** public class PNGEncoder 
          *** 73,121 ****
            
                if( c instanceof IndexColorModel )
                  {
          ! 	colorType = PNGHeader.INDEXED;
          ! 	int n = ((IndexColorModel)c).getMapSize();
          ! 	if( n <= 2 )
          ! 	  depth = 1;
          ! 	else if( n <= 4 )
          ! 	  depth = 2;
          ! 	else if( n <= 16 )
          ! 	  depth = 4;
          ! 	else if( n <= 256 )
          ! 	  depth = 8;
          ! 	else
          ! 	  throw new PNGException("Depth must be <= 8 bits for indexed color.");
          ! 	palette = new PNGPalette( ((IndexColorModel)c) );
                  }
                else
          !       { 
          ! 	ColorSpace cs = c.getColorSpace();
          ! 	ColorSpace grayCS = ColorSpace.getInstance( ColorSpace.CS_GRAY );
          ! 	if( cs == grayCS || bi.getType() == BufferedImage.TYPE_BYTE_GRAY 
          ! 	    || bi.getType() == BufferedImage.TYPE_USHORT_GRAY )
          ! 	  colorType = c.hasAlpha() ? PNGHeader.GRAYSCALE_WITH_ALPHA : 
          ! 	    PNGHeader.GRAYSCALE;
          ! 	else
          ! 	  colorType = c.hasAlpha() ? PNGHeader.RGB_WITH_ALPHA : PNGHeader.RGB;
          ! 	// Figure out the depth
          ! 	int[] bits = c.getComponentSize();
          ! 	depth = bits[0];
          ! 	for(int i = 1; i < bits.length; i++ )
          ! 	  if( bits[i] > depth ) depth = bits[i];
          ! 	if( (cs != grayCS && !cs.isCS_sRGB()) && cs instanceof ICC_ColorSpace )
          ! 	  profile = new PNGICCProfile( ((ICC_ColorSpace)cs).getProfile() );
                  }
            
                header = new PNGHeader(width, height, depth, colorType, interlace);
            
          !     stride = header.getScanlineStride(); // scanline stride 
                bpp = header.bytesPerPixel(); // bytes per pixel
                getRawData( bi );
              }
            
              /**
               * Returns the generated header.
          !    */ 
              public PNGHeader getHeader()
              {
                return header;
          --- 73,121 ----
            
                if( c instanceof IndexColorModel )
                  {
          !         colorType = PNGHeader.INDEXED;
          !         int n = ((IndexColorModel)c).getMapSize();
          !         if( n <= 2 )
          !           depth = 1;
          !         else if( n <= 4 )
          !           depth = 2;
          !         else if( n <= 16 )
          !           depth = 4;
          !         else if( n <= 256 )
          !           depth = 8;
          !         else
          !           throw new PNGException("Depth must be <= 8 bits for indexed color.");
          !         palette = new PNGPalette( ((IndexColorModel)c) );
                  }
                else
          !       {
          !         ColorSpace cs = c.getColorSpace();
          !         ColorSpace grayCS = ColorSpace.getInstance( ColorSpace.CS_GRAY );
          !         if( cs == grayCS || bi.getType() == BufferedImage.TYPE_BYTE_GRAY
          !             || bi.getType() == BufferedImage.TYPE_USHORT_GRAY )
          !           colorType = c.hasAlpha() ? PNGHeader.GRAYSCALE_WITH_ALPHA :
          !             PNGHeader.GRAYSCALE;
          !         else
          !           colorType = c.hasAlpha() ? PNGHeader.RGB_WITH_ALPHA : PNGHeader.RGB;
          !         // Figure out the depth
          !         int[] bits = c.getComponentSize();
          !         depth = bits[0];
          !         for(int i = 1; i < bits.length; i++ )
          !           if( bits[i] > depth ) depth = bits[i];
          !         if( (cs != grayCS && !cs.isCS_sRGB()) && cs instanceof ICC_ColorSpace )
          !           profile = new PNGICCProfile( ((ICC_ColorSpace)cs).getProfile() );
                  }
            
                header = new PNGHeader(width, height, depth, colorType, interlace);
            
          !     stride = header.getScanlineStride(); // scanline stride
                bpp = header.bytesPerPixel(); // bytes per pixel
                getRawData( bi );
              }
            
              /**
               * Returns the generated header.
          !    */
              public PNGHeader getHeader()
              {
                return header;
          *************** public class PNGEncoder 
          *** 123,129 ****
            
              /**
               * Returns the generated palette.
          !    */ 
              public PNGPalette getPalette()
              {
                return palette;
          --- 123,129 ----
            
              /**
               * Returns the generated palette.
          !    */
              public PNGPalette getPalette()
              {
                return palette;
          *************** public class PNGEncoder 
          *** 131,137 ****
            
              /**
               * Returns the associated ICC profile, if any.
          !    */ 
              public PNGICCProfile getProfile()
              {
                return profile;
          --- 131,137 ----
            
              /**
               * Returns the associated ICC profile, if any.
          !    */
              public PNGICCProfile getProfile()
              {
                return profile;
          *************** public class PNGEncoder 
          *** 151,179 ****
                byte filterByte = PNGFilter.FILTER_NONE;
                for( int i = 0; i < header.getHeight(); i++)
                  {
          ! 	byte[] scanline = new byte[ stride ]; 
          ! 	System.arraycopy(rawData, (i * stride), scanline, 0, stride);
          ! 	if( useFilter && i > 0)
          ! 	  filterByte = PNGFilter.chooseFilter( scanline, lastScanline, bpp);
          ! 	
          ! 	byte[] filtered = PNGFilter.filterScanline( filterByte, scanline, 
          ! 						    lastScanline, bpp );
          ! 	data[i * (stride + 1)] = filterByte;
          ! 	System.arraycopy(filtered, 0, data, 1 + (i * (stride + 1)), stride);
            
          ! 	lastScanline = scanline;
                  }
            
          !     deflater.setInput( data ); 
                deflater.finish();
            
                PNGData chunk;
                Vector chunks = new Vector();
                do
                  {
          ! 	chunk = new PNGData( defaultChunkSize );
          ! 	chunk.deflateToChunk( deflater );
          ! 	chunks.add( chunk );
                  }
                while( chunk.chunkFull() );
                chunk.shrink(); // Shrink the last chunk.
          --- 151,179 ----
                byte filterByte = PNGFilter.FILTER_NONE;
                for( int i = 0; i < header.getHeight(); i++)
                  {
          !         byte[] scanline = new byte[ stride ];
          !         System.arraycopy(rawData, (i * stride), scanline, 0, stride);
          !         if( useFilter && i > 0)
          !           filterByte = PNGFilter.chooseFilter( scanline, lastScanline, bpp);
            
          !         byte[] filtered = PNGFilter.filterScanline( filterByte, scanline,
          !                                                     lastScanline, bpp );
          !         data[i * (stride + 1)] = filterByte;
          !         System.arraycopy(filtered, 0, data, 1 + (i * (stride + 1)), stride);
          ! 
          !         lastScanline = scanline;
                  }
            
          !     deflater.setInput( data );
                deflater.finish();
            
                PNGData chunk;
                Vector chunks = new Vector();
                do
                  {
          !         chunk = new PNGData( defaultChunkSize );
          !         chunk.deflateToChunk( deflater );
          !         chunks.add( chunk );
                  }
                while( chunk.chunkFull() );
                chunk.shrink(); // Shrink the last chunk.
          *************** public class PNGEncoder 
          *** 190,217 ****
                rawData = new byte[ stride * header.getHeight() ];
                if( header.isIndexed() )
                  {
          ! 	DataBuffer db = raster.getDataBuffer();
          ! 	if( !( db instanceof DataBufferByte ) )
          ! 	  throw new PNGException("Unexpected DataBuffer for an IndexColorModel.");
          ! 	byte[] data = ((DataBufferByte)db).getData();
          ! 	for(int i = 0; i < header.getHeight(); i++ )
          ! 	  System.arraycopy( data, i * stride, rawData, i * stride, stride );
          ! 	return;
                  }
            
                if( header.getDepth() == 16 )
                  {
          ! 	DataBuffer db = raster.getDataBuffer();
          ! 	if( !( db instanceof DataBufferUShort ) )
          ! 	  throw new PNGException("Unexpected DataBuffer for 16-bit.");
          ! 	short[] data = ((DataBufferUShort)db).getData();
          ! 	for(int i = 0; i < header.getHeight(); i++ )
          ! 	  for(int j = 0; j < ( stride >> 1); j++)
          ! 	    {
          ! 	      rawData[ j * 2 + i * stride ] = (byte)((data[j + i * (stride >> 1 )] & 0xFF00) >> 8);
          ! 	      rawData[ j * 2 + i * stride + 1 ] = (byte)(data[j + i * (stride >> 1 )] & 0xFF);
          ! 	    }
          ! 	return;
                  }
            
                int size = ( header.getColorType() == PNGHeader.RGB_WITH_ALPHA ) ? 4 : 3;
          --- 190,217 ----
                rawData = new byte[ stride * header.getHeight() ];
                if( header.isIndexed() )
                  {
          !         DataBuffer db = raster.getDataBuffer();
          !         if( !( db instanceof DataBufferByte ) )
          !           throw new PNGException("Unexpected DataBuffer for an IndexColorModel.");
          !         byte[] data = ((DataBufferByte)db).getData();
          !         for(int i = 0; i < header.getHeight(); i++ )
          !           System.arraycopy( data, i * stride, rawData, i * stride, stride );
          !         return;
                  }
            
                if( header.getDepth() == 16 )
                  {
          !         DataBuffer db = raster.getDataBuffer();
          !         if( !( db instanceof DataBufferUShort ) )
          !           throw new PNGException("Unexpected DataBuffer for 16-bit.");
          !         short[] data = ((DataBufferUShort)db).getData();
          !         for(int i = 0; i < header.getHeight(); i++ )
          !           for(int j = 0; j < ( stride >> 1); j++)
          !             {
          !               rawData[ j * 2 + i * stride ] = (byte)((data[j + i * (stride >> 1 )] & 0xFF00) >> 8);
          !               rawData[ j * 2 + i * stride + 1 ] = (byte)(data[j + i * (stride >> 1 )] & 0xFF);
          !             }
          !         return;
                  }
            
                int size = ( header.getColorType() == PNGHeader.RGB_WITH_ALPHA ) ? 4 : 3;
          *************** public class PNGEncoder 
          *** 221,233 ****
            
                for( int i = 0; i < width * height; i++ )
                  {
          ! 	rawData[ i * size ] = (byte)((pixels[i] & 0xFF0000) >> 16);
          ! 	rawData[ i * size + 1 ] = (byte)((pixels[i] & 0xFF00) >> 8);
          ! 	rawData[ i * size + 2 ] = (byte)(pixels[i] & 0xFF);
                  }
            
                if( size == 4 )
                  for( int i = 0; i < width * height; i++ )
          ! 	rawData[ i * size + 3 ] = (byte)((pixels[i] & 0xFF000000) >> 24);
              }
            }
          --- 221,233 ----
            
                for( int i = 0; i < width * height; i++ )
                  {
          !         rawData[ i * size ] = (byte)((pixels[i] & 0xFF0000) >> 16);
          !         rawData[ i * size + 1 ] = (byte)((pixels[i] & 0xFF00) >> 8);
          !         rawData[ i * size + 2 ] = (byte)(pixels[i] & 0xFF);
                  }
            
                if( size == 4 )
                  for( int i = 0; i < width * height; i++ )
          !         rawData[ i * size + 3 ] = (byte)((pixels[i] & 0xFF000000) >> 24);
              }
            }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGException.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGException.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGException.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGException.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* PNGException.java -- 
               Copyright (C) 2006 Free Software Foundation
            
            This file is part of GNU Classpath.
          --- 1,4 ----
          ! /* PNGException.java --
               Copyright (C) 2006 Free Software Foundation
            
            This file is part of GNU Classpath.
          *************** package gnu.javax.imageio.png;
          *** 39,45 ****
            
            import java.io.IOException;
            
          ! public class PNGException extends IOException 
            {
              public PNGException(String msg)
              {
          --- 39,45 ----
            
            import java.io.IOException;
            
          ! public class PNGException extends IOException
            {
              public PNGException(String msg)
              {
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGFile.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGFile.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGFile.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGFile.java	Tue Jan 11 19:46:05 2011
          *************** import java.awt.image.WritableRaster;
          *** 46,52 ****
            import java.awt.image.ColorModel;
            import java.awt.color.ColorSpace;
            
          ! public class PNGFile 
            {
              /**
               * The PNG file signature.
          --- 46,52 ----
            import java.awt.image.ColorModel;
            import java.awt.color.ColorSpace;
            
          ! public class PNGFile
            {
              /**
               * The PNG file signature.
          *************** public class PNGFile 
          *** 59,65 ****
               * 0 bytes of length, the "IEND" tag and its CRC.
               */
              private static final byte[] endChunk = new byte[]
          !   { 0, 0, 0, 0, (byte)0x49, (byte)0x45, (byte)0x4E, (byte)0x44, 
                (byte)0xAE, (byte)0x42, (byte)0x60, (byte)0x82 };
            
              /**
          --- 59,65 ----
               * 0 bytes of length, the "IEND" tag and its CRC.
               */
              private static final byte[] endChunk = new byte[]
          !   { 0, 0, 0, 0, (byte)0x49, (byte)0x45, (byte)0x4E, (byte)0x44,
                (byte)0xAE, (byte)0x42, (byte)0x60, (byte)0x82 };
            
              /**
          *************** public class PNGFile 
          *** 91,97 ****
               * The encoder, if any. (Either this or the above must exist).
               */
              private PNGEncoder encoder;
          !   
              /**
               * The source of this PNG (if encoding)
               */
          --- 91,97 ----
               * The encoder, if any. (Either this or the above must exist).
               */
              private PNGEncoder encoder;
          ! 
              /**
               * The source of this PNG (if encoding)
               */
          *************** public class PNGFile 
          *** 104,110 ****
              {
                PNGChunk chunk;
                byte[] fileHdr = new byte[8];
          !     chunks = new Vector(); 
                hasPalette = false;
            
                if( in.read( fileHdr ) != 8 )
          --- 104,110 ----
              {
                PNGChunk chunk;
                byte[] fileHdr = new byte[8];
          !     chunks = new Vector();
                hasPalette = false;
            
                if( in.read( fileHdr ) != 8 )
          *************** public class PNGFile 
          *** 124,147 ****
                // Read chunks.
                do
                  {
          ! 	chunk = PNGChunk.readChunk( in, false );
          ! 	/*
          ! 	 * We could exit here or output some kind of warning.
          ! 	 * But in the meantime, we'll just silently drop invalid chunks.
          ! 	 */
          ! 	if( chunk.isValidChunk() )
          ! 	  {
          ! 	    if( chunk instanceof PNGData )
          ! 	      decoder.addData( (PNGData)chunk );
          ! 	    else // Silently ignore multiple headers, and use only the first.
          ! 	      if( chunk.getType() != PNGChunk.TYPE_END )
          ! 		{
          ! 		  chunks.add( chunk ); 
          ! 		  hasPalette |= ( chunk instanceof PNGPalette );
          ! 		}
          ! 	  }
          ! 	else
          ! 	  System.out.println("WARNING: Invalid chunk!");
                  }
                while( chunk.getType() != PNGChunk.TYPE_END );
            
          --- 124,147 ----
                // Read chunks.
                do
                  {
          !         chunk = PNGChunk.readChunk( in, false );
          !         /*
          !          * We could exit here or output some kind of warning.
          !          * But in the meantime, we'll just silently drop invalid chunks.
          !          */
          !         if( chunk.isValidChunk() )
          !           {
          !             if( chunk instanceof PNGData )
          !               decoder.addData( (PNGData)chunk );
          !             else // Silently ignore multiple headers, and use only the first.
          !               if( chunk.getType() != PNGChunk.TYPE_END )
          !                 {
          !                   chunks.add( chunk );
          !                   hasPalette |= ( chunk instanceof PNGPalette );
          !                 }
          !           }
          !         else
          !           System.out.println("WARNING: Invalid chunk!");
                  }
                while( chunk.getType() != PNGChunk.TYPE_END );
            
          *************** public class PNGFile 
          *** 163,169 ****
                chunks = new Vector();
                encoder = new PNGEncoder( bi );
                header = encoder.getHeader();
          !     if( header.isIndexed() ) 
                  chunks.add( encoder.getPalette() );
            
                // Do the compression and put the data chunks in the list.
          --- 163,169 ----
                chunks = new Vector();
                encoder = new PNGEncoder( bi );
                header = encoder.getHeader();
          !     if( header.isIndexed() )
                  chunks.add( encoder.getPalette() );
            
                // Do the compression and put the data chunks in the list.
          *************** public class PNGFile 
          *** 179,186 ****
                header.writeChunk( out );
                for( int i = 0; i < chunks.size(); i++ )
                  {
          ! 	PNGChunk chunk = ((PNGChunk)chunks.elementAt(i));
          ! 	chunk.writeChunk( out );
                  }
                out.write( endChunk );
              }
          --- 179,186 ----
                header.writeChunk( out );
                for( int i = 0; i < chunks.size(); i++ )
                  {
          !         PNGChunk chunk = ((PNGChunk)chunks.elementAt(i));
          !         chunk.writeChunk( out );
                  }
                out.write( endChunk );
              }
          *************** public class PNGFile 
          *** 194,200 ****
                  return false;
                for( int i = 0; i < 8; i++ )
                  if( signature[i] != hdr[i] )
          ! 	return false;
                return true;
              }
            
          --- 194,200 ----
                  return false;
                for( int i = 0; i < 8; i++ )
                  if( signature[i] != hdr[i] )
          !         return false;
                return true;
              }
            
          *************** public class PNGFile 
          *** 210,225 ****
                ColorModel cm;
                if( header.isIndexed() )
                  {
          ! 	PNGPalette pngp = getPalette();
          ! 	cm = pngp.getPalette( getColorSpace() );
                  }
                else
          !       cm = decoder.getColorModel( getColorSpace(), 
          ! 				  header.getColorType(), 
          ! 				  header.getDepth() );
          !     
                return new BufferedImage(cm, r, false, null);
          !   } 
            
              /**
               * Find the palette chunk and return it
          --- 210,225 ----
                ColorModel cm;
                if( header.isIndexed() )
                  {
          !         PNGPalette pngp = getPalette();
          !         cm = pngp.getPalette( getColorSpace() );
                  }
                else
          !       cm = decoder.getColorModel( getColorSpace(),
          !                                   header.getColorType(),
          !                                   header.getDepth() );
          ! 
                return new BufferedImage(cm, r, false, null);
          !   }
            
              /**
               * Find the palette chunk and return it
          *************** public class PNGFile 
          *** 228,234 ****
              {
                for(int i = 0; i < chunks.size(); i++ )
                  if( chunks.elementAt(i) instanceof PNGPalette )
          ! 	return ((PNGPalette)chunks.elementAt(i));
                return null;
              }
            
          --- 228,234 ----
              {
                for(int i = 0; i < chunks.size(); i++ )
                  if( chunks.elementAt(i) instanceof PNGPalette )
          !         return ((PNGPalette)chunks.elementAt(i));
                return null;
              }
            
          *************** public class PNGFile 
          *** 242,251 ****
                PNGGamma gamma = null;
                for(int i = 0; i < chunks.size(); i++ )
                  {
          ! 	if( chunks.elementAt(i) instanceof PNGICCProfile )
          ! 	  icc = ((PNGICCProfile)chunks.elementAt(i));
          ! 	else if(chunks.elementAt(i) instanceof PNGGamma )
          ! 	  gamma = ((PNGGamma)chunks.elementAt(i));
                  }
            
                if( icc != null )
          --- 242,251 ----
                PNGGamma gamma = null;
                for(int i = 0; i < chunks.size(); i++ )
                  {
          !         if( chunks.elementAt(i) instanceof PNGICCProfile )
          !           icc = ((PNGICCProfile)chunks.elementAt(i));
          !         else if(chunks.elementAt(i) instanceof PNGGamma )
          !           gamma = ((PNGGamma)chunks.elementAt(i));
                  }
            
                if( icc != null )
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGFilter.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGFilter.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGFilter.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGFilter.java	Tue Jan 11 19:46:05 2011
          *************** public class PNGFilter
          *** 58,73 ****
                switch( header.getColorType() )
                  {
                  case PNGHeader.INDEXED:
          ! 	return false;
          ! 	
                  case PNGHeader.GRAYSCALE:
                  case PNGHeader.RGB:
          ! 	if( header.bytesPerPixel() <= 1 )
          ! 	  return false;
                  case PNGHeader.GRAYSCALE_WITH_ALPHA:
                  case PNGHeader.RGB_WITH_ALPHA:
                  default:
          ! 	return true;
                  }
              }
            
          --- 58,73 ----
                switch( header.getColorType() )
                  {
                  case PNGHeader.INDEXED:
          !         return false;
          ! 
                  case PNGHeader.GRAYSCALE:
                  case PNGHeader.RGB:
          !         if( header.bytesPerPixel() <= 1 )
          !           return false;
                  case PNGHeader.GRAYSCALE_WITH_ALPHA:
                  case PNGHeader.RGB_WITH_ALPHA:
                  default:
          !         return true;
                  }
              }
            
          *************** public class PNGFilter
          *** 76,95 ****
               * suggested in the PNG spec.
               * @return a fiter type.
               */
          !   public static byte chooseFilter( byte[] scanline, byte[] lastScanline, 
          ! 				  int bpp)
          !     
              {
                long[] values = new long[5];
                int idx = 0;
                for( int i = 0; i < 5; i++ )
                  {
          ! 	byte[] filtered = filterScanline((byte)i, scanline, lastScanline, bpp);
          ! 	values[i] = 0;
          ! 	for(int j = 0; j < filtered.length; j++ )
          ! 	  values[i] += (int)(filtered[j] & 0xFF);
          ! 	if( values[ idx ] > values[i] )
          ! 	  idx = i;
                  }
                return (byte)idx;
              }
          --- 76,95 ----
               * suggested in the PNG spec.
               * @return a fiter type.
               */
          !   public static byte chooseFilter( byte[] scanline, byte[] lastScanline,
          !                                   int bpp)
          ! 
              {
                long[] values = new long[5];
                int idx = 0;
                for( int i = 0; i < 5; i++ )
                  {
          !         byte[] filtered = filterScanline((byte)i, scanline, lastScanline, bpp);
          !         values[i] = 0;
          !         for(int j = 0; j < filtered.length; j++ )
          !           values[i] += (int)(filtered[j] & 0xFF);
          !         if( values[ idx ] > values[i] )
          !           idx = i;
                  }
                return (byte)idx;
              }
          *************** public class PNGFilter
          *** 97,165 ****
              /**
               * Filter a scanline.
               */
          !   public static byte[] filterScanline( byte filtertype, byte[] scanline, 
          ! 				       byte[] lastScanline, int bpp)
              {
                int stride = scanline.length;
                byte[] out = new byte[ stride ];
                switch( filtertype )
                  {
                  case FILTER_SUB:
          ! 	for( int i = 0; i < bpp; i++)
          ! 	  out[ i ] = scanline[ i ];
          ! 	
          ! 	for( int i = bpp; i < stride; i++ )
          ! 	  out[i] = (byte)(scanline[ i ] - 
          ! 			  scanline[ i - bpp ]);
          ! 	break;
            
                  case FILTER_UP:
          ! 	for( int i = 0; i < stride; i++ )
          ! 	  out[ i ] = (byte)(scanline[ i ] - lastScanline[ i ]);
          ! 	break;
            
                  case FILTER_AVERAGE:
          ! 	for( int i = 0; i < bpp; i++)
          ! 	  out[ i ] = (byte)((scanline[ i ] & 0xFF) - ((lastScanline[ i ] & 0xFF) >> 1));
          ! 	for( int i = bpp; i < stride; i++ )
          ! 	  out[ i ] = (byte)((scanline[ i ] & 0xFF) - 
          ! 			    (((scanline[ i - bpp ] & 0xFF) + 
          ! 			      (lastScanline[ i ] & 0xFF)) >> 1));
          ! 	break;
            
                  case FILTER_PAETH:
          ! 	for( int i = 0; i < stride; i++ )
          ! 	  {
          ! 	    int x;
          ! 	    {
          ! 	      int a, b, c;
          ! 	      if( i >= bpp )
          ! 		{
          ! 		  a = (scanline[ i - bpp ] & 0xFF); // left
          ! 		  c = (lastScanline[ i - bpp ] & 0xFF); // upper-left
          ! 		}
          ! 	      else
          ! 		a = c = 0;
          ! 	      b = (lastScanline[ i ] & 0xFF); // up
          ! 	      
          ! 	      int p = (a + b - c);        // initial estimate
          ! 	      // distances to a, b, c
          ! 	      int pa = (p > a) ? p - a : a - p; 
          ! 	      int pb = (p > b) ? p - b : b - p; 
          ! 	      int pc = (p > c) ? p - c : c - p; 
          ! 	      // return nearest of a,b,c,
          ! 	      // breaking ties in order a,b,c.
          ! 	      if( pa <= pb && pa <= pc ) x = a;
          ! 	      else { if( pb <= pc ) x = b;
          ! 		else x = c;
          ! 	      }
          ! 	    }
          ! 	    out[ i ] = (byte)(scanline[ i ] - x);
          ! 	  }
          ! 	break;
                  default:
                  case FILTER_NONE:
          ! 	return scanline;
                  }
                return out;
              }
          --- 97,165 ----
              /**
               * Filter a scanline.
               */
          !   public static byte[] filterScanline( byte filtertype, byte[] scanline,
          !                                        byte[] lastScanline, int bpp)
              {
                int stride = scanline.length;
                byte[] out = new byte[ stride ];
                switch( filtertype )
                  {
                  case FILTER_SUB:
          !         for( int i = 0; i < bpp; i++)
          !           out[ i ] = scanline[ i ];
          ! 
          !         for( int i = bpp; i < stride; i++ )
          !           out[i] = (byte)(scanline[ i ] -
          !                           scanline[ i - bpp ]);
          !         break;
            
                  case FILTER_UP:
          !         for( int i = 0; i < stride; i++ )
          !           out[ i ] = (byte)(scanline[ i ] - lastScanline[ i ]);
          !         break;
            
                  case FILTER_AVERAGE:
          !         for( int i = 0; i < bpp; i++)
          !           out[ i ] = (byte)((scanline[ i ] & 0xFF) - ((lastScanline[ i ] & 0xFF) >> 1));
          !         for( int i = bpp; i < stride; i++ )
          !           out[ i ] = (byte)((scanline[ i ] & 0xFF) -
          !                             (((scanline[ i - bpp ] & 0xFF) +
          !                               (lastScanline[ i ] & 0xFF)) >> 1));
          !         break;
            
                  case FILTER_PAETH:
          !         for( int i = 0; i < stride; i++ )
          !           {
          !             int x;
          !             {
          !               int a, b, c;
          !               if( i >= bpp )
          !                 {
          !                   a = (scanline[ i - bpp ] & 0xFF); // left
          !                   c = (lastScanline[ i - bpp ] & 0xFF); // upper-left
          !                 }
          !               else
          !                 a = c = 0;
          !               b = (lastScanline[ i ] & 0xFF); // up
          ! 
          !               int p = (a + b - c);        // initial estimate
          !               // distances to a, b, c
          !               int pa = (p > a) ? p - a : a - p;
          !               int pb = (p > b) ? p - b : b - p;
          !               int pc = (p > c) ? p - c : c - p;
          !               // return nearest of a,b,c,
          !               // breaking ties in order a,b,c.
          !               if( pa <= pb && pa <= pc ) x = a;
          !               else { if( pb <= pc ) x = b;
          !                 else x = c;
          !               }
          !             }
          !             out[ i ] = (byte)(scanline[ i ] - x);
          !           }
          !         break;
                  default:
                  case FILTER_NONE:
          !         return scanline;
                  }
                return out;
              }
          *************** public class PNGFilter
          *** 167,174 ****
              /**
               * Unfilter a scanline.
               */
          !   public static byte[] unFilterScanline( int filtertype, byte[] scanline, 
          ! 					 byte[] lastScanline, int bpp)
              {
                int stride = scanline.length;
                byte[] out = new byte[ stride ];
          --- 167,174 ----
              /**
               * Unfilter a scanline.
               */
          !   public static byte[] unFilterScanline( int filtertype, byte[] scanline,
          !                                          byte[] lastScanline, int bpp)
              {
                int stride = scanline.length;
                byte[] out = new byte[ stride ];
          *************** public class PNGFilter
          *** 176,237 ****
                  {
            
                  case FILTER_NONE:
          ! 	System.arraycopy( scanline, 0, out, 0, stride );
          ! 	break;
          ! 	
                  case FILTER_SUB:
          ! 	for( int i = 0; i < bpp; i++)
          ! 	  out[ i ] = scanline[ i ];
          ! 	
          ! 	for( int i = bpp; i < stride; i++ )
          ! 	  out[ i ] = (byte)(scanline[ i ] + 
          ! 			    out[ i - bpp ]);
          ! 	break;
            
                  case FILTER_UP:
          ! 	for( int i = 0; i < stride; i++ )
          ! 	  out[ i ] = (byte)(scanline[ i ] + lastScanline[ i ]);
          ! 	break;
            
                  case FILTER_AVERAGE:
          ! 	for( int i = 0; i < bpp; i++)
          ! 	  out[ i ] = (byte)((scanline[ i ] & 0xFF) + ((lastScanline[ i ] & 0xFF) >> 1));
          ! 	for( int i = bpp; i < stride; i++ )
          ! 	  out[ i ] = (byte)((scanline[ i ] & 0xFF) + 
          ! 			    (((out[ i - bpp ] & 0xFF) + (lastScanline[ i ] & 0xFF)) >> 1));
          ! 	break;
            
                  case FILTER_PAETH:
          ! 	for( int i = 0; i < stride; i++ )
          ! 	  {
          ! 	    int x;
          ! 	    {
          ! 	      int a, b, c;
          ! 	      if( i >= bpp )
          ! 		{
          ! 		  a = (out[ i - bpp ] & 0xFF); // left
          ! 		  c = (lastScanline[ i - bpp ] & 0xFF); // upper-left
          ! 		}
          ! 	      else
          ! 		a = c = 0;
          ! 	      b = (lastScanline[ i ] & 0xFF); // up
          ! 	      
          ! 	      int p = (a + b - c);        // initial estimate
          ! 	      // distances to a, b, c
          ! 	      int pa = (p > a) ? p - a : a - p; 
          ! 	      int pb = (p > b) ? p - b : b - p; 
          ! 	      int pc = (p > c) ? p - c : c - p; 
          ! 	      // return nearest of a,b,c,
          ! 	      // breaking ties in order a,b,c.
          ! 	      if( pa <= pb && pa <= pc ) x = a;
          ! 	      else { if( pb <= pc ) x = b;
          ! 		else x = c;
          ! 	      }
          ! 	    }
          ! 	    out[ i ] = (byte)(scanline[ i ] + x);
          ! 	  }
          ! 	break;
                  }
                return out;
              }
          ! }
          \ No newline at end of file
          --- 176,237 ----
                  {
            
                  case FILTER_NONE:
          !         System.arraycopy( scanline, 0, out, 0, stride );
          !         break;
          ! 
                  case FILTER_SUB:
          !         for( int i = 0; i < bpp; i++)
          !           out[ i ] = scanline[ i ];
          ! 
          !         for( int i = bpp; i < stride; i++ )
          !           out[ i ] = (byte)(scanline[ i ] +
          !                             out[ i - bpp ]);
          !         break;
            
                  case FILTER_UP:
          !         for( int i = 0; i < stride; i++ )
          !           out[ i ] = (byte)(scanline[ i ] + lastScanline[ i ]);
          !         break;
            
                  case FILTER_AVERAGE:
          !         for( int i = 0; i < bpp; i++)
          !           out[ i ] = (byte)((scanline[ i ] & 0xFF) + ((lastScanline[ i ] & 0xFF) >> 1));
          !         for( int i = bpp; i < stride; i++ )
          !           out[ i ] = (byte)((scanline[ i ] & 0xFF) +
          !                             (((out[ i - bpp ] & 0xFF) + (lastScanline[ i ] & 0xFF)) >> 1));
          !         break;
            
                  case FILTER_PAETH:
          !         for( int i = 0; i < stride; i++ )
          !           {
          !             int x;
          !             {
          !               int a, b, c;
          !               if( i >= bpp )
          !                 {
          !                   a = (out[ i - bpp ] & 0xFF); // left
          !                   c = (lastScanline[ i - bpp ] & 0xFF); // upper-left
          !                 }
          !               else
          !                 a = c = 0;
          !               b = (lastScanline[ i ] & 0xFF); // up
          ! 
          !               int p = (a + b - c);        // initial estimate
          !               // distances to a, b, c
          !               int pa = (p > a) ? p - a : a - p;
          !               int pb = (p > b) ? p - b : b - p;
          !               int pc = (p > c) ? p - c : c - p;
          !               // return nearest of a,b,c,
          !               // breaking ties in order a,b,c.
          !               if( pa <= pb && pa <= pc ) x = a;
          !               else { if( pb <= pc ) x = b;
          !                 else x = c;
          !               }
          !             }
          !             out[ i ] = (byte)(scanline[ i ] + x);
          !           }
          !         break;
                  }
                return out;
              }
          ! }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGGamma.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGGamma.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGGamma.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGGamma.java	Tue Jan 11 19:46:05 2011
          *************** import java.awt.color.ColorSpace;
          *** 42,49 ****
            /**
             * A PNG gAMA (gamma) chunk.
             */
          ! public class PNGGamma extends PNGChunk 
          ! { 
              private double gamma;
            
              protected PNGGamma( int type, byte[] data, int crc ) throws PNGException
          --- 42,49 ----
            /**
             * A PNG gAMA (gamma) chunk.
             */
          ! public class PNGGamma extends PNGChunk
          ! {
              private double gamma;
            
              protected PNGGamma( int type, byte[] data, int crc ) throws PNGException
          *************** public class PNGGamma extends PNGChunk 
          *** 51,60 ****
                super( type, data, crc );
                if( data.length < 4 )
                  throw new PNGException("Unexpectedly short time chunk. ("+data.length+" bytes)");
          !     long g = ((data[0] & 0xFF) << 24) | ( (data[1] & 0xFF) << 16 ) | 
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
                gamma = (double)g;
          !     gamma = 100000.0/gamma; 
              }
            
              public PNGGamma( double g )
          --- 51,60 ----
                super( type, data, crc );
                if( data.length < 4 )
                  throw new PNGException("Unexpectedly short time chunk. ("+data.length+" bytes)");
          !     long g = ((data[0] & 0xFF) << 24) | ( (data[1] & 0xFF) << 16 ) |
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
                gamma = (double)g;
          !     gamma = 100000.0/gamma;
              }
            
              public PNGGamma( double g )
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGHeader.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGHeader.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGHeader.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGHeader.java	Tue Jan 11 19:46:05 2011
          *************** package gnu.javax.imageio.png;
          *** 40,47 ****
            /**
             * A PNG Header chunk.
             */
          ! public class PNGHeader extends PNGChunk 
          ! { 
              private int width, height, depth;
              private int colorType, compression, filter, interlace;
            
          --- 40,47 ----
            /**
             * A PNG Header chunk.
             */
          ! public class PNGHeader extends PNGChunk
          ! {
              private int width, height, depth;
              private int colorType, compression, filter, interlace;
            
          *************** public class PNGHeader extends PNGChunk 
          *** 68,78 ****
                super( type, data, crc );
                if( data.length < 13 )
                  throw new PNGException("Unexpectedly short header chunk. (" + data.length
          ! 			     + " bytes)");
            
          !     width = ((data[0] & 0xFF) << 24) | ( (data[1] & 0xFF) << 16 ) | 
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
          !     height = ((data[4] & 0xFF) << 24) | ( (data[5] & 0xFF) << 16 ) | 
                  ((data[6] & 0xFF) << 8) | (data[7] & 0xFF);
                depth = (data[8] & 0xFF);
                colorType = (data[9] & 0xFF);
          --- 68,78 ----
                super( type, data, crc );
                if( data.length < 13 )
                  throw new PNGException("Unexpectedly short header chunk. (" + data.length
          !                              + " bytes)");
            
          !     width = ((data[0] & 0xFF) << 24) | ( (data[1] & 0xFF) << 16 ) |
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
          !     height = ((data[4] & 0xFF) << 24) | ( (data[5] & 0xFF) << 16 ) |
                  ((data[6] & 0xFF) << 8) | (data[7] & 0xFF);
                depth = (data[8] & 0xFF);
                colorType = (data[9] & 0xFF);
          *************** public class PNGHeader extends PNGChunk 
          *** 85,92 ****
               * Create a PNG header chunk.
               * Warning: This trusts that the parameters are valid.
               */
          !   public PNGHeader(int width, int height, int depth, 
          ! 		   int colorType, boolean interlace)
              {
                super( TYPE_HEADER );
                data = new byte[ 13 ];
          --- 85,92 ----
               * Create a PNG header chunk.
               * Warning: This trusts that the parameters are valid.
               */
          !   public PNGHeader(int width, int height, int depth,
          !                    int colorType, boolean interlace)
              {
                super( TYPE_HEADER );
                data = new byte[ 13 ];
          *************** public class PNGHeader extends PNGChunk 
          *** 101,108 ****
                // Build the data chunk.
                byte[] a = getInt( width );
                byte[] b = getInt( height );
          !     data[0] = a[0]; data[1] = a[1]; data[2] = a[2]; data[3] = a[3]; 
          !     data[4] = b[0]; data[5] = b[1]; data[6] = b[2]; data[7] = b[3]; 
                data[8] = (byte)depth;
                data[9] = (byte)colorType;
                data[10] = (byte)compression;
          --- 101,108 ----
                // Build the data chunk.
                byte[] a = getInt( width );
                byte[] b = getInt( height );
          !     data[0] = a[0]; data[1] = a[1]; data[2] = a[2]; data[3] = a[3];
          !     data[4] = b[0]; data[5] = b[1]; data[6] = b[2]; data[7] = b[3];
                data[8] = (byte)depth;
                data[9] = (byte)colorType;
                data[10] = (byte)compression;
          *************** public class PNGHeader extends PNGChunk 
          *** 125,138 ****
                if( (colorType & 0xFFFFFFF8) != 0 || colorType == 5 || colorType == 1)
                  return false;
                // Possible valid depths are 1,2,4,8,16
          !     if( !((depth == 1) || (depth == 2) || (depth == 4) || 
          ! 	(depth == 8) || (depth == 16)) )
                  return false;
                if( colorType == INDEXED && depth == 16 )
                  return false;
          !     if( ( colorType == RGB || colorType == GRAYSCALE_WITH_ALPHA || 
          ! 	  colorType == RGB_WITH_ALPHA ) &&
          ! 	depth < 8 )
                  return false;
                // Only compression and filter methods zero are defined
                if( compression != 0 || filter != 0 )
          --- 125,138 ----
                if( (colorType & 0xFFFFFFF8) != 0 || colorType == 5 || colorType == 1)
                  return false;
                // Possible valid depths are 1,2,4,8,16
          !     if( !((depth == 1) || (depth == 2) || (depth == 4) ||
          !         (depth == 8) || (depth == 16)) )
                  return false;
                if( colorType == INDEXED && depth == 16 )
                  return false;
          !     if( ( colorType == RGB || colorType == GRAYSCALE_WITH_ALPHA ||
          !           colorType == RGB_WITH_ALPHA ) &&
          !         depth < 8 )
                  return false;
                // Only compression and filter methods zero are defined
                if( compression != 0 || filter != 0 )
          *************** public class PNGHeader extends PNGChunk 
          *** 153,159 ****
              }
            
              /**
          !    * Returns true if this PNG is grayscale 
               */
              public boolean isGrayscale()
              {
          --- 153,159 ----
              }
            
              /**
          !    * Returns true if this PNG is grayscale
               */
              public boolean isGrayscale()
              {
          *************** public class PNGHeader extends PNGChunk 
          *** 176,182 ****
                return (interlace != 0);
              }
            
          !   /** 
               * Returns the number of bytes per pixel.
               */
              public int bytesPerPixel()
          --- 176,182 ----
                return (interlace != 0);
              }
            
          !   /**
               * Returns the number of bytes per pixel.
               */
              public int bytesPerPixel()
          *************** public class PNGHeader extends PNGChunk 
          *** 184,201 ****
                switch( colorType )
                  {
                  case GRAYSCALE_WITH_ALPHA:
          ! 	return ((depth * 2) >> 3);
                  case RGB:
          ! 	return ((depth * 3) >> 3);
                  case RGB_WITH_ALPHA:
          ! 	return ((depth * 4) >> 3);
            
                  default:
                  case GRAYSCALE:
                  case INDEXED:
          ! 	int i = (depth >> 3);
          ! 	if( i > 0 ) return i;
          ! 	return 1; // if bytes per pixel < 1, return 1 anyway.
                  }
              }
            
          --- 184,201 ----
                switch( colorType )
                  {
                  case GRAYSCALE_WITH_ALPHA:
          !         return ((depth * 2) >> 3);
                  case RGB:
          !         return ((depth * 3) >> 3);
                  case RGB_WITH_ALPHA:
          !         return ((depth * 4) >> 3);
            
                  default:
                  case GRAYSCALE:
                  case INDEXED:
          !         int i = (depth >> 3);
          !         if( i > 0 ) return i;
          !         return 1; // if bytes per pixel < 1, return 1 anyway.
                  }
              }
            
          *************** public class PNGHeader extends PNGChunk 
          *** 208,227 ****
                switch( colorType )
                  {
                  case GRAYSCALE:
          ! 	nBits = width * depth;
          ! 	break;
                  case RGB:
          ! 	nBits = width * depth * 3;
          ! 	break;
                  case INDEXED:
          ! 	nBits = depth * width;
          ! 	break;
                  case GRAYSCALE_WITH_ALPHA:
          ! 	nBits = depth * width * 2;
          ! 	break;
                  case RGB_WITH_ALPHA:
          ! 	nBits = depth * width * 4;
          ! 	break;
                  }
                // Round up number of bits to the nearest byte
                if( (nBits & 0x07) != 0 )
          --- 208,227 ----
                switch( colorType )
                  {
                  case GRAYSCALE:
          !         nBits = width * depth;
          !         break;
                  case RGB:
          !         nBits = width * depth * 3;
          !         break;
                  case INDEXED:
          !         nBits = depth * width;
          !         break;
                  case GRAYSCALE_WITH_ALPHA:
          !         nBits = depth * width * 2;
          !         break;
                  case RGB_WITH_ALPHA:
          !         nBits = depth * width * 4;
          !         break;
                  }
                // Round up number of bits to the nearest byte
                if( (nBits & 0x07) != 0 )
          *************** public class PNGHeader extends PNGChunk 
          *** 232,248 ****
            
              public int getWidth()
              {
          !     return width; 
              }
          !   
              public int getHeight()
          !   { 
          !     return height; 
              }
            
              public int getDepth()
          !   { 
          !     return depth; 
              }
            
              /**
          --- 232,248 ----
            
              public int getWidth()
              {
          !     return width;
              }
          ! 
              public int getHeight()
          !   {
          !     return height;
              }
            
              public int getDepth()
          !   {
          !     return depth;
              }
            
              /**
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGICCProfile.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGICCProfile.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGICCProfile.java	Sun Jun  3 23:18:43 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGICCProfile.java	Tue Jan 11 19:46:05 2011
          *************** import java.util.zip.Deflater;
          *** 49,62 ****
            /**
             * A PNG iCCP (ICC Profile) chunk.
             */
          ! public class PNGICCProfile extends PNGChunk 
          ! { 
              private String name;
              private ICC_Profile profile;
              // A generic profile name to use "ICC Profile"
              private static final byte[] genericName = new byte[]
              { 0x49, 0x43, 0x43, 0x20, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65 };
          !   
              protected PNGICCProfile( int type, byte[] data, int crc ) throws PNGException
              {
                super( type, data, crc );
          --- 49,62 ----
            /**
             * A PNG iCCP (ICC Profile) chunk.
             */
          ! public class PNGICCProfile extends PNGChunk
          ! {
              private String name;
              private ICC_Profile profile;
              // A generic profile name to use "ICC Profile"
              private static final byte[] genericName = new byte[]
              { 0x49, 0x43, 0x43, 0x20, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65 };
          ! 
              protected PNGICCProfile( int type, byte[] data, int crc ) throws PNGException
              {
                super( type, data, crc );
          *************** public class PNGICCProfile extends PNGCh
          *** 66,88 ****
            
                try
                  {
          ! 	name = new String(data, 0, i, "8859_1");
                  }
                catch(UnsupportedEncodingException e)
                  {
          ! 	name = ""; // shouldn't really happen.
                  }
                if( data[i++] != 0 )
                  throw new PNGException("Can't handle nonzero compression types with iCCP chunks.");
                try
                  {
          ! 	ByteArrayInputStream bos = new ByteArrayInputStream( data, i, 
          ! 							     data.length - i );
          ! 	profile = ICC_Profile.getInstance( new InflaterInputStream( bos ) );
                  }
                catch(IOException ioe)
                  {
          ! 	throw new PNGException("Couldn't read iCCP profile chunk.");
                  }
                System.out.println("Got profile:"+profile);
              }
          --- 66,88 ----
            
                try
                  {
          !         name = new String(data, 0, i, "8859_1");
                  }
                catch(UnsupportedEncodingException e)
                  {
          !         name = ""; // shouldn't really happen.
                  }
                if( data[i++] != 0 )
                  throw new PNGException("Can't handle nonzero compression types with iCCP chunks.");
                try
                  {
          !         ByteArrayInputStream bos = new ByteArrayInputStream( data, i,
          !                                                              data.length - i );
          !         profile = ICC_Profile.getInstance( new InflaterInputStream( bos ) );
                  }
                catch(IOException ioe)
                  {
          !         throw new PNGException("Couldn't read iCCP profile chunk.");
                  }
                System.out.println("Got profile:"+profile);
              }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGImageReader.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGImageReader.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGImageReader.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGImageReader.java	Tue Jan 11 19:46:05 2011
          *************** public class PNGImageReader
          *** 162,170 ****
               *
               * @see ImageReader#setInput(Object, boolean, boolean)
               */
          !   public void setInput(Object input, 
          !                        boolean seekForwardOnly, 
          !                        boolean ignoreMetadata) 
              {
                super.setInput(input, seekForwardOnly, ignoreMetadata);
                if (! (input instanceof InputStream || input instanceof ImageInputStream))
          --- 162,170 ----
               *
               * @see ImageReader#setInput(Object, boolean, boolean)
               */
          !   public void setInput(Object input,
          !                        boolean seekForwardOnly,
          !                        boolean ignoreMetadata)
              {
                super.setInput(input, seekForwardOnly, ignoreMetadata);
                if (! (input instanceof InputStream || input instanceof ImageInputStream))
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGPalette.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGPalette.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGPalette.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGPalette.java	Tue Jan 11 19:46:05 2011
          *************** import java.awt.image.IndexColorModel;
          *** 43,50 ****
            /**
             * A PNG Palette chunk.
             */
          ! public class PNGPalette extends PNGChunk 
          ! { 
              private int[] red,green,blue;
            
              protected PNGPalette( int type, byte[] data, int crc ) throws PNGException
          --- 43,50 ----
            /**
             * A PNG Palette chunk.
             */
          ! public class PNGPalette extends PNGChunk
          ! {
              private int[] red,green,blue;
            
              protected PNGPalette( int type, byte[] data, int crc ) throws PNGException
          *************** public class PNGPalette extends PNGChunk
          *** 62,70 ****
                blue = new int[ nEntries ];
                for( int i = 0; i < nEntries; i++ )
                  {
          ! 	red[i] = (data[ i * 3 ] & 0xFF);
          ! 	green[i] = (data[ i * 3 + 1 ] & 0xFF);
          ! 	blue[i] = (data[ i * 3 + 2] & 0xFF);
                  }
              }
            
          --- 62,70 ----
                blue = new int[ nEntries ];
                for( int i = 0; i < nEntries; i++ )
                  {
          !         red[i] = (data[ i * 3 ] & 0xFF);
          !         green[i] = (data[ i * 3 + 1 ] & 0xFF);
          !         blue[i] = (data[ i * 3 + 2] & 0xFF);
                  }
              }
            
          *************** public class PNGPalette extends PNGChunk
          *** 78,86 ****
                blue = new int[ n ];
                for(int i = 0; i < n; i++ )
                  {
          ! 	red[i] = data[i * 3] = (byte)cm.getRed(i);
          ! 	green[i] = data[i * 3 + 1] = (byte)cm.getGreen(i);
          ! 	blue[i] = data[i * 3 + 2] = (byte)cm.getBlue(i);
                  }
              }
            
          --- 78,86 ----
                blue = new int[ n ];
                for(int i = 0; i < n; i++ )
                  {
          !         red[i] = data[i * 3] = (byte)cm.getRed(i);
          !         green[i] = data[i * 3 + 1] = (byte)cm.getGreen(i);
          !         blue[i] = data[i * 3 + 2] = (byte)cm.getBlue(i);
                  }
              }
            
          *************** public class PNGPalette extends PNGChunk
          *** 93,119 ****
            
                if( cs == null )
                  {
          ! 	for(int i = 0; i < nc; i ++ )
          ! 	  {
          ! 	    r[i] = (byte)red[i];
          ! 	    g[i] = (byte)green[i];
          ! 	    b[i] = (byte)blue[i];
          ! 	  }
                  }
                else
                  {
          ! 	for(int i = 0; i < nc; i ++ )
          ! 	  {
          ! 	    float[] in = new float[3];
          ! 	    in[0] = (((float)red[i]) / 255f);
          ! 	    in[1] = (((float)green[i]) / 255f);
          ! 	    in[2] = (((float)blue[i]) / 255f);
          ! 	    float[] out = cs.toRGB( in );
          ! 	    r[i] = (byte)( Math.round(out[0] * 255.0) );
          ! 	    g[i] = (byte)( Math.round(out[1] * 255.0) );
          ! 	    b[i] = (byte)( Math.round(out[2] * 255.0) );
          ! 	  }
          !       }	
                return new IndexColorModel(8, nc, r, g, b);
              }
            
          --- 93,119 ----
            
                if( cs == null )
                  {
          !         for(int i = 0; i < nc; i ++ )
          !           {
          !             r[i] = (byte)red[i];
          !             g[i] = (byte)green[i];
          !             b[i] = (byte)blue[i];
          !           }
                  }
                else
                  {
          !         for(int i = 0; i < nc; i ++ )
          !           {
          !             float[] in = new float[3];
          !             in[0] = (((float)red[i]) / 255f);
          !             in[1] = (((float)green[i]) / 255f);
          !             in[2] = (((float)blue[i]) / 255f);
          !             float[] out = cs.toRGB( in );
          !             r[i] = (byte)( Math.round(out[0] * 255.0) );
          !             g[i] = (byte)( Math.round(out[1] * 255.0) );
          !             b[i] = (byte)( Math.round(out[2] * 255.0) );
          !           }
          !       }
                return new IndexColorModel(8, nc, r, g, b);
              }
            
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGPhys.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGPhys.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGPhys.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGPhys.java	Tue Jan 11 19:46:05 2011
          *************** package gnu.javax.imageio.png;
          *** 40,47 ****
            /**
             * A PNG "pHYS" chunk - pixel physical dimensions
             */
          ! public class PNGPhys extends PNGChunk 
          ! { 
              long x, y;
              double ratio;
              boolean usesRatio;
          --- 40,47 ----
            /**
             * A PNG "pHYS" chunk - pixel physical dimensions
             */
          ! public class PNGPhys extends PNGChunk
          ! {
              long x, y;
              double ratio;
              boolean usesRatio;
          *************** public class PNGPhys extends PNGChunk 
          *** 51,64 ****
                super( type, data, crc );
                if( data.length < 9 )
                  throw new PNGException("Unexpected size of pHYS chunk.");
          !     x = ((data[0] & 0xFF) << 24) | ( (data[1] & 0xFF) << 16 ) | 
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
          !     y = ((data[4] & 0xFF) << 24) | ( (data[5] & 0xFF) << 16 ) | 
                  ((data[6] & 0xFF) << 8) | (data[7] & 0xFF);
                if(data[8] == 0)
                  {
          ! 	ratio = ((double)x)/((double)y);
          ! 	usesRatio = true;
                  }
              }
            
          --- 51,64 ----
                super( type, data, crc );
                if( data.length < 9 )
                  throw new PNGException("Unexpected size of pHYS chunk.");
          !     x = ((data[0] & 0xFF) << 24) | ( (data[1] & 0xFF) << 16 ) |
                  ((data[2] & 0xFF) << 8) | (data[3] & 0xFF);
          !     y = ((data[4] & 0xFF) << 24) | ( (data[5] & 0xFF) << 16 ) |
                  ((data[6] & 0xFF) << 8) | (data[7] & 0xFF);
                if(data[8] == 0)
                  {
          !         ratio = ((double)x)/((double)y);
          !         usesRatio = true;
                  }
              }
            
          *************** public class PNGPhys extends PNGChunk 
          *** 71,83 ****
            
                if( ratio < 1.0 )
                  {
          ! 	y = 0xFFFFFFFF;
          ! 	x = (long)(0xFFFFFFFFL * ratio);
                  }
                else
                  {
          ! 	x = 0xFFFFFFFF;
          ! 	y = (long)(0xFFFFFFFFL * ratio);
                  }
                makeData();
              }
          --- 71,83 ----
            
                if( ratio < 1.0 )
                  {
          !         y = 0xFFFFFFFF;
          !         x = (long)(0xFFFFFFFFL * ratio);
                  }
                else
                  {
          !         x = 0xFFFFFFFF;
          !         y = (long)(0xFFFFFFFFL * ratio);
                  }
                makeData();
              }
          *************** public class PNGPhys extends PNGChunk 
          *** 96,103 ****
                data = new byte[ 9 ];
                byte[] a = getInt( (int)x );
                byte[] b = getInt( (int)y );
          !     data[0] = a[0]; data[1] = a[1]; data[2] = a[2]; data[3] = a[3]; 
          !     data[4] = b[0]; data[5] = b[1]; data[6] = b[2]; data[7] = b[3]; 
                data[7] = (usesRatio) ? 0 : (byte)0xFF;
              }
            
          --- 96,103 ----
                data = new byte[ 9 ];
                byte[] a = getInt( (int)x );
                byte[] b = getInt( (int)y );
          !     data[0] = a[0]; data[1] = a[1]; data[2] = a[2]; data[3] = a[3];
          !     data[4] = b[0]; data[5] = b[1]; data[6] = b[2]; data[7] = b[3];
                data[7] = (usesRatio) ? 0 : (byte)0xFF;
              }
            
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGTime.java gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGTime.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/imageio/png/PNGTime.java	Sat Jul 29 18:39:18 2006
          --- gcc-4.6.0/libjava/classpath/gnu/javax/imageio/png/PNGTime.java	Tue Jan 11 19:46:05 2011
          *************** import java.util.Date;
          *** 42,49 ****
            /**
             * A PNG tIME chunk.
             */
          ! public class PNGTime extends PNGChunk 
          ! { 
              private Date date;
            
              protected PNGTime( int type, byte[] data, int crc ) throws PNGException
          --- 42,49 ----
            /**
             * A PNG tIME chunk.
             */
          ! public class PNGTime extends PNGChunk
          ! {
              private Date date;
            
              protected PNGTime( int type, byte[] data, int crc ) throws PNGException
          *************** public class PNGTime extends PNGChunk 
          *** 55,61 ****
                // PNG value is absolute (2006, not 106 or 06), java is from 1900.
                int year = ( (data[0] & 0xFF) << 8 ) | (data[1] & 0xFF);
                int month = (data[2] & 0xFF); // java counts from 0. PNG from 1.
          !     int day = (data[3] & 0xFF); 
                int hour = (data[4] & 0xFF);
                int minute = (data[5] & 0xFF);
                int second = (data[6] & 0xFF);
          --- 55,61 ----
                // PNG value is absolute (2006, not 106 or 06), java is from 1900.
                int year = ( (data[0] & 0xFF) << 8 ) | (data[1] & 0xFF);
                int month = (data[2] & 0xFF); // java counts from 0. PNG from 1.
          !     int day = (data[3] & 0xFF);
                int hour = (data[4] & 0xFF);
                int minute = (data[5] & 0xFF);
                int second = (data[6] & 0xFF);
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/management/ListenerData.java gcc-4.6.0/libjava/classpath/gnu/javax/management/ListenerData.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/management/ListenerData.java	Fri Feb 16 13:51:04 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/management/ListenerData.java	Tue Jan 11 19:46:05 2011
          *************** public class ListenerData
          *** 66,72 ****
               * event occurring.
               */
              private Object passback;
          !   
              /**
               * Constructs a new {@link ListenerData} with the specified
               * listener, filter and passback object.
          --- 66,72 ----
               * event occurring.
               */
              private Object passback;
          ! 
              /**
               * Constructs a new {@link ListenerData} with the specified
               * listener, filter and passback object.
          *************** public class ListenerData
          *** 76,88 ****
               * @param passback the object to passback on an incoming event.
               */
              public ListenerData(NotificationListener listener,
          ! 		      NotificationFilter filter, Object passback)
              {
                this.listener = listener;
                this.filter = filter;
                this.passback = passback;
              }
          !   
              /**
               * Returns the listener.
               *
          --- 76,88 ----
               * @param passback the object to passback on an incoming event.
               */
              public ListenerData(NotificationListener listener,
          !                       NotificationFilter filter, Object passback)
              {
                this.listener = listener;
                this.filter = filter;
                this.passback = passback;
              }
          ! 
              /**
               * Returns the listener.
               *
          *************** public class ListenerData
          *** 92,98 ****
              {
                return listener;
              }
          !   
              /**
               * Returns the filter.
               *
          --- 92,98 ----
              {
                return listener;
              }
          ! 
              /**
               * Returns the filter.
               *
          *************** public class ListenerData
          *** 102,108 ****
              {
                return filter;
              }
          !   
              /**
               * Returns the passback object.
               *
          --- 102,108 ----
              {
                return filter;
              }
          ! 
              /**
               * Returns the passback object.
               *
          *************** public class ListenerData
          *** 112,118 ****
              {
                return passback;
              }
          !   
              /**
               * Returns true if the supplied object is an instance of
               * {@link ListenerData} and has the same listener, filter
          --- 112,118 ----
              {
                return passback;
              }
          ! 
              /**
               * Returns true if the supplied object is an instance of
               * {@link ListenerData} and has the same listener, filter
          *************** public class ListenerData
          *** 125,136 ****
              {
                if (obj instanceof ListenerData)
                  {
          ! 	ListenerData data = (ListenerData) obj;
          ! 	return (data.getListener() == listener &&
          ! 		data.getFilter() == filter &&
          ! 		data.getPassback() == passback);
                  }
                return false;
              }
          !   
            }
          --- 125,136 ----
              {
                if (obj instanceof ListenerData)
                  {
          !         ListenerData data = (ListenerData) obj;
          !         return (data.getListener() == listener &&
          !                 data.getFilter() == filter &&
          !                 data.getPassback() == passback);
                  }
                return false;
              }
          ! 
            }
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/management/Server.java gcc-4.6.0/libjava/classpath/gnu/javax/management/Server.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/management/Server.java	Tue Oct 21 17:55:01 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/management/Server.java	Tue Jan 11 19:46:05 2011
          *************** public class Server
          *** 165,178 ****
              {
                try
                  {
          ! 	DELEGATE_NAME = 
          ! 	  new ObjectName("JMImplementation:type=MBeanServerDelegate");
                  }
                catch (MalformedObjectNameException e)
                  {
          ! 	throw (Error) 
          ! 	  (new InternalError("Failed to construct " +
          ! 			     "the delegate's object name.").initCause(e));
                  }
              }
            
          --- 165,178 ----
              {
                try
                  {
          !         DELEGATE_NAME =
          !           new ObjectName("JMImplementation:type=MBeanServerDelegate");
                  }
                catch (MalformedObjectNameException e)
                  {
          !         throw (Error)
          !           (new InternalError("Failed to construct " +
          !                              "the delegate's object name.").initCause(e));
                  }
              }
            
          *************** public class Server
          *** 189,220 ****
               * @param delegate the delegate bean for this server.
               */
              public Server(String defaultDomain, MBeanServer outer,
          ! 		MBeanServerDelegate delegate)
              {
                this.defaultDomain = defaultDomain;
                this.outer = outer;
                this.delegate = delegate;
                try
                  {
          ! 	registerMBean(delegate, DELEGATE_NAME);
                  }
                catch (InstanceAlreadyExistsException e)
                  {
          ! 	throw (Error) 
          ! 	  (new InternalError("The delegate bean is " +
          ! 			     "already registered.").initCause(e));
                  }
                catch (MBeanRegistrationException e)
                  {
          ! 	throw (Error) 
          ! 	  (new InternalError("The delegate bean's preRegister " +
          ! 			     "methods threw an exception.").initCause(e));
                  }
                catch (NotCompliantMBeanException e)
                  {
          ! 	throw (Error) 
          ! 	  (new InternalError("The delegate bean is " +
          ! 			     "not compliant.").initCause(e));
                  }
              }
            
          --- 189,220 ----
               * @param delegate the delegate bean for this server.
               */
              public Server(String defaultDomain, MBeanServer outer,
          !                 MBeanServerDelegate delegate)
              {
                this.defaultDomain = defaultDomain;
                this.outer = outer;
                this.delegate = delegate;
                try
                  {
          !         registerMBean(delegate, DELEGATE_NAME);
                  }
                catch (InstanceAlreadyExistsException e)
                  {
          !         throw (Error)
          !           (new InternalError("The delegate bean is " +
          !                              "already registered.").initCause(e));
                  }
                catch (MBeanRegistrationException e)
                  {
          !         throw (Error)
          !           (new InternalError("The delegate bean's preRegister " +
          !                              "methods threw an exception.").initCause(e));
                  }
                catch (NotCompliantMBeanException e)
                  {
          !         throw (Error)
          !           (new InternalError("The delegate bean is " +
          !                              "not compliant.").initCause(e));
                  }
              }
            
          *************** public class Server
          *** 230,277 ****
               * @throws SecurityException if the action is denied.
               */
              private void checkSecurity(ObjectName name, String member,
          ! 			     String action)
              {
                SecurityManager sm = System.getSecurityManager();
                if (sm != null)
                  try
          ! 	{
          ! 	  MBeanInfo info = null;
          ! 	  if (name != null)
          ! 	    {
          ! 	      Object bean = getBean(name);
          ! 	      Method method = bean.getClass().getMethod("getMBeanInfo");
          ! 	      info = (MBeanInfo) method.invoke(bean);
          ! 	    }
          ! 	  sm.checkPermission(new MBeanPermission((info == null) ? 
          ! 						 null : info.getClassName(),
          ! 						 member, name, action));
          ! 	}
                  catch (InstanceNotFoundException e)
          ! 	{
          ! 	  throw (Error) 
          ! 	    (new InternalError("Failed to get bean.").initCause(e));
          ! 	}
                  catch (NoSuchMethodException e)
          ! 	{
          ! 	  throw (Error) 
          ! 	    (new InternalError("Failed to get bean info.").initCause(e));
          ! 	}
                  catch (IllegalAccessException e)
          ! 	{
          ! 	  throw (Error) 
          ! 	    (new InternalError("Failed to get bean info.").initCause(e));
          ! 	}
                  catch (IllegalArgumentException e)
          ! 	{
          ! 	  throw (Error) 
          ! 	    (new InternalError("Failed to get bean info.").initCause(e));
          ! 	}
                  catch (InvocationTargetException e)
          ! 	{
          ! 	  throw (Error) 
          ! 	    (new InternalError("Failed to get bean info.").initCause(e));
          ! 	}
              }
            
              /**
          --- 230,277 ----
               * @throws SecurityException if the action is denied.
               */
              private void checkSecurity(ObjectName name, String member,
          !                              String action)
              {
                SecurityManager sm = System.getSecurityManager();
                if (sm != null)
                  try
          !         {
          !           MBeanInfo info = null;
          !           if (name != null)
          !             {
          !               Object bean = getBean(name);
          !               Method method = bean.getClass().getMethod("getMBeanInfo");
          !               info = (MBeanInfo) method.invoke(bean);
          !             }
          !           sm.checkPermission(new MBeanPermission((info == null) ?
          !                                                  null : info.getClassName(),
          !                                                  member, name, action));
          !         }
                  catch (InstanceNotFoundException e)
          !         {
          !           throw (Error)
          !             (new InternalError("Failed to get bean.").initCause(e));
          !         }
                  catch (NoSuchMethodException e)
          !         {
          !           throw (Error)
          !             (new InternalError("Failed to get bean info.").initCause(e));
          !         }
                  catch (IllegalAccessException e)
          !         {
          !           throw (Error)
          !             (new InternalError("Failed to get bean info.").initCause(e));
          !         }
                  catch (IllegalArgumentException e)
          !         {
          !           throw (Error)
          !             (new InternalError("Failed to get bean info.").initCause(e));
          !         }
                  catch (InvocationTargetException e)
          !         {
          !           throw (Error)
          !             (new InternalError("Failed to get bean info.").initCause(e));
          !         }
              }
            
              /**
          *************** public class Server
          *** 288,294 ****
                ServerInfo bean = beans.get(name);
                if (bean == null)
                  throw new InstanceNotFoundException("The bean, " + name +
          ! 					  ", was not found.");
                return bean.getObject();
              }
            
          --- 288,294 ----
                ServerInfo bean = beans.get(name);
                if (bean == null)
                  throw new InstanceNotFoundException("The bean, " + name +
          !                                           ", was not found.");
                return bean.getObject();
              }
            
          *************** public class Server
          *** 322,339 ****
               *                                                      Object)
               */
              public void addNotificationListener(ObjectName name, NotificationListener listener,
          ! 				      NotificationFilter filter, Object passback)
                throws InstanceNotFoundException
              {
                Object bean = getBean(name);
                checkSecurity(name, null, "addNotificationListener");
                if (bean instanceof NotificationBroadcaster)
                  {
          ! 	NotificationBroadcaster bbean = (NotificationBroadcaster) bean;
          ! 	NotificationListener indirection = new ServerNotificationListener(bean, name,
          ! 									  listener);
          ! 	bbean.addNotificationListener(indirection, filter, passback);
          ! 	LazyListenersHolder.listeners.put(listener, indirection);
                  }
              }
            
          --- 322,339 ----
               *                                                      Object)
               */
              public void addNotificationListener(ObjectName name, NotificationListener listener,
          !                                       NotificationFilter filter, Object passback)
                throws InstanceNotFoundException
              {
                Object bean = getBean(name);
                checkSecurity(name, null, "addNotificationListener");
                if (bean instanceof NotificationBroadcaster)
                  {
          !         NotificationBroadcaster bbean = (NotificationBroadcaster) bean;
          !         NotificationListener indirection = new ServerNotificationListener(bean, name,
          !                                                                           listener);
          !         bbean.addNotificationListener(indirection, filter, passback);
          !         LazyListenersHolder.listeners.put(listener, indirection);
                  }
              }
            
          *************** public class Server
          *** 343,349 ****
               * bean.  Notifications emitted by the management bean are forwarded
               * to the listener via the server, which will convert any MBean
               * references in the source to portable {@link ObjectName}
          !    * instances.  The notification is otherwise unchanged.  
               * 

          *

          * The listener that receives notifications will be the one that is --- 343,349 ---- * bean. Notifications emitted by the management bean are forwarded * to the listener via the server, which will convert any MBean * references in the source to portable {@link ObjectName} ! * instances. The notification is otherwise unchanged. *

          *

          * The listener that receives notifications will be the one that is *************** public class Server *** 380,395 **** * Object) */ public void addNotificationListener(ObjectName name, ObjectName listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException { Object lbean = getBean(listener); if (!(lbean instanceof NotificationListener)) { ! RuntimeException e = ! new IllegalArgumentException("The supplied listener name does not " + ! "correspond to a notification listener."); ! throw new RuntimeOperationsException(e); } addNotificationListener(name, ((NotificationListener) lbean), filter, passback); } --- 380,395 ---- * Object) */ public void addNotificationListener(ObjectName name, ObjectName listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException { Object lbean = getBean(listener); if (!(lbean instanceof NotificationListener)) { ! RuntimeException e = ! new IllegalArgumentException("The supplied listener name does not " + ! "correspond to a notification listener."); ! throw new RuntimeOperationsException(e); } addNotificationListener(name, ((NotificationListener) lbean), filter, passback); } *************** public class Server *** 400,406 **** * using the default constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

          *

          * If the name supplied is null, then the bean is --- 400,406 ---- * using the default constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

          *

          * If the name supplied is null, then the bean is *************** public class Server *** 409,415 **** * of this interface will be used to obtain the name in this case. *

          *

          ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, Object[], String[]) * createMBean(className, name, (Object[]) null, * (String[]) null)} with null parameters --- 409,415 ---- * of this interface will be used to obtain the name in this case. *

          *

          ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, Object[], String[]) * createMBean(className, name, (Object[]) null, * (String[]) null)} with null parameters *************** public class Server *** 443,461 **** */ public ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException { return createMBean(className, name, (Object[]) null, (String[]) null); } ! /** *

          * Instantiates a new instance of the specified management bean * using the given constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

          *

          * If the name supplied is null, then the bean is --- 443,461 ---- */ public ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException { return createMBean(className, name, (Object[]) null, (String[]) null); } ! /** *

          * Instantiates a new instance of the specified management bean * using the given constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

          *

          * If the name supplied is null, then the bean is *************** public class Server *** 463,469 **** * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

          ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. --- 463,469 ---- * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

          ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. *************** public class Server *** 491,503 **** * and registerMBean methods. */ public ObjectInstance createMBean(String className, ObjectName name, ! Object[] params, String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException { return registerMBean(instantiate(className, params, sig), name); ! } /** *

          --- 491,503 ---- * and registerMBean methods. */ public ObjectInstance createMBean(String className, ObjectName name, ! Object[] params, String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException { return registerMBean(instantiate(className, params, sig), name); ! } /** *

          *************** public class Server *** 515,521 **** * of this interface will be used to obtain the name in this case. *

          *

          ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, ObjectName, Object[], String) * createMBean(className, name, loaderName, (Object[]) null, * (String) null)} with null parameters --- 515,521 ---- * of this interface will be used to obtain the name in this case. *

          *

          ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, ObjectName, Object[], String) * createMBean(className, name, loaderName, (Object[]) null, * (String) null)} with null parameters *************** public class Server *** 550,563 **** * and registerMBean methods. * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) */ ! public ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException { return createMBean(className, name, loaderName, (Object[]) null, ! (String[]) null); } /** --- 550,563 ---- * and registerMBean methods. * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) */ ! public ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException { return createMBean(className, name, loaderName, (Object[]) null, ! (String[]) null); } /** *************** public class Server *** 567,573 **** * under the supplied name. The class is loaded using the * given class loader. If this argument is null, * then the same class loader as was used to load the server ! * is used. *

          *

          * If the name supplied is null, then the bean is --- 567,573 ---- * under the supplied name. The class is loaded using the * given class loader. If this argument is null, * then the same class loader as was used to load the server ! * is used. *

          *

          * If the name supplied is null, then the bean is *************** public class Server *** 575,581 **** * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

          ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. --- 575,581 ---- * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

          ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. *************** public class Server *** 606,619 **** * and registerMBean methods. */ public ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, Object[] params, ! String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException { return registerMBean(instantiate(className, loaderName, params, sig), ! name); } /** --- 606,619 ---- * and registerMBean methods. */ public ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, Object[] params, ! String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException { return registerMBean(instantiate(className, loaderName, params, sig), ! name); } /** *************** public class Server *** 641,652 **** { try { ! return new ServerInputStream(new ByteArrayInputStream(data), ! getClassLoaderFor(name)); } catch (IOException e) { ! throw new OperationsException("An I/O error occurred: " + e); } } --- 641,652 ---- { try { ! return new ServerInputStream(new ByteArrayInputStream(data), ! getClassLoaderFor(name)); } catch (IOException e) { ! throw new OperationsException("An I/O error occurred: " + e); } } *************** public class Server *** 680,696 **** { try { ! Class c = getClassLoaderRepository().loadClass(name); ! return new ServerInputStream(new ByteArrayInputStream(data), ! c.getClassLoader()); } catch (IOException e) { ! throw new OperationsException("An I/O error occurred: " + e); } catch (ClassNotFoundException e) { ! throw new ReflectionException(e, "The class could not be found."); } } --- 680,696 ---- { try { ! Class c = getClassLoaderRepository().loadClass(name); ! return new ServerInputStream(new ByteArrayInputStream(data), ! c.getClassLoader()); } catch (IOException e) { ! throw new OperationsException("An I/O error occurred: " + e); } catch (ClassNotFoundException e) { ! throw new ReflectionException(e, "The class could not be found."); } } *************** public class Server *** 722,742 **** */ public ObjectInputStream deserialize(String name, ObjectName loader, byte[] data) throws InstanceNotFoundException, ReflectionException, ! OperationsException { try { ! Class c = getClassLoader(loader).loadClass(name); ! return new ServerInputStream(new ByteArrayInputStream(data), ! c.getClassLoader()); } catch (IOException e) { ! throw new OperationsException("An I/O error occurred: " + e); } catch (ClassNotFoundException e) { ! throw new ReflectionException(e, "The class could not be found."); } } --- 722,742 ---- */ public ObjectInputStream deserialize(String name, ObjectName loader, byte[] data) throws InstanceNotFoundException, ReflectionException, ! OperationsException { try { ! Class c = getClassLoader(loader).loadClass(name); ! return new ServerInputStream(new ByteArrayInputStream(data), ! c.getClassLoader()); } catch (IOException e) { ! throw new OperationsException("An I/O error occurred: " + e); } catch (ClassNotFoundException e) { ! throw new ReflectionException(e, "The class could not be found."); } } *************** public class Server *** 767,779 **** */ public Object getAttribute(ObjectName bean, String name) throws MBeanException, AttributeNotFoundException, ! InstanceNotFoundException, ReflectionException { if (bean == null || name == null) { ! RuntimeException e = ! new IllegalArgumentException("One of the supplied arguments was null."); ! throw new RuntimeOperationsException(e); } Object abean = getBean(bean); checkSecurity(bean, name, "getAttribute"); --- 767,779 ---- */ public Object getAttribute(ObjectName bean, String name) throws MBeanException, AttributeNotFoundException, ! InstanceNotFoundException, ReflectionException { if (bean == null || name == null) { ! RuntimeException e = ! new IllegalArgumentException("One of the supplied arguments was null."); ! throw new RuntimeOperationsException(e); } Object abean = getBean(bean); checkSecurity(bean, name, "getAttribute"); *************** public class Server *** 781,794 **** return ((DynamicMBean) abean).getAttribute(name); else try ! { ! return new StandardMBean(abean, null).getAttribute(name); ! } catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } } --- 781,794 ---- return ((DynamicMBean) abean).getAttribute(name); else try ! { ! return new StandardMBean(abean, null).getAttribute(name); ! } catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } } *************** public class Server *** 817,823 **** * MBeanPermission(className, n, bean, * "getAttribute")} or that attribute will * not be included. ! * * @see DynamicMBean#getAttributes(String[]) */ public AttributeList getAttributes(ObjectName bean, String[] names) --- 817,823 ---- * MBeanPermission(className, n, bean, * "getAttribute")} or that attribute will * not be included. ! * * @see DynamicMBean#getAttributes(String[]) */ public AttributeList getAttributes(ObjectName bean, String[] names) *************** public class Server *** 825,871 **** { if (bean == null || names == null) { ! RuntimeException e = ! new IllegalArgumentException("One of the supplied arguments was null."); ! throw new RuntimeOperationsException(e); } Object abean = getBean(bean); checkSecurity(bean, null, "getAttribute"); AttributeList list = new AttributeList(names.length); for (int a = 0; a < names.length; ++a) { ! if (names[a] == null) ! { ! RuntimeException e = ! new IllegalArgumentException("Argument " + a + " was null."); ! throw new RuntimeOperationsException(e); ! } ! checkSecurity(bean, names[a], "getAttribute"); ! try ! { ! Object value; ! if (abean instanceof DynamicMBean) ! value = ((DynamicMBean) abean).getAttribute(names[a]); ! else ! try ! { ! value = new StandardMBean(abean, null).getAttribute(names[a]); ! } ! catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } ! list.add(new Attribute(names[a], value)); ! } ! catch (AttributeNotFoundException e) ! { ! /* Ignored */ ! } ! catch (MBeanException e) ! { ! /* Ignored */ ! } } return list; } --- 825,871 ---- { if (bean == null || names == null) { ! RuntimeException e = ! new IllegalArgumentException("One of the supplied arguments was null."); ! throw new RuntimeOperationsException(e); } Object abean = getBean(bean); checkSecurity(bean, null, "getAttribute"); AttributeList list = new AttributeList(names.length); for (int a = 0; a < names.length; ++a) { ! if (names[a] == null) ! { ! RuntimeException e = ! new IllegalArgumentException("Argument " + a + " was null."); ! throw new RuntimeOperationsException(e); ! } ! checkSecurity(bean, names[a], "getAttribute"); ! try ! { ! Object value; ! if (abean instanceof DynamicMBean) ! value = ((DynamicMBean) abean).getAttribute(names[a]); ! else ! try ! { ! value = new StandardMBean(abean, null).getAttribute(names[a]); ! } ! catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } ! list.add(new Attribute(names[a], value)); ! } ! catch (AttributeNotFoundException e) ! { ! /* Ignored */ ! } ! catch (MBeanException e) ! { ! /* Ignored */ ! } } return list; } *************** public class Server *** 897,910 **** { if (name == null) { ! checkSecurity(null, null, "getClassLoader"); ! return getClass().getClassLoader(); } Object bean = getBean(name); checkSecurity(name, null, "getClassLoader"); return (ClassLoader) bean; } ! /** * Returns the class loader of the specified management bean. If * l is the requested class loader, and r --- 897,910 ---- { if (name == null) { ! checkSecurity(null, null, "getClassLoader"); ! return getClass().getClassLoader(); } Object bean = getBean(name); checkSecurity(name, null, "getClassLoader"); return (ClassLoader) bean; } ! /** * Returns the class loader of the specified management bean. If * l is the requested class loader, and r *************** public class Server *** 932,938 **** Object bean = getBean(name); checkSecurity(name, null, "getClassLoaderFor"); return bean.getClass().getClassLoader(); ! } /** * Returns the class loader repository used by this server. --- 932,938 ---- Object bean = getBean(name); checkSecurity(name, null, "getClassLoaderFor"); return bean.getClass().getClassLoader(); ! } /** * Returns the class loader repository used by this server. *************** public class Server *** 987,1002 **** Iterator iterator = beans.keySet().iterator(); while (iterator.hasNext()) { ! String d = iterator.next().getDomain(); ! try ! { ! checkSecurity(new ObjectName(d + ":x=x"), null, "getDomains"); ! domains.add(d); ! } ! catch (MalformedObjectNameException e) ! { ! /* Ignored */ ! } } return domains.toArray(new String[domains.size()]); } --- 987,1002 ---- Iterator iterator = beans.keySet().iterator(); while (iterator.hasNext()) { ! String d = iterator.next().getDomain(); ! try ! { ! checkSecurity(new ObjectName(d + ":x=x"), null, "getDomains"); ! domains.add(d); ! } ! catch (MalformedObjectNameException e) ! { ! /* Ignored */ ! } } return domains.toArray(new String[domains.size()]); } *************** public class Server *** 1033,1070 **** */ public MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ! ReflectionException { Object bean = getBean(name); checkSecurity(name, null, "getMBeanInfo"); try { ! Method method = bean.getClass().getMethod("getMBeanInfo"); ! return (MBeanInfo) method.invoke(bean); } catch (NoSuchMethodException e) { ! try ! { ! return new StandardMBean(bean, null).getMBeanInfo(); ! } ! catch (NotCompliantMBeanException ex) ! { ! throw new IntrospectionException("An error occurred in executing " + ! "getMBeanInfo on the bean: " + ex + "."); ! } } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to call getMBeanInfo"); } catch (IllegalArgumentException e) { ! throw new ReflectionException(e, "Failed to call getMBeanInfo"); } catch (InvocationTargetException e) { ! throw new ReflectionException(e, "The method threw an exception"); } } --- 1033,1070 ---- */ public MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ! ReflectionException { Object bean = getBean(name); checkSecurity(name, null, "getMBeanInfo"); try { ! Method method = bean.getClass().getMethod("getMBeanInfo"); ! return (MBeanInfo) method.invoke(bean); } catch (NoSuchMethodException e) { ! try ! { ! return new StandardMBean(bean, null).getMBeanInfo(); ! } ! catch (NotCompliantMBeanException ex) ! { ! throw new IntrospectionException("An error occurred in executing " + ! "getMBeanInfo on the bean: " + ex + "."); ! } } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to call getMBeanInfo"); } catch (IllegalArgumentException e) { ! throw new ReflectionException(e, "Failed to call getMBeanInfo"); } catch (InvocationTargetException e) { ! throw new ReflectionException(e, "The method threw an exception"); } } *************** public class Server *** 1088,1094 **** ServerInfo bean = beans.get(name); if (bean == null) throw new InstanceNotFoundException("The bean, " + name + ! ", was not found."); return bean.getInstance(); } --- 1088,1094 ---- ServerInfo bean = beans.get(name); if (bean == null) throw new InstanceNotFoundException("The bean, " + name + ! ", was not found."); return bean.getInstance(); } *************** public class Server *** 1102,1108 **** * but the instance is not yet registered with the server. *

          *

          ! * This method is equivalent to calling {@link * #instantiate(String, Object[], String[]) * instantiate(name, (Object[]) null, (String[]) null)} * with null parameters and signature. --- 1102,1108 ---- * but the instance is not yet registered with the server. *

          *

          ! * This method is equivalent to calling {@link * #instantiate(String, Object[], String[]) * instantiate(name, (Object[]) null, (String[]) null)} * with null parameters and signature. *************** public class Server *** 1162,1214 **** checkSecurity(null, null, "instantiate"); if (name == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null."); ! throw new RuntimeOperationsException(e); } Class[] sigTypes = new Class[sig.length]; for (int a = 0; a < sigTypes.length; ++a) { ! try ! { ! sigTypes[a] = repository.loadClass(sig[a]); ! } ! catch (ClassNotFoundException e) ! { ! throw new ReflectionException(e, "The class, " + sigTypes[a] + ! ", in the method signature " + ! "could not be loaded."); ! } } try { ! Constructor cons = ! repository.loadClass(name).getConstructor(sigTypes); ! return cons.newInstance(params); } catch (ClassNotFoundException e) { ! throw new ReflectionException(e, "The class, " + name + ! ", of the constructor " + ! "could not be loaded."); } catch (NoSuchMethodException e) { ! throw new ReflectionException(e, "The method, " + name + ! ", could not be found."); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to instantiate the object"); } catch (InstantiationException e) { ! throw new ReflectionException(e, "Failed to instantiate the object"); } catch (InvocationTargetException e) { ! throw new MBeanException((Exception) e.getCause(), "The constructor " ! + name + " threw an exception"); } } --- 1162,1214 ---- checkSecurity(null, null, "instantiate"); if (name == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null."); ! throw new RuntimeOperationsException(e); } Class[] sigTypes = new Class[sig.length]; for (int a = 0; a < sigTypes.length; ++a) { ! try ! { ! sigTypes[a] = repository.loadClass(sig[a]); ! } ! catch (ClassNotFoundException e) ! { ! throw new ReflectionException(e, "The class, " + sigTypes[a] + ! ", in the method signature " + ! "could not be loaded."); ! } } try { ! Constructor cons = ! repository.loadClass(name).getConstructor(sigTypes); ! return cons.newInstance(params); } catch (ClassNotFoundException e) { ! throw new ReflectionException(e, "The class, " + name + ! ", of the constructor " + ! "could not be loaded."); } catch (NoSuchMethodException e) { ! throw new ReflectionException(e, "The method, " + name + ! ", could not be found."); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to instantiate the object"); } catch (InstantiationException e) { ! throw new ReflectionException(e, "Failed to instantiate the object"); } catch (InvocationTargetException e) { ! throw new MBeanException((Exception) e.getCause(), "The constructor " ! + name + " threw an exception"); } } *************** public class Server *** 1222,1228 **** * registered with the server. *

          *

          ! * This method is equivalent to calling {@link * #instantiate(String, ObjectName, Object[], String[]) * instantiate(name, loaderName, (Object[]) null, * (String[]) null)} with null parameters --- 1222,1228 ---- * registered with the server. *

          *

          ! * This method is equivalent to calling {@link * #instantiate(String, ObjectName, Object[], String[]) * instantiate(name, loaderName, (Object[]) null, * (String[]) null)} with null parameters *************** public class Server *** 1250,1256 **** */ public Object instantiate(String name, ObjectName loaderName) throws InstanceNotFoundException, ReflectionException, ! MBeanException { return instantiate(name, loaderName); } --- 1250,1256 ---- */ public Object instantiate(String name, ObjectName loaderName) throws InstanceNotFoundException, ReflectionException, ! MBeanException { return instantiate(name, loaderName); } *************** public class Server *** 1284,1344 **** * "instantiate")}. */ public Object instantiate(String name, ObjectName loaderName, ! Object[] params, String[] sig) throws InstanceNotFoundException, ReflectionException, ! MBeanException { checkSecurity(null, null, "instantiate"); if (name == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null."); ! throw new RuntimeOperationsException(e); } ClassLoader loader = getClassLoader(loaderName); Class[] sigTypes = new Class[sig.length]; for (int a = 0; a < sig.length; ++a) { ! try ! { ! sigTypes[a] = Class.forName(sig[a], true, loader); ! } ! catch (ClassNotFoundException e) ! { ! throw new ReflectionException(e, "The class, " + sig[a] + ! ", in the method signature " + ! "could not be loaded."); ! } } try { ! Constructor cons = ! Class.forName(name, true, loader).getConstructor(sigTypes); ! return cons.newInstance(params); } catch (ClassNotFoundException e) { ! throw new ReflectionException(e, "The class, " + name + ! ", of the constructor " + ! "could not be loaded."); } catch (NoSuchMethodException e) { ! throw new ReflectionException(e, "The method, " + name + ! ", could not be found."); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to instantiate the object"); } catch (InstantiationException e) { ! throw new ReflectionException(e, "Failed to instantiate the object"); } catch (InvocationTargetException e) { ! throw new MBeanException((Exception) e.getCause(), "The constructor " ! + name + " threw an exception"); } } --- 1284,1344 ---- * "instantiate")}. */ public Object instantiate(String name, ObjectName loaderName, ! Object[] params, String[] sig) throws InstanceNotFoundException, ReflectionException, ! MBeanException { checkSecurity(null, null, "instantiate"); if (name == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null."); ! throw new RuntimeOperationsException(e); } ClassLoader loader = getClassLoader(loaderName); Class[] sigTypes = new Class[sig.length]; for (int a = 0; a < sig.length; ++a) { ! try ! { ! sigTypes[a] = Class.forName(sig[a], true, loader); ! } ! catch (ClassNotFoundException e) ! { ! throw new ReflectionException(e, "The class, " + sig[a] + ! ", in the method signature " + ! "could not be loaded."); ! } } try { ! Constructor cons = ! Class.forName(name, true, loader).getConstructor(sigTypes); ! return cons.newInstance(params); } catch (ClassNotFoundException e) { ! throw new ReflectionException(e, "The class, " + name + ! ", of the constructor " + ! "could not be loaded."); } catch (NoSuchMethodException e) { ! throw new ReflectionException(e, "The method, " + name + ! ", could not be found."); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to instantiate the object"); } catch (InstantiationException e) { ! throw new ReflectionException(e, "Failed to instantiate the object"); } catch (InvocationTargetException e) { ! throw new MBeanException((Exception) e.getCause(), "The constructor " ! + name + " threw an exception"); } } *************** public class Server *** 1368,1380 **** */ public Object invoke(ObjectName bean, String name, Object[] params, String[] sig) throws InstanceNotFoundException, MBeanException, ! ReflectionException { if (bean == null) { ! RuntimeException e = ! new IllegalArgumentException("The bean was null."); ! throw new RuntimeOperationsException(e); } Object abean = getBean(bean); checkSecurity(bean, name, "invoke"); --- 1368,1380 ---- */ public Object invoke(ObjectName bean, String name, Object[] params, String[] sig) throws InstanceNotFoundException, MBeanException, ! ReflectionException { if (bean == null) { ! RuntimeException e = ! new IllegalArgumentException("The bean was null."); ! throw new RuntimeOperationsException(e); } Object abean = getBean(bean); checkSecurity(bean, name, "invoke"); *************** public class Server *** 1382,1395 **** return ((DynamicMBean) abean).invoke(name, params, sig); else try ! { ! return new StandardMBean(abean, null).invoke(name, params, sig); ! } catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } } /** --- 1382,1395 ---- return ((DynamicMBean) abean).invoke(name, params, sig); else try ! { ! return new StandardMBean(abean, null).invoke(name, params, sig); ! } catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } } /** *************** public class Server *** 1407,1413 **** *

        30. Both the class of B and C were loaded by the same class loader, * and B is assignable to C.
        31. * ! * * @param name the name of the management bean. * @param className the name of the class to test if name is * an instance of. --- 1407,1413 ---- *
        32. Both the class of B and C were loaded by the same class loader, * and B is assignable to C.
        33. * ! * * @param name the name of the management bean. * @param className the name of the class to test if name is * an instance of. *************** public class Server *** 1431,1456 **** info = ((DynamicMBean) bean).getMBeanInfo(); else try ! { ! info = new StandardMBean(bean, null).getMBeanInfo(); ! } catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } if (info.getClassName().equals(className)) return true; Class bclass = bean.getClass(); try { ! Class oclass = Class.forName(className); ! return (bclass.getClassLoader().equals(oclass.getClassLoader()) && ! oclass.isAssignableFrom(bclass)); } catch (ClassNotFoundException e) { ! return false; } } --- 1431,1456 ---- info = ((DynamicMBean) bean).getMBeanInfo(); else try ! { ! info = new StandardMBean(bean, null).getMBeanInfo(); ! } catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } if (info.getClassName().equals(className)) return true; Class bclass = bean.getClass(); try { ! Class oclass = Class.forName(className); ! return (bclass.getClassLoader().equals(oclass.getClassLoader()) && ! oclass.isAssignableFrom(bclass)); } catch (ClassNotFoundException e) { ! return false; } } *************** public class Server *** 1468,1476 **** { if (name == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null."); ! throw new RuntimeOperationsException(e); } return beans.containsKey(name); } --- 1468,1476 ---- { if (name == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null."); ! throw new RuntimeOperationsException(e); } return beans.containsKey(name); } *************** public class Server *** 1489,1495 **** *

          * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

          * * @param name an {@link ObjectName} to use as a filter. --- 1489,1495 ---- *

          * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

          * * @param name an {@link ObjectName} to use as a filter. *************** public class Server *** 1516,1549 **** Set results = new HashSet(); for (Map.Entry entry : beans.entrySet()) { ! ObjectName nextName = entry.getKey(); ! checkSecurity(name, nextName.toString(), "queryMBeans"); ! try ! { ! if ((name == null || name.apply(nextName)) && ! (query == null || query.apply(nextName))) ! results.add(entry.getValue().getInstance()); ! } ! catch (BadStringOperationException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (BadBinaryOpValueExpException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (BadAttributeValueExpException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (InvalidApplicationException e) ! { ! /* Ignored -- assume false result */ ! } } return results; } ! /** *

          * Returns a set of {@link ObjectName}s matching the specified --- 1516,1549 ---- Set results = new HashSet(); for (Map.Entry entry : beans.entrySet()) { ! ObjectName nextName = entry.getKey(); ! checkSecurity(name, nextName.toString(), "queryMBeans"); ! try ! { ! if ((name == null || name.apply(nextName)) && ! (query == null || query.apply(nextName))) ! results.add(entry.getValue().getInstance()); ! } ! catch (BadStringOperationException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (BadBinaryOpValueExpException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (BadAttributeValueExpException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (InvalidApplicationException e) ! { ! /* Ignored -- assume false result */ ! } } return results; } ! /** *

          * Returns a set of {@link ObjectName}s matching the specified *************** public class Server *** 1558,1564 **** *

          * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

          * * @param name an {@link ObjectName} to use as a filter. --- 1558,1564 ---- *

          * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

          * * @param name an {@link ObjectName} to use as a filter. *************** public class Server *** 1587,1615 **** Set results = new HashSet(); for (ObjectName nextName : beans.keySet()) { ! checkSecurity(name, nextName.toString(), "queryNames"); ! try ! { ! if ((name == null || name.apply(nextName)) && ! (query == null || query.apply(nextName))) ! results.add(nextName); ! } ! catch (BadStringOperationException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (BadBinaryOpValueExpException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (BadAttributeValueExpException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (InvalidApplicationException e) ! { ! /* Ignored -- assume false result */ ! } } return results; } --- 1587,1615 ---- Set results = new HashSet(); for (ObjectName nextName : beans.keySet()) { ! checkSecurity(name, nextName.toString(), "queryNames"); ! try ! { ! if ((name == null || name.apply(nextName)) && ! (query == null || query.apply(nextName))) ! results.add(nextName); ! } ! catch (BadStringOperationException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (BadBinaryOpValueExpException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (BadAttributeValueExpException e) ! { ! /* Ignored -- assume false result */ ! } ! catch (InvalidApplicationException e) ! { ! /* Ignored -- assume false result */ ! } } return results; } *************** public class Server *** 1618,1624 **** * Registers the supplied instance with the server, using the specified * {@link ObjectName}. If the name given is null, then * the bean supplied is expected to implement the {@link MBeanRegistration} ! * interface and provide the name via the * {@link MBeanRegistration#preRegister preRegister} method * of this interface. * --- 1618,1624 ---- * Registers the supplied instance with the server, using the specified * {@link ObjectName}. If the name given is null, then * the bean supplied is expected to implement the {@link MBeanRegistration} ! * interface and provide the name via the * {@link MBeanRegistration#preRegister preRegister} method * of this interface. * *************** public class Server *** 1656,1726 **** */ public ObjectInstance registerMBean(Object obj, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, ! NotCompliantMBeanException ! { SecurityManager sm = System.getSecurityManager(); Class cl = obj.getClass(); String className = cl.getName(); if (sm != null) { ! sm.checkPermission(new MBeanPermission(className, null, name, ! "registerMBean")); ! if (!(cl.getProtectionDomain().implies(new MBeanTrustPermission("register")))) ! throw new SecurityException("The protection domain of the object's class" + ! "does not imply the trust permission," + ! "register"); } if (obj == null) { ! RuntimeException e = ! new IllegalArgumentException("The object was null."); ! throw new RuntimeOperationsException(e); } MBeanRegistration register = null; if (obj instanceof MBeanRegistration) register = (MBeanRegistration) obj; if (name == null && register == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null and " + ! "the bean does not implement " + ! "MBeanRegistration."); ! throw new RuntimeOperationsException(e); } if (register != null) { ! try ! { ! name = register.preRegister(this, name); ! if (name == null) ! { ! RuntimeException e = ! new NullPointerException("The name returned by " + ! "MBeanRegistration.preRegister() " + ! "was null"); ! throw e; ! } ! if (sm != null) ! sm.checkPermission(new MBeanPermission(className, null, name, ! "registerMBean")); ! } ! catch (SecurityException e) ! { ! register.postRegister(Boolean.FALSE); ! throw e; ! } ! catch (Exception e) ! { ! register.postRegister(Boolean.FALSE); ! throw new MBeanRegistrationException(e, "Pre-registration failed."); ! } } ObjectInstance obji = new ObjectInstance(name, className); if (beans.putIfAbsent(name, new ServerInfo(obji, obj)) != null) { ! if (register != null) ! register.postRegister(Boolean.FALSE); ! throw new InstanceAlreadyExistsException(name + "is already registered."); } if (register != null) register.postRegister(Boolean.TRUE); --- 1656,1726 ---- */ public ObjectInstance registerMBean(Object obj, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, ! NotCompliantMBeanException ! { SecurityManager sm = System.getSecurityManager(); Class cl = obj.getClass(); String className = cl.getName(); if (sm != null) { ! sm.checkPermission(new MBeanPermission(className, null, name, ! "registerMBean")); ! if (!(cl.getProtectionDomain().implies(new MBeanTrustPermission("register")))) ! throw new SecurityException("The protection domain of the object's class" + ! "does not imply the trust permission," + ! "register"); } if (obj == null) { ! RuntimeException e = ! new IllegalArgumentException("The object was null."); ! throw new RuntimeOperationsException(e); } MBeanRegistration register = null; if (obj instanceof MBeanRegistration) register = (MBeanRegistration) obj; if (name == null && register == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null and " + ! "the bean does not implement " + ! "MBeanRegistration."); ! throw new RuntimeOperationsException(e); } if (register != null) { ! try ! { ! name = register.preRegister(this, name); ! if (name == null) ! { ! RuntimeException e = ! new NullPointerException("The name returned by " + ! "MBeanRegistration.preRegister() " + ! "was null"); ! throw e; ! } ! if (sm != null) ! sm.checkPermission(new MBeanPermission(className, null, name, ! "registerMBean")); ! } ! catch (SecurityException e) ! { ! register.postRegister(Boolean.FALSE); ! throw e; ! } ! catch (Exception e) ! { ! register.postRegister(Boolean.FALSE); ! throw new MBeanRegistrationException(e, "Pre-registration failed."); ! } } ObjectInstance obji = new ObjectInstance(name, className); if (beans.putIfAbsent(name, new ServerInfo(obji, obj)) != null) { ! if (register != null) ! register.postRegister(Boolean.FALSE); ! throw new InstanceAlreadyExistsException(name + "is already registered."); } if (register != null) register.postRegister(Boolean.TRUE); *************** public class Server *** 1752,1767 **** * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) */ public void removeNotificationListener(ObjectName name, ! NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException { Object bean = getBean(name); checkSecurity(name, null, "removeNotificationListener"); if (bean instanceof NotificationBroadcaster) { ! NotificationBroadcaster bbean = (NotificationBroadcaster) bean; ! bbean.removeNotificationListener(listener); ! LazyListenersHolder.listeners.remove(listener); } } --- 1752,1767 ---- * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) */ public void removeNotificationListener(ObjectName name, ! NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException { Object bean = getBean(name); checkSecurity(name, null, "removeNotificationListener"); if (bean instanceof NotificationBroadcaster) { ! NotificationBroadcaster bbean = (NotificationBroadcaster) bean; ! bbean.removeNotificationListener(listener); ! LazyListenersHolder.listeners.remove(listener); } } *************** public class Server *** 1794,1811 **** * Object) */ public void removeNotificationListener(ObjectName name, ! NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException { Object bean = getBean(name); checkSecurity(name, null, "removeNotificationListener"); if (bean instanceof NotificationEmitter) { ! NotificationEmitter bbean = (NotificationEmitter) bean; ! bbean.removeNotificationListener(listener, filter, passback); ! LazyListenersHolder.listeners.remove(listener); } } --- 1794,1811 ---- * Object) */ public void removeNotificationListener(ObjectName name, ! NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException { Object bean = getBean(name); checkSecurity(name, null, "removeNotificationListener"); if (bean instanceof NotificationEmitter) { ! NotificationEmitter bbean = (NotificationEmitter) bean; ! bbean.removeNotificationListener(listener, filter, passback); ! LazyListenersHolder.listeners.remove(listener); } } *************** public class Server *** 1839,1848 **** Object lbean = getBean(listener); if (!(lbean instanceof NotificationListener)) { ! RuntimeException e = ! new IllegalArgumentException("The supplied listener name does not " + ! "correspond to a notification listener."); ! throw new RuntimeOperationsException(e); } removeNotificationListener(name, ((NotificationListener) lbean)); } --- 1839,1848 ---- Object lbean = getBean(listener); if (!(lbean instanceof NotificationListener)) { ! RuntimeException e = ! new IllegalArgumentException("The supplied listener name does not " + ! "correspond to a notification listener."); ! throw new RuntimeOperationsException(e); } removeNotificationListener(name, ((NotificationListener) lbean)); } *************** public class Server *** 1877,1902 **** * Object) */ public void removeNotificationListener(ObjectName name, ! ObjectName listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException { Object lbean = getBean(listener); if (!(lbean instanceof NotificationListener)) { ! RuntimeException e = ! new IllegalArgumentException("The supplied listener name does not " + ! "correspond to a notification listener."); ! throw new RuntimeOperationsException(e); } removeNotificationListener(name, ((NotificationListener) lbean), filter, ! passback); } /** * Sets the value of the specified attribute of the supplied ! * management bean. * * @param name the name of the management bean. * @param attribute the attribute to set. --- 1877,1902 ---- * Object) */ public void removeNotificationListener(ObjectName name, ! ObjectName listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException { Object lbean = getBean(listener); if (!(lbean instanceof NotificationListener)) { ! RuntimeException e = ! new IllegalArgumentException("The supplied listener name does not " + ! "correspond to a notification listener."); ! throw new RuntimeOperationsException(e); } removeNotificationListener(name, ((NotificationListener) lbean), filter, ! passback); } /** * Sets the value of the specified attribute of the supplied ! * management bean. * * @param name the name of the management bean. * @param attribute the attribute to set. *************** public class Server *** 1929,1942 **** */ public void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, ! InvalidAttributeValueException, MBeanException, ! ReflectionException { if (attribute == null || name == null) { ! RuntimeException e = ! new IllegalArgumentException("One of the supplied arguments was null."); ! throw new RuntimeOperationsException(e); } Object bean = getBean(name); checkSecurity(name, attribute.getName(), "setAttribute"); --- 1929,1942 ---- */ public void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, ! InvalidAttributeValueException, MBeanException, ! ReflectionException { if (attribute == null || name == null) { ! RuntimeException e = ! new IllegalArgumentException("One of the supplied arguments was null."); ! throw new RuntimeOperationsException(e); } Object bean = getBean(name); checkSecurity(name, attribute.getName(), "setAttribute"); *************** public class Server *** 1944,1957 **** ((DynamicMBean) bean).setAttribute(attribute); else try ! { ! new StandardMBean(bean, null).setAttribute(attribute); ! } catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } } /** --- 1944,1957 ---- ((DynamicMBean) bean).setAttribute(attribute); else try ! { ! new StandardMBean(bean, null).setAttribute(attribute); ! } catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } } /** *************** public class Server *** 1992,2000 **** { if (name == null || attributes == null) { ! RuntimeException e = ! new IllegalArgumentException("One of the supplied arguments was null."); ! throw new RuntimeOperationsException(e); } Object abean = getBean(name); checkSecurity(name, null, "setAttribute"); --- 1992,2000 ---- { if (name == null || attributes == null) { ! RuntimeException e = ! new IllegalArgumentException("One of the supplied arguments was null."); ! throw new RuntimeOperationsException(e); } Object abean = getBean(name); checkSecurity(name, null, "setAttribute"); *************** public class Server *** 2002,2043 **** Iterator it = attributes.iterator(); while (it.hasNext()) { ! try ! { ! Attribute attrib = (Attribute) it.next(); ! if (attrib == null) ! { ! RuntimeException e = ! new IllegalArgumentException("An attribute was null."); ! throw new RuntimeOperationsException(e); ! } ! checkSecurity(name, attrib.getName(), "setAttribute"); ! if (abean instanceof DynamicMBean) ! ((DynamicMBean) abean).setAttribute(attrib); ! else ! try ! { ! new StandardMBean(abean, null).setAttribute(attrib); ! } ! catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } ! list.add(attrib); ! } ! catch (AttributeNotFoundException e) ! { ! /* Ignored */ ! } ! catch (InvalidAttributeValueException e) ! { ! /* Ignored */ ! } ! catch (MBeanException e) ! { ! /* Ignored */ ! } } return list; } --- 2002,2043 ---- Iterator it = attributes.iterator(); while (it.hasNext()) { ! try ! { ! Attribute attrib = (Attribute) it.next(); ! if (attrib == null) ! { ! RuntimeException e = ! new IllegalArgumentException("An attribute was null."); ! throw new RuntimeOperationsException(e); ! } ! checkSecurity(name, attrib.getName(), "setAttribute"); ! if (abean instanceof DynamicMBean) ! ((DynamicMBean) abean).setAttribute(attrib); ! else ! try ! { ! new StandardMBean(abean, null).setAttribute(attrib); ! } ! catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("Failed to create dynamic bean.").initCause(e)); ! } ! list.add(attrib); ! } ! catch (AttributeNotFoundException e) ! { ! /* Ignored */ ! } ! catch (InvalidAttributeValueException e) ! { ! /* Ignored */ ! } ! catch (MBeanException e) ! { ! /* Ignored */ ! } } return list; } *************** public class Server *** 2064,2099 **** * MBeanPermission(String,String,ObjectName,String) * MBeanPermission(className, null, name, * "unregisterMBean")}. ! */ public void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException { if (name == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null."); ! throw new RuntimeOperationsException(e); } if (name.equals(DELEGATE_NAME)) { ! RuntimeException e = ! new IllegalArgumentException("The delegate can not be unregistered."); ! throw new RuntimeOperationsException(e); ! } ! Object bean = getBean(name); checkSecurity(name, null, "unregisterMBean"); MBeanRegistration register = null; if (bean instanceof MBeanRegistration) { ! register = (MBeanRegistration) bean; ! try ! { ! register.preDeregister(); ! } ! catch (Exception e) ! { ! throw new MBeanRegistrationException(e, "Pre-deregistration failed."); ! } } beans.remove(name); notify(name, MBeanServerNotification.UNREGISTRATION_NOTIFICATION); --- 2064,2099 ---- * MBeanPermission(String,String,ObjectName,String) * MBeanPermission(className, null, name, * "unregisterMBean")}. ! */ public void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException { if (name == null) { ! RuntimeException e = ! new IllegalArgumentException("The name was null."); ! throw new RuntimeOperationsException(e); } if (name.equals(DELEGATE_NAME)) { ! RuntimeException e = ! new IllegalArgumentException("The delegate can not be unregistered."); ! throw new RuntimeOperationsException(e); ! } ! Object bean = getBean(name); checkSecurity(name, null, "unregisterMBean"); MBeanRegistration register = null; if (bean instanceof MBeanRegistration) { ! register = (MBeanRegistration) bean; ! try ! { ! register.preDeregister(); ! } ! catch (Exception e) ! { ! throw new MBeanRegistrationException(e, "Pre-deregistration failed."); ! } } beans.remove(name); notify(name, MBeanServerNotification.UNREGISTRATION_NOTIFICATION); *************** public class Server *** 2113,2120 **** private void notify(ObjectName name, String type) { delegate.sendNotification ! (new MBeanServerNotification ! (type, DELEGATE_NAME, sequenceNumber.getAndIncrement(), name)); } /** --- 2113,2120 ---- private void notify(ObjectName name, String type) { delegate.sendNotification ! (new MBeanServerNotification ! (type, DELEGATE_NAME, sequenceNumber.getAndIncrement(), name)); } /** *************** public class Server *** 2137,2149 **** throws ClassNotFoundException, IOException { try ! { ! return Class.forName(osc.getName(), true, cl); ! } catch (ClassNotFoundException e) ! { ! return super.resolveClass(osc); ! } } } --- 2137,2149 ---- throws ClassNotFoundException, IOException { try ! { ! return Class.forName(osc.getName(), true, cl); ! } catch (ClassNotFoundException e) ! { ! return super.resolveClass(osc); ! } } } *************** public class Server *** 2152,2158 **** * Holder for information on registered beans. */ private class ServerInfo ! { private ObjectInstance instance; private Object object; --- 2152,2158 ---- * Holder for information on registered beans. */ private class ServerInfo ! { private ObjectInstance instance; private Object object; *************** public class Server *** 2206,2212 **** * @param listener the listener events eventually reach. */ public ServerNotificationListener(Object bean, ObjectName name, ! NotificationListener listener) { this.bean = bean; this.name = name; --- 2206,2212 ---- * @param listener the listener events eventually reach. */ public ServerNotificationListener(Object bean, ObjectName name, ! NotificationListener listener) { this.bean = bean; this.name = name; *************** public class Server *** 2224,2230 **** public void handleNotification(Notification notif, Object handback) { if (notif.getSource() == bean) ! notif.setSource(name); listener.handleNotification(notif, handback); } --- 2224,2230 ---- public void handleNotification(Notification notif, Object handback) { if (notif.getSource() == bean) ! notif.setSource(name); listener.handleNotification(notif, handback); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/management/Translator.java gcc-4.6.0/libjava/classpath/gnu/javax/management/Translator.java *** gcc-4.5.2/libjava/classpath/gnu/javax/management/Translator.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/management/Translator.java Tue Jan 11 19:46:05 2011 *************** public final class Translator *** 120,244 **** return jtype; if (jclass.isArray()) { ! Class ctype = jclass.getComponentType(); ! if (ctype.isPrimitive()) ! return jtype; ! if (OpenType.ALLOWED_CLASSNAMES_LIST.contains(ctype.getName())) ! return jtype; ! Object[] elems = (Object[]) jtype; ! Object[] celems = new Object[elems.length]; ! for (int a = 0; a < elems.length; ++a) ! celems[a] = fromJava(elems[a], elems[a].getClass()); ! return makeArraySpecific(celems); } String tName = getTypeName(type); if (jtype instanceof List || jtype instanceof Set || ! jtype instanceof SortedSet) { ! if (jtype instanceof SortedSet) ! { ! ParameterizedType ptype = (ParameterizedType) type; ! Class elemClass = (Class) ptype.getActualTypeArguments()[0]; ! if (!Comparable.class.isAssignableFrom(elemClass)) ! throw new IllegalArgumentException(jtype + " has a " + ! "non-comparable element " + ! "type, " + elemClass); ! if (((SortedSet) jtype).comparator() != null) ! throw new IllegalArgumentException(jtype + " does not " + ! "use natural ordering."); ! } ! Collection elems = (Collection) jtype; ! int numElems = elems.size(); ! Object[] celems = new Object[numElems]; ! Iterator i = elems.iterator(); ! for (int a = 0; a < numElems; ++a) ! { ! Object elem = i.next(); ! celems[a] = fromJava(elem, elem.getClass()); ! } ! return makeArraySpecific(celems); } if (jtype instanceof Enum) return ((Enum) jtype).name(); if (jtype instanceof Map || jtype instanceof SortedMap) { ! int lparam = tName.indexOf("<"); ! int comma = tName.indexOf(",", lparam); ! int rparam = tName.indexOf(">", comma); ! String key = tName.substring(lparam + 1, comma).trim(); ! String value = tName.substring(comma + 1, rparam).trim(); ! String typeName = null; ! if (jtype instanceof Map) ! typeName = "java.util.Map" + tName.substring(lparam); ! else ! { ! Class keyClass = Class.forName(key); ! if (!Comparable.class.isAssignableFrom(keyClass)) ! throw new IllegalArgumentException(jtype + " has a " + ! "non-comparable element " + ! "type, " + keyClass); ! if (((SortedMap) jtype).comparator() != null) ! throw new IllegalArgumentException(jtype + " does not " + ! "use natural ordering."); ! typeName = "java.util.SortedMap" + tName.substring(lparam); ! } ! OpenType k = translate(key).getOpenType(); ! OpenType v = translate(value).getOpenType(); ! CompositeType rowType = new CompositeType(typeName, typeName, ! new String[] { "key", "value" }, ! new String[] { "Map key", "Map value"}, ! new OpenType[] {k,v}); ! TabularType tabType = new TabularType(typeName, typeName, rowType, ! new String[]{"key"}); ! TabularData data = new TabularDataSupport(tabType); ! for (Map.Entry entry : ((Map) jtype).entrySet()) ! { ! try ! { ! data.put(new CompositeDataSupport(rowType, ! new String[] { ! "key", ! "value" ! }, ! new Object[] { ! entry.getKey(), ! entry.getValue() ! })); ! } ! catch (OpenDataException e) ! { ! throw (InternalError) (new InternalError("A problem occurred " + ! "converting the map " + ! "to a composite data " + ! "structure.").initCause(e)); ! } ! } ! return data; ! } if (JMX.isMXBeanInterface(jclass)) { ! try ! { ! MBeanServerInvocationHandler ih = (MBeanServerInvocationHandler) ! Proxy.getInvocationHandler(jtype); ! return ih.getObjectName(); ! } ! catch (IllegalArgumentException e) ! { ! throw new IllegalArgumentException("For a MXBean to be translated " + ! "to an open type, it must be a " + ! "proxy.", e); ! } ! catch (ClassCastException e) ! { ! throw new IllegalArgumentException("For a MXBean to be translated " + ! "to an open type, it must have a " + ! "MBeanServerInvocationHandler.", e); ! } } /* FIXME: Handle other types */ throw new IllegalArgumentException("The type, " + jtype + ! ", is not convertible."); } /** --- 120,244 ---- return jtype; if (jclass.isArray()) { ! Class ctype = jclass.getComponentType(); ! if (ctype.isPrimitive()) ! return jtype; ! if (OpenType.ALLOWED_CLASSNAMES_LIST.contains(ctype.getName())) ! return jtype; ! Object[] elems = (Object[]) jtype; ! Object[] celems = new Object[elems.length]; ! for (int a = 0; a < elems.length; ++a) ! celems[a] = fromJava(elems[a], elems[a].getClass()); ! return makeArraySpecific(celems); } String tName = getTypeName(type); if (jtype instanceof List || jtype instanceof Set || ! jtype instanceof SortedSet) { ! if (jtype instanceof SortedSet) ! { ! ParameterizedType ptype = (ParameterizedType) type; ! Class elemClass = (Class) ptype.getActualTypeArguments()[0]; ! if (!Comparable.class.isAssignableFrom(elemClass)) ! throw new IllegalArgumentException(jtype + " has a " + ! "non-comparable element " + ! "type, " + elemClass); ! if (((SortedSet) jtype).comparator() != null) ! throw new IllegalArgumentException(jtype + " does not " + ! "use natural ordering."); ! } ! Collection elems = (Collection) jtype; ! int numElems = elems.size(); ! Object[] celems = new Object[numElems]; ! Iterator i = elems.iterator(); ! for (int a = 0; a < numElems; ++a) ! { ! Object elem = i.next(); ! celems[a] = fromJava(elem, elem.getClass()); ! } ! return makeArraySpecific(celems); } if (jtype instanceof Enum) return ((Enum) jtype).name(); if (jtype instanceof Map || jtype instanceof SortedMap) { ! int lparam = tName.indexOf("<"); ! int comma = tName.indexOf(",", lparam); ! int rparam = tName.indexOf(">", comma); ! String key = tName.substring(lparam + 1, comma).trim(); ! String value = tName.substring(comma + 1, rparam).trim(); ! String typeName = null; ! if (jtype instanceof Map) ! typeName = "java.util.Map" + tName.substring(lparam); ! else ! { ! Class keyClass = Class.forName(key); ! if (!Comparable.class.isAssignableFrom(keyClass)) ! throw new IllegalArgumentException(jtype + " has a " + ! "non-comparable element " + ! "type, " + keyClass); ! if (((SortedMap) jtype).comparator() != null) ! throw new IllegalArgumentException(jtype + " does not " + ! "use natural ordering."); ! typeName = "java.util.SortedMap" + tName.substring(lparam); ! } ! OpenType k = translate(key).getOpenType(); ! OpenType v = translate(value).getOpenType(); ! CompositeType rowType = new CompositeType(typeName, typeName, ! new String[] { "key", "value" }, ! new String[] { "Map key", "Map value"}, ! new OpenType[] {k,v}); ! TabularType tabType = new TabularType(typeName, typeName, rowType, ! new String[]{"key"}); ! TabularData data = new TabularDataSupport(tabType); ! for (Map.Entry entry : ((Map) jtype).entrySet()) ! { ! try ! { ! data.put(new CompositeDataSupport(rowType, ! new String[] { ! "key", ! "value" ! }, ! new Object[] { ! entry.getKey(), ! entry.getValue() ! })); ! } ! catch (OpenDataException e) ! { ! throw (InternalError) (new InternalError("A problem occurred " + ! "converting the map " + ! "to a composite data " + ! "structure.").initCause(e)); ! } ! } ! return data; ! } if (JMX.isMXBeanInterface(jclass)) { ! try ! { ! MBeanServerInvocationHandler ih = (MBeanServerInvocationHandler) ! Proxy.getInvocationHandler(jtype); ! return ih.getObjectName(); ! } ! catch (IllegalArgumentException e) ! { ! throw new IllegalArgumentException("For a MXBean to be translated " + ! "to an open type, it must be a " + ! "proxy.", e); ! } ! catch (ClassCastException e) ! { ! throw new IllegalArgumentException("For a MXBean to be translated " + ! "to an open type, it must have a " + ! "MBeanServerInvocationHandler.", e); ! } } /* FIXME: Handle other types */ throw new IllegalArgumentException("The type, " + jtype + ! ", is not convertible."); } /** *************** public final class Translator *** 257,298 **** Class returnType = method.getReturnType(); if (returnType.isEnum()) { ! String ename = (String) otype; ! Enum[] constants = (Enum[]) returnType.getEnumConstants(); ! for (Enum c : constants) ! if (c.name().equals(ename)) ! return c; } if (List.class.isAssignableFrom(returnType)) { ! Object[] elems = (Object[]) otype; ! List l = new ArrayList(elems.length); ! for (Object elem : elems) ! l.add(elem); ! return l; } if (Map.class.isAssignableFrom(returnType)) { ! TabularData data = (TabularData) otype; ! Map m = new HashMap(data.size()); ! for (Object val : data.values()) ! { ! CompositeData vals = (CompositeData) val; ! m.put(vals.get("key"), vals.get("value")); ! } ! return m; } try { ! Method m = returnType.getMethod("from", ! new Class[] ! { CompositeData.class }); ! return m.invoke(null, (CompositeData) otype); } catch (NoSuchMethodException e) { ! /* Ignored; we expect this if this ! isn't a from(CompositeData) class */ } return otype; } --- 257,298 ---- Class returnType = method.getReturnType(); if (returnType.isEnum()) { ! String ename = (String) otype; ! Enum[] constants = (Enum[]) returnType.getEnumConstants(); ! for (Enum c : constants) ! if (c.name().equals(ename)) ! return c; } if (List.class.isAssignableFrom(returnType)) { ! Object[] elems = (Object[]) otype; ! List l = new ArrayList(elems.length); ! for (Object elem : elems) ! l.add(elem); ! return l; } if (Map.class.isAssignableFrom(returnType)) { ! TabularData data = (TabularData) otype; ! Map m = new HashMap(data.size()); ! for (Object val : data.values()) ! { ! CompositeData vals = (CompositeData) val; ! m.put(vals.get("key"), vals.get("value")); ! } ! return m; } try { ! Method m = returnType.getMethod("from", ! new Class[] ! { CompositeData.class }); ! return m.invoke(null, (CompositeData) otype); } catch (NoSuchMethodException e) { ! /* Ignored; we expect this if this ! isn't a from(CompositeData) class */ } return otype; } *************** public final class Translator *** 301,307 **** * Creates a new array which has the specific type * used by the elements of the original {@link Object} * array supplied. ! * * @param arr a series of elements in an {@link Object} * array. * @return the same elements in a new array of the specific --- 301,307 ---- * Creates a new array which has the specific type * used by the elements of the original {@link Object} * array supplied. ! * * @param arr a series of elements in an {@link Object} * array. * @return the same elements in a new array of the specific *************** public final class Translator *** 310,316 **** private static final Object[] makeArraySpecific(Object[] arr) { Object[] rcelems = (Object[]) Array.newInstance(arr[0].getClass(), ! arr.length); System.arraycopy(arr, 0, rcelems, 0, arr.length); return rcelems; } --- 310,316 ---- private static final Object[] makeArraySpecific(Object[] arr) { Object[] rcelems = (Object[]) Array.newInstance(arr[0].getClass(), ! arr.length); System.arraycopy(arr, 0, rcelems, 0, arr.length); return rcelems; } *************** public final class Translator *** 331,490 **** { if (type.equals("boolean") || type.equals(Boolean.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.BOOLEAN, ! null, ! new Boolean[] { ! Boolean.TRUE, ! Boolean.FALSE ! }); if (type.equals("byte") || type.equals(Byte.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.BYTE, ! null, ! Byte.valueOf(Byte.MIN_VALUE), ! Byte.valueOf(Byte.MAX_VALUE)); if (type.equals("char") || type.equals(Character.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.CHARACTER, ! null, ! Character.valueOf(Character.MIN_VALUE), ! Character.valueOf(Character.MAX_VALUE)); if (type.equals("double") || type.equals(Double.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.DOUBLE, ! null, ! Double.valueOf(Double.MIN_VALUE), ! Double.valueOf(Double.MAX_VALUE)); if (type.equals("float") || type.equals(Float.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.FLOAT, ! null, ! Float.valueOf(Float.MIN_VALUE), ! Float.valueOf(Float.MAX_VALUE)); if (type.equals("int") || type.equals(Integer.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.INTEGER, ! null, ! Integer.valueOf(Integer.MIN_VALUE), ! Integer.valueOf(Integer.MAX_VALUE)); if (type.equals("long") || type.equals(Long.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.LONG, ! null, ! Long.valueOf(Long.MIN_VALUE), ! Long.valueOf(Long.MAX_VALUE)); if (type.equals("short") || type.equals(Short.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.SHORT, ! null, ! Short.valueOf(Short.MIN_VALUE), ! Short.valueOf(Short.MAX_VALUE)); if (type.equals(String.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.STRING); if (type.equals("void")) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.VOID); if (type.startsWith("java.util.Map")) { ! int lparam = type.indexOf("<"); ! int comma = type.indexOf(",", lparam); ! int rparam = type.indexOf(">", comma); ! String key = type.substring(lparam + 1, comma).trim(); ! OpenType k = translate(key).getOpenType(); ! OpenType v = translate(type.substring(comma + 1, rparam).trim()).getOpenType(); ! CompositeType ctype = new CompositeType(Map.class.getName(), Map.class.getName(), ! new String[] { "key", "value" }, ! new String[] { "Map key", "Map value"}, ! new OpenType[] { k, v}); ! TabularType ttype = new TabularType(key, key, ctype, ! new String[] { "key" }); ! return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! ttype); } if (type.startsWith("java.util.List")) { ! int lparam = type.indexOf("<"); ! int rparam = type.indexOf(">"); ! OpenType e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType(); ! return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! new ArrayType>(1, e) ! ); ! } Class c; try { ! c = Class.forName(type); } catch (ClassNotFoundException e) { ! throw (InternalError) ! (new InternalError("The class for a type used in a management bean " + ! "could not be loaded.").initCause(e)); } if (c.isEnum()) { ! Object[] values = c.getEnumConstants(); ! String[] names = new String[values.length]; ! for (int a = 0; a < values.length; ++a) ! names[a] = values[a].toString(); ! return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.STRING, ! null, names); } if (c.isArray()) { ! int depth; ! for (depth = 0; c.getName().charAt(depth) == '['; ++depth) ; ! OpenType ot = getTypeFromClass(c.getComponentType()); ! return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! new ArrayType>(depth, ot) ! ); } Method[] methods = c.getDeclaredMethods(); List names = new ArrayList(); List> types = new ArrayList>(); for (int a = 0; a < methods.length; ++a) { ! String name = methods[a].getName(); ! if (Modifier.isPublic(methods[a].getModifiers())) ! { ! if (name.startsWith("get")) ! { ! names.add(name.substring(3)); ! types.add(getTypeFromClass(methods[a].getReturnType())); ! } ! else if (name.startsWith("is")) ! { ! names.add(name.substring(2)); ! types.add(getTypeFromClass(methods[a].getReturnType())); ! } ! } } if (names.isEmpty()) throw new OpenDataException("The type used does not have an open type translation."); String[] fields = names.toArray(new String[names.size()]); CompositeType ctype = new CompositeType(c.getName(), c.getName(), ! fields, fields, ! types.toArray(new OpenType[types.size()])); return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! ctype); } /** --- 331,490 ---- { if (type.equals("boolean") || type.equals(Boolean.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.BOOLEAN, ! null, ! new Boolean[] { ! Boolean.TRUE, ! Boolean.FALSE ! }); if (type.equals("byte") || type.equals(Byte.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.BYTE, ! null, ! Byte.valueOf(Byte.MIN_VALUE), ! Byte.valueOf(Byte.MAX_VALUE)); if (type.equals("char") || type.equals(Character.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.CHARACTER, ! null, ! Character.valueOf(Character.MIN_VALUE), ! Character.valueOf(Character.MAX_VALUE)); if (type.equals("double") || type.equals(Double.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.DOUBLE, ! null, ! Double.valueOf(Double.MIN_VALUE), ! Double.valueOf(Double.MAX_VALUE)); if (type.equals("float") || type.equals(Float.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.FLOAT, ! null, ! Float.valueOf(Float.MIN_VALUE), ! Float.valueOf(Float.MAX_VALUE)); if (type.equals("int") || type.equals(Integer.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.INTEGER, ! null, ! Integer.valueOf(Integer.MIN_VALUE), ! Integer.valueOf(Integer.MAX_VALUE)); if (type.equals("long") || type.equals(Long.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.LONG, ! null, ! Long.valueOf(Long.MIN_VALUE), ! Long.valueOf(Long.MAX_VALUE)); if (type.equals("short") || type.equals(Short.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.SHORT, ! null, ! Short.valueOf(Short.MIN_VALUE), ! Short.valueOf(Short.MAX_VALUE)); if (type.equals(String.class.getName())) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.STRING); if (type.equals("void")) return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.VOID); if (type.startsWith("java.util.Map")) { ! int lparam = type.indexOf("<"); ! int comma = type.indexOf(",", lparam); ! int rparam = type.indexOf(">", comma); ! String key = type.substring(lparam + 1, comma).trim(); ! OpenType k = translate(key).getOpenType(); ! OpenType v = translate(type.substring(comma + 1, rparam).trim()).getOpenType(); ! CompositeType ctype = new CompositeType(Map.class.getName(), Map.class.getName(), ! new String[] { "key", "value" }, ! new String[] { "Map key", "Map value"}, ! new OpenType[] { k, v}); ! TabularType ttype = new TabularType(key, key, ctype, ! new String[] { "key" }); ! return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! ttype); } if (type.startsWith("java.util.List")) { ! int lparam = type.indexOf("<"); ! int rparam = type.indexOf(">"); ! OpenType e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType(); ! return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! new ArrayType>(1, e) ! ); ! } Class c; try { ! c = Class.forName(type); } catch (ClassNotFoundException e) { ! throw (InternalError) ! (new InternalError("The class for a type used in a management bean " + ! "could not be loaded.").initCause(e)); } if (c.isEnum()) { ! Object[] values = c.getEnumConstants(); ! String[] names = new String[values.length]; ! for (int a = 0; a < values.length; ++a) ! names[a] = values[a].toString(); ! return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! SimpleType.STRING, ! null, names); } if (c.isArray()) { ! int depth; ! for (depth = 0; c.getName().charAt(depth) == '['; ++depth) ; ! OpenType ot = getTypeFromClass(c.getComponentType()); ! return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! new ArrayType>(depth, ot) ! ); } Method[] methods = c.getDeclaredMethods(); List names = new ArrayList(); List> types = new ArrayList>(); for (int a = 0; a < methods.length; ++a) { ! String name = methods[a].getName(); ! if (Modifier.isPublic(methods[a].getModifiers())) ! { ! if (name.startsWith("get")) ! { ! names.add(name.substring(3)); ! types.add(getTypeFromClass(methods[a].getReturnType())); ! } ! else if (name.startsWith("is")) ! { ! names.add(name.substring(2)); ! types.add(getTypeFromClass(methods[a].getReturnType())); ! } ! } } if (names.isEmpty()) throw new OpenDataException("The type used does not have an open type translation."); String[] fields = names.toArray(new String[names.size()]); CompositeType ctype = new CompositeType(c.getName(), c.getName(), ! fields, fields, ! types.toArray(new OpenType[types.size()])); return new OpenMBeanParameterInfoSupport("TransParam", ! "Translated parameter", ! ctype); } /** *************** public final class Translator *** 524,548 **** * @return the type name computed according to the rules above. */ private static final String getTypeName(Type type) ! { if (type instanceof Class) { ! Class c = (Class) type; ! if (c.isArray()) ! { ! StringBuilder b = ! new StringBuilder(c.getComponentType().getName()); ! String normName = c.getName(); ! for (int a = 0; a < normName.length(); ++a) ! { ! if (normName.charAt(a) == '[') ! b.append("[]"); ! else ! break; ! } ! return b.toString(); ! } ! return c.getName(); } return type.toString(); } --- 524,548 ---- * @return the type name computed according to the rules above. */ private static final String getTypeName(Type type) ! { if (type instanceof Class) { ! Class c = (Class) type; ! if (c.isArray()) ! { ! StringBuilder b = ! new StringBuilder(c.getComponentType().getName()); ! String normName = c.getName(); ! for (int a = 0; a < normName.length(); ++a) ! { ! if (normName.charAt(a) == '[') ! b.append("[]"); ! else ! break; ! } ! return b.toString(); ! } ! return c.getName(); } return type.toString(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CosNaming.NamingContextPa *** 79,85 **** * to the existing naming service. When listing bindings, it uses the * {@link Context#BATCHSIZE} property to determine, how many bindings should * be returned at once (the process is transparend) ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class ContextContinuation implements Context --- 79,85 ---- * to the existing naming service. When listing bindings, it uses the * {@link Context#BATCHSIZE} property to determine, how many bindings should * be returned at once (the process is transparend) ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class ContextContinuation implements Context *************** public class ContextContinuation impleme *** 90,117 **** * one. Use {@link Context#BATCHSIZE} to override the value of this constant. */ public int DEFAULT_BATCH_SIZE = 20; ! /** * The actual CORBA naming service. */ NamingContextExt service; ! /** * The object request broker, used to access the naming service. This field ! * is only initialised when the context is constructed from the URL. */ ORB orb; ! /** * The properties. */ Hashtable properties; ! /** * The parent factory. */ GiopNamingServiceFactory factory; ! /** * The name transformer to obtain the name from its string representation. The * to_name method of the naming service is avoided as it may be remote and --- 90,117 ---- * one. Use {@link Context#BATCHSIZE} to override the value of this constant. */ public int DEFAULT_BATCH_SIZE = 20; ! /** * The actual CORBA naming service. */ NamingContextExt service; ! /** * The object request broker, used to access the naming service. This field ! * is only initialised when the context is constructed from the URL. */ ORB orb; ! /** * The properties. */ Hashtable properties; ! /** * The parent factory. */ GiopNamingServiceFactory factory; ! /** * The name transformer to obtain the name from its string representation. The * to_name method of the naming service is avoided as it may be remote and *************** public class ContextContinuation impleme *** 119,134 **** * specific. */ static NameTransformer transformer = new NameTransformer(); ! /** * The batch size for list operations - how many to return at once. */ public final int howMany; ! /** * Creates a new naming context that uses naming service, represented by the * given CORBA object. ! * * @param nsObject * the naming service object. It must be possible to narrow it into * the NamingContextExt. --- 119,134 ---- * specific. */ static NameTransformer transformer = new NameTransformer(); ! /** * The batch size for list operations - how many to return at once. */ public final int howMany; ! /** * Creates a new naming context that uses naming service, represented by the * given CORBA object. ! * * @param nsObject * the naming service object. It must be possible to narrow it into * the NamingContextExt. *************** public class ContextContinuation impleme *** 177,183 **** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. The components of the name are * mapped into the components of the CORBA name. ! * * @param name * the name that will be given to the object (in the scope of this * context). --- 177,183 ---- * Give the specified name for the specified object. The passed name must not * be already bound to some other object. The components of the name are * mapped into the components of the CORBA name. ! * * @param name * the name that will be given to the object (in the scope of this * context). *************** public class ContextContinuation impleme *** 218,224 **** /** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. ! * * @param name * the name that will be given to the object (in the scope of this * context). --- 218,224 ---- /** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. ! * * @param name * the name that will be given to the object (in the scope of this * context). *************** public class ContextContinuation impleme *** 261,267 **** * can be called several times, but after it has been once invoked, it is not * allowed to call any other method of this context. This method destroys * the ORB, if we have one. ! * * @throws NamingException */ public void close() throws NamingException --- 261,267 ---- * can be called several times, but after it has been once invoked, it is not * allowed to call any other method of this context. This method destroys * the ORB, if we have one. ! * * @throws NamingException */ public void close() throws NamingException *************** public class ContextContinuation impleme *** 292,298 **** * Creates the new naming subcontext and binds it to the current (this) * context. The returned object will wrap around the newly created CORBA * subcontext ! * * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on --- 292,298 ---- * Creates the new naming subcontext and binds it to the current (this) * context. The returned object will wrap around the newly created CORBA * subcontext ! * * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on *************** public class ContextContinuation impleme *** 312,318 **** toGiop(subContext)); Hashtable clonedProps = new Hashtable(); clonedProps.putAll(properties); ! // Nulls are passed both for orb and factory, as the child contexts // need not to do any cleanup. return new ContextContinuation(subcontext, clonedProps, null, null); --- 312,318 ---- toGiop(subContext)); Hashtable clonedProps = new Hashtable(); clonedProps.putAll(properties); ! // Nulls are passed both for orb and factory, as the child contexts // need not to do any cleanup. return new ContextContinuation(subcontext, clonedProps, null, null); *************** public class ContextContinuation impleme *** 335,341 **** * Creates the new naming subcontext and binds it to the current (this) * context. The returned object will wrap around the newly created CORBA * subcontext ! * * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on --- 335,341 ---- * Creates the new naming subcontext and binds it to the current (this) * context. The returned object will wrap around the newly created CORBA * subcontext ! * * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on *************** public class ContextContinuation impleme *** 351,357 **** { try { ! org.omg.CORBA.Object subcontext = service.bind_new_context(transformer.toName(subContext)); Hashtable clonedProps = new Hashtable(); clonedProps.putAll(properties); --- 351,357 ---- { try { ! org.omg.CORBA.Object subcontext = service.bind_new_context(transformer.toName(subContext)); Hashtable clonedProps = new Hashtable(); clonedProps.putAll(properties); *************** public class ContextContinuation impleme *** 379,385 **** * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException --- 379,385 ---- * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException *************** public class ContextContinuation impleme *** 395,401 **** * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException --- 395,401 ---- * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException *************** public class ContextContinuation impleme *** 411,417 **** * Returs the full name of this naming context. The returned string is not a * JNDI composite name and should not be passed directly to the methods of the * naming context. This implementation returns the IOR. ! * * @return the full name of this naming context, in its own namespace. * @throws OperationNotSupportedException * if the naming system, represented by this context, does not --- 411,417 ---- * Returs the full name of this naming context. The returned string is not a * JNDI composite name and should not be passed directly to the methods of the * naming context. This implementation returns the IOR. ! * * @return the full name of this naming context, in its own namespace. * @throws OperationNotSupportedException * if the naming system, represented by this context, does not *************** public class ContextContinuation impleme *** 459,465 **** * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. --- 459,465 ---- * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. *************** public class ContextContinuation impleme *** 499,505 **** * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. --- 499,505 ---- * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. *************** public class ContextContinuation impleme *** 538,544 **** * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. --- 538,544 ---- * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. *************** public class ContextContinuation impleme *** 576,582 **** * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. --- 576,582 ---- * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. *************** public class ContextContinuation impleme *** 612,618 **** /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name * the name of the object being searched in this context * @return the named object --- 612,618 ---- /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name * the name of the object being searched in this context * @return the named object *************** public class ContextContinuation impleme *** 642,648 **** /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name * the name of the object being searched in this context * @return the named object --- 642,648 ---- /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name * the name of the object being searched in this context * @return the named object *************** public class ContextContinuation impleme *** 688,694 **** /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name * the name that will be given to the object (in the scope of this * context). --- 688,694 ---- /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name * the name that will be given to the object (in the scope of this * context). *************** public class ContextContinuation impleme *** 723,729 **** /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name * the name that will be given to the object (in the scope of this * context). --- 723,729 ---- /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name * the name that will be given to the object (in the scope of this * context). *************** public class ContextContinuation impleme *** 758,764 **** /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName * the existing name of the known object * @param newName --- 758,764 ---- /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName * the existing name of the known object * @param newName *************** public class ContextContinuation impleme *** 778,784 **** /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName * the existing name of the known object * @param newName --- 778,784 ---- /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName * the existing name of the known object * @param newName *************** public class ContextContinuation impleme *** 800,806 **** * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name * the name to be removed * @throws NameNotFoundException --- 800,806 ---- * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name * the name to be removed * @throws NameNotFoundException *************** public class ContextContinuation impleme *** 834,840 **** * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name * the name to be removed * @throws NameNotFoundException --- 834,840 ---- * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name * the name to be removed * @throws NameNotFoundException *************** public class ContextContinuation impleme *** 862,873 **** throw new InvalidNameException(name); } } ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. ! * * @param key * the name of the new property * @param value --- 862,873 ---- throw new InvalidNameException(name); } } ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. ! * * @param key * the name of the new property * @param value *************** public class ContextContinuation impleme *** 888,894 **** * Returns the environment, associated with this naming context. The returned * table should never be modified by the caller. Use {@link #addToEnvironment} * and {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ --- 888,894 ---- * Returns the environment, associated with this naming context. The returned * table should never be modified by the caller. Use {@link #addToEnvironment} * and {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ *************** public class ContextContinuation impleme *** 900,906 **** /** * Removes the property with the given name from the environment. Returns * without action if this property is not defined. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the --- 900,906 ---- /** * Removes the property with the given name from the environment. Returns * without action if this property is not defined. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the *************** public class ContextContinuation impleme *** 911,922 **** { return properties.remove(propName); } ! /** * Convert the {@link Name} into array of the name components, required to the * CORBA naming service. First the string representation is obtained, then * it is converted using parsing rules of the CORBA name. ! * * @param name * then name to convert * @return the converted array of components. --- 911,922 ---- { return properties.remove(propName); } ! /** * Convert the {@link Name} into array of the name components, required to the * CORBA naming service. First the string representation is obtained, then * it is converted using parsing rules of the CORBA name. ! * * @param name * then name to convert * @return the converted array of components. *************** public class ContextContinuation impleme *** 925,935 **** { return transformer.toName(name.toString()); } ! /** * Get the batch size from the environment properties. The batch size is used * for listing operations. ! * * @return the batch size, or some default value if not specified. */ public int getBatchSize() --- 925,935 ---- { return transformer.toName(name.toString()); } ! /** * Get the batch size from the environment properties. The batch size is used * for listing operations. ! * * @return the batch size, or some default value if not specified. */ public int getBatchSize() *************** public class ContextContinuation impleme *** 951,956 **** } return batchSize; } ! ! } --- 951,956 ---- } return batchSize; } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.ORBPackage.InvalidN *** 65,79 **** /** * Parses the alternative IOR representations into our IOR structure. ! * * TODO This parser currently supports only one address per target string. A * string with the multiple addresses will be accepted, but only the last * address will be taken into consideration. The fault tolerance is not yet * implemented. ! * * The key string is filtered using {@link java.net.URLDecoder} that replaces * the agreed escape sequences by the corresponding non alphanumeric characters. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class CorbalocParser --- 65,79 ---- /** * Parses the alternative IOR representations into our IOR structure. ! * * TODO This parser currently supports only one address per target string. A * string with the multiple addresses will be accepted, but only the last * address will be taken into consideration. The fault tolerance is not yet * implemented. ! * * The key string is filtered using {@link java.net.URLDecoder} that replaces * the agreed escape sequences by the corresponding non alphanumeric characters. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class CorbalocParser *************** public class CorbalocParser *** 93,109 **** * The IOR prefix. */ public static final String pxIOR = "ior"; ! /** * The file:// prefix. */ public static final String pxFILE = "file://"; ! /** * The ftp:// prefix. */ public static final String pxFTP = "ftp://"; ! /** * The http:// prefix. */ --- 93,109 ---- * The IOR prefix. */ public static final String pxIOR = "ior"; ! /** * The file:// prefix. */ public static final String pxFILE = "file://"; ! /** * The ftp:// prefix. */ public static final String pxFTP = "ftp://"; ! /** * The http:// prefix. */ *************** public class CorbalocParser *** 146,152 **** /** * Parse CORBALOC. ! * * The expected format is:
          * 1. corbaloc:[iiop][version.subversion@]:host[:port]/key
          * 2. corbaloc:rir:[/key]
          --- 146,152 ---- /** * Parse CORBALOC. ! * * The expected format is:
          * 1. corbaloc:[iiop][version.subversion@]:host[:port]/key
          * 2. corbaloc:rir:[/key]
          *************** public class CorbalocParser *** 155,168 **** * 5. file://[file name]
          * 6. http://[url]
          * 7. ftp://[url]
          ! * * Protocol defaults to IOP, the object key defaults to the NameService. ! * * @param corbaloc the string to parse. * @param orb the ORB, needed to create IORs and resolve rir references. ! * * @return the arrey of strings, first member being the IOR of the ! * naming service, second member the name in the naming service. */ public synchronized String[] corbaloc(String corbaloc, ORB orb) --- 155,168 ---- * 5. file://[file name]
          * 6. http://[url]
          * 7. ftp://[url]
          ! * * Protocol defaults to IOP, the object key defaults to the NameService. ! * * @param corbaloc the string to parse. * @param orb the ORB, needed to create IORs and resolve rir references. ! * * @return the arrey of strings, first member being the IOR of the ! * naming service, second member the name in the naming service. */ public synchronized String[] corbaloc(String corbaloc, ORB orb) *************** public class CorbalocParser *** 170,176 **** { return corbaloc(corbaloc, orb, 0); } ! /** * Parse controlling against the infinite recursion loop. */ --- 170,176 ---- { return corbaloc(corbaloc, orb, 0); } ! /** * Parse controlling against the infinite recursion loop. */ *************** public class CorbalocParser *** 182,188 **** // by malicious attempt. if (recursion > 10) throw new DATA_CONVERSION("More than 10 redirections"); ! if (corbaloc.startsWith(pxFILE)) return corbaloc(readFile(corbaloc.substring(pxFILE.length())), orb, recursion+1); else if (corbaloc.startsWith(pxHTTP)) --- 182,188 ---- // by malicious attempt. if (recursion > 10) throw new DATA_CONVERSION("More than 10 redirections"); ! if (corbaloc.startsWith(pxFILE)) return corbaloc(readFile(corbaloc.substring(pxFILE.length())), orb, recursion+1); else if (corbaloc.startsWith(pxHTTP)) *************** public class CorbalocParser *** 334,340 **** throw new InvalidNameException("Unsupported protocol '" + t[p] + "' (iiop expected)"); } ! /** * Read IOR from the file in the local file system. */ --- 334,340 ---- throw new InvalidNameException("Unsupported protocol '" + t[p] + "' (iiop expected)"); } ! /** * Read IOR from the file in the local file system. */ *************** public class CorbalocParser *** 363,369 **** throw (d); } } ! /** * Read IOR from the remote URL. */ --- 363,369 ---- throw (d); } } ! /** * Read IOR from the remote URL. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CosNaming.BindingListHold *** 51,57 **** /** * Iterates over name class pairs, obtaining values first from the binding list * and then from the binding iterator. ! * * @author Audrius Meskauskas */ public abstract class GiopNamingEnumeration implements NamingEnumeration --- 51,57 ---- /** * Iterates over name class pairs, obtaining values first from the binding list * and then from the binding iterator. ! * * @author Audrius Meskauskas */ public abstract class GiopNamingEnumeration implements NamingEnumeration *************** public abstract class GiopNamingEnumerat *** 60,77 **** * The array of bindings, returned at once. */ Binding[] list; ! /** * The binding iterator to obtain the subsequent bindings. May be null, * if all values are stored in the list. */ BindingIterator iterator; ! /** * The batch size. */ int batch; ! /** * The position of the element in the binding list, that must be returned * during the subsequent call of the next(). If this field is grater or equal --- 60,77 ---- * The array of bindings, returned at once. */ Binding[] list; ! /** * The binding iterator to obtain the subsequent bindings. May be null, * if all values are stored in the list. */ BindingIterator iterator; ! /** * The batch size. */ int batch; ! /** * The position of the element in the binding list, that must be returned * during the subsequent call of the next(). If this field is grater or equal *************** public abstract class GiopNamingEnumerat *** 79,95 **** * iterator. */ int p; ! GiopNamingEnumeration(BindingListHolder bh, BindingIteratorHolder bih, int batchSize) { list = bh.value; iterator = bih.value; batch = batchSize; } ! /** * Convert from the CORBA binding into that this enumeration should return. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. --- 79,95 ---- * iterator. */ int p; ! GiopNamingEnumeration(BindingListHolder bh, BindingIteratorHolder bih, int batchSize) { list = bh.value; iterator = bih.value; batch = batchSize; } ! /** * Convert from the CORBA binding into that this enumeration should return. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. *************** public abstract class GiopNamingEnumerat *** 104,113 **** iterator = null; } } ! /** * Checks if there are more elements to return. ! * * @throws NamingException * never */ --- 104,113 ---- iterator = null; } } ! /** * Checks if there are more elements to return. ! * * @throws NamingException * never */ *************** public abstract class GiopNamingEnumerat *** 118,124 **** /** * Returns the next element. ! * * @throws NamingException * never */ --- 118,124 ---- /** * Returns the next element. ! * * @throws NamingException * never */ *************** public abstract class GiopNamingEnumerat *** 155,161 **** else throw new NoSuchElementException(); } ! /** * Tries to obtain more elements, return true on success. Updates the fields * accordingly. --- 155,161 ---- else throw new NoSuchElementException(); } ! /** * Tries to obtain more elements, return true on success. Updates the fields * accordingly. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.ORB; *** 61,67 **** * parsed using the specification of the corbaname urls. Being the naming * service, the returned context supports creating the subcontexts, forwarding * this task to the existing naming service. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class GiopNamingServiceFactory --- 61,67 ---- * parsed using the specification of the corbaname urls. Being the naming * service, the returned context supports creating the subcontexts, forwarding * this task to the existing naming service. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class GiopNamingServiceFactory *************** public class GiopNamingServiceFactory *** 70,86 **** * The default naming service provider. It is assumed, that the naming service * is running on the port 900 of the local host, using the GIOP version 1.2 */ ! public static final String DEFAULT_PROVIDER = "corbaloc:iiop:1.2@127.0.0.1:900/NameService"; ! /** ! * The table of all instantiated ORB's that are found by they ORB * properties signatures. If all ORB related properties are the same, * the ORB's are shared. */ public static Hashtable orbs = new Hashtable(); ! ! /** * Create a new instance of the corbaname URL context. */ --- 70,86 ---- * The default naming service provider. It is assumed, that the naming service * is running on the port 900 of the local host, using the GIOP version 1.2 */ ! public static final String DEFAULT_PROVIDER = "corbaloc:iiop:1.2@127.0.0.1:900/NameService"; ! /** ! * The table of all instantiated ORB's that are found by they ORB * properties signatures. If all ORB related properties are the same, * the ORB's are shared. */ public static Hashtable orbs = new Hashtable(); ! ! /** * Create a new instance of the corbaname URL context. */ *************** public class GiopNamingServiceFactory *** 116,128 **** return new GiopNamingServiceURLContext(environment, this, orb); } ! /** * Check if this ORB is still in use (maybe it is time to shutdown it). This * method only works when the Classpath CORBA implementation is used * (otherwise it return without action). The method is called from the close() * method of the created context. ! * * @param orb * the ORB that maybe is no longer referenced. */ --- 116,128 ---- return new GiopNamingServiceURLContext(environment, this, orb); } ! /** * Check if this ORB is still in use (maybe it is time to shutdown it). This * method only works when the Classpath CORBA implementation is used * (otherwise it return without action). The method is called from the close() * method of the created context. ! * * @param orb * the ORB that maybe is no longer referenced. */ *************** public class GiopNamingServiceFactory *** 139,145 **** { cOrb.shutdown(false); cOrb.destroy(); ! Enumeration keys = orbs.keys(); Object key; Remove: while (keys.hasMoreElements()) --- 139,145 ---- { cOrb.shutdown(false); cOrb.destroy(); ! Enumeration keys = orbs.keys(); Object key; Remove: while (keys.hasMoreElements()) *************** public class GiopNamingServiceFactory *** 155,161 **** } } } ! /** * Get all properties. */ --- 155,161 ---- } } } ! /** * Get all properties. */ *************** public class GiopNamingServiceFactory *** 164,170 **** TreeMap map = new TreeMap(); map.putAll(props); CPStringBuilder b = new CPStringBuilder(50*props.size()); ! Iterator iter = map.entrySet().iterator(); Map.Entry m; while (iter.hasNext()) --- 164,170 ---- TreeMap map = new TreeMap(); map.putAll(props); CPStringBuilder b = new CPStringBuilder(50*props.size()); ! Iterator iter = map.entrySet().iterator(); Map.Entry m; while (iter.hasNext()) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CosNaming.NamingContextPa *** 80,86 **** * to the existing naming service. When listing bindings, it uses the * {@link Context#BATCHSIZE} property to determine, how many bindings should * be returned at once (the process is transparend) ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class GiopNamingServiceURLContext extends CorbalocParser implements --- 80,86 ---- * to the existing naming service. When listing bindings, it uses the * {@link Context#BATCHSIZE} property to determine, how many bindings should * be returned at once (the process is transparend) ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class GiopNamingServiceURLContext extends CorbalocParser implements *************** public class GiopNamingServiceURLContext *** 95,101 **** /** * The object request broker, used to access the naming service. This field ! * is only initialised when the context is constructed from the URL. */ ORB orb; --- 95,101 ---- /** * The object request broker, used to access the naming service. This field ! * is only initialised when the context is constructed from the URL. */ ORB orb; *************** public class GiopNamingServiceURLContext *** 125,131 **** /** * Creates a new naming context that uses naming service, represented by the * given CORBA object. ! * * @param props * the environment table. * @param aFactory --- 125,131 ---- /** * Creates a new naming context that uses naming service, represented by the * given CORBA object. ! * * @param props * the environment table. * @param aFactory *************** public class GiopNamingServiceURLContext *** 143,149 **** properties = props; howMany = getBatchSize(); } ! public NamingContextExt getService(String address) { org.omg.CORBA.Object nsObject = orb.string_to_object(address); --- 143,149 ---- properties = props; howMany = getBatchSize(); } ! public NamingContextExt getService(String address) { org.omg.CORBA.Object nsObject = orb.string_to_object(address); *************** public class GiopNamingServiceURLContext *** 199,205 **** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. The components of the name are * mapped into the components of the CORBA name. ! * * @param name * the name that will be given to the object (in the scope of this * context). --- 199,205 ---- * Give the specified name for the specified object. The passed name must not * be already bound to some other object. The components of the name are * mapped into the components of the CORBA name. ! * * @param name * the name that will be given to the object (in the scope of this * context). *************** public class GiopNamingServiceURLContext *** 220,226 **** /** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. ! * * @param name * the name that will be given to the object (in the scope of this * context). --- 220,226 ---- /** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. ! * * @param name * the name that will be given to the object (in the scope of this * context). *************** public class GiopNamingServiceURLContext *** 237,243 **** { try { ! String[] n = split(name); org.omg.CORBA.Object object = (org.omg.CORBA.Object) obj; getService(n[0]).bind(transformer.toName(n[1]), object); } --- 237,243 ---- { try { ! String[] n = split(name); org.omg.CORBA.Object object = (org.omg.CORBA.Object) obj; getService(n[0]).bind(transformer.toName(n[1]), object); } *************** public class GiopNamingServiceURLContext *** 264,270 **** * can be called several times, but after it has been once invoked, it is not * allowed to call any other method of this context. This method destroys * the ORB, if we have one. ! * * @throws NamingException */ public void close() throws NamingException --- 264,270 ---- * can be called several times, but after it has been once invoked, it is not * allowed to call any other method of this context. This method destroys * the ORB, if we have one. ! * * @throws NamingException */ public void close() throws NamingException *************** public class GiopNamingServiceURLContext *** 295,301 **** * Creates the new naming subcontext and binds it to the current (this) * context. The returned object will wrap around the newly created CORBA * subcontext ! * * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on --- 295,301 ---- * Creates the new naming subcontext and binds it to the current (this) * context. The returned object will wrap around the newly created CORBA * subcontext ! * * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on *************** public class GiopNamingServiceURLContext *** 316,322 **** * Creates the new naming subcontext and binds it to the current (this) * context. The returned object will wrap around the newly created CORBA * subcontext ! * * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on --- 316,322 ---- * Creates the new naming subcontext and binds it to the current (this) * context. The returned object will wrap around the newly created CORBA * subcontext ! * * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on *************** public class GiopNamingServiceURLContext *** 360,366 **** * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException --- 360,366 ---- * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException *************** public class GiopNamingServiceURLContext *** 376,382 **** * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException --- 376,382 ---- * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException *************** public class GiopNamingServiceURLContext *** 419,425 **** * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. --- 419,425 ---- * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. *************** public class GiopNamingServiceURLContext *** 437,443 **** * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. --- 437,443 ---- * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. *************** public class GiopNamingServiceURLContext *** 449,455 **** BindingListHolder bl = new BindingListHolder(); NamingContext subcontext; ! String [] n = split(name); NamingContextExt service = getService(n[0]); --- 449,455 ---- BindingListHolder bl = new BindingListHolder(); NamingContext subcontext; ! String [] n = split(name); NamingContextExt service = getService(n[0]); *************** public class GiopNamingServiceURLContext *** 479,485 **** * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. --- 479,485 ---- * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. *************** public class GiopNamingServiceURLContext *** 496,502 **** * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. --- 496,502 ---- * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name * the name of the subcontext * @return the enumeration over the names, known for the given subcontext. *************** public class GiopNamingServiceURLContext *** 508,514 **** BindingListHolder bl = new BindingListHolder(); NamingContext subcontext; ! String [] n = split(name); NamingContextExt service = getService(n[0]); --- 508,514 ---- BindingListHolder bl = new BindingListHolder(); NamingContext subcontext; ! String [] n = split(name); NamingContextExt service = getService(n[0]); *************** public class GiopNamingServiceURLContext *** 535,541 **** /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name * the name of the object being searched in this context * @return the named object --- 535,541 ---- /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name * the name of the object being searched in this context * @return the named object *************** public class GiopNamingServiceURLContext *** 550,556 **** /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name * the name of the object being searched in this context * @return the named object --- 550,556 ---- /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name * the name of the object being searched in this context * @return the named object *************** public class GiopNamingServiceURLContext *** 598,604 **** /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name * the name that will be given to the object (in the scope of this * context). --- 598,604 ---- /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name * the name that will be given to the object (in the scope of this * context). *************** public class GiopNamingServiceURLContext *** 617,623 **** /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name * the name that will be given to the object (in the scope of this * context). --- 617,623 ---- /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name * the name that will be given to the object (in the scope of this * context). *************** public class GiopNamingServiceURLContext *** 655,661 **** /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName * the existing name of the known object * @param newName --- 655,661 ---- /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName * the existing name of the known object * @param newName *************** public class GiopNamingServiceURLContext *** 675,681 **** /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName * the existing name of the known object * @param newName --- 675,681 ---- /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName * the existing name of the known object * @param newName *************** public class GiopNamingServiceURLContext *** 697,703 **** * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name * the name to be removed * @throws NameNotFoundException --- 697,703 ---- * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name * the name to be removed * @throws NameNotFoundException *************** public class GiopNamingServiceURLContext *** 716,722 **** * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name * the name to be removed * @throws NameNotFoundException --- 716,722 ---- * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name * the name to be removed * @throws NameNotFoundException *************** public class GiopNamingServiceURLContext *** 752,758 **** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. ! * * @param key * the name of the new property * @param value --- 752,758 ---- * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. ! * * @param key * the name of the new property * @param value *************** public class GiopNamingServiceURLContext *** 773,779 **** * Returns the environment, associated with this naming context. The returned * table should never be modified by the caller. Use {@link #addToEnvironment} * and {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ --- 773,779 ---- * Returns the environment, associated with this naming context. The returned * table should never be modified by the caller. Use {@link #addToEnvironment} * and {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ *************** public class GiopNamingServiceURLContext *** 785,791 **** /** * Removes the property with the given name from the environment. Returns * without action if this property is not defined. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the --- 785,791 ---- /** * Removes the property with the given name from the environment. Returns * without action if this property is not defined. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the *************** public class GiopNamingServiceURLContext *** 801,807 **** * Convert the {@link Name} into array of the name components, required to the * CORBA naming service. First the string representation is obtained, then * it is converted using parsing rules of the CORBA name. ! * * @param name * then name to convert * @return the converted array of components. --- 801,807 ---- * Convert the {@link Name} into array of the name components, required to the * CORBA naming service. First the string representation is obtained, then * it is converted using parsing rules of the CORBA name. ! * * @param name * then name to convert * @return the converted array of components. *************** public class GiopNamingServiceURLContext *** 814,820 **** /** * Get the batch size from the environment properties. The batch size is used * for listing operations. ! * * @return the batch size, or some default value if not specified. */ public int getBatchSize() --- 814,820 ---- /** * Get the batch size from the environment properties. The batch size is used * for listing operations. ! * * @return the batch size, or some default value if not specified. */ public int getBatchSize() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CosNaming.NamingContext; *** 50,56 **** /** * Iterates over bindings, obtaining values first from the binding list and then * from the binding iterator. ! * * @author Audrius Meskauskas */ public class ListBindingsEnumeration extends GiopNamingEnumeration implements --- 50,56 ---- /** * Iterates over bindings, obtaining values first from the binding list and then * from the binding iterator. ! * * @author Audrius Meskauskas */ public class ListBindingsEnumeration extends GiopNamingEnumeration implements *************** public class ListBindingsEnumeration ext *** 60,69 **** * The naming service, to resolve the objects. */ NamingContext service; ! /** * Create the new enumeration ! * * @param bh * holder, containing the first portion of the bindings * @param bih --- 60,69 ---- * The naming service, to resolve the objects. */ NamingContext service; ! /** * Create the new enumeration ! * * @param bh * holder, containing the first portion of the bindings * @param bih *************** public class ListBindingsEnumeration ext *** 75,93 **** * the naming service, used to obtain the objects, bound to the * names. */ ! public ListBindingsEnumeration(BindingListHolder bh, ! BindingIteratorHolder bih, int batchSize, NamingContext aService) { super(bh, bih, batchSize); service = aService; } ! /** * Convert from the CORBA binding into the javax.naming binding. As the CORBA * naming service binding does not contain the object itself, this method * makes the additional calls to the naming service. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. --- 75,93 ---- * the naming service, used to obtain the objects, bound to the * names. */ ! public ListBindingsEnumeration(BindingListHolder bh, ! BindingIteratorHolder bih, int batchSize, NamingContext aService) { super(bh, bih, batchSize); service = aService; } ! /** * Convert from the CORBA binding into the javax.naming binding. As the CORBA * naming service binding does not contain the object itself, this method * makes the additional calls to the naming service. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. *************** public class ListBindingsEnumeration ext *** 102,108 **** if (i < binding.binding_name.length - 1) name.append('/'); } ! try { Object object = service.resolve(binding.binding_name); --- 102,108 ---- if (i < binding.binding_name.length - 1) name.append('/'); } ! try { Object object = service.resolve(binding.binding_name); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CosNaming.NamingContext; *** 52,58 **** /** * Iterates over name class pairs, obtaining values first from the binding list * and then from the binding iterator. ! * * @author Audrius Meskauskas */ public class ListEnumeration extends GiopNamingEnumeration implements --- 52,58 ---- /** * Iterates over name class pairs, obtaining values first from the binding list * and then from the binding iterator. ! * * @author Audrius Meskauskas */ public class ListEnumeration extends GiopNamingEnumeration implements *************** public class ListEnumeration extends Gio *** 60,66 **** { /** * Create the new enumeration ! * * @param bh * holder, containing the first portion of the bindings * @param bih --- 60,66 ---- { /** * Create the new enumeration ! * * @param bh * holder, containing the first portion of the bindings * @param bih *************** public class ListEnumeration extends Gio *** 69,86 **** * the number of bindings the the iterator will be requested to * return as a single pack */ ! public ListEnumeration(BindingListHolder bh, BindingIteratorHolder bih, int batchSize) { super(bh, bih, batchSize); } ! /** * Convert from the CORBA binding into the {@link NameClassPair} that this * enumeration should return. This method converts into NameClassPair, * connecting the name components with slashes and setting the class name * to either NamingContext or GIOP Object. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. --- 69,86 ---- * the number of bindings the the iterator will be requested to * return as a single pack */ ! public ListEnumeration(BindingListHolder bh, BindingIteratorHolder bih, int batchSize) { super(bh, bih, batchSize); } ! /** * Convert from the CORBA binding into the {@link NameClassPair} that this * enumeration should return. This method converts into NameClassPair, * connecting the name components with slashes and setting the class name * to either NamingContext or GIOP Object. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. *************** public class ListEnumeration extends Gio *** 113,118 **** NameClassPair pair = new NameClassPair(name.toString(), className); return pair; ! } ! } --- 113,118 ---- NameClassPair pair = new NameClassPair(name.toString(), className); return pair; ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.Name; *** 47,53 **** /** * The implementation of the {@link Name}. ! * * @author Audrius Meskauskas */ public class GnuName --- 47,53 ---- /** * The implementation of the {@link Name}. ! * * @author Audrius Meskauskas */ public class GnuName *************** public class GnuName *** 61,67 **** { /** * Get the new enumeration that enumerates from the given position forward ! * * @param position the position of the first name component to enumerate (0 * means first element) */ --- 61,67 ---- { /** * Get the new enumeration that enumerates from the given position forward ! * * @param position the position of the first name component to enumerate (0 * means first element) */ *************** public class GnuName *** 134,140 **** /** * Creates the name, containing from the given chain of the atomic components. ! * * @param name the array, containing the name components. */ public GnuName(String[] name) --- 134,140 ---- /** * Creates the name, containing from the given chain of the atomic components. ! * * @param name the array, containing the name components. */ public GnuName(String[] name) *************** public class GnuName *** 157,163 **** * Inserts the given String component to this Name * at the given index. The method modifies the current Name and * then returns it. ! * * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). * @exception InvalidNameException if the given String is not a --- 157,163 ---- * Inserts the given String component to this Name * at the given index. The method modifies the current Name and * then returns it. ! * * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). * @exception InvalidNameException if the given String is not a *************** public class GnuName *** 181,187 **** * Adds the given String component to the end of this * Name. The method modifies the current Name * and then returns it. ! * * @exception InvalidNameException if the given String is not a * valid component for this Name. */ --- 181,187 ---- * Adds the given String component to the end of this * Name. The method modifies the current Name * and then returns it. ! * * @exception InvalidNameException if the given String is not a * valid component for this Name. */ *************** public class GnuName *** 203,209 **** * Name at the given index. Components after this index (if * any) are shifted up. The method modifies the current Name * and then returns it. ! * * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). * @exception InvalidNameException if any of the given components is not a --- 203,209 ---- * Name at the given index. Components after this index (if * any) are shifted up. The method modifies the current Name * and then returns it. ! * * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). * @exception InvalidNameException if any of the given components is not a *************** public class GnuName *** 230,236 **** * Adds all the components of the given Name to the end of this * Name. The method modifies the current Name * and then returns it. ! * * @exception InvalidNameException if any of the given components is not a * valid component for this Name. */ --- 230,236 ---- * Adds all the components of the given Name to the end of this * Name. The method modifies the current Name * and then returns it. ! * * @exception InvalidNameException if any of the given components is not a * valid component for this Name. */ *************** public class GnuName *** 296,302 **** /** * Gets the component at the given index. ! * * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). */ --- 296,302 ---- /** * Gets the component at the given index. ! * * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). */ *************** public class GnuName *** 317,323 **** /** * Returns the components till the given index as a Name. The * returned Name can be modified without changing the original. ! * * @param posn the ending position, exclusive * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). --- 317,323 ---- /** * Returns the components till the given index as a Name. The * returned Name can be modified without changing the original. ! * * @param posn the ending position, exclusive * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). *************** public class GnuName *** 331,337 **** * Returns the components from the given index till the end as a * Name. The returned Name can be modified * without changing the original. ! * * @param posn the starting position, inclusive. If it is equal to the size of * the name, the empty name is returned. * @exception ArrayIndexOutOfBoundsException if the given index is smaller --- 331,337 ---- * Returns the components from the given index till the end as a * Name. The returned Name can be modified * without changing the original. ! * * @param posn the starting position, inclusive. If it is equal to the size of * the name, the empty name is returned. * @exception ArrayIndexOutOfBoundsException if the given index is smaller *************** public class GnuName *** 354,360 **** /** * Removes the component at the given index from this Name. * The method modifies the current Name and then returns it. ! * * @exception InvalidNameException if the name size reduces below zero. */ public Object remove(int posn) throws InvalidNameException --- 354,360 ---- /** * Removes the component at the given index from this Name. * The method modifies the current Name and then returns it. ! * * @exception InvalidNameException if the name size reduces below zero. */ public Object remove(int posn) throws InvalidNameException diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.spi.ObjectFactory; *** 43,50 **** /** * The GIOP URL context factory. ! * ! * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class corbanameURLContextFactory extends GiopNamingServiceFactory implements ObjectFactory --- 43,50 ---- /** * The GIOP URL context factory. ! * ! * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class corbanameURLContextFactory extends GiopNamingServiceFactory implements ObjectFactory diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.NamingException; *** 60,67 **** import javax.naming.OperationNotSupportedException; /** ! * The implementation of the RMI URL context. This context connects ! * * @author Audrius Meskauskas */ public class ContextContinuation implements Context --- 60,67 ---- import javax.naming.OperationNotSupportedException; /** ! * The implementation of the RMI URL context. This context connects ! * * @author Audrius Meskauskas */ public class ContextContinuation implements Context *************** public class ContextContinuation impleme *** 70,87 **** * The default registry location. */ public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; ! /** * The local or remote RMI registry, performing the actual work for this * context. */ Registry registry; ! /** * The properties. */ Properties properties; ! /** * The flag, indicating, that the lookup methods were called before. * If the lookup methods were called before, the existing ORB cannot be --- 70,87 ---- * The default registry location. */ public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; ! /** * The local or remote RMI registry, performing the actual work for this * context. */ Registry registry; ! /** * The properties. */ Properties properties; ! /** * The flag, indicating, that the lookup methods were called before. * If the lookup methods were called before, the existing ORB cannot be *************** public class ContextContinuation impleme *** 89,102 **** * unfunctional. */ boolean lookupCalled; ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. This method replaces * the registry. The new registry will be lazily instantiated on the first * call. ! * * @param key * the name of the new property * @param value --- 89,102 ---- * unfunctional. */ boolean lookupCalled; ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. This method replaces * the registry. The new registry will be lazily instantiated on the first * call. ! * * @param key * the name of the new property * @param value *************** public class ContextContinuation impleme *** 117,123 **** * table should never be modified by the caller (the registry would not be updated * in such case). Use {@link #addToEnvironment} and * {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ --- 117,123 ---- * table should never be modified by the caller (the registry would not be updated * in such case). Use {@link #addToEnvironment} and * {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ *************** public class ContextContinuation impleme *** 132,138 **** * constructing the new ORB with the changes set of properties (you can * replace the CORBA implementation provider, for instance). The new ORB will * be lazily instantiated on the first call. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the --- 132,138 ---- * constructing the new ORB with the changes set of properties (you can * replace the CORBA implementation provider, for instance). The new ORB will * be lazily instantiated on the first call. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the *************** public class ContextContinuation impleme *** 144,161 **** removeRegistry(); return properties.remove(propName); } ! /** * Remove the current registry reference. */ public void removeRegistry() { ! registry = null; } ! /** * Get the cached or new registry reference. ! * * @return the registry reference, either cached or new. */ public Registry getRegistry() throws NamingException --- 144,161 ---- removeRegistry(); return properties.remove(propName); } ! /** * Remove the current registry reference. */ public void removeRegistry() { ! registry = null; } ! /** * Get the cached or new registry reference. ! * * @return the registry reference, either cached or new. */ public Registry getRegistry() throws NamingException *************** public class ContextContinuation impleme *** 164,180 **** { String address = properties.getProperty(Context.PROVIDER_URL, DEFAULT_REGISTRY_LOCATION); ! // The format like rmi://localhost:1099 is expected. Parse. if (!address.startsWith("rmi://")) throw new InvalidNameException(address); ! String a = address.substring("rmi://".length()); ! // The colon, if present, indicates the start of the port number. int colon = a.lastIndexOf(':'); int port; ! try { if (colon >=0) --- 164,180 ---- { String address = properties.getProperty(Context.PROVIDER_URL, DEFAULT_REGISTRY_LOCATION); ! // The format like rmi://localhost:1099 is expected. Parse. if (!address.startsWith("rmi://")) throw new InvalidNameException(address); ! String a = address.substring("rmi://".length()); ! // The colon, if present, indicates the start of the port number. int colon = a.lastIndexOf(':'); int port; ! try { if (colon >=0) *************** public class ContextContinuation impleme *** 188,195 **** catch (NumberFormatException e1) { throw new InvalidNameException(address); ! } ! try { registry = LocateRegistry.getRegistry(a, port); --- 188,195 ---- catch (NumberFormatException e1) { throw new InvalidNameException(address); ! } ! try { registry = LocateRegistry.getRegistry(a, port); *************** public class ContextContinuation impleme *** 204,210 **** /** * Create the rmi url context that works, talking with the given RMI registry. ! * * @param props * the properties for this context * @param initialRegistry --- 204,210 ---- /** * Create the rmi url context that works, talking with the given RMI registry. ! * * @param props * the properties for this context * @param initialRegistry *************** public class ContextContinuation impleme *** 217,227 **** properties.putAll(props); registry = initialRegistry; } ! /** * Bind the given name into this context. The .toString() is called to * convert into the string representation, required by RMI registry. ! * * @throws NamingException if the object is not an instance of Remote */ public void bind(Name name, Object obj) throws NamingException --- 217,227 ---- properties.putAll(props); registry = initialRegistry; } ! /** * Bind the given name into this context. The .toString() is called to * convert into the string representation, required by RMI registry. ! * * @throws NamingException if the object is not an instance of Remote */ public void bind(Name name, Object obj) throws NamingException *************** public class ContextContinuation impleme *** 362,368 **** { if (name.length() > 0) throw new OperationNotSupportedException("Only empty name is accepted"); ! try { return new ListEnumeration(getRegistry().list()); --- 362,368 ---- { if (name.length() > 0) throw new OperationNotSupportedException("Only empty name is accepted"); ! try { return new ListEnumeration(getRegistry().list()); *************** public class ContextContinuation impleme *** 375,381 **** /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(Name name) throws NamingException { --- 375,381 ---- /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(Name name) throws NamingException { *************** public class ContextContinuation impleme *** 386,398 **** /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(String name) throws NamingException { if (name.length() > 0) throw new OperationNotSupportedException("Only empty name is accepted"); ! try { Registry r = getRegistry(); --- 386,398 ---- /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(String name) throws NamingException { if (name.length() > 0) throw new OperationNotSupportedException("Only empty name is accepted"); ! try { Registry r = getRegistry(); *************** public class ContextContinuation impleme *** 422,428 **** /** * Rebinds this object. ! * * @param name * the object name (.toString()) is used to convert into string * representation. --- 422,428 ---- /** * Rebinds this object. ! * * @param name * the object name (.toString()) is used to convert into string * representation. *************** public class ContextContinuation impleme *** 436,442 **** /** * Rebinds this object. ! * * @param name * the object name. * @param obj --- 436,442 ---- /** * Rebinds this object. ! * * @param name * the object name. * @param obj *************** public class ContextContinuation impleme *** 462,468 **** + obj.getClass().getName()); } } ! /** * Renames the object. If the new name is already bound in the given context, * the {@link AlreadyBoundException} is thrown and the oldName binding is --- 462,468 ---- + obj.getClass().getName()); } } ! /** * Renames the object. If the new name is already bound in the given context, * the {@link AlreadyBoundException} is thrown and the oldName binding is *************** public class ContextContinuation impleme *** 549,555 **** throw new CommunicationException(e.toString()); } } ! /** * Release the associated resources. */ --- 549,555 ---- throw new CommunicationException(e.toString()); } } ! /** * Release the associated resources. */ *************** public class ContextContinuation impleme *** 557,566 **** { removeRegistry(); } ! /** * Resolve the object by name. ! * * @param name * the object name, .toString() is used to get the string * representation. --- 557,566 ---- { removeRegistry(); } ! /** * Resolve the object by name. ! * * @param name * the object name, .toString() is used to get the string * representation. *************** public class ContextContinuation impleme *** 569,578 **** { return lookup(name.toString()); } ! /** * Resolve the object by name ! * * @param name the object name. */ public Object lookup(String name) throws NamingException --- 569,578 ---- { return lookup(name.toString()); } ! /** * Resolve the object by name ! * * @param name the object name. */ public Object lookup(String name) throws NamingException diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.NamingEnumeration; *** 45,51 **** /** * Iterates over bindings, obtaining values first from the binding list and then * from the binding iterator. ! * * @author Audrius Meskauskas */ public class ListBindingsEnumeration extends RmiNamingEnumeration implements --- 45,51 ---- /** * Iterates over bindings, obtaining values first from the binding list and then * from the binding iterator. ! * * @author Audrius Meskauskas */ public class ListBindingsEnumeration extends RmiNamingEnumeration implements *************** public class ListBindingsEnumeration ext *** 55,64 **** * The naming service, to resolve the objects. */ Registry service; ! /** * Create the new enumeration ! * * @param bindings * the list of the bound names * @param aService --- 55,64 ---- * The naming service, to resolve the objects. */ Registry service; ! /** * Create the new enumeration ! * * @param bindings * the list of the bound names * @param aService *************** public class ListBindingsEnumeration ext *** 70,81 **** super(bindings); service = aService; } ! /** * Convert from the CORBA binding into the javax.naming binding. As the CORBA * naming service binding does not contain the object itself, this method * makes the additional calls to the naming service. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. --- 70,81 ---- super(bindings); service = aService; } ! /** * Convert from the CORBA binding into the javax.naming binding. As the CORBA * naming service binding does not contain the object itself, this method * makes the additional calls to the naming service. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.NamingEnumeration; *** 46,52 **** /** * Iterates over name class pairs, obtaining values first from the binding list * and then from the binding iterator. ! * * @author Audrius Meskauskas */ public class ListEnumeration extends RmiNamingEnumeration implements --- 46,52 ---- /** * Iterates over name class pairs, obtaining values first from the binding list * and then from the binding iterator. ! * * @author Audrius Meskauskas */ public class ListEnumeration extends RmiNamingEnumeration implements *************** public class ListEnumeration extends Rmi *** 54,60 **** { /** * Create the new enumeration ! * * @param bindings * the array of the binding names, returned by the RMI registry. */ --- 54,60 ---- { /** * Create the new enumeration ! * * @param bindings * the array of the binding names, returned by the RMI registry. */ *************** public class ListEnumeration extends Rmi *** 62,72 **** { super(bindings); } ! /** * Convert from the binding name into the {@link NameClassPair} that this ! * enumeration should return. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. --- 62,72 ---- { super(bindings); } ! /** * Convert from the binding name into the {@link NameClassPair} that this ! * enumeration should return. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. *************** public class ListEnumeration extends Rmi *** 75,80 **** { NameClassPair pair = new NameClassPair(binding, Remote.class.getName()); return pair; ! } ! } --- 75,80 ---- { NameClassPair pair = new NameClassPair(binding, Remote.class.getName()); return pair; ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.NamingException; *** 60,67 **** import javax.naming.OperationNotSupportedException; /** ! * The implementation of the RMI URL context. This context connects ! * * @author Audrius Meskauskas */ public class RmiContinuation implements Context --- 60,67 ---- import javax.naming.OperationNotSupportedException; /** ! * The implementation of the RMI URL context. This context connects ! * * @author Audrius Meskauskas */ public class RmiContinuation implements Context *************** public class RmiContinuation implements *** 70,87 **** * The default registry location. */ public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; ! /** * The local or remote RMI registry, performing the actual work for this * context. */ Registry registry; ! /** * The properties. */ Properties properties; ! /** * The flag, indicating, that the lookup methods were called before. * If the lookup methods were called before, the existing ORB cannot be --- 70,87 ---- * The default registry location. */ public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; ! /** * The local or remote RMI registry, performing the actual work for this * context. */ Registry registry; ! /** * The properties. */ Properties properties; ! /** * The flag, indicating, that the lookup methods were called before. * If the lookup methods were called before, the existing ORB cannot be *************** public class RmiContinuation implements *** 89,102 **** * unfunctional. */ boolean lookupCalled; ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. This method replaces * the registry. The new registry will be lazily instantiated on the first * call. ! * * @param key * the name of the new property * @param value --- 89,102 ---- * unfunctional. */ boolean lookupCalled; ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. This method replaces * the registry. The new registry will be lazily instantiated on the first * call. ! * * @param key * the name of the new property * @param value *************** public class RmiContinuation implements *** 117,123 **** * table should never be modified by the caller (the registry would not be updated * in such case). Use {@link #addToEnvironment} and * {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ --- 117,123 ---- * table should never be modified by the caller (the registry would not be updated * in such case). Use {@link #addToEnvironment} and * {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ *************** public class RmiContinuation implements *** 132,138 **** * constructing the new ORB with the changes set of properties (you can * replace the CORBA implementation provider, for instance). The new ORB will * be lazily instantiated on the first call. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the --- 132,138 ---- * constructing the new ORB with the changes set of properties (you can * replace the CORBA implementation provider, for instance). The new ORB will * be lazily instantiated on the first call. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the *************** public class RmiContinuation implements *** 144,161 **** removeRegistry(); return properties.remove(propName); } ! /** * Remove the current registry reference. */ public void removeRegistry() { ! registry = null; } ! /** * Get the cached or new registry reference. ! * * @return the registry reference, either cached or new. */ public Registry getRegistry() throws NamingException --- 144,161 ---- removeRegistry(); return properties.remove(propName); } ! /** * Remove the current registry reference. */ public void removeRegistry() { ! registry = null; } ! /** * Get the cached or new registry reference. ! * * @return the registry reference, either cached or new. */ public Registry getRegistry() throws NamingException *************** public class RmiContinuation implements *** 164,180 **** { String address = properties.getProperty(Context.PROVIDER_URL, DEFAULT_REGISTRY_LOCATION); ! // The format like rmi://localhost:1099 is expected. Parse. if (!address.startsWith("rmi://")) throw new InvalidNameException(address); ! String a = address.substring("rmi://".length()); ! // The colon, if present, indicates the start of the port number. int colon = a.lastIndexOf(':'); int port; ! try { if (colon >=0) --- 164,180 ---- { String address = properties.getProperty(Context.PROVIDER_URL, DEFAULT_REGISTRY_LOCATION); ! // The format like rmi://localhost:1099 is expected. Parse. if (!address.startsWith("rmi://")) throw new InvalidNameException(address); ! String a = address.substring("rmi://".length()); ! // The colon, if present, indicates the start of the port number. int colon = a.lastIndexOf(':'); int port; ! try { if (colon >=0) *************** public class RmiContinuation implements *** 188,195 **** catch (NumberFormatException e1) { throw new InvalidNameException(address); ! } ! try { registry = LocateRegistry.getRegistry(a, port); --- 188,195 ---- catch (NumberFormatException e1) { throw new InvalidNameException(address); ! } ! try { registry = LocateRegistry.getRegistry(a, port); *************** public class RmiContinuation implements *** 204,210 **** /** * Create the rmi url context that works, talking with the given RMI registry. ! * * @param props * the properties for this context */ --- 204,210 ---- /** * Create the rmi url context that works, talking with the given RMI registry. ! * * @param props * the properties for this context */ *************** public class RmiContinuation implements *** 214,224 **** if (props != null) properties.putAll(props); } ! /** * Bind the given name into this context. The .toString() is called to * convert into the string representation, required by RMI registry. ! * * @throws NamingException if the object is not an instance of Remote */ public void bind(Name name, Object obj) throws NamingException --- 214,224 ---- if (props != null) properties.putAll(props); } ! /** * Bind the given name into this context. The .toString() is called to * convert into the string representation, required by RMI registry. ! * * @throws NamingException if the object is not an instance of Remote */ public void bind(Name name, Object obj) throws NamingException *************** public class RmiContinuation implements *** 359,365 **** { if (name.length() > 0) throw new OperationNotSupportedException("Only empty name is accepted"); ! try { return new ListEnumeration(getRegistry().list()); --- 359,365 ---- { if (name.length() > 0) throw new OperationNotSupportedException("Only empty name is accepted"); ! try { return new ListEnumeration(getRegistry().list()); *************** public class RmiContinuation implements *** 372,378 **** /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(Name name) throws NamingException { --- 372,378 ---- /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(Name name) throws NamingException { *************** public class RmiContinuation implements *** 383,395 **** /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(String name) throws NamingException { if (name.length() > 0) throw new OperationNotSupportedException("Only empty name is accepted"); ! try { Registry r = getRegistry(); --- 383,395 ---- /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(String name) throws NamingException { if (name.length() > 0) throw new OperationNotSupportedException("Only empty name is accepted"); ! try { Registry r = getRegistry(); *************** public class RmiContinuation implements *** 419,425 **** /** * Rebinds this object. ! * * @param name * the object name (.toString()) is used to convert into string * representation. --- 419,425 ---- /** * Rebinds this object. ! * * @param name * the object name (.toString()) is used to convert into string * representation. *************** public class RmiContinuation implements *** 433,439 **** /** * Rebinds this object. ! * * @param name * the object name. * @param obj --- 433,439 ---- /** * Rebinds this object. ! * * @param name * the object name. * @param obj *************** public class RmiContinuation implements *** 459,465 **** + obj.getClass().getName()); } } ! /** * Renames the object. If the new name is already bound in the given context, * the {@link AlreadyBoundException} is thrown and the oldName binding is --- 459,465 ---- + obj.getClass().getName()); } } ! /** * Renames the object. If the new name is already bound in the given context, * the {@link AlreadyBoundException} is thrown and the oldName binding is *************** public class RmiContinuation implements *** 546,552 **** throw new CommunicationException(e.toString()); } } ! /** * Release the associated resources. */ --- 546,552 ---- throw new CommunicationException(e.toString()); } } ! /** * Release the associated resources. */ *************** public class RmiContinuation implements *** 554,563 **** { removeRegistry(); } ! /** * Resolve the object by name. ! * * @param name * the object name, .toString() is used to get the string * representation. --- 554,563 ---- { removeRegistry(); } ! /** * Resolve the object by name. ! * * @param name * the object name, .toString() is used to get the string * representation. *************** public class RmiContinuation implements *** 566,575 **** { return lookup(name.toString()); } ! /** * Resolve the object by name ! * * @param name the object name. */ public Object lookup(String name) throws NamingException --- 566,575 ---- { return lookup(name.toString()); } ! /** * Resolve the object by name ! * * @param name the object name. */ public Object lookup(String name) throws NamingException diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.NamingException; *** 46,52 **** /** * Iterates over name class pairs, obtaining values first from the binding list * and then from the binding iterator. ! * * @author Audrius Meskauskas */ public abstract class RmiNamingEnumeration implements NamingEnumeration --- 46,52 ---- /** * Iterates over name class pairs, obtaining values first from the binding list * and then from the binding iterator. ! * * @author Audrius Meskauskas */ public abstract class RmiNamingEnumeration implements NamingEnumeration *************** public abstract class RmiNamingEnumerati *** 55,61 **** * The array of bindings, returned at once. */ String[] list; ! /** * The position of the element in the binding list, that must be returned * during the subsequent call of the next(). If this field is grater or equal --- 55,61 ---- * The array of bindings, returned at once. */ String[] list; ! /** * The position of the element in the binding list, that must be returned * during the subsequent call of the next(). If this field is grater or equal *************** public abstract class RmiNamingEnumerati *** 63,77 **** * iterator. */ int p; ! RmiNamingEnumeration(String[] bindingList) { list = bindingList; } ! /** * Convert from the CORBA binding into that this enumeration should return. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. --- 63,77 ---- * iterator. */ int p; ! RmiNamingEnumeration(String[] bindingList) { list = bindingList; } ! /** * Convert from the CORBA binding into that this enumeration should return. ! * * @param binding * the binding to convert * @return the value, that must be returned by the {@link #next()}. *************** public abstract class RmiNamingEnumerati *** 80,86 **** /** * Checks if there are more elements to return. ! * * @throws NamingException * never */ --- 80,86 ---- /** * Checks if there are more elements to return. ! * * @throws NamingException * never */ *************** public abstract class RmiNamingEnumerati *** 91,97 **** /** * Returns the next element. ! * * @throws NamingException * never */ --- 91,97 ---- /** * Returns the next element. ! * * @throws NamingException * never */ *************** public abstract class RmiNamingEnumerati *** 118,124 **** else throw new NoSuchElementException(); } ! /** * Nothing to do in this method. */ --- 118,124 ---- else throw new NoSuchElementException(); } ! /** * Nothing to do in this method. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.NamingException; *** 61,68 **** import javax.naming.OperationNotSupportedException; /** ! * The implementation of the RMI URL context. This context connects ! * * @author Audrius Meskauskas */ public class rmiURLContext implements Context --- 61,68 ---- import javax.naming.OperationNotSupportedException; /** ! * The implementation of the RMI URL context. This context connects ! * * @author Audrius Meskauskas */ public class rmiURLContext implements Context *************** public class rmiURLContext implements Co *** 71,89 **** * The default registry location. */ public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; ! /** * The registry cache, maps the registry URL's to they instances. The * obtained registries are reused, as newly obtaining them may cause the * resource leak. */ static WeakHashMap registryCache = new WeakHashMap(); ! /** * The properties. */ Properties properties; ! /** * The flag, indicating, that the lookup methods were called before. * If the lookup methods were called before, the existing ORB cannot be --- 71,89 ---- * The default registry location. */ public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; ! /** * The registry cache, maps the registry URL's to they instances. The * obtained registries are reused, as newly obtaining them may cause the * resource leak. */ static WeakHashMap registryCache = new WeakHashMap(); ! /** * The properties. */ Properties properties; ! /** * The flag, indicating, that the lookup methods were called before. * If the lookup methods were called before, the existing ORB cannot be *************** public class rmiURLContext implements Co *** 91,104 **** * unfunctional. */ boolean lookupCalled; ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. This method replaces * the registry. The new registry will be lazily instantiated on the first * call. ! * * @param key * the name of the new property * @param value --- 91,104 ---- * unfunctional. */ boolean lookupCalled; ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. This method replaces * the registry. The new registry will be lazily instantiated on the first * call. ! * * @param key * the name of the new property * @param value *************** public class rmiURLContext implements Co *** 118,124 **** * table should never be modified by the caller (the registry would not be updated * in such case). Use {@link #addToEnvironment} and * {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ --- 118,124 ---- * table should never be modified by the caller (the registry would not be updated * in such case). Use {@link #addToEnvironment} and * {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ *************** public class rmiURLContext implements Co *** 133,139 **** * constructing the new ORB with the changes set of properties (you can * replace the CORBA implementation provider, for instance). The new ORB will * be lazily instantiated on the first call. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the --- 133,139 ---- * constructing the new ORB with the changes set of properties (you can * replace the CORBA implementation provider, for instance). The new ORB will * be lazily instantiated on the first call. ! * * @param propName * the name of the property being removed. * @return the value of the property that has been removed or null if the *************** public class rmiURLContext implements Co *** 144,153 **** { return properties.remove(propName); } ! /** * Get the cached or new registry reference. ! * * @return the registry reference, either cached or new. */ public Registry getRegistry(String netAddress) throws NamingException --- 144,153 ---- { return properties.remove(propName); } ! /** * Get the cached or new registry reference. ! * * @return the registry reference, either cached or new. */ public Registry getRegistry(String netAddress) throws NamingException *************** public class rmiURLContext implements Co *** 157,164 **** synchronized (registryCache) { registry = (Registry) registryCache.get(netAddress); ! } ! if (registry == null) { // The colon, if present, indicates the start of the port number. --- 157,164 ---- synchronized (registryCache) { registry = (Registry) registryCache.get(netAddress); ! } ! if (registry == null) { // The colon, if present, indicates the start of the port number. *************** public class rmiURLContext implements Co *** 188,205 **** { throw new CommunicationException(e.toString()); } ! synchronized (registryCache) { registryCache.put(netAddress, registry); ! } } return registry; } /** * Create the rmi url context that works, talking with the given RMI registry. ! * * @param props * the properties for this context */ --- 188,205 ---- { throw new CommunicationException(e.toString()); } ! synchronized (registryCache) { registryCache.put(netAddress, registry); ! } } return registry; } /** * Create the rmi url context that works, talking with the given RMI registry. ! * * @param props * the properties for this context */ *************** public class rmiURLContext implements Co *** 209,219 **** if (props != null) properties.putAll(props); } ! /** * Bind the given name into this context. The .toString() is called to * convert into the string representation, required by RMI registry. ! * * @throws NamingException if the object is not an instance of Remote */ public void bind(Name name, Object obj) throws NamingException --- 209,219 ---- if (props != null) properties.putAll(props); } ! /** * Bind the given name into this context. The .toString() is called to * convert into the string representation, required by RMI registry. ! * * @throws NamingException if the object is not an instance of Remote */ public void bind(Name name, Object obj) throws NamingException *************** public class rmiURLContext implements Co *** 366,372 **** /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(Name name) throws NamingException { --- 366,372 ---- /** * List existing bindings of this context (the parameter must be empty name, ! * indicating the root context). */ public NamingEnumeration listBindings(Name name) throws NamingException { *************** public class rmiURLContext implements Co *** 383,389 **** String [] n = split(name); if (n[1].length() > 0) throw new InvalidNameException(name+", the name part must be empty"); ! Registry r = getRegistry(n[0]); return new ListBindingsEnumeration(r.list(), r); } --- 383,389 ---- String [] n = split(name); if (n[1].length() > 0) throw new InvalidNameException(name+", the name part must be empty"); ! Registry r = getRegistry(n[0]); return new ListBindingsEnumeration(r.list(), r); } *************** public class rmiURLContext implements Co *** 413,419 **** /** * Rebinds this object. ! * * @param name * the object name (.toString()) is used to convert into string * representation. --- 413,419 ---- /** * Rebinds this object. ! * * @param name * the object name (.toString()) is used to convert into string * representation. *************** public class rmiURLContext implements Co *** 427,433 **** /** * Rebinds this object. ! * * @param name * the object name. * @param obj --- 427,433 ---- /** * Rebinds this object. ! * * @param name * the object name. * @param obj *************** public class rmiURLContext implements Co *** 437,443 **** { try { ! String [] n = split(name); getRegistry(n[0]).rebind(n[1], (Remote) obj); } catch (AccessException e) --- 437,443 ---- { try { ! String [] n = split(name); getRegistry(n[0]).rebind(n[1], (Remote) obj); } catch (AccessException e) *************** public class rmiURLContext implements Co *** 454,460 **** + obj.getClass().getName()); } } ! /** * Renames the object. If the new name is already bound in the given context, * the {@link AlreadyBoundException} is thrown and the oldName binding is --- 454,460 ---- + obj.getClass().getName()); } } ! /** * Renames the object. If the new name is already bound in the given context, * the {@link AlreadyBoundException} is thrown and the oldName binding is *************** public class rmiURLContext implements Co *** 476,487 **** try { String [] n = split(oldName); ! Registry r = getRegistry(n[0]); Remote object = r.lookup(n[1]); r.unbind(oldName); try { ! String [] n2 = split(newName); Registry r2 = getRegistry(n2[0]); r2.bind(n2[1], object); } --- 476,487 ---- try { String [] n = split(oldName); ! Registry r = getRegistry(n[0]); Remote object = r.lookup(n[1]); r.unbind(oldName); try { ! String [] n2 = split(newName); Registry r2 = getRegistry(n2[0]); r2.bind(n2[1], object); } *************** public class rmiURLContext implements Co *** 529,535 **** { try { ! String [] n = split(name); getRegistry(n[0]).unbind(n[1]); } catch (AccessException e) --- 529,535 ---- { try { ! String [] n = split(name); getRegistry(n[0]).unbind(n[1]); } catch (AccessException e) *************** public class rmiURLContext implements Co *** 545,561 **** throw new CommunicationException(e.toString()); } } ! /** * Release the associated resources. */ public void close() throws NamingException { } ! /** * Resolve the object by name. ! * * @param name * the object name, .toString() is used to get the string * representation. --- 545,561 ---- throw new CommunicationException(e.toString()); } } ! /** * Release the associated resources. */ public void close() throws NamingException { } ! /** * Resolve the object by name. ! * * @param name * the object name, .toString() is used to get the string * representation. *************** public class rmiURLContext implements Co *** 564,573 **** { return lookup(name.toString()); } ! /** * Resolve the object by name ! * * @param name the object name. */ public Object lookup(String name) throws NamingException --- 564,573 ---- { return lookup(name.toString()); } ! /** * Resolve the object by name ! * * @param name the object name. */ public Object lookup(String name) throws NamingException *************** public class rmiURLContext implements Co *** 590,600 **** throw new NameNotFoundException(name); } } ! /** * Split the given rmi address into the network address and naming service * name. ! * * @param address * the address to split * @return the two member array, lower being the network address of the naming --- 590,600 ---- throw new NameNotFoundException(name); } } ! /** * Split the given rmi address into the network address and naming service * name. ! * * @param address * the address to split * @return the two member array, lower being the network address of the naming diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.spi.ObjectFactory; *** 45,66 **** /** * Find the RMI URL context. This factory checks the Context.PROVIDER_URL ! * property for the address of the RMI naming service and creates the * context that operates talking with this naming service. If such property * is missing, "rmi://localhost:1099" is assumed. ! * ! * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class rmiURLContextFactory implements ObjectFactory { /** ! * Create a new instance of the context. */ public Object getObjectInstance(Object refObj, Name name, Context nameCtx, Hashtable environment) { return new rmiURLContext(environment); } ! } --- 45,66 ---- /** * Find the RMI URL context. This factory checks the Context.PROVIDER_URL ! * property for the address of the RMI naming service and creates the * context that operates talking with this naming service. If such property * is missing, "rmi://localhost:1099" is assumed. ! * ! * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public class rmiURLContextFactory implements ObjectFactory { /** ! * Create a new instance of the context. */ public Object getObjectInstance(Object refObj, Name name, Context nameCtx, Hashtable environment) { return new rmiURLContext(environment); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/AbstractSessionContext.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/AbstractSessionContext.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/AbstractSessionContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/AbstractSessionContext.java Tue Jan 11 19:46:05 2011 *************** import javax.net.ssl.SSLSessionContext; *** 54,60 **** * be subclassed to add extended functionality to session contexts, such * as by storing sessions in files on disk, or by sharing contexts * across different JVM instances. ! * *

          In order to securely store sessions, along with private key data, * the abstract methods {@lnk {@link #load(char[])} and {@link #store(char[])} * come into play. When storing sessions, a session context implementation --- 54,60 ---- * be subclassed to add extended functionality to session contexts, such * as by storing sessions in files on disk, or by sharing contexts * across different JVM instances. ! * *

          In order to securely store sessions, along with private key data, * the abstract methods {@lnk {@link #load(char[])} and {@link #store(char[])} * come into play. When storing sessions, a session context implementation *************** import javax.net.ssl.SSLSessionContext; *** 62,71 **** * before either writing the {@link java.io.Serializable} session to the * underlying store, or getting the opaque {@link Session#privateData()} * class from the session, and storing that. ! * *

          As a simple example, that writes sessions to some object output * stream: ! * *

              char[] password = ...;
              ObjectOutputStream out = ...;
          --- 62,71 ----
             * before either writing the {@link java.io.Serializable} session to the
             * underlying store, or getting the opaque {@link Session#privateData()}
             * class from the session, and storing that.
          !  *
             * 

          As a simple example, that writes sessions to some object output * stream: ! * *

              char[] password = ...;
              ObjectOutputStream out = ...;
          *************** import javax.net.ssl.SSLSessionContext;
          *** 75,86 ****
                  s.prepare(password);
                  out.writeObject(s);
                }
          ! * *

          The reverse must be done when deserializing sessions, by using the * {@link Session#repair(char[])} method, possibly by first calling * {@link Session#setPrivateData(java.io.Serializable)} with the read, * opaque private data type. Thus an example of reading may be: ! * *

              char[] password = ...;
              ObjectInputStream in = ...;
          --- 75,86 ----
                  s.prepare(password);
                  out.writeObject(s);
                }
          ! * *

          The reverse must be done when deserializing sessions, by using the * {@link Session#repair(char[])} method, possibly by first calling * {@link Session#setPrivateData(java.io.Serializable)} with the read, * opaque private data type. Thus an example of reading may be: ! * *

              char[] password = ...;
              ObjectInputStream in = ...;
          *************** import javax.net.ssl.SSLSessionContext;
          *** 91,109 ****
                  s.repair(password);
                  addToThisStore(s);
                }
          ! * * @author Casey Marshall (csm@gnu.org) */ public abstract class AbstractSessionContext implements SSLSessionContext { protected long timeout; ! private static Class implClass = SimpleSessionContext.class; /** * Create a new instance of a session context, according to the configured * implementation class. ! * * @return The new session context. * @throws SSLException If an error occurs in creating the instance. */ --- 91,109 ---- s.repair(password); addToThisStore(s); }
          ! * * @author Casey Marshall (csm@gnu.org) */ public abstract class AbstractSessionContext implements SSLSessionContext { protected long timeout; ! private static Class implClass = SimpleSessionContext.class; /** * Create a new instance of a session context, according to the configured * implementation class. ! * * @return The new session context. * @throws SSLException If an error occurs in creating the instance. */ *************** public abstract class AbstractSessionCon *** 126,137 **** /** * Reconfigure this instance to use a different session context * implementation. ! * *

          Note: this method requires that the caller have * {@link SSLPermission} with target * gnu.javax.net.ssl.AbstractSessionContext and action * setImplClass. ! * * @param clazz The new implementation class. * @throws SecurityException If the caller does not have permission to * change the session context. --- 126,137 ---- /** * Reconfigure this instance to use a different session context * implementation. ! * *

          Note: this method requires that the caller have * {@link SSLPermission} with target * gnu.javax.net.ssl.AbstractSessionContext and action * setImplClass. ! * * @param clazz The new implementation class. * @throws SecurityException If the caller does not have permission to * change the session context. *************** public abstract class AbstractSessionCon *** 183,189 **** } return s; } ! public final SSLSession getSession(String host, int port) { for (Enumeration e = getIds(); e.hasMoreElements(); ) --- 183,189 ---- } return s; } ! public final SSLSession getSession(String host, int port) { for (Enumeration e = getIds(); e.hasMoreElements(); ) *************** public abstract class AbstractSessionCon *** 203,220 **** int port2 = s.getPeerPort(); if (port != port2) continue; ! // Else, a match. return s; } ! return null; } ! /** * To be implemented by subclasses. Subclasses do not need to check * timeouts in this method. ! * * @param sessionId The session ID. * @return The session, or null if the requested session * was not found. --- 203,220 ---- int port2 = s.getPeerPort(); if (port != port2) continue; ! // Else, a match. return s; } ! return null; } ! /** * To be implemented by subclasses. Subclasses do not need to check * timeouts in this method. ! * * @param sessionId The session ID. * @return The session, or null if the requested session * was not found. *************** public abstract class AbstractSessionCon *** 225,231 **** { return (int) (timeout / 1000); } ! /** * Load this session store from the underlying media, if supported * by the implementation. --- 225,231 ---- { return (int) (timeout / 1000); } ! /** * Load this session store from the underlying media, if supported * by the implementation. *************** public abstract class AbstractSessionCon *** 265,271 **** public abstract void remove (byte[] sessionId); /** ! * */ public final void setSessionTimeout(int seconds) { --- 265,271 ---- public abstract void remove (byte[] sessionId); /** ! * */ public final void setSessionTimeout(int seconds) { *************** public abstract class AbstractSessionCon *** 273,279 **** throw new IllegalArgumentException("timeout may not be negative"); this.timeout = (long) seconds * 1000; } ! /** * Commit this session store to the underlying media. For session * store implementations that support saving sessions across --- 273,279 ---- throw new IllegalArgumentException("timeout may not be negative"); this.timeout = (long) seconds * 1000; } ! /** * Commit this session store to the underlying media. For session * store implementations that support saving sessions across *************** public abstract class AbstractSessionCon *** 285,288 **** * in this store. */ public abstract void store (char[] password) throws SessionStoreException; ! } \ No newline at end of file --- 285,288 ---- * in this store. */ public abstract void store (char[] password) throws SessionStoreException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManager.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManager.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManager.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManager.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PreSharedKeyManager.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PreSharedKeyManager.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.net.ssl.KeyManager; *** 49,54 **** public interface PreSharedKeyManager extends KeyManager { SecretKey getKey(String name) throws KeyManagementException; ! String chooseIdentityHint(); ! } \ No newline at end of file --- 49,54 ---- public interface PreSharedKeyManager extends KeyManager { SecretKey getKey(String name) throws KeyManagementException; ! String chooseIdentityHint(); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PreSharedKeyManagerParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PreSharedKeyManagerParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class PreSharedKeyManagerParamete *** 51,57 **** implements ManagerFactoryParameters { private final LinkedHashMap keys; ! public PreSharedKeyManagerParameters() { keys = new LinkedHashMap(); --- 51,57 ---- implements ManagerFactoryParameters { private final LinkedHashMap keys; ! public PreSharedKeyManagerParameters() { keys = new LinkedHashMap(); *************** public class PreSharedKeyManagerParamete *** 62,81 **** name.getClass(); return keys.get(name); } ! public void putKey(String name, SecretKey key) { name.getClass(); key.getClass(); keys.put(name, key); } ! public boolean removeKey(String name) { name.getClass(); return keys.remove(name) != null; } ! public Iterator identities() { return keys.keySet().iterator(); --- 62,81 ---- name.getClass(); return keys.get(name); } ! public void putKey(String name, SecretKey key) { name.getClass(); key.getClass(); keys.put(name, key); } ! public boolean removeKey(String name) { name.getClass(); return keys.remove(name) != null; } ! public Iterator identities() { return keys.keySet().iterator(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/SSLCipherSuite.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/SSLCipherSuite.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/SSLCipherSuite.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/SSLCipherSuite.java Tue Jan 11 19:46:05 2011 *************** public abstract class SSLCipherSuite *** 56,62 **** private final byte[] id; private final SSLProtocolVersion version; private Provider provider; ! protected SSLCipherSuite (final String algorithm, final byte[] id, final SSLProtocolVersion version) { --- 56,62 ---- private final byte[] id; private final SSLProtocolVersion version; private Provider provider; ! protected SSLCipherSuite (final String algorithm, final byte[] id, final SSLProtocolVersion version) { *************** public abstract class SSLCipherSuite *** 66,85 **** this.id = (byte[]) id.clone (); this.version = version; } ! public static final SSLCipherSuite getInstance (SSLProtocolVersion version, byte[] id) throws NoSuchAlgorithmException { return getInstance (version + "-" + ((id[0] & 0xFF) + "/" + (id[1] & 0xFF))); } ! public static final SSLCipherSuite getInstance (SSLProtocolVersion version, byte[] id, Provider provider) throws NoSuchAlgorithmException { return getInstance (version + "-" + (id[0] & 0xFF) + "/" + (id[1] & 0xFF), provider); } ! public static final SSLCipherSuite getInstance (String name) throws NoSuchAlgorithmException { --- 66,85 ---- this.id = (byte[]) id.clone (); this.version = version; } ! public static final SSLCipherSuite getInstance (SSLProtocolVersion version, byte[] id) throws NoSuchAlgorithmException { return getInstance (version + "-" + ((id[0] & 0xFF) + "/" + (id[1] & 0xFF))); } ! public static final SSLCipherSuite getInstance (SSLProtocolVersion version, byte[] id, Provider provider) throws NoSuchAlgorithmException { return getInstance (version + "-" + (id[0] & 0xFF) + "/" + (id[1] & 0xFF), provider); } ! public static final SSLCipherSuite getInstance (String name) throws NoSuchAlgorithmException { *************** public abstract class SSLCipherSuite *** 95,104 **** // Ignore. } } ! throw new NoSuchAlgorithmException (SERVICE + ": " + name); } ! public static final SSLCipherSuite getInstance (String name, Provider provider) throws NoSuchAlgorithmException { --- 95,104 ---- // Ignore. } } ! throw new NoSuchAlgorithmException (SERVICE + ": " + name); } ! public static final SSLCipherSuite getInstance (String name, Provider provider) throws NoSuchAlgorithmException { *************** public abstract class SSLCipherSuite *** 117,142 **** } return suite; } ! public final String getAlgorithm () { return algorithm; } ! public final byte[] getId () { return (byte[]) id.clone (); } ! public final Provider getProvider () { return provider; } ! public final SSLProtocolVersion getProtocolVersion () { return version; } ! public abstract void encipher (ByteBuffer in, ByteBuffer out); } --- 117,142 ---- } return suite; } ! public final String getAlgorithm () { return algorithm; } ! public final byte[] getId () { return (byte[]) id.clone (); } ! public final Provider getProvider () { return provider; } ! public final SSLProtocolVersion getProtocolVersion () { return version; } ! public abstract void encipher (ByteBuffer in, ByteBuffer out); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java Tue Jan 11 19:46:05 2011 *************** public abstract class SSLRecordHandler *** 97,100 **** { return contentType & 0xFF; } ! } \ No newline at end of file --- 97,100 ---- { return contentType & 0xFF; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/Session.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/Session.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/Session.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/Session.java Tue Jan 11 19:46:05 2011 *************** public abstract class Session implements *** 69,75 **** protected final long creationTime; protected long lastAccessedTime; protected int applicationBufferSize; ! protected ID sessionId; protected Certificate[] localCerts; protected Certificate[] peerCerts; --- 69,75 ---- protected final long creationTime; protected long lastAccessedTime; protected int applicationBufferSize; ! protected ID sessionId; protected Certificate[] localCerts; protected Certificate[] peerCerts; *************** public abstract class Session implements *** 141,152 **** } return null; } ! public int getPacketBufferSize() { return applicationBufferSize + 2048; } ! public Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException { if (!peerVerified) --- 141,152 ---- } return null; } ! public int getPacketBufferSize() { return applicationBufferSize + 2048; } ! public Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException { if (!peerVerified) *************** public abstract class Session implements *** 165,181 **** return null; return (X509Certificate[]) peerCertChain.clone(); } ! public String getPeerHost() { return peerHost; } ! public int getPeerPort() { return peerPort; } ! public Principal getPeerPrincipal() throws SSLPeerUnverifiedException { if (!peerVerified) --- 165,181 ---- return null; return (X509Certificate[]) peerCertChain.clone(); } ! public String getPeerHost() { return peerHost; } ! public int getPeerPort() { return peerPort; } ! public Principal getPeerPrincipal() throws SSLPeerUnverifiedException { if (!peerVerified) *************** public abstract class Session implements *** 184,216 **** return null; return peerCertChain[0].getSubjectDN(); } ! public SSLSessionContext getSessionContext() { return context; } ! public String[] getValueNames() { Set keys = this.values.keySet(); return keys.toArray(new String[keys.size()]); } ! public Object getValue(String name) { return values.get(name); } ! public void invalidate() { valid = false; } ! public boolean isValid() { return valid; } ! public void putValue(String name, Object value) { values.put(name, value); --- 184,216 ---- return null; return peerCertChain[0].getSubjectDN(); } ! public SSLSessionContext getSessionContext() { return context; } ! public String[] getValueNames() { Set keys = this.values.keySet(); return keys.toArray(new String[keys.size()]); } ! public Object getValue(String name) { return values.get(name); } ! public void invalidate() { valid = false; } ! public boolean isValid() { return valid; } ! public void putValue(String name, Object value) { values.put(name, value); *************** public abstract class Session implements *** 224,230 **** { } } ! public void removeValue(String name) { Object value = values.remove(name); --- 224,230 ---- { } } ! public void removeValue(String name) { Object value = values.remove(name); *************** public abstract class Session implements *** 236,244 **** } catch (Exception x) { ! } } ! public final boolean isTruncatedMac() { return truncatedMac; --- 236,244 ---- } catch (Exception x) { ! } } ! public final boolean isTruncatedMac() { return truncatedMac; *************** public abstract class Session implements *** 248,278 **** * Prepare this session for serialization. Private data will be encrypted * with the given password, and this object will then be ready to be * serialized. ! * * @param password The password to protect this session with. * @throws SSLException If encrypting this session's private data fails. */ public abstract void prepare (char[] password) throws SSLException; ! /** * Repair this session's private data after deserialization. This method * will decrypt this session's private data, and prepare the session for * use in new SSL connections. ! * * @param password The password to decrypt the private data with. * @throws SSLException */ public abstract void repair(char[] password) throws SSLException; ! /** * Get the private data of this session. This method may only be called * after first calling {@link #prepare(char[])}. ! * * @return The sealed private data. * @throws SSLException If the private data have not been sealed. */ public abstract SealedObject privateData() throws SSLException; ! /** * Set the private data of this session. * @param data --- 248,278 ---- * Prepare this session for serialization. Private data will be encrypted * with the given password, and this object will then be ready to be * serialized. ! * * @param password The password to protect this session with. * @throws SSLException If encrypting this session's private data fails. */ public abstract void prepare (char[] password) throws SSLException; ! /** * Repair this session's private data after deserialization. This method * will decrypt this session's private data, and prepare the session for * use in new SSL connections. ! * * @param password The password to decrypt the private data with. * @throws SSLException */ public abstract void repair(char[] password) throws SSLException; ! /** * Get the private data of this session. This method may only be called * after first calling {@link #prepare(char[])}. ! * * @return The sealed private data. * @throws SSLException If the private data have not been sealed. */ public abstract SealedObject privateData() throws SSLException; ! /** * Set the private data of this session. * @param data diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/SessionStoreException.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/SessionStoreException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/SessionStoreException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/SessionStoreException.java Tue Jan 11 19:46:05 2011 *************** public class SessionStoreException exten *** 46,57 **** { super (message); } ! public SessionStoreException (final String message, final Throwable cause) { super (message, cause); } ! public SessionStoreException (final Throwable cause) { super (cause); --- 46,57 ---- { super (message); } ! public SessionStoreException (final String message, final Throwable cause) { super (message, cause); } ! public SessionStoreException (final Throwable cause) { super (cause); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractHandshake *** 97,105 **** protected static final byte[] SERVER_FINISHED = new byte[] { 115, 101, 114, 118, 101, 114, 32, 102, 105, 110, 105, 115, ! 104, 101, 100 }; ! /** * "client finished" -- TLS 1.0 and later */ --- 97,105 ---- protected static final byte[] SERVER_FINISHED = new byte[] { 115, 101, 114, 118, 101, 114, 32, 102, 105, 110, 105, 115, ! 104, 101, 100 }; ! /** * "client finished" -- TLS 1.0 and later */ *************** public abstract class AbstractHandshake *** 108,121 **** 99, 108, 105, 101, 110, 116, 32, 102, 105, 110, 105, 115, 104, 101, 100 }; ! /** * "key expansion" -- TLS 1.0 and later */ private static final byte[] KEY_EXPANSION = new byte[] { 107, 101, 121, 32, 101, 120, 112, 97, 110, 115, 105, 111, 110 }; ! /** * "master secret" -- TLS 1.0 and later */ --- 108,121 ---- 99, 108, 105, 101, 110, 116, 32, 102, 105, 110, 105, 115, 104, 101, 100 }; ! /** * "key expansion" -- TLS 1.0 and later */ private static final byte[] KEY_EXPANSION = new byte[] { 107, 101, 121, 32, 101, 120, 112, 97, 110, 115, 105, 111, 110 }; ! /** * "master secret" -- TLS 1.0 and later */ *************** public abstract class AbstractHandshake *** 123,129 **** = new byte[] { 109, 97, 115, 116, 101, 114, 32, 115, 101, 99, 114, 101, 116 }; ! /** * "client write key" -- TLS 1.0 exportable whitener. */ --- 123,129 ---- = new byte[] { 109, 97, 115, 116, 101, 114, 32, 115, 101, 99, 114, 101, 116 }; ! /** * "client write key" -- TLS 1.0 exportable whitener. */ *************** public abstract class AbstractHandshake *** 132,138 **** 99, 108, 105, 101, 110, 116, 32, 119, 114, 105, 116, 101, 32, 107, 101, 121 }; ! /** * "server write key" -- TLS 1.0 exportable whitener. */ --- 132,138 ---- 99, 108, 105, 101, 110, 116, 32, 119, 114, 105, 116, 101, 32, 107, 101, 121 }; ! /** * "server write key" -- TLS 1.0 exportable whitener. */ *************** public abstract class AbstractHandshake *** 141,170 **** 115, 101, 114, 118, 101, 114, 32, 119, 114, 105, 116, 101, 32, 107, 101, 121 }; ! private static final byte[] IV_BLOCK = new byte[] { 73, 86, 32, 98, 108, 111, 99, 107 }; ! /** * SSL 3.0; the string "CLNT" */ private static final byte[] SENDER_CLIENT = new byte[] { 0x43, 0x4C, 0x4E, 0x54 }; ! /** * SSL 3.0; the string "SRVR" */ private static final byte[] SENDER_SERVER = new byte[] { 0x53, 0x52, 0x56, 0x52 }; ! /** * SSL 3.0; the value 0x36 40 (for SHA-1 hashes) or 48 (for MD5 hashes) * times. */ protected static final byte[] PAD1 = new byte[48]; ! /** * SSL 3.0; the value 0x5c 40 (for SHA-1 hashes) or 48 (for MD5 hashes) * times. --- 141,170 ---- 115, 101, 114, 118, 101, 114, 32, 119, 114, 105, 116, 101, 32, 107, 101, 121 }; ! private static final byte[] IV_BLOCK = new byte[] { 73, 86, 32, 98, 108, 111, 99, 107 }; ! /** * SSL 3.0; the string "CLNT" */ private static final byte[] SENDER_CLIENT = new byte[] { 0x43, 0x4C, 0x4E, 0x54 }; ! /** * SSL 3.0; the string "SRVR" */ private static final byte[] SENDER_SERVER = new byte[] { 0x53, 0x52, 0x56, 0x52 }; ! /** * SSL 3.0; the value 0x36 40 (for SHA-1 hashes) or 48 (for MD5 hashes) * times. */ protected static final byte[] PAD1 = new byte[48]; ! /** * SSL 3.0; the value 0x5c 40 (for SHA-1 hashes) or 48 (for MD5 hashes) * times. *************** public abstract class AbstractHandshake *** 176,182 **** Arrays.fill(PAD1, SSLHMac.PAD1); Arrays.fill(PAD2, SSLHMac.PAD2); } ! /** * The currently-read handshake messages. There may be zero, or * multiple, handshake messages in this buffer. --- 176,182 ---- Arrays.fill(PAD1, SSLHMac.PAD1); Arrays.fill(PAD2, SSLHMac.PAD2); } ! /** * The currently-read handshake messages. There may be zero, or * multiple, handshake messages in this buffer. *************** public abstract class AbstractHandshake *** 191,197 **** protected MessageDigest sha; protected MessageDigest md5; ! protected final SSLEngineImpl engine; protected KeyAgreement keyAgreement; protected byte[] preMasterSecret; --- 191,197 ---- protected MessageDigest sha; protected MessageDigest md5; ! protected final SSLEngineImpl engine; protected KeyAgreement keyAgreement; protected byte[] preMasterSecret; *************** public abstract class AbstractHandshake *** 210,216 **** md5 = MessageDigest.getInstance("MD5"); tasks = new LinkedList(); } ! /** * Handles the next input message in the handshake. This is called * in response to a call to {@link javax.net.ssl.SSLEngine#unwrap} --- 210,216 ---- md5 = MessageDigest.getInstance("MD5"); tasks = new LinkedList(); } ! /** * Handles the next input message in the handshake. This is called * in response to a call to {@link javax.net.ssl.SSLEngine#unwrap} *************** public abstract class AbstractHandshake *** 265,277 **** /** * Called to process more handshake data. This method will be called * repeatedly while there is remaining handshake data, and while the ! * status is * @return * @throws SSLException */ protected abstract HandshakeStatus implHandleInput() throws SSLException; ! /** * Produce more handshake output. This is called in response to a * call to {@link javax.net.ssl.SSLEngine#wrap}, when the handshake --- 265,277 ---- /** * Called to process more handshake data. This method will be called * repeatedly while there is remaining handshake data, and while the ! * status is * @return * @throws SSLException */ protected abstract HandshakeStatus implHandleInput() throws SSLException; ! /** * Produce more handshake output. This is called in response to a * call to {@link javax.net.ssl.SSLEngine#wrap}, when the handshake *************** public abstract class AbstractHandshake *** 301,327 **** } return status; } ! /** * Called to implement the underlying output handling. The callee should * attempt to fill the given buffer as much as it can; this can include * multiple, and even partial, handshake messages. ! * * @param fragment The buffer the callee should write handshake messages to. * @return The new status of the handshake. * @throws SSLException If an error occurs processing the output message. */ protected abstract SSLEngineResult.HandshakeStatus implHandleOutput (ByteBuffer fragment) throws SSLException; ! /** * Return a new instance of input security parameters, initialized with * the session key. It is, of course, only valid to invoke this method * once the handshake is complete, and the session keys established. ! * *

          In the presence of a well-behaving peer, this should be called once * the ChangeCipherSpec message is recieved. ! * * @return The input parameters for the newly established session. * @throws SSLException If the handshake is not complete. */ --- 301,327 ---- } return status; } ! /** * Called to implement the underlying output handling. The callee should * attempt to fill the given buffer as much as it can; this can include * multiple, and even partial, handshake messages. ! * * @param fragment The buffer the callee should write handshake messages to. * @return The new status of the handshake. * @throws SSLException If an error occurs processing the output message. */ protected abstract SSLEngineResult.HandshakeStatus implHandleOutput (ByteBuffer fragment) throws SSLException; ! /** * Return a new instance of input security parameters, initialized with * the session key. It is, of course, only valid to invoke this method * once the handshake is complete, and the session keys established. ! * *

          In the presence of a well-behaving peer, this should be called once * the ChangeCipherSpec message is recieved. ! * * @return The input parameters for the newly established session. * @throws SSLException If the handshake is not complete. */ *************** public abstract class AbstractHandshake *** 335,341 **** * Return a new instance of output security parameters, initialized with * the session key. This should be called after the * ChangeCipherSpec message is sent to the peer. ! * * @return The output parameters for the newly established session. * @throws SSLException If the handshake is not complete. */ --- 335,341 ---- * Return a new instance of output security parameters, initialized with * the session key. This should be called after the * ChangeCipherSpec message is sent to the peer. ! * * @return The output parameters for the newly established session. * @throws SSLException If the handshake is not complete. */ *************** public abstract class AbstractHandshake *** 344,350 **** checkKeyExchange(); return outParams; } ! /** * Fetch a delegated task waiting to run, if any. * --- 344,350 ---- checkKeyExchange(); return outParams; } ! /** * Fetch a delegated task waiting to run, if any. * *************** public abstract class AbstractHandshake *** 356,376 **** return null; return tasks.removeFirst(); } ! /** * Used by the skeletal code to query the current status of the handshake. * This should be the same value as returned by the previous call * to {@link #implHandleOutput(ByteBuffer)} or {@link * #implHandleInput(ByteBuffer)}. ! * * @return The current handshake status. */ abstract HandshakeStatus status(); ! /** * Check if the key exchange completed successfully, throwing an exception * if not. ! * *

          Note that we assume that the caller of our SSLEngine is correct, and * that they did run the delegated tasks that encapsulate the key exchange. * What we are primarily checking, therefore, is that no error occurred in the --- 356,376 ---- return null; return tasks.removeFirst(); } ! /** * Used by the skeletal code to query the current status of the handshake. * This should be the same value as returned by the previous call * to {@link #implHandleOutput(ByteBuffer)} or {@link * #implHandleInput(ByteBuffer)}. ! * * @return The current handshake status. */ abstract HandshakeStatus status(); ! /** * Check if the key exchange completed successfully, throwing an exception * if not. ! * *

          Note that we assume that the caller of our SSLEngine is correct, and * that they did run the delegated tasks that encapsulate the key exchange. * What we are primarily checking, therefore, is that no error occurred in the *************** public abstract class AbstractHandshake *** 379,392 **** * @throws SSLException If the key exchange did not complete successfully. */ abstract void checkKeyExchange() throws SSLException; ! /** * Handle an SSLv2 client hello. This is only used by SSL servers. ! * * @param hello The hello message. */ abstract void handleV2Hello(ByteBuffer hello) throws SSLException; ! /** * Attempt to read the next handshake message from the given * record. If only a partial handshake message is available, then --- 379,392 ---- * @throws SSLException If the key exchange did not complete successfully. */ abstract void checkKeyExchange() throws SSLException; ! /** * Handle an SSLv2 client hello. This is only used by SSL servers. ! * * @param hello The hello message. */ abstract void handleV2Hello(ByteBuffer hello) throws SSLException; ! /** * Attempt to read the next handshake message from the given * record. If only a partial handshake message is available, then *************** public abstract class AbstractHandshake *** 418,430 **** if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "inserting {0} into {1}", fragment, handshakeBuffer); ! // Put the fragment into the buffer. handshakeBuffer.put(fragment); return hasMessage(); } ! protected boolean doHash() { return true; --- 418,430 ---- if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "inserting {0} into {1}", fragment, handshakeBuffer); ! // Put the fragment into the buffer. handshakeBuffer.put(fragment); return hasMessage(); } ! protected boolean doHash() { return true; *************** public abstract class AbstractHandshake *** 501,509 **** * algorithm was used to generate this value was subtly different than * that used in TLSv1.0 and later. In TLSv1.0 and later, this value is * just the digest over the handshake messages. ! * *

          SSLv3 uses the algorithm: ! * *

            CertificateVerify.signature.md5_hash
              MD5(master_secret + pad_2 +
          --- 501,509 ----
               * algorithm was used to generate this value was subtly different than
               * that used in TLSv1.0 and later. In TLSv1.0 and later, this value is
               * just the digest over the handshake messages.
          !    *
               * 

          SSLv3 uses the algorithm: ! * *

            CertificateVerify.signature.md5_hash
              MD5(master_secret + pad_2 +
          *************** CertificateVerify.signature.md5_hash
          *** 511,517 ****
            Certificate.signature.sha_hash
              SHA(master_secret + pad_2 +
                  SHA(handshake_messages + master_secret + pad_1));
          ! * * @param md5 The running MD5 hash of the handshake. * @param sha The running SHA-1 hash of the handshake. * @param session The current session being negotiated. --- 511,517 ---- Certificate.signature.sha_hash SHA(master_secret + pad_2 + SHA(handshake_messages + master_secret + pad_1));
          ! * * @param md5 The running MD5 hash of the handshake. * @param sha The running SHA-1 hash of the handshake. * @param session The current session being negotiated. *************** Certificate.signature.sha_hash *** 533,539 **** md5.update(tmp); md5value = md5.digest(); } ! sha.update(session.privateData.masterSecret); sha.update(PAD1, 0, 40); byte[] tmp = sha.digest(); --- 533,539 ---- md5.update(tmp); md5value = md5.digest(); } ! sha.update(session.privateData.masterSecret); sha.update(PAD1, 0, 40); byte[] tmp = sha.digest(); *************** Certificate.signature.sha_hash *** 542,557 **** sha.update(PAD2, 0, 40); sha.update(tmp); byte[] shavalue = sha.digest(); ! if (md5value != null) return Util.concat(md5value, shavalue); ! return shavalue; } ! /** * Generate the session keys from the computed master secret. ! * * @param clientRandom The client's nonce. * @param serverRandom The server's nonce. * @param session The session being established. --- 542,557 ---- sha.update(PAD2, 0, 40); sha.update(tmp); byte[] shavalue = sha.digest(); ! if (md5value != null) return Util.concat(md5value, shavalue); ! return shavalue; } ! /** * Generate the session keys from the computed master secret. ! * * @param clientRandom The client's nonce. * @param serverRandom The server's nonce. * @param session The session being established. *************** Certificate.signature.sha_hash *** 570,576 **** if (session.suite.cipherAlgorithm() == CipherAlgorithm.AES) ivlen = 16; int keylen = session.suite.keyLength(); ! byte[][] keys = new byte[6][]; keys[0] = new byte[maclen]; // client_write_MAC_secret keys[1] = new byte[maclen]; // server_write_MAC_secret --- 570,576 ---- if (session.suite.cipherAlgorithm() == CipherAlgorithm.AES) ivlen = 16; int keylen = session.suite.keyLength(); ! byte[][] keys = new byte[6][]; keys[0] = new byte[maclen]; // client_write_MAC_secret keys[1] = new byte[maclen]; // server_write_MAC_secret *************** Certificate.signature.sha_hash *** 578,584 **** keys[3] = new byte[keylen]; // server_write_key keys[4] = new byte[ivlen]; // client_write_iv keys[5] = new byte[ivlen]; // server_write_iv ! IRandom prf = null; if (session.version == ProtocolVersion.SSL_3) { --- 578,584 ---- keys[3] = new byte[keylen]; // server_write_key keys[4] = new byte[ivlen]; // client_write_iv keys[5] = new byte[ivlen]; // server_write_iv ! IRandom prf = null; if (session.version == ProtocolVersion.SSL_3) { *************** Certificate.signature.sha_hash *** 604,617 **** clientRandom.buffer().get(seed, (KEY_EXPANSION.length + serverRandom.length()), clientRandom.length()); ! prf = new TLSRandom(); HashMap attr = new HashMap(2); attr.put(TLSRandom.SECRET, session.privateData.masterSecret); attr.put(TLSRandom.SEED, seed); prf.init(attr); } ! try { prf.nextBytes(keys[0], 0, keys[0].length); --- 604,617 ---- clientRandom.buffer().get(seed, (KEY_EXPANSION.length + serverRandom.length()), clientRandom.length()); ! prf = new TLSRandom(); HashMap attr = new HashMap(2); attr.put(TLSRandom.SECRET, session.privateData.masterSecret); attr.put(TLSRandom.SEED, seed); prf.init(attr); } ! try { prf.nextBytes(keys[0], 0, keys[0].length); *************** Certificate.signature.sha_hash *** 666,672 **** prf2.init(attr); keys[2] = new byte[8]; prf2.nextBytes(keys[2], 0, keys[2].length); ! attr.put(TLSRandom.SECRET, keys[3]); seed = new byte[SERVER_WRITE_KEY.length + serverRandom.length() + --- 666,672 ---- prf2.init(attr); keys[2] = new byte[8]; prf2.nextBytes(keys[2], 0, keys[2].length); ! attr.put(TLSRandom.SECRET, keys[3]); seed = new byte[SERVER_WRITE_KEY.length + serverRandom.length() + *************** Certificate.signature.sha_hash *** 682,688 **** prf2.init(attr); keys[3] = new byte[8]; prf2.nextBytes(keys[3], 0, keys[3].length); ! attr.put(TLSRandom.SECRET, new byte[0]); seed = new byte[IV_BLOCK.length + clientRandom.length() + --- 682,688 ---- prf2.init(attr); keys[3] = new byte[8]; prf2.nextBytes(keys[3], 0, keys[3].length); ! attr.put(TLSRandom.SECRET, new byte[0]); seed = new byte[IV_BLOCK.length + clientRandom.length() + *************** Certificate.signature.sha_hash *** 714,720 **** { throw new Error(nsae); } ! if (Debug.DEBUG_KEY_EXCHANGE) logger.logv(Component.SSL_KEY_EXCHANGE, "keys generated;\n [0]: {0}\n [1]: {1}\n [2]: {2}\n" + --- 714,720 ---- { throw new Error(nsae); } ! if (Debug.DEBUG_KEY_EXCHANGE) logger.logv(Component.SSL_KEY_EXCHANGE, "keys generated;\n [0]: {0}\n [1]: {1}\n [2]: {2}\n" + *************** Certificate.signature.sha_hash *** 727,738 **** Util.toHexString(keys[5], ':')); return keys; } ! /** * Generate a "finished" message. The hashes passed in are modified * by this function, so they should be clone copies of the digest if * the hash function needs to be used more. ! * * @param md5 The MD5 computation. * @param sha The SHA-1 computation. * @param isClient Whether or not the client-side finished message is --- 727,738 ---- Util.toHexString(keys[5], ':')); return keys; } ! /** * Generate a "finished" message. The hashes passed in are modified * by this function, so they should be clone copies of the digest if * the hash function needs to be used more. ! * * @param md5 The MD5 computation. * @param sha The SHA-1 computation. * @param isClient Whether or not the client-side finished message is *************** Certificate.signature.sha_hash *** 797,818 **** // finishedBuffer = ByteBuffer.allocate(36); ! md5.update(isClient ? SENDER_CLIENT : SENDER_SERVER); md5.update(session.privateData.masterSecret); md5.update(PAD1); ! byte[] tmp = md5.digest(); md5.reset(); md5.update(session.privateData.masterSecret); md5.update(PAD2); md5.update(tmp); finishedBuffer.put(md5.digest()); ! sha.update(isClient ? SENDER_CLIENT : SENDER_SERVER); sha.update(session.privateData.masterSecret); sha.update(PAD1, 0, 40); ! tmp = sha.digest(); sha.reset(); sha.update(session.privateData.masterSecret); --- 797,818 ---- // finishedBuffer = ByteBuffer.allocate(36); ! md5.update(isClient ? SENDER_CLIENT : SENDER_SERVER); md5.update(session.privateData.masterSecret); md5.update(PAD1); ! byte[] tmp = md5.digest(); md5.reset(); md5.update(session.privateData.masterSecret); md5.update(PAD2); md5.update(tmp); finishedBuffer.put(md5.digest()); ! sha.update(isClient ? SENDER_CLIENT : SENDER_SERVER); sha.update(session.privateData.masterSecret); sha.update(PAD1, 0, 40); ! tmp = sha.digest(); sha.reset(); sha.update(session.privateData.masterSecret); *************** Certificate.signature.sha_hash *** 822,828 **** } return finishedBuffer; } ! protected void initDiffieHellman(DHPrivateKey dhKey, SecureRandom random) throws SSLException { --- 822,828 ---- } return finishedBuffer; } ! protected void initDiffieHellman(DHPrivateKey dhKey, SecureRandom random) throws SSLException { *************** Certificate.signature.sha_hash *** 840,846 **** throw new SSLException(nsae); } } ! protected void generateMasterSecret(Random clientRandom, Random serverRandom, SessionImpl session) --- 840,846 ---- throw new SSLException(nsae); } } ! protected void generateMasterSecret(Random clientRandom, Random serverRandom, SessionImpl session) *************** Certificate.signature.sha_hash *** 849,859 **** assert(clientRandom != null); assert(serverRandom != null); assert(session != null); ! if (Debug.DEBUG_KEY_EXCHANGE) logger.logv(Component.SSL_KEY_EXCHANGE, "preMasterSecret:\n{0}", new ByteArray(preMasterSecret)); ! if (session.version == ProtocolVersion.SSL_3) { try --- 849,859 ---- assert(clientRandom != null); assert(serverRandom != null); assert(session != null); ! if (Debug.DEBUG_KEY_EXCHANGE) logger.logv(Component.SSL_KEY_EXCHANGE, "preMasterSecret:\n{0}", new ByteArray(preMasterSecret)); ! if (session.version == ProtocolVersion.SSL_3) { try *************** Certificate.signature.sha_hash *** 861,867 **** MessageDigest _md5 = MessageDigest.getInstance("MD5"); MessageDigest _sha = MessageDigest.getInstance("SHA"); session.privateData.masterSecret = new byte[48]; ! _sha.update((byte) 'A'); _sha.update(preMasterSecret); _sha.update(clientRandom.buffer()); --- 861,867 ---- MessageDigest _md5 = MessageDigest.getInstance("MD5"); MessageDigest _sha = MessageDigest.getInstance("SHA"); session.privateData.masterSecret = new byte[48]; ! _sha.update((byte) 'A'); _sha.update(preMasterSecret); _sha.update(clientRandom.buffer()); *************** Certificate.signature.sha_hash *** 869,875 **** _md5.update(preMasterSecret); _md5.update(_sha.digest()); _md5.digest(session.privateData.masterSecret, 0, 16); ! _sha.update((byte) 'B'); _sha.update((byte) 'B'); _sha.update(preMasterSecret); --- 869,875 ---- _md5.update(preMasterSecret); _md5.update(_sha.digest()); _md5.digest(session.privateData.masterSecret, 0, 16); ! _sha.update((byte) 'B'); _sha.update((byte) 'B'); _sha.update(preMasterSecret); *************** Certificate.signature.sha_hash *** 914,933 **** attr.put(TLSRandom.SECRET, preMasterSecret); attr.put(TLSRandom.SEED, seed); prf.init(attr); ! session.privateData.masterSecret = new byte[48]; prf.nextBytes(session.privateData.masterSecret, 0, 48); } ! if (Debug.DEBUG_KEY_EXCHANGE) logger.log(Component.SSL_KEY_EXCHANGE, "master_secret: {0}", new ByteArray(session.privateData.masterSecret)); ! // Wipe out the preMasterSecret. for (int i = 0; i < preMasterSecret.length; i++) preMasterSecret[i] = 0; } ! protected void setupSecurityParameters(byte[][] keys, boolean isClient, SSLEngineImpl engine, CompressionMethod compression) --- 914,933 ---- attr.put(TLSRandom.SECRET, preMasterSecret); attr.put(TLSRandom.SEED, seed); prf.init(attr); ! session.privateData.masterSecret = new byte[48]; prf.nextBytes(session.privateData.masterSecret, 0, 48); } ! if (Debug.DEBUG_KEY_EXCHANGE) logger.log(Component.SSL_KEY_EXCHANGE, "master_secret: {0}", new ByteArray(session.privateData.masterSecret)); ! // Wipe out the preMasterSecret. for (int i = 0; i < preMasterSecret.length; i++) preMasterSecret[i] = 0; } ! protected void setupSecurityParameters(byte[][] keys, boolean isClient, SSLEngineImpl engine, CompressionMethod compression) *************** Certificate.signature.sha_hash *** 943,949 **** Cipher inCipher = s.cipher(); Mac inMac = s.mac(engine.session().version); Inflater inflater = (compression == CompressionMethod.ZLIB ! ? new Inflater() : null); inCipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keys[isClient ? 3 : 2], s.cipherAlgorithm().toString()), --- 943,949 ---- Cipher inCipher = s.cipher(); Mac inMac = s.mac(engine.session().version); Inflater inflater = (compression == CompressionMethod.ZLIB ! ? new Inflater() : null); inCipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keys[isClient ? 3 : 2], s.cipherAlgorithm().toString()), *************** Certificate.signature.sha_hash *** 953,959 **** inParams = new InputSecurityParameters(inCipher, inMac, inflater, engine.session(), s); ! Cipher outCipher = s.cipher(); Mac outMac = s.mac(engine.session().version); Deflater deflater = (compression == CompressionMethod.ZLIB --- 953,959 ---- inParams = new InputSecurityParameters(inCipher, inMac, inflater, engine.session(), s); ! Cipher outCipher = s.cipher(); Mac outMac = s.mac(engine.session().version); Deflater deflater = (compression == CompressionMethod.ZLIB *************** Certificate.signature.sha_hash *** 1025,1047 **** preMasterSecret[6] = (byte) engine.session().random().nextInt(); preMasterSecret[7] = (byte) engine.session().random().nextInt(); } ! if (Debug.DEBUG_KEY_EXCHANGE) logger.logv(Component.SSL_KEY_EXCHANGE, "PSK identity {0} key {1}", identity, key); ! generateMasterSecret(clientRandom, serverRandom, engine.session()); byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); setupSecurityParameters(keys, isClient, engine, compression); } ! protected class DHPhase extends DelegatedTask { private final DHPublicKey key; private final boolean full; ! protected DHPhase(DHPublicKey key) { this(key, true); --- 1025,1047 ---- preMasterSecret[6] = (byte) engine.session().random().nextInt(); preMasterSecret[7] = (byte) engine.session().random().nextInt(); } ! if (Debug.DEBUG_KEY_EXCHANGE) logger.logv(Component.SSL_KEY_EXCHANGE, "PSK identity {0} key {1}", identity, key); ! generateMasterSecret(clientRandom, serverRandom, engine.session()); byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); setupSecurityParameters(keys, isClient, engine, compression); } ! protected class DHPhase extends DelegatedTask { private final DHPublicKey key; private final boolean full; ! protected DHPhase(DHPublicKey key) { this(key, true); *************** Certificate.signature.sha_hash *** 1065,1071 **** } } } ! protected class CertVerifier extends DelegatedTask { private final boolean clientSide; --- 1065,1071 ---- } } } ! protected class CertVerifier extends DelegatedTask { private final boolean clientSide; *************** Certificate.signature.sha_hash *** 1077,1088 **** this.clientSide = clientSide; this.chain = chain; } ! boolean verified() { return verified; } ! protected void implRun() { X509TrustManager tm = engine.contextImpl.trustManager; --- 1077,1088 ---- this.clientSide = clientSide; this.chain = chain; } ! boolean verified() { return verified; } ! protected void implRun() { X509TrustManager tm = engine.contextImpl.trustManager; *************** Certificate.signature.sha_hash *** 1153,1170 **** verified = false; } } ! if (verified) engine.session().setPeerVerified(true); } } ! protected class DHE_PSKGen extends DelegatedTask { private final DHPublicKey dhKey; private final SecretKey psKey; private final boolean isClient; ! protected DHE_PSKGen(DHPublicKey dhKey, SecretKey psKey, boolean isClient) { this.dhKey = dhKey; --- 1153,1170 ---- verified = false; } } ! if (verified) engine.session().setPeerVerified(true); } } ! protected class DHE_PSKGen extends DelegatedTask { private final DHPublicKey dhKey; private final SecretKey psKey; private final boolean isClient; ! protected DHE_PSKGen(DHPublicKey dhKey, SecretKey psKey, boolean isClient) { this.dhKey = dhKey; *************** Certificate.signature.sha_hash *** 1187,1193 **** psSecret = new byte[8]; engine.session().random().nextBytes(psSecret); } ! preMasterSecret = new byte[dhSecret.length + psSecret.length + 4]; preMasterSecret[0] = (byte) (dhSecret.length >>> 8); preMasterSecret[1] = (byte) dhSecret.length; --- 1187,1193 ---- psSecret = new byte[8]; engine.session().random().nextBytes(psSecret); } ! preMasterSecret = new byte[dhSecret.length + psSecret.length + 4]; preMasterSecret[0] = (byte) (dhSecret.length >>> 8); preMasterSecret[1] = (byte) dhSecret.length; *************** Certificate.signature.sha_hash *** 1196,1205 **** preMasterSecret[dhSecret.length + 3] = (byte) psSecret.length; System.arraycopy(psSecret, 0, preMasterSecret, dhSecret.length + 4, psSecret.length); ! generateMasterSecret(clientRandom, serverRandom, engine.session()); byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); setupSecurityParameters(keys, isClient, engine, compression); } } ! } \ No newline at end of file --- 1196,1205 ---- preMasterSecret[dhSecret.length + 3] = (byte) psSecret.length; System.arraycopy(psSecret, 0, preMasterSecret, dhSecret.length + 4, psSecret.length); ! generateMasterSecret(clientRandom, serverRandom, engine.session()); byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); setupSecurityParameters(keys, isClient, engine, compression); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java Tue Jan 11 19:46:05 2011 *************** public final class Alert implements Cons *** 73,79 **** { this.buffer = buffer; } ! public Alert (final Level level, final Description description) { level.getClass (); --- 73,79 ---- { this.buffer = buffer; } ! public Alert (final Level level, final Description description) { level.getClass (); *************** public final class Alert implements Cons *** 171,177 **** { WARNING (1), FATAL (2); ! private final int value; private Level(int value) --- 171,177 ---- { WARNING (1), FATAL (2); ! private final int value; private Level(int value) *************** public final class Alert implements Cons *** 231,237 **** BAD_CERTIFICATE_HASH_VALUE (114), UNKNOWN_SRP_USERNAME (120), MISSING_SRP_USERNAME (121); ! private final int value; private Description(int value) --- 231,237 ---- BAD_CERTIFICATE_HASH_VALUE (114), UNKNOWN_SRP_USERNAME (120), MISSING_SRP_USERNAME (121); ! private final int value; private Description(int value) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/AlertException.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/AlertException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/AlertException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/AlertException.java Tue Jan 11 19:46:05 2011 *************** public class AlertException extends SSLE *** 66,79 **** { this(alert, true); } ! public AlertException(Alert alert, boolean isLocal, Throwable cause) { super(alert.description().toString(), cause); this.alert = alert; this.isLocal = isLocal; } ! public AlertException(Alert alert, Throwable cause) { this(alert, true, cause); --- 66,79 ---- { this(alert, true); } ! public AlertException(Alert alert, boolean isLocal, Throwable cause) { super(alert.description().toString(), cause); this.alert = alert; this.isLocal = isLocal; } ! public AlertException(Alert alert, Throwable cause) { this(alert, true, cause); *************** public class AlertException extends SSLE *** 93,99 **** { return alert; } ! public boolean isLocal() { return isLocal; --- 93,99 ---- { return alert; } ! public boolean isLocal() { return isLocal; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Builder.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Builder.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Builder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Builder.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 46,56 **** * buffer that grows to fit the object being built; the allocated size of * this buffer may be larger than the built object needs, but the general * effort will be not to allocate too large a buffer. ! * *

          Once the object is built, through various setters for * the object's attributes, the final buffer may be retrieved with the * {@link #buffer()} method. ! * * @author Casey Marshall (csm@gnu.org) */ public interface Builder extends Constructed --- 46,56 ---- * buffer that grows to fit the object being built; the allocated size of * this buffer may be larger than the built object needs, but the general * effort will be not to allocate too large a buffer. ! * *

          Once the object is built, through various setters for * the object's attributes, the final buffer may be retrieved with the * {@link #buffer()} method. ! * * @author Casey Marshall (csm@gnu.org) */ public interface Builder extends Constructed *************** public interface Builder extends Constru *** 59,65 **** * Returns the final buffer, possibly containing the built object. The * returned buffer will be "trimmed" to size: its position will be zero, * and its limit and capacity set to the length of the built object. ! * * @return The underlying buffer. */ ByteBuffer buffer(); --- 59,65 ---- * Returns the final buffer, possibly containing the built object. The * returned buffer will be "trimmed" to size: its position will be zero, * and its limit and capacity set to the length of the built object. ! * * @return The underlying buffer. */ ByteBuffer buffer(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Certificate.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Certificate.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Certificate.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Certificate.java Tue Jan 11 19:46:05 2011 *************** import java.util.List; *** 57,63 **** /** * The certificate object. This is used by both the client and the server * to send their certificates (if any) to one another. ! * *

          opaque ASN.1Cert<1..2^24-1>;
            
            struct {
          --- 57,63 ----
            /**
             * The certificate object. This is used by both the client and the server
             * to send their certificates (if any) to one another.
          !  *
             * 
          opaque ASN.1Cert<1..2^24-1>;
            
            struct {
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java	Tue Jan  9 19:58:05 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* CertificateBuilder.java -- 
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* CertificateBuilder.java --
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** import java.security.cert.CertificateExc
          *** 46,52 ****
            
            /**
             * Builder for {@link Certificate} objects.
          !  * 
             * @author Casey Marshall (csm@gnu.org)
             */
            public class CertificateBuilder extends Certificate implements Builder
          --- 46,52 ----
            
            /**
             * Builder for {@link Certificate} objects.
          !  *
             * @author Casey Marshall (csm@gnu.org)
             */
            public class CertificateBuilder extends Certificate implements Builder
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java	Tue Jan  9 19:58:05 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java	Tue Jan 11 19:46:05 2011
          *************** public class CertificateRequest implemen
          *** 62,68 ****
              // -------------------------------------------------------------------------
            
              protected ByteBuffer buffer;
          !   
              // Constructor.
              // -------------------------------------------------------------------------
            
          --- 62,68 ----
              // -------------------------------------------------------------------------
            
              protected ByteBuffer buffer;
          ! 
              // Constructor.
              // -------------------------------------------------------------------------
            
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* CertificateRequestBuilder.java -- 
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* CertificateRequestBuilder.java --
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** import javax.security.auth.x500.X500Prin
          *** 47,53 ****
            
            /**
             * Builder for {@link CertificateRequest} objects.
          !  * 
             * @author Casey Marshall (csm@gnu.org)
             */
            public class CertificateRequestBuilder extends CertificateRequest
          --- 47,53 ----
            
            /**
             * Builder for {@link CertificateRequest} objects.
          !  *
             * @author Casey Marshall (csm@gnu.org)
             */
            public class CertificateRequestBuilder extends CertificateRequest
          *************** public class CertificateRequestBuilder e
          *** 74,80 ****
                for (ClientCertificateType type : types)
                  b.put((byte) type.getValue());
              }
          !   
              public void setAuthorities(List authorities)
              {
                ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
          --- 74,80 ----
                for (ClientCertificateType type : types)
                  b.put((byte) type.getValue());
              }
          ! 
              public void setAuthorities(List authorities)
              {
                ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
          *************** public class CertificateRequestBuilder e
          *** 99,105 ****
                buffer.putShort(typesLen, (short) auths.length);
                ((ByteBuffer) buffer.duplicate().position(typesLen + 2)).put(auths);
              }
          !   
              public void ensureCapacity(final int capacity)
              {
                if (buffer.capacity() >= capacity)
          --- 99,105 ----
                buffer.putShort(typesLen, (short) auths.length);
                ((ByteBuffer) buffer.duplicate().position(typesLen + 2)).put(auths);
              }
          ! 
              public void ensureCapacity(final int capacity)
              {
                if (buffer.capacity() >= capacity)
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java	Tue Jan  9 19:58:05 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java	Tue Jan 11 19:46:05 2011
          *************** opaque Extensions<0..2^16-1>;
          { private ByteBuffer buffer; ! public CertificateStatusRequest(final ByteBuffer buffer) { this.buffer = buffer; } ! public CertificateStatusRequest(CertificateStatusType type, List responderIdList, byte[] requestExtensions) --- 71,82 ---- public class CertificateStatusRequest extends Value implements Iterable { private ByteBuffer buffer; ! public CertificateStatusRequest(final ByteBuffer buffer) { this.buffer = buffer; } ! public CertificateStatusRequest(CertificateStatusType type, List responderIdList, byte[] requestExtensions) *************** public class CertificateStatusRequest ex *** 106,117 **** int l = 3 + (buffer.getShort(1) & 0xFFFF); return l + (buffer.getShort(l) & 0xFFFF) + 2; } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); } ! public CertificateStatusType statusType() { int x = buffer.get(0) & 0xFF; --- 106,117 ---- int l = 3 + (buffer.getShort(1) & 0xFFFF); return l + (buffer.getShort(l) & 0xFFFF) + 2; } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); } ! public CertificateStatusType statusType() { int x = buffer.get(0) & 0xFF; *************** public class CertificateStatusRequest ex *** 132,138 **** } return n; } ! public byte[] responderId(int index) { int len = buffer.getShort(1) & 0xFFFF; --- 132,138 ---- } return n; } ! public byte[] responderId(int index) { int len = buffer.getShort(1) & 0xFFFF; *************** public class CertificateStatusRequest ex *** 152,158 **** } throw new IndexOutOfBoundsException(); } ! public byte[] requestExtensions() { int l = 2 + (buffer.getShort(0) & 0xFFFF); --- 152,158 ---- } throw new IndexOutOfBoundsException(); } ! public byte[] requestExtensions() { int l = 2 + (buffer.getShort(0) & 0xFFFF); *************** public class CertificateStatusRequest ex *** 161,179 **** ((ByteBuffer) buffer.duplicate().position(ll+2)).get(b); return b; } ! public void setStatusType(CertificateStatusType type) { buffer.put(0, (byte) type.value); } ! public void setRequestIdListLength(int newLength) { if (newLength < 0 || newLength > 0xFFFF) throw new IllegalArgumentException("length out of range"); buffer.putShort(1, (short) newLength); } ! public void putRequestId(int index, byte[] id) { if (id.length > 0xFFFF) --- 161,179 ---- ((ByteBuffer) buffer.duplicate().position(ll+2)).get(b); return b; } ! public void setStatusType(CertificateStatusType type) { buffer.put(0, (byte) type.value); } ! public void setRequestIdListLength(int newLength) { if (newLength < 0 || newLength > 0xFFFF) throw new IllegalArgumentException("length out of range"); buffer.putShort(1, (short) newLength); } ! public void putRequestId(int index, byte[] id) { if (id.length > 0xFFFF) *************** public class CertificateStatusRequest ex *** 192,198 **** buffer.putShort(i, (short) id.length); ((ByteBuffer) buffer.duplicate().position(i)).put(id); } ! public void setRequestExtensions(int index, byte[] ext) { if (ext.length > 0xFFFF) --- 192,198 ---- buffer.putShort(i, (short) id.length); ((ByteBuffer) buffer.duplicate().position(i)).put(id); } ! public void setRequestExtensions(int index, byte[] ext) { if (ext.length > 0xFFFF) *************** public class CertificateStatusRequest ex *** 201,217 **** buffer.putShort(off, (short) ext.length); ((ByteBuffer) buffer.duplicate().position(off+2)).put(ext); } ! public Iterator iterator() { return new ResponderIdIterator(); } ! public String toString() { return toString(null); } ! public String toString(String prefix) { StringWriter str = new StringWriter(); --- 201,217 ---- buffer.putShort(off, (short) ext.length); ((ByteBuffer) buffer.duplicate().position(off+2)).put(ext); } ! public Iterator iterator() { return new ResponderIdIterator(); } ! public String toString() { return toString(null); } ! public String toString(String prefix) { StringWriter str = new StringWriter(); *************** public class CertificateStatusRequest ex *** 237,252 **** out.print("} CertificateStatus;"); return str.toString(); } ! public class ResponderIdIterator implements Iterator { private int index; ! public ResponderIdIterator() { index = 0; } ! public byte[] next() throws NoSuchElementException { try --- 237,252 ---- out.print("} CertificateStatus;"); return str.toString(); } ! public class ResponderIdIterator implements Iterator { private int index; ! public ResponderIdIterator() { index = 0; } ! public byte[] next() throws NoSuchElementException { try *************** public class CertificateStatusRequest ex *** 258,269 **** throw new NoSuchElementException(); } } ! public boolean hasNext() { return index < size(); } ! public void remove() { throw new UnsupportedOperationException(); --- 258,269 ---- throw new NoSuchElementException(); } } ! public boolean hasNext() { return index < size(); } ! public void remove() { throw new UnsupportedOperationException(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java Tue Jan 11 19:46:05 2011 *************** package gnu.javax.net.ssl.provider; *** 3,11 **** public enum CertificateStatusType { OCSP (1); ! public final int value; ! private CertificateStatusType (final int value) { this.value = value; --- 3,11 ---- public enum CertificateStatusType { OCSP (1); ! public final int value; ! private CertificateStatusType (final int value) { this.value = value; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateURL.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateURL.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateURL.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateURL.java Tue Jan 11 19:46:05 2011 *************** import java.util.NoSuchElementException; *** 52,58 **** /** * The CertificateURL extension value. ! * *
            enum {
              individual_certs(0), pkipath(1), (255)
          --- 52,58 ----
            
            /**
             * The CertificateURL extension value.
          !  *
             * 
            enum {
              individual_certs(0), pkipath(1), (255)
          *************** opaque SHA1Hash[20];
          *** 84,95 **** public class CertificateURL extends Value implements Iterable { private ByteBuffer buffer; ! public CertificateURL(final ByteBuffer buffer) { this.buffer = buffer; } ! public CertificateURL(CertChainType type, List urls) { int length = 3; --- 84,95 ---- public class CertificateURL extends Value implements Iterable { private ByteBuffer buffer; ! public CertificateURL(final ByteBuffer buffer) { this.buffer = buffer; } ! public CertificateURL(CertChainType type, List urls) { int length = 3; *************** public class CertificateURL extends Valu *** 102,113 **** buffer.put(url.buffer()); buffer.rewind(); } ! public int length() { return 3 + (buffer.getShort(1) & 0xFFFF); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); --- 102,113 ---- buffer.put(url.buffer()); buffer.rewind(); } ! public int length() { return 3 + (buffer.getShort(1) & 0xFFFF); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); *************** public class CertificateURL extends Valu *** 122,128 **** } throw new IllegalArgumentException("unknown certificate URL type"); } ! public int size() { int len = buffer.getShort(1) & 0xFFFF; --- 122,128 ---- } throw new IllegalArgumentException("unknown certificate URL type"); } ! public int size() { int len = buffer.getShort(1) & 0xFFFF; *************** public class CertificateURL extends Valu *** 137,143 **** } return n; } ! public URLAndOptionalHash get(int index) { int len = buffer.getShort(1) & 0xFFFF; --- 137,143 ---- } return n; } ! public URLAndOptionalHash get(int index) { int len = buffer.getShort(1) & 0xFFFF; *************** public class CertificateURL extends Valu *** 156,162 **** throw new IndexOutOfBoundsException(); return new URLAndOptionalHash(((ByteBuffer) buffer.duplicate().position(i).limit(i+l)).slice()); } ! public void set(int index, URLAndOptionalHash url) { int len = buffer.getShort(1) & 0xFFFF; --- 156,162 ---- throw new IndexOutOfBoundsException(); return new URLAndOptionalHash(((ByteBuffer) buffer.duplicate().position(i).limit(i+l)).slice()); } ! public void set(int index, URLAndOptionalHash url) { int len = buffer.getShort(1) & 0xFFFF; *************** public class CertificateURL extends Valu *** 179,197 **** if (url.hashPresent()) ((ByteBuffer) buffer.duplicate().position(i+l+3)).put (url.sha1Hash()); } ! public void setLength(final int length) { if (length < 0 || length > 65535) throw new IllegalArgumentException("length must be between 0 and 65535"); buffer.putShort(1, (short) length); } ! public String toString() { return toString(null); } ! public String toString(String prefix) { StringWriter str = new StringWriter(); --- 179,197 ---- if (url.hashPresent()) ((ByteBuffer) buffer.duplicate().position(i+l+3)).put (url.sha1Hash()); } ! public void setLength(final int length) { if (length < 0 || length > 65535) throw new IllegalArgumentException("length must be between 0 and 65535"); buffer.putShort(1, (short) length); } ! public String toString() { return toString(null); } ! public String toString(String prefix) { StringWriter str = new StringWriter(); *************** public class CertificateURL extends Valu *** 221,236 **** { return new Iterator(); } ! public class Iterator implements java.util.Iterator { private int index; ! public Iterator() { index = 0; } ! public URLAndOptionalHash next() throws NoSuchElementException { try --- 221,236 ---- { return new Iterator(); } ! public class Iterator implements java.util.Iterator { private int index; ! public Iterator() { index = 0; } ! public URLAndOptionalHash next() throws NoSuchElementException { try *************** public class CertificateURL extends Valu *** 242,290 **** throw new NoSuchElementException(); } } ! public boolean hasNext() { return index < size(); } ! public void remove() { throw new UnsupportedOperationException(); } } ! public static enum CertChainType { INDIVIDUAL_CERTS (0), PKIPATH (1); ! private final int value; ! private CertChainType (final int value) { this.value = value; } ! public int getValue() { return value; } } ! public static class URLAndOptionalHash implements Builder, Constructed { private ByteBuffer buffer; ! public URLAndOptionalHash (final ByteBuffer buffer) { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! public URLAndOptionalHash(String url) { this(url, null); } ! public URLAndOptionalHash(String url, byte[] hash) { if (hash != null && hash.length < 20) --- 242,290 ---- throw new NoSuchElementException(); } } ! public boolean hasNext() { return index < size(); } ! public void remove() { throw new UnsupportedOperationException(); } } ! public static enum CertChainType { INDIVIDUAL_CERTS (0), PKIPATH (1); ! private final int value; ! private CertChainType (final int value) { this.value = value; } ! public int getValue() { return value; } } ! public static class URLAndOptionalHash implements Builder, Constructed { private ByteBuffer buffer; ! public URLAndOptionalHash (final ByteBuffer buffer) { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! public URLAndOptionalHash(String url) { this(url, null); } ! public URLAndOptionalHash(String url, byte[] hash) { if (hash != null && hash.length < 20) *************** public class CertificateURL extends Valu *** 302,336 **** buffer.put(hash, 0, 20); buffer.rewind(); } ! public int length() { return ((buffer.getShort(0) & 0xFFFF) + (hashPresent() ? 23 : 3)); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); } ! public String url() { Charset cs = Charset.forName("ASCII"); return cs.decode(urlBuffer()).toString(); } ! public int urlLength() { return buffer.getShort(0) & 0xFFFF; } ! public ByteBuffer urlBuffer() { int len = urlLength(); return ((ByteBuffer) buffer.duplicate().position(2).limit(2+len)).slice(); } ! public boolean hashPresent() { int i = (buffer.getShort(0) & 0xFFFF) + 2; --- 302,336 ---- buffer.put(hash, 0, 20); buffer.rewind(); } ! public int length() { return ((buffer.getShort(0) & 0xFFFF) + (hashPresent() ? 23 : 3)); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); } ! public String url() { Charset cs = Charset.forName("ASCII"); return cs.decode(urlBuffer()).toString(); } ! public int urlLength() { return buffer.getShort(0) & 0xFFFF; } ! public ByteBuffer urlBuffer() { int len = urlLength(); return ((ByteBuffer) buffer.duplicate().position(2).limit(2+len)).slice(); } ! public boolean hashPresent() { int i = (buffer.getShort(0) & 0xFFFF) + 2; *************** public class CertificateURL extends Valu *** 341,347 **** return true; throw new IllegalArgumentException("expecting 0 or 1: " + (b & 0xFF)); } ! public byte[] sha1Hash() { int i = (buffer.getShort(0) & 0xFFFF) + 2; --- 341,347 ---- return true; throw new IllegalArgumentException("expecting 0 or 1: " + (b & 0xFF)); } ! public byte[] sha1Hash() { int i = (buffer.getShort(0) & 0xFFFF) + 2; *************** public class CertificateURL extends Valu *** 352,363 **** ((ByteBuffer) buffer.duplicate().position(i+1)).get(buf); return buf; } ! public String toString() { return toString(null); } ! public String toString(final String prefix) { StringWriter str = new StringWriter(); --- 352,363 ---- ((ByteBuffer) buffer.duplicate().position(i+1)).get(buf); return buf; } ! public String toString() { return toString(null); } ! public String toString(final String prefix) { StringWriter str = new StringWriter(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateVerify.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateVerify.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CertificateVerify.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CertificateVerify.java Tue Jan 11 19:46:05 2011 *************** public class CertificateVerify extends S *** 52,58 **** { super(buffer, sigAlg); } ! public CertificateVerify(final byte[] sigVal, final SignatureAlgorithm sigAlg) { super(sigVal, sigAlg); --- 52,58 ---- { super(buffer, sigAlg); } ! public CertificateVerify(final byte[] sigVal, final SignatureAlgorithm sigAlg) { super(sigVal, sigAlg); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java Tue Jan 11 19:46:05 2011 *************** public final class CipherSuite implement *** 313,319 **** SignatureAlgorithm.DSA, MacAlgorithm.SHA, 32, 0x00, 0x58, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA");*/ ! // Pre-shared key suites. public static final CipherSuite TLS_PSK_WITH_RC4_128_SHA = new CipherSuite(CipherAlgorithm.RC4, --- 313,319 ---- SignatureAlgorithm.DSA, MacAlgorithm.SHA, 32, 0x00, 0x58, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA");*/ ! // Pre-shared key suites. public static final CipherSuite TLS_PSK_WITH_RC4_128_SHA = new CipherSuite(CipherAlgorithm.RC4, *************** public final class CipherSuite implement *** 364,370 **** SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 32, 0x00, 0x91, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"); ! public static final CipherSuite TLS_RSA_PSK_WITH_RC4_128_SHA = new CipherSuite(CipherAlgorithm.RC4, KeyExchangeAlgorithm.RSA_PSK, --- 364,370 ---- SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 32, 0x00, 0x91, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"); ! public static final CipherSuite TLS_RSA_PSK_WITH_RC4_128_SHA = new CipherSuite(CipherAlgorithm.RC4, KeyExchangeAlgorithm.RSA_PSK, *************** public final class CipherSuite implement *** 629,635 **** throw new NoSuchAlgorithmException(toString() + ": unresolved cipher suite"); if (macAlgorithm == MacAlgorithm.NULL) return null; ! String macAlg = null; if (version == ProtocolVersion.SSL_3) { --- 629,635 ---- throw new NoSuchAlgorithmException(toString() + ": unresolved cipher suite"); if (macAlgorithm == MacAlgorithm.NULL) return null; ! String macAlg = null; if (version == ProtocolVersion.SSL_3) { *************** public final class CipherSuite implement *** 642,648 **** if (macAlgorithm == MacAlgorithm.SHA) macAlg = "HMac-SHA1"; } ! GetSecurityPropertyAction gspa = new GetSecurityPropertyAction ("jessie.jce.provider"); final String provider = AccessController.doPrivileged (gspa); --- 642,648 ---- if (macAlgorithm == MacAlgorithm.SHA) macAlg = "HMac-SHA1"; } ! GetSecurityPropertyAction gspa = new GetSecurityPropertyAction ("jessie.jce.provider"); final String provider = AccessController.doPrivileged (gspa); *************** public final class CipherSuite implement *** 689,695 **** { buf.put (id); } ! public CipherSuite resolve() { if (id[0] == 0x00) switch (id[1] & 0xFF) --- 689,695 ---- { buf.put (id); } ! public CipherSuite resolve() { if (id[0] == 0x00) switch (id[1] & 0xFF) *************** public final class CipherSuite implement *** 764,770 **** } return this; } ! public boolean isResolved() { return isResolved; --- 764,770 ---- } return this; } ! public boolean isResolved() { return isResolved; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java Tue Jan 11 19:46:05 2011 *************** public final class CipherSuiteList imple *** 194,200 **** { return new Iterator (); } ! /** * An iterator for the elements in this list. The iterator supports * only the set method out of the optional methods, --- 194,200 ---- { return new Iterator (); } ! /** * An iterator for the elements in this list. The iterator supports * only the set method out of the optional methods, diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java Tue Jan 11 19:46:05 2011 *************** public class ClientCertificateTypeList i *** 74,80 **** return CertificateRequest.ClientCertificateType.forValue (buffer.get (index + 1) & 0xFF); } ! public java.util.Iterator iterator() { return new Iterator(); --- 74,80 ---- return CertificateRequest.ClientCertificateType.forValue (buffer.get (index + 1) & 0xFF); } ! public java.util.Iterator iterator() { return new Iterator(); *************** public class ClientCertificateTypeList i *** 224,227 **** put (index, type); } } ! } \ No newline at end of file --- 224,227 ---- put (index, type); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClientDHE_PSKParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ClientDHE_PSKParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ClientDHE_PSKParameters ext *** 60,66 **** { super(buffer); } ! public ClientDHE_PSKParameters(String identity, ClientDiffieHellmanPublic dh) { super(null); --- 60,66 ---- { super(buffer); } ! public ClientDHE_PSKParameters(String identity, ClientDiffieHellmanPublic dh) { super(null); *************** public class ClientDHE_PSKParameters ext *** 80,91 **** { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); } ! private int identityLength() { return (buffer.getShort(0) & 0xFFFF) + 2; } ! public String identity() { Charset utf8 = Charset.forName("UTF-8"); --- 80,91 ---- { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); } ! private int identityLength() { return (buffer.getShort(0) & 0xFFFF) + 2; } ! public String identity() { Charset utf8 = Charset.forName("UTF-8"); *************** public class ClientDHE_PSKParameters ext *** 109,115 **** return new ClientDiffieHellmanPublic(((ByteBuffer) buffer.duplicate() .position(identityLength()).limit(length())).slice()); } ! /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) */ --- 109,115 ---- return new ClientDiffieHellmanPublic(((ByteBuffer) buffer.duplicate() .position(identityLength()).limit(length())).slice()); } ! /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java Tue Jan 11 19:46:05 2011 *************** struct { *** 54,60 **** case implicit: struct { }; case explicit: opaque dh_Yc<1..2^16-1>; } dh_public; ! } ClientDiffieHellmanPublic;
          */ public class ClientDiffieHellmanPublic extends ExchangeKeys implements Builder { --- 54,60 ---- case implicit: struct { }; case explicit: opaque dh_Yc<1..2^16-1>; } dh_public; ! } ClientDiffieHellmanPublic;
          */ public class ClientDiffieHellmanPublic extends ExchangeKeys implements Builder { *************** public class ClientDiffieHellmanPublic e *** 62,73 **** { super(buffer); } ! public ClientDiffieHellmanPublic(final BigInteger Yc) { super(wrap(Yc)); } ! private static ByteBuffer wrap(BigInteger Yc) { byte[] b = Util.trim(Yc); --- 62,73 ---- { super(buffer); } ! public ClientDiffieHellmanPublic(final BigInteger Yc) { super(wrap(Yc)); } ! private static ByteBuffer wrap(BigInteger Yc) { byte[] b = Util.trim(Yc); *************** public class ClientDiffieHellmanPublic e *** 81,87 **** { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); } ! public BigInteger publicValue() { int len = length() - 2; --- 81,87 ---- { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); } ! public BigInteger publicValue() { int len = length() - 2; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClientHandshake.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ClientHandshake.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ClientHandshake extends Abs *** 103,129 **** WRITE_FINISHED (false, true), READ_FINISHED (true, false), DONE (false, false); ! private final boolean isWriteState; private final boolean isReadState; ! private State(boolean isReadState, boolean isWriteState) { this.isReadState = isReadState; this.isWriteState = isWriteState; } ! boolean isReadState() { return isReadState; } ! boolean isWriteState() { return isWriteState; } } ! private State state; private ByteBuffer outBuffer; private boolean continuedSession; --- 103,129 ---- WRITE_FINISHED (false, true), READ_FINISHED (true, false), DONE (false, false); ! private final boolean isWriteState; private final boolean isReadState; ! private State(boolean isReadState, boolean isWriteState) { this.isReadState = isReadState; this.isWriteState = isWriteState; } ! boolean isReadState() { return isReadState; } ! boolean isWriteState() { return isWriteState; } } ! private State state; private ByteBuffer outBuffer; private boolean continuedSession; *************** public class ClientHandshake extends Abs *** 134,147 **** private MaxFragmentLength maxFragmentLengthSent; private boolean truncatedHMacSent; private ProtocolVersion sentVersion; ! // Delegated tasks. private CertVerifier certVerifier; private ParamsVerifier paramsVerifier; private DelegatedTask keyExchange; private CertLoader certLoader; private GenCertVerify genCertVerify; ! public ClientHandshake(SSLEngineImpl engine) throws NoSuchAlgorithmException { super(engine); --- 134,147 ---- private MaxFragmentLength maxFragmentLengthSent; private boolean truncatedHMacSent; private ProtocolVersion sentVersion; ! // Delegated tasks. private CertVerifier certVerifier; private ParamsVerifier paramsVerifier; private DelegatedTask keyExchange; private CertLoader certLoader; private GenCertVerify genCertVerify; ! public ClientHandshake(SSLEngineImpl engine) throws NoSuchAlgorithmException { super(engine); *************** public class ClientHandshake extends Abs *** 160,166 **** if (state.isWriteState() || (outBuffer != null && outBuffer.hasRemaining())) return HandshakeStatus.NEED_WRAP; ! // Copy the current buffer, and prepare it for reading. ByteBuffer buffer = handshakeBuffer.duplicate (); buffer.flip(); --- 160,166 ---- if (state.isWriteState() || (outBuffer != null && outBuffer.hasRemaining())) return HandshakeStatus.NEED_WRAP; ! // Copy the current buffer, and prepare it for reading. ByteBuffer buffer = handshakeBuffer.duplicate (); buffer.flip(); *************** public class ClientHandshake extends Abs *** 169,175 **** Handshake handshake = new Handshake(buffer.slice(), engine.session().suite, engine.session().version); ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "processing in state {0}:\n{1}", state, handshake); --- 169,175 ---- Handshake handshake = new Handshake(buffer.slice(), engine.session().suite, engine.session().version); ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "processing in state {0}:\n{1}", state, handshake); *************** public class ClientHandshake extends Abs *** 241,247 **** state = READ_CERTIFICATE_REQUEST; } break; ! // Server Certificate. case READ_CERTIFICATE: { --- 241,247 ---- state = READ_CERTIFICATE_REQUEST; } break; ! // Server Certificate. case READ_CERTIFICATE: { *************** public class ClientHandshake extends Abs *** 274,280 **** engine.session().setPeerCertificates(chain); certVerifier = new CertVerifier(true, chain); tasks.add(certVerifier); ! // If we are doing an RSA key exchange, generate our parameters. KeyExchangeAlgorithm kea = engine.session().suite.keyExchangeAlgorithm(); if (kea == RSA || kea == RSA_PSK) --- 274,280 ---- engine.session().setPeerCertificates(chain); certVerifier = new CertVerifier(true, chain); tasks.add(certVerifier); ! // If we are doing an RSA key exchange, generate our parameters. KeyExchangeAlgorithm kea = engine.session().suite.keyExchangeAlgorithm(); if (kea == RSA || kea == RSA_PSK) *************** public class ClientHandshake extends Abs *** 290,296 **** state = READ_SERVER_KEY_EXCHANGE; } break; ! // Server Key Exchange. case READ_SERVER_KEY_EXCHANGE: { --- 290,296 ---- state = READ_SERVER_KEY_EXCHANGE; } break; ! // Server Key Exchange. case READ_SERVER_KEY_EXCHANGE: { *************** public class ClientHandshake extends Abs *** 301,307 **** && kexalg != DHE_PSK && kexalg != PSK && kexalg != RSA_PSK) throw new AlertException(new Alert(Level.FATAL, Description.UNEXPECTED_MESSAGE)); ! if (handshake.type() != Handshake.Type.SERVER_KEY_EXCHANGE) { if (kexalg != RSA_PSK && kexalg != PSK) --- 301,307 ---- && kexalg != DHE_PSK && kexalg != PSK && kexalg != RSA_PSK) throw new AlertException(new Alert(Level.FATAL, Description.UNEXPECTED_MESSAGE)); ! if (handshake.type() != Handshake.Type.SERVER_KEY_EXCHANGE) { if (kexalg != RSA_PSK && kexalg != PSK) *************** public class ClientHandshake extends Abs *** 320,333 **** paramsBuffer = ByteBuffer.allocate(b.remaining()); paramsBuffer.put(b); } ! if (s.signatureAlgorithm() != SignatureAlgorithm.ANONYMOUS) { byte[] signature = skex.signature().signature(); paramsVerifier = new ParamsVerifier(paramsBuffer, signature); tasks.add(paramsVerifier); } ! if (kexalg == DHE_DSS || kexalg == DHE_RSA || kexalg == DH_anon) { ServerDHParams dhParams = (ServerDHParams) skex.params(); --- 320,333 ---- paramsBuffer = ByteBuffer.allocate(b.remaining()); paramsBuffer.put(b); } ! if (s.signatureAlgorithm() != SignatureAlgorithm.ANONYMOUS) { byte[] signature = skex.signature().signature(); paramsVerifier = new ParamsVerifier(paramsBuffer, signature); tasks.add(paramsVerifier); } ! if (kexalg == DHE_DSS || kexalg == DHE_RSA || kexalg == DH_anon) { ServerDHParams dhParams = (ServerDHParams) skex.params(); *************** public class ClientHandshake extends Abs *** 357,363 **** state = READ_CERTIFICATE_REQUEST; } break; ! // Certificate Request. case READ_CERTIFICATE_REQUEST: { --- 357,363 ---- state = READ_CERTIFICATE_REQUEST; } break; ! // Certificate Request. case READ_CERTIFICATE_REQUEST: { *************** public class ClientHandshake extends Abs *** 366,388 **** state = READ_SERVER_HELLO_DONE; return HandshakeStatus.NEED_UNWRAP; } ! CertificateRequest req = (CertificateRequest) handshake.body(); ClientCertificateTypeList types = req.types(); LinkedList typeList = new LinkedList(); for (ClientCertificateType t : types) typeList.add(t.name()); ! X500PrincipalList issuers = req.authorities(); LinkedList issuerList = new LinkedList(); for (X500Principal p : issuers) issuerList.add(p); ! certLoader = new CertLoader(typeList, issuerList); tasks.add(certLoader); } break; ! // Server Hello Done. case READ_SERVER_HELLO_DONE: { --- 366,388 ---- state = READ_SERVER_HELLO_DONE; return HandshakeStatus.NEED_UNWRAP; } ! CertificateRequest req = (CertificateRequest) handshake.body(); ClientCertificateTypeList types = req.types(); LinkedList typeList = new LinkedList(); for (ClientCertificateType t : types) typeList.add(t.name()); ! X500PrincipalList issuers = req.authorities(); LinkedList issuerList = new LinkedList(); for (X500Principal p : issuers) issuerList.add(p); ! certLoader = new CertLoader(typeList, issuerList); tasks.add(certLoader); } break; ! // Server Hello Done. case READ_SERVER_HELLO_DONE: { *************** public class ClientHandshake extends Abs *** 392,398 **** state = WRITE_CERTIFICATE; } break; ! // Finished. case READ_FINISHED: { --- 392,398 ---- state = WRITE_CERTIFICATE; } break; ! // Finished. case READ_FINISHED: { *************** public class ClientHandshake extends Abs *** 422,428 **** if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "clientFinished: {0}", clientFinished); ! if (engine.session().version == ProtocolVersion.SSL_3) { if (!Arrays.equals(clientFinished.md5Hash(), --- 422,428 ---- if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "clientFinished: {0}", clientFinished); ! if (engine.session().version == ProtocolVersion.SSL_3) { if (!Arrays.equals(clientFinished.md5Hash(), *************** public class ClientHandshake extends Abs *** 453,465 **** state = DONE; } break; ! default: throw new IllegalStateException("invalid state: " + state); } ! handshakeOffset += handshake.length() + 4; ! if (!tasks.isEmpty()) return HandshakeStatus.NEED_TASK; if (state.isWriteState() --- 453,465 ---- state = DONE; } break; ! default: throw new IllegalStateException("invalid state: " + state); } ! handshakeOffset += handshake.length() + 4; ! if (!tasks.isEmpty()) return HandshakeStatus.NEED_TASK; if (state.isWriteState() *************** public class ClientHandshake extends Abs *** 488,494 **** fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); } ! if (!fragment.hasRemaining()) { if (state.isWriteState() || outBuffer.hasRemaining()) --- 488,494 ---- fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); } ! if (!fragment.hasRemaining()) { if (state.isWriteState() || outBuffer.hasRemaining()) *************** outer_loop: *** 518,524 **** // that ID. if (continued != null) sid = continued.id(); ! hello.setSessionId(sid.id()); sentVersion = chooseVersion(); hello.setVersion(sentVersion); --- 518,524 ---- // that ID. if (continued != null) sid = continued.id(); ! hello.setSessionId(sid.id()); sentVersion = chooseVersion(); hello.setVersion(sentVersion); *************** outer_loop: *** 551,557 **** extensions.add(new Extension(Extension.Type.SERVER_NAME, names)); } ! if (truncatedHMac()) { extensions.add(new Extension(Extension.Type.TRUNCATED_HMAC, --- 551,557 ---- extensions.add(new Extension(Extension.Type.SERVER_NAME, names)); } ! if (truncatedHMac()) { extensions.add(new Extension(Extension.Type.TRUNCATED_HMAC, *************** outer_loop: *** 564,570 **** } else hello.setDisableExtensions(true); ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "{0}", hello); --- 564,570 ---- } else hello.setDisableExtensions(true); ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "{0}", hello); *************** outer_loop: *** 579,585 **** state = READ_SERVER_HELLO; } break; ! case WRITE_CERTIFICATE: { java.security.cert.Certificate[] chain --- 579,585 ---- state = READ_SERVER_HELLO; } break; ! case WRITE_CERTIFICATE: { java.security.cert.Certificate[] chain *************** outer_loop: *** 598,609 **** Description.INTERNAL_ERROR), ce); } ! outBuffer = cert.buffer(); ! fragment.putInt((Handshake.Type.CERTIFICATE.getValue() << 24) | (cert.length() & 0xFFFFFF)); ! int l = Math.min(fragment.remaining(), outBuffer.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate() .limit(outBuffer.position() + l)); --- 598,609 ---- Description.INTERNAL_ERROR), ce); } ! outBuffer = cert.buffer(); ! fragment.putInt((Handshake.Type.CERTIFICATE.getValue() << 24) | (cert.length() & 0xFFFFFF)); ! int l = Math.min(fragment.remaining(), outBuffer.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate() .limit(outBuffer.position() + l)); *************** outer_loop: *** 612,618 **** state = WRITE_CLIENT_KEY_EXCHANGE; } break; ! case WRITE_CLIENT_KEY_EXCHANGE: { KeyExchangeAlgorithm kea = engine.session().suite.keyExchangeAlgorithm(); --- 612,618 ---- state = WRITE_CLIENT_KEY_EXCHANGE; } break; ! case WRITE_CLIENT_KEY_EXCHANGE: { KeyExchangeAlgorithm kea = engine.session().suite.keyExchangeAlgorithm(); *************** outer_loop: *** 698,707 **** engine.session().suite); engine.session().privateData.masterSecret = new byte[0]; } ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "{0}", ckex); ! outBuffer = ckex.buffer(); if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "client kex buffer {0}", outBuffer); --- 698,707 ---- engine.session().suite); engine.session().privateData.masterSecret = new byte[0]; } ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "{0}", ckex); ! outBuffer = ckex.buffer(); if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "client kex buffer {0}", outBuffer); *************** outer_loop: *** 726,753 **** // Both states terminate in a NEED_TASK, or a need to change cipher // specs; so we can't write any more messages here. break outer_loop; ! case WRITE_CERTIFICATE_VERIFY: { assert(genCertVerify != null); assert(genCertVerify.hasRun()); CertificateVerify verify = new CertificateVerify(genCertVerify.signed(), engine.session().suite.signatureAlgorithm()); ! outBuffer = verify.buffer(); fragment.putInt((Handshake.Type.CERTIFICATE_VERIFY.getValue() << 24) | (verify.length() & 0xFFFFFF)); int l = Math.min(fragment.remaining(), outBuffer.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); ! // XXX This is a potential problem: we may not have drained // outBuffer, but set the changeCipherSpec toggle. engine.changeCipherSpec(); state = WRITE_FINISHED; } break outer_loop; ! case WRITE_FINISHED: { MessageDigest md5copy = null; --- 726,753 ---- // Both states terminate in a NEED_TASK, or a need to change cipher // specs; so we can't write any more messages here. break outer_loop; ! case WRITE_CERTIFICATE_VERIFY: { assert(genCertVerify != null); assert(genCertVerify.hasRun()); CertificateVerify verify = new CertificateVerify(genCertVerify.signed(), engine.session().suite.signatureAlgorithm()); ! outBuffer = verify.buffer(); fragment.putInt((Handshake.Type.CERTIFICATE_VERIFY.getValue() << 24) | (verify.length() & 0xFFFFFF)); int l = Math.min(fragment.remaining(), outBuffer.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); ! // XXX This is a potential problem: we may not have drained // outBuffer, but set the changeCipherSpec toggle. engine.changeCipherSpec(); state = WRITE_FINISHED; } break outer_loop; ! case WRITE_FINISHED: { MessageDigest md5copy = null; *************** outer_loop: *** 766,775 **** outBuffer = generateFinished(md5copy, shacopy, true, engine.session()); ! fragment.putInt((Handshake.Type.FINISHED.getValue() << 24) | outBuffer.remaining() & 0xFFFFFF); ! int l = Math.min(outBuffer.remaining(), fragment.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); --- 766,775 ---- outBuffer = generateFinished(md5copy, shacopy, true, engine.session()); ! fragment.putInt((Handshake.Type.FINISHED.getValue() << 24) | outBuffer.remaining() & 0xFFFFFF); ! int l = Math.min(outBuffer.remaining(), fragment.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); *************** outer_loop: *** 777,786 **** if (continuedSession) state = DONE; else ! state = READ_FINISHED; } break; ! default: throw new IllegalStateException("invalid state: " + state); } --- 777,786 ---- if (continuedSession) state = DONE; else ! state = READ_FINISHED; } break; ! default: throw new IllegalStateException("invalid state: " + state); } *************** outer_loop: *** 808,814 **** return HandshakeStatus.NEED_WRAP; return HandshakeStatus.FINISHED; } ! @Override void checkKeyExchange() throws SSLException { // XXX implement. --- 808,814 ---- return HandshakeStatus.NEED_WRAP; return HandshakeStatus.FINISHED; } ! @Override void checkKeyExchange() throws SSLException { // XXX implement. *************** outer_loop: *** 821,827 **** { throw new SSLException("this should be impossible"); } ! private ProtocolVersion chooseVersion() throws SSLException { // Select the highest enabled version, for our initial key exchange. --- 821,827 ---- { throw new SSLException("this should be impossible"); } ! private ProtocolVersion chooseVersion() throws SSLException { // Select the highest enabled version, for our initial key exchange. *************** outer_loop: *** 839,851 **** continue; } } ! if (version == null) throw new SSLException("no suitable enabled versions"); ! return version; } ! private List getSuites() throws SSLException { List suites = new LinkedList(); --- 839,851 ---- continue; } } ! if (version == null) throw new SSLException("no suitable enabled versions"); ! return version; } ! private List getSuites() throws SSLException { List suites = new LinkedList(); *************** outer_loop: *** 859,865 **** throw new SSLException("no cipher suites enabled"); return suites; } ! private List getCompressionMethods() { List methods = new LinkedList(); --- 859,865 ---- throw new SSLException("no cipher suites enabled"); return suites; } ! private List getCompressionMethods() { List methods = new LinkedList(); *************** outer_loop: *** 869,882 **** methods.add(CompressionMethod.NULL); return methods; } ! private boolean enableExtensions() { GetSecurityPropertyAction action = new GetSecurityPropertyAction("jessie.client.enable.extensions"); return Boolean.valueOf(AccessController.doPrivileged(action)); } ! private MaxFragmentLength maxFragmentLength() { GetSecurityPropertyAction action --- 869,882 ---- methods.add(CompressionMethod.NULL); return methods; } ! private boolean enableExtensions() { GetSecurityPropertyAction action = new GetSecurityPropertyAction("jessie.client.enable.extensions"); return Boolean.valueOf(AccessController.doPrivileged(action)); } ! private MaxFragmentLength maxFragmentLength() { GetSecurityPropertyAction action *************** outer_loop: *** 905,939 **** } return null; } ! private boolean truncatedHMac() { GetSecurityPropertyAction action = new GetSecurityPropertyAction("jessie.client.truncatedHMac"); return Boolean.valueOf(AccessController.doPrivileged(action)); } ! private String getPSKIdentity() { GetSecurityPropertyAction action = new GetSecurityPropertyAction("jessie.client.psk.identity"); return AccessController.doPrivileged(action); } ! // Delegated tasks. ! class ParamsVerifier extends DelegatedTask { private final ByteBuffer paramsBuffer; private final byte[] signature; private boolean verified; ! ParamsVerifier(ByteBuffer paramsBuffer, byte[] signature) { this.paramsBuffer = paramsBuffer; this.signature = signature; } ! public void implRun() throws InvalidKeyException, NoSuchAlgorithmException, SSLPeerUnverifiedException, SignatureException --- 905,939 ---- } return null; } ! private boolean truncatedHMac() { GetSecurityPropertyAction action = new GetSecurityPropertyAction("jessie.client.truncatedHMac"); return Boolean.valueOf(AccessController.doPrivileged(action)); } ! private String getPSKIdentity() { GetSecurityPropertyAction action = new GetSecurityPropertyAction("jessie.client.psk.identity"); return AccessController.doPrivileged(action); } ! // Delegated tasks. ! class ParamsVerifier extends DelegatedTask { private final ByteBuffer paramsBuffer; private final byte[] signature; private boolean verified; ! ParamsVerifier(ByteBuffer paramsBuffer, byte[] signature) { this.paramsBuffer = paramsBuffer; this.signature = signature; } ! public void implRun() throws InvalidKeyException, NoSuchAlgorithmException, SSLPeerUnverifiedException, SignatureException *************** outer_loop: *** 949,974 **** notifyAll(); } } ! boolean verified() { return verified; } } ! class ClientDHGen extends DelegatedTask { private final DHPublicKey serverKey; private final DHParameterSpec params; private final boolean full; ! ClientDHGen(DHPublicKey serverKey, DHParameterSpec params, boolean full) { this.serverKey = serverKey; this.params = params; this.full = full; } ! public void implRun() throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, SSLException --- 949,974 ---- notifyAll(); } } ! boolean verified() { return verified; } } ! class ClientDHGen extends DelegatedTask { private final DHPublicKey serverKey; private final DHParameterSpec params; private final boolean full; ! ClientDHGen(DHPublicKey serverKey, DHParameterSpec params, boolean full) { this.serverKey = serverKey; this.params = params; this.full = full; } ! public void implRun() throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, SSLException *************** outer_loop: *** 1006,1029 **** if (phase.thrown() != null) throw new SSLException(phase.thrown()); } ! DHPublicKey serverKey() { return serverKey; } } ! class CertLoader extends DelegatedTask { private final List keyTypes; private final List issuers; ! CertLoader(List keyTypes, List issuers) { this.keyTypes = keyTypes; this.issuers = issuers; } ! public void implRun() { X509ExtendedKeyManager km = engine.contextImpl.keyManager; --- 1006,1029 ---- if (phase.thrown() != null) throw new SSLException(phase.thrown()); } ! DHPublicKey serverKey() { return serverKey; } } ! class CertLoader extends DelegatedTask { private final List keyTypes; private final List issuers; ! CertLoader(List keyTypes, List issuers) { this.keyTypes = keyTypes; this.issuers = issuers; } ! public void implRun() { X509ExtendedKeyManager km = engine.contextImpl.keyManager; *************** outer_loop: *** 1041,1057 **** { private byte[] encryptedPreMasterSecret; private final boolean full; ! RSAGen() { this(true); } ! RSAGen(boolean full) { this.full = full; } ! public void implRun() throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, --- 1041,1057 ---- { private byte[] encryptedPreMasterSecret; private final boolean full; ! RSAGen() { this(true); } ! RSAGen(boolean full) { this.full = full; } ! public void implRun() throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, *************** outer_loop: *** 1087,1093 **** } rsa.init(Cipher.ENCRYPT_MODE, cert.getPublicKey()); encryptedPreMasterSecret = rsa.doFinal(preMasterSecret); ! // Generate our session keys, because we can. if (full) { --- 1087,1093 ---- } rsa.init(Cipher.ENCRYPT_MODE, cert.getPublicKey()); encryptedPreMasterSecret = rsa.doFinal(preMasterSecret); ! // Generate our session keys, because we can. if (full) { *************** outer_loop: *** 1096,1113 **** setupSecurityParameters(keys, true, engine, compression); } } ! byte[] encryptedSecret() { return encryptedPreMasterSecret; } } ! class GenCertVerify extends DelegatedTask { private final MessageDigest md5, sha; private byte[] signed; ! GenCertVerify(MessageDigest md5, MessageDigest sha) { try --- 1096,1113 ---- setupSecurityParameters(keys, true, engine, compression); } } ! byte[] encryptedSecret() { return encryptedPreMasterSecret; } } ! class GenCertVerify extends DelegatedTask { private final MessageDigest md5, sha; private byte[] signed; ! GenCertVerify(MessageDigest md5, MessageDigest sha) { try *************** outer_loop: *** 1137,1150 **** else toSign = sha.digest(); } ! java.security.Signature sig = java.security.Signature.getInstance(engine.session().suite.signatureAlgorithm().name()); sig.initSign(privateKey); sig.update(toSign); signed = sig.sign(); } ! byte[] signed() { return signed; --- 1137,1150 ---- else toSign = sha.digest(); } ! java.security.Signature sig = java.security.Signature.getInstance(engine.session().suite.signatureAlgorithm().name()); sig.initSign(privateKey); sig.update(toSign); signed = sig.sign(); } ! byte[] signed() { return signed; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java Tue Jan 11 19:46:05 2011 *************** public class ClientHello implements Hand *** 149,155 **** .limit (buffer.capacity ())).slice (); return new CompressionMethodList (listBuf); } ! public boolean hasExtensions() { int offset = getExtensionsOffset(); --- 149,155 ---- .limit (buffer.capacity ())).slice (); return new CompressionMethodList (listBuf); } ! public boolean hasExtensions() { int offset = getExtensionsOffset(); *************** public class ClientHello implements Hand *** 168,174 **** .limit(offset + len + 2)).slice (); return new ExtensionList(ebuf); } ! public int extensionsLength() { if (hasExtensions()) --- 168,174 ---- .limit(offset + len + 2)).slice (); return new ExtensionList(ebuf); } ! public int extensionsLength() { if (hasExtensions()) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClientHelloBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ClientHelloBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.util.List; *** 43,49 **** /** * Builder for {@link ClientHello} objects. ! * * @author Casey Marshall (csm@gnu.org) */ public class ClientHelloBuilder extends ClientHello implements Builder --- 43,49 ---- /** * Builder for {@link ClientHello} objects. ! * * @author Casey Marshall (csm@gnu.org) */ public class ClientHelloBuilder extends ClientHello implements Builder *************** public class ClientHelloBuilder extends *** 80,86 **** this.buffer.position (SESSID_OFFSET2); this.buffer.put (buffer, offset, len); } ! public void setCipherSuites(List suites) { int off = getCipherSuitesOffset(); --- 80,86 ---- this.buffer.position (SESSID_OFFSET2); this.buffer.put (buffer, offset, len); } ! public void setCipherSuites(List suites) { int off = getCipherSuitesOffset(); *************** public class ClientHelloBuilder extends *** 93,99 **** i += 2; } } ! public void setCompressionMethods(List methods) { int off = getCompressionMethodsOffset(); --- 93,99 ---- i += 2; } } ! public void setCompressionMethods(List methods) { int off = getCompressionMethodsOffset(); *************** public class ClientHelloBuilder extends *** 112,130 **** ensureCapacity(needed); buffer.putShort(getExtensionsOffset(), (short) length); } ! public void setExtensions(ByteBuffer extensions) { int elen = extensions.getShort(0) & 0xFFFF; setExtensionsLength(elen); ((ByteBuffer) buffer.duplicate().position(getExtensionsOffset())).put(extensions); } ! public void setDisableExtensions(boolean disableExtensions) { this.disableExtensions = disableExtensions; } ! public void ensureCapacity(final int length) { if (buffer.capacity() >= length) --- 112,130 ---- ensureCapacity(needed); buffer.putShort(getExtensionsOffset(), (short) length); } ! public void setExtensions(ByteBuffer extensions) { int elen = extensions.getShort(0) & 0xFFFF; setExtensionsLength(elen); ((ByteBuffer) buffer.duplicate().position(getExtensionsOffset())).put(extensions); } ! public void setDisableExtensions(boolean disableExtensions) { this.disableExtensions = disableExtensions; } ! public void ensureCapacity(final int length) { if (buffer.capacity() >= length) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java Tue Jan 11 19:46:05 2011 *************** class ClientHelloV2 implements Construct *** 155,158 **** out.println (Util.toHexString (challenge (), ':')); return str.toString (); } ! } \ No newline at end of file --- 155,158 ---- out.println (Util.toHexString (challenge (), ':')); return str.toString (); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClientKeyExchangeBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ClientKeyExchangeBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.nio.ByteBuffer; *** 42,48 **** /** * Builder for {@link ClientKeyExchange} objects. ! * * @author Casey Marshall (csm@gnu.org) */ public class ClientKeyExchangeBuilder extends ClientKeyExchange --- 42,48 ---- /** * Builder for {@link ClientKeyExchange} objects. ! * * @author Casey Marshall (csm@gnu.org) */ public class ClientKeyExchangeBuilder extends ClientKeyExchange *************** public class ClientKeyExchangeBuilder ex *** 60,70 **** { return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); } ! public void setExchangeKeys(ByteBuffer exchangeKeys) { // For SSLv3 and RSA key exchange, the message is sent without length. ! // So we use the precise capacity of the buffer to signal the size of // the message. if (buffer.capacity() < exchangeKeys.remaining() || (suite.keyExchangeAlgorithm() == KeyExchangeAlgorithm.RSA --- 60,70 ---- { return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); } ! public void setExchangeKeys(ByteBuffer exchangeKeys) { // For SSLv3 and RSA key exchange, the message is sent without length. ! // So we use the precise capacity of the buffer to signal the size of // the message. if (buffer.capacity() < exchangeKeys.remaining() || (suite.keyExchangeAlgorithm() == KeyExchangeAlgorithm.RSA diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClientPSKParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ClientPSKParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ClientPSKParameters extends *** 73,79 **** buffer.put(idBuf); buffer.rewind(); } ! /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Builder#buffer() */ --- 73,79 ---- buffer.put(idBuf); buffer.rewind(); } ! /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Builder#buffer() */ *************** public class ClientPSKParameters extends *** 89,101 **** { return (buffer.getShort(0) & 0xFFFF) + 2; } ! public String identity() { Charset utf8 = Charset.forName("UTF-8"); return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit(length())).toString(); } ! public @Override String toString() { return toString(null); --- 89,101 ---- { return (buffer.getShort(0) & 0xFFFF) + 2; } ! public String identity() { Charset utf8 = Charset.forName("UTF-8"); return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit(length())).toString(); } ! public @Override String toString() { return toString(null); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ClientRSA_PSKParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ClientRSA_PSKParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ClientRSA_PSKParameters ext *** 72,85 **** { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); } ! public String identity() { Charset utf8 = Charset.forName("UTF-8"); return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit (identityLength())).toString(); } ! private int identityLength() { return (buffer.getShort(0) & 0xFFFF) + 2; --- 72,85 ---- { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); } ! public String identity() { Charset utf8 = Charset.forName("UTF-8"); return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit (identityLength())).toString(); } ! private int identityLength() { return (buffer.getShort(0) & 0xFFFF) + 2; *************** public class ClientRSA_PSKParameters ext *** 92,98 **** { return identityLength() + secret().length(); } ! public EncryptedPreMasterSecret secret() { return new EncryptedPreMasterSecret --- 92,98 ---- { return identityLength() + secret().length(); } ! public EncryptedPreMasterSecret secret() { return new EncryptedPreMasterSecret diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethod.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethod.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethod.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethod.java Tue Jan 11 19:46:05 2011 *************** public enum CompressionMethod *** 55,64 **** { case 0: return NULL; case 1: return ZLIB; ! // Note: we can't throw an exception here, because we get these values // over the wire, and need to just ignore ones we don't recognize. ! default: return null; } } --- 55,64 ---- { case 0: return NULL; case 1: return ZLIB; ! // Note: we can't throw an exception here, because we get these values // over the wire, and need to just ignore ones we don't recognize. ! default: return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java Tue Jan 11 19:46:05 2011 *************** public final class CompressionMethodList *** 192,198 **** { return new Iterator (); } ! /** * An iterator for the elements in this list. The iterator supports * only the set method out of the optional methods, --- 192,198 ---- { return new Iterator (); } ! /** * An iterator for the elements in this list. The iterator supports * only the set method out of the optional methods, diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Constructed.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Constructed.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Constructed.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Constructed.java Tue Jan 11 19:46:05 2011 *************** package gnu.javax.net.ssl.provider; *** 40,48 **** /** * The base interface to SSL constructed types. ! * *

          Contract for ByteBuffer-based constructed types: ! * *

          Most implementations of this interface supported by this library * take a "view" of an underlying ByteBuffer. The general contract of * such classes is that they will not modify the position or --- 40,48 ---- /** * The base interface to SSL constructed types. ! * *

          Contract for ByteBuffer-based constructed types: ! * *

          Most implementations of this interface supported by this library * take a "view" of an underlying ByteBuffer. The general contract of * such classes is that they will not modify the position or *************** package gnu.javax.net.ssl.provider; *** 54,65 **** * the object, so the limit isn't useful in such cases. Of course, if the * limit is set to something other than the object's length, it must be * larger than the object length). ! * *

          Setter methods (usually in a class that implements the {@link Builder} * interface) may modify the limit, but the general contract remains that * the position remain at zero, and that the limit be at least as large as * the object length. ! * *

          Thus, very often the code will use absolute getters and setters * for primitive types, or it will use the {@link java.nio.ByteBuffer#duplicate()} * method, and sometimes the {@link java.nio.ByteBuffer#slice()} method, and --- 54,65 ---- * the object, so the limit isn't useful in such cases. Of course, if the * limit is set to something other than the object's length, it must be * larger than the object length). ! * *

          Setter methods (usually in a class that implements the {@link Builder} * interface) may modify the limit, but the general contract remains that * the position remain at zero, and that the limit be at least as large as * the object length. ! * *

          Thus, very often the code will use absolute getters and setters * for primitive types, or it will use the {@link java.nio.ByteBuffer#duplicate()} * method, and sometimes the {@link java.nio.ByteBuffer#slice()} method, and diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Debug.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Debug.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Debug.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Debug.java Tue Jan 11 19:46:05 2011 *************** package gnu.javax.net.ssl.provider; *** 40,46 **** /** * Debug constants for Jessie. ! * * @author Casey Marshall (csm@gnu.org) */ public final class Debug --- 40,46 ---- /** * Debug constants for Jessie. ! * * @author Casey Marshall (csm@gnu.org) */ public final class Debug *************** public final class Debug *** 50,62 **** * logger. */ public static final boolean DEBUG = true; ! /** * Set to true to dump out info about the SSL key exchange. Since this * MAY contain sensitive data, it is a separate value. */ public static final boolean DEBUG_KEY_EXCHANGE = true; ! /** * Set to true to turn on dumping of decrypted packets. Since this will * log potentially-sensitive information (i.e., decrypted messages), only --- 50,62 ---- * logger. */ public static final boolean DEBUG = true; ! /** * Set to true to dump out info about the SSL key exchange. Since this * MAY contain sensitive data, it is a separate value. */ public static final boolean DEBUG_KEY_EXCHANGE = true; ! /** * Set to true to turn on dumping of decrypted packets. Since this will * log potentially-sensitive information (i.e., decrypted messages), only diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/DelegatedTask.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/DelegatedTask.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/DelegatedTask.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/DelegatedTask.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DelegatedTask.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DelegatedTask.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class DelegatedTask impl *** 49,60 **** private static final SystemLogger logger = SystemLogger.SYSTEM; private boolean hasRun; protected Throwable thrown; ! protected DelegatedTask() { hasRun = false; } ! public final void run() { if (hasRun) --- 49,60 ---- private static final SystemLogger logger = SystemLogger.SYSTEM; private boolean hasRun; protected Throwable thrown; ! protected DelegatedTask() { hasRun = false; } ! public final void run() { if (hasRun) *************** public abstract class DelegatedTask impl *** 79,93 **** } } ! public final boolean hasRun() { return hasRun; } ! public final Throwable thrown() { return thrown; } ! protected abstract void implRun() throws Throwable; } --- 79,93 ---- } } ! public final boolean hasRun() { return hasRun; } ! public final Throwable thrown() { return thrown; } ! protected abstract void implRun() throws Throwable; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EmptyExchangeKeys.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* EmptyExchangeKeys.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class EmptyExchangeKeys *** 64,70 **** { return toString(null); } ! /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) */ --- 64,70 ---- { return toString(null); } ! /* (non-Javadoc) * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java Tue Jan 11 19:46:05 2011 *************** public final class EncryptedPreMasterSec *** 61,67 **** version.getClass(); this.version = version; } ! public EncryptedPreMasterSecret(byte[] encryptedSecret, ProtocolVersion version) { this(ByteBuffer.allocate(version == ProtocolVersion.SSL_3 --- 61,67 ---- version.getClass(); this.version = version; } ! public EncryptedPreMasterSecret(byte[] encryptedSecret, ProtocolVersion version) { this(ByteBuffer.allocate(version == ProtocolVersion.SSL_3 *************** public final class EncryptedPreMasterSec *** 72,78 **** b.putShort((short) encryptedSecret.length); b.put(encryptedSecret); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().rewind(); --- 72,78 ---- b.putShort((short) encryptedSecret.length); b.put(encryptedSecret); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().rewind(); *************** public final class EncryptedPreMasterSec *** 145,148 **** out.print("} EncryptedPreMasterSecret;"); return str.toString(); } ! } \ No newline at end of file --- 145,148 ---- out.print("} EncryptedPreMasterSecret;"); return str.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java Tue Jan 11 19:46:05 2011 *************** public abstract class ExchangeKeys imple *** 51,54 **** if (buffer != null) this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! } \ No newline at end of file --- 51,54 ---- if (buffer != null) this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Extension.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Extension.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Extension.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Extension.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteOrder; *** 46,58 **** /** * An SSL hello extension. ! * *

             * struct {
             *   ExtensionType extension_type;
             *   opaque extension_data<0..2^16-1>;
             * } Extension;
          ! * * @author csm@gnu.org */ public final class Extension implements Builder, Constructed --- 46,58 ---- /** * An SSL hello extension. ! * *
             * struct {
             *   ExtensionType extension_type;
             *   opaque extension_data<0..2^16-1>;
             * } Extension;
          ! * * @author csm@gnu.org */ public final class Extension implements Builder, Constructed *************** public final class Extension implements *** 70,76 **** { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! public Extension(final Type type, final Value value) { ByteBuffer valueBuffer = value.buffer(); --- 70,76 ---- { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! public Extension(final Type type, final Value value) { ByteBuffer valueBuffer = value.buffer(); *************** public final class Extension implements *** 89,95 **** { return (buffer.getShort (2) & 0xFFFF) + 4; } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); --- 89,95 ---- { return (buffer.getShort (2) & 0xFFFF) + 4; } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); *************** public final class Extension implements *** 107,126 **** ((ByteBuffer) buffer.duplicate ().position (4)).get (value); return value; } ! public ByteBuffer valueBuffer() { int len = buffer.getShort(2) & 0xFFFF; return ((ByteBuffer) buffer.duplicate().position(4).limit(len+4)).slice(); } ! public Value value() { switch (type ()) { case SERVER_NAME: return new ServerNameList(valueBuffer()); ! case MAX_FRAGMENT_LENGTH: switch (valueBuffer().get() & 0xFF) { --- 107,126 ---- ((ByteBuffer) buffer.duplicate ().position (4)).get (value); return value; } ! public ByteBuffer valueBuffer() { int len = buffer.getShort(2) & 0xFFFF; return ((ByteBuffer) buffer.duplicate().position(4).limit(len+4)).slice(); } ! public Value value() { switch (type ()) { case SERVER_NAME: return new ServerNameList(valueBuffer()); ! case MAX_FRAGMENT_LENGTH: switch (valueBuffer().get() & 0xFF) { *************** public final class Extension implements *** 131,162 **** default: throw new IllegalArgumentException("invalid max_fragment_len"); } ! case TRUNCATED_HMAC: return new TruncatedHMAC(); case CLIENT_CERTIFICATE_URL: return new CertificateURL(valueBuffer()); ! case TRUSTED_CA_KEYS: return new TrustedAuthorities(valueBuffer()); ! case STATUS_REQUEST: return new CertificateStatusRequest(valueBuffer()); ! case SRP: case CERT_TYPE: } return new UnresolvedExtensionValue(valueBuffer()); } ! public void setLength (final int newLength) { if (newLength < 0 || newLength > 65535) throw new IllegalArgumentException ("length is out of bounds"); buffer.putShort (2, (short) newLength); } ! public void setType (final Type type) { buffer.putShort(0, (short) type.getValue()); --- 131,162 ---- default: throw new IllegalArgumentException("invalid max_fragment_len"); } ! case TRUNCATED_HMAC: return new TruncatedHMAC(); case CLIENT_CERTIFICATE_URL: return new CertificateURL(valueBuffer()); ! case TRUSTED_CA_KEYS: return new TrustedAuthorities(valueBuffer()); ! case STATUS_REQUEST: return new CertificateStatusRequest(valueBuffer()); ! case SRP: case CERT_TYPE: } return new UnresolvedExtensionValue(valueBuffer()); } ! public void setLength (final int newLength) { if (newLength < 0 || newLength > 65535) throw new IllegalArgumentException ("length is out of bounds"); buffer.putShort (2, (short) newLength); } ! public void setType (final Type type) { buffer.putShort(0, (short) type.getValue()); *************** public final class Extension implements *** 166,179 **** { setValue (value, 0, value.length); } ! public void setValue (final byte[] value, final int offset, final int length) { if (length != length ()) throw new IllegalArgumentException ("length is different than claimed length"); ((ByteBuffer) buffer.duplicate().position(4)).put(value, offset, length); } ! public String toString() { return toString(null); --- 166,179 ---- { setValue (value, 0, value.length); } ! public void setValue (final byte[] value, final int offset, final int length) { if (length != length ()) throw new IllegalArgumentException ("length is different than claimed length"); ((ByteBuffer) buffer.duplicate().position(4)).put(value, offset, length); } ! public String toString() { return toString(null); *************** public final class Extension implements *** 233,245 **** default: return null; } } ! public int getValue() { return value; } } ! public static abstract class Value implements Builder, Constructed { } --- 233,245 ---- default: return null; } } ! public int getValue() { return value; } } ! public static abstract class Value implements Builder, Constructed { } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ExtensionList.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ExtensionList.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ExtensionList.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ExtensionList.java Tue Jan 11 19:46:05 2011 *************** import java.util.NoSuchElementException; *** 13,21 **** /** * A list of extensions, that may appear in either the {@link ClientHello} or * {@link ServerHello}. The form of the extensions list is: ! * * Extension extensions_list<1..2^16-1> ! * * @author csm */ public class ExtensionList implements Builder, Iterable --- 13,21 ---- /** * A list of extensions, that may appear in either the {@link ClientHello} or * {@link ServerHello}. The form of the extensions list is: ! * * Extension extensions_list<1..2^16-1> ! * * @author csm */ public class ExtensionList implements Builder, Iterable *************** public class ExtensionList implements Bu *** 28,34 **** this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); modCount = 0; } ! public ExtensionList(List extensions) { int length = 2; --- 28,34 ---- this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); modCount = 0; } ! public ExtensionList(List extensions) { int length = 2; *************** public class ExtensionList implements Bu *** 40,46 **** buffer.put(extension.buffer()); buffer.rewind(); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); --- 40,46 ---- buffer.put(extension.buffer()); buffer.rewind(); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); *************** public class ExtensionList implements Bu *** 63,72 **** ByteBuffer b = (ByteBuffer) buffer.duplicate().position(i).limit(i+el+4); return new Extension(b.slice()); } ! /** * Returns the number of extensions this list contains. ! * * @return The number of extensions. */ public int size () --- 63,72 ---- ByteBuffer b = (ByteBuffer) buffer.duplicate().position(i).limit(i+el+4); return new Extension(b.slice()); } ! /** * Returns the number of extensions this list contains. ! * * @return The number of extensions. */ public int size () *************** public class ExtensionList implements Bu *** 86,99 **** /** * Returns the length of this extension list, in bytes. ! * * @return The length of this extension list, in bytes. */ public int length () { return (buffer.getShort (0) & 0xFFFF) + 2; } ! /** * Sets the extension at index i to e. Note that setting an * element at an index may invalidate any other elements that come --- 86,99 ---- /** * Returns the length of this extension list, in bytes. ! * * @return The length of this extension list, in bytes. */ public int length () { return (buffer.getShort (0) & 0xFFFF) + 2; } ! /** * Sets the extension at index i to e. Note that setting an * element at an index may invalidate any other elements that come *************** public class ExtensionList implements Bu *** 101,110 **** * move existing elements in this list, and since extensions are variable * length, you can not guarantee that extensions later in the list * will still be valid. ! * *

          Thus, elements of this list must be set in order of increasing * index. ! * * @param index The index to set the extension at. * @param e The extension. * @throws java.nio.BufferOverflowException If setting the extension overflows --- 101,110 ---- * move existing elements in this list, and since extensions are variable * length, you can not guarantee that extensions later in the list * will still be valid. ! * *

          Thus, elements of this list must be set in order of increasing * index. ! * * @param index The index to set the extension at. * @param e The extension. * @throws java.nio.BufferOverflowException If setting the extension overflows *************** public class ExtensionList implements Bu *** 136,147 **** ((ByteBuffer) buffer.duplicate().position(i+4)).put (e.valueBuffer()); modCount++; } ! /** * Reserve space for an extension at index i in the list. In other * words, this does the job of {@link #set(int, Extension)}, but does not * copy the extension value to the underlying buffer. ! * * @param index The index of the extension to reserve space for. * @param t The type of the extension. * @param eLength The number of bytes to reserve for this extension. The total --- 136,147 ---- ((ByteBuffer) buffer.duplicate().position(i+4)).put (e.valueBuffer()); modCount++; } ! /** * Reserve space for an extension at index i in the list. In other * words, this does the job of {@link #set(int, Extension)}, but does not * copy the extension value to the underlying buffer. ! * * @param index The index of the extension to reserve space for. * @param t The type of the extension. * @param eLength The number of bytes to reserve for this extension. The total *************** public class ExtensionList implements Bu *** 168,177 **** buffer.putShort(i+2, (short) eLength); modCount++; } ! /** * Set the total length of this list, in bytes. ! * * @param newLength The new list length. */ public void setLength (final int newLength) --- 168,177 ---- buffer.putShort(i+2, (short) eLength); modCount++; } ! /** * Set the total length of this list, in bytes. ! * * @param newLength The new list length. */ public void setLength (final int newLength) *************** public class ExtensionList implements Bu *** 181,187 **** buffer.putShort (0, (short) newLength); modCount++; } ! public Iterator iterator() { return new ExtensionsIterator(); --- 181,187 ---- buffer.putShort (0, (short) newLength); modCount++; } ! public Iterator iterator() { return new ExtensionsIterator(); *************** public class ExtensionList implements Bu *** 191,197 **** { return toString (null); } ! public String toString(final String prefix) { StringWriter str = new StringWriter(); --- 191,197 ---- { return toString (null); } ! public String toString(final String prefix) { StringWriter str = new StringWriter(); *************** public class ExtensionList implements Bu *** 214,220 **** /** * List iterator interface to an extensions list. ! * * @author csm@gnu.org */ public final class ExtensionsIterator implements ListIterator --- 214,220 ---- /** * List iterator interface to an extensions list. ! * * @author csm@gnu.org */ public final class ExtensionsIterator implements ListIterator *************** public class ExtensionList implements Bu *** 222,228 **** private final int modCount; private int index; private final int size; ! public ExtensionsIterator () { this.modCount = ExtensionList.this.modCount; --- 222,228 ---- private final int modCount; private int index; private final int size; ! public ExtensionsIterator () { this.modCount = ExtensionList.this.modCount; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java Tue Jan 11 19:46:05 2011 *************** public final class Handshake implements *** 266,272 **** /** * Convert a raw handshake type value to a type enum value. ! * * @return The corresponding enum value for the raw integer value. * @throws IllegalArgumentException If the value is not a known handshake * type. --- 266,272 ---- /** * Convert a raw handshake type value to a type enum value. ! * * @return The corresponding enum value for the raw integer value. * @throws IllegalArgumentException If the value is not a known handshake * type. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java Tue Jan 11 19:46:05 2011 *************** public class InputSecurityParameters *** 83,89 **** /** * Decrypt a record, storing the decrypted fragment into the given array * of byte buffers. ! * * @param record The input record. * @param output The output buffers. * @param offset The offset of the first buffer to use. --- 83,89 ---- /** * Decrypt a record, storing the decrypted fragment into the given array * of byte buffers. ! * * @param record The input record. * @param output The output buffers. * @param offset The offset of the first buffer to use. *************** public class InputSecurityParameters *** 94,100 **** * and the input fragment is not a multiple of the block size. * @throws MacException If verifying the MAC fails. * @throws SSLException ??? ! * @throws ShortBufferException */ public int decrypt(Record record, ByteBuffer[] output, int offset, int length) throws DataFormatException, IllegalBlockSizeException, --- 94,100 ---- * and the input fragment is not a multiple of the block size. * @throws MacException If verifying the MAC fails. * @throws SSLException ??? ! * @throws ShortBufferException */ public int decrypt(Record record, ByteBuffer[] output, int offset, int length) throws DataFormatException, IllegalBlockSizeException, *************** public class InputSecurityParameters *** 102,112 **** { return decrypt(record, output, offset, length, null); } ! /** * Decrypt a record, storing the decrypted fragment into the given growable * buffer. ! * * @param record The input record. * @param outputStream The output buffer. * @return The number of bytes put into the output buffer. --- 102,112 ---- { return decrypt(record, output, offset, length, null); } ! /** * Decrypt a record, storing the decrypted fragment into the given growable * buffer. ! * * @param record The input record. * @param outputStream The output buffer. * @return The number of bytes put into the output buffer. *************** public class InputSecurityParameters *** 122,128 **** { return decrypt(record, null, 0, 0, outputStream); } ! private int decrypt(Record record, ByteBuffer[] output, int offset, int length, ByteBufferOutputStream outputStream) throws DataFormatException, IllegalBlockSizeException, --- 122,128 ---- { return decrypt(record, null, 0, 0, outputStream); } ! private int decrypt(Record record, ByteBuffer[] output, int offset, int length, ByteBufferOutputStream outputStream) throws DataFormatException, IllegalBlockSizeException, *************** public class InputSecurityParameters *** 142,148 **** if (Debug.DEBUG_DECRYPTION) logger.logv(Component.SSL_RECORD_LAYER, "decrypted fragment:\n{0}", Util.hexDump((ByteBuffer) fragment.duplicate().position(0), " >> ")); ! int fragmentLength = record.length(); int maclen = 0; if (mac != null) --- 142,148 ---- if (Debug.DEBUG_DECRYPTION) logger.logv(Component.SSL_RECORD_LAYER, "decrypted fragment:\n{0}", Util.hexDump((ByteBuffer) fragment.duplicate().position(0), " >> ")); ! int fragmentLength = record.length(); int maclen = 0; if (mac != null) *************** public class InputSecurityParameters *** 178,191 **** logger.logv(Component.SSL_RECORD_LAYER, "TLSv1.x padding\n{0}", new ByteArray(pad)); } ! if (Debug.DEBUG) logger.logv(Component.SSL_RECORD_LAYER, "padding bad? {0}", badPadding); if (!badPadding) fragmentLength = fragmentLength - padRemoveLen; } ! int ivlen = 0; if (session.version.compareTo(ProtocolVersion.TLS_1_1) >= 0 && !suite.isStreamCipher()) --- 178,191 ---- logger.logv(Component.SSL_RECORD_LAYER, "TLSv1.x padding\n{0}", new ByteArray(pad)); } ! if (Debug.DEBUG) logger.logv(Component.SSL_RECORD_LAYER, "padding bad? {0}", badPadding); if (!badPadding) fragmentLength = fragmentLength - padRemoveLen; } ! int ivlen = 0; if (session.version.compareTo(ProtocolVersion.TLS_1_1) >= 0 && !suite.isStreamCipher()) *************** public class InputSecurityParameters *** 244,250 **** else fragment.position(0); fragment.limit(fragmentLength); ! while (!done) { int l; --- 244,250 ---- else fragment.position(0); fragment.limit(fragmentLength); ! while (!done) { int l; *************** public class InputSecurityParameters *** 259,265 **** out.write(outbuffer, 0, l); done = !fragment.hasRemaining() && inflater.finished(); } ! ByteBuffer outbuf = out.buffer(); if (outputStream != null) { --- 259,265 ---- out.write(outbuffer, 0, l); done = !fragment.hasRemaining() && inflater.finished(); } ! ByteBuffer outbuf = out.buffer(); if (outputStream != null) { *************** public class InputSecurityParameters *** 323,332 **** } sequence++; ! return produced; } ! CipherSuite cipherSuite () { return suite; --- 323,332 ---- } sequence++; ! return produced; } ! CipherSuite cipherSuite () { return suite; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Jessie.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Jessie.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Jessie.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Jessie.java Tue Jan 11 19:46:05 2011 *************** public class Jessie extends Provider *** 90,100 **** put("Mac.SSLv3HMac-MD5", SSLv3HMacMD5Impl.class.getName()); put("Mac.SSLv3HMac-SHA", SSLv3HMacSHAImpl.class.getName()); ! put("Signature.TLSv1.1-RSA", SSLRSASignatureImpl.class.getName()); put("Alg.Alias.Signature.TLSv1-RSA", "TLSv1.1-RSA"); put("Alg.Alias.Signature.SSLv3-RSA", "TLSv1.1-RSA"); ! return null; } }); --- 90,100 ---- put("Mac.SSLv3HMac-MD5", SSLv3HMacMD5Impl.class.getName()); put("Mac.SSLv3HMac-SHA", SSLv3HMacSHAImpl.class.getName()); ! put("Signature.TLSv1.1-RSA", SSLRSASignatureImpl.class.getName()); put("Alg.Alias.Signature.TLSv1-RSA", "TLSv1.1-RSA"); put("Alg.Alias.Signature.SSLv3-RSA", "TLSv1.1-RSA"); ! return null; } }); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java Tue Jan 11 19:46:05 2011 *************** import gnu.javax.net.ssl.provider.Extens *** 5,11 **** import java.nio.ByteBuffer; /** ! * Extension value * @author csm */ public class MaxFragmentLength extends Value --- 5,11 ---- import java.nio.ByteBuffer; /** ! * Extension value * @author csm */ public class MaxFragmentLength extends Value *************** public class MaxFragmentLength extends V *** 14,34 **** public static final MaxFragmentLength LEN_2_10 = new MaxFragmentLength(2, 1 << 10); public static final MaxFragmentLength LEN_2_11 = new MaxFragmentLength(3, 1 << 11); public static final MaxFragmentLength LEN_2_12 = new MaxFragmentLength(4, 1 << 12); ! private final int value; private final int length; ! private MaxFragmentLength(int value, int length) { this.value = value; this.length = length; } ! public ByteBuffer buffer() { return ByteBuffer.allocate(1).put(0, (byte) value); } ! public int length() { return 1; --- 14,34 ---- public static final MaxFragmentLength LEN_2_10 = new MaxFragmentLength(2, 1 << 10); public static final MaxFragmentLength LEN_2_11 = new MaxFragmentLength(3, 1 << 11); public static final MaxFragmentLength LEN_2_12 = new MaxFragmentLength(4, 1 << 12); ! private final int value; private final int length; ! private MaxFragmentLength(int value, int length) { this.value = value; this.length = length; } ! public ByteBuffer buffer() { return ByteBuffer.allocate(1).put(0, (byte) value); } ! public int length() { return 1; *************** public class MaxFragmentLength extends V *** 38,54 **** { return value; } ! public int maxLength() { return length; } ! public String toString() { return toString(null); } ! public String toString(String prefix) { String s = "max_fragment_length = "; --- 38,54 ---- { return value; } ! public int maxLength() { return length; } ! public String toString() { return toString(null); } ! public String toString(String prefix) { String s = "max_fragment_length = "; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OutputSecurityParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* OutputSecurityParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class OutputSecurityParameters *** 88,99 **** if (offset < 0 || offset >= input.length || length <= 0 || offset + length > input.length) throw new IndexOutOfBoundsException(); ! if (Debug.DEBUG) for (int i = offset; i < offset+length; i++) logger.logv(Component.SSL_RECORD_LAYER, "encrypting record [{0}]: {1}", i-offset, input[i]); ! int maclen = 0; if (mac != null) maclen = session.isTruncatedMac() ? 10 : mac.getMacLength (); --- 88,99 ---- if (offset < 0 || offset >= input.length || length <= 0 || offset + length > input.length) throw new IndexOutOfBoundsException(); ! if (Debug.DEBUG) for (int i = offset; i < offset+length; i++) logger.logv(Component.SSL_RECORD_LAYER, "encrypting record [{0}]: {1}", i-offset, input[i]); ! int maclen = 0; if (mac != null) maclen = session.isTruncatedMac() ? 10 : mac.getMacLength (); *************** public class OutputSecurityParameters *** 107,113 **** iv = new byte[ivlen]; session.random().nextBytes(iv); } ! int padaddlen = 0; if (!suite.isStreamCipher() && session.version.compareTo(ProtocolVersion.TLS_1) >= 0) --- 107,113 ---- iv = new byte[ivlen]; session.random().nextBytes(iv); } ! int padaddlen = 0; if (!suite.isStreamCipher() && session.version.compareTo(ProtocolVersion.TLS_1) >= 0) *************** public class OutputSecurityParameters *** 115,121 **** padaddlen = (session.random().nextInt(255 / cipher.getBlockSize()) * cipher.getBlockSize()); } ! int fragmentLength = 0; ByteBuffer[] fragments = null; // Compress the content, if needed. --- 115,121 ---- padaddlen = (session.random().nextInt(255 / cipher.getBlockSize()) * cipher.getBlockSize()); } ! int fragmentLength = 0; ByteBuffer[] fragments = null; // Compress the content, if needed. *************** public class OutputSecurityParameters *** 126,135 **** byte[] inbuf = new byte[1024]; byte[] outbuf = new byte[1024]; int written = 0; ! // Here we use the guarantee that the deflater won't increase the // output size by more than 1K -- we resign ourselves to only deflate ! // as much data as we have space for *uncompressed*, int limit = output.remaining() - (maclen + ivlen + padaddlen) - 1024; for (int i = offset; i < length && written < limit; i++) --- 126,135 ---- byte[] inbuf = new byte[1024]; byte[] outbuf = new byte[1024]; int written = 0; ! // Here we use the guarantee that the deflater won't increase the // output size by more than 1K -- we resign ourselves to only deflate ! // as much data as we have space for *uncompressed*, int limit = output.remaining() - (maclen + ivlen + padaddlen) - 1024; for (int i = offset; i < length && written < limit; i++) *************** public class OutputSecurityParameters *** 241,247 **** outrecord.setContentType(contentType); outrecord.setVersion(session.version); outrecord.setLength(fragmentLength); ! int consumed = 0; ByteBuffer outfragment = outrecord.fragment(); --- 241,247 ---- outrecord.setContentType(contentType); outrecord.setVersion(session.version); outrecord.setLength(fragmentLength); ! int consumed = 0; ByteBuffer outfragment = outrecord.fragment(); *************** public class OutputSecurityParameters *** 279,294 **** if (macValue != null) outfragment.put(macValue); } ! // Advance the output buffer's position. output.position(output.position() + outrecord.length() + 5); sequence++; return new int[] { consumed, fragmentLength + 5 }; } ! CipherSuite suite() { return suite; } ! } \ No newline at end of file --- 279,294 ---- if (macValue != null) outfragment.put(macValue); } ! // Advance the output buffer's position. output.position(output.position() + outrecord.length() + 5); sequence++; return new int[] { consumed, fragmentLength + 5 }; } ! CipherSuite suite() { return suite; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PreSharedKeyManagerFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* PreSharedKeyManagerFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class PreSharedKeyManagerFactoryI *** 106,112 **** { return params.getKey(name); } ! public String chooseIdentityHint() { Iterator it = params.identities(); --- 106,112 ---- { return params.getKey(name); } ! public String chooseIdentityHint() { Iterator it = params.identities(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Random.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Random.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Random.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Random.java Tue Jan 11 19:46:05 2011 *************** public class Random implements Builder, *** 83,89 **** { return RANDOM_LENGTH + 4; } ! public ByteBuffer buffer() { return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); --- 83,89 ---- { return RANDOM_LENGTH + 4; } ! public ByteBuffer buffer() { return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SSLContextImpl.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SSLContextImpl.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.net.ssl.X509TrustManager; *** 68,81 **** /** * Our implementation of {@link SSLContextSpi}. ! * * @author Casey Marshall (csm@gnu.org) */ public final class SSLContextImpl extends SSLContextSpi { AbstractSessionContext serverContext; AbstractSessionContext clientContext; ! PreSharedKeyManager pskManager; X509ExtendedKeyManager keyManager; X509TrustManager trustManager; --- 68,81 ---- /** * Our implementation of {@link SSLContextSpi}. ! * * @author Casey Marshall (csm@gnu.org) */ public final class SSLContextImpl extends SSLContextSpi { AbstractSessionContext serverContext; AbstractSessionContext clientContext; ! PreSharedKeyManager pskManager; X509ExtendedKeyManager keyManager; X509TrustManager trustManager; *************** public final class SSLContextImpl extend *** 85,91 **** public SSLContextImpl() { } ! /* (non-Javadoc) * @see javax.net.ssl.SSLContextSpi#engineCreateSSLEngine() */ --- 85,91 ---- public SSLContextImpl() { } ! /* (non-Javadoc) * @see javax.net.ssl.SSLContextSpi#engineCreateSSLEngine() */ *************** public final class SSLContextImpl extend *** 210,220 **** this.random = defaultRandom(); } } ! /** * Create and return a default key manager. The default is the JessieX509 * algorithm, loaded from either the jssecerts file, or the cacerts file. ! * * @return The default key manager instance. * @throws KeyManagementException If the instance cannot be created. */ --- 210,220 ---- this.random = defaultRandom(); } } ! /** * Create and return a default key manager. The default is the JessieX509 * algorithm, loaded from either the jssecerts file, or the cacerts file. ! * * @return The default key manager instance. * @throws KeyManagementException If the instance cannot be created. */ *************** public final class SSLContextImpl extend *** 257,263 **** /** * Create and return a default trust manager. The default is the JessieX509 * algorithm, loaded from either the jssecerts file, or the cacerts file. ! * * @return The default trust manager instance. * @throws KeyManagementException If the instance cannot be created. */ --- 257,263 ---- /** * Create and return a default trust manager. The default is the JessieX509 * algorithm, loaded from either the jssecerts file, or the cacerts file. ! * * @return The default trust manager instance. * @throws KeyManagementException If the instance cannot be created. */ *************** public final class SSLContextImpl extend *** 290,296 **** * property, or Fortuna if that property is not set. If none of these * algorithms can be found, and instance created with the SecureRandom * constructor is returned. ! * * @return The default secure PRNG instance. */ private SecureRandom defaultRandom() --- 290,296 ---- * property, or Fortuna if that property is not set. If none of these * algorithms can be found, and instance created with the SecureRandom * constructor is returned. ! * * @return The default secure PRNG instance. */ private SecureRandom defaultRandom() *************** public final class SSLContextImpl extend *** 312,315 **** return rand; } ! } \ No newline at end of file --- 312,315 ---- return rand; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java Tue Jan 11 19:46:05 2011 *************** public final class SSLEngineImpl extends *** 84,90 **** private String[] enabledSuites; private String[] enabledProtocols; ! /** * We can receive any message chunked across multiple records, * including alerts, even though all alert messages are only two --- 84,90 ---- private String[] enabledSuites; private String[] enabledProtocols; ! /** * We can receive any message chunked across multiple records, * including alerts, even though all alert messages are only two *************** public final class SSLEngineImpl extends *** 100,106 **** private Mode mode; private enum Mode { SERVER, CLIENT } ! SSLEngineImpl (SSLContextImpl contextImpl, String host, int port) { super(host, port); --- 100,106 ---- private Mode mode; private enum Mode { SERVER, CLIENT } ! SSLEngineImpl (SSLContextImpl contextImpl, String host, int port) { super(host, port); *************** public final class SSLEngineImpl extends *** 113,123 **** contextImpl.random.nextBytes(sid); session.setId(new Session.ID(sid)); session.setRandom(contextImpl.random); ! if (Debug.DEBUG) logger.logv(Component.SSL_RECORD_LAYER, "generated session ID {0} with random {1}", session.id(), contextImpl.random); ! // Begin with no encryption. insec = new InputSecurityParameters (null, null, null, session, CipherSuite.TLS_NULL_WITH_NULL_NULL); --- 113,123 ---- contextImpl.random.nextBytes(sid); session.setId(new Session.ID(sid)); session.setRandom(contextImpl.random); ! if (Debug.DEBUG) logger.logv(Component.SSL_RECORD_LAYER, "generated session ID {0} with random {1}", session.id(), contextImpl.random); ! // Begin with no encryption. insec = new InputSecurityParameters (null, null, null, session, CipherSuite.TLS_NULL_WITH_NULL_NULL); *************** public final class SSLEngineImpl extends *** 134,140 **** lastAlert = null; handshakeStatus = SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING; changeCipherSpec = false; ! // Set up default protocols and suites. enabledProtocols = new String[] { ProtocolVersion.TLS_1_1.toString(), --- 134,140 ---- lastAlert = null; handshakeStatus = SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING; changeCipherSpec = false; ! // Set up default protocols and suites. enabledProtocols = new String[] { ProtocolVersion.TLS_1_1.toString(), *************** public final class SSLEngineImpl extends *** 143,149 **** }; enabledSuites = defaultSuites(); } ! static String[] defaultSuites() { return new String[] { --- 143,149 ---- }; enabledSuites = defaultSuites(); } ! static String[] defaultSuites() { return new String[] { *************** public final class SSLEngineImpl extends *** 204,210 **** if (mode == null) throw new IllegalStateException("setUseClientMode was never used"); ! switch (mode) { case SERVER: --- 204,210 ---- if (mode == null) throw new IllegalStateException("setUseClientMode was never used"); ! switch (mode) { case SERVER: *************** public final class SSLEngineImpl extends *** 219,225 **** throw new SSLException(nsae); } break; ! case CLIENT: try { --- 219,225 ---- throw new SSLException(nsae); } break; ! case CLIENT: try { *************** public final class SSLEngineImpl extends *** 244,250 **** { lastAlert = new Alert(Alert.Level.WARNING, Alert.Description.CLOSE_NOTIFY); } ! @Override public Runnable getDelegatedTask() { --- 244,250 ---- { lastAlert = new Alert(Alert.Level.WARNING, Alert.Description.CLOSE_NOTIFY); } ! @Override public Runnable getDelegatedTask() { *************** public final class SSLEngineImpl extends *** 252,264 **** return null; return handshake.getTask(); } ! @Override public String[] getEnabledCipherSuites() { return (String[]) enabledSuites.clone(); } ! @Override public String[] getEnabledProtocols() { --- 252,264 ---- return null; return handshake.getTask(); } ! @Override public String[] getEnabledCipherSuites() { return (String[]) enabledSuites.clone(); } ! @Override public String[] getEnabledProtocols() { *************** public final class SSLEngineImpl extends *** 270,276 **** { return createSessions; } ! @Override public HandshakeStatus getHandshakeStatus() { --- 270,276 ---- { return createSessions; } ! @Override public HandshakeStatus getHandshakeStatus() { *************** public final class SSLEngineImpl extends *** 278,320 **** return HandshakeStatus.NOT_HANDSHAKING; return handshake.status(); } ! @Override public boolean getNeedClientAuth() { return needClientAuth; } ! @Override public SSLSession getSession() { return session; } ! @Override public boolean getUseClientMode () { return (mode == Mode.CLIENT); } ! @Override public boolean getWantClientAuth() { return wantClientAuth; } ! @Override public boolean isInboundDone() { return inClosed; } ! @Override public boolean isOutboundDone() { return outClosed; } ! @Override public void setEnableSessionCreation(final boolean createSessions) { --- 278,320 ---- return HandshakeStatus.NOT_HANDSHAKING; return handshake.status(); } ! @Override public boolean getNeedClientAuth() { return needClientAuth; } ! @Override public SSLSession getSession() { return session; } ! @Override public boolean getUseClientMode () { return (mode == Mode.CLIENT); } ! @Override public boolean getWantClientAuth() { return wantClientAuth; } ! @Override public boolean isInboundDone() { return inClosed; } ! @Override public boolean isOutboundDone() { return outClosed; } ! @Override public void setEnableSessionCreation(final boolean createSessions) { *************** public final class SSLEngineImpl extends *** 336,351 **** throw new IllegalArgumentException("need at least one protocol"); enabledProtocols = (String[]) protocols.clone(); } ! @Override public String[] getSupportedCipherSuites() { // XXX if we ever want to support "pluggable" cipher suites, we'll need // to figure this out. ! return CipherSuite.availableSuiteNames().toArray(new String[0]); } ! @Override public String[] getSupportedProtocols() { --- 336,351 ---- throw new IllegalArgumentException("need at least one protocol"); enabledProtocols = (String[]) protocols.clone(); } ! @Override public String[] getSupportedCipherSuites() { // XXX if we ever want to support "pluggable" cipher suites, we'll need // to figure this out. ! return CipherSuite.availableSuiteNames().toArray(new String[0]); } ! @Override public String[] getSupportedProtocols() { *************** public final class SSLEngineImpl extends *** 359,365 **** { this.needClientAuth = needClientAuth; } ! @Override public void setUseClientMode (final boolean clientMode) { --- 359,365 ---- { this.needClientAuth = needClientAuth; } ! @Override public void setUseClientMode (final boolean clientMode) { *************** public final class SSLEngineImpl extends *** 368,374 **** else mode = Mode.SERVER; } ! public @Override void setWantClientAuth(final boolean wantClientAuth) { this.wantClientAuth = wantClientAuth; --- 368,374 ---- else mode = Mode.SERVER; } ! public @Override void setWantClientAuth(final boolean wantClientAuth) { this.wantClientAuth = wantClientAuth; *************** public final class SSLEngineImpl extends *** 385,397 **** if (inClosed) return new SSLEngineResult(SSLEngineResult.Status.CLOSED, handshakeStatus, 0, 0); ! if (source.remaining() < 5) { return new SSLEngineResult(SSLEngineResult.Status.BUFFER_UNDERFLOW, handshakeStatus, 0, 0); } ! Record record = null; boolean helloV2 = false; --- 385,397 ---- if (inClosed) return new SSLEngineResult(SSLEngineResult.Status.CLOSED, handshakeStatus, 0, 0); ! if (source.remaining() < 5) { return new SSLEngineResult(SSLEngineResult.Status.BUFFER_UNDERFLOW, handshakeStatus, 0, 0); } ! Record record = null; boolean helloV2 = false; *************** public final class SSLEngineImpl extends *** 410,424 **** if (Debug.DEBUG) logger.log (Component.SSL_RECORD_LAYER, "converting SSLv2 client hello to version 3 hello"); ! source.getShort(); // skip length ClientHelloV2 v2 = new ClientHelloV2(source.slice()); ! if (Debug.DEBUG) logger.log(Component.SSL_RECORD_LAYER, "v2 hello: {0}", v2); ! List suites = v2.cipherSpecs(); ! ClientHelloBuilder hello = new ClientHelloBuilder(); hello.setVersion(v2.version ()); --- 410,424 ---- if (Debug.DEBUG) logger.log (Component.SSL_RECORD_LAYER, "converting SSLv2 client hello to version 3 hello"); ! source.getShort(); // skip length ClientHelloV2 v2 = new ClientHelloV2(source.slice()); ! if (Debug.DEBUG) logger.log(Component.SSL_RECORD_LAYER, "v2 hello: {0}", v2); ! List suites = v2.cipherSpecs(); ! ClientHelloBuilder hello = new ClientHelloBuilder(); hello.setVersion(v2.version ()); *************** public final class SSLEngineImpl extends *** 448,478 **** record.setContentType(ContentType.HANDSHAKE); record.setVersion(v2.version()); record.setLength(hello.length() + 4); ! Handshake handshake = new Handshake(record.fragment()); handshake.setLength(hello.length()); handshake.setType(Handshake.Type.CLIENT_HELLO); ! handshake.bodyBuffer().put(hello.buffer()); source.position(source.position() + hellolen); helloV2 = true; } else record = new Record(source); ! ContentType type = record.contentType (); ! if (Debug.DEBUG) logger.log(Component.SSL_RECORD_LAYER, "input record:\n{0}", record); ! if (record.length() > session.getPacketBufferSize() - 5) { lastAlert = new Alert(Alert.Level.FATAL, Alert.Description.RECORD_OVERFLOW); throw new AlertException(lastAlert); } ! ! ByteBufferOutputStream sysMsg = null; ByteBuffer msg = null; int produced = 0; --- 448,478 ---- record.setContentType(ContentType.HANDSHAKE); record.setVersion(v2.version()); record.setLength(hello.length() + 4); ! Handshake handshake = new Handshake(record.fragment()); handshake.setLength(hello.length()); handshake.setType(Handshake.Type.CLIENT_HELLO); ! handshake.bodyBuffer().put(hello.buffer()); source.position(source.position() + hellolen); helloV2 = true; } else record = new Record(source); ! ContentType type = record.contentType (); ! if (Debug.DEBUG) logger.log(Component.SSL_RECORD_LAYER, "input record:\n{0}", record); ! if (record.length() > session.getPacketBufferSize() - 5) { lastAlert = new Alert(Alert.Level.FATAL, Alert.Description.RECORD_OVERFLOW); throw new AlertException(lastAlert); } ! ! ByteBufferOutputStream sysMsg = null; ByteBuffer msg = null; int produced = 0; *************** public final class SSLEngineImpl extends *** 492,498 **** insec.decrypt(record, sysMsg); } } ! // Advance the input buffer past the record we just read. if (!helloV2) source.position(source.position() + record.length() + 5); --- 492,498 ---- insec.decrypt(record, sysMsg); } } ! // Advance the input buffer past the record we just read. if (!helloV2) source.position(source.position() + record.length() + 5); *************** public final class SSLEngineImpl extends *** 532,538 **** } SSLEngineResult result = null; ! // If we need to handle the output here, do it. Otherwise, the output // has been stored in the supplied output buffers. if (sysMsg != null) --- 532,538 ---- } SSLEngineResult result = null; ! // If we need to handle the output here, do it. Otherwise, the output // has been stored in the supplied output buffers. if (sysMsg != null) *************** public final class SSLEngineImpl extends *** 541,547 **** logger.logv(Component.SSL_RECORD_LAYER, "sysmessage {0}", sysMsg); msg = sysMsg.buffer(); } ! if (type == ContentType.CHANGE_CIPHER_SPEC) { // We *may* get a partial message, even though the message is only --- 541,547 ---- logger.logv(Component.SSL_RECORD_LAYER, "sysmessage {0}", sysMsg); msg = sysMsg.buffer(); } ! if (type == ContentType.CHANGE_CIPHER_SPEC) { // We *may* get a partial message, even though the message is only *************** public final class SSLEngineImpl extends *** 665,671 **** if (Debug.DEBUG) logger.logv(Component.SSL_RECORD_LAYER, "return result: {0}", result); ! return result; } --- 665,671 ---- if (Debug.DEBUG) logger.logv(Component.SSL_RECORD_LAYER, "return result: {0}", result); ! return result; } *************** public final class SSLEngineImpl extends *** 679,685 **** if (outClosed) return new SSLEngineResult(SSLEngineResult.Status.CLOSED, handshakeStatus, 0, 0); ! ContentType type = null; ByteBuffer sysMessage = null; if (Debug.DEBUG) --- 679,685 ---- if (outClosed) return new SSLEngineResult(SSLEngineResult.Status.CLOSED, handshakeStatus, 0, 0); ! ContentType type = null; ByteBuffer sysMessage = null; if (Debug.DEBUG) *************** public final class SSLEngineImpl extends *** 720,726 **** new Record((ByteBuffer) sink.duplicate().position(orig))); SSLEngineResult result = new SSLEngineResult(SSLEngineResult.Status.OK, handshakeStatus, 0, produced); ! // Note, this will only happen if we transition from // TLS_NULL_WITH_NULL_NULL *to* TLS_NULL_WITH_NULL_NULL, which // doesn't make a lot of sense, but we support it anyway. --- 720,726 ---- new Record((ByteBuffer) sink.duplicate().position(orig))); SSLEngineResult result = new SSLEngineResult(SSLEngineResult.Status.OK, handshakeStatus, 0, produced); ! // Note, this will only happen if we transition from // TLS_NULL_WITH_NULL_NULL *to* TLS_NULL_WITH_NULL_NULL, which // doesn't make a lot of sense, but we support it anyway. *************** public final class SSLEngineImpl extends *** 731,737 **** } return result; } ! // Rough guideline; XXX. sysMessage = ByteBuffer.allocate(sink.remaining() - 2048); type = ContentType.HANDSHAKE; --- 731,737 ---- } return result; } ! // Rough guideline; XXX. sysMessage = ByteBuffer.allocate(sink.remaining() - 2048); type = ContentType.HANDSHAKE; *************** public final class SSLEngineImpl extends *** 753,759 **** int produced = 0; int consumed = 0; ! try { int orig = sink.position(); --- 753,759 ---- int produced = 0; int consumed = 0; ! try { int orig = sink.position(); *************** public final class SSLEngineImpl extends *** 773,779 **** consumed = inout[0]; produced = inout[1]; } ! if (Debug.DEBUG) logger.logv(Component.SSL_RECORD_LAYER, "emitting record:\n{0}", new Record((ByteBuffer) sink.duplicate().position(orig).limit(produced))); --- 773,779 ---- consumed = inout[0]; produced = inout[1]; } ! if (Debug.DEBUG) logger.logv(Component.SSL_RECORD_LAYER, "emitting record:\n{0}", new Record((ByteBuffer) sink.duplicate().position(orig).limit(produced))); *************** public final class SSLEngineImpl extends *** 798,811 **** lastAlert = new Alert(Alert.Level.FATAL, Alert.Description.INTERNAL_ERROR); return new SSLEngineResult(SSLEngineResult.Status.OK, handshakeStatus, 0, 0); } ! if (lastAlert != null && lastAlert.level() == Alert.Level.FATAL) { AlertException ae = new AlertException(lastAlert); lastAlert = null; throw ae; } ! if (changeCipherSpec) { outsec = handshake.getOutputParams(); --- 798,811 ---- lastAlert = new Alert(Alert.Level.FATAL, Alert.Description.INTERNAL_ERROR); return new SSLEngineResult(SSLEngineResult.Status.OK, handshakeStatus, 0, 0); } ! if (lastAlert != null && lastAlert.level() == Alert.Level.FATAL) { AlertException ae = new AlertException(lastAlert); lastAlert = null; throw ae; } ! if (changeCipherSpec) { outsec = handshake.getOutputParams(); *************** public final class SSLEngineImpl extends *** 829,842 **** { return session; } ! void setSession(SessionImpl session) { this.session = session; } ! void changeCipherSpec() { changeCipherSpec = true; } ! } \ No newline at end of file --- 829,842 ---- { return session; } ! void setSession(SessionImpl session) { this.session = session; } ! void changeCipherSpec() { changeCipherSpec = true; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 58,64 **** /** * An implementation of of the RSA signature algorithm; this is an RSA * encrypted MD5 hash followed by a SHA-1 hash. ! * * @author Casey Marshall (csm@gnu.org) */ public class SSLRSASignatureImpl extends SignatureSpi --- 58,64 ---- /** * An implementation of of the RSA signature algorithm; this is an RSA * encrypted MD5 hash followed by a SHA-1 hash. ! * * @author Casey Marshall (csm@gnu.org) */ public class SSLRSASignatureImpl extends SignatureSpi *************** public class SSLRSASignatureImpl extends *** 69,75 **** private final MessageDigest md5, sha; private boolean initSign = false; private boolean initVerify = false; ! public SSLRSASignatureImpl() throws NoSuchAlgorithmException { md5 = MessageDigest.getInstance("MD5"); --- 69,75 ---- private final MessageDigest md5, sha; private boolean initSign = false; private boolean initVerify = false; ! public SSLRSASignatureImpl() throws NoSuchAlgorithmException { md5 = MessageDigest.getInstance("MD5"); *************** public class SSLRSASignatureImpl extends *** 149,155 **** @Override protected byte[] engineSign() throws SignatureException { // FIXME we need to add RSA blinding to this, somehow. ! if (!initSign) throw new SignatureException("not initialized for signing"); // Pad the hash results with RSA block type 1. --- 149,155 ---- @Override protected byte[] engineSign() throws SignatureException { // FIXME we need to add RSA blinding to this, somehow. ! if (!initSign) throw new SignatureException("not initialized for signing"); // Pad the hash results with RSA block type 1. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SSLServerSocketFactoryImpl.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SSLServerSocketFactoryImpl.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.net.ssl.SSLServerSocketFact *** 50,56 **** public class SSLServerSocketFactoryImpl extends SSLServerSocketFactory { private final SSLContextImpl contextImpl; ! public SSLServerSocketFactoryImpl(SSLContextImpl contextImpl) { this.contextImpl = contextImpl; --- 50,56 ---- public class SSLServerSocketFactoryImpl extends SSLServerSocketFactory { private final SSLContextImpl contextImpl; ! public SSLServerSocketFactoryImpl(SSLContextImpl contextImpl) { this.contextImpl = contextImpl; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SSLServerSocketImpl.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SSLServerSocketImpl.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import javax.net.ssl.SSLServerSocket; *** 48,54 **** public class SSLServerSocketImpl extends SSLServerSocket { private final SSLContextImpl contextImpl; ! private boolean enableSessionCreation; private String[] enabledCipherSuites; private String[] enabledProtocols; --- 48,54 ---- public class SSLServerSocketImpl extends SSLServerSocket { private final SSLContextImpl contextImpl; ! private boolean enableSessionCreation; private String[] enabledCipherSuites; private String[] enabledProtocols; *************** public class SSLServerSocketImpl extends *** 183,189 **** { wantClientAuth = wantAuth; } ! @Override public SSLSocketImpl accept() throws IOException { SSLSocketImpl socketImpl = new SSLSocketImpl(contextImpl, null, -1); --- 183,189 ---- { wantClientAuth = wantAuth; } ! @Override public SSLSocketImpl accept() throws IOException { SSLSocketImpl socketImpl = new SSLSocketImpl(contextImpl, null, -1); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java Thu Apr 19 20:50:40 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SSLSocketFactoryImpl.java -- Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SSLSocketFactoryImpl.java -- Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SSLSocketFactoryImpl extend *** 55,61 **** * The SSLContextImpl that created us. */ private final SSLContextImpl contextImpl; ! public SSLSocketFactoryImpl(SSLContextImpl contextImpl) { this.contextImpl = contextImpl; --- 55,61 ---- * The SSLContextImpl that created us. */ private final SSLContextImpl contextImpl; ! public SSLSocketFactoryImpl(SSLContextImpl contextImpl) { this.contextImpl = contextImpl; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java Wed Mar 28 01:02:10 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java Tue Jan 11 19:46:05 2011 *************** public class SSLSocketImpl extends SSLSo *** 73,79 **** { private final ByteBuffer buffer; private final OutputStream out; ! SocketOutputStream() throws IOException { buffer = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); --- 73,79 ---- { private final ByteBuffer buffer; private final OutputStream out; ! SocketOutputStream() throws IOException { buffer = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); *************** public class SSLSocketImpl extends SSLSo *** 112,123 **** } } } ! @Override public void write(int b) throws IOException { write(new byte[] { (byte) b }); } ! @Override public void close() throws IOException { SSLSocketImpl.this.close(); --- 112,123 ---- } } } ! @Override public void write(int b) throws IOException { write(new byte[] { (byte) b }); } ! @Override public void close() throws IOException { SSLSocketImpl.this.close(); *************** public class SSLSocketImpl extends SSLSo *** 197,208 **** private IOException handshakeException; private boolean initialHandshakeDone = false; private final boolean autoClose; ! public SSLSocketImpl(SSLContextImpl contextImpl, String host, int port) { this(contextImpl, host, port, new Socket(), true); } ! public SSLSocketImpl(SSLContextImpl contextImpl, String host, int port, Socket underlyingSocket, boolean autoClose) { --- 197,208 ---- private IOException handshakeException; private boolean initialHandshakeDone = false; private final boolean autoClose; ! public SSLSocketImpl(SSLContextImpl contextImpl, String host, int port) { this(contextImpl, host, port, new Socket(), true); } ! public SSLSocketImpl(SSLContextImpl contextImpl, String host, int port, Socket underlyingSocket, boolean autoClose) { *************** public class SSLSocketImpl extends SSLSo *** 361,367 **** if (handshakeException != null) throw handshakeException; ! Thread t = new Thread(new Runnable() { public void run() --- 361,367 ---- if (handshakeException != null) throw handshakeException; ! Thread t = new Thread(new Runnable() { public void run() *************** public class SSLSocketImpl extends SSLSo *** 378,384 **** }, "HandshakeThread@" + System.identityHashCode(this)); t.start(); } ! void doHandshake() throws IOException { synchronized (engine) --- 378,384 ---- }, "HandshakeThread@" + System.identityHashCode(this)); t.start(); } ! void doHandshake() throws IOException { synchronized (engine) *************** public class SSLSocketImpl extends SSLSo *** 396,408 **** } isHandshaking = true; } ! if (initialHandshakeDone) throw new SSLException("rehandshaking not yet implemented"); long now = -System.currentTimeMillis(); engine.beginHandshake(); ! HandshakeStatus status = engine.getHandshakeStatus(); assert(status != HandshakeStatus.NOT_HANDSHAKING); --- 396,408 ---- } isHandshaking = true; } ! if (initialHandshakeDone) throw new SSLException("rehandshaking not yet implemented"); long now = -System.currentTimeMillis(); engine.beginHandshake(); ! HandshakeStatus status = engine.getHandshakeStatus(); assert(status != HandshakeStatus.NOT_HANDSHAKING); *************** public class SSLSocketImpl extends SSLSo *** 411,420 **** ByteBuffer outBuffer = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); ByteBuffer emptyBuffer = ByteBuffer.allocate(0); SSLEngineResult result = null; ! DataInputStream sockIn = new DataInputStream(underlyingSocket.getInputStream()); OutputStream sockOut = underlyingSocket.getOutputStream(); ! try { while (status != HandshakeStatus.NOT_HANDSHAKING --- 411,420 ---- ByteBuffer outBuffer = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); ByteBuffer emptyBuffer = ByteBuffer.allocate(0); SSLEngineResult result = null; ! DataInputStream sockIn = new DataInputStream(underlyingSocket.getInputStream()); OutputStream sockOut = underlyingSocket.getOutputStream(); ! try { while (status != HandshakeStatus.NOT_HANDSHAKING *************** public class SSLSocketImpl extends SSLSo *** 477,483 **** throw new SSLException("unexpected SSL status " + result.getStatus()); outBuffer.flip(); ! sockOut.write(outBuffer.array(), outBuffer.position(), outBuffer.limit()); } break; --- 477,483 ---- throw new SSLException("unexpected SSL status " + result.getStatus()); outBuffer.flip(); ! sockOut.write(outBuffer.array(), outBuffer.position(), outBuffer.limit()); } break; *************** public class SSLSocketImpl extends SSLSo *** 536,549 **** } } } ! // Methods overriding Socket. @Override public void bind(SocketAddress bindpoint) throws IOException { underlyingSocket.bind(bindpoint); } ! @Override public void connect(SocketAddress endpoint) throws IOException { underlyingSocket.connect(endpoint); --- 536,549 ---- } } } ! // Methods overriding Socket. @Override public void bind(SocketAddress bindpoint) throws IOException { underlyingSocket.bind(bindpoint); } ! @Override public void connect(SocketAddress endpoint) throws IOException { underlyingSocket.connect(endpoint); *************** public class SSLSocketImpl extends SSLSo *** 559,570 **** { return underlyingSocket.getInetAddress(); } ! @Override public InetAddress getLocalAddress() { return underlyingSocket.getLocalAddress(); } ! @Override public int getPort() { return underlyingSocket.getPort(); --- 559,570 ---- { return underlyingSocket.getInetAddress(); } ! @Override public InetAddress getLocalAddress() { return underlyingSocket.getLocalAddress(); } ! @Override public int getPort() { return underlyingSocket.getPort(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SSLv3HMacMD5.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SSLv3HMacMD5.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SSLv3HMacMD5Impl extends Ma *** 59,65 **** { adaptee = new SSLHMac("MD5"); } ! /* (non-Javadoc) * @see javax.crypto.MacSpi#engineDoFinal() */ --- 59,65 ---- { adaptee = new SSLHMac("MD5"); } ! /* (non-Javadoc) * @see javax.crypto.MacSpi#engineDoFinal() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SSLv3HMacSHA.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SSLv3HMacSHA.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SSLv3HMacSHAImpl extends Ma *** 59,65 **** { adaptee = new SSLHMac("SHA-160"); } ! /* (non-Javadoc) * @see javax.crypto.MacSpi#engineDoFinal() */ --- 59,65 ---- { adaptee = new SSLHMac("SHA-160"); } ! /* (non-Javadoc) * @see javax.crypto.MacSpi#engineDoFinal() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ServerDHE_PSKParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ServerDHE_PSKParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.nio.charset.Charset; *** 60,71 **** public class ServerDHE_PSKParameters implements Constructed, Builder, ServerKeyExchangeParams { private ByteBuffer buffer; ! public ServerDHE_PSKParameters(ByteBuffer buffer) { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! public ServerDHE_PSKParameters(String identityHint, ServerDHParams dhParams) { this(identityHint, dhParams.buffer()); --- 60,71 ---- public class ServerDHE_PSKParameters implements Constructed, Builder, ServerKeyExchangeParams { private ByteBuffer buffer; ! public ServerDHE_PSKParameters(ByteBuffer buffer) { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! public ServerDHE_PSKParameters(String identityHint, ServerDHParams dhParams) { this(identityHint, dhParams.buffer()); *************** public class ServerDHE_PSKParameters imp *** 78,84 **** buffer = ByteBuffer.allocate(2 + hintBuf.remaining() + dhParams.remaining()); buffer.putShort((short) hintBuf.remaining()); buffer.put(hintBuf); ! buffer.put(dhParams); } public KeyExchangeAlgorithm algorithm() --- 78,84 ---- buffer = ByteBuffer.allocate(2 + hintBuf.remaining() + dhParams.remaining()); buffer.putShort((short) hintBuf.remaining()); buffer.put(hintBuf); ! buffer.put(dhParams); } public KeyExchangeAlgorithm algorithm() *************** public class ServerDHE_PSKParameters imp *** 93,111 **** { return (buffer.getShort(0) & 0xFFFF) + 2 + params().length(); } ! private int hintLength() { return (buffer.getShort(0) & 0xFFFF) + 2; } ! public String identityHint() { Charset utf8 = Charset.forName("UTF-8"); return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit (hintLength())).toString(); } ! public ServerDHParams params() { return new ServerDHParams(((ByteBuffer) buffer.duplicate().position --- 93,111 ---- { return (buffer.getShort(0) & 0xFFFF) + 2 + params().length(); } ! private int hintLength() { return (buffer.getShort(0) & 0xFFFF) + 2; } ! public String identityHint() { Charset utf8 = Charset.forName("UTF-8"); return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit (hintLength())).toString(); } ! public ServerDHParams params() { return new ServerDHParams(((ByteBuffer) buffer.duplicate().position *************** public class ServerDHE_PSKParameters imp *** 119,125 **** { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); } ! public @Override String toString() { return toString(null); --- 119,125 ---- { return (ByteBuffer) buffer.duplicate().rewind().limit(length()); } ! public @Override String toString() { return toString(null); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHParams.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHParams.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHParams.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHParams.java Tue Jan 11 19:46:05 2011 *************** public class ServerDHParams implements B *** 64,70 **** { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! public ServerDHParams (final BigInteger p, final BigInteger g, final BigInteger y) { --- 64,70 ---- { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! public ServerDHParams (final BigInteger p, final BigInteger g, final BigInteger y) { *************** public class ServerDHParams implements B *** 72,78 **** byte[] g_bytes = g.toByteArray(); byte[] y_bytes = y.toByteArray(); int len = p_bytes.length + g_bytes.length + y_bytes.length + 6; ! int p_off = 0; if (p_bytes[0] == 0x00) { --- 72,78 ---- byte[] g_bytes = g.toByteArray(); byte[] y_bytes = y.toByteArray(); int len = p_bytes.length + g_bytes.length + y_bytes.length + 6; ! int p_off = 0; if (p_bytes[0] == 0x00) { *************** public class ServerDHParams implements B *** 94,100 **** int p_len = p_bytes.length - p_off; int g_len = g_bytes.length - g_off; int y_len = y_bytes.length - y_off; ! buffer = ByteBuffer.allocate(len); buffer.putShort((short) p_len); buffer.put(p_bytes, p_off, p_len); --- 94,100 ---- int p_len = p_bytes.length - p_off; int g_len = g_bytes.length - g_off; int y_len = y_bytes.length - y_off; ! buffer = ByteBuffer.allocate(len); buffer.putShort((short) p_len); buffer.put(p_bytes, p_off, p_len); *************** public class ServerDHParams implements B *** 121,127 **** { return (ByteBuffer) buffer.duplicate().position(0).limit(length()); } ! /** * Returns the server's prime modulus. * --- 121,127 ---- { return (ByteBuffer) buffer.duplicate().position(0).limit(length()); } ! /** * Returns the server's prime modulus. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java Tue Jan 11 19:46:05 2011 *************** import javax.net.ssl.SSLEngineResult.Han *** 90,96 **** import javax.security.auth.x500.X500Principal; class ServerHandshake extends AbstractHandshake ! { /** * Handshake state enumeration. */ --- 90,96 ---- import javax.security.auth.x500.X500Principal; class ServerHandshake extends AbstractHandshake ! { /** * Handshake state enumeration. */ *************** class ServerHandshake extends AbstractHa *** 109,129 **** READ_CERTIFICATE_VERIFY (false, true), READ_FINISHED (false, true), DONE (false, false); ! private final boolean isWriteState; private final boolean isReadState; ! private State(final boolean isWriteState, final boolean isReadState) { this.isWriteState = isWriteState; this.isReadState = isReadState; } ! boolean isReadState() { return isReadState; } ! boolean isWriteState() { return isWriteState; --- 109,129 ---- READ_CERTIFICATE_VERIFY (false, true), READ_FINISHED (false, true), DONE (false, false); ! private final boolean isWriteState; private final boolean isReadState; ! private State(final boolean isWriteState, final boolean isReadState) { this.isWriteState = isWriteState; this.isReadState = isReadState; } ! boolean isReadState() { return isReadState; } ! boolean isWriteState() { return isWriteState; *************** class ServerHandshake extends AbstractHa *** 143,149 **** private boolean helloV2 = false; private KeyPair dhPair; private PrivateKey serverKey; ! // Delegated tasks we use. private GenDH genDH; private CertVerifier certVerifier; --- 143,149 ---- private boolean helloV2 = false; private KeyPair dhPair; private PrivateKey serverKey; ! // Delegated tasks we use. private GenDH genDH; private CertVerifier certVerifier; *************** class ServerHandshake extends AbstractHa *** 224,234 **** kexes.add(DHE_PSK); kexes.add(PSK); } ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "we have certs for key exchange algorithms {0}", kexes); ! HashSet suites = new HashSet(); for (String s : enabledSuites) { --- 224,234 ---- kexes.add(DHE_PSK); kexes.add(PSK); } ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "we have certs for key exchange algorithms {0}", kexes); ! HashSet suites = new HashSet(); for (String s : enabledSuites) { *************** class ServerHandshake extends AbstractHa *** 247,253 **** if (suites.contains(resolved)) return resolved; } ! // We didn't find a match? throw new AlertException(new Alert(Alert.Level.FATAL, Alert.Description.INSUFFICIENT_SECURITY)); --- 247,253 ---- if (suites.contains(resolved)) return resolved; } ! // We didn't find a match? throw new AlertException(new Alert(Alert.Level.FATAL, Alert.Description.INSUFFICIENT_SECURITY)); *************** class ServerHandshake extends AbstractHa *** 283,289 **** throw new SSLException ("no supported compression method"); } ! protected @Override boolean doHash() { boolean b = helloV2; --- 283,289 ---- throw new SSLException ("no supported compression method"); } ! protected @Override boolean doHash() { boolean b = helloV2; *************** class ServerHandshake extends AbstractHa *** 308,314 **** Handshake handshake = new Handshake(buffer.slice(), engine.session().suite, engine.session().version); ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "processing in state {0}:\n{1}", state, handshake); --- 308,314 ---- Handshake handshake = new Handshake(buffer.slice(), engine.session().suite, engine.session().version); ! if (Debug.DEBUG) logger.logv(Component.SSL_HANDSHAKE, "processing in state {0}:\n{1}", state, handshake); *************** class ServerHandshake extends AbstractHa *** 328,334 **** if (handshake.type () != CLIENT_HELLO) throw new AlertException(new Alert(Alert.Level.FATAL, Alert.Description.UNEXPECTED_MESSAGE)); ! { ClientHello hello = (ClientHello) handshake.body (); engine.session().version --- 328,334 ---- if (handshake.type () != CLIENT_HELLO) throw new AlertException(new Alert(Alert.Level.FATAL, Alert.Description.UNEXPECTED_MESSAGE)); ! { ClientHello hello = (ClientHello) handshake.body (); engine.session().version *************** class ServerHandshake extends AbstractHa *** 366,372 **** engine.session().maxLength = len; engine.session().setApplicationBufferSize(len.maxLength()); break; ! case SERVER_NAME: requestedNames = (ServerNameList) e.value(); List names --- 366,372 ---- engine.session().maxLength = len; engine.session().setApplicationBufferSize(len.maxLength()); break; ! case SERVER_NAME: requestedNames = (ServerNameList) e.value(); List names *************** class ServerHandshake extends AbstractHa *** 426,432 **** state = READ_CLIENT_KEY_EXCHANGE; return HandshakeStatus.NEED_UNWRAP; } ! Certificate cert = (Certificate) handshake.body(); try { --- 426,432 ---- state = READ_CLIENT_KEY_EXCHANGE; return HandshakeStatus.NEED_UNWRAP; } ! Certificate cert = (Certificate) handshake.body(); try { *************** class ServerHandshake extends AbstractHa *** 472,478 **** if (handshake.type() != CLIENT_KEY_EXCHANGE) throw new SSLException("expecting client key exchange"); ClientKeyExchange kex = (ClientKeyExchange) handshake.body(); ! KeyExchangeAlgorithm alg = engine.session().suite.keyExchangeAlgorithm(); switch (alg) { --- 472,478 ---- if (handshake.type() != CLIENT_KEY_EXCHANGE) throw new SSLException("expecting client key exchange"); ClientKeyExchange kex = (ClientKeyExchange) handshake.body(); ! KeyExchangeAlgorithm alg = engine.session().suite.keyExchangeAlgorithm(); switch (alg) { *************** class ServerHandshake extends AbstractHa *** 500,506 **** tasks.add(keyExchangeTask); } break; ! case PSK: { ClientPSKParameters params = (ClientPSKParameters) --- 500,506 ---- tasks.add(keyExchangeTask); } break; ! case PSK: { ClientPSKParameters params = (ClientPSKParameters) *************** class ServerHandshake extends AbstractHa *** 508,514 **** generatePSKSecret(params.identity(), null, false); } break; ! case DHE_PSK: { ClientDHE_PSKParameters params = (ClientDHE_PSKParameters) --- 508,514 ---- generatePSKSecret(params.identity(), null, false); } break; ! case DHE_PSK: { ClientDHE_PSKParameters params = (ClientDHE_PSKParameters) *************** class ServerHandshake extends AbstractHa *** 530,536 **** tasks.add(keyExchangeTask); } break; ! case RSA_PSK: { ClientRSA_PSKParameters params = (ClientRSA_PSKParameters) --- 530,536 ---- tasks.add(keyExchangeTask); } break; ! case RSA_PSK: { ClientRSA_PSKParameters params = (ClientRSA_PSKParameters) *************** class ServerHandshake extends AbstractHa *** 554,560 **** tasks.add(keyExchangeTask); } break; ! case NONE: { Inflater inflater = null; --- 554,560 ---- tasks.add(keyExchangeTask); } break; ! case NONE: { Inflater inflater = null; *************** class ServerHandshake extends AbstractHa *** 575,581 **** break; } // XXX SRP ! if (clientCert != null) state = READ_CERTIFICATE_VERIFY; else --- 575,581 ---- break; } // XXX SRP ! if (clientCert != null) state = READ_CERTIFICATE_VERIFY; else *************** class ServerHandshake extends AbstractHa *** 595,601 **** { if (handshake.type() != CERTIFICATE_VERIFY) throw new SSLException("expecting certificate verify message"); ! CertificateVerify verify = (CertificateVerify) handshake.body(); try { --- 595,601 ---- { if (handshake.type() != CERTIFICATE_VERIFY) throw new SSLException("expecting certificate verify message"); ! CertificateVerify verify = (CertificateVerify) handshake.body(); try { *************** class ServerHandshake extends AbstractHa *** 617,623 **** state = READ_FINISHED; } break; ! // Finished. // // This message is sent immediately following the change cipher --- 617,623 ---- state = READ_FINISHED; } break; ! // Finished. // // This message is sent immediately following the change cipher *************** class ServerHandshake extends AbstractHa *** 637,643 **** Description.UNEXPECTED_MESSAGE)); Finished clientFinished = (Finished) handshake.body(); ! MessageDigest md5copy = null; MessageDigest shacopy = null; try --- 637,643 ---- Description.UNEXPECTED_MESSAGE)); Finished clientFinished = (Finished) handshake.body(); ! MessageDigest md5copy = null; MessageDigest shacopy = null; try *************** class ServerHandshake extends AbstractHa *** 659,665 **** if (Debug.DEBUG) logger.log(Component.SSL_HANDSHAKE, "server finished: {0}", serverFinished); ! if (engine.session().version == ProtocolVersion.SSL_3) { if (!Arrays.equals(clientFinished.md5Hash(), --- 659,665 ---- if (Debug.DEBUG) logger.log(Component.SSL_HANDSHAKE, "server finished: {0}", serverFinished); ! if (engine.session().version == ProtocolVersion.SSL_3) { if (!Arrays.equals(clientFinished.md5Hash(), *************** class ServerHandshake extends AbstractHa *** 680,686 **** throw new SSLException("session verify failed"); } } ! if (continuedSession) state = DONE; else --- 680,686 ---- throw new SSLException("session verify failed"); } } ! if (continuedSession) state = DONE; else *************** class ServerHandshake extends AbstractHa *** 711,717 **** logger.logv(Component.SSL_HANDSHAKE, "handle output state: {0}; output fragment: {1}", state, fragment); ! // Drain the output buffer, if it needs it. if (outBuffer != null && outBuffer.hasRemaining()) { --- 711,717 ---- logger.logv(Component.SSL_HANDSHAKE, "handle output state: {0}; output fragment: {1}", state, fragment); ! // Drain the output buffer, if it needs it. if (outBuffer != null && outBuffer.hasRemaining()) { *************** class ServerHandshake extends AbstractHa *** 719,725 **** fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); } ! if (!fragment.hasRemaining()) { if (state.isWriteState() || outBuffer.hasRemaining()) --- 719,725 ---- fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); } ! if (!fragment.hasRemaining()) { if (state.isWriteState() || outBuffer.hasRemaining()) *************** class ServerHandshake extends AbstractHa *** 727,733 **** else return HandshakeStatus.NEED_UNWRAP; } ! // XXX what we need to do here is generate a "stream" of handshake // messages, and insert them into fragment amounts that we have available. // A handshake message can span multiple records, and we can put --- 727,733 ---- else return HandshakeStatus.NEED_UNWRAP; } ! // XXX what we need to do here is generate a "stream" of handshake // messages, and insert them into fragment amounts that we have available. // A handshake message can span multiple records, and we can put *************** output_loop: *** 808,814 **** state = READ_CLIENT_HELLO; } break output_loop; // XXX temporary ! // Server Hello. // // This message is sent immediately following the client hello. --- 808,814 ---- state = READ_CLIENT_HELLO; } break output_loop; // XXX temporary ! // Server Hello. // // This message is sent immediately following the client hello. *************** output_loop: *** 834,840 **** } else // Don't send any extensions. hello.setDisableExtensions(true); ! if (Debug.DEBUG) logger.log(Component.SSL_HANDSHAKE, "{0}", hello); --- 834,840 ---- } else // Don't send any extensions. hello.setDisableExtensions(true); ! if (Debug.DEBUG) logger.log(Component.SSL_HANDSHAKE, "{0}", hello); *************** output_loop: *** 921,927 **** logger.logv(Component.SSL_HANDSHAKE, "my cert:\n{0}", localCert); logger.logv(Component.SSL_HANDSHAKE, "{0}", cert); } ! int typeLen = ((CERTIFICATE.getValue() << 24) | (cert.length() & 0xFFFFFF)); fragment.putInt(typeLen); --- 921,927 ---- logger.logv(Component.SSL_HANDSHAKE, "my cert:\n{0}", localCert); logger.logv(Component.SSL_HANDSHAKE, "{0}", cert); } ! int typeLen = ((CERTIFICATE.getValue() << 24) | (cert.length() & 0xFFFFFF)); fragment.putInt(typeLen); *************** output_loop: *** 961,967 **** case WRITE_SERVER_KEY_EXCHANGE: { KeyExchangeAlgorithm kex = engine.session().suite.keyExchangeAlgorithm(); ! ByteBuffer paramBuffer = null; ByteBuffer sigBuffer = null; if (kex == DHE_DSS || kex == DHE_RSA || kex == DH_anon --- 961,967 ---- case WRITE_SERVER_KEY_EXCHANGE: { KeyExchangeAlgorithm kex = engine.session().suite.keyExchangeAlgorithm(); ! ByteBuffer paramBuffer = null; ByteBuffer sigBuffer = null; if (kex == DHE_DSS || kex == DHE_RSA || kex == DH_anon *************** output_loop: *** 978,984 **** engine.session().random()); paramBuffer = genDH.paramsBuffer; sigBuffer = genDH.sigBuffer; ! if (kex == DHE_PSK) { String identityHint --- 978,984 ---- engine.session().random()); paramBuffer = genDH.paramsBuffer; sigBuffer = genDH.sigBuffer; ! if (kex == DHE_PSK) { String identityHint *************** output_loop: *** 1009,1015 **** } } // XXX handle SRP ! if (paramBuffer != null) { ServerKeyExchangeBuilder ske --- 1009,1015 ---- } } // XXX handle SRP ! if (paramBuffer != null) { ServerKeyExchangeBuilder ske *************** output_loop: *** 1017,1026 **** ske.setParams(paramBuffer); if (sigBuffer != null) ske.setSignature(sigBuffer); ! if (Debug.DEBUG) logger.log(Component.SSL_HANDSHAKE, "{0}", ske); ! outBuffer = ske.buffer(); int l = Math.min(fragment.remaining(), outBuffer.remaining()); fragment.putInt((SERVER_KEY_EXCHANGE.getValue() << 24) --- 1017,1026 ---- ske.setParams(paramBuffer); if (sigBuffer != null) ske.setSignature(sigBuffer); ! if (Debug.DEBUG) logger.log(Component.SSL_HANDSHAKE, "{0}", ske); ! outBuffer = ske.buffer(); int l = Math.min(fragment.remaining(), outBuffer.remaining()); fragment.putInt((SERVER_KEY_EXCHANGE.getValue() << 24) *************** output_loop: *** 1029,1035 **** (outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); } ! if (engine.getWantClientAuth() || engine.getNeedClientAuth()) state = WRITE_CERTIFICATE_REQUEST; else --- 1029,1035 ---- (outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); } ! if (engine.getWantClientAuth() || engine.getNeedClientAuth()) state = WRITE_CERTIFICATE_REQUEST; else *************** output_loop: *** 1048,1054 **** case WRITE_CERTIFICATE_REQUEST: { CertificateRequestBuilder req = new CertificateRequestBuilder(); ! List types = new ArrayList(4); types.add(ClientCertificateType.RSA_SIGN); --- 1048,1054 ---- case WRITE_CERTIFICATE_REQUEST: { CertificateRequestBuilder req = new CertificateRequestBuilder(); ! List types = new ArrayList(4); types.add(ClientCertificateType.RSA_SIGN); *************** output_loop: *** 1056,1062 **** types.add(ClientCertificateType.DSS_SIGN); types.add(ClientCertificateType.DSS_FIXED_DH); req.setTypes(types); ! X509Certificate[] anchors = engine.contextImpl.trustManager.getAcceptedIssuers(); List issuers --- 1056,1062 ---- types.add(ClientCertificateType.DSS_SIGN); types.add(ClientCertificateType.DSS_FIXED_DH); req.setTypes(types); ! X509Certificate[] anchors = engine.contextImpl.trustManager.getAcceptedIssuers(); List issuers *************** output_loop: *** 1064,1081 **** for (X509Certificate cert : anchors) issuers.add(cert.getIssuerX500Principal()); req.setAuthorities(issuers); ! if (Debug.DEBUG) logger.log(Component.SSL_HANDSHAKE, "{0}", req); ! fragment.putInt((CERTIFICATE_REQUEST.getValue() << 24) | (req.length() & 0xFFFFFF)); ! outBuffer = req.buffer(); int l = Math.min(outBuffer.remaining(), fragment.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); ! state = WRITE_SERVER_HELLO_DONE; } break; --- 1064,1081 ---- for (X509Certificate cert : anchors) issuers.add(cert.getIssuerX500Principal()); req.setAuthorities(issuers); ! if (Debug.DEBUG) logger.log(Component.SSL_HANDSHAKE, "{0}", req); ! fragment.putInt((CERTIFICATE_REQUEST.getValue() << 24) | (req.length() & 0xFFFFFF)); ! outBuffer = req.buffer(); int l = Math.min(outBuffer.remaining(), fragment.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); ! state = WRITE_SERVER_HELLO_DONE; } break; *************** output_loop: *** 1097,1103 **** state = READ_CERTIFICATE; } break output_loop; // XXX temporary ! // Finished. // // This is always sent by the server to verify the keys that the --- 1097,1103 ---- state = READ_CERTIFICATE; } break output_loop; // XXX temporary ! // Finished. // // This is always sent by the server to verify the keys that the *************** output_loop: *** 1129,1138 **** outBuffer = generateFinished(md5copy, shacopy, false, engine.session()); ! fragment.putInt((FINISHED.getValue() << 24) | outBuffer.remaining() & 0xFFFFFF); ! int l = Math.min(outBuffer.remaining(), fragment.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); --- 1129,1138 ---- outBuffer = generateFinished(md5copy, shacopy, false, engine.session()); ! fragment.putInt((FINISHED.getValue() << 24) | outBuffer.remaining() & 0xFFFFFF); ! int l = Math.min(outBuffer.remaining(), fragment.remaining()); fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); outBuffer.position(outBuffer.position() + l); *************** output_loop: *** 1151,1160 **** return HandshakeStatus.NEED_WRAP; if (state.isReadState()) return HandshakeStatus.NEED_UNWRAP; ! return HandshakeStatus.FINISHED; } ! @Override HandshakeStatus status() { if (!tasks.isEmpty()) --- 1151,1160 ---- return HandshakeStatus.NEED_WRAP; if (state.isReadState()) return HandshakeStatus.NEED_UNWRAP; ! return HandshakeStatus.FINISHED; } ! @Override HandshakeStatus status() { if (!tasks.isEmpty()) *************** output_loop: *** 1163,1169 **** return HandshakeStatus.NEED_UNWRAP; if (state.isWriteState()) return HandshakeStatus.NEED_WRAP; ! return HandshakeStatus.FINISHED; } --- 1163,1169 ---- return HandshakeStatus.NEED_UNWRAP; if (state.isWriteState()) return HandshakeStatus.NEED_WRAP; ! return HandshakeStatus.FINISHED; } *************** output_loop: *** 1185,1191 **** Alert.Description.HANDSHAKE_FAILURE), keyExchangeTask.thrown()); } ! @Override void handleV2Hello(ByteBuffer hello) { int len = hello.getShort(0) & 0x7FFF; --- 1185,1191 ---- Alert.Description.HANDSHAKE_FAILURE), keyExchangeTask.thrown()); } ! @Override void handleV2Hello(ByteBuffer hello) { int len = hello.getShort(0) & 0x7FFF; *************** output_loop: *** 1211,1217 **** Signature signature = new Signature(sigVal, engine.session().suite.signatureAlgorithm()); return signature.buffer(); } ! private void verifyClient(byte[] sigValue) throws SSLException, SignatureException { MessageDigest md5copy = null; --- 1211,1217 ---- Signature signature = new Signature(sigVal, engine.session().suite.signatureAlgorithm()); return signature.buffer(); } ! private void verifyClient(byte[] sigValue) throws SSLException, SignatureException { MessageDigest md5copy = null; *************** output_loop: *** 1236,1242 **** else toSign = shacopy.digest(); } ! try { java.security.Signature sig = java.security.Signature.getInstance(engine.session().suite.signatureAlgorithm().toString()); --- 1236,1242 ---- else toSign = shacopy.digest(); } ! try { java.security.Signature sig = java.security.Signature.getInstance(engine.session().suite.signatureAlgorithm().toString()); *************** output_loop: *** 1253,1259 **** throw new SSLException(nsae); } } ! // Delegated tasks. class CertLoader extends DelegatedTask --- 1253,1259 ---- throw new SSLException(nsae); } } ! // Delegated tasks. class CertLoader extends DelegatedTask *************** output_loop: *** 1261,1267 **** CertLoader() { } ! public void implRun() throws SSLException { KeyExchangeAlgorithm kexalg = engine.session().suite.keyExchangeAlgorithm(); --- 1261,1267 ---- CertLoader() { } ! public void implRun() throws SSLException { KeyExchangeAlgorithm kexalg = engine.session().suite.keyExchangeAlgorithm(); *************** output_loop: *** 1279,1285 **** km.getPrivateKey(keyAlias)); } } ! /** * Delegated task for generating Diffie-Hellman parameters. */ --- 1279,1285 ---- km.getPrivateKey(keyAlias)); } } ! /** * Delegated task for generating Diffie-Hellman parameters. */ *************** output_loop: *** 1297,1309 **** dhGen.initialize(dhparams, engine.session().random()); dhPair = dhGen.generateKeyPair(); DHPublicKey pub = (DHPublicKey) dhPair.getPublic(); ! // Generate the parameters message. ServerDHParams params = new ServerDHParams(pub.getParams().getP(), pub.getParams().getG(), pub.getY()); paramsBuffer = params.buffer(); ! // Sign the parameters, if needed. if (engine.session().suite.signatureAlgorithm() != SignatureAlgorithm.ANONYMOUS) { --- 1297,1309 ---- dhGen.initialize(dhparams, engine.session().random()); dhPair = dhGen.generateKeyPair(); DHPublicKey pub = (DHPublicKey) dhPair.getPublic(); ! // Generate the parameters message. ServerDHParams params = new ServerDHParams(pub.getParams().getP(), pub.getParams().getG(), pub.getY()); paramsBuffer = params.buffer(); ! // Sign the parameters, if needed. if (engine.session().suite.signatureAlgorithm() != SignatureAlgorithm.ANONYMOUS) { *************** output_loop: *** 1316,1322 **** dhPair.getPublic(), dhPair.getPrivate()); } } ! class RSAKeyExchange extends DelegatedTask { private final byte[] encryptedPreMasterSecret; --- 1316,1322 ---- dhPair.getPublic(), dhPair.getPrivate()); } } ! class RSAKeyExchange extends DelegatedTask { private final byte[] encryptedPreMasterSecret; *************** output_loop: *** 1325,1331 **** { this.encryptedPreMasterSecret = encryptedPreMasterSecret; } ! public void implRun() throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, SSLException --- 1325,1331 ---- { this.encryptedPreMasterSecret = encryptedPreMasterSecret; } ! public void implRun() throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, SSLException *************** output_loop: *** 1339,1356 **** setupSecurityParameters(keys, false, engine, compression); } } ! class RSA_PSKExchange extends DelegatedTask { private final byte[] encryptedPreMasterSecret; private final SecretKey psKey; ! RSA_PSKExchange(byte[] encryptedPreMasterSecret, SecretKey psKey) { this.encryptedPreMasterSecret = encryptedPreMasterSecret; this.psKey = psKey; } ! public @Override void implRun() throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, SSLException --- 1339,1356 ---- setupSecurityParameters(keys, false, engine, compression); } } ! class RSA_PSKExchange extends DelegatedTask { private final byte[] encryptedPreMasterSecret; private final SecretKey psKey; ! RSA_PSKExchange(byte[] encryptedPreMasterSecret, SecretKey psKey) { this.encryptedPreMasterSecret = encryptedPreMasterSecret; this.psKey = psKey; } ! public @Override void implRun() throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, SSLException *************** output_loop: *** 1368,1374 **** preMasterSecret[rsaSecret.length + 3] = (byte) psSecret.length; System.arraycopy(psSecret, 0, preMasterSecret, rsaSecret.length+4, psSecret.length); ! generateMasterSecret(clientRandom, serverRandom, engine.session()); byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); setupSecurityParameters(keys, false, engine, compression); --- 1368,1374 ---- preMasterSecret[rsaSecret.length + 3] = (byte) psSecret.length; System.arraycopy(psSecret, 0, preMasterSecret, rsaSecret.length+4, psSecret.length); ! generateMasterSecret(clientRandom, serverRandom, engine.session()); byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); setupSecurityParameters(keys, false, engine, compression); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java Tue Jan 11 19:46:05 2011 *************** public class ServerHello implements Hand *** 74,80 **** protected ByteBuffer buffer; protected boolean disableExtensions; ! // Constructor. // ------------------------------------------------------------------------- --- 74,80 ---- protected ByteBuffer buffer; protected boolean disableExtensions; ! // Constructor. // ------------------------------------------------------------------------- *************** public class ServerHello implements Hand *** 170,176 **** return 0; return buffer.getShort(offset) & 0xFFFF; } ! public ExtensionList extensions () { int offset = SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF) + 3; --- 170,176 ---- return 0; return buffer.getShort(offset) & 0xFFFF; } ! public ExtensionList extensions () { int offset = SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF) + 3; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ServerHelloBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ServerHelloBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class ServerHelloBuilder extends *** 57,67 **** { return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); } ! // We don't reallocate the buffer in any of the following methods, // because we always allocate a large enough buffer for the base // object in the constructor. ! public void setVersion (final ProtocolVersion version) { buffer.putShort (0, (short) version.rawValue ()); --- 57,67 ---- { return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); } ! // We don't reallocate the buffer in any of the following methods, // because we always allocate a large enough buffer for the base // object in the constructor. ! public void setVersion (final ProtocolVersion version) { buffer.putShort (0, (short) version.rawValue ()); *************** public class ServerHelloBuilder extends *** 95,106 **** } // For extensions, we do reallocate the buffer. ! public void setDisableExtensions(boolean disable) { disableExtensions = disable; } ! public void setExtensionsLength (final int length) { if (length < 0 || length > 16384) --- 95,106 ---- } // For extensions, we do reallocate the buffer. ! public void setDisableExtensions(boolean disable) { disableExtensions = disable; } ! public void setExtensionsLength (final int length) { if (length < 0 || length > 16384) *************** public class ServerHelloBuilder extends *** 111,117 **** buffer.putShort (SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF) + 3, (short) length); } ! public void setExtensions(ByteBuffer extensions) { extensions = (ByteBuffer) --- 111,117 ---- buffer.putShort (SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF) + 3, (short) length); } ! public void setExtensions(ByteBuffer extensions) { extensions = (ByteBuffer) *************** public class ServerHelloBuilder extends *** 120,126 **** + (buffer.get(SESSID_OFFSET) & 0xFF) )).put(extensions); } ! public void ensureCapacity(int newCapacity) { ByteBuffer newBuffer = ByteBuffer.allocate(newCapacity); --- 120,126 ---- + (buffer.get(SESSID_OFFSET) & 0xFF) )).put(extensions); } ! public void ensureCapacity(int newCapacity) { ByteBuffer newBuffer = ByteBuffer.allocate(newCapacity); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java Tue Jan 11 19:46:05 2011 *************** public class ServerHelloDone implements *** 63,66 **** return ((prefix != null ? prefix : "") + "struct { } ServerHelloDone;"); } ! } \ No newline at end of file --- 63,66 ---- return ((prefix != null ? prefix : "") + "struct { } ServerHelloDone;"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ServerKeyExchangeBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ServerKeyExchangeBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** import java.nio.ByteBuffer; *** 42,48 **** /** * Builder for {@link ServerKeyExchange} objects. ! * * @author Casey Marshall (csm@gnu.org) */ public class ServerKeyExchangeBuilder extends ServerKeyExchange --- 42,48 ---- /** * Builder for {@link ServerKeyExchange} objects. ! * * @author Casey Marshall (csm@gnu.org) */ public class ServerKeyExchangeBuilder extends ServerKeyExchange *************** public class ServerKeyExchangeBuilder ex *** 68,74 **** ensureCapacity(params.remaining()); buffer.duplicate().put(params); } ! public void setSignature(ByteBuffer signature) { if (suite.keyExchangeAlgorithm() == KeyExchangeAlgorithm.NONE) --- 68,74 ---- ensureCapacity(params.remaining()); buffer.duplicate().put(params); } ! public void setSignature(ByteBuffer signature) { if (suite.keyExchangeAlgorithm() == KeyExchangeAlgorithm.NONE) *************** public class ServerKeyExchangeBuilder ex *** 77,83 **** ensureCapacity(paramsLen + signature.remaining()); ((ByteBuffer) buffer.duplicate().position(paramsLen)).put(signature); } ! public void ensureCapacity(int capacity) { if (buffer.capacity() >= capacity) --- 77,83 ---- ensureCapacity(paramsLen + signature.remaining()); ((ByteBuffer) buffer.duplicate().position(paramsLen)).put(signature); } ! public void ensureCapacity(int capacity) { if (buffer.capacity() >= capacity) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerNameList.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerNameList.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerNameList.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerNameList.java Tue Jan 11 19:46:05 2011 *************** import java.util.NoSuchElementException; *** 54,60 **** /** * The ServerName extension. ! * *

             struct {
               NameType name_type;
          --- 54,60 ----
            
            /**
             * The ServerName extension.
          !  *
             * 
             struct {
               NameType name_type;
          *************** struct {
          *** 82,93 ****
            public class ServerNameList extends Value implements Iterable
            {
              private ByteBuffer buffer;
          !   
              public ServerNameList (final ByteBuffer buffer)
              {
                this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN);
              }
          !   
              public ServerNameList(List names)
              {
                int length = 2;
          --- 82,93 ----
            public class ServerNameList extends Value implements Iterable
            {
              private ByteBuffer buffer;
          ! 
              public ServerNameList (final ByteBuffer buffer)
              {
                this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN);
              }
          ! 
              public ServerNameList(List names)
              {
                int length = 2;
          *************** public class ServerNameList extends Valu
          *** 104,115 ****
              {
                return (buffer.getShort(0) & 0xFFFF) + 2;
              }
          !   
              public ByteBuffer buffer()
              {
                return (ByteBuffer) buffer.duplicate().limit(length());
              }
          !   
              public int size()
              {
                int n = 0;
          --- 104,115 ----
              {
                return (buffer.getShort(0) & 0xFFFF) + 2;
              }
          ! 
              public ByteBuffer buffer()
              {
                return (ByteBuffer) buffer.duplicate().limit(length());
              }
          ! 
              public int size()
              {
                int n = 0;
          *************** public class ServerNameList extends Valu
          *** 122,128 ****
                  }
                return n;
              }
          !   
              public ServerName get (int index)
              {
                final int len = length();
          --- 122,128 ----
                  }
                return n;
              }
          ! 
              public ServerName get (int index)
              {
                final int len = length();
          *************** public class ServerNameList extends Valu
          *** 142,155 ****
                ByteBuffer buf = ((ByteBuffer) buffer.duplicate().position(i).limit(i+l+3)).slice();
                return new ServerName (buf);
              }
          !   
              public void setLength(final int newLength)
              {
                if (newLength < 0 || newLength > 65535)
                  throw new IllegalArgumentException("length must be between 0 and 65535");
                buffer.putShort(0, (short) newLength);
              }
          !   
              public String toString()
              {
                return toString(null);
          --- 142,155 ----
                ByteBuffer buf = ((ByteBuffer) buffer.duplicate().position(i).limit(i+l+3)).slice();
                return new ServerName (buf);
              }
          ! 
              public void setLength(final int newLength)
              {
                if (newLength < 0 || newLength > 65535)
                  throw new IllegalArgumentException("length must be between 0 and 65535");
                buffer.putShort(0, (short) newLength);
              }
          ! 
              public String toString()
              {
                return toString(null);
          *************** public class ServerNameList extends Valu
          *** 172,178 ****
                out.print ("};");
                return str.toString();
              }
          !   
              public java.util.Iterator iterator()
              {
                return new Iterator();
          --- 172,178 ----
                out.print ("};");
                return str.toString();
              }
          ! 
              public java.util.Iterator iterator()
              {
                return new Iterator();
          *************** public class ServerNameList extends Valu
          *** 181,197 ****
              public class Iterator implements java.util.Iterator
              {
                private int index;
          !     
                public Iterator()
                {
                  index = 0;
                }
          !     
                public boolean hasNext()
                {
                  return index < size();
                }
          !     
                public ServerName next() throws NoSuchElementException
                {
                  try
          --- 181,197 ----
              public class Iterator implements java.util.Iterator
              {
                private int index;
          ! 
                public Iterator()
                {
                  index = 0;
                }
          ! 
                public boolean hasNext()
                {
                  return index < size();
                }
          ! 
                public ServerName next() throws NoSuchElementException
                {
                  try
          *************** public class ServerNameList extends Valu
          *** 203,209 ****
                      throw new NoSuchElementException();
                    }
                }
          !     
                public void remove()
                {
                  throw new UnsupportedOperationException();
          --- 203,209 ----
                      throw new NoSuchElementException();
                    }
                }
          ! 
                public void remove()
                {
                  throw new UnsupportedOperationException();
          *************** public class ServerNameList extends Valu
          *** 213,224 ****
              public static class ServerName implements Constructed
              {
                private ByteBuffer buffer;
          !     
                public ServerName(final ByteBuffer buffer)
                {
                  this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN);
                }
          !     
                public ServerName(NameType type, String name)
                {
                  CharsetEncoder utf8 = Charset.forName("UTF-8").newEncoder();
          --- 213,224 ----
              public static class ServerName implements Constructed
              {
                private ByteBuffer buffer;
          ! 
                public ServerName(final ByteBuffer buffer)
                {
                  this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN);
                }
          ! 
                public ServerName(NameType type, String name)
                {
                  CharsetEncoder utf8 = Charset.forName("UTF-8").newEncoder();
          *************** public class ServerNameList extends Valu
          *** 239,250 ****
                  buffer.put(nameBuf);
                  buffer.rewind();
                }
          !     
                public int length()
                {
                  return (buffer.getShort(1) & 0xFFFF) + 3;
                }
          !     
                public ByteBuffer buffer()
                {
                  return (ByteBuffer) buffer.duplicate().limit(length());
          --- 239,250 ----
                  buffer.put(nameBuf);
                  buffer.rewind();
                }
          ! 
                public int length()
                {
                  return (buffer.getShort(1) & 0xFFFF) + 3;
                }
          ! 
                public ByteBuffer buffer()
                {
                  return (ByteBuffer) buffer.duplicate().limit(length());
          *************** public class ServerNameList extends Valu
          *** 259,277 ****
                    }
                  throw new IllegalArgumentException ("illegal name type: " + v);
                }
          !     
                public String name()
                {
                  int len = length();
                  Charset cs = Charset.forName ("UTF-8");
                  return cs.decode(((ByteBuffer) buffer.duplicate().position(3).limit(len))).toString();
                }
          !     
                public String toString()
                {
                  return toString (null);
                }
          !     
                public String toString(String prefix)
                {
                  StringWriter str = new StringWriter();
          --- 259,277 ----
                    }
                  throw new IllegalArgumentException ("illegal name type: " + v);
                }
          ! 
                public String name()
                {
                  int len = length();
                  Charset cs = Charset.forName ("UTF-8");
                  return cs.decode(((ByteBuffer) buffer.duplicate().position(3).limit(len))).toString();
                }
          ! 
                public String toString()
                {
                  return toString (null);
                }
          ! 
                public String toString(String prefix)
                {
                  StringWriter str = new StringWriter();
          *************** public class ServerNameList extends Valu
          *** 295,308 ****
              public static enum NameType
              {
                HOST_NAME (0);
          !     
                private final int value;
          !     
                private NameType (int value)
                {
                  this.value = value;
                }
          !     
                public int getValue()
                {
                  return value;
          --- 295,308 ----
              public static enum NameType
              {
                HOST_NAME (0);
          ! 
                private final int value;
          ! 
                private NameType (int value)
                {
                  this.value = value;
                }
          ! 
                public int getValue()
                {
                  return value;
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java	Tue Jan  9 19:58:05 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* ServerPSKParameters.java -- 
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* ServerPSKParameters.java --
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          *************** import java.nio.charset.Charset;
          *** 59,70 ****
            public class ServerPSKParameters implements Builder, Constructed, ServerKeyExchangeParams
            {
              private ByteBuffer buffer;
          !   
              public ServerPSKParameters(ByteBuffer buffer)
              {
                this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN);
              }
          !   
              public ServerPSKParameters(String identityHint)
              {
                Charset utf8 = Charset.forName("UTF-8");
          --- 59,70 ----
            public class ServerPSKParameters implements Builder, Constructed, ServerKeyExchangeParams
            {
              private ByteBuffer buffer;
          ! 
              public ServerPSKParameters(ByteBuffer buffer)
              {
                this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN);
              }
          ! 
              public ServerPSKParameters(String identityHint)
              {
                Charset utf8 = Charset.forName("UTF-8");
          *************** public class ServerPSKParameters impleme
          *** 74,80 ****
                buffer.put(identityHintBuffer);
                buffer.rewind();
              }
          !   
              public KeyExchangeAlgorithm algorithm()
              {
                return KeyExchangeAlgorithm.PSK;
          --- 74,80 ----
                buffer.put(identityHintBuffer);
                buffer.rewind();
              }
          ! 
              public KeyExchangeAlgorithm algorithm()
              {
                return KeyExchangeAlgorithm.PSK;
          *************** public class ServerPSKParameters impleme
          *** 95,101 ****
              {
                return (buffer.getShort(0) & 0xFFFF) + 2;
              }
          !   
              public String identityHint()
              {
                Charset utf8 = Charset.forName("UTF-8");
          --- 95,101 ----
              {
                return (buffer.getShort(0) & 0xFFFF) + 2;
              }
          ! 
              public String identityHint()
              {
                Charset utf8 = Charset.forName("UTF-8");
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java	Tue Jan  9 19:58:05 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java	Tue Jan 11 19:46:05 2011
          ***************
          *** 1,4 ****
          ! /* ServerRSA_PSKParameters.java -- 
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          --- 1,4 ----
          ! /* ServerRSA_PSKParameters.java --
               Copyright (C) 2006  Free Software Foundation, Inc.
            
            This file is a part of GNU Classpath.
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java	Tue Jan 11 19:46:05 2011
          *************** public class SessionImpl extends Session
          *** 60,84 ****
              byte[] privateDataSalt;
              SealedObject sealedPrivateData;
              MaxFragmentLength maxLength;
          !   
              transient PrivateData privateData;
          !   
              public SessionImpl()
              {
                super();
                privateData = new PrivateData();
              }
          !   
              SecureRandom random ()
              {
                return random;
              }
          !   
              public String getProtocol()
              {
                return version.toString();
              }
          !   
              public void prepare(char[] passwd) throws SSLException
              {
                try
          --- 60,84 ----
              byte[] privateDataSalt;
              SealedObject sealedPrivateData;
              MaxFragmentLength maxLength;
          ! 
              transient PrivateData privateData;
          ! 
              public SessionImpl()
              {
                super();
                privateData = new PrivateData();
              }
          ! 
              SecureRandom random ()
              {
                return random;
              }
          ! 
              public String getProtocol()
              {
                return version.toString();
              }
          ! 
              public void prepare(char[] passwd) throws SSLException
              {
                try
          *************** public class SessionImpl extends Session
          *** 111,117 ****
                    throw new SSLException(nspe);
                  }
              }
          !   
              public void repair(char[] passwd) throws SSLException
              {
                try
          --- 111,117 ----
                    throw new SSLException(nspe);
                  }
              }
          ! 
              public void repair(char[] passwd) throws SSLException
              {
                try
          *************** public class SessionImpl extends Session
          *** 136,149 ****
                    throw new SSLException(nsae);
                  }
              }
          !   
              public SealedObject privateData() throws SSLException
              {
                if (privateData == null)
                  throw new SSLException("this session has not been prepared");
                return sealedPrivateData;
              }
          !   
              public void setPrivateData(SealedObject so) throws SSLException
              {
                this.sealedPrivateData = so;
          --- 136,149 ----
                    throw new SSLException(nsae);
                  }
              }
          ! 
              public SealedObject privateData() throws SSLException
              {
                if (privateData == null)
                  throw new SSLException("this session has not been prepared");
                return sealedPrivateData;
              }
          ! 
              public void setPrivateData(SealedObject so) throws SSLException
              {
                this.sealedPrivateData = so;
          *************** public class SessionImpl extends Session
          *** 153,189 ****
              {
                applicationBufferSize = size;
              }
          !   
              void setRandom(SecureRandom random)
              {
                this.random = random;
              }
          !   
              void setTruncatedMac(boolean truncatedMac)
              {
                this.truncatedMac = truncatedMac;
              }
          !   
              void setId(Session.ID id)
              {
                this.sessionId = id;
              }
          !   
              void setLocalCertificates(java.security.cert.Certificate[] chain)
              {
                this.localCerts = chain;
              }
          !   
              void setPeerCertificates(java.security.cert.Certificate[] chain)
              {
                this.peerCerts = chain;
              }
          !   
              void setPeerVerified(boolean peerVerified)
              {
                this.peerVerified = peerVerified;
              }
          !   
              static class PrivateData implements Serializable
              {
                static final long serialVersionUID = -8040597659545984581L;
          --- 153,189 ----
              {
                applicationBufferSize = size;
              }
          ! 
              void setRandom(SecureRandom random)
              {
                this.random = random;
              }
          ! 
              void setTruncatedMac(boolean truncatedMac)
              {
                this.truncatedMac = truncatedMac;
              }
          ! 
              void setId(Session.ID id)
              {
                this.sessionId = id;
              }
          ! 
              void setLocalCertificates(java.security.cert.Certificate[] chain)
              {
                this.localCerts = chain;
              }
          ! 
              void setPeerCertificates(java.security.cert.Certificate[] chain)
              {
                this.peerCerts = chain;
              }
          ! 
              void setPeerVerified(boolean peerVerified)
              {
                this.peerVerified = peerVerified;
              }
          ! 
              static class PrivateData implements Serializable
              {
                static final long serialVersionUID = -8040597659545984581L;
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java	Tue Jan 11 19:46:05 2011
          *************** public class Signature implements Builde
          *** 81,87 ****
                this.buffer = buffer;
                this.alg = alg;
              }
          !   
              public Signature (final byte[] sigValue, final SignatureAlgorithm alg)
              {
                buffer = ByteBuffer.allocate(sigValue.length + 2);
          --- 81,87 ----
                this.buffer = buffer;
                this.alg = alg;
              }
          ! 
              public Signature (final byte[] sigValue, final SignatureAlgorithm alg)
              {
                buffer = ByteBuffer.allocate(sigValue.length + 2);
          *************** public class Signature implements Builde
          *** 100,106 ****
                  return 0;
                return (buffer.getShort (0) & 0xFFFF) + 2;
              }
          !   
              public ByteBuffer buffer()
              {
                return (ByteBuffer) buffer.duplicate().limit(length());
          --- 100,106 ----
                  return 0;
                return (buffer.getShort (0) & 0xFFFF) + 2;
              }
          ! 
              public ByteBuffer buffer()
              {
                return (ByteBuffer) buffer.duplicate().limit(length());
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java	Tue Jan  9 19:58:05 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java	Tue Jan 11 19:46:05 2011
          *************** package gnu.javax.net.ssl.provider;
          *** 41,52 ****
            public enum SignatureAlgorithm
            {
              ANONYMOUS, RSA, DSA;
          !   
              /**
               * Returns the algorithm name for this signature algorithm, which can
               * be used with the JCA API to get a {@link java.security.Signature} for
               * that algorithm.
          !    * 
               * @return The algorithm name.
               */
              public String algorithm()
          --- 41,52 ----
            public enum SignatureAlgorithm
            {
              ANONYMOUS, RSA, DSA;
          ! 
              /**
               * Returns the algorithm name for this signature algorithm, which can
               * be used with the JCA API to get a {@link java.security.Signature} for
               * that algorithm.
          !    *
               * @return The algorithm name.
               */
              public String algorithm()
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java	Tue Jan 11 19:46:05 2011
          *************** import java.util.Map;
          *** 48,54 ****
            
            /**
             * A simple, non-persistent SessionContext.
          !  * 
             * @author csm
             */
            public final class SimpleSessionContext
          --- 48,54 ----
            
            /**
             * A simple, non-persistent SessionContext.
          !  *
             * @author csm
             */
            public final class SimpleSessionContext
          *************** public final class SimpleSessionContext
          *** 58,74 ****
               * By default, sessions last for 5 minutes.
               */
              public static final int DEFAULT_TIMEOUT = 300;
          !   
              private final HashMap store;
              private int storeLimit;
          !   
              public SimpleSessionContext()
              {
                super(DEFAULT_TIMEOUT);
                storeLimit = 0;
                store = new HashMap();
              }
          !   
              @Override
              protected Session implGet(byte[] sessionId)
              {
          --- 58,74 ----
               * By default, sessions last for 5 minutes.
               */
              public static final int DEFAULT_TIMEOUT = 300;
          ! 
              private final HashMap store;
              private int storeLimit;
          ! 
              public SimpleSessionContext()
              {
                super(DEFAULT_TIMEOUT);
                storeLimit = 0;
                store = new HashMap();
              }
          ! 
              @Override
              protected Session implGet(byte[] sessionId)
              {
          *************** public final class SimpleSessionContext
          *** 116,127 ****
                return new Enumeration()
                {
                  Iterator it = store.keySet().iterator();
          !       
                  public boolean hasMoreElements()
                  {
                    return it.hasNext();
                  }
          !       
                  public Object nextElement()
                  {
                    return it.next().id();
          --- 116,127 ----
                return new Enumeration()
                {
                  Iterator it = store.keySet().iterator();
          ! 
                  public boolean hasMoreElements()
                  {
                    return it.hasNext();
                  }
          ! 
                  public Object nextElement()
                  {
                    return it.next().id();
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java	Tue Jan  9 19:58:05 2007
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java	Tue Jan 11 19:46:05 2011
          *************** import java.nio.ByteBuffer;
          *** 45,51 ****
            /**
             * The value type for the {@link Extension.Type#TRUNCATED_HMAC} extension.
             * This extension has an empty value; this class is thusly empty.
          !  * 
             * @author csm
             */
            public class TruncatedHMAC extends Value
          --- 45,51 ----
            /**
             * The value type for the {@link Extension.Type#TRUNCATED_HMAC} extension.
             * This extension has an empty value; this class is thusly empty.
          !  *
             * @author csm
             */
            public class TruncatedHMAC extends Value
          *************** public class TruncatedHMAC extends Value
          *** 55,66 ****
              {
                return 0;
              }
          !   
              public ByteBuffer buffer()
              {
                return ByteBuffer.wrap(new byte[0]);
              }
          !   
              public String toString()
              {
                return toString(null);
          --- 55,66 ----
              {
                return 0;
              }
          ! 
              public ByteBuffer buffer()
              {
                return ByteBuffer.wrap(new byte[0]);
              }
          ! 
              public String toString()
              {
                return toString(null);
          diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java
          *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java	Sat Jun 28 13:29:13 2008
          --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java	Tue Jan 11 19:46:05 2011
          *************** import javax.security.auth.x500.X500Prin
          *** 51,57 ****
            
            /**
             * The trusted authorities hello extension.
          !  * 
             * 
            struct {
              TrustedAuthority trusted_authorities_list<0..2^16-1>;
          --- 51,57 ----
            
            /**
             * The trusted authorities hello extension.
          !  *
             * 
            struct {
              TrustedAuthority trusted_authorities_list<0..2^16-1>;
          *************** enum {
          *** 73,79 ****
            } IdentifierType;
            
            opaque DistinguishedName<1..2^16-1>;
          ! * * @author csm */ public class TrustedAuthorities extends Value --- 73,79 ---- } IdentifierType; opaque DistinguishedName<1..2^16-1>;
          ! * * @author csm */ public class TrustedAuthorities extends Value *************** public class TrustedAuthorities extends *** 85,103 **** { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! // XXX really implement Builder. ! public int length() { return 2 + (buffer.getShort(0) & 0xFFFF); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); } ! public int size() { int len = buffer.getShort(0) & 0xFFFF; --- 85,103 ---- { this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } ! // XXX really implement Builder. ! public int length() { return 2 + (buffer.getShort(0) & 0xFFFF); } ! public ByteBuffer buffer() { return (ByteBuffer) buffer.duplicate().limit(length()); } ! public int size() { int len = buffer.getShort(0) & 0xFFFF; *************** public class TrustedAuthorities extends *** 128,139 **** } throw new IndexOutOfBoundsException(); } ! public String toString() { return toString(null); } ! public String toString(String prefix) { StringWriter str = new StringWriter(); --- 128,139 ---- } throw new IndexOutOfBoundsException(); } ! public String toString() { return toString(null); } ! public String toString(String prefix) { StringWriter str = new StringWriter(); *************** public class TrustedAuthorities extends *** 149,169 **** out.print("} TrustedAuthorities;"); return str.toString(); } ! public Iterator iterator() { return new AuthoritiesIterator(); } ! public class AuthoritiesIterator implements Iterator { private int index; ! public AuthoritiesIterator() { index = 0; } ! public TrustedAuthority next() throws NoSuchElementException { try --- 149,169 ---- out.print("} TrustedAuthorities;"); return str.toString(); } ! public Iterator iterator() { return new AuthoritiesIterator(); } ! public class AuthoritiesIterator implements Iterator { private int index; ! public AuthoritiesIterator() { index = 0; } ! public TrustedAuthority next() throws NoSuchElementException { try *************** public class TrustedAuthorities extends *** 175,186 **** throw new NoSuchElementException(); } } ! public boolean hasNext() { return index < size(); } ! public void remove() { throw new UnsupportedOperationException(); --- 175,186 ---- throw new NoSuchElementException(); } } ! public boolean hasNext() { return index < size(); } ! public void remove() { throw new UnsupportedOperationException(); *************** public class TrustedAuthorities extends *** 190,201 **** public static class TrustedAuthority implements Constructed { private final ByteBuffer buffer; ! public TrustedAuthority(final ByteBuffer buffer) { this.buffer = buffer; } ! public int length() { switch (type().getValue()) --- 190,201 ---- public static class TrustedAuthority implements Constructed { private final ByteBuffer buffer; ! public TrustedAuthority(final ByteBuffer buffer) { this.buffer = buffer; } ! public int length() { switch (type().getValue()) *************** public class TrustedAuthorities extends *** 207,213 **** } throw new IllegalArgumentException("unknown authority type"); } ! public byte[] sha1Hash() { IdentifierType t = type(); --- 207,213 ---- } throw new IllegalArgumentException("unknown authority type"); } ! public byte[] sha1Hash() { IdentifierType t = type(); *************** public class TrustedAuthorities extends *** 218,224 **** ((ByteBuffer) buffer.duplicate().position(1)).get(b); return b; } ! public X500Principal name() { int len = buffer.getShort(1) & 0xFFFF; --- 218,224 ---- ((ByteBuffer) buffer.duplicate().position(1)).get(b); return b; } ! public X500Principal name() { int len = buffer.getShort(1) & 0xFFFF; *************** public class TrustedAuthorities extends *** 226,232 **** ((ByteBuffer) buffer.duplicate().position(3)).get(b); return new X500Principal(b); } ! public IdentifierType type() { switch (buffer.get(0)) --- 226,232 ---- ((ByteBuffer) buffer.duplicate().position(3)).get(b); return new X500Principal(b); } ! public IdentifierType type() { switch (buffer.get(0)) *************** public class TrustedAuthorities extends *** 236,250 **** case 2: return IdentifierType.X509_NAME; case 3: return IdentifierType.CERT_SHA1_HASH; } ! throw new IllegalArgumentException("invalid IdentifierType"); } ! public String toString() { return toString(null); } ! public String toString(String prefix) { StringWriter str = new StringWriter(); --- 236,250 ---- case 2: return IdentifierType.X509_NAME; case 3: return IdentifierType.CERT_SHA1_HASH; } ! throw new IllegalArgumentException("invalid IdentifierType"); } ! public String toString() { return toString(null); } ! public String toString(String prefix) { StringWriter str = new StringWriter(); *************** public class TrustedAuthorities extends *** 265,271 **** out.print(Util.toHexString(sha1Hash(), ':')); out.println(";"); break; ! case 2: if (prefix != null) out.print(prefix); out.print(" name = "); --- 265,271 ---- out.print(Util.toHexString(sha1Hash(), ':')); out.println(";"); break; ! case 2: if (prefix != null) out.print(prefix); out.print(" name = "); *************** public class TrustedAuthorities extends *** 277,294 **** return str.toString(); } } ! public static enum IdentifierType { PRE_AGREED (0), KEY_SHA1_HASH (1), X509_NAME (2), CERT_SHA1_HASH (3); ! private final int value; ! private IdentifierType(final int value) { this.value = value; } ! public int getValue() { return value; --- 277,294 ---- return str.toString(); } } ! public static enum IdentifierType { PRE_AGREED (0), KEY_SHA1_HASH (1), X509_NAME (2), CERT_SHA1_HASH (3); ! private final int value; ! private IdentifierType(final int value) { this.value = value; } ! public int getValue() { return value; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 45,76 **** public class UnresolvedExtensionValue extends Value { private final ByteBuffer buffer; ! public UnresolvedExtensionValue (final ByteBuffer buffer) { this.buffer = buffer; } ! public int length() { return buffer.limit(); } ! public ByteBuffer buffer() { return value(); } ! public ByteBuffer value() { return buffer.slice(); } ! public String toString() { return toString(null); } ! public String toString(final String prefix) { String s = Util.hexDump(buffer); --- 45,76 ---- public class UnresolvedExtensionValue extends Value { private final ByteBuffer buffer; ! public UnresolvedExtensionValue (final ByteBuffer buffer) { this.buffer = buffer; } ! public int length() { return buffer.limit(); } ! public ByteBuffer buffer() { return value(); } ! public ByteBuffer value() { return buffer.slice(); } ! public String toString() { return toString(null); } ! public String toString(final String prefix) { String s = Util.hexDump(buffer); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Util.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Util.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/Util.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/Util.java Tue Jan 11 19:46:05 2011 *************** public final class Util *** 77,105 **** { return wrapBuffer(buffer, ""); } ! public static Object wrapBuffer(ByteBuffer buffer, String prefix) { return new WrappedBuffer(buffer, prefix); } ! private static class WrappedBuffer { private final ByteBuffer buffer; private final String prefix; ! WrappedBuffer(ByteBuffer buffer, String prefix) { this.buffer = buffer; this.prefix = prefix; } ! public String toString() { return hexDump(buffer, prefix); } } ! /** * Convert a hexadecimal string into its byte representation. * --- 77,105 ---- { return wrapBuffer(buffer, ""); } ! public static Object wrapBuffer(ByteBuffer buffer, String prefix) { return new WrappedBuffer(buffer, prefix); } ! private static class WrappedBuffer { private final ByteBuffer buffer; private final String prefix; ! WrappedBuffer(ByteBuffer buffer, String prefix) { this.buffer = buffer; this.prefix = prefix; } ! public String toString() { return hexDump(buffer, prefix); } } ! /** * Convert a hexadecimal string into its byte representation. * diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java Tue Jan 11 19:46:05 2011 *************** public final class X500PrincipalList imp *** 188,194 **** { return new Iterator(); } ! public class Iterator implements ListIterator { private final int modCount; --- 188,194 ---- { return new Iterator(); } ! public class Iterator implements ListIterator { private final int modCount; *************** public final class X500PrincipalList imp *** 269,272 **** throw new UnsupportedOperationException (); } } ! } \ No newline at end of file --- 269,272 ---- throw new UnsupportedOperationException (); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java Tue Jan 11 19:46:05 2011 *************** public class X509KeyManagerFactory exten *** 270,276 **** } return null; } ! public @Override String chooseEngineClientAlias(String[] keyTypes, Principal[] issuers, SSLEngine engine) --- 270,276 ---- } return null; } ! public @Override String chooseEngineClientAlias(String[] keyTypes, Principal[] issuers, SSLEngine engine) *************** public class X509KeyManagerFactory exten *** 297,303 **** return s[0]; return null; } ! public @Override String chooseEngineServerAlias(String keyType, Principal[] issuers, SSLEngine engine) --- 297,303 ---- return s[0]; return null; } ! public @Override String chooseEngineServerAlias(String keyType, Principal[] issuers, SSLEngine engine) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java Tue Jan 11 19:46:05 2011 *************** public class X509TrustManagerFactory ext *** 83,89 **** private static final String sep = AccessController.doPrivileged(new GetPropertyAction("file.separator")); ! /** * The location of the JSSE key store. */ --- 83,89 ---- private static final String sep = AccessController.doPrivileged(new GetPropertyAction("file.separator")); ! /** * The location of the JSSE key store. */ *************** public class X509TrustManagerFactory ext *** 253,259 **** throws CertificateException { CertPathValidator validator = null; ! try { validator = CertPathValidator.getInstance("PKIX"); --- 253,259 ---- throws CertificateException { CertPathValidator validator = null; ! try { validator = CertPathValidator.getInstance("PKIX"); *************** public class X509TrustManagerFactory ext *** 262,270 **** { throw new CertificateException(nsae); } ! CertPath path = new X509CertPath(Arrays.asList(chain)); ! PKIXParameters params = null; try { --- 262,270 ---- { throw new CertificateException(nsae); } ! CertPath path = new X509CertPath(Arrays.asList(chain)); ! PKIXParameters params = null; try { *************** public class X509TrustManagerFactory ext *** 277,283 **** { throw new CertificateException(iape); } ! try { validator.validate(path, params); --- 277,283 ---- { throw new CertificateException(iape); } ! try { validator.validate(path, params); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsIppOperation.java gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsIppOperation.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsIppOperation.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsIppOperation.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* CupsIppOperation.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CupsIppOperation.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print; *** 45,99 **** * See: CUPS Implementation of IPP, chapter 3.2
          * http://www.cups.org/doc-1.1/ipp.html *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class CupsIppOperation { /** Get the default destination - since CUPS 1.0 */ ! public static final int CUPS_GET_DEFAULT = 0x4001; ! /** Get all of the available printers - since CUPS 1.0 */ public static final int CUPS_GET_PRINTERS = 0x4002; ! /** Add or modify a printer - since CUPS 1.0 */ public static final int CUPS_ADD_MODIFY_PRINTER = 0x4003; ! /** Delete a printer - since CUPS 1.0 */ public static final int CUPS_DELETE_PRINTER = 0x4004; ! /** Get all of the available printer classes - since CUPS 1.0 */ public static final int CUPS_GET_CLASSES = 0x4005; ! /** Add or modify a printer class - since CUPS 1.0 */ public static final int CUPS_ADD_MODIFY_CLASS = 0x4006; ! /** Delete a printer class - since CUPS 1.0 */ public static final int CUPS_DELETE_CLASS = 0x4007; ! /** Accept jobs on a printer or printer class - since CUPS 1.0 */ public static final int CUPS_ACCEPT_JOBS = 0x4008; ! /** Reject jobs on a printer or printer class - since CUPS 1.0 */ public static final int CUPS_REJECT_JOBS = 0x4009; ! /** Set the default destination - since CUPS 1.0 */ public static final int CUPS_SET_DEFAULT = 0x400A; ! /** Get all of the available PPDs - since CUPS 1.1 */ public static final int CUPS_GET_DEVICES = 0x400B; ! /** Get all of the available PPDs - since CUPS 1.1 */ public static final int CUPS_GET_PPDS = 0x400C; ! /** Move a job to a different printer - since CUPS 1.1 */ public static final int CUPS_MOVE_JOB = 0x400D; ! ! private CupsIppOperation() ! { // not to be instantiated } ! } --- 45,99 ---- * See: CUPS Implementation of IPP, chapter 3.2
          * http://www.cups.org/doc-1.1/ipp.html *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class CupsIppOperation { /** Get the default destination - since CUPS 1.0 */ ! public static final int CUPS_GET_DEFAULT = 0x4001; ! /** Get all of the available printers - since CUPS 1.0 */ public static final int CUPS_GET_PRINTERS = 0x4002; ! /** Add or modify a printer - since CUPS 1.0 */ public static final int CUPS_ADD_MODIFY_PRINTER = 0x4003; ! /** Delete a printer - since CUPS 1.0 */ public static final int CUPS_DELETE_PRINTER = 0x4004; ! /** Get all of the available printer classes - since CUPS 1.0 */ public static final int CUPS_GET_CLASSES = 0x4005; ! /** Add or modify a printer class - since CUPS 1.0 */ public static final int CUPS_ADD_MODIFY_CLASS = 0x4006; ! /** Delete a printer class - since CUPS 1.0 */ public static final int CUPS_DELETE_CLASS = 0x4007; ! /** Accept jobs on a printer or printer class - since CUPS 1.0 */ public static final int CUPS_ACCEPT_JOBS = 0x4008; ! /** Reject jobs on a printer or printer class - since CUPS 1.0 */ public static final int CUPS_REJECT_JOBS = 0x4009; ! /** Set the default destination - since CUPS 1.0 */ public static final int CUPS_SET_DEFAULT = 0x400A; ! /** Get all of the available PPDs - since CUPS 1.1 */ public static final int CUPS_GET_DEVICES = 0x400B; ! /** Get all of the available PPDs - since CUPS 1.1 */ public static final int CUPS_GET_PPDS = 0x400C; ! /** Move a job to a different printer - since CUPS 1.1 */ public static final int CUPS_MOVE_JOB = 0x400D; ! ! private CupsIppOperation() ! { // not to be instantiated } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsMediaMapping.java gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsMediaMapping.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsMediaMapping.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsMediaMapping.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* CupsMediaMapping.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CupsMediaMapping.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Me *** 52,63 **** * for use of media attribute translation between Java JPS API and * CUPS. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class CupsMediaMapping { ! // the mapping map private static final HashMap ippByCups = new HashMap(); /** --- 52,63 ---- * for use of media attribute translation between Java JPS API and * CUPS. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class CupsMediaMapping { ! // the mapping map private static final HashMap ippByCups = new HashMap(); /** *************** public class CupsMediaMapping *** 67,77 **** { ippByCups.put("Postcard", MediaSizeName.JAPANESE_POSTCARD); ippByCups.put("Statement", MediaSizeName.INVOICE); ! ippByCups.put("Letter", MediaSizeName.NA_LETTER); ippByCups.put("Executive", MediaSizeName.EXECUTIVE); ippByCups.put("Legal", MediaSizeName.NA_LEGAL); ! ippByCups.put("A0", MediaSizeName.ISO_A0); ippByCups.put("A1", MediaSizeName.ISO_A1); ippByCups.put("A2", MediaSizeName.ISO_A2); --- 67,77 ---- { ippByCups.put("Postcard", MediaSizeName.JAPANESE_POSTCARD); ippByCups.put("Statement", MediaSizeName.INVOICE); ! ippByCups.put("Letter", MediaSizeName.NA_LETTER); ippByCups.put("Executive", MediaSizeName.EXECUTIVE); ippByCups.put("Legal", MediaSizeName.NA_LEGAL); ! ippByCups.put("A0", MediaSizeName.ISO_A0); ippByCups.put("A1", MediaSizeName.ISO_A1); ippByCups.put("A2", MediaSizeName.ISO_A2); *************** public class CupsMediaMapping *** 83,89 **** ippByCups.put("A8", MediaSizeName.ISO_A8); ippByCups.put("A9", MediaSizeName.ISO_A9); ippByCups.put("A10", MediaSizeName.ISO_A10); ! ippByCups.put("B0", MediaSizeName.JIS_B0); ippByCups.put("B1", MediaSizeName.JIS_B1); ippByCups.put("B2", MediaSizeName.JIS_B2); --- 83,89 ---- ippByCups.put("A8", MediaSizeName.ISO_A8); ippByCups.put("A9", MediaSizeName.ISO_A9); ippByCups.put("A10", MediaSizeName.ISO_A10); ! ippByCups.put("B0", MediaSizeName.JIS_B0); ippByCups.put("B1", MediaSizeName.JIS_B1); ippByCups.put("B2", MediaSizeName.JIS_B2); *************** public class CupsMediaMapping *** 95,101 **** ippByCups.put("B8", MediaSizeName.JIS_B8); ippByCups.put("B9", MediaSizeName.JIS_B9); ippByCups.put("B10", MediaSizeName.JIS_B10); ! ippByCups.put("ISOB0", MediaSizeName.ISO_B0); ippByCups.put("ISOB1", MediaSizeName.ISO_B1); ippByCups.put("ISOB2", MediaSizeName.ISO_B2); --- 95,101 ---- ippByCups.put("B8", MediaSizeName.JIS_B8); ippByCups.put("B9", MediaSizeName.JIS_B9); ippByCups.put("B10", MediaSizeName.JIS_B10); ! ippByCups.put("ISOB0", MediaSizeName.ISO_B0); ippByCups.put("ISOB1", MediaSizeName.ISO_B1); ippByCups.put("ISOB2", MediaSizeName.ISO_B2); *************** public class CupsMediaMapping *** 118,124 **** ippByCups.put("EnvISOB8", MediaSizeName.ISO_B8); ippByCups.put("EnvISOB9", MediaSizeName.ISO_B9); ippByCups.put("EnvISOB10", MediaSizeName.ISO_B10); ! ippByCups.put("C0", MediaSizeName.ISO_C0); ippByCups.put("C1", MediaSizeName.ISO_C1); ippByCups.put("C2", MediaSizeName.ISO_C2); --- 118,124 ---- ippByCups.put("EnvISOB8", MediaSizeName.ISO_B8); ippByCups.put("EnvISOB9", MediaSizeName.ISO_B9); ippByCups.put("EnvISOB10", MediaSizeName.ISO_B10); ! ippByCups.put("C0", MediaSizeName.ISO_C0); ippByCups.put("C1", MediaSizeName.ISO_C1); ippByCups.put("C2", MediaSizeName.ISO_C2); *************** public class CupsMediaMapping *** 136,142 **** ippByCups.put("Env12", MediaSizeName.NA_NUMBER_12_ENVELOPE); ippByCups.put("Env14", MediaSizeName.NA_NUMBER_14_ENVELOPE); ippByCups.put("c8x10", MediaSizeName.NA_8X10); ! ippByCups.put("EnvDL", MediaSizeName.ISO_DESIGNATED_LONG); ippByCups.put("DL", MediaSizeName.ISO_DESIGNATED_LONG); ippByCups.put("EnvC0", MediaSizeName.ISO_C0); --- 136,142 ---- ippByCups.put("Env12", MediaSizeName.NA_NUMBER_12_ENVELOPE); ippByCups.put("Env14", MediaSizeName.NA_NUMBER_14_ENVELOPE); ippByCups.put("c8x10", MediaSizeName.NA_8X10); ! ippByCups.put("EnvDL", MediaSizeName.ISO_DESIGNATED_LONG); ippByCups.put("DL", MediaSizeName.ISO_DESIGNATED_LONG); ippByCups.put("EnvC0", MediaSizeName.ISO_C0); *************** public class CupsMediaMapping *** 145,156 **** ippByCups.put("EnvC3", MediaSizeName.ISO_C3); ippByCups.put("EnvC4", MediaSizeName.ISO_C4); ippByCups.put("EnvC5", MediaSizeName.ISO_C5); ! ippByCups.put("EnvC6", MediaSizeName.ISO_C6); } ! /** * Returns the IPP media name of the given cups name. ! * * @param cupsName the name in cups * @return The IPP name if a mapping is known, null otherwise. */ --- 145,156 ---- ippByCups.put("EnvC3", MediaSizeName.ISO_C3); ippByCups.put("EnvC4", MediaSizeName.ISO_C4); ippByCups.put("EnvC5", MediaSizeName.ISO_C5); ! ippByCups.put("EnvC6", MediaSizeName.ISO_C6); } ! /** * Returns the IPP media name of the given cups name. ! * * @param cupsName the name in cups * @return The IPP name if a mapping is known, null otherwise. */ *************** public class CupsMediaMapping *** 158,167 **** { return (String) ippByCups.get(cupsName); } ! /** * Returns the mapping map for iteration. ! * * @return The mapping map as unmodifiable map. */ public static final Map getMappingMap() --- 158,167 ---- { return (String) ippByCups.get(cupsName); } ! /** * Returns the mapping map for iteration. ! * * @return The mapping map as unmodifiable map. */ public static final Map getMappingMap() *************** public class CupsMediaMapping *** 169,175 **** return Collections.unmodifiableMap(ippByCups); } ! private CupsMediaMapping() { // not to be instantiated } --- 169,175 ---- return Collections.unmodifiableMap(ippByCups); } ! private CupsMediaMapping() { // not to be instantiated } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsPrintService.java gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsPrintService.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsPrintService.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsPrintService.java Tue Oct 12 15:55:12 2010 *************** import javax.print.DocFlavor; *** 48,56 **** import javax.print.attribute.AttributeSet; /** ! * Implementation of the PrintService/MultiDocPrintService * interface for Cups printers (supports Cups 1.1 and up) ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class CupsPrintService extends IppMultiDocPrintService --- 48,56 ---- import javax.print.attribute.AttributeSet; /** ! * Implementation of the PrintService/MultiDocPrintService * interface for Cups printers (supports Cups 1.1 and up) ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class CupsPrintService extends IppMultiDocPrintService *************** public final class CupsPrintService exte *** 58,83 **** /** * Creates a CupsPrintService object. ! * * @param uri the URI of the IPP printer. * @param username the user of this print service. * @param password the password of the user. ! * * @throws IppException if an error during connection occurs. */ public CupsPrintService(URI uri, String username, String password) throws IppException { super(uri, username, password); ! } ! /** * Overridden for CUPS specific handling of the media attribute. */ ! protected Object handleSupportedAttributeValuesResponse(IppResponse response, Class category) { ! // TODO Implement different behaviour of cups here - actually the Media // printing attribute stuff. For now just use IPP reference implementation. return super.handleSupportedAttributeValuesResponse(response, category); } --- 58,83 ---- /** * Creates a CupsPrintService object. ! * * @param uri the URI of the IPP printer. * @param username the user of this print service. * @param password the password of the user. ! * * @throws IppException if an error during connection occurs. */ public CupsPrintService(URI uri, String username, String password) throws IppException { super(uri, username, password); ! } ! /** * Overridden for CUPS specific handling of the media attribute. */ ! protected Object handleSupportedAttributeValuesResponse(IppResponse response, Class category) { ! // TODO Implement different behaviour of cups here - actually the Media // printing attribute stuff. For now just use IPP reference implementation. return super.handleSupportedAttributeValuesResponse(response, category); } *************** public final class CupsPrintService exte *** 89,95 **** { // TODO Implement media attribute behaviour for cups here //if (category.equals(Media.class) ! return super.getDefaultAttributeValue(category); } --- 89,95 ---- { // TODO Implement media attribute behaviour for cups here //if (category.equals(Media.class) ! return super.getDefaultAttributeValue(category); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsPrintServiceLookup.java gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsPrintServiceLookup.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsPrintServiceLookup.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsPrintServiceLookup.java Tue Oct 12 15:55:12 2010 *************** import javax.print.attribute.AttributeSe *** 51,62 **** /** * The platform default implementation based on CUPS. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class CupsPrintServiceLookup extends PrintServiceLookup ! { ! private CupsServer server; /** * Default constructor checking security access. --- 51,62 ---- /** * The platform default implementation based on CUPS. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class CupsPrintServiceLookup extends PrintServiceLookup ! { ! private CupsServer server; /** * Default constructor checking security access. *************** public class CupsPrintServiceLookup exte *** 67,80 **** SecurityManager sm = System.getSecurityManager(); if (sm != null) sm.checkPrintJobAccess(); ! // use the localhost cups server server = new CupsServer(null, null); } /** * This is the printer marked as default in CUPS. ! * * @return The default lookup service or * null if there is no default. */ --- 67,80 ---- SecurityManager sm = System.getSecurityManager(); if (sm != null) sm.checkPrintJobAccess(); ! // use the localhost cups server server = new CupsServer(null, null); } /** * This is the printer marked as default in CUPS. ! * * @return The default lookup service or * null if there is no default. */ *************** public class CupsPrintServiceLookup exte *** 83,103 **** try { return server.getDefaultPrinter(); ! } catch (IppException e) { // if discovery fails treat as if there is none return null; ! } } ! /** * All printers and printer classes of the CUPS server are checked. * If flavors or attributes are null the constraint is not used. ! * * @param flavors the document flavors which have to be supported. * @param attributes the attributes which have to be supported. ! * * @return The multidoc print services of the implementing lookup service * for the given parameters, or an array of length 0 if none is available. */ --- 83,103 ---- try { return server.getDefaultPrinter(); ! } catch (IppException e) { // if discovery fails treat as if there is none return null; ! } } ! /** * All printers and printer classes of the CUPS server are checked. * If flavors or attributes are null the constraint is not used. ! * * @param flavors the document flavors which have to be supported. * @param attributes the attributes which have to be supported. ! * * @return The multidoc print services of the implementing lookup service * for the given parameters, or an array of length 0 if none is available. */ *************** public class CupsPrintServiceLookup exte *** 105,153 **** AttributeSet attributes) { ArrayList result = new ArrayList(); ! PrintService[] services = getPrintServices(); ! for (int i=0; i < services.length; i++) { if (checkMultiDocPrintService(flavors, attributes, services[i])) ! result.add(services[i]); } ! return (MultiDocPrintService[]) result.toArray( new MultiDocPrintService[result.size()]); } /** * These are all printers and printer classes of the CUPS server. ! * ! * @return All known print services regardless of supported features, * or an array of length 0 if none is available. */ public PrintService[] getPrintServices() { ArrayList result = new ArrayList(); ! try { result.addAll(server.getAllPrinters()); result.addAll(server.getAllClasses()); } catch (IppException e) ! { // ignore as this method cannot throw exceptions // if print service discovery fails - bad luck } return (PrintService[]) result.toArray(new PrintService[result.size()]); } ! ! /** * All printers and printer classes of the CUPS server are checked. * If flavor or attributes are null the constraint is not used. ! * * @param flavor the document flavor which has to be supported. * @param attributes the attributes which have to be supported. ! * * @return The print services of the implementing lookup service * for the given parameters, or an array of length 0 if none is available. */ --- 105,153 ---- AttributeSet attributes) { ArrayList result = new ArrayList(); ! PrintService[] services = getPrintServices(); ! for (int i=0; i < services.length; i++) { if (checkMultiDocPrintService(flavors, attributes, services[i])) ! result.add(services[i]); } ! return (MultiDocPrintService[]) result.toArray( new MultiDocPrintService[result.size()]); } /** * These are all printers and printer classes of the CUPS server. ! * ! * @return All known print services regardless of supported features, * or an array of length 0 if none is available. */ public PrintService[] getPrintServices() { ArrayList result = new ArrayList(); ! try { result.addAll(server.getAllPrinters()); result.addAll(server.getAllClasses()); } catch (IppException e) ! { // ignore as this method cannot throw exceptions // if print service discovery fails - bad luck } return (PrintService[]) result.toArray(new PrintService[result.size()]); } ! ! /** * All printers and printer classes of the CUPS server are checked. * If flavor or attributes are null the constraint is not used. ! * * @param flavor the document flavor which has to be supported. * @param attributes the attributes which have to be supported. ! * * @return The print services of the implementing lookup service * for the given parameters, or an array of length 0 if none is available. */ *************** public class CupsPrintServiceLookup exte *** 156,180 **** { ArrayList result = new ArrayList(); PrintService[] services = getPrintServices(); ! for (int i=0; i < services.length; i++) { if (checkPrintService(flavor, attributes, services[i])) result.add(services[i]); } ! return (PrintService[]) result.toArray(new PrintService[result.size()]); } ! /** * Checks the given print service - own method so it can be used also * to check application registered print services from PrintServiceLookup. ! * * @param flavor the document flavor which has to be supported. * @param attributes the attributes which have to be supported. * @param service the service to check ! * ! * @return true if all constraints match, false * otherwise. */ public boolean checkPrintService(DocFlavor flavor, AttributeSet attributes, --- 156,180 ---- { ArrayList result = new ArrayList(); PrintService[] services = getPrintServices(); ! for (int i=0; i < services.length; i++) { if (checkPrintService(flavor, attributes, services[i])) result.add(services[i]); } ! return (PrintService[]) result.toArray(new PrintService[result.size()]); } ! /** * Checks the given print service - own method so it can be used also * to check application registered print services from PrintServiceLookup. ! * * @param flavor the document flavor which has to be supported. * @param attributes the attributes which have to be supported. * @param service the service to check ! * ! * @return true if all constraints match, false * otherwise. */ public boolean checkPrintService(DocFlavor flavor, AttributeSet attributes, *************** public class CupsPrintServiceLookup exte *** 185,191 **** { if (attributes == null || attributes.size() == 0) return allAttributesSupported; ! Attribute[] atts = attributes.toArray(); for (int i = 0; i < atts.length; i++) { --- 185,191 ---- { if (attributes == null || attributes.size() == 0) return allAttributesSupported; ! Attribute[] atts = attributes.toArray(); for (int i = 0; i < atts.length; i++) { *************** public class CupsPrintServiceLookup exte *** 197,225 **** } return allAttributesSupported; } ! return false; } ! /** * Checks the given print service - own method so it can be used also * to check application registered print services from PrintServiceLookup. ! * * @param flavors the document flavors which have to be supported. * @param attributes the attributes which have to be supported. * @param service the service to check ! * ! * @return true if all constraints match, false * otherwise. */ ! public boolean checkMultiDocPrintService(DocFlavor[] flavors, AttributeSet attributes, PrintService service) ! { if (service instanceof MultiDocPrintService) ! { boolean allFlavorsSupported = true; boolean allAttributesSupported = true; ! if (flavors == null || flavors.length != 0) allFlavorsSupported = true; else --- 197,225 ---- } return allAttributesSupported; } ! return false; } ! /** * Checks the given print service - own method so it can be used also * to check application registered print services from PrintServiceLookup. ! * * @param flavors the document flavors which have to be supported. * @param attributes the attributes which have to be supported. * @param service the service to check ! * ! * @return true if all constraints match, false * otherwise. */ ! public boolean checkMultiDocPrintService(DocFlavor[] flavors, AttributeSet attributes, PrintService service) ! { if (service instanceof MultiDocPrintService) ! { boolean allFlavorsSupported = true; boolean allAttributesSupported = true; ! if (flavors == null || flavors.length != 0) allFlavorsSupported = true; else *************** public class CupsPrintServiceLookup exte *** 233,239 **** } } } ! if (attributes == null || attributes.size() == 0) allAttributesSupported = true; else --- 233,239 ---- } } } ! if (attributes == null || attributes.size() == 0) allAttributesSupported = true; else *************** public class CupsPrintServiceLookup exte *** 249,259 **** } } } ! if (allAttributesSupported && allFlavorsSupported) return true; ! } ! return false; } --- 249,259 ---- } } } ! if (allAttributesSupported && allFlavorsSupported) return true; ! } ! return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsServer.java gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsServer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/CupsServer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/CupsServer.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* CupsServer.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CupsServer.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Set; *** 58,82 **** * compatible server. It mainly consists of its URI and optional * user and password combination if access is restricted. *

          ! * It provides methods for retrival of valid CUPS printer uris * that are used to construct IppPrintService objects. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class CupsServer { ! /** * The URI of the CUPS server. * This is something like: http://localhost:631 */ private transient URI uri; ! /** * The optional username. */ private transient String username; ! /** * The optional password for the user. */ --- 58,82 ---- * compatible server. It mainly consists of its URI and optional * user and password combination if access is restricted. *

          ! * It provides methods for retrival of valid CUPS printer uris * that are used to construct IppPrintService objects. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class CupsServer { ! /** * The URI of the CUPS server. * This is something like: http://localhost:631 */ private transient URI uri; ! /** * The optional username. */ private transient String username; ! /** * The optional password for the user. */ *************** public class CupsServer *** 84,94 **** /** * Creates a CupsServer object which ! * tries to connect to a cups server. * * If gnu.javax.print.server is explicitly set, then * that hostname will be used. Otherwise it will default to localhost. ! * * @param username the username * @param password the password for the username. */ --- 84,94 ---- /** * Creates a CupsServer object which ! * tries to connect to a cups server. * * If gnu.javax.print.server is explicitly set, then * that hostname will be used. Otherwise it will default to localhost. ! * * @param username the username * @param password the password for the username. */ *************** public class CupsServer *** 100,112 **** this.uri = null; try { ! String serv = System.getProperty("gnu.javax.print.server"); ! if( serv != null ) ! this.uri = new URI("http://"+serv+":631"); } catch(URISyntaxException use) { ! throw new RuntimeException("gnu.javax.print.CupsServer value is not a valid hostname."); } catch(SecurityException se) { --- 100,112 ---- this.uri = null; try { ! String serv = System.getProperty("gnu.javax.print.server"); ! if( serv != null ) ! this.uri = new URI("http://"+serv+":631"); } catch(URISyntaxException use) { ! throw new RuntimeException("gnu.javax.print.CupsServer value is not a valid hostname."); } catch(SecurityException se) { *************** public class CupsServer *** 114,133 **** try { ! if( this.uri == null ) ! this.uri = new URI("http://localhost:631"); } catch (URISyntaxException e) { // does not happen } } ! /** * Creates a CupsServer object which * tries to connect to a running cups server on the * given URI. ! * * @param uri the URI of the server. * @param username the username * @param password the password for the username. --- 114,133 ---- try { ! if( this.uri == null ) ! this.uri = new URI("http://localhost:631"); } catch (URISyntaxException e) { // does not happen } } ! /** * Creates a CupsServer object which * tries to connect to a running cups server on the * given URI. ! * * @param uri the URI of the server. * @param username the username * @param password the password for the username. *************** public class CupsServer *** 138,212 **** this.username = username; this.password = password; } ! /** * Requests the default printer from this CUPS server. * This is always returned as IppPrintService. ! * * @return The default printer. * @throws IppException if problems during request/response processing occur. */ public IppPrintService getDefaultPrinter() throws IppException ! { IppResponse response = null; ! try { ! IppRequest request = new IppRequest(uri, username, password); ! request.setOperationID((short)CupsIppOperation.CUPS_GET_DEFAULT); ! request.setOperationAttributeDefaults(); ! ! RequestedAttributes requestedAttrs = new RequestedAttributes("printer-uri-supported"); request.addOperationAttribute(requestedAttrs); ! response = request.send(); ! } catch (IOException e) { throw new IppException("IOException in IPP request/response.", e); ! } ! Map printerAttributes = (Map) response.getPrinterAttributes().get(0); Set uris = (Set) printerAttributes.get(PrinterUriSupported.class); PrinterUriSupported uri = (PrinterUriSupported) uris.toArray()[0]; ! ! IppPrintService service = new CupsPrintService(uri.getURI(), username, password); ! return service; } ! /** * Requests all printers from this CUPS server. ! * * @return The list of available printers. * @throws IppException if problems during request/response processing occur. */ public List getAllPrinters() throws IppException ! { IppResponse response = null; ! try { ! IppRequest request = new IppRequest(uri, username, password); ! request.setOperationID((short)CupsIppOperation.CUPS_GET_PRINTERS); request.setOperationAttributeDefaults(); ! ! RequestedAttributes requestedAttrs = new RequestedAttributes("printer-uri-supported"); request.addOperationAttribute(requestedAttrs); ! response = request.send(); ! } catch (IOException e) { throw new IppException("IOException in IPP request/response.", e); ! } List prAttr = response.getPrinterAttributes(); List services = new ArrayList(); ! for (int i=0; i < prAttr.size(); i++) { Map printerAttributes = (Map) prAttr.get(i); --- 138,212 ---- this.username = username; this.password = password; } ! /** * Requests the default printer from this CUPS server. * This is always returned as IppPrintService. ! * * @return The default printer. * @throws IppException if problems during request/response processing occur. */ public IppPrintService getDefaultPrinter() throws IppException ! { IppResponse response = null; ! try { ! IppRequest request = new IppRequest(uri, username, password); ! request.setOperationID((short)CupsIppOperation.CUPS_GET_DEFAULT); ! request.setOperationAttributeDefaults(); ! ! RequestedAttributes requestedAttrs = new RequestedAttributes("printer-uri-supported"); request.addOperationAttribute(requestedAttrs); ! response = request.send(); ! } catch (IOException e) { throw new IppException("IOException in IPP request/response.", e); ! } ! Map printerAttributes = (Map) response.getPrinterAttributes().get(0); Set uris = (Set) printerAttributes.get(PrinterUriSupported.class); PrinterUriSupported uri = (PrinterUriSupported) uris.toArray()[0]; ! ! IppPrintService service = new CupsPrintService(uri.getURI(), username, password); ! return service; } ! /** * Requests all printers from this CUPS server. ! * * @return The list of available printers. * @throws IppException if problems during request/response processing occur. */ public List getAllPrinters() throws IppException ! { IppResponse response = null; ! try { ! IppRequest request = new IppRequest(uri, username, password); ! request.setOperationID((short)CupsIppOperation.CUPS_GET_PRINTERS); request.setOperationAttributeDefaults(); ! ! RequestedAttributes requestedAttrs = new RequestedAttributes("printer-uri-supported"); request.addOperationAttribute(requestedAttrs); ! response = request.send(); ! } catch (IOException e) { throw new IppException("IOException in IPP request/response.", e); ! } List prAttr = response.getPrinterAttributes(); List services = new ArrayList(); ! for (int i=0; i < prAttr.size(); i++) { Map printerAttributes = (Map) prAttr.get(i); *************** public class CupsServer *** 224,273 **** // do nothing, we only catch the IppException which could be // thrown during instantiation as single printers may be discovered // correctly but not usable due to other security restrictions ! } ! } ! return services; } ! /** * Requests all classes from this CUPS server. Classes in cups are ! * collections of printers. This means jobs directed to a class * are forwarded to the first available printer of the collection. ! * * @return The list of available classes. * @throws IppException if problems during request/response processing occur. */ public List getAllClasses() throws IppException ! { IppResponse response = null; ! try { ! IppRequest request = new IppRequest(uri, username, password); ! request.setOperationID((short)CupsIppOperation.CUPS_GET_CLASSES); request.setOperationAttributeDefaults(); ! ! RequestedAttributes requestedAttrs = new RequestedAttributes("printer-uri-supported"); request.addOperationAttribute(requestedAttrs); ! response = request.send(); ! } catch (IOException e) { throw new IppException("IOException in IPP request/response.", e); ! } ! List prAttr = response.getPrinterAttributes(); ! List services = new ArrayList(); ! for (int i=0; i < prAttr.size(); i++) { Map printerAttributes = (Map) prAttr.get(i); Set uris = (Set) printerAttributes.get(PrinterUriSupported.class); PrinterUriSupported uri = (PrinterUriSupported) uris.toArray()[0]; ! try { CupsPrintService cups = new CupsPrintService(uri.getURI(), --- 224,273 ---- // do nothing, we only catch the IppException which could be // thrown during instantiation as single printers may be discovered // correctly but not usable due to other security restrictions ! } ! } ! return services; } ! /** * Requests all classes from this CUPS server. Classes in cups are ! * collections of printers. This means jobs directed to a class * are forwarded to the first available printer of the collection. ! * * @return The list of available classes. * @throws IppException if problems during request/response processing occur. */ public List getAllClasses() throws IppException ! { IppResponse response = null; ! try { ! IppRequest request = new IppRequest(uri, username, password); ! request.setOperationID((short)CupsIppOperation.CUPS_GET_CLASSES); request.setOperationAttributeDefaults(); ! ! RequestedAttributes requestedAttrs = new RequestedAttributes("printer-uri-supported"); request.addOperationAttribute(requestedAttrs); ! response = request.send(); ! } catch (IOException e) { throw new IppException("IOException in IPP request/response.", e); ! } ! List prAttr = response.getPrinterAttributes(); ! List services = new ArrayList(); ! for (int i=0; i < prAttr.size(); i++) { Map printerAttributes = (Map) prAttr.get(i); Set uris = (Set) printerAttributes.get(PrinterUriSupported.class); PrinterUriSupported uri = (PrinterUriSupported) uris.toArray()[0]; ! try { CupsPrintService cups = new CupsPrintService(uri.getURI(), *************** public class CupsServer *** 279,287 **** // do nothing, we only catch the IppException which could be // thrown during instantiation as single printers may be discovered // correctly but not usable due to other security restrictions ! } ! } ! return services; } --- 279,287 ---- // do nothing, we only catch the IppException which could be // thrown during instantiation as single printers may be discovered // correctly but not usable due to other security restrictions ! } ! } ! return services; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/PrintAttributeException.java gcc-4.6.0/libjava/classpath/gnu/javax/print/PrintAttributeException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/PrintAttributeException.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/PrintAttributeException.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* PrintAttributeException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintAttributeException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.Attribute; *** 46,70 **** * A PrintException further refining the exception * cause by providing an implementation of the print exception * interface AttributeException. ! * * @see javax.print.PrintException * @see javax.print.AttributeException ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrintAttributeException extends PrintException implements AttributeException { private Class[] categories; private Attribute[] values; ! /** * Constructs a PrintAttributeException * with the given unsupported attributes and/or values. ! * ! * @param unsupportedAttributes the unsupported categories, * may be null. ! * @param unsupportedValues the unsupported attribute values, * may be null. */ public PrintAttributeException(Class[] unsupportedAttributes, --- 46,70 ---- * A PrintException further refining the exception * cause by providing an implementation of the print exception * interface AttributeException. ! * * @see javax.print.PrintException * @see javax.print.AttributeException ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrintAttributeException extends PrintException implements AttributeException { private Class[] categories; private Attribute[] values; ! /** * Constructs a PrintAttributeException * with the given unsupported attributes and/or values. ! * ! * @param unsupportedAttributes the unsupported categories, * may be null. ! * @param unsupportedValues the unsupported attribute values, * may be null. */ public PrintAttributeException(Class[] unsupportedAttributes, *************** public final class PrintAttributeExcepti *** 78,88 **** /** * Constructs a PrintAttributeException * with the given unsupported attributes and/or values. ! * * @param e chained exception ! * @param unsupportedAttributes the unsupported categories, * may be null. ! * @param unsupportedValues the unsupported attribute values, * may be null. */ public PrintAttributeException(Exception e, --- 78,88 ---- /** * Constructs a PrintAttributeException * with the given unsupported attributes and/or values. ! * * @param e chained exception ! * @param unsupportedAttributes the unsupported categories, * may be null. ! * @param unsupportedValues the unsupported attribute values, * may be null. */ public PrintAttributeException(Exception e, *************** public final class PrintAttributeExcepti *** 96,106 **** /** * Constructs a PrintAttributeException * with the given unsupported attributes and/or values. ! * * @param s detailed message ! * @param unsupportedAttributes the unsupported categories, * may be null. ! * @param unsupportedValues the unsupported attribute values, * may be null. */ public PrintAttributeException(String s, --- 96,106 ---- /** * Constructs a PrintAttributeException * with the given unsupported attributes and/or values. ! * * @param s detailed message ! * @param unsupportedAttributes the unsupported categories, * may be null. ! * @param unsupportedValues the unsupported attribute values, * may be null. */ public PrintAttributeException(String s, *************** public final class PrintAttributeExcepti *** 114,125 **** /** * Constructs a PrintAttributeException * with the given unsupported attributes and/or values. ! * * @param s detailed message * @param e chained exception ! * @param unsupportedAttributes the unsupported categories, * may be null. ! * @param unsupportedValues the unsupported attribute values, * may be null. */ public PrintAttributeException(String s, Exception e, --- 114,125 ---- /** * Constructs a PrintAttributeException * with the given unsupported attributes and/or values. ! * * @param s detailed message * @param e chained exception ! * @param unsupportedAttributes the unsupported categories, * may be null. ! * @param unsupportedValues the unsupported attribute values, * may be null. */ public PrintAttributeException(String s, Exception e, diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/PrintFlavorException.java gcc-4.6.0/libjava/classpath/gnu/javax/print/PrintFlavorException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/PrintFlavorException.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/PrintFlavorException.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* PrintFlavorException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintFlavorException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.PrintException; *** 46,66 **** * A PrintException further refining the exception * cause by providing an implementation of the print exception * interface FlavorException. ! * * @see javax.print.PrintException * @see javax.print.FlavorException ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class PrintFlavorException extends PrintException implements FlavorException { private DocFlavor[] flavors; ! /** * Constructs a PrintFlavorException * with the given unsupported doc flavor array ! * * @param unsupportedFlavors the unsupported document flavors. */ public PrintFlavorException(DocFlavor[] unsupportedFlavors) --- 46,66 ---- * A PrintException further refining the exception * cause by providing an implementation of the print exception * interface FlavorException. ! * * @see javax.print.PrintException * @see javax.print.FlavorException ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class PrintFlavorException extends PrintException implements FlavorException { private DocFlavor[] flavors; ! /** * Constructs a PrintFlavorException * with the given unsupported doc flavor array ! * * @param unsupportedFlavors the unsupported document flavors. */ public PrintFlavorException(DocFlavor[] unsupportedFlavors) *************** public class PrintFlavorException extend *** 72,78 **** /** * Constructs a PrintFlavorException * with the given unsupported doc flavor array ! * * @param e chained exception * @param unsupportedFlavors the unsupported document flavors. */ --- 72,78 ---- /** * Constructs a PrintFlavorException * with the given unsupported doc flavor array ! * * @param e chained exception * @param unsupportedFlavors the unsupported document flavors. */ *************** public class PrintFlavorException extend *** 85,91 **** /** * Constructs a PrintFlavorException * with the given unsupported doc flavor array ! * * @param s detailed message * @param unsupportedFlavors the unsupported document flavors. */ --- 85,91 ---- /** * Constructs a PrintFlavorException * with the given unsupported doc flavor array ! * * @param s detailed message * @param unsupportedFlavors the unsupported document flavors. */ *************** public class PrintFlavorException extend *** 98,109 **** /** * Constructs a PrintFlavorException * with the given unsupported doc flavor array ! * * @param s detailed message * @param e chained exception * @param unsupportedFlavors the unsupported document flavors. */ ! public PrintFlavorException(String s, Exception e, DocFlavor[] unsupportedFlavors) { super(s, e); --- 98,109 ---- /** * Constructs a PrintFlavorException * with the given unsupported doc flavor array ! * * @param s detailed message * @param e chained exception * @param unsupportedFlavors the unsupported document flavors. */ ! public PrintFlavorException(String s, Exception e, DocFlavor[] unsupportedFlavors) { super(s, e); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/PrintUriException.java gcc-4.6.0/libjava/classpath/gnu/javax/print/PrintUriException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/PrintUriException.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/PrintUriException.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* PrintUriException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintUriException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.URIException; *** 47,59 **** * A PrintException further refining the exception * cause by providing an implementation of the print exception * interface URIException. ! * * @see javax.print.PrintException * @see javax.print.URIException ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrintUriException extends PrintException implements URIException { private int reason; --- 47,59 ---- * A PrintException further refining the exception * cause by providing an implementation of the print exception * interface URIException. ! * * @see javax.print.PrintException * @see javax.print.URIException ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrintUriException extends PrintException implements URIException { private int reason; *************** public final class PrintUriException ext *** 65,84 **** * * @param reason the reason for the exception. * @param unsupportedUri the URI which is unsupported. ! * * @see URIException */ public PrintUriException(int reason, URI unsupportedUri) { super(); this.reason = reason; ! uri = unsupportedUri; } /** * Constructs a PrintUriException with the given reason * and unsupported URI instance. ! * * @param e chained exception * @param reason the reason for the exception. * @param unsupportedUri the URI which is unsupported. --- 65,84 ---- * * @param reason the reason for the exception. * @param unsupportedUri the URI which is unsupported. ! * * @see URIException */ public PrintUriException(int reason, URI unsupportedUri) { super(); this.reason = reason; ! uri = unsupportedUri; } /** * Constructs a PrintUriException with the given reason * and unsupported URI instance. ! * * @param e chained exception * @param reason the reason for the exception. * @param unsupportedUri the URI which is unsupported. *************** public final class PrintUriException ext *** 87,99 **** { super(e); this.reason = reason; ! uri = unsupportedUri; } /** * Constructs a PrintUriException with the given reason * and unsupported URI instance. ! * * @param s detailed message * @param reason the reason for the exception. * @param unsupportedUri the URI which is unsupported. --- 87,99 ---- { super(e); this.reason = reason; ! uri = unsupportedUri; } /** * Constructs a PrintUriException with the given reason * and unsupported URI instance. ! * * @param s detailed message * @param reason the reason for the exception. * @param unsupportedUri the URI which is unsupported. *************** public final class PrintUriException ext *** 102,125 **** { super(s); this.reason = reason; ! uri = unsupportedUri; } /** * Constructs a PrintUriException with the given reason * and unsupported URI instance. ! * * @param s detailed message * @param e chained exception * @param reason the reason for the exception. * @param unsupportedUri the URI which is unsupported. */ ! public PrintUriException(String s, Exception e, int reason, URI unsupportedUri) { super(s, e); this.reason = reason; ! uri = unsupportedUri; } /** --- 102,125 ---- { super(s); this.reason = reason; ! uri = unsupportedUri; } /** * Constructs a PrintUriException with the given reason * and unsupported URI instance. ! * * @param s detailed message * @param e chained exception * @param reason the reason for the exception. * @param unsupportedUri the URI which is unsupported. */ ! public PrintUriException(String s, Exception e, int reason, URI unsupportedUri) { super(s, e); this.reason = reason; ! uri = unsupportedUri; } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/PrinterDialog.java gcc-4.6.0/libjava/classpath/gnu/javax/print/PrinterDialog.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/PrinterDialog.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/PrinterDialog.java Tue Oct 12 15:55:12 2010 *************** import javax.swing.event.ChangeListener; *** 98,109 **** * Implementation of the PrinterDialog used by * {@link javax.print.ServiceUI} for visual selection * of print services and its attributes. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrinterDialog extends JDialog implements ActionListener { ! /** * The General Panel used in the printing dialog. * @author Wolfgang Baer (WBaer@gmx.de) --- 98,109 ---- * Implementation of the PrinterDialog used by * {@link javax.print.ServiceUI} for visual selection * of print services and its attributes. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrinterDialog extends JDialog implements ActionListener { ! /** * The General Panel used in the printing dialog. * @author Wolfgang Baer (WBaer@gmx.de) *************** public final class PrinterDialog extends *** 114,170 **** * Handles the copies attribute. * @author Wolfgang Baer (WBaer@gmx.de) */ ! final class CopiesAndSorted extends JPanel implements ChangeListener, ActionListener ! { ! private JCheckBox sort; private JSpinner copies; private JLabel copies_lb; private SpinnerNumberModel copiesModel; ! CopiesAndSorted() { ! copies_lb = new JLabel(getLocalizedString("lb.copies")); sort = new JCheckBox(getLocalizedString("cb.sort")); sort.addActionListener(this); ! copiesModel = new SpinnerNumberModel(1, 1, 9999, 1); copies = new JSpinner(copiesModel); copies.addChangeListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.insets = new Insets(5, 5, 5, 5); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.copies"))); ! c.anchor = GridBagConstraints.WEST; ! c.gridx = 0; c.gridy = 0; add(copies_lb, c); ! c.gridx = 1; c.gridy = 0; add(copies, c); ! c.gridx = 0; c.gridy = 1; add(sort, c); } ! // copies jspinner state public void stateChanged(ChangeEvent event) { int value = ((Integer) copies.getValue()).intValue(); atts.add(new Copies(value)); ! if (value > 1 && categorySupported(SheetCollate.class)) sort.setEnabled(true); else ! sort.setEnabled(false); } // sorted checkbox state --- 114,170 ---- * Handles the copies attribute. * @author Wolfgang Baer (WBaer@gmx.de) */ ! final class CopiesAndSorted extends JPanel implements ChangeListener, ActionListener ! { ! private JCheckBox sort; private JSpinner copies; private JLabel copies_lb; private SpinnerNumberModel copiesModel; ! CopiesAndSorted() { ! copies_lb = new JLabel(getLocalizedString("lb.copies")); sort = new JCheckBox(getLocalizedString("cb.sort")); sort.addActionListener(this); ! copiesModel = new SpinnerNumberModel(1, 1, 9999, 1); copies = new JSpinner(copiesModel); copies.addChangeListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.insets = new Insets(5, 5, 5, 5); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.copies"))); ! c.anchor = GridBagConstraints.WEST; ! c.gridx = 0; c.gridy = 0; add(copies_lb, c); ! c.gridx = 1; c.gridy = 0; add(copies, c); ! c.gridx = 0; c.gridy = 1; add(sort, c); } ! // copies jspinner state public void stateChanged(ChangeEvent event) { int value = ((Integer) copies.getValue()).intValue(); atts.add(new Copies(value)); ! if (value > 1 && categorySupported(SheetCollate.class)) sort.setEnabled(true); else ! sort.setEnabled(false); } // sorted checkbox state *************** public final class PrinterDialog extends *** 180,209 **** * selected attributes are supported. */ void updateForSelectedService() ! { if (categorySupported(Copies.class)) { copies.setEnabled(true); copies_lb.setEnabled(true); ! Copies copies = (Copies) attribute(Copies.class); if (copies != null) copiesModel.setValue(new Integer(copies.getValue())); ! ! if (((Integer)copiesModel.getValue()).intValue() > 1 && categorySupported(SheetCollate.class)) { sort.setEnabled(true); Attribute collate = attribute(SheetCollate.class); if (collate != null && collate.equals(SheetCollate.COLLATED)) ! sort.setSelected(true); } else sort.setEnabled(false); } else { ! copies.setEnabled(false); copies_lb.setEnabled(false); } } --- 180,209 ---- * selected attributes are supported. */ void updateForSelectedService() ! { if (categorySupported(Copies.class)) { copies.setEnabled(true); copies_lb.setEnabled(true); ! Copies copies = (Copies) attribute(Copies.class); if (copies != null) copiesModel.setValue(new Integer(copies.getValue())); ! ! if (((Integer)copiesModel.getValue()).intValue() > 1 && categorySupported(SheetCollate.class)) { sort.setEnabled(true); Attribute collate = attribute(SheetCollate.class); if (collate != null && collate.equals(SheetCollate.COLLATED)) ! sort.setSelected(true); } else sort.setEnabled(false); } else { ! copies.setEnabled(false); copies_lb.setEnabled(false); } } *************** public final class PrinterDialog extends *** 213,230 **** * Handles the print ranges attribute. * @author Wolfgang Baer (WBaer@gmx.de) */ ! final class PrintRange extends JPanel implements ActionListener, FocusListener ! { ! private JLabel to; ! private JRadioButton all_rb, pages_rb; private JTextField from_tf, to_tf; ! PrintRange() ! { to = new JLabel(getLocalizedString("lb.to")); to.setEnabled(false); ! all_rb = new JRadioButton(getLocalizedString("rbt.all")); all_rb.setSelected(true); all_rb.setActionCommand("ALL"); --- 213,230 ---- * Handles the print ranges attribute. * @author Wolfgang Baer (WBaer@gmx.de) */ ! final class PrintRange extends JPanel implements ActionListener, FocusListener ! { ! private JLabel to; ! private JRadioButton all_rb, pages_rb; private JTextField from_tf, to_tf; ! PrintRange() ! { to = new JLabel(getLocalizedString("lb.to")); to.setEnabled(false); ! all_rb = new JRadioButton(getLocalizedString("rbt.all")); all_rb.setSelected(true); all_rb.setActionCommand("ALL"); *************** public final class PrinterDialog extends *** 233,318 **** pages_rb.setActionCommand("PAGES"); pages_rb.setEnabled(false); pages_rb.addActionListener(this); ! ButtonGroup group = new ButtonGroup(); group.add(all_rb); group.add(pages_rb); ! from_tf = new JTextField("1", 4); from_tf.setEnabled(false); from_tf.addFocusListener(this); to_tf = new JTextField("1", 4); to_tf.setEnabled(false); to_tf.addFocusListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.printrange"))); ! c.insets = new Insets(15, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(all_rb, c); ! c.insets = new Insets(5, 5, 15, 5); c.gridx = 0; c.gridy = 1; add(pages_rb, c); ! c.gridx = 1; c.gridy = 1; add(from_tf, c); ! c.gridx = 2; c.gridy = 1; add(to, c); ! c.insets = new Insets(5, 5, 15, 15); c.gridx = 3; c.gridy = 1; add(to_tf, c); } ! // focus pagerange public void focusGained(FocusEvent event) { updatePageRanges(); } ! public void focusLost(FocusEvent event) { updatePageRanges(); } ! // updates the range after user changed it private void updatePageRanges() { int lower = Integer.parseInt(from_tf.getText()); int upper = Integer.parseInt(to_tf.getText()); ! if (lower > upper) { upper = lower; ! to_tf.setText("" + lower); } ! PageRanges range = new PageRanges(lower, upper); atts.add(range); } // page range change public void actionPerformed(ActionEvent e) ! { // if ALL is selected we must use a full-range object if (e.getActionCommand().equals("ALL")) { from_tf.setEnabled(false); to.setEnabled(false); to_tf.setEnabled(false); ! atts.add(new PageRanges(1, Integer.MAX_VALUE)); } else --- 233,318 ---- pages_rb.setActionCommand("PAGES"); pages_rb.setEnabled(false); pages_rb.addActionListener(this); ! ButtonGroup group = new ButtonGroup(); group.add(all_rb); group.add(pages_rb); ! from_tf = new JTextField("1", 4); from_tf.setEnabled(false); from_tf.addFocusListener(this); to_tf = new JTextField("1", 4); to_tf.setEnabled(false); to_tf.addFocusListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.printrange"))); ! c.insets = new Insets(15, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(all_rb, c); ! c.insets = new Insets(5, 5, 15, 5); c.gridx = 0; c.gridy = 1; add(pages_rb, c); ! c.gridx = 1; c.gridy = 1; add(from_tf, c); ! c.gridx = 2; c.gridy = 1; add(to, c); ! c.insets = new Insets(5, 5, 15, 15); c.gridx = 3; c.gridy = 1; add(to_tf, c); } ! // focus pagerange public void focusGained(FocusEvent event) { updatePageRanges(); } ! public void focusLost(FocusEvent event) { updatePageRanges(); } ! // updates the range after user changed it private void updatePageRanges() { int lower = Integer.parseInt(from_tf.getText()); int upper = Integer.parseInt(to_tf.getText()); ! if (lower > upper) { upper = lower; ! to_tf.setText("" + lower); } ! PageRanges range = new PageRanges(lower, upper); atts.add(range); } // page range change public void actionPerformed(ActionEvent e) ! { // if ALL is selected we must use a full-range object if (e.getActionCommand().equals("ALL")) { from_tf.setEnabled(false); to.setEnabled(false); to_tf.setEnabled(false); ! atts.add(new PageRanges(1, Integer.MAX_VALUE)); } else *************** public final class PrinterDialog extends *** 321,329 **** to.setEnabled(true); to_tf.setEnabled(true); all_rb.setSelected(false); ! } } ! /** * Called to update for new selected * print service. Tests if currently --- 321,329 ---- to.setEnabled(true); to_tf.setEnabled(true); all_rb.setSelected(false); ! } } ! /** * Called to update for new selected * print service. Tests if currently *************** public final class PrinterDialog extends *** 339,350 **** { from_tf.setEnabled(true); to.setEnabled(true); ! to_tf.setEnabled(true); all_rb.setSelected(false); pages_rb.setSelected(true); ! int[][] members = range.getMembers(); ! // Although passed in attributes may contain more than one // range we only take the first one from_tf.setText("" + members[0][0]); to_tf.setText("" + members[0][1]); --- 339,350 ---- { from_tf.setEnabled(true); to.setEnabled(true); ! to_tf.setEnabled(true); all_rb.setSelected(false); pages_rb.setSelected(true); ! int[][] members = range.getMembers(); ! // Although passed in attributes may contain more than one // range we only take the first one from_tf.setText("" + members[0][0]); to_tf.setText("" + members[0][1]); *************** public final class PrinterDialog extends *** 365,379 **** * and its location and description attributes. * @author Wolfgang Baer (WBaer@gmx.de) */ ! final class PrintServices extends JPanel implements ActionListener ! { private JLabel name, status, typ, info; ! private JLabel statusValue, typValue, infoValue; ! private JButton attributes; ! private JComboBox services_cob; private JCheckBox fileRedirection_cb; ! PrintServices() { name = new JLabel(getLocalizedString("lb.name")); --- 365,379 ---- * and its location and description attributes. * @author Wolfgang Baer (WBaer@gmx.de) */ ! final class PrintServices extends JPanel implements ActionListener ! { private JLabel name, status, typ, info; ! private JLabel statusValue, typValue, infoValue; ! private JButton attributes; ! private JComboBox services_cob; private JCheckBox fileRedirection_cb; ! PrintServices() { name = new JLabel(getLocalizedString("lb.name")); *************** public final class PrinterDialog extends *** 383,461 **** typValue = new JLabel(); infoValue = new JLabel(); statusValue = new JLabel(); ! attributes = new JButton(getLocalizedString("bt.attributes")); attributes.setEnabled(false); attributes.setActionCommand("ATTRIBUTES"); attributes.addActionListener(this); ! services_cob = new JComboBox(getPrintServices()); services_cob.setActionCommand("SERVICE"); services_cob.addActionListener(this); ! fileRedirection_cb = new JCheckBox(getLocalizedString("cb.output")); fileRedirection_cb.setEnabled(false); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.printservice"))); ! c.insets = new Insets(5, 5, 5, 5); c.anchor = GridBagConstraints.LINE_END; c.gridx = 0; c.gridy = 0; add(name, c); ! c.gridx = 0; c.gridy = 1; add(status, c); ! c.gridx = 0; c.gridy = 2; add(typ, c); ! c.gridx = 0; c.gridy = 3; add(info, c); ! c.gridx = 2; c.gridy = 3; c.weightx = 1; add(fileRedirection_cb, c); ! c.anchor = GridBagConstraints.LINE_START; c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; c.gridy = 0; c.weightx = 1.5; add(services_cob, c); ! c.gridx = 1; c.gridy = 1; c.gridwidth = 2; c.weightx = 1; add(statusValue, c); ! c.gridx = 1; c.gridy = 2; c.gridwidth = 2; c.weightx = 1; add(typValue, c); ! c.gridx = 1; c.gridy = 3; c.gridwidth = 2; c.weightx = 1; add(infoValue, c); ! c.gridx = 2; c.gridy = 0; c.weightx = 1.5; add(attributes, c); } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("SERVICE")) --- 383,461 ---- typValue = new JLabel(); infoValue = new JLabel(); statusValue = new JLabel(); ! attributes = new JButton(getLocalizedString("bt.attributes")); attributes.setEnabled(false); attributes.setActionCommand("ATTRIBUTES"); attributes.addActionListener(this); ! services_cob = new JComboBox(getPrintServices()); services_cob.setActionCommand("SERVICE"); services_cob.addActionListener(this); ! fileRedirection_cb = new JCheckBox(getLocalizedString("cb.output")); fileRedirection_cb.setEnabled(false); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.printservice"))); ! c.insets = new Insets(5, 5, 5, 5); c.anchor = GridBagConstraints.LINE_END; c.gridx = 0; c.gridy = 0; add(name, c); ! c.gridx = 0; c.gridy = 1; add(status, c); ! c.gridx = 0; c.gridy = 2; add(typ, c); ! c.gridx = 0; c.gridy = 3; add(info, c); ! c.gridx = 2; c.gridy = 3; c.weightx = 1; add(fileRedirection_cb, c); ! c.anchor = GridBagConstraints.LINE_START; c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; c.gridy = 0; c.weightx = 1.5; add(services_cob, c); ! c.gridx = 1; c.gridy = 1; c.gridwidth = 2; c.weightx = 1; add(statusValue, c); ! c.gridx = 1; c.gridy = 2; c.gridwidth = 2; c.weightx = 1; add(typValue, c); ! c.gridx = 1; c.gridy = 3; c.gridwidth = 2; c.weightx = 1; add(infoValue, c); ! c.gridx = 2; c.gridy = 0; c.weightx = 1.5; add(attributes, c); } ! public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("SERVICE")) *************** public final class PrinterDialog extends *** 465,477 **** } else if (e.getActionCommand().equals("ATTRIBUTES")) { ! // TODO LowPriority-Enhancement: As tests have shown this button // is even gray and not enabled under Windows - Its a good place ! // to provide a classpath specific browsing dialog for all ! // attributes not in the default printing dialog. } ! } ! /** * Called to update for new selected * print service. Tests if currently --- 465,477 ---- } else if (e.getActionCommand().equals("ATTRIBUTES")) { ! // TODO LowPriority-Enhancement: As tests have shown this button // is even gray and not enabled under Windows - Its a good place ! // to provide a classpath specific browsing dialog for all ! // attributes not in the default printing dialog. } ! } ! /** * Called to update for new selected * print service. Tests if currently *************** public final class PrinterDialog extends *** 482,511 **** PrinterMakeAndModel att1 = getSelectedPrintService().getAttribute(PrinterMakeAndModel.class); typValue.setText(att1 == null ? "" : att1.getValue()); ! ! PrinterInfo att2 = getSelectedPrintService().getAttribute(PrinterInfo.class); infoValue.setText(att2 == null ? "" : att2.getValue()); ! PrinterIsAcceptingJobs att3 = getSelectedPrintService().getAttribute(PrinterIsAcceptingJobs.class); PrinterState att4 = getSelectedPrintService().getAttribute(PrinterState.class); ! ! String status = att4.toString(); if (att3 == PrinterIsAcceptingJobs.ACCEPTING_JOBS) status += " - " + getLocalizedString("lb.acceptingjobs"); else if (att3 == PrinterIsAcceptingJobs.NOT_ACCEPTING_JOBS) status += " - " + getLocalizedString("lb.notacceptingjobs"); ! statusValue.setText(status); ! if (categorySupported(Destination.class)) { fileRedirection_cb.setEnabled(false); } } ! } private PrintServices printserv_panel; --- 482,511 ---- PrinterMakeAndModel att1 = getSelectedPrintService().getAttribute(PrinterMakeAndModel.class); typValue.setText(att1 == null ? "" : att1.getValue()); ! ! PrinterInfo att2 = getSelectedPrintService().getAttribute(PrinterInfo.class); infoValue.setText(att2 == null ? "" : att2.getValue()); ! PrinterIsAcceptingJobs att3 = getSelectedPrintService().getAttribute(PrinterIsAcceptingJobs.class); PrinterState att4 = getSelectedPrintService().getAttribute(PrinterState.class); ! ! String status = att4.toString(); if (att3 == PrinterIsAcceptingJobs.ACCEPTING_JOBS) status += " - " + getLocalizedString("lb.acceptingjobs"); else if (att3 == PrinterIsAcceptingJobs.NOT_ACCEPTING_JOBS) status += " - " + getLocalizedString("lb.notacceptingjobs"); ! statusValue.setText(status); ! if (categorySupported(Destination.class)) { fileRedirection_cb.setEnabled(false); } } ! } private PrintServices printserv_panel; *************** public final class PrinterDialog extends *** 516,522 **** * Constructs the General Panel. */ public GeneralPanel() ! { setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); printserv_panel = new PrintServices(); --- 516,522 ---- * Constructs the General Panel. */ public GeneralPanel() ! { setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); printserv_panel = new PrintServices(); *************** public final class PrinterDialog extends *** 534,540 **** add(Box.createRigidArea(new Dimension(0, 12))); add(layout_panel); } ! /** * Calls update on all internal panels to adjust * for a new selected print service. --- 534,540 ---- add(Box.createRigidArea(new Dimension(0, 12))); add(layout_panel); } ! /** * Calls update on all internal panels to adjust * for a new selected print service. *************** public final class PrinterDialog extends *** 560,566 **** final class Orientation extends JPanel implements ActionListener { private JRadioButton portrait, landscape, rev_portrait, rev_landscape; ! Orientation() { portrait = new JRadioButton(getLocalizedString("rbt.portrait")); --- 560,566 ---- final class Orientation extends JPanel implements ActionListener { private JRadioButton portrait, landscape, rev_portrait, rev_landscape; ! Orientation() { portrait = new JRadioButton(getLocalizedString("rbt.portrait")); *************** public final class PrinterDialog extends *** 571,608 **** rev_portrait.addActionListener(this); rev_landscape = new JRadioButton(getLocalizedString("rbt.revlandscape")); rev_landscape.addActionListener(this); ! ButtonGroup group = new ButtonGroup(); group.add(portrait); group.add(landscape); group.add(rev_portrait); group.add(rev_landscape); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.orientation"))); ! c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(portrait, c); ! c.gridx = 0; c.gridy = 1; add(landscape, c); ! c.gridx = 0; c.gridy = 2; add(rev_portrait, c); ! c.gridx = 0; c.gridy = 3; add(rev_landscape, c); } ! // event handling orientation public void actionPerformed(ActionEvent e) { --- 571,608 ---- rev_portrait.addActionListener(this); rev_landscape = new JRadioButton(getLocalizedString("rbt.revlandscape")); rev_landscape.addActionListener(this); ! ButtonGroup group = new ButtonGroup(); group.add(portrait); group.add(landscape); group.add(rev_portrait); group.add(rev_landscape); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.orientation"))); ! c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(portrait, c); ! c.gridx = 0; c.gridy = 1; add(landscape, c); ! c.gridx = 0; c.gridy = 2; add(rev_portrait, c); ! c.gridx = 0; c.gridy = 3; add(rev_landscape, c); } ! // event handling orientation public void actionPerformed(ActionEvent e) { *************** public final class PrinterDialog extends *** 613,621 **** else if (e.getSource() == rev_portrait) atts.add(OrientationRequested.REVERSE_PORTRAIT); else ! atts.add(OrientationRequested.REVERSE_LANDSCAPE); } ! /** * Called to update for new selected * print service. Tests if currently --- 613,621 ---- else if (e.getSource() == rev_portrait) atts.add(OrientationRequested.REVERSE_PORTRAIT); else ! atts.add(OrientationRequested.REVERSE_LANDSCAPE); } ! /** * Called to update for new selected * print service. Tests if currently *************** public final class PrinterDialog extends *** 629,635 **** landscape.setEnabled(true); rev_landscape.setEnabled(true); rev_portrait.setEnabled(true); ! Attribute orientation = attribute(OrientationRequested.class); if (orientation != null) { --- 629,635 ---- landscape.setEnabled(true); rev_landscape.setEnabled(true); rev_portrait.setEnabled(true); ! Attribute orientation = attribute(OrientationRequested.class); if (orientation != null) { *************** public final class PrinterDialog extends *** 639,645 **** portrait.setSelected(true); else if (orientation.equals(OrientationRequested.REVERSE_PORTRAIT)) rev_portrait.setSelected(true); ! else rev_landscape.setSelected(true); } else --- 639,645 ---- portrait.setSelected(true); else if (orientation.equals(OrientationRequested.REVERSE_PORTRAIT)) rev_portrait.setSelected(true); ! else rev_landscape.setSelected(true); } else *************** public final class PrinterDialog extends *** 651,657 **** portrait.setSelected(true); else if (defaultValue.equals(OrientationRequested.REVERSE_PORTRAIT)) rev_portrait.setSelected(true); ! else rev_landscape.setSelected(true); } } --- 651,657 ---- portrait.setSelected(true); else if (defaultValue.equals(OrientationRequested.REVERSE_PORTRAIT)) rev_portrait.setSelected(true); ! else rev_landscape.setSelected(true); } } *************** public final class PrinterDialog extends *** 661,667 **** landscape.setEnabled(false); rev_landscape.setEnabled(false); rev_portrait.setEnabled(false); ! } } } --- 661,667 ---- landscape.setEnabled(false); rev_landscape.setEnabled(false); rev_portrait.setEnabled(false); ! } } } *************** public final class PrinterDialog extends *** 673,756 **** { private JLabel size_lb, source_lb; private JComboBox size, source; ! MediaTypes() { size_lb = new JLabel(getLocalizedString("lb.size")); source_lb = new JLabel(getLocalizedString("lb.source")); ! size = new JComboBox(); size.setEditable(false); size.addActionListener(this); source = new JComboBox(); source.setEditable(false); size.addActionListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.medias"))); ! c.insets = new Insets(5, 5, 5, 5); c.anchor = GridBagConstraints.LINE_END; c.gridx = 0; c.gridy = 0; add(size_lb, c); ! c.gridx = 0; c.gridy = 1; add(source_lb, c); ! c.anchor = GridBagConstraints.LINE_START; c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; c.gridy = 0; c.weightx = 1.5; add(size, c); ! c.gridx = 1; c.gridy = 1; c.weightx = 1.5; add(source, c); } ! public void actionPerformed(ActionEvent event) ! { if (event.getSource() == size) { Object obj = size.getSelectedItem(); if (obj instanceof Media) ! atts.add((Media) obj); } ! // we ignore source events currently ! // as only the automatic selection is used. } ! /** * Called to update for new selected * print service. Tests if currently * selected attributes are supported. */ void updateForSelectedService() ! { if (categorySupported(Media.class)) { Media[] medias = (Media[]) getSelectedPrintService() .getSupportedAttributeValues(Media.class, flavor, null); ! size.removeAllItems(); if (medias.length == 0) ! size.addItem(getLocalizedString("lb.automatically")); else for (int i=0; i < medias.length; i++) size.addItem(medias[i]); ! Media media = (Media) attribute(Media.class); if (media != null) size.setSelectedItem(media); ! // this is currently ignored source.removeAllItems(); source.addItem(getLocalizedString("lb.automatically")); --- 673,756 ---- { private JLabel size_lb, source_lb; private JComboBox size, source; ! MediaTypes() { size_lb = new JLabel(getLocalizedString("lb.size")); source_lb = new JLabel(getLocalizedString("lb.source")); ! size = new JComboBox(); size.setEditable(false); size.addActionListener(this); source = new JComboBox(); source.setEditable(false); size.addActionListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.medias"))); ! c.insets = new Insets(5, 5, 5, 5); c.anchor = GridBagConstraints.LINE_END; c.gridx = 0; c.gridy = 0; add(size_lb, c); ! c.gridx = 0; c.gridy = 1; add(source_lb, c); ! c.anchor = GridBagConstraints.LINE_START; c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; c.gridy = 0; c.weightx = 1.5; add(size, c); ! c.gridx = 1; c.gridy = 1; c.weightx = 1.5; add(source, c); } ! public void actionPerformed(ActionEvent event) ! { if (event.getSource() == size) { Object obj = size.getSelectedItem(); if (obj instanceof Media) ! atts.add((Media) obj); } ! // we ignore source events currently ! // as only the automatic selection is used. } ! /** * Called to update for new selected * print service. Tests if currently * selected attributes are supported. */ void updateForSelectedService() ! { if (categorySupported(Media.class)) { Media[] medias = (Media[]) getSelectedPrintService() .getSupportedAttributeValues(Media.class, flavor, null); ! size.removeAllItems(); if (medias.length == 0) ! size.addItem(getLocalizedString("lb.automatically")); else for (int i=0; i < medias.length; i++) size.addItem(medias[i]); ! Media media = (Media) attribute(Media.class); if (media != null) size.setSelectedItem(media); ! // this is currently ignored source.removeAllItems(); source.addItem(getLocalizedString("lb.automatically")); *************** public final class PrinterDialog extends *** 759,765 **** { size.removeAllItems(); source.removeAllItems(); ! size.addItem(getLocalizedString("lb.automatically")); source.addItem(getLocalizedString("lb.automatically")); } --- 759,765 ---- { size.removeAllItems(); source.removeAllItems(); ! size.addItem(getLocalizedString("lb.automatically")); source.addItem(getLocalizedString("lb.automatically")); } *************** public final class PrinterDialog extends *** 774,787 **** { private JLabel left, right, top, bottom; private JTextField left_tf, right_tf, top_tf, bottom_tf; ! Margins() { left = new JLabel(getLocalizedString("lb.left")); right = new JLabel(getLocalizedString("lb.right")); top = new JLabel(getLocalizedString("lb.top")); bottom = new JLabel(getLocalizedString("lb.bottom")); ! left_tf = new JTextField(7); left_tf.addFocusListener(this); right_tf = new JTextField(7); --- 774,787 ---- { private JLabel left, right, top, bottom; private JTextField left_tf, right_tf, top_tf, bottom_tf; ! Margins() { left = new JLabel(getLocalizedString("lb.left")); right = new JLabel(getLocalizedString("lb.right")); top = new JLabel(getLocalizedString("lb.top")); bottom = new JLabel(getLocalizedString("lb.bottom")); ! left_tf = new JTextField(7); left_tf.addFocusListener(this); right_tf = new JTextField(7); *************** public final class PrinterDialog extends *** 790,856 **** top_tf.addFocusListener(this); bottom_tf = new JTextField(7); bottom_tf.addFocusListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.margins"))); ! c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(left, c); ! c.gridx = 1; c.gridy = 0; add(right, c); ! c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 1; add(left_tf, c); ! c.gridx = 1; c.gridy = 1; add(right_tf, c); ! c.insets = new Insets(10, 5, 5, 5); c.gridx = 0; c.gridy = 2; add(top, c); ! c.gridx = 1; c.gridy = 2; add(bottom, c); ! c.insets = new Insets(0, 5, 5, 5); c.gridx = 0; c.gridy = 3; add(top_tf, c); ! c.gridx = 1; c.gridy = 3; add(bottom_tf, c); } ! public void focusGained(FocusEvent event) { updateMargins(); } ! public void focusLost(FocusEvent event) { updateMargins(); } ! // updates the margins after user changed it private void updateMargins() { // We currently do not support this attribute // as it is not in the IPP spec and therefore not in CUPS } ! /** * Called to update for new selected * print service. Tests if currently --- 790,856 ---- top_tf.addFocusListener(this); bottom_tf = new JTextField(7); bottom_tf.addFocusListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.margins"))); ! c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(left, c); ! c.gridx = 1; c.gridy = 0; add(right, c); ! c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 1; add(left_tf, c); ! c.gridx = 1; c.gridy = 1; add(right_tf, c); ! c.insets = new Insets(10, 5, 5, 5); c.gridx = 0; c.gridy = 2; add(top, c); ! c.gridx = 1; c.gridy = 2; add(bottom, c); ! c.insets = new Insets(0, 5, 5, 5); c.gridx = 0; c.gridy = 3; add(top_tf, c); ! c.gridx = 1; c.gridy = 3; add(bottom_tf, c); } ! public void focusGained(FocusEvent event) { updateMargins(); } ! public void focusLost(FocusEvent event) { updateMargins(); } ! // updates the margins after user changed it private void updateMargins() { // We currently do not support this attribute // as it is not in the IPP spec and therefore not in CUPS } ! /** * Called to update for new selected * print service. Tests if currently *************** public final class PrinterDialog extends *** 867,873 **** left_tf.setEnabled(true); right_tf.setEnabled(true); top_tf.setEnabled(true); ! bottom_tf.setEnabled(true); } else { --- 867,873 ---- left_tf.setEnabled(true); right_tf.setEnabled(true); top_tf.setEnabled(true); ! bottom_tf.setEnabled(true); } else { *************** public final class PrinterDialog extends *** 878,885 **** left_tf.setEnabled(false); right_tf.setEnabled(false); top_tf.setEnabled(false); ! bottom_tf.setEnabled(false); ! } } } --- 878,885 ---- left_tf.setEnabled(false); right_tf.setEnabled(false); top_tf.setEnabled(false); ! bottom_tf.setEnabled(false); ! } } } *************** public final class PrinterDialog extends *** 887,894 **** private Orientation orientation_panel; private Margins margins_panel; ! /** ! * Constructs the page setup user interface. */ public PageSetupPanel() { --- 887,894 ---- private Orientation orientation_panel; private Margins margins_panel; ! /** ! * Constructs the page setup user interface. */ public PageSetupPanel() { *************** public final class PrinterDialog extends *** 909,915 **** add(Box.createRigidArea(new Dimension(0, 12))); add(layout_panel); } ! /** * Calls update on all internal panels to adjust * for a new selected print service. --- 909,915 ---- add(Box.createRigidArea(new Dimension(0, 12))); add(layout_panel); } ! /** * Calls update on all internal panels to adjust * for a new selected print service. *************** public final class PrinterDialog extends *** 936,942 **** { private JRadioButton low, normal, high; private ButtonGroup group; ! Quality() { low = new JRadioButton(getLocalizedString("rbt.low")); --- 936,942 ---- { private JRadioButton low, normal, high; private ButtonGroup group; ! Quality() { low = new JRadioButton(getLocalizedString("rbt.low")); *************** public final class PrinterDialog extends *** 945,977 **** normal.addActionListener(this); high = new JRadioButton(getLocalizedString("rbt.high")); high.addActionListener(this); ! group = new ButtonGroup(); group.add(low); group.add(normal); group.add(high); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.quality"))); ! c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(low, c); ! c.gridx = 0; c.gridy = 1; add(normal, c); ! c.gridx = 0; c.gridy = 2; add(high, c); } ! public void actionPerformed(ActionEvent e) { if (e.getSource() == low) --- 945,977 ---- normal.addActionListener(this); high = new JRadioButton(getLocalizedString("rbt.high")); high.addActionListener(this); ! group = new ButtonGroup(); group.add(low); group.add(normal); group.add(high); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.quality"))); ! c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(low, c); ! c.gridx = 0; c.gridy = 1; add(normal, c); ! c.gridx = 0; c.gridy = 2; add(high, c); } ! public void actionPerformed(ActionEvent e) { if (e.getSource() == low) *************** public final class PrinterDialog extends *** 979,987 **** else if (e.getSource() == normal) atts.add(PrintQuality.NORMAL); else ! atts.add(PrintQuality.HIGH); } ! /** * Called to update for new selected * print service. Tests if currently --- 979,987 ---- else if (e.getSource() == normal) atts.add(PrintQuality.NORMAL); else ! atts.add(PrintQuality.HIGH); } ! /** * Called to update for new selected * print service. Tests if currently *************** public final class PrinterDialog extends *** 994,1010 **** low.setEnabled(true); normal.setEnabled(true); high.setEnabled(true); ! ! Object defaultValue = defaultValue(PrintQuality.class); Attribute quality = attribute(PrintQuality.class); ! if (quality != null) { if (quality.equals(PrintQuality.DRAFT)) low.setSelected(true); else if (quality.equals(PrintQuality.NORMAL)) normal.setSelected(true); ! else high.setSelected(true); } else --- 994,1010 ---- low.setEnabled(true); normal.setEnabled(true); high.setEnabled(true); ! ! Object defaultValue = defaultValue(PrintQuality.class); Attribute quality = attribute(PrintQuality.class); ! if (quality != null) { if (quality.equals(PrintQuality.DRAFT)) low.setSelected(true); else if (quality.equals(PrintQuality.NORMAL)) normal.setSelected(true); ! else high.setSelected(true); } else *************** public final class PrinterDialog extends *** 1013,1093 **** low.setSelected(true); else if (defaultValue.equals(PrintQuality.NORMAL)) normal.setSelected(true); ! else high.setSelected(true); ! } } else { low.setEnabled(false); normal.setEnabled(false); high.setEnabled(false); ! } } } ! /** * Handles the job attributes as requesting username, jobname etc. * @author Wolfgang Baer (WBaer@gmx.de) */ final class JobAttributes extends JPanel implements ActionListener, ChangeListener, FocusListener ! { ! private JLabel jobname, username, priority_lb; ! private JTextField jobname_tf, username_tf; ! private JCheckBox cover; private JSpinner priority; private SpinnerNumberModel model; ! JobAttributes() { jobname = new JLabel(getLocalizedString("lb.jobname")); username = new JLabel(getLocalizedString("lb.username")); priority_lb = new JLabel(getLocalizedString("lb.priority")); ! cover = new JCheckBox(getLocalizedString("cb.cover")); cover.addActionListener(this); ! model = new SpinnerNumberModel(1, 1, 100, 1); priority = new JSpinner(model); priority.addChangeListener(this); ! jobname_tf = new JTextField(); jobname_tf.addFocusListener(this); username_tf = new JTextField(); username_tf.addFocusListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.jobattributes"))); ! c.insets = new Insets(10, 5, 10, 5); c.gridx = 0; c.gridy = 0; add(cover, c); ! c.anchor = GridBagConstraints.LINE_END; c.gridx = 1; c.gridy = 0; c.weightx = 2; add(priority_lb, c); ! c.gridx = 2; c.gridy = 0; c.weightx = 0.5; add(priority, c); ! c.anchor = GridBagConstraints.LINE_END; c.gridx = 0; c.gridy = 1; add(jobname, c); ! c.gridx = 0; c.gridy = 2; add(username, c); ! c.anchor = GridBagConstraints.CENTER; c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; --- 1013,1093 ---- low.setSelected(true); else if (defaultValue.equals(PrintQuality.NORMAL)) normal.setSelected(true); ! else high.setSelected(true); ! } } else { low.setEnabled(false); normal.setEnabled(false); high.setEnabled(false); ! } } } ! /** * Handles the job attributes as requesting username, jobname etc. * @author Wolfgang Baer (WBaer@gmx.de) */ final class JobAttributes extends JPanel implements ActionListener, ChangeListener, FocusListener ! { ! private JLabel jobname, username, priority_lb; ! private JTextField jobname_tf, username_tf; ! private JCheckBox cover; private JSpinner priority; private SpinnerNumberModel model; ! JobAttributes() { jobname = new JLabel(getLocalizedString("lb.jobname")); username = new JLabel(getLocalizedString("lb.username")); priority_lb = new JLabel(getLocalizedString("lb.priority")); ! cover = new JCheckBox(getLocalizedString("cb.cover")); cover.addActionListener(this); ! model = new SpinnerNumberModel(1, 1, 100, 1); priority = new JSpinner(model); priority.addChangeListener(this); ! jobname_tf = new JTextField(); jobname_tf.addFocusListener(this); username_tf = new JTextField(); username_tf.addFocusListener(this); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.jobattributes"))); ! c.insets = new Insets(10, 5, 10, 5); c.gridx = 0; c.gridy = 0; add(cover, c); ! c.anchor = GridBagConstraints.LINE_END; c.gridx = 1; c.gridy = 0; c.weightx = 2; add(priority_lb, c); ! c.gridx = 2; c.gridy = 0; c.weightx = 0.5; add(priority, c); ! c.anchor = GridBagConstraints.LINE_END; c.gridx = 0; c.gridy = 1; add(jobname, c); ! c.gridx = 0; c.gridy = 2; add(username, c); ! c.anchor = GridBagConstraints.CENTER; c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; *************** public final class PrinterDialog extends *** 1095,1107 **** c.gridwidth = 2; c.weightx = 1.5; add(jobname_tf, c); ! c.insets = new Insets(10, 5, 15, 5); c.gridx = 1; c.gridy = 2; add(username_tf, c); } ! public void actionPerformed(ActionEvent event) { if (cover.isSelected()) --- 1095,1107 ---- c.gridwidth = 2; c.weightx = 1.5; add(jobname_tf, c); ! c.insets = new Insets(10, 5, 15, 5); c.gridx = 1; c.gridy = 2; add(username_tf, c); } ! public void actionPerformed(ActionEvent event) { if (cover.isSelected()) *************** public final class PrinterDialog extends *** 1109,1131 **** else atts.add(JobSheets.NONE); } ! public void stateChanged(ChangeEvent event) { int value = ((Integer) priority.getValue()).intValue(); ! atts.add(new JobPriority(value)); } ! public void focusGained(FocusEvent event) ! { updateTextfields(event); } ! public void focusLost(FocusEvent event) { updateTextfields(event); } ! private void updateTextfields(FocusEvent event) { if (event.getSource() == jobname_tf) --- 1109,1131 ---- else atts.add(JobSheets.NONE); } ! public void stateChanged(ChangeEvent event) { int value = ((Integer) priority.getValue()).intValue(); ! atts.add(new JobPriority(value)); } ! public void focusGained(FocusEvent event) ! { updateTextfields(event); } ! public void focusLost(FocusEvent event) { updateTextfields(event); } ! private void updateTextfields(FocusEvent event) { if (event.getSource() == jobname_tf) *************** public final class PrinterDialog extends *** 1141,1199 **** */ void updateForSelectedService() { ! // JobPriority if (categorySupported(JobPriority.class)) { JobPriority prio = (JobPriority) attribute(JobPriority.class); ! JobPriority value = (JobPriority) defaultValue(JobPriority.class); priority.setEnabled(true); if (prio != null) model.setValue(new Integer(prio.getValue())); else model.setValue(new Integer(value.getValue())); ! } else ! priority.setEnabled(false); ! // Requesting username if (categorySupported(RequestingUserName.class)) { Attribute user = attribute(RequestingUserName.class); Object value = defaultValue(RequestingUserName.class); ! username.setEnabled(true); if (user != null) username_tf.setText(user.toString()); else username_tf.setText(value.toString()); } else ! username.setEnabled(false); ! // Job Name if (categorySupported(JobName.class)) { Attribute job = attribute(JobName.class); Object value = defaultValue(JobName.class); ! jobname.setEnabled(true); if (job != null) jobname_tf.setText(job.toString()); else jobname_tf.setText(value.toString()); } else ! jobname.setEnabled(false); ! // Job sheets if (categorySupported(JobSheets.class)) { Attribute sheet = attribute(JobSheets.class); Object value = defaultValue(JobSheets.class); ! cover.setEnabled(true); if (sheet != null) { if (sheet.equals(JobSheets.NONE)) cover.setSelected(false); ! else cover.setSelected(true); } else --- 1141,1199 ---- */ void updateForSelectedService() { ! // JobPriority if (categorySupported(JobPriority.class)) { JobPriority prio = (JobPriority) attribute(JobPriority.class); ! JobPriority value = (JobPriority) defaultValue(JobPriority.class); priority.setEnabled(true); if (prio != null) model.setValue(new Integer(prio.getValue())); else model.setValue(new Integer(value.getValue())); ! } else ! priority.setEnabled(false); ! // Requesting username if (categorySupported(RequestingUserName.class)) { Attribute user = attribute(RequestingUserName.class); Object value = defaultValue(RequestingUserName.class); ! username.setEnabled(true); if (user != null) username_tf.setText(user.toString()); else username_tf.setText(value.toString()); } else ! username.setEnabled(false); ! // Job Name if (categorySupported(JobName.class)) { Attribute job = attribute(JobName.class); Object value = defaultValue(JobName.class); ! jobname.setEnabled(true); if (job != null) jobname_tf.setText(job.toString()); else jobname_tf.setText(value.toString()); } else ! jobname.setEnabled(false); ! // Job sheets if (categorySupported(JobSheets.class)) { Attribute sheet = attribute(JobSheets.class); Object value = defaultValue(JobSheets.class); ! cover.setEnabled(true); if (sheet != null) { if (sheet.equals(JobSheets.NONE)) cover.setSelected(false); ! else cover.setSelected(true); } else *************** public final class PrinterDialog extends *** 1205,1257 **** } } else ! cover.setEnabled(false); } } ! /** * Handles the sides attributes. * @author Wolfgang Baer (WBaer@gmx.de) */ final class SidesPanel extends JPanel implements ActionListener ! { private JRadioButton oneside, calendar, duplex; ! SidesPanel() ! { oneside = new JRadioButton(getLocalizedString("rbt.onesided")); oneside.addActionListener(this); calendar = new JRadioButton(getLocalizedString("rbt.calendar")); calendar.addActionListener(this); duplex = new JRadioButton(getLocalizedString("rbt.duplex")); duplex.addActionListener(this); ! ButtonGroup group = new ButtonGroup(); group.add(oneside); group.add(calendar); group.add(duplex); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.sides"))); ! c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(oneside, c); ! c.gridx = 0; c.gridy = 1; add(calendar, c); ! c.gridx = 0; c.gridy = 2; add(duplex, c); } ! public void actionPerformed(ActionEvent e) { if (e.getSource() == calendar) --- 1205,1257 ---- } } else ! cover.setEnabled(false); } } ! /** * Handles the sides attributes. * @author Wolfgang Baer (WBaer@gmx.de) */ final class SidesPanel extends JPanel implements ActionListener ! { private JRadioButton oneside, calendar, duplex; ! SidesPanel() ! { oneside = new JRadioButton(getLocalizedString("rbt.onesided")); oneside.addActionListener(this); calendar = new JRadioButton(getLocalizedString("rbt.calendar")); calendar.addActionListener(this); duplex = new JRadioButton(getLocalizedString("rbt.duplex")); duplex.addActionListener(this); ! ButtonGroup group = new ButtonGroup(); group.add(oneside); group.add(calendar); group.add(duplex); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.sides"))); ! c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(oneside, c); ! c.gridx = 0; c.gridy = 1; add(calendar, c); ! c.gridx = 0; c.gridy = 2; add(duplex, c); } ! public void actionPerformed(ActionEvent e) { if (e.getSource() == calendar) *************** public final class PrinterDialog extends *** 1261,1267 **** else atts.add(Sides.TWO_SIDED_LONG_EDGE); } ! /** * Called to update for new selected * print service. Tests if currently --- 1261,1267 ---- else atts.add(Sides.TWO_SIDED_LONG_EDGE); } ! /** * Called to update for new selected * print service. Tests if currently *************** public final class PrinterDialog extends *** 1274,1281 **** oneside.setEnabled(true); calendar.setEnabled(true); duplex.setEnabled(true); ! ! Object defaultValue = defaultValue(Sides.class); Attribute sides = attribute(Sides.class); if (sides != null) { --- 1274,1281 ---- oneside.setEnabled(true); calendar.setEnabled(true); duplex.setEnabled(true); ! ! Object defaultValue = defaultValue(Sides.class); Attribute sides = attribute(Sides.class); if (sides != null) { *************** public final class PrinterDialog extends *** 1297,1310 **** } } else ! { oneside.setEnabled(false); calendar.setEnabled(false); duplex.setEnabled(false); ! } } } ! /** * Handles the chromaticity attributes. * @author Wolfgang Baer (WBaer@gmx.de) --- 1297,1310 ---- } } else ! { oneside.setEnabled(false); calendar.setEnabled(false); duplex.setEnabled(false); ! } } } ! /** * Handles the chromaticity attributes. * @author Wolfgang Baer (WBaer@gmx.de) *************** public final class PrinterDialog extends *** 1312,1354 **** final class Color extends JPanel implements ActionListener { private JRadioButton bw, color; ! Color() { bw = new JRadioButton(getLocalizedString("rbt.blackwhite")); bw.addActionListener(this); color = new JRadioButton(getLocalizedString("rbt.color")); color.addActionListener(this); ! ButtonGroup group = new ButtonGroup(); group.add(bw); group.add(color); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.color"))); ! c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(bw, c); ! c.gridx = 0; c.gridy = 1; add(color, c); } ! public void actionPerformed(ActionEvent e) { if (e.getSource() == bw) ! atts.add(Chromaticity.MONOCHROME); else atts.add(Chromaticity.COLOR); } ! /** * Called to update for new selected * print service. Tests if currently --- 1312,1354 ---- final class Color extends JPanel implements ActionListener { private JRadioButton bw, color; ! Color() { bw = new JRadioButton(getLocalizedString("rbt.blackwhite")); bw.addActionListener(this); color = new JRadioButton(getLocalizedString("rbt.color")); color.addActionListener(this); ! ButtonGroup group = new ButtonGroup(); group.add(bw); group.add(color); ! GridBagLayout layout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); ! setLayout(layout); setBorder(new TitledBorder(getLocalizedString("title.color"))); ! c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(5, 5, 5, 5); c.gridx = 0; c.gridy = 0; add(bw, c); ! c.gridx = 0; c.gridy = 1; add(color, c); } ! public void actionPerformed(ActionEvent e) { if (e.getSource() == bw) ! atts.add(Chromaticity.MONOCHROME); else atts.add(Chromaticity.COLOR); } ! /** * Called to update for new selected * print service. Tests if currently *************** public final class PrinterDialog extends *** 1359,1426 **** if (categorySupported(Chromaticity.class)) { bw.setEnabled(true); ! color.setEnabled(true); ! ! Object defaultValue = defaultValue(Chromaticity.class); Attribute chromaticity = attribute(Chromaticity.class); if (chromaticity != null) { if (chromaticity.equals(Chromaticity.MONOCHROME)) bw.setSelected(true); ! else color.setSelected(true); } else { if (defaultValue.equals(Chromaticity.MONOCHROME)) bw.setSelected(true); ! else color.setSelected(true); } } else ! { bw.setEnabled(false); color.setEnabled(false); } } } ! private Quality quality_panel; private JobAttributes jobAttr_panel; private SidesPanel sides_panel; private Color chromaticy_panel; ! /** * Creates the panel for appearance attributes. */ public AppearancePanel() { setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); ! quality_panel = new Quality(); jobAttr_panel = new JobAttributes(); sides_panel = new SidesPanel(); chromaticy_panel = new Color(); ! JPanel layout_panel = new JPanel(); layout_panel.setLayout(new BoxLayout(layout_panel, BoxLayout.LINE_AXIS)); layout_panel.add(chromaticy_panel); layout_panel.add(Box.createRigidArea(new Dimension(10, 0))); layout_panel.add(quality_panel); ! JPanel layout2_panel = new JPanel(); layout2_panel.setLayout(new BoxLayout(layout2_panel, BoxLayout.LINE_AXIS)); layout2_panel.add(sides_panel); layout2_panel.add(Box.createRigidArea(new Dimension(10, 0))); layout2_panel.add(jobAttr_panel); ! setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); add(layout_panel); add(Box.createRigidArea(new Dimension(0, 12))); add(layout2_panel); } ! /** * Calls update on all internal panels to adjust * for a new selected print service. --- 1359,1426 ---- if (categorySupported(Chromaticity.class)) { bw.setEnabled(true); ! color.setEnabled(true); ! ! Object defaultValue = defaultValue(Chromaticity.class); Attribute chromaticity = attribute(Chromaticity.class); if (chromaticity != null) { if (chromaticity.equals(Chromaticity.MONOCHROME)) bw.setSelected(true); ! else color.setSelected(true); } else { if (defaultValue.equals(Chromaticity.MONOCHROME)) bw.setSelected(true); ! else color.setSelected(true); } } else ! { bw.setEnabled(false); color.setEnabled(false); } } } ! private Quality quality_panel; private JobAttributes jobAttr_panel; private SidesPanel sides_panel; private Color chromaticy_panel; ! /** * Creates the panel for appearance attributes. */ public AppearancePanel() { setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); ! quality_panel = new Quality(); jobAttr_panel = new JobAttributes(); sides_panel = new SidesPanel(); chromaticy_panel = new Color(); ! JPanel layout_panel = new JPanel(); layout_panel.setLayout(new BoxLayout(layout_panel, BoxLayout.LINE_AXIS)); layout_panel.add(chromaticy_panel); layout_panel.add(Box.createRigidArea(new Dimension(10, 0))); layout_panel.add(quality_panel); ! JPanel layout2_panel = new JPanel(); layout2_panel.setLayout(new BoxLayout(layout2_panel, BoxLayout.LINE_AXIS)); layout2_panel.add(sides_panel); layout2_panel.add(Box.createRigidArea(new Dimension(10, 0))); layout2_panel.add(jobAttr_panel); ! setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); add(layout_panel); add(Box.createRigidArea(new Dimension(0, 12))); add(layout2_panel); } ! /** * Calls update on all internal panels to adjust * for a new selected print service. *************** public final class PrinterDialog extends *** 1442,1488 **** private GeneralPanel general_panel; private PageSetupPanel pagesetup_panel; private AppearancePanel appearance_panel; ! private PrintService[] services; private PrintService defaultService; private PrintService selectedService; private DocFlavor flavor; private PrintRequestAttributeSet attributes; ! ! private boolean onlyPageDialog; ! private PrintRequestAttributeSet atts; ! private final static ResourceBundle messages; static ! { messages = ResourceBundle.getBundle("gnu/javax/print/PrinterDialog"); } ! // TODO LowPriority: Include checks so that if a specific value formerly // selected is no more supported by the new service changes to the default. ! /** * Class private constructs a printer dialog. ! * * @param gc the screen to use. null is default screen. * @param services the print services to browse (not null). * @param defaultService the default service. If null * the first of the print services in the services array will be used. * @param flavor the flavours to be printed. ! * @param attributes the attributes requested. Will be updated * by selections done by the user in the dialog. * @param onlyPageDialog if true a page settings only dialog is constructed. ! * * @throws HeadlessException if GraphicsEnvironment is headless */ ! private PrinterDialog(GraphicsConfiguration gc, PrintService[] services, ! PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes, boolean onlyPageDialog, String title) throws HeadlessException { super((Frame)null, title, true, gc); ! setResizable(false); setDefaultCloseOperation(DISPOSE_ON_CLOSE); --- 1442,1488 ---- private GeneralPanel general_panel; private PageSetupPanel pagesetup_panel; private AppearancePanel appearance_panel; ! private PrintService[] services; private PrintService defaultService; private PrintService selectedService; private DocFlavor flavor; private PrintRequestAttributeSet attributes; ! ! private boolean onlyPageDialog; ! private PrintRequestAttributeSet atts; ! private final static ResourceBundle messages; static ! { messages = ResourceBundle.getBundle("gnu/javax/print/PrinterDialog"); } ! // TODO LowPriority: Include checks so that if a specific value formerly // selected is no more supported by the new service changes to the default. ! /** * Class private constructs a printer dialog. ! * * @param gc the screen to use. null is default screen. * @param services the print services to browse (not null). * @param defaultService the default service. If null * the first of the print services in the services array will be used. * @param flavor the flavours to be printed. ! * @param attributes the attributes requested. Will be updated * by selections done by the user in the dialog. * @param onlyPageDialog if true a page settings only dialog is constructed. ! * * @throws HeadlessException if GraphicsEnvironment is headless */ ! private PrinterDialog(GraphicsConfiguration gc, PrintService[] services, ! PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes, boolean onlyPageDialog, String title) throws HeadlessException { super((Frame)null, title, true, gc); ! setResizable(false); setDefaultCloseOperation(DISPOSE_ON_CLOSE); *************** public final class PrinterDialog extends *** 1493,1589 **** for(int i=0; i < services.length; i++) if (services[i].isDocFlavorSupported(flavor)) list.add(services[i]); ! if (defaultService != null && (! list.contains(defaultService))) defaultService = (PrintService) list.get(0); ! PrintService[] newServices = new PrintService[list.size()]; this.services = (PrintService[]) list.toArray(newServices); } else this.services = services; ! if (defaultService == null) this.defaultService = services[0]; else this.defaultService = defaultService; ! this.selectedService = this.defaultService; this.flavor = flavor; ! // the attributes given by the user this.attributes = attributes; // the one to work with during browsing this.atts = new HashPrintRequestAttributeSet(attributes); ! this.onlyPageDialog = onlyPageDialog; ! ! initUI(onlyPageDialog); pack(); updateAll(); } ! /** * Constructs a page settings only dialog. ! * * @param gc the screen to use. null is default screen. * @param service the print service for the page dialog. * the first of the print services in the services array will be used. * @param flavor the flavours to be printed. ! * @param attributes the attributes requested. Will be updated ! * by selections done by the user in the dialog. ! * * @throws HeadlessException if GraphicsEnvironment is headless */ ! public PrinterDialog(GraphicsConfiguration gc, PrintService service, DocFlavor flavor, PrintRequestAttributeSet attributes) throws HeadlessException { ! this(gc, new PrintService[] {service}, service, flavor, attributes, ! true, getLocalizedString("title.pagedialog")); } ! /** * Constructs a printer dialog. ! * * @param gc the screen to use. null is default screen. * @param services the print services to browse (not null). * @param defaultService the default service. If null * the first of the print services in the services array will be used. * @param flavor the flavours to be printed. ! * @param attributes the attributes requested. Will be updated ! * by selections done by the user in the dialog. ! * * @throws HeadlessException if GraphicsEnvironment is headless */ ! public PrinterDialog(GraphicsConfiguration gc, PrintService[] services, ! PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes) throws HeadlessException { ! this(gc, services, defaultService, flavor, attributes, false, getLocalizedString("title.printdialog")); } // initializes the gui parts private void initUI(boolean onlyPageDialog) ! { JPanel buttonPane = new JPanel(); ! if (onlyPageDialog) { JPanel pane = new JPanel(); pane.setLayout(new BorderLayout()); pagesetup_panel = new PageSetupPanel(); pane.add(pagesetup_panel, BorderLayout.CENTER); ! ok_bt = new JButton(getLocalizedString("bt.OK")); ok_bt.addActionListener(this); cancel_bt = new JButton(getLocalizedString("bt.cancel")); ! cancel_bt.addActionListener(this); ! ! getContentPane().add(pane, BorderLayout.CENTER); } else { --- 1493,1589 ---- for(int i=0; i < services.length; i++) if (services[i].isDocFlavorSupported(flavor)) list.add(services[i]); ! if (defaultService != null && (! list.contains(defaultService))) defaultService = (PrintService) list.get(0); ! PrintService[] newServices = new PrintService[list.size()]; this.services = (PrintService[]) list.toArray(newServices); } else this.services = services; ! if (defaultService == null) this.defaultService = services[0]; else this.defaultService = defaultService; ! this.selectedService = this.defaultService; this.flavor = flavor; ! // the attributes given by the user this.attributes = attributes; // the one to work with during browsing this.atts = new HashPrintRequestAttributeSet(attributes); ! this.onlyPageDialog = onlyPageDialog; ! ! initUI(onlyPageDialog); pack(); updateAll(); } ! /** * Constructs a page settings only dialog. ! * * @param gc the screen to use. null is default screen. * @param service the print service for the page dialog. * the first of the print services in the services array will be used. * @param flavor the flavours to be printed. ! * @param attributes the attributes requested. Will be updated ! * by selections done by the user in the dialog. ! * * @throws HeadlessException if GraphicsEnvironment is headless */ ! public PrinterDialog(GraphicsConfiguration gc, PrintService service, DocFlavor flavor, PrintRequestAttributeSet attributes) throws HeadlessException { ! this(gc, new PrintService[] {service}, service, flavor, attributes, ! true, getLocalizedString("title.pagedialog")); } ! /** * Constructs a printer dialog. ! * * @param gc the screen to use. null is default screen. * @param services the print services to browse (not null). * @param defaultService the default service. If null * the first of the print services in the services array will be used. * @param flavor the flavours to be printed. ! * @param attributes the attributes requested. Will be updated ! * by selections done by the user in the dialog. ! * * @throws HeadlessException if GraphicsEnvironment is headless */ ! public PrinterDialog(GraphicsConfiguration gc, PrintService[] services, ! PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes) throws HeadlessException { ! this(gc, services, defaultService, flavor, attributes, false, getLocalizedString("title.printdialog")); } // initializes the gui parts private void initUI(boolean onlyPageDialog) ! { JPanel buttonPane = new JPanel(); ! if (onlyPageDialog) { JPanel pane = new JPanel(); pane.setLayout(new BorderLayout()); pagesetup_panel = new PageSetupPanel(); pane.add(pagesetup_panel, BorderLayout.CENTER); ! ok_bt = new JButton(getLocalizedString("bt.OK")); ok_bt.addActionListener(this); cancel_bt = new JButton(getLocalizedString("bt.cancel")); ! cancel_bt.addActionListener(this); ! ! getContentPane().add(pane, BorderLayout.CENTER); } else { *************** public final class PrinterDialog extends *** 1607,1620 **** // Put everything together getContentPane().add(pane, BorderLayout.CENTER); } ! buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS)); buttonPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); buttonPane.add(Box.createHorizontalGlue()); buttonPane.add(ok_bt); buttonPane.add(Box.createRigidArea(new Dimension(5, 0))); buttonPane.add(cancel_bt); ! getContentPane().add(buttonPane, BorderLayout.PAGE_END); } --- 1607,1620 ---- // Put everything together getContentPane().add(pane, BorderLayout.CENTER); } ! buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS)); buttonPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); buttonPane.add(Box.createHorizontalGlue()); buttonPane.add(ok_bt); buttonPane.add(Box.createRigidArea(new Dimension(5, 0))); buttonPane.add(cancel_bt); ! getContentPane().add(buttonPane, BorderLayout.PAGE_END); } *************** public final class PrinterDialog extends *** 1635,1651 **** { return selectedService; } ! /** * Sets the currently selected print service. ! * * @param service the service selected. */ protected void setSelectedPrintService(PrintService service) { selectedService = service; } ! /** * Returns the print service array. * @return The print services. --- 1635,1651 ---- { return selectedService; } ! /** * Sets the currently selected print service. ! * * @param service the service selected. */ protected void setSelectedPrintService(PrintService service) { selectedService = service; } ! /** * Returns the print service array. * @return The print services. *************** public final class PrinterDialog extends *** 1654,1660 **** { return services; } ! /** * Calls update on all panels to adjust * for a new selected print service. --- 1654,1660 ---- { return services; } ! /** * Calls update on all panels to adjust * for a new selected print service. *************** public final class PrinterDialog extends *** 1662,1718 **** void updateAll() { pagesetup_panel.update(); ! if (! onlyPageDialog) { general_panel.update(); appearance_panel.update(); ! } } ! boolean categorySupported(Class category) { return getSelectedPrintService(). isAttributeCategorySupported(category); } ! Object defaultValue(Class category) { return getSelectedPrintService(). getDefaultAttributeValue(category); } ! Attribute attribute(Class category) { return atts.get(category); } ! ! /** * Action handler for Print/Cancel buttons. * If cancel is pressed we reset the attributes * and the selected service. ! * * @param e the ActionEvent */ public void actionPerformed(ActionEvent e) { if (e.getSource() == ok_bt) { ! setVisible(false); attributes.addAll(atts); dispose(); } else { ! setVisible(false); selectedService = null; dispose(); } } ! /** * Retrieves localized messages from the resource bundle. ! * * @param key the key * @return The localized value for the key. */ --- 1662,1718 ---- void updateAll() { pagesetup_panel.update(); ! if (! onlyPageDialog) { general_panel.update(); appearance_panel.update(); ! } } ! boolean categorySupported(Class category) { return getSelectedPrintService(). isAttributeCategorySupported(category); } ! Object defaultValue(Class category) { return getSelectedPrintService(). getDefaultAttributeValue(category); } ! Attribute attribute(Class category) { return atts.get(category); } ! ! /** * Action handler for Print/Cancel buttons. * If cancel is pressed we reset the attributes * and the selected service. ! * * @param e the ActionEvent */ public void actionPerformed(ActionEvent e) { if (e.getSource() == ok_bt) { ! setVisible(false); attributes.addAll(atts); dispose(); } else { ! setVisible(false); selectedService = null; dispose(); } } ! /** * Retrieves localized messages from the resource bundle. ! * * @param key the key * @return The localized value for the key. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/DocPrintJobImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/DocPrintJobImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/DocPrintJobImpl.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/DocPrintJobImpl.java Tue Oct 12 15:55:12 2010 *************** import javax.print.event.PrintJobEvent; *** 76,127 **** import javax.print.event.PrintJobListener; /** ! * Implementation of the DocPrintJob interface. Implementation is * specific to the IppPrintService implementation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class DocPrintJobImpl implements CancelablePrintJob { /** The print service this job is bound to. */ private IppPrintService service; ! /** The set of print job listeners. */ private HashSet printJobListener = new HashSet(); ! /** The print job attributes listeners. */ private ArrayList attributesListener = new ArrayList(); /** The print job attributes listeners associated attribute set. */ private ArrayList attributesListenerAttributes = new ArrayList(); ! /** The username. */ private String username; /** The password of the user. */ private String password; ! /** Returned job uri. */ private JobUri jobUri = null; /** Returned job id. */ private JobId jobId = null; ! /** The requesting-username for later canceling */ private RequestingUserName requestingUser; ! /** The print job sets. */ private PrintJobAttributeSet oldSet = new HashPrintJobAttributeSet(); private PrintJobAttributeSet currentSet = new HashPrintJobAttributeSet(); ! ! /** * State variable if we already started printing. */ private boolean printing = false; ! // TODO Implement complete PrintJobListener notification // TODO Implement PrintJobAttributeListener notification /** * Constructs a DocPrintJobImpl instance bound to the given print service. ! * * @param service the print service instance. * @param user the user of this print service. * @param passwd the password of the user. --- 76,127 ---- import javax.print.event.PrintJobListener; /** ! * Implementation of the DocPrintJob interface. Implementation is * specific to the IppPrintService implementation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class DocPrintJobImpl implements CancelablePrintJob { /** The print service this job is bound to. */ private IppPrintService service; ! /** The set of print job listeners. */ private HashSet printJobListener = new HashSet(); ! /** The print job attributes listeners. */ private ArrayList attributesListener = new ArrayList(); /** The print job attributes listeners associated attribute set. */ private ArrayList attributesListenerAttributes = new ArrayList(); ! /** The username. */ private String username; /** The password of the user. */ private String password; ! /** Returned job uri. */ private JobUri jobUri = null; /** Returned job id. */ private JobId jobId = null; ! /** The requesting-username for later canceling */ private RequestingUserName requestingUser; ! /** The print job sets. */ private PrintJobAttributeSet oldSet = new HashPrintJobAttributeSet(); private PrintJobAttributeSet currentSet = new HashPrintJobAttributeSet(); ! ! /** * State variable if we already started printing. */ private boolean printing = false; ! // TODO Implement complete PrintJobListener notification // TODO Implement PrintJobAttributeListener notification /** * Constructs a DocPrintJobImpl instance bound to the given print service. ! * * @param service the print service instance. * @param user the user of this print service. * @param passwd the password of the user. *************** public class DocPrintJobImpl implements *** 141,147 **** { if (listener == null) return; ! attributesListener.add(listener); attributesListenerAttributes.add(attributes); } --- 141,147 ---- { if (listener == null) return; ! attributesListener.add(listener); attributesListenerAttributes.add(attributes); } *************** public class DocPrintJobImpl implements *** 153,159 **** { if (listener == null) return; ! printJobListener.add(listener); } --- 153,159 ---- { if (listener == null) return; ! printJobListener.add(listener); } *************** public class DocPrintJobImpl implements *** 181,210 **** { if (printing) throw new PrintException("already printing"); ! printing = true; ! DocAttributeSet docAtts = doc.getAttributes(); DocFlavor flavor = doc.getDocFlavor(); ! if (flavor == null || (!service.isDocFlavorSupported(flavor))) { notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid flavor", new DocFlavor[] {flavor}); } ! ! // merge attributes as doc attributes take precendence // over the print request attributes HashAttributeSet mergedAtts = new HashAttributeSet(); ! if (attributes != null) mergedAtts.addAll(attributes); if (docAtts != null) mergedAtts.addAll(docAtts); ! // check for requesting-user-name -add the // executing username if no other is specified ! // save user name so we can make a cancel operation under same user if (! mergedAtts.containsKey(RequestingUserName.class)) { mergedAtts.add(IppPrintService.REQUESTING_USER_NAME); --- 181,210 ---- { if (printing) throw new PrintException("already printing"); ! printing = true; ! DocAttributeSet docAtts = doc.getAttributes(); DocFlavor flavor = doc.getDocFlavor(); ! if (flavor == null || (!service.isDocFlavorSupported(flavor))) { notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid flavor", new DocFlavor[] {flavor}); } ! ! // merge attributes as doc attributes take precendence // over the print request attributes HashAttributeSet mergedAtts = new HashAttributeSet(); ! if (attributes != null) mergedAtts.addAll(attributes); if (docAtts != null) mergedAtts.addAll(docAtts); ! // check for requesting-user-name -add the // executing username if no other is specified ! // save user name so we can make a cancel operation under same user if (! mergedAtts.containsKey(RequestingUserName.class)) { mergedAtts.add(IppPrintService.REQUESTING_USER_NAME); *************** public class DocPrintJobImpl implements *** 212,264 **** } else { ! requestingUser = (RequestingUserName) mergedAtts.get(RequestingUserName.class); } ! // same for job-name if (! mergedAtts.containsKey(JobName.class)) mergedAtts.add(IppPrintService.JOB_NAME); ! IppResponse response = null; ! try { PrinterURI printerUri = service.getPrinterURI(); String printerUriStr = "http" + printerUri.toString().substring(3); ! URI uri = null; try { uri = new URI(printerUriStr); } ! catch (URISyntaxException e) { ! // does not happen } ! ! IppRequest request = ! new IppRequest(uri, username, password); ! request.setOperationID( (short) OperationsSupported.PRINT_JOB.getValue()); request.setOperationAttributeDefaults(); request.addOperationAttribute(printerUri); ! if (mergedAtts != null) { request.addAndFilterJobOperationAttributes(mergedAtts); request.addAndFilterJobTemplateAttributes(mergedAtts); ! } ! // DocFlavor getMimeType returns charset quoted DocumentFormat format = DocumentFormat.createDocumentFormat(flavor); request.addOperationAttribute(format); ! ! // Get and set the printdata based on the // representation classname ! String className = flavor.getRepresentationClassName(); ! ! if (className.equals("[B")) { request.setData((byte[]) doc.getPrintData()); response = request.send(); --- 212,264 ---- } else { ! requestingUser = (RequestingUserName) mergedAtts.get(RequestingUserName.class); } ! // same for job-name if (! mergedAtts.containsKey(JobName.class)) mergedAtts.add(IppPrintService.JOB_NAME); ! IppResponse response = null; ! try { PrinterURI printerUri = service.getPrinterURI(); String printerUriStr = "http" + printerUri.toString().substring(3); ! URI uri = null; try { uri = new URI(printerUriStr); } ! catch (URISyntaxException e) { ! // does not happen } ! ! IppRequest request = ! new IppRequest(uri, username, password); ! request.setOperationID( (short) OperationsSupported.PRINT_JOB.getValue()); request.setOperationAttributeDefaults(); request.addOperationAttribute(printerUri); ! if (mergedAtts != null) { request.addAndFilterJobOperationAttributes(mergedAtts); request.addAndFilterJobTemplateAttributes(mergedAtts); ! } ! // DocFlavor getMimeType returns charset quoted DocumentFormat format = DocumentFormat.createDocumentFormat(flavor); request.addOperationAttribute(format); ! ! // Get and set the printdata based on the // representation classname ! String className = flavor.getRepresentationClassName(); ! ! if (className.equals("[B")) { request.setData((byte[]) doc.getPrintData()); response = request.send(); *************** public class DocPrintJobImpl implements *** 275,281 **** try { // CUPS only supports UTF-8 currently so we convert ! // We also assume that char[] is always utf-16 - correct ? String str = new String((char[]) doc.getPrintData()); request.setData(str.getBytes("utf-16")); response = request.send(); --- 275,281 ---- try { // CUPS only supports UTF-8 currently so we convert ! // We also assume that char[] is always utf-16 - correct ? String str = new String((char[]) doc.getPrintData()); request.setData(str.getBytes("utf-16")); response = request.send(); *************** public class DocPrintJobImpl implements *** 285,291 **** notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid charset of flavor", e, new DocFlavor[] {flavor}); } ! } else if (className.equals("java.io.Reader")) { try --- 285,291 ---- notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid charset of flavor", e, new DocFlavor[] {flavor}); } ! } else if (className.equals("java.io.Reader")) { try *************** public class DocPrintJobImpl implements *** 300,312 **** notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid charset of flavor", e, new DocFlavor[] {flavor}); } ! } else if (className.equals("java.lang.String")) { try { // CUPS only supports UTF-8 currently so we convert ! // We also assume that String is always utf-16 - correct ? String str = (String) doc.getPrintData(); request.setData(str.getBytes("utf-16")); response = request.send(); --- 300,312 ---- notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid charset of flavor", e, new DocFlavor[] {flavor}); } ! } else if (className.equals("java.lang.String")) { try { // CUPS only supports UTF-8 currently so we convert ! // We also assume that String is always utf-16 - correct ? String str = (String) doc.getPrintData(); request.setData(str.getBytes("utf-16")); response = request.send(); *************** public class DocPrintJobImpl implements *** 316,322 **** notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid charset of flavor", e, new DocFlavor[] {flavor}); } ! } else if (className.equals("java.net.URL")) { URL url = (URL) doc.getPrintData(); --- 316,322 ---- notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid charset of flavor", e, new DocFlavor[] {flavor}); } ! } else if (className.equals("java.net.URL")) { URL url = (URL) doc.getPrintData(); *************** public class DocPrintJobImpl implements *** 332,353 **** // For the future :-) throw new PrintException("Not yet supported."); } ! else { // should not happen - however notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid flavor", new DocFlavor[] {flavor}); ! } ! // at this point the data is transfered notifyPrintJobListeners(new PrintJobEvent( this, PrintJobEvent.DATA_TRANSFER_COMPLETE)); ! } catch (IOException e) { throw new PrintException("IOException occured.", e); ! } ! int status = response.getStatusCode(); if (! (status == IppStatusCode.SUCCESSFUL_OK || status == IppStatusCode.SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES --- 332,353 ---- // For the future :-) throw new PrintException("Not yet supported."); } ! else { // should not happen - however notifyPrintJobListeners(new PrintJobEvent(this, PrintJobEvent.JOB_FAILED)); throw new PrintFlavorException("Invalid flavor", new DocFlavor[] {flavor}); ! } ! // at this point the data is transfered notifyPrintJobListeners(new PrintJobEvent( this, PrintJobEvent.DATA_TRANSFER_COMPLETE)); ! } catch (IOException e) { throw new PrintException("IOException occured.", e); ! } ! int status = response.getStatusCode(); if (! (status == IppStatusCode.SUCCESSFUL_OK || status == IppStatusCode.SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES *************** public class DocPrintJobImpl implements *** 356,362 **** notifyPrintJobListeners(new PrintJobEvent( this, PrintJobEvent.JOB_FAILED)); throw new PrintException("Printing failed - received statuscode " + Integer.toHexString(status)); ! // TODO maybe specific status codes may require to throw a specific // detailed attribute exception } --- 356,362 ---- notifyPrintJobListeners(new PrintJobEvent( this, PrintJobEvent.JOB_FAILED)); throw new PrintException("Printing failed - received statuscode " + Integer.toHexString(status)); ! // TODO maybe specific status codes may require to throw a specific // detailed attribute exception } *************** public class DocPrintJobImpl implements *** 364,381 **** { // start print job progress monitoring thread // FIXME Implement ! // for now we just notify as finished notifyPrintJobListeners( new PrintJobEvent(this, PrintJobEvent.JOB_COMPLETE)); } ! List jobAtts = response.getJobAttributes(); ! // extract the uri and id of job for canceling and further monitoring Map jobAttributes = (Map) jobAtts.get(0); jobUri = (JobUri) ((HashSet)jobAttributes.get(JobUri.class)).toArray()[0]; ! jobId = (JobId) ((HashSet)jobAttributes.get(JobId.class)).toArray()[0]; } /** --- 364,381 ---- { // start print job progress monitoring thread // FIXME Implement ! // for now we just notify as finished notifyPrintJobListeners( new PrintJobEvent(this, PrintJobEvent.JOB_COMPLETE)); } ! List jobAtts = response.getJobAttributes(); ! // extract the uri and id of job for canceling and further monitoring Map jobAttributes = (Map) jobAtts.get(0); jobUri = (JobUri) ((HashSet)jobAttributes.get(JobUri.class)).toArray()[0]; ! jobId = (JobId) ((HashSet)jobAttributes.get(JobId.class)).toArray()[0]; } /** *************** public class DocPrintJobImpl implements *** 385,391 **** { if (listener == null) return; ! int index = attributesListener.indexOf(listener); if (index != -1) { --- 385,391 ---- { if (listener == null) return; ! int index = attributesListener.indexOf(listener); if (index != -1) { *************** public class DocPrintJobImpl implements *** 401,410 **** { if (listener == null) return; ! printJobListener.remove(listener); } ! /** * @see CancelablePrintJob#cancel() */ --- 401,410 ---- { if (listener == null) return; ! printJobListener.remove(listener); } ! /** * @see CancelablePrintJob#cancel() */ *************** public class DocPrintJobImpl implements *** 414,436 **** { throw new PrintException("print job is not yet send"); } ! IppResponse response = null; ! try { ! IppRequest request = new IppRequest(jobUri.getURI(), username, password); request.setOperationID( (short) OperationsSupported.CANCEL_JOB.getValue()); request.setOperationAttributeDefaults(); request.addOperationAttribute(jobUri); request.addOperationAttribute(requestingUser); ! response = request.send(); ! } catch (IOException e) ! { throw new IppException("IOException occured during cancel request.", e); ! } ! int status = response.getStatusCode(); if (! (status == IppStatusCode.SUCCESSFUL_OK || status == IppStatusCode.SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES --- 414,436 ---- { throw new PrintException("print job is not yet send"); } ! IppResponse response = null; ! try { ! IppRequest request = new IppRequest(jobUri.getURI(), username, password); request.setOperationID( (short) OperationsSupported.CANCEL_JOB.getValue()); request.setOperationAttributeDefaults(); request.addOperationAttribute(jobUri); request.addOperationAttribute(requestingUser); ! response = request.send(); ! } catch (IOException e) ! { throw new IppException("IOException occured during cancel request.", e); ! } ! int status = response.getStatusCode(); if (! (status == IppStatusCode.SUCCESSFUL_OK || status == IppStatusCode.SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES *************** public class DocPrintJobImpl implements *** 438,452 **** { notifyPrintJobListeners(new PrintJobEvent( this, PrintJobEvent.JOB_FAILED)); ! throw new PrintException("Canceling failed - received statuscode " + Integer.toHexString(status)); } ! else { notifyPrintJobListeners(new PrintJobEvent( this, PrintJobEvent.JOB_CANCELED)); } } ! private void notifyPrintJobListeners(PrintJobEvent e) { Iterator it = printJobListener.iterator(); --- 438,452 ---- { notifyPrintJobListeners(new PrintJobEvent( this, PrintJobEvent.JOB_FAILED)); ! throw new PrintException("Canceling failed - received statuscode " + Integer.toHexString(status)); } ! else { notifyPrintJobListeners(new PrintJobEvent( this, PrintJobEvent.JOB_CANCELED)); } } ! private void notifyPrintJobListeners(PrintJobEvent e) { Iterator it = printJobListener.iterator(); *************** public class DocPrintJobImpl implements *** 463,471 **** l.printJobFailed(e); else if (e.getPrintEventType() == PrintJobEvent.NO_MORE_EVENTS) l.printJobNoMoreEvents(e); ! else l.printJobRequiresAttention(e); ! } } ! } --- 463,471 ---- l.printJobFailed(e); else if (e.getPrintEventType() == PrintJobEvent.NO_MORE_EVENTS) l.printJobNoMoreEvents(e); ! else l.printJobRequiresAttention(e); ! } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppDelimiterTag.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppDelimiterTag.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppDelimiterTag.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppDelimiterTag.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppDelimiterTag.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppDelimiterTag.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp; *** 42,98 **** /** * IPP Delimiter Tags as described in RFC 2910 section 3.5.1. *

          ! * Every delimiter tag value can occur in the protocol field * begin-attribute-group-tag and indicates that the following * attributes will be part of the named group.
          * The end-of-attributes-tag signals the end of the attributes * section in the IPP request/response and therefore the beginning ! * of the data section (if any). *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class IppDelimiterTag { /** Start of the operation attributes group section. */ public static final byte OPERATION_ATTRIBUTES_TAG = 0x01; ! /** Start of the job attributes group section. */ public static final byte JOB_ATTRIBUTES_TAG = 0x02; ! /** End of the attributes section and begin of data section. */ public static final byte END_OF_ATTRIBUTES_TAG = 0x03; ! /** Start of the printer attributes group section. */ public static final byte PRINTER_ATTRIBUTES_TAG = 0x04; ! /** Start of the unsupported attributes group section. */ public static final byte UNSUPPORTED_ATTRIBUTES_TAG = 0x05; ! ! // 0x00 reserved for definition in a future IETF // standards track document ! // 0x06-0x0f reserved for future delimiters in IETF // standards track documents ! private IppDelimiterTag() { // not to be instantiated } ! /** ! * Tests if given value corresponds to a * delimiter tag value. ! * * @param value the value to test for * @return true if, false otherwise. */ ! public static boolean isDelimiterTag(byte value) { if (value >= 0x01 && value <= 0x05) return true; ! return false; } --- 42,98 ---- /** * IPP Delimiter Tags as described in RFC 2910 section 3.5.1. *

          ! * Every delimiter tag value can occur in the protocol field * begin-attribute-group-tag and indicates that the following * attributes will be part of the named group.
          * The end-of-attributes-tag signals the end of the attributes * section in the IPP request/response and therefore the beginning ! * of the data section (if any). *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class IppDelimiterTag { /** Start of the operation attributes group section. */ public static final byte OPERATION_ATTRIBUTES_TAG = 0x01; ! /** Start of the job attributes group section. */ public static final byte JOB_ATTRIBUTES_TAG = 0x02; ! /** End of the attributes section and begin of data section. */ public static final byte END_OF_ATTRIBUTES_TAG = 0x03; ! /** Start of the printer attributes group section. */ public static final byte PRINTER_ATTRIBUTES_TAG = 0x04; ! /** Start of the unsupported attributes group section. */ public static final byte UNSUPPORTED_ATTRIBUTES_TAG = 0x05; ! ! // 0x00 reserved for definition in a future IETF // standards track document ! // 0x06-0x0f reserved for future delimiters in IETF // standards track documents ! private IppDelimiterTag() { // not to be instantiated } ! /** ! * Tests if given value corresponds to a * delimiter tag value. ! * * @param value the value to test for * @return true if, false otherwise. */ ! public static boolean isDelimiterTag(byte value) { if (value >= 0x01 && value <= 0x05) return true; ! return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppException.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppException.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppException.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.PrintException; *** 44,50 **** * IppException signals exception thrown by * the IPP implementation for various things like a failed * ipp request or a wrapped io exception. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class IppException extends PrintException --- 44,50 ---- * IppException signals exception thrown by * the IPP implementation for various things like a failed * ipp request or a wrapped io exception. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class IppException extends PrintException *************** public class IppException extends PrintE *** 65,71 **** { super(s); } ! /** * Creates an IppException. * @param e the exception cause this one. --- 65,71 ---- { super(s); } ! /** * Creates an IppException. * @param e the exception cause this one. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppMultiDocPrintService.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppMultiDocPrintService.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppMultiDocPrintService.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppMultiDocPrintService.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppMultiDocPrintService.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppMultiDocPrintService.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.MultiDocPrintService; *** 47,71 **** /** * Implementation of the MultiDocPrintService interface * for IPP based printers. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class IppMultiDocPrintService extends IppPrintService implements MultiDocPrintService { /** The username. */ private transient String user; ! /** The password of the user. */ private transient String passwd; /** * Creates a IppMultiDocPrintService object. ! * * @param uri the URI of the IPP printer. * @param username the user of this print service. * @param password the password of the user. ! * * @throws IppException if an error during connection occurs. */ public IppMultiDocPrintService(URI uri, String username, String password) --- 47,71 ---- /** * Implementation of the MultiDocPrintService interface * for IPP based printers. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class IppMultiDocPrintService extends IppPrintService implements MultiDocPrintService { /** The username. */ private transient String user; ! /** The password of the user. */ private transient String passwd; /** * Creates a IppMultiDocPrintService object. ! * * @param uri the URI of the IPP printer. * @param username the user of this print service. * @param password the password of the user. ! * * @throws IppException if an error during connection occurs. */ public IppMultiDocPrintService(URI uri, String username, String password) *************** public class IppMultiDocPrintService ext *** 74,85 **** super(uri, username, password); user = username; passwd = password; ! } /** * @see MultiDocPrintService#createMultiDocPrintJob() */ ! public MultiDocPrintJob createMultiDocPrintJob() { return new MultiDocPrintJobImpl(this, user, passwd); } --- 74,85 ---- super(uri, username, password); user = username; passwd = password; ! } /** * @see MultiDocPrintService#createMultiDocPrintJob() */ ! public MultiDocPrintJob createMultiDocPrintJob() { return new MultiDocPrintJobImpl(this, user, passwd); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppPrintService.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppPrintService.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppPrintService.java Mon Aug 2 13:46:09 2010 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppPrintService.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppPrintService.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppPrintService.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.event.PrintServiceAtt *** 130,304 **** /** * Implementation of the PrintService interface * for IPP based printers. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class IppPrintService implements PrintService { ! /** * A Map with sets of attributes. * key: A attribute category * value: A set with values ! * * IPP may return sets of attributes e.g. for supported * compression methods so we need to map to sets here. */ ! private Map printerAttr; ! /** The set of listeners.*/ ! private HashSet printServiceAttributeListener; ! /** The username. */ private transient String user; ! /** The password of the user. */ private transient String passwd; ! /** The name of this print service. */ private String name; ! /** The list of supported document flavors. */ ! private List flavors; ! /** The standard printer URI. */ private PrinterURI printerUri; ! /** The list of all supported printer URIs. */ ! private ArrayList printerUris; ! /** * Logger for tracing - enable by passing * -Dgnu.classpath.debug.components=ipp to the vm. */ static final Logger logger = SystemLogger.SYSTEM; ! ! /** * requesting-user-name defaults to the executing user. */ public static final RequestingUserName REQUESTING_USER_NAME; ! ! /** * job-name defaults to "Java Printing". */ public static final JobName JOB_NAME; ! static { JOB_NAME = new JobName("Java Printing", null); REQUESTING_USER_NAME = new RequestingUserName( ! SystemProperties.getProperty("user.name", ""), null); } ! // TODO Implement service listener notification and change detection. ! /** * Creates a IppPrintService object. ! * * @param uri the URI of the IPP printer. * @param username the user of this print service. * @param password the password of the user. ! * * @throws IppException if an error during connection occurs. */ ! public IppPrintService(URI uri, String username, String password) throws IppException { printerUri = new PrinterURI(uri); user = username; passwd = password; ! ! printServiceAttributeListener = new HashSet(); ! printerAttr = getPrinterAttributes(); processResponse(); } ! /** * Fetches all printer attributes from the IPP printer. ! * * @return The Map with the printer attributes. * @throws IppException if an error occurs. */ ! private Map getPrinterAttributes() throws IppException { IppResponse response = null; ! try { ! IppRequest request = new IppRequest(printerUri.getURI(), user, passwd); ! int operation = OperationsSupported.GET_PRINTER_ATTRIBUTES.getValue(); ! request.setOperationID((short) operation); ! request.setOperationAttributeDefaults(); request.addOperationAttribute(printerUri); ! response = request.send(); ! } catch (IOException e) { throw new IppException("IOException in IPP request/response.", e); ! } ! ! return (Map) response.getPrinterAttributes().get(0); } ! /** ! * Extracts the set of attribute values for a given * attribute category from the printer attributes map. ! * * @param attributeClass the category * @return The set of attributes of the category. */ ! private Set getPrinterAttributeSet(Class attributeClass) { ! return (Set) printerAttr.get(attributeClass); } ! /** ! * Extracts the default attribute value for the given * default attribute category from the printer attributes map. ! * * @param attributeClass the category * @return The default attribute. ! * * @throws ClassCastException if attributClass is not an * instance of DefaultValueAttribute. */ ! private Attribute getPrinterDefaultAttribute(Class attributeClass) { ! Set set = (Set) printerAttr.get(attributeClass); return ((DefaultValueAttribute) set.toArray()[0]).getAssociatedAttribute(); } ! /** * Processes the response, sorts and splits the attributes. */ private void processResponse() { // printer name ! PrinterName[] tmp = (PrinterName[]) getPrinterAttributeSet( ! PrinterName.class).toArray(new PrinterName[1]); name = tmp[0].getValue(); ! // supported flavors // TODO Check if charsets-supported are charsets that are actually supported // for text doc flavors as cups doesn't send charset parameters ! // utf-8 is supported at least - so we go with this only for now ! flavors = new ArrayList(); ! Set flavorAttributes = getPrinterAttributeSet(DocumentFormatSupported.class); if (flavorAttributes != null) { ! for (Iterator it = flavorAttributes.iterator(); it.hasNext();) { ! String mimeType = ((DocumentFormatSupported) it.next()).getValue(); ! if (mimeType.equals("text/plain")) { flavors.add(DocFlavor.CHAR_ARRAY.TEXT_PLAIN); flavors.add(DocFlavor.READER.TEXT_PLAIN); flavors.add(DocFlavor.STRING.TEXT_PLAIN); ! // add utf-8 mimeType = mimeType + "; charset=utf-8"; } --- 130,309 ---- /** * Implementation of the PrintService interface * for IPP based printers. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class IppPrintService implements PrintService { ! /** * A Map with sets of attributes. * key: A attribute category * value: A set with values ! * * IPP may return sets of attributes e.g. for supported * compression methods so we need to map to sets here. */ ! private Map, Set> printerAttr; ! /** The set of listeners.*/ ! private HashSet printServiceAttributeListener; ! /** The username. */ private transient String user; ! /** The password of the user. */ private transient String passwd; ! /** The name of this print service. */ private String name; ! /** The list of supported document flavors. */ ! private List flavors; ! /** The standard printer URI. */ private PrinterURI printerUri; ! /** The list of all supported printer URIs. */ ! private ArrayList printerUris; ! /** * Logger for tracing - enable by passing * -Dgnu.classpath.debug.components=ipp to the vm. */ static final Logger logger = SystemLogger.SYSTEM; ! ! /** * requesting-user-name defaults to the executing user. */ public static final RequestingUserName REQUESTING_USER_NAME; ! ! /** * job-name defaults to "Java Printing". */ public static final JobName JOB_NAME; ! static { JOB_NAME = new JobName("Java Printing", null); REQUESTING_USER_NAME = new RequestingUserName( ! SystemProperties.getProperty("user.name", ""), null); } ! // TODO Implement service listener notification and change detection. ! /** * Creates a IppPrintService object. ! * * @param uri the URI of the IPP printer. * @param username the user of this print service. * @param password the password of the user. ! * * @throws IppException if an error during connection occurs. */ ! public IppPrintService(URI uri, String username, String password) throws IppException { printerUri = new PrinterURI(uri); user = username; passwd = password; ! ! printServiceAttributeListener = ! new HashSet(); ! printerAttr = getPrinterAttributes(); processResponse(); } ! /** * Fetches all printer attributes from the IPP printer. ! * * @return The Map with the printer attributes. * @throws IppException if an error occurs. */ ! private Map, Set> getPrinterAttributes() ! throws IppException { IppResponse response = null; ! try { ! IppRequest request = new IppRequest(printerUri.getURI(), user, passwd); ! int operation = OperationsSupported.GET_PRINTER_ATTRIBUTES.getValue(); ! request.setOperationID((short) operation); ! request.setOperationAttributeDefaults(); request.addOperationAttribute(printerUri); ! response = request.send(); ! } catch (IOException e) { throw new IppException("IOException in IPP request/response.", e); ! } ! ! return response.getPrinterAttributes().get(0); } ! /** ! * Extracts the set of attribute values for a given * attribute category from the printer attributes map. ! * * @param attributeClass the category * @return The set of attributes of the category. */ ! private Set getPrinterAttributeSet(Class attributeClass) { ! Set set = printerAttr.get(attributeClass); ! Set attSet = new HashSet(); ! for (Attribute att : set) ! attSet.add(attributeClass.cast(att)); ! return attSet; } ! /** ! * Extracts the default attribute value for the given * default attribute category from the printer attributes map. ! * * @param attributeClass the category * @return The default attribute. ! * * @throws ClassCastException if attributClass is not an * instance of DefaultValueAttribute. */ ! private Attribute getPrinterDefaultAttribute(Class attributeClass) { ! Set set = printerAttr.get(attributeClass); return ((DefaultValueAttribute) set.toArray()[0]).getAssociatedAttribute(); } ! /** * Processes the response, sorts and splits the attributes. */ private void processResponse() { // printer name ! PrinterName[] tmp = getPrinterAttributeSet(PrinterName.class).toArray(new PrinterName[1]); name = tmp[0].getValue(); ! // supported flavors // TODO Check if charsets-supported are charsets that are actually supported // for text doc flavors as cups doesn't send charset parameters ! // utf-8 is supported at least - so we go with this only for now ! flavors = new ArrayList(); ! Set flavorAttributes = getPrinterAttributeSet(DocumentFormatSupported.class); if (flavorAttributes != null) { ! for (DocumentFormatSupported dfs : flavorAttributes) { ! String mimeType = dfs.getValue(); ! if (mimeType.equals("text/plain")) { flavors.add(DocFlavor.CHAR_ARRAY.TEXT_PLAIN); flavors.add(DocFlavor.READER.TEXT_PLAIN); flavors.add(DocFlavor.STRING.TEXT_PLAIN); ! // add utf-8 mimeType = mimeType + "; charset=utf-8"; } *************** public class IppPrintService implements *** 307,327 **** flavors.add(DocFlavor.CHAR_ARRAY.TEXT_HTML); flavors.add(DocFlavor.READER.TEXT_HTML); flavors.add(DocFlavor.STRING.TEXT_HTML); ! // add utf-8 mimeType = mimeType + "; charset=utf-8"; } ! // Process the predefined DocFlavors and if mimetype is // equal put them into the flavors array - otherwise // just build them as binarie class representation. boolean changed = false; try { ! Class[] clazzes = new Class[] { DocFlavor.BYTE_ARRAY.class, ! DocFlavor.INPUT_STREAM.class, ! DocFlavor.URL.class }; ! for (int j = 0; j < clazzes.length; j++) { Field[] fields = clazzes[j].getDeclaredFields(); --- 312,333 ---- flavors.add(DocFlavor.CHAR_ARRAY.TEXT_HTML); flavors.add(DocFlavor.READER.TEXT_HTML); flavors.add(DocFlavor.STRING.TEXT_HTML); ! // add utf-8 mimeType = mimeType + "; charset=utf-8"; } ! // Process the predefined DocFlavors and if mimetype is // equal put them into the flavors array - otherwise // just build them as binarie class representation. boolean changed = false; try { ! Class[] clazzes = new Class[] { DocFlavor.BYTE_ARRAY.class, ! DocFlavor.INPUT_STREAM.class, ! DocFlavor.URL.class ! }; ! for (int j = 0; j < clazzes.length; j++) { Field[] fields = clazzes[j].getDeclaredFields(); *************** public class IppPrintService implements *** 336,342 **** } } if (!changed) // not in predefined constants of DocFlavor ! { // everything should be supported as binary stuff flavors.add(new DocFlavor(mimeType, "[B")); flavors.add(new DocFlavor(mimeType, "java.io.InputStream")); --- 342,348 ---- } } if (!changed) // not in predefined constants of DocFlavor ! { // everything should be supported as binary stuff flavors.add(new DocFlavor(mimeType, "[B")); flavors.add(new DocFlavor(mimeType, "java.io.InputStream")); *************** public class IppPrintService implements *** 357,410 **** } } ! if (this.getClass() ! .isAssignableFrom(gnu.javax.print.CupsPrintService.class)) ! { ! // CUPS always provides filters to convert from Postscript. ! // This logic looks odd, but it's what OpenJDK does. ! flavors.add(DocFlavor.SERVICE_FORMATTED.PAGEABLE); ! flavors.add(DocFlavor.SERVICE_FORMATTED.PRINTABLE); ! } } // printer uris ! Set uris = getPrinterAttributeSet(PrinterUriSupported.class); ! printerUris = new ArrayList(uris.size()); ! Iterator it = uris.iterator(); ! while (it.hasNext()) { - PrinterUriSupported uri = (PrinterUriSupported) it.next(); printerUris.add( new PrinterURI(uri.getURI())); } } /** * We always return a implementation implementing CancelablePrintJob. ! * * @see javax.print.PrintService#createPrintJob() */ public DocPrintJob createPrintJob() { return new DocPrintJobImpl(this, user, passwd); } ! /** * @see javax.print.PrintService#getAttribute(java.lang.Class) */ ! public PrintServiceAttribute getAttribute(Class category) { if (category == null) throw new NullPointerException("category may not be null"); ! if (! PrintServiceAttribute.class.isAssignableFrom(category)) throw new IllegalArgumentException( "category must be of type PrintServiceAttribute"); ! ! Set set = getPrinterAttributeSet(category); ! if (set != null && set.size() > 0) ! return (PrintServiceAttribute) set.toArray()[0]; ! return null; } --- 363,414 ---- } } ! if (this.getClass() ! .isAssignableFrom(gnu.javax.print.CupsPrintService.class)) ! { ! // CUPS always provides filters to convert from Postscript. ! // This logic looks odd, but it's what OpenJDK does. ! flavors.add(DocFlavor.SERVICE_FORMATTED.PAGEABLE); ! flavors.add(DocFlavor.SERVICE_FORMATTED.PRINTABLE); ! } } // printer uris ! Set uris = getPrinterAttributeSet(PrinterUriSupported.class); ! printerUris = new ArrayList(uris.size()); ! for (PrinterUriSupported uri : uris) { printerUris.add( new PrinterURI(uri.getURI())); } } /** * We always return a implementation implementing CancelablePrintJob. ! * * @see javax.print.PrintService#createPrintJob() */ public DocPrintJob createPrintJob() { return new DocPrintJobImpl(this, user, passwd); } ! /** * @see javax.print.PrintService#getAttribute(java.lang.Class) */ ! public T getAttribute(Class category) { if (category == null) throw new NullPointerException("category may not be null"); ! if (! PrintServiceAttribute.class.isAssignableFrom(category)) throw new IllegalArgumentException( "category must be of type PrintServiceAttribute"); ! ! Set set = getPrinterAttributeSet(category); ! if (set != null && set.size() > 0) ! return set.iterator().next(); ! return null; } *************** public class IppPrintService implements *** 414,494 **** public PrintServiceAttributeSet getAttributes() { PrintServiceAttributeSet set = new HashPrintServiceAttributeSet(); ! ! Iterator it = printerAttr.values().iterator(); ! while (it.hasNext()) ! { ! Iterator it2 = ((Set) it.next()).iterator(); ! while (it2.hasNext()) { - Attribute attr = (Attribute) it2.next(); if (attr instanceof PrintServiceAttribute) set.add(attr); } } ! return AttributeSetUtilities.unmodifiableView(set); } /** * @see javax.print.PrintService#getDefaultAttributeValue(java.lang.Class) */ ! public Object getDefaultAttributeValue(Class category) ! { // required attributes if (category.equals(Fidelity.class)) ! return Fidelity.FIDELITY_FALSE; if (category.equals(JobName.class)) return JOB_NAME; if (category.equals(RequestingUserName.class)) return REQUESTING_USER_NAME; ! // optional attributes ! if (category.equals(JobPriority.class) && printerAttr.containsKey(JobPriorityDefault.class)) return getPrinterDefaultAttribute(JobPriorityDefault.class); ! if (category.equals(JobHoldUntil.class) && printerAttr.containsKey(JobHoldUntilDefault.class)) return getPrinterDefaultAttribute(JobHoldUntilDefault.class); ! if (category.equals(JobSheets.class) && printerAttr.containsKey(JobSheetsDefault.class)) return getPrinterDefaultAttribute(JobSheetsDefault .class); ! if (category.equals(MultipleDocumentHandling.class) && printerAttr.containsKey(MultipleDocumentHandlingDefault.class)) return getPrinterDefaultAttribute(MultipleDocumentHandlingDefault.class); ! if (category.equals(Copies.class) && printerAttr.containsKey(CopiesDefault.class)) return getPrinterDefaultAttribute(CopiesDefault.class); ! if (category.equals(Finishings.class) && printerAttr.containsKey(FinishingsDefault.class)) return getPrinterDefaultAttribute(FinishingsDefault.class); ! if (category.equals(Sides.class) && printerAttr.containsKey(SidesDefault.class)) return getPrinterDefaultAttribute(SidesDefault.class); ! if (category.equals(NumberUp.class) && printerAttr.containsKey(NumberUpDefault.class)) return getPrinterDefaultAttribute(NumberUpDefault.class); ! if (category.equals(OrientationRequested.class) && printerAttr.containsKey(OrientationRequestedDefault.class)) return getPrinterDefaultAttribute(OrientationRequestedDefault.class); ! if (category.equals(Media.class) && printerAttr.containsKey(MediaDefault.class)) return getPrinterDefaultAttribute(MediaDefault.class); ! if (category.equals(PrinterResolution.class) && printerAttr.containsKey(PrinterResolutionDefault.class)) return getPrinterDefaultAttribute(PrinterResolutionDefault.class); ! if (category.equals(PrintQuality.class) && printerAttr.containsKey(PrintQualityDefault.class)) return getPrinterDefaultAttribute(PrintQualityDefault.class); ! if (category.equals(Compression.class) && printerAttr.containsKey(CompressionSupported.class)) return Compression.NONE; if (category.equals(PageRanges.class)) return new PageRanges(1, Integer.MAX_VALUE); ! return null; } ! /** * We return the value of PrinterName here. * @see javax.print.PrintService#getName() --- 418,495 ---- public PrintServiceAttributeSet getAttributes() { PrintServiceAttributeSet set = new HashPrintServiceAttributeSet(); ! ! for (Set attrSet : printerAttr.values()) ! { ! for (Attribute attr : attrSet) { if (attr instanceof PrintServiceAttribute) set.add(attr); } } ! return AttributeSetUtilities.unmodifiableView(set); } /** * @see javax.print.PrintService#getDefaultAttributeValue(java.lang.Class) */ ! public Object getDefaultAttributeValue(Class category) ! { // required attributes if (category.equals(Fidelity.class)) ! return Fidelity.FIDELITY_FALSE; if (category.equals(JobName.class)) return JOB_NAME; if (category.equals(RequestingUserName.class)) return REQUESTING_USER_NAME; ! // optional attributes ! if (category.equals(JobPriority.class) && printerAttr.containsKey(JobPriorityDefault.class)) return getPrinterDefaultAttribute(JobPriorityDefault.class); ! if (category.equals(JobHoldUntil.class) && printerAttr.containsKey(JobHoldUntilDefault.class)) return getPrinterDefaultAttribute(JobHoldUntilDefault.class); ! if (category.equals(JobSheets.class) && printerAttr.containsKey(JobSheetsDefault.class)) return getPrinterDefaultAttribute(JobSheetsDefault .class); ! if (category.equals(MultipleDocumentHandling.class) && printerAttr.containsKey(MultipleDocumentHandlingDefault.class)) return getPrinterDefaultAttribute(MultipleDocumentHandlingDefault.class); ! if (category.equals(Copies.class) && printerAttr.containsKey(CopiesDefault.class)) return getPrinterDefaultAttribute(CopiesDefault.class); ! if (category.equals(Finishings.class) && printerAttr.containsKey(FinishingsDefault.class)) return getPrinterDefaultAttribute(FinishingsDefault.class); ! if (category.equals(Sides.class) && printerAttr.containsKey(SidesDefault.class)) return getPrinterDefaultAttribute(SidesDefault.class); ! if (category.equals(NumberUp.class) && printerAttr.containsKey(NumberUpDefault.class)) return getPrinterDefaultAttribute(NumberUpDefault.class); ! if (category.equals(OrientationRequested.class) && printerAttr.containsKey(OrientationRequestedDefault.class)) return getPrinterDefaultAttribute(OrientationRequestedDefault.class); ! if (category.equals(Media.class) && printerAttr.containsKey(MediaDefault.class)) return getPrinterDefaultAttribute(MediaDefault.class); ! if (category.equals(PrinterResolution.class) && printerAttr.containsKey(PrinterResolutionDefault.class)) return getPrinterDefaultAttribute(PrinterResolutionDefault.class); ! if (category.equals(PrintQuality.class) && printerAttr.containsKey(PrintQualityDefault.class)) return getPrinterDefaultAttribute(PrintQualityDefault.class); ! if (category.equals(Compression.class) && printerAttr.containsKey(CompressionSupported.class)) return Compression.NONE; if (category.equals(PageRanges.class)) return new PageRanges(1, Integer.MAX_VALUE); ! return null; } ! /** * We return the value of PrinterName here. * @see javax.print.PrintService#getName() *************** public class IppPrintService implements *** 506,512 **** { // SUN does not provide any service factory for // print services (tested on linux/windows) ! // for the moment we do the same - just return null // later on we could provide at least the about UI dialog return null; --- 507,513 ---- { // SUN does not provide any service factory for // print services (tested on linux/windows) ! // for the moment we do the same - just return null // later on we could provide at least the about UI dialog return null; *************** public class IppPrintService implements *** 515,525 **** /** * @see javax.print.PrintService#getSupportedAttributeCategories() */ ! public Class[] getSupportedAttributeCategories() { ! Set categories = new HashSet(); ! ! // Should only be job template attributes as of section 4.2 if (printerAttr.containsKey(JobPrioritySupported.class)) categories.add(JobPriority.class); if (printerAttr.containsKey(JobHoldUntilSupported.class)) --- 516,527 ---- /** * @see javax.print.PrintService#getSupportedAttributeCategories() */ ! public Class[] getSupportedAttributeCategories() { ! Set> categories = ! new HashSet>(); ! ! // Should only be job template attributes as of section 4.2 if (printerAttr.containsKey(JobPrioritySupported.class)) categories.add(JobPriority.class); if (printerAttr.containsKey(JobHoldUntilSupported.class)) *************** public class IppPrintService implements *** 527,540 **** if (printerAttr.containsKey(JobSheetsSupported.class)) categories.add(JobSheets.class); if (printerAttr.containsKey(MultipleDocumentHandlingSupported.class)) ! categories.add(MultipleDocumentHandling.class); if (printerAttr.containsKey(CopiesSupported.class)) categories.add(Copies.class); if (printerAttr.containsKey(FinishingsSupported.class)) { // if only none finishing is supported - it does not count as supported ! Set set = getPrinterAttributeSet(FinishingsSupported.class); ! if (! (set.size() == 1 && set.contains(FinishingsSupported.NONE))) categories.add(Finishings.class); } if (printerAttr.containsKey(PageRangesSupported.class)) --- 529,542 ---- if (printerAttr.containsKey(JobSheetsSupported.class)) categories.add(JobSheets.class); if (printerAttr.containsKey(MultipleDocumentHandlingSupported.class)) ! categories.add(MultipleDocumentHandling.class); if (printerAttr.containsKey(CopiesSupported.class)) categories.add(Copies.class); if (printerAttr.containsKey(FinishingsSupported.class)) { // if only none finishing is supported - it does not count as supported ! Set set = getPrinterAttributeSet(FinishingsSupported.class); ! if (! (set.size() == 1 && set.contains(FinishingsSupported.NONE))) categories.add(Finishings.class); } if (printerAttr.containsKey(PageRangesSupported.class)) *************** public class IppPrintService implements *** 551,561 **** categories.add(PrinterResolution.class); if (printerAttr.containsKey(PrintQualitySupported.class)) categories.add(PrintQuality.class); ! ! // Chromaticity, Destination, MediaPrintableArea, // SheetCollate, PresentationDirection - not IPP attributes ! ! // attributes outside section 4.2 if (printerAttr.containsKey(CompressionSupported.class)) categories.add(Compression.class); if (printerAttr.containsKey(JobImpressionsSupported.class)) --- 553,563 ---- categories.add(PrinterResolution.class); if (printerAttr.containsKey(PrintQualitySupported.class)) categories.add(PrintQuality.class); ! ! // Chromaticity, Destination, MediaPrintableArea, // SheetCollate, PresentationDirection - not IPP attributes ! ! // attributes outside section 4.2 if (printerAttr.containsKey(CompressionSupported.class)) categories.add(Compression.class); if (printerAttr.containsKey(JobImpressionsSupported.class)) *************** public class IppPrintService implements *** 564,576 **** categories.add(JobKOctets.class); if (printerAttr.containsKey(JobMediaSheetsSupported.class)) categories.add(JobMediaSheets.class); ! // always supported as required by IPP specification categories.add(Fidelity.class); categories.add(JobName.class); categories.add(RequestingUserName.class); ! return (Class[]) categories.toArray(new Class[categories.size()]); } /** --- 566,578 ---- categories.add(JobKOctets.class); if (printerAttr.containsKey(JobMediaSheetsSupported.class)) categories.add(JobMediaSheets.class); ! // always supported as required by IPP specification categories.add(Fidelity.class); categories.add(JobName.class); categories.add(RequestingUserName.class); ! return categories.toArray(new Class[categories.size()]); } /** *************** public class IppPrintService implements *** 578,589 **** * attribute values totally different may override this methods. Subclass only in * need of handling the response differently may override the method * handleSupportedAttributeValuesResponse(IppResponse, Class) only. ! * * @see PrintService#getSupportedAttributeValues(Class, DocFlavor, AttributeSet) * @see #handleSupportedAttributeValuesResponse(IppResponse, Class) */ ! public Object getSupportedAttributeValues(Class category, DocFlavor flavor, ! AttributeSet attributes) { // We currently ignore the attribute set - there is nothing in the IPP // specification which would come closer to what we do here. --- 580,591 ---- * attribute values totally different may override this methods. Subclass only in * need of handling the response differently may override the method * handleSupportedAttributeValuesResponse(IppResponse, Class) only. ! * * @see PrintService#getSupportedAttributeValues(Class, DocFlavor, AttributeSet) * @see #handleSupportedAttributeValuesResponse(IppResponse, Class) */ ! public Object getSupportedAttributeValues(Class category, ! DocFlavor flavor, AttributeSet attributes) { // We currently ignore the attribute set - there is nothing in the IPP // specification which would come closer to what we do here. *************** public class IppPrintService implements *** 620,626 **** request.setOperationAttributeDefaults(); request.addOperationAttribute(new RequestedAttributes(categoryName)); request.addOperationAttribute(printerUri); ! if (flavor != null) { DocumentFormat f = DocumentFormat.createDocumentFormat(flavor); --- 622,628 ---- request.setOperationAttributeDefaults(); request.addOperationAttribute(new RequestedAttributes(categoryName)); request.addOperationAttribute(printerUri); ! if (flavor != null) { DocumentFormat f = DocumentFormat.createDocumentFormat(flavor); *************** public class IppPrintService implements *** 628,634 **** } response = request.send(); ! int status = response.getStatusCode(); if (! (status == IppStatusCode.SUCCESSFUL_OK || status == IppStatusCode.SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES --- 630,636 ---- } response = request.send(); ! int status = response.getStatusCode(); if (! (status == IppStatusCode.SUCCESSFUL_OK || status == IppStatusCode.SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES *************** public class IppPrintService implements *** 647,687 **** // method cannot throw exception - just log logger.log(Component.IPP, "IPPException", e); } ! return handleSupportedAttributeValuesResponse(response, category); } ! /** * Called to handle the supported attribute values response for the given * category. This might be overridden by subclasses with different requirements * for parsing/handling the response from the GetPrinterAttributes. ! * * @param response the response of the GetPrinterAttributes IPP request * @param category the category for which the supported values are requested ! * @return A object indicating the supported values for the given attribute ! * category, or null if this print service doesn't support the * given attribute category at all. ! * * @see #getSupportedAttributeValues(Class, DocFlavor, AttributeSet) */ ! protected Object handleSupportedAttributeValuesResponse(IppResponse response, ! Class category) { ! List printerAtts = response.getPrinterAttributes(); ! // only one will be returned ! Map printerAttribute = (Map) printerAtts.get(0); ! Class suppCategory = IppUtilities.getSupportedCategory(category); ! Set attr = (Set) printerAttribute.get(suppCategory); ! ! // We sometime assume its a single instance with arbritrary value just indicating // support or an array which is returned. This is because I sometimes just choosed ! // what sounds right to me - as I have yet to find a printer which supports every // special category in the SUN implementation to see what they return :-) ! // Map whats in the JSP API if (suppCategory.equals(JobPrioritySupported.class)) ! return (JobPrioritySupported) attr.toArray(new JobPrioritySupported[1])[0]; if (suppCategory.equals(JobHoldUntilSupported.class)) return new JobHoldUntil(new Date()); if (suppCategory.equals(JobSheetsSupported.class)) --- 649,690 ---- // method cannot throw exception - just log logger.log(Component.IPP, "IPPException", e); } ! return handleSupportedAttributeValuesResponse(response, category); } ! /** * Called to handle the supported attribute values response for the given * category. This might be overridden by subclasses with different requirements * for parsing/handling the response from the GetPrinterAttributes. ! * * @param response the response of the GetPrinterAttributes IPP request * @param category the category for which the supported values are requested ! * @return A object indicating the supported values for the given attribute ! * category, or null if this print service doesn't support the * given attribute category at all. ! * * @see #getSupportedAttributeValues(Class, DocFlavor, AttributeSet) */ ! protected Object handleSupportedAttributeValuesResponse(IppResponse response, ! Class category) { ! List, Set>> printerAtts = ! response.getPrinterAttributes(); ! // only one will be returned ! Map, Set> printerAttribute = printerAtts.get(0); ! Class suppCategory = IppUtilities.getSupportedCategory(category); ! Set attr = printerAttribute.get(suppCategory); ! ! // We sometime assume its a single instance with arbritrary value just indicating // support or an array which is returned. This is because I sometimes just choosed ! // what sounds right to me - as I have yet to find a printer which supports every // special category in the SUN implementation to see what they return :-) ! // Map whats in the JSP API if (suppCategory.equals(JobPrioritySupported.class)) ! return (JobPrioritySupported) attr.iterator().next(); if (suppCategory.equals(JobHoldUntilSupported.class)) return new JobHoldUntil(new Date()); if (suppCategory.equals(JobSheetsSupported.class)) *************** public class IppPrintService implements *** 689,699 **** if (suppCategory.equals(MultipleDocumentHandlingSupported.class)) return MultipleDocumentHandlingSupported.getAssociatedAttributeArray(attr); if (suppCategory.equals(CopiesSupported.class)) ! return (CopiesSupported) attr.toArray(new CopiesSupported[1])[0]; if (suppCategory.equals(FinishingsSupported.class)) return FinishingsSupported.getAssociatedAttributeArray(attr); if (suppCategory.equals(PageRangesSupported.class)) ! return new PageRanges[] { new PageRanges(1, Integer.MAX_VALUE) }; if (suppCategory.equals(OrientationRequestedSupported.class)) return OrientationRequestedSupported.getAssociatedAttributeArray(attr); if (suppCategory.equals(MediaSupported.class)) --- 692,702 ---- if (suppCategory.equals(MultipleDocumentHandlingSupported.class)) return MultipleDocumentHandlingSupported.getAssociatedAttributeArray(attr); if (suppCategory.equals(CopiesSupported.class)) ! return (CopiesSupported) attr.iterator().next(); if (suppCategory.equals(FinishingsSupported.class)) return FinishingsSupported.getAssociatedAttributeArray(attr); if (suppCategory.equals(PageRangesSupported.class)) ! return new PageRanges[] { new PageRanges(1, Integer.MAX_VALUE) }; if (suppCategory.equals(OrientationRequestedSupported.class)) return OrientationRequestedSupported.getAssociatedAttributeArray(attr); if (suppCategory.equals(MediaSupported.class)) *************** public class IppPrintService implements *** 707,742 **** // Special handling as it might also be in range of integers if (suppCategory.equals(NumberUpSupported.class)) { - NumberUpSupported[] tmp = (NumberUpSupported[]) - attr.toArray(new NumberUpSupported[attr.size()]); - if (attr.size() == 1) // number-up maybe in rangeofintegers ! return tmp[0]; int[][] members = new int[attr.size()][2]; for (int j = 0; j < attr.size(); j++) { ! int value = tmp[j].getMembers()[0][0]; members[j] = new int[] { value, value }; } NumberUpSupported supported = new NumberUpSupported(members); return supported; } ! return null; ! } ! /** * @see javax.print.PrintService#getSupportedDocFlavors() */ public DocFlavor[] getSupportedDocFlavors() { ! return (DocFlavor[]) flavors.toArray(new DocFlavor[flavors.size()]); } /** ! * This is done by a validate-job operation and actually implemented in * this generic IPP reference implementation. Subclasses which does * not correctly support Validate-Job operation might want to override this. * --- 710,743 ---- // Special handling as it might also be in range of integers if (suppCategory.equals(NumberUpSupported.class)) { if (attr.size() == 1) // number-up maybe in rangeofintegers ! return attr.iterator().next(); int[][] members = new int[attr.size()][2]; + Iterator it = attr.iterator(); for (int j = 0; j < attr.size(); j++) { ! int value = ((NumberUpSupported) it.next()).getMembers()[0][0]; members[j] = new int[] { value, value }; } NumberUpSupported supported = new NumberUpSupported(members); return supported; } ! return null; ! } ! /** * @see javax.print.PrintService#getSupportedDocFlavors() */ public DocFlavor[] getSupportedDocFlavors() { ! return flavors.toArray(new DocFlavor[flavors.size()]); } /** ! * This is done by a validate-job operation and actually implemented in * this generic IPP reference implementation. Subclasses which does * not correctly support Validate-Job operation might want to override this. * *************** public class IppPrintService implements *** 744,750 **** */ public AttributeSet getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes) ! { if (flavor != null && !isDocFlavorSupported(flavor)) throw new IllegalArgumentException("flavor is not supported"); --- 745,751 ---- */ public AttributeSet getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes) ! { if (flavor != null && !isDocFlavorSupported(flavor)) throw new IllegalArgumentException("flavor is not supported"); *************** public class IppPrintService implements *** 757,777 **** request.setOperationAttributeDefaults(); request.addOperationAttribute(printerUri); request.addOperationAttribute(Fidelity.FIDELITY_TRUE); ! if (attributes != null && attributes.size() > 0) { request.addAndFilterJobOperationAttributes(attributes); request.addAndFilterJobTemplateAttributes(attributes); } ! if (flavor != null) { DocumentFormat f = DocumentFormat.createDocumentFormat(flavor); request.addOperationAttribute(f); } ! response = request.send(); ! int status = response.getStatusCode(); if (! (status == IppStatusCode.SUCCESSFUL_OK || status == IppStatusCode.SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES --- 758,778 ---- request.setOperationAttributeDefaults(); request.addOperationAttribute(printerUri); request.addOperationAttribute(Fidelity.FIDELITY_TRUE); ! if (attributes != null && attributes.size() > 0) { request.addAndFilterJobOperationAttributes(attributes); request.addAndFilterJobTemplateAttributes(attributes); } ! if (flavor != null) { DocumentFormat f = DocumentFormat.createDocumentFormat(flavor); request.addOperationAttribute(f); } ! response = request.send(); ! int status = response.getStatusCode(); if (! (status == IppStatusCode.SUCCESSFUL_OK || status == IppStatusCode.SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES *************** public class IppPrintService implements *** 791,831 **** logger.log(Component.IPP, "IPPException", e); } ! // Validate Jobs returns only Unsupported and Operation ! List unsupportedMaps = response.getUnsupportedAttributes(); if (unsupportedMaps.size() == 0) ! return null; ! ! Map unsupportedAttr = (Map) unsupportedMaps.get(0); if (unsupportedAttr.size() == 0) return null; ! ! // Convert the return map with unsupported attributes // into an AttribueSet instance HashAttributeSet set = new HashAttributeSet(); ! Iterator it = unsupportedAttr.values().iterator(); ! while (it.hasNext()) { ! Set unsupported = (Set) it.next(); ! Iterator it2 = unsupported.iterator(); ! while (it2.hasNext()) ! set.add((Attribute) it2.next()); } ! return set; } /** * @see PrintService#isAttributeCategorySupported(Class) */ ! public boolean isAttributeCategorySupported(Class category) { if (category == null) throw new NullPointerException("category may not be null"); ! if (! Attribute.class.isAssignableFrom(category)) throw new IllegalArgumentException("category must be of type Attribute"); ! return Arrays.asList(getSupportedAttributeCategories()).contains(category); } --- 792,830 ---- logger.log(Component.IPP, "IPPException", e); } ! // Validate Jobs returns only Unsupported and Operation ! List, Set>> unsupportedMaps = ! response.getUnsupportedAttributes(); if (unsupportedMaps.size() == 0) ! return null; ! ! Map, Set> unsupportedAttr = unsupportedMaps.get(0); if (unsupportedAttr.size() == 0) return null; ! ! // Convert the return map with unsupported attributes // into an AttribueSet instance HashAttributeSet set = new HashAttributeSet(); ! for (Set unsupported : unsupportedAttr.values()) { ! for (Attribute att : unsupported) ! set.add(att); } ! return set; } /** * @see PrintService#isAttributeCategorySupported(Class) */ ! public boolean isAttributeCategorySupported(Class category) { if (category == null) throw new NullPointerException("category may not be null"); ! if (! Attribute.class.isAssignableFrom(category)) throw new IllegalArgumentException("category must be of type Attribute"); ! return Arrays.asList(getSupportedAttributeCategories()).contains(category); } *************** public class IppPrintService implements *** 835,862 **** public boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes) { ! // just redirect to getSupportedAttributeValues ! Object values = getSupportedAttributeValues(attrval.getCategory(), ! flavor, attributes); // null means none supported if (values == null) return false; ! // object may be an array if (values.getClass().isArray()) return Arrays.asList((Object[]) values).contains(attrval); ! // may be a single instance of the category (value is irrelevant) if (values.getClass().equals(attrval.getCategory())) return true; ! ! // a single instance of another class to give the bounds // copies if (values.getClass().equals(CopiesSupported.class)) ! return ((CopiesSupported) values).contains((IntegerSyntax) attrval); // number up if (values.getClass().equals(NumberUpSupported.class)) ! return ((NumberUpSupported) values).contains((IntegerSyntax) attrval); // job priority if (values.getClass().equals(JobPrioritySupported.class)) { --- 834,861 ---- public boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes) { ! // just redirect to getSupportedAttributeValues ! Object values = getSupportedAttributeValues(attrval.getCategory(), ! flavor, attributes); // null means none supported if (values == null) return false; ! // object may be an array if (values.getClass().isArray()) return Arrays.asList((Object[]) values).contains(attrval); ! // may be a single instance of the category (value is irrelevant) if (values.getClass().equals(attrval.getCategory())) return true; ! ! // a single instance of another class to give the bounds // copies if (values.getClass().equals(CopiesSupported.class)) ! return ((CopiesSupported) values).contains((IntegerSyntax) attrval); // number up if (values.getClass().equals(NumberUpSupported.class)) ! return ((NumberUpSupported) values).contains((IntegerSyntax) attrval); // job priority if (values.getClass().equals(JobPrioritySupported.class)) { *************** public class IppPrintService implements *** 865,879 **** if (priority.getValue() < maxSupported.getValue()) return true; } ! ! // I am unsure if these might also show up - not yet found a printer where ! // Suns implementation supports them: // JobImpressionsSupported, JobKOctetsSupported, JobMediaSheetsSupported ! return false; } ! /** * @see javax.print.PrintService#isDocFlavorSupported(DocFlavor) */ --- 864,878 ---- if (priority.getValue() < maxSupported.getValue()) return true; } ! ! // I am unsure if these might also show up - not yet found a printer where ! // Suns implementation supports them: // JobImpressionsSupported, JobKOctetsSupported, JobMediaSheetsSupported ! return false; } ! /** * @see javax.print.PrintService#isDocFlavorSupported(DocFlavor) */ *************** public class IppPrintService implements *** 881,891 **** { if (flavor == null) throw new NullPointerException("DocFlavor may not be null."); ! return flavors.contains(flavor); } ! /** * @see PrintService#addPrintServiceAttributeListener(PrintServiceAttributeListener) */ --- 880,890 ---- { if (flavor == null) throw new NullPointerException("DocFlavor may not be null."); ! return flavors.contains(flavor); } ! /** * @see PrintService#addPrintServiceAttributeListener(PrintServiceAttributeListener) */ *************** public class IppPrintService implements *** 894,900 **** { printServiceAttributeListener.add(listener); } ! /** * @see PrintService#removePrintServiceAttributeListener(PrintServiceAttributeListener) */ --- 893,899 ---- { printServiceAttributeListener.add(listener); } ! /** * @see PrintService#removePrintServiceAttributeListener(PrintServiceAttributeListener) */ *************** public class IppPrintService implements *** 903,909 **** { printServiceAttributeListener.remove(listener); } ! /** * Returns "IppPrinter: " + getName() * @return The string representation. --- 902,908 ---- { printServiceAttributeListener.remove(listener); } ! /** * Returns "IppPrinter: " + getName() * @return The string representation. *************** public class IppPrintService implements *** 911,925 **** public String toString() { return "IppPrinter: " + getName(); ! } ! /** * Returns the printer-uri of this print service. ! * * @return The printer-uri attribute. */ public PrinterURI getPrinterURI() { return printerUri; ! } } --- 910,924 ---- public String toString() { return "IppPrinter: " + getName(); ! } ! /** * Returns the printer-uri of this print service. ! * * @return The printer-uri attribute. */ public PrinterURI getPrinterURI() { return printerUri; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppRequest.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppRequest.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppRequest.java Mon Aug 2 13:46:09 2010 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppRequest.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IppRequest.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppRequest.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Si *** 112,148 **** *
        34. data - q bytes - optional
        35. * *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class IppRequest { /** ! * The printer-poll timeout. */ private static final int timeout = 1000; /** * Helper class used to write the attributes of a request * into the supplied data output stream in the correct way. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ class RequestWriter ! { private DataOutputStream out; ! /** * Creates a RequestWriter. ! * * @param stream the stream to write to. */ RequestWriter(DataOutputStream stream) { out = stream; } ! /** * Writes an attribute in IntegerSyntax into the stream. * @param attribute the attribute --- 112,148 ---- *
        36. data - q bytes - optional
        37. * *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class IppRequest { /** ! * The printer-poll timeout. */ private static final int timeout = 1000; /** * Helper class used to write the attributes of a request * into the supplied data output stream in the correct way. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ class RequestWriter ! { private DataOutputStream out; ! /** * Creates a RequestWriter. ! * * @param stream the stream to write to. */ RequestWriter(DataOutputStream stream) { out = stream; } ! /** * Writes an attribute in IntegerSyntax into the stream. * @param attribute the attribute *************** public class IppRequest *** 218,224 **** out.write(name.getBytes()); } else ! out.writeShort(0x0000); // only name-length out.writeShort(8); // range is 8 bytes out.writeInt(ranges[i][0]); --- 218,224 ---- out.write(name.getBytes()); } else ! out.writeShort(0x0000); // only name-length out.writeShort(8); // range is 8 bytes out.writeInt(ranges[i][0]); *************** public class IppRequest *** 283,289 **** } out.writeByte(directionFromUTC); ! out.writeByte(offsetInMillis / 3600000); // hours out.writeByte((offsetInMillis % 3600000) / 60000); // minutes } --- 283,289 ---- } out.writeByte(directionFromUTC); ! out.writeByte(offsetInMillis / 3600000); // hours out.writeByte((offsetInMillis % 3600000) / 60000); // minutes } *************** public class IppRequest *** 295,301 **** * of NAME value-tag in IPP this method checks for these attributes and * writes them as NAME_WITHOUT_LANGUAGE value-tag into the stream. *

          ! * * @param attribute the attribute * @param out the stream to write to * @throws IOException if thrown by the stream --- 295,301 ---- * of NAME value-tag in IPP this method checks for these attributes and * writes them as NAME_WITHOUT_LANGUAGE value-tag into the stream. *

          ! * * @param attribute the attribute * @param out the stream to write to * @throws IOException if thrown by the stream *************** public class IppRequest *** 314,324 **** out.writeByte(IppValueTag.MIME_MEDIA_TYPE); else out.writeByte(IppValueTag.TEXT_WITHOUT_LANGUAGE); ! out.writeShort(name.length()); out.write(name.getBytes()); out.writeShort(attribute.getValue().length()); ! out.write(attribute.getValue().getBytes()); } /** --- 314,324 ---- out.writeByte(IppValueTag.MIME_MEDIA_TYPE); else out.writeByte(IppValueTag.TEXT_WITHOUT_LANGUAGE); ! out.writeShort(name.length()); out.write(name.getBytes()); out.writeShort(attribute.getValue().length()); ! out.write(attribute.getValue().getBytes()); } /** *************** public class IppRequest *** 347,354 **** * @throws IOException if thrown by the stream */ private void write(CharsetSyntax attribute) throws IOException ! { ! String name = ((Attribute) attribute).getName(); out.writeByte(IppValueTag.CHARSET); out.writeShort(name.length()); out.write(name.getBytes()); --- 347,354 ---- * @throws IOException if thrown by the stream */ private void write(CharsetSyntax attribute) throws IOException ! { ! String name = ((Attribute) attribute).getName(); out.writeByte(IppValueTag.CHARSET); out.writeShort(name.length()); out.write(name.getBytes()); *************** public class IppRequest *** 371,377 **** out.writeShort(attribute.getValue().length()); out.write(attribute.getValue().getBytes()); } ! /** * Writes an attribute in RequestedAttributes into the stream. * @param attribute the attribute --- 371,377 ---- out.writeShort(attribute.getValue().length()); out.write(attribute.getValue().getBytes()); } ! /** * Writes an attribute in RequestedAttributes into the stream. * @param attribute the attribute *************** public class IppRequest *** 380,411 **** */ private void write(RequestedAttributes attribute) throws IOException { ! List values = attribute.getValues(); ! String name = ((Attribute) attribute).getName(); out.writeByte(IppValueTag.KEYWORD); out.writeShort(name.length()); ! out.write(name.getBytes()); ! out.writeShort(((String) values.get(0)).length()); ! out.write(((String) values.get(0)).getBytes()); ! ! for (int i=1; i < values.size(); i++) { out.writeByte(IppValueTag.KEYWORD); out.writeShort(0x0000); // length for additional value ! out.writeShort(((String) values.get(i)).length()); ! out.write(((String) values.get(i)).getBytes()); } ! } - /** * Writes the given operation attribute group of the given map instance * (key=group, values=set of attributes) into the supplied data * output stream. ! * * @param attributes the set with the attributes. ! * * @throws IOException if thrown by the used DataOutputStream. * @throws IppException if unknown attributes occur. */ --- 380,411 ---- */ private void write(RequestedAttributes attribute) throws IOException { ! String[] values = attribute.getValues(); ! String name = ((Attribute) attribute).getName(); out.writeByte(IppValueTag.KEYWORD); out.writeShort(name.length()); ! out.write(name.getBytes()); ! out.writeShort(values[0].length()); ! out.write(values[0].getBytes()); ! ! for (int i=1; i < values.length; i++) { out.writeByte(IppValueTag.KEYWORD); out.writeShort(0x0000); // length for additional value ! out.writeShort(values[i].length()); ! out.write(values[i].getBytes()); } ! } ! /** * Writes the given operation attribute group of the given map instance * (key=group, values=set of attributes) into the supplied data * output stream. ! * * @param attributes the set with the attributes. ! * * @throws IOException if thrown by the used DataOutputStream. * @throws IppException if unknown attributes occur. */ *************** public class IppRequest *** 413,441 **** throws IOException, IppException { out.write(IppDelimiterTag.OPERATION_ATTRIBUTES_TAG); ! // its essential to write these two in this order and as first ones Attribute att = attributes.get(AttributesCharset.class); write((CharsetSyntax) att); ! ! logger.log(Component.IPP, "Attribute: Name: <" ! + att.getCategory().getName() + "> Value: <" + att.toString() + ">"); ! attributes.remove(AttributesCharset.class); ! att = attributes.get(AttributesNaturalLanguage.class); write((NaturalLanguageSyntax) att); attributes.remove(AttributesNaturalLanguage.class); ! ! logger.log(Component.IPP, "Attribute: Name: <" + att.getCategory().getName() + "> Value: <" + att.toString() + ">"); ! // furthermore its essential to now write out the target attribute PrinterURI printerUri = (PrinterURI) attributes.get(PrinterURI.class); JobUri jobUri = (JobUri) attributes.get(JobUri.class); JobId jobId = (JobId) attributes.get(JobId.class); ! RequestedAttributes reqAttrs ! = (RequestedAttributes)attributes.get(RequestedAttributes.class); if (printerUri != null && jobId == null && jobUri == null) { write(printerUri); --- 413,441 ---- throws IOException, IppException { out.write(IppDelimiterTag.OPERATION_ATTRIBUTES_TAG); ! // its essential to write these two in this order and as first ones Attribute att = attributes.get(AttributesCharset.class); write((CharsetSyntax) att); ! ! logger.log(Component.IPP, "Attribute: Name: <" ! + att.getCategory().getName() + "> Value: <" + att.toString() + ">"); ! attributes.remove(AttributesCharset.class); ! att = attributes.get(AttributesNaturalLanguage.class); write((NaturalLanguageSyntax) att); attributes.remove(AttributesNaturalLanguage.class); ! ! logger.log(Component.IPP, "Attribute: Name: <" + att.getCategory().getName() + "> Value: <" + att.toString() + ">"); ! // furthermore its essential to now write out the target attribute PrinterURI printerUri = (PrinterURI) attributes.get(PrinterURI.class); JobUri jobUri = (JobUri) attributes.get(JobUri.class); JobId jobId = (JobId) attributes.get(JobId.class); ! RequestedAttributes reqAttrs ! = (RequestedAttributes)attributes.get(RequestedAttributes.class); if (printerUri != null && jobId == null && jobUri == null) { write(printerUri); *************** public class IppRequest *** 470,495 **** .getName() + "> Value: <" + jobUri.toString() + ">"); } else if (reqAttrs != null) ! { ! write(reqAttrs); ! attributes.remove(RequestedAttributes.class); ! logger.log(Component.IPP, "RequestedAttributes: <" + reqAttrs + ">"); ! } else { throw new IppException("Unknown target operation attribute combination."); ! } ! writeAttributes(attributes); } ! /** * Writes the given attribute groups of the given map instance * (key=group, values=set of attributes) into the supplied data * output stream. ! * * @param attributes the set with the attributes. ! * * @throws IOException if thrown by the used DataOutputStream. * @throws IppException if unknown attributes occur. */ --- 470,495 ---- .getName() + "> Value: <" + jobUri.toString() + ">"); } else if (reqAttrs != null) ! { ! write(reqAttrs); ! attributes.remove(RequestedAttributes.class); ! logger.log(Component.IPP, "RequestedAttributes: <" + reqAttrs + ">"); ! } else { throw new IppException("Unknown target operation attribute combination."); ! } ! writeAttributes(attributes); } ! /** * Writes the given attribute groups of the given map instance * (key=group, values=set of attributes) into the supplied data * output stream. ! * * @param attributes the set with the attributes. ! * * @throws IOException if thrown by the used DataOutputStream. * @throws IppException if unknown attributes occur. */ *************** public class IppRequest *** 500,508 **** for (int i = 0; i < attributeArray.length; i++) { logger.log(Component.IPP, "Attribute: Name: <" + attributeArray[i] ! .getCategory().getName() + "> Value: <" ! + attributeArray[i].toString() + ">"); ! if (attributeArray[i] instanceof IntegerSyntax) write((IntegerSyntax) attributeArray[i]); else if (attributeArray[i] instanceof TextSyntax) --- 500,508 ---- for (int i = 0; i < attributeArray.length; i++) { logger.log(Component.IPP, "Attribute: Name: <" + attributeArray[i] ! .getCategory().getName() + "> Value: <" ! + attributeArray[i].toString() + ">"); ! if (attributeArray[i] instanceof IntegerSyntax) write((IntegerSyntax) attributeArray[i]); else if (attributeArray[i] instanceof TextSyntax) *************** public class IppRequest *** 551,558 **** /** The operation type of this request. */ private short operation_id; ! /** ! * The request id of this request. This is * assigned automatically by the constructor. */ private final int request_id; --- 551,558 ---- /** The operation type of this request. */ private short operation_id; ! /** ! * The request id of this request. This is * assigned automatically by the constructor. */ private final int request_id; *************** public class IppRequest *** 564,611 **** private AttributeSet jobAttributes; private Object data; ! private URI requestUri; /** The underlying connection - IPP is http based */ private HttpURLConnection connection; ! /** * Creates an IPPRequest instance. ! * * @param uri the URI of the request * @param user the user if any * @param password the password of the supplied user */ public IppRequest(URI uri, String user, String password) ! { request_id = incrementRequestIdCounter(); requestUri = uri; ! try { ! URL url = new URL("http", ! user == null ! ? uri.getHost() : user + ":" ! + password + "@" + uri.getHost(), uri.getPort(), uri.getPath()); ! connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); ! connection.setRequestProperty("Content-type", "application/ipp"); ! connection.setRequestProperty("Accept", "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"); ! } catch (IOException e) { // MalformedURLException - uri is already checked // ProtocolException - POST is correct method type ! // IOException -HTTPURLConnection constructor actually // does never throw this exception. logger.log(Component.IPP, "Unexpected IOException", e); } ! logger.log(Component.IPP, "[IppConnection] Host: " + uri.getHost() + " Port: " + uri.getPort() + " Path: " + uri.getPath()); --- 564,611 ---- private AttributeSet jobAttributes; private Object data; ! private URI requestUri; /** The underlying connection - IPP is http based */ private HttpURLConnection connection; ! /** * Creates an IPPRequest instance. ! * * @param uri the URI of the request * @param user the user if any * @param password the password of the supplied user */ public IppRequest(URI uri, String user, String password) ! { request_id = incrementRequestIdCounter(); requestUri = uri; ! try { ! URL url = new URL("http", ! user == null ! ? uri.getHost() : user + ":" ! + password + "@" + uri.getHost(), uri.getPort(), uri.getPath()); ! connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); ! connection.setRequestProperty("Content-type", "application/ipp"); ! connection.setRequestProperty("Accept", "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"); ! } catch (IOException e) { // MalformedURLException - uri is already checked // ProtocolException - POST is correct method type ! // IOException -HTTPURLConnection constructor actually // does never throw this exception. logger.log(Component.IPP, "Unexpected IOException", e); } ! logger.log(Component.IPP, "[IppConnection] Host: " + uri.getHost() + " Port: " + uri.getPort() + " Path: " + uri.getPath()); *************** public class IppRequest *** 614,620 **** /** * Synchronized method to be called by the constructor * to assign a unique request id to this request. ! * * @return The unique request id. */ private synchronized int incrementRequestIdCounter() --- 614,620 ---- /** * Synchronized method to be called by the constructor * to assign a unique request id to this request. ! * * @return The unique request id. */ private synchronized int incrementRequestIdCounter() *************** public class IppRequest *** 624,630 **** /** * Returns the id of this request. ! * * @return The request ID. */ public int getRequestID() --- 624,630 ---- /** * Returns the id of this request. ! * * @return The request ID. */ public int getRequestID() *************** public class IppRequest *** 632,642 **** return request_id; } ! /** ! * Sets the data of the request. The data used in this * request will be the one of the supplied inputstream * instead of the alternative byte array possibility. ! * * @param stream the input stream to use for the data. */ public void setData(InputStream stream) --- 632,642 ---- return request_id; } ! /** ! * Sets the data of the request. The data used in this * request will be the one of the supplied inputstream * instead of the alternative byte array possibility. ! * * @param stream the input stream to use for the data. */ public void setData(InputStream stream) *************** public class IppRequest *** 644,654 **** data = stream; } ! /** ! * Sets the data of the request. The data used in this * request will be the one of the supplied byte[] * instead of the alternative input stream possibility. ! * * @param bytes the byte[] to use for the data. */ public void setData(byte[] bytes) --- 644,654 ---- data = stream; } ! /** ! * Sets the data of the request. The data used in this * request will be the one of the supplied byte[] * instead of the alternative input stream possibility. ! * * @param bytes the byte[] to use for the data. */ public void setData(byte[] bytes) *************** public class IppRequest *** 658,664 **** /** * Sets the operation id for this request. ! * * @param id the operation id. */ public void setOperationID(short id) --- 658,664 ---- /** * Sets the operation id for this request. ! * * @param id the operation id. */ public void setOperationID(short id) *************** public class IppRequest *** 668,674 **** /** * Adds the default values for the operation ! * attributes "attributes-charset" and * "attributes-natural-language" */ public void setOperationAttributeDefaults() --- 668,674 ---- /** * Adds the default values for the operation ! * attributes "attributes-charset" and * "attributes-natural-language" */ public void setOperationAttributeDefaults() *************** public class IppRequest *** 679,742 **** operationAttributes.add(AttributesCharset.UTF8); operationAttributes.add(AttributesNaturalLanguage.EN); } ! /** * Add the job attribute of this request to the given * attribute set. ! * * @param attribute the job attribute. */ public void addJobAttribute(Attribute attribute) { if (jobAttributes == null) jobAttributes = new HashAttributeSet(); ! jobAttributes.add(attribute); } ! /** * Sets the printer attribute of this request to the given * attribute set. ! * * @param attribute the printer attribute. */ public void addPrinterAttributes(Attribute attribute) { if (printerAttributes == null) printerAttributes = new HashAttributeSet(); ! printerAttributes.add(attribute); } /** * Adds the given attribute to the operation attributes set. ! * * @param attribute the operation attribute to add. */ public void addOperationAttribute(Attribute attribute) { if (operationAttributes == null) operationAttributes = new HashAttributeSet(); ! operationAttributes.add(attribute); } ! /** * Filters from the given attribute set the job operation out * and adds them to the operation attributes set. ! * * @param set the attributes to filter, may not be null. */ public void addAndFilterJobOperationAttributes(AttributeSet set) { if (operationAttributes == null) operationAttributes = new HashAttributeSet(); ! // document-natural-language - not defined in JPS attributes // document-format - specified outside, special treatment Attribute[] tmp = set.toArray(); ! for (int i = 0; i < tmp.length; i++) ! { if (tmp[i].getCategory().equals(JobName.class) || tmp[i].getCategory().equals(Fidelity.class) || tmp[i].getCategory().equals(JobImpressions.class) --- 679,742 ---- operationAttributes.add(AttributesCharset.UTF8); operationAttributes.add(AttributesNaturalLanguage.EN); } ! /** * Add the job attribute of this request to the given * attribute set. ! * * @param attribute the job attribute. */ public void addJobAttribute(Attribute attribute) { if (jobAttributes == null) jobAttributes = new HashAttributeSet(); ! jobAttributes.add(attribute); } ! /** * Sets the printer attribute of this request to the given * attribute set. ! * * @param attribute the printer attribute. */ public void addPrinterAttributes(Attribute attribute) { if (printerAttributes == null) printerAttributes = new HashAttributeSet(); ! printerAttributes.add(attribute); } /** * Adds the given attribute to the operation attributes set. ! * * @param attribute the operation attribute to add. */ public void addOperationAttribute(Attribute attribute) { if (operationAttributes == null) operationAttributes = new HashAttributeSet(); ! operationAttributes.add(attribute); } ! /** * Filters from the given attribute set the job operation out * and adds them to the operation attributes set. ! * * @param set the attributes to filter, may not be null. */ public void addAndFilterJobOperationAttributes(AttributeSet set) { if (operationAttributes == null) operationAttributes = new HashAttributeSet(); ! // document-natural-language - not defined in JPS attributes // document-format - specified outside, special treatment Attribute[] tmp = set.toArray(); ! for (int i = 0; i < tmp.length; i++) ! { if (tmp[i].getCategory().equals(JobName.class) || tmp[i].getCategory().equals(Fidelity.class) || tmp[i].getCategory().equals(JobImpressions.class) *************** public class IppRequest *** 745,771 **** || tmp[i].getCategory().equals(Compression.class) || tmp[i].getCategory().equals(DocumentName.class) || tmp[i].getCategory().equals(RequestingUserName.class)) ! ! operationAttributes.add(tmp[i]); ! } } ! /** * Filters from the given attribute set the job template attributes * out and adds them to the job attributes set. ! * * @param set the attributes to filter, may not be null. */ public void addAndFilterJobTemplateAttributes(AttributeSet set) { if (jobAttributes == null) jobAttributes = new HashAttributeSet(); ! // document-natural-language - not defined in JPS attributes // document-format - specified outside, special treatment Attribute[] tmp = set.toArray(); ! for (int i = 0; i < tmp.length; i++) ! { if (tmp[i].getCategory().equals(JobPriority.class) || tmp[i].getCategory().equals(JobHoldUntil.class) || tmp[i].getCategory().equals(JobSheets.class) --- 745,771 ---- || tmp[i].getCategory().equals(Compression.class) || tmp[i].getCategory().equals(DocumentName.class) || tmp[i].getCategory().equals(RequestingUserName.class)) ! ! operationAttributes.add(tmp[i]); ! } } ! /** * Filters from the given attribute set the job template attributes * out and adds them to the job attributes set. ! * * @param set the attributes to filter, may not be null. */ public void addAndFilterJobTemplateAttributes(AttributeSet set) { if (jobAttributes == null) jobAttributes = new HashAttributeSet(); ! // document-natural-language - not defined in JPS attributes // document-format - specified outside, special treatment Attribute[] tmp = set.toArray(); ! for (int i = 0; i < tmp.length; i++) ! { if (tmp[i].getCategory().equals(JobPriority.class) || tmp[i].getCategory().equals(JobHoldUntil.class) || tmp[i].getCategory().equals(JobSheets.class) *************** public class IppRequest *** 780,846 **** || tmp[i].getCategory().equals(PrintQuality.class) || tmp[i].getCategory().equals(SheetCollate.class) || tmp[i].getCategory().equals(Sides.class)) ! ! jobAttributes.add(tmp[i]); ! } } /** * Does some validation of the supplied parameters and then * sends the request to the ipp server or service. ! * * @return The response if any. ! * * @throws IllegalStateException if request is already sent * @throws IppException if connection or request failed. ! * @throws IOException if writing of the header, attributes or footer fails. */ public IppResponse send() throws IppException, IOException { if (alreadySent) throw new IllegalStateException("Request is already sent"); ! alreadySent = true; ! ! OutputStream stream = connection.getOutputStream(); DataOutputStream out = new DataOutputStream(stream); ! // the header 8 bytes long out.writeShort(VERSION); out.writeShort(operation_id); out.writeInt(request_id); ! ! logger.log(Component.IPP, "OperationID: " + Integer.toHexString(operation_id) ! + " RequestID: " + request_id); ! // Pass stuff the the attribute writer which knows how to // write the attributes in correct order logger.log(Component.IPP, "Operation Attributes"); ! RequestWriter writer = new RequestWriter(out); ! writer.writeOperationAttributes(operationAttributes); ! if (jobAttributes != null) { logger.log(Component.IPP, "Job Attributes"); out.write(IppDelimiterTag.JOB_ATTRIBUTES_TAG); writer.writeAttributes(jobAttributes); ! } if (printerAttributes != null) { logger.log(Component.IPP, "Printer Attributes"); out.write(IppDelimiterTag.PRINTER_ATTRIBUTES_TAG); writer.writeAttributes(printerAttributes); ! } // write the delimiter to the data ! out.write(IppDelimiterTag.END_OF_ATTRIBUTES_TAG); // check if data is byte[] or inputstream if (data instanceof InputStream) { byte[] readbuf = new byte[2048]; ! int len = 0; while( (len = ((InputStream) data).read(readbuf)) > 0) out.write(readbuf, 0, len); } --- 780,846 ---- || tmp[i].getCategory().equals(PrintQuality.class) || tmp[i].getCategory().equals(SheetCollate.class) || tmp[i].getCategory().equals(Sides.class)) ! ! jobAttributes.add(tmp[i]); ! } } /** * Does some validation of the supplied parameters and then * sends the request to the ipp server or service. ! * * @return The response if any. ! * * @throws IllegalStateException if request is already sent * @throws IppException if connection or request failed. ! * @throws IOException if writing of the header, attributes or footer fails. */ public IppResponse send() throws IppException, IOException { if (alreadySent) throw new IllegalStateException("Request is already sent"); ! alreadySent = true; ! ! OutputStream stream = connection.getOutputStream(); DataOutputStream out = new DataOutputStream(stream); ! // the header 8 bytes long out.writeShort(VERSION); out.writeShort(operation_id); out.writeInt(request_id); ! ! logger.log(Component.IPP, "OperationID: " + Integer.toHexString(operation_id) ! + " RequestID: " + request_id); ! // Pass stuff the the attribute writer which knows how to // write the attributes in correct order logger.log(Component.IPP, "Operation Attributes"); ! RequestWriter writer = new RequestWriter(out); ! writer.writeOperationAttributes(operationAttributes); ! if (jobAttributes != null) { logger.log(Component.IPP, "Job Attributes"); out.write(IppDelimiterTag.JOB_ATTRIBUTES_TAG); writer.writeAttributes(jobAttributes); ! } if (printerAttributes != null) { logger.log(Component.IPP, "Printer Attributes"); out.write(IppDelimiterTag.PRINTER_ATTRIBUTES_TAG); writer.writeAttributes(printerAttributes); ! } // write the delimiter to the data ! out.write(IppDelimiterTag.END_OF_ATTRIBUTES_TAG); // check if data is byte[] or inputstream if (data instanceof InputStream) { byte[] readbuf = new byte[2048]; ! int len = 0; while( (len = ((InputStream) data).read(readbuf)) > 0) out.write(readbuf, 0, len); } *************** public class IppRequest *** 848,874 **** { out.write((byte[]) data); } ! out.flush(); ! stream.flush(); ! // Set the connection timeout, for if the printer is offline. // FIXME: The print services polling should probably be done in its // own thread. connection.setConnectTimeout( timeout ); int responseCode = connection.getResponseCode(); ! if (responseCode == HttpURLConnection.HTTP_OK) ! { ! IppResponse response = new IppResponse(requestUri, operation_id); ! response.setResponseData(connection.getInputStream()); return response; } logger.log(Component.IPP, "HTTP-Statuscode: " + responseCode); ! throw new IppException("Request failed got HTTP status code " + responseCode); } --- 848,874 ---- { out.write((byte[]) data); } ! out.flush(); ! stream.flush(); ! // Set the connection timeout, for if the printer is offline. // FIXME: The print services polling should probably be done in its // own thread. connection.setConnectTimeout( timeout ); int responseCode = connection.getResponseCode(); ! if (responseCode == HttpURLConnection.HTTP_OK) ! { ! IppResponse response = new IppResponse(requestUri, operation_id); ! response.setResponseData(connection.getInputStream()); return response; } logger.log(Component.IPP, "HTTP-Statuscode: " + responseCode); ! throw new IppException("Request failed got HTTP status code " + responseCode); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppResponse.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppResponse.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppResponse.java Mon Aug 2 13:46:09 2010 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppResponse.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppResponse.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppResponse.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Pr *** 99,107 **** import javax.print.attribute.standard.Severity; /** ! * IppResponse models a response received from an IPP * compatible server as described in RFC 2910 IPP 1.1 Encoding and Transport. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class IppResponse --- 99,107 ---- import javax.print.attribute.standard.Severity; /** ! * IppResponse models a response received from an IPP * compatible server as described in RFC 2910 IPP 1.1 Encoding and Transport. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class IppResponse *************** public class IppResponse *** 112,118 **** * response stream. It provides access to the attribute groups after parsing * via getter methods. *

          ! * The enconding of a response is structured as follows (for an official * description please have a look at the RFC document mentioned above): *

            *
          • version-number - 2 bytes - required
          • --- 112,118 ---- * response stream. It provides access to the attribute groups after parsing * via getter methods. *

            ! * The enconding of a response is structured as follows (for an official * description please have a look at the RFC document mentioned above): *

              *
            • version-number - 2 bytes - required
            • *************** public class IppResponse *** 122,140 **** *
            • end-of-attributes-tag - 1 byte - required
            • *
            • data - q bytes - optional
            • *
            ! *

            * Where each attribute-group (if any) is encoded as follows: *

              *
            • begin-attribute-group-tag - 1 byte
            • *
            • attribute - p bytes - 0 or more
            • *
            ! *

            * Encoding of attributes: *

              *
            • attribute-with-one-value - q bytes
            • *
            • additional-value - r bytes - 0 or more
            • *
            ! *

            * Encoding of attribute-with-one-value: *

              *
            • value-tag - 1 byte
            • --- 122,140 ---- *
            • end-of-attributes-tag - 1 byte - required
            • *
            • data - q bytes - optional
            • *
            ! *

            * Where each attribute-group (if any) is encoded as follows: *

              *
            • begin-attribute-group-tag - 1 byte
            • *
            • attribute - p bytes - 0 or more
            • *
            ! *

            * Encoding of attributes: *

              *
            • attribute-with-one-value - q bytes
            • *
            • additional-value - r bytes - 0 or more
            • *
            ! *

            * Encoding of attribute-with-one-value: *

              *
            • value-tag - 1 byte
            • *************** public class IppResponse *** 143,149 **** *
            • value-length (value is v) - 2 bytes
            • *
            • value - v bytes
            • *
            ! *

            * Encoding of additional value: *

              *
            • value-tag - 1 byte
            • --- 143,149 ---- *
            • value-length (value is v) - 2 bytes
            • *
            • value - v bytes
            • *
            ! *

            * Encoding of additional value: *

              *
            • value-tag - 1 byte
            • *************** public class IppResponse *** 152,172 **** *
            • value - w bytes
            • *
            *

            ! * * @author Wolfgang Baer (WBaer@gmx.de) */ class ResponseReader { /** The IPP version defaults to 1.1 */ private static final short VERSION = 0x0101; ! /** * Parses the inputstream containing the response of the IPP request. * @param input the inputstream * @throws IppException if unexpected exceptions occur. * @throws IOException if IO problems with the underlying inputstream occur. */ ! public void parseResponse(InputStream input) throws IppException, IOException { DataInputStream stream = new DataInputStream(input); --- 152,172 ---- *
          • value - w bytes
          • *
          *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ class ResponseReader { /** The IPP version defaults to 1.1 */ private static final short VERSION = 0x0101; ! /** * Parses the inputstream containing the response of the IPP request. * @param input the inputstream * @throws IppException if unexpected exceptions occur. * @throws IOException if IO problems with the underlying inputstream occur. */ ! public void parseResponse(InputStream input) throws IppException, IOException { DataInputStream stream = new DataInputStream(input); *************** public class IppResponse *** 179,190 **** throw new IppException("Version mismatch - " + "implementation does not support other versions than IPP 1.1"); ! logger.log(Component.IPP, "Statuscode: " + Integer.toHexString(status_code) + " Request-ID: " + request_id); byte tag = 0; boolean proceed = true; ! HashMap tmp; // iterate over attribute-groups until end-of-attributes-tag is found while (proceed) { --- 179,190 ---- throw new IppException("Version mismatch - " + "implementation does not support other versions than IPP 1.1"); ! logger.log(Component.IPP, "Statuscode: " + Integer.toHexString(status_code) + " Request-ID: " + request_id); byte tag = 0; boolean proceed = true; ! HashMap, Set> tmp; // iterate over attribute-groups until end-of-attributes-tag is found while (proceed) { *************** public class IppResponse *** 200,222 **** proceed = false; break; case IppDelimiterTag.OPERATION_ATTRIBUTES_TAG: ! tmp = new HashMap(); tag = parseAttributes(tmp, stream); operationAttributes.add(tmp); break; case IppDelimiterTag.JOB_ATTRIBUTES_TAG: ! tmp = new HashMap(); tag = parseAttributes(tmp, stream); jobAttributes.add(tmp); break; case IppDelimiterTag.PRINTER_ATTRIBUTES_TAG: ! tmp = new HashMap(); tag = parseAttributes(tmp, stream); printerAttributes.add(tmp); break; case IppDelimiterTag.UNSUPPORTED_ATTRIBUTES_TAG: System.out.println("Called"); ! tmp = new HashMap(); tag = parseAttributes(tmp, stream); unsupportedAttributes.add(tmp); break; --- 200,222 ---- proceed = false; break; case IppDelimiterTag.OPERATION_ATTRIBUTES_TAG: ! tmp = new HashMap, Set>(); tag = parseAttributes(tmp, stream); operationAttributes.add(tmp); break; case IppDelimiterTag.JOB_ATTRIBUTES_TAG: ! tmp = new HashMap, Set>(); tag = parseAttributes(tmp, stream); jobAttributes.add(tmp); break; case IppDelimiterTag.PRINTER_ATTRIBUTES_TAG: ! tmp = new HashMap, Set>(); tag = parseAttributes(tmp, stream); printerAttributes.add(tmp); break; case IppDelimiterTag.UNSUPPORTED_ATTRIBUTES_TAG: System.out.println("Called"); ! tmp = new HashMap, Set>(); tag = parseAttributes(tmp, stream); unsupportedAttributes.add(tmp); break; *************** public class IppResponse *** 247,253 **** * @throws IppException if unexpected exceptions occur. * @throws IOException if IO problems with the underlying inputstream occur. */ ! private byte parseAttributes(Map attributes, DataInputStream stream) throws IppException, IOException { Attribute lastAttribute = null; --- 247,254 ---- * @throws IppException if unexpected exceptions occur. * @throws IOException if IO problems with the underlying inputstream occur. */ ! private byte parseAttributes(Map, Set> attributes, ! DataInputStream stream) throws IppException, IOException { Attribute lastAttribute = null; *************** public class IppResponse *** 294,300 **** // (4) The value itself value = new byte[valueLength]; ! stream.read(value); // the value itself switch (tag) --- 295,301 ---- // (4) The value itself value = new byte[valueLength]; ! stream.read(value); // the value itself switch (tag) *************** public class IppResponse *** 304,315 **** case IppValueTag.UNKNOWN: // TODO implement out-of-band handling // We currently throw an exception to see when it occurs - not yet :-) ! throw new IppException( "Unexpected name value for out-of-band value tag " + tag); case IppValueTag.NO_VALUE: ! attribute = null; ! break; case IppValueTag.INTEGER: int intValue = IppUtilities.convertToInt(value); attribute = IppUtilities.getIntegerAttribute(name, intValue); --- 305,316 ---- case IppValueTag.UNKNOWN: // TODO implement out-of-band handling // We currently throw an exception to see when it occurs - not yet :-) ! throw new IppException( "Unexpected name value for out-of-band value tag " + tag); case IppValueTag.NO_VALUE: ! attribute = null; ! break; case IppValueTag.INTEGER: int intValue = IppUtilities.convertToInt(value); attribute = IppUtilities.getIntegerAttribute(name, intValue); *************** public class IppResponse *** 319,329 **** // JPS API models boolean syntax type as enums // 0x01 = true, 0x00 = false - all are enums attribute = IppUtilities.getEnumAttribute(name, new Integer(value[0])); ! break; case IppValueTag.ENUM: ! int intVal = IppUtilities.convertToInt(value); ! attribute = IppUtilities.getEnumAttribute(name, new Integer(intVal)); break; case IppValueTag.OCTECTSTRING_UNSPECIFIED: --- 320,330 ---- // JPS API models boolean syntax type as enums // 0x01 = true, 0x00 = false - all are enums attribute = IppUtilities.getEnumAttribute(name, new Integer(value[0])); ! break; case IppValueTag.ENUM: ! int intVal = IppUtilities.convertToInt(value); ! attribute = IppUtilities.getEnumAttribute(name, new Integer(intVal)); break; case IppValueTag.OCTECTSTRING_UNSPECIFIED: *************** public class IppResponse *** 347,353 **** int crossFeed = IppUtilities.convertToInt(value[0], value[1], value[2], value[3]); int feed = IppUtilities.convertToInt(value[4], value[5], value[6], value[7]); int units = value[8]; ! if (name.equals("printer-resolution-default")) attribute = new PrinterResolutionDefault(crossFeed, feed, units); else if (name.equals("printer-resolution-supported")) // may be here also --- 348,354 ---- int crossFeed = IppUtilities.convertToInt(value[0], value[1], value[2], value[3]); int feed = IppUtilities.convertToInt(value[4], value[5], value[6], value[7]); int units = value[8]; ! if (name.equals("printer-resolution-default")) attribute = new PrinterResolutionDefault(crossFeed, feed, units); else if (name.equals("printer-resolution-supported")) // may be here also *************** public class IppResponse *** 362,368 **** attribute = new CopiesSupported(lower, upper); else if (name.equals("number-up-supported")) attribute = new NumberUpSupported(lower, upper); ! else if (name.equals("job-k-octets-supported")) attribute = new JobKOctetsSupported(lower, upper); else if (name.equals("job-impressions-supported")) attribute = new JobImpressionsSupported(lower, upper); --- 363,369 ---- attribute = new CopiesSupported(lower, upper); else if (name.equals("number-up-supported")) attribute = new NumberUpSupported(lower, upper); ! else if (name.equals("job-k-octets-supported")) attribute = new JobKOctetsSupported(lower, upper); else if (name.equals("job-impressions-supported")) attribute = new JobImpressionsSupported(lower, upper); *************** public class IppResponse *** 375,393 **** case IppValueTag.NAME_WITH_LANGUAGE: case IppValueTag.NAME_WITHOUT_LANGUAGE: attribute = IppUtilities.getTextAttribute(name, tag, value); ! break; case IppValueTag.KEYWORD: str = new String(value); if (name.equals("job-hold-until-supported")) // may also be name type attribute = new JobHoldUntilSupported(str, null); else if (name.equals("job-hold-until-default")) ! attribute = new JobHoldUntilDefault(str, null); else if (name.equals("media-supported")) attribute = new MediaSupported(str, null); else if (name.equals("media-default")) ! attribute = new MediaDefault(str, null); ! else if (name.equals("job-sheets-default")) attribute = new JobSheetsDefault(str, null); else if (name.equals("job-sheets-supported")) attribute = new JobSheetsSupported(str, null); --- 376,394 ---- case IppValueTag.NAME_WITH_LANGUAGE: case IppValueTag.NAME_WITHOUT_LANGUAGE: attribute = IppUtilities.getTextAttribute(name, tag, value); ! break; case IppValueTag.KEYWORD: str = new String(value); if (name.equals("job-hold-until-supported")) // may also be name type attribute = new JobHoldUntilSupported(str, null); else if (name.equals("job-hold-until-default")) ! attribute = new JobHoldUntilDefault(str, null); else if (name.equals("media-supported")) attribute = new MediaSupported(str, null); else if (name.equals("media-default")) ! attribute = new MediaDefault(str, null); ! else if (name.equals("job-sheets-default")) attribute = new JobSheetsDefault(str, null); else if (name.equals("job-sheets-supported")) attribute = new JobSheetsSupported(str, null); *************** public class IppResponse *** 397,409 **** attribute = parsePrinterStateReasons(value, lastAttribute); else attribute = IppUtilities.getEnumAttribute(name, str); ! ! // all other stuff is either an enum or needs to be mapped to an ! // UnknownAttribute instance. Enums catched here are: // ipp-versions-supported, pdl-override-supported, compression-supported // uri-authentication-supported, uri-security-supported, sides-supported // sides-default, multiple-document-handling-supported, multiple-document-handling-default ! break; case IppValueTag.URI: try --- 398,410 ---- attribute = parsePrinterStateReasons(value, lastAttribute); else attribute = IppUtilities.getEnumAttribute(name, str); ! ! // all other stuff is either an enum or needs to be mapped to an ! // UnknownAttribute instance. Enums catched here are: // ipp-versions-supported, pdl-override-supported, compression-supported // uri-authentication-supported, uri-security-supported, sides-supported // sides-default, multiple-document-handling-supported, multiple-document-handling-default ! break; case IppValueTag.URI: try *************** public class IppResponse *** 429,441 **** attribute = new PrinterDriverInstaller(uri); else if (name.equals("printer-more-info-manufacturer")) attribute = new PrinterMoreInfoManufacturer(uri); ! break; case IppValueTag.URI_SCHEME: // only one uri-scheme exists - and its an enum if (name.equals("reference-uri-schemes-supported")) attribute = IppUtilities.getEnumAttribute(name, new String(value)); ! break; case IppValueTag.CHARSET: str = new String(value); --- 430,442 ---- attribute = new PrinterDriverInstaller(uri); else if (name.equals("printer-more-info-manufacturer")) attribute = new PrinterMoreInfoManufacturer(uri); ! break; case IppValueTag.URI_SCHEME: // only one uri-scheme exists - and its an enum if (name.equals("reference-uri-schemes-supported")) attribute = IppUtilities.getEnumAttribute(name, new String(value)); ! break; case IppValueTag.CHARSET: str = new String(value); *************** public class IppResponse *** 445,451 **** attribute = new CharsetConfigured(str); else if (name.equals("charset-supported")) // setOf attribute = new CharsetSupported(str); ! break; case IppValueTag.NATURAL_LANGUAGE: str = new String(value); --- 446,452 ---- attribute = new CharsetConfigured(str); else if (name.equals("charset-supported")) // setOf attribute = new CharsetSupported(str); ! break; case IppValueTag.NATURAL_LANGUAGE: str = new String(value); *************** public class IppResponse *** 455,461 **** attribute = new NaturalLanguageConfigured(str); else if (name.equals("generated-natural-language-supported")) // setOf attribute = new GeneratedNaturalLanguageSupported(str); ! break; case IppValueTag.MIME_MEDIA_TYPE: str = new String(value); --- 456,462 ---- attribute = new NaturalLanguageConfigured(str); else if (name.equals("generated-natural-language-supported")) // setOf attribute = new GeneratedNaturalLanguageSupported(str); ! break; case IppValueTag.MIME_MEDIA_TYPE: str = new String(value); *************** public class IppResponse *** 465,471 **** attribute = new DocumentFormatSupported(str, null); else if (name.equals("document-format")) // setOf attribute = new DocumentFormat(str, null); ! break; default: throw new IppException("Unknown tag with value " --- 466,472 ---- attribute = new DocumentFormatSupported(str, null); else if (name.equals("document-format")) // setOf attribute = new DocumentFormat(str, null); ! break; default: throw new IppException("Unknown tag with value " *************** public class IppResponse *** 473,483 **** } if (attribute == null) ! attribute = new UnknownAttribute(tag, name, value); ! addAttribute(attributes, attribute); lastAttribute = attribute; ! logger.log(Component.IPP, "Attribute: " + name + " Value: " + attribute.toString()); } --- 474,484 ---- } if (attribute == null) ! attribute = new UnknownAttribute(tag, name, value); ! addAttribute(attributes, attribute); lastAttribute = attribute; ! logger.log(Component.IPP, "Attribute: " + name + " Value: " + attribute.toString()); } *************** public class IppResponse *** 492,511 **** * @param attribute * the attribute to add */ ! private void addAttribute(Map attributeGroup, Attribute attribute) { ! Class clazz = attribute.getCategory(); ! Set attributeValues = (Set) attributeGroup.get(clazz); if (attributeValues == null) // first attribute of this category { ! attributeValues = new HashSet(); attributeGroup.put(clazz, attributeValues); } attributeValues.add(attribute); } ! /** * Parses a name with or without language attribute value from the byte[] * and returns the result as an object[]. --- 493,513 ---- * @param attribute * the attribute to add */ ! private void addAttribute(Map, Set> attributeGroup, ! Attribute attribute) { ! Class clazz = attribute.getCategory(); ! Set attributeValues = attributeGroup.get(clazz); if (attributeValues == null) // first attribute of this category { ! attributeValues = new HashSet(); attributeGroup.put(clazz, attributeValues); } attributeValues.add(attribute); } ! /** * Parses a name with or without language attribute value from the byte[] * and returns the result as an object[]. *************** public class IppResponse *** 516,554 **** private PrinterStateReasons parsePrinterStateReasons(byte[] value, Attribute lastAttr) { String str = new String(value); ! PrinterStateReasons attribute; ! if (lastAttr instanceof PrinterStateReasons) attribute = (PrinterStateReasons) lastAttr; else attribute = new PrinterStateReasons(); ! // special case indicating no reasons ! if (str.equals("none")) return attribute; ! Severity severity = null; PrinterStateReason reason = null; ! if (str.endsWith(Severity.WARNING.toString())) severity = Severity.WARNING; else if (str.endsWith(Severity.REPORT.toString())) severity = Severity.REPORT; else if (str.endsWith(Severity.ERROR.toString())) severity = Severity.ERROR; ! if (severity != null) ! str = str.substring(0, str.lastIndexOf('-')); ! else // we must associate a severity severity = Severity.REPORT; ! ! reason = (PrinterStateReason) IppUtilities.getEnumAttribute("printer-state-reason", str); ! attribute.put(reason , severity); return attribute; } ! /** * Parses a name with or without language attribute value from the byte[] * and returns the result as an object[]. --- 518,556 ---- private PrinterStateReasons parsePrinterStateReasons(byte[] value, Attribute lastAttr) { String str = new String(value); ! PrinterStateReasons attribute; ! if (lastAttr instanceof PrinterStateReasons) attribute = (PrinterStateReasons) lastAttr; else attribute = new PrinterStateReasons(); ! // special case indicating no reasons ! if (str.equals("none")) return attribute; ! Severity severity = null; PrinterStateReason reason = null; ! if (str.endsWith(Severity.WARNING.toString())) severity = Severity.WARNING; else if (str.endsWith(Severity.REPORT.toString())) severity = Severity.REPORT; else if (str.endsWith(Severity.ERROR.toString())) severity = Severity.ERROR; ! if (severity != null) ! str = str.substring(0, str.lastIndexOf('-')); ! else // we must associate a severity severity = Severity.REPORT; ! ! reason = (PrinterStateReason) IppUtilities.getEnumAttribute("printer-state-reason", str); ! attribute.put(reason , severity); return attribute; } ! /** * Parses a name with or without language attribute value from the byte[] * and returns the result as an object[]. *************** public class IppResponse *** 559,582 **** private JobStateReasons parseJobStateReasons(byte[] value, Attribute lastAttr) { String str = new String(value); ! JobStateReasons attribute; ! if (lastAttr instanceof JobStateReasons) attribute = (JobStateReasons) lastAttr; else attribute = new JobStateReasons(); ! // special case indicating no reasons ! if (str.equals("none")) return attribute; ! ! JobStateReason reason = (JobStateReason) IppUtilities.getEnumAttribute("job-state-reason", str); ! attribute.add(reason); return attribute; } ! /** * Parses a DateTime syntax attribute and returns the constructed Date * object. --- 561,584 ---- private JobStateReasons parseJobStateReasons(byte[] value, Attribute lastAttr) { String str = new String(value); ! JobStateReasons attribute; ! if (lastAttr instanceof JobStateReasons) attribute = (JobStateReasons) lastAttr; else attribute = new JobStateReasons(); ! // special case indicating no reasons ! if (str.equals("none")) return attribute; ! ! JobStateReason reason = (JobStateReason) IppUtilities.getEnumAttribute("job-state-reason", str); ! attribute.add(reason); return attribute; } ! /** * Parses a DateTime syntax attribute and returns the constructed Date * object. *************** public class IppResponse *** 597,603 **** *
        38. 10 | 11 | minutes from UTC | 0..59
        39. * *

          ! * * @param value the byte[] * @return The date object. */ --- 599,605 ---- *
        40. 10 | 11 | minutes from UTC | 0..59
        41. * *

          ! * * @param value the byte[] * @return The date object. */ *************** public class IppResponse *** 625,652 **** return cal.getTime(); } } ! /** * Logger for tracing - enable by passing * -Dgnu.classpath.debug.components=ipp to the vm. */ static final Logger logger = SystemLogger.SYSTEM; ! URI uri; short operation_id; short status_code; int request_id; ! List operationAttributes; ! List printerAttributes; ! List jobAttributes; ! List unsupportedAttributes; byte[] data; /** * Creates an IppResponse instance. ! * * @param uri the uri the request was directy to. * @param operation_id the operation id of the request. */ --- 627,654 ---- return cal.getTime(); } } ! /** * Logger for tracing - enable by passing * -Dgnu.classpath.debug.components=ipp to the vm. */ static final Logger logger = SystemLogger.SYSTEM; ! URI uri; short operation_id; short status_code; int request_id; ! List, Set>> operationAttributes; ! List, Set>> printerAttributes; ! List, Set>> jobAttributes; ! List, Set>> unsupportedAttributes; byte[] data; /** * Creates an IppResponse instance. ! * * @param uri the uri the request was directy to. * @param operation_id the operation id of the request. */ *************** public class IppResponse *** 654,668 **** { this.uri = uri; this.operation_id = operation_id; ! operationAttributes = new ArrayList(); ! jobAttributes = new ArrayList(); ! printerAttributes = new ArrayList(); ! unsupportedAttributes = new ArrayList(); } /** * Sets the data received from the request sent. ! * * @param input the input stream received. * @throws IppException if parsing fails. */ --- 656,674 ---- { this.uri = uri; this.operation_id = operation_id; ! operationAttributes = ! new ArrayList, Set>>(); ! jobAttributes = ! new ArrayList, Set>>(); ! printerAttributes = ! new ArrayList, Set>>(); ! unsupportedAttributes = ! new ArrayList, Set>>(); } /** * Sets the data received from the request sent. ! * * @param input the input stream received. * @throws IppException if parsing fails. */ *************** public class IppResponse *** 703,712 **** * Returns the set of job attributes group maps. * There may occur more than one group of type job attribute in a response * because of e.g. multiple job or print service informations requested. ! * ! * @return The list of job attribute grou maps. */ ! public List getJobAttributes() { return jobAttributes; } --- 709,718 ---- * Returns the set of job attributes group maps. * There may occur more than one group of type job attribute in a response * because of e.g. multiple job or print service informations requested. ! * ! * @return The list of job attribute group maps. */ ! public List, Set>> getJobAttributes() { return jobAttributes; } *************** public class IppResponse *** 715,724 **** * Returns the set of operation attributes group maps. * There may occur more than one group of type job attribute in a response * because of e.g. multiple job or print service informations requested. ! * ! * @return The list of operation attribute grou maps. */ ! public List getOperationAttributes() { return operationAttributes; } --- 721,730 ---- * Returns the set of operation attributes group maps. * There may occur more than one group of type job attribute in a response * because of e.g. multiple job or print service informations requested. ! * ! * @return The list of operation attribute group maps. */ ! public List, Set>> getOperationAttributes() { return operationAttributes; } *************** public class IppResponse *** 727,743 **** * Returns the set of printer attributes group maps. * There may occur more than one group of type job attribute in a response * because of e.g. multiple job or print service informations requested. ! * ! * @return The list of printer attribute grou maps. */ ! public List getPrinterAttributes() { return printerAttributes; } /** * Returns the ID of the initial request. ! * * @return The request ID. */ public int getRequestID() --- 733,749 ---- * Returns the set of printer attributes group maps. * There may occur more than one group of type job attribute in a response * because of e.g. multiple job or print service informations requested. ! * ! * @return The list of printer attribute group maps. */ ! public List, Set>> getPrinterAttributes() { return printerAttributes; } /** * Returns the ID of the initial request. ! * * @return The request ID. */ public int getRequestID() *************** public class IppResponse *** 748,754 **** /** * Returns the status code of the response. * Defined in {@link IppStatusCode}. ! * * @return The status code. */ public short getStatusCode() --- 754,760 ---- /** * Returns the status code of the response. * Defined in {@link IppStatusCode}. ! * * @return The status code. */ public short getStatusCode() *************** public class IppResponse *** 760,776 **** * Returns the set of unsupported attributes group maps. * There may occur more than one group of type job attribute in a response * because of e.g. multiple job or print service informations requested. ! * ! * @return The list of unsupported attribute grou maps. */ ! public List getUnsupportedAttributes() { return unsupportedAttributes; } /** * Returns the data of the response. ! * * @return The data as byte[]. */ public byte[] getData() --- 766,782 ---- * Returns the set of unsupported attributes group maps. * There may occur more than one group of type job attribute in a response * because of e.g. multiple job or print service informations requested. ! * ! * @return The list of unsupported attribute group maps. */ ! public List, Set>> getUnsupportedAttributes() { return unsupportedAttributes; } /** * Returns the data of the response. ! * * @return The data as byte[]. */ public byte[] getData() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppStatusCode.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppStatusCode.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppStatusCode.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppStatusCode.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppStatusCode.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppStatusCode.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** *** 39,58 **** package gnu.javax.print.ipp; /** ! * IPP Status codes as described in RFC 2911 APPENDIX B * (Status Codes and Suggested Status Code Messages) * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class IppStatusCode ! { ! /** ! * Indicates a successful request with no attributes being ! * ignored or substituted. */ public static final int SUCCESSFUL_OK = 0x0000; ! /** * Indicates a successful request, however some of the supplied * attributes are ignored or substituted. */ --- 39,58 ---- package gnu.javax.print.ipp; /** ! * IPP Status codes as described in RFC 2911 APPENDIX B * (Status Codes and Suggested Status Code Messages) * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class IppStatusCode ! { ! /** ! * Indicates a successful request with no attributes being ! * ignored or substituted. */ public static final int SUCCESSFUL_OK = 0x0000; ! /** * Indicates a successful request, however some of the supplied * attributes are ignored or substituted. */ *************** public final class IppStatusCode *** 67,73 **** // Client Error Status Codes // Indicates that the client has done something wrong in its // requests send to the IPP server object ! /** Indicates a bad request e.g. malformed syntax. */ public static final int CLIENT_ERROR_BAD_REQUEST = 0x0400; --- 67,73 ---- // Client Error Status Codes // Indicates that the client has done something wrong in its // requests send to the IPP server object ! /** Indicates a bad request e.g. malformed syntax. */ public static final int CLIENT_ERROR_BAD_REQUEST = 0x0400; *************** public final class IppStatusCode *** 80,88 **** /** Indicates that the client is not authorized. */ public static final int CLIENT_ERROR_NOT_AUTHORIZED = 0x0403; ! /** * Indicates a request which is not possible to process. ! * For example if the request is directed at a job already finished. */ public static final int CLIENT_ERROR_NOT_POSSIBLE = 0x0404; --- 80,88 ---- /** Indicates that the client is not authorized. */ public static final int CLIENT_ERROR_NOT_AUTHORIZED = 0x0403; ! /** * Indicates a request which is not possible to process. ! * For example if the request is directed at a job already finished. */ public static final int CLIENT_ERROR_NOT_POSSIBLE = 0x0404; *************** public final class IppStatusCode *** 106,121 **** /** * Indicates that the supplied attributes or values of attributes are not ! * supported by the printer object. Returning this code depends on the * given "ipp-attribute-fidelity" operation attribute value. */ ! public static final int CLIENT_ERROR_ATTRIBUTES_OR_VALUES_NOT_SUPPORTED = 0x040B; ! /** * Indicates the the URI scheme in a supplied print-uri or send-uri attribute * is not supported. ! */ public static final int CLIENT_ERROR_URI_SCHEME_NOT_SUPPORTED = 0x040C; /** Indicates that a supplied attributes-charset is not supported. */ --- 106,121 ---- /** * Indicates that the supplied attributes or values of attributes are not ! * supported by the printer object. Returning this code depends on the * given "ipp-attribute-fidelity" operation attribute value. */ ! public static final int CLIENT_ERROR_ATTRIBUTES_OR_VALUES_NOT_SUPPORTED = 0x040B; ! /** * Indicates the the URI scheme in a supplied print-uri or send-uri attribute * is not supported. ! */ public static final int CLIENT_ERROR_URI_SCHEME_NOT_SUPPORTED = 0x040C; /** Indicates that a supplied attributes-charset is not supported. */ *************** public final class IppStatusCode *** 127,134 **** /** Indicates that the specified algorithm is not supported. */ public static final int CLIENT_ERROR_COMPRESSION_NOT_SUPPORTED = 0x040F; ! /** ! * Indicates that the document cannot be decompressed with the client * compression algorithm specified by the client. */ public static final int CLIENT_ERROR_COMPRESSION_ERROR = 0x0410; --- 127,134 ---- /** Indicates that the specified algorithm is not supported. */ public static final int CLIENT_ERROR_COMPRESSION_NOT_SUPPORTED = 0x040F; ! /** ! * Indicates that the document cannot be decompressed with the client * compression algorithm specified by the client. */ public static final int CLIENT_ERROR_COMPRESSION_ERROR = 0x0410; *************** public final class IppStatusCode *** 136,148 **** /** Indicates an error in the document format of the document. */ public static final int CLIENT_ERROR_DOCUMENT_FORMAT_ERROR = 0x0411; ! /** ! * Indicates that the document supplied via print-uri or send-uri cannot be * accessed by the printer object. */ public static final int CLIENT_ERROR_DOCUMENT_ACCESS_ERROR = 0x0412; ! /** Indicates an internal server error. */ public static final int SERVER_ERROR_INTERNAL_ERROR = 0x0500; --- 136,148 ---- /** Indicates an error in the document format of the document. */ public static final int CLIENT_ERROR_DOCUMENT_FORMAT_ERROR = 0x0411; ! /** ! * Indicates that the document supplied via print-uri or send-uri cannot be * accessed by the printer object. */ public static final int CLIENT_ERROR_DOCUMENT_ACCESS_ERROR = 0x0412; ! /** Indicates an internal server error. */ public static final int SERVER_ERROR_INTERNAL_ERROR = 0x0500; *************** public final class IppStatusCode *** 164,170 **** /** Indicates that the server is currently not accepting jobs. */ public static final int SERVER_ERROR_NOT_ACCEPTING_JOBS = 0x0506; ! /** * Indicates that the server is currently busy with processing. * Requests may be tried later again. */ --- 164,170 ---- /** Indicates that the server is currently not accepting jobs. */ public static final int SERVER_ERROR_NOT_ACCEPTING_JOBS = 0x0506; ! /** * Indicates that the server is currently busy with processing. * Requests may be tried later again. */ *************** public final class IppStatusCode *** 174,184 **** public static final int SERVER_ERROR_JOB_CANCELED = 0x0508; /** Indicates that the server does not support multidocument jobs. */ ! public static final int SERVER_ERROR_MULTIPLE_DOCUMENT_JOBS_NOT_SUPPORTED = 0x0509; private IppStatusCode() ! { // not to be instantiated } --- 174,184 ---- public static final int SERVER_ERROR_JOB_CANCELED = 0x0508; /** Indicates that the server does not support multidocument jobs. */ ! public static final int SERVER_ERROR_MULTIPLE_DOCUMENT_JOBS_NOT_SUPPORTED = 0x0509; private IppStatusCode() ! { // not to be instantiated } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppUtilities.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppUtilities.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppUtilities.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppUtilities.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppUtilities.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppUtilities.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Si *** 140,167 **** * Also provides mapping from the attribute name values to * the actual class object. Used to construct objects via reflection. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class IppUtilities { // These are reused in the reflection code to not instantiate an array everytime private static Object[] INTEGER_ATT_VALUE = new Object[1]; ! private static Class[] INTEGER_CLASS_ARRAY = new Class[] {int.class}; private static Object[] TEXT_ATT_VALUE = new Object[2]; ! private static Class[] TEXT_CLASS_ARRAY = new Class[] {String.class, Locale.class}; ! // The map -> Attribute name to Attribute class ! private static HashMap classesByName = new HashMap(); // The map -> StandardAttribute class to SupportedAttribute category name ! private static HashMap instanceByClass = new HashMap(); /** * All the currently needed attributes */ static { ! // enums classesByName.put(JobState.ABORTED.getName(), JobState.class); classesByName.put(Sides.DUPLEX.getName(), Sides.class); classesByName.put(SheetCollate.COLLATED.getName(), SheetCollate.class); --- 140,169 ---- * Also provides mapping from the attribute name values to * the actual class object. Used to construct objects via reflection. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class IppUtilities { // These are reused in the reflection code to not instantiate an array everytime private static Object[] INTEGER_ATT_VALUE = new Object[1]; ! private static Class[] INTEGER_CLASS_ARRAY = new Class[] {int.class}; private static Object[] TEXT_ATT_VALUE = new Object[2]; ! private static Class[] TEXT_CLASS_ARRAY = new Class[] {String.class, Locale.class}; ! // The map -> Attribute name to Attribute class ! private static HashMap> classesByName = ! new HashMap>(); // The map -> StandardAttribute class to SupportedAttribute category name ! private static HashMap,SupportedValuesAttribute> instanceByClass = ! new HashMap,SupportedValuesAttribute>(); /** * All the currently needed attributes */ static { ! // enums classesByName.put(JobState.ABORTED.getName(), JobState.class); classesByName.put(Sides.DUPLEX.getName(), Sides.class); classesByName.put(SheetCollate.COLLATED.getName(), SheetCollate.class); *************** public final class IppUtilities *** 174,286 **** classesByName.put(PrintQuality.DRAFT.getName(), PrintQuality.class); classesByName.put(PrinterState.IDLE.getName(), PrinterState.class); classesByName.put(SidesDefault.ONE_SIDED.getName(), SidesDefault.class); ! classesByName.put(ReferenceUriSchemesSupported.FILE.getName(), ! ReferenceUriSchemesSupported.class); classesByName.put(PrinterStateReason.DOOR_OPEN.getName(), ! PrinterStateReason.class); ! classesByName.put(PresentationDirection.TOLEFT_TOTOP.getName(), PresentationDirection.class); ! classesByName.put(PDLOverrideSupported.ATTEMPTED.getName(), PDLOverrideSupported.class); ! classesByName.put(OrientationRequested.PORTRAIT.getName(), OrientationRequested.class); ! classesByName.put(MultipleDocumentHandling.SINGLE_DOCUMENT.getName(), MultipleDocumentHandling.class); ! classesByName.put(JobStateReason.JOB_QUEUED.getName(), JobStateReason.class); ! classesByName.put(UriAuthenticationSupported.NONE.getName(), ! UriAuthenticationSupported.class); ! classesByName.put(OperationsSupported.GET_JOBS.getName(), ! OperationsSupported.class); ! classesByName.put(UriSecuritySupported.NONE.getName(), ! UriSecuritySupported.class); ! classesByName.put(FinishingsSupported.NONE.getName(), ! FinishingsSupported.class); ! classesByName.put(FinishingsDefault.NONE.getName(), ! FinishingsDefault.class); ! classesByName.put(IppVersionsSupported.V_1_0.getName(), ! IppVersionsSupported.class); ! classesByName.put(MultipleDocumentHandlingSupported.SINGLE_DOCUMENT.getName(), ! MultipleDocumentHandlingSupported.class); ! classesByName.put(MultipleDocumentHandlingDefault.SINGLE_DOCUMENT.getName(), ! MultipleDocumentHandlingDefault.class); ! classesByName.put(CompressionSupported.NONE.getName(), ! CompressionSupported.class); ! classesByName.put(OrientationRequestedSupported.PORTRAIT.getName(), ! OrientationRequestedSupported.class); ! classesByName.put(OrientationRequestedDefault.PORTRAIT.getName(), ! OrientationRequestedDefault.class); ! classesByName.put(SidesSupported.ONE_SIDED.getName(), ! SidesSupported.class); ! classesByName.put(PrintQualityDefault.DRAFT.getName(), ! PrintQualityDefault.class); ! classesByName.put(PrintQualitySupported.DRAFT.getName(), ! PrintQualitySupported.class); ! classesByName.put(ReferenceUriSchemesSupported.FTP.getName(), ReferenceUriSchemesSupported.class); ! ! // the boolean types ! classesByName.put(ColorSupported.SUPPORTED.getName(), ColorSupported.class); ! classesByName.put(PrinterIsAcceptingJobs.ACCEPTING_JOBS.getName(), PrinterIsAcceptingJobs.class); ! classesByName.put(MultipleDocumentJobsSupported.SUPPORTED.getName(), MultipleDocumentJobsSupported.class); ! classesByName.put(PageRangesSupported.SUPPORTED.getName(), PageRangesSupported.class); ! // TextSyntax derived attributes ! classesByName.put("media-default", MediaDefault.class); classesByName.put("media-supported", MediaSupported.class); ! classesByName.put("media", MediaSizeName.class); ! classesByName.put("printer-location", PrinterLocation.class); ! classesByName.put("printer-info", PrinterInfo.class); ! classesByName.put("printer-make-and-model", PrinterMakeAndModel.class); classesByName.put("printer-state-message", PrinterStateMessage.class); ! classesByName.put("job-state-message", JobStateMessage.class); ! classesByName.put("job-sheets-default", JobSheetsDefault.class); ! classesByName.put("job-sheets-supported", JobSheetsSupported.class); ! classesByName.put("job-name", JobName.class); ! classesByName.put("printer-name", PrinterName.class); ! classesByName.put("status-message", StatusMessage.class); ! classesByName.put("detailed-status-message", DetailedStatusMessage.class); ! classesByName.put("document-access-error", DocumentAccessError.class); ! classesByName.put("output-device-assigned", OutputDeviceAssigned.class); ! classesByName.put("job-hold-until-default", JobHoldUntilDefault.class); ! classesByName.put("job-originating-user-name", ! JobOriginatingUserName.class); ! classesByName.put("job-hold-until-supported", JobHoldUntilSupported.class); ! classesByName.put("job-message-from-operator", ! JobMessageFromOperator.class); ! classesByName.put("printer-message-from-operator", ! PrinterMessageFromOperator.class); ! classesByName.put("job-detailed-status-messages", JobDetailedStatusMessages.class); ! classesByName.put("job-document-access-errors", ! JobDocumentAccessErrors.class); ! // IntegerSyntax derived Attributes ! classesByName.put("copies-default", CopiesDefault.class); ! classesByName.put("job-id", JobId.class); classesByName.put("job-priority-supported", JobPrioritySupported.class); classesByName.put("job-priority-default", JobPriorityDefault.class); classesByName.put("number-up-supported", NumberUpSupported.class); classesByName.put("number-up-default", NumberUpDefault.class); classesByName.put("queued-job-count", QueuedJobCount.class); ! classesByName.put("printer-up-time", PrinterUpTime.class); classesByName.put("pages-per-minute", PagesPerMinute.class); ! classesByName.put("pages-per-minute-color", PagesPerMinuteColor.class); classesByName.put("job-k-octets-processed", JobKOctetsProcessed.class); ! classesByName.put("number-of-intervening-jobs", NumberOfInterveningJobs.class); ! classesByName.put("job-impressions-completed", ! JobImpressionsCompleted.class); ! classesByName.put("job-media-sheets-completed", JobMediaSheetsCompleted.class); ! classesByName.put("multiple-operation-time-out", MultipleOperationTimeOut.class); ! ! // 4.2 job template attributes instanceByClass.put(JobPriority.class, new JobPrioritySupported(1)); instanceByClass.put(JobHoldUntil.class, new JobHoldUntilSupported("", null)); --- 176,288 ---- classesByName.put(PrintQuality.DRAFT.getName(), PrintQuality.class); classesByName.put(PrinterState.IDLE.getName(), PrinterState.class); classesByName.put(SidesDefault.ONE_SIDED.getName(), SidesDefault.class); ! classesByName.put(ReferenceUriSchemesSupported.FILE.getName(), ! ReferenceUriSchemesSupported.class); classesByName.put(PrinterStateReason.DOOR_OPEN.getName(), ! PrinterStateReason.class); ! classesByName.put(PresentationDirection.TOLEFT_TOTOP.getName(), PresentationDirection.class); ! classesByName.put(PDLOverrideSupported.ATTEMPTED.getName(), PDLOverrideSupported.class); ! classesByName.put(OrientationRequested.PORTRAIT.getName(), OrientationRequested.class); ! classesByName.put(MultipleDocumentHandling.SINGLE_DOCUMENT.getName(), MultipleDocumentHandling.class); ! classesByName.put(JobStateReason.JOB_QUEUED.getName(), JobStateReason.class); ! classesByName.put(UriAuthenticationSupported.NONE.getName(), ! UriAuthenticationSupported.class); ! classesByName.put(OperationsSupported.GET_JOBS.getName(), ! OperationsSupported.class); ! classesByName.put(UriSecuritySupported.NONE.getName(), ! UriSecuritySupported.class); ! classesByName.put(FinishingsSupported.NONE.getName(), ! FinishingsSupported.class); ! classesByName.put(FinishingsDefault.NONE.getName(), ! FinishingsDefault.class); ! classesByName.put(IppVersionsSupported.V_1_0.getName(), ! IppVersionsSupported.class); ! classesByName.put(MultipleDocumentHandlingSupported.SINGLE_DOCUMENT.getName(), ! MultipleDocumentHandlingSupported.class); ! classesByName.put(MultipleDocumentHandlingDefault.SINGLE_DOCUMENT.getName(), ! MultipleDocumentHandlingDefault.class); ! classesByName.put(CompressionSupported.NONE.getName(), ! CompressionSupported.class); ! classesByName.put(OrientationRequestedSupported.PORTRAIT.getName(), ! OrientationRequestedSupported.class); ! classesByName.put(OrientationRequestedDefault.PORTRAIT.getName(), ! OrientationRequestedDefault.class); ! classesByName.put(SidesSupported.ONE_SIDED.getName(), ! SidesSupported.class); ! classesByName.put(PrintQualityDefault.DRAFT.getName(), ! PrintQualityDefault.class); ! classesByName.put(PrintQualitySupported.DRAFT.getName(), ! PrintQualitySupported.class); ! classesByName.put(ReferenceUriSchemesSupported.FTP.getName(), ReferenceUriSchemesSupported.class); ! ! // the boolean types ! classesByName.put(ColorSupported.SUPPORTED.getName(), ColorSupported.class); ! classesByName.put(PrinterIsAcceptingJobs.ACCEPTING_JOBS.getName(), PrinterIsAcceptingJobs.class); ! classesByName.put(MultipleDocumentJobsSupported.SUPPORTED.getName(), MultipleDocumentJobsSupported.class); ! classesByName.put(PageRangesSupported.SUPPORTED.getName(), PageRangesSupported.class); ! // TextSyntax derived attributes ! classesByName.put("media-default", MediaDefault.class); classesByName.put("media-supported", MediaSupported.class); ! classesByName.put("media", MediaSizeName.class); ! classesByName.put("printer-location", PrinterLocation.class); ! classesByName.put("printer-info", PrinterInfo.class); ! classesByName.put("printer-make-and-model", PrinterMakeAndModel.class); classesByName.put("printer-state-message", PrinterStateMessage.class); ! classesByName.put("job-state-message", JobStateMessage.class); ! classesByName.put("job-sheets-default", JobSheetsDefault.class); ! classesByName.put("job-sheets-supported", JobSheetsSupported.class); ! classesByName.put("job-name", JobName.class); ! classesByName.put("printer-name", PrinterName.class); ! classesByName.put("status-message", StatusMessage.class); ! classesByName.put("detailed-status-message", DetailedStatusMessage.class); ! classesByName.put("document-access-error", DocumentAccessError.class); ! classesByName.put("output-device-assigned", OutputDeviceAssigned.class); ! classesByName.put("job-hold-until-default", JobHoldUntilDefault.class); ! classesByName.put("job-originating-user-name", ! JobOriginatingUserName.class); ! classesByName.put("job-hold-until-supported", JobHoldUntilSupported.class); ! classesByName.put("job-message-from-operator", ! JobMessageFromOperator.class); ! classesByName.put("printer-message-from-operator", ! PrinterMessageFromOperator.class); ! classesByName.put("job-detailed-status-messages", JobDetailedStatusMessages.class); ! classesByName.put("job-document-access-errors", ! JobDocumentAccessErrors.class); ! // IntegerSyntax derived Attributes ! classesByName.put("copies-default", CopiesDefault.class); ! classesByName.put("job-id", JobId.class); classesByName.put("job-priority-supported", JobPrioritySupported.class); classesByName.put("job-priority-default", JobPriorityDefault.class); classesByName.put("number-up-supported", NumberUpSupported.class); classesByName.put("number-up-default", NumberUpDefault.class); classesByName.put("queued-job-count", QueuedJobCount.class); ! classesByName.put("printer-up-time", PrinterUpTime.class); classesByName.put("pages-per-minute", PagesPerMinute.class); ! classesByName.put("pages-per-minute-color", PagesPerMinuteColor.class); classesByName.put("job-k-octets-processed", JobKOctetsProcessed.class); ! classesByName.put("number-of-intervening-jobs", NumberOfInterveningJobs.class); ! classesByName.put("job-impressions-completed", ! JobImpressionsCompleted.class); ! classesByName.put("job-media-sheets-completed", JobMediaSheetsCompleted.class); ! classesByName.put("multiple-operation-time-out", MultipleOperationTimeOut.class); ! ! // 4.2 job template attributes instanceByClass.put(JobPriority.class, new JobPrioritySupported(1)); instanceByClass.put(JobHoldUntil.class, new JobHoldUntilSupported("", null)); *************** public final class IppUtilities *** 299,305 **** // 4.4 printer attributes instanceByClass.put(Compression.class, CompressionSupported.COMPRESS); } ! private IppUtilities() { // not to be instantiated --- 301,307 ---- // 4.4 printer attributes instanceByClass.put(Compression.class, CompressionSupported.COMPRESS); } ! private IppUtilities() { // not to be instantiated *************** public final class IppUtilities *** 308,345 **** /** * Returns the implementing class object for given * attribute name objects. ! * * @param name the attribute name * @return The Class object. */ ! public static Class getClass(String name) { ! return (Class) classesByName.get(name); } ! /** ! * Returns the name of the supported attribute * based on the given standard attribute category. ! * * @param clazz the standard attribute category * @return The name of the supported attribute category. */ ! public static String getSupportedAttrName(Class clazz) { ! return ((SupportedValuesAttribute) instanceByClass.get(clazz)).getName(); } ! /** ! * Returns the category of the supported attribute * based on the given standard attribute category. ! * * @param clazz the standard attribute category * @return The supported attribute category. */ ! public static Class getSupportedCategory(Class clazz) { ! return ((SupportedValuesAttribute) instanceByClass.get(clazz)).getCategory(); ! } /** * Helper method to convert to an int. --- 310,347 ---- /** * Returns the implementing class object for given * attribute name objects. ! * * @param name the attribute name * @return The Class object. */ ! public static Class getClass(String name) { ! return classesByName.get(name); } ! /** ! * Returns the name of the supported attribute * based on the given standard attribute category. ! * * @param clazz the standard attribute category * @return The name of the supported attribute category. */ ! public static String getSupportedAttrName(Class clazz) { ! return instanceByClass.get(clazz).getName(); } ! /** ! * Returns the category of the supported attribute * based on the given standard attribute category. ! * * @param clazz the standard attribute category * @return The supported attribute category. */ ! public static Class getSupportedCategory(Class clazz) { ! return instanceByClass.get(clazz).getCategory(); ! } /** * Helper method to convert to an int. *************** public final class IppUtilities *** 351,357 **** return (((b[0] & 0xff) << 24) | ((b[1] & 0xff) << 16) | ((b[2] & 0xff) << 8) | (b[3] & 0xff)); } ! /** * Helper method to convert to an int. * @param b1 the 1th byte --- 353,359 ---- return (((b[0] & 0xff) << 24) | ((b[1] & 0xff) << 16) | ((b[2] & 0xff) << 8) | (b[3] & 0xff)); } ! /** * Helper method to convert to an int. * @param b1 the 1th byte *************** public final class IppUtilities *** 376,397 **** { return (short) ((b1 << 8) | (b2 & 0xff)); } ! /** * Instantiates an EnumSyntax based attribute with the given IPP * name and the given value (Enums maybe int or String based). ! * * @param name the attribute name of the subclass. * @param value the integer value of the specific enum. * @return The Attribute (a subclass of EnumSyntax) */ public static Attribute getEnumAttribute(String name, Object value) { ! Class attrClass = getClass(name); ! // There might be unknown enums we have no mapped class for if (attrClass == null) ! return null; try { --- 378,399 ---- { return (short) ((b1 << 8) | (b2 & 0xff)); } ! /** * Instantiates an EnumSyntax based attribute with the given IPP * name and the given value (Enums maybe int or String based). ! * * @param name the attribute name of the subclass. * @param value the integer value of the specific enum. * @return The Attribute (a subclass of EnumSyntax) */ public static Attribute getEnumAttribute(String name, Object value) { ! Class attrClass = getClass(name); ! // There might be unknown enums we have no mapped class for if (attrClass == null) ! return null; try { *************** public final class IppUtilities *** 423,455 **** { // should not happen, all fields are public } ! return null; } ! ! ! /** ! * Instantiates an IntegerSyntax based attribute with the * given IPP name for the given int value. ! * * @param name the attribute name of the subclass. * @param value the integer value * @return The Attribute (a subclass of IntegerSyntax) */ public static Attribute getIntegerAttribute(String name, int value) ! { ! Class attrClass = getClass(name); ! // There might be unknown attributes we have no mapped class for if (attrClass == null) return null; try { ! INTEGER_ATT_VALUE[0] = new Integer(value); ! Constructor c = attrClass.getDeclaredConstructor(INTEGER_CLASS_ARRAY); ! return (Attribute) c.newInstance(INTEGER_ATT_VALUE); } catch (SecurityException e) { --- 425,457 ---- { // should not happen, all fields are public } ! return null; } ! ! ! /** ! * Instantiates an IntegerSyntax based attribute with the * given IPP name for the given int value. ! * * @param name the attribute name of the subclass. * @param value the integer value * @return The Attribute (a subclass of IntegerSyntax) */ public static Attribute getIntegerAttribute(String name, int value) ! { ! Class attrClass = getClass(name); ! // There might be unknown attributes we have no mapped class for if (attrClass == null) return null; try { ! INTEGER_ATT_VALUE[0] = Integer.valueOf(value); ! Constructor c = attrClass.getDeclaredConstructor(INTEGER_CLASS_ARRAY); ! return (Attribute) c.newInstance(INTEGER_ATT_VALUE); } catch (SecurityException e) { *************** public final class IppUtilities *** 471,491 **** { // should not happen, all fields are public } ! return null; ! } ! /** * Instantiates an TextSyntax based attribute with the given * IPP name for the given text value (will be decoded). ! * * @param name the attribute name of the subclass. * @param tag the tag defined in {@link IppValueTag} * @param value the byte[] value to be decoded based on the tag value. * @return The Attribute (a subclass of TextSyntax) */ public static Attribute getTextAttribute(String name, byte tag, byte[] value) ! { // without language tag is rather easy - default locale if (tag == IppValueTag.NAME_WITHOUT_LANGUAGE || tag == IppValueTag.TEXT_WITHOUT_LANGUAGE) --- 473,493 ---- { // should not happen, all fields are public } ! return null; ! } ! /** * Instantiates an TextSyntax based attribute with the given * IPP name for the given text value (will be decoded). ! * * @param name the attribute name of the subclass. * @param tag the tag defined in {@link IppValueTag} * @param value the byte[] value to be decoded based on the tag value. * @return The Attribute (a subclass of TextSyntax) */ public static Attribute getTextAttribute(String name, byte tag, byte[] value) ! { // without language tag is rather easy - default locale if (tag == IppValueTag.NAME_WITHOUT_LANGUAGE || tag == IppValueTag.TEXT_WITHOUT_LANGUAGE) *************** public final class IppUtilities *** 504,510 **** String language = new String(tmp); String text = new String(tmp2); Locale locale = null; ! if (language.length() > 2) locale = new Locale(language.substring(0, 2), language.substring(3)); else --- 506,512 ---- String language = new String(tmp); String text = new String(tmp2); Locale locale = null; ! if (language.length() > 2) locale = new Locale(language.substring(0, 2), language.substring(3)); else *************** public final class IppUtilities *** 512,529 **** TEXT_ATT_VALUE[0] = text; TEXT_ATT_VALUE[1] = locale; ! } ! ! Class attrClass = getClass(name); ! // There might be unknown attributes we have no mapped class for if (attrClass == null) return null; try { ! Constructor c = attrClass.getDeclaredConstructor(TEXT_CLASS_ARRAY); ! return (Attribute) c.newInstance(TEXT_ATT_VALUE); } catch (SecurityException e) { --- 514,531 ---- TEXT_ATT_VALUE[0] = text; TEXT_ATT_VALUE[1] = locale; ! } ! ! Class attrClass = getClass(name); ! // There might be unknown attributes we have no mapped class for if (attrClass == null) return null; try { ! Constructor c = attrClass.getDeclaredConstructor(TEXT_CLASS_ARRAY); ! return (Attribute) c.newInstance(TEXT_ATT_VALUE); } catch (SecurityException e) { *************** public final class IppUtilities *** 545,551 **** { // should not happen, all fields are public } ! return null; } } --- 547,553 ---- { // should not happen, all fields are public } ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppValueTag.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppValueTag.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/IppValueTag.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/IppValueTag.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppValueTag.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppValueTag.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp; *** 44,139 **** * Attributes are always of a special type syntax (e.g. boolean or * interger attribute). These value types are specified by the tag * constants provided in this class. Beside the syntax types some ! * out of band values for reporting requested attributes as * unsupported, unknown etc. back to the client. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class IppValueTag ! { ! /** Out of band value for unsupported attributes. */ public static final byte UNSUPPORTED = 0x10; ! // 0x11 reserved for 'default' for definition in a future ! // IETF standards track document ! /** Out of band value for unknown attributes. */ public static final byte UNKNOWN = 0x12; ! /** Out of band value for attribute without a value. */ public static final byte NO_VALUE = 0x13; ! // 0x14-0x1F reserved for "out-of-band" values in future IETF // standards track documents. ! // 0x20 reserved for definition in a future IETF // standards track document ! /** Indicates a value of syntax type integer. */ public static final byte INTEGER = 0x21; ! /** Indicates a value of syntax type boolean. */ public static final byte BOOLEAN = 0x22; ! /** Indicates a value of syntax type enum (enumeration). */ public static final byte ENUM = 0x23; ! // 0x24-0x2F reserved for integer types for definition in // future IETF standards track documents /** Indicates a value of syntax type octect string. */ public static final byte OCTECTSTRING_UNSPECIFIED = 0x30; ! /** Indicates a value of syntax type datetime. */ public static final byte DATETIME = 0x31; ! /** Indicates a value of syntax type resolution. */ public static final byte RESOLUTION = 0x32; ! /** Indicates a value of syntax type range of integers. */ public static final byte RANGEOFINTEGER = 0x33; ! // 0x34 reserved for definition in a future IETF // standards track document ! /** Indicates a value of syntax type text with language. */ public static final byte TEXT_WITH_LANGUAGE = 0x35; ! /** Indicates a value of syntax type name with language. */ public static final byte NAME_WITH_LANGUAGE = 0x36; ! // 0x37-0x3F reserved for octetString type definitions in // future IETF standards track documents // 0x40 reserved for definition in a future IETF // standards track document ! /** Indicates a value of syntax type text without language. */ public static final byte TEXT_WITHOUT_LANGUAGE = 0x41; ! /** Indicates a value of syntax type name without language. */ public static final byte NAME_WITHOUT_LANGUAGE = 0x42; ! // 0x43 reserved for definition in a future IETF // standards track document ! /** Indicates a value of syntax type keyword. */ ! public static final byte KEYWORD = 0x44; ! /** Indicates a value of syntax type URI. */ ! public static final byte URI = 0x45; ! /** Indicates a value of syntax type URI scheme. */ public static final byte URI_SCHEME = 0x46; ! /** Indicates a value of syntax type charset. */ ! public static final byte CHARSET = 0x47; ! /** Indicates a value of syntax type language. */ ! public static final byte NATURAL_LANGUAGE =0x48; ! /** Indicates a value of syntax type mime media. */ public static final byte MIME_MEDIA_TYPE = 0x49; --- 44,139 ---- * Attributes are always of a special type syntax (e.g. boolean or * interger attribute). These value types are specified by the tag * constants provided in this class. Beside the syntax types some ! * out of band values for reporting requested attributes as * unsupported, unknown etc. back to the client. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class IppValueTag ! { ! /** Out of band value for unsupported attributes. */ public static final byte UNSUPPORTED = 0x10; ! // 0x11 reserved for 'default' for definition in a future ! // IETF standards track document ! /** Out of band value for unknown attributes. */ public static final byte UNKNOWN = 0x12; ! /** Out of band value for attribute without a value. */ public static final byte NO_VALUE = 0x13; ! // 0x14-0x1F reserved for "out-of-band" values in future IETF // standards track documents. ! // 0x20 reserved for definition in a future IETF // standards track document ! /** Indicates a value of syntax type integer. */ public static final byte INTEGER = 0x21; ! /** Indicates a value of syntax type boolean. */ public static final byte BOOLEAN = 0x22; ! /** Indicates a value of syntax type enum (enumeration). */ public static final byte ENUM = 0x23; ! // 0x24-0x2F reserved for integer types for definition in // future IETF standards track documents /** Indicates a value of syntax type octect string. */ public static final byte OCTECTSTRING_UNSPECIFIED = 0x30; ! /** Indicates a value of syntax type datetime. */ public static final byte DATETIME = 0x31; ! /** Indicates a value of syntax type resolution. */ public static final byte RESOLUTION = 0x32; ! /** Indicates a value of syntax type range of integers. */ public static final byte RANGEOFINTEGER = 0x33; ! // 0x34 reserved for definition in a future IETF // standards track document ! /** Indicates a value of syntax type text with language. */ public static final byte TEXT_WITH_LANGUAGE = 0x35; ! /** Indicates a value of syntax type name with language. */ public static final byte NAME_WITH_LANGUAGE = 0x36; ! // 0x37-0x3F reserved for octetString type definitions in // future IETF standards track documents // 0x40 reserved for definition in a future IETF // standards track document ! /** Indicates a value of syntax type text without language. */ public static final byte TEXT_WITHOUT_LANGUAGE = 0x41; ! /** Indicates a value of syntax type name without language. */ public static final byte NAME_WITHOUT_LANGUAGE = 0x42; ! // 0x43 reserved for definition in a future IETF // standards track document ! /** Indicates a value of syntax type keyword. */ ! public static final byte KEYWORD = 0x44; ! /** Indicates a value of syntax type URI. */ ! public static final byte URI = 0x45; ! /** Indicates a value of syntax type URI scheme. */ public static final byte URI_SCHEME = 0x46; ! /** Indicates a value of syntax type charset. */ ! public static final byte CHARSET = 0x47; ! /** Indicates a value of syntax type language. */ ! public static final byte NATURAL_LANGUAGE =0x48; ! /** Indicates a value of syntax type mime media. */ public static final byte MIME_MEDIA_TYPE = 0x49; *************** public final class IppValueTag *** 145,159 **** { // not to be instantiated; } ! /** ! * Tests if given value corresponds to a * value tag value. ! * * @param value the value to test for * @return true if, false otherwise. */ ! public static boolean isValueTag(byte value) { if(value == 0x10 || value == 0x12 || value == 0x13 || value == 0x21 || value == 0x22 || value == 0x23 --- 145,159 ---- { // not to be instantiated; } ! /** ! * Tests if given value corresponds to a * value tag value. ! * * @param value the value to test for * @return true if, false otherwise. */ ! public static boolean isValueTag(byte value) { if(value == 0x10 || value == 0x12 || value == 0x13 || value == 0x21 || value == 0x22 || value == 0x23 *************** public final class IppValueTag *** 163,170 **** || value == 0x45 || value == 0x46 || value == 0x47 || value == 0x48 || value == 0x49 ) return true; ! return false; } ! } --- 163,170 ---- || value == 0x45 || value == 0x46 || value == 0x47 || value == 0x48 || value == 0x49 ) return true; ! return false; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/MultiDocPrintJobImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/MultiDocPrintJobImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/MultiDocPrintJobImpl.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/MultiDocPrintJobImpl.java Tue Oct 12 15:55:12 2010 *************** import javax.print.PrintException; *** 45,62 **** import javax.print.attribute.PrintRequestAttributeSet; /** ! * Implementation of the MultiDocPrintJob interface. Implementation * is specific to the IppPrintService implementation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class MultiDocPrintJobImpl extends DocPrintJobImpl implements MultiDocPrintJob { /** * Constructor forwarding arguments to the super constructor. ! * * @param service the print service instance. * @param user the user of this print service. * @param passwd the password of the user. --- 45,62 ---- import javax.print.attribute.PrintRequestAttributeSet; /** ! * Implementation of the MultiDocPrintJob interface. Implementation * is specific to the IppPrintService implementation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class MultiDocPrintJobImpl extends DocPrintJobImpl implements MultiDocPrintJob { /** * Constructor forwarding arguments to the super constructor. ! * * @param service the print service instance. * @param user the user of this print service. * @param passwd the password of the user. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/CharsetSyntax.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/CharsetSyntax.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/CharsetSyntax.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/CharsetSyntax.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* CharsetSyntax.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharsetSyntax.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute; *** 41,47 **** import java.io.Serializable; /** ! * CharsetSyntax is the abstract base class of all attribute * classes which provide a charset (US-ASCII) string as value. * * @author Wolfgang Baer (WBaer@gmx.de) --- 41,47 ---- import java.io.Serializable; /** ! * CharsetSyntax is the abstract base class of all attribute * classes which provide a charset (US-ASCII) string as value. * * @author Wolfgang Baer (WBaer@gmx.de) *************** public abstract class CharsetSyntax impl *** 62,68 **** { if (value == null) throw new NullPointerException("value may not be null"); ! this.value = value; } --- 62,68 ---- { if (value == null) throw new NullPointerException("value may not be null"); ! this.value = value; } *************** public abstract class CharsetSyntax impl *** 98,111 **** if (! (obj instanceof CharsetSyntax)) return false; ! CharsetSyntax tmp = (CharsetSyntax) obj; return value.equals(tmp.getValue()); } /** * Returns a string representing the object. The returned * string is the underlying text value of this object. ! * * @return The string representation. */ public String toString() --- 98,111 ---- if (! (obj instanceof CharsetSyntax)) return false; ! CharsetSyntax tmp = (CharsetSyntax) obj; return value.equals(tmp.getValue()); } /** * Returns a string representing the object. The returned * string is the underlying text value of this object. ! * * @return The string representation. */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/DefaultValueAttribute.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/DefaultValueAttribute.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/DefaultValueAttribute.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/DefaultValueAttribute.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* DefaultValueAttribute.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DefaultValueAttribute.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute; *** 41,58 **** import javax.print.attribute.Attribute; /** ! * Marker interface for all attribute classes describing attributes * providing default values. Often there exist a sequence of an * attribute name like: Name - > Name-default -> Name-supported. * * @author Wolfgang Baer (WBaer@gmx.de) */ public interface DefaultValueAttribute extends Attribute ! { /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ public Attribute getAssociatedAttribute(); --- 41,58 ---- import javax.print.attribute.Attribute; /** ! * Marker interface for all attribute classes describing attributes * providing default values. Often there exist a sequence of an * attribute name like: Name - > Name-default -> Name-supported. * * @author Wolfgang Baer (WBaer@gmx.de) */ public interface DefaultValueAttribute extends Attribute ! { /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ public Attribute getAssociatedAttribute(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/DetailedStatusMessage.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/DetailedStatusMessage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/DetailedStatusMessage.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/DetailedStatusMessage.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* DetailedStatusMessage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DetailedStatusMessage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 45,56 **** /** * DetailedStatusMessage attribute as described in RFC 2911 section ! * 3.1.6 Operation Response Status Codes and Status Message * provides a short description of the status of the operation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class DetailedStatusMessage extends TextSyntax implements Attribute { --- 45,56 ---- /** * DetailedStatusMessage attribute as described in RFC 2911 section ! * 3.1.6 Operation Response Status Codes and Status Message * provides a short description of the status of the operation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class DetailedStatusMessage extends TextSyntax implements Attribute { *************** public final class DetailedStatusMessage *** 74,80 **** * * @return The class DetailedStatusMessage itself. */ ! public Class getCategory() { return DetailedStatusMessage.class; } --- 74,80 ---- * * @return The class DetailedStatusMessage itself. */ ! public Class getCategory() { return DetailedStatusMessage.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/DocumentAccessError.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/DocumentAccessError.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/DocumentAccessError.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/DocumentAccessError.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* DocumentAccessError.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DocumentAccessError.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 45,56 **** /** * DocumentAccessError attribute as described in RFC 2911 section ! * 3.1.6 Operation Response Status Codes and Status Message * provides additional information for document access errors. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class DocumentAccessError extends TextSyntax implements Attribute { --- 45,56 ---- /** * DocumentAccessError attribute as described in RFC 2911 section ! * 3.1.6 Operation Response Status Codes and Status Message * provides additional information for document access errors. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class DocumentAccessError extends TextSyntax implements Attribute { *************** public final class DocumentAccessError e *** 74,80 **** * * @return The class DocumentAccessError itself. */ ! public Class getCategory() { return DocumentAccessError.class; } --- 74,80 ---- * * @return The class DocumentAccessError itself. */ ! public Class getCategory() { return DocumentAccessError.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* NaturalLanguageSyntax.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NaturalLanguageSyntax.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute; *** 41,53 **** import java.io.Serializable; /** ! * NaturalLanguageSyntax is the abstract base class of all ! * attribute classes which provide a natural language (US-ASCII) * string as value. * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public abstract class NaturalLanguageSyntax implements Cloneable, Serializable { private final String value; --- 41,53 ---- import java.io.Serializable; /** ! * NaturalLanguageSyntax is the abstract base class of all ! * attribute classes which provide a natural language (US-ASCII) * string as value. * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public abstract class NaturalLanguageSyntax implements Cloneable, Serializable { private final String value; *************** public abstract class NaturalLanguageSyn *** 64,70 **** { if (value == null) throw new NullPointerException("value may not be null"); ! this.value = value; } --- 64,70 ---- { if (value == null) throw new NullPointerException("value may not be null"); ! this.value = value; } *************** public abstract class NaturalLanguageSyn *** 100,113 **** if (! (obj instanceof NaturalLanguageSyntax)) return false; ! NaturalLanguageSyntax tmp = (NaturalLanguageSyntax) obj; return value.equals(tmp.getValue()); } /** * Returns a string representing the object. The returned * string is the underlying text value of this object. ! * * @return The string representation. */ public String toString() --- 100,113 ---- if (! (obj instanceof NaturalLanguageSyntax)) return false; ! NaturalLanguageSyntax tmp = (NaturalLanguageSyntax) obj; return value.equals(tmp.getValue()); } /** * Returns a string representing the object. The returned * string is the underlying text value of this object. ! * * @return The string representation. */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* RequestedAttributes.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RequestedAttributes.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.Attribute; *** 48,62 **** /** * RequestedAttributes specifies the requested * attributes in an IPP request operation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class RequestedAttributes implements Attribute { ! private ArrayList attributes; /** ! * Creates a RequestedAttributes object with * the initial value. * * @param value the string for the ipp name --- 48,62 ---- /** * RequestedAttributes specifies the requested * attributes in an IPP request operation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class RequestedAttributes implements Attribute { ! private ArrayList attributes; /** ! * Creates a RequestedAttributes object with * the initial value. * * @param value the string for the ipp name *************** public final class RequestedAttributes i *** 67,95 **** { if (value == null) throw new NullPointerException(); ! ! attributes = new ArrayList(); attributes.add(value); } ! /** * Adds the IPP name value to the set. ! * * @param value the string for the ipp name */ public void addValue(String value) { attributes.add(value); } ! /** * Returns the values. ! * * @return The values as list. */ ! public List getValues() { ! return attributes; } /** --- 67,95 ---- { if (value == null) throw new NullPointerException(); ! ! attributes = new ArrayList(); attributes.add(value); } ! /** * Adds the IPP name value to the set. ! * * @param value the string for the ipp name */ public void addValue(String value) { attributes.add(value); } ! /** * Returns the values. ! * * @return The values as list. */ ! public String[] getValues() { ! return attributes.toArray(new String[attributes.size()]); } /** *************** public final class RequestedAttributes i *** 97,103 **** * * @return The class DocumentFormat itself. */ ! public Class getCategory() { return RequestedAttributes.class; } --- 97,103 ---- * * @return The class DocumentFormat itself. */ ! public Class getCategory() { return RequestedAttributes.class; } *************** public final class RequestedAttributes i *** 120,132 **** public String toString() { CPStringBuilder b = new CPStringBuilder(); ! if (attributes.size() > 0) b.append(attributes.get(0)); ! for (int i=1; i < attributes.size(); i++) b.append(", " + attributes.get(i)); ! return b.toString(); ! } } --- 120,132 ---- public String toString() { CPStringBuilder b = new CPStringBuilder(); ! if (attributes.size() > 0) b.append(attributes.get(0)); ! for (int i=1; i < attributes.size(); i++) b.append(", " + attributes.get(i)); ! return b.toString(); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/StatusMessage.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/StatusMessage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/StatusMessage.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/StatusMessage.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* StatusMessage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StatusMessage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 45,53 **** /** * StatusMessage attribute as described in RFC 2911 section ! * 3.1.6 Operation Response Status Codes and Status Message * provides a short description of the status of the operation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class StatusMessage extends TextSyntax implements Attribute --- 45,53 ---- /** * StatusMessage attribute as described in RFC 2911 section ! * 3.1.6 Operation Response Status Codes and Status Message * provides a short description of the status of the operation. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class StatusMessage extends TextSyntax implements Attribute *************** public final class StatusMessage extends *** 73,79 **** * * @return The class StatusMessage itself. */ ! public Class getCategory() { return StatusMessage.class; } --- 73,79 ---- * * @return The class StatusMessage itself. */ ! public Class getCategory() { return StatusMessage.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/UnknownAttribute.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/UnknownAttribute.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/UnknownAttribute.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/UnknownAttribute.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* UnknownAttribute.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnknownAttribute.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.Attribute; *** 49,55 **** /** * UnknownAttribute holds all the parsed Attribute information. * It provides methods to get the value-tag, name and value. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class UnknownAttribute implements Attribute --- 49,55 ---- /** * UnknownAttribute holds all the parsed Attribute information. * It provides methods to get the value-tag, name and value. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class UnknownAttribute implements Attribute *************** public final class UnknownAttribute impl *** 61,67 **** /** * Creates a UnknownAttribute object with the given values. * ! * @param tag the value tag * @param name the attribute name * @param value the byte[] with the value */ --- 61,67 ---- /** * Creates a UnknownAttribute object with the given values. * ! * @param tag the value tag * @param name the attribute name * @param value the byte[] with the value */ *************** public final class UnknownAttribute impl *** 77,83 **** * * @return The class UnknownAttribute itself. */ ! public Class getCategory() { return UnknownAttribute.class; } --- 77,83 ---- * * @return The class UnknownAttribute itself. */ ! public Class getCategory() { return UnknownAttribute.class; } *************** public final class UnknownAttribute impl *** 91,108 **** { return name; } ! /** * Returns the value tag * @return The tag. ! * * @see gnu.javax.print.ipp.IppValueTag */ public byte getValueTag() { return tag; } ! /** * Returns the name of the attribute. * @return The name. --- 91,108 ---- { return name; } ! /** * Returns the value tag * @return The tag. ! * * @see gnu.javax.print.ipp.IppValueTag */ public byte getValueTag() { return tag; } ! /** * Returns the name of the attribute. * @return The name. *************** public final class UnknownAttribute impl *** 111,117 **** { return name; } ! /** * Returns the attribute value origin byte array. * @return The value. --- 111,117 ---- { return name; } ! /** * Returns the attribute value origin byte array. * @return The value. *************** public final class UnknownAttribute impl *** 120,126 **** { return value; } ! /** * Returns the attribute value decoded as String. * @return The value as String. --- 120,126 ---- { return value; } ! /** * Returns the attribute value decoded as String. * @return The value as String. *************** public final class UnknownAttribute impl *** 129,135 **** { return new String(value); } ! /** * Returns the attribute value decoded as int. * @return The value as int. --- 129,135 ---- { return new String(value); } ! /** * Returns the attribute value decoded as int. * @return The value as int. *************** public final class UnknownAttribute impl *** 138,144 **** { return IppUtilities.convertToInt(value); } ! /** * Returns the attribute value decoded as an URI. * @return The value as URI. --- 138,144 ---- { return IppUtilities.convertToInt(value); } ! /** * Returns the attribute value decoded as an URI. * @return The value as URI. *************** public final class UnknownAttribute impl *** 159,165 **** * Provides a string representation for some default * tag types (e.g. int, rangeofinteger, string, uri). * For other more complex types "No conversion found." ! * is returned. */ public String toString() { --- 159,165 ---- * Provides a string representation for some default * tag types (e.g. int, rangeofinteger, string, uri). * For other more complex types "No conversion found." ! * is returned. */ public String toString() { *************** public final class UnknownAttribute impl *** 168,176 **** case IppValueTag.INTEGER: return "" + getAttributeValueAsInt(); case IppValueTag.RANGEOFINTEGER: ! int lower = IppUtilities.convertToInt(value[0], value[1], value[2], value[3]); ! int upper = IppUtilities.convertToInt(value[4], value[5], value[6], value[7]); return lower + "-" + upper; case IppValueTag.URI: --- 168,176 ---- case IppValueTag.INTEGER: return "" + getAttributeValueAsInt(); case IppValueTag.RANGEOFINTEGER: ! int lower = IppUtilities.convertToInt(value[0], value[1], value[2], value[3]); ! int upper = IppUtilities.convertToInt(value[4], value[5], value[6], value[7]); return lower + "-" + upper; case IppValueTag.URI: *************** public final class UnknownAttribute impl *** 186,190 **** default: return "No conversion found."; } ! } } --- 186,190 ---- default: return "No conversion found."; } ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* CopiesDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CopiesDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Co *** 46,58 **** /** * CopiesDefault provides the default value * for the copies attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class CopiesDefault extends IntegerSyntax implements DefaultValueAttribute { ! /** * Creates a CopiesDefault object. * --- 46,58 ---- /** * CopiesDefault provides the default value * for the copies attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class CopiesDefault extends IntegerSyntax implements DefaultValueAttribute { ! /** * Creates a CopiesDefault object. * *************** public final class CopiesDefault extends *** 67,79 **** if (value < 1) throw new IllegalArgumentException("value may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 67,79 ---- if (value < 1) throw new IllegalArgumentException("value may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) *************** public final class CopiesDefault extends *** 89,95 **** * * @return The class CopiesDefault itself. */ ! public Class getCategory() { return CopiesDefault.class; } --- 89,95 ---- * * @return The class CopiesDefault itself. */ ! public Class getCategory() { return CopiesDefault.class; } *************** public final class CopiesDefault extends *** 103,117 **** { return "copies-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. *

          May return null if no value exists in JPS API.

          ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return new Copies(getValue()); } --- 103,117 ---- { return "copies-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. *

          May return null if no value exists in JPS API.

          ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return new Copies(getValue()); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* DocumentFormatDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DocumentFormatDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 49,64 **** /** * DocumentFormatDefault specifies the default document * format of a printer. ! * * @author Wolfgang Baer (WBaer@gmx.de) * */ ! public final class DocumentFormatDefault extends TextSyntax implements DefaultValueAttribute { /** ! * Creates a DocumentFormatDefault object with the * given value and locale. * * @param value the value for this syntax --- 49,64 ---- /** * DocumentFormatDefault specifies the default document * format of a printer. ! * * @author Wolfgang Baer (WBaer@gmx.de) * */ ! public final class DocumentFormatDefault extends TextSyntax implements DefaultValueAttribute { /** ! * Creates a DocumentFormatDefault object with the * given value and locale. * * @param value the value for this syntax *************** public final class DocumentFormatDefault *** 77,83 **** * * @return The class DocumentFormatDefault itself. */ ! public Class getCategory() { return DocumentFormatDefault.class; } --- 77,83 ---- * * @return The class DocumentFormatDefault itself. */ ! public Class getCategory() { return DocumentFormatDefault.class; } *************** public final class DocumentFormatDefault *** 95,106 **** /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return new DocumentFormat(getValue(), getLocale()); } ! } --- 95,106 ---- /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return new DocumentFormat(getValue(), getLocale()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java Tue Oct 12 15:55:12 2010 *************** import javax.print.attribute.EnumSyntax; *** 48,54 **** /** * The FinishingsDefault attribute provides the supported * values for finishings of a job. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class FinishingsDefault extends EnumSyntax --- 48,54 ---- /** * The FinishingsDefault attribute provides the supported * values for finishings of a job. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class FinishingsDefault extends EnumSyntax *************** public final class FinishingsDefault ext *** 57,164 **** /** No finishing. */ public static final FinishingsDefault NONE = new FinishingsDefault(3); ! /** Staple the document(s) */ public static final FinishingsDefault STAPLE = new FinishingsDefault(4); ! /** Cover a document */ public static final FinishingsDefault COVER = new FinishingsDefault(6); ! /** * This value indicates that a binding is to be applied to the document. * The type and placement of the binding is site-defined. */ public static final FinishingsDefault BIND = new FinishingsDefault(7); ! /** ! * Bind the document(s) with one or more staples (wire stitches) ! * along the middle fold. */ public static final FinishingsDefault SADDLE_STITCH = new FinishingsDefault(8); ! /** ! * Bind the document(s) with one or more staples (wire stitches) ! * along one edge. */ public static final FinishingsDefault EDGE_STITCH = new FinishingsDefault(9); ! ! /** ! * Bind the document(s) with one or more staples in the top left ! * corner. */ public static final FinishingsDefault STAPLE_TOP_LEFT = new FinishingsDefault(20); ! ! /** ! * Bind the document(s) with one or more staples in the bottom ! * left corner. */ public static final FinishingsDefault STAPLE_BOTTOM_LEFT = new FinishingsDefault(21); ! /** * Bind the document(s) with one or more staples in the top right corner. */ public static final FinishingsDefault STAPLE_TOP_RIGHT = new FinishingsDefault(22); ! /** * Bind the document(s) with one or more staples in the bottom right corner. */ public static final FinishingsDefault STAPLE_BOTTOM_RIGHT = new FinishingsDefault(23); ! /** ! * Bind the document(s) with one or more staples (wire stitches) * along the left edge. */ public static final FinishingsDefault EDGE_STITCH_LEFT = new FinishingsDefault(24); ! /** ! * Bind the document(s) with one or more staples (wire stitches) along * the top edge. */ public static final FinishingsDefault EDGE_STITCH_TOP = new FinishingsDefault(25); ! /** ! * Bind the document(s) with one or more staples (wire stitches) along * the right edge. */ public static final FinishingsDefault EDGE_STITCH_RIGHT = new FinishingsDefault(26); ! /** * Bind the document(s) with one or more staples (wire stitches) along ! * the bottom edge. */ public static final FinishingsDefault EDGE_STITCH_BOTTOM = new FinishingsDefault(27); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * left edge assuming a portrait document. */ public static final FinishingsDefault STAPLE_DUAL_LEFT = new FinishingsDefault(28); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * top edge assuming a portrait document. */ public static final FinishingsDefault STAPLE_DUAL_TOP = new FinishingsDefault(29); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * right edge assuming a portrait document. */ public static final FinishingsDefault STAPLE_DUAL_RIGHT = new FinishingsDefault(30); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * bottom edge assuming a portrait document. */ public static final FinishingsDefault STAPLE_DUAL_BOTTOM = new FinishingsDefault(31); ! private static final String[] stringTable = { "none", "staple", null, "cover", "bind", "saddle-stitch", "edge-stitch", null, null, null, null, null, null, null, null, null, null, "staple-top-left", ! "staple-bottom-left", ! "staple-top-right", "staple-bottom-right", "edge-stitch-left", "edge-stitch-top", --- 57,164 ---- /** No finishing. */ public static final FinishingsDefault NONE = new FinishingsDefault(3); ! /** Staple the document(s) */ public static final FinishingsDefault STAPLE = new FinishingsDefault(4); ! /** Cover a document */ public static final FinishingsDefault COVER = new FinishingsDefault(6); ! /** * This value indicates that a binding is to be applied to the document. * The type and placement of the binding is site-defined. */ public static final FinishingsDefault BIND = new FinishingsDefault(7); ! /** ! * Bind the document(s) with one or more staples (wire stitches) ! * along the middle fold. */ public static final FinishingsDefault SADDLE_STITCH = new FinishingsDefault(8); ! /** ! * Bind the document(s) with one or more staples (wire stitches) ! * along one edge. */ public static final FinishingsDefault EDGE_STITCH = new FinishingsDefault(9); ! ! /** ! * Bind the document(s) with one or more staples in the top left ! * corner. */ public static final FinishingsDefault STAPLE_TOP_LEFT = new FinishingsDefault(20); ! ! /** ! * Bind the document(s) with one or more staples in the bottom ! * left corner. */ public static final FinishingsDefault STAPLE_BOTTOM_LEFT = new FinishingsDefault(21); ! /** * Bind the document(s) with one or more staples in the top right corner. */ public static final FinishingsDefault STAPLE_TOP_RIGHT = new FinishingsDefault(22); ! /** * Bind the document(s) with one or more staples in the bottom right corner. */ public static final FinishingsDefault STAPLE_BOTTOM_RIGHT = new FinishingsDefault(23); ! /** ! * Bind the document(s) with one or more staples (wire stitches) * along the left edge. */ public static final FinishingsDefault EDGE_STITCH_LEFT = new FinishingsDefault(24); ! /** ! * Bind the document(s) with one or more staples (wire stitches) along * the top edge. */ public static final FinishingsDefault EDGE_STITCH_TOP = new FinishingsDefault(25); ! /** ! * Bind the document(s) with one or more staples (wire stitches) along * the right edge. */ public static final FinishingsDefault EDGE_STITCH_RIGHT = new FinishingsDefault(26); ! /** * Bind the document(s) with one or more staples (wire stitches) along ! * the bottom edge. */ public static final FinishingsDefault EDGE_STITCH_BOTTOM = new FinishingsDefault(27); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * left edge assuming a portrait document. */ public static final FinishingsDefault STAPLE_DUAL_LEFT = new FinishingsDefault(28); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * top edge assuming a portrait document. */ public static final FinishingsDefault STAPLE_DUAL_TOP = new FinishingsDefault(29); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * right edge assuming a portrait document. */ public static final FinishingsDefault STAPLE_DUAL_RIGHT = new FinishingsDefault(30); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * bottom edge assuming a portrait document. */ public static final FinishingsDefault STAPLE_DUAL_BOTTOM = new FinishingsDefault(31); ! private static final String[] stringTable = { "none", "staple", null, "cover", "bind", "saddle-stitch", "edge-stitch", null, null, null, null, null, null, null, null, null, null, "staple-top-left", ! "staple-bottom-left", ! "staple-top-right", "staple-bottom-right", "edge-stitch-left", "edge-stitch-top", *************** public final class FinishingsDefault ext *** 168,181 **** "staple-dual-top", "staple-dual-right", "staple-dual-bottom" }; ! ! private static final FinishingsDefault[] enumValueTable = { NONE, STAPLE, null, ! COVER, BIND, SADDLE_STITCH, ! EDGE_STITCH, null, ! null, null, null, ! null, null, null, ! null, null, null, STAPLE_TOP_LEFT, STAPLE_BOTTOM_LEFT, STAPLE_TOP_RIGHT, --- 168,181 ---- "staple-dual-top", "staple-dual-right", "staple-dual-bottom" }; ! ! private static final FinishingsDefault[] enumValueTable = { NONE, STAPLE, null, ! COVER, BIND, SADDLE_STITCH, ! EDGE_STITCH, null, ! null, null, null, ! null, null, null, ! null, null, null, STAPLE_TOP_LEFT, STAPLE_BOTTOM_LEFT, STAPLE_TOP_RIGHT, *************** public final class FinishingsDefault ext *** 188,197 **** STAPLE_DUAL_TOP, STAPLE_DUAL_RIGHT, STAPLE_DUAL_BOTTOM }; ! /** * Constructs a FinishingsDefault object. ! * * @param value the value */ protected FinishingsDefault(int value) --- 188,197 ---- STAPLE_DUAL_TOP, STAPLE_DUAL_RIGHT, STAPLE_DUAL_BOTTOM }; ! /** * Constructs a FinishingsDefault object. ! * * @param value the value */ protected FinishingsDefault(int value) *************** public final class FinishingsDefault ext *** 204,210 **** * * @return the class FinishingsDefault itself */ ! public Class getCategory() { return FinishingsDefault.class; } --- 204,210 ---- * * @return the class FinishingsDefault itself */ ! public Class getCategory() { return FinishingsDefault.class; } *************** public final class FinishingsDefault ext *** 218,224 **** { return "finishings-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 218,224 ---- { return "finishings-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class FinishingsDefault ext *** 249,262 **** { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return IppUtilities.getEnumAttribute("finishings", new Integer(getValue())); } --- 249,262 ---- { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return IppUtilities.getEnumAttribute("finishings", new Integer(getValue())); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobHoldUntilDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobHoldUntilDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Jo *** 50,106 **** /** * JobHoldUntilDefault attribute provides the default value * for the attribute type job-hold-until. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobHoldUntilDefault extends TextSyntax implements DefaultValueAttribute { ! ! // a keyword/name based attribute in IPP // can be extended by administrators // standard values are predefined ! /** Job should be printed immediately. */ ! public static final JobHoldUntilDefault NO_HOLD = new JobHoldUntilDefault("no-hold", null); ! /** Job should be hold indefinitely. */ ! public static final JobHoldUntilDefault INDEFINITE = new JobHoldUntilDefault("indefinite", null); ! /** Job should be processed during the day. */ ! public static final JobHoldUntilDefault DAY_TIME = new JobHoldUntilDefault("day-time", null); ! /** Job should be processed in the evening. */ ! public static final JobHoldUntilDefault EVENING = new JobHoldUntilDefault("evening", null); ! /** Job should be processed during night. */ ! public static final JobHoldUntilDefault NIGHT = new JobHoldUntilDefault("night", null); ! /** Job should be processed during the weekend. */ ! public static final JobHoldUntilDefault WEEKEND = new JobHoldUntilDefault("weekend", null); ! ! /** ! * Job should be processed as second-shift ! * (after close of business). */ ! public static final JobHoldUntilDefault SECOND_SHIFT = new JobHoldUntilDefault("second-shift", null); ! ! /** ! * Job should be processed as third-shift ! * (after midnight). */ ! public static final JobHoldUntilDefault THIRD_SHIFT = ! new JobHoldUntilDefault("third-shift", null); /** ! * Creates a JobHoldUntilDefault object with the * given value and locale. * * @param value the value for this syntax --- 50,106 ---- /** * JobHoldUntilDefault attribute provides the default value * for the attribute type job-hold-until. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobHoldUntilDefault extends TextSyntax implements DefaultValueAttribute { ! ! // a keyword/name based attribute in IPP // can be extended by administrators // standard values are predefined ! /** Job should be printed immediately. */ ! public static final JobHoldUntilDefault NO_HOLD = new JobHoldUntilDefault("no-hold", null); ! /** Job should be hold indefinitely. */ ! public static final JobHoldUntilDefault INDEFINITE = new JobHoldUntilDefault("indefinite", null); ! /** Job should be processed during the day. */ ! public static final JobHoldUntilDefault DAY_TIME = new JobHoldUntilDefault("day-time", null); ! /** Job should be processed in the evening. */ ! public static final JobHoldUntilDefault EVENING = new JobHoldUntilDefault("evening", null); ! /** Job should be processed during night. */ ! public static final JobHoldUntilDefault NIGHT = new JobHoldUntilDefault("night", null); ! /** Job should be processed during the weekend. */ ! public static final JobHoldUntilDefault WEEKEND = new JobHoldUntilDefault("weekend", null); ! ! /** ! * Job should be processed as second-shift ! * (after close of business). */ ! public static final JobHoldUntilDefault SECOND_SHIFT = new JobHoldUntilDefault("second-shift", null); ! ! /** ! * Job should be processed as third-shift ! * (after midnight). */ ! public static final JobHoldUntilDefault THIRD_SHIFT = ! new JobHoldUntilDefault("third-shift", null); /** ! * Creates a JobHoldUntilDefault object with the * given value and locale. * * @param value the value for this syntax *************** public final class JobHoldUntilDefault e *** 119,125 **** * * @return The class JobHoldUntilDefault itself. */ ! public Class getCategory() { return JobHoldUntilDefault.class; } --- 119,125 ---- * * @return The class JobHoldUntilDefault itself. */ ! public Class getCategory() { return JobHoldUntilDefault.class; } *************** public final class JobHoldUntilDefault e *** 133,146 **** { return "job-hold-until-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { // FIXME Same Mapping problem as in IppPrintService return new JobHoldUntil(new Date()); --- 133,146 ---- { return "job-hold-until-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { // FIXME Same Mapping problem as in IppPrintService return new JobHoldUntil(new Date()); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobPriorityDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobPriorityDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Jo *** 47,59 **** /** * JobPriorityDefault attribute provides the default value of * the printer object for the job-priority attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobPriorityDefault extends IntegerSyntax implements DefaultValueAttribute { ! /** * Creates a JobPriorityDefault object. * --- 47,59 ---- /** * JobPriorityDefault attribute provides the default value of * the printer object for the job-priority attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobPriorityDefault extends IntegerSyntax implements DefaultValueAttribute { ! /** * Creates a JobPriorityDefault object. * *************** public final class JobPriorityDefault ex *** 74,80 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 74,80 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) *************** public final class JobPriorityDefault ex *** 90,96 **** * * @return The class JobPriorityDefault itself. */ ! public Class getCategory() { return JobPriorityDefault.class; } --- 90,96 ---- * * @return The class JobPriorityDefault itself. */ ! public Class getCategory() { return JobPriorityDefault.class; } *************** public final class JobPriorityDefault ex *** 104,117 **** { return "job-priority-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return new JobPriority(getValue()); } --- 104,117 ---- { return "job-priority-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return new JobPriority(getValue()); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobSheetsDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobSheetsDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Jo *** 49,74 **** /** * JobSheetsDefault attribute provides the default value of * the printer object for the job-sheets attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobSheetsDefault extends TextSyntax implements DefaultValueAttribute { ! //a keyword/name based attribute in IPP // can be extended by administrators // standard values are predefined ! /** No job sheet is the default */ ! public static final JobSheetsDefault NONE = new JobSheetsDefault("none", Locale.getDefault()); ! /** A job sheet is the default */ ! public static final JobSheetsDefault STANDARD = new JobSheetsDefault("standard", Locale.getDefault()); ! /** ! * Creates a JobSheetsDefault object with the * given value and locale. * * @param value the value for this syntax --- 49,74 ---- /** * JobSheetsDefault attribute provides the default value of * the printer object for the job-sheets attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobSheetsDefault extends TextSyntax implements DefaultValueAttribute { ! //a keyword/name based attribute in IPP // can be extended by administrators // standard values are predefined ! /** No job sheet is the default */ ! public static final JobSheetsDefault NONE = new JobSheetsDefault("none", Locale.getDefault()); ! /** A job sheet is the default */ ! public static final JobSheetsDefault STANDARD = new JobSheetsDefault("standard", Locale.getDefault()); ! /** ! * Creates a JobSheetsDefault object with the * given value and locale. * * @param value the value for this syntax *************** public final class JobSheetsDefault exte *** 81,93 **** { super(value, locale); } ! /** * Returns category of this class. * * @return The class JobSheetsDefault itself. */ ! public Class getCategory() { return JobSheetsDefault.class; } --- 81,93 ---- { super(value, locale); } ! /** * Returns category of this class. * * @return The class JobSheetsDefault itself. */ ! public Class getCategory() { return JobSheetsDefault.class; } *************** public final class JobSheetsDefault exte *** 101,121 **** { return "job-sheets-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. *

          May return null if no value exists in JPS API.

          ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { if (this.equals(JobSheetsDefault.NONE)) return JobSheets.NONE; if (this.equals(JobSheetsDefault.STANDARD)) return JobSheets.STANDARD; ! return null; } --- 101,121 ---- { return "job-sheets-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. *

          May return null if no value exists in JPS API.

          ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { if (this.equals(JobSheetsDefault.NONE)) return JobSheets.NONE; if (this.equals(JobSheetsDefault.STANDARD)) return JobSheets.STANDARD; ! return null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/MediaDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/MediaDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/MediaDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/MediaDefault.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* MediaDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MediaDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 49,63 **** /** * MediaDefault attribute provides the default value of * the printer object for the media attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class MediaDefault extends TextSyntax implements DefaultValueAttribute { ! /** ! * Creates a MediaDefault object with the * given value and locale. * * @param value the value for this syntax --- 49,63 ---- /** * MediaDefault attribute provides the default value of * the printer object for the media attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class MediaDefault extends TextSyntax implements DefaultValueAttribute { ! /** ! * Creates a MediaDefault object with the * given value and locale. * * @param value the value for this syntax *************** public final class MediaDefault extends *** 70,82 **** { super(value, locale); } ! /** * Returns category of this class. * * @return The class MediaDefault itself. */ ! public Class getCategory() { return MediaDefault.class; } --- 70,82 ---- { super(value, locale); } ! /** * Returns category of this class. * * @return The class MediaDefault itself. */ ! public Class getCategory() { return MediaDefault.class; } *************** public final class MediaDefault extends *** 90,103 **** { return "media-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return IppUtilities.getEnumAttribute("media" , getValue()); } --- 90,103 ---- { return "media-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return IppUtilities.getEnumAttribute("media" , getValue()); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.java Tue Oct 12 15:55:12 2010 *************** import javax.print.attribute.EnumSyntax; *** 47,95 **** /** * MultipleDocumentHandlingDefault provides the * default value for the MultipleDocumentHandling attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class MultipleDocumentHandlingDefault extends EnumSyntax implements DefaultValueAttribute { ! //a keyword based attribute in IPP - int values just starting at 0 ! ! /** ! * Supports only multiple documents treated as a single document. This * applies to attributes which specify treatment of multiple document jobs. */ public static final MultipleDocumentHandlingDefault SINGLE_DOCUMENT = new MultipleDocumentHandlingDefault(0); ! /** Supports multiple documents as uncollated copies */ public static final MultipleDocumentHandlingDefault SEPARATE_DOCUMENTS_UNCOLLATED_COPIES = new MultipleDocumentHandlingDefault(1); ! /** Supports multiple documents as collated copies */ public static final MultipleDocumentHandlingDefault SEPARATE_DOCUMENTS_COLLATED_COPIES = new MultipleDocumentHandlingDefault(2); ! ! /** * Supports multiple documents where every single document starts ! * with a new sheet. */ public static final MultipleDocumentHandlingDefault SINGLE_DOCUMENT_NEW_SHEET = new MultipleDocumentHandlingDefault(3); ! private static final String[] stringTable = { "single-document", "separate-documents-uncollated-copies", "separate-documents-collated-copies", "single-document-new-sheet" }; ! ! private static final MultipleDocumentHandlingDefault[] enumValueTable = { SINGLE_DOCUMENT, SEPARATE_DOCUMENTS_UNCOLLATED_COPIES, SEPARATE_DOCUMENTS_COLLATED_COPIES, SINGLE_DOCUMENT_NEW_SHEET}; ! /** * Constructs a MultipleDocumentHandlingDefault object. ! * * @param value the enum value */ protected MultipleDocumentHandlingDefault(int value) --- 47,95 ---- /** * MultipleDocumentHandlingDefault provides the * default value for the MultipleDocumentHandling attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class MultipleDocumentHandlingDefault extends EnumSyntax implements DefaultValueAttribute { ! //a keyword based attribute in IPP - int values just starting at 0 ! ! /** ! * Supports only multiple documents treated as a single document. This * applies to attributes which specify treatment of multiple document jobs. */ public static final MultipleDocumentHandlingDefault SINGLE_DOCUMENT = new MultipleDocumentHandlingDefault(0); ! /** Supports multiple documents as uncollated copies */ public static final MultipleDocumentHandlingDefault SEPARATE_DOCUMENTS_UNCOLLATED_COPIES = new MultipleDocumentHandlingDefault(1); ! /** Supports multiple documents as collated copies */ public static final MultipleDocumentHandlingDefault SEPARATE_DOCUMENTS_COLLATED_COPIES = new MultipleDocumentHandlingDefault(2); ! ! /** * Supports multiple documents where every single document starts ! * with a new sheet. */ public static final MultipleDocumentHandlingDefault SINGLE_DOCUMENT_NEW_SHEET = new MultipleDocumentHandlingDefault(3); ! private static final String[] stringTable = { "single-document", "separate-documents-uncollated-copies", "separate-documents-collated-copies", "single-document-new-sheet" }; ! ! private static final MultipleDocumentHandlingDefault[] enumValueTable = { SINGLE_DOCUMENT, SEPARATE_DOCUMENTS_UNCOLLATED_COPIES, SEPARATE_DOCUMENTS_COLLATED_COPIES, SINGLE_DOCUMENT_NEW_SHEET}; ! /** * Constructs a MultipleDocumentHandlingDefault object. ! * * @param value the enum value */ protected MultipleDocumentHandlingDefault(int value) *************** public final class MultipleDocumentHandl *** 102,108 **** * * @return The class MultipleDocumentHandlingDefault itself. */ ! public Class getCategory() { return MultipleDocumentHandlingDefault.class; } --- 102,108 ---- * * @return The class MultipleDocumentHandlingDefault itself. */ ! public Class getCategory() { return MultipleDocumentHandlingDefault.class; } *************** public final class MultipleDocumentHandl *** 116,122 **** { return "multiple-document-handling-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 116,122 ---- { return "multiple-document-handling-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class MultipleDocumentHandl *** 137,152 **** { return enumValueTable; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { ! return IppUtilities.getEnumAttribute("multiple-document-handling", new Integer(getValue())); } } --- 137,152 ---- { return enumValueTable; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { ! return IppUtilities.getEnumAttribute("multiple-document-handling", new Integer(getValue())); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* NumberUpDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NumberUpDefault.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Nu *** 46,58 **** /** * NumberUpDefault attribute provides the default value of * the numper up attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class NumberUpDefault extends IntegerSyntax implements DefaultValueAttribute { ! /** * Creates a NumberUpDefault object. * --- 46,58 ---- /** * NumberUpDefault attribute provides the default value of * the numper up attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class NumberUpDefault extends IntegerSyntax implements DefaultValueAttribute { ! /** * Creates a NumberUpDefault object. * *************** public final class NumberUpDefault exten *** 63,75 **** { super(value); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 63,75 ---- { super(value); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) *************** public final class NumberUpDefault exten *** 85,91 **** * * @return The class NumberUpDefault itself. */ ! public Class getCategory() { return NumberUpDefault.class; } --- 85,91 ---- * * @return The class NumberUpDefault itself. */ ! public Class getCategory() { return NumberUpDefault.class; } *************** public final class NumberUpDefault exten *** 99,113 **** { return "number-up-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. *

          May return null if no value exists in JPS API.

          ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return new NumberUp(getValue()); } --- 99,113 ---- { return "number-up-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. *

          May return null if no value exists in JPS API.

          ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return new NumberUp(getValue()); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.java Tue Oct 12 15:55:12 2010 *************** import javax.print.attribute.EnumSyntax; *** 45,71 **** /** ! * The OrientationRequestedDefault attribute provides * the default value for the job attribute orientation-requested. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class OrientationRequestedDefault extends EnumSyntax implements DefaultValueAttribute { ! /** Orientation as portrait. */ public static final OrientationRequestedDefault PORTRAIT = new OrientationRequestedDefault(3); ! /** Orientation as landscape. */ public static final OrientationRequestedDefault LANDSCAPE = new OrientationRequestedDefault(4); ! /** Orientation as reversed landscape. */ public static final OrientationRequestedDefault REVERSE_LANDSCAPE = new OrientationRequestedDefault(5); ! /** Orientation as reversed portrait. */ public static final OrientationRequestedDefault REVERSE_PORTRAIT = new OrientationRequestedDefault(6); --- 45,71 ---- /** ! * The OrientationRequestedDefault attribute provides * the default value for the job attribute orientation-requested. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class OrientationRequestedDefault extends EnumSyntax implements DefaultValueAttribute { ! /** Orientation as portrait. */ public static final OrientationRequestedDefault PORTRAIT = new OrientationRequestedDefault(3); ! /** Orientation as landscape. */ public static final OrientationRequestedDefault LANDSCAPE = new OrientationRequestedDefault(4); ! /** Orientation as reversed landscape. */ public static final OrientationRequestedDefault REVERSE_LANDSCAPE = new OrientationRequestedDefault(5); ! /** Orientation as reversed portrait. */ public static final OrientationRequestedDefault REVERSE_PORTRAIT = new OrientationRequestedDefault(6); *************** public final class OrientationRequestedD *** 74,87 **** private static final String[] stringTable = { "portrait", "landscape", "reverse-landscape", "reverse-portrait" }; ! ! private static final OrientationRequestedDefault[] ! enumValueTable = { PORTRAIT, LANDSCAPE, REVERSE_LANDSCAPE, REVERSE_PORTRAIT }; ! /** * Constructs a OrientationRequestedDefault object. ! * * @param value the value */ protected OrientationRequestedDefault(int value) --- 74,87 ---- private static final String[] stringTable = { "portrait", "landscape", "reverse-landscape", "reverse-portrait" }; ! ! private static final OrientationRequestedDefault[] ! enumValueTable = { PORTRAIT, LANDSCAPE, REVERSE_LANDSCAPE, REVERSE_PORTRAIT }; ! /** * Constructs a OrientationRequestedDefault object. ! * * @param value the value */ protected OrientationRequestedDefault(int value) *************** public final class OrientationRequestedD *** 94,100 **** * * @return The class OrientationRequestedDefault itself. */ ! public Class getCategory() { return OrientationRequestedDefault.class; } --- 94,100 ---- * * @return The class OrientationRequestedDefault itself. */ ! public Class getCategory() { return OrientationRequestedDefault.class; } *************** public final class OrientationRequestedD *** 108,114 **** { return "orientation-requested-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 108,114 ---- { return "orientation-requested-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class OrientationRequestedD *** 129,135 **** { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . --- 129,135 ---- { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . *************** public final class OrientationRequestedD *** 139,154 **** { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { ! return IppUtilities.getEnumAttribute("orientation-requested", new Integer(getValue())); } } --- 139,154 ---- { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { ! return IppUtilities.getEnumAttribute("orientation-requested", new Integer(getValue())); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.java Tue Oct 12 15:55:12 2010 *************** import javax.print.attribute.EnumSyntax; *** 47,53 **** /** * PrintQualityDefault provides the * default value for the print-quality attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrintQualityDefault extends EnumSyntax --- 47,53 ---- /** * PrintQualityDefault provides the * default value for the print-quality attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrintQualityDefault extends EnumSyntax *************** public final class PrintQualityDefault e *** 55,74 **** { /** Draft quality of the printer. */ public static final PrintQualityDefault DRAFT = new PrintQualityDefault(3); ! /** Normal quality of the printer. */ public static final PrintQualityDefault NORMAL = new PrintQualityDefault(4); ! /** High quality of the printer. */ public static final PrintQualityDefault HIGH = new PrintQualityDefault(5); private static final String[] stringTable = { "draft", "normal", "high" }; ! private static final PrintQualityDefault[] enumValueTable = { DRAFT, NORMAL, HIGH }; ! /** * Constructs a PrintQualityDefault object. ! * * @param value the value of the enum */ protected PrintQualityDefault(int value) --- 55,74 ---- { /** Draft quality of the printer. */ public static final PrintQualityDefault DRAFT = new PrintQualityDefault(3); ! /** Normal quality of the printer. */ public static final PrintQualityDefault NORMAL = new PrintQualityDefault(4); ! /** High quality of the printer. */ public static final PrintQualityDefault HIGH = new PrintQualityDefault(5); private static final String[] stringTable = { "draft", "normal", "high" }; ! private static final PrintQualityDefault[] enumValueTable = { DRAFT, NORMAL, HIGH }; ! /** * Constructs a PrintQualityDefault object. ! * * @param value the value of the enum */ protected PrintQualityDefault(int value) *************** public final class PrintQualityDefault e *** 81,87 **** * * @return The class PrintQualityDefault itself. */ ! public Class getCategory() { return PrintQualityDefault.class; } --- 81,87 ---- * * @return The class PrintQualityDefault itself. */ ! public Class getCategory() { return PrintQualityDefault.class; } *************** public final class PrintQualityDefault e *** 95,101 **** { return "print-quality-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 95,101 ---- { return "print-quality-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class PrintQualityDefault e *** 116,122 **** { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . --- 116,122 ---- { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . *************** public final class PrintQualityDefault e *** 126,139 **** { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return IppUtilities.getEnumAttribute( "print-quality", new Integer(getValue())); --- 126,139 ---- { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return IppUtilities.getEnumAttribute( "print-quality", new Integer(getValue())); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.java Tue Oct 12 15:55:12 2010 *************** import javax.print.attribute.standard.Pr *** 45,59 **** /** ! * The PrinterResolutionDefault attribute provides * the default value for the job attribute printer-resolution. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrinterResolutionDefault extends ResolutionSyntax implements DefaultValueAttribute { ! /** * Creates a ResolutionSyntax object with the given arguments. * --- 45,59 ---- /** ! * The PrinterResolutionDefault attribute provides * the default value for the job attribute printer-resolution. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrinterResolutionDefault extends ResolutionSyntax implements DefaultValueAttribute { ! /** * Creates a ResolutionSyntax object with the given arguments. * *************** public final class PrinterResolutionDefa *** 68,87 **** { super(crossFeedResolution, feedResolution, units); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if(! (obj instanceof PrinterResolutionDefault)) return false; ! return super.equals(obj); } --- 68,87 ---- { super(crossFeedResolution, feedResolution, units); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if(! (obj instanceof PrinterResolutionDefault)) return false; ! return super.equals(obj); } *************** public final class PrinterResolutionDefa *** 90,96 **** * * @return The class PrinterResolutionDefault itself. */ ! public Class getCategory() { return PrinterResolutionDefault.class; } --- 90,96 ---- * * @return The class PrinterResolutionDefault itself. */ ! public Class getCategory() { return PrinterResolutionDefault.class; } *************** public final class PrinterResolutionDefa *** 104,119 **** { return "printer-resolution-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { ! return new PrinterResolution(getCrossFeedResolutionDphi(), getFeedResolutionDphi(), 1); } } --- 104,119 ---- { return "printer-resolution-default"; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { ! return new PrinterResolution(getCrossFeedResolutionDphi(), getFeedResolutionDphi(), 1); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/SidesDefault.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/SidesDefault.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/SidesDefault.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/SidesDefault.java Tue Oct 12 15:55:12 2010 *************** import javax.print.attribute.EnumSyntax; *** 47,91 **** /** * SidesDefault provides the * default for the sides attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class SidesDefault extends EnumSyntax implements DefaultValueAttribute { ! /** Specifies that each page should be printed on one sheet. */ public static final SidesDefault ONE_SIDED = new SidesDefault(0); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the long edge. */ ! public static final SidesDefault TWO_SIDED_LONG_EDGE = new SidesDefault(1); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the short edge. */ ! public static final SidesDefault TWO_SIDED_SHORT_EDGE = new SidesDefault(2); ! /** An alias constant for "two sided long edge". */ public static final SidesDefault DUPLEX = new SidesDefault(1); ! /** An alias constant for "two sided short edge". */ public static final SidesDefault TUMBLE = new SidesDefault(2); ! private static final String[] stringTable = { "one-sided", "two-sided-long-edge", "two-sided-short-edge" }; ! ! private static final SidesDefault[] enumValueTable = { ONE_SIDED, ! TWO_SIDED_LONG_EDGE, TWO_SIDED_SHORT_EDGE }; ! ! /** * Creates a SidesDefault object. * --- 47,91 ---- /** * SidesDefault provides the * default for the sides attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class SidesDefault extends EnumSyntax implements DefaultValueAttribute { ! /** Specifies that each page should be printed on one sheet. */ public static final SidesDefault ONE_SIDED = new SidesDefault(0); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the long edge. */ ! public static final SidesDefault TWO_SIDED_LONG_EDGE = new SidesDefault(1); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the short edge. */ ! public static final SidesDefault TWO_SIDED_SHORT_EDGE = new SidesDefault(2); ! /** An alias constant for "two sided long edge". */ public static final SidesDefault DUPLEX = new SidesDefault(1); ! /** An alias constant for "two sided short edge". */ public static final SidesDefault TUMBLE = new SidesDefault(2); ! private static final String[] stringTable = { "one-sided", "two-sided-long-edge", "two-sided-short-edge" }; ! ! private static final SidesDefault[] enumValueTable = { ONE_SIDED, ! TWO_SIDED_LONG_EDGE, TWO_SIDED_SHORT_EDGE }; ! ! /** * Creates a SidesDefault object. * *************** public final class SidesDefault extends *** 101,107 **** * * @return The class SidesDefault itself. */ ! public Class getCategory() { return SidesDefault.class; } --- 101,107 ---- * * @return The class SidesDefault itself. */ ! public Class getCategory() { return SidesDefault.class; } *************** public final class SidesDefault extends *** 115,121 **** { return "sides-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 115,121 ---- { return "sides-default"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class SidesDefault extends *** 136,149 **** { return enumValueTable; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return IppUtilities.getEnumAttribute("sides", new Integer(getValue())); } --- 136,149 ---- { return enumValueTable; } ! /** * Returns the equally enum of the standard attribute class * of this DefaultValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Attribute getAssociatedAttribute() { return IppUtilities.getEnumAttribute("sides", new Integer(getValue())); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/AttributesCharset.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/AttributesCharset.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/AttributesCharset.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/AttributesCharset.java Tue Oct 12 15:55:12 2010 *************** import javax.print.attribute.Attribute; *** 46,69 **** * AttributesCharset attribute as described in RFC 2911 chapter * 3.1.4 Character Set and Natural Language Operation Attributes. *

          ! * This operation attribute identifies the charset used by any text * and name attribute supplied by the client in the request. This * charset must be used by the printer object in the response.
          * All clients and IPP objects must support the 'utf-8' charset. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class AttributesCharset extends CharsetSyntax implements Attribute { ! /** Defines a default UTF-8 charset instance */ public static final AttributesCharset UTF8 = new AttributesCharset("utf-8"); /** * Creates a AttributesCharset object. ! * * @param value the charset string value. */ public AttributesCharset(String value) --- 46,69 ---- * AttributesCharset attribute as described in RFC 2911 chapter * 3.1.4 Character Set and Natural Language Operation Attributes. *

          ! * This operation attribute identifies the charset used by any text * and name attribute supplied by the client in the request. This * charset must be used by the printer object in the response.
          * All clients and IPP objects must support the 'utf-8' charset. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class AttributesCharset extends CharsetSyntax implements Attribute { ! /** Defines a default UTF-8 charset instance */ public static final AttributesCharset UTF8 = new AttributesCharset("utf-8"); /** * Creates a AttributesCharset object. ! * * @param value the charset string value. */ public AttributesCharset(String value) *************** public final class AttributesCharset ext *** 76,82 **** * * @return The class AttributesCharset itself. */ ! public Class getCategory() { return AttributesCharset.class; } --- 76,82 ---- * * @return The class AttributesCharset itself. */ ! public Class getCategory() { return AttributesCharset.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* AttributesNaturalLanguage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AttributesNaturalLanguage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.Attribute; *** 49,71 **** *

          * This operation attribute identifies the natural language used * by any text and name attribute supplied by the client in the request. ! * The printer object should use this natural language for the response * to this request. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class AttributesNaturalLanguage extends NaturalLanguageSyntax implements Attribute { ! /** Defines the default language EN */ ! public static final AttributesNaturalLanguage EN = new AttributesNaturalLanguage("en"); /** * Creates a AttributesNaturalLanguage object. ! * * @param value the language string value. */ public AttributesNaturalLanguage(String value) --- 49,71 ---- *

          * This operation attribute identifies the natural language used * by any text and name attribute supplied by the client in the request. ! * The printer object should use this natural language for the response * to this request. *

          ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class AttributesNaturalLanguage extends NaturalLanguageSyntax implements Attribute { ! /** Defines the default language EN */ ! public static final AttributesNaturalLanguage EN = new AttributesNaturalLanguage("en"); /** * Creates a AttributesNaturalLanguage object. ! * * @param value the language string value. */ public AttributesNaturalLanguage(String value) *************** public final class AttributesNaturalLang *** 78,84 **** * * @return The class AttributesNaturalLanguage itself. */ ! public Class getCategory() { return AttributesNaturalLanguage.class; } --- 78,84 ---- * * @return The class AttributesNaturalLanguage itself. */ ! public Class getCategory() { return AttributesNaturalLanguage.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobDetailedStatusMessages.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobDetailedStatusMessages.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 46,55 **** /** * JobDetailedStatusMessages provides additional detailed and * technical job informations. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobDetailedStatusMessages extends TextSyntax implements Attribute { --- 46,55 ---- /** * JobDetailedStatusMessages provides additional detailed and * technical job informations. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobDetailedStatusMessages extends TextSyntax implements Attribute { *************** public final class JobDetailedStatusMess *** 73,79 **** * * @return The class JobDetailedStatusMessages itself. */ ! public Class getCategory() { return JobDetailedStatusMessages.class; } --- 73,79 ---- * * @return The class JobDetailedStatusMessages itself. */ ! public Class getCategory() { return JobDetailedStatusMessages.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobDocumentAccessErrors.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobDocumentAccessErrors.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 47,56 **** * JobDocumentAccessErrors provides additional information * for each access error for print-uri or document-uri jobs. * technical job informations. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobDocumentAccessErrors extends TextSyntax implements Attribute { --- 47,56 ---- * JobDocumentAccessErrors provides additional information * for each access error for print-uri or document-uri jobs. * technical job informations. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobDocumentAccessErrors extends TextSyntax implements Attribute { *************** public final class JobDocumentAccessErro *** 74,80 **** * * @return The class JobDocumentAccessErrors itself. */ ! public Class getCategory() { return JobDocumentAccessErrors.class; } --- 74,80 ---- * * @return The class JobDocumentAccessErrors itself. */ ! public Class getCategory() { return JobDocumentAccessErrors.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobId.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobId.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobId.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobId.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobId.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobId.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.IntegerSynt *** 44,50 **** /** * The JobId attribute contains the ID of a * print job created or currently being processed. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobId extends IntegerSyntax implements Attribute --- 44,50 ---- /** * The JobId attribute contains the ID of a * print job created or currently being processed. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobId extends IntegerSyntax implements Attribute *************** public final class JobId extends Integer *** 59,65 **** public JobId(int value) { super(value); ! if (value < 1) throw new IllegalArgumentException("job-id may not be less than 1"); } --- 59,65 ---- public JobId(int value) { super(value); ! if (value < 1) throw new IllegalArgumentException("job-id may not be less than 1"); } *************** public final class JobId extends Integer *** 69,75 **** * * @return The class JobId itself. */ ! public Class getCategory() { return JobId.class; } --- 69,75 ---- * * @return The class JobId itself. */ ! public Class getCategory() { return JobId.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobMoreInfo.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobMoreInfo.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobMoreInfo.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobMoreInfo.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobMoreInfo.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobMoreInfo.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.URISyntax; *** 47,53 **** * JobMoreInfo attribute as described in RFC 2911 section * 4.3.4 contains the URI where more information about a job * (e.g. through a HTML page) can be found. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobMoreInfo extends URISyntax implements Attribute --- 47,53 ---- * JobMoreInfo attribute as described in RFC 2911 section * 4.3.4 contains the URI where more information about a job * (e.g. through a HTML page) can be found. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobMoreInfo extends URISyntax implements Attribute *************** public final class JobMoreInfo extends U *** 69,75 **** * * @return The class JobMoreInfo itself. */ ! public Class getCategory() { return JobMoreInfo.class; } --- 69,75 ---- * * @return The class JobMoreInfo itself. */ ! public Class getCategory() { return JobMoreInfo.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobPrinterUri.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobPrinterUri.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobPrinterUri.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobPrinterUri.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobPrinterUri.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobPrinterUri.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.URISyntax; *** 47,53 **** * JobPrinterUri attribute as described in RFC 2911 section * 4.3.3 contains the URI of the printer which created and * processes a job. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobPrinterUri extends URISyntax implements Attribute --- 47,53 ---- * JobPrinterUri attribute as described in RFC 2911 section * 4.3.3 contains the URI of the printer which created and * processes a job. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobPrinterUri extends URISyntax implements Attribute *************** public final class JobPrinterUri extends *** 69,75 **** * * @return The class JobPrinterUri itself. */ ! public Class getCategory() { return JobPrinterUri.class; } --- 69,75 ---- * * @return The class JobPrinterUri itself. */ ! public Class getCategory() { return JobPrinterUri.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobStateMessage.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobStateMessage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobStateMessage.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobStateMessage.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobStateMessage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobStateMessage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 46,55 **** /** * JobStateMessage attribute describes information about the * job-state and job-state-reasons in human readable form. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobStateMessage extends TextSyntax implements Attribute { --- 46,55 ---- /** * JobStateMessage attribute describes information about the * job-state and job-state-reasons in human readable form. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobStateMessage extends TextSyntax implements Attribute { *************** public final class JobStateMessage *** 73,79 **** * * @return The class JobStateMessage itself. */ ! public Class getCategory() { return JobStateMessage.class; } --- 73,79 ---- * * @return The class JobStateMessage itself. */ ! public Class getCategory() { return JobStateMessage.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobUri.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobUri.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobUri.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/job/JobUri.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobUri.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobUri.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.URISyntax; *** 47,53 **** * JobUri attribute as described in RFC 2911 section * 4.3.1 contains the URI for a job generated by the printer * after a create request. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobUri extends URISyntax implements Attribute --- 47,53 ---- * JobUri attribute as described in RFC 2911 section * 4.3.1 contains the URI for a job generated by the printer * after a create request. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class JobUri extends URISyntax implements Attribute *************** public final class JobUri extends URISyn *** 69,75 **** * * @return The class JobUri itself. */ ! public Class getCategory() { return JobUri.class; } --- 69,75 ---- * * @return The class JobUri itself. */ ! public Class getCategory() { return JobUri.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* CharsetConfigured.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharsetConfigured.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.Attribute; *** 46,61 **** * CharsetConfigured attribute as described in RFC 2911 section * 4.4.17 provides the charset which is configured by the * server to be used in the name and text syntax attribute types. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class CharsetConfigured extends CharsetSyntax implements Attribute { /** * Creates a CharsetConfigured object. ! * * @param value the charset string value. */ public CharsetConfigured(String value) --- 46,61 ---- * CharsetConfigured attribute as described in RFC 2911 section * 4.4.17 provides the charset which is configured by the * server to be used in the name and text syntax attribute types. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class CharsetConfigured extends CharsetSyntax implements Attribute { /** * Creates a CharsetConfigured object. ! * * @param value the charset string value. */ public CharsetConfigured(String value) *************** public final class CharsetConfigured ext *** 68,74 **** * * @return The class CharsetConfigured itself. */ ! public Class getCategory() { return CharsetConfigured.class; } --- 68,74 ---- * * @return The class CharsetConfigured itself. */ ! public Class getCategory() { return CharsetConfigured.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/DocumentFormat.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/DocumentFormat.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/DocumentFormat.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/DocumentFormat.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* DocumentFormat.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DocumentFormat.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute.pr *** 41,61 **** import java.util.Locale; import javax.print.DocFlavor; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.TextSyntax; /** * DocumentFormatSupported specifies the supported document * formats of a printer. Printer are supplying a set of this attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class DocumentFormat extends TextSyntax implements SupportedValuesAttribute { /** ! * Creates a DocumentFormat object with the * given value and locale. * * @param value the value for this syntax --- 41,62 ---- import java.util.Locale; import javax.print.DocFlavor; + import javax.print.attribute.Attribute; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.TextSyntax; /** * DocumentFormatSupported specifies the supported document * formats of a printer. Printer are supplying a set of this attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class DocumentFormat extends TextSyntax implements SupportedValuesAttribute { /** ! * Creates a DocumentFormat object with the * given value and locale. * * @param value the value for this syntax *************** public final class DocumentFormat extend *** 68,79 **** { super(value, locale); } ! /** * Constructs a document format object for the given flavor. * The constructor reworkes the mimetype of the given flavor * to remove the quoted charset parameter if present. ! * * @param flavor the flavor with the mimetype * @return The created document format. */ --- 69,80 ---- { super(value, locale); } ! /** * Constructs a document format object for the given flavor. * The constructor reworkes the mimetype of the given flavor * to remove the quoted charset parameter if present. ! * * @param flavor the flavor with the mimetype * @return The created document format. */ *************** public final class DocumentFormat extend *** 83,89 **** String mimetype = flavor.getMediaType() + "/" + flavor.getMediaSubtype(); if (charset != null) mimetype += "; charset=" + charset; ! return new DocumentFormat(mimetype, null); } --- 84,90 ---- String mimetype = flavor.getMediaType() + "/" + flavor.getMediaSubtype(); if (charset != null) mimetype += "; charset=" + charset; ! return new DocumentFormat(mimetype, null); } *************** public final class DocumentFormat extend *** 92,98 **** * * @return The class DocumentFormat itself. */ ! public Class getCategory() { return DocumentFormat.class; } --- 93,99 ---- * * @return The class DocumentFormat itself. */ ! public Class getCategory() { return DocumentFormat.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* MultipleOperationTimeOut.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MultipleOperationTimeOut.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.IntegerSynt *** 46,55 **** * 4.4.31 provides the minimum time ins second a printer object waits * before time out and recovery. The printer object waits e.g. for * additional SendDocument or SendUri operations. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class MultipleOperationTimeOut extends IntegerSyntax implements Attribute { --- 46,55 ---- * 4.4.31 provides the minimum time ins second a printer object waits * before time out and recovery. The printer object waits e.g. for * additional SendDocument or SendUri operations. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class MultipleOperationTimeOut extends IntegerSyntax implements Attribute { *************** public final class MultipleOperationTime *** 68,74 **** * * @return The class MultipleOperationTimeOut itself. */ ! public Class getCategory() { return MultipleOperationTimeOut.class; } --- 68,74 ---- * * @return The class MultipleOperationTimeOut itself. */ ! public Class getCategory() { return MultipleOperationTimeOut.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* NaturalLanguageConfigured.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NaturalLanguageConfigured.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import gnu.javax.print.ipp.attribute.Nat *** 43,61 **** import javax.print.attribute.Attribute; /** ! * NaturalLanguageConfigured attribute as described in RFC 2911 * section 4.4.19 provides the natural language which is configured * by the server to be used in the name and text syntax attribute types. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class NaturalLanguageConfigured extends NaturalLanguageSyntax implements Attribute { /** * Creates a NaturalLanguageConfigured object. ! * * @param value the charset string value. */ public NaturalLanguageConfigured(String value) --- 43,61 ---- import javax.print.attribute.Attribute; /** ! * NaturalLanguageConfigured attribute as described in RFC 2911 * section 4.4.19 provides the natural language which is configured * by the server to be used in the name and text syntax attribute types. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class NaturalLanguageConfigured extends NaturalLanguageSyntax implements Attribute { /** * Creates a NaturalLanguageConfigured object. ! * * @param value the charset string value. */ public NaturalLanguageConfigured(String value) *************** public final class NaturalLanguageConfig *** 68,74 **** * * @return The class NaturalLanguageConfigured itself. */ ! public Class getCategory() { return NaturalLanguageConfigured.class; } --- 68,74 ---- * * @return The class NaturalLanguageConfigured itself. */ ! public Class getCategory() { return NaturalLanguageConfigured.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* PrinterCurrentTime.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterCurrentTime.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute.pr *** 40,45 **** --- 40,46 ---- import java.util.Date; + import javax.print.attribute.Attribute; import javax.print.attribute.DateTimeSyntax; import javax.print.attribute.PrintServiceAttribute; *************** import javax.print.attribute.PrintServic *** 48,57 **** * 4.4.30 provides the current time of the print service. * Its to be used by other attributes like the date-time-at-xxx * attributes in the creation process. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterCurrentTime extends DateTimeSyntax implements PrintServiceAttribute { --- 49,58 ---- * 4.4.30 provides the current time of the print service. * Its to be used by other attributes like the date-time-at-xxx * attributes in the creation process. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterCurrentTime extends DateTimeSyntax implements PrintServiceAttribute { *************** public final class PrinterCurrentTime ex *** 72,78 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 73,79 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) *************** public final class PrinterCurrentTime ex *** 82,94 **** return super.equals(obj); } ! /** * Returns category of this class. * * @return The class PrinterCurrentTime itself. */ ! public Class getCategory() { return PrinterCurrentTime.class; } --- 83,95 ---- return super.equals(obj); } ! /** * Returns category of this class. * * @return The class PrinterCurrentTime itself. */ ! public Class getCategory() { return PrinterCurrentTime.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* PrinterDriverInstaller.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterDriverInstaller.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.URISyntax; *** 47,56 **** * PrinterDriverInstaller attribute as described in RFC 2911 section * 4.4.81 provides the URI where a printer driver installer * can be found. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterDriverInstaller extends URISyntax implements Attribute { --- 47,56 ---- * PrinterDriverInstaller attribute as described in RFC 2911 section * 4.4.81 provides the URI where a printer driver installer * can be found. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterDriverInstaller extends URISyntax implements Attribute { *************** public final class PrinterDriverInstalle *** 70,76 **** * * @return The class PrinterDriverInstaller itself. */ ! public Class getCategory() { return PrinterDriverInstaller.class; } --- 70,76 ---- * * @return The class PrinterDriverInstaller itself. */ ! public Class getCategory() { return PrinterDriverInstaller.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* PrinterStateMessage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterStateMessage.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute.pr *** 40,45 **** --- 40,46 ---- import java.util.Locale; + import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.TextSyntax; *************** import javax.print.attribute.TextSyntax; *** 48,62 **** * 4.4.13 provides a textual representation of the attributes * printer-state and printer-state-reasons for consumption by * humans. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterStateMessage extends TextSyntax implements PrintServiceAttribute { /** ! * Creates a PrinterStateMessage object with the * given value and locale. * * @param value the value for this syntax --- 49,63 ---- * 4.4.13 provides a textual representation of the attributes * printer-state and printer-state-reasons for consumption by * humans. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterStateMessage extends TextSyntax implements PrintServiceAttribute { /** ! * Creates a PrinterStateMessage object with the * given value and locale. * * @param value the value for this syntax *************** public final class PrinterStateMessage e *** 75,81 **** * * @return The class PrinterStateMessage itself. */ ! public Class getCategory() { return PrinterStateMessage.class; } --- 76,82 ---- * * @return The class PrinterStateMessage itself. */ ! public Class getCategory() { return PrinterStateMessage.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* PrinterUpTime.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterUpTime.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.IntegerSynt *** 44,55 **** /** * PrinterUpTime attribute as described in RFC 2911 section * 4.4.29 provides the uptime of the printer object. This ! * is a value in second starting at 1 after a initialization * or reboot of the printer object. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterUpTime extends IntegerSyntax implements Attribute { --- 44,55 ---- /** * PrinterUpTime attribute as described in RFC 2911 section * 4.4.29 provides the uptime of the printer object. This ! * is a value in second starting at 1 after a initialization * or reboot of the printer object. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterUpTime extends IntegerSyntax implements Attribute { *************** public final class PrinterUpTime extends *** 68,74 **** * * @return The class PrinterUpTime itself. */ ! public Class getCategory() { return PrinterUpTime.class; } --- 68,74 ---- * * @return The class PrinterUpTime itself. */ ! public Class getCategory() { return PrinterUpTime.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/CharsetSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/CharsetSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/CharsetSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/CharsetSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* CharsetSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharsetSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute.su *** 40,62 **** import gnu.javax.print.ipp.attribute.CharsetSyntax; import javax.print.attribute.SupportedValuesAttribute; /** * CharsetSupported attribute as described in RFC 2911 section * 4.4.18 provides the charset which are supported by the ! * IPP implementation to be used in the name and text syntax * attribute types. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class CharsetSupported extends CharsetSyntax implements SupportedValuesAttribute { /** * Creates a CharsetSupported object. ! * * @param value the charset string value. */ public CharsetSupported(String value) --- 40,63 ---- import gnu.javax.print.ipp.attribute.CharsetSyntax; + import javax.print.attribute.Attribute; import javax.print.attribute.SupportedValuesAttribute; /** * CharsetSupported attribute as described in RFC 2911 section * 4.4.18 provides the charset which are supported by the ! * IPP implementation to be used in the name and text syntax * attribute types. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class CharsetSupported extends CharsetSyntax implements SupportedValuesAttribute { /** * Creates a CharsetSupported object. ! * * @param value the charset string value. */ public CharsetSupported(String value) *************** public final class CharsetSupported exte *** 69,75 **** * * @return The class CharsetSupported itself. */ ! public Class getCategory() { return CharsetSupported.class; } --- 70,76 ---- * * @return The class CharsetSupported itself. */ ! public Class getCategory() { return CharsetSupported.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/CompressionSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/CompressionSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/CompressionSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/CompressionSupported.java Tue Oct 12 15:55:12 2010 *************** import gnu.javax.print.ipp.IppUtilities; *** 42,47 **** --- 42,48 ---- import java.util.Iterator; import java.util.Set; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.standard.Compression; *************** import javax.print.attribute.standard.Co *** 50,83 **** /** * CompressionSupported provides the values which are * supported for the compression attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class CompressionSupported extends EnumSyntax implements SupportedValuesAttribute { ! /** The print data is not compressed. */ public static final CompressionSupported NONE = new CompressionSupported(0); ! /** The print data is ZIP compressed. */ public static final CompressionSupported DEFLATE = new CompressionSupported(1); ! /** The print data is GNU Zip compressed. */ public static final CompressionSupported GZIP = new CompressionSupported(2); ! /** The print data is UNIX compressed. */ public static final CompressionSupported COMPRESS = new CompressionSupported(3); ! ! private static final String[] stringTable = { "none", "deflate", "gzip", "compress" }; ! ! private static final CompressionSupported[] enumValueTable = { NONE, DEFLATE, GZIP, COMPRESS }; /** * Constructs a CompressionSupported object. ! * * @param value the enum value */ protected CompressionSupported(int value) --- 51,84 ---- /** * CompressionSupported provides the values which are * supported for the compression attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class CompressionSupported extends EnumSyntax implements SupportedValuesAttribute { ! /** The print data is not compressed. */ public static final CompressionSupported NONE = new CompressionSupported(0); ! /** The print data is ZIP compressed. */ public static final CompressionSupported DEFLATE = new CompressionSupported(1); ! /** The print data is GNU Zip compressed. */ public static final CompressionSupported GZIP = new CompressionSupported(2); ! /** The print data is UNIX compressed. */ public static final CompressionSupported COMPRESS = new CompressionSupported(3); ! ! private static final String[] stringTable = { "none", "deflate", "gzip", "compress" }; ! ! private static final CompressionSupported[] enumValueTable = { NONE, DEFLATE, GZIP, COMPRESS }; /** * Constructs a CompressionSupported object. ! * * @param value the enum value */ protected CompressionSupported(int value) *************** public final class CompressionSupported *** 90,96 **** * * @return The class CompressionSupported itself. */ ! public Class getCategory() { return CompressionSupported.class; } --- 91,97 ---- * * @return The class CompressionSupported itself. */ ! public Class getCategory() { return CompressionSupported.class; } *************** public final class CompressionSupported *** 104,110 **** { return "compression-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 105,111 ---- { return "compression-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class CompressionSupported *** 125,162 **** { return enumValueTable; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Compression getAssociatedAttribute() { return (Compression) IppUtilities.getEnumAttribute( "compression", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static Compression[] getAssociatedAttributeArray(Set set) { ! CompressionSupported tmp; ! Compression[] result = new Compression[set.size()]; ! Iterator it = set.iterator(); int j = 0; ! while (it.hasNext()) { ! tmp = (CompressionSupported) it.next(); ! result[j] = tmp.getAssociatedAttribute(); j++; ! } return result; } } --- 126,161 ---- { return enumValueTable; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Compression getAssociatedAttribute() { return (Compression) IppUtilities.getEnumAttribute( "compression", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static Compression[] ! getAssociatedAttributeArray(Set set) { ! Compression[] result = new Compression[set.size()]; int j = 0; ! for (Attribute tmp : set) { ! result[j] = ((CompressionSupported) tmp).getAssociatedAttribute(); j++; ! } return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* DocumentFormatSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DocumentFormatSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute.su *** 40,60 **** import java.util.Locale; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.TextSyntax; /** * DocumentFormatSupported specifies the supported document * formats of a printer. Printer are supplying a set of this attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class DocumentFormatSupported extends TextSyntax implements SupportedValuesAttribute { /** ! * Creates a DocumentFormatSupported object with the * given value and locale. * * @param value the value for this syntax --- 40,61 ---- import java.util.Locale; + import javax.print.attribute.Attribute; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.TextSyntax; /** * DocumentFormatSupported specifies the supported document * formats of a printer. Printer are supplying a set of this attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class DocumentFormatSupported extends TextSyntax implements SupportedValuesAttribute { /** ! * Creates a DocumentFormatSupported object with the * given value and locale. * * @param value the value for this syntax *************** public final class DocumentFormatSupport *** 73,79 **** * * @return The class DocumentFormatSupported itself. */ ! public Class getCategory() { return DocumentFormatSupported.class; } --- 74,80 ---- * * @return The class DocumentFormatSupported itself. */ ! public Class getCategory() { return DocumentFormatSupported.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.java Tue Oct 12 15:55:12 2010 *************** import gnu.javax.print.ipp.IppUtilities; *** 43,48 **** --- 43,49 ---- import java.util.Iterator; import java.util.Set; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.standard.Finishings; *************** import javax.print.attribute.standard.Fi *** 51,57 **** /** * The FinishingsSupported attribute provides the supported * values for finishings of a job. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class FinishingsSupported extends EnumSyntax --- 52,58 ---- /** * The FinishingsSupported attribute provides the supported * values for finishings of a job. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class FinishingsSupported extends EnumSyntax *************** public final class FinishingsSupported e *** 60,181 **** /** No finishing. */ public static final FinishingsSupported NONE = new FinishingsSupported(3); ! /** Staple the document(s) */ public static final FinishingsSupported STAPLE = new FinishingsSupported(4); ! /** Cover a document */ public static final FinishingsSupported COVER = new FinishingsSupported(6); ! /** * This value indicates that a binding is to be applied to the document. * The type and placement of the binding is site-defined. */ public static final FinishingsSupported BIND = new FinishingsSupported(7); ! /** ! * Bind the document(s) with one or more staples (wire stitches) ! * along the middle fold. */ ! public static final FinishingsSupported SADDLE_STITCH = new FinishingsSupported(8); ! /** ! * Bind the document(s) with one or more staples (wire stitches) ! * along one edge. */ ! public static final FinishingsSupported EDGE_STITCH = new FinishingsSupported(9); ! ! /** ! * Bind the document(s) with one or more staples in the top left ! * corner. */ ! public static final FinishingsSupported STAPLE_TOP_LEFT = new FinishingsSupported(20); ! ! /** ! * Bind the document(s) with one or more staples in the bottom ! * left corner. */ ! public static final FinishingsSupported STAPLE_BOTTOM_LEFT = new FinishingsSupported(21); ! /** * Bind the document(s) with one or more staples in the top right corner. */ ! public static final FinishingsSupported STAPLE_TOP_RIGHT = new FinishingsSupported(22); ! /** * Bind the document(s) with one or more staples in the bottom right corner. */ ! public static final FinishingsSupported STAPLE_BOTTOM_RIGHT = new FinishingsSupported(23); ! /** ! * Bind the document(s) with one or more staples (wire stitches) * along the left edge. */ ! public static final FinishingsSupported EDGE_STITCH_LEFT = new FinishingsSupported(24); ! /** ! * Bind the document(s) with one or more staples (wire stitches) along * the top edge. */ ! public static final FinishingsSupported EDGE_STITCH_TOP = new FinishingsSupported(25); ! /** ! * Bind the document(s) with one or more staples (wire stitches) along * the right edge. */ ! public static final FinishingsSupported EDGE_STITCH_RIGHT = new FinishingsSupported(26); ! /** * Bind the document(s) with one or more staples (wire stitches) along ! * the bottom edge. */ ! public static final FinishingsSupported EDGE_STITCH_BOTTOM = new FinishingsSupported(27); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * left edge assuming a portrait document. */ ! public static final FinishingsSupported STAPLE_DUAL_LEFT = new FinishingsSupported(28); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * top edge assuming a portrait document. */ ! public static final FinishingsSupported STAPLE_DUAL_TOP = new FinishingsSupported(29); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * right edge assuming a portrait document. */ ! public static final FinishingsSupported STAPLE_DUAL_RIGHT = new FinishingsSupported(30); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * bottom edge assuming a portrait document. */ ! public static final FinishingsSupported STAPLE_DUAL_BOTTOM = new FinishingsSupported(31); ! private static final String[] stringTable = { "none", "staple", null, "cover", "bind", "saddle-stitch", "edge-stitch", null, null, null, null, null, null, null, null, null, null, "staple-top-left", ! "staple-bottom-left", ! "staple-top-right", "staple-bottom-right", "edge-stitch-left", "edge-stitch-top", --- 61,182 ---- /** No finishing. */ public static final FinishingsSupported NONE = new FinishingsSupported(3); ! /** Staple the document(s) */ public static final FinishingsSupported STAPLE = new FinishingsSupported(4); ! /** Cover a document */ public static final FinishingsSupported COVER = new FinishingsSupported(6); ! /** * This value indicates that a binding is to be applied to the document. * The type and placement of the binding is site-defined. */ public static final FinishingsSupported BIND = new FinishingsSupported(7); ! /** ! * Bind the document(s) with one or more staples (wire stitches) ! * along the middle fold. */ ! public static final FinishingsSupported SADDLE_STITCH = new FinishingsSupported(8); ! /** ! * Bind the document(s) with one or more staples (wire stitches) ! * along one edge. */ ! public static final FinishingsSupported EDGE_STITCH = new FinishingsSupported(9); ! ! /** ! * Bind the document(s) with one or more staples in the top left ! * corner. */ ! public static final FinishingsSupported STAPLE_TOP_LEFT = new FinishingsSupported(20); ! ! /** ! * Bind the document(s) with one or more staples in the bottom ! * left corner. */ ! public static final FinishingsSupported STAPLE_BOTTOM_LEFT = new FinishingsSupported(21); ! /** * Bind the document(s) with one or more staples in the top right corner. */ ! public static final FinishingsSupported STAPLE_TOP_RIGHT = new FinishingsSupported(22); ! /** * Bind the document(s) with one or more staples in the bottom right corner. */ ! public static final FinishingsSupported STAPLE_BOTTOM_RIGHT = new FinishingsSupported(23); ! /** ! * Bind the document(s) with one or more staples (wire stitches) * along the left edge. */ ! public static final FinishingsSupported EDGE_STITCH_LEFT = new FinishingsSupported(24); ! /** ! * Bind the document(s) with one or more staples (wire stitches) along * the top edge. */ ! public static final FinishingsSupported EDGE_STITCH_TOP = new FinishingsSupported(25); ! /** ! * Bind the document(s) with one or more staples (wire stitches) along * the right edge. */ ! public static final FinishingsSupported EDGE_STITCH_RIGHT = new FinishingsSupported(26); ! /** * Bind the document(s) with one or more staples (wire stitches) along ! * the bottom edge. */ ! public static final FinishingsSupported EDGE_STITCH_BOTTOM = new FinishingsSupported(27); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * left edge assuming a portrait document. */ ! public static final FinishingsSupported STAPLE_DUAL_LEFT = new FinishingsSupported(28); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * top edge assuming a portrait document. */ ! public static final FinishingsSupported STAPLE_DUAL_TOP = new FinishingsSupported(29); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * right edge assuming a portrait document. */ ! public static final FinishingsSupported STAPLE_DUAL_RIGHT = new FinishingsSupported(30); ! /** ! * Bind the document(s) with two staples (wire stitches) along the * bottom edge assuming a portrait document. */ ! public static final FinishingsSupported STAPLE_DUAL_BOTTOM = new FinishingsSupported(31); ! private static final String[] stringTable = { "none", "staple", null, "cover", "bind", "saddle-stitch", "edge-stitch", null, null, null, null, null, null, null, null, null, null, "staple-top-left", ! "staple-bottom-left", ! "staple-top-right", "staple-bottom-right", "edge-stitch-left", "edge-stitch-top", *************** public final class FinishingsSupported e *** 185,198 **** "staple-dual-top", "staple-dual-right", "staple-dual-bottom" }; ! ! private static final FinishingsSupported[] enumValueTable = { NONE, STAPLE, ! null, COVER, BIND, SADDLE_STITCH, ! EDGE_STITCH, null, ! null, null, null, ! null, null, null, ! null, null, null, STAPLE_TOP_LEFT, STAPLE_BOTTOM_LEFT, STAPLE_TOP_RIGHT, --- 186,199 ---- "staple-dual-top", "staple-dual-right", "staple-dual-bottom" }; ! ! private static final FinishingsSupported[] enumValueTable = { NONE, STAPLE, ! null, COVER, BIND, SADDLE_STITCH, ! EDGE_STITCH, null, ! null, null, null, ! null, null, null, ! null, null, null, STAPLE_TOP_LEFT, STAPLE_BOTTOM_LEFT, STAPLE_TOP_RIGHT, *************** public final class FinishingsSupported e *** 205,214 **** STAPLE_DUAL_TOP, STAPLE_DUAL_RIGHT, STAPLE_DUAL_BOTTOM }; ! /** * Constructs a FinishingsSupported object. ! * * @param value the value */ protected FinishingsSupported(int value) --- 206,215 ---- STAPLE_DUAL_TOP, STAPLE_DUAL_RIGHT, STAPLE_DUAL_BOTTOM }; ! /** * Constructs a FinishingsSupported object. ! * * @param value the value */ protected FinishingsSupported(int value) *************** public final class FinishingsSupported e *** 221,227 **** * * @return the class FinishingsSupported itself */ ! public Class getCategory() { return FinishingsSupported.class; } --- 222,228 ---- * * @return the class FinishingsSupported itself */ ! public Class getCategory() { return FinishingsSupported.class; } *************** public final class FinishingsSupported e *** 235,241 **** { return "finishings-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 236,242 ---- { return "finishings-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class FinishingsSupported e *** 266,303 **** { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Finishings getAssociatedAttribute() { return (Finishings) IppUtilities.getEnumAttribute( "finishings", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static Finishings[] getAssociatedAttributeArray(Set set) { ! FinishingsSupported tmp; ! Finishings[] result = new Finishings[set.size()]; ! Iterator it = set.iterator(); int j = 0; ! while (it.hasNext()) { ! tmp = (FinishingsSupported) it.next(); ! result[j] = tmp.getAssociatedAttribute(); j++; ! } return result; } } --- 267,302 ---- { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public Finishings getAssociatedAttribute() { return (Finishings) IppUtilities.getEnumAttribute( "finishings", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static Finishings[] ! getAssociatedAttributeArray(Set set) { ! Finishings[] result = new Finishings[set.size()]; int j = 0; ! for (Attribute tmp : set) { ! result[j] = ((FinishingsSupported) tmp).getAssociatedAttribute(); j++; ! } return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* GeneratedNaturalLanguageSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GeneratedNaturalLanguageSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute.su *** 40,63 **** import gnu.javax.print.ipp.attribute.NaturalLanguageSyntax; import javax.print.attribute.SupportedValuesAttribute; /** ! * GeneratedNaturalLanguageSupported attribute as described * in RFC 2911 section 4.4.20 provides the natural languages ! * which are supported by the IPP implementation to be used * in the name and text syntax attribute types. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class GeneratedNaturalLanguageSupported ! extends NaturalLanguageSyntax implements SupportedValuesAttribute { /** * Creates a GeneratedNaturalLanguageSupported object. ! * * @param value the charset string value. */ public GeneratedNaturalLanguageSupported(String value) --- 40,64 ---- import gnu.javax.print.ipp.attribute.NaturalLanguageSyntax; + import javax.print.attribute.Attribute; import javax.print.attribute.SupportedValuesAttribute; /** ! * GeneratedNaturalLanguageSupported attribute as described * in RFC 2911 section 4.4.20 provides the natural languages ! * which are supported by the IPP implementation to be used * in the name and text syntax attribute types. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class GeneratedNaturalLanguageSupported ! extends NaturalLanguageSyntax implements SupportedValuesAttribute { /** * Creates a GeneratedNaturalLanguageSupported object. ! * * @param value the charset string value. */ public GeneratedNaturalLanguageSupported(String value) *************** public final class GeneratedNaturalLangu *** 70,76 **** * * @return The class GeneratedNaturalLanguageSupported itself. */ ! public Class getCategory() { return GeneratedNaturalLanguageSupported.class; } --- 71,77 ---- * * @return The class GeneratedNaturalLanguageSupported itself. */ ! public Class getCategory() { return GeneratedNaturalLanguageSupported.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* IppVersionsSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IppVersionsSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 38,43 **** --- 38,44 ---- package gnu.javax.print.ipp.attribute.supported; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; *************** import javax.print.attribute.SupportedVa *** 45,75 **** * IppVersionsSupported attribute as described in RFC 2911 section * 4.4.14 provides the value(s) (implemented as EnumSyntax) * of the supported IPP versions. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class IppVersionsSupported extends EnumSyntax implements SupportedValuesAttribute { ! // a keyword based attribute in IPP - int values just starting at 0 ! /** IPP version 1.0 */ ! public static final IppVersionsSupported V_1_0 = new IppVersionsSupported(0); ! /** IPP version 1.1 */ ! public static final IppVersionsSupported V_1_1 = new IppVersionsSupported(1); ! private static final String[] stringTable = { "1.0", "1.1" }; ! ! private static final IppVersionsSupported[] enumValueTable = { V_1_0, V_1_1 }; /** * Constructs a IppVersionsSupported object. ! * * @param value the enum value */ public IppVersionsSupported(int value) --- 46,76 ---- * IppVersionsSupported attribute as described in RFC 2911 section * 4.4.14 provides the value(s) (implemented as EnumSyntax) * of the supported IPP versions. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class IppVersionsSupported extends EnumSyntax implements SupportedValuesAttribute { ! // a keyword based attribute in IPP - int values just starting at 0 ! /** IPP version 1.0 */ ! public static final IppVersionsSupported V_1_0 = new IppVersionsSupported(0); ! /** IPP version 1.1 */ ! public static final IppVersionsSupported V_1_1 = new IppVersionsSupported(1); ! private static final String[] stringTable = { "1.0", "1.1" }; ! ! private static final IppVersionsSupported[] enumValueTable = { V_1_0, V_1_1 }; /** * Constructs a IppVersionsSupported object. ! * * @param value the enum value */ public IppVersionsSupported(int value) *************** public final class IppVersionsSupported *** 78,88 **** } /** ! * Returns category of this class. * * @return The class IppVersionsSupported itself. */ ! public Class getCategory() { return IppVersionsSupported.class; } --- 79,89 ---- } /** ! * Returns the category of this class. * * @return The class IppVersionsSupported itself. */ ! public Class getCategory() { return IppVersionsSupported.class; } *************** public final class IppVersionsSupported *** 96,102 **** { return "ipp-versions-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 97,103 ---- { return "ipp-versions-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobHoldUntilSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobHoldUntilSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute.su *** 40,102 **** import java.util.Locale; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.TextSyntax; /** * JobHoldUntilSupported attribute provides the supported * values for the attribute type job-hold-until. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobHoldUntilSupported extends TextSyntax implements SupportedValuesAttribute { ! ! // a keyword/name based attribute in IPP // can be extended by administrators // standard values are predefined ! /** Job should be printed immediately. */ ! public static final JobHoldUntilSupported NO_HOLD = new JobHoldUntilSupported("no-hold", null); ! /** Job should be hold indefinitely. */ ! public static final JobHoldUntilSupported INDEFINITE = new JobHoldUntilSupported("indefinite", null); ! /** Job should be processed during the day. */ ! public static final JobHoldUntilSupported DAY_TIME = new JobHoldUntilSupported("day-time", null); ! /** Job should be processed in the evening. */ ! public static final JobHoldUntilSupported EVENING = new JobHoldUntilSupported("evening", null); ! /** Job should be processed during night. */ ! public static final JobHoldUntilSupported NIGHT = new JobHoldUntilSupported("night", null); ! /** Job should be processed during the weekend. */ ! public static final JobHoldUntilSupported WEEKEND = new JobHoldUntilSupported("weekend", null); ! ! /** ! * Job should be processed as second-shift ! * (after close of business). */ ! public static final JobHoldUntilSupported SECOND_SHIFT = new JobHoldUntilSupported("second-shift", null); ! ! /** ! * Job should be processed as third-shift ! * (after midnight). */ ! public static final JobHoldUntilSupported THIRD_SHIFT = ! new JobHoldUntilSupported("third-shift", null); /** ! * Creates a JobHoldUntilSupported object with the * given value and locale. * * @param value the value for this syntax --- 40,103 ---- import java.util.Locale; + import javax.print.attribute.Attribute; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.TextSyntax; /** * JobHoldUntilSupported attribute provides the supported * values for the attribute type job-hold-until. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobHoldUntilSupported extends TextSyntax implements SupportedValuesAttribute { ! ! // a keyword/name based attribute in IPP // can be extended by administrators // standard values are predefined ! /** Job should be printed immediately. */ ! public static final JobHoldUntilSupported NO_HOLD = new JobHoldUntilSupported("no-hold", null); ! /** Job should be hold indefinitely. */ ! public static final JobHoldUntilSupported INDEFINITE = new JobHoldUntilSupported("indefinite", null); ! /** Job should be processed during the day. */ ! public static final JobHoldUntilSupported DAY_TIME = new JobHoldUntilSupported("day-time", null); ! /** Job should be processed in the evening. */ ! public static final JobHoldUntilSupported EVENING = new JobHoldUntilSupported("evening", null); ! /** Job should be processed during night. */ ! public static final JobHoldUntilSupported NIGHT = new JobHoldUntilSupported("night", null); ! /** Job should be processed during the weekend. */ ! public static final JobHoldUntilSupported WEEKEND = new JobHoldUntilSupported("weekend", null); ! ! /** ! * Job should be processed as second-shift ! * (after close of business). */ ! public static final JobHoldUntilSupported SECOND_SHIFT = new JobHoldUntilSupported("second-shift", null); ! ! /** ! * Job should be processed as third-shift ! * (after midnight). */ ! public static final JobHoldUntilSupported THIRD_SHIFT = ! new JobHoldUntilSupported("third-shift", null); /** ! * Creates a JobHoldUntilSupported object with the * given value and locale. * * @param value the value for this syntax *************** public final class JobHoldUntilSupported *** 115,121 **** * * @return The class JobHoldUntilSupported itself. */ ! public Class getCategory() { return JobHoldUntilSupported.class; } --- 116,122 ---- * * @return The class JobHoldUntilSupported itself. */ ! public Class getCategory() { return JobHoldUntilSupported.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* JobSheetsSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobSheetsSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.standard.Jo *** 53,78 **** /** * JobSheetsSupported attribute provides the supported values * of the job-sheets attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobSheetsSupported extends TextSyntax implements SupportedValuesAttribute { ! //a keyword/name based attribute in IPP // can be extended by administrators // standard values are predefined ! /** No job sheet is the default */ ! public static final JobSheetsDefault NONE = new JobSheetsDefault("none", Locale.getDefault()); ! /** A job sheet is the default */ ! public static final JobSheetsDefault STANDARD = new JobSheetsDefault("standard", Locale.getDefault()); ! /** ! * Creates a JobSheetsSupported object with the * given value and locale. * * @param value the value for this syntax --- 53,78 ---- /** * JobSheetsSupported attribute provides the supported values * of the job-sheets attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class JobSheetsSupported extends TextSyntax implements SupportedValuesAttribute { ! //a keyword/name based attribute in IPP // can be extended by administrators // standard values are predefined ! /** No job sheet is the default */ ! public static final JobSheetsDefault NONE = new JobSheetsDefault("none", Locale.getDefault()); ! /** A job sheet is the default */ ! public static final JobSheetsDefault STANDARD = new JobSheetsDefault("standard", Locale.getDefault()); ! /** ! * Creates a JobSheetsSupported object with the * given value and locale. * * @param value the value for this syntax *************** public final class JobSheetsSupported ex *** 85,97 **** { super(value, locale); } ! /** * Returns category of this class. * * @return The class JobSheetsSupported itself. */ ! public Class getCategory() { return JobSheetsSupported.class; } --- 85,97 ---- { super(value, locale); } ! /** * Returns category of this class. * * @return The class JobSheetsSupported itself. */ ! public Class getCategory() { return JobSheetsSupported.class; } *************** public final class JobSheetsSupported ex *** 105,150 **** { return "job-sheets-supported"; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. *

          May return null if no value exists in JPS API.

          ! * * @return The enum of the standard attribute class. */ ! public JobSheets getAssociatedAttribute() { if (this.equals(JobSheetsDefault.NONE)) return JobSheets.NONE; if (this.equals(JobSheetsDefault.STANDARD)) return JobSheets.STANDARD; ! return null; } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static JobSheets[] getAssociatedAttributeArray(Set set) { ! JobSheetsSupported tmp; ! ArrayList result = new ArrayList(); ! Iterator it = set.iterator(); int j = 0; ! while (it.hasNext()) { ! tmp = (JobSheetsSupported) it.next(); ! Attribute att = tmp.getAssociatedAttribute(); if (att != null) result.add(att); j++; ! } ! return (JobSheets[]) result.toArray(new JobSheets[result.size()]); } ! } --- 105,148 ---- { return "job-sheets-supported"; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. *

          May return null if no value exists in JPS API.

          ! * * @return The enum of the standard attribute class. */ ! public JobSheets getAssociatedAttribute() { if (this.equals(JobSheetsDefault.NONE)) return JobSheets.NONE; if (this.equals(JobSheetsDefault.STANDARD)) return JobSheets.STANDARD; ! return null; } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static JobSheets[] ! getAssociatedAttributeArray(Set set) { ! ArrayList result = new ArrayList(); int j = 0; ! for (Attribute tmp : set) { ! JobSheets att = ((JobSheetsSupported) tmp).getAssociatedAttribute(); if (att != null) result.add(att); j++; ! } ! return result.toArray(new JobSheets[result.size()]); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MediaSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MediaSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MediaSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MediaSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* MediaSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MediaSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Iterator; *** 45,50 **** --- 45,51 ---- import java.util.Locale; import java.util.Set; + import javax.print.attribute.Attribute; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.TextSyntax; import javax.print.attribute.standard.Media; *************** import javax.print.attribute.standard.Me *** 52,66 **** /** * MediaSupported attribute provides the keyword values * of the media types supported by the printer object. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class MediaSupported extends TextSyntax implements SupportedValuesAttribute { /** ! * Creates a MediaSupported object with the * given value and locale. * * @param value the value for this syntax --- 53,67 ---- /** * MediaSupported attribute provides the keyword values * of the media types supported by the printer object. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class MediaSupported extends TextSyntax implements SupportedValuesAttribute { /** ! * Creates a MediaSupported object with the * given value and locale. * * @param value the value for this syntax *************** public final class MediaSupported extend *** 79,85 **** * * @return The class MediaSupported itself. */ ! public Class getCategory() { return MediaSupported.class; } --- 80,86 ---- * * @return The class MediaSupported itself. */ ! public Class getCategory() { return MediaSupported.class; } *************** public final class MediaSupported extend *** 93,118 **** { return "media-supported"; } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. */ ! public static Media[] getAssociatedAttributeArray(Set set) { - MediaSupported tmp; Media tmp2; ! ArrayList result = new ArrayList(); ! Iterator it = set.iterator(); ! while (it.hasNext()) { - tmp = (MediaSupported) it.next(); tmp2 = (Media) IppUtilities.getEnumAttribute("media", tmp.toString()); if (tmp2 != null) result.add(tmp2); ! } ! return (Media[]) result.toArray(new Media[result.size()]); } } --- 94,116 ---- { return "media-supported"; } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. */ ! public static Media[] getAssociatedAttributeArray(Set set) { Media tmp2; ! ArrayList result = new ArrayList(); ! for (Attribute tmp : set) { tmp2 = (Media) IppUtilities.getEnumAttribute("media", tmp.toString()); if (tmp2 != null) result.add(tmp2); ! } ! return result.toArray(new Media[result.size()]); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.java Tue Oct 12 15:55:12 2010 *************** import gnu.javax.print.ipp.IppUtilities; *** 42,47 **** --- 42,48 ---- import java.util.Iterator; import java.util.Set; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.standard.MultipleDocumentHandling; *************** import javax.print.attribute.standard.Mu *** 50,98 **** /** * MultipleDocumentHandlingSupported provides the * supported values for the MultipleDocumentHandling attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class MultipleDocumentHandlingSupported extends EnumSyntax implements SupportedValuesAttribute { ! //a keyword based attribute in IPP - int values just starting at 0 ! ! /** ! * Supports only multiple documents treated as a single document. This * applies to attributes which specify treatment of multiple document jobs. */ public static final MultipleDocumentHandlingSupported SINGLE_DOCUMENT = new MultipleDocumentHandlingSupported(0); ! /** Supports multiple documents as uncollated copies */ public static final MultipleDocumentHandlingSupported SEPARATE_DOCUMENTS_UNCOLLATED_COPIES = new MultipleDocumentHandlingSupported(1); ! /** Supports multiple documents as collated copies */ public static final MultipleDocumentHandlingSupported SEPARATE_DOCUMENTS_COLLATED_COPIES = new MultipleDocumentHandlingSupported(2); ! ! /** * Supports multiple documents where every single document starts ! * with a new sheet. */ public static final MultipleDocumentHandlingSupported SINGLE_DOCUMENT_NEW_SHEET = new MultipleDocumentHandlingSupported(3); ! private static final String[] stringTable = { "single-document", "separate-documents-uncollated-copies", "separate-documents-collated-copies", "single-document-new-sheet" }; ! ! private static final MultipleDocumentHandlingSupported[] enumValueTable = { SINGLE_DOCUMENT, SEPARATE_DOCUMENTS_UNCOLLATED_COPIES, SEPARATE_DOCUMENTS_COLLATED_COPIES, SINGLE_DOCUMENT_NEW_SHEET}; ! /** * Constructs a MultipleDocumentHandlingSupported object. ! * * @param value the enum value */ protected MultipleDocumentHandlingSupported(int value) --- 51,99 ---- /** * MultipleDocumentHandlingSupported provides the * supported values for the MultipleDocumentHandling attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class MultipleDocumentHandlingSupported extends EnumSyntax implements SupportedValuesAttribute { ! //a keyword based attribute in IPP - int values just starting at 0 ! ! /** ! * Supports only multiple documents treated as a single document. This * applies to attributes which specify treatment of multiple document jobs. */ public static final MultipleDocumentHandlingSupported SINGLE_DOCUMENT = new MultipleDocumentHandlingSupported(0); ! /** Supports multiple documents as uncollated copies */ public static final MultipleDocumentHandlingSupported SEPARATE_DOCUMENTS_UNCOLLATED_COPIES = new MultipleDocumentHandlingSupported(1); ! /** Supports multiple documents as collated copies */ public static final MultipleDocumentHandlingSupported SEPARATE_DOCUMENTS_COLLATED_COPIES = new MultipleDocumentHandlingSupported(2); ! ! /** * Supports multiple documents where every single document starts ! * with a new sheet. */ public static final MultipleDocumentHandlingSupported SINGLE_DOCUMENT_NEW_SHEET = new MultipleDocumentHandlingSupported(3); ! private static final String[] stringTable = { "single-document", "separate-documents-uncollated-copies", "separate-documents-collated-copies", "single-document-new-sheet" }; ! ! private static final MultipleDocumentHandlingSupported[] enumValueTable = { SINGLE_DOCUMENT, SEPARATE_DOCUMENTS_UNCOLLATED_COPIES, SEPARATE_DOCUMENTS_COLLATED_COPIES, SINGLE_DOCUMENT_NEW_SHEET}; ! /** * Constructs a MultipleDocumentHandlingSupported object. ! * * @param value the enum value */ protected MultipleDocumentHandlingSupported(int value) *************** public final class MultipleDocumentHandl *** 105,111 **** * * @return The class MultipleDocumentHandlingSupported itself. */ ! public Class getCategory() { return MultipleDocumentHandlingSupported.class; } --- 106,112 ---- * * @return The class MultipleDocumentHandlingSupported itself. */ ! public Class getCategory() { return MultipleDocumentHandlingSupported.class; } *************** public final class MultipleDocumentHandl *** 119,125 **** { return "multiple-document-handling-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 120,126 ---- { return "multiple-document-handling-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class MultipleDocumentHandl *** 140,177 **** { return enumValueTable; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public MultipleDocumentHandling getAssociatedAttribute() { return (MultipleDocumentHandling) IppUtilities.getEnumAttribute( "multiple-document-handling", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static MultipleDocumentHandling[] getAssociatedAttributeArray(Set set) { ! MultipleDocumentHandlingSupported tmp; ! MultipleDocumentHandling[] result = new MultipleDocumentHandling[set.size()]; ! Iterator it = set.iterator(); int j = 0; ! while (it.hasNext()) { ! tmp = (MultipleDocumentHandlingSupported) it.next(); ! result[j] = tmp.getAssociatedAttribute(); j++; ! } return result; } } --- 141,176 ---- { return enumValueTable; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public MultipleDocumentHandling getAssociatedAttribute() { return (MultipleDocumentHandling) IppUtilities.getEnumAttribute( "multiple-document-handling", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static MultipleDocumentHandling[] ! getAssociatedAttributeArray(Set set) { ! MultipleDocumentHandling[] result = new MultipleDocumentHandling[set.size()]; int j = 0; ! for (Attribute tmp : set) { ! result[j] = ((MultipleDocumentHandlingSupported) tmp).getAssociatedAttribute(); j++; ! } return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* MultipleDocumentJobsSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MultipleDocumentJobsSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 38,72 **** package gnu.javax.print.ipp.attribute.supported; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; /** * MultipleDocumentJobsSupported specifies if a printer * supported multiple documents in one job. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class MultipleDocumentJobsSupported extends EnumSyntax implements SupportedValuesAttribute { ! /** Multiple documents per job are not supported. */ ! public static final MultipleDocumentJobsSupported NOT_SUPPORTED = new MultipleDocumentJobsSupported(0); ! /** Multiple documents per job are supported. */ ! public static final MultipleDocumentJobsSupported SUPPORTED = new MultipleDocumentJobsSupported(1); private static final String[] stringTable = { "not-supported", "supported" }; ! ! private static final MultipleDocumentJobsSupported[] enumValueTable = { NOT_SUPPORTED, SUPPORTED }; ! /** * Constructs a MultipleDocumentJobsSupported object. ! * * @param value the enum value */ protected MultipleDocumentJobsSupported(int value) --- 38,73 ---- package gnu.javax.print.ipp.attribute.supported; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; /** * MultipleDocumentJobsSupported specifies if a printer * supported multiple documents in one job. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public class MultipleDocumentJobsSupported extends EnumSyntax implements SupportedValuesAttribute { ! /** Multiple documents per job are not supported. */ ! public static final MultipleDocumentJobsSupported NOT_SUPPORTED = new MultipleDocumentJobsSupported(0); ! /** Multiple documents per job are supported. */ ! public static final MultipleDocumentJobsSupported SUPPORTED = new MultipleDocumentJobsSupported(1); private static final String[] stringTable = { "not-supported", "supported" }; ! ! private static final MultipleDocumentJobsSupported[] enumValueTable = { NOT_SUPPORTED, SUPPORTED }; ! /** * Constructs a MultipleDocumentJobsSupported object. ! * * @param value the enum value */ protected MultipleDocumentJobsSupported(int value) *************** public class MultipleDocumentJobsSupport *** 79,85 **** * * @return The class MultipleDocumentJobsSupported itself. */ ! public Class getCategory() { return MultipleDocumentJobsSupported.class; } --- 80,86 ---- * * @return The class MultipleDocumentJobsSupported itself. */ ! public Class getCategory() { return MultipleDocumentJobsSupported.class; } *************** public class MultipleDocumentJobsSupport *** 93,99 **** { return "multiple-document-jobs-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 94,100 ---- { return "multiple-document-jobs-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/OperationsSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/OperationsSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/OperationsSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/OperationsSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* OperationsSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* OperationsSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 38,43 **** --- 38,44 ---- package gnu.javax.print.ipp.attribute.supported; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; *************** import javax.print.attribute.SupportedVa *** 45,56 **** * OperationsSupported specifies the enums of the operations * supported by a given printer or job object. The attribute is further * specified in RFC 2911 section 4.4.15. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class OperationsSupported extends EnumSyntax implements SupportedValuesAttribute ! { /* * Value Operation Name ----------------- ------------------------------------- --- 46,57 ---- * OperationsSupported specifies the enums of the operations * supported by a given printer or job object. The attribute is further * specified in RFC 2911 section 4.4.15. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class OperationsSupported extends EnumSyntax implements SupportedValuesAttribute ! { /* * Value Operation Name ----------------- ------------------------------------- *************** public final class OperationsSupported e *** 76,179 **** 0x0013-0x3FFF reserved for future IETF standards track operations 0x4000-0x8FFF reserved for vendor extensions */ ! // standard ipp 1.1 operations ! /** * Operation to print a job in one request/response. */ ! public static final OperationsSupported PRINT_JOB = new OperationsSupported(0x02); ! /** Operation to print a document from an URI */ ! public static final OperationsSupported PRINT_URI = new OperationsSupported(0x03); ! /** Operation to validate a job before submission. */ ! public static final OperationsSupported VALIDATE_JOB = new OperationsSupported(0x04); ! ! /** ! * Operation to create an initial job for use with multiple document per job. */ ! public static final OperationsSupported CREATE_JOB = new OperationsSupported(0x05); ! ! /** ! * Operation to send a document to a multidoc job created via CREATE_JOB */ ! public static final OperationsSupported SEND_DOCUMENT = new OperationsSupported(0x06); ! ! /** ! * Operation to send a document uri to a multidoc job created ! * via CREATE_JOB. The document accessible from this URI will be printed. */ ! public static final OperationsSupported SEND_URI = new OperationsSupported(0x07); ! /** Operation to cancel a job by its ID or name. */ ! public static final OperationsSupported CANCEL_JOB = new OperationsSupported(0x08); ! /** Operation to get job attributes of a current job. */ ! public static final OperationsSupported GET_JOB_ATTRIBUTES = new OperationsSupported(0x09); ! /** Operation to pause a printer. */ ! public static final OperationsSupported PAUSE_PRINTER = new OperationsSupported(0x10); ! /** Operation to get all currently queued or processed jobs. */ ! public static final OperationsSupported GET_JOBS = new OperationsSupported(0x0A); ! /** Operation to get the attributes of a printer. */ ! public static final OperationsSupported GET_PRINTER_ATTRIBUTES = new OperationsSupported(0x0B); ! /** Operation to put a job on hold by its ID or name. */ ! public static final OperationsSupported HOLD_JOB = new OperationsSupported(0x0C); ! /** Operation to release a job by its ID or name. */ ! public static final OperationsSupported RELEASE_JOB = new OperationsSupported(0x0D); ! /** Operation to restart a job by its ID or name. */ ! public static final OperationsSupported RESTART_JOB = new OperationsSupported(0x0E); ! /** Not yet an operation - reserved for futher use. */ ! public static final OperationsSupported RESERVED = new OperationsSupported(0x0F); ! /** Operation to resume a printer. */ ! public static final OperationsSupported RESUME_PRINTER = new OperationsSupported(0x11); ! /** Operation to remove all jobs from a printer regardless of state. */ ! public static final OperationsSupported PURGE_JOBS = new OperationsSupported(0x12); ! private static final String[] stringTable = { "print-job", "print-uri", "validate-job", "create-job", ! "send-document", "send-uri", "cancel-job", "get-job-attributes", ! "pause-printer", "get-jobs", "get-printer-attributes", "hold-job", "release-job", "restart-job", "reserved", "resume-printer", "purge-job"}; ! ! private static final OperationsSupported[] enumValueTable = { PRINT_JOB, PRINT_URI, VALIDATE_JOB, CREATE_JOB, SEND_DOCUMENT, SEND_URI, CANCEL_JOB, GET_JOB_ATTRIBUTES, PAUSE_PRINTER, GET_JOBS, GET_PRINTER_ATTRIBUTES, HOLD_JOB, RELEASE_JOB, RESTART_JOB, RESERVED, RESUME_PRINTER, PURGE_JOBS}; ! ! /** * Constructs a OperationsSupported object. ! * * @param value the enum value */ protected OperationsSupported(int value) --- 77,180 ---- 0x0013-0x3FFF reserved for future IETF standards track operations 0x4000-0x8FFF reserved for vendor extensions */ ! // standard ipp 1.1 operations ! /** * Operation to print a job in one request/response. */ ! public static final OperationsSupported PRINT_JOB = new OperationsSupported(0x02); ! /** Operation to print a document from an URI */ ! public static final OperationsSupported PRINT_URI = new OperationsSupported(0x03); ! /** Operation to validate a job before submission. */ ! public static final OperationsSupported VALIDATE_JOB = new OperationsSupported(0x04); ! ! /** ! * Operation to create an initial job for use with multiple document per job. */ ! public static final OperationsSupported CREATE_JOB = new OperationsSupported(0x05); ! ! /** ! * Operation to send a document to a multidoc job created via CREATE_JOB */ ! public static final OperationsSupported SEND_DOCUMENT = new OperationsSupported(0x06); ! ! /** ! * Operation to send a document uri to a multidoc job created ! * via CREATE_JOB. The document accessible from this URI will be printed. */ ! public static final OperationsSupported SEND_URI = new OperationsSupported(0x07); ! /** Operation to cancel a job by its ID or name. */ ! public static final OperationsSupported CANCEL_JOB = new OperationsSupported(0x08); ! /** Operation to get job attributes of a current job. */ ! public static final OperationsSupported GET_JOB_ATTRIBUTES = new OperationsSupported(0x09); ! /** Operation to pause a printer. */ ! public static final OperationsSupported PAUSE_PRINTER = new OperationsSupported(0x10); ! /** Operation to get all currently queued or processed jobs. */ ! public static final OperationsSupported GET_JOBS = new OperationsSupported(0x0A); ! /** Operation to get the attributes of a printer. */ ! public static final OperationsSupported GET_PRINTER_ATTRIBUTES = new OperationsSupported(0x0B); ! /** Operation to put a job on hold by its ID or name. */ ! public static final OperationsSupported HOLD_JOB = new OperationsSupported(0x0C); ! /** Operation to release a job by its ID or name. */ ! public static final OperationsSupported RELEASE_JOB = new OperationsSupported(0x0D); ! /** Operation to restart a job by its ID or name. */ ! public static final OperationsSupported RESTART_JOB = new OperationsSupported(0x0E); ! /** Not yet an operation - reserved for futher use. */ ! public static final OperationsSupported RESERVED = new OperationsSupported(0x0F); ! /** Operation to resume a printer. */ ! public static final OperationsSupported RESUME_PRINTER = new OperationsSupported(0x11); ! /** Operation to remove all jobs from a printer regardless of state. */ ! public static final OperationsSupported PURGE_JOBS = new OperationsSupported(0x12); ! private static final String[] stringTable = { "print-job", "print-uri", "validate-job", "create-job", ! "send-document", "send-uri", "cancel-job", "get-job-attributes", ! "pause-printer", "get-jobs", "get-printer-attributes", "hold-job", "release-job", "restart-job", "reserved", "resume-printer", "purge-job"}; ! ! private static final OperationsSupported[] enumValueTable = { PRINT_JOB, PRINT_URI, VALIDATE_JOB, CREATE_JOB, SEND_DOCUMENT, SEND_URI, CANCEL_JOB, GET_JOB_ATTRIBUTES, PAUSE_PRINTER, GET_JOBS, GET_PRINTER_ATTRIBUTES, HOLD_JOB, RELEASE_JOB, RESTART_JOB, RESERVED, RESUME_PRINTER, PURGE_JOBS}; ! ! /** * Constructs a OperationsSupported object. ! * * @param value the enum value */ protected OperationsSupported(int value) *************** public final class OperationsSupported e *** 186,192 **** * * @return The class OperationsSupported itself. */ ! public Class getCategory() { return OperationsSupported.class; } --- 187,193 ---- * * @return The class OperationsSupported itself. */ ! public Class getCategory() { return OperationsSupported.class; } *************** public final class OperationsSupported e *** 200,206 **** { return "operations-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 201,207 ---- { return "operations-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class OperationsSupported e *** 226,230 **** protected int getOffset() { return 2; ! } } --- 227,231 ---- protected int getOffset() { return 2; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.java Tue Oct 12 15:55:12 2010 *************** import gnu.javax.print.ipp.IppUtilities; *** 42,74 **** import java.util.Iterator; import java.util.Set; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.standard.OrientationRequested; /** ! * The OrientationRequestedSupported attribute provides * the supported values for the job attribute orientation-requested. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class OrientationRequestedSupported extends EnumSyntax implements SupportedValuesAttribute { ! /** Orientation as portrait. */ public static final OrientationRequestedSupported PORTRAIT = new OrientationRequestedSupported(3); ! /** Orientation as landscape. */ public static final OrientationRequestedSupported LANDSCAPE = new OrientationRequestedSupported(4); ! /** Orientation as reversed landscape. */ public static final OrientationRequestedSupported REVERSE_LANDSCAPE = new OrientationRequestedSupported(5); ! /** Orientation as reversed portrait. */ public static final OrientationRequestedSupported REVERSE_PORTRAIT = new OrientationRequestedSupported(6); --- 42,75 ---- import java.util.Iterator; import java.util.Set; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.standard.OrientationRequested; /** ! * The OrientationRequestedSupported attribute provides * the supported values for the job attribute orientation-requested. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class OrientationRequestedSupported extends EnumSyntax implements SupportedValuesAttribute { ! /** Orientation as portrait. */ public static final OrientationRequestedSupported PORTRAIT = new OrientationRequestedSupported(3); ! /** Orientation as landscape. */ public static final OrientationRequestedSupported LANDSCAPE = new OrientationRequestedSupported(4); ! /** Orientation as reversed landscape. */ public static final OrientationRequestedSupported REVERSE_LANDSCAPE = new OrientationRequestedSupported(5); ! /** Orientation as reversed portrait. */ public static final OrientationRequestedSupported REVERSE_PORTRAIT = new OrientationRequestedSupported(6); *************** public final class OrientationRequestedS *** 77,90 **** private static final String[] stringTable = { "portrait", "landscape", "reverse-landscape", "reverse-portrait" }; ! ! private static final OrientationRequestedSupported[] ! enumValueTable = { PORTRAIT, LANDSCAPE, REVERSE_LANDSCAPE, REVERSE_PORTRAIT }; ! /** * Constructs a OrientationRequestedSupported object. ! * * @param value the value */ protected OrientationRequestedSupported(int value) --- 78,91 ---- private static final String[] stringTable = { "portrait", "landscape", "reverse-landscape", "reverse-portrait" }; ! ! private static final OrientationRequestedSupported[] ! enumValueTable = { PORTRAIT, LANDSCAPE, REVERSE_LANDSCAPE, REVERSE_PORTRAIT }; ! /** * Constructs a OrientationRequestedSupported object. ! * * @param value the value */ protected OrientationRequestedSupported(int value) *************** public final class OrientationRequestedS *** 97,103 **** * * @return The class OrientationRequestedSupported itself. */ ! public Class getCategory() { return OrientationRequestedSupported.class; } --- 98,104 ---- * * @return The class OrientationRequestedSupported itself. */ ! public Class getCategory() { return OrientationRequestedSupported.class; } *************** public final class OrientationRequestedS *** 111,117 **** { return "orientation-requested-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 112,118 ---- { return "orientation-requested-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class OrientationRequestedS *** 132,138 **** { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . --- 133,139 ---- { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . *************** public final class OrientationRequestedS *** 142,179 **** { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public OrientationRequested getAssociatedAttribute() { return (OrientationRequested) IppUtilities.getEnumAttribute( "orientation-requested", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static OrientationRequested[] getAssociatedAttributeArray(Set set) { ! OrientationRequestedSupported tmp; ! OrientationRequested[] result = new OrientationRequested[set.size()]; ! Iterator it = set.iterator(); int j = 0; ! while (it.hasNext()) { ! tmp = (OrientationRequestedSupported) it.next(); ! result[j] = tmp.getAssociatedAttribute(); j++; ! } return result; } } --- 143,178 ---- { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public OrientationRequested getAssociatedAttribute() { return (OrientationRequested) IppUtilities.getEnumAttribute( "orientation-requested", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static OrientationRequested[] ! getAssociatedAttributeArray(Set set) { ! OrientationRequested[] result = new OrientationRequested[set.size()]; int j = 0; ! for (Attribute tmp : set) { ! result[j] = ((OrientationRequestedSupported) tmp).getAssociatedAttribute(); j++; ! } return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.java Tue Oct 12 15:55:12 2010 *************** exception statement from your version. * *** 37,72 **** package gnu.javax.print.ipp.attribute.supported; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; - /** * PageRangesSupported is a boolean typed * attribute indicating (as EnumSyntax) if page ranges * are supported. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PageRangesSupported extends EnumSyntax implements SupportedValuesAttribute { /** Page ranges are not supported. */ ! public static final PageRangesSupported NOT_SUPPORTED = new PageRangesSupported(0); ! /** Page ranges are supported. */ ! public static final PageRangesSupported SUPPORTED = new PageRangesSupported(1); private static final String[] stringTable = { "not-supported", "supported" }; ! private static final PageRangesSupported[] enumValueTable = { NOT_SUPPORTED, SUPPORTED }; ! /** * Constructs a PageRangesSupported object. ! * * @param value the enum value */ protected PageRangesSupported(int value) --- 37,72 ---- package gnu.javax.print.ipp.attribute.supported; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; /** * PageRangesSupported is a boolean typed * attribute indicating (as EnumSyntax) if page ranges * are supported. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PageRangesSupported extends EnumSyntax implements SupportedValuesAttribute { /** Page ranges are not supported. */ ! public static final PageRangesSupported NOT_SUPPORTED = new PageRangesSupported(0); ! /** Page ranges are supported. */ ! public static final PageRangesSupported SUPPORTED = new PageRangesSupported(1); private static final String[] stringTable = { "not-supported", "supported" }; ! private static final PageRangesSupported[] enumValueTable = { NOT_SUPPORTED, SUPPORTED }; ! /** * Constructs a PageRangesSupported object. ! * * @param value the enum value */ protected PageRangesSupported(int value) *************** public final class PageRangesSupported e *** 79,85 **** * * @return The class PageRangesSupported itself. */ ! public Class getCategory() { return PageRangesSupported.class; } --- 79,85 ---- * * @return The class PageRangesSupported itself. */ ! public Class getCategory() { return PageRangesSupported.class; } *************** public final class PageRangesSupported e *** 93,99 **** { return "page-ranges-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 93,99 ---- { return "page-ranges-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.java Tue Oct 12 15:55:12 2010 *************** import gnu.javax.print.ipp.IppUtilities; *** 42,47 **** --- 42,48 ---- import java.util.Iterator; import java.util.Set; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.standard.PrintQuality; *************** import javax.print.attribute.standard.Pr *** 50,82 **** /** * PrintQualitySupported provides the * supported values for the print-quality attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrintQualitySupported extends EnumSyntax implements SupportedValuesAttribute { /** Draft quality of the printer. */ ! public static final PrintQualitySupported DRAFT = new PrintQualitySupported(3); ! /** Normal quality of the printer. */ ! public static final PrintQualitySupported NORMAL = new PrintQualitySupported(4); ! /** High quality of the printer. */ ! public static final PrintQualitySupported HIGH = new PrintQualitySupported(5); private static final String[] stringTable = { "draft", "normal", "high" }; ! ! private static final PrintQualitySupported[] enumValueTable = { DRAFT, ! NORMAL, HIGH }; ! /** * Constructs a PrintQualitySupported object. ! * * @param value the value of the enum */ protected PrintQualitySupported(int value) --- 51,83 ---- /** * PrintQualitySupported provides the * supported values for the print-quality attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrintQualitySupported extends EnumSyntax implements SupportedValuesAttribute { /** Draft quality of the printer. */ ! public static final PrintQualitySupported DRAFT = new PrintQualitySupported(3); ! /** Normal quality of the printer. */ ! public static final PrintQualitySupported NORMAL = new PrintQualitySupported(4); ! /** High quality of the printer. */ ! public static final PrintQualitySupported HIGH = new PrintQualitySupported(5); private static final String[] stringTable = { "draft", "normal", "high" }; ! ! private static final PrintQualitySupported[] enumValueTable = { DRAFT, ! NORMAL, HIGH }; ! /** * Constructs a PrintQualitySupported object. ! * * @param value the value of the enum */ protected PrintQualitySupported(int value) *************** public final class PrintQualitySupported *** 89,95 **** * * @return The class PrintQualitySupported itself. */ ! public Class getCategory() { return PrintQualitySupported.class; } --- 90,96 ---- * * @return The class PrintQualitySupported itself. */ ! public Class getCategory() { return PrintQualitySupported.class; } *************** public final class PrintQualitySupported *** 103,109 **** { return "print-quality-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 104,110 ---- { return "print-quality-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class PrintQualitySupported *** 124,130 **** { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . --- 125,131 ---- { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . *************** public final class PrintQualitySupported *** 134,171 **** { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public PrintQuality getAssociatedAttribute() { return (PrintQuality) IppUtilities.getEnumAttribute( "print-quality", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static PrintQuality[] getAssociatedAttributeArray(Set set) { ! PrintQualitySupported tmp; ! PrintQuality[] result = new PrintQuality[set.size()]; ! Iterator it = set.iterator(); int j = 0; ! while (it.hasNext()) { ! tmp = (PrintQualitySupported) it.next(); ! result[j] = tmp.getAssociatedAttribute(); j++; ! } return result; } } --- 135,169 ---- { return 3; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public PrintQuality getAssociatedAttribute() { return (PrintQuality) IppUtilities.getEnumAttribute( "print-quality", new Integer(getValue())); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static PrintQuality[] getAssociatedAttributeArray(Set set) { ! PrintQuality[] result = new PrintQuality[set.size()]; int j = 0; ! for (Attribute tmp : set) { ! result[j] = ((PrintQualitySupported) tmp).getAssociatedAttribute(); j++; ! } return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.java Tue Oct 12 15:55:12 2010 *************** package gnu.javax.print.ipp.attribute.su *** 40,62 **** import java.util.Iterator; import java.util.Set; import javax.print.attribute.ResolutionSyntax; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.standard.PrinterResolution; /** ! * The PrinterResolutionSupported attribute provides * the supported values for the job attribute printer-resolution. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrinterResolutionSupported extends ResolutionSyntax implements SupportedValuesAttribute { ! /** ! * Creates a PrinterResolutionSupported object with the * given arguments. * * @param crossFeedResolution the cross feed resolution --- 40,63 ---- import java.util.Iterator; import java.util.Set; + import javax.print.attribute.Attribute; import javax.print.attribute.ResolutionSyntax; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.standard.PrinterResolution; /** ! * The PrinterResolutionSupported attribute provides * the supported values for the job attribute printer-resolution. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class PrinterResolutionSupported extends ResolutionSyntax implements SupportedValuesAttribute { ! /** ! * Creates a PrinterResolutionSupported object with the * given arguments. * * @param crossFeedResolution the cross feed resolution *************** public final class PrinterResolutionSupp *** 65,89 **** * * @exception IllegalArgumentException if preconditions fail */ ! public PrinterResolutionSupported(int crossFeedResolution, int feedResolution, int units) { super(crossFeedResolution, feedResolution, units); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if(! (obj instanceof PrinterResolutionSupported)) return false; ! return super.equals(obj); } --- 66,90 ---- * * @exception IllegalArgumentException if preconditions fail */ ! public PrinterResolutionSupported(int crossFeedResolution, int feedResolution, int units) { super(crossFeedResolution, feedResolution, units); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if(! (obj instanceof PrinterResolutionSupported)) return false; ! return super.equals(obj); } *************** public final class PrinterResolutionSupp *** 92,98 **** * * @return The class PrinterResolutionSupported itself. */ ! public Class getCategory() { return PrinterResolutionSupported.class; } --- 93,99 ---- * * @return The class PrinterResolutionSupported itself. */ ! public Class getCategory() { return PrinterResolutionSupported.class; } *************** public final class PrinterResolutionSupp *** 106,143 **** { return "printer-resolution-supported"; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public PrinterResolution getAssociatedAttribute() { ! return new PrinterResolution(getCrossFeedResolutionDphi(), getFeedResolutionDphi(), 1); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static PrinterResolution[] getAssociatedAttributeArray(Set set) { ! PrinterResolutionSupported tmp; ! PrinterResolution[] result = new PrinterResolution[set.size()]; ! Iterator it = set.iterator(); int j = 0; ! while (it.hasNext()) { ! tmp = (PrinterResolutionSupported) it.next(); ! result[j] = tmp.getAssociatedAttribute(); j++; ! } return result; } } --- 107,142 ---- { return "printer-resolution-supported"; } ! /** * Returns the equally enum of the standard attribute class * of this SupportedValuesAttribute enum. ! * * @return The enum of the standard attribute class. */ ! public PrinterResolution getAssociatedAttribute() { ! return new PrinterResolution(getCrossFeedResolutionDphi(), getFeedResolutionDphi(), 1); } ! /** * Constructs an array from a set of -supported attributes. * @param set set to process * @return The constructed array. ! * * @see #getAssociatedAttribute() */ ! public static PrinterResolution[] ! getAssociatedAttributeArray(Set set) { ! PrinterResolution[] result = new PrinterResolution[set.size()]; int j = 0; ! for (Attribute tmp : set) { ! result[j] = ((PrinterResolutionSupported) tmp).getAssociatedAttribute(); j++; ! } return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* PrinterUriSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterUriSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.javax.print.ipp.attribute.su *** 40,45 **** --- 40,46 ---- import java.net.URI; + import javax.print.attribute.Attribute; import javax.print.attribute.SupportedValuesAttribute; import javax.print.attribute.URISyntax; *************** import javax.print.attribute.URISyntax; *** 47,56 **** * PrinterUriSupported attribute as described in RFC 2911 section * 4.4.1 contains one of the URIs the printer supported for * job processing (e.g. one with authentication). ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterUriSupported extends URISyntax implements SupportedValuesAttribute { --- 48,57 ---- * PrinterUriSupported attribute as described in RFC 2911 section * 4.4.1 contains one of the URIs the printer supported for * job processing (e.g. one with authentication). ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class PrinterUriSupported extends URISyntax implements SupportedValuesAttribute { *************** public final class PrinterUriSupported e *** 70,76 **** * * @return The class PrinterUriSupported itself. */ ! public Class getCategory() { return PrinterUriSupported.class; } --- 71,77 ---- * * @return The class PrinterUriSupported itself. */ ! public Class getCategory() { return PrinterUriSupported.class; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/SidesSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/SidesSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/SidesSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/SidesSupported.java Tue Oct 12 15:55:12 2010 *************** exception statement from your version. * *** 37,42 **** --- 37,43 ---- package gnu.javax.print.ipp.attribute.supported; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; *************** import javax.print.attribute.SupportedVa *** 44,88 **** /** * SidesSupported provides the * supported values for the sides attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class SidesSupported extends EnumSyntax implements SupportedValuesAttribute { ! /** Specifies that each page should be printed on one sheet. */ public static final SidesSupported ONE_SIDED = new SidesSupported(0); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the long edge. */ ! public static final SidesSupported TWO_SIDED_LONG_EDGE = new SidesSupported(1); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the short edge. */ ! public static final SidesSupported TWO_SIDED_SHORT_EDGE = new SidesSupported(2); ! /** An alias constant for "two sided long edge". */ public static final SidesSupported DUPLEX = new SidesSupported(1); ! /** An alias constant for "two sided short edge". */ public static final SidesSupported TUMBLE = new SidesSupported(2); ! private static final String[] stringTable = { "one-sided", "two-sided-long-edge", "two-sided-short-edge" }; ! ! private static final SidesSupported[] ! enumValueTable = { ONE_SIDED, TWO_SIDED_LONG_EDGE, TWO_SIDED_SHORT_EDGE }; ! ! /** * Creates a SidesSupported object. * --- 45,89 ---- /** * SidesSupported provides the * supported values for the sides attribute. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class SidesSupported extends EnumSyntax implements SupportedValuesAttribute { ! /** Specifies that each page should be printed on one sheet. */ public static final SidesSupported ONE_SIDED = new SidesSupported(0); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the long edge. */ ! public static final SidesSupported TWO_SIDED_LONG_EDGE = new SidesSupported(1); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the short edge. */ ! public static final SidesSupported TWO_SIDED_SHORT_EDGE = new SidesSupported(2); ! /** An alias constant for "two sided long edge". */ public static final SidesSupported DUPLEX = new SidesSupported(1); ! /** An alias constant for "two sided short edge". */ public static final SidesSupported TUMBLE = new SidesSupported(2); ! private static final String[] stringTable = { "one-sided", "two-sided-long-edge", "two-sided-short-edge" }; ! ! private static final SidesSupported[] ! enumValueTable = { ONE_SIDED, TWO_SIDED_LONG_EDGE, TWO_SIDED_SHORT_EDGE }; ! ! /** * Creates a SidesSupported object. * *************** public final class SidesSupported extend *** 98,104 **** * * @return The class SidesSupported itself. */ ! public Class getCategory() { return SidesSupported.class; } --- 99,105 ---- * * @return The class SidesSupported itself. */ ! public Class getCategory() { return SidesSupported.class; } *************** public final class SidesSupported extend *** 112,118 **** { return "sides-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 113,119 ---- { return "sides-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* UriAuthenticationSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UriAuthenticationSupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 38,95 **** package gnu.javax.print.ipp.attribute.supported; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; /** * UriAuthenticationSupported attribute as described in RFC 2911 section ! * 4.4.2 provides the keywords (implemented as EnumSyntax) which * authentication methods are supported by the printer object. This * includes a value of none. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class UriAuthenticationSupported extends EnumSyntax implements SupportedValuesAttribute { ! // a keyword based attribute in IPP - int values just starting at 0 ! /** Supports no authentication - assumes anonymous process */ ! public static final UriAuthenticationSupported NONE = new UriAuthenticationSupported(0); ! ! /** * The authenticated user assumed is the value of the * "requesting-user-name" operation attribute supplied * with the operation. */ ! public static final UriAuthenticationSupported REQUESTING_USER_NAME = new UriAuthenticationSupported(1); ! /** Supports HTTP basic authentication (RFC 2617) */ ! public static final UriAuthenticationSupported BASIC = new UriAuthenticationSupported(2); ! /** Supports HTTP digest authentication (RFC 2617) */ ! public static final UriAuthenticationSupported DIGEST = new UriAuthenticationSupported(3); ! /** Supports authentication through a client provided certificate */ ! public static final UriAuthenticationSupported CERTIFICATE = new UriAuthenticationSupported(4); ! ! private static final String[] stringTable = { "none", ! "requesting-user-name", ! "basic", "digest", "certificate" }; ! ! private static final UriAuthenticationSupported[] enumValueTable = { NONE, REQUESTING_USER_NAME, BASIC, DIGEST, CERTIFICATE }; /** * Constructs a UriAuthenticationSupported object. ! * * @param value the enum value */ public UriAuthenticationSupported(int value) --- 38,96 ---- package gnu.javax.print.ipp.attribute.supported; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; /** * UriAuthenticationSupported attribute as described in RFC 2911 section ! * 4.4.2 provides the keywords (implemented as EnumSyntax) which * authentication methods are supported by the printer object. This * includes a value of none. ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class UriAuthenticationSupported extends EnumSyntax implements SupportedValuesAttribute { ! // a keyword based attribute in IPP - int values just starting at 0 ! /** Supports no authentication - assumes anonymous process */ ! public static final UriAuthenticationSupported NONE = new UriAuthenticationSupported(0); ! ! /** * The authenticated user assumed is the value of the * "requesting-user-name" operation attribute supplied * with the operation. */ ! public static final UriAuthenticationSupported REQUESTING_USER_NAME = new UriAuthenticationSupported(1); ! /** Supports HTTP basic authentication (RFC 2617) */ ! public static final UriAuthenticationSupported BASIC = new UriAuthenticationSupported(2); ! /** Supports HTTP digest authentication (RFC 2617) */ ! public static final UriAuthenticationSupported DIGEST = new UriAuthenticationSupported(3); ! /** Supports authentication through a client provided certificate */ ! public static final UriAuthenticationSupported CERTIFICATE = new UriAuthenticationSupported(4); ! ! private static final String[] stringTable = { "none", ! "requesting-user-name", ! "basic", "digest", "certificate" }; ! ! private static final UriAuthenticationSupported[] enumValueTable = { NONE, REQUESTING_USER_NAME, BASIC, DIGEST, CERTIFICATE }; /** * Constructs a UriAuthenticationSupported object. ! * * @param value the enum value */ public UriAuthenticationSupported(int value) *************** public final class UriAuthenticationSupp *** 102,108 **** * * @return The class UriAuthenticationSupported itself. */ ! public Class getCategory() { return UriAuthenticationSupported.class; } --- 103,109 ---- * * @return The class UriAuthenticationSupported itself. */ ! public Class getCategory() { return UriAuthenticationSupported.class; } *************** public final class UriAuthenticationSupp *** 116,122 **** { return "uri-authentication-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 117,123 ---- { return "uri-authentication-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.java gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.java *** gcc-4.5.2/libjava/classpath/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.java Tue Oct 12 15:55:12 2010 *************** *** 1,4 **** ! /* UriSecuritySupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UriSecuritySupported.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 38,43 **** --- 38,44 ---- package gnu.javax.print.ipp.attribute.supported; + import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.SupportedValuesAttribute; *************** import javax.print.attribute.SupportedVa *** 46,80 **** * 4.4.3 provides the keywords (implemented as EnumSyntax) for * the security mechanisms supported by the corresponding uri's * supported (same place in setOf). ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class UriSecuritySupported extends EnumSyntax implements SupportedValuesAttribute { ! // a keyword based attribute in IPP - int values just starting at 0 ! /** The URI has no secure communication */ ! public static final UriSecuritySupported NONE = new UriSecuritySupported(0); ! /** The URI has SSL3 communication */ ! public static final UriSecuritySupported SSL3 = new UriSecuritySupported(1); ! /** The URI has TLS (RFC 2246) communication */ ! public static final UriSecuritySupported TLS = new UriSecuritySupported(2); ! private static final String[] stringTable = { "none", "ssl3", "tls" }; ! ! private static final UriSecuritySupported[] enumValueTable = { NONE, SSL3, TLS }; /** * Constructs a UriSecuritySupported object. ! * * @param value the enum value */ public UriSecuritySupported(int value) --- 47,81 ---- * 4.4.3 provides the keywords (implemented as EnumSyntax) for * the security mechanisms supported by the corresponding uri's * supported (same place in setOf). ! * * @author Wolfgang Baer (WBaer@gmx.de) */ ! public final class UriSecuritySupported extends EnumSyntax implements SupportedValuesAttribute { ! // a keyword based attribute in IPP - int values just starting at 0 ! /** The URI has no secure communication */ ! public static final UriSecuritySupported NONE = new UriSecuritySupported(0); ! /** The URI has SSL3 communication */ ! public static final UriSecuritySupported SSL3 = new UriSecuritySupported(1); ! /** The URI has TLS (RFC 2246) communication */ ! public static final UriSecuritySupported TLS = new UriSecuritySupported(2); ! private static final String[] stringTable = { "none", "ssl3", "tls" }; ! ! private static final UriSecuritySupported[] enumValueTable = { NONE, SSL3, TLS }; /** * Constructs a UriSecuritySupported object. ! * * @param value the enum value */ public UriSecuritySupported(int value) *************** public final class UriSecuritySupported *** 87,93 **** * * @return The class UriSecuritySupported itself. */ ! public Class getCategory() { return UriSecuritySupported.class; } --- 88,94 ---- * * @return The class UriSecuritySupported itself. */ ! public Class getCategory() { return UriSecuritySupported.class; } *************** public final class UriSecuritySupported *** 101,107 **** { return "uri-security-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 102,108 ---- { return "uri-security-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/CorbaInput.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/CorbaInput.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/CorbaInput.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/CorbaInput.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 51,57 **** /** * Converts calls on java ObjectOutputStream to calls on CORBA OutputStream. A * class to substitute for objects using readObject method. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class CorbaInput --- 51,57 ---- /** * Converts calls on java ObjectOutputStream to calls on CORBA OutputStream. A * class to substitute for objects using readObject method. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class CorbaInput diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/CorbaOutput.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/CorbaOutput.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/CorbaOutput.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/CorbaOutput.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 48,54 **** /** * A class to substitute as an ObjectOutputStream for objects using writeObject * method. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class CorbaOutput --- 48,54 ---- /** * A class to substitute as an ObjectOutputStream for objects using writeObject * method. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class CorbaOutput diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java Tue Jan 11 19:46:05 2011 *************** import gnu.CORBA.CDR.BufferedCdrOutput; *** 43,49 **** import java.io.IOException; /** ! * Tests if the defaultWriteObject method has been called. * This information is required by RMI-IIOP header. * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) --- 43,49 ---- import java.io.IOException; /** ! * Tests if the defaultWriteObject method has been called. * This information is required by RMI-IIOP header. * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) *************** public class DefaultWriteObjectTester *** 55,61 **** * The flag, indicating, that the defaultWriteObject method was called. */ public boolean dwo_called; ! /** * Create an instance, delegating calls to the given CORBA stream. */ --- 55,61 ---- * The flag, indicating, that the defaultWriteObject method was called. */ public boolean dwo_called; ! /** * Create an instance, delegating calls to the given CORBA stream. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/DelegateFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/DelegateFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/DelegateFactory.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/DelegateFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DelegateFactory.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DelegateFactory.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import gnu.CORBA.ObjectCreator; *** 44,50 **** /** * This class produces delegates, using the system properties. If not * corresponding property is specified, returns default implementations. ! * * @author Wu Gansha (gansha.wu@intel.com) * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ --- 44,50 ---- /** * This class produces delegates, using the system properties. If not * corresponding property is specified, returns default implementations. ! * * @author Wu Gansha (gansha.wu@intel.com) * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ *************** public class DelegateFactory *** 73,83 **** /** * Get an instance of the given delegate. As in all cases the singleton * instance is used, the caching here would be redundant. ! * * @param type a delegate type. ! * * @return the associated delegate. ! * * @throws InternalError if the delegate class, indicated in the system * properties, cannot be instantiated. */ --- 73,83 ---- /** * Get an instance of the given delegate. As in all cases the singleton * instance is used, the caching here would be redundant. ! * * @param type a delegate type. ! * * @return the associated delegate. ! * * @throws InternalError if the delegate class, indicated in the system * properties, cannot be instantiated. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/GetDelegateInstanceException.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/GetDelegateInstanceException.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/GetDelegateInstanceException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/GetDelegateInstanceException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GetDelegateInstanceException.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GetDelegateInstanceException.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class GetDelegateInstanceExceptio *** 42,53 **** extends Exception { private Throwable next; ! public GetDelegateInstanceException(String msg) { super(msg); } ! public GetDelegateInstanceException(String msg, Throwable next) { super(msg, next); --- 42,53 ---- extends Exception { private Throwable next; ! public GetDelegateInstanceException(String msg) { super(msg); } ! public GetDelegateInstanceException(String msg, Throwable next) { super(msg, next); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PortableRemoteObjectDelegateImpl.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PortableRemoteObjectDelegateImpl.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.omg.PortableServer.POAManager *** 65,71 **** /** * Implements PortableRemoteObjectDelegate. ! * * @author Wu Gansha (gansha.wu@intel.com) (stub) * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) (implementation) */ --- 65,71 ---- /** * Implements PortableRemoteObjectDelegate. ! * * @author Wu Gansha (gansha.wu@intel.com) (stub) * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) (implementation) */ *************** public class PortableRemoteObjectDelegat *** 78,92 **** * communication using the same communications runtime as for the passed * a_source parameter. The a_target is connected to the same * ORB (and, if applicable, to the same POA) as the a_source. ! * * @param a_target the target to connect to ORB, must be an instance of either * {@link ObjectImpl} (Stubs and old-style ties) or {@link Servant} (POA-bases * ties). ! * * @param a_source the object, providing the connection information, must be * an instance of either {@link ObjectImpl} (Stubs and old-style ties) or * {@link Servant} (POA-bases ties). ! * * @throws RemoteException if the target is already connected to another ORB. */ public void connect(Remote a_target, Remote a_source) --- 78,92 ---- * communication using the same communications runtime as for the passed * a_source parameter. The a_target is connected to the same * ORB (and, if applicable, to the same POA) as the a_source. ! * * @param a_target the target to connect to ORB, must be an instance of either * {@link ObjectImpl} (Stubs and old-style ties) or {@link Servant} (POA-bases * ties). ! * * @param a_source the object, providing the connection information, must be * an instance of either {@link ObjectImpl} (Stubs and old-style ties) or * {@link Servant} (POA-bases ties). ! * * @throws RemoteException if the target is already connected to another ORB. */ public void connect(Remote a_target, Remote a_source) *************** public class PortableRemoteObjectDelegat *** 196,208 **** /** * Narrow the given object to the instance of the given class. The currently * supported narrowing types are: ! * * 1. Simple widening conversion.
          * 2. ObjectImpl -> RMI interface.
          * 3. ObjectImpl -> ObjectImpl.
          * 4. Tie -> Remote (implementation)
          * 5. Remote (implementation) -> Tie.
          ! * * The narrowing has sense only for derived classes. */ public Object narrow(Object narrowFrom, Class narrowTo) --- 196,208 ---- /** * Narrow the given object to the instance of the given class. The currently * supported narrowing types are: ! * * 1. Simple widening conversion.
          * 2. ObjectImpl -> RMI interface.
          * 3. ObjectImpl -> ObjectImpl.
          * 4. Tie -> Remote (implementation)
          * 5. Remote (implementation) -> Tie.
          ! * * The narrowing has sense only for derived classes. */ public Object narrow(Object narrowFrom, Class narrowTo) *************** public class PortableRemoteObjectDelegat *** 278,284 **** return narrowed; } ! /** * Get the Stub class name for the name, representing the given interface. */ --- 278,284 ---- return narrowed; } ! /** * Get the Stub class name for the name, representing the given interface. */ *************** public class PortableRemoteObjectDelegat *** 295,301 **** + interf.substring(p + 1) + "_Stub"; return stubClassName; } ! /** * Get stub for the given implementation, searching by class name pattern. The * found stub must implement Remote for this method to succeed. --- 295,301 ---- + interf.substring(p + 1) + "_Stub"; return stubClassName; } ! /** * Get stub for the given implementation, searching by class name pattern. The * found stub must implement Remote for this method to succeed. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java Tue Jan 11 19:46:05 2011 *************** *** 1,6 **** /* RmiUtilities.java -- Copyright (C) 2005 Free Software Foundation, Inc. ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,6 ---- /* RmiUtilities.java -- Copyright (C) 2005 Free Software Foundation, Inc. ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** import javax.rmi.CORBA.Util; *** 87,93 **** /** * Defines methods that must be accessible in several derived classes. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class RmiUtilities --- 87,93 ---- /** * Defines methods that must be accessible in several derived classes. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class RmiUtilities *************** public class RmiUtilities *** 538,544 **** * Write data to the CORBA output stream. Writes the object contents only; the * header must be already written. For object, containing objects, may be * called recursively. ! * * @param an_output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param object an object to write. --- 538,544 ---- * Write data to the CORBA output stream. Writes the object contents only; the * header must be already written. For object, containing objects, may be * called recursively. ! * * @param an_output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param object an object to write. *************** public class RmiUtilities *** 567,573 **** * Write data to the CORBA output stream. Writes the object contents only; the * header must be already written. For object, containing objects, may be * called recursively. ! * * @param an_output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param object an object to write. --- 567,573 ---- * Write data to the CORBA output stream. Writes the object contents only; the * header must be already written. For object, containing objects, may be * called recursively. ! * * @param an_output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param object an object to write. *************** public class RmiUtilities *** 679,685 **** * Read data from the CDR input stream. Reads the object contents only; the * header must be already read (the repository id or ids ara passed). For * object, containing objects, may be called recursively. ! * * @param an_input the stream to read from, must be * org.omg.CORBA_2_3.portable.InputStream * @param object the instance of the object being read. --- 679,685 ---- * Read data from the CDR input stream. Reads the object contents only; the * header must be already read (the repository id or ids ara passed). For * object, containing objects, may be called recursively. ! * * @param an_input the stream to read from, must be * org.omg.CORBA_2_3.portable.InputStream * @param object the instance of the object being read. *************** public class RmiUtilities *** 689,695 **** * were specified. * @param codebase the codebase, if it was included in the header of the value * type. Null if not codebase was included. ! * * @return the object, extracted from the stream. */ /** --- 689,695 ---- * were specified. * @param codebase the codebase, if it was included in the header of the value * type. Null if not codebase was included. ! * * @return the object, extracted from the stream. */ /** *************** public class RmiUtilities *** 760,766 **** if (object == null) object = instantiate(offset, clz, g); ! // The sentence below prevents attempt to read the internal fields of the // ObjectImpl (or RMI Stub) that might follow the object definition. // Sun's jre 1.5 does not write this information. The stubs, generated --- 760,766 ---- if (object == null) object = instantiate(offset, clz, g); ! // The sentence below prevents attempt to read the internal fields of the // ObjectImpl (or RMI Stub) that might follow the object definition. // Sun's jre 1.5 does not write this information. The stubs, generated diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/StubDelegateImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/StubDelegateImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/StubDelegateImpl.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/StubDelegateImpl.java Tue Jan 11 19:46:05 2011 *************** import org.omg.PortableServer.POAManager *** 66,72 **** /** * The default stub delegate. ! * * @author Wu Gansha (gansha.wu@intel.com) (stub) * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) (implementation) */ --- 66,72 ---- /** * The default stub delegate. ! * * @author Wu Gansha (gansha.wu@intel.com) (stub) * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) (implementation) */ *************** public class StubDelegateImpl *** 90,102 **** * obtained CORBA object can be narrowed into stub using * {@link PortableRemoteObject#narrow}. *

          ! * * @param orb the ORB where the Stub must be connected. ! * * @throws RemoteException if the stub is already connected to some other ORB. * If the stub is already connected to the ORB that was passed as parameter, * the method returns without action. ! * * @throws BAD_PARAM if the name of this stub does not match the stub name * pattern, "_*_Stub" or if the Tie class, "_*Impl_Tie", does not exists or an * instance of this class cannot be instantiated. --- 90,102 ---- * obtained CORBA object can be narrowed into stub using * {@link PortableRemoteObject#narrow}. *

          ! * * @param orb the ORB where the Stub must be connected. ! * * @throws RemoteException if the stub is already connected to some other ORB. * If the stub is already connected to the ORB that was passed as parameter, * the method returns without action. ! * * @throws BAD_PARAM if the name of this stub does not match the stub name * pattern, "_*_Stub" or if the Tie class, "_*Impl_Tie", does not exists or an * instance of this class cannot be instantiated. *************** public class StubDelegateImpl *** 237,243 **** /** * Returns the IOR reference of the connected ORB. ! * * @see ORB#object_to_string(org.omg.CORBA.Object); */ public String toString(Stub self) --- 237,243 ---- /** * Returns the IOR reference of the connected ORB. ! * * @see ORB#object_to_string(org.omg.CORBA.Object); */ public String toString(Stub self) *************** public class StubDelegateImpl *** 254,260 **** /** * This should never be called. The ORB must be supplied. ! * * @see #connect */ public void readObject(Stub self, ObjectInputStream input) --- 254,260 ---- /** * This should never be called. The ORB must be supplied. ! * * @see #connect */ public void readObject(Stub self, ObjectInputStream input) *************** public class StubDelegateImpl *** 307,310 **** output.writeObject(out.buffer.toByteArray()); } ! } \ No newline at end of file --- 307,310 ---- output.writeObject(out.buffer.toByteArray()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/TieTargetRecord.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/TieTargetRecord.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/TieTargetRecord.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/TieTargetRecord.java Tue Jan 11 19:46:05 2011 *************** import javax.rmi.CORBA.Tie; *** 44,50 **** /** * Represents a Tie, connected to possibly multiple invocation targets. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class TieTargetRecord --- 44,50 ---- /** * Represents a Tie, connected to possibly multiple invocation targets. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class TieTargetRecord diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java Tue Jan 11 19:46:05 2011 *************** import javax.transaction.TransactionRoll *** 95,101 **** /** * The implementation of UtilDelegate. ! * * @author Wu Gansha (gansha.wu@intel.com) (stub) * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) (implementation) */ --- 95,101 ---- /** * The implementation of UtilDelegate. ! * * @author Wu Gansha (gansha.wu@intel.com) (stub) * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) (implementation) */ *************** public class UtilDelegateImpl *** 191,197 **** * pair has not been previously registered using {@link #registerTarget}, * this method tries to locate a tie class by the name pattern. If this * succeeds, the tie-target pair is also registered. ! * * @return the Tie. */ public Tie getTie(Remote target) --- 191,197 ---- * pair has not been previously registered using {@link #registerTarget}, * this method tries to locate a tie class by the name pattern. If this * succeeds, the tie-target pair is also registered. ! * * @return the Tie. */ public Tie getTie(Remote target) *************** public class UtilDelegateImpl *** 331,337 **** /** * Checks if the given stub is local. ! * * @param stub a stub to check. * @return true if the stub is local, false otherwise. */ --- 331,337 ---- /** * Checks if the given stub is local. ! * * @param stub a stub to check. * @return true if the stub is local, false otherwise. */ *************** public class UtilDelegateImpl *** 354,360 **** * Load the class. The method uses class loaders from the call stact first. If * this fails, the further behaviour depends on the System Property * "java.rmi.server.useCodebaseOnly" with default value "false". ! * *
            *
          • Try the current thread context class loader first.
          • *
          • If remoteCodebase is non-null and useCodebaseOnly is "false" then call --- 354,360 ---- * Load the class. The method uses class loaders from the call stact first. If * this fails, the further behaviour depends on the System Property * "java.rmi.server.useCodebaseOnly" with default value "false". ! * *
              *
            • Try the current thread context class loader first.
            • *
            • If remoteCodebase is non-null and useCodebaseOnly is "false" then call *************** public class UtilDelegateImpl *** 364,375 **** *
            • If a class is still not successfully loaded and the loader != null * then try Class.forName(className, false, loader).
            • *
            ! * * @param className the name of the class. * @param remoteCodebase the codebase. * @param loader the class loader. * @return the loaded class. ! * * @throws ClassNotFoundException of the class cannot be loaded. */ public Class loadClass(String className, String remoteCodebase, --- 364,375 ---- *
          • If a class is still not successfully loaded and the loader != null * then try Class.forName(className, false, loader).
          • *
          ! * * @param className the name of the class. * @param remoteCodebase the codebase. * @param loader the class loader. * @return the loaded class. ! * * @throws ClassNotFoundException of the class cannot be loaded. */ public Class loadClass(String className, String remoteCodebase, *************** public class UtilDelegateImpl *** 574,587 **** *

      * *
      Node type
      ! * ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, * DOCUMENT_FRAGMENT_NODEconcatenation of the textContent ! * attribute value of every child node, excluding COMMENT_NODE and ! * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the * node has no children.
      TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, * PROCESSING_INSTRUCTION_NODEnodeValue
      DOCUMENT_NODE, * DOCUMENT_TYPE_NODE, NOTATION_NODEnull
      ! * ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, * DOCUMENT_FRAGMENT_NODEconcatenation of the textContent ! * attribute value of every child node, excluding COMMENT_NODE and ! * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the * node has no children.
      TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, * PROCESSING_INSTRUCTION_NODEnodeValue
      DOCUMENT_NODE, * DOCUMENT_TYPE_NODE, NOTATION_NODEnull
      {@link UnexpectedException}
      ! * * @param ex an exception that was thrown on a server side implementation. ! * * @return the corresponding RemoteException unless it is a RuntimeException. ! * * @throws RuntimeException the passed exception if it is an instance of * RuntimeException. ! * * @specnote It is the same behavior, as in Suns implementations 1.4.0-1.5.0. */ public RemoteException wrapException(Throwable ex) --- 574,587 ---- * {@link UnexpectedException} * * ! * * @param ex an exception that was thrown on a server side implementation. ! * * @return the corresponding RemoteException unless it is a RuntimeException. ! * * @throws RuntimeException the passed exception if it is an instance of * RuntimeException. ! * * @specnote It is the same behavior, as in Suns implementations 1.4.0-1.5.0. */ public RemoteException wrapException(Throwable ex) *************** public class UtilDelegateImpl *** 607,616 **** * {@link #writeRemoteObject}. The written data contains discriminator, * defining, that was written. Another method that writes the same content is * {@link org.omg.CORBA_2_3.portable.OutputStream#write_abstract_interface(java.lang.Object)}. ! * * @param output a stream to write to, must be * {@link org.omg.CORBA_2_3.portable.OutputStream}. ! * * @param object an object to write, must be CORBA object, Remote */ public void writeAbstractObject(OutputStream output, Object object) --- 607,616 ---- * {@link #writeRemoteObject}. The written data contains discriminator, * defining, that was written. Another method that writes the same content is * {@link org.omg.CORBA_2_3.portable.OutputStream#write_abstract_interface(java.lang.Object)}. ! * * @param output a stream to write to, must be * {@link org.omg.CORBA_2_3.portable.OutputStream}. ! * * @param object an object to write, must be CORBA object, Remote */ public void writeAbstractObject(OutputStream output, Object object) *************** public class UtilDelegateImpl *** 627,633 **** * method writes CORBA object, value type or value box. For value types Null * is written with the abstract interface, its typecode having repository id * "IDL:omg.org/CORBA/AbstractBase:1.0" and the empty string name. ! * * @param output the object to write. * @param object the java object that must be written in the form of the CORBA * {@link Any}. --- 627,633 ---- * method writes CORBA object, value type or value box. For value types Null * is written with the abstract interface, its typecode having repository id * "IDL:omg.org/CORBA/AbstractBase:1.0" and the empty string name. ! * * @param output the object to write. * @param object the java object that must be written in the form of the CORBA * {@link Any}. *************** public class UtilDelegateImpl *** 715,721 **** * possible. This method is used in write_value(..) method group in * {@link org.omg.CORBA_2_3.portable.OutputStream} and also may be called * directly from generated Stubs and Ties. ! * * @param output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param object an object to write. --- 715,721 ---- * possible. This method is used in write_value(..) method group in * {@link org.omg.CORBA_2_3.portable.OutputStream} and also may be called * directly from generated Stubs and Ties. ! * * @param output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param object an object to write. *************** public class UtilDelegateImpl *** 741,744 **** writeFields(an_output, (Serializable) object); } ! } \ No newline at end of file --- 741,744 ---- writeFields(an_output, (Serializable) object); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java *** gcc-4.5.2/libjava/classpath/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java Tue Jan 11 19:46:05 2011 *************** import javax.rmi.CORBA.ValueHandlerMulti *** 56,72 **** /** * Implementation of the ValueHandler. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) (implementation) */ public class ValueHandlerDelegateImpl extends RmiUtilities implements ValueHandler, ValueHandlerMultiFormat { ! /** * Return the maximal supported stream format version. We currently * support the version 1. ! * * TODO Support the version 2. */ public byte getMaximumStreamFormatVersion() --- 56,72 ---- /** * Implementation of the ValueHandler. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) (implementation) */ public class ValueHandlerDelegateImpl extends RmiUtilities implements ValueHandler, ValueHandlerMultiFormat { ! /** * Return the maximal supported stream format version. We currently * support the version 1. ! * * TODO Support the version 2. */ public byte getMaximumStreamFormatVersion() *************** public class ValueHandlerDelegateImpl *** 81,94 **** { if (version!=1) throw new BAD_PARAM("Unsupported stream format version "+version); ! else writeValue(output, value); } /** * This implementation associates RunTime with stream rather than with the * value handler and this method is not used in the implementation. It is ! * implemented just for the sake of compatibility. */ public RunTime getRunTimeCodeBase() { --- 81,94 ---- { if (version!=1) throw new BAD_PARAM("Unsupported stream format version "+version); ! else writeValue(output, value); } /** * This implementation associates RunTime with stream rather than with the * value handler and this method is not used in the implementation. It is ! * implemented just for the sake of compatibility. */ public RunTime getRunTimeCodeBase() { *************** public class ValueHandlerDelegateImpl *** 160,163 **** ObjectStreamClass osc = ObjectStreamClass.lookup(cx); return osc.getSerialVersionUID(); } ! } \ No newline at end of file --- 160,163 ---- ObjectStreamClass osc = ObjectStreamClass.lookup(cx); return osc.getSerialVersionUID(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AWTCallbackHandler.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AWTCallbackHandler.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AbstractCallbackHandler.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* AbstractCallbackHandler.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public abstract class AbstractCallbackHa *** 86,92 **** /** * Create an instance of CallbackHandler of the designated * type from the first Security Provider which offers it. ! * * @param type the type of callback handler to create. * @return a newly created instance of ClassbackHandler. * @throws NoSuchAlgorithmException if no security provider is found to offer --- 86,92 ---- /** * Create an instance of CallbackHandler of the designated * type from the first Security Provider which offers it. ! * * @param type the type of callback handler to create. * @return a newly created instance of ClassbackHandler. * @throws NoSuchAlgorithmException if no security provider is found to offer *************** public abstract class AbstractCallbackHa *** 115,121 **** /** * Create an instance of CallbackHandler of the designated * type from the named security provider. ! * * @param type the type of callback handler to create. * @param provider a named security provider to use. * @return a newly created instance of ClassbackHandler. --- 115,121 ---- /** * Create an instance of CallbackHandler of the designated * type from the named security provider. ! * * @param type the type of callback handler to create. * @param provider a named security provider to use. * @return a newly created instance of ClassbackHandler. *************** public abstract class AbstractCallbackHa *** 140,146 **** /** * Create an instance of CallbackHandler of the designated * type from the designated security provider. ! * * @param type the type of callback handler to create. * @param provider a security provider to use. * @return a newly created instance of ClassbackHandler. --- 140,146 ---- /** * Create an instance of CallbackHandler of the designated * type from the designated security provider. ! * * @param type the type of callback handler to create. * @param provider a security provider to use. * @return a newly created instance of ClassbackHandler. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/CertificateCallback.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/CertificateCallback.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/CertificateCallback.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/CertificateCallback.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CertificateCallback.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CertificateCallback.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class CertificateCallback extends *** 55,61 **** { static final long serialVersionUID = 8343869651419225634L; public final Certificate certificate; ! public CertificateCallback(Certificate cert, String prompt) { super(prompt, ERROR, YES_NO_OPTION, NO); --- 55,61 ---- { static final long serialVersionUID = 8343869651419225634L; public final Certificate certificate; ! public CertificateCallback(Certificate cert, String prompt) { super(prompt, ERROR, YES_NO_OPTION, NO); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ConsoleCallbackHandler.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* ConsoleCallbackHandler.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/DefaultCallbackHandler.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/DefaultCallbackHandler.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/DefaultCallbackHandler.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/DefaultCallbackHandler.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DefaultCallbackHandler.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* DefaultCallbackHandler.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/SwingCallbackHandler.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/SwingCallbackHandler.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/callback/SwingCallbackHandler.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/callback/SwingCallbackHandler.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SwingCallbackHandler.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* SwingCallbackHandler.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. *************** public class SwingCallbackHandler extend *** 455,461 **** GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets (10, 10, 15, 5), 0, 0)); ! final JTextArea text = new JTextArea (24, 80); text.setEditable (true); String _text; --- 455,461 ---- GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets (10, 10, 15, 5), 0, 0)); ! final JTextArea text = new JTextArea (24, 80); text.setEditable (true); String _text; *************** public class SwingCallbackHandler extend *** 584,587 **** } dialog.dispose (); } ! } \ No newline at end of file --- 584,587 ---- } dialog.dispose (); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/login/ConfigFileParser.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/login/ConfigFileParser.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/login/ConfigFileParser.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/login/ConfigFileParser.java Tue Jan 11 19:46:05 2011 *************** import javax.security.auth.login.AppConf *** 81,87 **** * *

      In the above context, a JAVA_IDENTIFIER is a sequence of tokens, * separated by the character '.'. Each of these tokens obeys the following:

      ! * *
        *
      1. its first character yields true when used as an input to * the {@link java.lang.Character#isJavaIdentifierStart(char)}, and
      2. --- 81,87 ---- * *

        In the above context, a JAVA_IDENTIFIER is a sequence of tokens, * separated by the character '.'. Each of these tokens obeys the following:

        ! * *
          *
        1. its first character yields true when used as an input to * the {@link java.lang.Character#isJavaIdentifierStart(char)}, and
        2. *************** public final class ConfigFileParser *** 183,189 **** /** * @return true if a LOGIN_MODULE_ENTRY was correctly parsed. ! * Returns false otherwise. * @throws IOException if an exception occurs while parsing the input. */ private boolean parseACE(List listOfACEs) throws IOException --- 183,189 ---- /** * @return true if a LOGIN_MODULE_ENTRY was correctly parsed. ! * Returns false otherwise. * @throws IOException if an exception occurs while parsing the input. */ private boolean parseACE(List listOfACEs) throws IOException *************** public final class ConfigFileParser *** 278,284 **** // we dont check the rest of the characters for isJavaIdentifierPart() // because that's what the tokenizer does. } ! return cn; } --- 278,284 ---- // we dont check the rest of the characters for isJavaIdentifierPart() // because that's what the tokenizer does. } ! return cn; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java Tue Jan 11 19:46:05 2011 *************** import java.util.logging.Logger; *** 52,58 **** * the deault syntax. This class emulates, to a certain extent, the behavior of * a {@link java.io.StreamTokenizer} instance st, when set as * follows: ! * *
             *  st.resetSyntax();
             *  st.lowerCaseMode(false);
          --- 52,58 ----
             * the deault syntax. This class emulates, to a certain extent, the behavior of
             * a {@link java.io.StreamTokenizer} instance st, when set as
             * follows:
          !  *
             *  
             *  st.resetSyntax();
             *  st.lowerCaseMode(false);
          *************** import java.util.logging.Logger;
          *** 77,83 ****
             * 

          The most important (negative) difference with a * {@link java.io.StreamTokenizer} is that this tokenizer does not properly * handle C++ and Java // style comments in the middle of the line. It only ! * ignores them if/when found at the start of the line.

          */ public class ConfigFileTokenizer { --- 77,83 ---- *

          The most important (negative) difference with a * {@link java.io.StreamTokenizer} is that this tokenizer does not properly * handle C++ and Java // style comments in the middle of the line. It only ! * ignores them if/when found at the start of the line.

          */ public class ConfigFileTokenizer { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/login/GnuConfiguration.java gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/login/GnuConfiguration.java *** gcc-4.5.2/libjava/classpath/gnu/javax/security/auth/login/GnuConfiguration.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/security/auth/login/GnuConfiguration.java Tue Jan 11 19:46:05 2011 *************** import javax.security.auth.login.Configu *** 61,67 **** * Login Configuration files written in the default syntax described in * the publicly available documentation of that class. A more formal definition * of this syntax is as follows: ! * *
             *   CONFIG              ::= APP_OR_OTHER_ENTRY+
             *   APP_OR_OTHER_ENTRY  ::= APP_NAME_OR_OTHER JAAS_CONFIG_BLOCK
          --- 61,67 ----
             * Login Configuration files written in the default syntax described in
             * the publicly available documentation of that class. A more formal definition
             * of this syntax is as follows:
          !  *
             * 
             *   CONFIG              ::= APP_OR_OTHER_ENTRY+
             *   APP_OR_OTHER_ENTRY  ::= APP_NAME_OR_OTHER JAAS_CONFIG_BLOCK
          *************** import javax.security.auth.login.Configu
          *** 80,91 ****
             *   PARAM_NAME   ::= STRING
             *   PARAM_VALUE  ::= '"' STRING '"' | ''' STRING ''' | STRING
             * 
          ! * *

          This implementation will specifically attempt to process one or more * Login Configuration files in the following locations, and when found parse * them and merge their contents. The locations, and the order in which they are * investigated, follows:

          ! * *
            *
          1. If the following Security properties: * java.security.auth.login.config.url.N, where N --- 80,91 ---- * PARAM_NAME ::= STRING * PARAM_VALUE ::= '"' STRING '"' | ''' STRING ''' | STRING *
          ! * *

          This implementation will specifically attempt to process one or more * Login Configuration files in the following locations, and when found parse * them and merge their contents. The locations, and the order in which they are * investigated, follows:

          ! * *
            *
          1. If the following Security properties: * java.security.auth.login.config.url.N, where N *************** import javax.security.auth.login.Configu *** 99,105 **** *
          2. The GNU Classpath security file, named classpath.security, * where all Security properties are encoded, is usually located in * /usr/local/classpath/lib/security folder.
          3. ! * *
          4. The numbers used in the properties * java.security.auth.login.config.url.N MUST be sequential, * with no breaks in-between.
          5. --- 99,105 ---- *
          6. The GNU Classpath security file, named classpath.security, * where all Security properties are encoded, is usually located in * /usr/local/classpath/lib/security folder.
          7. ! * *
          8. The numbers used in the properties * java.security.auth.login.config.url.N MUST be sequential, * with no breaks in-between.
          9. *************** import javax.security.auth.login.Configu *** 120,126 **** * (in that order) is found in the location referenced by the value of the * System property user.home, then that file is parsed as a JAAS Login * Configuration written in the default syntax. ! * *
          10. If none of the above resulted in a correctly parsed JAAS Login * Configuration file, then this implementation will install a Null * Configuration which basically does not recognize any Application.
          11. --- 120,126 ---- * (in that order) is found in the location referenced by the value of the * System property user.home, then that file is parsed as a JAAS Login * Configuration written in the default syntax. ! * *
          12. If none of the above resulted in a correctly parsed JAAS Login * Configuration file, then this implementation will install a Null * Configuration which basically does not recognize any Application.
          13. *************** public final class GnuConfiguration exte *** 182,192 **** /** * Refreshes and reloads this Configuration. ! * *

            This method causes this Configuration object to refresh / * reload its contents following the locations and logic described above in * the class documentation section.

            ! * * @throws SecurityException if the caller does not have an * {@link AuthPermission} for the action named * refreshLoginConfiguration. --- 182,192 ---- /** * Refreshes and reloads this Configuration. ! * *

            This method causes this Configuration object to refresh / * reload its contents following the locations and logic described above in * the class documentation section.

            ! * * @throws SecurityException if the caller does not have an * {@link AuthPermission} for the action named * refreshLoginConfiguration. *************** public final class GnuConfiguration exte *** 237,243 **** * Attempts to locate and parse one or more JAAS Login Configuration files * defined as the values of the Security properties * java.security.auth.login.config.url.N. ! * * @return true if it succeeds, and false * otherwsie. */ --- 237,243 ---- * Attempts to locate and parse one or more JAAS Login Configuration files * defined as the values of the Security properties * java.security.auth.login.config.url.N. ! * * @return true if it succeeds, and false * otherwsie. */ *************** public final class GnuConfiguration exte *** 279,285 **** * {@link MalformedURLException} occurs, this method then tries to open that * string as a {@link File} (with the same name). If it succeeds, an * {@link InputStream} is constructed and returned. ! * * @param s * the designated name of either a {@link URL} or a {@link File} * assumed to contain a JAAS Login Configuration in the default --- 279,285 ---- * {@link MalformedURLException} occurs, this method then tries to open that * string as a {@link File} (with the same name). If it succeeds, an * {@link InputStream} is constructed and returned. ! * * @param s * the designated name of either a {@link URL} or a {@link File} * assumed to contain a JAAS Login Configuration in the default *************** public final class GnuConfiguration exte *** 308,314 **** /** * Attempts to locate and parse a JAAS Login Configuration file defined as the * value of the System property java.security.auth.login.config. ! * * @return true if it succeeds, and false * otherwsie. */ --- 308,314 ---- /** * Attempts to locate and parse a JAAS Login Configuration file defined as the * value of the System property java.security.auth.login.config. ! * * @return true if it succeeds, and false * otherwsie. */ *************** public final class GnuConfiguration exte *** 343,349 **** * as .java.login.config or java.login.config (without the * leading dot) in the folder referenced by the System property * user.home. ! * * @return true if it succeeds, and false * otherwsie. */ --- 343,349 ---- * as .java.login.config or java.login.config (without the * leading dot) in the folder referenced by the System property * user.home. ! * * @return true if it succeeds, and false * otherwsie. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* AudioSecurityManager.java -- Manages Security requests for Sound classes. ! Copyright (C) 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* AudioSecurityManager.java -- Manages Security requests for Sound classes. ! Copyright (C) 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.sound.sampled.AudioPermissi *** 42,51 **** /** * This class handles security requests for classes in the Sound API. ! * * A class that needs to check against a particular permission type may use this * class to query the SecurityManager. ! * * For example, to check for a read permission, a class can simply pass the * Permission.READ constant to * {@link #checkPermissions(gnu.javax.sound.AudioSecurityManager.Permission))}, --- 42,51 ---- /** * This class handles security requests for classes in the Sound API. ! * * A class that needs to check against a particular permission type may use this * class to query the SecurityManager. ! * * For example, to check for a read permission, a class can simply pass the * Permission.READ constant to * {@link #checkPermissions(gnu.javax.sound.AudioSecurityManager.Permission))}, *************** import javax.sound.sampled.AudioPermissi *** 54,64 **** *
               * AudioSecurityManager.checkPermissions(Permission.PLAY);
               * 
            ! * * If there is need to query for all the defined permissions type, the constant * Permission.ALL can be used. In alternative, the ! * {@link #checkPermissions()} is presented as a shorthand. ! * * @author Mario Torre */ public class AudioSecurityManager --- 54,64 ---- *
               * AudioSecurityManager.checkPermissions(Permission.PLAY);
               * 
            ! * * If there is need to query for all the defined permissions type, the constant * Permission.ALL can be used. In alternative, the ! * {@link #checkPermissions()} is presented as a shorthand. ! * * @author Mario Torre */ public class AudioSecurityManager *************** public class AudioSecurityManager *** 70,88 **** { PLAY, RECORD, ALL } ! /** ! * Shorthand to checkPermissions(Permission.ALL). */ public static final void checkPermissions() { checkPermissions(Permission.ALL); } ! /** ! * Query the SecurityManager agains the given * Permission. ! * * @param permission */ public static final void checkPermissions(Permission permission) --- 70,88 ---- { PLAY, RECORD, ALL } ! /** ! * Shorthand to checkPermissions(Permission.ALL). */ public static final void checkPermissions() { checkPermissions(Permission.ALL); } ! /** ! * Query the SecurityManager agains the given * Permission. ! * * @param permission */ public static final void checkPermissions(Permission permission) *************** public class AudioSecurityManager *** 96,111 **** case PLAY: perm = "play"; break; ! case RECORD: perm = "record"; break; ! case ALL: default: perm = "*"; break; } ! sm.checkPermission(new AudioPermission(perm)); } } --- 96,111 ---- case PLAY: perm = "play"; break; ! case RECORD: perm = "record"; break; ! case ALL: default: perm = "*"; break; } ! sm.checkPermission(new AudioPermission(perm)); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java Tue Jan 11 19:46:05 2011 *************** import gnu.javax.sound.midi.alsa.AlsaMid *** 45,62 **** /** * ALSA MIDI In Port. ! * * @author Anthony Green (green@redhat.com) * */ public class AlsaInputPortDevice extends AlsaPortDevice ! { AlsaInputPortDevice (AlsaPortInfo info) { super(info); } ! /* (non-Javadoc) * @see javax.sound.midi.MidiDevice#open() */ --- 45,62 ---- /** * ALSA MIDI In Port. ! * * @author Anthony Green (green@redhat.com) * */ public class AlsaInputPortDevice extends AlsaPortDevice ! { AlsaInputPortDevice (AlsaPortInfo info) { super(info); } ! /* (non-Javadoc) * @see javax.sound.midi.MidiDevice#open() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.spi.MidiDevicePr *** 46,52 **** /** * Provide ALSA MIDI devices. ! * * @author Anthony Green (green@redhat.com) * */ --- 46,52 ---- /** * Provide ALSA MIDI devices. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class AlsaMidiDeviceProvider exte *** 54,60 **** { /** * Abstract base for ALSA specific MIDI device info. ! * * @author Anthony Green (green@redhat.com) * */ --- 54,60 ---- { /** * Abstract base for ALSA specific MIDI device info. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class AlsaMidiDeviceProvider exte *** 62,68 **** { /** * Create an ALSA specific MIDI device info object. ! * * @param name the device name * @param description the device description */ --- 62,68 ---- { /** * Create an ALSA specific MIDI device info object. ! * * @param name the device name * @param description the device description */ *************** public class AlsaMidiDeviceProvider exte *** 70,82 **** { super(name, "Alsa", description, "0.0"); } ! abstract MidiDevice getDevice (); ! } /** * ALSA MIDI Port. ! * * @author Anthony Green (green@redhat.com) * */ --- 70,82 ---- { super(name, "Alsa", description, "0.0"); } ! abstract MidiDevice getDevice (); ! } /** * ALSA MIDI Port. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class AlsaMidiDeviceProvider exte *** 84,93 **** { long client; long port; ! /** * Create ALSA MIDI In Port. ! * * @param name the device name * @param description the device description * @param client the client ID --- 84,93 ---- { long client; long port; ! /** * Create ALSA MIDI In Port. ! * * @param name the device name * @param description the device description * @param client the client ID *************** public class AlsaMidiDeviceProvider exte *** 99,109 **** this.client = client; this.port = port; } ! } ! /** * ALSA Sequencer specific info. ! * * @author Anthony Green (green@redhat.com) * */ --- 99,109 ---- this.client = client; this.port = port; } ! } ! /** * ALSA Sequencer specific info. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class AlsaMidiDeviceProvider exte *** 113,128 **** { super(name, description); } ! MidiDevice getDevice() { return AlsaMidiSequencerDevice.getInstance(); } } ! /** * ALSA MIDI In Port. ! * * @author Anthony Green (green@redhat.com) * */ --- 113,128 ---- { super(name, description); } ! MidiDevice getDevice() { return AlsaMidiSequencerDevice.getInstance(); } } ! /** * ALSA MIDI In Port. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class AlsaMidiDeviceProvider exte *** 132,138 **** { super(name, description, client, port); } ! MidiDevice getDevice() { return new AlsaInputPortDevice(this); --- 132,138 ---- { super(name, description, client, port); } ! MidiDevice getDevice() { return new AlsaInputPortDevice(this); *************** public class AlsaMidiDeviceProvider exte *** 141,147 **** /** * ALSA MIDI Out Port. ! * * @author Anthony Green (green@redhat.com) * */ --- 141,147 ---- /** * ALSA MIDI Out Port. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class AlsaMidiDeviceProvider exte *** 151,196 **** { super(name, description, client, port); } ! MidiDevice getDevice() { return new AlsaOutputPortDevice(this); } } ! private static AlsaInfo[] infos; ! private static native AlsaInfo[] getInputDeviceInfo_(); private static native AlsaInfo[] getOutputDeviceInfo_(); ! /** * Initialize the ALSA system */ private static native void init_(); ! static ! { if (Configuration.INIT_LOAD_LIBRARY) { System.loadLibrary("gjsmalsa"); ! } ! init_(); ! AlsaInfo inputs[] = getInputDeviceInfo_(); AlsaInfo outputs[] = getOutputDeviceInfo_(); ! infos = new AlsaInfo[inputs.length + outputs.length + 1]; infos[0] = new AlsaSequencerInfo ("/dev/snd/seq", "ALSA Sequencer"); System.arraycopy(inputs, 0, infos, 1, inputs.length); System.arraycopy(outputs, 0, infos, 1 + inputs.length, outputs.length); } ! public AlsaMidiDeviceProvider() { // Nothing. } ! /* (non-Javadoc) * @see javax.sound.midi.spi.MidiDeviceProvider#getDeviceInfo() */ --- 151,196 ---- { super(name, description, client, port); } ! MidiDevice getDevice() { return new AlsaOutputPortDevice(this); } } ! private static AlsaInfo[] infos; ! private static native AlsaInfo[] getInputDeviceInfo_(); private static native AlsaInfo[] getOutputDeviceInfo_(); ! /** * Initialize the ALSA system */ private static native void init_(); ! static ! { if (Configuration.INIT_LOAD_LIBRARY) { System.loadLibrary("gjsmalsa"); ! } ! init_(); ! AlsaInfo inputs[] = getInputDeviceInfo_(); AlsaInfo outputs[] = getOutputDeviceInfo_(); ! infos = new AlsaInfo[inputs.length + outputs.length + 1]; infos[0] = new AlsaSequencerInfo ("/dev/snd/seq", "ALSA Sequencer"); System.arraycopy(inputs, 0, infos, 1, inputs.length); System.arraycopy(outputs, 0, infos, 1 + inputs.length, outputs.length); } ! public AlsaMidiDeviceProvider() { // Nothing. } ! /* (non-Javadoc) * @see javax.sound.midi.spi.MidiDeviceProvider#getDeviceInfo() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.Transmitter; *** 53,59 **** /** * The ALSA MIDI sequencer device. This is a singleton device. ! * * @author green@redhat.com * */ --- 53,59 ---- /** * The ALSA MIDI sequencer device. This is a singleton device. ! * * @author green@redhat.com * */ *************** public class AlsaMidiSequencerDevice imp *** 61,76 **** { // The singleton instance. public final static AlsaMidiSequencerDevice instance = new AlsaMidiSequencerDevice(); ! // A pointer to a native chunk of memory private long nativeState; ! // The sequence to process private Sequence sequence; ! /** * A private constructor. There should only be one instance of this ! * device. */ private AlsaMidiSequencerDevice() { --- 61,76 ---- { // The singleton instance. public final static AlsaMidiSequencerDevice instance = new AlsaMidiSequencerDevice(); ! // A pointer to a native chunk of memory private long nativeState; ! // The sequence to process private Sequence sequence; ! /** * A private constructor. There should only be one instance of this ! * device. */ private AlsaMidiSequencerDevice() { *************** public class AlsaMidiSequencerDevice imp *** 79,92 **** /** * Return the sequencer singleton. ! * * @return the sequencer singleton */ public static AlsaMidiSequencerDevice getInstance() { return instance; } ! /* (non-Javadoc) * @see javax.sound.midi.Sequencer#setSequence(javax.sound.midi.Sequence) */ --- 79,92 ---- /** * Return the sequencer singleton. ! * * @return the sequencer singleton */ public static AlsaMidiSequencerDevice getInstance() { return instance; } ! /* (non-Javadoc) * @see javax.sound.midi.Sequencer#setSequence(javax.sound.midi.Sequence) */ *************** public class AlsaMidiSequencerDevice imp *** 438,460 **** // Check to see if we're open already. if (nativeState != 0) return; ! nativeState = open_(); } } /** * Allocate the native state object, and open the sequencer. ! * * @return a long representation of a pointer to the nativeState. */ private native long open_(); ! /** * Close the sequencer and free the native state object. */ private native void close_(long nativeState); ! /* (non-Javadoc) * @see javax.sound.midi.MidiDevice#close() */ --- 438,460 ---- // Check to see if we're open already. if (nativeState != 0) return; ! nativeState = open_(); } } /** * Allocate the native state object, and open the sequencer. ! * * @return a long representation of a pointer to the nativeState. */ private native long open_(); ! /** * Close the sequencer and free the native state object. */ private native void close_(long nativeState); ! /* (non-Javadoc) * @see javax.sound.midi.MidiDevice#close() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.Transmitter; *** 46,52 **** /** * ALSA MIDI Out Device ! * * @author Anthony Green (green@redhat.com) * */ --- 46,52 ---- /** * ALSA MIDI Out Device ! * * @author Anthony Green (green@redhat.com) * */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaPortDevice.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaPortDevice.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaPortDevice.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/alsa/AlsaPortDevice.java Tue Jan 11 19:46:05 2011 *************** import gnu.javax.sound.midi.alsa.AlsaMid *** 47,53 **** /** * ALSA Port Device ! * * @author Anthony Green (green@redhat.com) * */ --- 47,53 ---- /** * ALSA Port Device ! * * @author Anthony Green (green@redhat.com) * */ *************** public abstract class AlsaPortDevice imp *** 55,61 **** { /** * The ALSA Receiver class. ! * * @author Anthony Green (green@redhat.com) * */ --- 55,61 ---- { /** * The ALSA Receiver class. ! * * @author Anthony Green (green@redhat.com) * */ *************** public abstract class AlsaPortDevice imp *** 82,103 **** } AlsaMidiDeviceProvider.AlsaPortInfo info; ! public AlsaPortDevice (AlsaPortInfo info) { this.info = info; } ! public Info getDeviceInfo() { return info; } native void run_receiver_thread_ (long client, long port, Receiver receiver); ! /** * The ALSA Transmitter class. ! * * @author Anthony Green (green@redhat.com) * */ --- 82,103 ---- } AlsaMidiDeviceProvider.AlsaPortInfo info; ! public AlsaPortDevice (AlsaPortInfo info) { this.info = info; } ! public Info getDeviceInfo() { return info; } native void run_receiver_thread_ (long client, long port, Receiver receiver); ! /** * The ALSA Transmitter class. ! * * @author Anthony Green (green@redhat.com) * */ *************** public abstract class AlsaPortDevice imp *** 109,115 **** { run_receiver_thread_ (info.client, info.port, receiver); } ! /* (non-Javadoc) * @see javax.sound.midi.Transmitter#setReceiver(javax.sound.midi.Receiver) */ --- 109,115 ---- { run_receiver_thread_ (info.client, info.port, receiver); } ! /* (non-Javadoc) * @see javax.sound.midi.Transmitter#setReceiver(javax.sound.midi.Receiver) */ *************** public abstract class AlsaPortDevice imp *** 119,125 **** { this.receiver = receiver; } ! // Create the processing thread new Thread(this).start(); } --- 119,125 ---- { this.receiver = receiver; } ! // Create the processing thread new Thread(this).start(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.spi.MidiDevicePr *** 50,61 **** /** * A DSSI MIDI device provider. ! * ! * DSSI (pronounced "dizzy") is an API for audio plugins, with particular * application for software synthesis plugins with native user interfaces. ! * * Read about DSSI at http://dssi.sourceforge.net ! * * @author Anthony Green (green@redhat.com) * */ --- 50,61 ---- /** * A DSSI MIDI device provider. ! * ! * DSSI (pronounced "dizzy") is an API for audio plugins, with particular * application for software synthesis plugins with native user interfaces. ! * * Read about DSSI at http://dssi.sourceforge.net ! * * @author Anthony Green (green@redhat.com) * */ *************** public class DSSIMidiDeviceProvider exte *** 63,69 **** { /** * The MidiDevice.Info specialized for DSSI synthesizers. ! * * @author Anthony Green (green@redhat.com) * */ --- 63,69 ---- { /** * The MidiDevice.Info specialized for DSSI synthesizers. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class DSSIMidiDeviceProvider exte *** 71,77 **** { String soname; long index; ! public DSSIInfo(String name, String vendor, String description, String version, String soname, long index) { --- 71,77 ---- { String soname; long index; ! public DSSIInfo(String name, String vendor, String description, String version, String soname, long index) { *************** public class DSSIMidiDeviceProvider exte *** 88,100 **** static native String getDSSICopyright_(long handle); static native String getDSSIVendor_(long handle); static native String getDSSILabel_(long handle); ! private static List examineLibrary(String soname) { List list = new ArrayList(); long index = 0; long handle; ! long sohandle = dlopen_(soname); if (sohandle == 0) return list; --- 88,100 ---- static native String getDSSICopyright_(long handle); static native String getDSSIVendor_(long handle); static native String getDSSILabel_(long handle); ! private static List examineLibrary(String soname) { List list = new ArrayList(); long index = 0; long handle; ! long sohandle = dlopen_(soname); if (sohandle == 0) return list; *************** public class DSSIMidiDeviceProvider exte *** 107,125 **** String copyright = getDSSICopyright_(handle); String label = getDSSIName_(handle); String vendor = getDSSIVendor_(handle); ! list.add(new DSSIInfo(name, vendor, label, "DSSI-1", soname, index)); index++; } while (true); ! // Close the library and free memory dlclose_(sohandle); ! return list; } ! private static DSSIInfo[] infos; ! static { if (Configuration.INIT_LOAD_LIBRARY) --- 107,125 ---- String copyright = getDSSICopyright_(handle); String label = getDSSIName_(handle); String vendor = getDSSIVendor_(handle); ! list.add(new DSSIInfo(name, vendor, label, "DSSI-1", soname, index)); index++; } while (true); ! // Close the library and free memory dlclose_(sohandle); ! return list; } ! private static DSSIInfo[] infos; ! static { if (Configuration.INIT_LOAD_LIBRARY) *************** public class DSSIMidiDeviceProvider exte *** 131,149 **** public boolean accept(File dir, String n) { return n.endsWith(".so"); ! } }); List ilist = new ArrayList(); for (int i = 0; i < sofiles.length; i++) ilist.addAll(examineLibrary(new File(dssidir, sofiles[i]).getAbsolutePath())); infos = (DSSIInfo[]) ilist.toArray(new DSSIInfo[ilist.size()]); } ! public DSSIMidiDeviceProvider() { // Empty. } ! /* Return the Info array. * @see javax.sound.midi.spi.MidiDeviceProvider#getDeviceInfo() */ --- 131,149 ---- public boolean accept(File dir, String n) { return n.endsWith(".so"); ! } }); List ilist = new ArrayList(); for (int i = 0; i < sofiles.length; i++) ilist.addAll(examineLibrary(new File(dssidir, sofiles[i]).getAbsolutePath())); infos = (DSSIInfo[]) ilist.toArray(new DSSIInfo[ilist.size()]); } ! public DSSIMidiDeviceProvider() { // Empty. } ! /* Return the Info array. * @see javax.sound.midi.spi.MidiDeviceProvider#getDeviceInfo() */ *************** public class DSSIMidiDeviceProvider exte *** 162,168 **** if (info.equals(infos[i])) { return new DSSISynthesizer(infos[i], ! infos[i].soname, infos[i].index); } } --- 162,168 ---- if (info.equals(infos[i])) { return new DSSISynthesizer(infos[i], ! infos[i].soname, infos[i].index); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.VoiceStatus; *** 57,65 **** /** * DSSI soft-synth support. ! * * All DSSI soft-synths are expected to be installed in /usr/lib/dssi. ! * * @author Anthony Green (green@redhat.com) * */ --- 57,65 ---- /** * DSSI soft-synth support. ! * * All DSSI soft-synths are expected to be installed in /usr/lib/dssi. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class DSSISynthesizer implements *** 67,73 **** { /** * The DSSI Instrument class. ! * * @author Anthony Green (green@redhat.com) * */ --- 67,73 ---- { /** * The DSSI Instrument class. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class DSSISynthesizer implements *** 77,83 **** { super (soundbank, patch, name, null); } ! /* @see javax.sound.midi.SoundbankResource#getData() */ public Object getData() --- 77,83 ---- { super (soundbank, patch, name, null); } ! /* @see javax.sound.midi.SoundbankResource#getData() */ public Object getData() *************** public class DSSISynthesizer implements *** 89,95 **** /** * DSSISoundbank holds all instruments. ! * * @author Anthony Green (green@redhat.com) * */ --- 89,95 ---- /** * DSSISoundbank holds all instruments. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class DSSISynthesizer implements *** 101,107 **** private List resources = new ArrayList(); private String vendor; private String version; ! public DSSISoundbank(String name, String description, String vendor, String version) { this.name = name; --- 101,107 ---- private List resources = new ArrayList(); private String vendor; private String version; ! public DSSISoundbank(String name, String description, String vendor, String version) { this.name = name; *************** public class DSSISynthesizer implements *** 109,120 **** this.vendor = vendor; this.version = version; } ! void add(Instrument instrument) { instruments.add(instrument); } ! /* @see javax.sound.midi.Soundbank#getName() */ public String getName() --- 109,120 ---- this.vendor = vendor; this.version = version; } ! void add(Instrument instrument) { instruments.add(instrument); } ! /* @see javax.sound.midi.Soundbank#getName() */ public String getName() *************** public class DSSISynthesizer implements *** 164,177 **** public Instrument getInstrument(Patch patch) { Iterator itr = instruments.iterator(); ! while (itr.hasNext()) { Instrument i = (Instrument) itr.next(); if (i.getPatch().equals(patch)) return i; } ! return null; } } --- 164,177 ---- public Instrument getInstrument(Patch patch) { Iterator itr = instruments.iterator(); ! while (itr.hasNext()) { Instrument i = (Instrument) itr.next(); if (i.getPatch().equals(patch)) return i; } ! return null; } } *************** public class DSSISynthesizer implements *** 179,185 **** /** * The Receiver class receives all MIDI messages from a connected * Transmitter. ! * * @author Anthony Green (green@redhat.com) * */ --- 179,185 ---- /** * The Receiver class receives all MIDI messages from a connected * Transmitter. ! * * @author Anthony Green (green@redhat.com) * */ *************** public class DSSISynthesizer implements *** 194,206 **** if (message instanceof ShortMessage) { ShortMessage smessage = (ShortMessage) message; ! switch (message.getStatus()) { case ShortMessage.NOTE_ON: int velocity = smessage.getData2(); if (velocity > 0) ! channels[smessage.getChannel()].noteOn(smessage.getData1(), smessage.getData2()); else channels[smessage.getChannel()].noteOff(smessage.getData1()); --- 194,206 ---- if (message instanceof ShortMessage) { ShortMessage smessage = (ShortMessage) message; ! switch (message.getStatus()) { case ShortMessage.NOTE_ON: int velocity = smessage.getData2(); if (velocity > 0) ! channels[smessage.getChannel()].noteOn(smessage.getData1(), smessage.getData2()); else channels[smessage.getChannel()].noteOff(smessage.getData1()); *************** public class DSSISynthesizer implements *** 226,233 **** } ! static native void noteOn_(long handle, int channel, int noteNumber, int velocity); ! static native void noteOff_(long handle, int channel, int noteNumber, int velocity); static native void setPolyPressure_(long handle, int channel, int noteNumber, int pressure); static native int getPolyPressure_(long handle, int channel, int noteNumber); static native void controlChange_(long handle, int channel, int control, int value); --- 226,233 ---- } ! static native void noteOn_(long handle, int channel, int noteNumber, int velocity); ! static native void noteOff_(long handle, int channel, int noteNumber, int velocity); static native void setPolyPressure_(long handle, int channel, int noteNumber, int pressure); static native int getPolyPressure_(long handle, int channel, int noteNumber); static native void controlChange_(long handle, int channel, int control, int value); *************** public class DSSISynthesizer implements *** 237,243 **** static native int getProgramBank_(long handle, int index); static native int getProgramProgram_(long handle, int index); static native void selectProgram_(long handle, int bank, int program); ! /** * @author Anthony Green (green@redhat.com) * --- 237,243 ---- static native int getProgramBank_(long handle, int index); static native int getProgramProgram_(long handle, int index); static native void selectProgram_(long handle, int bank, int program); ! /** * @author Anthony Green (green@redhat.com) * *************** public class DSSISynthesizer implements *** 245,251 **** public class DSSIMidiChannel implements MidiChannel { int channel = 0; ! /** * Default contructor. */ --- 245,251 ---- public class DSSIMidiChannel implements MidiChannel { int channel = 0; ! /** * Default contructor. */ *************** public class DSSISynthesizer implements *** 484,501 **** } long sohandle; ! long handle; private Info info; ! MidiChannel channels[] = new MidiChannel[16]; ! // The list of known soundbanks, and the default one. List soundbanks = new ArrayList(); DSSISoundbank defaultSoundbank; ! /** * Create a DSSI Synthesizer. ! * * @param info the DSSIInfo for this soft-synth * @param soname the name of the .so file for this DSSI synth * @param index the DSSI index for this soft-synth --- 484,501 ---- } long sohandle; ! long handle; private Info info; ! MidiChannel channels[] = new MidiChannel[16]; ! // The list of known soundbanks, and the default one. List soundbanks = new ArrayList(); DSSISoundbank defaultSoundbank; ! /** * Create a DSSI Synthesizer. ! * * @param info the DSSIInfo for this soft-synth * @param soname the name of the .so file for this DSSI synth * @param index the DSSI index for this soft-synth *************** public class DSSISynthesizer implements *** 507,516 **** sohandle = DSSIMidiDeviceProvider.dlopen_(soname); handle = DSSIMidiDeviceProvider.getDSSIHandle_(sohandle, index); channels[0] = new DSSIMidiChannel(0); ! defaultSoundbank = new DSSISoundbank("name", "description", "vendor", "version"); soundbanks.add(defaultSoundbank); ! int i = 0; String name; do --- 507,516 ---- sohandle = DSSIMidiDeviceProvider.dlopen_(soname); handle = DSSIMidiDeviceProvider.getDSSIHandle_(sohandle, index); channels[0] = new DSSIMidiChannel(0); ! defaultSoundbank = new DSSISoundbank("name", "description", "vendor", "version"); soundbanks.add(defaultSoundbank); ! int i = 0; String name; do *************** public class DSSISynthesizer implements *** 519,525 **** if (name != null) { defaultSoundbank. ! add(new DSSIInstrument(defaultSoundbank, new Patch(getProgramBank_(sohandle, i), getProgramProgram_(sohandle, i)), name)); --- 519,525 ---- if (name != null) { defaultSoundbank. ! add(new DSSIInstrument(defaultSoundbank, new Patch(getProgramBank_(sohandle, i), getProgramProgram_(sohandle, i)), name)); *************** public class DSSISynthesizer implements *** 581,587 **** // be in any soundbank. if (instrument.getSoundbank() != defaultSoundbank) throw new IllegalArgumentException ("Synthesizer doesn't support this instrument's soundbank"); ! Patch patch = instrument.getPatch(); selectProgram_(sohandle, patch.getBank(), patch.getProgram()); return true; --- 581,587 ---- // be in any soundbank. if (instrument.getSoundbank() != defaultSoundbank) throw new IllegalArgumentException ("Synthesizer doesn't support this instrument's soundbank"); ! Patch patch = instrument.getPatch(); selectProgram_(sohandle, patch.getBank(), patch.getProgram()); return true; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package gnu.javax.sound.midi.file; /** ! * ExtendedMidiFileFormat is a package private class that simply * adds the number of MIDI tracks for the MidiFileFormat class. * * @author Anthony Green (green@redhat.com) --- 38,44 ---- package gnu.javax.sound.midi.file; /** ! * ExtendedMidiFileFormat is a package private class that simply * adds the number of MIDI tracks for the MidiFileFormat class. * * @author Anthony Green (green@redhat.com) *************** class ExtendedMidiFileFormat *** 47,63 **** extends javax.sound.midi.MidiFileFormat { private int ntracks; ! /** * Get the number of tracks for this MIDI file. ! * * @return the number of tracks for this MIDI file */ public int getNumberTracks() { return ntracks; } ! /** * Create an ExtendedMidiFileFormat object from the given parameters. * --- 47,63 ---- extends javax.sound.midi.MidiFileFormat { private int ntracks; ! /** * Get the number of tracks for this MIDI file. ! * * @return the number of tracks for this MIDI file */ public int getNumberTracks() { return ntracks; } ! /** * Create an ExtendedMidiFileFormat object from the given parameters. * *************** class ExtendedMidiFileFormat *** 68,74 **** * @param microseconds the MIDI file length in microseconds * @param ntracks the number of tracks */ ! public ExtendedMidiFileFormat(int type, float divisionType, int resolution, int bytes, long microseconds, int ntracks) { super(type, divisionType, resolution, bytes, microseconds); --- 68,74 ---- * @param microseconds the MIDI file length in microseconds * @param ntracks the number of tracks */ ! public ExtendedMidiFileFormat(int type, float divisionType, int resolution, int bytes, long microseconds, int ntracks) { super(type, divisionType, resolution, bytes, microseconds); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/MidiDataInputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/MidiDataInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/MidiDataInputStream.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/MidiDataInputStream.java Tue Jan 11 19:46:05 2011 *************** public class MidiDataInputStream *** 57,63 **** { super(is); } ! /** * Read an int encoded in the MIDI-style variable length * encoding format. --- 57,63 ---- { super(is); } ! /** * Read an int encoded in the MIDI-style variable length * encoding format. *************** public class MidiDataInputStream *** 68,74 **** throws IOException { int c, value = readByte(); ! if ((value & 0x80) != 0) { value &= 0x7F; --- 68,74 ---- throws IOException { int c, value = readByte(); ! if ((value & 0x80) != 0) { value &= 0x7F; *************** public class MidiDataInputStream *** 77,83 **** value = (value << 7) + ((c = readByte()) & 0x7F); } while ((c & 0x80) != 0); } ! ! return value; } } --- 77,83 ---- value = (value << 7) + ((c = readByte()) & 0x7F); } while ((c & 0x80) != 0); } ! ! return value; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/MidiDataOutputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/MidiDataOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/MidiDataOutputStream.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/MidiDataOutputStream.java Tue Jan 11 19:46:05 2011 *************** public class MidiDataOutputStream *** 71,114 **** while ((value >>= 7) != 0) { ! buffer <<= 8; ! buffer |= ((value & 0x7F) | 0x80); } ! while (true) { ! length++; ! if ((buffer & 0x80) != 0) ! buffer >>>= 8; ! else ! break; } return length; } ! /** * Write an int encoded in the MIDI-style variable length * encoding format. */ ! public synchronized void writeVariableLengthInt (int value) throws IOException { int buffer = value & 0x7F; while ((value >>= 7) != 0) { ! buffer <<= 8; ! buffer |= ((value & 0x7F) | 0x80); } ! while (true) { ! writeByte(buffer & 0xff); ! if ((buffer & 0x80) != 0) ! buffer >>>= 8; ! else ! break; } } } --- 71,114 ---- while ((value >>= 7) != 0) { ! buffer <<= 8; ! buffer |= ((value & 0x7F) | 0x80); } ! while (true) { ! length++; ! if ((buffer & 0x80) != 0) ! buffer >>>= 8; ! else ! break; } return length; } ! /** * Write an int encoded in the MIDI-style variable length * encoding format. */ ! public synchronized void writeVariableLengthInt (int value) throws IOException { int buffer = value & 0x7F; while ((value >>= 7) != 0) { ! buffer <<= 8; ! buffer |= ((value & 0x7F) | 0x80); } ! while (true) { ! writeByte(buffer & 0xff); ! if ((buffer & 0x80) != 0) ! buffer >>>= 8; ! else ! break; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/MidiFileReader.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/MidiFileReader.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/MidiFileReader.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/MidiFileReader.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.Track; *** 56,63 **** /** * A MIDI file reader. ! * ! * This code reads MIDI file types 0 and 1. * * There are many decent documents on the web describing the MIDI file * format. I didn't bother looking for the official document. If it --- 56,63 ---- /** * A MIDI file reader. ! * ! * This code reads MIDI file types 0 and 1. * * There are many decent documents on the web describing the MIDI file * format. I didn't bother looking for the official document. If it *************** import javax.sound.midi.Track; *** 67,73 **** * @author Anthony Green (green@redhat.com) * */ ! public class MidiFileReader extends javax.sound.midi.spi.MidiFileReader { /* Get the MidiFileFormat for the given input stream. * @see javax.sound.midi.spi.MidiFileReader#getMidiFileFormat(java.io.InputStream) --- 67,73 ---- * @author Anthony Green (green@redhat.com) * */ ! public class MidiFileReader extends javax.sound.midi.spi.MidiFileReader { /* Get the MidiFileFormat for the given input stream. * @see javax.sound.midi.spi.MidiFileReader#getMidiFileFormat(java.io.InputStream) *************** public class MidiFileReader extends java *** 80,107 **** din = (DataInputStream) in; else din = new DataInputStream(in); ! int type, ntracks, division, resolution, bytes; float divisionType; ! if (din.readInt() != 0x4d546864) // "MThd" throw new InvalidMidiDataException("Invalid MIDI chunk header."); bytes = din.readInt(); if (bytes < 6) ! throw new ! InvalidMidiDataException("Invalid MIDI chunk header length: " + bytes); type = din.readShort(); if (type < 0 || type > 2) ! throw new ! InvalidMidiDataException("Invalid MIDI file type value: " + type); ! ntracks = din.readShort(); if (ntracks <= 0) ! throw new ! InvalidMidiDataException("Invalid number of MIDI tracks: " + ntracks); ! division = din.readShort(); if ((division & 0x8000) != 0) { --- 80,107 ---- din = (DataInputStream) in; else din = new DataInputStream(in); ! int type, ntracks, division, resolution, bytes; float divisionType; ! if (din.readInt() != 0x4d546864) // "MThd" throw new InvalidMidiDataException("Invalid MIDI chunk header."); bytes = din.readInt(); if (bytes < 6) ! throw new ! InvalidMidiDataException("Invalid MIDI chunk header length: " + bytes); type = din.readShort(); if (type < 0 || type > 2) ! throw new ! InvalidMidiDataException("Invalid MIDI file type value: " + type); ! ntracks = din.readShort(); if (ntracks <= 0) ! throw new ! InvalidMidiDataException("Invalid number of MIDI tracks: " + ntracks); ! division = din.readShort(); if ((division & 0x8000) != 0) { *************** public class MidiFileReader extends java *** 125,133 **** break; default: ! throw new ! InvalidMidiDataException("Invalid MIDI frame division type: " ! + division); } resolution = division & 0xff; } --- 125,133 ---- break; default: ! throw new ! InvalidMidiDataException("Invalid MIDI frame division type: " ! + division); } resolution = division & 0xff; } *************** public class MidiFileReader extends java *** 136,145 **** divisionType = Sequence.PPQ; resolution = division & 0x7fff; } ! // If we haven't read every byte in the header now, just skip the rest. din.skip(bytes - 6); ! return new ExtendedMidiFileFormat(type, divisionType, resolution, MidiFileFormat.UNKNOWN_LENGTH, MidiFileFormat.UNKNOWN_LENGTH, ntracks); --- 136,145 ---- divisionType = Sequence.PPQ; resolution = division & 0x7fff; } ! // If we haven't read every byte in the header now, just skip the rest. din.skip(bytes - 6); ! return new ExtendedMidiFileFormat(type, divisionType, resolution, MidiFileFormat.UNKNOWN_LENGTH, MidiFileFormat.UNKNOWN_LENGTH, ntracks); *************** public class MidiFileReader extends java *** 150,156 **** */ public MidiFileFormat getMidiFileFormat(URL url) throws InvalidMidiDataException, IOException ! { InputStream is = url.openStream(); try { --- 150,156 ---- */ public MidiFileFormat getMidiFileFormat(URL url) throws InvalidMidiDataException, IOException ! { InputStream is = url.openStream(); try { *************** public class MidiFileReader extends java *** 178,184 **** is.close(); } } ! /* Get the MIDI Sequence found in this input stream. * @see javax.sound.midi.spi.MidiFileReader#getSequence(java.io.InputStream) */ --- 178,184 ---- is.close(); } } ! /* Get the MIDI Sequence found in this input stream. * @see javax.sound.midi.spi.MidiFileReader#getSequence(java.io.InputStream) */ *************** public class MidiFileReader extends java *** 272,278 **** case ShortMessage.CHANNEL_PRESSURE: case ShortMessage.SONG_SELECT: case 0xF5: // FIXME: unofficial bus select. Not in ! // spec?? sm = new ShortMessage(); sm.setMessage(runningStatus, sbyte, 0); continue; --- 272,278 ---- case ShortMessage.CHANNEL_PRESSURE: case ShortMessage.SONG_SELECT: case 0xF5: // FIXME: unofficial bus select. Not in ! // spec?? sm = new ShortMessage(); sm.setMessage(runningStatus, sbyte, 0); continue; *************** public class MidiFileReader extends java *** 290,304 **** continue; default: ! throw new ! InvalidMidiDataException("Invalid Short MIDI Event: " ! + sbyte); } } else ! throw new ! InvalidMidiDataException("Invalid Short MIDI Event: " ! + sbyte); } mm = sm; } --- 290,304 ---- continue; default: ! throw new ! InvalidMidiDataException("Invalid Short MIDI Event: " ! + sbyte); } } else ! throw new ! InvalidMidiDataException("Invalid Short MIDI Event: " ! + sbyte); } mm = sm; } *************** public class MidiFileReader extends java *** 346,361 **** * @see javax.sound.midi.spi.MidiFileReader#getSequence(java.net.URL) */ public Sequence getSequence(URL url) throws InvalidMidiDataException, ! IOException { InputStream is = url.openStream(); try { ! return getSequence(is); } finally { ! is.close(); } } --- 346,361 ---- * @see javax.sound.midi.spi.MidiFileReader#getSequence(java.net.URL) */ public Sequence getSequence(URL url) throws InvalidMidiDataException, ! IOException { InputStream is = url.openStream(); try { ! return getSequence(is); } finally { ! is.close(); } } *************** public class MidiFileReader extends java *** 363,378 **** * @see javax.sound.midi.spi.MidiFileReader#getSequence(java.io.File) */ public Sequence getSequence(File file) throws InvalidMidiDataException, ! IOException { InputStream is = new FileInputStream(file); try { ! return getSequence(is); } finally { ! is.close(); } } } --- 363,378 ---- * @see javax.sound.midi.spi.MidiFileReader#getSequence(java.io.File) */ public Sequence getSequence(File file) throws InvalidMidiDataException, ! IOException { InputStream is = new FileInputStream(file); try { ! return getSequence(is); } finally { ! is.close(); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.Track; *** 49,56 **** /** * A MIDI file writer. ! * ! * This code writes MIDI file types 0 and 1. * * There are many decent documents on the web describing the MIDI file * format. I didn't bother looking for the official document. If it --- 49,56 ---- /** * A MIDI file writer. ! * ! * This code writes MIDI file types 0 and 1. * * There are many decent documents on the web describing the MIDI file * format. I didn't bother looking for the official document. If it *************** public class MidiFileWriter *** 92,98 **** MidiDataOutputStream dos = new MidiDataOutputStream (out); Track[] tracks = in.getTracks(); dos.writeInt(0x4d546864); // MThd ! dos.writeInt(6); dos.writeShort(fileType); dos.writeShort(tracks.length); float divisionType = in.getDivisionType(); --- 92,98 ---- MidiDataOutputStream dos = new MidiDataOutputStream (out); Track[] tracks = in.getTracks(); dos.writeInt(0x4d546864); // MThd ! dos.writeInt(6); dos.writeShort(fileType); dos.writeShort(tracks.length); float divisionType = in.getDivisionType(); *************** public class MidiFileWriter *** 101,107 **** int division = 0; if (divisionType == Sequence.PPQ) division = resolution & 0x7fff; ! dos.writeShort(division); int length = 14; for (int i = 0; i < tracks.length; i++) length += writeTrack(tracks[i], dos); --- 101,107 ---- int division = 0; if (divisionType == Sequence.PPQ) division = resolution & 0x7fff; ! dos.writeShort(division); int length = 14; for (int i = 0; i < tracks.length; i++) length += writeTrack(tracks[i], dos); *************** public class MidiFileWriter *** 122,134 **** long ptick = 0; while (i < eventCount) { ! MidiEvent me = track.get(i); ! long tick = me.getTick(); ! length += dos.variableLengthIntLength((int) (tick - ptick)); ! ptick = tick; ! length += me.getMessage().getLength(); ! i++; ! } return length; } --- 122,134 ---- long ptick = 0; while (i < eventCount) { ! MidiEvent me = track.get(i); ! long tick = me.getTick(); ! length += dos.variableLengthIntLength((int) (tick - ptick)); ! ptick = tick; ! length += me.getMessage().getLength(); ! i++; ! } return length; } *************** public class MidiFileWriter *** 149,172 **** dos.writeInt(trackLength); while (i < elength) { ! MidiEvent me = track.get(i); ! int dtime = 0; ! if (pme != null) ! dtime = (int) (me.getTick() - pme.getTick()); ! dos.writeVariableLengthInt(dtime); ! // FIXME: use running status byte ! byte msg[] = me.getMessage().getMessage(); ! dos.write(msg); ! pme = me; ! i++; ! } // We're done if the last event was an End of Track meta message. if (pme != null && (pme.getMessage() instanceof MetaMessage)) { ! MetaMessage mm = (MetaMessage) pme.getMessage(); ! if (mm.getType() == 0x2f) // End of Track message ! return trackLength + 8; } // Write End of Track meta message --- 149,172 ---- dos.writeInt(trackLength); while (i < elength) { ! MidiEvent me = track.get(i); ! int dtime = 0; ! if (pme != null) ! dtime = (int) (me.getTick() - pme.getTick()); ! dos.writeVariableLengthInt(dtime); ! // FIXME: use running status byte ! byte msg[] = me.getMessage().getMessage(); ! dos.write(msg); ! pme = me; ! i++; ! } // We're done if the last event was an End of Track meta message. if (pme != null && (pme.getMessage() instanceof MetaMessage)) { ! MetaMessage mm = (MetaMessage) pme.getMessage(); ! if (mm.getType() == 0x2f) // End of Track message ! return trackLength + 8; } // Write End of Track meta message *************** public class MidiFileWriter *** 186,197 **** OutputStream os = new FileOutputStream(out); try { ! return write(in, fileType, os); } finally { ! os.close(); ! } } } --- 186,197 ---- OutputStream os = new FileOutputStream(out); try { ! return write(in, fileType, os); } finally { ! os.close(); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java Tue Jan 11 19:46:05 2011 *************** public class AUReader extends AudioFileR *** 55,65 **** { private static class AUHeader { ! // Magic number identifying the file. '.snd' private static final int MAGIC = 0x2e736e64; ! public static final int SIZE = 24; // size of the header ! // Encoding types public static final int ULAW = 1; // 8-bit u-law public static final int PCM8 = 2; // 8-bit PCM --- 55,65 ---- { private static class AUHeader { ! // Magic number identifying the file. '.snd' private static final int MAGIC = 0x2e736e64; ! public static final int SIZE = 24; // size of the header ! // Encoding types public static final int ULAW = 1; // 8-bit u-law public static final int PCM8 = 2; // 8-bit PCM *************** public class AUReader extends AudioFileR *** 68,77 **** public static final int PCM32 = 5; // 32-bit PCM public static final int IEEE32 = 6; // 32-bit IEEE f.p. public static final int IEEE64 = 7; // 64-bit IEEE f.p. ! public static final int G721 = 23; ! public static final int G722 = 24; ! public static final int G723 = 25; ! public static final int G723_5BIT = 26; public static final int ALAW = 27; // 8-bit a-law // Header data. --- 68,77 ---- public static final int PCM32 = 5; // 32-bit PCM public static final int IEEE32 = 6; // 32-bit IEEE f.p. public static final int IEEE64 = 7; // 64-bit IEEE f.p. ! public static final int G721 = 23; ! public static final int G722 = 24; ! public static final int G723 = 25; ! public static final int G723_5BIT = 26; public static final int ALAW = 27; // 8-bit a-law // Header data. *************** public class AUReader extends AudioFileR *** 90,145 **** ByteBuffer buf = ByteBuffer.wrap(hdr); if( buf.getInt() != MAGIC ) ! throw new UnsupportedAudioFileException("Not an AU format audio file."); ! headerSize = buf.getInt(); ! fileSize = buf.getInt(); ! encoding = buf.getInt(); sampleRate = buf.getInt(); ! channels = buf.getInt(); switch(encoding) ! { ! case ULAW: ! case PCM8: ! case ALAW: ! sampleSizeInBits = 8; ! break; ! case PCM16: ! sampleSizeInBits = 16; ! break; ! case PCM24: ! sampleSizeInBits = 24; ! break; ! case PCM32: ! sampleSizeInBits = 32; ! break; ! default: // other types exist but are not supported. Yet. ! throw new UnsupportedAudioFileException("Unsupported encoding."); ! } } public AudioFormat getAudioFormat() { AudioFormat.Encoding encType = AudioFormat.Encoding.PCM_SIGNED; if(encoding == 1) ! encType = AudioFormat.Encoding.ULAW; if(encoding == 27) ! encType = AudioFormat.Encoding.ALAW; ! ! return new AudioFormat(encType, ! (float)sampleRate, ! sampleSizeInBits, ! channels, ! (sampleSizeInBits >> 3) * channels, ! (float)sampleRate, ! true); } public AudioFileFormat getAudioFileFormat() { ! return new AudioFileFormat(new AUFormatType(), ! getAudioFormat(), ! AudioSystem.NOT_SPECIFIED); } } --- 90,145 ---- ByteBuffer buf = ByteBuffer.wrap(hdr); if( buf.getInt() != MAGIC ) ! throw new UnsupportedAudioFileException("Not an AU format audio file."); ! headerSize = buf.getInt(); ! fileSize = buf.getInt(); ! encoding = buf.getInt(); sampleRate = buf.getInt(); ! channels = buf.getInt(); switch(encoding) ! { ! case ULAW: ! case PCM8: ! case ALAW: ! sampleSizeInBits = 8; ! break; ! case PCM16: ! sampleSizeInBits = 16; ! break; ! case PCM24: ! sampleSizeInBits = 24; ! break; ! case PCM32: ! sampleSizeInBits = 32; ! break; ! default: // other types exist but are not supported. Yet. ! throw new UnsupportedAudioFileException("Unsupported encoding."); ! } } public AudioFormat getAudioFormat() { AudioFormat.Encoding encType = AudioFormat.Encoding.PCM_SIGNED; if(encoding == 1) ! encType = AudioFormat.Encoding.ULAW; if(encoding == 27) ! encType = AudioFormat.Encoding.ALAW; ! ! return new AudioFormat(encType, ! (float)sampleRate, ! sampleSizeInBits, ! channels, ! (sampleSizeInBits >> 3) * channels, ! (float)sampleRate, ! true); } public AudioFileFormat getAudioFileFormat() { ! return new AudioFileFormat(new AUFormatType(), ! getAudioFormat(), ! AudioSystem.NOT_SPECIFIED); } } *************** public class AUReader extends AudioFileR *** 160,167 **** public AudioFileFormat getAudioFileFormat(InputStream stream) throws IOException, UnsupportedAudioFileException { ! if(!stream.markSupported()) ! throw new IOException("Stream must support marking."); stream.mark(25); AUHeader header = new AUHeader(stream); --- 160,167 ---- public AudioFileFormat getAudioFileFormat(InputStream stream) throws IOException, UnsupportedAudioFileException { ! if(!stream.markSupported()) ! throw new IOException("Stream must support marking."); stream.mark(25); AUHeader header = new AUHeader(stream); *************** public class AUReader extends AudioFileR *** 169,178 **** return header.getAudioFileFormat(); } ! public AudioFileFormat getAudioFileFormat(URL url) throws IOException, UnsupportedAudioFileException ! { return getAudioFileFormat(new BufferedInputStream(url.openStream())); } --- 169,178 ---- return header.getAudioFileFormat(); } ! public AudioFileFormat getAudioFileFormat(URL url) throws IOException, UnsupportedAudioFileException ! { return getAudioFileFormat(new BufferedInputStream(url.openStream())); } *************** public class AUReader extends AudioFileR *** 198,205 **** if( header.headerSize > AUHeader.SIZE ) stream.skip(header.headerSize - AUHeader.SIZE); ! return new AudioInputStream(stream, header.getAudioFormat(), ! AudioSystem.NOT_SPECIFIED); } public AudioInputStream getAudioInputStream(URL url) --- 198,205 ---- if( header.headerSize > AUHeader.SIZE ) stream.skip(header.headerSize - AUHeader.SIZE); ! return new AudioInputStream(stream, header.getAudioFormat(), ! AudioSystem.NOT_SPECIFIED); } public AudioInputStream getAudioInputStream(URL url) *************** public class AUReader extends AudioFileR *** 208,211 **** return getAudioInputStream(new BufferedInputStream(url.openStream())); } } - --- 208,210 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/WAV/WAVReader.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/WAV/WAVReader.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/WAV/WAVReader.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/WAV/WAVReader.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.sampled.spi.AudioFile *** 52,58 **** /** * A WAV file reader. ! * * This code reads WAV files. * * There are many decent documents on the web describing the WAV file --- 52,58 ---- /** * A WAV file reader. ! * * This code reads WAV files. * * There are many decent documents on the web describing the WAV file *************** import javax.sound.sampled.spi.AudioFile *** 66,89 **** */ public class WAVReader extends AudioFileReader { ! private static long readUnsignedIntLE (DataInputStream is) throws IOException { byte[] buf = new byte[4]; is.readFully(buf); ! return (buf[0] & 0xFF ! | ((buf[1] & 0xFF) << 8) ! | ((buf[2] & 0xFF) << 16) ! | ((buf[3] & 0xFF) << 24)); } ! private static short readUnsignedShortLE (DataInputStream is) throws IOException { byte[] buf = new byte[2]; is.readFully(buf); ! return (short) (buf[0] & 0xFF ! | ((buf[1] & 0xFF) << 8)); } /* Get an AudioFileFormat from the given File. --- 66,89 ---- */ public class WAVReader extends AudioFileReader { ! private static long readUnsignedIntLE (DataInputStream is) throws IOException { byte[] buf = new byte[4]; is.readFully(buf); ! return (buf[0] & 0xFF ! | ((buf[1] & 0xFF) << 8) ! | ((buf[2] & 0xFF) << 16) ! | ((buf[3] & 0xFF) << 24)); } ! private static short readUnsignedShortLE (DataInputStream is) throws IOException { byte[] buf = new byte[2]; is.readFully(buf); ! return (short) (buf[0] & 0xFF ! | ((buf[1] & 0xFF) << 8)); } /* Get an AudioFileFormat from the given File. *************** public class WAVReader extends AudioFile *** 115,121 **** din = (DataInputStream) in; else din = new DataInputStream(in); ! if (din.readInt() != 0x52494646) // "RIFF" throw new UnsupportedAudioFileException("Invalid WAV chunk header."); --- 115,121 ---- din = (DataInputStream) in; else din = new DataInputStream(in); ! if (din.readInt() != 0x52494646) // "RIFF" throw new UnsupportedAudioFileException("Invalid WAV chunk header."); *************** public class WAVReader extends AudioFile *** 134,166 **** while (! foundData) { ! int chunkId = din.readInt(); ! chunkLength = readUnsignedIntLE(din); ! switch (chunkId) ! { ! case 0x666D7420: // "fmt " ! foundFmt = true; ! compressionCode = readUnsignedShortLE(din); ! numberChannels = readUnsignedShortLE(din); ! sampleRate = readUnsignedIntLE(din); ! bytesPerSecond = readUnsignedIntLE(din); ! blockAlign = readUnsignedShortLE(din); ! bitsPerSample = readUnsignedShortLE(din); ! din.skip(chunkLength - 16); ! break; ! case 0x66616374: // "fact" ! // FIXME: hold compression format dependent data. ! din.skip(chunkLength); ! break; ! case 0x64617461: // "data" ! if (! foundFmt) ! throw new UnsupportedAudioFileException("This implementation requires WAV fmt chunks precede data chunks."); ! foundData = true; ! break; ! default: ! // Unrecognized chunk. Skip it. ! din.skip(chunkLength); ! } } AudioFormat.Encoding encoding; --- 134,166 ---- while (! foundData) { ! int chunkId = din.readInt(); ! chunkLength = readUnsignedIntLE(din); ! switch (chunkId) ! { ! case 0x666D7420: // "fmt " ! foundFmt = true; ! compressionCode = readUnsignedShortLE(din); ! numberChannels = readUnsignedShortLE(din); ! sampleRate = readUnsignedIntLE(din); ! bytesPerSecond = readUnsignedIntLE(din); ! blockAlign = readUnsignedShortLE(din); ! bitsPerSample = readUnsignedShortLE(din); ! din.skip(chunkLength - 16); ! break; ! case 0x66616374: // "fact" ! // FIXME: hold compression format dependent data. ! din.skip(chunkLength); ! break; ! case 0x64617461: // "data" ! if (! foundFmt) ! throw new UnsupportedAudioFileException("This implementation requires WAV fmt chunks precede data chunks."); ! foundData = true; ! break; ! default: ! // Unrecognized chunk. Skip it. ! din.skip(chunkLength); ! } } AudioFormat.Encoding encoding; *************** public class WAVReader extends AudioFile *** 168,192 **** switch (compressionCode) { case 1: // PCM/uncompressed ! if (bitsPerSample <= 8) ! encoding = AudioFormat.Encoding.PCM_UNSIGNED; ! else ! encoding = AudioFormat.Encoding.PCM_SIGNED; ! break; default: ! throw new UnsupportedAudioFileException("Unrecognized WAV compression code: 0x" ! + Integer.toHexString(compressionCode)); } return new AudioFileFormat (AudioFileFormat.Type.WAVE, ! new AudioFormat(encoding, ! (float) sampleRate, ! bitsPerSample, ! numberChannels, ! ((bitsPerSample + 7) / 8) * numberChannels, ! (float) bytesPerSecond, false), ! (int) chunkLength); } /* Get an AudioFileFormat from the given URL. --- 168,192 ---- switch (compressionCode) { case 1: // PCM/uncompressed ! if (bitsPerSample <= 8) ! encoding = AudioFormat.Encoding.PCM_UNSIGNED; ! else ! encoding = AudioFormat.Encoding.PCM_SIGNED; ! break; default: ! throw new UnsupportedAudioFileException("Unrecognized WAV compression code: 0x" ! + Integer.toHexString(compressionCode)); } return new AudioFileFormat (AudioFileFormat.Type.WAVE, ! new AudioFormat(encoding, ! (float) sampleRate, ! bitsPerSample, ! numberChannels, ! ((bitsPerSample + 7) / 8) * numberChannels, ! (float) bytesPerSecond, false), ! (int) chunkLength); } /* Get an AudioFileFormat from the given URL. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java Tue Jan 11 19:46:05 2011 *************** public class GStreamerMixer *** 58,100 **** public static class GstInfo extends Info { /* Mixer Properties */ ! /** Name */ private static final String name = "Classpath GStreamer Sound Audio Engine"; ! /** Vendor */ private static final String vendor = "GNU Classpath"; ! /** Description */ private static final String desc = "GStreamer-based software mixer"; ! /** Version */ private static final String vers = "0.0.1"; ! protected GstInfo() { super(name, vendor, desc, vers); } } ! public static final String GST_BACKEND = GstInfo.name; public static final String GST_DECODER = "decoder"; public static final String GST_TYPE_NAME = "type"; public static final String GST_FILE_EXTENSION = "ext"; ! /** Mixer Info */ private static final Mixer.Info INFO = new GStreamerMixer.GstInfo(); ! public Line getLine(Line.Info info) throws LineUnavailableException { // get all the lines formats supported by this mixer and // and see if there is one matching the given line ! // if the format comes from the gstreamer backend // gstreamer will be able to deal with it Class clazz = info.getLineClass(); DataLine.Info _info = (DataLine.Info) info; ! if (clazz == SourceDataLine.class) { for (AudioFormat format : _info.getFormats()) --- 58,100 ---- public static class GstInfo extends Info { /* Mixer Properties */ ! /** Name */ private static final String name = "Classpath GStreamer Sound Audio Engine"; ! /** Vendor */ private static final String vendor = "GNU Classpath"; ! /** Description */ private static final String desc = "GStreamer-based software mixer"; ! /** Version */ private static final String vers = "0.0.1"; ! protected GstInfo() { super(name, vendor, desc, vers); } } ! public static final String GST_BACKEND = GstInfo.name; public static final String GST_DECODER = "decoder"; public static final String GST_TYPE_NAME = "type"; public static final String GST_FILE_EXTENSION = "ext"; ! /** Mixer Info */ private static final Mixer.Info INFO = new GStreamerMixer.GstInfo(); ! public Line getLine(Line.Info info) throws LineUnavailableException { // get all the lines formats supported by this mixer and // and see if there is one matching the given line ! // if the format comes from the gstreamer backend // gstreamer will be able to deal with it Class clazz = info.getLineClass(); DataLine.Info _info = (DataLine.Info) info; ! if (clazz == SourceDataLine.class) { for (AudioFormat format : _info.getFormats()) *************** public class GStreamerMixer *** 107,115 **** } } } ! // TODO: we also support basic PCM ! throw new LineUnavailableException("Cannot open a line"); } --- 107,115 ---- } } } ! // TODO: we also support basic PCM ! throw new LineUnavailableException("Cannot open a line"); } *************** public class GStreamerMixer *** 162,168 **** public boolean isLineSupported(Line.Info info) { ! // We support any kind of mixer that comes // from our gstreamer backend. // In addition, we support PCM based audio streams for // direct playback. --- 162,168 ---- public boolean isLineSupported(Line.Info info) { ! // We support any kind of mixer that comes // from our gstreamer backend. // In addition, we support PCM based audio streams for // direct playback. *************** public class GStreamerMixer *** 171,177 **** DataLine.Info _dinfo = (DataLine.Info) info; _dinfo.getFormats(); } ! return true; } --- 171,177 ---- DataLine.Info _dinfo = (DataLine.Info) info; _dinfo.getFormats(); } ! return true; } *************** public class GStreamerMixer *** 228,234 **** // TODO Auto-generated method stub return false; } ! public boolean isOpen() { // TODO Auto-generated method stub --- 228,234 ---- // TODO Auto-generated method stub return false; } ! public boolean isOpen() { // TODO Auto-generated method stub diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java Fri Jul 27 22:49:25 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.sampled.spi.MixerProv *** 43,62 **** /** * Concrete provider class for GStreamerMixer. ! * * @author Mario Torre */ public class GStreamerMixerProvider extends MixerProvider { ! private static final GStreamerMixer mixer = new GStreamerMixer(); ! @Override public Mixer getMixer(Info info) { ! if (info.equals(mixer.getMixerInfo())) return mixer; ! throw new IllegalArgumentException("This provider cannot handle a mixer or type: " + info.getName()); --- 43,62 ---- /** * Concrete provider class for GStreamerMixer. ! * * @author Mario Torre */ public class GStreamerMixerProvider extends MixerProvider { ! private static final GStreamerMixer mixer = new GStreamerMixer(); ! @Override public Mixer getMixer(Info info) { ! if (info.equals(mixer.getMixerInfo())) return mixer; ! throw new IllegalArgumentException("This provider cannot handle a mixer or type: " + info.getName()); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.sampled.spi.AudioFile *** 56,75 **** /** * An implementation of a general AudioFileReader. Uses GStreamer to ! * parse and retrieve informations about the file passed as input. ! * * @author Mario Torre */ public class GstAudioFileReader extends AudioFileReader ! { @Override public AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException { CPStringBuilder name = new CPStringBuilder(file.getName()); String _name = name.substring(name.lastIndexOf(".") + 1); ! return getAudioFileFormat( new BufferedInputStream(new FileInputStream(file)), _name); } --- 56,75 ---- /** * An implementation of a general AudioFileReader. Uses GStreamer to ! * parse and retrieve informations about the file passed as input. ! * * @author Mario Torre */ public class GstAudioFileReader extends AudioFileReader ! { @Override public AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException { CPStringBuilder name = new CPStringBuilder(file.getName()); String _name = name.substring(name.lastIndexOf(".") + 1); ! return getAudioFileFormat( new BufferedInputStream(new FileInputStream(file)), _name); } *************** public class GstAudioFileReader *** 93,122 **** { UnsupportedAudioFileException ex = new UnsupportedAudioFileException("Unsupported encoding."); ! ex.initCause(ex.getCause()); throw ex; } ! if (format == null) throw new UnsupportedAudioFileException("Unsupported encoding."); ! String name = format.getProperty(GStreamerMixer.GST_DECODER).toString(); ! if (extension == null) { extension = format.getProperty(GStreamerMixer.GST_FILE_EXTENSION).toString(); } ! AudioFileFormat.Type type = new AudioFileFormat.Type(name, extension); ! // TODO: we should calculate this in some way. We don't need it, but // application may want to use this data. return new AudioFileFormat(type, format, AudioSystem.NOT_SPECIFIED); } ! @Override public AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException --- 93,122 ---- { UnsupportedAudioFileException ex = new UnsupportedAudioFileException("Unsupported encoding."); ! ex.initCause(ex.getCause()); throw ex; } ! if (format == null) throw new UnsupportedAudioFileException("Unsupported encoding."); ! String name = format.getProperty(GStreamerMixer.GST_DECODER).toString(); ! if (extension == null) { extension = format.getProperty(GStreamerMixer.GST_FILE_EXTENSION).toString(); } ! AudioFileFormat.Type type = new AudioFileFormat.Type(name, extension); ! // TODO: we should calculate this in some way. We don't need it, but // application may want to use this data. return new AudioFileFormat(type, format, AudioSystem.NOT_SPECIFIED); } ! @Override public AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException *************** public class GstAudioFileReader *** 127,138 **** @Override public AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException ! { InputStream stream = new FileInputStream(file); long length = file.length(); ! AudioFormat format = null; ! try { format = GstAudioFileReaderNativePeer.getAudioFormat(file); --- 127,138 ---- @Override public AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException ! { InputStream stream = new FileInputStream(file); long length = file.length(); ! AudioFormat format = null; ! try { format = GstAudioFileReaderNativePeer.getAudioFormat(file); *************** public class GstAudioFileReader *** 141,151 **** { UnsupportedAudioFileException ex = new UnsupportedAudioFileException("Unsupported encoding."); ! ex.initCause(ex.getCause()); throw ex; } ! // get the header size if (format == null) throw new UnsupportedAudioFileException("Unsupported encoding."); --- 141,151 ---- { UnsupportedAudioFileException ex = new UnsupportedAudioFileException("Unsupported encoding."); ! ex.initCause(ex.getCause()); throw ex; } ! // get the header size if (format == null) throw new UnsupportedAudioFileException("Unsupported encoding."); *************** public class GstAudioFileReader *** 158,164 **** throws UnsupportedAudioFileException, IOException { AudioFormat format = null; ! try { format = GstAudioFileReaderNativePeer.getAudioFormat(is); --- 158,164 ---- throws UnsupportedAudioFileException, IOException { AudioFormat format = null; ! try { format = GstAudioFileReaderNativePeer.getAudioFormat(is); *************** public class GstAudioFileReader *** 168,174 **** // TODO Auto-generated catch block e.printStackTrace(); } ! // get the header size if (format == null) throw new UnsupportedAudioFileException("Unsupported encoding."); --- 168,174 ---- // TODO Auto-generated catch block e.printStackTrace(); } ! // get the header size if (format == null) throw new UnsupportedAudioFileException("Unsupported encoding."); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.sampled.AudioSystem; *** 54,83 **** import javax.sound.sampled.AudioFormat.Encoding; /** ! * GStreamer native peer for GstAudioFileReader. ! * * @author Mario Torre */ final class GstAudioFileReaderNativePeer { private static final String GST_ENCODING = "GStreamer Generic Audio Reader"; ! private static class GstHeader { ! /* * NOTE: these properties are accessed by the native code, be careful * if you change them. * Not all the fields are necessarily set. ! * */ public String file = null; ! public String suffix = null; ! public String name = null; ! public String mimetype = null; ! public String endianness = null; public String channels = null; --- 54,83 ---- import javax.sound.sampled.AudioFormat.Encoding; /** ! * GStreamer native peer for GstAudioFileReader. ! * * @author Mario Torre */ final class GstAudioFileReaderNativePeer { private static final String GST_ENCODING = "GStreamer Generic Audio Reader"; ! private static class GstHeader { ! /* * NOTE: these properties are accessed by the native code, be careful * if you change them. * Not all the fields are necessarily set. ! * */ public String file = null; ! public String suffix = null; ! public String name = null; ! public String mimetype = null; ! public String endianness = null; public String channels = null; *************** final class GstAudioFileReaderNativePeer *** 87,148 **** public String width = null; public String depth = null; ! public String isSigned = null; ! public String layer = null; ! public String bitrate = null; ! public String framed = null; ! public String type = null; } ! public static AudioFormat getAudioFormat(File file) throws Exception { GstHeader header = new GstHeader(); header.file = file.getAbsolutePath(); ! if (!gstreamer_get_audio_format_file(header)) return null; ! return getAudioFormat(header); } ! public static AudioFormat getAudioFormat(InputStream is) throws Exception { return getAudioFormat(is, new GstHeader()); } ! public static AudioFormat getAudioFormat(URL url) throws Exception { GstHeader header = new GstHeader(); header.file = url.toExternalForm(); ! return getAudioFormat(url.openStream(), header); } ! private static AudioFormat getAudioFormat(InputStream is, GstHeader header) throws Exception { BufferedInputStream stream = new BufferedInputStream(is); ! if(!stream.markSupported()) ! throw new IOException("Stream must support marking."); ! stream.mark(0); ! if (!gstreamer_get_audio_format_stream(header, new GstInputStream(stream). getNativeClass())) return null; ! return getAudioFormat(header); } ! private static Encoding getEncoding(GstHeader header) { StringBuilder buffer = new StringBuilder(); ! if (header.name == null) { buffer.append(GST_ENCODING); --- 87,148 ---- public String width = null; public String depth = null; ! public String isSigned = null; ! public String layer = null; ! public String bitrate = null; ! public String framed = null; ! public String type = null; } ! public static AudioFormat getAudioFormat(File file) throws Exception { GstHeader header = new GstHeader(); header.file = file.getAbsolutePath(); ! if (!gstreamer_get_audio_format_file(header)) return null; ! return getAudioFormat(header); } ! public static AudioFormat getAudioFormat(InputStream is) throws Exception { return getAudioFormat(is, new GstHeader()); } ! public static AudioFormat getAudioFormat(URL url) throws Exception { GstHeader header = new GstHeader(); header.file = url.toExternalForm(); ! return getAudioFormat(url.openStream(), header); } ! private static AudioFormat getAudioFormat(InputStream is, GstHeader header) throws Exception { BufferedInputStream stream = new BufferedInputStream(is); ! if(!stream.markSupported()) ! throw new IOException("Stream must support marking."); ! stream.mark(0); ! if (!gstreamer_get_audio_format_stream(header, new GstInputStream(stream). getNativeClass())) return null; ! return getAudioFormat(header); } ! private static Encoding getEncoding(GstHeader header) { StringBuilder buffer = new StringBuilder(); ! if (header.name == null) { buffer.append(GST_ENCODING); *************** final class GstAudioFileReaderNativePeer *** 151,157 **** buffer.append(" "); buffer.append(header.mimetype); } ! header.name = buffer.toString(); } else --- 151,157 ---- buffer.append(" "); buffer.append(header.mimetype); } ! header.name = buffer.toString(); } else *************** final class GstAudioFileReaderNativePeer *** 165,211 **** { index = lowerCase.indexOf("demuxer"); } ! if (index == -1) index = lowerCase.length(); buffer.append(header.name.substring(0, index)); ! } ! return new Encoding(buffer.toString().trim()); } ! private static AudioFormat getAudioFormat(GstHeader header) throws Exception { int na = AudioSystem.NOT_SPECIFIED; ! /* we use mimetype as an header, but this could have some side effects */ Encoding encoding = getEncoding(header); ! float sampleRate = ((header.rate != null) ? new Float(header.rate).floatValue() : na); ! int sampleSizeInBits = ((header.depth != null) ? new Integer(header.depth).intValue() : na); ! int channels = ((header.channels != null) ? new Integer(header.channels).intValue() : na); ! boolean bigEndian = false; if (header.endianness != null) { if (header.endianness.compareTo("4321") == 0) bigEndian = true; } ! String ext = null; ! int frameSize = na; float frameRate = na; String lowerCase = header.name.toLowerCase(); ! // FIXME: frameRate = sampleRate in these cases under all the tests so far // but I'm not sure if this is always correct... if (lowerCase.contains("law") || lowerCase.contains("au")) --- 165,211 ---- { index = lowerCase.indexOf("demuxer"); } ! if (index == -1) index = lowerCase.length(); buffer.append(header.name.substring(0, index)); ! } ! return new Encoding(buffer.toString().trim()); } ! private static AudioFormat getAudioFormat(GstHeader header) throws Exception { int na = AudioSystem.NOT_SPECIFIED; ! /* we use mimetype as an header, but this could have some side effects */ Encoding encoding = getEncoding(header); ! float sampleRate = ((header.rate != null) ? new Float(header.rate).floatValue() : na); ! int sampleSizeInBits = ((header.depth != null) ? new Integer(header.depth).intValue() : na); ! int channels = ((header.channels != null) ? new Integer(header.channels).intValue() : na); ! boolean bigEndian = false; if (header.endianness != null) { if (header.endianness.compareTo("4321") == 0) bigEndian = true; } ! String ext = null; ! int frameSize = na; float frameRate = na; String lowerCase = header.name.toLowerCase(); ! // FIXME: frameRate = sampleRate in these cases under all the tests so far // but I'm not sure if this is always correct... if (lowerCase.contains("law") || lowerCase.contains("au")) *************** final class GstAudioFileReaderNativePeer *** 226,232 **** frameRate = sampleRate; ext = "aiff"; } ! // write all the additional properties we got to identify // the gstreamer plugin actually used to deal with this stream Map properties = new HashMap(); --- 226,232 ---- frameRate = sampleRate; ext = "aiff"; } ! // write all the additional properties we got to identify // the gstreamer plugin actually used to deal with this stream Map properties = new HashMap(); *************** final class GstAudioFileReaderNativePeer *** 235,241 **** properties.put(GStreamerMixer.GST_TYPE_NAME, encoding.toString()); if (ext != null) properties.put(GStreamerMixer.GST_FILE_EXTENSION, ext); ! /* now we put in some of the additional properties if we have them */ if (header.type != null) properties.put("type", header.type); if (header.framed != null) properties.put("framed", header.framed); --- 235,241 ---- properties.put(GStreamerMixer.GST_TYPE_NAME, encoding.toString()); if (ext != null) properties.put(GStreamerMixer.GST_FILE_EXTENSION, ext); ! /* now we put in some of the additional properties if we have them */ if (header.type != null) properties.put("type", header.type); if (header.framed != null) properties.put("framed", header.framed); *************** final class GstAudioFileReaderNativePeer *** 243,249 **** if (header.isSigned != null) properties.put("isSigned", header.isSigned); if (header.depth != null) properties.put("depth", header.depth); if (header.mimetype != null) properties.put("mimetype", header.mimetype); ! AudioFormat format = new AudioFormat(encoding, sampleRate, sampleSizeInBits, --- 243,249 ---- if (header.isSigned != null) properties.put("isSigned", header.isSigned); if (header.depth != null) properties.put("depth", header.depth); if (header.mimetype != null) properties.put("mimetype", header.mimetype); ! AudioFormat format = new AudioFormat(encoding, sampleRate, sampleSizeInBits, *************** final class GstAudioFileReaderNativePeer *** 254,281 **** properties); return format; } ! /* ***** native methods ***** */ ! /** * Retrieve header information about the stream being played. */ native static final protected boolean gstreamer_get_audio_format_stream(GstHeader info, Pointer pointer); ! /** * Retrieve header information about the file being played. */ native static final protected boolean gstreamer_get_audio_format_file(GstHeader info); ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the static initializer. */ native private static final void init_id_cache(); ! static { System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$ --- 254,281 ---- properties); return format; } ! /* ***** native methods ***** */ ! /** * Retrieve header information about the stream being played. */ native static final protected boolean gstreamer_get_audio_format_stream(GstHeader info, Pointer pointer); ! /** * Retrieve header information about the file being played. */ native static final protected boolean gstreamer_get_audio_format_file(GstHeader info); ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the static initializer. */ native private static final void init_id_cache(); ! static { System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java Tue Jan 11 19:46:05 2011 *************** import java.io.InputStream; *** 45,110 **** /** * Encapsulates the functionality of an InputStream Object. ! * * This class is only meant to be used by the native code, to allow reading * of the given InputStream as part of a the GStreamer InputStream Source * Plugin. ! * * Note: this class will be not garbage collected as the * native code contains strong references to internal fields. * The native layer provides a method that can be called by the C code to * free the resources and to let the garbage collected to handle this class * when not needed anymore. ! * * @author Mario Torre */ public class GstInputStream { /** The real InputStream on which to perform reading operations. */ private InputStream istream; ! /** ! * Initialized in the native code, don't change without changes * in the native layer. */ private Pointer gstInputStream = null; ! public GstInputStream(InputStream istream) { this.istream = istream; init_instance(); } ! public int read(byte[] buf, int off, int len) throws IOException { return this.istream.read(buf, off, len); } ! public int available() throws IOException { return this.istream.available(); } ! /** * Return a reference to the GstInputStream native class as a Pointer object. * This method is intended as an helper accessor and the returned pointer ! * needs to be casted and used in the native code only. ! * * @return Pointer to the native GstInputStream class. */ public Pointer getNativeClass() { return this.gstInputStream; } ! /* native methods */ ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the class constructor. */ native private final void init_instance(); ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the static initializer. --- 45,110 ---- /** * Encapsulates the functionality of an InputStream Object. ! * * This class is only meant to be used by the native code, to allow reading * of the given InputStream as part of a the GStreamer InputStream Source * Plugin. ! * * Note: this class will be not garbage collected as the * native code contains strong references to internal fields. * The native layer provides a method that can be called by the C code to * free the resources and to let the garbage collected to handle this class * when not needed anymore. ! * * @author Mario Torre */ public class GstInputStream { /** The real InputStream on which to perform reading operations. */ private InputStream istream; ! /** ! * Initialized in the native code, don't change without changes * in the native layer. */ private Pointer gstInputStream = null; ! public GstInputStream(InputStream istream) { this.istream = istream; init_instance(); } ! public int read(byte[] buf, int off, int len) throws IOException { return this.istream.read(buf, off, len); } ! public int available() throws IOException { return this.istream.available(); } ! /** * Return a reference to the GstInputStream native class as a Pointer object. * This method is intended as an helper accessor and the returned pointer ! * needs to be casted and used in the native code only. ! * * @return Pointer to the native GstInputStream class. */ public Pointer getNativeClass() { return this.gstInputStream; } ! /* native methods */ ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the class constructor. */ native private final void init_instance(); ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the static initializer. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java Tue Jan 11 19:46:05 2011 *************** public abstract class GstDataLine *** 47,65 **** implements DataLine { public static final int DEFAULT_BUFFER_SIZE = 1024; ! /** Represents if this Line is opened or not. */ ! protected Boolean open = false; ! private AudioFormat format = null; private int bufferSize = 0; ! public GstDataLine(AudioFormat format) { this.format = format; this.bufferSize = DEFAULT_BUFFER_SIZE; } ! public GstDataLine(AudioFormat format, int bufferSize) { this.format = format; --- 47,65 ---- implements DataLine { public static final int DEFAULT_BUFFER_SIZE = 1024; ! /** Represents if this Line is opened or not. */ ! protected Boolean open = false; ! private AudioFormat format = null; private int bufferSize = 0; ! public GstDataLine(AudioFormat format) { this.format = format; this.bufferSize = DEFAULT_BUFFER_SIZE; } ! public GstDataLine(AudioFormat format, int bufferSize) { this.format = format; *************** public abstract class GstDataLine *** 81,87 **** // TODO Auto-generated method stub return 0; } ! public void addLineListener(LineListener listener) { // TODO Auto-generated method stub --- 81,87 ---- // TODO Auto-generated method stub return 0; } ! public void addLineListener(LineListener listener) { // TODO Auto-generated method stub *************** public abstract class GstDataLine *** 124,130 **** } /* protected methods for subclasses */ ! /** * @param open the open to set */ --- 124,130 ---- } /* protected methods for subclasses */ ! /** * @param open the open to set */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.Pointer; *** 42,63 **** import javax.sound.sampled.LineUnavailableException; public class GstNativeDataLine ! { public static final GstPipeline createSourcePipeline(int bufferSize) throws LineUnavailableException { GstPipeline pipeline = new GstPipeline(bufferSize); ! pipeline.createForWrite(); ! if (!setup_sink_pipeline(pipeline.getNativeClass())) throw new LineUnavailableException("Line unavailable"); ! return pipeline; } ! /* native methods */ ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the static initializer. --- 42,63 ---- import javax.sound.sampled.LineUnavailableException; public class GstNativeDataLine ! { public static final GstPipeline createSourcePipeline(int bufferSize) throws LineUnavailableException { GstPipeline pipeline = new GstPipeline(bufferSize); ! pipeline.createForWrite(); ! if (!setup_sink_pipeline(pipeline.getNativeClass())) throw new LineUnavailableException("Line unavailable"); ! return pipeline; } ! /* native methods */ ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the static initializer. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java Tue Jan 11 19:46:05 2011 *************** import gnu.classpath.Pointer; *** 48,54 **** /** * This class represent a GStreamer pipeline and is resposible to handle the * flow of data to and from the GStreamer native backend. ! * * @author Mario Torre */ public class GstPipeline --- 48,54 ---- /** * This class represent a GStreamer pipeline and is resposible to handle the * flow of data to and from the GStreamer native backend. ! * * @author Mario Torre */ public class GstPipeline *************** public class GstPipeline *** 69,120 **** * Opening the pipe to record audio data from the sound card works the same * except that all the operation are inverted. */ ! // These enums are used in the native code also, changes here must reflect // changes in the native code. public static enum State { PLAY, PAUSE, STOP, CLOSE } ! private static final int READ = 0; private static final int WRITE = 1; private static final int QUEUED = 1; ! ! private static final String CAPACITY_KEY = "Capacity"; ! private static final Object [] lock = new Object[0]; ! /* * Preference subsystem. We use this to store some system specific settings. */ protected Preferences prefs = Preferences.userNodeForPackage(GstPipeline.class).node("GStreamer"); ! // used by the native code, stores the size of the named pipeline // created by the operating system. private long capacity = -1; ! /** Represents the playing state of this Line. */ private State state = State.STOP; ! /** The name of the named pipe. */ // Will be setup and filled in the native code. See the native library // for details. private String name = null; ! /** This is the named pipe that will be read by the gstreamer backend. */ private FileOutputStream output = null; ! /** * Defines if we are getting data from a sink pipe * or writing to a source pipe. */ private boolean source = true; ! /** Indicate that we are ready to process audio data to/from the pipe. */ private boolean ready = false; ! /** * This is the native GStreamer Pipeline. */ --- 69,120 ---- * Opening the pipe to record audio data from the sound card works the same * except that all the operation are inverted. */ ! // These enums are used in the native code also, changes here must reflect // changes in the native code. public static enum State { PLAY, PAUSE, STOP, CLOSE } ! private static final int READ = 0; private static final int WRITE = 1; private static final int QUEUED = 1; ! ! private static final String CAPACITY_KEY = "Capacity"; ! private static final Object [] lock = new Object[0]; ! /* * Preference subsystem. We use this to store some system specific settings. */ protected Preferences prefs = Preferences.userNodeForPackage(GstPipeline.class).node("GStreamer"); ! // used by the native code, stores the size of the named pipeline // created by the operating system. private long capacity = -1; ! /** Represents the playing state of this Line. */ private State state = State.STOP; ! /** The name of the named pipe. */ // Will be setup and filled in the native code. See the native library // for details. private String name = null; ! /** This is the named pipe that will be read by the gstreamer backend. */ private FileOutputStream output = null; ! /** * Defines if we are getting data from a sink pipe * or writing to a source pipe. */ private boolean source = true; ! /** Indicate that we are ready to process audio data to/from the pipe. */ private boolean ready = false; ! /** * This is the native GStreamer Pipeline. */ *************** public class GstPipeline *** 125,144 **** /** * Creates a new GstPipeline with a capacity of * {@link GstDataLine#DEFAULT_BUFFER_SIZE}. ! * * @see GstDataLine#DEFAULT_BUFFER_SIZE */ public GstPipeline() { this(GstDataLine.DEFAULT_BUFFER_SIZE); } ! /** * Creates a new GstPipeline with a capacity of bufferSize. * @see GstDataLine#DEFAULT_BUFFER_SIZE */ public GstPipeline(int bufferSize) ! { // see if we need to detect the size of the named pipe or we can use // an already computet default for this system. // Note that this is very different from the bufferSize parameter, --- 125,144 ---- /** * Creates a new GstPipeline with a capacity of * {@link GstDataLine#DEFAULT_BUFFER_SIZE}. ! * * @see GstDataLine#DEFAULT_BUFFER_SIZE */ public GstPipeline() { this(GstDataLine.DEFAULT_BUFFER_SIZE); } ! /** * Creates a new GstPipeline with a capacity of bufferSize. * @see GstDataLine#DEFAULT_BUFFER_SIZE */ public GstPipeline(int bufferSize) ! { // see if we need to detect the size of the named pipe or we can use // an already computet default for this system. // Note that this is very different from the bufferSize parameter, *************** public class GstPipeline *** 150,184 **** { capacity = detect_pipe_size(); } ! prefs.putLong(CAPACITY_KEY, capacity); } ! // FIXME: bufferSize actually not used nor needed by the backend. // Applications that expects a buffer of different size will be a // bit disappointed by that.. init_instance(); ! // need to remove the named pipe in case of abnormal termination Runtime.getRuntime().addShutdownHook(new CleanPipeline()); } ! /** * Creates a source pipeline. A source pipeline is a pipe you send data for * processing using the write method. */ public void createForWrite() throws LineUnavailableException ! { // create the named pipe if (!create_named_pipe(this.pipeline)) throw new LineUnavailableException("Unable to create filesystem pipe"); ! open_native_pipe(this.pipeline, READ); prepareWrite(); ! this.source = true; } ! /** * @return the state */ --- 150,184 ---- { capacity = detect_pipe_size(); } ! prefs.putLong(CAPACITY_KEY, capacity); } ! // FIXME: bufferSize actually not used nor needed by the backend. // Applications that expects a buffer of different size will be a // bit disappointed by that.. init_instance(); ! // need to remove the named pipe in case of abnormal termination Runtime.getRuntime().addShutdownHook(new CleanPipeline()); } ! /** * Creates a source pipeline. A source pipeline is a pipe you send data for * processing using the write method. */ public void createForWrite() throws LineUnavailableException ! { // create the named pipe if (!create_named_pipe(this.pipeline)) throw new LineUnavailableException("Unable to create filesystem pipe"); ! open_native_pipe(this.pipeline, READ); prepareWrite(); ! this.source = true; } ! /** * @return the state */ *************** public class GstPipeline *** 195,201 **** { setState(State.STOP); } ! /** * @param state the state to set */ --- 195,201 ---- { setState(State.STOP); } ! /** * @param state the state to set */ *************** public class GstPipeline *** 211,217 **** case PAUSE: _state = 1; break; ! case STOP: case CLOSE: _state = 2; closePipe(); --- 211,217 ---- case PAUSE: _state = 1; break; ! case STOP: case CLOSE: _state = 2; closePipe(); *************** public class GstPipeline *** 221,258 **** if (set_state(pipeline, _state)) GstPipeline.this.state = state; } ! /** * Return a reference to the GstPipeline native class as a Pointer object. * This method is intended as an helper accessor and the returned pointer ! * needs to be casted and used in the native code only. ! * * @return Pointer to the native GstPipeline class. */ public Pointer getNativeClass() { return this.pipeline; } ! /** * Write length bytes from the given buffer into this pipeline, * starting at offset. ! * This method block if the pipeline can't accept more data. ! * * @param buffer * @param offset * @param length * @return */ public int write(byte[] buffer, int offset, int length) ! { if (this.state == State.STOP) return -1; else if (this.state == State.PAUSE) return 0; else if (!ready) return -1; ! try { if (output != null) --- 221,258 ---- if (set_state(pipeline, _state)) GstPipeline.this.state = state; } ! /** * Return a reference to the GstPipeline native class as a Pointer object. * This method is intended as an helper accessor and the returned pointer ! * needs to be casted and used in the native code only. ! * * @return Pointer to the native GstPipeline class. */ public Pointer getNativeClass() { return this.pipeline; } ! /** * Write length bytes from the given buffer into this pipeline, * starting at offset. ! * This method block if the pipeline can't accept more data. ! * * @param buffer * @param offset * @param length * @return */ public int write(byte[] buffer, int offset, int length) ! { if (this.state == State.STOP) return -1; else if (this.state == State.PAUSE) return 0; else if (!ready) return -1; ! try { if (output != null) *************** public class GstPipeline *** 266,280 **** { /* nothing to do */ } ! return -1; } ! public int read(byte[] buffer, int offset, int length) { return 0; } ! public int available() { if (this.source) --- 266,280 ---- { /* nothing to do */ } ! return -1; } ! public int read(byte[] buffer, int offset, int length) { return 0; } ! public int available() { if (this.source) *************** public class GstPipeline *** 282,288 **** else return available(this.pipeline, WRITE); } ! /** * Wait for remaining data to be enqueued in the pipeline. */ --- 282,288 ---- else return available(this.pipeline, WRITE); } ! /** * Wait for remaining data to be enqueued in the pipeline. */ *************** public class GstPipeline *** 290,302 **** { if (this.state == State.STOP) return; ! try { // wait untill there is anymore data in the pipe while (available(this.pipeline, QUEUED) > 0) Thread.sleep(3000); ! // plus a bit to allow data to be processed Thread.sleep(1000); } --- 290,302 ---- { if (this.state == State.STOP) return; ! try { // wait untill there is anymore data in the pipe while (available(this.pipeline, QUEUED) > 0) Thread.sleep(3000); ! // plus a bit to allow data to be processed Thread.sleep(1000); } *************** public class GstPipeline *** 305,311 **** /* nothing to do*/ } } ! /** * Flush all the data currently waiting to be processed. */ --- 305,311 ---- /* nothing to do*/ } } ! /** * Flush all the data currently waiting to be processed. */ *************** public class GstPipeline *** 321,327 **** /* nothing */ } } ! private void closePipe() { try --- 321,327 ---- /* nothing */ } } ! private void closePipe() { try *************** public class GstPipeline *** 335,341 **** /* nothing to do */ } } ! private void prepareWrite() { try --- 335,341 ---- /* nothing to do */ } } ! private void prepareWrite() { try *************** public class GstPipeline *** 351,404 **** GstPipeline.this.ready = false; } } ! /* ***** native ***** */ ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the static initializer. */ native private static final void init_id_cache(); ! /** * Set the playing state of this pipeline. */ native private static final boolean set_state(Pointer pipeline, int state); ! /** * Get the number of bytes currently available for reading or writing * from the pipeline. */ native private static final int available(Pointer pipeline, int mode); ! /** * Open the native pipeline with the given mode. */ native private static final void open_native_pipe(Pointer jpipeline, int mode); ! /** * Close the native pipeline. */ native private static final void close_native_pipe(Pointer jpipeline); ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the class constructor. */ native private final void init_instance(); ! /** * Crates the named pipe used to pass data between the application code * and gstreamer. */ native private final boolean create_named_pipe(Pointer jpipeline); ! /** * Detect and return the size of the filesystem named pipe. */ native private final long detect_pipe_size(); ! private class CleanPipeline extends Thread { public void run() --- 351,404 ---- GstPipeline.this.ready = false; } } ! /* ***** native ***** */ ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the static initializer. */ native private static final void init_id_cache(); ! /** * Set the playing state of this pipeline. */ native private static final boolean set_state(Pointer pipeline, int state); ! /** * Get the number of bytes currently available for reading or writing * from the pipeline. */ native private static final int available(Pointer pipeline, int mode); ! /** * Open the native pipeline with the given mode. */ native private static final void open_native_pipe(Pointer jpipeline, int mode); ! /** * Close the native pipeline. */ native private static final void close_native_pipe(Pointer jpipeline); ! /** * Initialize the native peer and enables the object cache. * It is meant to be used by the class constructor. */ native private final void init_instance(); ! /** * Crates the named pipe used to pass data between the application code * and gstreamer. */ native private final boolean create_named_pipe(Pointer jpipeline); ! /** * Detect and return the size of the filesystem named pipe. */ native private final long detect_pipe_size(); ! private class CleanPipeline extends Thread { public void run() *************** public class GstPipeline *** 406,412 **** GstPipeline.close_native_pipe(GstPipeline.this.pipeline); } } ! static { System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$ --- 406,412 ---- GstPipeline.close_native_pipe(GstPipeline.this.pipeline); } } ! static { System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java *** gcc-4.5.2/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java Tue Jan 11 19:46:05 2011 *************** public class GstSourceDataLine *** 51,57 **** { private GstPipeline pipeline = null; private boolean open = false; ! public GstSourceDataLine(AudioFormat format) { super(format); --- 51,57 ---- { private GstPipeline pipeline = null; private boolean open = false; ! public GstSourceDataLine(AudioFormat format) { super(format); *************** public class GstSourceDataLine *** 60,79 **** public void open() throws LineUnavailableException { AudioSecurityManager.checkPermissions(Permission.PLAY); ! if (open) throw new IllegalStateException("Line already opened"); ! // create the pipeline pipeline = GstNativeDataLine.createSourcePipeline(getBufferSize()); ! this.open = true; } ! public void open(AudioFormat fmt) throws LineUnavailableException { AudioSecurityManager.checkPermissions(Permission.PLAY); ! setFormat(fmt); this.open(); } --- 60,79 ---- public void open() throws LineUnavailableException { AudioSecurityManager.checkPermissions(Permission.PLAY); ! if (open) throw new IllegalStateException("Line already opened"); ! // create the pipeline pipeline = GstNativeDataLine.createSourcePipeline(getBufferSize()); ! this.open = true; } ! public void open(AudioFormat fmt) throws LineUnavailableException { AudioSecurityManager.checkPermissions(Permission.PLAY); ! setFormat(fmt); this.open(); } *************** public class GstSourceDataLine *** 81,93 **** public void open(AudioFormat fmt, int size) throws LineUnavailableException { AudioSecurityManager.checkPermissions(Permission.PLAY); ! setBufferSize(size); this.open(fmt); } public int write(byte[] buf, int offset, int length) ! { return this.pipeline.write(buf, offset, length); } --- 81,93 ---- public void open(AudioFormat fmt, int size) throws LineUnavailableException { AudioSecurityManager.checkPermissions(Permission.PLAY); ! setBufferSize(size); this.open(fmt); } public int write(byte[] buf, int offset, int length) ! { return this.pipeline.write(buf, offset, length); } *************** public class GstSourceDataLine *** 145,151 **** pipeline.close(); this.open = false; } ! public boolean isRunning() { return (pipeline.getState() == State.PLAY); --- 145,151 ---- pipeline.close(); this.open = false; } ! public boolean isRunning() { return (pipeline.getState() == State.PLAY); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/plaf/gnu/GNULookAndFeel.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/plaf/gnu/GNULookAndFeel.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/plaf/gnu/GNULookAndFeel.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/plaf/gnu/GNULookAndFeel.java Tue Jan 11 19:46:05 2011 *************** public class GNULookAndFeel extends Basi *** 72,96 **** "CheckBox.icon", new CheckBoxIcon(), "RadioButton.icon", new RadioButtonIcon(), "Tree.hash", new ColorUIResource(Color.black), ! ! "Tree.closedIcon", ! new IconUIResource(new ImageIcon ! (getClass().getResource ! (iconspath + "TreeClosed.png"))), ! "Tree.leafIcon", ! new IconUIResource(new ImageIcon ! (getClass().getResource ! (iconspath + "TreeLeaf.png"))), ! "Tree.openIcon", ! new IconUIResource(new ImageIcon ! (getClass().getResource ! (iconspath + "TreeOpen.png"))), }; LAF_defaults.putDefaults(myDefaults); } return LAF_defaults; } ! /** * The icon used for CheckBoxes in the BasicLookAndFeel. This is an empty * icon with a size of 13x13 pixels. --- 72,96 ---- "CheckBox.icon", new CheckBoxIcon(), "RadioButton.icon", new RadioButtonIcon(), "Tree.hash", new ColorUIResource(Color.black), ! ! "Tree.closedIcon", ! new IconUIResource(new ImageIcon ! (getClass().getResource ! (iconspath + "TreeClosed.png"))), ! "Tree.leafIcon", ! new IconUIResource(new ImageIcon ! (getClass().getResource ! (iconspath + "TreeLeaf.png"))), ! "Tree.openIcon", ! new IconUIResource(new ImageIcon ! (getClass().getResource ! (iconspath + "TreeOpen.png"))), }; LAF_defaults.putDefaults(myDefaults); } return LAF_defaults; } ! /** * The icon used for CheckBoxes in the BasicLookAndFeel. This is an empty * icon with a size of 13x13 pixels. *************** public class GNULookAndFeel extends Basi *** 133,153 **** { Color save = g.getColor(); g.setColor(c.getForeground()); ! g.drawRect(x, y, getIconWidth(), getIconHeight()); ! JCheckBox item = (JCheckBox) c; ! if (item.isSelected()) { g.drawLine(3 + x, 5 + y, 3 + x, 9 + y); g.drawLine(4 + x, 5 + y, 4 + x, 9 + y); g.drawLine(5 + x, 7 + y, 9 + x, 3 + y); g.drawLine(5 + x, 8 + y, 9 + x, 4 + y); } ! g.setColor(save); } } ! /** * The icon used for RadioButtons in the GNULookAndFeel. This is an empty * icon with a size of 13x13 pixels. --- 133,153 ---- { Color save = g.getColor(); g.setColor(c.getForeground()); ! g.drawRect(x, y, getIconWidth(), getIconHeight()); ! JCheckBox item = (JCheckBox) c; ! if (item.isSelected()) { g.drawLine(3 + x, 5 + y, 3 + x, 9 + y); g.drawLine(4 + x, 5 + y, 4 + x, 9 + y); g.drawLine(5 + x, 7 + y, 9 + x, 3 + y); g.drawLine(5 + x, 8 + y, 9 + x, 4 + y); } ! g.setColor(save); } } ! /** * The icon used for RadioButtons in the GNULookAndFeel. This is an empty * icon with a size of 13x13 pixels. *************** public class GNULookAndFeel extends Basi *** 190,196 **** { Color savedColor = g.getColor(); JRadioButton b = (JRadioButton) c; ! // draw outer circle if (b.isEnabled()) g.setColor(Color.GRAY); --- 190,196 ---- { Color savedColor = g.getColor(); JRadioButton b = (JRadioButton) c; ! // draw outer circle if (b.isEnabled()) g.setColor(Color.GRAY); *************** public class GNULookAndFeel extends Basi *** 218,230 **** g.drawLine(x + 10, y + 4, x + 10, y + 7); g.fillRect(x + 2, y + 2, 8, 8); } ! else { // only draw inner highlight if not filled if (b.isEnabled()) { g.setColor(Color.WHITE); ! g.drawLine(x + 2, y + 8, x + 2, y + 9); g.drawLine(x + 1, y + 4, x + 1, y + 7); g.drawLine(x + 2, y + 2, x + 2, y + 3); --- 218,230 ---- g.drawLine(x + 10, y + 4, x + 10, y + 7); g.fillRect(x + 2, y + 2, 8, 8); } ! else { // only draw inner highlight if not filled if (b.isEnabled()) { g.setColor(Color.WHITE); ! g.drawLine(x + 2, y + 8, x + 2, y + 9); g.drawLine(x + 1, y + 4, x + 1, y + 7); g.drawLine(x + 2, y + 2, x + 2, y + 3); *************** public class GNULookAndFeel extends Basi *** 238,244 **** if (b.isEnabled()) { g.setColor(Color.WHITE); ! // outer g.drawLine(x + 10, y + 1, x + 10, y + 1); g.drawLine(x + 11, y + 2, x + 11, y + 3); --- 238,244 ---- if (b.isEnabled()) { g.setColor(Color.WHITE); ! // outer g.drawLine(x + 10, y + 1, x + 10, y + 1); g.drawLine(x + 11, y + 2, x + 11, y + 3); *************** public class GNULookAndFeel extends Basi *** 249,255 **** g.drawLine(x + 4, y + 12, x + 7, y + 12); g.drawLine(x + 2, y + 11, x + 3, y + 11); } ! if (b.isSelected()) { if (b.isEnabled()) --- 249,255 ---- g.drawLine(x + 4, y + 12, x + 7, y + 12); g.drawLine(x + 2, y + 11, x + 3, y + 11); } ! if (b.isSelected()) { if (b.isEnabled()) *************** public class GNULookAndFeel extends Basi *** 261,266 **** g.drawLine(x + 4, y + 8, x + 7, y + 8); } g.setColor(savedColor); ! } } } --- 261,266 ---- g.drawLine(x + 4, y + 8, x + 7, y + 8); } g.setColor(savedColor); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/CharacterAttributeTranslator.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/CharacterAttributeTranslator.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/CharacterAttributeTranslator.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/CharacterAttributeTranslator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharacterAttributeTranslator.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharacterAttributeTranslator.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class CharacterAttributeTranslato *** 56,62 **** * Maps color name to its hex encoding. */ private static final HashMap colorMap = new HashMap(); ! static { colorMap.put("aqua" , "#00FFFF"); colorMap.put("blue" , "#0000FF"); --- 56,62 ---- * Maps color name to its hex encoding. */ private static final HashMap colorMap = new HashMap(); ! static { colorMap.put("aqua" , "#00FFFF"); colorMap.put("blue" , "#0000FF"); *************** public class CharacterAttributeTranslato *** 75,85 **** colorMap.put("white" , "#FFFFFF"); colorMap.put("yellow" , "#FFFF00"); } ! /** * Convert the color string represenation into java.awt.Color. The valid * values are like "aqua" , "#00FFFF" or "rgb(1,6,44)". ! * * @param colorName the color to convert. * @return the matching java.awt.color */ --- 75,85 ---- colorMap.put("white" , "#FFFFFF"); colorMap.put("yellow" , "#FFFF00"); } ! /** * Convert the color string represenation into java.awt.Color. The valid * values are like "aqua" , "#00FFFF" or "rgb(1,6,44)". ! * * @param colorName the color to convert. * @return the matching java.awt.color */ *************** public class CharacterAttributeTranslato *** 118,191 **** return null; } } ! /** * Translate the HTML character attribute to the Swing style constant. ! * * @param charAttr the character attributes of the html tag * @param t the html tag itself * @param a the attribute set where the translated attributes will be stored ! * * @return true if some attributes were translated, false otherwise. */ ! public static boolean translateTag(MutableAttributeSet charAttr, ! Tag t, MutableAttributeSet a) { if(t == Tag.FONT) { ! Object color = a.getAttribute(Attribute.COLOR); ! if(color != null) ! { ! Color c = getColor(color.toString()); ! if( c == null ) ! return false; ! charAttr.addAttribute(StyleConstants.Foreground, c); ! return true; ! } ! if(a.getAttribute(Attribute.SIZE) != null) ! { ! // FIXME ! // charAttr.addAttribute(StyleConstants.FontSize, ! // new java.lang.Integer(72)); ! return true; ! } } if( t == Tag.B ) { ! charAttr.addAttribute(StyleConstants.Bold, Boolean.TRUE); ! return true; } if( t == Tag.I ) { ! charAttr.addAttribute(StyleConstants.Italic, Boolean.TRUE); ! return true; } if( t == Tag.U ) { ! charAttr.addAttribute(StyleConstants.Underline, Boolean.TRUE); ! return true; } if( t == Tag.STRIKE ) { ! charAttr.addAttribute(StyleConstants.StrikeThrough, Boolean.TRUE); ! return true; } if( t == Tag.SUP ) { ! charAttr.addAttribute(StyleConstants.Superscript, Boolean.TRUE); ! return true; } if( t == Tag.SUB ) { ! charAttr.addAttribute(StyleConstants.Subscript, Boolean.TRUE); ! return true; } return false; } --- 118,191 ---- return null; } } ! /** * Translate the HTML character attribute to the Swing style constant. ! * * @param charAttr the character attributes of the html tag * @param t the html tag itself * @param a the attribute set where the translated attributes will be stored ! * * @return true if some attributes were translated, false otherwise. */ ! public static boolean translateTag(MutableAttributeSet charAttr, ! Tag t, MutableAttributeSet a) { if(t == Tag.FONT) { ! Object color = a.getAttribute(Attribute.COLOR); ! if(color != null) ! { ! Color c = getColor(color.toString()); ! if( c == null ) ! return false; ! charAttr.addAttribute(StyleConstants.Foreground, c); ! return true; ! } ! if(a.getAttribute(Attribute.SIZE) != null) ! { ! // FIXME ! // charAttr.addAttribute(StyleConstants.FontSize, ! // new java.lang.Integer(72)); ! return true; ! } } if( t == Tag.B ) { ! charAttr.addAttribute(StyleConstants.Bold, Boolean.TRUE); ! return true; } if( t == Tag.I ) { ! charAttr.addAttribute(StyleConstants.Italic, Boolean.TRUE); ! return true; } if( t == Tag.U ) { ! charAttr.addAttribute(StyleConstants.Underline, Boolean.TRUE); ! return true; } if( t == Tag.STRIKE ) { ! charAttr.addAttribute(StyleConstants.StrikeThrough, Boolean.TRUE); ! return true; } if( t == Tag.SUP ) { ! charAttr.addAttribute(StyleConstants.Superscript, Boolean.TRUE); ! return true; } if( t == Tag.SUB ) { ! charAttr.addAttribute(StyleConstants.Subscript, Boolean.TRUE); ! return true; } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/CombinedAttributes.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/CombinedAttributes.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/CombinedAttributes.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/CombinedAttributes.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.SimpleAttributeS *** 48,55 **** * Contains the two combined attribute sets what are searched subsequently. * This is used to combine style sheet attributes with the HTML view attributes. * The parent cannot be used as the view may have its own attribute hierarchy. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class CombinedAttributes implements AttributeSet, Serializable { --- 48,55 ---- * Contains the two combined attribute sets what are searched subsequently. * This is used to combine style sheet attributes with the HTML view attributes. * The parent cannot be used as the view may have its own attribute hierarchy. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class CombinedAttributes implements AttributeSet, Serializable { *************** public class CombinedAttributes implemen *** 60,66 **** { /** * Create a combined enumeration that enumerates over two enumerations. ! * * @param first the first enumeration to enumerate * @param second the second enumeration to enumerate */ --- 60,66 ---- { /** * Create a combined enumeration that enumerates over two enumerations. ! * * @param first the first enumeration to enumerate * @param second the second enumeration to enumerate */ *************** public class CombinedAttributes implemen *** 69,114 **** a = first; b = second; } ! /** * The first enumeration (elements returned first) */ final Enumeration a; ! /** * The second enumeration (elements returned later) */ final Enumeration b; ! /** @inheritDoc */ public boolean hasMoreElements() { return a.hasMoreElements() || b.hasMoreElements(); } ! /** @inheritDoc */ public Object nextElement() { return a.hasMoreElements() ? a.nextElement():b.nextElement(); } } ! ! /** * The first attribute set. */ final AttributeSet a; ! /** * The second attribute set. */ final AttributeSet b; ! /** * Create the CombinedAttributes what search in the two sets. If any of the * two passed sets is null, another set is returned. Otherwise, the combined * attribute set is returned. ! * * @param primary the first set (searched first) * @param secondary the second set (searched later). */ --- 69,114 ---- a = first; b = second; } ! /** * The first enumeration (elements returned first) */ final Enumeration a; ! /** * The second enumeration (elements returned later) */ final Enumeration b; ! /** @inheritDoc */ public boolean hasMoreElements() { return a.hasMoreElements() || b.hasMoreElements(); } ! /** @inheritDoc */ public Object nextElement() { return a.hasMoreElements() ? a.nextElement():b.nextElement(); } } ! ! /** * The first attribute set. */ final AttributeSet a; ! /** * The second attribute set. */ final AttributeSet b; ! /** * Create the CombinedAttributes what search in the two sets. If any of the * two passed sets is null, another set is returned. Otherwise, the combined * attribute set is returned. ! * * @param primary the first set (searched first) * @param secondary the second set (searched later). */ *************** public class CombinedAttributes implemen *** 122,131 **** else return new CombinedAttributes(primary, secondary); } ! /** * Create the CombinedAttributes what search in the two sets. ! * * @param primary the first set (searched first) * @param secondary the second set (searched later). */ --- 122,131 ---- else return new CombinedAttributes(primary, secondary); } ! /** * Create the CombinedAttributes what search in the two sets. ! * * @param primary the first set (searched first) * @param secondary the second set (searched later). */ *************** public class CombinedAttributes implemen *** 170,176 **** Object value = a.getAttribute(key); if (value == null) value = b.getAttribute(key); ! return value; } --- 170,176 ---- Object value = a.getAttribute(key); if (value == null) value = b.getAttribute(key); ! return value; } *************** public class CombinedAttributes implemen *** 188,194 **** /** * There is no one. ! * * @return null, always. */ public AttributeSet getResolveParent() --- 188,194 ---- /** * There is no one. ! * * @return null, always. */ public AttributeSet getResolveParent() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/ImageViewIconFactory.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/ImageViewIconFactory.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/ImageViewIconFactory.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/ImageViewIconFactory.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.metal.MetalLookA *** 14,20 **** * icons as they would be described in the text (sheet of paper with image and * broken sheet of paper with image). They are not pixel to pixel identical and * contain elements from the metal icon factory. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public class ImageViewIconFactory --- 14,20 ---- * icons as they would be described in the text (sheet of paper with image and * broken sheet of paper with image). They are not pixel to pixel identical and * contain elements from the metal icon factory. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public class ImageViewIconFactory *************** public class ImageViewIconFactory *** 22,31 **** private static Icon noImageIcon; private static Icon loadingImageIcon; ! /** * This icon reflects the general concept (broken sheet of paper with ! * image), but is currently not pixel to pixel identical with the Sun's * implementation. */ public static class NoImageIcon implements Icon, Serializable --- 22,31 ---- private static Icon noImageIcon; private static Icon loadingImageIcon; ! /** * This icon reflects the general concept (broken sheet of paper with ! * image), but is currently not pixel to pixel identical with the Sun's * implementation. */ public static class NoImageIcon implements Icon, Serializable *************** public class ImageViewIconFactory *** 40,46 **** /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ public int getIconWidth() --- 40,46 ---- /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ public int getIconWidth() *************** public class ImageViewIconFactory *** 50,56 **** /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ public int getIconHeight() --- 50,56 ---- /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ public int getIconHeight() *************** public class ImageViewIconFactory *** 60,66 **** /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c * the component (ignored). * @param g --- 60,66 ---- /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c * the component (ignored). * @param g *************** public class ImageViewIconFactory *** 166,172 **** /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ public int getIconWidth() --- 166,172 ---- /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ public int getIconWidth() *************** public class ImageViewIconFactory *** 176,182 **** /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ public int getIconHeight() --- 176,182 ---- /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ public int getIconHeight() *************** public class ImageViewIconFactory *** 186,192 **** /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c * the component (ignored). * @param g --- 186,192 ---- /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c * the component (ignored). * @param g *************** public class ImageViewIconFactory *** 219,225 **** g.drawLine(x + 21, y + 24, x + 21, y + 7); g.drawLine(x + 18, y + 2, x + 20, y + 4); ! // Picture (house) y += 3; x += 3; --- 219,225 ---- g.drawLine(x + 21, y + 24, x + 21, y + 7); g.drawLine(x + 18, y + 2, x + 20, y + 4); ! // Picture (house) y += 3; x += 3; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/css/BorderStyle.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/css/BorderStyle.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/css/BorderStyle.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/css/BorderStyle.java Tue Jan 11 19:46:05 2011 *************** public class BorderStyle *** 59,64 **** || value.equals("solid") || value.equals("double") || value.equals("groove") || value.equals("ridge") || value.equals("inset") || value.equals("outset"); ! } } --- 59,64 ---- || value.equals("solid") || value.equals("double") || value.equals("groove") || value.equals("ridge") || value.equals("inset") || value.equals("outset"); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/css/CSSParser.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/css/CSSParser.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/css/CSSParser.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/css/CSSParser.java Tue Jan 11 19:46:05 2011 *************** public class CSSParser *** 113,119 **** * * @return true if the stylesheet could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseStylesheet() --- 113,119 ---- * * @return true if the stylesheet could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseStylesheet() *************** public class CSSParser *** 137,143 **** * Parses a CSS statement. * @return true if the stylesheet could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseStatement() --- 137,143 ---- * Parses a CSS statement. * @return true if the stylesheet could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseStatement() *************** public class CSSParser *** 151,157 **** * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseRuleset() --- 151,157 ---- * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseRuleset() *************** public class CSSParser *** 232,238 **** * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseDeclaration() --- 232,238 ---- * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseDeclaration() *************** public class CSSParser *** 282,288 **** ret = false; error = "Expected colon to separate property and value"; } ! } else { --- 282,288 ---- ret = false; error = "Expected colon to separate property and value"; } ! } else { *************** public class CSSParser *** 300,306 **** * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseValue(StringBuilder s) --- 300,306 ---- * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseValue(StringBuilder s) *************** public class CSSParser *** 321,327 **** * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseSelector(StringBuilder sel) --- 321,327 ---- * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseSelector(StringBuilder sel) *************** public class CSSParser *** 345,351 **** * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseAny(StringBuilder s) --- 345,351 ---- * * @return true if the ruleset could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseAny(StringBuilder s) *************** public class CSSParser *** 389,395 **** * * @return true if the at-rule could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseAtRule() --- 389,395 ---- * * @return true if the at-rule could be parsed successfully, * false otherwise ! * * @throws IOException if an IO or parse error occurs */ private boolean parseAtRule() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/css/CSSScanner.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/css/CSSScanner.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/css/CSSScanner.java Mon Dec 11 17:58:01 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/css/CSSScanner.java Tue Jan 11 19:46:05 2011 *************** class CSSScanner *** 485,491 **** } else throw new CSSLexicalException("Escape must start with '\\'"); ! } private void readName() --- 485,491 ---- } else throw new CSSLexicalException("Escape must start with '\\'"); ! } private void readName() *************** class CSSScanner *** 595,601 **** } // Push back last character read. lookahead[0] = ch; ! } private void readURI() --- 595,601 ---- } // Push back last character read. lookahead[0] = ch; ! } private void readURI() *************** class CSSScanner *** 642,648 **** } if (ch == -1) throw new CSSLexicalException("Unterminated comment"); ! // Push back last character read. lookahead[0] = ch; } --- 642,648 ---- } if (ch == -1) throw new CSSLexicalException("Unterminated comment"); ! // Push back last character read. lookahead[0] = ch; } *************** class CSSScanner *** 675,681 **** parseBuffer[tokenEnd] = (char) ch; tokenEnd++; ch = read(); ! } } else throw new CSSLexicalException("Invalid number"); --- 675,681 ---- parseBuffer[tokenEnd] = (char) ch; tokenEnd++; ch = read(); ! } } else throw new CSSLexicalException("Invalid number"); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,49 **** package gnu.javax.swing.text.html.css; import java.util.Map; import java.util.StringTokenizer; /** * A CSS selector. This provides methods to interpret a selector and ! * query matches with an actual HTML element tree. */ public class Selector { --- 38,52 ---- package gnu.javax.swing.text.html.css; + import gnu.java.lang.CPStringBuilder; + + import java.util.List; import java.util.Map; import java.util.StringTokenizer; /** * A CSS selector. This provides methods to interpret a selector and ! * query matches with an actual HTML element tree. */ public class Selector { *************** public class Selector *** 97,110 **** * @return true when this selector matches the element path, * false otherwise */ ! public boolean matches(String[] tags, Map[] attributes) { // TODO: This implements class, id and descendent matching. These are // the most commonly used selector matchers in CSS together with HTML. // However, the CSS spec defines a couple of more sophisticated matches // which should be implemented. // http://www.w3.org/TR/CSS21/selector.html ! // All parts of the selector must match at some point. boolean match = false; int numTags = tags.length; --- 100,113 ---- * @return true when this selector matches the element path, * false otherwise */ ! public boolean matches(String[] tags, List> attributes) { // TODO: This implements class, id and descendent matching. These are // the most commonly used selector matchers in CSS together with HTML. // However, the CSS spec defines a couple of more sophisticated matches // which should be implemented. // http://www.w3.org/TR/CSS21/selector.html ! // All parts of the selector must match at some point. boolean match = false; int numTags = tags.length; *************** public class Selector *** 118,128 **** boolean tagMatch = false; for (; tagIndex < numTags && tagMatch == false; tagIndex++) { ! Object pathClass = attributes[tagIndex].get("class"); // Try pseudo class too. ! Object pseudoClass = attributes[tagIndex].get("_pseudo"); ! Object dynClass = attributes[tagIndex].get("_dynamic"); ! Object pathId = attributes[tagIndex].get("id"); String tag = elements[j]; String clazz = classes[j]; String id = ids[j]; --- 121,131 ---- boolean tagMatch = false; for (; tagIndex < numTags && tagMatch == false; tagIndex++) { ! Object pathClass = attributes.get(tagIndex).get("class"); // Try pseudo class too. ! Object pseudoClass = attributes.get(tagIndex).get("_pseudo"); ! Object dynClass = attributes.get(tagIndex).get("_dynamic"); ! Object pathId = attributes.get(tagIndex).get("id"); String tag = elements[j]; String clazz = classes[j]; String id = ids[j]; *************** public class Selector *** 167,173 **** */ public String toString() { ! StringBuilder b = new StringBuilder(); for (int i = selector.length - 1; i >= 0; i--) { b.append(selector[i]); --- 170,176 ---- */ public String toString() { ! CPStringBuilder b = new CPStringBuilder(); for (int i = selector.length - 1; i >= 0; i--) { b.append(selector[i]); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.html.parser.TagE *** 53,60 **** /** * This parser delegator uses the different DTD ({@link HTML_401Swing}). * It is derived from the ParserDelegator for the compatibility reasons. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class GnuParserDelegator extends ParserDelegator implements Serializable { --- 53,60 ---- /** * This parser delegator uses the different DTD ({@link HTML_401Swing}). * It is derived from the ParserDelegator for the compatibility reasons. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class GnuParserDelegator extends ParserDelegator implements Serializable { *************** public class GnuParserDelegator extends *** 121,127 **** */ private static final long serialVersionUID = -1276686502624777206L; ! private DTD theDtd; /** * The callback. --- 121,127 ---- */ private static final long serialVersionUID = -1276686502624777206L; ! private DTD theDtd; /** * The callback. *************** public class GnuParserDelegator extends *** 135,144 **** * This is package-private to avoid an accessor method. */ gnuParser gnu; ! /** * Create the parser that uses the given DTD to parse the document. ! * * @param theDtd the DTD */ public GnuParserDelegator(DTD theDtd) --- 135,144 ---- * This is package-private to avoid an accessor method. */ gnuParser gnu; ! /** * Create the parser that uses the given DTD to parse the document. ! * * @param theDtd the DTD */ public GnuParserDelegator(DTD theDtd) *************** public class GnuParserDelegator extends *** 150,156 **** /** * Parses the HTML document, calling methods of the provided callback. This * method must be multithread - safe. ! * * @param reader The reader to read the HTML document from * @param a_callback The callback that is notifyed about the presence of HTML * elements in the document. --- 150,156 ---- /** * Parses the HTML document, calling methods of the provided callback. This * method must be multithread - safe. ! * * @param reader The reader to read the HTML document from * @param a_callback The callback that is notifyed about the presence of HTML * elements in the document. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401F.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401F.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401F.java Wed Jul 1 19:13:03 2009 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401F.java Tue Jan 11 19:46:05 2011 *************** public class HTML_401F *** 2499,2505 **** attr(VALUE, null, null, 0, IMPLIED) } ); ! // Headers in the paragraph are not allowed. defElement(P, 0, false, true, new ContentModel( 0, new noTagModel(new String[] { P, H1, H2, H3, H4, H5, H6 }), null), --- 2499,2505 ---- attr(VALUE, null, null, 0, IMPLIED) } ); ! // Headers in the paragraph are not allowed. defElement(P, 0, false, true, new ContentModel( 0, new noTagModel(new String[] { P, H1, H2, H3, H4, H5, H6 }), null), *************** public class HTML_401F *** 3775,3781 **** li.type = ul.type = ol.type = '|'; return li; } ! /** * Get elements that are allowed in the document body, at the zero level. */ --- 3775,3781 ---- li.type = ul.type = ol.type = '|'; return li; } ! /** * Get elements that are allowed in the document body, at the zero level. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.html.HTML.Tag; *** 50,67 **** * Small fixed HTML attribute set. The most of the HTML elements contain only * several attributes. With four attributes, the number of operations in more * complex algorithms is not larger than using the naive algorithm. ! * * Same as HtmlAttributeSet, this set allows both strings and non-string as * keys. The strings are case insensitive, the non strings are compared with * .equals. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class SmallHtmlAttributeSet implements AttributeSet, Cloneable, Serializable { private static final long serialVersionUID = 1; ! /** * The keys, stored in this attribute set. */ --- 50,67 ---- * Small fixed HTML attribute set. The most of the HTML elements contain only * several attributes. With four attributes, the number of operations in more * complex algorithms is not larger than using the naive algorithm. ! * * Same as HtmlAttributeSet, this set allows both strings and non-string as * keys. The strings are case insensitive, the non strings are compared with * .equals. ! * ! * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class SmallHtmlAttributeSet implements AttributeSet, Cloneable, Serializable { private static final long serialVersionUID = 1; ! /** * The keys, stored in this attribute set. */ *************** public class SmallHtmlAttributeSet *** 80,86 **** /** * Create a new small fixed attribute set that contains the unchangeable copy * of the passed attribute set and inherits its parent. ! * * @param copyFrom the attribute set, containing the attribute values to copy. */ public SmallHtmlAttributeSet(AttributeSet copyFrom) --- 80,86 ---- /** * Create a new small fixed attribute set that contains the unchangeable copy * of the passed attribute set and inherits its parent. ! * * @param copyFrom the attribute set, containing the attribute values to copy. */ public SmallHtmlAttributeSet(AttributeSet copyFrom) *************** public class SmallHtmlAttributeSet *** 143,149 **** /** * Get the attribute value, matching this key. If not found in this set, the * call is delegated to parent. ! * * @return the value, matching key (or null if none). */ public Object getAttribute(Object key) --- 143,149 ---- /** * Get the attribute value, matching this key. If not found in this set, the * call is delegated to parent. ! * * @return the value, matching key (or null if none). */ public Object getAttribute(Object key) *************** public class SmallHtmlAttributeSet *** 218,224 **** } }; } ! /** * Get the parent that this set uses to resolve the not found attributes. */ --- 218,224 ---- } }; } ! /** * Get the parent that this set uses to resolve the not found attributes. */ *************** public class SmallHtmlAttributeSet *** 226,232 **** { return parent; } ! /** * Check if the given attribute is defined in this set (not in the parent). */ --- 226,232 ---- { return parent; } ! /** * Check if the given attribute is defined in this set (not in the parent). */ *************** public class SmallHtmlAttributeSet *** 242,248 **** } return false; } ! /** * Check this set and another set for equality by content. */ --- 242,248 ---- } return false; } ! /** * Check this set and another set for equality by content. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/htmlAttributeSet.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/htmlAttributeSet.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/htmlAttributeSet.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/htmlAttributeSet.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.html.HTML; *** 46,52 **** /** * A set, adapted to store HTML attributes. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class htmlAttributeSet --- 46,52 ---- /** * A set, adapted to store HTML attributes. ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class htmlAttributeSet *************** public class htmlAttributeSet *** 54,66 **** { public static final htmlAttributeSet EMPTY_HTML_ATTRIBUTE_SET = new htmlAttributeSet(); ! AttributeSet parent; /** * Looks in this set and, if not found, later looks in the parent set. Calls * toString(), allowing to pass as HTML.Attribute, as String to this method. ! * * @param _key A key to search for a value. * @return The value, if one is defined. */ --- 54,66 ---- { public static final htmlAttributeSet EMPTY_HTML_ATTRIBUTE_SET = new htmlAttributeSet(); ! AttributeSet parent; /** * Looks in this set and, if not found, later looks in the parent set. Calls * toString(), allowing to pass as HTML.Attribute, as String to this method. ! * * @param _key A key to search for a value. * @return The value, if one is defined. */ *************** public class htmlAttributeSet *** 119,125 **** /** * Set the parent set, containing the default values. ! * * @param a_parent */ public void setResolveParent(AttributeSet a_parent) --- 119,125 ---- /** * Set the parent set, containing the default values. ! * * @param a_parent */ public void setResolveParent(AttributeSet a_parent) *************** public class htmlAttributeSet *** 129,135 **** /** * Get the parent set, containing the default values. ! * * @return the parent, used to resolve the attributes. */ public AttributeSet getResolveParent() --- 129,135 ---- /** * Get the parent set, containing the default values. ! * * @return the parent, used to resolve the attributes. */ public AttributeSet getResolveParent() *************** public class htmlAttributeSet *** 139,145 **** /** * Add the attribute to this attribute set. ! * * @param key Attribute key (if string, it will be case insensitive) * @param value Attribute value */ --- 139,145 ---- /** * Add the attribute to this attribute set. ! * * @param key Attribute key (if string, it will be case insensitive) * @param value Attribute value */ *************** public class htmlAttributeSet *** 164,174 **** return new SmallHtmlAttributeSet(this); else return (AttributeSet) clone(); ! } ! /** * Returns a clone of the attribute set. ! * * @return A clone of the attribute set. */ public Object clone() --- 164,174 ---- return new SmallHtmlAttributeSet(this); else return (AttributeSet) clone(); ! } ! /** * Returns a clone of the attribute set. ! * * @return A clone of the attribute set. */ public Object clone() *************** public class htmlAttributeSet *** 179,183 **** if (parent != null) set.setResolveParent(parent); return set; ! } } --- 179,183 ---- if (parent != null) set.setResolveParent(parent); return set; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java Tue Jan 11 19:46:05 2011 *************** public abstract class htmlValidator *** 178,184 **** // If the tag has a content model defined, forcibly close all // tags that were opened after the tag being currently closed. ! closing: if (x.element.content != null) { iter = stack.listIterator(stack.size()); --- 178,184 ---- // If the tag has a content model defined, forcibly close all // tags that were opened after the tag being currently closed. ! closing: if (x.element.content != null) { iter = stack.listIterator(stack.size()); *************** public abstract class htmlValidator *** 272,278 **** { if (!stack.isEmpty()) { ! closing: do { hTag last = (hTag) stack.getLast(); --- 272,278 ---- { if (!stack.isEmpty()) { ! closing: do { hTag last = (hTag) stack.getLast(); *************** public abstract class htmlValidator *** 311,317 **** * content model recommends to insert making the situation ok. If Boolean.True * is returned, the content model current position is moved forward. Otherwise * this position remains the same. ! * * @param tElement * @return */ --- 311,317 ---- * content model recommends to insert making the situation ok. If Boolean.True * is returned, the content model current position is moved forward. Otherwise * this position remains the same. ! * * @param tElement * @return */ *************** public abstract class htmlValidator *** 503,511 **** { CPStringBuilder valid = new CPStringBuilder("The tag <" + tag.getHTMLTag() + ! "> cannot contain the attribute '" + foundAttribute + ! "'. The valid attributes for this tag are: " ! ); AttributeList a = tag.getElement().getAttributes(); --- 503,511 ---- { CPStringBuilder valid = new CPStringBuilder("The tag <" + tag.getHTMLTag() + ! "> cannot contain the attribute '" + foundAttribute + ! "'. The valid attributes for this tag are: " ! ); AttributeList a = tag.getElement().getAttributes(); *************** public abstract class htmlValidator *** 551,568 **** if (dtdAttribute.values.size() == 1) valid = new CPStringBuilder("The attribute '" + foundAttribute + ! "' of the tag <" + tag.getHTMLTag() + ! "> cannot have the value '" + value + ! "'. The only valid value is " ! ); else valid = new CPStringBuilder("The attribute '" + foundAttribute + ! "' of the tag <" + tag.getHTMLTag() + ! "> cannot have the value '" + value + "'. The " + ! dtdAttribute.values.size() + ! " valid values are: " ! ); Enumeration vv = dtdAttribute.values.elements(); while (vv.hasMoreElements()) --- 551,568 ---- if (dtdAttribute.values.size() == 1) valid = new CPStringBuilder("The attribute '" + foundAttribute + ! "' of the tag <" + tag.getHTMLTag() + ! "> cannot have the value '" + value + ! "'. The only valid value is " ! ); else valid = new CPStringBuilder("The attribute '" + foundAttribute + ! "' of the tag <" + tag.getHTMLTag() + ! "> cannot have the value '" + value + "'. The " + ! dtdAttribute.values.size() + ! " valid values are: " ! ); Enumeration vv = dtdAttribute.values.elements(); while (vv.hasMoreElements()) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java Tue Jan 11 19:46:05 2011 *************** public class list *** 156,162 **** matched = false; x = tokens [ i ]; ! nodescan: for (int j = 0; j < nodes.length; j++) { if (!nodes [ j ].isClosed()) --- 156,162 ---- matched = false; x = tokens [ i ]; ! nodescan: for (int j = 0; j < nodes.length; j++) { if (!nodes [ j ].isClosed()) *************** public class list *** 204,210 **** public boolean performMatch(Object token) { boolean ok = false; ! Matching: for (int i = 0; i < nodes.length; i++) { ok = nodes [ i ].performMatch(token); --- 204,210 ---- public boolean performMatch(Object token) { boolean ok = false; ! Matching: for (int i = 0; i < nodes.length; i++) { ok = nodes [ i ].performMatch(token); *************** public class list *** 248,254 **** boolean m; boolean matched = false; ! nodescan: for (int j = 0; j < nodes.length; j++) { if (!nodes [ j ].isClosed()) --- 248,254 ---- boolean m; boolean matched = false; ! nodescan: for (int j = 0; j < nodes.length; j++) { if (!nodes [ j ].isClosed()) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java Tue Jan 11 19:46:05 2011 *************** public class Parser *** 400,406 **** if (start.kind == EOF) return; ! read: while (true) { t = getTokenAhead(); --- 400,406 ---- if (start.kind == EOF) return; ! read: while (true) { t = getTokenAhead(); *************** public class Parser *** 446,452 **** Token t; Token last; ! comment: while (true) { t = getTokenAhead(); --- 446,452 ---- Token t; Token last; ! comment: while (true) { t = getTokenAhead(); *************** public class Parser *** 525,531 **** restOfTag(false, name, start); buffer.setLength(0); ! while (!SCRIPT_CLOSE.matches(this)) { append(getNextToken()); --- 525,531 ---- restOfTag(false, name, start); buffer.setLength(0); ! while (!SCRIPT_CLOSE.matches(this)) { append(getNextToken()); *************** public class Parser *** 554,560 **** mustBe(EXCLAMATION); buffer.setLength(0); ! read: while (true) { t = getNextToken(); --- 554,560 ---- mustBe(EXCLAMATION); buffer.setLength(0); ! read: while (true) { t = getNextToken(); *************** public class Parser *** 607,613 **** restOfTag(false, name, start); buffer.setLength(0); ! while (!STYLE_CLOSE.matches(this)) { append(getNextToken()); --- 607,613 ---- restOfTag(false, name, start); buffer.setLength(0); ! while (!STYLE_CLOSE.matches(this)) { append(getNextToken()); *************** public class Parser *** 944,950 **** optional(WS); ! attributeReading: while (getTokenAhead().kind == NUMTOKEN) { name = getNextToken(); --- 944,950 ---- optional(WS); ! attributeReading: while (getTokenAhead().kind == NUMTOKEN) { name = getNextToken(); *************** public class Parser *** 1012,1018 **** case SLASH: value = next; optional(WS); ! // Check maybe the opening quote is missing. next = getTokenAhead(); if (bQUOTING.get(next.kind)) --- 1012,1018 ---- case SLASH: value = next; optional(WS); ! // Check maybe the opening quote is missing. next = getTokenAhead(); if (bQUOTING.get(next.kind)) *************** public class Parser *** 1289,1295 **** int closeAt = 0; buffer.setLength(0); ! ahead: for (int i = 1; i < 100; i++) { t = getTokenAhead(i - 1); --- 1289,1295 ---- int closeAt = 0; buffer.setLength(0); ! ahead: for (int i = 1; i < 100; i++) { t = getTokenAhead(i - 1); *************** public class Parser *** 1356,1362 **** throws ParseException { buffer.setLength(0); ! read: while (true) { t = getNextToken(); --- 1356,1362 ---- throws ParseException { buffer.setLength(0); ! read: while (true) { t = getNextToken(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java Tue Jan 11 19:46:05 2011 *************** public class ReaderTokenizer *** 247,253 **** { if (numberOfTokens <= 0) return; ! for (int i = 0; i < numberOfTokens; i++) readToken(); } --- 247,253 ---- { if (numberOfTokens <= 0) return; ! for (int i = 0; i < numberOfTokens; i++) readToken(); } *************** public class ReaderTokenizer *** 261,267 **** Token t; int ch; ! enlarging: while (true) { t = tokenMatches(); --- 261,267 ---- Token t; int ch; ! enlarging: while (true) { t = tokenMatches(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java Tue Jan 11 19:46:05 2011 *************** public class textPreProcessor *** 51,57 **** * Pre - process non-preformatted text. \t, \r and \n mutate into spaces, then * multiple spaces mutate into single one, all whitespace around tags is * consumed. The content of the passed buffer is destroyed. ! * * @param a_text A text to pre-process. */ public char[] preprocess(StringBuffer a_text) --- 51,57 ---- * Pre - process non-preformatted text. \t, \r and \n mutate into spaces, then * multiple spaces mutate into single one, all whitespace around tags is * consumed. The content of the passed buffer is destroyed. ! * * @param a_text A text to pre-process. */ public char[] preprocess(StringBuffer a_text) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/javax/swing/tree/GnuPath.java gcc-4.6.0/libjava/classpath/gnu/javax/swing/tree/GnuPath.java *** gcc-4.5.2/libjava/classpath/gnu/javax/swing/tree/GnuPath.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/gnu/javax/swing/tree/GnuPath.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.tree.TreePath; *** 43,49 **** /** * The tree path with additional data. Needed for the optimized tree drawing. * Returned by layout caches. ! * * @author Audrius Meskauskas */ public class GnuPath extends TreePath --- 43,49 ---- /** * The tree path with additional data. Needed for the optimized tree drawing. * Returned by layout caches. ! * * @author Audrius Meskauskas */ public class GnuPath extends TreePath *************** public class GnuPath extends TreePath *** 52,61 **** * The flag, marking the last visible child. */ public boolean isLastChild; ! /** * Create a new path, specifying flag if this path is the path to the ! * last visible child (needed for optimized tree drawing). */ public GnuPath(Object[] path, boolean lastChild) { --- 52,61 ---- * The flag, marking the last visible child. */ public boolean isLastChild; ! /** * Create a new path, specifying flag if this path is the path to the ! * last visible child (needed for optimized tree drawing). */ public GnuPath(Object[] path, boolean lastChild) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/test/Fail.java gcc-4.6.0/libjava/classpath/gnu/test/Fail.java *** gcc-4.5.2/libjava/classpath/gnu/test/Fail.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/test/Fail.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Fail.java -- Result code returned when test failed but was expected to Copyright (c) 1998 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Fail.java -- Result code returned when test failed but was expected to Copyright (c) 1998 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/test/Pass.java gcc-4.6.0/libjava/classpath/gnu/test/Pass.java *** gcc-4.5.2/libjava/classpath/gnu/test/Pass.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/test/Pass.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Pass.java -- Result code returned when test passed and was excepted to Copyright (c) 1998 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Pass.java -- Result code returned when test passed and was excepted to Copyright (c) 1998 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/test/Test.java gcc-4.6.0/libjava/classpath/gnu/test/Test.java *** gcc-4.5.2/libjava/classpath/gnu/test/Test.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/test/Test.java Tue Jan 11 19:46:05 2011 *************** package gnu.test; *** 41,47 **** * Interface which all GNU Classpath tests must implement. * The method test is invoked once for each test. */ ! public interface Test { /** * Returns the name of the test. --- 41,47 ---- * Interface which all GNU Classpath tests must implement. * The method test is invoked once for each test. */ ! public interface Test { /** * Returns the name of the test. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/test/Unsupported.java gcc-4.6.0/libjava/classpath/gnu/test/Unsupported.java *** gcc-4.5.2/libjava/classpath/gnu/test/Unsupported.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/test/Unsupported.java Tue Jan 11 19:46:05 2011 *************** package gnu.test; *** 40,46 **** /** * Test does not have the required support to run. For example, * Unsupported could be returned when a needed resource ! * (ie. multicasting) is not available. */ public class Unsupported extends Result { --- 40,46 ---- /** * Test does not have the required support to run. For example, * Unsupported could be returned when a needed resource ! * (ie. multicasting) is not available. */ public class Unsupported extends Result { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/aelfred2/JAXPFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/aelfred2/JAXPFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/aelfred2/JAXPFactory.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/aelfred2/JAXPFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JAXPFactory.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JAXPFactory.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.xml.parsers.SAXParserFactor *** 63,69 **** public final class JAXPFactory extends SAXParserFactory { ! private Hashtable flags = new Hashtable(); /** --- 63,69 ---- public final class JAXPFactory extends SAXParserFactory { ! private Hashtable flags = new Hashtable(); /** *************** public final class JAXPFactory *** 86,92 **** parser.setFeature(SAXDriver.FEATURE + "validation", isValidating()); // that makes SAX2 feature flags trump JAXP ! while (e.hasMoreElements()) { String uri = (String) e.nextElement(); --- 86,92 ---- parser.setFeature(SAXDriver.FEATURE + "validation", isValidating()); // that makes SAX2 feature flags trump JAXP ! while (e.hasMoreElements()) { String uri = (String) e.nextElement(); *************** public final class JAXPFactory *** 98,105 **** } // yes, this "feature transfer" mechanism doesn't play well ! ! public void setFeature(String name, boolean value) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException { --- 98,105 ---- } // yes, this "feature transfer" mechanism doesn't play well ! ! public void setFeature(String name, boolean value) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException { *************** public final class JAXPFactory *** 108,114 **** // force "early" detection of errors where possible // (flags can't necessarily be set before parsing) new JaxpParser().getXMLReader().setFeature(name, value); ! flags.put(name, Boolean.valueOf(value)); } catch (SAXNotRecognizedException e) --- 108,114 ---- // force "early" detection of errors where possible // (flags can't necessarily be set before parsing) new JaxpParser().getXMLReader().setFeature(name, value); ! flags.put(name, Boolean.valueOf(value)); } catch (SAXNotRecognizedException e) *************** public final class JAXPFactory *** 127,138 **** } } ! public boolean getFeature(String name) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException { Boolean value = (Boolean) flags.get(name); ! if (value != null) { return value.booleanValue(); --- 127,138 ---- } } ! public boolean getFeature(String name) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException { Boolean value = (Boolean) flags.get(name); ! if (value != null) { return value.booleanValue(); *************** public final class JAXPFactory *** 159,183 **** } } } ! private static class JaxpParser extends SAXParser { ! private XmlReader ae2 = new XmlReader(); private XMLReaderAdapter parser = null; ! JaxpParser() { } ! public void setProperty(String id, Object value) throws SAXNotRecognizedException, SAXNotSupportedException { ae2.setProperty(id, value); } ! public Object getProperty(String id) throws SAXNotRecognizedException, SAXNotSupportedException { return ae2.getProperty(id); --- 159,183 ---- } } } ! private static class JaxpParser extends SAXParser { ! private XmlReader ae2 = new XmlReader(); private XMLReaderAdapter parser = null; ! JaxpParser() { } ! public void setProperty(String id, Object value) throws SAXNotRecognizedException, SAXNotSupportedException { ae2.setProperty(id, value); } ! public Object getProperty(String id) throws SAXNotRecognizedException, SAXNotSupportedException { return ae2.getProperty(id); *************** public final class JAXPFactory *** 210,216 **** throw new Error(); } } ! public boolean isValidating() { try --- 210,216 ---- throw new Error(); } } ! public boolean isValidating() { try *************** public final class JAXPFactory *** 222,231 **** throw new Error(); } } ! // TODO isXIncludeAware() ! } - - } --- 222,230 ---- throw new Error(); } } ! // TODO isXIncludeAware() ! } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/aelfred2/SAXDriver.java gcc-4.6.0/libjava/classpath/gnu/xml/aelfred2/SAXDriver.java *** gcc-4.5.2/libjava/classpath/gnu/xml/aelfred2/SAXDriver.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/aelfred2/SAXDriver.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SAXDriver.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SAXDriver.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.helpers.NamespaceSupp *** 80,124 **** * * * ! * ! * * * * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * * * * ! * * ! * *
            NameNotes
            Features ... URL prefix is * http://xml.org/sax/features/
            (URL)/external-general-entitiesValue defaults to true
            (URL)/external-parameter-entitiesValue defaults to true
            (URL)/is-standalone(PRELIMINARY) Returns true iff the document's parsing ! * has started (some non-error event after startDocument() ! * was reported) and the document's standalone flag is set.
            (URL)/namespace-prefixesValue defaults to false (but XML 1.0 names are ! * always reported)
            (URL)/lexical-handler/parameter-entitiesValue is fixed at true
            (URL)/namespacesValue defaults to true
            (URL)/resolve-dtd-uris(PRELIMINARY) Value defaults to true
            (URL)/string-interningValue is fixed at true
            (URL)/use-attributes2(PRELIMINARY) Value is fixed at true
            (URL)/use-entity-resolver2(PRELIMINARY) Value defaults to true
            (URL)/validationValue is fixed at false
            Handler Properties ... URL prefix is * http://xml.org/sax/properties/
            (URL)/declaration-handlerA declaration handler may be provided.
            (URL)/lexical-handlerA lexical handler may be provided.
            * *

            This parser currently implements the SAX1 Parser API, but --- 80,124 ---- * * * ! * ! * * * * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * ! * * * * * ! * * ! * *
            NameNotes
            Features ... URL prefix is * http://xml.org/sax/features/
            (URL)/external-general-entitiesValue defaults to true
            (URL)/external-parameter-entitiesValue defaults to true
            (URL)/is-standalone(PRELIMINARY) Returns true iff the document's parsing ! * has started (some non-error event after startDocument() ! * was reported) and the document's standalone flag is set.
            (URL)/namespace-prefixesValue defaults to false (but XML 1.0 names are ! * always reported)
            (URL)/lexical-handler/parameter-entitiesValue is fixed at true
            (URL)/namespacesValue defaults to true
            (URL)/resolve-dtd-uris(PRELIMINARY) Value defaults to true
            (URL)/string-interningValue is fixed at true
            (URL)/use-attributes2(PRELIMINARY) Value is fixed at true
            (URL)/use-entity-resolver2(PRELIMINARY) Value defaults to true
            (URL)/validationValue is fixed at false
            Handler Properties ... URL prefix is * http://xml.org/sax/properties/
            (URL)/declaration-handlerA declaration handler may be provided.
            (URL)/lexical-handlerA lexical handler may be provided.
            * *

            This parser currently implements the SAX1 Parser API, but *************** import org.xml.sax.helpers.NamespaceSupp *** 131,140 **** final public class SAXDriver implements Locator, Attributes2, XMLReader, Parser, AttributeList { ! private final DefaultHandler2 base = new DefaultHandler2(); private XmlParser parser; ! private EntityResolver entityResolver = base; private EntityResolver2 resolver2 = null; private ContentHandler contentHandler = base; --- 131,140 ---- final public class SAXDriver implements Locator, Attributes2, XMLReader, Parser, AttributeList { ! private final DefaultHandler2 base = new DefaultHandler2(); private XmlParser parser; ! private EntityResolver entityResolver = base; private EntityResolver2 resolver2 = null; private ContentHandler contentHandler = base; *************** final public class SAXDriver *** 142,169 **** private ErrorHandler errorHandler = base; private DeclHandler declHandler = base; private LexicalHandler lexicalHandler = base; ! private String elementName; private Stack entityStack; ! // one vector (of object/struct): faster, smaller private List attributesList; ! private boolean namespaces = true; private boolean xmlNames = false; private boolean extGE = true; private boolean extPE = true; private boolean resolveAll = true; private boolean useResolver2 = true; ! // package private to allow (read-only) access in XmlParser boolean stringInterning = true; ! private int attributeCount; private boolean attributes; private String[] nsTemp; private NamespaceSupport prefixStack; ! // // Constructor. // --- 142,169 ---- private ErrorHandler errorHandler = base; private DeclHandler declHandler = base; private LexicalHandler lexicalHandler = base; ! private String elementName; private Stack entityStack; ! // one vector (of object/struct): faster, smaller private List attributesList; ! private boolean namespaces = true; private boolean xmlNames = false; private boolean extGE = true; private boolean extPE = true; private boolean resolveAll = true; private boolean useResolver2 = true; ! // package private to allow (read-only) access in XmlParser boolean stringInterning = true; ! private int attributeCount; private boolean attributes; private String[] nsTemp; private NamespaceSupport prefixStack; ! // // Constructor. // *************** final public class SAXDriver *** 355,366 **** throw new IllegalStateException(); } parser.setHandler(this); ! try { Reader r = source.getCharacterStream(); InputStream in = source.getByteStream(); ! parser.doParse(source.getSystemId(), source.getPublicId(), r, --- 355,366 ---- throw new IllegalStateException(); } parser.setHandler(this); ! try { Reader r = source.getCharacterStream(); InputStream in = source.getByteStream(); ! parser.doParse(source.getSystemId(), source.getPublicId(), r, *************** final public class SAXDriver *** 430,436 **** { return extPE; } ! // element/attribute names are as written in document; no mangling if ((FEATURE + "namespace-prefixes").equals(featureId)) { --- 430,436 ---- { return extPE; } ! // element/attribute names are as written in document; no mangling if ((FEATURE + "namespace-prefixes").equals(featureId)) { *************** final public class SAXDriver *** 454,468 **** { return stringInterning; } ! // EXTENSIONS 1.1 ! // always returns isSpecified info if ((FEATURE + "use-attributes2").equals(featureId)) { return true; } ! // meaningful between startDocument/endDocument if ((FEATURE + "is-standalone").equals(featureId)) { --- 454,468 ---- { return stringInterning; } ! // EXTENSIONS 1.1 ! // always returns isSpecified info if ((FEATURE + "use-attributes2").equals(featureId)) { return true; } ! // meaningful between startDocument/endDocument if ((FEATURE + "is-standalone").equals(featureId)) { *************** final public class SAXDriver *** 484,490 **** { return useResolver2; } ! throw new SAXNotRecognizedException(featureId); } --- 484,490 ---- { return useResolver2; } ! throw new SAXNotRecognizedException(featureId); } *************** final public class SAXDriver *** 518,524 **** { return (lexicalHandler == base) ? null : lexicalHandler; } ! // unknown properties throw new SAXNotRecognizedException(propertyId); } --- 518,524 ---- { return (lexicalHandler == base) ? null : lexicalHandler; } ! // unknown properties throw new SAXNotRecognizedException(propertyId); } *************** final public class SAXDriver *** 531,540 **** throws SAXNotRecognizedException, SAXNotSupportedException { boolean state; ! // Features with a defined value, we just change it if we can. state = getFeature (featureId); ! if (state == value) { return; --- 531,540 ---- throws SAXNotRecognizedException, SAXNotSupportedException { boolean state; ! // Features with a defined value, we just change it if we can. state = getFeature (featureId); ! if (state == value) { return; *************** final public class SAXDriver *** 601,609 **** { // see if the property is recognized getProperty(propertyId); ! // Properties with a defined value, we just change it if we can. ! if ((PROPERTY + "declaration-handler").equals(propertyId)) { if (value == null) --- 601,609 ---- { // see if the property is recognized getProperty(propertyId); ! // Properties with a defined value, we just change it if we can. ! if ((PROPERTY + "declaration-handler").equals(propertyId)) { if (value == null) *************** final public class SAXDriver *** 620,626 **** } return ; } ! if ((PROPERTY + "lexical-handler").equals(propertyId)) { if (value == null) --- 620,626 ---- } return ; } ! if ((PROPERTY + "lexical-handler").equals(propertyId)) { if (value == null) *************** final public class SAXDriver *** 637,643 **** } return; } ! throw new SAXNotSupportedException(propertyId); } --- 637,643 ---- } return; } ! throw new SAXNotSupportedException(propertyId); } *************** final public class SAXDriver *** 676,682 **** throws SAXException, IOException { InputSource source; ! // external entities might be skipped if (isPE && !extPE) { --- 676,682 ---- throws SAXException, IOException { InputSource source; ! // external entities might be skipped if (isPE && !extPE) { *************** final public class SAXDriver *** 724,730 **** // FIXME normalize system IDs -- when? // - Convert to UTF-8 // - Map reserved and non-ASCII characters to %HH ! try { if (baseURI == null) --- 724,730 ---- // FIXME normalize system IDs -- when? // - Convert to UTF-8 // - Map reserved and non-ASCII characters to %HH ! try { if (baseURI == null) *************** final public class SAXDriver *** 749,755 **** { throw e; } ! // sometimes sysids for notations or unparsed entities // aren't really URIs... warn("Can't absolutize SYSTEM id: " + e.getMessage()); --- 749,755 ---- { throw e; } ! // sometimes sysids for notations or unparsed entities // aren't really URIs... warn("Can't absolutize SYSTEM id: " + e.getMessage()); *************** final public class SAXDriver *** 800,814 **** throws SAXException { lexicalHandler.startDTD(name, publicId, systemId); ! // ... the "name" is a declaration and should be given // to the DeclHandler (but sax2 doesn't). ! // the IDs for the external subset are lexical details, // as are the contents of the internal subset; but sax2 // doesn't provide the internal subset "pre-parse" } ! void notationDecl(String name, String publicId, String systemId, String baseUri) throws SAXException --- 800,814 ---- throws SAXException { lexicalHandler.startDTD(name, publicId, systemId); ! // ... the "name" is a declaration and should be given // to the DeclHandler (but sax2 doesn't). ! // the IDs for the external subset are lexical details, // as are the contents of the internal subset; but sax2 // doesn't provide the internal subset "pre-parse" } ! void notationDecl(String name, String publicId, String systemId, String baseUri) throws SAXException *************** final public class SAXDriver *** 857,863 **** { int index = uri.indexOf(':'); ! // many versions of nwalsh docbook stylesheets // have bogus URLs; so this can't be an error... if (index < 1 && uri.length() != 0) { --- 857,863 ---- { int index = uri.indexOf(':'); ! // many versions of nwalsh docbook stylesheets // have bogus URLs; so this can't be an error... if (index < 1 && uri.length() != 0) { *************** final public class SAXDriver *** 866,872 **** // FIXME: char [0] must be ascii alpha; chars [1..index] // must be ascii alphanumeric or in "+-." [RFC 2396] ! //Namespace Constraints //name for xml prefix must be http://www.w3.org/XML/1998/namespace boolean prefixEquality = prefix.equals("xml"); --- 866,872 ---- // FIXME: char [0] must be ascii alpha; chars [1..index] // must be ascii alphanumeric or in "+-." [RFC 2396] ! //Namespace Constraints //name for xml prefix must be http://www.w3.org/XML/1998/namespace boolean prefixEquality = prefix.equals("xml"); *************** final public class SAXDriver *** 876,888 **** fatal("xml is by definition bound to the namespace name " + "http://www.w3.org/XML/1998/namespace"); } ! //xmlns prefix declaration is illegal but xml prefix declaration is llegal... if (prefixEquality && uriEquality) { return; } ! //name for xmlns prefix must be http://www.w3.org/2000/xmlns/ prefixEquality = prefix.equals("xmlns"); uriEquality = uri.equals("http://www.w3.org/2000/xmlns/"); --- 876,888 ---- fatal("xml is by definition bound to the namespace name " + "http://www.w3.org/XML/1998/namespace"); } ! //xmlns prefix declaration is illegal but xml prefix declaration is llegal... if (prefixEquality && uriEquality) { return; } ! //name for xmlns prefix must be http://www.w3.org/2000/xmlns/ prefixEquality = prefix.equals("xmlns"); uriEquality = uri.equals("http://www.w3.org/2000/xmlns/"); *************** final public class SAXDriver *** 891,904 **** fatal("http://www.w3.org/2000/xmlns/ is by definition bound" + " to prefix xmlns"); } ! //even if the uri is http://www.w3.org/2000/xmlns/ // it is illegal to declare it if (prefixEquality && uriEquality) { fatal ("declaring the xmlns prefix is illegal"); } ! uri = uri.intern(); prefixStack.declarePrefix(prefix, uri); contentHandler.startPrefixMapping(prefix, uri); --- 891,904 ---- fatal("http://www.w3.org/2000/xmlns/ is by definition bound" + " to prefix xmlns"); } ! //even if the uri is http://www.w3.org/2000/xmlns/ // it is illegal to declare it if (prefixEquality && uriEquality) { fatal ("declaring the xmlns prefix is illegal"); } ! uri = uri.intern(); prefixStack.declarePrefix(prefix, uri); contentHandler.startPrefixMapping(prefix, uri); *************** final public class SAXDriver *** 915,927 **** prefixStack.pushContext(); } } ! // process namespace decls immediately; // then maybe forget this as an attribute if (namespaces) { int index; ! // default NS declaration? if (stringInterning) { --- 915,927 ---- prefixStack.pushContext(); } } ! // process namespace decls immediately; // then maybe forget this as an attribute if (namespaces) { int index; ! // default NS declaration? if (stringInterning) { *************** final public class SAXDriver *** 938,948 **** && qname.startsWith("xmlns")) { String prefix = qname.substring(6); ! if (prefix.equals("")) { fatal("missing prefix " + ! "in namespace declaration attribute"); } if (value.length() == 0) { --- 938,948 ---- && qname.startsWith("xmlns")) { String prefix = qname.substring(6); ! if (prefix.equals("")) { fatal("missing prefix " + ! "in namespace declaration attribute"); } if (value.length() == 0) { *************** final public class SAXDriver *** 974,980 **** && qname.startsWith("xmlns")) { String prefix = qname.substring(6); ! if (value.length() == 0) { verror("missing URI in namespace decl attribute: " --- 974,980 ---- && qname.startsWith("xmlns")) { String prefix = qname.substring(6); ! if (value.length() == 0) { verror("missing URI in namespace decl attribute: " *************** final public class SAXDriver *** 993,1004 **** } // remember this attribute ... attributeCount++; ! // attribute type comes from querying parser's DTD records attributesList.add(new Attribute(qname, value, isSpecified)); ! } ! void startElement(String elname) throws SAXException { --- 993,1004 ---- } // remember this attribute ... attributeCount++; ! // attribute type comes from querying parser's DTD records attributesList.add(new Attribute(qname, value, isSpecified)); ! } ! void startElement(String elname) throws SAXException { *************** final public class SAXDriver *** 1016,1022 **** // String.hashCode() (1.5%) and about 1.3% each for pushing // the context, and two chunks of name processing. // ! if (!attributes) { if (namespaces) --- 1016,1022 ---- // String.hashCode() (1.5%) and about 1.3% each for pushing // the context, and two chunks of name processing. // ! if (!attributes) { if (namespaces) *************** final public class SAXDriver *** 1026,1032 **** } else if (namespaces) { ! // now we can patch up namespace refs; we saw all the // declarations, so now we'll do the Right Thing Iterator itt = attributesList.iterator(); --- 1026,1032 ---- } else if (namespaces) { ! // now we can patch up namespace refs; we saw all the // declarations, so now we'll do the Right Thing Iterator itt = attributesList.iterator(); *************** final public class SAXDriver *** 1035,1041 **** Attribute attribute = (Attribute) itt.next(); String qname = attribute.name; int index; ! // default NS declaration? if (stringInterning) { --- 1035,1041 ---- Attribute attribute = (Attribute) itt.next(); String qname = attribute.name; int index; ! // default NS declaration? if (stringInterning) { *************** final public class SAXDriver *** 1059,1071 **** "character are invalid"); } index = qname.indexOf(':'); ! // NS prefix declaration? if (index == 5 && qname.startsWith("xmlns")) { continue; } ! // it's not a NS decl; patch namespace info items if (prefixStack.processName(qname, nsTemp, true) == null) { --- 1059,1071 ---- "character are invalid"); } index = qname.indexOf(':'); ! // NS prefix declaration? if (index == 5 && qname.startsWith("xmlns")) { continue; } ! // it's not a NS decl; patch namespace info items if (prefixStack.processName(qname, nsTemp, true) == null) { *************** final public class SAXDriver *** 1078,1084 **** } } } ! // save element name so attribute callbacks work elementName = elname; if (namespaces) --- 1078,1084 ---- } } } ! // save element name so attribute callbacks work elementName = elname; if (namespaces) *************** final public class SAXDriver *** 1095,1101 **** handler.startElement("", "", elname, this); } // elementName = null; ! // elements with no attributes are pretty common! if (attributes) { --- 1095,1101 ---- handler.startElement("", "", elname, this); } // elementName = null; ! // elements with no attributes are pretty common! if (attributes) { *************** final public class SAXDriver *** 1104,1110 **** attributes = false; } } ! void endElement(String elname) throws SAXException { --- 1104,1110 ---- attributes = false; } } ! void endElement(String elname) throws SAXException { *************** final public class SAXDriver *** 1117,1125 **** } prefixStack.processName(elname, nsTemp, false); handler.endElement(nsTemp[0], nsTemp[1], elname); ! Enumeration prefixes = prefixStack.getDeclaredPrefixes(); ! while (prefixes.hasMoreElements()) { handler.endPrefixMapping((String) prefixes.nextElement()); --- 1117,1125 ---- } prefixStack.processName(elname, nsTemp, false); handler.endElement(nsTemp[0], nsTemp[1], elname); ! Enumeration prefixes = prefixStack.getDeclaredPrefixes(); ! while (prefixes.hasMoreElements()) { handler.endPrefixMapping((String) prefixes.nextElement()); *************** final public class SAXDriver *** 1170,1176 **** throws SAXException { SAXParseException fatal; ! fatal = new SAXParseException(message, this); errorHandler.fatalError(fatal); --- 1170,1176 ---- throws SAXException { SAXParseException fatal; ! fatal = new SAXParseException(message, this); errorHandler.fatalError(fatal); *************** final public class SAXDriver *** 1184,1199 **** throws SAXException { SAXParseException err; ! err = new SAXParseException(message, this); errorHandler.error(err); } ! void warn(String message) throws SAXException { SAXParseException err; ! err = new SAXParseException(message, this); errorHandler.warning(err); } --- 1184,1199 ---- throws SAXException { SAXParseException err; ! err = new SAXParseException(message, this); errorHandler.error(err); } ! void warn(String message) throws SAXException { SAXParseException err; ! err = new SAXParseException(message, this); errorHandler.warning(err); } *************** final public class SAXDriver *** 1307,1313 **** public int getIndex(String uri, String local) { int length = getLength(); ! for (int i = 0; i < length; i++) { if (!getURI(i).equals(uri)) --- 1307,1313 ---- public int getIndex(String uri, String local) { int length = getLength(); ! for (int i = 0; i < length; i++) { if (!getURI(i).equals(uri)) *************** final public class SAXDriver *** 1328,1334 **** public int getIndex(String xmlName) { int length = getLength(); ! for (int i = 0; i < length; i++) { if (getQName(i).equals(xmlName)) --- 1328,1334 ---- public int getIndex(String xmlName) { int length = getLength(); ! for (int i = 0; i < length; i++) { if (getQName(i).equals(xmlName)) *************** final public class SAXDriver *** 1345,1351 **** public String getType(String uri, String local) { int index = getIndex(uri, local); ! if (index < 0) { return null; --- 1345,1351 ---- public String getType(String uri, String local) { int index = getIndex(uri, local); ! if (index < 0) { return null; *************** final public class SAXDriver *** 1360,1366 **** public String getType(String xmlName) { int index = getIndex(xmlName); ! if (index < 0) { return null; --- 1360,1366 ---- public String getType(String xmlName) { int index = getIndex(xmlName); ! if (index < 0) { return null; *************** final public class SAXDriver *** 1374,1380 **** public String getValue(String uri, String local) { int index = getIndex(uri, local); ! if (index < 0) { return null; --- 1374,1380 ---- public String getValue(String uri, String local) { int index = getIndex(uri, local); ! if (index < 0) { return null; *************** final public class SAXDriver *** 1389,1395 **** public String getValue(String xmlName) { int index = getIndex(xmlName); ! if (index < 0) { return null; --- 1389,1395 ---- public String getValue(String xmlName) { int index = getIndex(xmlName); ! if (index < 0) { return null; *************** final public class SAXDriver *** 1404,1410 **** /** @return false unless the attribute was declared in the DTD. * @throws java.lang.ArrayIndexOutOfBoundsException * When the supplied index does not identify an attribute. ! */ public boolean isDeclared(int index) { if (index < 0 || index >= attributeCount) --- 1404,1410 ---- /** @return false unless the attribute was declared in the DTD. * @throws java.lang.ArrayIndexOutOfBoundsException * When the supplied index does not identify an attribute. ! */ public boolean isDeclared(int index) { if (index < 0 || index >= attributeCount) *************** final public class SAXDriver *** 1513,1519 **** private static class Adapter implements ContentHandler { ! private DocumentHandler docHandler; Adapter(DocumentHandler dh) --- 1513,1519 ---- private static class Adapter implements ContentHandler { ! private DocumentHandler docHandler; Adapter(DocumentHandler dh) *************** final public class SAXDriver *** 1525,1543 **** { docHandler.setDocumentLocator(l); } ! public void startDocument() throws SAXException { docHandler.startDocument(); } ! public void processingInstruction(String target, String data) throws SAXException { docHandler.processingInstruction(target, data); } ! public void startPrefixMapping(String prefix, String uri) { /* ignored */ --- 1525,1543 ---- { docHandler.setDocumentLocator(l); } ! public void startDocument() throws SAXException { docHandler.startDocument(); } ! public void processingInstruction(String target, String data) throws SAXException { docHandler.processingInstruction(target, data); } ! public void startPrefixMapping(String prefix, String uri) { /* ignored */ *************** final public class SAXDriver *** 1589,1601 **** private static class Attribute { ! String name; String value; String nameSpace; String localName; boolean specified; ! Attribute(String name, String value, boolean specified) { this.name = name; --- 1589,1601 ---- private static class Attribute { ! String name; String value; String nameSpace; String localName; boolean specified; ! Attribute(String name, String value, boolean specified) { this.name = name; *************** final public class SAXDriver *** 1603,1609 **** this.nameSpace = ""; this.specified = specified; } ! } } --- 1603,1609 ---- this.nameSpace = ""; this.specified = specified; } ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/aelfred2/XmlParser.java gcc-4.6.0/libjava/classpath/gnu/xml/aelfred2/XmlParser.java *** gcc-4.5.2/libjava/classpath/gnu/xml/aelfred2/XmlParser.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/aelfred2/XmlParser.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XmlParser.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XmlParser.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.SAXException; *** 81,87 **** * internal parser interfaces are subject to change. * * @author Written by David Megginson <dmeggins@microstar.com> ! * (version 1.2a with bugfixes) * @author Updated by David Brownell <dbrownell@users.sourceforge.net> * @see SAXDriver */ --- 81,87 ---- * internal parser interfaces are subject to change. * * @author Written by David Megginson <dmeggins@microstar.com> ! * (version 1.2a with bugfixes) * @author Updated by David Brownell <dbrownell@users.sourceforge.net> * @see SAXDriver */ *************** final class XmlParser *** 94,167 **** //////////////////////////////////////////////////////////////////////// // Constants. //////////////////////////////////////////////////////////////////////// ! // // Constants for element content type. // ! /** * Constant: an element has not been declared. * @see #getElementContentType */ public final static int CONTENT_UNDECLARED = 0; ! /** * Constant: the element has a content model of ANY. * @see #getElementContentType */ public final static int CONTENT_ANY = 1; ! /** * Constant: the element has declared content of EMPTY. * @see #getElementContentType */ public final static int CONTENT_EMPTY = 2; ! /** * Constant: the element has mixed content. * @see #getElementContentType */ public final static int CONTENT_MIXED = 3; ! /** * Constant: the element has element content. * @see #getElementContentType */ public final static int CONTENT_ELEMENTS = 4; ! ! // // Constants for the entity type. // ! /** * Constant: the entity has not been declared. * @see #getEntityType */ public final static int ENTITY_UNDECLARED = 0; ! /** * Constant: the entity is internal. * @see #getEntityType */ public final static int ENTITY_INTERNAL = 1; ! /** * Constant: the entity is external, non-parsable data. * @see #getEntityType */ public final static int ENTITY_NDATA = 2; ! /** * Constant: the entity is external XML data. * @see #getEntityType */ public final static int ENTITY_TEXT = 3; ! // // Attribute type constants are interned literal strings. // ! // // Constants for supported encodings. "external" is just a flag. // --- 94,167 ---- //////////////////////////////////////////////////////////////////////// // Constants. //////////////////////////////////////////////////////////////////////// ! // // Constants for element content type. // ! /** * Constant: an element has not been declared. * @see #getElementContentType */ public final static int CONTENT_UNDECLARED = 0; ! /** * Constant: the element has a content model of ANY. * @see #getElementContentType */ public final static int CONTENT_ANY = 1; ! /** * Constant: the element has declared content of EMPTY. * @see #getElementContentType */ public final static int CONTENT_EMPTY = 2; ! /** * Constant: the element has mixed content. * @see #getElementContentType */ public final static int CONTENT_MIXED = 3; ! /** * Constant: the element has element content. * @see #getElementContentType */ public final static int CONTENT_ELEMENTS = 4; ! ! // // Constants for the entity type. // ! /** * Constant: the entity has not been declared. * @see #getEntityType */ public final static int ENTITY_UNDECLARED = 0; ! /** * Constant: the entity is internal. * @see #getEntityType */ public final static int ENTITY_INTERNAL = 1; ! /** * Constant: the entity is external, non-parsable data. * @see #getEntityType */ public final static int ENTITY_NDATA = 2; ! /** * Constant: the entity is external XML data. * @see #getEntityType */ public final static int ENTITY_TEXT = 3; ! // // Attribute type constants are interned literal strings. // ! // // Constants for supported encodings. "external" is just a flag. // *************** final class XmlParser *** 175,217 **** private final static int ENCODING_UCS_4_2143 = 7; private final static int ENCODING_UCS_4_3412 = 8; private final static int ENCODING_ASCII = 9; ! // // Constants for attribute default value. // ! /** * Constant: the attribute is not declared. * @see #getAttributeDefaultValueType */ public final static int ATTRIBUTE_DEFAULT_UNDECLARED = 30; ! /** * Constant: the attribute has a literal default value specified. * @see #getAttributeDefaultValueType * @see #getAttributeDefaultValue */ public final static int ATTRIBUTE_DEFAULT_SPECIFIED = 31; ! /** * Constant: the attribute was declared #IMPLIED. * @see #getAttributeDefaultValueType */ public final static int ATTRIBUTE_DEFAULT_IMPLIED = 32; ! /** * Constant: the attribute was declared #REQUIRED. * @see #getAttributeDefaultValueType */ public final static int ATTRIBUTE_DEFAULT_REQUIRED = 33; ! /** * Constant: the attribute was declared #FIXED. * @see #getAttributeDefaultValueType * @see #getAttributeDefaultValue */ public final static int ATTRIBUTE_DEFAULT_FIXED = 34; ! // // Constants for input. // --- 175,217 ---- private final static int ENCODING_UCS_4_2143 = 7; private final static int ENCODING_UCS_4_3412 = 8; private final static int ENCODING_ASCII = 9; ! // // Constants for attribute default value. // ! /** * Constant: the attribute is not declared. * @see #getAttributeDefaultValueType */ public final static int ATTRIBUTE_DEFAULT_UNDECLARED = 30; ! /** * Constant: the attribute has a literal default value specified. * @see #getAttributeDefaultValueType * @see #getAttributeDefaultValue */ public final static int ATTRIBUTE_DEFAULT_SPECIFIED = 31; ! /** * Constant: the attribute was declared #IMPLIED. * @see #getAttributeDefaultValueType */ public final static int ATTRIBUTE_DEFAULT_IMPLIED = 32; ! /** * Constant: the attribute was declared #REQUIRED. * @see #getAttributeDefaultValueType */ public final static int ATTRIBUTE_DEFAULT_REQUIRED = 33; ! /** * Constant: the attribute was declared #FIXED. * @see #getAttributeDefaultValueType * @see #getAttributeDefaultValue */ public final static int ATTRIBUTE_DEFAULT_FIXED = 34; ! // // Constants for input. // *************** final class XmlParser *** 219,225 **** private final static int INPUT_INTERNAL = 1; private final static int INPUT_STREAM = 3; private final static int INPUT_READER = 5; ! // // Flags for reading literals. // --- 219,225 ---- private final static int INPUT_INTERNAL = 1; private final static int INPUT_STREAM = 3; private final static int INPUT_READER = 5; ! // // Flags for reading literals. // *************** final class XmlParser *** 227,233 **** private final static int LIT_ENTITY_REF = 2; // normalize this value (space chars) (attributes, public ids) private final static int LIT_NORMALIZE = 4; ! // literal is an attribute value private final static int LIT_ATTRIBUTE = 8; // don't expand parameter entities private final static int LIT_DISABLE_PE = 16; --- 227,233 ---- private final static int LIT_ENTITY_REF = 2; // normalize this value (space chars) (attributes, public ids) private final static int LIT_NORMALIZE = 4; ! // literal is an attribute value private final static int LIT_ATTRIBUTE = 8; // don't expand parameter entities private final static int LIT_DISABLE_PE = 16; *************** final class XmlParser *** 235,264 **** private final static int LIT_DISABLE_CREF = 32; // don't parse general entity refs private final static int LIT_DISABLE_EREF = 64; ! // literal is a public ID value private final static int LIT_PUBID = 256; ! // // Flags affecting PE handling in DTDs (if expandPE is true). // PEs expand with space padding, except inside literals. // private final static int CONTEXT_NORMAL = 0; private final static int CONTEXT_LITERAL = 1; ! // Emit warnings for relative URIs with no base URI. static boolean uriWarnings; static { String key = "gnu.xml.aelfred2.XmlParser.uriWarnings"; GetPropertyAction a = new GetPropertyAction(key); ! uriWarnings = "true".equals(AccessController.doPrivileged(a)); } ! // // The current XML handler interface. // private SAXDriver handler; ! // // I/O information. // --- 235,264 ---- private final static int LIT_DISABLE_CREF = 32; // don't parse general entity refs private final static int LIT_DISABLE_EREF = 64; ! // literal is a public ID value private final static int LIT_PUBID = 256; ! // // Flags affecting PE handling in DTDs (if expandPE is true). // PEs expand with space padding, except inside literals. // private final static int CONTEXT_NORMAL = 0; private final static int CONTEXT_LITERAL = 1; ! // Emit warnings for relative URIs with no base URI. static boolean uriWarnings; static { String key = "gnu.xml.aelfred2.XmlParser.uriWarnings"; GetPropertyAction a = new GetPropertyAction(key); ! uriWarnings = "true".equals(AccessController.doPrivileged(a)); } ! // // The current XML handler interface. // private SAXDriver handler; ! // // I/O information. // *************** final class XmlParser *** 272,278 **** private int encoding; // current character encoding private int currentByteCount; // bytes read from current source private InputSource scratch; // temporary ! // // Buffers for decoded but unparsed character input. // --- 272,278 ---- private int encoding; // current character encoding private int currentByteCount; // bytes read from current source private InputSource scratch; // temporary ! // // Buffers for decoded but unparsed character input. // *************** final class XmlParser *** 280,312 **** private int readBufferPos; private int readBufferLength; private int readBufferOverflow; // overflow from last data chunk. ! // // Buffer for undecoded raw byte input. // private final static int READ_BUFFER_MAX = 16384; private byte[] rawReadBuffer; ! ! // // Buffer for attribute values, char refs, DTD stuff. // private static int DATA_BUFFER_INITIAL = 4096; private char[] dataBuffer; private int dataBufferPos; ! // // Buffer for parsed names. // private static int NAME_BUFFER_INITIAL = 1024; private char[] nameBuffer; private int nameBufferPos; ! // // Save any standalone flag // private boolean docIsStandalone; ! // // Hashtables for DTD information on elements, entities, and notations. // Populated until we start ignoring decls (because of skipping a PE) --- 280,312 ---- private int readBufferPos; private int readBufferLength; private int readBufferOverflow; // overflow from last data chunk. ! // // Buffer for undecoded raw byte input. // private final static int READ_BUFFER_MAX = 16384; private byte[] rawReadBuffer; ! ! // // Buffer for attribute values, char refs, DTD stuff. // private static int DATA_BUFFER_INITIAL = 4096; private char[] dataBuffer; private int dataBufferPos; ! // // Buffer for parsed names. // private static int NAME_BUFFER_INITIAL = 1024; private char[] nameBuffer; private int nameBufferPos; ! // // Save any standalone flag // private boolean docIsStandalone; ! // // Hashtables for DTD information on elements, entities, and notations. // Populated until we start ignoring decls (because of skipping a PE) *************** final class XmlParser *** 315,332 **** private HashMap entityInfo; private HashMap notationInfo; private boolean skippedPE; ! // // Element type currently in force. // private String currentElement; private int currentElementContent; ! // // Stack of entity names, to detect recursion. // private LinkedList entityStack; ! // // PE expansion is enabled in most chunks of the DTD, not all. // When it's enabled, literals are treated differently. --- 315,332 ---- private HashMap entityInfo; private HashMap notationInfo; private boolean skippedPE; ! // // Element type currently in force. // private String currentElement; private int currentElementContent; ! // // Stack of entity names, to detect recursion. // private LinkedList entityStack; ! // // PE expansion is enabled in most chunks of the DTD, not all. // When it's enabled, literals are treated differently. *************** final class XmlParser *** 334,347 **** private boolean inLiteral; private boolean expandPE; private boolean peIsError; ! // // can't report entity expansion inside two constructs: // - attribute expansions (internal entities only) // - markup declarations (parameter entities only) // private boolean doReport; ! // // Symbol table, for caching interned names. // --- 334,347 ---- private boolean inLiteral; private boolean expandPE; private boolean peIsError; ! // // can't report entity expansion inside two constructs: // - attribute expansions (internal entities only) // - markup declarations (parameter entities only) // private boolean doReport; ! // // Symbol table, for caching interned names. // *************** final class XmlParser *** 358,395 **** // 32 bit hardware. // private final static int SYMBOL_TABLE_LENGTH = 2039; ! private Object[][] symbolTable; ! // // Hash table of attributes found in current start tag. // private String[] tagAttributes; private int tagAttributePos; ! // // Utility flag: have we noticed a CR while reading the last // data chunk? If so, we will have to go back and normalise // CR or CR/LF line ends. // private boolean sawCR; ! // // Utility flag: are we in CDATA? If so, whitespace isn't ignorable. ! // private boolean inCDATA; ! // // Xml version. ! // ! private static final int XML_10 = 0; ! private static final int XML_11 = 1; private int xmlVersion = XML_10; ////////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////////// ! /** * Construct a new parser with no associated handler. * @see #setHandler --- 358,395 ---- // 32 bit hardware. // private final static int SYMBOL_TABLE_LENGTH = 2039; ! private Object[][] symbolTable; ! // // Hash table of attributes found in current start tag. // private String[] tagAttributes; private int tagAttributePos; ! // // Utility flag: have we noticed a CR while reading the last // data chunk? If so, we will have to go back and normalise // CR or CR/LF line ends. // private boolean sawCR; ! // // Utility flag: are we in CDATA? If so, whitespace isn't ignorable. ! // private boolean inCDATA; ! // // Xml version. ! // ! private static final int XML_10 = 0; ! private static final int XML_11 = 1; private int xmlVersion = XML_10; ////////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////////// ! /** * Construct a new parser with no associated handler. * @see #setHandler *************** final class XmlParser *** 422,435 **** * which MUST NOT REUSE the parser (just null it). * * @param systemId Absolute URI of the document; should never be null, ! * but may be so iff a reader or a stream is provided. * @param publicId The public identifier of the document, or null. * @param reader A character stream; must be null if stream isn't. * @param stream A byte input stream; must be null if reader isn't. * @param encoding The suggested encoding, or null if unknown. * @exception java.lang.Exception Basically SAXException or IOException */ ! // package private void doParse(String systemId, String publicId, Reader reader, InputStream stream, String encoding) throws Exception --- 422,435 ---- * which MUST NOT REUSE the parser (just null it). * * @param systemId Absolute URI of the document; should never be null, ! * but may be so iff a reader or a stream is provided. * @param publicId The public identifier of the document, or null. * @param reader A character stream; must be null if stream isn't. * @param stream A byte input stream; must be null if reader isn't. * @param encoding The suggested encoding, or null if unknown. * @exception java.lang.Exception Basically SAXException or IOException */ ! // package private void doParse(String systemId, String publicId, Reader reader, InputStream stream, String encoding) throws Exception *************** final class XmlParser *** 459,465 **** // default baseURI: null new ExternalIdentifiers(publicId, systemId, null), reader, stream, encoding, false); ! parseDocument(); } catch (EOFException e) --- 459,465 ---- // default baseURI: null new ExternalIdentifiers(publicId, systemId, null), reader, stream, encoding, false); ! parseDocument(); } catch (EOFException e) *************** final class XmlParser *** 509,515 **** ////////////////////////////////////////////////////////////////////// // Error reporting. ////////////////////////////////////////////////////////////////////// ! /** * Report an error. * @param message The error message. --- 509,515 ---- ////////////////////////////////////////////////////////////////////// // Error reporting. ////////////////////////////////////////////////////////////////////// ! /** * Report an error. * @param message The error message. *************** final class XmlParser *** 529,535 **** message = message + " (expected \"" + textExpected + "\")"; } handler.fatal(message); ! // "can't happen" throw new SAXException(message); } --- 529,535 ---- message = message + " (expected \"" + textExpected + "\")"; } handler.fatal(message); ! // "can't happen" throw new SAXException(message); } *************** final class XmlParser *** 581,587 **** { // added by MHK error("premature end of file", "[EOF]", null); } ! try { parseMisc(); //skip all white, PIs, and comments --- 581,587 ---- { // added by MHK error("premature end of file", "[EOF]", null); } ! try { parseMisc(); //skip all white, PIs, and comments *************** final class XmlParser *** 593,599 **** return; } } ! static final char[] startDelimComment = { '<', '!', '-', '-' }; static final char[] endDelimComment = { '-', '-' }; --- 593,599 ---- return; } } ! static final char[] startDelimComment = { '<', '!', '-', '-' }; static final char[] endDelimComment = { '-', '-' }; *************** final class XmlParser *** 609,615 **** { char c; boolean saved = expandPE; ! expandPE = false; parseUntil(endDelimComment); require('>'); --- 609,615 ---- { char c; boolean saved = expandPE; ! expandPE = false; parseUntil(endDelimComment); require('>'); *************** final class XmlParser *** 617,623 **** handler.comment(dataBuffer, 0, dataBufferPos); dataBufferPos = 0; } ! static final char[] startDelimPI = { '<', '?' }; static final char[] endDelimPI = { '?', '>' }; --- 617,623 ---- handler.comment(dataBuffer, 0, dataBufferPos); dataBufferPos = 0; } ! static final char[] startDelimPI = { '<', '?' }; static final char[] endDelimPI = { '?', '>' }; *************** final class XmlParser *** 636,642 **** { String name; boolean saved = expandPE; ! expandPE = false; name = readNmtoken(true); //NE08 --- 636,642 ---- { String name; boolean saved = expandPE; ! expandPE = false; name = readNmtoken(true); //NE08 *************** final class XmlParser *** 657,663 **** expandPE = saved; handler.processingInstruction(name, dataBufferToString()); } ! static final char[] endDelimCDATA = { ']', ']', '>' }; private boolean isDirtyCurrentElement; --- 657,663 ---- expandPE = saved; handler.processingInstruction(name, dataBufferToString()); } ! static final char[] endDelimCDATA = { ']', ']', '>' }; private boolean isDirtyCurrentElement; *************** final class XmlParser *** 756,762 **** String standalone = null; int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; String inputEncoding = null; ! switch (this.encoding) { case ENCODING_EXTERNAL: --- 756,762 ---- String standalone = null; int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; String inputEncoding = null; ! switch (this.encoding) { case ENCODING_EXTERNAL: *************** final class XmlParser *** 773,779 **** inputEncoding = "UTF-16LE"; break; } ! // Read the version. require("version"); parseEq(); --- 773,779 ---- inputEncoding = "UTF-16LE"; break; } ! // Read the version. require("version"); parseEq(); *************** final class XmlParser *** 796,802 **** } // Try reading an encoding declaration. boolean white = tryWhitespace(); ! if (tryRead("encoding")) { if (!white) --- 796,802 ---- } // Try reading an encoding declaration. boolean white = tryWhitespace(); ! if (tryRead("encoding")) { if (!white) *************** final class XmlParser *** 810,816 **** setupDecoding(encodingName); } } ! // Try reading a standalone declaration if (encodingName != null) { --- 810,816 ---- setupDecoding(encodingName); } } ! // Try reading a standalone declaration if (encodingName != null) { *************** final class XmlParser *** 869,881 **** String version; parseEq(); checkLegalVersion(version = readLiteral(flags)); ! if (version.equals("1.1")) { if (xmlVersion == XML_10) { error("external subset has later version number.", "1.0", ! version); } handler.warn("expected XML version 1.0, not: " + version); xmlVersion = XML_11; --- 869,881 ---- String version; parseEq(); checkLegalVersion(version = readLiteral(flags)); ! if (version.equals("1.1")) { if (xmlVersion == XML_10) { error("external subset has later version number.", "1.0", ! version); } handler.warn("expected XML version 1.0, not: " + version); xmlVersion = XML_11; *************** final class XmlParser *** 886,892 **** } requireWhitespace(); } ! // Read the encoding. require("encoding"); parseEq(); --- 886,892 ---- } requireWhitespace(); } ! // Read the encoding. require("encoding"); parseEq(); *************** final class XmlParser *** 897,903 **** } skipWhitespace(); require("?>"); ! return encodingName; } --- 897,903 ---- } skipWhitespace(); require("?>"); ! return encodingName; } *************** final class XmlParser *** 921,934 **** throws SAXException, IOException { encodingName = encodingName.toUpperCase(); ! // ENCODING_EXTERNAL indicates an encoding that wasn't // autodetected ... we can use builtin decoders, or // ones from the JVM (InputStreamReader). ! // Otherwise we can only tweak what was autodetected, and // only for single byte (ASCII derived) builtin encodings. ! // ASCII-derived encodings if (encoding == ENCODING_UTF_8 || encoding == ENCODING_EXTERNAL) { --- 921,934 ---- throws SAXException, IOException { encodingName = encodingName.toUpperCase(); ! // ENCODING_EXTERNAL indicates an encoding that wasn't // autodetected ... we can use builtin decoders, or // ones from the JVM (InputStreamReader). ! // Otherwise we can only tweak what was autodetected, and // only for single byte (ASCII derived) builtin encodings. ! // ASCII-derived encodings if (encoding == ENCODING_UTF_8 || encoding == ENCODING_EXTERNAL) { *************** final class XmlParser *** 959,965 **** // else fallthrough ... // it's ASCII-ish and something other than a builtin } ! // Unicode and such if (encoding == ENCODING_UCS_2_12 || encoding == ENCODING_UCS_2_21) { --- 959,965 ---- // else fallthrough ... // it's ASCII-ish and something other than a builtin } ! // Unicode and such if (encoding == ENCODING_UCS_2_12 || encoding == ENCODING_UCS_2_21) { *************** final class XmlParser *** 972,978 **** } return; } ! // four byte encodings if (encoding == ENCODING_UCS_4_1234 || encoding == ENCODING_UCS_4_4321 --- 972,978 ---- } return; } ! // four byte encodings if (encoding == ENCODING_UCS_4_1234 || encoding == ENCODING_UCS_4_4321 *************** final class XmlParser *** 987,997 **** } return; } ! // assert encoding == ENCODING_EXTERNAL // if (encoding != ENCODING_EXTERNAL) // throw new RuntimeException ("encoding = " + encoding); ! if (encodingName.equals("UTF-16BE")) { encoding = ENCODING_UCS_2_12; --- 987,997 ---- } return; } ! // assert encoding == ENCODING_EXTERNAL // if (encoding != ENCODING_EXTERNAL) // throw new RuntimeException ("encoding = " + encoding); ! if (encodingName.equals("UTF-16BE")) { encoding = ENCODING_UCS_2_12; *************** final class XmlParser *** 1002,1023 **** encoding = ENCODING_UCS_2_21; return; } ! // We couldn't use the builtin decoders at all. But we can try to // create a reader, since we haven't messed up buffering. Tweak // the encoding name if necessary. ! if (encodingName.equals("UTF-16") || encodingName.equals("ISO-10646-UCS-2")) { encodingName = "Unicode"; } // Ignoring all the EBCDIC aliases here ! reader = new InputStreamReader(is, encodingName); sourceType = INPUT_READER; } ! /** * Parse miscellaneous markup outside the document element and DOCTYPE * declaration. --- 1002,1023 ---- encoding = ENCODING_UCS_2_21; return; } ! // We couldn't use the builtin decoders at all. But we can try to // create a reader, since we haven't messed up buffering. Tweak // the encoding name if necessary. ! if (encodingName.equals("UTF-16") || encodingName.equals("ISO-10646-UCS-2")) { encodingName = "Unicode"; } // Ignoring all the EBCDIC aliases here ! reader = new InputStreamReader(is, encodingName); sourceType = INPUT_READER; } ! /** * Parse miscellaneous markup outside the document element and DOCTYPE * declaration. *************** final class XmlParser *** 1070,1081 **** // report (a) declaration of name, (b) lexical info (ids) handler.doctypeDecl(rootName, ids.publicId, ids.systemId); ! // Internal subset is parsed first, if present skipWhitespace(); if (tryRead('[')) { ! // loop until the subset ends while (true) { --- 1070,1081 ---- // report (a) declaration of name, (b) lexical info (ids) handler.doctypeDecl(rootName, ids.publicId, ids.systemId); ! // Internal subset is parsed first, if present skipWhitespace(); if (tryRead('[')) { ! // loop until the subset ends while (true) { *************** final class XmlParser *** 1097,1106 **** } skipWhitespace(); require('>'); ! // Read the external subset, if any InputSource subset; ! if (ids.systemId == null) { subset = handler.getExternalSubset(rootName, --- 1097,1106 ---- } skipWhitespace(); require('>'); ! // Read the external subset, if any InputSource subset; ! if (ids.systemId == null) { subset = handler.getExternalSubset(rootName, *************** final class XmlParser *** 1113,1119 **** if (ids.systemId != null || subset != null) { pushString(null, ">"); ! // NOTE: [dtd] is so we say what SAX2 expects, // though it's misleading (subset, not entire dtd) if (ids.systemId != null) --- 1113,1119 ---- if (ids.systemId != null || subset != null) { pushString(null, ">"); ! // NOTE: [dtd] is so we say what SAX2 expects, // though it's misleading (subset, not entire dtd) if (ids.systemId != null) *************** final class XmlParser *** 1132,1138 **** subset.getEncoding(), false); } ! // Loop until we end up back at '>' while (true) { --- 1132,1138 ---- subset.getEncoding(), false); } ! // Loop until we end up back at '>' while (true) { *************** final class XmlParser *** 1150,1169 **** expandPE = false; } } ! // the ">" string isn't popped yet if (inputStack.size() != 1) { error("external subset has unmatched '>'"); } } ! // done dtd handler.endDoctype(); expandPE = false; doReport = true; } ! /** * Parse a markup declaration in the internal or external DTD subset. *

            --- 1150,1169 ----
                              expandPE = false;
                            }
                        }
            ! 
                      // the ">" string isn't popped yet
                      if (inputStack.size() != 1)
                        {
                          error("external subset has unmatched '>'");
                        }
                    }
            ! 
                  // done dtd
                  handler.endDoctype();
                  expandPE = false;
                  doReport = true;
                }
            ! 
                /**
                 * Parse a markup declaration in the internal or external DTD subset.
                 * 
            *************** final class XmlParser
            *** 1185,1191 ****
                  require('<');
                  unread('<');
                  expandPE = false;
            !     
                  if (tryRead("
            --- 1246,1252 ----
                      handler.verror("Illegal Declaration/PE nesting");
                    }
                }
            ! 
                /**
                 * Parse an element, with its tags.
                 * 
            *************** final class XmlParser
            *** 1270,1279 ****
                  // This is the (global) counter for the
                  // array of specified attributes.
                  tagAttributePos = 0;
            !     
                  // Read the element type name.
                  gi = readNmtoken(true);
            !     
                  // If we saw no DTD, and this is the document root element,
                  // let the application modify the input stream by providing one.
                  if (maybeGetSubset)
            --- 1270,1279 ----
                  // This is the (global) counter for the
                  // array of specified attributes.
                  tagAttributePos = 0;
            ! 
                  // Read the element type name.
                  gi = readNmtoken(true);
            ! 
                  // If we saw no DTD, and this is the document root element,
                  // let the application modify the input stream by providing one.
                  if (maybeGetSubset)
            *************** final class XmlParser
            *** 1284,1294 ****
                        {
                          String publicId = subset.getPublicId();
                          String systemId = subset.getSystemId();
            !             
                          handler.warn("modifying document by adding DTD");
                          handler.doctypeDecl(gi, publicId, systemId);
                          pushString(null, ">");
            !             
                          // NOTE:  [dtd] is so we say what SAX2 expects,
                          // though it's misleading (subset, not entire dtd)
                          pushURL(true, "[dtd]",
            --- 1284,1294 ----
                        {
                          String publicId = subset.getPublicId();
                          String systemId = subset.getSystemId();
            ! 
                          handler.warn("modifying document by adding DTD");
                          handler.doctypeDecl(gi, publicId, systemId);
                          pushString(null, ">");
            ! 
                          // NOTE:  [dtd] is so we say what SAX2 expects,
                          // though it's misleading (subset, not entire dtd)
                          pushURL(true, "[dtd]",
            *************** final class XmlParser
            *** 1297,1303 ****
                                  subset.getByteStream(),
                                  subset.getEncoding(),
                                  false);
            !             
                          // Loop until we end up back at '>'
                          while (true)
                            {
            --- 1297,1303 ----
                                  subset.getByteStream(),
                                  subset.getEncoding(),
                                  false);
            ! 
                          // Loop until we end up back at '>'
                          while (true)
                            {
            *************** final class XmlParser
            *** 1315,1331 ****
                                  expandPE = false;
                                }
                            }
            !             
                          // the ">" string isn't popped yet
                          if (inputStack.size() != 1)
                            {
                              error("external subset has unmatched '>'");
                            }
            !             
                          handler.endDoctype();
                        }
                    }
            !     
                  // Determine the current content type.
                  currentElement = gi;
                  element = (ElementDecl) elementInfo.get(gi);
            --- 1315,1331 ----
                                  expandPE = false;
                                }
                            }
            ! 
                          // the ">" string isn't popped yet
                          if (inputStack.size() != 1)
                            {
                              error("external subset has unmatched '>'");
                            }
            ! 
                          handler.endDoctype();
                        }
                    }
            ! 
                  // Determine the current content type.
                  currentElement = gi;
                  element = (ElementDecl) elementInfo.get(gi);
            *************** final class XmlParser
            *** 1346,1352 ****
                      white = tryWhitespace();
                      c = readCh();
                    }
            !     
                  // Supply any defaulted attributes.
                  Iterator atts = declaredAttributes(element);
                  if (atts != null)
            --- 1346,1352 ----
                      white = tryWhitespace();
                      c = readCh();
                    }
            ! 
                  // Supply any defaulted attributes.
                  Iterator atts = declaredAttributes(element);
                  if (atts != null)
            *************** loop:
            *** 1366,1372 ****
                            }
                          // ... or has a default
                          String value = getAttributeDefaultValue(gi, aname);
            !             
                          if (value == null)
                            {
                              continue;
            --- 1366,1372 ----
                            }
                          // ... or has a default
                          String value = getAttributeDefaultValue(gi, aname);
            ! 
                          if (value == null)
                            {
                              continue;
            *************** loop:
            *** 1395,1401 ****
                  currentElement = oldElement;
                  currentElementContent = oldElementContent;
                }
            !     
                /**
                 * Parse an attribute assignment.
                 * 
            --- 1395,1401 ----
                  currentElement = oldElement;
                  currentElementContent = oldElementContent;
                }
            ! 
                /**
                 * Parse an attribute assignment.
                 * 
            *************** loop:
            *** 1411,1421 ****
                  String type;
                  String value;
                  int flags = LIT_ATTRIBUTE |  LIT_ENTITY_REF;
            !     
                  // Read the attribute name.
                  aname = readNmtoken(true);
                  type = getAttributeType(name, aname);
            !     
                  // Parse '='
                  parseEq();
              
            --- 1411,1421 ----
                  String type;
                  String value;
                  int flags = LIT_ATTRIBUTE |  LIT_ENTITY_REF;
            ! 
                  // Read the attribute name.
                  aname = readNmtoken(true);
                  type = getAttributeType(name, aname);
            ! 
                  // Parse '='
                  parseEq();
              
            *************** loop:
            *** 1457,1463 ****
                  // attribute.
                  handler.attribute(aname, value, true);
                  dataBufferPos = 0;
            !     
                  // Note that the attribute has been
                  // specified.
                  if (tagAttributePos == tagAttributes.length)
            --- 1457,1463 ----
                  // attribute.
                  handler.attribute(aname, value, true);
                  dataBufferPos = 0;
            ! 
                  // Note that the attribute has been
                  // specified.
                  if (tagAttributePos == tagAttributes.length)
            *************** loop:
            *** 1501,1507 ****
                  // not re-reporting any SAXException re bogus end tags,
                  // even though that diagnostic might be clearer ...
                }
            !   
                /**
                 * Parse the content of an element.
                 * 
            --- 1501,1507 ----
                  // not re-reporting any SAXException re bogus end tags,
                  // even though that diagnostic might be clearer ...
                }
            ! 
                /**
                 * Parse the content of an element.
                 * 
            *************** loop:
            *** 1515,1521 ****
                  throws Exception
                {
                  char c;
            !     
                  while (true)
                    {
                      // consume characters (or ignorable whitspace) until delimiter
            --- 1515,1521 ----
                  throws Exception
                {
                  char c;
            ! 
                  while (true)
                    {
                      // consume characters (or ignorable whitspace) until delimiter
            *************** loop:
            *** 1538,1544 ****
                            }
                          isDirtyCurrentElement = true;
                          break;
            !             
                        case '<':       // Found "<"
                          dataBufferFlush();
                          c = readCh();
            --- 1538,1544 ----
                            }
                          isDirtyCurrentElement = true;
                          break;
            ! 
                        case '<':       // Found "<"
                          dataBufferFlush();
                          c = readCh();
            *************** loop:
            *** 1567,1583 ****
                                  break;
                                }
                              break;
            !               
                            case '?':     // Found "
            --- 1587,1593 ----
                        }
                    }
                }
            ! 
                /**
                 * Parse an element type declaration.
                 * 
            *************** loop:
            *** 1599,1605 ****
                  throws Exception
                {
                  String name;
            !     
                  requireWhitespace();
                  // Read the element type name.
                  name = readNmtoken(true);
            --- 1599,1605 ----
                  throws Exception
                {
                  String name;
            ! 
                  requireWhitespace();
                  // Read the element type name.
                  name = readNmtoken(true);
            *************** loop:
            *** 1607,1613 ****
                  requireWhitespace();
                  // Read the content model.
                  parseContentspec(name);
            !     
                  skipWhitespace();
                  require('>');
                }
            --- 1607,1613 ----
                  requireWhitespace();
                  // Read the content model.
                  parseContentspec(name);
            ! 
                  skipWhitespace();
                  require('>');
                }
            *************** loop:
            *** 1643,1650 ****
                  else
                    {
                      String model;
            !         char[] saved; 
            !         
                      require('(');
                      saved = readBuffer;
                      dataBufferAppend('(');
            --- 1643,1650 ----
                  else
                    {
                      String model;
            !         char[] saved;
            ! 
                      require('(');
                      saved = readBuffer;
                      dataBufferAppend('(');
            *************** loop:
            *** 1668,1674 ****
                        }
                    }
                }
            !   
                /**
                 * Parse an element-content model.
                 * 
            --- 1668,1674 ----
                        }
                    }
                }
            ! 
                /**
                 * Parse an element-content model.
                 * 
            *************** loop:
            *** 1686,1696 ****
                {
                  char c;
                  char sep;
            !     
                  // Parse the first content particle
                  skipWhitespace();
                  parseCp();
            !     
                  // Check for end or for a separator.
                  skipWhitespace();
                  c = readCh();
            --- 1686,1696 ----
                {
                  char c;
                  char sep;
            ! 
                  // Parse the first content particle
                  skipWhitespace();
                  parseCp();
            ! 
                  // Check for end or for a separator.
                  skipWhitespace();
                  c = readCh();
            *************** loop:
            *** 1702,1708 ****
                        {
                          handler.verror("Illegal Group/PE nesting");
                        }
            !         
                      dataBufferAppend(')');
                      c = readCh();
                      switch (c)
            --- 1702,1708 ----
                        {
                          handler.verror("Illegal Group/PE nesting");
                        }
            ! 
                      dataBufferAppend(')');
                      c = readCh();
                      switch (c)
            *************** loop:
            *** 1725,1731 ****
                      error("bad separator in content model", c, null);
                      return;
                    }
            !     
                  // Parse the rest of the content model.
                  while (true)
                    {
            --- 1725,1731 ----
                      error("bad separator in content model", c, null);
                      return;
                    }
            ! 
                  // Parse the rest of the content model.
                  while (true)
                    {
            *************** loop:
            *** 1740,1746 ****
                            {
                              handler.verror("Illegal Group/PE nesting");
                            }
            !             
                          dataBufferAppend(')');
                          break;
                        }
            --- 1740,1746 ----
                            {
                              handler.verror("Illegal Group/PE nesting");
                            }
            ! 
                          dataBufferAppend(')');
                          break;
                        }
            *************** loop:
            *** 1754,1760 ****
                          dataBufferAppend(c);
                        }
                    }
            !     
                  // Check for the occurrence indicator.
                  c = readCh();
                  switch (c)
            --- 1754,1760 ----
                          dataBufferAppend(c);
                        }
                    }
            ! 
                  // Check for the occurrence indicator.
                  c = readCh();
                  switch (c)
            *************** loop:
            *** 1769,1775 ****
                      return;
                    }
                }
            !    
                /**
                 * Parse a content particle.
                 * 
            --- 1769,1775 ----
                      return;
                    }
                }
            ! 
                /**
                 * Parse a content particle.
                 * 
            *************** loop:
            *** 1823,1834 ****
                        {
                          handler.verror("Illegal Group/PE nesting");
                        }
            !         
                      dataBufferAppend(")*");
                      tryRead('*');
                      return;
                    }
            !     
                  // Parse mixed content.
                  skipWhitespace();
                  while (!tryRead(")"))
            --- 1823,1834 ----
                        {
                          handler.verror("Illegal Group/PE nesting");
                        }
            ! 
                      dataBufferAppend(")*");
                      tryRead('*');
                      return;
                    }
            ! 
                  // Parse mixed content.
                  skipWhitespace();
                  while (!tryRead(")"))
            *************** loop:
            *** 1839,1855 ****
                      dataBufferAppend(readNmtoken(true));
                      skipWhitespace();
                    }
            !     
                  // VC: Proper Group/PE Nesting
                  if (readBuffer != saved)
                    {
                      handler.verror("Illegal Group/PE nesting");
                    }
            !     
                  require('*');
                  dataBufferAppend(")*");
                }
            !   
                /**
                 * Parse an attribute list declaration.
                 * 
            --- 1839,1855 ----
                      dataBufferAppend(readNmtoken(true));
                      skipWhitespace();
                    }
            ! 
                  // VC: Proper Group/PE Nesting
                  if (readBuffer != saved)
                    {
                      handler.verror("Illegal Group/PE nesting");
                    }
            ! 
                  require('*');
                  dataBufferAppend(")*");
                }
            ! 
                /**
                 * Parse an attribute list declaration.
                 * 
            *************** loop:
            *** 1861,1867 ****
                  throws Exception
                {
                  String elementName;
            !     
                  requireWhitespace();
                  elementName = readNmtoken(true);
                  boolean white = tryWhitespace();
            --- 1861,1867 ----
                  throws Exception
                {
                  String elementName;
            ! 
                  requireWhitespace();
                  elementName = readNmtoken(true);
                  boolean white = tryWhitespace();
            *************** loop:
            *** 1875,1881 ****
                      white = tryWhitespace();
                    }
                }
            !   
                /**
                 * Parse a single attribute definition.
                 * 
            --- 1875,1881 ----
                      white = tryWhitespace();
                    }
                }
            ! 
                /**
                 * Parse a single attribute definition.
                 * 
            *************** loop:
            *** 1888,1894 ****
                  String name;
                  String type;
                  String enumer = null;
            !     
                  // Read the attribute name.
                  name = readNmtoken(true);
              
            --- 1888,1894 ----
                  String name;
                  String type;
                  String enumer = null;
            ! 
                  // Read the attribute name.
                  name = readNmtoken(true);
              
            *************** loop:
            *** 1911,1917 ****
                          enumer = dataBufferToString();
                        }
                    }
            !     
                  // Read the default value.
                  requireWhitespace();
                  parseDefault(elementName, name, type, enumer);
            --- 1911,1917 ----
                          enumer = dataBufferToString();
                        }
                    }
            ! 
                  // Read the default value.
                  requireWhitespace();
                  parseDefault(elementName, name, type, enumer);
            *************** loop:
            *** 1980,1986 ****
                      return null;
                    }
                }
            !   
                /**
                 * Parse an enumeration.
                 * 
            --- 1980,1986 ----
                      return null;
                    }
                }
            ! 
                /**
                 * Parse an enumeration.
                 * 
            *************** loop:
            *** 2022,2028 ****
                {
                  requireWhitespace();
                  require('(');
            !     
                  parseEnumeration(true);
                }
              
            --- 2022,2028 ----
                {
                  requireWhitespace();
                  require('(');
            ! 
                  parseEnumeration(true);
                }
              
            *************** loop:
            *** 2042,2052 ****
                  int flags = LIT_ATTRIBUTE;
                  boolean saved = expandPE;
                  String defaultType = null;
            !     
                  // LIT_ATTRIBUTE forces '<' checks now (ASAP) and turns whitespace
                  // chars to spaces (doesn't matter when that's done if it doesn't
                  // interfere with char refs expanding to whitespace).
            !     
                  if (!skippedPE)
                    {
                      flags |= LIT_ENTITY_REF;
            --- 2042,2052 ----
                  int flags = LIT_ATTRIBUTE;
                  boolean saved = expandPE;
                  String defaultType = null;
            ! 
                  // LIT_ATTRIBUTE forces '<' checks now (ASAP) and turns whitespace
                  // chars to spaces (doesn't matter when that's done if it doesn't
                  // interfere with char refs expanding to whitespace).
            ! 
                  if (!skippedPE)
                    {
                      flags |= LIT_ENTITY_REF;
            *************** loop:
            *** 2065,2071 ****
                            }
                        }
                    }
            !     
                  expandPE = false;
                  if (tryRead('#'))
                    {
            --- 2065,2071 ----
                            }
                        }
                    }
            ! 
                  expandPE = false;
                  if (tryRead('#'))
                    {
            *************** loop:
            *** 2125,2131 ****
                                                             defaultType, value);
                    }
                }
            !   
                /**
                 * Parse a conditional section.
                 * 
            --- 2125,2131 ----
                                                             defaultType, value);
                    }
                }
            ! 
                /**
                 * Parse a conditional section.
                 * 
            *************** loop:
            *** 2197,2203 ****
                      error("conditional section must begin with INCLUDE or IGNORE");
                    }
                }
            !   
                private void parseCharRef()
                  throws SAXException, IOException
                {
            --- 2197,2203 ----
                      error("conditional section must begin with INCLUDE or IGNORE");
                    }
                }
            ! 
                private void parseCharRef()
                  throws SAXException, IOException
                {
            *************** loop:
            *** 2216,2222 ****
                {
                  int value = 0;
                  char c;
            !     
                  if (tryRead('x'))
                    {
              loop1:
            --- 2216,2222 ----
                {
                  int value = 0;
                  char c;
            ! 
                  if (tryRead('x'))
                    {
              loop1:
            *************** loop2:
            *** 2263,2269 ****
                            }
                        }
                    }
            !     
                  // check for character refs being legal XML
                  if ((value < 0x0020
                       && ! (value == '\n' || value == '\t' || value == '\r'))
            --- 2263,2269 ----
                            }
                        }
                    }
            ! 
                  // check for character refs being legal XML
                  if ((value < 0x0020
                       && ! (value == '\n' || value == '\t' || value == '\r'))
            *************** loop2:
            *** 2274,2280 ****
                      error("illegal XML character reference U+"
                            + Integer.toHexString(value));
                    }
            !     
                  // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
                  //  (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
                  if (value > 0x0010ffff)
            --- 2274,2280 ----
                      error("illegal XML character reference U+"
                            + Integer.toHexString(value));
                    }
            ! 
                  // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
                  //  (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
                  if (value > 0x0010ffff)
            *************** loop2:
            *** 2283,2291 ****
                      error("character reference " + value + " is too large for UTF-16",
                            Integer.toString(value), null);
                    }
            !     
                }
            !   
                /**
                 * Read and interpret a character reference.
                 * 
            --- 2283,2291 ----
                      error("character reference " + value + " is too large for UTF-16",
                            Integer.toString(value), null);
                    }
            ! 
                }
            ! 
                /**
                 * Read and interpret a character reference.
                 * 
            *************** loop2:
            *** 2298,2304 ****
                {
                  int value = 0;
                  char c;
            !     
                  if (tryRead('x'))
                    {
              loop1:
            --- 2298,2304 ----
                {
                  int value = 0;
                  char c;
            ! 
                  if (tryRead('x'))
                    {
              loop1:
            *************** loop2:
            *** 2345,2351 ****
                            }
                        }
                    }
            !     
                  // check for character refs being legal XML
                  if ((value < 0x0020
                       && ! (value == '\n' || value == '\t' || value == '\r'))
            --- 2345,2351 ----
                            }
                        }
                    }
            ! 
                  // check for character refs being legal XML
                  if ((value < 0x0020
                       && ! (value == '\n' || value == '\t' || value == '\r'))
            *************** loop2:
            *** 2356,2362 ****
                      error("illegal XML character reference U+"
                            + Integer.toHexString(value));
                    }
            !     
                  // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
                  //  (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
                  if (value <= 0x0000ffff)
            --- 2356,2362 ----
                      error("illegal XML character reference U+"
                            + Integer.toHexString(value));
                    }
            ! 
                  // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
                  //  (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
                  if (value <= 0x0000ffff)
            *************** loop2:
            *** 2382,2388 ****
                      dataBufferFlush();
                    }
                }
            !   
                /**
                 * Parse and expand an entity reference.
                 * 
            --- 2382,2388 ----
                      dataBufferFlush();
                    }
                }
            ! 
                /**
                 * Parse and expand an entity reference.
                 * 
            *************** loop2:
            *** 2395,2401 ****
                  throws SAXException, IOException
                {
                  String name;
            !     
                  name = readNmtoken(true);
                  require(';');
                  switch (getEntityType(name))
            --- 2395,2401 ----
                  throws SAXException, IOException
                {
                  String name;
            ! 
                  name = readNmtoken(true);
                  require(';');
                  switch (getEntityType(name))
            *************** loop2:
            *** 2406,2412 ****
                      // unless the processor might _legitimately_ not have seen a
                      // declaration ... which is what this implements.
                      String message;
            !         
                      message = "reference to undeclared general entity " + name;
                      if (skippedPE && !docIsStandalone)
                        {
            --- 2406,2412 ----
                      // unless the processor might _legitimately_ not have seen a
                      // declaration ... which is what this implements.
                      String message;
            ! 
                      message = "reference to undeclared general entity " + name;
                      if (skippedPE && !docIsStandalone)
                        {
            *************** loop2:
            *** 2424,2448 ****
                      break;
                    case ENTITY_INTERNAL:
                        pushString(name, getEntityValue(name));
            !           
                        //workaround for possible input pop before marking
            !           //the buffer reading position  
                        char t = readCh();
                        unread(t);
                        int bufferPosMark = readBufferPos;
            !           
                        int end = readBufferPos + getEntityValue(name).length();
                        for (int k = readBufferPos; k < end; k++)
                          {
                            t = readCh();
                            if (t == '&')
                              {
            !                   t = readCh();   
                                if (t  == '#')
            !                     { 
                                    //try to match a character ref
                                    tryReadCharRef();
            !                 
                                    //everything has been read
                                    if (readBufferPos >= end)
                                      {
            --- 2424,2448 ----
                      break;
                    case ENTITY_INTERNAL:
                        pushString(name, getEntityValue(name));
            ! 
                        //workaround for possible input pop before marking
            !           //the buffer reading position
                        char t = readCh();
                        unread(t);
                        int bufferPosMark = readBufferPos;
            ! 
                        int end = readBufferPos + getEntityValue(name).length();
                        for (int k = readBufferPos; k < end; k++)
                          {
                            t = readCh();
                            if (t == '&')
                              {
            !                   t = readCh();
                                if (t  == '#')
            !                     {
                                    //try to match a character ref
                                    tryReadCharRef();
            ! 
                                    //everything has been read
                                    if (readBufferPos >= end)
                                      {
            *************** loop2:
            *** 2457,2463 ****
                                    unread(t);
                                    readNmtoken(true);
                                    require(';');
            !                       
                                    //everything has been read
                                    if (readBufferPos >= end)
                                      {
            --- 2457,2463 ----
                                    unread(t);
                                    readNmtoken(true);
                                    require(';');
            ! 
                                    //everything has been read
                                    if (readBufferPos >= end)
                                      {
            *************** loop2:
            *** 2468,2474 ****
                                  }
                                error(" malformed entity reference");
                              }
            !               
                          }
                        readBufferPos = bufferPosMark;
                        break;
            --- 2468,2474 ----
                                  }
                                error(" malformed entity reference");
                              }
            ! 
                          }
                        readBufferPos = bufferPosMark;
                        break;
            *************** loop2:
            *** 2499,2505 ****
                        throw new RuntimeException();
                    }
                }
            !     
                /**
                 * Parse and expand a parameter entity reference.
                 * 
            --- 2499,2505 ----
                        throw new RuntimeException();
                    }
                }
            ! 
                /**
                 * Parse and expand a parameter entity reference.
                 * 
            *************** loop2:
            *** 2511,2517 ****
                  throws SAXException, IOException
                {
                  String name;
            !     
                  name = "%" + readNmtoken(true);
                  require(';');
                  switch (getEntityType(name))
            --- 2511,2517 ----
                  throws SAXException, IOException
                {
                  String name;
            ! 
                  name = "%" + readNmtoken(true);
                  require(';');
                  switch (getEntityType(name))
            *************** loop2:
            *** 2519,2525 ****
                    case ENTITY_UNDECLARED:
                      // VC: Entity Declared
                      handler.verror("reference to undeclared parameter entity " + name);
            !         
                      // we should disable handling of all subsequent declarations
                      // unless this is a standalone document (info discarded)
                      break;
            --- 2519,2525 ----
                    case ENTITY_UNDECLARED:
                      // VC: Entity Declared
                      handler.verror("reference to undeclared parameter entity " + name);
            ! 
                      // we should disable handling of all subsequent declarations
                      // unless this is a standalone document (info discarded)
                      break;
            *************** loop2:
            *** 2546,2552 ****
                      break;
                    }
                }
            !   
                /**
                 * Parse an entity declaration.
                 * 
            --- 2546,2552 ----
                      break;
                    }
                }
            ! 
                /**
                 * Parse an entity declaration.
                 * 
            *************** loop2:
            *** 2566,2572 ****
                {
                  boolean peFlag = false;
                  int flags = 0;
            !     
                  // Check for a parameter entity.
                  expandPE = false;
                  requireWhitespace();
            --- 2566,2572 ----
                {
                  boolean peFlag = false;
                  int flags = 0;
            ! 
                  // Check for a parameter entity.
                  expandPE = false;
                  requireWhitespace();
            *************** loop2:
            *** 2576,2582 ****
                      requireWhitespace();
                    }
                  expandPE = true;
            !     
                  // Read the entity name, and prepend
                  // '%' if necessary.
                  String name = readNmtoken(true);
            --- 2576,2582 ----
                      requireWhitespace();
                    }
                  expandPE = true;
            ! 
                  // Read the entity name, and prepend
                  // '%' if necessary.
                  String name = readNmtoken(true);
            *************** loop2:
            *** 2605,2611 ****
                    {
                      // Read the external IDs
                      ExternalIdentifiers ids = readExternalIds(false, false);
            !         
                      // Check for NDATA declaration.
                      boolean white = tryWhitespace();
                      if (!peFlag && tryRead("NDATA"))
            --- 2605,2611 ----
                    {
                      // Read the external IDs
                      ExternalIdentifiers ids = readExternalIds(false, false);
            ! 
                      // Check for NDATA declaration.
                      boolean white = tryWhitespace();
                      if (!peFlag && tryRead("NDATA"))
            *************** loop2:
            *** 2637,2643 ****
                                                 : ids.systemId);
                        }
                    }
            !     
                  // Finish the declaration.
                  skipWhitespace();
                  require('>');
            --- 2637,2643 ----
                                                 : ids.systemId);
                        }
                    }
            ! 
                  // Finish the declaration.
                  skipWhitespace();
                  require('>');
            *************** loop2:
            *** 2672,2682 ****
              
                  // Register the notation.
                  setNotation(nname, ids);
            !     
                  skipWhitespace();
                  require('>');
                }
            !   
                /**
                 * Parse character data.
                 * 
            --- 2672,2682 ----
              
                  // Register the notation.
                  setNotation(nname, ids);
            ! 
                  skipWhitespace();
                  require('>');
                }
            ! 
                /**
                 * Parse character data.
                 * 
            *************** loop2:
            *** 2691,2697 ****
                  boolean pureWhite = false;
              
                  // assert (dataBufferPos == 0);
            !     
                  // are we expecting pure whitespace?  it might be dirty...
                  if ((currentElementContent == CONTENT_ELEMENTS) && !isDirtyCurrentElement)
                    {
            --- 2691,2697 ----
                  boolean pureWhite = false;
              
                  // assert (dataBufferPos == 0);
            ! 
                  // are we expecting pure whitespace?  it might be dirty...
                  if ((currentElementContent == CONTENT_ELEMENTS) && !isDirtyCurrentElement)
                    {
            *************** loop2:
            *** 2705,2711 ****
                      int lineAugment = 0;
                      int columnAugment = 0;
                      int i;
            !         
              loop:
                      for (i = readBufferPos; i < readBufferLength; i++)
                        {
            --- 2705,2711 ----
                      int lineAugment = 0;
                      int columnAugment = 0;
                      int i;
            ! 
              loop:
                      for (i = readBufferPos; i < readBufferLength; i++)
                        {
            *************** loop:
            *** 2751,2758 ****
                              break;
                            default:
                              if ((c < 0x0020 || c > 0xFFFD)
            !                     || ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085) 
            !                         && xmlVersion == XML_11)) 
                                {
                                  error("illegal XML character U+"
                                        + Integer.toHexString(c));
            --- 2751,2758 ----
                              break;
                            default:
                              if ((c < 0x0020 || c > 0xFFFD)
            !                     || ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085)
            !                         && xmlVersion == XML_11))
                                {
                                  error("illegal XML character U+"
                                        + Integer.toHexString(c));
            *************** loop:
            *** 2762,2768 ****
                              columnAugment++;
                            }
                        }
            !         
                      // report text thus far
                      if (lineAugment > 0)
                        {
            --- 2762,2768 ----
                              columnAugment++;
                            }
                        }
            ! 
                      // report text thus far
                      if (lineAugment > 0)
                        {
            *************** loop:
            *** 2773,2782 ****
                        {
                          column += columnAugment;
                        }
            !         
                      // report characters/whitspace
                      int length = i - readBufferPos;
            !         
                      if (length != 0)
                        {
                          if (pureWhite)
            --- 2773,2782 ----
                        {
                          column += columnAugment;
                        }
            ! 
                      // report characters/whitspace
                      int length = i - readBufferPos;
            ! 
                      if (length != 0)
                        {
                          if (pureWhite)
            *************** loop:
            *** 2790,2801 ****
                            }
                          readBufferPos = i;
                        }
            !         
                      if (state != 0)
                        {
                          break;
                        }
            !         
                      // fill next buffer from this entity, or
                      // pop stack and continue with previous entity
                      unread(readCh());
            --- 2790,2801 ----
                            }
                          readBufferPos = i;
                        }
            ! 
                      if (state != 0)
                        {
                          break;
                        }
            ! 
                      // fill next buffer from this entity, or
                      // pop stack and continue with previous entity
                      unread(readCh());
            *************** loop:
            *** 2810,2820 ****
                      error("character data may not contain ']]>'");
                    }
                }
            !   
                //////////////////////////////////////////////////////////////////////
                // High-level reading and scanning methods.
                //////////////////////////////////////////////////////////////////////
            !   
                /**
                 * Require whitespace characters.
                 */
            --- 2810,2820 ----
                      error("character data may not contain ']]>'");
                    }
                }
            ! 
                //////////////////////////////////////////////////////////////////////
                // High-level reading and scanning methods.
                //////////////////////////////////////////////////////////////////////
            ! 
                /**
                 * Require whitespace characters.
                 */
            *************** loop:
            *** 2849,2855 ****
                    {
                      int lineAugment = 0;
                      int columnAugment = 0;
            !         
              loop:
                      for (int i = readBufferPos; i < readBufferLength; i++)
                        {
            --- 2849,2855 ----
                    {
                      int lineAugment = 0;
                      int columnAugment = 0;
            ! 
              loop:
                      for (int i = readBufferPos; i < readBufferLength; i++)
                        {
            *************** loop:
            *** 2885,2891 ****
                            }
                        }
                    }
            !     
                  // OK, do it the slow way.
                  char c = readCh ();
                  while (isWhitespace(c))
            --- 2885,2891 ----
                            }
                        }
                    }
            ! 
                  // OK, do it the slow way.
                  char c = readCh ();
                  while (isWhitespace(c))
            *************** loop:
            *** 2894,2900 ****
                    }
                  unread(c);
                }
            !   
                /**
                 * Read a name or (when parsing an enumeration) name token.
                 * 
            --- 2894,2900 ----
                    }
                  unread(c);
                }
            ! 
                /**
                 * Read a name or (when parsing an enumeration) name token.
                 * 
            *************** loop:
            *** 2906,2912 ****
                  throws SAXException, IOException
                {
                  char c;
            !     
                  if (USE_CHEATS)
                    {
              loop:
            --- 2906,2912 ----
                  throws SAXException, IOException
                {
                  char c;
            ! 
                  if (USE_CHEATS)
                    {
              loop:
            *************** loop:
            *** 2921,2927 ****
                                  break loop;
                                }
                              // else fall through...
            !                 
                              // What may legitimately come AFTER a name/nmtoken?
                            case '<': case '>': case '&':
                            case ',': case '|': case '*': case '+': case '?':
            --- 2921,2927 ----
                                  break loop;
                                }
                              // else fall through...
            ! 
                              // What may legitimately come AFTER a name/nmtoken?
                            case '<': case '>': case '&':
                            case ',': case '|': case '*': case '+': case '?':
            *************** loop:
            *** 2939,2948 ****
                                }
                              readBufferPos = i;
                              return intern(readBuffer, start, i - start);
            !                 
                            default:
                              // FIXME ... per IBM's OASIS test submission, these:
            !                 //   ?    U+06dd 
                              //   Combining  U+309B
                              //these switches are kind of ugly but at least we won't
                              //have to go over the whole lits for each char
            --- 2939,2948 ----
                                }
                              readBufferPos = i;
                              return intern(readBuffer, start, i - start);
            ! 
                            default:
                              // FIXME ... per IBM's OASIS test submission, these:
            !                 //   ?    U+06dd
                              //   Combining  U+309B
                              //these switches are kind of ugly but at least we won't
                              //have to go over the whole lits for each char
            *************** loop:
            *** 2997,3003 ****
                                                    + Integer.toHexString(c));
                                            }
                                        }
            !                         
                                      break;
                                      //starting with 11
                                    case 0x1100:
            --- 2997,3003 ----
                                                    + Integer.toHexString(c));
                                            }
                                        }
            ! 
                                      break;
                                      //starting with 11
                                    case 0x1100:
            *************** loop:
            *** 3061,3067 ****
                                        }
                                      break;
                                    default:
            !                         if (c == 0x0e46 || c == 0x1011 
                                          || c == 0x212f || c == 0x0587
                                          || c == 0x0230 )
                                        {
            --- 3061,3067 ----
                                        }
                                      break;
                                    default:
            !                         if (c == 0x0e46 || c == 0x1011
                                          || c == 0x212f || c == 0x0587
                                          || c == 0x0230 )
                                        {
            *************** loop:
            *** 3091,3097 ****
                            }
                        }
                    }
            !     
                  nameBufferPos = 0;
              
                  // Read the first character.
            --- 3091,3097 ----
                            }
                        }
                    }
            ! 
                  nameBufferPos = 0;
              
                  // Read the first character.
            *************** loop:
            *** 3128,3134 ****
                          return s;
                        default:
                          // punt on exact tests from Appendix A, but approximate them
            !             
                          if ((nameBufferPos != 0 || !isName)
                              && !Character.isUnicodeIdentifierPart(c)
                              && ":-_.".indexOf(c) == -1
            --- 3128,3134 ----
                          return s;
                        default:
                          // punt on exact tests from Appendix A, but approximate them
            ! 
                          if ((nameBufferPos != 0 || !isName)
                              && !Character.isUnicodeIdentifierPart(c)
                              && ":-_.".indexOf(c) == -1
            *************** loop:
            *** 3147,3153 ****
                        }
                    }
                }
            !   
                private static boolean isExtender(char c)
                {
                  // [88] Extender ::= ...
            --- 3147,3153 ----
                        }
                    }
                }
            ! 
                private static boolean isExtender(char c)
                {
                  // [88] Extender ::= ...
            *************** loop:
            *** 3178,3184 ****
                  int startLine = line;
                  boolean saved = expandPE;
                  boolean savedReport = doReport;
            !     
                  // Find the first delimiter.
                  delim = readCh();
                  if (delim != '"' && delim != '\'')
            --- 3178,3184 ----
                  int startLine = line;
                  boolean saved = expandPE;
                  boolean savedReport = doReport;
            ! 
                  // Find the first delimiter.
                  delim = readCh();
                  if (delim != '"' && delim != '\'')
            *************** loop:
            *** 3192,3198 ****
                      expandPE = false;
                    }
                  doReport = false;
            !     
                  // Each level of input source has its own buffer; remember
                  // ours, so we won't read the ending delimiter from any
                  // other input source, regardless of entity processing.
            --- 3192,3198 ----
                      expandPE = false;
                    }
                  doReport = false;
            ! 
                  // Each level of input source has its own buffer; remember
                  // ours, so we won't read the ending delimiter from any
                  // other input source, regardless of entity processing.
            *************** loop:
            *** 3235,3245 ****
                                      break;
                                    }
                                  parseCharRef(false /* Do not do flushDataBuffer */);
            !                     
                                  // exotic WFness risk: this is an entity literal,
                                  // dataBuffer [dataBufferPos - 1] == '&', and
                                  // following chars are a _partial_ entity/char ref
            !                     
                                  // It looks like an entity ref ...
                                }
                              else
            --- 3235,3245 ----
                                      break;
                                    }
                                  parseCharRef(false /* Do not do flushDataBuffer */);
            ! 
                                  // exotic WFness risk: this is an entity literal,
                                  // dataBuffer [dataBufferPos - 1] == '&', and
                                  // following chars are a _partial_ entity/char ref
            ! 
                                  // It looks like an entity ref ...
                                }
                              else
            *************** loop:
            *** 3258,3264 ****
                                  else if ((flags & LIT_DISABLE_EREF) != 0)
                                    {
                                      dataBufferAppend('&');
            !                         
                                      // OK, it will be an entity ref -- expanded later.
                                    }
                                  else
            --- 3258,3264 ----
                                  else if ((flags & LIT_DISABLE_EREF) != 0)
                                    {
                                      dataBufferAppend('&');
            ! 
                                      // OK, it will be an entity ref -- expanded later.
                                    }
                                  else
            *************** loop:
            *** 3272,3278 ****
                                }
                              c = readCh();
                              continue loop;
            !                 
                            case '<':
                              // and why?  Perhaps so "&foo;" expands the same
                              // inside and outside an attribute?
            --- 3272,3278 ----
                                }
                              c = readCh();
                              continue loop;
            ! 
                            case '<':
                              // and why?  Perhaps so "&foo;" expands the same
                              // inside and outside an attribute?
            *************** loop:
            *** 3283,3289 ****
                              break;
              
                              // We don't worry about case '%' and PE refs, readCh does.
            !                 
                            default:
                              break;
                            }
            --- 3283,3289 ----
                              break;
              
                              // We don't worry about case '%' and PE refs, readCh does.
            ! 
                            default:
                              break;
                            }
            *************** loop:
            *** 3299,3315 ****
                  inLiteral = false;
                  expandPE = saved;
                  doReport = savedReport;
            !     
                  // Normalise whitespace if necessary.
                  if ((flags & LIT_NORMALIZE) > 0)
                    {
                      dataBufferNormalize();
                    }
            !     
                  // Return the value.
                  return dataBufferToString();
                }
            !   
                /**
                 * Try reading external identifiers.
                 * A system identifier is not required for notations.
            --- 3299,3315 ----
                  inLiteral = false;
                  expandPE = saved;
                  doReport = savedReport;
            ! 
                  // Normalise whitespace if necessary.
                  if ((flags & LIT_NORMALIZE) > 0)
                    {
                      dataBufferNormalize();
                    }
            ! 
                  // Return the value.
                  return dataBufferToString();
                }
            ! 
                /**
                 * Try reading external identifiers.
                 * A system identifier is not required for notations.
            *************** loop:
            *** 3325,3331 ****
                  char c;
                  ExternalIdentifiers ids = new ExternalIdentifiers();
                  int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
            !     
                  if (tryRead("PUBLIC"))
                    {
                      requireWhitespace();
            --- 3325,3331 ----
                  char c;
                  ExternalIdentifiers ids = new ExternalIdentifiers();
                  int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
            ! 
                  if (tryRead("PUBLIC"))
                    {
                      requireWhitespace();
            *************** loop:
            *** 3345,3351 ****
                          requireWhitespace();
                          ids.systemId = readLiteral(flags);
                        }
            !         
                      for (int i = 0; i < ids.publicId.length(); i++)
                        {
                          c = ids.publicId.charAt(i);
            --- 3345,3351 ----
                          requireWhitespace();
                          ids.systemId = readLiteral(flags);
                        }
            ! 
                      for (int i = 0; i < ids.publicId.length(); i++)
                        {
                          c = ids.publicId.charAt(i);
            *************** loop:
            *** 3374,3380 ****
                    {
                      error("missing SYSTEM or PUBLIC keyword");
                    }
            !       
                  if (ids.systemId != null)
                    {
                      if (ids.systemId.indexOf('#') != -1)
            --- 3374,3380 ----
                    {
                      error("missing SYSTEM or PUBLIC keyword");
                    }
            ! 
                  if (ids.systemId != null)
                    {
                      if (ids.systemId.indexOf('#') != -1)
            *************** loop:
            *** 3388,3394 ****
                                       + ids.systemId);
                        }
                    }
            !     
                  return ids;
                }
              
            --- 3388,3394 ----
                                       + ids.systemId);
                        }
                    }
            ! 
                  return ids;
                }
              
            *************** loop:
            *** 3416,3422 ****
                //////////////////////////////////////////////////////////////////////
                // Utility routines.
                //////////////////////////////////////////////////////////////////////
            !     
                /**
                 * Add a character to the data buffer.
                 */
            --- 3416,3422 ----
                //////////////////////////////////////////////////////////////////////
                // Utility routines.
                //////////////////////////////////////////////////////////////////////
            ! 
                /**
                 * Add a character to the data buffer.
                 */
            *************** loop:
            *** 3446,3452 ****
                {
                  dataBuffer = (char[]) extendArray(dataBuffer, dataBuffer.length,
                                                    dataBufferPos + length);
            !     
                  System.arraycopy(ch, start, dataBuffer, dataBufferPos, length);
                  dataBufferPos += length;
                }
            --- 3446,3452 ----
                {
                  dataBuffer = (char[]) extendArray(dataBuffer, dataBuffer.length,
                                                    dataBufferPos + length);
            ! 
                  System.arraycopy(ch, start, dataBuffer, dataBufferPos, length);
                  dataBufferPos += length;
                }
            *************** loop:
            *** 3459,3471 ****
                  int i = 0;
                  int j = 0;
                  int end = dataBufferPos;
            !     
                  // Skip spaces at the start.
                  while (j < end && dataBuffer[j] == ' ')
                    {
                      j++;
                    }
            !     
                  // Skip whitespace at the end.
                  while (end > j && dataBuffer[end - 1] == ' ')
                    {
            --- 3459,3471 ----
                  int i = 0;
                  int j = 0;
                  int end = dataBufferPos;
            ! 
                  // Skip spaces at the start.
                  while (j < end && dataBuffer[j] == ' ')
                    {
                      j++;
                    }
            ! 
                  // Skip whitespace at the end.
                  while (end > j && dataBuffer[end - 1] == ' ')
                    {
            *************** loop:
            *** 3475,3483 ****
                  // Start copying to the left.
                  while (j < end)
                    {
            !         
                      char c = dataBuffer[j++];
            !         
                      // Normalise all other spaces to
                      // a single space.
                      if (c == ' ')
            --- 3475,3483 ----
                  // Start copying to the left.
                  while (j < end)
                    {
            ! 
                      char c = dataBuffer[j++];
            ! 
                      // Normalise all other spaces to
                      // a single space.
                      if (c == ' ')
            *************** loop:
            *** 3494,3500 ****
                          dataBuffer[i++] = c;
                        }
                    }
            !     
                  // The new length is <= the old one.
                  dataBufferPos = i;
                }
            --- 3494,3500 ----
                          dataBuffer[i++] = c;
                        }
                    }
            ! 
                  // The new length is <= the old one.
                  dataBufferPos = i;
                }
            *************** loop:
            *** 3554,3560 ****
                {
                  int length = delim.length();
                  char[] ch;
            !     
                  if (length < dataBuffer.length)
                    {
                      ch = dataBuffer;
            --- 3554,3560 ----
                {
                  int length = delim.length();
                  char[] ch;
            ! 
                  if (length < dataBuffer.length)
                    {
                      ch = dataBuffer;
            *************** loop:
            *** 3564,3574 ****
                    {
                      ch = delim.toCharArray();
                    }
            !       
                  if (USE_CHEATS && length <= (readBufferLength - readBufferPos))
                    {
                      int offset = readBufferPos;
            !         
                      for (int i = 0; i < length; i++, offset++)
                        {
                          if (ch[i] != readBuffer[offset])
            --- 3564,3574 ----
                    {
                      ch = delim.toCharArray();
                    }
            ! 
                  if (USE_CHEATS && length <= (readBufferLength - readBufferPos))
                    {
                      int offset = readBufferPos;
            ! 
                      for (int i = 0; i < length; i++, offset++)
                        {
                          if (ch[i] != readBuffer[offset])
            *************** loop:
            *** 3577,3583 ****
                            }
                        }
                      readBufferPos = offset;
            !         
                    }
                  else
                    {
            --- 3577,3583 ----
                            }
                        }
                      readBufferPos = offset;
            ! 
                    }
                  else
                    {
            *************** loop:
            *** 3595,3607 ****
                  throws SAXException, IOException
                {
                  char c = readCh();
            !     
                  if (c != delim)
                    {
                      error("required character", c, Character.toString(delim));
                    }
                }
            !   
                /**
                 * Create an interned string from a character array.
                 * Ælfred uses this method to create an interned version
            --- 3595,3607 ----
                  throws SAXException, IOException
                {
                  char c = readCh();
            ! 
                  if (c != delim)
                    {
                      error("required character", c, Character.toString(delim));
                    }
                }
            ! 
                /**
                 * Create an interned string from a character array.
                 * Ælfred uses this method to create an interned version
            *************** loop:
            *** 3631,3643 ****
                      hash = 31 * hash + ch[i];
                    }
                  hash = (hash & 0x7fffffff) % SYMBOL_TABLE_LENGTH;
            !     
                  // Get the bucket -- consists of {array,String} pairs
                  if ((bucket = symbolTable[hash]) == null)
                    {
                      // first string in this bucket
                      bucket = new Object[8];
            !         
                      // Search for a matching tuple, and
                      // return the string if we find one.
                    }
            --- 3631,3643 ----
                      hash = 31 * hash + ch[i];
                    }
                  hash = (hash & 0x7fffffff) % SYMBOL_TABLE_LENGTH;
            ! 
                  // Get the bucket -- consists of {array,String} pairs
                  if ((bucket = symbolTable[hash]) == null)
                    {
                      // first string in this bucket
                      bucket = new Object[8];
            ! 
                      // Search for a matching tuple, and
                      // return the string if we find one.
                    }
            *************** loop:
            *** 3646,3658 ****
                      while (index < bucket.length)
                        {
                          char[] chFound = (char[]) bucket[index];
            !         
                          // Stop when we hit an empty entry.
                          if (chFound == null)
                            {
                              break;
                            }
            !             
                          // If they're the same length, check for a match.
                          if (chFound.length == length)
                            {
            --- 3646,3658 ----
                      while (index < bucket.length)
                        {
                          char[] chFound = (char[]) bucket[index];
            ! 
                          // Stop when we hit an empty entry.
                          if (chFound == null)
                            {
                              break;
                            }
            ! 
                          // If they're the same length, check for a match.
                          if (chFound.length == length)
                            {
            *************** loop:
            *** 3673,3684 ****
                          index += 2;
                        }
                      // Not found -- we'll have to add it.
            !         
                      // Do we have to grow the bucket?
                      bucket = (Object[]) extendArray(bucket, bucket.length, index);
                    }
                  symbolTable[hash] = bucket;
            !     
                  // OK, add it to the end of the bucket -- "local" interning.
                  // Intern "globally" to let applications share interning benefits.
                  // That is, "!=" and "==" work on our strings, not just equals().
            --- 3673,3684 ----
                          index += 2;
                        }
                      // Not found -- we'll have to add it.
            ! 
                      // Do we have to grow the bucket?
                      bucket = (Object[]) extendArray(bucket, bucket.length, index);
                    }
                  symbolTable[hash] = bucket;
            ! 
                  // OK, add it to the end of the bucket -- "local" interning.
                  // Intern "globally" to let applications share interning benefits.
                  // That is, "!=" and "==" work on our strings, not just equals().
            *************** loop:
            *** 3690,3696 ****
              
                /**
                 * Ensure the capacity of an array, allocating a new one if
            !    * necessary.  Usually extends only for name hash collisions. 
                 */
                private Object extendArray(Object array, int currentSize, int requiredSize)
                {
            --- 3690,3696 ----
              
                /**
                 * Ensure the capacity of an array, allocating a new one if
            !    * necessary.  Usually extends only for name hash collisions.
                 */
                private Object extendArray(Object array, int currentSize, int requiredSize)
                {
            *************** loop:
            *** 3702,3713 ****
                    {
                      Object newArray = null;
                      int newSize = currentSize * 2;
            !         
                      if (newSize <= requiredSize)
                        {
                          newSize = requiredSize + 1;
                        }
            !         
                      if (array instanceof char[])
                        {
                          newArray = new char[newSize];
            --- 3702,3713 ----
                    {
                      Object newArray = null;
                      int newSize = currentSize * 2;
            ! 
                      if (newSize <= requiredSize)
                        {
                          newSize = requiredSize + 1;
                        }
            ! 
                      if (array instanceof char[])
                        {
                          newArray = new char[newSize];
            *************** loop:
            *** 3720,3726 ****
                        {
                          throw new RuntimeException();
                        }
            !         
                      System.arraycopy(array, 0, newArray, 0, currentSize);
                      return newArray;
                    }
            --- 3720,3726 ----
                        {
                          throw new RuntimeException();
                        }
            ! 
                      System.arraycopy(array, 0, newArray, 0, currentSize);
                      return newArray;
                    }
            *************** loop:
            *** 3729,3748 ****
                //////////////////////////////////////////////////////////////////////
                // XML query routines.
                //////////////////////////////////////////////////////////////////////
            !   
                boolean isStandalone()
                {
                  return docIsStandalone;
                }
            !     
                //
                // Elements
                //
            !   
                private int getContentType(ElementDecl element, int defaultType)
                {
                  int retval;
            !     
                  if (element == null)
                    {
                      return defaultType;
            --- 3729,3748 ----
                //////////////////////////////////////////////////////////////////////
                // XML query routines.
                //////////////////////////////////////////////////////////////////////
            ! 
                boolean isStandalone()
                {
                  return docIsStandalone;
                }
            ! 
                //
                // Elements
                //
            ! 
                private int getContentType(ElementDecl element, int defaultType)
                {
                  int retval;
            ! 
                  if (element == null)
                    {
                      return defaultType;
            *************** loop:
            *** 3770,3776 ****
                  ElementDecl element = (ElementDecl) elementInfo.get(name);
                  return getContentType(element, CONTENT_UNDECLARED);
                }
            !   
                /**
                 * Register an element.
                 * Array format:
            --- 3770,3776 ----
                  ElementDecl element = (ElementDecl) elementInfo.get(name);
                  return getContentType(element, CONTENT_UNDECLARED);
                }
            ! 
                /**
                 * Register an element.
                 * Array format:
            *************** loop:
            *** 3788,3794 ****
                    }
              
                  ElementDecl element = (ElementDecl) elementInfo.get(name);
            !     
                  // first  or  for this type?
                  if (element == null)
                    {
            --- 3788,3794 ----
                    }
              
                  ElementDecl element = (ElementDecl) elementInfo.get(name);
            ! 
                  // first  or  for this type?
                  if (element == null)
                    {
            *************** loop:
            *** 3799,3805 ****
                      elementInfo.put(name, element);
                      return;
                    }
            !     
                  //  declaration?
                  if (contentType != CONTENT_UNDECLARED)
                    {
            --- 3799,3805 ----
                      elementInfo.put(name, element);
                      return;
                    }
            ! 
                  //  declaration?
                  if (contentType != CONTENT_UNDECLARED)
                    {
            *************** loop:
            *** 3816,3829 ****
                                         + name);
                        }
                    }
            !     
                  // first , before  ?
                  else if (attributes != null)
                    {
                      element.attributes = attributes;
                    }
                }
            !   
                /**
                 * Look up the attribute hash table for an element.
                 * The hash table is the second item in the element array.
            --- 3816,3829 ----
                                         + name);
                        }
                    }
            ! 
                  // first , before  ?
                  else if (attributes != null)
                    {
                      element.attributes = attributes;
                    }
                }
            ! 
                /**
                 * Look up the attribute hash table for an element.
                 * The hash table is the second item in the element array.
            *************** loop:
            *** 3837,3843 ****
                //
                // Attributes
                //
            !   
                /**
                 * Get the declared attributes for an element type.
                 * @param elname The name of the element type.
            --- 3837,3843 ----
                //
                // Attributes
                //
            ! 
                /**
                 * Get the declared attributes for an element type.
                 * @param elname The name of the element type.
            *************** loop:
            *** 3853,3859 ****
                private Iterator declaredAttributes(ElementDecl element)
                {
                  HashMap attlist;
            !     
                  if (element == null)
                    {
                      return null;
            --- 3853,3859 ----
                private Iterator declaredAttributes(ElementDecl element)
                {
                  HashMap attlist;
            ! 
                  if (element == null)
                    {
                      return null;
            *************** loop:
            *** 3977,3984 ****
                  AttributeDecl attribute = getAttribute(name, aname);
                  return (attribute == null) ? ATTRIBUTE_DEFAULT_UNDECLARED :
                    attribute.valueType;
            !   }  
            !   
                /**
                 * Register an attribute declaration for later retrieval.
                 * Format:
            --- 3977,3984 ----
                  AttributeDecl attribute = getAttribute(name, aname);
                  return (attribute == null) ? ATTRIBUTE_DEFAULT_UNDECLARED :
                    attribute.valueType;
            !   }
            ! 
                /**
                 * Register an attribute declaration for later retrieval.
                 * Format:
            *************** loop:
            *** 3993,4011 ****
                  throws Exception
                {
                  HashMap attlist;
            !     
                  if (skippedPE)
                    {
                      return;
                    }
            !     
                  // Create a new hashtable if necessary.
                  attlist = getElementAttributes(elName);
                  if (attlist == null)
                    {
                      attlist = new HashMap();
                    }
            !     
                  // ignore multiple attribute declarations!
                  if (attlist.get(name) != null)
                    {
            --- 3993,4011 ----
                  throws Exception
                {
                  HashMap attlist;
            ! 
                  if (skippedPE)
                    {
                      return;
                    }
            ! 
                  // Create a new hashtable if necessary.
                  attlist = getElementAttributes(elName);
                  if (attlist == null)
                    {
                      attlist = new HashMap();
                    }
            ! 
                  // ignore multiple attribute declarations!
                  if (attlist.get(name) != null)
                    {
            *************** loop:
            *** 4020,4026 ****
                      attribute.valueType = valueType;
                      attribute.enumeration = enumeration;
                      attlist.put(name, attribute);
            !       
                      // save; but don't overwrite any existing 
                      setElement(elName, CONTENT_UNDECLARED, null, attlist);
                    }
            --- 4020,4026 ----
                      attribute.valueType = valueType;
                      attribute.enumeration = enumeration;
                      attlist.put(name, attribute);
            ! 
                      // save; but don't overwrite any existing 
                      setElement(elName, CONTENT_UNDECLARED, null, attlist);
                    }
            *************** loop:
            *** 4038,4044 ****
                //
                // Entities
                //
            !   
                /**
                 * Find the type of an entity.
                 * @returns An integer constant representing the entity type.
            --- 4038,4044 ----
                //
                // Entities
                //
            ! 
                /**
                 * Find the type of an entity.
                 * @returns An integer constant representing the entity type.
            *************** loop:
            *** 4135,4141 ****
                //
                // Notations.
                //
            !   
                /**
                 * Report a notation declaration, checking for duplicates.
                 */
            --- 4135,4141 ----
                //
                // Notations.
                //
            ! 
                /**
                 * Report a notation declaration, checking for duplicates.
                 */
            *************** loop:
            *** 4146,4152 ****
                    {
                      return;
                    }
            !     
                  handler.notationDecl(nname, ids.publicId, ids.systemId, ids.baseUri);
                  if (notationInfo.get(nname) == null)
                    {
            --- 4146,4152 ----
                    {
                      return;
                    }
            ! 
                  handler.notationDecl(nname, ids.publicId, ids.systemId, ids.baseUri);
                  if (notationInfo.get(nname) == null)
                    {
            *************** loop:
            *** 4158,4168 ****
                      handler.verror("Duplicate notation name decl: " + nname);
                    }
                }
            !   
                //
                // Location.
                //
            !   
                /**
                 * Return the current line number.
                 */
            --- 4158,4168 ----
                      handler.verror("Duplicate notation name decl: " + nname);
                    }
                }
            ! 
                //
                // Location.
                //
            ! 
                /**
                 * Return the current line number.
                 */
            *************** loop:
            *** 4182,4188 ****
                //////////////////////////////////////////////////////////////////////
                // High-level I/O.
                //////////////////////////////////////////////////////////////////////
            !   
                /**
                 * Read a single character from the readBuffer.
                 * 

            The readDataChunk () method maintains the buffer. --- 4182,4188 ---- ////////////////////////////////////////////////////////////////////// // High-level I/O. ////////////////////////////////////////////////////////////////////// ! /** * Read a single character from the readBuffer. *

            The readDataChunk () method maintains the buffer. *************** loop: *** 4223,4238 **** } } break; ! default: ! popInput(); break; } } ! char c = readBuffer[readBufferPos++]; ! if (c == '\n') { line++; --- 4223,4238 ---- } } break; ! default: ! popInput(); break; } } ! char c = readBuffer[readBufferPos++]; ! if (c == '\n') { line++; *************** loop: *** 4245,4251 **** /* the most common return to parseContent () ... NOP */ } else if (((c < 0x0020 && (c != '\t') && (c != '\r')) || c > 0xFFFD) ! || ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085) && xmlVersion == XML_11)) { error("illegal XML character U+" + Integer.toHexString(c)); --- 4245,4251 ---- /* the most common return to parseContent () ... NOP */ } else if (((c < 0x0020 && (c != '\t') && (c != '\r')) || c > 0xFFFD) ! || ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085) && xmlVersion == XML_11)) { error("illegal XML character U+" + Integer.toHexString(c)); *************** loop: *** 4274,4280 **** * Push a single character back onto the current input stream. *

            This method usually pushes the character back onto * the readBuffer. ! *

            I don't think that this would ever be called with * readBufferPos = 0, because the methods always reads a character * before unreading it, but just in case, I've added a boundary * condition. --- 4274,4280 ---- * Push a single character back onto the current input stream. *

            This method usually pushes the character back onto * the readBuffer. ! *

            I don't think that this would ever be called with * readBufferPos = 0, because the methods always reads a character * before unreading it, but just in case, I've added a boundary * condition. *************** loop: *** 4451,4457 **** scratch.setCharacterStream(null); scratch.setByteStream(null); scratch.setEncoding(null); ! // Push the existing status. pushInput(ename); --- 4451,4457 ---- scratch.setCharacterStream(null); scratch.setByteStream(null); scratch.setEncoding(null); ! // Push the existing status. pushInput(ename); *************** loop: *** 4475,4481 **** tryEncodingDecl(true); return; } ! // Else we handle the conversion, and need to ensure // it's done right. sourceType = INPUT_STREAM; --- 4475,4481 ---- tryEncodingDecl(true); return; } ! // Else we handle the conversion, and need to ensure // it's done right. sourceType = INPUT_STREAM; *************** loop: *** 4487,4498 **** { // We have to open our own stream to the URL. URL url = new URL(systemId); ! externalEntity = url.openConnection(); externalEntity.connect(); is = externalEntity.getInputStream(); } ! // If we get to here, there must be // an InputStream available. if (!is.markSupported()) --- 4487,4498 ---- { // We have to open our own stream to the URL. URL url = new URL(systemId); ! externalEntity = url.openConnection(); externalEntity.connect(); is = externalEntity.getInputStream(); } ! // If we get to here, there must be // an InputStream available. if (!is.markSupported()) *************** loop: *** 4509,4519 **** if (!"file".equals(externalEntity.getURL().getProtocol())) { int temp; ! // application/xml;charset=something;otherAttr=... // ... with many variants on 'something' encoding = externalEntity.getContentType(); ! // MHK code (fix for Saxon 5.5.1/007): // protect against encoding==null if (encoding == null) --- 4509,4519 ---- if (!"file".equals(externalEntity.getURL().getProtocol())) { int temp; ! // application/xml;charset=something;otherAttr=... // ... with many variants on 'something' encoding = externalEntity.getContentType(); ! // MHK code (fix for Saxon 5.5.1/007): // protect against encoding==null if (encoding == null) *************** loop: *** 4524,4530 **** { temp = encoding.indexOf("charset"); } ! // RFC 2376 sez MIME text defaults to ASCII, but since the // JDK will create a MIME type out of thin air, we always // autodetect when there's no explicit charset attribute. --- 4524,4530 ---- { temp = encoding.indexOf("charset"); } ! // RFC 2376 sez MIME text defaults to ASCII, but since the // JDK will create a MIME type out of thin air, we always // autodetect when there's no explicit charset attribute. *************** loop: *** 4539,4549 **** { encoding = encoding.substring(0, temp); } ! if ((temp = encoding.indexOf('=', temp + 7)) > 0) { encoding = encoding.substring(temp + 1); ! // attributes can have comment fields (RFC 822) if ((temp = encoding.indexOf('(')) > 0) { --- 4539,4549 ---- { encoding = encoding.substring(0, temp); } ! if ((temp = encoding.indexOf('=', temp + 7)) > 0) { encoding = encoding.substring(temp + 1); ! // attributes can have comment fields (RFC 822) if ((temp = encoding.indexOf('(')) > 0) { *************** loop: *** 4567,4580 **** } } } ! // if we got an external encoding label, use it ... if (encoding != null) { this.encoding = ENCODING_EXTERNAL; setupDecoding(encoding); ignoreEncoding = true; ! // ... else autodetect from first bytes. } else --- 4567,4580 ---- } } } ! // if we got an external encoding label, use it ... if (encoding != null) { this.encoding = ENCODING_EXTERNAL; setupDecoding(encoding); ignoreEncoding = true; ! // ... else autodetect from first bytes. } else *************** loop: *** 4608,4620 **** readBufferOverflow = -1; line = 1; currentByteCount = column = 0; ! sourceType = INPUT_READER; this.reader = new InputStreamReader(is, encoding); is = null; ! tryEncodingDecl(true); ! } catch (IOException e) { --- 4608,4620 ---- readBufferOverflow = -1; line = 1; currentByteCount = column = 0; ! sourceType = INPUT_READER; this.reader = new InputStreamReader(is, encoding); is = null; ! tryEncodingDecl(true); ! } catch (IOException e) { *************** loop: *** 4672,4678 **** /** * Attempt to detect the encoding of an entity. *

            The trick here (as suggested in the XML standard) is that ! * any entity not in UTF-8, or in UCS-2 with a byte-order mark, * must begin with an XML declaration or an encoding * declaration; we simply have to look for "<?xml" in various * encodings. --- 4672,4678 ---- /** * Attempt to detect the encoding of an entity. *

            The trick here (as suggested in the XML standard) is that ! * any entity not in UTF-8, or in UCS-2 with a byte-order mark, * must begin with an XML declaration or an encoding * declaration; we simply have to look for "<?xml" in various * encodings. *************** loop: *** 4792,4798 **** { // 4c 6f a7 94 ... we don't understand EBCDIC flavors // ... but we COULD at least kick in some fixed code page ! // (default) UTF-8 without encoding/XML declaration encoding = ENCODING_UTF_8; } --- 4792,4798 ---- { // 4c 6f a7 94 ... we don't understand EBCDIC flavors // ... but we COULD at least kick in some fixed code page ! // (default) UTF-8 without encoding/XML declaration encoding = ENCODING_UTF_8; } *************** loop: *** 4832,4838 **** /** * This method pushes a string back onto input. ! *

            It is useful either as the expansion of an internal entity, * or for backtracking during the parse. *

            Call pushCharArray () to do the actual work. * @param s The string to push back onto input. --- 4832,4838 ---- /** * This method pushes a string back onto input. ! *

            It is useful either as the expansion of an internal entity, * or for backtracking during the parse. *

            Call pushCharArray () to do the actual work. * @param s The string to push back onto input. *************** loop: *** 4918,4930 **** } } entityStack.addLast(ename); ! // Don't bother if there is no current input. if (sourceType == INPUT_NONE) { return; } ! // Set up a snapshot of the current // input source. Input input = new Input(); --- 4918,4930 ---- } } entityStack.addLast(ename); ! // Don't bother if there is no current input. if (sourceType == INPUT_NONE) { return; } ! // Set up a snapshot of the current // input source. Input input = new Input(); *************** loop: *** 4941,4947 **** input.currentByteCount = currentByteCount; input.column = column; input.reader = reader; ! // Push it onto the stack. inputStack.addLast(input); } --- 4941,4947 ---- input.currentByteCount = currentByteCount; input.column = column; input.reader = reader; ! // Push it onto the stack. inputStack.addLast(input); } *************** loop: *** 5010,5016 **** column = input.column; reader = input.reader; } ! /** * Return true if we can read the expected character. *

            Note that the character will be removed from the input stream --- 5010,5016 ---- column = input.column; reader = input.reader; } ! /** * Return true if we can read the expected character. *

            Note that the character will be removed from the input stream *************** loop: *** 5026,5032 **** throws SAXException, IOException { char c; ! // Read the character c = readCh(); --- 5026,5032 ---- throws SAXException, IOException { char c; ! // Read the character c = readCh(); *************** loop: *** 5069,5075 **** // Compare the input, character- // by character. ! for (int i = 0; i < ch.length; i++) { c = readCh(); --- 5069,5075 ---- // Compare the input, character- // by character. ! for (int i = 0; i < ch.length; i++) { c = readCh(); *************** loop: *** 5109,5115 **** return false; } } ! /** * Read all data until we find the specified string. * This is useful for scanning CDATA sections and PIs. --- 5109,5115 ---- return false; } } ! /** * Read all data until we find the specified string. * This is useful for scanning CDATA sections and PIs. *************** loop: *** 5130,5136 **** { char c; int startLine = line; ! try { while (!tryRead(delim)) --- 5130,5136 ---- { char c; int startLine = line; ! try { while (!tryRead(delim)) *************** loop: *** 5150,5156 **** ////////////////////////////////////////////////////////////////////// // Low-level I/O. ////////////////////////////////////////////////////////////////////// ! /** * Prefetch US-ASCII XML/text decl from input stream into read buffer. * Doesn't buffer more than absolutely needed, so that when an encoding --- 5150,5156 ---- ////////////////////////////////////////////////////////////////////// // Low-level I/O. ////////////////////////////////////////////////////////////////////// ! /** * Prefetch US-ASCII XML/text decl from input stream into read buffer. * Doesn't buffer more than absolutely needed, so that when an encoding *************** loop: *** 5163,5169 **** { int ch; readBufferPos = readBufferLength = 0; ! is.mark(readBuffer.length); while (true) { --- 5163,5169 ---- { int ch; readBufferPos = readBufferLength = 0; ! is.mark(readBuffer.length); while (true) { *************** loop: *** 5201,5207 **** throws SAXException, IOException { int count; ! // See if we have any overflow (filterCR sets for CR at end) if (readBufferOverflow > -1) { --- 5201,5207 ---- throws SAXException, IOException { int count; ! // See if we have any overflow (filterCR sets for CR at end) if (readBufferOverflow > -1) { *************** loop: *** 5236,5242 **** sawCR = false; return; } ! // Read as many bytes as possible into the raw buffer. count = is.read(rawReadBuffer, 0, READ_BUFFER_MAX); --- 5236,5242 ---- sawCR = false; return; } ! // Read as many bytes as possible into the raw buffer. count = is.read(rawReadBuffer, 0, READ_BUFFER_MAX); *************** loop: *** 5265,5271 **** case ENCODING_UCS_2_21: copyUcs2ReadBuffer(count, 0, 8); break; ! // four byte builtins case ENCODING_UCS_4_1234: copyUcs4ReadBuffer(count, 24, 16, 8, 0); --- 5265,5271 ---- case ENCODING_UCS_2_21: copyUcs2ReadBuffer(count, 0, 8); break; ! // four byte builtins case ENCODING_UCS_4_1234: copyUcs4ReadBuffer(count, 24, 16, 8, 0); *************** loop: *** 5287,5313 **** } readBufferPos = 0; ! // Filter out all carriage returns if we've seen any // (including any saved from a previous read) if (sawCR) { filterCR(count >= 0); sawCR = false; ! // must actively report EOF, lest some CRs get lost. if (readBufferLength == 0 && count >= 0) { readDataChunk(); } } ! if (count > 0) { currentByteCount += count; } } ! /** * Filter carriage returns in the read buffer. * CRLF becomes LF; CR becomes LF. --- 5287,5313 ---- } readBufferPos = 0; ! // Filter out all carriage returns if we've seen any // (including any saved from a previous read) if (sawCR) { filterCR(count >= 0); sawCR = false; ! // must actively report EOF, lest some CRs get lost. if (readBufferLength == 0 && count >= 0) { readDataChunk(); } } ! if (count > 0) { currentByteCount += count; } } ! /** * Filter carriage returns in the read buffer. * CRLF becomes LF; CR becomes LF. *************** loop: *** 5321,5327 **** int i, j; readBufferOverflow = -1; ! loop: for (i = j = readBufferPos; j < readBufferLength; i++, j++) { --- 5321,5327 ---- int i, j; readBufferOverflow = -1; ! loop: for (i = j = readBufferPos; j < readBufferLength; i++, j++) { *************** loop: *** 5359,5366 **** /** * Convert a buffer of UTF-8-encoded bytes into UTF-16 characters. ! *

            When readDataChunk () calls this method, the raw bytes are in ! * rawReadBuffer, and the final characters will appear in * readBuffer. *

            Note that as of Unicode 3.1, good practice became a requirement, * so that each Unicode character has exactly one UTF-8 representation. --- 5359,5366 ---- /** * Convert a buffer of UTF-8-encoded bytes into UTF-16 characters. ! *

            When readDataChunk () calls this method, the raw bytes are in ! * rawReadBuffer, and the final characters will appear in * readBuffer. *

            Note that as of Unicode 3.1, good practice became a requirement, * so that each Unicode character has exactly one UTF-8 representation. *************** loop: *** 5377,5383 **** int j = readBufferPos; int b1; char c = 0; ! /* // check once, so the runtime won't (if it's smart enough) if (count < 0 || count > rawReadBuffer.length) --- 5377,5383 ---- int j = readBufferPos; int b1; char c = 0; ! /* // check once, so the runtime won't (if it's smart enough) if (count < 0 || count > rawReadBuffer.length) *************** loop: *** 5403,5409 **** encodingError("Illegal two byte UTF-8 sequence", c, 0); } ! //Sec 2.11 // [1] the two-character sequence #xD #xA // [2] the two-character sequence #xD #x85 --- 5403,5409 ---- encodingError("Illegal two byte UTF-8 sequence", c, 0); } ! //Sec 2.11 // [1] the two-character sequence #xD #xA // [2] the two-character sequence #xD #x85 *************** loop: *** 5411,5420 **** { continue; } ! // Sec 2.11 // [3] the single character #x85 ! if (c == 0x0085 && xmlVersion == XML_11) { readBuffer[j++] = '\r'; --- 5411,5420 ---- { continue; } ! // Sec 2.11 // [3] the single character #x85 ! if (c == 0x0085 && xmlVersion == XML_11) { readBuffer[j++] = '\r'; *************** loop: *** 5453,5459 **** iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count); iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count); iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count); ! if (iso646 <= 0xffff) { encodingError("Illegal four byte UTF-8 sequence", --- 5453,5459 ---- iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count); iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count); iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count); ! if (iso646 <= 0xffff) { encodingError("Illegal four byte UTF-8 sequence", *************** loop: *** 5497,5503 **** // How many characters have we read? readBufferLength = j; } ! /** * Return the next byte value in a UTF-8 sequence. * If it is not possible to get a byte from the current --- 5497,5503 ---- // How many characters have we read? readBufferLength = j; } ! /** * Return the next byte value in a UTF-8 sequence. * If it is not possible to get a byte from the current *************** loop: *** 5512,5518 **** throws SAXException, IOException { int val; ! // Take a character from the buffer // or from the actual input stream. if (pos < count) --- 5512,5518 ---- throws SAXException, IOException { int val; ! // Take a character from the buffer // or from the actual input stream. if (pos < count) *************** loop: *** 5544,5551 **** * Convert a buffer of US-ASCII or ISO-8859-1-encoded bytes into * UTF-16 characters. * ! *

            When readDataChunk () calls this method, the raw bytes are in ! * rawReadBuffer, and the final characters will appear in * readBuffer. * * @param count The number of bytes to convert. --- 5544,5551 ---- * Convert a buffer of US-ASCII or ISO-8859-1-encoded bytes into * UTF-16 characters. * ! *

            When readDataChunk () calls this method, the raw bytes are in ! * rawReadBuffer, and the final characters will appear in * readBuffer. * * @param count The number of bytes to convert. *************** loop: *** 5583,5590 **** * Convert a buffer of UCS-2-encoded bytes into UTF-16 characters * (as used in Java string manipulation). * ! *

            When readDataChunk () calls this method, the raw bytes are in ! * rawReadBuffer, and the final characters will appear in * readBuffer. * @param count The number of bytes to convert. * @param shift1 The number of bits to shift byte 1. --- 5583,5590 ---- * Convert a buffer of UCS-2-encoded bytes into UTF-16 characters * (as used in Java string manipulation). * ! *

            When readDataChunk () calls this method, the raw bytes are in ! * rawReadBuffer, and the final characters will appear in * readBuffer. * @param count The number of bytes to convert. * @param shift1 The number of bits to shift byte 1. *************** loop: *** 5597,5603 **** throws SAXException { int j = readBufferPos; ! if (count > 0 && (count % 2) != 0) { encodingError("odd number of bytes in UCS-2 encoding", -1, count); --- 5597,5603 ---- throws SAXException { int j = readBufferPos; ! if (count > 0 && (count % 2) != 0) { encodingError("odd number of bytes in UCS-2 encoding", -1, count); *************** loop: *** 5635,5642 **** /** * Convert a buffer of UCS-4-encoded bytes into UTF-16 characters. * ! *

            When readDataChunk () calls this method, the raw bytes are in ! * rawReadBuffer, and the final characters will appear in * readBuffer. *

            Java has Unicode chars, and this routine uses surrogate pairs * for ISO-10646 values between 0x00010000 and 0x000fffff. An --- 5635,5642 ---- /** * Convert a buffer of UCS-4-encoded bytes into UTF-16 characters. * ! *

            When readDataChunk () calls this method, the raw bytes are in ! * rawReadBuffer, and the final characters will appear in * readBuffer. *

            Java has Unicode chars, and this routine uses surrogate pairs * for ISO-10646 values between 0x00010000 and 0x000fffff. An *************** loop: *** 5657,5663 **** throws SAXException { int j = readBufferPos; ! if (count > 0 && (count % 4) != 0) { encodingError("number of bytes in UCS-4 encoding " + --- 5657,5663 ---- throws SAXException { int j = readBufferPos; ! if (count > 0 && (count % 4) != 0) { encodingError("number of bytes in UCS-4 encoding " + *************** loop: *** 5706,5716 **** error(message); } } ! ////////////////////////////////////////////////////////////////////// // Local Variables. ////////////////////////////////////////////////////////////////////// ! /** * Re-initialize the variables for each parse. */ --- 5706,5716 ---- error(message); } } ! ////////////////////////////////////////////////////////////////////// // Local Variables. ////////////////////////////////////////////////////////////////////// ! /** * Re-initialize the variables for each parse. */ *************** loop: *** 5719,5725 **** // First line line = 1; column = 0; ! // Set up the buffers for data and names dataBufferPos = 0; dataBuffer = new char[DATA_BUFFER_INITIAL]; --- 5719,5725 ---- // First line line = 1; column = 0; ! // Set up the buffers for data and names dataBufferPos = 0; dataBuffer = new char[DATA_BUFFER_INITIAL]; *************** loop: *** 5736,5742 **** // element context. currentElement = null; currentElementContent = CONTENT_UNDECLARED; ! // Set up the input variables sourceType = INPUT_NONE; inputStack = new LinkedList(); --- 5736,5742 ---- // element context. currentElement = null; currentElementContent = CONTENT_UNDECLARED; ! // Set up the input variables sourceType = INPUT_NONE; inputStack = new LinkedList(); *************** loop: *** 5752,5762 **** inLiteral = false; expandPE = false; peIsError = false; ! doReport = false; ! inCDATA = false; ! symbolTable = new Object[SYMBOL_TABLE_LENGTH][]; } --- 5752,5762 ---- inLiteral = false; expandPE = false; peIsError = false; ! doReport = false; ! inCDATA = false; ! symbolTable = new Object[SYMBOL_TABLE_LENGTH][]; } *************** loop: *** 5777,5783 **** this.systemId = systemId; this.baseUri = baseUri; } ! } static class EntityInfo --- 5777,5783 ---- this.systemId = systemId; this.baseUri = baseUri; } ! } static class EntityInfo *************** loop: *** 5787,5798 **** ExternalIdentifiers ids; String value; String notationName; ! } static class AttributeDecl { ! String type; String value; int valueType; --- 5787,5798 ---- ExternalIdentifiers ids; String value; String notationName; ! } static class AttributeDecl { ! String type; String value; int valueType; *************** loop: *** 5803,5818 **** static class ElementDecl { ! int contentType; String contentModel; HashMap attributes; ! } ! static class Input { ! int sourceType; URLConnection externalEntity; char[] readBuffer; --- 5803,5818 ---- static class ElementDecl { ! int contentType; String contentModel; HashMap attributes; ! } ! static class Input { ! int sourceType; URLConnection externalEntity; char[] readBuffer; *************** loop: *** 5825,5832 **** int currentByteCount; int column; Reader reader; ! } - - } --- 5825,5831 ---- int currentByteCount; int column; Reader reader; ! } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/aelfred2/XmlReader.java gcc-4.6.0/libjava/classpath/gnu/xml/aelfred2/XmlReader.java *** gcc-4.5.2/libjava/classpath/gnu/xml/aelfred2/XmlReader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/aelfred2/XmlReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XmlReader.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XmlReader.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class XmlReader *** 77,91 **** static class FatalErrorHandler extends DefaultHandler2 { ! public void error(SAXParseException e) throws SAXException { throw e; } ! } ! private SAXDriver aelfred2 = new SAXDriver(); private EventFilter filter = new EventFilter(); private boolean isValidating; --- 77,91 ---- static class FatalErrorHandler extends DefaultHandler2 { ! public void error(SAXParseException e) throws SAXException { throw e; } ! } ! private SAXDriver aelfred2 = new SAXDriver(); private EventFilter filter = new EventFilter(); private boolean isValidating; *************** public final class XmlReader *** 109,115 **** setErrorHandler(new FatalErrorHandler()); } } ! /** * SAX2: Returns the object used to report the logical * content of an XML document. --- 109,115 ---- setErrorHandler(new FatalErrorHandler()); } } ! /** * SAX2: Returns the object used to report the logical * content of an XML document. *************** public final class XmlReader *** 154,160 **** } filter.setDTDHandler(handler); } ! /** * SAX2: Returns the object used when resolving external * entities during parsing (both general and parameter entities). --- 154,160 ---- } filter.setDTDHandler(handler); } ! /** * SAX2: Returns the object used when resolving external * entities during parsing (both general and parameter entities). *************** public final class XmlReader *** 224,230 **** } throw new SAXNotRecognizedException(propertyId); } ! private void forceValidating() throws SAXNotRecognizedException, SAXNotSupportedException { --- 224,230 ---- } throw new SAXNotRecognizedException(propertyId); } ! private void forceValidating() throws SAXNotRecognizedException, SAXNotSupportedException { *************** public final class XmlReader *** 371,374 **** } } - --- 371,373 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/Consumer.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/Consumer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/Consumer.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/Consumer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Consumer.java -- Copyright (C) 2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Consumer.java -- Copyright (C) 2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class Consumer extends DomConsume *** 81,88 **** public Consumer () throws SAXException { ! super (DomDocument.class); ! setHandler (new Backdoor (this)); } /** --- 81,88 ---- public Consumer () throws SAXException { ! super (DomDocument.class); ! setHandler (new Backdoor (this)); } /** *************** public class Consumer extends DomConsume *** 93,100 **** public Consumer (EventConsumer next) throws SAXException { ! super (DomDocument.class, next); ! setHandler (new Backdoor (this)); } /** --- 93,100 ---- public Consumer (EventConsumer next) throws SAXException { ! super (DomDocument.class, next); ! setHandler (new Backdoor (this)); } /** *************** public class Consumer extends DomConsume *** 105,264 **** */ public static class Backdoor extends DomConsumer.Handler { ! /** ! * Constructor. ! * @param consumer must have been initialized to use the ! * {@link DomDocument} class (or a subclass) for ! * constructing DOM trees ! */ ! protected Backdoor (DomConsumer consumer) ! throws SAXException ! { super (consumer); } ! // helper routine ! private DomDoctype getDoctype () ! throws SAXException ! { ! DomDocument doc = (DomDocument) getDocument (); ! DocumentType dt = doc.getDoctype (); ! if (dt == null) ! throw new SAXException ("doctype missing!"); ! return (DomDoctype) dt; ! } ! // SAX2 "lexical" event ! public void startDTD (String name, String publicId, String systemId) ! throws SAXException ! { ! DomDocument doc = (DomDocument) getDocument (); ! super.startDTD (name, publicId, systemId); ! // DOM L2 doctype creation model is bizarre ! DomDoctype dt = new DomDoctype (doc, name, publicId, systemId); ! doc.appendChild (dt); ! } ! // SAX2 "lexical" event ! public void endDTD () ! throws SAXException ! { ! super.endDTD (); ! // DOM L2 has no way to make things readonly ! getDoctype ().makeReadonly (); ! } ! // SAX1 DTD event ! public void notationDecl ( ! String name, ! String publicId, String systemId ! ) throws SAXException ! { ! // DOM L2 can't create/save notation nodes ! getDoctype ().declareNotation (name, publicId, systemId); ! } ! // SAX1 DTD event ! public void unparsedEntityDecl ( ! String name, ! String publicId, String systemId, ! String notationName ! ) throws SAXException ! { ! // DOM L2 can't create/save entity nodes ! getDoctype ().declareEntity (name, publicId, systemId, ! notationName); ! } ! // SAX2 declaration event ! public void internalEntityDecl (String name, String value) ! throws SAXException ! { ! // DOM L2 can't create/save entity nodes ! // NOTE: this doesn't save the value as a child of this ! // node, though it could realistically do so. ! getDoctype ().declareEntity (name, null, null, null); ! } ! // SAX2 declaration event ! public void externalEntityDecl ( ! String name, ! String publicId, ! String systemId ! ) throws SAXException ! { ! // DOM L2 can't create/save entity nodes ! // NOTE: DOM allows for these to have children, if ! // they don't have unbound namespace references. ! getDoctype ().declareEntity (name, publicId, systemId, null); ! } ! // SAX2 element ! public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ! ) throws SAXException ! { ! Node top; ! super.startElement (uri, localName, qName, atts); ! // might there be more work? ! top = getTop (); ! if (!top.hasAttributes () || !(atts instanceof Attributes2)) ! return; ! // remember any attributes that got defaulted ! DomNamedNodeMap map = (DomNamedNodeMap) top.getAttributes (); ! Attributes2 attrs = (Attributes2) atts; ! int length = atts.getLength (); ! //map.compact (); ! for (int i = 0; i < length; i++) { ! if (attrs.isSpecified (i)) ! continue; ! // value was defaulted. ! String temp = attrs.getQName (i); ! DomAttr attr; ! if ("".equals (temp)) ! attr = (DomAttr) map.getNamedItemNS (attrs.getURI (i), ! atts.getLocalName (i)); ! else ! attr = (DomAttr) map.getNamedItem (temp); ! // DOM L2 can't write this flag, only read it ! attr.setSpecified (false); ! } ! } ! public void endElement ( ! String uri, ! String localName, ! String qName ! ) throws SAXException ! { ! DomNode top = (DomNode) getTop (); ! top.compact (); ! super.endElement (uri, localName, qName); ! } ! protected Text createText ( ! boolean isCDATA, ! char buf [], ! int off, ! int len ! ) { ! DomDocument doc = (DomDocument) getDocument (); ! if (isCDATA) ! return doc.createCDATASection (buf, off, len); ! else ! return doc.createTextNode (buf, off, len); ! } public void elementDecl(String name, String model) throws SAXException --- 105,264 ---- */ public static class Backdoor extends DomConsumer.Handler { ! /** ! * Constructor. ! * @param consumer must have been initialized to use the ! * {@link DomDocument} class (or a subclass) for ! * constructing DOM trees ! */ ! protected Backdoor (DomConsumer consumer) ! throws SAXException ! { super (consumer); } ! // helper routine ! private DomDoctype getDoctype () ! throws SAXException ! { ! DomDocument doc = (DomDocument) getDocument (); ! DocumentType dt = doc.getDoctype (); ! if (dt == null) ! throw new SAXException ("doctype missing!"); ! return (DomDoctype) dt; ! } ! // SAX2 "lexical" event ! public void startDTD (String name, String publicId, String systemId) ! throws SAXException ! { ! DomDocument doc = (DomDocument) getDocument (); ! super.startDTD (name, publicId, systemId); ! // DOM L2 doctype creation model is bizarre ! DomDoctype dt = new DomDoctype (doc, name, publicId, systemId); ! doc.appendChild (dt); ! } ! // SAX2 "lexical" event ! public void endDTD () ! throws SAXException ! { ! super.endDTD (); ! // DOM L2 has no way to make things readonly ! getDoctype ().makeReadonly (); ! } ! // SAX1 DTD event ! public void notationDecl ( ! String name, ! String publicId, String systemId ! ) throws SAXException ! { ! // DOM L2 can't create/save notation nodes ! getDoctype ().declareNotation (name, publicId, systemId); ! } ! // SAX1 DTD event ! public void unparsedEntityDecl ( ! String name, ! String publicId, String systemId, ! String notationName ! ) throws SAXException ! { ! // DOM L2 can't create/save entity nodes ! getDoctype ().declareEntity (name, publicId, systemId, ! notationName); ! } ! // SAX2 declaration event ! public void internalEntityDecl (String name, String value) ! throws SAXException ! { ! // DOM L2 can't create/save entity nodes ! // NOTE: this doesn't save the value as a child of this ! // node, though it could realistically do so. ! getDoctype ().declareEntity (name, null, null, null); ! } ! // SAX2 declaration event ! public void externalEntityDecl ( ! String name, ! String publicId, ! String systemId ! ) throws SAXException ! { ! // DOM L2 can't create/save entity nodes ! // NOTE: DOM allows for these to have children, if ! // they don't have unbound namespace references. ! getDoctype ().declareEntity (name, publicId, systemId, null); ! } ! // SAX2 element ! public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ! ) throws SAXException ! { ! Node top; ! super.startElement (uri, localName, qName, atts); ! // might there be more work? ! top = getTop (); ! if (!top.hasAttributes () || !(atts instanceof Attributes2)) ! return; ! // remember any attributes that got defaulted ! DomNamedNodeMap map = (DomNamedNodeMap) top.getAttributes (); ! Attributes2 attrs = (Attributes2) atts; ! int length = atts.getLength (); ! //map.compact (); ! for (int i = 0; i < length; i++) { ! if (attrs.isSpecified (i)) ! continue; ! // value was defaulted. ! String temp = attrs.getQName (i); ! DomAttr attr; ! if ("".equals (temp)) ! attr = (DomAttr) map.getNamedItemNS (attrs.getURI (i), ! atts.getLocalName (i)); ! else ! attr = (DomAttr) map.getNamedItem (temp); ! // DOM L2 can't write this flag, only read it ! attr.setSpecified (false); ! } ! } ! public void endElement ( ! String uri, ! String localName, ! String qName ! ) throws SAXException ! { ! DomNode top = (DomNode) getTop (); ! top.compact (); ! super.endElement (uri, localName, qName); ! } ! protected Text createText ( ! boolean isCDATA, ! char buf [], ! int off, ! int len ! ) { ! DomDocument doc = (DomDocument) getDocument (); ! if (isCDATA) ! return doc.createCDATASection (buf, off, len); ! else ! return doc.createTextNode (buf, off, len); ! } public void elementDecl(String name, String model) throws SAXException *************** public class Consumer extends DomConsume *** 266,352 **** getDoctype().elementDecl(name, model); } ! public void attributeDecl ( ! String ename, ! String aname, ! String type, ! String mode, ! String value ! ) throws SAXException ! { getDoctype().attributeDecl(ename, aname, type, mode, value); /* ! if (value == null && !"ID".equals (type)) ! return; ! ! DomDoctype.ElementInfo info; ! info = getDoctype ().getElementInfo (ename); ! if (value != null) ! info.setAttrDefault (aname, value); ! if ("ID".equals (type)) ! info.setIdAttr (aname); */ - - } ! // force duplicate name checking off while we're ! // using parser output (don't duplicate the work) ! public void startDocument () throws SAXException ! { ! super.startDocument (); ! DomDocument doc = (DomDocument) getDocument (); doc.setStrictErrorChecking(false); doc.setBuilding(true); ! } ! public void endDocument () ! throws SAXException ! { ! DomDocument doc = (DomDocument) getDocument (); ! doc.setStrictErrorChecking(true); doc.setBuilding(false); ! doc.compact (); DomDoctype doctype = (DomDoctype) doc.getDoctype(); if (doctype != null) { doctype.makeReadonly(); } ! super.endDocument (); ! } ! // these three methods collaborate to populate entity ! // refs, marking contents readonly on end-of-entity ! public boolean canPopulateEntityRefs () ! { return true; } ! public void startEntity (String name) ! throws SAXException ! { ! if (name.charAt (0) == '%' || "[dtd]".equals (name)) ! return; ! super.startEntity (name); ! DomNode top = (DomNode) getTop (); ! if (top.getNodeType () == Node.ENTITY_REFERENCE_NODE) ! top.readonly = false; ! } ! public void endEntity (String name) ! throws SAXException ! { ! if (name.charAt (0) == '%' || "[dtd]".equals (name)) ! return; ! DomNode top = (DomNode) getTop (); ! if (top.getNodeType () == Node.ENTITY_REFERENCE_NODE) { ! top.compact (); ! top.makeReadonly (); ! } ! super.endEntity (name); ! } } } --- 266,352 ---- getDoctype().elementDecl(name, model); } ! public void attributeDecl ( ! String ename, ! String aname, ! String type, ! String mode, ! String value ! ) throws SAXException ! { getDoctype().attributeDecl(ename, aname, type, mode, value); /* ! if (value == null && !"ID".equals (type)) ! return; ! DomDoctype.ElementInfo info; ! ! info = getDoctype ().getElementInfo (ename); ! if (value != null) ! info.setAttrDefault (aname, value); ! if ("ID".equals (type)) ! info.setIdAttr (aname); */ ! } ! ! // force duplicate name checking off while we're ! // using parser output (don't duplicate the work) ! public void startDocument () throws SAXException ! { ! super.startDocument (); ! DomDocument doc = (DomDocument) getDocument (); doc.setStrictErrorChecking(false); doc.setBuilding(true); ! } ! public void endDocument () ! throws SAXException ! { ! DomDocument doc = (DomDocument) getDocument (); ! doc.setStrictErrorChecking(true); doc.setBuilding(false); ! doc.compact (); DomDoctype doctype = (DomDoctype) doc.getDoctype(); if (doctype != null) { doctype.makeReadonly(); } ! super.endDocument (); ! } ! // these three methods collaborate to populate entity ! // refs, marking contents readonly on end-of-entity ! public boolean canPopulateEntityRefs () ! { return true; } ! public void startEntity (String name) ! throws SAXException ! { ! if (name.charAt (0) == '%' || "[dtd]".equals (name)) ! return; ! super.startEntity (name); ! DomNode top = (DomNode) getTop (); ! if (top.getNodeType () == Node.ENTITY_REFERENCE_NODE) ! top.readonly = false; ! } ! public void endEntity (String name) ! throws SAXException ! { ! if (name.charAt (0) == '%' || "[dtd]".equals (name)) ! return; ! DomNode top = (DomNode) getTop (); ! if (top.getNodeType () == Node.ENTITY_REFERENCE_NODE) { ! top.compact (); ! top.makeReadonly (); ! } ! super.endEntity (name); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DTDAttributeTypeInfo.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DTDAttributeTypeInfo.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DTDAttributeTypeInfo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DTDAttributeTypeInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DTDAttributeTypeInfo.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DTDAttributeTypeInfo.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class DTDAttributeTypeInfo *** 81,84 **** } } - --- 81,83 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DTDElementTypeInfo.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DTDElementTypeInfo.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DTDElementTypeInfo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DTDElementTypeInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DTDElementTypeInfo.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DTDElementTypeInfo.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class DTDElementTypeInfo *** 107,112 **** } return attributes.values().iterator(); } - - } --- 107,111 ---- } return attributes.values().iterator(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomAttr.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomAttr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomAttr.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomAttr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomAttr.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomAttr.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.events.MutationEvent; *** 65,71 **** * methods (setNodeValue, setValue, and Element.setAttribute) to modify * those values. That is, if you manipulate those children directly, * elements won't get notified that attribute values have changed. ! * The natural fix for that will report other modifications, but won't * be able to expose "previous" attribute value; it'll need to be cached * or something (at which point why bother using child nodes).

            * --- 65,71 ---- * methods (setNodeValue, setValue, and Element.setAttribute) to modify * those values. That is, if you manipulate those children directly, * elements won't get notified that attribute values have changed. ! * The natural fix for that will report other modifications, but won't * be able to expose "previous" attribute value; it'll need to be cached * or something (at which point why bother using child nodes).

            * *************** public class DomAttr *** 79,88 **** extends DomNsNode implements Attr { ! private boolean specified; private String value; // string value cache ! /** * Constructs an Attr node associated with the specified document. * The "specified" flag is initialized to true, since this DOM has --- 79,88 ---- extends DomNsNode implements Attr { ! private boolean specified; private String value; // string value cache ! /** * Constructs an Attr node associated with the specified document. * The "specified" flag is initialized to true, since this DOM has *************** public class DomAttr *** 95,101 **** * * @param owner The document with which this node is associated * @param namespaceURI Combined with the local part of the name, ! * this is used to uniquely identify a type of attribute * @param name Name of this attribute, which may include a prefix */ protected DomAttr(DomDocument owner, String namespaceURI, String name) --- 95,101 ---- * * @param owner The document with which this node is associated * @param namespaceURI Combined with the local part of the name, ! * this is used to uniquely identify a type of attribute * @param name Name of this attribute, which may include a prefix */ protected DomAttr(DomDocument owner, String namespaceURI, String name) *************** public class DomAttr *** 103,109 **** super(ATTRIBUTE_NODE, owner, namespaceURI, name); specified = true; length = 1; ! // XXX register self to get insertion/removal events // and character data change events and when they happen, // report self-mutation --- 103,109 ---- super(ATTRIBUTE_NODE, owner, namespaceURI, name); specified = true; length = 1; ! // XXX register self to get insertion/removal events // and character data change events and when they happen, // report self-mutation *************** public class DomAttr *** 121,138 **** *

            * With this constructor, the prefix and local part are given explicitly * rather than being computed. This allows them to be explicitly set to ! * {@code null} as required by {@link Document#createAttribute(String)}. *

            * * @param owner The document with which this node is associated * @param namespaceURI Combined with the local part of the name, ! * this is used to uniquely identify a type of attribute * @param name Name of this attribute, which may include a prefix * @param prefix the namespace prefix of the name. May be {@code null}. * @param localName the local part of the name. May be {@code null}. */ protected DomAttr(DomDocument owner, String namespaceURI, String name, ! String prefix, String localName) { super(ATTRIBUTE_NODE, owner, namespaceURI, name, prefix, localName); specified = true; --- 121,138 ---- *

            * With this constructor, the prefix and local part are given explicitly * rather than being computed. This allows them to be explicitly set to ! * {@code null} as required by {@link Document#createAttribute(String)}. *

            * * @param owner The document with which this node is associated * @param namespaceURI Combined with the local part of the name, ! * this is used to uniquely identify a type of attribute * @param name Name of this attribute, which may include a prefix * @param prefix the namespace prefix of the name. May be {@code null}. * @param localName the local part of the name. May be {@code null}. */ protected DomAttr(DomDocument owner, String namespaceURI, String name, ! String prefix, String localName) { super(ATTRIBUTE_NODE, owner, namespaceURI, name, prefix, localName); specified = true; *************** public class DomAttr *** 147,153 **** { return getNodeName(); } ! /** * DOM L1 * Returns true if a parser reported this was in the source text. --- 147,153 ---- { return getNodeName(); } ! /** * DOM L1 * Returns true if a parser reported this was in the source text. *************** public class DomAttr *** 156,162 **** { return specified; } ! /** * Records whether this attribute was in the source text. */ --- 156,162 ---- { return specified; } ! /** * Records whether this attribute was in the source text. */ *************** public class DomAttr *** 194,200 **** } return buf.toString(); } ! /** * DOM L1 * Assigns the value of the attribute; it will have one child, --- 194,200 ---- } return buf.toString(); } ! /** * DOM L1 * Assigns the value of the attribute; it will have one child, *************** public class DomAttr *** 205,211 **** { setNodeValue(value); } ! /** * DOM L1 * Returns the value of the attribute as a non-null string; same --- 205,211 ---- { setNodeValue(value); } ! /** * DOM L1 * Returns the value of the attribute as a non-null string; same *************** public class DomAttr *** 216,222 **** { return getNodeValue(); } ! /** * DOM L1 * Assigns the attribute value; using this API, no entity or --- 216,222 ---- { return getNodeValue(); } ! /** * DOM L1 * Assigns the attribute value; using this API, no entity or *************** public class DomAttr *** 246,252 **** this.value = value; length = 1; specified = true; ! mutating(oldValue, value, MutationEvent.MODIFICATION); } --- 246,252 ---- this.value = value; length = 1; specified = true; ! mutating(oldValue, value, MutationEvent.MODIFICATION); } *************** public class DomAttr *** 334,340 **** { return null; } ! /** * Shallow clone of the attribute, breaking all ties with any * elements. --- 334,340 ---- { return null; } ! /** * Shallow clone of the attribute, breaking all ties with any * elements. *************** public class DomAttr *** 345,362 **** retval.specified = true; return retval; } ! private void mutating(String oldValue, String newValue, short why) { if (!reportMutations || parent == null || equal(newValue, oldValue)) { return; } ! // EVENT: DOMAttrModified, target = parent, ! // prev/new values provided, also attr name ! MutationEvent event; ! event = (MutationEvent) createEvent ("MutationEvents"); event.initMutationEvent ("DOMAttrModified", true /* bubbles */, false /* nocancel */, --- 345,362 ---- retval.specified = true; return retval; } ! private void mutating(String oldValue, String newValue, short why) { if (!reportMutations || parent == null || equal(newValue, oldValue)) { return; } ! // EVENT: DOMAttrModified, target = parent, ! // prev/new values provided, also attr name ! MutationEvent event; ! event = (MutationEvent) createEvent ("MutationEvents"); event.initMutationEvent ("DOMAttrModified", true /* bubbles */, false /* nocancel */, *************** public class DomAttr *** 365,371 **** } // DOM Level 3 methods ! public TypeInfo getSchemaTypeInfo() { if (parent != null) --- 365,371 ---- } // DOM Level 3 methods ! public TypeInfo getSchemaTypeInfo() { if (parent != null) *************** public class DomAttr *** 409,412 **** } } - --- 409,411 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomCDATASection.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomCDATASection.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomCDATASection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomCDATASection.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomCDATASection.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomCDATASection.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomCDATASection *** 58,64 **** extends DomText implements CDATASection { ! /** * Constructs a CDATA section node associated with the specified * document and holding the specified data. --- 58,64 ---- extends DomText implements CDATASection { ! /** * Constructs a CDATA section node associated with the specified * document and holding the specified data. *************** public class DomCDATASection *** 86,91 **** { return "#cdata-section"; } - - } --- 86,90 ---- { return "#cdata-section"; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomCharacterData.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomCharacterData.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomCharacterData.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomCharacterData.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomCharacterData.java -- Copyright (C) 1999,2000,2001,2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomCharacterData.java -- Copyright (C) 1999,2000,2001,2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class DomCharacterData *** 73,79 **** { return null; } ! } /** --- 73,79 ---- { return null; } ! } /** *************** public abstract class DomCharacterData *** 82,88 **** static final NodeList CHILD_NODES = new EmptyNodeList(); private String text; ! // package private DomCharacterData(short nodeType, DomDocument doc, String value) { --- 82,88 ---- static final NodeList CHILD_NODES = new EmptyNodeList(); private String text; ! // package private DomCharacterData(short nodeType, DomDocument doc, String value) { *************** public abstract class DomCharacterData *** 113,119 **** mutating(value); text = value; } ! /** * DOM L1 * Modifies the value of this node. --- 113,119 ---- mutating(value); text = value; } ! /** * DOM L1 * Modifies the value of this node. *************** public abstract class DomCharacterData *** 153,159 **** throw new DomDOMException(DOMException.INDEX_SIZE_ERR); } } ! /** * DOM L1 * Returns the value of this node. --- 153,159 ---- throw new DomDOMException(DOMException.INDEX_SIZE_ERR); } } ! /** * DOM L1 * Returns the value of this node. *************** public abstract class DomCharacterData *** 162,168 **** { return text; } ! /** * DOM L1 * Returns the value of this node; same as getNodeValue. --- 162,168 ---- { return text; } ! /** * DOM L1 * Returns the value of this node; same as getNodeValue. *************** public abstract class DomCharacterData *** 180,186 **** { return text.length(); } ! /** * DOM L1 * Modifies the value of this node. --- 180,186 ---- { return text.length(); } ! /** * DOM L1 * Modifies the value of this node. *************** public abstract class DomCharacterData *** 194,200 **** char[] raw = text.toCharArray(); char[] tmp = arg.toCharArray (); char[] buf = new char[raw.length + tmp.length]; ! try { System.arraycopy(raw, 0, buf, 0, offset); --- 194,200 ---- char[] raw = text.toCharArray(); char[] tmp = arg.toCharArray (); char[] buf = new char[raw.length + tmp.length]; ! try { System.arraycopy(raw, 0, buf, 0, offset); *************** public abstract class DomCharacterData *** 210,216 **** throw new DomDOMException(DOMException.INDEX_SIZE_ERR); } } ! /** * DOM L1 * Modifies the value of this node. Causes DOMCharacterDataModified --- 210,216 ---- throw new DomDOMException(DOMException.INDEX_SIZE_ERR); } } ! /** * DOM L1 * Modifies the value of this node. Causes DOMCharacterDataModified *************** public abstract class DomCharacterData *** 223,229 **** throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); } char[] raw = text.toCharArray(); ! // deleteData if (offset < 0 || count < 0 || offset > raw.length) { --- 223,229 ---- throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); } char[] raw = text.toCharArray(); ! // deleteData if (offset < 0 || count < 0 || offset > raw.length) { *************** public abstract class DomCharacterData *** 239,245 **** System.arraycopy(raw, 0, buf, 0, offset); System.arraycopy(raw, offset + count, buf, offset, raw.length - (offset + count)); ! // insertData char[] tmp = arg.toCharArray (); char[] buf2 = new char[buf.length + tmp.length]; --- 239,245 ---- System.arraycopy(raw, 0, buf, 0, offset); System.arraycopy(raw, offset + count, buf, offset, raw.length - (offset + count)); ! // insertData char[] tmp = arg.toCharArray (); char[] buf2 = new char[buf.length + tmp.length]; *************** public abstract class DomCharacterData *** 256,262 **** throw new DomDOMException(DOMException.INDEX_SIZE_ERR); } } ! /** * DOM L1 * Assigns the value of this node. --- 256,262 ---- throw new DomDOMException(DOMException.INDEX_SIZE_ERR); } } ! /** * DOM L1 * Assigns the value of this node. *************** public abstract class DomCharacterData *** 275,281 **** mutating(value); text = value; } ! /** * DOM L1 * Assigns the value of this node; same as setNodeValue. --- 275,281 ---- mutating(value); text = value; } ! /** * DOM L1 * Assigns the value of this node; same as setNodeValue. *************** public abstract class DomCharacterData *** 329,345 **** { return; } ! // EVENT: DOMCharacterDataModified, target = this, // prev/new values provided MutationEvent event; ! event = (MutationEvent) createEvent("MutationEvents"); event.initMutationEvent("DOMCharacterDataModified", true /* bubbles */, false /* nocancel */, null, text, newValue, null, (short) 0); dispatchEvent(event); } - - } --- 329,344 ---- { return; } ! // EVENT: DOMCharacterDataModified, target = this, // prev/new values provided MutationEvent event; ! event = (MutationEvent) createEvent("MutationEvents"); event.initMutationEvent("DOMCharacterDataModified", true /* bubbles */, false /* nocancel */, null, text, newValue, null, (short) 0); dispatchEvent(event); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomComment.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomComment.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomComment.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomComment.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomComment.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomComment.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomComment *** 54,60 **** extends DomCharacterData implements Comment { ! /** * Constructs a comment node associated with the specified * document and holding the specified data. --- 54,60 ---- extends DomCharacterData implements Comment { ! /** * Constructs a comment node associated with the specified * document and holding the specified data. *************** public class DomComment *** 67,73 **** { super(COMMENT_NODE, owner, value); } ! /** * DOM L1 * Returns the string "#comment". --- 67,73 ---- { super(COMMENT_NODE, owner, value); } ! /** * DOM L1 * Returns the string "#comment". *************** public class DomComment *** 78,81 **** } } - --- 78,80 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDOMException.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDOMException.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDOMException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDOMException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomDOMException.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomDOMException.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Node; *** 48,54 **** * that is being reported, in terms of the relevant DOM structures * and data. * ! * @author David Brownell */ public class DomDOMException extends DOMException --- 48,54 ---- * that is being reported, in terms of the relevant DOM structures * and data. * ! * @author David Brownell */ public class DomDOMException extends DOMException *************** public class DomDOMException *** 56,68 **** /** @serial Data that caused an error to be reported */ private String data; ! /** @serial Node associated with the error. */ private Node node; ! /** @serial Data associated with the error. */ private int value; ! /** * Constructs an exception, with the diagnostic message * corresponding to the specified code. --- 56,68 ---- /** @serial Data that caused an error to be reported */ private String data; ! /** @serial Node associated with the error. */ private Node node; ! /** @serial Data associated with the error. */ private int value; ! /** * Constructs an exception, with the diagnostic message * corresponding to the specified code. *************** public class DomDOMException *** 71,77 **** { super(code, diagnostic(code)); } ! /** * Constructs an exception, with the diagnostic message * corresponding to the specified code and additional --- 71,77 ---- { super(code, diagnostic(code)); } ! /** * Constructs an exception, with the diagnostic message * corresponding to the specified code and additional *************** public class DomDOMException *** 110,116 **** public String getMessage() { String retval = super.getMessage(); ! if (data != null) { retval += "\nMore Information: " + data; --- 110,116 ---- public String getMessage() { String retval = super.getMessage(); ! if (data != null) { retval += "\nMore Information: " + data; *************** public class DomDOMException *** 127,137 **** } // these strings should be localizable. ! private static String diagnostic(short code) { switch (code) ! { // DOM L1: case INDEX_SIZE_ERR: return "An index or size is out of range."; --- 127,137 ---- } // these strings should be localizable. ! private static String diagnostic(short code) { switch (code) ! { // DOM L1: case INDEX_SIZE_ERR: return "An index or size is out of range."; *************** public class DomDOMException *** 153,159 **** return "That object is not supported."; case INUSE_ATTRIBUTE_ERR: return "The attribute belongs to a different element."; ! // DOM L2: case INVALID_STATE_ERR: return "The object is not usable."; --- 153,159 ---- return "That object is not supported."; case INUSE_ATTRIBUTE_ERR: return "The attribute belongs to a different element."; ! // DOM L2: case INVALID_STATE_ERR: return "The object is not usable."; *************** public class DomDOMException *** 172,175 **** } } - --- 172,174 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDoctype.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDoctype.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDoctype.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDoctype.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomDoctype.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomDoctype.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Notation; *** 72,93 **** * @see DomEntityReference * @see DomNotation * ! * @author David Brownell * @author Chris Burdess */ public class DomDoctype extends DomExtern implements DocumentType { ! private DomNamedNodeMap notations; private DomNamedNodeMap entities; private final DOMImplementation implementation; private String subset; ! private HashMap elements = new HashMap(); private boolean ids; ! /** * Constructs a DocumentType node associated with the specified * implementation, with the specified name. --- 72,93 ---- * @see DomEntityReference * @see DomNotation * ! * @author David Brownell * @author Chris Burdess */ public class DomDoctype extends DomExtern implements DocumentType { ! private DomNamedNodeMap notations; private DomNamedNodeMap entities; private final DOMImplementation implementation; private String subset; ! private HashMap elements = new HashMap(); private boolean ids; ! /** * Constructs a DocumentType node associated with the specified * implementation, with the specified name. *************** public class DomDoctype *** 103,113 **** * @param impl The implementation with which this object is associated * @param name Name of this root element * @param publicId If non-null, provides the external subset's ! * PUBLIC identifier * @param systemId If non-null, provides the external subset's ! * SYSTEM identifier * @param internalSubset Provides the literal value (unparsed, no ! * entities expanded) of the DTD's internal subset. */ protected DomDoctype(DOMImplementation impl, String name, --- 103,113 ---- * @param impl The implementation with which this object is associated * @param name Name of this root element * @param publicId If non-null, provides the external subset's ! * PUBLIC identifier * @param systemId If non-null, provides the external subset's ! * SYSTEM identifier * @param internalSubset Provides the literal value (unparsed, no ! * entities expanded) of the DTD's internal subset. */ protected DomDoctype(DOMImplementation impl, String name, *************** public class DomDoctype *** 154,160 **** * then it doesn't have the strange construction rules of L2. * * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType ! * is not associated with a document. */ public NamedNodeMap getEntities() { --- 154,160 ---- * then it doesn't have the strange construction rules of L2. * * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType ! * is not associated with a document. */ public NamedNodeMap getEntities() { *************** public class DomDoctype *** 172,186 **** * @param publicId If non-null, provides the entity's PUBLIC identifier * @param systemId Provides the entity's SYSTEM identifier * @param notation If non-null, provides the entity's notation ! * (indicating an unparsed entity) * @return The Entity that was declared, or null if the entity wasn't ! * recorded (because it's a parameter entity or because an entity with ! * this name was already declared). * * @exception DOMException NO_MODIFICATION_ALLOWED_ERR if the ! * DocumentType is no longer writable. * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType ! * is not associated with a document. */ public Entity declareEntity(String name, String publicId, --- 172,186 ---- * @param publicId If non-null, provides the entity's PUBLIC identifier * @param systemId Provides the entity's SYSTEM identifier * @param notation If non-null, provides the entity's notation ! * (indicating an unparsed entity) * @return The Entity that was declared, or null if the entity wasn't ! * recorded (because it's a parameter entity or because an entity with ! * this name was already declared). * * @exception DOMException NO_MODIFICATION_ALLOWED_ERR if the ! * DocumentType is no longer writable. * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType ! * is not associated with a document. */ public Entity declareEntity(String name, String publicId, *************** public class DomDoctype *** 188,194 **** String notation) { DomEntity entity; ! if (name.charAt(0) == '%' || "[dtd]".equals(name)) { return null; --- 188,194 ---- String notation) { DomEntity entity; ! if (name.charAt(0) == '%' || "[dtd]".equals(name)) { return null; *************** public class DomDoctype *** 198,216 **** throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); } getEntities(); ! DomDocument.checkName(name, (owner != null) ? "1.1".equals(owner.getXmlVersion()) : false); if (entities.getNamedItem(name) != null) { return null; } ! entity = new DomEntity(owner, name, publicId, systemId, notation); entities.setNamedItem(entity); return entity; } ! /** * DOM L1 * Returns information about any notations declared in the DTD. --- 198,216 ---- throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); } getEntities(); ! DomDocument.checkName(name, (owner != null) ? "1.1".equals(owner.getXmlVersion()) : false); if (entities.getNamedItem(name) != null) { return null; } ! entity = new DomEntity(owner, name, publicId, systemId, notation); entities.setNamedItem(entity); return entity; } ! /** * DOM L1 * Returns information about any notations declared in the DTD. *************** public class DomDoctype *** 219,225 **** * then it doesn't have the strange construction rules of L2. * * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType ! * is not associated with a document. */ public NamedNodeMap getNotations() { --- 219,225 ---- * then it doesn't have the strange construction rules of L2. * * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType ! * is not associated with a document. */ public NamedNodeMap getNotations() { *************** public class DomDoctype *** 239,263 **** * @return The notation that was declared. * * @exception DOMException NO_MODIFICATION_ALLOWED_ERR if the ! * DocumentType is no longer writable. * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType ! * is not associated with a document. */ public Notation declareNotation(String name, String publicId, String systemId) { DomNotation notation; ! if (isReadonly()) { throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); } getNotations(); ! DomDocument.checkName(name, (owner != null) ? "1.1".equals(owner.getXmlVersion()) : false); ! notation = new DomNotation(owner, name, publicId, systemId); notations.setNamedItem(notation); return notation; --- 239,263 ---- * @return The notation that was declared. * * @exception DOMException NO_MODIFICATION_ALLOWED_ERR if the ! * DocumentType is no longer writable. * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType ! * is not associated with a document. */ public Notation declareNotation(String name, String publicId, String systemId) { DomNotation notation; ! if (isReadonly()) { throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); } getNotations(); ! DomDocument.checkName(name, (owner != null) ? "1.1".equals(owner.getXmlVersion()) : false); ! notation = new DomNotation(owner, name, publicId, systemId); notations.setNamedItem(notation); return notation; *************** public class DomDoctype *** 290,296 **** { return null; } ! /** * Sets the internal "readonly" flag so the node and its associated * data (only lists of entities and notations, no type information --- 290,296 ---- { return null; } ! /** * Sets the internal "readonly" flag so the node and its associated * data (only lists of entities and notations, no type information *************** public class DomDoctype *** 337,343 **** { return implementation.hasFeature(feature, version); } ! /** * Returns the implementation associated with this document type. */ --- 337,343 ---- { return implementation.hasFeature(feature, version); } ! /** * Returns the implementation associated with this document type. */ *************** public class DomDoctype *** 395,401 **** { return ids; } ! public boolean isSameNode(Node arg) { if (equals(arg)) --- 395,401 ---- { return ids; } ! public boolean isSameNode(Node arg) { if (equals(arg)) *************** public class DomDoctype *** 423,429 **** // TODO notations return true; } ! /** * Shallow clone of the doctype, except that associated * entities and notations are (deep) cloned. --- 423,429 ---- // TODO notations return true; } ! /** * Shallow clone of the doctype, except that associated * entities and notations are (deep) cloned. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocument.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocument.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocument.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocument.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomDocument.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomDocument.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.xpath.XPathNSResolver *** 76,82 **** * of basic XML conformance tests. (The huge XML character tables are * hairy to implement.) * ! * @author David Brownell * @author Chris Burdess */ public class DomDocument --- 76,82 ---- * of basic XML conformance tests. (The huge XML character tables are * hairy to implement.) * ! * @author David Brownell * @author Chris Burdess */ public class DomDocument *************** public class DomDocument *** 90,96 **** private boolean defaultAttributes = true; boolean building; // if true, skip mutation events in the tree ! DomDocumentConfiguration config; String inputEncoding; --- 90,96 ---- private boolean defaultAttributes = true; boolean building; // if true, skip mutation events in the tree ! DomDocumentConfiguration config; String inputEncoding; *************** public class DomDocument *** 98,104 **** String version = "1.0"; boolean standalone; String systemId; ! /** * Constructs a Document node, associating it with an instance * of the DomImpl class. --- 98,104 ---- String version = "1.0"; boolean standalone; String systemId; ! /** * Constructs a Document node, associating it with an instance * of the DomImpl class. *************** public class DomDocument *** 115,121 **** { this(new DomImpl()); } ! /** * Constructs a Document node, associating it with the specified * implementation. This should only be used in conjunction with --- 115,121 ---- { this(new DomImpl()); } ! /** * Constructs a Document node, associating it with the specified * implementation. This should only be used in conjunction with *************** public class DomDocument *** 165,171 **** { defaultAttributes = flag; } ! /** * DOM L1 * Returns the constant "#document". --- 165,171 ---- { defaultAttributes = flag; } ! /** * DOM L1 * Returns the constant "#document". *************** public class DomDocument *** 236,247 **** { doctype = null; } ! // yes, this is linear in size of document. // it'd be easy enough to maintain a hashtable. Node current = getDocumentElement(); Node temp; ! if (current == null) { return null; --- 236,247 ---- { doctype = null; } ! // yes, this is linear in size of document. // it'd be easy enough to maintain a hashtable. Node current = getDocumentElement(); Node temp; ! if (current == null) { return null; *************** public class DomDocument *** 286,299 **** return element; } } ! // descend? if (current.hasChildNodes()) { current = current.getFirstChild(); continue; } ! // lateral? temp = current.getNextSibling(); if (temp != null) --- 286,299 ---- return element; } } ! // descend? if (current.hasChildNodes()) { current = current.getFirstChild(); continue; } ! // lateral? temp = current.getNextSibling(); if (temp != null) *************** public class DomDocument *** 301,308 **** current = temp; continue; } ! ! // back up ... do { temp = current.getParentNode(); --- 301,308 ---- current = temp; continue; } ! ! // back up ... do { temp = current.getParentNode(); *************** public class DomDocument *** 385,397 **** } return super.replaceChild(newChild, refChild); } ! // NOTE: DOM can't really tell when the name of an entity, // notation, or PI must follow the namespace rules (excluding // colons) instead of the XML rules (which allow them without // much restriction). That's an API issue. verifyXmlName // aims to enforce the XML rules, not the namespace rules. ! /** * Throws a DOM exception if the specified name is not a legal XML 1.0 * Name. --- 385,397 ---- } return super.replaceChild(newChild, refChild); } ! // NOTE: DOM can't really tell when the name of an entity, // notation, or PI must follow the namespace rules (excluding // colons) instead of the XML rules (which allow them without // much restriction). That's an API issue. verifyXmlName // aims to enforce the XML rules, not the namespace rules. ! /** * Throws a DOM exception if the specified name is not a legal XML 1.0 * Name. *************** public class DomDocument *** 417,423 **** } // dog: rewritten to use the rules for XML 1.0 and 1.1 ! // Name start character char c = name.charAt(0); if (xml11) --- 417,423 ---- } // dog: rewritten to use the rules for XML 1.0 and 1.1 ! // Name start character char c = name.charAt(0); if (xml11) *************** public class DomDocument *** 565,577 **** char[] chars = value.toCharArray(); checkChar(chars, 0, chars.length, xml11); } ! static void checkChar(char[] buf, int off, int len, boolean xml11) { for (int i = 0; i < len; i++) { char c = buf[i]; ! // assume surrogate pairing checks out OK, for simplicity if ((c >= 0x0020 && c <= 0xd7ff) || (c == 0x000a || c == 0x000d || c == 0x0009) || --- 565,577 ---- char[] chars = value.toCharArray(); checkChar(chars, 0, chars.length, xml11); } ! static void checkChar(char[] buf, int off, int len, boolean xml11) { for (int i = 0; i < len; i++) { char c = buf[i]; ! // assume surrogate pairing checks out OK, for simplicity if ((c >= 0x0020 && c <= 0xd7ff) || (c == 0x000a || c == 0x000d || c == 0x0009) || *************** public class DomDocument *** 603,609 **** public Element createElement(String name) { Element element; ! if (checkingCharacters) { checkName(name, "1.1".equals(version)); --- 603,609 ---- public Element createElement(String name) { Element element; ! if (checkingCharacters) { checkName(name, "1.1".equals(version)); *************** public class DomDocument *** 633,639 **** { checkNCName(name, "1.1".equals(version)); } ! if ("".equals(namespaceURI)) { namespaceURI = null; --- 633,639 ---- { checkNCName(name, "1.1".equals(version)); } ! if ("".equals(namespaceURI)) { namespaceURI = null; *************** public class DomDocument *** 661,673 **** "prefixed name '" + name + "' needs a URI", this, 0); } ! Element element = new DomElement(this, namespaceURI, name); if (defaultAttributes) setDefaultAttributes(element, name); return element; } ! private void setDefaultAttributes(Element element, String name) { DomDoctype doctype = (DomDoctype) getDoctype(); --- 661,673 ---- "prefixed name '" + name + "' needs a URI", this, 0); } ! Element element = new DomElement(this, namespaceURI, name); if (defaultAttributes) setDefaultAttributes(element, name); return element; } ! private void setDefaultAttributes(Element element, String name) { DomDoctype doctype = (DomDoctype) getDoctype(); *************** public class DomDocument *** 687,693 **** if ("#IMPLIED".equals(attr.mode) && value == null) continue; DomAttr node = (DomAttr) createAttribute(attr.name); ! if (value == null) { value = ""; --- 687,693 ---- if ("#IMPLIED".equals(attr.mode) && value == null) continue; DomAttr node = (DomAttr) createAttribute(attr.name); ! if (value == null) { value = ""; *************** public class DomDocument *** 830,836 **** { checkNCName(name, "1.1".equals(version)); } ! if ("".equals(namespaceURI)) { namespaceURI = null; --- 830,836 ---- { checkNCName(name, "1.1".equals(version)); } ! if ("".equals(namespaceURI)) { namespaceURI = null; *************** public class DomDocument *** 871,877 **** } return new DomAttr(this, namespaceURI, name); } ! /** * DOM L1 * Returns a newly created reference to the specified entity. --- 871,877 ---- } return new DomAttr(this, namespaceURI, name); } ! /** * DOM L1 * Returns a newly created reference to the specified entity. *************** public class DomDocument *** 1006,1012 **** { Attr a = (Attr) srcAttrs.item(i); Attr dflt; ! // maybe update defaulted attributes dflt = (Attr) dstAttrs.getNamedItem(a.getNodeName()); if (dflt != null) --- 1006,1012 ---- { Attr a = (Attr) srcAttrs.item(i); Attr dflt; ! // maybe update defaulted attributes dflt = (Attr) dstAttrs.getNamedItem(a.getNodeName()); if (dflt != null) *************** public class DomDocument *** 1019,1025 **** } continue; } ! dstAttrs.setNamedItem((Attr) importNode(a, false)); } if (deep) --- 1019,1025 ---- } continue; } ! dstAttrs.setNamedItem((Attr) importNode(a, false)); } if (deep) *************** public class DomDocument *** 1039,1045 **** default: throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, null, src, 0); } ! // FIXME cleanup a bit -- for deep copies, copy those // children in one place, here (code sharing is healthy) --- 1039,1045 ---- default: throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, null, src, 0); } ! // FIXME cleanup a bit -- for deep copies, copy those // children in one place, here (code sharing is healthy) *************** public class DomDocument *** 1077,1083 **** } // DOM Level 3 methods ! /** * DOM L3 */ --- 1077,1083 ---- } // DOM Level 3 methods ! /** * DOM L3 */ *************** public class DomDocument *** 1090,1096 **** { this.inputEncoding = inputEncoding; } ! /** * DOM L3 */ --- 1090,1096 ---- { this.inputEncoding = inputEncoding; } ! /** * DOM L3 */ *************** public class DomDocument *** 1098,1109 **** { return encoding; } ! public void setXmlEncoding(String encoding) { this.encoding = encoding; } ! public boolean getXmlStandalone() { return standalone; --- 1098,1109 ---- { return encoding; } ! public void setXmlEncoding(String encoding) { this.encoding = encoding; } ! public boolean getXmlStandalone() { return standalone; *************** public class DomDocument *** 1181,1187 **** return systemId; */ } ! public String getDocumentURI() { return systemId; --- 1181,1187 ---- return systemId; */ } ! public String getDocumentURI() { return systemId; *************** public class DomDocument *** 1454,1460 **** ctx = ctxNext; } } ! public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException { --- 1454,1460 ---- ctx = ctxNext; } } ! public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException { *************** public class DomDocument *** 1514,1520 **** "xmlns namespace must be " + XMLConstants.XMLNS_ATTRIBUTE_NS_URI, src, 0); } ! } src.setNodeName(qualifiedName); src.setNamespaceURI(namespaceURI); --- 1514,1520 ---- "xmlns namespace must be " + XMLConstants.XMLNS_ATTRIBUTE_NS_URI, src, 0); } ! } src.setNodeName(qualifiedName); src.setNamespaceURI(namespaceURI); *************** public class DomDocument *** 1527,1545 **** } // -- XPathEvaluator -- ! public XPathExpression createExpression(String expression, XPathNSResolver resolver) throws XPathException, DOMException { return new DomXPathExpression(this, expression, resolver); } ! public XPathNSResolver createNSResolver(Node nodeResolver) { return new DomXPathNSResolver(nodeResolver); } ! public Object evaluate(String expression, Node contextNode, XPathNSResolver resolver, --- 1527,1545 ---- } // -- XPathEvaluator -- ! public XPathExpression createExpression(String expression, XPathNSResolver resolver) throws XPathException, DOMException { return new DomXPathExpression(this, expression, resolver); } ! public XPathNSResolver createNSResolver(Node nodeResolver) { return new DomXPathNSResolver(nodeResolver); } ! public Object evaluate(String expression, Node contextNode, XPathNSResolver resolver, *************** public class DomDocument *** 1553,1556 **** } } - --- 1553,1555 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocumentBuilder.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocumentBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocumentBuilder.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocumentBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomDocumentBuilder.java -- Copyright (C) 2004,2006,2007 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomDocumentBuilder.java -- Copyright (C) 2004,2006,2007 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class DomDocumentBuilder *** 68,74 **** final DOMImplementation impl; final DOMImplementationLS ls; final LSParser parser; ! DomDocumentBuilder(DOMImplementation impl, DOMImplementationLS ls, LSParser parser) --- 68,74 ---- final DOMImplementation impl; final DOMImplementationLS ls; final LSParser parser; ! DomDocumentBuilder(DOMImplementation impl, DOMImplementationLS ls, LSParser parser) *************** class DomDocumentBuilder *** 83,89 **** DOMConfiguration config = parser.getDomConfig(); return ((Boolean) config.getParameter("namespaces")).booleanValue(); } ! public boolean isValidating() { DOMConfiguration config = parser.getDomConfig(); --- 83,89 ---- DOMConfiguration config = parser.getDomConfig(); return ((Boolean) config.getParameter("namespaces")).booleanValue(); } ! public boolean isValidating() { DOMConfiguration config = parser.getDomConfig(); *************** class DomDocumentBuilder *** 112,118 **** { return impl; } ! public Document newDocument() { return impl.createDocument(null, null, null); --- 112,118 ---- { return impl; } ! public Document newDocument() { return impl.createDocument(null, null, null); *************** class DomDocumentBuilder *** 225,228 **** } } - --- 225,227 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocumentBuilderFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocumentBuilderFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocumentBuilderFactory.java Wed Feb 7 18:22:26 2007 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocumentBuilderFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomDocumentBuilderFactory.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomDocumentBuilderFactory.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomDocumentBuilderFactory *** 156,162 **** { // TODO } ! public void setFeature(String name, boolean value) throws ParserConfigurationException { --- 156,162 ---- { // TODO } ! public void setFeature(String name, boolean value) throws ParserConfigurationException { *************** public class DomDocumentBuilderFactory *** 177,182 **** return secureProcessing; throw new ParserConfigurationException(name); } - - } --- 177,181 ---- return secureProcessing; throw new ParserConfigurationException(name); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocumentConfiguration.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocumentConfiguration.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocumentConfiguration.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocumentConfiguration.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomDocumentConfiguration.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomDocumentConfiguration.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class DomDocumentConfiguration *** 245,256 **** return null; } } ! public int getLength() { return SUPPORTED_PARAMETERS.size(); } ! public boolean contains(String str) { str = str.toLowerCase(); --- 245,256 ---- return null; } } ! public int getLength() { return SUPPORTED_PARAMETERS.size(); } ! public boolean contains(String str) { str = str.toLowerCase(); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocumentFragment.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocumentFragment.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomDocumentFragment.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomDocumentFragment.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomDocumentFragment.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomDocumentFragment.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.DocumentFragment; *** 42,55 **** /** *

            "DocumentFragment" implementation.

            * ! * @author David Brownell * @author Chris Burdess */ public class DomDocumentFragment extends DomNode implements DocumentFragment { ! /** * Constructs a DocumentFragment node associated with the * specified document. --- 42,55 ---- /** *

            "DocumentFragment" implementation.

            * ! * @author David Brownell * @author Chris Burdess */ public class DomDocumentFragment extends DomNode implements DocumentFragment { ! /** * Constructs a DocumentFragment node associated with the * specified document. *************** public class DomDocumentFragment *** 71,76 **** { return "#document-fragment"; } - - } --- 71,75 ---- { return "#document-fragment"; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomElement.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomElement.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomElement.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.TypeInfo; *** 51,57 **** /** *

            "Element" implementation. * ! * @author David Brownell * @author Chris Burdess */ public class DomElement --- 51,57 ---- /** *

            "Element" implementation. * ! * @author David Brownell * @author Chris Burdess */ public class DomElement *************** public class DomElement *** 81,87 **** * * @param owner The document with which this node is associated * @param namespaceURI Combined with the local part of the name, ! * this is used to uniquely identify a type of element * @param name Name of this element, which may include a prefix */ protected DomElement(DomDocument owner, String namespaceURI, String name) --- 81,87 ---- * * @param owner The document with which this node is associated * @param namespaceURI Combined with the local part of the name, ! * this is used to uniquely identify a type of element * @param name Name of this element, which may include a prefix */ protected DomElement(DomDocument owner, String namespaceURI, String name) *************** public class DomElement *** 99,116 **** *

            * With this constructor, the prefix and local part are given explicitly * rather than being computed. This allows them to be explicitly set to ! * {@code null} as required by {@link Document#createElement(String)}. *

            * * @param owner The document with which this node is associated * @param namespaceURI Combined with the local part of the name, ! * this is used to uniquely identify a type of element * @param name Name of this element, which may include a prefix * @param prefix the namespace prefix of the name. May be {@code null}. * @param localName the local part of the name. May be {@code null}. */ protected DomElement(DomDocument owner, String namespaceURI, String name, ! String prefix, String localName) { super(ELEMENT_NODE, owner, namespaceURI, name, prefix, localName); } --- 99,116 ---- *

            * With this constructor, the prefix and local part are given explicitly * rather than being computed. This allows them to be explicitly set to ! * {@code null} as required by {@link Document#createElement(String)}. *

            * * @param owner The document with which this node is associated * @param namespaceURI Combined with the local part of the name, ! * this is used to uniquely identify a type of element * @param name Name of this element, which may include a prefix * @param prefix the namespace prefix of the name. May be {@code null}. * @param localName the local part of the name. May be {@code null}. */ protected DomElement(DomDocument owner, String namespaceURI, String name, ! String prefix, String localName) { super(ELEMENT_NODE, owner, namespaceURI, name, prefix, localName); } *************** public class DomElement *** 263,269 **** * DOM L1 * Modifies an existing attribute to have the specified value, * or creates a new one with that value. The name used is the ! * nodeName value. */ public void setAttribute(String name, String value) { --- 263,269 ---- * DOM L1 * Modifies an existing attribute to have the specified value, * or creates a new one with that value. The name used is the ! * nodeName value. */ public void setAttribute(String name, String value) { *************** public class DomElement *** 476,482 **** } return super.lookupNamespaceURI(prefix); } ! public String getBaseURI() { if (attributes != null) --- 476,482 ---- } return super.lookupNamespaceURI(prefix); } ! public String getBaseURI() { if (attributes != null) *************** public class DomElement *** 490,496 **** } return super.getBaseURI(); } ! public TypeInfo getSchemaTypeInfo() { // DTD implementation --- 490,496 ---- } return super.getBaseURI(); } ! public TypeInfo getSchemaTypeInfo() { // DTD implementation *************** public class DomElement *** 509,515 **** Attr attr = (Attr) attrs.getNamedItem(name); setIdAttributeNode(attr, isId); } ! public void setIdAttributeNode(Attr attr, boolean isId) { if (readonly) --- 509,515 ---- Attr attr = (Attr) attrs.getNamedItem(name); setIdAttributeNode(attr, isId); } ! public void setIdAttributeNode(Attr attr, boolean isId) { if (readonly) *************** public class DomElement *** 578,582 **** } return true; } ! } --- 578,582 ---- } return true; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomEntity.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomEntity.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomEntity.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomEntity.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomEntity.java -- Copyright (C) 1999,2000,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomEntity.java -- Copyright (C) 1999,2000,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Entity; *** 45,61 **** * particularly well in this API:

            * *
            Unparsed Entities
            ! *
            Since ENTITY/ENTITIES attributes, the only legal use of unparsed ! * entities in XML, can't be detected with DOM, there isn't much point in ! * trying to use unparsed entities in DOM applications. (XML Linking is ! * working to provide a better version of this functionality.)
            * *
            Parsed Entities
            ! *
            While the DOM specification permits nodes for parsed entities ! * to have a readonly set of children, this is not required and there ! * is no portable way to provide such children. This implementation ! * currently does not permit children to be added to Entities. ! * There are related issues with the use of EntityReference nodes.
            * *
            * --- 45,61 ---- * particularly well in this API:

            * *
            Unparsed Entities
            ! *
            Since ENTITY/ENTITIES attributes, the only legal use of unparsed ! * entities in XML, can't be detected with DOM, there isn't much point in ! * trying to use unparsed entities in DOM applications. (XML Linking is ! * working to provide a better version of this functionality.)
            * *
            Parsed Entities
            ! *
            While the DOM specification permits nodes for parsed entities ! * to have a readonly set of children, this is not required and there ! * is no portable way to provide such children. This implementation ! * currently does not permit children to be added to Entities. ! * There are related issues with the use of EntityReference nodes.
            * *
            * *************** import org.w3c.dom.Entity; *** 65,78 **** * @see DomEntityReference * @see DomNotation * ! * @author David Brownell * @author Chris Burdess */ public class DomEntity extends DomExtern implements Entity { ! private String notation; /** --- 65,78 ---- * @see DomEntityReference * @see DomNotation * ! * @author David Brownell * @author Chris Burdess */ public class DomEntity extends DomExtern implements Entity { ! private String notation; /** *************** public class DomEntity *** 113,125 **** } // DOM Level 3 methods ! public String getInputEncoding() { // TODO ! return null; } ! public String getXmlEncoding() { // TODO --- 113,125 ---- } // DOM Level 3 methods ! public String getInputEncoding() { // TODO ! return null; } ! public String getXmlEncoding() { // TODO *************** public class DomEntity *** 142,147 **** String systemId = getSystemId(); return (systemId == null) ? owner.getBaseURI() : systemId; } - - } --- 142,146 ---- String systemId = getSystemId(); return (systemId == null) ? owner.getBaseURI() : systemId; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomEntityReference.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomEntityReference.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomEntityReference.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomEntityReference.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomEntityReference.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomEntityReference.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.EntityReference; *** 71,77 **** * @see DomDoctype * @see DomEntity * ! * @author David Brownell * @author Chris Burdess */ public class DomEntityReference --- 71,77 ---- * @see DomDoctype * @see DomEntity * ! * @author David Brownell * @author Chris Burdess */ public class DomEntityReference *************** public class DomEntityReference *** 80,86 **** { private String name; ! /** * Constructs an EntityReference node associated with the specified * document. The creator should populate this with whatever contents --- 80,86 ---- { private String name; ! /** * Constructs an EntityReference node associated with the specified * document. The creator should populate this with whatever contents *************** public class DomEntityReference *** 97,103 **** super(ENTITY_REFERENCE_NODE, owner); this.name = name; } ! /** * Returns the name of the referenced entity. * @since DOM Level 1 Core --- 97,103 ---- super(ENTITY_REFERENCE_NODE, owner); this.name = name; } ! /** * Returns the name of the referenced entity. * @since DOM Level 1 Core diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomEvent.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomEvent.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomEvent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomEvent.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomEvent.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.events.EventTarget; *** 46,52 **** import org.w3c.dom.events.MutationEvent; import org.w3c.dom.events.UIEvent; ! import org.w3c.dom.views.AbstractView; // used by UIEvent /** * "Event" implementation. Events are --- 46,52 ---- import org.w3c.dom.events.MutationEvent; import org.w3c.dom.events.UIEvent; ! import org.w3c.dom.views.AbstractView; // used by UIEvent /** * "Event" implementation. Events are *************** import org.w3c.dom.views.AbstractView; *** 62,68 **** public class DomEvent implements Event { ! String type; // init EventTarget target; EventTarget currentNode; --- 62,68 ---- public class DomEvent implements Event { ! String type; // init EventTarget target; EventTarget currentNode; *************** public class DomEvent *** 130,139 **** { return timeStamp; } ! boolean stop; boolean doDefault; ! /** * Requests the event no longer be captured or bubbled; only * listeners on the event target will see the event, if they --- 130,139 ---- { return timeStamp; } ! boolean stop; boolean doDefault; ! /** * Requests the event no longer be captured or bubbled; only * listeners on the event target will see the event, if they *************** public class DomEvent *** 174,180 **** cancelable = cancelableArg; timeStamp = System.currentTimeMillis(); } ! /** Constructs, but does not initialize, an event. */ public DomEvent(String type) { --- 174,180 ---- cancelable = cancelableArg; timeStamp = System.currentTimeMillis(); } ! /** Constructs, but does not initialize, an event. */ public DomEvent(String type) { *************** public class DomEvent *** 216,222 **** buf.append("]"); return buf.toString(); } ! /** * "MutationEvent" implementation. */ --- 216,222 ---- buf.append("]"); return buf.toString(); } ! /** * "MutationEvent" implementation. */ *************** public class DomEvent *** 224,269 **** extends DomEvent implements MutationEvent { ! // package private Node relatedNode; // init ! private String prevValue; // init private String newValue; // init ! private String attrName; // init private short attrChange; // init ! /** Returns any "related" node provided by this type of event */ public final Node getRelatedNode() { return relatedNode; } ! /** Returns any "previous value" provided by this type of event */ public final String getPrevValue() { return prevValue; } ! /** Returns any "new value" provided by this type of event */ public final String getNewValue() { return newValue; } ! /** For attribute change events, returns the attribute's name */ public final String getAttrName() { return attrName; } ! /** For attribute change events, returns how the attribuet changed */ public final short getAttrChange() { return attrChange; } ! /** Initializes a mutation event */ public final void initMutationEvent(String typeArg, boolean canBubbleArg, --- 224,269 ---- extends DomEvent implements MutationEvent { ! // package private Node relatedNode; // init ! private String prevValue; // init private String newValue; // init ! private String attrName; // init private short attrChange; // init ! /** Returns any "related" node provided by this type of event */ public final Node getRelatedNode() { return relatedNode; } ! /** Returns any "previous value" provided by this type of event */ public final String getPrevValue() { return prevValue; } ! /** Returns any "new value" provided by this type of event */ public final String getNewValue() { return newValue; } ! /** For attribute change events, returns the attribute's name */ public final String getAttrName() { return attrName; } ! /** For attribute change events, returns how the attribuet changed */ public final short getAttrChange() { return attrChange; } ! /** Initializes a mutation event */ public final void initMutationEvent(String typeArg, boolean canBubbleArg, *************** public class DomEvent *** 281,287 **** bubbles = canBubbleArg; cancelable = cancelableArg; timeStamp = System.currentTimeMillis(); ! relatedNode = relatedNodeArg; prevValue = prevValueArg; newValue = newValueArg; --- 281,287 ---- bubbles = canBubbleArg; cancelable = cancelableArg; timeStamp = System.currentTimeMillis(); ! relatedNode = relatedNodeArg; prevValue = prevValueArg; newValue = newValueArg; *************** public class DomEvent *** 304,310 **** { super(type); } ! } /** --- 304,310 ---- { super(type); } ! } /** *************** public class DomEvent *** 314,329 **** extends DomEvent implements UIEvent { ! private AbstractView view; // init private int detail; // init ! /** Constructs an uninitialized User Interface (UI) event */ public DomUIEvent (String type) { super (type); } ! public final AbstractView getView () { return view; } public final int getDetail () { return detail; } ! /** Initializes a UI event */ public final void initUIEvent(String typeArg, boolean canBubbleArg, --- 314,329 ---- extends DomEvent implements UIEvent { ! private AbstractView view; // init private int detail; // init ! /** Constructs an uninitialized User Interface (UI) event */ public DomUIEvent (String type) { super (type); } ! public final AbstractView getView () { return view; } public final int getDetail () { return detail; } ! /** Initializes a UI event */ public final void initUIEvent(String typeArg, boolean canBubbleArg, *************** public class DomEvent *** 335,341 **** view = viewArg; detail = detailArg; } ! } /* --- 335,341 ---- view = viewArg; detail = detailArg; } ! } /* *************** public class DomEvent *** 349,352 **** */ } - --- 349,351 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomExtern.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomExtern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomExtern.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomExtern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomExtern.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomExtern.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.dom; *** 48,64 **** * of them is defined fully enough to permit full use of the * XML feature they partially expose.

            * ! * @author David Brownell * @author Chris Burdess */ public abstract class DomExtern extends DomNode { ! private final String name; private final String publicId; private final String systemId; ! /** * Constructs a node associated with the specified document, * with the specified descriptive data. --- 48,64 ---- * of them is defined fully enough to permit full use of the * XML feature they partially expose.

            * ! * @author David Brownell * @author Chris Burdess */ public abstract class DomExtern extends DomNode { ! private final String name; private final String publicId; private final String systemId; ! /** * Constructs a node associated with the specified document, * with the specified descriptive data. *************** public abstract class DomExtern *** 98,104 **** { return publicId; } ! /** * DOM L1 * Returns the object's name. --- 98,104 ---- { return publicId; } ! /** * DOM L1 * Returns the object's name. *************** public abstract class DomExtern *** 112,117 **** { return name; } - - } --- 112,116 ---- { return name; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomImpl.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomImpl.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomImpl.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import gnu.xml.dom.ls.DomLSSerializer; *** 64,76 **** * It is possible to compile the package so it doesn't support some of these * features (notably, Traversal). * ! * @author David Brownell * @author Chris Burdess */ public class DomImpl implements DOMImplementation, DOMImplementationLS { ! /** * Constructs a DOMImplementation object which supports * "XML" and other DOM Level 2 features. --- 64,76 ---- * It is possible to compile the package so it doesn't support some of these * features (notably, Traversal). * ! * @author David Brownell * @author Chris Burdess */ public class DomImpl implements DOMImplementation, DOMImplementationLS { ! /** * Constructs a DOMImplementation object which supports * "XML" and other DOM Level 2 features. *************** public class DomImpl *** 95,101 **** { name = name.substring(1); } ! if ("xml".equals(name) || "core".equals(name)) { return (version == null || --- 95,101 ---- { name = name.substring(1); } ! if ("xml".equals(name) || "core".equals(name)) { return (version == null || *************** public class DomImpl *** 103,109 **** "1.0".equals(version) || "2.0".equals(version) || "3.0".equals(version)); ! } else if ("ls".equals(name) || "ls-async".equals(name)) { --- 103,109 ---- "1.0".equals(version) || "2.0".equals(version) || "3.0".equals(version)); ! } else if ("ls".equals(name) || "ls-async".equals(name)) { *************** public class DomImpl *** 120,126 **** return (version == null || "".equals(version) || "2.0".equals(version)); ! // Extension: "USER-" prefix event types can // be created and passed through the DOM. --- 120,126 ---- return (version == null || "".equals(version) || "2.0".equals(version)); ! // Extension: "USER-" prefix event types can // be created and passed through the DOM. *************** public class DomImpl *** 131,141 **** "".equals(version) || "0.1".equals(version)); ! // NOTE: "hasFeature" for events is here interpreted to ! // mean the DOM can manufacture those sorts of events, ! // since actually choosing to report the events is more ! // often part of the environment or application. It's ! // only really an issue for mutation events. } else if (DomNode.reportMutations --- 131,141 ---- "".equals(version) || "0.1".equals(version)); ! // NOTE: "hasFeature" for events is here interpreted to ! // mean the DOM can manufacture those sorts of events, ! // since actually choosing to report the events is more ! // often part of the environment or application. It's ! // only really an issue for mutation events. } else if (DomNode.reportMutations *************** public class DomImpl *** 143,149 **** { return (version == null || "".equals(version) || ! "2.0".equals(version)); } else if ("xpath".equals(name)) { --- 143,149 ---- { return (version == null || "".equals(version) || ! "2.0".equals(version)); } else if ("xpath".equals(name)) { *************** public class DomImpl *** 162,168 **** // stylesheets // css, css2 // range ! return false; } --- 162,168 ---- // stylesheets // css, css2 // range ! return false; } *************** public class DomImpl *** 208,214 **** { Document doc = createDocument(); Element root = null; ! if (rootName != null) { root = doc.createElementNS(namespaceURI, rootName); --- 208,214 ---- { Document doc = createDocument(); Element root = null; ! if (rootName != null) { root = doc.createElementNS(namespaceURI, rootName); *************** public class DomImpl *** 221,227 **** // Bleech -- L2 seemingly _requires_ omission of xmlns attributes. if (doctype != null) { ! doc.appendChild(doctype); // handles WRONG_DOCUMENT error } if (root != null) { --- 221,227 ---- // Bleech -- L2 seemingly _requires_ omission of xmlns attributes. if (doctype != null) { ! doc.appendChild(doctype); // handles WRONG_DOCUMENT error } if (root != null) { *************** public class DomImpl *** 236,242 **** } // DOM Level 3 ! public Object getFeature(String feature, String version) { if (hasFeature(feature, version)) --- 236,242 ---- } // DOM Level 3 ! public Object getFeature(String feature, String version) { if (hasFeature(feature, version)) *************** public class DomImpl *** 273,278 **** { return new DomLSOutput(); } - - } --- 273,277 ---- { return new DomLSOutput(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomIterator.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomIterator.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomIterator.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomIterator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomIterator.java -- Copyright (C) 1999, 2000, 2001, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomIterator.java -- Copyright (C) 1999, 2000, 2001, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.traversal.NodeIterato *** 50,70 **** *

            "NodeIterator" implementation, usable with any L2 DOM which * supports MutationEvents.

            * ! * @author David Brownell */ public final class DomIterator implements NodeIterator, EventListener { ! private Node reference; private boolean right; private boolean done; ! private final Node root; private final int whatToShow; private final NodeFilter filter; private final boolean expandEntityReferences; ! /** * Constructs and initializes an iterator. */ --- 50,70 ---- *

            "NodeIterator" implementation, usable with any L2 DOM which * supports MutationEvents.

            * ! * @author David Brownell */ public final class DomIterator implements NodeIterator, EventListener { ! private Node reference; private boolean right; private boolean done; ! private final Node root; private final int whatToShow; private final NodeFilter filter; private final boolean expandEntityReferences; ! /** * Constructs and initializes an iterator. */ *************** public final class DomIterator *** 73,94 **** NodeFilter filter, boolean entityReferenceExpansion) { ! if (!root.isSupported("MutationEvents", "2.0")) { throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, "Iterator needs mutation events", root, 0); } ! this.root = root; this.whatToShow = whatToShow; this.filter = filter; this.expandEntityReferences = entityReferenceExpansion; ! // start condition: going right, seen nothing yet. reference = null; right = true; ! ! EventTarget target = (EventTarget) root; target.addEventListener("DOMNodeRemoved", this, false); } --- 73,94 ---- NodeFilter filter, boolean entityReferenceExpansion) { ! if (!root.isSupported("MutationEvents", "2.0")) { throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, "Iterator needs mutation events", root, 0); } ! this.root = root; this.whatToShow = whatToShow; this.filter = filter; this.expandEntityReferences = entityReferenceExpansion; ! // start condition: going right, seen nothing yet. reference = null; right = true; ! ! EventTarget target = (EventTarget) root; target.addEventListener("DOMNodeRemoved", this, false); } *************** public final class DomIterator *** 100,106 **** */ public void detach() { ! EventTarget target = (EventTarget) root; target.removeEventListener("DOMNodeRemoved", this, false); done = true; } --- 100,106 ---- */ public void detach() { ! EventTarget target = (EventTarget) root; target.removeEventListener("DOMNodeRemoved", this, false); done = true; } *************** public final class DomIterator *** 114,120 **** { return expandEntityReferences; } ! /** * DOM L2 * Returns the filter provided during construction. --- 114,120 ---- { return expandEntityReferences; } ! /** * DOM L2 * Returns the filter provided during construction. *************** public final class DomIterator *** 123,129 **** { return filter; } ! /** * DOM L2 * Returns the root of the tree this is iterating through. --- 123,129 ---- { return filter; } ! /** * DOM L2 * Returns the root of the tree this is iterating through. *************** public final class DomIterator *** 132,138 **** { return root; } ! /** * DOM L2 * Returns the mask of flags provided during construction. --- 132,138 ---- { return root; } ! /** * DOM L2 * Returns the mask of flags provided during construction. *************** public final class DomIterator *** 141,147 **** { return whatToShow; } ! /** * DOM L2 * Returns the next node in a forward iteration, masked and filtered. --- 141,147 ---- { return whatToShow; } ! /** * DOM L2 * Returns the next node in a forward iteration, masked and filtered. *************** public final class DomIterator *** 228,234 **** } return leaf; } ! // // Returns the immediate successor in a forward (or backward) // document order walk, sans filtering ... except that it knows --- 228,234 ---- } return leaf; } ! // // Returns the immediate successor in a forward (or backward) // document order walk, sans filtering ... except that it knows *************** public final class DomIterator *** 253,265 **** { return here.getFirstChild(); } ! // There's no way up or sideways from the root, so if we // couldn't move down to a child, there's nowhere to go. // if (here == root) return null; ! // // Siblings ... if forward, we visit them, if backwards // we visit their children first. --- 253,265 ---- { return here.getFirstChild(); } ! // There's no way up or sideways from the root, so if we // couldn't move down to a child, there's nowhere to go. // if (here == root) return null; ! // // Siblings ... if forward, we visit them, if backwards // we visit their children first. *************** public final class DomIterator *** 284,290 **** } return next; } ! // // We can't go down or lateral -- it's up, then. The logic is // the converse of what's above: backwards is easy (the parent --- 284,290 ---- } return next; } ! // // We can't go down or lateral -- it's up, then. The logic is // the converse of what's above: backwards is easy (the parent *************** public final class DomIterator *** 295,301 **** { return next; } ! Node temp = null; while (next != null && next != root --- 295,301 ---- { return next; } ! Node temp = null; while (next != null && next != root *************** public final class DomIterator *** 303,309 **** { next = next.getParentNode(); } ! // If we have exceeded the root node then stop traversing. if (next == root.getParentNode()) { --- 303,309 ---- { next = next.getParentNode(); } ! // If we have exceeded the root node then stop traversing. if (next == root.getParentNode()) { *************** public final class DomIterator *** 324,330 **** { MutationEvent event; Node ancestor, removed; ! if (reference == null || !"DOMNodeRemoved".equals(e.getType()) || e.getEventPhase() != Event.BUBBLING_PHASE) --- 324,330 ---- { MutationEvent event; Node ancestor, removed; ! if (reference == null || !"DOMNodeRemoved".equals(e.getType()) || e.getEventPhase() != Event.BUBBLING_PHASE) *************** search: *** 372,381 **** } return; } ! // The current DOM WD talks about a special case here; // I've not yet seen it. } - - } --- 372,380 ---- } return; } ! // The current DOM WD talks about a special case here; // I've not yet seen it. } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNSResolverContext.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNSResolverContext.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNSResolverContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNSResolverContext.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomNSResolverContext.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomNSResolverContext.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class DomNSResolverContext *** 50,90 **** implements NamespaceContext, Iterator { ! final XPathNSResolver resolver; ! DomNSResolverContext(XPathNSResolver resolver) ! { ! this.resolver = resolver; ! } ! public String getNamespaceURI(String prefix) ! { ! return resolver.lookupNamespaceURI(prefix); ! } ! public String getPrefix(String namespaceURI) ! { ! return null; ! } ! public Iterator getPrefixes(String namespaceURI) ! { ! return this; ! } ! public boolean hasNext() ! { ! return false; ! } ! public Object next() ! { ! return null; ! } ! public void remove() ! { ! throw new UnsupportedOperationException(); ! } } --- 50,90 ---- implements NamespaceContext, Iterator { ! final XPathNSResolver resolver; ! DomNSResolverContext(XPathNSResolver resolver) ! { ! this.resolver = resolver; ! } ! public String getNamespaceURI(String prefix) ! { ! return resolver.lookupNamespaceURI(prefix); ! } ! public String getPrefix(String namespaceURI) ! { ! return null; ! } ! public Iterator getPrefixes(String namespaceURI) ! { ! return this; ! } ! public boolean hasNext() ! { ! return false; ! } ! public Object next() ! { ! return null; ! } ! public void remove() ! { ! throw new UnsupportedOperationException(); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomNamedNodeMap.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomNamedNodeMap.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Node; *** 46,52 **** * Used mostly to hold element attributes, but sometimes also * to list notations or entities. * ! * @author David Brownell * @author Chris Burdess */ public class DomNamedNodeMap --- 46,52 ---- * Used mostly to hold element attributes, but sometimes also * to list notations or entities. * ! * @author David Brownell * @author Chris Burdess */ public class DomNamedNodeMap *************** public class DomNamedNodeMap *** 55,65 **** final DomNode owner; final short type; ! DomNode first; int length; boolean readonly; ! // package private DomNamedNodeMap(DomNode owner, short type) { --- 55,65 ---- final DomNode owner; final short type; ! DomNode first; int length; boolean readonly; ! // package private DomNamedNodeMap(DomNode owner, short type) { *************** public class DomNamedNodeMap *** 76,83 **** public final boolean isReadonly() { return readonly; ! } ! /** * Sets the internal "readonly" flag so the node and its * children can't be changed. --- 76,83 ---- public final boolean isReadonly() { return readonly; ! } ! /** * Sets the internal "readonly" flag so the node and its * children can't be changed. *************** public class DomNamedNodeMap *** 90,96 **** ctx.makeReadonly(); } } ! /** * DOM L1 * Returns the named item from the map, or null; names are just --- 90,96 ---- ctx.makeReadonly(); } } ! /** * DOM L1 * Returns the named item from the map, or null; names are just *************** public class DomNamedNodeMap *** 189,195 **** node.parent = owner; node.depth = owner.depth + 1; } ! String nodeName = node.getNodeName(); String localName = ns ? node.getLocalName() : null; String namespaceURI = ns ? node.getNamespaceURI() : null; --- 189,195 ---- node.parent = owner; node.depth = owner.depth + 1; } ! String nodeName = node.getNodeName(); String localName = ns ? node.getLocalName() : null; String namespaceURI = ns ? node.getNamespaceURI() : null; *************** public class DomNamedNodeMap *** 197,203 **** { namespaceURI = null; } ! // maybe attribute ADDITION events (?) DomNode last = null; for (DomNode ctx = first; ctx != null; ctx = ctx.next) --- 197,203 ---- { namespaceURI = null; } ! // maybe attribute ADDITION events (?) DomNode last = null; for (DomNode ctx = first; ctx != null; ctx = ctx.next) *************** public class DomNamedNodeMap *** 373,382 **** ctx.index = 0; return ctx; } ! } throw new DomDOMException(DOMException.NOT_FOUND_ERR); } ! String getDefaultValue(String name) { DomDoctype doctype = (DomDoctype) owner.owner.getDoctype(); --- 373,382 ---- ctx.index = 0; return ctx; } ! } throw new DomDOMException(DOMException.NOT_FOUND_ERR); } ! String getDefaultValue(String name) { DomDoctype doctype = (DomDoctype) owner.owner.getDoctype(); *************** public class DomNamedNodeMap *** 417,421 **** { return length; } ! } --- 417,421 ---- { return length; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNode.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNode.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNode.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNode.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomNode.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomNode.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class DomNode *** 102,111 **** //final static String xmlnsURI = "http://www.w3.org/2000/xmlns/"; // tunable ! // NKIDS_* affects arrays of children (which grow) // (currently) fixed size: ! // ANCESTORS_* is for event capture/bubbling, # ancestors ! // NOTIFICATIONS_* is for per-node event delivery, # events private static final int NKIDS_DELTA = 8; private static final int ANCESTORS_INIT = 20; private static final int NOTIFICATIONS_INIT = 10; --- 102,111 ---- //final static String xmlnsURI = "http://www.w3.org/2000/xmlns/"; // tunable ! // NKIDS_* affects arrays of children (which grow) // (currently) fixed size: ! // ANCESTORS_* is for event capture/bubbling, # ancestors ! // NOTIFICATIONS_* is for per-node event delivery, # events private static final int NKIDS_DELTA = 8; private static final int ANCESTORS_INIT = 20; private static final int NOTIFICATIONS_INIT = 10; *************** public abstract class DomNode *** 193,199 **** this.owner = owner; this.listeners = new HashSet(); } ! /** * DOM L1 --- 193,199 ---- this.owner = owner; this.listeners = new HashSet(); } ! /** * DOM L1 *************** public abstract class DomNode *** 314,320 **** this.owner; DomDocument childOwner = child.owner; short childNodeType = child.nodeType; ! if (childOwner != owner) { // new in DOM L2, this case -- patch it up later, in reparent() --- 314,320 ---- this.owner; DomDocument childOwner = child.owner; short childNodeType = child.nodeType; ! if (childOwner != owner) { // new in DOM L2, this case -- patch it up later, in reparent() *************** public abstract class DomNode *** 338,344 **** return; } break; ! case ATTRIBUTE_NODE: switch (childNodeType) { --- 338,344 ---- return; } break; ! case ATTRIBUTE_NODE: switch (childNodeType) { *************** public abstract class DomNode *** 347,353 **** return; } break; ! case DOCUMENT_FRAGMENT_NODE: case ENTITY_REFERENCE_NODE: case ELEMENT_NODE: --- 347,353 ---- return; } break; ! case DOCUMENT_FRAGMENT_NODE: case ENTITY_REFERENCE_NODE: case ELEMENT_NODE: *************** public abstract class DomNode *** 384,390 **** this, 0); } } ! // Here's hoping a good optimizer will detect the case when the // next several methods are never called, and won't allocate // object code space of any kind. (Case: not reporting any --- 384,390 ---- this, 0); } } ! // Here's hoping a good optimizer will detect the case when the // next several methods are never called, and won't allocate // object code space of any kind. (Case: not reporting any *************** public abstract class DomNode *** 399,405 **** return; } boolean doFree = false; ! if (event == null) { event = getMutationEvent(); --- 399,405 ---- return; } boolean doFree = false; ! if (event == null) { event = getMutationEvent(); *************** public abstract class DomNode *** 531,537 **** { try { ! DomNode child = (DomNode) newChild; if (child.nodeType == DOCUMENT_FRAGMENT_NODE) { --- 531,537 ---- { try { ! DomNode child = (DomNode) newChild; if (child.nodeType == DOCUMENT_FRAGMENT_NODE) { *************** public abstract class DomNode *** 610,618 **** try { ! DomNode child = (DomNode) newChild; DomNode ref = (DomNode) refChild; ! if (child.nodeType == DOCUMENT_FRAGMENT_NODE) { // Append all nodes in the fragment to this node --- 610,618 ---- try { ! DomNode child = (DomNode) newChild; DomNode ref = (DomNode) refChild; ! if (child.nodeType == DOCUMENT_FRAGMENT_NODE) { // Append all nodes in the fragment to this node *************** public abstract class DomNode *** 641,647 **** "can't insert node before itself", ref, 0); } ! if (child.parent != null) { child.parent.removeChild(child); --- 641,647 ---- "can't insert node before itself", ref, 0); } ! if (child.parent != null) { child.parent.removeChild(child); *************** public abstract class DomNode *** 672,678 **** } length++; } ! return child; } catch (ClassCastException e) --- 672,678 ---- } length++; } ! return child; } catch (ClassCastException e) *************** public abstract class DomNode *** 713,722 **** { DomNode child = (DomNode) newChild; DomNode ref = (DomNode) refChild; ! DomEvent.DomMutationEvent event = getMutationEvent(); boolean doFree = (event != null); ! if (child.nodeType == DOCUMENT_FRAGMENT_NODE) { // Append all nodes in the fragment to this node --- 713,722 ---- { DomNode child = (DomNode) newChild; DomNode ref = (DomNode) refChild; ! DomEvent.DomMutationEvent event = getMutationEvent(); boolean doFree = (event != null); ! if (child.nodeType == DOCUMENT_FRAGMENT_NODE) { // Append all nodes in the fragment to this node *************** public abstract class DomNode *** 729,742 **** throw new DomDOMException(DOMException.NOT_FOUND_ERR, null, ref, 0); } ! if (reportMutations) { removalEvent(event, ref); } length--; length += child.length; ! if (child.length == 0) { // Removal --- 729,742 ---- throw new DomDOMException(DOMException.NOT_FOUND_ERR, null, ref, 0); } ! if (reportMutations) { removalEvent(event, ref); } length--; length += child.length; ! if (child.length == 0) { // Removal *************** public abstract class DomNode *** 793,804 **** throw new DomDOMException(DOMException.NOT_FOUND_ERR, null, ref, 0); } ! if (reportMutations) { removalEvent(event, ref); } ! if (child.parent != null) { child.parent.removeChild(child); --- 793,804 ---- throw new DomDOMException(DOMException.NOT_FOUND_ERR, null, ref, 0); } ! if (reportMutations) { removalEvent(event, ref); } ! if (child.parent != null) { child.parent.removeChild(child); *************** public abstract class DomNode *** 839,845 **** ref.setDepth(0); ref.previous = null; ref.next = null; ! return ref; } catch (ClassCastException e) --- 839,845 ---- ref.setDepth(0); ref.previous = null; ref.next = null; ! return ref; } catch (ClassCastException e) *************** public abstract class DomNode *** 875,881 **** throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, null, this, 0); } ! for (DomNode child = first; child != null; child = child.next) { if (child == ref) --- 875,881 ---- throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, null, this, 0); } ! for (DomNode child = first; child != null; child = child.next) { if (child == ref) *************** public abstract class DomNode *** 913,919 **** ref.index = 0; ref.previous = null; ref.next = null; ! return ref; } } --- 913,919 ---- ref.index = 0; ref.previous = null; ref.next = null; ! return ref; } } *************** public abstract class DomNode *** 1002,1010 **** */ public boolean isSupported(String feature, String version) { ! Document doc = owner; ! DOMImplementation impl = null; ! if (doc == null && nodeType == DOCUMENT_NODE) { doc = (Document) this; --- 1002,1010 ---- */ public boolean isSupported(String feature, String version) { ! Document doc = owner; ! DOMImplementation impl = null; ! if (doc == null && nodeType == DOCUMENT_NODE) { doc = (Document) this; *************** public abstract class DomNode *** 1183,1189 **** try { DomNode node = (DomNode) super.clone(); ! node.parent = null; node.depth = 0; node.index = 0; --- 1183,1189 ---- try { DomNode node = (DomNode) super.clone(); ! node.parent = null; node.depth = 0; node.index = 0; *************** public abstract class DomNode *** 1192,1198 **** node.last = null; node.previous = null; node.next = null; ! node.readonly = false; node.listeners = new HashSet(); node.nListeners = 0; --- 1192,1198 ---- node.last = null; node.previous = null; node.next = null; ! node.readonly = false; node.listeners = new HashSet(); node.nListeners = 0; *************** public abstract class DomNode *** 1242,1248 **** { private LiveNodeList liveList; ! ShadowList(String ns, String local) { liveList = new LiveNodeList(ns, local); --- 1242,1248 ---- { private LiveNodeList liveList; ! ShadowList(String ns, String local) { liveList = new LiveNodeList(ns, local); *************** public abstract class DomNode *** 1268,1282 **** final class LiveNodeList implements NodeList, EventListener, NodeFilter { ! private final boolean matchAnyURI; ! private final boolean matchAnyName; private final String elementURI; private final String elementName; ! private DomIterator current; private int lastIndex; ! LiveNodeList(String uri, String name) { elementURI = uri; --- 1268,1282 ---- final class LiveNodeList implements NodeList, EventListener, NodeFilter { ! private final boolean matchAnyURI; ! private final boolean matchAnyName; private final String elementURI; private final String elementName; ! private DomIterator current; private int lastIndex; ! LiveNodeList(String uri, String name) { elementURI = uri; *************** public abstract class DomNode *** 1336,1363 **** { return new DomIterator(DomNode.this, NodeFilter.SHOW_ELEMENT, ! this, /* filter */ ! true /* expand entity refs */ ); } public void handleEvent(Event e) { ! MutationEvent mutation = (MutationEvent) e; ! Node related = mutation.getRelatedNode(); ! // XXX if it's got children ... check all kids too, they // will invalidate our saved index ! if (related.getNodeType() != Node.ELEMENT_NODE || related.getNodeName() != elementName || related.getNamespaceURI() != elementURI) { return; } ! if (current != null) ! current.detach(); current = null; } --- 1336,1363 ---- { return new DomIterator(DomNode.this, NodeFilter.SHOW_ELEMENT, ! this, /* filter */ ! true /* expand entity refs */ ); } public void handleEvent(Event e) { ! MutationEvent mutation = (MutationEvent) e; ! Node related = mutation.getRelatedNode(); ! // XXX if it's got children ... check all kids too, they // will invalidate our saved index ! if (related.getNodeType() != Node.ELEMENT_NODE || related.getNodeName() != elementName || related.getNamespaceURI() != elementURI) { return; } ! if (current != null) ! current.detach(); current = null; } *************** public abstract class DomNode *** 1368,1374 **** current = createIterator(); lastIndex = -1; } ! // last node or before? go backwards if (index <= lastIndex) { while (index != lastIndex) { --- 1368,1374 ---- current = createIterator(); lastIndex = -1; } ! // last node or before? go backwards if (index <= lastIndex) { while (index != lastIndex) { *************** public abstract class DomNode *** 1376,1386 **** lastIndex--; } Node ret = current.previousNode (); ! current.detach(); current = null; return ret; ! } ! // somewhere after last node while (++lastIndex != index) current.nextNode (); --- 1376,1386 ---- lastIndex--; } Node ret = current.previousNode (); ! current.detach(); current = null; return ret; ! } ! // somewhere after last node while (++lastIndex != index) current.nextNode (); *************** public abstract class DomNode *** 1390,1401 **** current = null; return ret; } ! public int getLength() { int retval = 0; NodeIterator iter = createIterator(); ! while (iter.nextNode() != null) { retval++; --- 1390,1401 ---- current = null; return ret; } ! public int getLength() { int retval = 0; NodeIterator iter = createIterator(); ! while (iter.nextNode() != null) { retval++; *************** public abstract class DomNode *** 1403,1409 **** iter.detach(); return retval; } ! } // --- 1403,1409 ---- iter.detach(); return retval; } ! } // *************** public abstract class DomNode *** 1411,1417 **** // static final class ListenerRecord { ! String type; EventListener listener; boolean useCapture; --- 1411,1417 ---- // static final class ListenerRecord { ! String type; EventListener listener; boolean useCapture; *************** public abstract class DomNode *** 1435,1444 **** && useCapture == rec.useCapture && type == rec.type; } ! public int hashCode() { ! return listener.hashCode() ^ type.hashCode(); } } --- 1435,1444 ---- && useCapture == rec.useCapture && type == rec.type; } ! public int hashCode() { ! return listener.hashCode() ^ type.hashCode(); } } *************** public abstract class DomNode *** 1456,1487 **** * of DomEvent and pass that to dispatchEvent(). * * @param eventType Identifies the particular DOM feature module ! * defining the type of event, such as "MutationEvents". ! * The event "name" is a different kind of "type". */ public Event createEvent(String eventType) { eventType = eventType.toLowerCase(); ! if ("mutationevents".equals(eventType)) { return new DomEvent.DomMutationEvent(null); } ! if ("htmlevents".equals(eventType) || "events".equals(eventType) || "user-events".equals(eventType)) { return new DomEvent(null); } ! if ("uievents".equals(eventType)) { return new DomEvent.DomUIEvent(null); } ! // mouse events ! throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, eventType, null, 0); } --- 1456,1487 ---- * of DomEvent and pass that to dispatchEvent(). * * @param eventType Identifies the particular DOM feature module ! * defining the type of event, such as "MutationEvents". ! * The event "name" is a different kind of "type". */ public Event createEvent(String eventType) { eventType = eventType.toLowerCase(); ! if ("mutationevents".equals(eventType)) { return new DomEvent.DomMutationEvent(null); } ! if ("htmlevents".equals(eventType) || "events".equals(eventType) || "user-events".equals(eventType)) { return new DomEvent(null); } ! if ("uievents".equals(eventType)) { return new DomEvent.DomUIEvent(null); } ! // mouse events ! throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, eventType, null, 0); } *************** public abstract class DomNode *** 1508,1519 **** static final class DomEventException extends EventException { ! DomEventException() { super(UNSPECIFIED_EVENT_TYPE_ERR, "unspecified event type"); } ! } /** --- 1508,1519 ---- static final class DomEventException extends EventException { ! DomEventException() { super(UNSPECIFIED_EVENT_TYPE_ERR, "unspecified event type"); } ! } /** *************** public abstract class DomNode *** 1527,1533 **** * * @exception NullPointerException When a null event is passed. * @exception ClassCastException When the event wasn't provided by ! * the createEvent method, or otherwise isn't a DomEvent. * @exception EventException If the event type wasn't specified */ public final boolean dispatchEvent(Event event) --- 1527,1533 ---- * * @exception NullPointerException When a null event is passed. * @exception ClassCastException When the event wasn't provided by ! * the createEvent method, or otherwise isn't a DomEvent. * @exception EventException If the event type wasn't specified */ public final boolean dispatchEvent(Event event) *************** public abstract class DomNode *** 1537,1543 **** DomNode[] ancestors = null; int ancestorMax = 0; boolean haveDispatchDataLock = false; ! if (e.type == null) { throw new DomEventException(); --- 1537,1543 ---- DomNode[] ancestors = null; int ancestorMax = 0; boolean haveDispatchDataLock = false; ! if (e.type == null) { throw new DomEventException(); *************** public abstract class DomNode *** 1545,1551 **** e.doDefault = true; e.target = this; ! // // Typical case: one nonrecursive dispatchEvent call at a time // for this class. If that's our case, we can avoid allocating --- 1545,1551 ---- e.doDefault = true; e.target = this; ! // // Typical case: one nonrecursive dispatchEvent call at a time // for this class. If that's our case, we can avoid allocating *************** public abstract class DomNode *** 1565,1571 **** boolean haveAncestorRegistrations = false; ListenerRecord[] notificationSet; int ancestorLen; ! synchronized (lockNode) { if (!dispatchDataLock) --- 1565,1571 ---- boolean haveAncestorRegistrations = false; ListenerRecord[] notificationSet; int ancestorLen; ! synchronized (lockNode) { if (!dispatchDataLock) *************** public abstract class DomNode *** 1581,1587 **** } ancestorLen = ancestors.length; } ! // Climb to the top of this subtree and handle capture, letting // each node (from the top down) capture until one stops it or // until we get to this one. --- 1581,1587 ---- } ancestorLen = ancestors.length; } ! // Climb to the top of this subtree and handle capture, letting // each node (from the top down) capture until one stops it or // until we get to this one. *************** public abstract class DomNode *** 1597,1603 **** { if (current == null || current.depth == 0) break; ! if (current.nListeners != 0) { haveAncestorRegistrations = true; --- 1597,1603 ---- { if (current == null || current.depth == 0) break; ! if (current.nListeners != 0) { haveAncestorRegistrations = true; *************** public abstract class DomNode *** 1609,1618 **** { throw new RuntimeException("dispatchEvent capture stack size"); } ! ancestorMax = index; e.stop = false; ! if (haveAncestorRegistrations) { e.eventPhase = Event.CAPTURING_PHASE; --- 1609,1618 ---- { throw new RuntimeException("dispatchEvent capture stack size"); } ! ancestorMax = index; e.stop = false; ! if (haveAncestorRegistrations) { e.eventPhase = Event.CAPTURING_PHASE; *************** public abstract class DomNode *** 1625,1631 **** } } } ! // Always deliver events to the target node (this) // unless stopPropagation was called. If we saw // no registrations yet (typical!), we never will. --- 1625,1631 ---- } } } ! // Always deliver events to the target node (this) // unless stopPropagation was called. If we saw // no registrations yet (typical!), we never will. *************** public abstract class DomNode *** 1638,1648 **** { e.stop = true; } ! // If the event bubbles and propagation wasn't halted, // walk back up the ancestor list. Stop bubbling when // any bubbled event handler stops it. ! if (!e.stop && e.bubbles) { e.eventPhase = Event.BUBBLING_PHASE; --- 1638,1648 ---- { e.stop = true; } ! // If the event bubbles and propagation wasn't halted, // walk back up the ancestor list. Stop bubbling when // any bubbled event handler stops it. ! if (!e.stop && e.bubbles) { e.eventPhase = Event.BUBBLING_PHASE; *************** public abstract class DomNode *** 1659,1669 **** } } e.eventPhase = 0; ! // Caller chooses whether to perform the default // action based on return from this method. return e.doDefault; ! } finally { --- 1659,1669 ---- } } e.eventPhase = 0; ! // Caller chooses whether to perform the default // action based on return from this method. return e.doDefault; ! } finally { *************** public abstract class DomNode *** 1678,1690 **** ancestors [i] = null; } // notificationSet handled by notifyNode ! dispatchDataLock = false; } } } } ! private void notifyNode(DomEvent e, DomNode current, boolean capture, --- 1678,1690 ---- ancestors [i] = null; } // notificationSet handled by notifyNode ! dispatchDataLock = false; } } } } ! private void notifyNode(DomEvent e, DomNode current, boolean capture, *************** public abstract class DomNode *** 1704,1710 **** { continue; } ! if (!e.type.equals (rec.type)) { continue; } --- 1704,1710 ---- { continue; } ! if (!e.type.equals (rec.type)) { continue; } *************** public abstract class DomNode *** 1722,1739 **** iter = null; // Notify just those listeners ! e.currentNode = current; for (int i = 0; i < count; i++) { try { ! iter = current.listeners.iterator(); // Late in the DOM CR process (3rd or 4th CR?) the // removeEventListener spec became asymmetric with respect // to addEventListener ... effect is now immediate. ! while (iter.hasNext()) { ! ListenerRecord rec = (ListenerRecord)iter.next(); if (rec.equals(notificationSet[i])) { --- 1722,1739 ---- iter = null; // Notify just those listeners ! e.currentNode = current; for (int i = 0; i < count; i++) { try { ! iter = current.listeners.iterator(); // Late in the DOM CR process (3rd or 4th CR?) the // removeEventListener spec became asymmetric with respect // to addEventListener ... effect is now immediate. ! while (iter.hasNext()) { ! ListenerRecord rec = (ListenerRecord)iter.next(); if (rec.equals(notificationSet[i])) { *************** public abstract class DomNode *** 1747,1753 **** { // ignore all exceptions } ! notificationSet[i] = null; // free for GC } } --- 1747,1753 ---- { // ignore all exceptions } ! notificationSet[i] = null; // free for GC } } *************** public abstract class DomNode *** 2074,2080 **** } if (ctx != null || argCtx != null) return false; ! // TODO DocumentType return true; } --- 2074,2080 ---- } if (ctx != null || argCtx != null) return false; ! // TODO DocumentType return true; } *************** public abstract class DomNode *** 2082,2090 **** boolean equal(String arg1, String arg2) { return ((arg1 == null && arg2 == null) || ! (arg1 != null && arg1.equals(arg2))); } ! public Object getFeature(String feature, String version) { DOMImplementation impl = (nodeType == DOCUMENT_NODE) ? --- 2082,2090 ---- boolean equal(String arg1, String arg2) { return ((arg1 == null && arg2 == null) || ! (arg1 != null && arg1.equals(arg2))); } ! public Object getFeature(String feature, String version) { DOMImplementation impl = (nodeType == DOCUMENT_NODE) ? *************** public abstract class DomNode *** 2145,2151 **** buf.append(']'); return buf.toString(); } ! String encode(String value) { CPStringBuilder buf = null; --- 2145,2151 ---- buf.append(']'); return buf.toString(); } ! String encode(String value) { CPStringBuilder buf = null; *************** public abstract class DomNode *** 2220,2223 **** } } - --- 2220,2222 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNodeIterator.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNodeIterator.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNodeIterator.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNodeIterator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomNodeIterator.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomNodeIterator.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomNodeIterator *** 140,146 **** current = (ret == null) ? current : ret; } while (!accept(ret)); ! return ret; } --- 140,146 ---- current = (ret == null) ? current : ret; } while (!accept(ret)); ! return ret; } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNotation.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNotation.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNotation.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNotation.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomNotation.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomNotation.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Notation; *** 56,69 **** * @see DomEntity * @see DomPI * ! * @author David Brownell * @author Chris Burdess */ public class DomNotation extends DomExtern implements Notation { ! /** * Constructs a Notation node associated with the specified document, * with the specified descriptive data. Note that at least one of --- 56,69 ---- * @see DomEntity * @see DomPI * ! * @author David Brownell * @author Chris Burdess */ public class DomNotation extends DomExtern implements Notation { ! /** * Constructs a Notation node associated with the specified document, * with the specified descriptive data. Note that at least one of *************** public class DomNotation *** 72,78 **** * *

            This constructor should only be invoked by a DomDoctype object * as part of its declareNotation functionality, or through a subclass ! * which is similarly used in a "Sub-DOM" style layer. * * @param owner The document with which this notation is associated * @param name Name of this notation --- 72,78 ---- * *

            This constructor should only be invoked by a DomDoctype object * as part of its declareNotation functionality, or through a subclass ! * which is similarly used in a "Sub-DOM" style layer. * * @param owner The document with which this notation is associated * @param name Name of this notation *************** public class DomNotation *** 87,93 **** super(NOTATION_NODE, owner, name, publicId, systemId); makeReadonly(); } ! /** * The base URI of an external entity is its system ID. * The base URI of an internal entity is the parent document's base URI. --- 87,93 ---- super(NOTATION_NODE, owner, name, publicId, systemId); makeReadonly(); } ! /** * The base URI of an external entity is its system ID. * The base URI of an internal entity is the parent document's base URI. *************** public class DomNotation *** 98,103 **** String systemId = getSystemId(); return (systemId == null) ? owner.getBaseURI() : systemId; } - - } --- 98,102 ---- String systemId = getSystemId(); return (systemId == null) ? owner.getBaseURI() : systemId; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNsNode.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNsNode.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomNsNode.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomNsNode.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomNsNode.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomNsNode.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.DOMException; *** 44,68 **** *

            Abstract implemention of namespace support. This facilitates * sharing code for attribute and element nodes. * ! * @author David Brownell * @author Chris Burdess */ public abstract class DomNsNode extends DomNode { ! private String name; private String namespace; private String prefix; private String localName; ! /** * Constructs a node associated with the specified document, and * with the specified namespace information. * * @param owner The document with which this entity is associated * @param namespaceURI Combined with the local part of the name, ! * this identifies a type of element or attribute; may be null. * If this is the empty string, it is reassigned as null so that * applications only need to test that case. * @param name Name of this node, which may include a prefix --- 44,68 ---- *

            Abstract implemention of namespace support. This facilitates * sharing code for attribute and element nodes. * ! * @author David Brownell * @author Chris Burdess */ public abstract class DomNsNode extends DomNode { ! private String name; private String namespace; private String prefix; private String localName; ! /** * Constructs a node associated with the specified document, and * with the specified namespace information. * * @param owner The document with which this entity is associated * @param namespaceURI Combined with the local part of the name, ! * this identifies a type of element or attribute; may be null. * If this is the empty string, it is reassigned as null so that * applications only need to test that case. * @param name Name of this node, which may include a prefix *************** public abstract class DomNsNode *** 84,90 **** * * @param owner The document with which this entity is associated * @param namespaceURI Combined with the local part of the name, ! * this identifies a type of element or attribute; may be null. * If this is the empty string, it is reassigned as null so that * applications only need to test that case. * @param name Name of this node, which may include a prefix --- 84,90 ---- * * @param owner The document with which this entity is associated * @param namespaceURI Combined with the local part of the name, ! * this identifies a type of element or attribute; may be null. * If this is the empty string, it is reassigned as null so that * applications only need to test that case. * @param name Name of this node, which may include a prefix *************** public abstract class DomNsNode *** 93,99 **** */ // package private DomNsNode(short nodeType, DomDocument owner, String namespaceURI, String name, ! String prefix, String localName) { super(nodeType, owner); this.name = name.intern(); --- 93,99 ---- */ // package private DomNsNode(short nodeType, DomDocument owner, String namespaceURI, String name, ! String prefix, String localName) { super(nodeType, owner); this.name = name.intern(); *************** public abstract class DomNsNode *** 126,132 **** localName = name.substring(index + 1).intern(); } } ! /** * DOM L2 * Returns the node's namespace URI --- 126,132 ---- localName = name.substring(index + 1).intern(); } } ! /** * DOM L2 * Returns the node's namespace URI *************** public abstract class DomNsNode *** 145,151 **** } namespace = (namespaceURI == null) ? null : namespaceURI.intern(); } ! /** * DOM L2 * Returns any prefix part of the node's name (before any colon). --- 145,151 ---- } namespace = (namespaceURI == null) ? null : namespaceURI.intern(); } ! /** * DOM L2 * Returns any prefix part of the node's name (before any colon). *************** public abstract class DomNsNode *** 222,227 **** { return localName; } - - } --- 222,226 ---- { return localName; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomProcessingInstruction.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomProcessingInstruction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomProcessingInstruction.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomProcessingInstruction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomProcessingInstruction.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomProcessingInstruction.java -- Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.ProcessingInstruction *** 55,78 **** * * @see DomNotation * ! * @author David Brownell * @author Chris Burdess */ public class DomProcessingInstruction extends DomNode implements ProcessingInstruction { ! private String target; private String data; ! /** * Constructs a ProcessingInstruction node associated with the * specified document, with the specified data. * *

            This constructor should only be invoked by a Document object as * part of its createProcessingInstruction functionality, or through ! * a subclass which is similarly used in a "Sub-DOM" style layer. */ protected DomProcessingInstruction(DomDocument owner, String target, String data) --- 55,78 ---- * * @see DomNotation * ! * @author David Brownell * @author Chris Burdess */ public class DomProcessingInstruction extends DomNode implements ProcessingInstruction { ! private String target; private String data; ! /** * Constructs a ProcessingInstruction node associated with the * specified document, with the specified data. * *

            This constructor should only be invoked by a Document object as * part of its createProcessingInstruction functionality, or through ! * a subclass which is similarly used in a "Sub-DOM" style layer. */ protected DomProcessingInstruction(DomDocument owner, String target, String data) *************** public class DomProcessingInstruction *** 129,135 **** { setNodeValue(data); } ! /** * DOM L1 * Assigns the data associated with the processing instruction. --- 129,135 ---- { setNodeValue(data); } ! /** * DOM L1 * Assigns the data associated with the processing instruction. *************** public class DomProcessingInstruction *** 142,147 **** } this.data = data; } - - } --- 142,146 ---- } this.data = data; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomText.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomText.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomText.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomText.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomText.java -- Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomText.java -- Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Text; *** 45,68 **** /** *

            "Text" implementation.

            * ! * @author David Brownell * @author Chris Burdess */ public class DomText extends DomCharacterData implements Text { ! // NOTE: deleted unused per-instance "isIgnorable" // support to reclaim its space. ! /** * Constructs a text node associated with the specified * document and holding the specified data. * *

            This constructor should only be invoked by a Document object * as part of its createTextNode functionality, or through a subclass ! * which is similarly used in a "Sub-DOM" style layer. */ protected DomText(DomDocument owner, String value) { --- 45,68 ---- /** *

            "Text" implementation.

            * ! * @author David Brownell * @author Chris Burdess */ public class DomText extends DomCharacterData implements Text { ! // NOTE: deleted unused per-instance "isIgnorable" // support to reclaim its space. ! /** * Constructs a text node associated with the specified * document and holding the specified data. * *

            This constructor should only be invoked by a Document object * as part of its createTextNode functionality, or through a subclass ! * which is similarly used in a "Sub-DOM" style layer. */ protected DomText(DomDocument owner, String value) { *************** public class DomText *** 112,118 **** String before = text.substring(0, offset); String after = text.substring(offset); Text next; ! if (getNodeType() == TEXT_NODE) { next = owner.createTextNode(after); --- 112,118 ---- String before = text.substring(0, offset); String after = text.substring(offset); Text next; ! if (getNodeType() == TEXT_NODE) { next = owner.createTextNode(after); *************** public class DomText *** 121,127 **** { next = owner.createCDATASection(after); } ! if (this.next != null) { parent.insertBefore(next, this.next); --- 121,127 ---- { next = owner.createCDATASection(after); } ! if (this.next != null) { parent.insertBefore(next, this.next); *************** public class DomText *** 132,147 **** } setNodeValue(before); return next; ! } catch (IndexOutOfBoundsException x) { throw new DomDOMException(DOMException.INDEX_SIZE_ERR); } } ! // DOM Level 3 ! public boolean isElementContentWhitespace() { if (parent != null) --- 132,147 ---- } setNodeValue(before); return next; ! } catch (IndexOutOfBoundsException x) { throw new DomDOMException(DOMException.INDEX_SIZE_ERR); } } ! // DOM Level 3 ! public boolean isElementContentWhitespace() { if (parent != null) *************** public class DomText *** 192,198 **** { setNodeValue(content); } ! DomNode ref = this; DomNode ctx; for (ctx = previous; ctx != null && --- 192,198 ---- { setNodeValue(content); } ! DomNode ref = this; DomNode ctx; for (ctx = previous; ctx != null && *************** public class DomText *** 218,222 **** } return (isEmpty) ? null : this; } ! } --- 218,222 ---- } return (isEmpty) ? null : this; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomXPathExpression.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomXPathExpression.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomXPathExpression.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomXPathExpression.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomXPathExpression.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomXPathExpression.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements org.w3c.dom.xpath.XPathExpres *** 73,85 **** { this.doc = doc; this.resolver = resolver; ! ! XPathFactory factory = XPathFactory.newInstance(); ! XPath xpath = factory.newXPath(); ! if (resolver != null) ! { ! xpath.setNamespaceContext(new DomNSResolverContext(resolver)); ! } try { this.expression = xpath.compile(expression); --- 73,85 ---- { this.doc = doc; this.resolver = resolver; ! ! XPathFactory factory = XPathFactory.newInstance(); ! XPath xpath = factory.newXPath(); ! if (resolver != null) ! { ! xpath.setNamespaceContext(new DomNSResolverContext(resolver)); ! } try { this.expression = xpath.compile(expression); *************** implements org.w3c.dom.xpath.XPathExpres *** 87,147 **** catch (XPathExpressionException e) { throw new XPathException(XPathException.INVALID_EXPRESSION_ERR, ! e.getMessage ()); } } public Object evaluate(Node contextNode, short type, Object result) throws XPathException, DOMException { ! try ! { ! QName typeName = null; ! switch (type) ! { ! case XPathResult.BOOLEAN_TYPE: ! typeName = XPathConstants.BOOLEAN; ! break; ! case XPathResult.NUMBER_TYPE: ! typeName = XPathConstants.NUMBER; ! break; ! case XPathResult.STRING_TYPE: ! typeName = XPathConstants.STRING; ! break; ! case XPathResult.ANY_UNORDERED_NODE_TYPE: ! case XPathResult.FIRST_ORDERED_NODE_TYPE: ! typeName = XPathConstants.NODE; ! break; ! case XPathResult.UNORDERED_NODE_ITERATOR_TYPE: ! case XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE: ! case XPathResult.ORDERED_NODE_ITERATOR_TYPE: ! case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE: ! typeName = XPathConstants.NODESET; ! break; ! default: ! throw new XPathException(XPathException.TYPE_ERR, null); ! } ! Object val = expression.evaluate(contextNode, typeName); ! switch (type) ! { ! case XPathResult.ORDERED_NODE_ITERATOR_TYPE: ! case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE: ! // Sort the nodes ! List ns = new ArrayList((Collection) val); ! Collections.sort(ns, new DocumentOrderComparator()); ! val = ns; ! } ! return new DomXPathResult(val, type); ! } ! catch (javax.xml.xpath.XPathException e) ! { ! throw new XPathException(XPathException.TYPE_ERR, e.getMessage()); ! } } public String toString () { return getClass ().getName () + "[expression=" + expression + "]"; } ! } --- 87,147 ---- catch (XPathExpressionException e) { throw new XPathException(XPathException.INVALID_EXPRESSION_ERR, ! e.getMessage ()); } } public Object evaluate(Node contextNode, short type, Object result) throws XPathException, DOMException { ! try ! { ! QName typeName = null; ! switch (type) ! { ! case XPathResult.BOOLEAN_TYPE: ! typeName = XPathConstants.BOOLEAN; ! break; ! case XPathResult.NUMBER_TYPE: ! typeName = XPathConstants.NUMBER; ! break; ! case XPathResult.STRING_TYPE: ! typeName = XPathConstants.STRING; ! break; ! case XPathResult.ANY_UNORDERED_NODE_TYPE: ! case XPathResult.FIRST_ORDERED_NODE_TYPE: ! typeName = XPathConstants.NODE; ! break; ! case XPathResult.UNORDERED_NODE_ITERATOR_TYPE: ! case XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE: ! case XPathResult.ORDERED_NODE_ITERATOR_TYPE: ! case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE: ! typeName = XPathConstants.NODESET; ! break; ! default: ! throw new XPathException(XPathException.TYPE_ERR, null); ! } ! Object val = expression.evaluate(contextNode, typeName); ! switch (type) ! { ! case XPathResult.ORDERED_NODE_ITERATOR_TYPE: ! case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE: ! // Sort the nodes ! List ns = new ArrayList((Collection) val); ! Collections.sort(ns, new DocumentOrderComparator()); ! val = ns; ! } ! return new DomXPathResult(val, type); ! } ! catch (javax.xml.xpath.XPathException e) ! { ! throw new XPathException(XPathException.TYPE_ERR, e.getMessage()); ! } } public String toString () { return getClass ().getName () + "[expression=" + expression + "]"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomXPathNSResolver.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomXPathNSResolver.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomXPathNSResolver.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomXPathNSResolver.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomXPathNSResolver.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomXPathNSResolver.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements XPathNSResolver *** 60,64 **** { return node.lookupNamespaceURI (prefix); } ! } --- 60,64 ---- { return node.lookupNamespaceURI (prefix); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomXPathResult.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomXPathResult.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/DomXPathResult.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/DomXPathResult.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomXPathResult.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomXPathResult.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ImplementationList.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ImplementationList.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ImplementationList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ImplementationList.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ImplementationList.java -- Copyright (C) 2004 Free Software Foundation, Inc.. This file is part of GNU Classpath. --- 1,4 ---- ! /* ImplementationList.java -- Copyright (C) 2004 Free Software Foundation, Inc.. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ImplementationSource.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ImplementationSource.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ImplementationSource.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ImplementationSource.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ImplementationSource.java -- Copyright (C) 2004 Free Software Foundation, Inc.. This file is part of GNU Classpath. --- 1,4 ---- ! /* ImplementationSource.java -- Copyright (C) 2004 Free Software Foundation, Inc.. This file is part of GNU Classpath. *************** public class ImplementationSource *** 72,78 **** } catch (Exception e) { ! // libxmlj not available } catch (UnsatisfiedLinkError e) { --- 72,78 ---- } catch (Exception e) { ! // libxmlj not available } catch (UnsatisfiedLinkError e) { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/JAXPFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/JAXPFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/JAXPFactory.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/JAXPFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JAXPFactory.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JAXPFactory.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.xml.parsers.SAXParserFactor *** 66,85 **** public final class JAXPFactory extends DocumentBuilderFactory { ! ! private static final String PROPERTY = "http://xml.org/sax/properties/"; ! private static final String FEATURE = "http://xml.org/sax/features/"; ! ! private SAXParserFactory pf; private boolean secureProcessing; ! /** * Default constructor. */ public JAXPFactory() { } ! /** * Constructs a JAXP document builder which uses the default * JAXP SAX2 parser and the DOM implementation in this package. --- 66,85 ---- public final class JAXPFactory extends DocumentBuilderFactory { ! ! private static final String PROPERTY = "http://xml.org/sax/properties/"; ! private static final String FEATURE = "http://xml.org/sax/features/"; ! ! private SAXParserFactory pf; private boolean secureProcessing; ! /** * Default constructor. */ public JAXPFactory() { } ! /** * Constructs a JAXP document builder which uses the default * JAXP SAX2 parser and the DOM implementation in this package. *************** public final class JAXPFactory *** 94,107 **** pf = new gnu.xml.aelfred2.JAXPFactory(); // pf = SAXParserFactory.newInstance (); } ! // JAXP default: false pf.setValidating(isValidating()); // FIXME: this namespace setup may cause errors in some // conformant SAX2 parsers, which we CAN patch up by // splicing a "NSFilter" stage up front ... ! // JAXP default: false pf.setNamespaceAware(isNamespaceAware()); --- 94,107 ---- pf = new gnu.xml.aelfred2.JAXPFactory(); // pf = SAXParserFactory.newInstance (); } ! // JAXP default: false pf.setValidating(isValidating()); // FIXME: this namespace setup may cause errors in some // conformant SAX2 parsers, which we CAN patch up by // splicing a "NSFilter" stage up front ... ! // JAXP default: false pf.setNamespaceAware(isNamespaceAware()); *************** public final class JAXPFactory *** 118,124 **** throw new ParserConfigurationException(msg); } } ! /** There seems to be no useful specification for attribute names */ public void setAttribute(String name, Object value) throws IllegalArgumentException --- 118,124 ---- throw new ParserConfigurationException(msg); } } ! /** There seems to be no useful specification for attribute names */ public void setAttribute(String name, Object value) throws IllegalArgumentException *************** public final class JAXPFactory *** 160,180 **** return secureProcessing; throw new ParserConfigurationException(name); } ! static final class JAXPBuilder extends DocumentBuilder implements ErrorHandler { ! private Consumer consumer; ! private XMLReader producer; ! private DomImpl impl; ! JAXPBuilder(XMLReader parser, JAXPFactory factory) throws ParserConfigurationException { impl = new DomImpl(); ! // set up consumer side try { --- 160,180 ---- return secureProcessing; throw new ParserConfigurationException(name); } ! static final class JAXPBuilder extends DocumentBuilder implements ErrorHandler { ! private Consumer consumer; ! private XMLReader producer; ! private DomImpl impl; ! JAXPBuilder(XMLReader parser, JAXPFactory factory) throws ParserConfigurationException { impl = new DomImpl(); ! // set up consumer side try { *************** public final class JAXPFactory *** 198,205 **** try { ! String id; ! // if validating, report validity errors, and default // to treating them as fatal if (factory.isValidating ()) --- 198,205 ---- try { ! String id; ! // if validating, report validity errors, and default // to treating them as fatal if (factory.isValidating ()) *************** public final class JAXPFactory *** 207,213 **** producer.setFeature(FEATURE + "validation", true); producer.setErrorHandler(this); } ! // always save prefix info, maybe do namespace processing producer.setFeature(FEATURE + "namespace-prefixes", true); producer.setFeature(FEATURE + "namespaces", --- 207,213 ---- producer.setFeature(FEATURE + "validation", true); producer.setErrorHandler(this); } ! // always save prefix info, maybe do namespace processing producer.setFeature(FEATURE + "namespace-prefixes", true); producer.setFeature(FEATURE + "namespaces", *************** public final class JAXPFactory *** 219,233 **** id = PROPERTY + "declaration-handler"; producer.setProperty(id, consumer.getProperty(id)); ! } catch (SAXException e) { throw new ParserConfigurationException(e.getMessage()); } } ! ! public Document parse(InputSource source) throws SAXException, IOException { producer.parse(source); --- 219,233 ---- id = PROPERTY + "declaration-handler"; producer.setProperty(id, consumer.getProperty(id)); ! } catch (SAXException e) { throw new ParserConfigurationException(e.getMessage()); } } ! ! public Document parse(InputSource source) throws SAXException, IOException { producer.parse(source); *************** public final class JAXPFactory *** 283,309 **** { return new DomDocument(); } ! // implementation of error handler that's used when validating public void fatalError(SAXParseException e) throws SAXException { throw e; } ! public void error(SAXParseException e) throws SAXException { throw e; } ! public void warning(SAXParseException e) throws SAXException { /* ignore */ } ! } } - --- 283,308 ---- { return new DomDocument(); } ! // implementation of error handler that's used when validating public void fatalError(SAXParseException e) throws SAXException { throw e; } ! public void error(SAXParseException e) throws SAXException { throw e; } ! public void warning(SAXParseException e) throws SAXException { /* ignore */ } ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLAnchorElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLAnchorElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLAnchorElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLAnchorElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLAnchorElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLAnchorElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLAnchorElement *** 64,70 **** { setHTMLAttribute("accesskey", accessKey); } ! public String getCharset() { return getHTMLAttribute("charset"); --- 64,70 ---- { setHTMLAttribute("accesskey", accessKey); } ! public String getCharset() { return getHTMLAttribute("charset"); *************** public class DomHTMLAnchorElement *** 74,80 **** { setHTMLAttribute("charset", charset); } ! public String getCoords() { return getHTMLAttribute("coords"); --- 74,80 ---- { setHTMLAttribute("charset", charset); } ! public String getCoords() { return getHTMLAttribute("coords"); *************** public class DomHTMLAnchorElement *** 84,90 **** { setHTMLAttribute("coords", coords); } ! public String getHref() { return getHTMLAttribute("href"); --- 84,90 ---- { setHTMLAttribute("coords", coords); } ! public String getHref() { return getHTMLAttribute("href"); *************** public class DomHTMLAnchorElement *** 94,100 **** { setHTMLAttribute("href", href); } ! public String getHreflang() { return getHTMLAttribute("hreflang"); --- 94,100 ---- { setHTMLAttribute("href", href); } ! public String getHreflang() { return getHTMLAttribute("hreflang"); *************** public class DomHTMLAnchorElement *** 104,110 **** { setHTMLAttribute("hreflang", hreflang); } ! public String getName() { return getHTMLAttribute("name"); --- 104,110 ---- { setHTMLAttribute("hreflang", hreflang); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLAnchorElement *** 114,120 **** { setHTMLAttribute("name", name); } ! public String getRel() { return getHTMLAttribute("rel"); --- 114,120 ---- { setHTMLAttribute("name", name); } ! public String getRel() { return getHTMLAttribute("rel"); *************** public class DomHTMLAnchorElement *** 124,130 **** { setHTMLAttribute("rel", rel); } ! public String getRev() { return getHTMLAttribute("rev"); --- 124,130 ---- { setHTMLAttribute("rel", rel); } ! public String getRev() { return getHTMLAttribute("rev"); *************** public class DomHTMLAnchorElement *** 134,140 **** { setHTMLAttribute("rev", rev); } ! public String getShape() { return getHTMLAttribute("shape"); --- 134,140 ---- { setHTMLAttribute("rev", rev); } ! public String getShape() { return getHTMLAttribute("shape"); *************** public class DomHTMLAnchorElement *** 144,150 **** { setHTMLAttribute("shape", shape); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); --- 144,150 ---- { setHTMLAttribute("shape", shape); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); *************** public class DomHTMLAnchorElement *** 154,160 **** { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getTarget() { return getHTMLAttribute("target"); --- 154,160 ---- { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getTarget() { return getHTMLAttribute("target"); *************** public class DomHTMLAnchorElement *** 164,170 **** { setHTMLAttribute("target", target); } ! public String getType() { return getHTMLAttribute("type"); --- 164,170 ---- { setHTMLAttribute("target", target); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLAnchorElement *** 184,189 **** { dispatchUIEvent("focus"); } - - } --- 184,188 ---- { dispatchUIEvent("focus"); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLAppletElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLAppletElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLAppletElement.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLAppletElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLAppletElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLAppletElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLAppletElement *** 64,70 **** { setHTMLAttribute("align", align); } ! public String getCls() { return getHTMLAttribute("class"); --- 64,70 ---- { setHTMLAttribute("align", align); } ! public String getCls() { return getHTMLAttribute("class"); *************** public class DomHTMLAppletElement *** 74,80 **** { setHTMLAttribute("class", cls); } ! public String getSrc() { return getHTMLAttribute("src"); --- 74,80 ---- { setHTMLAttribute("class", cls); } ! public String getSrc() { return getHTMLAttribute("src"); *************** public class DomHTMLAppletElement *** 84,90 **** { setHTMLAttribute("src", src); } ! public String getAlt() { return getHTMLAttribute("alt"); --- 84,90 ---- { setHTMLAttribute("src", src); } ! public String getAlt() { return getHTMLAttribute("alt"); *************** public class DomHTMLAppletElement *** 94,100 **** { setHTMLAttribute("alt", alt); } ! public String getArchive() { return getHTMLAttribute("archive"); --- 94,100 ---- { setHTMLAttribute("alt", alt); } ! public String getArchive() { return getHTMLAttribute("archive"); *************** public class DomHTMLAppletElement *** 104,110 **** { setHTMLAttribute("archive", archive); } ! public String getCode() { return getHTMLAttribute("code"); --- 104,110 ---- { setHTMLAttribute("archive", archive); } ! public String getCode() { return getHTMLAttribute("code"); *************** public class DomHTMLAppletElement *** 114,120 **** { setHTMLAttribute("code", code); } ! public String getCodeBase() { return getHTMLAttribute("codebase"); --- 114,120 ---- { setHTMLAttribute("code", code); } ! public String getCodeBase() { return getHTMLAttribute("codebase"); *************** public class DomHTMLAppletElement *** 124,130 **** { setHTMLAttribute("codebase", codeBase); } ! public String getHeight() { return getHTMLAttribute("height"); --- 124,130 ---- { setHTMLAttribute("codebase", codeBase); } ! public String getHeight() { return getHTMLAttribute("height"); *************** public class DomHTMLAppletElement *** 134,140 **** { setHTMLAttribute("height", height); } ! public int getHspace() { return getIntHTMLAttribute("hspace"); --- 134,140 ---- { setHTMLAttribute("height", height); } ! public int getHspace() { return getIntHTMLAttribute("hspace"); *************** public class DomHTMLAppletElement *** 144,150 **** { setIntHTMLAttribute("hspace", hspace); } ! public String getName() { return getHTMLAttribute("name"); --- 144,150 ---- { setIntHTMLAttribute("hspace", hspace); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLAppletElement *** 154,160 **** { setHTMLAttribute("name", name); } ! public String getObject() { return getHTMLAttribute("object"); --- 154,160 ---- { setHTMLAttribute("name", name); } ! public String getObject() { return getHTMLAttribute("object"); *************** public class DomHTMLAppletElement *** 164,170 **** { setHTMLAttribute("object", object); } ! public int getVspace() { return getIntHTMLAttribute("vspace"); --- 164,170 ---- { setHTMLAttribute("object", object); } ! public int getVspace() { return getIntHTMLAttribute("vspace"); *************** public class DomHTMLAppletElement *** 174,180 **** { setIntHTMLAttribute("vspace", vspace); } ! public String getWidth() { return getHTMLAttribute("width"); --- 174,180 ---- { setIntHTMLAttribute("vspace", vspace); } ! public String getWidth() { return getHTMLAttribute("width"); *************** public class DomHTMLAppletElement *** 185,188 **** setHTMLAttribute("width", width); } } - --- 185,187 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLAreaElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLAreaElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLAreaElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLAreaElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLAreaElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLAreaElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLAreaElement *** 64,70 **** { setHTMLAttribute("accesskey", accessKey); } ! public String getAlt() { return getHTMLAttribute("alt"); --- 64,70 ---- { setHTMLAttribute("accesskey", accessKey); } ! public String getAlt() { return getHTMLAttribute("alt"); *************** public class DomHTMLAreaElement *** 74,80 **** { setHTMLAttribute("alt", alt); } ! public String getCoords() { return getHTMLAttribute("coords"); --- 74,80 ---- { setHTMLAttribute("alt", alt); } ! public String getCoords() { return getHTMLAttribute("coords"); *************** public class DomHTMLAreaElement *** 84,90 **** { setHTMLAttribute("coords", coords); } ! public String getHref() { return getHTMLAttribute("href"); --- 84,90 ---- { setHTMLAttribute("coords", coords); } ! public String getHref() { return getHTMLAttribute("href"); *************** public class DomHTMLAreaElement *** 94,100 **** { setHTMLAttribute("href", href); } ! public boolean getNoHref() { return getBooleanHTMLAttribute("nohref"); --- 94,100 ---- { setHTMLAttribute("href", href); } ! public boolean getNoHref() { return getBooleanHTMLAttribute("nohref"); *************** public class DomHTMLAreaElement *** 104,110 **** { setBooleanHTMLAttribute("nohref", nohref); } ! public String getShape() { return getHTMLAttribute("shape"); --- 104,110 ---- { setBooleanHTMLAttribute("nohref", nohref); } ! public String getShape() { return getHTMLAttribute("shape"); *************** public class DomHTMLAreaElement *** 114,120 **** { setHTMLAttribute("shape", shape); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); --- 114,120 ---- { setHTMLAttribute("shape", shape); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); *************** public class DomHTMLAreaElement *** 124,130 **** { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getTarget() { return getHTMLAttribute("target"); --- 124,130 ---- { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getTarget() { return getHTMLAttribute("target"); *************** public class DomHTMLAreaElement *** 134,139 **** { setHTMLAttribute("target", target); } - - } --- 134,138 ---- { setHTMLAttribute("target", target); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLBRElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLBRElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLBRElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLBRElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLBRElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLBRElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLBRElement *** 64,69 **** { setHTMLAttribute("clear", clear); } - - } --- 64,68 ---- { setHTMLAttribute("clear", clear); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLBaseElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLBaseElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLBaseElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLBaseElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLBaseElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLBaseElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLBaseElement *** 64,70 **** { setHTMLAttribute("href", href); } ! public String getTarget() { return getHTMLAttribute("target"); --- 64,70 ---- { setHTMLAttribute("href", href); } ! public String getTarget() { return getHTMLAttribute("target"); *************** public class DomHTMLBaseElement *** 74,79 **** { setHTMLAttribute("target", target); } - - } --- 74,78 ---- { setHTMLAttribute("target", target); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLBaseFontElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLBaseFontElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLBaseFontElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLBaseFontElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLBaseFontElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLBaseFontElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLBaseFontElement *** 64,70 **** { setHTMLAttribute("color", color); } ! public String getFace() { return getHTMLAttribute("face"); --- 64,70 ---- { setHTMLAttribute("color", color); } ! public String getFace() { return getHTMLAttribute("face"); *************** public class DomHTMLBaseFontElement *** 74,80 **** { setHTMLAttribute("face", face); } ! public int getSize() { return getIntHTMLAttribute("size"); --- 74,80 ---- { setHTMLAttribute("face", face); } ! public int getSize() { return getIntHTMLAttribute("size"); *************** public class DomHTMLBaseFontElement *** 84,89 **** { setIntHTMLAttribute("size", size); } - - } --- 84,88 ---- { setIntHTMLAttribute("size", size); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLBodyElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLBodyElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLBodyElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLBodyElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLBodyElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLBodyElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLBodyElement *** 64,70 **** { setHTMLAttribute("alink", alink); } ! public String getBackground() { return getHTMLAttribute("background"); --- 64,70 ---- { setHTMLAttribute("alink", alink); } ! public String getBackground() { return getHTMLAttribute("background"); *************** public class DomHTMLBodyElement *** 74,80 **** { setHTMLAttribute("background", background); } ! public String getBgColor() { return getHTMLAttribute("bgcolor"); --- 74,80 ---- { setHTMLAttribute("background", background); } ! public String getBgColor() { return getHTMLAttribute("bgcolor"); *************** public class DomHTMLBodyElement *** 84,90 **** { setHTMLAttribute("bgcolor", bgcolor); } ! public String getLink() { return getHTMLAttribute("link"); --- 84,90 ---- { setHTMLAttribute("bgcolor", bgcolor); } ! public String getLink() { return getHTMLAttribute("link"); *************** public class DomHTMLBodyElement *** 94,100 **** { setHTMLAttribute("link", link); } ! public String getText() { return getHTMLAttribute("text"); --- 94,100 ---- { setHTMLAttribute("link", link); } ! public String getText() { return getHTMLAttribute("text"); *************** public class DomHTMLBodyElement *** 104,110 **** { setHTMLAttribute("text", text); } ! public String getVLink() { return getHTMLAttribute("vlink"); --- 104,110 ---- { setHTMLAttribute("text", text); } ! public String getVLink() { return getHTMLAttribute("vlink"); *************** public class DomHTMLBodyElement *** 114,119 **** { setHTMLAttribute("vlink", vlink); } - - } --- 114,118 ---- { setHTMLAttribute("vlink", vlink); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLButtonElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLButtonElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLButtonElement *** 70,76 **** { setHTMLAttribute("accesskey", accessKey); } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); --- 70,76 ---- { setHTMLAttribute("accesskey", accessKey); } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); *************** public class DomHTMLButtonElement *** 80,86 **** { setBooleanHTMLAttribute("disabled", disabled); } ! public String getName() { return getHTMLAttribute("name"); --- 80,86 ---- { setBooleanHTMLAttribute("disabled", disabled); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLButtonElement *** 90,96 **** { setHTMLAttribute("name", name); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); --- 90,96 ---- { setHTMLAttribute("name", name); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); *************** public class DomHTMLButtonElement *** 105,111 **** { return getHTMLAttribute("type"); } ! public String getValue() { return getHTMLAttribute("value"); --- 105,111 ---- { return getHTMLAttribute("type"); } ! public String getValue() { return getHTMLAttribute("value"); *************** public class DomHTMLButtonElement *** 115,120 **** { setHTMLAttribute("value", value); } - - } --- 115,119 ---- { setHTMLAttribute("value", value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLCollection.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLCollection.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class DomHTMLCollection *** 221,226 **** } return null; } - - } --- 221,225 ---- } return null; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLDListElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLDListElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLDListElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLDListElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLDListElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLDListElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLDListElement *** 64,69 **** { setBooleanHTMLAttribute("compact", compact); } - - } --- 64,68 ---- { setBooleanHTMLAttribute("compact", compact); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLDirectoryElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLDirectoryElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLDirectoryElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLDirectoryElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLDirectoryElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLDirectoryElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLDirectoryElement *** 64,69 **** { setBooleanHTMLAttribute("compact", compact); } - - } --- 64,68 ---- { setBooleanHTMLAttribute("compact", compact); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLDivElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLDivElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLDivElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLDivElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLDivElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLDivElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLDivElement *** 64,69 **** { setHTMLAttribute("align", align); } - - } --- 64,68 ---- { setHTMLAttribute("align", align); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLDocument.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLDocument.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLDocument.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLDocument.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLDocument.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLDocument.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLDocument *** 424,427 **** } } - --- 424,426 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class DomHTMLElement *** 242,248 **** { setHTMLAttribute("id", id); } ! public String getTitle() { return getHTMLAttribute("title"); --- 242,248 ---- { setHTMLAttribute("id", id); } ! public String getTitle() { return getHTMLAttribute("title"); *************** public abstract class DomHTMLElement *** 252,258 **** { setHTMLAttribute("title", title); } ! public String getLang() { return getHTMLAttribute("lang"); --- 252,258 ---- { setHTMLAttribute("title", title); } ! public String getLang() { return getHTMLAttribute("lang"); *************** public abstract class DomHTMLElement *** 262,268 **** { setHTMLAttribute("lang", lang); } ! public String getDir() { return getHTMLAttribute("dir"); --- 262,268 ---- { setHTMLAttribute("lang", lang); } ! public String getDir() { return getHTMLAttribute("dir"); *************** public abstract class DomHTMLElement *** 272,278 **** { setHTMLAttribute("dir", dir); } ! public String getClassName() { return getHTMLAttribute("class"); --- 272,278 ---- { setHTMLAttribute("dir", dir); } ! public String getClassName() { return getHTMLAttribute("class"); *************** public abstract class DomHTMLElement *** 282,287 **** { setHTMLAttribute("class", className); } - - } --- 282,286 ---- { setHTMLAttribute("class", className); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLEmbedElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLEmbedElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLEmbedElement.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLEmbedElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLEmbedElement.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLEmbedElement.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLEmbedElement *** 46,52 **** { super(owner, namespaceURI, name); } ! public String getJavaObject() { return getHTMLAttribute("java_object"); --- 46,52 ---- { super(owner, namespaceURI, name); } ! public String getJavaObject() { return getHTMLAttribute("java_object"); *************** public class DomHTMLEmbedElement *** 56,62 **** { setHTMLAttribute("java_object", object); } ! public String getJavaCodeBase() { return getHTMLAttribute("java_codebase"); --- 56,62 ---- { setHTMLAttribute("java_object", object); } ! public String getJavaCodeBase() { return getHTMLAttribute("java_codebase"); *************** public class DomHTMLEmbedElement *** 66,72 **** { setHTMLAttribute("java_codebase", codeBase); } ! public String getJavaArchive() { return getHTMLAttribute("java_archive"); --- 66,72 ---- { setHTMLAttribute("java_codebase", codeBase); } ! public String getJavaArchive() { return getHTMLAttribute("java_archive"); *************** public class DomHTMLEmbedElement *** 81,122 **** { setHTMLAttribute("java_code", code); } ! public String getJavaCode() { return getHTMLAttribute("java_code"); } ! public void setJavaType(String type) { setHTMLAttribute("java_type", type); } ! public String getJavaType() { return getHTMLAttribute("java_type"); } ! public void setType(String type) { setHTMLAttribute("type", type); } ! public String getType() { return getHTMLAttribute("type"); } ! public String getPluginsPage() { return getHTMLAttribute("pluginspage"); } ! public void setPluginsPage(String pluginspage) { setHTMLAttribute("pluginspage", pluginspage); } ! public String getMayscript() { return getHTMLAttribute("mayscript"); --- 81,122 ---- { setHTMLAttribute("java_code", code); } ! public String getJavaCode() { return getHTMLAttribute("java_code"); } ! public void setJavaType(String type) { setHTMLAttribute("java_type", type); } ! public String getJavaType() { return getHTMLAttribute("java_type"); } ! public void setType(String type) { setHTMLAttribute("type", type); } ! public String getType() { return getHTMLAttribute("type"); } ! public String getPluginsPage() { return getHTMLAttribute("pluginspage"); } ! public void setPluginsPage(String pluginspage) { setHTMLAttribute("pluginspage", pluginspage); } ! public String getMayscript() { return getHTMLAttribute("mayscript"); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFieldSetElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFieldSetElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFieldSetElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFieldSetElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLFieldSetElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLFieldSetElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLFieldSetElement *** 62,65 **** } } - --- 62,64 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFontElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFontElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFontElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFontElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLFontElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLFontElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLFontElement *** 64,70 **** { setHTMLAttribute("color", color); } ! public String getFace() { return getHTMLAttribute("face"); --- 64,70 ---- { setHTMLAttribute("color", color); } ! public String getFace() { return getHTMLAttribute("face"); *************** public class DomHTMLFontElement *** 74,80 **** { setHTMLAttribute("face", face); } ! public String getSize() { return getHTMLAttribute("size"); --- 74,80 ---- { setHTMLAttribute("face", face); } ! public String getSize() { return getHTMLAttribute("size"); *************** public class DomHTMLFontElement *** 84,89 **** { setHTMLAttribute("size", size); } - - } --- 84,88 ---- { setHTMLAttribute("size", size); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFormElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFormElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFormElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFormElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLFormElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLFormElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLFormElement *** 85,91 **** { setHTMLAttribute("name", name); } ! public String getAcceptCharset() { return getHTMLAttribute("accept-charset"); --- 85,91 ---- { setHTMLAttribute("name", name); } ! public String getAcceptCharset() { return getHTMLAttribute("accept-charset"); *************** public class DomHTMLFormElement *** 95,101 **** { setHTMLAttribute("accept-charset", acceptCharset); } ! public String getAction() { return getHTMLAttribute("action"); --- 95,101 ---- { setHTMLAttribute("accept-charset", acceptCharset); } ! public String getAction() { return getHTMLAttribute("action"); *************** public class DomHTMLFormElement *** 105,111 **** { setHTMLAttribute("action", action); } ! public String getEnctype() { return getHTMLAttribute("enctype"); --- 105,111 ---- { setHTMLAttribute("action", action); } ! public String getEnctype() { return getHTMLAttribute("enctype"); *************** public class DomHTMLFormElement *** 115,121 **** { setHTMLAttribute("enctype", enctype); } ! public String getMethod() { return getHTMLAttribute("method"); --- 115,121 ---- { setHTMLAttribute("enctype", enctype); } ! public String getMethod() { return getHTMLAttribute("method"); *************** public class DomHTMLFormElement *** 125,131 **** { setHTMLAttribute("method", method); } ! public String getTarget() { return getHTMLAttribute("target"); --- 125,131 ---- { setHTMLAttribute("method", method); } ! public String getTarget() { return getHTMLAttribute("target"); *************** public class DomHTMLFormElement *** 145,150 **** { dispatchUIEvent("reset"); } - - } --- 145,149 ---- { dispatchUIEvent("reset"); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFrameElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFrameElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFrameElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFrameElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLFrameElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLFrameElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLFrameElement *** 65,71 **** { setHTMLAttribute("frameborder", frameBorder); } ! public String getLongDesc() { return getHTMLAttribute("longdesc"); --- 65,71 ---- { setHTMLAttribute("frameborder", frameBorder); } ! public String getLongDesc() { return getHTMLAttribute("longdesc"); *************** public class DomHTMLFrameElement *** 75,81 **** { setHTMLAttribute("longdesc", longDesc); } ! public String getMarginHeight() { return getHTMLAttribute("marginheight"); --- 75,81 ---- { setHTMLAttribute("longdesc", longDesc); } ! public String getMarginHeight() { return getHTMLAttribute("marginheight"); *************** public class DomHTMLFrameElement *** 85,91 **** { setHTMLAttribute("marginheight", marginHeight); } ! public String getMarginWidth() { return getHTMLAttribute("marginwidth"); --- 85,91 ---- { setHTMLAttribute("marginheight", marginHeight); } ! public String getMarginWidth() { return getHTMLAttribute("marginwidth"); *************** public class DomHTMLFrameElement *** 95,101 **** { setHTMLAttribute("marginwidth", marginWidth); } ! public String getName() { return getHTMLAttribute("name"); --- 95,101 ---- { setHTMLAttribute("marginwidth", marginWidth); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLFrameElement *** 105,111 **** { setHTMLAttribute("name", name); } ! public boolean getNoResize() { return getBooleanHTMLAttribute("noresize"); --- 105,111 ---- { setHTMLAttribute("name", name); } ! public boolean getNoResize() { return getBooleanHTMLAttribute("noresize"); *************** public class DomHTMLFrameElement *** 115,121 **** { setBooleanHTMLAttribute("noresize", noResize); } ! public String getScrolling() { return getHTMLAttribute("scrolling"); --- 115,121 ---- { setBooleanHTMLAttribute("noresize", noResize); } ! public String getScrolling() { return getHTMLAttribute("scrolling"); *************** public class DomHTMLFrameElement *** 125,131 **** { setHTMLAttribute("scrolling", scrolling); } ! public String getSrc() { return getHTMLAttribute("src"); --- 125,131 ---- { setHTMLAttribute("scrolling", scrolling); } ! public String getSrc() { return getHTMLAttribute("src"); *************** public class DomHTMLFrameElement *** 141,146 **** // TODO getContentDocument return null; } - - } --- 141,145 ---- // TODO getContentDocument return null; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFrameSetElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFrameSetElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLFrameSetElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLFrameSetElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLFrameSetElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLFrameSetElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLFrameSetElement *** 64,70 **** { setHTMLAttribute("cols", cols); } ! public String getRows() { return getHTMLAttribute("rows"); --- 64,70 ---- { setHTMLAttribute("cols", cols); } ! public String getRows() { return getHTMLAttribute("rows"); *************** public class DomHTMLFrameSetElement *** 74,79 **** { setHTMLAttribute("rows", rows); } - - } --- 74,78 ---- { setHTMLAttribute("rows", rows); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLHRElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLHRElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLHRElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLHRElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLHRElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLHRElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLHRElement *** 64,70 **** { setHTMLAttribute("align", align); } ! public boolean getNoShade() { return getBooleanHTMLAttribute("noshade"); --- 64,70 ---- { setHTMLAttribute("align", align); } ! public boolean getNoShade() { return getBooleanHTMLAttribute("noshade"); *************** public class DomHTMLHRElement *** 74,80 **** { setBooleanHTMLAttribute("noshade", noShade); } ! public String getSize() { return getHTMLAttribute("size"); --- 74,80 ---- { setBooleanHTMLAttribute("noshade", noShade); } ! public String getSize() { return getHTMLAttribute("size"); *************** public class DomHTMLHRElement *** 84,90 **** { setHTMLAttribute("size", size); } ! public String getWidth() { return getHTMLAttribute("width"); --- 84,90 ---- { setHTMLAttribute("size", size); } ! public String getWidth() { return getHTMLAttribute("width"); *************** public class DomHTMLHRElement *** 94,99 **** { setHTMLAttribute("width", width); } - - } --- 94,98 ---- { setHTMLAttribute("width", width); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLHeadElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLHeadElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLHeadElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLHeadElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLHeadElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLHeadElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLHeadElement *** 64,69 **** { setHTMLAttribute("profile", profile); } - - } --- 64,68 ---- { setHTMLAttribute("profile", profile); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLHeadingElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLHeadingElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLHeadingElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLHeadingElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLHeadingElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLHeadingElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLHeadingElement *** 64,69 **** { setHTMLAttribute("align", align); } - - } --- 64,68 ---- { setHTMLAttribute("align", align); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLHtmlElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLHtmlElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLHtmlElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLHtmlElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLHtmlElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLHtmlElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLHtmlElement *** 64,69 **** { setHTMLAttribute("version", version); } - - } --- 64,68 ---- { setHTMLAttribute("version", version); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLIFrameElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLIFrameElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLIFrameElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLIFrameElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLIFrameElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLIFrameElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLIFrameElement *** 65,71 **** { setHTMLAttribute("align", align); } ! public String getFrameBorder() { return getHTMLAttribute("frameborder"); --- 65,71 ---- { setHTMLAttribute("align", align); } ! public String getFrameBorder() { return getHTMLAttribute("frameborder"); *************** public class DomHTMLIFrameElement *** 75,81 **** { setHTMLAttribute("frameborder", frameBorder); } ! public String getHeight() { return getHTMLAttribute("height"); --- 75,81 ---- { setHTMLAttribute("frameborder", frameBorder); } ! public String getHeight() { return getHTMLAttribute("height"); *************** public class DomHTMLIFrameElement *** 85,91 **** { setHTMLAttribute("height", height); } ! public String getLongDesc() { return getHTMLAttribute("longdesc"); --- 85,91 ---- { setHTMLAttribute("height", height); } ! public String getLongDesc() { return getHTMLAttribute("longdesc"); *************** public class DomHTMLIFrameElement *** 95,101 **** { setHTMLAttribute("longdesc", longDesc); } ! public String getMarginHeight() { return getHTMLAttribute("marginheight"); --- 95,101 ---- { setHTMLAttribute("longdesc", longDesc); } ! public String getMarginHeight() { return getHTMLAttribute("marginheight"); *************** public class DomHTMLIFrameElement *** 105,111 **** { setHTMLAttribute("marginheight", marginHeight); } ! public String getMarginWidth() { return getHTMLAttribute("marginwidth"); --- 105,111 ---- { setHTMLAttribute("marginheight", marginHeight); } ! public String getMarginWidth() { return getHTMLAttribute("marginwidth"); *************** public class DomHTMLIFrameElement *** 115,121 **** { setHTMLAttribute("marginwidth", marginWidth); } ! public String getName() { return getHTMLAttribute("name"); --- 115,121 ---- { setHTMLAttribute("marginwidth", marginWidth); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLIFrameElement *** 125,131 **** { setHTMLAttribute("name", name); } ! public String getScrolling() { return getHTMLAttribute("scrolling"); --- 125,131 ---- { setHTMLAttribute("name", name); } ! public String getScrolling() { return getHTMLAttribute("scrolling"); *************** public class DomHTMLIFrameElement *** 135,141 **** { setHTMLAttribute("scrolling", scrolling); } ! public String getSrc() { return getHTMLAttribute("src"); --- 135,141 ---- { setHTMLAttribute("scrolling", scrolling); } ! public String getSrc() { return getHTMLAttribute("src"); *************** public class DomHTMLIFrameElement *** 155,166 **** { setHTMLAttribute("width", width); } ! public Document getContentDocument() { // TODO getContentDocument return null; } - - } --- 155,165 ---- { setHTMLAttribute("width", width); } ! public Document getContentDocument() { // TODO getContentDocument return null; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLImageElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLImageElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLImageElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLImageElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLImageElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLImageElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLImageElement *** 64,70 **** { setHTMLAttribute("name", name); } ! public String getAlign() { return getHTMLAttribute("align"); --- 64,70 ---- { setHTMLAttribute("name", name); } ! public String getAlign() { return getHTMLAttribute("align"); *************** public class DomHTMLImageElement *** 74,80 **** { setHTMLAttribute("align", align); } ! public String getAlt() { return getHTMLAttribute("alt"); --- 74,80 ---- { setHTMLAttribute("align", align); } ! public String getAlt() { return getHTMLAttribute("alt"); *************** public class DomHTMLImageElement *** 84,90 **** { setHTMLAttribute("alt", alt); } ! public String getBorder() { return getHTMLAttribute("border"); --- 84,90 ---- { setHTMLAttribute("alt", alt); } ! public String getBorder() { return getHTMLAttribute("border"); *************** public class DomHTMLImageElement *** 94,100 **** { setHTMLAttribute("border", border); } ! public int getHeight() { return getIntHTMLAttribute("height"); --- 94,100 ---- { setHTMLAttribute("border", border); } ! public int getHeight() { return getIntHTMLAttribute("height"); *************** public class DomHTMLImageElement *** 104,110 **** { setIntHTMLAttribute("height", height); } ! public int getHspace() { return getIntHTMLAttribute("hspace"); --- 104,110 ---- { setIntHTMLAttribute("height", height); } ! public int getHspace() { return getIntHTMLAttribute("hspace"); *************** public class DomHTMLImageElement *** 114,120 **** { setIntHTMLAttribute("hspace", hspace); } ! public boolean getIsMap() { return getBooleanHTMLAttribute("ismap"); --- 114,120 ---- { setIntHTMLAttribute("hspace", hspace); } ! public boolean getIsMap() { return getBooleanHTMLAttribute("ismap"); *************** public class DomHTMLImageElement *** 124,130 **** { setBooleanHTMLAttribute("ismap", isMap); } ! public String getLongDesc() { return getHTMLAttribute("longdesc"); --- 124,130 ---- { setBooleanHTMLAttribute("ismap", isMap); } ! public String getLongDesc() { return getHTMLAttribute("longdesc"); *************** public class DomHTMLImageElement *** 134,140 **** { setHTMLAttribute("longdesc", longDesc); } ! public String getSrc() { return getHTMLAttribute("src"); --- 134,140 ---- { setHTMLAttribute("longdesc", longDesc); } ! public String getSrc() { return getHTMLAttribute("src"); *************** public class DomHTMLImageElement *** 154,160 **** { setHTMLAttribute("usemap", useMap); } ! public int getVspace() { return getIntHTMLAttribute("vspace"); --- 154,160 ---- { setHTMLAttribute("usemap", useMap); } ! public int getVspace() { return getIntHTMLAttribute("vspace"); *************** public class DomHTMLImageElement *** 164,170 **** { setIntHTMLAttribute("vspace", vspace); } ! public int getWidth() { return getIntHTMLAttribute("width"); --- 164,170 ---- { setIntHTMLAttribute("vspace", vspace); } ! public int getWidth() { return getIntHTMLAttribute("width"); *************** public class DomHTMLImageElement *** 174,179 **** { setIntHTMLAttribute("width", width); } - - } --- 174,178 ---- { setIntHTMLAttribute("width", width); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLImpl.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Document; *** 48,54 **** public class DomHTMLImpl extends DomImpl { ! protected Document createDocument() { return new DomHTMLDocument(this); --- 48,54 ---- public class DomHTMLImpl extends DomImpl { ! protected Document createDocument() { return new DomHTMLDocument(this); *************** public class DomHTMLImpl *** 64,67 **** } } - --- 64,66 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLInputElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLInputElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLInputElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLInputElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLInputElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLInputElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLInputElement *** 68,74 **** { setHTMLAttribute("value", defaultValue); } ! public boolean getDefaultChecked() { return getBooleanHTMLAttribute("checked"); --- 68,74 ---- { setHTMLAttribute("value", defaultValue); } ! public boolean getDefaultChecked() { return getBooleanHTMLAttribute("checked"); *************** public class DomHTMLInputElement *** 83,89 **** { return (HTMLFormElement) getParentElement("form"); } ! public String getAccept() { return getHTMLAttribute("accept"); --- 83,89 ---- { return (HTMLFormElement) getParentElement("form"); } ! public String getAccept() { return getHTMLAttribute("accept"); *************** public class DomHTMLInputElement *** 93,99 **** { setHTMLAttribute("accept", accept); } ! public String getAccessKey() { return getHTMLAttribute("accesskey"); --- 93,99 ---- { setHTMLAttribute("accept", accept); } ! public String getAccessKey() { return getHTMLAttribute("accesskey"); *************** public class DomHTMLInputElement *** 103,109 **** { setHTMLAttribute("accesskey", accessKey); } ! public String getAlign() { return getHTMLAttribute("align"); --- 103,109 ---- { setHTMLAttribute("accesskey", accessKey); } ! public String getAlign() { return getHTMLAttribute("align"); *************** public class DomHTMLInputElement *** 113,119 **** { setHTMLAttribute("align", align); } ! public String getAlt() { return getHTMLAttribute("alt"); --- 113,119 ---- { setHTMLAttribute("align", align); } ! public String getAlt() { return getHTMLAttribute("alt"); *************** public class DomHTMLInputElement *** 123,129 **** { setHTMLAttribute("alt", alt); } ! public boolean getChecked() { if (checked == null) --- 123,129 ---- { setHTMLAttribute("alt", alt); } ! public boolean getChecked() { if (checked == null) *************** public class DomHTMLInputElement *** 137,143 **** { this.checked = Boolean.valueOf(checked); } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); --- 137,143 ---- { this.checked = Boolean.valueOf(checked); } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); *************** public class DomHTMLInputElement *** 147,153 **** { setBooleanHTMLAttribute("disabled", disabled); } ! public int getMaxLength() { return getIntHTMLAttribute("maxLength"); --- 147,153 ---- { setBooleanHTMLAttribute("disabled", disabled); } ! public int getMaxLength() { return getIntHTMLAttribute("maxLength"); *************** public class DomHTMLInputElement *** 157,163 **** { setIntHTMLAttribute("maxLength", maxLength); } ! public String getName() { return getHTMLAttribute("name"); --- 157,163 ---- { setIntHTMLAttribute("maxLength", maxLength); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLInputElement *** 167,173 **** { setHTMLAttribute("name", name); } ! public boolean getReadOnly() { return getBooleanHTMLAttribute("readonly"); --- 167,173 ---- { setHTMLAttribute("name", name); } ! public boolean getReadOnly() { return getBooleanHTMLAttribute("readonly"); *************** public class DomHTMLInputElement *** 177,183 **** { setBooleanHTMLAttribute("readonly", readOnly); } ! public int getSize() { return getIntHTMLAttribute("size"); --- 177,183 ---- { setBooleanHTMLAttribute("readonly", readOnly); } ! public int getSize() { return getIntHTMLAttribute("size"); *************** public class DomHTMLInputElement *** 187,193 **** { setIntHTMLAttribute("size", size); } ! public String getSrc() { return getHTMLAttribute("src"); --- 187,193 ---- { setIntHTMLAttribute("size", size); } ! public String getSrc() { return getHTMLAttribute("src"); *************** public class DomHTMLInputElement *** 197,203 **** { setHTMLAttribute("src", src); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); --- 197,203 ---- { setHTMLAttribute("src", src); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); *************** public class DomHTMLInputElement *** 207,213 **** { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getType() { return getHTMLAttribute("type"); --- 207,213 ---- { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLInputElement *** 217,223 **** { setHTMLAttribute("type", type); } ! public String getUseMap() { return getHTMLAttribute("usemap"); --- 217,223 ---- { setHTMLAttribute("type", type); } ! public String getUseMap() { return getHTMLAttribute("usemap"); *************** public class DomHTMLInputElement *** 227,233 **** { setHTMLAttribute("usemap", useMap); } ! public String getValue() { if (value == null) --- 227,233 ---- { setHTMLAttribute("usemap", useMap); } ! public String getValue() { if (value == null) *************** public class DomHTMLInputElement *** 261,266 **** { dispatchUIEvent("click"); } - - } --- 261,265 ---- { dispatchUIEvent("click"); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLIsIndexElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLIsIndexElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLIsIndexElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLIsIndexElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLIsIndexElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLIsIndexElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLIsIndexElement *** 70,75 **** { setHTMLAttribute("prompt", prompt); } - - } --- 70,74 ---- { setHTMLAttribute("prompt", prompt); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLLIElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLLIElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLLIElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLLIElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLLIElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLLIElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLLIElement *** 64,70 **** { setHTMLAttribute("type", type); } ! public int getValue() { return getIntHTMLAttribute("value"); --- 64,70 ---- { setHTMLAttribute("type", type); } ! public int getValue() { return getIntHTMLAttribute("value"); *************** public class DomHTMLLIElement *** 74,79 **** { setIntHTMLAttribute("value", value); } - - } --- 74,78 ---- { setIntHTMLAttribute("value", value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLLabelElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLLabelElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLLabelElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLLabelElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLLabelElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLLabelElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLLabelElement *** 70,76 **** { setHTMLAttribute("accesskey", accessKey); } ! public String getHtmlFor() { return getHTMLAttribute("for"); --- 70,76 ---- { setHTMLAttribute("accesskey", accessKey); } ! public String getHtmlFor() { return getHTMLAttribute("for"); *************** public class DomHTMLLabelElement *** 80,85 **** { setHTMLAttribute("for", htmlFor); } - - } --- 80,84 ---- { setHTMLAttribute("for", htmlFor); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLLegendElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLLegendElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLLegendElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLLegendElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLLegendElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLLegendElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLLegendElement *** 70,76 **** { setHTMLAttribute("accesskey", accessKey); } ! public String getAlign() { return getHTMLAttribute("align"); --- 70,76 ---- { setHTMLAttribute("accesskey", accessKey); } ! public String getAlign() { return getHTMLAttribute("align"); *************** public class DomHTMLLegendElement *** 80,85 **** { setHTMLAttribute("align", align); } - - } --- 80,84 ---- { setHTMLAttribute("align", align); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLLinkElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLLinkElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLLinkElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLLinkElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLLinkElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLLinkElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLLinkElement *** 64,70 **** { setBooleanHTMLAttribute("disabled", disabled); } ! public String getCharset() { return getHTMLAttribute("charset"); --- 64,70 ---- { setBooleanHTMLAttribute("disabled", disabled); } ! public String getCharset() { return getHTMLAttribute("charset"); *************** public class DomHTMLLinkElement *** 74,80 **** { setHTMLAttribute("charset", charset); } ! public String getHref() { return getHTMLAttribute("href"); --- 74,80 ---- { setHTMLAttribute("charset", charset); } ! public String getHref() { return getHTMLAttribute("href"); *************** public class DomHTMLLinkElement *** 84,90 **** { setHTMLAttribute("href", href); } ! public String getHreflang() { return getHTMLAttribute("hreflang"); --- 84,90 ---- { setHTMLAttribute("href", href); } ! public String getHreflang() { return getHTMLAttribute("hreflang"); *************** public class DomHTMLLinkElement *** 94,100 **** { setHTMLAttribute("hreflang", hreflang); } ! public String getMedia() { return getHTMLAttribute("media"); --- 94,100 ---- { setHTMLAttribute("hreflang", hreflang); } ! public String getMedia() { return getHTMLAttribute("media"); *************** public class DomHTMLLinkElement *** 104,110 **** { setHTMLAttribute("media", media); } ! public String getRel() { return getHTMLAttribute("rel"); --- 104,110 ---- { setHTMLAttribute("media", media); } ! public String getRel() { return getHTMLAttribute("rel"); *************** public class DomHTMLLinkElement *** 114,120 **** { setHTMLAttribute("rel", rel); } ! public String getRev() { return getHTMLAttribute("rev"); --- 114,120 ---- { setHTMLAttribute("rel", rel); } ! public String getRev() { return getHTMLAttribute("rev"); *************** public class DomHTMLLinkElement *** 124,130 **** { setHTMLAttribute("rev", rev); } ! public String getTarget() { return getHTMLAttribute("target"); --- 124,130 ---- { setHTMLAttribute("rev", rev); } ! public String getTarget() { return getHTMLAttribute("target"); *************** public class DomHTMLLinkElement *** 134,140 **** { setHTMLAttribute("target", target); } ! public String getType() { return getHTMLAttribute("type"); --- 134,140 ---- { setHTMLAttribute("target", target); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLLinkElement *** 144,149 **** { setHTMLAttribute("type", type); } - - } --- 144,148 ---- { setHTMLAttribute("type", type); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLMapElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLMapElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLMapElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLMapElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLMapElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLMapElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLMapElement *** 64,70 **** ret.evaluate(); return ret; } ! public String getName() { return getHTMLAttribute("name"); --- 64,70 ---- ret.evaluate(); return ret; } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLMapElement *** 74,79 **** { setHTMLAttribute("name", name); } - - } --- 74,78 ---- { setHTMLAttribute("name", name); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLMenuElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLMenuElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLMenuElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLMenuElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLMenuElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLMenuElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLMenuElement *** 64,69 **** { setBooleanHTMLAttribute("compact", compact); } - - } --- 64,68 ---- { setBooleanHTMLAttribute("compact", compact); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLMetaElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLMetaElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLMetaElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLMetaElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLMetaElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLMetaElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLMetaElement *** 64,70 **** { setHTMLAttribute("content", content); } ! public String getHttpEquiv() { return getHTMLAttribute("http-equiv"); --- 64,70 ---- { setHTMLAttribute("content", content); } ! public String getHttpEquiv() { return getHTMLAttribute("http-equiv"); *************** public class DomHTMLMetaElement *** 74,80 **** { setHTMLAttribute("http-equiv", httpEquiv); } ! public String getName() { return getHTMLAttribute("name"); --- 74,80 ---- { setHTMLAttribute("http-equiv", httpEquiv); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLMetaElement *** 84,90 **** { setHTMLAttribute("name", name); } ! public String getScheme() { return getHTMLAttribute("scheme"); --- 84,90 ---- { setHTMLAttribute("name", name); } ! public String getScheme() { return getHTMLAttribute("scheme"); *************** public class DomHTMLMetaElement *** 94,99 **** { setHTMLAttribute("scheme", scheme); } - - } --- 94,98 ---- { setHTMLAttribute("scheme", scheme); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLModElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLModElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLModElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLModElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLModElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLModElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLModElement *** 64,70 **** { setHTMLAttribute("cite", cite); } ! public String getDateTime() { return getHTMLAttribute("datetime"); --- 64,70 ---- { setHTMLAttribute("cite", cite); } ! public String getDateTime() { return getHTMLAttribute("datetime"); *************** public class DomHTMLModElement *** 74,79 **** { setHTMLAttribute("datetime", dateTime); } - - } --- 74,78 ---- { setHTMLAttribute("datetime", dateTime); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLOListElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLOListElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLOListElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLOListElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLOListElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLOListElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLOListElement *** 64,70 **** { setBooleanHTMLAttribute("compact", compact); } ! public int getStart() { return getIntHTMLAttribute("start"); --- 64,70 ---- { setBooleanHTMLAttribute("compact", compact); } ! public int getStart() { return getIntHTMLAttribute("start"); *************** public class DomHTMLOListElement *** 74,80 **** { setIntHTMLAttribute("start", start); } ! public String getType() { return getHTMLAttribute("type"); --- 74,80 ---- { setIntHTMLAttribute("start", start); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLOListElement *** 84,89 **** { setHTMLAttribute("type", type); } - - } --- 84,88 ---- { setHTMLAttribute("type", type); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLObjectElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLObjectElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLObjectElement.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLObjectElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLObjectElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLObjectElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLObjectElement *** 71,77 **** { setHTMLAttribute("code", code); } ! public String getJavaCode() { return getHTMLAttribute("java_code"); --- 71,77 ---- { setHTMLAttribute("code", code); } ! public String getJavaCode() { return getHTMLAttribute("java_code"); *************** public class DomHTMLObjectElement *** 81,87 **** { setHTMLAttribute("java_code", code); } ! public String getObject() { return getHTMLAttribute("object"); --- 81,87 ---- { setHTMLAttribute("java_code", code); } ! public String getObject() { return getHTMLAttribute("object"); *************** public class DomHTMLObjectElement *** 91,97 **** { setHTMLAttribute("object", obj); } ! public String getJavaObject() { return getHTMLAttribute("java_object"); --- 91,97 ---- { setHTMLAttribute("object", obj); } ! public String getJavaObject() { return getHTMLAttribute("java_object"); *************** public class DomHTMLObjectElement *** 101,107 **** { setHTMLAttribute("java_object", obj); } ! public String getAlign() { return getHTMLAttribute("align"); --- 101,107 ---- { setHTMLAttribute("java_object", obj); } ! public String getAlign() { return getHTMLAttribute("align"); *************** public class DomHTMLObjectElement *** 111,117 **** { setHTMLAttribute("align", align); } ! public String getArchive() { return getHTMLAttribute("archive"); --- 111,117 ---- { setHTMLAttribute("align", align); } ! public String getArchive() { return getHTMLAttribute("archive"); *************** public class DomHTMLObjectElement *** 121,127 **** { setHTMLAttribute("archive", archive); } ! public String getJavaArchive() { return getHTMLAttribute("java_archive"); --- 121,127 ---- { setHTMLAttribute("archive", archive); } ! public String getJavaArchive() { return getHTMLAttribute("java_archive"); *************** public class DomHTMLObjectElement *** 131,137 **** { setHTMLAttribute("java_archive", archive); } ! public String getBorder() { return getHTMLAttribute("border"); --- 131,137 ---- { setHTMLAttribute("java_archive", archive); } ! public String getBorder() { return getHTMLAttribute("border"); *************** public class DomHTMLObjectElement *** 141,147 **** { setHTMLAttribute("border", border); } ! public String getCodeBase() { return getHTMLAttribute("codebase"); --- 141,147 ---- { setHTMLAttribute("border", border); } ! public String getCodeBase() { return getHTMLAttribute("codebase"); *************** public class DomHTMLObjectElement *** 151,157 **** { setHTMLAttribute("codebase", codeBase); } ! public String getJavaCodeBase() { return getHTMLAttribute("java_codebase"); --- 151,157 ---- { setHTMLAttribute("codebase", codeBase); } ! public String getJavaCodeBase() { return getHTMLAttribute("java_codebase"); *************** public class DomHTMLObjectElement *** 161,167 **** { setHTMLAttribute("java_codebase", codeBase); } ! public String getCodeType() { return getHTMLAttribute("codetype"); --- 161,167 ---- { setHTMLAttribute("java_codebase", codeBase); } ! public String getCodeType() { return getHTMLAttribute("codetype"); *************** public class DomHTMLObjectElement *** 171,177 **** { setHTMLAttribute("codetype", codeType); } ! public String getData() { return getHTMLAttribute("data"); --- 171,177 ---- { setHTMLAttribute("codetype", codeType); } ! public String getData() { return getHTMLAttribute("data"); *************** public class DomHTMLObjectElement *** 181,187 **** { setHTMLAttribute("data", data); } ! public boolean getDeclare() { return getBooleanHTMLAttribute("declare"); --- 181,187 ---- { setHTMLAttribute("data", data); } ! public boolean getDeclare() { return getBooleanHTMLAttribute("declare"); *************** public class DomHTMLObjectElement *** 191,197 **** { setBooleanHTMLAttribute("declare", declare); } ! public String getHeight() { return getHTMLAttribute("height"); --- 191,197 ---- { setBooleanHTMLAttribute("declare", declare); } ! public String getHeight() { return getHTMLAttribute("height"); *************** public class DomHTMLObjectElement *** 201,207 **** { setHTMLAttribute("height", height); } ! public int getHspace() { return getIntHTMLAttribute("hspace"); --- 201,207 ---- { setHTMLAttribute("height", height); } ! public int getHspace() { return getIntHTMLAttribute("hspace"); *************** public class DomHTMLObjectElement *** 211,217 **** { setIntHTMLAttribute("hspace", hspace); } ! public String getName() { return getHTMLAttribute("name"); --- 211,217 ---- { setIntHTMLAttribute("hspace", hspace); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLObjectElement *** 221,227 **** { setHTMLAttribute("name", name); } ! public String getStandby() { return getHTMLAttribute("standby"); --- 221,227 ---- { setHTMLAttribute("name", name); } ! public String getStandby() { return getHTMLAttribute("standby"); *************** public class DomHTMLObjectElement *** 231,237 **** { setHTMLAttribute("standby", standby); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); --- 231,237 ---- { setHTMLAttribute("standby", standby); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); *************** public class DomHTMLObjectElement *** 241,247 **** { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getType() { return getHTMLAttribute("type"); --- 241,247 ---- { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLObjectElement *** 251,257 **** { setHTMLAttribute("type", type); } ! public String getJavaType() { return getHTMLAttribute("java_type"); --- 251,257 ---- { setHTMLAttribute("type", type); } ! public String getJavaType() { return getHTMLAttribute("java_type"); *************** public class DomHTMLObjectElement *** 261,267 **** { setHTMLAttribute("java_type", type); } ! public String getUseMap() { return getHTMLAttribute("usemap"); --- 261,267 ---- { setHTMLAttribute("java_type", type); } ! public String getUseMap() { return getHTMLAttribute("usemap"); *************** public class DomHTMLObjectElement *** 271,277 **** { setHTMLAttribute("usemap", useMap); } ! public int getVspace() { return getIntHTMLAttribute("vspace"); --- 271,277 ---- { setHTMLAttribute("usemap", useMap); } ! public int getVspace() { return getIntHTMLAttribute("vspace"); *************** public class DomHTMLObjectElement *** 281,287 **** { setIntHTMLAttribute("vspace", vspace); } ! public String getWidth() { return getHTMLAttribute("width"); --- 281,287 ---- { setIntHTMLAttribute("vspace", vspace); } ! public String getWidth() { return getHTMLAttribute("width"); *************** public class DomHTMLObjectElement *** 297,321 **** // TODO getContentDocument return null; } ! public void setMayscript(String may) { setHTMLAttribute("mayscript", may); } ! public String getMayscript() { return getHTMLAttribute("mayscript"); } ! public void setScriptable(String scr) { setHTMLAttribute("scriptable", scr); } ! public String getScriptable() { return getHTMLAttribute("scriptable"); } } - --- 297,320 ---- // TODO getContentDocument return null; } ! public void setMayscript(String may) { setHTMLAttribute("mayscript", may); } ! public String getMayscript() { return getHTMLAttribute("mayscript"); } ! public void setScriptable(String scr) { setHTMLAttribute("scriptable", scr); } ! public String getScriptable() { return getHTMLAttribute("scriptable"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLOptGroupElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLOptGroupElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLOptGroupElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLOptGroupElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLOptGroupElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLOptGroupElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLOptGroupElement *** 74,79 **** { setHTMLAttribute("label", label); } - - } --- 74,78 ---- { setHTMLAttribute("label", label); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLOptionElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLOptionElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLOptionElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLOptionElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLOptionElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLOptionElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLOptionElement *** 82,88 **** { return super.getIndex(); } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); --- 82,88 ---- { return super.getIndex(); } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); *************** public class DomHTMLOptionElement *** 92,98 **** { setBooleanHTMLAttribute("disabled", disabled); } ! public String getLabel() { return getHTMLAttribute("label"); --- 92,98 ---- { setBooleanHTMLAttribute("disabled", disabled); } ! public String getLabel() { return getHTMLAttribute("label"); *************** public class DomHTMLOptionElement *** 102,108 **** { setHTMLAttribute("label", label); } ! public boolean getSelected() { if (selected == null) --- 102,108 ---- { setHTMLAttribute("label", label); } ! public boolean getSelected() { if (selected == null) *************** public class DomHTMLOptionElement *** 116,122 **** { this.selected = Boolean.valueOf(selected); } ! public String getValue() { return getHTMLAttribute("value"); --- 116,122 ---- { this.selected = Boolean.valueOf(selected); } ! public String getValue() { return getHTMLAttribute("value"); *************** public class DomHTMLOptionElement *** 126,131 **** { setHTMLAttribute("value", value); } - - } --- 126,130 ---- { setHTMLAttribute("value", value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLParagraphElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLParagraphElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLParagraphElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLParagraphElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLParagraphElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLParagraphElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLParagraphElement *** 64,69 **** { setHTMLAttribute("align", align); } - - } --- 64,68 ---- { setHTMLAttribute("align", align); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLParamElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLParamElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLParamElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLParamElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLParamElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLParamElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLParamElement *** 64,70 **** { setHTMLAttribute("name", name); } ! public String getType() { return getHTMLAttribute("type"); --- 64,70 ---- { setHTMLAttribute("name", name); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLParamElement *** 74,80 **** { setHTMLAttribute("type", type); } ! public String getValue() { return getHTMLAttribute("value"); --- 74,80 ---- { setHTMLAttribute("type", type); } ! public String getValue() { return getHTMLAttribute("value"); *************** public class DomHTMLParamElement *** 84,90 **** { setHTMLAttribute("value", value); } ! public String getValueType() { return getHTMLAttribute("valuetype"); --- 84,90 ---- { setHTMLAttribute("value", value); } ! public String getValueType() { return getHTMLAttribute("valuetype"); *************** public class DomHTMLParamElement *** 94,99 **** { setHTMLAttribute("valuetype", valueType); } - - } --- 94,98 ---- { setHTMLAttribute("valuetype", valueType); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java Tue Jan 11 19:46:05 2011 *************** import org.w3c.dom.html2.HTMLDocument; *** 60,70 **** * The tag attributes become the node attributes. The text inside * HTML tag is inserted as one or several text nodes. The nested * HTML tags are inserted as child nodes. ! * * If the strict tree structure, closing the tag means closing all * nested tags. To work around this, this parser closes the nested * tags and immediately reopens them after the closed tag. ! * In this way, <b><i>c</b>d * is parsed as <b><i>c</i></b><i>d . * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) --- 60,70 ---- * The tag attributes become the node attributes. The text inside * HTML tag is inserted as one or several text nodes. The nested * HTML tags are inserted as child nodes. ! * * If the strict tree structure, closing the tag means closing all * nested tags. To work around this, this parser closes the nested * tags and immediately reopens them after the closed tag. ! * In this way, <b><i>c</b>d * is parsed as <b><i>c</i></b><i>d . * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) *************** public class DomHTMLParser *** 124,132 **** document = new DomHTMLDocument(); document.setCheckWellformedness(false); document.setCheckingCharacters(false); ! cursor = document; ! parse(input); DomHTMLDocument h = document; --- 124,132 ---- document = new DomHTMLDocument(); document.setCheckWellformedness(false); document.setCheckingCharacters(false); ! cursor = document; ! parse(input); DomHTMLDocument h = document; *************** public class DomHTMLParser *** 139,145 **** throw new IOException("Exception: " + ex.getMessage()); } } ! /** * Create a new node. * @param name the name of node, case insensitive. --- 139,145 ---- throw new IOException("Exception: " + ex.getMessage()); } } ! /** * Create a new node. * @param name the name of node, case insensitive. *************** public class DomHTMLParser *** 165,177 **** natts.setNamedItem(attribute); } ! // The default values are stored in a parent node. hatts = hatts.getResolveParent(); } return new_node; } ! /** * Handle comment by inserting the comment node. * @param text the comment text. --- 165,177 ---- natts.setNamedItem(attribute); } ! // The default values are stored in a parent node. hatts = hatts.getResolveParent(); } return new_node; } ! /** * Handle comment by inserting the comment node. * @param text the comment text. *************** public class DomHTMLParser *** 181,187 **** Node c = document.createComment(new String(text)); cursor.appendChild(c); } ! /** * Handle the tag with no content. * @param tag the tag to handle. --- 181,187 ---- Node c = document.createComment(new String(text)); cursor.appendChild(c); } ! /** * Handle the tag with no content. * @param tag the tag to handle. *************** public class DomHTMLParser *** 196,202 **** Node c = createNode(name); cursor.appendChild(c); } ! /** * Close the given tag. Close and reopen all nested tags. * @param tag the tag to close. --- 196,202 ---- Node c = createNode(name); cursor.appendChild(c); } ! /** * Close the given tag. Close and reopen all nested tags. * @param tag the tag to close. *************** public class DomHTMLParser *** 229,235 **** else cursor = close.getParentNode(); ! // Insert the copies of the opened nodes. Iterator iter = open.iterator(); while (iter.hasNext()) { --- 229,235 ---- else cursor = close.getParentNode(); ! // Insert the copies of the opened nodes. Iterator iter = open.iterator(); while (iter.hasNext()) { *************** public class DomHTMLParser *** 251,257 **** cursor.appendChild(c); cursor = c; } ! /** * Handle text by inserting the text node. * @param text the text to insert. --- 251,257 ---- cursor.appendChild(c); cursor = c; } ! /** * Handle text by inserting the text node. * @param text the text to insert. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLPreElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLPreElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLPreElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLPreElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLPreElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLPreElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLPreElement *** 64,69 **** { setIntHTMLAttribute("width", width); } - - } --- 64,68 ---- { setIntHTMLAttribute("width", width); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLQuoteElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLQuoteElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLQuoteElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLQuoteElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLQuoteElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLQuoteElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLQuoteElement *** 64,69 **** { setHTMLAttribute("cite", cite); } - - } --- 64,68 ---- { setHTMLAttribute("cite", cite); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLScriptElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLScriptElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLScriptElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLScriptElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLScriptElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLScriptElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLScriptElement *** 124,129 **** { setHTMLAttribute("type", type); } - - } --- 124,128 ---- { setHTMLAttribute("type", type); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLSelectElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLSelectElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLSelectElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLSelectElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLSelectElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLSelectElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLSelectElement *** 60,66 **** { super(owner, namespaceURI, name); } ! public String getType() { return getHTMLAttribute("type"); --- 60,66 ---- { super(owner, namespaceURI, name); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLSelectElement *** 95,101 **** option.setSelected(i == selectedIndex); } } ! public String getValue() { return getHTMLAttribute("value"); --- 95,101 ---- option.setSelected(i == selectedIndex); } } ! public String getValue() { return getHTMLAttribute("value"); *************** public class DomHTMLSelectElement *** 105,111 **** { setHTMLAttribute("value", value); } ! public int getLength() { return getIntHTMLAttribute("length"); --- 105,111 ---- { setHTMLAttribute("value", value); } ! public int getLength() { return getIntHTMLAttribute("length"); *************** public class DomHTMLSelectElement *** 129,135 **** ret.evaluate(); return ret; } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); --- 129,135 ---- ret.evaluate(); return ret; } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); *************** public class DomHTMLSelectElement *** 139,145 **** { setBooleanHTMLAttribute("disabled", disabled); } ! public boolean getMultiple() { return getBooleanHTMLAttribute("multiple"); --- 139,145 ---- { setBooleanHTMLAttribute("disabled", disabled); } ! public boolean getMultiple() { return getBooleanHTMLAttribute("multiple"); *************** public class DomHTMLSelectElement *** 149,155 **** { setBooleanHTMLAttribute("multiple", multiple); } ! public String getName() { return getHTMLAttribute("name"); --- 149,155 ---- { setBooleanHTMLAttribute("multiple", multiple); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLSelectElement *** 159,165 **** { setHTMLAttribute("name", name); } ! public int getSize() { return getIntHTMLAttribute("size"); --- 159,165 ---- { setHTMLAttribute("name", name); } ! public int getSize() { return getIntHTMLAttribute("size"); *************** public class DomHTMLSelectElement *** 169,175 **** { setIntHTMLAttribute("size", size); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); --- 169,175 ---- { setIntHTMLAttribute("size", size); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); *************** public class DomHTMLSelectElement *** 206,211 **** { dispatchUIEvent("focus"); } - - } --- 206,210 ---- { dispatchUIEvent("focus"); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLStyleElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLStyleElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLStyleElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLStyleElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLStyleElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLStyleElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLStyleElement *** 64,70 **** { setBooleanHTMLAttribute("disabled", disabled); } ! public String getMedia() { return getHTMLAttribute("media"); --- 64,70 ---- { setBooleanHTMLAttribute("disabled", disabled); } ! public String getMedia() { return getHTMLAttribute("media"); *************** public class DomHTMLStyleElement *** 74,80 **** { setHTMLAttribute("media", media); } ! public String getType() { return getHTMLAttribute("type"); --- 74,80 ---- { setHTMLAttribute("media", media); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLStyleElement *** 84,89 **** { setHTMLAttribute("type", type); } - - } --- 84,88 ---- { setHTMLAttribute("type", type); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableCaptionElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableCaptionElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableCaptionElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableCaptionElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLTableCaptionElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLTableCaptionElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLTableCaptionElement *** 65,70 **** { setHTMLAttribute("align", align); } - - } --- 65,69 ---- { setHTMLAttribute("align", align); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableCellElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableCellElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableCellElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableCellElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLTableCellElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLTableCellElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLTableCellElement *** 70,76 **** { setHTMLAttribute("abbr", abbr); } ! public String getAlign() { return getHTMLAttribute("align"); --- 70,76 ---- { setHTMLAttribute("abbr", abbr); } ! public String getAlign() { return getHTMLAttribute("align"); *************** public class DomHTMLTableCellElement *** 80,86 **** { setHTMLAttribute("align", align); } ! public String getAxis() { return getHTMLAttribute("axis"); --- 80,86 ---- { setHTMLAttribute("align", align); } ! public String getAxis() { return getHTMLAttribute("axis"); *************** public class DomHTMLTableCellElement *** 90,96 **** { setHTMLAttribute("axis", axis); } ! public String getBgColor() { return getHTMLAttribute("bgcolor"); --- 90,96 ---- { setHTMLAttribute("axis", axis); } ! public String getBgColor() { return getHTMLAttribute("bgcolor"); *************** public class DomHTMLTableCellElement *** 100,106 **** { setHTMLAttribute("bgcolor", bgColor); } ! public String getCh() { return getHTMLAttribute("char"); --- 100,106 ---- { setHTMLAttribute("bgcolor", bgColor); } ! public String getCh() { return getHTMLAttribute("char"); *************** public class DomHTMLTableCellElement *** 110,116 **** { setHTMLAttribute("char", ch); } ! public String getChOff() { return getHTMLAttribute("charoff"); --- 110,116 ---- { setHTMLAttribute("char", ch); } ! public String getChOff() { return getHTMLAttribute("charoff"); *************** public class DomHTMLTableCellElement *** 120,126 **** { setHTMLAttribute("charoff", chOff); } ! public int getColSpan() { return getIntHTMLAttribute("colspan"); --- 120,126 ---- { setHTMLAttribute("charoff", chOff); } ! public int getColSpan() { return getIntHTMLAttribute("colspan"); *************** public class DomHTMLTableCellElement *** 130,136 **** { setIntHTMLAttribute("colspan", colSpan); } ! public String getHeaders() { return getHTMLAttribute("headers"); --- 130,136 ---- { setIntHTMLAttribute("colspan", colSpan); } ! public String getHeaders() { return getHTMLAttribute("headers"); *************** public class DomHTMLTableCellElement *** 140,146 **** { setHTMLAttribute("headers", headers); } ! public String getHeight() { return getHTMLAttribute("height"); --- 140,146 ---- { setHTMLAttribute("headers", headers); } ! public String getHeight() { return getHTMLAttribute("height"); *************** public class DomHTMLTableCellElement *** 150,156 **** { setHTMLAttribute("height", height); } ! public boolean getNoWrap() { return getBooleanHTMLAttribute("nowrap"); --- 150,156 ---- { setHTMLAttribute("height", height); } ! public boolean getNoWrap() { return getBooleanHTMLAttribute("nowrap"); *************** public class DomHTMLTableCellElement *** 160,166 **** { setBooleanHTMLAttribute("nowrap", noWrap); } ! public int getRowSpan() { return getIntHTMLAttribute("rowspan"); --- 160,166 ---- { setBooleanHTMLAttribute("nowrap", noWrap); } ! public int getRowSpan() { return getIntHTMLAttribute("rowspan"); *************** public class DomHTMLTableCellElement *** 170,176 **** { setIntHTMLAttribute("rowspan", rowSpan); } ! public String getScope() { return getHTMLAttribute("scope"); --- 170,176 ---- { setIntHTMLAttribute("rowspan", rowSpan); } ! public String getScope() { return getHTMLAttribute("scope"); *************** public class DomHTMLTableCellElement *** 180,186 **** { setHTMLAttribute("scope", scope); } ! public String getVAlign() { return getHTMLAttribute("valign"); --- 180,186 ---- { setHTMLAttribute("scope", scope); } ! public String getVAlign() { return getHTMLAttribute("valign"); *************** public class DomHTMLTableCellElement *** 190,196 **** { setHTMLAttribute("valign", vAlign); } ! public String getWidth() { return getHTMLAttribute("width"); --- 190,196 ---- { setHTMLAttribute("valign", vAlign); } ! public String getWidth() { return getHTMLAttribute("width"); *************** public class DomHTMLTableCellElement *** 200,205 **** { setHTMLAttribute("width", width); } - - } --- 200,204 ---- { setHTMLAttribute("width", width); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableColElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableColElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableColElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableColElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLTableColElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLTableColElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLTableColElement *** 65,71 **** { setHTMLAttribute("align", align); } ! public String getCh() { return getHTMLAttribute("char"); --- 65,71 ---- { setHTMLAttribute("align", align); } ! public String getCh() { return getHTMLAttribute("char"); *************** public class DomHTMLTableColElement *** 75,81 **** { setHTMLAttribute("char", ch); } ! public String getChOff() { return getHTMLAttribute("charoff"); --- 75,81 ---- { setHTMLAttribute("char", ch); } ! public String getChOff() { return getHTMLAttribute("charoff"); *************** public class DomHTMLTableColElement *** 85,91 **** { setHTMLAttribute("charoff", chOff); } ! public int getSpan() { return getIntHTMLAttribute("span"); --- 85,91 ---- { setHTMLAttribute("charoff", chOff); } ! public int getSpan() { return getIntHTMLAttribute("span"); *************** public class DomHTMLTableColElement *** 95,101 **** { setIntHTMLAttribute("span", span); } ! public String getVAlign() { return getHTMLAttribute("valign"); --- 95,101 ---- { setIntHTMLAttribute("span", span); } ! public String getVAlign() { return getHTMLAttribute("valign"); *************** public class DomHTMLTableColElement *** 105,111 **** { setHTMLAttribute("valign", vAlign); } ! public String getWidth() { return getHTMLAttribute("width"); --- 105,111 ---- { setHTMLAttribute("valign", vAlign); } ! public String getWidth() { return getHTMLAttribute("width"); *************** public class DomHTMLTableColElement *** 115,120 **** { setHTMLAttribute("width", width); } - - } --- 115,119 ---- { setHTMLAttribute("width", width); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLTableElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLTableElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLTableElement *** 79,85 **** replaceChild(caption, ref); } } ! public HTMLTableSectionElement getTHead() { return (HTMLTableSectionElement) getChildElement("thead"); --- 79,85 ---- replaceChild(caption, ref); } } ! public HTMLTableSectionElement getTHead() { return (HTMLTableSectionElement) getChildElement("thead"); *************** public class DomHTMLTableElement *** 133,139 **** ret.evaluate(); return ret; } ! public String getAlign() { return getHTMLAttribute("align"); --- 133,139 ---- ret.evaluate(); return ret; } ! public String getAlign() { return getHTMLAttribute("align"); *************** public class DomHTMLTableElement *** 143,149 **** { setHTMLAttribute("align", align); } ! public String getBgColor() { return getHTMLAttribute("bgcolor"); --- 143,149 ---- { setHTMLAttribute("align", align); } ! public String getBgColor() { return getHTMLAttribute("bgcolor"); *************** public class DomHTMLTableElement *** 153,159 **** { setHTMLAttribute("bgcolor", bgColor); } ! public String getBorder() { return getHTMLAttribute("border"); --- 153,159 ---- { setHTMLAttribute("bgcolor", bgColor); } ! public String getBorder() { return getHTMLAttribute("border"); *************** public class DomHTMLTableElement *** 163,169 **** { setHTMLAttribute("border", border); } ! public String getCellPadding() { return getHTMLAttribute("cellpadding"); --- 163,169 ---- { setHTMLAttribute("border", border); } ! public String getCellPadding() { return getHTMLAttribute("cellpadding"); *************** public class DomHTMLTableElement *** 173,179 **** { setHTMLAttribute("cellpadding", cellPadding); } ! public String getCellSpacing() { return getHTMLAttribute("cellspacing"); --- 173,179 ---- { setHTMLAttribute("cellpadding", cellPadding); } ! public String getCellSpacing() { return getHTMLAttribute("cellspacing"); *************** public class DomHTMLTableElement *** 183,189 **** { setHTMLAttribute("cellspacing", cellSpacing); } ! public String getFrame() { return getHTMLAttribute("frame"); --- 183,189 ---- { setHTMLAttribute("cellspacing", cellSpacing); } ! public String getFrame() { return getHTMLAttribute("frame"); *************** public class DomHTMLTableElement *** 193,199 **** { setHTMLAttribute("frame", frame); } ! public String getRules() { return getHTMLAttribute("rules"); --- 193,199 ---- { setHTMLAttribute("frame", frame); } ! public String getRules() { return getHTMLAttribute("rules"); *************** public class DomHTMLTableElement *** 203,209 **** { setHTMLAttribute("rules", rules); } ! public String getSummary() { return getHTMLAttribute("summary"); --- 203,209 ---- { setHTMLAttribute("rules", rules); } ! public String getSummary() { return getHTMLAttribute("summary"); *************** public class DomHTMLTableElement *** 213,219 **** { setHTMLAttribute("summary", summary); } ! public String getWidth() { return getHTMLAttribute("width"); --- 213,219 ---- { setHTMLAttribute("summary", summary); } ! public String getWidth() { return getHTMLAttribute("width"); *************** public class DomHTMLTableElement *** 320,328 **** } ref.getParentNode().removeChild(ref); } ! Node getRow(final int index) ! { int i = 0; Node thead = getChildElement("thead"); if (thead != null) --- 320,328 ---- } ref.getParentNode().removeChild(ref); } ! Node getRow(final int index) ! { int i = 0; Node thead = getChildElement("thead"); if (thead != null) *************** public class DomHTMLTableElement *** 395,398 **** } } - --- 395,397 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableRowElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableRowElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableRowElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableRowElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLTableRowElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLTableRowElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLTableRowElement *** 134,140 **** { setHTMLAttribute("align", align); } ! public String getBgColor() { return getHTMLAttribute("bgcolor"); --- 134,140 ---- { setHTMLAttribute("align", align); } ! public String getBgColor() { return getHTMLAttribute("bgcolor"); *************** public class DomHTMLTableRowElement *** 144,150 **** { setHTMLAttribute("bgcolor", bgColor); } ! public String getCh() { return getHTMLAttribute("char"); --- 144,150 ---- { setHTMLAttribute("bgcolor", bgColor); } ! public String getCh() { return getHTMLAttribute("char"); *************** public class DomHTMLTableRowElement *** 154,160 **** { setHTMLAttribute("char", ch); } ! public String getChOff() { return getHTMLAttribute("charoff"); --- 154,160 ---- { setHTMLAttribute("char", ch); } ! public String getChOff() { return getHTMLAttribute("charoff"); *************** public class DomHTMLTableRowElement *** 164,170 **** { setHTMLAttribute("charoff", chOff); } ! public String getVAlign() { return getHTMLAttribute("valign"); --- 164,170 ---- { setHTMLAttribute("charoff", chOff); } ! public String getVAlign() { return getHTMLAttribute("valign"); *************** public class DomHTMLTableRowElement *** 199,207 **** } removeChild(ref); } ! Node getCell(final int index) ! { int i = 0; for (Node ctx = getFirstChild(); ctx != null; ctx = ctx.getNextSibling()) --- 199,207 ---- } removeChild(ref); } ! Node getCell(final int index) ! { int i = 0; for (Node ctx = getFirstChild(); ctx != null; ctx = ctx.getNextSibling()) *************** public class DomHTMLTableRowElement *** 224,229 **** } return null; } - - } --- 224,228 ---- } return null; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableSectionElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableSectionElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableSectionElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTableSectionElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLTableSectionElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLTableSectionElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLTableSectionElement *** 70,76 **** { setHTMLAttribute("align", align); } ! public String getCh() { return getHTMLAttribute("char"); --- 70,76 ---- { setHTMLAttribute("align", align); } ! public String getCh() { return getHTMLAttribute("char"); *************** public class DomHTMLTableSectionElement *** 80,86 **** { setHTMLAttribute("char", ch); } ! public String getChOff() { return getHTMLAttribute("charoff"); --- 80,86 ---- { setHTMLAttribute("char", ch); } ! public String getChOff() { return getHTMLAttribute("charoff"); *************** public class DomHTMLTableSectionElement *** 90,96 **** { setHTMLAttribute("charoff", chOff); } ! public String getVAlign() { return getHTMLAttribute("valign"); --- 90,96 ---- { setHTMLAttribute("charoff", chOff); } ! public String getVAlign() { return getHTMLAttribute("valign"); *************** public class DomHTMLTableSectionElement *** 134,142 **** } removeChild(ref); } ! Node getRow(final int index) ! { int i = 0; for (Node ctx = getFirstChild(); ctx != null; ctx = ctx.getNextSibling()) --- 134,142 ---- } removeChild(ref); } ! Node getRow(final int index) ! { int i = 0; for (Node ctx = getFirstChild(); ctx != null; ctx = ctx.getNextSibling()) *************** public class DomHTMLTableSectionElement *** 158,163 **** } return null; } - - } --- 158,162 ---- } return null; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTextAreaElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTextAreaElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTextAreaElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTextAreaElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLTextAreaElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLTextAreaElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLTextAreaElement *** 73,79 **** { return (HTMLFormElement) getParentElement("form"); } ! public String getAccessKey() { return getHTMLAttribute("accesskey"); --- 73,79 ---- { return (HTMLFormElement) getParentElement("form"); } ! public String getAccessKey() { return getHTMLAttribute("accesskey"); *************** public class DomHTMLTextAreaElement *** 83,89 **** { setHTMLAttribute("accesskey", accessKey); } ! public int getCols() { return getIntHTMLAttribute("cols"); --- 83,89 ---- { setHTMLAttribute("accesskey", accessKey); } ! public int getCols() { return getIntHTMLAttribute("cols"); *************** public class DomHTMLTextAreaElement *** 93,99 **** { setIntHTMLAttribute("cols", cols); } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); --- 93,99 ---- { setIntHTMLAttribute("cols", cols); } ! public boolean getDisabled() { return getBooleanHTMLAttribute("disabled"); *************** public class DomHTMLTextAreaElement *** 103,109 **** { setBooleanHTMLAttribute("disabled", disabled); } ! public String getName() { return getHTMLAttribute("name"); --- 103,109 ---- { setBooleanHTMLAttribute("disabled", disabled); } ! public String getName() { return getHTMLAttribute("name"); *************** public class DomHTMLTextAreaElement *** 113,119 **** { setHTMLAttribute("name", name); } ! public boolean getReadOnly() { return getBooleanHTMLAttribute("readOnly"); --- 113,119 ---- { setHTMLAttribute("name", name); } ! public boolean getReadOnly() { return getBooleanHTMLAttribute("readOnly"); *************** public class DomHTMLTextAreaElement *** 123,129 **** { setBooleanHTMLAttribute("readonly", readOnly); } ! public int getRows() { return getIntHTMLAttribute("rows"); --- 123,129 ---- { setBooleanHTMLAttribute("readonly", readOnly); } ! public int getRows() { return getIntHTMLAttribute("rows"); *************** public class DomHTMLTextAreaElement *** 133,139 **** { setIntHTMLAttribute("rows", rows); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); --- 133,139 ---- { setIntHTMLAttribute("rows", rows); } ! public int getTabIndex() { return getIntHTMLAttribute("tabindex"); *************** public class DomHTMLTextAreaElement *** 143,149 **** { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getType() { return "textarea"; --- 143,149 ---- { setIntHTMLAttribute("tabindex", tabIndex); } ! public String getType() { return "textarea"; *************** public class DomHTMLTextAreaElement *** 172,182 **** { dispatchUIEvent("focus"); } ! public void select() { dispatchUIEvent("select"); } - - } --- 172,181 ---- { dispatchUIEvent("focus"); } ! public void select() { dispatchUIEvent("select"); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTitleElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTitleElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLTitleElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLTitleElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLTitleElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLTitleElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLTitleElement *** 64,69 **** { setTextContent(text); } - - } --- 64,68 ---- { setTextContent(text); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLUListElement.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLUListElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/html2/DomHTMLUListElement.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/html2/DomHTMLUListElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomHTMLUListElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomHTMLUListElement.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomHTMLUListElement *** 64,70 **** { setBooleanHTMLAttribute("compact", compact); } ! public String getType() { return getHTMLAttribute("type"); --- 64,70 ---- { setBooleanHTMLAttribute("compact", compact); } ! public String getType() { return getHTMLAttribute("type"); *************** public class DomHTMLUListElement *** 74,79 **** { setHTMLAttribute("type", type); } - - } --- 74,78 ---- { setHTMLAttribute("type", type); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSException.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSException.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomLSException.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomLSException.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSInput.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSInput.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSInput.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSInput.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomLSInput.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomLSInput.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomLSInput *** 155,160 **** { this.certifiedText = certifiedText; } - - } --- 155,159 ---- { this.certifiedText = certifiedText; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSOutput.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSOutput.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSOutput.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSOutput.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomLSOutput.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomLSOutput.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomLSOutput *** 94,98 **** { this.encoding = encoding; } ! } --- 94,98 ---- { this.encoding = encoding; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSParser.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSParser.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSParser.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSParser.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomLSParser.java -- Copyright (C) 1999,2000,2001,2007 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomLSParser.java -- Copyright (C) 1999,2000,2001,2007 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomLSParser *** 125,136 **** } // -- LSParser -- ! public DOMConfiguration getDomConfig() { return this; } ! public LSParserFilter getFilter() { return filter; --- 125,136 ---- } // -- LSParser -- ! public DOMConfiguration getDomConfig() { return this; } ! public LSParserFilter getFilter() { return filter; *************** public class DomLSParser *** 283,289 **** catch (SAXNotRecognizedException e) { // ignore ! } try { reader.setFeature("http://xml.org/sax/features/use-attributes2", --- 283,289 ---- catch (SAXNotRecognizedException e) { // ignore ! } try { reader.setFeature("http://xml.org/sax/features/use-attributes2", *************** public class DomLSParser *** 563,568 **** } abort(); } - - } --- 563,567 ---- } abort(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSSerializer.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSSerializer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/DomLSSerializer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/DomLSSerializer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomLSSerializer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomLSSerializer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DomLSSerializer *** 85,91 **** } // -- LSSerializer -- ! public DOMConfiguration getDomConfig() { return this; --- 85,91 ---- } // -- LSSerializer -- ! public DOMConfiguration getDomConfig() { return this; *************** public class DomLSSerializer *** 349,354 **** { return SUPPORTED_PARAMETERS.contains(str); } - - } --- 349,353 ---- { return SUPPORTED_PARAMETERS.contains(str); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/FilteredSAXEventSink.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/FilteredSAXEventSink.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/FilteredSAXEventSink.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/FilteredSAXEventSink.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FilteredSAXEventSink.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FilteredSAXEventSink.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class FilteredSAXEventSink *** 64,70 **** * Stack of elements to insert. */ LinkedList nodes; ! /** * Corresponding stack of filter decisions about the nodes. */ --- 64,70 ---- * Stack of elements to insert. */ LinkedList nodes; ! /** * Corresponding stack of filter decisions about the nodes. */ *************** class FilteredSAXEventSink *** 90,96 **** } nodes = new LinkedList(); decisions = new LinkedList(); ! super.startDocument(); } --- 90,96 ---- } nodes = new LinkedList(); decisions = new LinkedList(); ! super.startDocument(); } *************** class FilteredSAXEventSink *** 110,116 **** doc = null; break; } ! nodes = null; decisions = null; } --- 110,116 ---- doc = null; break; } ! nodes = null; decisions = null; } *************** class FilteredSAXEventSink *** 125,131 **** } Element element = createElement(uri, localName, qName, atts); ctx = element; ! short decision = getDecision(element, true); nodes.addLast(element); decisions.addLast(new Short(decision)); --- 125,131 ---- } Element element = createElement(uri, localName, qName, atts); ctx = element; ! short decision = getDecision(element, true); nodes.addLast(element); decisions.addLast(new Short(decision)); *************** class FilteredSAXEventSink *** 164,170 **** return; } super.endElement(uri, localName, qName); ! Element element = (Element) nodes.removeLast(); Node parent = nodes.isEmpty() ? doc : (Node) nodes.getLast(); ctx = parent; --- 164,170 ---- return; } super.endElement(uri, localName, qName); ! Element element = (Element) nodes.removeLast(); Node parent = nodes.isEmpty() ? doc : (Node) nodes.getLast(); ctx = parent; *************** class FilteredSAXEventSink *** 303,342 **** { case Node.ATTRIBUTE_NODE: show = ((whatToShow & NodeFilter.SHOW_ATTRIBUTE) != 0); ! break; case Node.TEXT_NODE: show = ((whatToShow & NodeFilter.SHOW_TEXT) != 0); ! break; case Node.CDATA_SECTION_NODE: show = ((whatToShow & NodeFilter.SHOW_CDATA_SECTION) != 0); ! break; case Node.ELEMENT_NODE: show = ((whatToShow & NodeFilter.SHOW_ELEMENT) != 0); ! break; case Node.COMMENT_NODE: show = ((whatToShow & NodeFilter.SHOW_COMMENT) != 0); ! break; case Node.DOCUMENT_NODE: show = ((whatToShow & NodeFilter.SHOW_DOCUMENT) != 0); ! break; case Node.PROCESSING_INSTRUCTION_NODE: show = ((whatToShow & NodeFilter.SHOW_PROCESSING_INSTRUCTION) != 0); ! break; case Node.DOCUMENT_FRAGMENT_NODE: show = ((whatToShow & NodeFilter.SHOW_DOCUMENT_FRAGMENT) != 0); ! break; case Node.DOCUMENT_TYPE_NODE: show = ((whatToShow & NodeFilter.SHOW_DOCUMENT_TYPE) != 0); ! break; case Node.ENTITY_REFERENCE_NODE: show = ((whatToShow & NodeFilter.SHOW_ENTITY_REFERENCE) != 0); ! break; case Node.ENTITY_NODE: show = ((whatToShow & NodeFilter.SHOW_ENTITY) != 0); ! break; case Node.NOTATION_NODE: show = ((whatToShow & NodeFilter.SHOW_NOTATION) != 0); ! break; } } if (!show) --- 303,342 ---- { case Node.ATTRIBUTE_NODE: show = ((whatToShow & NodeFilter.SHOW_ATTRIBUTE) != 0); ! break; case Node.TEXT_NODE: show = ((whatToShow & NodeFilter.SHOW_TEXT) != 0); ! break; case Node.CDATA_SECTION_NODE: show = ((whatToShow & NodeFilter.SHOW_CDATA_SECTION) != 0); ! break; case Node.ELEMENT_NODE: show = ((whatToShow & NodeFilter.SHOW_ELEMENT) != 0); ! break; case Node.COMMENT_NODE: show = ((whatToShow & NodeFilter.SHOW_COMMENT) != 0); ! break; case Node.DOCUMENT_NODE: show = ((whatToShow & NodeFilter.SHOW_DOCUMENT) != 0); ! break; case Node.PROCESSING_INSTRUCTION_NODE: show = ((whatToShow & NodeFilter.SHOW_PROCESSING_INSTRUCTION) != 0); ! break; case Node.DOCUMENT_FRAGMENT_NODE: show = ((whatToShow & NodeFilter.SHOW_DOCUMENT_FRAGMENT) != 0); ! break; case Node.DOCUMENT_TYPE_NODE: show = ((whatToShow & NodeFilter.SHOW_DOCUMENT_TYPE) != 0); ! break; case Node.ENTITY_REFERENCE_NODE: show = ((whatToShow & NodeFilter.SHOW_ENTITY_REFERENCE) != 0); ! break; case Node.ENTITY_NODE: show = ((whatToShow & NodeFilter.SHOW_ENTITY) != 0); ! break; case Node.NOTATION_NODE: show = ((whatToShow & NodeFilter.SHOW_NOTATION) != 0); ! break; } } if (!show) *************** class FilteredSAXEventSink *** 351,354 **** } } - --- 351,353 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/ReaderInputStream.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/ReaderInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/ReaderInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/ReaderInputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ReaderInputStream.java -- Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ReaderInputStream.java -- Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class ReaderInputStream *** 124,130 **** String s = new String(c, 0, l); byte[] d = s.getBytes(encoding); ! int available = d.length; int more = d.length - len; if (more > 0) --- 124,130 ---- String s = new String(c, 0, l); byte[] d = s.getBytes(encoding); ! int available = d.length; int more = d.length - len; if (more > 0) *************** public class ReaderInputStream *** 134,140 **** System.arraycopy(d, len, extra, 0, more); available -= more; } ! System.arraycopy(d, 0, b, off, available); return available; } --- 134,140 ---- System.arraycopy(d, len, extra, 0, more); available -= more; } ! System.arraycopy(d, 0, b, off, available); return available; } *************** public class ReaderInputStream *** 232,237 **** { return getClass().getName() + "[" + reader + ", " + encoding + "]"; } - - } --- 232,236 ---- { return getClass().getName() + "[" + reader + ", " + encoding + "]"; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SAXEventSink.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SAXEventSink.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SAXEventSink *** 96,102 **** boolean coalescing; XMLReader reader; // reference back to the parser to get features ! DomDocument doc; // document being constructed Node ctx; // current context (parent node) LinkedList entityCtx; // entity context --- 96,102 ---- boolean coalescing; XMLReader reader; // reference back to the parser to get features ! DomDocument doc; // document being constructed Node ctx; // current context (parent node) LinkedList entityCtx; // entity context *************** public class SAXEventSink *** 122,128 **** } // -- ContentHandler2 -- ! public void setDocumentLocator(Locator locator) { this.locator = locator; --- 122,128 ---- } // -- ContentHandler2 -- ! public void setDocumentLocator(Locator locator) { this.locator = locator; *************** public class SAXEventSink *** 378,384 **** } // -- LexicalHandler -- ! public void startDTD(String name, String publicId, String systemId) throws SAXException { --- 378,384 ---- } // -- LexicalHandler -- ! public void startDTD(String name, String publicId, String systemId) throws SAXException { *************** public class SAXEventSink *** 534,540 **** } // -- DeclHandler -- ! public void elementDecl(String name, String model) throws SAXException { --- 534,540 ---- } // -- DeclHandler -- ! public void elementDecl(String name, String model) throws SAXException { *************** public class SAXEventSink *** 599,604 **** DomDoctype doctype = (DomDoctype) ctx; Entity entity = doctype.declareEntity(name, publicId, systemId, null); } - - } --- 599,603 ---- DomDoctype doctype = (DomDoctype) ctx; Entity entity = doctype.declareEntity(name, publicId, systemId, null); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/WriterOutputStream.java gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/WriterOutputStream.java *** gcc-4.5.2/libjava/classpath/gnu/xml/dom/ls/WriterOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/dom/ls/WriterOutputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WriterOutputStream.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* WriterOutputStream.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class WriterOutputStream *** 93,98 **** { writer.flush(); } - - } --- 93,97 ---- { writer.flush(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeAttr.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeAttr.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GnomeAttr *** 59,89 **** { super(id); } ! public String getName() { return getNodeName(); } ! public native boolean getSpecified(); ! public native String getValue(); ! public native void setValue(String value) throws DOMException; ! public Node getParentNode() { return null; } ! public Element getOwnerElement() { return (Element) super.getParentNode(); } ! // DOM Level 3 methods ! public TypeInfo getSchemaTypeInfo() { return new GnomeTypeInfo(id); --- 59,89 ---- { super(id); } ! public String getName() { return getNodeName(); } ! public native boolean getSpecified(); ! public native String getValue(); ! public native void setValue(String value) throws DOMException; ! public Node getParentNode() { return null; } ! public Element getOwnerElement() { return (Element) super.getParentNode(); } ! // DOM Level 3 methods ! public TypeInfo getSchemaTypeInfo() { return new GnomeTypeInfo(id); *************** class GnomeAttr *** 100,106 **** element.userIdAttrs != null && element.userIdAttrs.contains(this)); } ! private native boolean xmljIsId(); public String toString() --- 100,106 ---- element.userIdAttrs != null && element.userIdAttrs.contains(this)); } ! private native boolean xmljIsId(); public String toString() *************** class GnomeAttr *** 113,118 **** buffer.append("]"); return buffer.toString(); } - - } --- 113,117 ---- buffer.append("]"); return buffer.toString(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCDATASection.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCDATASection.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCDATASection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCDATASection.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeCDATASection.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeCDATASection.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeCharacterData.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeCharacterData.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeComment.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeComment.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeComment.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeComment.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeComment.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeComment.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDOMException.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDOMException.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDOMException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDOMException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeDOMException.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeDOMException.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GnomeDOMException *** 94,98 **** return null; } } ! } --- 94,98 ---- return null; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDOMStringList.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDOMStringList.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDOMStringList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDOMStringList.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeDOMStringList.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeDOMStringList.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GnomeDOMStringList *** 80,84 **** } return false; } ! } --- 80,84 ---- } return false; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeDocument.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeDocument.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class GnomeDocument *** 102,119 **** boolean validate = false; boolean validateIfSchema = false; boolean wellFormed = true; ! GnomeDocument(Object id) { super(id); strictErrorChecking = true; } ! protected void finalize() { free(id); } ! private native void free(Object id); public native DocumentType getDoctype(); --- 102,119 ---- boolean validate = false; boolean validateIfSchema = false; boolean wellFormed = true; ! GnomeDocument(Object id) { super(id); strictErrorChecking = true; } ! protected void finalize() { free(id); } ! private native void free(Object id); public native DocumentType getDoctype(); *************** public class GnomeDocument *** 177,183 **** public native Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException; ! public native Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException; --- 177,183 ---- public native Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException; ! public native Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException; *************** public class GnomeDocument *** 211,217 **** } return element; } ! private native Element xmljGetElementById(String elementId); // DOM Level 3 methods --- 211,217 ---- } return element; } ! private native Element xmljGetElementById(String elementId); // DOM Level 3 methods *************** public class GnomeDocument *** 237,243 **** { this.strictErrorChecking = strictErrorChecking; } ! public native String getDocumentURI(); public native void setDocumentURI(String documentURI); --- 237,243 ---- { this.strictErrorChecking = strictErrorChecking; } ! public native String getDocumentURI(); public native void setDocumentURI(String documentURI); *************** public class GnomeDocument *** 410,423 **** else if ("infoset".equals(name)) { return Boolean.valueOf(!validateIfSchema && ! !entities && ! !datatypeNormalization && ! !cdataSections && ! namespaceDeclarations && ! wellFormed && ! elementContentWhitespace && ! comments && ! namespaces); } else if ("namespaces".equals(name)) { --- 410,423 ---- else if ("infoset".equals(name)) { return Boolean.valueOf(!validateIfSchema && ! !entities && ! !datatypeNormalization && ! !cdataSections && ! namespaceDeclarations && ! wellFormed && ! elementContentWhitespace && ! comments && ! namespaces); } else if ("namespaces".equals(name)) { *************** public class GnomeDocument *** 466,472 **** "namespace-declarations".equals(name) || "split-cdata-sections".equals(name)); } ! public DOMStringList getParameterNames() { String[] names = new String[] { --- 466,472 ---- "namespace-declarations".equals(name) || "split-cdata-sections".equals(name)); } ! public DOMStringList getParameterNames() { String[] names = new String[] { *************** public class GnomeDocument *** 547,553 **** } // -- Debugging -- ! public String toString() { CPStringBuilder buffer = new CPStringBuilder(getClass().getName()); --- 547,553 ---- } // -- Debugging -- ! public String toString() { CPStringBuilder buffer = new CPStringBuilder(getClass().getName()); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeDocumentBuilder.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeDocumentBuilder.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class GnomeDocumentBuilder *** 89,95 **** { this(true, false, false); } ! /** * Constructs a new document builder. * @param validate whether to validate during parsing --- 89,95 ---- { this(true, false, false); } ! /** * Constructs a new document builder. * @param validate whether to validate during parsing *************** public class GnomeDocumentBuilder *** 151,157 **** true, //entityResolver != null, errorHandler != null); } ! private native Document parseStream(InputStream in, byte[] detectBuffer, String publicId, --- 151,157 ---- true, //entityResolver != null, errorHandler != null); } ! private native Document parseStream(InputStream in, byte[] detectBuffer, String publicId, *************** public class GnomeDocumentBuilder *** 162,168 **** boolean expandEntities, boolean entityResolver, boolean errorHandler); ! public void setEntityResolver(EntityResolver resolver) { entityResolver = resolver; --- 162,168 ---- boolean expandEntities, boolean entityResolver, boolean errorHandler); ! public void setEntityResolver(EntityResolver resolver) { entityResolver = resolver; *************** public class GnomeDocumentBuilder *** 186,192 **** { name = name.substring(1); } ! if ("xml".equals(name) || "core".equals(name)) { return (version == null || --- 186,192 ---- { name = name.substring(1); } ! if ("xml".equals(name) || "core".equals(name)) { return (version == null || *************** public class GnomeDocumentBuilder *** 194,200 **** "1.0".equals(version) || "2.0".equals(version) || "3.0".equals(version)); ! } else if ("ls".equals(name) || "ls-async".equals(name)) { --- 194,200 ---- "1.0".equals(version) || "2.0".equals(version) || "3.0".equals(version)); ! } else if ("ls".equals(name) || "ls-async".equals(name)) { *************** public class GnomeDocumentBuilder *** 210,216 **** { return (version == null || "".equals(version) || ! "2.0".equals(version)); } else if ("xpath".equals(name)) { --- 210,216 ---- { return (version == null || "".equals(version) || ! "2.0".equals(version)); } else if ("xpath".equals(name)) { *************** public class GnomeDocumentBuilder *** 220,226 **** } return false; } ! // DOM Level 3 public Object getFeature(String feature, String version) --- 220,226 ---- } return false; } ! // DOM Level 3 public Object getFeature(String feature, String version) *************** public class GnomeDocumentBuilder *** 231,255 **** } return null; } ! public native Document createDocument(String namespaceURI, String qualifiedName, DocumentType doctype); ! public DocumentType createDocumentType(String qualifiedName, String publicId, String systemId) { return new StandaloneDocumentType(qualifiedName, publicId, systemId); } ! // Callback hooks from JNI ! private void setDocumentLocator(Object ctx, Object loc) { // ignore } ! private InputStream resolveEntity(String publicId, String systemId, String base) throws SAXException, IOException --- 231,255 ---- } return null; } ! public native Document createDocument(String namespaceURI, String qualifiedName, DocumentType doctype); ! public DocumentType createDocumentType(String qualifiedName, String publicId, String systemId) { return new StandaloneDocumentType(qualifiedName, publicId, systemId); } ! // Callback hooks from JNI ! private void setDocumentLocator(Object ctx, Object loc) { // ignore } ! private InputStream resolveEntity(String publicId, String systemId, String base) throws SAXException, IOException *************** public class GnomeDocumentBuilder *** 270,276 **** } return in; } ! private void warning(String message, int lineNumber, int columnNumber, --- 270,276 ---- } return in; } ! private void warning(String message, int lineNumber, int columnNumber, diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeDocumentBuilderFactory.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeDocumentBuilderFactory.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class GnomeDocumentBuilderFactory *** 93,99 **** { // TODO } ! public void setFeature(String name, boolean value) throws ParserConfigurationException { --- 93,99 ---- { // TODO } ! public void setFeature(String name, boolean value) throws ParserConfigurationException { *************** public class GnomeDocumentBuilderFactory *** 114,118 **** return secureProcessing; throw new ParserConfigurationException(name); } ! } --- 114,118 ---- return secureProcessing; throw new ParserConfigurationException(name); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentFragment.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentFragment.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentFragment.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentFragment.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeDocumentFragment.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeDocumentFragment.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeDocumentType.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeDocumentType.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements DocumentType *** 56,62 **** { super (id); } ! public String getName () { return getNodeName (); --- 56,62 ---- { super (id); } ! public String getName () { return getNodeName (); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeElement.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeElement.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GnomeElement *** 67,73 **** { super(id); } ! public String getTagName() { return getNodeName(); --- 67,73 ---- { super(id); } ! public String getTagName() { return getNodeName(); *************** class GnomeElement *** 77,83 **** public native void setAttribute(String name, String value) throws DOMException; ! public void removeAttribute(String name) throws DOMException { --- 77,83 ---- public native void setAttribute(String name, String value) throws DOMException; ! public void removeAttribute(String name) throws DOMException { *************** class GnomeElement *** 89,95 **** } public native Attr getAttributeNode(String name); ! public native Attr setAttributeNode(Attr newAttr) throws DOMException; --- 89,95 ---- } public native Attr getAttributeNode(String name); ! public native Attr setAttributeNode(Attr newAttr) throws DOMException; *************** class GnomeElement *** 97,105 **** throws DOMException; public native NodeList getElementsByTagName(String name); ! public native String getAttributeNS(String namespaceURI, String localName); ! public native void setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException; --- 97,105 ---- throws DOMException; public native NodeList getElementsByTagName(String name); ! public native String getAttributeNS(String namespaceURI, String localName); ! public native void setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException; *************** class GnomeElement *** 113,119 **** removeAttributeNode(attr); } } ! public native Attr getAttributeNodeNS(String namespaceURI, String localName); --- 113,119 ---- removeAttributeNode(attr); } } ! public native Attr getAttributeNodeNS(String namespaceURI, String localName); *************** class GnomeElement *** 122,128 **** public native NodeList getElementsByTagNameNS(String namespaceURI, String localName); ! public native boolean hasAttribute(String name); public native boolean hasAttributeNS(String namespaceURI, --- 122,128 ---- public native NodeList getElementsByTagNameNS(String namespaceURI, String localName); ! public native boolean hasAttribute(String name); public native boolean hasAttributeNS(String namespaceURI, diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeEntity.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeEntity.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements Entity *** 63,87 **** public native String getNotationName (); // DOM Level 3 methods ! public String getInputEncoding () { // TODO ! return null; } ! public String getXmlEncoding () { // TODO return null; } ! public String getXmlVersion () { // TODO return null; } ! public String toString () { String publicId = getPublicId (); --- 63,87 ---- public native String getNotationName (); // DOM Level 3 methods ! public String getInputEncoding () { // TODO ! return null; } ! public String getXmlEncoding () { // TODO return null; } ! public String getXmlVersion () { // TODO return null; } ! public String toString () { String publicId = getPublicId (); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntityReference.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntityReference.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntityReference.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntityReference.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeEntityReference.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeEntityReference.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeNamedNodeMap.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeNamedNodeMap.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements NamedNodeMap *** 78,84 **** throws DOMException; public native Node item (int index); ! public native int getLength (); public native Node getNamedItemNS (String namespaceURI, String localName); --- 78,84 ---- throws DOMException; public native Node item (int index); ! public native int getLength (); public native Node getNamedItemNS (String namespaceURI, String localName); *************** implements NamedNodeMap *** 88,92 **** public native Node removeNamedItemNS (String namespaceURI, String localName); ! } --- 88,92 ---- public native Node removeNamedItemNS (String namespaceURI, String localName); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeNode.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeNode.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GnomeNode *** 145,151 **** docNodes.put(node, nodeInstance); return nodeInstance; } ! /** * Frees the specified document. * This removes all its nodes from the cache. --- 145,151 ---- docNodes.put(node, nodeInstance); return nodeInstance; } ! /** * Frees the specified document. * This removes all its nodes from the cache. *************** class GnomeNode *** 159,165 **** instances.remove(doc); //System.out.println("Freed "+instances.remove(doc)); } ! /** * xmlNodePtr */ --- 159,165 ---- instances.remove(doc); //System.out.println("Freed "+instances.remove(doc)); } ! /** * xmlNodePtr */ *************** class GnomeNode *** 302,308 **** notifyUserDataHandlers(UserDataHandler.NODE_CLONED, this, ret); return ret; } ! private native Node xmljCloneNode(boolean deep); public native void normalize(); --- 302,308 ---- notifyUserDataHandlers(UserDataHandler.NODE_CLONED, this, ret); return ret; } ! private native Node xmljCloneNode(boolean deep); public native void normalize(); *************** class GnomeNode *** 359,365 **** } private native int xmljCompareTo(Object other); ! public String getTextContent() throws DOMException { --- 359,365 ---- } private native int xmljCompareTo(Object other); ! public String getTextContent() throws DOMException { *************** class GnomeNode *** 392,398 **** return null; } } ! public void setTextContent(String textContent) throws DOMException { --- 392,398 ---- return null; } } ! public void setTextContent(String textContent) throws DOMException { *************** class GnomeNode *** 427,446 **** break; } } ! public boolean isSameNode(Node other) { return equals(other); } ! public native String lookupPrefix(String namespaceURI); ! public native boolean isDefaultNamespace(String namespaceURI); ! public native String lookupNamespaceURI(String prefix); ! public native boolean isEqualNode(Node arg); ! public Object getFeature(String feature, String version) { return getOwnerDocument().getImplementation() --- 427,446 ---- break; } } ! public boolean isSameNode(Node other) { return equals(other); } ! public native String lookupPrefix(String namespaceURI); ! public native boolean isDefaultNamespace(String namespaceURI); ! public native String lookupNamespaceURI(String prefix); ! public native boolean isEqualNode(Node arg); ! public Object getFeature(String feature, String version) { return getOwnerDocument().getImplementation() diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNodeList.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNodeList.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNodeList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNodeList.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeNodeList.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeNodeList.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements NodeList *** 62,66 **** public native Node item (int index); public native int getLength (); ! } --- 62,66 ---- public native Node item (int index); public native int getLength (); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeNotation.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeNotation.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeProcessingInstruction.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeProcessingInstruction.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeText.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeText.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements Text *** 57,63 **** { super (id); } ! public Text splitText (int offset) throws DOMException { --- 57,63 ---- { super (id); } ! public Text splitText (int offset) throws DOMException { *************** implements Text *** 69,82 **** setNodeValue (part2); return text; } ! // DOM Level 3 public boolean isElementContentWhitespace () { return getTextContent ().trim ().length () == 0; } ! public String getWholeText () { Node first = this; --- 69,82 ---- setNodeValue (part2); return text; } ! // DOM Level 3 public boolean isElementContentWhitespace () { return getTextContent ().trim ().length () == 0; } ! public String getWholeText () { Node first = this; *************** implements Text *** 103,109 **** { setNodeValue (content); } ! Node first = this; Node node = getPreviousSibling (); while (node != null && node instanceof Text) --- 103,109 ---- { setNodeValue (content); } ! Node first = this; Node node = getPreviousSibling (); while (node != null && node instanceof Text) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeTypeInfo.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeTypeInfo.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeTypeInfo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeTypeInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeTypeInfo.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeTypeInfo.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GnomeTypeInfo implements TypeInfo *** 61,65 **** public native boolean isDerivedFrom (String typeNamespaceArg, String typeNameArg, int derivationMethod); ! } --- 61,65 ---- public native boolean isDerivedFrom (String typeNamespaceArg, String typeNameArg, int derivationMethod); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathExpression.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathExpression.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathExpression.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathExpression.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeXPathExpression.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeXPathExpression.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements XPathExpression *** 78,86 **** { return doEvaluate (expr, contextNode, type, result); } ! private native Object doEvaluate (Object expr, Node contextNode, short type, Object result) throws XPathException, DOMException; ! } --- 78,86 ---- { return doEvaluate (expr, contextNode, type, result); } ! private native Object doEvaluate (Object expr, Node contextNode, short type, Object result) throws XPathException, DOMException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeXPathNSResolver.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeXPathNSResolver.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GnomeXPathNSResolver *** 60,65 **** { return node.lookupNamespaceURI(prefix); } - - } --- 60,64 ---- { return node.lookupNamespaceURI(prefix); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeXPathNodeList.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeXPathNodeList.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeXPathResult.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeXPathResult.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements XPathResult *** 69,75 **** } private native void free (Object obj); ! public native short getResultType (); public native double getNumberValue () --- 69,75 ---- } private native void free (Object obj); ! public native short getResultType (); public native double getNumberValue () *************** implements XPathResult *** 130,134 **** getSnapshotLength () + ']'; } } ! } --- 130,134 ---- getSnapshotLength () + ']'; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/GnomeLocator.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/GnomeLocator.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/GnomeLocator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/GnomeLocator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeLocator.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeLocator.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements Locator *** 67,73 **** throw new NullPointerException ("loc"); } } ! public String getPublicId () { return publicId (ctx, loc); --- 67,73 ---- throw new NullPointerException ("loc"); } } ! public String getPublicId () { return publicId (ctx, loc); *************** implements Locator *** 86,99 **** { return lineNumber (ctx, loc); } ! private native int lineNumber (Object ctx, Object loc); public int getColumnNumber () { return columnNumber (ctx, loc); } ! private native int columnNumber (Object ctx, Object loc); } --- 86,99 ---- { return lineNumber (ctx, loc); } ! private native int lineNumber (Object ctx, Object loc); public int getColumnNumber () { return columnNumber (ctx, loc); } ! private native int columnNumber (Object ctx, Object loc); } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/GnomeSAXParser.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/GnomeSAXParser.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/GnomeSAXParser.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/GnomeSAXParser.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeSAXParser.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeSAXParser.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** extends SAXParser *** 101,105 **** { return validating; } ! } --- 101,105 ---- { return validating; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeSAXParserFactory.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeSAXParserFactory.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** extends SAXParserFactory *** 88,92 **** GnomeXMLReader.checkFeatureName (name); features.put (name, flag ? Boolean.TRUE : Boolean.FALSE); } ! } --- 88,92 ---- GnomeXMLReader.checkFeatureName (name); features.put (name, flag ? Boolean.TRUE : Boolean.FALSE); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/GnomeXMLReader.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/GnomeXMLReader.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/GnomeXMLReader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/GnomeXMLReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeXMLReader.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeXMLReader.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements XMLReader *** 83,89 **** private static final String FEATURES_PREFIX = "http://xml.org/sax/features/"; ! private static final List RECOGNIZED_FEATURES = Arrays.asList (new String[] { --- 83,89 ---- private static final String FEATURES_PREFIX = "http://xml.org/sax/features/"; ! private static final List RECOGNIZED_FEATURES = Arrays.asList (new String[] { *************** implements XMLReader *** 100,109 **** "use-entity-resolver2", "validation" }); ! private static final String PROPERTIES_PREFIX = "http://xml.org/sax/properties/"; ! private static final List RECOGNIZED_PROPERTIES = Arrays.asList (new String[] { --- 100,109 ---- "use-entity-resolver2", "validation" }); ! private static final String PROPERTIES_PREFIX = "http://xml.org/sax/properties/"; ! private static final List RECOGNIZED_PROPERTIES = Arrays.asList (new String[] { *************** implements XMLReader *** 671,677 **** { } } ! private void startDocument (boolean standalone) throws SAXException { --- 671,677 ---- { } } ! private void startDocument (boolean standalone) throws SAXException { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/Namespaces.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/Namespaces.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/Namespaces.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/Namespaces.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Namespaces.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Namespaces.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Iterator; *** 44,57 **** /** * Helper class for managing namespaces. ! * * @author Chris Burdess */ class Namespaces { ArrayList stack = new ArrayList (); ! /** * Increments the tree depth. * This allocates a new potential namespace entry. --- 44,57 ---- /** * Helper class for managing namespaces. ! * * @author Chris Burdess */ class Namespaces { ArrayList stack = new ArrayList (); ! /** * Increments the tree depth. * This allocates a new potential namespace entry. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/StringArrayAttributes.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/StringArrayAttributes.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/StringArrayAttributes.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/StringArrayAttributes.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StringArrayAttributes.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StringArrayAttributes.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements Attributes *** 168,171 **** } } - --- 168,170 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/XMLName.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/XMLName.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/sax/XMLName.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/sax/XMLName.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLName.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLName.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class XMLName *** 46,52 **** { private static final String XML_URI = "http://www.w3.org/XML/1998/namespace"; ! final String uri; final String localName; final String qName; --- 46,52 ---- { private static final String XML_URI = "http://www.w3.org/XML/1998/namespace"; ! final String uri; final String localName; final String qName; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ErrorListenerErrorHandler.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ErrorListenerErrorHandler.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements ErrorHandler *** 71,77 **** throw getSAXException (te); } } ! public void error (SAXParseException e) throws SAXException { --- 71,77 ---- throw getSAXException (te); } } ! public void error (SAXParseException e) throws SAXException { *************** implements ErrorHandler *** 84,90 **** throw getSAXException (te); } } ! public void fatalError (SAXParseException e) throws SAXException { --- 84,90 ---- throw getSAXException (te); } } ! public void fatalError (SAXParseException e) throws SAXException { *************** implements ErrorHandler *** 107,111 **** } return new SAXException (e); } ! } --- 107,111 ---- } return new SAXException (e); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/transform/GnomeTransformer.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/transform/GnomeTransformer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/transform/GnomeTransformer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/transform/GnomeTransformer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeTransformer.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeTransformer.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class GnomeTransformer *** 120,138 **** * @param errorListener the error listener for transformation errors */ GnomeTransformer (Source source, ! URIResolver resolver, ! ErrorListener errorListener) throws TransformerConfigurationException { this.resolver = resolver; this.errorListener = errorListener; parameters = new HashMap (); outputProperties = new Properties (); ! if (source == null) { stylesheet = newStylesheet (); ! } else if (source instanceof StreamSource) { try --- 120,138 ---- * @param errorListener the error listener for transformation errors */ GnomeTransformer (Source source, ! URIResolver resolver, ! ErrorListener errorListener) throws TransformerConfigurationException { this.resolver = resolver; this.errorListener = errorListener; parameters = new HashMap (); outputProperties = new Properties (); ! if (source == null) { stylesheet = newStylesheet (); ! } else if (source instanceof StreamSource) { try *************** public class GnomeTransformer *** 176,187 **** throw new TransformerConfigurationException (msg); } } ! /** * Copy constructor. */ private GnomeTransformer (Object stylesheet, ! URIResolver resolver, ErrorListener errorListener, Map parameters, Properties outputProperties) --- 176,187 ---- throw new TransformerConfigurationException (msg); } } ! /** * Copy constructor. */ private GnomeTransformer (Object stylesheet, ! URIResolver resolver, ErrorListener errorListener, Map parameters, Properties outputProperties) *************** public class GnomeTransformer *** 215,221 **** public synchronized void setParameter (String parameter, Object value) { parameters.put (parameter, value); ! } public synchronized Object getParameter (String name) { --- 215,221 ---- public synchronized void setParameter (String parameter, Object value) { parameters.put (parameter, value); ! } public synchronized Object getParameter (String name) { *************** public class GnomeTransformer *** 232,238 **** public void setErrorListener (ErrorListener listener) { this.errorListener = listener; ! } public ErrorListener getErrorListener () { --- 232,238 ---- public void setErrorListener (ErrorListener listener) { this.errorListener = listener; ! } public ErrorListener getErrorListener () { *************** public class GnomeTransformer *** 244,250 **** public void setURIResolver (URIResolver resolver) { this.resolver = resolver; ! } public URIResolver getURIResolver () { --- 244,250 ---- public void setURIResolver (URIResolver resolver) { this.resolver = resolver; ! } public URIResolver getURIResolver () { *************** public class GnomeTransformer *** 259,270 **** { // Note: defensive copying this.outputProperties = new Properties (outputProperties); ! } public void setOutputProperty (String name, String value) { outputProperties.setProperty (name, value); ! } public Properties getOutputProperties () { --- 259,270 ---- { // Note: defensive copying this.outputProperties = new Properties (outputProperties); ! } public void setOutputProperty (String name, String value) { outputProperties.setProperty (name, value); ! } public Properties getOutputProperties () { *************** public class GnomeTransformer *** 510,516 **** throw new TransformerException (e); } } ! private void setDocumentLocator (Object ctx, Object loc) { } --- 510,516 ---- throw new TransformerException (e); } } ! private void setDocumentLocator (Object ctx, Object loc) { } *************** public class GnomeTransformer *** 550,556 **** systemId); errorListener.error (new TransformerException (message, l)); } ! private void fatalError (String message, int lineNumber, int columnNumber, --- 550,556 ---- systemId); errorListener.error (new TransformerException (message, l)); } ! private void fatalError (String message, int lineNumber, int columnNumber, *************** public class GnomeTransformer *** 568,572 **** systemId); errorListener.fatalError (new TransformerException (message, l)); } ! } --- 568,572 ---- systemId); errorListener.fatalError (new TransformerException (message, l)); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GnomeTransformerFactory.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GnomeTransformerFactory.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class GnomeTransformerFactory *** 86,92 **** { XMLJ.init (); } ! /** * URIResolver set by user, or default implementation. */ --- 86,92 ---- { XMLJ.init (); } ! /** * URIResolver set by user, or default implementation. */ *************** public class GnomeTransformerFactory *** 104,110 **** //--- Implementation of javax.xml.transform.TransformerFactory //--- follows. ! // -- begin getAssociatedStylesheet implementation -- /** --- 104,110 ---- //--- Implementation of javax.xml.transform.TransformerFactory //--- follows. ! // -- begin getAssociatedStylesheet implementation -- /** *************** public class GnomeTransformerFactory *** 112,118 **** * null if no associated stylesheet could be found. */ public Source getAssociatedStylesheet(Source source, String media, ! String title, String charset) throws TransformerConfigurationException { String href= null; --- 112,118 ---- * null if no associated stylesheet could be found. */ public Source getAssociatedStylesheet(Source source, String media, ! String title, String charset) throws TransformerConfigurationException { String href= null; *************** public class GnomeTransformerFactory *** 225,231 **** class AssociatedStylesheetHandler extends DefaultHandler { ! String media; String title; String href; --- 225,231 ---- class AssociatedStylesheetHandler extends DefaultHandler { ! String media; String title; String href; *************** public class GnomeTransformerFactory *** 246,252 **** href = parseParameter(data, "href"); } } ! } String parseParameter(String data, String name) --- 246,252 ---- href = parseParameter(data, "href"); } } ! } String parseParameter(String data, String name) *************** public class GnomeTransformerFactory *** 270,302 **** public synchronized void setAttribute (String name, Object value) { this.attributes.put (name, value); ! } public synchronized Object getAttribute (String name) { return attributes.get (name); } ! public void setErrorListener (ErrorListener errorListener) { this.errorListener = errorListener; ! } public ErrorListener getErrorListener () { return errorListener; } ! public void setURIResolver (URIResolver uriResolver) { this.uriResolver = uriResolver; ! } public URIResolver getURIResolver () { return uriResolver; } ! public boolean getFeature (String name) { return (StreamSource.FEATURE.equals (name) || --- 270,302 ---- public synchronized void setAttribute (String name, Object value) { this.attributes.put (name, value); ! } public synchronized Object getAttribute (String name) { return attributes.get (name); } ! public void setErrorListener (ErrorListener errorListener) { this.errorListener = errorListener; ! } public ErrorListener getErrorListener () { return errorListener; } ! public void setURIResolver (URIResolver uriResolver) { this.uriResolver = uriResolver; ! } public URIResolver getURIResolver () { return uriResolver; } ! public boolean getFeature (String name) { return (StreamSource.FEATURE.equals (name) || *************** public class GnomeTransformerFactory *** 335,341 **** * Returns a new instance of class {@link Templates} for * the given souce. */ ! public Templates newTemplates (Source source) throws TransformerConfigurationException { return new GnomeTransformer (source, uriResolver, errorListener); --- 335,341 ---- * Returns a new instance of class {@link Templates} for * the given souce. */ ! public Templates newTemplates (Source source) throws TransformerConfigurationException { return new GnomeTransformer (source, uriResolver, errorListener); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/transform/URIResolverEntityResolver.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/transform/URIResolverEntityResolver.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/transform/URIResolverEntityResolver.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/transform/URIResolverEntityResolver.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* URIResolverEntityResolver.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* URIResolverEntityResolver.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/EmptyNodeList.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/EmptyNodeList.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/EmptyNodeList.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/EmptyNodeList.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EmptyNodeList.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EmptyNodeList.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements NodeList *** 58,62 **** { return 0; } ! } --- 58,62 ---- { return 0; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/NamedInputStream.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/NamedInputStream.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/NamedInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/NamedInputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NamedInputStream.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NamedInputStream.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** extends FilterInputStream *** 54,60 **** { private static int DETECT_BUFFER_SIZE = 50; ! private String name; NamedInputStream (String name, InputStream in, int size) --- 54,60 ---- { private static int DETECT_BUFFER_SIZE = 50; ! private String name; NamedInputStream (String name, InputStream in, int size) *************** extends FilterInputStream *** 95,99 **** return ret; } } ! } --- 95,99 ---- return ret; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/StandaloneDocumentType.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/StandaloneDocumentType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/StandaloneDocumentType.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/StandaloneDocumentType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StandaloneDocumentType.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StandaloneDocumentType.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements DocumentType *** 75,81 **** // TODO return null; } ! public NamedNodeMap getNotations () { // TODO --- 75,81 ---- // TODO return null; } ! public NamedNodeMap getNotations () { // TODO *************** implements DocumentType *** 96,102 **** { return null; } ! // -- Node -- public String getNodeName () --- 96,102 ---- { return null; } ! // -- Node -- public String getNodeName () *************** implements DocumentType *** 109,115 **** { return null; } ! public void setNodeValue (String nodeValue) throws DOMException { --- 109,115 ---- { return null; } ! public void setNodeValue (String nodeValue) throws DOMException { *************** implements DocumentType *** 254,265 **** { return equals (other); } ! public String lookupPrefix (String namespace) { return null; } ! public boolean isDefaultNamespace (String namespace) { return false; --- 254,265 ---- { return equals (other); } ! public String lookupPrefix (String namespace) { return null; } ! public boolean isDefaultNamespace (String namespace) { return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/StandaloneLocator.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/StandaloneLocator.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/StandaloneLocator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/StandaloneLocator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StandaloneLocator.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StandaloneLocator.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** implements Locator, SourceLocator *** 65,76 **** this.publicId = publicId; this.systemId = systemId; } ! public String getPublicId () { return publicId; } ! public String getSystemId () { return systemId; --- 65,76 ---- this.publicId = publicId; this.systemId = systemId; } ! public String getPublicId () { return publicId; } ! public String getSystemId () { return systemId; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/XMLJ.java gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/XMLJ.java *** gcc-4.5.2/libjava/classpath/gnu/xml/libxmlj/util/XMLJ.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/libxmlj/util/XMLJ.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLJ.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLJ.java - Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class XMLJ *** 70,104 **** static class XMLJShutdownHook implements Runnable { ! public void run () { // Make sure finalizers are run System.gc (); Runtime.getRuntime ().runFinalization (); ! // Perform global cleanup on the native level GnomeTransformerFactory.freeLibxsltGlobal (); } ! } private static boolean initialised = false; ! public static void init () { if (!initialised) { System.loadLibrary ("xmlj"); ! ! XMLJShutdownHook hook = new XMLJShutdownHook (); Runtime.getRuntime ().addShutdownHook (new Thread (hook)); } initialised = true; } private static final int LOOKAHEAD = 50; ! /** * Returns an input stream for the specified input source. * This returns a pushback stream that libxmlj can use to detect the --- 70,104 ---- static class XMLJShutdownHook implements Runnable { ! public void run () { // Make sure finalizers are run System.gc (); Runtime.getRuntime ().runFinalization (); ! // Perform global cleanup on the native level GnomeTransformerFactory.freeLibxsltGlobal (); } ! } private static boolean initialised = false; ! public static void init () { if (!initialised) { System.loadLibrary ("xmlj"); ! ! XMLJShutdownHook hook = new XMLJShutdownHook (); Runtime.getRuntime ().addShutdownHook (new Thread (hook)); } initialised = true; } private static final int LOOKAHEAD = 50; ! /** * Returns an input stream for the specified input source. * This returns a pushback stream that libxmlj can use to detect the *************** public final class XMLJ *** 276,280 **** } return uri; } ! } --- 276,280 ---- } return uri; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/CallFilter.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/CallFilter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/CallFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/CallFilter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CallFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CallFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import gnu.xml.util.XMLWriter; *** 99,109 **** */ final public class CallFilter implements EventConsumer { ! private Requestor req; ! private EventConsumer next; ! private URL target; ! private URLConnection conn; ! private ErrorHandler errHandler; /** --- 99,109 ---- */ final public class CallFilter implements EventConsumer { ! private Requestor req; ! private EventConsumer next; ! private URL target; ! private URLConnection conn; ! private ErrorHandler errHandler; /** *************** final public class CallFilter implements *** 113,125 **** * * @exception IOException if the URI isn't accepted as a URL */ ! // constructor used by PipelineFactory public CallFilter (String uri, EventConsumer next) throws IOException { ! this.next = next; ! req = new Requestor (); ! setCallTarget (uri); } /** --- 113,125 ---- * * @exception IOException if the URI isn't accepted as a URL */ ! // constructor used by PipelineFactory public CallFilter (String uri, EventConsumer next) throws IOException { ! this.next = next; ! req = new Requestor (); ! setCallTarget (uri); } /** *************** final public class CallFilter implements *** 129,135 **** final public void setCallTarget (String uri) throws IOException { ! target = new URL (uri); } /** --- 129,135 ---- final public void setCallTarget (String uri) throws IOException { ! target = new URL (uri); } /** *************** final public class CallFilter implements *** 138,144 **** */ public void setErrorHandler (ErrorHandler handler) { ! req.setErrorHandler (handler); } --- 138,144 ---- */ public void setErrorHandler (ErrorHandler handler) { ! req.setErrorHandler (handler); } *************** final public class CallFilter implements *** 147,165 **** */ final public String getCallTarget () { ! return target.toString (); } /** Returns the content handler currently in use. */ final public org.xml.sax.ContentHandler getContentHandler () { ! return req; } /** Returns the DTD handler currently in use. */ final public DTDHandler getDTDHandler () { ! return req; } --- 147,165 ---- */ final public String getCallTarget () { ! return target.toString (); } /** Returns the content handler currently in use. */ final public org.xml.sax.ContentHandler getContentHandler () { ! return req; } /** Returns the DTD handler currently in use. */ final public DTDHandler getDTDHandler () { ! return req; } *************** final public class CallFilter implements *** 170,180 **** final public Object getProperty (String id) throws SAXNotRecognizedException { ! if (EventFilter.DECL_HANDLER.equals (id)) ! return req; ! if (EventFilter.LEXICAL_HANDLER.equals (id)) ! return req; ! throw new SAXNotRecognizedException (id); } --- 170,180 ---- final public Object getProperty (String id) throws SAXNotRecognizedException { ! if (EventFilter.DECL_HANDLER.equals (id)) ! return req; ! if (EventFilter.LEXICAL_HANDLER.equals (id)) ! return req; ! throw new SAXNotRecognizedException (id); } *************** final public class CallFilter implements *** 187,257 **** // final class Requestor extends XMLWriter { ! Requestor () ! { ! super ((Writer)null); ! } ! public synchronized void startDocument () throws SAXException ! { ! // Connect to remote object and set up to send it XML text ! try { ! if (conn != null) ! throw new IllegalStateException ("call is being made"); ! conn = target.openConnection (); ! conn.setDoOutput (true); ! conn.setRequestProperty ("Content-Type", ! "application/xml;charset=UTF-8"); ! setWriter (new OutputStreamWriter ( ! conn.getOutputStream (), ! "UTF8"), "UTF-8"); ! } catch (IOException e) { ! fatal ("can't write (POST) to URI: " + target, e); ! } ! // NOW base class can safely write that text! ! super.startDocument (); ! } ! public void endDocument () throws SAXException ! { ! // ! // Finish writing the request (for HTTP, a POST); ! // this closes the output stream. ! // ! super.endDocument (); ! // ! // Receive the response. ! // Produce events for the next stage. ! // ! InputSource source; ! XMLReader producer; ! String encoding; ! try { ! source = new InputSource (conn.getInputStream ()); // FIXME if status is anything but success, report it!! It'd be good to // save the request data just in case we need to deal with a forward. ! encoding = Resolver.getEncoding (conn.getContentType ()); ! if (encoding != null) ! source.setEncoding (encoding); ! producer = XMLReaderFactory.createXMLReader (); ! producer.setErrorHandler (getErrorHandler ()); ! EventFilter.bind (producer, next); ! producer.parse (source); ! conn = null; ! } catch (IOException e) { ! fatal ("I/O Exception reading response, " + e.getMessage (), e); ! } ! } } } --- 187,257 ---- // final class Requestor extends XMLWriter { ! Requestor () ! { ! super ((Writer)null); ! } ! public synchronized void startDocument () throws SAXException ! { ! // Connect to remote object and set up to send it XML text ! try { ! if (conn != null) ! throw new IllegalStateException ("call is being made"); ! conn = target.openConnection (); ! conn.setDoOutput (true); ! conn.setRequestProperty ("Content-Type", ! "application/xml;charset=UTF-8"); ! setWriter (new OutputStreamWriter ( ! conn.getOutputStream (), ! "UTF8"), "UTF-8"); ! } catch (IOException e) { ! fatal ("can't write (POST) to URI: " + target, e); ! } ! // NOW base class can safely write that text! ! super.startDocument (); ! } ! public void endDocument () throws SAXException ! { ! // ! // Finish writing the request (for HTTP, a POST); ! // this closes the output stream. ! // ! super.endDocument (); ! // ! // Receive the response. ! // Produce events for the next stage. ! // ! InputSource source; ! XMLReader producer; ! String encoding; ! try { ! source = new InputSource (conn.getInputStream ()); // FIXME if status is anything but success, report it!! It'd be good to // save the request data just in case we need to deal with a forward. ! encoding = Resolver.getEncoding (conn.getContentType ()); ! if (encoding != null) ! source.setEncoding (encoding); ! producer = XMLReaderFactory.createXMLReader (); ! producer.setErrorHandler (getErrorHandler ()); ! EventFilter.bind (producer, next); ! producer.parse (source); ! conn = null; ! } catch (IOException e) { ! fatal ("I/O Exception reading response, " + e.getMessage (), e); ! } ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/DomConsumer.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/DomConsumer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/DomConsumer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/DomConsumer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DomConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DomConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Text; *** 105,121 **** */ public class DomConsumer implements EventConsumer { ! private Class domImpl; ! private boolean hidingCDATA = true; ! private boolean hidingComments = true; ! private boolean hidingWhitespace = true; ! private boolean hidingReferences = true; ! private Handler handler; ! private ErrorHandler errHandler; ! private EventConsumer next; // FIXME: this can't be a generic pipeline stage just now, // since its input became a Class not a String (to be turned --- 105,121 ---- */ public class DomConsumer implements EventConsumer { ! private Class domImpl; ! private boolean hidingCDATA = true; ! private boolean hidingComments = true; ! private boolean hidingWhitespace = true; ! private boolean hidingReferences = true; ! private Handler handler; ! private ErrorHandler errHandler; ! private EventConsumer next; // FIXME: this can't be a generic pipeline stage just now, // since its input became a Class not a String (to be turned *************** public class DomConsumer implements Even *** 127,142 **** * of DOM when constructing its result value. * * @param impl class implementing {@link org.w3c.dom.Document Document} ! * which publicly exposes a default constructor * * @exception SAXException when there is a problem creating an ! * empty DOM document using the specified implementation */ public DomConsumer (Class impl) throws SAXException { ! domImpl = impl; ! handler = new Handler (this); } /** --- 127,142 ---- * of DOM when constructing its result value. * * @param impl class implementing {@link org.w3c.dom.Document Document} ! * which publicly exposes a default constructor * * @exception SAXException when there is a problem creating an ! * empty DOM document using the specified implementation */ public DomConsumer (Class impl) throws SAXException { ! domImpl = impl; ! handler = new Handler (this); } /** *************** public class DomConsumer implements Even *** 148,169 **** */ protected void setHandler (Handler h) { ! handler = h; } private Document emptyDocument () throws SAXException { ! try { ! return (Document) domImpl.newInstance (); ! } catch (IllegalAccessException e) { ! throw new SAXException ("can't access constructor: " ! + e.getMessage ()); ! } catch (InstantiationException e) { ! throw new SAXException ("can't instantiate Document: " ! + e.getMessage ()); ! } } --- 148,169 ---- */ protected void setHandler (Handler h) { ! handler = h; } private Document emptyDocument () throws SAXException { ! try { ! return (Document) domImpl.newInstance (); ! } catch (IllegalAccessException e) { ! throw new SAXException ("can't access constructor: " ! + e.getMessage ()); ! } catch (InstantiationException e) { ! throw new SAXException ("can't instantiate Document: " ! + e.getMessage ()); ! } } *************** public class DomConsumer implements Even *** 178,195 **** * copy of the input event stream, use a {@link TeeConsumer}. * * @param impl class implementing {@link org.w3c.dom.Document Document} ! * which publicly exposes a default constructor * @param next receives a "replayed" sequence of parse events when ! * the endDocument method is invoked. * * @exception SAXException when there is a problem creating an ! * empty DOM document using the specified DOM implementation */ public DomConsumer (Class impl, EventConsumer n) throws SAXException { ! this (impl); ! next = n; } --- 178,195 ---- * copy of the input event stream, use a {@link TeeConsumer}. * * @param impl class implementing {@link org.w3c.dom.Document Document} ! * which publicly exposes a default constructor * @param next receives a "replayed" sequence of parse events when ! * the endDocument method is invoked. * * @exception SAXException when there is a problem creating an ! * empty DOM document using the specified DOM implementation */ public DomConsumer (Class impl, EventConsumer n) throws SAXException { ! this (impl); ! next = n; } *************** public class DomConsumer implements Even *** 197,212 **** * Returns the document constructed from the preceding * sequence of events. This method should not be * used again until another sequence of events has been ! * given to this EventConsumer. */ final public Document getDocument () { ! return handler.clearDocument (); } public void setErrorHandler (ErrorHandler handler) { ! errHandler = handler; } --- 197,212 ---- * Returns the document constructed from the preceding * sequence of events. This method should not be * used again until another sequence of events has been ! * given to this EventConsumer. */ final public Document getDocument () { ! return handler.clearDocument (); } public void setErrorHandler (ErrorHandler handler) { ! errHandler = handler; } *************** public class DomConsumer implements Even *** 219,226 **** * * @see #setHidingReferences */ ! final public boolean isHidingReferences () ! { return hidingReferences; } /** * Controls whether the consumer will hide entity expansions, --- 219,226 ---- * * @see #setHidingReferences */ ! final public boolean isHidingReferences () ! { return hidingReferences; } /** * Controls whether the consumer will hide entity expansions, *************** public class DomConsumer implements Even *** 229,237 **** * @see #isHidingReferences * @param flag False if entity reference nodes will appear */ ! final public void setHidingReferences (boolean flag) ! { hidingReferences = flag; } ! /** * Returns true if the consumer is hiding comments (the default), --- 229,237 ---- * @see #isHidingReferences * @param flag False if entity reference nodes will appear */ ! final public void setHidingReferences (boolean flag) ! { hidingReferences = flag; } ! /** * Returns true if the consumer is hiding comments (the default), *************** public class DomConsumer implements Even *** 240,246 **** * @see #setHidingComments */ public final boolean isHidingComments () ! { return hidingComments; } /** * Controls whether the consumer is hiding comments. --- 240,246 ---- * @see #setHidingComments */ public final boolean isHidingComments () ! { return hidingComments; } /** * Controls whether the consumer is hiding comments. *************** public class DomConsumer implements Even *** 248,254 **** * @see #isHidingComments */ public final void setHidingComments (boolean flag) ! { hidingComments = flag; } /** --- 248,254 ---- * @see #isHidingComments */ public final void setHidingComments (boolean flag) ! { hidingComments = flag; } /** *************** public class DomConsumer implements Even *** 259,265 **** * @see #setHidingWhitespace */ public final boolean isHidingWhitespace () ! { return hidingWhitespace; } /** * Controls whether the consumer hides ignorable whitespace --- 259,265 ---- * @see #setHidingWhitespace */ public final boolean isHidingWhitespace () ! { return hidingWhitespace; } /** * Controls whether the consumer hides ignorable whitespace *************** public class DomConsumer implements Even *** 267,273 **** * @see #isHidingComments */ public final void setHidingWhitespace (boolean flag) ! { hidingWhitespace = flag; } /** --- 267,273 ---- * @see #isHidingComments */ public final void setHidingWhitespace (boolean flag) ! { hidingWhitespace = flag; } /** *************** public class DomConsumer implements Even *** 276,303 **** * * @see #setHidingCDATA */ ! final public boolean isHidingCDATA () ! { return hidingCDATA; } /** * Controls whether the consumer will save CDATA boundaries. * * @see #isHidingCDATA * @param flag True to treat CDATA text differently from other ! * text nodes */ ! final public void setHidingCDATA (boolean flag) ! { hidingCDATA = flag; } ! /** Returns the document handler being used. */ final public ContentHandler getContentHandler () ! { return handler; } /** Returns the DTD handler being used. */ final public DTDHandler getDTDHandler () ! { return handler; } /** * Returns the lexical handler being used. --- 276,303 ---- * * @see #setHidingCDATA */ ! final public boolean isHidingCDATA () ! { return hidingCDATA; } /** * Controls whether the consumer will save CDATA boundaries. * * @see #isHidingCDATA * @param flag True to treat CDATA text differently from other ! * text nodes */ ! final public void setHidingCDATA (boolean flag) ! { hidingCDATA = flag; } ! /** Returns the document handler being used. */ final public ContentHandler getContentHandler () ! { return handler; } /** Returns the DTD handler being used. */ final public DTDHandler getDTDHandler () ! { return handler; } /** * Returns the lexical handler being used. *************** public class DomConsumer implements Even *** 306,316 **** final public Object getProperty (String id) throws SAXNotRecognizedException { ! if ("http://xml.org/sax/properties/lexical-handler".equals (id)) ! return handler; ! if ("http://xml.org/sax/properties/declaration-handler".equals (id)) ! return handler; ! throw new SAXNotRecognizedException (id); } EventConsumer getNext () { return next; } --- 306,316 ---- final public Object getProperty (String id) throws SAXNotRecognizedException { ! if ("http://xml.org/sax/properties/lexical-handler".equals (id)) ! return handler; ! if ("http://xml.org/sax/properties/declaration-handler".equals (id)) ! return handler; ! throw new SAXNotRecognizedException (id); } EventConsumer getNext () { return next; } *************** public class DomConsumer implements Even *** 320,326 **** /** * Class used to intercept various parsing events and use them to * populate a DOM document. Subclasses would typically know and use ! * backdoors into specific DOM implementations, used to implement * DTD-related functionality. * *

            Note that if this ever throws a DOMException (runtime exception) --- 320,326 ---- /** * Class used to intercept various parsing events and use them to * populate a DOM document. Subclasses would typically know and use ! * backdoors into specific DOM implementations, used to implement * DTD-related functionality. * *

            Note that if this ever throws a DOMException (runtime exception) *************** public class DomConsumer implements Even *** 329,967 **** * accepted illegal input data).

            */ public static class Handler ! implements ContentHandler, LexicalHandler, ! DTDHandler, DeclHandler { ! protected DomConsumer consumer; ! private DOMImplementation impl; ! private Document document; ! private boolean isL2; ! private Locator locator; ! private Node top; ! private boolean inCDATA; ! private boolean mergeCDATA; ! private boolean inDTD; ! private String currentEntity; ! private boolean recreatedAttrs; ! private AttributesImpl attributes = new AttributesImpl (); ! /** ! * Subclasses may use SAX2 events to provide additional ! * behaviors in the resulting DOM. ! */ ! protected Handler (DomConsumer consumer) ! throws SAXException ! { ! this.consumer = consumer; ! document = consumer.emptyDocument (); ! impl = document.getImplementation (); ! isL2 = impl.hasFeature ("XML", "2.0"); ! } ! private void fatal (String message, Exception x) ! throws SAXException ! { ! SAXParseException e; ! ErrorHandler errHandler = consumer.getErrorHandler (); ! if (locator == null) ! e = new SAXParseException (message, null, null, -1, -1, x); ! else ! e = new SAXParseException (message, locator, x); ! if (errHandler != null) ! errHandler.fatalError (e); ! throw e; ! } ! /** ! * Returns and forgets the document produced. If the handler is ! * reused, a new document may be created. ! */ ! Document clearDocument () ! { ! Document retval = document; ! document = null; ! locator = null; ! return retval; ! } ! /** ! * Returns the document under construction. ! */ ! protected Document getDocument () ! { return document; } ! ! /** ! * Returns the current node being populated. This is usually ! * an Element or Document, but it might be an EntityReference ! * node if some implementation-specific code knows how to put ! * those into the result tree and later mark them as readonly. ! */ ! protected Node getTop () ! { return top; } - // SAX1 - public void setDocumentLocator (Locator locator) - { - this.locator = locator; - } ! // SAX1 ! public void startDocument () ! throws SAXException ! { ! if (document == null) ! try { ! if (isL2) { ! // couple to original implementation ! document = impl.createDocument (null, "foo", null); ! document.removeChild (document.getFirstChild ()); ! } else { ! document = consumer.emptyDocument (); ! } ! } catch (Exception e) { ! fatal ("DOM create document", e); ! } ! top = document; ! } ! // SAX1 ! public void endDocument () ! throws SAXException ! { ! try { ! if (consumer.getNext () != null && document != null) { ! DomParser parser = new DomParser (document); ! EventFilter.bind (parser, consumer.getNext ()); ! parser.parse ("ignored"); ! } ! } finally { ! top = null; ! } ! } ! // SAX1 ! public void processingInstruction (String target, String data) ! throws SAXException ! { ! // we can't create populated entity ref nodes using ! // only public DOM APIs (they've got to be readonly) ! if (currentEntity != null) ! return; ! ProcessingInstruction pi; ! if (isL2 ! // && consumer.isUsingNamespaces () ! && target.indexOf (':') != -1) ! namespaceError ( ! "PI target name is namespace nonconformant: " ! + target); ! if (inDTD) ! return; ! pi = document.createProcessingInstruction (target, data); ! top.appendChild (pi); ! } ! /** ! * Subclasses may overrride this method to provide a more efficient ! * way to construct text nodes. ! * Typically, copying the text into a single character array will ! * be more efficient than doing that as well as allocating other ! * needed for a String, including an internal StringBuffer. ! * Those additional memory and CPU costs can be incurred later, ! * if ever needed. ! * Unfortunately the standard DOM factory APIs encourage those costs ! * to be incurred early. ! */ ! protected Text createText ( ! boolean isCDATA, ! char ch [], ! int start, ! int length ! ) { ! String value = new String (ch, start, length); ! if (isCDATA) ! return document.createCDATASection (value); ! else ! return document.createTextNode (value); ! } ! // SAX1 ! public void characters (char ch [], int start, int length) ! throws SAXException ! { ! // we can't create populated entity ref nodes using ! // only public DOM APIs (they've got to be readonly ! // at creation time) ! if (currentEntity != null) ! return; ! Node lastChild = top.getLastChild (); ! // merge consecutive text or CDATA nodes if appropriate. ! if (lastChild instanceof Text) { ! if (consumer.isHidingCDATA () ! // consecutive Text content ... always merge ! || (!inCDATA ! && !(lastChild instanceof CDATASection)) ! // consecutive CDATASection content ... don't ! // merge between sections, only within them ! || (inCDATA && mergeCDATA ! && lastChild instanceof CDATASection) ! ) { ! CharacterData last = (CharacterData) lastChild; ! String value = new String (ch, start, length); ! ! last.appendData (value); ! return; ! } ! } ! if (inCDATA && !consumer.isHidingCDATA ()) { ! top.appendChild (createText (true, ch, start, length)); ! mergeCDATA = true; ! } else ! top.appendChild (createText (false, ch, start, length)); ! } ! // SAX2 ! public void skippedEntity (String name) ! throws SAXException ! { ! // this callback is useless except to report errors, since ! // we can't know if the ref was in content, within an ! // attribute, within a declaration ... only one of those ! // cases supports more intelligent action than a panic. ! fatal ("skipped entity: " + name, null); ! } ! // SAX2 ! public void startPrefixMapping (String prefix, String uri) ! throws SAXException ! { ! // reconstruct "xmlns" attributes deleted by all ! // SAX2 parsers without "namespace-prefixes" = true ! if ("".equals (prefix)) ! attributes.addAttribute ("", "", "xmlns", ! "CDATA", uri); ! else ! attributes.addAttribute ("", "", "xmlns:" + prefix, ! "CDATA", uri); ! recreatedAttrs = true; ! } ! // SAX2 ! public void endPrefixMapping (String prefix) ! throws SAXException ! { } ! // SAX2 ! public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ! ) throws SAXException ! { ! // we can't create populated entity ref nodes using ! // only public DOM APIs (they've got to be readonly) ! if (currentEntity != null) ! return; ! // parser discarded basic information; DOM tree isn't writable ! // without massaging to assign prefixes to all nodes. ! // the "NSFilter" class does that massaging. ! if (qName.length () == 0) ! qName = localName; ! Element element; ! int length = atts.getLength (); - if (!isL2) { - element = document.createElement (qName); ! // first the explicit attributes ... ! length = atts.getLength (); ! for (int i = 0; i < length; i++) ! element.setAttribute (atts.getQName (i), ! atts.getValue (i)); ! // ... then any recreated ones (DOM deletes duplicates) ! if (recreatedAttrs) { ! recreatedAttrs = false; ! length = attributes.getLength (); ! for (int i = 0; i < length; i++) ! element.setAttribute (attributes.getQName (i), ! attributes.getValue (i)); ! attributes.clear (); ! } ! top.appendChild (element); ! top = element; ! return; ! } ! // For an L2 DOM when namespace use is enabled, use ! // createElementNS/createAttributeNS except when ! // (a) it's an element in the default namespace, or ! // (b) it's an attribute with no prefix ! String namespace; ! ! if (localName.length () != 0) ! namespace = (uri.length () == 0) ? null : uri; ! else ! namespace = getNamespace (getPrefix (qName), atts); ! if (namespace == null) ! element = document.createElement (qName); ! else ! element = document.createElementNS (namespace, qName); ! populateAttributes (element, atts); ! if (recreatedAttrs) { ! recreatedAttrs = false; ! // ... DOM deletes any duplicates ! populateAttributes (element, attributes); ! attributes.clear (); ! } ! top.appendChild (element); ! top = element; ! } ! final static String xmlnsURI = "http://www.w3.org/2000/xmlns/"; ! private void populateAttributes (Element element, Attributes attrs) ! throws SAXParseException ! { ! int length = attrs.getLength (); ! for (int i = 0; i < length; i++) { ! String type = attrs.getType (i); ! String value = attrs.getValue (i); ! String name = attrs.getQName (i); ! String local = attrs.getLocalName (i); ! String uri = attrs.getURI (i); ! // parser discarded basic information, DOM tree isn't writable ! if (name.length () == 0) ! name = local; ! // all attribute types other than these three may not ! // contain scoped names... enumerated attributes get ! // reported as NMTOKEN, except for NOTATION values ! if (!("CDATA".equals (type) ! || "NMTOKEN".equals (type) ! || "NMTOKENS".equals (type))) { ! if (value.indexOf (':') != -1) { ! namespaceError ( ! "namespace nonconformant attribute value: " ! + "<" + element.getNodeName () ! + " " + name + "='" + value + "' ...>"); ! } ! } ! // xmlns="" is legal (undoes default NS) ! // xmlns:foo="" is illegal ! String prefix = getPrefix (name); ! String namespace; ! if ("xmlns".equals (prefix)) { ! if ("".equals (value)) ! namespaceError ("illegal null namespace decl, " + name); ! namespace = xmlnsURI; ! } else if ("xmlns".equals (name)) ! namespace = xmlnsURI; ! else if (prefix == null) ! namespace = null; ! else if (!"".equals(uri) && uri.length () != 0) ! namespace = uri; ! else ! namespace = getNamespace (prefix, attrs); ! if (namespace == null) ! element.setAttribute (name, value); ! else ! element.setAttributeNS (namespace, name, value); ! } ! } ! private String getPrefix (String name) ! { ! int temp; ! if ((temp = name.indexOf (':')) > 0) ! return name.substring (0, temp); ! return null; ! } ! // used with SAX1-level parser output ! private String getNamespace (String prefix, Attributes attrs) ! throws SAXParseException ! { ! String namespace; ! String decl; ! // defaulting ! if (prefix == null) { ! decl = "xmlns"; ! namespace = attrs.getValue (decl); ! if ("".equals (namespace)) ! return null; ! else if (namespace != null) ! return namespace; ! // "xmlns" is like a keyword ! // ... according to the Namespace REC, but DOM L2 CR2+ ! // and Infoset violate that by assigning a namespace. ! // that conflict is resolved elsewhere. ! } else if ("xmlns".equals (prefix)) ! return null; ! // "xml" prefix is fixed ! else if ("xml".equals (prefix)) ! return "http://www.w3.org/XML/1998/namespace"; ! // otherwise, expect a declaration ! else { ! decl = "xmlns:" + prefix; ! namespace = attrs.getValue (decl); ! } ! ! // if we found a local declaration, great ! if (namespace != null) ! return namespace; ! // ELSE ... search up the tree we've been building ! for (Node n = top; ! n != null && n.getNodeType () != Node.DOCUMENT_NODE; ! n = n.getParentNode ()) { ! if (n.getNodeType () == Node.ENTITY_REFERENCE_NODE) ! continue; ! Element e = (Element) n; ! Attr attr = e.getAttributeNode (decl); ! if (attr != null) ! return attr.getNodeValue (); ! } ! // see above re "xmlns" as keyword ! if ("xmlns".equals (decl)) ! return null; ! namespaceError ("Undeclared namespace prefix: " + prefix); ! return null; ! } ! // SAX2 ! public void endElement (String uri, String localName, String qName) ! throws SAXException ! { ! // we can't create populated entity ref nodes using ! // only public DOM APIs (they've got to be readonly) ! if (currentEntity != null) ! return; - top = top.getParentNode (); - } ! // SAX1 (mandatory reporting if validating) ! public void ignorableWhitespace (char ch [], int start, int length) ! throws SAXException ! { ! if (consumer.isHidingWhitespace ()) ! return; ! characters (ch, start, length); ! } ! // SAX2 lexical event ! public void startCDATA () ! throws SAXException ! { ! inCDATA = true; ! // true except for the first fragment of a cdata section ! mergeCDATA = false; ! } ! ! // SAX2 lexical event ! public void endCDATA () ! throws SAXException ! { ! inCDATA = false; ! } ! ! // SAX2 lexical event ! // ! // this SAX2 callback merges two unrelated things: ! // - Declaration of the root element type ... belongs with ! // the other DTD declaration methods, NOT HERE. ! // - IDs for the optional external subset ... belongs here ! // with other lexical information. ! // ! // ...and it doesn't include the internal DTD subset, desired ! // both to support DOM L2 and to enable "pass through" processing ! // ! public void startDTD (String name, String publicId, String SystemId) ! throws SAXException ! { ! // need to filter out comments and PIs within the DTD ! inDTD = true; ! } ! ! // SAX2 lexical event ! public void endDTD () ! throws SAXException ! { ! inDTD = false; ! } ! ! // SAX2 lexical event ! public void comment (char ch [], int start, int length) ! throws SAXException ! { ! Node comment; ! // we can't create populated entity ref nodes using ! // only public DOM APIs (they've got to be readonly) ! if (consumer.isHidingComments () ! || inDTD ! || currentEntity != null) ! return; ! comment = document.createComment (new String (ch, start, length)); ! top.appendChild (comment); ! } ! /** ! * May be overridden by subclasses to return true, indicating ! * that entity reference nodes can be populated and then made ! * read-only. ! */ ! public boolean canPopulateEntityRefs () ! { return false; } ! // SAX2 lexical event ! public void startEntity (String name) ! throws SAXException ! { ! // are we ignoring what would be contents of an ! // entity ref, since we can't populate it? ! if (currentEntity != null) ! return; ! // Are we hiding all entity boundaries? ! if (consumer.isHidingReferences ()) ! return; ! // SAX2 shows parameter entities; DOM hides them ! if (name.charAt (0) == '%' || "[dtd]".equals (name)) ! return; ! // Since we can't create a populated entity ref node in any ! // standard way, we create an unpopulated one. ! EntityReference ref = document.createEntityReference (name); ! top.appendChild (ref); ! top = ref; ! // ... allowing subclasses to populate them ! if (!canPopulateEntityRefs ()) ! currentEntity = name; ! } ! // SAX2 lexical event ! public void endEntity (String name) ! throws SAXException ! { ! if (name.charAt (0) == '%' || "[dtd]".equals (name)) ! return; ! if (name.equals (currentEntity)) ! currentEntity = null; ! if (!consumer.isHidingReferences ()) ! top = top.getParentNode (); ! } ! // SAX1 DTD event ! public void notationDecl ( ! String name, ! String publicId, String SystemId ! ) throws SAXException ! { ! /* IGNORE -- no public DOM API lets us store these ! * into the doctype node ! */ ! } ! // SAX1 DTD event ! public void unparsedEntityDecl ( ! String name, ! String publicId, String SystemId, ! String notationName ! ) throws SAXException ! { ! /* IGNORE -- no public DOM API lets us store these ! * into the doctype node ! */ ! } ! // SAX2 declaration event ! public void elementDecl (String name, String model) ! throws SAXException ! { ! /* IGNORE -- no content model support in DOM L2 */ ! } ! // SAX2 declaration event ! public void attributeDecl ( ! String eName, ! String aName, ! String type, ! String mode, ! String value ! ) throws SAXException ! { ! /* IGNORE -- no attribute model support in DOM L2 */ ! } ! // SAX2 declaration event ! public void internalEntityDecl (String name, String value) ! throws SAXException ! { ! /* IGNORE -- no public DOM API lets us store these ! * into the doctype node ! */ ! } ! // SAX2 declaration event ! public void externalEntityDecl ( ! String name, ! String publicId, ! String SystemId ! ) throws SAXException ! { ! /* IGNORE -- no public DOM API lets us store these ! * into the doctype node ! */ ! } ! // ! // These really should offer the option of nonfatal handling, ! // like other validity errors, though that would cause major ! // chaos in the DOM data structures. DOM is already spec'd ! // to treat many of these as fatal, so this is consistent. ! // ! private void namespaceError (String description) ! throws SAXParseException ! { ! SAXParseException err; ! ! err = new SAXParseException (description, locator); ! throw err; ! } } } --- 329,967 ---- * accepted illegal input data).

            */ public static class Handler ! implements ContentHandler, LexicalHandler, ! DTDHandler, DeclHandler { ! protected DomConsumer consumer; ! private DOMImplementation impl; ! private Document document; ! private boolean isL2; ! private Locator locator; ! private Node top; ! private boolean inCDATA; ! private boolean mergeCDATA; ! private boolean inDTD; ! private String currentEntity; ! private boolean recreatedAttrs; ! private AttributesImpl attributes = new AttributesImpl (); ! /** ! * Subclasses may use SAX2 events to provide additional ! * behaviors in the resulting DOM. ! */ ! protected Handler (DomConsumer consumer) ! throws SAXException ! { ! this.consumer = consumer; ! document = consumer.emptyDocument (); ! impl = document.getImplementation (); ! isL2 = impl.hasFeature ("XML", "2.0"); ! } ! private void fatal (String message, Exception x) ! throws SAXException ! { ! SAXParseException e; ! ErrorHandler errHandler = consumer.getErrorHandler (); ! if (locator == null) ! e = new SAXParseException (message, null, null, -1, -1, x); ! else ! e = new SAXParseException (message, locator, x); ! if (errHandler != null) ! errHandler.fatalError (e); ! throw e; ! } ! /** ! * Returns and forgets the document produced. If the handler is ! * reused, a new document may be created. ! */ ! Document clearDocument () ! { ! Document retval = document; ! document = null; ! locator = null; ! return retval; ! } ! /** ! * Returns the document under construction. ! */ ! protected Document getDocument () ! { return document; } + /** + * Returns the current node being populated. This is usually + * an Element or Document, but it might be an EntityReference + * node if some implementation-specific code knows how to put + * those into the result tree and later mark them as readonly. + */ + protected Node getTop () + { return top; } ! // SAX1 ! public void setDocumentLocator (Locator locator) ! { ! this.locator = locator; ! } ! // SAX1 ! public void startDocument () ! throws SAXException ! { ! if (document == null) ! try { ! if (isL2) { ! // couple to original implementation ! document = impl.createDocument (null, "foo", null); ! document.removeChild (document.getFirstChild ()); ! } else { ! document = consumer.emptyDocument (); ! } ! } catch (Exception e) { ! fatal ("DOM create document", e); ! } ! top = document; ! } ! // SAX1 ! public void endDocument () ! throws SAXException ! { ! try { ! if (consumer.getNext () != null && document != null) { ! DomParser parser = new DomParser (document); ! EventFilter.bind (parser, consumer.getNext ()); ! parser.parse ("ignored"); ! } ! } finally { ! top = null; ! } ! } ! // SAX1 ! public void processingInstruction (String target, String data) ! throws SAXException ! { ! // we can't create populated entity ref nodes using ! // only public DOM APIs (they've got to be readonly) ! if (currentEntity != null) ! return; ! ProcessingInstruction pi; ! if (isL2 ! // && consumer.isUsingNamespaces () ! && target.indexOf (':') != -1) ! namespaceError ( ! "PI target name is namespace nonconformant: " ! + target); ! if (inDTD) ! return; ! pi = document.createProcessingInstruction (target, data); ! top.appendChild (pi); ! } ! /** ! * Subclasses may overrride this method to provide a more efficient ! * way to construct text nodes. ! * Typically, copying the text into a single character array will ! * be more efficient than doing that as well as allocating other ! * needed for a String, including an internal StringBuffer. ! * Those additional memory and CPU costs can be incurred later, ! * if ever needed. ! * Unfortunately the standard DOM factory APIs encourage those costs ! * to be incurred early. ! */ ! protected Text createText ( ! boolean isCDATA, ! char ch [], ! int start, ! int length ! ) { ! String value = new String (ch, start, length); ! if (isCDATA) ! return document.createCDATASection (value); ! else ! return document.createTextNode (value); ! } ! // SAX1 ! public void characters (char ch [], int start, int length) ! throws SAXException ! { ! // we can't create populated entity ref nodes using ! // only public DOM APIs (they've got to be readonly ! // at creation time) ! if (currentEntity != null) ! return; ! Node lastChild = top.getLastChild (); ! // merge consecutive text or CDATA nodes if appropriate. ! if (lastChild instanceof Text) { ! if (consumer.isHidingCDATA () ! // consecutive Text content ... always merge ! || (!inCDATA ! && !(lastChild instanceof CDATASection)) ! // consecutive CDATASection content ... don't ! // merge between sections, only within them ! || (inCDATA && mergeCDATA ! && lastChild instanceof CDATASection) ! ) { ! CharacterData last = (CharacterData) lastChild; ! String value = new String (ch, start, length); ! last.appendData (value); ! return; ! } ! } ! if (inCDATA && !consumer.isHidingCDATA ()) { ! top.appendChild (createText (true, ch, start, length)); ! mergeCDATA = true; ! } else ! top.appendChild (createText (false, ch, start, length)); ! } ! // SAX2 ! public void skippedEntity (String name) ! throws SAXException ! { ! // this callback is useless except to report errors, since ! // we can't know if the ref was in content, within an ! // attribute, within a declaration ... only one of those ! // cases supports more intelligent action than a panic. ! fatal ("skipped entity: " + name, null); ! } ! // SAX2 ! public void startPrefixMapping (String prefix, String uri) ! throws SAXException ! { ! // reconstruct "xmlns" attributes deleted by all ! // SAX2 parsers without "namespace-prefixes" = true ! if ("".equals (prefix)) ! attributes.addAttribute ("", "", "xmlns", ! "CDATA", uri); ! else ! attributes.addAttribute ("", "", "xmlns:" + prefix, ! "CDATA", uri); ! recreatedAttrs = true; ! } ! // SAX2 ! public void endPrefixMapping (String prefix) ! throws SAXException ! { } + // SAX2 + public void startElement ( + String uri, + String localName, + String qName, + Attributes atts + ) throws SAXException + { + // we can't create populated entity ref nodes using + // only public DOM APIs (they've got to be readonly) + if (currentEntity != null) + return; ! // parser discarded basic information; DOM tree isn't writable ! // without massaging to assign prefixes to all nodes. ! // the "NSFilter" class does that massaging. ! if (qName.length () == 0) ! qName = localName; ! Element element; ! int length = atts.getLength (); ! if (!isL2) { ! element = document.createElement (qName); ! // first the explicit attributes ... ! length = atts.getLength (); ! for (int i = 0; i < length; i++) ! element.setAttribute (atts.getQName (i), ! atts.getValue (i)); ! // ... then any recreated ones (DOM deletes duplicates) ! if (recreatedAttrs) { ! recreatedAttrs = false; ! length = attributes.getLength (); ! for (int i = 0; i < length; i++) ! element.setAttribute (attributes.getQName (i), ! attributes.getValue (i)); ! attributes.clear (); ! } ! top.appendChild (element); ! top = element; ! return; ! } ! // For an L2 DOM when namespace use is enabled, use ! // createElementNS/createAttributeNS except when ! // (a) it's an element in the default namespace, or ! // (b) it's an attribute with no prefix ! String namespace; ! if (localName.length () != 0) ! namespace = (uri.length () == 0) ? null : uri; ! else ! namespace = getNamespace (getPrefix (qName), atts); ! if (namespace == null) ! element = document.createElement (qName); ! else ! element = document.createElementNS (namespace, qName); ! populateAttributes (element, atts); ! if (recreatedAttrs) { ! recreatedAttrs = false; ! // ... DOM deletes any duplicates ! populateAttributes (element, attributes); ! attributes.clear (); ! } ! top.appendChild (element); ! top = element; ! } ! final static String xmlnsURI = "http://www.w3.org/2000/xmlns/"; ! private void populateAttributes (Element element, Attributes attrs) ! throws SAXParseException ! { ! int length = attrs.getLength (); ! for (int i = 0; i < length; i++) { ! String type = attrs.getType (i); ! String value = attrs.getValue (i); ! String name = attrs.getQName (i); ! String local = attrs.getLocalName (i); ! String uri = attrs.getURI (i); ! // parser discarded basic information, DOM tree isn't writable ! if (name.length () == 0) ! name = local; ! // all attribute types other than these three may not ! // contain scoped names... enumerated attributes get ! // reported as NMTOKEN, except for NOTATION values ! if (!("CDATA".equals (type) ! || "NMTOKEN".equals (type) ! || "NMTOKENS".equals (type))) { ! if (value.indexOf (':') != -1) { ! namespaceError ( ! "namespace nonconformant attribute value: " ! + "<" + element.getNodeName () ! + " " + name + "='" + value + "' ...>"); ! } ! } ! // xmlns="" is legal (undoes default NS) ! // xmlns:foo="" is illegal ! String prefix = getPrefix (name); ! String namespace; ! if ("xmlns".equals (prefix)) { ! if ("".equals (value)) ! namespaceError ("illegal null namespace decl, " + name); ! namespace = xmlnsURI; ! } else if ("xmlns".equals (name)) ! namespace = xmlnsURI; ! else if (prefix == null) ! namespace = null; ! else if (!"".equals(uri) && uri.length () != 0) ! namespace = uri; ! else ! namespace = getNamespace (prefix, attrs); ! if (namespace == null) ! element.setAttribute (name, value); ! else ! element.setAttributeNS (namespace, name, value); ! } ! } ! private String getPrefix (String name) ! { ! int temp; ! if ((temp = name.indexOf (':')) > 0) ! return name.substring (0, temp); ! return null; ! } ! // used with SAX1-level parser output ! private String getNamespace (String prefix, Attributes attrs) ! throws SAXParseException ! { ! String namespace; ! String decl; ! // defaulting ! if (prefix == null) { ! decl = "xmlns"; ! namespace = attrs.getValue (decl); ! if ("".equals (namespace)) ! return null; ! else if (namespace != null) ! return namespace; + // "xmlns" is like a keyword + // ... according to the Namespace REC, but DOM L2 CR2+ + // and Infoset violate that by assigning a namespace. + // that conflict is resolved elsewhere. + } else if ("xmlns".equals (prefix)) + return null; ! // "xml" prefix is fixed ! else if ("xml".equals (prefix)) ! return "http://www.w3.org/XML/1998/namespace"; ! // otherwise, expect a declaration ! else { ! decl = "xmlns:" + prefix; ! namespace = attrs.getValue (decl); ! } ! // if we found a local declaration, great ! if (namespace != null) ! return namespace; ! // ELSE ... search up the tree we've been building ! for (Node n = top; ! n != null && n.getNodeType () != Node.DOCUMENT_NODE; ! n = n.getParentNode ()) { ! if (n.getNodeType () == Node.ENTITY_REFERENCE_NODE) ! continue; ! Element e = (Element) n; ! Attr attr = e.getAttributeNode (decl); ! if (attr != null) ! return attr.getNodeValue (); ! } ! // see above re "xmlns" as keyword ! if ("xmlns".equals (decl)) ! return null; ! namespaceError ("Undeclared namespace prefix: " + prefix); ! return null; ! } ! // SAX2 ! public void endElement (String uri, String localName, String qName) ! throws SAXException ! { ! // we can't create populated entity ref nodes using ! // only public DOM APIs (they've got to be readonly) ! if (currentEntity != null) ! return; ! top = top.getParentNode (); ! } ! // SAX1 (mandatory reporting if validating) ! public void ignorableWhitespace (char ch [], int start, int length) ! throws SAXException ! { ! if (consumer.isHidingWhitespace ()) ! return; ! characters (ch, start, length); ! } ! // SAX2 lexical event ! public void startCDATA () ! throws SAXException ! { ! inCDATA = true; ! // true except for the first fragment of a cdata section ! mergeCDATA = false; ! } ! // SAX2 lexical event ! public void endCDATA () ! throws SAXException ! { ! inCDATA = false; ! } ! // SAX2 lexical event ! // ! // this SAX2 callback merges two unrelated things: ! // - Declaration of the root element type ... belongs with ! // the other DTD declaration methods, NOT HERE. ! // - IDs for the optional external subset ... belongs here ! // with other lexical information. ! // ! // ...and it doesn't include the internal DTD subset, desired ! // both to support DOM L2 and to enable "pass through" processing ! // ! public void startDTD (String name, String publicId, String SystemId) ! throws SAXException ! { ! // need to filter out comments and PIs within the DTD ! inDTD = true; ! } ! // SAX2 lexical event ! public void endDTD () ! throws SAXException ! { ! inDTD = false; ! } ! // SAX2 lexical event ! public void comment (char ch [], int start, int length) ! throws SAXException ! { ! Node comment; + // we can't create populated entity ref nodes using + // only public DOM APIs (they've got to be readonly) + if (consumer.isHidingComments () + || inDTD + || currentEntity != null) + return; + comment = document.createComment (new String (ch, start, length)); + top.appendChild (comment); + } ! /** ! * May be overridden by subclasses to return true, indicating ! * that entity reference nodes can be populated and then made ! * read-only. ! */ ! public boolean canPopulateEntityRefs () ! { return false; } ! // SAX2 lexical event ! public void startEntity (String name) ! throws SAXException ! { ! // are we ignoring what would be contents of an ! // entity ref, since we can't populate it? ! if (currentEntity != null) ! return; ! // Are we hiding all entity boundaries? ! if (consumer.isHidingReferences ()) ! return; ! // SAX2 shows parameter entities; DOM hides them ! if (name.charAt (0) == '%' || "[dtd]".equals (name)) ! return; ! // Since we can't create a populated entity ref node in any ! // standard way, we create an unpopulated one. ! EntityReference ref = document.createEntityReference (name); ! top.appendChild (ref); ! top = ref; ! // ... allowing subclasses to populate them ! if (!canPopulateEntityRefs ()) ! currentEntity = name; ! } ! // SAX2 lexical event ! public void endEntity (String name) ! throws SAXException ! { ! if (name.charAt (0) == '%' || "[dtd]".equals (name)) ! return; ! if (name.equals (currentEntity)) ! currentEntity = null; ! if (!consumer.isHidingReferences ()) ! top = top.getParentNode (); ! } ! ! ! // SAX1 DTD event ! public void notationDecl ( ! String name, ! String publicId, String SystemId ! ) throws SAXException ! { ! /* IGNORE -- no public DOM API lets us store these ! * into the doctype node ! */ ! } ! ! // SAX1 DTD event ! public void unparsedEntityDecl ( ! String name, ! String publicId, String SystemId, ! String notationName ! ) throws SAXException ! { ! /* IGNORE -- no public DOM API lets us store these ! * into the doctype node ! */ ! } ! ! // SAX2 declaration event ! public void elementDecl (String name, String model) ! throws SAXException ! { ! /* IGNORE -- no content model support in DOM L2 */ ! } ! ! // SAX2 declaration event ! public void attributeDecl ( ! String eName, ! String aName, ! String type, ! String mode, ! String value ! ) throws SAXException ! { ! /* IGNORE -- no attribute model support in DOM L2 */ ! } ! ! // SAX2 declaration event ! public void internalEntityDecl (String name, String value) ! throws SAXException ! { ! /* IGNORE -- no public DOM API lets us store these ! * into the doctype node ! */ ! } ! ! // SAX2 declaration event ! public void externalEntityDecl ( ! String name, ! String publicId, ! String SystemId ! ) throws SAXException ! { ! /* IGNORE -- no public DOM API lets us store these ! * into the doctype node ! */ ! } ! ! // ! // These really should offer the option of nonfatal handling, ! // like other validity errors, though that would cause major ! // chaos in the DOM data structures. DOM is already spec'd ! // to treat many of these as fatal, so this is consistent. ! // ! private void namespaceError (String description) ! throws SAXParseException ! { ! SAXParseException err; ! ! err = new SAXParseException (description, locator); ! throw err; ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/EventConsumer.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/EventConsumer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/EventConsumer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/EventConsumer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EventConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EventConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public interface EventConsumer *** 75,81 **** * @return The value of that property, if it is defined. * * @exception SAXNotRecognizedException Thrown if the particular ! * pipeline stage does not understand the specified identifier. */ public Object getProperty (String id) throws SAXNotRecognizedException; --- 75,81 ---- * @return The value of that property, if it is defined. * * @exception SAXNotRecognizedException Thrown if the particular ! * pipeline stage does not understand the specified identifier. */ public Object getProperty (String id) throws SAXNotRecognizedException; diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/EventFilter.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/EventFilter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/EventFilter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/EventFilter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EventFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EventFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.helpers.XMLFilterImpl *** 89,123 **** * {@link org.xml.sax.helpers.XMLFilterImpl XMLFilterImpl} class. * Key differences include:
              * ! *
            • This fully separates consumer and producer roles: it ! * does not implement the producer side XMLReader or ! * EntityResolver interfaces, so it can only be used ! * in "push" mode (it has no parse() methods). * ! *
            • "Extension" handlers are fully supported, enabling a ! * richer set of application requirements. ! * And it implements {@link EventConsumer}, which groups related ! * consumer methods together, rather than leaving them separated. * ! *
            • The chaining which is visible is "downstream" to the next ! * consumer, not "upstream" to the preceding producer. ! * It supports "fan-in", where ! * a consumer can be fed by several producers. (For "fan-out", ! * see the {@link TeeConsumer} class.) * ! *
            • Event chaining is set up differently. It is intended to ! * work "upstream" from terminus towards producer, during filter ! * construction, as described above. ! * This is part of an early binding model: ! * events don't need to pass through stages which ignore them. * ! *
            • ErrorHandler support is separated, on the grounds that ! * pipeline stages need to share the same error handling policy. ! * For the same reason, error handler setup goes "downstream": ! * when error handlers get set, they are passed to subsequent ! * consumers. * ! *
            * *

            The {@link #chainTo chainTo()} convenience routine supports chaining to * an XMLFilterImpl, in its role as a limited functionality event --- 89,123 ---- * {@link org.xml.sax.helpers.XMLFilterImpl XMLFilterImpl} class. * Key differences include:

              * ! *
            • This fully separates consumer and producer roles: it ! * does not implement the producer side XMLReader or ! * EntityResolver interfaces, so it can only be used ! * in "push" mode (it has no parse() methods). * ! *
            • "Extension" handlers are fully supported, enabling a ! * richer set of application requirements. ! * And it implements {@link EventConsumer}, which groups related ! * consumer methods together, rather than leaving them separated. * ! *
            • The chaining which is visible is "downstream" to the next ! * consumer, not "upstream" to the preceding producer. ! * It supports "fan-in", where ! * a consumer can be fed by several producers. (For "fan-out", ! * see the {@link TeeConsumer} class.) * ! *
            • Event chaining is set up differently. It is intended to ! * work "upstream" from terminus towards producer, during filter ! * construction, as described above. ! * This is part of an early binding model: ! * events don't need to pass through stages which ignore them. * ! *
            • ErrorHandler support is separated, on the grounds that ! * pipeline stages need to share the same error handling policy. ! * For the same reason, error handler setup goes "downstream": ! * when error handlers get set, they are passed to subsequent ! * consumers. * ! *
            * *

            The {@link #chainTo chainTo()} convenience routine supports chaining to * an XMLFilterImpl, in its role as a limited functionality event *************** import org.xml.sax.helpers.XMLFilterImpl *** 137,170 **** */ public class EventFilter implements EventConsumer, ContentHandler, DTDHandler, ! LexicalHandler, DeclHandler { // SAX handlers ! private ContentHandler docHandler, docNext; ! private DTDHandler dtdHandler, dtdNext; ! private LexicalHandler lexHandler, lexNext; ! private DeclHandler declHandler, declNext; // and ideally, one more for the stuff SAX2 doesn't show ! private Locator locator; ! private EventConsumer next; ! private ErrorHandler errHandler; - /** SAX2 URI prefix for standard feature flags. */ ! public static final String FEATURE_URI ! = "http://xml.org/sax/features/"; /** SAX2 URI prefix for standard properties (mostly for handlers). */ ! public static final String PROPERTY_URI ! = "http://xml.org/sax/properties/"; /** SAX2 property identifier for {@link DeclHandler} events */ ! public static final String DECL_HANDLER ! = PROPERTY_URI + "declaration-handler"; /** SAX2 property identifier for {@link LexicalHandler} events */ ! public static final String LEXICAL_HANDLER ! = PROPERTY_URI + "lexical-handler"; ! // // These class objects will be null if the relevant class isn't linked. // Small configurations (pJava and some kinds of embedded systems) need --- 137,170 ---- */ public class EventFilter implements EventConsumer, ContentHandler, DTDHandler, ! LexicalHandler, DeclHandler { // SAX handlers ! private ContentHandler docHandler, docNext; ! private DTDHandler dtdHandler, dtdNext; ! private LexicalHandler lexHandler, lexNext; ! private DeclHandler declHandler, declNext; // and ideally, one more for the stuff SAX2 doesn't show ! private Locator locator; ! private EventConsumer next; ! private ErrorHandler errHandler; ! /** SAX2 URI prefix for standard feature flags. */ ! public static final String FEATURE_URI ! = "http://xml.org/sax/features/"; /** SAX2 URI prefix for standard properties (mostly for handlers). */ ! public static final String PROPERTY_URI ! = "http://xml.org/sax/properties/"; /** SAX2 property identifier for {@link DeclHandler} events */ ! public static final String DECL_HANDLER ! = PROPERTY_URI + "declaration-handler"; /** SAX2 property identifier for {@link LexicalHandler} events */ ! public static final String LEXICAL_HANDLER ! = PROPERTY_URI + "lexical-handler"; ! // // These class objects will be null if the relevant class isn't linked. // Small configurations (pJava and some kinds of embedded systems) need *************** public class EventFilter *** 176,186 **** // that's associated with "this" class loader. But that wouldn't be true // for classes in another package. // ! private static boolean loaded; ! private static Class nsClass; ! private static Class validClass; ! private static Class wfClass; ! private static Class xincClass; static ClassLoader getClassLoader () { --- 176,186 ---- // that's associated with "this" class loader. But that wouldn't be true // for classes in another package. // ! private static boolean loaded; ! private static Class nsClass; ! private static Class validClass; ! private static Class wfClass; ! private static Class xincClass; static ClassLoader getClassLoader () { *************** public class EventFilter *** 206,230 **** static Class loadClass (ClassLoader classLoader, String className) { ! try { ! if (classLoader == null) ! return Class.forName(className); ! else ! return classLoader.loadClass(className); ! } catch (Exception e) { ! return null; ! } } static private void loadClasses () { ! ClassLoader loader = getClassLoader (); ! nsClass = loadClass (loader, "gnu.xml.pipeline.NSFilter"); ! validClass = loadClass (loader, "gnu.xml.pipeline.ValidationConsumer"); ! wfClass = loadClass (loader, "gnu.xml.pipeline.WellFormednessFilter"); ! xincClass = loadClass (loader, "gnu.xml.pipeline.XIncludeFilter"); ! loaded = true; } --- 206,230 ---- static Class loadClass (ClassLoader classLoader, String className) { ! try { ! if (classLoader == null) ! return Class.forName(className); ! else ! return classLoader.loadClass(className); ! } catch (Exception e) { ! return null; ! } } static private void loadClasses () { ! ClassLoader loader = getClassLoader (); ! nsClass = loadClass (loader, "gnu.xml.pipeline.NSFilter"); ! validClass = loadClass (loader, "gnu.xml.pipeline.ValidationConsumer"); ! wfClass = loadClass (loader, "gnu.xml.pipeline.WellFormednessFilter"); ! xincClass = loadClass (loader, "gnu.xml.pipeline.XIncludeFilter"); ! loaded = true; } *************** public class EventFilter *** 246,391 **** * of the XMLReader implementation in use; for example, it permits * validating output of a {@link gnu.xml.util.DomParser}.

              * ! *
            • {@link NSFilter} will be removed if the producer can be ! * told not to discard namespace data, using the "namespace-prefixes" ! * feature flag. * ! *
            • {@link ValidationConsumer} will be removed if the producer ! * can be told to validate, using the "validation" feature flag. * ! *
            • {@link WellFormednessFilter} is always removed, on the ! * grounds that no XMLReader is permitted to producee malformed ! * event streams and this would just be processing overhead. * ! *
            • {@link XIncludeFilter} stops the special handling, except ! * that it's told about the "namespace-prefixes" feature of the ! * event producer so that the event stream is internally consistent. * ! *
            • The first consumer which is not one of those classes stops ! * such special handling. This means that if you want to force ! * one of those filters to be used, you could just precede it with ! * an instance of {@link EventFilter} configured as a pass-through. ! * You might need to do that if you are using an {@link NSFilter} ! * subclass to fix names found in attributes or character data. * ! *
            * *

            Other than that, this method works with any kind of event consumer, * not just event filters. Note that in all cases, the standard handlers * are assigned; any previous handler assignments for the handler will * be overridden. * ! * @param producer will deliver events to the specified consumer * @param consumer pipeline supplying event handlers to be associated ! * with the producer (may not be null) */ public static void bind (XMLReader producer, EventConsumer consumer) { ! Class klass = null; ! boolean prefixes; ! if (!loaded) ! loadClasses (); ! // DOM building, printing, layered validation, and other ! // things don't work well when prefix info is discarded. ! // Include it by default, whenever possible. ! try { ! producer.setFeature (FEATURE_URI + "namespace-prefixes", ! true); ! prefixes = true; ! } catch (SAXException e) { ! prefixes = false; ! } ! // NOTE: This loop doesn't use "instanceof", since that ! // would prevent compiling/linking without those classes ! // being present. ! while (consumer != null) { ! klass = consumer.getClass (); ! // we might have already changed this problematic SAX2 default. ! if (nsClass != null && nsClass.isAssignableFrom (klass)) { ! if (!prefixes) ! break; ! consumer = ((EventFilter)consumer).getNext (); ! // the parser _might_ do DTD validation by default ... ! // if not, maybe we can change this setting. ! } else if (validClass != null ! && validClass.isAssignableFrom (klass)) { ! try { ! producer.setFeature (FEATURE_URI + "validation", ! true); ! consumer = ((ValidationConsumer)consumer).getNext (); ! } catch (SAXException e) { ! break; ! } ! // parsers are required not to have such bugs ! } else if (wfClass != null && wfClass.isAssignableFrom (klass)) { ! consumer = ((WellFormednessFilter)consumer).getNext (); ! // stop on the first pipeline stage we can't remove ! } else ! break; ! ! if (consumer == null) ! klass = null; ! } ! // the actual setting here doesn't matter as much ! // as that producer and consumer agree ! if (xincClass != null && klass != null ! && xincClass.isAssignableFrom (klass)) ! ((XIncludeFilter)consumer).setSavingPrefixes (prefixes); ! // Some SAX parsers can't handle null handlers -- bleech ! DefaultHandler2 h = new DefaultHandler2 (); ! if (consumer != null && consumer.getContentHandler () != null) ! producer.setContentHandler (consumer.getContentHandler ()); ! else ! producer.setContentHandler (h); ! if (consumer != null && consumer.getDTDHandler () != null) ! producer.setDTDHandler (consumer.getDTDHandler ()); ! else ! producer.setDTDHandler (h); ! try { ! Object dh; ! ! if (consumer != null) ! dh = consumer.getProperty (DECL_HANDLER); ! else ! dh = null; ! if (dh == null) ! dh = h; ! producer.setProperty (DECL_HANDLER, dh); ! } catch (Exception e) { /* ignore */ } ! try { ! Object lh; ! ! if (consumer != null) ! lh = consumer.getProperty (LEXICAL_HANDLER); ! else ! lh = null; ! if (lh == null) ! lh = h; ! producer.setProperty (LEXICAL_HANDLER, lh); ! } catch (Exception e) { /* ignore */ } ! // this binding goes the other way around ! if (producer.getErrorHandler () == null) ! producer.setErrorHandler (h); ! if (consumer != null) ! consumer.setErrorHandler (producer.getErrorHandler ()); } ! /** * Initializes all handlers to null. */ ! // constructor used by PipelineFactory public EventFilter () { } --- 246,391 ---- * of the XMLReader implementation in use; for example, it permits * validating output of a {@link gnu.xml.util.DomParser}.

              * ! *
            • {@link NSFilter} will be removed if the producer can be ! * told not to discard namespace data, using the "namespace-prefixes" ! * feature flag. * ! *
            • {@link ValidationConsumer} will be removed if the producer ! * can be told to validate, using the "validation" feature flag. * ! *
            • {@link WellFormednessFilter} is always removed, on the ! * grounds that no XMLReader is permitted to producee malformed ! * event streams and this would just be processing overhead. * ! *
            • {@link XIncludeFilter} stops the special handling, except ! * that it's told about the "namespace-prefixes" feature of the ! * event producer so that the event stream is internally consistent. * ! *
            • The first consumer which is not one of those classes stops ! * such special handling. This means that if you want to force ! * one of those filters to be used, you could just precede it with ! * an instance of {@link EventFilter} configured as a pass-through. ! * You might need to do that if you are using an {@link NSFilter} ! * subclass to fix names found in attributes or character data. * ! *
            * *

            Other than that, this method works with any kind of event consumer, * not just event filters. Note that in all cases, the standard handlers * are assigned; any previous handler assignments for the handler will * be overridden. * ! * @param producer will deliver events to the specified consumer * @param consumer pipeline supplying event handlers to be associated ! * with the producer (may not be null) */ public static void bind (XMLReader producer, EventConsumer consumer) { ! Class klass = null; ! boolean prefixes; ! if (!loaded) ! loadClasses (); ! // DOM building, printing, layered validation, and other ! // things don't work well when prefix info is discarded. ! // Include it by default, whenever possible. ! try { ! producer.setFeature (FEATURE_URI + "namespace-prefixes", ! true); ! prefixes = true; ! } catch (SAXException e) { ! prefixes = false; ! } ! // NOTE: This loop doesn't use "instanceof", since that ! // would prevent compiling/linking without those classes ! // being present. ! while (consumer != null) { ! klass = consumer.getClass (); ! // we might have already changed this problematic SAX2 default. ! if (nsClass != null && nsClass.isAssignableFrom (klass)) { ! if (!prefixes) ! break; ! consumer = ((EventFilter)consumer).getNext (); ! // the parser _might_ do DTD validation by default ... ! // if not, maybe we can change this setting. ! } else if (validClass != null ! && validClass.isAssignableFrom (klass)) { ! try { ! producer.setFeature (FEATURE_URI + "validation", ! true); ! consumer = ((ValidationConsumer)consumer).getNext (); ! } catch (SAXException e) { ! break; ! } ! // parsers are required not to have such bugs ! } else if (wfClass != null && wfClass.isAssignableFrom (klass)) { ! consumer = ((WellFormednessFilter)consumer).getNext (); ! // stop on the first pipeline stage we can't remove ! } else ! break; ! if (consumer == null) ! klass = null; ! } ! // the actual setting here doesn't matter as much ! // as that producer and consumer agree ! if (xincClass != null && klass != null ! && xincClass.isAssignableFrom (klass)) ! ((XIncludeFilter)consumer).setSavingPrefixes (prefixes); ! // Some SAX parsers can't handle null handlers -- bleech ! DefaultHandler2 h = new DefaultHandler2 (); ! if (consumer != null && consumer.getContentHandler () != null) ! producer.setContentHandler (consumer.getContentHandler ()); ! else ! producer.setContentHandler (h); ! if (consumer != null && consumer.getDTDHandler () != null) ! producer.setDTDHandler (consumer.getDTDHandler ()); ! else ! producer.setDTDHandler (h); ! try { ! Object dh; ! ! if (consumer != null) ! dh = consumer.getProperty (DECL_HANDLER); ! else ! dh = null; ! if (dh == null) ! dh = h; ! producer.setProperty (DECL_HANDLER, dh); ! } catch (Exception e) { /* ignore */ } ! try { ! Object lh; ! ! if (consumer != null) ! lh = consumer.getProperty (LEXICAL_HANDLER); ! else ! lh = null; ! if (lh == null) ! lh = h; ! producer.setProperty (LEXICAL_HANDLER, lh); ! } catch (Exception e) { /* ignore */ } ! ! // this binding goes the other way around ! if (producer.getErrorHandler () == null) ! producer.setErrorHandler (h); ! if (consumer != null) ! consumer.setErrorHandler (producer.getErrorHandler ()); } ! /** * Initializes all handlers to null. */ ! // constructor used by PipelineFactory public EventFilter () { } *************** public class EventFilter *** 394,423 **** * the specified consumer, making it easy to pass events through. * If the consumer is null, all handlers are initialzed to null. */ ! // constructor used by PipelineFactory public EventFilter (EventConsumer consumer) { ! if (consumer == null) ! return; ! next = consumer; ! // We delegate through the "xxNext" handlers, and ! // report the "xxHandler" ones on our input side. ! // Normally a subclass would both override handler ! // methods and register itself as the "xxHandler". ! docHandler = docNext = consumer.getContentHandler (); ! dtdHandler = dtdNext = consumer.getDTDHandler (); ! try { ! declHandler = declNext = (DeclHandler) ! consumer.getProperty (DECL_HANDLER); ! } catch (SAXException e) { /* leave value null */ } ! try { ! lexHandler = lexNext = (LexicalHandler) ! consumer.getProperty (LEXICAL_HANDLER); ! } catch (SAXException e) { /* leave value null */ } } /** --- 394,423 ---- * the specified consumer, making it easy to pass events through. * If the consumer is null, all handlers are initialzed to null. */ ! // constructor used by PipelineFactory public EventFilter (EventConsumer consumer) { ! if (consumer == null) ! return; ! next = consumer; ! // We delegate through the "xxNext" handlers, and ! // report the "xxHandler" ones on our input side. ! // Normally a subclass would both override handler ! // methods and register itself as the "xxHandler". ! docHandler = docNext = consumer.getContentHandler (); ! dtdHandler = dtdNext = consumer.getDTDHandler (); ! try { ! declHandler = declNext = (DeclHandler) ! consumer.getProperty (DECL_HANDLER); ! } catch (SAXException e) { /* leave value null */ } ! try { ! lexHandler = lexNext = (LexicalHandler) ! consumer.getProperty (LEXICAL_HANDLER); ! } catch (SAXException e) { /* leave value null */ } } /** *************** public class EventFilter *** 442,474 **** * * @param next the next downstream component of the pipeline. * @exception IllegalStateException if the "next" consumer has ! * already been set through the constructor. */ public void chainTo (XMLFilterImpl next) { ! if (this.next != null) ! throw new IllegalStateException (); ! docNext = next.getContentHandler (); ! if (docHandler == null) ! docHandler = docNext; ! dtdNext = next.getDTDHandler (); ! if (dtdHandler == null) ! dtdHandler = dtdNext; ! try { ! declNext = (DeclHandler) next.getProperty (DECL_HANDLER); ! if (declHandler == null) ! declHandler = declNext; ! } catch (SAXException e) { /* leave value null */ } ! try { ! lexNext = (LexicalHandler) next.getProperty (LEXICAL_HANDLER); ! if (lexHandler == null) ! lexHandler = lexNext; ! } catch (SAXException e) { /* leave value null */ } ! if (errHandler != null) ! next.setErrorHandler (errHandler); } /** --- 442,474 ---- * * @param next the next downstream component of the pipeline. * @exception IllegalStateException if the "next" consumer has ! * already been set through the constructor. */ public void chainTo (XMLFilterImpl next) { ! if (this.next != null) ! throw new IllegalStateException (); ! docNext = next.getContentHandler (); ! if (docHandler == null) ! docHandler = docNext; ! dtdNext = next.getDTDHandler (); ! if (dtdHandler == null) ! dtdHandler = dtdNext; ! try { ! declNext = (DeclHandler) next.getProperty (DECL_HANDLER); ! if (declHandler == null) ! declHandler = declNext; ! } catch (SAXException e) { /* leave value null */ } ! try { ! lexNext = (LexicalHandler) next.getProperty (LEXICAL_HANDLER); ! if (lexHandler == null) ! lexHandler = lexNext; ! } catch (SAXException e) { /* leave value null */ } ! if (errHandler != null) ! next.setErrorHandler (errHandler); } /** *************** public class EventFilter *** 477,485 **** */ final public void setErrorHandler (ErrorHandler handler) { ! errHandler = handler; ! if (next != null) ! next.setErrorHandler (handler); } /** --- 477,485 ---- */ final public void setErrorHandler (ErrorHandler handler) { ! errHandler = handler; ! if (next != null) ! next.setErrorHandler (handler); } /** *************** public class EventFilter *** 488,494 **** */ final public ErrorHandler getErrorHandler () { ! return errHandler; } --- 488,494 ---- */ final public ErrorHandler getErrorHandler () { ! return errHandler; } *************** public class EventFilter *** 497,503 **** * is no such handler. */ final public EventConsumer getNext () ! { return next; } /** --- 497,503 ---- * is no such handler. */ final public EventConsumer getNext () ! { return next; } /** *************** public class EventFilter *** 508,520 **** */ final public void setContentHandler (ContentHandler h) { ! docHandler = h; } /** Returns the content handler being used. */ final public ContentHandler getContentHandler () { ! return docHandler; } /** --- 508,520 ---- */ final public void setContentHandler (ContentHandler h) { ! docHandler = h; } /** Returns the content handler being used. */ final public ContentHandler getContentHandler () { ! return docHandler; } /** *************** public class EventFilter *** 524,535 **** * probably pointed to the next consumer by the base class constructor. */ final public void setDTDHandler (DTDHandler h) ! { dtdHandler = h; } /** Returns the dtd handler being used. */ final public DTDHandler getDTDHandler () { ! return dtdHandler; } /** --- 524,535 ---- * probably pointed to the next consumer by the base class constructor. */ final public void setDTDHandler (DTDHandler h) ! { dtdHandler = h; } /** Returns the dtd handler being used. */ final public DTDHandler getDTDHandler () { ! return dtdHandler; } /** *************** public class EventFilter *** 541,576 **** final public void setProperty (String id, Object o) throws SAXNotRecognizedException, SAXNotSupportedException { ! try { ! Object value = getProperty (id); ! if (value == o) ! return; ! if (DECL_HANDLER.equals (id)) { ! declHandler = (DeclHandler) o; ! return; ! } ! if (LEXICAL_HANDLER.equals (id)) { ! lexHandler = (LexicalHandler) o; ! return; ! } ! throw new SAXNotSupportedException (id); ! } catch (ClassCastException e) { ! throw new SAXNotSupportedException (id); ! } } /** Retrieves a property of unknown intent (usually a handler) */ final public Object getProperty (String id) throws SAXNotRecognizedException { ! if (DECL_HANDLER.equals (id)) ! return declHandler; ! if (LEXICAL_HANDLER.equals (id)) ! return lexHandler; ! throw new SAXNotRecognizedException (id); } /** --- 541,576 ---- final public void setProperty (String id, Object o) throws SAXNotRecognizedException, SAXNotSupportedException { ! try { ! Object value = getProperty (id); ! if (value == o) ! return; ! if (DECL_HANDLER.equals (id)) { ! declHandler = (DeclHandler) o; ! return; ! } ! if (LEXICAL_HANDLER.equals (id)) { ! lexHandler = (LexicalHandler) o; ! return; ! } ! throw new SAXNotSupportedException (id); ! } catch (ClassCastException e) { ! throw new SAXNotSupportedException (id); ! } } /** Retrieves a property of unknown intent (usually a handler) */ final public Object getProperty (String id) throws SAXNotRecognizedException { ! if (DECL_HANDLER.equals (id)) ! return declHandler; ! if (LEXICAL_HANDLER.equals (id)) ! return lexHandler; ! throw new SAXNotRecognizedException (id); } /** *************** public class EventFilter *** 578,584 **** * (or a subclass) is handling {@link ContentHandler } events. */ public Locator getDocumentLocator () ! { return locator; } // CONTENT HANDLER DELEGATIONS --- 578,584 ---- * (or a subclass) is handling {@link ContentHandler } events. */ public Locator getDocumentLocator () ! { return locator; } // CONTENT HANDLER DELEGATIONS *************** public class EventFilter *** 586,698 **** /** SAX2: passes this callback to the next consumer, if any */ public void setDocumentLocator (Locator locator) { ! this.locator = locator; ! if (docNext != null) ! docNext.setDocumentLocator (locator); } /** SAX2: passes this callback to the next consumer, if any */ public void startDocument () throws SAXException { ! if (docNext != null) ! docNext.startDocument (); } /** SAX2: passes this callback to the next consumer, if any */ public void skippedEntity (String name) throws SAXException { ! if (docNext != null) ! docNext.skippedEntity (name); } /** SAX2: passes this callback to the next consumer, if any */ public void processingInstruction (String target, String data) throws SAXException { ! if (docNext != null) ! docNext.processingInstruction (target, data); } /** SAX2: passes this callback to the next consumer, if any */ public void characters (char ch [], int start, int length) throws SAXException { ! if (docNext != null) ! docNext.characters (ch, start, length); } /** SAX2: passes this callback to the next consumer, if any */ public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! if (docNext != null) ! docNext.ignorableWhitespace (ch, start, length); } /** SAX2: passes this callback to the next consumer, if any */ public void startPrefixMapping (String prefix, String uri) throws SAXException { ! if (docNext != null) ! docNext.startPrefixMapping (prefix, uri); } /** SAX2: passes this callback to the next consumer, if any */ public void startElement ( ! String uri, String localName, ! String qName, Attributes atts ) throws SAXException { ! if (docNext != null) ! docNext.startElement (uri, localName, qName, atts); } /** SAX2: passes this callback to the next consumer, if any */ public void endElement (String uri, String localName, String qName) throws SAXException { ! if (docNext != null) ! docNext.endElement (uri, localName, qName); } /** SAX2: passes this callback to the next consumer, if any */ public void endPrefixMapping (String prefix) throws SAXException { ! if (docNext != null) ! docNext.endPrefixMapping (prefix); } /** SAX2: passes this callback to the next consumer, if any */ public void endDocument () throws SAXException { ! if (docNext != null) ! docNext.endDocument (); ! locator = null; } // DTD HANDLER DELEGATIONS ! /** SAX1: passes this callback to the next consumer, if any */ public void unparsedEntityDecl ( ! String name, ! String publicId, ! String systemId, ! String notationName ) throws SAXException { ! if (dtdNext != null) ! dtdNext.unparsedEntityDecl (name, publicId, systemId, notationName); } ! /** SAX1: passes this callback to the next consumer, if any */ public void notationDecl (String name, String publicId, String systemId) throws SAXException { ! if (dtdNext != null) ! dtdNext.notationDecl (name, publicId, systemId); } ! // LEXICAL HANDLER DELEGATIONS --- 586,698 ---- /** SAX2: passes this callback to the next consumer, if any */ public void setDocumentLocator (Locator locator) { ! this.locator = locator; ! if (docNext != null) ! docNext.setDocumentLocator (locator); } /** SAX2: passes this callback to the next consumer, if any */ public void startDocument () throws SAXException { ! if (docNext != null) ! docNext.startDocument (); } /** SAX2: passes this callback to the next consumer, if any */ public void skippedEntity (String name) throws SAXException { ! if (docNext != null) ! docNext.skippedEntity (name); } /** SAX2: passes this callback to the next consumer, if any */ public void processingInstruction (String target, String data) throws SAXException { ! if (docNext != null) ! docNext.processingInstruction (target, data); } /** SAX2: passes this callback to the next consumer, if any */ public void characters (char ch [], int start, int length) throws SAXException { ! if (docNext != null) ! docNext.characters (ch, start, length); } /** SAX2: passes this callback to the next consumer, if any */ public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! if (docNext != null) ! docNext.ignorableWhitespace (ch, start, length); } /** SAX2: passes this callback to the next consumer, if any */ public void startPrefixMapping (String prefix, String uri) throws SAXException { ! if (docNext != null) ! docNext.startPrefixMapping (prefix, uri); } /** SAX2: passes this callback to the next consumer, if any */ public void startElement ( ! String uri, String localName, ! String qName, Attributes atts ) throws SAXException { ! if (docNext != null) ! docNext.startElement (uri, localName, qName, atts); } /** SAX2: passes this callback to the next consumer, if any */ public void endElement (String uri, String localName, String qName) throws SAXException { ! if (docNext != null) ! docNext.endElement (uri, localName, qName); } /** SAX2: passes this callback to the next consumer, if any */ public void endPrefixMapping (String prefix) throws SAXException { ! if (docNext != null) ! docNext.endPrefixMapping (prefix); } /** SAX2: passes this callback to the next consumer, if any */ public void endDocument () throws SAXException { ! if (docNext != null) ! docNext.endDocument (); ! locator = null; } // DTD HANDLER DELEGATIONS ! /** SAX1: passes this callback to the next consumer, if any */ public void unparsedEntityDecl ( ! String name, ! String publicId, ! String systemId, ! String notationName ) throws SAXException { ! if (dtdNext != null) ! dtdNext.unparsedEntityDecl (name, publicId, systemId, notationName); } ! /** SAX1: passes this callback to the next consumer, if any */ public void notationDecl (String name, String publicId, String systemId) throws SAXException { ! if (dtdNext != null) ! dtdNext.notationDecl (name, publicId, systemId); } ! // LEXICAL HANDLER DELEGATIONS *************** public class EventFilter *** 700,739 **** public void startDTD (String name, String publicId, String systemId) throws SAXException { ! if (lexNext != null) ! lexNext.startDTD (name, publicId, systemId); } /** SAX2: passes this callback to the next consumer, if any */ public void endDTD () throws SAXException { ! if (lexNext != null) ! lexNext.endDTD (); } /** SAX2: passes this callback to the next consumer, if any */ public void comment (char ch [], int start, int length) throws SAXException { ! if (lexNext != null) ! lexNext.comment (ch, start, length); } /** SAX2: passes this callback to the next consumer, if any */ public void startCDATA () throws SAXException { ! if (lexNext != null) ! lexNext.startCDATA (); } /** SAX2: passes this callback to the next consumer, if any */ public void endCDATA () throws SAXException { ! if (lexNext != null) ! lexNext.endCDATA (); } /** --- 700,739 ---- public void startDTD (String name, String publicId, String systemId) throws SAXException { ! if (lexNext != null) ! lexNext.startDTD (name, publicId, systemId); } /** SAX2: passes this callback to the next consumer, if any */ public void endDTD () throws SAXException { ! if (lexNext != null) ! lexNext.endDTD (); } /** SAX2: passes this callback to the next consumer, if any */ public void comment (char ch [], int start, int length) throws SAXException { ! if (lexNext != null) ! lexNext.comment (ch, start, length); } /** SAX2: passes this callback to the next consumer, if any */ public void startCDATA () throws SAXException { ! if (lexNext != null) ! lexNext.startCDATA (); } /** SAX2: passes this callback to the next consumer, if any */ public void endCDATA () throws SAXException { ! if (lexNext != null) ! lexNext.endCDATA (); } /** *************** public class EventFilter *** 742,749 **** public void startEntity (String name) throws SAXException { ! if (lexNext != null) ! lexNext.startEntity (name); } /** --- 742,749 ---- public void startEntity (String name) throws SAXException { ! if (lexNext != null) ! lexNext.startEntity (name); } /** *************** public class EventFilter *** 752,761 **** public void endEntity (String name) throws SAXException { ! if (lexNext != null) ! lexNext.endEntity (name); } ! // DECLARATION HANDLER DELEGATIONS --- 752,761 ---- public void endEntity (String name) throws SAXException { ! if (lexNext != null) ! lexNext.endEntity (name); } ! // DECLARATION HANDLER DELEGATIONS *************** public class EventFilter *** 764,796 **** public void elementDecl (String name, String model) throws SAXException { ! if (declNext != null) ! declNext.elementDecl (name, model); } /** SAX2: passes this callback to the next consumer, if any */ public void attributeDecl (String eName, String aName, ! String type, String mode, String value) throws SAXException { ! if (declNext != null) ! declNext.attributeDecl (eName, aName, type, mode, value); } /** SAX2: passes this callback to the next consumer, if any */ public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException { ! if (declNext != null) ! declNext.externalEntityDecl (name, publicId, systemId); } /** SAX2: passes this callback to the next consumer, if any */ public void internalEntityDecl (String name, String value) throws SAXException { ! if (declNext != null) ! declNext.internalEntityDecl (name, value); } } --- 764,796 ---- public void elementDecl (String name, String model) throws SAXException { ! if (declNext != null) ! declNext.elementDecl (name, model); } /** SAX2: passes this callback to the next consumer, if any */ public void attributeDecl (String eName, String aName, ! String type, String mode, String value) throws SAXException { ! if (declNext != null) ! declNext.attributeDecl (eName, aName, type, mode, value); } /** SAX2: passes this callback to the next consumer, if any */ public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException { ! if (declNext != null) ! declNext.externalEntityDecl (name, publicId, systemId); } /** SAX2: passes this callback to the next consumer, if any */ public void internalEntityDecl (String name, String value) throws SAXException { ! if (declNext != null) ! declNext.internalEntityDecl (name, value); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/LinkFilter.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/LinkFilter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/LinkFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/LinkFilter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LinkFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LinkFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 38,44 **** package gnu.xml.pipeline; import java.io.IOException; ! import java.net.URL; import java.util.Enumeration; import java.util.Vector; --- 38,44 ---- package gnu.xml.pipeline; import java.io.IOException; ! import java.net.URL; import java.util.Enumeration; import java.util.Vector; *************** import org.xml.sax.SAXException; *** 65,85 **** public class LinkFilter extends EventFilter { // for storing URIs ! private Vector vector = new Vector (); ! // struct for "full" link record (tbd) ! // these for troubleshooting original source: ! // original uri ! // uri as resolved (base, relative, etc) ! // URI of originating doc ! // line # ! // original element + attrs (img src, desc, etc) ! // XLink model of the link ... for inter-site pairups ? ! private String baseURI; ! private boolean siteRestricted = false; // // XXX leverage blacklist info (like robots.txt) --- 65,85 ---- public class LinkFilter extends EventFilter { // for storing URIs ! private Vector vector = new Vector (); ! // struct for "full" link record (tbd) ! // these for troubleshooting original source: ! // original uri ! // uri as resolved (base, relative, etc) ! // URI of originating doc ! // line # ! // original element + attrs (img src, desc, etc) ! // XLink model of the link ... for inter-site pairups ? ! private String baseURI; ! private boolean siteRestricted = false; // // XXX leverage blacklist info (like robots.txt) *************** public class LinkFilter extends EventFil *** 93,102 **** * Constructs a new event filter, which collects links in private data * structure for later enumeration. */ ! // constructor used by PipelineFactory public LinkFilter () { ! super.setContentHandler (this); } --- 93,102 ---- * Constructs a new event filter, which collects links in private data * structure for later enumeration. */ ! // constructor used by PipelineFactory public LinkFilter () { ! super.setContentHandler (this); } *************** public class LinkFilter extends EventFil *** 105,115 **** * structure for later enumeration and passes all events, unmodified, * to the next consumer. */ ! // constructor used by PipelineFactory public LinkFilter (EventConsumer next) { ! super (next); ! super.setContentHandler (this); } --- 105,115 ---- * structure for later enumeration and passes all events, unmodified, * to the next consumer. */ ! // constructor used by PipelineFactory public LinkFilter (EventConsumer next) { ! super (next); ! super.setContentHandler (this); } *************** public class LinkFilter extends EventFil *** 121,127 **** */ public Enumeration getLinks () { ! return vector.elements (); } /** --- 121,127 ---- */ public Enumeration getLinks () { ! return vector.elements (); } /** *************** public class LinkFilter extends EventFil *** 130,136 **** */ public void removeAllLinks () { ! vector = new Vector (); } --- 130,136 ---- */ public void removeAllLinks () { ! vector = new Vector (); } *************** public class LinkFilter extends EventFil *** 138,221 **** * Collects URIs for (X)HTML content from elements which hold them. */ public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ) throws SAXException { ! String link; ! // Recognize XHTML links. ! if ("http://www.w3.org/1999/xhtml".equals (uri)) { ! if ("a".equals (localName) || "base".equals (localName) ! || "area".equals (localName)) ! link = atts.getValue ("href"); ! else if ("iframe".equals (localName) || "frame".equals (localName)) ! link = atts.getValue ("src"); ! else if ("blockquote".equals (localName) || "q".equals (localName) ! || "ins".equals (localName) || "del".equals (localName)) ! link = atts.getValue ("cite"); ! else ! link = null; ! link = maybeAddLink (link); ! // "base" modifies designated baseURI ! if ("base".equals (localName) && link != null) ! baseURI = link; ! if ("iframe".equals (localName) || "img".equals (localName)) ! maybeAddLink (atts.getValue ("longdesc")); ! } ! ! super.startElement (uri, localName, qName, atts); } private String maybeAddLink (String link) { ! int index; ! // ignore empty links and fragments inside docs ! if (link == null) ! return null; ! if ((index = link.indexOf ("#")) >= 0) ! link = link.substring (0, index); ! if (link.equals ("")) ! return null; ! try { ! // get the real URI ! URL base = new URL ((baseURI != null) ! ? baseURI ! : getDocumentLocator ().getSystemId ()); ! URL url = new URL (base, link); ! link = url.toString (); ! // ignore duplicates ! if (vector.contains (link)) ! return link; ! // other than what "base" does, stick to original site: ! if (siteRestricted) { ! // don't switch protocols ! if (!base.getProtocol ().equals (url.getProtocol ())) ! return link; ! // don't switch servers ! if (base.getHost () != null ! && !base.getHost ().equals (url.getHost ())) ! return link; ! } ! vector.addElement (link); ! return link; ! ! } catch (IOException e) { ! // bad URLs we don't want ! } ! return null; } /** --- 138,221 ---- * Collects URIs for (X)HTML content from elements which hold them. */ public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ) throws SAXException { ! String link; ! // Recognize XHTML links. ! if ("http://www.w3.org/1999/xhtml".equals (uri)) { ! if ("a".equals (localName) || "base".equals (localName) ! || "area".equals (localName)) ! link = atts.getValue ("href"); ! else if ("iframe".equals (localName) || "frame".equals (localName)) ! link = atts.getValue ("src"); ! else if ("blockquote".equals (localName) || "q".equals (localName) ! || "ins".equals (localName) || "del".equals (localName)) ! link = atts.getValue ("cite"); ! else ! link = null; ! link = maybeAddLink (link); ! // "base" modifies designated baseURI ! if ("base".equals (localName) && link != null) ! baseURI = link; ! if ("iframe".equals (localName) || "img".equals (localName)) ! maybeAddLink (atts.getValue ("longdesc")); ! } ! ! super.startElement (uri, localName, qName, atts); } private String maybeAddLink (String link) { ! int index; ! // ignore empty links and fragments inside docs ! if (link == null) ! return null; ! if ((index = link.indexOf ("#")) >= 0) ! link = link.substring (0, index); ! if (link.equals ("")) ! return null; ! try { ! // get the real URI ! URL base = new URL ((baseURI != null) ! ? baseURI ! : getDocumentLocator ().getSystemId ()); ! URL url = new URL (base, link); ! link = url.toString (); ! // ignore duplicates ! if (vector.contains (link)) ! return link; ! // other than what "base" does, stick to original site: ! if (siteRestricted) { ! // don't switch protocols ! if (!base.getProtocol ().equals (url.getProtocol ())) ! return link; ! // don't switch servers ! if (base.getHost () != null ! && !base.getHost ().equals (url.getHost ())) ! return link; ! } ! vector.addElement (link); ! return link; ! ! } catch (IOException e) { ! // bad URLs we don't want ! } ! return null; } /** *************** public class LinkFilter extends EventFil *** 224,231 **** public void startDocument () throws SAXException { ! if (getDocumentLocator () == null) ! throw new SAXException ("no Locator!"); } /** --- 224,231 ---- public void startDocument () throws SAXException { ! if (getDocumentLocator () == null) ! throw new SAXException ("no Locator!"); } /** *************** public class LinkFilter extends EventFil *** 236,242 **** public void endDocument () throws SAXException { ! baseURI = null; ! super.endDocument (); } } --- 236,242 ---- public void endDocument () throws SAXException { ! baseURI = null; ! super.endDocument (); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/NSFilter.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/NSFilter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/NSFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/NSFilter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NSFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NSFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.helpers.NamespaceSupp *** 56,78 **** * information using XML. There are various common ways that such data * gets discarded:

              * ! *
            • By default, SAX2 parsers must discard the "xmlns*" ! * attributes, and may also choose not to report properly prefixed ! * names for elements or attributes. (Some parsers may support ! * changing the namespace-prefixes value from the default ! * to true, effectively eliminating the need to use this ! * filter on their output.) * ! *
            • When event streams are generated from a DOM tree, they may ! * have never have had prefixes or declarations for namespaces; or ! * the existing prefixes or declarations may have been invalidated ! * by structural modifications to that DOM tree. * ! *
            • Other software writing SAX event streams won't necessarily ! * be worrying about prefix management, and so they will need to ! * have a transparent solution for managing them. * ! *
            * *

            This filter uses a heuristic to choose the prefix to assign to any * particular name which wasn't already corectly prefixed. The associated --- 56,78 ---- * information using XML. There are various common ways that such data * gets discarded:

              * ! *
            • By default, SAX2 parsers must discard the "xmlns*" ! * attributes, and may also choose not to report properly prefixed ! * names for elements or attributes. (Some parsers may support ! * changing the namespace-prefixes value from the default ! * to true, effectively eliminating the need to use this ! * filter on their output.) * ! *
            • When event streams are generated from a DOM tree, they may ! * have never have had prefixes or declarations for namespaces; or ! * the existing prefixes or declarations may have been invalidated ! * by structural modifications to that DOM tree. * ! *
            • Other software writing SAX event streams won't necessarily ! * be worrying about prefix management, and so they will need to ! * have a transparent solution for managing them. * ! *
            * *

            This filter uses a heuristic to choose the prefix to assign to any * particular name which wasn't already corectly prefixed. The associated *************** import org.xml.sax.helpers.NamespaceSupp *** 91,145 **** */ public class NSFilter extends EventFilter { ! private NamespaceSupport nsStack = new NamespaceSupport (); ! private Stack elementStack = new Stack (); ! private boolean pushedContext; ! private String nsTemp [] = new String [3]; ! private AttributesImpl attributes = new AttributesImpl (); ! private boolean usedDefault; // gensymmed prefixes use this root name ! private static final String prefixRoot = "prefix-"; - /** * Passes events through to the specified consumer, after first * processing them. * * @param next the next event consumer to receive events. */ ! // constructor used by PipelineFactory public NSFilter (EventConsumer next) { ! super (next); ! setContentHandler (this); } private void fatalError (String message) throws SAXException { ! SAXParseException e; ! ErrorHandler handler = getErrorHandler (); ! Locator locator = getDocumentLocator (); ! if (locator == null) ! e = new SAXParseException (message, null, null, -1, -1); ! else ! e = new SAXParseException (message, locator); ! if (handler != null) ! handler.fatalError (e); ! throw e; } public void startDocument () throws SAXException { ! elementStack.removeAllElements (); ! nsStack.reset (); ! pushedContext = false; ! super.startDocument (); } /** --- 91,145 ---- */ public class NSFilter extends EventFilter { ! private NamespaceSupport nsStack = new NamespaceSupport (); ! private Stack elementStack = new Stack (); ! private boolean pushedContext; ! private String nsTemp [] = new String [3]; ! private AttributesImpl attributes = new AttributesImpl (); ! private boolean usedDefault; // gensymmed prefixes use this root name ! private static final String prefixRoot = "prefix-"; ! /** * Passes events through to the specified consumer, after first * processing them. * * @param next the next event consumer to receive events. */ ! // constructor used by PipelineFactory public NSFilter (EventConsumer next) { ! super (next); ! setContentHandler (this); } private void fatalError (String message) throws SAXException { ! SAXParseException e; ! ErrorHandler handler = getErrorHandler (); ! Locator locator = getDocumentLocator (); ! if (locator == null) ! e = new SAXParseException (message, null, null, -1, -1); ! else ! e = new SAXParseException (message, locator); ! if (handler != null) ! handler.fatalError (e); ! throw e; } public void startDocument () throws SAXException { ! elementStack.removeAllElements (); ! nsStack.reset (); ! pushedContext = false; ! super.startDocument (); } /** *************** public class NSFilter extends EventFilte *** 151,326 **** public void startPrefixMapping (String prefix, String uri) throws SAXException { ! if (pushedContext == false) { ! nsStack.pushContext (); ! pushedContext = true; ! } ! // this check is awkward, but the paranoia prevents big trouble ! for (Enumeration e = nsStack.getDeclaredPrefixes (); ! e.hasMoreElements (); ! /* NOP */ ) { ! String declared = (String) e.nextElement (); ! if (!declared.equals (prefix)) ! continue; ! if (uri.equals (nsStack.getURI (prefix))) ! return; ! fatalError ("inconsistent binding for prefix '" + prefix ! + "' ... " + uri + " (was " + nsStack.getURI (prefix) + ")"); ! } ! if (!nsStack.declarePrefix (prefix, uri)) ! fatalError ("illegal prefix declared: " + prefix); } private String fixName (String ns, String l, String name, boolean isAttr) throws SAXException { ! if ("".equals (name) || name == null) { ! name = l; ! if ("".equals (name) || name == null) ! fatalError ("empty/null name"); ! } ! // can we correctly process the name as-is? ! // handles "element scope" attribute names here. ! if (nsStack.processName (name, nsTemp, isAttr) != null ! && nsTemp [0].equals (ns) ! ) { ! return nsTemp [2]; ! } ! // nope, gotta modify the name or declare a default mapping ! int temp; ! // get rid of any current prefix ! if ((temp = name.indexOf (':')) >= 0) { ! name = name.substring (temp + 1); ! // ... maybe that's enough (use/prefer default namespace) ... ! if (!isAttr && nsStack.processName (name, nsTemp, false) != null ! && nsTemp [0].equals (ns) ! ) { ! return nsTemp [2]; ! } ! } ! // must we define and use the default/undefined prefix? ! if ("".equals (ns)) { ! if (isAttr) ! fatalError ("processName bug"); ! if (attributes.getIndex ("xmlns") != -1) ! fatalError ("need to undefine default NS, but it's bound: " ! + attributes.getValue ("xmlns")); ! ! nsStack.declarePrefix ("", ""); ! attributes.addAttribute ("", "", "xmlns", "CDATA", ""); ! return name; ! } ! // is there at least one non-null prefix we can use? ! for (Enumeration e = nsStack.getDeclaredPrefixes (); ! e.hasMoreElements (); ! /* NOP */) { ! String prefix = (String) e.nextElement (); ! String uri = nsStack.getURI (prefix); ! if (uri == null || !uri.equals (ns)) ! continue; ! return prefix + ":" + name; ! } ! // no such luck. create a prefix name, declare it, use it. ! for (temp = 0; temp >= 0; temp++) { ! String prefix = prefixRoot + temp; ! if (nsStack.getURI (prefix) == null) { ! nsStack.declarePrefix (prefix, ns); ! attributes.addAttribute ("", "", "xmlns:" + prefix, ! "CDATA", ns); ! return prefix + ":" + name; ! } ! } ! fatalError ("too many prefixes genned"); ! // NOTREACHED ! return null; } public void startElement ( ! String uri, String localName, ! String qName, Attributes atts ) throws SAXException { ! if (!pushedContext) ! nsStack.pushContext (); ! pushedContext = false; ! // make sure we have all NS declarations handy before we start ! int length = atts.getLength (); ! for (int i = 0; i < length; i++) { ! String aName = atts.getQName (i); ! if (!aName.startsWith ("xmlns")) ! continue; ! String prefix; ! if ("xmlns".equals (aName)) ! prefix = ""; ! else if (aName.indexOf (':') == 5) ! prefix = aName.substring (6); ! else // "xmlnsfoo" etc. ! continue; ! startPrefixMapping (prefix, atts.getValue (i)); ! } ! // put namespace decls at the start of our regenned attlist ! attributes.clear (); ! for (Enumeration e = nsStack.getDeclaredPrefixes (); ! e.hasMoreElements (); ! /* NOP */) { ! String prefix = (String) e.nextElement (); ! attributes.addAttribute ("", "", ! ("".equals (prefix) ! ? "xmlns" ! : "xmlns:" + prefix), ! "CDATA", ! nsStack.getURI (prefix)); ! } ! // name fixups: element, then attributes. ! // fixName may declare a new prefix or, for the element, ! // redeclare the default (if element name needs it). ! qName = fixName (uri, localName, qName, false); ! for (int i = 0; i < length; i++) { ! String aName = atts.getQName (i); ! String aNS = atts.getURI (i); ! String aLocal = atts.getLocalName (i); ! String aType = atts.getType (i); ! String aValue = atts.getValue (i); ! if (aName.startsWith ("xmlns")) ! continue; ! aName = fixName (aNS, aLocal, aName, true); ! attributes.addAttribute (aNS, aLocal, aName, aType, aValue); ! } ! elementStack.push (qName); ! // pass event along, with cleaned-up names and decls. ! super.startElement (uri, localName, qName, attributes); } public void endElement (String uri, String localName, String qName) throws SAXException { ! nsStack.popContext (); ! qName = (String) elementStack.pop (); ! super.endElement (uri, localName, qName); } /** --- 151,326 ---- public void startPrefixMapping (String prefix, String uri) throws SAXException { ! if (pushedContext == false) { ! nsStack.pushContext (); ! pushedContext = true; ! } ! // this check is awkward, but the paranoia prevents big trouble ! for (Enumeration e = nsStack.getDeclaredPrefixes (); ! e.hasMoreElements (); ! /* NOP */ ) { ! String declared = (String) e.nextElement (); ! if (!declared.equals (prefix)) ! continue; ! if (uri.equals (nsStack.getURI (prefix))) ! return; ! fatalError ("inconsistent binding for prefix '" + prefix ! + "' ... " + uri + " (was " + nsStack.getURI (prefix) + ")"); ! } ! if (!nsStack.declarePrefix (prefix, uri)) ! fatalError ("illegal prefix declared: " + prefix); } private String fixName (String ns, String l, String name, boolean isAttr) throws SAXException { ! if ("".equals (name) || name == null) { ! name = l; ! if ("".equals (name) || name == null) ! fatalError ("empty/null name"); ! } ! // can we correctly process the name as-is? ! // handles "element scope" attribute names here. ! if (nsStack.processName (name, nsTemp, isAttr) != null ! && nsTemp [0].equals (ns) ! ) { ! return nsTemp [2]; ! } ! // nope, gotta modify the name or declare a default mapping ! int temp; ! // get rid of any current prefix ! if ((temp = name.indexOf (':')) >= 0) { ! name = name.substring (temp + 1); ! // ... maybe that's enough (use/prefer default namespace) ... ! if (!isAttr && nsStack.processName (name, nsTemp, false) != null ! && nsTemp [0].equals (ns) ! ) { ! return nsTemp [2]; ! } ! } ! // must we define and use the default/undefined prefix? ! if ("".equals (ns)) { ! if (isAttr) ! fatalError ("processName bug"); ! if (attributes.getIndex ("xmlns") != -1) ! fatalError ("need to undefine default NS, but it's bound: " ! + attributes.getValue ("xmlns")); ! nsStack.declarePrefix ("", ""); ! attributes.addAttribute ("", "", "xmlns", "CDATA", ""); ! return name; ! } ! // is there at least one non-null prefix we can use? ! for (Enumeration e = nsStack.getDeclaredPrefixes (); ! e.hasMoreElements (); ! /* NOP */) { ! String prefix = (String) e.nextElement (); ! String uri = nsStack.getURI (prefix); ! if (uri == null || !uri.equals (ns)) ! continue; ! return prefix + ":" + name; ! } ! // no such luck. create a prefix name, declare it, use it. ! for (temp = 0; temp >= 0; temp++) { ! String prefix = prefixRoot + temp; ! ! if (nsStack.getURI (prefix) == null) { ! nsStack.declarePrefix (prefix, ns); ! attributes.addAttribute ("", "", "xmlns:" + prefix, ! "CDATA", ns); ! return prefix + ":" + name; ! } ! } ! fatalError ("too many prefixes genned"); ! // NOTREACHED ! return null; } public void startElement ( ! String uri, String localName, ! String qName, Attributes atts ) throws SAXException { ! if (!pushedContext) ! nsStack.pushContext (); ! pushedContext = false; ! // make sure we have all NS declarations handy before we start ! int length = atts.getLength (); ! for (int i = 0; i < length; i++) { ! String aName = atts.getQName (i); ! if (!aName.startsWith ("xmlns")) ! continue; ! String prefix; ! if ("xmlns".equals (aName)) ! prefix = ""; ! else if (aName.indexOf (':') == 5) ! prefix = aName.substring (6); ! else // "xmlnsfoo" etc. ! continue; ! startPrefixMapping (prefix, atts.getValue (i)); ! } ! // put namespace decls at the start of our regenned attlist ! attributes.clear (); ! for (Enumeration e = nsStack.getDeclaredPrefixes (); ! e.hasMoreElements (); ! /* NOP */) { ! String prefix = (String) e.nextElement (); ! attributes.addAttribute ("", "", ! ("".equals (prefix) ! ? "xmlns" ! : "xmlns:" + prefix), ! "CDATA", ! nsStack.getURI (prefix)); ! } ! // name fixups: element, then attributes. ! // fixName may declare a new prefix or, for the element, ! // redeclare the default (if element name needs it). ! qName = fixName (uri, localName, qName, false); ! for (int i = 0; i < length; i++) { ! String aName = atts.getQName (i); ! String aNS = atts.getURI (i); ! String aLocal = atts.getLocalName (i); ! String aType = atts.getType (i); ! String aValue = atts.getValue (i); ! if (aName.startsWith ("xmlns")) ! continue; ! aName = fixName (aNS, aLocal, aName, true); ! attributes.addAttribute (aNS, aLocal, aName, aType, aValue); ! } ! elementStack.push (qName); ! // pass event along, with cleaned-up names and decls. ! super.startElement (uri, localName, qName, attributes); } public void endElement (String uri, String localName, String qName) throws SAXException { ! nsStack.popContext (); ! qName = (String) elementStack.pop (); ! super.endElement (uri, localName, qName); } /** *************** public class NSFilter extends EventFilte *** 330,341 **** */ public void endPrefixMapping (String prefix) throws SAXException ! { } public void endDocument () throws SAXException { ! elementStack.removeAllElements (); ! nsStack.reset (); ! super.endDocument (); } } --- 330,341 ---- */ public void endPrefixMapping (String prefix) throws SAXException ! { } public void endDocument () throws SAXException { ! elementStack.removeAllElements (); ! nsStack.reset (); ! super.endDocument (); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/PipelineFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/PipelineFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/PipelineFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/PipelineFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PipelineFactory.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PipelineFactory.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.ext.*; *** 69,188 **** * The stage identifiers are either class names, or are one of the following * short identifiers built into this class. (Most of these identifiers are * no more than aliases for classes.) The built-in identifiers include:

            ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
            StageParameterTerminusDescription
            domnone yes Applications code can access a DOM Document built ! from the input event stream. When used as a filter, this buffers ! data up to an endDocument call, and then uses a DOM parser ! to report everything that has been recorded (which can easily be ! less than what was reported to it).
            nsfixnonenoThis stage ensures that the XML element and attribute ! names in its output use namespace prefixes and declarations correctly. ! That is, so that they match the "Namespace plus LocalName" naming data ! with which each XML element and attribute is already associated.
            nullnoneyesThis stage ignores all input event data.
            serverrequired
            server URL
            noSends its input as XML request to a remote server, ! normally a web application server using the HTTP or HTTPS protocols. ! The output of this stage is the parsed response from that server.
            teerequired
            first pipeline
            noThis sends its events down two paths; its parameter ! is a pipeline descriptor for the first path, and the second path ! is the output of this stage.
            validatenoneyesThis checks for validity errors, and reports them ! through its error handler. The input must include declaration events ! and some lexical events.
            wfnoneyes This class provides some basic "well formedness" ! tests on the input event stream, and reports a fatal error if any ! of them fail. One example: start/end calls for elements must match. ! No SAX parser is permitted to produce malformed output, but other ! components can easily do so.
            writerequired
            "stdout", "stderr", or filename
            yes Writes its input to the specified output, as pretty ! printed XML text encoded using UTF-8. Input events must be well ! formed and "namespace fixed", else the output won't be XML (or possibly ! namespace) conformant. The symbolic names represent ! System.out and System.err respectively; names must ! correspond to files which don't yet exist.
            xhtmlrequired
            "stdout", "stderr", or filename
            yes Like write (above), except that XHTML rules ! are followed. The XHTML 1.0 Transitional document type is declared, ! and only ASCII characters are written (for interoperability). Other ! characters are written as entity or character references; the text is ! pretty printed.
            xincludenonenoThis stage handles XInclude processing. ! This is like entity inclusion, except that the included content ! is declared in-line rather than in the DTD at the beginning of ! a document. !
            xsltrequired
            XSLT stylesheet URI
            noThis stage handles XSLT transformation ! according to a stylesheet. ! The implementation of the transformation may not actually ! stream data, although if such an XSLT engine is in use ! then that can happen. !
            ! *

            Note that {@link EventFilter#bind} can automatically eliminate * some filters by setting SAX2 parser features appropriately. This means * that you can routinely put filters like "nsfix", "validate", or "wf" at the --- 69,188 ---- * The stage identifiers are either class names, or are one of the following * short identifiers built into this class. (Most of these identifiers are * no more than aliases for classes.) The built-in identifiers include:

            ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
            StageParameterTerminusDescription
            domnone yes Applications code can access a DOM Document built ! from the input event stream. When used as a filter, this buffers ! data up to an endDocument call, and then uses a DOM parser ! to report everything that has been recorded (which can easily be ! less than what was reported to it).
            nsfixnonenoThis stage ensures that the XML element and attribute ! names in its output use namespace prefixes and declarations correctly. ! That is, so that they match the "Namespace plus LocalName" naming data ! with which each XML element and attribute is already associated.
            nullnoneyesThis stage ignores all input event data.
            serverrequired
            server URL
            noSends its input as XML request to a remote server, ! normally a web application server using the HTTP or HTTPS protocols. ! The output of this stage is the parsed response from that server.
            teerequired
            first pipeline
            noThis sends its events down two paths; its parameter ! is a pipeline descriptor for the first path, and the second path ! is the output of this stage.
            validatenoneyesThis checks for validity errors, and reports them ! through its error handler. The input must include declaration events ! and some lexical events.
            wfnoneyes This class provides some basic "well formedness" ! tests on the input event stream, and reports a fatal error if any ! of them fail. One example: start/end calls for elements must match. ! No SAX parser is permitted to produce malformed output, but other ! components can easily do so.
            writerequired
            "stdout", "stderr", or filename
            yes Writes its input to the specified output, as pretty ! printed XML text encoded using UTF-8. Input events must be well ! formed and "namespace fixed", else the output won't be XML (or possibly ! namespace) conformant. The symbolic names represent ! System.out and System.err respectively; names must ! correspond to files which don't yet exist.
            xhtmlrequired
            "stdout", "stderr", or filename
            yes Like write (above), except that XHTML rules ! are followed. The XHTML 1.0 Transitional document type is declared, ! and only ASCII characters are written (for interoperability). Other ! characters are written as entity or character references; the text is ! pretty printed.
            xincludenonenoThis stage handles XInclude processing. ! This is like entity inclusion, except that the included content ! is declared in-line rather than in the DTD at the beginning of ! a document. !
            xsltrequired
            XSLT stylesheet URI
            noThis stage handles XSLT transformation ! according to a stylesheet. ! The implementation of the transformation may not actually ! stream data, although if such an XSLT engine is in use ! then that can happen. !
            ! *

            Note that {@link EventFilter#bind} can automatically eliminate * some filters by setting SAX2 parser features appropriately. This means * that you can routinely put filters like "nsfix", "validate", or "wf" at the *************** public class PipelineFactory *** 200,206 **** public static EventConsumer createPipeline (String description) throws IOException { ! return createPipeline (description, null); } /** --- 200,206 ---- public static EventConsumer createPipeline (String description) throws IOException { ! return createPipeline (description, null); } /** *************** public class PipelineFactory *** 211,235 **** * segments with easily configured ones. */ public static EventConsumer createPipeline ( ! String description, ! EventConsumer next ) throws IOException { ! // tokens are (for now) what's separated by whitespace; ! // very easy to parse, but IDs never have spaces. ! StringTokenizer tokenizer; ! String tokens []; ! tokenizer = new StringTokenizer (description); ! tokens = new String [tokenizer.countTokens ()]; ! for (int i = 0; i < tokens.length; i++) ! tokens [i] = tokenizer.nextToken (); ! PipelineFactory factory = new PipelineFactory (); ! Pipeline pipeline = factory.parsePipeline (tokens, next); ! return pipeline.createPipeline (); } --- 211,235 ---- * segments with easily configured ones. */ public static EventConsumer createPipeline ( ! String description, ! EventConsumer next ) throws IOException { ! // tokens are (for now) what's separated by whitespace; ! // very easy to parse, but IDs never have spaces. ! StringTokenizer tokenizer; ! String tokens []; ! tokenizer = new StringTokenizer (description); ! tokens = new String [tokenizer.countTokens ()]; ! for (int i = 0; i < tokens.length; i++) ! tokens [i] = tokenizer.nextToken (); ! PipelineFactory factory = new PipelineFactory (); ! Pipeline pipeline = factory.parsePipeline (tokens, next); ! return pipeline.createPipeline (); } *************** public class PipelineFactory *** 242,311 **** * predefined aliases) left and right parenthesis, and the vertical bar. */ public static EventConsumer createPipeline ( ! String tokens [], ! EventConsumer next ) throws IOException { ! PipelineFactory factory = new PipelineFactory (); ! Pipeline pipeline = factory.parsePipeline (tokens, next); ! return pipeline.createPipeline (); } ! private String tokens []; ! private int index; private Pipeline parsePipeline (String toks [], EventConsumer next) { ! tokens = toks; ! index = 0; ! ! Pipeline retval = parsePipeline (next); ! if (index != toks.length) ! throw new ArrayIndexOutOfBoundsException ( ! "extra token: " + tokens [index]); ! return retval; } // pipeline ::= stage | stage '|' pipeline private Pipeline parsePipeline (EventConsumer next) { ! Pipeline retval = new Pipeline (parseStage ()); ! // minimal pipelines: "stage" and "... | id" ! if (index > (tokens.length - 2) ! || !"|".equals (tokens [index]) ! ) { ! retval.next = next; ! return retval; ! } ! index++; ! retval.rest = parsePipeline (next); ! return retval; } // stage ::= id | id '(' pipeline ')' private Stage parseStage () { ! Stage retval = new Stage (tokens [index++]); ! // minimal stages: "id" and "id ( id )" ! if (index > (tokens.length - 2) ! || !"(".equals (tokens [index]) /*)*/ ! ) ! return retval; ! ! index++; ! retval.param = parsePipeline (null); ! if (index >= tokens.length) ! throw new ArrayIndexOutOfBoundsException ( ! "missing right paren"); ! if (/*(*/ !")".equals (tokens [index++])) ! throw new ArrayIndexOutOfBoundsException ( ! "required right paren, not: " + tokens [index - 1]); ! return retval; } --- 242,311 ---- * predefined aliases) left and right parenthesis, and the vertical bar. */ public static EventConsumer createPipeline ( ! String tokens [], ! EventConsumer next ) throws IOException { ! PipelineFactory factory = new PipelineFactory (); ! Pipeline pipeline = factory.parsePipeline (tokens, next); ! return pipeline.createPipeline (); } ! private String tokens []; ! private int index; private Pipeline parsePipeline (String toks [], EventConsumer next) { ! tokens = toks; ! index = 0; ! Pipeline retval = parsePipeline (next); ! ! if (index != toks.length) ! throw new ArrayIndexOutOfBoundsException ( ! "extra token: " + tokens [index]); ! return retval; } // pipeline ::= stage | stage '|' pipeline private Pipeline parsePipeline (EventConsumer next) { ! Pipeline retval = new Pipeline (parseStage ()); ! // minimal pipelines: "stage" and "... | id" ! if (index > (tokens.length - 2) ! || !"|".equals (tokens [index]) ! ) { ! retval.next = next; ! return retval; ! } ! index++; ! retval.rest = parsePipeline (next); ! return retval; } // stage ::= id | id '(' pipeline ')' private Stage parseStage () { ! Stage retval = new Stage (tokens [index++]); ! // minimal stages: "id" and "id ( id )" ! if (index > (tokens.length - 2) ! || !"(".equals (tokens [index]) /*)*/ ! ) ! return retval; ! ! index++; ! retval.param = parsePipeline (null); ! if (index >= tokens.length) ! throw new ArrayIndexOutOfBoundsException ( ! "missing right paren"); ! if (/*(*/ !")".equals (tokens [index++])) ! throw new ArrayIndexOutOfBoundsException ( ! "required right paren, not: " + tokens [index - 1]); ! return retval; } *************** public class PipelineFactory *** 313,324 **** // these classes obey the conventions for constructors, so they're // only built in to this table of shortnames // ! // - filter (one or two types of arglist) ! // * last constructor is 'next' element ! // * optional (first) string parameter // ! // - terminus (one or types of arglist) ! // * optional (only) string parameter // // terminus stages are transformed into filters if needed, by // creating a "tee". filter stages aren't turned to terminus --- 313,324 ---- // these classes obey the conventions for constructors, so they're // only built in to this table of shortnames // ! // - filter (one or two types of arglist) ! // * last constructor is 'next' element ! // * optional (first) string parameter // ! // - terminus (one or types of arglist) ! // * optional (only) string parameter // // terminus stages are transformed into filters if needed, by // creating a "tee". filter stages aren't turned to terminus *************** public class PipelineFactory *** 326,722 **** // terminus explicitly. // private static final String builtinStages [][] = { ! { "dom", "gnu.xml.dom.Consumer" }, ! { "nsfix", "gnu.xml.pipeline.NSFilter" }, ! { "null", "gnu.xml.pipeline.EventFilter" }, ! { "server", "gnu.xml.pipeline.CallFilter" }, ! { "tee", "gnu.xml.pipeline.TeeConsumer" }, ! { "validate", "gnu.xml.pipeline.ValidationConsumer" }, ! { "wf", "gnu.xml.pipeline.WellFormednessFilter" }, ! { "xinclude", "gnu.xml.pipeline.XIncludeFilter" }, ! { "xslt", "gnu.xml.pipeline.XsltFilter" }, // XXX want: option for validate, to preload external part of a DTD ! // xhtml, write ... nyet generic-ready }; private static class Stage { ! String id; ! Pipeline param; ! Stage (String name) ! { id = name; } ! public String toString () ! { ! if (param == null) ! return id; ! return id + " ( " + param + " )"; ! } ! private void fail (String message) ! throws IOException ! { ! throw new IOException ("in '" + id ! + "' stage of pipeline, " + message); ! } ! EventConsumer createStage (EventConsumer next) ! throws IOException ! { ! String name = id; ! // most builtins are just class aliases ! for (int i = 0; i < builtinStages.length; i++) { ! if (id.equals (builtinStages [i][0])) { ! name = builtinStages [i][1]; ! break; ! } ! } ! // Save output as XML or XHTML text ! if ("write".equals (name) || "xhtml".equals (name)) { ! String filename; ! boolean isXhtml = "xhtml".equals (name); ! OutputStream out = null; ! TextConsumer consumer; ! if (param == null) ! fail ("parameter is required"); ! filename = param.toString (); ! if ("stdout".equals (filename)) ! out = System.out; ! else if ("stderr".equals (filename)) ! out = System.err; ! else { ! File f = new File (filename); /* ! if (!f.isAbsolute ()) ! fail ("require absolute file paths"); */ ! if (f.exists ()) ! fail ("file already exists: " + f.getName ()); // XXX this races against the existence test ! out = new FileOutputStream (f); ! } ! ! if (!isXhtml) ! consumer = new TextConsumer (out); ! else ! consumer = new TextConsumer ( ! new OutputStreamWriter (out, "8859_1"), ! true); ! ! consumer.setPrettyPrinting (true); ! if (next == null) ! return consumer; ! return new TeeConsumer (consumer, next); ! } else { ! // ! // Here go all the builtins that are just aliases for ! // classes, and all stage IDs that started out as such ! // class names. The following logic relies on several ! // documented conventions for constructor invocation. ! // ! String msg = null; ! try { ! Class klass = Class.forName (name); ! Class argTypes [] = null; ! Constructor constructor = null; ! boolean filter = false; ! Object params [] = null; ! Object obj = null; ! // do we need a filter stage? ! if (next != null) { ! // "next" consumer is always passed, with ! // or without the optional string param ! if (param == null) { ! argTypes = new Class [1]; ! argTypes [0] = EventConsumer.class; ! params = new Object [1]; ! params [0] = next; ! msg = "no-param filter"; ! } else { ! argTypes = new Class [2]; ! argTypes [0] = String.class; ! argTypes [1] = EventConsumer.class; ! params = new Object [2]; ! params [0] = param.toString (); ! params [1] = next; ! msg = "one-param filter"; ! } ! try { ! constructor = klass.getConstructor (argTypes); ! } catch (NoSuchMethodException e) { ! // try creating a filter from a ! // terminus and a tee ! filter = true; ! msg += " built from "; ! } ! } - // build from a terminus stage, with or - // without the optional string param - if (constructor == null) { - String tmp; ! if (param == null) { ! argTypes = new Class [0]; ! params = new Object [0]; ! tmp = "no-param terminus"; ! } else { ! argTypes = new Class [1]; ! argTypes [0] = String.class; ! params = new Object [1]; ! params [0] = param.toString (); ! tmp = "one-param terminus"; ! } ! if (msg == null) ! msg = tmp; ! else ! msg += tmp; ! constructor = klass.getConstructor (argTypes); ! // NOT creating terminus by dead-ending ! // filters ... users should think about ! // that one, something's likely wrong ! } ! ! obj = constructor.newInstance (params); ! // return EventConsumers directly, perhaps after ! // turning them into a filter ! if (obj instanceof EventConsumer) { ! if (filter) ! return new TeeConsumer ((EventConsumer) obj, next); ! return (EventConsumer) obj; ! } ! ! // if it's not a handler, it's an error ! // we can wrap handlers in a filter ! EventFilter retval = new EventFilter (); ! boolean updated = false; ! if (obj instanceof ContentHandler) { ! retval.setContentHandler ((ContentHandler) obj); ! updated = true; ! } ! if (obj instanceof DTDHandler) { ! retval.setDTDHandler ((DTDHandler) obj); ! updated = true; ! } ! if (obj instanceof LexicalHandler) { ! retval.setProperty ( ! EventFilter.PROPERTY_URI + "lexical-handler", ! obj); ! updated = true; ! } ! if (obj instanceof DeclHandler) { ! retval.setProperty ( ! EventFilter.PROPERTY_URI + "declaration-handler", ! obj); ! updated = true; ! } ! if (!updated) ! fail ("class is neither Consumer nor Handler"); ! ! if (filter) ! return new TeeConsumer (retval, next); ! return retval; ! } catch (IOException e) { ! throw e; ! } catch (NoSuchMethodException e) { ! fail (name + " constructor missing -- " + msg); ! } catch (ClassNotFoundException e) { ! fail (name + " class not found"); ! } catch (Exception e) { ! // e.printStackTrace (); ! fail ("stage not available: " + e.getMessage ()); ! } ! } ! // NOTREACHED ! return null; ! } } private static class Pipeline { ! Stage stage; ! // rest may be null ! Pipeline rest; ! EventConsumer next; ! Pipeline (Stage s) ! { stage = s; } ! public String toString () ! { ! if (rest == null && next == null) ! return stage.toString (); ! if (rest != null) ! return stage + " | " + rest; ! throw new IllegalArgumentException ("next"); ! } ! EventConsumer createPipeline () ! throws IOException ! { ! if (next == null) { ! if (rest == null) ! next = stage.createStage (null); ! else ! next = stage.createStage (rest.createPipeline ()); ! } ! return next; ! } } /* public static void main (String argv []) { ! try { ! // three basic terminus cases ! createPipeline ("null"); ! createPipeline ("validate"); ! createPipeline ("write ( stdout )"); ! // four basic filters ! createPipeline ("nsfix | write ( stderr )"); ! createPipeline ("wf | null"); ! createPipeline ("null | null"); ! createPipeline ( "call ( http://www.example.com/services/xml-1a ) | xhtml ( stdout )"); ! // tee junctions ! createPipeline ("tee ( validate ) | write ( stdout )"); ! createPipeline ("tee ( nsfix | write ( stdout ) ) | validate"); ! // longer pipeline ! createPipeline ("nsfix | tee ( validate ) | write ( stdout )"); ! createPipeline ( ! "null | wf | nsfix | tee ( validate ) | write ( stdout )"); ! // try some parsing error cases ! try { ! createPipeline ("null ("); // extra token '(' ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("nsfix |"); // extra token '|' ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("xhtml ( foo"); // missing right paren ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("xhtml ( foo bar"); // required right paren ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("tee ( nsfix | validate");// missing right paren ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! // try some construction error cases ! try { ! createPipeline ("call"); // missing param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("call ( foobar )"); // broken param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("nsfix ( foobar )"); // illegal param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("null ( foobar )"); // illegal param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("wf ( foobar )"); // illegal param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("xhtml ( foobar.html )"); ! new File ("foobar.html").delete (); ! // now supported ! } catch (Exception e) { ! System.err.println ("** err: " + e.getMessage ()); } ! try { ! createPipeline ("xhtml"); // missing param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("write ( stdout ) | null"); // nonterminal ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("validate | null"); ! // now supported ! } catch (Exception e) { ! System.err.println ("** err: " + e.getMessage ()); } ! try { ! createPipeline ("validate ( foo )"); // illegal param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("tee"); // missing param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! // only builtins so far ! createPipeline ("com.example.xml.FilterClass"); ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! } catch (Exception e) { ! e.printStackTrace (); ! } } /**/ --- 326,722 ---- // terminus explicitly. // private static final String builtinStages [][] = { ! { "dom", "gnu.xml.dom.Consumer" }, ! { "nsfix", "gnu.xml.pipeline.NSFilter" }, ! { "null", "gnu.xml.pipeline.EventFilter" }, ! { "server", "gnu.xml.pipeline.CallFilter" }, ! { "tee", "gnu.xml.pipeline.TeeConsumer" }, ! { "validate", "gnu.xml.pipeline.ValidationConsumer" }, ! { "wf", "gnu.xml.pipeline.WellFormednessFilter" }, ! { "xinclude", "gnu.xml.pipeline.XIncludeFilter" }, ! { "xslt", "gnu.xml.pipeline.XsltFilter" }, // XXX want: option for validate, to preload external part of a DTD ! // xhtml, write ... nyet generic-ready }; private static class Stage { ! String id; ! Pipeline param; ! Stage (String name) ! { id = name; } ! public String toString () ! { ! if (param == null) ! return id; ! return id + " ( " + param + " )"; ! } ! private void fail (String message) ! throws IOException ! { ! throw new IOException ("in '" + id ! + "' stage of pipeline, " + message); ! } ! EventConsumer createStage (EventConsumer next) ! throws IOException ! { ! String name = id; ! // most builtins are just class aliases ! for (int i = 0; i < builtinStages.length; i++) { ! if (id.equals (builtinStages [i][0])) { ! name = builtinStages [i][1]; ! break; ! } ! } ! // Save output as XML or XHTML text ! if ("write".equals (name) || "xhtml".equals (name)) { ! String filename; ! boolean isXhtml = "xhtml".equals (name); ! OutputStream out = null; ! TextConsumer consumer; ! if (param == null) ! fail ("parameter is required"); ! filename = param.toString (); ! if ("stdout".equals (filename)) ! out = System.out; ! else if ("stderr".equals (filename)) ! out = System.err; ! else { ! File f = new File (filename); /* ! if (!f.isAbsolute ()) ! fail ("require absolute file paths"); */ ! if (f.exists ()) ! fail ("file already exists: " + f.getName ()); // XXX this races against the existence test ! out = new FileOutputStream (f); ! } ! if (!isXhtml) ! consumer = new TextConsumer (out); ! else ! consumer = new TextConsumer ( ! new OutputStreamWriter (out, "8859_1"), ! true); ! consumer.setPrettyPrinting (true); ! if (next == null) ! return consumer; ! return new TeeConsumer (consumer, next); ! } else { ! // ! // Here go all the builtins that are just aliases for ! // classes, and all stage IDs that started out as such ! // class names. The following logic relies on several ! // documented conventions for constructor invocation. ! // ! String msg = null; ! try { ! Class klass = Class.forName (name); ! Class argTypes [] = null; ! Constructor constructor = null; ! boolean filter = false; ! Object params [] = null; ! Object obj = null; ! // do we need a filter stage? ! if (next != null) { ! // "next" consumer is always passed, with ! // or without the optional string param ! if (param == null) { ! argTypes = new Class [1]; ! argTypes [0] = EventConsumer.class; ! params = new Object [1]; ! params [0] = next; ! msg = "no-param filter"; ! } else { ! argTypes = new Class [2]; ! argTypes [0] = String.class; ! argTypes [1] = EventConsumer.class; + params = new Object [2]; + params [0] = param.toString (); + params [1] = next; ! msg = "one-param filter"; ! } ! try { ! constructor = klass.getConstructor (argTypes); ! } catch (NoSuchMethodException e) { ! // try creating a filter from a ! // terminus and a tee ! filter = true; ! msg += " built from "; ! } ! } ! // build from a terminus stage, with or ! // without the optional string param ! if (constructor == null) { ! String tmp; ! if (param == null) { ! argTypes = new Class [0]; ! params = new Object [0]; ! tmp = "no-param terminus"; ! } else { ! argTypes = new Class [1]; ! argTypes [0] = String.class; ! params = new Object [1]; ! params [0] = param.toString (); ! tmp = "one-param terminus"; ! } ! if (msg == null) ! msg = tmp; ! else ! msg += tmp; ! constructor = klass.getConstructor (argTypes); ! // NOT creating terminus by dead-ending ! // filters ... users should think about ! // that one, something's likely wrong ! } ! obj = constructor.newInstance (params); ! // return EventConsumers directly, perhaps after ! // turning them into a filter ! if (obj instanceof EventConsumer) { ! if (filter) ! return new TeeConsumer ((EventConsumer) obj, next); ! return (EventConsumer) obj; ! } ! // if it's not a handler, it's an error ! // we can wrap handlers in a filter ! EventFilter retval = new EventFilter (); ! boolean updated = false; ! if (obj instanceof ContentHandler) { ! retval.setContentHandler ((ContentHandler) obj); ! updated = true; ! } ! if (obj instanceof DTDHandler) { ! retval.setDTDHandler ((DTDHandler) obj); ! updated = true; ! } ! if (obj instanceof LexicalHandler) { ! retval.setProperty ( ! EventFilter.PROPERTY_URI + "lexical-handler", ! obj); ! updated = true; ! } ! if (obj instanceof DeclHandler) { ! retval.setProperty ( ! EventFilter.PROPERTY_URI + "declaration-handler", ! obj); ! updated = true; ! } ! if (!updated) ! fail ("class is neither Consumer nor Handler"); ! ! if (filter) ! return new TeeConsumer (retval, next); ! return retval; ! ! } catch (IOException e) { ! throw e; ! ! } catch (NoSuchMethodException e) { ! fail (name + " constructor missing -- " + msg); ! ! } catch (ClassNotFoundException e) { ! fail (name + " class not found"); ! ! } catch (Exception e) { ! // e.printStackTrace (); ! fail ("stage not available: " + e.getMessage ()); ! } ! } ! // NOTREACHED ! return null; ! } } private static class Pipeline { ! Stage stage; ! // rest may be null ! Pipeline rest; ! EventConsumer next; ! Pipeline (Stage s) ! { stage = s; } ! public String toString () ! { ! if (rest == null && next == null) ! return stage.toString (); ! if (rest != null) ! return stage + " | " + rest; ! throw new IllegalArgumentException ("next"); ! } ! EventConsumer createPipeline () ! throws IOException ! { ! if (next == null) { ! if (rest == null) ! next = stage.createStage (null); ! else ! next = stage.createStage (rest.createPipeline ()); ! } ! return next; ! } } /* public static void main (String argv []) { ! try { ! // three basic terminus cases ! createPipeline ("null"); ! createPipeline ("validate"); ! createPipeline ("write ( stdout )"); ! // four basic filters ! createPipeline ("nsfix | write ( stderr )"); ! createPipeline ("wf | null"); ! createPipeline ("null | null"); ! createPipeline ( "call ( http://www.example.com/services/xml-1a ) | xhtml ( stdout )"); ! // tee junctions ! createPipeline ("tee ( validate ) | write ( stdout )"); ! createPipeline ("tee ( nsfix | write ( stdout ) ) | validate"); ! // longer pipeline ! createPipeline ("nsfix | tee ( validate ) | write ( stdout )"); ! createPipeline ( ! "null | wf | nsfix | tee ( validate ) | write ( stdout )"); ! // try some parsing error cases ! try { ! createPipeline ("null ("); // extra token '(' ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("nsfix |"); // extra token '|' ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("xhtml ( foo"); // missing right paren ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("xhtml ( foo bar"); // required right paren ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("tee ( nsfix | validate");// missing right paren ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! // try some construction error cases ! try { ! createPipeline ("call"); // missing param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("call ( foobar )"); // broken param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("nsfix ( foobar )"); // illegal param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("null ( foobar )"); // illegal param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("wf ( foobar )"); // illegal param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("xhtml ( foobar.html )"); ! new File ("foobar.html").delete (); ! // now supported ! } catch (Exception e) { ! System.err.println ("** err: " + e.getMessage ()); } ! try { ! createPipeline ("xhtml"); // missing param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("write ( stdout ) | null"); // nonterminal ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("validate | null"); ! // now supported ! } catch (Exception e) { ! System.err.println ("** err: " + e.getMessage ()); } ! try { ! createPipeline ("validate ( foo )"); // illegal param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! createPipeline ("tee"); // missing param ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! try { ! // only builtins so far ! createPipeline ("com.example.xml.FilterClass"); ! System.err.println ("** didn't report error"); ! } catch (Exception e) { ! System.err.println ("== err: " + e.getMessage ()); } ! } catch (Exception e) { ! e.printStackTrace (); ! } } /**/ diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/TeeConsumer.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/TeeConsumer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/TeeConsumer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/TeeConsumer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TeeConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TeeConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.ext.LexicalHandler; *** 68,83 **** * @author David Brownell */ final public class TeeConsumer ! implements EventConsumer, ! ContentHandler, DTDHandler, ! LexicalHandler,DeclHandler { ! private EventConsumer first, rest; // cached to minimize time overhead ! private ContentHandler docFirst, docRest; ! private DeclHandler declFirst, declRest; ! private LexicalHandler lexFirst, lexRest; /** --- 68,83 ---- * @author David Brownell */ final public class TeeConsumer ! implements EventConsumer, ! ContentHandler, DTDHandler, ! LexicalHandler,DeclHandler { ! private EventConsumer first, rest; // cached to minimize time overhead ! private ContentHandler docFirst, docRest; ! private DeclHandler declFirst, declRest; ! private LexicalHandler lexFirst, lexRest; /** *************** final public class TeeConsumer *** 91,129 **** */ public TeeConsumer (EventConsumer car, EventConsumer cdr) { ! if (car == null || cdr == null) ! throw new NullPointerException (); ! first = car; ! rest = cdr; ! // ! // Cache the handlers. ! // ! docFirst = first.getContentHandler (); ! docRest = rest.getContentHandler (); ! // DTD handler isn't cached (rarely needed) ! try { ! declFirst = null; ! declFirst = (DeclHandler) first.getProperty ( ! EventFilter.DECL_HANDLER); ! } catch (SAXException e) {} ! try { ! declRest = null; ! declRest = (DeclHandler) rest.getProperty ( ! EventFilter.DECL_HANDLER); ! } catch (SAXException e) {} ! try { ! lexFirst = null; ! lexFirst = (LexicalHandler) first.getProperty ( ! EventFilter.LEXICAL_HANDLER); ! } catch (SAXException e) {} ! try { ! lexRest = null; ! lexRest = (LexicalHandler) rest.getProperty ( ! EventFilter.LEXICAL_HANDLER); ! } catch (SAXException e) {} } /* FIXME --- 91,129 ---- */ public TeeConsumer (EventConsumer car, EventConsumer cdr) { ! if (car == null || cdr == null) ! throw new NullPointerException (); ! first = car; ! rest = cdr; ! // ! // Cache the handlers. ! // ! docFirst = first.getContentHandler (); ! docRest = rest.getContentHandler (); ! // DTD handler isn't cached (rarely needed) ! try { ! declFirst = null; ! declFirst = (DeclHandler) first.getProperty ( ! EventFilter.DECL_HANDLER); ! } catch (SAXException e) {} ! try { ! declRest = null; ! declRest = (DeclHandler) rest.getProperty ( ! EventFilter.DECL_HANDLER); ! } catch (SAXException e) {} ! try { ! lexFirst = null; ! lexFirst = (LexicalHandler) first.getProperty ( ! EventFilter.LEXICAL_HANDLER); ! } catch (SAXException e) {} ! try { ! lexRest = null; ! lexRest = (LexicalHandler) rest.getProperty ( ! EventFilter.LEXICAL_HANDLER); ! } catch (SAXException e) {} } /* FIXME *************** final public class TeeConsumer *** 132,209 **** * two-consumer constructor for this class. * * @param first Description of the first pipeline to get events, ! * which will be passed to {@link PipelineFactory#createPipeline} * @param rest The second pipeline to get the events * / ! // constructor used by PipelineFactory public TeeConsumer (String first, EventConsumer rest) throws IOException { ! this (PipelineFactory.createPipeline (first), rest); } */ /** Returns the first pipeline to get event calls. */ public EventConsumer getFirst () ! { return first; } /** Returns the second pipeline to get event calls. */ public EventConsumer getRest () ! { return rest; } /** Returns the content handler being used. */ final public ContentHandler getContentHandler () { ! if (docRest == null) ! return docFirst; ! if (docFirst == null) ! return docRest; ! return this; } /** Returns the dtd handler being used. */ final public DTDHandler getDTDHandler () { ! // not cached (hardly used) ! if (rest.getDTDHandler () == null) ! return first.getDTDHandler (); ! if (first.getDTDHandler () == null) ! return rest.getDTDHandler (); ! return this; } /** Returns the declaration or lexical handler being used. */ final public Object getProperty (String id) throws SAXNotRecognizedException { ! // ! // in degenerate cases, we have no work to do. ! // ! Object firstProp = null, restProp = null; ! try { firstProp = first.getProperty (id); } ! catch (SAXNotRecognizedException e) { /* ignore */ } ! try { restProp = rest.getProperty (id); } ! catch (SAXNotRecognizedException e) { /* ignore */ } ! if (restProp == null) ! return firstProp; ! if (firstProp == null) ! return restProp; ! // ! // we've got work to do; handle two builtin cases. ! // ! if (EventFilter.DECL_HANDLER.equals (id)) ! return this; ! if (EventFilter.LEXICAL_HANDLER.equals (id)) ! return this; ! // ! // non-degenerate, handled by both consumers, but we don't know ! // how to handle this. ! // ! throw new SAXNotRecognizedException ("can't tee: " + id); } /** --- 132,209 ---- * two-consumer constructor for this class. * * @param first Description of the first pipeline to get events, ! * which will be passed to {@link PipelineFactory#createPipeline} * @param rest The second pipeline to get the events * / ! // constructor used by PipelineFactory public TeeConsumer (String first, EventConsumer rest) throws IOException { ! this (PipelineFactory.createPipeline (first), rest); } */ /** Returns the first pipeline to get event calls. */ public EventConsumer getFirst () ! { return first; } /** Returns the second pipeline to get event calls. */ public EventConsumer getRest () ! { return rest; } /** Returns the content handler being used. */ final public ContentHandler getContentHandler () { ! if (docRest == null) ! return docFirst; ! if (docFirst == null) ! return docRest; ! return this; } /** Returns the dtd handler being used. */ final public DTDHandler getDTDHandler () { ! // not cached (hardly used) ! if (rest.getDTDHandler () == null) ! return first.getDTDHandler (); ! if (first.getDTDHandler () == null) ! return rest.getDTDHandler (); ! return this; } /** Returns the declaration or lexical handler being used. */ final public Object getProperty (String id) throws SAXNotRecognizedException { ! // ! // in degenerate cases, we have no work to do. ! // ! Object firstProp = null, restProp = null; ! try { firstProp = first.getProperty (id); } ! catch (SAXNotRecognizedException e) { /* ignore */ } ! try { restProp = rest.getProperty (id); } ! catch (SAXNotRecognizedException e) { /* ignore */ } ! if (restProp == null) ! return firstProp; ! if (firstProp == null) ! return restProp; ! // ! // we've got work to do; handle two builtin cases. ! // ! if (EventFilter.DECL_HANDLER.equals (id)) ! return this; ! if (EventFilter.LEXICAL_HANDLER.equals (id)) ! return this; ! // ! // non-degenerate, handled by both consumers, but we don't know ! // how to handle this. ! // ! throw new SAXNotRecognizedException ("can't tee: " + id); } /** *************** final public class TeeConsumer *** 212,219 **** */ public void setErrorHandler (ErrorHandler handler) { ! first.setErrorHandler (handler); ! rest.setErrorHandler (handler); } --- 212,219 ---- */ public void setErrorHandler (ErrorHandler handler) { ! first.setErrorHandler (handler); ! rest.setErrorHandler (handler); } *************** final public class TeeConsumer *** 222,304 **** // public void setDocumentLocator (Locator locator) { ! // this call is not made by all parsers ! docFirst.setDocumentLocator (locator); ! docRest.setDocumentLocator (locator); } public void startDocument () throws SAXException { ! docFirst.startDocument (); ! docRest.startDocument (); } public void endDocument () throws SAXException { ! try { ! docFirst.endDocument (); ! } finally { ! docRest.endDocument (); ! } } public void startPrefixMapping (String prefix, String uri) throws SAXException { ! docFirst.startPrefixMapping (prefix, uri); ! docRest.startPrefixMapping (prefix, uri); } public void endPrefixMapping (String prefix) throws SAXException { ! docFirst.endPrefixMapping (prefix); ! docRest.endPrefixMapping (prefix); } public void skippedEntity (String name) throws SAXException { ! docFirst.skippedEntity (name); ! docRest.skippedEntity (name); } public void startElement (String uri, String localName, ! String qName, Attributes atts) throws SAXException { ! docFirst.startElement (uri, localName, qName, atts); ! docRest.startElement (uri, localName, qName, atts); } public void endElement (String uri, String localName, String qName) throws SAXException { ! docFirst.endElement (uri, localName, qName); ! docRest.endElement (uri, localName, qName); } public void processingInstruction (String target, String data) throws SAXException { ! docFirst.processingInstruction (target, data); ! docRest.processingInstruction (target, data); } public void characters (char ch [], int start, int length) throws SAXException { ! docFirst.characters (ch, start, length); ! docRest.characters (ch, start, length); } public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! docFirst.ignorableWhitespace (ch, start, length); ! docRest.ignorableWhitespace (ch, start, length); } --- 222,304 ---- // public void setDocumentLocator (Locator locator) { ! // this call is not made by all parsers ! docFirst.setDocumentLocator (locator); ! docRest.setDocumentLocator (locator); } public void startDocument () throws SAXException { ! docFirst.startDocument (); ! docRest.startDocument (); } public void endDocument () throws SAXException { ! try { ! docFirst.endDocument (); ! } finally { ! docRest.endDocument (); ! } } public void startPrefixMapping (String prefix, String uri) throws SAXException { ! docFirst.startPrefixMapping (prefix, uri); ! docRest.startPrefixMapping (prefix, uri); } public void endPrefixMapping (String prefix) throws SAXException { ! docFirst.endPrefixMapping (prefix); ! docRest.endPrefixMapping (prefix); } public void skippedEntity (String name) throws SAXException { ! docFirst.skippedEntity (name); ! docRest.skippedEntity (name); } public void startElement (String uri, String localName, ! String qName, Attributes atts) throws SAXException { ! docFirst.startElement (uri, localName, qName, atts); ! docRest.startElement (uri, localName, qName, atts); } public void endElement (String uri, String localName, String qName) throws SAXException { ! docFirst.endElement (uri, localName, qName); ! docRest.endElement (uri, localName, qName); } public void processingInstruction (String target, String data) throws SAXException { ! docFirst.processingInstruction (target, data); ! docRest.processingInstruction (target, data); } public void characters (char ch [], int start, int length) throws SAXException { ! docFirst.characters (ch, start, length); ! docRest.characters (ch, start, length); } public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! docFirst.ignorableWhitespace (ch, start, length); ! docRest.ignorableWhitespace (ch, start, length); } *************** final public class TeeConsumer *** 308,330 **** public void notationDecl (String name, String publicId, String systemId) throws SAXException { ! DTDHandler l1 = first.getDTDHandler (); ! DTDHandler l2 = rest.getDTDHandler (); ! l1.notationDecl (name, publicId, systemId); ! l2.notationDecl (name, publicId, systemId); } public void unparsedEntityDecl (String name, ! String publicId, String systemId, ! String notationName ) throws SAXException { ! DTDHandler l1 = first.getDTDHandler (); ! DTDHandler l2 = rest.getDTDHandler (); ! l1.unparsedEntityDecl (name, publicId, systemId, notationName); ! l2.unparsedEntityDecl (name, publicId, systemId, notationName); } --- 308,330 ---- public void notationDecl (String name, String publicId, String systemId) throws SAXException { ! DTDHandler l1 = first.getDTDHandler (); ! DTDHandler l2 = rest.getDTDHandler (); ! l1.notationDecl (name, publicId, systemId); ! l2.notationDecl (name, publicId, systemId); } public void unparsedEntityDecl (String name, ! String publicId, String systemId, ! String notationName ) throws SAXException { ! DTDHandler l1 = first.getDTDHandler (); ! DTDHandler l2 = rest.getDTDHandler (); ! l1.unparsedEntityDecl (name, publicId, systemId, notationName); ! l2.unparsedEntityDecl (name, publicId, systemId, notationName); } *************** final public class TeeConsumer *** 332,365 **** // DeclHandler // public void attributeDecl (String eName, String aName, ! String type, ! String mode, String value) throws SAXException { ! declFirst.attributeDecl (eName, aName, type, mode, value); ! declRest.attributeDecl (eName, aName, type, mode, value); } public void elementDecl (String name, String model) throws SAXException { ! declFirst.elementDecl (name, model); ! declRest.elementDecl (name, model); } public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException { ! declFirst.externalEntityDecl (name, publicId, systemId); ! declRest.externalEntityDecl (name, publicId, systemId); } public void internalEntityDecl (String name, String value) throws SAXException { ! declFirst.internalEntityDecl (name, value); ! declRest.internalEntityDecl (name, value); } --- 332,365 ---- // DeclHandler // public void attributeDecl (String eName, String aName, ! String type, ! String mode, String value) throws SAXException { ! declFirst.attributeDecl (eName, aName, type, mode, value); ! declRest.attributeDecl (eName, aName, type, mode, value); } public void elementDecl (String name, String model) throws SAXException { ! declFirst.elementDecl (name, model); ! declRest.elementDecl (name, model); } public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException { ! declFirst.externalEntityDecl (name, publicId, systemId); ! declRest.externalEntityDecl (name, publicId, systemId); } public void internalEntityDecl (String name, String value) throws SAXException { ! declFirst.internalEntityDecl (name, value); ! declRest.internalEntityDecl (name, value); } *************** final public class TeeConsumer *** 369,417 **** public void comment (char ch [], int start, int length) throws SAXException { ! lexFirst.comment (ch, start, length); ! lexRest.comment (ch, start, length); } ! public void startCDATA () throws SAXException { ! lexFirst.startCDATA (); ! lexRest.startCDATA (); } ! public void endCDATA () throws SAXException { ! lexFirst.endCDATA (); ! lexRest.endCDATA (); } ! public void startEntity (String name) throws SAXException { ! lexFirst.startEntity (name); ! lexRest.startEntity (name); } ! public void endEntity (String name) throws SAXException { ! lexFirst.endEntity (name); ! lexRest.endEntity (name); } ! public void startDTD (String name, String publicId, String systemId) throws SAXException { ! lexFirst.startDTD (name, publicId, systemId); ! lexRest.startDTD (name, publicId, systemId); } ! public void endDTD () throws SAXException { ! lexFirst.endDTD (); ! lexRest.endDTD (); } } --- 369,417 ---- public void comment (char ch [], int start, int length) throws SAXException { ! lexFirst.comment (ch, start, length); ! lexRest.comment (ch, start, length); } ! public void startCDATA () throws SAXException { ! lexFirst.startCDATA (); ! lexRest.startCDATA (); } ! public void endCDATA () throws SAXException { ! lexFirst.endCDATA (); ! lexRest.endCDATA (); } ! public void startEntity (String name) throws SAXException { ! lexFirst.startEntity (name); ! lexRest.startEntity (name); } ! public void endEntity (String name) throws SAXException { ! lexFirst.endEntity (name); ! lexRest.endEntity (name); } ! public void startDTD (String name, String publicId, String systemId) throws SAXException { ! lexFirst.startDTD (name, publicId, systemId); ! lexRest.startDTD (name, publicId, systemId); } ! public void endDTD () throws SAXException { ! lexFirst.endDTD (); ! lexRest.endDTD (); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/TextConsumer.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/TextConsumer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/TextConsumer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/TextConsumer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TextConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TextConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class TextConsumer extends XMLWri *** 72,79 **** public TextConsumer (Writer w, boolean isXhtml) throws IOException { ! super (w, isXhtml ? "US-ASCII" : null); ! setXhtml (isXhtml); } /** --- 72,79 ---- public TextConsumer (Writer w, boolean isXhtml) throws IOException { ! super (w, isXhtml ? "US-ASCII" : null); ! setXhtml (isXhtml); } /** *************** public class TextConsumer extends XMLWri *** 83,91 **** public TextConsumer (Writer w) throws IOException { ! this (w, false); } ! /** * Constructs a consumer that writes its input as XML text, * encoded in UTF-8. XHTML rules are not followed. --- 83,91 ---- public TextConsumer (Writer w) throws IOException { ! this (w, false); } ! /** * Constructs a consumer that writes its input as XML text, * encoded in UTF-8. XHTML rules are not followed. *************** public class TextConsumer extends XMLWri *** 93,117 **** public TextConsumer (OutputStream out) throws IOException { ! this (new OutputStreamWriter (out, "UTF8"), false); } /** EventConsumer Returns the document handler being used. */ public ContentHandler getContentHandler () ! { return this; } /** EventConsumer Returns the dtd handler being used. */ public DTDHandler getDTDHandler () ! { return this; } /** XMLReaderRetrieves a property (lexical and decl handlers) */ public Object getProperty (String propertyId) throws SAXNotRecognizedException { ! if (EventFilter.LEXICAL_HANDLER.equals (propertyId)) ! return this; ! if (EventFilter.DECL_HANDLER.equals (propertyId)) ! return this; ! throw new SAXNotRecognizedException (propertyId); } } --- 93,117 ---- public TextConsumer (OutputStream out) throws IOException { ! this (new OutputStreamWriter (out, "UTF8"), false); } /** EventConsumer Returns the document handler being used. */ public ContentHandler getContentHandler () ! { return this; } /** EventConsumer Returns the dtd handler being used. */ public DTDHandler getDTDHandler () ! { return this; } /** XMLReaderRetrieves a property (lexical and decl handlers) */ public Object getProperty (String propertyId) throws SAXNotRecognizedException { ! if (EventFilter.LEXICAL_HANDLER.equals (propertyId)) ! return this; ! if (EventFilter.DECL_HANDLER.equals (propertyId)) ! return this; ! throw new SAXNotRecognizedException (propertyId); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/ValidationConsumer.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/ValidationConsumer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/ValidationConsumer.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/ValidationConsumer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ValidationConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ValidationConsumer.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.helpers.XMLReaderFact *** 62,85 **** * both a filter and a terminus on an event pipeline. It relies on the * producer of SAX events to:

              * ! *
            1. Conform to the specification of a non-validating XML parser that ! * reads all external entities, reported using SAX2 events.
            2. * ! *
            3. Report ignorable whitespace as such (through the ContentHandler ! * interface). This is, strictly speaking, optional for nonvalidating ! * XML processors.
            4. * ! *
            5. Make SAX2 DeclHandler callbacks, with default ! * attribute values already normalized (and without "<").
            6. * ! *
            7. Make SAX2 LexicalHandler startDTD() and endDTD () ! * callbacks.
            8. * ! *
            9. Act as if the (URI)/namespace-prefixes property were ! * set to true, by providing XML 1.0 names and all xmlns* ! * attributes (rather than omitting either or both).
            10. * ! *
            * *

            At this writing, the major SAX2 parsers (such as Ælfred2, * Crimson, and Xerces) meet these requirements, and this validation --- 62,85 ---- * both a filter and a terminus on an event pipeline. It relies on the * producer of SAX events to:

              * ! *
            1. Conform to the specification of a non-validating XML parser that ! * reads all external entities, reported using SAX2 events.
            2. * ! *
            3. Report ignorable whitespace as such (through the ContentHandler ! * interface). This is, strictly speaking, optional for nonvalidating ! * XML processors.
            4. * ! *
            5. Make SAX2 DeclHandler callbacks, with default ! * attribute values already normalized (and without "<").
            6. * ! *
            7. Make SAX2 LexicalHandler startDTD() and endDTD () ! * callbacks.
            8. * ! *
            9. Act as if the (URI)/namespace-prefixes property were ! * set to true, by providing XML 1.0 names and all xmlns* ! * attributes (rather than omitting either or both).
            10. * ! *
            * *

            At this writing, the major SAX2 parsers (such as Ælfred2, * Crimson, and Xerces) meet these requirements, and this validation *************** import org.xml.sax.helpers.XMLReaderFact *** 128,178 **** * of them) or discarded (popular for the standalone declaration); in short, * that these are bugs in the XML specification (not all via SGML):

              * ! *
            • The Proper Declaration/PE Nesting and ! * Proper Group/PE Nesting VCs can't be tested because they ! * require access to particularly low level lexical level information. ! * In essence, the reason XML isn't a simple thing to parse is that ! * it's not a context free grammar, and these constraints elevate that ! * SGML-derived context sensitivity to the level of a semantic rule. * ! *
            • The Standalone Document Declaration VC can't be ! * tested. This is for two reasons. First, this flag isn't made ! * available through SAX2. Second, it also requires breaking that ! * lexical layering boundary. (If you ever wondered why classes ! * in compiler construction or language design barely mention the ! * existence of context-sensitive grammars, it's because of messy ! * issues like these.) * ! *
            • The Entity Declared VC can't be tested, because it ! * also requires breaking that lexical layering boundary! There's also ! * another issue: the VC wording (and seemingly intent) is ambiguous. ! * (This is still true in the "Second edition" XML spec.) ! * Since there is a WFC of the same name, everyone's life would be ! * easier if references to undeclared parsed entities were always well ! * formedness errors, regardless of whether they're parameter entities ! * or not. (Note that nonvalidating parsers are not required ! * to report all such well formedness errors if they don't read external ! * parameter entities, although currently most XML parsers read them ! * in an attempt to avoid problems from inconsistent parser behavior.) * ! *
            * *

            The second category of limitations on this validation represent * constraints associated with information that is not guaranteed to be * available (or in one case, is guaranteed not to be available, * through the SAX2 API:

              * ! *
            • The Unique Element Type Declaration VC may not be ! * reportable, if the underlying parser happens not to expose ! * multiple declarations. (Ælfred2 reports these validity ! * errors directly.)
            • * ! *
            • Similarly, the Unique Notation Name VC, added in the ! * 14-January-2000 XML spec errata to restrict typing models used by ! * elements, may not be reportable. (Ælfred reports these ! * validity errors directly.)
            • * ! *
            * *

            A third category relates to ease of implementation. (Think of this * as "bugs".) The most notable issue here is character handling. Rather --- 128,178 ---- * of them) or discarded (popular for the standalone declaration); in short, * that these are bugs in the XML specification (not all via SGML):

              * ! *
            • The Proper Declaration/PE Nesting and ! * Proper Group/PE Nesting VCs can't be tested because they ! * require access to particularly low level lexical level information. ! * In essence, the reason XML isn't a simple thing to parse is that ! * it's not a context free grammar, and these constraints elevate that ! * SGML-derived context sensitivity to the level of a semantic rule. * ! *
            • The Standalone Document Declaration VC can't be ! * tested. This is for two reasons. First, this flag isn't made ! * available through SAX2. Second, it also requires breaking that ! * lexical layering boundary. (If you ever wondered why classes ! * in compiler construction or language design barely mention the ! * existence of context-sensitive grammars, it's because of messy ! * issues like these.) * ! *
            • The Entity Declared VC can't be tested, because it ! * also requires breaking that lexical layering boundary! There's also ! * another issue: the VC wording (and seemingly intent) is ambiguous. ! * (This is still true in the "Second edition" XML spec.) ! * Since there is a WFC of the same name, everyone's life would be ! * easier if references to undeclared parsed entities were always well ! * formedness errors, regardless of whether they're parameter entities ! * or not. (Note that nonvalidating parsers are not required ! * to report all such well formedness errors if they don't read external ! * parameter entities, although currently most XML parsers read them ! * in an attempt to avoid problems from inconsistent parser behavior.) * ! *
            * *

            The second category of limitations on this validation represent * constraints associated with information that is not guaranteed to be * available (or in one case, is guaranteed not to be available, * through the SAX2 API:

              * ! *
            • The Unique Element Type Declaration VC may not be ! * reportable, if the underlying parser happens not to expose ! * multiple declarations. (Ælfred2 reports these validity ! * errors directly.)
            • * ! *
            • Similarly, the Unique Notation Name VC, added in the ! * 14-January-2000 XML spec errata to restrict typing models used by ! * elements, may not be reportable. (Ælfred reports these ! * validity errors directly.)
            • * ! *
            * *

            A third category relates to ease of implementation. (Think of this * as "bugs".) The most notable issue here is character handling. Rather *************** public final class ValidationConsumer ex *** 199,213 **** { // report error if we happen to notice a non-deterministic choice? // we won't report buggy content models; just buggy instances ! private static final boolean warnNonDeterministic = false; // for tracking active content models ! private String rootName; ! private Stack contentStack = new Stack (); // flags for "saved DTD" processing ! private boolean disableDeclarations; ! private boolean disableReset; // // most VCs get tested when we see element start tags. the per-element --- 199,213 ---- { // report error if we happen to notice a non-deterministic choice? // we won't report buggy content models; just buggy instances ! private static final boolean warnNonDeterministic = false; // for tracking active content models ! private String rootName; ! private Stack contentStack = new Stack (); // flags for "saved DTD" processing ! private boolean disableDeclarations; ! private boolean disableReset; // // most VCs get tested when we see element start tags. the per-element *************** public final class ValidationConsumer ex *** 217,241 **** // // key = element name; value = ElementInfo ! private Hashtable elements = new Hashtable (); // some VCs relate to ID/IDREF/IDREFS attributes // key = id; value = boolean true (defd) or false (refd) ! private Hashtable ids = new Hashtable (); // we just record declared notation and unparsed entity names. // the implementation here is simple/slow; these features // are seldom used, one hopes they'll wither away soon ! private Vector notations = new Vector (5, 5); ! private Vector nDeferred = new Vector (5, 5); ! private Vector unparsed = new Vector (5, 5); ! private Vector uDeferred = new Vector (5, 5); ! ! // note: DocBk 3.1.7 XML defines over 2 dozen notations, ! // used when defining unparsed entities for graphics ! // (and maybe in other places) - /** * Creates a pipeline terminus which consumes all events passed to --- 217,241 ---- // // key = element name; value = ElementInfo ! private Hashtable elements = new Hashtable (); // some VCs relate to ID/IDREF/IDREFS attributes // key = id; value = boolean true (defd) or false (refd) ! private Hashtable ids = new Hashtable (); // we just record declared notation and unparsed entity names. // the implementation here is simple/slow; these features // are seldom used, one hopes they'll wither away soon ! private Vector notations = new Vector (5, 5); ! private Vector nDeferred = new Vector (5, 5); ! private Vector unparsed = new Vector (5, 5); ! private Vector uDeferred = new Vector (5, 5); ! ! // note: DocBk 3.1.7 XML defines over 2 dozen notations, ! // used when defining unparsed entities for graphics ! // (and maybe in other places) ! /** * Creates a pipeline terminus which consumes all events passed to *************** public final class ValidationConsumer ex *** 244,254 **** * * @see #setErrorHandler */ ! // constructor used by PipelineFactory ! // ... and want one taking system ID of an external subset public ValidationConsumer () { ! this (null); } /** --- 244,254 ---- * * @see #setErrorHandler */ ! // constructor used by PipelineFactory ! // ... and want one taking system ID of an external subset public ValidationConsumer () { ! this (null); } /** *************** public final class ValidationConsumer ex *** 257,281 **** * * @see #setErrorHandler */ ! // constructor used by PipelineFactory ! // ... and want one taking system ID of an external subset ! // (which won't send declaration events) public ValidationConsumer (EventConsumer next) { ! super (next); ! setContentHandler (this); ! setDTDHandler (this); ! try { setProperty (DECL_HANDLER, this); } ! catch (Exception e) { /* "can't happen" */ } ! try { setProperty (LEXICAL_HANDLER, this); } ! catch (Exception e) { /* "can't happen" */ } } ! ! private static final String fakeRootName ! = ":Nobody:in:their_Right.Mind_would:use:this-name:1x:"; ! /** * Creates a validation consumer which is preloaded with the DTD provided. * It does this by constructing a document with that DTD, then parsing --- 257,281 ---- * * @see #setErrorHandler */ ! // constructor used by PipelineFactory ! // ... and want one taking system ID of an external subset ! // (which won't send declaration events) public ValidationConsumer (EventConsumer next) { ! super (next); ! setContentHandler (this); ! setDTDHandler (this); ! try { setProperty (DECL_HANDLER, this); } ! catch (Exception e) { /* "can't happen" */ } ! try { setProperty (LEXICAL_HANDLER, this); } ! catch (Exception e) { /* "can't happen" */ } } ! ! private static final String fakeRootName ! = ":Nobody:in:their_Right.Mind_would:use:this-name:1x:"; ! /** * Creates a validation consumer which is preloaded with the DTD provided. * It does this by constructing a document with that DTD, then parsing *************** public final class ValidationConsumer ex *** 287,468 **** * in a document being parsed. * * @param rootName The name of the required root element; if this is ! * null, any root element name will be accepted. * @param publicId If non-null and there is a non-null systemId, this ! * identifier provides an alternate access identifier for the DTD's ! * external subset. * @param systemId If non-null, this is a URI (normally URL) that ! * may be used to access the DTD's external subset. * @param internalSubset If non-null, holds literal markup declarations ! * comprising the DTD's internal subset. * @param resolver If non-null, this will be provided to the parser for ! * use when resolving parameter entities (including any external subset). * @param resolver If non-null, this will be provided to the parser for ! * use when resolving parameter entities (including any external subset). * @param minimalElement If non-null, a minimal valid document. * * @exception SAXNotSupportedException If the default SAX parser does ! * not support the standard lexical or declaration handlers. * @exception SAXParseException If the specified DTD has either ! * well-formedness or validity errors * @exception IOException If the specified DTD can't be read for ! * some reason */ public ValidationConsumer ( ! String rootName, ! String publicId, ! String systemId, ! String internalSubset, ! EntityResolver resolver, ! String minimalDocument ) throws SAXException, IOException { ! this (null); ! disableReset = true; ! if (rootName == null) ! rootName = fakeRootName; ! // ! // Synthesize document with that DTD; is it possible to do ! // better for the declaration of the root element? ! // ! // NOTE: can't use SAX2 to write internal subsets. ! // ! StringWriter writer = new StringWriter (); ! writer.write (""); ! } ! if (internalSubset != null) ! writer.write (internalSubset); ! writer.write ("\n ]>"); ! if (minimalDocument != null) { ! writer.write ("\n"); ! writer.write (minimalDocument); ! writer.write ("\n"); ! } else { ! writer.write (" <"); ! writer.write (rootName); ! writer.write ("/>\n"); ! } ! minimalDocument = writer.toString (); ! // ! // OK, load it ! // ! XMLReader producer; ! producer = XMLReaderFactory.createXMLReader (); ! bind (producer, this); ! if (resolver != null) ! producer.setEntityResolver (resolver); ! InputSource in; ! ! in = new InputSource (new StringReader (minimalDocument)); ! producer.parse (in); ! disableDeclarations = true; ! if (rootName == fakeRootName) ! this.rootName = null; } private void resetState () { ! if (!disableReset) { ! rootName = null; ! contentStack.removeAllElements (); ! elements.clear (); ! ids.clear (); ! notations.removeAllElements (); ! nDeferred.removeAllElements (); ! unparsed.removeAllElements (); ! uDeferred.removeAllElements (); ! } } private void warning (String description) throws SAXException { ! ErrorHandler errHandler = getErrorHandler (); ! Locator locator = getDocumentLocator (); ! SAXParseException err; ! if (errHandler == null) ! return; ! if (locator == null) ! err = new SAXParseException (description, null, null, -1, -1); ! else ! err = new SAXParseException (description, locator); ! errHandler.warning (err); } // package private (for ChildrenRecognizer) private void error (String description) throws SAXException { ! ErrorHandler errHandler = getErrorHandler (); ! Locator locator = getDocumentLocator (); ! SAXParseException err; ! if (locator == null) ! err = new SAXParseException (description, null, null, -1, -1); ! else ! err = new SAXParseException (description, locator); ! if (errHandler != null) ! errHandler.error (err); ! else // else we always treat it as fatal! ! throw err; } private void fatalError (String description) throws SAXException { ! ErrorHandler errHandler = getErrorHandler (); ! Locator locator = getDocumentLocator (); ! SAXParseException err; ! if (locator != null) ! err = new SAXParseException (description, locator); ! else ! err = new SAXParseException (description, null, null, -1, -1); ! if (errHandler != null) ! errHandler.fatalError (err); ! // we always treat this as fatal, regardless of the handler ! throw err; } private static boolean isExtender (char c) { ! // [88] Extender ::= ... ! return c == 0x00b7 || c == 0x02d0 || c == 0x02d1 || c == 0x0387 ! || c == 0x0640 || c == 0x0e46 || c == 0x0ec6 || c == 0x3005 ! || (c >= 0x3031 && c <= 0x3035) ! || (c >= 0x309d && c <= 0x309e) ! || (c >= 0x30fc && c <= 0x30fe); } --- 287,468 ---- * in a document being parsed. * * @param rootName The name of the required root element; if this is ! * null, any root element name will be accepted. * @param publicId If non-null and there is a non-null systemId, this ! * identifier provides an alternate access identifier for the DTD's ! * external subset. * @param systemId If non-null, this is a URI (normally URL) that ! * may be used to access the DTD's external subset. * @param internalSubset If non-null, holds literal markup declarations ! * comprising the DTD's internal subset. * @param resolver If non-null, this will be provided to the parser for ! * use when resolving parameter entities (including any external subset). * @param resolver If non-null, this will be provided to the parser for ! * use when resolving parameter entities (including any external subset). * @param minimalElement If non-null, a minimal valid document. * * @exception SAXNotSupportedException If the default SAX parser does ! * not support the standard lexical or declaration handlers. * @exception SAXParseException If the specified DTD has either ! * well-formedness or validity errors * @exception IOException If the specified DTD can't be read for ! * some reason */ public ValidationConsumer ( ! String rootName, ! String publicId, ! String systemId, ! String internalSubset, ! EntityResolver resolver, ! String minimalDocument ) throws SAXException, IOException { ! this (null); ! disableReset = true; ! if (rootName == null) ! rootName = fakeRootName; ! // ! // Synthesize document with that DTD; is it possible to do ! // better for the declaration of the root element? ! // ! // NOTE: can't use SAX2 to write internal subsets. ! // ! StringWriter writer = new StringWriter (); ! writer.write (""); ! } ! if (internalSubset != null) ! writer.write (internalSubset); ! writer.write ("\n ]>"); ! if (minimalDocument != null) { ! writer.write ("\n"); ! writer.write (minimalDocument); ! writer.write ("\n"); ! } else { ! writer.write (" <"); ! writer.write (rootName); ! writer.write ("/>\n"); ! } ! minimalDocument = writer.toString (); ! // ! // OK, load it ! // ! XMLReader producer; ! producer = XMLReaderFactory.createXMLReader (); ! bind (producer, this); ! if (resolver != null) ! producer.setEntityResolver (resolver); ! InputSource in; ! in = new InputSource (new StringReader (minimalDocument)); ! producer.parse (in); ! ! disableDeclarations = true; ! if (rootName == fakeRootName) ! this.rootName = null; } private void resetState () { ! if (!disableReset) { ! rootName = null; ! contentStack.removeAllElements (); ! elements.clear (); ! ids.clear (); ! notations.removeAllElements (); ! nDeferred.removeAllElements (); ! unparsed.removeAllElements (); ! uDeferred.removeAllElements (); ! } } private void warning (String description) throws SAXException { ! ErrorHandler errHandler = getErrorHandler (); ! Locator locator = getDocumentLocator (); ! SAXParseException err; ! if (errHandler == null) ! return; ! if (locator == null) ! err = new SAXParseException (description, null, null, -1, -1); ! else ! err = new SAXParseException (description, locator); ! errHandler.warning (err); } // package private (for ChildrenRecognizer) private void error (String description) throws SAXException { ! ErrorHandler errHandler = getErrorHandler (); ! Locator locator = getDocumentLocator (); ! SAXParseException err; ! if (locator == null) ! err = new SAXParseException (description, null, null, -1, -1); ! else ! err = new SAXParseException (description, locator); ! if (errHandler != null) ! errHandler.error (err); ! else // else we always treat it as fatal! ! throw err; } private void fatalError (String description) throws SAXException { ! ErrorHandler errHandler = getErrorHandler (); ! Locator locator = getDocumentLocator (); ! SAXParseException err; ! if (locator != null) ! err = new SAXParseException (description, locator); ! else ! err = new SAXParseException (description, null, null, -1, -1); ! if (errHandler != null) ! errHandler.fatalError (err); ! // we always treat this as fatal, regardless of the handler ! throw err; } private static boolean isExtender (char c) { ! // [88] Extender ::= ... ! return c == 0x00b7 || c == 0x02d0 || c == 0x02d1 || c == 0x0387 ! || c == 0x0640 || c == 0x0e46 || c == 0x0ec6 || c == 0x3005 ! || (c >= 0x3031 && c <= 0x3035) ! || (c >= 0x309d && c <= 0x309e) ! || (c >= 0x30fc && c <= 0x30fe); } *************** public final class ValidationConsumer ex *** 470,555 **** private boolean isName (String name, String context, String id) throws SAXException { ! char buf [] = name.toCharArray (); ! boolean pass = true; ! if (!Character.isUnicodeIdentifierStart (buf [0]) ! && ":_".indexOf (buf [0]) == -1) ! pass = false; ! else { ! int max = buf.length; ! for (int i = 1; pass && i < max; i++) { ! char c = buf [i]; ! if (!Character.isUnicodeIdentifierPart (c) ! && ":-_.".indexOf (c) == -1 ! && !isExtender (c)) ! pass = false; ! } ! } ! if (!pass) ! error ("In " + context + " for " + id ! + ", '" + name + "' is not a name"); ! return pass; // true == OK } // use augmented Unicode rules, not full XML rules private boolean isNmtoken (String nmtoken, String context, String id) throws SAXException { ! char buf [] = nmtoken.toCharArray (); ! boolean pass = true; ! int max = buf.length; ! // XXX make this share code with isName ! for (int i = 0; pass && i < max; i++) { ! char c = buf [i]; ! if (!Character.isUnicodeIdentifierPart (c) ! && ":-_.".indexOf (c) == -1 ! && !isExtender (c)) ! pass = false; ! } ! if (!pass) ! error ("In " + context + " for " + id ! + ", '" + nmtoken + "' is not a name token"); ! return pass; // true == OK } private void checkEnumeration (String value, String type, String name) throws SAXException { ! if (!hasMatch (value, type)) ! // VC: Enumeration ! error ("Value '" + value ! + "' for attribute '" + name ! + "' is not permitted: " + type); } // used to test enumerated attributes and mixed content models // package private static boolean hasMatch (String value, String orList) { ! int len = value.length (); ! int max = orList.length () - len; ! for (int start = 0; ! (start = orList.indexOf (value, start)) != -1; ! start++) { ! char c; ! if (start > max) ! break; ! c = orList.charAt (start - 1); ! if (c != '|' && c != '('/*)*/) ! continue; ! c = orList.charAt (start + len); ! if (c != '|' && /*(*/ c != ')') ! continue; ! return true; ! } ! return false; } /** --- 470,555 ---- private boolean isName (String name, String context, String id) throws SAXException { ! char buf [] = name.toCharArray (); ! boolean pass = true; ! if (!Character.isUnicodeIdentifierStart (buf [0]) ! && ":_".indexOf (buf [0]) == -1) ! pass = false; ! else { ! int max = buf.length; ! for (int i = 1; pass && i < max; i++) { ! char c = buf [i]; ! if (!Character.isUnicodeIdentifierPart (c) ! && ":-_.".indexOf (c) == -1 ! && !isExtender (c)) ! pass = false; ! } ! } ! if (!pass) ! error ("In " + context + " for " + id ! + ", '" + name + "' is not a name"); ! return pass; // true == OK } // use augmented Unicode rules, not full XML rules private boolean isNmtoken (String nmtoken, String context, String id) throws SAXException { ! char buf [] = nmtoken.toCharArray (); ! boolean pass = true; ! int max = buf.length; ! // XXX make this share code with isName ! for (int i = 0; pass && i < max; i++) { ! char c = buf [i]; ! if (!Character.isUnicodeIdentifierPart (c) ! && ":-_.".indexOf (c) == -1 ! && !isExtender (c)) ! pass = false; ! } ! if (!pass) ! error ("In " + context + " for " + id ! + ", '" + nmtoken + "' is not a name token"); ! return pass; // true == OK } private void checkEnumeration (String value, String type, String name) throws SAXException { ! if (!hasMatch (value, type)) ! // VC: Enumeration ! error ("Value '" + value ! + "' for attribute '" + name ! + "' is not permitted: " + type); } // used to test enumerated attributes and mixed content models // package private static boolean hasMatch (String value, String orList) { ! int len = value.length (); ! int max = orList.length () - len; ! for (int start = 0; ! (start = orList.indexOf (value, start)) != -1; ! start++) { ! char c; ! if (start > max) ! break; ! c = orList.charAt (start - 1); ! if (c != '|' && c != '('/*)*/) ! continue; ! c = orList.charAt (start + len); ! if (c != '|' && /*(*/ c != ')') ! continue; ! return true; ! } ! return false; } /** *************** public final class ValidationConsumer ex *** 561,571 **** public void startDTD (String name, String publicId, String systemId) throws SAXException { ! if (disableDeclarations) ! return; ! rootName = name; ! super.startDTD (name, publicId, systemId); } /** --- 561,571 ---- public void startDTD (String name, String publicId, String systemId) throws SAXException { ! if (disableDeclarations) ! return; ! rootName = name; ! super.startDTD (name, publicId, systemId); } /** *************** public final class ValidationConsumer ex *** 577,613 **** public void endDTD () throws SAXException { ! if (disableDeclarations) ! return; ! // this is a convenient hook for end-of-dtd checks, but we ! // could also trigger it in the first startElement call. ! // locator info is more appropriate here though. ! // VC: Notation Declared (NDATA can refer to them before decls, ! // as can NOTATION attribute enumerations and defaults) ! int length = nDeferred.size (); ! for (int i = 0; i < length; i++) { ! String notation = (String) nDeferred.elementAt (i); ! if (!notations.contains (notation)) { ! error ("A declaration referred to notation '" + notation ! + "' which was never declared"); ! } ! } ! nDeferred.removeAllElements (); ! // VC: Entity Name (attribute values can refer to them ! // before they're declared); VC Attribute Default Legal ! length = uDeferred.size (); ! for (int i = 0; i < length; i++) { ! String entity = (String) uDeferred.elementAt (i); ! if (!unparsed.contains (entity)) { ! error ("An attribute default referred to entity '" + entity ! + "' which was never declared"); ! } ! } ! uDeferred.removeAllElements (); ! super.endDTD (); } --- 577,613 ---- public void endDTD () throws SAXException { ! if (disableDeclarations) ! return; ! // this is a convenient hook for end-of-dtd checks, but we ! // could also trigger it in the first startElement call. ! // locator info is more appropriate here though. ! // VC: Notation Declared (NDATA can refer to them before decls, ! // as can NOTATION attribute enumerations and defaults) ! int length = nDeferred.size (); ! for (int i = 0; i < length; i++) { ! String notation = (String) nDeferred.elementAt (i); ! if (!notations.contains (notation)) { ! error ("A declaration referred to notation '" + notation ! + "' which was never declared"); ! } ! } ! nDeferred.removeAllElements (); ! // VC: Entity Name (attribute values can refer to them ! // before they're declared); VC Attribute Default Legal ! length = uDeferred.size (); ! for (int i = 0; i < length; i++) { ! String entity = (String) uDeferred.elementAt (i); ! if (!unparsed.contains (entity)) { ! error ("An attribute default referred to entity '" + entity ! + "' which was never declared"); ! } ! } ! uDeferred.removeAllElements (); ! super.endDTD (); } *************** public final class ValidationConsumer ex *** 615,624 **** // all attributes except enumerations ... // "(this|or|that|...)" and "NOTATION (this|or|that|...)" static final String types [] = { ! "CDATA", ! "ID", "IDREF", "IDREFS", ! "NMTOKEN", "NMTOKENS", ! "ENTITY", "ENTITIES" }; --- 615,624 ---- // all attributes except enumerations ... // "(this|or|that|...)" and "NOTATION (this|or|that|...)" static final String types [] = { ! "CDATA", ! "ID", "IDREF", "IDREFS", ! "NMTOKEN", "NMTOKENS", ! "ENTITY", "ENTITIES" }; *************** public final class ValidationConsumer ex *** 630,801 **** * preloaded with a particular DTD. */ public void attributeDecl ( ! String eName, ! String aName, ! String type, ! String mode, ! String value ) throws SAXException { ! if (disableDeclarations) ! return; ! ElementInfo info = (ElementInfo) elements.get (eName); ! AttributeInfo ainfo = new AttributeInfo (); ! boolean checkOne = false; ! boolean interned = false; ! // cheap interning of type names and #FIXED, #REQUIRED ! // for faster startElement (we can use "==") ! for (int i = 0; i < types.length; i++) { ! if (types [i].equals (type)) { ! type = types [i]; ! interned = true; ! break; ! } ! } ! if ("#FIXED".equals (mode)) ! mode = "#FIXED"; ! else if ("#REQUIRED".equals (mode)) ! mode = "#REQUIRED"; ! ainfo.type = type; ! ainfo.mode = mode; ! ainfo.value = value; ! // we might not have seen the content model yet ! if (info == null) { ! info = new ElementInfo (eName); ! elements.put (eName, info); ! } ! if ("ID" == type) { ! checkOne = true; ! if (!("#REQUIRED" == mode || "#IMPLIED".equals (mode))) { ! // VC: ID Attribute Default ! error ("ID attribute '" + aName ! + "' must be #IMPLIED or #REQUIRED"); ! } ! } else if (!interned && type.startsWith ("NOTATION ")) { ! checkOne = true; ! // VC: Notation Attributes (notations must be declared) ! StringTokenizer tokens = new StringTokenizer ( ! type.substring (10, type.lastIndexOf (')')), ! "|"); ! while (tokens.hasMoreTokens ()) { ! String token = tokens.nextToken (); ! if (!notations.contains (token)) ! nDeferred.addElement (token); ! } ! } ! if (checkOne) { ! for (Enumeration e = info.attributes.keys (); ! e.hasMoreElements (); ! /* NOP */) { ! String name; ! AttributeInfo ainfo2; ! name = (String) e.nextElement (); ! ainfo2 = (AttributeInfo) info.attributes.get (name); ! if (type == ainfo2.type || !interned /* NOTATION */) { ! // VC: One ID per Element Type ! // VC: One Notation per Element TYpe ! error ("Element '" + eName ! + "' already has an attribute of type " ! + (interned ? "NOTATION" : type) ! + " ('" + name ! + "') so '" + aName ! + "' is a validity error"); ! } ! } ! } ! // VC: Attribute Default Legal ! if (value != null) { ! if ("CDATA" == type) { ! // event source rejected '<' ! } else if ("NMTOKEN" == type) { ! // VC: Name Token (is a nmtoken) ! isNmtoken (value, "attribute default", aName); ! } else if ("NMTOKENS" == type) { ! // VC: Name Token (is a nmtoken; at least one value) ! StringTokenizer tokens = new StringTokenizer (value); ! if (!tokens.hasMoreTokens ()) ! error ("Default for attribute '" + aName ! + "' must have at least one name token."); ! else do { ! String token = tokens.nextToken (); ! isNmtoken (token, "attribute default", aName); ! } while (tokens.hasMoreTokens ()); ! } else if ("IDREF" == type || "ENTITY" == type) { ! // VC: Entity Name (is a name) ! // VC: IDREF (is a name) (is declared) ! isName (value, "attribute default", aName); ! if ("ENTITY" == type && !unparsed.contains (value)) ! uDeferred.addElement (value); ! } else if ("IDREFS" == type || "ENTITIES" == type) { ! // VC: Entity Name (is a name; at least one value) ! // VC: IDREF (is a name; at least one value) ! StringTokenizer names = new StringTokenizer (value); ! if (!names.hasMoreTokens ()) ! error ("Default for attribute '" + aName ! + "' must have at least one name."); ! else do { ! String name = names.nextToken (); ! isName (name, "attribute default", aName); ! if ("ENTITIES" == type && !unparsed.contains (name)) ! uDeferred.addElement (value); ! } while (names.hasMoreTokens ()); ! ! } else if (type.charAt (0) == '(' /*)*/ ) { ! // VC: Enumeration (must match) ! checkEnumeration (value, type, aName); ! } else if (!interned && checkOne) { /* NOTATION */ ! // VC: Notation attributes (must be names) ! isName (value, "attribute default", aName); ! // VC: Notation attributes (must be declared) ! if (!notations.contains (value)) ! nDeferred.addElement (value); ! ! // VC: Enumeration (must match) ! checkEnumeration (value, type, aName); ! } else if ("ID" != type) ! throw new RuntimeException ("illegal attribute type: " + type); ! } ! if (info.attributes.get (aName) == null) ! info.attributes.put (aName, ainfo); ! /* ! else ! warning ("Element '" + eName ! + "' already has an attribute named '" + aName + "'"); ! */ ! if ("xml:space".equals (aName)) { ! if (!("(default|preserve)".equals (type) ! || "(preserve|default)".equals (type) ! // these next two are arguable; XHTML's DTD doesn't ! // deserve errors. After all, it's not like any ! // illegal _value_ could pass ... ! || "(preserve)".equals (type) ! || "(default)".equals (type) ! )) ! error ( ! "xml:space attribute type must be like '(default|preserve)'" ! + " not '" + type + "'" ! ); ! } ! super.attributeDecl (eName, aName, type, mode, value); } /** --- 630,801 ---- * preloaded with a particular DTD. */ public void attributeDecl ( ! String eName, ! String aName, ! String type, ! String mode, ! String value ) throws SAXException { ! if (disableDeclarations) ! return; ! ElementInfo info = (ElementInfo) elements.get (eName); ! AttributeInfo ainfo = new AttributeInfo (); ! boolean checkOne = false; ! boolean interned = false; ! // cheap interning of type names and #FIXED, #REQUIRED ! // for faster startElement (we can use "==") ! for (int i = 0; i < types.length; i++) { ! if (types [i].equals (type)) { ! type = types [i]; ! interned = true; ! break; ! } ! } ! if ("#FIXED".equals (mode)) ! mode = "#FIXED"; ! else if ("#REQUIRED".equals (mode)) ! mode = "#REQUIRED"; ! ainfo.type = type; ! ainfo.mode = mode; ! ainfo.value = value; ! // we might not have seen the content model yet ! if (info == null) { ! info = new ElementInfo (eName); ! elements.put (eName, info); ! } ! if ("ID" == type) { ! checkOne = true; ! if (!("#REQUIRED" == mode || "#IMPLIED".equals (mode))) { ! // VC: ID Attribute Default ! error ("ID attribute '" + aName ! + "' must be #IMPLIED or #REQUIRED"); ! } ! } else if (!interned && type.startsWith ("NOTATION ")) { ! checkOne = true; ! // VC: Notation Attributes (notations must be declared) ! StringTokenizer tokens = new StringTokenizer ( ! type.substring (10, type.lastIndexOf (')')), ! "|"); ! while (tokens.hasMoreTokens ()) { ! String token = tokens.nextToken (); ! if (!notations.contains (token)) ! nDeferred.addElement (token); ! } ! } ! if (checkOne) { ! for (Enumeration e = info.attributes.keys (); ! e.hasMoreElements (); ! /* NOP */) { ! String name; ! AttributeInfo ainfo2; ! name = (String) e.nextElement (); ! ainfo2 = (AttributeInfo) info.attributes.get (name); ! if (type == ainfo2.type || !interned /* NOTATION */) { ! // VC: One ID per Element Type ! // VC: One Notation per Element TYpe ! error ("Element '" + eName ! + "' already has an attribute of type " ! + (interned ? "NOTATION" : type) ! + " ('" + name ! + "') so '" + aName ! + "' is a validity error"); ! } ! } ! } ! // VC: Attribute Default Legal ! if (value != null) { ! if ("CDATA" == type) { ! // event source rejected '<' ! } else if ("NMTOKEN" == type) { ! // VC: Name Token (is a nmtoken) ! isNmtoken (value, "attribute default", aName); ! } else if ("NMTOKENS" == type) { ! // VC: Name Token (is a nmtoken; at least one value) ! StringTokenizer tokens = new StringTokenizer (value); ! if (!tokens.hasMoreTokens ()) ! error ("Default for attribute '" + aName ! + "' must have at least one name token."); ! else do { ! String token = tokens.nextToken (); ! isNmtoken (token, "attribute default", aName); ! } while (tokens.hasMoreTokens ()); ! } else if ("IDREF" == type || "ENTITY" == type) { ! // VC: Entity Name (is a name) ! // VC: IDREF (is a name) (is declared) ! isName (value, "attribute default", aName); ! if ("ENTITY" == type && !unparsed.contains (value)) ! uDeferred.addElement (value); ! } else if ("IDREFS" == type || "ENTITIES" == type) { ! // VC: Entity Name (is a name; at least one value) ! // VC: IDREF (is a name; at least one value) ! StringTokenizer names = new StringTokenizer (value); ! if (!names.hasMoreTokens ()) ! error ("Default for attribute '" + aName ! + "' must have at least one name."); ! else do { ! String name = names.nextToken (); ! isName (name, "attribute default", aName); ! if ("ENTITIES" == type && !unparsed.contains (name)) ! uDeferred.addElement (value); ! } while (names.hasMoreTokens ()); ! } else if (type.charAt (0) == '(' /*)*/ ) { ! // VC: Enumeration (must match) ! checkEnumeration (value, type, aName); ! } else if (!interned && checkOne) { /* NOTATION */ ! // VC: Notation attributes (must be names) ! isName (value, "attribute default", aName); ! // VC: Notation attributes (must be declared) ! if (!notations.contains (value)) ! nDeferred.addElement (value); ! // VC: Enumeration (must match) ! checkEnumeration (value, type, aName); ! } else if ("ID" != type) ! throw new RuntimeException ("illegal attribute type: " + type); ! } ! if (info.attributes.get (aName) == null) ! info.attributes.put (aName, ainfo); ! /* ! else ! warning ("Element '" + eName ! + "' already has an attribute named '" + aName + "'"); ! */ ! ! if ("xml:space".equals (aName)) { ! if (!("(default|preserve)".equals (type) ! || "(preserve|default)".equals (type) ! // these next two are arguable; XHTML's DTD doesn't ! // deserve errors. After all, it's not like any ! // illegal _value_ could pass ... ! || "(preserve)".equals (type) ! || "(default)".equals (type) ! )) ! error ( ! "xml:space attribute type must be like '(default|preserve)'" ! + " not '" + type + "'" ! ); ! ! } ! super.attributeDecl (eName, aName, type, mode, value); } /** *************** public final class ValidationConsumer ex *** 807,835 **** public void elementDecl (String name, String model) throws SAXException { ! if (disableDeclarations) ! return; ! ElementInfo info = (ElementInfo) elements.get (name); ! // we might have seen an attribute decl already ! if (info == null) { ! info = new ElementInfo (name); ! elements.put (name, info); ! } ! if (info.model != null) { ! // NOTE: not all parsers can report such duplicates. ! // VC: Unique Element Type Declaration ! error ("Element type '" + name ! + "' was already declared."); ! } else { ! info.model = model; ! // VC: No Duplicate Types (in mixed content models) ! if (model.charAt (1) == '#') // (#PCDATA... ! info.getRecognizer (this); ! } ! super.elementDecl (name, model); } /** --- 807,835 ---- public void elementDecl (String name, String model) throws SAXException { ! if (disableDeclarations) ! return; ! ElementInfo info = (ElementInfo) elements.get (name); ! // we might have seen an attribute decl already ! if (info == null) { ! info = new ElementInfo (name); ! elements.put (name, info); ! } ! if (info.model != null) { ! // NOTE: not all parsers can report such duplicates. ! // VC: Unique Element Type Declaration ! error ("Element type '" + name ! + "' was already declared."); ! } else { ! info.model = model; ! // VC: No Duplicate Types (in mixed content models) ! if (model.charAt (1) == '#') // (#PCDATA... ! info.getRecognizer (this); ! } ! super.elementDecl (name, model); } /** *************** public final class ValidationConsumer ex *** 839,846 **** public void internalEntityDecl (String name, String value) throws SAXException { ! if (!disableDeclarations) ! super.internalEntityDecl (name, value); } /** --- 839,846 ---- public void internalEntityDecl (String name, String value) throws SAXException { ! if (!disableDeclarations) ! super.internalEntityDecl (name, value); } /** *************** public final class ValidationConsumer ex *** 848,858 **** * one was preloaded with a particular DTD */ public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException { ! if (!disableDeclarations) ! super.externalEntityDecl (name, publicId, systemId); } --- 848,858 ---- * one was preloaded with a particular DTD */ public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException { ! if (!disableDeclarations) ! super.externalEntityDecl (name, publicId, systemId); } *************** public final class ValidationConsumer ex *** 865,875 **** public void notationDecl (String name, String publicId, String systemId) throws SAXException { ! if (disableDeclarations) ! return; ! notations.addElement (name); ! super.notationDecl (name, publicId, systemId); } /** --- 865,875 ---- public void notationDecl (String name, String publicId, String systemId) throws SAXException { ! if (disableDeclarations) ! return; ! notations.addElement (name); ! super.notationDecl (name, publicId, systemId); } /** *************** public final class ValidationConsumer ex *** 879,900 **** * unless this one was preloaded with a particular DTD. */ public void unparsedEntityDecl ( ! String name, ! String publicId, ! String systemId, ! String notationName ) throws SAXException { ! if (disableDeclarations) ! return; ! unparsed.addElement (name); ! if (!notations.contains (notationName)) ! nDeferred.addElement (notationName); ! super.unparsedEntityDecl (name, publicId, systemId, notationName); } ! ! /** * ContentHandler Ensures that state from any previous parse * has been deleted. --- 879,900 ---- * unless this one was preloaded with a particular DTD. */ public void unparsedEntityDecl ( ! String name, ! String publicId, ! String systemId, ! String notationName ) throws SAXException { ! if (disableDeclarations) ! return; ! unparsed.addElement (name); ! if (!notations.contains (notationName)) ! nDeferred.addElement (notationName); ! super.unparsedEntityDecl (name, publicId, systemId, notationName); } ! ! /** * ContentHandler Ensures that state from any previous parse * has been deleted. *************** public final class ValidationConsumer ex *** 903,916 **** public void startDocument () throws SAXException { ! resetState (); ! super.startDocument (); } private static boolean isAsciiLetter (char c) { ! return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); } --- 903,916 ---- public void startDocument () throws SAXException { ! resetState (); ! super.startDocument (); } private static boolean isAsciiLetter (char c) { ! return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); } *************** public final class ValidationConsumer ex *** 921,927 **** public void skippedEntity (String name) throws SAXException { ! fatalError ("may not skip entities"); } /* --- 921,927 ---- public void skippedEntity (String name) throws SAXException { ! fatalError ("may not skip entities"); } /* *************** public final class ValidationConsumer ex *** 930,943 **** private String expandDefaultRefs (String s) throws SAXException { ! if (s.indexOf ('&') < 0) ! return s; ! // FIXME: handle &#nn; &#xnn; &name; ! String message = "Can't expand refs in attribute default: " + s; ! warning (message); ! return s; } /** --- 930,943 ---- private String expandDefaultRefs (String s) throws SAXException { ! if (s.indexOf ('&') < 0) ! return s; ! // FIXME: handle &#nn; &#xnn; &name; ! String message = "Can't expand refs in attribute default: " + s; ! warning (message); ! return s; } /** *************** public final class ValidationConsumer ex *** 946,1193 **** * Passed to the next consumer. */ public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ) throws SAXException { ! // ! // First check content model for the enclosing scope. ! // ! if (contentStack.isEmpty ()) { ! // VC: Root Element Type ! if (!qName.equals (rootName)) { ! if (rootName == null) ! warning ("This document has no DTD, can't be valid"); ! else ! error ("Root element type '" + qName ! + "' was declared to be '" + rootName + "'"); ! } ! } else { ! Recognizer state = (Recognizer) contentStack.peek (); ! if (state != null) { ! Recognizer newstate = state.acceptElement (qName); ! if (newstate == null) ! error ("Element type '" + qName ! + "' in element '" + state.type.name ! + "' violates content model " + state.type.model ! ); ! if (newstate != state) { ! contentStack.pop (); ! contentStack.push (newstate); ! } ! } ! } ! // ! // Then check that this element was declared, and push the ! // object used to validate its content model onto our stack. ! // ! // This is where the recognizer gets created, if needed; if ! // it's a "children" (elements) content model, an NDFA is ! // created. (One recognizer is used per content type, no ! // matter how complex that recognizer is.) ! // ! ElementInfo info; ! info = (ElementInfo) elements.get (qName); ! if (info == null || info.model == null) { ! // VC: Element Valid (base clause) ! error ("Element type '" + qName + "' was not declared"); ! contentStack.push (null); ! // for less diagnostic noise, fake a declaration. ! elementDecl (qName, "ANY"); ! } else ! contentStack.push (info.getRecognizer (this)); ! // ! // Then check each attribute present ! // ! int len; ! String aname; ! AttributeInfo ainfo; ! if (atts != null) ! len = atts.getLength (); ! else ! len = 0; ! ! for (int i = 0; i < len; i++) { ! aname = atts.getQName (i); ! if (info == null ! || (ainfo = (AttributeInfo) info.attributes.get (aname)) ! == null) { ! // VC: Attribute Value Type ! error ("Attribute '" + aname ! + "' was not declared for element type " + qName); ! continue; ! } ! String value = atts.getValue (i); ! // note that "==" for type names and "#FIXED" is correct ! // (and fast) since we've interned those literals. ! if ("#FIXED" == ainfo.mode) { ! String expanded = expandDefaultRefs (ainfo.value); ! // VC: Fixed Attribute Default ! if (!value.equals (expanded)) { ! error ("Attribute '" + aname ! + "' must match " + expanded ! ); ! continue; ! } ! } ! if ("CDATA" == ainfo.type) ! continue; ! ! // ! // For all other attribute types, there are various ! // rules to follow. ! // ! ! if ("ID" == ainfo.type) { ! // VC: ID (must be a name) ! if (isName (value, "ID attribute", aname)) { ! if (Boolean.TRUE == ids.get (value)) ! // VC: ID (appears once) ! error ("ID attribute " + aname ! + " uses an ID value '" + value ! + "' which was already declared."); ! else ! // any forward refs are no longer problems ! ids.put (value, Boolean.TRUE); ! } ! continue; ! } ! if ("IDREF" == ainfo.type) { ! // VC: IDREF (value must be a name) ! if (isName (value, "IDREF attribute", aname)) { ! // VC: IDREF (must match some ID attribute) ! if (ids.get (value) == null) ! // new -- assume it's a forward ref ! ids.put (value, Boolean.FALSE); ! } ! continue; ! } ! if ("IDREFS" == ainfo.type) { ! StringTokenizer tokens = new StringTokenizer (value, " "); ! if (!tokens.hasMoreTokens ()) { ! // VC: IDREF (one or more values) ! error ("IDREFS attribute " + aname ! + " must have at least one ID ref"); ! } else do { ! String id = tokens.nextToken (); ! // VC: IDREF (value must be a name) ! if (isName (id, "IDREFS attribute", aname)) { ! // VC: IDREF (must match some ID attribute) ! if (ids.get (id) == null) ! // new -- assume it's a forward ref ! ids.put (id, Boolean.FALSE); ! } ! } while (tokens.hasMoreTokens ()); ! continue; ! } ! if ("NMTOKEN" == ainfo.type) { ! // VC: Name Token (is a name token) ! isNmtoken (value, "NMTOKEN attribute", aname); ! continue; ! } ! if ("NMTOKENS" == ainfo.type) { ! StringTokenizer tokens = new StringTokenizer (value, " "); ! if (!tokens.hasMoreTokens ()) { ! // VC: Name Token (one or more values) ! error ("NMTOKENS attribute " + aname ! + " must have at least one name token"); ! } else do { ! String token = tokens.nextToken (); ! // VC: Name Token (is a name token) ! isNmtoken (token, "NMTOKENS attribute", aname); ! } while (tokens.hasMoreTokens ()); ! continue; ! } ! if ("ENTITY" == ainfo.type) { ! if (!unparsed.contains (value)) ! // VC: Entity Name ! error ("Value of attribute '" + aname ! + "' refers to unparsed entity '" + value ! + "' which was not declared."); ! continue; ! } ! if ("ENTITIES" == ainfo.type) { ! StringTokenizer tokens = new StringTokenizer (value, " "); ! if (!tokens.hasMoreTokens ()) { ! // VC: Entity Name (one or more values) ! error ("ENTITIES attribute " + aname ! + " must have at least one name token"); ! } else do { ! String entity = tokens.nextToken (); ! if (!unparsed.contains (entity)) ! // VC: Entity Name ! error ("Value of attribute '" + aname ! + "' refers to unparsed entity '" + entity ! + "' which was not declared."); ! } while (tokens.hasMoreTokens ()); ! continue; ! } ! // ! // check for enumerations last; more expensive ! // ! if (ainfo.type.charAt (0) == '(' /*)*/ ! || ainfo.type.startsWith ("NOTATION ") ! ) { ! // VC: Enumeration (value must be defined) ! checkEnumeration (value, ainfo.type, aname); ! continue; ! } ! } ! // ! // Last, check that all #REQUIRED attributes were provided ! // ! if (info != null) { ! Hashtable table = info.attributes; ! if (table.size () != 0) { ! Enumeration e = table.keys (); ! // XXX table.keys uses the heap, bleech -- slows things ! while (e.hasMoreElements ()) { ! aname = (String) e.nextElement (); ! ainfo = (AttributeInfo) table.get (aname); ! // "#REQUIRED" mode was interned in attributeDecl ! if ("#REQUIRED" == ainfo.mode ! && atts.getValue (aname) == null) { ! // VC: Required Attribute ! error ("Attribute '" + aname + "' must be specified " ! + "for element type " + qName); ! } ! } ! } ! } ! super.startElement (uri, localName, qName, atts); } /** --- 946,1193 ---- * Passed to the next consumer. */ public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ) throws SAXException { ! // ! // First check content model for the enclosing scope. ! // ! if (contentStack.isEmpty ()) { ! // VC: Root Element Type ! if (!qName.equals (rootName)) { ! if (rootName == null) ! warning ("This document has no DTD, can't be valid"); ! else ! error ("Root element type '" + qName ! + "' was declared to be '" + rootName + "'"); ! } ! } else { ! Recognizer state = (Recognizer) contentStack.peek (); ! if (state != null) { ! Recognizer newstate = state.acceptElement (qName); ! if (newstate == null) ! error ("Element type '" + qName ! + "' in element '" + state.type.name ! + "' violates content model " + state.type.model ! ); ! if (newstate != state) { ! contentStack.pop (); ! contentStack.push (newstate); ! } ! } ! } ! // ! // Then check that this element was declared, and push the ! // object used to validate its content model onto our stack. ! // ! // This is where the recognizer gets created, if needed; if ! // it's a "children" (elements) content model, an NDFA is ! // created. (One recognizer is used per content type, no ! // matter how complex that recognizer is.) ! // ! ElementInfo info; ! info = (ElementInfo) elements.get (qName); ! if (info == null || info.model == null) { ! // VC: Element Valid (base clause) ! error ("Element type '" + qName + "' was not declared"); ! contentStack.push (null); ! // for less diagnostic noise, fake a declaration. ! elementDecl (qName, "ANY"); ! } else ! contentStack.push (info.getRecognizer (this)); ! // ! // Then check each attribute present ! // ! int len; ! String aname; ! AttributeInfo ainfo; ! if (atts != null) ! len = atts.getLength (); ! else ! len = 0; ! for (int i = 0; i < len; i++) { ! aname = atts.getQName (i); ! if (info == null ! || (ainfo = (AttributeInfo) info.attributes.get (aname)) ! == null) { ! // VC: Attribute Value Type ! error ("Attribute '" + aname ! + "' was not declared for element type " + qName); ! continue; ! } ! String value = atts.getValue (i); ! // note that "==" for type names and "#FIXED" is correct ! // (and fast) since we've interned those literals. ! if ("#FIXED" == ainfo.mode) { ! String expanded = expandDefaultRefs (ainfo.value); ! // VC: Fixed Attribute Default ! if (!value.equals (expanded)) { ! error ("Attribute '" + aname ! + "' must match " + expanded ! ); ! continue; ! } ! } ! if ("CDATA" == ainfo.type) ! continue; ! // ! // For all other attribute types, there are various ! // rules to follow. ! // ! if ("ID" == ainfo.type) { ! // VC: ID (must be a name) ! if (isName (value, "ID attribute", aname)) { ! if (Boolean.TRUE == ids.get (value)) ! // VC: ID (appears once) ! error ("ID attribute " + aname ! + " uses an ID value '" + value ! + "' which was already declared."); ! else ! // any forward refs are no longer problems ! ids.put (value, Boolean.TRUE); ! } ! continue; ! } ! if ("IDREF" == ainfo.type) { ! // VC: IDREF (value must be a name) ! if (isName (value, "IDREF attribute", aname)) { ! // VC: IDREF (must match some ID attribute) ! if (ids.get (value) == null) ! // new -- assume it's a forward ref ! ids.put (value, Boolean.FALSE); ! } ! continue; ! } ! if ("IDREFS" == ainfo.type) { ! StringTokenizer tokens = new StringTokenizer (value, " "); ! if (!tokens.hasMoreTokens ()) { ! // VC: IDREF (one or more values) ! error ("IDREFS attribute " + aname ! + " must have at least one ID ref"); ! } else do { ! String id = tokens.nextToken (); ! // VC: IDREF (value must be a name) ! if (isName (id, "IDREFS attribute", aname)) { ! // VC: IDREF (must match some ID attribute) ! if (ids.get (id) == null) ! // new -- assume it's a forward ref ! ids.put (id, Boolean.FALSE); ! } ! } while (tokens.hasMoreTokens ()); ! continue; ! } ! if ("NMTOKEN" == ainfo.type) { ! // VC: Name Token (is a name token) ! isNmtoken (value, "NMTOKEN attribute", aname); ! continue; ! } ! if ("NMTOKENS" == ainfo.type) { ! StringTokenizer tokens = new StringTokenizer (value, " "); ! if (!tokens.hasMoreTokens ()) { ! // VC: Name Token (one or more values) ! error ("NMTOKENS attribute " + aname ! + " must have at least one name token"); ! } else do { ! String token = tokens.nextToken (); ! // VC: Name Token (is a name token) ! isNmtoken (token, "NMTOKENS attribute", aname); ! } while (tokens.hasMoreTokens ()); ! continue; ! } ! if ("ENTITY" == ainfo.type) { ! if (!unparsed.contains (value)) ! // VC: Entity Name ! error ("Value of attribute '" + aname ! + "' refers to unparsed entity '" + value ! + "' which was not declared."); ! continue; ! } ! if ("ENTITIES" == ainfo.type) { ! StringTokenizer tokens = new StringTokenizer (value, " "); ! if (!tokens.hasMoreTokens ()) { ! // VC: Entity Name (one or more values) ! error ("ENTITIES attribute " + aname ! + " must have at least one name token"); ! } else do { ! String entity = tokens.nextToken (); ! if (!unparsed.contains (entity)) ! // VC: Entity Name ! error ("Value of attribute '" + aname ! + "' refers to unparsed entity '" + entity ! + "' which was not declared."); ! } while (tokens.hasMoreTokens ()); ! continue; ! } ! // ! // check for enumerations last; more expensive ! // ! if (ainfo.type.charAt (0) == '(' /*)*/ ! || ainfo.type.startsWith ("NOTATION ") ! ) { ! // VC: Enumeration (value must be defined) ! checkEnumeration (value, ainfo.type, aname); ! continue; ! } ! } ! // ! // Last, check that all #REQUIRED attributes were provided ! // ! if (info != null) { ! Hashtable table = info.attributes; ! if (table.size () != 0) { ! Enumeration e = table.keys (); ! ! // XXX table.keys uses the heap, bleech -- slows things ! ! while (e.hasMoreElements ()) { ! aname = (String) e.nextElement (); ! ainfo = (AttributeInfo) table.get (aname); ! ! // "#REQUIRED" mode was interned in attributeDecl ! if ("#REQUIRED" == ainfo.mode ! && atts.getValue (aname) == null) { ! // VC: Required Attribute ! error ("Attribute '" + aname + "' must be specified " ! + "for element type " + qName); ! } ! } ! } ! } ! super.startElement (uri, localName, qName, atts); } /** *************** public final class ValidationConsumer ex *** 1198,1222 **** public void characters (char ch [], int start, int length) throws SAXException { ! Recognizer state; ! if (contentStack.empty ()) ! state = null; ! else ! state = (Recognizer) contentStack.peek (); ! // NOTE: if this ever supports with SAX parsers that don't ! // report ignorable whitespace as such (only XP?), this class ! // needs to morph it into ignorableWhitespace() as needed ... ! if (state != null && !state.acceptCharacters ()) ! // VC: Element Valid (clauses three, four -- see recognizer) ! error ("Character content not allowed in element " ! + state.type.name); ! ! super.characters (ch, start, length); } ! /** * ContentHandler Reports a validity error if the element's content --- 1198,1222 ---- public void characters (char ch [], int start, int length) throws SAXException { ! Recognizer state; ! if (contentStack.empty ()) ! state = null; ! else ! state = (Recognizer) contentStack.peek (); ! // NOTE: if this ever supports with SAX parsers that don't ! // report ignorable whitespace as such (only XP?), this class ! // needs to morph it into ignorableWhitespace() as needed ... ! if (state != null && !state.acceptCharacters ()) ! // VC: Element Valid (clauses three, four -- see recognizer) ! error ("Character content not allowed in element " ! + state.type.name); ! ! super.characters (ch, start, length); } ! /** * ContentHandler Reports a validity error if the element's content *************** public final class ValidationConsumer ex *** 1227,1321 **** public void endElement (String uri, String localName, String qName) throws SAXException { ! try { ! Recognizer state = (Recognizer) contentStack.pop (); ! if (state != null && !state.completed ()) ! // VC: Element valid (clauses two, three, four; see Recognizer) ! error ("Premature end for element '" ! + state.type.name ! + "', content model " ! + state.type.model); ! ! // could insist on match of start element, but that's ! // something the input stream must to guarantee. ! } catch (EmptyStackException e) { ! fatalError ("endElement without startElement: " + qName ! + ((uri == null) ! ? "" ! : ( " { '" + uri + "', " + localName + " }"))); ! } ! super.endElement (uri, localName, qName); } /** * ContentHandler Checks whether all ID values that were ! * referenced have been declared, and releases all resources. * Passed to the next consumer. ! * * @see #setDocumentLocator */ public void endDocument () throws SAXException { ! for (Enumeration idNames = ids.keys (); ! idNames.hasMoreElements (); ! /* NOP */) { ! String id = (String) idNames.nextElement (); ! ! if (Boolean.FALSE == ids.get (id)) { ! // VC: IDREF (must match ID) ! error ("Undeclared ID value '" + id ! + "' was referred to by an IDREF/IDREFS attribute"); ! } ! } ! resetState (); ! super.endDocument (); } /** Holds per-element declarations */ static private final class ElementInfo { ! String name; ! String model; ! // key = attribute name; value = AttributeInfo ! Hashtable attributes = new Hashtable (11); ! ElementInfo (String n) { name = n; } ! private Recognizer recognizer; ! // for validating content models: one per type, shared, ! // and constructed only on demand ... so unused elements do ! // not need to consume resources. ! Recognizer getRecognizer (ValidationConsumer consumer) ! throws SAXException ! { ! if (recognizer == null) { ! if ("ANY".equals (model)) ! recognizer = ANY; ! else if ("EMPTY".equals (model)) ! recognizer = new EmptyRecognizer (this); ! else if ('#' == model.charAt (1)) ! // n.b. this constructor does a validity check ! recognizer = new MixedRecognizer (this, consumer); ! else ! recognizer = new ChildrenRecognizer (this, consumer); ! } ! return recognizer; ! } } /** Holds per-attribute declarations */ static private final class AttributeInfo { ! String type; ! String mode; // #REQUIRED, etc (or null) ! String value; // or null } --- 1227,1321 ---- public void endElement (String uri, String localName, String qName) throws SAXException { ! try { ! Recognizer state = (Recognizer) contentStack.pop (); ! if (state != null && !state.completed ()) ! // VC: Element valid (clauses two, three, four; see Recognizer) ! error ("Premature end for element '" ! + state.type.name ! + "', content model " ! + state.type.model); ! // could insist on match of start element, but that's ! // something the input stream must to guarantee. ! ! } catch (EmptyStackException e) { ! fatalError ("endElement without startElement: " + qName ! + ((uri == null) ! ? "" ! : ( " { '" + uri + "', " + localName + " }"))); ! } ! super.endElement (uri, localName, qName); } /** * ContentHandler Checks whether all ID values that were ! * referenced have been declared, and releases all resources. * Passed to the next consumer. ! * * @see #setDocumentLocator */ public void endDocument () throws SAXException { ! for (Enumeration idNames = ids.keys (); ! idNames.hasMoreElements (); ! /* NOP */) { ! String id = (String) idNames.nextElement (); ! if (Boolean.FALSE == ids.get (id)) { ! // VC: IDREF (must match ID) ! error ("Undeclared ID value '" + id ! + "' was referred to by an IDREF/IDREFS attribute"); ! } ! } ! ! resetState (); ! super.endDocument (); } /** Holds per-element declarations */ static private final class ElementInfo { ! String name; ! String model; ! // key = attribute name; value = AttributeInfo ! Hashtable attributes = new Hashtable (11); ! ElementInfo (String n) { name = n; } ! private Recognizer recognizer; ! // for validating content models: one per type, shared, ! // and constructed only on demand ... so unused elements do ! // not need to consume resources. ! Recognizer getRecognizer (ValidationConsumer consumer) ! throws SAXException ! { ! if (recognizer == null) { ! if ("ANY".equals (model)) ! recognizer = ANY; ! else if ("EMPTY".equals (model)) ! recognizer = new EmptyRecognizer (this); ! else if ('#' == model.charAt (1)) ! // n.b. this constructor does a validity check ! recognizer = new MixedRecognizer (this, consumer); ! else ! recognizer = new ChildrenRecognizer (this, consumer); ! } ! return recognizer; ! } } /** Holds per-attribute declarations */ static private final class AttributeInfo { ! String type; ! String mode; // #REQUIRED, etc (or null) ! String value; // or null } *************** public final class ValidationConsumer ex *** 1323,1442 **** // Content model validation // ! static private final Recognizer ANY = new Recognizer (null); // Base class defines the calls used to validate content, // and supports the "ANY" content model static private class Recognizer { ! final ElementInfo type; ! Recognizer (ElementInfo t) { type = t; } ! // return true iff character data is legal here ! boolean acceptCharacters () ! throws SAXException ! // VC: Element Valid (third and fourth clauses) ! { return true; } ! // null return = failure ! // otherwise, next state (like an FSM) ! // prerequisite: tested that name was declared ! Recognizer acceptElement (String name) ! throws SAXException ! // VC: Element Valid (fourth clause) ! { return this; } ! // return true iff model is completed, can finish ! boolean completed () ! throws SAXException ! // VC: Element Valid (fourth clause) ! { return true; } ! ! public String toString () ! // n.b. "children" is the interesting case! ! { return (type == null) ? "ANY" : type.model; } } // "EMPTY" content model -- no characters or elements private static final class EmptyRecognizer extends Recognizer { ! public EmptyRecognizer (ElementInfo type) ! { super (type); } ! // VC: Element Valid (first clause) ! boolean acceptCharacters () ! { return false; } ! // VC: Element Valid (first clause) ! Recognizer acceptElement (String name) ! { return null; } } // "Mixed" content model -- ANY, but restricts elements private static final class MixedRecognizer extends Recognizer { ! private String permitted []; ! // N.B. constructor tests for duplicated element names (VC) ! public MixedRecognizer (ElementInfo t, ValidationConsumer v) ! throws SAXException ! { ! super (t); ! // (#PCDATA...)* or (#PCDATA) ==> ... or empty ! // with the "..." being "|elname|..." ! StringTokenizer tokens = new StringTokenizer ( ! t.model.substring (8, t.model.lastIndexOf (')')), ! "|"); ! Vector vec = new Vector (); ! while (tokens.hasMoreTokens ()) { ! String token = tokens.nextToken (); ! if (vec.contains (token)) ! v.error ("element " + token ! + " is repeated in mixed content model: " ! + t.model); ! else ! vec.addElement (token.intern ()); ! } ! permitted = new String [vec.size ()]; ! for (int i = 0; i < permitted.length; i++) ! permitted [i] = (String) vec.elementAt (i); ! ! // in one large machine-derived DTD sample, most of about ! // 250 mixed content models were empty, and 25 had ten or ! // more entries. 2 had over a hundred elements. Linear ! // search isn't obviously wrong. ! } ! // VC: Element Valid (third clause) ! Recognizer acceptElement (String name) ! { ! int length = permitted.length; ! // first pass -- optimistic w.r.t. event source interning ! // (and document validity) ! for (int i = 0; i < length; i++) ! if (permitted [i] == name) ! return this; ! // second pass -- pessimistic w.r.t. event source interning ! for (int i = 0; i < length; i++) ! if (permitted [i].equals (name)) ! return this; ! return null; ! } } // recognizer loop flags, see later ! private static final int F_LOOPHEAD = 0x01; ! private static final int F_LOOPNEXT = 0x02; // for debugging -- used to label/count nodes in toString() ! private static int nodeCount; /** * "Children" content model -- these are nodes in NDFA state graphs. --- 1323,1442 ---- // Content model validation // ! static private final Recognizer ANY = new Recognizer (null); // Base class defines the calls used to validate content, // and supports the "ANY" content model static private class Recognizer { ! final ElementInfo type; ! Recognizer (ElementInfo t) { type = t; } ! // return true iff character data is legal here ! boolean acceptCharacters () ! throws SAXException ! // VC: Element Valid (third and fourth clauses) ! { return true; } ! // null return = failure ! // otherwise, next state (like an FSM) ! // prerequisite: tested that name was declared ! Recognizer acceptElement (String name) ! throws SAXException ! // VC: Element Valid (fourth clause) ! { return this; } ! // return true iff model is completed, can finish ! boolean completed () ! throws SAXException ! // VC: Element Valid (fourth clause) ! { return true; } ! ! public String toString () ! // n.b. "children" is the interesting case! ! { return (type == null) ? "ANY" : type.model; } } // "EMPTY" content model -- no characters or elements private static final class EmptyRecognizer extends Recognizer { ! public EmptyRecognizer (ElementInfo type) ! { super (type); } ! // VC: Element Valid (first clause) ! boolean acceptCharacters () ! { return false; } ! // VC: Element Valid (first clause) ! Recognizer acceptElement (String name) ! { return null; } } // "Mixed" content model -- ANY, but restricts elements private static final class MixedRecognizer extends Recognizer { ! private String permitted []; ! // N.B. constructor tests for duplicated element names (VC) ! public MixedRecognizer (ElementInfo t, ValidationConsumer v) ! throws SAXException ! { ! super (t); ! // (#PCDATA...)* or (#PCDATA) ==> ... or empty ! // with the "..." being "|elname|..." ! StringTokenizer tokens = new StringTokenizer ( ! t.model.substring (8, t.model.lastIndexOf (')')), ! "|"); ! Vector vec = new Vector (); ! while (tokens.hasMoreTokens ()) { ! String token = tokens.nextToken (); ! if (vec.contains (token)) ! v.error ("element " + token ! + " is repeated in mixed content model: " ! + t.model); ! else ! vec.addElement (token.intern ()); ! } ! permitted = new String [vec.size ()]; ! for (int i = 0; i < permitted.length; i++) ! permitted [i] = (String) vec.elementAt (i); ! // in one large machine-derived DTD sample, most of about ! // 250 mixed content models were empty, and 25 had ten or ! // more entries. 2 had over a hundred elements. Linear ! // search isn't obviously wrong. ! } ! // VC: Element Valid (third clause) ! Recognizer acceptElement (String name) ! { ! int length = permitted.length; ! ! // first pass -- optimistic w.r.t. event source interning ! // (and document validity) ! for (int i = 0; i < length; i++) ! if (permitted [i] == name) ! return this; ! // second pass -- pessimistic w.r.t. event source interning ! for (int i = 0; i < length; i++) ! if (permitted [i].equals (name)) ! return this; ! return null; ! } } // recognizer loop flags, see later ! private static final int F_LOOPHEAD = 0x01; ! private static final int F_LOOPNEXT = 0x02; // for debugging -- used to label/count nodes in toString() ! private static int nodeCount; /** * "Children" content model -- these are nodes in NDFA state graphs. *************** public final class ValidationConsumer ex *** 1463,1928 **** * graph to have one exit node (or more EMPTY nodes). */ private static final class ChildrenRecognizer extends Recognizer ! implements Cloneable { ! // for reporting non-deterministic content models ! // ... a waste of space if we're not reporting those! ! // ... along with the 'model' member (in base class) ! private ValidationConsumer consumer; ! // for CHOICE nodes -- each component is an arc that ! // accepts a different NAME (or is EMPTY indicating ! // NDFA termination). ! private Recognizer components []; ! // for NAME/SEQUENCE nodes -- accepts that NAME and ! // then goes to the next node (CHOICE, NAME, EMPTY). ! private String name; ! private Recognizer next; ! // loops always point back to a CHOICE node. we mark such choice ! // nodes (F_LOOPHEAD) for diagnostics and faster deep cloning. ! // We also mark nodes before back pointers (F_LOOPNEXT), to ensure ! // termination when we patch sequences and loops. ! private int flags; ! // prevent a needless indirection between 'this' and 'node' ! private void copyIn (ChildrenRecognizer node) ! { ! // model & consumer are already set ! components = node.components; ! name = node.name; ! next = node.next; ! flags = node.flags; ! } ! // used to construct top level "children" content models, ! public ChildrenRecognizer (ElementInfo type, ValidationConsumer vc) ! { ! this (vc, type); ! populate (type.model.toCharArray (), 0); ! patchNext (new EmptyRecognizer (type), null); ! } ! // used internally; populating is separate ! private ChildrenRecognizer (ValidationConsumer vc, ElementInfo type) ! { ! super (type); ! consumer = vc; ! } ! // ! // When rewriting some graph nodes we need deep clones in one case; ! // mostly shallow clones (what the JVM handles for us) are fine. ! // ! private ChildrenRecognizer shallowClone () ! { ! try { ! return (ChildrenRecognizer) clone (); ! } catch (CloneNotSupportedException e) { ! throw new Error ("clone"); ! } ! } ! private ChildrenRecognizer deepClone () ! { ! return deepClone (new Hashtable (37)); ! } ! private ChildrenRecognizer deepClone (Hashtable table) ! { ! ChildrenRecognizer retval; ! if ((flags & F_LOOPHEAD) != 0) { ! retval = (ChildrenRecognizer) table.get (this); ! if (retval != null) ! return this; ! retval = shallowClone (); ! table.put (this, retval); ! } else ! retval = shallowClone (); ! if (next != null) { ! if (next instanceof ChildrenRecognizer) ! retval.next = ((ChildrenRecognizer)next) ! .deepClone (table); ! else if (!(next instanceof EmptyRecognizer)) ! throw new RuntimeException ("deepClone"); ! } ! if (components != null) { ! retval.components = new Recognizer [components.length]; ! for (int i = 0; i < components.length; i++) { ! Recognizer temp = components [i]; ! if (temp == null) ! retval.components [i] = null; ! else if (temp instanceof ChildrenRecognizer) ! retval.components [i] = ((ChildrenRecognizer)temp) ! .deepClone (table); ! else if (!(temp instanceof EmptyRecognizer)) ! throw new RuntimeException ("deepClone"); ! } ! } ! return retval; ! } ! // connect subgraphs, first to next (sequencing) ! private void patchNext (Recognizer theNext, Hashtable table) ! { ! // backpointers must not be repatched or followed ! if ((flags & F_LOOPNEXT) != 0) ! return; ! // XXX this table "shouldn't" be needed, right? ! // but some choice nodes looped if it isn't there. ! if (table != null && table.get (this) != null) ! return; ! if (table == null) ! table = new Hashtable (); ! // NAME/SEQUENCE ! if (name != null) { ! if (next == null) ! next = theNext; ! else if (next instanceof ChildrenRecognizer) { ! ((ChildrenRecognizer)next).patchNext (theNext, table); ! } else if (!(next instanceof EmptyRecognizer)) ! throw new RuntimeException ("patchNext"); ! return; ! } ! // CHOICE ! for (int i = 0; i < components.length; i++) { ! if (components [i] == null) ! components [i] = theNext; ! else if (components [i] instanceof ChildrenRecognizer) { ! ((ChildrenRecognizer)components [i]) ! .patchNext (theNext, table); ! } else if (!(components [i] instanceof EmptyRecognizer)) ! throw new RuntimeException ("patchNext"); ! } ! if (table != null && (flags & F_LOOPHEAD) != 0) ! table.put (this, this); ! } ! /** ! * Parses a 'children' spec (or recursively 'cp') and makes this ! * become a regular graph node. ! * ! * @return index after this particle ! */ ! private int populate (char parseBuf [], int startPos) ! { ! int nextPos = startPos + 1; ! char c; ! if (nextPos < 0 || nextPos >= parseBuf.length) ! throw new IndexOutOfBoundsException (); ! // Grammar of the string is from the XML spec, but ! // with whitespace removed by the SAX parser. ! // children ::= (choice | seq) ('?' | '*' | '+')? ! // cp ::= (Name | choice | seq) ('?' | '*' | '+')? ! // choice ::= '(' cp ('|' choice)* ')' ! // seq ::= '(' cp (',' choice)* ')' ! // interior nodes only ! // cp ::= name ... ! if (parseBuf [startPos] != '('/*)*/) { ! boolean done = false; ! do { ! switch (c = parseBuf [nextPos]) { ! case '?': case '*': case '+': ! case '|': case ',': ! case /*(*/ ')': ! done = true; ! continue; ! default: ! nextPos++; ! continue; ! } ! } while (!done); ! name = new String (parseBuf, startPos, nextPos - startPos); ! // interior OR toplevel nodes ! // cp ::= choice .. ! // cp ::= seq .. ! } else { ! // collect everything as a separate list, and merge it ! // into "this" later if we can (SEQUENCE or singleton) ! ChildrenRecognizer first; ! ! first = new ChildrenRecognizer (consumer, type); ! nextPos = first.populate (parseBuf, nextPos); ! c = parseBuf [nextPos++]; ! if (c == ',' || c == '|') { ! ChildrenRecognizer current = first; ! char separator = c; ! Vector v = null; ! if (separator == '|') { ! v = new Vector (); ! v.addElement (first); ! } ! do { ! ChildrenRecognizer link; ! link = new ChildrenRecognizer (consumer, type); ! nextPos = link.populate (parseBuf, nextPos); ! if (separator == ',') { ! current.patchNext (link, null); ! current = link; ! } else ! v.addElement (link); ! c = parseBuf [nextPos++]; ! } while (c == separator); ! // choice ... collect everything into one array. ! if (separator == '|') { ! // assert v.size() > 1 ! components = new Recognizer [v.size ()]; ! for (int i = 0; i < components.length; i++) { ! components [i] = (Recognizer) ! v.elementAt (i); ! } ! // assert flags == 0 ! // sequence ... merge into "this" to be smaller. ! } else ! copyIn (first); ! // treat singletons like one-node sequences. ! } else ! copyIn (first); ! if (c != /*(*/ ')') ! throw new RuntimeException ("corrupt content model"); ! } ! // ! // Arity is optional, and the root of all fun. We keep the ! // FSM state graph simple by only having NAME/SEQUENCE and ! // CHOICE nodes (or EMPTY to terminate a model), easily ! // evaluated. So we rewrite each node that has arity, using ! // those primitives. We create loops here, if needed. ! // ! if (nextPos < parseBuf.length) { ! c = parseBuf [nextPos]; ! if (c == '?' || c == '*' || c == '+') { ! nextPos++; ! // Rewrite 'zero-or-one' "?" arity to a CHOICE: ! // - SEQUENCE (clone, what's next) ! // - or, what's next ! // Size cost: N --> N + 1 ! if (c == '?') { ! Recognizer once = shallowClone (); ! components = new Recognizer [2]; ! components [0] = once; ! // components [1] initted to null ! name = null; ! next = null; ! flags = 0; ! ! // Rewrite 'zero-or-more' "*" arity to a CHOICE. ! // - LOOP (clone, back to this CHOICE) ! // - or, what's next ! // Size cost: N --> N + 1 ! } else if (c == '*') { ! ChildrenRecognizer loop = shallowClone (); - loop.patchNext (this, null); - loop.flags |= F_LOOPNEXT; - flags = F_LOOPHEAD; ! components = new Recognizer [2]; ! components [0] = loop; ! // components [1] initted to null ! name = null; ! next = null; ! // Rewrite 'one-or-more' "+" arity to a SEQUENCE. ! // Basically (a)+ --> ((a),(a)*). ! // - this ! // - CHOICE ! // * LOOP (clone, back to the CHOICE) ! // * or, whatever's next ! // Size cost: N --> 2N + 1 ! } else if (c == '+') { ! ChildrenRecognizer loop = deepClone (); ! ChildrenRecognizer choice; - choice = new ChildrenRecognizer (consumer, type); - loop.patchNext (choice, null); - loop.flags |= F_LOOPNEXT; - choice.flags = F_LOOPHEAD; ! choice.components = new Recognizer [2]; ! choice.components [0] = loop; ! // choice.components [1] initted to null ! // choice.name, choice.next initted to null ! patchNext (choice, null); ! } ! } ! } ! return nextPos; ! } ! // VC: Element Valid (second clause) ! boolean acceptCharacters () ! { return false; } ! // VC: Element Valid (second clause) ! Recognizer acceptElement (String type) ! throws SAXException ! { ! // NAME/SEQUENCE ! if (name != null) { ! if (name.equals (type)) ! return next; ! return null; ! } ! // CHOICE ... optionally reporting nondeterminism we ! // run across. we won't check out every transition ! // for nondeterminism; only the ones we follow. ! Recognizer retval = null; ! for (int i = 0; i < components.length; i++) { ! Recognizer temp = components [i].acceptElement (type); ! if (temp == null) ! continue; ! else if (!warnNonDeterministic) ! return temp; ! else if (retval == null) ! retval = temp; ! else if (retval != temp) ! consumer.error ("Content model " + this.type.model ! + " is non-deterministic for " + type); ! } ! return retval; ! } ! // VC: Element Valid (second clause) ! boolean completed () ! throws SAXException ! { ! // expecting a specific element ! if (name != null) ! return false; ! ! // choice, some sequences ! for (int i = 0; i < components.length; i++) { ! if (components [i].completed ()) ! return true; ! } ! return false; ! } /** / ! // FOR DEBUGGING ... flattens the graph for printing. ! public String toString () ! { ! StringBuffer buf = new StringBuffer (); ! // only one set of loop labels can be generated ! // at a time... ! synchronized (ANY) { ! nodeCount = 0; ! toString (buf, new Hashtable ()); ! return buf.toString (); ! } ! } ! private void toString (StringBuffer buf, Hashtable table) ! { ! // When we visit a node, label and count it. ! // Nodes are never visited/counted more than once. ! // For small models labels waste space, but if arity ! // mappings were used the savings are substantial. ! // (Plus, the output can be more readily understood.) ! String temp = (String) table.get (this); ! if (temp != null) { ! buf.append ('{'); ! buf.append (temp); ! buf.append ('}'); ! return; ! } else { ! StringBuffer scratch = new StringBuffer (15); ! if ((flags & F_LOOPHEAD) != 0) ! scratch.append ("loop"); ! else ! scratch.append ("node"); ! scratch.append ('-'); ! scratch.append (++nodeCount); ! temp = scratch.toString (); ! table.put (this, temp); ! buf.append ('['); ! buf.append (temp); ! buf.append (']'); ! buf.append (':'); ! } ! // NAME/SEQUENCE ! if (name != null) { ! // n.b. some output encodings turn some name chars into '?' ! // e.g. with Japanese names and ASCII output ! buf.append (name); ! if (components != null) // bug! ! buf.append ('$'); ! if (next == null) ! buf.append (",*"); ! else if (next instanceof EmptyRecognizer) // patch-to-next ! buf.append (",{}"); ! else if (next instanceof ChildrenRecognizer) { ! buf.append (','); ! ((ChildrenRecognizer)next).toString (buf, table); ! } else // bug! ! buf.append (",+"); ! return; ! } ! // CHOICE ! buf.append ("<"); ! for (int i = 0; i < components.length; i++) { ! if (i != 0) ! buf.append ("|"); ! if (components [i] instanceof EmptyRecognizer) { ! buf.append ("{}"); ! } else if (components [i] == null) { // patch-to-next ! buf.append ('*'); ! } else { ! ChildrenRecognizer r; ! r = (ChildrenRecognizer) components [i]; ! r.toString (buf, table); ! } ! } ! buf.append (">"); ! } /**/ } } --- 1463,1928 ---- * graph to have one exit node (or more EMPTY nodes). */ private static final class ChildrenRecognizer extends Recognizer ! implements Cloneable { ! // for reporting non-deterministic content models ! // ... a waste of space if we're not reporting those! ! // ... along with the 'model' member (in base class) ! private ValidationConsumer consumer; ! // for CHOICE nodes -- each component is an arc that ! // accepts a different NAME (or is EMPTY indicating ! // NDFA termination). ! private Recognizer components []; ! // for NAME/SEQUENCE nodes -- accepts that NAME and ! // then goes to the next node (CHOICE, NAME, EMPTY). ! private String name; ! private Recognizer next; ! // loops always point back to a CHOICE node. we mark such choice ! // nodes (F_LOOPHEAD) for diagnostics and faster deep cloning. ! // We also mark nodes before back pointers (F_LOOPNEXT), to ensure ! // termination when we patch sequences and loops. ! private int flags; ! // prevent a needless indirection between 'this' and 'node' ! private void copyIn (ChildrenRecognizer node) ! { ! // model & consumer are already set ! components = node.components; ! name = node.name; ! next = node.next; ! flags = node.flags; ! } ! // used to construct top level "children" content models, ! public ChildrenRecognizer (ElementInfo type, ValidationConsumer vc) ! { ! this (vc, type); ! populate (type.model.toCharArray (), 0); ! patchNext (new EmptyRecognizer (type), null); ! } ! // used internally; populating is separate ! private ChildrenRecognizer (ValidationConsumer vc, ElementInfo type) ! { ! super (type); ! consumer = vc; ! } ! // ! // When rewriting some graph nodes we need deep clones in one case; ! // mostly shallow clones (what the JVM handles for us) are fine. ! // ! private ChildrenRecognizer shallowClone () ! { ! try { ! return (ChildrenRecognizer) clone (); ! } catch (CloneNotSupportedException e) { ! throw new Error ("clone"); ! } ! } ! private ChildrenRecognizer deepClone () ! { ! return deepClone (new Hashtable (37)); ! } ! private ChildrenRecognizer deepClone (Hashtable table) ! { ! ChildrenRecognizer retval; ! if ((flags & F_LOOPHEAD) != 0) { ! retval = (ChildrenRecognizer) table.get (this); ! if (retval != null) ! return this; ! retval = shallowClone (); ! table.put (this, retval); ! } else ! retval = shallowClone (); ! if (next != null) { ! if (next instanceof ChildrenRecognizer) ! retval.next = ((ChildrenRecognizer)next) ! .deepClone (table); ! else if (!(next instanceof EmptyRecognizer)) ! throw new RuntimeException ("deepClone"); ! } ! if (components != null) { ! retval.components = new Recognizer [components.length]; ! for (int i = 0; i < components.length; i++) { ! Recognizer temp = components [i]; ! if (temp == null) ! retval.components [i] = null; ! else if (temp instanceof ChildrenRecognizer) ! retval.components [i] = ((ChildrenRecognizer)temp) ! .deepClone (table); ! else if (!(temp instanceof EmptyRecognizer)) ! throw new RuntimeException ("deepClone"); ! } ! } ! return retval; ! } ! // connect subgraphs, first to next (sequencing) ! private void patchNext (Recognizer theNext, Hashtable table) ! { ! // backpointers must not be repatched or followed ! if ((flags & F_LOOPNEXT) != 0) ! return; ! // XXX this table "shouldn't" be needed, right? ! // but some choice nodes looped if it isn't there. ! if (table != null && table.get (this) != null) ! return; ! if (table == null) ! table = new Hashtable (); ! // NAME/SEQUENCE ! if (name != null) { ! if (next == null) ! next = theNext; ! else if (next instanceof ChildrenRecognizer) { ! ((ChildrenRecognizer)next).patchNext (theNext, table); ! } else if (!(next instanceof EmptyRecognizer)) ! throw new RuntimeException ("patchNext"); ! return; ! } ! // CHOICE ! for (int i = 0; i < components.length; i++) { ! if (components [i] == null) ! components [i] = theNext; ! else if (components [i] instanceof ChildrenRecognizer) { ! ((ChildrenRecognizer)components [i]) ! .patchNext (theNext, table); ! } else if (!(components [i] instanceof EmptyRecognizer)) ! throw new RuntimeException ("patchNext"); ! } ! if (table != null && (flags & F_LOOPHEAD) != 0) ! table.put (this, this); ! } ! /** ! * Parses a 'children' spec (or recursively 'cp') and makes this ! * become a regular graph node. ! * ! * @return index after this particle ! */ ! private int populate (char parseBuf [], int startPos) ! { ! int nextPos = startPos + 1; ! char c; ! if (nextPos < 0 || nextPos >= parseBuf.length) ! throw new IndexOutOfBoundsException (); ! // Grammar of the string is from the XML spec, but ! // with whitespace removed by the SAX parser. ! // children ::= (choice | seq) ('?' | '*' | '+')? ! // cp ::= (Name | choice | seq) ('?' | '*' | '+')? ! // choice ::= '(' cp ('|' choice)* ')' ! // seq ::= '(' cp (',' choice)* ')' ! // interior nodes only ! // cp ::= name ... ! if (parseBuf [startPos] != '('/*)*/) { ! boolean done = false; ! do { ! switch (c = parseBuf [nextPos]) { ! case '?': case '*': case '+': ! case '|': case ',': ! case /*(*/ ')': ! done = true; ! continue; ! default: ! nextPos++; ! continue; ! } ! } while (!done); ! name = new String (parseBuf, startPos, nextPos - startPos); ! // interior OR toplevel nodes ! // cp ::= choice .. ! // cp ::= seq .. ! } else { ! // collect everything as a separate list, and merge it ! // into "this" later if we can (SEQUENCE or singleton) ! ChildrenRecognizer first; ! first = new ChildrenRecognizer (consumer, type); ! nextPos = first.populate (parseBuf, nextPos); ! c = parseBuf [nextPos++]; ! if (c == ',' || c == '|') { ! ChildrenRecognizer current = first; ! char separator = c; ! Vector v = null; ! if (separator == '|') { ! v = new Vector (); ! v.addElement (first); ! } ! do { ! ChildrenRecognizer link; ! link = new ChildrenRecognizer (consumer, type); ! nextPos = link.populate (parseBuf, nextPos); ! if (separator == ',') { ! current.patchNext (link, null); ! current = link; ! } else ! v.addElement (link); ! c = parseBuf [nextPos++]; ! } while (c == separator); ! // choice ... collect everything into one array. ! if (separator == '|') { ! // assert v.size() > 1 ! components = new Recognizer [v.size ()]; ! for (int i = 0; i < components.length; i++) { ! components [i] = (Recognizer) ! v.elementAt (i); ! } ! // assert flags == 0 ! // sequence ... merge into "this" to be smaller. ! } else ! copyIn (first); ! // treat singletons like one-node sequences. ! } else ! copyIn (first); ! if (c != /*(*/ ')') ! throw new RuntimeException ("corrupt content model"); ! } ! // ! // Arity is optional, and the root of all fun. We keep the ! // FSM state graph simple by only having NAME/SEQUENCE and ! // CHOICE nodes (or EMPTY to terminate a model), easily ! // evaluated. So we rewrite each node that has arity, using ! // those primitives. We create loops here, if needed. ! // ! if (nextPos < parseBuf.length) { ! c = parseBuf [nextPos]; ! if (c == '?' || c == '*' || c == '+') { ! nextPos++; ! // Rewrite 'zero-or-one' "?" arity to a CHOICE: ! // - SEQUENCE (clone, what's next) ! // - or, what's next ! // Size cost: N --> N + 1 ! if (c == '?') { ! Recognizer once = shallowClone (); ! components = new Recognizer [2]; ! components [0] = once; ! // components [1] initted to null ! name = null; ! next = null; ! flags = 0; ! // Rewrite 'zero-or-more' "*" arity to a CHOICE. ! // - LOOP (clone, back to this CHOICE) ! // - or, what's next ! // Size cost: N --> N + 1 ! } else if (c == '*') { ! ChildrenRecognizer loop = shallowClone (); + loop.patchNext (this, null); + loop.flags |= F_LOOPNEXT; + flags = F_LOOPHEAD; ! components = new Recognizer [2]; ! components [0] = loop; ! // components [1] initted to null ! name = null; ! next = null; ! // Rewrite 'one-or-more' "+" arity to a SEQUENCE. ! // Basically (a)+ --> ((a),(a)*). ! // - this ! // - CHOICE ! // * LOOP (clone, back to the CHOICE) ! // * or, whatever's next ! // Size cost: N --> 2N + 1 ! } else if (c == '+') { ! ChildrenRecognizer loop = deepClone (); ! ChildrenRecognizer choice; ! choice = new ChildrenRecognizer (consumer, type); ! loop.patchNext (choice, null); ! loop.flags |= F_LOOPNEXT; ! choice.flags = F_LOOPHEAD; ! choice.components = new Recognizer [2]; ! choice.components [0] = loop; ! // choice.components [1] initted to null ! // choice.name, choice.next initted to null ! patchNext (choice, null); ! } ! } ! } ! return nextPos; ! } ! // VC: Element Valid (second clause) ! boolean acceptCharacters () ! { return false; } ! // VC: Element Valid (second clause) ! Recognizer acceptElement (String type) ! throws SAXException ! { ! // NAME/SEQUENCE ! if (name != null) { ! if (name.equals (type)) ! return next; ! return null; ! } ! // CHOICE ... optionally reporting nondeterminism we ! // run across. we won't check out every transition ! // for nondeterminism; only the ones we follow. ! Recognizer retval = null; ! for (int i = 0; i < components.length; i++) { ! Recognizer temp = components [i].acceptElement (type); ! if (temp == null) ! continue; ! else if (!warnNonDeterministic) ! return temp; ! else if (retval == null) ! retval = temp; ! else if (retval != temp) ! consumer.error ("Content model " + this.type.model ! + " is non-deterministic for " + type); ! } ! return retval; ! } ! ! // VC: Element Valid (second clause) ! boolean completed () ! throws SAXException ! { ! // expecting a specific element ! if (name != null) ! return false; ! ! // choice, some sequences ! for (int i = 0; i < components.length; i++) { ! if (components [i].completed ()) ! return true; ! } ! ! return false; ! } /** / ! // FOR DEBUGGING ... flattens the graph for printing. ! public String toString () ! { ! StringBuffer buf = new StringBuffer (); ! // only one set of loop labels can be generated ! // at a time... ! synchronized (ANY) { ! nodeCount = 0; ! toString (buf, new Hashtable ()); ! return buf.toString (); ! } ! } ! private void toString (StringBuffer buf, Hashtable table) ! { ! // When we visit a node, label and count it. ! // Nodes are never visited/counted more than once. ! // For small models labels waste space, but if arity ! // mappings were used the savings are substantial. ! // (Plus, the output can be more readily understood.) ! String temp = (String) table.get (this); ! if (temp != null) { ! buf.append ('{'); ! buf.append (temp); ! buf.append ('}'); ! return; ! } else { ! StringBuffer scratch = new StringBuffer (15); ! if ((flags & F_LOOPHEAD) != 0) ! scratch.append ("loop"); ! else ! scratch.append ("node"); ! scratch.append ('-'); ! scratch.append (++nodeCount); ! temp = scratch.toString (); ! table.put (this, temp); ! buf.append ('['); ! buf.append (temp); ! buf.append (']'); ! buf.append (':'); ! } ! // NAME/SEQUENCE ! if (name != null) { ! // n.b. some output encodings turn some name chars into '?' ! // e.g. with Japanese names and ASCII output ! buf.append (name); ! if (components != null) // bug! ! buf.append ('$'); ! if (next == null) ! buf.append (",*"); ! else if (next instanceof EmptyRecognizer) // patch-to-next ! buf.append (",{}"); ! else if (next instanceof ChildrenRecognizer) { ! buf.append (','); ! ((ChildrenRecognizer)next).toString (buf, table); ! } else // bug! ! buf.append (",+"); ! return; ! } ! // CHOICE ! buf.append ("<"); ! for (int i = 0; i < components.length; i++) { ! if (i != 0) ! buf.append ("|"); ! if (components [i] instanceof EmptyRecognizer) { ! buf.append ("{}"); ! } else if (components [i] == null) { // patch-to-next ! buf.append ('*'); ! } else { ! ChildrenRecognizer r; ! r = (ChildrenRecognizer) components [i]; ! r.toString (buf, table); ! } ! } ! buf.append (">"); ! } /**/ } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/WellFormednessFilter.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/WellFormednessFilter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/WellFormednessFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/WellFormednessFilter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WellFormednessFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* WellFormednessFilter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.SAXParseException; *** 50,76 **** * This filter reports fatal exceptions in the case of event streams that * are not well formed. The rules currently tested include:

              * ! *
            • setDocumentLocator ... may be called only before startDocument * ! *
            • startDocument/endDocument ... must be paired, and all other ! * calls (except setDocumentLocator) must be nested within these. * ! *
            • startElement/endElement ... must be correctly paired, and ! * may never appear within CDATA sections. * ! *
            • comment ... can't contain "--" * ! *
            • character data ... can't contain "]]>" * ! *
            • whitespace ... can't contain CR * ! *
            • whitespace and character data must be within an element * ! *
            • processing instruction ... can't contain "?>" or CR * ! *
            • startCDATA/endCDATA ... must be correctly paired. * ! *
            * *

            Other checks for event stream correctness may be provided in * the future. For example, insisting that --- 50,76 ---- * This filter reports fatal exceptions in the case of event streams that * are not well formed. The rules currently tested include:

              * ! *
            • setDocumentLocator ... may be called only before startDocument * ! *
            • startDocument/endDocument ... must be paired, and all other ! * calls (except setDocumentLocator) must be nested within these. * ! *
            • startElement/endElement ... must be correctly paired, and ! * may never appear within CDATA sections. * ! *
            • comment ... can't contain "--" * ! *
            • character data ... can't contain "]]>" * ! *
            • whitespace ... can't contain CR * ! *
            • whitespace and character data must be within an element * ! *
            • processing instruction ... can't contain "?>" or CR * ! *
            • startCDATA/endCDATA ... must be correctly paired. * ! *
            * *

            Other checks for event stream correctness may be provided in * the future. For example, insisting that *************** import org.xml.sax.SAXParseException; *** 84,118 **** */ public final class WellFormednessFilter extends EventFilter { ! private boolean startedDoc; ! private Stack elementStack = new Stack (); ! private boolean startedCDATA; ! private String dtdState = "before"; - /** * Swallows all events after performing well formedness checks. */ ! // constructor used by PipelineFactory public WellFormednessFilter () ! { this (null); } /** * Passes events through to the specified consumer, after first * processing them. */ ! // constructor used by PipelineFactory public WellFormednessFilter (EventConsumer consumer) { ! super (consumer); ! setContentHandler (this); ! setDTDHandler (this); ! ! try { ! setProperty (LEXICAL_HANDLER, this); ! } catch (SAXException e) { /* can't happen */ } } /** --- 84,118 ---- */ public final class WellFormednessFilter extends EventFilter { ! private boolean startedDoc; ! private Stack elementStack = new Stack (); ! private boolean startedCDATA; ! private String dtdState = "before"; ! /** * Swallows all events after performing well formedness checks. */ ! // constructor used by PipelineFactory public WellFormednessFilter () ! { this (null); } /** * Passes events through to the specified consumer, after first * processing them. */ ! // constructor used by PipelineFactory public WellFormednessFilter (EventConsumer consumer) { ! super (consumer); ! setContentHandler (this); ! setDTDHandler (this); ! ! try { ! setProperty (LEXICAL_HANDLER, this); ! } catch (SAXException e) { /* can't happen */ } } /** *************** public final class WellFormednessFilter *** 122,244 **** */ public void reset () { ! startedDoc = false; ! startedCDATA = false; ! elementStack.removeAllElements (); } private SAXParseException getException (String message) { ! SAXParseException e; ! Locator locator = getDocumentLocator (); ! if (locator == null) ! return new SAXParseException (message, null, null, -1, -1); ! else ! return new SAXParseException (message, locator); } private void fatalError (String message) throws SAXException { ! SAXParseException e = getException (message); ! ErrorHandler handler = getErrorHandler (); ! if (handler != null) ! handler.fatalError (e); ! throw e; } /** * Throws an exception when called after startDocument. * * @param locator the locator, to be used in error reporting or relative ! * URI resolution. * * @exception IllegalStateException when called after the document ! * has already been started */ public void setDocumentLocator (Locator locator) { ! if (startedDoc) ! throw new IllegalStateException ( ! "setDocumentLocator called after startDocument"); ! super.setDocumentLocator (locator); } public void startDocument () throws SAXException { ! if (startedDoc) ! fatalError ("startDocument called more than once"); ! startedDoc = true; ! startedCDATA = false; ! elementStack.removeAllElements (); ! super.startDocument (); } public void startElement ( ! String uri, String localName, ! String qName, Attributes atts ) throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if ("inside".equals (dtdState)) ! fatalError ("element inside DTD?"); ! else ! dtdState = "after"; ! if (startedCDATA) ! fatalError ("element inside CDATA section"); ! if (qName == null || "".equals (qName)) ! fatalError ("startElement name missing"); ! elementStack.push (qName); ! super.startElement (uri, localName, qName, atts); } public void endElement (String uri, String localName, String qName) throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if (startedCDATA) ! fatalError ("element inside CDATA section"); ! if (qName == null || "".equals (qName)) ! fatalError ("endElement name missing"); ! ! try { ! String top = (String) elementStack.pop (); ! if (!qName.equals (top)) ! fatalError ("<" + top + " ...>..."); ! // XXX could record/test namespace info ! } catch (EmptyStackException e) { ! fatalError ("endElement without startElement: "); ! } ! super.endElement (uri, localName, qName); } public void endDocument () throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! dtdState = "before"; ! startedDoc = false; ! super.endDocument (); } public void startDTD (String root, String publicId, String systemId) throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); if ("before" != dtdState) ! fatalError ("two DTDs?"); ! if (!elementStack.empty ()) ! fatalError ("DTD must precede root element"); ! dtdState = "inside"; ! super.startDTD (root, publicId, systemId); } public void notationDecl (String name, String publicId, String systemId) --- 122,244 ---- */ public void reset () { ! startedDoc = false; ! startedCDATA = false; ! elementStack.removeAllElements (); } private SAXParseException getException (String message) { ! SAXParseException e; ! Locator locator = getDocumentLocator (); ! if (locator == null) ! return new SAXParseException (message, null, null, -1, -1); ! else ! return new SAXParseException (message, locator); } private void fatalError (String message) throws SAXException { ! SAXParseException e = getException (message); ! ErrorHandler handler = getErrorHandler (); ! if (handler != null) ! handler.fatalError (e); ! throw e; } /** * Throws an exception when called after startDocument. * * @param locator the locator, to be used in error reporting or relative ! * URI resolution. * * @exception IllegalStateException when called after the document ! * has already been started */ public void setDocumentLocator (Locator locator) { ! if (startedDoc) ! throw new IllegalStateException ( ! "setDocumentLocator called after startDocument"); ! super.setDocumentLocator (locator); } public void startDocument () throws SAXException { ! if (startedDoc) ! fatalError ("startDocument called more than once"); ! startedDoc = true; ! startedCDATA = false; ! elementStack.removeAllElements (); ! super.startDocument (); } public void startElement ( ! String uri, String localName, ! String qName, Attributes atts ) throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if ("inside".equals (dtdState)) ! fatalError ("element inside DTD?"); ! else ! dtdState = "after"; ! if (startedCDATA) ! fatalError ("element inside CDATA section"); ! if (qName == null || "".equals (qName)) ! fatalError ("startElement name missing"); ! elementStack.push (qName); ! super.startElement (uri, localName, qName, atts); } public void endElement (String uri, String localName, String qName) throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if (startedCDATA) ! fatalError ("element inside CDATA section"); ! if (qName == null || "".equals (qName)) ! fatalError ("endElement name missing"); ! try { ! String top = (String) elementStack.pop (); ! ! if (!qName.equals (top)) ! fatalError ("<" + top + " ...>..."); ! // XXX could record/test namespace info ! } catch (EmptyStackException e) { ! fatalError ("endElement without startElement: "); ! } ! super.endElement (uri, localName, qName); } public void endDocument () throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! dtdState = "before"; ! startedDoc = false; ! super.endDocument (); } public void startDTD (String root, String publicId, String systemId) throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); if ("before" != dtdState) ! fatalError ("two DTDs?"); ! if (!elementStack.empty ()) ! fatalError ("DTD must precede root element"); ! dtdState = "inside"; ! super.startDTD (root, publicId, systemId); } public void notationDecl (String name, String publicId, String systemId) *************** public final class WellFormednessFilter *** 247,265 **** // FIXME: not all parsers will report startDTD() ... // we'd rather insist we're "inside". if ("after" == dtdState) ! fatalError ("not inside DTD"); ! super.notationDecl (name, publicId, systemId); } public void unparsedEntityDecl (String name, ! String publicId, String systemId, String notationName) throws SAXException { // FIXME: not all parsers will report startDTD() ... // we'd rather insist we're "inside". if ("after" == dtdState) ! fatalError ("not inside DTD"); ! super.unparsedEntityDecl (name, publicId, systemId, notationName); } // FIXME: add the four DeclHandler calls too --- 247,265 ---- // FIXME: not all parsers will report startDTD() ... // we'd rather insist we're "inside". if ("after" == dtdState) ! fatalError ("not inside DTD"); ! super.notationDecl (name, publicId, systemId); } public void unparsedEntityDecl (String name, ! String publicId, String systemId, String notationName) throws SAXException { // FIXME: not all parsers will report startDTD() ... // we'd rather insist we're "inside". if ("after" == dtdState) ! fatalError ("not inside DTD"); ! super.unparsedEntityDecl (name, publicId, systemId, notationName); } // FIXME: add the four DeclHandler calls too *************** public final class WellFormednessFilter *** 267,363 **** public void endDTD () throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if ("inside" != dtdState) ! fatalError ("DTD ends without start?"); ! dtdState = "after"; ! super.endDTD (); } public void characters (char ch [], int start, int length) throws SAXException { ! int here = start, end = start + length; ! if (elementStack.empty ()) ! fatalError ("characters must be in an element"); ! while (here < end) { ! if (ch [here++] != ']') ! continue; ! if (here == end) // potential problem ... ! continue; ! if (ch [here++] != ']') ! continue; ! if (here == end) // potential problem ... ! continue; ! if (ch [here++] == '>') ! fatalError ("character data can't contain \"]]>\""); ! } ! super.characters (ch, start, length); } public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! int here = start, end = start + length; ! if (elementStack.empty ()) ! fatalError ("characters must be in an element"); ! while (here < end) { ! if (ch [here++] == '\r') ! fatalError ("whitespace can't contain CR"); ! } ! super.ignorableWhitespace (ch, start, length); } public void processingInstruction (String target, String data) throws SAXException { ! if (data.indexOf ('\r') > 0) ! fatalError ("PIs can't contain CR"); ! if (data.indexOf ("?>") > 0) ! fatalError ("PIs can't contain \"?>\""); } public void comment (char ch [], int start, int length) throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if (startedCDATA) ! fatalError ("comments can't nest in CDATA"); ! int here = start, end = start + length; ! while (here < end) { ! if (ch [here] == '\r') ! fatalError ("comments can't contain CR"); ! if (ch [here++] != '-') ! continue; ! if (here == end) ! fatalError ("comments can't end with \"--->\""); ! if (ch [here++] == '-') ! fatalError ("comments can't contain \"--\""); ! } ! super.comment (ch, start, length); } public void startCDATA () throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if (startedCDATA) ! fatalError ("CDATA starts can't nest"); ! startedCDATA = true; ! super.startCDATA (); } public void endCDATA () throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if (!startedCDATA) ! fatalError ("CDATA end without start?"); ! startedCDATA = false; ! super.endCDATA (); } } --- 267,363 ---- public void endDTD () throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if ("inside" != dtdState) ! fatalError ("DTD ends without start?"); ! dtdState = "after"; ! super.endDTD (); } public void characters (char ch [], int start, int length) throws SAXException { ! int here = start, end = start + length; ! if (elementStack.empty ()) ! fatalError ("characters must be in an element"); ! while (here < end) { ! if (ch [here++] != ']') ! continue; ! if (here == end) // potential problem ... ! continue; ! if (ch [here++] != ']') ! continue; ! if (here == end) // potential problem ... ! continue; ! if (ch [here++] == '>') ! fatalError ("character data can't contain \"]]>\""); ! } ! super.characters (ch, start, length); } public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! int here = start, end = start + length; ! if (elementStack.empty ()) ! fatalError ("characters must be in an element"); ! while (here < end) { ! if (ch [here++] == '\r') ! fatalError ("whitespace can't contain CR"); ! } ! super.ignorableWhitespace (ch, start, length); } public void processingInstruction (String target, String data) throws SAXException { ! if (data.indexOf ('\r') > 0) ! fatalError ("PIs can't contain CR"); ! if (data.indexOf ("?>") > 0) ! fatalError ("PIs can't contain \"?>\""); } public void comment (char ch [], int start, int length) throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if (startedCDATA) ! fatalError ("comments can't nest in CDATA"); ! int here = start, end = start + length; ! while (here < end) { ! if (ch [here] == '\r') ! fatalError ("comments can't contain CR"); ! if (ch [here++] != '-') ! continue; ! if (here == end) ! fatalError ("comments can't end with \"--->\""); ! if (ch [here++] == '-') ! fatalError ("comments can't contain \"--\""); ! } ! super.comment (ch, start, length); } public void startCDATA () throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if (startedCDATA) ! fatalError ("CDATA starts can't nest"); ! startedCDATA = true; ! super.startCDATA (); } public void endCDATA () throws SAXException { ! if (!startedDoc) ! fatalError ("callback outside of document?"); ! if (!startedCDATA) ! fatalError ("CDATA end without start?"); ! startedCDATA = false; ! super.endCDATA (); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/XIncludeFilter.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/XIncludeFilter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/XIncludeFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/XIncludeFilter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XIncludeFilter.java -- Copyright (C) 2001,2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XIncludeFilter.java -- Copyright (C) 2001,2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.pipeline; *** 40,47 **** import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; ! import java.net.URL; ! import java.net.URLConnection; import java.util.Hashtable; import java.util.Stack; import java.util.Vector; --- 40,47 ---- import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; ! import java.net.URL; ! import java.net.URLConnection; import java.util.Hashtable; import java.util.Stack; import java.util.Vector; *************** import gnu.xml.util.Resolver; *** 77,83 **** * currently supported. * *

          14. DTDs are not supported in included files, since the SAX DTD events ! * must have completely preceded any included file. * The CR explicitly allows the DTD related portions of the infoset to * grow as an effect of including XML documents. * --- 77,83 ---- * currently supported. * *
          15. DTDs are not supported in included files, since the SAX DTD events ! * must have completely preceded any included file. * The CR explicitly allows the DTD related portions of the infoset to * grow as an effect of including XML documents. * *************** import gnu.xml.util.Resolver; *** 101,133 **** */ public class XIncludeFilter extends EventFilter implements Locator { ! private Hashtable extEntities = new Hashtable (5, 5); ! private int ignoreCount; ! private Stack uris = new Stack (); ! private Locator locator; ! private Vector inclusions = new Vector (5, 5); ! private boolean savingPrefixes; /** */ public XIncludeFilter (EventConsumer next) throws SAXException { ! super (next); ! setContentHandler (this); ! // DTDHandler callbacks pass straight through ! setProperty (DECL_HANDLER, this); ! setProperty (LEXICAL_HANDLER, this); } private void fatal (SAXParseException e) throws SAXException { ! ErrorHandler eh; ! ! eh = getErrorHandler (); ! if (eh != null) ! eh.fatalError (e); ! throw e; } /** --- 101,133 ---- */ public class XIncludeFilter extends EventFilter implements Locator { ! private Hashtable extEntities = new Hashtable (5, 5); ! private int ignoreCount; ! private Stack uris = new Stack (); ! private Locator locator; ! private Vector inclusions = new Vector (5, 5); ! private boolean savingPrefixes; /** */ public XIncludeFilter (EventConsumer next) throws SAXException { ! super (next); ! setContentHandler (this); ! // DTDHandler callbacks pass straight through ! setProperty (DECL_HANDLER, this); ! setProperty (LEXICAL_HANDLER, this); } private void fatal (SAXParseException e) throws SAXException { ! ErrorHandler eh; ! ! eh = getErrorHandler (); ! if (eh != null) ! eh.fatalError (e); ! throw e; } /** *************** public class XIncludeFilter extends Even *** 135,163 **** */ public void setDocumentLocator (Locator locator) { ! this.locator = locator; ! super.setDocumentLocator (this); } /** Used for proxy locator; do not call directly. */ public String getSystemId () ! { return (locator == null) ? null : locator.getSystemId (); } /** Used for proxy locator; do not call directly. */ public String getPublicId () ! { return (locator == null) ? null : locator.getPublicId (); } /** Used for proxy locator; do not call directly. */ public int getLineNumber () ! { return (locator == null) ? -1 : locator.getLineNumber (); } /** Used for proxy locator; do not call directly. */ public int getColumnNumber () ! { return (locator == null) ? -1 : locator.getColumnNumber (); } /** * Assigns the flag controlling the setting of the SAX2 * namespace-prefixes flag. */ public void setSavingPrefixes (boolean flag) ! { savingPrefixes = flag; } /** * Returns the flag controlling the setting of the SAX2 --- 135,163 ---- */ public void setDocumentLocator (Locator locator) { ! this.locator = locator; ! super.setDocumentLocator (this); } /** Used for proxy locator; do not call directly. */ public String getSystemId () ! { return (locator == null) ? null : locator.getSystemId (); } /** Used for proxy locator; do not call directly. */ public String getPublicId () ! { return (locator == null) ? null : locator.getPublicId (); } /** Used for proxy locator; do not call directly. */ public int getLineNumber () ! { return (locator == null) ? -1 : locator.getLineNumber (); } /** Used for proxy locator; do not call directly. */ public int getColumnNumber () ! { return (locator == null) ? -1 : locator.getColumnNumber (); } /** * Assigns the flag controlling the setting of the SAX2 * namespace-prefixes flag. */ public void setSavingPrefixes (boolean flag) ! { savingPrefixes = flag; } /** * Returns the flag controlling the setting of the SAX2 *************** public class XIncludeFilter extends Even *** 166,214 **** * information that can be useful. */ public boolean isSavingPrefixes () ! { return savingPrefixes; } // // Two mechanisms are interacting here. - // - // - XML Base implies a stack of base URIs, updated both by - // "real entity" boundaries and element boundaries. // ! // - Active "Real Entities" (for document and general entities, ! // and by xincluded files) are tracked to prevent circular ! // inclusions. // private String addMarker (String uri) throws SAXException { ! if (locator != null && locator.getSystemId () != null) ! uri = locator.getSystemId (); ! // guard against InputSource objects without system IDs ! if (uri == null) ! fatal (new SAXParseException ("Entity URI is unknown", locator)); ! try { ! URL url = new URL (uri); ! uri = url.toString (); ! if (inclusions.contains (uri)) ! fatal (new SAXParseException ( ! "XInclude, circular inclusion", locator)); ! inclusions.addElement (uri); ! uris.push (url); ! } catch (IOException e) { ! // guard against illegal relative URIs (Xerces) ! fatal (new SAXParseException ("parser bug: relative URI", ! locator, e)); ! } ! return uri; } private void pop (String uri) { ! inclusions.removeElement (uri); ! uris.pop (); } // --- 166,214 ---- * information that can be useful. */ public boolean isSavingPrefixes () ! { return savingPrefixes; } // // Two mechanisms are interacting here. // ! // - XML Base implies a stack of base URIs, updated both by ! // "real entity" boundaries and element boundaries. ! // ! // - Active "Real Entities" (for document and general entities, ! // and by xincluded files) are tracked to prevent circular ! // inclusions. // private String addMarker (String uri) throws SAXException { ! if (locator != null && locator.getSystemId () != null) ! uri = locator.getSystemId (); ! // guard against InputSource objects without system IDs ! if (uri == null) ! fatal (new SAXParseException ("Entity URI is unknown", locator)); ! try { ! URL url = new URL (uri); ! uri = url.toString (); ! if (inclusions.contains (uri)) ! fatal (new SAXParseException ( ! "XInclude, circular inclusion", locator)); ! inclusions.addElement (uri); ! uris.push (url); ! } catch (IOException e) { ! // guard against illegal relative URIs (Xerces) ! fatal (new SAXParseException ("parser bug: relative URI", ! locator, e)); ! } ! return uri; } private void pop (String uri) { ! inclusions.removeElement (uri); ! uris.pop (); } // *************** public class XIncludeFilter extends Even *** 216,281 **** // public void startDocument () throws SAXException { ! ignoreCount = 0; ! addMarker (null); ! super.startDocument (); } public void endDocument () throws SAXException { ! inclusions.setSize (0); ! extEntities.clear (); ! uris.setSize (0); ! super.endDocument (); } // // External general entity boundaries get both treatments. // public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException { ! if (name.charAt (0) == '%') ! return; ! try { ! URL url = new URL (locator.getSystemId ()); ! systemId = new URL (url, systemId).toString (); ! } catch (IOException e) { ! // what could we do? ! } ! extEntities.put (name, systemId); } public void startEntity (String name) throws SAXException { ! if (ignoreCount != 0) { ! ignoreCount++; ! return; ! } ! String uri = (String) extEntities.get (name); ! if (uri != null) ! addMarker (uri); ! super.startEntity (name); } public void endEntity (String name) throws SAXException { ! if (ignoreCount != 0) { ! if (--ignoreCount != 0) ! return; ! } ! String uri = (String) extEntities.get (name); ! if (uri != null) ! pop (uri); ! super.endEntity (name); } ! // // element boundaries only affect the base URI stack, // unless they're XInclude elements. --- 216,281 ---- // public void startDocument () throws SAXException { ! ignoreCount = 0; ! addMarker (null); ! super.startDocument (); } public void endDocument () throws SAXException { ! inclusions.setSize (0); ! extEntities.clear (); ! uris.setSize (0); ! super.endDocument (); } // // External general entity boundaries get both treatments. // public void externalEntityDecl (String name, ! String publicId, String systemId) throws SAXException { ! if (name.charAt (0) == '%') ! return; ! try { ! URL url = new URL (locator.getSystemId ()); ! systemId = new URL (url, systemId).toString (); ! } catch (IOException e) { ! // what could we do? ! } ! extEntities.put (name, systemId); } public void startEntity (String name) throws SAXException { ! if (ignoreCount != 0) { ! ignoreCount++; ! return; ! } ! String uri = (String) extEntities.get (name); ! if (uri != null) ! addMarker (uri); ! super.startEntity (name); } public void endEntity (String name) throws SAXException { ! if (ignoreCount != 0) { ! if (--ignoreCount != 0) ! return; ! } ! String uri = (String) extEntities.get (name); ! if (uri != null) ! pop (uri); ! super.endEntity (name); } ! // // element boundaries only affect the base URI stack, // unless they're XInclude elements. *************** public class XIncludeFilter extends Even *** 284,386 **** startElement (String uri, String localName, String qName, Attributes atts) throws SAXException { ! if (ignoreCount != 0) { ! ignoreCount++; ! return; ! } ! URL baseURI = (URL) uris.peek (); ! String base; ! base = atts.getValue ("http://www.w3.org/XML/1998/namespace", "base"); ! if (base == null) ! uris.push (baseURI); ! else { ! URL url; ! if (base.indexOf ('#') != -1) ! fatal (new SAXParseException ( ! "xml:base with fragment: " + base, ! locator)); ! try { ! baseURI = new URL (baseURI, base); ! uris.push (baseURI); ! } catch (Exception e) { ! fatal (new SAXParseException ( ! "xml:base with illegal uri: " + base, ! locator, e)); ! } ! } ! if (!"http://www.w3.org/2001/XInclude".equals (uri)) { ! super.startElement (uri, localName, qName, atts); ! return; ! } ! if ("include".equals (localName)) { ! String href = atts.getValue ("href"); ! String parse = atts.getValue ("parse"); ! String encoding = atts.getValue ("encoding"); ! URL url = (URL) uris.peek (); ! SAXParseException x = null; ! if (href == null) ! fatal (new SAXParseException ( ! "XInclude missing href", ! locator)); ! if (href.indexOf ('#') != -1) ! fatal (new SAXParseException ( ! "XInclude with fragment: " + href, ! locator)); ! if (parse == null || "xml".equals (parse)) ! x = xinclude (url, href); ! else if ("text".equals (parse)) ! x = readText (url, href, encoding); ! else ! fatal (new SAXParseException ( ! "unknown XInclude parsing mode: " + parse, ! locator)); ! if (x == null) { ! // strip out all child content ! ignoreCount++; ! return; ! } ! // FIXME the 17-Sept-2002 CR of XInclude says we "must" ! // use xi:fallback elements to handle resource errors, ! // if they exist. ! fatal (x); ! } else if ("fallback".equals (localName)) { ! fatal (new SAXParseException ( ! "illegal top level XInclude 'fallback' element", ! locator)); ! } else { ! ErrorHandler eh = getErrorHandler (); ! // CR doesn't say this is an error ! if (eh != null) ! eh.warning (new SAXParseException ( ! "unrecognized toplevel XInclude element: " + localName, ! locator)); ! super.startElement (uri, localName, qName, atts); ! } } public void endElement (String uri, String localName, String qName) throws SAXException { ! if (ignoreCount != 0) { ! if (--ignoreCount != 0) ! return; ! } ! uris.pop (); ! if (!("http://www.w3.org/2001/XInclude".equals (uri) ! && "include".equals (localName))) ! super.endElement (uri, localName, qName); } // --- 284,386 ---- startElement (String uri, String localName, String qName, Attributes atts) throws SAXException { ! if (ignoreCount != 0) { ! ignoreCount++; ! return; ! } ! URL baseURI = (URL) uris.peek (); ! String base; ! base = atts.getValue ("http://www.w3.org/XML/1998/namespace", "base"); ! if (base == null) ! uris.push (baseURI); ! else { ! URL url; ! if (base.indexOf ('#') != -1) ! fatal (new SAXParseException ( ! "xml:base with fragment: " + base, ! locator)); ! try { ! baseURI = new URL (baseURI, base); ! uris.push (baseURI); ! } catch (Exception e) { ! fatal (new SAXParseException ( ! "xml:base with illegal uri: " + base, ! locator, e)); ! } ! } ! if (!"http://www.w3.org/2001/XInclude".equals (uri)) { ! super.startElement (uri, localName, qName, atts); ! return; ! } ! if ("include".equals (localName)) { ! String href = atts.getValue ("href"); ! String parse = atts.getValue ("parse"); ! String encoding = atts.getValue ("encoding"); ! URL url = (URL) uris.peek (); ! SAXParseException x = null; ! if (href == null) ! fatal (new SAXParseException ( ! "XInclude missing href", ! locator)); ! if (href.indexOf ('#') != -1) ! fatal (new SAXParseException ( ! "XInclude with fragment: " + href, ! locator)); ! if (parse == null || "xml".equals (parse)) ! x = xinclude (url, href); ! else if ("text".equals (parse)) ! x = readText (url, href, encoding); ! else ! fatal (new SAXParseException ( ! "unknown XInclude parsing mode: " + parse, ! locator)); ! if (x == null) { ! // strip out all child content ! ignoreCount++; ! return; ! } ! // FIXME the 17-Sept-2002 CR of XInclude says we "must" ! // use xi:fallback elements to handle resource errors, ! // if they exist. ! fatal (x); ! } else if ("fallback".equals (localName)) { ! fatal (new SAXParseException ( ! "illegal top level XInclude 'fallback' element", ! locator)); ! } else { ! ErrorHandler eh = getErrorHandler (); ! // CR doesn't say this is an error ! if (eh != null) ! eh.warning (new SAXParseException ( ! "unrecognized toplevel XInclude element: " + localName, ! locator)); ! super.startElement (uri, localName, qName, atts); ! } } public void endElement (String uri, String localName, String qName) throws SAXException { ! if (ignoreCount != 0) { ! if (--ignoreCount != 0) ! return; ! } ! uris.pop (); ! if (!("http://www.w3.org/2001/XInclude".equals (uri) ! && "include".equals (localName))) ! super.endElement (uri, localName, qName); } // *************** public class XIncludeFilter extends Even *** 389,454 **** public void characters (char ch [], int start, int length) throws SAXException { ! if (ignoreCount == 0) ! super.characters (ch, start, length); } public void processingInstruction (String target, String value) throws SAXException { ! if (ignoreCount == 0) ! super.processingInstruction (target, value); } public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! if (ignoreCount == 0) ! super.ignorableWhitespace (ch, start, length); } public void comment (char ch [], int start, int length) throws SAXException { ! if (ignoreCount == 0) ! super.comment (ch, start, length); } public void startCDATA () throws SAXException { ! if (ignoreCount == 0) ! super.startCDATA (); } public void endCDATA () throws SAXException { ! if (ignoreCount == 0) ! super.endCDATA (); } public void startPrefixMapping (String prefix, String uri) throws SAXException { ! if (ignoreCount == 0) ! super.startPrefixMapping (prefix, uri); } public void endPrefixMapping (String prefix) throws SAXException { ! if (ignoreCount == 0) ! super.endPrefixMapping (prefix); } public void skippedEntity (String name) throws SAXException { ! if (ignoreCount == 0) ! super.skippedEntity (name); } // JDK 1.1 seems to need it to be done this way, sigh void setLocator (Locator l) { locator = l; } Locator getLocator () { return locator; } ! // // for XIncluded entities, manage the current locator and --- 389,454 ---- public void characters (char ch [], int start, int length) throws SAXException { ! if (ignoreCount == 0) ! super.characters (ch, start, length); } public void processingInstruction (String target, String value) throws SAXException { ! if (ignoreCount == 0) ! super.processingInstruction (target, value); } public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! if (ignoreCount == 0) ! super.ignorableWhitespace (ch, start, length); } public void comment (char ch [], int start, int length) throws SAXException { ! if (ignoreCount == 0) ! super.comment (ch, start, length); } public void startCDATA () throws SAXException { ! if (ignoreCount == 0) ! super.startCDATA (); } public void endCDATA () throws SAXException { ! if (ignoreCount == 0) ! super.endCDATA (); } public void startPrefixMapping (String prefix, String uri) throws SAXException { ! if (ignoreCount == 0) ! super.startPrefixMapping (prefix, uri); } public void endPrefixMapping (String prefix) throws SAXException { ! if (ignoreCount == 0) ! super.endPrefixMapping (prefix); } public void skippedEntity (String name) throws SAXException { ! if (ignoreCount == 0) ! super.skippedEntity (name); } // JDK 1.1 seems to need it to be done this way, sigh void setLocator (Locator l) { locator = l; } Locator getLocator () { return locator; } ! // // for XIncluded entities, manage the current locator and *************** public class XIncludeFilter extends Even *** 456,500 **** // private class Scrubber extends EventFilter { ! Scrubber (EventFilter f) ! throws SAXException ! { ! // delegation passes to next in chain ! super (f); ! // process all content events ! super.setContentHandler (this); ! super.setProperty (LEXICAL_HANDLER, this); ! // drop all DTD events ! super.setDTDHandler (null); ! super.setProperty (DECL_HANDLER, null); ! } ! // maintain proxy locator ! // only one startDocument()/endDocument() pair per event stream ! public void setDocumentLocator (Locator l) ! { setLocator (l); } ! public void startDocument () ! { } ! public void endDocument () ! { } ! ! private void reject (String message) throws SAXException ! { fatal (new SAXParseException (message, getLocator ())); } ! ! // only the DTD from the "base document" gets reported ! public void startDTD (String root, String publicId, String systemId) ! throws SAXException ! { reject ("XIncluded DTD: " + systemId); } ! public void endDTD () ! throws SAXException ! { reject ("XIncluded DTD"); } ! // ... so this should never happen ! public void skippedEntity (String name) throws SAXException ! { reject ("XInclude skipped entity: " + name); } ! // since we rejected DTDs, only builtin entities can be reported } // --- 456,500 ---- // private class Scrubber extends EventFilter { ! Scrubber (EventFilter f) ! throws SAXException ! { ! // delegation passes to next in chain ! super (f); ! // process all content events ! super.setContentHandler (this); ! super.setProperty (LEXICAL_HANDLER, this); ! // drop all DTD events ! super.setDTDHandler (null); ! super.setProperty (DECL_HANDLER, null); ! } ! // maintain proxy locator ! // only one startDocument()/endDocument() pair per event stream ! public void setDocumentLocator (Locator l) ! { setLocator (l); } ! public void startDocument () ! { } ! public void endDocument () ! { } ! private void reject (String message) throws SAXException ! { fatal (new SAXParseException (message, getLocator ())); } ! ! // only the DTD from the "base document" gets reported ! public void startDTD (String root, String publicId, String systemId) ! throws SAXException ! { reject ("XIncluded DTD: " + systemId); } ! public void endDTD () ! throws SAXException ! { reject ("XIncluded DTD"); } ! // ... so this should never happen ! public void skippedEntity (String name) throws SAXException ! { reject ("XInclude skipped entity: " + name); } ! ! // since we rejected DTDs, only builtin entities can be reported } // *************** public class XIncludeFilter extends Even *** 502,541 **** private SAXParseException xinclude (URL url, String href) throws SAXException { ! XMLReader helper; ! Scrubber scrubber; ! Locator savedLocator = locator; ! // start with a parser acting just like our input ! // modulo DTD-ish stuff (validation flag, entity resolver) ! helper = XMLReaderFactory.createXMLReader (); ! helper.setErrorHandler (getErrorHandler ()); ! helper.setFeature (FEATURE_URI + "namespace-prefixes", true); ! // Set up the proxy locator and event filter. ! scrubber = new Scrubber (this); ! locator = null; ! bind (helper, scrubber); ! // Merge the included document, except its DTD ! try { ! url = new URL (url, href); ! href = url.toString (); ! if (inclusions.contains (href)) ! fatal (new SAXParseException ( ! "XInclude, circular inclusion", locator)); ! inclusions.addElement (href); ! uris.push (url); ! helper.parse (new InputSource (href)); ! return null; ! } catch (java.io.IOException e) { ! return new SAXParseException (href, locator, e); ! } finally { ! pop (href); ! locator = savedLocator; ! } } // --- 502,541 ---- private SAXParseException xinclude (URL url, String href) throws SAXException { ! XMLReader helper; ! Scrubber scrubber; ! Locator savedLocator = locator; ! // start with a parser acting just like our input ! // modulo DTD-ish stuff (validation flag, entity resolver) ! helper = XMLReaderFactory.createXMLReader (); ! helper.setErrorHandler (getErrorHandler ()); ! helper.setFeature (FEATURE_URI + "namespace-prefixes", true); ! // Set up the proxy locator and event filter. ! scrubber = new Scrubber (this); ! locator = null; ! bind (helper, scrubber); ! // Merge the included document, except its DTD ! try { ! url = new URL (url, href); ! href = url.toString (); ! if (inclusions.contains (href)) ! fatal (new SAXParseException ( ! "XInclude, circular inclusion", locator)); ! inclusions.addElement (href); ! uris.push (url); ! helper.parse (new InputSource (href)); ! return null; ! } catch (java.io.IOException e) { ! return new SAXParseException (href, locator, e); ! } finally { ! pop (href); ! locator = savedLocator; ! } } // *************** public class XIncludeFilter extends Even *** 543,579 **** private SAXParseException readText (URL url, String href, String encoding) throws SAXException { ! InputStream in = null; ! try { ! URLConnection conn; ! InputStreamReader reader; ! char buf [] = new char [4096]; ! int count; ! url = new URL (url, href); ! conn = url.openConnection (); ! in = conn.getInputStream (); ! if (encoding == null) ! encoding = Resolver.getEncoding (conn.getContentType ()); ! if (encoding == null) { ! ErrorHandler eh = getErrorHandler (); ! if (eh != null) ! eh.warning (new SAXParseException ( ! "guessing text encoding for URL: " + url, ! locator)); ! reader = new InputStreamReader (in); ! } else ! reader = new InputStreamReader (in, encoding); ! while ((count = reader.read (buf, 0, buf.length)) != -1) ! super.characters (buf, 0, count); ! in.close (); ! return null; ! } catch (IOException e) { ! return new SAXParseException ( ! "can't XInclude text", ! locator, e); ! } } } --- 543,579 ---- private SAXParseException readText (URL url, String href, String encoding) throws SAXException { ! InputStream in = null; ! try { ! URLConnection conn; ! InputStreamReader reader; ! char buf [] = new char [4096]; ! int count; ! url = new URL (url, href); ! conn = url.openConnection (); ! in = conn.getInputStream (); ! if (encoding == null) ! encoding = Resolver.getEncoding (conn.getContentType ()); ! if (encoding == null) { ! ErrorHandler eh = getErrorHandler (); ! if (eh != null) ! eh.warning (new SAXParseException ( ! "guessing text encoding for URL: " + url, ! locator)); ! reader = new InputStreamReader (in); ! } else ! reader = new InputStreamReader (in, encoding); ! while ((count = reader.read (buf, 0, buf.length)) != -1) ! super.characters (buf, 0, count); ! in.close (); ! return null; ! } catch (IOException e) { ! return new SAXParseException ( ! "can't XInclude text", ! locator, e); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/XsltFilter.java gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/XsltFilter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/pipeline/XsltFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/pipeline/XsltFilter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XsltFilter.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XsltFilter.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.ext.LexicalHandler; *** 49,56 **** /** ! * Packages an XSLT transform as a pipeline component. ! * Note that all DTD events (callbacks to DeclHandler and DTDHandler * interfaces) are discarded, although XSLT transforms may be set up to * use the LexicalHandler to write DTDs with only an external subset. * Not every XSLT engine will necessarily be usable with this filter, --- 49,56 ---- /** ! * Packages an XSLT transform as a pipeline component. ! * Note that all DTD events (callbacks to DeclHandler and DTDHandler * interfaces) are discarded, although XSLT transforms may be set up to * use the LexicalHandler to write DTDs with only an external subset. * Not every XSLT engine will necessarily be usable with this filter, *************** final public class XsltFilter extends Ev *** 72,130 **** * or ErrorHandler support. * * @param stylesheet URI for the stylesheet specifying the ! * XSLT transform * @param next provides the ContentHandler and LexicalHandler ! * to receive XSLT output. * @exception SAXException if the stylesheet can't be parsed * @exception IOException if there are difficulties ! * bootstrapping the XSLT engine, such as it not supporting ! * SAX well enough to use this way. */ public XsltFilter (String stylesheet, EventConsumer next) throws SAXException, IOException { ! // First, get a transformer with the stylesheet preloaded ! TransformerFactory tf = null; ! TransformerHandler th; ! try { ! SAXTransformerFactory stf; ! tf = TransformerFactory.newInstance (); ! if (!tf.getFeature (SAXTransformerFactory.FEATURE) // sax inputs ! || !tf.getFeature (SAXResult.FEATURE) // sax outputs ! || !tf.getFeature (StreamSource.FEATURE) // stylesheet ! ) ! throw new IOException ("XSLT factory (" ! + tf.getClass ().getName () ! + ") does not support SAX"); ! stf = (SAXTransformerFactory) tf; ! th = stf.newTransformerHandler (new StreamSource (stylesheet)); ! } catch (TransformerConfigurationException e) { ! throw new IOException ("XSLT factory (" ! + (tf == null ! ? "none available" ! : tf.getClass ().getName ()) ! + ") configuration error, " ! + e.getMessage () ! ); ! } ! // Hook its outputs up to the pipeline ... ! SAXResult out = new SAXResult (); ! out.setHandler (next.getContentHandler ()); ! try { ! LexicalHandler lh; ! lh = (LexicalHandler) next.getProperty (LEXICAL_HANDLER); ! out.setLexicalHandler (lh); ! } catch (Exception e) { ! // ignore ! } ! th.setResult (out); ! // ... and make sure its inputs look like ours. ! setContentHandler (th); ! setProperty (LEXICAL_HANDLER, th); } } --- 72,130 ---- * or ErrorHandler support. * * @param stylesheet URI for the stylesheet specifying the ! * XSLT transform * @param next provides the ContentHandler and LexicalHandler ! * to receive XSLT output. * @exception SAXException if the stylesheet can't be parsed * @exception IOException if there are difficulties ! * bootstrapping the XSLT engine, such as it not supporting ! * SAX well enough to use this way. */ public XsltFilter (String stylesheet, EventConsumer next) throws SAXException, IOException { ! // First, get a transformer with the stylesheet preloaded ! TransformerFactory tf = null; ! TransformerHandler th; ! try { ! SAXTransformerFactory stf; ! tf = TransformerFactory.newInstance (); ! if (!tf.getFeature (SAXTransformerFactory.FEATURE) // sax inputs ! || !tf.getFeature (SAXResult.FEATURE) // sax outputs ! || !tf.getFeature (StreamSource.FEATURE) // stylesheet ! ) ! throw new IOException ("XSLT factory (" ! + tf.getClass ().getName () ! + ") does not support SAX"); ! stf = (SAXTransformerFactory) tf; ! th = stf.newTransformerHandler (new StreamSource (stylesheet)); ! } catch (TransformerConfigurationException e) { ! throw new IOException ("XSLT factory (" ! + (tf == null ! ? "none available" ! : tf.getClass ().getName ()) ! + ") configuration error, " ! + e.getMessage () ! ); ! } ! // Hook its outputs up to the pipeline ... ! SAXResult out = new SAXResult (); ! out.setHandler (next.getContentHandler ()); ! try { ! LexicalHandler lh; ! lh = (LexicalHandler) next.getProperty (LEXICAL_HANDLER); ! out.setLexicalHandler (lh); ! } catch (Exception e) { ! // ignore ! } ! th.setResult (out); ! // ... and make sure its inputs look like ours. ! setContentHandler (th); ! setProperty (LEXICAL_HANDLER, th); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/AttributeImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/AttributeImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/AttributeImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/AttributeImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AttributeImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AttributeImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class AttributeImpl *** 94,100 **** { return specified; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 94,100 ---- { return specified; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class AttributeImpl *** 119,124 **** throw e2; } } - - } --- 119,123 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/BufferedReader.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/BufferedReader.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/BufferedReader.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/BufferedReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BufferedReader.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BufferedReader.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class BufferedReader *** 59,65 **** { this(in, DEFAULT_BUFFER_SIZE); } ! BufferedReader(Reader in, int bufferSize) { if (bufferSize < 1) --- 59,65 ---- { this(in, DEFAULT_BUFFER_SIZE); } ! BufferedReader(Reader in, int bufferSize) { if (bufferSize < 1) *************** class BufferedReader *** 110,128 **** { if (off < 0 || len < 0 || b.length - off < len) throw new IndexOutOfBoundsException(); ! if (len == 0) return 0; ! if (pos >= count && !refill()) return -1; ! int ret = Math.min(count - pos, len); System.arraycopy(buf, pos, b, off, ret); pos += ret; off += ret; len -= ret; ! while (len > 0 && refill()) { int remain = Math.min(count - pos, len); --- 110,128 ---- { if (off < 0 || len < 0 || b.length - off < len) throw new IndexOutOfBoundsException(); ! if (len == 0) return 0; ! if (pos >= count && !refill()) return -1; ! int ret = Math.min(count - pos, len); System.arraycopy(buf, pos, b, off, ret); pos += ret; off += ret; len -= ret; ! while (len > 0 && refill()) { int remain = Math.min(count - pos, len); *************** class BufferedReader *** 132,138 **** len -= remain; ret += remain; } ! return ret; } --- 132,138 ---- len -= remain; ret += remain; } ! return ret; } *************** class BufferedReader *** 177,183 **** { char[] newbuf = buf; if (markpos < bufferSize) ! { newbuf = new char[count - markpos + bufferSize]; } System.arraycopy(buf, markpos, newbuf, 0, markcount); --- 177,183 ---- { char[] newbuf = buf; if (markpos < bufferSize) ! { newbuf = new char[count - markpos + bufferSize]; } System.arraycopy(buf, markpos, newbuf, 0, markcount); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/CRLFReader.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/CRLFReader.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/CRLFReader.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/CRLFReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CRLFReader.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CRLFReader.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class CRLFReader *** 115,121 **** } else l = in.read(b, off, len); // CR(s) but no LF ! } } return l; } --- 115,121 ---- } else l = in.read(b, off, len); // CR(s) but no LF ! } } return l; } *************** class CRLFReader *** 178,181 **** } } - --- 178,180 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/CharactersImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/CharactersImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/CharactersImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/CharactersImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharactersImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharactersImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class CharactersImpl *** 88,99 **** { return cdata; } ! public boolean isIgnorableWhiteSpace() { return ignorableWhitespace; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 88,99 ---- { return cdata; } ! public boolean isIgnorableWhiteSpace() { return ignorableWhitespace; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class CharactersImpl *** 105,111 **** writer.write(data); writer.write("]]>"); } ! else writer.write(encode(data, false)); } catch (IOException e) --- 105,111 ---- writer.write(data); writer.write("]]>"); } ! else writer.write(encode(data, false)); } catch (IOException e) *************** public class CharactersImpl *** 115,120 **** throw e2; } } - - } --- 115,119 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/CommentImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/CommentImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/CommentImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/CommentImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CommentImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CommentImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class CommentImpl *** 70,76 **** { return text; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 70,76 ---- { return text; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class CommentImpl *** 87,92 **** throw e2; } } - - } --- 87,91 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/DTDImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/DTDImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/DTDImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/DTDImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DTDImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DTDImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DTDImpl *** 93,99 **** { return entities; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 93,99 ---- { return entities; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class DTDImpl *** 110,115 **** throw e2; } } - - } --- 110,114 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/EndDocumentImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/EndDocumentImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/EndDocumentImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/EndDocumentImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EndDocumentImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EndDocumentImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class EndDocumentImpl *** 61,71 **** { return END_DOCUMENT; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { } - - } --- 61,70 ---- { return END_DOCUMENT; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/EndElementImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/EndElementImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/EndElementImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/EndElementImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EndElementImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EndElementImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class EndElementImpl *** 80,86 **** { return namespaces.iterator(); } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 80,86 ---- { return namespaces.iterator(); } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class EndElementImpl *** 103,108 **** throw e2; } } - - } --- 103,107 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/EntityDeclarationImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/EntityDeclarationImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/EntityDeclarationImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/EntityDeclarationImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EntityDeclarationImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EntityDeclarationImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class EntityDeclarationImpl *** 159,164 **** throw e2; } } - - } --- 159,163 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/EntityReferenceImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/EntityReferenceImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/EntityReferenceImpl.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/EntityReferenceImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EntityReferenceImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EntityReferenceImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class EntityReferenceImpl *** 99,102 **** } } - --- 99,101 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/FilteredEventReader.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/FilteredEventReader.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/FilteredEventReader.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/FilteredEventReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FilteredEventReader.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FilteredEventReader.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class FilteredEventReader *** 72,78 **** while (!filter.accept(ret)); return ret; } ! public Object next() { try --- 72,78 ---- while (!filter.accept(ret)); return ret; } ! public Object next() { try *************** class FilteredEventReader *** 86,92 **** throw e2; } } ! public XMLEvent peek() throws XMLStreamException { --- 86,92 ---- throw e2; } } ! public XMLEvent peek() throws XMLStreamException { *************** class FilteredEventReader *** 98,104 **** while (!filter.accept(ret)); return ret; } ! public XMLEvent nextTag() throws XMLStreamException { --- 98,104 ---- while (!filter.accept(ret)); return ret; } ! public XMLEvent nextTag() throws XMLStreamException { *************** class FilteredEventReader *** 110,115 **** while (!filter.accept(ret)); return ret; } - - } --- 110,114 ---- while (!filter.accept(ret)); return ret; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/FilteredStreamReader.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/FilteredStreamReader.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/FilteredStreamReader.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/FilteredStreamReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FilteredStreamReader.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FilteredStreamReader.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.stream; *** 40,49 **** import javax.xml.stream.StreamFilter; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; ! import javax.xml.stream.util.ReaderDelegate; class FilteredStreamReader ! extends ReaderDelegate { final XMLStreamReader reader; --- 40,49 ---- import javax.xml.stream.StreamFilter; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; ! import javax.xml.stream.util.StreamReaderDelegate; class FilteredStreamReader ! extends StreamReaderDelegate { final XMLStreamReader reader; *************** class FilteredStreamReader *** 74,80 **** while (!filter.accept(reader)); return ret; } ! public int nextTag() throws XMLStreamException { --- 74,80 ---- while (!filter.accept(reader)); return ret; } ! public int nextTag() throws XMLStreamException { *************** class FilteredStreamReader *** 86,91 **** while (!filter.accept(reader)); return ret; } - - } --- 86,90 ---- while (!filter.accept(reader)); return ret; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/NamespaceImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/NamespaceImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/NamespaceImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/NamespaceImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NamespaceImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NamespaceImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.stream; *** 39,44 **** --- 39,45 ---- import java.io.IOException; import java.io.Writer; + import javax.xml.namespace.QName; import javax.xml.stream.Location; import javax.xml.stream.XMLStreamException; import javax.xml.stream.events.Namespace; *************** public class NamespaceImpl *** 55,66 **** protected final String prefix; protected final String uri; ! protected NamespaceImpl(Location location, String prefix, String uri) { super(location); this.prefix = prefix; this.uri = uri; } public int getEventType() --- 56,70 ---- protected final String prefix; protected final String uri; + protected final boolean specified; ! protected NamespaceImpl(Location location, String prefix, String uri, ! boolean specified) { super(location); this.prefix = prefix; this.uri = uri; + this.specified = specified; } public int getEventType() *************** public class NamespaceImpl *** 78,88 **** return uri; } public boolean isDefaultNamespaceDeclaration() { return (prefix == null || "".equals(prefix)); } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 82,115 ---- return uri; } + public boolean isSpecified() + { + return specified; + } + + public QName getName() + { + if (isDefaultNamespaceDeclaration()) + return new QName("", "xmlns", null); + else + return new QName("", prefix, "xmlns"); + } + + public String getDTDType() + { + return "CDATA"; + } + + public String getValue() + { + return uri; + } + public boolean isDefaultNamespaceDeclaration() { return (prefix == null || "".equals(prefix)); } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class NamespaceImpl *** 106,111 **** throw e2; } } - - } --- 133,137 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/NotationDeclarationImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/NotationDeclarationImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/NotationDeclarationImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/NotationDeclarationImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NotationDeclarationImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NotationDeclarationImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class NotationDeclarationImpl *** 86,92 **** { return systemId; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 86,92 ---- { return systemId; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class NotationDeclarationImpl *** 121,126 **** throw e2; } } - - } --- 121,125 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/ProcessingInstructionImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/ProcessingInstructionImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/ProcessingInstructionImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/ProcessingInstructionImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ProcessingInstructionImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ProcessingInstructionImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class ProcessingInstructionImpl *** 78,84 **** { return data; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 78,84 ---- { return data; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class ProcessingInstructionImpl *** 100,105 **** throw e2; } } - - } --- 100,104 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/SAXParser.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/SAXParser.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/SAXParser.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/SAXParser.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SAXParser.java -- Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SAXParser.java -- Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SAXParser *** 131,143 **** } // -- SAXParser -- ! public Parser getParser() throws SAXException { return null; } ! public XMLReader getXMLReader() throws SAXException { --- 131,143 ---- } // -- SAXParser -- ! public Parser getParser() throws SAXException { return null; } ! public XMLReader getXMLReader() throws SAXException { *************** public class SAXParser *** 365,375 **** } reader = parser; baseURI = systemId; ! if (xIncludeAware) reader = new XIncludeFilter(parser, systemId, namespaceAware, validating, true); ! if (contentHandler != null) contentHandler.setDocumentLocator(this); boolean startDocumentDone = false; --- 365,375 ---- } reader = parser; baseURI = systemId; ! if (xIncludeAware) reader = new XIncludeFilter(parser, systemId, namespaceAware, validating, true); ! if (contentHandler != null) contentHandler.setDocumentLocator(this); boolean startDocumentDone = false; *************** public class SAXParser *** 864,870 **** } // -- Locator2 -- ! public int getColumnNumber() { Location l = reader.getLocation(); --- 864,870 ---- } // -- Locator2 -- ! public int getColumnNumber() { Location l = reader.getLocation(); *************** public class SAXParser *** 888,894 **** Location l = reader.getLocation(); return l.getSystemId(); } ! public String getEncoding() { return encoding; --- 888,894 ---- Location l = reader.getLocation(); return l.getSystemId(); } ! public String getEncoding() { return encoding; *************** public class SAXParser *** 900,906 **** } // -- XMLResolver -- ! public Object resolveEntity(String publicId, String systemId, String baseURI, String namespace) throws XMLStreamException --- 900,906 ---- } // -- XMLResolver -- ! public Object resolveEntity(String publicId, String systemId, String baseURI, String namespace) throws XMLStreamException *************** public class SAXParser *** 1037,1041 **** pos++; } } ! } --- 1037,1041 ---- pos++; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/SAXParserFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/SAXParserFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/SAXParserFactory.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/SAXParserFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SAXParserFactory.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SAXParserFactory.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SAXParserFactory *** 92,104 **** features.put(name, value ? Boolean.TRUE : Boolean.FALSE); } ! public boolean getFeature(String name) ! throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException { if (!FEATURE_NAMES.contains(name)) throw new SAXNotSupportedException(name); Boolean value = (Boolean) features.get(name); return (value == null) ? false : value.booleanValue(); } ! } --- 92,104 ---- features.put(name, value ? Boolean.TRUE : Boolean.FALSE); } ! public boolean getFeature(String name) ! throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException { if (!FEATURE_NAMES.contains(name)) throw new SAXNotSupportedException(name); Boolean value = (Boolean) features.get(name); return (value == null) ? false : value.booleanValue(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/StartDocumentImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/StartDocumentImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/StartDocumentImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/StartDocumentImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StartDocumentImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StartDocumentImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class StartDocumentImpl *** 109,115 **** { return xmlVersion; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 109,115 ---- { return xmlVersion; } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class StartDocumentImpl *** 139,144 **** throw e2; } } - - } --- 139,143 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/StartElementImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/StartElementImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/StartElementImpl.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/StartElementImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StartElementImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StartElementImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class StartElementImpl *** 115,121 **** { return namespaceContext.getNamespaceURI(prefix); } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { --- 115,121 ---- { return namespaceContext.getNamespaceURI(prefix); } ! public void writeAsEncodedUnicode(Writer writer) throws XMLStreamException { *************** public class StartElementImpl *** 148,153 **** throw e2; } } - - } --- 148,152 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/UnicodeReader.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/UnicodeReader.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/UnicodeReader.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/UnicodeReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnicodeReader.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnicodeReader.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class UnicodeReader *** 201,205 **** } return buf; } ! } --- 201,205 ---- } return buf; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XIncludeFilter.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XIncludeFilter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XIncludeFilter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XIncludeFilter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XIncludeFilter.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XIncludeFilter.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.xml.parsers.ParserConfigura *** 54,60 **** import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; ! import javax.xml.stream.util.ReaderDelegate; import org.w3c.dom.Attr; import org.w3c.dom.Document; --- 54,60 ---- import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; ! import javax.xml.stream.util.StreamReaderDelegate; import org.w3c.dom.Attr; import org.w3c.dom.Document; *************** import org.xml.sax.SAXException; *** 81,87 **** * @author Chris Burdess */ class XIncludeFilter ! extends ReaderDelegate { static final String XINCLUDE_NS_URI = "http://www.w3.org/2001/XInclude"; --- 81,87 ---- * @author Chris Burdess */ class XIncludeFilter ! extends StreamReaderDelegate { static final String XINCLUDE_NS_URI = "http://www.w3.org/2001/XInclude"; *************** class XIncludeFilter *** 107,113 **** HashSet seen = new HashSet(); boolean backtracking; boolean lookahead; ! Reader includedText; char[] buf; int len = -1; --- 107,113 ---- HashSet seen = new HashSet(); boolean backtracking; boolean lookahead; ! Reader includedText; char[] buf; int len = -1; *************** class XIncludeFilter *** 677,683 **** String base = (String) getParent().getProperty("gnu.xml.stream.baseURI"); return (base == null) ? systemId : base; } ! boolean includeResource(String href, String parse, String xpointer, String encoding, String accept, String acceptLanguage) --- 677,683 ---- String base = (String) getParent().getProperty("gnu.xml.stream.baseURI"); return (base == null) ? systemId : base; } ! boolean includeResource(String href, String parse, String xpointer, String encoding, String accept, String acceptLanguage) *************** class XIncludeFilter *** 700,706 **** walker = null; current = null; backtracking = false; ! URLConnection connection = getURLConnection(href, accept, acceptLanguage); InputStream in = connection.getInputStream(); --- 700,706 ---- walker = null; current = null; backtracking = false; ! URLConnection connection = getURLConnection(href, accept, acceptLanguage); InputStream in = connection.getInputStream(); *************** class XIncludeFilter *** 927,931 **** } return null; } ! } --- 927,931 ---- } return null; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLEventAllocatorImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLEventAllocatorImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XMLEventAllocatorImpl *** 110,116 **** for (int i = 0; i < len; i++) namespaces.add(new NamespaceImpl(location, reader.getNamespacePrefix(i), ! reader.getNamespaceURI(i))); return new EndElementImpl(location, reader.getName(), namespaces); --- 110,117 ---- for (int i = 0; i < len; i++) namespaces.add(new NamespaceImpl(location, reader.getNamespacePrefix(i), ! reader.getNamespaceURI(i), ! false)); return new EndElementImpl(location, reader.getName(), namespaces); *************** public class XMLEventAllocatorImpl *** 158,164 **** for (int i = 0; i < len; i++) namespaces.add(new NamespaceImpl(location, reader.getNamespacePrefix(i), ! reader.getNamespaceURI(i))); len = reader.getAttributeCount(); List attributes = new LinkedList(); for (int i = 0; i < len; i++) --- 159,166 ---- for (int i = 0; i < len; i++) namespaces.add(new NamespaceImpl(location, reader.getNamespacePrefix(i), ! reader.getNamespaceURI(i), ! false)); len = reader.getAttributeCount(); List attributes = new LinkedList(); for (int i = 0; i < len; i++) *************** public class XMLEventAllocatorImpl *** 186,192 **** { return new XMLEventAllocatorImpl(); } ! protected boolean isWhitespace(String text) { int len = text.length(); --- 188,194 ---- { return new XMLEventAllocatorImpl(); } ! protected boolean isWhitespace(String text) { int len = text.length(); *************** public class XMLEventAllocatorImpl *** 198,203 **** } return true; } - - } --- 200,204 ---- } return true; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLEventFactoryImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLEventFactoryImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XMLEventFactoryImpl *** 81,87 **** new QName(namespaceURI, localName, prefix), value, "CDATA", true); } ! public Attribute createAttribute(String localName, String value) { return new AttributeImpl(location, --- 81,87 ---- new QName(namespaceURI, localName, prefix), value, "CDATA", true); } ! public Attribute createAttribute(String localName, String value) { return new AttributeImpl(location, *************** public class XMLEventFactoryImpl *** 98,109 **** public Namespace createNamespace(String namespaceURI) { return new NamespaceImpl(location, ! XMLConstants.DEFAULT_NS_PREFIX, namespaceURI); } public Namespace createNamespace(String prefix, String namespaceUri) { ! return new NamespaceImpl(location, prefix, namespaceUri); } public StartElement createStartElement(QName name, --- 98,111 ---- public Namespace createNamespace(String namespaceURI) { return new NamespaceImpl(location, ! XMLConstants.DEFAULT_NS_PREFIX, ! namespaceURI, ! true); } public Namespace createNamespace(String prefix, String namespaceUri) { ! return new NamespaceImpl(location, prefix, namespaceUri, true); } public StartElement createStartElement(QName name, *************** public class XMLEventFactoryImpl *** 115,121 **** createLinkedList(namespaces), null); } ! public StartElement createStartElement(String prefix, String namespaceUri, String localName) --- 117,123 ---- createLinkedList(namespaces), null); } ! public StartElement createStartElement(String prefix, String namespaceUri, String localName) *************** public class XMLEventFactoryImpl *** 153,159 **** createLinkedList(namespaces), context); } ! public EndElement createEndElement(QName name, Iterator namespaces) { --- 155,161 ---- createLinkedList(namespaces), context); } ! public EndElement createEndElement(QName name, Iterator namespaces) { *************** public class XMLEventFactoryImpl *** 169,175 **** new QName(namespaceUri, localName, prefix), Collections.EMPTY_LIST); } ! public EndElement createEndElement(String prefix, String namespaceUri, String localName, --- 171,177 ---- new QName(namespaceUri, localName, prefix), Collections.EMPTY_LIST); } ! public EndElement createEndElement(String prefix, String namespaceUri, String localName, *************** public class XMLEventFactoryImpl *** 213,219 **** return new StartDocumentImpl(location, null, encoding, version, standalone, true, true); } ! public StartDocument createStartDocument(String encoding, String version) { --- 215,221 ---- return new StartDocumentImpl(location, null, encoding, version, standalone, true, true); } ! public StartDocument createStartDocument(String encoding, String version) { *************** public class XMLEventFactoryImpl *** 263,268 **** ret.add(i.next()); return ret; } - - } --- 265,269 ---- ret.add(i.next()); return ret; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLEventImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLEventImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class XMLEventImpl *** 136,142 **** { return null; } ! public abstract void writeAsEncodedUnicode(Writer writer) throws XMLStreamException; --- 136,142 ---- { return null; } ! public abstract void writeAsEncodedUnicode(Writer writer) throws XMLStreamException; *************** public abstract class XMLEventImpl *** 192,199 **** buf.append(c); } } ! return (buf == null) ? text : buf.toString(); } } - --- 192,198 ---- buf.append(c); } } ! return (buf == null) ? text : buf.toString(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventReaderImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventReaderImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventReaderImpl.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventReaderImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLEventReaderImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLEventReaderImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XMLEventReaderImpl *** 102,108 **** return false; } } ! public XMLEvent peek() throws XMLStreamException { --- 102,108 ---- return false; } } ! public XMLEvent peek() throws XMLStreamException { *************** public class XMLEventReaderImpl *** 155,158 **** } } - --- 155,157 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventWriterImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventWriterImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLEventWriterImpl.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLEventWriterImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLEventWriterImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLEventWriterImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.xml.stream.events.XMLEvent; *** 62,68 **** public class XMLEventWriterImpl implements XMLEventWriter { ! protected final XMLStreamWriter writer; protected XMLEventWriterImpl(XMLStreamWriter writer) --- 62,68 ---- public class XMLEventWriterImpl implements XMLEventWriter { ! protected final XMLStreamWriter writer; protected XMLEventWriterImpl(XMLStreamWriter writer) *************** public class XMLEventWriterImpl *** 181,191 **** { writer.setNamespaceContext(context); } ! public NamespaceContext getNamespaceContext() { return writer.getNamespaceContext(); } - - } --- 181,190 ---- { writer.setNamespaceContext(context); } ! public NamespaceContext getNamespaceContext() { return writer.getNamespaceContext(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLInputFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLInputFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLInputFactoryImpl.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLInputFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLInputFactoryImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLInputFactoryImpl.java -- Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XMLInputFactoryImpl *** 91,97 **** { return createXMLStreamReader(null, reader); } ! public XMLStreamReader createXMLStreamReader(Source source) throws XMLStreamException { --- 91,97 ---- { return createXMLStreamReader(null, reader); } ! public XMLStreamReader createXMLStreamReader(Source source) throws XMLStreamException { *************** public class XMLInputFactoryImpl *** 114,126 **** replacingEntityReferences); return ret; } ! public XMLStreamReader createXMLStreamReader(InputStream in) throws XMLStreamException { return createXMLStreamReader(null, in); } ! public XMLStreamReader createXMLStreamReader(InputStream in, String encoding) throws XMLStreamException { --- 114,126 ---- replacingEntityReferences); return ret; } ! public XMLStreamReader createXMLStreamReader(InputStream in) throws XMLStreamException { return createXMLStreamReader(null, in); } ! public XMLStreamReader createXMLStreamReader(InputStream in, String encoding) throws XMLStreamException { *************** public class XMLInputFactoryImpl *** 175,208 **** XMLStreamReader sr = createXMLStreamReader(reader); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLEventReader createXMLEventReader(String systemId, Reader reader) throws XMLStreamException { XMLStreamReader sr = createXMLStreamReader(systemId, reader); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLEventReader createXMLEventReader(XMLStreamReader reader) throws XMLStreamException { return new XMLEventReaderImpl(reader, allocator, null); } ! public XMLEventReader createXMLEventReader(Source source) throws XMLStreamException { XMLStreamReader sr = createXMLStreamReader(source); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLEventReader createXMLEventReader(InputStream in) throws XMLStreamException { XMLStreamReader sr = createXMLStreamReader(in); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLEventReader createXMLEventReader(InputStream in, String encoding) throws XMLStreamException { --- 175,208 ---- XMLStreamReader sr = createXMLStreamReader(reader); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLEventReader createXMLEventReader(String systemId, Reader reader) throws XMLStreamException { XMLStreamReader sr = createXMLStreamReader(systemId, reader); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLEventReader createXMLEventReader(XMLStreamReader reader) throws XMLStreamException { return new XMLEventReaderImpl(reader, allocator, null); } ! public XMLEventReader createXMLEventReader(Source source) throws XMLStreamException { XMLStreamReader sr = createXMLStreamReader(source); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLEventReader createXMLEventReader(InputStream in) throws XMLStreamException { XMLStreamReader sr = createXMLStreamReader(in); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLEventReader createXMLEventReader(InputStream in, String encoding) throws XMLStreamException { *************** public class XMLInputFactoryImpl *** 216,222 **** XMLStreamReader sr = createXMLStreamReader(systemId, in); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLStreamReader createFilteredReader(XMLStreamReader reader, StreamFilter filter) throws XMLStreamException --- 216,222 ---- XMLStreamReader sr = createXMLStreamReader(systemId, in); return new XMLEventReaderImpl(sr, allocator, null); } ! public XMLStreamReader createFilteredReader(XMLStreamReader reader, StreamFilter filter) throws XMLStreamException *************** public class XMLInputFactoryImpl *** 240,246 **** { this.resolver = resolver; } ! public XMLReporter getXMLReporter() { return reporter; --- 240,246 ---- { this.resolver = resolver; } ! public XMLReporter getXMLReporter() { return reporter; *************** public class XMLInputFactoryImpl *** 327,333 **** name.equals("gnu.xml.stream.baseAware") || name.equals("gnu.xml.stream.xIncludeAware"); } ! public void setEventAllocator(XMLEventAllocator allocator) { this.allocator = allocator; --- 327,333 ---- name.equals("gnu.xml.stream.baseAware") || name.equals("gnu.xml.stream.xIncludeAware"); } ! public void setEventAllocator(XMLEventAllocator allocator) { this.allocator = allocator; *************** public class XMLInputFactoryImpl *** 393,398 **** } return in; } - - } --- 393,397 ---- } return in; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLOutputFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLOutputFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLOutputFactoryImpl.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLOutputFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLOutputFactoryImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLOutputFactoryImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XMLOutputFactoryImpl *** 149,155 **** } throw new UnsupportedOperationException(); } ! public void setProperty(String name, Object value) throws IllegalArgumentException { --- 149,155 ---- } throw new UnsupportedOperationException(); } ! public void setProperty(String name, Object value) throws IllegalArgumentException { *************** public class XMLOutputFactoryImpl *** 183,188 **** { prefixDefaulting = value; } - - } --- 183,187 ---- { prefixDefaulting = value; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLParser.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLParser.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLParser.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLParser.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLParser.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLParser.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import gnu.classpath.debug.TeeReader; *** 113,119 **** * @see http://www.w3.org/TR/REC-xml-names * @see http://www.w3.org/TR/xml-names11 * @see http://www.w3.org/TR/xmlbase/ ! * * @author Chris Burdess */ public class XMLParser --- 113,119 ---- * @see http://www.w3.org/TR/REC-xml-names * @see http://www.w3.org/TR/xml-names11 * @see http://www.w3.org/TR/xmlbase/ ! * * @author Chris Burdess */ public class XMLParser *************** public class XMLParser *** 168,174 **** * Stack of end-entity events to be reported. */ private LinkedList endEntityStack = new LinkedList(); ! /** * Current parser state within the main state machine. */ --- 168,174 ---- * Stack of end-entity events to be reported. */ private LinkedList endEntityStack = new LinkedList(); ! /** * Current parser state within the main state machine. */ *************** public class XMLParser *** 224,230 **** * Temporary Unicode character buffer used during character data reads. */ private int[] tmpBuf = new int[1024]; ! /** * The element content model for the current element. */ --- 224,230 ---- * Temporary Unicode character buffer used during character data reads. */ private int[] tmpBuf = new int[1024]; ! /** * The element content model for the current element. */ *************** public class XMLParser *** 682,688 **** String elementName = buf.toString(); return doctype.isAttributeDeclared(elementName, qn); } ! public String getCharacterEncodingScheme() { return xmlEncoding; --- 682,688 ---- String elementName = buf.toString(); return doctype.isAttributeDeclared(elementName, qn); } ! public String getCharacterEncodingScheme() { return xmlEncoding; *************** public class XMLParser *** 1022,1028 **** { return (event != XMLStreamConstants.END_DOCUMENT && event != -1); } ! public int next() throws XMLStreamException { --- 1022,1028 ---- { return (event != XMLStreamConstants.END_DOCUMENT && event != -1); } ! public int next() throws XMLStreamException { *************** public class XMLParser *** 1253,1259 **** { return input.read(b, off, len); } ! /** * Parsed character read. */ --- 1253,1259 ---- { return input.read(b, off, len); } ! /** * Parsed character read. */ *************** public class XMLParser *** 1415,1421 **** "U+" + Integer.toHexString(c)); } else if (!isChar(c)) ! error("illegal XML character", "U+" + Integer.toHexString(c)); buf.append(Character.toChars(c)); } --- 1415,1421 ---- "U+" + Integer.toHexString(c)); } else if (!isChar(c)) ! error("illegal XML character", "U+" + Integer.toHexString(c)); buf.append(Character.toChars(c)); } *************** public class XMLParser *** 1635,1641 **** // We can't use java.net.URL here to do the parsing, as it searches for // a protocol handler. A protocol handler may not be registered for the // URL scheme here. Do it manually. ! // // Set aside scheme and host portion of base URL String basePrefix = null; ci = base.indexOf(':'); --- 1635,1641 ---- // We can't use java.net.URL here to do the parsing, as it searches for // a protocol handler. A protocol handler may not be registered for the // URL scheme here. Do it manually. ! // // Set aside scheme and host portion of base URL String basePrefix = null; ci = base.indexOf(':'); *************** public class XMLParser *** 1780,1786 **** throws IOException, XMLStreamException { final int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; ! requireWhitespace(); require("version"); readEq(); --- 1780,1786 ---- throws IOException, XMLStreamException { final int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; ! requireWhitespace(); require("version"); readEq(); *************** public class XMLParser *** 1791,1799 **** input.xml11 = true; else throw new XMLStreamException("illegal XML version: " + xmlVersion); ! boolean white = tryWhitespace(); ! if (tryRead("encoding")) { if (!white) --- 1791,1799 ---- input.xml11 = true; else throw new XMLStreamException("illegal XML version: " + xmlVersion); ! boolean white = tryWhitespace(); ! if (tryRead("encoding")) { if (!white) *************** public class XMLParser *** 1802,1808 **** xmlEncoding = readLiteral(flags, false); white = tryWhitespace(); } ! if (tryRead("standalone")) { if (!white) --- 1802,1808 ---- xmlEncoding = readLiteral(flags, false); white = tryWhitespace(); } ! if (tryRead("standalone")) { if (!white) *************** public class XMLParser *** 1837,1843 **** ExternalIds ids = readExternalIds(false, true); doctype = this.new Doctype(rootName, ids.publicId, ids.systemId); ! // Parse internal subset first skipWhitespace(); if (tryRead('[')) --- 1837,1843 ---- ExternalIds ids = readExternalIds(false, true); doctype = this.new Doctype(rootName, ids.publicId, ids.systemId); ! // Parse internal subset first skipWhitespace(); if (tryRead('[')) *************** public class XMLParser *** 2075,2081 **** { int separator; ElementContentModel model = new ElementContentModel(); ! // Parse first content particle skipWhitespace(); model.addContentParticle(readContentParticle(acc)); --- 2075,2081 ---- { int separator; ElementContentModel model = new ElementContentModel(); ! // Parse first content particle skipWhitespace(); model.addContentParticle(readContentParticle(acc)); *************** public class XMLParser *** 2375,2381 **** int flags = LIT_ATTRIBUTE; String value = null, defaultType = null; boolean saved = expandPE; ! if (!"CDATA".equals(type)) flags |= LIT_NORMALIZE; --- 2375,2381 ---- int flags = LIT_ATTRIBUTE; String value = null, defaultType = null; boolean saved = expandPE; ! if (!"CDATA".equals(type)) flags |= LIT_NORMALIZE; *************** public class XMLParser *** 2599,2605 **** int c; int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; ExternalIds ids = new ExternalIds(); ! if (tryRead("PUBLIC")) { requireWhitespace(); --- 2599,2605 ---- int c; int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; ExternalIds ids = new ExternalIds(); ! if (tryRead("PUBLIC")) { requireWhitespace(); *************** public class XMLParser *** 3300,3306 **** */ private void readEq() throws IOException, XMLStreamException ! { skipWhitespace(); require('='); skipWhitespace(); --- 3300,3306 ---- */ private void readEq() throws IOException, XMLStreamException ! { skipWhitespace(); require('='); skipWhitespace(); *************** public class XMLParser *** 3569,3575 **** { return readNmtoken(isName, nmtokenBuf); } ! /** * Parses an NMTOKEN or Name production using the specified buffer. * @param isName if a Name, otherwise an NMTOKEN --- 3569,3575 ---- { return readNmtoken(isName, nmtokenBuf); } ! /** * Parses an NMTOKEN or Name production using the specified buffer. * @param isName if a Name, otherwise an NMTOKEN *************** public class XMLParser *** 4123,4129 **** (c >= 0x10000 && c < 0x110000) || c == 0xa || c == 0x9 || c == 0xd; } ! /** * Interns the specified text or not, depending on the value of * stringInterning. --- 4123,4129 ---- (c >= 0x10000 && c < 0x110000) || c == 0xa || c == 0x9 || c == 0xd; } ! /** * Interns the specified text or not, depending on the value of * stringInterning. *************** public class XMLParser *** 4141,4147 **** { error(message, null); } ! /** * Report a parsing error. */ --- 4141,4147 ---- { error(message, null); } ! /** * Report a parsing error. */ *************** public class XMLParser *** 4403,4409 **** { event = reader.next(); Location loc = reader.getLocation(); ! System.out.print(loc.getLineNumber() + ":" + loc.getColumnNumber() + " "); switch (event) { --- 4403,4409 ---- { event = reader.next(); Location loc = reader.getLocation(); ! System.out.print(loc.getLineNumber() + ":" + loc.getColumnNumber() + " "); switch (event) { *************** public class XMLParser *** 4579,4585 **** String uri = getNamespaceURI(prefix); if (uri == null && (auri == null || (input.xml11 && "".equals(auri)))) ! return true; if (uri != null) { if ("".equals(uri) && input.xml11 && "".equals(auri)) --- 4579,4585 ---- String uri = getNamespaceURI(prefix); if (uri == null && (auri == null || (input.xml11 && "".equals(auri)))) ! return true; if (uri != null) { if ("".equals(uri) && input.xml11 && "".equals(auri)) *************** public class XMLParser *** 4615,4621 **** buf.append(']'); return buf.toString(); } ! } /** --- 4615,4621 ---- buf.append(']'); return buf.toString(); } ! } /** *************** public class XMLParser *** 4661,4667 **** /** * Map of anonymous keys to comments. ! */ private final LinkedHashMap comments = new LinkedHashMap(); /** --- 4661,4667 ---- /** * Map of anonymous keys to comments. ! */ private final LinkedHashMap comments = new LinkedHashMap(); /** *************** public class XMLParser *** 4753,4759 **** if (inExternalSubset) externalEntities.add(name); } ! /** * Adds an entity declaration. * @param name the entity name --- 4753,4759 ---- if (inExternalSubset) externalEntities.add(name); } ! /** * Adds an entity declaration. * @param name the entity name *************** public class XMLParser *** 4916,4922 **** { return entries.iterator(); } ! } /** --- 4916,4922 ---- { return entries.iterator(); } ! } /** *************** public class XMLParser *** 4950,4956 **** static final int ANY = 1; static final int ELEMENT = 2; static final int MIXED = 3; ! int min; int max; final int type; --- 4950,4956 ---- static final int ANY = 1; static final int ELEMENT = 2; static final int MIXED = 3; ! int min; int max; final int type; *************** public class XMLParser *** 4963,4969 **** min = 1; max = 1; } ! } /** --- 4963,4969 ---- min = 1; max = 1; } ! } /** *************** public class XMLParser *** 4972,4985 **** class EmptyContentModel extends ContentModel { ! EmptyContentModel() { super(ContentModel.EMPTY); min = 0; max = 0; } ! } /** --- 4972,4985 ---- class EmptyContentModel extends ContentModel { ! EmptyContentModel() { super(ContentModel.EMPTY); min = 0; max = 0; } ! } /** *************** public class XMLParser *** 4988,5001 **** class AnyContentModel extends ContentModel { ! AnyContentModel() { super(ContentModel.ANY); min = 0; max = -1; } ! } /** --- 4988,5001 ---- class AnyContentModel extends ContentModel { ! AnyContentModel() { super(ContentModel.ANY); min = 0; max = -1; } ! } /** *************** public class XMLParser *** 5008,5014 **** LinkedList contentParticles; boolean or; String regex; // regular expression cache ! ElementContentModel() { super(ContentModel.ELEMENT); --- 5008,5014 ---- LinkedList contentParticles; boolean or; String regex; // regular expression cache ! ElementContentModel() { super(ContentModel.ELEMENT); *************** public class XMLParser *** 5019,5025 **** { contentParticles.add(cp); } ! } class ContentParticle --- 5019,5025 ---- { contentParticles.add(cp); } ! } class ContentParticle *************** public class XMLParser *** 5028,5034 **** int min = 1; int max = 1; Object content; // Name (String) or ElementContentModel ! } /** --- 5028,5034 ---- int min = 1; int max = 1; Object content; // Name (String) or ElementContentModel ! } /** *************** public class XMLParser *** 5039,5045 **** { private HashSet names; ! MixedContentModel() { super(ContentModel.MIXED); --- 5039,5045 ---- { private HashSet names; ! MixedContentModel() { super(ContentModel.MIXED); *************** public class XMLParser *** 5055,5061 **** { return names.contains(name); } ! } /** --- 5055,5061 ---- { return names.contains(name); } ! } /** *************** public class XMLParser *** 5063,5069 **** */ class AttributeDecl { ! /** * The attribute type (CDATA, ID, etc). */ --- 5063,5069 ---- */ class AttributeDecl { ! /** * The attribute type (CDATA, ID, etc). */ *************** public class XMLParser *** 5105,5111 **** this.values = values; this.external = external; } ! } /** --- 5105,5111 ---- this.values = values; this.external = external; } ! } /** *************** public class XMLParser *** 5114,5127 **** static class Input implements Location { ! int line = 1, markLine; int column, markColumn; int offset, markOffset; final String publicId, systemId, name; final boolean report; // report start- and end-entity final boolean normalize; // normalize CR, etc to LF ! InputStream in; Reader reader; UnicodeReader unicodeReader; --- 5114,5127 ---- static class Input implements Location { ! int line = 1, markLine; int column, markColumn; int offset, markOffset; final String publicId, systemId, name; final boolean report; // report start- and end-entity final boolean normalize; // normalize CR, etc to LF ! InputStream in; Reader reader; UnicodeReader unicodeReader; *************** public class XMLParser *** 5161,5172 **** } // -- Location -- ! public int getCharacterOffset() { return offset; } ! public int getColumnNumber() { return column; --- 5161,5172 ---- } // -- Location -- ! public int getCharacterOffset() { return offset; } ! public int getColumnNumber() { return column; *************** public class XMLParser *** 5295,5301 **** } // Detection of input encoding ! private static final int[] SIGNATURE_UCS_4_1234 = new int[] { 0x00, 0x00, 0x00, 0x3c }; private static final int[] SIGNATURE_UCS_4_4321 = --- 5295,5301 ---- } // Detection of input encoding ! private static final int[] SIGNATURE_UCS_4_1234 = new int[] { 0x00, 0x00, 0x00, 0x3c }; private static final int[] SIGNATURE_UCS_4_4321 = *************** public class XMLParser *** 5316,5322 **** new int[] { 0x3c, 0x3f, 0x78, 0x6d }; private static final int[] SIGNATURE_UTF_8_BOM = new int[] { 0xef, 0xbb, 0xbf }; ! /** * Detect the input encoding. */ --- 5316,5322 ---- new int[] { 0x3c, 0x3f, 0x78, 0x6d }; private static final int[] SIGNATURE_UTF_8_BOM = new int[] { 0xef, 0xbb, 0xbf }; ! /** * Detect the input encoding. */ *************** public class XMLParser *** 5351,5357 **** else if (equals(SIGNATURE_UCS_4_2143, signature) || equals(SIGNATURE_UCS_4_3412, signature)) throw new UnsupportedEncodingException("unsupported UCS-4 byte ordering"); ! // 2-byte encodings else if (equals(SIGNATURE_UCS_2_12, signature)) { --- 5351,5357 ---- else if (equals(SIGNATURE_UCS_4_2143, signature) || equals(SIGNATURE_UCS_4_3412, signature)) throw new UnsupportedEncodingException("unsupported UCS-4 byte ordering"); ! // 2-byte encodings else if (equals(SIGNATURE_UCS_2_12, signature)) { *************** public class XMLParser *** 5401,5407 **** } return true; } ! void setInputEncoding(String encoding) throws IOException { --- 5401,5407 ---- } return true; } ! void setInputEncoding(String encoding) throws IOException { *************** public class XMLParser *** 5432,5435 **** } } - --- 5432,5434 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLStreamWriterImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLStreamWriterImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XMLStreamWriterImpl *** 84,90 **** * in scope. */ protected NamespaceContext namespaceContext; ! /** * The stack of elements in scope. * Used to close the remaining elements. --- 84,90 ---- * in scope. */ protected NamespaceContext namespaceContext; ! /** * The stack of elements in scope. * Used to close the remaining elements. *************** public class XMLStreamWriterImpl *** 100,106 **** * Whether we are in an empty element. */ private boolean emptyElement; ! private NamespaceSupport namespaces; private int count = 0; --- 100,106 ---- * Whether we are in an empty element. */ private boolean emptyElement; ! private NamespaceSupport namespaces; private int count = 0; *************** public class XMLStreamWriterImpl *** 153,162 **** endStartElement(); namespaces.pushContext(); ! writer.write('<'); writer.write(localName); ! elements.addLast(new String[] { null, localName }); inStartElement = true; } --- 153,162 ---- endStartElement(); namespaces.pushContext(); ! writer.write('<'); writer.write(localName); ! elements.addLast(new String[] { null, localName }); inStartElement = true; } *************** public class XMLStreamWriterImpl *** 180,186 **** endStartElement(); namespaces.pushContext(); ! String prefix = getPrefix(namespaceURI); boolean isDeclared = (prefix != null); if (!isDeclared) --- 180,186 ---- endStartElement(); namespaces.pushContext(); ! String prefix = getPrefix(namespaceURI); boolean isDeclared = (prefix != null); if (!isDeclared) *************** public class XMLStreamWriterImpl *** 203,209 **** { writeNamespaceImpl(prefix, namespaceURI); } ! elements.addLast(new String[] { prefix, localName }); } catch (IOException e) --- 203,209 ---- { writeNamespaceImpl(prefix, namespaceURI); } ! elements.addLast(new String[] { prefix, localName }); } catch (IOException e) *************** public class XMLStreamWriterImpl *** 242,255 **** { if (namespaceURI != null && !isURI(namespaceURI)) throw new IllegalArgumentException("illegal URI: " + namespaceURI); ! if (prefix != null && !isNCName(prefix)) throw new IllegalArgumentException("illegal NCName: " + prefix); if (!isNCName(localName)) throw new IllegalArgumentException("illegal NCName: " + localName); endStartElement(); namespaces.pushContext(); ! String currentPrefix = getPrefix(namespaceURI); boolean isCurrent = prefix.equals(currentPrefix); writer.write('<'); --- 242,255 ---- { if (namespaceURI != null && !isURI(namespaceURI)) throw new IllegalArgumentException("illegal URI: " + namespaceURI); ! if (prefix != null && !isPrefix(prefix)) throw new IllegalArgumentException("illegal NCName: " + prefix); if (!isNCName(localName)) throw new IllegalArgumentException("illegal NCName: " + localName); endStartElement(); namespaces.pushContext(); ! String currentPrefix = getPrefix(namespaceURI); boolean isCurrent = prefix.equals(currentPrefix); writer.write('<'); *************** public class XMLStreamWriterImpl *** 263,269 **** { writeNamespaceImpl(prefix, namespaceURI); } ! elements.addLast(new String[] { prefix, localName }); inStartElement = true; } --- 263,269 ---- { writeNamespaceImpl(prefix, namespaceURI); } ! elements.addLast(new String[] { prefix, localName }); inStartElement = true; } *************** public class XMLStreamWriterImpl *** 394,400 **** { if (namespaceURI != null && !isURI(namespaceURI)) throw new IllegalArgumentException("illegal URI: " + namespaceURI); ! if (prefix != null && !isNCName(prefix)) throw new IllegalArgumentException("illegal NCName: " + prefix); if (!isNCName(localName)) throw new IllegalArgumentException("illegal NCName: " + localName); --- 394,400 ---- { if (namespaceURI != null && !isURI(namespaceURI)) throw new IllegalArgumentException("illegal URI: " + namespaceURI); ! if (prefix != null && !isPrefix(prefix)) throw new IllegalArgumentException("illegal NCName: " + prefix); if (!isNCName(localName)) throw new IllegalArgumentException("illegal NCName: " + localName); *************** public class XMLStreamWriterImpl *** 451,457 **** throw new IllegalArgumentException("illegal Name: " + localName); if (!isChars(value)) throw new IllegalArgumentException("illegal character: " + value); ! String prefix = getPrefix(namespaceURI); if (prefix == null) { --- 451,457 ---- throw new IllegalArgumentException("illegal Name: " + localName); if (!isChars(value)) throw new IllegalArgumentException("illegal character: " + value); ! String prefix = getPrefix(namespaceURI); if (prefix == null) { *************** public class XMLStreamWriterImpl *** 490,502 **** public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException { if (!inStartElement) throw new IllegalStateException(); try { if (!isURI(namespaceURI)) throw new IllegalArgumentException("illegal URI: " + namespaceURI); ! if (!isNCName(prefix)) throw new IllegalArgumentException("illegal NCName: " + prefix); } catch (IOException e) --- 490,507 ---- public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException { + if (prefix == null || "".equals(prefix) || "xmlns".equals(prefix)) + { + writeDefaultNamespace(namespaceURI); + return; + } if (!inStartElement) throw new IllegalStateException(); try { if (!isURI(namespaceURI)) throw new IllegalArgumentException("illegal URI: " + namespaceURI); ! if (!isPrefix(prefix)) throw new IllegalArgumentException("illegal NCName: " + prefix); } catch (IOException e) *************** public class XMLStreamWriterImpl *** 517,523 **** prefix = XMLConstants.DEFAULT_NS_PREFIX; setPrefix(prefix, namespaceURI); ! writer.write(' '); writer.write("xmlns"); if (!XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) --- 522,528 ---- prefix = XMLConstants.DEFAULT_NS_PREFIX; setPrefix(prefix, namespaceURI); ! writer.write(' '); writer.write("xmlns"); if (!XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) *************** public class XMLStreamWriterImpl *** 561,567 **** throw new IllegalArgumentException("illegal comment: " + data); endStartElement(); ! writer.write(" next) so that subsystems --- 150,183 ---- * malformed. * * @param fileOrURL If this is the name of a file which exists, ! * then its URL is returned. Otherwise the argument is returned. */ public static String getURL (String fileOrURL) { ! try { ! return fileNameToURL (fileOrURL); ! } catch (Exception e) { ! return fileOrURL; ! } } // note: cloneable, this is just copied; unguarded against mods ! private Dictionary pubidMapping; /** * Constructs a resolver which understands how to map PUBLIC identifiers * to other URIs, typically for local copies of standard DTD components. ! * * @param dict maps PUBLIC identifiers to URIs. This is not ! * copied; subsequent modifications will be reported through the ! * resolution operations. */ public Resolver (Dictionary dict) ! { pubidMapping = dict; } ! // FIXME: want notion of a "system default" resolver, presumably // loaded with all sorts of useful stuff. At the same time need // a notion of resolver chaining (failure --> next) so that subsystems *************** public class Resolver implements EntityR *** 191,238 **** * content typing. * * @param contentType the MIME content type that will be parsed; must ! * not be null. * @return the appropriate encoding, or null if the content type is ! * not text and there's no charset=... attribute */ static public String getEncoding (String contentType) { ! // currently a dumb parsing algorithm that works "mostly" and handles ! // ..anything...charset=ABC ! // ..anything...charset=ABC;otherAttr=DEF ! // ..anything...charset=ABC (comment);otherAttr=DEF ! // ..anything...charset= "ABC" (comment);otherAttr=DEF ! int temp; ! String encoding; ! String defValue = null; ! if (contentType.startsWith ("text/")) ! defValue = contentType.startsWith ("text/html") ! ? "ISO-8859-1" : "US-ASCII"; ! // Assumes 'charset' is only an attribute name, not part ! // of a value, comment, or other attribute name ! // ALSO assumes no escaped values like "\;" or "\)" ! if ((temp = contentType.indexOf ("charset")) != -1) { ! // strip out everything up to '=' ... ! temp = contentType.indexOf ('=', temp); ! if (temp == -1) ! return defValue; ! encoding = contentType.substring (temp + 1); ! // ... and any subsequent attributes ! if ((temp = encoding.indexOf (';')) != -1) ! encoding = encoding.substring (0, temp); ! // ... and any comments after value ! if ((temp = encoding.indexOf ('(')) != -1) ! encoding = encoding.substring (0, temp); ! // ... then whitespace, and any (double) quotes ! encoding = encoding.trim (); ! if (encoding.charAt (0) == '"') ! encoding = encoding.substring (1, encoding.length () - 1); ! } else ! encoding = defValue; ! return encoding; } --- 191,238 ---- * content typing. * * @param contentType the MIME content type that will be parsed; must ! * not be null. * @return the appropriate encoding, or null if the content type is ! * not text and there's no charset=... attribute */ static public String getEncoding (String contentType) { ! // currently a dumb parsing algorithm that works "mostly" and handles ! // ..anything...charset=ABC ! // ..anything...charset=ABC;otherAttr=DEF ! // ..anything...charset=ABC (comment);otherAttr=DEF ! // ..anything...charset= "ABC" (comment);otherAttr=DEF ! int temp; ! String encoding; ! String defValue = null; ! if (contentType.startsWith ("text/")) ! defValue = contentType.startsWith ("text/html") ! ? "ISO-8859-1" : "US-ASCII"; ! // Assumes 'charset' is only an attribute name, not part ! // of a value, comment, or other attribute name ! // ALSO assumes no escaped values like "\;" or "\)" ! if ((temp = contentType.indexOf ("charset")) != -1) { ! // strip out everything up to '=' ... ! temp = contentType.indexOf ('=', temp); ! if (temp == -1) ! return defValue; ! encoding = contentType.substring (temp + 1); ! // ... and any subsequent attributes ! if ((temp = encoding.indexOf (';')) != -1) ! encoding = encoding.substring (0, temp); ! // ... and any comments after value ! if ((temp = encoding.indexOf ('(')) != -1) ! encoding = encoding.substring (0, temp); ! // ... then whitespace, and any (double) quotes ! encoding = encoding.trim (); ! if (encoding.charAt (0) == '"') ! encoding = encoding.substring (1, encoding.length () - 1); ! } else ! encoding = defValue; ! return encoding; } *************** public class Resolver implements EntityR *** 243,263 **** public InputSource resolveEntity (String publicId, String systemId) throws IOException, SAXException { ! InputSource retval = null; ! String uri; ! if (publicId != null ! && ((uri = (String) pubidMapping.get (publicId)) != null)) { ! retval = new InputSource (uri); ! retval.setPublicId (publicId); ! } ! // Could do URN resolution here ! // URL resolution always done by parser ! // FIXME: chain to "next" resolver ! return retval; } } --- 243,263 ---- public InputSource resolveEntity (String publicId, String systemId) throws IOException, SAXException { ! InputSource retval = null; ! String uri; ! if (publicId != null ! && ((uri = (String) pubidMapping.get (publicId)) != null)) { ! retval = new InputSource (uri); ! retval.setPublicId (publicId); ! } ! // Could do URN resolution here ! // URL resolution always done by parser ! // FIXME: chain to "next" resolver ! return retval; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/util/SAXNullTransformerFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/util/SAXNullTransformerFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/util/SAXNullTransformerFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/util/SAXNullTransformerFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SAXNullTransformerFactory.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SAXNullTransformerFactory.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.helpers.LocatorImpl; *** 95,111 **** */ public class SAXNullTransformerFactory extends SAXTransformerFactory { ! ! private ErrorListener errListener; ! private URIResolver uriResolver; ! /** Default constructor */ public SAXNullTransformerFactory () { } ! // // only has stuff that makes sense with null transforms // ! /** * Returns true if the requested feature is supported. * All three kinds of input and output are accepted: --- 95,111 ---- */ public class SAXNullTransformerFactory extends SAXTransformerFactory { ! ! private ErrorListener errListener; ! private URIResolver uriResolver; ! /** Default constructor */ public SAXNullTransformerFactory () { } ! // // only has stuff that makes sense with null transforms // ! /** * Returns true if the requested feature is supported. * All three kinds of input and output are accepted: *************** public class SAXNullTransformerFactory e *** 172,185 **** public TransformerHandler newTransformerHandler () throws TransformerConfigurationException { ! NullTransformer transformer = new NullTransformer (); return transformer.handler; } // // Stuff that depends on XSLT support, which we don't provide // ! private static final String noXSLT = "No XSLT support"; /** Throws an exception (XSLT is not supported). */ public Transformer newTransformer (Source stylesheet) --- 172,185 ---- public TransformerHandler newTransformerHandler () throws TransformerConfigurationException { ! NullTransformer transformer = new NullTransformer (); return transformer.handler; } // // Stuff that depends on XSLT support, which we don't provide // ! private static final String noXSLT = "No XSLT support"; /** Throws an exception (XSLT is not supported). */ public Transformer newTransformer (Source stylesheet) *************** public class SAXNullTransformerFactory e *** 271,285 **** super (DomDocument.class); setHandler (new DomHandler (this, result)); } ! } static class DomHandler extends Consumer.Backdoor { ! ! private DOMResult result; ! DomHandler (DomConsumer c, DOMResult r) throws SAXException { --- 271,285 ---- super (DomDocument.class); setHandler (new DomHandler (this, result)); } ! } static class DomHandler extends Consumer.Backdoor { ! ! private DOMResult result; ! DomHandler (DomConsumer c, DOMResult r) throws SAXException { *************** public class SAXNullTransformerFactory e *** 294,326 **** super.endDocument (); result.setNode (getDocument ()); } ! } private static OutputStream getOutputStream (String uri) throws IOException { ! // JDK stupidity: file "protocol does not support output" ... if (uri.startsWith ("file:")) return new FileOutputStream (uri.substring (5)); ! // Otherwise ... ! URL url = new URL (uri); ! URLConnection conn = url.openConnection (); ! conn.setDoOutput (true); return conn.getOutputStream (); } ! static class NullHandler extends EventFilter implements TransformerHandler { ! ! private String systemId; ! private Transformer transformer; ! NullHandler (Transformer t) { transformer = t; --- 294,326 ---- super.endDocument (); result.setNode (getDocument ()); } ! } private static OutputStream getOutputStream (String uri) throws IOException { ! // JDK stupidity: file "protocol does not support output" ... if (uri.startsWith ("file:")) return new FileOutputStream (uri.substring (5)); ! // Otherwise ... ! URL url = new URL (uri); ! URLConnection conn = url.openConnection (); ! conn.setDoOutput (true); return conn.getOutputStream (); } ! static class NullHandler extends EventFilter implements TransformerHandler { ! ! private String systemId; ! private Transformer transformer; ! NullHandler (Transformer t) { transformer = t; *************** public class SAXNullTransformerFactory e *** 345,368 **** { if (result.getSystemId () != null) systemId = result.getSystemId (); ! try { ! // output to partial SAX event stream? if (result instanceof SAXResult) { ! SAXResult r = (SAXResult) result; ! setContentHandler (r.getHandler ()); setProperty (LEXICAL_HANDLER, r.getLexicalHandler ()); // DTD info is filtered out by javax.transform ! // output to DOM tree? } else if (result instanceof DOMResult) { ! DomTerminus out = new DomTerminus ((DOMResult) result); setContentHandler (out.getContentHandler ()); setProperty (LEXICAL_HANDLER, --- 345,368 ---- { if (result.getSystemId () != null) systemId = result.getSystemId (); ! try { ! // output to partial SAX event stream? if (result instanceof SAXResult) { ! SAXResult r = (SAXResult) result; ! setContentHandler (r.getHandler ()); setProperty (LEXICAL_HANDLER, r.getLexicalHandler ()); // DTD info is filtered out by javax.transform ! // output to DOM tree? } else if (result instanceof DOMResult) { ! DomTerminus out = new DomTerminus ((DOMResult) result); setContentHandler (out.getContentHandler ()); setProperty (LEXICAL_HANDLER, *************** public class SAXNullTransformerFactory e *** 378,385 **** } else if (result instanceof StreamResult) { ! StreamResult r = (StreamResult) result; ! XMLWriter out; // FIXME: when do output properties take effect? // encoding, standalone decl, xml/xhtml/... ... --- 378,385 ---- } else if (result instanceof StreamResult) { ! StreamResult r = (StreamResult) result; ! XMLWriter out; // FIXME: when do output properties take effect? // encoding, standalone decl, xml/xhtml/... ... *************** public class SAXNullTransformerFactory e *** 416,422 **** setDTDHandler (out); setProperty (DECL_HANDLER, out); } ! } catch (SAXException e) { --- 416,422 ---- setDTDHandler (out); setProperty (DECL_HANDLER, out); } ! } catch (SAXException e) { *************** public class SAXNullTransformerFactory e *** 434,440 **** extends LocatorImpl implements SourceLocator { ! LocatorAdapter (SAXParseException e) { setSystemId (e.getSystemId ()); --- 434,440 ---- extends LocatorImpl implements SourceLocator { ! LocatorAdapter (SAXParseException e) { setSystemId (e.getSystemId ()); *************** public class SAXNullTransformerFactory e *** 442,462 **** setLineNumber (e.getLineNumber ()); setColumnNumber (e.getColumnNumber ()); } ! } // another interface that adds no value static class ListenerAdapter implements ErrorHandler { ! ! NullTransformer transformer; ! ListenerAdapter (NullTransformer t) { transformer = t; } ! private TransformerException map (SAXParseException e) { return new TransformerException ( --- 442,462 ---- setLineNumber (e.getLineNumber ()); setColumnNumber (e.getColumnNumber ()); } ! } // another interface that adds no value static class ListenerAdapter implements ErrorHandler { ! ! NullTransformer transformer; ! ListenerAdapter (NullTransformer t) { transformer = t; } ! private TransformerException map (SAXParseException e) { return new TransformerException ( *************** public class SAXNullTransformerFactory e *** 514,549 **** static class NullTransformer extends Transformer { ! ! private URIResolver uriResolver; ! private Properties props = new Properties (); ! private Hashtable params = new Hashtable (7); ! ! ErrorListener errListener = null; ! TransformerException ex = null; ! NullHandler handler; ! NullTransformer () { super (); handler = new NullHandler (this); } ! public ErrorListener getErrorListener () { return errListener; } ! public void setErrorListener (ErrorListener e) { errListener = e; } ! public URIResolver getURIResolver () { return uriResolver; } ! public void setURIResolver (URIResolver u) { uriResolver = u; --- 514,549 ---- static class NullTransformer extends Transformer { ! ! private URIResolver uriResolver; ! private Properties props = new Properties (); ! private Hashtable params = new Hashtable (7); ! ! ErrorListener errListener = null; ! TransformerException ex = null; ! NullHandler handler; ! NullTransformer () { super (); handler = new NullHandler (this); } ! public ErrorListener getErrorListener () { return errListener; } ! public void setErrorListener (ErrorListener e) { errListener = e; } ! public URIResolver getURIResolver () { return uriResolver; } ! public void setURIResolver (URIResolver u) { uriResolver = u; *************** public class SAXNullTransformerFactory e *** 553,559 **** { props = (Properties) p.clone (); } ! public Properties getOutputProperties () { return (Properties) props.clone (); --- 553,559 ---- { props = (Properties) p.clone (); } ! public Properties getOutputProperties () { return (Properties) props.clone (); *************** public class SAXNullTransformerFactory e *** 563,569 **** { props.setProperty (name, value); } ! public String getOutputProperty (String name) { return props.getProperty (name); --- 563,569 ---- { props.setProperty (name, value); } ! public String getOutputProperty (String name) { return props.getProperty (name); *************** public class SAXNullTransformerFactory e *** 573,584 **** { params.clear (); } ! public void setParameter (String name, Object value) { props.put (name, value); } ! public Object getParameter (String name) { return props.get (name); --- 573,584 ---- { params.clear (); } ! public void setParameter (String name, Object value) { props.put (name, value); } ! public Object getParameter (String name) { return props.get (name); *************** public class SAXNullTransformerFactory e *** 589,617 **** { try { ! XMLReader producer; ! InputSource input; ! // Input from DOM? if (in instanceof DOMSource) { ! DOMSource source = (DOMSource) in; ! if (source.getNode () == null) throw new IllegalArgumentException ("no DOM node"); producer = new DomParser (source.getNode ()); input = null; ! // Input from SAX? } else if (in instanceof SAXSource) { ! SAXSource source = (SAXSource) in; ! producer = source.getXMLReader (); if (producer == null) producer = XMLReaderFactory.createXMLReader (); ! input = source.getInputSource (); if (input == null) { --- 589,617 ---- { try { ! XMLReader producer; ! InputSource input; ! // Input from DOM? if (in instanceof DOMSource) { ! DOMSource source = (DOMSource) in; ! if (source.getNode () == null) throw new IllegalArgumentException ("no DOM node"); producer = new DomParser (source.getNode ()); input = null; ! // Input from SAX? } else if (in instanceof SAXSource) { ! SAXSource source = (SAXSource) in; ! producer = source.getXMLReader (); if (producer == null) producer = XMLReaderFactory.createXMLReader (); ! input = source.getInputSource (); if (input == null) { *************** public class SAXNullTransformerFactory e *** 621,627 **** throw new IllegalArgumentException ( "missing SAX input"); } ! // Input from a stream or something? } else --- 621,627 ---- throw new IllegalArgumentException ( "missing SAX input"); } ! // Input from a stream or something? } else *************** public class SAXNullTransformerFactory e *** 631,637 **** if (input == null) throw new IllegalArgumentException ("missing input"); } ! // preserve original namespace prefixes try { --- 631,637 ---- if (input == null) throw new IllegalArgumentException ("missing input"); } ! // preserve original namespace prefixes try { *************** public class SAXNullTransformerFactory e *** 644,662 **** /* ignore */ // FIXME if we couldn't, "NsFix" stage before the output .. } ! // arrange the output handler.setResult (out); EventFilter.bind (producer, handler); ! // then parse ... single element pipeline producer.parse (input); ! } catch (IOException e) { throw new TransformerException ("transform failed", e); ! } catch (SAXException e) { --- 644,662 ---- /* ignore */ // FIXME if we couldn't, "NsFix" stage before the output .. } ! // arrange the output handler.setResult (out); EventFilter.bind (producer, handler); ! // then parse ... single element pipeline producer.parse (input); ! } catch (IOException e) { throw new TransformerException ("transform failed", e); ! } catch (SAXException e) { *************** public class SAXNullTransformerFactory e *** 664,670 **** throw ex; else throw new TransformerException ("transform failed", e); ! } finally { --- 664,670 ---- throw ex; else throw new TransformerException ("transform failed", e); ! } finally { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/util/XCat.java gcc-4.6.0/libjava/classpath/gnu/xml/util/XCat.java *** gcc-4.5.2/libjava/classpath/gnu/xml/util/XCat.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/util/XCat.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XCat.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XCat.java -- Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.xml.sax.helpers.XMLReaderFact *** 76,90 **** *

            This has three main operational modes. The primary intended mode is * to create a resolver, then preloading it with one or more site-standard * catalogs before using it with one or more SAX parsers:

            !  *	XCat	catalog = new XCat ();
            !  *	catalog.setErrorHandler (diagnosticErrorHandler);
            !  *	catalog.loadCatalog ("file:/local/catalogs/catalog.cat");
            !  *	catalog.loadCatalog ("http://shared/catalog.cat");
            !  *	...
            !  *	catalog.disableLoading ();
            !  *	parser1.setEntityResolver (catalog);
            !  *	parser2.setEntityResolver (catalog);
            !  *	...
            * *

            A second mode is to arrange that your application uses instances of * this class as its entity resolver, and automatically loads catalogs --- 76,90 ---- *

            This has three main operational modes. The primary intended mode is * to create a resolver, then preloading it with one or more site-standard * catalogs before using it with one or more SAX parsers:

            !  *      XCat    catalog = new XCat ();
            !  *      catalog.setErrorHandler (diagnosticErrorHandler);
            !  *      catalog.loadCatalog ("file:/local/catalogs/catalog.cat");
            !  *      catalog.loadCatalog ("http://shared/catalog.cat");
            !  *      ...
            !  *      catalog.disableLoading ();
            !  *      parser1.setEntityResolver (catalog);
            !  *      parser2.setEntityResolver (catalog);
            !  *      ...
            * *

            A second mode is to arrange that your application uses instances of * this class as its entity resolver, and automatically loads catalogs *************** import org.xml.sax.helpers.XMLReaderFact *** 127,151 **** */ public class XCat implements EntityResolver2 { ! private Catalog catalogs []; ! private boolean usingPublic = true; ! private boolean loadingPermitted = true; ! private boolean unified = true; ! private String parserClass; ! private ErrorHandler errorHandler; ! // private EntityResolver next; // chain to next if we fail... // // NOTE: This is a straightforward implementation, and if // there are lots of "nextCatalog" or "delegate*" entries // in use, two tweaks would be worth considering: // ! // - Centralize some sort of cache (key by URI) for individual ! // resolvers. That'd avoid multiple copies of a given catalog. // ! // - Have resolution track what catalogs (+modes) have been ! // searched. This would support loop detection. // --- 127,151 ---- */ public class XCat implements EntityResolver2 { ! private Catalog catalogs []; ! private boolean usingPublic = true; ! private boolean loadingPermitted = true; ! private boolean unified = true; ! private String parserClass; ! private ErrorHandler errorHandler; ! // private EntityResolver next; // chain to next if we fail... // // NOTE: This is a straightforward implementation, and if // there are lots of "nextCatalog" or "delegate*" entries // in use, two tweaks would be worth considering: // ! // - Centralize some sort of cache (key by URI) for individual ! // resolvers. That'd avoid multiple copies of a given catalog. // ! // - Have resolution track what catalogs (+modes) have been ! // searched. This would support loop detection. // *************** public class XCat implements EntityResol *** 170,176 **** */ public XCat (String uri) throws SAXException, IOException ! { loadCatalog (uri); } /** --- 170,176 ---- */ public XCat (String uri) throws SAXException, IOException ! { loadCatalog (uri); } /** *************** public class XCat implements EntityResol *** 188,194 **** * *

            Note that catalogs referenced by this one will not be loaded * at this time. Catalogs referenced through nextCatalog ! * or delegate* elements are normally loaded only if needed. * * @see #setErrorHandler * @see #setParserClass --- 188,194 ---- * *

            Note that catalogs referenced by this one will not be loaded * at this time. Catalogs referenced through nextCatalog ! * or delegate* elements are normally loaded only if needed. * * @see #setErrorHandler * @see #setParserClass *************** public class XCat implements EntityResol *** 197,240 **** * @param uri absolute URI for the catalog file. * * @exception IOException As thrown by the parser, typically to ! * indicate problems reading data from that URI. * @exception SAXException As thrown by the parser, typically to ! * indicate problems parsing data from that URI. It may also ! * be thrown if the parser doesn't support necessary handlers. * @exception IllegalStateException When attempting to load a ! * catalog after loading has been {@link #disableLoading disabled}, ! * such as after any entity or URI lookup has been performed. */ public synchronized void loadCatalog (String uri) throws SAXException, IOException { ! Catalog catalog; ! int index = -1; ! if (!loadingPermitted) ! throw new IllegalStateException (); ! ! uri = normalizeURI (uri); ! if (catalogs != null) { ! // maybe just reload ! for (index = 0; index < catalogs.length; index++) ! if (uri.equals (catalogs [index].catalogURI)) ! break; ! } ! catalog = loadCatalog (parserClass, errorHandler, uri, unified); ! // add to list of catalogs ! if (catalogs == null) { ! index = 0; ! catalogs = new Catalog [1]; ! } else if (index == catalogs.length) { ! Catalog tmp []; ! tmp = new Catalog [index + 1]; ! System.arraycopy (catalogs, 0, tmp, 0, index); ! catalogs = tmp; ! } ! catalogs [index] = catalog; } --- 197,240 ---- * @param uri absolute URI for the catalog file. * * @exception IOException As thrown by the parser, typically to ! * indicate problems reading data from that URI. * @exception SAXException As thrown by the parser, typically to ! * indicate problems parsing data from that URI. It may also ! * be thrown if the parser doesn't support necessary handlers. * @exception IllegalStateException When attempting to load a ! * catalog after loading has been {@link #disableLoading disabled}, ! * such as after any entity or URI lookup has been performed. */ public synchronized void loadCatalog (String uri) throws SAXException, IOException { ! Catalog catalog; ! int index = -1; ! if (!loadingPermitted) ! throw new IllegalStateException (); ! uri = normalizeURI (uri); ! if (catalogs != null) { ! // maybe just reload ! for (index = 0; index < catalogs.length; index++) ! if (uri.equals (catalogs [index].catalogURI)) ! break; ! } ! catalog = loadCatalog (parserClass, errorHandler, uri, unified); ! // add to list of catalogs ! if (catalogs == null) { ! index = 0; ! catalogs = new Catalog [1]; ! } else if (index == catalogs.length) { ! Catalog tmp []; ! ! tmp = new Catalog [index + 1]; ! System.arraycopy (catalogs, 0, tmp, 0, index); ! catalogs = tmp; ! } ! catalogs [index] = catalog; } *************** public class XCat implements EntityResol *** 251,288 **** * @param publicId Either a normalized public ID, or null. * @param baseURI Absolute base URI associated with systemId. * @param systemId URI found in entity declaration (may be ! * relative to baseURI). * * @return Input source for accessing the external entity, or null ! * if no mapping was found. The input source may have opened ! * the stream, and will have a fully resolved URI. * * @see #getExternalSubset */ public InputSource resolveEntity ( ! String name, // UNUSED ... systemId is always non-null ! String publicId, ! String baseURI, // UNUSED ... it just lets sysId be relative ! String systemId ) throws SAXException, IOException { ! if (loadingPermitted) ! disableLoading (); ! try { ! // steps as found in OASIS XML catalog spec 7.1.2 ! // steps 1, 8 involve looping over the list of catalogs ! for (int i = 0; i < catalogs.length; i++) { ! InputSource retval; ! retval = catalogs [i].resolve (usingPublic, publicId, systemId); ! if (retval != null) ! return retval; ! } ! } catch (DoneDelegation x) { ! // done! ! } ! // step 9 involves returning "no match" ! return null; } --- 251,288 ---- * @param publicId Either a normalized public ID, or null. * @param baseURI Absolute base URI associated with systemId. * @param systemId URI found in entity declaration (may be ! * relative to baseURI). * * @return Input source for accessing the external entity, or null ! * if no mapping was found. The input source may have opened ! * the stream, and will have a fully resolved URI. * * @see #getExternalSubset */ public InputSource resolveEntity ( ! String name, // UNUSED ... systemId is always non-null ! String publicId, ! String baseURI, // UNUSED ... it just lets sysId be relative ! String systemId ) throws SAXException, IOException { ! if (loadingPermitted) ! disableLoading (); ! try { ! // steps as found in OASIS XML catalog spec 7.1.2 ! // steps 1, 8 involve looping over the list of catalogs ! for (int i = 0; i < catalogs.length; i++) { ! InputSource retval; ! retval = catalogs [i].resolve (usingPublic, publicId, systemId); ! if (retval != null) ! return retval; ! } ! } catch (DoneDelegation x) { ! // done! ! } ! // step 9 involves returning "no match" ! return null; } *************** public class XCat implements EntityResol *** 302,329 **** * certain well formedess errors. * * @param name Name of the document element, either as declared in ! * a DOCTYPE declaration or as observed in the text. * @param baseURI Document's base URI (absolute). * * @return Input source for accessing the external subset, or null ! * if no mapping was found. The input source may have opened ! * the stream, and will have a fully resolved URI. */ public InputSource getExternalSubset (String name, String baseURI) throws SAXException, IOException { ! if (loadingPermitted) ! disableLoading (); ! try { ! for (int i = 0; i < catalogs.length; i++) { ! InputSource retval = catalogs [i].getExternalSubset (name); ! if (retval != null) ! return retval; ! } ! } catch (DoneDelegation x) { ! // done! ! } ! return null; } --- 302,329 ---- * certain well formedess errors. * * @param name Name of the document element, either as declared in ! * a DOCTYPE declaration or as observed in the text. * @param baseURI Document's base URI (absolute). * * @return Input source for accessing the external subset, or null ! * if no mapping was found. The input source may have opened ! * the stream, and will have a fully resolved URI. */ public InputSource getExternalSubset (String name, String baseURI) throws SAXException, IOException { ! if (loadingPermitted) ! disableLoading (); ! try { ! for (int i = 0; i < catalogs.length; i++) { ! InputSource retval = catalogs [i].getExternalSubset (name); ! if (retval != null) ! return retval; ! } ! } catch (DoneDelegation x) { ! // done! ! } ! return null; } *************** public class XCat implements EntityResol *** 335,357 **** * *

            The functional limitations of this interface include:

              * ! *
            • Since system IDs will be absolutized before the resolver ! * sees them, matching against relative URIs won't work. ! * This may affect system, rewriteSystem, ! * and delegateSystem catalog entries. * ! *
            • Because of that absolutization, documents declaring entities ! * with system IDs using URI schemes that the JVM does not recognize ! * may be unparsable. URI schemes such as file:/, ! * http://, https://, and ftp:// ! * will usually work reliably. * ! *
            • Because missing external subsets can't be provided, the ! * doctype catalog entries will be ignored. ! * (The {@link #getExternalSubset getExternalSubset()} method is ! * a "New Style" resolution option.) * ! *
            * *

            Applications can tell whether this limited functionality will be * used: if the feature flag associated with the {@link EntityResolver2} --- 335,357 ---- * *

            The functional limitations of this interface include:

              * ! *
            • Since system IDs will be absolutized before the resolver ! * sees them, matching against relative URIs won't work. ! * This may affect system, rewriteSystem, ! * and delegateSystem catalog entries. * ! *
            • Because of that absolutization, documents declaring entities ! * with system IDs using URI schemes that the JVM does not recognize ! * may be unparsable. URI schemes such as file:/, ! * http://, https://, and ftp:// ! * will usually work reliably. * ! *
            • Because missing external subsets can't be provided, the ! * doctype catalog entries will be ignored. ! * (The {@link #getExternalSubset getExternalSubset()} method is ! * a "New Style" resolution option.) * ! *
            * *

            Applications can tell whether this limited functionality will be * used: if the feature flag associated with the {@link EntityResolver2} *************** public class XCat implements EntityResol *** 365,377 **** * @param systemId Always an absolute URI. * * @return Input source for accessing the external entity, or null ! * if no mapping was found. The input source may have opened ! * the stream, and will have a fully resolved URI. */ final public InputSource resolveEntity (String publicId, String systemId) throws SAXException, IOException { ! return resolveEntity (null, publicId, null, systemId); } --- 365,377 ---- * @param systemId Always an absolute URI. * * @return Input source for accessing the external entity, or null ! * if no mapping was found. The input source may have opened ! * the stream, and will have a fully resolved URI. */ final public InputSource resolveEntity (String publicId, String systemId) throws SAXException, IOException { ! return resolveEntity (null, publicId, null, systemId); } *************** public class XCat implements EntityResol *** 398,437 **** * @see #setUnified * * @param baseURI The relevant base URI as specified by the XML Base ! * specification. This recognizes xml:base attributes ! * as overriding the actual (physical) base URI. * @param uri Either an absolute URI, or one relative to baseURI * * @return Input source for accessing the mapped URI, or null ! * if no mapping was found. The input source may have opened ! * the stream, and will have a fully resolved URI. */ public InputSource resolveURI (String baseURI, String uri) throws SAXException, IOException { ! if (loadingPermitted) ! disableLoading (); ! // NOTE: baseURI isn't used here, but caller MUST have it, ! // and heuristics _might_ use it in the future ... plus, ! // it's symmetric with resolveEntity (). ! // steps 1, 6 involve looping ! try { ! for (int i = 0; i < catalogs.length; i++) { ! InputSource tmp = catalogs [i].resolveURI (uri); ! if (tmp != null) ! return tmp; ! } ! } catch (DoneDelegation x) { ! // done ! } ! // step 7 reports no match ! return null; } ! /** * Records that catalog loading is no longer permitted. * Loading is automatically disabled when lookups are performed, * and should be manually disabled when startDTD() (or --- 398,437 ---- * @see #setUnified * * @param baseURI The relevant base URI as specified by the XML Base ! * specification. This recognizes xml:base attributes ! * as overriding the actual (physical) base URI. * @param uri Either an absolute URI, or one relative to baseURI * * @return Input source for accessing the mapped URI, or null ! * if no mapping was found. The input source may have opened ! * the stream, and will have a fully resolved URI. */ public InputSource resolveURI (String baseURI, String uri) throws SAXException, IOException { ! if (loadingPermitted) ! disableLoading (); ! // NOTE: baseURI isn't used here, but caller MUST have it, ! // and heuristics _might_ use it in the future ... plus, ! // it's symmetric with resolveEntity (). ! // steps 1, 6 involve looping ! try { ! for (int i = 0; i < catalogs.length; i++) { ! InputSource tmp = catalogs [i].resolveURI (uri); ! if (tmp != null) ! return tmp; ! } ! } catch (DoneDelegation x) { ! // done ! } ! // step 7 reports no match ! return null; } ! /** * Records that catalog loading is no longer permitted. * Loading is automatically disabled when lookups are performed, * and should be manually disabled when startDTD() (or *************** public class XCat implements EntityResol *** 440,451 **** */ public synchronized void disableLoading () { ! // NOTE: this method and loadCatalog() are synchronized ! // so that it's impossible to load (top level) catalogs ! // after lookups start. Likewise, deferred loading is also ! // synchronized (for "next" and delegated catalogs) to ! // ensure that parsers can share resolvers. ! loadingPermitted = false; } --- 440,451 ---- */ public synchronized void disableLoading () { ! // NOTE: this method and loadCatalog() are synchronized ! // so that it's impossible to load (top level) catalogs ! // after lookups start. Likewise, deferred loading is also ! // synchronized (for "next" and delegated catalogs) to ! // ensure that parsers can share resolvers. ! loadingPermitted = false; } *************** public class XCat implements EntityResol *** 457,468 **** * @see #setErrorHandler */ public ErrorHandler getErrorHandler () ! { return errorHandler; } /** * Assigns the error handler used to report catalog errors. * These errors may come either from the SAX2 parser or ! * from the catalog parsing code driven by the parser. * *

            If you're sharing the resolver between parsers, don't * change this once lookups have begun. --- 457,468 ---- * @see #setErrorHandler */ public ErrorHandler getErrorHandler () ! { return errorHandler; } /** * Assigns the error handler used to report catalog errors. * These errors may come either from the SAX2 parser or ! * from the catalog parsing code driven by the parser. * *

            If you're sharing the resolver between parsers, don't * change this once lookups have begun. *************** public class XCat implements EntityResol *** 470,479 **** * @see #getErrorHandler * * @param parser The error handler, or null saying to use the default ! * (no diagnostics, and only fatal errors terminate loading). */ public void setErrorHandler (ErrorHandler handler) ! { errorHandler = handler; } /** --- 470,479 ---- * @see #getErrorHandler * * @param parser The error handler, or null saying to use the default ! * (no diagnostics, and only fatal errors terminate loading). */ public void setErrorHandler (ErrorHandler handler) ! { errorHandler = handler; } /** *************** public class XCat implements EntityResol *** 482,488 **** * @see #setParserClass */ public String getParserClass () ! { return parserClass; } /** * Names the SAX2 parser class used to parse catalogs. --- 482,488 ---- * @see #setParserClass */ public String getParserClass () ! { return parserClass; } /** * Names the SAX2 parser class used to parse catalogs. *************** public class XCat implements EntityResol *** 498,507 **** * @see #getParserClass * * @param parser The parser class name, or null saying to use the ! * system default SAX2 parser. */ public void setParserClass (String parser) ! { parserClass = parser; } /** --- 498,507 ---- * @see #getParserClass * * @param parser The parser class name, or null saying to use the ! * system default SAX2 parser. */ public void setParserClass (String parser) ! { parserClass = parser; } /** *************** public class XCat implements EntityResol *** 527,533 **** * @see #setUnified */ public boolean isUnified () ! { return unified; } /** * Assigns the value of the flag returned by {@link #isUnified}. --- 527,533 ---- * @see #setUnified */ public boolean isUnified () ! { return unified; } /** * Assigns the value of the flag returned by {@link #isUnified}. *************** public class XCat implements EntityResol *** 540,546 **** * @param value new flag setting */ public void setUnified (boolean value) ! { unified = value; } /** --- 540,546 ---- * @param value new flag setting */ public void setUnified (boolean value) ! { unified = value; } /** *************** public class XCat implements EntityResol *** 556,562 **** * @see #setUsingPublic */ public boolean isUsingPublic () ! { return usingPublic; } /** * Specifies which catalog search mode is used. --- 556,562 ---- * @see #setUsingPublic */ public boolean isUsingPublic () ! { return usingPublic; } /** * Specifies which catalog search mode is used. *************** public class XCat implements EntityResol *** 572,721 **** * @see #isUsingPublic * * @param value true to always use public identifier mappings, ! * false to only use them for system ids using the urn:publicid: ! * URI scheme. */ public void setUsingPublic (boolean value) ! { usingPublic = value; } // hmm, what's this do? :) private static Catalog loadCatalog ( ! String parserClass, ! ErrorHandler eh, ! String uri, ! boolean unified ) throws SAXException, IOException { ! XMLReader parser; ! Loader loader; ! boolean doesIntern = false; ! if (parserClass == null) ! parser = XMLReaderFactory.createXMLReader (); ! else ! parser = XMLReaderFactory.createXMLReader (parserClass); ! if (eh != null) ! parser.setErrorHandler (eh); ! // resolve-dtd-entities is at default value (unrecognized == true) ! try { ! doesIntern = parser.getFeature ( ! "http://xml.org/sax/features/string-interning"); ! } catch (SAXNotRecognizedException e) { } ! loader = new Loader (doesIntern, eh, unified); ! loader.cat.parserClass = parserClass; ! loader.cat.catalogURI = uri; ! parser.setContentHandler (loader); ! parser.setProperty ( ! "http://xml.org/sax/properties/declaration-handler", ! loader); ! parser.setProperty ( ! "http://xml.org/sax/properties/lexical-handler", ! loader); ! parser.parse (uri); ! return loader.cat; } // perform one or both the normalizations for public ids private static String normalizePublicId (boolean full, String publicId) { ! if (publicId.startsWith ("urn:publicid:")) { ! CPStringBuilder buf = new CPStringBuilder (); ! char chars [] = publicId.toCharArray (); boolean hasbug = false; ! for (int i = 13; i < chars.length; i++) { ! switch (chars [i]) { ! case '+': buf.append (' '); continue; ! case ':': buf.append ("//"); continue; ! case ';': buf.append ("::"); continue; ! case '%': // FIXME unhex that char! meanwhile, warn and fallthrough ... ! hasbug = true; ! default: buf.append (chars [i]); continue; ! } ! } ! publicId = buf.toString (); if (hasbug) System.err.println ("nyet unhexing public id: " + publicId); ! full = true; ! } ! // SAX parsers do everything except that URN mapping, but ! // we can't trust other sources to normalize correctly ! if (full) { ! StringTokenizer tokens; ! String token; ! tokens = new StringTokenizer (publicId, " \r\n"); ! publicId = null; ! while (tokens.hasMoreTokens ()) { ! if (publicId == null) ! publicId = tokens.nextToken (); ! else ! publicId += " " + tokens.nextToken (); ! } ! } ! return publicId; } private static boolean isUriExcluded (int c) ! { return c <= 0x20 || c >= 0x7f || "\"<>^`{|}".indexOf (c) != -1; } private static int hexNibble (int c) { ! if (c < 10) ! return c + '0'; ! return ('a' - 10) + c; } // handles URIs with "excluded" characters private static String normalizeURI (String systemId) { ! int length = systemId.length (); ! for (int i = 0; i < length; i++) { ! char c = systemId.charAt (i); ! // escape non-ASCII plus "excluded" characters ! if (isUriExcluded (c)) { ! byte buf []; ! ByteArrayOutputStream out; ! int b; ! // a JVM that doesn't know UTF8 and 8859_1 is unusable! ! try { ! buf = systemId.getBytes ("UTF8"); ! out = new ByteArrayOutputStream (buf.length + 10); ! for (i = 0; i < buf.length; i++) { ! b = buf [i] & 0x0ff; ! if (isUriExcluded (b)) { ! out.write ((int) '%'); ! out.write (hexNibble (b >> 4)); ! out.write (hexNibble (b & 0x0f)); ! } else ! out.write (b); ! } ! return out.toString ("8859_1"); ! } catch (IOException e) { ! throw new RuntimeException ( ! "can't normalize URI: " + e.getMessage ()); ! } ! } ! } ! return systemId; } // thrown to mark authoritative end of a search private static class DoneDelegation extends SAXException { ! DoneDelegation () { } } --- 572,721 ---- * @see #isUsingPublic * * @param value true to always use public identifier mappings, ! * false to only use them for system ids using the urn:publicid: ! * URI scheme. */ public void setUsingPublic (boolean value) ! { usingPublic = value; } // hmm, what's this do? :) private static Catalog loadCatalog ( ! String parserClass, ! ErrorHandler eh, ! String uri, ! boolean unified ) throws SAXException, IOException { ! XMLReader parser; ! Loader loader; ! boolean doesIntern = false; ! if (parserClass == null) ! parser = XMLReaderFactory.createXMLReader (); ! else ! parser = XMLReaderFactory.createXMLReader (parserClass); ! if (eh != null) ! parser.setErrorHandler (eh); ! // resolve-dtd-entities is at default value (unrecognized == true) ! try { ! doesIntern = parser.getFeature ( ! "http://xml.org/sax/features/string-interning"); ! } catch (SAXNotRecognizedException e) { } ! loader = new Loader (doesIntern, eh, unified); ! loader.cat.parserClass = parserClass; ! loader.cat.catalogURI = uri; ! parser.setContentHandler (loader); ! parser.setProperty ( ! "http://xml.org/sax/properties/declaration-handler", ! loader); ! parser.setProperty ( ! "http://xml.org/sax/properties/lexical-handler", ! loader); ! parser.parse (uri); ! return loader.cat; } // perform one or both the normalizations for public ids private static String normalizePublicId (boolean full, String publicId) { ! if (publicId.startsWith ("urn:publicid:")) { ! CPStringBuilder buf = new CPStringBuilder (); ! char chars [] = publicId.toCharArray (); boolean hasbug = false; ! for (int i = 13; i < chars.length; i++) { ! switch (chars [i]) { ! case '+': buf.append (' '); continue; ! case ':': buf.append ("//"); continue; ! case ';': buf.append ("::"); continue; ! case '%': // FIXME unhex that char! meanwhile, warn and fallthrough ... ! hasbug = true; ! default: buf.append (chars [i]); continue; ! } ! } ! publicId = buf.toString (); if (hasbug) System.err.println ("nyet unhexing public id: " + publicId); ! full = true; ! } ! // SAX parsers do everything except that URN mapping, but ! // we can't trust other sources to normalize correctly ! if (full) { ! StringTokenizer tokens; ! String token; ! tokens = new StringTokenizer (publicId, " \r\n"); ! publicId = null; ! while (tokens.hasMoreTokens ()) { ! if (publicId == null) ! publicId = tokens.nextToken (); ! else ! publicId += " " + tokens.nextToken (); ! } ! } ! return publicId; } private static boolean isUriExcluded (int c) ! { return c <= 0x20 || c >= 0x7f || "\"<>^`{|}".indexOf (c) != -1; } private static int hexNibble (int c) { ! if (c < 10) ! return c + '0'; ! return ('a' - 10) + c; } // handles URIs with "excluded" characters private static String normalizeURI (String systemId) { ! int length = systemId.length (); ! for (int i = 0; i < length; i++) { ! char c = systemId.charAt (i); ! // escape non-ASCII plus "excluded" characters ! if (isUriExcluded (c)) { ! byte buf []; ! ByteArrayOutputStream out; ! int b; ! // a JVM that doesn't know UTF8 and 8859_1 is unusable! ! try { ! buf = systemId.getBytes ("UTF8"); ! out = new ByteArrayOutputStream (buf.length + 10); ! for (i = 0; i < buf.length; i++) { ! b = buf [i] & 0x0ff; ! if (isUriExcluded (b)) { ! out.write ((int) '%'); ! out.write (hexNibble (b >> 4)); ! out.write (hexNibble (b & 0x0f)); ! } else ! out.write (b); ! } ! return out.toString ("8859_1"); ! } catch (IOException e) { ! throw new RuntimeException ( ! "can't normalize URI: " + e.getMessage ()); ! } ! } ! } ! return systemId; } // thrown to mark authoritative end of a search private static class DoneDelegation extends SAXException { ! DoneDelegation () { } } *************** System.err.println ("nyet unhexing publi *** 725,1083 **** */ private static class Catalog { ! // loading infrastructure ! String catalogURI; ! ErrorHandler eh; ! boolean unified; ! String parserClass; ! // catalog data ! boolean hasPreference; ! boolean usingPublic; ! Hashtable publicIds; ! Hashtable publicDelegations; ! Hashtable systemIds; ! Hashtable systemRewrites; ! Hashtable systemDelegations; ! Hashtable uris; ! Hashtable uriRewrites; ! Hashtable uriDelegations; ! Hashtable doctypes; ! Vector next; ! // nonpublic! ! Catalog () { } - - // steps as found in OASIS XML catalog spec 7.1.2 - private InputSource locatePublicId (String publicId) - throws SAXException, IOException - { - // 5. return (first) 'public' entry - if (publicIds != null) { - String retval = (String) publicIds.get (publicId); - if (retval != null) { - // IF the URI is accessible ... - return new InputSource (retval); - } - } ! // 6. return delegatePublic catalog match [complex] ! if (publicDelegations != null) ! return checkDelegations (publicDelegations, publicId, ! publicId, null); ! ! return null; ! } ! // steps as found in OASIS XML catalog spec 7.1.2 or 7.2.2 ! private InputSource mapURI ( ! String uri, ! Hashtable ids, ! Hashtable rewrites, ! Hashtable delegations ! ) throws SAXException, IOException ! { ! // 7.1.2: 2. return (first) 'system' entry ! // 7.2.2: 2. return (first) 'uri' entry ! if (ids != null) { ! String retval = (String) ids.get (uri); ! if (retval != null) { ! // IF the URI is accessible ... ! return new InputSource (retval); ! } ! } ! // 7.1.2: 3. return 'rewriteSystem' entries ! // 7.2.2: 3. return 'rewriteURI' entries ! if (rewrites != null) { ! String prefix = null; ! String replace = null; ! int prefixLen = -1; ! for (Enumeration e = rewrites.keys (); ! e.hasMoreElements (); ! /* NOP */) { ! String temp = (String) e.nextElement (); ! int len = -1; ! if (!uri.startsWith (temp)) ! continue; ! if (prefix != null ! && (len = temp.length ()) < prefixLen) ! continue; ! prefix = temp; ! prefixLen = len; ! replace = (String) rewrites.get (temp); ! } ! if (prefix != null) { ! CPStringBuilder buf = new CPStringBuilder (replace); ! buf.append (uri.substring (prefixLen)); ! // IF the URI is accessible ... ! return new InputSource (buf.toString ()); ! } ! } ! // 7.1.2: 4. return 'delegateSystem' catalog match [complex] ! // 7.2.2: 4. return 'delegateURI' catalog match [complex] ! if (delegations != null) ! return checkDelegations (delegations, uri, null, uri); ! return null; ! } ! /** ! * Returns a URI for an external entity. ! */ ! public InputSource resolve ( ! boolean usingPublic, ! String publicId, ! String systemId ! ) throws SAXException, IOException ! { ! boolean preferSystem; ! InputSource retval; - if (hasPreference) - preferSystem = !this.usingPublic; - else - preferSystem = !usingPublic; - - if (publicId != null) - publicId = normalizePublicId (false, publicId); ! // behavior here matches section 7.1.1 of the oasis spec ! if (systemId != null) { ! if (systemId.startsWith ("urn:publicid:")) { ! String temp = normalizePublicId (true, systemId); ! if (publicId == null) { ! publicId = temp; ! systemId = null; ! } else if (!publicId.equals (temp)) { ! // error; ok to recover by: ! systemId = null; ! } ! } else ! systemId = normalizeURI (systemId); ! } ! if (systemId == null && publicId == null) ! return null; ! if (systemId != null) { ! retval = mapURI (systemId, systemIds, systemRewrites, ! systemDelegations); ! if (retval != null) { ! retval.setPublicId (publicId); ! return retval; ! } ! } ! if (publicId != null ! && !(systemId != null && preferSystem)) { ! retval = locatePublicId (publicId); ! if (retval != null) { ! retval.setPublicId (publicId); ! return retval; ! } ! } ! // 7. apply nextCatalog entries ! if (next != null) { ! int length = next.size (); ! for (int i = 0; i < length; i++) { ! Catalog n = getNext (i); ! retval = n.resolve (usingPublic, publicId, systemId); ! if (retval != null) ! return retval; ! } ! } ! return null; ! } ! /** ! * Maps one URI into another, for resources that are not defined ! * using XML external entity or notation syntax. ! */ ! public InputSource resolveURI (String uri) ! throws SAXException, IOException ! { ! if (uri.startsWith ("urn:publicid:")) ! return resolve (true, normalizePublicId (true, uri), null); ! InputSource retval; ! uri = normalizeURI (uri); ! // 7.2.2 steps 2-4 ! retval = mapURI (uri, uris, uriRewrites, uriDelegations); ! if (retval != null) ! return retval; ! // 7.2.2 step 5. apply nextCatalog entries ! if (next != null) { ! int length = next.size (); ! for (int i = 0; i < length; i++) { ! Catalog n = getNext (i); ! retval = n.resolveURI (uri); ! if (retval != null) ! return retval; ! } ! } ! return null; ! } ! /** ! * Finds the external subset associated with a given root element. ! */ ! public InputSource getExternalSubset (String name) ! throws SAXException, IOException ! { ! if (doctypes != null) { ! String value = (String) doctypes.get (name); ! if (value != null) { ! // IF the URI is accessible ... ! return new InputSource (value); ! } ! } ! if (next != null) { ! int length = next.size (); ! for (int i = 0; i < length; i++) { ! Catalog n = getNext (i); ! if (n == null) ! continue; ! InputSource retval = n.getExternalSubset (name); ! if (retval != null) ! return retval; ! } ! } ! return null; ! } ! private synchronized Catalog getNext (int i) ! throws SAXException, IOException ! { ! Object obj; - if (next == null || i < 0 || i >= next.size ()) - return null; - obj = next.elementAt (i); - if (obj instanceof Catalog) - return (Catalog) obj; - - // ok, we deferred reading that catalog till now. - // load and cache it. - Catalog cat = null; ! try { ! cat = loadCatalog (parserClass, eh, (String) obj, unified); ! next.setElementAt (cat, i); ! } catch (SAXException e) { ! // must fail quietly, says the OASIS spec ! } catch (IOException e) { ! // same applies here ! } ! return cat; ! } ! private InputSource checkDelegations ( ! Hashtable delegations, ! String id, ! String publicId, // only one of public/system ! String systemId // will be non-null... ! ) throws SAXException, IOException ! { ! Vector matches = null; ! int length = 0; ! // first, see if any prefixes match. ! for (Enumeration e = delegations.keys (); ! e.hasMoreElements (); ! /* NOP */) { ! String prefix = (String) e.nextElement (); ! if (!id.startsWith (prefix)) ! continue; ! if (matches == null) ! matches = new Vector (); ! ! // maintain in longer->shorter sorted order ! // NOTE: assumes not many matches will fire! ! int index; ! for (index = 0; index < length; index++) { ! String temp = (String) matches.elementAt (index); ! if (prefix.length () > temp.length ()) { ! matches.insertElementAt (prefix, index); ! break; ! } ! } ! if (index == length) ! matches.addElement (prefix); ! length++; ! } ! if (matches == null) ! return null; ! // now we know the list of catalogs to replace our "top level" ! // list ... we use it here, rather than somehow going back and ! // restarting, since this helps avoid reading most catalogs. ! // this assumes stackspace won't be a problem. ! for (int i = 0; i < length; i++) { ! Catalog catalog = null; ! InputSource result; ! // get this catalog. we may not have read it yet. ! synchronized (delegations) { ! Object prefix = matches.elementAt (i); ! Object cat = delegations.get (prefix); ! if (cat instanceof Catalog) ! catalog = (Catalog) cat; ! else { ! try { ! // load and cache that catalog ! catalog = loadCatalog (parserClass, eh, ! (String) cat, unified); ! delegations.put (prefix, catalog); ! } catch (SAXException e) { ! // must ignore, says the OASIS spec ! } catch (IOException e) { ! // same applies here ! } ! } ! } ! // ignore failed loads, and proceed ! if (catalog == null) ! continue; ! ! // we have a catalog ... resolve! ! // usingPublic value can't matter, there's no choice ! result = catalog.resolve (true, publicId, systemId); ! if (result != null) ! return result; ! } ! // if there were no successes, the entire ! // lookup failed (all the way to top level) ! throw new DoneDelegation (); ! } } /** This is the namespace URI used for OASIS XML Catalogs. */ ! private static final String catalogNamespace = ! "urn:oasis:names:tc:entity:xmlns:xml:catalog"; /** --- 725,1083 ---- */ private static class Catalog { ! // loading infrastructure ! String catalogURI; ! ErrorHandler eh; ! boolean unified; ! String parserClass; ! // catalog data ! boolean hasPreference; ! boolean usingPublic; ! Hashtable publicIds; ! Hashtable publicDelegations; ! Hashtable systemIds; ! Hashtable systemRewrites; ! Hashtable systemDelegations; ! Hashtable uris; ! Hashtable uriRewrites; ! Hashtable uriDelegations; ! Hashtable doctypes; ! Vector next; ! // nonpublic! ! Catalog () { } ! // steps as found in OASIS XML catalog spec 7.1.2 ! private InputSource locatePublicId (String publicId) ! throws SAXException, IOException ! { ! // 5. return (first) 'public' entry ! if (publicIds != null) { ! String retval = (String) publicIds.get (publicId); ! if (retval != null) { ! // IF the URI is accessible ... ! return new InputSource (retval); ! } ! } ! // 6. return delegatePublic catalog match [complex] ! if (publicDelegations != null) ! return checkDelegations (publicDelegations, publicId, ! publicId, null); ! return null; ! } ! // steps as found in OASIS XML catalog spec 7.1.2 or 7.2.2 ! private InputSource mapURI ( ! String uri, ! Hashtable ids, ! Hashtable rewrites, ! Hashtable delegations ! ) throws SAXException, IOException ! { ! // 7.1.2: 2. return (first) 'system' entry ! // 7.2.2: 2. return (first) 'uri' entry ! if (ids != null) { ! String retval = (String) ids.get (uri); ! if (retval != null) { ! // IF the URI is accessible ... ! return new InputSource (retval); ! } ! } ! // 7.1.2: 3. return 'rewriteSystem' entries ! // 7.2.2: 3. return 'rewriteURI' entries ! if (rewrites != null) { ! String prefix = null; ! String replace = null; ! int prefixLen = -1; ! for (Enumeration e = rewrites.keys (); ! e.hasMoreElements (); ! /* NOP */) { ! String temp = (String) e.nextElement (); ! int len = -1; ! if (!uri.startsWith (temp)) ! continue; ! if (prefix != null ! && (len = temp.length ()) < prefixLen) ! continue; ! prefix = temp; ! prefixLen = len; ! replace = (String) rewrites.get (temp); ! } ! if (prefix != null) { ! CPStringBuilder buf = new CPStringBuilder (replace); ! buf.append (uri.substring (prefixLen)); ! // IF the URI is accessible ... ! return new InputSource (buf.toString ()); ! } ! } + // 7.1.2: 4. return 'delegateSystem' catalog match [complex] + // 7.2.2: 4. return 'delegateURI' catalog match [complex] + if (delegations != null) + return checkDelegations (delegations, uri, null, uri); ! return null; ! } ! /** ! * Returns a URI for an external entity. ! */ ! public InputSource resolve ( ! boolean usingPublic, ! String publicId, ! String systemId ! ) throws SAXException, IOException ! { ! boolean preferSystem; ! InputSource retval; ! if (hasPreference) ! preferSystem = !this.usingPublic; ! else ! preferSystem = !usingPublic; ! if (publicId != null) ! publicId = normalizePublicId (false, publicId); ! // behavior here matches section 7.1.1 of the oasis spec ! if (systemId != null) { ! if (systemId.startsWith ("urn:publicid:")) { ! String temp = normalizePublicId (true, systemId); ! if (publicId == null) { ! publicId = temp; ! systemId = null; ! } else if (!publicId.equals (temp)) { ! // error; ok to recover by: ! systemId = null; ! } ! } else ! systemId = normalizeURI (systemId); ! } ! if (systemId == null && publicId == null) ! return null; ! if (systemId != null) { ! retval = mapURI (systemId, systemIds, systemRewrites, ! systemDelegations); ! if (retval != null) { ! retval.setPublicId (publicId); ! return retval; ! } ! } ! if (publicId != null ! && !(systemId != null && preferSystem)) { ! retval = locatePublicId (publicId); ! if (retval != null) { ! retval.setPublicId (publicId); ! return retval; ! } ! } ! // 7. apply nextCatalog entries ! if (next != null) { ! int length = next.size (); ! for (int i = 0; i < length; i++) { ! Catalog n = getNext (i); ! retval = n.resolve (usingPublic, publicId, systemId); ! if (retval != null) ! return retval; ! } ! } ! return null; ! } ! /** ! * Maps one URI into another, for resources that are not defined ! * using XML external entity or notation syntax. ! */ ! public InputSource resolveURI (String uri) ! throws SAXException, IOException ! { ! if (uri.startsWith ("urn:publicid:")) ! return resolve (true, normalizePublicId (true, uri), null); ! InputSource retval; ! uri = normalizeURI (uri); + // 7.2.2 steps 2-4 + retval = mapURI (uri, uris, uriRewrites, uriDelegations); + if (retval != null) + return retval; ! // 7.2.2 step 5. apply nextCatalog entries ! if (next != null) { ! int length = next.size (); ! for (int i = 0; i < length; i++) { ! Catalog n = getNext (i); ! retval = n.resolveURI (uri); ! if (retval != null) ! return retval; ! } ! } ! return null; ! } ! /** ! * Finds the external subset associated with a given root element. ! */ ! public InputSource getExternalSubset (String name) ! throws SAXException, IOException ! { ! if (doctypes != null) { ! String value = (String) doctypes.get (name); ! if (value != null) { ! // IF the URI is accessible ... ! return new InputSource (value); ! } ! } ! if (next != null) { ! int length = next.size (); ! for (int i = 0; i < length; i++) { ! Catalog n = getNext (i); ! if (n == null) ! continue; ! InputSource retval = n.getExternalSubset (name); ! if (retval != null) ! return retval; ! } ! } ! return null; ! } ! private synchronized Catalog getNext (int i) ! throws SAXException, IOException ! { ! Object obj; ! if (next == null || i < 0 || i >= next.size ()) ! return null; ! obj = next.elementAt (i); ! if (obj instanceof Catalog) ! return (Catalog) obj; ! // ok, we deferred reading that catalog till now. ! // load and cache it. ! Catalog cat = null; ! try { ! cat = loadCatalog (parserClass, eh, (String) obj, unified); ! next.setElementAt (cat, i); ! } catch (SAXException e) { ! // must fail quietly, says the OASIS spec ! } catch (IOException e) { ! // same applies here ! } ! return cat; ! } ! private InputSource checkDelegations ( ! Hashtable delegations, ! String id, ! String publicId, // only one of public/system ! String systemId // will be non-null... ! ) throws SAXException, IOException ! { ! Vector matches = null; ! int length = 0; ! // first, see if any prefixes match. ! for (Enumeration e = delegations.keys (); ! e.hasMoreElements (); ! /* NOP */) { ! String prefix = (String) e.nextElement (); ! if (!id.startsWith (prefix)) ! continue; ! if (matches == null) ! matches = new Vector (); ! // maintain in longer->shorter sorted order ! // NOTE: assumes not many matches will fire! ! int index; ! for (index = 0; index < length; index++) { ! String temp = (String) matches.elementAt (index); ! if (prefix.length () > temp.length ()) { ! matches.insertElementAt (prefix, index); ! break; ! } ! } ! if (index == length) ! matches.addElement (prefix); ! length++; ! } ! if (matches == null) ! return null; ! ! // now we know the list of catalogs to replace our "top level" ! // list ... we use it here, rather than somehow going back and ! // restarting, since this helps avoid reading most catalogs. ! // this assumes stackspace won't be a problem. ! for (int i = 0; i < length; i++) { ! Catalog catalog = null; ! InputSource result; ! ! // get this catalog. we may not have read it yet. ! synchronized (delegations) { ! Object prefix = matches.elementAt (i); ! Object cat = delegations.get (prefix); ! ! if (cat instanceof Catalog) ! catalog = (Catalog) cat; ! else { ! try { ! // load and cache that catalog ! catalog = loadCatalog (parserClass, eh, ! (String) cat, unified); ! delegations.put (prefix, catalog); ! } catch (SAXException e) { ! // must ignore, says the OASIS spec ! } catch (IOException e) { ! // same applies here ! } ! } ! } ! ! // ignore failed loads, and proceed ! if (catalog == null) ! continue; ! ! // we have a catalog ... resolve! ! // usingPublic value can't matter, there's no choice ! result = catalog.resolve (true, publicId, systemId); ! if (result != null) ! return result; ! } ! ! // if there were no successes, the entire ! // lookup failed (all the way to top level) ! throw new DoneDelegation (); ! } } /** This is the namespace URI used for OASIS XML Catalogs. */ ! private static final String catalogNamespace = ! "urn:oasis:names:tc:entity:xmlns:xml:catalog"; /** *************** System.err.println ("nyet unhexing publi *** 1085,1611 **** */ private static class Loader extends DefaultHandler2 { ! private boolean preInterned; ! private ErrorHandler handler; ! private boolean unified; ! private int ignoreDepth; ! private Locator locator; ! private boolean started; ! private Hashtable externals; ! private Stack bases; ! Catalog cat = new Catalog (); ! /** ! * Constructor. ! * @param flag true iff the parser already interns strings. ! * @param eh Errors and warnings are delegated to this. ! * @param unified true keeps one table for URI mappings; ! * false matches OASIS spec, storing mappings ! * for URIs and SYSTEM ids in parallel tables. ! */ ! Loader (boolean flag, ErrorHandler eh, boolean unified) ! { ! preInterned = flag; ! handler = eh; ! this.unified = unified; ! cat.unified = unified; ! cat.eh = eh; ! } ! // strips out fragments ! private String nofrag (String uri) ! throws SAXException ! { ! if (uri.indexOf ('#') != -1) { ! warn ("URI with fragment: " + uri); ! uri = uri.substring (0, uri.indexOf ('#')); ! } ! return uri; ! } ! // absolutizes relative URIs ! private String absolutize (String uri) ! throws SAXException ! { ! // avoid creating URLs if they're already absolutized, ! // or if the URI is already using a known scheme ! if (uri.startsWith ("file:/") ! || uri.startsWith ("http:/") ! || uri.startsWith ("https:/") ! || uri.startsWith ("ftp:/") ! || uri.startsWith ("urn:") ! ) ! return uri; ! // otherwise, let's hope the JDK handles this URI scheme. ! try { ! URL base = (URL) bases.peek (); ! return new URL (base, uri).toString (); ! } catch (Exception e) { ! fatal ("can't absolutize URI: " + uri); ! return null; ! } ! } ! // recoverable error ! private void error (String message) ! throws SAXException ! { ! if (handler == null) ! return; ! handler.error (new SAXParseException (message, locator)); ! } ! // nonrecoverable error ! private void fatal (String message) ! throws SAXException ! { ! SAXParseException spe; ! ! spe = new SAXParseException (message, locator); ! if (handler != null) ! handler.fatalError (spe); ! throw spe; ! } ! // low severity problem ! private void warn (String message) ! throws SAXException ! { ! if (handler == null) ! return; ! handler.warning (new SAXParseException (message, locator)); ! } ! // callbacks: ! public void setDocumentLocator (Locator l) ! { locator = l; } ! public void startDocument () ! throws SAXException ! { ! if (locator == null) ! error ("no locator!"); ! bases = new Stack (); ! String uri = locator.getSystemId (); ! try { ! bases.push (new URL (uri)); ! } catch (IOException e) { ! fatal ("bad document base URI: " + uri); ! } ! } ! public void endDocument () ! throws SAXException ! { ! try { ! if (!started) ! error ("not a catalog!"); ! } finally { ! locator = null; ! handler = null; ! externals = null; ! bases = null; ! } ! } ! // XML Base support for external entities. ! // NOTE: expects parser is in default "resolve-dtd-uris" mode. ! public void externalEntityDecl (String name, String pub, String sys) ! throws SAXException ! { ! if (externals == null) ! externals = new Hashtable (); ! if (externals.get (name) == null) ! externals.put (name, pub); ! } ! public void startEntity (String name) ! throws SAXException ! { ! if (externals == null) ! return; ! String uri = (String) externals.get (name); ! // NOTE: breaks if an EntityResolver substitutes these URIs. ! // If toplevel loader supports one, must intercept calls... ! if (uri != null) { ! try { ! bases.push (new URL (uri)); ! } catch (IOException e) { ! fatal ("entity '" + name + "', bad URI: " + uri); ! } ! } ! } ! public void endEntity (String name) ! { ! if (externals == null) ! return; ! String value = (String) externals.get (name); ! if (value != null) ! bases.pop (); ! } ! /** ! * Processes catalog elements, saving their data. ! */ ! public void startElement (String namespace, String local, ! String qName, Attributes atts) ! throws SAXException ! { ! // must ignore non-catalog elements, and their contents ! if (ignoreDepth != 0 || !catalogNamespace.equals (namespace)) { ! ignoreDepth++; ! return; ! } ! // basic sanity checks ! if (!preInterned) ! local = local.intern (); ! if (!started) { ! started = true; ! if ("catalog" != local) ! fatal ("root element not 'catalog': " + local); ! } ! // Handle any xml:base attribute ! String xmlbase = atts.getValue ("xml:base"); ! if (xmlbase != null) { ! URL base = (URL) bases.peek (); ! try { ! base = new URL (base, xmlbase); ! } catch (IOException e) { ! fatal ("can't resolve xml:base attribute: " + xmlbase); ! } ! bases.push (base); ! } else ! bases.push (bases.peek ()); ! // fetch multi-element attributes, apply standard tweaks ! // values (uri, catalog, rewritePrefix) get normalized too, ! // as a precaution and since we may compare the values ! String catalog = atts.getValue ("catalog"); ! if (catalog != null) ! catalog = normalizeURI (absolutize (catalog)); ! String rewritePrefix = atts.getValue ("rewritePrefix"); ! if (rewritePrefix != null) ! rewritePrefix = normalizeURI (absolutize (rewritePrefix)); ! String systemIdStartString; ! systemIdStartString = atts.getValue ("systemIdStartString"); ! if (systemIdStartString != null) { ! systemIdStartString = normalizeURI (systemIdStartString); ! // unmatchable , elements ! if (systemIdStartString.startsWith ("urn:publicid:")) { ! error ("systemIdStartString is really a publicId!!"); ! return; ! } ! } ! String uri = atts.getValue ("uri"); ! if (uri != null) ! uri = normalizeURI (absolutize (uri)); ! String uriStartString; ! uriStartString = atts.getValue ("uriStartString"); ! if (uriStartString != null) { ! uriStartString = normalizeURI (uriStartString); ! // unmatchable , elements ! if (uriStartString.startsWith ("urn:publicid:")) { ! error ("uriStartString is really a publicId!!"); ! return; ! } ! } ! // strictly speaking "group" and "catalog" shouldn't nest ! // ... arbitrary restriction, no evident motivation // FIXME stack "prefer" settings (two elements only!) and use // them to populate different public mapping/delegation tables ! if ("catalog" == local || "group" == local) { ! String prefer = atts.getValue ("prefer"); ! if (prefer != null && !"public".equals (prefer)) { ! if (!"system".equals (prefer)) { ! error ("in <" + local + " ... prefer='...'>, " ! + "assuming 'public'"); ! prefer = "public"; ! } ! } ! if (prefer != null) { ! if ("catalog" == local) { ! cat.hasPreference = true; ! cat.usingPublic = "public".equals (prefer); ! } else { ! if (!cat.hasPreference || cat.usingPublic ! != "public".equals (prefer)) { fatal (" case not handled"); ! } ! } ! } else if ("group" == local && cat.hasPreference) { fatal (" case not handled"); ! } ! // ! // PUBLIC ids: cleanly set up for id substitution ! // ! } else if ("public" == local) { ! String publicId = atts.getValue ("publicId"); ! String value = null; ! if (publicId == null || uri == null) { ! error ("expecting "); ! return; ! } ! publicId = normalizePublicId (true, publicId); ! uri = nofrag (uri); ! if (cat.publicIds == null) ! cat.publicIds = new Hashtable (); ! else ! value = (String) cat.publicIds.get (publicId); ! if (value != null) { ! if (!value.equals (uri)) ! warn ("ignoring entry for " + publicId); ! } else ! cat.publicIds.put (publicId, uri); ! } else if ("delegatePublic" == local) { ! String publicIdStartString; ! Object value = null; ! publicIdStartString = atts.getValue ("publicIdStartString"); ! if (publicIdStartString == null || catalog == null) { ! error ("expecting "); ! return; ! } ! publicIdStartString = normalizePublicId (true, ! publicIdStartString); ! if (cat.publicDelegations == null) ! cat.publicDelegations = new Hashtable (); ! else ! value = cat.publicDelegations.get (publicIdStartString); ! if (value != null) { ! if (!value.equals (catalog)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.publicDelegations.put (publicIdStartString, catalog); ! // ! // SYSTEM ids: need substitution due to operational issues ! // ! } else if ("system" == local) { ! String systemId = atts.getValue ("systemId"); ! String value = null; ! if (systemId == null || uri == null) { ! error ("expecting "); ! return; ! } ! systemId = normalizeURI (systemId); ! uri = nofrag (uri); ! if (systemId.startsWith ("urn:publicid:")) { ! error ("systemId is really a publicId!!"); ! return; ! } ! if (cat.systemIds == null) { ! cat.systemIds = new Hashtable (); ! if (unified) ! cat.uris = cat.systemIds; ! } else ! value = (String) cat.systemIds.get (systemId); ! if (value != null) { ! if (!value.equals (uri)) ! warn ("ignoring entry for " + systemId); ! } else ! cat.systemIds.put (systemId, uri); ! } else if ("rewriteSystem" == local) { ! String value = null; ! if (systemIdStartString == null || rewritePrefix == null ! || systemIdStartString.length () == 0 ! || rewritePrefix.length () == 0 ! ) { ! error ("expecting "); ! return; ! } ! if (cat.systemRewrites == null) { ! cat.systemRewrites = new Hashtable (); ! if (unified) ! cat.uriRewrites = cat.systemRewrites; ! } else ! value = (String) cat.systemRewrites.get ( ! systemIdStartString); ! if (value != null) { ! if (!value.equals (rewritePrefix)) ! warn ("ignoring entry for " ! + systemIdStartString); ! } else ! cat.systemRewrites.put (systemIdStartString, ! rewritePrefix); ! } else if ("delegateSystem" == local) { ! Object value = null; ! if (systemIdStartString == null || catalog == null) { ! error ("expecting "); ! return; ! } ! if (cat.systemDelegations == null) { ! cat.systemDelegations = new Hashtable (); ! if (unified) ! cat.uriDelegations = cat.systemDelegations; ! } else ! value = cat.systemDelegations.get (systemIdStartString); ! if (value != null) { ! if (!value.equals (catalog)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.systemDelegations.put (systemIdStartString, catalog); ! // ! // URI: just like "system" ID support, except that ! // fragment IDs are disallowed in "system" elements. ! // ! } else if ("uri" == local) { ! String name = atts.getValue ("name"); ! String value = null; ! if (name == null || uri == null) { ! error ("expecting "); ! return; ! } ! if (name.startsWith ("urn:publicid:")) { ! error ("name is really a publicId!!"); ! return; ! } ! name = normalizeURI (name); ! if (cat.uris == null) { ! cat.uris = new Hashtable (); ! if (unified) ! cat.systemIds = cat.uris; ! } else ! value = (String) cat.uris.get (name); ! if (value != null) { ! if (!value.equals (uri)) ! warn ("ignoring entry for " + name); ! } else ! cat.uris.put (name, uri); ! } else if ("rewriteURI" == local) { ! String value = null; ! if (uriStartString == null || rewritePrefix == null ! || uriStartString.length () == 0 ! || rewritePrefix.length () == 0 ! ) { ! error ("expecting "); ! return; ! } ! if (cat.uriRewrites == null) { ! cat.uriRewrites = new Hashtable (); ! if (unified) ! cat.systemRewrites = cat.uriRewrites; ! } else ! value = (String) cat.uriRewrites.get (uriStartString); ! if (value != null) { ! if (!value.equals (rewritePrefix)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.uriRewrites.put (uriStartString, rewritePrefix); ! } else if ("delegateURI" == local) { ! Object value = null; ! if (uriStartString == null || catalog == null) { ! error ("expecting "); ! return; ! } ! if (cat.uriDelegations == null) { ! cat.uriDelegations = new Hashtable (); ! if (unified) ! cat.systemDelegations = cat.uriDelegations; ! } else ! value = cat.uriDelegations.get (uriStartString); ! if (value != null) { ! if (!value.equals (catalog)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.uriDelegations.put (uriStartString, catalog); ! // ! // NON-DELEGATING approach to modularity ! // ! } else if ("nextCatalog" == local) { ! if (catalog == null) { ! error ("expecting "); ! return; ! } ! if (cat.next == null) ! cat.next = new Vector (); ! cat.next.addElement (catalog); ! // ! // EXTENSIONS from appendix E ! // ! } else if ("doctype" == local) { ! String name = atts.getValue ("name"); ! String value = null; ! if (name == null || uri == null) { ! error ("expecting "); ! return; ! } ! name = normalizeURI (name); ! if (cat.doctypes == null) ! cat.doctypes = new Hashtable (); ! else ! value = (String) cat.doctypes.get (name); ! if (value != null) { ! if (!value.equals (uri)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.doctypes.put (name, uri); ! - // - // RESERVED ... ignore (like reserved attributes) but warn - // - } else { - warn ("ignoring unknown catalog element: " + local); - ignoreDepth++; - } - } ! public void endElement (String uri, String local, String qName) ! throws SAXException ! { ! if (ignoreDepth != 0) ! ignoreDepth--; ! else ! bases.pop (); ! } } } --- 1085,1611 ---- */ private static class Loader extends DefaultHandler2 { ! private boolean preInterned; ! private ErrorHandler handler; ! private boolean unified; ! private int ignoreDepth; ! private Locator locator; ! private boolean started; ! private Hashtable externals; ! private Stack bases; ! Catalog cat = new Catalog (); ! /** ! * Constructor. ! * @param flag true iff the parser already interns strings. ! * @param eh Errors and warnings are delegated to this. ! * @param unified true keeps one table for URI mappings; ! * false matches OASIS spec, storing mappings ! * for URIs and SYSTEM ids in parallel tables. ! */ ! Loader (boolean flag, ErrorHandler eh, boolean unified) ! { ! preInterned = flag; ! handler = eh; ! this.unified = unified; ! cat.unified = unified; ! cat.eh = eh; ! } ! // strips out fragments ! private String nofrag (String uri) ! throws SAXException ! { ! if (uri.indexOf ('#') != -1) { ! warn ("URI with fragment: " + uri); ! uri = uri.substring (0, uri.indexOf ('#')); ! } ! return uri; ! } ! // absolutizes relative URIs ! private String absolutize (String uri) ! throws SAXException ! { ! // avoid creating URLs if they're already absolutized, ! // or if the URI is already using a known scheme ! if (uri.startsWith ("file:/") ! || uri.startsWith ("http:/") ! || uri.startsWith ("https:/") ! || uri.startsWith ("ftp:/") ! || uri.startsWith ("urn:") ! ) ! return uri; ! // otherwise, let's hope the JDK handles this URI scheme. ! try { ! URL base = (URL) bases.peek (); ! return new URL (base, uri).toString (); ! } catch (Exception e) { ! fatal ("can't absolutize URI: " + uri); ! return null; ! } ! } ! // recoverable error ! private void error (String message) ! throws SAXException ! { ! if (handler == null) ! return; ! handler.error (new SAXParseException (message, locator)); ! } ! // nonrecoverable error ! private void fatal (String message) ! throws SAXException ! { ! SAXParseException spe; ! spe = new SAXParseException (message, locator); ! if (handler != null) ! handler.fatalError (spe); ! throw spe; ! } ! // low severity problem ! private void warn (String message) ! throws SAXException ! { ! if (handler == null) ! return; ! handler.warning (new SAXParseException (message, locator)); ! } ! // callbacks: ! public void setDocumentLocator (Locator l) ! { locator = l; } ! public void startDocument () ! throws SAXException ! { ! if (locator == null) ! error ("no locator!"); ! bases = new Stack (); ! String uri = locator.getSystemId (); ! try { ! bases.push (new URL (uri)); ! } catch (IOException e) { ! fatal ("bad document base URI: " + uri); ! } ! } ! public void endDocument () ! throws SAXException ! { ! try { ! if (!started) ! error ("not a catalog!"); ! } finally { ! locator = null; ! handler = null; ! externals = null; ! bases = null; ! } ! } ! // XML Base support for external entities. ! // NOTE: expects parser is in default "resolve-dtd-uris" mode. ! public void externalEntityDecl (String name, String pub, String sys) ! throws SAXException ! { ! if (externals == null) ! externals = new Hashtable (); ! if (externals.get (name) == null) ! externals.put (name, pub); ! } ! public void startEntity (String name) ! throws SAXException ! { ! if (externals == null) ! return; ! String uri = (String) externals.get (name); ! // NOTE: breaks if an EntityResolver substitutes these URIs. ! // If toplevel loader supports one, must intercept calls... ! if (uri != null) { ! try { ! bases.push (new URL (uri)); ! } catch (IOException e) { ! fatal ("entity '" + name + "', bad URI: " + uri); ! } ! } ! } ! public void endEntity (String name) ! { ! if (externals == null) ! return; ! String value = (String) externals.get (name); ! if (value != null) ! bases.pop (); ! } ! /** ! * Processes catalog elements, saving their data. ! */ ! public void startElement (String namespace, String local, ! String qName, Attributes atts) ! throws SAXException ! { ! // must ignore non-catalog elements, and their contents ! if (ignoreDepth != 0 || !catalogNamespace.equals (namespace)) { ! ignoreDepth++; ! return; ! } ! // basic sanity checks ! if (!preInterned) ! local = local.intern (); ! if (!started) { ! started = true; ! if ("catalog" != local) ! fatal ("root element not 'catalog': " + local); ! } ! // Handle any xml:base attribute ! String xmlbase = atts.getValue ("xml:base"); ! if (xmlbase != null) { ! URL base = (URL) bases.peek (); ! try { ! base = new URL (base, xmlbase); ! } catch (IOException e) { ! fatal ("can't resolve xml:base attribute: " + xmlbase); ! } ! bases.push (base); ! } else ! bases.push (bases.peek ()); ! // fetch multi-element attributes, apply standard tweaks ! // values (uri, catalog, rewritePrefix) get normalized too, ! // as a precaution and since we may compare the values ! String catalog = atts.getValue ("catalog"); ! if (catalog != null) ! catalog = normalizeURI (absolutize (catalog)); ! String rewritePrefix = atts.getValue ("rewritePrefix"); ! if (rewritePrefix != null) ! rewritePrefix = normalizeURI (absolutize (rewritePrefix)); ! String systemIdStartString; ! systemIdStartString = atts.getValue ("systemIdStartString"); ! if (systemIdStartString != null) { ! systemIdStartString = normalizeURI (systemIdStartString); ! // unmatchable , elements ! if (systemIdStartString.startsWith ("urn:publicid:")) { ! error ("systemIdStartString is really a publicId!!"); ! return; ! } ! } ! String uri = atts.getValue ("uri"); ! if (uri != null) ! uri = normalizeURI (absolutize (uri)); ! String uriStartString; ! uriStartString = atts.getValue ("uriStartString"); ! if (uriStartString != null) { ! uriStartString = normalizeURI (uriStartString); ! // unmatchable , elements ! if (uriStartString.startsWith ("urn:publicid:")) { ! error ("uriStartString is really a publicId!!"); ! return; ! } ! } ! ! // strictly speaking "group" and "catalog" shouldn't nest ! // ... arbitrary restriction, no evident motivation // FIXME stack "prefer" settings (two elements only!) and use // them to populate different public mapping/delegation tables ! if ("catalog" == local || "group" == local) { ! String prefer = atts.getValue ("prefer"); ! if (prefer != null && !"public".equals (prefer)) { ! if (!"system".equals (prefer)) { ! error ("in <" + local + " ... prefer='...'>, " ! + "assuming 'public'"); ! prefer = "public"; ! } ! } ! if (prefer != null) { ! if ("catalog" == local) { ! cat.hasPreference = true; ! cat.usingPublic = "public".equals (prefer); ! } else { ! if (!cat.hasPreference || cat.usingPublic ! != "public".equals (prefer)) { fatal (" case not handled"); ! } ! } ! } else if ("group" == local && cat.hasPreference) { fatal (" case not handled"); ! } ! // ! // PUBLIC ids: cleanly set up for id substitution ! // ! } else if ("public" == local) { ! String publicId = atts.getValue ("publicId"); ! String value = null; ! if (publicId == null || uri == null) { ! error ("expecting "); ! return; ! } ! publicId = normalizePublicId (true, publicId); ! uri = nofrag (uri); ! if (cat.publicIds == null) ! cat.publicIds = new Hashtable (); ! else ! value = (String) cat.publicIds.get (publicId); ! if (value != null) { ! if (!value.equals (uri)) ! warn ("ignoring entry for " + publicId); ! } else ! cat.publicIds.put (publicId, uri); ! } else if ("delegatePublic" == local) { ! String publicIdStartString; ! Object value = null; ! publicIdStartString = atts.getValue ("publicIdStartString"); ! if (publicIdStartString == null || catalog == null) { ! error ("expecting "); ! return; ! } ! publicIdStartString = normalizePublicId (true, ! publicIdStartString); ! if (cat.publicDelegations == null) ! cat.publicDelegations = new Hashtable (); ! else ! value = cat.publicDelegations.get (publicIdStartString); ! if (value != null) { ! if (!value.equals (catalog)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.publicDelegations.put (publicIdStartString, catalog); ! // ! // SYSTEM ids: need substitution due to operational issues ! // ! } else if ("system" == local) { ! String systemId = atts.getValue ("systemId"); ! String value = null; ! if (systemId == null || uri == null) { ! error ("expecting "); ! return; ! } ! systemId = normalizeURI (systemId); ! uri = nofrag (uri); ! if (systemId.startsWith ("urn:publicid:")) { ! error ("systemId is really a publicId!!"); ! return; ! } ! if (cat.systemIds == null) { ! cat.systemIds = new Hashtable (); ! if (unified) ! cat.uris = cat.systemIds; ! } else ! value = (String) cat.systemIds.get (systemId); ! if (value != null) { ! if (!value.equals (uri)) ! warn ("ignoring entry for " + systemId); ! } else ! cat.systemIds.put (systemId, uri); ! } else if ("rewriteSystem" == local) { ! String value = null; ! if (systemIdStartString == null || rewritePrefix == null ! || systemIdStartString.length () == 0 ! || rewritePrefix.length () == 0 ! ) { ! error ("expecting "); ! return; ! } ! if (cat.systemRewrites == null) { ! cat.systemRewrites = new Hashtable (); ! if (unified) ! cat.uriRewrites = cat.systemRewrites; ! } else ! value = (String) cat.systemRewrites.get ( ! systemIdStartString); ! if (value != null) { ! if (!value.equals (rewritePrefix)) ! warn ("ignoring entry for " ! + systemIdStartString); ! } else ! cat.systemRewrites.put (systemIdStartString, ! rewritePrefix); ! } else if ("delegateSystem" == local) { ! Object value = null; ! if (systemIdStartString == null || catalog == null) { ! error ("expecting "); ! return; ! } ! if (cat.systemDelegations == null) { ! cat.systemDelegations = new Hashtable (); ! if (unified) ! cat.uriDelegations = cat.systemDelegations; ! } else ! value = cat.systemDelegations.get (systemIdStartString); ! if (value != null) { ! if (!value.equals (catalog)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.systemDelegations.put (systemIdStartString, catalog); ! // ! // URI: just like "system" ID support, except that ! // fragment IDs are disallowed in "system" elements. ! // ! } else if ("uri" == local) { ! String name = atts.getValue ("name"); ! String value = null; ! if (name == null || uri == null) { ! error ("expecting "); ! return; ! } ! if (name.startsWith ("urn:publicid:")) { ! error ("name is really a publicId!!"); ! return; ! } ! name = normalizeURI (name); ! if (cat.uris == null) { ! cat.uris = new Hashtable (); ! if (unified) ! cat.systemIds = cat.uris; ! } else ! value = (String) cat.uris.get (name); ! if (value != null) { ! if (!value.equals (uri)) ! warn ("ignoring entry for " + name); ! } else ! cat.uris.put (name, uri); ! } else if ("rewriteURI" == local) { ! String value = null; ! if (uriStartString == null || rewritePrefix == null ! || uriStartString.length () == 0 ! || rewritePrefix.length () == 0 ! ) { ! error ("expecting "); ! return; ! } ! if (cat.uriRewrites == null) { ! cat.uriRewrites = new Hashtable (); ! if (unified) ! cat.systemRewrites = cat.uriRewrites; ! } else ! value = (String) cat.uriRewrites.get (uriStartString); ! if (value != null) { ! if (!value.equals (rewritePrefix)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.uriRewrites.put (uriStartString, rewritePrefix); ! } else if ("delegateURI" == local) { ! Object value = null; ! if (uriStartString == null || catalog == null) { ! error ("expecting "); ! return; ! } ! if (cat.uriDelegations == null) { ! cat.uriDelegations = new Hashtable (); ! if (unified) ! cat.systemDelegations = cat.uriDelegations; ! } else ! value = cat.uriDelegations.get (uriStartString); ! if (value != null) { ! if (!value.equals (catalog)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.uriDelegations.put (uriStartString, catalog); ! // ! // NON-DELEGATING approach to modularity ! // ! } else if ("nextCatalog" == local) { ! if (catalog == null) { ! error ("expecting "); ! return; ! } ! if (cat.next == null) ! cat.next = new Vector (); ! cat.next.addElement (catalog); ! // ! // EXTENSIONS from appendix E ! // ! } else if ("doctype" == local) { ! String name = atts.getValue ("name"); ! String value = null; ! if (name == null || uri == null) { ! error ("expecting "); ! return; ! } ! name = normalizeURI (name); ! if (cat.doctypes == null) ! cat.doctypes = new Hashtable (); ! else ! value = (String) cat.doctypes.get (name); ! if (value != null) { ! if (!value.equals (uri)) ! warn ("ignoring entry for " ! + uriStartString); ! } else ! cat.doctypes.put (name, uri); ! // ! // RESERVED ... ignore (like reserved attributes) but warn ! // ! } else { ! warn ("ignoring unknown catalog element: " + local); ! ignoreDepth++; ! } ! } ! ! public void endElement (String uri, String local, String qName) ! throws SAXException ! { ! if (ignoreDepth != 0) ! ignoreDepth--; ! else ! bases.pop (); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/util/XHTMLWriter.java gcc-4.6.0/libjava/classpath/gnu/xml/util/XHTMLWriter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/util/XHTMLWriter.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/util/XHTMLWriter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XHTMLWriter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XHTMLWriter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XHTMLWriter extends XMLWrit *** 67,73 **** public XHTMLWriter () throws IOException { ! this (System.out); } /** --- 67,73 ---- public XHTMLWriter () throws IOException { ! this (System.out); } /** *************** public class XHTMLWriter extends XMLWrit *** 75,89 **** * is used to write SAX events in the US-ASCII encoding, as XHTML. * * @param out Where US-ASCII encoding of the stream of SAX ! * events will be sent. */ public XHTMLWriter (OutputStream out) throws IOException { ! // not all JVMs understand "ASCII" as an encoding name, so ! // we use 8859_1 (they all seem to handle that one) and ! // make the echo handler filter out non-ASCII characters ! this (new OutputStreamWriter (out, "8859_1"), "US-ASCII"); } /** --- 75,89 ---- * is used to write SAX events in the US-ASCII encoding, as XHTML. * * @param out Where US-ASCII encoding of the stream of SAX ! * events will be sent. */ public XHTMLWriter (OutputStream out) throws IOException { ! // not all JVMs understand "ASCII" as an encoding name, so ! // we use 8859_1 (they all seem to handle that one) and ! // make the echo handler filter out non-ASCII characters ! this (new OutputStreamWriter (out, "8859_1"), "US-ASCII"); } /** *************** public class XHTMLWriter extends XMLWrit *** 94,100 **** */ public XHTMLWriter (Writer out) { ! this (out, null); } /** --- 94,100 ---- */ public XHTMLWriter (Writer out) { ! this (out, null); } /** *************** public class XHTMLWriter extends XMLWrit *** 104,114 **** * * @param out Where the stream of SAX events will be written. * @param encoding If non-null, this names the encoding to be ! * placed in the encoding declaration. */ public XHTMLWriter (Writer out, String encoding) { ! super (out, encoding); ! setXhtml (true); } } --- 104,114 ---- * * @param out Where the stream of SAX events will be written. * @param encoding If non-null, this names the encoding to be ! * placed in the encoding declaration. */ public XHTMLWriter (Writer out, String encoding) { ! super (out, encoding); ! setXhtml (true); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/util/XMLWriter.java gcc-4.6.0/libjava/classpath/gnu/xml/util/XMLWriter.java *** gcc-4.5.2/libjava/classpath/gnu/xml/util/XMLWriter.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/util/XMLWriter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLWriter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLWriter.java -- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XMLWriter *** 111,184 **** implements ContentHandler, LexicalHandler, DTDHandler, DeclHandler { // text prints/escapes differently depending on context ! // CTX_ENTITY ... entity literal value ! // CTX_ATTRIBUTE ... attribute literal value ! // CTX_CONTENT ... content of an element ! // CTX_UNPARSED ... CDATA, comment, PI, names, etc // CTX_NAME ... name or nmtoken, no escapes possible ! private static final int CTX_ENTITY = 1; ! private static final int CTX_ATTRIBUTE = 2; ! private static final int CTX_CONTENT = 3; ! private static final int CTX_UNPARSED = 4; ! private static final int CTX_NAME = 5; // FIXME: names (element, attribute, PI, notation, etc) are not // currently written out with range checks (escapeChars). // In non-XHTML, some names can't be directly written; panic! ! private static String sysEOL; static { ! try { ! sysEOL = System.getProperty ("line.separator", "\n"); ! // don't use the system's EOL if it's illegal XML. ! if (!isLineEnd (sysEOL)) ! sysEOL = "\n"; ! } catch (SecurityException e) { ! sysEOL = "\n"; ! } } private static boolean isLineEnd (String eol) { ! return "\n".equals (eol) ! || "\r".equals (eol) ! || "\r\n".equals (eol); } ! private Writer out; ! private boolean inCDATA; ! private int elementNestLevel; ! private String eol = sysEOL; ! private short dangerMask; ! private CPStringBuilder stringBuf; ! private Locator locator; ! private ErrorHandler errHandler; ! private boolean expandingEntities = false; ! private int entityNestLevel; ! private boolean xhtml; ! private boolean startedDoctype; ! private String encoding; ! private boolean canonical; ! private boolean inDoctype; ! private boolean inEpilogue; // pretty printing controls ! private boolean prettyPrinting; ! private int column; ! private boolean noWrap; ! private Stack space = new Stack (); // this is not a hard'n'fast rule -- longer lines are OK, // but are to be avoided. Here, prettyprinting is more to // show structure "cleanly" than to be precise about it. // better to have ragged layout than one line 24Kb long. ! private static final int lineLength = 75; /** --- 111,184 ---- implements ContentHandler, LexicalHandler, DTDHandler, DeclHandler { // text prints/escapes differently depending on context ! // CTX_ENTITY ... entity literal value ! // CTX_ATTRIBUTE ... attribute literal value ! // CTX_CONTENT ... content of an element ! // CTX_UNPARSED ... CDATA, comment, PI, names, etc // CTX_NAME ... name or nmtoken, no escapes possible ! private static final int CTX_ENTITY = 1; ! private static final int CTX_ATTRIBUTE = 2; ! private static final int CTX_CONTENT = 3; ! private static final int CTX_UNPARSED = 4; ! private static final int CTX_NAME = 5; // FIXME: names (element, attribute, PI, notation, etc) are not // currently written out with range checks (escapeChars). // In non-XHTML, some names can't be directly written; panic! ! private static String sysEOL; static { ! try { ! sysEOL = System.getProperty ("line.separator", "\n"); ! // don't use the system's EOL if it's illegal XML. ! if (!isLineEnd (sysEOL)) ! sysEOL = "\n"; ! } catch (SecurityException e) { ! sysEOL = "\n"; ! } } private static boolean isLineEnd (String eol) { ! return "\n".equals (eol) ! || "\r".equals (eol) ! || "\r\n".equals (eol); } ! private Writer out; ! private boolean inCDATA; ! private int elementNestLevel; ! private String eol = sysEOL; ! private short dangerMask; ! private CPStringBuilder stringBuf; ! private Locator locator; ! private ErrorHandler errHandler; ! private boolean expandingEntities = false; ! private int entityNestLevel; ! private boolean xhtml; ! private boolean startedDoctype; ! private String encoding; ! private boolean canonical; ! private boolean inDoctype; ! private boolean inEpilogue; // pretty printing controls ! private boolean prettyPrinting; ! private int column; ! private boolean noWrap; ! private Stack space = new Stack (); // this is not a hard'n'fast rule -- longer lines are OK, // but are to be avoided. Here, prettyprinting is more to // show structure "cleanly" than to be precise about it. // better to have ragged layout than one line 24Kb long. ! private static final int lineLength = 75; /** *************** public class XMLWriter *** 187,193 **** * it's safe to close System.out at the end of the document. */ public XMLWriter () throws IOException ! { this (System.out); } /** * Constructs a handler which writes all input to the output stream --- 187,193 ---- * it's safe to close System.out at the end of the document. */ public XMLWriter () throws IOException ! { this (System.out); } /** * Constructs a handler which writes all input to the output stream *************** public class XMLWriter *** 198,204 **** */ public XMLWriter (OutputStream out) throws IOException { ! this (new OutputStreamWriter (out, "UTF8")); } /** --- 198,204 ---- */ public XMLWriter (OutputStream out) throws IOException { ! this (new OutputStreamWriter (out, "UTF8")); } /** *************** public class XMLWriter *** 215,221 **** */ public XMLWriter (Writer writer) { ! this (writer, null); } /** --- 215,221 ---- */ public XMLWriter (Writer writer) { ! this (writer, null); } /** *************** public class XMLWriter *** 248,300 **** * * @param writer XML text is written to this writer. * @param encoding if non-null, and an XML declaration is written, ! * this is the name that will be used for the character encoding. */ public XMLWriter (Writer writer, String encoding) { ! setWriter (writer, encoding); } ! private void setEncoding (String encoding) { ! if (encoding == null && out instanceof OutputStreamWriter) ! encoding = ((OutputStreamWriter)out).getEncoding (); ! if (encoding != null) { ! encoding = encoding.toUpperCase (); ! // Use official encoding names where we know them, ! // avoiding the Java-only names. When using common ! // encodings where we can easily tell if characters ! // are out of range, we'll escape out-of-range ! // characters using character refs for safety. ! // I _think_ these are all the main synonyms for these! ! if ("UTF8".equals (encoding)) { ! encoding = "UTF-8"; ! } else if ("US-ASCII".equals (encoding) ! || "ASCII".equals (encoding)) { ! dangerMask = (short) 0xff80; ! encoding = "US-ASCII"; ! } else if ("ISO-8859-1".equals (encoding) ! || "8859_1".equals (encoding) ! || "ISO8859_1".equals (encoding)) { ! dangerMask = (short) 0xff00; ! encoding = "ISO-8859-1"; ! } else if ("UNICODE".equals (encoding) ! || "UNICODE-BIG".equals (encoding) ! || "UNICODE-LITTLE".equals (encoding)) { ! encoding = "UTF-16"; ! // TODO: UTF-16BE, UTF-16LE ... no BOM; what ! // release of JDK supports those Unicode names? ! } ! if (dangerMask != 0) ! stringBuf = new CPStringBuilder (); ! } ! this.encoding = encoding; } --- 248,300 ---- * * @param writer XML text is written to this writer. * @param encoding if non-null, and an XML declaration is written, ! * this is the name that will be used for the character encoding. */ public XMLWriter (Writer writer, String encoding) { ! setWriter (writer, encoding); } ! private void setEncoding (String encoding) { ! if (encoding == null && out instanceof OutputStreamWriter) ! encoding = ((OutputStreamWriter)out).getEncoding (); ! if (encoding != null) { ! encoding = encoding.toUpperCase (); ! // Use official encoding names where we know them, ! // avoiding the Java-only names. When using common ! // encodings where we can easily tell if characters ! // are out of range, we'll escape out-of-range ! // characters using character refs for safety. ! // I _think_ these are all the main synonyms for these! ! if ("UTF8".equals (encoding)) { ! encoding = "UTF-8"; ! } else if ("US-ASCII".equals (encoding) ! || "ASCII".equals (encoding)) { ! dangerMask = (short) 0xff80; ! encoding = "US-ASCII"; ! } else if ("ISO-8859-1".equals (encoding) ! || "8859_1".equals (encoding) ! || "ISO8859_1".equals (encoding)) { ! dangerMask = (short) 0xff00; ! encoding = "ISO-8859-1"; ! } else if ("UNICODE".equals (encoding) ! || "UNICODE-BIG".equals (encoding) ! || "UNICODE-LITTLE".equals (encoding)) { ! encoding = "UTF-16"; ! // TODO: UTF-16BE, UTF-16LE ... no BOM; what ! // release of JDK supports those Unicode names? ! } ! if (dangerMask != 0) ! stringBuf = new CPStringBuilder (); ! } ! this.encoding = encoding; } *************** public class XMLWriter *** 303,339 **** * * @param writer XML text is written to this writer. * @param encoding if non-null, and an XML declaration is written, ! * this is the name that will be used for the character encoding. * * @exception IllegalStateException if the current ! * document hasn't yet ended (with {@link #endDocument}) */ final public void setWriter (Writer writer, String encoding) { ! if (out != null) ! throw new IllegalStateException ( ! "can't change stream in mid course"); ! out = writer; ! if (out != null) ! setEncoding (encoding); ! if (!(out instanceof BufferedWriter)) ! out = new BufferedWriter (out); ! space.push ("default"); } /** * Assigns the line ending style to be used on output. * @param eolString null to use the system default; else ! * "\n", "\r", or "\r\n". */ final public void setEOL (String eolString) { ! if (eolString == null) ! eol = sysEOL; ! else if (!isLineEnd (eolString)) ! eol = eolString; ! else ! throw new IllegalArgumentException (eolString); } /** --- 303,339 ---- * * @param writer XML text is written to this writer. * @param encoding if non-null, and an XML declaration is written, ! * this is the name that will be used for the character encoding. * * @exception IllegalStateException if the current ! * document hasn't yet ended (with {@link #endDocument}) */ final public void setWriter (Writer writer, String encoding) { ! if (out != null) ! throw new IllegalStateException ( ! "can't change stream in mid course"); ! out = writer; ! if (out != null) ! setEncoding (encoding); ! if (!(out instanceof BufferedWriter)) ! out = new BufferedWriter (out); ! space.push ("default"); } /** * Assigns the line ending style to be used on output. * @param eolString null to use the system default; else ! * "\n", "\r", or "\r\n". */ final public void setEOL (String eolString) { ! if (eolString == null) ! eol = sysEOL; ! else if (!isLineEnd (eolString)) ! eol = eolString; ! else ! throw new IllegalArgumentException (eolString); } /** *************** public class XMLWriter *** 342,348 **** */ public void setErrorHandler (ErrorHandler handler) { ! errHandler = handler; } /** --- 342,348 ---- */ public void setErrorHandler (ErrorHandler handler) { ! errHandler = handler; } /** *************** public class XMLWriter *** 355,369 **** protected void fatal (String message, Exception e) throws SAXException { ! SAXParseException x; ! if (locator == null) ! x = new SAXParseException (message, null, null, -1, -1, e); ! else ! x = new SAXParseException (message, locator, e); ! if (errHandler != null) ! errHandler.fatalError (x); ! throw x; } --- 355,369 ---- protected void fatal (String message, Exception e) throws SAXException { ! SAXParseException x; ! if (locator == null) ! x = new SAXParseException (message, null, null, -1, -1, e); ! else ! x = new SAXParseException (message, locator, e); ! if (errHandler != null) ! errHandler.fatalError (x); ! throw x; } *************** public class XMLWriter *** 385,431 **** * be careful of in all cases, as described in the appendix referenced * above, include:

              * ! *
            • Element and attribute names must be in lower case, both ! * in the document and in any CSS style sheet. ! *
            • All XML constructs must be valid as defined by the XHTML ! * "transitional" DTD (including all familiar constructs, ! * even deprecated ones). ! *
            • The root element must be "html". ! *
            • Elements that must be empty (such as <br> ! * must have no content. ! *
            • Use both lang and xml:lang attributes ! * when specifying language. ! *
            • Similarly, use both id and name attributes ! * when defining elements that may be referred to through ! * URI fragment identifiers ... and make sure that the ! * value is a legal NMTOKEN, since not all such HTML 4.0 ! * identifiers are valid in XML. ! *
            • Be careful with character encodings; make sure you provide ! * a <meta http-equiv="Content-type" ! * content="text/xml;charset=..." /> element in ! * the HTML "head" element, naming the same encoding ! * used to create this handler. Also, if that encoding ! * is anything other than US-ASCII, make sure that if ! * the document is given a MIME content type, it has ! * a charset=... attribute with that encoding. ! *
            * *

            Additionally, some of the oldest browsers have additional * quirks, to address with guidelines such as:

              * ! *
            • Processing instructions may be rendered, so avoid them. ! * (Similarly for an XML declaration.) ! *
            • Embedded style sheets and scripts should not contain XML ! * markup delimiters: &, <, and ]]> are trouble. ! *
            • Attribute values should not have line breaks or multiple ! * consecutive white space characters. ! *
            • Use no more than one of the deprecated (transitional) ! * <isindex> elements. ! *
            • Some boolean attributes (such as compact, checked, ! * disabled, readonly, selected, and more) confuse ! * some browsers, since they only understand minimized ! * versions which are illegal in XML. ! *
            * *

            Also, some characteristics of the resulting output may be * a function of whether the document is later given a MIME --- 385,431 ---- * be careful of in all cases, as described in the appendix referenced * above, include:

              * ! *
            • Element and attribute names must be in lower case, both ! * in the document and in any CSS style sheet. ! *
            • All XML constructs must be valid as defined by the XHTML ! * "transitional" DTD (including all familiar constructs, ! * even deprecated ones). ! *
            • The root element must be "html". ! *
            • Elements that must be empty (such as <br> ! * must have no content. ! *
            • Use both lang and xml:lang attributes ! * when specifying language. ! *
            • Similarly, use both id and name attributes ! * when defining elements that may be referred to through ! * URI fragment identifiers ... and make sure that the ! * value is a legal NMTOKEN, since not all such HTML 4.0 ! * identifiers are valid in XML. ! *
            • Be careful with character encodings; make sure you provide ! * a <meta http-equiv="Content-type" ! * content="text/xml;charset=..." /> element in ! * the HTML "head" element, naming the same encoding ! * used to create this handler. Also, if that encoding ! * is anything other than US-ASCII, make sure that if ! * the document is given a MIME content type, it has ! * a charset=... attribute with that encoding. ! *
            * *

            Additionally, some of the oldest browsers have additional * quirks, to address with guidelines such as:

              * ! *
            • Processing instructions may be rendered, so avoid them. ! * (Similarly for an XML declaration.) ! *
            • Embedded style sheets and scripts should not contain XML ! * markup delimiters: &, <, and ]]> are trouble. ! *
            • Attribute values should not have line breaks or multiple ! * consecutive white space characters. ! *
            • Use no more than one of the deprecated (transitional) ! * <isindex> elements. ! *
            • Some boolean attributes (such as compact, checked, ! * disabled, readonly, selected, and more) confuse ! * some browsers, since they only understand minimized ! * versions which are illegal in XML. ! *
            * *

            Also, some characteristics of the resulting output may be * a function of whether the document is later given a MIME *************** public class XMLWriter *** 437,447 **** */ final public void setXhtml (boolean value) { ! if (locator != null) ! throw new IllegalStateException ("started parsing"); ! xhtml = value; ! if (xhtml) ! canonical = false; } /** --- 437,447 ---- */ final public void setXhtml (boolean value) { ! if (locator != null) ! throw new IllegalStateException ("started parsing"); ! xhtml = value; ! if (xhtml) ! canonical = false; } /** *************** public class XMLWriter *** 452,458 **** */ final public boolean isXhtml () { ! return xhtml; } /** --- 452,458 ---- */ final public boolean isXhtml () { ! return xhtml; } /** *************** public class XMLWriter *** 462,472 **** */ final public void setExpandingEntities (boolean value) { ! if (locator != null) ! throw new IllegalStateException ("started parsing"); ! expandingEntities = value; ! if (!expandingEntities) ! canonical = false; } /** --- 462,472 ---- */ final public void setExpandingEntities (boolean value) { ! if (locator != null) ! throw new IllegalStateException ("started parsing"); ! expandingEntities = value; ! if (!expandingEntities) ! canonical = false; } /** *************** public class XMLWriter *** 475,481 **** */ final public boolean isExpandingEntities () { ! return expandingEntities; } /** --- 475,481 ---- */ final public boolean isExpandingEntities () { ! return expandingEntities; } /** *************** public class XMLWriter *** 499,513 **** * to make this be more strictly formatted! * * @exception IllegalStateException thrown if this method is invoked ! * after output has begun. */ final public void setPrettyPrinting (boolean value) { ! if (locator != null) ! throw new IllegalStateException ("started parsing"); ! prettyPrinting = value; ! if (prettyPrinting) ! canonical = false; } /** --- 499,513 ---- * to make this be more strictly formatted! * * @exception IllegalStateException thrown if this method is invoked ! * after output has begun. */ final public void setPrettyPrinting (boolean value) { ! if (locator != null) ! throw new IllegalStateException ("started parsing"); ! prettyPrinting = value; ! if (prettyPrinting) ! canonical = false; } /** *************** public class XMLWriter *** 515,521 **** */ final public boolean isPrettyPrinting () { ! return prettyPrinting; } --- 515,521 ---- */ final public boolean isPrettyPrinting () { ! return prettyPrinting; } *************** public class XMLWriter *** 524,554 **** * meet requirements that are slightly more stringent than the * basic well-formedness ones, and include:

              * ! *
            • Namespace prefixes must not have been changed from those ! * in the original document. (This may only be ensured by setting ! * the SAX2 XMLReader namespace-prefixes feature flag; ! * by default, it is cleared.) * ! *
            • Redundant namespace declaration attributes have been ! * removed. (If an ancestor element defines a namespace prefix ! * and that declaration hasn't been overriden, an element must ! * not redeclare it.) * ! *
            • If comments are not to be included in the canonical output, ! * they must first be removed from the input event stream; this ! * Canonical XML with comments by default. * ! *
            • If the input character encoding was not UCS-based, the ! * character data must have been normalized using Unicode ! * Normalization Form C. (UTF-8 and UTF-16 are UCS-based.) * ! *
            • Attribute values must have been normalized, as is done ! * by any conformant XML processor which processes all external ! * parameter entities. * ! *
            • Similarly, attribute value defaulting has been performed. * ! *
            * *

            Note that fragments of XML documents, as specified by an XPath * node set, may be canonicalized. In such cases, elements may need --- 524,554 ---- * meet requirements that are slightly more stringent than the * basic well-formedness ones, and include:

              * ! *
            • Namespace prefixes must not have been changed from those ! * in the original document. (This may only be ensured by setting ! * the SAX2 XMLReader namespace-prefixes feature flag; ! * by default, it is cleared.) * ! *
            • Redundant namespace declaration attributes have been ! * removed. (If an ancestor element defines a namespace prefix ! * and that declaration hasn't been overriden, an element must ! * not redeclare it.) * ! *
            • If comments are not to be included in the canonical output, ! * they must first be removed from the input event stream; this ! * Canonical XML with comments by default. * ! *
            • If the input character encoding was not UCS-based, the ! * character data must have been normalized using Unicode ! * Normalization Form C. (UTF-8 and UTF-16 are UCS-based.) * ! *
            • Attribute values must have been normalized, as is done ! * by any conformant XML processor which processes all external ! * parameter entities. * ! *
            • Similarly, attribute value defaulting has been performed. * ! *
            * *

            Note that fragments of XML documents, as specified by an XPath * node set, may be canonicalized. In such cases, elements may need *************** public class XMLWriter *** 556,573 **** * context). * * @exception IllegalArgumentException if the output encoding ! * is anything other than UTF-8. */ final public void setCanonical (boolean value) { ! if (value && !"UTF-8".equals (encoding)) ! throw new IllegalArgumentException ("encoding != UTF-8"); ! canonical = value; ! if (canonical) { ! prettyPrinting = xhtml = false; ! expandingEntities = true; ! eol = "\n"; ! } } --- 556,573 ---- * context). * * @exception IllegalArgumentException if the output encoding ! * is anything other than UTF-8. */ final public void setCanonical (boolean value) { ! if (value && !"UTF-8".equals (encoding)) ! throw new IllegalArgumentException ("encoding != UTF-8"); ! canonical = value; ! if (canonical) { ! prettyPrinting = xhtml = false; ! expandingEntities = true; ! eol = "\n"; ! } } *************** public class XMLWriter *** 576,582 **** */ final public boolean isCanonical () { ! return canonical; } --- 576,582 ---- */ final public boolean isCanonical () { ! return canonical; } *************** public class XMLWriter *** 588,595 **** final public void flush () throws IOException { ! if (out != null) ! out.flush (); } --- 588,595 ---- final public void flush () throws IOException { ! if (out != null) ! out.flush (); } *************** public class XMLWriter *** 597,603 **** // FIXME: probably want a subclass that holds a lot of these... // and maybe more! ! /** * Writes the string as if characters() had been called on the contents * of the string. This is particularly useful when applications act as --- 597,603 ---- // FIXME: probably want a subclass that holds a lot of these... // and maybe more! ! /** * Writes the string as if characters() had been called on the contents * of the string. This is particularly useful when applications act as *************** public class XMLWriter *** 606,613 **** final public void write (String data) throws SAXException { ! char buf [] = data.toCharArray (); ! characters (buf, 0, buf.length); } --- 606,613 ---- final public void write (String data) throws SAXException { ! char buf [] = data.toCharArray (); ! characters (buf, 0, buf.length); } *************** public class XMLWriter *** 617,637 **** * @see #startElement */ public void writeElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts, ! String content ) throws SAXException { ! if (content == null || content.length () == 0) { ! writeEmptyElement (uri, localName, qName, atts); ! return; ! } ! startElement (uri, localName, qName, atts); ! char chars [] = content.toCharArray (); ! characters (chars, 0, chars.length); ! endElement (uri, localName, qName); } --- 617,637 ---- * @see #startElement */ public void writeElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts, ! String content ) throws SAXException { ! if (content == null || content.length () == 0) { ! writeEmptyElement (uri, localName, qName, atts); ! return; ! } ! startElement (uri, localName, qName, atts); ! char chars [] = content.toCharArray (); ! characters (chars, 0, chars.length); ! endElement (uri, localName, qName); } *************** public class XMLWriter *** 642,655 **** * @see #startElement */ public void writeElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts, ! int content ) throws SAXException { ! writeElement (uri, localName, qName, atts, Integer.toString (content)); } --- 642,655 ---- * @see #startElement */ public void writeElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts, ! int content ) throws SAXException { ! writeElement (uri, localName, qName, atts, Integer.toString (content)); } *************** public class XMLWriter *** 657,663 **** /** SAX1: provides parser status information */ final public void setDocumentLocator (Locator l) { ! locator = l; } --- 657,663 ---- /** SAX1: provides parser status information */ final public void setDocumentLocator (Locator l) { ! locator = l; } *************** public class XMLWriter *** 665,671 **** private static final String xhtmlFullDTD = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"; ! /** * SAX1: indicates the beginning of a document parse. * If you're writing (well formed) fragments of XML, neither --- 665,671 ---- private static final String xhtmlFullDTD = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"; ! /** * SAX1: indicates the beginning of a document parse. * If you're writing (well formed) fragments of XML, neither *************** public class XMLWriter *** 675,734 **** public void startDocument () throws SAXException { ! try { ! if (out == null) ! throw new IllegalStateException ( ! "null Writer given to XMLWriter"); ! // Not all parsers provide the locator we want; this also ! // flags whether events are being sent to this object yet. ! // We could only have this one call if we only printed whole ! // documents ... but we also print fragments, so most of the ! // callbacks here replicate this test. ! if (locator == null) ! locator = new LocatorImpl (); ! ! // Unless the data is in US-ASCII or we're canonicalizing, write ! // the XML declaration if we know the encoding. US-ASCII won't ! // normally get mangled by web server confusion about the ! // character encodings used. Plus, it's an easy way to ! // ensure we can write ASCII that's unlikely to confuse ! // elderly HTML parsers. ! if (!canonical ! && dangerMask != (short) 0xff80 ! && encoding != null) { ! rawWrite (""); ! newline (); ! } ! if (xhtml) { ! rawWrite (""); ! newline (); ! newline (); ! // fake the rest of the handler into ignoring ! // everything until the root element, so any ! // XHTML DTD comments, PIs, etc are ignored ! startedDoctype = true; ! } ! entityNestLevel = 0; ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** --- 675,734 ---- public void startDocument () throws SAXException { ! try { ! if (out == null) ! throw new IllegalStateException ( ! "null Writer given to XMLWriter"); ! // Not all parsers provide the locator we want; this also ! // flags whether events are being sent to this object yet. ! // We could only have this one call if we only printed whole ! // documents ... but we also print fragments, so most of the ! // callbacks here replicate this test. ! if (locator == null) ! locator = new LocatorImpl (); ! // Unless the data is in US-ASCII or we're canonicalizing, write ! // the XML declaration if we know the encoding. US-ASCII won't ! // normally get mangled by web server confusion about the ! // character encodings used. Plus, it's an easy way to ! // ensure we can write ASCII that's unlikely to confuse ! // elderly HTML parsers. ! if (!canonical ! && dangerMask != (short) 0xff80 ! && encoding != null) { ! rawWrite (""); ! newline (); ! } ! if (xhtml) { ! rawWrite (""); ! newline (); ! newline (); ! // fake the rest of the handler into ignoring ! // everything until the root element, so any ! // XHTML DTD comments, PIs, etc are ignored ! startedDoctype = true; ! } ! entityNestLevel = 0; ! ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** *************** public class XMLWriter *** 740,903 **** public void endDocument () throws SAXException { ! try { ! if (!canonical) { ! newline (); ! newline (); ! } ! out.close (); ! out = null; ! locator = null; ! } catch (IOException e) { ! fatal ("can't write", e); ! } } // XHTML elements declared as EMPTY print differently final private static boolean isEmptyElementTag (String tag) { ! switch (tag.charAt (0)) { ! case 'a': return "area".equals (tag); ! case 'b': return "base".equals (tag) ! || "basefont".equals (tag) ! || "br".equals (tag); ! case 'c': return "col".equals (tag); ! case 'f': return "frame".equals (tag); ! case 'h': return "hr".equals (tag); ! case 'i': return "img".equals (tag) ! || "input".equals (tag) ! || "isindex".equals (tag); ! case 'l': return "link".equals (tag); ! case 'm': return "meta".equals (tag); ! case 'p': return "param".equals (tag); ! } ! return false; } private static boolean indentBefore (String tag) { ! // basically indent before block content ! // and within structure like tables, lists ! switch (tag.charAt (0)) { ! case 'a': return "applet".equals (tag); ! case 'b': return "body".equals (tag) ! || "blockquote".equals (tag); ! case 'c': return "center".equals (tag); ! case 'f': return "frame".equals (tag) ! || "frameset".equals (tag); ! case 'h': return "head".equals (tag); ! case 'm': return "meta".equals (tag); ! case 'o': return "object".equals (tag); ! case 'p': return "param".equals (tag) ! || "pre".equals (tag); ! case 's': return "style".equals (tag); ! case 't': return "title".equals (tag) ! || "td".equals (tag) ! || "th".equals (tag); ! } ! // ... but not inline elements like "em", "b", "font" ! return false; } private static boolean spaceBefore (String tag) { ! // blank line AND INDENT before certain structural content ! switch (tag.charAt (0)) { ! case 'h': return "h1".equals (tag) ! || "h2".equals (tag) ! || "h3".equals (tag) ! || "h4".equals (tag) ! || "h5".equals (tag) ! || "h6".equals (tag) ! || "hr".equals (tag); ! case 'l': return "li".equals (tag); ! case 'o': return "ol".equals (tag); ! case 'p': return "p".equals (tag); ! case 't': return "table".equals (tag) ! || "tr".equals (tag); ! case 'u': return "ul".equals (tag); ! } ! return false; } // XHTML DTDs say these three have xml:space="preserve" private static boolean spacePreserve (String tag) { ! return "pre".equals (tag) ! || "style".equals (tag) ! || "script".equals (tag); } /** * SAX2: ignored. */ final public void startPrefixMapping (String prefix, String uri) ! {} /** * SAX2: ignored. */ final public void endPrefixMapping (String prefix) ! {} private void writeStartTag ( ! String name, ! Attributes atts, ! boolean isEmpty ) throws SAXException, IOException { ! rawWrite ('<'); ! rawWrite (name); ! // write out attributes ... sorting is particularly useful ! // with output that's been heavily defaulted. ! if (atts != null && atts.getLength () != 0) { ! // Set up to write, with optional sorting ! int indices [] = new int [atts.getLength ()]; ! for (int i= 0; i < indices.length; i++) ! indices [i] = i; ! ! // optionally sort // FIXME: canon xml demands xmlns nodes go first, // and sorting by URI first (empty first) then localname // it should maybe use a different sort ! if (canonical || prettyPrinting) { ! // insertion sort by attribute name ! for (int i = 1; i < indices.length; i++) { ! int n = indices [i], j; ! String s = atts.getQName (n); ! for (j = i - 1; j >= 0; j--) { ! if (s.compareTo (atts.getQName (indices [j])) ! >= 0) ! break; ! indices [j + 1] = indices [j]; ! } ! indices [j + 1] = n; ! } ! } ! // write, sorted or no ! for (int i= 0; i < indices.length; i++) { ! String s = atts.getQName (indices [i]); ! if (s == null || "".equals (s)) ! throw new IllegalArgumentException ("no XML name"); ! rawWrite (" "); ! rawWrite (s); ! rawWrite ("="); ! writeQuotedValue (atts.getValue (indices [i]), ! CTX_ATTRIBUTE); ! } ! } ! if (isEmpty) ! rawWrite (" /"); ! rawWrite ('>'); } /** --- 740,903 ---- public void endDocument () throws SAXException { ! try { ! if (!canonical) { ! newline (); ! newline (); ! } ! out.close (); ! out = null; ! locator = null; ! } catch (IOException e) { ! fatal ("can't write", e); ! } } // XHTML elements declared as EMPTY print differently final private static boolean isEmptyElementTag (String tag) { ! switch (tag.charAt (0)) { ! case 'a': return "area".equals (tag); ! case 'b': return "base".equals (tag) ! || "basefont".equals (tag) ! || "br".equals (tag); ! case 'c': return "col".equals (tag); ! case 'f': return "frame".equals (tag); ! case 'h': return "hr".equals (tag); ! case 'i': return "img".equals (tag) ! || "input".equals (tag) ! || "isindex".equals (tag); ! case 'l': return "link".equals (tag); ! case 'm': return "meta".equals (tag); ! case 'p': return "param".equals (tag); ! } ! return false; } private static boolean indentBefore (String tag) { ! // basically indent before block content ! // and within structure like tables, lists ! switch (tag.charAt (0)) { ! case 'a': return "applet".equals (tag); ! case 'b': return "body".equals (tag) ! || "blockquote".equals (tag); ! case 'c': return "center".equals (tag); ! case 'f': return "frame".equals (tag) ! || "frameset".equals (tag); ! case 'h': return "head".equals (tag); ! case 'm': return "meta".equals (tag); ! case 'o': return "object".equals (tag); ! case 'p': return "param".equals (tag) ! || "pre".equals (tag); ! case 's': return "style".equals (tag); ! case 't': return "title".equals (tag) ! || "td".equals (tag) ! || "th".equals (tag); ! } ! // ... but not inline elements like "em", "b", "font" ! return false; } private static boolean spaceBefore (String tag) { ! // blank line AND INDENT before certain structural content ! switch (tag.charAt (0)) { ! case 'h': return "h1".equals (tag) ! || "h2".equals (tag) ! || "h3".equals (tag) ! || "h4".equals (tag) ! || "h5".equals (tag) ! || "h6".equals (tag) ! || "hr".equals (tag); ! case 'l': return "li".equals (tag); ! case 'o': return "ol".equals (tag); ! case 'p': return "p".equals (tag); ! case 't': return "table".equals (tag) ! || "tr".equals (tag); ! case 'u': return "ul".equals (tag); ! } ! return false; } // XHTML DTDs say these three have xml:space="preserve" private static boolean spacePreserve (String tag) { ! return "pre".equals (tag) ! || "style".equals (tag) ! || "script".equals (tag); } /** * SAX2: ignored. */ final public void startPrefixMapping (String prefix, String uri) ! {} /** * SAX2: ignored. */ final public void endPrefixMapping (String prefix) ! {} private void writeStartTag ( ! String name, ! Attributes atts, ! boolean isEmpty ) throws SAXException, IOException { ! rawWrite ('<'); ! rawWrite (name); ! // write out attributes ... sorting is particularly useful ! // with output that's been heavily defaulted. ! if (atts != null && atts.getLength () != 0) { ! // Set up to write, with optional sorting ! int indices [] = new int [atts.getLength ()]; ! for (int i= 0; i < indices.length; i++) ! indices [i] = i; ! ! // optionally sort // FIXME: canon xml demands xmlns nodes go first, // and sorting by URI first (empty first) then localname // it should maybe use a different sort ! if (canonical || prettyPrinting) { ! // insertion sort by attribute name ! for (int i = 1; i < indices.length; i++) { ! int n = indices [i], j; ! String s = atts.getQName (n); ! for (j = i - 1; j >= 0; j--) { ! if (s.compareTo (atts.getQName (indices [j])) ! >= 0) ! break; ! indices [j + 1] = indices [j]; ! } ! indices [j + 1] = n; ! } ! } ! // write, sorted or no ! for (int i= 0; i < indices.length; i++) { ! String s = atts.getQName (indices [i]); ! if (s == null || "".equals (s)) ! throw new IllegalArgumentException ("no XML name"); ! rawWrite (" "); ! rawWrite (s); ! rawWrite ("="); ! writeQuotedValue (atts.getValue (indices [i]), ! CTX_ATTRIBUTE); ! } ! } ! if (isEmpty) ! rawWrite (" /"); ! rawWrite ('>'); } /** *************** public class XMLWriter *** 907,965 **** * not all user agents handle them correctly. */ final public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ) throws SAXException { ! startedDoctype = false; ! if (locator == null) ! locator = new LocatorImpl (); ! ! if (qName == null || "".equals (qName)) ! throw new IllegalArgumentException ("no XML name"); ! try { ! if (entityNestLevel != 0) ! return; ! if (prettyPrinting) { ! String whitespace = null; ! if (xhtml && spacePreserve (qName)) ! whitespace = "preserve"; ! else if (atts != null) ! whitespace = atts.getValue ("xml:space"); ! if (whitespace == null) ! whitespace = (String) space.peek (); ! space.push (whitespace); ! if ("default".equals (whitespace)) { ! if (xhtml) { ! if (spaceBefore (qName)) { ! newline (); ! doIndent (); ! } else if (indentBefore (qName)) ! doIndent (); ! // else it's inlined, modulo line length ! // FIXME: incrementing element nest level ! // for inlined elements causes ugliness ! } else ! doIndent (); ! } ! } ! elementNestLevel++; ! writeStartTag (qName, atts, xhtml && isEmptyElementTag (qName)); ! if (xhtml) { // FIXME: if this is an XHTML "pre" element, turn // off automatic wrapping. ! } ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** --- 907,965 ---- * not all user agents handle them correctly. */ final public void startElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ) throws SAXException { ! startedDoctype = false; ! if (locator == null) ! locator = new LocatorImpl (); ! if (qName == null || "".equals (qName)) ! throw new IllegalArgumentException ("no XML name"); ! try { ! if (entityNestLevel != 0) ! return; ! if (prettyPrinting) { ! String whitespace = null; ! if (xhtml && spacePreserve (qName)) ! whitespace = "preserve"; ! else if (atts != null) ! whitespace = atts.getValue ("xml:space"); ! if (whitespace == null) ! whitespace = (String) space.peek (); ! space.push (whitespace); ! if ("default".equals (whitespace)) { ! if (xhtml) { ! if (spaceBefore (qName)) { ! newline (); ! doIndent (); ! } else if (indentBefore (qName)) ! doIndent (); ! // else it's inlined, modulo line length ! // FIXME: incrementing element nest level ! // for inlined elements causes ugliness ! } else ! doIndent (); ! } ! } ! elementNestLevel++; ! writeStartTag (qName, atts, xhtml && isEmptyElementTag (qName)); ! ! if (xhtml) { // FIXME: if this is an XHTML "pre" element, turn // off automatic wrapping. ! } ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** *************** public class XMLWriter *** 967,988 **** * @see #startElement */ public void writeEmptyElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ) throws SAXException { ! if (canonical) { ! startElement (uri, localName, qName, atts); ! endElement (uri, localName, qName); ! } else { ! try { ! writeStartTag (qName, atts, true); ! } catch (IOException e) { ! fatal ("can't write", e); ! } ! } } --- 967,988 ---- * @see #startElement */ public void writeEmptyElement ( ! String uri, ! String localName, ! String qName, ! Attributes atts ) throws SAXException { ! if (canonical) { ! startElement (uri, localName, qName, atts); ! endElement (uri, localName, qName); ! } else { ! try { ! writeStartTag (qName, atts, true); ! } catch (IOException e) { ! fatal ("can't write", e); ! } ! } } *************** public class XMLWriter *** 990,1057 **** final public void endElement (String uri, String localName, String qName) throws SAXException { ! if (qName == null || "".equals (qName)) ! throw new IllegalArgumentException ("no XML name"); ! try { ! elementNestLevel--; ! if (entityNestLevel != 0) ! return; ! if (xhtml && isEmptyElementTag (qName)) ! return; ! rawWrite ("'); ! if (prettyPrinting) { ! if (!space.empty ()) ! space.pop (); ! else ! fatal ("stack discipline", null); ! } ! if (elementNestLevel == 0) ! inEpilogue = true; ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX1: reports content characters */ final public void characters (char ch [], int start, int length) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! try { ! if (entityNestLevel != 0) ! return; ! if (inCDATA) { ! escapeChars (ch, start, length, CTX_UNPARSED); ! } else { ! escapeChars (ch, start, length, CTX_CONTENT); ! } ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX1: reports ignorable whitespace */ final public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! try { ! if (entityNestLevel != 0) ! return; ! // don't forget to map NL to CRLF, CR, etc ! escapeChars (ch, start, length, CTX_CONTENT); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** --- 990,1057 ---- final public void endElement (String uri, String localName, String qName) throws SAXException { ! if (qName == null || "".equals (qName)) ! throw new IllegalArgumentException ("no XML name"); ! try { ! elementNestLevel--; ! if (entityNestLevel != 0) ! return; ! if (xhtml && isEmptyElementTag (qName)) ! return; ! rawWrite ("'); ! if (prettyPrinting) { ! if (!space.empty ()) ! space.pop (); ! else ! fatal ("stack discipline", null); ! } ! if (elementNestLevel == 0) ! inEpilogue = true; ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX1: reports content characters */ final public void characters (char ch [], int start, int length) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! try { ! if (entityNestLevel != 0) ! return; ! if (inCDATA) { ! escapeChars (ch, start, length, CTX_UNPARSED); ! } else { ! escapeChars (ch, start, length, CTX_CONTENT); ! } ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX1: reports ignorable whitespace */ final public void ignorableWhitespace (char ch [], int start, int length) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! try { ! if (entityNestLevel != 0) ! return; ! // don't forget to map NL to CRLF, CR, etc ! escapeChars (ch, start, length, CTX_CONTENT); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** *************** public class XMLWriter *** 1063,1106 **** final public void processingInstruction (String target, String data) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! // don't print internal subset for XHTML ! if (xhtml && startedDoctype) ! return; ! // ancient HTML browsers might render these ... their loss. ! // to prevent: "if (xhtml) return;". ! try { ! if (entityNestLevel != 0) ! return; ! if (canonical && inEpilogue) ! newline (); ! rawWrite (""); ! if (elementNestLevel == 0 && !(canonical && inEpilogue)) ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX1: indicates a non-expanded entity reference */ public void skippedEntity (String name) throws SAXException { ! try { ! rawWrite ("&"); ! rawWrite (name); ! rawWrite (";"); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } // SAX2 LexicalHandler --- 1063,1106 ---- final public void processingInstruction (String target, String data) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! // don't print internal subset for XHTML ! if (xhtml && startedDoctype) ! return; ! // ancient HTML browsers might render these ... their loss. ! // to prevent: "if (xhtml) return;". ! try { ! if (entityNestLevel != 0) ! return; ! if (canonical && inEpilogue) ! newline (); ! rawWrite (""); ! if (elementNestLevel == 0 && !(canonical && inEpilogue)) ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX1: indicates a non-expanded entity reference */ public void skippedEntity (String name) throws SAXException { ! try { ! rawWrite ("&"); ! rawWrite (name); ! rawWrite (";"); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } // SAX2 LexicalHandler *************** public class XMLWriter *** 1109,1143 **** final public void startCDATA () throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! ! if (canonical) ! return; ! try { ! inCDATA = true; ! if (entityNestLevel == 0) ! rawWrite ("SAX2: called after parsing CDATA characters */ final public void endCDATA () throws SAXException { ! if (canonical) ! return; ! try { ! inCDATA = false; ! if (entityNestLevel == 0) ! rawWrite ("]]>"); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** --- 1109,1143 ---- final public void startCDATA () throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! if (canonical) ! return; ! ! try { ! inCDATA = true; ! if (entityNestLevel == 0) ! rawWrite ("SAX2: called after parsing CDATA characters */ final public void endCDATA () throws SAXException { ! if (canonical) ! return; ! try { ! inCDATA = false; ! if (entityNestLevel == 0) ! rawWrite ("]]>"); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** *************** public class XMLWriter *** 1148,1192 **** final public void startDTD (String name, String publicId, String systemId) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! if (xhtml) ! return; ! try { ! inDoctype = startedDoctype = true; ! if (canonical) ! return; ! rawWrite ("SAX2: called after the doctype is parsed */ final public void endDTD () throws SAXException { ! inDoctype = false; ! if (canonical || xhtml) ! return; ! try { ! rawWrite ("]>"); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** --- 1148,1192 ---- final public void startDTD (String name, String publicId, String systemId) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! if (xhtml) ! return; ! try { ! inDoctype = startedDoctype = true; ! if (canonical) ! return; ! rawWrite ("SAX2: called after the doctype is parsed */ final public void endDTD () throws SAXException { ! inDoctype = false; ! if (canonical || xhtml) ! return; ! try { ! rawWrite ("]>"); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** *************** public class XMLWriter *** 1195,1224 **** final public void startEntity (String name) throws SAXException { ! try { ! boolean writeEOL = true; ! // Predefined XHTML entities (for characters) will get ! // mapped back later. ! if (xhtml || expandingEntities) ! return; ! entityNestLevel++; ! if (name.equals ("[dtd]")) ! return; ! if (entityNestLevel != 1) ! return; ! if (!name.startsWith ("%")) { ! writeEOL = false; ! rawWrite ('&'); ! } ! rawWrite (name); ! rawWrite (';'); ! if (writeEOL) ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** --- 1195,1224 ---- final public void startEntity (String name) throws SAXException { ! try { ! boolean writeEOL = true; ! // Predefined XHTML entities (for characters) will get ! // mapped back later. ! if (xhtml || expandingEntities) ! return; ! entityNestLevel++; ! if (name.equals ("[dtd]")) ! return; ! if (entityNestLevel != 1) ! return; ! if (!name.startsWith ("%")) { ! writeEOL = false; ! rawWrite ('&'); ! } ! rawWrite (name); ! rawWrite (';'); ! if (writeEOL) ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** *************** public class XMLWriter *** 1227,1235 **** final public void endEntity (String name) throws SAXException { ! if (xhtml || expandingEntities) ! return; ! entityNestLevel--; } /** --- 1227,1235 ---- final public void endEntity (String name) throws SAXException { ! if (xhtml || expandingEntities) ! return; ! entityNestLevel--; } /** *************** public class XMLWriter *** 1243,1536 **** final public void comment (char ch [], int start, int length) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! // don't print internal subset for XHTML ! if (xhtml && startedDoctype) ! return; ! // don't print comment in doctype for canon xml ! if (canonical && inDoctype) ! return; ! try { ! boolean indent; ! if (prettyPrinting && space.empty ()) ! fatal ("stack discipline", null); ! indent = prettyPrinting && "default".equals (space.peek ()); ! if (entityNestLevel != 0) ! return; ! if (indent) ! doIndent (); ! if (canonical && inEpilogue) ! newline (); ! rawWrite (""); ! if (indent) ! doIndent (); ! if (elementNestLevel == 0 && !(canonical && inEpilogue)) ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } // SAX1 DTDHandler /** SAX1: called on notation declarations */ final public void notationDecl (String name, ! String publicId, String systemId) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite (""); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX1: called on unparsed entity declarations */ final public void unparsedEntityDecl (String name, ! String publicId, String systemId, ! String notationName) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) { ! // FIXME: write to temporary buffer, and make the start ! // of the root element write these declarations. ! return; ! } ! if (entityNestLevel != 0) ! return; ! rawWrite (""); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } // SAX2 DeclHandler /** SAX2: called on attribute declarations */ final public void attributeDecl (String eName, String aName, ! String type, String mode, String value) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite ("'); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX2: called on element declarations */ final public void elementDecl (String name, String model) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite ("'); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX2: called on external entity declarations */ final public void externalEntityDecl ( ! String name, ! String publicId, ! String systemId) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite (""); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX2: called on internal entity declarations */ final public void internalEntityDecl (String name, String value) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite ("'); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } private void writeQuotedValue (String value, int code) throws SAXException, IOException { ! char buf [] = value.toCharArray (); ! int off = 0, len = buf.length; ! // we can't add line breaks to attribute/entity/... values ! noWrap = true; ! rawWrite ('"'); ! escapeChars (buf, off, len, code); ! rawWrite ('"'); ! noWrap = false; } ! // From "HTMLlat1x.ent" ... names of entities for ISO-8859-1 // (Latin/1) characters, all codes: 160-255 (0xA0-0xFF). // Codes 128-159 have no assigned values. private static final String HTMLlat1x [] = { ! // 160 ! "nbsp", "iexcl", "cent", "pound", "curren", ! "yen", "brvbar", "sect", "uml", "copy", ! // 170 ! "ordf", "laquo", "not", "shy", "reg", ! "macr", "deg", "plusmn", "sup2", "sup3", ! // 180 ! "acute", "micro", "para", "middot", "cedil", ! "sup1", "ordm", "raquo", "frac14", "frac12", ! // 190 ! "frac34", "iquest", "Agrave", "Aacute", "Acirc", ! "Atilde", "Auml", "Aring", "AElig", "Ccedil", ! // 200 ! "Egrave", "Eacute", "Ecirc", "Euml", "Igrave", ! "Iacute", "Icirc", "Iuml", "ETH", "Ntilde", ! // 210 ! "Ograve", "Oacute", "Ocirc", "Otilde", "Ouml", ! "times", "Oslash", "Ugrave", "Uacute", "Ucirc", ! // 220 ! "Uuml", "Yacute", "THORN", "szlig", "agrave", ! "aacute", "acirc", "atilde", "auml", "aring", ! // 230 ! "aelig", "ccedil", "egrave", "eacute", "ecirc", ! "euml", "igrave", "iacute", "icirc", "iuml", ! // 240 ! "eth", "ntilde", "ograve", "oacute", "ocirc", ! "otilde", "ouml", "divide", "oslash", "ugrave", ! // 250 ! "uacute", "ucirc", "uuml", "yacute", "thorn", ! "yuml" }; // From "HTMLsymbolx.ent" ... some of the symbols that // we can conveniently handle. Entities for the Greek. // alphabet (upper and lower cases) are compact. private static final String HTMLsymbolx_GR [] = { ! // 913 ! "Alpha", "Beta", "Gamma", "Delta", "Epsilon", ! "Zeta", "Eta", "Theta", "Iota", "Kappa", ! // 923 ! "Lambda", "Mu", "Nu", "Xi", "Omicron", ! "Pi", "Rho", null, "Sigma", "Tau", ! // 933 ! "Upsilon", "Phi", "Chi", "Psi", "Omega" }; private static final String HTMLsymbolx_gr [] = { ! // 945 ! "alpha", "beta", "gamma", "delta", "epsilon", ! "zeta", "eta", "theta", "iota", "kappa", ! // 955 ! "lambda", "mu", "nu", "xi", "omicron", ! "pi", "rho", "sigmaf", "sigma", "tau", ! // 965 ! "upsilon", "phi", "chi", "psi", "omega" }; --- 1243,1536 ---- final public void comment (char ch [], int start, int length) throws SAXException { ! if (locator == null) ! locator = new LocatorImpl (); ! // don't print internal subset for XHTML ! if (xhtml && startedDoctype) ! return; ! // don't print comment in doctype for canon xml ! if (canonical && inDoctype) ! return; ! try { ! boolean indent; ! if (prettyPrinting && space.empty ()) ! fatal ("stack discipline", null); ! indent = prettyPrinting && "default".equals (space.peek ()); ! if (entityNestLevel != 0) ! return; ! if (indent) ! doIndent (); ! if (canonical && inEpilogue) ! newline (); ! rawWrite (""); ! if (indent) ! doIndent (); ! if (elementNestLevel == 0 && !(canonical && inEpilogue)) ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } // SAX1 DTDHandler /** SAX1: called on notation declarations */ final public void notationDecl (String name, ! String publicId, String systemId) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite (""); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX1: called on unparsed entity declarations */ final public void unparsedEntityDecl (String name, ! String publicId, String systemId, ! String notationName) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) { ! // FIXME: write to temporary buffer, and make the start ! // of the root element write these declarations. ! return; ! } ! if (entityNestLevel != 0) ! return; ! rawWrite (""); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } // SAX2 DeclHandler /** SAX2: called on attribute declarations */ final public void attributeDecl (String eName, String aName, ! String type, String mode, String value) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite ("'); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX2: called on element declarations */ final public void elementDecl (String name, String model) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite ("'); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX2: called on external entity declarations */ final public void externalEntityDecl ( ! String name, ! String publicId, ! String systemId) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite (""); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } /** SAX2: called on internal entity declarations */ final public void internalEntityDecl (String name, String value) throws SAXException { ! if (xhtml) ! return; ! try { ! // At this time, only SAX2 callbacks start these. ! if (!startedDoctype) ! return; ! if (entityNestLevel != 0) ! return; ! rawWrite ("'); ! newline (); ! } catch (IOException e) { ! fatal ("can't write", e); ! } } private void writeQuotedValue (String value, int code) throws SAXException, IOException { ! char buf [] = value.toCharArray (); ! int off = 0, len = buf.length; ! // we can't add line breaks to attribute/entity/... values ! noWrap = true; ! rawWrite ('"'); ! escapeChars (buf, off, len, code); ! rawWrite ('"'); ! noWrap = false; } ! // From "HTMLlat1x.ent" ... names of entities for ISO-8859-1 // (Latin/1) characters, all codes: 160-255 (0xA0-0xFF). // Codes 128-159 have no assigned values. private static final String HTMLlat1x [] = { ! // 160 ! "nbsp", "iexcl", "cent", "pound", "curren", ! "yen", "brvbar", "sect", "uml", "copy", ! // 170 ! "ordf", "laquo", "not", "shy", "reg", ! "macr", "deg", "plusmn", "sup2", "sup3", ! // 180 ! "acute", "micro", "para", "middot", "cedil", ! "sup1", "ordm", "raquo", "frac14", "frac12", ! // 190 ! "frac34", "iquest", "Agrave", "Aacute", "Acirc", ! "Atilde", "Auml", "Aring", "AElig", "Ccedil", ! // 200 ! "Egrave", "Eacute", "Ecirc", "Euml", "Igrave", ! "Iacute", "Icirc", "Iuml", "ETH", "Ntilde", ! // 210 ! "Ograve", "Oacute", "Ocirc", "Otilde", "Ouml", ! "times", "Oslash", "Ugrave", "Uacute", "Ucirc", ! // 220 ! "Uuml", "Yacute", "THORN", "szlig", "agrave", ! "aacute", "acirc", "atilde", "auml", "aring", ! // 230 ! "aelig", "ccedil", "egrave", "eacute", "ecirc", ! "euml", "igrave", "iacute", "icirc", "iuml", ! // 240 ! "eth", "ntilde", "ograve", "oacute", "ocirc", ! "otilde", "ouml", "divide", "oslash", "ugrave", ! // 250 ! "uacute", "ucirc", "uuml", "yacute", "thorn", ! "yuml" }; // From "HTMLsymbolx.ent" ... some of the symbols that // we can conveniently handle. Entities for the Greek. // alphabet (upper and lower cases) are compact. private static final String HTMLsymbolx_GR [] = { ! // 913 ! "Alpha", "Beta", "Gamma", "Delta", "Epsilon", ! "Zeta", "Eta", "Theta", "Iota", "Kappa", ! // 923 ! "Lambda", "Mu", "Nu", "Xi", "Omicron", ! "Pi", "Rho", null, "Sigma", "Tau", ! // 933 ! "Upsilon", "Phi", "Chi", "Psi", "Omega" }; private static final String HTMLsymbolx_gr [] = { ! // 945 ! "alpha", "beta", "gamma", "delta", "epsilon", ! "zeta", "eta", "theta", "iota", "kappa", ! // 955 ! "lambda", "mu", "nu", "xi", "omicron", ! "pi", "rho", "sigmaf", "sigma", "tau", ! // 965 ! "upsilon", "phi", "chi", "psi", "omega" }; *************** public class XMLWriter *** 1539,1806 **** private void escapeChars (char buf [], int off, int len, int code) throws SAXException, IOException { ! int first = 0; ! if (off < 0) { ! off = 0; ! len = buf.length; ! } ! for (int i = 0; i < len; i++) { ! String esc; ! char c = buf [off + i]; ! switch (c) { ! // Note that CTX_ATTRIBUTE isn't explicitly tested here; ! // all syntax delimiters are escaped in CTX_ATTRIBUTE, ! // otherwise it's similar to CTX_CONTENT ! // ampersand flags entity references; entity replacement ! // text has unexpanded references, other text doesn't. ! case '&': ! if (code == CTX_ENTITY || code == CTX_UNPARSED) ! continue; ! esc = "amp"; ! break; ! // attributes and text may NOT have literal '<', but ! // entities may have markup constructs ! case '<': ! if (code == CTX_ENTITY || code == CTX_UNPARSED) ! continue; ! esc = "lt"; ! break; ! // as above re markup constructs; but otherwise ! // except when canonicalizing, this is for consistency ! case '>': ! if (code == CTX_ENTITY || code == CTX_UNPARSED) ! continue; ! esc = "gt"; ! break; ! case '\'': ! if (code == CTX_CONTENT || code == CTX_UNPARSED) ! continue; ! if (canonical) ! continue; ! esc = "apos"; ! break; ! // needed when printing quoted attribute/entity values ! case '"': ! if (code == CTX_CONTENT || code == CTX_UNPARSED) ! continue; ! esc = "quot"; ! break; ! // make line ends work per host OS convention ! case '\n': ! esc = eol; ! break; ! // ! // No other characters NEED special treatment ... except ! // for encoding-specific issues, like whether the character ! // can really be represented in that encoding. ! // ! default: ! // ! // There are characters we can never write safely; getting ! // them is an error. ! // ! // (a) They're never legal in XML ... detected by range ! // checks, and (eventually) by remerging surrogate ! // pairs on output. (Easy error for apps to prevent.) ! // ! // (b) This encoding can't represent them, and we ! // can't make reference substitution (e.g. inside ! // CDATA sections, names, PI data, etc). (Hard for ! // apps to prevent, except by using UTF-8 or UTF-16 ! // as their output encoding.) ! // ! // We know a very little bit about what characters ! // the US-ASCII and ISO-8859-1 encodings support. For ! // other encodings we can't detect the second type of ! // error at all. (Never an issue for UTF-8 or UTF-16.) ! // // FIXME: CR in CDATA is an error; in text, turn to a char ref // FIXME: CR/LF/TAB in attributes should become char refs ! if ((c > 0xfffd) ! || ((c < 0x0020) && !((c == 0x0009) ! || (c == 0x000A) || (c == 0x000D))) ! || (((c & dangerMask) != 0) ! && (code == CTX_UNPARSED))) { ! // if case (b) in CDATA, we might end the section, ! // write a reference, then restart ... possible ! // in one DOM L3 draft. ! throw new CharConversionException ( ! "Illegal or non-writable character: U+" ! + Integer.toHexString (c)); ! } ! // ! // If the output encoding represents the character ! // directly, let it do so! Else we'll escape it. ! // ! if ((c & dangerMask) == 0) ! continue; ! esc = null; ! // Avoid numeric refs where symbolic ones exist, as ! // symbolic ones make more sense to humans reading! ! if (xhtml) { ! // all the HTMLlat1x.ent entities ! // (all the "ISO-8859-1" characters) ! if (c >= 160 && c <= 255) ! esc = HTMLlat1x [c - 160]; ! // not quite half the HTMLsymbolx.ent entities ! else if (c >= 913 && c <= 937) ! esc = HTMLsymbolx_GR [c - 913]; ! else if (c >= 945 && c <= 969) ! esc = HTMLsymbolx_gr [c - 945]; ! else switch (c) { ! // all of the HTMLspecialx.ent entities ! case 338: esc = "OElig"; break; ! case 339: esc = "oelig"; break; ! case 352: esc = "Scaron"; break; ! case 353: esc = "scaron"; break; ! case 376: esc = "Yuml"; break; ! case 710: esc = "circ"; break; ! case 732: esc = "tilde"; break; ! case 8194: esc = "ensp"; break; ! case 8195: esc = "emsp"; break; ! case 8201: esc = "thinsp"; break; ! case 8204: esc = "zwnj"; break; ! case 8205: esc = "zwj"; break; ! case 8206: esc = "lrm"; break; ! case 8207: esc = "rlm"; break; ! case 8211: esc = "ndash"; break; ! case 8212: esc = "mdash"; break; ! case 8216: esc = "lsquo"; break; ! case 8217: esc = "rsquo"; break; ! case 8218: esc = "sbquo"; break; ! case 8220: esc = "ldquo"; break; ! case 8221: esc = "rdquo"; break; ! case 8222: esc = "bdquo"; break; ! case 8224: esc = "dagger"; break; ! case 8225: esc = "Dagger"; break; ! case 8240: esc = "permil"; break; ! case 8249: esc = "lsaquo"; break; ! case 8250: esc = "rsaquo"; break; ! case 8364: esc = "euro"; break; ! // the other HTMLsymbox.ent entities ! case 402: esc = "fnof"; break; ! case 977: esc = "thetasym"; break; ! case 978: esc = "upsih"; break; ! case 982: esc = "piv"; break; ! case 8226: esc = "bull"; break; ! case 8230: esc = "hellip"; break; ! case 8242: esc = "prime"; break; ! case 8243: esc = "Prime"; break; ! case 8254: esc = "oline"; break; ! case 8260: esc = "frasl"; break; ! case 8472: esc = "weierp"; break; ! case 8465: esc = "image"; break; ! case 8476: esc = "real"; break; ! case 8482: esc = "trade"; break; ! case 8501: esc = "alefsym"; break; ! case 8592: esc = "larr"; break; ! case 8593: esc = "uarr"; break; ! case 8594: esc = "rarr"; break; ! case 8595: esc = "darr"; break; ! case 8596: esc = "harr"; break; ! case 8629: esc = "crarr"; break; ! case 8656: esc = "lArr"; break; ! case 8657: esc = "uArr"; break; ! case 8658: esc = "rArr"; break; ! case 8659: esc = "dArr"; break; ! case 8660: esc = "hArr"; break; ! case 8704: esc = "forall"; break; ! case 8706: esc = "part"; break; ! case 8707: esc = "exist"; break; ! case 8709: esc = "empty"; break; ! case 8711: esc = "nabla"; break; ! case 8712: esc = "isin"; break; ! case 8713: esc = "notin"; break; ! case 8715: esc = "ni"; break; ! case 8719: esc = "prod"; break; ! case 8721: esc = "sum"; break; ! case 8722: esc = "minus"; break; ! case 8727: esc = "lowast"; break; ! case 8730: esc = "radic"; break; ! case 8733: esc = "prop"; break; ! case 8734: esc = "infin"; break; ! case 8736: esc = "ang"; break; ! case 8743: esc = "and"; break; ! case 8744: esc = "or"; break; ! case 8745: esc = "cap"; break; ! case 8746: esc = "cup"; break; ! case 8747: esc = "int"; break; ! case 8756: esc = "there4"; break; ! case 8764: esc = "sim"; break; ! case 8773: esc = "cong"; break; ! case 8776: esc = "asymp"; break; ! case 8800: esc = "ne"; break; ! case 8801: esc = "equiv"; break; ! case 8804: esc = "le"; break; ! case 8805: esc = "ge"; break; ! case 8834: esc = "sub"; break; ! case 8835: esc = "sup"; break; ! case 8836: esc = "nsub"; break; ! case 8838: esc = "sube"; break; ! case 8839: esc = "supe"; break; ! case 8853: esc = "oplus"; break; ! case 8855: esc = "otimes"; break; ! case 8869: esc = "perp"; break; ! case 8901: esc = "sdot"; break; ! case 8968: esc = "lceil"; break; ! case 8969: esc = "rceil"; break; ! case 8970: esc = "lfloor"; break; ! case 8971: esc = "rfloor"; break; ! case 9001: esc = "lang"; break; ! case 9002: esc = "rang"; break; ! case 9674: esc = "loz"; break; ! case 9824: esc = "spades"; break; ! case 9827: esc = "clubs"; break; ! case 9829: esc = "hearts"; break; ! case 9830: esc = "diams"; break; ! } ! } ! // else escape with numeric char refs ! if (esc == null) { ! stringBuf.setLength (0); ! stringBuf.append ("#x"); ! stringBuf.append (Integer.toHexString (c).toUpperCase ()); ! esc = stringBuf.toString (); ! // FIXME: We don't write surrogate pairs correctly. ! // They should work as one ref per character, since ! // each pair is one character. For reading back into ! // Unicode, it matters beginning in Unicode 3.1 ... ! } ! break; ! } ! if (i != first) ! rawWrite (buf, off + first, i - first); ! first = i + 1; ! if (esc == eol) ! newline (); ! else { ! rawWrite ('&'); ! rawWrite (esc); ! rawWrite (';'); ! } ! } ! if (first < len) ! rawWrite (buf, off + first, len - first); } --- 1539,1806 ---- private void escapeChars (char buf [], int off, int len, int code) throws SAXException, IOException { ! int first = 0; ! if (off < 0) { ! off = 0; ! len = buf.length; ! } ! for (int i = 0; i < len; i++) { ! String esc; ! char c = buf [off + i]; ! switch (c) { ! // Note that CTX_ATTRIBUTE isn't explicitly tested here; ! // all syntax delimiters are escaped in CTX_ATTRIBUTE, ! // otherwise it's similar to CTX_CONTENT ! // ampersand flags entity references; entity replacement ! // text has unexpanded references, other text doesn't. ! case '&': ! if (code == CTX_ENTITY || code == CTX_UNPARSED) ! continue; ! esc = "amp"; ! break; ! // attributes and text may NOT have literal '<', but ! // entities may have markup constructs ! case '<': ! if (code == CTX_ENTITY || code == CTX_UNPARSED) ! continue; ! esc = "lt"; ! break; ! // as above re markup constructs; but otherwise ! // except when canonicalizing, this is for consistency ! case '>': ! if (code == CTX_ENTITY || code == CTX_UNPARSED) ! continue; ! esc = "gt"; ! break; ! case '\'': ! if (code == CTX_CONTENT || code == CTX_UNPARSED) ! continue; ! if (canonical) ! continue; ! esc = "apos"; ! break; ! // needed when printing quoted attribute/entity values ! case '"': ! if (code == CTX_CONTENT || code == CTX_UNPARSED) ! continue; ! esc = "quot"; ! break; ! // make line ends work per host OS convention ! case '\n': ! esc = eol; ! break; ! // ! // No other characters NEED special treatment ... except ! // for encoding-specific issues, like whether the character ! // can really be represented in that encoding. ! // ! default: ! // ! // There are characters we can never write safely; getting ! // them is an error. ! // ! // (a) They're never legal in XML ... detected by range ! // checks, and (eventually) by remerging surrogate ! // pairs on output. (Easy error for apps to prevent.) ! // ! // (b) This encoding can't represent them, and we ! // can't make reference substitution (e.g. inside ! // CDATA sections, names, PI data, etc). (Hard for ! // apps to prevent, except by using UTF-8 or UTF-16 ! // as their output encoding.) ! // ! // We know a very little bit about what characters ! // the US-ASCII and ISO-8859-1 encodings support. For ! // other encodings we can't detect the second type of ! // error at all. (Never an issue for UTF-8 or UTF-16.) ! // // FIXME: CR in CDATA is an error; in text, turn to a char ref // FIXME: CR/LF/TAB in attributes should become char refs ! if ((c > 0xfffd) ! || ((c < 0x0020) && !((c == 0x0009) ! || (c == 0x000A) || (c == 0x000D))) ! || (((c & dangerMask) != 0) ! && (code == CTX_UNPARSED))) { ! // if case (b) in CDATA, we might end the section, ! // write a reference, then restart ... possible ! // in one DOM L3 draft. ! throw new CharConversionException ( ! "Illegal or non-writable character: U+" ! + Integer.toHexString (c)); ! } ! // ! // If the output encoding represents the character ! // directly, let it do so! Else we'll escape it. ! // ! if ((c & dangerMask) == 0) ! continue; ! esc = null; ! // Avoid numeric refs where symbolic ones exist, as ! // symbolic ones make more sense to humans reading! ! if (xhtml) { ! // all the HTMLlat1x.ent entities ! // (all the "ISO-8859-1" characters) ! if (c >= 160 && c <= 255) ! esc = HTMLlat1x [c - 160]; ! // not quite half the HTMLsymbolx.ent entities ! else if (c >= 913 && c <= 937) ! esc = HTMLsymbolx_GR [c - 913]; ! else if (c >= 945 && c <= 969) ! esc = HTMLsymbolx_gr [c - 945]; ! else switch (c) { ! // all of the HTMLspecialx.ent entities ! case 338: esc = "OElig"; break; ! case 339: esc = "oelig"; break; ! case 352: esc = "Scaron"; break; ! case 353: esc = "scaron"; break; ! case 376: esc = "Yuml"; break; ! case 710: esc = "circ"; break; ! case 732: esc = "tilde"; break; ! case 8194: esc = "ensp"; break; ! case 8195: esc = "emsp"; break; ! case 8201: esc = "thinsp"; break; ! case 8204: esc = "zwnj"; break; ! case 8205: esc = "zwj"; break; ! case 8206: esc = "lrm"; break; ! case 8207: esc = "rlm"; break; ! case 8211: esc = "ndash"; break; ! case 8212: esc = "mdash"; break; ! case 8216: esc = "lsquo"; break; ! case 8217: esc = "rsquo"; break; ! case 8218: esc = "sbquo"; break; ! case 8220: esc = "ldquo"; break; ! case 8221: esc = "rdquo"; break; ! case 8222: esc = "bdquo"; break; ! case 8224: esc = "dagger"; break; ! case 8225: esc = "Dagger"; break; ! case 8240: esc = "permil"; break; ! case 8249: esc = "lsaquo"; break; ! case 8250: esc = "rsaquo"; break; ! case 8364: esc = "euro"; break; ! // the other HTMLsymbox.ent entities ! case 402: esc = "fnof"; break; ! case 977: esc = "thetasym"; break; ! case 978: esc = "upsih"; break; ! case 982: esc = "piv"; break; ! case 8226: esc = "bull"; break; ! case 8230: esc = "hellip"; break; ! case 8242: esc = "prime"; break; ! case 8243: esc = "Prime"; break; ! case 8254: esc = "oline"; break; ! case 8260: esc = "frasl"; break; ! case 8472: esc = "weierp"; break; ! case 8465: esc = "image"; break; ! case 8476: esc = "real"; break; ! case 8482: esc = "trade"; break; ! case 8501: esc = "alefsym"; break; ! case 8592: esc = "larr"; break; ! case 8593: esc = "uarr"; break; ! case 8594: esc = "rarr"; break; ! case 8595: esc = "darr"; break; ! case 8596: esc = "harr"; break; ! case 8629: esc = "crarr"; break; ! case 8656: esc = "lArr"; break; ! case 8657: esc = "uArr"; break; ! case 8658: esc = "rArr"; break; ! case 8659: esc = "dArr"; break; ! case 8660: esc = "hArr"; break; ! case 8704: esc = "forall"; break; ! case 8706: esc = "part"; break; ! case 8707: esc = "exist"; break; ! case 8709: esc = "empty"; break; ! case 8711: esc = "nabla"; break; ! case 8712: esc = "isin"; break; ! case 8713: esc = "notin"; break; ! case 8715: esc = "ni"; break; ! case 8719: esc = "prod"; break; ! case 8721: esc = "sum"; break; ! case 8722: esc = "minus"; break; ! case 8727: esc = "lowast"; break; ! case 8730: esc = "radic"; break; ! case 8733: esc = "prop"; break; ! case 8734: esc = "infin"; break; ! case 8736: esc = "ang"; break; ! case 8743: esc = "and"; break; ! case 8744: esc = "or"; break; ! case 8745: esc = "cap"; break; ! case 8746: esc = "cup"; break; ! case 8747: esc = "int"; break; ! case 8756: esc = "there4"; break; ! case 8764: esc = "sim"; break; ! case 8773: esc = "cong"; break; ! case 8776: esc = "asymp"; break; ! case 8800: esc = "ne"; break; ! case 8801: esc = "equiv"; break; ! case 8804: esc = "le"; break; ! case 8805: esc = "ge"; break; ! case 8834: esc = "sub"; break; ! case 8835: esc = "sup"; break; ! case 8836: esc = "nsub"; break; ! case 8838: esc = "sube"; break; ! case 8839: esc = "supe"; break; ! case 8853: esc = "oplus"; break; ! case 8855: esc = "otimes"; break; ! case 8869: esc = "perp"; break; ! case 8901: esc = "sdot"; break; ! case 8968: esc = "lceil"; break; ! case 8969: esc = "rceil"; break; ! case 8970: esc = "lfloor"; break; ! case 8971: esc = "rfloor"; break; ! case 9001: esc = "lang"; break; ! case 9002: esc = "rang"; break; ! case 9674: esc = "loz"; break; ! case 9824: esc = "spades"; break; ! case 9827: esc = "clubs"; break; ! case 9829: esc = "hearts"; break; ! case 9830: esc = "diams"; break; ! } ! } ! // else escape with numeric char refs ! if (esc == null) { ! stringBuf.setLength (0); ! stringBuf.append ("#x"); ! stringBuf.append (Integer.toHexString (c).toUpperCase ()); ! esc = stringBuf.toString (); ! // FIXME: We don't write surrogate pairs correctly. ! // They should work as one ref per character, since ! // each pair is one character. For reading back into ! // Unicode, it matters beginning in Unicode 3.1 ... ! } ! break; ! } ! if (i != first) ! rawWrite (buf, off + first, i - first); ! first = i + 1; ! if (esc == eol) ! newline (); ! else { ! rawWrite ('&'); ! rawWrite (esc); ! rawWrite (';'); ! } ! } ! if (first < len) ! rawWrite (buf, off + first, len - first); } *************** public class XMLWriter *** 1808,1852 **** private void newline () throws SAXException, IOException { ! out.write (eol); ! column = 0; } private void doIndent () throws SAXException, IOException { ! int space = elementNestLevel * 2; ! newline (); ! column = space; ! // track tabs only at line starts ! while (space > 8) { ! out.write ("\t"); ! space -= 8; ! } ! while (space > 0) { ! out.write (" "); ! space -= 2; ! } } private void rawWrite (char c) throws IOException { ! out.write (c); ! column++; } private void rawWrite (String s) throws SAXException, IOException { ! if (prettyPrinting && "default".equals (space.peek ())) { ! char data [] = s.toCharArray (); ! rawWrite (data, 0, data.length); ! } else { ! out.write (s); ! column += s.length (); ! } } // NOTE: if xhtml, the REC gives some rules about whitespace --- 1808,1852 ---- private void newline () throws SAXException, IOException { ! out.write (eol); ! column = 0; } private void doIndent () throws SAXException, IOException { ! int space = elementNestLevel * 2; ! newline (); ! column = space; ! // track tabs only at line starts ! while (space > 8) { ! out.write ("\t"); ! space -= 8; ! } ! while (space > 0) { ! out.write (" "); ! space -= 2; ! } } private void rawWrite (char c) throws IOException { ! out.write (c); ! column++; } private void rawWrite (String s) throws SAXException, IOException { ! if (prettyPrinting && "default".equals (space.peek ())) { ! char data [] = s.toCharArray (); ! rawWrite (data, 0, data.length); ! } else { ! out.write (s); ! column += s.length (); ! } } // NOTE: if xhtml, the REC gives some rules about whitespace *************** public class XMLWriter *** 1862,1931 **** private void rawWrite (char buf [], int offset, int length) throws SAXException, IOException { ! boolean wrap; ! if (prettyPrinting && space.empty ()) ! fatal ("stack discipline", null); ! wrap = prettyPrinting && "default".equals (space.peek ()); ! if (!wrap) { ! out.write (buf, offset, length); ! column += length; ! return; ! } ! // we're pretty printing and want to fill lines out only ! // to the desired line length. ! while (length > 0) { ! int target = lineLength - column; ! boolean wrote = false; ! // Do we even have a problem? ! if (target > length || noWrap) { ! out.write (buf, offset, length); ! column += length; ! return; ! } ! // break the line at a space character, trying to fill ! // as much of the line as possible. ! char c; ! for (int i = target - 1; i >= 0; i--) { ! if ((c = buf [offset + i]) == ' ' || c == '\t') { ! i++; ! out.write (buf, offset, i); ! doIndent (); ! offset += i; ! length -= i; ! wrote = true; ! break; ! } ! } ! if (wrote) ! continue; ! ! // no space character permitting break before target ! // line length is filled. So, take the next one. ! if (target < 0) ! target = 0; ! for (int i = target; i < length; i++) ! if ((c = buf [offset + i]) == ' ' || c == '\t') { ! i++; ! out.write (buf, offset, i); ! doIndent (); ! offset += i; ! length -= i; ! wrote = true; ! break; ! } ! if (wrote) ! continue; ! ! // no such luck. ! out.write (buf, offset, length); ! column += length; ! break; ! } } } --- 1862,1931 ---- private void rawWrite (char buf [], int offset, int length) throws SAXException, IOException { ! boolean wrap; ! if (prettyPrinting && space.empty ()) ! fatal ("stack discipline", null); ! wrap = prettyPrinting && "default".equals (space.peek ()); ! if (!wrap) { ! out.write (buf, offset, length); ! column += length; ! return; ! } ! // we're pretty printing and want to fill lines out only ! // to the desired line length. ! while (length > 0) { ! int target = lineLength - column; ! boolean wrote = false; ! // Do we even have a problem? ! if (target > length || noWrap) { ! out.write (buf, offset, length); ! column += length; ! return; ! } ! // break the line at a space character, trying to fill ! // as much of the line as possible. ! char c; ! for (int i = target - 1; i >= 0; i--) { ! if ((c = buf [offset + i]) == ' ' || c == '\t') { ! i++; ! out.write (buf, offset, i); ! doIndent (); ! offset += i; ! length -= i; ! wrote = true; ! break; ! } ! } ! if (wrote) ! continue; ! ! // no space character permitting break before target ! // line length is filled. So, take the next one. ! if (target < 0) ! target = 0; ! for (int i = target; i < length; i++) ! if ((c = buf [offset + i]) == ' ' || c == '\t') { ! i++; ! out.write (buf, offset, i); ! doIndent (); ! offset += i; ! length -= i; ! wrote = true; ! break; ! } ! if (wrote) ! continue; ! ! // no such luck. ! out.write (buf, offset, length); ! column += length; ! break; ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/Annotation.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/Annotation.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/Annotation.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/Annotation.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Annotation.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Annotation.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class Annotation *** 56,61 **** { return documentation; } - - } --- 56,60 ---- { return documentation; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/AnySimpleType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/AnySimpleType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/AnySimpleType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/AnySimpleType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnySimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AnySimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.xml.namespace.QName; *** 44,50 **** final class AnySimpleType extends SimpleType { ! AnySimpleType() { super(new QName(XMLConstants.W3C_XML_SCHEMA_NS_URI, "anySimpleType"), --- 44,50 ---- final class AnySimpleType extends SimpleType { ! AnySimpleType() { super(new QName(XMLConstants.W3C_XML_SCHEMA_NS_URI, "anySimpleType"), *************** final class AnySimpleType *** 56,59 **** } } - --- 56,58 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/AnyType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/AnyType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/AnyType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/AnyType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnyType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AnyType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.xml.namespace.QName; *** 43,49 **** final class AnyType extends SimpleType { ! AnyType() { super(new QName(XMLConstants.W3C_XML_SCHEMA_NS_URI, "anyType"), --- 43,49 ---- final class AnyType extends SimpleType { ! AnyType() { super(new QName(XMLConstants.W3C_XML_SCHEMA_NS_URI, "anyType"), *************** final class AnyType *** 55,58 **** } } - --- 55,57 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/AnyURIType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/AnyURIType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/AnyURIType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/AnyURIType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnyURIType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AnyURIType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class AnyURIType *** 89,94 **** throw e2; } } - - } --- 89,93 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/AtomicSimpleType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/AtomicSimpleType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/AtomicSimpleType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/AtomicSimpleType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AtomicSimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AtomicSimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.relaxng.datatype.ValidationCo *** 50,56 **** public class AtomicSimpleType extends SimpleType { ! public AtomicSimpleType(QName name, Set facets, int fundamentalFacets, --- 50,56 ---- public class AtomicSimpleType extends SimpleType { ! public AtomicSimpleType(QName name, Set facets, int fundamentalFacets, *************** public class AtomicSimpleType *** 73,78 **** if (baseType != null) baseType.checkValid(value, context); } - - } --- 73,77 ---- if (baseType != null) baseType.checkValid(value, context); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Base64BinaryType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Base64BinaryType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class Base64BinaryType *** 98,104 **** char c1 = value.charAt(i--); if (c1 == ' ') c1 = value.charAt(i--); ! if (c4 == '=') { if (c3 == '=') --- 98,104 ---- char c1 = value.charAt(i--); if (c1 == ' ') c1 = value.charAt(i--); ! if (c4 == '=') { if (c3 == '=') *************** final class Base64BinaryType *** 124,129 **** throw new DatatypeException("illegal BASE64"); } } - - } --- 124,128 ---- throw new DatatypeException("illegal BASE64"); } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/BooleanType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/BooleanType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/BooleanType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/BooleanType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BooleanType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BooleanType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class BooleanType *** 80,90 **** if (!VALUE_SPACE.contains(value)) throw new DatatypeException("invalid boolean value"); } ! public Object createValue(String literal, ValidationContext context) { return ("1".equals(literal) || "true".equals(literal)) ? Boolean.TRUE : Boolean.FALSE; } - - } --- 80,89 ---- if (!VALUE_SPACE.contains(value)) throw new DatatypeException("invalid boolean value"); } ! public Object createValue(String literal, ValidationContext context) { return ("1".equals(literal) || "true".equals(literal)) ? Boolean.TRUE : Boolean.FALSE; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/ByteType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/ByteType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/ByteType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/ByteType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ByteType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ByteType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ByteType *** 117,123 **** throw new DatatypeException(i, "invalid byte value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 117,123 ---- throw new DatatypeException(i, "invalid byte value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class ByteType *** 128,133 **** return null; } } - - } --- 128,132 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DateTimeType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DateTimeType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DateTimeType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DateTimeType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DateTimeType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DateTimeType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class DateTimeType *** 213,219 **** throw new DatatypeException(len, "invalid dateTime value"); } } ! public Object createValue(String value, ValidationContext context) { int len = value.length(); int state = 0; --- 213,219 ---- throw new DatatypeException(len, "invalid dateTime value"); } } ! public Object createValue(String value, ValidationContext context) { int len = value.length(); int state = 0; *************** final class DateTimeType *** 330,335 **** return null; } } - - } --- 330,334 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DateType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DateType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DateType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DateType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DateType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DateType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class DateType *** 128,134 **** throw new DatatypeException("invalid date value"); } } ! public Object createValue(String value, ValidationContext context) { int len = value.length(); int state = 0; --- 128,134 ---- throw new DatatypeException("invalid date value"); } } ! public Object createValue(String value, ValidationContext context) { int len = value.length(); int state = 0; *************** final class DateType *** 217,222 **** return null; } } - - } --- 217,221 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DecimalType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DecimalType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DecimalType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DecimalType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DecimalType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DecimalType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class DecimalType *** 103,109 **** throw new DatatypeException(i, "invalid decimal value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 103,109 ---- throw new DatatypeException(i, "invalid decimal value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class DecimalType *** 114,119 **** return null; } } - - } --- 114,118 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DoubleType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DoubleType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DoubleType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DoubleType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DoubleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DoubleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class DoubleType *** 95,101 **** throw e2; } } ! public Object createValue(String literal, ValidationContext context) { try { --- 95,101 ---- throw e2; } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class DoubleType *** 106,111 **** return null; } } - - } --- 106,110 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DurationType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DurationType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/DurationType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/DurationType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DurationType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DurationType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class DurationType *** 103,109 **** } return 0; } ! } static final int[] CONSTRAINING_FACETS = { --- 103,109 ---- } return 0; } ! } static final int[] CONSTRAINING_FACETS = { *************** final class DurationType *** 170,176 **** throw new DatatypeException(i, "illegal duration value"); } } ! public Object createValue(String value, ValidationContext context) { boolean negative = false; int days = 0, months = 0, years = 0; --- 170,176 ---- throw new DatatypeException(i, "illegal duration value"); } } ! public Object createValue(String value, ValidationContext context) { boolean negative = false; int days = 0, months = 0, years = 0; *************** final class DurationType *** 236,239 **** } } - --- 236,238 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EntitiesType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EntitiesType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class EntitiesType *** 104,109 **** { return true; } - - } --- 104,108 ---- { return true; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/EntityType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/EntityType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/EntityType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/EntityType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EntityType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EntityType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class EntityType *** 83,88 **** { return true; } - - } --- 83,87 ---- { return true; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/EnumerationFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/EnumerationFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/EnumerationFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/EnumerationFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EnumerationFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EnumerationFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.validation.datatype; *** 45,51 **** public final class EnumerationFacet extends Facet { ! public final String value; public EnumerationFacet(String value, Annotation annotation) --- 45,51 ---- public final class EnumerationFacet extends Facet { ! public final String value; public EnumerationFacet(String value, Annotation annotation) *************** public final class EnumerationFacet *** 64,69 **** return (other instanceof EnumerationFacet && ((EnumerationFacet) other).value.equals(value)); } - - } --- 64,68 ---- return (other instanceof EnumerationFacet && ((EnumerationFacet) other).value.equals(value)); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/Facet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/Facet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/Facet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/Facet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Facet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Facet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class Facet *** 73,78 **** this.type = type; this.annotation = annotation; } - - } --- 73,77 ---- this.type = type; this.annotation = annotation; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/FloatType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/FloatType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/FloatType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/FloatType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FloatType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FloatType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class FloatType *** 95,101 **** throw e2; } } ! public Object createValue(String literal, ValidationContext context) { try { --- 95,101 ---- throw e2; } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class FloatType *** 106,111 **** return null; } } - - } --- 106,110 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/FractionDigitsFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/FractionDigitsFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/FractionDigitsFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/FractionDigitsFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FractionDigitsFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FractionDigitsFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.validation.datatype; *** 45,51 **** public final class FractionDigitsFacet extends Facet { ! public final int value; public final boolean fixed; --- 45,51 ---- public final class FractionDigitsFacet extends Facet { ! public final int value; public final boolean fixed; *************** public final class FractionDigitsFacet *** 56,62 **** this.value = value; this.fixed = fixed; } ! public int hashCode() { return value; --- 56,62 ---- this.value = value; this.fixed = fixed; } ! public int hashCode() { return value; *************** public final class FractionDigitsFacet *** 67,72 **** return (other instanceof FractionDigitsFacet && ((FractionDigitsFacet) other).value == value); } - - } --- 67,71 ---- return (other instanceof FractionDigitsFacet && ((FractionDigitsFacet) other).value == value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GDayType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GDayType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GDayType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GDayType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GDayType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GDayType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class GDayType *** 80,86 **** } return 0; } ! } static final int[] CONSTRAINING_FACETS = { --- 80,86 ---- } return 0; } ! } static final int[] CONSTRAINING_FACETS = { *************** final class GDayType *** 157,163 **** throw new DatatypeException("invalid GDay value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 157,163 ---- throw new DatatypeException("invalid GDay value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class GDayType *** 170,175 **** return null; } } - - } --- 170,174 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GMonthDayType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GMonthDayType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GMonthDayType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GMonthDayType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GMonthDayType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GMonthDayType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class GMonthDayType *** 88,94 **** } return 0; } ! } static final int[] CONSTRAINING_FACETS = { --- 88,94 ---- } return 0; } ! } static final int[] CONSTRAINING_FACETS = { *************** final class GMonthDayType *** 165,171 **** throw new DatatypeException("illegal GMonthDay type"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 165,171 ---- throw new DatatypeException("illegal GMonthDay type"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class GMonthDayType *** 179,184 **** return null; } } - - } --- 179,183 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GMonthType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GMonthType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GMonthType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GMonthType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GMonthType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GMonthType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class GMonthType *** 80,86 **** } return 0; } ! } static final int[] CONSTRAINING_FACETS = { --- 80,86 ---- } return 0; } ! } static final int[] CONSTRAINING_FACETS = { *************** final class GMonthType *** 146,152 **** throw new DatatypeException("illegal GMonth value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 146,152 ---- throw new DatatypeException("illegal GMonth value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class GMonthType *** 159,164 **** return null; } } - - } --- 159,163 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GYearMonthType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GYearMonthType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GYearMonthType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GYearMonthType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GYearMonthType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GYearMonthType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class GYearMonthType *** 88,94 **** } return 0; } ! } static final int[] CONSTRAINING_FACETS = { --- 88,94 ---- } return 0; } ! } static final int[] CONSTRAINING_FACETS = { *************** final class GYearMonthType *** 155,161 **** throw new DatatypeException("illegal GYear value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 155,161 ---- throw new DatatypeException("illegal GYear value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class GYearMonthType *** 172,177 **** return null; } } - - } --- 172,176 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GYearType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GYearType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/GYearType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/GYearType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GYearType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GYearType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class GYearType *** 80,86 **** } return 0; } ! } static final int[] CONSTRAINING_FACETS = { --- 80,86 ---- } return 0; } ! } static final int[] CONSTRAINING_FACETS = { *************** final class GYearType *** 134,140 **** throw new DatatypeException("invalid GYear value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 134,140 ---- throw new DatatypeException("invalid GYear value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class GYearType *** 147,152 **** return null; } } - - } --- 147,151 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HexBinaryType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* HexBinaryType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class HexBinaryType *** 85,90 **** throw new DatatypeException(i, "invalid hexBinary value"); } } - - } --- 85,89 ---- throw new DatatypeException(i, "invalid hexBinary value"); } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IDRefType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IDRefType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IDRefType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IDRefType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IDRefType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IDRefType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class IDRefType *** 82,87 **** { return ID_TYPE_IDREF; } - - } --- 82,86 ---- { return ID_TYPE_IDREF; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IDRefsType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IDRefsType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IDRefsType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IDRefsType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IDRefsType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IDRefsType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class IDRefsType *** 82,87 **** { return ID_TYPE_IDREFS; } - - } --- 82,86 ---- { return ID_TYPE_IDREFS; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IDType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IDType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IDType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IDType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IDType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IDType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class IDType *** 82,87 **** { return ID_TYPE_ID; } - - } --- 82,86 ---- { return ID_TYPE_ID; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IntType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IntType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IntType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IntType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IntType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IntType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class IntType *** 117,123 **** throw new DatatypeException(i, "invalid int value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 117,123 ---- throw new DatatypeException(i, "invalid int value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class IntType *** 128,133 **** return null; } } - - } --- 128,132 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IntegerType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IntegerType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/IntegerType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/IntegerType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class IntegerType *** 94,100 **** throw new DatatypeException(i, "invalid integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 94,100 ---- throw new DatatypeException(i, "invalid integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class IntegerType *** 105,110 **** return null; } } - - } --- 105,109 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/LanguageType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/LanguageType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/LanguageType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/LanguageType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LanguageType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LanguageType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class LanguageType *** 82,87 **** if (!PATTERN.matcher(value).matches()) throw new DatatypeException("invalid language value"); } - - } --- 82,86 ---- if (!PATTERN.matcher(value).matches()) throw new DatatypeException("invalid language value"); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/LengthFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/LengthFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/LengthFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/LengthFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LengthFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LengthFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.validation.datatype; *** 45,51 **** public final class LengthFacet extends Facet { ! public final int value; public final boolean fixed; --- 45,51 ---- public final class LengthFacet extends Facet { ! public final int value; public final boolean fixed; *************** public final class LengthFacet *** 56,62 **** this.value = value; this.fixed = fixed; } ! public int hashCode() { return value; --- 56,62 ---- this.value = value; this.fixed = fixed; } ! public int hashCode() { return value; *************** public final class LengthFacet *** 67,72 **** return (other instanceof LengthFacet && ((LengthFacet) other).value == value); } - - } --- 67,71 ---- return (other instanceof LengthFacet && ((LengthFacet) other).value == value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/ListSimpleType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/ListSimpleType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/ListSimpleType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/ListSimpleType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ListSimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ListSimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class ListSimpleType *** 56,62 **** * The type of the items in this list (atomic or union). */ public final SimpleType itemType; ! public ListSimpleType(QName name, Set facets, int fundamentalFacets, SimpleType baseType, Annotation annotation, SimpleType itemType) --- 56,62 ---- * The type of the items in this list (atomic or union). */ public final SimpleType itemType; ! public ListSimpleType(QName name, Set facets, int fundamentalFacets, SimpleType baseType, Annotation annotation, SimpleType itemType) *************** public class ListSimpleType *** 64,70 **** super(name, LIST, facets, fundamentalFacets, baseType, annotation); this.itemType = itemType; } ! public void checkValid(String value, ValidationContext context) throws DatatypeException { --- 64,70 ---- super(name, LIST, facets, fundamentalFacets, baseType, annotation); this.itemType = itemType; } ! public void checkValid(String value, ValidationContext context) throws DatatypeException { *************** public class ListSimpleType *** 78,83 **** itemType.checkValid(token, context); } } - - } --- 78,82 ---- itemType.checkValid(token, context); } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/LongType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/LongType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/LongType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/LongType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LongType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LongType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class LongType *** 117,123 **** throw new DatatypeException(i, "invalid long value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 117,123 ---- throw new DatatypeException(i, "invalid long value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class LongType *** 128,133 **** return null; } } - - } --- 128,132 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MaxExclusiveFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MaxExclusiveFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MaxExclusiveFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MaxExclusiveFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MaxExclusiveFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MaxExclusiveFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Date; *** 49,55 **** public final class MaxExclusiveFacet extends Facet { ! public final Object value; // date or number public final boolean fixed; --- 49,55 ---- public final class MaxExclusiveFacet extends Facet { ! public final Object value; // date or number public final boolean fixed; *************** public final class MaxExclusiveFacet *** 60,66 **** this.value = value; this.fixed = fixed; } ! public int hashCode() { return value.hashCode(); --- 60,66 ---- this.value = value; this.fixed = fixed; } ! public int hashCode() { return value.hashCode(); *************** public final class MaxExclusiveFacet *** 106,111 **** return false; return ((Number) test).doubleValue() < nvalue.doubleValue(); } - - } --- 106,110 ---- return false; return ((Number) test).doubleValue() < nvalue.doubleValue(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MaxInclusiveFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MaxInclusiveFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MaxInclusiveFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MaxInclusiveFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MaxInclusiveFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MaxInclusiveFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Date; *** 49,55 **** public final class MaxInclusiveFacet extends Facet { ! public final Object value; public final boolean fixed; --- 49,55 ---- public final class MaxInclusiveFacet extends Facet { ! public final Object value; public final boolean fixed; *************** public final class MaxInclusiveFacet *** 60,66 **** this.value = value; this.fixed = fixed; } ! public int hashCode() { return value.hashCode(); --- 60,66 ---- this.value = value; this.fixed = fixed; } ! public int hashCode() { return value.hashCode(); *************** public final class MaxInclusiveFacet *** 71,77 **** return (other instanceof MaxInclusiveFacet && ((MaxInclusiveFacet) other).value.equals(value)); } ! boolean matches(Object test) { if (value instanceof Date) --- 71,77 ---- return (other instanceof MaxInclusiveFacet && ((MaxInclusiveFacet) other).value.equals(value)); } ! boolean matches(Object test) { if (value instanceof Date) *************** public final class MaxInclusiveFacet *** 107,112 **** return false; return ((Number) test).doubleValue() <= nvalue.doubleValue(); } - - } --- 107,111 ---- return false; return ((Number) test).doubleValue() <= nvalue.doubleValue(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MaxLengthFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MaxLengthFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MaxLengthFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MaxLengthFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MaxLengthFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MaxLengthFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class MaxLengthFacet *** 67,72 **** return (other instanceof MaxLengthFacet && ((MaxLengthFacet) other).value == value); } - - } --- 67,71 ---- return (other instanceof MaxLengthFacet && ((MaxLengthFacet) other).value == value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MinExclusiveFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MinExclusiveFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MinExclusiveFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MinExclusiveFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MinExclusiveFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MinExclusiveFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Date; *** 49,55 **** public final class MinExclusiveFacet extends Facet { ! public final Object value; public final boolean fixed; --- 49,55 ---- public final class MinExclusiveFacet extends Facet { ! public final Object value; public final boolean fixed; *************** public final class MinExclusiveFacet *** 60,66 **** this.value = value; this.fixed = fixed; } ! public int hashCode() { return value.hashCode(); --- 60,66 ---- this.value = value; this.fixed = fixed; } ! public int hashCode() { return value.hashCode(); *************** public final class MinExclusiveFacet *** 71,77 **** return (other instanceof MinExclusiveFacet && ((MinExclusiveFacet) other).value.equals(value)); } ! boolean matches(Object test) { if (value instanceof Date) --- 71,77 ---- return (other instanceof MinExclusiveFacet && ((MinExclusiveFacet) other).value.equals(value)); } ! boolean matches(Object test) { if (value instanceof Date) *************** public final class MinExclusiveFacet *** 106,111 **** return false; return ((Number) test).doubleValue() > nvalue.doubleValue(); } - - } --- 106,110 ---- return false; return ((Number) test).doubleValue() > nvalue.doubleValue(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MinInclusiveFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MinInclusiveFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MinInclusiveFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MinInclusiveFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MinInclusiveFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MinInclusiveFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Date; *** 49,55 **** public final class MinInclusiveFacet extends Facet { ! public final Object value; public final boolean fixed; --- 49,55 ---- public final class MinInclusiveFacet extends Facet { ! public final Object value; public final boolean fixed; *************** public final class MinInclusiveFacet *** 60,66 **** this.value = value; this.fixed = fixed; } ! public int hashCode() { return value.hashCode(); --- 60,66 ---- this.value = value; this.fixed = fixed; } ! public int hashCode() { return value.hashCode(); *************** public final class MinInclusiveFacet *** 71,77 **** return (other instanceof MinInclusiveFacet && ((MinInclusiveFacet) other).value.equals(value)); } ! boolean matches(Object test) { if (value instanceof Date) --- 71,77 ---- return (other instanceof MinInclusiveFacet && ((MinInclusiveFacet) other).value.equals(value)); } ! boolean matches(Object test) { if (value instanceof Date) *************** public final class MinInclusiveFacet *** 107,112 **** return false; return ((Number) test).doubleValue() >= nvalue.doubleValue(); } - - } --- 107,111 ---- return false; return ((Number) test).doubleValue() >= nvalue.doubleValue(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MinLengthFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MinLengthFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/MinLengthFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/MinLengthFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MinLengthFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MinLengthFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class MinLengthFacet *** 67,72 **** return (other instanceof MinLengthFacet && ((MinLengthFacet) other).value == value); } - - } --- 67,71 ---- return (other instanceof MinLengthFacet && ((MinLengthFacet) other).value == value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NCNameType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NCNameType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NCNameType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NCNameType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NCNameType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NCNameType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NCNameType *** 106,111 **** throw e2; } } - - } --- 106,110 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NMTokenType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NMTokenType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NMTokenType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NMTokenType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NMTokenType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NMTokenType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NMTokenType *** 97,102 **** throw e2; } } - - } --- 97,101 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NMTokensType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NMTokensType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NMTokensType *** 120,126 **** throw e2; } } - - - } --- 120,125 ---- throw e2; } } + + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NameType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NameType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NameType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NameType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NameType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NameType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NameType *** 99,104 **** throw e2; } } - - } --- 99,103 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NegativeIntegerType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NegativeIntegerType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NegativeIntegerType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NegativeIntegerType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NegativeIntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NegativeIntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NegativeIntegerType *** 95,101 **** throw new DatatypeException(i, "invalid negative integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 95,101 ---- throw new DatatypeException(i, "invalid negative integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class NegativeIntegerType *** 106,111 **** return null; } } - - } --- 106,110 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NonNegativeIntegerType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NonNegativeIntegerType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NonNegativeIntegerType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NonNegativeIntegerType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NonNegativeIntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NonNegativeIntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NonNegativeIntegerType *** 105,111 **** throw new DatatypeException(i, "invalid non-negative integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 105,111 ---- throw new DatatypeException(i, "invalid non-negative integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class NonNegativeIntegerType *** 116,121 **** return null; } } - - } --- 116,120 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NonPositiveIntegerType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NonPositiveIntegerType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NonPositiveIntegerType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NonPositiveIntegerType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NonPositiveIntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NonPositiveIntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NonPositiveIntegerType *** 105,111 **** throw new DatatypeException(i, "invalid non-positive integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 105,111 ---- throw new DatatypeException(i, "invalid non-positive integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class NonPositiveIntegerType *** 116,121 **** return null; } } - - } --- 116,120 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NormalizedStringType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NormalizedStringType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NormalizedStringType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NormalizedStringType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NormalizedStringType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NormalizedStringType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NormalizedStringType *** 83,88 **** throw new DatatypeException(i, "invalid normalized-string value"); } } - - } --- 83,87 ---- throw new DatatypeException(i, "invalid normalized-string value"); } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NotationType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NotationType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/NotationType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/NotationType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NotationType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NotationType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NotationType *** 83,88 **** { return true; } - - } --- 83,87 ---- { return true; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/PatternFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/PatternFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/PatternFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/PatternFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PatternFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PatternFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class PatternFacet *** 66,71 **** return (other instanceof PatternFacet && ((PatternFacet) other).value.equals(value)); } - - } --- 66,70 ---- return (other instanceof PatternFacet && ((PatternFacet) other).value.equals(value)); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/PositiveIntegerType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/PositiveIntegerType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/PositiveIntegerType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/PositiveIntegerType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PositiveIntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PositiveIntegerType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class PositiveIntegerType *** 95,101 **** throw new DatatypeException(i, "invalid positive integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 95,101 ---- throw new DatatypeException(i, "invalid positive integer value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class PositiveIntegerType *** 106,111 **** return null; } } - - } --- 106,110 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/QNameType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/QNameType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/QNameType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/QNameType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* QNameType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* QNameType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class QNameType *** 117,122 **** { return true; } - - } --- 117,121 ---- { return true; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/ShortType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/ShortType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/ShortType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/ShortType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ShortType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ShortType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ShortType *** 117,123 **** throw new DatatypeException(i, "invalid short value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 117,123 ---- throw new DatatypeException(i, "invalid short value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class ShortType *** 128,133 **** return null; } } - - } --- 128,132 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/SimpleType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/SimpleType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/SimpleType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/SimpleType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SimpleType *** 60,71 **** * The variety of the anySimpleType datatype. */ public static final int ANY = 0; ! /** * The atomic variety. */ public static final int ATOMIC = 1; ! /** * The list variety. */ --- 60,71 ---- * The variety of the anySimpleType datatype. */ public static final int ANY = 0; ! /** * The atomic variety. */ public static final int ATOMIC = 1; ! /** * The list variety. */ *************** public class SimpleType *** 229,243 **** { throw new UnsupportedOperationException(); } ! public Object createValue(String literal, ValidationContext context) { return literal; } ! public boolean sameValue(Object value1, Object value2) { return value1.equals(value2); } ! public int valueHashCode(Object value) { return value.hashCode(); } --- 229,243 ---- { throw new UnsupportedOperationException(); } ! public Object createValue(String literal, ValidationContext context) { return literal; } ! public boolean sameValue(Object value1, Object value2) { return value1.equals(value2); } ! public int valueHashCode(Object value) { return value.hashCode(); } *************** public class SimpleType *** 253,256 **** } } - --- 253,255 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/StringType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/StringType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/StringType.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/StringType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StringType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StringType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class StringType *** 70,73 **** } } - --- 70,72 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TimeType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TimeType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TimeType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TimeType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TimeType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TimeType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class TimeType *** 86,92 **** } return 0; } ! } static final int[] CONSTRAINING_FACETS = { --- 86,92 ---- } return 0; } ! } static final int[] CONSTRAINING_FACETS = { *************** final class TimeType *** 217,223 **** throw new DatatypeException(len, "invalid time value"); } } ! public Object createValue(String value, ValidationContext context) { int len = value.length(); int state = 3; --- 217,223 ---- throw new DatatypeException(len, "invalid time value"); } } ! public Object createValue(String value, ValidationContext context) { int len = value.length(); int state = 3; *************** final class TimeType *** 298,303 **** return null; } } - - } --- 298,302 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TokenType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TokenType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TokenType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TokenType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TokenType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TokenType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class TokenType *** 91,96 **** last = c; } } - - } --- 91,95 ---- last = c; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TotalDigitsFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TotalDigitsFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TotalDigitsFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TotalDigitsFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TotalDigitsFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TotalDigitsFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.validation.datatype; *** 45,51 **** public final class TotalDigitsFacet extends Facet { ! public final int value; public final boolean fixed; --- 45,51 ---- public final class TotalDigitsFacet extends Facet { ! public final int value; public final boolean fixed; *************** public final class TotalDigitsFacet *** 56,62 **** this.value = value; this.fixed = fixed; } ! public int hashCode() { return value; --- 56,62 ---- this.value = value; this.fixed = fixed; } ! public int hashCode() { return value; *************** public final class TotalDigitsFacet *** 67,72 **** return (other instanceof TotalDigitsFacet && ((TotalDigitsFacet) other).value == value); } - - } --- 67,71 ---- return (other instanceof TotalDigitsFacet && ((TotalDigitsFacet) other).value == value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/Type.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/Type.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/Type.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/Type.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Type.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Type.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class Type *** 58,63 **** { this.name = name; } - - } --- 58,62 ---- { this.name = name; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TypeBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TypeBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class TypeBuilder *** 54,60 **** { final SimpleType type; ! TypeBuilder(SimpleType type) { this.type = type; --- 54,60 ---- { final SimpleType type; ! TypeBuilder(SimpleType type) { this.type = type; *************** public class TypeBuilder *** 136,142 **** } return new MaxLengthFacet(Integer.parseInt(value), fixed, null); } ! PatternFacet parsePatternFacet(String value) throws DatatypeException { --- 136,142 ---- } return new MaxLengthFacet(Integer.parseInt(value), fixed, null); } ! PatternFacet parsePatternFacet(String value) throws DatatypeException { *************** public class TypeBuilder *** 185,191 **** } return new MaxInclusiveFacet(type.createValue(value, context), fixed, null); } ! MaxExclusiveFacet parseMaxExclusiveFacet(String value, ValidationContext context) throws DatatypeException --- 185,191 ---- } return new MaxInclusiveFacet(type.createValue(value, context), fixed, null); } ! MaxExclusiveFacet parseMaxExclusiveFacet(String value, ValidationContext context) throws DatatypeException *************** public class TypeBuilder *** 201,207 **** } return new MaxExclusiveFacet(type.createValue(value, context), fixed, null); } ! MinExclusiveFacet parseMinExclusiveFacet(String value, ValidationContext context) throws DatatypeException --- 201,207 ---- } return new MaxExclusiveFacet(type.createValue(value, context), fixed, null); } ! MinExclusiveFacet parseMinExclusiveFacet(String value, ValidationContext context) throws DatatypeException *************** public class TypeBuilder *** 217,223 **** } return new MinExclusiveFacet(type.createValue(value, context), fixed, null); } ! MinInclusiveFacet parseMinInclusiveFacet(String value, ValidationContext context) throws DatatypeException --- 217,223 ---- } return new MinExclusiveFacet(type.createValue(value, context), fixed, null); } ! MinInclusiveFacet parseMinInclusiveFacet(String value, ValidationContext context) throws DatatypeException *************** public class TypeBuilder *** 233,239 **** } return new MinInclusiveFacet(type.createValue(value, context), fixed, null); } ! TotalDigitsFacet parseTotalDigitsFacet(String value) throws DatatypeException { --- 233,239 ---- } return new MinInclusiveFacet(type.createValue(value, context), fixed, null); } ! TotalDigitsFacet parseTotalDigitsFacet(String value) throws DatatypeException { *************** public class TypeBuilder *** 251,257 **** throw new DatatypeException("value must be a positiveInteger"); return new TotalDigitsFacet(val, fixed, null); } ! FractionDigitsFacet parseFractionDigitsFacet(String value) throws DatatypeException { --- 251,257 ---- throw new DatatypeException("value must be a positiveInteger"); return new TotalDigitsFacet(val, fixed, null); } ! FractionDigitsFacet parseFractionDigitsFacet(String value) throws DatatypeException { *************** public class TypeBuilder *** 269,278 **** throw new DatatypeException("value must be a positiveInteger"); return new FractionDigitsFacet(val, fixed, null); } ! public Datatype createDatatype() { return type; } ! } --- 269,278 ---- throw new DatatypeException("value must be a positiveInteger"); return new FractionDigitsFacet(val, fixed, null); } ! public Datatype createDatatype() { return type; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TypeLibrary.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TypeLibrary.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TypeLibrary.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TypeLibrary.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TypeLibrary.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TypeLibrary.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.relaxng.datatype.DatatypeLibr *** 52,58 **** public class TypeLibrary implements DatatypeLibrary { ! public static final SimpleType ANY_SIMPLE_TYPE = new AnySimpleType(); public static final SimpleType STRING = new StringType(); --- 52,58 ---- public class TypeLibrary implements DatatypeLibrary { ! public static final SimpleType ANY_SIMPLE_TYPE = new AnySimpleType(); public static final SimpleType STRING = new StringType(); *************** public class TypeLibrary *** 169,173 **** throw new DatatypeException("Unknown type name: " + typeLocalName); return type; } ! } --- 169,173 ---- throw new DatatypeException("Unknown type name: " + typeLocalName); return type; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TypeLibraryFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TypeLibraryFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/TypeLibraryFactory.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/TypeLibraryFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TypeLibraryFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TypeLibraryFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class TypeLibraryFactory *** 56,60 **** return new TypeLibrary(); return null; } ! } --- 56,60 ---- return new TypeLibrary(); return null; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnionSimpleType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnionSimpleType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnionSimpleType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnionSimpleType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnionSimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnionSimpleType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class UnionSimpleType *** 57,63 **** * The member types in this union. */ public final List memberTypes; ! public UnionSimpleType(QName name, Set facets, int fundamentalFacets, SimpleType baseType, Annotation annotation, List memberTypes) --- 57,63 ---- * The member types in this union. */ public final List memberTypes; ! public UnionSimpleType(QName name, Set facets, int fundamentalFacets, SimpleType baseType, Annotation annotation, List memberTypes) *************** public class UnionSimpleType *** 78,83 **** } throw new DatatypeException("invalid union type value"); } - - } --- 78,82 ---- } throw new DatatypeException("invalid union type value"); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnsignedByteType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnsignedByteType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnsignedByteType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnsignedByteType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnsignedByteType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnsignedByteType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class UnsignedByteType *** 105,111 **** throw new DatatypeException(i, "invalid unsigned byte value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 105,111 ---- throw new DatatypeException(i, "invalid unsigned byte value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class UnsignedByteType *** 116,121 **** return null; } } - - } --- 116,120 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnsignedIntType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnsignedIntType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnsignedIntType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnsignedIntType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnsignedIntType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnsignedIntType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class UnsignedIntType *** 105,111 **** throw new DatatypeException(i, "invalid unsigned int value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 105,111 ---- throw new DatatypeException(i, "invalid unsigned int value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class UnsignedIntType *** 116,121 **** return null; } } - - } --- 116,120 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnsignedLongType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnsignedLongType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnsignedLongType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnsignedLongType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnsignedLongType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnsignedLongType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class UnsignedLongType *** 105,111 **** throw new DatatypeException(i, "invalid unsigned long value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 105,111 ---- throw new DatatypeException(i, "invalid unsigned long value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class UnsignedLongType *** 116,121 **** return null; } } - - } --- 116,120 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnsignedShortType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnsignedShortType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/UnsignedShortType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/UnsignedShortType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnsignedShortType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnsignedShortType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class UnsignedShortType *** 106,112 **** throw new DatatypeException(i, "invalid unsigned short value"); } } ! public Object createValue(String literal, ValidationContext context) { try { --- 106,112 ---- throw new DatatypeException(i, "invalid unsigned short value"); } } ! public Object createValue(String literal, ValidationContext context) { try { *************** final class UnsignedShortType *** 117,122 **** return null; } } - - } --- 117,121 ---- return null; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/WhiteSpaceFacet.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/WhiteSpaceFacet.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/datatype/WhiteSpaceFacet.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/datatype/WhiteSpaceFacet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WhiteSpaceFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* WhiteSpaceFacet.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.validation.datatype; *** 45,55 **** public final class WhiteSpaceFacet extends Facet { ! public static final int PRESERVE = 0; public static final int REPLACE = 1; public static final int COLLAPSE = 2; ! public final int value; public final boolean fixed; --- 45,55 ---- public final class WhiteSpaceFacet extends Facet { ! public static final int PRESERVE = 0; public static final int REPLACE = 1; public static final int COLLAPSE = 2; ! public final int value; public final boolean fixed; *************** public final class WhiteSpaceFacet *** 59,65 **** this.value = value; this.fixed = fixed; } ! public int hashCode() { return value; --- 59,65 ---- this.value = value; this.fixed = fixed; } ! public int hashCode() { return value; *************** public final class WhiteSpaceFacet *** 70,75 **** return (other instanceof WhiteSpaceFacet && ((WhiteSpaceFacet) other).value == value); } - - } --- 70,74 ---- return (other instanceof WhiteSpaceFacet && ((WhiteSpaceFacet) other).value == value); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/AnyNameNameClass.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/AnyNameNameClass.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/AnyNameNameClass.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/AnyNameNameClass.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnyNameNameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AnyNameNameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class AnyNameNameClass *** 47,53 **** { NameClass exceptNameClass; ! boolean matchesName(String uri, String localName) { return (exceptNameClass == null) ? true : --- 47,53 ---- { NameClass exceptNameClass; ! boolean matchesName(String uri, String localName) { return (exceptNameClass == null) ? true : *************** class AnyNameNameClass *** 55,58 **** } } - --- 55,57 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/AttributePattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/AttributePattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/AttributePattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/AttributePattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AttributePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AttributePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class AttributePattern *** 50,53 **** Pattern pattern; } - --- 50,52 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ChoiceNameClass.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ChoiceNameClass.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ChoiceNameClass.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ChoiceNameClass.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ChoiceNameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ChoiceNameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class ChoiceNameClass *** 54,59 **** return name1.matchesName(uri, localName) || name2.matchesName(uri, localName); } - - } --- 54,58 ---- return name1.matchesName(uri, localName) || name2.matchesName(uri, localName); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ChoicePattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ChoicePattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ChoicePattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ChoicePattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ChoicePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ChoicePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class ChoicePattern *** 50,53 **** Pattern pattern2; } - --- 50,52 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/DataPattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/DataPattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/DataPattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/DataPattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DataPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DataPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class DataPattern *** 55,60 **** DatatypeLibrary datatypeLibrary; List params = new LinkedList(); Pattern exceptPattern; - - } --- 55,59 ---- DatatypeLibrary datatypeLibrary; List params = new LinkedList(); Pattern exceptPattern; + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/Define.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/Define.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/Define.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/Define.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Define.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Define.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class Define *** 47,52 **** String name; ElementPattern element; - - } --- 47,51 ---- String name; ElementPattern element; + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ElementPattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ElementPattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ElementPattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ElementPattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ElementPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ElementPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class ElementPattern *** 50,53 **** Pattern pattern; } - --- 50,52 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/EmptyPattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/EmptyPattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/EmptyPattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/EmptyPattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EmptyPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EmptyPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class EmptyPattern *** 49,52 **** static final EmptyPattern INSTANCE = new EmptyPattern(); } - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FullSyntaxBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FullSyntaxBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class FullSyntaxBuilder *** 97,103 **** defineAttrs.add("name"); defineAttrs.add("combine"); Set nsAttrs = Collections.singleton("ns"); ! VOCABULARY.put("element", elementAttrs); VOCABULARY.put("attribute", elementAttrs); VOCABULARY.put("group", Collections.EMPTY_SET); --- 97,103 ---- defineAttrs.add("name"); defineAttrs.add("combine"); Set nsAttrs = Collections.singleton("ns"); ! VOCABULARY.put("element", elementAttrs); VOCABULARY.put("attribute", elementAttrs); VOCABULARY.put("group", Collections.EMPTY_SET); *************** class FullSyntaxBuilder *** 164,173 **** { urls = new HashSet(); refCount = 1; ! doc.normalizeDocument(); // Normalize XML document transform(doc); // Apply transformation rules to provide simple syntax ! // 4.18. grammar element Element p = doc.getDocumentElement(); Element grammar = --- 164,173 ---- { urls = new HashSet(); refCount = 1; ! doc.normalizeDocument(); // Normalize XML document transform(doc); // Apply transformation rules to provide simple syntax ! // 4.18. grammar element Element p = doc.getDocumentElement(); Element grammar = *************** class FullSyntaxBuilder *** 248,254 **** } transform2(p); // Apply second stage transformation rules ! Grammar ret = parseGrammar(grammar); datatypeLibraries = null; // free datatype libraries cache return ret; --- 248,254 ---- } transform2(p); // Apply second stage transformation rules ! Grammar ret = parseGrammar(grammar); datatypeLibraries = null; // free datatype libraries cache return ret; *************** class FullSyntaxBuilder *** 463,469 **** !"grammar".equals(eName)) throw new GrammarException("included element is not " + "a grammar"); ! transform(element); urls.remove(href); // handle components --- 463,469 ---- !"grammar".equals(eName)) throw new GrammarException("included element is not " + "a grammar"); ! transform(element); urls.remove(href); // handle components *************** class FullSyntaxBuilder *** 513,521 **** } // transform to div element Document doc = include.getOwnerDocument(); ! Element includeDiv = doc.createElementNS(XMLConstants.RELAXNG_NS_URI, "div"); ! Element grammarDiv = doc.createElementNS(XMLConstants.RELAXNG_NS_URI, "div"); // XXX copy include non-href attributes (none defined?) element = (Element) doc.importNode(element, true); --- 513,521 ---- } // transform to div element Document doc = include.getOwnerDocument(); ! Element includeDiv = doc.createElementNS(XMLConstants.RELAXNG_NS_URI, "div"); ! Element grammarDiv = doc.createElementNS(XMLConstants.RELAXNG_NS_URI, "div"); // XXX copy include non-href attributes (none defined?) element = (Element) doc.importNode(element, true); *************** class FullSyntaxBuilder *** 849,855 **** } } } ! break; case Node.TEXT_NODE: case Node.CDATA_SECTION_NODE: --- 849,855 ---- } } } ! break; case Node.TEXT_NODE: case Node.CDATA_SECTION_NODE: *************** class FullSyntaxBuilder *** 935,941 **** Node grammar = grammar2; if ("parentRef".equals(elementName)) grammar = grammar1; ! String name = ((Element) node).getAttribute("name"); if (name != null) throw new GrammarException("no name attribute on " + --- 935,941 ---- Node grammar = grammar2; if ("parentRef".equals(elementName)) grammar = grammar1; ! String name = ((Element) node).getAttribute("name"); if (name != null) throw new GrammarException("no name attribute on " + *************** class FullSyntaxBuilder *** 1240,1246 **** } node.appendChild(child); } ! private static Element getFirstChildElement(Node node) { Node ctx = node.getFirstChild(); --- 1240,1246 ---- } node.appendChild(child); } ! private static Element getFirstChildElement(Node node) { Node ctx = node.getFirstChild(); *************** class FullSyntaxBuilder *** 1485,1491 **** value.value = node.getTextContent(); return value; } ! ListPattern parseList(Element node) throws GrammarException { --- 1485,1491 ---- value.value = node.getTextContent(); return value; } ! ListPattern parseList(Element node) throws GrammarException { diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/Grammar.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/Grammar.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/Grammar.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/Grammar.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Grammar.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Grammar.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class Grammar *** 65,70 **** // TODO return null; } - - } --- 65,69 ---- // TODO return null; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/GrammarException.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/GrammarException.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/GrammarException.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/GrammarException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GrammarException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GrammarException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GrammarException *** 52,56 **** { super(message); } ! } --- 52,56 ---- { super(message); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/GrammarValidator.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/GrammarValidator.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/GrammarValidator.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/GrammarValidator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GrammarValidator.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GrammarValidator.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GrammarValidator *** 93,97 **** { // TODO } ! } --- 93,97 ---- { // TODO } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/GroupPattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/GroupPattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/GroupPattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/GroupPattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GroupPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GroupPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class GroupPattern *** 48,53 **** Pattern pattern1; Pattern pattern2; - - } --- 48,52 ---- Pattern pattern1; Pattern pattern2; + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/InterleavePattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/InterleavePattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/InterleavePattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/InterleavePattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* InterleavePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* InterleavePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class InterleavePattern *** 48,53 **** Pattern pattern1; Pattern pattern2; - - } --- 48,52 ---- Pattern pattern1; Pattern pattern2; + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ListPattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ListPattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ListPattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ListPattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ListPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ListPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class ListPattern *** 49,52 **** Pattern pattern; } - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/NSNameNameClass.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/NSNameNameClass.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/NSNameNameClass.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/NSNameNameClass.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NSNameNameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NSNameNameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class NSNameNameClass *** 56,61 **** return (exceptNameClass == null) ? true : !exceptNameClass.matchesName(uri, localName); } - - } --- 56,60 ---- return (exceptNameClass == null) ? true : !exceptNameClass.matchesName(uri, localName); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/NameClass.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/NameClass.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/NameClass.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/NameClass.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** abstract class NameClass *** 46,50 **** { abstract boolean matchesName(String uri, String localName); ! } --- 46,50 ---- { abstract boolean matchesName(String uri, String localName); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/NameNameClass.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/NameNameClass.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/NameNameClass.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/NameNameClass.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NameNameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NameNameClass.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class NameNameClass *** 57,60 **** } } - --- 57,59 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/NotAllowedPattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/NotAllowedPattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/NotAllowedPattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/NotAllowedPattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NotAllowedPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NotAllowedPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class NotAllowedPattern *** 49,53 **** static final NotAllowedPattern INSTANCE = new NotAllowedPattern(); } - - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/OneOrMorePattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/OneOrMorePattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/OneOrMorePattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/OneOrMorePattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OneOrMorePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* OneOrMorePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class OneOrMorePattern *** 49,52 **** Pattern pattern; } - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/Param.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/Param.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/Param.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/Param.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Param.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Param.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class Param *** 49,52 **** String value; } - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/Pattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/Pattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/Pattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/Pattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Pattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Pattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package gnu.xml.validation.relaxng; *** 45,48 **** abstract class Pattern { } - --- 45,47 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RelaxNGSchemaFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RelaxNGSchemaFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class RELAXNGSchemaFactory *** 75,81 **** public void setResourceResolver(LSResourceResolver resourceResolver) { this.resourceResolver = resourceResolver; ! } public ErrorHandler getErrorHandler() { --- 75,81 ---- public void setResourceResolver(LSResourceResolver resourceResolver) { this.resourceResolver = resourceResolver; ! } public ErrorHandler getErrorHandler() { *************** public class RELAXNGSchemaFactory *** 84,90 **** public void setErrorHandler(ErrorHandler errorHandler) { ! this.errorHandler = errorHandler; } public boolean isSchemaLanguageSupported(String schemaLanguage) --- 84,90 ---- public void setErrorHandler(ErrorHandler errorHandler) { ! this.errorHandler = errorHandler; } public boolean isSchemaLanguageSupported(String schemaLanguage) *************** public class RELAXNGSchemaFactory *** 159,163 **** throw e2; } } ! } --- 159,163 ---- throw e2; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/RefPattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/RefPattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/RefPattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/RefPattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RefPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RefPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class RefPattern *** 49,52 **** String name; } - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/TextPattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/TextPattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/TextPattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/TextPattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TextPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TextPattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class TextPattern *** 49,52 **** static final TextPattern INSTANCE = new TextPattern(); } - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ValuePattern.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ValuePattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/relaxng/ValuePattern.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/relaxng/ValuePattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ValuePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ValuePattern.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class ValuePattern *** 53,58 **** Datatype type; String ns; String value; - - } --- 53,57 ---- Datatype type; String ns; String value; + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/AnyAttribute.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/AnyAttribute.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/AnyAttribute.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/AnyAttribute.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AnyAttribute.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AnyAttribute.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class AnyAttribute *** 62,67 **** this.namespace = namespace; this.processContents = processContents; } - - } --- 62,66 ---- this.namespace = namespace; this.processContents = processContents; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/AttributeDeclaration.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/AttributeDeclaration.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/AttributeDeclaration.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/AttributeDeclaration.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AttributeDeclaration.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AttributeDeclaration.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class AttributeDeclaration *** 63,69 **** * One of NONE, DEFAULT, FIXED. */ final int type; ! /** * The value constraint. */ --- 63,69 ---- * One of NONE, DEFAULT, FIXED. */ final int type; ! /** * The value constraint. */ *************** class AttributeDeclaration *** 78,84 **** * The type definition corresponding to this attribute. */ final SimpleType datatype; ! /** * The annotation associated with this attribute declaration, if any. */ --- 78,84 ---- * The type definition corresponding to this attribute. */ final SimpleType datatype; ! /** * The annotation associated with this attribute declaration, if any. */ *************** class AttributeDeclaration *** 94,99 **** this.datatype = datatype; this.annotation = annotation; } - - } --- 94,98 ---- this.datatype = datatype; this.annotation = annotation; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/AttributeUse.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/AttributeUse.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/AttributeUse.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/AttributeUse.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AttributeUse.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AttributeUse.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class AttributeUse *** 55,61 **** * One of NONE, DEFAULT, FIXED. */ final int type; ! /** * The value constraint. */ --- 55,61 ---- * One of NONE, DEFAULT, FIXED. */ final int type; ! /** * The value constraint. */ *************** class AttributeUse *** 74,79 **** this.value = value; this.declaration = declaration; } - - } --- 74,78 ---- this.value = value; this.declaration = declaration; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/ComplexType.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/ComplexType.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/ComplexType.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/ComplexType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ComplexType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ComplexType.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class ComplexType *** 97,102 **** this.finality = finality; attributeUses = new LinkedHashSet(); } - - } --- 97,101 ---- this.finality = finality; attributeUses = new LinkedHashSet(); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/ElementDeclaration.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/ElementDeclaration.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/ElementDeclaration.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/ElementDeclaration.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ElementDeclaration.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ElementDeclaration.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class ElementDeclaration *** 58,64 **** * The type definition corresponding to this element. */ Type datatype; ! /** * The scope of this schema component. * One of GLOBAL, LOCAL, or ABSENT. --- 58,64 ---- * The type definition corresponding to this element. */ Type datatype; ! /** * The scope of this schema component. * One of GLOBAL, LOCAL, or ABSENT. *************** class ElementDeclaration *** 75,81 **** * One of NONE, DEFAULT, FIXED. */ final int type; ! /** * The value constraint. */ --- 75,81 ---- * One of NONE, DEFAULT, FIXED. */ final int type; ! /** * The value constraint. */ *************** class ElementDeclaration *** 84,90 **** final boolean nillable; // TODO identity-constraint definitions ! final QName substitutionGroup; final int substitutionGroupExclusions; --- 84,90 ---- final boolean nillable; // TODO identity-constraint definitions ! final QName substitutionGroup; final int substitutionGroupExclusions; *************** class ElementDeclaration *** 120,125 **** this.disallowedSubstitutions = disallowedSubstitutions; this.isAbstract = isAbstract; } - - } --- 120,124 ---- this.disallowedSubstitutions = disallowedSubstitutions; this.isAbstract = isAbstract; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/Particle.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/Particle.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/Particle.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/Particle.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Particle.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Particle.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class Particle *** 56,61 **** this.maxOccurs = maxOccurs; this.term = term; } - - } --- 56,60 ---- this.maxOccurs = maxOccurs; this.term = term; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/ValidationException.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/ValidationException.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/ValidationException.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/ValidationException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ValidationException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ValidationException.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class ValidationException *** 53,58 **** { super(message, locator); } - - } --- 53,57 ---- { super(message, locator); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchema.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchema.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchema.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchema.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchema.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchema.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class XMLSchema *** 58,64 **** static final int FINAL_LIST = 0x04; static final int FINAL_UNION = 0x08; static final int FINAL_ALL = 0x0f; ! static final int BLOCK_NONE = 0x00; static final int BLOCK_EXTENSION = 0x01; static final int BLOCK_RESTRICTION = 0x02; --- 58,64 ---- static final int FINAL_LIST = 0x04; static final int FINAL_UNION = 0x08; static final int FINAL_ALL = 0x0f; ! static final int BLOCK_NONE = 0x00; static final int BLOCK_EXTENSION = 0x01; static final int BLOCK_RESTRICTION = 0x02; *************** final class XMLSchema *** 129,134 **** //return new XMLSchemaValidatorHandler(this); return null; } - - } --- 129,133 ---- //return new XMLSchemaValidatorHandler(this); return null; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchemaAttributeTypeInfo.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchemaAttributeTypeInfo.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class XMLSchemaAttributeTypeInfo *** 94,99 **** derivationMethod); } } - - } --- 94,98 ---- derivationMethod); } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchemaBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchemaBuilder.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class XMLSchemaBuilder *** 209,215 **** datatype, annotation); } ! else { boolean required = "required".equals(use); // TODO ref --- 209,215 ---- datatype, annotation); } ! else { boolean required = "required".equals(use); // TODO ref *************** class XMLSchemaBuilder *** 427,433 **** String sgNamespace = node.lookupNamespaceURI(sgPrefix); substitutionGroup = new QName(sgNamespace, sgName); } ! String block = getAttribute(attrs, "block"); int substitutionGroupExclusions = (block == null) ? schema.blockDefault : --- 427,433 ---- String sgNamespace = node.lookupNamespaceURI(sgPrefix); substitutionGroup = new QName(sgNamespace, sgName); } ! String block = getAttribute(attrs, "block"); int substitutionGroupExclusions = (block == null) ? schema.blockDefault : *************** class XMLSchemaBuilder *** 436,445 **** int disallowedSubstitutions = (final_ == null) ? schema.finalDefault : parseFullDerivationSet(final_); ! boolean nillable = "true".equals(getAttribute(attrs, "nillable")); boolean isAbstract = "true".equals(getAttribute(attrs, "abstract")); ! if (notTopLevel) { minOccurs = getOccurrence(getAttribute(attrs, "minOccurs")); --- 436,445 ---- int disallowedSubstitutions = (final_ == null) ? schema.finalDefault : parseFullDerivationSet(final_); ! boolean nillable = "true".equals(getAttribute(attrs, "nillable")); boolean isAbstract = "true".equals(getAttribute(attrs, "abstract")); ! if (notTopLevel) { minOccurs = getOccurrence(getAttribute(attrs, "minOccurs")); *************** class XMLSchemaBuilder *** 463,473 **** scope, parent, constraintType, constraintValue, nillable, ! substitutionGroup, ! substitutionGroupExclusions, disallowedSubstitutions, isAbstract); ! for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) { --- 463,473 ---- scope, parent, constraintType, constraintValue, nillable, ! substitutionGroup, ! substitutionGroupExclusions, disallowedSubstitutions, isAbstract); ! for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) { *************** class XMLSchemaBuilder *** 623,629 **** if (mixed) { type.contentType = XMLSchema.CONTENT_MIXED; ! } return type; } --- 623,629 ---- if (mixed) { type.contentType = XMLSchema.CONTENT_MIXED; ! } return type; } *************** class XMLSchemaBuilder *** 835,840 **** } return name; } - - } --- 835,839 ---- } return name; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchemaElementTypeInfo.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchemaElementTypeInfo.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class XMLSchemaElementTypeInfo *** 87,92 **** return false; } } - - } --- 87,91 ---- return false; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchemaSchemaFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchemaSchemaFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XMLSchemaSchemaFactory *** 77,83 **** { this.resourceResolver = resourceResolver; } ! public ErrorHandler getErrorHandler() { return this.errorHandler; --- 77,83 ---- { this.resourceResolver = resourceResolver; } ! public ErrorHandler getErrorHandler() { return this.errorHandler; *************** public class XMLSchemaSchemaFactory *** 85,91 **** public void setErrorHandler(ErrorHandler errorHandler) { ! this.errorHandler = errorHandler; } --- 85,91 ---- public void setErrorHandler(ErrorHandler errorHandler) { ! this.errorHandler = errorHandler; } *************** public class XMLSchemaSchemaFactory *** 167,172 **** throw e2; } } - - } --- 167,171 ---- throw e2; } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchemaTypeInfo.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchemaTypeInfo.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** abstract class XMLSchemaTypeInfo *** 72,77 **** } return false; } - - } --- 72,76 ---- } return false; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchemaTypeInfoProvider.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchemaTypeInfoProvider.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class XMLSchemaTypeInfoProvider *** 77,82 **** { return handler.isSpecified(index); } - - } --- 77,81 ---- { return handler.isSpecified(index); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaValidator.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaValidator.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaValidator.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaValidator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchemaValidator.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchemaValidator.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class XMLSchemaValidator *** 58,64 **** ErrorHandler errorHandler; LSResourceResolver resourceResolver; ! XMLSchemaValidator(XMLSchema schema) { this.schema = schema; --- 58,64 ---- ErrorHandler errorHandler; LSResourceResolver resourceResolver; ! XMLSchemaValidator(XMLSchema schema) { this.schema = schema; *************** final class XMLSchemaValidator *** 93,98 **** { this.resourceResolver = resourceResolver; } - - } --- 93,97 ---- { this.resourceResolver = resourceResolver; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java *** gcc-4.5.2/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XMLSchemaValidatorHandler.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XMLSchemaValidatorHandler.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class XMLSchemaValidatorHandler *** 260,266 **** } } // TODO 5, 6, 7 ! // parent if (!context.isEmpty()) { --- 260,266 ---- } } // TODO 5, 6, 7 ! // parent if (!context.isEmpty()) { *************** final class XMLSchemaValidatorHandler *** 300,306 **** XMLSchemaAttributeTypeInfo attTypeInfo = new XMLSchemaAttributeTypeInfo(schema, attDecl, true); attributes.add(attTypeInfo); ! atts2.addAttribute(attUri, attLocalName, attQName, attType, attValue); atts2.setDeclared(count, declared); atts2.setSpecified(count, true); --- 300,306 ---- XMLSchemaAttributeTypeInfo attTypeInfo = new XMLSchemaAttributeTypeInfo(schema, attDecl, true); attributes.add(attTypeInfo); ! atts2.addAttribute(attUri, attLocalName, attQName, attType, attValue); atts2.setDeclared(count, declared); atts2.setSpecified(count, true); *************** final class XMLSchemaValidatorHandler *** 363,369 **** contentHandler.processingInstruction(target, data); } } ! public void skippedEntity(String name) throws SAXException { --- 363,369 ---- contentHandler.processingInstruction(target, data); } } ! public void skippedEntity(String name) throws SAXException { *************** final class XMLSchemaValidatorHandler *** 389,394 **** return Type.ANY_TYPE; return (SimpleType) typeLibrary.createDatatype(localName); } - - } --- 389,393 ---- return Type.ANY_TYPE; return (SimpleType) typeLibrary.createDatatype(localName); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/AndExpr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/AndExpr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/AndExpr.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/AndExpr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AndExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AndExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class AndExpr *** 83,87 **** { return lhs + " and " + rhs; } ! } --- 83,87 ---- { return lhs + " and " + rhs; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ArithmeticExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ArithmeticExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ArithmeticExpr *** 72,79 **** case MULTIPLY: case DIVIDE: case MODULO: ! this.op = op; ! break; default: throw new IllegalArgumentException(); } --- 72,79 ---- case MULTIPLY: case DIVIDE: case MODULO: ! this.op = op; ! break; default: throw new IllegalArgumentException(); } *************** final class ArithmeticExpr *** 166,170 **** buf.append(rhs); return buf.toString(); } ! } --- 166,170 ---- buf.append(rhs); return buf.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/BooleanFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/BooleanFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/BooleanFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/BooleanFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BooleanFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BooleanFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class BooleanFunction *** 60,66 **** { final Expr arg; ! BooleanFunction(List args) { this(args.get(0)); --- 60,66 ---- { final Expr arg; ! BooleanFunction(List args) { this(args.get(0)); *************** final class BooleanFunction *** 70,76 **** { this.arg = arg; } ! public Object evaluate(Node context, int pos, int len) { Object val = arg.evaluate(context, pos, len); --- 70,76 ---- { this.arg = arg; } ! public Object evaluate(Node context, int pos, int len) { Object val = arg.evaluate(context, pos, len); *************** final class BooleanFunction *** 86,95 **** { return arg.references(var); } ! public String toString() { return "boolean(" + arg + ")"; } ! } --- 86,95 ---- { return arg.references(var); } ! public String toString() { return "boolean(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/CeilingFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/CeilingFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/CeilingFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/CeilingFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CeilingFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CeilingFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class CeilingFunction *** 53,69 **** { final Expr arg; ! CeilingFunction(List args) { this(args.get(0)); } ! CeilingFunction(Expr arg) { this.arg = arg; } ! public Object evaluate(Node context, int pos, int len) { Object val = arg.evaluate(context, pos, len); --- 53,69 ---- { final Expr arg; ! CeilingFunction(List args) { this(args.get(0)); } ! CeilingFunction(Expr arg) { this.arg = arg; } ! public Object evaluate(Node context, int pos, int len) { Object val = arg.evaluate(context, pos, len); *************** final class CeilingFunction *** 80,89 **** { return arg.references(var); } ! public String toString() { return "ceiling(" + arg + ")"; } ! } --- 80,89 ---- { return arg.references(var); } ! public String toString() { return "ceiling(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/ConcatFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/ConcatFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/ConcatFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/ConcatFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ConcatFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ConcatFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ConcatFunction *** 111,115 **** buf.append(')'); return buf.toString(); } ! } --- 111,115 ---- buf.append(')'); return buf.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Constant.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Constant.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Constant.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Constant.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Constant.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Constant.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class Constant *** 94,98 **** } return ret; } ! ! } --- 94,98 ---- } return ret; } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/ContainsFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/ContainsFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/ContainsFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/ContainsFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ContainsFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ContainsFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ContainsFunction *** 89,93 **** { return "contains(" + arg1 + "," + arg2 + ")"; } ! } --- 89,93 ---- { return "contains(" + arg1 + "," + arg2 + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/CountFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/CountFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/CountFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/CountFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CountFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CountFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class CountFunction *** 64,70 **** this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { Object val = arg.evaluate(context, pos, len); --- 64,70 ---- this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { Object val = arg.evaluate(context, pos, len); *************** final class CountFunction *** 85,89 **** { return "count(" + arg + ")"; } ! } --- 85,89 ---- { return "count(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DocumentOrderComparator.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DocumentOrderComparator.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import org.w3c.dom.Node; *** 48,54 **** public class DocumentOrderComparator implements Comparator { ! public int compare(Node n1, Node n2) { return (int) n1.compareDocumentPosition(n2); --- 48,54 ---- public class DocumentOrderComparator implements Comparator { ! public int compare(Node n1, Node n2) { return (int) n1.compareDocumentPosition(n2); diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/EqualityExpr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/EqualityExpr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/EqualityExpr.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/EqualityExpr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EqualityExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EqualityExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class EqualityExpr *** 91,110 **** boolean frns = right instanceof Collection; if (flns && frns) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection lns = (Collection) left; ! @SuppressWarnings("unchecked") ! Collection rns = (Collection) right; if (lns.isEmpty()) { return false; } boolean all = true; ! for (Node ltest : lns) ! { ! for (Node rtest : rns) ! { if (ltest == rtest || ltest.equals(rtest)) { // much shorter --- 91,110 ---- boolean frns = right instanceof Collection; if (flns && frns) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection lns = (Collection) left; ! @SuppressWarnings("unchecked") ! Collection rns = (Collection) right; if (lns.isEmpty()) { return false; } boolean all = true; ! for (Node ltest : lns) ! { ! for (Node rtest : rns) ! { if (ltest == rtest || ltest.equals(rtest)) { // much shorter *************** final class EqualityExpr *** 128,134 **** } return all; } ! /* * If one object to be compared is a node-set and the other is a number, * then the comparison will be true if and only if there is a node in * the node-set such that the result of performing the comparison on the --- 128,134 ---- } return all; } ! /* * If one object to be compared is a node-set and the other is a number, * then the comparison will be true if and only if there is a node in * the node-set such that the result of performing the comparison on the *************** final class EqualityExpr *** 140,152 **** boolean frn = right instanceof Double; if ((flns && frn) || (frns && fln)) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection ns = flns ? (Collection) left : (Collection) right; double n = fln ? ((Double) left).doubleValue() : ((Double) right).doubleValue(); boolean all = true; ! for (Node test : ns) { double nn = _number(context, stringValue(test)); if (nn == n) --- 140,152 ---- boolean frn = right instanceof Double; if ((flns && frn) || (frns && fln)) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection ns = flns ? (Collection) left : (Collection) right; double n = fln ? ((Double) left).doubleValue() : ((Double) right).doubleValue(); boolean all = true; ! for (Node test : ns) { double nn = _number(context, stringValue(test)); if (nn == n) *************** final class EqualityExpr *** 174,185 **** boolean frs = right instanceof String; if ((flns && frs) || (frns && fls)) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection ns = flns ? (Collection) left : (Collection) right; String s = fls ? (String) left : (String) right; boolean all = true; ! for (Node test : ns) { if (stringValue(test).equals(s)) { --- 174,185 ---- boolean frs = right instanceof String; if ((flns && frs) || (frns && fls)) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection ns = flns ? (Collection) left : (Collection) right; String s = fls ? (String) left : (String) right; boolean all = true; ! for (Node test : ns) { if (stringValue(test).equals(s)) { *************** final class EqualityExpr *** 206,214 **** boolean frb = right instanceof Boolean; if ((flns && frb) || (frns && flb)) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection ns = flns ? (Collection) left : (Collection) right; boolean b = flb ? ((Boolean) left).booleanValue() : ((Boolean) right).booleanValue(); return _boolean(context, ns) == b; --- 206,214 ---- boolean frb = right instanceof Boolean; if ((flns && frb) || (frns && flb)) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection ns = flns ? (Collection) left : (Collection) right; boolean b = flb ? ((Boolean) left).booleanValue() : ((Boolean) right).booleanValue(); return _boolean(context, ns) == b; *************** final class EqualityExpr *** 270,274 **** return lhs + " = " + rhs; } } ! } --- 270,274 ---- return lhs + " = " + rhs; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Expr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Expr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Expr.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Expr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Expr.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Expr.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class Expr *** 112,118 **** return null; } } ! } public Object evaluate(Object item, QName returnType) --- 112,118 ---- return null; } } ! } public Object evaluate(Object item, QName returnType) *************** public abstract class Expr *** 143,152 **** { if (ret instanceof Collection) { ! /* Suppression is safe, as we know context ! produces Collection */ ! @SuppressWarnings("unchecked") ! Collection ns = (Collection) ret; switch (ns.size()) { case 0: --- 143,152 ---- { if (ret instanceof Collection) { ! /* Suppression is safe, as we know context ! produces Collection */ ! @SuppressWarnings("unchecked") ! Collection ns = (Collection) ret; switch (ns.size()) { case 0: *************** public abstract class Expr *** 171,182 **** throw new XPathExpressionException("return value is not a node-set"); } if (ret != null) ! { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection nodes = (Collection) ret; ! ret = new ExprNodeSet(nodes); ! } } } return ret; --- 171,182 ---- throw new XPathExpressionException("return value is not a node-set"); } if (ret != null) ! { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection nodes = (Collection) ret; ! ret = new ExprNodeSet(nodes); ! } } } return ret; *************** public abstract class Expr *** 185,191 **** public String evaluate(Object item) throws XPathExpressionException { ! return (String) evaluate(item, XPathConstants.STRING); } public Object evaluate(InputSource source, QName returnType) --- 185,191 ---- public String evaluate(Object item) throws XPathExpressionException { ! return (String) evaluate(item, XPathConstants.STRING); } public Object evaluate(InputSource source, QName returnType) *************** public abstract class Expr *** 201,215 **** } catch (ParserConfigurationException e) { ! throw new XPathExpressionException(e); } catch (SAXException e) { ! throw new XPathExpressionException(e); } catch (IOException e) { ! throw new XPathExpressionException(e); } } --- 201,215 ---- } catch (ParserConfigurationException e) { ! throw new XPathExpressionException(e); } catch (SAXException e) { ! throw new XPathExpressionException(e); } catch (IOException e) { ! throw new XPathExpressionException(e); } } *************** public abstract class Expr *** 224,230 **** public abstract Expr clone(Object context); public abstract boolean references(QName var); ! /* -- 4.1 Node Set Functions -- */ /** --- 224,230 ---- public abstract Expr clone(Object context); public abstract boolean references(QName var); ! /* -- 4.1 Node Set Functions -- */ /** *************** public abstract class Expr *** 244,252 **** Set ret = new HashSet(); if (object instanceof Collection) { ! /* Suppression is safe, as the iteration will check each value is a Node */ ! @SuppressWarnings("unchecked") ! Collection nodeSet = (Collection) object; for (Iterator i = nodeSet.iterator(); i.hasNext(); ) { String string = stringValue(i.next()); --- 244,252 ---- Set ret = new HashSet(); if (object instanceof Collection) { ! /* Suppression is safe, as the iteration will check each value is a Node */ ! @SuppressWarnings("unchecked") ! Collection nodeSet = (Collection) object; for (Iterator i = nodeSet.iterator(); i.hasNext(); ) { String string = stringValue(i.next()); *************** public abstract class Expr *** 303,309 **** String ret = node.getNamespaceURI(); return (ret == null) ? "" : ret; } ! /** * The name function returns a string containing a QName representing the * expanded-name of the node in the argument node-set that is first in --- 303,309 ---- String ret = node.getNamespaceURI(); return (ret == null) ? "" : ret; } ! /** * The name function returns a string containing a QName representing the * expanded-name of the node in the argument node-set that is first in *************** public abstract class Expr *** 391,397 **** { String ret = decimalFormat.format(d); if (ret.endsWith (".0")) ! { ret = ret.substring(0, ret.length() - 2); } return ret; --- 391,397 ---- { String ret = decimalFormat.format(d); if (ret.endsWith (".0")) ! { ret = ret.substring(0, ret.length() - 2); } return ret; *************** public abstract class Expr *** 399,408 **** } if (object instanceof Collection) { ! /* Suppression is safe, as we fail immediately if the ! * first element is not a Node and don't use the rest */ ! @SuppressWarnings("unchecked") ! Collection nodeSet = (Collection) object; if (nodeSet.isEmpty()) { return ""; --- 399,408 ---- } if (object instanceof Collection) { ! /* Suppression is safe, as we fail immediately if the ! * first element is not a Node and don't use the rest */ ! @SuppressWarnings("unchecked") ! Collection nodeSet = (Collection) object; if (nodeSet.isEmpty()) { return ""; *************** public abstract class Expr *** 414,420 **** } /* -- 4.3 Boolean Functions -- */ ! /** * Implementation of the XPath boolean function. */ --- 414,420 ---- } /* -- 4.3 Boolean Functions -- */ ! /** * Implementation of the XPath boolean function. */ *************** public abstract class Expr *** 463,472 **** } if (object instanceof Collection) { ! /* Suppression is safe, as we fail immediately if one ! * of the elements is not a Node */ ! @SuppressWarnings("unchecked") ! Collection nodeSet = (Collection) object; // Convert node-set to string object = stringValue(nodeSet); } --- 463,472 ---- } if (object instanceof Collection) { ! /* Suppression is safe, as we fail immediately if one ! * of the elements is not a Node */ ! @SuppressWarnings("unchecked") ! Collection nodeSet = (Collection) object; // Convert node-set to string object = stringValue(nodeSet); } *************** public abstract class Expr *** 505,511 **** { return stringValue(node, false); } ! static String stringValue(Node node, boolean elementMode) { switch (node.getNodeType()) --- 505,511 ---- { return stringValue(node, false); } ! static String stringValue(Node node, boolean elementMode) { switch (node.getNodeType()) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/FalseFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/FalseFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/FalseFunction.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/FalseFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FalseFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FalseFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class FalseFunction *** 68,72 **** { return "false()"; } ! } --- 68,72 ---- { return "false()"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/FloorFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/FloorFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/FloorFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/FloorFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FloorFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FloorFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class FloorFunction *** 86,90 **** { return "floor(" + arg + ")"; } ! } --- 86,90 ---- { return "floor(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Function.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Function.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Function.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Function.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Function.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Function.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public interface Function *** 54,57 **** void setArguments(List args); } - --- 54,56 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/FunctionCall.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/FunctionCall.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/FunctionCall.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/FunctionCall.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FunctionCall.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FunctionCall.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class FunctionCall *** 83,89 **** if (resolver != null) { QName qname = QName.valueOf(name); ! int arity = args.size(); XPathFunction function = resolver.resolveFunction(qname, arity); if (function != null) { --- 83,89 ---- if (resolver != null) { QName qname = QName.valueOf(name); ! int arity = args.size(); XPathFunction function = resolver.resolveFunction(qname, arity); if (function != null) { *************** public final class FunctionCall *** 165,169 **** buf.append(')'); return buf.toString(); } ! } --- 165,169 ---- buf.append(')'); return buf.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/IdFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/IdFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/IdFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/IdFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IdFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IdFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class IdFunction *** 99,103 **** { return "id(" + arg + ")"; } ! } --- 99,103 ---- { return "id(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/LangFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/LangFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/LangFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/LangFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LangFunction.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LangFunction.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class LangFunction *** 104,110 **** } return null; } ! public Expr clone(Object context) { return new IdFunction(arg.clone(context)); --- 104,110 ---- } return null; } ! public Expr clone(Object context) { return new IdFunction(arg.clone(context)); *************** final class LangFunction *** 119,123 **** { return "lang(" + arg + ")"; } ! } --- 119,123 ---- { return "lang(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/LastFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/LastFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/LastFunction.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/LastFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LastFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LastFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class LastFunction *** 69,73 **** { return "last()"; } ! } --- 69,73 ---- { return "last()"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/LocalNameFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/LocalNameFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/LocalNameFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/LocalNameFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LocalNameFunction.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LocalNameFunction.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class LocalNameFunction *** 69,75 **** this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { /* Suppression is safe, as we know context produces Collection */ --- 69,75 ---- this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { /* Suppression is safe, as we know context produces Collection */ *************** final class LocalNameFunction *** 94,98 **** { return (arg == null) ? "local-name()" : "local-name(" + arg + ")"; } ! } --- 94,98 ---- { return (arg == null) ? "local-name()" : "local-name(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NameFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NameFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NameFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NameFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NameFunction.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NameFunction.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NameFunction *** 77,83 **** this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { /* Suppression is safe, as we know context produces Collection */ --- 77,83 ---- this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { /* Suppression is safe, as we know context produces Collection */ *************** final class NameFunction *** 93,109 **** return new NameFunction((arg == null) ? null : arg.clone(context)); } ! @Override public boolean references(QName var) { return (arg == null) ? false : arg.references(var); } ! @Override public String toString() { return (arg == null) ? "name()" : "name(" + arg + ")"; } ! } --- 93,109 ---- return new NameFunction((arg == null) ? null : arg.clone(context)); } ! @Override public boolean references(QName var) { return (arg == null) ? false : arg.references(var); } ! @Override public String toString() { return (arg == null) ? "name()" : "name(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NameTest.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NameTest.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NameTest.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NameTest.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NameTest.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NameTest.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class NameTest *** 139,143 **** return "*"; return qName.toString(); } ! } --- 139,143 ---- return "*"; return qName.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NamespaceTest.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NamespaceTest.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NamespaceTest.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NamespaceTest.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NamespaceTest.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NamespaceTest.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class NamespaceTest *** 116,120 **** return "*"; return qName.toString(); } ! } --- 116,120 ---- return "*"; return qName.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NamespaceUriFunction.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NamespaceUriFunction.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NamespaceUriFunction *** 63,75 **** { this(args.size() > 0 ? args.get(0) : null); } ! NamespaceUriFunction(Expr arg) { this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { /* Suppression is safe, as we know context produces Collection */ --- 63,75 ---- { this(args.size() > 0 ? args.get(0) : null); } ! NamespaceUriFunction(Expr arg) { this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { /* Suppression is safe, as we know context produces Collection */ *************** final class NamespaceUriFunction *** 89,98 **** { return (arg == null) ? false : arg.references(var); } ! public String toString() { return (arg == null) ? "namespace-uri()" : "namespace-uri(" + arg + ")"; } ! } --- 89,98 ---- { return (arg == null) ? false : arg.references(var); } ! public String toString() { return (arg == null) ? "namespace-uri()" : "namespace-uri(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NegativeExpr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NegativeExpr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NegativeExpr.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NegativeExpr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NegativeExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NegativeExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NegativeExpr *** 77,81 **** { return "-" + expr; } ! } --- 77,81 ---- { return "-" + expr; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NodeTypeTest.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NodeTypeTest.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NodeTypeTest.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NodeTypeTest.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NodeTypeTest.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NodeTypeTest.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class NodeTypeTest *** 137,141 **** throw new IllegalStateException(); } } ! } --- 137,141 ---- throw new IllegalStateException(); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NormalizeSpaceFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NormalizeSpaceFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NormalizeSpaceFunction *** 65,71 **** { this(args.get(0)); } ! NormalizeSpaceFunction(Expr arg) { this.arg = arg; --- 65,71 ---- { this(args.get(0)); } ! NormalizeSpaceFunction(Expr arg) { this.arg = arg; *************** final class NormalizeSpaceFunction *** 80,86 **** CPStringBuilder buf = new CPStringBuilder(); if (st.hasMoreTokens()) { ! buf.append(st.nextToken()); while (st.hasMoreTokens()) { buf.append(' '); --- 80,86 ---- CPStringBuilder buf = new CPStringBuilder(); if (st.hasMoreTokens()) { ! buf.append(st.nextToken()); while (st.hasMoreTokens()) { buf.append(' '); *************** final class NormalizeSpaceFunction *** 104,108 **** { return (arg == null) ? "normalize-space()" : "normalize-space(" + arg + ")"; } ! } --- 104,108 ---- { return (arg == null) ? "normalize-space()" : "normalize-space(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NotFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NotFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NotFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NotFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NotFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NotFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NotFunction *** 84,88 **** { return "not(" + arg + ")"; } ! } --- 84,88 ---- { return "not(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NumberFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NumberFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/NumberFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/NumberFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NumberFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NumberFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class NumberFunction *** 99,103 **** { return "number(" + arg + ")"; } ! } --- 99,103 ---- { return "number(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/OrExpr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/OrExpr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/OrExpr.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/OrExpr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OrExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* OrExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class OrExpr *** 83,87 **** { return lhs + " or " + rhs; } ! } --- 83,87 ---- { return lhs + " or " + rhs; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ParenthesizedExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ParenthesizedExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ParenthesizedExpr *** 60,75 **** this.expr = expr; } ! @Override public Object evaluate(Node context, int pos, int len) { Object ret = expr.evaluate(context, pos, len); if (ret instanceof Collection) { ! /* Suppression is safe, as we know context produces ! Collection */ ! @SuppressWarnings("unchecked") ! Collection nodes = (Collection) ret; List list = new ArrayList(nodes); Collections.sort(list, documentOrderComparator); ret = list; --- 60,75 ---- this.expr = expr; } ! @Override public Object evaluate(Node context, int pos, int len) { Object ret = expr.evaluate(context, pos, len); if (ret instanceof Collection) { ! /* Suppression is safe, as we know context produces ! Collection */ ! @SuppressWarnings("unchecked") ! Collection nodes = (Collection) ret; List list = new ArrayList(nodes); Collections.sort(list, documentOrderComparator); ret = list; *************** final class ParenthesizedExpr *** 91,95 **** { return "(" + expr + ")"; } ! } --- 91,95 ---- { return "(" + expr + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Path.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Path.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Path.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Path.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Path.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Path.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** abstract class Path *** 50,54 **** { abstract Collection evaluate(Node context, Collection nodeSet); ! } --- 50,54 ---- { abstract Collection evaluate(Node context, Collection nodeSet); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Pattern.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Pattern.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Pattern.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Pattern.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Pattern.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Pattern.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class Pattern *** 51,54 **** public abstract boolean matches(Node context); } - --- 51,53 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/PositionFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/PositionFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/PositionFunction.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/PositionFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PositionFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PositionFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class PositionFunction *** 69,73 **** { return "position()"; } ! } --- 69,73 ---- { return "position()"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Predicate.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Predicate.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Predicate.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Predicate.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Predicate.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Predicate.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class Predicate *** 76,85 **** { return expr.references(var); } ! public String toString() { return "[" + expr + "]"; } ! } --- 76,85 ---- { return expr.references(var); } ! public String toString() { return "[" + expr + "]"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/RelationalExpr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/RelationalExpr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/RelationalExpr.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/RelationalExpr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RelationalExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RelationalExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class RelationalExpr *** 103,107 **** { return lhs + " " + (lt ? "<" : ">") + (eq ? "=" : "") + " " + rhs; } ! } --- 103,107 ---- { return lhs + " " + (lt ? "<" : ">") + (eq ? "=" : "") + " " + rhs; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Root.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Root.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Root.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Root.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Root.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Root.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class Root *** 87,91 **** { return "/"; } ! } --- 87,91 ---- { return "/"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/RoundFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/RoundFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/RoundFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/RoundFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RoundFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RoundFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class RoundFunction *** 93,97 **** { return "round(" + arg + ")"; } ! } --- 93,97 ---- { return "round(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Selector.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Selector.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Selector.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Selector.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Selector.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Selector.java -- Copyright (C) 2004,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class Selector *** 115,121 **** getContextPosition(context), getContextSize(context)); } ! boolean matches(Node context, int pos, int len) { short nodeType = context.getNodeType(); --- 115,121 ---- getContextPosition(context), getContextSize(context)); } ! boolean matches(Node context, int pos, int len) { short nodeType = context.getNodeType(); *************** public final class Selector *** 499,503 **** } return buf.toString(); } ! } --- 499,503 ---- } return buf.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/StartsWithFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/StartsWithFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/StartsWithFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/StartsWithFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StartsWithFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StartsWithFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class StartsWithFunction *** 88,92 **** { return "starts-with(" + arg1 + "," + arg2 + ")"; } ! } --- 88,92 ---- { return "starts-with(" + arg1 + "," + arg2 + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Steps.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Steps.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Steps.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Steps.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Steps.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Steps.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class Steps *** 86,92 **** if (pos > 0) { Pattern left = (Pattern) path.get(pos - 1); ! for (Node candidate : possibleContexts(right, context)) { if (left.matches(candidate) && matches(candidate, pos - 1)) --- 86,92 ---- if (pos > 0) { Pattern left = (Pattern) path.get(pos - 1); ! for (Node candidate : possibleContexts(right, context)) { if (left.matches(candidate) && matches(candidate, pos - 1)) *************** public final class Steps *** 160,166 **** return Collections.emptySet(); } ! @Override public Object evaluate(Node context, int pos, int len) { //System.err.println(toString()+" evaluate"); --- 160,166 ---- return Collections.emptySet(); } ! @Override public Object evaluate(Node context, int pos, int len) { //System.err.println(toString()+" evaluate"); *************** public final class Steps *** 172,187 **** while (val instanceof Collection && i.hasNext()) { Path rhs = (Path) i.next(); ! /* Suppression is safe, as we know context produces Collection */ @SuppressWarnings("unchecked") ! Collection nodes = (Collection) val; ! val = rhs.evaluate(context, nodes); //System.err.println("\tevaluate "+rhs+" = "+val); } return val; } ! @Override Collection evaluate(Node context, Collection ns) { // Left to right --- 172,187 ---- while (val instanceof Collection && i.hasNext()) { Path rhs = (Path) i.next(); ! /* Suppression is safe, as we know context produces Collection */ @SuppressWarnings("unchecked") ! Collection nodes = (Collection) val; ! val = rhs.evaluate(context, nodes); //System.err.println("\tevaluate "+rhs+" = "+val); } return val; } ! @Override Collection evaluate(Node context, Collection ns) { // Left to right *************** public final class Steps *** 195,208 **** { Set acc = new LinkedHashSet(); int pos = 1, len = ns.size(); ! for (Node node : ns) { Object ret = lhs.evaluate(node, pos++, len); if (ret instanceof Collection) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection nodes = (Collection) ret; acc.addAll(nodes); } } --- 195,208 ---- { Set acc = new LinkedHashSet(); int pos = 1, len = ns.size(); ! for (Node node : ns) { Object ret = lhs.evaluate(node, pos++, len); if (ret instanceof Collection) { ! /* Suppression is safe, as we know context produces Collection */ ! @SuppressWarnings("unchecked") ! Collection nodes = (Collection) ret; acc.addAll(nodes); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/StringFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/StringFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/StringFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/StringFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StringFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StringFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class StringFunction *** 88,94 **** { this(args.size() > 0 ? args.get(0) : null); } ! StringFunction(Expr arg) { this.arg = arg; --- 88,94 ---- { this(args.size() > 0 ? args.get(0) : null); } ! StringFunction(Expr arg) { this.arg = arg; *************** final class StringFunction *** 115,119 **** { return (arg == null) ? "string()" : "string(" + arg + ")"; } ! } --- 115,119 ---- { return (arg == null) ? "string()" : "string(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/StringLengthFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/StringLengthFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/StringLengthFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/StringLengthFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StringLengthFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StringLengthFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class StringLengthFunction *** 59,65 **** { this(args.isEmpty() ? null : (Expr) args.get(0)); } ! StringLengthFunction(Expr arg) { this.arg = arg; --- 59,65 ---- { this(args.isEmpty() ? null : (Expr) args.get(0)); } ! StringLengthFunction(Expr arg) { this.arg = arg; *************** final class StringLengthFunction *** 88,92 **** { return (arg == null) ? "string-length()" : "string-length(" + arg + ")"; } ! } --- 88,92 ---- { return (arg == null) ? "string-length()" : "string-length(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SubstringAfterFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SubstringAfterFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class SubstringAfterFunction *** 94,98 **** { return "substring-after(" + arg1 + "," + arg2 + ")"; } ! } --- 94,98 ---- { return "substring-after(" + arg1 + "," + arg2 + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SubstringBeforeFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SubstringBeforeFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class SubstringBeforeFunction *** 93,97 **** { return "substring-before(" + arg1 + "," + arg2 + ")"; } ! } --- 93,97 ---- { return "substring-before(" + arg1 + "," + arg2 + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/SubstringFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/SubstringFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/SubstringFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/SubstringFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SubstringFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SubstringFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class SubstringFunction *** 91,97 **** { Object val3 = arg3.evaluate(context, pos, len); int v3 = Expr.intValue(val3); ! if (v3 < l) l = v3; } --- 91,97 ---- { Object val3 = arg3.evaluate(context, pos, len); int v3 = Expr.intValue(val3); ! if (v3 < l) l = v3; } *************** final class SubstringFunction *** 115,119 **** return (arg3 == null) ? "substring(" + arg1 + "," + arg2 + ")" : "substring(" + arg1 + "," + arg2 + "," + arg3 + ")"; } ! } --- 115,119 ---- return (arg3 == null) ? "substring(" + arg1 + "," + arg2 + ")" : "substring(" + arg1 + "," + arg2 + "," + arg3 + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/SumFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/SumFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/SumFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/SumFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SumFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SumFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class SumFunction *** 66,83 **** this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { Object val = arg.evaluate(context, pos, len); double sum = 0.0d; if (val instanceof Collection) { ! /* Suppression is safe, as we know context produces ! Collection */ ! @SuppressWarnings("unchecked") ! Collection nodes = (Collection) val; ! for (Node node : nodes) { String s = stringValue(node); sum += _number(context, s); --- 66,83 ---- this.arg = arg; } ! @Override public Object evaluate(Node context, int pos, int len) { Object val = arg.evaluate(context, pos, len); double sum = 0.0d; if (val instanceof Collection) { ! /* Suppression is safe, as we know context produces ! Collection */ ! @SuppressWarnings("unchecked") ! Collection nodes = (Collection) val; ! for (Node node : nodes) { String s = stringValue(node); sum += _number(context, s); *************** final class SumFunction *** 100,104 **** { return "sum(" + arg + ")"; } ! } --- 100,104 ---- { return "sum(" + arg + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Test.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Test.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/Test.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/Test.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Test.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Test.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/TranslateFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/TranslateFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/TranslateFunction.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/TranslateFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TranslateFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TranslateFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class TranslateFunction *** 110,117 **** if (!replaced) { buf.append(c); ! } ! } return buf.toString(); } --- 110,117 ---- if (!replaced) { buf.append(c); ! } ! } return buf.toString(); } *************** final class TranslateFunction *** 126,135 **** return (arg1.references(var) || arg2.references(var) || arg3.references(var)); } ! public String toString() { return "translate(" + arg1 + "," + arg2 + "," + arg3 + ")"; } ! } --- 126,135 ---- return (arg1.references(var) || arg2.references(var) || arg3.references(var)); } ! public String toString() { return "translate(" + arg1 + "," + arg2 + "," + arg3 + ")"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/TrueFunction.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/TrueFunction.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/TrueFunction.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/TrueFunction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TrueFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TrueFunction.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class TrueFunction *** 68,72 **** { return "true()"; } ! } --- 68,72 ---- { return "true()"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/UnionExpr.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/UnionExpr.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/UnionExpr.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/UnionExpr.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnionExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnionExpr.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class UnionExpr *** 74,80 **** return false; } ! @Override public Object evaluate(Node context, int pos, int len) { Object left = lhs.evaluate(context, pos, len); --- 74,80 ---- return false; } ! @Override public Object evaluate(Node context, int pos, int len) { Object left = lhs.evaluate(context, pos, len); *************** public final class UnionExpr *** 83,95 **** if (left instanceof Collection && right instanceof Collection) { Set set = new HashSet(); ! /* Suppression is safe as addAll will check the types ! of the elements and throw a ClassCastException as necessary */ ! @SuppressWarnings("unchecked") ! Collection l = (Collection) left; ! @SuppressWarnings("unchecked") ! Collection r = (Collection) right; ! set.addAll (l); set.addAll (r); list = new ArrayList(set); Collections.sort(list, documentOrderComparator); --- 83,95 ---- if (left instanceof Collection && right instanceof Collection) { Set set = new HashSet(); ! /* Suppression is safe as addAll will check the types ! of the elements and throw a ClassCastException as necessary */ ! @SuppressWarnings("unchecked") ! Collection l = (Collection) left; ! @SuppressWarnings("unchecked") ! Collection r = (Collection) right; ! set.addAll (l); set.addAll (r); list = new ArrayList(set); Collections.sort(list, documentOrderComparator); *************** public final class UnionExpr *** 113,117 **** { return lhs + " | " + rhs; } ! } --- 113,117 ---- { return lhs + " | " + rhs; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/VariableReference.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/VariableReference.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/VariableReference.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/VariableReference.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* VariableReference.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* VariableReference.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class VariableReference *** 98,102 **** buf.append(name.getLocalPart()); return buf.toString(); } ! } --- 98,102 ---- buf.append(name.getLocalPart()); return buf.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/XPathFactoryImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/XPathFactoryImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/XPathFactoryImpl.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/XPathFactoryImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XPathFactoryImpl.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XPathFactoryImpl.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XPathFactoryImpl *** 86,90 **** { return new XPathImpl(null, variableResolver, functionResolver); } ! } --- 86,90 ---- { return new XPathImpl(null, variableResolver, functionResolver); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/XPathImpl.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/XPathImpl.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/XPathImpl.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/XPathImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XPathImpl.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XPathImpl.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class XPathImpl *** 126,132 **** throw new XPathExpressionException(expression); } } ! public Object evaluate(String expression, Object item, QName returnType) --- 126,132 ---- throw new XPathExpressionException(expression); } } ! public Object evaluate(String expression, Object item, QName returnType) diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/XPathParser.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/XPathParser.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/XPathParser.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/XPathParser.java Tue Jan 11 19:46:05 2011 *************** *** 1,6 **** // created by jay 0.8 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de ! // line 2 "XPathParser.y" /* XPathParser.y - An XPath 1.0 parser. Copyright (C) 2004 The Free Software Foundation --- 1,6 ---- // created by jay 0.8 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de ! // line 2 "XPathParser.y" /* XPathParser.y - An XPath 1.0 parser. Copyright (C) 2004 The Free Software Foundation *************** public class XPathParser *** 206,212 **** return new FunctionCall(functionResolver, name, args); } ! // line 211 "-" // %token constants public static final int LITERAL = 257; --- 206,212 ---- return new FunctionCall(functionResolver, name, args); } ! // line 211 "-" // %token constants public static final int LITERAL = 257; *************** public class XPathParser *** 364,370 **** @throws yyException on irrecoverable parse error. */ public Object yyparse (yyInput yyLex, Object yydebug) ! throws java.io.IOException, yyException { //t this.yydebug = (jay.yydebug.yyDebug)yydebug; return yyparse(yyLex); } --- 364,370 ---- @throws yyException on irrecoverable parse error. */ public Object yyparse (yyInput yyLex, Object yydebug) ! throws java.io.IOException, yyException { //t this.yydebug = (jay.yydebug.yyDebug)yydebug; return yyparse(yyLex); } *************** public class XPathParser *** 392,406 **** @throws yyException on irrecoverable parse error. */ public Object yyparse (yyInput yyLex) ! throws java.io.IOException, yyException { ! if (yyMax <= 0) yyMax = 256; // initial size ! int yyState = 0, yyStates[] = new int[yyMax]; // state stack ! Object yyVal = null, yyVals[] = new Object[yyMax]; // value stack ! int yyToken = -1; // current input ! int yyErrorFlag = 0; // #tks to shift yyLoop: for (int yyTop = 0;; ++ yyTop) { ! if (yyTop >= yyStates.length) { // dynamically increase int[] i = new int[yyStates.length+yyMax]; System.arraycopy(yyStates, 0, i, 0, yyStates.length); yyStates = i; --- 392,406 ---- @throws yyException on irrecoverable parse error. */ public Object yyparse (yyInput yyLex) ! throws java.io.IOException, yyException { ! if (yyMax <= 0) yyMax = 256; // initial size ! int yyState = 0, yyStates[] = new int[yyMax]; // state stack ! Object yyVal = null, yyVals[] = new Object[yyMax]; // value stack ! int yyToken = -1; // current input ! int yyErrorFlag = 0; // #tks to shift yyLoop: for (int yyTop = 0;; ++ yyTop) { ! if (yyTop >= yyStates.length) { // dynamically increase int[] i = new int[yyStates.length+yyMax]; System.arraycopy(yyStates, 0, i, 0, yyStates.length); yyStates = i; *************** public class XPathParser *** 412,420 **** yyVals[yyTop] = yyVal; //t if (yydebug != null) yydebug.push(yyState, yyVal); ! yyDiscarded: for (;;) { // discarding a token does not change stack int yyN; ! if ((yyN = YyDefRedClass.yyDefRed[yyState]) == 0) { // else [default] reduce (yyN) if (yyToken < 0) { yyToken = yyLex.advance() ? yyLex.token() : 0; //t if (yydebug != null) --- 412,420 ---- yyVals[yyTop] = yyVal; //t if (yydebug != null) yydebug.push(yyState, yyVal); ! yyDiscarded: for (;;) { // discarding a token does not change stack int yyN; ! if ((yyN = YyDefRedClass.yyDefRed[yyState]) == 0) { // else [default] reduce (yyN) if (yyToken < 0) { yyToken = yyLex.advance() ? yyLex.token() : 0; //t if (yydebug != null) *************** public class XPathParser *** 424,430 **** && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyToken) { //t if (yydebug != null) //t yydebug.shift(yyState, YyTableClass.yyTable[yyN], yyErrorFlag-1); ! yyState = YyTableClass.yyTable[yyN]; // shift to yyN yyVal = yyLex.value(); yyToken = -1; if (yyErrorFlag > 0) -- yyErrorFlag; --- 424,430 ---- && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyToken) { //t if (yydebug != null) //t yydebug.shift(yyState, YyTableClass.yyTable[yyN], yyErrorFlag-1); ! yyState = YyTableClass.yyTable[yyN]; // shift to yyN yyVal = yyLex.value(); yyToken = -1; if (yyErrorFlag > 0) -- yyErrorFlag; *************** public class XPathParser *** 432,445 **** } if ((yyN = YyRindexClass.yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0 && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyToken) ! yyN = YyTableClass.yyTable[yyN]; // reduce (yyN) else switch (yyErrorFlag) { ! case 0: yyerror("syntax error", yyExpecting(yyState)); //t if (yydebug != null) yydebug.error("syntax error"); ! case 1: case 2: yyErrorFlag = 3; do { --- 432,445 ---- } if ((yyN = YyRindexClass.yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0 && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyToken) ! yyN = YyTableClass.yyTable[yyN]; // reduce (yyN) else switch (yyErrorFlag) { ! case 0: yyerror("syntax error", yyExpecting(yyState)); //t if (yydebug != null) yydebug.error("syntax error"); ! case 1: case 2: yyErrorFlag = 3; do { *************** public class XPathParser *** 456,462 **** } while (-- yyTop >= 0); //t if (yydebug != null) yydebug.reject(); throw new yyException("irrecoverable syntax error"); ! case 3: if (yyToken == 0) { //t if (yydebug != null) yydebug.reject(); --- 456,462 ---- } while (-- yyTop >= 0); //t if (yydebug != null) yydebug.reject(); throw new yyException("irrecoverable syntax error"); ! case 3: if (yyToken == 0) { //t if (yydebug != null) yydebug.reject(); *************** public class XPathParser *** 464,472 **** } //t if (yydebug != null) //t yydebug.discard(yyState, yyToken, yyname(yyToken), ! //t yyLex.value()); yyToken = -1; ! continue yyDiscarded; // leave stack alone } } int yyV = yyTop + 1-YyLenClass.yyLen[yyN]; --- 464,472 ---- } //t if (yydebug != null) //t yydebug.discard(yyState, yyToken, yyname(yyToken), ! //t yyLex.value()); yyToken = -1; ! continue yyDiscarded; // leave stack alone } } int yyV = yyTop + 1-YyLenClass.yyLen[yyN]; *************** public class XPathParser *** 475,487 **** yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]); switch (yyN) { case 4: ! // line 277 "XPathParser.y" { yyVal = new Root(); } break; case 5: ! // line 281 "XPathParser.y" { Steps steps; if (yyVals[0+yyTop] instanceof Steps) --- 475,487 ---- yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]); switch (yyN) { case 4: ! // line 277 "XPathParser.y" { yyVal = new Root(); } break; case 5: ! // line 281 "XPathParser.y" { Steps steps; if (yyVals[0+yyTop] instanceof Steps) *************** case 5: *** 499,505 **** } break; case 6: ! // line 297 "XPathParser.y" { Test nt = new NodeTypeTest((short) 0); Selector s = new Selector(Selector.DESCENDANT_OR_SELF, --- 499,505 ---- } break; case 6: ! // line 297 "XPathParser.y" { Test nt = new NodeTypeTest((short) 0); Selector s = new Selector(Selector.DESCENDANT_OR_SELF, *************** case 6: *** 522,528 **** } break; case 8: ! // line 322 "XPathParser.y" { Steps steps; if (yyVals[-2+yyTop] instanceof Steps) --- 522,528 ---- } break; case 8: ! // line 322 "XPathParser.y" { Steps steps; if (yyVals[-2+yyTop] instanceof Steps) *************** case 8: *** 540,546 **** } break; case 9: ! // line 338 "XPathParser.y" { Test nt = new NodeTypeTest((short) 0); Selector s = new Selector(Selector.DESCENDANT_OR_SELF, --- 540,546 ---- } break; case 9: ! // line 338 "XPathParser.y" { Test nt = new NodeTypeTest((short) 0); Selector s = new Selector(Selector.DESCENDANT_OR_SELF, *************** case 9: *** 563,576 **** } break; case 10: ! // line 362 "XPathParser.y" { @SuppressWarnings("unchecked") List tests = (List) yyVals[0+yyTop]; yyVal = new Selector (Selector.CHILD, tests); } break; case 11: ! // line 366 "XPathParser.y" { /* This is safe as we create this in one of the other cases */ @SuppressWarnings("unchecked") List tests = (List) yyVals[0+yyTop]; --- 563,576 ---- } break; case 10: ! // line 362 "XPathParser.y" { @SuppressWarnings("unchecked") List tests = (List) yyVals[0+yyTop]; yyVal = new Selector (Selector.CHILD, tests); } break; case 11: ! // line 366 "XPathParser.y" { /* This is safe as we create this in one of the other cases */ @SuppressWarnings("unchecked") List tests = (List) yyVals[0+yyTop]; *************** case 11: *** 578,584 **** } break; case 12: ! // line 370 "XPathParser.y" { /* This is safe as we create this in one of the other cases */ @SuppressWarnings("unchecked") List tests = (List) yyVals[0+yyTop]; --- 578,584 ---- } break; case 12: ! // line 370 "XPathParser.y" { /* This is safe as we create this in one of the other cases */ @SuppressWarnings("unchecked") List tests = (List) yyVals[0+yyTop]; *************** case 12: *** 586,606 **** } break; case 13: ! // line 374 "XPathParser.y" { List emptyList = Collections.emptyList(); yyVal = new Selector (Selector.SELF, emptyList); } break; case 14: ! // line 378 "XPathParser.y" { List emptyList = Collections.emptyList(); yyVal = new Selector (Selector.PARENT, emptyList); } break; case 15: ! // line 385 "XPathParser.y" { List list = new ArrayList(); list.add((Test) yyVals[0+yyTop]); --- 586,606 ---- } break; case 13: ! // line 374 "XPathParser.y" { List emptyList = Collections.emptyList(); yyVal = new Selector (Selector.SELF, emptyList); } break; case 14: ! // line 378 "XPathParser.y" { List emptyList = Collections.emptyList(); yyVal = new Selector (Selector.PARENT, emptyList); } break; case 15: ! // line 385 "XPathParser.y" { List list = new ArrayList(); list.add((Test) yyVals[0+yyTop]); *************** case 15: *** 608,614 **** } break; case 16: ! // line 391 "XPathParser.y" { /* This is safe as we create this in one of the other cases */ @SuppressWarnings("unchecked") List tests = (List)yyVals[-1+yyTop]; --- 608,614 ---- } break; case 16: ! // line 391 "XPathParser.y" { /* This is safe as we create this in one of the other cases */ @SuppressWarnings("unchecked") List tests = (List)yyVals[-1+yyTop]; *************** case 16: *** 617,744 **** } break; case 17: ! // line 415 "XPathParser.y" { yyVal = new Integer(Selector.ANCESTOR); } break; case 18: ! // line 419 "XPathParser.y" { yyVal = new Integer(Selector.ANCESTOR_OR_SELF); } break; case 19: ! // line 423 "XPathParser.y" { yyVal = new Integer(Selector.ATTRIBUTE); } break; case 20: ! // line 427 "XPathParser.y" { yyVal = new Integer(Selector.CHILD); } break; case 21: ! // line 431 "XPathParser.y" { yyVal = new Integer(Selector.DESCENDANT); } break; case 22: ! // line 435 "XPathParser.y" { yyVal = new Integer(Selector.DESCENDANT_OR_SELF); } break; case 23: ! // line 439 "XPathParser.y" { yyVal = new Integer(Selector.FOLLOWING); } break; case 24: ! // line 443 "XPathParser.y" { yyVal = new Integer(Selector.FOLLOWING_SIBLING); } break; case 25: ! // line 447 "XPathParser.y" { yyVal = new Integer(Selector.NAMESPACE); } break; case 26: ! // line 451 "XPathParser.y" { yyVal = new Integer(Selector.PARENT); } break; case 27: ! // line 455 "XPathParser.y" { yyVal = new Integer(Selector.PRECEDING); } break; case 28: ! // line 459 "XPathParser.y" { yyVal = new Integer(Selector.PRECEDING_SIBLING); } break; case 29: ! // line 463 "XPathParser.y" { yyVal = new Integer(Selector.SELF); } break; case 31: ! // line 472 "XPathParser.y" { yyVal = new NodeTypeTest(Node.PROCESSING_INSTRUCTION_NODE, (String) yyVals[-1+yyTop]); } break; case 32: ! // line 477 "XPathParser.y" { yyVal = new NodeTypeTest(((Short) yyVals[-1+yyTop]).shortValue()); } break; case 33: ! // line 484 "XPathParser.y" { yyVal = new Predicate((Expr) yyVals[-1+yyTop]); } break; case 35: ! // line 492 "XPathParser.y" { yyVal = new ParenthesizedExpr((Expr) yyVals[-1+yyTop]); } break; case 36: ! // line 496 "XPathParser.y" { yyVal = new Constant(yyVals[0+yyTop]); } break; case 37: ! // line 500 "XPathParser.y" { yyVal = new Constant(yyVals[0+yyTop]); } break; case 39: ! // line 508 "XPathParser.y" { List emptyList = Collections.emptyList(); yyVal = lookupFunction((String) yyVals[-2+yyTop], emptyList); } break; case 40: ! // line 512 "XPathParser.y" { /* This is safe as we create this below */ @SuppressWarnings("unchecked") List exprs = (List) yyVals[-1+yyTop]; --- 617,744 ---- } break; case 17: ! // line 415 "XPathParser.y" { yyVal = new Integer(Selector.ANCESTOR); } break; case 18: ! // line 419 "XPathParser.y" { yyVal = new Integer(Selector.ANCESTOR_OR_SELF); } break; case 19: ! // line 423 "XPathParser.y" { yyVal = new Integer(Selector.ATTRIBUTE); } break; case 20: ! // line 427 "XPathParser.y" { yyVal = new Integer(Selector.CHILD); } break; case 21: ! // line 431 "XPathParser.y" { yyVal = new Integer(Selector.DESCENDANT); } break; case 22: ! // line 435 "XPathParser.y" { yyVal = new Integer(Selector.DESCENDANT_OR_SELF); } break; case 23: ! // line 439 "XPathParser.y" { yyVal = new Integer(Selector.FOLLOWING); } break; case 24: ! // line 443 "XPathParser.y" { yyVal = new Integer(Selector.FOLLOWING_SIBLING); } break; case 25: ! // line 447 "XPathParser.y" { yyVal = new Integer(Selector.NAMESPACE); } break; case 26: ! // line 451 "XPathParser.y" { yyVal = new Integer(Selector.PARENT); } break; case 27: ! // line 455 "XPathParser.y" { yyVal = new Integer(Selector.PRECEDING); } break; case 28: ! // line 459 "XPathParser.y" { yyVal = new Integer(Selector.PRECEDING_SIBLING); } break; case 29: ! // line 463 "XPathParser.y" { yyVal = new Integer(Selector.SELF); } break; case 31: ! // line 472 "XPathParser.y" { yyVal = new NodeTypeTest(Node.PROCESSING_INSTRUCTION_NODE, (String) yyVals[-1+yyTop]); } break; case 32: ! // line 477 "XPathParser.y" { yyVal = new NodeTypeTest(((Short) yyVals[-1+yyTop]).shortValue()); } break; case 33: ! // line 484 "XPathParser.y" { yyVal = new Predicate((Expr) yyVals[-1+yyTop]); } break; case 35: ! // line 492 "XPathParser.y" { yyVal = new ParenthesizedExpr((Expr) yyVals[-1+yyTop]); } break; case 36: ! // line 496 "XPathParser.y" { yyVal = new Constant(yyVals[0+yyTop]); } break; case 37: ! // line 500 "XPathParser.y" { yyVal = new Constant(yyVals[0+yyTop]); } break; case 39: ! // line 508 "XPathParser.y" { List emptyList = Collections.emptyList(); yyVal = lookupFunction((String) yyVals[-2+yyTop], emptyList); } break; case 40: ! // line 512 "XPathParser.y" { /* This is safe as we create this below */ @SuppressWarnings("unchecked") List exprs = (List) yyVals[-1+yyTop]; *************** case 40: *** 746,752 **** } break; case 41: ! // line 519 "XPathParser.y" { List list = new ArrayList(); list.add((Expr) yyVals[0+yyTop]); --- 746,752 ---- } break; case 41: ! // line 519 "XPathParser.y" { List list = new ArrayList(); list.add((Expr) yyVals[0+yyTop]); *************** case 41: *** 754,760 **** } break; case 42: ! // line 525 "XPathParser.y" { /* This is safe as we create this above */ @SuppressWarnings("unchecked") List list = (List) yyVals[0+yyTop]; --- 754,760 ---- } break; case 42: ! // line 525 "XPathParser.y" { /* This is safe as we create this above */ @SuppressWarnings("unchecked") List list = (List) yyVals[0+yyTop]; *************** case 42: *** 763,775 **** } break; case 44: ! // line 535 "XPathParser.y" { yyVal = new UnionExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]); } break; case 47: ! // line 544 "XPathParser.y" { Steps steps; if (yyVals[0+yyTop] instanceof Steps) --- 763,775 ---- } break; case 44: ! // line 535 "XPathParser.y" { yyVal = new UnionExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]); } break; case 47: ! // line 544 "XPathParser.y" { Steps steps; if (yyVals[0+yyTop] instanceof Steps) *************** case 47: *** 787,793 **** } break; case 48: ! // line 560 "XPathParser.y" { Test nt = new NodeTypeTest((short) 0); Selector s = new Selector(Selector.DESCENDANT_OR_SELF, --- 787,793 ---- } break; case 48: ! // line 560 "XPathParser.y" { Test nt = new NodeTypeTest((short) 0); Selector s = new Selector(Selector.DESCENDANT_OR_SELF, *************** case 48: *** 810,816 **** } break; case 50: ! // line 585 "XPathParser.y" { Predicate filter = (Predicate) yyVals[0+yyTop]; Selector s = new Selector(Selector.SELF, --- 810,816 ---- } break; case 50: ! // line 585 "XPathParser.y" { Predicate filter = (Predicate) yyVals[0+yyTop]; Selector s = new Selector(Selector.SELF, *************** case 50: *** 831,1001 **** } break; case 52: ! // line 608 "XPathParser.y" { yyVal = new OrExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]); } break; case 54: ! // line 616 "XPathParser.y" { yyVal = new AndExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]); } break; case 56: ! // line 624 "XPathParser.y" { yyVal = new EqualityExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false); } break; case 57: ! // line 628 "XPathParser.y" { yyVal = new EqualityExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true); } break; case 59: ! // line 636 "XPathParser.y" { yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true, false); } break; case 60: ! // line 640 "XPathParser.y" { yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false, false); } break; case 61: ! // line 644 "XPathParser.y" { yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true, true); } break; case 62: ! // line 648 "XPathParser.y" { yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false, true); } break; case 64: ! // line 656 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.ADD); } break; case 65: ! // line 660 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.SUBTRACT); } break; case 67: ! // line 668 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.MULTIPLY); } break; case 68: ! // line 672 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.DIVIDE); } break; case 69: ! // line 676 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.MODULO); } break; case 71: ! // line 684 "XPathParser.y" { yyVal = new NegativeExpr((Expr) yyVals[0+yyTop]); } break; case 72: ! // line 691 "XPathParser.y" { yyVal = new Double((String) yyVals[0+yyTop] + ".0"); } break; case 73: ! // line 695 "XPathParser.y" { yyVal = new Double((String) yyVals[-1+yyTop] + ".0"); } break; case 74: ! // line 699 "XPathParser.y" { yyVal = new Double((String) yyVals[-2+yyTop] + "." + (String) yyVals[0+yyTop]); } break; case 75: ! // line 703 "XPathParser.y" { yyVal = new Double("0." + (String) yyVals[0+yyTop]); } break; case 77: ! // line 732 "XPathParser.y" { String name = (String) yyVals[0+yyTop]; yyVal = new VariableReference(variableResolver, getQName(name)); } break; case 78: ! // line 740 "XPathParser.y" { yyVal = new NameTest(null, true, true); } break; case 79: ! // line 744 "XPathParser.y" { QName qName = getQName((String) yyVals[-2+yyTop]); yyVal = new NameTest(qName, true, false); } break; case 80: ! // line 749 "XPathParser.y" { QName qName = getQName((String) yyVals[0+yyTop]); yyVal = new NameTest(qName, false, false); } break; case 82: ! // line 758 "XPathParser.y" { yyVal = (String) yyVals[-2+yyTop] + ':' + (String) yyVals[0+yyTop]; } break; case 83: ! // line 765 "XPathParser.y" { yyVal = new Short(Node.COMMENT_NODE); } break; case 84: ! // line 769 "XPathParser.y" { yyVal = new Short(Node.TEXT_NODE); } break; case 85: ! // line 773 "XPathParser.y" { yyVal = new Short(Node.PROCESSING_INSTRUCTION_NODE); } break; case 86: ! // line 777 "XPathParser.y" { yyVal = new Short((short) 0); } break; ! // line 988 "-" } yyTop -= YyLenClass.yyLen[yyN]; yyState = yyStates[yyTop]; --- 831,1001 ---- } break; case 52: ! // line 608 "XPathParser.y" { yyVal = new OrExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]); } break; case 54: ! // line 616 "XPathParser.y" { yyVal = new AndExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]); } break; case 56: ! // line 624 "XPathParser.y" { yyVal = new EqualityExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false); } break; case 57: ! // line 628 "XPathParser.y" { yyVal = new EqualityExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true); } break; case 59: ! // line 636 "XPathParser.y" { yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true, false); } break; case 60: ! // line 640 "XPathParser.y" { yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false, false); } break; case 61: ! // line 644 "XPathParser.y" { yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true, true); } break; case 62: ! // line 648 "XPathParser.y" { yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false, true); } break; case 64: ! // line 656 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.ADD); } break; case 65: ! // line 660 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.SUBTRACT); } break; case 67: ! // line 668 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.MULTIPLY); } break; case 68: ! // line 672 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.DIVIDE); } break; case 69: ! // line 676 "XPathParser.y" { yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.MODULO); } break; case 71: ! // line 684 "XPathParser.y" { yyVal = new NegativeExpr((Expr) yyVals[0+yyTop]); } break; case 72: ! // line 691 "XPathParser.y" { yyVal = new Double((String) yyVals[0+yyTop] + ".0"); } break; case 73: ! // line 695 "XPathParser.y" { yyVal = new Double((String) yyVals[-1+yyTop] + ".0"); } break; case 74: ! // line 699 "XPathParser.y" { yyVal = new Double((String) yyVals[-2+yyTop] + "." + (String) yyVals[0+yyTop]); } break; case 75: ! // line 703 "XPathParser.y" { yyVal = new Double("0." + (String) yyVals[0+yyTop]); } break; case 77: ! // line 732 "XPathParser.y" { String name = (String) yyVals[0+yyTop]; yyVal = new VariableReference(variableResolver, getQName(name)); } break; case 78: ! // line 740 "XPathParser.y" { yyVal = new NameTest(null, true, true); } break; case 79: ! // line 744 "XPathParser.y" { QName qName = getQName((String) yyVals[-2+yyTop]); yyVal = new NameTest(qName, true, false); } break; case 80: ! // line 749 "XPathParser.y" { QName qName = getQName((String) yyVals[0+yyTop]); yyVal = new NameTest(qName, false, false); } break; case 82: ! // line 758 "XPathParser.y" { yyVal = (String) yyVals[-2+yyTop] + ':' + (String) yyVals[0+yyTop]; } break; case 83: ! // line 765 "XPathParser.y" { yyVal = new Short(Node.COMMENT_NODE); } break; case 84: ! // line 769 "XPathParser.y" { yyVal = new Short(Node.TEXT_NODE); } break; case 85: ! // line 773 "XPathParser.y" { yyVal = new Short(Node.PROCESSING_INSTRUCTION_NODE); } break; case 86: ! // line 777 "XPathParser.y" { yyVal = new Short((short) 0); } break; ! // line 988 "-" } yyTop -= YyLenClass.yyLen[yyN]; yyState = yyStates[yyTop]; *************** case 86: *** 1020,1026 **** else yyState = YyDgotoClass.yyDgoto[yyM]; //t if (yydebug != null) yydebug.shift(yyStates[yyTop], yyState); ! continue yyLoop; } } } --- 1020,1026 ---- else yyState = YyDgotoClass.yyDgoto[yyM]; //t if (yydebug != null) yydebug.shift(yyStates[yyTop], yyState); ! continue yyLoop; } } } *************** case 86: *** 1438,1444 **** protected static final class YyNameClass { ! public static final String yyName [] = { "end-of-file",null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, --- 1438,1444 ---- protected static final class YyNameClass { ! public static final String yyName [] = { "end-of-file",null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, *************** case 86: *** 1469,1475 **** } /* End of class YyNameClass */ ! // line 783 "XPathParser.y" } ! // line 1463 "-" --- 1469,1475 ---- } /* End of class YyNameClass */ ! // line 783 "XPathParser.y" } ! // line 1463 "-" diff -Nrcpad gcc-4.5.2/libjava/classpath/gnu/xml/xpath/XPathTokenizer.java gcc-4.6.0/libjava/classpath/gnu/xml/xpath/XPathTokenizer.java *** gcc-4.5.2/libjava/classpath/gnu/xml/xpath/XPathTokenizer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/gnu/xml/xpath/XPathTokenizer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XPathTokenizer.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XPathTokenizer.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import antlr.TokenStreamIOException;*/ *** 53,59 **** /** * XPath 1.0 expression tokenizer. ! * * @author Chris Burdess */ public class XPathTokenizer --- 53,59 ---- /** * XPath 1.0 expression tokenizer. ! * * @author Chris Burdess */ public class XPathTokenizer *************** implements XPathParser.yyInput *** 89,95 **** { return val; } ! } static final Map keywords = new TreeMap (); --- 89,95 ---- { return val; } ! } static final Map keywords = new TreeMap (); *************** implements XPathParser.yyInput *** 151,157 **** throw new TokenStreamIOException (e); } } ! * End ANTLR specific */ public boolean advance () --- 151,157 ---- throw new TokenStreamIOException (e); } } ! * End ANTLR specific */ public boolean advance () diff -Nrcpad gcc-4.5.2/libjava/classpath/include/Makefile.in gcc-4.6.0/libjava/classpath/include/Makefile.in *** gcc-4.5.2/libjava/classpath/include/Makefile.in Fri Apr 2 18:18:06 2010 --- gcc-4.6.0/libjava/classpath/include/Makefile.in Tue Oct 12 15:55:12 2010 *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr *** 40,45 **** --- 40,48 ---- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/lib-ld.m4 \ + $(top_srcdir)/../../config/lib-link.m4 \ + $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ *************** am__aclocal_m4_deps = $(top_srcdir)/../. *** 58,66 **** $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ ! $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs --- 61,67 ---- $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ ! $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs diff -Nrcpad gcc-4.5.2/libjava/classpath/install-sh gcc-4.6.0/libjava/classpath/install-sh *** gcc-4.5.2/libjava/classpath/install-sh Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/install-sh Tue Oct 12 15:55:12 2010 *************** *** 1,7 **** #!/bin/sh # install - install a program, script, or datafile ! scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the --- 1,7 ---- #!/bin/sh # install - install a program, script, or datafile ! scriptversion=2010-02-06.18; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the *************** if test $# -eq 0; then *** 200,206 **** fi if test -z "$dir_arg"; then ! trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. --- 200,210 ---- fi if test -z "$dir_arg"; then ! do_exit='(exit $ret); exit $ret' ! trap "ret=129; $do_exit" 1 ! trap "ret=130; $do_exit" 2 ! trap "ret=141; $do_exit" 13 ! trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. *************** done *** 515,519 **** # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" ! # time-stamp-end: "$" # End: --- 519,524 ---- # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" ! # time-stamp-time-zone: "UTC" ! # time-stamp-end: "; # UTC" # End: diff -Nrcpad gcc-4.5.2/libjava/classpath/java/applet/Applet.java gcc-4.6.0/libjava/classpath/java/applet/Applet.java *** gcc-4.5.2/libjava/classpath/java/applet/Applet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/applet/Applet.java Tue Jan 11 19:46:05 2011 *************** public class Applet extends Panel *** 249,259 **** { try { ! return getImage(new URL(url, name)); } catch (MalformedURLException e) { ! return null; } } --- 249,259 ---- { try { ! return getImage(new URL(url, name)); } catch (MalformedURLException e) { ! return null; } } *************** public class Applet extends Panel *** 302,312 **** { try { ! return getAudioClip(new URL(url, name)); } catch (MalformedURLException e) { ! return null; } } --- 302,312 ---- { try { ! return getAudioClip(new URL(url, name)); } catch (MalformedURLException e) { ! return null; } } *************** public class Applet extends Panel *** 361,367 **** AudioClip ac = getAudioClip(url); try { ! ac.play(); } catch (Exception ignored) { --- 361,367 ---- AudioClip ac = getAudioClip(url); try { ! ac.play(); } catch (Exception ignored) { *************** public class Applet extends Panel *** 382,388 **** { try { ! getAudioClip(url, name).play(); } catch (Exception ignored) { --- 382,388 ---- { try { ! getAudioClip(url, name).play(); } catch (Exception ignored) { *************** public class Applet extends Panel *** 518,524 **** { AccessibleStateSet s = super.getAccessibleStateSet(); if (isActive()) ! s.add(AccessibleState.ACTIVE); return s; } } // class AccessibleApplet --- 518,524 ---- { AccessibleStateSet s = super.getAccessibleStateSet(); if (isActive()) ! s.add(AccessibleState.ACTIVE); return s; } } // class AccessibleApplet *************** public class Applet extends Panel *** 534,540 **** // and might be null afterward if we were unable to read the URL // for some reason. private Clip clip; ! public URLAudioClip(URL url) { this.url = url; --- 534,540 ---- // and might be null afterward if we were unable to read the URL // for some reason. private Clip clip; ! public URLAudioClip(URL url) { this.url = url; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/AWTEvent.java gcc-4.6.0/libjava/classpath/java/awt/AWTEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/AWTEvent.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/AWTEvent.java Tue Jan 11 19:46:05 2011 *************** import java.awt.event.WindowEvent; *** 55,61 **** import java.util.EventObject; /** ! * AWTEvent is the root event class for all AWT events in the JDK 1.1 event * model. It supersedes the Event class from JDK 1.0. Subclasses outside of * the java.awt package should have IDs greater than RESERVED_ID_MAX. * --- 55,61 ---- import java.util.EventObject; /** ! * AWTEvent is the root event class for all AWT events in the JDK 1.1 event * model. It supersedes the Event class from JDK 1.0. Subclasses outside of * the java.awt package should have IDs greater than RESERVED_ID_MAX. * *************** public abstract class AWTEvent extends E *** 206,212 **** */ public static final int RESERVED_ID_MAX = 1999; ! /** * Initializes a new AWTEvent from the old Java 1.0 event object. * --- 206,212 ---- */ public static final int RESERVED_ID_MAX = 1999; ! /** * Initializes a new AWTEvent from the old Java 1.0 event object. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/AWTEventMulticaster.java gcc-4.6.0/libjava/classpath/java/awt/AWTEventMulticaster.java *** gcc-4.5.2/libjava/classpath/java/awt/AWTEventMulticaster.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/AWTEventMulticaster.java Tue Jan 11 19:46:05 2011 *************** public class AWTEventMulticaster *** 719,725 **** * Chain WindowListener a and b. * * @param a the "a" listener, may be null ! * @param b the "b" listener, may be null * @return latest entry in the chain */ public static WindowListener add(WindowListener a, WindowListener b) --- 719,725 ---- * Chain WindowListener a and b. * * @param a the "a" listener, may be null ! * @param b the "b" listener, may be null * @return latest entry in the chain */ public static WindowListener add(WindowListener a, WindowListener b) *************** public class AWTEventMulticaster *** 731,737 **** * Chain WindowStateListener a and b. * * @param a the "a" listener, may be null ! * @param b the "b" listener, may be null * @return latest entry in the chain * @since 1.4 */ --- 731,737 ---- * Chain WindowStateListener a and b. * * @param a the "a" listener, may be null ! * @param b the "b" listener, may be null * @return latest entry in the chain * @since 1.4 */ *************** public class AWTEventMulticaster *** 745,751 **** * Chain WindowFocusListener a and b. * * @param a the "a" listener, may be null ! * @param b the "b" listener, may be null * @return latest entry in the chain * @since 1.4 */ --- 745,751 ---- * Chain WindowFocusListener a and b. * * @param a the "a" listener, may be null ! * @param b the "b" listener, may be null * @return latest entry in the chain * @since 1.4 */ *************** public class AWTEventMulticaster *** 1083,1089 **** * Chain EventListener a and b. * * @param a the "a" listener, may be null ! * @param b the "b" listener, may be null * @return latest entry in the chain */ protected static EventListener addInternal(EventListener a, EventListener b) --- 1083,1089 ---- * Chain EventListener a and b. * * @param a the "a" listener, may be null ! * @param b the "b" listener, may be null * @return latest entry in the chain */ protected static EventListener addInternal(EventListener a, EventListener b) *************** public class AWTEventMulticaster *** 1176,1182 **** * @since 1.4 */ public static T[] getListeners(EventListener l, ! Class type) { ArrayList list = new ArrayList(); if (l instanceof AWTEventMulticaster) --- 1176,1182 ---- * @since 1.4 */ public static T[] getListeners(EventListener l, ! Class type) { ArrayList list = new ArrayList(); if (l instanceof AWTEventMulticaster) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/AWTKeyStroke.java gcc-4.6.0/libjava/classpath/java/awt/AWTKeyStroke.java *** gcc-4.5.2/libjava/classpath/java/awt/AWTKeyStroke.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/AWTKeyStroke.java Tue Jan 11 19:46:05 2011 *************** public class AWTKeyStroke implements Ser *** 94,100 **** /** Prune stale entries. */ protected boolean removeEldestEntry(Map.Entry ! eldest) { return size() > MAX_CACHE_SIZE; } --- 94,100 ---- /** Prune stale entries. */ protected boolean removeEldestEntry(Map.Entry ! eldest) { return size() > MAX_CACHE_SIZE; } *************** public class AWTKeyStroke implements Ser *** 256,262 **** IllegalAccessException, InvocationTargetException { Constructor c = ! subclass.getDeclaredConstructor((Class[])null); c.setAccessible(true); // Create a new instance, to make sure that we can, and // to cause any ClassCastException. --- 256,262 ---- IllegalAccessException, InvocationTargetException { Constructor c = ! subclass.getDeclaredConstructor((Class[])null); c.setAccessible(true); // Create a new instance, to make sure that we can, and // to cause any ClassCastException. *************** public class AWTKeyStroke implements Ser *** 279,285 **** /** * Returns a keystroke representing a typed character. * ! * @param keyChar the typed character * @return the specified keystroke */ public static AWTKeyStroke getAWTKeyStroke(char keyChar) --- 279,285 ---- /** * Returns a keystroke representing a typed character. * ! * @param keyChar the typed character * @return the specified keystroke */ public static AWTKeyStroke getAWTKeyStroke(char keyChar) *************** public class AWTKeyStroke implements Ser *** 396,402 **** * "alt shift released X" => getAWTKeyStroke(KeyEvent.VK_X, * InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, true);
            * "typed a" => getAWTKeyStroke('a'); ! * * * @param s the string to parse * @throws IllegalArgumentException if s is null or cannot be parsed --- 396,402 ---- * "alt shift released X" => getAWTKeyStroke(KeyEvent.VK_X, * InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, true);
            * "typed a" => getAWTKeyStroke('a'); ! * * * @param s the string to parse * @throws IllegalArgumentException if s is null or cannot be parsed *************** public class AWTKeyStroke implements Ser *** 416,440 **** { token = t.nextToken(); if ("shift".equals(token)) ! { ! modifiers |= KeyEvent.SHIFT_MASK; ! modifiers |= KeyEvent.SHIFT_DOWN_MASK; ! } else if ("ctrl".equals(token) || "control".equals(token)) ! { ! modifiers |= KeyEvent.CTRL_MASK; ! modifiers |= KeyEvent.CTRL_DOWN_MASK; ! } else if ("meta".equals(token)) ! { ! modifiers |= KeyEvent.META_MASK; ! modifiers |= KeyEvent.META_DOWN_MASK; ! } else if ("alt".equals(token)) ! { ! modifiers |= KeyEvent.ALT_MASK; ! modifiers |= KeyEvent.ALT_DOWN_MASK; ! } else if ("button1".equals(token)) modifiers |= KeyEvent.BUTTON1_DOWN_MASK; else if ("button2".equals(token)) --- 416,440 ---- { token = t.nextToken(); if ("shift".equals(token)) ! { ! modifiers |= KeyEvent.SHIFT_MASK; ! modifiers |= KeyEvent.SHIFT_DOWN_MASK; ! } else if ("ctrl".equals(token) || "control".equals(token)) ! { ! modifiers |= KeyEvent.CTRL_MASK; ! modifiers |= KeyEvent.CTRL_DOWN_MASK; ! } else if ("meta".equals(token)) ! { ! modifiers |= KeyEvent.META_MASK; ! modifiers |= KeyEvent.META_DOWN_MASK; ! } else if ("alt".equals(token)) ! { ! modifiers |= KeyEvent.ALT_MASK; ! modifiers |= KeyEvent.ALT_DOWN_MASK; ! } else if ("button1".equals(token)) modifiers |= KeyEvent.BUTTON1_DOWN_MASK; else if ("button2".equals(token)) *************** public class AWTKeyStroke implements Ser *** 452,458 **** false); } throw new IllegalArgumentException("Invalid 'typed' argument '" ! + s + "'"); } else if ("pressed".equals(token)) { --- 452,458 ---- false); } throw new IllegalArgumentException("Invalid 'typed' argument '" ! + s + "'"); } else if ("pressed".equals(token)) { *************** public class AWTKeyStroke implements Ser *** 475,481 **** Integer code = (Integer) vktable.get(token); if (code == null) throw new IllegalArgumentException("Unknown token '" + token ! + "' in '" + s + "'"); if (t.hasMoreTokens()) throw new IllegalArgumentException("Too many tokens: " + s); return getAWTKeyStroke(KeyEvent.CHAR_UNDEFINED, code.intValue(), --- 475,481 ---- Integer code = (Integer) vktable.get(token); if (code == null) throw new IllegalArgumentException("Unknown token '" + token ! + "' in '" + s + "'"); if (t.hasMoreTokens()) throw new IllegalArgumentException("Too many tokens: " + s); return getAWTKeyStroke(KeyEvent.CHAR_UNDEFINED, code.intValue(), diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/AlphaComposite.java gcc-4.6.0/libjava/classpath/java/awt/AlphaComposite.java *** gcc-4.5.2/libjava/classpath/java/awt/AlphaComposite.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/AlphaComposite.java Tue Jan 11 19:46:05 2011 *************** public final class AlphaComposite implem *** 91,97 **** public static final AlphaComposite SrcAtop = getInstance(SRC_ATOP); public static final AlphaComposite DstAtop = getInstance(DST_ATOP); public static final AlphaComposite Xor = getInstance(XOR); ! private final int rule; private final float alpha; private AlphaComposite(int rule, float alpha) --- 91,97 ---- public static final AlphaComposite SrcAtop = getInstance(SRC_ATOP); public static final AlphaComposite DstAtop = getInstance(DST_ATOP); public static final AlphaComposite Xor = getInstance(XOR); ! private final int rule; private final float alpha; private AlphaComposite(int rule, float alpha) *************** public final class AlphaComposite implem *** 113,119 **** { return getInstance(rule, 1); } ! /** * Creates an AlphaComposite object with the specified rule and the constant * alpha to multiply with the alpha of the source. The source is multiplied --- 113,119 ---- { return getInstance(rule, 1); } ! /** * Creates an AlphaComposite object with the specified rule and the constant * alpha to multiply with the alpha of the source. The source is multiplied *************** public final class AlphaComposite implem *** 162,168 **** * Return an AlphaComposite similar to this, * that uses the specified rule. If rule is the same as * this.rule, then this is returned. ! * * @since 1.6 */ public AlphaComposite derive(int rule) --- 162,168 ---- * Return an AlphaComposite similar to this, * that uses the specified rule. If rule is the same as * this.rule, then this is returned. ! * * @since 1.6 */ public AlphaComposite derive(int rule) *************** public final class AlphaComposite implem *** 172,185 **** else return AlphaComposite.getInstance(rule, this.getAlpha()); } ! /** * Return an AlphaComposite similar to this, * that uses the specified alpha. ! * * If alph is the same as this.alpha, * then this is returned. ! * * @since 1.6 */ public AlphaComposite derive(float alpha) --- 172,185 ---- else return AlphaComposite.getInstance(rule, this.getAlpha()); } ! /** * Return an AlphaComposite similar to this, * that uses the specified alpha. ! * * If alph is the same as this.alpha, * then this is returned. ! * * @since 1.6 */ public AlphaComposite derive(float alpha) *************** public final class AlphaComposite implem *** 189,210 **** else return AlphaComposite.getInstance(this.getRule(), alpha); } ! public float getAlpha() { return alpha; } ! public int getRule() { return rule; } ! public int hashCode() { return 31 * Float.floatToIntBits(alpha) + rule; } ! public boolean equals(Object o) { if (! (o instanceof AlphaComposite)) --- 189,210 ---- else return AlphaComposite.getInstance(this.getRule(), alpha); } ! public float getAlpha() { return alpha; } ! public int getRule() { return rule; } ! public int hashCode() { return 31 * Float.floatToIntBits(alpha) + rule; } ! public boolean equals(Object o) { if (! (o instanceof AlphaComposite)) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/BasicStroke.java gcc-4.6.0/libjava/classpath/java/awt/BasicStroke.java *** gcc-4.5.2/libjava/classpath/java/awt/BasicStroke.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/BasicStroke.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BasicStroke.java -- Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BasicStroke.java -- Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Arrays; *** 53,59 **** * A general purpose {@link Stroke} implementation that can represent a wide * variety of line styles for use with subclasses of {@link Graphics2D}. *

            ! * The line cap and join styles can be set using the options illustrated * here: *

            * ! * The line cap and join styles can be set using the options illustrated * here: *

            * BasicStroke instance with the given attributes. * * @param width the line width (>= 0.0f). ! * @param cap the line cap style (one of {@link #CAP_BUTT}, * {@link #CAP_ROUND} or {@link #CAP_SQUARE}). ! * @param join the line join style (one of {@link #JOIN_ROUND}, * {@link #JOIN_BEVEL}, or {@link #JOIN_MITER}). * @param miterlimit the limit to trim the miter join. The miterlimit must be * greater than or equal to 1.0f. --- 125,133 ---- * Creates a new BasicStroke instance with the given attributes. * * @param width the line width (>= 0.0f). ! * @param cap the line cap style (one of {@link #CAP_BUTT}, * {@link #CAP_ROUND} or {@link #CAP_SQUARE}). ! * @param join the line join style (one of {@link #JOIN_ROUND}, * {@link #JOIN_BEVEL}, or {@link #JOIN_MITER}). * @param miterlimit the limit to trim the miter join. The miterlimit must be * greater than or equal to 1.0f. *************** public class BasicStroke implements Stro *** 145,180 **** throw new IllegalArgumentException("width " + width + " < 0"); else if (cap < CAP_BUTT || cap > CAP_SQUARE) throw new IllegalArgumentException("cap " + cap + " out of range [" ! + CAP_BUTT + ".." + CAP_SQUARE + "]"); else if (miterlimit < 1.0f && join == JOIN_MITER) throw new IllegalArgumentException("miterlimit " + miterlimit ! + " < 1.0f while join == JOIN_MITER"); else if (join < JOIN_MITER || join > JOIN_BEVEL) throw new IllegalArgumentException("join " + join + " out of range [" ! + JOIN_MITER + ".." + JOIN_BEVEL ! + "]"); else if (dashPhase < 0.0f && dash != null) throw new IllegalArgumentException("dashPhase " + dashPhase ! + " < 0.0f while dash != null"); else if (dash != null) if (dash.length == 0) ! throw new IllegalArgumentException("dash.length is 0"); else ! { ! boolean allZero = true; ! ! for ( int i = 0; i < dash.length; ++i) ! { ! if (dash[i] != 0.0f) ! { ! allZero = false; ! break; ! } ! } ! ! if (allZero) ! throw new IllegalArgumentException("all dashes are 0.0f"); ! } this.width = width; this.cap = cap; --- 145,180 ---- throw new IllegalArgumentException("width " + width + " < 0"); else if (cap < CAP_BUTT || cap > CAP_SQUARE) throw new IllegalArgumentException("cap " + cap + " out of range [" ! + CAP_BUTT + ".." + CAP_SQUARE + "]"); else if (miterlimit < 1.0f && join == JOIN_MITER) throw new IllegalArgumentException("miterlimit " + miterlimit ! + " < 1.0f while join == JOIN_MITER"); else if (join < JOIN_MITER || join > JOIN_BEVEL) throw new IllegalArgumentException("join " + join + " out of range [" ! + JOIN_MITER + ".." + JOIN_BEVEL ! + "]"); else if (dashPhase < 0.0f && dash != null) throw new IllegalArgumentException("dashPhase " + dashPhase ! + " < 0.0f while dash != null"); else if (dash != null) if (dash.length == 0) ! throw new IllegalArgumentException("dash.length is 0"); else ! { ! boolean allZero = true; ! ! for ( int i = 0; i < dash.length; ++i) ! { ! if (dash[i] != 0.0f) ! { ! allZero = false; ! break; ! } ! } ! ! if (allZero) ! throw new IllegalArgumentException("all dashes are 0.0f"); ! } this.width = width; this.cap = cap; *************** public class BasicStroke implements Stro *** 188,200 **** * Creates a new BasicStroke instance with the given attributes. * * @param width the line width (>= 0.0f). ! * @param cap the line cap style (one of {@link #CAP_BUTT}, * {@link #CAP_ROUND} or {@link #CAP_SQUARE}). ! * @param join the line join style (one of {@link #JOIN_ROUND}, * {@link #JOIN_BEVEL}, or {@link #JOIN_MITER}). * @param miterlimit the limit to trim the miter join. The miterlimit must be * greater than or equal to 1.0f. ! * * @throws IllegalArgumentException If one input parameter doesn't meet * its needs. */ --- 188,200 ---- * Creates a new BasicStroke instance with the given attributes. * * @param width the line width (>= 0.0f). ! * @param cap the line cap style (one of {@link #CAP_BUTT}, * {@link #CAP_ROUND} or {@link #CAP_SQUARE}). ! * @param join the line join style (one of {@link #JOIN_ROUND}, * {@link #JOIN_BEVEL}, or {@link #JOIN_MITER}). * @param miterlimit the limit to trim the miter join. The miterlimit must be * greater than or equal to 1.0f. ! * * @throws IllegalArgumentException If one input parameter doesn't meet * its needs. */ *************** public class BasicStroke implements Stro *** 208,218 **** * The miter limit defaults to 10.0. * * @param width the line width (>= 0.0f). ! * @param cap the line cap style (one of {@link #CAP_BUTT}, * {@link #CAP_ROUND} or {@link #CAP_SQUARE}). ! * @param join the line join style (one of {@link #JOIN_ROUND}, * {@link #JOIN_BEVEL}, or {@link #JOIN_MITER}). ! * * @throws IllegalArgumentException If one input parameter doesn't meet * its needs. */ --- 208,218 ---- * The miter limit defaults to 10.0. * * @param width the line width (>= 0.0f). ! * @param cap the line cap style (one of {@link #CAP_BUTT}, * {@link #CAP_ROUND} or {@link #CAP_SQUARE}). ! * @param join the line join style (one of {@link #JOIN_ROUND}, * {@link #JOIN_BEVEL}, or {@link #JOIN_MITER}). ! * * @throws IllegalArgumentException If one input parameter doesn't meet * its needs. */ *************** public class BasicStroke implements Stro *** 229,237 **** *

          16. line join style: {@link #JOIN_MITER};
          17. *
          18. miter limit: 10.0f. *
    ! * * @param width the line width (>= 0.0f). ! * * @throws IllegalArgumentException If width is negative. */ public BasicStroke(float width) --- 229,237 ---- *
  • line join style: {@link #JOIN_MITER};
  • *
  • miter limit: 10.0f. *
! * * @param width the line width (>= 0.0f). ! * * @throws IllegalArgumentException If width is negative. */ public BasicStroke(float width) *************** public class BasicStroke implements Stro *** 252,262 **** { this(1, CAP_SQUARE, JOIN_MITER, 10, null, 0); } ! /** * Creates a shape representing the stroked outline of the given shape. * THIS METHOD IS NOT YET IMPLEMENTED. ! * * @param s the shape. */ public Shape createStrokedShape(Shape s) --- 252,262 ---- { this(1, CAP_SQUARE, JOIN_MITER, 10, null, 0); } ! /** * Creates a shape representing the stroked outline of the given shape. * THIS METHOD IS NOT YET IMPLEMENTED. ! * * @param s the shape. */ public Shape createStrokedShape(Shape s) *************** public class BasicStroke implements Stro *** 271,277 **** /** * Returns the line width. ! * * @return The line width. */ public float getLineWidth() --- 271,277 ---- /** * Returns the line width. ! * * @return The line width. */ public float getLineWidth() *************** public class BasicStroke implements Stro *** 282,288 **** /** * Returns a code indicating the line cap style (one of {@link #CAP_BUTT}, * {@link #CAP_ROUND}, {@link #CAP_SQUARE}). ! * * @return A code indicating the line cap style. */ public int getEndCap() --- 282,288 ---- /** * Returns a code indicating the line cap style (one of {@link #CAP_BUTT}, * {@link #CAP_ROUND}, {@link #CAP_SQUARE}). ! * * @return A code indicating the line cap style. */ public int getEndCap() *************** public class BasicStroke implements Stro *** 293,299 **** /** * Returns a code indicating the line join style (one of {@link #JOIN_BEVEL}, * {@link #JOIN_MITER} or {@link #JOIN_ROUND}). ! * * @return A code indicating the line join style. */ public int getLineJoin() --- 293,299 ---- /** * Returns a code indicating the line join style (one of {@link #JOIN_BEVEL}, * {@link #JOIN_MITER} or {@link #JOIN_ROUND}). ! * * @return A code indicating the line join style. */ public int getLineJoin() *************** public class BasicStroke implements Stro *** 303,309 **** /** * Returns the miter limit. ! * * @return The miter limit. */ public float getMiterLimit() --- 303,309 ---- /** * Returns the miter limit. ! * * @return The miter limit. */ public float getMiterLimit() *************** public class BasicStroke implements Stro *** 312,321 **** } /** ! * Returns the dash array, which defines the length of alternate opaque and ! * transparent sections in lines drawn with this stroke. If * null, a continuous line will be drawn. ! * * @return The dash array (possibly null). */ public float[] getDashArray() --- 312,321 ---- } /** ! * Returns the dash array, which defines the length of alternate opaque and ! * transparent sections in lines drawn with this stroke. If * null, a continuous line will be drawn. ! * * @return The dash array (possibly null). */ public float[] getDashArray() *************** public class BasicStroke implements Stro *** 325,333 **** /** * Returns the dash phase for the stroke. This is the offset from the start ! * of a path at which the pattern defined by {@link #getDashArray()} is * rendered. ! * * @return The dash phase. */ public float getDashPhase() --- 325,333 ---- /** * Returns the dash phase for the stroke. This is the offset from the start ! * of a path at which the pattern defined by {@link #getDashArray()} is * rendered. ! * * @return The dash phase. */ public float getDashPhase() *************** public class BasicStroke implements Stro *** 341,347 **** * (converted to int first with * Float.floatToIntBits() if the value is a * float). ! * * @return The hash code. */ public int hashCode() --- 341,347 ---- * (converted to int first with * Float.floatToIntBits() if the value is a * float). ! * * @return The hash code. */ public int hashCode() *************** public class BasicStroke implements Stro *** 350,359 **** hash ^= cap; hash ^= join; hash ^= Float.floatToIntBits(limit); ! if (dash != null) for (int i = 0; i < dash.length; i++) ! hash ^= Float.floatToIntBits(dash[i]); hash ^= Float.floatToIntBits(phase); --- 350,359 ---- hash ^= cap; hash ^= join; hash ^= Float.floatToIntBits(limit); ! if (dash != null) for (int i = 0; i < dash.length; i++) ! hash ^= Float.floatToIntBits(dash[i]); hash ^= Float.floatToIntBits(phase); *************** public class BasicStroke implements Stro *** 361,376 **** } /** ! * Compares this BasicStroke for equality with an arbitrary * object. This method returns true if and only if: *
    *
  • o is an instanceof BasicStroke;
  • *
  • this object has the same width, line cap style, line join style, * miter limit, dash array and dash phase as o.
  • *
! * * @param o the object (null permitted). ! * * @return true if this stroke is equal to o and * false otherwise. */ --- 361,376 ---- } /** ! * Compares this BasicStroke for equality with an arbitrary * object. This method returns true if and only if: *
    *
  • o is an instanceof BasicStroke;
  • *
  • this object has the same width, line cap style, line join style, * miter limit, dash array and dash phase as o.
  • *
! * * @param o the object (null permitted). ! * * @return true if this stroke is equal to o and * false otherwise. */ *************** public class BasicStroke implements Stro *** 401,407 **** y0 = y = coords[1]; if( pathOpen ) { ! capEnds(); convertPath(output, start); start = end = null; pathOpen = false; --- 401,407 ---- y0 = y = coords[1]; if( pathOpen ) { ! capEnds(); convertPath(output, start); start = end = null; pathOpen = false; *************** public class BasicStroke implements Stro *** 425,431 **** break; case PathIterator.SEG_QUADTO: ! p = (new QuadSegment(x, y, coords[0], coords[1], coords[2], coords[3])).getDisplacedSegments(width/2.0); if( !pathOpen ) { --- 425,431 ---- break; case PathIterator.SEG_QUADTO: ! p = (new QuadSegment(x, y, coords[0], coords[1], coords[2], coords[3])).getDisplacedSegments(width/2.0); if( !pathOpen ) { *************** public class BasicStroke implements Stro *** 549,555 **** { spanBoundary = false; } ! // Otherwise, we need to split the segment in two, as this // segment spans a dash boundry else --- 549,555 ---- { spanBoundary = false; } ! // Otherwise, we need to split the segment in two, as this // segment spans a dash boundry else *************** public class BasicStroke implements Stro *** 671,693 **** else if(v instanceof QuadSegment) p.quadTo((float)((QuadSegment)v).cp.getX(), (float)((QuadSegment)v).cp.getY(), ! (float)v.P2.getX(), (float)v.P2.getY()); else if(v instanceof CubicSegment) p.curveTo((float)((CubicSegment)v).cp1.getX(), (float)((CubicSegment)v).cp1.getY(), (float)((CubicSegment)v).cp2.getX(), (float)((CubicSegment)v).cp2.getY(), ! (float)v.P2.getX(), (float)v.P2.getY()); v = v.next; } while(v != s && v != null); p.closePath(); } ! /** ! * Add the segments to start and end (the inner and outer edges of the stroke) */ private void addSegments(Segment[] segments) { --- 671,693 ---- else if(v instanceof QuadSegment) p.quadTo((float)((QuadSegment)v).cp.getX(), (float)((QuadSegment)v).cp.getY(), ! (float)v.P2.getX(), (float)v.P2.getY()); else if(v instanceof CubicSegment) p.curveTo((float)((CubicSegment)v).cp1.getX(), (float)((CubicSegment)v).cp1.getY(), (float)((CubicSegment)v).cp2.getX(), (float)((CubicSegment)v).cp2.getY(), ! (float)v.P2.getX(), (float)v.P2.getY()); v = v.next; } while(v != s && v != null); p.closePath(); } ! /** ! * Add the segments to start and end (the inner and outer edges of the stroke) */ private void addSegments(Segment[] segments) { *************** public class BasicStroke implements Stro *** 707,732 **** p = lineIntersection(p0[0],p0[1],p1[0],p1[1], p2[0],p2[1],p3[0],p3[1], false); ! double det = (p1[0] - p0[0])*(p3[1] - p2[1]) - (p3[0] - p2[0])*(p1[1] - p0[1]); if( det > 0 ) { ! // start and segment[0] form the 'inner' part of a join, // connect the overlapping segments joinInnerSegments(start, segments[0], p); joinOuterSegments(end, segments[1], p); } else { ! // end and segment[1] form the 'inner' part joinInnerSegments(end, segments[1], p); joinOuterSegments(start, segments[0], p); } } /** ! * Make a cap between a and b segments, * where a-->b is the direction of iteration. */ private void capEnd(Segment a, Segment b) --- 707,732 ---- p = lineIntersection(p0[0],p0[1],p1[0],p1[1], p2[0],p2[1],p3[0],p3[1], false); ! double det = (p1[0] - p0[0])*(p3[1] - p2[1]) - (p3[0] - p2[0])*(p1[1] - p0[1]); if( det > 0 ) { ! // start and segment[0] form the 'inner' part of a join, // connect the overlapping segments joinInnerSegments(start, segments[0], p); joinOuterSegments(end, segments[1], p); } else { ! // end and segment[1] form the 'inner' part joinInnerSegments(end, segments[1], p); joinOuterSegments(start, segments[0], p); } } /** ! * Make a cap between a and b segments, * where a-->b is the direction of iteration. */ private void capEnd(Segment a, Segment b) *************** public class BasicStroke implements Stro *** 767,773 **** dx = (2.0/3.0)*width*dx/l; dy = (2.0/3.0)*width*dy/l; } ! c1 = new Point2D.Double(p1[0] + dx, p1[1] + dy); c2 = new Point2D.Double(b.P1.getX() + dx, b.P1.getY() + dy); a.add(new CubicSegment(a.last.P2, c1, c2, b.P1)); --- 767,773 ---- dx = (2.0/3.0)*width*dx/l; dy = (2.0/3.0)*width*dy/l; } ! c1 = new Point2D.Double(p1[0] + dx, p1[1] + dy); c2 = new Point2D.Double(b.P1.getX() + dx, b.P1.getY() + dy); a.add(new CubicSegment(a.last.P2, c1, c2, b.P1)); *************** public class BasicStroke implements Stro *** 782,790 **** * if the intersection must be within the given segments. * @return a Point2D or null. */ ! private Point2D lineIntersection(double X1, double Y1, ! double X2, double Y2, ! double X3, double Y3, double X4, double Y4, boolean infinite) { --- 782,790 ---- * if the intersection must be within the given segments. * @return a Point2D or null. */ ! private Point2D lineIntersection(double X1, double Y1, ! double X2, double Y2, ! double X3, double Y3, double X4, double Y4, boolean infinite) { *************** public class BasicStroke implements Stro *** 840,846 **** { a.add(new LineSegment(a.last.P2, p)); a.add(new LineSegment(p, b.P1)); ! } else { // outside miter limit, do a bevel join. --- 840,846 ---- { a.add(new LineSegment(a.last.P2, p)); a.add(new LineSegment(p, b.P1)); ! } else { // outside miter limit, do a bevel join. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/BorderLayout.java gcc-4.6.0/libjava/classpath/java/awt/BorderLayout.java *** gcc-4.5.2/libjava/classpath/java/awt/BorderLayout.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/awt/BorderLayout.java Tue Jan 11 19:46:05 2011 *************** public class BorderLayout implements Lay *** 299,305 **** } /** ! * Adds a component to the layout in the specified constraint position, * which must be one of the string constants defined in this class. * * @param component The component to add. --- 299,305 ---- } /** ! * Adds a component to the layout in the specified constraint position, * which must be one of the string constants defined in this class. * * @param component The component to add. *************** public class BorderLayout implements Lay *** 317,323 **** } /** ! * Adds a component to the layout in the specified constraint position, * which must be one of the string constants defined in this class. * * @param constraints The constraint string. --- 317,323 ---- } /** ! * Adds a component to the layout in the specified constraint position, * which must be one of the string constants defined in this class. * * @param constraints The constraint string. *************** public class BorderLayout implements Lay *** 462,468 **** /** * Lays out the specified container according to the constraints in this * object. ! * * @param target The container to lay out. */ public void layoutContainer(Container target) --- 462,468 ---- /** * Lays out the specified container according to the constraints in this * object. ! * * @param target The container to lay out. */ public void layoutContainer(Container target) *************** public class BorderLayout implements Lay *** 538,544 **** /** * Returns a string representation of this layout manager. ! * * @return A string representation of this object. */ public String toString() --- 538,544 ---- /** * Returns a string representation of this layout manager. ! * * @return A string representation of this object. */ public String toString() *************** public class BorderLayout implements Lay *** 634,644 **** /** * Return the component at the indicated location, or null if no component ! * is at that location. The constraints argument must be one of the ! * location constants specified by this class. * @param constraints the location * @return the component at that location, or null ! * @throws IllegalArgumentException if the constraints argument is not * recognized * @since 1.5 */ --- 634,644 ---- /** * Return the component at the indicated location, or null if no component ! * is at that location. The constraints argument must be one of the ! * location constants specified by this class. * @param constraints the location * @return the component at that location, or null ! * @throws IllegalArgumentException if the constraints argument is not * recognized * @since 1.5 */ *************** public class BorderLayout implements Lay *** 662,668 **** return firstItem; if (constraints == LINE_END) return lastItem; ! throw new IllegalArgumentException("constraint " + constraints + " is not recognized"); } --- 662,668 ---- return firstItem; if (constraints == LINE_END) return lastItem; ! throw new IllegalArgumentException("constraint " + constraints + " is not recognized"); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/BufferCapabilities.java gcc-4.6.0/libjava/classpath/java/awt/BufferCapabilities.java *** gcc-4.5.2/libjava/classpath/java/awt/BufferCapabilities.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/BufferCapabilities.java Tue Jan 11 19:46:05 2011 *************** public class BufferCapabilities implemen *** 143,149 **** * null */ public BufferCapabilities(ImageCapabilities frontCaps, ! ImageCapabilities backCaps, FlipContents flip) { if (frontCaps == null || backCaps == null) --- 143,149 ---- * null */ public BufferCapabilities(ImageCapabilities frontCaps, ! ImageCapabilities backCaps, FlipContents flip) { if (frontCaps == null || backCaps == null) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Button.java gcc-4.6.0/libjava/classpath/java/awt/Button.java *** gcc-4.5.2/libjava/classpath/java/awt/Button.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Button.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleRol *** 51,57 **** import javax.accessibility.AccessibleValue; /** ! * This class provides a button widget for the AWT. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) --- 51,57 ---- import javax.accessibility.AccessibleValue; /** ! * This class provides a button widget for the AWT. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) *************** private transient ActionListener action_ *** 94,100 **** * The number used to generate the name returned by getName. */ private static transient long next_button_number; ! protected class AccessibleAWTButton extends AccessibleAWTComponent implements AccessibleAction, AccessibleValue { --- 94,100 ---- * The number used to generate the name returned by getName. */ private static transient long next_button_number; ! protected class AccessibleAWTButton extends AccessibleAWTComponent implements AccessibleAction, AccessibleValue { *************** private transient ActionListener action_ *** 138,154 **** processActionEvent(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, actionCommand)); return true; } ! public String getAccessibleName() { return label; } ! public AccessibleAction getAccessibleAction() { return this; } ! public AccessibleValue getAccessibleValue() { return this; --- 138,154 ---- processActionEvent(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, actionCommand)); return true; } ! public String getAccessibleName() { return label; } ! public AccessibleAction getAccessibleAction() { return this; } ! public AccessibleValue getAccessibleValue() { return this; *************** private transient ActionListener action_ *** 188,194 **** { return new Integer(0); } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.PUSH_BUTTON; --- 188,194 ---- { return new Integer(0); } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.PUSH_BUTTON; *************** addActionListener(ActionListener listene *** 315,321 **** /** * Removes the specified listener from the list of listeners that will * receive action events from this button. ! * * @param listener The listener to remove. */ public synchronized void --- 315,321 ---- /** * Removes the specified listener from the list of listeners that will * receive action events from this button. ! * * @param listener The listener to remove. */ public synchronized void *************** removeActionListener(ActionListener list *** 339,356 **** } /** ! * Returns all registered EventListers of the given listenerType. ! * listenerType must be a subclass of EventListener, or a * ClassClassException is thrown. * * @param listenerType the listener type to return * * @return an array of listeners ! * * @exception ClassCastException If listenerType doesn't specify a class or * interface that implements @see java.util.EventListener. * ! * @since 1.3 */ public T[] getListeners(Class listenerType) { --- 339,356 ---- } /** ! * Returns all registered EventListers of the given listenerType. ! * listenerType must be a subclass of EventListener, or a * ClassClassException is thrown. * * @param listenerType the listener type to return * * @return an array of listeners ! * * @exception ClassCastException If listenerType doesn't specify a class or * interface that implements @see java.util.EventListener. * ! * @since 1.3 */ public T[] getListeners(Class listenerType) { *************** processActionEvent(ActionEvent event) *** 412,421 **** void dispatchEventImpl(AWTEvent e) { ! if (e.id <= ActionEvent.ACTION_LAST && e.id >= ActionEvent.ACTION_FIRST ! && (action_listeners != null ! || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) processEvent(e); else super.dispatchEventImpl(e); --- 412,421 ---- void dispatchEventImpl(AWTEvent e) { ! if (e.id <= ActionEvent.ACTION_LAST && e.id >= ActionEvent.ACTION_FIRST ! && (action_listeners != null ! || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) processEvent(e); else super.dispatchEventImpl(e); *************** public AccessibleContext getAccessibleCo *** 464,468 **** return next_button_number++; } ! } // class Button ! --- 464,467 ---- return next_button_number++; } ! } // class Button diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Canvas.java gcc-4.6.0/libjava/classpath/java/awt/Canvas.java *** gcc-4.5.2/libjava/classpath/java/awt/Canvas.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Canvas.java Tue Jan 11 19:46:05 2011 *************** public class Canvas *** 68,74 **** * Compatible with Sun's JDK. */ private static final long serialVersionUID = -2284879212465893870L; ! /** * The number used to generate the name returned by getName. */ --- 68,74 ---- * Compatible with Sun's JDK. */ private static final long serialVersionUID = -2284879212465893870L; ! /** * The number used to generate the name returned by getName. */ *************** public class Canvas *** 82,89 **** /** * Initializes a new instance of Canvas. */ ! public Canvas() ! { } /** --- 82,89 ---- /** * Initializes a new instance of Canvas. */ ! public Canvas() ! { } /** *************** public class Canvas *** 109,115 **** } /** ! * Repaints the canvas window. This method should be overridden by * a subclass to do something useful, as this method simply paints * the window with the background color. * --- 109,115 ---- } /** ! * Repaints the canvas window. This method should be overridden by * a subclass to do something useful, as this method simply paints * the window with the background color. * *************** public class Canvas *** 154,160 **** { return AccessibleRole.CANVAS; } ! } /** --- 154,160 ---- { return AccessibleRole.CANVAS; } ! } /** *************** public class Canvas *** 186,194 **** CanvasBltBufferStrategy(int numBuffers, boolean accelerated) { super(numBuffers, ! new BufferCapabilities(new ImageCapabilities(accelerated), ! new ImageCapabilities(accelerated), ! BufferCapabilities.FlipContents.COPIED)); } } --- 186,194 ---- CanvasBltBufferStrategy(int numBuffers, boolean accelerated) { super(numBuffers, ! new BufferCapabilities(new ImageCapabilities(accelerated), ! new ImageCapabilities(accelerated), ! BufferCapabilities.FlipContents.COPIED)); } } *************** public class Canvas *** 209,217 **** throws AWTException { super(numBuffers, ! new BufferCapabilities(new ImageCapabilities(true), ! new ImageCapabilities(true), ! BufferCapabilities.FlipContents.COPIED)); } } --- 209,217 ---- throws AWTException { super(numBuffers, ! new BufferCapabilities(new ImageCapabilities(true), ! new ImageCapabilities(true), ! BufferCapabilities.FlipContents.COPIED)); } } *************** public class Canvas *** 242,259 **** { if (numBuffers < 1) throw new IllegalArgumentException("Canvas.createBufferStrategy: number" ! + " of buffers is less than one"); if (!isDisplayable()) throw new IllegalStateException("Canvas.createBufferStrategy: canvas is" ! + " not displayable"); BufferStrategy newStrategy = null; // try a flipping strategy try { ! newStrategy = new CanvasFlipBufferStrategy(numBuffers); } catch (AWTException e) { --- 242,259 ---- { if (numBuffers < 1) throw new IllegalArgumentException("Canvas.createBufferStrategy: number" ! + " of buffers is less than one"); if (!isDisplayable()) throw new IllegalStateException("Canvas.createBufferStrategy: canvas is" ! + " not displayable"); BufferStrategy newStrategy = null; // try a flipping strategy try { ! newStrategy = new CanvasFlipBufferStrategy(numBuffers); } catch (AWTException e) { *************** public class Canvas *** 290,300 **** { if (numBuffers < 1) throw new IllegalArgumentException("Canvas.createBufferStrategy: number" ! + " of buffers is less than one"); if (caps == null) throw new IllegalArgumentException("Canvas.createBufferStrategy:" ! + " capabilities object is null"); // a flipping strategy was requested if (caps.isPageFlipping()) --- 290,300 ---- { if (numBuffers < 1) throw new IllegalArgumentException("Canvas.createBufferStrategy: number" ! + " of buffers is less than one"); if (caps == null) throw new IllegalArgumentException("Canvas.createBufferStrategy:" ! + " capabilities object is null"); // a flipping strategy was requested if (caps.isPageFlipping()) *************** public class Canvas *** 336,342 **** /* Call the paint method */ paint(graphics); } ! /** * Generate a unique name for this Canvas. * --- 336,342 ---- /* Call the paint method */ paint(graphics); } ! /** * Generate a unique name for this Canvas. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/CardLayout.java gcc-4.6.0/libjava/classpath/java/awt/CardLayout.java *** gcc-4.5.2/libjava/classpath/java/awt/CardLayout.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/CardLayout.java Tue Jan 11 19:46:05 2011 *************** public class CardLayout implements Layou *** 85,91 **** * * @param comp The component to add * @param constraints The name by which the component can later be called ! * * @exception IllegalArgumentException If `constraints' is not a * String */ --- 85,91 ---- * * @param comp The component to add * @param constraints The name by which the component can later be called ! * * @exception IllegalArgumentException If `constraints' is not a * String */ *************** public class CardLayout implements Layou *** 93,109 **** { if (! (constraints instanceof String)) throw new IllegalArgumentException ("Object " + constraints ! + " is not a string"); addLayoutComponent ((String) constraints, comp); } /** * Add a new component to the layout. The name can be used later * to refer to the component. ! * * @param name The name by which the component can later be called * @param comp The component to add ! * * @deprecated This method is deprecated in favor of * addLayoutComponent(Component, Object). */ --- 93,109 ---- { if (! (constraints instanceof String)) throw new IllegalArgumentException ("Object " + constraints ! + " is not a string"); addLayoutComponent ((String) constraints, comp); } /** * Add a new component to the layout. The name can be used later * to refer to the component. ! * * @param name The name by which the component can later be called * @param comp The component to add ! * * @deprecated This method is deprecated in favor of * addLayoutComponent(Component, Object). */ *************** public class CardLayout implements Layou *** 137,143 **** /** * Return this layout manager's x alignment. This method always * returns Component.CENTER_ALIGNMENT. ! * * @param parent Container using this layout manager instance * * @return the x-axis alignment --- 137,143 ---- /** * Return this layout manager's x alignment. This method always * returns Component.CENTER_ALIGNMENT. ! * * @param parent Container using this layout manager instance * * @return the x-axis alignment *************** public class CardLayout implements Layou *** 150,156 **** /** * Returns this layout manager's y alignment. This method always * returns Component.CENTER_ALIGNMENT. ! * * @param parent Container using this layout manager instance * * @return the y-axis alignment --- 150,156 ---- /** * Returns this layout manager's y alignment. This method always * returns Component.CENTER_ALIGNMENT. ! * * @param parent Container using this layout manager instance * * @return the y-axis alignment *************** public class CardLayout implements Layou *** 180,186 **** /** * Cause the last component in the container to be displayed. ! * * @param parent The parent container, not null. */ public void last (Container parent) --- 180,186 ---- /** * Cause the last component in the container to be displayed. ! * * @param parent The parent container, not null. */ public void last (Container parent) *************** public class CardLayout implements Layou *** 193,224 **** * to be the same size as the parent, less insets and gaps. * * @param parent The parent container. ! */ public void layoutContainer (Container parent) { synchronized (parent.getTreeLock ()) { ! int width = parent.width; ! int height = parent.height; ! Insets ins = parent.getInsets (); ! int num = parent.ncomponents; ! Component[] comps = parent.component; ! int x = ins.left + hgap; ! int y = ins.top + vgap; ! width = width - 2 * hgap - ins.left - ins.right; ! height = height - 2 * vgap - ins.top - ins.bottom; ! for (int i = 0; i < num; ++i) ! comps[i].setBounds (x, y, width, height); } } /** * Get the maximum layout size of the container. ! * * @param target The parent container * * @return the maximum layout size --- 193,224 ---- * to be the same size as the parent, less insets and gaps. * * @param parent The parent container. ! */ public void layoutContainer (Container parent) { synchronized (parent.getTreeLock ()) { ! int width = parent.width; ! int height = parent.height; ! Insets ins = parent.getInsets (); ! int num = parent.ncomponents; ! Component[] comps = parent.component; ! int x = ins.left + hgap; ! int y = ins.top + vgap; ! width = width - 2 * hgap - ins.left - ins.right; ! height = height - 2 * vgap - ins.top - ins.bottom; ! for (int i = 0; i < num; ++i) ! comps[i].setBounds (x, y, width, height); } } /** * Get the maximum layout size of the container. ! * * @param target The parent container * * @return the maximum layout size *************** public class CardLayout implements Layou *** 234,240 **** /** * Get the minimum layout size of the container. ! * * @param target The parent container * * @return the minimum layout size --- 234,240 ---- /** * Get the minimum layout size of the container. ! * * @param target The parent container * * @return the minimum layout size *************** public class CardLayout implements Layou *** 248,254 **** * Cause the next component in the container to be displayed. If * this current card is the last one in the deck, the first * component is displayed. ! * * @param parent The parent container, not null. */ public void next (Container parent) --- 248,254 ---- * Cause the next component in the container to be displayed. If * this current card is the last one in the deck, the first * component is displayed. ! * * @param parent The parent container, not null. */ public void next (Container parent) *************** public class CardLayout implements Layou *** 258,264 **** /** * Get the preferred layout size of the container. ! * * @param parent The parent container * * @return the preferred layout size --- 258,264 ---- /** * Get the preferred layout size of the container. ! * * @param parent The parent container * * @return the preferred layout size *************** public class CardLayout implements Layou *** 272,278 **** * Cause the previous component in the container to be displayed. * If this current card is the first one in the deck, the last * component is displayed. ! * * @param parent The parent container, not null. */ public void previous (Container parent) --- 272,278 ---- * Cause the previous component in the container to be displayed. * If this current card is the first one in the deck, the last * component is displayed. ! * * @param parent The parent container, not null. */ public void previous (Container parent) *************** public class CardLayout implements Layou *** 282,288 **** /** * Remove the indicated component from this layout manager. ! * * @param comp The component to remove */ public void removeLayoutComponent (Component comp) --- 282,288 ---- /** * Remove the indicated component from this layout manager. ! * * @param comp The component to remove */ public void removeLayoutComponent (Component comp) *************** public class CardLayout implements Layou *** 290,309 **** Enumeration e = tab.keys (); while (e.hasMoreElements ()) { ! Object key = e.nextElement (); ! if (tab.get (key) == comp) ! { ! tab.remove (key); ! Container parent = comp.getParent(); ! next(parent); ! break; ! } } } /** * Set this layout manager's horizontal gap. ! * * @param hgap The new gap */ public void setHgap (int hgap) --- 290,309 ---- Enumeration e = tab.keys (); while (e.hasMoreElements ()) { ! Object key = e.nextElement (); ! if (tab.get (key) == comp) ! { ! tab.remove (key); ! Container parent = comp.getParent(); ! next(parent); ! break; ! } } } /** * Set this layout manager's horizontal gap. ! * * @param hgap The new gap */ public void setHgap (int hgap) *************** public class CardLayout implements Layou *** 313,319 **** /** * Set this layout manager's vertical gap. ! * * @param vgap The new gap */ public void setVgap (int vgap) --- 313,319 ---- /** * Set this layout manager's vertical gap. ! * * @param vgap The new gap */ public void setVgap (int vgap) *************** public class CardLayout implements Layou *** 324,357 **** /** * Cause the named component to be shown. If the component name is * unknown or null, this method does nothing. ! * * @param parent The parent container, not null. ! * @param name The name of the component to show */ public void show (Container parent, String name) { if (name == null) return; ! if (parent.getLayout() != this) throw new IllegalArgumentException("parent's layout is not this CardLayout"); ! Object target = tab.get (name); if (target != null) { ! int num = parent.ncomponents; ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! for (int i = 0; i < num; ++i) ! { ! if (comps[i].isVisible()) ! { ! if (target == comps[i]) ! return; ! comps[i].setVisible (false); ! } ! } ! ((Component) target).setVisible (true); parent.validate(); } } --- 324,357 ---- /** * Cause the named component to be shown. If the component name is * unknown or null, this method does nothing. ! * * @param parent The parent container, not null. ! * @param name The name of the component to show */ public void show (Container parent, String name) { if (name == null) return; ! if (parent.getLayout() != this) throw new IllegalArgumentException("parent's layout is not this CardLayout"); ! Object target = tab.get (name); if (target != null) { ! int num = parent.ncomponents; ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! for (int i = 0; i < num; ++i) ! { ! if (comps[i].isVisible()) ! { ! if (target == comps[i]) ! return; ! comps[i].setVisible (false); ! } ! } ! ((Component) target).setVisible (true); parent.validate(); } } *************** public class CardLayout implements Layou *** 368,438 **** /** * This implements first(), last(), next(), and previous(). ! * * @param parent The parent container * @param what The type of goto: FIRST, LAST, NEXT or PREV ! * ! * @throws IllegalArgumentException if parent has not this * CardLayout set as its layout. */ private void gotoComponent (Container parent, int what) { if (parent.getLayout() != this) throw new IllegalArgumentException("parent's layout is not this CardLayout"); ! synchronized (parent.getTreeLock ()) { ! int num = parent.ncomponents; ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! if (num == 1) ! { ! comps[0].setVisible(true); ! return; ! } ! int choice = -1; ! if (what == FIRST) ! choice = 0; ! else if (what == LAST) ! choice = num - 1; ! for (int i = 0; i < num; ++i) ! { ! if (comps[i].isVisible ()) ! { ! if (choice == i) ! { ! // Do nothing if we're already looking at the right // component. return; ! } ! else if (what == PREV) ! { ! choice = i - 1; ! if (choice < 0) ! choice = num - 1; ! } ! else if (what == NEXT) ! { choice = i + 1; if (choice == num) choice = 0; ! } ! comps[i].setVisible (false); ! ! if (choice >= 0) ! break; ! } else { comps[i].setVisible(true); } ! } ! if (choice >= 0 && choice < num) ! comps[choice].setVisible (true); } } --- 368,438 ---- /** * This implements first(), last(), next(), and previous(). ! * * @param parent The parent container * @param what The type of goto: FIRST, LAST, NEXT or PREV ! * ! * @throws IllegalArgumentException if parent has not this * CardLayout set as its layout. */ private void gotoComponent (Container parent, int what) { if (parent.getLayout() != this) throw new IllegalArgumentException("parent's layout is not this CardLayout"); ! synchronized (parent.getTreeLock ()) { ! int num = parent.ncomponents; ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! if (num == 1) ! { ! comps[0].setVisible(true); ! return; ! } ! int choice = -1; ! if (what == FIRST) ! choice = 0; ! else if (what == LAST) ! choice = num - 1; ! for (int i = 0; i < num; ++i) ! { ! if (comps[i].isVisible ()) ! { ! if (choice == i) ! { ! // Do nothing if we're already looking at the right // component. return; ! } ! else if (what == PREV) ! { ! choice = i - 1; ! if (choice < 0) ! choice = num - 1; ! } ! else if (what == NEXT) ! { choice = i + 1; if (choice == num) choice = 0; ! } ! comps[i].setVisible (false); ! ! if (choice >= 0) ! break; ! } else { comps[i].setVisible(true); } ! } ! if (choice >= 0 && choice < num) ! comps[choice].setVisible (true); } } *************** public class CardLayout implements Layou *** 441,475 **** { synchronized (parent.getTreeLock ()) { ! int w = 0, h = 0, num = parent.ncomponents; ! Component[] comps = parent.component; ! for (int i = 0; i < num; ++i) ! { ! Dimension d; ! if (what == MIN) ! d = comps[i].getMinimumSize (); ! else if (what == MAX) ! d = comps[i].getMaximumSize (); ! else ! d = comps[i].getPreferredSize (); ! w = Math.max (d.width, w); ! h = Math.max (d.height, h); ! } ! Insets i = parent.getInsets (); ! w += 2 * hgap + i.right + i.left; ! h += 2 * vgap + i.bottom + i.top; ! // Handle overflow. ! if (w < 0) ! w = Integer.MAX_VALUE; ! if (h < 0) ! h = Integer.MAX_VALUE; ! return new Dimension (w, h); } } --- 441,475 ---- { synchronized (parent.getTreeLock ()) { ! int w = 0, h = 0, num = parent.ncomponents; ! Component[] comps = parent.component; ! for (int i = 0; i < num; ++i) ! { ! Dimension d; ! if (what == MIN) ! d = comps[i].getMinimumSize (); ! else if (what == MAX) ! d = comps[i].getMaximumSize (); ! else ! d = comps[i].getPreferredSize (); ! w = Math.max (d.width, w); ! h = Math.max (d.height, h); ! } ! Insets i = parent.getInsets (); ! w += 2 * hgap + i.right + i.left; ! h += 2 * vgap + i.bottom + i.top; ! // Handle overflow. ! if (w < 0) ! w = Integer.MAX_VALUE; ! if (h < 0) ! h = Integer.MAX_VALUE; ! return new Dimension (w, h); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Checkbox.java gcc-4.6.0/libjava/classpath/java/awt/Checkbox.java *** gcc-4.5.2/libjava/classpath/java/awt/Checkbox.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/awt/Checkbox.java Tue Jan 11 19:46:05 2011 *************** protected class AccessibleAWTCheckbox *** 138,147 **** public void itemStateChanged(ItemEvent event) { firePropertyChange(ACCESSIBLE_STATE_PROPERTY, ! state ? null : AccessibleState.CHECKED, state ? AccessibleState.CHECKED : null); } ! /** * Returns an implementation of the AccessibleAction * interface for this accessible object. In this case, the --- 138,147 ---- public void itemStateChanged(ItemEvent event) { firePropertyChange(ACCESSIBLE_STATE_PROPERTY, ! state ? null : AccessibleState.CHECKED, state ? AccessibleState.CHECKED : null); } ! /** * Returns an implementation of the AccessibleAction * interface for this accessible object. In this case, the *************** protected class AccessibleAWTCheckbox *** 156,162 **** { return this; } ! /** * Returns an implementation of the AccessibleValue * interface for this accessible object. In this case, the --- 156,162 ---- { return this; } ! /** * Returns an implementation of the AccessibleValue * interface for this accessible object. In this case, the *************** protected class AccessibleAWTCheckbox *** 171,178 **** { return this; } ! ! /* * The following methods are implemented in the JDK (up to * 1.5) as stubs. We do likewise here. */ --- 171,178 ---- { return this; } ! ! /* * The following methods are implemented in the JDK (up to * 1.5) as stubs. We do likewise here. */ *************** protected class AccessibleAWTCheckbox *** 277,283 **** { return null; } ! /** * Returns the role of this accessible object. * --- 277,283 ---- { return null; } ! /** * Returns the role of this accessible object. * *************** protected class AccessibleAWTCheckbox *** 285,295 **** * which describes this object. * @see javax.accessibility.AccessibleRole */ ! public AccessibleRole getAccessibleRole() { return AccessibleRole.CHECK_BOX; } ! /** * Returns the state set of this accessible object. * --- 285,295 ---- * which describes this object. * @see javax.accessibility.AccessibleRole */ ! public AccessibleRole getAccessibleRole() { return AccessibleRole.CHECK_BOX; } ! /** * Returns the state set of this accessible object. * *************** protected class AccessibleAWTCheckbox *** 319,325 **** * Initializes a new instance of Checkbox with no label, * an initial state of off, and that is not part of any checkbox group. */ ! public Checkbox() { this("", false, null); --- 319,325 ---- * Initializes a new instance of Checkbox with no label, * an initial state of off, and that is not part of any checkbox group. */ ! public Checkbox() { this("", false, null); *************** setState(boolean state) *** 464,473 **** { this.state = state; if (peer != null) ! { ! CheckboxPeer cp = (CheckboxPeer) peer; ! cp.setState (state); ! } } } --- 464,473 ---- { this.state = state; if (peer != null) ! { ! CheckboxPeer cp = (CheckboxPeer) peer; ! cp.setState (state); ! } } } *************** dispatchEventImpl(AWTEvent e) *** 608,616 **** ItemEvent ie = (ItemEvent) e; int itemState = ie.getStateChange(); setState(itemState == ItemEvent.SELECTED ? true : false); ! if (item_listeners != null ! || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0) ! processEvent(e); } else super.dispatchEventImpl(e); --- 608,616 ---- ItemEvent ie = (ItemEvent) e; int itemState = ie.getStateChange(); setState(itemState == ItemEvent.SELECTED ? true : false); ! if (item_listeners != null ! || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0) ! processEvent(e); } else super.dispatchEventImpl(e); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/CheckboxGroup.java gcc-4.6.0/libjava/classpath/java/awt/CheckboxGroup.java *** gcc-4.5.2/libjava/classpath/java/awt/CheckboxGroup.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/CheckboxGroup.java Tue Jan 11 19:46:05 2011 *************** getSelectedCheckbox() *** 106,119 **** * * @return The selected checkbox. * ! * @deprecated This method is deprecated in favor of * getSelectedCheckbox(). */ public Checkbox getCurrent() { return(selectedCheckbox); ! } /*************************************************************************/ --- 106,119 ---- * * @return The selected checkbox. * ! * @deprecated This method is deprecated in favor of * getSelectedCheckbox(). */ public Checkbox getCurrent() { return(selectedCheckbox); ! } /*************************************************************************/ *************** toString() *** 169,173 **** return(getClass().getName() + "[selectedCheckbox=" + selectedCheckbox + "]"); } ! } // class CheckboxGroup ! --- 169,172 ---- return(getClass().getName() + "[selectedCheckbox=" + selectedCheckbox + "]"); } ! } // class CheckboxGroup diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/CheckboxMenuItem.java gcc-4.6.0/libjava/classpath/java/awt/CheckboxMenuItem.java *** gcc-4.5.2/libjava/classpath/java/awt/CheckboxMenuItem.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/CheckboxMenuItem.java Tue Jan 11 19:46:05 2011 *************** dispatchEventImpl(AWTEvent e) *** 287,296 **** } } ! if (e.id <= ItemEvent.ITEM_LAST && e.id >= ItemEvent.ITEM_FIRST ! && (item_listeners != null ! || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0)) processEvent(e); else super.dispatchEventImpl(e); --- 287,296 ---- } } ! if (e.id <= ItemEvent.ITEM_LAST && e.id >= ItemEvent.ITEM_FIRST ! && (item_listeners != null ! || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0)) processEvent(e); else super.dispatchEventImpl(e); *************** public String *** 307,313 **** paramString() { return ("label=" + getLabel() + ",state=" + state ! + "," + super.paramString()); } /** --- 307,313 ---- paramString() { return ("label=" + getLabel() + ",state=" + state ! + "," + super.paramString()); } /** *************** paramString() *** 321,327 **** public T[] getListeners (Class listenerType) { if (listenerType == ItemListener.class) ! return AWTEventMulticaster.getListeners (item_listeners, listenerType); return super.getListeners (listenerType); } --- 321,327 ---- public T[] getListeners (Class listenerType) { if (listenerType == ItemListener.class) ! return AWTEventMulticaster.getListeners (item_listeners, listenerType); return super.getListeners (listenerType); } *************** paramString() *** 340,349 **** implements AccessibleAction, AccessibleValue { // I think the base class provides the necessary implementation ! private static final long serialVersionUID = -1122642964303476L; } ! /** * Gets the AccessibleContext associated with this CheckboxMenuItem. * The context is created, if necessary. --- 340,349 ---- implements AccessibleAction, AccessibleValue { // I think the base class provides the necessary implementation ! private static final long serialVersionUID = -1122642964303476L; } ! /** * Gets the AccessibleContext associated with this CheckboxMenuItem. * The context is created, if necessary. *************** paramString() *** 357,363 **** accessibleContext = new AccessibleAWTCheckboxMenuItem(); return accessibleContext; } ! /** * Generate a unique name for this CheckboxMenuItem. * --- 357,363 ---- accessibleContext = new AccessibleAWTCheckboxMenuItem(); return accessibleContext; } ! /** * Generate a unique name for this CheckboxMenuItem. * *************** paramString() *** 374,377 **** } } // class CheckboxMenuItem - --- 374,376 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Choice.java gcc-4.6.0/libjava/classpath/java/awt/Choice.java *** gcc-4.5.2/libjava/classpath/java/awt/Choice.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Choice.java Tue Jan 11 19:46:05 2011 *************** public class Choice extends Component *** 135,141 **** { return AccessibleRole.COMBO_BOX; } ! /** * Returns the number of actions associated with this accessible * object. In this case, it is the number of choices available. --- 135,141 ---- { return AccessibleRole.COMBO_BOX; } ! /** * Returns the number of actions associated with this accessible * object. In this case, it is the number of choices available. *************** public class Choice extends Component *** 162,168 **** { return (String) pItems.get(i); } ! /** * Executes the action with the specified id. In this case, * calling this method provides the same behaviour as would --- 162,168 ---- { return (String) pItems.get(i); } ! /** * Executes the action with the specified id. In this case, * calling this method provides the same behaviour as would *************** public class Choice extends Component *** 175,182 **** public boolean doAccessibleAction(int i) { if (i < 0 || i >= pItems.size()) ! return false; ! Choice.this.select( i ); return true; --- 175,182 ---- public boolean doAccessibleAction(int i) { if (i < 0 || i >= pItems.size()) ! return false; ! Choice.this.select( i ); return true; *************** public class Choice extends Component *** 248,261 **** if (peer != null) ((ChoicePeer) peer).add(item, getItemCount() - 1); ! if (selectedIndex == -1) select( 0 ); } /** * Adds the specified item to this choice box. * ! * This method is oboslete since Java 2 platform 1.1. Please use * {@link #add(String)} instead. * * @param item The item to add. --- 248,261 ---- if (peer != null) ((ChoicePeer) peer).add(item, getItemCount() - 1); ! if (selectedIndex == -1) select( 0 ); } /** * Adds the specified item to this choice box. * ! * This method is oboslete since Java 2 platform 1.1. Please use * {@link #add(String)} instead. * * @param item The item to add. *************** public class Choice extends Component *** 307,313 **** int index = pItems.indexOf(item); if (index == -1) throw new IllegalArgumentException ("item \"" ! + item + "\" not found in Choice"); remove(index); } --- 307,313 ---- int index = pItems.indexOf(item); if (index == -1) throw new IllegalArgumentException ("item \"" ! + item + "\" not found in Choice"); remove(index); } *************** public class Choice extends Component *** 327,341 **** if( getItemCount() == 0 ) selectedIndex = -1; ! else { ! if( selectedIndex > index ) ! selectedIndex--; ! else if( selectedIndex == index ) ! selectedIndex = 0; ! if( peer != null ) ! ((ChoicePeer)peer).select( selectedIndex ); } } --- 327,341 ---- if( getItemCount() == 0 ) selectedIndex = -1; ! else { ! if( selectedIndex > index ) ! selectedIndex--; ! else if( selectedIndex == index ) ! selectedIndex = 0; ! if( peer != null ) ! ((ChoicePeer)peer).select( selectedIndex ); } } *************** public class Choice extends Component *** 346,358 **** { if (getItemCount() <= 0) return; ! pItems.removeAllElements (); if (peer != null) { ! ChoicePeer cp = (ChoicePeer) peer; ! cp.removeAll (); } selectedIndex = -1; --- 346,358 ---- { if (getItemCount() <= 0) return; ! pItems.removeAllElements (); if (peer != null) { ! ChoicePeer cp = (ChoicePeer) peer; ! cp.removeAll (); } selectedIndex = -1; *************** public class Choice extends Component *** 367,374 **** public synchronized String getSelectedItem() { return (selectedIndex == -1 ! ? null ! : ((String)pItems.elementAt(selectedIndex))); } /** --- 367,374 ---- public synchronized String getSelectedItem() { return (selectedIndex == -1 ! ? null ! : ((String)pItems.elementAt(selectedIndex))); } /** *************** public class Choice extends Component *** 409,419 **** if ((index < 0) || (index >= getItemCount())) throw new IllegalArgumentException("Bad index: " + index); ! if( selectedIndex == index ) return; selectedIndex = index; ! if( peer != null ) ((ChoicePeer)peer).select( index ); } --- 409,419 ---- if ((index < 0) || (index >= getItemCount())) throw new IllegalArgumentException("Bad index: " + index); ! if( selectedIndex == index ) return; selectedIndex = index; ! if( peer != null ) ((ChoicePeer)peer).select( index ); } *************** public class Choice extends Component *** 482,490 **** { super.dispatchEventImpl(e); ! if( e.id <= ItemEvent.ITEM_LAST && e.id >= ItemEvent.ITEM_FIRST && ! ( item_listeners != null || ! ( eventMask & AWTEvent.ITEM_EVENT_MASK ) != 0 ) ) processEvent(e); } --- 482,490 ---- { super.dispatchEventImpl(e); ! if( e.id <= ItemEvent.ITEM_LAST && e.id >= ItemEvent.ITEM_FIRST && ! ( item_listeners != null || ! ( eventMask & AWTEvent.ITEM_EVENT_MASK ) != 0 ) ) processEvent(e); } *************** public class Choice extends Component *** 551,557 **** accessibleContext = new AccessibleAWTChoice(); return accessibleContext; } ! /** * Generate a unique name for this Choice. * --- 551,557 ---- accessibleContext = new AccessibleAWTChoice(); return accessibleContext; } ! /** * Generate a unique name for this Choice. * *************** public class Choice extends Component *** 566,569 **** { return next_choice_number++; } ! } // class Choice --- 566,569 ---- { return next_choice_number++; } ! } // class Choice diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Color.java gcc-4.6.0/libjava/classpath/java/awt/Color.java *** gcc-4.5.2/libjava/classpath/java/awt/Color.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Color.java Tue Jan 11 19:46:05 2011 *************** public class Color implements Paint, Ser *** 538,544 **** hues[0] = (value & RED_MASK) >> 16; hues[1] = (value & GREEN_MASK) >> 8; hues[2] = value & BLUE_MASK; ! // (0,0,0) is a special case. if (hues[0] == 0 && hues[1] == 0 && hues[2] ==0) { --- 538,544 ---- hues[0] = (value & RED_MASK) >> 16; hues[1] = (value & GREEN_MASK) >> 8; hues[2] = value & BLUE_MASK; ! // (0,0,0) is a special case. if (hues[0] == 0 && hues[1] == 0 && hues[2] ==0) { *************** public class Color implements Paint, Ser *** 547,556 **** hues[2] = 3; } else ! { for (int index = 0; index < 3; index++) { ! if (hues[index] > 2) hues[index] = (int) Math.min(255, hues[index]/0.7f); if (hues[index] == 1 || hues[index] == 2) --- 547,556 ---- hues[2] = 3; } else ! { for (int index = 0; index < 3; index++) { ! if (hues[index] > 2) hues[index] = (int) Math.min(255, hues[index]/0.7f); if (hues[index] == 1 || hues[index] == 2) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/ColorPaintContext.java gcc-4.6.0/libjava/classpath/java/awt/ColorPaintContext.java *** gcc-4.5.2/libjava/classpath/java/awt/ColorPaintContext.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/java/awt/ColorPaintContext.java Tue Jan 11 19:46:05 2011 *************** class ColorPaintContext implements Paint *** 59,65 **** private ColorRaster cachedRaster; ! /** * Create the context for a given color. * --- 59,65 ---- private ColorRaster cachedRaster; ! /** * Create the context for a given color. * *************** class ColorPaintContext implements Paint *** 69,79 **** { this(ColorModel.getRGBdefault(), colorRGB); } ! /** * Create the context for a given color. * ! * @param cm The color model of this context. * @param colorRGB The solid color to use. */ ColorPaintContext(ColorModel cm,int colorRGB) --- 69,79 ---- { this(ColorModel.getRGBdefault(), colorRGB); } ! /** * Create the context for a given color. * ! * @param cm The color model of this context. * @param colorRGB The solid color to use. */ ColorPaintContext(ColorModel cm,int colorRGB) *************** class ColorPaintContext implements Paint *** 91,97 **** } /** ! * Return the color model of this context. * * @return the context color model */ --- 91,97 ---- } /** ! * Return the color model of this context. * * @return the context color model */ *************** class ColorPaintContext implements Paint *** 111,117 **** */ public Raster getRaster(int x, int y, int width, int height) { ! if( cachedRaster == null || cachedRaster.getWidth() < width || cachedRaster.getHeight() < height) { --- 111,117 ---- */ public Raster getRaster(int x, int y, int width, int height) { ! if( cachedRaster == null || cachedRaster.getWidth() < width || cachedRaster.getHeight() < height) { *************** class ColorPaintContext implements Paint *** 119,134 **** } return cachedRaster.createChild(0 ,0 ,width ,height ,0 ,0 , null); } ! /** ! * A ColorRaster is a raster that is completely filled with one color. The * data layout is taken from the color model given to the constructor. */ private class ColorRaster extends Raster { ! /** ! * Create a raster that is compaltible with the given color model and * filled with the given color. * @param cm The color model for this raster. * @param x The smallest horizontal corrdinate in the raster. --- 119,134 ---- } return cachedRaster.createChild(0 ,0 ,width ,height ,0 ,0 , null); } ! /** ! * A ColorRaster is a raster that is completely filled with one color. The * data layout is taken from the color model given to the constructor. */ private class ColorRaster extends Raster { ! /** ! * Create a raster that is compaltible with the given color model and * filled with the given color. * @param cm The color model for this raster. * @param x The smallest horizontal corrdinate in the raster. *************** class ColorPaintContext implements Paint *** 146,154 **** getSampleModel().setPixels(0, 0, width, height, d, dataBuffer); } ! ! ! private Object multiplyData(Object src, Object dest, int factor) { Object from; --- 146,154 ---- getSampleModel().setPixels(0, 0, width, height, d, dataBuffer); } ! ! ! private Object multiplyData(Object src, Object dest, int factor) { Object from; *************** class ColorPaintContext implements Paint *** 156,162 **** if (src instanceof byte[]) { srcLength = ((byte[])src).length; ! if (dest == null) dest = new byte[factor * srcLength]; } else if (src instanceof short[]) --- 156,162 ---- if (src instanceof byte[]) { srcLength = ((byte[])src).length; ! if (dest == null) dest = new byte[factor * srcLength]; } else if (src instanceof short[]) *************** class ColorPaintContext implements Paint *** 173,195 **** { throw new ClassCastException("Unknown data buffer type"); } ! System.arraycopy(src,0,dest,0,srcLength); ! int count = 1; while(count*2 < factor) { System.arraycopy(dest, 0, dest, count * srcLength, count*srcLength); ! count *= 2; } ! if(factor > count) ! System.arraycopy(dest,0, dest, count * srcLength, (factor - count) * srcLength ); ! return dest; } ! } ! } // class ColorPaintContext --- 173,195 ---- { throw new ClassCastException("Unknown data buffer type"); } ! System.arraycopy(src,0,dest,0,srcLength); ! int count = 1; while(count*2 < factor) { System.arraycopy(dest, 0, dest, count * srcLength, count*srcLength); ! count *= 2; } ! if(factor > count) ! System.arraycopy(dest,0, dest, count * srcLength, (factor - count) * srcLength ); ! return dest; } ! } ! } // class ColorPaintContext diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Component.java gcc-4.6.0/libjava/classpath/java/awt/Component.java *** gcc-4.5.2/libjava/classpath/java/awt/Component.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/Component.java Tue Jan 11 19:46:05 2011 *************** public abstract class Component *** 158,164 **** { // Word to the wise - this file is huge. Search for '\f' (^L) for logical // sectioning by fields, public API, private API, and nested classes. ! /** * Compatible with JDK 1.0+. --- 158,164 ---- { // Word to the wise - this file is huge. Search for '\f' (^L) for logical // sectioning by fields, public API, private API, and nested classes. ! /** * Compatible with JDK 1.0+. *************** public abstract class Component *** 223,229 **** /** * The default maximum size. */ ! private static final Dimension DEFAULT_MAX_SIZE = new Dimension(Short.MAX_VALUE, Short.MAX_VALUE); // Serialized fields from the serialization spec. --- 223,229 ---- /** * The default maximum size. */ ! private static final Dimension DEFAULT_MAX_SIZE = new Dimension(Short.MAX_VALUE, Short.MAX_VALUE); // Serialized fields from the serialization spec. *************** public abstract class Component *** 444,462 **** * by a call to {@link #setMinimumSize(Dimension)} with a non-null value. */ boolean minSizeSet; ! /** * The maximum size for the component. * @see #setMaximumSize(Dimension) */ Dimension maxSize; ! /** * A flag indicating whether the maximum size for the component has been set * by a call to {@link #setMaximumSize(Dimension)} with a non-null value. */ boolean maxSizeSet; ! /** * Cached information on the preferred size. Should have been transient. * --- 444,462 ---- * by a call to {@link #setMinimumSize(Dimension)} with a non-null value. */ boolean minSizeSet; ! /** * The maximum size for the component. * @see #setMaximumSize(Dimension) */ Dimension maxSize; ! /** * A flag indicating whether the maximum size for the component has been set * by a call to {@link #setMaximumSize(Dimension)} with a non-null value. */ boolean maxSizeSet; ! /** * Cached information on the preferred size. Should have been transient. * *************** public abstract class Component *** 527,533 **** */ AccessibleContext accessibleContext; ! // Guess what - listeners are special cased in serialization. See // readObject and writeObject. --- 527,533 ---- */ AccessibleContext accessibleContext; ! // Guess what - listeners are special cased in serialization. See // readObject and writeObject. *************** public abstract class Component *** 627,633 **** incrementalDraw = Boolean.getBoolean ("awt.image.incrementalDraw"); redrawRate = Long.getLong ("awt.image.redrawrate"); } ! // Public and protected API. /** --- 627,633 ---- incrementalDraw = Boolean.getBoolean ("awt.image.incrementalDraw"); redrawRate = Long.getLong ("awt.image.redrawrate"); } ! // Public and protected API. /** *************** public abstract class Component *** 704,710 **** public void setDropTarget(DropTarget dt) { this.dropTarget = dt; ! if (peer != null) dropTarget.addNotify(peer); } --- 704,710 ---- public void setDropTarget(DropTarget dt) { this.dropTarget = dt; ! if (peer != null) dropTarget.addNotify(peer); } *************** public abstract class Component *** 802,809 **** /** * Tests if the component is displayable. It must be connected to a native ! * screen resource. This reduces to checking that peer is not null. A ! * containment hierarchy is made displayable when a window is packed or * made visible. * * @return true if the component is displayable --- 802,809 ---- /** * Tests if the component is displayable. It must be connected to a native ! * screen resource. This reduces to checking that peer is not null. A ! * containment hierarchy is made displayable when a window is packed or * made visible. * * @return true if the component is displayable *************** public abstract class Component *** 863,872 **** * events). * * @param enabled true to enable this component ! * * @see #isEnabled() * @see #isLightweight() ! * * @since 1.1 */ public void setEnabled(boolean enabled) --- 863,872 ---- * events). * * @param enabled true to enable this component ! * * @see #isEnabled() * @see #isLightweight() ! * * @since 1.1 */ public void setEnabled(boolean enabled) *************** public abstract class Component *** 898,904 **** * Enables or disables this component. * * @param enabled true to enable this component ! * * @deprecated use {@link #setEnabled(boolean)} instead */ public void enable(boolean enabled) --- 898,904 ---- * Enables or disables this component. * * @param enabled true to enable this component ! * * @deprecated use {@link #setEnabled(boolean)} instead */ public void enable(boolean enabled) *************** public abstract class Component *** 964,972 **** * not show the component, if a parent is invisible. * * @param visible true to make this component visible ! * * @see #isVisible() ! * * @since 1.1 */ public void setVisible(boolean visible) --- 964,972 ---- * not show the component, if a parent is invisible. * * @param visible true to make this component visible ! * * @see #isVisible() ! * * @since 1.1 */ public void setVisible(boolean visible) *************** public abstract class Component *** 1037,1043 **** * Makes this component visible or invisible. * * @param visible true to make this component visible ! * * @deprecated use {@link #setVisible(boolean)} instead */ public void show(boolean visible) --- 1037,1043 ---- * Makes this component visible or invisible. * * @param visible true to make this component visible ! * * @deprecated use {@link #setVisible(boolean)} instead */ public void show(boolean visible) *************** public abstract class Component *** 1124,1130 **** { if (peer != null) peer.setForeground(c); ! Color previous = foreground; foreground = c; firePropertyChange("foreground", previous, c); --- 1124,1130 ---- { if (peer != null) peer.setForeground(c); ! Color previous = foreground; foreground = c; firePropertyChange("foreground", previous, c); *************** public abstract class Component *** 1231,1237 **** * property. * * @param f the new font for this component ! * * @see #getFont() */ public void setFont(Font f) --- 1231,1237 ---- * property. * * @param f the new font for this component ! * * @see #getFont() */ public void setFont(Font f) *************** public abstract class Component *** 1254,1260 **** ComponentPeer p = peer; if (p != null) { ! // The peer receives the real font setting, which can depend on // the parent font when this component's font has been set to null. f = getFont(); if (f != null) --- 1254,1260 ---- ComponentPeer p = peer; if (p != null) { ! // The peer receives the real font setting, which can depend on // the parent font when this component's font has been set to null. f = getFont(); if (f != null) *************** public abstract class Component *** 1591,1597 **** int oldy = this.y; int oldwidth = this.width; int oldheight = this.height; ! boolean resized = oldwidth != width || oldheight != height; boolean moved = oldx != x || oldy != y; --- 1591,1597 ---- int oldy = this.y; int oldwidth = this.width; int oldheight = this.height; ! boolean resized = oldwidth != width || oldheight != height; boolean moved = oldx != x || oldy != y; *************** public abstract class Component *** 1820,1834 **** } /** ! * Sets the preferred size that will be returned by ! * {@link #getPreferredSize()} always, and sends a ! * {@link PropertyChangeEvent} (with the property name 'preferredSize') to * all registered listeners. ! * * @param size the preferred size (null permitted). ! * * @since 1.5 ! * * @see #getPreferredSize() */ public void setPreferredSize(Dimension size) --- 1820,1834 ---- } /** ! * Sets the preferred size that will be returned by ! * {@link #getPreferredSize()} always, and sends a ! * {@link PropertyChangeEvent} (with the property name 'preferredSize') to * all registered listeners. ! * * @param size the preferred size (null permitted). ! * * @since 1.5 ! * * @see #getPreferredSize() */ public void setPreferredSize(Dimension size) *************** public abstract class Component *** 1838,1858 **** prefSizeSet = (size != null); firePropertyChange("preferredSize", old, size); } ! /** ! * Returns true if the current preferred size is not ! * null and was set by a call to * {@link #setPreferredSize(Dimension)}, otherwise returns false. ! * * @return A boolean. ! * * @since 1.5 */ public boolean isPreferredSizeSet() { return prefSizeSet; } ! /** * Returns the component's preferred size. * --- 1838,1858 ---- prefSizeSet = (size != null); firePropertyChange("preferredSize", old, size); } ! /** ! * Returns true if the current preferred size is not ! * null and was set by a call to * {@link #setPreferredSize(Dimension)}, otherwise returns false. ! * * @return A boolean. ! * * @since 1.5 */ public boolean isPreferredSizeSet() { return prefSizeSet; } ! /** * Returns the component's preferred size. * *************** public abstract class Component *** 1870,1876 **** * The actual calculation is pulled out of preferredSize() so that * we can call it from Container.preferredSize() and avoid creating a * new intermediate Dimension object. ! * * @return the preferredSize of the component */ Dimension preferredSizeImpl() --- 1870,1876 ---- * The actual calculation is pulled out of preferredSize() so that * we can call it from Container.preferredSize() and avoid creating a * new intermediate Dimension object. ! * * @return the preferredSize of the component */ Dimension preferredSizeImpl() *************** public abstract class Component *** 1895,1901 **** /** * Returns the component's minimum size. ! * * @return the component's minimum size * @see #getPreferredSize() * @see #setMinimumSize(Dimension) --- 1895,1901 ---- /** * Returns the component's minimum size. ! * * @return the component's minimum size * @see #getPreferredSize() * @see #setMinimumSize(Dimension) *************** public abstract class Component *** 1910,1920 **** * Sets the minimum size that will be returned by {@link #getMinimumSize()} * always, and sends a {@link PropertyChangeEvent} (with the property name * 'minimumSize') to all registered listeners. ! * * @param size the minimum size (null permitted). ! * * @since 1.5 ! * * @see #getMinimumSize() */ public void setMinimumSize(Dimension size) --- 1910,1920 ---- * Sets the minimum size that will be returned by {@link #getMinimumSize()} * always, and sends a {@link PropertyChangeEvent} (with the property name * 'minimumSize') to all registered listeners. ! * * @param size the minimum size (null permitted). ! * * @since 1.5 ! * * @see #getMinimumSize() */ public void setMinimumSize(Dimension size) *************** public abstract class Component *** 1924,1944 **** minSizeSet = (size != null); firePropertyChange("minimumSize", old, size); } ! /** ! * Returns true if the current minimum size is not ! * null and was set by a call to * {@link #setMinimumSize(Dimension)}, otherwise returns false. ! * * @return A boolean. ! * * @since 1.5 */ public boolean isMinimumSizeSet() { return minSizeSet; } ! /** * Returns the component's minimum size. * --- 1924,1944 ---- minSizeSet = (size != null); firePropertyChange("minimumSize", old, size); } ! /** ! * Returns true if the current minimum size is not ! * null and was set by a call to * {@link #setMinimumSize(Dimension)}, otherwise returns false. ! * * @return A boolean. ! * * @since 1.5 */ public boolean isMinimumSizeSet() { return minSizeSet; } ! /** * Returns the component's minimum size. * *************** public abstract class Component *** 1957,1963 **** * we can call it from Container.preferredSize() and * Component.preferredSizeImpl and avoid creating a * new intermediate Dimension object. ! * * @return the minimum size of the component */ Dimension minimumSizeImpl() --- 1957,1963 ---- * we can call it from Container.preferredSize() and * Component.preferredSizeImpl and avoid creating a * new intermediate Dimension object. ! * * @return the minimum size of the component */ Dimension minimumSizeImpl() *************** public abstract class Component *** 2014,2024 **** * Sets the maximum size that will be returned by {@link #getMaximumSize()} * always, and sends a {@link PropertyChangeEvent} (with the property name * 'maximumSize') to all registered listeners. ! * * @param size the maximum size (null permitted). ! * * @since 1.5 ! * * @see #getMaximumSize() */ public void setMaximumSize(Dimension size) --- 2014,2024 ---- * Sets the maximum size that will be returned by {@link #getMaximumSize()} * always, and sends a {@link PropertyChangeEvent} (with the property name * 'maximumSize') to all registered listeners. ! * * @param size the maximum size (null permitted). ! * * @since 1.5 ! * * @see #getMaximumSize() */ public void setMaximumSize(Dimension size) *************** public abstract class Component *** 2030,2048 **** } /** ! * Returns true if the current maximum size is not ! * null and was set by a call to * {@link #setMaximumSize(Dimension)}, otherwise returns false. ! * * @return A boolean. ! * * @since 1.5 */ public boolean isMaximumSizeSet() { return maxSizeSet; } ! /** * Returns the preferred horizontal alignment of this component. The value * returned will be between {@link #LEFT_ALIGNMENT} and --- 2030,2048 ---- } /** ! * Returns true if the current maximum size is not ! * null and was set by a call to * {@link #setMaximumSize(Dimension)}, otherwise returns false. ! * * @return A boolean. ! * * @since 1.5 */ public boolean isMaximumSizeSet() { return maxSizeSet; } ! /** * Returns the preferred horizontal alignment of this component. The value * returned will be between {@link #LEFT_ALIGNMENT} and *************** public abstract class Component *** 2313,2319 **** * Paints this entire component, including any sub-components. * * @param g the graphics context for this paint job ! * * @see #paint(Graphics) */ public void paintAll(Graphics g) --- 2313,2319 ---- * Paints this entire component, including any sub-components. * * @param g the graphics context for this paint job ! * * @see #paint(Graphics) */ public void paintAll(Graphics g) *************** public abstract class Component *** 2336,2342 **** * @see #repaint(long, int, int, int, int) */ public void repaint() ! { repaint(0, 0, 0, width, height); } --- 2336,2342 ---- * @see #repaint(long, int, int, int, int) */ public void repaint() ! { repaint(0, 0, 0, width, height); } *************** public abstract class Component *** 2406,2412 **** // region to this component. if (parent != null) { ! int px = this.x + Math.max(0, x); int py = this.y + Math.max(0, y); int pw = Math.min(this.width, width); int ph = Math.min(this.height, height); --- 2406,2412 ---- // region to this component. if (parent != null) { ! int px = this.x + Math.max(0, x); int py = this.y + Math.max(0, y); int pw = Math.min(this.width, width); int ph = Math.min(this.height, height); *************** public abstract class Component *** 2431,2437 **** * in this class simply calls the paint() method. * * @param g the graphics context of the print device ! * * @see #paint(Graphics) */ public void print(Graphics g) --- 2431,2437 ---- * in this class simply calls the paint() method. * * @param g the graphics context of the print device ! * * @see #paint(Graphics) */ public void print(Graphics g) *************** public abstract class Component *** 2440,2449 **** } /** ! * Prints this component, including all sub-components. * * @param g the graphics context of the print device ! * * @see #paintAll(Graphics) */ public void printAll(Graphics g) --- 2440,2449 ---- } /** ! * Prints this component, including all sub-components. * * @param g the graphics context of the print device ! * * @see #paintAll(Graphics) */ public void printAll(Graphics g) *************** public abstract class Component *** 2485,2502 **** repaint(); else if ((flags & SOMEBITS) != 0) { ! if (incrementalDraw) ! { ! if (redrawRate != null) ! { ! long tm = redrawRate.longValue(); ! if (tm < 0) ! tm = 0; repaint(tm); ! } ! else repaint(100); ! } } return (flags & (ALLBITS | ABORT | ERROR)) == 0; } --- 2485,2502 ---- repaint(); else if ((flags & SOMEBITS) != 0) { ! if (incrementalDraw) ! { ! if (redrawRate != null) ! { ! long tm = redrawRate.longValue(); ! if (tm < 0) ! tm = 0; repaint(tm); ! } ! else repaint(100); ! } } return (flags & (ALLBITS | ABORT | ERROR)) == 0; } *************** public abstract class Component *** 2650,2658 **** boolean retval; if (p != null) ! retval = p.prepareImage(image, width, height, observer); else ! retval = getToolkit().prepareImage(image, width, height, observer); return retval; } --- 2650,2658 ---- boolean retval; if (p != null) ! retval = p.prepareImage(image, width, height, observer); else ! retval = getToolkit().prepareImage(image, width, height, observer); return retval; } *************** public abstract class Component *** 2855,2868 **** /** * By default, no old mouse events should be ignored. * This can be overridden by subclasses. ! * * @return false, no mouse events are ignored. */ static boolean ignoreOldMouseEvents() { return false; } ! /** * AWT 1.0 event handler. * --- 2855,2868 ---- /** * By default, no old mouse events should be ignored. * This can be overridden by subclasses. ! * * @return false, no mouse events are ignored. */ static boolean ignoreOldMouseEvents() { return false; } ! /** * AWT 1.0 event handler. * *************** public abstract class Component *** 3414,3432 **** } /** ! * Returns all registered {@link EventListener}s of the given * listenerType. * ! * @param listenerType the class of listeners to filter (null * not permitted). ! * * @return An array of registered listeners. ! * * @throws ClassCastException if listenerType does not implement * the {@link EventListener} interface. ! * @throws NullPointerException if listenerType is * null. ! * * @see #getComponentListeners() * @see #getFocusListeners() * @see #getHierarchyListeners() --- 3414,3432 ---- } /** ! * Returns all registered {@link EventListener}s of the given * listenerType. * ! * @param listenerType the class of listeners to filter (null * not permitted). ! * * @return An array of registered listeners. ! * * @throws ClassCastException if listenerType does not implement * the {@link EventListener} interface. ! * @throws NullPointerException if listenerType is * null. ! * * @see #getComponentListeners() * @see #getFocusListeners() * @see #getHierarchyListeners() *************** public abstract class Component *** 3819,3826 **** mouseListener.mouseClicked(e); break; case MouseEvent.MOUSE_ENTERED: ! if( isLightweight() ) ! setCursor( getCursor() ); mouseListener.mouseEntered(e); break; case MouseEvent.MOUSE_EXITED: --- 3819,3826 ---- mouseListener.mouseClicked(e); break; case MouseEvent.MOUSE_ENTERED: ! if( isLightweight() ) ! setCursor( getCursor() ); mouseListener.mouseEntered(e); break; case MouseEvent.MOUSE_EXITED: *************** public abstract class Component *** 3882,3888 **** { mouseWheelListener.mouseWheelMoved(e); e.consume(); ! } } /** --- 3882,3888 ---- { mouseWheelListener.mouseWheelMoved(e); e.consume(); ! } } /** *************** public abstract class Component *** 3977,4013 **** { switch (evt.id) { ! // Handle key events. case Event.KEY_ACTION: case Event.KEY_PRESS: ! return keyDown (evt, evt.key); case Event.KEY_ACTION_RELEASE: case Event.KEY_RELEASE: ! return keyUp (evt, evt.key); ! // Handle mouse events. case Event.MOUSE_DOWN: ! return mouseDown (evt, evt.x, evt.y); case Event.MOUSE_UP: ! return mouseUp (evt, evt.x, evt.y); case Event.MOUSE_MOVE: ! return mouseMove (evt, evt.x, evt.y); case Event.MOUSE_DRAG: ! return mouseDrag (evt, evt.x, evt.y); case Event.MOUSE_ENTER: ! return mouseEnter (evt, evt.x, evt.y); case Event.MOUSE_EXIT: ! return mouseExit (evt, evt.x, evt.y); ! // Handle focus events. case Event.GOT_FOCUS: ! return gotFocus (evt, evt.arg); case Event.LOST_FOCUS: ! return lostFocus (evt, evt.arg); ! // Handle action event. case Event.ACTION_EVENT: ! return action (evt, evt.arg); } // Unknown event. return false; --- 3977,4013 ---- { switch (evt.id) { ! // Handle key events. case Event.KEY_ACTION: case Event.KEY_PRESS: ! return keyDown (evt, evt.key); case Event.KEY_ACTION_RELEASE: case Event.KEY_RELEASE: ! return keyUp (evt, evt.key); ! // Handle mouse events. case Event.MOUSE_DOWN: ! return mouseDown (evt, evt.x, evt.y); case Event.MOUSE_UP: ! return mouseUp (evt, evt.x, evt.y); case Event.MOUSE_MOVE: ! return mouseMove (evt, evt.x, evt.y); case Event.MOUSE_DRAG: ! return mouseDrag (evt, evt.x, evt.y); case Event.MOUSE_ENTER: ! return mouseEnter (evt, evt.x, evt.y); case Event.MOUSE_EXIT: ! return mouseExit (evt, evt.x, evt.y); ! // Handle focus events. case Event.GOT_FOCUS: ! return gotFocus (evt, evt.arg); case Event.LOST_FOCUS: ! return lostFocus (evt, evt.arg); ! // Handle action event. case Event.ACTION_EVENT: ! return action (evt, evt.arg); } // Unknown event. return false; *************** public abstract class Component *** 4186,4192 **** // much. invalidate(); ! if (dropTarget != null) dropTarget.addNotify(peer); // Fetch the peerFont for later installation in validate(). --- 4186,4192 ---- // much. invalidate(); ! if (dropTarget != null) dropTarget.addNotify(peer); // Fetch the peerFont for later installation in validate(). *************** public abstract class Component *** 4354,4360 **** * @since 1.4 */ public void setFocusTraversalKeys(int id, ! Set keystrokes) { if (keystrokes == null) { --- 4354,4360 ---- * @since 1.4 */ public void setFocusTraversalKeys(int id, ! Set keystrokes) { if (keystrokes == null) { *************** public abstract class Component *** 4438,4449 **** * @return set of traversal keys * * @throws IllegalArgumentException if id is invalid ! * * @see #setFocusTraversalKeys (int, Set) * @see KeyboardFocusManager#FORWARD_TRAVERSAL_KEYS * @see KeyboardFocusManager#BACKWARD_TRAVERSAL_KEYS * @see KeyboardFocusManager#UP_CYCLE_TRAVERSAL_KEYS ! * * @since 1.4 */ public Set getFocusTraversalKeys (int id) --- 4438,4449 ---- * @return set of traversal keys * * @throws IllegalArgumentException if id is invalid ! * * @see #setFocusTraversalKeys (int, Set) * @see KeyboardFocusManager#FORWARD_TRAVERSAL_KEYS * @see KeyboardFocusManager#BACKWARD_TRAVERSAL_KEYS * @see KeyboardFocusManager#UP_CYCLE_TRAVERSAL_KEYS ! * * @since 1.4 */ public Set getFocusTraversalKeys (int id) *************** public abstract class Component *** 4506,4513 **** public void setFocusTraversalKeysEnabled (boolean focusTraversalKeysEnabled) { firePropertyChange ("focusTraversalKeysEnabled", ! this.focusTraversalKeysEnabled, ! focusTraversalKeysEnabled); this.focusTraversalKeysEnabled = focusTraversalKeysEnabled; } --- 4506,4513 ---- public void setFocusTraversalKeysEnabled (boolean focusTraversalKeysEnabled) { firePropertyChange ("focusTraversalKeysEnabled", ! this.focusTraversalKeysEnabled, ! focusTraversalKeysEnabled); this.focusTraversalKeysEnabled = focusTraversalKeysEnabled; } *************** public abstract class Component *** 4670,4676 **** private boolean requestFocusImpl(boolean temporary, boolean focusWindow) { boolean retval = false; ! // Don't try to focus non-focusable and non-visible components. if (isFocusable() && isVisible()) { --- 4670,4676 ---- private boolean requestFocusImpl(boolean temporary, boolean focusWindow) { boolean retval = false; ! // Don't try to focus non-focusable and non-visible components. if (isFocusable() && isVisible()) { *************** public abstract class Component *** 4954,4962 **** * Adds the specified popup menu to this component. * * @param popup the popup menu to be added ! * * @see #remove(MenuComponent) ! * * @since 1.1 */ public synchronized void add(PopupMenu popup) --- 4954,4962 ---- * Adds the specified popup menu to this component. * * @param popup the popup menu to be added ! * * @see #remove(MenuComponent) ! * * @since 1.1 */ public synchronized void add(PopupMenu popup) *************** p *
  • the set of backward traversal *** 5233,5239 **** Object newValue) { if (changeSupport != null) ! changeSupport.firePropertyChange(propertyName, oldValue, newValue); } /** --- 5233,5239 ---- Object newValue) { if (changeSupport != null) ! changeSupport.firePropertyChange(propertyName, oldValue, newValue); } /** *************** p *
  • the set of backward traversal *** 5379,5385 **** */ public void setComponentOrientation(ComponentOrientation o) { ! ComponentOrientation oldOrientation = componentOrientation; componentOrientation = o; firePropertyChange("componentOrientation", oldOrientation, o); --- 5379,5385 ---- */ public void setComponentOrientation(ComponentOrientation o) { ! ComponentOrientation oldOrientation = componentOrientation; componentOrientation = o; firePropertyChange("componentOrientation", oldOrientation, o); *************** p *
  • the set of backward traversal *** 5426,5432 **** return null; } ! // Helper methods; some are package visible for use by subclasses. /** --- 5426,5432 ---- return null; } ! // Helper methods; some are package visible for use by subclasses. /** *************** p *
  • the set of backward traversal *** 5463,5475 **** { Object target = e.getSource (); Event translated = null; ! if (e instanceof WindowEvent) { WindowEvent we = (WindowEvent) e; int id = we.id; int newId = 0; ! switch (id) { case WindowEvent.WINDOW_DEICONIFIED: --- 5463,5475 ---- { Object target = e.getSource (); Event translated = null; ! if (e instanceof WindowEvent) { WindowEvent we = (WindowEvent) e; int id = we.id; int newId = 0; ! switch (id) { case WindowEvent.WINDOW_DEICONIFIED: *************** p *
  • the set of backward traversal *** 5666,5687 **** } else if (e instanceof AdjustmentEvent) { ! AdjustmentEvent ae = (AdjustmentEvent) e; ! int type = ae.getAdjustmentType(); ! int oldType; ! if (type == AdjustmentEvent.BLOCK_DECREMENT) ! oldType = Event.SCROLL_PAGE_UP; ! else if (type == AdjustmentEvent.BLOCK_INCREMENT) ! oldType = Event.SCROLL_PAGE_DOWN; ! else if (type == AdjustmentEvent.TRACK) ! oldType = Event.SCROLL_ABSOLUTE; ! else if (type == AdjustmentEvent.UNIT_DECREMENT) ! oldType = Event.SCROLL_LINE_UP; ! else if (type == AdjustmentEvent.UNIT_INCREMENT) ! oldType = Event.SCROLL_LINE_DOWN; ! else ! oldType = type; ! translated = new Event(target, oldType, new Integer(ae.getValue())); } else if (e instanceof ActionEvent) translated = new Event (target, Event.ACTION_EVENT, --- 5666,5687 ---- } else if (e instanceof AdjustmentEvent) { ! AdjustmentEvent ae = (AdjustmentEvent) e; ! int type = ae.getAdjustmentType(); ! int oldType; ! if (type == AdjustmentEvent.BLOCK_DECREMENT) ! oldType = Event.SCROLL_PAGE_UP; ! else if (type == AdjustmentEvent.BLOCK_INCREMENT) ! oldType = Event.SCROLL_PAGE_DOWN; ! else if (type == AdjustmentEvent.TRACK) ! oldType = Event.SCROLL_ABSOLUTE; ! else if (type == AdjustmentEvent.UNIT_DECREMENT) ! oldType = Event.SCROLL_LINE_UP; ! else if (type == AdjustmentEvent.UNIT_INCREMENT) ! oldType = Event.SCROLL_LINE_DOWN; ! else ! oldType = type; ! translated = new Event(target, oldType, new Integer(ae.getValue())); } else if (e instanceof ActionEvent) translated = new Event (target, Event.ACTION_EVENT, *************** p *
  • the set of backward traversal *** 5760,5773 **** switch (type) { case HierarchyEvent.HIERARCHY_CHANGED: ! return (hierarchyListener != null || (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) != 0); ! case HierarchyEvent.ANCESTOR_MOVED: case HierarchyEvent.ANCESTOR_RESIZED: ! return (hierarchyBoundsListener != null || (eventMask & AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) != 0); ! case ComponentEvent.COMPONENT_HIDDEN: case ComponentEvent.COMPONENT_MOVED: case ComponentEvent.COMPONENT_RESIZED: --- 5760,5773 ---- switch (type) { case HierarchyEvent.HIERARCHY_CHANGED: ! return (hierarchyListener != null || (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) != 0); ! case HierarchyEvent.ANCESTOR_MOVED: case HierarchyEvent.ANCESTOR_RESIZED: ! return (hierarchyBoundsListener != null || (eventMask & AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) != 0); ! case ComponentEvent.COMPONENT_HIDDEN: case ComponentEvent.COMPONENT_MOVED: case ComponentEvent.COMPONENT_RESIZED: *************** p *
  • the set of backward traversal *** 5795,5801 **** case MouseEvent.MOUSE_WHEEL: return (mouseWheelListener != null || (eventMask & AWTEvent.MOUSE_WHEEL_EVENT_MASK) != 0); ! case FocusEvent.FOCUS_GAINED: case FocusEvent.FOCUS_LOST: return (focusListener != null --- 5795,5801 ---- case MouseEvent.MOUSE_WHEEL: return (mouseWheelListener != null || (eventMask & AWTEvent.MOUSE_WHEEL_EVENT_MASK) != 0); ! case FocusEvent.FOCUS_GAINED: case FocusEvent.FOCUS_LOST: return (focusListener != null *************** p *
  • the set of backward traversal *** 5805,5815 **** case InputMethodEvent.CARET_POSITION_CHANGED: return (inputMethodListener != null || (eventMask & AWTEvent.INPUT_METHOD_EVENT_MASK) != 0); ! case PaintEvent.PAINT: case PaintEvent.UPDATE: return (eventMask & AWTEvent.PAINT_EVENT_MASK) != 0; ! default: return false; } --- 5805,5815 ---- case InputMethodEvent.CARET_POSITION_CHANGED: return (inputMethodListener != null || (eventMask & AWTEvent.INPUT_METHOD_EVENT_MASK) != 0); ! case PaintEvent.PAINT: case PaintEvent.UPDATE: return (eventMask & AWTEvent.PAINT_EVENT_MASK) != 0; ! default: return false; } *************** p *
  • the set of backward traversal *** 5966,5979 **** s.writeObject(null); } ! // Nested classes. ! /** * This class fixes the bounds for a Heavyweight component that * is placed inside a Lightweight container. When the lightweight is * moved or resized, setBounds for the lightweight peer does nothing. ! * Therefore, it was never moved on the screen. This class is * attached to the lightweight, and it adjusts the position and size * of the peer when notified. * This is the same for show and hide. --- 5966,5979 ---- s.writeObject(null); } ! // Nested classes. ! /** * This class fixes the bounds for a Heavyweight component that * is placed inside a Lightweight container. When the lightweight is * moved or resized, setBounds for the lightweight peer does nothing. ! * Therefore, it was never moved on the screen. This class is * attached to the lightweight, and it adjusts the position and size * of the peer when notified. * This is the same for show and hide. *************** p *
  • the set of backward traversal *** 5981,6000 **** class HeavyweightInLightweightListener implements ComponentListener { ! /** * Constructor. Adds component listener to lightweight parent. ! * * @param parent - the lightweight container. */ public HeavyweightInLightweightListener(Container parent) { parent.addComponentListener(this); } ! /** * This method is called when the component is resized. ! * * @param event the ComponentEvent indicating the resize */ public void componentResized(ComponentEvent event) --- 5981,6000 ---- class HeavyweightInLightweightListener implements ComponentListener { ! /** * Constructor. Adds component listener to lightweight parent. ! * * @param parent - the lightweight container. */ public HeavyweightInLightweightListener(Container parent) { parent.addComponentListener(this); } ! /** * This method is called when the component is resized. ! * * @param event the ComponentEvent indicating the resize */ public void componentResized(ComponentEvent event) *************** p *
  • the set of backward traversal *** 6004,6010 **** /** * This method is called when the component is moved. ! * * @param event the ComponentEvent indicating the move */ public void componentMoved(ComponentEvent event) --- 6004,6010 ---- /** * This method is called when the component is moved. ! * * @param event the ComponentEvent indicating the move */ public void componentMoved(ComponentEvent event) *************** p *
  • the set of backward traversal *** 6015,6021 **** /** * This method is called when the component is made visible. ! * * @param event the ComponentEvent indicating the visibility */ public void componentShown(ComponentEvent event) --- 6015,6021 ---- /** * This method is called when the component is made visible. ! * * @param event the ComponentEvent indicating the visibility */ public void componentShown(ComponentEvent event) *************** p *
  • the set of backward traversal *** 6026,6032 **** /** * This method is called when the component is hidden. ! * * @param event the ComponentEvent indicating the visibility */ public void componentHidden(ComponentEvent event) --- 6026,6032 ---- /** * This method is called when the component is hidden. ! * * @param event the ComponentEvent indicating the visibility */ public void componentHidden(ComponentEvent event) *************** p *
  • the set of backward traversal *** 6035,6041 **** peer.hide(); } } ! /** * This class provides accessibility support for subclasses of container. * --- 6035,6041 ---- peer.hide(); } } ! /** * This class provides accessibility support for subclasses of container. * *************** p *
  • the set of backward traversal *** 6732,6744 **** protected void createBackBuffers(int numBuffers) { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); backBuffers = new VolatileImage[numBuffers]; for (int i = 0; i < numBuffers; i++) ! backBuffers[i] = c.createCompatibleVolatileImage(width, height); } /** --- 6732,6744 ---- protected void createBackBuffers(int numBuffers) { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); backBuffers = new VolatileImage[numBuffers]; for (int i = 0; i < numBuffers; i++) ! backBuffers[i] = c.createCompatibleVolatileImage(width, height); } /** *************** p *
  • the set of backward traversal *** 6769,6798 **** public void show() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); // draw the front buffer. getGraphics().drawImage(backBuffers[backBuffers.length - 1], ! width, height, null); BufferCapabilities.FlipContents f = getCapabilities().getFlipContents(); // blit the back buffers. for (int i = backBuffers.length - 1; i > 0 ; i--) ! backBuffers[i] = backBuffers[i - 1]; // create new backmost buffer. if (f == BufferCapabilities.FlipContents.UNDEFINED) ! backBuffers[0] = c.createCompatibleVolatileImage(width, height); // create new backmost buffer and clear it to the background // color. if (f == BufferCapabilities.FlipContents.BACKGROUND) ! { ! backBuffers[0] = c.createCompatibleVolatileImage(width, height); ! backBuffers[0].getGraphics().clearRect(0, 0, width, height); ! } // FIXME: set the backmost buffer to the prior contents of the // front buffer. How do we retrieve the contents of the front --- 6769,6798 ---- public void show() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); // draw the front buffer. getGraphics().drawImage(backBuffers[backBuffers.length - 1], ! width, height, null); BufferCapabilities.FlipContents f = getCapabilities().getFlipContents(); // blit the back buffers. for (int i = backBuffers.length - 1; i > 0 ; i--) ! backBuffers[i] = backBuffers[i - 1]; // create new backmost buffer. if (f == BufferCapabilities.FlipContents.UNDEFINED) ! backBuffers[0] = c.createCompatibleVolatileImage(width, height); // create new backmost buffer and clear it to the background // color. if (f == BufferCapabilities.FlipContents.BACKGROUND) ! { ! backBuffers[0] = c.createCompatibleVolatileImage(width, height); ! backBuffers[0].getGraphics().clearRect(0, 0, width, height); ! } // FIXME: set the backmost buffer to the prior contents of the // front buffer. How do we retrieve the contents of the front *************** p *
  • the set of backward traversal *** 6802,6808 **** // set the backmost buffer to a copy of the new front buffer. if (f == BufferCapabilities.FlipContents.COPIED) ! backBuffers[0] = backBuffers[backBuffers.length - 1]; } /** --- 6802,6808 ---- // set the backmost buffer to a copy of the new front buffer. if (f == BufferCapabilities.FlipContents.COPIED) ! backBuffers[0] = backBuffers[backBuffers.length - 1]; } /** *************** p *
  • the set of backward traversal *** 6811,6825 **** protected void revalidate() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); for (int i = 0; i < backBuffers.length; i++) ! { ! int result = backBuffers[i].validate(c); ! if (result == VolatileImage.IMAGE_INCOMPATIBLE) ! backBuffers[i] = c.createCompatibleVolatileImage(width, height); ! } validatedContents = true; } --- 6811,6825 ---- protected void revalidate() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); for (int i = 0; i < backBuffers.length; i++) ! { ! int result = backBuffers[i].validate(c); ! if (result == VolatileImage.IMAGE_INCOMPATIBLE) ! backBuffers[i] = c.createCompatibleVolatileImage(width, height); ! } validatedContents = true; } *************** p *
  • the set of backward traversal *** 6832,6844 **** public boolean contentsLost() { for (int i = 0; i < backBuffers.length; i++) ! { ! if (backBuffers[i].contentsLost()) ! { ! validatedContents = false; ! return true; ! } ! } // we know that the buffer resources are valid now because we // just checked them validatedContents = true; --- 6832,6844 ---- public boolean contentsLost() { for (int i = 0; i < backBuffers.length; i++) ! { ! if (backBuffers[i].contentsLost()) ! { ! validatedContents = false; ! return true; ! } ! } // we know that the buffer resources are valid now because we // just checked them validatedContents = true; *************** p *
  • the set of backward traversal *** 6855,6873 **** public boolean contentsRestored() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); boolean imageRestored = false; for (int i = 0; i < backBuffers.length; i++) ! { ! int result = backBuffers[i].validate(c); ! if (result == VolatileImage.IMAGE_RESTORED) ! imageRestored = true; ! else if (result == VolatileImage.IMAGE_INCOMPATIBLE) ! return false; ! } // we know that the buffer resources are valid now because we // just checked them validatedContents = true; --- 6855,6873 ---- public boolean contentsRestored() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); boolean imageRestored = false; for (int i = 0; i < backBuffers.length; i++) ! { ! int result = backBuffers[i].validate(c); ! if (result == VolatileImage.IMAGE_RESTORED) ! imageRestored = true; ! else if (result == VolatileImage.IMAGE_INCOMPATIBLE) ! return false; ! } // we know that the buffer resources are valid now because we // just checked them validatedContents = true; *************** p *
  • the set of backward traversal *** 6939,6950 **** height = getHeight(); if (numBuffers > 1) ! createBuffers(numBuffers, caps); else ! { ! drawVBuffer = peer.createVolatileImage(width, height); ! drawBuffer = drawVBuffer; ! } } /** --- 6939,6950 ---- height = getHeight(); if (numBuffers > 1) ! createBuffers(numBuffers, caps); else ! { ! drawVBuffer = peer.createVolatileImage(width, height); ! drawBuffer = drawVBuffer; ! } } /** *************** p *
  • the set of backward traversal *** 6967,6980 **** throws AWTException { if (numBuffers <= 1) ! throw new IllegalArgumentException("FlipBufferStrategy.createBuffers:" ! + " numBuffers must be greater than" ! + " one."); if (!caps.isPageFlipping()) ! throw new IllegalArgumentException("FlipBufferStrategy.createBuffers:" ! + " flipping must be a specified" ! + " capability."); peer.createBuffers(numBuffers, caps); } --- 6967,6980 ---- throws AWTException { if (numBuffers <= 1) ! throw new IllegalArgumentException("FlipBufferStrategy.createBuffers:" ! + " numBuffers must be greater than" ! + " one."); if (!caps.isPageFlipping()) ! throw new IllegalArgumentException("FlipBufferStrategy.createBuffers:" ! + " flipping must be a specified" ! + " capability."); peer.createBuffers(numBuffers, caps); } *************** p *
  • the set of backward traversal *** 7033,7043 **** protected void revalidate() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); if (drawVBuffer.validate(c) == VolatileImage.IMAGE_INCOMPATIBLE) ! drawVBuffer = peer.createVolatileImage(width, height); validatedContents = true; } --- 7033,7043 ---- protected void revalidate() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); if (drawVBuffer.validate(c) == VolatileImage.IMAGE_INCOMPATIBLE) ! drawVBuffer = peer.createVolatileImage(width, height); validatedContents = true; } *************** p *
  • the set of backward traversal *** 7050,7059 **** public boolean contentsLost() { if (drawVBuffer.contentsLost()) ! { ! validatedContents = false; ! return true; ! } // we know that the buffer resources are valid now because we // just checked them validatedContents = true; --- 7050,7059 ---- public boolean contentsLost() { if (drawVBuffer.contentsLost()) ! { ! validatedContents = false; ! return true; ! } // we know that the buffer resources are valid now because we // just checked them validatedContents = true; *************** p *
  • the set of backward traversal *** 7070,7086 **** public boolean contentsRestored() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); int result = drawVBuffer.validate(c); boolean imageRestored = false; if (result == VolatileImage.IMAGE_RESTORED) ! imageRestored = true; else if (result == VolatileImage.IMAGE_INCOMPATIBLE) ! return false; // we know that the buffer resources are valid now because we // just checked them --- 7070,7086 ---- public boolean contentsRestored() { GraphicsConfiguration c = ! GraphicsEnvironment.getLocalGraphicsEnvironment() ! .getDefaultScreenDevice().getDefaultConfiguration(); int result = drawVBuffer.validate(c); boolean imageRestored = false; if (result == VolatileImage.IMAGE_RESTORED) ! imageRestored = true; else if (result == VolatileImage.IMAGE_INCOMPATIBLE) ! return false; // we know that the buffer resources are valid now because we // just checked them diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Container.java gcc-4.6.0/libjava/classpath/java/awt/Container.java *** gcc-4.5.2/libjava/classpath/java/awt/Container.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/Container.java Tue Jan 11 19:46:05 2011 *************** public class Container extends Component *** 330,336 **** if (component == null) component = new Component[4]; // FIXME, better initial size? ! // This isn't the most efficient implementation. We could do less // copying when growing the array. It probably doesn't matter. if (ncomponents >= component.length) --- 330,336 ---- if (component == null) component = new Component[4]; // FIXME, better initial size? ! // This isn't the most efficient implementation. We could do less // copying when growing the array. It probably doesn't matter. if (ncomponents >= component.length) *************** public class Container extends Component *** 340,346 **** System.arraycopy(component, 0, c, 0, ncomponents); component = c; } ! if (index == -1) component[ncomponents++] = comp; else --- 340,346 ---- System.arraycopy(component, 0, c, 0, ncomponents); component = c; } ! if (index == -1) component[ncomponents++] = comp; else *************** public class Container extends Component *** 379,386 **** // Notify the layout manager. if (layoutMgr != null) { ! // If we have a LayoutManager2 the constraints are "real", ! // otherwise they are the "name" of the Component to add. if (layoutMgr instanceof LayoutManager2) { LayoutManager2 lm2 = (LayoutManager2) layoutMgr; --- 379,386 ---- // Notify the layout manager. if (layoutMgr != null) { ! // If we have a LayoutManager2 the constraints are "real", ! // otherwise they are the "name" of the Component to add. if (layoutMgr instanceof LayoutManager2) { LayoutManager2 lm2 = (LayoutManager2) layoutMgr; *************** public class Container extends Component *** 990,1010 **** } /** ! * Returns all registered {@link EventListener}s of the given * listenerType. * ! * @param listenerType the class of listeners to filter (null * not permitted). ! * * @return An array of registered listeners. ! * * @throws ClassCastException if listenerType does not implement * the {@link EventListener} interface. ! * @throws NullPointerException if listenerType is * null. ! * * @see #getContainerListeners() ! * * @since 1.3 */ public T[] getListeners(Class listenerType) --- 990,1010 ---- } /** ! * Returns all registered {@link EventListener}s of the given * listenerType. * ! * @param listenerType the class of listeners to filter (null * not permitted). ! * * @return An array of registered listeners. ! * * @throws ClassCastException if listenerType does not implement * the {@link EventListener} interface. ! * @throws NullPointerException if listenerType is * null. ! * * @see #getContainerListeners() ! * * @since 1.3 */ public T[] getListeners(Class listenerType) *************** public class Container extends Component *** 1080,1090 **** * child component claims the point, the container itself is returned, * unless the point does not exist within this container, in which * case null is returned. ! * * When components overlap, the first component is returned. The component ! * that is closest to (x, y), containing that location, is returned. * Heavyweight components take precedence of lightweight components. ! * * This function does not ignore invisible components. If there is an invisible * component at (x,y), it will be returned. * --- 1080,1090 ---- * child component claims the point, the container itself is returned, * unless the point does not exist within this container, in which * case null is returned. ! * * When components overlap, the first component is returned. The component ! * that is closest to (x, y), containing that location, is returned. * Heavyweight components take precedence of lightweight components. ! * * This function does not ignore invisible components. If there is an invisible * component at (x,y), it will be returned. * *************** public class Container extends Component *** 1133,1146 **** * child component claims the point, the container itself is returned, * unless the point does not exist within this container, in which * case null is returned. ! * * When components overlap, the first component is returned. The component ! * that is closest to (x, y), containing that location, is returned. * Heavyweight components take precedence of lightweight components. ! * * This function does not ignore invisible components. If there is an invisible * component at (x,y), it will be returned. ! * * @param x The x position of the point to return the component at. * @param y The y position of the point to return the component at. * --- 1133,1146 ---- * child component claims the point, the container itself is returned, * unless the point does not exist within this container, in which * case null is returned. ! * * When components overlap, the first component is returned. The component ! * that is closest to (x, y), containing that location, is returned. * Heavyweight components take precedence of lightweight components. ! * * This function does not ignore invisible components. If there is an invisible * component at (x,y), it will be returned. ! * * @param x The x position of the point to return the component at. * @param y The y position of the point to return the component at. * *************** public class Container extends Component *** 1155,1161 **** { if (!contains (x, y)) return null; ! // First find the component closest to (x,y) that is a heavyweight. for (int i = 0; i < ncomponents; ++i) { --- 1155,1161 ---- { if (!contains (x, y)) return null; ! // First find the component closest to (x,y) that is a heavyweight. for (int i = 0; i < ncomponents; ++i) { *************** public class Container extends Component *** 1165,1171 **** if (comp.contains (x2, y2) && !comp.isLightweight()) return comp; } ! // if a heavyweight component is not found, look for a lightweight // closest to (x,y). for (int i = 0; i < ncomponents; ++i) --- 1165,1171 ---- if (comp.contains (x2, y2) && !comp.isLightweight()) return comp; } ! // if a heavyweight component is not found, look for a lightweight // closest to (x,y). for (int i = 0; i < ncomponents; ++i) *************** public class Container extends Component *** 1176,1182 **** if (comp.contains (x2, y2) && comp.isLightweight()) return comp; } ! return this; } } --- 1176,1182 ---- if (comp.contains (x2, y2) && comp.isLightweight()) return comp; } ! return this; } } *************** public class Container extends Component *** 1190,1201 **** * case null is returned. * * The top-most child component is returned in the case where components overlap. ! * This is determined by finding the component closest to (x,y) and contains * that location. Heavyweight components take precedence of lightweight components. ! * * This function does not ignore invisible components. If there is an invisible * component at (x,y), it will be returned. ! * * @param p The point to return the component at. * @return The component containing the specified point, or null * if there is no such point. --- 1190,1201 ---- * case null is returned. * * The top-most child component is returned in the case where components overlap. ! * This is determined by finding the component closest to (x,y) and contains * that location. Heavyweight components take precedence of lightweight components. ! * * This function does not ignore invisible components. If there is an invisible * component at (x,y), it will be returned. ! * * @param p The point to return the component at. * @return The component containing the specified point, or null * if there is no such point. *************** public class Container extends Component *** 1206,1224 **** } /** ! * Locates the visible child component that contains the specified position. * The top-most child component is returned in the case where there is overlap * in the components. If the containing child component is a Container, ! * this method will continue searching for the deepest nested child * component. Components which are not visible are ignored during the search. ! * ! * findComponentAt differs from getComponentAt, because it recursively * searches a Container's children. ! * * @param x - x coordinate * @param y - y coordinate ! * @return null if the component does not contain the position. ! * If there is no child component at the requested point and the point is * within the bounds of the container the container itself is returned. */ public Component findComponentAt(int x, int y) --- 1206,1224 ---- } /** ! * Locates the visible child component that contains the specified position. * The top-most child component is returned in the case where there is overlap * in the components. If the containing child component is a Container, ! * this method will continue searching for the deepest nested child * component. Components which are not visible are ignored during the search. ! * ! * findComponentAt differs from getComponentAt, because it recursively * searches a Container's children. ! * * @param x - x coordinate * @param y - y coordinate ! * @return null if the component does not contain the position. ! * If there is no child component at the requested point and the point is * within the bounds of the container the container itself is returned. */ public Component findComponentAt(int x, int y) *************** public class Container extends Component *** 1252,1271 **** return this; } } ! /** ! * Locates the visible child component that contains the specified position. * The top-most child component is returned in the case where there is overlap * in the components. If the containing child component is a Container, ! * this method will continue searching for the deepest nested child * component. Components which are not visible are ignored during the search. ! * ! * findComponentAt differs from getComponentAt, because it recursively * searches a Container's children. ! * * @param p - the component's location ! * @return null if the component does not contain the position. ! * If there is no child component at the requested point and the point is * within the bounds of the container the container itself is returned. */ public Component findComponentAt(Point p) --- 1252,1271 ---- return this; } } ! /** ! * Locates the visible child component that contains the specified position. * The top-most child component is returned in the case where there is overlap * in the components. If the containing child component is a Container, ! * this method will continue searching for the deepest nested child * component. Components which are not visible are ignored during the search. ! * ! * findComponentAt differs from getComponentAt, because it recursively * searches a Container's children. ! * * @param p - the component's location ! * @return null if the component does not contain the position. ! * If there is no child component at the requested point and the point is * within the bounds of the container the container itself is returned. */ public Component findComponentAt(Point p) *************** public class Container extends Component *** 1324,1333 **** while (true) { if (comp == null) ! return false; comp = comp.getParent(); if (comp == this) ! return true; } } } --- 1324,1333 ---- while (true) { if (comp == null) ! return false; comp = comp.getParent(); if (comp == this) ! return true; } } } *************** public class Container extends Component *** 1401,1407 **** * @since 1.4 */ public void setFocusTraversalKeys(int id, ! Set keystrokes) { if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && --- 1401,1407 ---- * @since 1.4 */ public void setFocusTraversalKeys(int id, ! Set keystrokes) { if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && *************** public class Container extends Component *** 1495,1501 **** focusTraversalKeys[id] = keystrokes; } ! /** * Returns the Set of focus traversal keys for a given traversal operation for * this Container. --- 1495,1501 ---- focusTraversalKeys[id] = keystrokes; } ! /** * Returns the Set of focus traversal keys for a given traversal operation for * this Container. *************** public class Container extends Component *** 1619,1632 **** { Container ancestor = getFocusCycleRootAncestor (); ! if (ancestor != this && ancestor != null) ! return ancestor.getFocusTraversalPolicy (); ! else ! { ! KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ! return manager.getDefaultFocusTraversalPolicy (); ! } } else return focusTraversalPolicy; --- 1619,1632 ---- { Container ancestor = getFocusCycleRootAncestor (); ! if (ancestor != this && ancestor != null) ! return ancestor.getFocusTraversalPolicy (); ! else ! { ! KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ! return manager.getDefaultFocusTraversalPolicy (); ! } } else return focusTraversalPolicy; *************** public class Container extends Component *** 1692,1698 **** * @param b true if this container provides a focus traversal * policy, false when the root container's focus * traversal policy should be used ! * * @see #isFocusTraversalPolicyProvider() * * @since 1.5 --- 1692,1698 ---- * @param b true if this container provides a focus traversal * policy, false when the root container's focus * traversal policy should be used ! * * @see #isFocusTraversalPolicyProvider() * * @since 1.5 *************** public class Container extends Component *** 1754,1760 **** for (int i = 0; i < ncomponents; i++) { if (component[i] instanceof Container) ! ((Container) component[i]).applyComponentOrientation(orientation); else component[i].setComponentOrientation(orientation); } --- 1754,1760 ---- for (int i = 0; i < ncomponents; i++) { if (component[i] instanceof Container) ! ((Container) component[i]).applyComponentOrientation(orientation); else component[i].setComponentOrientation(orientation); } *************** public class Container extends Component *** 1892,1898 **** Component comp = component[i]; boolean applicable = comp.isVisible() && (comp.isLightweight() || ! lightweightOnly); ! if (applicable) visitChild(gfx, visitor, comp); } --- 1892,1898 ---- Component comp = component[i]; boolean applicable = comp.isVisible() && (comp.isLightweight() || ! lightweightOnly); ! if (applicable) visitChild(gfx, visitor, comp); } *************** public class Container extends Component *** 1916,1922 **** Component comp) { Rectangle bounds = comp.getBounds(); ! if(!gfx.hitClip(bounds.x,bounds.y, bounds.width, bounds.height)) return; Graphics g2 = gfx.create(bounds.x, bounds.y, bounds.width, --- 1916,1922 ---- Component comp) { Rectangle bounds = comp.getBounds(); ! if(!gfx.hitClip(bounds.x,bounds.y, bounds.width, bounds.height)) return; Graphics g2 = gfx.create(bounds.x, bounds.y, bounds.width, *************** public class Container extends Component *** 1939,1945 **** */ void dispatchEventImpl(AWTEvent e) { ! LightweightDispatcher dispatcher = LightweightDispatcher.getInstance(); if (! isLightweight() && dispatcher.dispatchEvent(e)) { // Some lightweight descendent got this event dispatched. Consume --- 1939,1945 ---- */ void dispatchEventImpl(AWTEvent e) { ! LightweightDispatcher dispatcher = LightweightDispatcher.getInstance(); if (! isLightweight() && dispatcher.dispatchEvent(e)) { // Some lightweight descendent got this event dispatched. Consume *************** public class Container extends Component *** 1980,1990 **** */ boolean eventTypeEnabled(int eventId) { ! if(eventId <= ContainerEvent.CONTAINER_LAST && eventId >= ContainerEvent.CONTAINER_FIRST) return containerListener != null || (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0; ! else return super.eventTypeEnabled(eventId); } --- 1980,1990 ---- */ boolean eventTypeEnabled(int eventId) { ! if(eventId <= ContainerEvent.CONTAINER_LAST && eventId >= ContainerEvent.CONTAINER_FIRST) return containerListener != null || (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0; ! else return super.eventTypeEnabled(eventId); } *************** public class Container extends Component *** 2199,2205 **** static class GfxPaintVisitor extends GfxVisitor { public static final GfxVisitor INSTANCE = new GfxPaintVisitor(); ! public void visit(Component c, Graphics gfx) { c.paint(gfx); --- 2199,2205 ---- static class GfxPaintVisitor extends GfxVisitor { public static final GfxVisitor INSTANCE = new GfxPaintVisitor(); ! public void visit(Component c, Graphics gfx) { c.paint(gfx); *************** public class Container extends Component *** 2209,2215 **** static class GfxPrintVisitor extends GfxVisitor { public static final GfxVisitor INSTANCE = new GfxPrintVisitor(); ! public void visit(Component c, Graphics gfx) { c.print(gfx); --- 2209,2215 ---- static class GfxPrintVisitor extends GfxVisitor { public static final GfxVisitor INSTANCE = new GfxPrintVisitor(); ! public void visit(Component c, Graphics gfx) { c.print(gfx); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/ContainerOrderFocusTraversalPolicy.java gcc-4.6.0/libjava/classpath/java/awt/ContainerOrderFocusTraversalPolicy.java *** gcc-4.5.2/libjava/classpath/java/awt/ContainerOrderFocusTraversalPolicy.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/ContainerOrderFocusTraversalPolicy.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ContainerOrderFocusTraversalPolicy.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ContainerOrderFocusTraversalPolicy.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class ContainerOrderFocusTraversa *** 108,128 **** Container prevAncestor = ancestor; while (ancestor != root) { ! ancestor = current.getFocusCycleRootAncestor (); ! if (ancestor == prevAncestor) ! { // We've reached the top focus cycle root ancestor. Check // if it is root. if (ancestor == null) ancestor = root; else if (ancestor != root) ! throw new IllegalArgumentException ("the given container is not" ! + " a focus cycle root of the" ! + " current component"); else break; ! } ! prevAncestor = ancestor; } // FIXME: is this the right thing to do here? It moves the context --- 108,128 ---- Container prevAncestor = ancestor; while (ancestor != root) { ! ancestor = current.getFocusCycleRootAncestor (); ! if (ancestor == prevAncestor) ! { // We've reached the top focus cycle root ancestor. Check // if it is root. if (ancestor == null) ancestor = root; else if (ancestor != root) ! throw new IllegalArgumentException ("the given container is not" ! + " a focus cycle root of the" ! + " current component"); else break; ! } ! prevAncestor = ancestor; } // FIXME: is this the right thing to do here? It moves the context *************** public class ContainerOrderFocusTraversa *** 151,157 **** componentIndex = i; } ! // Search forward for the next acceptable component. // Search through all components at least one time // i.e. start at componentIndex + 1 --> nComponents -1 --> 0 ---> componentIndex int i = componentIndex + 1; --- 151,157 ---- componentIndex = i; } ! // Search forward for the next acceptable component. // Search through all components at least one time // i.e. start at componentIndex + 1 --> nComponents -1 --> 0 ---> componentIndex int i = componentIndex + 1; *************** public class ContainerOrderFocusTraversa *** 159,182 **** Component next = getNextAvailableComponent(components, i, end); if (next != null) return next; ! // Now check remainder of components from 0 to componentIndex i = 0; end = componentIndex; next = getNextAvailableComponent(components, i, end); if (next != null) ! return next; ! // No focusable components after current in its Container. So go // to the next Component after current's Container (parent). Component result = getComponentAfter (root, parent); return result; } } ! /** * Gets the next available component in the array between the given range. ! * * @param components - the array of components. * @param start - where to start * @param end - where to end --- 159,182 ---- Component next = getNextAvailableComponent(components, i, end); if (next != null) return next; ! // Now check remainder of components from 0 to componentIndex i = 0; end = componentIndex; next = getNextAvailableComponent(components, i, end); if (next != null) ! return next; ! // No focusable components after current in its Container. So go // to the next Component after current's Container (parent). Component result = getComponentAfter (root, parent); return result; } } ! /** * Gets the next available component in the array between the given range. ! * * @param components - the array of components. * @param start - where to start * @param end - where to end *************** public class ContainerOrderFocusTraversa *** 207,213 **** /** * Gets the previous available component in the array between the given range. ! * * @param components - the array of components. * @param start - where to start * @param end - where to end --- 207,213 ---- /** * Gets the previous available component in the array between the given range. ! * * @param components - the array of components. * @param start - where to start * @param end - where to end *************** public class ContainerOrderFocusTraversa *** 215,221 **** */ Component getPrevAvailableComponent(Component[] components, int start, int end) { ! while (start >= end) { Component c = components[start]; if (c.visible && c.isDisplayable() && c.enabled && c.focusable) --- 215,221 ---- */ Component getPrevAvailableComponent(Component[] components, int start, int end) { ! while (start >= end) { Component c = components[start]; if (c.visible && c.isDisplayable() && c.enabled && c.focusable) *************** public class ContainerOrderFocusTraversa *** 238,244 **** * Returns the Component that should receive the focus before * current. root must be a focus cycle root of * current. ! * * @param root a focus cycle root of current * @param current a (possibly indirect) child of root, or root itself * @return the previous Component in the focus traversal order for root, or --- 238,244 ---- * Returns the Component that should receive the focus before * current. root must be a focus cycle root of * current. ! * * @param root a focus cycle root of current * @param current a (possibly indirect) child of root, or root itself * @return the previous Component in the focus traversal order for root, or *************** public class ContainerOrderFocusTraversa *** 260,280 **** Container prevAncestor = ancestor; while (ancestor != root) { ! ancestor = current.getFocusCycleRootAncestor (); ! if (ancestor == prevAncestor) ! { ! // We've reached the top focus cycle root ancestor. Check ! // if it is root. if (ancestor == null) ancestor = root; else if (ancestor != root) ! throw new IllegalArgumentException ("the given container is not" ! + " a focus cycle root of the" ! + " current component"); ! else ! break; ! } ! prevAncestor = ancestor; } // FIXME: is this the right thing to do here? It moves the context --- 260,280 ---- Container prevAncestor = ancestor; while (ancestor != root) { ! ancestor = current.getFocusCycleRootAncestor (); ! if (ancestor == prevAncestor) ! { ! // We've reached the top focus cycle root ancestor. Check ! // if it is root. if (ancestor == null) ancestor = root; else if (ancestor != root) ! throw new IllegalArgumentException ("the given container is not" ! + " a focus cycle root of the" ! + " current component"); ! else ! break; ! } ! prevAncestor = ancestor; } // FIXME: is this the right thing to do here? It moves the context *************** public class ContainerOrderFocusTraversa *** 311,323 **** Component prev = getPrevAvailableComponent(components, i, end); if (prev != null) return prev; ! // Now check remainder of components i = numComponents -1; end = componentIndex; prev = getPrevAvailableComponent(components, i, end); if (prev != null) ! return prev; // No focusable components before current in its Container. So go // to the previous Component before current's Container (parent). --- 311,323 ---- Component prev = getPrevAvailableComponent(components, i, end); if (prev != null) return prev; ! // Now check remainder of components i = numComponents -1; end = componentIndex; prev = getPrevAvailableComponent(components, i, end); if (prev != null) ! return prev; // No focusable components before current in its Container. So go // to the previous Component before current's Container (parent). *************** public class ContainerOrderFocusTraversa *** 369,375 **** return first; } else if (accept(component)) ! return component; } return null; --- 369,375 ---- return first; } else if (accept(component)) ! return component; } return null; *************** public class ContainerOrderFocusTraversa *** 399,412 **** return root; Component[] componentArray = root.getComponents (); ! for (int i = componentArray.length - 1; i >= 0; i--) { Component component = componentArray [i]; ! ! if (component.visible && component.isDisplayable() && component.enabled && component.focusable) ! return component; if (component instanceof Container) { --- 399,412 ---- return root; Component[] componentArray = root.getComponents (); ! for (int i = componentArray.length - 1; i >= 0; i--) { Component component = componentArray [i]; ! ! if (component.visible && component.isDisplayable() && component.enabled && component.focusable) ! return component; if (component instanceof Container) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Cursor.java gcc-4.6.0/libjava/classpath/java/awt/Cursor.java *** gcc-4.5.2/libjava/classpath/java/awt/Cursor.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/Cursor.java Tue Jan 11 19:46:05 2011 *************** public class Cursor implements java.io.S *** 125,131 **** "North Resize Cursor", "South Resize Cursor", "West Resize Cursor", "East Resize Cursor", "Hand Cursor", "Move Cursor" }; ! public static final int CUSTOM_CURSOR = 0xFFFFFFFF; private static final int PREDEFINED_COUNT = 14; --- 125,131 ---- "North Resize Cursor", "South Resize Cursor", "West Resize Cursor", "East Resize Cursor", "Hand Cursor", "Move Cursor" }; ! public static final int CUSTOM_CURSOR = 0xFFFFFFFF; private static final int PREDEFINED_COUNT = 14; *************** public class Cursor implements java.io.S *** 154,164 **** this.type = type; name = NAMES[type]; ! // FIXME: lookup? } ! /** This constructor is used internally only. * Application code should call Toolkit.createCustomCursor(). */ protected Cursor(String name) --- 154,164 ---- this.type = type; name = NAMES[type]; ! // FIXME: lookup? } ! /** This constructor is used internally only. * Application code should call Toolkit.createCustomCursor(). */ protected Cursor(String name) *************** public class Cursor implements java.io.S *** 233,239 **** public String toString() { return (this.getClass() ! + "[type=" + getType() ! + ",name=" + getName() + "]"); } } --- 233,239 ---- public String toString() { return (this.getClass() ! + "[type=" + getType() ! + ",name=" + getName() + "]"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/DefaultFocusTraversalPolicy.java gcc-4.6.0/libjava/classpath/java/awt/DefaultFocusTraversalPolicy.java *** gcc-4.5.2/libjava/classpath/java/awt/DefaultFocusTraversalPolicy.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/awt/DefaultFocusTraversalPolicy.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DefaultFocusTraversalPolicy.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DefaultFocusTraversalPolicy.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DefaultFocusTraversalPolicy *** 90,103 **** protected boolean accept (Component comp) { if (comp.visible ! && comp.isDisplayable () ! && comp.enabled) { ! if (comp.isFocusTraversableOverridden != 0 ! && (comp.isFocusTraversable () || comp.isFocusable())) return true; ! ! if (!(comp instanceof Canvas || comp instanceof Panel || comp instanceof Label || comp instanceof ScrollPane --- 90,103 ---- protected boolean accept (Component comp) { if (comp.visible ! && comp.isDisplayable () ! && comp.enabled) { ! if (comp.isFocusTraversableOverridden != 0 ! && (comp.isFocusTraversable () || comp.isFocusable())) return true; ! ! if (!(comp instanceof Canvas || comp instanceof Panel || comp instanceof Label || comp instanceof ScrollPane diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java gcc-4.6.0/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java *** gcc-4.5.2/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DefaultKeyboardFocusManager.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DefaultKeyboardFocusManager.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DefaultKeyboardFocusManager *** 146,152 **** */ private AWTKeyStroke waitForKeyStroke = null; ! /** The {@link java.util.SortedSet} of current * {@link EventDelayRequest}s. */ private SortedSet delayRequests = new TreeSet (); --- 146,152 ---- */ private AWTKeyStroke waitForKeyStroke = null; ! /** The {@link java.util.SortedSet} of current * {@link EventDelayRequest}s. */ private SortedSet delayRequests = new TreeSet (); *************** public class DefaultKeyboardFocusManager *** 339,347 **** Component focusOwner = getFocusOwner(); if (focusOwner == null) focusOwner = getFocusedWindow(); ! if (focusOwner != null) ! redispatchEvent(focusOwner, e); // Loop through all registered KeyEventPostProcessors, giving // each a chance to process this event. --- 339,347 ---- Component focusOwner = getFocusOwner(); if (focusOwner == null) focusOwner = getFocusedWindow(); ! if (focusOwner != null) ! redispatchEvent(focusOwner, e); // Loop through all registered KeyEventPostProcessors, giving // each a chance to process this event. *************** public class DefaultKeyboardFocusManager *** 358,364 **** // MenuShortcut. if (postProcessKeyEvent (e)) return true; ! // Always return true. return true; } --- 358,364 ---- // MenuShortcut. if (postProcessKeyEvent (e)) return true; ! // Always return true. return true; } *************** public class DefaultKeyboardFocusManager *** 469,494 **** if (forwardKeystrokes.contains (eventKeystroke)) { ! waitForKeyStroke = oppositeKeystroke; focusNextComponent (comp); e.consume (); } else if (backwardKeystrokes.contains (eventKeystroke)) { ! waitForKeyStroke = oppositeKeystroke; focusPreviousComponent (comp); e.consume (); } else if (upKeystrokes.contains (eventKeystroke)) { ! waitForKeyStroke = oppositeKeystroke; upFocusCycle (comp); e.consume (); } else if (comp instanceof Container && downKeystrokes.contains (eventKeystroke)) { ! waitForKeyStroke = oppositeKeystroke; downFocusCycle ((Container) comp); e.consume (); } --- 469,494 ---- if (forwardKeystrokes.contains (eventKeystroke)) { ! waitForKeyStroke = oppositeKeystroke; focusNextComponent (comp); e.consume (); } else if (backwardKeystrokes.contains (eventKeystroke)) { ! waitForKeyStroke = oppositeKeystroke; focusPreviousComponent (comp); e.consume (); } else if (upKeystrokes.contains (eventKeystroke)) { ! waitForKeyStroke = oppositeKeystroke; upFocusCycle (comp); e.consume (); } else if (comp instanceof Container && downKeystrokes.contains (eventKeystroke)) { ! waitForKeyStroke = oppositeKeystroke; downFocusCycle ((Container) comp); e.consume (); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Desktop.java gcc-4.6.0/libjava/classpath/java/awt/Desktop.java *** gcc-4.5.2/libjava/classpath/java/awt/Desktop.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/Desktop.java Tue Jan 11 19:46:05 2011 *************** import java.net.URI; *** 53,63 **** * specified file type. For example, opening an odf file results in launching * OpenOffice. If an operation is not supported, or the application fails to * launch, an exception is generated. ! * * Implementation note: As this class is used to manage Desktop * integration, we provide some extension to configure the behaviour of this * class depending on the type of dektop that is detected.
    ! * * First of all, we support 5 system properties that can be used to define * the application to launch in any given case. These properties are:
    *
    --- 53,63 ---- * specified file type. For example, opening an odf file results in launching * OpenOffice. If an operation is not supported, or the application fails to * launch, an exception is generated. ! * * Implementation note: As this class is used to manage Desktop * integration, we provide some extension to configure the behaviour of this * class depending on the type of dektop that is detected.
    ! * * First of all, we support 5 system properties that can be used to define * the application to launch in any given case. These properties are:
    *
    *************** import java.net.URI; *** 91,98 **** *

    * * gconftool-2 -g /apps/classpath/gnu/java/awt/peer/Desktop/html/command ! * ! * * @author Mario Torre * @since 1.6 */ --- 91,98 ---- *

    * * gconftool-2 -g /apps/classpath/gnu/java/awt/peer/Desktop/html/command ! * ! * * @author Mario Torre * @since 1.6 */ *************** public class Desktop *** 100,110 **** { /** * Represents an action type supported by a platform. ! * * To determine if a given action is supported by the platform, * use the Desktop.isSupported(java.awt.Desktop.Action) * method. ! * * @author Mario Torre */ public enum Action --- 100,110 ---- { /** * Represents an action type supported by a platform. ! * * To determine if a given action is supported by the platform, * use the Desktop.isSupported(java.awt.Desktop.Action) * method. ! * * @author Mario Torre */ public enum Action *************** public class Desktop *** 118,132 **** { /* nothing to be done */ } ! /** * Returns an instance of the Desktop Class. ! * ! * If this implementation does not support Desktop, an * UnsupportedOperationException will be thrown. * Also, an HeadlessException will be generated if * GraphicsEnvironment.isHeadless() returns true. ! * * @throws UnsupportedOperationException * @throws HeadlessException */ --- 118,132 ---- { /* nothing to be done */ } ! /** * Returns an instance of the Desktop Class. ! * ! * If this implementation does not support Desktop, an * UnsupportedOperationException will be thrown. * Also, an HeadlessException will be generated if * GraphicsEnvironment.isHeadless() returns true. ! * * @throws UnsupportedOperationException * @throws HeadlessException */ *************** public class Desktop *** 135,157 **** { if (GraphicsEnvironment.isHeadless()) throw new HeadlessException(); ! if (!Desktop.isDesktopSupported()) throw new UnsupportedOperationException(); ! Desktop desktop = new Desktop(); desktop.peer = Toolkit.getDefaultToolkit().createDesktopPeer(desktop); ! return desktop; } /** * Check if this implementation supports Desktop. * If true, use getDesktop to get an instance of this class. ! * * This implementation will return false when GraphicsEnvironment.isHeadless * returns true. ! * * @return true if this class is supported on the current platform; * false otherwise */ --- 135,157 ---- { if (GraphicsEnvironment.isHeadless()) throw new HeadlessException(); ! if (!Desktop.isDesktopSupported()) throw new UnsupportedOperationException(); ! Desktop desktop = new Desktop(); desktop.peer = Toolkit.getDefaultToolkit().createDesktopPeer(desktop); ! return desktop; } /** * Check if this implementation supports Desktop. * If true, use getDesktop to get an instance of this class. ! * * This implementation will return false when GraphicsEnvironment.isHeadless * returns true. ! * * @return true if this class is supported on the current platform; * false otherwise */ *************** public class Desktop *** 159,171 **** { if (GraphicsEnvironment.isHeadless()) return false; ! return true; } ! /** * Check if the given Action is supported by this implementation. ! * * @param action * @return */ --- 159,171 ---- { if (GraphicsEnvironment.isHeadless()) return false; ! return true; } ! /** * Check if the given Action is supported by this implementation. ! * * @param action * @return */ *************** public class Desktop *** 173,186 **** { return peer.isSupported(action); } ! /** * Launches the Desktop default browser to open the given uri. ! * * If a security manager exists and denies * AWTPermission("showWindowWithoutWarningBanner"),a SecurityException will * be generated. ! * * @param uri * @throws IOException */ --- 173,186 ---- { return peer.isSupported(action); } ! /** * Launches the Desktop default browser to open the given uri. ! * * If a security manager exists and denies * AWTPermission("showWindowWithoutWarningBanner"),a SecurityException will * be generated. ! * * @param uri * @throws IOException */ *************** public class Desktop *** 189,204 **** { peer.browse(uri); } ! /** * Launch the edit command to edit this file. ! * File should already exist before the editing starts. ! * * If a security manager exists and * SecurityManager.checkRead(java.lang.String) method denies read access to * the file, or SecurityManager.checkPrintJobAccess() method denies the * permission to print the file, a SecurityException will be generated. ! * * @param file * @throws IOException */ --- 189,204 ---- { peer.browse(uri); } ! /** * Launch the edit command to edit this file. ! * File should already exist before the editing starts. ! * * If a security manager exists and * SecurityManager.checkRead(java.lang.String) method denies read access to * the file, or SecurityManager.checkPrintJobAccess() method denies the * permission to print the file, a SecurityException will be generated. ! * * @param file * @throws IOException */ *************** public class Desktop *** 207,216 **** { peer.edit(file); } ! /** * Launches the Desktop default mailer. ! * * If a security manager exists and denies * AWTPermission("showWindowWithoutWarningBanner"), a SecurityException will * be generated. --- 207,216 ---- { peer.edit(file); } ! /** * Launches the Desktop default mailer. ! * * If a security manager exists and denies * AWTPermission("showWindowWithoutWarningBanner"), a SecurityException will * be generated. *************** public class Desktop *** 222,237 **** { peer.mail(); } ! /** * Launches the Desktop default mailer, with the given mailtoURI * as agrument. The mailtoURI must conform to the ! * {@link http://www.ietf.org/rfc/rfc2368.txt The mailto URL scheme (RFC 2368)} ! * * If a security manager exists and denies * AWTPermission("showWindowWithoutWarningBanner"), a SecurityException will * be generated. ! * * @param mailtoURI * @throws IOException */ --- 222,237 ---- { peer.mail(); } ! /** * Launches the Desktop default mailer, with the given mailtoURI * as agrument. The mailtoURI must conform to the ! * {@link http://www.ietf.org/rfc/rfc2368.txt The mailto URL scheme (RFC 2368)} ! * * If a security manager exists and denies * AWTPermission("showWindowWithoutWarningBanner"), a SecurityException will * be generated. ! * * @param mailtoURI * @throws IOException */ *************** public class Desktop *** 240,250 **** { peer.mail(mailtoURI); } ! /** * Launches the Desktop default application to open the given File. * If file is a directory, a file manager is launched. ! * * @param file * @throws IOException */ --- 240,250 ---- { peer.mail(mailtoURI); } ! /** * Launches the Desktop default application to open the given File. * If file is a directory, a file manager is launched. ! * * @param file * @throws IOException */ *************** public class Desktop *** 256,262 **** /** * Launch the print program to print this file. ! * * @param file * @throws IOException */ --- 256,262 ---- /** * Launch the print program to print this file. ! * * @param file * @throws IOException */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Dialog.java gcc-4.6.0/libjava/classpath/java/awt/Dialog.java *** gcc-4.5.2/libjava/classpath/java/awt/Dialog.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Dialog.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* Dialog.java -- An AWT dialog box ! Copyright (C) 1999, 2000, 2001, 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* Dialog.java -- An AWT dialog box ! Copyright (C) 1999, 2000, 2001, 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.accessibility.AccessibleSta *** 47,61 **** import javax.accessibility.AccessibleStateSet; /** ! * Dialog provides a top-level window normally used to receive * user input in applications. *

    * A dialog always has another top-level window as owner and is only visible ! * if this owner is visible to the user. The default layout of dialogs is the * BorderLayout. Dialogs can be modal (blocks user input to other * components) or non-modal (user input in other components are allowed). ! *

    ! * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@redhat.com) */ --- 47,61 ---- import javax.accessibility.AccessibleStateSet; /** ! * Dialog provides a top-level window normally used to receive * user input in applications. *

    * A dialog always has another top-level window as owner and is only visible ! * if this owner is visible to the user. The default layout of dialogs is the * BorderLayout. Dialogs can be modal (blocks user input to other * components) or non-modal (user input in other components are allowed). ! *

    ! * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@redhat.com) */ *************** public class Dialog extends Window *** 106,112 **** private boolean blocked = false; /** ! * Secondary EventQueue to handle AWT events while we are blocked for * modality in show. */ private EventQueue eq2 = null; --- 106,112 ---- private boolean blocked = false; /** ! * Secondary EventQueue to handle AWT events while we are blocked for * modality in show. */ private EventQueue eq2 = null; *************** public class Dialog extends Window *** 119,128 **** /** * Initializes a new instance of Dialog with the specified * parent, that is resizable and not modal, and which has no title. ! * * @param parent The parent frame of this dialog box. ! * @exception IllegalArgumentException If the owner's GraphicsConfiguration ! * is not from a screen device, or if owner is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns true. */ public Dialog(Frame parent) --- 119,128 ---- /** * Initializes a new instance of Dialog with the specified * parent, that is resizable and not modal, and which has no title. ! * * @param parent The parent frame of this dialog box. ! * @exception IllegalArgumentException If the owner's GraphicsConfiguration ! * is not from a screen device, or if owner is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns true. */ public Dialog(Frame parent) *************** public class Dialog extends Window *** 133,145 **** /** * Initializes a new instance of Dialog with the specified * parent and modality, that is resizable and which has no title. ! * * @param parent The parent frame of this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * * @exception IllegalArgumentException If the owner's GraphicsConfiguration ! * is not from a screen device, or if owner is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns true. */ public Dialog(Frame parent, boolean modal) --- 133,145 ---- /** * Initializes a new instance of Dialog with the specified * parent and modality, that is resizable and which has no title. ! * * @param parent The parent frame of this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * * @exception IllegalArgumentException If the owner's GraphicsConfiguration ! * is not from a screen device, or if owner is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns true. */ public Dialog(Frame parent, boolean modal) *************** public class Dialog extends Window *** 149,162 **** /** * Initializes a new instance of Dialog with the specified ! * parent, that is resizable and not modal, and which has the specified * title. ! * * @param parent The parent frame of this dialog box. * @param title The title string for this dialog box. ! * * @exception IllegalArgumentException If the owner's GraphicsConfiguration ! * is not from a screen device, or if owner is null. This exceptionnis * always thrown when GraphicsEnvironment.isHeadless() returns true. */ public Dialog(Frame parent, String title) --- 149,162 ---- /** * Initializes a new instance of Dialog with the specified ! * parent, that is resizable and not modal, and which has the specified * title. ! * * @param parent The parent frame of this dialog box. * @param title The title string for this dialog box. ! * * @exception IllegalArgumentException If the owner's GraphicsConfiguration ! * is not from a screen device, or if owner is null. This exceptionnis * always thrown when GraphicsEnvironment.isHeadless() returns true. */ public Dialog(Frame parent, String title) *************** public class Dialog extends Window *** 167,178 **** /** * Initializes a new instance of Dialog with the specified, * parent, title, and modality, that is resizable. ! * * @param parent The parent frame of this dialog box. * @param title The title string for this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * * @exception IllegalArgumentException If owner is null or * GraphicsEnvironment.isHeadless() returns true. */ --- 167,178 ---- /** * Initializes a new instance of Dialog with the specified, * parent, title, and modality, that is resizable. ! * * @param parent The parent frame of this dialog box. * @param title The title string for this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * * @exception IllegalArgumentException If owner is null or * GraphicsEnvironment.isHeadless() returns true. */ *************** public class Dialog extends Window *** 185,199 **** * Initializes a new instance of Dialog with the specified, * parent, title, modality and GraphicsConfiguration, that is * resizable. ! * * @param parent The parent frame of this dialog box. * @param title The title string for this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * @param gc The GraphicsConfiguration object to use. If ! * null the GraphicsConfiguration of the target * frame is used. ! * * @exception IllegalArgumentException If owner is null, the * GraphicsConfiguration is not a screen device or * GraphicsEnvironment.isHeadless() returns true. --- 185,199 ---- * Initializes a new instance of Dialog with the specified, * parent, title, modality and GraphicsConfiguration, that is * resizable. ! * * @param parent The parent frame of this dialog box. * @param title The title string for this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * @param gc The GraphicsConfiguration object to use. If ! * null the GraphicsConfiguration of the target * frame is used. ! * * @exception IllegalArgumentException If owner is null, the * GraphicsConfiguration is not a screen device or * GraphicsEnvironment.isHeadless() returns true. *************** public class Dialog extends Window *** 216,227 **** /** * Initializes a new instance of Dialog with the specified, * parent, that is resizable. ! * * @param owner The parent frame of this dialog box. ! * * @exception IllegalArgumentException If parent is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns true. ! * * @since 1.2 */ public Dialog(Dialog owner) --- 216,227 ---- /** * Initializes a new instance of Dialog with the specified, * parent, that is resizable. ! * * @param owner The parent frame of this dialog box. ! * * @exception IllegalArgumentException If parent is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns true. ! * * @since 1.2 */ public Dialog(Dialog owner) *************** public class Dialog extends Window *** 232,241 **** /** * Initializes a new instance of Dialog with the specified, * parent and title, that is resizable. ! * * @param owner The parent frame of this dialog box. * @param title The title string for this dialog box. ! * * @exception IllegalArgumentException If parent is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns * true. --- 232,241 ---- /** * Initializes a new instance of Dialog with the specified, * parent and title, that is resizable. ! * * @param owner The parent frame of this dialog box. * @param title The title string for this dialog box. ! * * @exception IllegalArgumentException If parent is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns * true. *************** public class Dialog extends Window *** 249,260 **** /** * Initializes a new instance of Dialog with the specified, * parent, title and modality, that is resizable. ! * * @param owner The parent frame of this dialog box. * @param title The title string for this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * * @exception IllegalArgumentException If parent is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns true. * @since 1.2 --- 249,260 ---- /** * Initializes a new instance of Dialog with the specified, * parent, title and modality, that is resizable. ! * * @param owner The parent frame of this dialog box. * @param title The title string for this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * * @exception IllegalArgumentException If parent is null. This exception is * always thrown when GraphicsEnvironment.isHeadless() returns true. * @since 1.2 *************** public class Dialog extends Window *** 268,286 **** * Initializes a new instance of Dialog with the specified, * parent, title, modality and GraphicsConfiguration, that is * resizable. ! * * @param parent The parent frame of this dialog box. * @param title The title string for this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * @param gc The GraphicsConfiguration object to use. If ! * null the GraphicsConfiguration of the target * frame is used. ! * * @exception IllegalArgumentException If parent is null, the ! * GraphicsConfiguration is not a screen device or * GraphicsEnvironment.isHeadless() returns true. ! * * @since 1.4 */ public Dialog(Dialog parent, String title, boolean modal, --- 268,286 ---- * Initializes a new instance of Dialog with the specified, * parent, title, modality and GraphicsConfiguration, that is * resizable. ! * * @param parent The parent frame of this dialog box. * @param title The title string for this dialog box. * @param modal true if this dialog box is modal, * false otherwise. ! * @param gc The GraphicsConfiguration object to use. If ! * null the GraphicsConfiguration of the target * frame is used. ! * * @exception IllegalArgumentException If parent is null, the ! * GraphicsConfiguration is not a screen device or * GraphicsEnvironment.isHeadless() returns true. ! * * @since 1.4 */ public Dialog(Dialog parent, String title, boolean modal, *************** public class Dialog extends Window *** 299,305 **** /** * Returns the title of this dialog box. ! * * @return The title of this dialog box. */ public String getTitle() --- 299,305 ---- /** * Returns the title of this dialog box. ! * * @return The title of this dialog box. */ public String getTitle() *************** public class Dialog extends Window *** 309,315 **** /** * Sets the title of this dialog box to the specified string. ! * * @param title the new title. If null an empty * title will be set. */ --- 309,315 ---- /** * Sets the title of this dialog box to the specified string. ! * * @param title the new title. If null an empty * title will be set. */ *************** public class Dialog extends Window *** 327,333 **** /** * Tests whether or not this dialog box is modal. ! * * @return true if this dialog box is modal, false * otherwise. */ --- 327,333 ---- /** * Tests whether or not this dialog box is modal. ! * * @return true if this dialog box is modal, false * otherwise. */ *************** public class Dialog extends Window *** 339,347 **** /** * Changes the modality of this dialog box. This can only be done before the * peer is created. ! * * @param modal true to make this dialog box modal, ! * false to make it non-modal. */ public void setModal(boolean modal) { --- 339,347 ---- /** * Changes the modality of this dialog box. This can only be done before the * peer is created. ! * * @param modal true to make this dialog box modal, ! * false to make it non-modal. */ public void setModal(boolean modal) { *************** public class Dialog extends Window *** 350,356 **** /** * Tests whether or not this dialog box is resizable. ! * * @return true if this dialog is resizable, * false otherwise. */ --- 350,356 ---- /** * Tests whether or not this dialog box is resizable. ! * * @return true if this dialog is resizable, * false otherwise. */ *************** public class Dialog extends Window *** 361,367 **** /** * Changes the resizability of this dialog box. ! * * @param resizable true to make this dialog resizable, * false to make it non-resizable. */ --- 361,367 ---- /** * Changes the resizability of this dialog box. ! * * @param resizable true to make this dialog resizable, * false to make it non-resizable. */ *************** public class Dialog extends Window *** 391,397 **** * dialog is hidden by someone calling hide or dispose. If this is the event * dispatching thread we must ensure that another event thread runs while the * one which invoked this method is blocked. ! * * @deprecated Use {@link Component#setVisible(boolean)} instead. */ public synchronized void show() --- 391,397 ---- * dialog is hidden by someone calling hide or dispose. If this is the event * dispatching thread we must ensure that another event thread runs while the * one which invoked this method is blocked. ! * * @deprecated Use {@link Component#setVisible(boolean)} instead. */ public synchronized void show() *************** public class Dialog extends Window *** 438,444 **** /** * Hides the Dialog and then causes show() to return if it is currently * blocked. ! * * @deprecated Use {@link Component#setVisible(boolean)} instead. */ public synchronized void hide() --- 438,444 ---- /** * Hides the Dialog and then causes show() to return if it is currently * blocked. ! * * @deprecated Use {@link Component#setVisible(boolean)} instead. */ public synchronized void hide() *************** public class Dialog extends Window *** 467,473 **** /** * Returns a debugging string for this component. ! * * @return A debugging string for this component. */ protected String paramString() --- 467,473 ---- /** * Returns a debugging string for this component. ! * * @return A debugging string for this component. */ protected String paramString() *************** public class Dialog extends Window *** 478,487 **** /** * Returns whether this frame is undecorated or not. ! * * @return true if this dialog is undecorated, * false otherwise. ! * * @since 1.4 */ public boolean isUndecorated() --- 478,487 ---- /** * Returns whether this frame is undecorated or not. ! * * @return true if this dialog is undecorated, * false otherwise. ! * * @since 1.4 */ public boolean isUndecorated() *************** public class Dialog extends Window *** 492,501 **** /** * Disables or enables decorations for this frame. This method can only be * called while the frame is not displayable. ! * * @param undecorated true to disable dialog decorations, * false otherwise. ! * * @exception IllegalComponentStateException If this frame is displayable. * @since 1.4 */ --- 492,501 ---- /** * Disables or enables decorations for this frame. This method can only be * called while the frame is not displayable. ! * * @param undecorated true to disable dialog decorations, * false otherwise. ! * * @exception IllegalComponentStateException If this frame is displayable. * @since 1.4 */ *************** public class Dialog extends Window *** 517,523 **** /** * Gets the role of this object. ! * @return AccessibleRole.DIALOG */ public AccessibleRole getAccessibleRole() { --- 517,523 ---- /** * Gets the role of this object. ! * @return AccessibleRole.DIALOG */ public AccessibleRole getAccessibleRole() { *************** public class Dialog extends Window *** 542,548 **** /** * Gets the AccessibleContext associated with this Dialog. The * context is created, if necessary. ! * * @return the associated context */ public AccessibleContext getAccessibleContext() --- 542,548 ---- /** * Gets the AccessibleContext associated with this Dialog. The * context is created, if necessary. ! * * @return the associated context */ public AccessibleContext getAccessibleContext() *************** public class Dialog extends Window *** 552,558 **** accessibleContext = new AccessibleAWTDialog(); return accessibleContext; } ! /** * Generate a unique name for this Dialog. * --- 552,558 ---- accessibleContext = new AccessibleAWTDialog(); return accessibleContext; } ! /** * Generate a unique name for this Dialog. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/DisplayMode.java gcc-4.6.0/libjava/classpath/java/awt/DisplayMode.java *** gcc-4.5.2/libjava/classpath/java/awt/DisplayMode.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/DisplayMode.java Tue Jan 11 19:46:05 2011 *************** public final class DisplayMode *** 147,155 **** public boolean equals (DisplayMode dm) { return (width == dm.width ! && height == dm.height ! && bitDepth == dm.bitDepth ! && refreshRate == dm.refreshRate); } /** --- 147,155 ---- public boolean equals (DisplayMode dm) { return (width == dm.width ! && height == dm.height ! && bitDepth == dm.bitDepth ! && refreshRate == dm.refreshRate); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Event.java gcc-4.6.0/libjava/classpath/java/awt/Event.java *** gcc-4.5.2/libjava/classpath/java/awt/Event.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/Event.java Tue Jan 11 19:46:05 2011 *************** public class Event implements java.io.Se *** 115,124 **** public Object arg; public int clickCount; ! boolean consumed; // Required by serialization spec. public Event evt; public int id; ! public int key; public int modifiers; public Object target; public long when; --- 115,124 ---- public Object arg; public int clickCount; ! boolean consumed; // Required by serialization spec. public Event evt; public int id; ! public int key; public int modifiers; public Object target; public long when; *************** public class Event implements java.io.Se *** 131,139 **** this.target = target; this.arg = arg; } ! ! public Event (Object target, long when, int id, int x, int y, int key, ! int modifiers) { this.target = target; this.when = when; --- 131,139 ---- this.target = target; this.arg = arg; } ! ! public Event (Object target, long when, int id, int x, int y, int key, ! int modifiers) { this.target = target; this.when = when; *************** public class Event implements java.io.Se *** 144,151 **** this.modifiers = modifiers; } ! public Event (Object target, long when, int id, int x, int y, int key, ! int modifiers, Object arg) { this (target, when, id, x, y, key, modifiers); this.arg = arg; --- 144,151 ---- this.modifiers = modifiers; } ! public Event (Object target, long when, int id, int x, int y, int key, ! int modifiers, Object arg) { this (target, when, id, x, y, key, modifiers); this.arg = arg; *************** public class Event implements java.io.Se *** 167,173 **** + ",target=" + target + ",arg=" + arg; } ! public boolean shiftDown() { return ((modifiers & SHIFT_MASK) == 0 ? false : true); } --- 167,173 ---- + ",target=" + target + ",arg=" + arg; } ! public boolean shiftDown() { return ((modifiers & SHIFT_MASK) == 0 ? false : true); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/EventDispatchThread.java gcc-4.6.0/libjava/classpath/java/awt/EventDispatchThread.java *** gcc-4.5.2/libjava/classpath/java/awt/EventDispatchThread.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/EventDispatchThread.java Tue Jan 11 19:46:05 2011 *************** class EventDispatchThread extends Thread *** 65,72 **** System.getProperty("gnu.awt.dispatchthread.priority"); if (priorityString != null) { ! priority = Integer.parseInt(priorityString); ! } } catch (NumberFormatException ex) { --- 65,72 ---- System.getProperty("gnu.awt.dispatchthread.priority"); if (priorityString != null) { ! priority = Integer.parseInt(priorityString); ! } } catch (NumberFormatException ex) { *************** class EventDispatchThread extends Thread *** 83,107 **** while (true) { try ! { ! AWTEvent evt = queue.getNextEvent(); queue.dispatchEvent(evt); ! } catch (ThreadDeath death) { // If someone wants to kill us, let them. return; } ! catch (InterruptedException ie) ! { ! // We are interrupted when we should finish executing ! return; ! } ! catch (Throwable x) ! { ! System.err.println("Exception during event dispatch:"); ! x.printStackTrace(System.err); ! } } } } --- 83,107 ---- while (true) { try ! { ! AWTEvent evt = queue.getNextEvent(); queue.dispatchEvent(evt); ! } catch (ThreadDeath death) { // If someone wants to kill us, let them. return; } ! catch (InterruptedException ie) ! { ! // We are interrupted when we should finish executing ! return; ! } ! catch (Throwable x) ! { ! System.err.println("Exception during event dispatch:"); ! x.printStackTrace(System.err); ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/EventQueue.java gcc-4.6.0/libjava/classpath/java/awt/EventQueue.java *** gcc-4.5.2/libjava/classpath/java/awt/EventQueue.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/EventQueue.java Tue Jan 11 19:46:05 2011 *************** import java.awt.peer.LightweightPeer; *** 51,58 **** import java.lang.reflect.InvocationTargetException; import java.util.EmptyStackException; ! /* Written using on-line Java 2 Platform Standard Edition v1.3 API ! * Specification, as well as "The Java Class Libraries", 2nd edition * (Addison-Wesley, 1998). * Status: Believed complete, but untested. */ --- 51,58 ---- import java.lang.reflect.InvocationTargetException; import java.util.EmptyStackException; ! /* Written using on-line Java 2 Platform Standard Edition v1.3 API ! * Specification, as well as "The Java Class Libraries", 2nd edition * (Addison-Wesley, 1998). * Status: Believed complete, but untested. */ *************** public class EventQueue *** 225,233 **** * is interrupted. * * @return The next event in the queue. ! * @specnote Does not block. Returns null if there are no events on the ! * queue. ! */ public synchronized AWTEvent peekEvent() { if (next != null) --- 225,233 ---- * is interrupted. * * @return The next event in the queue. ! * @specnote Does not block. Returns null if there are no events on the ! * queue. ! */ public synchronized AWTEvent peekEvent() { if (next != null) *************** public class EventQueue *** 246,254 **** * * @return The next event in the queue. * ! * @specnote Does not block. Returns null if there are no matching events ! * on the queue. ! */ public synchronized AWTEvent peekEvent(int id) { if (next != null) --- 246,254 ---- * * @return The next event in the queue. * ! * @specnote Does not block. Returns null if there are no matching events ! * on the queue. ! */ public synchronized AWTEvent peekEvent(int id) { if (next != null) *************** public class EventQueue *** 306,312 **** * Actually performs the event posting. This is needed because the * RI doesn't use the public postEvent() method when transferring events * between event queues in push() and pop(). ! * * @param evt the event to post * @param priority the priority of the event */ --- 306,312 ---- * Actually performs the event posting. This is needed because the * RI doesn't use the public postEvent() method when transferring events * between event queues in push() and pop(). ! * * @param evt the event to post * @param priority the priority of the event */ *************** public class EventQueue *** 342,348 **** Object src = qevt.getSource(); if (qevt.id == evt.id && src == comp) { ! // If there are, call coalesceEvents on the source component // to see if they can be combined. Component srccmp = (Component) src; AWTEvent coalescedEvt = srccmp.coalesceEvents(qevt, evt); --- 342,348 ---- Object src = qevt.getSource(); if (qevt.id == evt.id && src == comp) { ! // If there are, call coalesceEvents on the source component // to see if they can be combined. Component srccmp = (Component) src; AWTEvent coalescedEvt = srccmp.coalesceEvents(qevt, evt); *************** public class EventQueue *** 414,420 **** if (isDispatchThread ()) throw new Error("Can't call invokeAndWait from event dispatch thread"); ! EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); Object notifyObject = new Object(); InvocationEvent ie = --- 414,420 ---- if (isDispatchThread ()) throw new Error("Can't call invokeAndWait from event dispatch thread"); ! EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); Object notifyObject = new Object(); InvocationEvent ie = *************** public class EventQueue *** 441,449 **** */ public static void invokeLater(Runnable runnable) { ! EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); ! InvocationEvent ie = new InvocationEvent(eq, runnable, null, false); eq.postEvent(ie); --- 441,449 ---- */ public static void invokeLater(Runnable runnable) { ! EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); ! InvocationEvent ie = new InvocationEvent(eq, runnable, null, false); eq.postEvent(ie); *************** public class EventQueue *** 456,463 **** public static boolean isDispatchThread() { EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); ! ! /* Find last EventQueue in chain */ while (eq.next != null) eq = eq.next; --- 456,463 ---- public static boolean isDispatchThread() { EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); ! ! /* Find last EventQueue in chain */ while (eq.next != null) eq = eq.next; *************** public class EventQueue *** 473,483 **** */ public static AWTEvent getCurrentEvent() { ! EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); Thread ct = Thread.currentThread(); ! /* Find out if this thread is the dispatch thread for any of the ! EventQueues in the chain */ while (ct != eq.dispatchThread) { // Try next EventQueue, if any --- 473,483 ---- */ public static AWTEvent getCurrentEvent() { ! EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); Thread ct = Thread.currentThread(); ! /* Find out if this thread is the dispatch thread for any of the ! EventQueues in the chain */ while (ct != eq.dispatchThread) { // Try next EventQueue, if any *************** public class EventQueue *** 490,496 **** } /** ! * Allows a custom EventQueue implementation to replace this one. * All pending events are transferred to the new queue. Calls to postEvent, * getNextEvent, and peekEvent and others are forwarded to the pushed queue * until it is removed with a pop(). --- 490,496 ---- } /** ! * Allows a custom EventQueue implementation to replace this one. * All pending events are transferred to the new queue. Calls to postEvent, * getNextEvent, and peekEvent and others are forwarded to the pushed queue * until it is removed with a pop(). *************** public class EventQueue *** 650,656 **** */ public static long getMostRecentEventTime() { ! EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); if (Thread.currentThread() != eq.dispatchThread) return System.currentTimeMillis(); return eq.lastWhen; --- 650,656 ---- */ public static long getMostRecentEventTime() { ! EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); if (Thread.currentThread() != eq.dispatchThread) return System.currentTimeMillis(); return eq.lastWhen; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/FileDialog.java gcc-4.6.0/libjava/classpath/java/awt/FileDialog.java *** gcc-4.5.2/libjava/classpath/java/awt/FileDialog.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/FileDialog.java Tue Jan 11 19:46:05 2011 *************** private String file; *** 90,96 **** private FilenameFilter filter; /** ! * @serial The mode of this dialog, either LOAD or * SAVE. */ private int mode; --- 90,96 ---- private FilenameFilter filter; /** ! * @serial The mode of this dialog, either LOAD or * SAVE. */ private int mode; *************** private static transient long next_file_ *** 109,149 **** /** * Initializes a new instance of FileDialog with the specified * parent. This dialog will have no title and will be for loading a file. ! * * @param parent The parent dialog for this. ! * * @since 1.5 */ public FileDialog(Dialog parent) { this(parent, "", LOAD); } ! /** * Initialized a new instance of FileDialog with the * specified parent and title. This dialog will be for opening a file. * * @param parent The parent dialog for this. * @param title The title for this dialog. ! * * @since 1.5 */ public FileDialog(Dialog parent, String title) { this(parent, title, LOAD); } ! /** * Initialized a new instance of FileDialog with the specified * parent, title, and mode. ! * * @param parent The parent dialog for this. * @param title The title for this dialog. * @param mode The mode of the dialog, either LOAD or * SAVE. * @throws IllegalArgumentException - if illegal mode, if * GraphicsEnvironment.isHeadless or if parent is null. ! * * @since 1.5 */ public FileDialog(Dialog parent, String title, int mode) --- 109,149 ---- /** * Initializes a new instance of FileDialog with the specified * parent. This dialog will have no title and will be for loading a file. ! * * @param parent The parent dialog for this. ! * * @since 1.5 */ public FileDialog(Dialog parent) { this(parent, "", LOAD); } ! /** * Initialized a new instance of FileDialog with the * specified parent and title. This dialog will be for opening a file. * * @param parent The parent dialog for this. * @param title The title for this dialog. ! * * @since 1.5 */ public FileDialog(Dialog parent, String title) { this(parent, title, LOAD); } ! /** * Initialized a new instance of FileDialog with the specified * parent, title, and mode. ! * * @param parent The parent dialog for this. * @param title The title for this dialog. * @param mode The mode of the dialog, either LOAD or * SAVE. * @throws IllegalArgumentException - if illegal mode, if * GraphicsEnvironment.isHeadless or if parent is null. ! * * @since 1.5 */ public FileDialog(Dialog parent, String title, int mode) *************** private static transient long next_file_ *** 154,165 **** if (mode != LOAD && mode != SAVE) throw new IllegalArgumentException ( "Mode argument must be either LOAD or SAVE"); ! setMode(mode); } /** ! * Initializes a new instance of FileDialog with the * specified parent. This dialog will have no title and will be for * loading a file. * --- 154,165 ---- if (mode != LOAD && mode != SAVE) throw new IllegalArgumentException ( "Mode argument must be either LOAD or SAVE"); ! setMode(mode); } /** ! * Initializes a new instance of FileDialog with the * specified parent. This dialog will have no title and will be for * loading a file. * *************** public *** 204,210 **** FileDialog(Frame parent, String title, int mode) { super(parent, title, true); ! if ((mode != LOAD) && (mode != SAVE)) throw new IllegalArgumentException ( "Mode argument must be either LOAD or SAVE"); --- 204,210 ---- FileDialog(Frame parent, String title, int mode) { super(parent, title, true); ! if ((mode != LOAD) && (mode != SAVE)) throw new IllegalArgumentException ( "Mode argument must be either LOAD or SAVE"); *************** setFile(String file) *** 309,315 **** this.file = null; else this.file = file; ! if (peer != null) { FileDialogPeer f = (FileDialogPeer) peer; --- 309,315 ---- this.file = null; else this.file = file; ! if (peer != null) { FileDialogPeer f = (FileDialogPeer) peer; *************** protected String *** 372,378 **** paramString() { return ("dir=" + dir + ",file=" + file + ! ",mode=" + mode + "," + super.paramString()); } /** --- 372,378 ---- paramString() { return ("dir=" + dir + ",file=" + file + ! ",mode=" + mode + "," + super.paramString()); } /** *************** paramString() *** 380,396 **** * * @return A unique name for this FileDialog. */ ! String generateName() { return "filedlg" + getUniqueLong(); } ! private static synchronized long getUniqueLong() { return next_file_dialog_number++; } ! } // class FileDialog ! --- 380,395 ---- * * @return A unique name for this FileDialog. */ ! String generateName() { return "filedlg" + getUniqueLong(); } ! private static synchronized long getUniqueLong() { return next_file_dialog_number++; } ! } // class FileDialog diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/FlowLayout.java gcc-4.6.0/libjava/classpath/java/awt/FlowLayout.java *** gcc-4.5.2/libjava/classpath/java/awt/FlowLayout.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/FlowLayout.java Tue Jan 11 19:46:05 2011 *************** public class FlowLayout implements Layou *** 73,79 **** * does nothing. * * @param name the name ! * @param comp the component */ public void addLayoutComponent (String name, Component comp) { --- 73,79 ---- * does nothing. * * @param name the name ! * @param comp the component */ public void addLayoutComponent (String name, Component comp) { *************** public class FlowLayout implements Layou *** 155,232 **** { synchronized (parent.getTreeLock ()) { ! int num = parent.getComponentCount (); ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! Dimension d = parent.getSize (); ! Insets ins = parent.getInsets (); ! ComponentOrientation orient = parent.getComponentOrientation (); ! boolean left_to_right = orient.isLeftToRight (); ! int y = ins.top + vgap; ! int i = 0; ! while (i < num) ! { ! // Find the components which go in the current row. ! int new_w = ins.left + hgap + ins.right; ! int new_h = 0; ! int j; ! boolean found_one = false; ! for (j = i; j < num; ++j) ! { ! // Skip invisible items. ! if (! comps[j].visible) ! continue; ! Dimension c = comps[j].getPreferredSize (); ! int next_w = new_w + hgap + c.width; ! if (next_w <= d.width || ! found_one) ! { ! new_w = next_w; ! new_h = Math.max (new_h, c.height); ! found_one = true; ! } ! else ! { ! // Must start a new row, and we already found an item ! break; ! } ! } ! // Set the location of each component for this row. ! int x; ! int myalign = align; ! if (align == LEADING) ! myalign = left_to_right ? LEFT : RIGHT; ! else if (align == TRAILING) ! myalign = left_to_right ? RIGHT : LEFT; ! if (myalign == RIGHT) ! x = ins.left + (d.width - new_w) + hgap; ! else if (myalign == CENTER) ! x = ins.left + (d.width - new_w) / 2 + hgap; ! else // LEFT and all other values of align. ! x = ins.left + hgap; ! for (int k = i; k < j; ++k) ! { ! if (comps[k].visible) ! { ! Dimension c = comps[k].getPreferredSize (); ! comps[k].setBounds (x, y + (new_h - c.height) / 2, ! c.width, c.height); ! x += c.width + hgap; ! } ! } ! // Advance to next row. ! i = j; ! y += new_h + vgap; ! } } } --- 155,232 ---- { synchronized (parent.getTreeLock ()) { ! int num = parent.getComponentCount (); ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! Dimension d = parent.getSize (); ! Insets ins = parent.getInsets (); ! ComponentOrientation orient = parent.getComponentOrientation (); ! boolean left_to_right = orient.isLeftToRight (); ! int y = ins.top + vgap; ! int i = 0; ! while (i < num) ! { ! // Find the components which go in the current row. ! int new_w = ins.left + hgap + ins.right; ! int new_h = 0; ! int j; ! boolean found_one = false; ! for (j = i; j < num; ++j) ! { ! // Skip invisible items. ! if (! comps[j].visible) ! continue; ! Dimension c = comps[j].getPreferredSize (); ! int next_w = new_w + hgap + c.width; ! if (next_w <= d.width || ! found_one) ! { ! new_w = next_w; ! new_h = Math.max (new_h, c.height); ! found_one = true; ! } ! else ! { ! // Must start a new row, and we already found an item ! break; ! } ! } ! // Set the location of each component for this row. ! int x; ! int myalign = align; ! if (align == LEADING) ! myalign = left_to_right ? LEFT : RIGHT; ! else if (align == TRAILING) ! myalign = left_to_right ? RIGHT : LEFT; ! if (myalign == RIGHT) ! x = ins.left + (d.width - new_w) + hgap; ! else if (myalign == CENTER) ! x = ins.left + (d.width - new_w) / 2 + hgap; ! else // LEFT and all other values of align. ! x = ins.left + hgap; ! for (int k = i; k < j; ++k) ! { ! if (comps[k].visible) ! { ! Dimension c = comps[k].getPreferredSize (); ! comps[k].setBounds (x, y + (new_h - c.height) / 2, ! c.width, c.height); ! x += c.width + hgap; ! } ! } ! // Advance to next row. ! i = j; ! y += new_h + vgap; ! } } } *************** public class FlowLayout implements Layou *** 278,284 **** /** * Sets the horizontal gap between lines of components to the specified value. * No Exception is thrown if hgap < 0. ! * * @param hgap The new horizontal gap between components. */ public void setHgap (int hgap) --- 278,284 ---- /** * Sets the horizontal gap between lines of components to the specified value. * No Exception is thrown if hgap < 0. ! * * @param hgap The new horizontal gap between components. */ public void setHgap (int hgap) *************** public class FlowLayout implements Layou *** 303,309 **** public String toString () { return ("[" + getClass ().getName () + ",hgap=" + hgap + ",vgap=" + vgap ! + ",align=" + align + "]"); } // This method is used to compute the various sizes. --- 303,309 ---- public String toString () { return ("[" + getClass ().getName () + ",hgap=" + hgap + ",vgap=" + vgap ! + ",align=" + align + "]"); } // This method is used to compute the various sizes. *************** public class FlowLayout implements Layou *** 311,349 **** { synchronized (parent.getTreeLock ()) { ! int w, h, num = parent.getComponentCount (); ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! w = 0; ! h = 0; ! for (int i = 0; i < num; ++i) ! { ! if (! comps[i].visible) ! continue; ! // FIXME: can we just directly read the fields in Component? ! // Or will that not work with subclassing? ! Dimension d; ! if (is_min) ! d = comps[i].getMinimumSize (); ! else ! d = comps[i].getPreferredSize (); ! w += d.width; ! h = Math.max (d.height, h); ! } ! Insets ins = parent.getInsets (); if (num == 0) w += 2 * hgap + ins.left + ins.right; else w += (num + 1) * hgap + ins.left + ins.right; ! h += 2 * vgap + ins.top + ins.bottom; ! return new Dimension (w, h); } } --- 311,349 ---- { synchronized (parent.getTreeLock ()) { ! int w, h, num = parent.getComponentCount (); ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! w = 0; ! h = 0; ! for (int i = 0; i < num; ++i) ! { ! if (! comps[i].visible) ! continue; ! // FIXME: can we just directly read the fields in Component? ! // Or will that not work with subclassing? ! Dimension d; ! if (is_min) ! d = comps[i].getMinimumSize (); ! else ! d = comps[i].getPreferredSize (); ! w += d.width; ! h = Math.max (d.height, h); ! } ! Insets ins = parent.getInsets (); if (num == 0) w += 2 * hgap + ins.left + ins.right; else w += (num + 1) * hgap + ins.left + ins.right; ! h += 2 * vgap + ins.top + ins.bottom; ! return new Dimension (w, h); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/FocusTraversalPolicy.java gcc-4.6.0/libjava/classpath/java/awt/FocusTraversalPolicy.java *** gcc-4.5.2/libjava/classpath/java/awt/FocusTraversalPolicy.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/FocusTraversalPolicy.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FocusTraversalPolicy.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FocusTraversalPolicy.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Font.java gcc-4.6.0/libjava/classpath/java/awt/Font.java *** gcc-4.5.2/libjava/classpath/java/awt/Font.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/Font.java Tue Jan 11 19:46:05 2011 *************** public class Font implements Serializabl *** 101,107 **** /** * Constant indicating the baseline mode characteristic of Devanigri. */ ! public static final int HANGING_BASELINE = 2; /** --- 101,107 ---- /** * Constant indicating the baseline mode characteristic of Devanigri. */ ! public static final int HANGING_BASELINE = 2; /** *************** public class Font implements Serializabl *** 117,127 **** * @since 1.3 */ public static final int TRUETYPE_FONT = 0; ! /** * Indicates to createFont that the supplied font data * is in Type1 format. ! * * @since 1.5 */ public static final int TYPE1_FONT = 1; --- 117,127 ---- * @since 1.3 */ public static final int TRUETYPE_FONT = 0; ! /** * Indicates to createFont that the supplied font data * is in Type1 format. ! * * @since 1.5 */ public static final int TYPE1_FONT = 1; *************** public class Font implements Serializabl *** 249,263 **** * The style should be one of BOLD, ITALIC, or BOLDITALIC. The default * style if none is specified is PLAIN. The default size if none * is specified is 12. ! * ! * @param fontspec a string specifying the required font (null * permitted, interpreted as 'Dialog-PLAIN-12'). ! * * @return A font. */ public static Font decode(String fontspec) { ! if (fontspec == null) fontspec = "Dialog-PLAIN-12"; String name = null; int style = PLAIN; --- 249,263 ---- * The style should be one of BOLD, ITALIC, or BOLDITALIC. The default * style if none is specified is PLAIN. The default size if none * is specified is 12. ! * ! * @param fontspec a string specifying the required font (null * permitted, interpreted as 'Dialog-PLAIN-12'). ! * * @return A font. */ public static Font decode(String fontspec) { ! if (fontspec == null) fontspec = "Dialog-PLAIN-12"; String name = null; int style = PLAIN; *************** public class Font implements Serializabl *** 336,342 **** * @param propname The name of the system property. * @param defval Value to use if the property is not found. * ! * @return The requested font, or default if the property * not exist or is malformed. */ public static Font getFont(String propname, Font defval) --- 336,342 ---- * @param propname The name of the system property. * @param defval Value to use if the property is not found. * ! * @return The requested font, or default if the property * not exist or is malformed. */ public static Font getFont(String propname, Font defval) *************** public class Font implements Serializabl *** 352,358 **** * * @param propname The name of the system property. * ! * @return The requested font, or null if the property * not exist or is malformed. */ public static Font getFont(String propname) --- 352,358 ---- * * @param propname The name of the system property. * ! * @return The requested font, or null if the property * not exist or is malformed. */ public static Font getFont(String propname) *************** public class Font implements Serializabl *** 430,436 **** /** * Returns the size of the font, in typographics points (1/72 of an inch), * rounded to an integer. ! * * @return The font size */ public int getSize() --- 430,436 ---- /** * Returns the size of the font, in typographics points (1/72 of an inch), * rounded to an integer. ! * * @return The font size */ public int getSize() *************** public class Font implements Serializabl *** 440,446 **** /** * Returns the size of the font, in typographics points (1/72 of an inch). ! * * @return The font size */ public float getSize2D() --- 440,446 ---- /** * Returns the size of the font, in typographics points (1/72 of an inch). ! * * @return The font size */ public float getSize2D() *************** public class Font implements Serializabl *** 457,463 **** */ public boolean isPlain() { ! return peer.isPlain(this); } /** --- 457,463 ---- */ public boolean isPlain() { ! return peer.isPlain(this); } /** *************** public class Font implements Serializabl *** 535,541 **** } /** ! * Checks how much of a given string can be mapped to glyphs in * this font. * * @param s The string to check. --- 535,541 ---- } /** ! * Checks how much of a given string can be mapped to glyphs in * this font. * * @param s The string to check. *************** public class Font implements Serializabl *** 548,554 **** */ public int canDisplayUpTo(String s) { ! return peer.canDisplayUpTo(this, new StringCharacterIterator(s), 0, s.length() - 1); } --- 548,554 ---- */ public int canDisplayUpTo(String s) { ! return peer.canDisplayUpTo(this, new StringCharacterIterator(s), 0, s.length() - 1); } *************** public class Font implements Serializabl *** 595,601 **** */ public int canDisplayUpTo(CharacterIterator i, int start, int limit) { ! return peer.canDisplayUpTo(this, i, start, limit); } /** --- 595,601 ---- */ public int canDisplayUpTo(CharacterIterator i, int start, int limit) { ! return peer.canDisplayUpTo(this, i, start, limit); } /** *************** public class Font implements Serializabl *** 717,723 **** /** * Extracts a sequence of glyphs from a font, returning a new {@link ! * GlyphVector} with a mapped glyph for each input glyph code. * * @param ctx The rendering context used for precise glyph placement. * @param glyphCodes Array of characters to convert to glyphs. --- 717,723 ---- /** * Extracts a sequence of glyphs from a font, returning a new {@link ! * GlyphVector} with a mapped glyph for each input glyph code. * * @param ctx The rendering context used for precise glyph placement. * @param glyphCodes Array of characters to convert to glyphs. *************** public class Font implements Serializabl *** 858,864 **** } /** ! * Returns an array of chracter attribute keys which this font understands. * * @return An array of chracter attribute keys which this font understands. * --- 858,864 ---- } /** ! * Returns an array of chracter attribute keys which this font understands. * * @return An array of chracter attribute keys which this font understands. * *************** public class Font implements Serializabl *** 917,923 **** */ public String getFamily(Locale lc) { ! return peer.getFamily(this, lc); } /** --- 917,923 ---- */ public String getFamily(Locale lc) { ! return peer.getFamily(this, lc); } /** *************** public class Font implements Serializabl *** 929,935 **** * * @since 1.2 * ! * @see java.awt.font.TextAttribute */ public static Font getFont(Map attributes) { --- 929,935 ---- * * @since 1.2 * ! * @see java.awt.font.TextAttribute */ public static Font getFont(Map attributes) { *************** public class Font implements Serializabl *** 990,996 **** /** * Returns a {@link LineMetrics} object constructed with the specified ! * text and {@link FontRenderContext}. * * @param text The string to calculate metrics from. * @param begin Index of first character in text to measure. --- 990,996 ---- /** * Returns a {@link LineMetrics} object constructed with the specified ! * text and {@link FontRenderContext}. * * @param text The string to calculate metrics from. * @param begin Index of first character in text to measure. *************** public class Font implements Serializabl *** 1002,1017 **** * @throws IndexOutOfBoundsException if the range [begin, limit] is * invalid in text. */ ! public LineMetrics getLineMetrics(String text, int begin, int limit, FontRenderContext rc) { ! return peer.getLineMetrics(this, new StringCharacterIterator(text), begin, limit, rc); } /** * Returns a {@link LineMetrics} object constructed with the specified ! * text and {@link FontRenderContext}. * * @param chars The string to calculate metrics from. * @param begin Index of first character in text to measure. --- 1002,1017 ---- * @throws IndexOutOfBoundsException if the range [begin, limit] is * invalid in text. */ ! public LineMetrics getLineMetrics(String text, int begin, int limit, FontRenderContext rc) { ! return peer.getLineMetrics(this, new StringCharacterIterator(text), begin, limit, rc); } /** * Returns a {@link LineMetrics} object constructed with the specified ! * text and {@link FontRenderContext}. * * @param chars The string to calculate metrics from. * @param begin Index of first character in text to measure. *************** public class Font implements Serializabl *** 1023,1039 **** * @throws IndexOutOfBoundsException if the range [begin, limit] is * invalid in chars. */ ! public LineMetrics getLineMetrics(char[] chars, int begin, int limit, FontRenderContext rc) { return peer.getLineMetrics(this, ! new StringCharacterIterator(new String(chars)), begin, limit, rc); } /** * Returns a {@link LineMetrics} object constructed with the specified ! * text and {@link FontRenderContext}. * * @param ci The string to calculate metrics from. * @param begin Index of first character in text to measure. --- 1023,1039 ---- * @throws IndexOutOfBoundsException if the range [begin, limit] is * invalid in chars. */ ! public LineMetrics getLineMetrics(char[] chars, int begin, int limit, FontRenderContext rc) { return peer.getLineMetrics(this, ! new StringCharacterIterator(new String(chars)), begin, limit, rc); } /** * Returns a {@link LineMetrics} object constructed with the specified ! * text and {@link FontRenderContext}. * * @param ci The string to calculate metrics from. * @param begin Index of first character in text to measure. *************** public class Font implements Serializabl *** 1045,1051 **** * @throws IndexOutOfBoundsException if the range [begin, limit] is * invalid in ci. */ ! public LineMetrics getLineMetrics(CharacterIterator ci, int begin, int limit, FontRenderContext rc) { return peer.getLineMetrics(this, ci, begin, limit, rc); --- 1045,1051 ---- * @throws IndexOutOfBoundsException if the range [begin, limit] is * invalid in ci. */ ! public LineMetrics getLineMetrics(CharacterIterator ci, int begin, int limit, FontRenderContext rc) { return peer.getLineMetrics(this, ci, begin, limit, rc); *************** public class Font implements Serializabl *** 1086,1092 **** * [ 0, getNumGlyphs() - 1 ]. * * @return The number of glyphs in this font. ! * * @since 1.2 */ public int getNumGlyphs() --- 1086,1092 ---- * [ 0, getNumGlyphs() - 1 ]. * * @return The number of glyphs in this font. ! * * @since 1.2 */ public int getNumGlyphs() *************** public class Font implements Serializabl *** 1095,1101 **** } /** ! * Returns the PostScript Name of this font. * * @return The PostScript Name of this font. * --- 1095,1101 ---- } /** ! * Returns the PostScript Name of this font. * * @return The PostScript Name of this font. * *************** public class Font implements Serializabl *** 1115,1126 **** * font in the specified {@link FontRenderContext}. This box will include the * glyph origin, ascent, advance, height, and leading, but may not include all * diacritics or accents. To get the complete visual bounding box of all the ! * glyphs in a run of text, use the {@link TextLayout#getBounds} method of * {@link TextLayout}. * * @param str The string to measure. * @param frc The context in which to make the precise glyph measurements. ! * * @return A bounding box covering the logical bounds of the specified text. * * @see #createGlyphVector(FontRenderContext, String) --- 1115,1126 ---- * font in the specified {@link FontRenderContext}. This box will include the * glyph origin, ascent, advance, height, and leading, but may not include all * diacritics or accents. To get the complete visual bounding box of all the ! * glyphs in a run of text, use the {@link TextLayout#getBounds} method of * {@link TextLayout}. * * @param str The string to measure. * @param frc The context in which to make the precise glyph measurements. ! * * @return A bounding box covering the logical bounds of the specified text. * * @see #createGlyphVector(FontRenderContext, String) *************** public class Font implements Serializabl *** 1143,1149 **** * @param begin Index of the first character in str to measure. * @param limit Index of the last character in str to measure. * @param frc The context in which to make the precise glyph measurements. ! * * @return A bounding box covering the logical bounds of the specified text. * * @throws IndexOutOfBoundsException if the range [begin, limit] is --- 1143,1149 ---- * @param begin Index of the first character in str to measure. * @param limit Index of the last character in str to measure. * @param frc The context in which to make the precise glyph measurements. ! * * @return A bounding box covering the logical bounds of the specified text. * * @throws IndexOutOfBoundsException if the range [begin, limit] is *************** public class Font implements Serializabl *** 1153,1159 **** * * @see #createGlyphVector(FontRenderContext, String) */ ! public Rectangle2D getStringBounds(String str, int begin, int limit, FontRenderContext frc) { String sub = str.substring(begin, limit); --- 1153,1159 ---- * * @see #createGlyphVector(FontRenderContext, String) */ ! public Rectangle2D getStringBounds(String str, int begin, int limit, FontRenderContext frc) { String sub = str.substring(begin, limit); *************** public class Font implements Serializabl *** 1172,1178 **** * @param begin Index of the first character in ci to measure. * @param limit Index of the last character in ci to measure. * @param frc The context in which to make the precise glyph measurements. ! * * @return A bounding box covering the logical bounds of the specified text. * * @throws IndexOutOfBoundsException if the range [begin, limit] is --- 1172,1178 ---- * @param begin Index of the first character in ci to measure. * @param limit Index of the last character in ci to measure. * @param frc The context in which to make the precise glyph measurements. ! * * @return A bounding box covering the logical bounds of the specified text. * * @throws IndexOutOfBoundsException if the range [begin, limit] is *************** public class Font implements Serializabl *** 1182,1188 **** * * @see #createGlyphVector(FontRenderContext, CharacterIterator) */ ! public Rectangle2D getStringBounds(CharacterIterator ci, int begin, int limit, FontRenderContext frc) { int start = ci.getBeginIndex(); --- 1182,1188 ---- * * @see #createGlyphVector(FontRenderContext, CharacterIterator) */ ! public Rectangle2D getStringBounds(CharacterIterator ci, int begin, int limit, FontRenderContext frc) { int start = ci.getBeginIndex(); *************** public class Font implements Serializabl *** 1209,1215 **** * @param begin Index of the first character in ci to measure. * @param limit Index of the last character in ci to measure. * @param frc The context in which to make the precise glyph measurements. ! * * @return A bounding box covering the logical bounds of the specified text. * * @throws IndexOutOfBoundsException if the range [begin, limit] is --- 1209,1215 ---- * @param begin Index of the first character in ci to measure. * @param limit Index of the last character in ci to measure. * @param frc The context in which to make the precise glyph measurements. ! * * @return A bounding box covering the logical bounds of the specified text. * * @throws IndexOutOfBoundsException if the range [begin, limit] is *************** public class Font implements Serializabl *** 1219,1225 **** * * @see #createGlyphVector(FontRenderContext, char[]) */ ! public Rectangle2D getStringBounds(char[] chars, int begin, int limit, FontRenderContext frc) { String str = new String(chars, begin, limit - begin); --- 1219,1225 ---- * * @see #createGlyphVector(FontRenderContext, char[]) */ ! public Rectangle2D getStringBounds(char[] chars, int begin, int limit, FontRenderContext frc) { String str = new String(chars, begin, limit - begin); *************** public class Font implements Serializabl *** 1293,1302 **** * @return A new {@link GlyphVector} representing the specified text. * * @throws IndexOutOfBoundsException if the range [begin, limit] is ! * invalid in chars. */ ! public GlyphVector layoutGlyphVector(FontRenderContext frc, ! char[] chars, int start, int limit, int flags) { return peer.layoutGlyphVector(this, frc, chars, start, limit, flags); --- 1293,1302 ---- * @return A new {@link GlyphVector} representing the specified text. * * @throws IndexOutOfBoundsException if the range [begin, limit] is ! * invalid in chars. */ ! public GlyphVector layoutGlyphVector(FontRenderContext frc, ! char[] chars, int start, int limit, int flags) { return peer.layoutGlyphVector(this, frc, chars, start, limit, flags); *************** public class Font implements Serializabl *** 1318,1324 **** /** * Returns a hash value for this font. ! * * @return A hash for this font. */ public int hashCode() --- 1318,1324 ---- /** * Returns a hash value for this font. ! * * @return A hash for this font. */ public int hashCode() *************** public class Font implements Serializabl *** 1395,1402 **** default: styleString = "unknown"; } ! ! return getClass().getName() + "[family=" + getFamily () + ",name=" + getFontName () + ",style=" + styleString --- 1395,1402 ---- default: styleString = "unknown"; } ! ! return getClass().getName() + "[family=" + getFamily () + ",name=" + getFontName () + ",style=" + styleString diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/FontMetrics.java gcc-4.6.0/libjava/classpath/java/awt/FontMetrics.java *** gcc-4.5.2/libjava/classpath/java/awt/FontMetrics.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/awt/FontMetrics.java Tue Jan 11 19:46:05 2011 *************** public abstract class FontMetrics implem *** 362,368 **** rc = gRC; return font.getLineMetrics(chars, begin, limit, rc); } ! /** * Returns the bounds of the largest character in a Graphics context. * @param context the Graphics context object. --- 362,368 ---- rc = gRC; return font.getLineMetrics(chars, begin, limit, rc); } ! /** * Returns the bounds of the largest character in a Graphics context. * @param context the Graphics context object. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Frame.java gcc-4.6.0/libjava/classpath/java/awt/Frame.java *** gcc-4.5.2/libjava/classpath/java/awt/Frame.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Frame.java Tue Jan 11 19:46:05 2011 *************** public class Frame extends Window implem *** 336,345 **** this.menuBar = menuBar; if (menuBar != null) { ! MenuContainer parent = menuBar.getParent(); ! if (parent != null) ! parent.remove(menuBar); ! menuBar.setParent(this); // Create local copy for thread safety. FramePeer p = (FramePeer) peer; --- 336,345 ---- this.menuBar = menuBar; if (menuBar != null) { ! MenuContainer parent = menuBar.getParent(); ! if (parent != null) ! parent.remove(menuBar); ! menuBar.setParent(this); // Create local copy for thread safety. FramePeer p = (FramePeer) peer; *************** public class Frame extends Window implem *** 355,361 **** } /** ! * Tests whether or not this frame is resizable. This will be * true by default. * * @return true if this frame is resizable, false --- 355,361 ---- } /** ! * Tests whether or not this frame is resizable. This will be * true by default. * * @return true if this frame is resizable, false *************** public class Frame extends Window implem *** 417,432 **** { if (menu == menuBar) { ! if (menuBar != null) ! { ! if (peer != null) ! { ! ((FramePeer) peer).setMenuBar(null); ! menuBar.removeNotify(); ! } ! menuBar.setParent(null); ! } ! menuBar = null; } else super.remove(menu); --- 417,432 ---- { if (menu == menuBar) { ! if (menuBar != null) ! { ! if (peer != null) ! { ! ((FramePeer) peer).setMenuBar(null); ! menuBar.removeNotify(); ! } ! menuBar.setParent(null); ! } ! menuBar = null; } else super.remove(menu); *************** public class Frame extends Window implem *** 493,499 **** /** * The death queue for all frames. ! */ private static ReferenceQueue weakFramesQueue = new ReferenceQueue(); --- 493,499 ---- /** * The death queue for all frames. ! */ private static ReferenceQueue weakFramesQueue = new ReferenceQueue(); *************** public class Frame extends Window implem *** 560,566 **** if (state == NORMAL && (current_state & ICONIFIED) != 0) setExtendedState(current_state | ICONIFIED); ! if (state == ICONIFIED && (current_state & ~ICONIFIED) == 0) setExtendedState(current_state & ~ICONIFIED); --- 560,566 ---- if (state == NORMAL && (current_state & ICONIFIED) != 0) setExtendedState(current_state | ICONIFIED); ! if (state == ICONIFIED && (current_state & ~ICONIFIED) == 0) setExtendedState(current_state & ~ICONIFIED); *************** public class Frame extends Window implem *** 618,624 **** /** * Returns whether this frame is undecorated or not. ! * * @since 1.4 */ public boolean isUndecorated() --- 618,624 ---- /** * Returns whether this frame is undecorated or not. ! * * @since 1.4 */ public boolean isUndecorated() *************** public class Frame extends Window implem *** 629,637 **** /** * Disables or enables decorations for this frame. This method can only be * called while the frame is not displayable. ! * * @throws IllegalComponentStateException if this frame is displayable ! * * @since 1.4 */ public void setUndecorated(boolean undecorated) --- 629,637 ---- /** * Disables or enables decorations for this frame. This method can only be * called while the frame is not displayable. ! * * @throws IllegalComponentStateException if this frame is displayable ! * * @since 1.4 */ public void setUndecorated(boolean undecorated) *************** public class Frame extends Window implem *** 656,662 **** { return next_frame_number++; } ! /** * Accessibility support for Frame. */ --- 656,662 ---- { return next_frame_number++; } ! /** * Accessibility support for Frame. */ *************** public class Frame extends Window implem *** 672,678 **** { return AccessibleRole.FRAME; } ! /** * Gets the state set of this object. * @return The current state of this frame. --- 672,678 ---- { return AccessibleRole.FRAME; } ! /** * Gets the state set of this object. * @return The current state of this frame. *************** public class Frame extends Window implem *** 687,693 **** return states; } } ! /** * Gets the AccessibleContext associated with this Frame. * The context is created, if necessary. --- 687,693 ---- return states; } } ! /** * Gets the AccessibleContext associated with this Frame. * The context is created, if necessary. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/GradientPaint.java gcc-4.6.0/libjava/classpath/java/awt/GradientPaint.java *** gcc-4.5.2/libjava/classpath/java/awt/GradientPaint.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/GradientPaint.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* GradientPaint.java -- Copyright (C) 2002, 2005, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* GradientPaint.java -- Copyright (C) 2002, 2005, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.awt.image.ColorModel; *** 45,51 **** import gnu.java.awt.GradientPaintContext; /** ! * A paint object that can be used to color a region by blending two colors. * Instances of this class are immutable. */ public class GradientPaint implements Paint --- 45,51 ---- import gnu.java.awt.GradientPaintContext; /** ! * A paint object that can be used to color a region by blending two colors. * Instances of this class are immutable. */ public class GradientPaint implements Paint *************** public class GradientPaint implements Pa *** 60,66 **** /** * Creates a new acyclic GradientPaint. ! * * @param x1 the x-coordinate of the anchor point for color 1. * @param y1 the y-coordinate of the anchor point for color 1. * @param c1 color 1 (null not permitted). --- 60,66 ---- /** * Creates a new acyclic GradientPaint. ! * * @param x1 the x-coordinate of the anchor point for color 1. * @param y1 the y-coordinate of the anchor point for color 1. * @param c1 color 1 (null not permitted). *************** public class GradientPaint implements Pa *** 76,82 **** /** * Creates a new acyclic GradientPaint. ! * * @param p1 anchor point 1 (null not permitted). * @param c1 color 1 (null not permitted). * @param p2 anchor point 2 (null not permitted). --- 76,82 ---- /** * Creates a new acyclic GradientPaint. ! * * @param p1 anchor point 1 (null not permitted). * @param c1 color 1 (null not permitted). * @param p2 anchor point 2 (null not permitted). *************** public class GradientPaint implements Pa *** 90,96 **** /** * Creates a new cyclic or acyclic GradientPaint. ! * * @param x1 the x-coordinate of the anchor point for color 1. * @param y1 the y-coordinate of the anchor point for color 1. * @param c1 color 1 (null not permitted). --- 90,96 ---- /** * Creates a new cyclic or acyclic GradientPaint. ! * * @param x1 the x-coordinate of the anchor point for color 1. * @param y1 the y-coordinate of the anchor point for color 1. * @param c1 color 1 (null not permitted). *************** public class GradientPaint implements Pa *** 116,122 **** /** * Creates a new cyclic or acyclic GradientPaint. ! * * @param p1 anchor point 1 (null not permitted). * @param c1 color 1 (null not permitted). * @param p2 anchor point 2 (null not permitted). --- 116,122 ---- /** * Creates a new cyclic or acyclic GradientPaint. ! * * @param p1 anchor point 1 (null not permitted). * @param c1 color 1 (null not permitted). * @param p2 anchor point 2 (null not permitted). *************** public class GradientPaint implements Pa *** 135,141 **** * Returns a point with the same coordinates as the anchor point for color 1. * Note that if you modify this point, the GradientPaint remains * unchanged. ! * * @return A point with the same coordinates as the anchor point for color 1. */ public Point2D getPoint1() --- 135,141 ---- * Returns a point with the same coordinates as the anchor point for color 1. * Note that if you modify this point, the GradientPaint remains * unchanged. ! * * @return A point with the same coordinates as the anchor point for color 1. */ public Point2D getPoint1() *************** public class GradientPaint implements Pa *** 145,151 **** /** * Returns the first color. ! * * @return The color (never null). */ public Color getColor1() --- 145,151 ---- /** * Returns the first color. ! * * @return The color (never null). */ public Color getColor1() *************** public class GradientPaint implements Pa *** 157,163 **** * Returns a point with the same coordinates as the anchor point for color 2. * Note that if you modify this point, the GradientPaint remains * unchanged. ! * * @return A point with the same coordinates as the anchor point for color 2. */ public Point2D getPoint2() --- 157,163 ---- * Returns a point with the same coordinates as the anchor point for color 2. * Note that if you modify this point, the GradientPaint remains * unchanged. ! * * @return A point with the same coordinates as the anchor point for color 2. */ public Point2D getPoint2() *************** public class GradientPaint implements Pa *** 167,173 **** /** * Returns the second color. ! * * @return The color (never null). */ public Color getColor2() --- 167,173 ---- /** * Returns the second color. ! * * @return The color (never null). */ public Color getColor2() *************** public class GradientPaint implements Pa *** 178,184 **** /** * Returns true if this GradientPaint instance is * cyclic, and false otherwise. ! * * @return A boolean. */ public boolean isCyclic() --- 178,184 ---- /** * Returns true if this GradientPaint instance is * cyclic, and false otherwise. ! * * @return A boolean. */ public boolean isCyclic() *************** public class GradientPaint implements Pa *** 188,201 **** /** * Returns the {@link PaintContext} used to generate the color pattern. ! * ! * @param cm the color model, used as a hint (ignored in this * implementation). * @param deviceBounds the device space bounding box of the painted area. * @param userBounds the user space bounding box of the painted area. * @param xform the transformation from user space to device space. * @param hints any hints for choosing between rendering alternatives. ! * * @return The context for performing the paint */ public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, --- 188,201 ---- /** * Returns the {@link PaintContext} used to generate the color pattern. ! * ! * @param cm the color model, used as a hint (ignored in this * implementation). * @param deviceBounds the device space bounding box of the painted area. * @param userBounds the user space bounding box of the painted area. * @param xform the transformation from user space to device space. * @param hints any hints for choosing between rendering alternatives. ! * * @return The context for performing the paint */ public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, *************** public class GradientPaint implements Pa *** 205,221 **** { Point2D xp1 = xform.transform(getPoint1(), null); Point2D xp2 = xform.transform(getPoint2(), null); ! return new GradientPaintContext((float) xp1.getX(), (float) xp1.getY(), c1, (float) xp2.getX(), (float) xp2.getY(), c2, cyclic); } /** * Returns the transparency code for this GradientPaint instance. * This is derived from the two {@link Color} objects used in creating this ! * object: if both colors are opaque, this method returns ! * {@link Transparency#OPAQUE}, otherwise it returns * {@link Transparency#TRANSLUCENT}. ! * * @return {@link Transparency#OPAQUE} or {@link Transparency#TRANSLUCENT}. */ public int getTransparency() --- 205,221 ---- { Point2D xp1 = xform.transform(getPoint1(), null); Point2D xp2 = xform.transform(getPoint2(), null); ! return new GradientPaintContext((float) xp1.getX(), (float) xp1.getY(), c1, (float) xp2.getX(), (float) xp2.getY(), c2, cyclic); } /** * Returns the transparency code for this GradientPaint instance. * This is derived from the two {@link Color} objects used in creating this ! * object: if both colors are opaque, this method returns ! * {@link Transparency#OPAQUE}, otherwise it returns * {@link Transparency#TRANSLUCENT}. ! * * @return {@link Transparency#OPAQUE} or {@link Transparency#TRANSLUCENT}. */ public int getTransparency() *************** public class GradientPaint implements Pa *** 223,229 **** if (c1.getAlpha() == 255 && c2.getAlpha() == 255) return Transparency.OPAQUE; else ! return Transparency.TRANSLUCENT; } ! } // class GradientPaint --- 223,229 ---- if (c1.getAlpha() == 255 && c2.getAlpha() == 255) return Transparency.OPAQUE; else ! return Transparency.TRANSLUCENT; } ! } // class GradientPaint diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Graphics.java gcc-4.6.0/libjava/classpath/java/awt/Graphics.java *** gcc-4.5.2/libjava/classpath/java/awt/Graphics.java Thu Feb 23 20:50:49 2006 --- gcc-4.6.0/libjava/classpath/java/awt/Graphics.java Tue Jan 11 19:46:05 2011 *************** public abstract class Graphics *** 74,81 **** * * @param x The new X coordinate of the clipping region rect. * @param y The new Y coordinate of the clipping region rect. ! * @param width The width of the clipping region intersect rectangle. ! * @param height The height of the clipping region intersect rectangle. * * @return A copy of this object, modified as specified. */ --- 74,81 ---- * * @param x The new X coordinate of the clipping region rect. * @param y The new Y coordinate of the clipping region rect. ! * @param width The width of the clipping region intersect rectangle. ! * @param height The height of the clipping region intersect rectangle. * * @return A copy of this object, modified as specified. */ *************** public abstract class Graphics *** 122,133 **** /** * Sets this context info "XOR" mode, where the targe pixles are ! * XOR-ed when drawn on. * * @param color The color to XOR against. */ public abstract void setXORMode(Color color); ! /** * Returns the current font for this graphics context. * --- 122,133 ---- /** * Sets this context info "XOR" mode, where the targe pixles are ! * XOR-ed when drawn on. * * @param color The color to XOR against. */ public abstract void setXORMode(Color color); ! /** * Returns the current font for this graphics context. * *************** public abstract class Graphics *** 162,168 **** public abstract FontMetrics getFontMetrics(Font font); /** ! * Returns the bounding rectangle of the clipping region for this * graphics context. * * @return The bounding rectangle for the clipping region. --- 162,168 ---- public abstract FontMetrics getFontMetrics(Font font); /** ! * Returns the bounding rectangle of the clipping region for this * graphics context. * * @return The bounding rectangle for the clipping region. *************** public abstract class Graphics *** 170,176 **** public abstract Rectangle getClipBounds(); /** ! * Returns the bounding rectangle of the clipping region for this * graphics context. * * @return The bounding rectangle for the clipping region. --- 170,176 ---- public abstract Rectangle getClipBounds(); /** ! * Returns the bounding rectangle of the clipping region for this * graphics context. * * @return The bounding rectangle for the clipping region. *************** public abstract class Graphics *** 313,331 **** Color color = getColor(); Color tl = color.brighter(); Color br = color.darker(); ! if (!raised) { Color tmp = tl; tl = br; br = tmp; } ! int x1 = x; int y1 = y; int x2 = x + width; int y2 = y + height; ! setColor(tl); drawLine(x1, y1, x2, y1); drawLine(x1, y2, x1, y1); --- 313,331 ---- Color color = getColor(); Color tl = color.brighter(); Color br = color.darker(); ! if (!raised) { Color tmp = tl; tl = br; br = tmp; } ! int x1 = x; int y1 = y; int x2 = x + width; int y2 = y + height; ! setColor(tl); drawLine(x1, y1, x2, y1); drawLine(x1, y2, x1, y1); *************** public abstract class Graphics *** 488,495 **** /** * Draws all of the image that is available and returns. If the image ! * is not completely loaded, false is returned and ! * the specified iamge observer is notified as more data becomes * available. * * @param image The image to draw. --- 488,495 ---- /** * Draws all of the image that is available and returns. If the image ! * is not completely loaded, false is returned and ! * the specified iamge observer is notified as more data becomes * available. * * @param image The image to draw. *************** public abstract class Graphics *** 502,513 **** */ public abstract boolean drawImage(Image image, int x, int y, ImageObserver observer); ! /** * Draws all of the image that is available and returns. The image * is scaled to fit in the specified rectangle. If the image ! * is not completely loaded, false is returned and ! * the specified iamge observer is notified as more data becomes * available. * * @param image The image to draw. --- 502,513 ---- */ public abstract boolean drawImage(Image image, int x, int y, ImageObserver observer); ! /** * Draws all of the image that is available and returns. The image * is scaled to fit in the specified rectangle. If the image ! * is not completely loaded, false is returned and ! * the specified iamge observer is notified as more data becomes * available. * * @param image The image to draw. *************** public abstract class Graphics *** 522,532 **** */ public abstract boolean drawImage(Image image, int x, int y, int width, int height, ImageObserver observer); ! /** * Draws all of the image that is available and returns. If the image ! * is not completely loaded, false is returned and ! * the specified iamge observer is notified as more data becomes * available. * * @param image The image to draw. --- 522,532 ---- */ public abstract boolean drawImage(Image image, int x, int y, int width, int height, ImageObserver observer); ! /** * Draws all of the image that is available and returns. If the image ! * is not completely loaded, false is returned and ! * the specified iamge observer is notified as more data becomes * available. * * @param image The image to draw. *************** public abstract class Graphics *** 540,551 **** */ public abstract boolean drawImage(Image image, int x, int y, Color bgcolor, ImageObserver observer); ! /** * Draws all of the image that is available and returns. The image * is scaled to fit in the specified rectangle. If the image ! * is not completely loaded, false is returned and ! * the specified iamge observer is notified as more data becomes * available. * * @param image The image to draw. --- 540,551 ---- */ public abstract boolean drawImage(Image image, int x, int y, Color bgcolor, ImageObserver observer); ! /** * Draws all of the image that is available and returns. The image * is scaled to fit in the specified rectangle. If the image ! * is not completely loaded, false is returned and ! * the specified iamge observer is notified as more data becomes * available. * * @param image The image to draw. *************** public abstract class Graphics *** 596,602 **** /** * Returns a string representation of this object. * ! * @return A string representation of this object. */ public String toString() { --- 596,602 ---- /** * Returns a string representation of this object. * ! * @return A string representation of this object. */ public String toString() { *************** public abstract class Graphics *** 626,632 **** public Rectangle getClipBounds(Rectangle r) { Rectangle clipBounds = getClipBounds(); ! if (r == null) return clipBounds; --- 626,632 ---- public Rectangle getClipBounds(Rectangle r) { Rectangle clipBounds = getClipBounds(); ! if (r == null) return clipBounds; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Graphics2D.java gcc-4.6.0/libjava/classpath/java/awt/Graphics2D.java *** gcc-4.5.2/libjava/classpath/java/awt/Graphics2D.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Graphics2D.java Tue Jan 11 19:46:05 2011 *************** import java.text.AttributedCharacterIter *** 51,77 **** import java.util.Map; /** ! * An abstract class defining a device independent two-dimensional vector ! * graphics API. Concrete subclasses implement this API for output of * vector graphics to: *

    *

      ! *
    • a {@link javax.swing.JComponent} - in the ! * {@link javax.swing.JComponent#paint(Graphics)} method, the incoming ! * {@link Graphics} should always be an instance of ! * Graphics2D;
    • ! *
    • a {@link BufferedImage} - see * {@link BufferedImage#createGraphics()};
    • ! *
    • a {@link java.awt.print.PrinterJob} - in the * {@link Printable#print(Graphics, PageFormat, int)} method, the incoming ! * {@link Graphics} should always be an instance of * Graphics2D.
    • *
    *

    ! * Third party libraries provide support for output to other formats via this * API, including encapsulated postscript (EPS), portable document format (PDF), * and scalable vector graphics (SVG). ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public abstract class Graphics2D extends Graphics --- 51,77 ---- import java.util.Map; /** ! * An abstract class defining a device independent two-dimensional vector ! * graphics API. Concrete subclasses implement this API for output of * vector graphics to: *

    *

      ! *
    • a {@link javax.swing.JComponent} - in the ! * {@link javax.swing.JComponent#paint(Graphics)} method, the incoming ! * {@link Graphics} should always be an instance of ! * Graphics2D;
    • ! *
    • a {@link BufferedImage} - see * {@link BufferedImage#createGraphics()};
    • ! *
    • a {@link java.awt.print.PrinterJob} - in the * {@link Printable#print(Graphics, PageFormat, int)} method, the incoming ! * {@link Graphics} should always be an instance of * Graphics2D.
    • *
    *

    ! * Third party libraries provide support for output to other formats via this * API, including encapsulated postscript (EPS), portable document format (PDF), * and scalable vector graphics (SVG). ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public abstract class Graphics2D extends Graphics *************** public abstract class Graphics2D extends *** 80,147 **** protected Graphics2D() { } ! public void draw3DRect(int x, int y, int width, int height, ! boolean raised) { super.draw3DRect(x, y, width, height, raised); } ! public void fill3DRect(int x, int y, int width, int height, ! boolean raised) { super.fill3DRect(x, y, width, height, raised); } /** * Draws an outline around a shape using the current stroke and paint. ! * * @param shape the shape (null not permitted). ! * * @see #getStroke() * @see #getPaint() */ public abstract void draw(Shape shape); public abstract boolean drawImage(Image image, AffineTransform xform, ! ImageObserver obs); public abstract void drawImage(BufferedImage image, ! BufferedImageOp op, ! int x, ! int y); public abstract void drawRenderedImage(RenderedImage image, ! AffineTransform xform); public abstract void drawRenderableImage(RenderableImage image, AffineTransform xform); /** * Draws a string at the specified location, using the current font. ! * * @param text the string to draw. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @see Graphics#setFont(Font) */ public abstract void drawString(String text, int x, int y); /** * Draws a string at the specified location, using the current font. ! * * @param text the string to draw. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @see Graphics#setFont(Font) */ public abstract void drawString(String text, float x, float y); ! /** * Draws an attributed string at the specified location. ! * * @param iterator the source of the attributed text. * @param x the x-coordinate. * @param y the y-coordinate. --- 80,147 ---- protected Graphics2D() { } ! public void draw3DRect(int x, int y, int width, int height, ! boolean raised) { super.draw3DRect(x, y, width, height, raised); } ! public void fill3DRect(int x, int y, int width, int height, ! boolean raised) { super.fill3DRect(x, y, width, height, raised); } /** * Draws an outline around a shape using the current stroke and paint. ! * * @param shape the shape (null not permitted). ! * * @see #getStroke() * @see #getPaint() */ public abstract void draw(Shape shape); public abstract boolean drawImage(Image image, AffineTransform xform, ! ImageObserver obs); public abstract void drawImage(BufferedImage image, ! BufferedImageOp op, ! int x, ! int y); public abstract void drawRenderedImage(RenderedImage image, ! AffineTransform xform); public abstract void drawRenderableImage(RenderableImage image, AffineTransform xform); /** * Draws a string at the specified location, using the current font. ! * * @param text the string to draw. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @see Graphics#setFont(Font) */ public abstract void drawString(String text, int x, int y); /** * Draws a string at the specified location, using the current font. ! * * @param text the string to draw. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @see Graphics#setFont(Font) */ public abstract void drawString(String text, float x, float y); ! /** * Draws an attributed string at the specified location. ! * * @param iterator the source of the attributed text. * @param x the x-coordinate. * @param y the y-coordinate. *************** public abstract class Graphics2D extends *** 151,210 **** /** * Draws an attributed string at the specified location. ! * * @param iterator the source of the attributed text. * @param x the x-coordinate. * @param y the y-coordinate. */ public abstract void drawString(AttributedCharacterIterator iterator, ! float x, float y); /** * Fills the interior of the specified shape using the current * paint. ! * * @param shape the shape to fill (null not permitted). ! * * @see #draw(Shape) * @see #getPaint() */ public abstract void fill(Shape shape); ! public abstract boolean hit(Rectangle rect, Shape text, ! boolean onStroke); public abstract GraphicsConfiguration getDeviceConfiguration(); /** * Sets the current compositing rule. ! * * @param comp the composite. ! * * @see #getComposite() */ public abstract void setComposite(Composite comp); ! /** * Sets the paint to be used for subsequent drawing operations. ! * * @param paint the paint (null not permitted). ! * * @see #getPaint() */ public abstract void setPaint(Paint paint); /** * Sets the stroke to be used for subsequent drawing operations. ! * * @param stroke the stroke (null not permitted). ! * * @see #getStroke() */ public abstract void setStroke(Stroke stroke); /** * Adds or updates a hint in the current rendering hints table. ! * * @param hintKey the hint key. * @param hintValue the hint value. */ --- 151,210 ---- /** * Draws an attributed string at the specified location. ! * * @param iterator the source of the attributed text. * @param x the x-coordinate. * @param y the y-coordinate. */ public abstract void drawString(AttributedCharacterIterator iterator, ! float x, float y); /** * Fills the interior of the specified shape using the current * paint. ! * * @param shape the shape to fill (null not permitted). ! * * @see #draw(Shape) * @see #getPaint() */ public abstract void fill(Shape shape); ! public abstract boolean hit(Rectangle rect, Shape text, ! boolean onStroke); public abstract GraphicsConfiguration getDeviceConfiguration(); /** * Sets the current compositing rule. ! * * @param comp the composite. ! * * @see #getComposite() */ public abstract void setComposite(Composite comp); ! /** * Sets the paint to be used for subsequent drawing operations. ! * * @param paint the paint (null not permitted). ! * * @see #getPaint() */ public abstract void setPaint(Paint paint); /** * Sets the stroke to be used for subsequent drawing operations. ! * * @param stroke the stroke (null not permitted). ! * * @see #getStroke() */ public abstract void setStroke(Stroke stroke); /** * Adds or updates a hint in the current rendering hints table. ! * * @param hintKey the hint key. * @param hintValue the hint value. */ *************** public abstract class Graphics2D extends *** 213,244 **** /** * Returns the current value of a rendering hint. ! * * @param hintKey the key for the hint. ! * * @return The value for the specified hint. */ public abstract Object getRenderingHint(RenderingHints.Key hintKey); ! /** * Replaces the current rendering hints with the supplied hints. ! * * @param hints the hints. ! * * @see #addRenderingHints(Map) */ public abstract void setRenderingHints(Map hints); /** * Adds/updates the rendering hint. ! * * @param hints the hints to add or update. */ public abstract void addRenderingHints(Map hints); /** * Returns the current rendering hints. ! * * @return The current rendering hints. */ public abstract RenderingHints getRenderingHints(); --- 213,244 ---- /** * Returns the current value of a rendering hint. ! * * @param hintKey the key for the hint. ! * * @return The value for the specified hint. */ public abstract Object getRenderingHint(RenderingHints.Key hintKey); ! /** * Replaces the current rendering hints with the supplied hints. ! * * @param hints the hints. ! * * @see #addRenderingHints(Map) */ public abstract void setRenderingHints(Map hints); /** * Adds/updates the rendering hint. ! * * @param hints the hints to add or update. */ public abstract void addRenderingHints(Map hints); /** * Returns the current rendering hints. ! * * @return The current rendering hints. */ public abstract RenderingHints getRenderingHints(); *************** public abstract class Graphics2D extends *** 246,252 **** public abstract void translate(int x, int y); public abstract void translate(double tx, double ty); ! public abstract void rotate(double theta); public abstract void rotate(double theta, double x, double y); --- 246,252 ---- public abstract void translate(int x, int y); public abstract void translate(double tx, double ty); ! public abstract void rotate(double theta); public abstract void rotate(double theta, double x, double y); *************** public abstract class Graphics2D extends *** 258,355 **** /** * Sets the current transform to a concatenation of transform * and the existing transform. ! * * @param transform the transform. */ public abstract void transform(AffineTransform transform); ! /** * Sets the current transform. If the caller specifies a null ! * transform, this method should set the current transform to the * identity transform. ! * * @param transform the transform (null permitted). ! * * @see #getTransform() */ public abstract void setTransform(AffineTransform transform); /** * Returns the current transform. ! * * @return The current transform. ! * * @see #setTransform(AffineTransform) */ public abstract AffineTransform getTransform(); /** * Returns the current paint. ! * * @return The current paint. ! * * @see #setPaint(Paint) */ public abstract Paint getPaint(); /** * Returns the current compositing rule. ! * * @return The current compositing rule. ! * * @see #setComposite(Composite) */ public abstract Composite getComposite(); /** ! * Sets the background color (used by the * {@link Graphics#clearRect(int, int, int, int)} method). ! * * @param color the color. ! * * @see #getBackground() */ public abstract void setBackground(Color color); /** ! * Returns the color used by the * {@link Graphics#clearRect(int, int, int, int)} method. ! * * @return The background color. ! * * @see #setBackground(Color) */ public abstract Color getBackground(); /** * Returns the current stroke. ! * * @return The current stroke. ! * * @see #setStroke(Stroke) */ ! public abstract Stroke getStroke(); /** ! * Sets the clip region to the intersection of the current clipping region * and s. ! * * @param s the shape to intersect with the current clipping region. ! * * @see Graphics#setClip(Shape) */ public abstract void clip(Shape s); /** * Returns the font render context. ! * * @return The font render context. */ public abstract FontRenderContext getFontRenderContext(); /** * Draws a glyph vector at the specified location. ! * * @param g the glyph vector. * @param x the x-coordinate. * @param y the y-coordinate. --- 258,355 ---- /** * Sets the current transform to a concatenation of transform * and the existing transform. ! * * @param transform the transform. */ public abstract void transform(AffineTransform transform); ! /** * Sets the current transform. If the caller specifies a null ! * transform, this method should set the current transform to the * identity transform. ! * * @param transform the transform (null permitted). ! * * @see #getTransform() */ public abstract void setTransform(AffineTransform transform); /** * Returns the current transform. ! * * @return The current transform. ! * * @see #setTransform(AffineTransform) */ public abstract AffineTransform getTransform(); /** * Returns the current paint. ! * * @return The current paint. ! * * @see #setPaint(Paint) */ public abstract Paint getPaint(); /** * Returns the current compositing rule. ! * * @return The current compositing rule. ! * * @see #setComposite(Composite) */ public abstract Composite getComposite(); /** ! * Sets the background color (used by the * {@link Graphics#clearRect(int, int, int, int)} method). ! * * @param color the color. ! * * @see #getBackground() */ public abstract void setBackground(Color color); /** ! * Returns the color used by the * {@link Graphics#clearRect(int, int, int, int)} method. ! * * @return The background color. ! * * @see #setBackground(Color) */ public abstract Color getBackground(); /** * Returns the current stroke. ! * * @return The current stroke. ! * * @see #setStroke(Stroke) */ ! public abstract Stroke getStroke(); /** ! * Sets the clip region to the intersection of the current clipping region * and s. ! * * @param s the shape to intersect with the current clipping region. ! * * @see Graphics#setClip(Shape) */ public abstract void clip(Shape s); /** * Returns the font render context. ! * * @return The font render context. */ public abstract FontRenderContext getFontRenderContext(); /** * Draws a glyph vector at the specified location. ! * * @param g the glyph vector. * @param x the x-coordinate. * @param y the y-coordinate. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/GraphicsConfiguration.java gcc-4.6.0/libjava/classpath/java/awt/GraphicsConfiguration.java *** gcc-4.5.2/libjava/classpath/java/awt/GraphicsConfiguration.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/GraphicsConfiguration.java Tue Jan 11 19:46:05 2011 *************** import java.awt.image.VolatileImage; *** 63,75 **** */ public abstract class GraphicsConfiguration { ! /** The cached image capabilities. */ private ImageCapabilities imageCapabilities; ! /** The cached buffer capabilities. */ private BufferCapabilities bufferCapabilities; ! /** * The default constructor. * --- 63,75 ---- */ public abstract class GraphicsConfiguration { ! /** The cached image capabilities. */ private ImageCapabilities imageCapabilities; ! /** The cached buffer capabilities. */ private BufferCapabilities bufferCapabilities; ! /** * The default constructor. * *************** public abstract class GraphicsConfigurat *** 253,259 **** { if (imageCapabilities == null) getImageCapabilities(); ! if (bufferCapabilities == null) bufferCapabilities = new BufferCapabilities(imageCapabilities, imageCapabilities, null); --- 253,259 ---- { if (imageCapabilities == null) getImageCapabilities(); ! if (bufferCapabilities == null) bufferCapabilities = new BufferCapabilities(imageCapabilities, imageCapabilities, null); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/GraphicsDevice.java gcc-4.6.0/libjava/classpath/java/awt/GraphicsDevice.java *** gcc-4.5.2/libjava/classpath/java/awt/GraphicsDevice.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/GraphicsDevice.java Tue Jan 11 19:46:05 2011 *************** public abstract class GraphicsDevice *** 175,181 **** // Restore the previous window to normal mode and release the reference. if (full_screen != null) { ! full_screen.setBounds(fullScreenOldBounds); } full_screen = null; --- 175,181 ---- // Restore the previous window to normal mode and release the reference. if (full_screen != null) { ! full_screen.setBounds(fullScreenOldBounds); } full_screen = null; *************** public abstract class GraphicsDevice *** 183,194 **** // If w != null, make it full-screen. if (w != null) { ! fullScreenOldBounds = w.getBounds(); ! full_screen = w; ! DisplayMode dMode = getDisplayMode(); ! full_screen.setBounds(0, 0, dMode.getWidth(), dMode.getHeight()); ! full_screen.requestFocus(); ! full_screen.setLocationRelativeTo(null); } } --- 183,194 ---- // If w != null, make it full-screen. if (w != null) { ! fullScreenOldBounds = w.getBounds(); ! full_screen = w; ! DisplayMode dMode = getDisplayMode(); ! full_screen.setBounds(0, 0, dMode.getWidth(), dMode.getHeight()); ! full_screen.requestFocus(); ! full_screen.setLocationRelativeTo(null); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/GridBagConstraints.java gcc-4.6.0/libjava/classpath/java/awt/GridBagConstraints.java *** gcc-4.5.2/libjava/classpath/java/awt/GridBagConstraints.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/GridBagConstraints.java Tue Jan 11 19:46:05 2011 *************** public class GridBagConstraints implemen *** 191,204 **** { try { ! GridBagConstraints g = (GridBagConstraints) super.clone (); ! g.insets = (Insets) insets.clone (); ! return g; } catch (CloneNotSupportedException _) { ! // Can't happen. ! return null; } } --- 191,204 ---- { try { ! GridBagConstraints g = (GridBagConstraints) super.clone (); ! g.insets = (Insets) insets.clone (); ! return g; } catch (CloneNotSupportedException _) { ! // Can't happen. ! return null; } } *************** public class GridBagConstraints implemen *** 226,235 **** * parameters. */ public GridBagConstraints (int gridx, int gridy, ! int gridwidth, int gridheight, ! double weightx, double weighty, ! int anchor, int fill, ! Insets insets, int ipadx, int ipady) { this.anchor = anchor; this.fill = fill; --- 226,235 ---- * parameters. */ public GridBagConstraints (int gridx, int gridy, ! int gridwidth, int gridheight, ! double weightx, double weighty, ! int anchor, int fill, ! Insets insets, int ipadx, int ipady) { this.anchor = anchor; this.fill = fill; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/GridBagLayout.java gcc-4.6.0/libjava/classpath/java/awt/GridBagLayout.java *** gcc-4.5.2/libjava/classpath/java/awt/GridBagLayout.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/GridBagLayout.java Tue Jan 11 19:46:05 2011 *************** public class GridBagLayout *** 75,83 **** public GridBagLayout () { ! this.comptable = new Hashtable(); ! this.internalcomptable = new Hashtable(); ! this.defaultConstraints= new GridBagConstraints(); } /** --- 75,83 ---- public GridBagLayout () { ! this.comptable = new Hashtable(); ! this.internalcomptable = new Hashtable(); ! this.defaultConstraints= new GridBagConstraints(); } /** *************** public class GridBagLayout *** 85,96 **** */ private int sumIntArray (int[] array, int upto) { ! int result = 0; ! for (int i = 0; i < upto; i++) ! result += array [i]; ! return result; } /** --- 85,96 ---- */ private int sumIntArray (int[] array, int upto) { ! int result = 0; ! for (int i = 0; i < upto; i++) ! result += array [i]; ! return result; } /** *************** public class GridBagLayout *** 98,104 **** */ private int sumIntArray (int[] array) { ! return sumIntArray(array, array.length); } /** --- 98,104 ---- */ private int sumIntArray (int[] array) { ! return sumIntArray(array, array.length); } /** *************** public class GridBagLayout *** 106,163 **** */ private double sumDoubleArray (double[] array) { ! double result = 0; ! for (int i = 0; i < array.length; i++) ! result += array [i]; ! return result; } public void addLayoutComponent (String name, Component component) { ! // do nothing here. } public void removeLayoutComponent (Component component) { ! // do nothing here } public void addLayoutComponent (Component component, Object constraints) { ! if (constraints == null) ! return; ! if (!(constraints instanceof GridBagConstraints)) ! throw new IllegalArgumentException("constraints " ! + constraints ! + " are not an instance of GridBagConstraints"); ! setConstraints (component, (GridBagConstraints) constraints); } public Dimension preferredLayoutSize (Container parent) { ! if (parent == null) ! return new Dimension (0, 0); ! ! GridBagLayoutInfo li = getLayoutInfo (parent, PREFERREDSIZE); ! return getMinSize (parent, li); } public Dimension minimumLayoutSize (Container parent) { ! if (parent == null) ! return new Dimension (0, 0); ! ! GridBagLayoutInfo li = getLayoutInfo (parent, MINSIZE); ! return getMinSize (parent, li); } public Dimension maximumLayoutSize (Container target) { ! return new Dimension (Integer.MAX_VALUE, Integer.MAX_VALUE); } public void layoutContainer (Container parent) --- 106,163 ---- */ private double sumDoubleArray (double[] array) { ! double result = 0; ! for (int i = 0; i < array.length; i++) ! result += array [i]; ! return result; } public void addLayoutComponent (String name, Component component) { ! // do nothing here. } public void removeLayoutComponent (Component component) { ! // do nothing here } public void addLayoutComponent (Component component, Object constraints) { ! if (constraints == null) ! return; ! if (!(constraints instanceof GridBagConstraints)) ! throw new IllegalArgumentException("constraints " ! + constraints ! + " are not an instance of GridBagConstraints"); ! setConstraints (component, (GridBagConstraints) constraints); } public Dimension preferredLayoutSize (Container parent) { ! if (parent == null) ! return new Dimension (0, 0); ! ! GridBagLayoutInfo li = getLayoutInfo (parent, PREFERREDSIZE); ! return getMinSize (parent, li); } public Dimension minimumLayoutSize (Container parent) { ! if (parent == null) ! return new Dimension (0, 0); ! ! GridBagLayoutInfo li = getLayoutInfo (parent, MINSIZE); ! return getMinSize (parent, li); } public Dimension maximumLayoutSize (Container target) { ! return new Dimension (Integer.MAX_VALUE, Integer.MAX_VALUE); } public void layoutContainer (Container parent) *************** public class GridBagLayout *** 167,238 **** public float getLayoutAlignmentX (Container target) { ! return Component.CENTER_ALIGNMENT; } public float getLayoutAlignmentY (Container target) { ! return Component.CENTER_ALIGNMENT; } public void invalidateLayout (Container target) { ! this.layoutInfo = null; } public void setConstraints (Component component, ! GridBagConstraints constraints) { ! GridBagConstraints clone = (GridBagConstraints) constraints.clone(); ! if (clone.gridx < 0) ! clone.gridx = GridBagConstraints.RELATIVE; ! ! if (clone.gridy < 0) ! clone.gridy = GridBagConstraints.RELATIVE; ! if (clone.gridwidth == 0) ! clone.gridwidth = GridBagConstraints.REMAINDER; ! else if (clone.gridwidth < 0) ! clone.gridwidth = 1; ! ! if (clone.gridheight == 0) ! clone.gridheight = GridBagConstraints.REMAINDER; ! else if (clone.gridheight < 0) ! clone.gridheight = 1; ! ! comptable.put (component, clone); } public GridBagConstraints getConstraints (Component component) { ! return (GridBagConstraints) (lookupConstraints (component).clone()); } protected GridBagConstraints lookupConstraints (Component component) { ! GridBagConstraints result = comptable.get (component); ! if (result == null) ! { ! setConstraints (component, defaultConstraints); ! result = comptable.get (component); ! } ! ! return result; } private GridBagConstraints lookupInternalConstraints (Component component) { ! GridBagConstraints result = internalcomptable.get (component); ! if (result == null) ! { ! result = (GridBagConstraints) lookupConstraints(component).clone(); ! internalcomptable.put (component, result); ! } ! ! return result; } /** --- 167,238 ---- public float getLayoutAlignmentX (Container target) { ! return Component.CENTER_ALIGNMENT; } public float getLayoutAlignmentY (Container target) { ! return Component.CENTER_ALIGNMENT; } public void invalidateLayout (Container target) { ! this.layoutInfo = null; } public void setConstraints (Component component, ! GridBagConstraints constraints) { ! GridBagConstraints clone = (GridBagConstraints) constraints.clone(); ! if (clone.gridx < 0) ! clone.gridx = GridBagConstraints.RELATIVE; ! if (clone.gridy < 0) ! clone.gridy = GridBagConstraints.RELATIVE; ! ! if (clone.gridwidth == 0) ! clone.gridwidth = GridBagConstraints.REMAINDER; ! else if (clone.gridwidth < 0) ! clone.gridwidth = 1; ! ! if (clone.gridheight == 0) ! clone.gridheight = GridBagConstraints.REMAINDER; ! else if (clone.gridheight < 0) ! clone.gridheight = 1; ! ! comptable.put (component, clone); } public GridBagConstraints getConstraints (Component component) { ! return (GridBagConstraints) (lookupConstraints (component).clone()); } protected GridBagConstraints lookupConstraints (Component component) { ! GridBagConstraints result = comptable.get (component); ! if (result == null) ! { ! setConstraints (component, defaultConstraints); ! result = comptable.get (component); ! } ! ! return result; } private GridBagConstraints lookupInternalConstraints (Component component) { ! GridBagConstraints result = internalcomptable.get (component); ! if (result == null) ! { ! result = (GridBagConstraints) lookupConstraints(component).clone(); ! internalcomptable.put (component, result); ! } ! ! return result; } /** *************** public class GridBagLayout *** 240,249 **** */ public Point getLayoutOrigin () { ! if (layoutInfo == null) ! return new Point (0, 0); ! ! return new Point (layoutInfo.pos_x, layoutInfo.pos_y); } /** --- 240,249 ---- */ public Point getLayoutOrigin () { ! if (layoutInfo == null) ! return new Point (0, 0); ! ! return new Point (layoutInfo.pos_x, layoutInfo.pos_y); } /** *************** public class GridBagLayout *** 251,288 **** */ public int[][] getLayoutDimensions () { ! int[][] result = new int [2][]; ! if (layoutInfo == null) ! { ! result[0] = new int[0]; ! result[1] = new int[0]; ! return result; ! } ! result [0] = new int [layoutInfo.cols]; ! System.arraycopy (layoutInfo.colWidths, 0, result [0], 0, layoutInfo.cols); ! result [1] = new int [layoutInfo.rows]; ! System.arraycopy (layoutInfo.rowHeights, 0, result [1], 0, layoutInfo.rows); ! return result; } public double[][] getLayoutWeights () { ! double[][] result = new double [2][]; ! if (layoutInfo == null) ! { ! result[0] = new double[0]; ! result[1] = new double[0]; ! return result; ! } ! result [0] = new double [layoutInfo.cols]; ! System.arraycopy (layoutInfo.colWeights, 0, result [0], 0, layoutInfo.cols); ! result [1] = new double [layoutInfo.rows]; ! System.arraycopy (layoutInfo.rowWeights, 0, result [1], 0, layoutInfo.rows); ! return result; } /** --- 251,288 ---- */ public int[][] getLayoutDimensions () { ! int[][] result = new int [2][]; ! if (layoutInfo == null) ! { ! result[0] = new int[0]; ! result[1] = new int[0]; ! return result; ! } ! result [0] = new int [layoutInfo.cols]; ! System.arraycopy (layoutInfo.colWidths, 0, result [0], 0, layoutInfo.cols); ! result [1] = new int [layoutInfo.rows]; ! System.arraycopy (layoutInfo.rowHeights, 0, result [1], 0, layoutInfo.rows); ! return result; } public double[][] getLayoutWeights () { ! double[][] result = new double [2][]; ! if (layoutInfo == null) ! { ! result[0] = new double[0]; ! result[1] = new double[0]; ! return result; ! } ! result [0] = new double [layoutInfo.cols]; ! System.arraycopy (layoutInfo.colWeights, 0, result [0], 0, layoutInfo.cols); ! result [1] = new double [layoutInfo.rows]; ! System.arraycopy (layoutInfo.rowWeights, 0, result [1], 0, layoutInfo.rows); ! return result; } /** *************** public class GridBagLayout *** 290,322 **** */ public Point location (int x, int y) { ! if (layoutInfo == null) ! return new Point (0, 0); ! int col; ! int row; ! int pixel_x = layoutInfo.pos_x; ! int pixel_y = layoutInfo.pos_y; ! for (col = 0; col < layoutInfo.cols; col++) ! { ! int w = layoutInfo.colWidths [col]; ! if (x < pixel_x + w) ! break; ! pixel_x += w; ! } ! for (row = 0; row < layoutInfo.rows; row++) ! { ! int h = layoutInfo.rowHeights [row]; ! if (y < pixel_y + h) ! break; ! pixel_y += h; ! } ! return new Point (col, row); } /** --- 290,322 ---- */ public Point location (int x, int y) { ! if (layoutInfo == null) ! return new Point (0, 0); ! int col; ! int row; ! int pixel_x = layoutInfo.pos_x; ! int pixel_y = layoutInfo.pos_y; ! for (col = 0; col < layoutInfo.cols; col++) ! { ! int w = layoutInfo.colWidths [col]; ! if (x < pixel_x + w) ! break; ! pixel_x += w; ! } ! for (row = 0; row < layoutInfo.rows; row++) ! { ! int h = layoutInfo.rowHeights [row]; ! if (y < pixel_y + h) ! break; ! pixel_y += h; ! } ! return new Point (col, row); } /** *************** public class GridBagLayout *** 328,334 **** { return getClass().getName(); } ! /** * Move and resize a rectangle according to a set of grid bag * constraints. The x, y, width and height fields of the --- 328,334 ---- { return getClass().getName(); } ! /** * Move and resize a rectangle according to a set of grid bag * constraints. The x, y, width and height fields of the *************** public class GridBagLayout *** 342,353 **** { Insets insets = constraints.insets; if (insets != null) ! { ! r.x += insets.left; ! r.y += insets.top; ! r.width -= insets.left + insets.right; ! r.height -= insets.top + insets.bottom; ! } } /** --- 342,353 ---- { Insets insets = constraints.insets; if (insets != null) ! { ! r.x += insets.left; ! r.y += insets.top; ! r.width -= insets.left + insets.right; ! r.height -= insets.top + insets.bottom; ! } } /** *************** public class GridBagLayout *** 385,397 **** Dimension dim = component.getPreferredSize(); GridBagConstraints constraints = lookupInternalConstraints(component); ! if (lastComp != null && constraints.gridheight == GridBagConstraints.REMAINDER) cell.y += cell.height; else cell.y = sumIntArray(info.rowHeights, constraints.gridy); ! if (lastComp != null && constraints.gridwidth == GridBagConstraints.REMAINDER) cell.x += cell.width; --- 385,397 ---- Dimension dim = component.getPreferredSize(); GridBagConstraints constraints = lookupInternalConstraints(component); ! if (lastComp != null && constraints.gridheight == GridBagConstraints.REMAINDER) cell.y += cell.height; else cell.y = sumIntArray(info.rowHeights, constraints.gridy); ! if (lastComp != null && constraints.gridwidth == GridBagConstraints.REMAINDER) cell.x += cell.width; *************** public class GridBagLayout *** 402,410 **** + constraints.gridwidth) - cell.x; cell.height = sumIntArray(info.rowHeights, constraints.gridy + constraints.gridheight) - cell.y; ! // Adjust for insets. ! AdjustForGravity( constraints, cell ); // Note: Documentation says that padding is added on both sides, but // visual inspection shows that the Sun implementation only adds it --- 402,410 ---- + constraints.gridwidth) - cell.x; cell.height = sumIntArray(info.rowHeights, constraints.gridy + constraints.gridheight) - cell.y; ! // Adjust for insets. ! AdjustForGravity( constraints, cell ); // Note: Documentation says that padding is added on both sides, but // visual inspection shows that the Sun implementation only adds it *************** public class GridBagLayout *** 492,498 **** Insets parentInsets = parent.getInsets (); parentDim.width -= parentInsets.left + parentInsets.right; parentDim.height -= parentInsets.top + parentInsets.bottom; ! int current_y = 0; int max_x = 0; int max_y = 0; --- 492,498 ---- Insets parentInsets = parent.getInsets (); parentDim.width -= parentInsets.left + parentInsets.right; parentDim.height -= parentInsets.top + parentInsets.bottom; ! int current_y = 0; int max_x = 0; int max_y = 0; *************** public class GridBagLayout *** 508,520 **** // smallest to largest, with REMAINDER and RELATIVE at the end. // These are useful when determining sizes and weights. ArrayList sortedByWidth = ! new ArrayList(components.length); ArrayList sortedByHeight = ! new ArrayList(components.length); // STEP 1: first we figure out how many rows/columns for (int i = 0; i < components.length; i++) ! { Component component = components [i]; // If component is not visible we dont have to care about it. if (!component.isVisible()) --- 508,520 ---- // smallest to largest, with REMAINDER and RELATIVE at the end. // These are useful when determining sizes and weights. ArrayList sortedByWidth = ! new ArrayList(components.length); ArrayList sortedByHeight = ! new ArrayList(components.length); // STEP 1: first we figure out how many rows/columns for (int i = 0; i < components.length; i++) ! { Component component = components [i]; // If component is not visible we dont have to care about it. if (!component.isVisible()) *************** public class GridBagLayout *** 557,563 **** // Check the component that occupies the right-most spot in this // row. We want to add this component after it. // If this row is empty, add to the 0 position. ! if (!lastInRow.containsKey(new Integer(constraints.gridy))) x = 0; else { --- 557,563 ---- // Check the component that occupies the right-most spot in this // row. We want to add this component after it. // If this row is empty, add to the 0 position. ! if (!lastInRow.containsKey(new Integer(constraints.gridy))) x = 0; else { *************** public class GridBagLayout *** 588,594 **** // Check the component that occupies the bottom-most spot in // this column. We want to add this component below it. // If this column is empty, add to the 0 position. ! if (!lastInCol.containsKey(new Integer(constraints.gridx))) { y = current_y; } --- 588,594 ---- // Check the component that occupies the bottom-most spot in // this column. We want to add this component below it. // If this column is empty, add to the 0 position. ! if (!lastInCol.containsKey(new Integer(constraints.gridx))) { y = current_y; } *************** public class GridBagLayout *** 616,622 **** } // case 4: do nothing ! max_x = Math.max(max_x, constraints.gridx + Math.max(1, constraints.gridwidth)); max_y = Math.max(max_y, constraints.gridy + Math.max(1, constraints.gridheight)); --- 616,622 ---- } // case 4: do nothing ! max_x = Math.max(max_x, constraints.gridx + Math.max(1, constraints.gridwidth)); max_y = Math.max(max_y, constraints.gridy + Math.max(1, constraints.gridheight)); *************** public class GridBagLayout *** 626,636 **** // Update our reference points for RELATIVE gridx and gridy. if(constraints.gridwidth == GridBagConstraints.REMAINDER) ! { current_y = constraints.gridy + Math.max(1, constraints.gridheight); ! } else if (constraints.gridwidth != GridBagConstraints.REMAINDER) ! { for (int y = constraints.gridy; y < constraints.gridy + Math.max(1, constraints.gridheight); y++) { if(lastInRow.containsKey(new Integer(y))) --- 626,636 ---- // Update our reference points for RELATIVE gridx and gridy. if(constraints.gridwidth == GridBagConstraints.REMAINDER) ! { current_y = constraints.gridy + Math.max(1, constraints.gridheight); ! } else if (constraints.gridwidth != GridBagConstraints.REMAINDER) ! { for (int y = constraints.gridy; y < constraints.gridy + Math.max(1, constraints.gridheight); y++) { if(lastInRow.containsKey(new Integer(y))) *************** public class GridBagLayout *** 664,672 **** lastInCol.put(new Integer(x), component); } } ! } ! } // end of STEP 1 ! GridBagLayoutInfo info = new GridBagLayoutInfo(max_x, max_y); // Check if column widths and row heights are overridden. --- 664,672 ---- lastInCol.put(new Integer(x), component); } } ! } ! } // end of STEP 1 ! GridBagLayoutInfo info = new GridBagLayoutInfo(max_x, max_y); // Check if column widths and row heights are overridden. *************** public class GridBagLayout *** 691,701 **** for (int i = 0; i < components.length; i++) { Component component = components [i]; ! // If component is not visible we dont have to care about it. if (!component.isVisible()) continue; ! GridBagConstraints constraints = lookupInternalConstraints (component); if(constraints.gridwidth == GridBagConstraints.REMAINDER || constraints.gridwidth == GridBagConstraints.RELATIVE) --- 691,701 ---- for (int i = 0; i < components.length; i++) { Component component = components [i]; ! // If component is not visible we dont have to care about it. if (!component.isVisible()) continue; ! GridBagConstraints constraints = lookupInternalConstraints (component); if(constraints.gridwidth == GridBagConstraints.REMAINDER || constraints.gridwidth == GridBagConstraints.RELATIVE) *************** public class GridBagLayout *** 745,751 **** if (lastComponent != null) { GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ! if (lastConstraints.gridheight == GridBagConstraints.RELATIVE) { constraints.gridy = max_y - 1; --- 745,751 ---- if (lastComponent != null) { GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ! if (lastConstraints.gridheight == GridBagConstraints.RELATIVE) { constraints.gridy = max_y - 1; *************** public class GridBagLayout *** 776,782 **** for (int i = 0; i < sortedByWidth.size(); i++) { Component component = sortedByWidth.get(i); ! // If component is not visible we dont have to care about it. if (!component.isVisible()) continue; --- 776,782 ---- for (int i = 0; i < sortedByWidth.size(); i++) { Component component = sortedByWidth.get(i); ! // If component is not visible we dont have to care about it. if (!component.isVisible()) continue; *************** public class GridBagLayout *** 793,799 **** width += constraints.ipadx; distributeSizeAndWeight(width, ! constraints.weightx, constraints.gridx, constraints.gridwidth, info.colWidths, --- 793,799 ---- width += constraints.ipadx; distributeSizeAndWeight(width, ! constraints.weightx, constraints.gridx, constraints.gridwidth, info.colWidths, *************** public class GridBagLayout *** 804,810 **** for (int i = 0; i < sortedByHeight.size(); i++) { Component component = sortedByHeight.get(i); ! // If component is not visible we dont have to care about it. if (!component.isVisible()) continue; --- 804,810 ---- for (int i = 0; i < sortedByHeight.size(); i++) { Component component = sortedByHeight.get(i); ! // If component is not visible we dont have to care about it. if (!component.isVisible()) continue; *************** public class GridBagLayout *** 819,827 **** height += constraints.insets.top + constraints.insets.bottom; height += constraints.ipady; ! distributeSizeAndWeight(height, ! constraints.weighty, constraints.gridy, constraints.gridheight, info.rowHeights, --- 819,827 ---- height += constraints.insets.top + constraints.insets.bottom; height += constraints.ipady; ! distributeSizeAndWeight(height, ! constraints.weighty, constraints.gridy, constraints.gridheight, info.rowHeights, *************** public class GridBagLayout *** 890,896 **** * FIXME: Use a better sorting algorithm. */ private void sortBySpan (Component component, int span, ! ArrayList list, boolean sortByWidth) { if (span == GridBagConstraints.REMAINDER || span == GridBagConstraints.RELATIVE) --- 890,896 ---- * FIXME: Use a better sorting algorithm. */ private void sortBySpan (Component component, int span, ! ArrayList list, boolean sortByWidth) { if (span == GridBagConstraints.REMAINDER || span == GridBagConstraints.RELATIVE) *************** public class GridBagLayout *** 1005,1011 **** double extraWeight = diff * weights[k] / totalWeight; weights[k] += extraWeight; remaining -= extraWeight; ! } if (remaining > 0.0 && weights[start + span - 1] != 0.0) { --- 1005,1011 ---- double extraWeight = diff * weights[k] / totalWeight; weights[k] += extraWeight; remaining -= extraWeight; ! } if (remaining > 0.0 && weights[start + span - 1] != 0.0) { *************** public class GridBagLayout *** 1044,1085 **** private void dumpLayoutInfo (GridBagLayoutInfo info) { ! System.out.println ("GridBagLayoutInfo:"); ! System.out.println ("cols: " + info.cols + ", rows: " + info.rows); ! System.out.print ("colWidths: "); ! dumpArray(info.colWidths); ! System.out.print ("rowHeights: "); ! dumpArray(info.rowHeights); ! System.out.print ("colWeights: "); ! dumpArray(info.colWeights); ! System.out.print ("rowWeights: "); ! dumpArray(info.rowWeights); } private void dumpArray(int[] array) { ! String sep = ""; ! for(int i = 0; i < array.length; i++) ! { ! System.out.print(sep); ! System.out.print(array[i]); ! sep = ", "; ! } ! System.out.println(); } private void dumpArray(double[] array) { ! String sep = ""; ! for(int i = 0; i < array.length; i++) ! { ! System.out.print(sep); ! System.out.print(array[i]); ! sep = ", "; ! } ! System.out.println(); } ! /** * @since 1.4 */ --- 1044,1085 ---- private void dumpLayoutInfo (GridBagLayoutInfo info) { ! System.out.println ("GridBagLayoutInfo:"); ! System.out.println ("cols: " + info.cols + ", rows: " + info.rows); ! System.out.print ("colWidths: "); ! dumpArray(info.colWidths); ! System.out.print ("rowHeights: "); ! dumpArray(info.rowHeights); ! System.out.print ("colWeights: "); ! dumpArray(info.colWeights); ! System.out.print ("rowWeights: "); ! dumpArray(info.rowWeights); } private void dumpArray(int[] array) { ! String sep = ""; ! for(int i = 0; i < array.length; i++) ! { ! System.out.print(sep); ! System.out.print(array[i]); ! sep = ", "; ! } ! System.out.println(); } private void dumpArray(double[] array) { ! String sep = ""; ! for(int i = 0; i < array.length; i++) ! { ! System.out.print(sep); ! System.out.print(array[i]); ! sep = ", "; ! } ! System.out.println(); } ! /** * @since 1.4 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/GridLayout.java gcc-4.6.0/libjava/classpath/java/awt/GridLayout.java *** gcc-4.5.2/libjava/classpath/java/awt/GridLayout.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/GridLayout.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 58,64 **** public class GridLayout implements LayoutManager, Serializable { static final long serialVersionUID = -7411804673224730901L; ! /** Add a new component to the layout. This particular implementation * does nothing. * @param name The name of the component to add. --- 58,64 ---- public class GridLayout implements LayoutManager, Serializable { static final long serialVersionUID = -7411804673224730901L; ! /** Add a new component to the layout. This particular implementation * does nothing. * @param name The name of the component to add. *************** public class GridLayout implements Layou *** 154,216 **** { synchronized (parent.getTreeLock ()) { ! int num = parent.ncomponents; ! // There's no point, and handling this would mean adding special ! // cases. ! if (num == 0) ! return; ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! int real_rows = rows; ! int real_cols = cols; ! if (real_rows == 0) ! real_rows = (num + real_cols - 1) / real_cols; ! else ! real_cols = (num + real_rows - 1) / real_rows; ! // We might have less than a single row. In this case we expand ! // to fill. ! if (num < real_cols) ! real_cols = num; ! Dimension d = parent.getSize (); ! Insets ins = parent.getInsets (); ! // Compute width and height of each cell in the grid. ! int tw = d.width - ins.left - ins.right; ! tw = (tw - (real_cols - 1) * hgap) / real_cols; ! int th = d.height - ins.top - ins.bottom; ! th = (th - (real_rows - 1) * vgap) / real_rows; ! // If the cells are too small, still try to do something. ! if (tw < 0) ! tw = 1; ! if (th < 0) ! th = 1; ! int x = ins.left; ! int y = ins.top; ! int i = 0; ! int recount = 0; ! while (i < num) ! { ! comps[i].setBounds (x, y, tw, th); ! ++i; ! ++recount; ! if (recount == real_cols) ! { ! recount = 0; ! y += vgap + th; ! x = ins.left; ! } ! else ! x += hgap + tw; ! } } } --- 154,216 ---- { synchronized (parent.getTreeLock ()) { ! int num = parent.ncomponents; ! // There's no point, and handling this would mean adding special ! // cases. ! if (num == 0) ! return; ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! int real_rows = rows; ! int real_cols = cols; ! if (real_rows == 0) ! real_rows = (num + real_cols - 1) / real_cols; ! else ! real_cols = (num + real_rows - 1) / real_rows; ! // We might have less than a single row. In this case we expand ! // to fill. ! if (num < real_cols) ! real_cols = num; ! Dimension d = parent.getSize (); ! Insets ins = parent.getInsets (); ! // Compute width and height of each cell in the grid. ! int tw = d.width - ins.left - ins.right; ! tw = (tw - (real_cols - 1) * hgap) / real_cols; ! int th = d.height - ins.top - ins.bottom; ! th = (th - (real_rows - 1) * vgap) / real_rows; ! // If the cells are too small, still try to do something. ! if (tw < 0) ! tw = 1; ! if (th < 0) ! th = 1; ! int x = ins.left; ! int y = ins.top; ! int i = 0; ! int recount = 0; ! while (i < num) ! { ! comps[i].setBounds (x, y, tw, th); ! ++i; ! ++recount; ! if (recount == real_cols) ! { ! recount = 0; ! y += vgap + th; ! x = ins.left; ! } ! else ! x += hgap + tw; ! } } } *************** public class GridLayout implements Layou *** 289,297 **** public String toString () { return (getClass ().getName () + "[" ! + "hgap=" + hgap + ",vgap=" + vgap ! + ",rows=" + rows + ",cols=" + cols ! + "]"); } // This method is used to compute the various sizes. --- 289,297 ---- public String toString () { return (getClass ().getName () + "[" ! + "hgap=" + hgap + ",vgap=" + vgap ! + ",rows=" + rows + ",cols=" + cols ! + "]"); } // This method is used to compute the various sizes. *************** public class GridLayout implements Layou *** 299,334 **** { synchronized (parent.getTreeLock ()) { ! int w = 0, h = 0, num = parent.ncomponents; ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! for (int i = 0; i < num; ++i) ! { ! Dimension d; ! if (is_min) ! d = comps[i].getMinimumSize (); ! else ! d = comps[i].getPreferredSize (); ! w = Math.max (d.width, w); ! h = Math.max (d.height, h); ! } ! int real_rows = rows; ! int real_cols = cols; ! if (real_rows == 0) ! real_rows = (num + real_cols - 1) / real_cols; ! else ! real_cols = (num + real_rows - 1) / real_rows; ! Insets ins = parent.getInsets (); ! // We subtract out an extra gap here because the gaps are only ! // between cells. ! w = ins.left + ins.right + real_cols * (w + hgap) - hgap; ! h = ins.top + ins.bottom + real_rows * (h + vgap) - vgap; ! return new Dimension (w, h); } } --- 299,334 ---- { synchronized (parent.getTreeLock ()) { ! int w = 0, h = 0, num = parent.ncomponents; ! // This is more efficient than calling getComponents(). ! Component[] comps = parent.component; ! for (int i = 0; i < num; ++i) ! { ! Dimension d; ! if (is_min) ! d = comps[i].getMinimumSize (); ! else ! d = comps[i].getPreferredSize (); ! w = Math.max (d.width, w); ! h = Math.max (d.height, h); ! } ! int real_rows = rows; ! int real_cols = cols; ! if (real_rows == 0) ! real_rows = (num + real_cols - 1) / real_cols; ! else ! real_cols = (num + real_rows - 1) / real_rows; ! Insets ins = parent.getInsets (); ! // We subtract out an extra gap here because the gaps are only ! // between cells. ! w = ins.left + ins.right + real_cols * (w + hgap) - hgap; ! h = ins.top + ins.bottom + real_rows * (h + vgap) - vgap; ! return new Dimension (w, h); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Image.java gcc-4.6.0/libjava/classpath/java/awt/Image.java *** gcc-4.5.2/libjava/classpath/java/awt/Image.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/Image.java Tue Jan 11 19:46:05 2011 *************** public abstract class Image *** 193,205 **** { case SCALE_AREA_AVERAGING: case SCALE_SMOOTH: ! filter = new AreaAveragingScaleFilter(width, height); ! break; case SCALE_DEFAULT: case SCALE_FAST: case SCALE_REPLICATE: default: ! filter = new ReplicateScaleFilter(width, height); } ImageProducer producer = new FilteredImageSource(getSource(), filter); --- 193,205 ---- { case SCALE_AREA_AVERAGING: case SCALE_SMOOTH: ! filter = new AreaAveragingScaleFilter(width, height); ! break; case SCALE_DEFAULT: case SCALE_FAST: case SCALE_REPLICATE: default: ! filter = new ReplicateScaleFilter(width, height); } ImageProducer producer = new FilteredImageSource(getSource(), filter); *************** public abstract class Image *** 215,221 **** /** * Sets the acceleration priority of the image. * This is a value from 0 (lowest) to 1 (highest), which may ! * be used as a hint for image acceleration. * E.g. higher priority images may be stored in video memory. * @param priority - the priority * @throws IllegalArgumentException if priority is not >= 0 and <= 1. --- 215,221 ---- /** * Sets the acceleration priority of the image. * This is a value from 0 (lowest) to 1 (highest), which may ! * be used as a hint for image acceleration. * E.g. higher priority images may be stored in video memory. * @param priority - the priority * @throws IllegalArgumentException if priority is not >= 0 and <= 1. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Insets.java gcc-4.6.0/libjava/classpath/java/awt/Insets.java *** gcc-4.5.2/libjava/classpath/java/awt/Insets.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/Insets.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 45,51 **** * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Eric Blake (ebb9@email.byu.edu) ! * @status */ public class Insets implements Cloneable, Serializable { --- 45,51 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Eric Blake (ebb9@email.byu.edu) ! * @status */ public class Insets implements Cloneable, Serializable { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/JobAttributes.java gcc-4.6.0/libjava/classpath/java/awt/JobAttributes.java *** gcc-4.5.2/libjava/classpath/java/awt/JobAttributes.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/JobAttributes.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobAttributes.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobAttributes.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/KeyboardFocusManager.java gcc-4.6.0/libjava/classpath/java/awt/KeyboardFocusManager.java *** gcc-4.5.2/libjava/classpath/java/awt/KeyboardFocusManager.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/KeyboardFocusManager.java Tue Jan 11 19:46:05 2011 *************** public abstract class KeyboardFocusManag *** 423,429 **** { if (focusOwner == null || focusOwner.focusable) setGlobalObject (currentPermanentFocusOwners, focusOwner, ! "permanentFocusOwner"); } /** --- 423,429 ---- { if (focusOwner == null || focusOwner.focusable) setGlobalObject (currentPermanentFocusOwners, focusOwner, ! "permanentFocusOwner"); } /** *************** public abstract class KeyboardFocusManag *** 556,563 **** * @see #DOWN_CYCLE_TRAVERSAL_KEYS */ public void setDefaultFocusTraversalKeys (int id, ! Set ! keystrokes) { if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && --- 556,563 ---- * @see #DOWN_CYCLE_TRAVERSAL_KEYS */ public void setDefaultFocusTraversalKeys (int id, ! Set ! keystrokes) { if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && *************** public abstract class KeyboardFocusManag *** 668,674 **** * {@link java.lang.ThreadGroup}) and {@link * #getGlobalCurrentFocusCycleRoot}. This method does not actually * make cycleRoot the current focus cycle root. ! * * @param cycleRoot the focus cycle root to return from * getCurrentFocusCycleRoot and getGlobalCurrentFocusCycleRoot */ --- 668,674 ---- * {@link java.lang.ThreadGroup}) and {@link * #getGlobalCurrentFocusCycleRoot}. This method does not actually * make cycleRoot the current focus cycle root. ! * * @param cycleRoot the focus cycle root to return from * getCurrentFocusCycleRoot and getGlobalCurrentFocusCycleRoot */ *************** public abstract class KeyboardFocusManag *** 752,758 **** * Nothing occurs if a null listener is supplied. null is regarded as a valid property name. * * @param name the name of the property to handle change events for. ! * @param l the listener to register for changes to the specified property. * @see KeyboardFocusManager#addPropertyChangeListener(java.beans.PropertyChangeListener) */ public void addPropertyChangeListener(String name, PropertyChangeListener l) --- 752,758 ---- * Nothing occurs if a null listener is supplied. null is regarded as a valid property name. * * @param name the name of the property to handle change events for. ! * @param l the listener to register for changes to the specified property. * @see KeyboardFocusManager#addPropertyChangeListener(java.beans.PropertyChangeListener) */ public void addPropertyChangeListener(String name, PropertyChangeListener l) *************** public abstract class KeyboardFocusManag *** 819,825 **** * * Nothing occurs if a null listener is supplied. * ! * @param l the listener to register. * @see KeyboardFocusManager#addVetoableChangeListener(String, java.beans.VetoableChangeListener) */ public void addVetoableChangeListener(VetoableChangeListener l) --- 819,825 ---- * * Nothing occurs if a null listener is supplied. * ! * @param l the listener to register. * @see KeyboardFocusManager#addVetoableChangeListener(String, java.beans.VetoableChangeListener) */ public void addVetoableChangeListener(VetoableChangeListener l) *************** public abstract class KeyboardFocusManag *** 870,876 **** * Nothing occurs if a null listener is supplied. null is regarded as a valid property name. * * @param name the name of the property to handle change events for. ! * @param l the listener to register for changes to the specified property. * @see KeyboardFocusManager#addVetoableChangeListener(java.beans.VetoableChangeListener) */ public void addVetoableChangeListener(String name, VetoableChangeListener l) --- 870,876 ---- * Nothing occurs if a null listener is supplied. null is regarded as a valid property name. * * @param name the name of the property to handle change events for. ! * @param l the listener to register for changes to the specified property. * @see KeyboardFocusManager#addVetoableChangeListener(java.beans.VetoableChangeListener) */ public void addVetoableChangeListener(String name, VetoableChangeListener l) *************** public abstract class KeyboardFocusManag *** 1070,1076 **** * The actual dispatching is performed by calling * redispatchEvent(). This avoids the infinite recursion * of dispatch requests which may occur if this method is called on ! * the target component. * * @param e the event to dispatch. * @return true if the event was dispatched. --- 1070,1076 ---- * The actual dispatching is performed by calling * redispatchEvent(). This avoids the infinite recursion * of dispatch requests which may occur if this method is called on ! * the target component. * * @param e the event to dispatch. * @return true if the event was dispatched. *************** public abstract class KeyboardFocusManag *** 1087,1100 **** * within this manager (dispatchEvent()) and * the key event dispatchers should use this method to handle * dispatching rather than the dispatch method of the target ! * component. *
    *
    * * This method is not intended for general consumption, and is * only for the use of the aforementioned classes. * ! * * @param target the target component to which the event is * dispatched. * @param e the event to dispatch. --- 1087,1100 ---- * within this manager (dispatchEvent()) and * the key event dispatchers should use this method to handle * dispatching rather than the dispatch method of the target ! * component. *
    *
    * * This method is not intended for general consumption, and is * only for the use of the aforementioned classes. * ! * * @param target the target component to which the event is * dispatched. * @param e the event to dispatch. *************** public abstract class KeyboardFocusManag *** 1229,1237 **** * However, in the case of a Window, the default * focus component becomes the focus owner and the focus cycle * root is not changed. ! * * @param comp the component used as part of the focus traversal. ! */ public abstract void upFocusCycle(Component comp); /** --- 1229,1237 ---- * However, in the case of a Window, the default * focus component becomes the focus owner and the focus cycle * root is not changed. ! * * @param comp the component used as part of the focus traversal. ! */ public abstract void upFocusCycle(Component comp); /** *************** public abstract class KeyboardFocusManag *** 1239,1248 **** * If the supplied container is a focus cycle root, then this * becomes the current focus cycle root and the focus goes * to the default component of the specified container. ! * Nothing happens for non-focus cycle root containers. ! * * @param cont the container used as part of the focus traversal. ! */ public abstract void downFocusCycle(Container cont); /** --- 1239,1248 ---- * If the supplied container is a focus cycle root, then this * becomes the current focus cycle root and the focus goes * to the default component of the specified container. ! * Nothing happens for non-focus cycle root containers. ! * * @param cont the container used as part of the focus traversal. ! */ public abstract void downFocusCycle(Container cont); /** *************** public abstract class KeyboardFocusManag *** 1433,1439 **** } } ! /** * Maps focus requests from heavyweight to lightweight components. */ --- 1433,1439 ---- } } ! /** * Maps focus requests from heavyweight to lightweight components. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Label.java gcc-4.6.0/libjava/classpath/java/awt/Label.java *** gcc-4.5.2/libjava/classpath/java/awt/Label.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/Label.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* Label.java -- Java label widget ! Copyright (C) 1999, 2000, 2002, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* Label.java -- Java label widget ! Copyright (C) 1999, 2000, 2002, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class Label extends Component imp *** 76,82 **** /** * @serial Indicates the alignment of the text within this label's window. ! * This is one of the constants in this class. The default value is * LEFT. */ private int alignment; --- 76,82 ---- /** * @serial Indicates the alignment of the text within this label's window. ! * This is one of the constants in this class. The default value is * LEFT. */ private int alignment; *************** public class Label extends Component imp *** 211,217 **** protected String paramString() { return ("text=" + getText() + ",alignment=" + ! getAlignment() + "," + super.paramString()); } /** --- 211,217 ---- protected String paramString() { return ("text=" + getText() + ",alignment=" + ! getAlignment() + "," + super.paramString()); } /** *************** public class Label extends Component imp *** 280,286 **** { return "label" + getUniqueLong(); } ! /** * The number used to generate the name returned by getName. */ --- 280,286 ---- { return "label" + getUniqueLong(); } ! /** * The number used to generate the name returned by getName. */ *************** public class Label extends Component imp *** 292,295 **** } } - --- 292,294 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/LightweightDispatcher.java gcc-4.6.0/libjava/classpath/java/awt/LightweightDispatcher.java *** gcc-4.5.2/libjava/classpath/java/awt/LightweightDispatcher.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/LightweightDispatcher.java Tue Jan 11 19:46:05 2011 *************** final class LightweightDispatcher *** 101,107 **** { // Nothing to do here. } ! /** * Receives notification if a mouse event passes along the eventqueue. * --- 101,107 ---- { // Nothing to do here. } ! /** * Receives notification if a mouse event passes along the eventqueue. * *************** final class LightweightDispatcher *** 120,126 **** /** * Handles all mouse events that are targetted at toplevel containers * (Window instances) and dispatches them to the correct lightweight child. ! * * @param ev the mouse event * @return whether or not we found a lightweight that handled the event. */ --- 120,126 ---- /** * Handles all mouse events that are targetted at toplevel containers * (Window instances) and dispatches them to the correct lightweight child. ! * * @param ev the mouse event * @return whether or not we found a lightweight that handled the event. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/List.java gcc-4.6.0/libjava/classpath/java/awt/List.java *** gcc-4.5.2/libjava/classpath/java/awt/List.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/List.java Tue Jan 11 19:46:05 2011 *************** public class List extends Component *** 65,71 **** /** * The number used to generate the name returned by getName. */ ! private static transient long next_list_number; // Serialization constant private static final long serialVersionUID = -3304312411574666869L; --- 65,71 ---- /** * The number used to generate the name returned by getName. */ ! private static transient long next_list_number; // Serialization constant private static final long serialVersionUID = -3304312411574666869L; *************** public class List extends Component *** 147,166 **** this.rows = 4; else this.rows = rows; ! this.multipleMode = multipleMode; selected = new int[0]; if (GraphicsEnvironment.isHeadless()) throw new HeadlessException(); ! } /** * Returns the number of items in this list. * * @return The number of items in this list. ! * * @since 1.1 */ public int getItemCount() --- 147,166 ---- this.rows = 4; else this.rows = rows; ! this.multipleMode = multipleMode; selected = new int[0]; if (GraphicsEnvironment.isHeadless()) throw new HeadlessException(); ! } /** * Returns the number of items in this list. * * @return The number of items in this list. ! * * @since 1.1 */ public int getItemCount() *************** public class List extends Component *** 185,197 **** * Returns the complete list of items. * * @return The complete list of items in the list. ! * * @since 1.1 */ public synchronized String[] getItems() { String[] l_items = new String[getItemCount()]; ! items.copyInto(l_items); return(l_items); } --- 185,197 ---- * Returns the complete list of items. * * @return The complete list of items in the list. ! * * @since 1.1 */ public synchronized String[] getItems() { String[] l_items = new String[getItemCount()]; ! items.copyInto(l_items); return(l_items); } *************** public class List extends Component *** 223,229 **** * * @return true if multi-select mode is enabled, * false otherwise. ! * * @since 1.1 */ public boolean isMultipleMode() --- 223,229 ---- * * @return true if multi-select mode is enabled, * false otherwise. ! * * @since 1.1 */ public boolean isMultipleMode() *************** public class List extends Component *** 237,243 **** * @return true if multi-select mode is enabled, * false otherwise. * ! * @deprecated This method is deprecated in favor of * isMultipleMode(). */ public boolean allowsMultipleSelections() --- 237,243 ---- * @return true if multi-select mode is enabled, * false otherwise. * ! * @deprecated This method is deprecated in favor of * isMultipleMode(). */ public boolean allowsMultipleSelections() *************** public class List extends Component *** 251,257 **** * * @param multipleMode true to enable multiple mode, * false otherwise. ! * * @since 1.1 */ public void setMultipleMode(boolean multipleMode) --- 251,257 ---- * * @param multipleMode true to enable multiple mode, * false otherwise. ! * * @since 1.1 */ public void setMultipleMode(boolean multipleMode) *************** public class List extends Component *** 269,288 **** * @deprecated */ public void setMultipleSelections(boolean multipleMode) ! { this.multipleMode = multipleMode; ListPeer peer = (ListPeer) getPeer(); if (peer != null) peer.setMultipleMode(multipleMode); ! } /** * Returns the minimum size of this component. * * @return The minimum size of this component. ! * * @since 1.1 */ public Dimension getMinimumSize() --- 269,288 ---- * @deprecated */ public void setMultipleSelections(boolean multipleMode) ! { this.multipleMode = multipleMode; ListPeer peer = (ListPeer) getPeer(); if (peer != null) peer.setMultipleMode(multipleMode); ! } /** * Returns the minimum size of this component. * * @return The minimum size of this component. ! * * @since 1.1 */ public Dimension getMinimumSize() *************** public class List extends Component *** 310,316 **** * @param rows The number of rows to size for. * * @return The minimum size of this component. ! * * @since 1.1 */ public Dimension getMinimumSize(int rows) --- 310,316 ---- * @param rows The number of rows to size for. * * @return The minimum size of this component. ! * * @since 1.1 */ public Dimension getMinimumSize(int rows) *************** public class List extends Component *** 326,332 **** * * @return The minimum size of this component. * ! * @deprecated This method is deprecated in favor of * getMinimumSize(int)> */ public Dimension minimumSize(int rows) --- 326,332 ---- * * @return The minimum size of this component. * ! * @deprecated This method is deprecated in favor of * getMinimumSize(int)> */ public Dimension minimumSize(int rows) *************** public class List extends Component *** 342,348 **** * Returns the preferred size of this component. * * @return The preferred size of this component. ! * * @since 1.1 */ public Dimension getPreferredSize() --- 342,348 ---- * Returns the preferred size of this component. * * @return The preferred size of this component. ! * * @since 1.1 */ public Dimension getPreferredSize() *************** public class List extends Component *** 358,364 **** * @deprecated This method is deprecated in favor of * getPreferredSize. */ ! public Dimension preferredSize() { return preferredSize(getRows()); } --- 358,364 ---- * @deprecated This method is deprecated in favor of * getPreferredSize. */ ! public Dimension preferredSize() { return preferredSize(getRows()); } *************** public class List extends Component *** 370,376 **** * @param rows The number of rows to size for. * * @return The preferred size of this component. ! * * @since 1.1 */ public Dimension getPreferredSize(int rows) --- 370,376 ---- * @param rows The number of rows to size for. * * @return The preferred size of this component. ! * * @since 1.1 */ public Dimension getPreferredSize(int rows) *************** public class List extends Component *** 386,392 **** * * @return The preferred size of this component. * ! * @deprecated This method is deprecated in favor of * getPreferredSize(int)> */ public Dimension preferredSize(int rows) --- 386,392 ---- * * @return The preferred size of this component. * ! * @deprecated This method is deprecated in favor of * getPreferredSize(int)> */ public Dimension preferredSize(int rows) *************** public class List extends Component *** 402,408 **** * This method adds the specified item to the end of the list. * * @param item The item to add to the list. ! * * @since 1.1 */ public void add(String item) --- 402,408 ---- * This method adds the specified item to the end of the list. * * @param item The item to add to the list. ! * * @since 1.1 */ public void add(String item) *************** public class List extends Component *** 430,436 **** * @param item The item to add to the list. * @param index The location in the list to add the item, or -1 to add * to the end. ! * * @since 1.1 */ public void add(String item, int index) --- 430,436 ---- * @param item The item to add to the list. * @param index The location in the list to add the item, or -1 to add * to the end. ! * * @since 1.1 */ public void add(String item, int index) *************** public class List extends Component *** 452,462 **** public void addItem(String item, int index) { if (item == null) ! item = ""; ! if (index < -1) index = -1; ! if ((index == -1) || (index >= items.size ())) items.addElement (item); else --- 452,462 ---- public void addItem(String item, int index) { if (item == null) ! item = ""; ! if (index < -1) index = -1; ! if ((index == -1) || (index >= items.size ())) items.addElement (item); else *************** public class List extends Component *** 482,492 **** if (isSelected(index)) { selected = true; ! deselect(index); } ! items.removeElementAt (index); ! if (selected) select(index); --- 482,492 ---- if (isSelected(index)) { selected = true; ! deselect(index); } ! items.removeElementAt (index); ! if (selected) select(index); *************** public class List extends Component *** 501,507 **** * @param index The index of the item to delete. * * @exception IllegalArgumentException If the index is not valid ! * * @since 1.1 */ public void remove(int index) throws IllegalArgumentException --- 501,507 ---- * @param index The index of the item to delete. * * @exception IllegalArgumentException If the index is not valid ! * * @since 1.1 */ public void remove(int index) throws IllegalArgumentException *************** public class List extends Component *** 519,525 **** * * @deprecated This method is deprecated for some unknown reason. */ ! public synchronized void delItems(int start, int end) throws IllegalArgumentException { // We must run the loop in reverse direction. --- 519,525 ---- * * @deprecated This method is deprecated for some unknown reason. */ ! public synchronized void delItems(int start, int end) throws IllegalArgumentException { // We must run the loop in reverse direction. *************** public class List extends Component *** 538,544 **** * @param item The item to delete. * * @exception IllegalArgumentException If the specified item does not exist. ! * * @since 1.1 */ public synchronized void remove(String item) throws IllegalArgumentException --- 538,544 ---- * @param item The item to delete. * * @exception IllegalArgumentException If the specified item does not exist. ! * * @since 1.1 */ public synchronized void remove(String item) throws IllegalArgumentException *************** public class List extends Component *** 552,558 **** /** * Deletes all of the items from the list. ! * * @since 1.1 */ public synchronized void removeAll() --- 552,558 ---- /** * Deletes all of the items from the list. ! * * @since 1.1 */ public synchronized void removeAll() *************** public class List extends Component *** 562,568 **** /** * Deletes all of the items from the list. ! * * @deprecated This method is deprecated in favor of removeAll(). */ public void clear() --- 562,568 ---- /** * Deletes all of the items from the list. ! * * @deprecated This method is deprecated in favor of removeAll(). */ public void clear() *************** public class List extends Component *** 572,578 **** ListPeer peer = (ListPeer) getPeer(); if (peer != null) peer.removeAll(); ! selected = new int[0]; } --- 572,578 ---- ListPeer peer = (ListPeer) getPeer(); if (peer != null) peer.removeAll(); ! selected = new int[0]; } *************** public class List extends Component *** 584,590 **** * * @exception ArrayIndexOutOfBoundsException If the index is not valid. */ ! public synchronized void replaceItem(String item, int index) throws ArrayIndexOutOfBoundsException { if ((index < 0) || (index >= items.size())) --- 584,590 ---- * * @exception ArrayIndexOutOfBoundsException If the index is not valid. */ ! public synchronized void replaceItem(String item, int index) throws ArrayIndexOutOfBoundsException { if ((index < 0) || (index >= items.size())) *************** public class List extends Component *** 598,604 **** ListPeer l = (ListPeer) peer; /* We add first and then remove so that the selected ! item remains the same */ l.add (item, index + 1); l.delItems (index, index); } --- 598,604 ---- ListPeer l = (ListPeer) peer; /* We add first and then remove so that the selected ! item remains the same */ l.add (item, index + 1); l.delItems (index, index); } *************** public class List extends Component *** 620,631 **** if (selected == null || selected.length != 1) return -1; ! return selected[0]; } /** ! * Returns an array containing the indexes of the rows that are * currently selected. * * @return A list of indexes of selected rows. --- 620,631 ---- if (selected == null || selected.length != 1) return -1; ! return selected[0]; } /** ! * Returns an array containing the indexes of the rows that are * currently selected. * * @return A list of indexes of selected rows. *************** public class List extends Component *** 636,648 **** { ListPeer l = (ListPeer) peer; selected = l.getSelectedIndexes(); ! } ! return selected; } /** ! * Returns the item that is currently selected, or null if there * is no item selected. FIXME: What happens if multiple items selected? * * @return The selected item, or null if there is no --- 636,648 ---- { ListPeer l = (ListPeer) peer; selected = l.getSelectedIndexes(); ! } ! return selected; } /** ! * Returns the item that is currently selected, or null if there * is no item selected. FIXME: What happens if multiple items selected? * * @return The selected item, or null if there is no *************** public class List extends Component *** 703,709 **** * * @return true if the index is selected, false * otherwise. ! * * @since 1.1 */ public boolean isIndexSelected(int index) --- 703,709 ---- * * @return true if the index is selected, false * otherwise. ! * * @since 1.1 */ public boolean isIndexSelected(int index) *************** public class List extends Component *** 738,744 **** * * @param index The index of the item to be made visible. */ ! public synchronized void makeVisible(int index) throws IllegalArgumentException { visibleIndex = index; --- 738,744 ---- * * @param index The index of the item to be made visible. */ ! public synchronized void makeVisible(int index) throws IllegalArgumentException { visibleIndex = index; *************** public class List extends Component *** 753,759 **** * Returns the index of the last item that was made visible via the * makeVisible() method. * ! * @return The index of the last item made visible via the * makeVisible() method. */ public int getVisibleIndex() --- 753,759 ---- * Returns the index of the last item that was made visible via the * makeVisible() method. * ! * @return The index of the last item made visible via the * makeVisible() method. */ public int getVisibleIndex() *************** public class List extends Component *** 771,777 **** ListPeer lp = (ListPeer) getPeer(); if (lp != null) lp.select(index); ! if (selected != null) { boolean found = false; --- 771,777 ---- ListPeer lp = (ListPeer) getPeer(); if (lp != null) lp.select(index); ! if (selected != null) { boolean found = false; *************** public class List extends Component *** 786,799 **** { selected = new int[] { index }; return; ! } int[] temp = new int[selected.length + 1]; System.arraycopy(selected, 0, temp, 0, selected.length); temp[selected.length] = index; selected = temp; } ! } ! else { selected = new int[1]; selected[0] = index; --- 786,799 ---- { selected = new int[] { index }; return; ! } int[] temp = new int[selected.length + 1]; System.arraycopy(selected, 0, temp, 0, selected.length); temp[selected.length] = index; selected = temp; } ! } ! else { selected = new int[1]; selected[0] = index; *************** public class List extends Component *** 820,826 **** temp[i] = selected[i]; else { ! System.arraycopy(selected, i + 1, temp, i, selected.length - i - 1); break; } --- 820,826 ---- temp[i] = selected[i]; else { ! System.arraycopy(selected, i + 1, temp, i, selected.length - i - 1); break; } *************** public class List extends Component *** 852,858 **** * registered listeners for this object. * * @param listener The listener to add. ! * * @since 1.1 */ public synchronized void addActionListener(ActionListener listener) --- 852,858 ---- * registered listeners for this object. * * @param listener The listener to add. ! * * @since 1.1 */ public synchronized void addActionListener(ActionListener listener) *************** public class List extends Component *** 865,871 **** * registers listeners for this object. * * @param listener The listener to remove. ! * * @since 1.1 */ public synchronized void removeActionListener(ActionListener listener) --- 865,871 ---- * registers listeners for this object. * * @param listener The listener to remove. ! * * @since 1.1 */ public synchronized void removeActionListener(ActionListener listener) *************** public class List extends Component *** 878,884 **** * registered listeners for this object. * * @param listener The listener to add. ! * * @since 1.1 */ public synchronized void addItemListener(ItemListener listener) --- 878,884 ---- * registered listeners for this object. * * @param listener The listener to add. ! * * @since 1.1 */ public synchronized void addItemListener(ItemListener listener) *************** public class List extends Component *** 891,897 **** * registers listeners for this object. * * @param listener The listener to remove. ! * * @since 1.1 */ public synchronized void removeItemListener(ItemListener listener) --- 891,897 ---- * registers listeners for this object. * * @param listener The listener to remove. ! * * @since 1.1 */ public synchronized void removeItemListener(ItemListener listener) *************** public class List extends Component *** 908,914 **** * superclass method is called to process this event. * * @param event The event to process. ! * * @since 1.1 */ protected void processEvent(AWTEvent event) --- 908,914 ---- * superclass method is called to process this event. * * @param event The event to process. ! * * @since 1.1 */ protected void processEvent(AWTEvent event) *************** public class List extends Component *** 929,935 **** * the enableEvents() method. * * @param event The event to process. ! * * @since 1.1 */ protected void processActionEvent(ActionEvent event) --- 929,935 ---- * the enableEvents() method. * * @param event The event to process. ! * * @since 1.1 */ protected void processActionEvent(ActionEvent event) *************** public class List extends Component *** 946,952 **** * the enableEvents() method. * * @param event The event to process. ! * * @since 1.1 */ protected void processItemEvent(ItemEvent event) --- 946,952 ---- * the enableEvents() method. * * @param event The event to process. ! * * @since 1.1 */ protected void processItemEvent(ItemEvent event) *************** public class List extends Component *** 959,970 **** { if (e.id <= ItemEvent.ITEM_LAST && e.id >= ItemEvent.ITEM_FIRST ! && (item_listeners != null || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0)) processEvent(e); ! else if (e.id <= ActionEvent.ACTION_LAST ! && e.id >= ActionEvent.ACTION_FIRST ! && (action_listeners != null || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) processEvent(e); else --- 959,970 ---- { if (e.id <= ItemEvent.ITEM_LAST && e.id >= ItemEvent.ITEM_FIRST ! && (item_listeners != null || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0)) processEvent(e); ! else if (e.id <= ActionEvent.ACTION_LAST ! && e.id >= ActionEvent.ACTION_FIRST ! && (action_listeners != null || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) processEvent(e); else *************** public class List extends Component *** 983,994 **** /** * Returns an array of all the objects currently registered as FooListeners ! * upon this List. FooListeners are registered using the * addFooListener method. * * @exception ClassCastException If listenerType doesn't specify a class or * interface that implements java.util.EventListener. ! * * @since 1.3 */ public T[] getListeners (Class listenerType) --- 983,994 ---- /** * Returns an array of all the objects currently registered as FooListeners ! * upon this List. FooListeners are registered using the * addFooListener method. * * @exception ClassCastException If listenerType doesn't specify a class or * interface that implements java.util.EventListener. ! * * @since 1.3 */ public T[] getListeners (Class listenerType) *************** public class List extends Component *** 1004,1028 **** /** * Returns all action listeners registered to this object. ! * * @since 1.4 */ public ActionListener[] getActionListeners () { return (ActionListener[]) getListeners (ActionListener.class); } ! /** * Returns all action listeners registered to this object. ! * * @since 1.4 */ public ItemListener[] getItemListeners () { return (ItemListener[]) getListeners (ItemListener.class); } ! ! // Accessibility internal class protected class AccessibleAWTList extends AccessibleAWTComponent implements AccessibleSelection, ItemListener, ActionListener { --- 1004,1028 ---- /** * Returns all action listeners registered to this object. ! * * @since 1.4 */ public ActionListener[] getActionListeners () { return (ActionListener[]) getListeners (ActionListener.class); } ! /** * Returns all action listeners registered to this object. ! * * @since 1.4 */ public ItemListener[] getItemListeners () { return (ItemListener[]) getListeners (ItemListener.class); } ! ! // Accessibility internal class protected class AccessibleAWTList extends AccessibleAWTComponent implements AccessibleSelection, ItemListener, ActionListener { *************** public class List extends Component *** 1032,1042 **** implements Accessible { private static final long serialVersionUID = 4412022926028300317L; ! // Field names are fixed by serialization spec. private List parent; private int indexInParent; ! public AccessibleAWTListChild(List parent, int indexInParent) { this.parent = parent; --- 1032,1042 ---- implements Accessible { private static final long serialVersionUID = 4412022926028300317L; ! // Field names are fixed by serialization spec. private List parent; private int indexInParent; ! public AccessibleAWTListChild(List parent, int indexInParent) { this.parent = parent; *************** public class List extends Component *** 1044,1050 **** if (parent == null) this.indexInParent = -1; } ! /* (non-Javadoc) * @see javax.accessibility.Accessible#getAccessibleContext() */ --- 1044,1050 ---- if (parent == null) this.indexInParent = -1; } ! /* (non-Javadoc) * @see javax.accessibility.Accessible#getAccessibleContext() */ *************** public class List extends Component *** 1052,1063 **** { return this; } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.LIST_ITEM; } ! public AccessibleStateSet getAccessibleStateSet() { AccessibleStateSet states = super.getAccessibleStateSet(); --- 1052,1063 ---- { return this; } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.LIST_ITEM; } ! public AccessibleStateSet getAccessibleStateSet() { AccessibleStateSet states = super.getAccessibleStateSet(); *************** public class List extends Component *** 1065,1089 **** states.add(AccessibleState.SELECTED); return states; } ! public int getAccessibleIndexInParent() { return indexInParent; } } ! public AccessibleAWTList() { addItemListener(this); addActionListener(this); } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.LIST; } ! public AccessibleStateSet getAccessibleStateSet() { AccessibleStateSet states = super.getAccessibleStateSet(); --- 1065,1089 ---- states.add(AccessibleState.SELECTED); return states; } ! public int getAccessibleIndexInParent() { return indexInParent; } } ! public AccessibleAWTList() { addItemListener(this); addActionListener(this); } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.LIST; } ! public AccessibleStateSet getAccessibleStateSet() { AccessibleStateSet states = super.getAccessibleStateSet(); *************** public class List extends Component *** 1104,1110 **** return null; return new AccessibleAWTListChild(List.this, i); } ! /* (non-Javadoc) * @see javax.accessibility.AccessibleSelection#getAccessibleSelectionCount() */ --- 1104,1110 ---- return null; return new AccessibleAWTListChild(List.this, i); } ! /* (non-Javadoc) * @see javax.accessibility.AccessibleSelection#getAccessibleSelectionCount() */ *************** public class List extends Component *** 1188,1194 **** public void actionPerformed(ActionEvent event) { } ! } /** --- 1188,1194 ---- public void actionPerformed(ActionEvent event) { } ! } /** *************** public class List extends Component *** 1204,1210 **** accessibleContext = new AccessibleAWTList(); return accessibleContext; } ! /** * Generate a unique name for this List. * --- 1204,1210 ---- accessibleContext = new AccessibleAWTList(); return accessibleContext; } ! /** * Generate a unique name for this List. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/MediaTracker.java gcc-4.6.0/libjava/classpath/java/awt/MediaTracker.java *** gcc-4.5.2/libjava/classpath/java/awt/MediaTracker.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/awt/MediaTracker.java Tue Jan 11 19:46:05 2011 *************** import java.util.ArrayList; *** 52,58 **** * means that you cannot say exactly which media object has which status, * at most you can say that there are certain media objects with * some certain status. ! * * At the moment only images are supported by this class. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 52,58 ---- * means that you cannot say exactly which media object has which status, * at most you can say that there are certain media objects with * some certain status. ! * * At the moment only images are supported by this class. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** public class MediaTracker implements jav *** 85,91 **** * This represents a media object that is tracked by a MediaTracker. * It also implements a simple linked list. */ ! // FIXME: The serialized form documentation says MediaEntry is a // serializable field, but the serialized form of MediaEntry itself // doesn't appear to be documented. class MediaEntry implements ImageObserver --- 85,91 ---- * This represents a media object that is tracked by a MediaTracker. * It also implements a simple linked list. */ ! // FIXME: The serialized form documentation says MediaEntry is a // serializable field, but the serialized form of MediaEntry itself // doesn't appear to be documented. class MediaEntry implements ImageObserver *************** public class MediaTracker implements jav *** 107,113 **** /** The height of the image. */ int height; ! /** * Receives notification from an {@link java.awt.image.ImageProducer} * that more data of the image is available. --- 107,113 ---- /** The height of the image. */ int height; ! /** * Receives notification from an {@link java.awt.image.ImageProducer} * that more data of the image is available. *************** public class MediaTracker implements jav *** 125,131 **** * * @see java.awt.image.ImageObserver */ ! public boolean imageUpdate(Image img, int flags, int x, int y, int width, int height) { if ((flags & ABORT) != 0) --- 125,131 ---- * * @see java.awt.image.ImageObserver */ ! public boolean imageUpdate(Image img, int flags, int x, int y, int width, int height) { if ((flags & ABORT) != 0) *************** public class MediaTracker implements jav *** 234,264 **** { MediaEntry e = head; boolean result = true; ! while (e != null) { if ((e.status & (COMPLETE | ERRORED | ABORTED)) == 0) { if (load && ((e.status & LOADING) == 0)) { ! if (target.prepareImage(e.image, e)) ! e.status = COMPLETE; ! else ! { ! e.status = LOADING; ! int flags = target.checkImage(e.image, e); ! if ((flags & ImageObserver.ABORT) != 0) ! e.status = ABORTED; ! else if ((flags & ImageObserver.ERROR) != 0) ! e.status = ERRORED; ! else if ((flags & ImageObserver.ALLBITS) != 0) ! e.status = COMPLETE; ! } ! boolean complete = (e.status ! & (COMPLETE | ABORTED | ERRORED)) != 0; ! if (!complete) ! result = false; ! } else result = false; } --- 234,264 ---- { MediaEntry e = head; boolean result = true; ! while (e != null) { if ((e.status & (COMPLETE | ERRORED | ABORTED)) == 0) { if (load && ((e.status & LOADING) == 0)) { ! if (target.prepareImage(e.image, e)) ! e.status = COMPLETE; ! else ! { ! e.status = LOADING; ! int flags = target.checkImage(e.image, e); ! if ((flags & ImageObserver.ABORT) != 0) ! e.status = ABORTED; ! else if ((flags & ImageObserver.ERROR) != 0) ! e.status = ERRORED; ! else if ((flags & ImageObserver.ALLBITS) != 0) ! e.status = COMPLETE; ! } ! boolean complete = (e.status ! & (COMPLETE | ABORTED | ERRORED)) != 0; ! if (!complete) ! result = false; ! } else result = false; } *************** public class MediaTracker implements jav *** 277,283 **** */ public boolean isErrorAny() { ! MediaEntry e = head; while (e != null) { if ((e.status & ERRORED) != 0) --- 277,283 ---- */ public boolean isErrorAny() { ! MediaEntry e = head; while (e != null) { if ((e.status & ERRORED) != 0) *************** public class MediaTracker implements jav *** 385,400 **** if (target.prepareImage(e.image, e)) e.status = COMPLETE; else ! { e.status = LOADING; int flags = target.checkImage(e.image, e); ! if ((flags & ImageObserver.ABORT) != 0) ! e.status = ABORTED; ! else if ((flags & ImageObserver.ERROR) != 0) ! e.status = ERRORED; ! else if ((flags & ImageObserver.ALLBITS) != 0) ! e.status = COMPLETE; ! } } result |= e.status; e = e.next; --- 385,400 ---- if (target.prepareImage(e.image, e)) e.status = COMPLETE; else ! { e.status = LOADING; int flags = target.checkImage(e.image, e); ! if ((flags & ImageObserver.ABORT) != 0) ! e.status = ABORTED; ! else if ((flags & ImageObserver.ERROR) != 0) ! e.status = ERRORED; ! else if ((flags & ImageObserver.ALLBITS) != 0) ! e.status = COMPLETE; ! } } result |= e.status; e = e.next; *************** public class MediaTracker implements jav *** 431,437 **** { MediaEntry e = head; boolean result = true; ! while (e != null) { if (e.id == id && ((e.status & (COMPLETE | ABORTED | ERRORED)) == 0)) --- 431,437 ---- { MediaEntry e = head; boolean result = true; ! while (e != null) { if (e.id == id && ((e.status & (COMPLETE | ABORTED | ERRORED)) == 0)) *************** public class MediaTracker implements jav *** 439,460 **** if (load && ((e.status & LOADING) == 0)) { e.status = LOADING; ! if (target.prepareImage(e.image, e)) ! e.status = COMPLETE; ! else ! { ! int flags = target.checkImage(e.image, e); ! if ((flags & ImageObserver.ABORT) != 0) ! e.status = ABORTED; ! else if ((flags & ImageObserver.ERROR) != 0) ! e.status = ERRORED; ! else if ((flags & ImageObserver.ALLBITS) != 0) ! e.status = COMPLETE; ! } ! boolean complete = (e.status ! & (COMPLETE | ABORTED | ERRORED)) != 0; ! if (!complete) ! result = false; } else result = false; --- 439,460 ---- if (load && ((e.status & LOADING) == 0)) { e.status = LOADING; ! if (target.prepareImage(e.image, e)) ! e.status = COMPLETE; ! else ! { ! int flags = target.checkImage(e.image, e); ! if ((flags & ImageObserver.ABORT) != 0) ! e.status = ABORTED; ! else if ((flags & ImageObserver.ERROR) != 0) ! e.status = ERRORED; ! else if ((flags & ImageObserver.ALLBITS) != 0) ! e.status = COMPLETE; ! } ! boolean complete = (e.status ! & (COMPLETE | ABORTED | ERRORED)) != 0; ! if (!complete) ! result = false; } else result = false; *************** public class MediaTracker implements jav *** 475,481 **** */ public boolean isErrorID(int id) { ! MediaEntry e = head; while (e != null) { if (e.id == id && ((e.status & ERRORED) != 0)) --- 475,481 ---- */ public boolean isErrorID(int id) { ! MediaEntry e = head; while (e != null) { if (e.id == id && ((e.status & ERRORED) != 0)) *************** public class MediaTracker implements jav *** 593,611 **** { if (load && e.status == 0) { ! if (target.prepareImage(e.image, e)) e.status = COMPLETE; ! else ! { ! e.status = LOADING; ! int flags = target.checkImage(e.image, e); ! if ((flags & ImageObserver.ABORT) != 0) ! e.status = ABORTED; ! else if ((flags & ImageObserver.ERROR) != 0) ! e.status = ERRORED; ! else if ((flags & ImageObserver.ALLBITS) != 0) ! e.status = COMPLETE; ! } } result |= e.status; } --- 593,611 ---- { if (load && e.status == 0) { ! if (target.prepareImage(e.image, e)) e.status = COMPLETE; ! else ! { ! e.status = LOADING; ! int flags = target.checkImage(e.image, e); ! if ((flags & ImageObserver.ABORT) != 0) ! e.status = ABORTED; ! else if ((flags & ImageObserver.ERROR) != 0) ! e.status = ERRORED; ! else if ((flags & ImageObserver.ALLBITS) != 0) ! e.status = COMPLETE; ! } } result |= e.status; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Menu.java gcc-4.6.0/libjava/classpath/java/awt/Menu.java *** gcc-4.5.2/libjava/classpath/java/awt/Menu.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Menu.java Tue Jan 11 19:46:05 2011 *************** public class Menu extends MenuItem imple *** 163,172 **** { return items.size(); } ! /** * Returns the item at the specified index. ! * * @param index the item index. * * @return The item at the specified index. --- 163,172 ---- { return items.size(); } ! /** * Returns the item at the specified index. ! * * @param index the item index. * * @return The item at the specified index. *************** public class Menu extends MenuItem imple *** 240,246 **** MenuContainer parent = item.getParent(); if (parent != null) parent.remove(item); ! items.insertElementAt(item, index); item.setParent(this); --- 240,246 ---- MenuContainer parent = item.getParent(); if (parent != null) parent.remove(item); ! items.insertElementAt(item, index); item.setParent(this); *************** public class Menu extends MenuItem imple *** 263,270 **** } /** ! * Inserts an item with the specified label into this menu at the specified ! * index. If the index is greater than or equal to the number of items * already in the menu, the new item is added as the last item in the menu. * * @param label The label of the item to add. --- 263,270 ---- } /** ! * Inserts an item with the specified label into this menu at the specified ! * index. If the index is greater than or equal to the number of items * already in the menu, the new item is added as the last item in the menu. * * @param label The label of the item to add. *************** public class Menu extends MenuItem imple *** 302,308 **** * Deletes the item at the specified index from this menu. * * @param index The index of the item to remove. ! * * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid. */ public synchronized void remove(int index) --- 302,308 ---- * Deletes the item at the specified index from this menu. * * @param index The index of the item to remove. ! * * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid. */ public synchronized void remove(int index) *************** public class Menu extends MenuItem imple *** 391,397 **** public String paramString() { return (",tearOff=" + tearOff + ",isHelpMenu=" + isHelpMenu ! + super.paramString()); } /** --- 391,397 ---- public String paramString() { return (",tearOff=" + tearOff + ",isHelpMenu=" + isHelpMenu ! + super.paramString()); } /** *************** public class Menu extends MenuItem imple *** 405,411 **** protected AccessibleAWTMenu() { } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.MENU; --- 405,411 ---- protected AccessibleAWTMenu() { } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.MENU; *************** public class Menu extends MenuItem imple *** 425,431 **** accessibleContext = new AccessibleAWTMenu(); return accessibleContext; } ! /** * Generate a unique name for this Menu. * --- 425,431 ---- accessibleContext = new AccessibleAWTMenu(); return accessibleContext; } ! /** * Generate a unique name for this Menu. * *************** public class Menu extends MenuItem imple *** 440,444 **** { return next_menu_number++; } ! } // class Menu --- 440,444 ---- { return next_menu_number++; } ! } // class Menu diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/MenuBar.java gcc-4.6.0/libjava/classpath/java/awt/MenuBar.java *** gcc-4.5.2/libjava/classpath/java/awt/MenuBar.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/MenuBar.java Tue Jan 11 19:46:05 2011 *************** public class MenuBar extends MenuCompone *** 67,73 **** * The number used to generate the name returned by getName. */ private static transient long next_menubar_number; ! /** * @serial The menu used for providing help information */ --- 67,73 ---- * The number used to generate the name returned by getName. */ private static transient long next_menubar_number; ! /** * @serial The menu used for providing help information */ *************** public class MenuBar extends MenuCompone *** 110,117 **** if (helpMenu != null) { ! if (myPeer != null) ! helpMenu.removeNotify(); helpMenu.setParent(null); } helpMenu = menu; --- 110,117 ---- if (helpMenu != null) { ! if (myPeer != null) ! helpMenu.removeNotify(); helpMenu.setParent(null); } helpMenu = menu; *************** public class MenuBar extends MenuCompone *** 234,241 **** MenuBarPeer peer = (MenuBarPeer) getPeer(); if (peer == null) { ! peer = getToolkit().createMenuBar(this); ! setPeer(peer); } Enumeration e = menus.elements(); --- 234,241 ---- MenuBarPeer peer = (MenuBarPeer) getPeer(); if (peer == null) { ! peer = getToolkit().createMenuBar(this); ! setPeer(peer); } Enumeration e = menus.elements(); *************** public class MenuBar extends MenuCompone *** 243,249 **** { Menu mi = (Menu)e.nextElement(); mi.addNotify(); ! peer.addMenu(mi); } if (helpMenu != null) --- 243,249 ---- { Menu mi = (Menu)e.nextElement(); mi.addNotify(); ! peer.addMenu(mi); } if (helpMenu != null) *************** public class MenuBar extends MenuCompone *** 336,342 **** accessibleContext = new AccessibleAWTMenuBar(); return accessibleContext; } ! /** * Generate a unique name for this MenuBar. * --- 336,342 ---- accessibleContext = new AccessibleAWTMenuBar(); return accessibleContext; } ! /** * Generate a unique name for this MenuBar. * *************** public class MenuBar extends MenuCompone *** 360,366 **** protected class AccessibleAWTMenuBar extends AccessibleAWTMenuComponent { ! /** * Compatible with JDK 1.4.2 revision 5 */ --- 360,366 ---- protected class AccessibleAWTMenuBar extends AccessibleAWTMenuComponent { ! /** * Compatible with JDK 1.4.2 revision 5 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/MenuComponent.java gcc-4.6.0/libjava/classpath/java/awt/MenuComponent.java *** gcc-4.5.2/libjava/classpath/java/awt/MenuComponent.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/MenuComponent.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleSel *** 53,59 **** import javax.accessibility.AccessibleStateSet; /** ! * This is the superclass of all menu AWT widgets. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) --- 53,59 ---- import javax.accessibility.AccessibleStateSet; /** ! * This is the superclass of all menu AWT widgets. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) *************** public abstract class MenuComponent impl *** 204,210 **** name = generateName(); return name; } ! /** * Subclasses should override this to return unique component names like * "menuitem0". --- 204,210 ---- name = generateName(); return name; } ! /** * Subclasses should override this to return unique component names like * "menuitem0". *************** public abstract class MenuComponent impl *** 230,242 **** /** * Returns the parent of this component. ! * * @return the parent of this component */ public MenuContainer getParent() { return parent; ! } /** * Sets the parent of this component. --- 230,242 ---- /** * Returns the parent of this component. ! * * @return the parent of this component */ public MenuContainer getParent() { return parent; ! } /** * Sets the parent of this component. *************** public abstract class MenuComponent impl *** 365,371 **** /** * Processes the specified event. In this class, this method simply * calls one of the more specific event handlers. ! * * @param event the event to process */ protected void processEvent(AWTEvent event) --- 365,371 ---- /** * Processes the specified event. In this class, this method simply * calls one of the more specific event handlers. ! * * @param event the event to process */ protected void processEvent(AWTEvent event) *************** public abstract class MenuComponent impl *** 505,511 **** * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @param point the point to check against this component * @return true if the point is within this component --- 505,511 ---- * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @param point the point to check against this component * @return true if the point is within this component *************** public abstract class MenuComponent impl *** 530,536 **** * As the existence of children can not be determined from * this abstract class, the implementation of this method * is left to subclasses. ! * * @param point the point at which the returned accessible * is located * @return null --- 530,536 ---- * As the existence of children can not be determined from * this abstract class, the implementation of this method * is left to subclasses. ! * * @param point the point at which the returned accessible * is located * @return null *************** public abstract class MenuComponent impl *** 901,907 **** * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @return the location of the component, relative to its parent * --- 901,907 ---- * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @return the location of the component, relative to its parent * *************** public abstract class MenuComponent impl *** 940,946 **** * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @return the size of the component * --- 940,946 ---- * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @return the size of the component * *************** public abstract class MenuComponent impl *** 1103,1109 **** * which don't support multiple selections. Concrete implementations should * override this with a more appopriate and efficient implementation, which * properly takes into account the ability of the component to support multiple ! * selections. */ public void selectAllAccessibleSelection() { --- 1103,1109 ---- * which don't support multiple selections. Concrete implementations should * override this with a more appopriate and efficient implementation, which * properly takes into account the ability of the component to support multiple ! * selections. */ public void selectAllAccessibleSelection() { *************** public abstract class MenuComponent impl *** 1122,1128 **** *
    * This abstract class knows nothing about how the component * is drawn on screen, so this method simply ignores the supplied ! * color and continues to use the default system color. * Concrete subclasses which handle the drawing of an onscreen * menu component should override this method and provide * the appropriate information. --- 1122,1128 ---- *
    * This abstract class knows nothing about how the component * is drawn on screen, so this method simply ignores the supplied ! * color and continues to use the default system color. * Concrete subclasses which handle the drawing of an onscreen * menu component should override this method and provide * the appropriate information. *************** public abstract class MenuComponent impl *** 1246,1252 **** * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @param point the location of the component, relative to its parent * --- 1246,1252 ---- * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @param point the location of the component, relative to its parent * *************** public abstract class MenuComponent impl *** 1264,1270 **** * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @param size the new size of the component * --- 1264,1270 ---- * Please note that this method depends on a correctly implemented * version of the getBounds() method. Subclasses * must provide the bounding rectangle via getBounds() ! * in order for this method to work. * * @param size the new size of the component * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/MenuItem.java gcc-4.6.0/libjava/classpath/java/awt/MenuItem.java *** gcc-4.5.2/libjava/classpath/java/awt/MenuItem.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/MenuItem.java Tue Jan 11 19:46:05 2011 *************** public class MenuItem extends MenuCompon *** 63,69 **** /* * Static Variables */ ! /** * The number used to generate the name returned by getName. --- 63,69 ---- /* * Static Variables */ ! /** * The number used to generate the name returned by getName. *************** private transient ActionListener action_ *** 121,144 **** { super(); } ! ! ! public String getAccessibleName() { return label; } ! public AccessibleAction getAccessibleAction() { return this; } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.MENU_ITEM; } ! /* (non-Javadoc) * @see javax.accessibility.AccessibleAction#getAccessibleActionCount() */ --- 121,144 ---- { super(); } ! ! ! public String getAccessibleName() { return label; } ! public AccessibleAction getAccessibleAction() { return this; } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.MENU_ITEM; } ! /* (non-Javadoc) * @see javax.accessibility.AccessibleAction#getAccessibleActionCount() */ *************** private transient ActionListener action_ *** 153,161 **** public String getAccessibleActionDescription(int i) { if (i == 0) ! return label; else ! return null; } /* (non-Javadoc) --- 153,161 ---- public String getAccessibleActionDescription(int i) { if (i == 0) ! return label; else ! return null; } /* (non-Javadoc) *************** private transient ActionListener action_ *** 164,170 **** public boolean doAccessibleAction(int i) { if (i != 0) ! return false; processActionEvent(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, actionCommand)); return true; } --- 164,170 ---- public boolean doAccessibleAction(int i) { if (i != 0) ! return false; processActionEvent(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, actionCommand)); return true; } *************** private transient ActionListener action_ *** 173,179 **** { return this; } ! /* (non-Javadoc) * @see javax.accessibility.AccessibleValue#getCurrentAccessibleValue() */ --- 173,179 ---- { return this; } ! /* (non-Javadoc) * @see javax.accessibility.AccessibleValue#getCurrentAccessibleValue() */ *************** private transient ActionListener action_ *** 191,197 **** // this. is required by javac 1.3, otherwise it is confused with // MenuItem.this.setEnabled. this.setEnabled(result); ! return result; } /* (non-Javadoc) --- 191,197 ---- // this. is required by javac 1.3, otherwise it is confused with // MenuItem.this.setEnabled. this.setEnabled(result); ! return result; } /* (non-Javadoc) *************** private transient ActionListener action_ *** 209,215 **** { return new Integer(0); } ! } --- 209,215 ---- { return new Integer(0); } ! } *************** MenuItem() *** 236,242 **** * * @param label The label for this menu item. */ ! public MenuItem(String label) { this.label = label; --- 236,242 ---- * * @param label The label for this menu item. */ ! public MenuItem(String label) { this.label = label; *************** isEnabled() *** 311,317 **** /** * Sets the enabled status of this menu item. ! * * @param enabled true to enable this menu item, * false otherwise. */ --- 311,317 ---- /** * Sets the enabled status of this menu item. ! * * @param enabled true to enable this menu item, * false otherwise. */ *************** setEnabled(boolean enabled) *** 325,331 **** /** * Sets the enabled status of this menu item. ! * * @param enabled true to enable this menu item, * false otherwise. * --- 325,331 ---- /** * Sets the enabled status of this menu item. ! * * @param enabled true to enable this menu item, * false otherwise. * *************** setActionCommand(String actionCommand) *** 449,455 **** /*************************************************************************/ /** ! * Enables the specified events. This is done automatically when a * listener is added and does not normally need to be done by * application code. * --- 449,455 ---- /*************************************************************************/ /** ! * Enables the specified events. This is done automatically when a * listener is added and does not normally need to be done by * application code. * *************** protected final void *** 460,466 **** enableEvents(long events) { eventMask |= events; ! // TODO: see comment in Component.enableEvents(). } /*************************************************************************/ --- 460,466 ---- enableEvents(long events) { eventMask |= events; ! // TODO: see comment in Component.enableEvents(). } /*************************************************************************/ *************** removeActionListener(ActionListener l) *** 518,527 **** ActionListener.class); } ! /** Returns all registered EventListers of the given listenerType. ! * listenerType must be a subclass of EventListener, or a * ClassClassException is thrown. ! * @since 1.3 */ public T[] getListeners(Class listenerType) { --- 518,527 ---- ActionListener.class); } ! /** Returns all registered EventListers of the given listenerType. ! * listenerType must be a subclass of EventListener, or a * ClassClassException is thrown. ! * @since 1.3 */ public T[] getListeners(Class listenerType) { *************** removeActionListener(ActionListener l) *** 535,544 **** void dispatchEventImpl(AWTEvent e) { ! if (e.id <= ActionEvent.ACTION_LAST && e.id >= ActionEvent.ACTION_FIRST && (action_listeners != null ! || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) processEvent(e); // Send the event to the parent menu if it has not yet been --- 535,544 ---- void dispatchEventImpl(AWTEvent e) { ! if (e.id <= ActionEvent.ACTION_LAST && e.id >= ActionEvent.ACTION_FIRST && (action_listeners != null ! || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) processEvent(e); // Send the event to the parent menu if it has not yet been *************** public String *** 588,594 **** paramString() { return ("label=" + label + ",enabled=" + enabled + ! ",actionCommand=" + actionCommand + "," + super.paramString()); } /** --- 588,594 ---- paramString() { return ("label=" + label + ",enabled=" + enabled + ! ",actionCommand=" + actionCommand + "," + super.paramString()); } /** *************** private static synchronized long getUniq *** 620,623 **** return next_menuitem_number++; } ! } // class MenuItem --- 620,623 ---- return next_menuitem_number++; } ! } // class MenuItem diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/MenuShortcut.java gcc-4.6.0/libjava/classpath/java/awt/MenuShortcut.java *** gcc-4.5.2/libjava/classpath/java/awt/MenuShortcut.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/MenuShortcut.java Tue Jan 11 19:46:05 2011 *************** equals(Object obj) *** 170,176 **** { MenuShortcut ms = (MenuShortcut) obj; return (ms.key == key && ms.usesShift == usesShift); ! } return false; } --- 170,176 ---- { MenuShortcut ms = (MenuShortcut) obj; return (ms.key == key && ms.usesShift == usesShift); ! } return false; } *************** paramString() *** 211,217 **** return "key=" + key + ",usesShift=" + usesShift; } ! private void setKeyName(int key) { if (key == '\n') --- 211,217 ---- return "key=" + key + ",usesShift=" + usesShift; } ! private void setKeyName(int key) { if (key == '\n') diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/MouseInfo.java gcc-4.6.0/libjava/classpath/java/awt/MouseInfo.java *** gcc-4.5.2/libjava/classpath/java/awt/MouseInfo.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/MouseInfo.java Tue Jan 11 19:46:05 2011 *************** public class MouseInfo *** 81,87 **** GraphicsDevice[] gds = GraphicsEnvironment.getLocalGraphicsEnvironment(). getScreenDevices(); ! return new PointerInfo( gds[ screen ], p ); } --- 81,87 ---- GraphicsDevice[] gds = GraphicsEnvironment.getLocalGraphicsEnvironment(). getScreenDevices(); ! return new PointerInfo( gds[ screen ], p ); } *************** public class MouseInfo *** 99,102 **** return ((ClasspathToolkit)Toolkit.getDefaultToolkit()). getMouseNumberOfButtons(); } ! } --- 99,102 ---- return ((ClasspathToolkit)Toolkit.getDefaultToolkit()). getMouseNumberOfButtons(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/PageAttributes.java gcc-4.6.0/libjava/classpath/java/awt/PageAttributes.java *** gcc-4.5.2/libjava/classpath/java/awt/PageAttributes.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/PageAttributes.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PageAttributes.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PageAttributes.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class PageAttributes implem *** 265,271 **** } } // class PrintQualityType ! private ColorType color; private MediaType media; private OrientationRequestedType orientation; --- 265,271 ---- } } // class PrintQualityType ! private ColorType color; private MediaType media; private OrientationRequestedType orientation; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Point.java gcc-4.6.0/libjava/classpath/java/awt/Point.java *** gcc-4.5.2/libjava/classpath/java/awt/Point.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/Point.java Tue Jan 11 19:46:05 2011 *************** public class Point extends Point2D imple *** 178,184 **** /** * Sets this object's coordinates to the specified values. This method ! * rounds to the nearest integer coordinates by adding 0.5 and calling * {@link Math#floor(double)}. * * @param x the new X coordinate --- 178,184 ---- /** * Sets this object's coordinates to the specified values. This method ! * rounds to the nearest integer coordinates by adding 0.5 and calling * {@link Math#floor(double)}. * * @param x the new X coordinate diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/PointerInfo.java gcc-4.6.0/libjava/classpath/java/awt/PointerInfo.java *** gcc-4.5.2/libjava/classpath/java/awt/PointerInfo.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/PointerInfo.java Tue Jan 11 19:46:05 2011 *************** public class PointerInfo *** 81,84 **** { return p; } ! } --- 81,84 ---- { return p; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Polygon.java gcc-4.6.0/libjava/classpath/java/awt/Polygon.java *** gcc-4.5.2/libjava/classpath/java/awt/Polygon.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/awt/Polygon.java Tue Jan 11 19:46:05 2011 *************** public class Polygon implements Shape, S *** 175,187 **** int i = npoints; while (--i >= 0) { ! xpoints[i] += dx; ! ypoints[i] += dy; } if (bounds != null) { ! bounds.x += dx; ! bounds.y += dy; } } --- 175,187 ---- int i = npoints; while (--i >= 0) { ! xpoints[i] += dx; ! ypoints[i] += dy; } if (bounds != null) { ! bounds.x += dx; ! bounds.y += dy; } } *************** public class Polygon implements Shape, S *** 196,238 **** { if (npoints + 1 > xpoints.length) { ! int[] newx = new int[npoints + 1]; ! System.arraycopy(xpoints, 0, newx, 0, npoints); ! xpoints = newx; } if (npoints + 1 > ypoints.length) { ! int[] newy = new int[npoints + 1]; ! System.arraycopy(ypoints, 0, newy, 0, npoints); ! ypoints = newy; } xpoints[npoints] = x; ypoints[npoints] = y; npoints++; if (bounds != null) { ! if (npoints == 1) ! { ! bounds.x = x; ! bounds.y = y; ! } ! else ! { ! if (x < bounds.x) ! { ! bounds.width += bounds.x - x; ! bounds.x = x; ! } ! else if (x > bounds.x + bounds.width) ! bounds.width = x - bounds.x; ! if (y < bounds.y) ! { ! bounds.height += bounds.y - y; ! bounds.y = y; ! } ! else if (y > bounds.y + bounds.height) ! bounds.height = y - bounds.y; ! } } } --- 196,238 ---- { if (npoints + 1 > xpoints.length) { ! int[] newx = new int[npoints + 1]; ! System.arraycopy(xpoints, 0, newx, 0, npoints); ! xpoints = newx; } if (npoints + 1 > ypoints.length) { ! int[] newy = new int[npoints + 1]; ! System.arraycopy(ypoints, 0, newy, 0, npoints); ! ypoints = newy; } xpoints[npoints] = x; ypoints[npoints] = y; npoints++; if (bounds != null) { ! if (npoints == 1) ! { ! bounds.x = x; ! bounds.y = y; ! } ! else ! { ! if (x < bounds.x) ! { ! bounds.width += bounds.x - x; ! bounds.x = x; ! } ! else if (x > bounds.x + bounds.width) ! bounds.width = x - bounds.x; ! if (y < bounds.y) ! { ! bounds.height += bounds.y - y; ! bounds.y = y; ! } ! else if (y > bounds.y + bounds.height) ! bounds.height = y - bounds.y; ! } } } *************** public class Polygon implements Shape, S *** 263,289 **** { if (bounds == null) { ! if (npoints == 0) ! return bounds = new Rectangle(); ! int i = npoints - 1; ! int minx = xpoints[i]; ! int maxx = minx; ! int miny = ypoints[i]; ! int maxy = miny; ! while (--i >= 0) ! { ! int x = xpoints[i]; ! int y = ypoints[i]; ! if (x < minx) ! minx = x; ! else if (x > maxx) ! maxx = x; ! if (y < miny) ! miny = y; ! else if (y > maxy) ! maxy = y; ! } ! bounds = new Rectangle(minx, miny, maxx - minx, maxy - miny); } return bounds; } --- 263,289 ---- { if (bounds == null) { ! if (npoints == 0) ! return bounds = new Rectangle(); ! int i = npoints - 1; ! int minx = xpoints[i]; ! int maxx = minx; ! int miny = ypoints[i]; ! int maxy = miny; ! while (--i >= 0) ! { ! int x = xpoints[i]; ! int y = ypoints[i]; ! if (x < minx) ! minx = x; ! else if (x > maxx) ! maxx = x; ! if (y < miny) ! miny = y; ! else if (y > maxy) ! maxy = y; ! } ! bounds = new Rectangle(minx, miny, maxx - minx, maxy - miny); } return bounds; } *************** public class Polygon implements Shape, S *** 476,520 **** { return new PathIterator() { ! /** The current vertex of iteration. */ ! private int vertex; ! public int getWindingRule() ! { ! return WIND_EVEN_ODD; ! } ! public boolean isDone() ! { ! return vertex > npoints; ! } ! public void next() ! { ! vertex++; ! } ! public int currentSegment(float[] coords) ! { ! if (vertex >= npoints) ! return SEG_CLOSE; ! coords[0] = xpoints[vertex]; ! coords[1] = ypoints[vertex]; ! if (transform != null) ! transform.transform(coords, 0, coords, 0, 1); ! return vertex == 0 ? SEG_MOVETO : SEG_LINETO; ! } ! public int currentSegment(double[] coords) ! { ! if (vertex >= npoints) ! return SEG_CLOSE; ! coords[0] = xpoints[vertex]; ! coords[1] = ypoints[vertex]; ! if (transform != null) ! transform.transform(coords, 0, coords, 0, 1); ! return vertex == 0 ? SEG_MOVETO : SEG_LINETO; ! } }; } --- 476,520 ---- { return new PathIterator() { ! /** The current vertex of iteration. */ ! private int vertex; ! public int getWindingRule() ! { ! return WIND_EVEN_ODD; ! } ! public boolean isDone() ! { ! return vertex > npoints; ! } ! public void next() ! { ! vertex++; ! } ! public int currentSegment(float[] coords) ! { ! if (vertex >= npoints) ! return SEG_CLOSE; ! coords[0] = xpoints[vertex]; ! coords[1] = ypoints[vertex]; ! if (transform != null) ! transform.transform(coords, 0, coords, 0, 1); ! return vertex == 0 ? SEG_MOVETO : SEG_LINETO; ! } ! public int currentSegment(double[] coords) ! { ! if (vertex >= npoints) ! return SEG_CLOSE; ! coords[0] = xpoints[vertex]; ! coords[1] = ypoints[vertex]; ! if (transform != null) ! transform.transform(coords, 0, coords, 0, 1); ! return vertex == 0 ? SEG_MOVETO : SEG_LINETO; ! } }; } *************** public class Polygon implements Shape, S *** 560,576 **** if (useYaxis) { ! xp = ypoints; ! yp = xpoints; ! double swap; ! swap = y; ! y = x; ! x = swap; } else { ! xp = xpoints; ! yp = ypoints; } /* Get a value which is small but not insignificant relative the path. */ --- 560,576 ---- if (useYaxis) { ! xp = ypoints; ! yp = xpoints; ! double swap; ! swap = y; ! y = x; ! x = swap; } else { ! xp = xpoints; ! yp = ypoints; } /* Get a value which is small but not insignificant relative the path. */ *************** public class Polygon implements Shape, S *** 580,598 **** y0 = yp[0] - y; for (int i = 1; i < npoints; i++) { ! x1 = xp[i] - x; ! y1 = yp[i] - y; ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y1 == 0.0) ! y1 -= epsilon; ! if (y0 * y1 < 0) ! if (Line2D.linesIntersect(x0, y0, x1, y1, epsilon, 0.0, distance, 0.0)) ! ++crossings; ! x0 = xp[i] - x; ! y0 = yp[i] - y; } // end segment --- 580,598 ---- y0 = yp[0] - y; for (int i = 1; i < npoints; i++) { ! x1 = xp[i] - x; ! y1 = yp[i] - y; ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y1 == 0.0) ! y1 -= epsilon; ! if (y0 * y1 < 0) ! if (Line2D.linesIntersect(x0, y0, x1, y1, epsilon, 0.0, distance, 0.0)) ! ++crossings; ! x0 = xp[i] - x; ! y0 = yp[i] - y; } // end segment *************** public class Polygon implements Shape, S *** 604,612 **** y1 -= epsilon; if (y0 * y1 < 0) if (Line2D.linesIntersect(x0, y0, x1, y1, epsilon, 0.0, distance, 0.0)) ! ++crossings; return crossings; } } // class Polygon - --- 604,611 ---- y1 -= epsilon; if (y0 * y1 < 0) if (Line2D.linesIntersect(x0, y0, x1, y1, epsilon, 0.0, distance, 0.0)) ! ++crossings; return crossings; } } // class Polygon diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/PopupMenu.java gcc-4.6.0/libjava/classpath/java/awt/PopupMenu.java *** gcc-4.5.2/libjava/classpath/java/awt/PopupMenu.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/PopupMenu.java Tue Jan 11 19:46:05 2011 *************** show(Component component, int x, int y) *** 150,163 **** protected AccessibleAWTPopupMenu() { } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.POPUP_MENU; } ! } ! /** * Gets the AccessibleContext associated with this PopupMenu. * The context is created, if necessary. --- 150,163 ---- protected AccessibleAWTPopupMenu() { } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.POPUP_MENU; } ! } ! /** * Gets the AccessibleContext associated with this PopupMenu. * The context is created, if necessary. *************** show(Component component, int x, int y) *** 171,177 **** accessibleContext = new AccessibleAWTPopupMenu(); return accessibleContext; } ! /** * Generate a unique name for this PopupMenu. * --- 171,177 ---- accessibleContext = new AccessibleAWTPopupMenu(); return accessibleContext; } ! /** * Generate a unique name for this PopupMenu. * *************** show(Component component, int x, int y) *** 188,191 **** } } // class PopupMenu - --- 188,190 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Rectangle.java gcc-4.6.0/libjava/classpath/java/awt/Rectangle.java *** gcc-4.5.2/libjava/classpath/java/awt/Rectangle.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Rectangle.java Tue Jan 11 19:46:05 2011 *************** public class Rectangle extends Rectangle *** 183,189 **** * @param p the upper left corner of the rectangle */ public Rectangle(Point p) ! { x = p.x; y = p.y; } --- 183,189 ---- * @param p the upper left corner of the rectangle */ public Rectangle(Point p) ! { x = p.x; y = p.y; } *************** public class Rectangle extends Rectangle *** 196,202 **** * @param d the width and height of the rectangle */ public Rectangle(Dimension d) ! { width = d.width; height = d.height; } --- 196,202 ---- * @param d the width and height of the rectangle */ public Rectangle(Dimension d) ! { width = d.width; height = d.height; } *************** public class Rectangle extends Rectangle *** 299,305 **** /** * Updates this rectangle to have the specified dimensions, rounded to the * integer precision used by this class (the values are rounded "outwards" so ! * that the stored rectangle completely encloses the specified double * precision rectangle). * * @param x the new X coordinate of the upper left hand corner --- 299,305 ---- /** * Updates this rectangle to have the specified dimensions, rounded to the * integer precision used by this class (the values are rounded "outwards" so ! * that the stored rectangle completely encloses the specified double * precision rectangle). * * @param x the new X coordinate of the upper left hand corner diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/RenderingHints.java gcc-4.6.0/libjava/classpath/java/awt/RenderingHints.java *** gcc-4.5.2/libjava/classpath/java/awt/RenderingHints.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/RenderingHints.java Tue Jan 11 19:46:05 2011 *************** import java.util.Map; *** 46,52 **** import java.util.Set; /** ! * A collection of (key, value) items that provide 'hints' for the * {@link java.awt.Graphics2D} rendering pipeline. Because these * items are hints only, they may be ignored by a particular * {@link java.awt.Graphics2D} implementation. --- 46,52 ---- import java.util.Set; /** ! * A collection of (key, value) items that provide 'hints' for the * {@link java.awt.Graphics2D} rendering pipeline. Because these * items are hints only, they may be ignored by a particular * {@link java.awt.Graphics2D} implementation. *************** public class RenderingHints *** 66,72 **** /** * Creates a new key. ! * * @param privateKey the private key. */ protected Key(int privateKey) --- 66,72 ---- /** * Creates a new key. ! * * @param privateKey the private key. */ protected Key(int privateKey) *************** public class RenderingHints *** 77,92 **** /** * Returns true if the specified value is compatible with * this key, and false otherwise. ! * * @param value the value (null permitted). ! * * @return A boolean. */ public abstract boolean isCompatibleValue(Object value); /** * Returns the private key for this instance. ! * * @return The private key. */ protected final int intKey() --- 77,92 ---- /** * Returns true if the specified value is compatible with * this key, and false otherwise. ! * * @param value the value (null permitted). ! * * @return A boolean. */ public abstract boolean isCompatibleValue(Object value); /** * Returns the private key for this instance. ! * * @return The private key. */ protected final int intKey() *************** public class RenderingHints *** 96,102 **** /** * Returns a hash code for the key. ! * * @return A hash code. */ public final int hashCode() --- 96,102 ---- /** * Returns a hash code for the key. ! * * @return A hash code. */ public final int hashCode() *************** public class RenderingHints *** 106,114 **** /** * Checks this key for equality with an arbitrary object. ! * * @param other the object (null permitted) ! * * @return A boolean. */ public final boolean equals(Object other) --- 106,114 ---- /** * Checks this key for equality with an arbitrary object. ! * * @param other the object (null permitted) ! * * @return A boolean. */ public final boolean equals(Object other) *************** public class RenderingHints *** 137,145 **** /** * Returns true if the specified value is compatible with * this key, and false otherwise. ! * * @param value the value (null permitted). ! * * @return A boolean. */ public boolean isCompatibleValue(Object value) --- 137,145 ---- /** * Returns true if the specified value is compatible with * this key, and false otherwise. ! * * @param value the value (null permitted). ! * * @return A boolean. */ public boolean isCompatibleValue(Object value) *************** public class RenderingHints *** 149,155 **** /** * Returns a string representation of the key. ! * * @return A string. */ public String toString() --- 149,155 ---- /** * Returns a string representation of the key. ! * * @return A string. */ public String toString() *************** public class RenderingHints *** 547,554 **** /** * Creates a new collection of hints containing all the (key, value) pairs * in the specified map. ! * ! * @param init a map containing a collection of hints (null * permitted). */ public RenderingHints(Map init) --- 547,554 ---- /** * Creates a new collection of hints containing all the (key, value) pairs * in the specified map. ! * ! * @param init a map containing a collection of hints (null * permitted). */ public RenderingHints(Map init) *************** public class RenderingHints *** 559,565 **** /** * Creates a new collection containing a single (key, value) pair. ! * * @param key the key. * @param value the value. */ --- 559,565 ---- /** * Creates a new collection containing a single (key, value) pair. ! * * @param key the key. * @param value the value. */ *************** public class RenderingHints *** 570,576 **** /** * Returns the number of hints in the collection. ! * * @return The number of hints. */ public int size() --- 570,576 ---- /** * Returns the number of hints in the collection. ! * * @return The number of hints. */ public int size() *************** public class RenderingHints *** 581,587 **** /** * Returns true if there are no hints in the collection, * and false otherwise. ! * * @return A boolean. */ public boolean isEmpty() --- 581,587 ---- /** * Returns true if there are no hints in the collection, * and false otherwise. ! * * @return A boolean. */ public boolean isEmpty() *************** public class RenderingHints *** 592,602 **** /** * Returns true if the collection of hints contains the * specified key, and false otherwise. ! * * @param key the key (null not permitted). ! * * @return A boolean. ! * * @throws NullPointerException if key is null. * @throws ClassCastException if key is not a {@link Key}. */ --- 592,602 ---- /** * Returns true if the collection of hints contains the * specified key, and false otherwise. ! * * @param key the key (null not permitted). ! * * @return A boolean. ! * * @throws NullPointerException if key is null. * @throws ClassCastException if key is not a {@link Key}. */ *************** public class RenderingHints *** 611,619 **** /** * Returns true if the collection of hints contains the * specified value, and false otherwise. ! * * @param value the value. ! * * @return A boolean. */ public boolean containsValue(Object value) --- 611,619 ---- /** * Returns true if the collection of hints contains the * specified value, and false otherwise. ! * * @param value the value. ! * * @return A boolean. */ public boolean containsValue(Object value) *************** public class RenderingHints *** 624,636 **** /** * Returns the value associated with the specified key, or null * if there is no value defined for the key. ! * * @param key the key (null permitted). ! * * @return The value (possibly null). ! * * @throws ClassCastException if key is not a {@link Key}. ! * * @see #containsKey(Object) */ public Object get(Object key) --- 624,636 ---- /** * Returns the value associated with the specified key, or null * if there is no value defined for the key. ! * * @param key the key (null permitted). ! * * @return The value (possibly null). ! * * @throws ClassCastException if key is not a {@link Key}. ! * * @see #containsKey(Object) */ public Object get(Object key) *************** public class RenderingHints *** 641,652 **** /** * Adds a (key, value) pair to the collection of hints (if the ! * collection already contains the specified key, then the * value is updated). ! * * @param key the key. * @param value the value. ! * * @return the previous value of the key or null if the key * didn't have a value yet. */ --- 641,652 ---- /** * Adds a (key, value) pair to the collection of hints (if the ! * collection already contains the specified key, then the * value is updated). ! * * @param key the key. * @param value the value. ! * * @return the previous value of the key or null if the key * didn't have a value yet. */ *************** public class RenderingHints *** 661,667 **** /** * Adds all the hints from a collection to this collection. ! * * @param hints the hint collection. */ public void add(RenderingHints hints) --- 661,667 ---- /** * Adds all the hints from a collection to this collection. ! * * @param hints the hint collection. */ public void add(RenderingHints hints) *************** public class RenderingHints *** 679,705 **** /** * Removes a hint from the collection. ! * * @param key the key. ! * ! * @return The value that was associated with the key, or null if * the key was not part of the collection ! * ! * @throws ClassCastException if the key is not a subclass of * {@link RenderingHints.Key}. */ public Object remove(Object key) { // don't remove the (Key) cast, it is necessary to throw the exception // required by the spec ! return hintMap.remove((Key) key); } /** * Adds a collection of (key, value) pairs to the collection. ! * * @param m a map containing (key, value) items. ! * * @throws ClassCastException if the map contains a key that is not * a subclass of {@link RenderingHints.Key}. * @throws IllegalArgumentException if the map contains a value that is --- 679,705 ---- /** * Removes a hint from the collection. ! * * @param key the key. ! * ! * @return The value that was associated with the key, or null if * the key was not part of the collection ! * ! * @throws ClassCastException if the key is not a subclass of * {@link RenderingHints.Key}. */ public Object remove(Object key) { // don't remove the (Key) cast, it is necessary to throw the exception // required by the spec ! return hintMap.remove((Key) key); } /** * Adds a collection of (key, value) pairs to the collection. ! * * @param m a map containing (key, value) items. ! * * @throws ClassCastException if the map contains a key that is not * a subclass of {@link RenderingHints.Key}. * @throws IllegalArgumentException if the map contains a value that is *************** public class RenderingHints *** 721,727 **** /** * Returns a set containing the keys from this collection. ! * * @return A set of keys. */ public Set keySet() --- 721,727 ---- /** * Returns a set containing the keys from this collection. ! * * @return A set of keys. */ public Set keySet() *************** public class RenderingHints *** 731,739 **** /** * Returns a collection of the values from this hint collection. The ! * collection is backed by the RenderingHints instance, * so updates to one will affect the other. ! * * @return A collection of values. */ public Collection values() --- 731,739 ---- /** * Returns a collection of the values from this hint collection. The ! * collection is backed by the RenderingHints instance, * so updates to one will affect the other. ! * * @return A collection of values. */ public Collection values() *************** public class RenderingHints *** 743,749 **** /** * Returns a set of entries from the collection. ! * * @return A set of entries. */ public Set> entrySet() --- 743,749 ---- /** * Returns a set of entries from the collection. ! * * @return A set of entries. */ public Set> entrySet() *************** public class RenderingHints *** 753,761 **** /** * Checks this collection for equality with an arbitrary object. ! * * @param o the object (null permitted) ! * * @return A boolean. */ public boolean equals(Object o) --- 753,761 ---- /** * Checks this collection for equality with an arbitrary object. ! * * @param o the object (null permitted) ! * * @return A boolean. */ public boolean equals(Object o) *************** public class RenderingHints *** 765,771 **** /** * Returns a hash code for the collection of hints. ! * * @return A hash code. */ public int hashCode() --- 765,771 ---- /** * Returns a hash code for the collection of hints. ! * * @return A hash code. */ public int hashCode() *************** public class RenderingHints *** 775,781 **** /** * Creates a clone of this instance. ! * * @return A clone. */ public Object clone() --- 775,781 ---- /** * Creates a clone of this instance. ! * * @return A clone. */ public Object clone() *************** public class RenderingHints *** 794,800 **** /** * Returns a string representation of this instance. ! * * @return A string. */ public String toString() --- 794,800 ---- /** * Returns a string representation of this instance. ! * * @return A string. */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Robot.java gcc-4.6.0/libjava/classpath/java/awt/Robot.java *** gcc-4.5.2/libjava/classpath/java/awt/Robot.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/Robot.java Tue Jan 11 19:46:05 2011 *************** public class Robot *** 92,98 **** // createRobot will throw AWTException if XTest is not supported. peer = tk.createRobot (GraphicsEnvironment.getLocalGraphicsEnvironment () ! .getDefaultScreenDevice ()); } /** --- 92,98 ---- // createRobot will throw AWTException if XTest is not supported. peer = tk.createRobot (GraphicsEnvironment.getLocalGraphicsEnvironment () ! .getDefaultScreenDevice ()); } /** *************** public class Robot *** 113,119 **** if (screen.getType () != GraphicsDevice.TYPE_RASTER_SCREEN) throw new IllegalArgumentException ("Robot: graphics" ! + " device is not a screen"); SecurityManager sm = System.getSecurityManager (); if (sm != null) --- 113,119 ---- if (screen.getType () != GraphicsDevice.TYPE_RASTER_SCREEN) throw new IllegalArgumentException ("Robot: graphics" ! + " device is not a screen"); SecurityManager sm = System.getSecurityManager (); if (sm != null) *************** public class Robot *** 159,168 **** public void mousePress (int buttons) { if ((buttons & InputEvent.BUTTON1_MASK) == 0 ! && (buttons & InputEvent.BUTTON2_MASK) == 0 ! && (buttons & InputEvent.BUTTON3_MASK) == 0) throw new IllegalArgumentException ("Robot: mousePress:" ! + " invalid button mask"); peer.mousePress (buttons); --- 159,168 ---- public void mousePress (int buttons) { if ((buttons & InputEvent.BUTTON1_MASK) == 0 ! && (buttons & InputEvent.BUTTON2_MASK) == 0 ! && (buttons & InputEvent.BUTTON3_MASK) == 0) throw new IllegalArgumentException ("Robot: mousePress:" ! + " invalid button mask"); peer.mousePress (buttons); *************** public class Robot *** 190,199 **** public void mouseRelease(int buttons) { if ((buttons & InputEvent.BUTTON1_MASK) == 0 ! && (buttons & InputEvent.BUTTON2_MASK) == 0 ! && (buttons & InputEvent.BUTTON3_MASK) == 0) throw new IllegalArgumentException ("Robot: mouseRelease:" ! + " invalid button mask"); peer.mouseRelease (buttons); --- 190,199 ---- public void mouseRelease(int buttons) { if ((buttons & InputEvent.BUTTON1_MASK) == 0 ! && (buttons & InputEvent.BUTTON2_MASK) == 0 ! && (buttons & InputEvent.BUTTON3_MASK) == 0) throw new IllegalArgumentException ("Robot: mouseRelease:" ! + " invalid button mask"); peer.mouseRelease (buttons); *************** public class Robot *** 245,251 **** /** * Release a key. * ! * @param keycode key to release, a {@link java.awt.event.KeyEvent} VK_ * constant * * @exception IllegalArgumentException if keycode is not a valid key --- 245,251 ---- /** * Release a key. * ! * @param keycode key to release, a {@link java.awt.event.KeyEvent} VK_ * constant * * @exception IllegalArgumentException if keycode is not a valid key *************** public class Robot *** 304,313 **** BufferedImage bufferedImage = new BufferedImage (screenRect.width, screenRect.height, ! BufferedImage.TYPE_INT_ARGB); bufferedImage.setRGB (0, 0, screenRect.width, screenRect.height, ! pixels, 0, screenRect.width); return bufferedImage; } --- 304,313 ---- BufferedImage bufferedImage = new BufferedImage (screenRect.width, screenRect.height, ! BufferedImage.TYPE_INT_ARGB); bufferedImage.setRGB (0, 0, screenRect.width, screenRect.height, ! pixels, 0, screenRect.width); return bufferedImage; } *************** public class Robot *** 377,387 **** try { ! Thread.sleep (ms); } catch (InterruptedException e) { ! System.err.println ("Robot: delay interrupted"); } } --- 377,387 ---- try { ! Thread.sleep (ms); } catch (InterruptedException e) { ! System.err.println ("Robot: delay interrupted"); } } *************** public class Robot *** 393,411 **** { if (EventQueue.isDispatchThread ()) throw new IllegalThreadStateException ("Robot: waitForIdle called from " ! + "the event dispatch thread"); try { ! EventQueue.invokeAndWait (new Runnable () { public void run () { } }); } catch (InterruptedException e) { ! System.err.println ("Robot: waitForIdle interrupted"); } catch (InvocationTargetException e) { ! System.err.println ("Robot: waitForIdle cannot invoke target"); } } --- 393,411 ---- { if (EventQueue.isDispatchThread ()) throw new IllegalThreadStateException ("Robot: waitForIdle called from " ! + "the event dispatch thread"); try { ! EventQueue.invokeAndWait (new Runnable () { public void run () { } }); } catch (InterruptedException e) { ! System.err.println ("Robot: waitForIdle interrupted"); } catch (InvocationTargetException e) { ! System.err.println ("Robot: waitForIdle cannot invoke target"); } } *************** public class Robot *** 417,423 **** public String toString () { return getClass ().getName () ! + "[ autoDelay = " + autoDelay + ", autoWaitForIdle = " ! + waitForIdle + " ]"; } } --- 417,423 ---- public String toString () { return getClass ().getName () ! + "[ autoDelay = " + autoDelay + ", autoWaitForIdle = " ! + waitForIdle + " ]"; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/ScrollPane.java gcc-4.6.0/libjava/classpath/java/awt/ScrollPane.java *** gcc-4.5.2/libjava/classpath/java/awt/ScrollPane.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/ScrollPane.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleRol *** 48,54 **** /** ! * This widget provides a scrollable region that allows a single * subcomponent to be viewed through a smaller window. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 48,54 ---- /** ! * This widget provides a scrollable region that allows a single * subcomponent to be viewed through a smaller window. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** getVAdjustable() *** 227,233 **** * @return The viewport size. */ public Dimension getViewportSize () ! { Dimension viewsize = getSize (); Insets insets = getInsets (); --- 227,233 ---- * @return The viewport size. */ public Dimension getViewportSize () ! { Dimension viewsize = getSize (); Insets insets = getInsets (); *************** public Dimension getViewportSize () *** 237,245 **** Component[] list = getComponents(); if ((list == null) || (list.length <= 0)) return viewsize; ! Dimension dim = list[0].getPreferredSize(); ! if (dim.width <= 0 && dim.height <= 0) return viewsize; --- 237,245 ---- Component[] list = getComponents(); if ((list == null) || (list.length <= 0)) return viewsize; ! Dimension dim = list[0].getPreferredSize(); ! if (dim.width <= 0 && dim.height <= 0) return viewsize; *************** public Dimension getViewportSize () *** 282,288 **** needHorizontal = true; else if (dim.width > (viewsize.width - vScrollbarWidth)) mayNeedHorizontal = true; ! if (needVertical && mayNeedHorizontal) needHorizontal = true; --- 282,288 ---- needHorizontal = true; else if (dim.width > (viewsize.width - vScrollbarWidth)) mayNeedHorizontal = true; ! if (needVertical && mayNeedHorizontal) needHorizontal = true; *************** public Dimension getViewportSize () *** 294,300 **** if (needVertical) viewsize.width -= vScrollbarWidth; ! return viewsize; } --- 294,300 ---- if (needVertical) viewsize.width -= vScrollbarWidth; ! return viewsize; } *************** getVScrollbarWidth() *** 338,344 **** * Returns the current scroll position of the viewport. * * @return The current scroll position of the viewport. ! * * @throws NullPointerException if the scrollpane does have a child. */ public Point --- 338,344 ---- * Returns the current scroll position of the viewport. * * @return The current scroll position of the viewport. ! * * @throws NullPointerException if the scrollpane does have a child. */ public Point *************** getScrollPosition() *** 346,352 **** { if (getComponentCount() == 0) throw new NullPointerException(); ! int x = 0; int y = 0; --- 346,352 ---- { if (getComponentCount() == 0) throw new NullPointerException(); ! int x = 0; int y = 0; *************** setScrollPosition(Point scrollPosition) *** 386,392 **** * @param y The new Y coordinate of the scroll position. * * @throws NullPointerException if scrollpane does not have a child. ! * * @exception IllegalArgumentException If the specified value is outside * the legal scrolling range. */ --- 386,392 ---- * @param y The new Y coordinate of the scroll position. * * @throws NullPointerException if scrollpane does not have a child. ! * * @exception IllegalArgumentException If the specified value is outside * the legal scrolling range. */ *************** setScrollPosition(int x, int y) *** 405,419 **** x = 0; if (y < 0) y = 0; ! Adjustable h = getHAdjustable(); Adjustable v = getVAdjustable(); ! if (h != null) h.setValue(x); if (v != null) v.setValue(y); ! ScrollPanePeer spp = (ScrollPanePeer)getPeer(); if (spp != null) spp.setScrollPosition(x, y); --- 405,419 ---- x = 0; if (y < 0) y = 0; ! Adjustable h = getHAdjustable(); Adjustable v = getVAdjustable(); ! if (h != null) h.setValue(x); if (v != null) v.setValue(y); ! ScrollPanePeer spp = (ScrollPanePeer)getPeer(); if (spp != null) spp.setScrollPosition(x, y); *************** removeNotify() *** 457,463 **** /*************************************************************************/ /** ! * Adds the specified child component to this container. A * ScrollPane can have at most one child, so if a second * one is added, then first one is removed. * --- 457,463 ---- /*************************************************************************/ /** ! * Adds the specified child component to this container. A * ScrollPane can have at most one child, so if a second * one is added, then first one is removed. * *************** removeNotify() *** 467,473 **** * in this implementation. */ protected final void addImpl (Component component, Object constraints, ! int index) { Component[] list = getComponents(); if ((list != null) && (list.length > 0)) --- 467,473 ---- * in this implementation. */ protected final void addImpl (Component component, Object constraints, ! int index) { Component[] list = getComponents(); if ((list != null) && (list.length > 0)) *************** layout() *** 507,520 **** Dimension vp = getViewportSize (); if (dim.width < vp.width) ! dim.width = vp.width; if (dim.height < vp.height) ! dim.height = vp.height; ScrollPanePeer peer = (ScrollPanePeer) getPeer (); if (peer != null) ! peer.childResized (dim.width, dim.height); list[0].setSize (dim); --- 507,520 ---- Dimension vp = getViewportSize (); if (dim.width < vp.width) ! dim.width = vp.width; if (dim.height < vp.height) ! dim.height = vp.height; ScrollPanePeer peer = (ScrollPanePeer) getPeer (); if (peer != null) ! peer.childResized (dim.width, dim.height); list[0].setSize (dim); *************** layout() *** 525,531 **** p.y = dim.height; setScrollPosition (p); ! list[0].setLocation(new Point()); } } --- 525,531 ---- p.y = dim.height; setScrollPosition (p); ! list[0].setLocation(new Point()); } } *************** layout() *** 538,544 **** * not have layout managers. * * @param layoutManager Ignored ! * @throws AWTError Always throws this error when called. */ public final void setLayout(LayoutManager layoutManager) --- 538,544 ---- * not have layout managers. * * @param layoutManager Ignored ! * @throws AWTError Always throws this error when called. */ public final void setLayout(LayoutManager layoutManager) *************** paramString() *** 575,581 **** + getY() + "," + getWidth() + "x" + getHeight() + "," + getIsValidString() + "," ! + "ScrollPosition=(" + scrollPosition.x + "," + scrollPosition.y + ")," + "Insets=(" + insets.top + "," + insets.left + "," --- 575,581 ---- + getY() + "," + getWidth() + "x" + getHeight() + "," + getIsValidString() + "," ! + "ScrollPosition=(" + scrollPosition.x + "," + scrollPosition.y + ")," + "Insets=(" + insets.top + "," + insets.left + "," *************** getScrollbarDisplayPolicyString() *** 596,602 **** return "never"; } ! private String getIsValidString() { if (isValid()) --- 596,602 ---- return "never"; } ! private String getIsValidString() { if (isValid()) *************** getIsValidString() *** 637,643 **** { wheelScrollingEnabled = enable; } ! protected class AccessibleAWTScrollPane extends AccessibleAWTContainer { private static final long serialVersionUID = 6100703663886637L; --- 637,643 ---- { wheelScrollingEnabled = enable; } ! protected class AccessibleAWTScrollPane extends AccessibleAWTContainer { private static final long serialVersionUID = 6100703663886637L; *************** getIsValidString() *** 661,667 **** accessibleContext = new AccessibleAWTScrollPane(); return accessibleContext; } ! /** * Generate a unique name for this ScrollPane. * --- 661,667 ---- accessibleContext = new AccessibleAWTScrollPane(); return accessibleContext; } ! /** * Generate a unique name for this ScrollPane. * *************** getIsValidString() *** 676,681 **** { return next_scrollpane_number++; } - - } // class ScrollPane --- 676,680 ---- { return next_scrollpane_number++; } + } // class ScrollPane diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/ScrollPaneAdjustable.java gcc-4.6.0/libjava/classpath/java/awt/ScrollPaneAdjustable.java *** gcc-4.5.2/libjava/classpath/java/awt/ScrollPaneAdjustable.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/ScrollPaneAdjustable.java Tue Jan 11 19:46:05 2011 *************** public class ScrollPaneAdjustable *** 52,58 **** implements Adjustable, Serializable { private static final long serialVersionUID = -3359745691033257079L; ! ScrollPane sp; int orientation; int value; --- 52,58 ---- implements Adjustable, Serializable { private static final long serialVersionUID = -3359745691033257079L; ! ScrollPane sp; int orientation; int value; *************** public class ScrollPaneAdjustable *** 70,76 **** this.sp = sp; this.orientation = orientation; } ! ScrollPaneAdjustable (ScrollPane sp, int orientation, int value, int minimum, int maximum, int visibleAmount, int unitIncrement, int blockIncrement) --- 70,76 ---- this.sp = sp; this.orientation = orientation; } ! ScrollPaneAdjustable (ScrollPane sp, int orientation, int value, int minimum, int maximum, int visibleAmount, int unitIncrement, int blockIncrement) *************** public class ScrollPaneAdjustable *** 84,104 **** this.unitIncrement = unitIncrement; this.blockIncrement = blockIncrement; } ! public void addAdjustmentListener (AdjustmentListener listener) { if (listener == null) return; adjustmentListener = AWTEventMulticaster.add (adjustmentListener, listener); } ! public void removeAdjustmentListener (AdjustmentListener listener) { if (listener == null) return; adjustmentListener = AWTEventMulticaster.remove (adjustmentListener, listener); } ! public AdjustmentListener[] getAdjustmentListeners () { return (AdjustmentListener[]) AWTEventMulticaster.getListeners --- 84,104 ---- this.unitIncrement = unitIncrement; this.blockIncrement = blockIncrement; } ! public void addAdjustmentListener (AdjustmentListener listener) { if (listener == null) return; adjustmentListener = AWTEventMulticaster.add (adjustmentListener, listener); } ! public void removeAdjustmentListener (AdjustmentListener listener) { if (listener == null) return; adjustmentListener = AWTEventMulticaster.remove (adjustmentListener, listener); } ! public AdjustmentListener[] getAdjustmentListeners () { return (AdjustmentListener[]) AWTEventMulticaster.getListeners *************** public class ScrollPaneAdjustable *** 129,135 **** { return unitIncrement; } ! public int getValue () { return value; --- 129,135 ---- { return unitIncrement; } ! public int getValue () { return value; *************** public class ScrollPaneAdjustable *** 144,153 **** { this.blockIncrement = blockIncrement; } ! /** * This method should never be called. ! * * @param maximum The maximum value to be set. * @throws AWTError Always throws this error when called. */ --- 144,153 ---- { this.blockIncrement = blockIncrement; } ! /** * This method should never be called. ! * * @param maximum The maximum value to be set. * @throws AWTError Always throws this error when called. */ *************** public class ScrollPaneAdjustable *** 158,164 **** /** * This method should never be called. ! * * @param minimum The minimum value to be set. * @throws AWTError Always throws this error when called. */ --- 158,164 ---- /** * This method should never be called. ! * * @param minimum The minimum value to be set. * @throws AWTError Always throws this error when called. */ *************** public class ScrollPaneAdjustable *** 182,191 **** if (value > maximum) maximum = value; } ! /** * This method should never be called. ! * * @param visibleAmount The visible amount to be set. * @throws AWTError Always throws this error when called. */ --- 182,191 ---- if (value > maximum) maximum = value; } ! /** * This method should never be called. ! * * @param visibleAmount The visible amount to be set. * @throws AWTError Always throws this error when called. */ *************** public class ScrollPaneAdjustable *** 196,207 **** public String paramString () { ! return paramStringHelper() ! + ",[" + getMinimum() + ".." + getMaximum() ! + "],val=" + getValue() ! + ",vis=" + getVisibleAmount() + ",unit=" + getUnitIncrement() ! + ",block=" + getBlockIncrement() + ",isAdjusting=" + valueIsAdjusting; } --- 196,207 ---- public String paramString () { ! return paramStringHelper() ! + ",[" + getMinimum() + ".." + getMaximum() ! + "],val=" + getValue() ! + ",vis=" + getVisibleAmount() + ",unit=" + getUnitIncrement() ! + ",block=" + getBlockIncrement() + ",isAdjusting=" + valueIsAdjusting; } *************** public class ScrollPaneAdjustable *** 212,218 **** else return "vertical"; } ! public String toString() { return getClass().getName() + "[" + paramString() + "]"; --- 212,218 ---- else return "vertical"; } ! public String toString() { return getClass().getName() + "[" + paramString() + "]"; *************** public class ScrollPaneAdjustable *** 237,242 **** { this.valueIsAdjusting = valueIsAdjusting; } - - } // class ScrollPaneAdjustable --- 237,241 ---- { this.valueIsAdjusting = valueIsAdjusting; } + } // class ScrollPaneAdjustable diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Scrollbar.java gcc-4.6.0/libjava/classpath/java/awt/Scrollbar.java *** gcc-4.5.2/libjava/classpath/java/awt/Scrollbar.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Scrollbar.java Tue Jan 11 19:46:05 2011 *************** public class Scrollbar extends Component *** 343,349 **** { if (visibleAmount <= 0) visibleAmount = 1; ! if (maximum <= minimum) maximum = minimum + 1; --- 343,349 ---- { if (visibleAmount <= 0) visibleAmount = 1; ! if (maximum <= minimum) maximum = minimum + 1; *************** public class Scrollbar extends Component *** 352,358 **** if (visibleAmount > maximum - minimum) visibleAmount = maximum - minimum; ! // According to documentation, the actual maximum // value is (maximum - visibleAmount) if (value > maximum - visibleAmount) --- 352,358 ---- if (visibleAmount > maximum - minimum) visibleAmount = maximum - minimum; ! // According to documentation, the actual maximum // value is (maximum - visibleAmount) if (value > maximum - visibleAmount) *************** public class Scrollbar extends Component *** 367,373 **** this.value = value; this.visibleAmount = visibleAmount; this.minimum = minimum; ! this.maximum = maximum; } /** --- 367,373 ---- this.value = value; this.visibleAmount = visibleAmount; this.minimum = minimum; ! this.maximum = maximum; } /** *************** public class Scrollbar extends Component *** 419,431 **** { if (lineIncrement < 0) throw new IllegalArgumentException("Unit increment less than zero."); ! if (lineIncrement == 0) lineIncrement = 1; ! if (lineIncrement == this.lineIncrement) return; ! this.lineIncrement = lineIncrement; ScrollbarPeer peer = (ScrollbarPeer) getPeer(); --- 419,431 ---- { if (lineIncrement < 0) throw new IllegalArgumentException("Unit increment less than zero."); ! if (lineIncrement == 0) lineIncrement = 1; ! if (lineIncrement == this.lineIncrement) return; ! this.lineIncrement = lineIncrement; ScrollbarPeer peer = (ScrollbarPeer) getPeer(); *************** public class Scrollbar extends Component *** 485,491 **** if (pageIncrement == 0) pageIncrement = 1; ! if (pageIncrement == this.pageIncrement) return; --- 485,491 ---- if (pageIncrement == 0) pageIncrement = 1; ! if (pageIncrement == this.pageIncrement) return; *************** public class Scrollbar extends Component *** 570,594 **** */ void dispatchEventImpl(AWTEvent e) { ! if (e.id <= AdjustmentEvent.ADJUSTMENT_LAST ! && e.id >= AdjustmentEvent.ADJUSTMENT_FIRST) { ! AdjustmentEvent ae = (AdjustmentEvent) e; ! boolean adjusting = ae.getValueIsAdjusting(); ! if (adjusting) ! setValueIsAdjusting(true); ! try ! { ! setValue(((AdjustmentEvent) e).getValue()); ! if (adjustment_listeners != null ! || (eventMask & AWTEvent.ADJUSTMENT_EVENT_MASK) != 0) ! processEvent(e); ! } ! finally ! { ! if (adjusting) ! setValueIsAdjusting(false); ! } } else super.dispatchEventImpl(e); --- 570,594 ---- */ void dispatchEventImpl(AWTEvent e) { ! if (e.id <= AdjustmentEvent.ADJUSTMENT_LAST ! && e.id >= AdjustmentEvent.ADJUSTMENT_FIRST) { ! AdjustmentEvent ae = (AdjustmentEvent) e; ! boolean adjusting = ae.getValueIsAdjusting(); ! if (adjusting) ! setValueIsAdjusting(true); ! try ! { ! setValue(((AdjustmentEvent) e).getValue()); ! if (adjustment_listeners != null ! || (eventMask & AWTEvent.ADJUSTMENT_EVENT_MASK) != 0) ! processEvent(e); ! } ! finally ! { ! if (adjusting) ! setValueIsAdjusting(false); ! } } else super.dispatchEventImpl(e); *************** public class Scrollbar extends Component *** 710,720 **** { AccessibleStateSet states = super.getAccessibleStateSet(); if (getOrientation() == HORIZONTAL) ! states.add(AccessibleState.HORIZONTAL); else ! states.add(AccessibleState.VERTICAL); if (getValueIsAdjusting()) ! states.add(AccessibleState.BUSY); return states; } --- 710,720 ---- { AccessibleStateSet states = super.getAccessibleStateSet(); if (getOrientation() == HORIZONTAL) ! states.add(AccessibleState.HORIZONTAL); else ! states.add(AccessibleState.VERTICAL); if (getValueIsAdjusting()) ! states.add(AccessibleState.BUSY); return states; } *************** public class Scrollbar extends Component *** 809,815 **** /* Create the context if this is the first request */ if (accessibleContext == null) accessibleContext = new AccessibleAWTScrollBar(); ! return accessibleContext; } } --- 809,815 ---- /* Create the context if this is the first request */ if (accessibleContext == null) accessibleContext = new AccessibleAWTScrollBar(); ! return accessibleContext; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Shape.java gcc-4.6.0/libjava/classpath/java/awt/Shape.java *** gcc-4.5.2/libjava/classpath/java/awt/Shape.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/Shape.java Tue Jan 11 19:46:05 2011 *************** public interface Shape *** 109,115 **** * Test if a high-precision rectangle intersects the shape. This is true * if any point in the rectangle is in the shape, with the caveat that the * operation may include high probability estimates when the actual ! * calculation is prohibitively expensive. The {@link java.awt.geom.Area} * class can be used for more precise answers. * * @param x the x coordinate of the rectangle --- 109,115 ---- * Test if a high-precision rectangle intersects the shape. This is true * if any point in the rectangle is in the shape, with the caveat that the * operation may include high probability estimates when the actual ! * calculation is prohibitively expensive. The {@link java.awt.geom.Area} * class can be used for more precise answers. * * @param x the x coordinate of the rectangle *************** public interface Shape *** 126,132 **** * Test if a high-precision rectangle intersects the shape. This is true * if any point in the rectangle is in the shape, with the caveat that the * operation may include high probability estimates when the actual ! * calculation is prohibitively expensive. The {@link java.awt.geom.Area} * class can be used for more precise answers. * * @param r the rectangle --- 126,132 ---- * Test if a high-precision rectangle intersects the shape. This is true * if any point in the rectangle is in the shape, with the caveat that the * operation may include high probability estimates when the actual ! * calculation is prohibitively expensive. The {@link java.awt.geom.Area} * class can be used for more precise answers. * * @param r the rectangle *************** public interface Shape *** 141,147 **** * Test if a high-precision rectangle lies completely in the shape. This is * true if all points in the rectangle are in the shape, with the caveat * that the operation may include high probability estimates when the actual ! * calculation is prohibitively expensive. The {@link java.awt.geom.Area} * class can be used for more precise answers. * * @param x the x coordinate of the rectangle --- 141,147 ---- * Test if a high-precision rectangle lies completely in the shape. This is * true if all points in the rectangle are in the shape, with the caveat * that the operation may include high probability estimates when the actual ! * calculation is prohibitively expensive. The {@link java.awt.geom.Area} * class can be used for more precise answers. * * @param x the x coordinate of the rectangle *************** public interface Shape *** 158,164 **** * Test if a high-precision rectangle lies completely in the shape. This is * true if all points in the rectangle are in the shape, with the caveat * that the operation may include high probability estimates when the actual ! * calculation is prohibitively expensive. The {@link java.awt.geom.Area} * class can be used for more precise answers. * * @param r the rectangle --- 158,164 ---- * Test if a high-precision rectangle lies completely in the shape. This is * true if all points in the rectangle are in the shape, with the caveat * that the operation may include high probability estimates when the actual ! * calculation is prohibitively expensive. The {@link java.awt.geom.Area} * class can be used for more precise answers. * * @param r the rectangle *************** public interface Shape *** 176,182 **** * not required, that the Shape isolate iterations from future changes to * the boundary, and document this fact. * ! * @param transform an optional transform to apply to the * iterator (null permitted). * @return a new iterator over the boundary * @since 1.2 --- 176,182 ---- * not required, that the Shape isolate iterations from future changes to * the boundary, and document this fact. * ! * @param transform an optional transform to apply to the * iterator (null permitted). * @return a new iterator over the boundary * @since 1.2 *************** public interface Shape *** 195,205 **** * use. It is recommended, but not required, that the Shape isolate * iterations from future changes to the boundary, and document this fact. * ! * @param transform an optional transform to apply to the * iterator (null permitted). * @param flatness the maximum distance for deviation from the real boundary * @return a new iterator over the boundary * @since 1.2 */ PathIterator getPathIterator(AffineTransform transform, double flatness); ! } --- 195,205 ---- * use. It is recommended, but not required, that the Shape isolate * iterations from future changes to the boundary, and document this fact. * ! * @param transform an optional transform to apply to the * iterator (null permitted). * @param flatness the maximum distance for deviation from the real boundary * @return a new iterator over the boundary * @since 1.2 */ PathIterator getPathIterator(AffineTransform transform, double flatness); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/SystemColor.java gcc-4.6.0/libjava/classpath/java/awt/SystemColor.java *** gcc-4.5.2/libjava/classpath/java/awt/SystemColor.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/SystemColor.java Tue Jan 11 19:46:05 2011 *************** public final class SystemColor extends C *** 444,450 **** if (context == null || color != context.color || !context.getColorModel().equals(cm)) context = new ColorPaintContext(cm,color); return context; ! } /** * Returns a string describing this color. This is in the format --- 444,450 ---- if (context == null || color != context.color || !context.getColorModel().equals(cm)) context = new ColorPaintContext(cm,color); return context; ! } /** * Returns a string describing this color. This is in the format diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/TextArea.java gcc-4.6.0/libjava/classpath/java/awt/TextArea.java *** gcc-4.5.2/libjava/classpath/java/awt/TextArea.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/TextArea.java Tue Jan 11 19:46:05 2011 *************** public class TextArea extends TextCompon *** 177,184 **** * contains the specified text. The TextArea can display the * specified number of rows and columns of text, without the need to * scroll. This constructor allows specification of the scroll bar ! * display policy. The TextArea initially contains the specified text. ! * If text specified as null, it will be set to "". * * @param text The text to display in this text area (null permitted). * @param rows The number of rows in this text area. --- 177,184 ---- * contains the specified text. The TextArea can display the * specified number of rows and columns of text, without the need to * scroll. This constructor allows specification of the scroll bar ! * display policy. The TextArea initially contains the specified text. ! * If text specified as null, it will be set to "". * * @param text The text to display in this text area (null permitted). * @param rows The number of rows in this text area. *************** public class TextArea extends TextCompon *** 200,206 **** this.rows = 0; else this.rows = rows; ! if (columns < 0) this.columns = 0; else --- 200,206 ---- this.rows = 0; else this.rows = rows; ! if (columns < 0) this.columns = 0; else *************** public class TextArea extends TextCompon *** 311,317 **** /** * Retrieve the minimum size for this text area. ! * * @return The minimum size for this text area. * * @deprecated This method is deprecated in favor of --- 311,317 ---- /** * Retrieve the minimum size for this text area. ! * * @return The minimum size for this text area. * * @deprecated This method is deprecated in favor of *************** public class TextArea extends TextCompon *** 340,346 **** { if (isMinimumSizeSet()) return new Dimension(minSize); ! TextAreaPeer peer = (TextAreaPeer) getPeer (); if (peer == null) return new Dimension (getWidth(), getHeight()); --- 340,346 ---- { if (isMinimumSizeSet()) return new Dimension(minSize); ! TextAreaPeer peer = (TextAreaPeer) getPeer (); if (peer == null) return new Dimension (getWidth(), getHeight()); *************** public class TextArea extends TextCompon *** 405,411 **** { if (isPreferredSizeSet()) return new Dimension(prefSize); ! TextAreaPeer peer = (TextAreaPeer) getPeer (); if (peer == null) return new Dimension (getWidth(), getHeight()); --- 405,411 ---- { if (isPreferredSizeSet()) return new Dimension(prefSize); ! TextAreaPeer peer = (TextAreaPeer) getPeer (); if (peer == null) return new Dimension (getWidth(), getHeight()); *************** public class TextArea extends TextCompon *** 459,465 **** if (peer != null) peer.insert (str, peer.getText().length ()); else ! setText(getText() + str); } /** --- 459,465 ---- if (peer != null) peer.insert (str, peer.getText().length ()); else ! setText(getText() + str); } /** *************** public class TextArea extends TextCompon *** 488,494 **** { String tmp1 = null; String tmp2 = null; ! TextAreaPeer peer = (TextAreaPeer) getPeer (); if (peer != null) --- 488,494 ---- { String tmp1 = null; String tmp2 = null; ! TextAreaPeer peer = (TextAreaPeer) getPeer (); if (peer != null) *************** public class TextArea extends TextCompon *** 562,578 **** switch (scrollbarVisibility) { case SCROLLBARS_BOTH: ! sbVisibility = "both"; ! break; case SCROLLBARS_VERTICAL_ONLY: ! sbVisibility = "vertical-only"; ! break; case SCROLLBARS_HORIZONTAL_ONLY: ! sbVisibility = "horizontal-only"; ! break; case SCROLLBARS_NONE: ! sbVisibility = "none"; ! break; } String editable = ""; --- 562,578 ---- switch (scrollbarVisibility) { case SCROLLBARS_BOTH: ! sbVisibility = "both"; ! break; case SCROLLBARS_VERTICAL_ONLY: ! sbVisibility = "vertical-only"; ! break; case SCROLLBARS_HORIZONTAL_ONLY: ! sbVisibility = "horizontal-only"; ! break; case SCROLLBARS_NONE: ! sbVisibility = "none"; ! break; } String editable = ""; *************** public class TextArea extends TextCompon *** 600,606 **** { return next_text_number++; } ! protected class AccessibleAWTTextArea extends AccessibleAWTTextComponent { private static final long serialVersionUID = 3472827823632144419L; --- 600,606 ---- { return next_text_number++; } ! protected class AccessibleAWTTextArea extends AccessibleAWTTextComponent { private static final long serialVersionUID = 3472827823632144419L; *************** public class TextArea extends TextCompon *** 608,620 **** protected AccessibleAWTTextArea() { } ! public AccessibleStateSet getAccessibleStateSet() { return super.getAccessibleStateSet(); } } ! /** * Gets the AccessibleContext associated with this TextArea. * The context is created, if necessary. --- 608,620 ---- protected AccessibleAWTTextArea() { } ! public AccessibleStateSet getAccessibleStateSet() { return super.getAccessibleStateSet(); } } ! /** * Gets the AccessibleContext associated with this TextArea. * The context is created, if necessary. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/TextComponent.java gcc-4.6.0/libjava/classpath/java/awt/TextComponent.java *** gcc-4.5.2/libjava/classpath/java/awt/TextComponent.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/TextComponent.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleTex *** 54,60 **** import javax.swing.text.AttributeSet; /** ! * This class provides common functionality for widgets than * contain text. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 54,60 ---- import javax.swing.text.AttributeSet; /** ! * This class provides common functionality for widgets than * contain text. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** public class TextComponent extends Compo *** 106,117 **** { TextComponent.this.addTextListener(this); } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.TEXT; } ! public AccessibleStateSet getAccessibleStateSet() { // TODO: Docs say PropertyChangeEvent will fire if this state changes. --- 106,117 ---- { TextComponent.this.addTextListener(this); } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.TEXT; } ! public AccessibleStateSet getAccessibleStateSet() { // TODO: Docs say PropertyChangeEvent will fire if this state changes. *************** public class TextComponent extends Compo *** 121,132 **** ss.add(AccessibleState.EDITABLE); return ss; } ! public AccessibleText getAccessibleText() { return this; } ! /* (non-Javadoc) * @see javax.accessibility.AccessibleText#getIndexAtPoint(java.awt.Point) */ --- 121,132 ---- ss.add(AccessibleState.EDITABLE); return ss; } ! public AccessibleText getAccessibleText() { return this; } ! /* (non-Javadoc) * @see javax.accessibility.AccessibleText#getIndexAtPoint(java.awt.Point) */ *************** public class TextComponent extends Compo *** 169,194 **** BreakIterator it = null; switch (part) { ! case CHARACTER: ! return text.substring(index, index + 1); ! case WORD: ! it = BreakIterator.getWordInstance(); ! break; ! case SENTENCE: ! it = BreakIterator.getSentenceInstance(); ! break; ! default: ! return null; } ! it.setText(text); ! int start = index; ! if (!it.isBoundary(index)) ! start = it.preceding(index); ! int end = it.following(index); ! if (end == -1) ! return text.substring(index); ! else ! return text.substring(index, end); } /* (non-Javadoc) --- 169,194 ---- BreakIterator it = null; switch (part) { ! case CHARACTER: ! return text.substring(index, index + 1); ! case WORD: ! it = BreakIterator.getWordInstance(); ! break; ! case SENTENCE: ! it = BreakIterator.getSentenceInstance(); ! break; ! default: ! return null; } ! it.setText(text); ! int start = index; ! if (!it.isBoundary(index)) ! start = it.preceding(index); ! int end = it.following(index); ! if (end == -1) ! return text.substring(index); ! else ! return text.substring(index, end); } /* (non-Javadoc) *************** public class TextComponent extends Compo *** 200,229 **** BreakIterator it = null; switch (part) { ! case CHARACTER: ! return text.substring(index, index + 1); ! case WORD: ! it = BreakIterator.getWordInstance(); ! break; ! case SENTENCE: ! it = BreakIterator.getSentenceInstance(); ! break; ! default: ! return null; } ! it.setText(text); ! int start = index; ! if (!it.isBoundary(index)) ! start = it.following(index); ! // Make sure there was a complete unit. I.e. if index is in the middle ! // of a word, return null if there is no word after the that one. ! if (start == -1) ! return null; ! int end = it.following(start); ! if (end == -1) ! return text.substring(index); ! else ! return text.substring(index, end); } /* (non-Javadoc) --- 200,229 ---- BreakIterator it = null; switch (part) { ! case CHARACTER: ! return text.substring(index, index + 1); ! case WORD: ! it = BreakIterator.getWordInstance(); ! break; ! case SENTENCE: ! it = BreakIterator.getSentenceInstance(); ! break; ! default: ! return null; } ! it.setText(text); ! int start = index; ! if (!it.isBoundary(index)) ! start = it.following(index); ! // Make sure there was a complete unit. I.e. if index is in the middle ! // of a word, return null if there is no word after the that one. ! if (start == -1) ! return null; ! int end = it.following(start); ! if (end == -1) ! return text.substring(index); ! else ! return text.substring(index, end); } /* (non-Javadoc) *************** public class TextComponent extends Compo *** 236,265 **** BreakIterator it = null; switch (part) { ! case CHARACTER: ! return text.substring(index - 1, index); ! case WORD: ! it = BreakIterator.getWordInstance(); ! break; ! case SENTENCE: ! it = BreakIterator.getSentenceInstance(); ! break; ! default: ! return null; } ! it.setText(text); ! int end = index; ! if (!it.isBoundary(index)) ! end = it.preceding(index); ! // Make sure there was a complete unit. I.e. if index is in the middle ! // of a word, return null if there is no word before that one. ! if (end == -1) ! return null; ! int start = it.preceding(end); ! if (start == -1) ! return text.substring(0, end); ! else ! return text.substring(start, end); } /* (non-Javadoc) --- 236,265 ---- BreakIterator it = null; switch (part) { ! case CHARACTER: ! return text.substring(index - 1, index); ! case WORD: ! it = BreakIterator.getWordInstance(); ! break; ! case SENTENCE: ! it = BreakIterator.getSentenceInstance(); ! break; ! default: ! return null; } ! it.setText(text); ! int end = index; ! if (!it.isBoundary(index)) ! end = it.preceding(index); ! // Make sure there was a complete unit. I.e. if index is in the middle ! // of a word, return null if there is no word before that one. ! if (end == -1) ! return null; ! int start = it.preceding(end); ! if (start == -1) ! return text.substring(0, end); ! else ! return text.substring(start, end); } /* (non-Javadoc) *************** public class TextComponent extends Compo *** 304,312 **** public void textValueChanged(TextEvent event) { // TODO Auto-generated method stub ! } ! } --- 304,312 ---- public void textValueChanged(TextEvent event) { // TODO Auto-generated method stub ! } ! } *************** public class TextComponent extends Compo *** 316,322 **** this.text = ""; else this.text = text; ! this.editable = true; } --- 316,322 ---- this.text = ""; else this.text = text; ! this.editable = true; } *************** public class TextComponent extends Compo *** 363,375 **** String alltext = getText(); int start = getSelectionStart(); int end = getSelectionEnd(); ! return(alltext.substring(start, end)); } /** * Returns the starting position of the selected text region. ! * If the text is not selected then caret position is returned. * * @return The starting position of the selected text region. */ --- 363,375 ---- String alltext = getText(); int start = getSelectionStart(); int end = getSelectionEnd(); ! return(alltext.substring(start, end)); } /** * Returns the starting position of the selected text region. ! * If the text is not selected then caret position is returned. * * @return The starting position of the selected text region. */ *************** public class TextComponent extends Compo *** 391,404 **** */ public synchronized void setSelectionStart(int selectionStart) { ! select(selectionStart, ! (getSelectionEnd() < selectionStart) ? selectionStart : getSelectionEnd()); } /** * Returns the ending position of the selected text region. ! * If the text is not selected, then caret position is returned * * @return The ending position of the selected text region. */ --- 391,404 ---- */ public synchronized void setSelectionStart(int selectionStart) { ! select(selectionStart, ! (getSelectionEnd() < selectionStart) ? selectionStart : getSelectionEnd()); } /** * Returns the ending position of the selected text region. ! * If the text is not selected, then caret position is returned * * @return The ending position of the selected text region. */ *************** public class TextComponent extends Compo *** 447,453 **** this.selectionStart = selectionStart; this.selectionEnd = selectionEnd; ! TextComponentPeer tcp = (TextComponentPeer) getPeer(); if (tcp != null) tcp.select(selectionStart, selectionEnd); --- 447,453 ---- this.selectionStart = selectionStart; this.selectionEnd = selectionEnd; ! TextComponentPeer tcp = (TextComponentPeer) getPeer(); if (tcp != null) tcp.select(selectionStart, selectionEnd); *************** public class TextComponent extends Compo *** 489,495 **** { if (caretPosition < 0) throw new IllegalArgumentException(); ! TextComponentPeer tcp = (TextComponentPeer) getPeer(); if (tcp != null) tcp.setCaretPosition(caretPosition); --- 489,495 ---- { if (caretPosition < 0) throw new IllegalArgumentException(); ! TextComponentPeer tcp = (TextComponentPeer) getPeer(); if (tcp != null) tcp.setCaretPosition(caretPosition); *************** public class TextComponent extends Compo *** 539,545 **** { textListener = AWTEventMulticaster.add(textListener, listener); ! enableEvents(AWTEvent.TEXT_EVENT_MASK); } /** --- 539,545 ---- { textListener = AWTEventMulticaster.add(textListener, listener); ! enableEvents(AWTEvent.TEXT_EVENT_MASK); } /** *************** public class TextComponent extends Compo *** 557,563 **** * Processes the specified event for this component. Text events are * processed by calling the processTextEvent() method. * All other events are passed to the superclass method. ! * * @param event The event to process. */ protected void processEvent(AWTEvent event) --- 557,563 ---- * Processes the specified event for this component. Text events are * processed by calling the processTextEvent() method. * All other events are passed to the superclass method. ! * * @param event The event to process. */ protected void processEvent(AWTEvent event) *************** public class TextComponent extends Compo *** 585,597 **** void dispatchEventImpl(AWTEvent e) { ! if (e.id <= TextEvent.TEXT_LAST && e.id >= TextEvent.TEXT_FIRST ! && (textListener != null ! || (eventMask & AWTEvent.TEXT_EVENT_MASK) != 0)) processEvent(e); else ! super.dispatchEventImpl(e); } /** --- 585,597 ---- void dispatchEventImpl(AWTEvent e) { ! if (e.id <= TextEvent.TEXT_LAST && e.id >= TextEvent.TEXT_FIRST ! && (textListener != null ! || (eventMask & AWTEvent.TEXT_EVENT_MASK) != 0)) processEvent(e); else ! super.dispatchEventImpl(e); } /** *************** public class TextComponent extends Compo *** 642,648 **** return accessibleContext; } ! // Provide AccessibleAWTTextComponent access to several peer functions that // aren't publicly exposed. This is package-private to avoid an accessor // method. --- 642,648 ---- return accessibleContext; } ! // Provide AccessibleAWTTextComponent access to several peer functions that // aren't publicly exposed. This is package-private to avoid an accessor // method. *************** public class TextComponent extends Compo *** 653,659 **** return tcp.getIndexAtPoint(p.x, p.y); return -1; } ! synchronized Rectangle getCharacterBounds(int i) { TextComponentPeer tcp = (TextComponentPeer) getPeer(); --- 653,659 ---- return tcp.getIndexAtPoint(p.x, p.y); return -1; } ! synchronized Rectangle getCharacterBounds(int i) { TextComponentPeer tcp = (TextComponentPeer) getPeer(); *************** public class TextComponent extends Compo *** 661,671 **** return tcp.getCharacterBounds(i); return null; } ! /** * All old mouse events for this component should * be ignored. ! * * @return true to ignore all old mouse events. */ static boolean ignoreOldMouseEvents() --- 661,671 ---- return tcp.getCharacterBounds(i); return null; } ! /** * All old mouse events for this component should * be ignored. ! * * @return true to ignore all old mouse events. */ static boolean ignoreOldMouseEvents() *************** public class TextComponent extends Compo *** 674,677 **** } } // class TextComponent - --- 674,676 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/TextField.java gcc-4.6.0/libjava/classpath/java/awt/TextField.java *** gcc-4.5.2/libjava/classpath/java/awt/TextField.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/TextField.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleSta *** 54,66 **** */ public class TextField extends TextComponent { ! /** * The number used to generate the name returned by getName. */ private static transient long next_textfield_number; ! private static final long serialVersionUID = -2966288784432217853L; --- 54,66 ---- */ public class TextField extends TextComponent { ! /** * The number used to generate the name returned by getName. */ private static transient long next_textfield_number; ! private static final long serialVersionUID = -2966288784432217853L; *************** public class TextField extends TextCompo *** 127,133 **** public TextField(String text, int columns) { super(text); ! if (columns < 0) this.columns = 0; else --- 127,133 ---- public TextField(String text, int columns) { super(text); ! if (columns < 0) this.columns = 0; else *************** public class TextField extends TextCompo *** 165,171 **** } /** ! * Returns the character that is echoed to the screen when a text * field is protected (such as when a password is being entered). * * @return The echo character for this text field. --- 165,171 ---- } /** ! * Returns the character that is echoed to the screen when a text * field is protected (such as when a password is being entered). * * @return The echo character for this text field. *************** public class TextField extends TextCompo *** 192,198 **** * * @param echoChar The new echo character. * ! * @deprecated This method is deprecated in favor of * setEchoChar() */ public void setEchoCharacter(char echoChar) --- 192,198 ---- * * @param echoChar The new echo character. * ! * @deprecated This method is deprecated in favor of * setEchoChar() */ public void setEchoCharacter(char echoChar) *************** public class TextField extends TextCompo *** 259,272 **** * * @param columns The number of columns to get the minimum size for. * ! * @deprecated This method is deprecated in favor of * getMinimumSize(int). */ public Dimension minimumSize(int columns) { if (isMinimumSizeSet()) return new Dimension(minSize); ! TextFieldPeer peer = (TextFieldPeer) getPeer (); if (peer == null) return new Dimension(getWidth(), getHeight()); --- 259,272 ---- * * @param columns The number of columns to get the minimum size for. * ! * @deprecated This method is deprecated in favor of * getMinimumSize(int). */ public Dimension minimumSize(int columns) { if (isMinimumSizeSet()) return new Dimension(minSize); ! TextFieldPeer peer = (TextFieldPeer) getPeer (); if (peer == null) return new Dimension(getWidth(), getHeight()); *************** public class TextField extends TextCompo *** 300,306 **** * * @return The preferred size for this text field. * ! * @deprecated This method is deprecated in favor of * getPreferredSize(). */ public Dimension preferredSize() --- 300,306 ---- * * @return The preferred size for this text field. * ! * @deprecated This method is deprecated in favor of * getPreferredSize(). */ public Dimension preferredSize() *************** public class TextField extends TextCompo *** 314,331 **** * * @param columns The number of columns to get the preferred size for. * ! * @deprecated This method is deprecated in favor of * getPreferredSize(int). */ public Dimension preferredSize(int columns) { if (isPreferredSizeSet()) return new Dimension(prefSize); ! TextFieldPeer peer = (TextFieldPeer) getPeer (); if (peer == null) return new Dimension (getWidth(), getHeight()); ! return peer.getPreferredSize (columns); } --- 314,331 ---- * * @param columns The number of columns to get the preferred size for. * ! * @deprecated This method is deprecated in favor of * getPreferredSize(int). */ public Dimension preferredSize(int columns) { if (isPreferredSizeSet()) return new Dimension(prefSize); ! TextFieldPeer peer = (TextFieldPeer) getPeer (); if (peer == null) return new Dimension (getWidth(), getHeight()); ! return peer.getPreferredSize (columns); } *************** public class TextField extends TextCompo *** 387,393 **** * are enabled on this object. This will be true if any listeners * are registered, or if action events were specifically enabled * using enableEvents(). ! * * @param event The event to process. */ protected void processActionEvent(ActionEvent event) --- 387,393 ---- * are enabled on this object. This will be true if any listeners * are registered, or if action events were specifically enabled * using enableEvents(). ! * * @param event The event to process. */ protected void processActionEvent(ActionEvent event) *************** public class TextField extends TextCompo *** 398,407 **** void dispatchEventImpl(AWTEvent e) { ! if (e.id <= ActionEvent.ACTION_LAST && e.id >= ActionEvent.ACTION_FIRST ! && (action_listeners != null ! || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) processEvent(e); else super.dispatchEventImpl(e); --- 398,407 ---- void dispatchEventImpl(AWTEvent e) { ! if (e.id <= ActionEvent.ACTION_LAST && e.id >= ActionEvent.ACTION_FIRST ! && (action_listeners != null ! || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) processEvent(e); else super.dispatchEventImpl(e); *************** public class TextField extends TextCompo *** 446,452 **** { return (ActionListener[]) getListeners (ActionListener.class); } ! /** * Generate a unique name for this TextField. * --- 446,452 ---- { return (ActionListener[]) getListeners (ActionListener.class); } ! /** * Generate a unique name for this TextField. * *************** public class TextField extends TextCompo *** 469,481 **** protected AccessibleAWTTextField() { } ! public AccessibleStateSet getAccessibleStateSet() { return super.getAccessibleStateSet(); } } ! public AccessibleContext getAccessibleContext() { return new AccessibleAWTTextField(); --- 469,481 ---- protected AccessibleAWTTextField() { } ! public AccessibleStateSet getAccessibleStateSet() { return super.getAccessibleStateSet(); } } ! public AccessibleContext getAccessibleContext() { return new AccessibleAWTTextField(); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/TexturePaint.java gcc-4.6.0/libjava/classpath/java/awt/TexturePaint.java *** gcc-4.5.2/libjava/classpath/java/awt/TexturePaint.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/java/awt/TexturePaint.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TexturePaint.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TexturePaint.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class TexturePaint implements Pai *** 53,62 **** { private final BufferedImage texture; private final Rectangle2D anchor; ! /** * Constructor. ! * * @param texture - the texture * @param anchor - the shape */ --- 53,62 ---- { private final BufferedImage texture; private final Rectangle2D anchor; ! /** * Constructor. ! * * @param texture - the texture * @param anchor - the shape */ *************** public class TexturePaint implements Pai *** 68,74 **** /** * Gets the texture image. ! * * @return the texture */ public BufferedImage getImage() --- 68,74 ---- /** * Gets the texture image. ! * * @return the texture */ public BufferedImage getImage() *************** public class TexturePaint implements Pai *** 78,84 **** /** * Gets the shape anchor. ! * * @return the shape anchor */ public Rectangle2D getAnchorRect() --- 78,84 ---- /** * Gets the shape anchor. ! * * @return the shape anchor */ public Rectangle2D getAnchorRect() *************** public class TexturePaint implements Pai *** 88,99 **** /** * Creates the context used to paint the texture. ! * * @param cm - the ColorModel that receives the Paint data. Used only as a hint. * @param deviceBounds - the device space being rendered. * @param userBounds - the user space being rendered * @param xform - the AffineTransform from user space into device space ! * @param hints - a RenderingHints object that is used to specify how the * pattern is rendered * @return the paint context used to paint the texture */ --- 88,99 ---- /** * Creates the context used to paint the texture. ! * * @param cm - the ColorModel that receives the Paint data. Used only as a hint. * @param deviceBounds - the device space being rendered. * @param userBounds - the user space being rendered * @param xform - the AffineTransform from user space into device space ! * @param hints - a RenderingHints object that is used to specify how the * pattern is rendered * @return the paint context used to paint the texture */ *************** public class TexturePaint implements Pai *** 108,114 **** /** * Returns the transparency mode. ! * * @return the transparency mode. */ public int getTransparency() --- 108,114 ---- /** * Returns the transparency mode. ! * * @return the transparency mode. */ public int getTransparency() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Toolkit.java gcc-4.6.0/libjava/classpath/java/awt/Toolkit.java *** gcc-4.5.2/libjava/classpath/java/awt/Toolkit.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Toolkit.java Tue Jan 11 19:46:05 2011 *************** public abstract class Toolkit *** 124,130 **** /** The toolkit properties. */ private static Properties props = new Properties(); ! protected final Map desktopProperties = new Hashtable(); protected final PropertyChangeSupport desktopPropsSupport --- 124,130 ---- /** The toolkit properties. */ private static Properties props = new Properties(); ! protected final Map desktopProperties = new Hashtable(); protected final PropertyChangeSupport desktopPropsSupport *************** public abstract class Toolkit *** 150,168 **** } /** ! * * @param target * @return * @throws HeadlessException */ protected abstract DesktopPeer createDesktopPeer(Desktop target) throws HeadlessException; ! /** * Creates a peer object for the specified Button. * * @param target The Button to create the peer for. ! * * @return The peer for the specified Button object. * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. --- 150,168 ---- } /** ! * * @param target * @return * @throws HeadlessException */ protected abstract DesktopPeer createDesktopPeer(Desktop target) throws HeadlessException; ! /** * Creates a peer object for the specified Button. * * @param target The Button to create the peer for. ! * * @return The peer for the specified Button object. * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. *************** public abstract class Toolkit *** 353,359 **** protected abstract MenuItemPeer createMenuItem(MenuItem target); /** ! * Returns a MouseInfoPeer. * The default implementation of this method throws * UnsupportedOperationException. * --- 353,359 ---- protected abstract MenuItemPeer createMenuItem(MenuItem target); /** ! * Returns a MouseInfoPeer. * The default implementation of this method throws * UnsupportedOperationException. * *************** public abstract class Toolkit *** 493,499 **** * Returns the dimensions of the screen in pixels. * * @return The dimensions of the screen in pixels. ! * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. */ public abstract Dimension getScreenSize(); --- 493,499 ---- * Returns the dimensions of the screen in pixels. * * @return The dimensions of the screen in pixels. ! * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. */ public abstract Dimension getScreenSize(); *************** public abstract class Toolkit *** 521,527 **** * Returns the color model of the screen. * * @return The color model of the screen. ! * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. */ public abstract ColorModel getColorModel(); --- 521,527 ---- * Returns the color model of the screen. * * @return The color model of the screen. ! * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. */ public abstract ColorModel getColorModel(); *************** public abstract class Toolkit *** 815,821 **** { if (AWTUtilities.isValidKey(keyCode)) throw new UnsupportedOperationException ! ("cannot get locking state of key code " + keyCode); throw new IllegalArgumentException("invalid key code " + keyCode); } --- 815,821 ---- { if (AWTUtilities.isValidKey(keyCode)) throw new UnsupportedOperationException ! ("cannot get locking state of key code " + keyCode); throw new IllegalArgumentException("invalid key code " + keyCode); } *************** public abstract class Toolkit *** 835,841 **** && keyCode != KeyEvent.VK_NUM_LOCK && keyCode != KeyEvent.VK_SCROLL_LOCK) throw new IllegalArgumentException(); ! throw new UnsupportedOperationException(); } --- 835,841 ---- && keyCode != KeyEvent.VK_NUM_LOCK && keyCode != KeyEvent.VK_SCROLL_LOCK) throw new IllegalArgumentException(); ! throw new UnsupportedOperationException(); } *************** public abstract class Toolkit *** 915,921 **** * Returns whether Toolkit supports this state for Frames. * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. ! * * @since 1.4 */ public boolean isFrameStateSupported(int state) --- 915,921 ---- * Returns whether Toolkit supports this state for Frames. * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. ! * * @since 1.4 */ public boolean isFrameStateSupported(int state) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/Window.java gcc-4.6.0/libjava/classpath/java/awt/Window.java *** gcc-4.5.2/libjava/classpath/java/awt/Window.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/Window.java Tue Jan 11 19:46:05 2011 *************** public class Window extends Container im *** 73,79 **** private String warningString = null; private int windowSerializedDataVersion = 0; // FIXME /** @since 1.2 */ ! // private FocusManager focusMgr; // FIXME: what is this? /** @since 1.2 */ private int state = 0; /** @since 1.4 */ --- 73,79 ---- private String warningString = null; private int windowSerializedDataVersion = 0; // FIXME /** @since 1.2 */ ! // private FocusManager focusMgr; // FIXME: what is this? /** @since 1.2 */ private int state = 0; /** @since 1.4 */ *************** public class Window extends Container im *** 92,98 **** // This is package-private to avoid an accessor method. transient Component windowFocusOwner; ! /* * The number used to generate the name returned by getName. */ --- 92,98 ---- // This is package-private to avoid an accessor method. transient Component windowFocusOwner; ! /* * The number used to generate the name returned by getName. */ *************** public class Window extends Container im *** 106,112 **** { return AccessibleRole.WINDOW; } ! public AccessibleStateSet getAccessibleStateSet() { AccessibleStateSet states = super.getAccessibleStateSet(); --- 106,112 ---- { return AccessibleRole.WINDOW; } ! public AccessibleStateSet getAccessibleStateSet() { AccessibleStateSet states = super.getAccessibleStateSet(); *************** public class Window extends Container im *** 116,122 **** } } ! /** * This (package access) constructor is used by subclasses that want * to build windows that do not have parents. Eg. toplevel * application frames. Subclasses cannot call super(null), since --- 116,122 ---- } } ! /** * This (package access) constructor is used by subclasses that want * to build windows that do not have parents. Eg. toplevel * application frames. Subclasses cannot call super(null), since *************** public class Window extends Container im *** 129,135 **** // cycle roots. focusCycleRoot = true; setLayout(new BorderLayout()); ! GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment(); graphicsConfig = g.getDefaultScreenDevice().getDefaultConfiguration(); } --- 129,135 ---- // cycle roots. focusCycleRoot = true; setLayout(new BorderLayout()); ! GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment(); graphicsConfig = g.getDefaultScreenDevice().getDefaultConfiguration(); } *************** public class Window extends Container im *** 157,163 **** /** * Initializes a new instance of Window with the specified ! * parent. The window will initially be invisible. * * @exception IllegalArgumentException If the owner's GraphicsConfiguration * is not from a screen device, or if owner is null; this exception is always --- 157,163 ---- /** * Initializes a new instance of Window with the specified ! * parent. The window will initially be invisible. * * @exception IllegalArgumentException If the owner's GraphicsConfiguration * is not from a screen device, or if owner is null; this exception is always *************** public class Window extends Container im *** 169,178 **** { this (owner, owner.getGraphicsConfiguration ()); } ! /** * Initializes a new instance of Window with the specified ! * parent. The window will initially be invisible. * * @exception IllegalArgumentException If owner is null or if gc is not from a * screen device; this exception is always thrown when --- 169,178 ---- { this (owner, owner.getGraphicsConfiguration ()); } ! /** * Initializes a new instance of Window with the specified ! * parent. The window will initially be invisible. * * @exception IllegalArgumentException If owner is null or if gc is not from a * screen device; this exception is always thrown when *************** public class Window extends Container im *** 186,195 **** synchronized (getTreeLock()) { ! if (owner == null) ! throw new IllegalArgumentException ("owner must not be null"); ! parent = owner; owner.ownedWindows.add(new WeakReference(this)); } --- 186,195 ---- synchronized (getTreeLock()) { ! if (owner == null) ! throw new IllegalArgumentException ("owner must not be null"); ! parent = owner; owner.ownedWindows.add(new WeakReference(this)); } *************** public class Window extends Container im *** 312,329 **** // Hide visible owned windows. synchronized (getTreeLock ()) { ! Iterator e = ownedWindows.iterator(); ! while(e.hasNext()) ! { ! Window w = (Window)(((Reference) e.next()).get()); ! if (w != null) ! { ! if (w.isVisible() && w.getPeer() != null) ! w.getPeer().setVisible(false); ! } ! else ! e.remove(); ! } } super.hide(); } --- 312,329 ---- // Hide visible owned windows. synchronized (getTreeLock ()) { ! Iterator e = ownedWindows.iterator(); ! while(e.hasNext()) ! { ! Window w = (Window)(((Reference) e.next()).get()); ! if (w != null) ! { ! if (w.isVisible() && w.getPeer() != null) ! w.getPeer().setVisible(false); ! } ! else ! e.remove(); ! } } super.hide(); } *************** public class Window extends Container im *** 338,367 **** synchronized (getTreeLock ()) { ! Iterator e = ownedWindows.iterator(); ! while(e.hasNext()) ! { ! Window w = (Window)(((Reference) e.next()).get()); ! if (w != null) ! w.dispose(); ! else ! // Remove null weak reference from ownedWindows. ! e.remove(); ! } ! for (int i = 0; i < ncomponents; ++i) ! component[i].removeNotify(); ! this.removeNotify(); ! // Post WINDOW_CLOSED from here. ! if (windowListener != null ! || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0) ! { ! WindowEvent ev = new WindowEvent(this, ! WindowEvent.WINDOW_CLOSED); ! Toolkit tk = Toolkit.getDefaultToolkit(); ! tk.getSystemEventQueue().postEvent(ev); ! } } } --- 338,367 ---- synchronized (getTreeLock ()) { ! Iterator e = ownedWindows.iterator(); ! while(e.hasNext()) ! { ! Window w = (Window)(((Reference) e.next()).get()); ! if (w != null) ! w.dispose(); ! else ! // Remove null weak reference from ownedWindows. ! e.remove(); ! } ! for (int i = 0; i < ncomponents; ++i) ! component[i].removeNotify(); ! this.removeNotify(); ! // Post WINDOW_CLOSED from here. ! if (windowListener != null ! || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0) ! { ! WindowEvent ev = new WindowEvent(this, ! WindowEvent.WINDOW_CLOSED); ! Toolkit tk = Toolkit.getDefaultToolkit(); ! tk.getSystemEventQueue().postEvent(ev); ! } } } *************** public class Window extends Container im *** 376,384 **** { if (peer != null) { ! if( alwaysOnTop ) ! setAlwaysOnTop( false ); ! ( (WindowPeer) peer ).toBack(); } } --- 376,384 ---- { if (peer != null) { ! if( alwaysOnTop ) ! setAlwaysOnTop( false ); ! ( (WindowPeer) peer ).toBack(); } } *************** public class Window extends Container im *** 397,408 **** * * @return The toolkit used to create this window. * ! * @specnote Unlike Component.getToolkit, this implementation always * returns the value of Toolkit.getDefaultToolkit(). */ public Toolkit getToolkit() { ! return Toolkit.getDefaultToolkit(); } /** --- 397,408 ---- * * @return The toolkit used to create this window. * ! * @specnote Unlike Component.getToolkit, this implementation always * returns the value of Toolkit.getDefaultToolkit(). */ public Toolkit getToolkit() { ! return Toolkit.getDefaultToolkit(); } /** *************** public class Window extends Container im *** 455,482 **** Window [] trimmedList; synchronized (getTreeLock ()) { ! // Windows with non-null weak references in ownedWindows. ! Window [] validList = new Window [ownedWindows.size()]; ! Iterator e = ownedWindows.iterator(); ! int numValid = 0; ! while (e.hasNext()) ! { ! Window w = (Window)(((Reference) e.next()).get()); ! if (w != null) ! validList[numValid++] = w; ! else ! // Remove null weak reference from ownedWindows. ! e.remove(); ! } ! if (numValid != validList.length) ! { ! trimmedList = new Window [numValid]; ! System.arraycopy (validList, 0, trimmedList, 0, numValid); ! } ! else ! trimmedList = validList; } return trimmedList; } --- 455,482 ---- Window [] trimmedList; synchronized (getTreeLock ()) { ! // Windows with non-null weak references in ownedWindows. ! Window [] validList = new Window [ownedWindows.size()]; ! Iterator e = ownedWindows.iterator(); ! int numValid = 0; ! while (e.hasNext()) ! { ! Window w = (Window)(((Reference) e.next()).get()); ! if (w != null) ! validList[numValid++] = w; ! else ! // Remove null weak reference from ownedWindows. ! e.remove(); ! } ! if (numValid != validList.length) ! { ! trimmedList = new Window [numValid]; ! System.arraycopy (validList, 0, trimmedList, 0, numValid); ! } ! else ! trimmedList = validList; } return trimmedList; } *************** public class Window extends Container im *** 531,537 **** AWTEventMulticaster.getListeners(windowFocusListener, WindowFocusListener.class); } ! /** * Returns an array of all the window state listeners registered on this * window. --- 531,537 ---- AWTEventMulticaster.getListeners(windowFocusListener, WindowFocusListener.class); } ! /** * Returns an array of all the window state listeners registered on this * window. *************** public class Window extends Container im *** 557,563 **** wfl); } } ! /** * Adds the specified listener to this window. * --- 557,563 ---- wfl); } } ! /** * Adds the specified listener to this window. * *************** public class Window extends Container im *** 569,578 **** { newEventsOnly = true; windowStateListener = AWTEventMulticaster.add (windowStateListener, ! wsl); } } ! /** * Removes the specified listener from this window. */ --- 569,578 ---- { newEventsOnly = true; windowStateListener = AWTEventMulticaster.add (windowStateListener, ! wsl); } } ! /** * Removes the specified listener from this window. */ *************** public class Window extends Container im *** 580,586 **** { windowFocusListener = AWTEventMulticaster.remove (windowFocusListener, wfl); } ! /** * Removes the specified listener from this window. * --- 580,586 ---- { windowFocusListener = AWTEventMulticaster.remove (windowFocusListener, wfl); } ! /** * Removes the specified listener from this window. * *************** public class Window extends Container im *** 697,703 **** /** * Identifies if this window is active. The active window is a Frame or * Dialog that has focus or owns the active window. ! * * @return true if active, else false. * @since 1.4 */ --- 697,703 ---- /** * Identifies if this window is active. The active window is a Frame or * Dialog that has focus or owns the active window. ! * * @return true if active, else false. * @since 1.4 */ *************** public class Window extends Container im *** 710,716 **** /** * Identifies if this window is focused. A window is focused if it is the * focus owner or it contains the focus owner. ! * * @return true if focused, else false. * @since 1.4 */ --- 710,716 ---- /** * Identifies if this window is focused. A window is focused if it is the * focus owner or it contains the focus owner. ! * * @return true if focused, else false. * @since 1.4 */ *************** public class Window extends Container im *** 719,725 **** KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); return manager.getFocusedWindow() == this; } ! /** * Returns the child window that has focus if this window is active. * This method returns null if this window is not active --- 719,725 ---- KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); return manager.getFocusedWindow() == this; } ! /** * Returns the child window that has focus if this window is active. * This method returns null if this window is not active *************** public class Window extends Container im *** 804,810 **** { int x = 0; int y = 0; ! if (c == null || !c.isShowing()) { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); --- 804,810 ---- { int x = 0; int y = 0; ! if (c == null || !c.isShowing()) { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); *************** public class Window extends Container im *** 820,826 **** x = c.getLocationOnScreen().x; y = c.getLocationOnScreen().y; ! // If bottom of component is cut off, window placed // on the left or the right side of component if ((y + cHeight) > screenSize.height) --- 820,826 ---- x = c.getLocationOnScreen().x; y = c.getLocationOnScreen().y; ! // If bottom of component is cut off, window placed // on the left or the right side of component if ((y + cHeight) > screenSize.height) *************** public class Window extends Container im *** 853,859 **** x = 0; else x += (cWidth - width) / 2; ! y += (cHeight - height) / 2; } else --- 853,859 ---- x = 0; else x += (cWidth - width) / 2; ! y += (cHeight - height) / 2; } else *************** public class Window extends Container im *** 892,900 **** WindowBltBufferStrategy(int numBuffers, boolean accelerated) { super(numBuffers, ! new BufferCapabilities(new ImageCapabilities(accelerated), ! new ImageCapabilities(accelerated), ! BufferCapabilities.FlipContents.COPIED)); } } --- 892,900 ---- WindowBltBufferStrategy(int numBuffers, boolean accelerated) { super(numBuffers, ! new BufferCapabilities(new ImageCapabilities(accelerated), ! new ImageCapabilities(accelerated), ! BufferCapabilities.FlipContents.COPIED)); } } *************** public class Window extends Container im *** 915,923 **** throws AWTException { super(numBuffers, ! new BufferCapabilities(new ImageCapabilities(true), ! new ImageCapabilities(true), ! BufferCapabilities.FlipContents.COPIED)); } } --- 915,923 ---- throws AWTException { super(numBuffers, ! new BufferCapabilities(new ImageCapabilities(true), ! new ImageCapabilities(true), ! BufferCapabilities.FlipContents.COPIED)); } } *************** public class Window extends Container im *** 948,965 **** { if (numBuffers < 1) throw new IllegalArgumentException("Window.createBufferStrategy: number" ! + " of buffers is less than one"); if (!isDisplayable()) throw new IllegalStateException("Window.createBufferStrategy: window is" ! + " not displayable"); BufferStrategy newStrategy = null; // try a flipping strategy try { ! newStrategy = new WindowFlipBufferStrategy(numBuffers); } catch (AWTException e) { --- 948,965 ---- { if (numBuffers < 1) throw new IllegalArgumentException("Window.createBufferStrategy: number" ! + " of buffers is less than one"); if (!isDisplayable()) throw new IllegalStateException("Window.createBufferStrategy: window is" ! + " not displayable"); BufferStrategy newStrategy = null; // try a flipping strategy try { ! newStrategy = new WindowFlipBufferStrategy(numBuffers); } catch (AWTException e) { *************** public class Window extends Container im *** 996,1006 **** { if (numBuffers < 1) throw new IllegalArgumentException("Window.createBufferStrategy: number" ! + " of buffers is less than one"); if (caps == null) throw new IllegalArgumentException("Window.createBufferStrategy:" ! + " capabilities object is null"); // a flipping strategy was requested if (caps.isPageFlipping()) --- 996,1006 ---- { if (numBuffers < 1) throw new IllegalArgumentException("Window.createBufferStrategy: number" ! + " of buffers is less than one"); if (caps == null) throw new IllegalArgumentException("Window.createBufferStrategy:" ! + " capabilities object is null"); // a flipping strategy was requested if (caps.isPageFlipping()) *************** public class Window extends Container im *** 1040,1046 **** ResourceBundle rb = ResourceBundle.getBundle(rbName, Locale.getDefault(), ClassLoader.getSystemClassLoader()); if (rb != null) ! applyResourceBundle(rb); } /** --- 1040,1046 ---- ResourceBundle rb = ResourceBundle.getBundle(rbName, Locale.getDefault(), ClassLoader.getSystemClassLoader()); if (rb != null) ! applyResourceBundle(rb); } /** *************** public class Window extends Container im *** 1057,1063 **** return accessibleContext; } ! /** * Get graphics configuration. The implementation for Window will * not ask any parent containers, since Window is a toplevel * window and not actually embedded in the parent component. --- 1057,1063 ---- return accessibleContext; } ! /** * Get graphics configuration. The implementation for Window will * not ask any parent containers, since Window is a toplevel * window and not actually embedded in the parent component. *************** public class Window extends Container im *** 1083,1099 **** case WindowEvent.WINDOW_GAINED_FOCUS: windowFocusListener.windowGainedFocus (event); break; ! case WindowEvent.WINDOW_LOST_FOCUS: windowFocusListener.windowLostFocus (event); break; ! default: break; } } } ! /** * @since 1.4 */ --- 1083,1099 ---- case WindowEvent.WINDOW_GAINED_FOCUS: windowFocusListener.windowGainedFocus (event); break; ! case WindowEvent.WINDOW_LOST_FOCUS: windowFocusListener.windowLostFocus (event); break; ! default: break; } } } ! /** * @since 1.4 */ *************** public class Window extends Container im *** 1122,1131 **** return false; } ! /** * Returns the value of the focusableWindowState property. ! * * @since 1.4 */ public boolean getFocusableWindowState () --- 1122,1131 ---- return false; } ! /** * Returns the value of the focusableWindowState property. ! * * @since 1.4 */ public boolean getFocusableWindowState () *************** public class Window extends Container im *** 1135,1151 **** /** * Sets the value of the focusableWindowState property. ! * * @since 1.4 */ public void setFocusableWindowState (boolean focusableWindowState) { this.focusableWindowState = focusableWindowState; } ! /** * Check whether this Container is a focus cycle root. ! * Returns always true as Windows are the * root of the focus cycle. * * @return Always true. --- 1135,1151 ---- /** * Sets the value of the focusableWindowState property. ! * * @since 1.4 */ public void setFocusableWindowState (boolean focusableWindowState) { this.focusableWindowState = focusableWindowState; } ! /** * Check whether this Container is a focus cycle root. ! * Returns always true as Windows are the * root of the focus cycle. * * @return Always true. *************** public class Window extends Container im *** 1161,1167 **** * Set whether or not this Container is the root of a focus * traversal cycle. Windows are the root of the focus cycle * and therefore this method does nothing. ! * * @param focusCycleRoot ignored. * * @since 1.4 --- 1161,1167 ---- * Set whether or not this Container is the root of a focus * traversal cycle. Windows are the root of the focus cycle * and therefore this method does nothing. ! * * @param focusCycleRoot ignored. * * @since 1.4 *************** public class Window extends Container im *** 1201,1207 **** * Sets the always-on-top state of this window (if supported). * * Setting a window to always-on-top means it will not be obscured ! * by any other windows (with the exception of other always-on-top * windows). Not all platforms may support this. * * If an window's always-on-top status is changed to false, the window --- 1201,1207 ---- * Sets the always-on-top state of this window (if supported). * * Setting a window to always-on-top means it will not be obscured ! * by any other windows (with the exception of other always-on-top * windows). Not all platforms may support this. * * If an window's always-on-top status is changed to false, the window *************** public class Window extends Container im *** 1220,1233 **** if( this.alwaysOnTop == alwaysOnTop ) return; ! if( alwaysOnTop ) toFront(); firePropertyChange("alwaysOnTop", this.alwaysOnTop, alwaysOnTop ); this.alwaysOnTop = alwaysOnTop; ! if (peer != null) ( (WindowPeer) peer).updateAlwaysOnTop(); else System.out.println("Null peer?!"); --- 1220,1233 ---- if( this.alwaysOnTop == alwaysOnTop ) return; ! if( alwaysOnTop ) toFront(); firePropertyChange("alwaysOnTop", this.alwaysOnTop, alwaysOnTop ); this.alwaysOnTop = alwaysOnTop; ! if (peer != null) ( (WindowPeer) peer).updateAlwaysOnTop(); else System.out.println("Null peer?!"); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/color/ICC_ColorSpace.java gcc-4.6.0/libjava/classpath/java/awt/color/ICC_ColorSpace.java *** gcc-4.5.2/libjava/classpath/java/awt/color/ICC_ColorSpace.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/color/ICC_ColorSpace.java Tue Jan 11 19:46:05 2011 *************** public class ICC_ColorSpace extends Colo *** 212,218 **** */ public float getMinValue(int idx) { ! // FIXME: Not 100% certain of this. if (type == ColorSpace.TYPE_Lab && (idx == 1 || idx == 2)) return -128f; --- 212,218 ---- */ public float getMinValue(int idx) { ! // FIXME: Not 100% certain of this. if (type == ColorSpace.TYPE_Lab && (idx == 1 || idx == 2)) return -128f; *************** public class ICC_ColorSpace extends Colo *** 236,245 **** return 1 + 32767 / 32768f; else if (type == ColorSpace.TYPE_Lab) { ! if (idx == 0) ! return 100; ! if (idx == 1 || idx == 2) ! return 127; } if (idx < 0 || idx >= nComponents) throw new IllegalArgumentException(); --- 236,245 ---- return 1 + 32767 / 32768f; else if (type == ColorSpace.TYPE_Lab) { ! if (idx == 0) ! return 100; ! if (idx == 1 || idx == 2) ! return 127; } if (idx < 0 || idx >= nComponents) throw new IllegalArgumentException(); *************** public class ICC_ColorSpace extends Colo *** 255,282 **** switch (profile.isPredefined()) { case CS_sRGB: ! converter = new SrgbConverter(); ! break; case CS_CIEXYZ: ! converter = new CieXyzConverter(); ! break; case CS_GRAY: ! converter = new GrayScaleConverter(); ! break; case CS_LINEAR_RGB: ! converter = new LinearRGBConverter(); ! break; case CS_PYCC: ! converter = new PyccConverter(); ! break; default: ! if (profile instanceof ICC_ProfileRGB) ! converter = new RgbProfileConverter((ICC_ProfileRGB) profile); ! else if (profile instanceof ICC_ProfileGray) ! converter = new GrayProfileConverter((ICC_ProfileGray) profile); ! else ! converter = new ClutProfileConverter(profile); ! break; } return converter; } --- 255,282 ---- switch (profile.isPredefined()) { case CS_sRGB: ! converter = new SrgbConverter(); ! break; case CS_CIEXYZ: ! converter = new CieXyzConverter(); ! break; case CS_GRAY: ! converter = new GrayScaleConverter(); ! break; case CS_LINEAR_RGB: ! converter = new LinearRGBConverter(); ! break; case CS_PYCC: ! converter = new PyccConverter(); ! break; default: ! if (profile instanceof ICC_ProfileRGB) ! converter = new RgbProfileConverter((ICC_ProfileRGB) profile); ! else if (profile instanceof ICC_ProfileGray) ! converter = new GrayProfileConverter((ICC_ProfileGray) profile); ! else ! converter = new ClutProfileConverter(profile); ! break; } return converter; } *************** public class ICC_ColorSpace extends Colo *** 293,300 **** invDiffMinMax = diffMinMax = null; for (int i = 0; i < nComponents; i++) { ! minVal[i] = getMinValue(i); ! maxVal[i] = getMaxValue(i); } needScaleInit = true; } --- 293,300 ---- invDiffMinMax = diffMinMax = null; for (int i = 0; i < nComponents; i++) { ! minVal[i] = getMinValue(i); ! maxVal[i] = getMaxValue(i); } needScaleInit = true; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/color/ICC_Profile.java gcc-4.6.0/libjava/classpath/java/awt/color/ICC_Profile.java *** gcc-4.5.2/libjava/classpath/java/awt/color/ICC_Profile.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/color/ICC_Profile.java Tue Jan 11 19:46:05 2011 *************** public class ICC_Profile implements Seri *** 114,120 **** /** * Color space signatures */ ! public static final int icSigXYZData = 0x58595A20; // 'XYZ ' public static final int icSigLabData = 0x4C616220; // 'Lab ' public static final int icSigLuvData = 0x4C757620; // 'Luv ' public static final int icSigYCbCrData = 0x59436272; // 'YCbr' --- 114,120 ---- /** * Color space signatures */ ! public static final int icSigXYZData = 0x58595A20; // 'XYZ ' public static final int icSigLabData = 0x4C616220; // 'Lab ' public static final int icSigLuvData = 0x4C757620; // 'Luv ' public static final int icSigYCbCrData = 0x59436272; // 'YCbr' *************** public class ICC_Profile implements Seri *** 151,200 **** /** * Tag signatures */ ! public static final int icSigAToB0Tag = 0x41324230; // 'A2B0' ! public static final int icSigAToB1Tag = 0x41324231; // 'A2B1' ! public static final int icSigAToB2Tag = 0x41324232; // 'A2B2' ! public static final int icSigBlueColorantTag = 0x6258595A; // 'bXYZ' ! public static final int icSigBlueTRCTag = 0x62545243; // 'bTRC' ! public static final int icSigBToA0Tag = 0x42324130; // 'B2A0' ! public static final int icSigBToA1Tag = 0x42324131; // 'B2A1' ! public static final int icSigBToA2Tag = 0x42324132; // 'B2A2' ! public static final int icSigCalibrationDateTimeTag = 0x63616C74; // 'calt' ! public static final int icSigCharTargetTag = 0x74617267; // 'targ' ! public static final int icSigCopyrightTag = 0x63707274; // 'cprt' ! public static final int icSigCrdInfoTag = 0x63726469; // 'crdi' ! public static final int icSigDeviceMfgDescTag = 0x646D6E64; // 'dmnd' ! public static final int icSigDeviceModelDescTag = 0x646D6464; // 'dmdd' ! public static final int icSigDeviceSettingsTag = 0x64657673; // 'devs' ! public static final int icSigGamutTag = 0x67616D74; // 'gamt' ! public static final int icSigGrayTRCTag = 0x6b545243; // 'kTRC' ! public static final int icSigGreenColorantTag = 0x6758595A; // 'gXYZ' ! public static final int icSigGreenTRCTag = 0x67545243; // 'gTRC' ! public static final int icSigLuminanceTag = 0x6C756d69; // 'lumi' ! public static final int icSigMeasurementTag = 0x6D656173; // 'meas' ! public static final int icSigMediaBlackPointTag = 0x626B7074; // 'bkpt' ! public static final int icSigMediaWhitePointTag = 0x77747074; // 'wtpt' ! public static final int icSigNamedColor2Tag = 0x6E636C32; // 'ncl2' ! public static final int icSigOutputResponseTag = 0x72657370; // 'resp' ! public static final int icSigPreview0Tag = 0x70726530; // 'pre0' ! public static final int icSigPreview1Tag = 0x70726531; // 'pre1' ! public static final int icSigPreview2Tag = 0x70726532; // 'pre2' ! public static final int icSigProfileDescriptionTag = 0x64657363; // 'desc' ! public static final int icSigProfileSequenceDescTag = 0x70736571; // 'pseq' ! public static final int icSigPs2CRD0Tag = 0x70736430; // 'psd0' ! public static final int icSigPs2CRD1Tag = 0x70736431; // 'psd1' ! public static final int icSigPs2CRD2Tag = 0x70736432; // 'psd2' ! public static final int icSigPs2CRD3Tag = 0x70736433; // 'psd3' ! public static final int icSigPs2CSATag = 0x70733273; // 'ps2s' ! public static final int icSigPs2RenderingIntentTag = 0x70733269; // 'ps2i' ! public static final int icSigRedColorantTag = 0x7258595A; // 'rXYZ' ! public static final int icSigRedTRCTag = 0x72545243; // 'rTRC' ! public static final int icSigScreeningDescTag = 0x73637264; // 'scrd' ! public static final int icSigScreeningTag = 0x7363726E; // 'scrn' ! public static final int icSigTechnologyTag = 0x74656368; // 'tech' ! public static final int icSigUcrBgTag = 0x62666420; // 'bfd ' ! public static final int icSigViewingCondDescTag = 0x76756564; // 'vued' ! public static final int icSigViewingConditionsTag = 0x76696577; // 'view' public static final int icSigChromaticityTag = 0x6368726D; // 'chrm' /** --- 151,200 ---- /** * Tag signatures */ ! public static final int icSigAToB0Tag = 0x41324230; // 'A2B0' ! public static final int icSigAToB1Tag = 0x41324231; // 'A2B1' ! public static final int icSigAToB2Tag = 0x41324232; // 'A2B2' ! public static final int icSigBlueColorantTag = 0x6258595A; // 'bXYZ' ! public static final int icSigBlueTRCTag = 0x62545243; // 'bTRC' ! public static final int icSigBToA0Tag = 0x42324130; // 'B2A0' ! public static final int icSigBToA1Tag = 0x42324131; // 'B2A1' ! public static final int icSigBToA2Tag = 0x42324132; // 'B2A2' ! public static final int icSigCalibrationDateTimeTag = 0x63616C74; // 'calt' ! public static final int icSigCharTargetTag = 0x74617267; // 'targ' ! public static final int icSigCopyrightTag = 0x63707274; // 'cprt' ! public static final int icSigCrdInfoTag = 0x63726469; // 'crdi' ! public static final int icSigDeviceMfgDescTag = 0x646D6E64; // 'dmnd' ! public static final int icSigDeviceModelDescTag = 0x646D6464; // 'dmdd' ! public static final int icSigDeviceSettingsTag = 0x64657673; // 'devs' ! public static final int icSigGamutTag = 0x67616D74; // 'gamt' ! public static final int icSigGrayTRCTag = 0x6b545243; // 'kTRC' ! public static final int icSigGreenColorantTag = 0x6758595A; // 'gXYZ' ! public static final int icSigGreenTRCTag = 0x67545243; // 'gTRC' ! public static final int icSigLuminanceTag = 0x6C756d69; // 'lumi' ! public static final int icSigMeasurementTag = 0x6D656173; // 'meas' ! public static final int icSigMediaBlackPointTag = 0x626B7074; // 'bkpt' ! public static final int icSigMediaWhitePointTag = 0x77747074; // 'wtpt' ! public static final int icSigNamedColor2Tag = 0x6E636C32; // 'ncl2' ! public static final int icSigOutputResponseTag = 0x72657370; // 'resp' ! public static final int icSigPreview0Tag = 0x70726530; // 'pre0' ! public static final int icSigPreview1Tag = 0x70726531; // 'pre1' ! public static final int icSigPreview2Tag = 0x70726532; // 'pre2' ! public static final int icSigProfileDescriptionTag = 0x64657363; // 'desc' ! public static final int icSigProfileSequenceDescTag = 0x70736571; // 'pseq' ! public static final int icSigPs2CRD0Tag = 0x70736430; // 'psd0' ! public static final int icSigPs2CRD1Tag = 0x70736431; // 'psd1' ! public static final int icSigPs2CRD2Tag = 0x70736432; // 'psd2' ! public static final int icSigPs2CRD3Tag = 0x70736433; // 'psd3' ! public static final int icSigPs2CSATag = 0x70733273; // 'ps2s' ! public static final int icSigPs2RenderingIntentTag = 0x70733269; // 'ps2i' ! public static final int icSigRedColorantTag = 0x7258595A; // 'rXYZ' ! public static final int icSigRedTRCTag = 0x72545243; // 'rTRC' ! public static final int icSigScreeningDescTag = 0x73637264; // 'scrd' ! public static final int icSigScreeningTag = 0x7363726E; // 'scrn' ! public static final int icSigTechnologyTag = 0x74656368; // 'tech' ! public static final int icSigUcrBgTag = 0x62666420; // 'bfd ' ! public static final int icSigViewingCondDescTag = 0x76756564; // 'vued' ! public static final int icSigViewingConditionsTag = 0x76696577; // 'view' public static final int icSigChromaticityTag = 0x6368726D; // 'chrm' /** *************** public class ICC_Profile implements Seri *** 430,439 **** int bytesLeft = totalBytes; while (bytesLeft > 0) { ! int read = in.read(data, ProfileHeader.HEADERSIZE + (totalBytes - bytesLeft), bytesLeft); ! bytesLeft -= read; } return getInstance(data); --- 430,439 ---- int bytesLeft = totalBytes; while (bytesLeft > 0) { ! int read = in.read(data, ProfileHeader.HEADERSIZE + (totalBytes - bytesLeft), bytesLeft); ! bytesLeft -= read; } return getInstance(data); *************** public class ICC_Profile implements Seri *** 540,548 **** Enumeration e = tagTable.elements(); while (e.hasMoreElements()) { ! TagEntry tag = (TagEntry) e.nextElement(); ! System.arraycopy(tag.getData(), 0, ! data, tag.getOffset(), tag.getSize()); } return data; } --- 540,548 ---- Enumeration e = tagTable.elements(); while (e.hasMoreElements()) { ! TagEntry tag = (TagEntry) e.nextElement(); ! System.arraycopy(tag.getData(), 0, ! data, tag.getOffset(), tag.getSize()); } return data; } *************** public class ICC_Profile implements Seri *** 582,589 **** header = new ProfileHeader(data); else { ! TagEntry t = new TagEntry(tagSignature, data); ! tagTable.put(t.hashKey(), t); } } --- 582,589 ---- header = new ProfileHeader(data); else { ! TagEntry t = new TagEntry(tagSignature, data); ! tagTable.put(t.hashKey(), t); } } *************** public class ICC_Profile implements Seri *** 592,598 **** */ public int getNumComponents() { ! int[] lookup = { ColorSpace.TYPE_RGB, 3, ColorSpace.TYPE_CMY, 3, ColorSpace.TYPE_CMYK, 4, ColorSpace.TYPE_GRAY, 1, --- 592,598 ---- */ public int getNumComponents() { ! int[] lookup = { ColorSpace.TYPE_RGB, 3, ColorSpace.TYPE_CMY, 3, ColorSpace.TYPE_CMYK, 4, ColorSpace.TYPE_GRAY, 1, *************** public class ICC_Profile implements Seri *** 610,616 **** }; for (int i = 0; i < lookup.length; i += 2) if (header.getColorSpace() == lookup[i]) ! return lookup[i + 1]; return 3; // should never happen. } --- 610,616 ---- }; for (int i = 0; i < lookup.length; i += 2) if (header.getColorSpace() == lookup[i]) ! return lookup[i + 1]; return 3; // should never happen. } *************** public class ICC_Profile implements Seri *** 640,663 **** if (data != null) { ! header = new ProfileHeader(data); ! tagTable = createTagTable(data); ! profileID = -1; // Not a predefined color space } if (predef != null) { ! predef = predef.intern(); ! if (predef.equals("CS_sRGB")) ! createProfile(ColorSpace.CS_sRGB); ! if (predef.equals("CS_LINEAR_RGB")) ! createProfile(ColorSpace.CS_LINEAR_RGB); ! if (predef.equals("CS_CIEXYZ")) ! createProfile(ColorSpace.CS_CIEXYZ); ! if (predef.equals("CS_GRAY")) ! createProfile(ColorSpace.CS_GRAY); ! if (predef.equals("CS_PYCC")) ! createProfile(ColorSpace.CS_PYCC); } } --- 640,663 ---- if (data != null) { ! header = new ProfileHeader(data); ! tagTable = createTagTable(data); ! profileID = -1; // Not a predefined color space } if (predef != null) { ! predef = predef.intern(); ! if (predef.equals("CS_sRGB")) ! createProfile(ColorSpace.CS_sRGB); ! if (predef.equals("CS_LINEAR_RGB")) ! createProfile(ColorSpace.CS_LINEAR_RGB); ! if (predef.equals("CS_CIEXYZ")) ! createProfile(ColorSpace.CS_CIEXYZ); ! if (predef.equals("CS_GRAY")) ! createProfile(ColorSpace.CS_GRAY); ! if (predef.equals("CS_PYCC")) ! createProfile(ColorSpace.CS_PYCC); } } *************** public class ICC_Profile implements Seri *** 682,690 **** s.writeObject("CS_PYCC"); else { ! s.writeObject(null); // null string ! s.writeObject(getData()); // data ! return; } s.writeObject(null); // null data } --- 682,690 ---- s.writeObject("CS_PYCC"); else { ! s.writeObject(null); // null string ! s.writeObject(getData()); // data ! return; } s.writeObject(null); // null data } *************** public class ICC_Profile implements Seri *** 702,717 **** Hashtable tagTable = new Hashtable(); for (int i = 0; i < nTags; i++) { ! TagEntry te = new TagEntry(buf.getInt(tagTableOffset ! + i * TagEntry.entrySize + 4), ! buf.getInt(tagTableOffset ! + i * TagEntry.entrySize + 8), ! buf.getInt(tagTableOffset ! + i * TagEntry.entrySize + 12), ! data); ! if (tagTable.put(te.hashKey(), te) != null) ! throw new IllegalArgumentException("Duplicate tag in profile:" + te); } return tagTable; } --- 702,717 ---- Hashtable tagTable = new Hashtable(); for (int i = 0; i < nTags; i++) { ! TagEntry te = new TagEntry(buf.getInt(tagTableOffset ! + i * TagEntry.entrySize + 4), ! buf.getInt(tagTableOffset ! + i * TagEntry.entrySize + 8), ! buf.getInt(tagTableOffset ! + i * TagEntry.entrySize + 12), ! data); ! if (tagTable.put(te.hashKey(), te) != null) ! throw new IllegalArgumentException("Duplicate tag in profile:" + te); } return tagTable; } *************** public class ICC_Profile implements Seri *** 724,730 **** { int totalSize = ProfileHeader.HEADERSIZE; // size of header ! int tagTableSize = 4 + tagTable.size() * TagEntry.entrySize; // size of tag table if ((tagTableSize & 0x0003) != 0) tagTableSize += 4 - (tagTableSize & 0x0003); // pad totalSize += tagTableSize; --- 724,730 ---- { int totalSize = ProfileHeader.HEADERSIZE; // size of header ! int tagTableSize = 4 + tagTable.size() * TagEntry.entrySize; // size of tag table if ((tagTableSize & 0x0003) != 0) tagTableSize += 4 - (tagTableSize & 0x0003); // pad totalSize += tagTableSize; *************** public class ICC_Profile implements Seri *** 732,741 **** Enumeration e = tagTable.elements(); while (e.hasMoreElements()) { // tag data ! int tagSize = ((TagEntry) e.nextElement()).getSize(); ! if ((tagSize & 0x0003) != 0) ! tagSize += 4 - (tagSize & 0x0003); // pad ! totalSize += tagSize; } return totalSize; } --- 732,741 ---- Enumeration e = tagTable.elements(); while (e.hasMoreElements()) { // tag data ! int tagSize = ((TagEntry) e.nextElement()).getSize(); ! if ((tagSize & 0x0003) != 0) ! tagSize += 4 - (tagSize & 0x0003); // pad ! totalSize += tagSize; } return totalSize; } *************** public class ICC_Profile implements Seri *** 747,753 **** { int tagTableSize = 4 + tagTable.size() * TagEntry.entrySize; if ((tagTableSize & 0x0003) != 0) ! tagTableSize += 4 - (tagTableSize & 0x0003); // pad int offset = 4; int tagOffset = ProfileHeader.HEADERSIZE + tagTableSize; --- 747,753 ---- { int tagTableSize = 4 + tagTable.size() * TagEntry.entrySize; if ((tagTableSize & 0x0003) != 0) ! tagTableSize += 4 - (tagTableSize & 0x0003); // pad int offset = 4; int tagOffset = ProfileHeader.HEADERSIZE + tagTableSize; *************** public class ICC_Profile implements Seri *** 757,772 **** Enumeration e = tagTable.elements(); while (e.hasMoreElements()) { ! TagEntry tag = (TagEntry) e.nextElement(); ! buf.putInt(offset, tag.getSignature()); ! buf.putInt(offset + 4, tagOffset); ! buf.putInt(offset + 8, tag.getSize()); ! tag.setOffset(tagOffset); ! int tagSize = tag.getSize(); ! if ((tagSize & 0x0003) != 0) ! tagSize += 4 - (tagSize & 0x0003); // pad ! tagOffset += tagSize; ! offset += 12; } return buf.array(); } --- 757,772 ---- Enumeration e = tagTable.elements(); while (e.hasMoreElements()) { ! TagEntry tag = (TagEntry) e.nextElement(); ! buf.putInt(offset, tag.getSignature()); ! buf.putInt(offset + 4, tagOffset); ! buf.putInt(offset + 8, tag.getSize()); ! tag.setOffset(tagOffset); ! int tagSize = tag.getSize(); ! if ((tagSize & 0x0003) != 0) ! tagSize += 4 - (tagSize & 0x0003); // pad ! tagOffset += tagSize; ! offset += 12; } return buf.array(); } *************** public class ICC_Profile implements Seri *** 838,852 **** int count = buf.getInt(8); if (count == 0) { ! curve = new short[1]; ! curve[0] = 0x0100; // 1.00 in u8fixed8 ! return curve; } if (count == 1) { ! curve = new short[1]; ! curve[0] = buf.getShort(12); // other u8fixed8 gamma ! return curve; } curve = new short[count]; for (int i = 0; i < count; i++) --- 838,852 ---- int count = buf.getInt(8); if (count == 0) { ! curve = new short[1]; ! curve[0] = 0x0100; // 1.00 in u8fixed8 ! return curve; } if (count == 1) { ! curve = new short[1]; ! curve[0] = buf.getShort(12); // other u8fixed8 gamma ! return curve; } curve = new short[count]; for (int i = 0; i < count; i++) *************** public class ICC_Profile implements Seri *** 917,927 **** byte[] data; try { ! data = text.getBytes("US-ASCII"); } catch (UnsupportedEncodingException e) { ! data = new byte[length]; // shouldn't happen } buf.putInt(0, (int) 0x74657874); // 'text' --- 917,927 ---- byte[] data; try { ! data = text.getBytes("US-ASCII"); } catch (UnsupportedEncodingException e) { ! data = new byte[length]; // shouldn't happen } buf.putInt(0, (int) 0x74657874); // 'text' *************** public class ICC_Profile implements Seri *** 940,956 **** int length = text.length(); ByteBuffer buf = ByteBuffer.allocate(90 + length + 1); buf.putInt(0, (int) 0x64657363); // 'desc' ! buf.putInt(4, 0); // reserved buf.putInt(8, length + 1); // ASCII length, including null termination byte[] data; try { ! data = text.getBytes("US-ASCII"); } catch (UnsupportedEncodingException e) { ! data = new byte[length]; // shouldn't happen } for (int i = 0; i < length; i++) --- 940,956 ---- int length = text.length(); ByteBuffer buf = ByteBuffer.allocate(90 + length + 1); buf.putInt(0, (int) 0x64657363); // 'desc' ! buf.putInt(4, 0); // reserved buf.putInt(8, length + 1); // ASCII length, including null termination byte[] data; try { ! data = text.getBytes("US-ASCII"); } catch (UnsupportedEncodingException e) { ! data = new byte[length]; // shouldn't happen } for (int i = 0; i < length; i++) *************** public class ICC_Profile implements Seri *** 999,1005 **** buf.putInt(4, 0); // reserved buf.putInt(8, trc.length); // number of points ! // put the curve values for (int i = 0; i < trc.length; i++) buf.putShort(12 + i * 2, (short) (trc[i] * 65535f)); --- 999,1005 ---- buf.putInt(4, 0); // reserved buf.putInt(8, trc.length); // number of points ! // put the curve values for (int i = 0; i < trc.length; i++) buf.putShort(12 + i * 2, (short) (trc[i] * 65535f)); *************** public class ICC_Profile implements Seri *** 1049,1079 **** for (int channel = 0; channel < 3; channel++) for (int i = 0; i < nInEntries; i++) { ! short n = (short) ((i << 8) | i); // assumes 256 entries ! buf.putShort(52 + (channel * nInEntries + i) * 2, n); } int clutOffset = 52 + nInEntries * nIn * 2; for (int x = 0; x < gridpoints; x++) for (int y = 0; y < gridpoints; y++) ! for (int z = 0; z < gridpoints; z++) ! { ! int offset = clutOffset + z * 2 * nOut + y * gridpoints * 2 * nOut ! + x * gridpoints * gridpoints * 2 * nOut; ! double xf = ((double) x) / ((double) gridpoints - 1.0); ! double yf = ((double) y) / ((double) gridpoints - 1.0); ! double zf = ((double) z) / ((double) gridpoints - 1.0); ! buf.putShort(offset, (short) (xf * 65535.0)); ! buf.putShort(offset + 2, (short) (yf * 65535.0)); ! buf.putShort(offset + 4, (short) (zf * 65535.0)); ! } for (int channel = 0; channel < 3; channel++) for (int i = 0; i < nOutEntries; i++) { ! short n = (short) ((i << 8) | i); // assumes 256 entries ! buf.putShort(clutOffset + clutSize + (channel * nOutEntries + i) * 2, ! n); } return buf.array(); --- 1049,1079 ---- for (int channel = 0; channel < 3; channel++) for (int i = 0; i < nInEntries; i++) { ! short n = (short) ((i << 8) | i); // assumes 256 entries ! buf.putShort(52 + (channel * nInEntries + i) * 2, n); } int clutOffset = 52 + nInEntries * nIn * 2; for (int x = 0; x < gridpoints; x++) for (int y = 0; y < gridpoints; y++) ! for (int z = 0; z < gridpoints; z++) ! { ! int offset = clutOffset + z * 2 * nOut + y * gridpoints * 2 * nOut ! + x * gridpoints * gridpoints * 2 * nOut; ! double xf = ((double) x) / ((double) gridpoints - 1.0); ! double yf = ((double) y) / ((double) gridpoints - 1.0); ! double zf = ((double) z) / ((double) gridpoints - 1.0); ! buf.putShort(offset, (short) (xf * 65535.0)); ! buf.putShort(offset + 2, (short) (yf * 65535.0)); ! buf.putShort(offset + 4, (short) (zf * 65535.0)); ! } for (int channel = 0; channel < 3; channel++) for (int i = 0; i < nOutEntries; i++) { ! short n = (short) ((i << 8) | i); // assumes 256 entries ! buf.putShort(clutOffset + clutSize + (channel * nOutEntries + i) * 2, ! n); } return buf.array(); *************** public class ICC_Profile implements Seri *** 1091,1112 **** switch (colorSpace) { case ColorSpace.CS_sRGB: ! createRGBProfile(); ! return; case ColorSpace.CS_LINEAR_RGB: ! createLinearRGBProfile(); ! return; case ColorSpace.CS_CIEXYZ: ! createCIEProfile(); ! return; case ColorSpace.CS_GRAY: ! createGrayProfile(); ! return; case ColorSpace.CS_PYCC: ! createPyccProfile(); ! return; default: ! throw new IllegalArgumentException("Not a predefined color space!"); } } --- 1091,1112 ---- switch (colorSpace) { case ColorSpace.CS_sRGB: ! createRGBProfile(); ! return; case ColorSpace.CS_LINEAR_RGB: ! createLinearRGBProfile(); ! return; case ColorSpace.CS_CIEXYZ: ! createCIEProfile(); ! return; case ColorSpace.CS_GRAY: ! createGrayProfile(); ! return; case ColorSpace.CS_PYCC: ! createPyccProfile(); ! return; default: ! throw new IllegalArgumentException("Not a predefined color space!"); } } *************** public class ICC_Profile implements Seri *** 1139,1148 **** float[] in = new float[3]; for (int i = 0; i < TRC_POINTS; i++) { ! in[0] = in[1] = in[2] = ((float) i) / ((float) TRC_POINTS - 1); ! in = cs.fromRGB(in); ! // Note this value is the same for all components. ! points[i] = in[0]; } setData(icSigRedColorantTag, makeXYZData(r)); --- 1139,1148 ---- float[] in = new float[3]; for (int i = 0; i < TRC_POINTS; i++) { ! in[0] = in[1] = in[2] = ((float) i) / ((float) TRC_POINTS - 1); ! in = cs.fromRGB(in); ! // Note this value is the same for all components. ! points[i] = in[0]; } setData(icSigRedColorantTag, makeXYZData(r)); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/color/ICC_ProfileGray.java gcc-4.6.0/libjava/classpath/java/awt/color/ICC_ProfileGray.java *** gcc-4.5.2/libjava/classpath/java/awt/color/ICC_ProfileGray.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/color/ICC_ProfileGray.java Tue Jan 11 19:46:05 2011 *************** package java.awt.color; *** 41,47 **** /** * ICC_ProfileGray - a special case of ICC_Profiles. * ! * The ICC_Profile.getInstance() method will return an instance of the * ICC_ProfileGray subclass when all the following conditions are met: * The device color space of the profile is TYPE_GRAY. * The profile contains a gray TRCTag. --- 41,47 ---- /** * ICC_ProfileGray - a special case of ICC_Profiles. * ! * The ICC_Profile.getInstance() method will return an instance of the * ICC_ProfileGray subclass when all the following conditions are met: * The device color space of the profile is TYPE_GRAY. * The profile contains a gray TRCTag. *************** package java.awt.color; *** 52,58 **** * linearGray = grayTRC[deviceGray] * * Note that if the profile contains a CLUT for the color space conversion, ! * it should be used instead, and the TRC information ignored. * * @author Sven de Marothy * @since 1.2 --- 52,58 ---- * linearGray = grayTRC[deviceGray] * * Note that if the profile contains a CLUT for the color space conversion, ! * it should be used instead, and the TRC information ignored. * * @author Sven de Marothy * @since 1.2 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/color/ICC_ProfileRGB.java gcc-4.6.0/libjava/classpath/java/awt/color/ICC_ProfileRGB.java *** gcc-4.5.2/libjava/classpath/java/awt/color/ICC_ProfileRGB.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/color/ICC_ProfileRGB.java Tue Jan 11 19:46:05 2011 *************** package java.awt.color; *** 41,47 **** /** * ICC_ProfileRGB - a special case of ICC_Profiles. * ! * The ICC_Profile.getInstance() method will return an instance of the * ICC_ProfileRGB subclass when all the following conditions are met: * The device color space of the profile is TYPE_RGB. * The profile contains red, green and blue ColorantTags. --- 41,47 ---- /** * ICC_ProfileRGB - a special case of ICC_Profiles. * ! * The ICC_Profile.getInstance() method will return an instance of the * ICC_ProfileRGB subclass when all the following conditions are met: * The device color space of the profile is TYPE_RGB. * The profile contains red, green and blue ColorantTags. *************** package java.awt.color; *** 54,70 **** * linearG = greenTRC[deviceG] * linearB = blueTRC[deviceB] * TRC curves are either a single gamma value, or a 1-dimensional lookup table. ! * * Followed by the matrix transform: * PCS = M*linear * * Where PCS is the vector of profile color space (must be XYZ) coordinates, ! * linear is the vector of linear RGB coordinates, and the matrix M is * constructed from the ColorantTags, where the columns are red, green and * blue respectively, and the rows are X, Y and Z. * * Note that if the profile contains a CLUT for the color space conversion, ! * it should be used instead, and the TRC information ignored. * * @author Sven de Marothy * @since 1.2 --- 54,70 ---- * linearG = greenTRC[deviceG] * linearB = blueTRC[deviceB] * TRC curves are either a single gamma value, or a 1-dimensional lookup table. ! * * Followed by the matrix transform: * PCS = M*linear * * Where PCS is the vector of profile color space (must be XYZ) coordinates, ! * linear is the vector of linear RGB coordinates, and the matrix M is * constructed from the ColorantTags, where the columns are red, green and * blue respectively, and the rows are X, Y and Z. * * Note that if the profile contains a CLUT for the color space conversion, ! * it should be used instead, and the TRC information ignored. * * @author Sven de Marothy * @since 1.2 *************** public class ICC_ProfileRGB extends ICC_ *** 131,137 **** float[][] mat = new float[3][3]; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) ! mat[i][j] = matrix[i][j]; return mat; } --- 131,137 ---- float[][] mat = new float[3][3]; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) ! mat[i][j] = matrix[i][j]; return mat; } *************** public class ICC_ProfileRGB extends ICC_ *** 146,161 **** switch (component) { case REDCOMPONENT: ! data = getCurve(icSigRedTRCTag); ! break; case GREENCOMPONENT: ! data = getCurve(icSigGreenTRCTag); ! break; case BLUECOMPONENT: ! data = getCurve(icSigBlueTRCTag); ! break; default: ! throw new IllegalArgumentException("Not a valid component"); } if (data == null) throw new IllegalArgumentException("Error reading TRC"); --- 146,161 ---- switch (component) { case REDCOMPONENT: ! data = getCurve(icSigRedTRCTag); ! break; case GREENCOMPONENT: ! data = getCurve(icSigGreenTRCTag); ! break; case BLUECOMPONENT: ! data = getCurve(icSigBlueTRCTag); ! break; default: ! throw new IllegalArgumentException("Not a valid component"); } if (data == null) throw new IllegalArgumentException("Error reading TRC"); *************** public class ICC_ProfileRGB extends ICC_ *** 181,196 **** switch (component) { case REDCOMPONENT: ! data = getCurve(icSigRedTRCTag); ! break; case GREENCOMPONENT: ! data = getCurve(icSigGreenTRCTag); ! break; case BLUECOMPONENT: ! data = getCurve(icSigBlueTRCTag); ! break; default: ! throw new IllegalArgumentException("Not a valid component"); } if (data == null) throw new IllegalArgumentException("Error reading TRC"); --- 181,196 ---- switch (component) { case REDCOMPONENT: ! data = getCurve(icSigRedTRCTag); ! break; case GREENCOMPONENT: ! data = getCurve(icSigGreenTRCTag); ! break; case BLUECOMPONENT: ! data = getCurve(icSigBlueTRCTag); ! break; default: ! throw new IllegalArgumentException("Not a valid component"); } if (data == null) throw new IllegalArgumentException("Error reading TRC"); *************** public class ICC_ProfileRGB extends ICC_ *** 218,226 **** throw new IllegalArgumentException("Error reading colorant tags!"); for (int i = 0; i < 3; i++) { ! mat[i][0] = r[i]; ! mat[i][1] = g[i]; ! mat[i][2] = b[i]; } return mat; } --- 218,226 ---- throw new IllegalArgumentException("Error reading colorant tags!"); for (int i = 0; i < 3; i++) { ! mat[i][0] = r[i]; ! mat[i][1] = g[i]; ! mat[i][2] = b[i]; } return mat; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/Clipboard.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/Clipboard.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/Clipboard.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/Clipboard.java Tue Jan 11 19:46:05 2011 *************** public class Clipboard *** 111,153 **** * @exception IllegalStateException If the clipboard is currently unavailable */ public synchronized void setContents(Transferable contents, ! ClipboardOwner owner) { Transferable oldContents = getContents(null); this.contents = contents; if (this.owner != owner) { ! ClipboardOwner oldOwner = this.owner; ! this.owner = owner; ! if (oldOwner != null) ! oldOwner.lostOwnership(this, oldContents); } FlavorListener[] fs = getFlavorListeners(); if (fs.length > 0) { ! // We are a bit optimistic here. We assume DataFlavors will be ! // given in the same order. If the number of flavors is ! // different or the order of the DataFlavors in the list then ! // fire a change event. ! boolean newFlavors = ((contents != null && oldContents == null) ! || (contents == null && oldContents != null)); ! if (!newFlavors && contents != null && oldContents != null) ! { ! DataFlavor[] df1 = contents.getTransferDataFlavors(); ! DataFlavor[] df2 = oldContents.getTransferDataFlavors(); ! newFlavors = df1.length != df2.length; ! ! for (int i = 0; !newFlavors && i < df1.length; i++) ! newFlavors = !df1[i].equals(df2[i]); ! } ! if (newFlavors) ! { ! FlavorEvent e = new FlavorEvent(this); ! for (int i = 0; i < fs.length; i++) ! fs[i].flavorsChanged(e); ! } } } --- 111,153 ---- * @exception IllegalStateException If the clipboard is currently unavailable */ public synchronized void setContents(Transferable contents, ! ClipboardOwner owner) { Transferable oldContents = getContents(null); this.contents = contents; if (this.owner != owner) { ! ClipboardOwner oldOwner = this.owner; ! this.owner = owner; ! if (oldOwner != null) ! oldOwner.lostOwnership(this, oldContents); } FlavorListener[] fs = getFlavorListeners(); if (fs.length > 0) { ! // We are a bit optimistic here. We assume DataFlavors will be ! // given in the same order. If the number of flavors is ! // different or the order of the DataFlavors in the list then ! // fire a change event. ! boolean newFlavors = ((contents != null && oldContents == null) ! || (contents == null && oldContents != null)); ! if (!newFlavors && contents != null && oldContents != null) ! { ! DataFlavor[] df1 = contents.getTransferDataFlavors(); ! DataFlavor[] df2 = oldContents.getTransferDataFlavors(); ! newFlavors = df1.length != df2.length; ! for (int i = 0; !newFlavors && i < df1.length; i++) ! newFlavors = !df1[i].equals(df2[i]); ! } ! ! if (newFlavors) ! { ! FlavorEvent e = new FlavorEvent(this); ! for (int i = 0; i < fs.length; i++) ! fs[i].flavorsChanged(e); ! } } } *************** public class Clipboard *** 165,171 **** DataFlavor[] fs = getAvailableDataFlavors(); for (int i = 0; i < fs.length; i++) if (flavor.equals(fs[i])) ! return true; return false; } --- 165,171 ---- DataFlavor[] fs = getAvailableDataFlavors(); for (int i = 0; i < fs.length; i++) if (flavor.equals(fs[i])) ! return true; return false; } *************** public class Clipboard *** 187,193 **** synchronized(listeners) { ! listeners.add(listener); } } --- 187,193 ---- synchronized(listeners) { ! listeners.add(listener); } } *************** public class Clipboard *** 198,204 **** synchronized(listeners) { ! listeners.remove(listener); } } --- 198,204 ---- synchronized(listeners) { ! listeners.remove(listener); } } *************** public class Clipboard *** 206,213 **** { synchronized(listeners) { ! return (FlavorListener[]) ! listeners.toArray(new FlavorListener[listeners.size()]); } } } --- 206,213 ---- { synchronized(listeners) { ! return (FlavorListener[]) ! listeners.toArray(new FlavorListener[listeners.size()]); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/ClipboardOwner.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/ClipboardOwner.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/ClipboardOwner.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/ClipboardOwner.java Tue Jan 11 19:46:05 2011 *************** public interface ClipboardOwner *** 52,57 **** * @param clipboard The clipboard for which ownership was lost. * @param contents The contents of the clipboard which are no longer owned. */ ! void lostOwnership (Clipboard clipboard, Transferable contents); } - --- 52,56 ---- * @param clipboard The clipboard for which ownership was lost. * @param contents The contents of the clipboard which are no longer owned. */ ! void lostOwnership (Clipboard clipboard, Transferable contents); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/DataFlavor.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/DataFlavor.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/DataFlavor.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/DataFlavor.java Tue Jan 11 19:46:05 2011 *************** public class DataFlavor implements java. *** 74,97 **** * @deprecated The charset unicode is platform specific and InputStream * deals with bytes not chars. Use getRederForText(). */ ! public static final DataFlavor plainTextFlavor = new DataFlavor("text/plain; charset=unicode; class=java.io.InputStream", "plain unicode text"); /** * This is the data flavor used for transferring Java strings. The ! * MIME type is "application/x-java-serialized-object" and the * representation class is java.lang.String. */ ! public static final DataFlavor stringFlavor = new DataFlavor(java.lang.String.class, "Java Unicode String"); /** * This is a data flavor used for transferring lists of files. The ! * representation type is a java.util.List, with each * element of the list being a java.io.File. */ ! public static final DataFlavor javaFileListFlavor = new DataFlavor("application/x-java-file-list; class=java.util.List", "Java File List"); --- 74,97 ---- * @deprecated The charset unicode is platform specific and InputStream * deals with bytes not chars. Use getRederForText(). */ ! public static final DataFlavor plainTextFlavor = new DataFlavor("text/plain; charset=unicode; class=java.io.InputStream", "plain unicode text"); /** * This is the data flavor used for transferring Java strings. The ! * MIME type is "application/x-java-serialized-object" and the * representation class is java.lang.String. */ ! public static final DataFlavor stringFlavor = new DataFlavor(java.lang.String.class, "Java Unicode String"); /** * This is a data flavor used for transferring lists of files. The ! * representation type is a java.util.List, with each * element of the list being a java.io.File. */ ! public static final DataFlavor javaFileListFlavor = new DataFlavor("application/x-java-file-list; class=java.util.List", "Java File List"); *************** public class DataFlavor implements java. *** 99,105 **** * This is an image flavor used for transferring images. The * representation type is a java.awt.Image. */ ! public static final DataFlavor imageFlavor = new DataFlavor(java.awt.Image.class, "Java Image"); /** --- 99,105 ---- * This is an image flavor used for transferring images. The * representation type is a java.awt.Image. */ ! public static final DataFlavor imageFlavor = new DataFlavor(java.awt.Image.class, "Java Image"); /** *************** public class DataFlavor implements java. *** 127,146 **** /* * Instance Variables */ ! // The MIME type for this flavor private MimeType mimeType; ! // The representation class for this flavor private Class representationClass; ! // The human readable name of this flavor private String humanPresentableName; /* * Static Methods */ ! /** * This method attempts to load the named class. The following class * loaders are searched in order: the bootstrap class loader, the --- 127,146 ---- /* * Instance Variables */ ! // The MIME type for this flavor private MimeType mimeType; ! // The representation class for this flavor private Class representationClass; ! // The human readable name of this flavor private String humanPresentableName; /* * Static Methods */ ! /** * This method attempts to load the named class. The following class * loaders are searched in order: the bootstrap class loader, the *************** public class DataFlavor implements java. *** 154,160 **** * @exception ClassNotFoundException If the class cannot be loaded. */ protected static final Class tryToLoadClass(String className, ! ClassLoader classLoader) throws ClassNotFoundException { // Bootstrap --- 154,160 ---- * @exception ClassNotFoundException If the class cannot be loaded. */ protected static final Class tryToLoadClass(String className, ! ClassLoader classLoader) throws ClassNotFoundException { // Bootstrap *************** public class DataFlavor implements java. *** 164,200 **** } catch(ClassNotFoundException cnfe) { ! // Ignored. } ! // System try { ! ClassLoader loader = ClassLoader.getSystemClassLoader(); return Class.forName(className, true, loader); } catch(ClassNotFoundException cnfe) { ! // Ignored. } ! // Context try { ! ClassLoader loader = Thread.currentThread().getContextClassLoader(); return Class.forName(className, true, loader); } catch(ClassNotFoundException cnfe) { ! // Ignored. } ! if (classLoader != null) return Class.forName(className, true, classLoader); throw new ClassNotFoundException(className); } ! /** * XXX - Currently returns plainTextFlavor. */ --- 164,200 ---- } catch(ClassNotFoundException cnfe) { ! // Ignored. } ! // System try { ! ClassLoader loader = ClassLoader.getSystemClassLoader(); return Class.forName(className, true, loader); } catch(ClassNotFoundException cnfe) { ! // Ignored. } ! // Context try { ! ClassLoader loader = Thread.currentThread().getContextClassLoader(); return Class.forName(className, true, loader); } catch(ClassNotFoundException cnfe) { ! // Ignored. } ! if (classLoader != null) return Class.forName(className, true, classLoader); throw new ClassNotFoundException(className); } ! /** * XXX - Currently returns plainTextFlavor. */ *************** public class DataFlavor implements java. *** 202,208 **** { return plainTextFlavor; } ! /** * Selects the best supported text flavor on this implementation. * Returns null when none of the given flavors is liked. --- 202,208 ---- { return plainTextFlavor; } ! /** * Selects the best supported text flavor on this implementation. * Returns null when none of the given flavors is liked. *************** public class DataFlavor implements java. *** 213,231 **** * class which is (a subclass of) InputStream and has a * primary MIME type of "text" and has an supported encoding. */ ! public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors) { for(int i = 0; i < availableFlavors.length; i++) { DataFlavor df = availableFlavors[i]; Class c = df.representationClass; ! // A Reader or String is good. if ((Reader.class.isAssignableFrom(c)) || (String.class.isAssignableFrom(c))) return df; ! // A InputStream is good if the mime primary type is "text" if ((InputStream.class.isAssignableFrom(c)) && ("text".equals(df.getPrimaryType()))) --- 213,231 ---- * class which is (a subclass of) InputStream and has a * primary MIME type of "text" and has an supported encoding. */ ! public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors) { for(int i = 0; i < availableFlavors.length; i++) { DataFlavor df = availableFlavors[i]; Class c = df.representationClass; ! // A Reader or String is good. if ((Reader.class.isAssignableFrom(c)) || (String.class.isAssignableFrom(c))) return df; ! // A InputStream is good if the mime primary type is "text" if ((InputStream.class.isAssignableFrom(c)) && ("text".equals(df.getPrimaryType()))) *************** public class DataFlavor implements java. *** 246,252 **** return df; } } ! // Nothing found return null; } --- 246,252 ---- return df; } } ! // Nothing found return null; } *************** public class DataFlavor implements java. *** 255,268 **** /* * Constructors */ ! /** * Empty public constructor needed for externalization. * Should not be used for normal instantiation. */ public DataFlavor() { ! // Used for deserialization only, nothing to do here. } /** --- 255,268 ---- /* * Constructors */ ! /** * Empty public constructor needed for externalization. * Should not be used for normal instantiation. */ public DataFlavor() { ! // Used for deserialization only, nothing to do here. } /** *************** public class DataFlavor implements java. *** 312,318 **** * specified cannot be loaded. * @exception ClassNotFoundException If the class is not loaded. */ ! public DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader) throws ClassNotFoundException { --- 312,318 ---- * specified cannot be loaded. * @exception ClassNotFoundException If the class is not loaded. */ ! public DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader) throws ClassNotFoundException { *************** public class DataFlavor implements java. *** 444,450 **** public String getHumanPresentableName() { return(humanPresentableName); ! } /** * Returns the primary MIME type for this flavor. --- 444,450 ---- public String getHumanPresentableName() { return(humanPresentableName); ! } /** * Returns the primary MIME type for this flavor. *************** public class DataFlavor implements java. *** 478,484 **** { if ("humanPresentableName".equals(paramName)) return getHumanPresentableName(); ! return mimeType.getParameter(paramName); } --- 478,484 ---- { if ("humanPresentableName".equals(paramName)) return getHumanPresentableName(); ! return mimeType.getParameter(paramName); } *************** public class DataFlavor implements java. *** 529,535 **** * * @param flavor The flavor to test against. * ! * @return true if the flavor's MIME type is equal to this * object's MIME type, false otherwise. */ public final boolean isMimeTypeEqual(DataFlavor flavor) --- 529,535 ---- * * @param flavor The flavor to test against. * ! * @return true if the flavor's MIME type is equal to this * object's MIME type, false otherwise. */ public final boolean isMimeTypeEqual(DataFlavor flavor) *************** public class DataFlavor implements java. *** 619,627 **** if (getPrimaryType().equals(javaFileListFlavor.getPrimaryType()) && getSubType().equals(javaFileListFlavor.getSubType()) && javaFileListFlavor.representationClass ! .isAssignableFrom(representationClass)) return true; ! return false ; } --- 619,627 ---- if (getPrimaryType().equals(javaFileListFlavor.getPrimaryType()) && getSubType().equals(javaFileListFlavor.getSubType()) && javaFileListFlavor.representationClass ! .isAssignableFrom(representationClass)) return true; ! return false ; } *************** public class DataFlavor implements java. *** 681,699 **** if (! isRepresentationClassCharBuffer() && ! isRepresentationClassReader() && representationClass != java.lang.String.class ! && ! (representationClass.isArray() ! && representationClass.getComponentType() == Character.TYPE)) ! { ! String charset = getParameter("charset"); ! String otherset = flavor.getParameter("charset"); ! String defaultset = Charset.defaultCharset().name(); ! if (charset == null || charset.equals(defaultset)) return (otherset == null || otherset.equals(defaultset)); ! return charset.equals(otherset); ! } ! return true; } --- 681,699 ---- if (! isRepresentationClassCharBuffer() && ! isRepresentationClassReader() && representationClass != java.lang.String.class ! && ! (representationClass.isArray() ! && representationClass.getComponentType() == Character.TYPE)) ! { ! String charset = getParameter("charset"); ! String otherset = flavor.getParameter("charset"); ! String defaultset = Charset.defaultCharset().name(); ! if (charset == null || charset.equals(defaultset)) return (otherset == null || otherset.equals(defaultset)); ! return charset.equals(otherset); ! } ! return true; } *************** public class DataFlavor implements java. *** 718,724 **** { if (! (obj instanceof DataFlavor)) return false; ! return equals((DataFlavor) obj); } --- 718,724 ---- { if (! (obj instanceof DataFlavor)) return false; ! return equals((DataFlavor) obj); } *************** public class DataFlavor implements java. *** 780,786 **** * the MIME type string unchanged. * * @param type The MIME type. ! * * @return The MIME type. * * @deprecated --- 780,786 ---- * the MIME type string unchanged. * * @param type The MIME type. ! * * @return The MIME type. * * @deprecated *************** public class DataFlavor implements java. *** 797,803 **** * * @exception IOException If an error occurs. */ ! public void writeExternal(ObjectOutput stream) throws IOException { if (mimeType != null) --- 797,803 ---- * * @exception IOException If an error occurs. */ ! public void writeExternal(ObjectOutput stream) throws IOException { if (mimeType != null) *************** public class DataFlavor implements java. *** 821,827 **** * @exception ClassNotFoundException If the class for an object being restored * cannot be found. */ ! public void readExternal(ObjectInput stream) throws IOException, ClassNotFoundException { mimeType = (MimeType) stream.readObject(); --- 821,827 ---- * @exception ClassNotFoundException If the class for an object being restored * cannot be found. */ ! public void readExternal(ObjectInput stream) throws IOException, ClassNotFoundException { mimeType = (MimeType) stream.readObject(); *************** public class DataFlavor implements java. *** 913,925 **** { if (!transferable.isDataFlavorSupported(this)) throw new UnsupportedFlavorException(this); ! if (Reader.class.isAssignableFrom(representationClass)) return (Reader)transferable.getTransferData(this); ! if (String.class.isAssignableFrom(representationClass)) return new StringReader((String)transferable.getTransferData(this)); ! if (InputStream.class.isAssignableFrom(representationClass) && "text".equals(getPrimaryType())) { --- 913,925 ---- { if (!transferable.isDataFlavorSupported(this)) throw new UnsupportedFlavorException(this); ! if (Reader.class.isAssignableFrom(representationClass)) return (Reader)transferable.getTransferData(this); ! if (String.class.isAssignableFrom(representationClass)) return new StringReader((String)transferable.getTransferData(this)); ! if (InputStream.class.isAssignableFrom(representationClass) && "text".equals(getPrimaryType())) { *************** public class DataFlavor implements java. *** 929,935 **** encoding = "us-ascii"; return new InputStreamReader(in, encoding); } ! throw new UnsupportedFlavorException(this); } --- 929,935 ---- encoding = "us-ascii"; return new InputStreamReader(in, encoding); } ! throw new UnsupportedFlavorException(this); } *************** public class DataFlavor implements java. *** 965,971 **** { return Reader.class.isAssignableFrom(representationClass); } ! /** * Returns whether this DataFlavor is a valid text flavor for * this implementation of the Java platform. Only flavors equivalent to --- 965,971 ---- { return Reader.class.isAssignableFrom(representationClass); } ! /** * Returns whether this DataFlavor is a valid text flavor for * this implementation of the Java platform. Only flavors equivalent to *************** public class DataFlavor implements java. *** 975,986 **** * If this flavor supports the charset parameter, it must be equivalent to * DataFlavor.stringFlavor, or its representation must be * java.io.Reader, java.lang.String, ! * java.nio.CharBuffer, java.io.InputStream or * java.nio.ByteBuffer, ! * If the representation is java.io.InputStream or ! * java.nio.ByteBuffer, then this flavor's charset ! * parameter must be supported by this implementation of the Java platform. ! * If a charset is not specified, then the platform default charset, which * is always supported, is assumed. *

    * If this flavor does not support the charset parameter, its --- 975,986 ---- * If this flavor supports the charset parameter, it must be equivalent to * DataFlavor.stringFlavor, or its representation must be * java.io.Reader, java.lang.String, ! * java.nio.CharBuffer, java.io.InputStream or * java.nio.ByteBuffer, ! * If the representation is java.io.InputStream or ! * java.nio.ByteBuffer, then this flavor's charset ! * parameter must be supported by this implementation of the Java platform. ! * If a charset is not specified, then the platform default charset, which * is always supported, is assumed. *

    * If this flavor does not support the charset parameter, its *************** public class DataFlavor implements java. *** 996,1011 **** * @since 1.4 */ public boolean isFlavorTextType() { ! // FIXME: I'm not 100% sure if this implementation does the same like sun's does if(equals(DataFlavor.stringFlavor) || getPrimaryType().equals("text")) { String charset = getParameter("charset"); Class c = getRepresentationClass(); ! if(charset != null) ! { ! if(Reader.class.isAssignableFrom(c) ! || CharBuffer.class.isAssignableFrom(c) ! || String.class.isAssignableFrom(c)) { return true; } --- 996,1011 ---- * @since 1.4 */ public boolean isFlavorTextType() { ! // FIXME: I'm not 100% sure if this implementation does the same like sun's does if(equals(DataFlavor.stringFlavor) || getPrimaryType().equals("text")) { String charset = getParameter("charset"); Class c = getRepresentationClass(); ! if(charset != null) ! { ! if(Reader.class.isAssignableFrom(c) ! || CharBuffer.class.isAssignableFrom(c) ! || String.class.isAssignableFrom(c)) { return true; } *************** public class DataFlavor implements java. *** 1024,1027 **** return false; } } // class DataFlavor - --- 1024,1026 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/FlavorEvent.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/FlavorEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/FlavorEvent.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/FlavorEvent.java Tue Jan 11 19:46:05 2011 *************** import java.util.EventObject; *** 45,51 **** * Fired by a ClipBoard for registered FlavorListeners. * * @author Mark J. Wielaard (mark@klomp.org) ! * * @since 1.5 */ public class FlavorEvent extends EventObject --- 45,51 ---- * Fired by a ClipBoard for registered FlavorListeners. * * @author Mark J. Wielaard (mark@klomp.org) ! * * @since 1.5 */ public class FlavorEvent extends EventObject diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/FlavorListener.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/FlavorListener.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/FlavorListener.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/FlavorListener.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FlavorListener -- Interface for tagging an interest in FlavorEvents. Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FlavorListener -- Interface for tagging an interest in FlavorEvents. Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/MimeType.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/MimeType.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/MimeType.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/MimeType.java Tue Jan 11 19:46:05 2011 *************** class MimeType *** 124,130 **** * Returns the parameter for the key. * * @param key the parameter key ! * * @return the parameter for the key */ String getParameter(String key) --- 124,130 ---- * Returns the parameter for the key. * * @param key the parameter key ! * * @return the parameter for the key */ String getParameter(String key) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/StringSelection.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/StringSelection.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/StringSelection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/StringSelection.java Tue Jan 11 19:46:05 2011 *************** public class StringSelection implements *** 55,61 **** // List of flavors we support // XXX: DataFlavor.plainTextFlavor is deprecated. ! static final DataFlavor[] supported_flavors = { DataFlavor.stringFlavor, DataFlavor.plainTextFlavor }; --- 55,61 ---- // List of flavors we support // XXX: DataFlavor.plainTextFlavor is deprecated. ! static final DataFlavor[] supported_flavors = { DataFlavor.stringFlavor, DataFlavor.plainTextFlavor }; *************** lostOwnership(Clipboard clipboard, Trans *** 154,158 **** // FIXME: What does this do? } ! } // class StringSelection ! --- 154,157 ---- // FIXME: What does this do? } ! } // class StringSelection diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java Tue Jan 11 19:46:05 2011 *************** import java.util.WeakHashMap; *** 67,96 **** public final class SystemFlavorMap implements FlavorMap, FlavorTable { /** ! * The map which maps the thread's ClassLoaders to * SystemFlavorMaps. */ private static final Map systemFlavorMaps = new WeakHashMap(); ! /** * Constant which is used to prefix encode Java MIME types. */ private static final String GNU_JAVA_MIME_PREFIX = "gnu.java:"; ! /** ! * This map maps native Strings to lists of * DataFlavors */ private HashMap> nativeToFlavorMap = new HashMap>(); ! /** ! * This map maps DataFlavors to lists of native * Strings */ private HashMap> flavorToNativeMap = new HashMap>(); ! /** * Private constructor. */ --- 67,96 ---- public final class SystemFlavorMap implements FlavorMap, FlavorTable { /** ! * The map which maps the thread's ClassLoaders to * SystemFlavorMaps. */ private static final Map systemFlavorMaps = new WeakHashMap(); ! /** * Constant which is used to prefix encode Java MIME types. */ private static final String GNU_JAVA_MIME_PREFIX = "gnu.java:"; ! /** ! * This map maps native Strings to lists of * DataFlavors */ private HashMap> nativeToFlavorMap = new HashMap>(); ! /** ! * This map maps DataFlavors to lists of native * Strings */ private HashMap> flavorToNativeMap = new HashMap>(); ! /** * Private constructor. */ *************** public final class SystemFlavorMap imple *** 152,158 **** // Check valid mime type. MimeType type = new MimeType(mime); DataFlavor flav = new DataFlavor(mime); ! List flavs = nativeToFlavorMap.get(nat); if (flavs == null) { --- 152,158 ---- // Check valid mime type. MimeType type = new MimeType(mime); DataFlavor flav = new DataFlavor(mime); ! List flavs = nativeToFlavorMap.get(nat); if (flavs == null) { *************** public final class SystemFlavorMap imple *** 207,213 **** * @return A Map of data flavors to native type names. */ public Map getFlavorsForNatives (String[] natives) ! { return new HashMap(); } --- 207,213 ---- * @return A Map of data flavors to native type names. */ public Map getFlavorsForNatives (String[] natives) ! { return new HashMap(); } *************** public final class SystemFlavorMap imple *** 219,236 **** { ClassLoader classLoader = Thread.currentThread() .getContextClassLoader(); ! ! //if ContextClassLoader not set, use system default if (classLoader == null) { classLoader = ClassLoader.getSystemClassLoader(); } ! synchronized(systemFlavorMaps) { ! FlavorMap map = (FlavorMap) systemFlavorMaps.get(classLoader); ! if (map == null) { map = new SystemFlavorMap(); systemFlavorMaps.put(classLoader, map); --- 219,236 ---- { ClassLoader classLoader = Thread.currentThread() .getContextClassLoader(); ! ! //if ContextClassLoader not set, use system default if (classLoader == null) { classLoader = ClassLoader.getSystemClassLoader(); } ! synchronized(systemFlavorMaps) { ! FlavorMap map = (FlavorMap) systemFlavorMaps.get(classLoader); ! if (map == null) { map = new SystemFlavorMap(); systemFlavorMaps.put(classLoader, map); *************** public final class SystemFlavorMap imple *** 268,274 **** /** * Encodes a DataFlavor for use as a String ! * native. The format of an encoded DataFlavor is * implementation-dependent. The only restrictions are: *

      *
    • The encoded representation is null if and only if the --- 268,274 ---- /** * Encodes a DataFlavor for use as a String ! * native. The format of an encoded DataFlavor is * implementation-dependent. The only restrictions are: *
        *
      • The encoded representation is null if and only if the *************** public final class SystemFlavorMap imple *** 313,319 **** * Decodes a String native for use as a Java MIME type. * * @param name the String to decode ! * @return the decoded Java MIME type, or null if nat * is not an encoded String native */ public static String decodeJavaMIMEType (String name) --- 313,319 ---- * Decodes a String native for use as a Java MIME type. * * @param name the String to decode ! * @return the decoded Java MIME type, or null if nat * is not an encoded String native */ public static String decodeJavaMIMEType (String name) *************** public final class SystemFlavorMap imple *** 322,328 **** { return name.substring(GNU_JAVA_MIME_PREFIX.length()); } ! else return null; } --- 322,328 ---- { return name.substring(GNU_JAVA_MIME_PREFIX.length()); } ! else return null; } *************** public final class SystemFlavorMap imple *** 334,360 **** throws ClassNotFoundException { String javaMIMEType = decodeJavaMIMEType (name); ! if (javaMIMEType != null) return new DataFlavor (javaMIMEType); else return null; } ! /** ! * Returns a List of DataFlavors to which the specified ! * String native can be translated by the data transfer ! * subsystem. The List will be sorted from best ! * DataFlavor to worst. That is, the first DataFlavor ! * will best reflect data in the specified native to a Java ! * application. *

        ! * If the specified native is previously unknown to the data transfer ! * subsystem, and that native has been properly encoded, then invoking ! * this method will establish a mapping in both directions between the ! * specified native and a DataFlavor whose MIME type is a decoded * version of the native. ! */ public List getFlavorsForNative(String nat) { List ret = new ArrayList(); --- 334,360 ---- throws ClassNotFoundException { String javaMIMEType = decodeJavaMIMEType (name); ! if (javaMIMEType != null) return new DataFlavor (javaMIMEType); else return null; } ! /** ! * Returns a List of DataFlavors to which the specified ! * String native can be translated by the data transfer ! * subsystem. The List will be sorted from best ! * DataFlavor to worst. That is, the first DataFlavor ! * will best reflect data in the specified native to a Java ! * application. *

        ! * If the specified native is previously unknown to the data transfer ! * subsystem, and that native has been properly encoded, then invoking ! * this method will establish a mapping in both directions between the ! * specified native and a DataFlavor whose MIME type is a decoded * version of the native. ! */ public List getFlavorsForNative(String nat) { List ret = new ArrayList(); *************** public final class SystemFlavorMap imple *** 402,408 **** } return ret; } ! /** * Adds a mapping from a single String native to a single * DataFlavor. Unlike getFlavorsForNative, the --- 402,408 ---- } return ret; } ! /** * Adds a mapping from a single String native to a single * DataFlavor. Unlike getFlavorsForNative, the *************** public final class SystemFlavorMap imple *** 421,433 **** * @see #addUnencodedNativeForFlavor * @since 1.4 */ ! public synchronized void addFlavorForUnencodedNative(String nativeStr, DataFlavor flavor) { if ((nativeStr == null) || (flavor == null)) throw new NullPointerException(); List flavors = nativeToFlavorMap.get(nativeStr); ! if (flavors == null) { flavors = new ArrayList(); nativeToFlavorMap.put(nativeStr, flavors); --- 421,433 ---- * @see #addUnencodedNativeForFlavor * @since 1.4 */ ! public synchronized void addFlavorForUnencodedNative(String nativeStr, DataFlavor flavor) { if ((nativeStr == null) || (flavor == null)) throw new NullPointerException(); List flavors = nativeToFlavorMap.get(nativeStr); ! if (flavors == null) { flavors = new ArrayList(); nativeToFlavorMap.put(nativeStr, flavors); *************** public final class SystemFlavorMap imple *** 438,444 **** flavors.add(flavor); } } ! /** * Adds a mapping from the specified DataFlavor (and all * DataFlavors equal to the specified DataFlavor) --- 438,444 ---- flavors.add(flavor); } } ! /** * Adds a mapping from the specified DataFlavor (and all * DataFlavors equal to the specified DataFlavor) *************** public final class SystemFlavorMap imple *** 446,452 **** * Unlike getNativesForFlavor, the mapping will only be * established in one direction, and the native will not be encoded. To * establish a two-way mapping, call ! * addFlavorForUnencodedNative as well. The new mapping will * be of lower priority than any existing mapping. * This method has no effect if a mapping from the specified or equal * DataFlavor to the specified String native --- 446,452 ---- * Unlike getNativesForFlavor, the mapping will only be * established in one direction, and the native will not be encoded. To * establish a two-way mapping, call ! * addFlavorForUnencodedNative as well. The new mapping will * be of lower priority than any existing mapping. * This method has no effect if a mapping from the specified or equal * DataFlavor to the specified String native *************** public final class SystemFlavorMap imple *** 460,471 **** * @since 1.4 */ public synchronized void addUnencodedNativeForFlavor(DataFlavor flavor, ! String nativeStr) { if ((nativeStr == null) || (flavor == null)) throw new NullPointerException(); List natives = flavorToNativeMap.get(flavor); ! if (natives == null) { natives = new ArrayList(); flavorToNativeMap.put(flavor, natives); --- 460,471 ---- * @since 1.4 */ public synchronized void addUnencodedNativeForFlavor(DataFlavor flavor, ! String nativeStr) { if ((nativeStr == null) || (flavor == null)) throw new NullPointerException(); List natives = flavorToNativeMap.get(flavor); ! if (natives == null) { natives = new ArrayList(); flavorToNativeMap.put(flavor, natives); *************** public final class SystemFlavorMap imple *** 476,486 **** natives.add(nativeStr); } } ! /** * Discards the current mappings for the specified DataFlavor * and all DataFlavors equal to the specified ! * DataFlavor, and creates new mappings to the * specified String natives. * Unlike getNativesForFlavor, the mappings will only be * established in one direction, and the natives will not be encoded. To --- 476,486 ---- natives.add(nativeStr); } } ! /** * Discards the current mappings for the specified DataFlavor * and all DataFlavors equal to the specified ! * DataFlavor, and creates new mappings to the * specified String natives. * Unlike getNativesForFlavor, the mappings will only be * established in one direction, and the natives will not be encoded. To *************** public final class SystemFlavorMap imple *** 492,498 **** * If the array contains several elements that reference equal * String natives, this method will establish new mappings * for the first of those elements and ignore the rest of them. ! *

        * It is recommended that client code not reset mappings established by the * data transfer subsystem. This method should only be used for * application-level mappings. --- 492,498 ---- * If the array contains several elements that reference equal * String natives, this method will establish new mappings * for the first of those elements and ignore the rest of them. ! *

        * It is recommended that client code not reset mappings established by the * data transfer subsystem. This method should only be used for * application-level mappings. *************** public final class SystemFlavorMap imple *** 506,523 **** * @since 1.4 */ public synchronized void setNativesForFlavor(DataFlavor flavor, ! String[] natives) { if ((natives == null) || (flavor == null)) throw new NullPointerException(); ! flavorToNativeMap.remove(flavor); ! for (int i = 0; i < natives.length; i++) { addUnencodedNativeForFlavor(flavor, natives[i]); } } ! /** * Discards the current mappings for the specified String * native, and creates new mappings to the specified --- 506,523 ---- * @since 1.4 */ public synchronized void setNativesForFlavor(DataFlavor flavor, ! String[] natives) { if ((natives == null) || (flavor == null)) throw new NullPointerException(); ! flavorToNativeMap.remove(flavor); ! for (int i = 0; i < natives.length; i++) { addUnencodedNativeForFlavor(flavor, natives[i]); } } ! /** * Discards the current mappings for the specified String * native, and creates new mappings to the specified *************** public final class SystemFlavorMap imple *** 546,558 **** * @since 1.4 */ public synchronized void setFlavorsForNative(String nativeStr, ! DataFlavor[] flavors) { if ((nativeStr == null) || (flavors == null)) throw new NullPointerException(); ! nativeToFlavorMap.remove(nativeStr); ! for (int i = 0; i < flavors.length; i++) { addFlavorForUnencodedNative(nativeStr, flavors[i]); } --- 546,558 ---- * @since 1.4 */ public synchronized void setFlavorsForNative(String nativeStr, ! DataFlavor[] flavors) { if ((nativeStr == null) || (flavors == null)) throw new NullPointerException(); ! nativeToFlavorMap.remove(nativeStr); ! for (int i = 0; i < flavors.length; i++) { addFlavorForUnencodedNative(nativeStr, flavors[i]); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/Transferable.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/Transferable.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/Transferable.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/Transferable.java Tue Jan 11 19:46:05 2011 *************** public interface Transferable *** 80,83 **** throws UnsupportedFlavorException, IOException; } // interface Transferable - --- 80,82 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/datatransfer/UnsupportedFlavorException.java gcc-4.6.0/libjava/classpath/java/awt/datatransfer/UnsupportedFlavorException.java *** gcc-4.5.2/libjava/classpath/java/awt/datatransfer/UnsupportedFlavorException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/datatransfer/UnsupportedFlavorException.java Tue Jan 11 19:46:05 2011 *************** public class UnsupportedFlavorException *** 62,65 **** { super(flavor == null ? null : flavor.getHumanPresentableName()); } ! } // class UnsupportedFlavorException --- 62,65 ---- { super(flavor == null ? null : flavor.getHumanPresentableName()); } ! } // class UnsupportedFlavorException diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/Autoscroll.java gcc-4.6.0/libjava/classpath/java/awt/dnd/Autoscroll.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/Autoscroll.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/Autoscroll.java Tue Jan 11 19:46:05 2011 *************** public interface Autoscroll *** 67,70 **** void autoscroll (Point location); } // interface Autoscroll - --- 67,69 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DnDEventMulticaster.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DnDEventMulticaster.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DnDEventMulticaster.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DnDEventMulticaster.java Tue Jan 11 19:46:05 2011 *************** class DnDEventMulticaster extends AWTEve *** 47,53 **** { super (a, b); } ! public static DragSourceListener add (DragSourceListener a, DragSourceListener b) { --- 47,53 ---- { super (a, b); } ! public static DragSourceListener add (DragSourceListener a, DragSourceListener b) { *************** class DnDEventMulticaster extends AWTEve *** 59,65 **** { return (DragSourceMotionListener) addInternal (a, b); } ! public static DragSourceListener remove (DragSourceListener a, DragSourceListener b) { --- 59,65 ---- { return (DragSourceMotionListener) addInternal (a, b); } ! public static DragSourceListener remove (DragSourceListener a, DragSourceListener b) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DragGestureEvent.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DragGestureEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DragGestureEvent.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DragGestureEvent.java Tue Jan 11 19:46:05 2011 *************** public class DragGestureEvent extends Ev *** 87,153 **** /** * Returns the source casted as a DragGestureRecognizer. ! * * @return the source casted as a DragGestureRecognizer. */ public DragGestureRecognizer getSourceAsDragGestureRecognizer() { return (DragGestureRecognizer) getSource(); } ! /** * Returns the Component corresponding to this. ! * * @return the Component corresponding to this. */ public Component getComponent() { return component; } ! /** * Gets the DragSource corresponding to this. ! * * @return the DragSource corresponding to this. */ public DragSource getDragSource() { return dragSource; } ! /** * Returns the origin of the drag. ! * * @return the origin of the drag. */ public Point getDragOrigin() { return origin; } ! /** * Gets an iterator representation of the List of events. ! * * @return an iterator representation of the List of events. */ public Iterator iterator() { return events.iterator(); } ! /** * Gets an array representation of the List of events. ! * * @return an array representation of the List of events. */ public Object[] toArray() { return events.toArray(); } ! /** * Gets an array representation of the List of events. ! * * @param array - the array to store the events in. * @return an array representation of the List of events. */ --- 87,153 ---- /** * Returns the source casted as a DragGestureRecognizer. ! * * @return the source casted as a DragGestureRecognizer. */ public DragGestureRecognizer getSourceAsDragGestureRecognizer() { return (DragGestureRecognizer) getSource(); } ! /** * Returns the Component corresponding to this. ! * * @return the Component corresponding to this. */ public Component getComponent() { return component; } ! /** * Gets the DragSource corresponding to this. ! * * @return the DragSource corresponding to this. */ public DragSource getDragSource() { return dragSource; } ! /** * Returns the origin of the drag. ! * * @return the origin of the drag. */ public Point getDragOrigin() { return origin; } ! /** * Gets an iterator representation of the List of events. ! * * @return an iterator representation of the List of events. */ public Iterator iterator() { return events.iterator(); } ! /** * Gets an array representation of the List of events. ! * * @return an array representation of the List of events. */ public Object[] toArray() { return events.toArray(); } ! /** * Gets an array representation of the List of events. ! * * @param array - the array to store the events in. * @return an array representation of the List of events. */ *************** public class DragGestureEvent extends Ev *** 158,174 **** /** * Gets the user's preferred action. ! * * @return the user's preferred action. */ public int getDragAction() { return action; } ! /** * Get the event that triggered this gesture. ! * * @return the event that triggered this gesture. */ public InputEvent getTriggerEvent() --- 158,174 ---- /** * Gets the user's preferred action. ! * * @return the user's preferred action. */ public int getDragAction() { return action; } ! /** * Get the event that triggered this gesture. ! * * @return the event that triggered this gesture. */ public InputEvent getTriggerEvent() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java Tue Jan 11 19:46:05 2011 *************** public abstract class DragGestureRecogni *** 164,170 **** { if(dragGestureListener != null) dragGestureListener.dragGestureRecognized ! (new DragGestureEvent(this, dragAction, p, events)); resetRecognizer(); } --- 164,170 ---- { if(dragGestureListener != null) dragGestureListener.dragGestureRecognized ! (new DragGestureEvent(this, dragAction, p, events)); resetRecognizer(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DragSource.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DragSource.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DragSource.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DragSource.java Tue Jan 11 19:46:05 2011 *************** public class DragSource implements Seria *** 74,80 **** private transient FlavorMap flavorMap = SystemFlavorMap.getDefaultFlavorMap (); private transient DragSourceListener dragSourceListener; private transient DragSourceMotionListener dragSourceMotionListener; ! private static DragSource ds; private DragSourceContextPeer peer; private DragSourceContext context; --- 74,80 ---- private transient FlavorMap flavorMap = SystemFlavorMap.getDefaultFlavorMap (); private transient DragSourceListener dragSourceListener; private transient DragSourceMotionListener dragSourceMotionListener; ! private static DragSource ds; private DragSourceContextPeer peer; private DragSourceContext context; *************** public class DragSource implements Seria *** 95,101 **** /** * Gets the default drag source. ! * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. */ public static DragSource getDefaultDragSource() --- 95,101 ---- /** * Gets the default drag source. ! * * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. */ public static DragSource getDefaultDragSource() *************** public class DragSource implements Seria *** 139,152 **** // This function sends the same message to the context, which then forwards // it to the peer, passing itself as a parameter. Now, the native system has // access to the Transferable through the context. ! try { flavorMap = map; ! if (peer == null) peer = Toolkit.getDefaultToolkit().createDragSourceContextPeer(trigger); ! if (context == null) context = createDragSourceContext(peer, trigger, dragCursor, --- 139,152 ---- // This function sends the same message to the context, which then forwards // it to the peer, passing itself as a parameter. Now, the native system has // access to the Transferable through the context. ! try { flavorMap = map; ! if (peer == null) peer = Toolkit.getDefaultToolkit().createDragSourceContextPeer(trigger); ! if (context == null) context = createDragSourceContext(peer, trigger, dragCursor, *************** public class DragSource implements Seria *** 210,216 **** /** * Creates the DragSourceContext to handle this drag. * ! * @exception IllegalArgumentException * @exception NullPointerException If dscp, dgl, dragImage or t is null. */ protected DragSourceContext --- 210,216 ---- /** * Creates the DragSourceContext to handle this drag. * ! * @exception IllegalArgumentException * @exception NullPointerException If dscp, dgl, dragImage or t is null. */ protected DragSourceContext *************** public class DragSource implements Seria *** 225,240 **** { return flavorMap; } ! public T ! createDragGestureRecognizer(Class recognizer, ! Component c, ! int actions, ! DragGestureListener dgl) { return (T) Toolkit.getDefaultToolkit().createDragGestureRecognizer(recognizer, ! this, c, ! actions, dgl); } public DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, --- 225,240 ---- { return flavorMap; } ! public T ! createDragGestureRecognizer(Class recognizer, ! Component c, ! int actions, ! DragGestureListener dgl) { return (T) Toolkit.getDefaultToolkit().createDragGestureRecognizer(recognizer, ! this, c, ! actions, dgl); } public DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, *************** public class DragSource implements Seria *** 301,320 **** { if (listenerType == DragSourceListener.class) return DnDEventMulticaster.getListeners (dragSourceListener, ! listenerType); if (listenerType == DragSourceMotionListener.class) return DnDEventMulticaster.getListeners (dragSourceMotionListener, ! listenerType); // Return an empty EventListener array. return (T[]) new EventListener [0]; } ! /** * TODO * @return TODO ! * * @since 1.5 */ public static int getDragThreshold() --- 301,320 ---- { if (listenerType == DragSourceListener.class) return DnDEventMulticaster.getListeners (dragSourceListener, ! listenerType); if (listenerType == DragSourceMotionListener.class) return DnDEventMulticaster.getListeners (dragSourceMotionListener, ! listenerType); // Return an empty EventListener array. return (T[]) new EventListener [0]; } ! /** * TODO * @return TODO ! * * @since 1.5 */ public static int getDragThreshold() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DragSourceContext.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DragSourceContext.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DragSourceContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DragSourceContext.java Tue Jan 11 19:46:05 2011 *************** public class DragSourceContext *** 72,78 **** private int sourceActions; private Image image; private Point offset; ! /** * Initializes a drag source context. * --- 72,78 ---- private int sourceActions; private Image image; private Point offset; ! /** * Initializes a drag source context. * *************** public class DragSourceContext *** 81,93 **** * or if the source actions for the DragGestureRecognizer associated with the * trigger event are equal to DnDConstants.ACTION_NONE. * @exception NullPointerException If peer, trans or trigger is null or if the ! * image is not null but the offset is. */ public DragSourceContext (DragSourceContextPeer peer, DragGestureEvent trigger, Cursor cursor, Image image, Point offset, Transferable trans, DragSourceListener dsl) ! { if (peer == null || trigger == null || trans == null || (image != null && offset == null)) --- 81,93 ---- * or if the source actions for the DragGestureRecognizer associated with the * trigger event are equal to DnDConstants.ACTION_NONE. * @exception NullPointerException If peer, trans or trigger is null or if the ! * image is not null but the offset is. */ public DragSourceContext (DragSourceContextPeer peer, DragGestureEvent trigger, Cursor cursor, Image image, Point offset, Transferable trans, DragSourceListener dsl) ! { if (peer == null || trigger == null || trans == null || (image != null && offset == null)) *************** public class DragSourceContext *** 108,114 **** this.transferable = trans; this.dragSourceListener = dsl; this.sourceActions = trigger.getSourceAsDragGestureRecognizer().getSourceActions(); ! setCursor(cursor); updateCurrentCursor(trigger.getDragAction(), sourceActions, DEFAULT); } --- 108,114 ---- this.transferable = trans; this.dragSourceListener = dsl; this.sourceActions = trigger.getSourceAsDragGestureRecognizer().getSourceActions(); ! setCursor(cursor); updateCurrentCursor(trigger.getDragAction(), sourceActions, DEFAULT); } *************** public class DragSourceContext *** 116,122 **** /** * Returns the DragSource object associated with the * DragGestureEvent. ! * * @return the DragSource associated with the trigger. */ public DragSource getDragSource() --- 116,122 ---- /** * Returns the DragSource object associated with the * DragGestureEvent. ! * * @return the DragSource associated with the trigger. */ public DragSource getDragSource() *************** public class DragSourceContext *** 126,132 **** /** * Returns the component associated with this. ! * * @return the component associated with the trigger. */ public Component getComponent() --- 126,132 ---- /** * Returns the component associated with this. ! * * @return the component associated with the trigger. */ public Component getComponent() *************** public class DragSourceContext *** 136,142 **** /** * Gets the trigger associated with this. ! * * @return the trigger. */ public DragGestureEvent getTrigger() --- 136,142 ---- /** * Gets the trigger associated with this. ! * * @return the trigger. */ public DragGestureEvent getTrigger() *************** public class DragSourceContext *** 146,152 **** /** * Returns the source actions for the DragGestureRecognizer. ! * * @return the source actions for DragGestureRecognizer. */ public int getSourceActions() --- 146,152 ---- /** * Returns the source actions for the DragGestureRecognizer. ! * * @return the source actions for DragGestureRecognizer. */ public int getSourceActions() *************** public class DragSourceContext *** 158,164 **** /** * Sets the cursor for this drag operation to the specified cursor. ! * * @param cursor c - the Cursor to use, or null to use the default drag * cursor. */ --- 158,164 ---- /** * Sets the cursor for this drag operation to the specified cursor. ! * * @param cursor c - the Cursor to use, or null to use the default drag * cursor. */ *************** public class DragSourceContext *** 175,181 **** /** * Returns the current cursor or null if the default * drag cursor is used. ! * * @return the current cursor or null. */ public Cursor getCursor() --- 175,181 ---- /** * Returns the current cursor or null if the default * drag cursor is used. ! * * @return the current cursor or null. */ public Cursor getCursor() *************** public class DragSourceContext *** 215,271 **** /** * Calls dragEnter on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceDragEvent */ public void dragEnter(DragSourceDragEvent e) { if (dragSourceListener != null) dragSourceListener.dragEnter(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) dsl[i].dragEnter(e); ! updateCurrentCursor(e.getDropAction(), e.getTargetActions(), ENTER); } /** * Calls dragOver on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceDragEvent */ public void dragOver(DragSourceDragEvent e) { if (dragSourceListener != null) dragSourceListener.dragOver(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) dsl[i].dragOver(e); ! updateCurrentCursor(e.getDropAction(), e.getTargetActions(), OVER); } ! /** * Calls dragExit on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceEvent */ public void dragExit(DragSourceEvent e) { if (dragSourceListener != null) dragSourceListener.dragExit(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) dsl[i].dragExit(e); ! updateCurrentCursor(DnDConstants.ACTION_NONE, DnDConstants.ACTION_NONE, DEFAULT); } --- 215,271 ---- /** * Calls dragEnter on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceDragEvent */ public void dragEnter(DragSourceDragEvent e) { if (dragSourceListener != null) dragSourceListener.dragEnter(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) dsl[i].dragEnter(e); ! updateCurrentCursor(e.getDropAction(), e.getTargetActions(), ENTER); } /** * Calls dragOver on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceDragEvent */ public void dragOver(DragSourceDragEvent e) { if (dragSourceListener != null) dragSourceListener.dragOver(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) dsl[i].dragOver(e); ! updateCurrentCursor(e.getDropAction(), e.getTargetActions(), OVER); } ! /** * Calls dragExit on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceEvent */ public void dragExit(DragSourceEvent e) { if (dragSourceListener != null) dragSourceListener.dragExit(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) dsl[i].dragExit(e); ! updateCurrentCursor(DnDConstants.ACTION_NONE, DnDConstants.ACTION_NONE, DEFAULT); } *************** public class DragSourceContext *** 273,305 **** /** * Calls dropActionChanged on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceDragEvent */ public void dropActionChanged(DragSourceDragEvent e) { if (dragSourceListener != null) dragSourceListener.dropActionChanged(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) dsl[i].dropActionChanged(e); ! updateCurrentCursor(e.getDropAction(), e.getTargetActions(), CHANGED); } /** * Calls dragDropEnd on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceDropEvent */ public void dragDropEnd(DragSourceDropEvent e) { if (dragSourceListener != null) dragSourceListener.dragDropEnd(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) --- 273,305 ---- /** * Calls dropActionChanged on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceDragEvent */ public void dropActionChanged(DragSourceDragEvent e) { if (dragSourceListener != null) dragSourceListener.dropActionChanged(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) dsl[i].dropActionChanged(e); ! updateCurrentCursor(e.getDropAction(), e.getTargetActions(), CHANGED); } /** * Calls dragDropEnd on the listeners registered with this * and with the DragSource. ! * * @param e - the DragSourceDropEvent */ public void dragDropEnd(DragSourceDropEvent e) { if (dragSourceListener != null) dragSourceListener.dragDropEnd(e); ! DragSource ds = getDragSource(); DragSourceListener[] dsl = ds.getDragSourceListeners(); for (int i = 0; i < dsl.length; i++) *************** public class DragSourceContext *** 308,314 **** /** * Calls dragMouseMoved on the listeners registered with the DragSource. ! * * @param e - the DragSourceDragEvent */ public void dragMouseMoved(DragSourceDragEvent e) --- 308,314 ---- /** * Calls dragMouseMoved on the listeners registered with the DragSource. ! * * @param e - the DragSourceDragEvent */ public void dragMouseMoved(DragSourceDragEvent e) *************** public class DragSourceContext *** 321,327 **** /** * Returns the Transferable set with this object. ! * * @return the transferable. */ public Transferable getTransferable() --- 321,327 ---- /** * Returns the Transferable set with this object. ! * * @return the transferable. */ public Transferable getTransferable() *************** public class DragSourceContext *** 333,339 **** * This function sets the drag cursor for the specified operation, actions and * status if the default drag cursor is active. Otherwise, the cursor is not * updated in any way. ! * * @param dropOp - the current operation. * @param targetAct - the supported actions. * @param status - the status of the cursor (constant). --- 333,339 ---- * This function sets the drag cursor for the specified operation, actions and * status if the default drag cursor is active. Otherwise, the cursor is not * updated in any way. ! * * @param dropOp - the current operation. * @param targetAct - the supported actions. * @param status - the status of the cursor (constant). *************** public class DragSourceContext *** 370,376 **** newCursor = DragSource.DefaultCopyDrop; } } ! if (cursor == null || ! cursor.equals(newCursor)) { cursor = newCursor; --- 370,376 ---- newCursor = DragSource.DefaultCopyDrop; } } ! if (cursor == null || ! cursor.equals(newCursor)) { cursor = newCursor; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DragSourceDropEvent.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DragSourceDropEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DragSourceDropEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DragSourceDropEvent.java Tue Jan 11 19:46:05 2011 *************** public class DragSourceDropEvent extends *** 60,66 **** this.dropAction = 0; this.dropSuccess = false; } ! public DragSourceDropEvent (DragSourceContext context, int dropAction, boolean dropSuccess) { --- 60,66 ---- this.dropAction = 0; this.dropSuccess = false; } ! public DragSourceDropEvent (DragSourceContext context, int dropAction, boolean dropSuccess) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DragSourceEvent.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DragSourceEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DragSourceEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DragSourceEvent.java Tue Jan 11 19:46:05 2011 *************** public class DragSourceEvent extends Eve *** 50,56 **** * Compatible with JDK 1.2+ */ private static final long serialVersionUID = -763287114604032641L; ! private final boolean locationSpecified; private final int x; private final int y; --- 50,56 ---- * Compatible with JDK 1.2+ */ private static final long serialVersionUID = -763287114604032641L; ! private final boolean locationSpecified; private final int x; private final int y; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTarget.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTarget.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTarget.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTarget.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DropTarget.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DropTarget.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DropTarget *** 164,170 **** private DropTargetListener dropTargetListener; private DropTarget.DropTargetAutoScroller autoscroller; private boolean active = true; ! /** * Creates a DropTarget object. * --- 164,170 ---- private DropTargetListener dropTargetListener; private DropTarget.DropTargetAutoScroller autoscroller; private boolean active = true; ! /** * Creates a DropTarget object. * *************** public class DropTarget *** 175,181 **** { this (null, DnDConstants.ACTION_COPY_OR_MOVE, null, true, null); } ! /** * Creates a DropTarget object. * --- 175,181 ---- { this (null, DnDConstants.ACTION_COPY_OR_MOVE, null, true, null); } ! /** * Creates a DropTarget object. * *************** public class DropTarget *** 186,192 **** { this (c, DnDConstants.ACTION_COPY_OR_MOVE, dtl, true, null); } ! /** * Creates a DropTarget object. * --- 186,192 ---- { this (c, DnDConstants.ACTION_COPY_OR_MOVE, dtl, true, null); } ! /** * Creates a DropTarget object. * *************** public class DropTarget *** 197,203 **** { this (c, i, dtl, true, null); } ! /** * Creates a DropTarget object. * --- 197,203 ---- { this (c, i, dtl, true, null); } ! /** * Creates a DropTarget object. * *************** public class DropTarget *** 208,214 **** { this (c, i, dtl, b, null); } ! /** * Creates a DropTarget object. * --- 208,214 ---- { this (c, i, dtl, b, null); } ! /** * Creates a DropTarget object. * *************** public class DropTarget *** 224,237 **** setComponent(c); setDefaultActions(i); dropTargetListener = dtl; ! if (fm == null) flavorMap = SystemFlavorMap.getDefaultFlavorMap(); else flavorMap = fm; ! setActive (b); ! if (c != null) c.setDropTarget(this); } --- 224,237 ---- setComponent(c); setDefaultActions(i); dropTargetListener = dtl; ! if (fm == null) flavorMap = SystemFlavorMap.getDefaultFlavorMap(); else flavorMap = fm; ! setActive (b); ! if (c != null) c.setDropTarget(this); } *************** public class DropTarget *** 284,290 **** /** * Adds a new DropTargetListener. ! * * @exception TooManyListenersException Sun's JDK does not, despite * documentation, throw this exception here when you install an additional * DropTargetListener. So to be compatible, we do the same --- 284,290 ---- /** * Adds a new DropTargetListener. ! * * @exception TooManyListenersException Sun's JDK does not, despite * documentation, throw this exception here when you install an additional * DropTargetListener. So to be compatible, we do the same *************** public class DropTarget *** 295,307 **** { if (dtl == null) return; ! if (dtl.equals(this)) throw new IllegalArgumentException(); ! if (dropTargetListener != null) throw new TooManyListenersException(); ! dropTargetListener = dtl; } --- 295,307 ---- { if (dtl == null) return; ! if (dtl.equals(this)) throw new IllegalArgumentException(); ! if (dropTargetListener != null) throw new TooManyListenersException(); ! dropTargetListener = dtl; } *************** public class DropTarget *** 397,403 **** { if (dropTargetContext == null) dropTargetContext = createDropTargetContext (); ! return dropTargetContext; } --- 397,403 ---- { if (dropTargetContext == null) dropTargetContext = createDropTargetContext (); ! return dropTargetContext; } *************** public class DropTarget *** 405,411 **** { if (dropTargetContext == null) dropTargetContext = new DropTargetContext (this); ! return dropTargetContext; } --- 405,411 ---- { if (dropTargetContext == null) dropTargetContext = new DropTargetContext (this); ! return dropTargetContext; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTargetContext.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTargetContext.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTargetContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTargetContext.java Tue Jan 11 19:46:05 2011 *************** public class DropTargetContext implement *** 66,72 **** this.transferable = t; this.isLocal = local; } ! public DataFlavor[] getTransferDataFlavors() { return transferable.getTransferDataFlavors(); --- 66,72 ---- this.transferable = t; this.isLocal = local; } ! public DataFlavor[] getTransferDataFlavors() { return transferable.getTransferDataFlavors(); *************** public class DropTargetContext implement *** 156,162 **** protected void rejectDrop () { if (dtcp != null) ! dtcp.rejectDrop(); } protected DataFlavor[] getCurrentDataFlavors () --- 156,162 ---- protected void rejectDrop () { if (dtcp != null) ! dtcp.rejectDrop(); } protected DataFlavor[] getCurrentDataFlavors () *************** public class DropTargetContext implement *** 181,187 **** * * @exception InvalidDnDOperationException If a drag is not outstanding. */ ! protected Transferable getTransferable() throws InvalidDnDOperationException { // FIXME: Implement this --- 181,187 ---- * * @exception InvalidDnDOperationException If a drag is not outstanding. */ ! protected Transferable getTransferable() throws InvalidDnDOperationException { // FIXME: Implement this diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTargetDragEvent.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTargetDragEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTargetDragEvent.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTargetDragEvent.java Tue Jan 11 19:46:05 2011 *************** public class DropTargetDragEvent extends *** 89,98 **** | DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK | DnDConstants.ACTION_REFERENCE; ! if (~(srcActions ^ srcActionsMask) != 0) throw new IllegalArgumentException (); ! this.dropAction = dropAction; this.srcActions = srcActions; this.location = location; --- 89,98 ---- | DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK | DnDConstants.ACTION_REFERENCE; ! if (~(srcActions ^ srcActionsMask) != 0) throw new IllegalArgumentException (); ! this.dropAction = dropAction; this.srcActions = srcActions; this.location = location; *************** public class DropTargetDragEvent extends *** 107,118 **** { return context.getCurrentDataFlavors (); } ! public List getCurrentDataFlavorsAsList () { return context.getCurrentDataFlavorsAsList (); } ! public int getDropAction() { return dropAction & ((DropTargetContext) source).getTargetActions(); --- 107,118 ---- { return context.getCurrentDataFlavors (); } ! public List getCurrentDataFlavorsAsList () { return context.getCurrentDataFlavorsAsList (); } ! public int getDropAction() { return dropAction & ((DropTargetContext) source).getTargetActions(); *************** public class DropTargetDragEvent extends *** 137,148 **** { context.rejectDrag (); } ! /** * TODO ! * * @return ! * * @since 1.5 */ public Transferable getTransferable() --- 137,148 ---- { context.rejectDrag (); } ! /** * TODO ! * * @return ! * * @since 1.5 */ public Transferable getTransferable() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTargetDropEvent.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTargetDropEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTargetDropEvent.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTargetDropEvent.java Tue Jan 11 19:46:05 2011 *************** public class DropTargetDropEvent extends *** 56,62 **** private final int actions; private final Point location; private final boolean isLocalTx; ! /** * Initializes a DropTargetDropEvent. By default this constructor * assumes that the target is not int same JVM. --- 56,62 ---- private final int actions; private final Point location; private final boolean isLocalTx; ! /** * Initializes a DropTargetDropEvent. By default this constructor * assumes that the target is not int same JVM. *************** public class DropTargetDropEvent extends *** 103,118 **** | DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK | DnDConstants.ACTION_REFERENCE; ! if (~(actions ^ actionsMask) != 0) throw new IllegalArgumentException(); ! this.dropAction = dropAction; this.actions = actions; this.location = location; this.isLocalTx = isLocalTx; } ! public Point getLocation() { return location; --- 103,118 ---- | DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK | DnDConstants.ACTION_REFERENCE; ! if (~(actions ^ actionsMask) != 0) throw new IllegalArgumentException(); ! this.dropAction = dropAction; this.actions = actions; this.location = location; this.isLocalTx = isLocalTx; } ! public Point getLocation() { return location; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTargetEvent.java gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTargetEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/DropTargetEvent.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/DropTargetEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DropTarget.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DropTarget.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class DropTargetEvent extends Eve *** 54,60 **** super (context); this.context = context; } ! public DropTargetContext getDropTargetContext () { return context; --- 54,60 ---- super (context); this.context = context; } ! public DropTargetContext getDropTargetContext () { return context; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/MouseDragGestureRecognizer.java gcc-4.6.0/libjava/classpath/java/awt/dnd/MouseDragGestureRecognizer.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/MouseDragGestureRecognizer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/MouseDragGestureRecognizer.java Tue Jan 11 19:46:05 2011 *************** import java.awt.event.MouseMotionListene *** 45,51 **** /** * @author Michael Koch (konqueror@gmx.de) */ ! public abstract class MouseDragGestureRecognizer extends DragGestureRecognizer implements MouseListener, MouseMotionListener { --- 45,51 ---- /** * @author Michael Koch (konqueror@gmx.de) */ ! public abstract class MouseDragGestureRecognizer extends DragGestureRecognizer implements MouseListener, MouseMotionListener { *************** public abstract class MouseDragGestureRe *** 53,59 **** * Creates a MouseDragGestureRecognizer object. */ protected MouseDragGestureRecognizer (DragSource ds, Component c, int act, ! DragGestureListener dgl) { super (ds, c, act, dgl); } --- 53,59 ---- * Creates a MouseDragGestureRecognizer object. */ protected MouseDragGestureRecognizer (DragSource ds, Component c, int act, ! DragGestureListener dgl) { super (ds, c, act, dgl); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/dnd/peer/DropTargetContextPeer.java gcc-4.6.0/libjava/classpath/java/awt/dnd/peer/DropTargetContextPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/dnd/peer/DropTargetContextPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/dnd/peer/DropTargetContextPeer.java Tue Jan 11 19:46:05 2011 *************** import java.awt.dnd.InvalidDnDOperationE *** 45,55 **** /** ! * Used to control state of recipient protocol from the * DropTargetListener. Occurs when a Component ! * with an associated DropTarget and visible geometry is first * intersected by a logical cursor. ! * * @author Michael Koch (konqueror@gmx.de) */ public interface DropTargetContextPeer --- 45,55 ---- /** ! * Used to control state of recipient protocol from the * DropTargetListener. Occurs when a Component ! * with an associated DropTarget and visible geometry is first * intersected by a logical cursor. ! * * @author Michael Koch (konqueror@gmx.de) */ public interface DropTargetContextPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/AWTEventListener.java gcc-4.6.0/libjava/classpath/java/awt/event/AWTEventListener.java *** gcc-4.5.2/libjava/classpath/java/awt/event/AWTEventListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/event/AWTEventListener.java Tue Jan 11 19:46:05 2011 *************** public interface AWTEventListener extend *** 62,65 **** * @param event the AWTEvent that was dispatched */ void eventDispatched(AWTEvent event); ! } // interface AWTEventListener --- 62,65 ---- * @param event the AWTEvent that was dispatched */ void eventDispatched(AWTEvent event); ! } // interface AWTEventListener diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/ActionEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/ActionEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/ActionEvent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/event/ActionEvent.java Tue Jan 11 19:46:05 2011 *************** public class ActionEvent extends AWTEven *** 205,212 **** public String paramString() { CPStringBuilder s = new CPStringBuilder(id == ACTION_PERFORMED ! ? "ACTION_PERFORMED,cmd=" ! : "unknown type,cmd="); s.append(actionCommand).append(",when=").append(when).append(",modifiers"); int len = s.length(); s.setLength(len + 1); --- 205,212 ---- public String paramString() { CPStringBuilder s = new CPStringBuilder(id == ACTION_PERFORMED ! ? "ACTION_PERFORMED,cmd=" ! : "unknown type,cmd="); s.append(actionCommand).append(",when=").append(when).append(",modifiers"); int len = s.length(); s.setLength(len + 1); *************** public class ActionEvent extends AWTEven *** 225,228 **** s.setCharAt(len, '='); return s.toString(); } ! } // class ActionEvent --- 225,228 ---- s.setCharAt(len, '='); return s.toString(); } ! } // class ActionEvent diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/ComponentAdapter.java gcc-4.6.0/libjava/classpath/java/awt/event/ComponentAdapter.java *** gcc-4.5.2/libjava/classpath/java/awt/event/ComponentAdapter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/event/ComponentAdapter.java Tue Jan 11 19:46:05 2011 *************** public abstract class ComponentAdapter i *** 94,97 **** public void componentHidden(ComponentEvent event) { } ! } // class ComponentAdapter --- 94,97 ---- public void componentHidden(ComponentEvent event) { } ! } // class ComponentAdapter diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/ComponentEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/ComponentEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/ComponentEvent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/event/ComponentEvent.java Tue Jan 11 19:46:05 2011 *************** public class ComponentEvent extends AWTE *** 117,128 **** public String paramString() { CPStringBuilder s = new CPStringBuilder(); ! // Unlike Sun, we don't throw NullPointerException or ClassCastException // when source was illegally changed. if (id == COMPONENT_MOVED) s.append("COMPONENT_MOVED "); ! else if (id == COMPONENT_RESIZED) s.append("COMPONENT_RESIZED "); else if (id == COMPONENT_SHOWN) s.append("COMPONENT_SHOWN "); --- 117,128 ---- public String paramString() { CPStringBuilder s = new CPStringBuilder(); ! // Unlike Sun, we don't throw NullPointerException or ClassCastException // when source was illegally changed. if (id == COMPONENT_MOVED) s.append("COMPONENT_MOVED "); ! else if (id == COMPONENT_RESIZED) s.append("COMPONENT_RESIZED "); else if (id == COMPONENT_SHOWN) s.append("COMPONENT_SHOWN "); *************** public class ComponentEvent extends AWTE *** 138,142 **** return s.toString(); } ! } // class ComponentEvent --- 138,142 ---- return s.toString(); } ! } // class ComponentEvent diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/InputEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/InputEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/InputEvent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/event/InputEvent.java Tue Jan 11 19:46:05 2011 *************** public abstract class InputEvent extends *** 306,312 **** } /** ! * This method returns the old-style modifiers in effect for this event. * Note that this is ambiguous between button2 and alt, and between * button3 and meta. Also, code which generated these modifiers tends to * only list the modifier that just changed, even if others were down at --- 306,312 ---- } /** ! * This method returns the old-style modifiers in effect for this event. * Note that this is ambiguous between button2 and alt, and between * button3 and meta. Also, code which generated these modifiers tends to * only list the modifier that just changed, even if others were down at diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/InputMethodEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/InputMethodEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/InputMethodEvent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/event/InputMethodEvent.java Tue Jan 11 19:46:05 2011 *************** public class InputMethodEvent extends AW *** 278,284 **** while (--j >= 0) s.append(text.setIndex(i++)); s.append("\", ").append(committedCharacterCount) ! .append(" characters committed, caret: "); } s.append(caret == null ? (Object) "no caret" : caret).append(", ") .append(visiblePosition == null ? (Object) "no visible position" --- 278,284 ---- while (--j >= 0) s.append(text.setIndex(i++)); s.append("\", ").append(committedCharacterCount) ! .append(" characters committed, caret: "); } s.append(caret == null ? (Object) "no caret" : caret).append(", ") .append(visiblePosition == null ? (Object) "no visible position" diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/InvocationEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/InvocationEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/InvocationEvent.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/awt/event/InvocationEvent.java Tue Jan 11 19:46:05 2011 *************** public class InvocationEvent extends AWT *** 108,118 **** /** * This is the caught Throwable thrown in the run() method. ! * It is null if throwables are ignored, the run method hasn't completed, * or there were no throwables thrown. */ private Throwable throwable; ! /** * The timestamp when this event was created. * --- 108,118 ---- /** * This is the caught Throwable thrown in the run() method. ! * It is null if throwables are ignored, the run method hasn't completed, * or there were no throwables thrown. */ private Throwable throwable; ! /** * The timestamp when this event was created. * *************** public class InvocationEvent extends AWT *** 202,210 **** Object o = notifier; if (o != null) synchronized(o) ! { ! o.notifyAll(); ! } } /** --- 202,210 ---- Object o = notifier; if (o != null) synchronized(o) ! { ! o.notifyAll(); ! } } /** *************** public class InvocationEvent extends AWT *** 230,236 **** { return throwable; } ! /** * Gets the timestamp of when this event was created. * --- 230,236 ---- { return throwable; } ! /** * Gets the timestamp of when this event was created. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/KeyEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/KeyEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/KeyEvent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/event/KeyEvent.java Tue Jan 11 19:46:05 2011 *************** public class KeyEvent extends InputEvent *** 1104,1110 **** */ private boolean isProxyActive; ! /** * Initializes a new instance of KeyEvent with the specified * information. Note that an invalid id leads to unspecified results. --- 1104,1110 ---- */ private boolean isProxyActive; ! /** * Initializes a new instance of KeyEvent with the specified * information. Note that an invalid id leads to unspecified results. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/MouseEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/MouseEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/MouseEvent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/event/MouseEvent.java Tue Jan 11 19:46:05 2011 *************** public class MouseEvent extends InputEve *** 293,300 **** // release event. if (id == MOUSE_RELEASED) this.modifiersEx &= ~(BUTTON1_DOWN_MASK ! | BUTTON2_DOWN_MASK ! | BUTTON3_DOWN_MASK); this.absX = absX; this.absY = absY; --- 293,300 ---- // release event. if (id == MOUSE_RELEASED) this.modifiersEx &= ~(BUTTON1_DOWN_MASK ! | BUTTON2_DOWN_MASK ! | BUTTON3_DOWN_MASK); this.absX = absX; this.absY = absY; *************** public class MouseEvent extends InputEve *** 469,478 **** // FIXME: need a mauve test for this method if (modifiersEx != 0) s.append(",extModifiers=").append(getModifiersExText(modifiersEx)); ! s.append(",clickCount=").append(clickCount); s.append(",consumed=").append(consumed); ! return s.toString(); } --- 469,478 ---- // FIXME: need a mauve test for this method if (modifiersEx != 0) s.append(",extModifiers=").append(getModifiersExText(modifiersEx)); ! s.append(",clickCount=").append(clickCount); s.append(",consumed=").append(consumed); ! return s.toString(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/MouseListener.java gcc-4.6.0/libjava/classpath/java/awt/event/MouseListener.java *** gcc-4.5.2/libjava/classpath/java/awt/event/MouseListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/event/MouseListener.java Tue Jan 11 19:46:05 2011 *************** public interface MouseListener extends E *** 85,91 **** */ void mouseEntered(MouseEvent event); ! /** * This method is called when the mouse exits a component. * * @param event the MouseEvent for the exit --- 85,91 ---- */ void mouseEntered(MouseEvent event); ! /** * This method is called when the mouse exits a component. * * @param event the MouseEvent for the exit diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/MouseWheelEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/MouseWheelEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/MouseWheelEvent.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/awt/event/MouseWheelEvent.java Tue Jan 11 19:46:05 2011 *************** public class MouseWheelEvent extends Mou *** 135,141 **** * @param wheelRotation the number of rotation "clicks" * @throws IllegalArgumentException if source is null * @see MouseEvent#MouseEvent(Component, int, long, int, int, int, int, ! * boolean) */ public MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, --- 135,141 ---- * @param wheelRotation the number of rotation "clicks" * @throws IllegalArgumentException if source is null * @see MouseEvent#MouseEvent(Component, int, long, int, int, int, int, ! * boolean) */ public MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/event/WindowEvent.java gcc-4.6.0/libjava/classpath/java/awt/event/WindowEvent.java *** gcc-4.5.2/libjava/classpath/java/awt/event/WindowEvent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/event/WindowEvent.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Window; *** 49,55 **** * are three listeners, for three types of events: WindowListeners deal with * the lifecycle of a window, WindowStateListeners deal with window state * like maximization, and WindowFocusListeners deal with focus switching to ! * or from a window. * * @author Aaron M. Renn (arenn@urbanophile.com) * @see WindowAdapter --- 49,55 ---- * are three listeners, for three types of events: WindowListeners deal with * the lifecycle of a window, WindowStateListeners deal with window state * like maximization, and WindowFocusListeners deal with focus switching to ! * or from a window. * * @author Aaron M. Renn (arenn@urbanophile.com) * @see WindowAdapter diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/FontRenderContext.java gcc-4.6.0/libjava/classpath/java/awt/font/FontRenderContext.java *** gcc-4.5.2/libjava/classpath/java/awt/font/FontRenderContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/font/FontRenderContext.java Tue Jan 11 19:46:05 2011 *************** public class FontRenderContext *** 48,54 **** private AffineTransform affineTransform; private boolean isAntiAliased; private boolean usesFractionalMetrics; ! /** * Construct a new FontRenderContext. */ --- 48,54 ---- private AffineTransform affineTransform; private boolean isAntiAliased; private boolean usesFractionalMetrics; ! /** * Construct a new FontRenderContext. */ *************** public class FontRenderContext *** 56,62 **** { // Do nothing here. } ! /** * Construct a new FontRenderContext. */ --- 56,62 ---- { // Do nothing here. } ! /** * Construct a new FontRenderContext. */ *************** public class FontRenderContext *** 68,74 **** { this.affineTransform = new AffineTransform (tx); } ! this.isAntiAliased = isAntiAliased; this.usesFractionalMetrics = usesFractionalMetrics; } --- 68,74 ---- { this.affineTransform = new AffineTransform (tx); } ! this.isAntiAliased = isAntiAliased; this.usesFractionalMetrics = usesFractionalMetrics; } *************** public class FontRenderContext *** 135,138 **** return usesFractionalMetrics; } } - --- 135,137 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/GlyphJustificationInfo.java gcc-4.6.0/libjava/classpath/java/awt/font/GlyphJustificationInfo.java *** gcc-4.5.2/libjava/classpath/java/awt/font/GlyphJustificationInfo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/font/GlyphJustificationInfo.java Tue Jan 11 19:46:05 2011 *************** public final class GlyphJustificationInf *** 47,53 **** public static final int PRIORITY_WHITESPACE = 1; public static final int PRIORITY_INTERCHAR = 2; public static final int PRIORITY_NONE = 3; ! public final float weight; public final int growPriority; public final boolean growAbsorb; --- 47,53 ---- public static final int PRIORITY_WHITESPACE = 1; public static final int PRIORITY_INTERCHAR = 2; public static final int PRIORITY_NONE = 3; ! public final float weight; public final int growPriority; public final boolean growAbsorb; *************** public final class GlyphJustificationInf *** 57,63 **** public final boolean shrinkAbsorb; public final float shrinkLeftLimit; public final float shrinkRightLimit; ! public GlyphJustificationInfo (float weight, boolean growAbsorb, int growPriority, float growLeftLimit, float growRightLimit, boolean shrinkAbsorb, --- 57,63 ---- public final boolean shrinkAbsorb; public final float shrinkLeftLimit; public final float shrinkRightLimit; ! public GlyphJustificationInfo (float weight, boolean growAbsorb, int growPriority, float growLeftLimit, float growRightLimit, boolean shrinkAbsorb, diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/GlyphMetrics.java gcc-4.6.0/libjava/classpath/java/awt/font/GlyphMetrics.java *** gcc-4.5.2/libjava/classpath/java/awt/font/GlyphMetrics.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/java/awt/font/GlyphMetrics.java Tue Jan 11 19:46:05 2011 *************** public final class GlyphMetrics *** 50,62 **** public static final byte LIGATURE = 1; public static final byte STANDARD = 0; public static final byte WHITESPACE = 4; ! private boolean horizontal; private float advanceX; private float advanceY; private Rectangle2D bounds; private byte glyphType; ! public GlyphMetrics (boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType) { --- 50,62 ---- public static final byte LIGATURE = 1; public static final byte STANDARD = 0; public static final byte WHITESPACE = 4; ! private boolean horizontal; private float advanceX; private float advanceY; private Rectangle2D bounds; private byte glyphType; ! public GlyphMetrics (boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType) { *************** public final class GlyphMetrics *** 66,72 **** this.bounds = bounds; this.glyphType = glyphType; } ! public GlyphMetrics (float advance, Rectangle2D bounds, byte glyphType) { this (true, advance, advance, bounds, glyphType); --- 66,72 ---- this.bounds = bounds; this.glyphType = glyphType; } ! public GlyphMetrics (float advance, Rectangle2D bounds, byte glyphType) { this (true, advance, advance, bounds, glyphType); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/GlyphVector.java gcc-4.6.0/libjava/classpath/java/awt/font/GlyphVector.java *** gcc-4.5.2/libjava/classpath/java/awt/font/GlyphVector.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/java/awt/font/GlyphVector.java Tue Jan 11 19:46:05 2011 *************** public abstract class GlyphVector implem *** 69,80 **** public abstract Font getFont (); public abstract FontRenderContext getFontRenderContext (); ! public int getGlyphCharIndex (int glyphIndex) { return glyphIndex; } ! public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn) { --- 69,80 ---- public abstract Font getFont (); public abstract FontRenderContext getFontRenderContext (); ! public int getGlyphCharIndex (int glyphIndex) { return glyphIndex; } ! public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn) { *************** public abstract class GlyphVector implem *** 85,94 **** int j = beginGlyphIndex; while (j < numEntries) codeReturn[i++] = getGlyphCharIndex(j++); ! return codeReturn; } ! public abstract int getGlyphCode (int glyphIndex); public abstract int[] getGlyphCodes (int beginGlyphIndex, int numEntries, --- 85,94 ---- int j = beginGlyphIndex; while (j < numEntries) codeReturn[i++] = getGlyphCharIndex(j++); ! return codeReturn; } ! public abstract int getGlyphCode (int glyphIndex); public abstract int[] getGlyphCodes (int beginGlyphIndex, int numEntries, *************** public abstract class GlyphVector implem *** 106,112 **** public Shape getGlyphOutline(int glyphIndex, float x, float y) { Shape s = getGlyphOutline(glyphIndex); ! // This is the only way to translate the origin of a shape AffineTransform at = AffineTransform.getTranslateInstance(x, y); return at.createTransformedShape(s); --- 106,112 ---- public Shape getGlyphOutline(int glyphIndex, float x, float y) { Shape s = getGlyphOutline(glyphIndex); ! // This is the only way to translate the origin of a shape AffineTransform at = AffineTransform.getTranslateInstance(x, y); return at.createTransformedShape(s); *************** public abstract class GlyphVector implem *** 117,128 **** { Rectangle bounds = new Rectangle(); Rectangle2D rect = getGlyphVisualBounds(index).getBounds2D(); ! bounds.x = (int) (rect.getX() + x); bounds.y = (int) (rect.getY() + y); bounds.width = (int) rect.getMaxX() - bounds.x; bounds.height = (int) rect.getMaxY() - bounds.y; ! return bounds; } --- 117,128 ---- { Rectangle bounds = new Rectangle(); Rectangle2D rect = getGlyphVisualBounds(index).getBounds2D(); ! bounds.x = (int) (rect.getX() + x); bounds.y = (int) (rect.getY() + y); bounds.width = (int) rect.getMaxX() - bounds.x; bounds.height = (int) rect.getMaxY() - bounds.y; ! return bounds; } *************** public abstract class GlyphVector implem *** 144,150 **** public abstract Rectangle2D getLogicalBounds (); public abstract int getNumGlyphs (); ! public abstract Shape getOutline (); public abstract Shape getOutline (float x, float y); --- 144,150 ---- public abstract Rectangle2D getLogicalBounds (); public abstract int getNumGlyphs (); ! public abstract Shape getOutline (); public abstract Shape getOutline (float x, float y); *************** public abstract class GlyphVector implem *** 154,165 **** { Rectangle bounds = new Rectangle(); Rectangle2D rect = getVisualBounds(); ! bounds.x = (int) (rect.getX() + x); bounds.y = (int) (rect.getY() + y); bounds.width = (int) rect.getMaxX() - bounds.x; bounds.height = (int) rect.getMaxY() - bounds.y; ! return bounds; } --- 154,165 ---- { Rectangle bounds = new Rectangle(); Rectangle2D rect = getVisualBounds(); ! bounds.x = (int) (rect.getX() + x); bounds.y = (int) (rect.getY() + y); bounds.width = (int) rect.getMaxX() - bounds.x; bounds.height = (int) rect.getMaxY() - bounds.y; ! return bounds; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/GraphicAttribute.java gcc-4.6.0/libjava/classpath/java/awt/font/GraphicAttribute.java *** gcc-4.5.2/libjava/classpath/java/awt/font/GraphicAttribute.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/java/awt/font/GraphicAttribute.java Tue Jan 11 19:46:05 2011 *************** import java.awt.geom.Rectangle2D; *** 43,49 **** /** * This class represents a graphic embedded in text. ! * * @author Michael Koch * @author Lillian Angel (langel at redhat dot com) */ --- 43,49 ---- /** * This class represents a graphic embedded in text. ! * * @author Michael Koch * @author Lillian Angel (langel at redhat dot com) */ *************** public abstract class GraphicAttribute *** 59,65 **** /** * Constructor. ! * * @param alignment - the alignment to use for the graphic */ protected GraphicAttribute(int alignment) --- 59,65 ---- /** * Constructor. ! * * @param alignment - the alignment to use for the graphic */ protected GraphicAttribute(int alignment) *************** public abstract class GraphicAttribute *** 71,77 **** /** * Draws the graphic. ! * * @param graphics - the graphics configuration to use * @param x - the x location * @param y - the y location --- 71,77 ---- /** * Draws the graphic. ! * * @param graphics - the graphics configuration to use * @param x - the x location * @param y - the y location *************** public abstract class GraphicAttribute *** 81,87 **** /** * Gets the distance from the origin of its graphic to the right side of the * bounds of its graphic. ! * * @return the advance */ public abstract float getAdvance(); --- 81,87 ---- /** * Gets the distance from the origin of its graphic to the right side of the * bounds of its graphic. ! * * @return the advance */ public abstract float getAdvance(); *************** public abstract class GraphicAttribute *** 89,109 **** /** * Gets the positive distance from the origin of its graphic to the top of * bounds. ! * * @return the ascent */ public abstract float getAscent(); /** * Gets the distance from the origin of its graphic to the bottom of the bounds. ! * * @return the descent */ public abstract float getDescent(); /** * Gets the alignment. ! * * @return the alignment */ public final int getAlignment() --- 89,109 ---- /** * Gets the positive distance from the origin of its graphic to the top of * bounds. ! * * @return the ascent */ public abstract float getAscent(); /** * Gets the distance from the origin of its graphic to the bottom of the bounds. ! * * @return the descent */ public abstract float getDescent(); /** * Gets the alignment. ! * * @return the alignment */ public final int getAlignment() *************** public abstract class GraphicAttribute *** 114,120 **** /** * Returns a Rectangle2D that encloses the rendered area. * Default bounds is the rectangle (0, -ascent, advance, ascent+descent). ! * * @return the bounds of the rendered area */ public Rectangle2D getBounds() --- 114,120 ---- /** * Returns a Rectangle2D that encloses the rendered area. * Default bounds is the rectangle (0, -ascent, advance, ascent+descent). ! * * @return the bounds of the rendered area */ public Rectangle2D getBounds() *************** public abstract class GraphicAttribute *** 125,131 **** /** * Returns the justification information for this object. ! * * @return the justification information */ public GlyphJustificationInfo getJustificationInfo() --- 125,131 ---- /** * Returns the justification information for this object. ! * * @return the justification information */ public GlyphJustificationInfo getJustificationInfo() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/ImageGraphicAttribute.java gcc-4.6.0/libjava/classpath/java/awt/font/ImageGraphicAttribute.java *** gcc-4.5.2/libjava/classpath/java/awt/font/ImageGraphicAttribute.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/java/awt/font/ImageGraphicAttribute.java Tue Jan 11 19:46:05 2011 *************** import java.awt.geom.Rectangle2D; *** 45,51 **** /** * This is an implementation of GraphicAttribute which draws images in a * TextLayout. ! * * @author Lillian Angel * @author Michael Koch */ --- 45,51 ---- /** * This is an implementation of GraphicAttribute which draws images in a * TextLayout. ! * * @author Lillian Angel * @author Michael Koch */ *************** public final class ImageGraphicAttribute *** 58,64 **** /** * Constucts an instance from the specified Image. The origin is at (0, 0). ! * * @param image - image to construct from. * @param alignment - the alignment */ --- 58,64 ---- /** * Constucts an instance from the specified Image. The origin is at (0, 0). ! * * @param image - image to construct from. * @param alignment - the alignment */ *************** public final class ImageGraphicAttribute *** 70,76 **** /** * Constucts an instance from the specified Image. The origin is at (originX, * originY). ! * * @param image - image to construct from * @param alignment - the alignment * @param originX - x point of origin --- 70,76 ---- /** * Constucts an instance from the specified Image. The origin is at (originX, * originY). ! * * @param image - image to construct from * @param alignment - the alignment * @param originX - x point of origin *************** public final class ImageGraphicAttribute *** 88,97 **** /** * Draws the image at the specified location, relative to the * origin. ! * * @param g - the graphics to use to render the image * @param x - the x location ! * @param y - the y location */ public void draw(Graphics2D g, float x, float y) { --- 88,97 ---- /** * Draws the image at the specified location, relative to the * origin. ! * * @param g - the graphics to use to render the image * @param x - the x location ! * @param y - the y location */ public void draw(Graphics2D g, float x, float y) { *************** public final class ImageGraphicAttribute *** 100,106 **** /** * Compares this to the specified Object ! * * @param obj - the object to compare * @return true if the obj and this are equivalent */ --- 100,106 ---- /** * Compares this to the specified Object ! * * @param obj - the object to compare * @return true if the obj and this are equivalent */ *************** public final class ImageGraphicAttribute *** 115,121 **** /** * Compares this to the ImageGraphicAttribute given, by * comparing all fields and values. ! * * @param rhs - the ImageGraphicAttribute to compare * @return true if the object given is equivalent to this */ --- 115,121 ---- /** * Compares this to the ImageGraphicAttribute given, by * comparing all fields and values. ! * * @param rhs - the ImageGraphicAttribute to compare * @return true if the object given is equivalent to this */ *************** public final class ImageGraphicAttribute *** 128,140 **** && (this.getDescent() == rhs.getDescent()) && (this.hashCode() == rhs.hashCode()) && (this.image.equals(rhs.image)) ! && (this.originX == rhs.originX) && (this.originY == rhs.originY))); } /** * Returns distance from the origin to the right edge of the image of this. ! * * @return the advance */ public float getAdvance() --- 128,140 ---- && (this.getDescent() == rhs.getDescent()) && (this.hashCode() == rhs.hashCode()) && (this.image.equals(rhs.image)) ! && (this.originX == rhs.originX) && (this.originY == rhs.originY))); } /** * Returns distance from the origin to the right edge of the image of this. ! * * @return the advance */ public float getAdvance() *************** public final class ImageGraphicAttribute *** 144,150 **** /** * Returns the the distance from the top of the image to the origin of this. ! * * @return the ascent. */ public float getAscent() --- 144,150 ---- /** * Returns the the distance from the top of the image to the origin of this. ! * * @return the ascent. */ public float getAscent() *************** public final class ImageGraphicAttribute *** 154,160 **** /** * Gets the bounds of the object rendered, relative to the position. ! * * @return the bounds of the object rendered, relative to the position. */ public Rectangle2D getBounds() --- 154,160 ---- /** * Gets the bounds of the object rendered, relative to the position. ! * * @return the bounds of the object rendered, relative to the position. */ public Rectangle2D getBounds() *************** public final class ImageGraphicAttribute *** 167,173 **** /** * Returns the distance from the origin to the bottom of the image. ! * * @return the descent */ public float getDescent() --- 167,173 ---- /** * Returns the distance from the origin to the bottom of the image. ! * * @return the descent */ public float getDescent() *************** public final class ImageGraphicAttribute *** 177,183 **** /** * Gets the hash code for this image. ! * * @return the hash code */ public int hashCode() --- 177,183 ---- /** * Gets the hash code for this image. ! * * @return the hash code */ public int hashCode() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/LineBreakMeasurer.java gcc-4.6.0/libjava/classpath/java/awt/font/LineBreakMeasurer.java *** gcc-4.5.2/libjava/classpath/java/awt/font/LineBreakMeasurer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/font/LineBreakMeasurer.java Tue Jan 11 19:46:05 2011 *************** public final class LineBreakMeasurer *** 45,61 **** { private AttributedCharacterIterator text; private int position; ! private TextMeasurer tm; private int numChars; ! public LineBreakMeasurer(AttributedCharacterIterator text, ! BreakIterator breakIter, FontRenderContext frc) { this( text, frc ); } ! public LineBreakMeasurer(AttributedCharacterIterator text, ! FontRenderContext frc) { this.text = text; position = 0; --- 45,61 ---- { private AttributedCharacterIterator text; private int position; ! private TextMeasurer tm; private int numChars; ! public LineBreakMeasurer(AttributedCharacterIterator text, ! BreakIterator breakIter, FontRenderContext frc) { this( text, frc ); } ! public LineBreakMeasurer(AttributedCharacterIterator text, ! FontRenderContext frc) { this.text = text; position = 0; *************** public final class LineBreakMeasurer *** 63,77 **** tm = new TextMeasurer( text, frc ); } ! public void deleteChar(AttributedCharacterIterator newParagraph, ! int deletePos) { tm.deleteChar( newParagraph, deletePos ); position = 0; } ! public void insertChar(AttributedCharacterIterator newParagraph, ! int insertPos) { tm.insertChar( newParagraph, insertPos ); position = 0; --- 63,77 ---- tm = new TextMeasurer( text, frc ); } ! public void deleteChar(AttributedCharacterIterator newParagraph, ! int deletePos) { tm.deleteChar( newParagraph, deletePos ); position = 0; } ! public void insertChar(AttributedCharacterIterator newParagraph, ! int insertPos) { tm.insertChar( newParagraph, insertPos ); position = 0; *************** public final class LineBreakMeasurer *** 82,89 **** return nextLayout( wrappingWidth, numChars, false ); } ! public TextLayout nextLayout(float wrappingWidth, int offsetLimit, ! boolean requireNextWord) { int next = nextOffset( wrappingWidth, offsetLimit, requireNextWord ); TextLayout tl = tm.getLayout( position, next ); --- 82,89 ---- return nextLayout( wrappingWidth, numChars, false ); } ! public TextLayout nextLayout(float wrappingWidth, int offsetLimit, ! boolean requireNextWord) { int next = nextOffset( wrappingWidth, offsetLimit, requireNextWord ); TextLayout tl = tm.getLayout( position, next ); *************** public final class LineBreakMeasurer *** 96,103 **** return nextOffset( wrappingWidth, numChars, false ); } ! public int nextOffset(float wrappingWidth, int offsetLimit, ! boolean requireNextWord) { int guessOffset = tm.getLineBreakIndex(position, wrappingWidth); if( offsetLimit > numChars ) --- 96,103 ---- return nextOffset( wrappingWidth, numChars, false ); } ! public int nextOffset(float wrappingWidth, int offsetLimit, ! boolean requireNextWord) { int guessOffset = tm.getLineBreakIndex(position, wrappingWidth); if( offsetLimit > numChars ) *************** public final class LineBreakMeasurer *** 105,112 **** if( guessOffset > offsetLimit ) { ! text.setIndex( offsetLimit ); ! return offsetLimit; } text.setIndex( guessOffset ); --- 105,112 ---- if( guessOffset > offsetLimit ) { ! text.setIndex( offsetLimit ); ! return offsetLimit; } text.setIndex( guessOffset ); *************** public final class LineBreakMeasurer *** 117,134 **** // Otherwise jump forward or backward to the last such char. if( !requireNextWord ) ! while( !Character.isWhitespace( text.previous() ) && ! guessOffset > position ) ! guessOffset--; else ! while( !Character.isWhitespace( text.next() ) && ! guessOffset < offsetLimit ) ! guessOffset++; ! if( guessOffset > offsetLimit ) { ! text.setIndex( offsetLimit ); ! return offsetLimit; } text.setIndex( guessOffset ); --- 117,134 ---- // Otherwise jump forward or backward to the last such char. if( !requireNextWord ) ! while( !Character.isWhitespace( text.previous() ) && ! guessOffset > position ) ! guessOffset--; else ! while( !Character.isWhitespace( text.next() ) && ! guessOffset < offsetLimit ) ! guessOffset++; ! if( guessOffset > offsetLimit ) { ! text.setIndex( offsetLimit ); ! return offsetLimit; } text.setIndex( guessOffset ); *************** public final class LineBreakMeasurer *** 146,149 **** return position; } } - --- 146,148 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/LineMetrics.java gcc-4.6.0/libjava/classpath/java/awt/font/LineMetrics.java *** gcc-4.5.2/libjava/classpath/java/awt/font/LineMetrics.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/font/LineMetrics.java Tue Jan 11 19:46:05 2011 *************** package java.awt.font; *** 44,67 **** public abstract class LineMetrics { public abstract float getAscent(); ! public abstract int getBaselineIndex(); ! public abstract float[] getBaselineOffsets(); ! public abstract float getDescent(); ! public abstract float getHeight(); ! public abstract float getLeading(); ! public abstract int getNumChars(); ! public abstract float getStrikethroughOffset(); ! public abstract float getStrikethroughThickness(); ! public abstract float getUnderlineOffset(); ! public abstract float getUnderlineThickness(); } --- 44,67 ---- public abstract class LineMetrics { public abstract float getAscent(); ! public abstract int getBaselineIndex(); ! public abstract float[] getBaselineOffsets(); ! public abstract float getDescent(); ! public abstract float getHeight(); ! public abstract float getLeading(); ! public abstract int getNumChars(); ! public abstract float getStrikethroughOffset(); ! public abstract float getStrikethroughThickness(); ! public abstract float getUnderlineOffset(); ! public abstract float getUnderlineThickness(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/MultipleMaster.java gcc-4.6.0/libjava/classpath/java/awt/font/MultipleMaster.java *** gcc-4.5.2/libjava/classpath/java/awt/font/MultipleMaster.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/font/MultipleMaster.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Font; *** 46,61 **** public interface MultipleMaster { Font deriveMMFont (float[] axes); ! Font deriveMMFont (float[] glyphWidths, float avgStemWidth, float typicalCapHeight, float typicalXHeight, float italicAngle); ! float[] getDesignAxisDefaults(); ! String[] getDesignAxisNames(); ! float[] getDesignAxisRanges(); ! int getNumDesignAxes(); } --- 46,61 ---- public interface MultipleMaster { Font deriveMMFont (float[] axes); ! Font deriveMMFont (float[] glyphWidths, float avgStemWidth, float typicalCapHeight, float typicalXHeight, float italicAngle); ! float[] getDesignAxisDefaults(); ! String[] getDesignAxisNames(); ! float[] getDesignAxisRanges(); ! int getNumDesignAxes(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/OpenType.java gcc-4.6.0/libjava/classpath/java/awt/font/OpenType.java *** gcc-4.5.2/libjava/classpath/java/awt/font/OpenType.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/font/OpenType.java Tue Jan 11 19:46:05 2011 *************** public interface OpenType *** 94,111 **** int TAG_VDMX = 1447316824; int TAG_VHEA = 1986553185; int TAG_VMTX = 1986884728; ! byte[] getFontTable (int sfntTag); ! byte[] getFontTable (int sfntTag, int offset, int count); ! byte[] getFontTable (String strSfntTag); ! byte[] getFontTable (String strSfntTag, int offset, int count); ! int getFontTableSize (int sfntTag); ! int getFontTableSize (String strSfntTag); ! int getVersion (); } --- 94,111 ---- int TAG_VDMX = 1447316824; int TAG_VHEA = 1986553185; int TAG_VMTX = 1986884728; ! byte[] getFontTable (int sfntTag); ! byte[] getFontTable (int sfntTag, int offset, int count); ! byte[] getFontTable (String strSfntTag); ! byte[] getFontTable (String strSfntTag, int offset, int count); ! int getFontTableSize (int sfntTag); ! int getFontTableSize (String strSfntTag); ! int getVersion (); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/ShapeGraphicAttribute.java gcc-4.6.0/libjava/classpath/java/awt/font/ShapeGraphicAttribute.java *** gcc-4.5.2/libjava/classpath/java/awt/font/ShapeGraphicAttribute.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/java/awt/font/ShapeGraphicAttribute.java Tue Jan 11 19:46:05 2011 *************** import java.awt.geom.Rectangle2D; *** 44,67 **** /** * This is an implementation of GraphicAttribute that draws shapes in a TextLayout. ! * * @author Lillian Angel (langel at redhat dot com) */ public final class ShapeGraphicAttribute extends GraphicAttribute { /** True if the shape should be filled. */ public static final boolean FILL = false; ! /** True if the shape should be stroked with a 1-pixel wide stroke. */ public static final boolean STROKE = true; private Shape shape; private boolean stroke; private Rectangle2D bounds; ! /** * Constructor. ! * * @param shape - the Shape to render. The Shape is rendered with its origin. * @param alignment - the alignment * @param stroke - true if the Shape should be stroked; false if the Shape --- 44,67 ---- /** * This is an implementation of GraphicAttribute that draws shapes in a TextLayout. ! * * @author Lillian Angel (langel at redhat dot com) */ public final class ShapeGraphicAttribute extends GraphicAttribute { /** True if the shape should be filled. */ public static final boolean FILL = false; ! /** True if the shape should be stroked with a 1-pixel wide stroke. */ public static final boolean STROKE = true; private Shape shape; private boolean stroke; private Rectangle2D bounds; ! /** * Constructor. ! * * @param shape - the Shape to render. The Shape is rendered with its origin. * @param alignment - the alignment * @param stroke - true if the Shape should be stroked; false if the Shape *************** public final class ShapeGraphicAttribute *** 77,83 **** /** * Draws the graphic at the given location. ! * * @param graphics - the graphics to use. * @param x - the x location to draw at. * @param y - the y location to draw at. --- 77,83 ---- /** * Draws the graphic at the given location. ! * * @param graphics - the graphics to use. * @param x - the x location to draw at. * @param y - the y location to draw at. *************** public final class ShapeGraphicAttribute *** 94,100 **** /** * Compares this ShapeGraphicAttribute to obj. ! * * @param obj - the object to compare. */ public boolean equals(Object obj) --- 94,100 ---- /** * Compares this ShapeGraphicAttribute to obj. ! * * @param obj - the object to compare. */ public boolean equals(Object obj) *************** public final class ShapeGraphicAttribute *** 107,113 **** /** * Compares this ShapeGraphicAttribute to rhs. ! * * @param rhs - the ShapeGraphicAttribute to compare. */ public boolean equals(ShapeGraphicAttribute rhs) --- 107,113 ---- /** * Compares this ShapeGraphicAttribute to rhs. ! * * @param rhs - the ShapeGraphicAttribute to compare. */ public boolean equals(ShapeGraphicAttribute rhs) *************** public final class ShapeGraphicAttribute *** 118,131 **** && getAdvance() == rhs.getAdvance() && getAscent() == rhs.getAscent() && getBounds().equals(rhs.getBounds()) ! && getDescent() == rhs.getDescent() && hashCode() == rhs.hashCode())); } /** * Gets the distance from the origin of its Shape to the right side of the * bounds of its Shape. ! * * @return the advance */ public float getAdvance() --- 118,131 ---- && getAdvance() == rhs.getAdvance() && getAscent() == rhs.getAscent() && getBounds().equals(rhs.getBounds()) ! && getDescent() == rhs.getDescent() && hashCode() == rhs.hashCode())); } /** * Gets the distance from the origin of its Shape to the right side of the * bounds of its Shape. ! * * @return the advance */ public float getAdvance() *************** public final class ShapeGraphicAttribute *** 136,142 **** /** * Gets the positive distance from the origin of its Shape to the top of * bounds. ! * * @return the ascent */ public float getAscent() --- 136,142 ---- /** * Gets the positive distance from the origin of its Shape to the top of * bounds. ! * * @return the ascent */ public float getAscent() *************** public final class ShapeGraphicAttribute *** 146,152 **** /** * Gets the distance from the origin of its Shape to the bottom of the bounds. ! * * @return the descent */ public float getDescent() --- 146,152 ---- /** * Gets the distance from the origin of its Shape to the bottom of the bounds. ! * * @return the descent */ public float getDescent() *************** public final class ShapeGraphicAttribute *** 156,162 **** /** * Returns a Rectangle2D that encloses all of the bits drawn by this shape. ! * * @return the bounds of the shape. */ public Rectangle2D getBounds() --- 156,162 ---- /** * Returns a Rectangle2D that encloses all of the bits drawn by this shape. ! * * @return the bounds of the shape. */ public Rectangle2D getBounds() *************** public final class ShapeGraphicAttribute *** 169,181 **** bounds.width++; bounds.height++; } ! return bounds; } /** * Gets the hash code. ! * * @return the hash code. */ public int hashCode() --- 169,181 ---- bounds.width++; bounds.height++; } ! return bounds; } /** * Gets the hash code. ! * * @return the hash code. */ public int hashCode() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/TextAttribute.java gcc-4.6.0/libjava/classpath/java/awt/font/TextAttribute.java *** gcc-4.5.2/libjava/classpath/java/awt/font/TextAttribute.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/font/TextAttribute.java Tue Jan 11 19:46:05 2011 *************** import java.text.AttributedCharacterIter *** 48,244 **** public final class TextAttribute extends AttributedCharacterIterator.Attribute { private static final long serialVersionUID = 7744112784117861702L; ! /** A key for the background paint attribute. */ public static final TextAttribute BACKGROUND = new TextAttribute("background"); ! /** A key for the BIDI_EMBEDDING attribute. */ public static final TextAttribute BIDI_EMBEDDING = new TextAttribute("bidi_embedding"); ! /** A key for the CHAR_REPLACEMENT attribute. */ public static final TextAttribute CHAR_REPLACEMENT = new TextAttribute("char_replacement"); ! /** A key for the FAMILY attribute. */ public static final TextAttribute FAMILY = new TextAttribute("family"); ! /** A key for the font attribute. */ public static final TextAttribute FONT = new TextAttribute("font"); ! /** A key for the foreground paint attribute. */ ! public static final TextAttribute FOREGROUND = new TextAttribute("foreground"); ! /** A key for the INPUT_METHOD_HIGHLIGHT attribute. */ public static final TextAttribute INPUT_METHOD_HIGHLIGHT = new TextAttribute("input method highlight"); ! /** A key for the INPUT_METHOD_UNDERLINE attribute. */ public static final TextAttribute INPUT_METHOD_UNDERLINE = new TextAttribute("input method underline"); ! /** A key for the text justification attribute. */ public static final TextAttribute JUSTIFICATION = new TextAttribute("justification"); ! ! /** * A value that can be used with the {@link #JUSTIFICATION} attribute to ! * indicate full justification of the text. */ public static final Float JUSTIFICATION_FULL = new Float(1.0); ! ! /** * A value that can be used with the {@link #JUSTIFICATION} attribute to ! * indicate no justification of the text. */ public static final Float JUSTIFICATION_NONE = new Float(0.0); ! /** A key for the NUMERIC_SHAPING attribute. */ public static final TextAttribute NUMERIC_SHAPING = new TextAttribute("numeric_shaping"); ! /** A key for the POSTURE attribute. */ public static final TextAttribute POSTURE = new TextAttribute("posture"); ! /** A value that can be used with the {@link #POSTURE} attribute. */ public static final Float POSTURE_OBLIQUE = new Float(0.2); ! /** A value that can be used with the {@link #POSTURE} attribute. */ public static final Float POSTURE_REGULAR = new Float(0.0); ! /** A key for the RUN_DIRECTION attribute. */ public static final TextAttribute RUN_DIRECTION = new TextAttribute("run_direction"); ! /** A value that can be used with the {@link #RUN_DIRECTION} attribute. */ public static final Boolean RUN_DIRECTION_LTR = Boolean.FALSE; ! /** A value that can be used with the {@link #RUN_DIRECTION} attribute. */ public static final Boolean RUN_DIRECTION_RTL = Boolean.TRUE; ! /** A key for the text size attribute. */ public static final TextAttribute SIZE = new TextAttribute("size"); ! /** A key for the STRIKETHROUGH attribute. */ public static final TextAttribute STRIKETHROUGH = new TextAttribute("strikethrough"); ! /** A value that can be used with the {@link #STRIKETHROUGH} attribute. */ public static final Boolean STRIKETHROUGH_ON = Boolean.TRUE; ! /** A key for the SUPERSCRIPT attribute. */ public static final TextAttribute SUPERSCRIPT = new TextAttribute("superscript"); ! /** A value that can be used with the {@link #SUPERSCRIPT} attribute. */ public static final Integer SUPERSCRIPT_SUB = new Integer(-1); ! /** A value that can be used with the {@link #SUPERSCRIPT} attribute. */ public static final Integer SUPERSCRIPT_SUPER = new Integer(1); ! /** A key for the SWAP_COLORS attribute. */ public static final TextAttribute SWAP_COLORS = new TextAttribute("swap_colors"); ! /** A value that can be used with the {@link #SWAP_COLORS} attribute. */ public static final Boolean SWAP_COLORS_ON = Boolean.TRUE; ! /** A key for the TRANFORM attribute. */ public static final TextAttribute TRANSFORM = new TextAttribute("transform"); ! /** A key for the UNDERLINE attribute. */ public static final TextAttribute UNDERLINE = new TextAttribute("underline"); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_DASHED = new Integer(5); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_DOTTED = new Integer(3); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_GRAY = new Integer(4); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_ONE_PIXEL = new Integer(1); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_TWO_PIXEL = new Integer(2); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_ON = new Integer(0); ! /** A key for the WEIGHT attribute. */ public static final TextAttribute WEIGHT = new TextAttribute("weight"); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_BOLD = new Float(2.0); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_DEMIBOLD = new Float(1.75); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_DEMILIGHT = new Float(0.875); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_EXTRA_LIGHT = new Float(0.5); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_EXTRABOLD = new Float(2.5); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_HEAVY = new Float(2.25); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_LIGHT = new Float(0.75); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_MEDIUM = new Float(1.5); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_REGULAR = new Float(1.0); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_SEMIBOLD = new Float(1.25); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_ULTRABOLD = new Float(2.75); ! /** A key for the WIDTH attribute. */ public static final TextAttribute WIDTH = new TextAttribute("width"); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_CONDENSED = new Float(0.75); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_EXTENDED = new Float(1.5); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_REGULAR = new Float(1.0); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_SEMI_CONDENSED = new Float(0.875); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_SEMI_EXTENDED = new Float(1.25); ! /** * Creates a new attribute. ! * * @param name the name. */ protected TextAttribute(String name) { super(name); } ! /** * After deserialization, this method ensures that only one instance of * each attribute is used. ! * * @return The (single) attribute instance. ! * * @throws InvalidObjectException if the attribute is not recognised. */ protected Object readResolve() --- 48,244 ---- public final class TextAttribute extends AttributedCharacterIterator.Attribute { private static final long serialVersionUID = 7744112784117861702L; ! /** A key for the background paint attribute. */ public static final TextAttribute BACKGROUND = new TextAttribute("background"); ! /** A key for the BIDI_EMBEDDING attribute. */ public static final TextAttribute BIDI_EMBEDDING = new TextAttribute("bidi_embedding"); ! /** A key for the CHAR_REPLACEMENT attribute. */ public static final TextAttribute CHAR_REPLACEMENT = new TextAttribute("char_replacement"); ! /** A key for the FAMILY attribute. */ public static final TextAttribute FAMILY = new TextAttribute("family"); ! /** A key for the font attribute. */ public static final TextAttribute FONT = new TextAttribute("font"); ! /** A key for the foreground paint attribute. */ ! public static final TextAttribute FOREGROUND = new TextAttribute("foreground"); ! /** A key for the INPUT_METHOD_HIGHLIGHT attribute. */ public static final TextAttribute INPUT_METHOD_HIGHLIGHT = new TextAttribute("input method highlight"); ! /** A key for the INPUT_METHOD_UNDERLINE attribute. */ public static final TextAttribute INPUT_METHOD_UNDERLINE = new TextAttribute("input method underline"); ! /** A key for the text justification attribute. */ public static final TextAttribute JUSTIFICATION = new TextAttribute("justification"); ! ! /** * A value that can be used with the {@link #JUSTIFICATION} attribute to ! * indicate full justification of the text. */ public static final Float JUSTIFICATION_FULL = new Float(1.0); ! ! /** * A value that can be used with the {@link #JUSTIFICATION} attribute to ! * indicate no justification of the text. */ public static final Float JUSTIFICATION_NONE = new Float(0.0); ! /** A key for the NUMERIC_SHAPING attribute. */ public static final TextAttribute NUMERIC_SHAPING = new TextAttribute("numeric_shaping"); ! /** A key for the POSTURE attribute. */ public static final TextAttribute POSTURE = new TextAttribute("posture"); ! /** A value that can be used with the {@link #POSTURE} attribute. */ public static final Float POSTURE_OBLIQUE = new Float(0.2); ! /** A value that can be used with the {@link #POSTURE} attribute. */ public static final Float POSTURE_REGULAR = new Float(0.0); ! /** A key for the RUN_DIRECTION attribute. */ public static final TextAttribute RUN_DIRECTION = new TextAttribute("run_direction"); ! /** A value that can be used with the {@link #RUN_DIRECTION} attribute. */ public static final Boolean RUN_DIRECTION_LTR = Boolean.FALSE; ! /** A value that can be used with the {@link #RUN_DIRECTION} attribute. */ public static final Boolean RUN_DIRECTION_RTL = Boolean.TRUE; ! /** A key for the text size attribute. */ public static final TextAttribute SIZE = new TextAttribute("size"); ! /** A key for the STRIKETHROUGH attribute. */ public static final TextAttribute STRIKETHROUGH = new TextAttribute("strikethrough"); ! /** A value that can be used with the {@link #STRIKETHROUGH} attribute. */ public static final Boolean STRIKETHROUGH_ON = Boolean.TRUE; ! /** A key for the SUPERSCRIPT attribute. */ public static final TextAttribute SUPERSCRIPT = new TextAttribute("superscript"); ! /** A value that can be used with the {@link #SUPERSCRIPT} attribute. */ public static final Integer SUPERSCRIPT_SUB = new Integer(-1); ! /** A value that can be used with the {@link #SUPERSCRIPT} attribute. */ public static final Integer SUPERSCRIPT_SUPER = new Integer(1); ! /** A key for the SWAP_COLORS attribute. */ public static final TextAttribute SWAP_COLORS = new TextAttribute("swap_colors"); ! /** A value that can be used with the {@link #SWAP_COLORS} attribute. */ public static final Boolean SWAP_COLORS_ON = Boolean.TRUE; ! /** A key for the TRANFORM attribute. */ public static final TextAttribute TRANSFORM = new TextAttribute("transform"); ! /** A key for the UNDERLINE attribute. */ public static final TextAttribute UNDERLINE = new TextAttribute("underline"); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_DASHED = new Integer(5); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_DOTTED = new Integer(3); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_GRAY = new Integer(4); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_ONE_PIXEL = new Integer(1); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_LOW_TWO_PIXEL = new Integer(2); ! /** A value that can be used with the {@link #UNDERLINE} attribute. */ public static final Integer UNDERLINE_ON = new Integer(0); ! /** A key for the WEIGHT attribute. */ public static final TextAttribute WEIGHT = new TextAttribute("weight"); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_BOLD = new Float(2.0); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_DEMIBOLD = new Float(1.75); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_DEMILIGHT = new Float(0.875); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_EXTRA_LIGHT = new Float(0.5); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_EXTRABOLD = new Float(2.5); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_HEAVY = new Float(2.25); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_LIGHT = new Float(0.75); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_MEDIUM = new Float(1.5); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_REGULAR = new Float(1.0); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_SEMIBOLD = new Float(1.25); ! /** A value that can be used with the {@link #WEIGHT} attribute. */ public static final Float WEIGHT_ULTRABOLD = new Float(2.75); ! /** A key for the WIDTH attribute. */ public static final TextAttribute WIDTH = new TextAttribute("width"); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_CONDENSED = new Float(0.75); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_EXTENDED = new Float(1.5); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_REGULAR = new Float(1.0); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_SEMI_CONDENSED = new Float(0.875); ! /** A value that can be used with the {@link #WIDTH} attribute. */ public static final Float WIDTH_SEMI_EXTENDED = new Float(1.25); ! /** * Creates a new attribute. ! * * @param name the name. */ protected TextAttribute(String name) { super(name); } ! /** * After deserialization, this method ensures that only one instance of * each attribute is used. ! * * @return The (single) attribute instance. ! * * @throws InvalidObjectException if the attribute is not recognised. */ protected Object readResolve() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/TextHitInfo.java gcc-4.6.0/libjava/classpath/java/awt/font/TextHitInfo.java *** gcc-4.5.2/libjava/classpath/java/awt/font/TextHitInfo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/font/TextHitInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TextHitInfo.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TextHitInfo.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public final class TextHitInfo *** 44,56 **** { private int charIndex; private boolean leadingEdge; ! TextHitInfo (int charIndex, boolean leadingEdge) { this.charIndex = charIndex; this.leadingEdge = leadingEdge; } ! public int getCharIndex() { return charIndex; --- 44,56 ---- { private int charIndex; private boolean leadingEdge; ! TextHitInfo (int charIndex, boolean leadingEdge) { this.charIndex = charIndex; this.leadingEdge = leadingEdge; } ! public int getCharIndex() { return charIndex; *************** public final class TextHitInfo *** 75,81 **** { if(obj instanceof TextHitInfo) return this.equals((TextHitInfo) obj); ! return false; } --- 75,81 ---- { if(obj instanceof TextHitInfo) return this.equals((TextHitInfo) obj); ! return false; } *************** public final class TextHitInfo *** 83,89 **** { if (hitInfo == null) return false; ! return (charIndex == hitInfo.getCharIndex ()) && (leadingEdge == hitInfo.isLeadingEdge ()); } --- 83,89 ---- { if (hitInfo == null) return false; ! return (charIndex == hitInfo.getCharIndex ()) && (leadingEdge == hitInfo.isLeadingEdge ()); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/TextLayout.java gcc-4.6.0/libjava/classpath/java/awt/font/TextLayout.java *** gcc-4.5.2/libjava/classpath/java/awt/font/TextLayout.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/font/TextLayout.java Tue Jan 11 19:46:05 2011 *************** public final class TextLayout implements *** 134,140 **** * performance. */ private float totalAdvance = -1F; ! /** * The cached natural bounds. */ --- 134,140 ---- * performance. */ private float totalAdvance = -1F; ! /** * The cached natural bounds. */ *************** public final class TextLayout implements *** 188,194 **** /** * Constructs a TextLayout. */ ! public TextLayout (String str, Font font, FontRenderContext frc) { this.frc = frc; string = str.toCharArray(); --- 188,194 ---- /** * Constructs a TextLayout. */ ! public TextLayout (String str, Font font, FontRenderContext frc) { this.frc = frc; string = str.toCharArray(); *************** public final class TextLayout implements *** 201,228 **** if (Bidi.requiresBidi(string, offset, offset + length)) { ! bidi = new Bidi(str, leftToRight ? Bidi.DIRECTION_LEFT_TO_RIGHT : Bidi.DIRECTION_RIGHT_TO_LEFT ); ! int rc = bidi.getRunCount(); ! byte[] table = new byte[ rc ]; ! for(int i = 0; i < table.length; i++) ! table[i] = (byte)bidi.getRunLevel(i); runs = new Run[rc]; ! for(int i = 0; i < rc; i++) ! { ! int start = bidi.getRunStart(i); ! int end = bidi.getRunLimit(i); ! if(start != end) // no empty runs. ! { ! GlyphVector gv = font.layoutGlyphVector(frc, string, start, end, ((table[i] & 1) == 0) ? Font.LAYOUT_LEFT_TO_RIGHT : Font.LAYOUT_RIGHT_TO_LEFT ); runs[i] = new Run(gv, font, start, end); } ! } ! Bidi.reorderVisually( table, 0, runs, 0, runs.length ); // Clean up null runs. ArrayList cleaned = new ArrayList(rc); for (int i = 0; i < rc; i++) --- 201,228 ---- if (Bidi.requiresBidi(string, offset, offset + length)) { ! bidi = new Bidi(str, leftToRight ? Bidi.DIRECTION_LEFT_TO_RIGHT : Bidi.DIRECTION_RIGHT_TO_LEFT ); ! int rc = bidi.getRunCount(); ! byte[] table = new byte[ rc ]; ! for(int i = 0; i < table.length; i++) ! table[i] = (byte)bidi.getRunLevel(i); runs = new Run[rc]; ! for(int i = 0; i < rc; i++) ! { ! int start = bidi.getRunStart(i); ! int end = bidi.getRunLimit(i); ! if(start != end) // no empty runs. ! { ! GlyphVector gv = font.layoutGlyphVector(frc, string, start, end, ((table[i] & 1) == 0) ? Font.LAYOUT_LEFT_TO_RIGHT : Font.LAYOUT_RIGHT_TO_LEFT ); runs[i] = new Run(gv, font, start, end); } ! } ! Bidi.reorderVisually( table, 0, runs, 0, runs.length ); // Clean up null runs. ArrayList cleaned = new ArrayList(rc); for (int i = 0; i < rc; i++) *************** public final class TextLayout implements *** 239,245 **** leftToRight ? Font.LAYOUT_LEFT_TO_RIGHT : Font.LAYOUT_RIGHT_TO_LEFT ); Run run = new Run(gv, font, 0, length); ! runs = new Run[]{ run }; } setCharIndices(); setupMappings(); --- 239,245 ---- leftToRight ? Font.LAYOUT_LEFT_TO_RIGHT : Font.LAYOUT_RIGHT_TO_LEFT ); Run run = new Run(gv, font, 0, length); ! runs = new Run[]{ run }; } setCharIndices(); setupMappings(); *************** public final class TextLayout implements *** 247,254 **** } public TextLayout (String string, ! Map attributes, ! FontRenderContext frc) { this( string, new Font( attributes ), frc ); } --- 247,254 ---- } public TextLayout (String string, ! Map attributes, ! FontRenderContext frc) { this( string, new Font( attributes ), frc ); } *************** public final class TextLayout implements *** 261,267 **** /** * Package-private constructor to make a textlayout from an existing one. ! * This is used by TextMeasurer for returning sub-layouts, and it * saves a lot of time in not having to relayout the text. */ TextLayout(TextLayout t, int startIndex, int endIndex) --- 261,267 ---- /** * Package-private constructor to make a textlayout from an existing one. ! * This is used by TextMeasurer for returning sub-layouts, and it * saves a lot of time in not having to relayout the text. */ TextLayout(TextLayout t, int startIndex, int endIndex) *************** public final class TextLayout implements *** 284,297 **** for( int i = 0; i < nRuns; i++ ) { Run run = t.runs[i + startingRun]; ! GlyphVector gv = run.glyphVector; Font font = run.font; ! // Copy only the relevant parts of the first and last runs. ! int beginGlyphIndex = (i > 0) ? 0 : t.charIndices[startIndex][1]; ! int numEntries = ( i < nRuns - 1) ? gv.getNumGlyphs() : ! 1 + t.charIndices[endIndex - 1][1] - beginGlyphIndex; ! ! int[] codes = gv.getGlyphCodes(beginGlyphIndex, numEntries, null); gv = font.createGlyphVector(frc, codes); runs[i] = new Run(gv, font, run.runStart - startIndex, run.runEnd - startIndex); --- 284,297 ---- for( int i = 0; i < nRuns; i++ ) { Run run = t.runs[i + startingRun]; ! GlyphVector gv = run.glyphVector; Font font = run.font; ! // Copy only the relevant parts of the first and last runs. ! int beginGlyphIndex = (i > 0) ? 0 : t.charIndices[startIndex][1]; ! int numEntries = ( i < nRuns - 1) ? gv.getNumGlyphs() : ! 1 + t.charIndices[endIndex - 1][1] - beginGlyphIndex; ! ! int[] codes = gv.getGlyphCodes(beginGlyphIndex, numEntries, null); gv = font.createGlyphVector(frc, codes); runs[i] = new Run(gv, font, run.runStart - startIndex, run.runEnd - startIndex); *************** public final class TextLayout implements *** 311,317 **** int currentChar = 0; for(int run = 0; run < runs.length; run++) { ! currentChar = -1; Run current = runs[run]; GlyphVector gv = current.glyphVector; for( int gi = 0; gi < gv.getNumGlyphs(); gi++) --- 311,317 ---- int currentChar = 0; for(int run = 0; run < runs.length; run++) { ! currentChar = -1; Run current = runs[run]; GlyphVector gv = current.glyphVector; for( int gi = 0; gi < gv.getNumGlyphs(); gi++) *************** public final class TextLayout implements *** 366,372 **** { CPStringBuilder sb = new CPStringBuilder(); int idx = iter.getIndex(); ! for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) sb.append(c); iter.setIndex( idx ); return sb.toString(); --- 366,372 ---- { CPStringBuilder sb = new CPStringBuilder(); int idx = iter.getIndex(); ! for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) sb.append(c); iter.setIndex( idx ); return sb.toString(); *************** public final class TextLayout implements *** 377,389 **** Font f = (Font)iter.getAttribute(TextAttribute.FONT); if( f == null ) { ! int size; ! Float i = (Float)iter.getAttribute(TextAttribute.SIZE); ! if( i != null ) ! size = (int)i.floatValue(); ! else ! size = 14; ! f = new Font("Dialog", Font.PLAIN, size ); } return f; } --- 377,389 ---- Font f = (Font)iter.getAttribute(TextAttribute.FONT); if( f == null ) { ! int size; ! Float i = (Float)iter.getAttribute(TextAttribute.SIZE); ! if( i != null ) ! size = (int)i.floatValue(); ! else ! size = 14; ! f = new Font("Dialog", Font.PLAIN, size ); } return f; } *************** public final class TextLayout implements *** 400,420 **** leftToRight = true; while( i < endOffs && !gotDirection ) switch( Character.getDirectionality(string[i++]) ) ! { ! case Character.DIRECTIONALITY_LEFT_TO_RIGHT: ! case Character.DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING: ! case Character.DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE: ! gotDirection = true; ! break; ! ! case Character.DIRECTIONALITY_RIGHT_TO_LEFT: ! case Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC: ! case Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING: ! case Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE: ! leftToRight = false; ! gotDirection = true; ! break; ! } determineWhiteSpace(); } --- 400,420 ---- leftToRight = true; while( i < endOffs && !gotDirection ) switch( Character.getDirectionality(string[i++]) ) ! { ! case Character.DIRECTIONALITY_LEFT_TO_RIGHT: ! case Character.DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING: ! case Character.DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE: ! gotDirection = true; ! break; ! ! case Character.DIRECTIONALITY_RIGHT_TO_LEFT: ! case Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC: ! case Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING: ! case Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE: ! leftToRight = false; ! gotDirection = true; ! break; ! } determineWhiteSpace(); } *************** public final class TextLayout implements *** 422,435 **** { // Determine if there's whitespace in the thing. // Ignore trailing chars. ! int i = offset + length - 1; hasWhitespace = false; while( i >= offset && Character.isWhitespace( string[i] ) ) i--; // Check the remaining chars while( i >= offset ) if( Character.isWhitespace( string[i--] ) ) ! hasWhitespace = true; } protected Object clone () --- 422,435 ---- { // Determine if there's whitespace in the thing. // Ignore trailing chars. ! int i = offset + length - 1; hasWhitespace = false; while( i >= offset && Character.isWhitespace( string[i] ) ) i--; // Check the remaining chars while( i >= offset ) if( Character.isWhitespace( string[i--] ) ) ! hasWhitespace = true; } protected Object clone () *************** public final class TextLayout implements *** 437,444 **** return new TextLayout( this, 0, length); } ! public void draw (Graphics2D g2, float x, float y) ! { for(int i = 0; i < runs.length; i++) { Run run = runs[i]; --- 437,444 ---- return new TextLayout( this, 0, length); } ! public void draw (Graphics2D g2, float x, float y) ! { for(int i = 0; i < runs.length; i++) { Run run = runs[i]; *************** public final class TextLayout implements *** 464,470 **** // Compare all glyph vectors. for( int i = 0; i < runs.length; i++ ) if( !runs[i].equals( tl.runs[i] ) ) ! return false; return true; } --- 464,470 ---- // Compare all glyph vectors. for( int i = 0; i < runs.length; i++ ) if( !runs[i].equals( tl.runs[i] ) ) ! return false; return true; } *************** public final class TextLayout implements *** 501,546 **** public Shape getBlackBoxBounds (int firstEndpoint, int secondEndpoint) { if( secondEndpoint - firstEndpoint <= 0 ) ! return new Rectangle2D.Float(); // Hmm? if( firstEndpoint < 0 || secondEndpoint > getCharacterCount()) return new Rectangle2D.Float(); GeneralPath gp = new GeneralPath(); ! int ri = charIndices[ firstEndpoint ][0]; int gi = charIndices[ firstEndpoint ][1]; double advance = 0; ! for( int i = 0; i < ri; i++ ) { Run run = runs[i]; GlyphVector gv = run.glyphVector; advance += gv.getLogicalBounds().getWidth(); } ! for( int i = ri; i <= charIndices[ secondEndpoint - 1 ][0]; i++ ) { Run run = runs[i]; GlyphVector gv = run.glyphVector; ! int dg; ! if( i == charIndices[ secondEndpoint - 1 ][0] ) ! dg = charIndices[ secondEndpoint - 1][1]; ! else ! dg = gv.getNumGlyphs() - 1; ! for( int j = 0; j <= dg; j++ ) ! { ! Rectangle2D r2 = (gv.getGlyphVisualBounds( j )). ! getBounds2D(); ! Point2D p = gv.getGlyphPosition( j ); ! r2.setRect( advance + r2.getX(), r2.getY(), ! r2.getWidth(), r2.getHeight() ); ! gp.append(r2, false); ! } ! advance += gv.getLogicalBounds().getWidth(); } return gp; } --- 501,546 ---- public Shape getBlackBoxBounds (int firstEndpoint, int secondEndpoint) { if( secondEndpoint - firstEndpoint <= 0 ) ! return new Rectangle2D.Float(); // Hmm? if( firstEndpoint < 0 || secondEndpoint > getCharacterCount()) return new Rectangle2D.Float(); GeneralPath gp = new GeneralPath(); ! int ri = charIndices[ firstEndpoint ][0]; int gi = charIndices[ firstEndpoint ][1]; double advance = 0; ! for( int i = 0; i < ri; i++ ) { Run run = runs[i]; GlyphVector gv = run.glyphVector; advance += gv.getLogicalBounds().getWidth(); } ! for( int i = ri; i <= charIndices[ secondEndpoint - 1 ][0]; i++ ) { Run run = runs[i]; GlyphVector gv = run.glyphVector; ! int dg; ! if( i == charIndices[ secondEndpoint - 1 ][0] ) ! dg = charIndices[ secondEndpoint - 1][1]; ! else ! dg = gv.getNumGlyphs() - 1; ! for( int j = 0; j <= dg; j++ ) ! { ! Rectangle2D r2 = (gv.getGlyphVisualBounds( j )). ! getBounds2D(); ! Point2D p = gv.getGlyphPosition( j ); ! r2.setRect( advance + r2.getX(), r2.getY(), ! r2.getWidth(), r2.getHeight() ); ! gp.append(r2, false); ! } ! advance += gv.getLogicalBounds().getWidth(); } return gp; } *************** public final class TextLayout implements *** 564,570 **** boolean leading = hit.isLeadingEdge(); // For the boundary cases we return the boundary runs. Run run; ! if (index >= length) { info[0] = getAdvance(); --- 564,570 ---- boolean leading = hit.isLeadingEdge(); // For the boundary cases we return the boundary runs. Run run; ! if (index >= length) { info[0] = getAdvance(); *************** public final class TextLayout implements *** 710,724 **** public Shape getLogicalHighlightShape (int firstEndpoint, int secondEndpoint) { ! return getLogicalHighlightShape( firstEndpoint, secondEndpoint, ! getBounds() ); } public Shape getLogicalHighlightShape (int firstEndpoint, int secondEndpoint, Rectangle2D bounds) { if( secondEndpoint - firstEndpoint <= 0 ) ! return new Rectangle2D.Float(); // Hmm? if( firstEndpoint < 0 || secondEndpoint > getCharacterCount()) return new Rectangle2D.Float(); --- 710,724 ---- public Shape getLogicalHighlightShape (int firstEndpoint, int secondEndpoint) { ! return getLogicalHighlightShape( firstEndpoint, secondEndpoint, ! getBounds() ); } public Shape getLogicalHighlightShape (int firstEndpoint, int secondEndpoint, Rectangle2D bounds) { if( secondEndpoint - firstEndpoint <= 0 ) ! return new Rectangle2D.Float(); // Hmm? if( firstEndpoint < 0 || secondEndpoint > getCharacterCount()) return new Rectangle2D.Float(); *************** public final class TextLayout implements *** 728,734 **** int gi = charIndices[ firstEndpoint ][1]; double advance = 0; ! for( int i = 0; i < ri; i++ ) advance += runs[i].glyphVector.getLogicalBounds().getWidth(); --- 728,734 ---- int gi = charIndices[ firstEndpoint ][1]; double advance = 0; ! for( int i = 0; i < ri; i++ ) advance += runs[i].glyphVector.getLogicalBounds().getWidth(); *************** public final class TextLayout implements *** 736,759 **** { Run run = runs[i]; GlyphVector gv = run.glyphVector; ! int dg; // last index in this run to use. ! if( i == charIndices[ secondEndpoint - 1 ][0] ) ! dg = charIndices[ secondEndpoint - 1][1]; ! else ! dg = gv.getNumGlyphs() - 1; ! for(; gi <= dg; gi++ ) ! { ! Rectangle2D r2 = (gv.getGlyphLogicalBounds( gi )). ! getBounds2D(); ! if( r == null ) ! r = r2; ! else ! r = r.createUnion(r2); ! } ! gi = 0; // reset glyph index into run for next run. ! advance += gv.getLogicalBounds().getWidth(); } return r; --- 736,759 ---- { Run run = runs[i]; GlyphVector gv = run.glyphVector; ! int dg; // last index in this run to use. ! if( i == charIndices[ secondEndpoint - 1 ][0] ) ! dg = charIndices[ secondEndpoint - 1][1]; ! else ! dg = gv.getNumGlyphs() - 1; ! for(; gi <= dg; gi++ ) ! { ! Rectangle2D r2 = (gv.getGlyphLogicalBounds( gi )). ! getBounds2D(); ! if( r == null ) ! r = r2; ! else ! r = r.createUnion(r2); ! } ! gi = 0; // reset glyph index into run for next run. ! advance += gv.getLogicalBounds().getWidth(); } return r; *************** public final class TextLayout implements *** 901,909 **** for(int i = 0; i < runs.length; i++) { GlyphVector gv = runs[i].glyphVector; ! gp.append( gv.getOutline( x, 0f ), false ); ! Rectangle2D r = gv.getLogicalBounds(); ! x += r.getWidth(); } if( tx != null ) gp.transform( tx ); --- 901,909 ---- for(int i = 0; i < runs.length; i++) { GlyphVector gv = runs[i].glyphVector; ! gp.append( gv.getOutline( x, 0f ), false ); ! Rectangle2D r = gv.getLogicalBounds(); ! x += r.getWidth(); } if( tx != null ) gp.transform( tx ); *************** public final class TextLayout implements *** 935,956 **** int lastNonWSChar = j - lastRun; j = 0; while( runs[ runs.length - 1 ].glyphVector.getGlyphCharIndex( j ) ! <= lastNonWSChar ) { ! totalAdvance += runs[ runs.length - 1 ].glyphVector .getGlyphLogicalBounds( j ) .getBounds2D().getWidth(); ! j ++; } ! return totalAdvance; } public Shape getVisualHighlightShape (TextHitInfo firstEndpoint, TextHitInfo secondEndpoint) { ! return getVisualHighlightShape( firstEndpoint, secondEndpoint, ! getBounds() ); } public Shape getVisualHighlightShape (TextHitInfo firstEndpoint, --- 935,956 ---- int lastNonWSChar = j - lastRun; j = 0; while( runs[ runs.length - 1 ].glyphVector.getGlyphCharIndex( j ) ! <= lastNonWSChar ) { ! totalAdvance += runs[ runs.length - 1 ].glyphVector .getGlyphLogicalBounds( j ) .getBounds2D().getWidth(); ! j ++; } ! return totalAdvance; } public Shape getVisualHighlightShape (TextHitInfo firstEndpoint, TextHitInfo secondEndpoint) { ! return getVisualHighlightShape( firstEndpoint, secondEndpoint, ! getBounds() ); } public Shape getVisualHighlightShape (TextHitInfo firstEndpoint, *************** public final class TextLayout implements *** 1102,1118 **** { Run current = runs[run]; for(int i = 0; i < current.glyphVector.getNumGlyphs(); i++ ) ! { ! int cindex = current.runStart + current.glyphVector.getGlyphCharIndex( i ); ! if( Character.isWhitespace( string[cindex] ) ) ! // && cindex < lastNWS ) ! { ! wsglyphs[ nglyphs * 2 ] = run; ! wsglyphs[ nglyphs * 2 + 1] = i; ! nglyphs++; ! } ! } } deltaW = deltaW / nglyphs; // Change in width per whitespace glyph double w = 0; --- 1102,1118 ---- { Run current = runs[run]; for(int i = 0; i < current.glyphVector.getNumGlyphs(); i++ ) ! { ! int cindex = current.runStart + current.glyphVector.getGlyphCharIndex( i ); ! if( Character.isWhitespace( string[cindex] ) ) ! // && cindex < lastNWS ) ! { ! wsglyphs[ nglyphs * 2 ] = run; ! wsglyphs[ nglyphs * 2 + 1] = i; ! nglyphs++; ! } ! } } deltaW = deltaW / nglyphs; // Change in width per whitespace glyph double w = 0; *************** public final class TextLayout implements *** 1394,1401 **** } public TextHitInfo getStrongCaret(TextHitInfo hit1, ! TextHitInfo hit2, ! TextLayout layout) { byte l1 = layout.getCharacterLevel(hit1.getCharIndex()); byte l2 = layout.getCharacterLevel(hit2.getCharIndex()); --- 1394,1401 ---- } public TextHitInfo getStrongCaret(TextHitInfo hit1, ! TextHitInfo hit2, ! TextLayout layout) { byte l1 = layout.getCharacterLevel(hit1.getCharIndex()); byte l2 = layout.getCharacterLevel(hit2.getCharIndex()); *************** public final class TextLayout implements *** 1418,1422 **** } } } - - --- 1418,1420 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/TextMeasurer.java gcc-4.6.0/libjava/classpath/java/awt/font/TextMeasurer.java *** gcc-4.5.2/libjava/classpath/java/awt/font/TextMeasurer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/font/TextMeasurer.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Shape; *** 43,49 **** /** * TextMeasurer is a small utility class for measuring the length of laid-out ! * text objects. * * @author Sven de Marothy * @since 1.3 --- 43,49 ---- /** * TextMeasurer is a small utility class for measuring the length of laid-out ! * text objects. * * @author Sven de Marothy * @since 1.3 *************** public final class TextMeasurer implemen *** 57,65 **** /** * Creates a TextMeasurer from a given text in the form of an ! * AttributedCharacterIterator and a * FontRenderContext. ! */ public TextMeasurer (AttributedCharacterIterator text, FontRenderContext frc) { this.text = text; --- 57,65 ---- /** * Creates a TextMeasurer from a given text in the form of an ! * AttributedCharacterIterator and a * FontRenderContext. ! */ public TextMeasurer (AttributedCharacterIterator text, FontRenderContext frc) { this.text = text; *************** public final class TextMeasurer implemen *** 139,160 **** * * @param start - the starting index. * @param maxAdvance - the maximum advance allowed. ! * @return the index of the first character beyond maxAdvance, or the * index of the last character + 1. */ public int getLineBreakIndex (int start, float maxAdvance) ! { if( start < 0 ) throw new IllegalArgumentException("Start parameter must be > 0."); double remainingLength = getAdvanceBetween( start, numChars ); ! int guessOffset = (int)( ( (double)maxAdvance / (double)remainingLength) ! * ( (double)numChars - (double)start ) ); guessOffset += start; if( guessOffset > numChars ) guessOffset = numChars; ! double guessLength = getAdvanceBetween( start, guessOffset ); boolean makeSmaller = ( guessLength > maxAdvance ); int inc = makeSmaller ? -1 : 1; --- 139,160 ---- * * @param start - the starting index. * @param maxAdvance - the maximum advance allowed. ! * @return the index of the first character beyond maxAdvance, or the * index of the last character + 1. */ public int getLineBreakIndex (int start, float maxAdvance) ! { if( start < 0 ) throw new IllegalArgumentException("Start parameter must be > 0."); double remainingLength = getAdvanceBetween( start, numChars ); ! int guessOffset = (int)( ( (double)maxAdvance / (double)remainingLength) ! * ( (double)numChars - (double)start ) ); guessOffset += start; if( guessOffset > numChars ) guessOffset = numChars; ! double guessLength = getAdvanceBetween( start, guessOffset ); boolean makeSmaller = ( guessLength > maxAdvance ); int inc = makeSmaller ? -1 : 1; *************** public final class TextMeasurer implemen *** 162,180 **** do { ! guessOffset = guessOffset + inc; ! if( guessOffset <= start || guessOffset > numChars ) ! { ! keepGoing = false; ! } ! else ! { ! guessLength = getAdvanceBetween( start, guessOffset ); ! if( makeSmaller && ( guessLength <= maxAdvance) ) ! keepGoing = false; ! if( !makeSmaller && ( guessLength >= maxAdvance) ) ! keepGoing = false; ! } } while( keepGoing ); --- 162,180 ---- do { ! guessOffset = guessOffset + inc; ! if( guessOffset <= start || guessOffset > numChars ) ! { ! keepGoing = false; ! } ! else ! { ! guessLength = getAdvanceBetween( start, guessOffset ); ! if( makeSmaller && ( guessLength <= maxAdvance) ) ! keepGoing = false; ! if( !makeSmaller && ( guessLength >= maxAdvance) ) ! keepGoing = false; ! } } while( keepGoing ); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/font/TransformAttribute.java gcc-4.6.0/libjava/classpath/java/awt/font/TransformAttribute.java *** gcc-4.5.2/libjava/classpath/java/awt/font/TransformAttribute.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/font/TransformAttribute.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 43,54 **** /** * This class provides a mechanism for using an {@link AffineTransform} as ! * an immutable attribute (for example, in the ! * {@link java.text.AttributedString} class). Any transform passed to * this class is copied before being stored, and any transform handed out ! * by this class is a copy of the stored transform. In this way, it is * not possible to modify the stored transform. ! * * @author Michael Koch */ public final class TransformAttribute implements Serializable --- 43,54 ---- /** * This class provides a mechanism for using an {@link AffineTransform} as ! * an immutable attribute (for example, in the ! * {@link java.text.AttributedString} class). Any transform passed to * this class is copied before being stored, and any transform handed out ! * by this class is a copy of the stored transform. In this way, it is * not possible to modify the stored transform. ! * * @author Michael Koch */ public final class TransformAttribute implements Serializable *************** public final class TransformAttribute im *** 56,71 **** private static final long serialVersionUID = 3356247357827709530L; private AffineTransform affineTransform; ! /** * Creates a new attribute that contains a copy of the given transform. ! * * @param transform the transform (null not permitted). ! * ! * @throws IllegalArgumentException if transform is * null. */ ! public TransformAttribute (AffineTransform transform) { if (transform == null) { --- 56,71 ---- private static final long serialVersionUID = 3356247357827709530L; private AffineTransform affineTransform; ! /** * Creates a new attribute that contains a copy of the given transform. ! * * @param transform the transform (null not permitted). ! * ! * @throws IllegalArgumentException if transform is * null. */ ! public TransformAttribute (AffineTransform transform) { if (transform == null) { *************** public final class TransformAttribute im *** 76,82 **** /** * Returns a copy of the transform contained by this attribute. ! * * @return A copy of the transform. */ public AffineTransform getTransform () --- 76,82 ---- /** * Returns a copy of the transform contained by this attribute. ! * * @return A copy of the transform. */ public AffineTransform getTransform () *************** public final class TransformAttribute im *** 87,96 **** /** * Returns true if the transform contained by this attribute is * an identity transform, and false otherwise. ! * * @return true if the transform contained by this attribute is * an identity transform, and false otherwise. ! * * @since 1.4 */ public boolean isIdentity () --- 87,96 ---- /** * Returns true if the transform contained by this attribute is * an identity transform, and false otherwise. ! * * @return true if the transform contained by this attribute is * an identity transform, and false otherwise. ! * * @since 1.4 */ public boolean isIdentity () diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/AffineTransform.java gcc-4.6.0/libjava/classpath/java/awt/geom/AffineTransform.java *** gcc-4.5.2/libjava/classpath/java/awt/geom/AffineTransform.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/geom/AffineTransform.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 57,63 **** * [ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ] * * The bottom row of the matrix is constant, so a transform can be uniquely ! * represented (as in {@link #toString()}) by * "[[m00, m01, m02], [m10, m11, m12]]". * * @author Tom Tromey (tromey@cygnus.com) --- 57,63 ---- * [ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ] * * The bottom row of the matrix is constant, so a transform can be uniquely ! * represented (as in {@link #toString()}) by * "[[m00, m01, m02], [m10, m11, m12]]". * * @author Tom Tromey (tromey@cygnus.com) *************** public class AffineTransform implements *** 450,456 **** * tx.translate(-x, -y); * * ! *

        The resulting matrix is: *

             * [ cos(theta) -sin(theta) x-x*cos+y*sin ]
             * [ sin(theta)  cos(theta) y-x*sin-y*cos ]
        --- 450,456 ----
             * tx.translate(-x, -y);
             * 
        * ! *

        The resulting matrix is: *

             * [ cos(theta) -sin(theta) x-x*cos+y*sin ]
             * [ sin(theta)  cos(theta) y-x*sin-y*cos ]
        *************** public class AffineTransform implements 
        *** 521,527 ****
             * TYPE_*_ROTATIONs, and the mutually exclusive TYPE_*_SCALEs.
             *
             * @return The type.
        !    * 
             * @see #TYPE_IDENTITY
             * @see #TYPE_TRANSLATION
             * @see #TYPE_UNIFORM_SCALE
        --- 521,527 ----
             * TYPE_*_ROTATIONs, and the mutually exclusive TYPE_*_SCALEs.
             *
             * @return The type.
        !    *
             * @see #TYPE_IDENTITY
             * @see #TYPE_TRANSLATION
             * @see #TYPE_UNIFORM_SCALE
        *************** public class AffineTransform implements 
        *** 825,831 ****
             * tx.translate(-x, -y);
             * 
        * ! *

        The resulting matrix is: *

             * [ cos(theta) -sin(theta) x-x*cos+y*sin ]
             * [ sin(theta)  cos(theta) y-x*sin-y*cos ]
        --- 825,831 ----
             * tx.translate(-x, -y);
             * 
        * ! *

        The resulting matrix is: *

             * [ cos(theta) -sin(theta) x-x*cos+y*sin ]
             * [ sin(theta)  cos(theta) y-x*sin-y*cos ]
        *************** public class AffineTransform implements 
        *** 1002,1020 ****
             * if getDeterminant() has a non-zero value.
             *
             * The inverse is calculated as:
        !    * 
             * 
             *
             * Let A be the matrix for which we want to find the inverse:
             *
             * A = [ m00 m01 m02 ]
             *     [ m10 m11 m12 ]
        !    *     [ 0   0   1   ] 
             *
             *
        !    *                 1    
        !    * inverse (A) =  ---   x  adjoint(A) 
        !    *                det 
             *
             *
             *
        --- 1002,1020 ----
             * if getDeterminant() has a non-zero value.
             *
             * The inverse is calculated as:
        !    *
             * 
             *
             * Let A be the matrix for which we want to find the inverse:
             *
             * A = [ m00 m01 m02 ]
             *     [ m10 m11 m12 ]
        !    *     [ 0   0   1   ]
             *
             *
        !    *                 1
        !    * inverse (A) =  ---   x  adjoint(A)
        !    *                det
             *
             *
             *
        *************** public class AffineTransform implements 
        *** 1043,1056 ****
              double det = getDeterminant();
              if (det == 0)
                throw new NoninvertibleTransformException("can't invert transform");
        !     
              double im00 = m11 / det;
              double im10 = -m10 / det;
              double im01 = -m01 / det;
              double im11 = m00 / det;
              double im02 = (m01 * m12 - m02 * m11) / det;
              double im12 = (-m00 * m12 + m10 * m02) / det;
        !     
              return new AffineTransform (im00, im10, im01, im11, im02, im12);
            }
          
        --- 1043,1056 ----
              double det = getDeterminant();
              if (det == 0)
                throw new NoninvertibleTransformException("can't invert transform");
        ! 
              double im00 = m11 / det;
              double im10 = -m10 / det;
              double im01 = -m01 / det;
              double im11 = m00 / det;
              double im02 = (m01 * m12 - m02 * m11) / det;
              double im12 = (-m00 * m12 + m10 * m02) / det;
        ! 
              return new AffineTransform (im00, im10, im01, im11, im02, im12);
            }
          
        *************** public class AffineTransform implements 
        *** 1335,1347 ****
             * which only stores points in float precision.
             *
             * @param src the shape source to transform
        !    * @return the shape, transformed by this, null if src is 
             * null.
             * @see GeneralPath#transform(AffineTransform)
             */
            public Shape createTransformedShape(Shape src)
            {
        !     if(src == null) 
                return null;
              GeneralPath p = new GeneralPath(src);
              p.transform(this);
        --- 1335,1347 ----
             * which only stores points in float precision.
             *
             * @param src the shape source to transform
        !    * @return the shape, transformed by this, null if src is
             * null.
             * @see GeneralPath#transform(AffineTransform)
             */
            public Shape createTransformedShape(Shape src)
            {
        !     if(src == null)
                return null;
              GeneralPath p = new GeneralPath(src);
              p.transform(this);
        *************** public class AffineTransform implements 
        *** 1413,1424 ****
             */
            public int hashCode()
            {
        !     long l = Double.doubleToLongBits(m00); 
        !     l = l * 31 + Double.doubleToLongBits(m01); 
        !     l = l * 31 + Double.doubleToLongBits(m02); 
        !     l = l * 31 + Double.doubleToLongBits(m10); 
        !     l = l * 31 + Double.doubleToLongBits(m11); 
        !     l = l * 31 + Double.doubleToLongBits(m12); 
              return (int) ((l >> 32) ^ l);
            }
          
        --- 1413,1424 ----
             */
            public int hashCode()
            {
        !     long l = Double.doubleToLongBits(m00);
        !     l = l * 31 + Double.doubleToLongBits(m01);
        !     l = l * 31 + Double.doubleToLongBits(m02);
        !     l = l * 31 + Double.doubleToLongBits(m10);
        !     l = l * 31 + Double.doubleToLongBits(m11);
        !     l = l * 31 + Double.doubleToLongBits(m12);
              return (int) ((l >> 32) ^ l);
            }
          
        diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/Arc2D.java gcc-4.6.0/libjava/classpath/java/awt/geom/Arc2D.java
        *** gcc-4.5.2/libjava/classpath/java/awt/geom/Arc2D.java	Sat Jun 28 13:29:13 2008
        --- gcc-4.6.0/libjava/classpath/java/awt/geom/Arc2D.java	Tue Jan 11 19:46:05 2011
        *************** public abstract class Arc2D extends Rect
        *** 254,262 ****
              if ((p2.getX() - p1.getX()) * (p3.getY() - p1.getY())
                  - (p3.getX() - p1.getX()) * (p2.getY() - p1.getY()) > 0)
                {
        ! 	Point2D p = p3;
        ! 	p3 = p1;
        ! 	p1 = p;
                }
          
              // normalized tangent vectors
        --- 254,262 ----
              if ((p2.getX() - p1.getX()) * (p3.getY() - p1.getY())
                  - (p3.getX() - p1.getX()) * (p2.getY() - p1.getY()) > 0)
                {
        !         Point2D p = p3;
        !         p3 = p1;
        !         p1 = p;
                }
          
              // normalized tangent vectors
        *************** public abstract class Arc2D extends Rect
        *** 277,283 ****
              if (theta2 < theta1)
                theta2 += 2 * Math.PI;
          
        !     // Vectors of the lines, not normalized, note we change 
              // the direction of line 2.
              dx1 = p1.getX() - p2.getX();
              dy1 = p1.getY() - p2.getY();
        --- 277,283 ----
              if (theta2 < theta1)
                theta2 += 2 * Math.PI;
          
        !     // Vectors of the lines, not normalized, note we change
              // the direction of line 2.
              dx1 = p1.getX() - p2.getX();
              dy1 = p1.getY() - p2.getY();
        *************** public abstract class Arc2D extends Rect
        *** 478,485 ****
          
              if (extent < 0)
                {
        ! 	end = start;
        ! 	start += extent;
                }
          
              start %= 360;
        --- 478,485 ----
          
              if (extent < 0)
                {
        !         end = start;
        !         start += extent;
                }
          
              start %= 360;
        *************** public abstract class Arc2D extends Rect
        *** 539,553 ****
          
              if (Math.abs(extent) > 180)
                {
        ! 	if (containsAngle(angle))
        ! 	  return true;
        ! 	return sgn > 0;
                }
              else
                {
        ! 	if (! containsAngle(angle))
        ! 	  return false;
        ! 	return sgn < 0;
                }
            }
          
        --- 539,553 ----
          
              if (Math.abs(extent) > 180)
                {
        !         if (containsAngle(angle))
        !           return true;
        !         return sgn > 0;
                }
              else
                {
        !         if (! containsAngle(angle))
        !           return false;
        !         return sgn < 0;
                }
            }
          
        *************** public abstract class Arc2D extends Rect
        *** 587,597 ****
          
              if (getArcType() != CHORD)
                {
        ! 	// check intersections against the pie radii
        ! 	if (rect.intersectsLine(mx, my, x1, y1))
        ! 	  return true;
        ! 	if (rect.intersectsLine(mx, my, x2, y2))
        ! 	  return true;
                }
              else// check the chord
              if (rect.intersectsLine(x1, y1, x2, y2))
        --- 587,597 ----
          
              if (getArcType() != CHORD)
                {
        !         // check intersections against the pie radii
        !         if (rect.intersectsLine(mx, my, x1, y1))
        !           return true;
        !         if (rect.intersectsLine(mx, my, x2, y2))
        !           return true;
                }
              else// check the chord
              if (rect.intersectsLine(x1, y1, x2, y2))
        *************** public abstract class Arc2D extends Rect
        *** 606,651 ****
              dx = a * Math.sqrt(1 - ((dy * dy) / (b * b)));
              if (! java.lang.Double.isNaN(dx))
                {
        ! 	if (mx + dx >= x && mx + dx <= x + w
        ! 	    && containsAngle(Math.toDegrees(Math.atan2(-dy, dx))))
        ! 	  return true;
        ! 	if (mx - dx >= x && mx - dx <= x + w
        ! 	    && containsAngle(Math.toDegrees(Math.atan2(-dy, -dx))))
        ! 	  return true;
                }
              dy = (y + h) - my;
              dx = a * Math.sqrt(1 - ((dy * dy) / (b * b)));
              if (! java.lang.Double.isNaN(dx))
                {
        ! 	if (mx + dx >= x && mx + dx <= x + w
        ! 	    && containsAngle(Math.toDegrees(Math.atan2(-dy, dx))))
        ! 	  return true;
        ! 	if (mx - dx >= x && mx - dx <= x + w
        ! 	    && containsAngle(Math.toDegrees(Math.atan2(-dy, -dx))))
        ! 	  return true;
                }
              dx = x - mx;
              dy = b * Math.sqrt(1 - ((dx * dx) / (a * a)));
              if (! java.lang.Double.isNaN(dy))
                {
        ! 	if (my + dy >= y && my + dy <= y + h
        ! 	    && containsAngle(Math.toDegrees(Math.atan2(-dy, dx))))
        ! 	  return true;
        ! 	if (my - dy >= y && my - dy <= y + h
        ! 	    && containsAngle(Math.toDegrees(Math.atan2(dy, dx))))
        ! 	  return true;
                }
          
              dx = (x + w) - mx;
              dy = b * Math.sqrt(1 - ((dx * dx) / (a * a)));
              if (! java.lang.Double.isNaN(dy))
                {
        ! 	if (my + dy >= y && my + dy <= y + h
        ! 	    && containsAngle(Math.toDegrees(Math.atan2(-dy, dx))))
        ! 	  return true;
        ! 	if (my - dy >= y && my - dy <= y + h
        ! 	    && containsAngle(Math.toDegrees(Math.atan2(dy, dx))))
        ! 	  return true;
                }
          
              // Check whether the arc is contained within the box
        --- 606,651 ----
              dx = a * Math.sqrt(1 - ((dy * dy) / (b * b)));
              if (! java.lang.Double.isNaN(dx))
                {
        !         if (mx + dx >= x && mx + dx <= x + w
        !             && containsAngle(Math.toDegrees(Math.atan2(-dy, dx))))
        !           return true;
        !         if (mx - dx >= x && mx - dx <= x + w
        !             && containsAngle(Math.toDegrees(Math.atan2(-dy, -dx))))
        !           return true;
                }
              dy = (y + h) - my;
              dx = a * Math.sqrt(1 - ((dy * dy) / (b * b)));
              if (! java.lang.Double.isNaN(dx))
                {
        !         if (mx + dx >= x && mx + dx <= x + w
        !             && containsAngle(Math.toDegrees(Math.atan2(-dy, dx))))
        !           return true;
        !         if (mx - dx >= x && mx - dx <= x + w
        !             && containsAngle(Math.toDegrees(Math.atan2(-dy, -dx))))
        !           return true;
                }
              dx = x - mx;
              dy = b * Math.sqrt(1 - ((dx * dx) / (a * a)));
              if (! java.lang.Double.isNaN(dy))
                {
        !         if (my + dy >= y && my + dy <= y + h
        !             && containsAngle(Math.toDegrees(Math.atan2(-dy, dx))))
        !           return true;
        !         if (my - dy >= y && my - dy <= y + h
        !             && containsAngle(Math.toDegrees(Math.atan2(dy, dx))))
        !           return true;
                }
          
              dx = (x + w) - mx;
              dy = b * Math.sqrt(1 - ((dx * dx) / (a * a)));
              if (! java.lang.Double.isNaN(dy))
                {
        !         if (my + dy >= y && my + dy <= y + h
        !             && containsAngle(Math.toDegrees(Math.atan2(-dy, dx))))
        !           return true;
        !         if (my - dy >= y && my - dy <= y + h
        !             && containsAngle(Math.toDegrees(Math.atan2(dy, dx))))
        !           return true;
                }
          
              // Check whether the arc is contained within the box
        *************** public abstract class Arc2D extends Rect
        *** 687,698 ****
              double y2 = my - b * Math.sin(Math.toRadians(getAngleStart() + extent));
              if (getArcType() != CHORD)
                {
        ! 	// check intersections against the pie radii
        ! 	if (rect.intersectsLine(mx, my, x1, y1))
        ! 	  return false;
          
        ! 	if (rect.intersectsLine(mx, my, x2, y2))
        ! 	  return false;
                }
              else if (rect.intersectsLine(x1, y1, x2, y2))
                return false;
        --- 687,698 ----
              double y2 = my - b * Math.sin(Math.toRadians(getAngleStart() + extent));
              if (getArcType() != CHORD)
                {
        !         // check intersections against the pie radii
        !         if (rect.intersectsLine(mx, my, x1, y1))
        !           return false;
          
        !         if (rect.intersectsLine(mx, my, x2, y2))
        !           return false;
                }
              else if (rect.intersectsLine(x1, y1, x2, y2))
                return false;
        *************** public abstract class Arc2D extends Rect
        *** 782,798 ****
          
                type = a.type;
                if (w < 0 || h < 0)
        ! 	limit = -1;
                else if (extent == 0)
        ! 	limit = type;
                else if (Math.abs(extent) <= Math.PI / 2.0)
        ! 	limit = type + 1;
                else if (Math.abs(extent) <= Math.PI)
        ! 	limit = type + 2;
                else if (Math.abs(extent) <= 3.0 * (Math.PI / 2.0))
        ! 	limit = type + 3;
                else
        ! 	limit = type + 4;
              }
          
              /**
        --- 782,798 ----
          
                type = a.type;
                if (w < 0 || h < 0)
        !         limit = -1;
                else if (extent == 0)
        !         limit = type;
                else if (Math.abs(extent) <= Math.PI / 2.0)
        !         limit = type + 1;
                else if (Math.abs(extent) <= Math.PI)
        !         limit = type + 2;
                else if (Math.abs(extent) <= 3.0 * (Math.PI / 2.0))
        !         limit = type + 3;
                else
        !         limit = type + 4;
              }
          
              /**
        *************** public abstract class Arc2D extends Rect
        *** 855,861 ****
                double[] double_coords = new double[6];
                int code = currentSegment(double_coords);
                for (int i = 0; i < 6; ++i)
        ! 	coords[i] = (float) double_coords[i];
                return code;
              }
          
        --- 855,861 ----
                double[] double_coords = new double[6];
                int code = currentSegment(double_coords);
                for (int i = 0; i < 6; ++i)
        !         coords[i] = (float) double_coords[i];
                return code;
              }
          
        *************** public abstract class Arc2D extends Rect
        *** 875,901 ****
                double ymid = y + ry;
          
                if (current > limit)
        ! 	throw new NoSuchElementException("arc iterator out of bounds");
          
                if (current == 0)
                  {
        ! 	  coords[0] = xmid + rx * Math.cos(start);
        ! 	  coords[1] = ymid - ry * Math.sin(start);
        ! 	  if (xform != null)
        ! 	    xform.transform(coords, 0, coords, 0, 1);
        ! 	  return SEG_MOVETO;
                  }
          
                if (type != OPEN && current == limit)
        ! 	return SEG_CLOSE;
          
                if ((current == limit - 1) && (type == PIE))
                  {
        ! 	  coords[0] = xmid;
        ! 	  coords[1] = ymid;
        ! 	  if (xform != null)
        ! 	    xform.transform(coords, 0, coords, 0, 1);
        ! 	  return SEG_LINETO;
                  }
          
                // note that this produces a cubic approximation of the arc segment,
        --- 875,901 ----
                double ymid = y + ry;
          
                if (current > limit)
        !         throw new NoSuchElementException("arc iterator out of bounds");
          
                if (current == 0)
                  {
        !           coords[0] = xmid + rx * Math.cos(start);
        !           coords[1] = ymid - ry * Math.sin(start);
        !           if (xform != null)
        !             xform.transform(coords, 0, coords, 0, 1);
        !           return SEG_MOVETO;
                  }
          
                if (type != OPEN && current == limit)
        !         return SEG_CLOSE;
          
                if ((current == limit - 1) && (type == PIE))
                  {
        !           coords[0] = xmid;
        !           coords[1] = ymid;
        !           if (xform != null)
        !             xform.transform(coords, 0, coords, 0, 1);
        !           return SEG_LINETO;
                  }
          
                // note that this produces a cubic approximation of the arc segment,
        *************** public abstract class Arc2D extends Rect
        *** 916,922 ****
                    curr_begin = start - (current - 1) * quad;
                    curr_extent = Math.max((start + extent) - curr_begin, -quad);
                  }
        !       
                double portion_of_a_quadrant = Math.abs(curr_extent / quad);
          
                double x0 = xmid + rx * Math.cos(curr_begin);
        --- 916,922 ----
                    curr_begin = start - (current - 1) * quad;
                    curr_extent = Math.max((start + extent) - curr_begin, -quad);
                  }
        ! 
                double portion_of_a_quadrant = Math.abs(curr_extent / quad);
          
                double x0 = xmid + rx * Math.cos(curr_begin);
        *************** public abstract class Arc2D extends Rect
        *** 942,948 ****
                  cvec[1] = len;
                else
                  cvec[1] = -len;
        !       
                trans.scale(rx, ry);
                trans.rotate(angle);
                trans.transform(cvec, 0, cvec, 0, 1);
        --- 942,948 ----
                  cvec[1] = len;
                else
                  cvec[1] = -len;
        ! 
                trans.scale(rx, ry);
                trans.rotate(angle);
                trans.transform(cvec, 0, cvec, 0, 1);
        *************** public abstract class Arc2D extends Rect
        *** 956,962 ****
                  cvec[1] = -len;
                else
                  cvec[1] = len;
        !       
                trans.rotate(curr_extent);
                trans.transform(cvec, 0, cvec, 0, 1);
                coords[2] = x1 + cvec[0];
        --- 956,962 ----
                  cvec[1] = -len;
                else
                  cvec[1] = len;
        ! 
                trans.rotate(curr_extent);
                trans.transform(cvec, 0, cvec, 0, 1);
                coords[2] = x1 + cvec[0];
        *************** public abstract class Arc2D extends Rect
        *** 967,973 ****
                coords[5] = y1;
          
                if (xform != null)
        ! 	xform.transform(coords, 0, coords, 0, 3);
          
                return SEG_CUBICTO;
              }
        --- 967,973 ----
                coords[5] = y1;
          
                if (xform != null)
        !         xform.transform(coords, 0, coords, 0, 3);
          
                return SEG_CUBICTO;
              }
        diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/Area.java gcc-4.6.0/libjava/classpath/java/awt/geom/Area.java
        *** gcc-4.5.2/libjava/classpath/java/awt/geom/Area.java	Tue Nov 15 23:20:01 2005
        --- gcc-4.6.0/libjava/classpath/java/awt/geom/Area.java	Tue Jan 11 19:46:05 2011
        *************** public class Area implements Shape, Clon
        *** 126,134 ****
             * of non-self-intersecting subpaths, and any inner paths which
             * are found redundant in accordance with the Shape's winding rule
             * will not be included.
        !    * 
             * @param s  the shape (null not permitted).
        !    * 
             * @throws NullPointerException if s is null.
             */
            public Area(Shape s)
        --- 126,134 ----
             * of non-self-intersecting subpaths, and any inner paths which
             * are found redundant in accordance with the Shape's winding rule
             * will not be included.
        !    *
             * @param s  the shape (null not permitted).
        !    *
             * @throws NullPointerException if s is null.
             */
            public Area(Shape s)
        *************** public class Area implements Shape, Clon
        *** 144,150 ****
              // delete empty paths
              for (int i = 0; i < p.size(); i++)
                if (((Segment) p.elementAt(i)).getSignedArea() == 0.0)
        ! 	p.remove(i--);
          
              /*
               * Resolve self intersecting paths into non-intersecting
        --- 144,150 ----
              // delete empty paths
              for (int i = 0; i < p.size(); i++)
                if (((Segment) p.elementAt(i)).getSignedArea() == 0.0)
        !         p.remove(i--);
          
              /*
               * Resolve self intersecting paths into non-intersecting
        *************** public class Area implements Shape, Clon
        *** 162,180 ****
          
              for (int i = 0; i < p.size(); i++)
                {
        ! 	Segment path = (Segment) p.elementAt(i);
        ! 	createNodesSelf(path);
                }
          
              if (p.size() > 1)
                {
        ! 	for (int i = 0; i < p.size() - 1; i++)
        ! 	  for (int j = i + 1; j < p.size(); j++)
        ! 	    {
        ! 	      Segment path1 = (Segment) p.elementAt(i);
        ! 	      Segment path2 = (Segment) p.elementAt(j);
        ! 	      createNodes(path1, path2);
        ! 	    }
                }
          
              // we have intersecting points.
        --- 162,180 ----
          
              for (int i = 0; i < p.size(); i++)
                {
        !         Segment path = (Segment) p.elementAt(i);
        !         createNodesSelf(path);
                }
          
              if (p.size() > 1)
                {
        !         for (int i = 0; i < p.size() - 1; i++)
        !           for (int j = i + 1; j < p.size(); j++)
        !             {
        !               Segment path1 = (Segment) p.elementAt(i);
        !               Segment path2 = (Segment) p.elementAt(j);
        !               createNodes(path1, path2);
        !             }
                }
          
              // we have intersecting points.
        *************** public class Area implements Shape, Clon
        *** 182,194 ****
          
              for (int i = 0; i < p.size(); i++)
                {
        ! 	Segment path = v = (Segment) p.elementAt(i);
        ! 	do
        ! 	  {
        ! 	    segments.add(v);
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              paths = weilerAtherton(segments);
        --- 182,194 ----
          
              for (int i = 0; i < p.size(); i++)
                {
        !         Segment path = v = (Segment) p.elementAt(i);
        !         do
        !           {
        !             segments.add(v);
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              paths = weilerAtherton(segments);
        *************** public class Area implements Shape, Clon
        *** 219,230 ****
          
              for (int i = 0; i < pathA.size(); i++)
                {
        ! 	Segment a = (Segment) pathA.elementAt(i);
        ! 	for (int j = 0; j < pathB.size(); j++)
        ! 	  {
        ! 	    Segment b = (Segment) pathB.elementAt(j);
        ! 	    nNodes += createNodes(a, b);
        ! 	  }
                }
          
              Vector paths = new Vector();
        --- 219,230 ----
          
              for (int i = 0; i < pathA.size(); i++)
                {
        !         Segment a = (Segment) pathA.elementAt(i);
        !         for (int j = 0; j < pathB.size(); j++)
        !           {
        !             Segment b = (Segment) pathB.elementAt(j);
        !             nNodes += createNodes(a, b);
        !           }
                }
          
              Vector paths = new Vector();
        *************** public class Area implements Shape, Clon
        *** 237,264 ****
              // segments of A oustide B and all B outside A
              for (int i = 0; i < pathA.size(); i++)
                {
        ! 	v = (Segment) pathA.elementAt(i);
        ! 	Segment path = v;
        ! 	do
        ! 	  {
        ! 	    if (v.isSegmentOutside(area))
        ! 	      segments.add(v);
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              for (int i = 0; i < pathB.size(); i++)
                {
        ! 	v = (Segment) pathB.elementAt(i);
        ! 	Segment path = v;
        ! 	do
        ! 	  {
        ! 	    if (v.isSegmentOutside(this))
        ! 	      segments.add(v);
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              paths = weilerAtherton(segments);
        --- 237,264 ----
              // segments of A oustide B and all B outside A
              for (int i = 0; i < pathA.size(); i++)
                {
        !         v = (Segment) pathA.elementAt(i);
        !         Segment path = v;
        !         do
        !           {
        !             if (v.isSegmentOutside(area))
        !               segments.add(v);
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              for (int i = 0; i < pathB.size(); i++)
                {
        !         v = (Segment) pathB.elementAt(i);
        !         Segment path = v;
        !         do
        !           {
        !             if (v.isSegmentOutside(this))
        !               segments.add(v);
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              paths = weilerAtherton(segments);
        *************** public class Area implements Shape, Clon
        *** 277,284 ****
          
              if (equals(area))
                {
        ! 	reset();
        ! 	return;
                }
          
              Vector pathA = new Vector();
        --- 277,284 ----
          
              if (equals(area))
                {
        !         reset();
        !         return;
                }
          
              Vector pathA = new Vector();
        *************** public class Area implements Shape, Clon
        *** 299,310 ****
              // create nodes
              for (int i = 0; i < pathA.size(); i++)
                {
        ! 	Segment a = (Segment) pathA.elementAt(i);
        ! 	for (int j = 0; j < pathB.size(); j++)
        ! 	  {
        ! 	    Segment b = (Segment) pathB.elementAt(j);
        ! 	    nNodes += createNodes(a, b);
        ! 	  }
                }
          
              Vector paths = new Vector();
        --- 299,310 ----
              // create nodes
              for (int i = 0; i < pathA.size(); i++)
                {
        !         Segment a = (Segment) pathA.elementAt(i);
        !         for (int j = 0; j < pathB.size(); j++)
        !           {
        !             Segment b = (Segment) pathB.elementAt(j);
        !             nNodes += createNodes(a, b);
        !           }
                }
          
              Vector paths = new Vector();
        *************** public class Area implements Shape, Clon
        *** 318,360 ****
              // and the segments before and after any node
              for (int i = 0; i < pathA.size(); i++)
                {
        ! 	Segment v = (Segment) pathA.elementAt(i);
        ! 	Segment path = v;
        ! 	if (v.isSegmentOutside(area) && v.node == null)
        ! 	  segments.add(v);
        ! 	boolean node = false;
        ! 	do
        ! 	  {
        ! 	    if ((v.node != null || node))
        ! 	      {
        ! 		node = (v.node != null);
        ! 		if (v.isSegmentOutside(area))
        ! 		  segments.add(v);
        ! 	      }
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              for (int i = 0; i < pathB.size(); i++)
                {
        ! 	Segment v = (Segment) pathB.elementAt(i);
        ! 	Segment path = v;
        ! 	if (! v.isSegmentOutside(this) && v.node == null)
        ! 	  segments.add(v);
        ! 	v = v.next;
        ! 	boolean node = false;
        ! 	do
        ! 	  {
        ! 	    if ((v.node != null || node))
        ! 	      {
        ! 		node = (v.node != null);
        ! 		if (! v.isSegmentOutside(this))
        ! 		  segments.add(v);
        ! 	      }
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              paths = weilerAtherton(segments);
        --- 318,360 ----
              // and the segments before and after any node
              for (int i = 0; i < pathA.size(); i++)
                {
        !         Segment v = (Segment) pathA.elementAt(i);
        !         Segment path = v;
        !         if (v.isSegmentOutside(area) && v.node == null)
        !           segments.add(v);
        !         boolean node = false;
        !         do
        !           {
        !             if ((v.node != null || node))
        !               {
        !                 node = (v.node != null);
        !                 if (v.isSegmentOutside(area))
        !                   segments.add(v);
        !               }
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              for (int i = 0; i < pathB.size(); i++)
                {
        !         Segment v = (Segment) pathB.elementAt(i);
        !         Segment path = v;
        !         if (! v.isSegmentOutside(this) && v.node == null)
        !           segments.add(v);
        !         v = v.next;
        !         boolean node = false;
        !         do
        !           {
        !             if ((v.node != null || node))
        !               {
        !                 node = (v.node != null);
        !                 if (! v.isSegmentOutside(this))
        !                   segments.add(v);
        !               }
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              paths = weilerAtherton(segments);
        *************** public class Area implements Shape, Clon
        *** 370,377 ****
            {
              if (isEmpty() || area.isEmpty())
                {
        ! 	reset();
        ! 	return;
                }
              if (equals(area))
                return;
        --- 370,377 ----
            {
              if (isEmpty() || area.isEmpty())
                {
        !         reset();
        !         return;
                }
              if (equals(area))
                return;
        *************** public class Area implements Shape, Clon
        *** 390,401 ****
              // create nodes
              for (int i = 0; i < pathA.size(); i++)
                {
        ! 	Segment a = (Segment) pathA.elementAt(i);
        ! 	for (int j = 0; j < pathB.size(); j++)
        ! 	  {
        ! 	    Segment b = (Segment) pathB.elementAt(j);
        ! 	    nNodes += createNodes(a, b);
        ! 	  }
                }
          
              Vector paths = new Vector();
        --- 390,401 ----
              // create nodes
              for (int i = 0; i < pathA.size(); i++)
                {
        !         Segment a = (Segment) pathA.elementAt(i);
        !         for (int j = 0; j < pathB.size(); j++)
        !           {
        !             Segment b = (Segment) pathB.elementAt(j);
        !             nNodes += createNodes(a, b);
        !           }
                }
          
              Vector paths = new Vector();
        *************** public class Area implements Shape, Clon
        *** 410,452 ****
              // and the segments before and after any node
              for (int i = 0; i < pathA.size(); i++)
                {
        ! 	Segment v = (Segment) pathA.elementAt(i);
        ! 	Segment path = v;
        ! 	if (! v.isSegmentOutside(area) && v.node == null)
        ! 	  segments.add(v);
        ! 	boolean node = false;
        ! 	do
        ! 	  {
        ! 	    if ((v.node != null || node))
        ! 	      {
        ! 		node = (v.node != null);
        ! 		if (! v.isSegmentOutside(area))
        ! 		  segments.add(v);
        ! 	      }
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              for (int i = 0; i < pathB.size(); i++)
                {
        ! 	Segment v = (Segment) pathB.elementAt(i);
        ! 	Segment path = v;
        ! 	if (! v.isSegmentOutside(this) && v.node == null)
        ! 	  segments.add(v);
        ! 	v = v.next;
        ! 	boolean node = false;
        ! 	do
        ! 	  {
        ! 	    if ((v.node != null || node))
        ! 	      {
        ! 		node = (v.node != null);
        ! 		if (! v.isSegmentOutside(this))
        ! 		  segments.add(v);
        ! 	      }
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              paths = weilerAtherton(segments);
        --- 410,452 ----
              // and the segments before and after any node
              for (int i = 0; i < pathA.size(); i++)
                {
        !         Segment v = (Segment) pathA.elementAt(i);
        !         Segment path = v;
        !         if (! v.isSegmentOutside(area) && v.node == null)
        !           segments.add(v);
        !         boolean node = false;
        !         do
        !           {
        !             if ((v.node != null || node))
        !               {
        !                 node = (v.node != null);
        !                 if (! v.isSegmentOutside(area))
        !                   segments.add(v);
        !               }
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              for (int i = 0; i < pathB.size(); i++)
                {
        !         Segment v = (Segment) pathB.elementAt(i);
        !         Segment path = v;
        !         if (! v.isSegmentOutside(this) && v.node == null)
        !           segments.add(v);
        !         v = v.next;
        !         boolean node = false;
        !         do
        !           {
        !             if ((v.node != null || node))
        !               {
        !                 node = (v.node != null);
        !                 if (! v.isSegmentOutside(this))
        !                   segments.add(v);
        !               }
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              paths = weilerAtherton(segments);
        *************** public class Area implements Shape, Clon
        *** 465,479 ****
          
              if (isEmpty())
                {
        ! 	Area B = (Area) area.clone();
        ! 	solids = B.solids;
        ! 	holes = B.holes;
        ! 	return;
                }
              if (equals(area))
                {
        ! 	reset();
        ! 	return;
                }
          
              Vector pathA = new Vector();
        --- 465,479 ----
          
              if (isEmpty())
                {
        !         Area B = (Area) area.clone();
        !         solids = B.solids;
        !         holes = B.holes;
        !         return;
                }
              if (equals(area))
                {
        !         reset();
        !         return;
                }
          
              Vector pathA = new Vector();
        *************** public class Area implements Shape, Clon
        *** 493,504 ****
          
              for (int i = 0; i < pathA.size(); i++)
                {
        ! 	Segment a = (Segment) pathA.elementAt(i);
        ! 	for (int j = 0; j < pathB.size(); j++)
        ! 	  {
        ! 	    Segment b = (Segment) pathB.elementAt(j);
        ! 	    nNodes += createNodes(a, b);
        ! 	  }
                }
          
              Vector paths = new Vector();
        --- 493,504 ----
          
              for (int i = 0; i < pathA.size(); i++)
                {
        !         Segment a = (Segment) pathA.elementAt(i);
        !         for (int j = 0; j < pathB.size(); j++)
        !           {
        !             Segment b = (Segment) pathB.elementAt(j);
        !             nNodes += createNodes(a, b);
        !           }
                }
          
              Vector paths = new Vector();
        *************** public class Area implements Shape, Clon
        *** 510,535 ****
              // In an XOR operation, we operate on all segments
              for (int i = 0; i < pathA.size(); i++)
                {
        ! 	v = (Segment) pathA.elementAt(i);
        ! 	Segment path = v;
        ! 	do
        ! 	  {
        ! 	    segments.add(v);
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              for (int i = 0; i < pathB.size(); i++)
                {
        ! 	v = (Segment) pathB.elementAt(i);
        ! 	Segment path = v;
        ! 	do
        ! 	  {
        ! 	    segments.add(v);
        ! 	    v = v.next;
        ! 	  }
        ! 	while (v != path);
                }
          
              paths = weilerAtherton(segments);
        --- 510,535 ----
              // In an XOR operation, we operate on all segments
              for (int i = 0; i < pathA.size(); i++)
                {
        !         v = (Segment) pathA.elementAt(i);
        !         Segment path = v;
        !         do
        !           {
        !             segments.add(v);
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              for (int i = 0; i < pathB.size(); i++)
                {
        !         v = (Segment) pathB.elementAt(i);
        !         Segment path = v;
        !         do
        !           {
        !             segments.add(v);
        !             v = v.next;
        !           }
        !         while (v != path);
                }
          
              paths = weilerAtherton(segments);
        *************** public class Area implements Shape, Clon
        *** 573,582 ****
            {
              for (int i = 0; i < holes.size(); i++)
                if (! ((Segment) holes.elementAt(i)).isPolygonal())
        ! 	return false;
              for (int i = 0; i < solids.size(); i++)
                if (! ((Segment) solids.elementAt(i)).isPolygonal())
        ! 	return false;
              return true;
            }
          
        --- 573,582 ----
            {
              for (int i = 0; i < holes.size(); i++)
                if (! ((Segment) holes.elementAt(i)).isPolygonal())
        !         return false;
              for (int i = 0; i < solids.size(); i++)
                if (! ((Segment) solids.elementAt(i)).isPolygonal())
        !         return false;
              return true;
            }
          
        *************** public class Area implements Shape, Clon
        *** 607,629 ****
              Segment s = path;
              do
                {
        ! 	Segment s2 = s.next;
        ! 	double d1 = (s.P2.getX() - s.P1.getX())*(s2.P2.getX() - s2.P1.getX())/
        ! 	    ((s.P1.distance(s.P2)) * (s2.P1.distance(s2.P2)));
        ! 	double d2 = (s.P2.getY() - s.P1.getY())*(s2.P2.getY() - s2.P1.getY())/ 
        ! 	    ((s.P1.distance(s.P2)) * (s2.P1.distance(s2.P2)));
        ! 	double dotproduct = d1 + d2;
          
        ! 	// For some reason, only rectangles on the XY axis count.
        ! 	if (d1 != 0 && d2 != 0)
        ! 	  return false;
          
        ! 	if (Math.abs(dotproduct) == 0) // 90 degree angle
        ! 	  nCorners++;
        ! 	else if ((Math.abs(1.0 - dotproduct) > 0)) // 0 degree angle?
        ! 	  return false; // if not, return false
          
        ! 	s = s.next;
                }
              while (s != path);
          
        --- 607,629 ----
              Segment s = path;
              do
                {
        !         Segment s2 = s.next;
        !         double d1 = (s.P2.getX() - s.P1.getX())*(s2.P2.getX() - s2.P1.getX())/
        !             ((s.P1.distance(s.P2)) * (s2.P1.distance(s2.P2)));
        !         double d2 = (s.P2.getY() - s.P1.getY())*(s2.P2.getY() - s2.P1.getY())/
        !             ((s.P1.distance(s.P2)) * (s2.P1.distance(s2.P2)));
        !         double dotproduct = d1 + d2;
          
        !         // For some reason, only rectangles on the XY axis count.
        !         if (d1 != 0 && d2 != 0)
        !           return false;
          
        !         if (Math.abs(dotproduct) == 0) // 90 degree angle
        !           nCorners++;
        !         else if ((Math.abs(1.0 - dotproduct) > 0)) // 0 degree angle?
        !           return false; // if not, return false
          
        !         s = s.next;
                }
              while (s != path);
          
        *************** public class Area implements Shape, Clon
        *** 662,672 ****
          
              for (int path = 0; path < solids.size(); path++)
                {
        ! 	Rectangle2D r = ((Segment) solids.elementAt(path)).getPathBounds();
        ! 	xmin = Math.min(r.getMinX(), xmin);
        ! 	ymin = Math.min(r.getMinY(), ymin);
        ! 	xmax = Math.max(r.getMaxX(), xmax);
        ! 	ymax = Math.max(r.getMaxY(), ymax);
                }
          
              return (new Rectangle2D.Double(xmin, ymin, (xmax - xmin), (ymax - ymin)));
        --- 662,672 ----
          
              for (int path = 0; path < solids.size(); path++)
                {
        !         Rectangle2D r = ((Segment) solids.elementAt(path)).getPathBounds();
        !         xmin = Math.min(r.getMinX(), xmin);
        !         ymin = Math.min(r.getMinY(), ymin);
        !         xmax = Math.max(r.getMaxX(), xmax);
        !         ymax = Math.max(r.getMaxY(), ymax);
                }
          
              return (new Rectangle2D.Double(xmin, ymin, (xmax - xmin), (ymax - ymin)));
        *************** public class Area implements Shape, Clon
        *** 675,681 ****
            /**
             * Returns the bounds of this object in Rectangle format.
             * Please note that this may lead to loss of precision.
        !    * 
             * @return The bounds.
             * @see #getBounds2D()
             */
        --- 675,681 ----
            /**
             * Returns the bounds of this object in Rectangle format.
             * Please note that this may lead to loss of precision.
        !    *
             * @return The bounds.
             * @see #getBounds2D()
             */
        *************** public class Area implements Shape, Clon
        *** 694,715 ****
            {
              try
                {
        ! 	Area clone = new Area();
        ! 	for (int i = 0; i < solids.size(); i++)
        ! 	  clone.solids.add(((Segment) solids.elementAt(i)).cloneSegmentList());
        ! 	for (int i = 0; i < holes.size(); i++)
        ! 	  clone.holes.add(((Segment) holes.elementAt(i)).cloneSegmentList());
        ! 	return clone;
                }
              catch (CloneNotSupportedException e)
                {
        ! 	throw (Error) new InternalError().initCause(e); // Impossible
                }
            }
          
            /**
             * Compares two Areas.
        !    * 
             * @param area  the area to compare against this area (null
             *              permitted).
             * @return true if the areas are equal, and false
        --- 694,715 ----
            {
              try
                {
        !         Area clone = new Area();
        !         for (int i = 0; i < solids.size(); i++)
        !           clone.solids.add(((Segment) solids.elementAt(i)).cloneSegmentList());
        !         for (int i = 0; i < holes.size(); i++)
        !           clone.holes.add(((Segment) holes.elementAt(i)).cloneSegmentList());
        !         return clone;
                }
              catch (CloneNotSupportedException e)
                {
        !         throw (Error) new InternalError().initCause(e); // Impossible
                }
            }
          
            /**
             * Compares two Areas.
        !    *
             * @param area  the area to compare against this area (null
             *              permitted).
             * @return true if the areas are equal, and false
        *************** public class Area implements Shape, Clon
        *** 739,752 ****
          
              for (int i = 0; i < nPaths; i++)
                {
        ! 	for (int j = 0; j < nPaths; j++)
        ! 	  {
        ! 	    Segment p1 = (Segment) pathA.elementAt(i);
        ! 	    Segment p2 = (Segment) pathB.elementAt(j);
        ! 	    if (! match[0][i] && ! match[1][j])
        ! 	      if (p1.pathEquals(p2))
        ! 		match[0][i] = match[1][j] = true;
        ! 	  }
                }
          
              boolean result = true;
        --- 739,752 ----
          
              for (int i = 0; i < nPaths; i++)
                {
        !         for (int j = 0; j < nPaths; j++)
        !           {
        !             Segment p1 = (Segment) pathA.elementAt(i);
        !             Segment p2 = (Segment) pathB.elementAt(j);
        !             if (! match[0][i] && ! match[1][j])
        !               if (p1.pathEquals(p2))
        !                 match[0][i] = match[1][j] = true;
        !           }
                }
          
              boolean result = true;
        *************** public class Area implements Shape, Clon
        *** 757,763 ****
          
            /**
             * Transforms this area by the AffineTransform at.
        !    * 
             * @param at  the transform.
             */
            public void transform(AffineTransform at)
        --- 757,763 ----
          
            /**
             * Transforms this area by the AffineTransform at.
        !    *
             * @param at  the transform.
             */
            public void transform(AffineTransform at)
        *************** public class Area implements Shape, Clon
        *** 770,777 ****
              // Note that the orientation is not invariant under inversion
              if ((at.getType() & AffineTransform.TYPE_FLIP) != 0)
                {
        ! 	setDirection(holes, false);
        ! 	setDirection(solids, true);
                }
            }
          
        --- 770,777 ----
              // Note that the orientation is not invariant under inversion
              if ((at.getType() & AffineTransform.TYPE_FLIP) != 0)
                {
        !         setDirection(holes, false);
        !         setDirection(solids, true);
                }
            }
          
        *************** public class Area implements Shape, Clon
        *** 801,811 ****
              int n = 0;
              for (int i = 0; i < solids.size(); i++)
                if (((Segment) solids.elementAt(i)).contains(x, y))
        ! 	n++;
          
              for (int i = 0; i < holes.size(); i++)
                if (((Segment) holes.elementAt(i)).contains(x, y))
        ! 	n--;
          
              return (n != 0);
            }
        --- 801,811 ----
              int n = 0;
              for (int i = 0; i < solids.size(); i++)
                if (((Segment) solids.elementAt(i)).contains(x, y))
        !         n++;
          
              for (int i = 0; i < holes.size(); i++)
                if (((Segment) holes.elementAt(i)).contains(x, y))
        !         n--;
          
              return (n != 0);
            }
        *************** public class Area implements Shape, Clon
        *** 814,820 ****
             * Determines if the Point2D p is contained within this Area.
             *
             * @param p the point.
        !    * @return true if the point is contained, false 
             *         otherwise.
             * @throws NullPointerException if p is null.
             */
        --- 814,820 ----
             * Determines if the Point2D p is contained within this Area.
             *
             * @param p the point.
        !    * @return true if the point is contained, false
             *         otherwise.
             * @throws NullPointerException if p is null.
             */
        *************** public class Area implements Shape, Clon
        *** 830,836 ****
             *
             * This method should always produce the correct results, unlike for other
             * classes in geom.
        !    * 
             * @param x the x-coordinate of the rectangle.
             * @param y the y-coordinate of the rectangle.
             * @param w the width of the the rectangle.
        --- 830,836 ----
             *
             * This method should always produce the correct results, unlike for other
             * classes in geom.
        !    *
             * @param x the x-coordinate of the rectangle.
             * @param y the y-coordinate of the rectangle.
             * @param w the width of the the rectangle.
        *************** public class Area implements Shape, Clon
        *** 850,888 ****
              // will mean the rectangle is not entirely contained.
              for (int i = 0; i < 4; i++)
                {
        ! 	for (int path = 0; path < solids.size(); path++)
        ! 	  {
        ! 	    Segment v;
        ! 	    Segment start;
        ! 	    start = v = (Segment) solids.elementAt(path);
        ! 	    do
        ! 	      {
        ! 		if (l[i].hasIntersections(v))
        ! 		  return false;
        ! 		v = v.next;
        ! 	      }
        ! 	    while (v != start);
        ! 	  }
        ! 	for (int path = 0; path < holes.size(); path++)
        ! 	  {
        ! 	    Segment v;
        ! 	    Segment start;
        ! 	    start = v = (Segment) holes.elementAt(path);
        ! 	    do
        ! 	      {
        ! 		if (l[i].hasIntersections(v))
        ! 		  return false;
        ! 		v = v.next;
        ! 	      }
        ! 	    while (v != start);
        ! 	  }
                }
          
              // Is any point inside?
              if (! contains(x, y))
                return false;
          
        !     // Final hoop: Is the rectangle non-intersecting and inside, 
              // but encloses a hole?
              Rectangle2D r = new Rectangle2D.Double(x, y, w, h);
              for (int path = 0; path < holes.size(); path++)
        --- 850,888 ----
              // will mean the rectangle is not entirely contained.
              for (int i = 0; i < 4; i++)
                {
        !         for (int path = 0; path < solids.size(); path++)
        !           {
        !             Segment v;
        !             Segment start;
        !             start = v = (Segment) solids.elementAt(path);
        !             do
        !               {
        !                 if (l[i].hasIntersections(v))
        !                   return false;
        !                 v = v.next;
        !               }
        !             while (v != start);
        !           }
        !         for (int path = 0; path < holes.size(); path++)
        !           {
        !             Segment v;
        !             Segment start;
        !             start = v = (Segment) holes.elementAt(path);
        !             do
        !               {
        !                 if (l[i].hasIntersections(v))
        !                   return false;
        !                 v = v.next;
        !               }
        !             while (v != start);
        !           }
                }
          
              // Is any point inside?
              if (! contains(x, y))
                return false;
          
        !     // Final hoop: Is the rectangle non-intersecting and inside,
              // but encloses a hole?
              Rectangle2D r = new Rectangle2D.Double(x, y, w, h);
              for (int path = 0; path < holes.size(); path++)
        *************** public class Area implements Shape, Clon
        *** 898,907 ****
             *
             * This method should always produce the correct results, unlike for other
             * classes in geom.
        !    * 
             * @param r the rectangle.
             * @return true if the rectangle is considered contained
        !    * 
             * @throws NullPointerException if r is null.
             */
            public boolean contains(Rectangle2D r)
        --- 898,907 ----
             *
             * This method should always produce the correct results, unlike for other
             * classes in geom.
        !    *
             * @param r the rectangle.
             * @return true if the rectangle is considered contained
        !    *
             * @throws NullPointerException if r is null.
             */
            public boolean contains(Rectangle2D r)
        *************** public class Area implements Shape, Clon
        *** 912,923 ****
            /**
             * Determines if the rectangle specified by (x,y) as the upper-left
             * and with width w and height h intersects any part of this Area.
        !    * 
             * @param x  the x-coordinate for the rectangle.
             * @param y  the y-coordinate for the rectangle.
             * @param w  the width of the rectangle.
             * @param h  the height of the rectangle.
        !    * @return true if the rectangle intersects the area, 
             *         false otherwise.
             */
            public boolean intersects(double x, double y, double w, double h)
        --- 912,923 ----
            /**
             * Determines if the rectangle specified by (x,y) as the upper-left
             * and with width w and height h intersects any part of this Area.
        !    *
             * @param x  the x-coordinate for the rectangle.
             * @param y  the y-coordinate for the rectangle.
             * @param w  the width of the rectangle.
             * @param h  the height of the rectangle.
        !    * @return true if the rectangle intersects the area,
             *         false otherwise.
             */
            public boolean intersects(double x, double y, double w, double h)
        *************** public class Area implements Shape, Clon
        *** 934,965 ****
              // Return true on any intersection
              for (int i = 0; i < 4; i++)
                {
        ! 	for (int path = 0; path < solids.size(); path++)
        ! 	  {
        ! 	    Segment v;
        ! 	    Segment start;
        ! 	    start = v = (Segment) solids.elementAt(path);
        ! 	    do
        ! 	      {
        ! 		if (l[i].hasIntersections(v))
        ! 		  return true;
        ! 		v = v.next;
        ! 	      }
        ! 	    while (v != start);
        ! 	  }
        ! 	for (int path = 0; path < holes.size(); path++)
        ! 	  {
        ! 	    Segment v;
        ! 	    Segment start;
        ! 	    start = v = (Segment) holes.elementAt(path);
        ! 	    do
        ! 	      {
        ! 		if (l[i].hasIntersections(v))
        ! 		  return true;
        ! 		v = v.next;
        ! 	      }
        ! 	    while (v != start);
        ! 	  }
                }
          
              // Non-intersecting, Is any point inside?
        --- 934,965 ----
              // Return true on any intersection
              for (int i = 0; i < 4; i++)
                {
        !         for (int path = 0; path < solids.size(); path++)
        !           {
        !             Segment v;
        !             Segment start;
        !             start = v = (Segment) solids.elementAt(path);
        !             do
        !               {
        !                 if (l[i].hasIntersections(v))
        !                   return true;
        !                 v = v.next;
        !               }
        !             while (v != start);
        !           }
        !         for (int path = 0; path < holes.size(); path++)
        !           {
        !             Segment v;
        !             Segment start;
        !             start = v = (Segment) holes.elementAt(path);
        !             do
        !               {
        !                 if (l[i].hasIntersections(v))
        !                   return true;
        !                 v = v.next;
        !               }
        !             while (v != start);
        !           }
                }
          
              // Non-intersecting, Is any point inside?
        *************** public class Area implements Shape, Clon
        *** 978,984 ****
             * part of this Area.
             * @param r  the rectangle to test intersection with (null
             *           not permitted).
        !    * @return true if the rectangle intersects the area, 
             *         false otherwise.
             * @throws NullPointerException if r is null.
             */
        --- 978,984 ----
             * part of this Area.
             * @param r  the rectangle to test intersection with (null
             *           not permitted).
        !    * @return true if the rectangle intersects the area,
             *         false otherwise.
             * @throws NullPointerException if r is null.
             */
        *************** public class Area implements Shape, Clon
        *** 990,996 ****
            /**
             * Returns a PathIterator object defining the contour of this Area,
             * transformed by at.
        !    * 
             * @param at  the transform.
             * @return A path iterator.
             */
        --- 990,996 ----
            /**
             * Returns a PathIterator object defining the contour of this Area,
             * transformed by at.
        !    *
             * @param at  the transform.
             * @return A path iterator.
             */
        *************** public class Area implements Shape, Clon
        *** 1002,1008 ****
            /**
             * Returns a flattened PathIterator object defining the contour of this
             * Area, transformed by at and with a defined flatness.
        !    * 
             * @param at  the transform.
             * @param flatness the flatness.
             * @return A path iterator.
        --- 1002,1008 ----
            /**
             * Returns a flattened PathIterator object defining the contour of this
             * Area, transformed by at and with a defined flatness.
        !    *
             * @param at  the transform.
             * @param flatness the flatness.
             * @return A path iterator.
        *************** public class Area implements Shape, Clon
        *** 1013,1019 ****
            }
          
            //---------------------------------------------------------------------
        !   // Non-public methods and classes 
          
            /**
             * Private pathiterator object.
        --- 1013,1019 ----
            }
          
            //---------------------------------------------------------------------
        !   // Non-public methods and classes
          
            /**
             * Private pathiterator object.
        *************** public class Area implements Shape, Clon
        *** 1032,1038 ****
          
                IteratorSegment()
                {
        ! 	coords = new double[6];
                }
              }
          
        --- 1032,1038 ----
          
                IteratorSegment()
                {
        !         coords = new double[6];
                }
              }
          
        *************** public class Area implements Shape, Clon
        *** 1052,1078 ****
          
                for (int i = 0; i < allpaths.size(); i++)
                  {
        ! 	  Segment v = (Segment) allpaths.elementAt(i);
        ! 	  Segment start = v;
          
        ! 	  IteratorSegment is = new IteratorSegment();
        ! 	  is.type = SEG_MOVETO;
        ! 	  is.coords[0] = start.P1.getX();
        ! 	  is.coords[1] = start.P1.getY();
        ! 	  segments.add(is);
          
        ! 	  do
        ! 	    {
        ! 	      is = new IteratorSegment();
        ! 	      is.type = v.pathIteratorFormat(is.coords);
        ! 	      segments.add(is);
        ! 	      v = v.next;
        ! 	    }
        ! 	  while (v != start);
          
        ! 	  is = new IteratorSegment();
        ! 	  is.type = SEG_CLOSE;
        ! 	  segments.add(is);
                  }
              }
          
        --- 1052,1078 ----
          
                for (int i = 0; i < allpaths.size(); i++)
                  {
        !           Segment v = (Segment) allpaths.elementAt(i);
        !           Segment start = v;
          
        !           IteratorSegment is = new IteratorSegment();
        !           is.type = SEG_MOVETO;
        !           is.coords[0] = start.P1.getX();
        !           is.coords[1] = start.P1.getY();
        !           segments.add(is);
          
        !           do
        !             {
        !               is = new IteratorSegment();
        !               is.type = v.pathIteratorFormat(is.coords);
        !               segments.add(is);
        !               v = v.next;
        !             }
        !           while (v != start);
          
        !           is = new IteratorSegment();
        !           is.type = SEG_CLOSE;
        !           segments.add(is);
                  }
              }
          
        *************** public class Area implements Shape, Clon
        *** 1080,1089 ****
              {
                IteratorSegment s = (IteratorSegment) segments.elementAt(index);
                if (at != null)
        ! 	at.transform(s.coords, 0, coords, 0, 3);
                else
        ! 	for (int i = 0; i < 6; i++)
        ! 	  coords[i] = s.coords[i];
                return (s.type);
              }
          
        --- 1080,1089 ----
              {
                IteratorSegment s = (IteratorSegment) segments.elementAt(index);
                if (at != null)
        !         at.transform(s.coords, 0, coords, 0, 3);
                else
        !         for (int i = 0; i < 6; i++)
        !           coords[i] = s.coords[i];
                return (s.type);
              }
          
        *************** public class Area implements Shape, Clon
        *** 1093,1105 ****
                double[] d = new double[6];
                if (at != null)
                  {
        ! 	  at.transform(s.coords, 0, d, 0, 3);
        ! 	  for (int i = 0; i < 6; i++)
        ! 	    coords[i] = (float) d[i];
                  }
                else
        ! 	for (int i = 0; i < 6; i++)
        ! 	  coords[i] = (float) s.coords[i];
                return (s.type);
              }
          
        --- 1093,1105 ----
                double[] d = new double[6];
                if (at != null)
                  {
        !           at.transform(s.coords, 0, d, 0, 3);
        !           for (int i = 0; i < 6; i++)
        !             coords[i] = (float) d[i];
                  }
                else
        !         for (int i = 0; i < 6; i++)
        !           coords[i] = (float) s.coords[i];
                return (s.type);
              }
          
        *************** public class Area implements Shape, Clon
        *** 1134,1155 ****
              Vector paths = new Vector();
              while (segments.size() > 0)
                {
        ! 	// Iterate over the path
        ! 	Segment start = (Segment) segments.elementAt(0);
        ! 	Segment s = start;
        ! 	do
        ! 	  {
        ! 	    segments.remove(s);
        ! 	    if (s.node != null)
        ! 	      { // switch over
        ! 		s.next = s.node;
        ! 		s.node = null;
        ! 	      }
        ! 	    s = s.next; // continue
        ! 	  }
        ! 	while (s != start);
          
        ! 	paths.add(start);
                }
              return paths;
            }
        --- 1134,1155 ----
              Vector paths = new Vector();
              while (segments.size() > 0)
                {
        !         // Iterate over the path
        !         Segment start = (Segment) segments.elementAt(0);
        !         Segment s = start;
        !         do
        !           {
        !             segments.remove(s);
        !             if (s.node != null)
        !               { // switch over
        !                 s.next = s.node;
        !                 s.node = null;
        !               }
        !             s = s.next; // continue
        !           }
        !         while (s != start);
          
        !         paths.add(start);
                }
              return paths;
            }
        *************** public class Area implements Shape, Clon
        *** 1230,1259 ****
          
              if (flat1 && flat2)
                {
        ! 	double xlk = c1.getP2().getX() - c1.getP1().getX();
        ! 	double ylk = c1.getP2().getY() - c1.getP1().getY();
          
        ! 	double xnm = c2.getP2().getX() - c2.getP1().getX();
        ! 	double ynm = c2.getP2().getY() - c2.getP1().getY();
          
        ! 	double xmk = c2.getP1().getX() - c1.getP1().getX();
        ! 	double ymk = c2.getP1().getY() - c1.getP1().getY();
        ! 	double det = xnm * ylk - ynm * xlk;
          
        ! 	if (det + 1.0 == 1.0)
        ! 	  return;
          
        ! 	double detinv = 1.0 / det;
        ! 	double s = (xnm * ymk - ynm * xmk) * detinv;
        ! 	double t = (xlk * ymk - ylk * xmk) * detinv;
        ! 	if ((s < 0.0) || (s > 1.0) || (t < 0.0) || (t > 1.0))
        ! 	  return;
          
        ! 	double[] temp = new double[2];
        ! 	temp[0] = t1 + s * w1;
        ! 	temp[1] = t2 + t * w1;
        ! 	cc_intersections.add(temp);
        ! 	return;
                }
          
              CubicCurve2D.Double c11 = new CubicCurve2D.Double();
        --- 1230,1259 ----
          
              if (flat1 && flat2)
                {
        !         double xlk = c1.getP2().getX() - c1.getP1().getX();
        !         double ylk = c1.getP2().getY() - c1.getP1().getY();
          
        !         double xnm = c2.getP2().getX() - c2.getP1().getX();
        !         double ynm = c2.getP2().getY() - c2.getP1().getY();
          
        !         double xmk = c2.getP1().getX() - c1.getP1().getX();
        !         double ymk = c2.getP1().getY() - c1.getP1().getY();
        !         double det = xnm * ylk - ynm * xlk;
          
        !         if (det + 1.0 == 1.0)
        !           return;
          
        !         double detinv = 1.0 / det;
        !         double s = (xnm * ymk - ynm * xmk) * detinv;
        !         double t = (xlk * ymk - ylk * xmk) * detinv;
        !         if ((s < 0.0) || (s > 1.0) || (t < 0.0) || (t > 1.0))
        !           return;
          
        !         double[] temp = new double[2];
        !         temp[0] = t1 + s * w1;
        !         temp[1] = t2 + t * w1;
        !         cc_intersections.add(temp);
        !         return;
                }
          
              CubicCurve2D.Double c11 = new CubicCurve2D.Double();
        *************** public class Area implements Shape, Clon
        *** 1263,1295 ****
          
              if (! flat1 && ! flat2)
                {
        ! 	depth1--;
        ! 	depth2--;
        ! 	w1 = w1 * 0.5;
        ! 	w2 = w2 * 0.5;
        ! 	c1.subdivide(c11, c12);
        ! 	c2.subdivide(c21, c22);
        ! 	if (c11.getBounds2D().intersects(c21.getBounds2D()))
        ! 	  recursiveSubdivide(c11, c21, depth1, depth2, t1, t2, w1, w2);
        ! 	if (c11.getBounds2D().intersects(c22.getBounds2D()))
        ! 	  recursiveSubdivide(c11, c22, depth1, depth2, t1, t2 + w2, w1, w2);
        ! 	if (c12.getBounds2D().intersects(c21.getBounds2D()))
        ! 	  recursiveSubdivide(c12, c21, depth1, depth2, t1 + w1, t2, w1, w2);
        ! 	if (c12.getBounds2D().intersects(c22.getBounds2D()))
        ! 	  recursiveSubdivide(c12, c22, depth1, depth2, t1 + w1, t2 + w2, w1, w2);
        ! 	return;
                }
          
              if (! flat1)
                {
        ! 	depth1--;
        ! 	c1.subdivide(c11, c12);
        ! 	w1 = w1 * 0.5;
        ! 	if (c11.getBounds2D().intersects(c2.getBounds2D()))
        ! 	  recursiveSubdivide(c11, c2, depth1, depth2, t1, t2, w1, w2);
        ! 	if (c12.getBounds2D().intersects(c2.getBounds2D()))
        ! 	  recursiveSubdivide(c12, c2, depth1, depth2, t1 + w1, t2, w1, w2);
        ! 	return;
                }
          
              depth2--;
        --- 1263,1295 ----
          
              if (! flat1 && ! flat2)
                {
        !         depth1--;
        !         depth2--;
        !         w1 = w1 * 0.5;
        !         w2 = w2 * 0.5;
        !         c1.subdivide(c11, c12);
        !         c2.subdivide(c21, c22);
        !         if (c11.getBounds2D().intersects(c21.getBounds2D()))
        !           recursiveSubdivide(c11, c21, depth1, depth2, t1, t2, w1, w2);
        !         if (c11.getBounds2D().intersects(c22.getBounds2D()))
        !           recursiveSubdivide(c11, c22, depth1, depth2, t1, t2 + w2, w1, w2);
        !         if (c12.getBounds2D().intersects(c21.getBounds2D()))
        !           recursiveSubdivide(c12, c21, depth1, depth2, t1 + w1, t2, w1, w2);
        !         if (c12.getBounds2D().intersects(c22.getBounds2D()))
        !           recursiveSubdivide(c12, c22, depth1, depth2, t1 + w1, t2 + w2, w1, w2);
        !         return;
                }
          
              if (! flat1)
                {
        !         depth1--;
        !         c1.subdivide(c11, c12);
        !         w1 = w1 * 0.5;
        !         if (c11.getBounds2D().intersects(c2.getBounds2D()))
        !           recursiveSubdivide(c11, c2, depth1, depth2, t1, t2, w1, w2);
        !         if (c12.getBounds2D().intersects(c2.getBounds2D()))
        !           recursiveSubdivide(c12, c2, depth1, depth2, t1 + w1, t2, w1, w2);
        !         return;
                }
          
              depth2--;
        *************** public class Area implements Shape, Clon
        *** 1317,1323 ****
             * This is a reasonably accurate method, although the recursion depth
             * is typically around 20, the bounding-box tests allow for significant
             * pruning of the subdivision tree.
        !    * 
             * This is package-private to avoid an accessor method.
             */
            Intersection[] cubicCubicIntersect(CubicSegment curve1, CubicSegment curve2)
        --- 1317,1323 ----
             * This is a reasonably accurate method, although the recursion depth
             * is typically around 20, the bounding-box tests allow for significant
             * pruning of the subdivision tree.
        !    *
             * This is package-private to avoid an accessor method.
             */
            Intersection[] cubicCubicIntersect(CubicSegment curve1, CubicSegment curve2)
        *************** public class Area implements Shape, Clon
        *** 1339,1347 ****
              Intersection[] results = new Intersection[cc_intersections.size()];
              for (int i = 0; i < cc_intersections.size(); i++)
                {
        ! 	double[] temp = (double[]) cc_intersections.elementAt(i);
        ! 	results[i] = new Intersection(curve1.evaluatePoint(temp[0]), temp[0],
        ! 	                              temp[1]);
                }
              cc_intersections = null;
              return (results);
        --- 1339,1347 ----
              Intersection[] results = new Intersection[cc_intersections.size()];
              for (int i = 0; i < cc_intersections.size(); i++)
                {
        !         double[] temp = (double[]) cc_intersections.elementAt(i);
        !         results[i] = new Intersection(curve1.evaluatePoint(temp[0]), temp[0],
        !                                       temp[1]);
                }
              cc_intersections = null;
              return (results);
        *************** public class Area implements Shape, Clon
        *** 1390,1410 ****
              // line on y axis
              if (dx == 0 || (dy / dx) > 1.0)
                {
        ! 	double k = dx / dy;
        ! 	x[0] -= lx0;
        ! 	y[0] -= ly0;
        ! 	y[0] *= k;
        ! 	y[1] *= k;
        ! 	y[2] *= k;
                }
              else
                {
        ! 	double k = dy / dx;
        ! 	x[0] -= lx0;
        ! 	y[0] -= ly0;
        ! 	x[0] *= k;
        ! 	x[1] *= k;
        ! 	x[2] *= k;
                }
          
              for (int i = 0; i < 3; i++)
        --- 1390,1410 ----
              // line on y axis
              if (dx == 0 || (dy / dx) > 1.0)
                {
        !         double k = dx / dy;
        !         x[0] -= lx0;
        !         y[0] -= ly0;
        !         y[0] *= k;
        !         y[1] *= k;
        !         y[2] *= k;
                }
              else
                {
        !         double k = dy / dx;
        !         x[0] -= lx0;
        !         y[0] -= ly0;
        !         x[0] *= k;
        !         x[1] *= k;
        !         x[2] *= k;
                }
          
              for (int i = 0; i < 3; i++)
        *************** public class Area implements Shape, Clon
        *** 1412,1454 ****
          
              if ((nRoots = QuadCurve2D.solveQuadratic(r)) > 0)
                {
        ! 	Intersection[] temp = new Intersection[nRoots];
        ! 	int intersections = 0;
        ! 	for (int i = 0; i < nRoots; i++)
        ! 	  {
        ! 	    double t = r[i];
        ! 	    if (t >= 0.0 && t <= 1.0)
        ! 	      {
        ! 		Point2D p = c.evaluatePoint(t);
          
        ! 		// if the line is on an axis, snap the point to that axis.
        ! 		if (dx == 0)
        ! 		  p.setLocation(lx0, p.getY());
        ! 		if (dy == 0)
        ! 		  p.setLocation(p.getX(), ly0);
          
        ! 		if (p.getX() <= Math.max(lx0, lx1)
        ! 		    && p.getX() >= Math.min(lx0, lx1)
        ! 		    && p.getY() <= Math.max(ly0, ly1)
        ! 		    && p.getY() >= Math.min(ly0, ly1))
        ! 		  {
        ! 		    double lineparameter = p.distance(l.P1) / l.P2.distance(l.P1);
        ! 		    temp[i] = new Intersection(p, lineparameter, t);
        ! 		    intersections++;
        ! 		  }
        ! 	      }
        ! 	    else
        ! 	      temp[i] = null;
        ! 	  }
        ! 	if (intersections == 0)
        ! 	  return null;
          
        ! 	Intersection[] rValues = new Intersection[intersections];
          
        ! 	for (int i = 0; i < nRoots; i++)
        ! 	  if (temp[i] != null)
        ! 	    rValues[--intersections] = temp[i];
        ! 	return (rValues);
                }
              return null;
            }
        --- 1412,1454 ----
          
              if ((nRoots = QuadCurve2D.solveQuadratic(r)) > 0)
                {
        !         Intersection[] temp = new Intersection[nRoots];
        !         int intersections = 0;
        !         for (int i = 0; i < nRoots; i++)
        !           {
        !             double t = r[i];
        !             if (t >= 0.0 && t <= 1.0)
        !               {
        !                 Point2D p = c.evaluatePoint(t);
          
        !                 // if the line is on an axis, snap the point to that axis.
        !                 if (dx == 0)
        !                   p.setLocation(lx0, p.getY());
        !                 if (dy == 0)
        !                   p.setLocation(p.getX(), ly0);
          
        !                 if (p.getX() <= Math.max(lx0, lx1)
        !                     && p.getX() >= Math.min(lx0, lx1)
        !                     && p.getY() <= Math.max(ly0, ly1)
        !                     && p.getY() >= Math.min(ly0, ly1))
        !                   {
        !                     double lineparameter = p.distance(l.P1) / l.P2.distance(l.P1);
        !                     temp[i] = new Intersection(p, lineparameter, t);
        !                     intersections++;
        !                   }
        !               }
        !             else
        !               temp[i] = null;
        !           }
        !         if (intersections == 0)
        !           return null;
          
        !         Intersection[] rValues = new Intersection[intersections];
          
        !         for (int i = 0; i < nRoots; i++)
        !           if (temp[i] != null)
        !             rValues[--intersections] = temp[i];
        !         return (rValues);
                }
              return null;
            }
        *************** public class Area implements Shape, Clon
        *** 1457,1463 ****
             * Returns the intersections between a line and a cubic segment
             * This is done through combining the line's equation with the
             * parametric form of the Bezier and solving the resulting quadratic.
        !    * This is package-private to avoid an accessor method. 
             */
            Intersection[] lineCubicIntersect(LineSegment l, CubicSegment c)
            {
        --- 1457,1463 ----
             * Returns the intersections between a line and a cubic segment
             * This is done through combining the line's equation with the
             * parametric form of the Bezier and solving the resulting quadratic.
        !    * This is package-private to avoid an accessor method.
             */
            Intersection[] lineCubicIntersect(LineSegment l, CubicSegment c)
            {
        *************** public class Area implements Shape, Clon
        *** 1499,1563 ****
              // line on y axis
              if (dx == 0 || (dy / dx) > 1.0)
                {
        ! 	double k = dx / dy;
        ! 	x[0] -= lx0;
        ! 	y[0] -= ly0;
        ! 	y[0] *= k;
        ! 	y[1] *= k;
        ! 	y[2] *= k;
        ! 	y[3] *= k;
                }
              else
                {
        ! 	double k = dy / dx;
        ! 	x[0] -= lx0;
        ! 	y[0] -= ly0;
        ! 	x[0] *= k;
        ! 	x[1] *= k;
        ! 	x[2] *= k;
        ! 	x[3] *= k;
                }
              for (int i = 0; i < 4; i++)
                r[i] = y[i] - x[i];
          
              if ((nRoots = CubicCurve2D.solveCubic(r)) > 0)
                {
        ! 	Intersection[] temp = new Intersection[nRoots];
        ! 	int intersections = 0;
        ! 	for (int i = 0; i < nRoots; i++)
        ! 	  {
        ! 	    double t = r[i];
        ! 	    if (t >= 0.0 && t <= 1.0)
        ! 	      {
        ! 		// if the line is on an axis, snap the point to that axis.
        ! 		Point2D p = c.evaluatePoint(t);
        ! 		if (dx == 0)
        ! 		  p.setLocation(lx0, p.getY());
        ! 		if (dy == 0)
        ! 		  p.setLocation(p.getX(), ly0);
          
        ! 		if (p.getX() <= Math.max(lx0, lx1)
        ! 		    && p.getX() >= Math.min(lx0, lx1)
        ! 		    && p.getY() <= Math.max(ly0, ly1)
        ! 		    && p.getY() >= Math.min(ly0, ly1))
        ! 		  {
        ! 		    double lineparameter = p.distance(l.P1) / l.P2.distance(l.P1);
        ! 		    temp[i] = new Intersection(p, lineparameter, t);
        ! 		    intersections++;
        ! 		  }
        ! 	      }
        ! 	    else
        ! 	      temp[i] = null;
        ! 	  }
          
        ! 	if (intersections == 0)
        ! 	  return null;
          
        ! 	Intersection[] rValues = new Intersection[intersections];
        ! 	for (int i = 0; i < nRoots; i++)
        ! 	  if (temp[i] != null)
        ! 	    rValues[--intersections] = temp[i];
        ! 	return (rValues);
                }
              return null;
            }
        --- 1499,1563 ----
              // line on y axis
              if (dx == 0 || (dy / dx) > 1.0)
                {
        !         double k = dx / dy;
        !         x[0] -= lx0;
        !         y[0] -= ly0;
        !         y[0] *= k;
        !         y[1] *= k;
        !         y[2] *= k;
        !         y[3] *= k;
                }
              else
                {
        !         double k = dy / dx;
        !         x[0] -= lx0;
        !         y[0] -= ly0;
        !         x[0] *= k;
        !         x[1] *= k;
        !         x[2] *= k;
        !         x[3] *= k;
                }
              for (int i = 0; i < 4; i++)
                r[i] = y[i] - x[i];
          
              if ((nRoots = CubicCurve2D.solveCubic(r)) > 0)
                {
        !         Intersection[] temp = new Intersection[nRoots];
        !         int intersections = 0;
        !         for (int i = 0; i < nRoots; i++)
        !           {
        !             double t = r[i];
        !             if (t >= 0.0 && t <= 1.0)
        !               {
        !                 // if the line is on an axis, snap the point to that axis.
        !                 Point2D p = c.evaluatePoint(t);
        !                 if (dx == 0)
        !                   p.setLocation(lx0, p.getY());
        !                 if (dy == 0)
        !                   p.setLocation(p.getX(), ly0);
          
        !                 if (p.getX() <= Math.max(lx0, lx1)
        !                     && p.getX() >= Math.min(lx0, lx1)
        !                     && p.getY() <= Math.max(ly0, ly1)
        !                     && p.getY() >= Math.min(ly0, ly1))
        !                   {
        !                     double lineparameter = p.distance(l.P1) / l.P2.distance(l.P1);
        !                     temp[i] = new Intersection(p, lineparameter, t);
        !                     intersections++;
        !                   }
        !               }
        !             else
        !               temp[i] = null;
        !           }
          
        !         if (intersections == 0)
        !           return null;
          
        !         Intersection[] rValues = new Intersection[intersections];
        !         for (int i = 0; i < nRoots; i++)
        !           if (temp[i] != null)
        !             rValues[--intersections] = temp[i];
        !         return (rValues);
                }
              return null;
            }
        *************** public class Area implements Shape, Clon
        *** 1639,1758 ****
          
              while (! pi.isDone())
                {
        ! 	Segment v;
        ! 	switch (pi.currentSegment(coords))
        ! 	  {
        ! 	  case PathIterator.SEG_MOVETO:
        ! 	    if (subpath != null)
        ! 	      { // close existing open path
        ! 		current.next = new LineSegment(cx, cy, subpathx, subpathy);
        ! 		current = current.next;
        ! 		current.next = subpath;
        ! 	      }
        ! 	    subpath = null;
        ! 	    subpathx = cx = coords[0];
        ! 	    subpathy = cy = coords[1];
        ! 	    break;
          
        ! 	  // replace 'close' with a line-to.
        ! 	  case PathIterator.SEG_CLOSE:
        ! 	    if (subpath != null && (subpathx != cx || subpathy != cy))
        ! 	      {
        ! 		current.next = new LineSegment(cx, cy, subpathx, subpathy);
        ! 		current = current.next;
        ! 		current.next = subpath;
        ! 		cx = subpathx;
        ! 		cy = subpathy;
        ! 		subpath = null;
        ! 	      }
        ! 	    else if (subpath != null)
        ! 	      {
        ! 		current.next = subpath;
        ! 		subpath = null;
        ! 	      }
        ! 	    break;
        ! 	  case PathIterator.SEG_LINETO:
        ! 	    if (cx != coords[0] || cy != coords[1])
        ! 	      {
        ! 		v = new LineSegment(cx, cy, coords[0], coords[1]);
        ! 		if (subpath == null)
        ! 		  {
        ! 		    subpath = current = v;
        ! 		    paths.add(subpath);
        ! 		  }
        ! 		else
        ! 		  {
        ! 		    current.next = v;
        ! 		    current = current.next;
        ! 		  }
        ! 		cx = coords[0];
        ! 		cy = coords[1];
        ! 	      }
        ! 	    break;
        ! 	  case PathIterator.SEG_QUADTO:
        ! 	    v = new QuadSegment(cx, cy, coords[0], coords[1], coords[2],
        ! 	                        coords[3]);
        ! 	    if (subpath == null)
        ! 	      {
        ! 		subpath = current = v;
        ! 		paths.add(subpath);
        ! 	      }
        ! 	    else
        ! 	      {
        ! 		current.next = v;
        ! 		current = current.next;
        ! 	      }
        ! 	    cx = coords[2];
        ! 	    cy = coords[3];
        ! 	    break;
        ! 	  case PathIterator.SEG_CUBICTO:
        ! 	    v = new CubicSegment(cx, cy, coords[0], coords[1], coords[2],
        ! 	                         coords[3], coords[4], coords[5]);
        ! 	    if (subpath == null)
        ! 	      {
        ! 		subpath = current = v;
        ! 		paths.add(subpath);
        ! 	      }
        ! 	    else
        ! 	      {
        ! 		current.next = v;
        ! 		current = current.next;
        ! 	      }
          
        ! 	    // check if the cubic is self-intersecting
        ! 	    double[] lpts = ((CubicSegment) v).getLoop();
        ! 	    if (lpts != null)
        ! 	      {
        ! 		// if it is, break off the loop into its own path.
        ! 		v.subdivideInsert(lpts[0]);
        ! 		v.next.subdivideInsert((lpts[1] - lpts[0]) / (1.0 - lpts[0]));
          
        ! 		CubicSegment loop = (CubicSegment) v.next;
        ! 		v.next = loop.next;
        ! 		loop.next = loop;
          
        ! 		v.P2 = v.next.P1 = loop.P2 = loop.P1; // snap points
        ! 		paths.add(loop);
        ! 		current = v.next;
        ! 	      }
          
        ! 	    cx = coords[4];
        ! 	    cy = coords[5];
        ! 	    break;
        ! 	  }
        ! 	pi.next();
                }
          
              if (subpath != null)
                { // close any open path
        ! 	if (subpathx != cx || subpathy != cy)
        ! 	  {
        ! 	    current.next = new LineSegment(cx, cy, subpathx, subpathy);
        ! 	    current = current.next;
        ! 	    current.next = subpath;
        ! 	  }
        ! 	else
        ! 	  current.next = subpath;
                }
          
              if (paths.size() == 0)
        --- 1639,1758 ----
          
              while (! pi.isDone())
                {
        !         Segment v;
        !         switch (pi.currentSegment(coords))
        !           {
        !           case PathIterator.SEG_MOVETO:
        !             if (subpath != null)
        !               { // close existing open path
        !                 current.next = new LineSegment(cx, cy, subpathx, subpathy);
        !                 current = current.next;
        !                 current.next = subpath;
        !               }
        !             subpath = null;
        !             subpathx = cx = coords[0];
        !             subpathy = cy = coords[1];
        !             break;
          
        !           // replace 'close' with a line-to.
        !           case PathIterator.SEG_CLOSE:
        !             if (subpath != null && (subpathx != cx || subpathy != cy))
        !               {
        !                 current.next = new LineSegment(cx, cy, subpathx, subpathy);
        !                 current = current.next;
        !                 current.next = subpath;
        !                 cx = subpathx;
        !                 cy = subpathy;
        !                 subpath = null;
        !               }
        !             else if (subpath != null)
        !               {
        !                 current.next = subpath;
        !                 subpath = null;
        !               }
        !             break;
        !           case PathIterator.SEG_LINETO:
        !             if (cx != coords[0] || cy != coords[1])
        !               {
        !                 v = new LineSegment(cx, cy, coords[0], coords[1]);
        !                 if (subpath == null)
        !                   {
        !                     subpath = current = v;
        !                     paths.add(subpath);
        !                   }
        !                 else
        !                   {
        !                     current.next = v;
        !                     current = current.next;
        !                   }
        !                 cx = coords[0];
        !                 cy = coords[1];
        !               }
        !             break;
        !           case PathIterator.SEG_QUADTO:
        !             v = new QuadSegment(cx, cy, coords[0], coords[1], coords[2],
        !                                 coords[3]);
        !             if (subpath == null)
        !               {
        !                 subpath = current = v;
        !                 paths.add(subpath);
        !               }
        !             else
        !               {
        !                 current.next = v;
        !                 current = current.next;
        !               }
        !             cx = coords[2];
        !             cy = coords[3];
        !             break;
        !           case PathIterator.SEG_CUBICTO:
        !             v = new CubicSegment(cx, cy, coords[0], coords[1], coords[2],
        !                                  coords[3], coords[4], coords[5]);
        !             if (subpath == null)
        !               {
        !                 subpath = current = v;
        !                 paths.add(subpath);
        !               }
        !             else
        !               {
        !                 current.next = v;
        !                 current = current.next;
        !               }
          
        !             // check if the cubic is self-intersecting
        !             double[] lpts = ((CubicSegment) v).getLoop();
        !             if (lpts != null)
        !               {
        !                 // if it is, break off the loop into its own path.
        !                 v.subdivideInsert(lpts[0]);
        !                 v.next.subdivideInsert((lpts[1] - lpts[0]) / (1.0 - lpts[0]));
          
        !                 CubicSegment loop = (CubicSegment) v.next;
        !                 v.next = loop.next;
        !                 loop.next = loop;
          
        !                 v.P2 = v.next.P1 = loop.P2 = loop.P1; // snap points
        !                 paths.add(loop);
        !                 current = v.next;
        !               }
          
        !             cx = coords[4];
        !             cy = coords[5];
        !             break;
        !           }
        !         pi.next();
                }
          
              if (subpath != null)
                { // close any open path
        !         if (subpathx != cx || subpathy != cy)
        !           {
        !             current.next = new LineSegment(cx, cy, subpathx, subpathy);
        !             current = current.next;
        !             current.next = subpath;
        !           }
        !         else
        !           current.next = subpath;
                }
          
              if (paths.size() == 0)
        *************** public class Area implements Shape, Clon
        *** 1775,1788 ****
          
              do
                {
        ! 	do
        ! 	  {
        ! 	    nNodes += a.splitIntersections(b);
        ! 	    b = b.next;
        ! 	  }
        ! 	while (b != B);
          
        ! 	a = a.next; // move to the next segment
                }
              while (a != A); // until one wrap.
          
        --- 1775,1788 ----
          
              do
                {
        !         do
        !           {
        !             nNodes += a.splitIntersections(b);
        !             b = b.next;
        !           }
        !         while (b != B);
          
        !         a = a.next; // move to the next segment
                }
              while (a != A); // until one wrap.
          
        *************** public class Area implements Shape, Clon
        *** 1804,1818 ****
          
              do
                {
        ! 	Segment b = a.next;
        ! 	do
        ! 	  {
        ! 	    if (b != a) // necessary
        ! 	      nNodes += a.splitIntersections(b);
        ! 	    b = b.next;
        ! 	  }
        ! 	while (b != A);
        ! 	a = a.next; // move to the next segment
                }
              while (a != A); // until one wrap.
          
        --- 1804,1818 ----
          
              do
                {
        !         Segment b = a.next;
        !         do
        !           {
        !             if (b != a) // necessary
        !               nNodes += a.splitIntersections(b);
        !             b = b.next;
        !           }
        !         while (b != A);
        !         a = a.next; // move to the next segment
                }
              while (a != A); // until one wrap.
          
        *************** public class Area implements Shape, Clon
        *** 1841,1879 ****
              // Find which path contains which, assign winding numbers
              for (int i = 0; i < npaths; i++)
                {
        ! 	Segment pathA = (Segment) paths.elementAt(i);
        ! 	pathA.nullNodes(); // remove any now-redundant nodes, in case.
        ! 	int windingA = pathA.hasClockwiseOrientation() ? 1 : neg;
          
        ! 	for (int j = 0; j < npaths; j++)
        ! 	  if (i != j)
        ! 	    {
        ! 	      Segment pathB = (Segment) paths.elementAt(j);
          
        ! 	      // A contains B
        ! 	      if (bb[i].intersects(bb[j]))
        ! 	        {
        ! 		  Segment s = pathB.next;
        ! 		  while (s.P1.getY() == s.P2.getY() && s != pathB)
        ! 		    s = s.next;
        ! 		  Point2D p = s.getMidPoint();
        ! 		  if (pathA.contains(p.getX(), p.getY()))
        ! 		    contains[i][j] = windingA;
        ! 	        }
        ! 	      else
        ! 		// A does not contain B
        ! 		contains[i][j] = 0;
        ! 	    }
        ! 	  else
        ! 	    contains[i][j] = windingA; // i == j
                }
          
              for (int i = 0; i < npaths; i++)
                {
        ! 	windingNumbers[i][0] = 0;
        ! 	for (int j = 0; j < npaths; j++)
        ! 	  windingNumbers[i][0] += contains[j][i];
        ! 	windingNumbers[i][1] = contains[i][i];
                }
          
              Vector solids = new Vector();
        --- 1841,1879 ----
              // Find which path contains which, assign winding numbers
              for (int i = 0; i < npaths; i++)
                {
        !         Segment pathA = (Segment) paths.elementAt(i);
        !         pathA.nullNodes(); // remove any now-redundant nodes, in case.
        !         int windingA = pathA.hasClockwiseOrientation() ? 1 : neg;
          
        !         for (int j = 0; j < npaths; j++)
        !           if (i != j)
        !             {
        !               Segment pathB = (Segment) paths.elementAt(j);
          
        !               // A contains B
        !               if (bb[i].intersects(bb[j]))
        !                 {
        !                   Segment s = pathB.next;
        !                   while (s.P1.getY() == s.P2.getY() && s != pathB)
        !                     s = s.next;
        !                   Point2D p = s.getMidPoint();
        !                   if (pathA.contains(p.getX(), p.getY()))
        !                     contains[i][j] = windingA;
        !                 }
        !               else
        !                 // A does not contain B
        !                 contains[i][j] = 0;
        !             }
        !           else
        !             contains[i][j] = windingA; // i == j
                }
          
              for (int i = 0; i < npaths; i++)
                {
        !         windingNumbers[i][0] = 0;
        !         for (int j = 0; j < npaths; j++)
        !           windingNumbers[i][0] += contains[j][i];
        !         windingNumbers[i][1] = contains[i][i];
                }
          
              Vector solids = new Vector();
        *************** public class Area implements Shape, Clon
        *** 1881,1905 ****
          
              if (windingRule == PathIterator.WIND_NON_ZERO)
                {
        ! 	for (int i = 0; i < npaths; i++)
        ! 	  {
        ! 	    if (windingNumbers[i][0] == 0)
        ! 	      holes.add(paths.elementAt(i));
        ! 	    else if (windingNumbers[i][0] - windingNumbers[i][1] == 0
        ! 	             && Math.abs(windingNumbers[i][0]) == 1)
        ! 	      solids.add(paths.elementAt(i));
        ! 	  }
                }
              else
                {
        ! 	windingRule = PathIterator.WIND_NON_ZERO;
        ! 	for (int i = 0; i < npaths; i++)
        ! 	  {
        ! 	    if ((windingNumbers[i][0] & 1) == 0)
        ! 	      holes.add(paths.elementAt(i));
        ! 	    else if ((windingNumbers[i][0] & 1) == 1)
        ! 	      solids.add(paths.elementAt(i));
        ! 	  }
                }
          
              setDirection(holes, false);
        --- 1881,1905 ----
          
              if (windingRule == PathIterator.WIND_NON_ZERO)
                {
        !         for (int i = 0; i < npaths; i++)
        !           {
        !             if (windingNumbers[i][0] == 0)
        !               holes.add(paths.elementAt(i));
        !             else if (windingNumbers[i][0] - windingNumbers[i][1] == 0
        !                      && Math.abs(windingNumbers[i][0]) == 1)
        !               solids.add(paths.elementAt(i));
        !           }
                }
              else
                {
        !         windingRule = PathIterator.WIND_NON_ZERO;
        !         for (int i = 0; i < npaths; i++)
        !           {
        !             if ((windingNumbers[i][0] & 1) == 0)
        !               holes.add(paths.elementAt(i));
        !             else if ((windingNumbers[i][0] & 1) == 1)
        !               solids.add(paths.elementAt(i));
        !           }
                }
          
              setDirection(holes, false);
        *************** public class Area implements Shape, Clon
        *** 1918,1926 ****
              Segment v;
              for (int i = 0; i < paths.size(); i++)
                {
        ! 	v = (Segment) paths.elementAt(i);
        ! 	if (clockwise != v.hasClockwiseOrientation())
        ! 	  v.reverseAll();
                }
            }
          
        --- 1918,1926 ----
              Segment v;
              for (int i = 0; i < paths.size(); i++)
                {
        !         v = (Segment) paths.elementAt(i);
        !         if (clockwise != v.hasClockwiseOrientation())
        !           v.reverseAll();
                }
            }
          
        *************** public class Area implements Shape, Clon
        *** 2013,2021 ****
                int crossings = 0;
                do
                  {
        ! 	  int n = v.rayCrossing(x, y);
        ! 	  crossings += n;
        ! 	  v = v.next;
                  }
                while (v != this);
                return ((crossings & 1) == 1);
        --- 2013,2021 ----
                int crossings = 0;
                do
                  {
        !           int n = v.rayCrossing(x, y);
        !           crossings += n;
        !           v = v.next;
                  }
                while (v != this);
                return ((crossings & 1) == 1);
        *************** public class Area implements Shape, Clon
        *** 2029,2036 ****
                Segment v = this;
                do
                  {
        ! 	  v.node = null;
        ! 	  v = v.next;
                  }
                while (v != this);
              }
        --- 2029,2036 ----
                Segment v = this;
                do
                  {
        !           v.node = null;
        !           v = v.next;
                  }
                while (v != this);
              }
        *************** public class Area implements Shape, Clon
        *** 2043,2050 ****
                Segment v = this;
                do
                  {
        ! 	  v.transform(at);
        ! 	  v = v.next;
                  }
                while (v != this);
              }
        --- 2043,2050 ----
                Segment v = this;
                do
                  {
        !           v.transform(at);
        !           v = v.next;
                  }
                while (v != this);
              }
        *************** public class Area implements Shape, Clon
        *** 2073,2084 ****
                Segment v = this;
                do
                  {
        ! 	  Rectangle2D r = v.getBounds();
        ! 	  xmin = Math.min(r.getMinX(), xmin);
        ! 	  ymin = Math.min(r.getMinY(), ymin);
        ! 	  xmax = Math.max(r.getMaxX(), xmax);
        ! 	  ymax = Math.max(r.getMaxY(), ymax);
        ! 	  v = v.next;
                  }
                while (v != this);
          
        --- 2073,2084 ----
                Segment v = this;
                do
                  {
        !           Rectangle2D r = v.getBounds();
        !           xmin = Math.min(r.getMinX(), xmin);
        !           ymin = Math.min(r.getMinY(), ymin);
        !           xmax = Math.max(r.getMaxX(), xmax);
        !           ymax = Math.max(r.getMaxY(), ymax);
        !           v = v.next;
                  }
                while (v != this);
          
        *************** public class Area implements Shape, Clon
        *** 2096,2106 ****
                s = this;
                do
                  {
        ! 	  area += s.curveArea();
          
        ! 	  area += s.P1.getX() * s.next.P1.getY()
        ! 	  - s.P1.getY() * s.next.P1.getX();
        ! 	  s = s.next;
                  }
                while (s != this);
          
        --- 2096,2106 ----
                s = this;
                do
                  {
        !           area += s.curveArea();
          
        !           area += s.P1.getX() * s.next.P1.getY()
        !           - s.P1.getY() * s.next.P1.getX();
        !           s = s.next;
                  }
                while (s != this);
          
        *************** public class Area implements Shape, Clon
        *** 2117,2127 ****
                Segment former = this;
                while (v != this)
                  {
        ! 	  v.reverseCoords();
        ! 	  Segment vnext = v.next;
        ! 	  v.next = former;
        ! 	  former = v;
        ! 	  v = vnext;
                  }
                next = former;
              }
        --- 2117,2127 ----
                Segment former = this;
                while (v != this)
                  {
        !           v.reverseCoords();
        !           Segment vnext = v.next;
        !           v.next = former;
        !           former = v;
        !           v = vnext;
                  }
                next = former;
              }
        *************** public class Area implements Shape, Clon
        *** 2144,2152 ****
                Segment v = this;
                do
                  {
        ! 	  if (! (v instanceof LineSegment))
        ! 	    return false;
        ! 	  v = v.next;
                  }
                while (v != this);
                return true;
        --- 2144,2152 ----
                Segment v = this;
                do
                  {
        !           if (! (v instanceof LineSegment))
        !             return false;
        !           v = v.next;
                  }
                while (v != this);
                return true;
        *************** public class Area implements Shape, Clon
        *** 2162,2177 ****
          
                while (v != this)
                  {
        ! 	  list.add(v);
        ! 	  v = v.next;
                  }
          
                Segment clone = (Segment) this.clone();
                v = clone;
                for (int i = 0; i < list.size(); i++)
                  {
        ! 	  clone.next = (Segment) ((Segment) list.elementAt(i)).clone();
        ! 	  clone = clone.next;
                  }
                clone.next = v;
                return v;
        --- 2162,2177 ----
          
                while (v != this)
                  {
        !           list.add(v);
        !           v = v.next;
                  }
          
                Segment clone = (Segment) this.clone();
                v = clone;
                for (int i = 0; i < list.size(); i++)
                  {
        !           clone.next = (Segment) ((Segment) list.elementAt(i)).clone();
        !           clone = clone.next;
                  }
                clone.next = v;
                return v;
        *************** public class Area implements Shape, Clon
        *** 2187,2193 ****
                Point2D p = i.p;
                if ((pointEquals(P1, p) || pointEquals(P2, p))
                    && (pointEquals(b.P1, p) || pointEquals(b.P2, p)))
        ! 	return 0;
          
                subdivideInsert(i.ta);
                b.subdivideInsert(i.tb);
        --- 2187,2193 ----
                Point2D p = i.p;
                if ((pointEquals(P1, p) || pointEquals(P2, p))
                    && (pointEquals(b.P1, p) || pointEquals(b.P2, p)))
        !         return 0;
          
                subdivideInsert(i.ta);
                b.subdivideInsert(i.tb);
        *************** public class Area implements Shape, Clon
        *** 2212,2280 ****
                Vector v = new Vector();
                for (int i = 0; i < x.length; i++)
                  {
        ! 	  Point2D p = x[i].p;
        ! 	  if (! ((pointEquals(P1, p) || pointEquals(P2, p))
        ! 	      && (pointEquals(b.P1, p) || pointEquals(b.P2, p))))
        ! 	    v.add(x[i]);
                  }
          
                int nNodes = v.size();
                Intersection[] A = new Intersection[nNodes];
                Intersection[] B = new Intersection[nNodes];
                for (int i = 0; i < nNodes; i++)
        ! 	A[i] = B[i] = (Intersection) v.elementAt(i);
          
                // Create two lists sorted by the parameter
                // Bubble sort, OK I suppose, since the number of intersections
                // cannot be larger than 9 (cubic-cubic worst case) anyway
                for (int i = 0; i < nNodes - 1; i++)
                  {
        ! 	  for (int j = i + 1; j < nNodes; j++)
        ! 	    {
        ! 	      if (A[i].ta > A[j].ta)
        ! 	        {
        ! 		  Intersection swap = A[i];
        ! 		  A[i] = A[j];
        ! 		  A[j] = swap;
        ! 	        }
        ! 	      if (B[i].tb > B[j].tb)
        ! 	        {
        ! 		  Intersection swap = B[i];
        ! 		  B[i] = B[j];
        ! 		  B[j] = swap;
        ! 	        }
        ! 	    }
                  }
                // subdivide a
                Segment s = this;
                for (int i = 0; i < nNodes; i++)
                  {
        ! 	  s.subdivideInsert(A[i].ta);
          
        ! 	  // renormalize the parameters
        ! 	  for (int j = i + 1; j < nNodes; j++)
        ! 	    A[j].ta = (A[j].ta - A[i].ta) / (1.0 - A[i].ta);
          
        ! 	  A[i].seg = s;
        ! 	  s = s.next;
                  }
          
                // subdivide b, set nodes
                s = b;
                for (int i = 0; i < nNodes; i++)
                  {
        ! 	  s.subdivideInsert(B[i].tb);
          
        ! 	  for (int j = i + 1; j < nNodes; j++)
        ! 	    B[j].tb = (B[j].tb - B[i].tb) / (1.0 - B[i].tb);
          
        ! 	  // set nodes
        ! 	  B[i].seg.node = s.next; // node a -> b 
        ! 	  s.node = B[i].seg.next; // node b -> a 
          
        ! 	  // snap points
        ! 	  B[i].seg.P2 = B[i].seg.next.P1 = s.P2 = s.next.P1 = B[i].p;
        ! 	  s = s.next;
                  }
                return nNodes;
              }
        --- 2212,2280 ----
                Vector v = new Vector();
                for (int i = 0; i < x.length; i++)
                  {
        !           Point2D p = x[i].p;
        !           if (! ((pointEquals(P1, p) || pointEquals(P2, p))
        !               && (pointEquals(b.P1, p) || pointEquals(b.P2, p))))
        !             v.add(x[i]);
                  }
          
                int nNodes = v.size();
                Intersection[] A = new Intersection[nNodes];
                Intersection[] B = new Intersection[nNodes];
                for (int i = 0; i < nNodes; i++)
        !         A[i] = B[i] = (Intersection) v.elementAt(i);
          
                // Create two lists sorted by the parameter
                // Bubble sort, OK I suppose, since the number of intersections
                // cannot be larger than 9 (cubic-cubic worst case) anyway
                for (int i = 0; i < nNodes - 1; i++)
                  {
        !           for (int j = i + 1; j < nNodes; j++)
        !             {
        !               if (A[i].ta > A[j].ta)
        !                 {
        !                   Intersection swap = A[i];
        !                   A[i] = A[j];
        !                   A[j] = swap;
        !                 }
        !               if (B[i].tb > B[j].tb)
        !                 {
        !                   Intersection swap = B[i];
        !                   B[i] = B[j];
        !                   B[j] = swap;
        !                 }
        !             }
                  }
                // subdivide a
                Segment s = this;
                for (int i = 0; i < nNodes; i++)
                  {
        !           s.subdivideInsert(A[i].ta);
          
        !           // renormalize the parameters
        !           for (int j = i + 1; j < nNodes; j++)
        !             A[j].ta = (A[j].ta - A[i].ta) / (1.0 - A[i].ta);
          
        !           A[i].seg = s;
        !           s = s.next;
                  }
          
                // subdivide b, set nodes
                s = b;
                for (int i = 0; i < nNodes; i++)
                  {
        !           s.subdivideInsert(B[i].tb);
          
        !           for (int j = i + 1; j < nNodes; j++)
        !             B[j].tb = (B[j].tb - B[i].tb) / (1.0 - B[i].tb);
          
        !           // set nodes
        !           B[i].seg.node = s.next; // node a -> b
        !           s.node = B[i].seg.next; // node b -> a
          
        !           // snap points
        !           B[i].seg.P2 = B[i].seg.next.P1 = s.P2 = s.next.P1 = B[i].p;
        !           s = s.next;
                  }
                return nNodes;
              }
        *************** public class Area implements Shape, Clon
        *** 2286,2292 ****
              boolean pathEquals(Segment B)
              {
                if (! getPathBounds().equals(B.getPathBounds()))
        ! 	return false;
          
                Segment startA = getTopLeft();
                Segment startB = B.getTopLeft();
        --- 2286,2292 ----
              boolean pathEquals(Segment B)
              {
                if (! getPathBounds().equals(B.getPathBounds()))
        !         return false;
          
                Segment startA = getTopLeft();
                Segment startB = B.getTopLeft();
        *************** public class Area implements Shape, Clon
        *** 2294,2309 ****
                Segment b = startB;
                do
                  {
        ! 	  if (! a.equals(b))
        ! 	    return false;
          
        ! 	  if (a instanceof LineSegment)
        ! 	    a = ((LineSegment) a).lastCoLinear();
        ! 	  if (b instanceof LineSegment)
        ! 	    b = ((LineSegment) b).lastCoLinear();
          
        ! 	  a = a.next;
        ! 	  b = b.next;
                  }
                while (a != startA && b != startB);
                return true;
        --- 2294,2309 ----
                Segment b = startB;
                do
                  {
        !           if (! a.equals(b))
        !             return false;
          
        !           if (a instanceof LineSegment)
        !             a = ((LineSegment) a).lastCoLinear();
        !           if (b instanceof LineSegment)
        !             b = ((LineSegment) b).lastCoLinear();
          
        !           a = a.next;
        !           b = b.next;
                  }
                while (a != startA && b != startB);
                return true;
        *************** public class Area implements Shape, Clon
        *** 2318,2331 ****
                Segment tl = this;
                do
                  {
        ! 	  if (v.P1.getY() < tl.P1.getY())
        ! 	    tl = v;
        ! 	  else if (v.P1.getY() == tl.P1.getY())
        ! 	    {
        ! 	      if (v.P1.getX() < tl.P1.getX())
        ! 		tl = v;
        ! 	    }
        ! 	  v = v.next;
                  }
                while (v != this);
                return tl;
        --- 2318,2331 ----
                Segment tl = this;
                do
                  {
        !           if (v.P1.getY() < tl.P1.getY())
        !             tl = v;
        !           else if (v.P1.getY() == tl.P1.getY())
        !             {
        !               if (v.P1.getX() < tl.P1.getX())
        !                 tl = v;
        !             }
        !           v = v.next;
                  }
                while (v != this);
                return tl;
        *************** public class Area implements Shape, Clon
        *** 2439,2445 ****
                double y4 = b.P2.getY();
          
                if ((y1 - y3) * (x4 - x3) - (x1 - x3) * (y4 - y3) != 0.0)
        ! 	return false;
          
                return ((x2 - x1) * (y4 - y3) - (y2 - y1) * (x4 - x3) == 0.0);
              }
        --- 2439,2445 ----
                double y4 = b.P2.getY();
          
                if ((y1 - y3) * (x4 - x3) - (x1 - x3) * (y4 - y3) != 0.0)
        !         return false;
          
                return ((x2 - x1) * (y4 - y3) - (y2 - y1) * (x4 - x3) == 0.0);
              }
        *************** public class Area implements Shape, Clon
        *** 2455,2467 ****
          
                while (v instanceof LineSegment)
                  {
        ! 	  if (isCoLinear((LineSegment) v))
        ! 	    {
        ! 	      prev = v;
        ! 	      v = v.next;
        ! 	    }
        ! 	  else
        ! 	    return prev;
                  }
                return prev;
              }
        --- 2455,2467 ----
          
                while (v instanceof LineSegment)
                  {
        !           if (isCoLinear((LineSegment) v))
        !             {
        !               prev = v;
        !               v = v.next;
        !             }
        !           else
        !             return prev;
                  }
                return prev;
              }
        *************** public class Area implements Shape, Clon
        *** 2474,2485 ****
              boolean equals(Segment b)
              {
                if (! (b instanceof LineSegment))
        ! 	return false;
                Point2D p1 = P1;
                Point2D p3 = b.P1;
          
                if (! p1.equals(p3))
        ! 	return false;
          
                Point2D p2 = lastCoLinear().P2;
                Point2D p4 = ((LineSegment) b).lastCoLinear().P2;
        --- 2474,2485 ----
              boolean equals(Segment b)
              {
                if (! (b instanceof LineSegment))
        !         return false;
                Point2D p1 = P1;
                Point2D p3 = b.P1;
          
                if (! p1.equals(p3))
        !         return false;
          
                Point2D p2 = lastCoLinear().P2;
                Point2D p4 = ((LineSegment) b).lastCoLinear().P2;
        *************** public class Area implements Shape, Clon
        *** 2502,2514 ****
              boolean hasIntersections(Segment b)
              {
                if (b instanceof LineSegment)
        ! 	return (linesIntersect(this, (LineSegment) b) != null);
          
                if (b instanceof QuadSegment)
        ! 	return (lineQuadIntersect(this, (QuadSegment) b) != null);
          
                if (b instanceof CubicSegment)
        ! 	return (lineCubicIntersect(this, (CubicSegment) b) != null);
          
                return false;
              }
        --- 2502,2514 ----
              boolean hasIntersections(Segment b)
              {
                if (b instanceof LineSegment)
        !         return (linesIntersect(this, (LineSegment) b) != null);
          
                if (b instanceof QuadSegment)
        !         return (lineQuadIntersect(this, (QuadSegment) b) != null);
          
                if (b instanceof CubicSegment)
        !         return (lineCubicIntersect(this, (CubicSegment) b) != null);
          
                return false;
              }
        *************** public class Area implements Shape, Clon
        *** 2521,2547 ****
              {
                if (b instanceof LineSegment)
                  {
        ! 	  Intersection i = linesIntersect(this, (LineSegment) b);
          
        ! 	  if (i == null)
        ! 	    return 0;
          
        ! 	  return createNode(b, i);
                  }
          
                Intersection[] x = null;
          
                if (b instanceof QuadSegment)
        ! 	x = lineQuadIntersect(this, (QuadSegment) b);
          
                if (b instanceof CubicSegment)
        ! 	x = lineCubicIntersect(this, (CubicSegment) b);
          
                if (x == null)
        ! 	return 0;
          
                if (x.length == 1)
        ! 	return createNode(b, (Intersection) x[0]);
          
                return createNodes(b, x);
              }
        --- 2521,2547 ----
              {
                if (b instanceof LineSegment)
                  {
        !           Intersection i = linesIntersect(this, (LineSegment) b);
          
        !           if (i == null)
        !             return 0;
          
        !           return createNode(b, i);
                  }
          
                Intersection[] x = null;
          
                if (b instanceof QuadSegment)
        !         x = lineQuadIntersect(this, (QuadSegment) b);
          
                if (b instanceof CubicSegment)
        !         x = lineCubicIntersect(this, (CubicSegment) b);
          
                if (x == null)
        !         return 0;
          
                if (x.length == 1)
        !         return createNode(b, (Intersection) x[0]);
          
                return createNodes(b, x);
              }
        *************** public class Area implements Shape, Clon
        *** 2569,2588 ****
                double y1 = P2.getY() - y;
          
                if (y0 * y1 > 0)
        ! 	return 0;
          
                if (x0 < 0 && x1 < 0)
        ! 	return 0;
          
                if (y0 == 0.0)
        ! 	y0 -= EPSILON;
          
                if (y1 == 0.0)
        ! 	y1 -= EPSILON;
          
        !       if (Line2D.linesIntersect(x0, y0, x1, y1, 
        ! 				EPSILON, 0.0, Double.MAX_VALUE, 0.0))
        ! 	return 1;
                return 0;
              }
            } // class LineSegment
        --- 2569,2588 ----
                double y1 = P2.getY() - y;
          
                if (y0 * y1 > 0)
        !         return 0;
          
                if (x0 < 0 && x1 < 0)
        !         return 0;
          
                if (y0 == 0.0)
        !         y0 -= EPSILON;
          
                if (y1 == 0.0)
        !         y1 -= EPSILON;
          
        !       if (Line2D.linesIntersect(x0, y0, x1, y1,
        !                                 EPSILON, 0.0, Double.MAX_VALUE, 0.0))
        !         return 1;
                return 0;
              }
            } // class LineSegment
        *************** public class Area implements Shape, Clon
        *** 2652,2658 ****
              boolean equals(Segment b)
              {
                if (! (b instanceof QuadSegment))
        ! 	return false;
          
                return (P1.equals(b.P1) && cp.equals(((QuadSegment) b).cp)
                       && P2.equals(b.P2));
        --- 2652,2658 ----
              boolean equals(Segment b)
              {
                if (! (b instanceof QuadSegment))
        !         return false;
          
                return (P1.equals(b.P1) && cp.equals(((QuadSegment) b).cp)
                       && P2.equals(b.P2));
        *************** public class Area implements Shape, Clon
        *** 2700,2724 ****
                r1 = 2 * (y2 - 2 * y1 + y0);
                if (r1 != 0.0)
                  {
        ! 	  double t = -r0 / r1;
        ! 	  if (t > 0.0 && t < 1.0)
        ! 	    {
        ! 	      double y = evaluatePoint(t).getY();
        ! 	      ymax = Math.max(y, ymax);
        ! 	      ymin = Math.min(y, ymin);
        ! 	    }
                  }
                r0 = 2 * (x1 - x0);
                r1 = 2 * (x2 - 2 * x1 + x0);
                if (r1 != 0.0)
                  {
        ! 	  double t = -r0 / r1;
        ! 	  if (t > 0.0 && t < 1.0)
        ! 	    {
        ! 	      double x = evaluatePoint(t).getY();
        ! 	      xmax = Math.max(x, xmax);
        ! 	      xmin = Math.min(x, xmin);
        ! 	    }
                  }
          
                return (new Rectangle2D.Double(xmin, ymin, xmax - xmin, ymax - ymin));
        --- 2700,2724 ----
                r1 = 2 * (y2 - 2 * y1 + y0);
                if (r1 != 0.0)
                  {
        !           double t = -r0 / r1;
        !           if (t > 0.0 && t < 1.0)
        !             {
        !               double y = evaluatePoint(t).getY();
        !               ymax = Math.max(y, ymax);
        !               ymin = Math.min(y, ymin);
        !             }
                  }
                r0 = 2 * (x1 - x0);
                r1 = 2 * (x2 - 2 * x1 + x0);
                if (r1 != 0.0)
                  {
        !           double t = -r0 / r1;
        !           if (t > 0.0 && t < 1.0)
        !             {
        !               double x = evaluatePoint(t).getY();
        !               xmax = Math.max(x, xmax);
        !               xmin = Math.min(x, xmin);
        !             }
                  }
          
                return (new Rectangle2D.Double(xmin, ymin, xmax - xmin, ymax - ymin));
        *************** public class Area implements Shape, Clon
        *** 2785,2807 ****
                /* check if curve may intersect X+ axis. */
                if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0) && (y0 * y1 <= 0 || y1 * y2 <= 0))
                  {
        ! 	  if (y0 == 0.0)
        ! 	    y0 -= EPSILON;
        ! 	  if (y2 == 0.0)
        ! 	    y2 -= EPSILON;
          
        ! 	  r[0] = y0;
        ! 	  r[1] = 2 * (y1 - y0);
        ! 	  r[2] = (y2 - 2 * y1 + y0);
          
        ! 	  nRoots = QuadCurve2D.solveQuadratic(r);
        ! 	  for (int i = 0; i < nRoots; i++)
        ! 	    if (r[i] > 0.0f && r[i] < 1.0f)
        ! 	      {
        ! 		double t = r[i];
        ! 		if (t * t * (x2 - 2 * x1 + x0) + 2 * t * (x1 - x0) + x0 > 0.0)
        ! 		  nCrossings++;
        ! 	      }
                  }
                return nCrossings;
              }
        --- 2785,2807 ----
                /* check if curve may intersect X+ axis. */
                if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0) && (y0 * y1 <= 0 || y1 * y2 <= 0))
                  {
        !           if (y0 == 0.0)
        !             y0 -= EPSILON;
        !           if (y2 == 0.0)
        !             y2 -= EPSILON;
          
        !           r[0] = y0;
        !           r[1] = 2 * (y1 - y0);
        !           r[2] = (y2 - 2 * y1 + y0);
          
        !           nRoots = QuadCurve2D.solveQuadratic(r);
        !           for (int i = 0; i < nRoots; i++)
        !             if (r[i] > 0.0f && r[i] < 1.0f)
        !               {
        !                 double t = r[i];
        !                 if (t * t * (x2 - 2 * x1 + x0) + 2 * t * (x1 - x0) + x0 > 0.0)
        !                   nCrossings++;
        !               }
                  }
                return nCrossings;
              }
        *************** public class Area implements Shape, Clon
        *** 2825,2851 ****
              int splitIntersections(Segment b)
              {
                if (b instanceof LineSegment)
        ! 	return (b.splitIntersections(this));
          
                if (b instanceof CubicSegment)
        ! 	return (b.splitIntersections(this));
          
                if (b instanceof QuadSegment)
                  {
        ! 	  // Use the cubic-cubic intersection routine for quads as well,
        ! 	  // Since a quadratic can be exactly described as a cubic, this
        ! 	  // should not be a problem; 
        ! 	  // The recursion depth will be the same in any case.
        ! 	  Intersection[] x = cubicCubicIntersect(getCubicSegment(),
        ! 	                                         ((QuadSegment) b)
        ! 	                                         .getCubicSegment());
        ! 	  if (x == null)
        ! 	    return 0;
          
        ! 	  if (x.length == 1)
        ! 	    return createNode(b, (Intersection) x[0]);
          
        ! 	  return createNodes(b, x);
                  }
                return 0;
              }
        --- 2825,2851 ----
              int splitIntersections(Segment b)
              {
                if (b instanceof LineSegment)
        !         return (b.splitIntersections(this));
          
                if (b instanceof CubicSegment)
        !         return (b.splitIntersections(this));
          
                if (b instanceof QuadSegment)
                  {
        !           // Use the cubic-cubic intersection routine for quads as well,
        !           // Since a quadratic can be exactly described as a cubic, this
        !           // should not be a problem;
        !           // The recursion depth will be the same in any case.
        !           Intersection[] x = cubicCubicIntersect(getCubicSegment(),
        !                                                  ((QuadSegment) b)
        !                                                  .getCubicSegment());
        !           if (x == null)
        !             return 0;
          
        !           if (x.length == 1)
        !             return createNode(b, (Intersection) x[0]);
          
        !           return createNodes(b, x);
                  }
                return 0;
              }
        *************** public class Area implements Shape, Clon
        *** 2959,2965 ****
              boolean equals(Segment b)
              {
                if (! (b instanceof CubicSegment))
        ! 	return false;
          
                return (P1.equals(b.P1) && cp1.equals(((CubicSegment) b).cp1)
                       && cp2.equals(((CubicSegment) b).cp2) && P2.equals(b.P2));
        --- 2959,2965 ----
              boolean equals(Segment b)
              {
                if (! (b instanceof CubicSegment))
        !         return false;
          
                return (P1.equals(b.P1) && cp1.equals(((CubicSegment) b).cp1)
                       && cp2.equals(((CubicSegment) b).cp2) && P2.equals(b.P2));
        *************** public class Area implements Shape, Clon
        *** 3015,3027 ****
                int n = QuadCurve2D.solveQuadratic(r);
                for (int i = 0; i < n; i++)
                  {
        ! 	  double t = r[i];
        ! 	  if (t > 0 && t < 1.0)
        ! 	    {
        ! 	      double y = evaluatePoint(t).getY();
        ! 	      ymax = Math.max(y, ymax);
        ! 	      ymin = Math.min(y, ymin);
        ! 	    }
                  }
          
                r[0] = 3 * (x1 - x0);
        --- 3015,3027 ----
                int n = QuadCurve2D.solveQuadratic(r);
                for (int i = 0; i < n; i++)
                  {
        !           double t = r[i];
        !           if (t > 0 && t < 1.0)
        !             {
        !               double y = evaluatePoint(t).getY();
        !               ymax = Math.max(y, ymax);
        !               ymin = Math.min(y, ymin);
        !             }
                  }
          
                r[0] = 3 * (x1 - x0);
        *************** public class Area implements Shape, Clon
        *** 3030,3042 ****
                n = QuadCurve2D.solveQuadratic(r);
                for (int i = 0; i < n; i++)
                  {
        ! 	  double t = r[i];
        ! 	  if (t > 0 && t < 1.0)
        ! 	    {
        ! 	      double x = evaluatePoint(t).getX();
        ! 	      xmax = Math.max(x, xmax);
        ! 	      xmin = Math.min(x, xmin);
        ! 	    }
                  }
                return (new Rectangle2D.Double(xmin, ymin, (xmax - xmin), (ymax - ymin)));
              }
        --- 3030,3042 ----
                n = QuadCurve2D.solveQuadratic(r);
                for (int i = 0; i < n; i++)
                  {
        !           double t = r[i];
        !           if (t > 0 && t < 1.0)
        !             {
        !               double x = evaluatePoint(t).getX();
        !               xmax = Math.max(x, xmax);
        !               xmin = Math.min(x, xmin);
        !             }
                  }
                return (new Rectangle2D.Double(xmin, ymin, (xmax - xmin), (ymax - ymin)));
              }
        *************** public class Area implements Shape, Clon
        *** 3078,3115 ****
          
                // A qudratic
                if (R == 0.0 && T == 0.0)
        ! 	return null;
          
                // true cubic
                if (R != 0.0 && T != 0.0)
                  {
        ! 	  A = 3 * (x2 + x0 - 2 * x1) / R;
        ! 	  B = 3 * (x1 - x0) / R;
          
        ! 	  double P = 3 * (y2 + y0 - 2 * y1) / T;
        ! 	  double Q = 3 * (y1 - y0) / T;
          
        ! 	  if (A == P || Q == B)
        ! 	    return null;
          
        ! 	  k = (Q - B) / (A - P);
                  }
                else
                  {
        ! 	  if (R == 0.0)
        ! 	    {
        ! 	      // quadratic in x
        ! 	      k = -(3 * (x1 - x0)) / (3 * (x2 + x0 - 2 * x1));
        ! 	      A = 3 * (y2 + y0 - 2 * y1) / T;
        ! 	      B = 3 * (y1 - y0) / T;
        ! 	    }
        ! 	  else
        ! 	    {
        ! 	      // quadratic in y
        ! 	      k = -(3 * (y1 - y0)) / (3 * (y2 + y0 - 2 * y1));
        ! 	      A = 3 * (x2 + x0 - 2 * x1) / R;
        ! 	      B = 3 * (x1 - x0) / R;
        ! 	    }
                  }
          
                r[0] = -k * k * k - A * k * k - B * k;
        --- 3078,3115 ----
          
                // A qudratic
                if (R == 0.0 && T == 0.0)
        !         return null;
          
                // true cubic
                if (R != 0.0 && T != 0.0)
                  {
        !           A = 3 * (x2 + x0 - 2 * x1) / R;
        !           B = 3 * (x1 - x0) / R;
          
        !           double P = 3 * (y2 + y0 - 2 * y1) / T;
        !           double Q = 3 * (y1 - y0) / T;
          
        !           if (A == P || Q == B)
        !             return null;
          
        !           k = (Q - B) / (A - P);
                  }
                else
                  {
        !           if (R == 0.0)
        !             {
        !               // quadratic in x
        !               k = -(3 * (x1 - x0)) / (3 * (x2 + x0 - 2 * x1));
        !               A = 3 * (y2 + y0 - 2 * y1) / T;
        !               B = 3 * (y1 - y0) / T;
        !             }
        !           else
        !             {
        !               // quadratic in y
        !               k = -(3 * (y1 - y0)) / (3 * (y2 + y0 - 2 * y1));
        !               A = 3 * (x2 + x0 - 2 * x1) / R;
        !               B = 3 * (x1 - x0) / R;
        !             }
                  }
          
                r[0] = -k * k * k - A * k * k - B * k;
        *************** public class Area implements Shape, Clon
        *** 3119,3145 ****
          
                int n = CubicCurve2D.solveCubic(r);
                if (n != 3)
        ! 	return null;
          
                // sort r
                double t;
                for (int i = 0; i < 2; i++)
        ! 	for (int j = i + 1; j < 3; j++)
        ! 	  if (r[j] < r[i])
        ! 	    {
        ! 	      t = r[i];
        ! 	      r[i] = r[j];
        ! 	      r[j] = t;
        ! 	    }
          
                if (Math.abs(r[0] + r[2] - k) < 1E-13)
        ! 	if (r[0] >= 0.0 && r[0] <= 1.0 && r[2] >= 0.0 && r[2] <= 1.0)
        ! 	  if (evaluatePoint(r[0]).distance(evaluatePoint(r[2])) < PE_EPSILON * 10)
        ! 	    { // we snap the points anyway
        ! 	      results[0] = r[0];
        ! 	      results[1] = r[2];
        ! 	      return (results);
        ! 	    }
                return null;
              }
          
        --- 3119,3145 ----
          
                int n = CubicCurve2D.solveCubic(r);
                if (n != 3)
        !         return null;
          
                // sort r
                double t;
                for (int i = 0; i < 2; i++)
        !         for (int j = i + 1; j < 3; j++)
        !           if (r[j] < r[i])
        !             {
        !               t = r[i];
        !               r[i] = r[j];
        !               r[j] = t;
        !             }
          
                if (Math.abs(r[0] + r[2] - k) < 1E-13)
        !         if (r[0] >= 0.0 && r[0] <= 1.0 && r[2] >= 0.0 && r[2] <= 1.0)
        !           if (evaluatePoint(r[0]).distance(evaluatePoint(r[2])) < PE_EPSILON * 10)
        !             { // we snap the points anyway
        !               results[0] = r[0];
        !               results[1] = r[2];
        !               return (results);
        !             }
                return null;
              }
          
        *************** public class Area implements Shape, Clon
        *** 3195,3222 ****
                if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0 || x3 > 0.0)
                    && (y0 * y1 <= 0 || y1 * y2 <= 0 || y2 * y3 <= 0))
                  {
        ! 	  if (y0 == 0.0)
        ! 	    y0 -= EPSILON;
        ! 	  if (y3 == 0.0)
        ! 	    y3 -= EPSILON;
          
        ! 	  r[0] = y0;
        ! 	  r[1] = 3 * (y1 - y0);
        ! 	  r[2] = 3 * (y2 + y0 - 2 * y1);
        ! 	  r[3] = y3 - 3 * y2 + 3 * y1 - y0;
          
        ! 	  if ((nRoots = CubicCurve2D.solveCubic(r)) > 0)
        ! 	    for (int i = 0; i < nRoots; i++)
        ! 	      {
        ! 		if (r[i] > 0.0 && r[i] < 1.0)
        ! 		  {
        ! 		    double t = r[i];
        ! 		    if (-(t * t * t) * (x0 - 3 * x1 + 3 * x2 - x3)
        ! 		        + 3 * t * t * (x0 - 2 * x1 + x2) + 3 * t * (x1 - x0)
        ! 		        + x0 > 0.0)
        ! 		      nCrossings++;
        ! 		  }
        ! 	      }
                  }
                return nCrossings;
              }
        --- 3195,3222 ----
                if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0 || x3 > 0.0)
                    && (y0 * y1 <= 0 || y1 * y2 <= 0 || y2 * y3 <= 0))
                  {
        !           if (y0 == 0.0)
        !             y0 -= EPSILON;
        !           if (y3 == 0.0)
        !             y3 -= EPSILON;
          
        !           r[0] = y0;
        !           r[1] = 3 * (y1 - y0);
        !           r[2] = 3 * (y2 + y0 - 2 * y1);
        !           r[3] = y3 - 3 * y2 + 3 * y1 - y0;
          
        !           if ((nRoots = CubicCurve2D.solveCubic(r)) > 0)
        !             for (int i = 0; i < nRoots; i++)
        !               {
        !                 if (r[i] > 0.0 && r[i] < 1.0)
        !                   {
        !                     double t = r[i];
        !                     if (-(t * t * t) * (x0 - 3 * x1 + 3 * x2 - x3)
        !                         + 3 * t * t * (x0 - 2 * x1 + x2) + 3 * t * (x1 - x0)
        !                         + x0 > 0.0)
        !                       nCrossings++;
        !                   }
        !               }
                  }
                return nCrossings;
              }
        *************** public class Area implements Shape, Clon
        *** 3241,3261 ****
              int splitIntersections(Segment b)
              {
                if (b instanceof LineSegment)
        ! 	return (b.splitIntersections(this));
          
                Intersection[] x = null;
          
                if (b instanceof QuadSegment)
        ! 	x = cubicCubicIntersect(this, ((QuadSegment) b).getCubicSegment());
          
                if (b instanceof CubicSegment)
        ! 	x = cubicCubicIntersect(this, (CubicSegment) b);
          
                if (x == null)
        ! 	return 0;
          
                if (x.length == 1)
        ! 	return createNode(b, x[0]);
          
                return createNodes(b, x);
              }
        --- 3241,3261 ----
              int splitIntersections(Segment b)
              {
                if (b instanceof LineSegment)
        !         return (b.splitIntersections(this));
          
                Intersection[] x = null;
          
                if (b instanceof QuadSegment)
        !         x = cubicCubicIntersect(this, ((QuadSegment) b).getCubicSegment());
          
                if (b instanceof CubicSegment)
        !         x = cubicCubicIntersect(this, (CubicSegment) b);
          
                if (x == null)
        !         return 0;
          
                if (x.length == 1)
        !         return createNode(b, x[0]);
          
                return createNodes(b, x);
              }
        diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/CubicCurve2D.java gcc-4.6.0/libjava/classpath/java/awt/geom/CubicCurve2D.java
        *** gcc-4.5.2/libjava/classpath/java/awt/geom/CubicCurve2D.java	Sat Jun 28 13:29:13 2008
        --- gcc-4.6.0/libjava/classpath/java/awt/geom/CubicCurve2D.java	Tue Jan 11 19:46:05 2011
        *************** public abstract class CubicCurve2D imple
        *** 585,610 ****
          
              if (left != null)
                {
        ! 	left[leftOff] = left_P1_x;
        ! 	left[leftOff + 1] = left_P1_y;
        ! 	left[leftOff + 2] = left_C1_x;
        ! 	left[leftOff + 3] = left_C1_y;
        ! 	left[leftOff + 4] = left_C2_x;
        ! 	left[leftOff + 5] = left_C2_y;
        ! 	left[leftOff + 6] = Mid_x;
        ! 	left[leftOff + 7] = Mid_y;
                }
          
              if (right != null)
                {
        ! 	right[rightOff] = Mid_x;
        ! 	right[rightOff + 1] = Mid_y;
        ! 	right[rightOff + 2] = right_C1_x;
        ! 	right[rightOff + 3] = right_C1_y;
        ! 	right[rightOff + 4] = right_C2_x;
        ! 	right[rightOff + 5] = right_C2_y;
        ! 	right[rightOff + 6] = right_P2_x;
        ! 	right[rightOff + 7] = right_P2_y;
                }
            }
          
        --- 585,610 ----
          
              if (left != null)
                {
        !         left[leftOff] = left_P1_x;
        !         left[leftOff + 1] = left_P1_y;
        !         left[leftOff + 2] = left_C1_x;
        !         left[leftOff + 3] = left_C1_y;
        !         left[leftOff + 4] = left_C2_x;
        !         left[leftOff + 5] = left_C2_y;
        !         left[leftOff + 6] = Mid_x;
        !         left[leftOff + 7] = Mid_y;
                }
          
              if (right != null)
                {
        !         right[rightOff] = Mid_x;
        !         right[rightOff + 1] = Mid_y;
        !         right[rightOff + 2] = right_C1_x;
        !         right[rightOff + 3] = right_C1_y;
        !         right[rightOff + 4] = right_C2_x;
        !         right[rightOff + 5] = right_C2_y;
        !         right[rightOff + 6] = right_P2_x;
        !         right[rightOff + 7] = right_P2_y;
                }
            }
          
        *************** public abstract class CubicCurve2D imple
        *** 710,716 ****
              // The Java implementation is very similar to the GSL code, but
              // not a strict one-to-one copy. For example, GSL would sort the
              // result.
        !     
              double a;
              double b;
              double c;
        --- 710,716 ----
              // The Java implementation is very similar to the GSL code, but
              // not a strict one-to-one copy. For example, GSL would sort the
              // result.
        ! 
              double a;
              double b;
              double c;
        *************** public abstract class CubicCurve2D imple
        *** 749,794 ****
          
              if (R == 0 && Q == 0)
                {
        ! 	// The GNU Scientific Library would return three identical
        ! 	// solutions in this case.
        ! 	res[0] = -a / 3;
        ! 	return 1;
                }
          
              if (CR2 == CQ3)
                {
        ! 	/* this test is actually R2 == Q3, written in a form suitable
        ! 	   for exact computation with integers */
        ! 	/* Due to finite precision some double roots may be missed, and
        ! 	   considered to be a pair of complex roots z = x +/- epsilon i
        ! 	   close to the real axis. */
        ! 	double sqrtQ = Math.sqrt(Q);
          
        ! 	if (R > 0)
        ! 	  {
        ! 	    res[0] = -2 * sqrtQ - a / 3;
        ! 	    res[1] = sqrtQ - a / 3;
        ! 	  }
        ! 	else
        ! 	  {
        ! 	    res[0] = -sqrtQ - a / 3;
        ! 	    res[1] = 2 * sqrtQ - a / 3;
        ! 	  }
        ! 	return 2;
                }
          
              if (CR2 < CQ3) /* equivalent to R2 < Q3 */
                {
        ! 	double sqrtQ = Math.sqrt(Q);
        ! 	double sqrtQ3 = sqrtQ * sqrtQ * sqrtQ;
        ! 	double theta = Math.acos(R / sqrtQ3);
        ! 	double norm = -2 * sqrtQ;
        ! 	res[0] = norm * Math.cos(theta / 3) - a / 3;
        ! 	res[1] = norm * Math.cos((theta + 2.0 * Math.PI) / 3) - a / 3;
        ! 	res[2] = norm * Math.cos((theta - 2.0 * Math.PI) / 3) - a / 3;
          
        ! 	// The GNU Scientific Library sorts the results. We don't.
        ! 	return 3;
                }
          
              double sgnR = (R >= 0 ? 1 : -1);
        --- 749,794 ----
          
              if (R == 0 && Q == 0)
                {
        !         // The GNU Scientific Library would return three identical
        !         // solutions in this case.
        !         res[0] = -a / 3;
        !         return 1;
                }
          
              if (CR2 == CQ3)
                {
        !         /* this test is actually R2 == Q3, written in a form suitable
        !            for exact computation with integers */
        !         /* Due to finite precision some double roots may be missed, and
        !            considered to be a pair of complex roots z = x +/- epsilon i
        !            close to the real axis. */
        !         double sqrtQ = Math.sqrt(Q);
          
        !         if (R > 0)
        !           {
        !             res[0] = -2 * sqrtQ - a / 3;
        !             res[1] = sqrtQ - a / 3;
        !           }
        !         else
        !           {
        !             res[0] = -sqrtQ - a / 3;
        !             res[1] = 2 * sqrtQ - a / 3;
        !           }
        !         return 2;
                }
          
              if (CR2 < CQ3) /* equivalent to R2 < Q3 */
                {
        !         double sqrtQ = Math.sqrt(Q);
        !         double sqrtQ3 = sqrtQ * sqrtQ * sqrtQ;
        !         double theta = Math.acos(R / sqrtQ3);
        !         double norm = -2 * sqrtQ;
        !         res[0] = norm * Math.cos(theta / 3) - a / 3;
        !         res[1] = norm * Math.cos((theta + 2.0 * Math.PI) / 3) - a / 3;
        !         res[2] = norm * Math.cos((theta - 2.0 * Math.PI) / 3) - a / 3;
          
        !         // The GNU Scientific Library sorts the results. We don't.
        !         return 3;
                }
          
              double sgnR = (R >= 0 ? 1 : -1);
        *************** public abstract class CubicCurve2D imple
        *** 862,868 ****
            }
          
            /**
        !    * Determines whether any part of a Rectangle2D is inside the area bounded 
             * by the curve and the straight line connecting its end points.
             * @see #intersects(double, double, double, double)
             */
        --- 862,868 ----
            }
          
            /**
        !    * Determines whether any part of a Rectangle2D is inside the area bounded
             * by the curve and the straight line connecting its end points.
             * @see #intersects(double, double, double, double)
             */
        *************** public abstract class CubicCurve2D imple
        *** 902,908 ****
            }
          
            /**
        !    * Determine whether a Rectangle2D is entirely inside the area that is 
             * bounded by the curve and the straight line connecting its end points.
             *
             * 

        = 2; ! } ! public void next() ! { ! current++; ! } ! public int currentSegment(float[] coords) ! { ! int result; ! switch (current) ! { ! case 0: ! coords[0] = (float) getX1(); ! coords[1] = (float) getY1(); ! result = SEG_MOVETO; ! break; ! case 1: ! coords[0] = (float) getCtrlX1(); ! coords[1] = (float) getCtrlY1(); ! coords[2] = (float) getCtrlX2(); ! coords[3] = (float) getCtrlY2(); ! coords[4] = (float) getX2(); ! coords[5] = (float) getY2(); ! result = SEG_CUBICTO; ! break; ! default: ! throw new NoSuchElementException("cubic iterator out of bounds"); ! } ! if (at != null) ! at.transform(coords, 0, coords, 0, 3); ! return result; ! } ! public int currentSegment(double[] coords) ! { ! int result; ! switch (current) ! { ! case 0: ! coords[0] = getX1(); ! coords[1] = getY1(); ! result = SEG_MOVETO; ! break; ! case 1: ! coords[0] = getCtrlX1(); ! coords[1] = getCtrlY1(); ! coords[2] = getCtrlX2(); ! coords[3] = getCtrlY2(); ! coords[4] = getX2(); ! coords[5] = getY2(); ! result = SEG_CUBICTO; ! break; ! default: ! throw new NoSuchElementException("cubic iterator out of bounds"); ! } ! if (at != null) ! at.transform(coords, 0, coords, 0, 3); ! return result; ! } }; } --- 930,1006 ---- { return new PathIterator() { ! /** Current coordinate. */ ! private int current = 0; ! public int getWindingRule() ! { ! return WIND_NON_ZERO; ! } ! public boolean isDone() ! { ! return current >= 2; ! } ! public void next() ! { ! current++; ! } ! public int currentSegment(float[] coords) ! { ! int result; ! switch (current) ! { ! case 0: ! coords[0] = (float) getX1(); ! coords[1] = (float) getY1(); ! result = SEG_MOVETO; ! break; ! case 1: ! coords[0] = (float) getCtrlX1(); ! coords[1] = (float) getCtrlY1(); ! coords[2] = (float) getCtrlX2(); ! coords[3] = (float) getCtrlY2(); ! coords[4] = (float) getX2(); ! coords[5] = (float) getY2(); ! result = SEG_CUBICTO; ! break; ! default: ! throw new NoSuchElementException("cubic iterator out of bounds"); ! } ! if (at != null) ! at.transform(coords, 0, coords, 0, 3); ! return result; ! } ! public int currentSegment(double[] coords) ! { ! int result; ! switch (current) ! { ! case 0: ! coords[0] = getX1(); ! coords[1] = getY1(); ! result = SEG_MOVETO; ! break; ! case 1: ! coords[0] = getCtrlX1(); ! coords[1] = getCtrlY1(); ! coords[2] = getCtrlX2(); ! coords[3] = getCtrlY2(); ! coords[4] = getX2(); ! coords[5] = getY2(); ! result = SEG_CUBICTO; ! break; ! default: ! throw new NoSuchElementException("cubic iterator out of bounds"); ! } ! if (at != null) ! at.transform(coords, 0, coords, 0, 3); ! return result; ! } }; } *************** public abstract class CubicCurve2D imple *** 1018,1028 **** { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! throw (Error) new InternalError().initCause(e); // Impossible } } --- 1018,1028 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! throw (Error) new InternalError().initCause(e); // Impossible } } *************** public abstract class CubicCurve2D imple *** 1042,1048 **** * * A special-case not adressed in this code is self-intersections * of the curve, e.g. if the axis intersects the self-itersection, ! * the degenerate roots of the polynomial will erroneously count as * a single intersection of the curve, and not two. */ private int getAxisIntersections(double x, double y, boolean useYaxis, --- 1042,1048 ---- * * A special-case not adressed in this code is self-intersections * of the curve, e.g. if the axis intersects the self-itersection, ! * the degenerate roots of the polynomial will erroneously count as * a single intersection of the curve, and not two. */ private int getAxisIntersections(double x, double y, boolean useYaxis, *************** public abstract class CubicCurve2D imple *** 1064,1111 **** if (useYaxis) { ! a0 = getY1() - y; ! a1 = getCtrlY1() - y; ! a2 = getCtrlY2() - y; ! a3 = getY2() - y; ! b0 = getX1() - x; ! b1 = getCtrlX1() - x; ! b2 = getCtrlX2() - x; ! b3 = getX2() - x; } else { ! a0 = getX1() - x; ! a1 = getCtrlX1() - x; ! a2 = getCtrlX2() - x; ! a3 = getX2() - x; ! b0 = getY1() - y; ! b1 = getCtrlY1() - y; ! b2 = getCtrlY2() - y; ! b3 = getY2() - y; } ! /* If the axis intersects a start/endpoint, shift it up by some small amount to guarantee the line is 'inside' If this is not done, bad behaviour may result for points on that axis.*/ if (a0 == 0.0 || a3 == 0.0) { ! double small = getFlatness() * EPSILON; ! if (a0 == 0.0) ! a0 -= small; ! if (a3 == 0.0) ! a3 -= small; } if (useYaxis) { ! if (Line2D.linesIntersect(b0, a0, b3, a3, EPSILON, 0.0, distance, 0.0)) ! nCrossings++; } else { ! if (Line2D.linesIntersect(a0, b0, a3, b3, 0.0, EPSILON, 0.0, distance)) ! nCrossings++; } r[0] = a0; --- 1064,1111 ---- if (useYaxis) { ! a0 = getY1() - y; ! a1 = getCtrlY1() - y; ! a2 = getCtrlY2() - y; ! a3 = getY2() - y; ! b0 = getX1() - x; ! b1 = getCtrlX1() - x; ! b2 = getCtrlX2() - x; ! b3 = getX2() - x; } else { ! a0 = getX1() - x; ! a1 = getCtrlX1() - x; ! a2 = getCtrlX2() - x; ! a3 = getX2() - x; ! b0 = getY1() - y; ! b1 = getCtrlY1() - y; ! b2 = getCtrlY2() - y; ! b3 = getY2() - y; } ! /* If the axis intersects a start/endpoint, shift it up by some small amount to guarantee the line is 'inside' If this is not done, bad behaviour may result for points on that axis.*/ if (a0 == 0.0 || a3 == 0.0) { ! double small = getFlatness() * EPSILON; ! if (a0 == 0.0) ! a0 -= small; ! if (a3 == 0.0) ! a3 -= small; } if (useYaxis) { ! if (Line2D.linesIntersect(b0, a0, b3, a3, EPSILON, 0.0, distance, 0.0)) ! nCrossings++; } else { ! if (Line2D.linesIntersect(a0, b0, a3, b3, 0.0, EPSILON, 0.0, distance)) ! nCrossings++; } r[0] = a0; *************** public abstract class CubicCurve2D imple *** 1116,1130 **** if ((nRoots = solveCubic(r)) != 0) for (int i = 0; i < nRoots; i++) { ! double t = r[i]; ! if (t >= 0.0 && t <= 1.0) ! { ! double crossing = -(t * t * t) * (b0 - 3 * b1 + 3 * b2 - b3) ! + 3 * t * t * (b0 - 2 * b1 + b2) ! + 3 * t * (b1 - b0) + b0; ! if (crossing > 0.0 && crossing <= distance) ! nCrossings++; ! } } return (nCrossings); --- 1116,1130 ---- if ((nRoots = solveCubic(r)) != 0) for (int i = 0; i < nRoots; i++) { ! double t = r[i]; ! if (t >= 0.0 && t <= 1.0) ! { ! double crossing = -(t * t * t) * (b0 - 3 * b1 + 3 * b2 - b3) ! + 3 * t * t * (b0 - 2 * b1 + b2) ! + 3 * t * (b1 - b0) + b0; ! if (crossing > 0.0 && crossing <= distance) ! nCrossings++; ! } } return (nCrossings); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/Ellipse2D.java gcc-4.6.0/libjava/classpath/java/awt/geom/Ellipse2D.java *** gcc-4.5.2/libjava/classpath/java/awt/geom/Ellipse2D.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/geom/Ellipse2D.java Tue Jan 11 19:46:05 2011 *************** public abstract class Ellipse2D extends *** 101,107 **** * Note: An ellipse cannot be represented exactly in PathIterator * segments, the outline is thefore approximated with cubic * Bezier segments. ! * * @param at an optional transform. * @return A path iterator. */ --- 101,107 ---- * Note: An ellipse cannot be represented exactly in PathIterator * segments, the outline is thefore approximated with cubic * Bezier segments. ! * * @param at an optional transform. * @return A path iterator. */ *************** public abstract class Ellipse2D extends *** 242,248 **** /** * Returns true if the ellipse encloses no area, and * false otherwise. ! * * @return A boolean. */ public boolean isEmpty() --- 242,248 ---- /** * Returns true if the ellipse encloses no area, and * false otherwise. ! * * @return A boolean. */ public boolean isEmpty() *************** public abstract class Ellipse2D extends *** 368,374 **** /** * Returns true if the ellipse encloses no area, and * false otherwise. ! * * @return A boolean. */ public boolean isEmpty() --- 368,374 ---- /** * Returns true if the ellipse encloses no area, and * false otherwise. ! * * @return A boolean. */ public boolean isEmpty() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/FlatteningPathIterator.java gcc-4.6.0/libjava/classpath/java/awt/geom/FlatteningPathIterator.java *** gcc-4.5.2/libjava/classpath/java/awt/geom/FlatteningPathIterator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/geom/FlatteningPathIterator.java Tue Jan 11 19:46:05 2011 *************** public class FlatteningPathIterator *** 141,148 **** */ private int[] recLevel; ! ! private final double[] scratch = new double[6]; --- 141,148 ---- */ private int[] recLevel; ! ! private final double[] scratch = new double[6]; *************** public class FlatteningPathIterator *** 387,393 **** } srcSegType = srcIter.currentSegment(scratch); ! switch (srcSegType) { case PathIterator.SEG_CLOSE: --- 387,393 ---- } srcSegType = srcIter.currentSegment(scratch); ! switch (srcSegType) { case PathIterator.SEG_CLOSE: *************** public class FlatteningPathIterator *** 493,499 **** && (CubicCurve2D.getFlatnessSq(stack, sp) >= flatnessSq)) { recLevel[stackSize] = recLevel[stackSize - 1] = ++level; ! CubicCurve2D.subdivide(stack, sp, stack, sp - 6, stack, sp); ++stackSize; sp -= 6; --- 493,499 ---- && (CubicCurve2D.getFlatnessSq(stack, sp) >= flatnessSq)) { recLevel[stackSize] = recLevel[stackSize - 1] = ++level; ! CubicCurve2D.subdivide(stack, sp, stack, sp - 6, stack, sp); ++stackSize; sp -= 6; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/GeneralPath.java gcc-4.6.0/libjava/classpath/java/awt/geom/GeneralPath.java *** gcc-4.5.2/libjava/classpath/java/awt/geom/GeneralPath.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/geom/GeneralPath.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Shape; *** 61,71 **** * *

        The NON_ZERO winding rule defines a point as inside a path if: * The path intersects the ray in an equal number of opposite directions. ! * Point A in the image is outside (one intersection in the * ’up’ ! * direction, one in the ’down’ direction) Point B in * the image is inside (one intersection ’down’) ! * Point C in the image is inside (two intersections in the * ’down’ direction) * * @see Line2D --- 61,71 ---- * *

        The NON_ZERO winding rule defines a point as inside a path if: * The path intersects the ray in an equal number of opposite directions. ! * Point A in the image is outside (one intersection in the * ’up’ ! * direction, one in the ’down’ direction) Point B in * the image is inside (one intersection ’down’) ! * Point C in the image is inside (two intersections in the * ’down’ direction) * * @see Line2D *************** public final class GeneralPath implement *** 135,143 **** /** * Constructs a GeneralPath with a specific winding rule * and the default initial capacity (20). ! * @param rule the winding rule ({@link #WIND_NON_ZERO} or * {@link #WIND_EVEN_ODD}) ! * * @throws IllegalArgumentException if rule is not one of the * listed values. */ --- 135,143 ---- /** * Constructs a GeneralPath with a specific winding rule * and the default initial capacity (20). ! * @param rule the winding rule ({@link #WIND_NON_ZERO} or * {@link #WIND_EVEN_ODD}) ! * * @throws IllegalArgumentException if rule is not one of the * listed values. */ *************** public final class GeneralPath implement *** 150,159 **** * Constructs a GeneralPath with a specific winding rule * and the initial capacity. The initial capacity should be * the approximate number of path segments to be used. ! * @param rule the winding rule ({@link #WIND_NON_ZERO} or * {@link #WIND_EVEN_ODD}) * @param capacity the inital capacity, in path segments ! * * @throws IllegalArgumentException if rule is not one of the * listed values. */ --- 150,159 ---- * Constructs a GeneralPath with a specific winding rule * and the initial capacity. The initial capacity should be * the approximate number of path segments to be used. ! * @param rule the winding rule ({@link #WIND_NON_ZERO} or * {@link #WIND_EVEN_ODD}) * @param capacity the inital capacity, in path segments ! * * @throws IllegalArgumentException if rule is not one of the * listed values. */ *************** public final class GeneralPath implement *** 172,180 **** /** * Constructs a GeneralPath from an arbitrary shape object. * The Shapes PathIterator path and winding rule will be used. ! * * @param s the shape (null not permitted). ! * * @throws NullPointerException if shape is null. */ public GeneralPath(Shape s) --- 172,180 ---- /** * Constructs a GeneralPath from an arbitrary shape object. * The Shapes PathIterator path and winding rule will be used. ! * * @param s the shape (null not permitted). ! * * @throws NullPointerException if shape is null. */ public GeneralPath(Shape s) *************** public final class GeneralPath implement *** 189,195 **** /** * Adds a new point to a path. ! * * @param x the x-coordinate. * @param y the y-coordinate. */ --- 189,195 ---- /** * Adds a new point to a path. ! * * @param x the x-coordinate. * @param y the y-coordinate. */ *************** public final class GeneralPath implement *** 269,281 **** } /** ! * Appends the segments of a Shape to the path. If connect is * true, the new path segments are connected to the existing one with a line. * The winding rule of the Shape is ignored. ! * * @param s the shape (null not permitted). * @param connect whether to connect the new shape to the existing path. ! * * @throws NullPointerException if s is null. */ public void append(Shape s, boolean connect) --- 269,281 ---- } /** ! * Appends the segments of a Shape to the path. If connect is * true, the new path segments are connected to the existing one with a line. * The winding rule of the Shape is ignored. ! * * @param s the shape (null not permitted). * @param connect whether to connect the new shape to the existing path. ! * * @throws NullPointerException if s is null. */ public void append(Shape s, boolean connect) *************** public final class GeneralPath implement *** 306,347 **** float[] f = new float[6]; while (! iter.isDone()) { ! switch (iter.currentSegment(f)) ! { ! case PathIterator.SEG_MOVETO: ! if (! connect || (index == 0)) ! { ! moveTo(f[0], f[1]); ! break; ! } ! if ((index >= 1) && (types[index - 1] == PathIterator.SEG_CLOSE) ! && (f[0] == xpoints[index - 1]) ! && (f[1] == ypoints[index - 1])) ! break; ! // Fall through. ! case PathIterator.SEG_LINETO: ! lineTo(f[0], f[1]); ! break; ! case PathIterator.SEG_QUADTO: ! quadTo(f[0], f[1], f[2], f[3]); ! break; ! case PathIterator.SEG_CUBICTO: ! curveTo(f[0], f[1], f[2], f[3], f[4], f[5]); ! break; ! case PathIterator.SEG_CLOSE: ! closePath(); ! break; ! } ! connect = false; ! iter.next(); } } /** * Returns the path’s current winding rule. ! * * @return {@link #WIND_EVEN_ODD} or {@link #WIND_NON_ZERO}. */ public int getWindingRule() --- 306,347 ---- float[] f = new float[6]; while (! iter.isDone()) { ! switch (iter.currentSegment(f)) ! { ! case PathIterator.SEG_MOVETO: ! if (! connect || (index == 0)) ! { ! moveTo(f[0], f[1]); ! break; ! } ! if ((index >= 1) && (types[index - 1] == PathIterator.SEG_CLOSE) ! && (f[0] == xpoints[index - 1]) ! && (f[1] == ypoints[index - 1])) ! break; ! // Fall through. ! case PathIterator.SEG_LINETO: ! lineTo(f[0], f[1]); ! break; ! case PathIterator.SEG_QUADTO: ! quadTo(f[0], f[1], f[2], f[3]); ! break; ! case PathIterator.SEG_CUBICTO: ! curveTo(f[0], f[1], f[2], f[3], f[4], f[5]); ! break; ! case PathIterator.SEG_CLOSE: ! closePath(); ! break; ! } ! connect = false; ! iter.next(); } } /** * Returns the path’s current winding rule. ! * * @return {@link #WIND_EVEN_ODD} or {@link #WIND_NON_ZERO}. */ public int getWindingRule() *************** public final class GeneralPath implement *** 350,360 **** } /** ! * Sets the path’s winding rule, which controls which areas are ! * considered ’inside’ or ’outside’ the path ! * on drawing. Valid rules are WIND_EVEN_ODD for an even-odd winding rule, * or WIND_NON_ZERO for a non-zero winding rule. ! * * @param rule the rule ({@link #WIND_EVEN_ODD} or {@link #WIND_NON_ZERO}). */ public void setWindingRule(int rule) --- 350,360 ---- } /** ! * Sets the path’s winding rule, which controls which areas are ! * considered ’inside’ or ’outside’ the path ! * on drawing. Valid rules are WIND_EVEN_ODD for an even-odd winding rule, * or WIND_NON_ZERO for a non-zero winding rule. ! * * @param rule the rule ({@link #WIND_EVEN_ODD} or {@link #WIND_NON_ZERO}). */ public void setWindingRule(int rule) *************** public final class GeneralPath implement *** 366,372 **** /** * Returns the current appending point of the path. ! * * @return The point. */ public Point2D getCurrentPoint() --- 366,372 ---- /** * Returns the current appending point of the path. ! * * @return The point. */ public Point2D getCurrentPoint() *************** public final class GeneralPath implement *** 387,393 **** /** * Applies a transform to the path. ! * * @param xform the transform (null not permitted). */ public void transform(AffineTransform xform) --- 387,393 ---- /** * Applies a transform to the path. ! * * @param xform the transform (null not permitted). */ public void transform(AffineTransform xform) *************** public final class GeneralPath implement *** 398,407 **** xform.getMatrix(m); for (int i = 0; i < index; i++) { ! nx = m[0] * xpoints[i] + m[2] * ypoints[i] + m[4]; ! ny = m[1] * xpoints[i] + m[3] * ypoints[i] + m[5]; ! xpoints[i] = (float) nx; ! ypoints[i] = (float) ny; } } --- 398,407 ---- xform.getMatrix(m); for (int i = 0; i < index; i++) { ! nx = m[0] * xpoints[i] + m[2] * ypoints[i] + m[4]; ! ny = m[1] * xpoints[i] + m[3] * ypoints[i] + m[5]; ! xpoints[i] = (float) nx; ! ypoints[i] = (float) ny; } } *************** public final class GeneralPath implement *** 437,454 **** if (index > 0) { ! x1 = x2 = xpoints[0]; ! y1 = y2 = ypoints[0]; } else x1 = x2 = y1 = y2 = 0.0f; for (int i = 0; i < index; i++) { ! x1 = Math.min(xpoints[i], x1); ! y1 = Math.min(ypoints[i], y1); ! x2 = Math.max(xpoints[i], x2); ! y2 = Math.max(ypoints[i], y2); } return (new Rectangle2D.Float(x1, y1, x2 - x1, y2 - y1)); } --- 437,454 ---- if (index > 0) { ! x1 = x2 = xpoints[0]; ! y1 = y2 = ypoints[0]; } else x1 = x2 = y1 = y2 = 0.0f; for (int i = 0; i < index; i++) { ! x1 = Math.min(xpoints[i], x1); ! y1 = Math.min(ypoints[i], y1); ! x2 = Math.max(xpoints[i], x2); ! y2 = Math.max(ypoints[i], y2); } return (new Rectangle2D.Float(x1, y1, x2 - x1, y2 - y1)); } *************** public final class GeneralPath implement *** 563,573 **** /** * The number of coordinate values for each segment type. */ ! private static final int[] NUM_COORDS = { ! /* 0: SEG_MOVETO */ 1, ! /* 1: SEG_LINETO */ 1, ! /* 2: SEG_QUADTO */ 2, ! /* 3: SEG_CUBICTO */ 3, /* 4: SEG_CLOSE */ 0}; /** --- 563,573 ---- /** * The number of coordinate values for each segment type. */ ! private static final int[] NUM_COORDS = { ! /* 0: SEG_MOVETO */ 1, ! /* 1: SEG_LINETO */ 1, ! /* 2: SEG_QUADTO */ 2, ! /* 3: SEG_CUBICTO */ 3, /* 4: SEG_CLOSE */ 0}; /** *************** public final class GeneralPath implement *** 630,638 **** */ seg = path.types[pos]; if (seg == SEG_CLOSE) ! pos++; else ! pos += NUM_COORDS[seg]; } /** --- 630,638 ---- */ seg = path.types[pos]; if (seg == SEG_CLOSE) ! pos++; else ! pos += NUM_COORDS[seg]; } /** *************** public final class GeneralPath implement *** 647,663 **** numCoords = NUM_COORDS[seg]; if (numCoords > 0) { ! for (int i = 0; i < numCoords; i++) ! { ! coords[i << 1] = path.xpoints[pos + i]; ! coords[(i << 1) + 1] = path.ypoints[pos + i]; ! } ! if (transform != null) ! transform.transform( /* src */ ! coords, /* srcOffset */ ! 0, /* dest */ coords, /* destOffset */ ! 0, /* numPoints */ numCoords); } return seg; } --- 647,663 ---- numCoords = NUM_COORDS[seg]; if (numCoords > 0) { ! for (int i = 0; i < numCoords; i++) ! { ! coords[i << 1] = path.xpoints[pos + i]; ! coords[(i << 1) + 1] = path.ypoints[pos + i]; ! } ! if (transform != null) ! transform.transform( /* src */ ! coords, /* srcOffset */ ! 0, /* dest */ coords, /* destOffset */ ! 0, /* numPoints */ numCoords); } return seg; } *************** public final class GeneralPath implement *** 674,689 **** numCoords = NUM_COORDS[seg]; if (numCoords > 0) { ! for (int i = 0; i < numCoords; i++) ! { ! coords[i << 1] = (double) path.xpoints[pos + i]; ! coords[(i << 1) + 1] = (double) path.ypoints[pos + i]; ! } ! if (transform != null) ! transform.transform( /* src */ ! coords, /* srcOffset */ ! 0, /* dest */ coords, /* destOffset */ ! 0, /* numPoints */ numCoords); } return seg; } --- 674,689 ---- numCoords = NUM_COORDS[seg]; if (numCoords > 0) { ! for (int i = 0; i < numCoords; i++) ! { ! coords[i << 1] = (double) path.xpoints[pos + i]; ! coords[(i << 1) + 1] = (double) path.ypoints[pos + i]; ! } ! if (transform != null) ! transform.transform( /* src */ ! coords, /* srcOffset */ ! 0, /* dest */ coords, /* destOffset */ ! 0, /* numPoints */ numCoords); } return seg; } *************** public final class GeneralPath implement *** 710,716 **** } /** ! * Creates a new shape of the same run-time type with the same contents * as this one. * * @return the clone --- 710,716 ---- } /** ! * Creates a new shape of the same run-time type with the same contents * as this one. * * @return the clone *************** public final class GeneralPath implement *** 728,734 **** /** * Helper method - ensure the size of the data arrays, * otherwise, reallocate new ones twice the size ! * * @param size the minimum array size. */ private void ensureSize(int size) --- 728,734 ---- /** * Helper method - ensure the size of the data arrays, * otherwise, reallocate new ones twice the size ! * * @param size the minimum array size. */ private void ensureSize(int size) *************** public final class GeneralPath implement *** 749,755 **** } /** ! * Helper method - Get the total number of intersections from (x,y) along * a given axis, within a given distance. */ private int getAxisIntersections(double x, double y, boolean useYaxis, --- 749,755 ---- } /** ! * Helper method - Get the total number of intersections from (x,y) along * a given axis, within a given distance. */ private int getAxisIntersections(double x, double y, boolean useYaxis, *************** public final class GeneralPath implement *** 763,783 **** */ private int getWindingNumber(double x, double y) { ! /* Evaluate the crossings from x,y to infinity on the y axis (arbitrary ! choice). Note that we don't actually use Double.INFINITY, since that's slower, and may cause problems. */ return (evaluateCrossings(x, y, true, true, BIG_VALUE)); } /** ! * Helper method - evaluates the number of intersections on an axis from * the point (x,y) to the point (x,y+distance) or (x+distance,y). * @param x x coordinate. * @param y y coordinate. ! * @param neg True if opposite-directed intersections should cancel, * false to sum all intersections. * @param useYaxis Use the Y axis, false uses the X axis. ! * @param distance Interval from (x,y) on the selected axis to find * intersections. */ private int evaluateCrossings(double x, double y, boolean neg, --- 763,783 ---- */ private int getWindingNumber(double x, double y) { ! /* Evaluate the crossings from x,y to infinity on the y axis (arbitrary ! choice). Note that we don't actually use Double.INFINITY, since that's slower, and may cause problems. */ return (evaluateCrossings(x, y, true, true, BIG_VALUE)); } /** ! * Helper method - evaluates the number of intersections on an axis from * the point (x,y) to the point (x,y+distance) or (x+distance,y). * @param x x coordinate. * @param y y coordinate. ! * @param neg True if opposite-directed intersections should cancel, * false to sum all intersections. * @param useYaxis Use the Y axis, false uses the X axis. ! * @param distance Interval from (x,y) on the selected axis to find * intersections. */ private int evaluateCrossings(double x, double y, boolean neg, *************** public final class GeneralPath implement *** 808,993 **** return (0); if (useYaxis) { ! float[] swap1; ! swap1 = ypoints; ! ypoints = xpoints; ! xpoints = swap1; ! double swap2; ! swap2 = y; ! y = x; ! x = swap2; } /* Get a value which is hopefully small but not insignificant relative the path. */ epsilon = ypoints[0] * 1E-7; ! if(epsilon == 0) epsilon = 1E-7; pos = 0; while (pos < index) { ! switch (types[pos]) ! { ! case PathIterator.SEG_MOVETO: ! if (pathStarted) // close old path ! { ! x0 = cx; ! y0 = cy; ! x1 = firstx; ! y1 = firsty; ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y1 == 0.0) ! y1 -= epsilon; ! if (Line2D.linesIntersect(x0, y0, x1, y1, ! epsilon, 0.0, distance, 0.0)) ! windingNumber += (y1 < y0) ? 1 : negative; ! cx = firstx; ! cy = firsty; ! } ! cx = firstx = xpoints[pos] - (float) x; ! cy = firsty = ypoints[pos++] - (float) y; ! pathStarted = true; ! break; ! case PathIterator.SEG_CLOSE: ! x0 = cx; ! y0 = cy; ! x1 = firstx; ! y1 = firsty; ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y1 == 0.0) ! y1 -= epsilon; ! if (Line2D.linesIntersect(x0, y0, x1, y1, ! epsilon, 0.0, distance, 0.0)) ! windingNumber += (y1 < y0) ? 1 : negative; ! cx = firstx; ! cy = firsty; ! pos++; ! pathStarted = false; ! break; ! case PathIterator.SEG_LINETO: ! x0 = cx; ! y0 = cy; ! x1 = xpoints[pos] - (float) x; ! y1 = ypoints[pos++] - (float) y; ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y1 == 0.0) ! y1 -= epsilon; ! if (Line2D.linesIntersect(x0, y0, x1, y1, ! epsilon, 0.0, distance, 0.0)) ! windingNumber += (y1 < y0) ? 1 : negative; ! cx = xpoints[pos - 1] - (float) x; ! cy = ypoints[pos - 1] - (float) y; ! break; ! case PathIterator.SEG_QUADTO: ! x0 = cx; ! y0 = cy; ! x1 = xpoints[pos] - x; ! y1 = ypoints[pos++] - y; ! x2 = xpoints[pos] - x; ! y2 = ypoints[pos++] - y; ! /* check if curve may intersect X+ axis. */ ! if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0) ! && (y0 * y1 <= 0 || y1 * y2 <= 0)) ! { ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y2 == 0.0) ! y2 -= epsilon; ! r[0] = y0; ! r[1] = 2 * (y1 - y0); ! r[2] = (y2 - 2 * y1 + y0); ! /* degenerate roots (=tangent points) do not ! contribute to the winding number. */ ! if ((nRoots = QuadCurve2D.solveQuadratic(r)) == 2) ! for (int i = 0; i < nRoots; i++) ! { ! float t = (float) r[i]; ! if (t > 0.0f && t < 1.0f) ! { ! double crossing = t * t * (x2 - 2 * x1 + x0) ! + 2 * t * (x1 - x0) + x0; ! if (crossing >= 0.0 && crossing <= distance) ! windingNumber += (2 * t * (y2 - 2 * y1 + y0) ! + 2 * (y1 - y0) < 0) ? 1 : negative; ! } ! } ! } ! cx = xpoints[pos - 1] - (float) x; ! cy = ypoints[pos - 1] - (float) y; ! break; ! case PathIterator.SEG_CUBICTO: ! x0 = cx; ! y0 = cy; ! x1 = xpoints[pos] - x; ! y1 = ypoints[pos++] - y; ! x2 = xpoints[pos] - x; ! y2 = ypoints[pos++] - y; ! x3 = xpoints[pos] - x; ! y3 = ypoints[pos++] - y; ! /* check if curve may intersect X+ axis. */ ! if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0 || x3 > 0.0) ! && (y0 * y1 <= 0 || y1 * y2 <= 0 || y2 * y3 <= 0)) ! { ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y3 == 0.0) ! y3 -= epsilon; ! r[0] = y0; ! r[1] = 3 * (y1 - y0); ! r[2] = 3 * (y2 + y0 - 2 * y1); ! r[3] = y3 - 3 * y2 + 3 * y1 - y0; ! if ((nRoots = CubicCurve2D.solveCubic(r)) != 0) ! for (int i = 0; i < nRoots; i++) ! { ! float t = (float) r[i]; ! if (t > 0.0 && t < 1.0) ! { ! double crossing = -(t * t * t) * (x0 - 3 * x1 ! + 3 * x2 - x3) ! + 3 * t * t * (x0 - 2 * x1 + x2) ! + 3 * t * (x1 - x0) + x0; ! if (crossing >= 0 && crossing <= distance) ! windingNumber += (3 * t * t * (y3 + 3 * y1 ! - 3 * y2 - y0) ! + 6 * t * (y0 - 2 * y1 + y2) ! + 3 * (y1 - y0) < 0) ? 1 : negative; ! } ! } ! } ! cx = xpoints[pos - 1] - (float) x; ! cy = ypoints[pos - 1] - (float) y; ! break; ! } } // swap coordinates back if (useYaxis) { ! float[] swap; ! swap = ypoints; ! ypoints = xpoints; ! xpoints = swap; } return (windingNumber); } } // class GeneralPath - --- 808,992 ---- return (0); if (useYaxis) { ! float[] swap1; ! swap1 = ypoints; ! ypoints = xpoints; ! xpoints = swap1; ! double swap2; ! swap2 = y; ! y = x; ! x = swap2; } /* Get a value which is hopefully small but not insignificant relative the path. */ epsilon = ypoints[0] * 1E-7; ! if(epsilon == 0) epsilon = 1E-7; pos = 0; while (pos < index) { ! switch (types[pos]) ! { ! case PathIterator.SEG_MOVETO: ! if (pathStarted) // close old path ! { ! x0 = cx; ! y0 = cy; ! x1 = firstx; ! y1 = firsty; ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y1 == 0.0) ! y1 -= epsilon; ! if (Line2D.linesIntersect(x0, y0, x1, y1, ! epsilon, 0.0, distance, 0.0)) ! windingNumber += (y1 < y0) ? 1 : negative; ! cx = firstx; ! cy = firsty; ! } ! cx = firstx = xpoints[pos] - (float) x; ! cy = firsty = ypoints[pos++] - (float) y; ! pathStarted = true; ! break; ! case PathIterator.SEG_CLOSE: ! x0 = cx; ! y0 = cy; ! x1 = firstx; ! y1 = firsty; ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y1 == 0.0) ! y1 -= epsilon; ! if (Line2D.linesIntersect(x0, y0, x1, y1, ! epsilon, 0.0, distance, 0.0)) ! windingNumber += (y1 < y0) ? 1 : negative; ! cx = firstx; ! cy = firsty; ! pos++; ! pathStarted = false; ! break; ! case PathIterator.SEG_LINETO: ! x0 = cx; ! y0 = cy; ! x1 = xpoints[pos] - (float) x; ! y1 = ypoints[pos++] - (float) y; ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y1 == 0.0) ! y1 -= epsilon; ! if (Line2D.linesIntersect(x0, y0, x1, y1, ! epsilon, 0.0, distance, 0.0)) ! windingNumber += (y1 < y0) ? 1 : negative; ! cx = xpoints[pos - 1] - (float) x; ! cy = ypoints[pos - 1] - (float) y; ! break; ! case PathIterator.SEG_QUADTO: ! x0 = cx; ! y0 = cy; ! x1 = xpoints[pos] - x; ! y1 = ypoints[pos++] - y; ! x2 = xpoints[pos] - x; ! y2 = ypoints[pos++] - y; ! /* check if curve may intersect X+ axis. */ ! if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0) ! && (y0 * y1 <= 0 || y1 * y2 <= 0)) ! { ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y2 == 0.0) ! y2 -= epsilon; ! r[0] = y0; ! r[1] = 2 * (y1 - y0); ! r[2] = (y2 - 2 * y1 + y0); ! /* degenerate roots (=tangent points) do not ! contribute to the winding number. */ ! if ((nRoots = QuadCurve2D.solveQuadratic(r)) == 2) ! for (int i = 0; i < nRoots; i++) ! { ! float t = (float) r[i]; ! if (t > 0.0f && t < 1.0f) ! { ! double crossing = t * t * (x2 - 2 * x1 + x0) ! + 2 * t * (x1 - x0) + x0; ! if (crossing >= 0.0 && crossing <= distance) ! windingNumber += (2 * t * (y2 - 2 * y1 + y0) ! + 2 * (y1 - y0) < 0) ? 1 : negative; ! } ! } ! } ! cx = xpoints[pos - 1] - (float) x; ! cy = ypoints[pos - 1] - (float) y; ! break; ! case PathIterator.SEG_CUBICTO: ! x0 = cx; ! y0 = cy; ! x1 = xpoints[pos] - x; ! y1 = ypoints[pos++] - y; ! x2 = xpoints[pos] - x; ! y2 = ypoints[pos++] - y; ! x3 = xpoints[pos] - x; ! y3 = ypoints[pos++] - y; ! /* check if curve may intersect X+ axis. */ ! if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0 || x3 > 0.0) ! && (y0 * y1 <= 0 || y1 * y2 <= 0 || y2 * y3 <= 0)) ! { ! if (y0 == 0.0) ! y0 -= epsilon; ! if (y3 == 0.0) ! y3 -= epsilon; ! r[0] = y0; ! r[1] = 3 * (y1 - y0); ! r[2] = 3 * (y2 + y0 - 2 * y1); ! r[3] = y3 - 3 * y2 + 3 * y1 - y0; ! if ((nRoots = CubicCurve2D.solveCubic(r)) != 0) ! for (int i = 0; i < nRoots; i++) ! { ! float t = (float) r[i]; ! if (t > 0.0 && t < 1.0) ! { ! double crossing = -(t * t * t) * (x0 - 3 * x1 ! + 3 * x2 - x3) ! + 3 * t * t * (x0 - 2 * x1 + x2) ! + 3 * t * (x1 - x0) + x0; ! if (crossing >= 0 && crossing <= distance) ! windingNumber += (3 * t * t * (y3 + 3 * y1 ! - 3 * y2 - y0) ! + 6 * t * (y0 - 2 * y1 + y2) ! + 3 * (y1 - y0) < 0) ? 1 : negative; ! } ! } ! } ! cx = xpoints[pos - 1] - (float) x; ! cy = ypoints[pos - 1] - (float) y; ! break; ! } } // swap coordinates back if (useYaxis) { ! float[] swap; ! swap = ypoints; ! ypoints = xpoints; ! xpoints = swap; } return (windingNumber); } } // class GeneralPath diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/Line2D.java gcc-4.6.0/libjava/classpath/java/awt/geom/Line2D.java *** gcc-4.5.2/libjava/classpath/java/awt/geom/Line2D.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/geom/Line2D.java Tue Jan 11 19:46:05 2011 *************** public abstract class Line2D implements *** 238,292 **** /** * Computes twice the (signed) area of the triangle defined by the three * points. This method is used for intersection testing. ! * * @param x1 the x-coordinate of the first point. * @param y1 the y-coordinate of the first point. * @param x2 the x-coordinate of the second point. * @param y2 the y-coordinate of the second point. * @param x3 the x-coordinate of the third point. * @param y3 the y-coordinate of the third point. ! * * @return Twice the area. */ private static double area2(double x1, double y1, double x2, double y2, ! double x3, double y3) { ! return (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1); } /** * Returns true if (x3, y3) lies between (x1, y1) and (x2, y2), ! * and false otherwise, This test assumes that the three points are * collinear, and is used for intersection testing. ! * * @param x1 the x-coordinate of the first point. * @param y1 the y-coordinate of the first point. * @param x2 the x-coordinate of the second point. * @param y2 the y-coordinate of the second point. * @param x3 the x-coordinate of the third point. * @param y3 the y-coordinate of the third point. ! * * @return A boolean. */ ! private static boolean between(double x1, double y1, ! double x2, double y2, ! double x3, double y3) { if (x1 != x2) { ! return (x1 <= x3 && x3 <= x2) || (x1 >= x3 && x3 >= x2); } else { ! return (y1 <= y3 && y3 <= y2) || (y1 >= y3 && y3 >= y2); } } /** ! * Test if the line segment (x1,y1)->(x2,y2) intersects the line segment * (x3,y3)->(x4,y4). * * @param x1 the first x coordinate of the first segment ! * @param y1 the first y coordinate of the first segment * @param x2 the second x coordinate of the first segment * @param y2 the second y coordinate of the first segment * @param x3 the first x coordinate of the second segment --- 238,292 ---- /** * Computes twice the (signed) area of the triangle defined by the three * points. This method is used for intersection testing. ! * * @param x1 the x-coordinate of the first point. * @param y1 the y-coordinate of the first point. * @param x2 the x-coordinate of the second point. * @param y2 the y-coordinate of the second point. * @param x3 the x-coordinate of the third point. * @param y3 the y-coordinate of the third point. ! * * @return Twice the area. */ private static double area2(double x1, double y1, double x2, double y2, ! double x3, double y3) { ! return (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1); } /** * Returns true if (x3, y3) lies between (x1, y1) and (x2, y2), ! * and false otherwise, This test assumes that the three points are * collinear, and is used for intersection testing. ! * * @param x1 the x-coordinate of the first point. * @param y1 the y-coordinate of the first point. * @param x2 the x-coordinate of the second point. * @param y2 the y-coordinate of the second point. * @param x3 the x-coordinate of the third point. * @param y3 the y-coordinate of the third point. ! * * @return A boolean. */ ! private static boolean between(double x1, double y1, ! double x2, double y2, ! double x3, double y3) { if (x1 != x2) { ! return (x1 <= x3 && x3 <= x2) || (x1 >= x3 && x3 >= x2); } else { ! return (y1 <= y3 && y3 <= y2) || (y1 >= y3 && y3 >= y2); } } /** ! * Test if the line segment (x1,y1)->(x2,y2) intersects the line segment * (x3,y3)->(x4,y4). * * @param x1 the first x coordinate of the first segment ! * @param y1 the first y coordinate of the first segment * @param x2 the second x coordinate of the first segment * @param y2 the second y coordinate of the first segment * @param x3 the first x coordinate of the second segment *************** public abstract class Line2D implements *** 301,321 **** double x4, double y4) { double a1, a2, a3, a4; ! // deal with special cases ! if ((a1 = area2(x1, y1, x2, y2, x3, y3)) == 0.0) { // check if p3 is between p1 and p2 OR // p4 is collinear also AND either between p1 and p2 OR at opposite ends ! if (between(x1, y1, x2, y2, x3, y3)) { return true; } ! else { ! if (area2(x1, y1, x2, y2, x4, y4) == 0.0) { ! return between(x3, y3, x4, y4, x1, y1) || between (x3, y3, x4, y4, x2, y2); } else { --- 301,321 ---- double x4, double y4) { double a1, a2, a3, a4; ! // deal with special cases ! if ((a1 = area2(x1, y1, x2, y2, x3, y3)) == 0.0) { // check if p3 is between p1 and p2 OR // p4 is collinear also AND either between p1 and p2 OR at opposite ends ! if (between(x1, y1, x2, y2, x3, y3)) { return true; } ! else { ! if (area2(x1, y1, x2, y2, x4, y4) == 0.0) { ! return between(x3, y3, x4, y4, x1, y1) || between (x3, y3, x4, y4, x2, y2); } else { *************** public abstract class Line2D implements *** 323,335 **** } } } ! else if ((a2 = area2(x1, y1, x2, y2, x4, y4)) == 0.0) { // check if p4 is between p1 and p2 (we already know p3 is not // collinear) return between(x1, y1, x2, y2, x4, y4); } ! if ((a3 = area2(x3, y3, x4, y4, x1, y1)) == 0.0) { // check if p1 is between p3 and p4 OR // p2 is collinear also AND either between p1 and p2 OR at opposite ends --- 323,335 ---- } } } ! else if ((a2 = area2(x1, y1, x2, y2, x4, y4)) == 0.0) { // check if p4 is between p1 and p2 (we already know p3 is not // collinear) return between(x1, y1, x2, y2, x4, y4); } ! if ((a3 = area2(x3, y3, x4, y4, x1, y1)) == 0.0) { // check if p1 is between p3 and p4 OR // p2 is collinear also AND either between p1 and p2 OR at opposite ends *************** public abstract class Line2D implements *** 338,344 **** } else { if (area2(x3, y3, x4, y4, x2, y2) == 0.0) { ! return between(x1, y1, x2, y2, x3, y3) || between (x1, y1, x2, y2, x4, y4); } else { --- 338,344 ---- } else { if (area2(x3, y3, x4, y4, x2, y2) == 0.0) { ! return between(x1, y1, x2, y2, x3, y3) || between (x1, y1, x2, y2, x4, y4); } else { *************** public abstract class Line2D implements *** 353,359 **** } else { // test for regular intersection return ((a1 > 0.0) ^ (a2 > 0.0)) && ((a3 > 0.0) ^ (a4 > 0.0)); ! } } /** --- 353,359 ---- } else { // test for regular intersection return ((a1 > 0.0) ^ (a2 > 0.0)) && ((a3 > 0.0) ^ (a4 > 0.0)); ! } } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/QuadCurve2D.java gcc-4.6.0/libjava/classpath/java/awt/geom/QuadCurve2D.java *** gcc-4.5.2/libjava/classpath/java/awt/geom/QuadCurve2D.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/geom/QuadCurve2D.java Tue Jan 11 19:46:05 2011 *************** public abstract class QuadCurve2D implem *** 496,509 **** if (left != null) { ! left[leftOff] = x1; ! left[leftOff + 1] = y1; } if (right != null) { ! right[rightOff + 4] = x2; ! right[rightOff + 5] = y2; } x1 = (x1 + xc) / 2; --- 496,509 ---- if (left != null) { ! left[leftOff] = x1; ! left[leftOff + 1] = y1; } if (right != null) { ! right[rightOff + 4] = x2; ! right[rightOff + 5] = y2; } x1 = (x1 + xc) / 2; *************** public abstract class QuadCurve2D implem *** 515,532 **** if (left != null) { ! left[leftOff + 2] = x1; ! left[leftOff + 3] = y1; ! left[leftOff + 4] = xc; ! left[leftOff + 5] = yc; } if (right != null) { ! right[rightOff] = xc; ! right[rightOff + 1] = yc; ! right[rightOff + 2] = x2; ! right[rightOff + 3] = y2; } } --- 515,532 ---- if (left != null) { ! left[leftOff + 2] = x1; ! left[leftOff + 3] = y1; ! left[leftOff + 4] = xc; ! left[leftOff + 5] = yc; } if (right != null) { ! right[rightOff] = xc; ! right[rightOff + 1] = yc; ! right[rightOff + 2] = x2; ! right[rightOff + 3] = y2; } } *************** public abstract class QuadCurve2D implem *** 643,653 **** // for linear functions. if (a == 0) { ! if (b == 0) ! return -1; ! res[0] = -c / b; ! return 1; } disc = b * b - 4 * a * c; --- 643,653 ---- // for linear functions. if (a == 0) { ! if (b == 0) ! return -1; ! res[0] = -c / b; ! return 1; } disc = b * b - 4 * a * c; *************** public abstract class QuadCurve2D implem *** 657,688 **** if (disc == 0) { ! // The GNU Scientific Library returns two identical results here. ! // We just return one. ! res[0] = -0.5 * b / a; ! return 1; } // disc > 0 if (b == 0) { ! double r; ! r = Math.abs(0.5 * Math.sqrt(disc) / a); ! res[0] = -r; ! res[1] = r; } else { ! double sgnb; ! double temp; ! sgnb = (b > 0 ? 1 : -1); ! temp = -0.5 * (b + sgnb * Math.sqrt(disc)); ! // The GNU Scientific Library sorts the result here. We don't. ! res[0] = temp / a; ! res[1] = c / temp; } return 2; } --- 657,688 ---- if (disc == 0) { ! // The GNU Scientific Library returns two identical results here. ! // We just return one. ! res[0] = -0.5 * b / a; ! return 1; } // disc > 0 if (b == 0) { ! double r; ! r = Math.abs(0.5 * Math.sqrt(disc) / a); ! res[0] = -r; ! res[1] = r; } else { ! double sgnb; ! double temp; ! sgnb = (b > 0 ? 1 : -1); ! temp = -0.5 * (b + sgnb * Math.sqrt(disc)); ! // The GNU Scientific Library sorts the result here. We don't. ! res[0] = temp / a; ! res[1] = c / temp; } return 2; } *************** public abstract class QuadCurve2D implem *** 750,756 **** } /** ! * Determines whether any part of a Rectangle2D is inside the area bounded * by the curve and the straight line connecting its end points. * @see #intersects(double, double, double, double) */ --- 750,756 ---- } /** ! * Determines whether any part of a Rectangle2D is inside the area bounded * by the curve and the straight line connecting its end points. * @see #intersects(double, double, double, double) */ *************** public abstract class QuadCurve2D implem *** 790,796 **** } /** ! * Determines whether a Rectangle2D is entirely inside the area that is * bounded by the curve and the straight line connecting its end points. * @see #contains(double, double, double, double) */ --- 790,796 ---- } /** ! * Determines whether a Rectangle2D is entirely inside the area that is * bounded by the curve and the straight line connecting its end points. * @see #contains(double, double, double, double) */ *************** public abstract class QuadCurve2D implem *** 818,890 **** { return new PathIterator() { ! /** Current coordinate. */ ! private int current = 0; ! public int getWindingRule() ! { ! return WIND_NON_ZERO; ! } ! public boolean isDone() ! { ! return current >= 2; ! } ! public void next() ! { ! current++; ! } ! public int currentSegment(float[] coords) ! { ! int result; ! switch (current) ! { ! case 0: ! coords[0] = (float) getX1(); ! coords[1] = (float) getY1(); ! result = SEG_MOVETO; ! break; ! case 1: ! coords[0] = (float) getCtrlX(); ! coords[1] = (float) getCtrlY(); ! coords[2] = (float) getX2(); ! coords[3] = (float) getY2(); ! result = SEG_QUADTO; ! break; ! default: ! throw new NoSuchElementException("quad iterator out of bounds"); ! } ! if (at != null) ! at.transform(coords, 0, coords, 0, 2); ! return result; ! } ! public int currentSegment(double[] coords) ! { ! int result; ! switch (current) ! { ! case 0: ! coords[0] = getX1(); ! coords[1] = getY1(); ! result = SEG_MOVETO; ! break; ! case 1: ! coords[0] = getCtrlX(); ! coords[1] = getCtrlY(); ! coords[2] = getX2(); ! coords[3] = getY2(); ! result = SEG_QUADTO; ! break; ! default: ! throw new NoSuchElementException("quad iterator out of bounds"); ! } ! if (at != null) ! at.transform(coords, 0, coords, 0, 2); ! return result; ! } }; } --- 818,890 ---- { return new PathIterator() { ! /** Current coordinate. */ ! private int current = 0; ! public int getWindingRule() ! { ! return WIND_NON_ZERO; ! } ! public boolean isDone() ! { ! return current >= 2; ! } ! public void next() ! { ! current++; ! } ! public int currentSegment(float[] coords) ! { ! int result; ! switch (current) ! { ! case 0: ! coords[0] = (float) getX1(); ! coords[1] = (float) getY1(); ! result = SEG_MOVETO; ! break; ! case 1: ! coords[0] = (float) getCtrlX(); ! coords[1] = (float) getCtrlY(); ! coords[2] = (float) getX2(); ! coords[3] = (float) getY2(); ! result = SEG_QUADTO; ! break; ! default: ! throw new NoSuchElementException("quad iterator out of bounds"); ! } ! if (at != null) ! at.transform(coords, 0, coords, 0, 2); ! return result; ! } ! public int currentSegment(double[] coords) ! { ! int result; ! switch (current) ! { ! case 0: ! coords[0] = getX1(); ! coords[1] = getY1(); ! result = SEG_MOVETO; ! break; ! case 1: ! coords[0] = getCtrlX(); ! coords[1] = getCtrlY(); ! coords[2] = getX2(); ! coords[3] = getY2(); ! result = SEG_QUADTO; ! break; ! default: ! throw new NoSuchElementException("quad iterator out of bounds"); ! } ! if (at != null) ! at.transform(coords, 0, coords, 0, 2); ! return result; ! } }; } *************** public abstract class QuadCurve2D implem *** 902,912 **** { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! throw (Error) new InternalError().initCause(e); // Impossible } } --- 902,912 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! throw (Error) new InternalError().initCause(e); // Impossible } } *************** public abstract class QuadCurve2D implem *** 940,973 **** if (useYaxis) { ! a0 = getY1() - y; ! a1 = getCtrlY() - y; ! a2 = getY2() - y; ! b0 = getX1() - x; ! b1 = getCtrlX() - x; ! b2 = getX2() - x; } else { ! a0 = getX1() - x; ! a1 = getCtrlX() - x; ! a2 = getX2() - x; ! b0 = getY1() - y; ! b1 = getCtrlY() - y; ! b2 = getY2() - y; } ! /* If the axis intersects a start/endpoint, shift it up by some small amount to guarantee the line is 'inside' If this is not done,bad behaviour may result for points on that axis. */ if (a0 == 0.0 || a2 == 0.0) { ! double small = getFlatness() * EPSILON; ! if (a0 == 0.0) ! a0 -= small; ! if (a2 == 0.0) ! a2 -= small; } r[0] = a0; --- 940,973 ---- if (useYaxis) { ! a0 = getY1() - y; ! a1 = getCtrlY() - y; ! a2 = getY2() - y; ! b0 = getX1() - x; ! b1 = getCtrlX() - x; ! b2 = getX2() - x; } else { ! a0 = getX1() - x; ! a1 = getCtrlX() - x; ! a2 = getX2() - x; ! b0 = getY1() - y; ! b1 = getCtrlY() - y; ! b2 = getY2() - y; } ! /* If the axis intersects a start/endpoint, shift it up by some small amount to guarantee the line is 'inside' If this is not done,bad behaviour may result for points on that axis. */ if (a0 == 0.0 || a2 == 0.0) { ! double small = getFlatness() * EPSILON; ! if (a0 == 0.0) ! a0 -= small; ! if (a2 == 0.0) ! a2 -= small; } r[0] = a0; *************** public abstract class QuadCurve2D implem *** 977,1002 **** nRoots = solveQuadratic(r); for (int i = 0; i < nRoots; i++) { ! double t = r[i]; ! if (t >= 0.0 && t <= 1.0) ! { ! double crossing = t * t * (b2 - 2 * b1 + b0) + 2 * t * (b1 - b0) ! + b0; ! /* single root is always doubly degenerate in quads */ ! if (crossing > 0 && crossing < distance) ! nCrossings += (nRoots == 1) ? 2 : 1; ! } } if (useYaxis) { ! if (Line2D.linesIntersect(b0, a0, b2, a2, EPSILON, 0.0, distance, 0.0)) ! nCrossings++; } else { ! if (Line2D.linesIntersect(a0, b0, a2, b2, 0.0, EPSILON, 0.0, distance)) ! nCrossings++; } return (nCrossings); --- 977,1002 ---- nRoots = solveQuadratic(r); for (int i = 0; i < nRoots; i++) { ! double t = r[i]; ! if (t >= 0.0 && t <= 1.0) ! { ! double crossing = t * t * (b2 - 2 * b1 + b0) + 2 * t * (b1 - b0) ! + b0; ! /* single root is always doubly degenerate in quads */ ! if (crossing > 0 && crossing < distance) ! nCrossings += (nRoots == 1) ? 2 : 1; ! } } if (useYaxis) { ! if (Line2D.linesIntersect(b0, a0, b2, a2, EPSILON, 0.0, distance, 0.0)) ! nCrossings++; } else { ! if (Line2D.linesIntersect(a0, b0, a2, b2, 0.0, EPSILON, 0.0, distance)) ! nCrossings++; } return (nCrossings); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/RectangularShape.java gcc-4.6.0/libjava/classpath/java/awt/geom/RectangularShape.java *** gcc-4.5.2/libjava/classpath/java/awt/geom/RectangularShape.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/geom/RectangularShape.java Tue Jan 11 19:46:05 2011 *************** public abstract class RectangularShape i *** 228,242 **** { if (x1 > x2) { ! double t = x2; ! x2 = x1; ! x1 = t; } if (y1 > y2) { ! double t = y2; ! y2 = y1; ! y1 = t; } setFrame(x1, y1, x2 - x1, y2 - y1); } --- 228,242 ---- { if (x1 > x2) { ! double t = x2; ! x2 = x1; ! x1 = t; } if (y1 > y2) { ! double t = y2; ! y2 = y1; ! y1 = t; } setFrame(x1, y1, x2 - x1, y2 - y1); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/geom/RoundRectangle2D.java gcc-4.6.0/libjava/classpath/java/awt/geom/RoundRectangle2D.java *** gcc-4.5.2/libjava/classpath/java/awt/geom/RoundRectangle2D.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/geom/RoundRectangle2D.java Tue Jan 11 19:46:05 2011 *************** package java.awt.geom; *** 45,73 **** */ public abstract class RoundRectangle2D extends RectangularShape { ! /** * Return the arc height of this round rectangle. The arc height and width * control the roundness of the corners of the rectangle. ! * * @return The arc height. ! * * @see #getArcWidth() */ public abstract double getArcHeight(); ! /** * Return the arc width of this round rectangle. The arc width and height * control the roundness of the corners of the rectangle. ! * * @return The arc width. ! * * @see #getArcHeight() */ public abstract double getArcWidth(); ! /** * Set the values of this round rectangle. ! * * @param x The x coordinate * @param y The y coordinate * @param w The width --- 45,73 ---- */ public abstract class RoundRectangle2D extends RectangularShape { ! /** * Return the arc height of this round rectangle. The arc height and width * control the roundness of the corners of the rectangle. ! * * @return The arc height. ! * * @see #getArcWidth() */ public abstract double getArcHeight(); ! /** * Return the arc width of this round rectangle. The arc width and height * control the roundness of the corners of the rectangle. ! * * @return The arc width. ! * * @see #getArcHeight() */ public abstract double getArcWidth(); ! /** * Set the values of this round rectangle. ! * * @param x The x coordinate * @param y The y coordinate * @param w The width *************** public abstract class RoundRectangle2D e *** 78,84 **** public abstract void setRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight); ! /** * Create a RoundRectangle2D. This is protected because this class * is abstract and cannot be instantiated. */ --- 78,84 ---- public abstract void setRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight); ! /** * Create a RoundRectangle2D. This is protected because this class * is abstract and cannot be instantiated. */ *************** public abstract class RoundRectangle2D e *** 86,92 **** { } ! /** * Return true if this object contains the specified point. * @param x The x coordinate * @param y The y coordinate --- 86,92 ---- { } ! /** * Return true if this object contains the specified point. * @param x The x coordinate * @param y The y coordinate *************** public abstract class RoundRectangle2D e *** 123,129 **** return dx * dx + dy * dy <= 1.0; } ! /** * Return true if this object contains the specified rectangle * @param x The x coordinate * @param y The y coordinate --- 123,129 ---- return dx * dx + dy * dy <= 1.0; } ! /** * Return true if this object contains the specified rectangle * @param x The x coordinate * @param y The y coordinate *************** public abstract class RoundRectangle2D e *** 138,169 **** && contains(x + w, y)); } ! /** * Return a new path iterator which iterates over this rectangle. ! * * @param at An affine transform to apply to the object */ ! public PathIterator getPathIterator(final AffineTransform at) { double arcW = Math.min(getArcWidth(), getWidth()); double arcH = Math.min(getArcHeight(), getHeight()); ! // check for special cases... if (arcW <= 0 || arcH <= 0) { ! Rectangle2D r = new Rectangle2D.Double(getX(), getY(), getWidth(), getHeight()); return r.getPathIterator(at); } ! else if (arcW >= getWidth() && arcH >= getHeight()) { ! Ellipse2D e = new Ellipse2D.Double(getX(), getY(), getWidth(), getHeight()); return e.getPathIterator(at); } ! // otherwise return the standard case... ! return new PathIterator() { double x = getX(); double y = getY(); --- 138,169 ---- && contains(x + w, y)); } ! /** * Return a new path iterator which iterates over this rectangle. ! * * @param at An affine transform to apply to the object */ ! public PathIterator getPathIterator(final AffineTransform at) { double arcW = Math.min(getArcWidth(), getWidth()); double arcH = Math.min(getArcHeight(), getHeight()); ! // check for special cases... if (arcW <= 0 || arcH <= 0) { ! Rectangle2D r = new Rectangle2D.Double(getX(), getY(), getWidth(), getHeight()); return r.getPathIterator(at); } ! else if (arcW >= getWidth() && arcH >= getHeight()) { ! Ellipse2D e = new Ellipse2D.Double(getX(), getY(), getWidth(), getHeight()); return e.getPathIterator(at); } ! // otherwise return the standard case... ! return new PathIterator() { double x = getX(); double y = getY(); *************** public abstract class RoundRectangle2D e *** 175,181 **** PathIterator corner; int step = -1; ! public int currentSegment(double[] coords) { if (corner != null) // steps 1, 3, 5 and 7 { --- 175,181 ---- PathIterator corner; int step = -1; ! public int currentSegment(double[] coords) { if (corner != null) // steps 1, 3, 5 and 7 { *************** public abstract class RoundRectangle2D e *** 184,190 **** r = SEG_LINETO; return r; } ! if (step == -1) { // move to the start position coords[0] = x + w - arcW / 2; --- 184,190 ---- r = SEG_LINETO; return r; } ! if (step == -1) { // move to the start position coords[0] = x + w - arcW / 2; *************** public abstract class RoundRectangle2D e *** 196,202 **** coords[0] = x + arcW / 2; coords[1] = y; } ! else if (step == 2) { // left line coords[0] = x; --- 196,202 ---- coords[0] = x + arcW / 2; coords[1] = y; } ! else if (step == 2) { // left line coords[0] = x; *************** public abstract class RoundRectangle2D e *** 227,233 **** r = SEG_LINETO; return r; } ! if (step == -1) { // move to the start position coords[0] = (float) (x + w - arcW / 2); --- 227,233 ---- r = SEG_LINETO; return r; } ! if (step == -1) { // move to the start position coords[0] = (float) (x + w - arcW / 2); *************** public abstract class RoundRectangle2D e *** 239,245 **** coords[0] = (float) (x + arcW / 2); coords[1] = (float) y; } ! else if (step == 2) { // left line coords[0] = (float) x; --- 239,245 ---- coords[0] = (float) (x + arcW / 2); coords[1] = (float) y; } ! else if (step == 2) { // left line coords[0] = (float) x; *************** public abstract class RoundRectangle2D e *** 270,276 **** return step >= 8; } ! public void next() { if (corner != null) { --- 270,276 ---- return step >= 8; } ! public void next() { if (corner != null) { *************** public abstract class RoundRectangle2D e *** 284,290 **** else { step++; ! if (step == 1) { // create top left corner arc.setArc(x, y, arcW, arcH, 90, 90, Arc2D.OPEN); --- 284,290 ---- else { step++; ! if (step == 1) { // create top left corner arc.setArc(x, y, arcW, arcH, 90, 90, Arc2D.OPEN); *************** public abstract class RoundRectangle2D e *** 292,312 **** } else if (step == 3) { ! // create bottom left corner ! arc.setArc(x, y + h - arcH, arcW, arcH, 180, 90, Arc2D.OPEN); corner = arc.getPathIterator(at); } else if (step == 5) { ! // create bottom right corner arc.setArc(x + w - arcW, y + h - arcH, arcW, arcH, 270, 90, Arc2D.OPEN); corner = arc.getPathIterator(at); } else if (step == 7) { ! // create top right corner arc.setArc(x + w - arcW, y, arcW, arcH, 0, 90, Arc2D.OPEN); corner = arc.getPathIterator(at); } --- 292,312 ---- } else if (step == 3) { ! // create bottom left corner ! arc.setArc(x, y + h - arcH, arcW, arcH, 180, 90, Arc2D.OPEN); corner = arc.getPathIterator(at); } else if (step == 5) { ! // create bottom right corner arc.setArc(x + w - arcW, y + h - arcH, arcW, arcH, 270, 90, Arc2D.OPEN); corner = arc.getPathIterator(at); } else if (step == 7) { ! // create top right corner arc.setArc(x + w - arcW, y, arcW, arcH, 0, 90, Arc2D.OPEN); corner = arc.getPathIterator(at); } *************** public abstract class RoundRectangle2D e *** 315,321 **** }; } ! /** * Return true if the given rectangle intersects this shape. * @param x The x coordinate * @param y The y coordinate --- 315,321 ---- }; } ! /** * Return true if the given rectangle intersects this shape. * @param x The x coordinate * @param y The y coordinate *************** public abstract class RoundRectangle2D e *** 329,335 **** || contains(x + w, y)); } ! /** * Set the boundary of this round rectangle. * @param x The x coordinate * @param y The y coordinate --- 329,335 ---- || contains(x + w, y)); } ! /** * Set the boundary of this round rectangle. * @param x The x coordinate * @param y The y coordinate *************** public abstract class RoundRectangle2D e *** 342,348 **** setRoundRect(x, y, w, h, getArcWidth(), getArcHeight()); } ! /** * Set the values of this round rectangle to be the same as those * of the argument. * @param rr The round rectangle to copy --- 342,348 ---- setRoundRect(x, y, w, h, getArcWidth(), getArcHeight()); } ! /** * Set the values of this round rectangle to be the same as those * of the argument. * @param rr The round rectangle to copy *************** public abstract class RoundRectangle2D e *** 353,361 **** rr.getArcWidth(), rr.getArcHeight()); } ! /** * A subclass of RoundRectangle which keeps its parameters as ! * doubles. */ public static class Double extends RoundRectangle2D { --- 353,361 ---- rr.getArcWidth(), rr.getArcHeight()); } ! /** * A subclass of RoundRectangle which keeps its parameters as ! * doubles. */ public static class Double extends RoundRectangle2D { *************** public abstract class RoundRectangle2D e *** 377,390 **** /** The height of this object. */ public double height; ! /** ! * Construct a new instance, with all parameters set to 0. */ public Double() { } ! /** * Construct a new instance with the given arguments. * @param x The x coordinate * @param y The y coordinate --- 377,390 ---- /** The height of this object. */ public double height; ! /** ! * Construct a new instance, with all parameters set to 0. */ public Double() { } ! /** * Construct a new instance with the given arguments. * @param x The x coordinate * @param y The y coordinate *************** public abstract class RoundRectangle2D e *** 456,464 **** } } // class Double ! /** * A subclass of RoundRectangle which keeps its parameters as ! * floats. */ public static class Float extends RoundRectangle2D { --- 456,464 ---- } } // class Double ! /** * A subclass of RoundRectangle which keeps its parameters as ! * floats. */ public static class Float extends RoundRectangle2D { *************** public abstract class RoundRectangle2D e *** 480,493 **** /** The height of this object. */ public float height; ! /** ! * Construct a new instance, with all parameters set to 0. */ public Float() { } ! /** * Construct a new instance with the given arguments. * @param x The x coordinate * @param y The y coordinate --- 480,493 ---- /** The height of this object. */ public float height; ! /** ! * Construct a new instance, with all parameters set to 0. */ public Float() { } ! /** * Construct a new instance with the given arguments. * @param x The x coordinate * @param y The y coordinate *************** public abstract class RoundRectangle2D e *** 549,562 **** /** * Sets the dimensions for this rounded rectangle. ! * * @param x the x-coordinate of the top left corner. * @param y the y-coordinate of the top left corner. * @param w the width of the rectangle. * @param h the height of the rectangle. * @param arcWidth the arc width. * @param arcHeight the arc height. ! * * @see #setRoundRect(double, double, double, double, double, double) */ public void setRoundRect(float x, float y, float w, float h, --- 549,562 ---- /** * Sets the dimensions for this rounded rectangle. ! * * @param x the x-coordinate of the top left corner. * @param y the y-coordinate of the top left corner. * @param w the width of the rectangle. * @param h the height of the rectangle. * @param arcWidth the arc width. * @param arcHeight the arc height. ! * * @see #setRoundRect(double, double, double, double, double, double) */ public void setRoundRect(float x, float y, float w, float h, diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/im/InputContext.java gcc-4.6.0/libjava/classpath/java/awt/im/InputContext.java *** gcc-4.5.2/libjava/classpath/java/awt/im/InputContext.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/im/InputContext.java Tue Jan 11 19:46:05 2011 *************** public class InputContext *** 146,152 **** private InputMethod im; /** Map of locales to the most recently selected input method. */ ! private final HashMap recent = new HashMap(); /** The list of acceptable character subsets. */ --- 146,152 ---- private InputMethod im; /** Map of locales to the most recently selected input method. */ ! private final HashMap recent = new HashMap(); /** The list of acceptable character subsets. */ *************** public class InputContext *** 427,433 **** * method. Clients have to compare the result against known input method * control object types. If no input methods are available or the current * input method does not provide an input method control object, then null ! * is returned. * * @return the control object, or null */ --- 427,433 ---- * method. Clients have to compare the result against known input method * control object types. If no input methods are available or the current * input method does not provide an input method control object, then null ! * is returned. * * @return the control object, or null */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/im/spi/InputMethodDescriptor.java gcc-4.6.0/libjava/classpath/java/awt/im/spi/InputMethodDescriptor.java *** gcc-4.5.2/libjava/classpath/java/awt/im/spi/InputMethodDescriptor.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/awt/im/spi/InputMethodDescriptor.java Tue Jan 11 19:46:05 2011 *************** public interface InputMethodDescriptor *** 111,114 **** InputMethod createInputMethod() throws Exception; } // interface InputMethodDescriptor - --- 111,113 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/AffineTransformOp.java gcc-4.6.0/libjava/classpath/java/awt/image/AffineTransformOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/AffineTransformOp.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/AffineTransformOp.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AffineTransformOp.java -- This class performs affine transformation between two images or rasters in 2 dimensions. Copyright (C) 2004, 2006 Free Software Foundation --- 1,4 ---- ! /* AffineTransformOp.java -- This class performs affine transformation between two images or rasters in 2 dimensions. Copyright (C) 2004, 2006 Free Software Foundation *************** import java.util.Arrays; *** 51,69 **** /** * AffineTransformOp performs matrix-based transformations (translations, * scales, flips, rotations, and shears). ! * * If interpolation is required, nearest neighbour, bilinear, and bicubic * methods are available. * ! * @author Olga Rodimina (rodimina@redhat.com) * @author Francis Kung (fkung@redhat.com) */ public class AffineTransformOp implements BufferedImageOp, RasterOp { public static final int TYPE_NEAREST_NEIGHBOR = 1; ! public static final int TYPE_BILINEAR = 2; ! /** * @since 1.5.0 */ --- 51,69 ---- /** * AffineTransformOp performs matrix-based transformations (translations, * scales, flips, rotations, and shears). ! * * If interpolation is required, nearest neighbour, bilinear, and bicubic * methods are available. * ! * @author Olga Rodimina (rodimina@redhat.com) * @author Francis Kung (fkung@redhat.com) */ public class AffineTransformOp implements BufferedImageOp, RasterOp { public static final int TYPE_NEAREST_NEIGHBOR = 1; ! public static final int TYPE_BILINEAR = 2; ! /** * @since 1.5.0 */ *************** public class AffineTransformOp implement *** 71,83 **** private AffineTransform transform; private RenderingHints hints; ! /** * Construct AffineTransformOp with the given xform and interpolationType. * Interpolation type can be TYPE_BILINEAR, TYPE_BICUBIC or * TYPE_NEAREST_NEIGHBOR. * ! * @param xform AffineTransform that will applied to the source image * @param interpolationType type of interpolation used * @throws ImagingOpException if the transform matrix is noninvertible */ --- 71,83 ---- private AffineTransform transform; private RenderingHints hints; ! /** * Construct AffineTransformOp with the given xform and interpolationType. * Interpolation type can be TYPE_BILINEAR, TYPE_BICUBIC or * TYPE_NEAREST_NEIGHBOR. * ! * @param xform AffineTransform that will applied to the source image * @param interpolationType type of interpolation used * @throws ImagingOpException if the transform matrix is noninvertible */ *************** public class AffineTransformOp implement *** 90,101 **** switch (interpolationType) { case TYPE_BILINEAR: ! hints = new RenderingHints (RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); break; case TYPE_BICUBIC: ! hints = new RenderingHints (RenderingHints.KEY_INTERPOLATION, ! RenderingHints.VALUE_INTERPOLATION_BICUBIC); break; default: hints = new RenderingHints (RenderingHints.KEY_INTERPOLATION, --- 90,101 ---- switch (interpolationType) { case TYPE_BILINEAR: ! hints = new RenderingHints (RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); break; case TYPE_BICUBIC: ! hints = new RenderingHints (RenderingHints.KEY_INTERPOLATION, ! RenderingHints.VALUE_INTERPOLATION_BICUBIC); break; default: hints = new RenderingHints (RenderingHints.KEY_INTERPOLATION, *************** public class AffineTransformOp implement *** 105,111 **** /** * Construct AffineTransformOp with the given xform and rendering hints. ! * * @param xform AffineTransform that will applied to the source image * @param hints rendering hints that will be used during transformation * @throws ImagingOpException if the transform matrix is noninvertible --- 105,111 ---- /** * Construct AffineTransformOp with the given xform and rendering hints. ! * * @param xform AffineTransform that will applied to the source image * @param hints rendering hints that will be used during transformation * @throws ImagingOpException if the transform matrix is noninvertible *************** public class AffineTransformOp implement *** 119,127 **** } /** ! * Creates a new BufferedImage with the size equal to that of the ! * transformed image and the correct number of bands. The newly created ! * image is created with the specified ColorModel. * If a ColorModel is not specified, an appropriate ColorModel is used. * * @param src the source image. --- 119,127 ---- } /** ! * Creates a new BufferedImage with the size equal to that of the ! * transformed image and the correct number of bands. The newly created ! * image is created with the specified ColorModel. * If a ColorModel is not specified, an appropriate ColorModel is used. * * @param src the source image. *************** public class AffineTransformOp implement *** 149,155 **** } /** ! * Creates a new WritableRaster with the size equal to the transformed * source raster and correct number of bands . * * @param src the source raster. --- 149,155 ---- } /** ! * Creates a new WritableRaster with the size equal to the transformed * source raster and correct number of bands . * * @param src the source raster. *************** public class AffineTransformOp implement *** 159,176 **** public WritableRaster createCompatibleDestRaster (Raster src) { Rectangle2D rect = getBounds2D(src); ! ! if (rect.getWidth() == 0 || rect.getHeight() == 0) throw new RasterFormatException("width or height is 0"); ! return src.createCompatibleWritableRaster((int) rect.getWidth(), (int) rect.getHeight()); } /** * Transforms source image using transform specified at the constructor. * The resulting transformed image is stored in the destination image if one ! * is provided; otherwise a new BufferedImage is created and returned. * * @param src source image * @param dst destination image --- 159,176 ---- public WritableRaster createCompatibleDestRaster (Raster src) { Rectangle2D rect = getBounds2D(src); ! ! if (rect.getWidth() == 0 || rect.getHeight() == 0) throw new RasterFormatException("width or height is 0"); ! return src.createCompatibleWritableRaster((int) rect.getWidth(), (int) rect.getHeight()); } /** * Transforms source image using transform specified at the constructor. * The resulting transformed image is stored in the destination image if one ! * is provided; otherwise a new BufferedImage is created and returned. * * @param src source image * @param dst destination image *************** public class AffineTransformOp implement *** 218,224 **** if (src.getNumBands() != dst.getNumBands()) throw new IllegalArgumentException("src and dst must have same number" + " of bands"); ! // Optimization for rasters that can be represented in the RGB colormodel: // wrap the rasters in images, and let Cairo do the transformation if (ColorModel.getRGBdefault().isCompatibleSampleModel(src.getSampleModel()) --- 218,224 ---- if (src.getNumBands() != dst.getNumBands()) throw new IllegalArgumentException("src and dst must have same number" + " of bands"); ! // Optimization for rasters that can be represented in the RGB colormodel: // wrap the rasters in images, and let Cairo do the transformation if (ColorModel.getRGBdefault().isCompatibleSampleModel(src.getSampleModel()) *************** public class AffineTransformOp implement *** 232,238 **** src2, false, null); BufferedImage iDst = new BufferedImage(ColorModel.getRGBdefault(), dst, false, null); ! return filter(iSrc, iDst).getRaster(); } --- 232,238 ---- src2, false, null); BufferedImage iDst = new BufferedImage(ColorModel.getRGBdefault(), dst, false, null); ! return filter(iSrc, iDst).getRaster(); } *************** public class AffineTransformOp implement *** 256,262 **** // Use an inverse transform to map each point in the destination to // a point in the source. Note that, while all points in the destination // matrix are integers, this is not necessarily true for points in the ! // source (hence why interpolation is required) try { AffineTransform inverseTx = transform.createInverse(); --- 256,262 ---- // Use an inverse transform to map each point in the destination to // a point in the source. Note that, while all points in the destination // matrix are integers, this is not necessarily true for points in the ! // source (hence why interpolation is required) try { AffineTransform inverseTx = transform.createInverse(); *************** public class AffineTransformOp implement *** 271,288 **** // Different interpolation methods... if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) filterNearest(src, dst, dstPts, srcPts); ! else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) filterBilinear(src, dst, dstPts, srcPts); ! else // bicubic filterBicubic(src, dst, dstPts, srcPts); ! return dst; } /** ! * Transforms source image using transform specified at the constructor and * returns bounds of the transformed image. * * @param src image to be transformed --- 271,288 ---- // Different interpolation methods... if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) filterNearest(src, dst, dstPts, srcPts); ! else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) filterBilinear(src, dst, dstPts, srcPts); ! else // bicubic filterBicubic(src, dst, dstPts, srcPts); ! return dst; } /** ! * Transforms source image using transform specified at the constructor and * returns bounds of the transformed image. * * @param src image to be transformed *************** public class AffineTransformOp implement *** 292,298 **** { return getBounds2D (src.getRaster()); } ! /** * Returns bounds of the transformed raster. * --- 292,298 ---- { return getBounds2D (src.getRaster()); } ! /** * Returns bounds of the transformed raster. * *************** public class AffineTransformOp implement *** 313,330 **** { if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) return TYPE_BILINEAR; ! else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BICUBIC)) return TYPE_BICUBIC; ! ! else return TYPE_NEAREST_NEIGHBOR; } ! /** ! * Returns location of the transformed source point. The resulting point * is stored in the dstPt if one is specified. ! * * @param srcPt point to be transformed * @param dstPt destination point * @return the location of the transformed source point. --- 313,330 ---- { if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) return TYPE_BILINEAR; ! else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BICUBIC)) return TYPE_BICUBIC; ! ! else return TYPE_NEAREST_NEIGHBOR; } ! /** ! * Returns location of the transformed source point. The resulting point * is stored in the dstPt if one is specified. ! * * @param srcPt point to be transformed * @param dstPt destination point * @return the location of the transformed source point. *************** public class AffineTransformOp implement *** 354,363 **** { return transform; } ! /** * Perform nearest-neighbour filtering ! * * @param src the source raster * @param dst the destination raster * @param dpts array of points on the destination raster --- 354,363 ---- { return transform; } ! /** * Perform nearest-neighbour filtering ! * * @param src the source raster * @param dst the destination raster * @param dpts array of points on the destination raster *************** public class AffineTransformOp implement *** 367,380 **** double[] pts) { Rectangle srcbounds = src.getBounds(); ! // For all points on the destination raster, copy the value from the // corrosponding (rounded) source point for (int i = 0; i < dpts.length; i += 2) { int srcX = (int) Math.round(pts[i]) + src.getMinX(); int srcY = (int) Math.round(pts[i + 1]) + src.getMinY(); ! if (srcbounds.contains(srcX, srcY)) dst.setDataElements((int) dpts[i] + dst.getMinX(), (int) dpts[i + 1] + dst.getMinY(), --- 367,380 ---- double[] pts) { Rectangle srcbounds = src.getBounds(); ! // For all points on the destination raster, copy the value from the // corrosponding (rounded) source point for (int i = 0; i < dpts.length; i += 2) { int srcX = (int) Math.round(pts[i]) + src.getMinX(); int srcY = (int) Math.round(pts[i + 1]) + src.getMinY(); ! if (srcbounds.contains(srcX, srcY)) dst.setDataElements((int) dpts[i] + dst.getMinX(), (int) dpts[i + 1] + dst.getMinY(), *************** public class AffineTransformOp implement *** 384,390 **** /** * Perform bilinear filtering ! * * @param src the source raster * @param dst the destination raster * @param dpts array of points on the destination raster --- 384,390 ---- /** * Perform bilinear filtering ! * * @param src the source raster * @param dst the destination raster * @param dpts array of points on the destination raster *************** public class AffineTransformOp implement *** 394,419 **** double[] pts) { Rectangle srcbounds = src.getBounds(); ! Object xyarr = null; Object xp1arr = null; Object yp1arr = null; Object xyp1arr = null; ! double xy; double xp1; double yp1; double xyp1; double[] result = new double[src.getNumBands()]; ! // For all points in the destination raster, use bilinear interpolation // to find the value from the corrosponding source points for (int i = 0; i < dpts.length; i += 2) { int srcX = (int) Math.round(pts[i]) + src.getMinX(); int srcY = (int) Math.round(pts[i + 1]) + src.getMinY(); ! if (srcbounds.contains(srcX, srcY)) { // Corner case at the bottom or right edge; use nearest neighbour --- 394,419 ---- double[] pts) { Rectangle srcbounds = src.getBounds(); ! Object xyarr = null; Object xp1arr = null; Object yp1arr = null; Object xyp1arr = null; ! double xy; double xp1; double yp1; double xyp1; double[] result = new double[src.getNumBands()]; ! // For all points in the destination raster, use bilinear interpolation // to find the value from the corrosponding source points for (int i = 0; i < dpts.length; i += 2) { int srcX = (int) Math.round(pts[i]) + src.getMinX(); int srcY = (int) Math.round(pts[i + 1]) + src.getMinY(); ! if (srcbounds.contains(srcX, srcY)) { // Corner case at the bottom or right edge; use nearest neighbour *************** public class AffineTransformOp implement *** 422,428 **** dst.setDataElements((int) dpts[i] + dst.getMinX(), (int) dpts[i + 1] + dst.getMinY(), src.getDataElements(srcX, srcY, null)); ! // Standard case, apply the bilinear formula else { --- 422,428 ---- dst.setDataElements((int) dpts[i] + dst.getMinX(), (int) dpts[i + 1] + dst.getMinY(), src.getDataElements(srcX, srcY, null)); ! // Standard case, apply the bilinear formula else { *************** public class AffineTransformOp implement *** 448,458 **** yp1arr = src.getPixel(x, y+1, (int[])yp1arr); xyp1arr = src.getPixel(x+1, y+1, (int[])xyp1arr); } ! // using // array[] pixels = src.getPixels(x, y, 2, 2, pixels); // instead of doing four individual src.getPixel() calls // should be faster, but benchmarking shows that it's not... ! // Run interpolation for each band for (int j = 0; j < src.getNumBands(); j++) { --- 448,458 ---- yp1arr = src.getPixel(x, y+1, (int[])yp1arr); xyp1arr = src.getPixel(x+1, y+1, (int[])xyp1arr); } ! // using // array[] pixels = src.getPixels(x, y, 2, 2, pixels); // instead of doing four individual src.getPixel() calls // should be faster, but benchmarking shows that it's not... ! // Run interpolation for each band for (int j = 0; j < src.getNumBands(); j++) { *************** public class AffineTransformOp implement *** 472,487 **** yp1 = ((int[])yp1arr)[j]; xyp1 = ((int[])xyp1arr)[j]; } ! ! // If all four samples are identical, there's no need to // calculate anything if (xy == xp1 && xy == yp1 && xy == xyp1) result[j] = xy; ! // Run bilinear interpolation formula else ! result[j] = (xy * (1-xdiff) + xp1 * xdiff) ! * (1-ydiff) + (yp1 * (1-xdiff) + xyp1 * xdiff) * ydiff; } --- 472,487 ---- yp1 = ((int[])yp1arr)[j]; xyp1 = ((int[])xyp1arr)[j]; } ! ! // If all four samples are identical, there's no need to // calculate anything if (xy == xp1 && xy == yp1 && xy == xyp1) result[j] = xy; ! // Run bilinear interpolation formula else ! result[j] = (xy * (1-xdiff) + xp1 * xdiff) ! * (1-ydiff) + (yp1 * (1-xdiff) + xyp1 * xdiff) * ydiff; } *************** public class AffineTransformOp implement *** 497,503 **** /** * Perform bicubic filtering * based on http://local.wasp.uwa.edu.au/~pbourke/colour/bicubic/ ! * * @param src the source raster * @param dst the destination raster * @param dpts array of points on the destination raster --- 497,503 ---- /** * Perform bicubic filtering * based on http://local.wasp.uwa.edu.au/~pbourke/colour/bicubic/ ! * * @param src the source raster * @param dst the destination raster * @param dpts array of points on the destination raster *************** public class AffineTransformOp implement *** 522,528 **** double dx = pts[i] + src.getMinX() - x; double dy = pts[i + 1] + src.getMinY() - y; Arrays.fill(result, 0); ! for (int m = - 1; m < 3; m++) for (int n = - 1; n < 3; n++) { --- 522,528 ---- double dx = pts[i] + src.getMinX() - x; double dy = pts[i + 1] + src.getMinY() - y; Arrays.fill(result, 0); ! for (int m = - 1; m < 3; m++) for (int n = - 1; n < 3; n++) { *************** public class AffineTransformOp implement *** 597,603 **** result[j] += ((int[])pixels)[j] * r1 * r2; } } ! // Put it all together dst.setPixel((int)dpts[i] + dst.getMinX(), (int)dpts[i+1] + dst.getMinY(), --- 597,603 ---- result[j] += ((int[])pixels)[j] * r1 * r2; } } ! // Put it all together dst.setPixel((int)dpts[i] + dst.getMinX(), (int)dpts[i+1] + dst.getMinY(), diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java gcc-4.6.0/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java *** gcc-4.5.2/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java Tue Jan 11 19:46:05 2011 *************** package java.awt.image; *** 42,52 **** * This filter should produce images which do not have image artifacts * like broken lines which were originally unbroken. The cost is of * course speed. Using bi-linear interpolation here against 4 pixel ! * points should give the desired results although Sun does not * specify what the exact algorithm should be. *
        * ! * @author C. Brian Jones (cbj@gnu.org) */ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { --- 42,52 ---- * This filter should produce images which do not have image artifacts * like broken lines which were originally unbroken. The cost is of * course speed. Using bi-linear interpolation here against 4 pixel ! * points should give the desired results although Sun does not * specify what the exact algorithm should be. *
        * ! * @author C. Brian Jones (cbj@gnu.org) */ public class AreaAveragingScaleFilter extends ReplicateScaleFilter { *************** public class AreaAveragingScaleFilter ex *** 54,60 **** * Construct an instance of AreaAveragingScaleFilter which * should be used in conjunction with a FilteredImageSource * object. ! * * @param width the width of the destination image * @param height the height of the destination image */ --- 54,60 ---- * Construct an instance of AreaAveragingScaleFilter which * should be used in conjunction with a FilteredImageSource * object. ! * * @param width the width of the destination image * @param height the height of the destination image */ *************** public class AreaAveragingScaleFilter ex *** 66,79 **** * The ImageProducer should call this method with a * bit mask of hints from any of RANDOMPIXELORDER, * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, ! * SINGLEPASS, SINGLEFRAME from the * ImageConsumer interface. *
        ! * FIXME - more than likely Sun's implementation desires * TOPDOWNLEFTRIGHT order and this method is overloaded here * in order to assure that mask is part of the hints added to * the consumer. ! * * @param flags a bit mask of hints * @see ImageConsumer */ --- 66,79 ---- * The ImageProducer should call this method with a * bit mask of hints from any of RANDOMPIXELORDER, * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, ! * SINGLEPASS, SINGLEFRAME from the * ImageConsumer interface. *
        ! * FIXME - more than likely Sun's implementation desires * TOPDOWNLEFTRIGHT order and this method is overloaded here * in order to assure that mask is part of the hints added to * the consumer. ! * * @param flags a bit mask of hints * @see ImageConsumer */ *************** public class AreaAveragingScaleFilter ex *** 86,92 **** /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as a byte at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 86,92 ---- /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as a byte at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle *************** public class AreaAveragingScaleFilter ex *** 97,104 **** * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize) { double rx = ((double) srcWidth) / destWidth; double ry = ((double) srcHeight) / destHeight; --- 97,104 ---- * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize) { double rx = ((double) srcWidth) / destWidth; double ry = ((double) srcHeight) / destHeight; *************** public class AreaAveragingScaleFilter ex *** 106,124 **** int destScansize = (int) Math.round(scansize / rx); byte[] destPixels = averagePixels(x, y, w, h, ! model, pixels, offset, scansize, ! rx, ry, destScansize); if (consumer != null) consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry), ! (int) Math.ceil(w/rx), (int) Math.ceil(h/ry), ! model, destPixels, 0, destScansize); } /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 106,124 ---- int destScansize = (int) Math.round(scansize / rx); byte[] destPixels = averagePixels(x, y, w, h, ! model, pixels, offset, scansize, ! rx, ry, destScansize); if (consumer != null) consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry), ! (int) Math.ceil(w/rx), (int) Math.ceil(h/ry), ! model, destPixels, 0, destScansize); } /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle *************** public class AreaAveragingScaleFilter ex *** 129,136 **** * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, int[] pixels, int offset, int scansize) { double rx = ((double) srcWidth) / destWidth; double ry = ((double) srcHeight) / destHeight; --- 129,136 ---- * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, int[] pixels, int offset, int scansize) { double rx = ((double) srcWidth) / destWidth; double ry = ((double) srcHeight) / destHeight; *************** public class AreaAveragingScaleFilter ex *** 138,154 **** int destScansize = (int) Math.round(scansize / rx); int[] destPixels = averagePixels(x, y, w, h, ! model, pixels, offset, scansize, ! rx, ry, destScansize); if (consumer != null) consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry), ! (int) Math.ceil(w/rx), (int) Math.ceil(h/ry), ! model, destPixels, 0, destScansize); } /** ! * This is a really terrible implementation, * since it uses the nearest-neighbor method. This filter is rarely used though. * * @param srcx, srcy - Source rectangle upper-left corner --- 138,154 ---- int destScansize = (int) Math.round(scansize / rx); int[] destPixels = averagePixels(x, y, w, h, ! model, pixels, offset, scansize, ! rx, ry, destScansize); if (consumer != null) consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry), ! (int) Math.ceil(w/rx), (int) Math.ceil(h/ry), ! model, destPixels, 0, destScansize); } /** ! * This is a really terrible implementation, * since it uses the nearest-neighbor method. This filter is rarely used though. * * @param srcx, srcy - Source rectangle upper-left corner *************** public class AreaAveragingScaleFilter ex *** 161,169 **** * @param destScansize - Destination array scanline size. */ private byte[] averagePixels(int srcx, int srcy, int srcw, int srch, ! ColorModel model, byte[] srcPixels, ! int srcOffset, int srcScansize, ! double rx, double ry, int destScansize) { int destW = (int) Math.ceil(srcw/rx); int destH = (int) Math.ceil(srch/ry); --- 161,169 ---- * @param destScansize - Destination array scanline size. */ private byte[] averagePixels(int srcx, int srcy, int srcw, int srch, ! ColorModel model, byte[] srcPixels, ! int srcOffset, int srcScansize, ! double rx, double ry, int destScansize) { int destW = (int) Math.ceil(srcw/rx); int destH = (int) Math.ceil(srch/ry); *************** public class AreaAveragingScaleFilter ex *** 175,214 **** for(int x = 0; x < destW; x++) for(int y = 0; y < destH; y++) ! { ! sx = (int) (x * rx); ! sy = (int) (y * ry); ! int r,g,b,a; ! r = g = b = a = 0; ! for(int i = 0; i < w; i++) ! { ! for(int j = 0; j < h; j++) ! { ! int idx = srcx + sx + i + (srcy + sy + j)*srcScansize; ! r += model.getRed(srcPixels[ idx ]); ! g += model.getGreen(srcPixels[ idx ]); ! b += model.getBlue(srcPixels[ idx ]); ! a += model.getAlpha(srcPixels[ idx ]); ! } ! } ! ! r = r / (w * h); ! g = g / (w * h); ! b = b / (w * h); ! a = a / (w * h); ! // Does this really work? ! destPixels[x + destScansize*y] = (byte)model.getDataElement ! (new int[]{r, g, b, a}, 0); ! } return destPixels; } /** ! * This is a really terrible implementation, * since it uses the nearest-neighbor method. This filter is rarely used though. * * @param srcx, srcy - Source rectangle upper-left corner --- 175,214 ---- for(int x = 0; x < destW; x++) for(int y = 0; y < destH; y++) ! { ! sx = (int) (x * rx); ! sy = (int) (y * ry); ! int r,g,b,a; ! r = g = b = a = 0; ! for(int i = 0; i < w; i++) ! { ! for(int j = 0; j < h; j++) ! { ! int idx = srcx + sx + i + (srcy + sy + j)*srcScansize; ! r += model.getRed(srcPixels[ idx ]); ! g += model.getGreen(srcPixels[ idx ]); ! b += model.getBlue(srcPixels[ idx ]); ! a += model.getAlpha(srcPixels[ idx ]); ! } ! } ! r = r / (w * h); ! g = g / (w * h); ! b = b / (w * h); ! a = a / (w * h); ! ! // Does this really work? ! destPixels[x + destScansize*y] = (byte)model.getDataElement ! (new int[]{r, g, b, a}, 0); ! } return destPixels; } /** ! * This is a really terrible implementation, * since it uses the nearest-neighbor method. This filter is rarely used though. * * @param srcx, srcy - Source rectangle upper-left corner *************** public class AreaAveragingScaleFilter ex *** 221,269 **** * @param destScansize - Destination array scanline size. */ private int[] averagePixels(int srcx, int srcy, int srcw, int srch, ! ColorModel model, int[] srcPixels, ! int srcOffset, int srcScansize, ! double rx, double ry, int destScansize) { int destW = (int) Math.ceil(srcw/rx); int destH = (int) Math.ceil(srch/ry); int[] destPixels = new int[ destW * destH ]; int sx, sy; ! int w = (int)Math.ceil(rx); int h = (int)Math.ceil(ry); ! for(int x = 0; x < destW; x++) for(int y = 0; y < destH; y++) ! { ! sx = (int) (x * rx); ! sy = (int) (y * ry); ! ! int r,g,b,a; ! r = g = b = a = 0; ! ! for(int i = 0; i < w; i++) ! { ! for(int j = 0; j < h; j++) ! { ! int idx = srcx + sx + i + (srcy + sy + j)*srcScansize; ! r += model.getRed(srcPixels[ idx ]); ! g += model.getGreen(srcPixels[ idx ]); ! b += model.getBlue(srcPixels[ idx ]); ! a += model.getAlpha(srcPixels[ idx ]); ! } ! } ! ! r = r / (w * h); ! g = g / (w * h); ! b = b / (w * h); ! a = a / (w * h); - destPixels[x + destScansize*y] = model.getDataElement - (new int[]{r, g, b, a}, 0); - } - return destPixels; } } - --- 221,268 ---- * @param destScansize - Destination array scanline size. */ private int[] averagePixels(int srcx, int srcy, int srcw, int srch, ! ColorModel model, int[] srcPixels, ! int srcOffset, int srcScansize, ! double rx, double ry, int destScansize) { int destW = (int) Math.ceil(srcw/rx); int destH = (int) Math.ceil(srch/ry); int[] destPixels = new int[ destW * destH ]; int sx, sy; ! int w = (int)Math.ceil(rx); int h = (int)Math.ceil(ry); ! for(int x = 0; x < destW; x++) for(int y = 0; y < destH; y++) ! { ! sx = (int) (x * rx); ! sy = (int) (y * ry); ! ! int r,g,b,a; ! r = g = b = a = 0; ! ! for(int i = 0; i < w; i++) ! { ! for(int j = 0; j < h; j++) ! { ! int idx = srcx + sx + i + (srcy + sy + j)*srcScansize; ! r += model.getRed(srcPixels[ idx ]); ! g += model.getGreen(srcPixels[ idx ]); ! b += model.getBlue(srcPixels[ idx ]); ! a += model.getAlpha(srcPixels[ idx ]); ! } ! } ! ! r = r / (w * h); ! g = g / (w * h); ! b = b / (w * h); ! a = a / (w * h); ! ! destPixels[x + destScansize*y] = model.getDataElement ! (new int[]{r, g, b, a}, 0); ! } return destPixels; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/BandCombineOp.java gcc-4.6.0/libjava/classpath/java/awt/image/BandCombineOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/BandCombineOp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/BandCombineOp.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 44,72 **** /** * Filter Raster pixels by applying a matrix. ! * * BandCombineOp applies a matrix to each pixel to produce new pixel values. * The width of the matrix must be the same or one more than the number of * bands in the source Raster. If one more, the pixels in the source are * assumed to contain an implicit 1.0 at the end. ! * * The rows of the matrix are multiplied by the pixel to produce the values * for the destination. Therefore the destination Raster must contain the * same number of bands as the number of rows in the filter matrix. ! * * This Op assumes that samples are integers; floating point sample types will * be rounded to their nearest integer value during filtering. ! * * @author Jerry Quinn (jlquinn@optonline.net) */ public class BandCombineOp implements RasterOp { private RenderingHints hints; private float[][] matrix; ! /** * Construct a BandCombineOp. ! * * @param matrix The matrix to filter pixels with. * @param hints Rendering hints to apply. Ignored. * @throws ArrayIndexOutOfBoundsException if the matrix is invalid --- 44,72 ---- /** * Filter Raster pixels by applying a matrix. ! * * BandCombineOp applies a matrix to each pixel to produce new pixel values. * The width of the matrix must be the same or one more than the number of * bands in the source Raster. If one more, the pixels in the source are * assumed to contain an implicit 1.0 at the end. ! * * The rows of the matrix are multiplied by the pixel to produce the values * for the destination. Therefore the destination Raster must contain the * same number of bands as the number of rows in the filter matrix. ! * * This Op assumes that samples are integers; floating point sample types will * be rounded to their nearest integer value during filtering. ! * * @author Jerry Quinn (jlquinn@optonline.net) */ public class BandCombineOp implements RasterOp { private RenderingHints hints; private float[][] matrix; ! /** * Construct a BandCombineOp. ! * * @param matrix The matrix to filter pixels with. * @param hints Rendering hints to apply. Ignored. * @throws ArrayIndexOutOfBoundsException if the matrix is invalid *************** public class BandCombineOp implements Ra *** 96,102 **** * by 1, i.e. added to the sum for that dest component. If dest is null, a * suitable Raster is created. This implementation uses * createCompatibleDestRaster. ! * * @param src The source Raster. * @param dest The destination Raster, or null. * @throws IllegalArgumentException if the destination raster is incompatible --- 96,102 ---- * by 1, i.e. added to the sum for that dest component. If dest is null, a * suitable Raster is created. This implementation uses * createCompatibleDestRaster. ! * * @param src The source Raster. * @param dest The destination Raster, or null. * @throws IllegalArgumentException if the destination raster is incompatible *************** public class BandCombineOp implements Ra *** 122,128 **** // In case matrix rows have implicit translation spix[spix.length - 1] = 1; src.getPixel(x, y, spix); ! // Do not re-calculate if pixel is identical to the last one // (ie, blocks of the same colour) if (!Arrays.equals(spix, spix2)) --- 122,128 ---- // In case matrix rows have implicit translation spix[spix.length - 1] = 1; src.getPixel(x, y, spix); ! // Do not re-calculate if pixel is identical to the last one // (ie, blocks of the same colour) if (!Arrays.equals(spix, spix2)) *************** public class BandCombineOp implements Ra *** 154,160 **** * Op. The number of bands in the source raster must equal the number of rows * in the op matrix, which must also be equal to either the number of columns * or (columns - 1) in the matrix. ! * * @param src The source raster. * @return A compatible raster. * @see java.awt.image.RasterOp#createCompatibleDestRaster(java.awt.image.Raster) --- 154,160 ---- * Op. The number of bands in the source raster must equal the number of rows * in the op matrix, which must also be equal to either the number of columns * or (columns - 1) in the matrix. ! * * @param src The source raster. * @return A compatible raster. * @see java.awt.image.RasterOp#createCompatibleDestRaster(java.awt.image.Raster) *************** public class BandCombineOp implements Ra *** 181,198 **** /** * Return corresponding destination point for source point. Because this is * not a geometric operation, it simply returns a copy of the source. ! * * @param src The source point. * @param dst The destination point. * @return dst The destination point. * @see java.awt.image.RasterOp#getPoint2D(java.awt.geom.Point2D, ! *java.awt.geom.Point2D) */ public final Point2D getPoint2D(Point2D src, Point2D dst) { if (dst == null) return (Point2D)src.clone(); ! dst.setLocation(src); return dst; } --- 181,198 ---- /** * Return corresponding destination point for source point. Because this is * not a geometric operation, it simply returns a copy of the source. ! * * @param src The source point. * @param dst The destination point. * @return dst The destination point. * @see java.awt.image.RasterOp#getPoint2D(java.awt.geom.Point2D, ! *java.awt.geom.Point2D) */ public final Point2D getPoint2D(Point2D src, Point2D dst) { if (dst == null) return (Point2D)src.clone(); ! dst.setLocation(src); return dst; } *************** public class BandCombineOp implements Ra *** 204,210 **** { return hints; } ! /** * Return the matrix used in this operation. * --- 204,210 ---- { return hints; } ! /** * Return the matrix used in this operation. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/BandedSampleModel.java gcc-4.6.0/libjava/classpath/java/awt/image/BandedSampleModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/BandedSampleModel.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/BandedSampleModel.java Tue Jan 11 19:46:05 2011 *************** public final class BandedSampleModel ext *** 55,61 **** private int numberOfBits; private int numElems; ! private static int[] createBankArray(int size) { int[] result = new int[size]; for (int i = 0; i < size; i++) --- 55,61 ---- private int numberOfBits; private int numElems; ! private static int[] createBankArray(int size) { int[] result = new int[size]; for (int i = 0; i < size; i++) *************** public final class BandedSampleModel ext *** 65,71 **** /** * Creates a new BandedSampleModel. ! * * @param dataType the data buffer type. * @param w the width (in pixels). * @param h the height (in pixels). --- 65,71 ---- /** * Creates a new BandedSampleModel. ! * * @param dataType the data buffer type. * @param w the width (in pixels). * @param h the height (in pixels). *************** public final class BandedSampleModel ext *** 78,101 **** /** * Creates a new BandedSampleModel. ! * * @param dataType the data buffer type. * @param w the width (in pixels). * @param h the height (in pixels). ! * @param scanlineStride the number of data elements from a pixel in one * row to the corresponding pixel in the next row. * @param bankIndices the bank indices. * @param bandOffsets the band offsets. */ public BandedSampleModel(int dataType, int w, int h, int scanlineStride, ! int[] bankIndices, int[] bandOffsets) { super(dataType, w, h, 1, scanlineStride, bankIndices, bandOffsets); } ! /** * Creates a new data buffer that is compatible with this sample model. ! * * @return The new data buffer. */ public DataBuffer createDataBuffer() --- 78,101 ---- /** * Creates a new BandedSampleModel. ! * * @param dataType the data buffer type. * @param w the width (in pixels). * @param h the height (in pixels). ! * @param scanlineStride the number of data elements from a pixel in one * row to the corresponding pixel in the next row. * @param bankIndices the bank indices. * @param bandOffsets the band offsets. */ public BandedSampleModel(int dataType, int w, int h, int scanlineStride, ! int[] bankIndices, int[] bandOffsets) { super(dataType, w, h, 1, scanlineStride, bankIndices, bandOffsets); } ! /** * Creates a new data buffer that is compatible with this sample model. ! * * @return The new data buffer. */ public DataBuffer createDataBuffer() *************** public final class BandedSampleModel ext *** 107,121 **** /** * Creates a new SampleModel that is compatible with this * model and has the specified width and height. ! * * @param w the width (in pixels, must be greater than zero). * @param h the height (in pixels, must be greater than zero). ! * * @return The new sample model. ! * * @throws IllegalArgumentException if w or h is * not greater than zero. ! * @throws IllegalArgumentException if w * h exceeds * Integer.MAX_VALUE. */ public SampleModel createCompatibleSampleModel(int w, int h) --- 107,121 ---- /** * Creates a new SampleModel that is compatible with this * model and has the specified width and height. ! * * @param w the width (in pixels, must be greater than zero). * @param h the height (in pixels, must be greater than zero). ! * * @return The new sample model. ! * * @throws IllegalArgumentException if w or h is * not greater than zero. ! * @throws IllegalArgumentException if w * h exceeds * Integer.MAX_VALUE. */ public SampleModel createCompatibleSampleModel(int w, int h) *************** public final class BandedSampleModel ext *** 150,156 **** newoffsets[order[i]] = offset; offset += w * scanlineStride; } ! return new BandedSampleModel(dataType, w, h, w, bankIndices, newoffsets); } --- 150,156 ---- newoffsets[order[i]] = offset; offset += w * scanlineStride; } ! return new BandedSampleModel(dataType, w, h, w, bankIndices, newoffsets); } *************** public final class BandedSampleModel ext *** 159,177 **** { if (bands.length > bankIndices.length) throw new ! RasterFormatException("BandedSampleModel createSubsetSampleModel too" ! +" many bands"); int[] newoff = new int[bands.length]; int[] newbanks = new int[bands.length]; for (int i = 0; i < bands.length; i++) { ! int b = bands[i]; ! newoff[i] = bandOffsets[b]; ! newbanks[i] = bankIndices[b]; } return new BandedSampleModel(dataType, width, height, scanlineStride, ! newbanks, newoff); } /** --- 159,177 ---- { if (bands.length > bankIndices.length) throw new ! RasterFormatException("BandedSampleModel createSubsetSampleModel too" ! +" many bands"); int[] newoff = new int[bands.length]; int[] newbanks = new int[bands.length]; for (int i = 0; i < bands.length; i++) { ! int b = bands[i]; ! newoff[i] = bandOffsets[b]; ! newbanks[i] = bankIndices[b]; } return new BandedSampleModel(dataType, width, height, scanlineStride, ! newbanks, newoff); } /** *************** public final class BandedSampleModel ext *** 180,194 **** * Extracts the pixel at x, y from data and stores samples into the array * obj. If obj is null, a new array of getTransferType() is created. * ! * @param x The x-coordinate of the pixel rectangle to store in * obj. ! * @param y The y-coordinate of the pixel rectangle to store in * obj. ! * @param obj The primitive array to store the pixels into or null to force * creation. * @param data The DataBuffer that is the source of the pixel data. * @return The primitive array containing the pixel data. ! * @see java.awt.image.SampleModel#getDataElements(int, int, * java.lang.Object, java.awt.image.DataBuffer) */ public Object getDataElements(int x, int y, Object obj, DataBuffer data) --- 180,194 ---- * Extracts the pixel at x, y from data and stores samples into the array * obj. If obj is null, a new array of getTransferType() is created. * ! * @param x The x-coordinate of the pixel rectangle to store in * obj. ! * @param y The y-coordinate of the pixel rectangle to store in * obj. ! * @param obj The primitive array to store the pixels into or null to force * creation. * @param data The DataBuffer that is the source of the pixel data. * @return The primitive array containing the pixel data. ! * @see java.awt.image.SampleModel#getDataElements(int, int, * java.lang.Object, java.awt.image.DataBuffer) */ public Object getDataElements(int x, int y, Object obj, DataBuffer data) *************** public final class BandedSampleModel ext *** 201,245 **** { case DataBuffer.TYPE_BYTE: { ! byte[] b = (byte[]) obj; ! if (b == null) b = new byte[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = (byte)getSample(x, y, i, data); ! return b; } case DataBuffer.TYPE_SHORT: case DataBuffer.TYPE_USHORT: { ! short[] b = (short[]) obj; ! if (b == null) b = new short[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = (short)getSample(x, y, i, data); ! return b; } case DataBuffer.TYPE_INT: { ! int[] b = (int[]) obj; ! if (b == null) b = new int[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = getSample(x, y, i, data); ! return b; } case DataBuffer.TYPE_FLOAT: { ! float[] b = (float[]) obj; ! if (b == null) b = new float[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = getSampleFloat(x, y, i, data); ! return b; } case DataBuffer.TYPE_DOUBLE: { ! double[] b = (double[]) obj; ! if (b == null) b = new double[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = getSample(x, y, i, data); ! return b; } default: --- 201,245 ---- { case DataBuffer.TYPE_BYTE: { ! byte[] b = (byte[]) obj; ! if (b == null) b = new byte[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = (byte)getSample(x, y, i, data); ! return b; } case DataBuffer.TYPE_SHORT: case DataBuffer.TYPE_USHORT: { ! short[] b = (short[]) obj; ! if (b == null) b = new short[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = (short)getSample(x, y, i, data); ! return b; } case DataBuffer.TYPE_INT: { ! int[] b = (int[]) obj; ! if (b == null) b = new int[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = getSample(x, y, i, data); ! return b; } case DataBuffer.TYPE_FLOAT: { ! float[] b = (float[]) obj; ! if (b == null) b = new float[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = getSampleFloat(x, y, i, data); ! return b; } case DataBuffer.TYPE_DOUBLE: { ! double[] b = (double[]) obj; ! if (b == null) b = new double[numBands]; ! for (int i = 0; i < numBands; i++) ! b[i] = getSample(x, y, i, data); ! return b; } default: *************** public final class BandedSampleModel ext *** 251,276 **** /** * Returns all the samples for the pixel at location (x, y) * stored in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param iArray an array that will be populated with the sample values and ! * returned as the result. The size of this array should be equal to the * number of bands in the model. If the array is null, a new * array is created. * @param data the data buffer (null not permitted). ! * * @return The samples for the specified pixel. ! * * @see #setPixel(int, int, int[], DataBuffer) */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { ! if (iArray == null) iArray = new int[numBands]; for (int i = 0; i < numBands; i++) iArray[i] = getSample(x, y, i, data); ! return iArray; } --- 251,276 ---- /** * Returns all the samples for the pixel at location (x, y) * stored in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param iArray an array that will be populated with the sample values and ! * returned as the result. The size of this array should be equal to the * number of bands in the model. If the array is null, a new * array is created. * @param data the data buffer (null not permitted). ! * * @return The samples for the specified pixel. ! * * @see #setPixel(int, int, int[], DataBuffer) */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { ! if (iArray == null) iArray = new int[numBands]; for (int i = 0; i < numBands; i++) iArray[i] = getSample(x, y, i, data); ! return iArray; } *************** public final class BandedSampleModel ext *** 296,338 **** * @return The primitive array containing the pixel data. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray, ! DataBuffer data) { if (x < 0 || y < 0) throw new ArrayIndexOutOfBoundsException( "x and y must not be less than 0."); ! if (iArray == null) iArray = new int[w * h * numBands]; int outOffset = 0; int maxX = x + w; int maxY = y + h; for (int yy = x; yy < maxY; yy++) { ! for (int xx = x; xx < maxX; xx++) ! { ! for (int b = 0; b < numBands; b++) ! { ! int offset = bandOffsets[b] + yy * scanlineStride + xx; ! iArray[outOffset++] = ! data.getElem(bankIndices[b], offset); ! } ! } } ! return iArray; } /** ! * Returns a sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. */ public int getSample(int x, int y, int b, DataBuffer data) --- 296,338 ---- * @return The primitive array containing the pixel data. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray, ! DataBuffer data) { if (x < 0 || y < 0) throw new ArrayIndexOutOfBoundsException( "x and y must not be less than 0."); ! if (iArray == null) iArray = new int[w * h * numBands]; int outOffset = 0; int maxX = x + w; int maxY = y + h; for (int yy = x; yy < maxY; yy++) { ! for (int xx = x; xx < maxX; xx++) ! { ! for (int b = 0; b < numBands; b++) ! { ! int offset = bandOffsets[b] + yy * scanlineStride + xx; ! iArray[outOffset++] = ! data.getElem(bankIndices[b], offset); ! } ! } } ! return iArray; } /** ! * Returns a sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. */ public int getSample(int x, int y, int b, DataBuffer data) *************** public final class BandedSampleModel ext *** 340,360 **** int offset = bandOffsets[b] + y * scanlineStride + x; return data.getElem(bankIndices[b], offset); } ! /** ! * Returns a sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. ! * * @see #getSample(int, int, int, DataBuffer) */ public float getSampleFloat(int x, int y, int b, DataBuffer data) --- 340,360 ---- int offset = bandOffsets[b] + y * scanlineStride + x; return data.getElem(bankIndices[b], offset); } ! /** ! * Returns a sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. ! * * @see #getSample(int, int, int, DataBuffer) */ public float getSampleFloat(int x, int y, int b, DataBuffer data) *************** public final class BandedSampleModel ext *** 362,382 **** int offset = bandOffsets[b] + y * scanlineStride + x; return data.getElemFloat(bankIndices[b], offset); } ! /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. ! * * @see #getSample(int, int, int, DataBuffer) */ public double getSampleDouble(int x, int y, int b, DataBuffer data) --- 362,382 ---- int offset = bandOffsets[b] + y * scanlineStride + x; return data.getElemFloat(bankIndices[b], offset); } ! /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. ! * * @see #getSample(int, int, int, DataBuffer) */ public double getSampleDouble(int x, int y, int b, DataBuffer data) *************** public final class BandedSampleModel ext *** 384,390 **** int offset = bandOffsets[b] + y * scanlineStride + x; return data.getElemDouble(bankIndices[b], offset); } ! /** * Copy one band's samples from a region into an array. * --- 384,390 ---- int offset = bandOffsets[b] + y * scanlineStride + x; return data.getElemDouble(bankIndices[b], offset); } ! /** * Copy one band's samples from a region into an array. * *************** public final class BandedSampleModel ext *** 406,431 **** * @return The primitive array containing the pixel data. */ public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, ! DataBuffer data) { if (x < 0 || y < 0) throw new ArrayIndexOutOfBoundsException( "x and y must not be less than 0."); ! if (iArray == null) iArray = new int[w * h]; int outOffset = 0; int maxX = x + w; int maxY = y + h; for (int yy = y; yy < maxY; yy++) { ! for (int xx = x; xx < maxX; xx++) ! { ! int offset = bandOffsets[b] + yy * scanlineStride + xx; ! iArray[outOffset++] = ! data.getElem(bankIndices[b], offset); ! } } ! return iArray; } /** --- 406,431 ---- * @return The primitive array containing the pixel data. */ public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, ! DataBuffer data) { if (x < 0 || y < 0) throw new ArrayIndexOutOfBoundsException( "x and y must not be less than 0."); ! if (iArray == null) iArray = new int[w * h]; int outOffset = 0; int maxX = x + w; int maxY = y + h; for (int yy = y; yy < maxY; yy++) { ! for (int xx = x; xx < maxX; xx++) ! { ! int offset = bandOffsets[b] + yy * scanlineStride + xx; ! iArray[outOffset++] = ! data.getElem(bankIndices[b], offset); ! } } ! return iArray; } /** *************** public final class BandedSampleModel ext *** 443,628 **** int transferType = getTransferType(); if (getTransferType() != data.getDataType()) { ! throw new IllegalArgumentException("transfer type ("+ ! getTransferType()+"), "+ ! "does not match data "+ ! "buffer type (" + ! data.getDataType() + ! ")."); } int offset = y * scanlineStride + x; ! try { ! switch (transferType) ! { ! case DataBuffer.TYPE_BYTE: ! { ! DataBufferByte out = (DataBufferByte) data; ! byte[] in = (byte[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_SHORT: ! { ! DataBufferShort out = (DataBufferShort) data; ! short[] in = (short[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_USHORT: ! { ! DataBufferUShort out = (DataBufferUShort) data; ! short[] in = (short[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_INT: ! { ! DataBufferInt out = (DataBufferInt) data; ! int[] in = (int[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_FLOAT: ! { ! DataBufferFloat out = (DataBufferFloat) data; ! float[] in = (float[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_DOUBLE: ! { ! DataBufferDouble out = (DataBufferDouble) data; ! double[] in = (double[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! default: ! throw new ClassCastException("Unsupported data type"); ! } } catch (ArrayIndexOutOfBoundsException aioobe) { ! String msg = "While writing data elements" ! + ", x=" + x + ", y=" + y ! + ", width=" + width + ", height=" + height ! + ", scanlineStride=" + scanlineStride ! + ", offset=" + offset ! + ", data.getSize()=" + data.getSize() ! + ", data.getOffset()=" + data.getOffset() + ": " + aioobe; ! throw new ArrayIndexOutOfBoundsException(msg); } } /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) { for (int b = 0; b < numBands; b++) data.setElem(bankIndices[b], bandOffsets[b] + y * scanlineStride + x, ! iArray[b]); } /** ! * Sets the sample values for the pixels in the region specified by * (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param iArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixels(int x, int y, int w, int h, int[] iArray, ! DataBuffer data) { int inOffset = 0; for (int hh = 0; hh < h; hh++) { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = y * scanlineStride + (x + ww); ! for (int b = 0; b < numBands; b++) ! data.setElem(bankIndices[b], bandOffsets[b] + offset, ! iArray[inOffset++]); ! } ! y++; } } /** * Sets the sample value for band b of the pixel at location * (x, y) in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param b the band index. * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @see #getSample(int, int, int, DataBuffer) */ public void setSample(int x, int y, int b, int s, DataBuffer data) { data.setElem(bankIndices[b], bandOffsets[b] + y * scanlineStride + x, s); } ! /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, float s, DataBuffer data) { ! data.setElemFloat(bankIndices[b], bandOffsets[b] + y * scanlineStride + x, s); } ! /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, double s, DataBuffer data) --- 443,628 ---- int transferType = getTransferType(); if (getTransferType() != data.getDataType()) { ! throw new IllegalArgumentException("transfer type ("+ ! getTransferType()+"), "+ ! "does not match data "+ ! "buffer type (" + ! data.getDataType() + ! ")."); } int offset = y * scanlineStride + x; ! try { ! switch (transferType) ! { ! case DataBuffer.TYPE_BYTE: ! { ! DataBufferByte out = (DataBufferByte) data; ! byte[] in = (byte[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_SHORT: ! { ! DataBufferShort out = (DataBufferShort) data; ! short[] in = (short[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_USHORT: ! { ! DataBufferUShort out = (DataBufferUShort) data; ! short[] in = (short[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_INT: ! { ! DataBufferInt out = (DataBufferInt) data; ! int[] in = (int[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_FLOAT: ! { ! DataBufferFloat out = (DataBufferFloat) data; ! float[] in = (float[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! case DataBuffer.TYPE_DOUBLE: ! { ! DataBufferDouble out = (DataBufferDouble) data; ! double[] in = (double[]) obj; ! for (int i = 0; i < numBands; i++) ! out.getData(bankIndices[i])[offset + bandOffsets[i]] = in[i]; ! return; ! } ! default: ! throw new ClassCastException("Unsupported data type"); ! } } catch (ArrayIndexOutOfBoundsException aioobe) { ! String msg = "While writing data elements" ! + ", x=" + x + ", y=" + y ! + ", width=" + width + ", height=" + height ! + ", scanlineStride=" + scanlineStride ! + ", offset=" + offset ! + ", data.getSize()=" + data.getSize() ! + ", data.getOffset()=" + data.getOffset() + ": " + aioobe; ! throw new ArrayIndexOutOfBoundsException(msg); } } /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) { for (int b = 0; b < numBands; b++) data.setElem(bankIndices[b], bandOffsets[b] + y * scanlineStride + x, ! iArray[b]); } /** ! * Sets the sample values for the pixels in the region specified by * (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param iArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixels(int x, int y, int w, int h, int[] iArray, ! DataBuffer data) { int inOffset = 0; for (int hh = 0; hh < h; hh++) { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = y * scanlineStride + (x + ww); ! for (int b = 0; b < numBands; b++) ! data.setElem(bankIndices[b], bandOffsets[b] + offset, ! iArray[inOffset++]); ! } ! y++; } } /** * Sets the sample value for band b of the pixel at location * (x, y) in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param b the band index. * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @see #getSample(int, int, int, DataBuffer) */ public void setSample(int x, int y, int b, int s, DataBuffer data) { data.setElem(bankIndices[b], bandOffsets[b] + y * scanlineStride + x, s); } ! /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, float s, DataBuffer data) { ! data.setElemFloat(bankIndices[b], bandOffsets[b] + y * scanlineStride + x, s); } ! /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, double s, DataBuffer data) *************** public final class BandedSampleModel ext *** 630,654 **** data.setElemDouble(bankIndices[b], bandOffsets[b] + y * scanlineStride + x, s); } ! /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the specified data buffer. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1
        ). * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setSamples(int x, int y, int w, int h, int b, int[] iArray, ! DataBuffer data) { if (x < 0 || y < 0) throw new ArrayIndexOutOfBoundsException( --- 630,654 ---- data.setElemDouble(bankIndices[b], bandOffsets[b] + y * scanlineStride + x, s); } ! /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the specified data buffer. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1
        ). * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setSamples(int x, int y, int w, int h, int b, int[] iArray, ! DataBuffer data) { if (x < 0 || y < 0) throw new ArrayIndexOutOfBoundsException( *************** public final class BandedSampleModel ext *** 658,738 **** switch (getTransferType()) { case DataBuffer.TYPE_BYTE: ! { ! DataBufferByte out = (DataBufferByte) data; ! byte[] bank = out.getData(bankIndices[b]); ! for (int hh = 0; hh < h; hh++) ! { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! bank[offset] = (byte)iArray[inOffset++]; ! } ! y++; ! } ! return; ! } case DataBuffer.TYPE_SHORT: ! { ! DataBufferShort out = (DataBufferShort) data; ! short[] bank = out.getData(bankIndices[b]); ! for (int hh = 0; hh < h; hh++) ! { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! bank[offset] = (short)iArray[inOffset++]; ! } ! y++; ! } ! return; ! } case DataBuffer.TYPE_USHORT: ! { ! DataBufferShort out = (DataBufferShort) data; ! short[] bank = out.getData(bankIndices[b]); ! for (int hh = 0; hh < h; hh++) ! { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! bank[offset] = (short)iArray[inOffset++]; ! } ! y++; ! } ! return; ! } case DataBuffer.TYPE_INT: ! { ! DataBufferInt out = (DataBufferInt) data; ! int[] bank = out.getData(bankIndices[b]); ! for (int hh = 0; hh < h; hh++) ! { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! bank[offset] = iArray[inOffset++]; ! } ! y++; ! } ! return; ! } case DataBuffer.TYPE_FLOAT: case DataBuffer.TYPE_DOUBLE: ! break; default: ! throw new ClassCastException("Unsupported data type"); } // Default implementation probably slower for float and double for (int hh = 0; hh < h; hh++) { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! data.setElem(bankIndices[b], offset, iArray[inOffset++]); ! } ! y++; } } --- 658,738 ---- switch (getTransferType()) { case DataBuffer.TYPE_BYTE: ! { ! DataBufferByte out = (DataBufferByte) data; ! byte[] bank = out.getData(bankIndices[b]); ! for (int hh = 0; hh < h; hh++) ! { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! bank[offset] = (byte)iArray[inOffset++]; ! } ! y++; ! } ! return; ! } case DataBuffer.TYPE_SHORT: ! { ! DataBufferShort out = (DataBufferShort) data; ! short[] bank = out.getData(bankIndices[b]); ! for (int hh = 0; hh < h; hh++) ! { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! bank[offset] = (short)iArray[inOffset++]; ! } ! y++; ! } ! return; ! } case DataBuffer.TYPE_USHORT: ! { ! DataBufferShort out = (DataBufferShort) data; ! short[] bank = out.getData(bankIndices[b]); ! for (int hh = 0; hh < h; hh++) ! { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! bank[offset] = (short)iArray[inOffset++]; ! } ! y++; ! } ! return; ! } case DataBuffer.TYPE_INT: ! { ! DataBufferInt out = (DataBufferInt) data; ! int[] bank = out.getData(bankIndices[b]); ! for (int hh = 0; hh < h; hh++) ! { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! bank[offset] = iArray[inOffset++]; ! } ! y++; ! } ! return; ! } case DataBuffer.TYPE_FLOAT: case DataBuffer.TYPE_DOUBLE: ! break; default: ! throw new ClassCastException("Unsupported data type"); } // Default implementation probably slower for float and double for (int hh = 0; hh < h; hh++) { ! for (int ww = 0; ww < w; ww++) ! { ! int offset = bandOffsets[b] + y * scanlineStride + (x + ww); ! data.setElem(bankIndices[b], offset, iArray[inOffset++]); ! } ! y++; } } *************** public final class BandedSampleModel ext *** 752,758 **** result.append(", mask[").append(i).append("]=0x").append( Integer.toHexString(bitMasks[i])); } ! result.append("]"); return result.toString(); } --- 752,758 ---- result.append(", mask[").append(i).append("]=0x").append( Integer.toHexString(bitMasks[i])); } ! result.append("]"); return result.toString(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/BufferedImage.java gcc-4.6.0/libjava/classpath/java/awt/image/BufferedImage.java *** gcc-4.5.2/libjava/classpath/java/awt/image/BufferedImage.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/BufferedImage.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 61,67 **** * the image consists of one large tile (0,0) with the width and * height of the image. This tile is always considered to be checked * out. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class BufferedImage extends Image --- 61,67 ---- * the image consists of one large tile (0,0) with the width and * height of the image. This tile is always considered to be checked * out. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class BufferedImage extends Image *************** public class BufferedImage extends Image *** 81,92 **** TYPE_USHORT_GRAY = 11, TYPE_BYTE_BINARY = 12, TYPE_BYTE_INDEXED = 13; ! /** * Vector of TileObservers (or null) */ Vector tileObservers; ! /** * The image's WritableRaster */ --- 81,92 ---- TYPE_USHORT_GRAY = 11, TYPE_BYTE_BINARY = 12, TYPE_BYTE_INDEXED = 13; ! /** * Vector of TileObservers (or null) */ Vector tileObservers; ! /** * The image's WritableRaster */ *************** public class BufferedImage extends Image *** 115,121 **** /** * Creates a new BufferedImage with the specified width, height * and type. Valid type values are: ! * *

          *
        • {@link #TYPE_INT_RGB}
        • *
        • {@link #TYPE_INT_ARGB}
        • --- 115,121 ---- /** * Creates a new BufferedImage with the specified width, height * and type. Valid type values are: ! * *
            *
          • {@link #TYPE_INT_RGB}
          • *
          • {@link #TYPE_INT_ARGB}
          • *************** public class BufferedImage extends Image *** 131,141 **** *
          • {@link #TYPE_BYTE_BINARY}
          • *
          • {@link #TYPE_BYTE_INDEXED}
          • *
          ! * * @param width the width (must be > 0). * @param height the height (must be > 0). * @param type the image type (see the list of valid types above). ! * * @throws IllegalArgumentException if width or * height is less than or equal to zero. * @throws IllegalArgumentException if type is not one of the --- 131,141 ---- *
        • {@link #TYPE_BYTE_BINARY}
        • *
        • {@link #TYPE_BYTE_INDEXED}
        • *
        ! * * @param width the width (must be > 0). * @param height the height (must be > 0). * @param type the image type (see the list of valid types above). ! * * @throws IllegalArgumentException if width or * height is less than or equal to zero. * @throws IllegalArgumentException if type is not one of the *************** public class BufferedImage extends Image *** 151,168 **** switch( type ) { case BufferedImage.TYPE_INT_RGB: ! sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, width, height, ! new int[]{ 0x00FF0000, ! 0x0000FF00, 0x000000FF } ) ; cm = new DirectColorModel( 24, 0xff0000, 0xff00, 0xff ); break; ! case BufferedImage.TYPE_3BYTE_BGR: sm = new PixelInterleavedSampleModel( DataBuffer.TYPE_BYTE, width, height, ! 3, width * 3, new int[]{ 2, 1, 0 } ); cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), false, false, --- 151,168 ---- switch( type ) { case BufferedImage.TYPE_INT_RGB: ! sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, width, height, ! new int[]{ 0x00FF0000, ! 0x0000FF00, 0x000000FF } ) ; cm = new DirectColorModel( 24, 0xff0000, 0xff00, 0xff ); break; ! case BufferedImage.TYPE_3BYTE_BGR: sm = new PixelInterleavedSampleModel( DataBuffer.TYPE_BYTE, width, height, ! 3, width * 3, new int[]{ 2, 1, 0 } ); cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), false, false, *************** public class BufferedImage extends Image *** 172,182 **** case BufferedImage.TYPE_INT_ARGB: case BufferedImage.TYPE_INT_ARGB_PRE: ! sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, width, height, ! new int[]{ 0x00FF0000, ! 0x0000FF00, ! 0x000000FF, 0xFF000000 } ); if (premultiplied) cm = new DirectColorModel( ColorSpace.getInstance(ColorSpace.CS_sRGB), --- 172,182 ---- case BufferedImage.TYPE_INT_ARGB: case BufferedImage.TYPE_INT_ARGB_PRE: ! sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, width, height, ! new int[]{ 0x00FF0000, ! 0x0000FF00, ! 0x000000FF, 0xFF000000 } ); if (premultiplied) cm = new DirectColorModel( ColorSpace.getInstance(ColorSpace.CS_sRGB), *************** public class BufferedImage extends Image *** 185,196 **** Buffers.smallestAppropriateTransferType(32)); else cm = new DirectColorModel( 32, 0xff0000, 0xff00, 0xff, 0xff000000 ); ! break; case BufferedImage.TYPE_4BYTE_ABGR: case BufferedImage.TYPE_4BYTE_ABGR_PRE: ! sm = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, width, height, 4, 4*width, new int[]{3, 2, 1, 0}); --- 185,196 ---- Buffers.smallestAppropriateTransferType(32)); else cm = new DirectColorModel( 32, 0xff0000, 0xff00, 0xff, 0xff000000 ); ! break; case BufferedImage.TYPE_4BYTE_ABGR: case BufferedImage.TYPE_4BYTE_ABGR_PRE: ! sm = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, width, height, 4, 4*width, new int[]{3, 2, 1, 0}); *************** public class BufferedImage extends Image *** 201,210 **** break; case BufferedImage.TYPE_INT_BGR: ! sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, width, height, ! new int[]{ 0x000000FF, ! 0x0000FF00, 0x00FF0000 } ) ; cm = new DirectColorModel( 24, 0xff, 0xff00, 0xff0000 ); break; --- 201,210 ---- break; case BufferedImage.TYPE_INT_BGR: ! sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, width, height, ! new int[]{ 0x000000FF, ! 0x0000FF00, 0x00FF0000 } ) ; cm = new DirectColorModel( 24, 0xff, 0xff00, 0xff0000 ); break; *************** public class BufferedImage extends Image *** 212,228 **** case BufferedImage.TYPE_USHORT_565_RGB: sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_USHORT, width, height, ! new int[]{ 0xF800, ! 0x7E0, 0x1F } ) ; cm = new DirectColorModel( 16, 0xF800, 0x7E0, 0x1F ); break; ! case BufferedImage.TYPE_USHORT_555_RGB: sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_USHORT, width, height, ! new int[]{ 0x7C00, ! 0x3E0, 0x1F } ) ; cm = new DirectColorModel( 15, 0x7C00, 0x3E0, 0x1F ); break; --- 212,228 ---- case BufferedImage.TYPE_USHORT_565_RGB: sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_USHORT, width, height, ! new int[]{ 0xF800, ! 0x7E0, 0x1F } ) ; cm = new DirectColorModel( 16, 0xF800, 0x7E0, 0x1F ); break; ! case BufferedImage.TYPE_USHORT_555_RGB: sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_USHORT, width, height, ! new int[]{ 0x7C00, ! 0x3E0, 0x1F } ) ; cm = new DirectColorModel( 15, 0x7C00, 0x3E0, 0x1F ); break; *************** public class BufferedImage extends Image *** 244,250 **** case BufferedImage.TYPE_BYTE_BINARY: cm = createDefaultIndexedColorModel( true ); ! sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, width, height, 1); break; --- 244,250 ---- case BufferedImage.TYPE_BYTE_BINARY: cm = createDefaultIndexedColorModel( true ); ! sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, width, height, 1); break; *************** public class BufferedImage extends Image *** 254,261 **** if( sm == null ) throw new IllegalArgumentException("Unknown predefined image type."); ! ! if( cm == null ) // only for the grayscale types { int buftype; int[] bits = new int[1]; --- 254,261 ---- if( sm == null ) throw new IllegalArgumentException("Unknown predefined image type."); ! ! if( cm == null ) // only for the grayscale types { int buftype; int[] bits = new int[1]; *************** public class BufferedImage extends Image *** 270,291 **** bits[0] = 16; } ColorSpace graySpace = ColorSpace.getInstance( ColorSpace.CS_GRAY ); ! ! cm = new ComponentColorModel( graySpace, bits, false, false, Transparency.OPAQUE, buftype ); } WritableRaster rst = null; ! // Attempt to create an accelerated backend for this image GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); if (env instanceof ClasspathGraphicsEnvironment) rst = ((ClasspathGraphicsEnvironment)env).createRaster(cm, sm); ! // Default to a standard Java raster & databuffer if needed if (rst == null) rst = Raster.createWritableRaster(sm, new Point( 0, 0 ) ); ! init(cm, rst, premultiplied, null, // no properties type ); --- 270,291 ---- bits[0] = 16; } ColorSpace graySpace = ColorSpace.getInstance( ColorSpace.CS_GRAY ); ! ! cm = new ComponentColorModel( graySpace, bits, false, false, Transparency.OPAQUE, buftype ); } WritableRaster rst = null; ! // Attempt to create an accelerated backend for this image GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); if (env instanceof ClasspathGraphicsEnvironment) rst = ((ClasspathGraphicsEnvironment)env).createRaster(cm, sm); ! // Default to a standard Java raster & databuffer if needed if (rst == null) rst = Raster.createWritableRaster(sm, new Point( 0, 0 ) ); ! init(cm, rst, premultiplied, null, // no properties type ); *************** public class BufferedImage extends Image *** 308,320 **** } public BufferedImage(ColorModel colormodel, WritableRaster writableraster, ! boolean premultiplied, Hashtable properties) { init(colormodel, writableraster, premultiplied, properties, TYPE_CUSTOM); } - ! private void init(ColorModel cm, WritableRaster writableraster, boolean premultiplied, Hashtable properties, int type) { raster = writableraster; --- 308,320 ---- } public BufferedImage(ColorModel colormodel, WritableRaster writableraster, ! boolean premultiplied, Hashtable properties) { init(colormodel, writableraster, premultiplied, properties, TYPE_CUSTOM); } ! ! private void init(ColorModel cm, WritableRaster writableraster, boolean premultiplied, Hashtable properties, int type) { raster = writableraster; *************** public class BufferedImage extends Image *** 330,336 **** * * @param binary - If true, a black and white palette, * otherwise a default 256-color palette is returned. ! */ private IndexColorModel createDefaultIndexedColorModel( boolean binary ) { if( binary ) --- 330,336 ---- * * @param binary - If true, a black and white palette, * otherwise a default 256-color palette is returned. ! */ private IndexColorModel createDefaultIndexedColorModel( boolean binary ) { if( binary ) *************** public class BufferedImage extends Image *** 342,348 **** byte[] r = new byte[256]; byte[] g = new byte[256]; byte[] b = new byte[256]; ! int index = 0; for( int i = 0; i < 6; i++ ) for( int j = 0; j < 6; j++ ) --- 342,348 ---- byte[] r = new byte[256]; byte[] g = new byte[256]; byte[] b = new byte[256]; ! int index = 0; for( int i = 0; i < 6; i++ ) for( int j = 0; j < 6; j++ ) *************** public class BufferedImage extends Image *** 353,369 **** b[ index ] = (byte)(k * 51); index++; } ! while( index < 256 ) { ! r[ index ] = g[ index ] = b[ index ] = (byte)(18 + (index - 216) * 6); index++; } ! return new IndexColorModel( 8, 256, r, g, b ); } ! public void coerceData(boolean premultiplied) { colorModel = colorModel.coerceData(raster, premultiplied); --- 353,369 ---- b[ index ] = (byte)(k * 51); index++; } ! while( index < 256 ) { ! r[ index ] = g[ index ] = b[ index ] = (byte)(18 + (index - 216) * 6); index++; } ! return new IndexColorModel( 8, 256, r, g, b ); } ! public void coerceData(boolean premultiplied) { colorModel = colorModel.coerceData(raster, premultiplied); *************** public class BufferedImage extends Image *** 380,396 **** int y = dest.getMinY(); int w = dest.getWidth(); int h = dest.getHeight(); ! // create a src child that has the right bounds... WritableRaster src = raster.createWritableChild(x, y, w, h, x, y, null); // same bands ! if (src.getSampleModel () instanceof ComponentSampleModel && dest.getSampleModel () instanceof ComponentSampleModel) // Refer to ComponentDataBlitOp for optimized data blitting: ComponentDataBlitOp.INSTANCE.filter(src, dest); ! else { // slower path --- 380,396 ---- int y = dest.getMinY(); int w = dest.getWidth(); int h = dest.getHeight(); ! // create a src child that has the right bounds... WritableRaster src = raster.createWritableChild(x, y, w, h, x, y, null); // same bands ! if (src.getSampleModel () instanceof ComponentSampleModel && dest.getSampleModel () instanceof ComponentSampleModel) // Refer to ComponentDataBlitOp for optimized data blitting: ComponentDataBlitOp.INSTANCE.filter(src, dest); ! else { // slower path *************** public class BufferedImage extends Image *** 410,426 **** public void flush() { } ! public WritableRaster getAlphaRaster() { return colorModel.getAlphaRaster(raster); } ! public ColorModel getColorModel() { return colorModel; } ! public Raster getData() { return copyData(null); --- 410,426 ---- public void flush() { } ! public WritableRaster getAlphaRaster() { return colorModel.getAlphaRaster(raster); } ! public ColorModel getColorModel() { return colorModel; } ! public Raster getData() { return copyData(null); *************** public class BufferedImage extends Image *** 434,440 **** raster.createCompatibleWritableRaster(rectangle); return copyData(dest); } ! public Graphics getGraphics() { return createGraphics(); --- 434,440 ---- raster.createCompatibleWritableRaster(rectangle); return copyData(dest); } ! public Graphics getGraphics() { return createGraphics(); *************** public class BufferedImage extends Image *** 444,460 **** { return raster.getHeight(); } ! public int getHeight(ImageObserver imageobserver) { return getHeight(); } ! public int getMinTileX() { return 0; } ! public int getMinTileY() { return 0; --- 444,460 ---- { return raster.getHeight(); } ! public int getHeight(ImageObserver imageobserver) { return getHeight(); } ! public int getMinTileX() { return 0; } ! public int getMinTileY() { return 0; *************** public class BufferedImage extends Image *** 462,475 **** public int getMinX() { ! return 0; } ! public int getMinY() { return 0; } ! public int getNumXTiles() { return 1; --- 462,475 ---- public int getMinX() { ! return 0; } ! public int getMinY() { return 0; } ! public int getNumXTiles() { return 1; *************** public class BufferedImage extends Image *** 477,493 **** public int getNumYTiles() { ! return 1; } /** ! * Returns the value of the specified property, or * {@link Image#UndefinedProperty} if the property is not defined. ! * * @param string the property key (null not permitted). ! * * @return The property value. ! * * @throws NullPointerException if string is null. */ public Object getProperty(String string) --- 477,493 ---- public int getNumYTiles() { ! return 1; } /** ! * Returns the value of the specified property, or * {@link Image#UndefinedProperty} if the property is not defined. ! * * @param string the property key (null not permitted). ! * * @return The property value. ! * * @throws NullPointerException if string is null. */ public Object getProperty(String string) *************** public class BufferedImage extends Image *** 511,517 **** /** * Returns null always. ! * * @return null always. */ public String[] getPropertyNames() --- 511,517 ---- /** * Returns null always. ! * * @return null always. */ public String[] getPropertyNames() *************** public class BufferedImage extends Image *** 526,554 **** Object rgbElem = raster.getDataElements(x, y, null); return colorModel.getRGB(rgbElem); } ! public int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scanlineStride) { if (rgbArray == null) { /* ! 000000000000000000 ! 00000[#######----- [ = start ! -----########----- ] = end ! -----#######]00000 ! 000000000000000000 */ int size = (h-1)*scanlineStride + w; rgbArray = new int[size]; } ! int endX = startX + w; int endY = startY + h; ! /* *TODO*: Opportunity for optimization by examining color models... ! Perhaps wrap the rgbArray up in a WritableRaster with packed sRGB color model and perform optimized rendering into the array. */ --- 526,554 ---- Object rgbElem = raster.getDataElements(x, y, null); return colorModel.getRGB(rgbElem); } ! public int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scanlineStride) { if (rgbArray == null) { /* ! 000000000000000000 ! 00000[#######----- [ = start ! -----########----- ] = end ! -----#######]00000 ! 000000000000000000 */ int size = (h-1)*scanlineStride + w; rgbArray = new int[size]; } ! int endX = startX + w; int endY = startY + h; ! /* *TODO*: Opportunity for optimization by examining color models... ! Perhaps wrap the rgbArray up in a WritableRaster with packed sRGB color model and perform optimized rendering into the array. */ *************** public class BufferedImage extends Image *** 573,584 **** { return raster; } ! public SampleModel getSampleModel() { return raster.getSampleModel(); } ! public ImageProducer getSource() { return new ImageProducer() --- 573,584 ---- { return raster; } ! public SampleModel getSampleModel() { return raster.getSampleModel(); } ! public ImageProducer getSource() { return new ImageProducer() *************** public class BufferedImage extends Image *** 609,616 **** int height = getHeight(); int stride = width; int offset = 0; ! int[] pixels = getRGB(x, y, ! width, height, (int[])null, offset, stride); // We already convert the color to RGB in the getRGB call, so // we pass a simple RGB color model to the consumers. --- 609,616 ---- int height = getHeight(); int stride = width; int offset = 0; ! int[] pixels = getRGB(x, y, ! width, height, (int[])null, offset, stride); // We already convert the color to RGB in the getRGB call, so // we pass a simple RGB color model to the consumers. *************** public class BufferedImage extends Image *** 636,652 **** }; } ! public Vector getSources() { return null; } ! public BufferedImage getSubimage(int x, int y, int w, int h) { ! WritableRaster subRaster = getRaster().createWritableChild(x, y, w, h, 0, 0, null); ! return new BufferedImage(getColorModel(), subRaster, isPremultiplied, properties); } --- 636,652 ---- }; } ! public Vector getSources() { return null; } ! public BufferedImage getSubimage(int x, int y, int w, int h) { ! WritableRaster subRaster = getRaster().createWritableChild(x, y, w, h, 0, 0, null); ! return new BufferedImage(getColorModel(), subRaster, isPremultiplied, properties); } *************** public class BufferedImage extends Image *** 655,661 **** { return getWritableTile(tileX, tileY); } ! public int getTileGridXOffset() { return 0; // according to javadocs --- 655,661 ---- { return getWritableTile(tileX, tileY); } ! public int getTileGridXOffset() { return 0; // according to javadocs *************** public class BufferedImage extends Image *** 698,704 **** } private static final Point[] tileIndices = { new Point() }; ! public Point[] getWritableTileIndices() { return tileIndices; --- 698,704 ---- } private static final Point[] tileIndices = { new Point() }; ! public Point[] getWritableTileIndices() { return tileIndices; *************** public class BufferedImage extends Image *** 708,714 **** { return true; } ! public boolean isAlphaPremultiplied() { return isPremultiplied; --- 708,714 ---- { return true; } ! public boolean isAlphaPremultiplied() { return isPremultiplied; *************** public class BufferedImage extends Image *** 734,740 **** int y = src.getMinY(); int w = src.getWidth(); int h = src.getHeight(); ! // create a dest child that has the right bounds... WritableRaster dest = raster.createWritableChild(x, y, w, h, x, y, null); --- 734,740 ---- int y = src.getMinY(); int w = src.getWidth(); int h = src.getHeight(); ! // create a dest child that has the right bounds... WritableRaster dest = raster.createWritableChild(x, y, w, h, x, y, null); *************** public class BufferedImage extends Image *** 757,769 **** Object rgbElem = colorModel.getDataElements(argb, null); raster.setDataElements(x, y, rgbElem); } ! public void setRGB(int startX, int startY, int w, int h, ! int[] argbArray, int offset, int scanlineStride) { int endX = startX + w; int endY = startY + h; ! Object rgbElem = null; for (int y=startY; y(); ! tileObservers.add (to); } ! /** * Removes a tile observer. If the observer was not registered, * nothing happens. If the observer was registered for multiple --- 806,815 ---- { if (tileObservers == null) tileObservers = new Vector(); ! tileObservers.add (to); } ! /** * Removes a tile observer. If the observer was not registered, * nothing happens. If the observer was registered for multiple *************** public class BufferedImage extends Image *** 821,827 **** { if (tileObservers == null) return; ! tileObservers.remove (to); } --- 821,827 ---- { if (tileObservers == null) return; ! tileObservers.remove (to); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/BufferedImageFilter.java gcc-4.6.0/libjava/classpath/java/awt/image/BufferedImageFilter.java *** gcc-4.5.2/libjava/classpath/java/awt/image/BufferedImageFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/BufferedImageFilter.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Point; *** 40,49 **** /** * The BufferedImageFilter class wraps BufferedImageOp objects in a Filter. ! * * When pixels are pushed through the filter, we create a BufferedImage, * apply the BufferedImageOp, and pass the filtered pixels to the base class. ! * * @author jlquinn@optonline.net */ public class BufferedImageFilter extends ImageFilter implements Cloneable --- 40,49 ---- /** * The BufferedImageFilter class wraps BufferedImageOp objects in a Filter. ! * * When pixels are pushed through the filter, we create a BufferedImage, * apply the BufferedImageOp, and pass the filtered pixels to the base class. ! * * @author jlquinn@optonline.net */ public class BufferedImageFilter extends ImageFilter implements Cloneable *************** public class BufferedImageFilter extends *** 51,67 **** private BufferedImageOp op; /** ! * */ public BufferedImageFilter(BufferedImageOp op) { super(); if (op == null) throw new NullPointerException("BufferedImageFilter null" ! + " op in constructor"); this.op = op; } ! /** * @return Returns the contained BufferedImageOp. */ --- 51,67 ---- private BufferedImageOp op; /** ! * */ public BufferedImageFilter(BufferedImageOp op) { super(); if (op == null) throw new NullPointerException("BufferedImageFilter null" ! + " op in constructor"); this.op = op; } ! /** * @return Returns the contained BufferedImageOp. */ *************** public class BufferedImageFilter extends *** 74,80 **** // create a compatible sample model that incorporates scansize != w. I // asume off is handled by the db itself. public void setPixels(int x, int y, int w, int h, ColorModel model, ! byte[] pixels, int off, int scansize) { // Create an input BufferedImage DataBufferByte db = new DataBufferByte(pixels, scansize * h + off, off); --- 74,80 ---- // create a compatible sample model that incorporates scansize != w. I // asume off is handled by the db itself. public void setPixels(int x, int y, int w, int h, ColorModel model, ! byte[] pixels, int off, int scansize) { // Create an input BufferedImage DataBufferByte db = new DataBufferByte(pixels, scansize * h + off, off); *************** public class BufferedImageFilter extends *** 84,99 **** new BufferedImage(model, wr, model.isAlphaPremultiplied(), null); BufferedImage out = op.createCompatibleDestImage(in, model); op.filter(in, out); ! DataBuffer dbout = out.getRaster().getDataBuffer(); super.setPixels(0, 0, w, h, model, ((DataBufferByte)dbout).getData(), 0, ! scansize); } // FIXME: Definitely not sure this is the right thing. I'm not sure how // to create a compatible sample model that incorporates // scansize != w. I asume off is handled by the db itself. public void setPixels(int x, int y, int w, int h, ColorModel model, ! int[] pixels, int off, int scansize) { // Create an input BufferedImage DataBufferInt db = new DataBufferInt(pixels, scansize * h + off, off); --- 84,99 ---- new BufferedImage(model, wr, model.isAlphaPremultiplied(), null); BufferedImage out = op.createCompatibleDestImage(in, model); op.filter(in, out); ! DataBuffer dbout = out.getRaster().getDataBuffer(); super.setPixels(0, 0, w, h, model, ((DataBufferByte)dbout).getData(), 0, ! scansize); } // FIXME: Definitely not sure this is the right thing. I'm not sure how // to create a compatible sample model that incorporates // scansize != w. I asume off is handled by the db itself. public void setPixels(int x, int y, int w, int h, ColorModel model, ! int[] pixels, int off, int scansize) { // Create an input BufferedImage DataBufferInt db = new DataBufferInt(pixels, scansize * h + off, off); *************** public class BufferedImageFilter extends *** 103,110 **** new BufferedImage(model, wr, model.isAlphaPremultiplied(), null); BufferedImage out = op.createCompatibleDestImage(in, model); op.filter(in, out); ! DataBuffer dbout = out.getRaster().getDataBuffer(); super.setPixels(0, 0, w, h, model, ((DataBufferInt)dbout).getData(), 0, ! scansize); } } --- 103,110 ---- new BufferedImage(model, wr, model.isAlphaPremultiplied(), null); BufferedImage out = op.createCompatibleDestImage(in, model); op.filter(in, out); ! DataBuffer dbout = out.getRaster().getDataBuffer(); super.setPixels(0, 0, w, h, model, ((DataBufferInt)dbout).getData(), 0, ! scansize); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/BufferedImageOp.java gcc-4.6.0/libjava/classpath/java/awt/image/BufferedImageOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/BufferedImageOp.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/image/BufferedImageOp.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BufferedImageOp.java -- Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BufferedImageOp.java -- Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.awt.geom.Point2D; *** 43,107 **** import java.awt.geom.Rectangle2D; /** ! * An operation that is performed on one BufferedImage (the * source) producing a new BufferedImage (the destination). */ public interface BufferedImageOp { /** * Performs an operation on the source image, returning the result in a ! * BufferedImage. If dest is null, a * new BufferedImage will be created by calling the * {@link #createCompatibleDestImage} method. If dest ! * is not null, the result is written to dest then ! * returned (this avoids creating a new BufferedImage each * time this method is called). ! * * @param src the source image. * @param dst the destination image (null permitted). ! * * @return The filterd image. */ BufferedImage filter(BufferedImage src, BufferedImage dst); ! /** * Returns the bounds of the destination image on the basis of this * BufferedImageOp being applied to the specified source image. ! * * @param src the source image. ! * * @return The destination bounds. */ Rectangle2D getBounds2D(BufferedImage src); ! /** ! * Returns a new BufferedImage that can be used by this ! * BufferedImageOp as the destination image when filtering * the specified source image. ! * * @param src the source image. * @param dstCM the color model for the destination image. ! * * @return A new image that can be used as the destination image. */ BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel dstCM); ! /** * Returns the point on the destination image that corresponds to the given * point on the source image. ! * * @param src the source point. * @param dst the destination point (null permitted). ! * * @return The destination point. */ Point2D getPoint2D(Point2D src, Point2D dst); ! /** * Returns the rendering hints for this operation. ! * * @return The rendering hints. */ RenderingHints getRenderingHints(); ! ! } --- 43,107 ---- import java.awt.geom.Rectangle2D; /** ! * An operation that is performed on one BufferedImage (the * source) producing a new BufferedImage (the destination). */ public interface BufferedImageOp { /** * Performs an operation on the source image, returning the result in a ! * BufferedImage. If dest is null, a * new BufferedImage will be created by calling the * {@link #createCompatibleDestImage} method. If dest ! * is not null, the result is written to dest then ! * returned (this avoids creating a new BufferedImage each * time this method is called). ! * * @param src the source image. * @param dst the destination image (null permitted). ! * * @return The filterd image. */ BufferedImage filter(BufferedImage src, BufferedImage dst); ! /** * Returns the bounds of the destination image on the basis of this * BufferedImageOp being applied to the specified source image. ! * * @param src the source image. ! * * @return The destination bounds. */ Rectangle2D getBounds2D(BufferedImage src); ! /** ! * Returns a new BufferedImage that can be used by this ! * BufferedImageOp as the destination image when filtering * the specified source image. ! * * @param src the source image. * @param dstCM the color model for the destination image. ! * * @return A new image that can be used as the destination image. */ BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel dstCM); ! /** * Returns the point on the destination image that corresponds to the given * point on the source image. ! * * @param src the source point. * @param dst the destination point (null permitted). ! * * @return The destination point. */ Point2D getPoint2D(Point2D src, Point2D dst); ! /** * Returns the rendering hints for this operation. ! * * @return The rendering hints. */ RenderingHints getRenderingHints(); ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ByteLookupTable.java gcc-4.6.0/libjava/classpath/java/awt/image/ByteLookupTable.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ByteLookupTable.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/image/ByteLookupTable.java Tue Jan 11 19:46:05 2011 *************** public class ByteLookupTable extends Loo *** 58,64 **** * Offset is subtracted from pixel values when looking up in the translation * tables. If data.length is one, the same table is applied to all pixel * components. ! * * @param offset Offset to be subtracted. * @param data Array of lookup tables (null not permitted). * @exception IllegalArgumentException if offset < 0 or data.length < 1. --- 58,64 ---- * Offset is subtracted from pixel values when looking up in the translation * tables. If data.length is one, the same table is applied to all pixel * components. ! * * @param offset Offset to be subtracted. * @param data Array of lookup tables (null not permitted). * @exception IllegalArgumentException if offset < 0 or data.length < 1. *************** public class ByteLookupTable extends Loo *** 67,75 **** throws IllegalArgumentException { super(offset, data.length); ! // tests show that Sun's implementation creates a new array to store the ! // references from the incoming 'data' array - not sure why, but we'll // match that behaviour just in case it matters... this.data = new byte[data.length][]; for (int i = 0; i < data.length; i++) --- 67,75 ---- throws IllegalArgumentException { super(offset, data.length); ! // tests show that Sun's implementation creates a new array to store the ! // references from the incoming 'data' array - not sure why, but we'll // match that behaviour just in case it matters... this.data = new byte[data.length][]; for (int i = 0; i < data.length; i++) *************** public class ByteLookupTable extends Loo *** 81,89 **** * * Offset is subtracted from pixel values when looking up in the translation * table. The same table is applied to all pixel components. ! * * @param offset Offset to be subtracted. ! * @param data Lookup table for all components (null not * permitted). * @exception IllegalArgumentException if offset < 0. */ --- 81,89 ---- * * Offset is subtracted from pixel values when looking up in the translation * table. The same table is applied to all pixel components. ! * * @param offset Offset to be subtracted. ! * @param data Lookup table for all components (null not * permitted). * @exception IllegalArgumentException if offset < 0. */ *************** public class ByteLookupTable extends Loo *** 131,141 **** if (data.length == 1) for (int i=0; i < src.length; i++) ! dst[i] = data[0][src[i] - offset]; else for (int i=0; i < src.length; i++) ! dst[i] = data[i][src[i] - offset]; ! return dst; } --- 131,141 ---- if (data.length == 1) for (int i=0; i < src.length; i++) ! dst[i] = data[0][src[i] - offset]; else for (int i=0; i < src.length; i++) ! dst[i] = data[i][src[i] - offset]; ! return dst; } *************** public class ByteLookupTable extends Loo *** 164,174 **** if (data.length == 1) for (int i=0; i < src.length; i++) ! dst[i] = data[0][((int)src[i]) - offset]; else for (int i=0; i < src.length; i++) ! dst[i] = data[i][((int)src[i]) - offset]; ! return dst; } --- 164,174 ---- if (data.length == 1) for (int i=0; i < src.length; i++) ! dst[i] = data[0][((int)src[i]) - offset]; else for (int i=0; i < src.length; i++) ! dst[i] = data[i][((int)src[i]) - offset]; ! return dst; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ColorConvertOp.java gcc-4.6.0/libjava/classpath/java/awt/image/ColorConvertOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ColorConvertOp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/ColorConvertOp.java Tue Jan 11 19:46:05 2011 *************** import java.awt.geom.Rectangle2D; *** 51,67 **** /** * ColorConvertOp is a filter for converting images or rasters between ! * colorspaces, either through a sequence of colorspaces or just from source to * destination. ! * * Color conversion is done on the color components without alpha. Thus * if a BufferedImage has alpha premultiplied, this is divided out before * color conversion, and premultiplication applied if the destination * requires it. ! * * Color rendering and dithering hints may be applied if specified. This is * likely platform-dependent. ! * * @author jlquinn@optonline.net */ public class ColorConvertOp implements BufferedImageOp, RasterOp --- 51,67 ---- /** * ColorConvertOp is a filter for converting images or rasters between ! * colorspaces, either through a sequence of colorspaces or just from source to * destination. ! * * Color conversion is done on the color components without alpha. Thus * if a BufferedImage has alpha premultiplied, this is divided out before * color conversion, and premultiplication applied if the destination * requires it. ! * * Color rendering and dithering hints may be applied if specified. This is * likely platform-dependent. ! * * @author jlquinn@optonline.net */ public class ColorConvertOp implements BufferedImageOp, RasterOp *************** public class ColorConvertOp implements B *** 69,84 **** private RenderingHints hints; private ICC_Profile[] profiles = null; private ColorSpace[] spaces; ! /** * Convert a BufferedImage through a ColorSpace. ! * * Objects created with this constructor can be used to convert * BufferedImage's to a destination ColorSpace. Attempts to convert Rasters * with this constructor will result in an IllegalArgumentException when the ! * filter(Raster, WritableRaster) method is called. ! * * @param cspace The target color space. * @param hints Rendering hints to use in conversion, if any (may be null) * @throws NullPointerException if the ColorSpace is null. --- 69,84 ---- private RenderingHints hints; private ICC_Profile[] profiles = null; private ColorSpace[] spaces; ! /** * Convert a BufferedImage through a ColorSpace. ! * * Objects created with this constructor can be used to convert * BufferedImage's to a destination ColorSpace. Attempts to convert Rasters * with this constructor will result in an IllegalArgumentException when the ! * filter(Raster, WritableRaster) method is called. ! * * @param cspace The target color space. * @param hints Rendering hints to use in conversion, if any (may be null) * @throws NullPointerException if the ColorSpace is null. *************** public class ColorConvertOp implements B *** 90,142 **** spaces = new ColorSpace[]{cspace}; this.hints = hints; } ! /** * Convert from a source colorspace to a destination colorspace. ! * * This constructor takes two ColorSpace arguments as the source and * destination color spaces. It is usually used with the ! * filter(Raster, WritableRaster) method, in which case the source colorspace ! * is assumed to correspond to the source Raster, and the destination * colorspace with the destination Raster. ! * ! * If used with BufferedImages that do not match the source or destination ! * colorspaces specified here, there is an implicit conversion from the ! * source image to the source ColorSpace, or the destination ColorSpace to * the destination image. ! * * @param srcCspace The source ColorSpace. * @param dstCspace The destination ColorSpace. * @param hints Rendering hints to use in conversion, if any (may be null). * @throws NullPointerException if any ColorSpace is null. */ public ColorConvertOp(ColorSpace srcCspace, ColorSpace dstCspace, ! RenderingHints hints) { if (srcCspace == null || dstCspace == null) throw new NullPointerException(); spaces = new ColorSpace[]{srcCspace, dstCspace}; ! this.hints = hints; } /** * Convert from a source colorspace to a destinatino colorspace. ! * * This constructor builds a ColorConvertOp from an array of ICC_Profiles. * The source will be converted through the sequence of color spaces * defined by the profiles. If the sequence of profiles doesn't give a * well-defined conversion, an IllegalArgumentException is thrown. ! * ! * If used with BufferedImages that do not match the source or destination ! * colorspaces specified here, there is an implicit conversion from the ! * source image to the source ColorSpace, or the destination ColorSpace to * the destination image. ! * * For Rasters, the first and last profiles must have the same number of * bands as the source and destination Rasters, respectively. If this is * not the case, or there fewer than 2 profiles, an IllegalArgumentException ! * will be thrown. ! * * @param profiles An array of ICC_Profile's to convert through. * @param hints Rendering hints to use in conversion, if any (may be null). * @throws NullPointerException if the profile array is null. --- 90,142 ---- spaces = new ColorSpace[]{cspace}; this.hints = hints; } ! /** * Convert from a source colorspace to a destination colorspace. ! * * This constructor takes two ColorSpace arguments as the source and * destination color spaces. It is usually used with the ! * filter(Raster, WritableRaster) method, in which case the source colorspace ! * is assumed to correspond to the source Raster, and the destination * colorspace with the destination Raster. ! * ! * If used with BufferedImages that do not match the source or destination ! * colorspaces specified here, there is an implicit conversion from the ! * source image to the source ColorSpace, or the destination ColorSpace to * the destination image. ! * * @param srcCspace The source ColorSpace. * @param dstCspace The destination ColorSpace. * @param hints Rendering hints to use in conversion, if any (may be null). * @throws NullPointerException if any ColorSpace is null. */ public ColorConvertOp(ColorSpace srcCspace, ColorSpace dstCspace, ! RenderingHints hints) { if (srcCspace == null || dstCspace == null) throw new NullPointerException(); spaces = new ColorSpace[]{srcCspace, dstCspace}; ! this.hints = hints; } /** * Convert from a source colorspace to a destinatino colorspace. ! * * This constructor builds a ColorConvertOp from an array of ICC_Profiles. * The source will be converted through the sequence of color spaces * defined by the profiles. If the sequence of profiles doesn't give a * well-defined conversion, an IllegalArgumentException is thrown. ! * ! * If used with BufferedImages that do not match the source or destination ! * colorspaces specified here, there is an implicit conversion from the ! * source image to the source ColorSpace, or the destination ColorSpace to * the destination image. ! * * For Rasters, the first and last profiles must have the same number of * bands as the source and destination Rasters, respectively. If this is * not the case, or there fewer than 2 profiles, an IllegalArgumentException ! * will be thrown. ! * * @param profiles An array of ICC_Profile's to convert through. * @param hints Rendering hints to use in conversion, if any (may be null). * @throws NullPointerException if the profile array is null. *************** public class ColorConvertOp implements B *** 147,156 **** { if (profiles == null) throw new NullPointerException(); ! ! this.hints = hints; this.profiles = profiles; ! // Create colorspace array with space for src and dest colorspace // Note that the ICC_ColorSpace constructor will throw an // IllegalArgumentException if the profile is invalid; thus we check --- 147,156 ---- { if (profiles == null) throw new NullPointerException(); ! ! this.hints = hints; this.profiles = profiles; ! // Create colorspace array with space for src and dest colorspace // Note that the ICC_ColorSpace constructor will throw an // IllegalArgumentException if the profile is invalid; thus we check *************** public class ColorConvertOp implements B *** 159,175 **** for (int i = 0; i < profiles.length; i++) spaces[i] = new ICC_ColorSpace(profiles[i]); } ! /** * Convert from source color space to destination color space. ! * * Only valid for BufferedImage objects, this Op converts from the source * image's color space to the destination image's color space. ! * ! * The destination in the filter(BufferedImage, BufferedImage) method cannot * be null for this operation, and it also cannot be used with the * filter(Raster, WritableRaster) method. ! * * @param hints Rendering hints to use in conversion, if any (may be null). */ public ColorConvertOp(RenderingHints hints) --- 159,175 ---- for (int i = 0; i < profiles.length; i++) spaces[i] = new ICC_ColorSpace(profiles[i]); } ! /** * Convert from source color space to destination color space. ! * * Only valid for BufferedImage objects, this Op converts from the source * image's color space to the destination image's color space. ! * ! * The destination in the filter(BufferedImage, BufferedImage) method cannot * be null for this operation, and it also cannot be used with the * filter(Raster, WritableRaster) method. ! * * @param hints Rendering hints to use in conversion, if any (may be null). */ public ColorConvertOp(RenderingHints hints) *************** public class ColorConvertOp implements B *** 177,188 **** this.hints = hints; spaces = new ColorSpace[0]; } ! /** * Converts the source image using the conversion path specified in the * constructor. The resulting image is stored in the destination image if one ! * is provided; otherwise a new BufferedImage is created and returned. ! * * The source and destination BufferedImage (if one is supplied) must have * the same dimensions. * --- 177,188 ---- this.hints = hints; spaces = new ColorSpace[0]; } ! /** * Converts the source image using the conversion path specified in the * constructor. The resulting image is stored in the destination image if one ! * is provided; otherwise a new BufferedImage is created and returned. ! * * The source and destination BufferedImage (if one is supplied) must have * the same dimensions. * *************** public class ColorConvertOp implements B *** 196,202 **** { // TODO: The plan is to create a scanline buffer for intermediate buffers. // For now we just suck it up and create intermediate buffers. ! if (dst == null && spaces.length == 0) throw new IllegalArgumentException("Not enough color space information " + "to complete conversion."); --- 196,202 ---- { // TODO: The plan is to create a scanline buffer for intermediate buffers. // For now we just suck it up and create intermediate buffers. ! if (dst == null && spaces.length == 0) throw new IllegalArgumentException("Not enough color space information " + "to complete conversion."); *************** public class ColorConvertOp implements B *** 245,256 **** * Converts the source raster using the conversion path specified in the * constructor. The resulting raster is stored in the destination raster if * one is provided; otherwise a new WritableRaster is created and returned. ! * * This operation is not valid with every constructor of this class; see * the constructors for details. Further, the source raster must have the * same number of bands as the source ColorSpace, and the destination raster * must have the same number of bands as the destination ColorSpace. ! * * The source and destination raster (if one is supplied) must also have the * same dimensions. * --- 245,256 ---- * Converts the source raster using the conversion path specified in the * constructor. The resulting raster is stored in the destination raster if * one is provided; otherwise a new WritableRaster is created and returned. ! * * This operation is not valid with every constructor of this class; see * the constructors for details. Further, the source raster must have the * same number of bands as the source ColorSpace, and the destination raster * must have the same number of bands as the destination ColorSpace. ! * * The source and destination raster (if one is supplied) must also have the * same dimensions. * *************** public class ColorConvertOp implements B *** 303,309 **** /** * Creates an empty BufferedImage with the size equal to the source and the ! * correct number of bands for the conversion defined in this Op. The newly * created image is created with the specified ColorModel, or if no ColorModel * is supplied, an appropriate one is chosen. * --- 303,309 ---- /** * Creates an empty BufferedImage with the size equal to the source and the ! * correct number of bands for the conversion defined in this Op. The newly * created image is created with the specified ColorModel, or if no ColorModel * is supplied, an appropriate one is chosen. * *************** public class ColorConvertOp implements B *** 332,342 **** dstCM.getTransferType()), src.isPremultiplied, null); } ! /** * Creates a new WritableRaster with the size equal to the source and the * correct number of bands. ! * * Note, the new Raster will always use a BYTE storage size, regardless of * the color model or defined destination; this is for compatibility with * the reference implementation. --- 332,342 ---- dstCM.getTransferType()), src.isPremultiplied, null); } ! /** * Creates a new WritableRaster with the size equal to the source and the * correct number of bands. ! * * Note, the new Raster will always use a BYTE storage size, regardless of * the color model or defined destination; this is for compatibility with * the reference implementation. *************** public class ColorConvertOp implements B *** 361,367 **** /** * Returns the array of ICC_Profiles used to create this Op, or null if the * Op was created using ColorSpace arguments. ! * * @return The array of ICC_Profiles, or null. */ public final ICC_Profile[] getICC_Profiles() --- 361,367 ---- /** * Returns the array of ICC_Profiles used to create this Op, or null if the * Op was created using ColorSpace arguments. ! * * @return The array of ICC_Profiles, or null. */ public final ICC_Profile[] getICC_Profiles() *************** public class ColorConvertOp implements B *** 371,377 **** /** * Returns the rendering hints for this op. ! * * @return The rendering hints for this Op, or null. */ public final RenderingHints getRenderingHints() --- 371,377 ---- /** * Returns the rendering hints for this op. ! * * @return The rendering hints for this Op, or null. */ public final RenderingHints getRenderingHints() *************** public class ColorConvertOp implements B *** 383,389 **** * Returns the corresponding destination point for a source point. * Because this is not a geometric operation, the destination and source * points will be identical. ! * * @param src The source point. * @param dst The transformed destination point. * @return The transformed destination point. --- 383,389 ---- * Returns the corresponding destination point for a source point. * Because this is not a geometric operation, the destination and source * points will be identical. ! * * @param src The source point. * @param dst The transformed destination point. * @return The transformed destination point. *************** public class ColorConvertOp implements B *** 392,398 **** { if (dst == null) return (Point2D)src.clone(); ! dst.setLocation(src); return dst; } --- 392,398 ---- { if (dst == null) return (Point2D)src.clone(); ! dst.setLocation(src); return dst; } *************** public class ColorConvertOp implements B *** 401,407 **** * Returns the corresponding destination boundary of a source boundary. * Because this is not a geometric operation, the destination and source * boundaries will be identical. ! * * @param src The source boundary. * @return The boundaries of the destination. */ --- 401,407 ---- * Returns the corresponding destination boundary of a source boundary. * Because this is not a geometric operation, the destination and source * boundaries will be identical. ! * * @param src The source boundary. * @return The boundaries of the destination. */ *************** public class ColorConvertOp implements B *** 414,420 **** * Returns the corresponding destination boundary of a source boundary. * Because this is not a geometric operation, the destination and source * boundaries will be identical. ! * * @param src The source boundary. * @return The boundaries of the destination. */ --- 414,420 ---- * Returns the corresponding destination boundary of a source boundary. * Because this is not a geometric operation, the destination and source * boundaries will be identical. ! * * @param src The source boundary. * @return The boundaries of the destination. */ *************** public class ColorConvertOp implements B *** 424,432 **** } /** ! * Copy a source image to a destination image, respecting their colorspaces ! * and performing colorspace conversions if necessary. ! * * @param src The source image. * @param dst The destination image. */ --- 424,432 ---- } /** ! * Copy a source image to a destination image, respecting their colorspaces ! * and performing colorspace conversions if necessary. ! * * @param src The source image. * @param dst The destination image. */ *************** public class ColorConvertOp implements B *** 434,454 **** { // This is done using Graphics2D in order to respect the rendering hints. Graphics2D gg = dst.createGraphics(); ! // If no hints are set there is no need to call // setRenderingHints on the Graphics2D object. if (hints != null) gg.setRenderingHints(hints); ! gg.drawImage(src, 0, 0, null); gg.dispose(); } ! /** * Copy a source raster to a destination raster, performing a colorspace * conversion between the two. The conversion will respect the * KEY_COLOR_RENDERING rendering hint if one is present. ! * * @param src The source raster. * @param scs The colorspace of the source raster. * @dst The destination raster. --- 434,454 ---- { // This is done using Graphics2D in order to respect the rendering hints. Graphics2D gg = dst.createGraphics(); ! // If no hints are set there is no need to call // setRenderingHints on the Graphics2D object. if (hints != null) gg.setRenderingHints(hints); ! gg.drawImage(src, 0, 0, null); gg.dispose(); } ! /** * Copy a source raster to a destination raster, performing a colorspace * conversion between the two. The conversion will respect the * KEY_COLOR_RENDERING rendering hint if one is present. ! * * @param src The source raster. * @param scs The colorspace of the source raster. * @dst The destination raster. *************** public class ColorConvertOp implements B *** 457,463 **** private void copyraster(Raster src, ColorSpace scs, WritableRaster dst, ColorSpace dcs) { float[] sbuf = new float[src.getNumBands()]; ! if (hints != null && hints.get(RenderingHints.KEY_COLOR_RENDERING) == RenderingHints.VALUE_COLOR_RENDER_QUALITY) --- 457,463 ---- private void copyraster(Raster src, ColorSpace scs, WritableRaster dst, ColorSpace dcs) { float[] sbuf = new float[src.getNumBands()]; ! if (hints != null && hints.get(RenderingHints.KEY_COLOR_RENDERING) == RenderingHints.VALUE_COLOR_RENDER_QUALITY) *************** public class ColorConvertOp implements B *** 466,472 **** for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dst.setPixel(x, y, ! dcs.fromCIEXYZ(scs.toCIEXYZ(src.getPixel(x, y, sbuf)))); } else { --- 466,472 ---- for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dst.setPixel(x, y, ! dcs.fromCIEXYZ(scs.toCIEXYZ(src.getPixel(x, y, sbuf)))); } else { *************** public class ColorConvertOp implements B *** 474,480 **** for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dst.setPixel(x, y, ! dcs.fromRGB(scs.toRGB(src.getPixel(x, y, sbuf)))); } } --- 474,480 ---- for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dst.setPixel(x, y, ! dcs.fromRGB(scs.toRGB(src.getPixel(x, y, sbuf)))); } } *************** public class ColorConvertOp implements B *** 482,512 **** * This method creates a color model with the same colorspace and alpha * settings as the source image. The created color model will always be a * ComponentColorModel and have a BYTE transfer type. ! * * @param img The source image. * @param cs The ColorSpace to use. * @return A color model compatible with the source image. ! */ private ColorModel createCompatibleColorModel(BufferedImage img, ColorSpace cs) { // The choice of ComponentColorModel and DataBuffer.TYPE_BYTE is based on // Mauve testing of the reference implementation. return new ComponentColorModel(cs, ! img.getColorModel().hasAlpha(), img.isAlphaPremultiplied(), img.getColorModel().getTransparency(), ! DataBuffer.TYPE_BYTE); } /** * This method creates a compatible Raster, given a source raster, colorspace, * alpha value, and transfer type. ! * * @param src The source raster. * @param cs The ColorSpace to use. * @param hasAlpha Whether the raster should include a component for an alpha. * @param transferType The size of a single data element. ! * @return A compatible WritableRaster. */ private WritableRaster createCompatibleDestRaster(Raster src, ColorSpace cs, boolean hasAlpha, --- 482,512 ---- * This method creates a color model with the same colorspace and alpha * settings as the source image. The created color model will always be a * ComponentColorModel and have a BYTE transfer type. ! * * @param img The source image. * @param cs The ColorSpace to use. * @return A color model compatible with the source image. ! */ private ColorModel createCompatibleColorModel(BufferedImage img, ColorSpace cs) { // The choice of ComponentColorModel and DataBuffer.TYPE_BYTE is based on // Mauve testing of the reference implementation. return new ComponentColorModel(cs, ! img.getColorModel().hasAlpha(), img.isAlphaPremultiplied(), img.getColorModel().getTransparency(), ! DataBuffer.TYPE_BYTE); } /** * This method creates a compatible Raster, given a source raster, colorspace, * alpha value, and transfer type. ! * * @param src The source raster. * @param cs The ColorSpace to use. * @param hasAlpha Whether the raster should include a component for an alpha. * @param transferType The size of a single data element. ! * @return A compatible WritableRaster. */ private WritableRaster createCompatibleDestRaster(Raster src, ColorSpace cs, boolean hasAlpha, *************** public class ColorConvertOp implements B *** 514,524 **** { // The use of a PixelInterleavedSampleModel weas determined using mauve // tests, based on the reference implementation ! int numComponents = cs.getNumComponents(); if (hasAlpha) numComponents++; ! int[] offsets = new int[numComponents]; for (int i = 0; i < offsets.length; i++) offsets[i] = i; --- 514,524 ---- { // The use of a PixelInterleavedSampleModel weas determined using mauve // tests, based on the reference implementation ! int numComponents = cs.getNumComponents(); if (hasAlpha) numComponents++; ! int[] offsets = new int[numComponents]; for (int i = 0; i < offsets.length; i++) offsets[i] = i; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ColorModel.java gcc-4.6.0/libjava/classpath/java/awt/image/ColorModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ColorModel.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/ColorModel.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 64,70 **** * *
      • sRGB pixel int value: a pixel in sRGB color space, encoded in * default 0xAARRGGBB format, assumed not alpha premultiplied.
      • ! * *
      • single [0, 255] scaled int samples from default sRGB color * space. These are always assumed to be alpha non-premultiplied.
      • * --- 64,70 ---- * *
      • sRGB pixel int value: a pixel in sRGB color space, encoded in * default 0xAARRGGBB format, assumed not alpha premultiplied.
      • ! * *
      • single [0, 255] scaled int samples from default sRGB color * space. These are always assumed to be alpha non-premultiplied.
      • * *************** public abstract class ColorModel impleme *** 109,118 **** byte[] array = new byte[times]; java.util.Arrays.fill(array, value); return array; ! } /** ! * Constructs the default color model. The default color model * can be obtained by calling getRGBdefault of this * class. * @param bits the number of bits wide used for bit size of pixel values --- 109,118 ---- byte[] array = new byte[times]; java.util.Arrays.fill(array, value); return array; ! } /** ! * Constructs the default color model. The default color model * can be obtained by calling getRGBdefault of this * class. * @param bits the number of bits wide used for bit size of pixel values *************** public abstract class ColorModel impleme *** 120,131 **** public ColorModel(int bits) { this(bits * 4, // total bits, sRGB, four channels ! nArray(bits, 4), // bits for each channel ! ColorSpace.getInstance(ColorSpace.CS_sRGB), // sRGB ! true, // has alpha ! false, // not premultiplied ! TRANSLUCENT, ! Buffers.smallestAppropriateTransferType(bits * 4)); } /** --- 120,131 ---- public ColorModel(int bits) { this(bits * 4, // total bits, sRGB, four channels ! nArray(bits, 4), // bits for each channel ! ColorSpace.getInstance(ColorSpace.CS_sRGB), // sRGB ! true, // has alpha ! false, // not premultiplied ! TRANSLUCENT, ! Buffers.smallestAppropriateTransferType(bits * 4)); } /** *************** public abstract class ColorModel impleme *** 138,145 **** * bits is less than 1 or if any of the elements in bits is less than 0. */ protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, ! boolean hasAlpha, boolean isAlphaPremultiplied, ! int transparency, int transferType) { int bits_sum = 0; for (int i = 0; i < bits.length; i++) --- 138,145 ---- * bits is less than 1 or if any of the elements in bits is less than 0. */ protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, ! boolean hasAlpha, boolean isAlphaPremultiplied, ! int transparency, int transferType) { int bits_sum = 0; for (int i = 0; i < bits.length; i++) *************** public abstract class ColorModel impleme *** 149,155 **** bits_sum |= bits [i]; } ! if ((bits.length < cspace.getNumComponents()) || (bits_sum < 1)) throw new IllegalArgumentException (); --- 149,155 ---- bits_sum |= bits [i]; } ! if ((bits.length < cspace.getNumComponents()) || (bits_sum < 1)) throw new IllegalArgumentException (); *************** public abstract class ColorModel impleme *** 162,168 **** this.transparency = transparency; this.transferType = transferType; } ! public void finalize() { // Do nothing here. --- 162,168 ---- this.transparency = transparency; this.transferType = transferType; } ! public void finalize() { // Do nothing here. *************** public abstract class ColorModel impleme *** 194,205 **** { return pixel_bits; } ! public int getComponentSize(int componentIdx) { return bits[componentIdx]; } ! public int[] getComponentSize() { return bits; --- 194,205 ---- { return pixel_bits; } ! public int getComponentSize(int componentIdx) { return bits[componentIdx]; } ! public int[] getComponentSize() { return bits; *************** public abstract class ColorModel impleme *** 240,246 **** * @see #getRed(int) */ public abstract int getGreen(int pixel); ! /** * Converts pixel value to sRGB and extract blue int sample * scaled to range [0, 255]. --- 240,246 ---- * @see #getRed(int) */ public abstract int getGreen(int pixel); ! /** * Converts pixel value to sRGB and extract blue int sample * scaled to range [0, 255]. *************** public abstract class ColorModel impleme *** 265,271 **** * * This method is typically overriden in subclasses to provide a * more efficient implementation. ! * * @param pixel pixel value that will be interpreted according to * the color model. * --- 265,271 ---- * * This method is typically overriden in subclasses to provide a * more efficient implementation. ! * * @param pixel pixel value that will be interpreted according to * the color model. * *************** public abstract class ColorModel impleme *** 273,285 **** * 0xAARRGGBB format. */ public int getRGB(int pixel) { ! return ((getAlpha(pixel) & 0xff) << 24) | (( getRed(pixel) & 0xff) << 16) | ((getGreen(pixel) & 0xff) << 8) | (( getBlue(pixel) & 0xff) << 0); } ! /** * In this color model we know that the whole pixel value will --- 273,285 ---- * 0xAARRGGBB format. */ public int getRGB(int pixel) { ! return ((getAlpha(pixel) & 0xff) << 24) | (( getRed(pixel) & 0xff) << 16) | ((getGreen(pixel) & 0xff) << 8) | (( getBlue(pixel) & 0xff) << 0); } ! /** * In this color model we know that the whole pixel value will *************** public abstract class ColorModel impleme *** 294,306 **** return data.getElem(0); } ! /** * Converts pixel in the given array to sRGB and extract blue int * sample scaled to range [0-255]. * * This method is typically overriden in subclasses to provide a * more efficient implementation. ! * * @param inData array of transferType containing a single pixel. The * pixel should be encoded in the natural way of the color model. */ --- 294,306 ---- return data.getElem(0); } ! /** * Converts pixel in the given array to sRGB and extract blue int * sample scaled to range [0-255]. * * This method is typically overriden in subclasses to provide a * more efficient implementation. ! * * @param inData array of transferType containing a single pixel. The * pixel should be encoded in the natural way of the color model. */ *************** public abstract class ColorModel impleme *** 350,356 **** */ public int getRGB(Object inData) { ! return ((getAlpha(inData) & 0xff) << 24) | (( getRed(inData) & 0xff) << 16) | ((getGreen(inData) & 0xff) << 8) | --- 350,356 ---- */ public int getRGB(Object inData) { ! return ((getAlpha(inData) & 0xff) << 24) | (( getRed(inData) & 0xff) << 16) | ((getGreen(inData) & 0xff) << 8) | *************** public abstract class ColorModel impleme *** 360,366 **** /** * Converts an sRGB pixel int value to an array containing a * single pixel of the color space of the color model. ! * *

        This method performs the inverse function of * getRGB(Object inData). * --- 360,366 ---- /** * Converts an sRGB pixel int value to an array containing a * single pixel of the color space of the color model. ! * *

        This method performs the inverse function of * getRGB(Object inData). * *************** public abstract class ColorModel impleme *** 379,385 **** *

      • Scale the components to the correct number of bits.
      • * *
      • Arrange the components in the output array
      • ! * * * * @param rgb The color to be converted to dataElements. A pixel --- 379,385 ---- *
      • Scale the components to the correct number of bits.
      • * *
      • Arrange the components in the output array
      • ! * * * * @param rgb The color to be converted to dataElements. A pixel *************** public abstract class ColorModel impleme *** 392,398 **** * * @return An array of transferType values representing the color, * in the color model format. The color model defines whether the ! * * @see #getRGB(Object) */ public Object getDataElements(int rgb, Object pixel) --- 392,398 ---- * * @return An array of transferType values representing the color, * in the color model format. The color model defines whether the ! * * @see #getRGB(Object) */ public Object getDataElements(int rgb, Object pixel) *************** public abstract class ColorModel impleme *** 404,414 **** /** * Fills an array with the unnormalized component samples from a * pixel value. I.e. decompose the pixel, but not perform any ! * color conversion. * * This method is typically overriden in subclasses to provide a * more efficient implementation. ! * * @param pixel pixel value encoded according to the color model. * * @return arrays of unnormalized component samples of single --- 404,414 ---- /** * Fills an array with the unnormalized component samples from a * pixel value. I.e. decompose the pixel, but not perform any ! * color conversion. * * This method is typically overriden in subclasses to provide a * more efficient implementation. ! * * @param pixel pixel value encoded according to the color model. * * @return arrays of unnormalized component samples of single *************** public abstract class ColorModel impleme *** 421,427 **** // subclasses has to implement this method. throw new UnsupportedOperationException(); } ! /** * Fills an array with the unnormalized component samples from an * array of transferType containing a single pixel. I.e. decompose --- 421,427 ---- // subclasses has to implement this method. throw new UnsupportedOperationException(); } ! /** * Fills an array with the unnormalized component samples from an * array of transferType containing a single pixel. I.e. decompose *************** public abstract class ColorModel impleme *** 438,444 **** * of the pixel. If this is null, a new array will be allocated * @param offset index into the components array at which the result * will be stored ! * * @return arrays of unnormalized component samples of single * pixel. The scale and multiplication state of the samples are * according to the color model. Each component sample is stored --- 438,444 ---- * of the pixel. If this is null, a new array will be allocated * @param offset index into the components array at which the result * will be stored ! * * @return arrays of unnormalized component samples of single * pixel. The scale and multiplication state of the samples are * according to the color model. Each component sample is stored *************** public abstract class ColorModel impleme *** 454,469 **** * Convert normalized components to unnormalized components. */ public int[] getUnnormalizedComponents(float[] normComponents, ! int normOffset, ! int[] components, ! int offset) { int numComponents = getNumComponents(); if (components == null) { components = new int[offset + numComponents]; } ! for (int i=0; igetComponents(int pixel, int[] components, ! * int offset). I.e. * * (pixel == cm.getDataElement(cm.getComponents(pixel, null, * 0), 0)). --- 513,522 ---- * Converts the unnormalized component samples from an array to a * pixel value. I.e. composes the pixel from component samples, but * does not perform any color conversion or scaling of the samples. ! * * This method performs the inverse function of * getComponents(int pixel, int[] components, ! * int offset). I.e. * * (pixel == cm.getDataElement(cm.getComponents(pixel, null, * 0), 0)). *************** public abstract class ColorModel impleme *** 542,548 **** * Converts the normalized component samples from an array to a pixel * value. I.e. composes the pixel from component samples, but does not * perform any color conversion or scaling of the samples. ! * * This method is typically overriden in subclasses to provide a * more efficient implementation. The method provided by this abstract * class converts the components to unnormalized form and returns --- 542,548 ---- * Converts the normalized component samples from an array to a pixel * value. I.e. composes the pixel from component samples, but does not * perform any color conversion or scaling of the samples. ! * * This method is typically overriden in subclasses to provide a * more efficient implementation. The method provided by this abstract * class converts the components to unnormalized form and returns *************** public abstract class ColorModel impleme *** 561,569 **** { return getDataElement(getUnnormalizedComponents(components, offset, null, 0), ! 0); } ! public Object getDataElements(int[] components, int offset, Object obj) { // subclasses have to implement this method. --- 561,569 ---- { return getDataElement(getUnnormalizedComponents(components, offset, null, 0), ! 0); } ! public Object getDataElements(int[] components, int offset, Object obj) { // subclasses have to implement this method. *************** public abstract class ColorModel impleme *** 579,585 **** * Otherwise the results are stored in obj and obj is returned. If obj is * not long enough, ArrayIndexOutOfBounds is thrown. If obj is not an array * of primitives, ClassCastException is thrown. ! * * This method is typically overriden in subclasses to provide a * more efficient implementation. The method provided by this abstract * class converts the components to unnormalized form and returns --- 579,585 ---- * Otherwise the results are stored in obj and obj is returned. If obj is * not long enough, ArrayIndexOutOfBounds is thrown. If obj is not an array * of primitives, ClassCastException is thrown. ! * * This method is typically overriden in subclasses to provide a * more efficient implementation. The method provided by this abstract * class converts the components to unnormalized form and returns *************** public abstract class ColorModel impleme *** 601,607 **** { return getDataElements(getUnnormalizedComponents(components, offset, null, 0), ! 0, obj); } public boolean equals(Object obj) --- 601,607 ---- { return getDataElements(getUnnormalizedComponents(components, offset, null, 0), ! 0, obj); } public boolean equals(Object obj) *************** public abstract class ColorModel impleme *** 609,615 **** if (!(obj instanceof ColorModel)) return false; ColorModel o = (ColorModel) obj; ! return (pixel_bits == o.pixel_bits) && (transferType == o.transferType) && (transparency == o.transparency) && --- 609,615 ---- if (!(obj instanceof ColorModel)) return false; ColorModel o = (ColorModel) obj; ! return (pixel_bits == o.pixel_bits) && (transferType == o.transferType) && (transparency == o.transparency) && *************** public abstract class ColorModel impleme *** 632,638 **** } void coerceDataWorker(WritableRaster raster, ! boolean isAlphaPremultiplied) { int w = raster.getWidth(); int h = raster.getHeight(); --- 632,638 ---- } void coerceDataWorker(WritableRaster raster, ! boolean isAlphaPremultiplied) { int w = raster.getWidth(); int h = raster.getHeight(); *************** public abstract class ColorModel impleme *** 659,670 **** raster.setPixels(0, 0, w, h, pixels); } ! /** * Checks if the given raster has a compatible data-layout (SampleModel). * @param raster The Raster to test. * @return true if raster is compatible. ! */ public boolean isCompatibleRaster(Raster raster) { SampleModel sampleModel = raster.getSampleModel(); --- 659,670 ---- raster.setPixels(0, 0, w, h, pixels); } ! /** * Checks if the given raster has a compatible data-layout (SampleModel). * @param raster The Raster to test. * @return true if raster is compatible. ! */ public boolean isCompatibleRaster(Raster raster) { SampleModel sampleModel = raster.getSampleModel(); *************** public abstract class ColorModel impleme *** 675,681 **** public WritableRaster createCompatibleWritableRaster(int w, int h) { return new WritableRaster(createCompatibleSampleModel(w, h), ! new Point(0, 0)); } // Typically overridden --- 675,681 ---- public WritableRaster createCompatibleWritableRaster(int w, int h) { return new WritableRaster(createCompatibleSampleModel(w, h), ! new Point(0, 0)); } // Typically overridden *************** public abstract class ColorModel impleme *** 705,723 **** public WritableRaster getAlphaRaster(WritableRaster raster) { return null; ! /* It is a mystery to me why we couldn't use the following code... ! ! if (!hasAlpha()) return null; ! SampleModel sm = raster.getSampleModel(); int[] alphaBand = { sm.getNumBands() - 1 }; SampleModel alphaModel = sm.createSubsetSampleModel(alphaBand); DataBuffer buffer = raster.getDataBuffer(); Point origin = new Point(0, 0); return Raster.createWritableRaster(alphaModel, buffer, origin); ! ...here, and avoided overriding the method in subclasses, but the Sun docs state that this method always will return --- 705,723 ---- public WritableRaster getAlphaRaster(WritableRaster raster) { return null; ! /* It is a mystery to me why we couldn't use the following code... ! ! if (!hasAlpha()) return null; ! SampleModel sm = raster.getSampleModel(); int[] alphaBand = { sm.getNumBands() - 1 }; SampleModel alphaModel = sm.createSubsetSampleModel(alphaBand); DataBuffer buffer = raster.getDataBuffer(); Point origin = new Point(0, 0); return Raster.createWritableRaster(alphaModel, buffer, origin); ! ...here, and avoided overriding the method in subclasses, but the Sun docs state that this method always will return *************** public abstract class ColorModel impleme *** 746,752 **** private static class SRGBColorModel extends DirectColorModel { ! SRGBColorModel() { super(32,0x00FF0000,0x0000FF00,0x000000FF,0xFF000000); --- 746,752 ---- private static class SRGBColorModel extends DirectColorModel { ! SRGBColorModel() { super(32,0x00FF0000,0x0000FF00,0x000000FF,0xFF000000); *************** public abstract class ColorModel impleme *** 781,793 **** { if(pixel == null) { ! pixel = new int[]{rgb}; } else { ! ((int[]) pixel)[0] = rgb; } ! return pixel; } } --- 781,793 ---- { if(pixel == null) { ! pixel = new int[]{rgb}; } else { ! ((int[]) pixel)[0] = rgb; } ! return pixel; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ComponentColorModel.java gcc-4.6.0/libjava/classpath/java/awt/image/ComponentColorModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ComponentColorModel.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/ComponentColorModel.java Tue Jan 11 19:46:05 2011 *************** public class ComponentColorModel extends *** 54,60 **** sum += values[i]; return sum; } ! // Create an appropriate array of bits, given a colorspace (ie, number of // bands), size of the storage data type, and presence of an alpha band. private static int[] findBits(ColorSpace colorSpace, int transferType, --- 54,60 ---- sum += values[i]; return sum; } ! // Create an appropriate array of bits, given a colorspace (ie, number of // bands), size of the storage data type, and presence of an alpha band. private static int[] findBits(ColorSpace colorSpace, int transferType, *************** public class ComponentColorModel extends *** 67,94 **** bits = new int[colorSpace.getNumComponents()]; Arrays.fill(bits, DataBuffer.getDataTypeSize(transferType)); ! return bits; } public ComponentColorModel(ColorSpace colorSpace, int[] bits, ! boolean hasAlpha, ! boolean isAlphaPremultiplied, ! int transparency, int transferType) { super(sum(bits), bits, colorSpace, hasAlpha, isAlphaPremultiplied, ! transparency, transferType); } /** * Construct a new ComponentColorModel. ! * * This constructor makes all bits of each sample significant, so for a * transferType of DataBuffer.BYTE, the bits per sample is 8, etc. If * both hasAlpha and isAlphaPremultiplied are true, color samples are * assumed to be premultiplied by the alpha component. Transparency may be ! * one of OPAQUE, BITMASK, or TRANSLUCENT. ! * * @param colorSpace The colorspace for this color model. * @param hasAlpha True if there is an alpha component. * @param isAlphaPremultiplied True if colors are already multiplied by --- 67,94 ---- bits = new int[colorSpace.getNumComponents()]; Arrays.fill(bits, DataBuffer.getDataTypeSize(transferType)); ! return bits; } public ComponentColorModel(ColorSpace colorSpace, int[] bits, ! boolean hasAlpha, ! boolean isAlphaPremultiplied, ! int transparency, int transferType) { super(sum(bits), bits, colorSpace, hasAlpha, isAlphaPremultiplied, ! transparency, transferType); } /** * Construct a new ComponentColorModel. ! * * This constructor makes all bits of each sample significant, so for a * transferType of DataBuffer.BYTE, the bits per sample is 8, etc. If * both hasAlpha and isAlphaPremultiplied are true, color samples are * assumed to be premultiplied by the alpha component. Transparency may be ! * one of OPAQUE, BITMASK, or TRANSLUCENT. ! * * @param colorSpace The colorspace for this color model. * @param hasAlpha True if there is an alpha component. * @param isAlphaPremultiplied True if colors are already multiplied by *************** public class ComponentColorModel extends *** 98,107 **** * @since 1.4 */ public ComponentColorModel(ColorSpace colorSpace, ! boolean hasAlpha, ! boolean isAlphaPremultiplied, ! int transparency, int transferType) ! { this(colorSpace, findBits(colorSpace, transferType, hasAlpha), hasAlpha, isAlphaPremultiplied, transparency, transferType); } --- 98,107 ---- * @since 1.4 */ public ComponentColorModel(ColorSpace colorSpace, ! boolean hasAlpha, ! boolean isAlphaPremultiplied, ! int transparency, int transferType) ! { this(colorSpace, findBits(colorSpace, transferType, hasAlpha), hasAlpha, isAlphaPremultiplied, transparency, transferType); } *************** public class ComponentColorModel extends *** 117,123 **** if (getNumComponents()>1) throw new IllegalArgumentException(); return (int) getRGBFloat(pixel)[0]; } ! public int getBlue(int pixel) { if (getNumComponents()>1) throw new IllegalArgumentException(); --- 117,123 ---- if (getNumComponents()>1) throw new IllegalArgumentException(); return (int) getRGBFloat(pixel)[0]; } ! public int getBlue(int pixel) { if (getNumComponents()>1) throw new IllegalArgumentException(); *************** public class ComponentColorModel extends *** 131,137 **** if (shift >= 0) return pixel << shift; return pixel >> (-shift); } ! public int getRGB(int pixel) { float[] rgb = getRGBFloat(pixel); --- 131,137 ---- if (shift >= 0) return pixel << shift; return pixel >> (-shift); } ! public int getRGB(int pixel) { float[] rgb = getRGBFloat(pixel); *************** public class ComponentColorModel extends *** 143,149 **** /* Note, it's OK to pass a to large array to toRGB(). Extra elements are ignored. */ ! private float[] getRGBFloat(int pixel) { float[] data = { pixel }; --- 143,149 ---- /* Note, it's OK to pass a to large array to toRGB(). Extra elements are ignored. */ ! private float[] getRGBFloat(int pixel) { float[] data = { pixel }; *************** public class ComponentColorModel extends *** 154,173 **** { DataBuffer buffer = Buffers.createBufferFromData(transferType, inData, ! getNumComponents()); int colors = getNumColorComponents(); float[] data = new float[colors]; ! // FIXME: unpremultiply data that is premultiplied for (int i=0; i= 0) return alpha << shift; --- 187,193 ---- { DataBuffer buffer = Buffers.createBufferFromData(transferType, inData, ! getNumComponents()); int shift = 8 - getComponentSize(getNumColorComponents()); int alpha = buffer.getElem(getNumColorComponents()); if (shift >= 0) return alpha << shift; *************** public class ComponentColorModel extends *** 200,206 **** avoid bits spilling over from one bit field to another. But, if we assume that floats are in the [0.0, 1.0] range, this will never happen anyway. */ ! /* Remember to multiply BEFORE casting to int, otherwise, decimal point data will be lost. */ int ret = --- 200,206 ---- avoid bits spilling over from one bit field to another. But, if we assume that floats are in the [0.0, 1.0] range, this will never happen anyway. */ ! /* Remember to multiply BEFORE casting to int, otherwise, decimal point data will be lost. */ int ret = *************** public class ComponentColorModel extends *** 234,263 **** // Convert from rgb to color space components. float[] data = cspace.fromRGB(rgbFloats); DataBuffer buffer = Buffers.createBuffer(transferType, pixel, ! getNumComponents()); int numColors = getNumColorComponents(); ! if (hasAlpha()) { ! float alpha = ((rgb >> 24)&0xff)/255.0F; ! ! /* If color model has alpha and should be premultiplied, multiply ! color space components with alpha value. */ ! if (isAlphaPremultiplied()) { ! for (int i=0; i> 24)&0xff)/255.0F; ! ! /* If color model has alpha and should be premultiplied, multiply ! color space components with alpha value. */ ! if (isAlphaPremultiplied()) { ! for (int i=0; i * Note that the bandOffsets array is copied to internal storage * to prevent subsequent changes to the array from affecting this object. ! * * @param dataType the data type (one of {@link DataBuffer#TYPE_BYTE}, * {@link DataBuffer#TYPE_USHORT}, {@link DataBuffer#TYPE_SHORT}, ! * {@link DataBuffer#TYPE_INT}, {@link DataBuffer#TYPE_FLOAT} or * {@link DataBuffer#TYPE_DOUBLE}). * @param w the width in pixels. * @param h the height in pixels. * @param pixelStride the number of data elements in the step from a sample * in one pixel to the corresponding sample in the next pixel. ! * @param scanlineStride the number of data elements in the step from a * sample in a pixel to the corresponding sample in the pixel in the next * row. ! * @param bandOffsets the offset to the first element for each band, with * the size of the array defining the number of bands (null * not permitted). ! * * @throws IllegalArgumentException if dataType is not one of * the specified values. * @throws IllegalArgumentException if w is less than or equal * to zero. ! * @throws IllegalArgumentException if h is less than or equal * to zero. * @throws IllegalArgumentException if w * h exceeds * {@link Integer#MAX_VALUE}. * @throws IllegalArgumentException if pixelStride is negative. ! * @throws IllegalArgumentException if scanlineStride is less * than or equal to zero. ! * @throws IllegalArgumentException if bandOffsets has zero * length. */ public ComponentSampleModel(int dataType, --- 60,124 ---- { /** The offsets to the first sample for each band. */ protected int[] bandOffsets; ! /** The indices of the bank used to store each band in a data buffer. */ protected int[] bankIndices; ! ! /** * The number of bands in the image. * @specnote This field shadows the protected numBands in SampleModel. */ protected int numBands; ! /** Used when creating data buffers. */ protected int numBanks; ! /** ! * The number of data elements between a sample in one row and the * corresponding sample in the next row. */ protected int scanlineStride; ! /** ! * The number of data elements between a sample for one pixel and the * corresponding sample for the next pixel in the same row. */ protected int pixelStride; /** ! * Creates a new sample model that assumes that all bands are stored in a * single bank of the {@link DataBuffer}. *

        * Note that the bandOffsets array is copied to internal storage * to prevent subsequent changes to the array from affecting this object. ! * * @param dataType the data type (one of {@link DataBuffer#TYPE_BYTE}, * {@link DataBuffer#TYPE_USHORT}, {@link DataBuffer#TYPE_SHORT}, ! * {@link DataBuffer#TYPE_INT}, {@link DataBuffer#TYPE_FLOAT} or * {@link DataBuffer#TYPE_DOUBLE}). * @param w the width in pixels. * @param h the height in pixels. * @param pixelStride the number of data elements in the step from a sample * in one pixel to the corresponding sample in the next pixel. ! * @param scanlineStride the number of data elements in the step from a * sample in a pixel to the corresponding sample in the pixel in the next * row. ! * @param bandOffsets the offset to the first element for each band, with * the size of the array defining the number of bands (null * not permitted). ! * * @throws IllegalArgumentException if dataType is not one of * the specified values. * @throws IllegalArgumentException if w is less than or equal * to zero. ! * @throws IllegalArgumentException if h is less than or equal * to zero. * @throws IllegalArgumentException if w * h exceeds * {@link Integer#MAX_VALUE}. * @throws IllegalArgumentException if pixelStride is negative. ! * @throws IllegalArgumentException if scanlineStride is less * than or equal to zero. ! * @throws IllegalArgumentException if bandOffsets has zero * length. */ public ComponentSampleModel(int dataType, *************** public class ComponentSampleModel extend *** 130,172 **** this(dataType, w, h, pixelStride, scanlineStride, new int[bandOffsets.length], bandOffsets); } ! /** ! * Creates a new sample model that assumes that all bands are stored in a * single bank of the {@link DataBuffer}. ! * * @param dataType the data type (one of {@link DataBuffer#TYPE_BYTE}, * {@link DataBuffer#TYPE_USHORT}, {@link DataBuffer#TYPE_SHORT}, ! * {@link DataBuffer#TYPE_INT}, {@link DataBuffer#TYPE_FLOAT} or * {@link DataBuffer#TYPE_DOUBLE}). * @param w the width in pixels. * @param h the height in pixels. * @param pixelStride the number of data elements in the step from a sample * in one pixel to the corresponding sample in the next pixel. ! * @param scanlineStride the number of data elements in the step from a * sample in a pixel to the corresponding sample in the pixel in the next * row. ! * @param bankIndices the index of the bank in which each band is stored * (null not permitted). This array is copied to internal ! * storage so that subsequent updates to the array do not affect the sample * model. ! * @param bandOffsets the offset to the first element for each band, with * the size of the array defining the number of bands (null ! * not permitted). This array is copied to internal storage so that * subsequent updates to the array do not affect the sample model. ! * * @throws IllegalArgumentException if dataType is not one of * the specified values. * @throws IllegalArgumentException if w is less than or equal * to zero. ! * @throws IllegalArgumentException if h is less than or equal * to zero. * @throws IllegalArgumentException if w * h exceeds * {@link Integer#MAX_VALUE}. * @throws IllegalArgumentException if pixelStride is negative. ! * @throws IllegalArgumentException if scanlineStride is less * than or equal to zero. ! * @throws IllegalArgumentException if bandOffsets has zero * length. */ public ComponentSampleModel(int dataType, --- 130,172 ---- this(dataType, w, h, pixelStride, scanlineStride, new int[bandOffsets.length], bandOffsets); } ! /** ! * Creates a new sample model that assumes that all bands are stored in a * single bank of the {@link DataBuffer}. ! * * @param dataType the data type (one of {@link DataBuffer#TYPE_BYTE}, * {@link DataBuffer#TYPE_USHORT}, {@link DataBuffer#TYPE_SHORT}, ! * {@link DataBuffer#TYPE_INT}, {@link DataBuffer#TYPE_FLOAT} or * {@link DataBuffer#TYPE_DOUBLE}). * @param w the width in pixels. * @param h the height in pixels. * @param pixelStride the number of data elements in the step from a sample * in one pixel to the corresponding sample in the next pixel. ! * @param scanlineStride the number of data elements in the step from a * sample in a pixel to the corresponding sample in the pixel in the next * row. ! * @param bankIndices the index of the bank in which each band is stored * (null not permitted). This array is copied to internal ! * storage so that subsequent updates to the array do not affect the sample * model. ! * @param bandOffsets the offset to the first element for each band, with * the size of the array defining the number of bands (null ! * not permitted). This array is copied to internal storage so that * subsequent updates to the array do not affect the sample model. ! * * @throws IllegalArgumentException if dataType is not one of * the specified values. * @throws IllegalArgumentException if w is less than or equal * to zero. ! * @throws IllegalArgumentException if h is less than or equal * to zero. * @throws IllegalArgumentException if w * h exceeds * {@link Integer#MAX_VALUE}. * @throws IllegalArgumentException if pixelStride is negative. ! * @throws IllegalArgumentException if scanlineStride is less * than or equal to zero. ! * @throws IllegalArgumentException if bandOffsets has zero * length. */ public ComponentSampleModel(int dataType, *************** public class ComponentSampleModel extend *** 177,191 **** int[] bandOffsets) { super(dataType, w, h, bandOffsets.length); ! // super permits DataBuffer.TYPE_UNDEFINED but this class doesn't... if (dataType == DataBuffer.TYPE_UNDEFINED) throw new IllegalArgumentException("Unsupported dataType."); ! ! if ((pixelStride < 0) || (scanlineStride < 0) || (bandOffsets.length < 1) || (bandOffsets.length != bankIndices.length)) throw new IllegalArgumentException(); ! this.bandOffsets = (int[]) bandOffsets.clone(); this.bankIndices = (int[]) bankIndices.clone(); this.numBands = bandOffsets.length; --- 177,191 ---- int[] bandOffsets) { super(dataType, w, h, bandOffsets.length); ! // super permits DataBuffer.TYPE_UNDEFINED but this class doesn't... if (dataType == DataBuffer.TYPE_UNDEFINED) throw new IllegalArgumentException("Unsupported dataType."); ! ! if ((pixelStride < 0) || (scanlineStride < 0) || (bandOffsets.length < 1) || (bandOffsets.length != bankIndices.length)) throw new IllegalArgumentException(); ! this.bandOffsets = (int[]) bandOffsets.clone(); this.bankIndices = (int[]) bankIndices.clone(); this.numBands = bandOffsets.length; *************** public class ComponentSampleModel extend *** 197,211 **** this.scanlineStride = scanlineStride; this.pixelStride = pixelStride; ! } /** * Creates a new sample model that is compatible with this one, but with the * specified dimensions. ! * * @param w the width (must be greater than zero). * @param h the height (must be greater than zero). ! * * @return A new sample model. */ public SampleModel createCompatibleSampleModel(int w, int h) --- 197,211 ---- this.scanlineStride = scanlineStride; this.pixelStride = pixelStride; ! } /** * Creates a new sample model that is compatible with this one, but with the * specified dimensions. ! * * @param w the width (must be greater than zero). * @param h the height (must be greater than zero). ! * * @return A new sample model. */ public SampleModel createCompatibleSampleModel(int w, int h) *************** public class ComponentSampleModel extend *** 218,232 **** /** * Creates a new sample model that provides access to a subset of the bands * that this sample model supports. ! * * @param bands the bands (null not permitted). ! * * @return The new sample model. */ public SampleModel createSubsetSampleModel(int[] bands) { int numBands = bands.length; ! int[] bankIndices = new int[numBands]; int[] bandOffsets = new int[numBands]; for (int b = 0; b < numBands; b++) --- 218,232 ---- /** * Creates a new sample model that provides access to a subset of the bands * that this sample model supports. ! * * @param bands the bands (null not permitted). ! * * @return The new sample model. */ public SampleModel createSubsetSampleModel(int[] bands) { int numBands = bands.length; ! int[] bankIndices = new int[numBands]; int[] bandOffsets = new int[numBands]; for (int b = 0; b < numBands; b++) *************** public class ComponentSampleModel extend *** 242,248 **** /** * Creates a new data buffer that is compatible with this sample model. ! * * @return The new data buffer. */ public DataBuffer createDataBuffer() --- 242,248 ---- /** * Creates a new data buffer that is compatible with this sample model. ! * * @return The new data buffer. */ public DataBuffer createDataBuffer() *************** public class ComponentSampleModel extend *** 250,257 **** // Maybe this value should be precalculated in the constructor? int highestOffset = 0; for (int b = 0; b < numBands; b++) ! highestOffset = Math.max(highestOffset, bandOffsets[b]); ! int size = pixelStride * (width - 1) + scanlineStride * (height - 1) + highestOffset + 1; DataBuffer buffer = null; --- 250,257 ---- // Maybe this value should be precalculated in the constructor? int highestOffset = 0; for (int b = 0; b < numBands; b++) ! highestOffset = Math.max(highestOffset, bandOffsets[b]); ! int size = pixelStride * (width - 1) + scanlineStride * (height - 1) + highestOffset + 1; DataBuffer buffer = null; *************** public class ComponentSampleModel extend *** 283,294 **** * Returns the offset of the sample in band 0 for the pixel at location * (x, y). This offset can be used to read a sample value from * a {@link DataBuffer}. ! * * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return The offset. ! * * @see #getOffset(int, int, int) */ public int getOffset(int x, int y) --- 283,294 ---- * Returns the offset of the sample in band 0 for the pixel at location * (x, y). This offset can be used to read a sample value from * a {@link DataBuffer}. ! * * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return The offset. ! * * @see #getOffset(int, int, int) */ public int getOffset(int x, int y) *************** public class ComponentSampleModel extend *** 300,310 **** * Returns the offset of the sample in band b for the pixel at * location (x, y). This offset can be used to read a sample * value from a {@link DataBuffer}. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param b the band index. ! * * @return The offset. */ public int getOffset(int x, int y, int b) --- 300,310 ---- * Returns the offset of the sample in band b for the pixel at * location (x, y). This offset can be used to read a sample * value from a {@link DataBuffer}. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param b the band index. ! * * @return The offset. */ public int getOffset(int x, int y, int b) *************** public class ComponentSampleModel extend *** 316,324 **** * Returns the size in bits for each sample (one per band). For this sample * model, each band has the same sample size and this is determined by the * data type for the sample model. ! * * @return The sample sizes. ! * * @see SampleModel#getDataType() */ public final int[] getSampleSize() --- 316,324 ---- * Returns the size in bits for each sample (one per band). For this sample * model, each band has the same sample size and this is determined by the * data type for the sample model. ! * * @return The sample sizes. ! * * @see SampleModel#getDataType() */ public final int[] getSampleSize() *************** public class ComponentSampleModel extend *** 332,344 **** /** * Returns the size in bits for the samples in the specified band. In this ! * class, the sample size is the same for every band and is determined from * the data type for the model. ! * * @param band the band index (ignored here). ! * * @return The sample size in bits. ! * * @see SampleModel#getDataType() */ public final int getSampleSize(int band) --- 332,344 ---- /** * Returns the size in bits for the samples in the specified band. In this ! * class, the sample size is the same for every band and is determined from * the data type for the model. ! * * @param band the band index (ignored here). ! * * @return The sample size in bits. ! * * @see SampleModel#getDataType() */ public final int getSampleSize(int band) *************** public class ComponentSampleModel extend *** 347,356 **** } /** ! * Returns the indices of the bank(s) in the {@link DataBuffer} used to * store the samples for each band. The returned array is a copy, so that * altering it will not impact the sample model. ! * * @return The bank indices. */ public final int[] getBankIndices() --- 347,356 ---- } /** ! * Returns the indices of the bank(s) in the {@link DataBuffer} used to * store the samples for each band. The returned array is a copy, so that * altering it will not impact the sample model. ! * * @return The bank indices. */ public final int[] getBankIndices() *************** public class ComponentSampleModel extend *** 361,367 **** /** * Returns the offsets to the first sample in each band. The returned array * is a copy, so that altering it will not impact the sample model. ! * * @return The offsets. */ public final int[] getBandOffsets() --- 361,367 ---- /** * Returns the offsets to the first sample in each band. The returned array * is a copy, so that altering it will not impact the sample model. ! * * @return The offsets. */ public final int[] getBandOffsets() *************** public class ComponentSampleModel extend *** 371,380 **** /** * Returns the distance (in terms of element indices) between the sample for ! * one pixel and the corresponding sample for the equivalent pixel in the * next row. This is used in the calculation of the element offset for * retrieving samples from a {@link DataBuffer}. ! * * @return The distance between pixel samples in consecutive rows. */ public final int getScanlineStride() --- 371,380 ---- /** * Returns the distance (in terms of element indices) between the sample for ! * one pixel and the corresponding sample for the equivalent pixel in the * next row. This is used in the calculation of the element offset for * retrieving samples from a {@link DataBuffer}. ! * * @return The distance between pixel samples in consecutive rows. */ public final int getScanlineStride() *************** public class ComponentSampleModel extend *** 383,393 **** } /** ! * Returns the distance (in terms of element indices) between the sample for ! * one pixel and the corresponding sample for the next pixel in a row. This ! * is used in the calculation of the element offset for retrieving samples * from a {@link DataBuffer}. ! * * @return The distance between pixel samples in the same row. */ public final int getPixelStride() --- 383,393 ---- } /** ! * Returns the distance (in terms of element indices) between the sample for ! * one pixel and the corresponding sample for the next pixel in a row. This ! * is used in the calculation of the element offset for retrieving samples * from a {@link DataBuffer}. ! * * @return The distance between pixel samples in the same row. */ public final int getPixelStride() *************** public class ComponentSampleModel extend *** 396,405 **** } /** ! * Returns the number of data elements used to store the samples for one * pixel. In this model, this is the same as the number of bands. ! * ! * @return The number of data elements used to store the samples for one * pixel. */ public final int getNumDataElements() --- 396,405 ---- } /** ! * Returns the number of data elements used to store the samples for one * pixel. In this model, this is the same as the number of bands. ! * ! * @return The number of data elements used to store the samples for one * pixel. */ public final int getNumDataElements() *************** public class ComponentSampleModel extend *** 409,425 **** /** * Returns the samples for the pixel at location (x, y) in ! * a primitive array (the array type is determined by the data type for * this model). The obj argument provides an option to supply * an existing array to hold the result, if this is null a new * array will be allocated. ! * * @param x the x-coordinate. * @param y the y-coordinate. ! * @param obj a primitive array that, if not null, will be * used to store and return the sample values. * @param data the data buffer (null not permitted). ! * * @return An array of sample values for the specified pixel. */ public Object getDataElements(int x, int y, Object obj, DataBuffer data) --- 409,425 ---- /** * Returns the samples for the pixel at location (x, y) in ! * a primitive array (the array type is determined by the data type for * this model). The obj argument provides an option to supply * an existing array to hold the result, if this is null a new * array will be allocated. ! * * @param x the x-coordinate. * @param y the y-coordinate. ! * @param obj a primitive array that, if not null, will be * used to store and return the sample values. * @param data the data buffer (null not permitted). ! * * @return An array of sample values for the specified pixel. */ public Object getDataElements(int x, int y, Object obj, DataBuffer data) *************** public class ComponentSampleModel extend *** 502,524 **** /** * Returns all the samples for the pixel at location (x, y) * stored in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param iArray an array that will be populated with the sample values and ! * returned as the result. The size of this array should be equal to the * number of bands in the model. If the array is null, a new * array is created. * @param data the data buffer (null not permitted). ! * * @return The samples for the specified pixel. ! * * @see #setPixel(int, int, int[], DataBuffer) */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { if (x < 0 || x >= width || y < 0 || y >= height) ! throw new ArrayIndexOutOfBoundsException("Pixel (" + x + ", " + y + ") is out of bounds."); int offset = pixelStride * x + scanlineStride * y; if (iArray == null) --- 502,524 ---- /** * Returns all the samples for the pixel at location (x, y) * stored in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param iArray an array that will be populated with the sample values and ! * returned as the result. The size of this array should be equal to the * number of bands in the model. If the array is null, a new * array is created. * @param data the data buffer (null not permitted). ! * * @return The samples for the specified pixel. ! * * @see #setPixel(int, int, int[], DataBuffer) */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { if (x < 0 || x >= width || y < 0 || y >= height) ! throw new ArrayIndexOutOfBoundsException("Pixel (" + x + ", " + y + ") is out of bounds."); int offset = pixelStride * x + scanlineStride * y; if (iArray == null) *************** public class ComponentSampleModel extend *** 532,553 **** /** * Returns the samples for all the pixels in a rectangular region. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param w the width. * @param h the height. ! * @param iArray an array that if non-null will be populated * with the sample values and returned as the result. * @param data the data buffer (null not permitted). ! * * @return The samples for all the pixels in the rectangle. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) { int offset = pixelStride * x + scanlineStride * y; ! if (iArray == null) iArray = new int[numBands * w * h]; int outOffset = 0; for (y = 0; y < h; y++) --- 532,553 ---- /** * Returns the samples for all the pixels in a rectangular region. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param w the width. * @param h the height. ! * @param iArray an array that if non-null will be populated * with the sample values and returned as the result. * @param data the data buffer (null not permitted). ! * * @return The samples for all the pixels in the rectangle. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) { int offset = pixelStride * x + scanlineStride * y; ! if (iArray == null) iArray = new int[numBands * w * h]; int outOffset = 0; for (y = 0; y < h; y++) *************** public class ComponentSampleModel extend *** 557,563 **** { for (int b = 0; b < numBands; b++) { ! iArray[outOffset++] = data.getElem(bankIndices[b], lineOffset+bandOffsets[b]); } lineOffset += pixelStride; --- 557,563 ---- { for (int b = 0; b < numBands; b++) { ! iArray[outOffset++] = data.getElem(bankIndices[b], lineOffset+bandOffsets[b]); } lineOffset += pixelStride; *************** public class ComponentSampleModel extend *** 566,606 **** } return iArray; } ! /** ! * Returns the sample for band b of the pixel at * (x, y) that is stored in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param b the band index. * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * ! * @throws ArrayIndexOutOfBoundsException if (x, y) is outside * the bounds [0, 0, width, height]. ! * * @see #setSample(int, int, int, int, DataBuffer) */ public int getSample(int x, int y, int b, DataBuffer data) { if (x < 0 || x >= width || y < 0 || y >= height) ! throw new ArrayIndexOutOfBoundsException("Sample (" + x + ", " + y + ") is out of bounds."); return data.getElem(bankIndices[b], getOffset(x, y, b)); } /** ! * Sets the samples for the pixel at location (x, y) from the ! * supplied primitive array (the array type must be consistent with the data * type for this model). ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param obj a primitive array containing the pixel's sample values. * @param data the data buffer (null not permitted). ! * * @see #setDataElements(int, int, Object, DataBuffer) */ public void setDataElements(int x, int y, Object obj, DataBuffer data) --- 566,606 ---- } return iArray; } ! /** ! * Returns the sample for band b of the pixel at * (x, y) that is stored in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param b the band index. * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * ! * @throws ArrayIndexOutOfBoundsException if (x, y) is outside * the bounds [0, 0, width, height]. ! * * @see #setSample(int, int, int, int, DataBuffer) */ public int getSample(int x, int y, int b, DataBuffer data) { if (x < 0 || x >= width || y < 0 || y >= height) ! throw new ArrayIndexOutOfBoundsException("Sample (" + x + ", " + y + ") is out of bounds."); return data.getElem(bankIndices[b], getOffset(x, y, b)); } /** ! * Sets the samples for the pixel at location (x, y) from the ! * supplied primitive array (the array type must be consistent with the data * type for this model). ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param obj a primitive array containing the pixel's sample values. * @param data the data buffer (null not permitted). ! * * @see #setDataElements(int, int, Object, DataBuffer) */ public void setDataElements(int x, int y, Object obj, DataBuffer data) *************** public class ComponentSampleModel extend *** 652,667 **** break; } } ! /** * Sets the sample values for the pixel at location (x, y) * stored in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param iArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * * @see #getPixel(int, int, int[], DataBuffer) */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) --- 652,667 ---- break; } } ! /** * Sets the sample values for the pixel at location (x, y) * stored in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param iArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * * @see #getPixel(int, int, int[], DataBuffer) */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) *************** public class ComponentSampleModel extend *** 670,693 **** for (int b = 0; b < numBands; b++) data.setElem(bankIndices[b], offset + bandOffsets[b], iArray[b]); } ! /** * Sets the sample value for band b of the pixel at location * (x, y) in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param b the band index. * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @see #getSample(int, int, int, DataBuffer) */ public void setSample(int x, int y, int b, int s, DataBuffer data) { data.setElem(bankIndices[b], getOffset(x, y, b), s); } ! /** * Tests this sample model for equality with an arbitrary object. Returns * true if and only if: --- 670,693 ---- for (int b = 0; b < numBands; b++) data.setElem(bankIndices[b], offset + bandOffsets[b], iArray[b]); } ! /** * Sets the sample value for band b of the pixel at location * (x, y) in the specified data buffer. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param b the band index. * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @see #getSample(int, int, int, DataBuffer) */ public void setSample(int x, int y, int b, int s, DataBuffer data) { data.setElem(bankIndices[b], getOffset(x, y, b), s); } ! /** * Tests this sample model for equality with an arbitrary object. Returns * true if and only if: *************** public class ComponentSampleModel extend *** 700,709 **** * scanlineStride, bandOffsets and * bankIndices fields.

      • *
      ! * * @param obj the object to test (null permitted). ! * ! * @return true if this sample model is equal to * obj, and false otherwise. */ public boolean equals(Object obj) --- 700,709 ---- * scanlineStride, bandOffsets and * bankIndices fields.
    • *
    ! * * @param obj the object to test (null permitted). ! * ! * @return true if this sample model is equal to * obj, and false otherwise. */ public boolean equals(Object obj) *************** public class ComponentSampleModel extend *** 730,739 **** // couldn't find any difference, so... return true; } ! /** * Returns a hash code for this sample model. ! * * @return The hash code. */ public int hashCode() --- 730,739 ---- // couldn't find any difference, so... return true; } ! /** * Returns a hash code for this sample model. ! * * @return The hash code. */ public int hashCode() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ConvolveOp.java gcc-4.6.0/libjava/classpath/java/awt/image/ConvolveOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ConvolveOp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/ConvolveOp.java Tue Jan 11 19:46:05 2011 *************** import java.awt.geom.Rectangle2D; *** 44,101 **** /** * Convolution filter. ! * * ConvolveOp convolves the source image with a Kernel to generate a * destination image. This involves multiplying each pixel and its neighbors * with elements in the kernel to compute a new pixel. ! * * Each band in a Raster is convolved and copied to the destination Raster. ! * For BufferedImages, convolution is applied to all components. Color * conversion will be applied if needed. ! * * Note that this filter ignores whether the source or destination is alpha * premultiplied. The reference spec states that data will be premultiplied * prior to convolving and divided back out afterwards (if needed), but testing * has shown that this is not the case with their implementation. ! * * @author jlquinn@optonline.net */ public class ConvolveOp implements BufferedImageOp, RasterOp { /** Edge pixels are set to 0. */ public static final int EDGE_ZERO_FILL = 0; ! /** Edge pixels are copied from the source. */ public static final int EDGE_NO_OP = 1; ! private Kernel kernel; private int edge; private RenderingHints hints; /** * Construct a ConvolveOp. ! * * The edge condition specifies that pixels outside the area that can be * filtered are either set to 0 or copied from the source image. ! * * @param kernel The kernel to convolve with. * @param edgeCondition Either EDGE_ZERO_FILL or EDGE_NO_OP. * @param hints Rendering hints for color conversion, or null. */ public ConvolveOp(Kernel kernel, ! int edgeCondition, ! RenderingHints hints) { this.kernel = kernel; edge = edgeCondition; this.hints = hints; } ! /** * Construct a ConvolveOp. ! * * The edge condition defaults to EDGE_ZERO_FILL. ! * * @param kernel The kernel to convolve with. */ public ConvolveOp(Kernel kernel) --- 44,101 ---- /** * Convolution filter. ! * * ConvolveOp convolves the source image with a Kernel to generate a * destination image. This involves multiplying each pixel and its neighbors * with elements in the kernel to compute a new pixel. ! * * Each band in a Raster is convolved and copied to the destination Raster. ! * For BufferedImages, convolution is applied to all components. Color * conversion will be applied if needed. ! * * Note that this filter ignores whether the source or destination is alpha * premultiplied. The reference spec states that data will be premultiplied * prior to convolving and divided back out afterwards (if needed), but testing * has shown that this is not the case with their implementation. ! * * @author jlquinn@optonline.net */ public class ConvolveOp implements BufferedImageOp, RasterOp { /** Edge pixels are set to 0. */ public static final int EDGE_ZERO_FILL = 0; ! /** Edge pixels are copied from the source. */ public static final int EDGE_NO_OP = 1; ! private Kernel kernel; private int edge; private RenderingHints hints; /** * Construct a ConvolveOp. ! * * The edge condition specifies that pixels outside the area that can be * filtered are either set to 0 or copied from the source image. ! * * @param kernel The kernel to convolve with. * @param edgeCondition Either EDGE_ZERO_FILL or EDGE_NO_OP. * @param hints Rendering hints for color conversion, or null. */ public ConvolveOp(Kernel kernel, ! int edgeCondition, ! RenderingHints hints) { this.kernel = kernel; edge = edgeCondition; this.hints = hints; } ! /** * Construct a ConvolveOp. ! * * The edge condition defaults to EDGE_ZERO_FILL. ! * * @param kernel The kernel to convolve with. */ public ConvolveOp(Kernel kernel) *************** public class ConvolveOp implements Buffe *** 108,115 **** /** * Converts the source image using the kernel specified in the * constructor. The resulting image is stored in the destination image if one ! * is provided; otherwise a new BufferedImage is created and returned. ! * * The source and destination BufferedImage (if one is supplied) must have * the same dimensions. * --- 108,115 ---- /** * Converts the source image using the kernel specified in the * constructor. The resulting image is stored in the destination image if one ! * is provided; otherwise a new BufferedImage is created and returned. ! * * The source and destination BufferedImage (if one is supplied) must have * the same dimensions. * *************** public class ConvolveOp implements Buffe *** 124,133 **** if (src == dst) throw new IllegalArgumentException("Source and destination images " + "cannot be the same."); ! if (dst == null) dst = createCompatibleDestImage(src, src.getColorModel()); ! // Make sure source image is premultiplied BufferedImage src1 = src; // The spec says we should do this, but mauve testing shows that Sun's --- 124,133 ---- if (src == dst) throw new IllegalArgumentException("Source and destination images " + "cannot be the same."); ! if (dst == null) dst = createCompatibleDestImage(src, src.getColorModel()); ! // Make sure source image is premultiplied BufferedImage src1 = src; // The spec says we should do this, but mauve testing shows that Sun's *************** public class ConvolveOp implements Buffe *** 146,160 **** dst1 = createCompatibleDestImage(src, src.getColorModel()); filter(src1.getRaster(), dst1.getRaster()); ! // Since we don't coerceData above, we don't need to divide it back out. // This is wrong (one mauve test specifically tests converting a non- // premultiplied image to a premultiplied image, and it shows that Sun // simply ignores the premultipled flag, contrary to the spec), but we // mimic it for compatibility. /* ! if (! dst.isAlphaPremultiplied()) ! dst1.coerceData(false); */ // Convert between color models if needed --- 146,160 ---- dst1 = createCompatibleDestImage(src, src.getColorModel()); filter(src1.getRaster(), dst1.getRaster()); ! // Since we don't coerceData above, we don't need to divide it back out. // This is wrong (one mauve test specifically tests converting a non- // premultiplied image to a premultiplied image, and it shows that Sun // simply ignores the premultipled flag, contrary to the spec), but we // mimic it for compatibility. /* ! if (! dst.isAlphaPremultiplied()) ! dst1.coerceData(false); */ // Convert between color models if needed *************** public class ConvolveOp implements Buffe *** 166,172 **** /** * Creates an empty BufferedImage with the size equal to the source and the ! * correct number of bands. The new image is created with the specified * ColorModel, or if no ColorModel is supplied, an appropriate one is chosen. * * @param src The source image. --- 166,172 ---- /** * Creates an empty BufferedImage with the size equal to the source and the ! * correct number of bands. The new image is created with the specified * ColorModel, or if no ColorModel is supplied, an appropriate one is chosen. * * @param src The source image. *************** public class ConvolveOp implements Buffe *** 191,207 **** { return hints; } ! /** * Get the edge condition for this Op. ! * * @return The edge condition. */ public int getEdgeCondition() { return edge; } ! /** * Returns (a clone of) the convolution kernel. * --- 191,207 ---- { return hints; } ! /** * Get the edge condition for this Op. ! * * @return The edge condition. */ public int getEdgeCondition() { return edge; } ! /** * Returns (a clone of) the convolution kernel. * *************** public class ConvolveOp implements Buffe *** 213,225 **** } /** ! * Converts the source raster using the kernel specified in the constructor. ! * The resulting raster is stored in the destination raster if one is * provided; otherwise a new WritableRaster is created and returned. ! * * If the convolved value for a sample is outside the range of [0-255], it * will be clipped. ! * * The source and destination raster (if one is supplied) cannot be the same, * and must also have the same dimensions. * --- 213,225 ---- } /** ! * Converts the source raster using the kernel specified in the constructor. ! * The resulting raster is stored in the destination raster if one is * provided; otherwise a new WritableRaster is created and returned. ! * * If the convolved value for a sample is outside the range of [0-255], it * will be clipped. ! * * The source and destination raster (if one is supplied) cannot be the same, * and must also have the same dimensions. * *************** public class ConvolveOp implements Buffe *** 233,239 **** { if (src == dest) throw new IllegalArgumentException("src == dest is not allowed."); ! if (kernel.getWidth() > src.getWidth() || kernel.getHeight() > src.getHeight()) throw new ImagingOpException("The kernel is too large."); if (dest == null) --- 233,239 ---- { if (src == dest) throw new IllegalArgumentException("src == dest is not allowed."); ! if (kernel.getWidth() > src.getWidth() || kernel.getHeight() > src.getHeight()) throw new ImagingOpException("The kernel is too large."); if (dest == null) *************** public class ConvolveOp implements Buffe *** 248,259 **** int right = Math.max(kWidth - left - 1, 0); int top = kernel.getYOrigin(); int bottom = Math.max(kHeight - top - 1, 0); ! // Calculate max sample values for clipping int[] maxValue = src.getSampleModel().getSampleSize(); for (int i = 0; i < maxValue.length; i++) maxValue[i] = (int)Math.pow(2, maxValue[i]) - 1; ! // process the region that is reachable... int regionW = src.width - left - right; int regionH = src.height - top - bottom; --- 248,259 ---- int right = Math.max(kWidth - left - 1, 0); int top = kernel.getYOrigin(); int bottom = Math.max(kHeight - top - 1, 0); ! // Calculate max sample values for clipping int[] maxValue = src.getSampleModel().getSampleSize(); for (int i = 0; i < maxValue.length; i++) maxValue[i] = (int)Math.pow(2, maxValue[i]) - 1; ! // process the region that is reachable... int regionW = src.width - left - right; int regionH = src.height - top - bottom; *************** public class ConvolveOp implements Buffe *** 271,278 **** src.getSamples(x, y, kWidth, kHeight, b, tmp); for (int i = 0; i < tmp.length; i++) v += tmp[tmp.length - i - 1] * kvals[i]; ! // FIXME: in the above line, I've had to reverse the order of ! // the samples array to make the tests pass. I haven't worked // out why this is necessary. // This clipping is is undocumented, but determined by testing. --- 271,278 ---- src.getSamples(x, y, kWidth, kHeight, b, tmp); for (int i = 0; i < tmp.length; i++) v += tmp[tmp.length - i - 1] * kvals[i]; ! // FIXME: in the above line, I've had to reverse the order of ! // the samples array to make the tests pass. I haven't worked // out why this is necessary. // This clipping is is undocumented, but determined by testing. *************** public class ConvolveOp implements Buffe *** 281,314 **** else if (v < 0) v = 0; ! dest.setSample(x + kernel.getXOrigin(), y + kernel.getYOrigin(), b, v); } } } ! // fill in the top border fillEdge(src, dest, 0, 0, src.width, top, edge); ! // fill in the bottom border fillEdge(src, dest, 0, src.height - bottom, src.width, bottom, edge); ! // fill in the left border fillEdge(src, dest, 0, top, left, regionH, edge); ! // fill in the right border fillEdge(src, dest, src.width - right, top, right, regionH, edge); ! ! return dest; } ! /** * Fills a range of pixels (typically at the edge of a raster) with either ! * zero values (if edgeOp is EDGE_ZERO_FILL) or the * corresponding pixel values from the source raster (if edgeOp ! * is EDGE_NO_OP). This utility method is called by the * {@link #fillEdge(Raster, WritableRaster, int, int, int, int, int)} method. ! * * @param src the source raster. * @param dest the destination raster. * @param x the x-coordinate of the top left pixel in the range. --- 281,314 ---- else if (v < 0) v = 0; ! dest.setSample(x + kernel.getXOrigin(), y + kernel.getYOrigin(), b, v); } } } ! // fill in the top border fillEdge(src, dest, 0, 0, src.width, top, edge); ! // fill in the bottom border fillEdge(src, dest, 0, src.height - bottom, src.width, bottom, edge); ! // fill in the left border fillEdge(src, dest, 0, top, left, regionH, edge); ! // fill in the right border fillEdge(src, dest, src.width - right, top, right, regionH, edge); ! ! return dest; } ! /** * Fills a range of pixels (typically at the edge of a raster) with either ! * zero values (if edgeOp is EDGE_ZERO_FILL) or the * corresponding pixel values from the source raster (if edgeOp ! * is EDGE_NO_OP). This utility method is called by the * {@link #fillEdge(Raster, WritableRaster, int, int, int, int, int)} method. ! * * @param src the source raster. * @param dest the destination raster. * @param x the x-coordinate of the top left pixel in the range. *************** public class ConvolveOp implements Buffe *** 318,325 **** * @param edgeOp indicates how to determine the values for the range * (either {@link #EDGE_ZERO_FILL} or {@link #EDGE_NO_OP}). */ ! private void fillEdge(Raster src, WritableRaster dest, int x, int y, int w, ! int h, int edgeOp) { if (w <= 0) return; --- 318,325 ---- * @param edgeOp indicates how to determine the values for the range * (either {@link #EDGE_ZERO_FILL} or {@link #EDGE_NO_OP}). */ ! private void fillEdge(Raster src, WritableRaster dest, int x, int y, int w, ! int h, int edgeOp) { if (w <= 0) return; *************** public class ConvolveOp implements Buffe *** 328,334 **** if (edgeOp == EDGE_ZERO_FILL) // fill region with zeroes { float[] zeros = new float[src.getNumBands() * w * h]; ! dest.setPixels(x, y, w, h, zeros); } else // copy pixels from source { --- 328,334 ---- if (edgeOp == EDGE_ZERO_FILL) // fill region with zeroes { float[] zeros = new float[src.getNumBands() * w * h]; ! dest.setPixels(x, y, w, h, zeros); } else // copy pixels from source { *************** public class ConvolveOp implements Buffe *** 366,372 **** * Returns the corresponding destination point for a source point. Because * this is not a geometric operation, the destination and source points will * be identical. ! * * @param src The source point. * @param dst The transformed destination point. * @return The transformed destination point. --- 366,372 ---- * Returns the corresponding destination point for a source point. Because * this is not a geometric operation, the destination and source points will * be identical. ! * * @param src The source point. * @param dst The transformed destination point. * @return The transformed destination point. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/CropImageFilter.java gcc-4.6.0/libjava/classpath/java/awt/image/CropImageFilter.java *** gcc-4.5.2/libjava/classpath/java/awt/image/CropImageFilter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/CropImageFilter.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 44,50 **** /** * Currently this filter does almost nothing and needs to be implemented. * ! * @author C. Brian Jones (cbj@gnu.org) */ public class CropImageFilter extends ImageFilter { --- 44,50 ---- /** * Currently this filter does almost nothing and needs to be implemented. * ! * @author C. Brian Jones (cbj@gnu.org) */ public class CropImageFilter extends ImageFilter { *************** public class CropImageFilter extends Ima *** 62,71 **** * @param height the height of the cropped rectangle */ public CropImageFilter(int x, int y, int width, int height) { ! this.x = x; ! this.y = y; ! this.width = width; ! this.height = height; } /** --- 62,71 ---- * @param height the height of the cropped rectangle */ public CropImageFilter(int x, int y, int width, int height) { ! this.x = x; ! this.y = y; ! this.width = width; ! this.height = height; } /** *************** public class CropImageFilter extends Ima *** 73,86 **** * being produced using this method. This filter overrides this * method in order to set the dimentions to the size of the * cropped rectangle instead of the size of the image. ! * * @param width the width of the image ! * @param height the height of the image */ public void setDimensions(int width, int height) { if (consumer != null) ! consumer.setDimensions(this.width, this.height); } /** --- 73,86 ---- * being produced using this method. This filter overrides this * method in order to set the dimentions to the size of the * cropped rectangle instead of the size of the image. ! * * @param width the width of the image ! * @param height the height of the image */ public void setDimensions(int width, int height) { if (consumer != null) ! consumer.setDimensions(this.width, this.height); } /** *************** public class CropImageFilter extends Ima *** 89,95 **** *
    * FIXME - What property is set for this class? * ! * @param props the list of properties associated with this image */ public void setProperties(Hashtable props) { --- 89,95 ---- *
    * FIXME - What property is set for this class? * ! * @param props the list of properties associated with this image */ public void setProperties(Hashtable props) { *************** public class CropImageFilter extends Ima *** 102,108 **** /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as a byte at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 102,108 ---- /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as a byte at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle *************** public class CropImageFilter extends Ima *** 113,149 **** * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize) { ! Rectangle filterBounds = new Rectangle(this.x, this.y, ! this.width, this.height); ! Rectangle pixelBounds = new Rectangle(x, y, w, h); ! if (filterBounds.intersects(pixelBounds)) ! { ! Rectangle bounds = filterBounds.intersection(pixelBounds); ! byte[] cropped = new byte[bounds.width * bounds.height]; ! for (int i = 0; i < bounds.height; i++) ! { ! int start = (bounds.y - pixelBounds.y + i) * scansize + offset; ! for (int j = 0; j < bounds.width; j++) ! cropped[i * bounds.width + j] = pixels[start + bounds.x + j]; ! } ! ! if (consumer != null) ! consumer.setPixels(0, 0, ! bounds.width, bounds.height, ! model, cropped, 0, bounds.width); ! } } /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 113,149 ---- * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize) { ! Rectangle filterBounds = new Rectangle(this.x, this.y, ! this.width, this.height); ! Rectangle pixelBounds = new Rectangle(x, y, w, h); ! if (filterBounds.intersects(pixelBounds)) ! { ! Rectangle bounds = filterBounds.intersection(pixelBounds); ! byte[] cropped = new byte[bounds.width * bounds.height]; ! for (int i = 0; i < bounds.height; i++) ! { ! int start = (bounds.y - pixelBounds.y + i) * scansize + offset; ! for (int j = 0; j < bounds.width; j++) ! cropped[i * bounds.width + j] = pixels[start + bounds.x + j]; ! } ! ! if (consumer != null) ! consumer.setPixels(0, 0, ! bounds.width, bounds.height, ! model, cropped, 0, bounds.width); ! } } /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle *************** public class CropImageFilter extends Ima *** 154,185 **** * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize) { ! Rectangle filterBounds = new Rectangle(this.x, this.y, ! this.width, this.height); ! Rectangle pixelBounds = new Rectangle(x, y, w, h); ! if (filterBounds.intersects(pixelBounds)) ! { ! Rectangle bounds = filterBounds.intersection(pixelBounds); ! int[] cropped = new int[bounds.width * bounds.height]; ! for (int i = 0; i < bounds.height; i++) ! { ! int start = (bounds.y - pixelBounds.y + i) * scansize + offset; ! for (int j = 0; j < bounds.width; j++) ! cropped[i * bounds.width + j] = pixels[start + bounds.x + j]; ! } ! ! if (consumer != null) ! consumer.setPixels(0, 0, ! bounds.width, bounds.height, ! model, cropped, 0, bounds.width); ! } } } - --- 154,184 ---- * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize) { ! Rectangle filterBounds = new Rectangle(this.x, this.y, ! this.width, this.height); ! Rectangle pixelBounds = new Rectangle(x, y, w, h); ! if (filterBounds.intersects(pixelBounds)) ! { ! Rectangle bounds = filterBounds.intersection(pixelBounds); ! int[] cropped = new int[bounds.width * bounds.height]; ! for (int i = 0; i < bounds.height; i++) ! { ! int start = (bounds.y - pixelBounds.y + i) * scansize + offset; ! for (int j = 0; j < bounds.width; j++) ! cropped[i * bounds.width + j] = pixels[start + bounds.x + j]; ! } ! ! if (consumer != null) ! consumer.setPixels(0, 0, ! bounds.width, bounds.height, ! model, cropped, 0, bounds.width); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/DataBuffer.java gcc-4.6.0/libjava/classpath/java/awt/image/DataBuffer.java *** gcc-4.5.2/libjava/classpath/java/awt/image/DataBuffer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/image/DataBuffer.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 36,42 **** package java.awt.image; ! /** * Class that manages arrays of data elements. A data buffer consists * of one or more banks. A bank is a continuous region of data * elements. --- 36,42 ---- package java.awt.image; ! /** * Class that manages arrays of data elements. A data buffer consists * of one or more banks. A bank is a continuous region of data * elements. *************** public abstract class DataBuffer *** 52,82 **** public static final int TYPE_BYTE = 0; /** ! * A constant representing a data type that uses short * primitives as the storage unit. */ public static final int TYPE_USHORT = 1; /** ! * A constant representing a data type that uses short * primitives as the storage unit. */ public static final int TYPE_SHORT = 2; /** ! * A constant representing a data type that uses int * primitives as the storage unit. */ public static final int TYPE_INT = 3; ! /** ! * A constant representing a data type that uses float * primitives as the storage unit. */ public static final int TYPE_FLOAT = 4; /** ! * A constant representing a data type that uses double * primitives as the storage unit. */ public static final int TYPE_DOUBLE = 5; --- 52,82 ---- public static final int TYPE_BYTE = 0; /** ! * A constant representing a data type that uses short * primitives as the storage unit. */ public static final int TYPE_USHORT = 1; /** ! * A constant representing a data type that uses short * primitives as the storage unit. */ public static final int TYPE_SHORT = 2; /** ! * A constant representing a data type that uses int * primitives as the storage unit. */ public static final int TYPE_INT = 3; ! /** ! * A constant representing a data type that uses float * primitives as the storage unit. */ public static final int TYPE_FLOAT = 4; /** ! * A constant representing a data type that uses double * primitives as the storage unit. */ public static final int TYPE_DOUBLE = 5; *************** public abstract class DataBuffer *** 85,114 **** * A constant representing an undefined data type. */ public static final int TYPE_UNDEFINED = 32; ! /** The type of the data elements stored in the data buffer. */ protected int dataType; ! /** The number of banks in this buffer. */ protected int banks = 1; ! /** Offset into the default (0'th) bank). */ protected int offset; // FIXME: Is offsets[0] always mirrored in offset? ! /** The size of the banks. */ protected int size; ! /** Offset into each bank. */ protected int[] offsets; ! /** * Creates a new DataBuffer with the specified data type and ! * size. The dataType should be one of the constants ! * {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, {@link #TYPE_USHORT}, * {@link #TYPE_INT}, {@link #TYPE_FLOAT} and {@link #TYPE_DOUBLE}. *

    * The physical (array-based) storage is allocated by a subclass. ! * * @param dataType the data type. * @param size the number of elements in the buffer. */ --- 85,114 ---- * A constant representing an undefined data type. */ public static final int TYPE_UNDEFINED = 32; ! /** The type of the data elements stored in the data buffer. */ protected int dataType; ! /** The number of banks in this buffer. */ protected int banks = 1; ! /** Offset into the default (0'th) bank). */ protected int offset; // FIXME: Is offsets[0] always mirrored in offset? ! /** The size of the banks. */ protected int size; ! /** Offset into each bank. */ protected int[] offsets; ! /** * Creates a new DataBuffer with the specified data type and ! * size. The dataType should be one of the constants ! * {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, {@link #TYPE_USHORT}, * {@link #TYPE_INT}, {@link #TYPE_FLOAT} and {@link #TYPE_DOUBLE}. *

    * The physical (array-based) storage is allocated by a subclass. ! * * @param dataType the data type. * @param size the number of elements in the buffer. */ *************** public abstract class DataBuffer *** 119,131 **** /** * Creates a new DataBuffer with the specified data type, ! * size and number of banks. The dataType should be one of ! * the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. *

    * The physical (array-based) storage is allocated by a subclass. ! * * @param dataType the data type. * @param size the number of elements in the buffer. * @param numBanks the number of data banks. --- 119,131 ---- /** * Creates a new DataBuffer with the specified data type, ! * size and number of banks. The dataType should be one of ! * the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. *

    * The physical (array-based) storage is allocated by a subclass. ! * * @param dataType the data type. * @param size the number of elements in the buffer. * @param numBanks the number of data banks. *************** public abstract class DataBuffer *** 137,149 **** /** * Creates a new DataBuffer with the specified data type, * size and number of banks. An offset (which applies to all banks) is ! * also specified. The dataType should be one of ! * the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. *

    * The physical (array-based) storage is allocated by a subclass. ! * * @param dataType the data type. * @param size the number of elements in the buffer. * @param numBanks the number of data banks. --- 137,149 ---- /** * Creates a new DataBuffer with the specified data type, * size and number of banks. An offset (which applies to all banks) is ! * also specified. The dataType should be one of ! * the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. *

    * The physical (array-based) storage is allocated by a subclass. ! * * @param dataType the data type. * @param size the number of elements in the buffer. * @param numBanks the number of data banks. *************** public abstract class DataBuffer *** 163,204 **** /** * Creates a new DataBuffer with the specified data type, * size and number of banks. An offset (which applies to all banks) is ! * also specified. The dataType should be one of ! * the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. *

    * The physical (array-based) storage is allocated by a subclass. ! * * @param dataType the data type. * @param size the number of elements in the buffer. * @param numBanks the number of data banks. * @param offsets the offsets to the first element for all banks. ! * ! * @throws ArrayIndexOutOfBoundsException if * numBanks != offsets.length. */ protected DataBuffer(int dataType, int size, int numBanks, int[] offsets) { ! if (numBanks != offsets.length) throw new ArrayIndexOutOfBoundsException(); this.dataType = dataType; this.size = size; banks = numBanks; this.offsets = offsets; ! offset = offsets[0]; } ! /** * Returns the size (number of bits) of the specified data type. Valid types ! * are defined by the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. ! * * @param dataType the data type. * @return The number of bits for the specified data type. ! * @throws IllegalArgumentException if dataType < 0 or * dataType > TYPE_DOUBLE. */ public static int getDataTypeSize(int dataType) { --- 163,204 ---- /** * Creates a new DataBuffer with the specified data type, * size and number of banks. An offset (which applies to all banks) is ! * also specified. The dataType should be one of ! * the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. *

    * The physical (array-based) storage is allocated by a subclass. ! * * @param dataType the data type. * @param size the number of elements in the buffer. * @param numBanks the number of data banks. * @param offsets the offsets to the first element for all banks. ! * ! * @throws ArrayIndexOutOfBoundsException if * numBanks != offsets.length. */ protected DataBuffer(int dataType, int size, int numBanks, int[] offsets) { ! if (numBanks != offsets.length) throw new ArrayIndexOutOfBoundsException(); this.dataType = dataType; this.size = size; banks = numBanks; this.offsets = offsets; ! offset = offsets[0]; } ! /** * Returns the size (number of bits) of the specified data type. Valid types ! * are defined by the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. ! * * @param dataType the data type. * @return The number of bits for the specified data type. ! * @throws IllegalArgumentException if dataType < 0 or * dataType > TYPE_DOUBLE. */ public static int getDataTypeSize(int dataType) { *************** public abstract class DataBuffer *** 206,262 **** switch (dataType) { case TYPE_BYTE: ! return 8; case TYPE_USHORT: case TYPE_SHORT: ! return 16; case TYPE_INT: case TYPE_FLOAT: ! return 32; case TYPE_DOUBLE: ! return 64; default: ! throw new IllegalArgumentException(); } } /** * Returns the type of the data elements in the data buffer. Valid types ! * are defined by the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. ! * * @return The type. */ public int getDataType() { return dataType; } ! /** * Returns the size of the data buffer. ! * * @return The size. */ public int getSize() { return size; } ! /** * Returns the element offset for the first data bank. ! * * @return The element offset. */ public int getOffset() { return offset; } ! /** ! * Returns the offsets for all the data banks used by this * DataBuffer. ! * * @return The offsets. */ public int[] getOffsets() --- 206,262 ---- switch (dataType) { case TYPE_BYTE: ! return 8; case TYPE_USHORT: case TYPE_SHORT: ! return 16; case TYPE_INT: case TYPE_FLOAT: ! return 32; case TYPE_DOUBLE: ! return 64; default: ! throw new IllegalArgumentException(); } } /** * Returns the type of the data elements in the data buffer. Valid types ! * are defined by the constants {@link #TYPE_BYTE}, {@link #TYPE_SHORT}, ! * {@link #TYPE_USHORT}, {@link #TYPE_INT}, {@link #TYPE_FLOAT} and * {@link #TYPE_DOUBLE}. ! * * @return The type. */ public int getDataType() { return dataType; } ! /** * Returns the size of the data buffer. ! * * @return The size. */ public int getSize() { return size; } ! /** * Returns the element offset for the first data bank. ! * * @return The element offset. */ public int getOffset() { return offset; } ! /** ! * Returns the offsets for all the data banks used by this * DataBuffer. ! * * @return The offsets. */ public int[] getOffsets() *************** public abstract class DataBuffer *** 281,289 **** /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ --- 281,289 ---- /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ *************** public abstract class DataBuffer *** 294,313 **** /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. */ public abstract int getElem(int bank, int i); ! /** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ --- 294,313 ---- /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. */ public abstract int getElem(int bank, int i); ! /** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public abstract class DataBuffer *** 320,337 **** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. */ public abstract void setElem(int bank, int i, int val); ! /** ! * Returns an element from the first data bank, converted to a ! * float. The offset (specified in the constructor) is added * to i before accessing the underlying data array. ! * * @param i the element index. * @return The element. */ --- 320,337 ---- * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. */ public abstract void setElem(int bank, int i, int val); ! /** ! * Returns an element from the first data bank, converted to a ! * float. The offset (specified in the constructor) is added * to i before accessing the underlying data array. ! * * @param i the element index. * @return The element. */ *************** public abstract class DataBuffer *** 339,350 **** { return getElem(i); } ! /** ! * Returns an element from a particular data bank, converted to a ! * float. The offset (specified in the constructor) is * added to i before accessing the underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. --- 339,350 ---- { return getElem(i); } ! /** ! * Returns an element from a particular data bank, converted to a ! * float. The offset (specified in the constructor) is * added to i before accessing the underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. *************** public abstract class DataBuffer *** 357,364 **** /** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying ! * data array. ! * * @param i the element index. * @param val the new element value. */ --- 357,364 ---- /** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying ! * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public abstract class DataBuffer *** 371,377 **** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. --- 371,377 ---- * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. *************** public abstract class DataBuffer *** 382,391 **** } /** ! * Returns an element from the first data bank, converted to a * double. The offset (specified in the constructor) is added * to i before accessing the underlying data array. ! * * @param i the element index. * @return The element. */ --- 382,391 ---- } /** ! * Returns an element from the first data bank, converted to a * double. The offset (specified in the constructor) is added * to i before accessing the underlying data array. ! * * @param i the element index. * @return The element. */ *************** public abstract class DataBuffer *** 393,404 **** { return getElem(i); } ! /** ! * Returns an element from a particular data bank, converted to a ! * double. The offset (specified in the constructor) is * added to i before accessing the underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. --- 393,404 ---- { return getElem(i); } ! /** ! * Returns an element from a particular data bank, converted to a ! * double. The offset (specified in the constructor) is * added to i before accessing the underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. *************** public abstract class DataBuffer *** 411,418 **** /** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying ! * data array. ! * * @param i the element index. * @param val the new element value. */ --- 411,418 ---- /** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying ! * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public abstract class DataBuffer *** 425,431 **** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. --- 425,431 ---- * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferByte.java gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferByte.java *** gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferByte.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferByte.java Tue Jan 11 19:46:05 2011 *************** package java.awt.image; *** 48,66 **** /** * A {@link DataBuffer} that uses an array of byte primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public final class DataBufferByte extends DataBuffer { private byte[] data; private byte[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of byte elements. ! * * @param size the number of elements in the data bank. */ public DataBufferByte(int size) --- 48,66 ---- /** * A {@link DataBuffer} that uses an array of byte primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public final class DataBufferByte extends DataBuffer { private byte[] data; private byte[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of byte elements. ! * * @param size the number of elements in the data bank. */ public DataBufferByte(int size) *************** public final class DataBufferByte extend *** 72,80 **** } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of byte elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ --- 72,80 ---- } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of byte elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ *************** public final class DataBufferByte extend *** 88,97 **** /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ --- 88,97 ---- /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ *************** public final class DataBufferByte extend *** 102,116 **** data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. --- 102,116 ---- data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. *************** public final class DataBufferByte extend *** 125,135 **** /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferByte(byte[][] dataArray, int size) --- 125,135 ---- /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferByte(byte[][] dataArray, int size) *************** public final class DataBufferByte extend *** 142,153 **** /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferByte(byte[][] dataArray, int size, int[] offsets) --- 142,153 ---- /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferByte(byte[][] dataArray, int size, int[] offsets) *************** public final class DataBufferByte extend *** 159,198 **** /** * Returns the first data bank. ! * * @return The first data bank. */ public byte[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ ! public byte[] getData(int bank) { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public byte[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ --- 159,198 ---- /** * Returns the first data bank. ! * * @return The first data bank. */ public byte[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ ! public byte[] getData(int bank) { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public byte[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ *************** public final class DataBufferByte extend *** 200,211 **** { return data[i+offset] & 0xff; // get unsigned byte as int } ! /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. --- 200,211 ---- { return data[i+offset] & 0xff; // get unsigned byte as int } ! /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. *************** public final class DataBufferByte extend *** 220,226 **** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ --- 220,226 ---- * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public final class DataBufferByte extend *** 233,239 **** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. --- 233,239 ---- * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferDouble.java gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferDouble.java *** gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferDouble.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferDouble.java Tue Jan 11 19:46:05 2011 *************** package java.awt.image; *** 48,55 **** /** * A {@link DataBuffer} that uses an array of double primitives ! * to represent each of its banks. ! * * @since 1.4 * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) --- 48,55 ---- /** * A {@link DataBuffer} that uses an array of double primitives ! * to represent each of its banks. ! * * @since 1.4 * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) *************** public final class DataBufferDouble *** 60,70 **** { private double[] data; private double[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of double elements. ! * * @param size the number of elements in the data bank. */ public DataBufferDouble(int size) --- 60,70 ---- { private double[] data; private double[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of double elements. ! * * @param size the number of elements in the data bank. */ public DataBufferDouble(int size) *************** public final class DataBufferDouble *** 76,84 **** } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of double elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ --- 76,84 ---- } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of double elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ *************** public final class DataBufferDouble *** 92,101 **** /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ --- 92,101 ---- /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ *************** public final class DataBufferDouble *** 106,120 **** data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. --- 106,120 ---- data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. *************** public final class DataBufferDouble *** 129,139 **** /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferDouble(double[][] dataArray, int size) --- 129,139 ---- /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferDouble(double[][] dataArray, int size) *************** public final class DataBufferDouble *** 146,157 **** /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferDouble(double[][] dataArray, int size, int[] offsets) --- 146,157 ---- /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferDouble(double[][] dataArray, int size, int[] offsets) *************** public final class DataBufferDouble *** 163,179 **** /** * Returns the first data bank. ! * * @return The first data bank. */ public double[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ --- 163,179 ---- /** * Returns the first data bank. ! * * @return The first data bank. */ public double[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ *************** public final class DataBufferDouble *** 181,202 **** { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public double[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ --- 181,202 ---- { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public double[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ *************** public final class DataBufferDouble *** 207,215 **** /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. --- 207,215 ---- /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. *************** public final class DataBufferDouble *** 223,229 **** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ --- 223,229 ---- * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public final class DataBufferDouble *** 236,242 **** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. --- 236,242 ---- * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. *************** public final class DataBufferDouble *** 250,256 **** { return (float) data[i+offset]; } ! public float getElemFloat(int bank, int i) { return (float) bankData[bank][i+offsets[bank]]; --- 250,256 ---- { return (float) data[i+offset]; } ! public float getElemFloat(int bank, int i) { return (float) bankData[bank][i+offsets[bank]]; *************** public final class DataBufferDouble *** 270,276 **** { return data[i + offset]; } ! public double getElemDouble(int bank, int i) { return bankData[bank][i + offsets[bank]]; --- 270,276 ---- { return data[i + offset]; } ! public double getElemDouble(int bank, int i) { return bankData[bank][i + offsets[bank]]; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferFloat.java gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferFloat.java *** gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferFloat.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferFloat.java Tue Jan 11 19:46:05 2011 *************** package java.awt.image; *** 48,55 **** /** * A {@link DataBuffer} that uses an array of float primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) * @author Sascha Brawer (brawer@dandelis.ch) */ --- 48,55 ---- /** * A {@link DataBuffer} that uses an array of float primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) * @author Sascha Brawer (brawer@dandelis.ch) */ *************** public final class DataBufferFloat *** 58,68 **** { private float[] data; private float[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of float elements. ! * * @param size the number of elements in the data bank. */ public DataBufferFloat(int size) --- 58,68 ---- { private float[] data; private float[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of float elements. ! * * @param size the number of elements in the data bank. */ public DataBufferFloat(int size) *************** public final class DataBufferFloat *** 74,82 **** } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of float elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ --- 74,82 ---- } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of float elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ *************** public final class DataBufferFloat *** 90,99 **** /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ --- 90,99 ---- /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ *************** public final class DataBufferFloat *** 104,118 **** data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. --- 104,118 ---- data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. *************** public final class DataBufferFloat *** 127,137 **** /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferFloat(float[][] dataArray, int size) --- 127,137 ---- /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferFloat(float[][] dataArray, int size) *************** public final class DataBufferFloat *** 144,155 **** /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferFloat(float[][] dataArray, int size, int[] offsets) --- 144,155 ---- /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferFloat(float[][] dataArray, int size, int[] offsets) *************** public final class DataBufferFloat *** 161,177 **** /** * Returns the first data bank. ! * * @return The first data bank. */ public float[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ --- 161,177 ---- /** * Returns the first data bank. ! * * @return The first data bank. */ public float[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ *************** public final class DataBufferFloat *** 179,200 **** { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public float[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ --- 179,200 ---- { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public float[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ *************** public final class DataBufferFloat *** 205,213 **** /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. --- 205,213 ---- /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. *************** public final class DataBufferFloat *** 221,227 **** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ --- 221,227 ---- * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public final class DataBufferFloat *** 234,240 **** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. --- 234,240 ---- * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. *************** public final class DataBufferFloat *** 248,254 **** { return data[i+offset]; } ! public float getElemFloat(int bank, int i) { return bankData[bank][i+offsets[bank]]; --- 248,254 ---- { return data[i+offset]; } ! public float getElemFloat(int bank, int i) { return bankData[bank][i+offsets[bank]]; *************** public final class DataBufferFloat *** 268,274 **** { return getElemFloat(i); } ! public double getElemDouble(int bank, int i) { return getElemFloat(bank, i); --- 268,274 ---- { return getElemFloat(i); } ! public double getElemDouble(int bank, int i) { return getElemFloat(bank, i); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferInt.java gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferInt.java *** gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferInt.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferInt.java Tue Jan 11 19:46:05 2011 *************** package java.awt.image; *** 48,66 **** /** * A {@link DataBuffer} that uses an array of int primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public final class DataBufferInt extends DataBuffer { private int[] data; private int[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of int elements. ! * * @param size the number of elements in the data bank. */ public DataBufferInt(int size) --- 48,66 ---- /** * A {@link DataBuffer} that uses an array of int primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public final class DataBufferInt extends DataBuffer { private int[] data; private int[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of int elements. ! * * @param size the number of elements in the data bank. */ public DataBufferInt(int size) *************** public final class DataBufferInt extends *** 72,80 **** } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of int elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ --- 72,80 ---- } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of int elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ *************** public final class DataBufferInt extends *** 84,97 **** bankData = new int[numBanks][size]; data = bankData[0]; } ! /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ --- 84,97 ---- bankData = new int[numBanks][size]; data = bankData[0]; } ! /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ *************** public final class DataBufferInt extends *** 102,116 **** data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. --- 102,116 ---- data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. *************** public final class DataBufferInt extends *** 122,135 **** data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferInt(int[][] dataArray, int size) --- 122,135 ---- data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferInt(int[][] dataArray, int size) *************** public final class DataBufferInt extends *** 138,153 **** bankData = dataArray; data = bankData[0]; } ! /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferInt(int[][] dataArray, int size, int[] offsets) --- 138,153 ---- bankData = dataArray; data = bankData[0]; } ! /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferInt(int[][] dataArray, int size, int[] offsets) *************** public final class DataBufferInt extends *** 159,175 **** /** * Returns the first data bank. ! * * @return The first data bank. */ public int[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ --- 159,175 ---- /** * Returns the first data bank. ! * * @return The first data bank. */ public int[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ *************** public final class DataBufferInt extends *** 177,197 **** { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public int[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset is * added to the specified index before accessing the underlying data array. ! * * @param i the element index. * @return The element. */ --- 177,197 ---- { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public int[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset is * added to the specified index before accessing the underlying data array. ! * * @param i the element index. * @return The element. */ *************** public final class DataBufferInt extends *** 201,210 **** } /** ! * Returns an element from a particular data bank. The offset ! * is added to the specified index before accessing the underlying data * array. ! * * @param bank the bank index. * @param i the element index. * @return The element. --- 201,210 ---- } /** ! * Returns an element from a particular data bank. The offset ! * is added to the specified index before accessing the underlying data * array. ! * * @param bank the bank index. * @param i the element index. * @return The element. *************** public final class DataBufferInt extends *** 219,225 **** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ --- 219,225 ---- * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public final class DataBufferInt extends *** 227,238 **** { data[i+offset] = val; } ! /** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. --- 227,238 ---- { data[i+offset] = val; } ! /** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferShort.java gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferShort.java *** gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferShort.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferShort.java Tue Jan 11 19:46:05 2011 *************** package java.awt.image; *** 49,67 **** /** * A {@link DataBuffer} that uses an array of short primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public final class DataBufferShort extends DataBuffer { private short[] data; private short[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of short elements. ! * * @param size the number of elements in the data bank. */ public DataBufferShort(int size) --- 49,67 ---- /** * A {@link DataBuffer} that uses an array of short primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public final class DataBufferShort extends DataBuffer { private short[] data; private short[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of short elements. ! * * @param size the number of elements in the data bank. */ public DataBufferShort(int size) *************** public final class DataBufferShort exten *** 73,81 **** } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of short elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ --- 73,81 ---- } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of short elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ *************** public final class DataBufferShort exten *** 89,98 **** /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ --- 89,98 ---- /** * Creates a new data buffer backed by the specified data bank. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. */ *************** public final class DataBufferShort exten *** 103,117 **** data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. --- 103,117 ---- data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. *

    ! * Note: there is no exception when dataArray is * null, but in that case an exception will be thrown * later if you attempt to access the data buffer. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. *************** public final class DataBufferShort exten *** 126,136 **** /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferShort(short[][] dataArray, int size) --- 126,136 ---- /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferShort(short[][] dataArray, int size) *************** public final class DataBufferShort exten *** 143,154 **** /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferShort(short[][] dataArray, int size, int[] offsets) --- 143,154 ---- /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferShort(short[][] dataArray, int size, int[] offsets) *************** public final class DataBufferShort exten *** 160,176 **** /** * Returns the first data bank. ! * * @return The first data bank. */ public short[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ --- 160,176 ---- /** * Returns the first data bank. ! * * @return The first data bank. */ public short[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ *************** public final class DataBufferShort exten *** 178,199 **** { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public short[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ --- 178,199 ---- { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public short[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ *************** public final class DataBufferShort exten *** 204,212 **** /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. --- 204,212 ---- /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. *************** public final class DataBufferShort exten *** 220,226 **** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ --- 220,226 ---- * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public final class DataBufferShort exten *** 233,239 **** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. --- 233,239 ---- * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferUShort.java gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferUShort.java *** gcc-4.5.2/libjava/classpath/java/awt/image/DataBufferUShort.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/DataBufferUShort.java Tue Jan 11 19:46:05 2011 *************** package java.awt.image; *** 49,67 **** /** * A {@link DataBuffer} that uses an array of short primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public final class DataBufferUShort extends DataBuffer { private short[] data; private short[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of short elements. ! * * @param size the number of elements in the data bank. */ public DataBufferUShort(int size) --- 49,67 ---- /** * A {@link DataBuffer} that uses an array of short primitives ! * to represent each of its banks. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public final class DataBufferUShort extends DataBuffer { private short[] data; private short[][] bankData; ! /** ! * Creates a new data buffer with a single data bank containing the * specified number of short elements. ! * * @param size the number of elements in the data bank. */ public DataBufferUShort(int size) *************** public final class DataBufferUShort exte *** 73,81 **** } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of short elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ --- 73,81 ---- } /** ! * Creates a new data buffer with the specified number of data banks, * each containing the specified number of short elements. ! * * @param size the number of elements in the data bank. * @param numBanks the number of data banks. */ *************** public final class DataBufferUShort exte *** 88,94 **** /** * Creates a new data buffer backed by the specified data bank. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * --- 88,94 ---- /** * Creates a new data buffer backed by the specified data bank. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * *************** public final class DataBufferUShort exte *** 103,113 **** data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. --- 103,113 ---- data = dataArray; bankData[0] = data; } ! /** * Creates a new data buffer backed by the specified data bank, with * the specified offset to the first element. ! * * @param dataArray the data bank. * @param size the number of elements in the data bank. * @param offset the offset to the first element in the array. *************** public final class DataBufferUShort exte *** 126,136 **** /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferUShort(short[][] dataArray, int size) --- 126,136 ---- /** * Creates a new data buffer backed by the specified data banks. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferUShort(short[][] dataArray, int size) *************** public final class DataBufferUShort exte *** 143,154 **** /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferUShort(short[][] dataArray, int size, int[] offsets) --- 143,154 ---- /** * Creates a new data buffer backed by the specified data banks, with * the specified offsets to the first element in each bank. ! * * @param dataArray the data banks. * @param size the number of elements in the data bank. * @param offsets the offsets to the first element in each data bank. ! * ! * @throws NullPointerException if dataArray is * null. */ public DataBufferUShort(short[][] dataArray, int size, int[] offsets) *************** public final class DataBufferUShort exte *** 160,176 **** /** * Returns the first data bank. ! * * @return The first data bank. */ public short[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ --- 160,176 ---- /** * Returns the first data bank. ! * * @return The first data bank. */ public short[] getData() { return data; } ! /** * Returns a data bank. ! * * @param bank the bank index. * @return A data bank. */ *************** public final class DataBufferUShort exte *** 178,199 **** { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public short[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ --- 178,199 ---- { return bankData[bank]; } ! /** * Returns the array underlying this DataBuffer. ! * * @return The data banks. */ public short[][] getBankData() { return bankData; } ! /** * Returns an element from the first data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param i the element index. * @return The element. */ *************** public final class DataBufferUShort exte *** 204,212 **** /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. --- 204,212 ---- /** * Returns an element from a particular data bank. The offset (specified in ! * the constructor) is added to i before accessing the * underlying data array. ! * * @param bank the bank index. * @param i the element index. * @return The element. *************** public final class DataBufferUShort exte *** 221,227 **** * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ --- 221,227 ---- * Sets an element in the first data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param i the element index. * @param val the new element value. */ *************** public final class DataBufferUShort exte *** 234,240 **** * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. --- 234,240 ---- * Sets an element in a particular data bank. The offset (specified in the * constructor) is added to i before updating the underlying * data array. ! * * @param bank the data bank index. * @param i the element index. * @param val the new element value. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/DirectColorModel.java gcc-4.6.0/libjava/classpath/java/awt/image/DirectColorModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/DirectColorModel.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/DirectColorModel.java Tue Jan 11 19:46:05 2011 *************** public class DirectColorModel extends Pa *** 57,75 **** * Each mask should describe a fully contiguous set of bits in the * most likely order of alpha, red, green, blue from the most significant * byte to the least significant byte. ! * * @param pixelBits the number of bits wide used for bit size of pixel values * @param rmask the bits describing the red component of a pixel * @param gmask the bits describing the green component of a pixel ! * @param bmask the bits describing the blue component of a pixel */ public DirectColorModel(int pixelBits, int rmask, int gmask, int bmask) { this(ColorSpace.getInstance(ColorSpace.CS_sRGB), pixelBits, ! rmask, gmask, bmask, 0, ! false, // not alpha premultiplied ! Buffers.smallestAppropriateTransferType(pixelBits) // find type ! ); } /** --- 57,75 ---- * Each mask should describe a fully contiguous set of bits in the * most likely order of alpha, red, green, blue from the most significant * byte to the least significant byte. ! * * @param pixelBits the number of bits wide used for bit size of pixel values * @param rmask the bits describing the red component of a pixel * @param gmask the bits describing the green component of a pixel ! * @param bmask the bits describing the blue component of a pixel */ public DirectColorModel(int pixelBits, int rmask, int gmask, int bmask) { this(ColorSpace.getInstance(ColorSpace.CS_sRGB), pixelBits, ! rmask, gmask, bmask, 0, ! false, // not alpha premultiplied ! Buffers.smallestAppropriateTransferType(pixelBits) // find type ! ); } /** *************** public class DirectColorModel extends Pa *** 78,111 **** * Each mask should describe a fully contiguous set of bits in the * most likely order of red, green, blue from the most significant * byte to the least significant byte. ! * * @param pixelBits the number of bits wide used for bit size of pixel values * @param rmask the bits describing the red component of a pixel * @param gmask the bits describing the green component of a pixel ! * @param bmask the bits describing the blue component of a pixel ! * @param amask the bits describing the alpha component of a pixel */ public DirectColorModel(int pixelBits, ! int rmask, int gmask, int bmask, int amask) { this(ColorSpace.getInstance(ColorSpace.CS_sRGB), pixelBits, ! rmask, gmask, bmask, amask, ! false, // not alpha premultiplied ! Buffers.smallestAppropriateTransferType(pixelBits) // find type ! ); } public DirectColorModel(ColorSpace cspace, int pixelBits, ! int rmask, int gmask, int bmask, int amask, ! boolean isAlphaPremultiplied, ! int transferType) { super(cspace, pixelBits, ! rmask, gmask, bmask, amask, isAlphaPremultiplied, ! ((amask == 0) ? Transparency.OPAQUE : Transparency.TRANSLUCENT), ! transferType); } ! public final int getRedMask() { return getMask(0); --- 78,111 ---- * Each mask should describe a fully contiguous set of bits in the * most likely order of red, green, blue from the most significant * byte to the least significant byte. ! * * @param pixelBits the number of bits wide used for bit size of pixel values * @param rmask the bits describing the red component of a pixel * @param gmask the bits describing the green component of a pixel ! * @param bmask the bits describing the blue component of a pixel ! * @param amask the bits describing the alpha component of a pixel */ public DirectColorModel(int pixelBits, ! int rmask, int gmask, int bmask, int amask) { this(ColorSpace.getInstance(ColorSpace.CS_sRGB), pixelBits, ! rmask, gmask, bmask, amask, ! false, // not alpha premultiplied ! Buffers.smallestAppropriateTransferType(pixelBits) // find type ! ); } public DirectColorModel(ColorSpace cspace, int pixelBits, ! int rmask, int gmask, int bmask, int amask, ! boolean isAlphaPremultiplied, ! int transferType) { super(cspace, pixelBits, ! rmask, gmask, bmask, amask, isAlphaPremultiplied, ! ((amask == 0) ? Transparency.OPAQUE : Transparency.TRANSLUCENT), ! transferType); } ! public final int getRedMask() { return getMask(0); *************** public class DirectColorModel extends Pa *** 143,149 **** { return extractAndNormalizeSample(pixel, 1); } ! /** * Get the blue component of the given pixel. *
    --- 143,149 ---- { return extractAndNormalizeSample(pixel, 1); } ! /** * Get the blue component of the given pixel. *
    *************** public class DirectColorModel extends Pa *** 184,195 **** /** * Get the RGB color value of the given pixel using the default ! * RGB color model. *
    * * @param pixel a pixel value */ ! public final int getRGB(int pixel) { /* FIXME: The Sun docs show that this method is overridden, but I don't see any way to improve on the superclass --- 184,195 ---- /** * Get the RGB color value of the given pixel using the default ! * RGB color model. *
    * * @param pixel a pixel value */ ! public final int getRGB(int pixel) { /* FIXME: The Sun docs show that this method is overridden, but I don't see any way to improve on the superclass *************** public class DirectColorModel extends Pa *** 211,217 **** { return getBlue(getPixelFromArray(inData)); } ! public int getAlpha(Object inData) { return getAlpha(getPixelFromArray(inData)); --- 211,217 ---- { return getBlue(getPixelFromArray(inData)); } ! public int getAlpha(Object inData) { return getAlpha(getPixelFromArray(inData)); *************** public class DirectColorModel extends Pa *** 221,227 **** { return getRGB(getPixelFromArray(inData)); } ! /** * Converts a normalized pixel int value in the sRGB color * space to an array containing a single pixel of the color space --- 221,227 ---- { return getRGB(getPixelFromArray(inData)); } ! /** * Converts a normalized pixel int value in the sRGB color * space to an array containing a single pixel of the color space *************** public class DirectColorModel extends Pa *** 231,237 **** * getRGB(Object inData). * * @param rgb pixel as a normalized sRGB, 0xAARRGGBB value. ! * * @param pixel to avoid needless creation of arrays, an array to * use to return the pixel can be given. If null, a suitable array * will be created. --- 231,237 ---- * getRGB(Object inData). * * @param rgb pixel as a normalized sRGB, 0xAARRGGBB value. ! * * @param pixel to avoid needless creation of arrays, an array to * use to return the pixel can be given. If null, a suitable array * will be created. *************** public class DirectColorModel extends Pa *** 244,303 **** public Object getDataElements(int rgb, Object pixel) { // FIXME: handle alpha multiply ! int pixelValue = 0; int a = 0; if (hasAlpha()) { a = (rgb >>> 24) & 0xff; pixelValue = valueToField(a, 3, 8); } ! if (hasAlpha() && isAlphaPremultiplied()) { ! int r, g, b; ! /* if r=0xff and a=0xff, then resulting ! value will be (r*a)>>>8 == 0xfe... This seems wrong. ! We should divide by 255 rather than shifting >>>8 after ! multiplying. ! ! Too bad, shifting is probably less expensive. ! r = ((rgb >>> 16) & 0xff)*a; ! g = ((rgb >>> 8) & 0xff)*a; ! b = ((rgb >>> 0) & 0xff)*a; */ ! /* The r, g, b values we calculate are 16 bit. This allows ! us to avoid discarding the lower 8 bits obtained if ! multiplying with the alpha band. */ ! ! // using 16 bit values ! r = ((rgb >>> 8) & 0xff00)*a/255; ! g = ((rgb >>> 0) & 0xff00)*a/255; ! b = ((rgb << 8) & 0xff00)*a/255; ! pixelValue |= ! valueToField(r, 0, 16) | // Red ! valueToField(g, 1, 16) | // Green ! valueToField(b, 2, 16); // Blue } else { ! int r, g, b; ! // using 8 bit values ! r = (rgb >>> 16) & 0xff; ! g = (rgb >>> 8) & 0xff; ! b = (rgb >>> 0) & 0xff; ! ! pixelValue |= ! valueToField(r, 0, 8) | // Red ! valueToField(g, 1, 8) | // Green ! valueToField(b, 2, 8); // Blue } ! /* In this color model, the whole pixel fits in the first element of the array. */ DataBuffer buffer = Buffers.createBuffer(transferType, pixel, 1); buffer.setElem(0, pixelValue); return Buffers.getData(buffer); } ! /** * Converts a value to the correct field bits based on the * information derived from the field masks. --- 244,303 ---- public Object getDataElements(int rgb, Object pixel) { // FIXME: handle alpha multiply ! int pixelValue = 0; int a = 0; if (hasAlpha()) { a = (rgb >>> 24) & 0xff; pixelValue = valueToField(a, 3, 8); } ! if (hasAlpha() && isAlphaPremultiplied()) { ! int r, g, b; ! /* if r=0xff and a=0xff, then resulting ! value will be (r*a)>>>8 == 0xfe... This seems wrong. ! We should divide by 255 rather than shifting >>>8 after ! multiplying. ! ! Too bad, shifting is probably less expensive. ! r = ((rgb >>> 16) & 0xff)*a; ! g = ((rgb >>> 8) & 0xff)*a; ! b = ((rgb >>> 0) & 0xff)*a; */ ! /* The r, g, b values we calculate are 16 bit. This allows ! us to avoid discarding the lower 8 bits obtained if ! multiplying with the alpha band. */ ! ! // using 16 bit values ! r = ((rgb >>> 8) & 0xff00)*a/255; ! g = ((rgb >>> 0) & 0xff00)*a/255; ! b = ((rgb << 8) & 0xff00)*a/255; ! pixelValue |= ! valueToField(r, 0, 16) | // Red ! valueToField(g, 1, 16) | // Green ! valueToField(b, 2, 16); // Blue } else { ! int r, g, b; ! // using 8 bit values ! r = (rgb >>> 16) & 0xff; ! g = (rgb >>> 8) & 0xff; ! b = (rgb >>> 0) & 0xff; ! ! pixelValue |= ! valueToField(r, 0, 8) | // Red ! valueToField(g, 1, 8) | // Green ! valueToField(b, 2, 8); // Blue } ! /* In this color model, the whole pixel fits in the first element of the array. */ DataBuffer buffer = Buffers.createBuffer(transferType, pixel, 1); buffer.setElem(0, pixelValue); return Buffers.getData(buffer); } ! /** * Converts a value to the correct field bits based on the * information derived from the field masks. *************** public class DirectColorModel extends Pa *** 307,319 **** */ private int valueToField(int val, int component, int highBit) { ! int toFieldShift = getComponentSize(component) + shifts[component] - highBit; int ret = (toFieldShift>0) ? (val << toFieldShift) : (val >>> (-toFieldShift)); return ret & getMask(component); ! } /** * Converts a 16 bit value to the correct field bits based on the --- 307,319 ---- */ private int valueToField(int val, int component, int highBit) { ! int toFieldShift = getComponentSize(component) + shifts[component] - highBit; int ret = (toFieldShift>0) ? (val << toFieldShift) : (val >>> (-toFieldShift)); return ret & getMask(component); ! } /** * Converts a 16 bit value to the correct field bits based on the *************** public class DirectColorModel extends Pa *** 336,350 **** { int numComponents = getNumComponents(); if (components == null) components = new int[offset + numComponents]; ! for (int b=0; b>> shifts[b]; ! return components; } public final int[] getComponents(Object pixel, int[] components, ! int offset) { return getComponents(getPixelFromArray(pixel), components, offset); } --- 336,350 ---- { int numComponents = getNumComponents(); if (components == null) components = new int[offset + numComponents]; ! for (int b=0; b>> shifts[b]; ! return components; } public final int[] getComponents(Object pixel, int[] components, ! int offset) { return getComponents(getPixelFromArray(pixel), components, offset); } *************** public class DirectColorModel extends Pa *** 368,386 **** SampleModel sm = createCompatibleSampleModel(w, h); Point origin = new Point(0, 0); ! return Raster.createWritableRaster(sm, origin); } public int getDataElement(int[] components, int offset) { int numComponents = getNumComponents(); int pixelValue = 0; ! for (int c=0; cImageConsumer with this ! * ImageProducer. */ public synchronized void addConsumer(ImageConsumer ic) { ! if (consumers.containsKey(ic)) ! return; ! ImageFilter f = filter.getFilterInstance(ic); ! consumers.put(ic, f); ! ip.addConsumer(f); } /** * Used to determine if the given ImageConsumer is ! * already registered with this ImageProducer. */ public synchronized boolean isConsumer(ImageConsumer ic) { ! ImageFilter f = (ImageFilter)consumers.get(ic); ! if (f != null) ! return ip.isConsumer(f); ! return false; } /** * Used to remove an ImageConsumer from the list of ! * registered consumers for this ImageProducer. */ public synchronized void removeConsumer(ImageConsumer ic) { ! ImageFilter f = (ImageFilter)consumers.remove(ic); ! if (f != null) ! ip.removeConsumer(f); } /** * Used to register an ImageConsumer with this * ImageProducer and then immediately start * reconstruction of the image data to be delivered to all ! * registered consumers. */ public void startProduction(ImageConsumer ic) { ! ImageFilter f; ! if (!(consumers.containsKey(ic))) { ! f = filter.getFilterInstance(ic); ! consumers.put(ic, f); ! ip.addConsumer(f); ! } else { ! f = (ImageFilter)consumers.get( ic ); ! } ! ip.startProduction(f); } /** * Used to register an ImageConsumer with this * ImageProducer and then request that this producer ! * resend the image data in the order top-down, left-right. */ public void requestTopDownLeftRightResend(ImageConsumer ic) { ! ImageFilter f = (ImageFilter)consumers.get(ic); ! ip.requestTopDownLeftRightResend(f); } } - --- 53,124 ---- /** * The given filter is applied to the given image producer ! * to create a new image producer. */ public FilteredImageSource(ImageProducer ip, ImageFilter filter) { ! this.ip = ip; ! this.filter = filter; } /** * Used to register an ImageConsumer with this ! * ImageProducer. */ public synchronized void addConsumer(ImageConsumer ic) { ! if (consumers.containsKey(ic)) ! return; ! ImageFilter f = filter.getFilterInstance(ic); ! consumers.put(ic, f); ! ip.addConsumer(f); } /** * Used to determine if the given ImageConsumer is ! * already registered with this ImageProducer. */ public synchronized boolean isConsumer(ImageConsumer ic) { ! ImageFilter f = (ImageFilter)consumers.get(ic); ! if (f != null) ! return ip.isConsumer(f); ! return false; } /** * Used to remove an ImageConsumer from the list of ! * registered consumers for this ImageProducer. */ public synchronized void removeConsumer(ImageConsumer ic) { ! ImageFilter f = (ImageFilter)consumers.remove(ic); ! if (f != null) ! ip.removeConsumer(f); } /** * Used to register an ImageConsumer with this * ImageProducer and then immediately start * reconstruction of the image data to be delivered to all ! * registered consumers. */ public void startProduction(ImageConsumer ic) { ! ImageFilter f; ! if (!(consumers.containsKey(ic))) { ! f = filter.getFilterInstance(ic); ! consumers.put(ic, f); ! ip.addConsumer(f); ! } else { ! f = (ImageFilter)consumers.get( ic ); ! } ! ip.startProduction(f); } /** * Used to register an ImageConsumer with this * ImageProducer and then request that this producer ! * resend the image data in the order top-down, left-right. */ public void requestTopDownLeftRightResend(ImageConsumer ic) { ! ImageFilter f = (ImageFilter)consumers.get(ic); ! ip.requestTopDownLeftRightResend(f); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ImageConsumer.java gcc-4.6.0/libjava/classpath/java/awt/image/ImageConsumer.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ImageConsumer.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/ImageConsumer.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 43,49 **** /** * An object implementing the ImageProducer interface can * use objects implementing this interface to deliver the image data. ! * * @author C. Brian Jones (cbj@gnu.org) */ public interface ImageConsumer --- 43,49 ---- /** * An object implementing the ImageProducer interface can * use objects implementing this interface to deliver the image data. ! * * @author C. Brian Jones (cbj@gnu.org) */ public interface ImageConsumer *************** public interface ImageConsumer *** 52,58 **** * The pixel order may be random. This should be * the default assumption of the ImageConsumer. * ! * @see #setHints */ int RANDOMPIXELORDER = 1; --- 52,58 ---- * The pixel order may be random. This should be * the default assumption of the ImageConsumer. * ! * @see #setHints */ int RANDOMPIXELORDER = 1; *************** public interface ImageConsumer *** 75,81 **** * most one call to setPixels for any single pixel. * * @see #setHints ! * @see #setPixels(int, int, int, int, ColorModel, int[], int, int) */ int SINGLEPASS = 8; --- 75,81 ---- * most one call to setPixels for any single pixel. * * @see #setHints ! * @see #setPixels(int, int, int, int, ColorModel, int[], int, int) */ int SINGLEPASS = 8; *************** public interface ImageConsumer *** 87,95 **** * changing such as with video then the end of each frame is * marked by a similar call to imageComplete with the * SINGLEFRAMEDONE flag. ! * * @see #setHints ! * @see #imageComplete */ int SINGLEFRAME = 16; --- 87,95 ---- * changing such as with video then the end of each frame is * marked by a similar call to imageComplete with the * SINGLEFRAMEDONE flag. ! * * @see #setHints ! * @see #imageComplete */ int SINGLEFRAME = 16; *************** public interface ImageConsumer *** 102,108 **** /** * A single frame is complete but more will follow. ! * * @see #imageComplete */ int SINGLEFRAMEDONE = 2; --- 102,108 ---- /** * A single frame is complete but more will follow. ! * * @see #imageComplete */ int SINGLEFRAMEDONE = 2; *************** public interface ImageConsumer *** 124,132 **** /** * An ImageProducer indicates the size of the image * being produced using this method. ! * * @param width the width of the image ! * @param height the height of the image */ void setDimensions(int width, int height); --- 124,132 ---- /** * An ImageProducer indicates the size of the image * being produced using this method. ! * * @param width the width of the image ! * @param height the height of the image */ void setDimensions(int width, int height); *************** public interface ImageConsumer *** 134,140 **** * An ImageProducer can set a list of properties * associated with this image by using this method. * ! * @param props the list of properties associated with this image */ void setProperties(Hashtable props); --- 134,140 ---- * An ImageProducer can set a list of properties * associated with this image by using this method. * ! * @param props the list of properties associated with this image */ void setProperties(Hashtable props); *************** public interface ImageConsumer *** 145,151 **** * ColorModel. * * @param model the color model to be used most often by setPixels ! * @see ColorModel */ void setColorModel(ColorModel model); --- 145,151 ---- * ColorModel. * * @param model the color model to be used most often by setPixels ! * @see ColorModel */ void setColorModel(ColorModel model); *************** public interface ImageConsumer *** 154,160 **** * bit mask of hints from any of RANDOMPIXELORDER, * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, * SINGLEPASS, SINGLEFRAME. ! * * @param flags a bit mask of hints */ void setHints(int flags); --- 154,160 ---- * bit mask of hints from any of RANDOMPIXELORDER, * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, * SINGLEPASS, SINGLEFRAME. ! * * @param flags a bit mask of hints */ void setHints(int flags); *************** public interface ImageConsumer *** 178,185 **** * @param offset offset into pixels array * @param scansize width of one row in the pixel block */ ! void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize); /** * Deliver a subset of an ImageProducer's pixels to this ImageConsumer. --- 178,185 ---- * @param offset offset into pixels array * @param scansize width of one row in the pixel block */ ! void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize); /** * Deliver a subset of an ImageProducer's pixels to this ImageConsumer. *************** public interface ImageConsumer *** 200,213 **** * @param offset offset into pixels array * @param scansize width of one row in the pixel block */ ! void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize); /** * The ImageProducer calls this method to indicate a * single frame or the entire image is complete. The method is * also used to indicate an error in loading or producing the ! * image. * * @param status the status of image production, represented by a * bitwise OR of ImageConsumer flags --- 200,213 ---- * @param offset offset into pixels array * @param scansize width of one row in the pixel block */ ! void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize); /** * The ImageProducer calls this method to indicate a * single frame or the entire image is complete. The method is * also used to indicate an error in loading or producing the ! * image. * * @param status the status of image production, represented by a * bitwise OR of ImageConsumer flags diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ImageFilter.java gcc-4.6.0/libjava/classpath/java/awt/image/ImageFilter.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ImageFilter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/ImageFilter.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 45,68 **** * extended to provide different types of filters for an image. By * default this class does nothing to an image passing through it. * ! * @author C. Brian Jones (cbj@gnu.org) */ public class ImageFilter implements ImageConsumer, Cloneable { /** * The consumer this filter is filtering an image data stream for. ! * It is initialized in the method getFilterInstance. */ protected ImageConsumer consumer = null; /** * The ImageConsumer can use this method to request ! * the pixels be delivered in top-down, left-right order. ! *
    ! * The filter can respond in three different ways. *

      ! *
    • The default behavior is to forward the request to the ! * ImageProducer * using the method requestTopDownLeftRightResend * and using the filter as the consumer.
    • *
    • The filter has the pixels and can retransmit them in the --- 45,68 ---- * extended to provide different types of filters for an image. By * default this class does nothing to an image passing through it. * ! * @author C. Brian Jones (cbj@gnu.org) */ public class ImageFilter implements ImageConsumer, Cloneable { /** * The consumer this filter is filtering an image data stream for. ! * It is initialized in the method getFilterInstance. */ protected ImageConsumer consumer = null; /** * The ImageConsumer can use this method to request ! * the pixels be delivered in top-down, left-right order. ! *
      ! * The filter can respond in three different ways. *
        ! *
      • The default behavior is to forward the request to the ! * ImageProducer * using the method requestTopDownLeftRightResend * and using the filter as the consumer.
      • *
      • The filter has the pixels and can retransmit them in the *************** public class ImageFilter implements Imag *** 77,83 **** /** * By default, returns a shallow copy of the object created by ! * Object.clone() * * @see java.lang.Object#clone () */ --- 77,83 ---- /** * By default, returns a shallow copy of the object created by ! * Object.clone() * * @see java.lang.Object#clone () */ *************** public class ImageFilter implements Imag *** 98,104 **** /** * This is the only method which can set the * ImageConsumer for this filter. By default a clone ! * of this filter with the appropriate consumer set is returned. * * @see #clone () */ --- 98,104 ---- /** * This is the only method which can set the * ImageConsumer for this filter. By default a clone ! * of this filter with the appropriate consumer set is returned. * * @see #clone () */ *************** public class ImageFilter implements Imag *** 111,123 **** /** * An ImageProducer indicates the size of the image ! * being produced using this method. A filter can override this * method to intercept these calls from the producer in order to * change either the width or the height before in turn calling * the consumer's setDimensions method. ! * * @param width the width of the image ! * @param height the height of the image */ public void setDimensions(int width, int height) { --- 111,123 ---- /** * An ImageProducer indicates the size of the image ! * being produced using this method. A filter can override this * method to intercept these calls from the producer in order to * change either the width or the height before in turn calling * the consumer's setDimensions method. ! * * @param width the width of the image ! * @param height the height of the image */ public void setDimensions(int width, int height) { *************** public class ImageFilter implements Imag *** 128,134 **** * An ImageProducer can set a list of properties * associated with this image by using this method. * ! * @param props the list of properties associated with this image */ public void setProperties(Hashtable props) { --- 128,134 ---- * An ImageProducer can set a list of properties * associated with this image by using this method. * ! * @param props the list of properties associated with this image */ public void setProperties(Hashtable props) { *************** public class ImageFilter implements Imag *** 160,168 **** * The ImageProducer should call this method with a * bit mask of hints from any of RANDOMPIXELORDER, * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, ! * SINGLEPASS, SINGLEFRAME from the * ImageConsumer interface. ! * * @param flags a bit mask of hints * @see ImageConsumer */ --- 160,168 ---- * The ImageProducer should call this method with a * bit mask of hints from any of RANDOMPIXELORDER, * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, ! * SINGLEPASS, SINGLEFRAME from the * ImageConsumer interface. ! * * @param flags a bit mask of hints * @see ImageConsumer */ *************** public class ImageFilter implements Imag *** 174,180 **** /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as a byte at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 174,180 ---- /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as a byte at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle *************** public class ImageFilter implements Imag *** 185,191 **** * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int offset, int scansize) { --- 185,191 ---- * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int offset, int scansize) { *************** public class ImageFilter implements Imag *** 195,201 **** /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 195,201 ---- /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle *************** public class ImageFilter implements Imag *** 206,212 **** * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize) { --- 206,212 ---- * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize) { *************** public class ImageFilter implements Imag *** 217,223 **** * The ImageProducer calls this method to indicate a * single frame or the entire image is complete. The method is * also used to indicate an error in loading or producing the ! * image. */ public void imageComplete(int status) { --- 217,223 ---- * The ImageProducer calls this method to indicate a * single frame or the entire image is complete. The method is * also used to indicate an error in loading or producing the ! * image. */ public void imageComplete(int status) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ImageObserver.java gcc-4.6.0/libjava/classpath/java/awt/image/ImageObserver.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ImageObserver.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/ImageObserver.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Image; *** 46,52 **** * ImageProducer asynchronously. * * @see ImageProducer ! * @author C. Brian Jones (cbj@gnu.org) */ public interface ImageObserver { --- 46,52 ---- * ImageProducer asynchronously. * * @see ImageProducer ! * @author C. Brian Jones (cbj@gnu.org) */ public interface ImageObserver { *************** public interface ImageObserver *** 54,60 **** * The width of the image has been provided as the * width argument to imageUpdate. * ! * @see #imageUpdate */ int WIDTH = 1; --- 54,60 ---- * The width of the image has been provided as the * width argument to imageUpdate. * ! * @see #imageUpdate */ int WIDTH = 1; *************** public interface ImageObserver *** 62,68 **** * The height of the image has been provided as the * height argument to imageUpdate. * ! * @see #imageUpdate */ int HEIGHT = 2; --- 62,68 ---- * The height of the image has been provided as the * height argument to imageUpdate. * ! * @see #imageUpdate */ int HEIGHT = 2; *************** public interface ImageObserver *** 78,84 **** * More pixels are now available for drawing a scaled variation of * the image. * ! * @see #imageUpdate */ int SOMEBITS = 8; --- 78,84 ---- * More pixels are now available for drawing a scaled variation of * the image. * ! * @see #imageUpdate */ int SOMEBITS = 8; *************** public interface ImageObserver *** 86,92 **** * All the pixels needed to draw a complete frame of a multi-frame * image are available. * ! * @see #imageUpdate */ int FRAMEBITS = 16; --- 86,92 ---- * All the pixels needed to draw a complete frame of a multi-frame * image are available. * ! * @see #imageUpdate */ int FRAMEBITS = 16; *************** public interface ImageObserver *** 121,129 **** * @param y the y coordinate of the image * @param width the width of the image * @param height the height of the image ! * ! * @see java.awt.Image */ ! boolean imageUpdate(Image image, int flags, int x, ! int y, int width, int height); } --- 121,129 ---- * @param y the y coordinate of the image * @param width the width of the image * @param height the height of the image ! * ! * @see java.awt.Image */ ! boolean imageUpdate(Image image, int flags, int x, ! int y, int width, int height); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ImageProducer.java gcc-4.6.0/libjava/classpath/java/awt/image/ImageProducer.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ImageProducer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/ImageProducer.java Tue Jan 11 19:46:05 2011 *************** package java.awt.image; *** 45,69 **** * resizing the image. * * @see ImageConsumer ! * @author C. Brian Jones (cbj@gnu.org) */ public interface ImageProducer { /** * Used to register an ImageConsumer with this ! * ImageProducer. */ void addConsumer(ImageConsumer ic); /** * Used to determine if the given ImageConsumer is ! * already registered with this ImageProducer. */ boolean isConsumer(ImageConsumer ic); /** * Used to remove an ImageConsumer from the list of ! * registered consumers for this ImageProducer. */ void removeConsumer(ImageConsumer ic); --- 45,69 ---- * resizing the image. * * @see ImageConsumer ! * @author C. Brian Jones (cbj@gnu.org) */ public interface ImageProducer { /** * Used to register an ImageConsumer with this ! * ImageProducer. */ void addConsumer(ImageConsumer ic); /** * Used to determine if the given ImageConsumer is ! * already registered with this ImageProducer. */ boolean isConsumer(ImageConsumer ic); /** * Used to remove an ImageConsumer from the list of ! * registered consumers for this ImageProducer. */ void removeConsumer(ImageConsumer ic); *************** public interface ImageProducer *** 71,85 **** * Used to register an ImageConsumer with this * ImageProducer and then immediately start * reconstruction of the image data to be delivered to all ! * registered consumers. */ void startProduction(ImageConsumer ic); /** * Used to register an ImageConsumer with this * ImageProducer and then request that this producer ! * resend the image data in the order top-down, left-right. */ void requestTopDownLeftRightResend(ImageConsumer ic); } - --- 71,84 ---- * Used to register an ImageConsumer with this * ImageProducer and then immediately start * reconstruction of the image data to be delivered to all ! * registered consumers. */ void startProduction(ImageConsumer ic); /** * Used to register an ImageConsumer with this * ImageProducer and then request that this producer ! * resend the image data in the order top-down, left-right. */ void requestTopDownLeftRightResend(ImageConsumer ic); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/IndexColorModel.java gcc-4.6.0/libjava/classpath/java/awt/image/IndexColorModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/IndexColorModel.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/IndexColorModel.java Tue Jan 11 19:46:05 2011 *************** import java.math.BigInteger; *** 49,57 **** * Thus, pixel values are indexes into the color map. Each color component is * an 8-bit unsigned value. *

        ! * The IndexColorModel supports a map of valid pixels, allowing ! * the representation of holes in the the color map. The valid map is ! * represented as a {@link BigInteger} where each bit indicates the validity * of the map entry with the same index. *

        * Colors can have alpha components for transparency support. If alpha --- 49,57 ---- * Thus, pixel values are indexes into the color map. Each color component is * an 8-bit unsigned value. *

        ! * The IndexColorModel supports a map of valid pixels, allowing ! * the representation of holes in the the color map. The valid map is ! * represented as a {@link BigInteger} where each bit indicates the validity * of the map entry with the same index. *

        * Colors can have alpha components for transparency support. If alpha *************** import java.math.BigInteger; *** 59,69 **** * supports a reserved pixel value to represent completely transparent colors, * no matter what the actual color component values are. *

        ! * IndexColorModel supports anywhere from 1 to 16 bit index ! * values. The allowed transfer types are {@link DataBuffer#TYPE_BYTE} and * {@link DataBuffer#TYPE_USHORT}. * ! * @author C. Brian Jones (cbj@gnu.org) */ public class IndexColorModel extends ColorModel { --- 59,69 ---- * supports a reserved pixel value to represent completely transparent colors, * no matter what the actual color component values are. *

        ! * IndexColorModel supports anywhere from 1 to 16 bit index ! * values. The allowed transfer types are {@link DataBuffer#TYPE_BYTE} and * {@link DataBuffer#TYPE_USHORT}. * ! * @author C. Brian Jones (cbj@gnu.org) */ public class IndexColorModel extends ColorModel { *************** public class IndexColorModel extends Col *** 74,95 **** private BigInteger validBits = BigInteger.ZERO; /** ! * Creates a new indexed color model for size color elements ! * with no alpha component. Each array must contain at least ! * size elements. For each array, the i-th color is described ! * by reds[i], greens[i] and blues[i]. * ! * @param bits the number of bits needed to represent size * colors. * @param size the number of colors in the color map. * @param reds the red component of all colors. * @param greens the green component of all colors. * @param blues the blue component of all colors. * ! * @throws IllegalArgumentException if bits < 1 or * bits > 16. * @throws NullPointerException if any of the arrays is null. ! * @throws ArrayIndexOutOfBoundsException if size is greater * than the length of the component arrays. */ public IndexColorModel(int bits, int size, byte[] reds, byte[] greens, --- 74,95 ---- private BigInteger validBits = BigInteger.ZERO; /** ! * Creates a new indexed color model for size color elements ! * with no alpha component. Each array must contain at least ! * size elements. For each array, the i-th color is described ! * by reds[i], greens[i] and blues[i]. * ! * @param bits the number of bits needed to represent size * colors. * @param size the number of colors in the color map. * @param reds the red component of all colors. * @param greens the green component of all colors. * @param blues the blue component of all colors. * ! * @throws IllegalArgumentException if bits < 1 or * bits > 16. * @throws NullPointerException if any of the arrays is null. ! * @throws ArrayIndexOutOfBoundsException if size is greater * than the length of the component arrays. */ public IndexColorModel(int bits, int size, byte[] reds, byte[] greens, *************** public class IndexColorModel extends Col *** 100,133 **** /** * Creates a new indexed color model for size color elements. ! * Each array must contain at least size elements. For each ! * array, the i-th color is described by reds[i], greens[i] and blues[i]. ! * All the colors are opaque except for the transparent color. * ! * @param bits the number of bits needed to represent size * colors * @param size the number of colors in the color map * @param reds the red component of all colors * @param greens the green component of all colors * @param blues the blue component of all colors ! * @param trans the index of the transparent color (use -1 for no * transparent color). ! * ! * @throws IllegalArgumentException if bits < 1 or * bits > 16. * @throws NullPointerException if any of the arrays is null. ! * @throws ArrayIndexOutOfBoundsException if size is greater * than the length of the component arrays. */ public IndexColorModel(int bits, int size, byte[] reds, byte[] greens, byte[] blues, int trans) { ! super(bits, nArray(8, (0 <= trans && trans < size) ? 4 : 3), ! ColorSpace.getInstance(ColorSpace.CS_sRGB), ! (0 <= trans && trans < size), // hasAlpha ! false, OPAQUE, ! Buffers.smallestAppropriateTransferType(bits)); ! if (bits < 1) throw new IllegalArgumentException("bits < 1"); if (bits > 16) throw new IllegalArgumentException("bits > 16"); --- 100,133 ---- /** * Creates a new indexed color model for size color elements. ! * Each array must contain at least size elements. For each ! * array, the i-th color is described by reds[i], greens[i] and blues[i]. ! * All the colors are opaque except for the transparent color. * ! * @param bits the number of bits needed to represent size * colors * @param size the number of colors in the color map * @param reds the red component of all colors * @param greens the green component of all colors * @param blues the blue component of all colors ! * @param trans the index of the transparent color (use -1 for no * transparent color). ! * ! * @throws IllegalArgumentException if bits < 1 or * bits > 16. * @throws NullPointerException if any of the arrays is null. ! * @throws ArrayIndexOutOfBoundsException if size is greater * than the length of the component arrays. */ public IndexColorModel(int bits, int size, byte[] reds, byte[] greens, byte[] blues, int trans) { ! super(bits, nArray(8, (0 <= trans && trans < size) ? 4 : 3), ! ColorSpace.getInstance(ColorSpace.CS_sRGB), ! (0 <= trans && trans < size), // hasAlpha ! false, OPAQUE, ! Buffers.smallestAppropriateTransferType(bits)); ! if (bits < 1) throw new IllegalArgumentException("bits < 1"); if (bits > 16) throw new IllegalArgumentException("bits > 16"); *************** public class IndexColorModel extends Col *** 150,184 **** } /** ! * Creates a new indexed color model for size color elements ! * including alpha. Each array must contain at least size ! * elements. For each array, the i-th color is described ! * by reds[i], greens[i], blues[i] and alphas[i]. * ! * @param bits the number of bits needed to represent size * colors. * @param size the number of colors in the color map. * @param reds the red component of all colors. * @param greens the green component of all colors. * @param blues the blue component of all colors. ! * @param alphas the alpha component of all colors (null * permitted). * ! * @throws IllegalArgumentException if bits < 1 or * bits > 16. * @throws NullPointerException if reds, greens or * blues is null. ! * @throws ArrayIndexOutOfBoundsException if size is greater * than the length of the component arrays. */ public IndexColorModel(int bits, int size, byte[] reds, byte[] greens, byte[] blues, byte[] alphas) { ! super(bits, nArray(8, (alphas == null ? 3 : 4)), ! ColorSpace.getInstance(ColorSpace.CS_sRGB), ! (alphas != null), false, TRANSLUCENT, ! Buffers.smallestAppropriateTransferType(bits)); ! if (bits < 1) throw new IllegalArgumentException("bits < 1"); if (bits > 16) throw new IllegalArgumentException("bits > 16"); --- 150,184 ---- } /** ! * Creates a new indexed color model for size color elements ! * including alpha. Each array must contain at least size ! * elements. For each array, the i-th color is described ! * by reds[i], greens[i], blues[i] and alphas[i]. * ! * @param bits the number of bits needed to represent size * colors. * @param size the number of colors in the color map. * @param reds the red component of all colors. * @param greens the green component of all colors. * @param blues the blue component of all colors. ! * @param alphas the alpha component of all colors (null * permitted). * ! * @throws IllegalArgumentException if bits < 1 or * bits > 16. * @throws NullPointerException if reds, greens or * blues is null. ! * @throws ArrayIndexOutOfBoundsException if size is greater * than the length of the component arrays. */ public IndexColorModel(int bits, int size, byte[] reds, byte[] greens, byte[] blues, byte[] alphas) { ! super(bits, nArray(8, (alphas == null ? 3 : 4)), ! ColorSpace.getInstance(ColorSpace.CS_sRGB), ! (alphas != null), false, TRANSLUCENT, ! Buffers.smallestAppropriateTransferType(bits)); ! if (bits < 1) throw new IllegalArgumentException("bits < 1"); if (bits > 16) throw new IllegalArgumentException("bits > 16"); *************** public class IndexColorModel extends Col *** 201,211 **** } else { ! byte alphaZero = (byte) 0x00; byte alphaOne = (byte) 0xFF; for (int i = 0; i < size; i++) { ! alphaZero = (byte) (alphaZero | alphas[i]); alphaOne = (byte) (alphaOne & alphas[i]); rgb[i] = ((alphas[i] & 0xff) << 24 | ((reds[i] & 0xff) << 16) --- 201,211 ---- } else { ! byte alphaZero = (byte) 0x00; byte alphaOne = (byte) 0xFF; for (int i = 0; i < size; i++) { ! alphaZero = (byte) (alphaZero | alphas[i]); alphaOne = (byte) (alphaOne & alphas[i]); rgb[i] = ((alphas[i] & 0xff) << 24 | ((reds[i] & 0xff) << 16) *************** public class IndexColorModel extends Col *** 213,221 **** | (blues[i] & 0xff)); } if ((alphaZero == (byte) 0x00) || (alphaOne == (byte) 0xFF)) ! transparency = BITMASK; ! else ! transparency = TRANSLUCENT; } // Generate a bigint with 1's for every pixel --- 213,221 ---- | (blues[i] & 0xff)); } if ((alphaZero == (byte) 0x00) || (alphaOne == (byte) 0xFF)) ! transparency = BITMASK; ! else ! transparency = TRANSLUCENT; } // Generate a bigint with 1's for every pixel *************** public class IndexColorModel extends Col *** 223,244 **** } /** ! * Creates a new indexed color model using the color components in * cmap. If hasAlpha is true then * cmap contains an alpha component after each of the red, green * and blue components. * ! * @param bits the number of bits needed to represent size * colors * @param size the number of colors in the color map * @param cmap packed color components * @param start the offset of the first color component in cmap * @param hasAlpha cmap has alpha values ! * @throws IllegalArgumentException if bits < 1, bits > 16, or size * < 1. * @throws NullPointerException if cmap is null. */ ! public IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasAlpha) { this(bits, size, cmap, start, hasAlpha, -1); --- 223,244 ---- } /** ! * Creates a new indexed color model using the color components in * cmap. If hasAlpha is true then * cmap contains an alpha component after each of the red, green * and blue components. * ! * @param bits the number of bits needed to represent size * colors * @param size the number of colors in the color map * @param cmap packed color components * @param start the offset of the first color component in cmap * @param hasAlpha cmap has alpha values ! * @throws IllegalArgumentException if bits < 1, bits > 16, or size * < 1. * @throws NullPointerException if cmap is null. */ ! public IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasAlpha) { this(bits, size, cmap, start, hasAlpha, -1); *************** public class IndexColorModel extends Col *** 247,254 **** /** * Construct an IndexColorModel from an array of red, green, blue, and * optional alpha components. The component values are interleaved as RGB(A). ! * ! * @param bits the number of bits needed to represent size * colors * @param size the number of colors in the color map * @param cmap interleaved color components --- 247,254 ---- /** * Construct an IndexColorModel from an array of red, green, blue, and * optional alpha components. The component values are interleaved as RGB(A). ! * ! * @param bits the number of bits needed to represent size * colors * @param size the number of colors in the color map * @param cmap interleaved color components *************** public class IndexColorModel extends Col *** 259,270 **** * < 1. * @throws NullPointerException if cmap is null. */ ! public IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasAlpha, int trans) { ! super(bits, nArray(8, hasAlpha || (0 <= trans && trans < size) ? 4 : 3), ColorSpace.getInstance(ColorSpace.CS_sRGB), ! hasAlpha || (0 <= trans && trans < size), false, OPAQUE, Buffers.smallestAppropriateTransferType(bits)); if (bits < 1) throw new IllegalArgumentException("bits < 1"); --- 259,270 ---- * < 1. * @throws NullPointerException if cmap is null. */ ! public IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasAlpha, int trans) { ! super(bits, nArray(8, hasAlpha || (0 <= trans && trans < size) ? 4 : 3), ColorSpace.getInstance(ColorSpace.CS_sRGB), ! hasAlpha || (0 <= trans && trans < size), false, OPAQUE, Buffers.smallestAppropriateTransferType(bits)); if (bits < 1) throw new IllegalArgumentException("bits < 1"); *************** public class IndexColorModel extends Col *** 282,318 **** int alphaZero = 0x00; // use to detect all zeros int alphaOne = 0xff; // use to detect all ones for (int i = 0; i < size; i++) { ! alpha = cmap[4 * i + 3 + start] & 0xff; alphaZero = alphaZero | alpha; alphaOne = alphaOne & alpha; rgb[i] = ! ( alpha << 24 ! // red ! | ((cmap[4 * i + start] & 0xff) << 16) ! // green ! | ((cmap[4 * i + 1 + start] & 0xff) << 8) ! // blue ! | (cmap[4 * i + 2 + start] & 0xff)); } ! if (alphaZero == 0) ! transparency = BITMASK; ! else if (alphaOne == 255) transparency = (trans != -1 ? BITMASK : OPAQUE); else ! transparency = TRANSLUCENT; } else { for (int i = 0; i < size; i++) ! rgb[i] = (0xff000000 ! // red ! | ((cmap[3 * i + start] & 0xff) << 16) ! // green ! | ((cmap[3 * i + 1 + start] & 0xff) << 8) ! // blue ! | (cmap[3 * i + 2 + start] & 0xff)); if (trans != -1) ! transparency = BITMASK; } setTransparentPixel(trans); --- 282,318 ---- int alphaZero = 0x00; // use to detect all zeros int alphaOne = 0xff; // use to detect all ones for (int i = 0; i < size; i++) { ! alpha = cmap[4 * i + 3 + start] & 0xff; alphaZero = alphaZero | alpha; alphaOne = alphaOne & alpha; rgb[i] = ! ( alpha << 24 ! // red ! | ((cmap[4 * i + start] & 0xff) << 16) ! // green ! | ((cmap[4 * i + 1 + start] & 0xff) << 8) ! // blue ! | (cmap[4 * i + 2 + start] & 0xff)); } ! if (alphaZero == 0) ! transparency = BITMASK; ! else if (alphaOne == 255) transparency = (trans != -1 ? BITMASK : OPAQUE); else ! transparency = TRANSLUCENT; } else { for (int i = 0; i < size; i++) ! rgb[i] = (0xff000000 ! // red ! | ((cmap[3 * i + start] & 0xff) << 16) ! // green ! | ((cmap[3 * i + 1 + start] & 0xff) << 8) ! // blue ! | (cmap[3 * i + 2 + start] & 0xff)); if (trans != -1) ! transparency = BITMASK; } setTransparentPixel(trans); *************** public class IndexColorModel extends Col *** 327,356 **** * alpha values packed in order. If hasAlpha is false, then all the colors * are opaque except for the transparent color. * ! * @param bits the number of bits needed to represent size * colors * @param size the number of colors in the color map * @param cmap packed color components * @param start the offset of the first color component in cmap * @param hasAlpha cmap has alpha values * @param trans the index of the transparent color ! * @param transferType {@link DataBuffer#TYPE_BYTE} or {@link DataBuffer#TYPE_USHORT}. * @throws IllegalArgumentException if bits < 1, bits > 16, or size * < 1. * @throws IllegalArgumentException if transferType is something ! * other than {@link DataBuffer#TYPE_BYTE} or * {@link DataBuffer#TYPE_USHORT}. */ ! public IndexColorModel(int bits, int size, int[] cmap, int start, boolean hasAlpha, int trans, int transferType) { ! super(bits, ! nArray(8, 4), // bits for each channel ! ColorSpace.getInstance(ColorSpace.CS_sRGB), // sRGB ! true, // has alpha ! false, // not premultiplied ! TRANSLUCENT, transferType); if (transferType != DataBuffer.TYPE_BYTE && transferType != DataBuffer.TYPE_USHORT) throw new IllegalArgumentException(); --- 327,356 ---- * alpha values packed in order. If hasAlpha is false, then all the colors * are opaque except for the transparent color. * ! * @param bits the number of bits needed to represent size * colors * @param size the number of colors in the color map * @param cmap packed color components * @param start the offset of the first color component in cmap * @param hasAlpha cmap has alpha values * @param trans the index of the transparent color ! * @param transferType {@link DataBuffer#TYPE_BYTE} or {@link DataBuffer#TYPE_USHORT}. * @throws IllegalArgumentException if bits < 1, bits > 16, or size * < 1. * @throws IllegalArgumentException if transferType is something ! * other than {@link DataBuffer#TYPE_BYTE} or * {@link DataBuffer#TYPE_USHORT}. */ ! public IndexColorModel(int bits, int size, int[] cmap, int start, boolean hasAlpha, int trans, int transferType) { ! super(bits, ! nArray(8, 4), // bits for each channel ! ColorSpace.getInstance(ColorSpace.CS_sRGB), // sRGB ! true, // has alpha ! false, // not premultiplied ! TRANSLUCENT, transferType); if (transferType != DataBuffer.TYPE_BYTE && transferType != DataBuffer.TYPE_USHORT) throw new IllegalArgumentException(); *************** public class IndexColorModel extends Col *** 363,369 **** rgb = createColorMap(bits, size); if (!hasAlpha) for (int i = 0; i < size; i++) ! rgb[i] = cmap[i + start] | 0xff000000; else System.arraycopy(cmap, start, rgb, 0, size); --- 363,369 ---- rgb = createColorMap(bits, size); if (!hasAlpha) for (int i = 0; i < size; i++) ! rgb[i] = cmap[i + start] | 0xff000000; else System.arraycopy(cmap, start, rgb, 0, size); *************** public class IndexColorModel extends Col *** 383,396 **** *

        * This constructor permits indicating which colormap entries are valid, * using the validBits argument. Each entry in cmap is valid if the ! * corresponding bit in validBits is set. ! * ! * @param bits the number of bits needed to represent size * colors. * @param size the number of colors in the color map. * @param cmap packed color components. * @param start the offset of the first color component in cmap. ! * @param transferType {@link DataBuffer#TYPE_BYTE} or * {@link DataBuffer#TYPE_USHORT}. * @param validBits a map of the valid entries in cmap. * @throws IllegalArgumentException if bits < 1, bits > 16, or size --- 383,396 ---- *

        * This constructor permits indicating which colormap entries are valid, * using the validBits argument. Each entry in cmap is valid if the ! * corresponding bit in validBits is set. ! * ! * @param bits the number of bits needed to represent size * colors. * @param size the number of colors in the color map. * @param cmap packed color components. * @param start the offset of the first color component in cmap. ! * @param transferType {@link DataBuffer#TYPE_BYTE} or * {@link DataBuffer#TYPE_USHORT}. * @param validBits a map of the valid entries in cmap. * @throws IllegalArgumentException if bits < 1, bits > 16, or size *************** public class IndexColorModel extends Col *** 398,412 **** * @throws IllegalArgumentException if transferType is something other than * {@link DataBuffer#TYPE_BYTE} or {@link DataBuffer#TYPE_USHORT}. */ ! public IndexColorModel(int bits, int size, int[] cmap, int start, int transferType, BigInteger validBits) { super(bits, // total bits, sRGB, four channels ! nArray(8, 4), // bits for each channel ! ColorSpace.getInstance(ColorSpace.CS_sRGB), // sRGB ! true, // has alpha ! false, // not premultiplied ! TRANSLUCENT, transferType); if (transferType != DataBuffer.TYPE_BYTE && transferType != DataBuffer.TYPE_USHORT) throw new IllegalArgumentException(); --- 398,412 ---- * @throws IllegalArgumentException if transferType is something other than * {@link DataBuffer#TYPE_BYTE} or {@link DataBuffer#TYPE_USHORT}. */ ! public IndexColorModel(int bits, int size, int[] cmap, int start, int transferType, BigInteger validBits) { super(bits, // total bits, sRGB, four channels ! nArray(8, 4), // bits for each channel ! ColorSpace.getInstance(ColorSpace.CS_sRGB), // sRGB ! true, // has alpha ! false, // not premultiplied ! TRANSLUCENT, transferType); if (transferType != DataBuffer.TYPE_BYTE && transferType != DataBuffer.TYPE_USHORT) throw new IllegalArgumentException(); *************** public class IndexColorModel extends Col *** 422,428 **** rgb = createColorMap(bits, size); if (!hasAlpha) for (int i = 0; i < size; i++) ! rgb[i] = cmap[i + start] | 0xff000000; else System.arraycopy(cmap, start, rgb, 0, size); } --- 422,428 ---- rgb = createColorMap(bits, size); if (!hasAlpha) for (int i = 0; i < size; i++) ! rgb[i] = cmap[i + start] | 0xff000000; else System.arraycopy(cmap, start, rgb, 0, size); } *************** public class IndexColorModel extends Col *** 440,446 **** /** * Get the index of the transparent color in this color model. * ! * @return The index of the color that is considered transparent, or -1 if * there is no transparent color. */ public final int getTransparentPixel() --- 440,446 ---- /** * Get the index of the transparent color in this color model. * ! * @return The index of the color that is considered transparent, or -1 if * there is no transparent color. */ public final int getTransparentPixel() *************** public class IndexColorModel extends Col *** 449,461 **** } /** ! * Fills the supplied array with the red component of each color in the * lookup table. * * @param r an array that is at least as large as {@link #getMapSize()}. * @throws NullPointerException if r is null. ! * @throws ArrayIndexOutOfBoundsException if r has less ! * than {@link #getMapSize()} elements. */ public final void getReds(byte[] r) { --- 449,461 ---- } /** ! * Fills the supplied array with the red component of each color in the * lookup table. * * @param r an array that is at least as large as {@link #getMapSize()}. * @throws NullPointerException if r is null. ! * @throws ArrayIndexOutOfBoundsException if r has less ! * than {@link #getMapSize()} elements. */ public final void getReds(byte[] r) { *************** public class IndexColorModel extends Col *** 465,477 **** } /** ! * Fills the supplied array with the green component of each color in the * lookup table. * * @param g an array that is at least as large as {@link #getMapSize()}. * @throws NullPointerException if g is null. ! * @throws ArrayIndexOutOfBoundsException if g has less ! * than {@link #getMapSize()} elements. */ public final void getGreens(byte[] g) { --- 465,477 ---- } /** ! * Fills the supplied array with the green component of each color in the * lookup table. * * @param g an array that is at least as large as {@link #getMapSize()}. * @throws NullPointerException if g is null. ! * @throws ArrayIndexOutOfBoundsException if g has less ! * than {@link #getMapSize()} elements. */ public final void getGreens(byte[] g) { *************** public class IndexColorModel extends Col *** 481,493 **** } /** ! * Fills the supplied array with the blue component of each color in the * lookup table. * * @param b an array that is at least as large as {@link #getMapSize()}. * @throws NullPointerException if b is null. ! * @throws ArrayIndexOutOfBoundsException if b has less ! * than {@link #getMapSize()} elements. */ public final void getBlues(byte[] b) { --- 481,493 ---- } /** ! * Fills the supplied array with the blue component of each color in the * lookup table. * * @param b an array that is at least as large as {@link #getMapSize()}. * @throws NullPointerException if b is null. ! * @throws ArrayIndexOutOfBoundsException if b has less ! * than {@link #getMapSize()} elements. */ public final void getBlues(byte[] b) { *************** public class IndexColorModel extends Col *** 497,523 **** } /** ! * Fills the supplied array with the alpha component of each color in the * lookup table. If the model has a transparent pixel specified, the alpha * for that pixel will be 0. * * @param a an array that is at least as large as {@link #getMapSize()}. * @throws NullPointerException if a is null. ! * @throws ArrayIndexOutOfBoundsException if a has less ! * than {@link #getMapSize()} elements. */ public final void getAlphas(byte[] a) { int i; for (i = 0; i < map_size; i++) ! if (i == trans) ! a[i] = (byte) 0; ! else a[i] = (byte) ((0xFF000000 & rgb[i]) >> 24); } /** ! * Returns the red component of the color in the lookup table for the * given pixel value. * * @param pixel the pixel lookup value. --- 497,523 ---- } /** ! * Fills the supplied array with the alpha component of each color in the * lookup table. If the model has a transparent pixel specified, the alpha * for that pixel will be 0. * * @param a an array that is at least as large as {@link #getMapSize()}. * @throws NullPointerException if a is null. ! * @throws ArrayIndexOutOfBoundsException if a has less ! * than {@link #getMapSize()} elements. */ public final void getAlphas(byte[] a) { int i; for (i = 0; i < map_size; i++) ! if (i == trans) ! a[i] = (byte) 0; ! else a[i] = (byte) ((0xFF000000 & rgb[i]) >> 24); } /** ! * Returns the red component of the color in the lookup table for the * given pixel value. * * @param pixel the pixel lookup value. *************** public class IndexColorModel extends Col *** 529,540 **** { if (pixel < map_size) return (0x00FF0000 & rgb[pixel]) >> 16; ! return 0; } /** ! * Returns the green component of the color in the lookup table for the * given pixel value. * * @param pixel the pixel lookup value. --- 529,540 ---- { if (pixel < map_size) return (0x00FF0000 & rgb[pixel]) >> 16; ! return 0; } /** ! * Returns the green component of the color in the lookup table for the * given pixel value. * * @param pixel the pixel lookup value. *************** public class IndexColorModel extends Col *** 546,557 **** { if (pixel < map_size) return (0x0000FF00 & rgb[pixel]) >> 8; ! return 0; } /** ! * Returns the blue component of the color in the lookup table for the * given pixel value. * * @param pixel the pixel lookup value. --- 546,557 ---- { if (pixel < map_size) return (0x0000FF00 & rgb[pixel]) >> 8; ! return 0; } /** ! * Returns the blue component of the color in the lookup table for the * given pixel value. * * @param pixel the pixel lookup value. *************** public class IndexColorModel extends Col *** 563,574 **** { if (pixel < map_size) return 0x000000FF & rgb[pixel]; ! return 0; } /** ! * Returns the alpha component of the color in the lookup table for the * given pixel value. If no alpha channel was specified when the color model * was created, then 255 is returned for all pixels except the transparent * pixel (if one is defined - see {@link #getTransparentPixel()}) which --- 563,574 ---- { if (pixel < map_size) return 0x000000FF & rgb[pixel]; ! return 0; } /** ! * Returns the alpha component of the color in the lookup table for the * given pixel value. If no alpha channel was specified when the color model * was created, then 255 is returned for all pixels except the transparent * pixel (if one is defined - see {@link #getTransparentPixel()}) which *************** public class IndexColorModel extends Col *** 576,582 **** * * @param pixel the pixel lookup value. * ! * @return The alpha component of the color in the lookup table (in the * range 0 to 255). * @throws ArrayIndexOutOfBoundsException if pixel is negative. */ --- 576,582 ---- * * @param pixel the pixel lookup value. * ! * @return The alpha component of the color in the lookup table (in the * range 0 to 255). * @throws ArrayIndexOutOfBoundsException if pixel is negative. */ *************** public class IndexColorModel extends Col *** 587,593 **** /** * Get the RGB color value of the given pixel using the default ! * RGB color model. * * @param pixel the pixel lookup value. * @return The RGB color value. --- 587,593 ---- /** * Get the RGB color value of the given pixel using the default ! * RGB color model. * * @param pixel the pixel lookup value. * @return The RGB color value. *************** public class IndexColorModel extends Col *** 597,609 **** { if (pixel >= 0 && pixel < map_size) return rgb[pixel]; ! return 0; } ! /** * Get the RGB color values of all pixels in the map using the default ! * RGB color model. * * @param rgb The destination array. */ --- 597,609 ---- { if (pixel >= 0 && pixel < map_size) return rgb[pixel]; ! return 0; } ! /** * Get the RGB color values of all pixels in the map using the default ! * RGB color model. * * @param rgb The destination array. */ *************** public class IndexColorModel extends Col *** 611,623 **** { System.arraycopy(this.rgb, 0, rgb, 0, map_size); } ! ! /** ! * Return true if the lookup table contains valid data for * pixel, and false otherwise. * * @param pixel the pixel value used to index the color lookup table. ! * @return true if pixel is valid, * false otherwise. */ public boolean isValid(int pixel) --- 611,623 ---- { System.arraycopy(this.rgb, 0, rgb, 0, map_size); } ! ! /** ! * Return true if the lookup table contains valid data for * pixel, and false otherwise. * * @param pixel the pixel value used to index the color lookup table. ! * @return true if pixel is valid, * false otherwise. */ public boolean isValid(int pixel) *************** public class IndexColorModel extends Col *** 626,637 **** return validBits.testBit(pixel); return false; } ! ! /** ! * Return true if all pixels are valid, false * otherwise. * ! * @return true if all pixels are valid, false * otherwise. */ public boolean isValid() --- 626,637 ---- return validBits.testBit(pixel); return false; } ! ! /** ! * Return true if all pixels are valid, false * otherwise. * ! * @return true if all pixels are valid, false * otherwise. */ public boolean isValid() *************** public class IndexColorModel extends Col *** 642,669 **** allbits = allbits.subtract(new BigInteger("1")); return allbits.equals(validBits); } ! ! /** ! * Returns a binary value ({@link BigInteger}) where each bit represents an * entry in the color lookup table. If the bit is on, the entry is valid. ! * * @return The binary value. */ public BigInteger getValidPixels() { return validBits; } ! /** ! * Construct a {@link BufferedImage} with rgb pixel values from a * {@link Raster}. ! * * Constructs a new BufferedImage in which each pixel is an RGBA int from * a Raster with index-valued pixels. If this model has no alpha component * or transparent pixel, the type of the new BufferedImage is TYPE_INT_RGB. * Otherwise the type is TYPE_INT_ARGB. If forceARGB is true, the type is * forced to be TYPE_INT_ARGB no matter what. ! * * @param raster The source of pixel values. * @param forceARGB True if type must be TYPE_INT_ARGB. * @return New BufferedImage with RBGA int pixel values. --- 642,669 ---- allbits = allbits.subtract(new BigInteger("1")); return allbits.equals(validBits); } ! ! /** ! * Returns a binary value ({@link BigInteger}) where each bit represents an * entry in the color lookup table. If the bit is on, the entry is valid. ! * * @return The binary value. */ public BigInteger getValidPixels() { return validBits; } ! /** ! * Construct a {@link BufferedImage} with rgb pixel values from a * {@link Raster}. ! * * Constructs a new BufferedImage in which each pixel is an RGBA int from * a Raster with index-valued pixels. If this model has no alpha component * or transparent pixel, the type of the new BufferedImage is TYPE_INT_RGB. * Otherwise the type is TYPE_INT_ARGB. If forceARGB is true, the type is * forced to be TYPE_INT_ARGB no matter what. ! * * @param raster The source of pixel values. * @param forceARGB True if type must be TYPE_INT_ARGB. * @return New BufferedImage with RBGA int pixel values. *************** public class IndexColorModel extends Col *** 672,678 **** { int type = forceARGB ? BufferedImage.TYPE_INT_ARGB : ((opaque && trans == -1) ? BufferedImage.TYPE_INT_RGB : ! BufferedImage.TYPE_INT_ARGB); // FIXME: assuming that raster has only 1 band since pixels are supposed // to be int indexes. --- 672,678 ---- { int type = forceARGB ? BufferedImage.TYPE_INT_ARGB : ((opaque && trans == -1) ? BufferedImage.TYPE_INT_RGB : ! BufferedImage.TYPE_INT_ARGB); // FIXME: assuming that raster has only 1 band since pixels are supposed // to be int indexes. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/Kernel.java gcc-4.6.0/libjava/classpath/java/awt/image/Kernel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/Kernel.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/image/Kernel.java Tue Jan 11 19:46:05 2011 *************** public class Kernel implements Cloneable *** 49,58 **** { /** The kernel width. */ private final int width; ! /** The kernel height. */ private final int height; ! /** Internal storage for the kernel's values. */ private final float[] data; --- 49,58 ---- { /** The kernel width. */ private final int width; ! /** The kernel height. */ private final int height; ! /** Internal storage for the kernel's values. */ private final float[] data; *************** public class Kernel implements Cloneable *** 64,73 **** * @param width the kernel width. * @param height the kernel height. * @param data the source data array (null not permitted). ! * * @throws IllegalArgumentException if data.length is less than * width * height. ! * @throws IllegalArgumentException if width or * height is less than zero. * @throws NullPointerException if data is null. */ --- 64,73 ---- * @param width the kernel width. * @param height the kernel height. * @param data the source data array (null not permitted). ! * * @throws IllegalArgumentException if data.length is less than * width * height. ! * @throws IllegalArgumentException if width or * height is less than zero. * @throws NullPointerException if data is null. */ *************** public class Kernel implements Cloneable *** 83,91 **** } /** ! * Returns the x-origin for the kernel, which is calculated as * (width - 1) / 2. ! * * @return The x-origin for the kernel. */ public final int getXOrigin() --- 83,91 ---- } /** ! * Returns the x-origin for the kernel, which is calculated as * (width - 1) / 2. ! * * @return The x-origin for the kernel. */ public final int getXOrigin() *************** public class Kernel implements Cloneable *** 96,102 **** /** * Returns the y-origin for the kernel, which is calculated as * (height - 1) / 2. ! * * @return The y-origin for the kernel. */ public final int getYOrigin() --- 96,102 ---- /** * Returns the y-origin for the kernel, which is calculated as * (height - 1) / 2. ! * * @return The y-origin for the kernel. */ public final int getYOrigin() *************** public class Kernel implements Cloneable *** 106,112 **** /** * Returns the kernel width (as supplied to the constructor). ! * * @return The kernel width. */ public final int getWidth() --- 106,112 ---- /** * Returns the kernel width (as supplied to the constructor). ! * * @return The kernel width. */ public final int getWidth() *************** public class Kernel implements Cloneable *** 116,122 **** /** * Returns the kernel height (as supplied to the constructor). ! * * @return The kernel height. */ public final int getHeight() --- 116,122 ---- /** * Returns the kernel height (as supplied to the constructor). ! * * @return The kernel height. */ public final int getHeight() *************** public class Kernel implements Cloneable *** 125,142 **** } /** ! * Returns an array containing a copy of the kernel data. If the * data argument is non-null, the kernel values * are copied into it and then data is returned as the result. ! * If the data argument is null, this method * allocates a new array then populates and returns it. * ! * @param data an array to copy the return values into (if * null, a new array is allocated). ! * * @return The array with copied values. ! * ! * @throws IllegalArgumentException if data.length is less than * the kernel's width * height. */ public final float[] getKernelData(float[] data) --- 125,142 ---- } /** ! * Returns an array containing a copy of the kernel data. If the * data argument is non-null, the kernel values * are copied into it and then data is returned as the result. ! * If the data argument is null, this method * allocates a new array then populates and returns it. * ! * @param data an array to copy the return values into (if * null, a new array is allocated). ! * * @return The array with copied values. ! * ! * @throws IllegalArgumentException if data.length is less than * the kernel's width * height. */ public final float[] getKernelData(float[] data) *************** public class Kernel implements Cloneable *** 154,160 **** /** * Returns a clone of this kernel. ! * * @return a clone of this Kernel. */ public Object clone() --- 154,160 ---- /** * Returns a clone of this kernel. ! * * @return a clone of this Kernel. */ public Object clone() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/LookupOp.java gcc-4.6.0/libjava/classpath/java/awt/image/LookupOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/LookupOp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/LookupOp.java Tue Jan 11 19:46:05 2011 *************** import java.awt.geom.Rectangle2D; *** 44,74 **** /** * LookupOp is a filter that converts each pixel using a lookup table. ! * * For filtering Rasters, the lookup table must have either one component * that is applied to all bands, or one component for every band in the * Rasters. ! * * For BufferedImages, the lookup table may apply to both color and alpha * components. If the lookup table contains one component, or if there are * the same number of components as color components in the source, the table * applies to all color components. Otherwise the table applies to all * components including alpha. Alpha premultiplication is ignored during the * lookup filtering. ! * * After filtering, if color conversion is necessary, the conversion happens, * taking alpha premultiplication into account. ! * * @author jlquinn */ public class LookupOp implements BufferedImageOp, RasterOp { private LookupTable lut; private RenderingHints hints; ! /** * Construct a new LookupOp using the given LookupTable. ! * * @param lookup LookupTable to use. * @param hints Rendering hints (can be null). */ --- 44,74 ---- /** * LookupOp is a filter that converts each pixel using a lookup table. ! * * For filtering Rasters, the lookup table must have either one component * that is applied to all bands, or one component for every band in the * Rasters. ! * * For BufferedImages, the lookup table may apply to both color and alpha * components. If the lookup table contains one component, or if there are * the same number of components as color components in the source, the table * applies to all color components. Otherwise the table applies to all * components including alpha. Alpha premultiplication is ignored during the * lookup filtering. ! * * After filtering, if color conversion is necessary, the conversion happens, * taking alpha premultiplication into account. ! * * @author jlquinn */ public class LookupOp implements BufferedImageOp, RasterOp { private LookupTable lut; private RenderingHints hints; ! /** * Construct a new LookupOp using the given LookupTable. ! * * @param lookup LookupTable to use. * @param hints Rendering hints (can be null). */ *************** public class LookupOp implements Buffere *** 77,88 **** lut = lookup; this.hints = hints; } ! /** * Converts the source image using the lookup table specified in the * constructor. The resulting image is stored in the destination image if one ! * is provided; otherwise a new BufferedImage is created and returned. ! * * The source image cannot use an IndexColorModel, and the destination image * (if one is provided) must have the same size. * --- 77,88 ---- lut = lookup; this.hints = hints; } ! /** * Converts the source image using the lookup table specified in the * constructor. The resulting image is stored in the destination image if one ! * is provided; otherwise a new BufferedImage is created and returned. ! * * The source image cannot use an IndexColorModel, and the destination image * (if one is provided) must have the same size. * *************** public class LookupOp implements Buffere *** 98,114 **** { if (src.getColorModel() instanceof IndexColorModel) throw new IllegalArgumentException("LookupOp.filter: IndexColorModel " ! + "not allowed"); ! if (lut.getNumComponents() != 1 && lut.getNumComponents() != src.getColorModel().getNumComponents() && lut.getNumComponents() != src.getColorModel().getNumColorComponents()) throw new IllegalArgumentException("LookupOp.filter: Incompatible " + "lookup table and source image"); ! if (dst == null) dst = createCompatibleDestImage(src, null); ! else if (src.getHeight() != dst.getHeight() || src.getWidth() != dst.getWidth()) throw new IllegalArgumentException("Source and destination images are " + "different sizes."); --- 98,114 ---- { if (src.getColorModel() instanceof IndexColorModel) throw new IllegalArgumentException("LookupOp.filter: IndexColorModel " ! + "not allowed"); ! if (lut.getNumComponents() != 1 && lut.getNumComponents() != src.getColorModel().getNumComponents() && lut.getNumComponents() != src.getColorModel().getNumColorComponents()) throw new IllegalArgumentException("LookupOp.filter: Incompatible " + "lookup table and source image"); ! if (dst == null) dst = createCompatibleDestImage(src, null); ! else if (src.getHeight() != dst.getHeight() || src.getWidth() != dst.getWidth()) throw new IllegalArgumentException("Source and destination images are " + "different sizes."); *************** public class LookupOp implements Buffere *** 131,146 **** int[] dbuf = new int[src.getColorModel().getNumComponents()]; int tmpBands = src.getColorModel().getNumColorComponents(); int[] tmp = new int[tmpBands]; ! // Filter the pixels for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) ! { // Filter only color components, but also copy alpha sr.getPixel(x, y, dbuf); System.arraycopy(dbuf, 0, tmp, 0, tmpBands); dr.setPixel(x, y, lut.lookupPixel(tmp, dbuf)); ! /* The reference implementation does not use LookupTable.lookupPixel, * but rather it seems to copy the table into a native array. The * effect of this (a probable bug in their implementation) is that --- 131,146 ---- int[] dbuf = new int[src.getColorModel().getNumComponents()]; int tmpBands = src.getColorModel().getNumColorComponents(); int[] tmp = new int[tmpBands]; ! // Filter the pixels for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) ! { // Filter only color components, but also copy alpha sr.getPixel(x, y, dbuf); System.arraycopy(dbuf, 0, tmp, 0, tmpBands); dr.setPixel(x, y, lut.lookupPixel(tmp, dbuf)); ! /* The reference implementation does not use LookupTable.lookupPixel, * but rather it seems to copy the table into a native array. The * effect of this (a probable bug in their implementation) is that *************** public class LookupOp implements Buffere *** 148,154 **** * out of bounds exception, but will instead return random garbage. * A bad lookup on a ShortLookupTable, however, will throw an * exception. ! * * Instead of mimicing this behaviour, we always throw an * ArrayOutofBoundsException by virtue of using * LookupTable.lookupPixle. --- 148,154 ---- * out of bounds exception, but will instead return random garbage. * A bad lookup on a ShortLookupTable, however, will throw an * exception. ! * * Instead of mimicing this behaviour, we always throw an * ArrayOutofBoundsException by virtue of using * LookupTable.lookupPixle. *************** public class LookupOp implements Buffere *** 159,174 **** { // No alpha to ignore int[] dbuf = new int[src.getColorModel().getNumComponents()]; ! // Filter the pixels for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dr.setPixel(x, y, lut.lookupPixel(sr.getPixel(x, y, dbuf), dbuf)); } ! if (tgt != dst) new ColorConvertOp(hints).filter(tgt, dst); ! return dst; } --- 159,174 ---- { // No alpha to ignore int[] dbuf = new int[src.getColorModel().getNumComponents()]; ! // Filter the pixels for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dr.setPixel(x, y, lut.lookupPixel(sr.getPixel(x, y, dbuf), dbuf)); } ! if (tgt != dst) new ColorConvertOp(hints).filter(tgt, dst); ! return dst; } *************** public class LookupOp implements Buffere *** 184,196 **** * @see java.awt.image.BufferedImageOp#createCompatibleDestImage(java.awt.image.BufferedImage, java.awt.image.ColorModel) */ public BufferedImage createCompatibleDestImage(BufferedImage src, ! ColorModel dstCM) { if (dstCM != null) return new BufferedImage(dstCM, src.getRaster().createCompatibleWritableRaster(), src.isAlphaPremultiplied(), null); ! // This is a strange exception, done for compatibility with the reference // (as demonstrated by a mauve testcase) int imgType = src.getType(); --- 184,196 ---- * @see java.awt.image.BufferedImageOp#createCompatibleDestImage(java.awt.image.BufferedImage, java.awt.image.ColorModel) */ public BufferedImage createCompatibleDestImage(BufferedImage src, ! ColorModel dstCM) { if (dstCM != null) return new BufferedImage(dstCM, src.getRaster().createCompatibleWritableRaster(), src.isAlphaPremultiplied(), null); ! // This is a strange exception, done for compatibility with the reference // (as demonstrated by a mauve testcase) int imgType = src.getType(); *************** public class LookupOp implements Buffere *** 202,210 **** /** * Returns the corresponding destination point for a given source point. ! * * This Op will return the source point unchanged. ! * * @param src The source point. * @param dst The destination point. */ --- 202,210 ---- /** * Returns the corresponding destination point for a given source point. ! * * This Op will return the source point unchanged. ! * * @param src The source point. * @param dst The destination point. */ *************** public class LookupOp implements Buffere *** 219,225 **** /** * Return the LookupTable for this op. ! * * @return The lookup table. */ public final LookupTable getTable() --- 219,225 ---- /** * Return the LookupTable for this op. ! * * @return The lookup table. */ public final LookupTable getTable() *************** public class LookupOp implements Buffere *** 237,247 **** /** * Filter a raster through a lookup table. ! * * Applies the lookup table for this Rasterop to each pixel of src and * puts the results in dest. If dest is null, a new Raster is created and * returned. ! * * @param src The source raster. * @param dest The destination raster. * @return The WritableRaster with the filtered pixels. --- 237,247 ---- /** * Filter a raster through a lookup table. ! * * Applies the lookup table for this Rasterop to each pixel of src and * puts the results in dest. If dest is null, a new Raster is created and * returned. ! * * @param src The source raster. * @param dest The destination raster. * @return The WritableRaster with the filtered pixels. *************** public class LookupOp implements Buffere *** 252,258 **** */ public final WritableRaster filter(Raster src, WritableRaster dest) { ! if (dest == null) // Allocate a raster if needed dest = createCompatibleDestRaster(src); else --- 252,258 ---- */ public final WritableRaster filter(Raster src, WritableRaster dest) { ! if (dest == null) // Allocate a raster if needed dest = createCompatibleDestRaster(src); else *************** public class LookupOp implements Buffere *** 260,278 **** throw new IllegalArgumentException("Source and destination rasters " + "are incompatible."); ! if (lut.getNumComponents() != 1 && lut.getNumComponents() != src.getNumBands()) throw new IllegalArgumentException("Lookup table is incompatible with " + "this raster."); ! ! // Allocate pixel storage. int[] tmp = new int[src.getNumBands()]; ! // Filter the pixels for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dest.setPixel(x, y, lut.lookupPixel(src.getPixel(x, y, tmp), tmp)); ! /* The reference implementation does not use LookupTable.lookupPixel, * but rather it seems to copy the table into a native array. The * effect of this (a probable bug in their implementation) is that --- 260,278 ---- throw new IllegalArgumentException("Source and destination rasters " + "are incompatible."); ! if (lut.getNumComponents() != 1 && lut.getNumComponents() != src.getNumBands()) throw new IllegalArgumentException("Lookup table is incompatible with " + "this raster."); ! ! // Allocate pixel storage. int[] tmp = new int[src.getNumBands()]; ! // Filter the pixels for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dest.setPixel(x, y, lut.lookupPixel(src.getPixel(x, y, tmp), tmp)); ! /* The reference implementation does not use LookupTable.lookupPixel, * but rather it seems to copy the table into a native array. The * effect of this (a probable bug in their implementation) is that *************** public class LookupOp implements Buffere *** 280,286 **** * out of bounds exception, but will instead return random garbage. * A bad lookup on a ShortLookupTable, however, will throw an * exception. ! * * Instead of mimicing this behaviour, we always throw an * ArrayOutofBoundsException by virtue of using * LookupTable.lookupPixle. --- 280,286 ---- * out of bounds exception, but will instead return random garbage. * A bad lookup on a ShortLookupTable, however, will throw an * exception. ! * * Instead of mimicing this behaviour, we always throw an * ArrayOutofBoundsException by virtue of using * LookupTable.lookupPixle. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/LookupTable.java gcc-4.6.0/libjava/classpath/java/awt/image/LookupTable.java *** gcc-4.5.2/libjava/classpath/java/awt/image/LookupTable.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/LookupTable.java Tue Jan 11 19:46:05 2011 *************** public abstract class LookupTable *** 61,67 **** * * If numComponents is 1, the same translation table is used for all pixel * components. ! * * @param offset Offset to be subtracted. * @param numComponents Number of image components. * @exception IllegalArgumentException if offset < 0 or numComponents < 1. --- 61,67 ---- * * If numComponents is 1, the same translation table is used for all pixel * components. ! * * @param offset Offset to be subtracted. * @param numComponents Number of image components. * @exception IllegalArgumentException if offset < 0 or numComponents < 1. *************** public abstract class LookupTable *** 87,93 **** return offset; } ! /** * Return translated values for a pixel. * --- 87,93 ---- return offset; } ! /** * Return translated values for a pixel. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/MemoryImageSource.java gcc-4.6.0/libjava/classpath/java/awt/image/MemoryImageSource.java *** gcc-4.5.2/libjava/classpath/java/awt/image/MemoryImageSource.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/MemoryImageSource.java Tue Jan 11 19:46:05 2011 *************** public class MemoryImageSource implement *** 77,83 **** /** * Constructs an ImageProducer from memory. ! * * @param w the image width. * @param h the image height. * @param cm the color model. --- 77,83 ---- /** * Constructs an ImageProducer from memory. ! * * @param w the image width. * @param h the image height. * @param cm the color model. *************** public class MemoryImageSource implement *** 85,91 **** * @param off the offset to the first pixel in the array. * @param scan the number of array elements from a pixel on one row to the * corresponding pixel on the next row. ! * @param props image properties (null permitted). */ public MemoryImageSource(int w, int h, ColorModel cm, byte[] pix, int off, int scan, Hashtable props) --- 85,91 ---- * @param off the offset to the first pixel in the array. * @param scan the number of array elements from a pixel on one row to the * corresponding pixel on the next row. ! * @param props image properties (null permitted). */ public MemoryImageSource(int w, int h, ColorModel cm, byte[] pix, int off, int scan, Hashtable props) *************** public class MemoryImageSource implement *** 119,125 **** /** * Constructs an ImageProducer from memory ! * * @param w the image width. * @param h the image height. * @param cm the color model. --- 119,125 ---- /** * Constructs an ImageProducer from memory ! * * @param w the image width. * @param h the image height. * @param cm the color model. *************** public class MemoryImageSource implement *** 127,133 **** * @param off the offset to the first pixel in the array. * @param scan the number of array elements from a pixel on one row to the * corresponding pixel on the next row. ! * @param props image properties (null permitted). */ public MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off, int scan, Hashtable props) --- 127,133 ---- * @param off the offset to the first pixel in the array. * @param scan the number of array elements from a pixel on one row to the * corresponding pixel on the next row. ! * @param props image properties (null permitted). */ public MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off, int scan, Hashtable props) *************** public class MemoryImageSource implement *** 144,157 **** /** * Constructs an ImageProducer from memory using the default RGB ColorModel. ! * * @param w the image width. * @param h the image height. * @param pix the image data. * @param off the offset to the first pixel in the array. * @param scan the number of array elements from a pixel on one row to the * corresponding pixel on the next row. ! * @param props image properties (null permitted). */ public MemoryImageSource(int w, int h, int[] pix, int off, int scan, --- 144,157 ---- /** * Constructs an ImageProducer from memory using the default RGB ColorModel. ! * * @param w the image width. * @param h the image height. * @param pix the image data. * @param off the offset to the first pixel in the array. * @param scan the number of array elements from a pixel on one row to the * corresponding pixel on the next row. ! * @param props image properties (null permitted). */ public MemoryImageSource(int w, int h, int[] pix, int off, int scan, *************** public class MemoryImageSource implement *** 162,174 **** /** * Constructs an ImageProducer from memory using the default RGB ColorModel. ! * * @param w the image width. * @param h the image height. * @param pix the image data. * @param off the offset to the first pixel in the array. * @param scan the number of array elements from a pixel on one row to the ! * corresponding pixel on the next row. */ public MemoryImageSource(int w, int h, int[] pix, int off, int scan) { --- 162,174 ---- /** * Constructs an ImageProducer from memory using the default RGB ColorModel. ! * * @param w the image width. * @param h the image height. * @param pix the image data. * @param off the offset to the first pixel in the array. * @param scan the number of array elements from a pixel on one row to the ! * corresponding pixel on the next row. */ public MemoryImageSource(int w, int h, int[] pix, int off, int scan) { *************** public class MemoryImageSource implement *** 178,184 **** /** * Used to register an ImageConsumer with this * ImageProducer. ! * * @param ic the image consumer. */ public synchronized void addConsumer(ImageConsumer ic) --- 178,184 ---- /** * Used to register an ImageConsumer with this * ImageProducer. ! * * @param ic the image consumer. */ public synchronized void addConsumer(ImageConsumer ic) *************** public class MemoryImageSource implement *** 192,198 **** /** * Used to determine if the given ImageConsumer is * already registered with this ImageProducer. ! * * @param ic the image consumer. */ public synchronized boolean isConsumer(ImageConsumer ic) --- 192,198 ---- /** * Used to determine if the given ImageConsumer is * already registered with this ImageProducer. ! * * @param ic the image consumer. */ public synchronized boolean isConsumer(ImageConsumer ic) *************** public class MemoryImageSource implement *** 205,211 **** /** * Used to remove an ImageConsumer from the list of * registered consumers for this ImageProducer. ! * * @param ic the image consumer. */ public synchronized void removeConsumer(ImageConsumer ic) --- 205,211 ---- /** * Used to remove an ImageConsumer from the list of * registered consumers for this ImageProducer. ! * * @param ic the image consumer. */ public synchronized void removeConsumer(ImageConsumer ic) *************** public class MemoryImageSource implement *** 227,238 **** Vector list = (Vector) consumers.clone(); for (int i = 0; i < list.size(); i++) { ! ic = (ImageConsumer) list.elementAt(i); ! sendPicture(ic); ! if (animated) ! ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE); ! else ! ic.imageComplete(ImageConsumer.STATICIMAGEDONE); } } --- 227,238 ---- Vector list = (Vector) consumers.clone(); for (int i = 0; i < list.size(); i++) { ! ic = (ImageConsumer) list.elementAt(i); ! sendPicture(ic); ! if (animated) ! ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE); ! else ! ic.imageComplete(ImageConsumer.STATICIMAGEDONE); } } *************** public class MemoryImageSource implement *** 240,246 **** * Used to register an ImageConsumer with this * ImageProducer and then request that this producer * resend the image data in the order top-down, left-right. ! * * @param ic the image consumer. */ public void requestTopDownLeftRightResend(ImageConsumer ic) --- 240,246 ---- * Used to register an ImageConsumer with this * ImageProducer and then request that this producer * resend the image data in the order top-down, left-right. ! * * @param ic the image consumer. */ public void requestTopDownLeftRightResend(ImageConsumer ic) *************** public class MemoryImageSource implement *** 278,291 **** { if (animated == true) { ! ImageConsumer ic; ! Vector list = (Vector) consumers.clone(); ! for (int i = 0; i < list.size(); i++) ! { ! ic = (ImageConsumer) list.elementAt(i); ! sendPicture(ic); ! ic.imageComplete(ImageConsumer.SINGLEFRAME); ! } } } --- 278,291 ---- { if (animated == true) { ! ImageConsumer ic; ! Vector list = (Vector) consumers.clone(); ! for (int i = 0; i < list.size(); i++) ! { ! ic = (ImageConsumer) list.elementAt(i); ! sendPicture(ic); ! ic.imageComplete(ImageConsumer.SINGLEFRAME); ! } } } *************** public class MemoryImageSource implement *** 305,311 **** /** * Send an animation frame to the image consumers containing the specified * pixels unless setFullBufferUpdates is set. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param w the width. --- 305,311 ---- /** * Send an animation frame to the image consumers containing the specified * pixels unless setFullBufferUpdates is set. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param w the width. *************** public class MemoryImageSource implement *** 315,352 **** { if (animated == true) { ! if (fullbuffers) ! newPixels(); ! else ! { ! ImageConsumer ic; ! Vector list = (Vector) consumers.clone(); ! for (int i = 0; i < list.size(); i++) ! { ! ic = (ImageConsumer) list.elementAt(i); ! ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT); ! if (props != null) ! ic.setProperties(props); ! if (pixeli != null) ! { ! int[] pixelbuf = new int[w * h]; ! for (int row = y; row < y + h; row++) ! System.arraycopy(pixeli, row * scansize + x + offset, ! pixelbuf, 0, w * h); ! ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w); ! } ! else ! { ! byte[] pixelbuf = new byte[w * h]; ! for (int row = y; row < y + h; row++) ! System.arraycopy(pixelb, row * scansize + x + offset, ! pixelbuf, 0, w * h); ! ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w); ! } ! ic.imageComplete(ImageConsumer.SINGLEFRAME); ! } ! } } } --- 315,352 ---- { if (animated == true) { ! if (fullbuffers) ! newPixels(); ! else ! { ! ImageConsumer ic; ! Vector list = (Vector) consumers.clone(); ! for (int i = 0; i < list.size(); i++) ! { ! ic = (ImageConsumer) list.elementAt(i); ! ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT); ! if (props != null) ! ic.setProperties(props); ! if (pixeli != null) ! { ! int[] pixelbuf = new int[w * h]; ! for (int row = y; row < y + h; row++) ! System.arraycopy(pixeli, row * scansize + x + offset, ! pixelbuf, 0, w * h); ! ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w); ! } ! else ! { ! byte[] pixelbuf = new byte[w * h]; ! for (int row = y; row < y + h; row++) ! System.arraycopy(pixelb, row * scansize + x + offset, ! pixelbuf, 0, w * h); ! ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w); ! } ! ic.imageComplete(ImageConsumer.SINGLEFRAME); ! } ! } } } *************** public class MemoryImageSource implement *** 356,362 **** * * If framenotify is set then a notification is sent when the frame * is sent otherwise no status is sent. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param w the width. --- 356,362 ---- * * If framenotify is set then a notification is sent when the frame * is sent otherwise no status is sent. ! * * @param x the x-coordinate. * @param y the y-coordinate. * @param w the width. *************** public class MemoryImageSource implement *** 368,405 **** { if (animated == true) { ! if (fullbuffers) ! newPixels(); ! else ! { ! ImageConsumer ic; ! Vector list = (Vector) consumers.clone(); ! for (int i = 0; i < list.size(); i++) ! { ! ic = (ImageConsumer) list.elementAt(i); ! ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT); ! if (props != null) ! ic.setProperties(props); ! if (pixeli != null) ! { ! int[] pixelbuf = new int[w * h]; ! for (int row = y; row < y + h; row++) ! System.arraycopy(pixeli, row * scansize + x + offset, ! pixelbuf, 0, w * h); ! ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w); ! } ! else ! { ! byte[] pixelbuf = new byte[w * h]; ! for (int row = y; row < y + h; row++) ! System.arraycopy(pixelb, row * scansize + x + offset, ! pixelbuf, 0, w * h); ! ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w); ! } ! if (framenotify == true) ! ic.imageComplete(ImageConsumer.SINGLEFRAME); ! } ! } } } --- 368,405 ---- { if (animated == true) { ! if (fullbuffers) ! newPixels(); ! else ! { ! ImageConsumer ic; ! Vector list = (Vector) consumers.clone(); ! for (int i = 0; i < list.size(); i++) ! { ! ic = (ImageConsumer) list.elementAt(i); ! ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT); ! if (props != null) ! ic.setProperties(props); ! if (pixeli != null) ! { ! int[] pixelbuf = new int[w * h]; ! for (int row = y; row < y + h; row++) ! System.arraycopy(pixeli, row * scansize + x + offset, ! pixelbuf, 0, w * h); ! ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w); ! } ! else ! { ! byte[] pixelbuf = new byte[w * h]; ! for (int row = y; row < y + h; row++) ! System.arraycopy(pixelb, row * scansize + x + offset, ! pixelbuf, 0, w * h); ! ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w); ! } ! if (framenotify == true) ! ic.imageComplete(ImageConsumer.SINGLEFRAME); ! } ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java gcc-4.6.0/libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java Tue Jan 11 19:46:05 2011 *************** public class MultiPixelPackedSampleModel *** 65,78 **** *
      • {@link DataBuffer#TYPE_USHORT};
      • *
      • {@link DataBuffer#TYPE_INT};
      • *
      ! * * @param dataType the data type. * @param w the width (in pixels). * @param h the height (in pixels). * @param numberOfBits the number of bits per pixel (must be a power of 2). */ public MultiPixelPackedSampleModel(int dataType, int w, int h, ! int numberOfBits) { this(dataType, w, h, numberOfBits, 0, 0); } --- 65,78 ---- *
    • {@link DataBuffer#TYPE_USHORT};
    • *
    • {@link DataBuffer#TYPE_INT};
    • *
    ! * * @param dataType the data type. * @param w the width (in pixels). * @param h the height (in pixels). * @param numberOfBits the number of bits per pixel (must be a power of 2). */ public MultiPixelPackedSampleModel(int dataType, int w, int h, ! int numberOfBits) { this(dataType, w, h, numberOfBits, 0, 0); } *************** public class MultiPixelPackedSampleModel *** 85,119 **** *
  • {@link DataBuffer#TYPE_USHORT};
  • *
  • {@link DataBuffer#TYPE_INT};
  • * ! * * @param dataType the data type. * @param w the width (in pixels). * @param h the height (in pixels). * @param numberOfBits the number of bits per pixel (must be a power of 2). ! * @param scanlineStride the number of data elements from a pixel on one * row to the corresponding pixel in the next row. * @param dataBitOffset the offset to the first data bit. */ public MultiPixelPackedSampleModel(int dataType, int w, int h, ! int numberOfBits, int scanlineStride, ! int dataBitOffset) { super(dataType, w, h, 1); switch (dataType) { case DataBuffer.TYPE_BYTE: ! elemBits = 8; ! break; case DataBuffer.TYPE_USHORT: ! elemBits = 16; ! break; case DataBuffer.TYPE_INT: ! elemBits = 32; ! break; default: ! throw new IllegalArgumentException("MultiPixelPackedSampleModel" ! + " unsupported dataType"); } this.dataBitOffset = dataBitOffset; --- 85,119 ---- *
  • {@link DataBuffer#TYPE_USHORT};
  • *
  • {@link DataBuffer#TYPE_INT};
  • * ! * * @param dataType the data type. * @param w the width (in pixels). * @param h the height (in pixels). * @param numberOfBits the number of bits per pixel (must be a power of 2). ! * @param scanlineStride the number of data elements from a pixel on one * row to the corresponding pixel in the next row. * @param dataBitOffset the offset to the first data bit. */ public MultiPixelPackedSampleModel(int dataType, int w, int h, ! int numberOfBits, int scanlineStride, ! int dataBitOffset) { super(dataType, w, h, 1); switch (dataType) { case DataBuffer.TYPE_BYTE: ! elemBits = 8; ! break; case DataBuffer.TYPE_USHORT: ! elemBits = 16; ! break; case DataBuffer.TYPE_INT: ! elemBits = 32; ! break; default: ! throw new IllegalArgumentException("MultiPixelPackedSampleModel" ! + " unsupported dataType"); } this.dataBitOffset = dataBitOffset; *************** public class MultiPixelPackedSampleModel *** 121,133 **** this.numberOfBits = numberOfBits; if (numberOfBits > elemBits) throw new RasterFormatException("MultiPixelPackedSampleModel pixel size" ! + " larger than dataType"); switch (numberOfBits) { case 1: case 2: case 4: case 8: case 16: case 32: break; default: ! throw new RasterFormatException("MultiPixelPackedSampleModel pixel" ! + " size not 2^n bits"); } numElems = elemBits / numberOfBits; --- 121,133 ---- this.numberOfBits = numberOfBits; if (numberOfBits > elemBits) throw new RasterFormatException("MultiPixelPackedSampleModel pixel size" ! + " larger than dataType"); switch (numberOfBits) { case 1: case 2: case 4: case 8: case 16: case 32: break; default: ! throw new RasterFormatException("MultiPixelPackedSampleModel pixel" ! + " size not 2^n bits"); } numElems = elemBits / numberOfBits; *************** public class MultiPixelPackedSampleModel *** 136,142 **** scanlineStride = ((dataBitOffset + w * numberOfBits) - 1) / elemBits + 1; this.scanlineStride = scanlineStride; ! sampleSize = new int[1]; sampleSize[0] = numberOfBits; --- 136,142 ---- scanlineStride = ((dataBitOffset + w * numberOfBits) - 1) / elemBits + 1; this.scanlineStride = scanlineStride; ! sampleSize = new int[1]; sampleSize[0] = numberOfBits; *************** public class MultiPixelPackedSampleModel *** 144,152 **** bitOffsets = new int[numElems]; for (int i=0; i < numElems; i++) { ! bitOffsets[numElems - i- 1] = numberOfBits * i; ! bitMasks[numElems - i - 1] = ((1 << numberOfBits) - 1) << ! bitOffsets[numElems - i - 1]; } } --- 144,152 ---- bitOffsets = new int[numElems]; for (int i=0; i < numElems; i++) { ! bitOffsets[numElems - i- 1] = numberOfBits * i; ! bitMasks[numElems - i - 1] = ((1 << numberOfBits) - 1) << ! bitOffsets[numElems - i - 1]; } } *************** public class MultiPixelPackedSampleModel *** 154,163 **** * Creates a new MultiPixelPackedSample model with the same * data type and bits per pixel as this model, but with the specified * dimensions. ! * * @param w the width (in pixels). * @param h the height (in pixels). ! * * @return The new sample model. */ public SampleModel createCompatibleSampleModel(int w, int h) --- 154,163 ---- * Creates a new MultiPixelPackedSample model with the same * data type and bits per pixel as this model, but with the specified * dimensions. ! * * @param w the width (in pixels). * @param h the height (in pixels). ! * * @return The new sample model. */ public SampleModel createCompatibleSampleModel(int w, int h) *************** public class MultiPixelPackedSampleModel *** 172,178 **** * Creates a DataBuffer for holding pixel data in the format and * layout described by this SampleModel. The returned buffer will * consist of one single bank. ! * * @return A new data buffer. */ public DataBuffer createDataBuffer() --- 172,178 ---- * Creates a DataBuffer for holding pixel data in the format and * layout described by this SampleModel. The returned buffer will * consist of one single bank. ! * * @return A new data buffer. */ public DataBuffer createDataBuffer() *************** public class MultiPixelPackedSampleModel *** 186,192 **** /** * Returns the number of data elements required to transfer a pixel in the * get/setDataElements() methods. ! * * @return 1. */ public int getNumDataElements() --- 186,192 ---- /** * Returns the number of data elements required to transfer a pixel in the * get/setDataElements() methods. ! * * @return 1. */ public int getNumDataElements() *************** public class MultiPixelPackedSampleModel *** 195,223 **** } /** ! * Returns an array containing the size (in bits) of the samples in each * band. The MultiPixelPackedSampleModel class supports only ! * one band, so this method returns an array with length 1. ! * ! * @return An array containing the size (in bits) of the samples in band zero. ! * * @see #getSampleSize(int) */ public int[] getSampleSize() { return (int[]) sampleSize.clone(); } ! /** * Returns the size of the samples in the specified band. Note that the * MultiPixelPackedSampleModel supports only one band -- this * method ignored the band argument, and always returns the size * of band zero. ! * * @param band the band (this parameter is ignored). ! * * @return The size of the samples in band zero. ! * * @see #getSampleSize() */ public int getSampleSize(int band) --- 195,223 ---- } /** ! * Returns an array containing the size (in bits) of the samples in each * band. The MultiPixelPackedSampleModel class supports only ! * one band, so this method returns an array with length 1. ! * ! * @return An array containing the size (in bits) of the samples in band zero. ! * * @see #getSampleSize(int) */ public int[] getSampleSize() { return (int[]) sampleSize.clone(); } ! /** * Returns the size of the samples in the specified band. Note that the * MultiPixelPackedSampleModel supports only one band -- this * method ignored the band argument, and always returns the size * of band zero. ! * * @param band the band (this parameter is ignored). ! * * @return The size of the samples in band zero. ! * * @see #getSampleSize() */ public int getSampleSize(int band) *************** public class MultiPixelPackedSampleModel *** 227,238 **** /** * Returns the index in the data buffer that stores the pixel at (x, y). ! * * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return The index in the data buffer that stores the pixel at (x, y). ! * * @see #getBitOffset(int) */ public int getOffset(int x, int y) --- 227,238 ---- /** * Returns the index in the data buffer that stores the pixel at (x, y). ! * * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return The index in the data buffer that stores the pixel at (x, y). ! * * @see #getBitOffset(int) */ public int getOffset(int x, int y) *************** public class MultiPixelPackedSampleModel *** 241,251 **** } /** ! * The bit offset (within an element in the data buffer) of the pixels with * the specified x-coordinate. ! * * @param x the x-coordinate. ! * * @return The bit offset. */ public int getBitOffset(int x) --- 241,251 ---- } /** ! * The bit offset (within an element in the data buffer) of the pixels with * the specified x-coordinate. ! * * @param x the x-coordinate. ! * * @return The bit offset. */ public int getBitOffset(int x) *************** public class MultiPixelPackedSampleModel *** 255,261 **** /** * Returns the offset to the first data bit. ! * * @return The offset to the first data bit. */ public int getDataBitOffset() --- 255,261 ---- /** * Returns the offset to the first data bit. ! * * @return The offset to the first data bit. */ public int getDataBitOffset() *************** public class MultiPixelPackedSampleModel *** 266,272 **** /** * Returns the number of data elements from a pixel in one row to the * corresponding pixel in the next row. ! * * @return The scanline stride. */ public int getScanlineStride() --- 266,272 ---- /** * Returns the number of data elements from a pixel in one row to the * corresponding pixel in the next row. ! * * @return The scanline stride. */ public int getScanlineStride() *************** public class MultiPixelPackedSampleModel *** 276,289 **** /** * Returns the number of bits per pixel. ! * * @return The number of bits per pixel. */ public int getPixelBitStride() { return numberOfBits; } ! /** * Returns the transfer type, which is one of the following (depending on * the number of bits per sample for this model): --- 276,289 ---- /** * Returns the number of bits per pixel. ! * * @return The number of bits per pixel. */ public int getPixelBitStride() { return numberOfBits; } ! /** * Returns the transfer type, which is one of the following (depending on * the number of bits per sample for this model): *************** public class MultiPixelPackedSampleModel *** 292,298 **** *
  • {@link DataBuffer#TYPE_USHORT};
  • *
  • {@link DataBuffer#TYPE_INT};
  • * ! * * @return The transfer type. */ public int getTransferType() --- 292,298 ---- *
  • {@link DataBuffer#TYPE_USHORT};
  • *
  • {@link DataBuffer#TYPE_INT};
  • * ! * * @return The transfer type. */ public int getTransferType() *************** public class MultiPixelPackedSampleModel *** 310,321 **** * only supports a single band, this overridden implementation just returns * a new instance of MultiPixelPackedSampleModel, with the same * attributes as this instance. ! * * @param bands the bands to include in the subset (this is ignored, except * that if it is non-null a check is made to ensure that the * array length is equal to 1). ! * ! * @throws RasterFormatException if bands is not * null and bands.length != 1. */ public SampleModel createSubsetSampleModel(int[] bands) --- 310,321 ---- * only supports a single band, this overridden implementation just returns * a new instance of MultiPixelPackedSampleModel, with the same * attributes as this instance. ! * * @param bands the bands to include in the subset (this is ignored, except * that if it is non-null a check is made to ensure that the * array length is equal to 1). ! * ! * @throws RasterFormatException if bands is not * null and bands.length != 1. */ public SampleModel createSubsetSampleModel(int[] bands) *************** public class MultiPixelPackedSampleModel *** 323,329 **** if (bands != null && bands.length != 1) throw new RasterFormatException("MultiPixelPackedSampleModel only" + " supports one band"); ! return new MultiPixelPackedSampleModel(dataType, width, height, numberOfBits, scanlineStride, dataBitOffset); } --- 323,329 ---- if (bands != null && bands.length != 1) throw new RasterFormatException("MultiPixelPackedSampleModel only" + " supports one band"); ! return new MultiPixelPackedSampleModel(dataType, width, height, numberOfBits, scanlineStride, dataBitOffset); } *************** public class MultiPixelPackedSampleModel *** 334,348 **** * array obj, since there is only one band. If obj is null, a new array of * getTransferType() is created. * ! * @param x The x-coordinate of the pixel rectangle to store in * obj. ! * @param y The y-coordinate of the pixel rectangle to store in * obj. ! * @param obj The primitive array to store the pixels into or null to force * creation. * @param data The DataBuffer that is the source of the pixel data. * @return The primitive array containing the pixel data. ! * @see java.awt.image.SampleModel#getDataElements(int, int, Object, * DataBuffer) */ public Object getDataElements(int x, int y, Object obj, DataBuffer data) --- 334,348 ---- * array obj, since there is only one band. If obj is null, a new array of * getTransferType() is created. * ! * @param x The x-coordinate of the pixel rectangle to store in * obj. ! * @param y The y-coordinate of the pixel rectangle to store in * obj. ! * @param obj The primitive array to store the pixels into or null to force * creation. * @param data The DataBuffer that is the source of the pixel data. * @return The primitive array containing the pixel data. ! * @see java.awt.image.SampleModel#getDataElements(int, int, Object, * DataBuffer) */ public Object getDataElements(int x, int y, Object obj, DataBuffer data) *************** public class MultiPixelPackedSampleModel *** 351,367 **** switch (getTransferType()) { case DataBuffer.TYPE_BYTE: ! if (obj == null) obj = new byte[1]; ((byte[]) obj)[0] = (byte) pixel; return obj; case DataBuffer.TYPE_USHORT: ! if (obj == null) obj = new short[1]; ((short[]) obj)[0] = (short) pixel; return obj; case DataBuffer.TYPE_INT: ! if (obj == null) obj = new int[1]; ((int[]) obj)[0] = pixel; return obj; --- 351,367 ---- switch (getTransferType()) { case DataBuffer.TYPE_BYTE: ! if (obj == null) obj = new byte[1]; ((byte[]) obj)[0] = (byte) pixel; return obj; case DataBuffer.TYPE_USHORT: ! if (obj == null) obj = new short[1]; ((short[]) obj)[0] = (short) pixel; return obj; case DataBuffer.TYPE_INT: ! if (obj == null) obj = new int[1]; ((int[]) obj)[0] = pixel; return obj; *************** public class MultiPixelPackedSampleModel *** 372,413 **** } /** ! * Returns an array (of length 1) containing the sample for the pixel at ! * (x, y) in the specified data buffer. If iArray is not ! * null, it will be populated with the sample value and ! * returned as the result of this function (this avoids allocating a new * array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return An array containing the pixel sample value. ! * * @throws NullPointerException if data is null. */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { ! if (iArray == null) iArray = new int[1]; iArray[0] = getSample(x, y, 0, data); return iArray; } /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. */ public int getSample(int x, int y, int b, DataBuffer data) --- 372,413 ---- } /** ! * Returns an array (of length 1) containing the sample for the pixel at ! * (x, y) in the specified data buffer. If iArray is not ! * null, it will be populated with the sample value and ! * returned as the result of this function (this avoids allocating a new * array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return An array containing the pixel sample value. ! * * @throws NullPointerException if data is null. */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { ! if (iArray == null) iArray = new int[1]; iArray[0] = getSample(x, y, 0, data); return iArray; } /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. */ public int getSample(int x, int y, int b, DataBuffer data) *************** public class MultiPixelPackedSampleModel *** 418,424 **** int samples = data.getElem(offset); return (samples & bitMasks[pos]) >>> bitOffsets[pos]; } ! /** * Set the pixel at x, y to the value in the first element of the primitive * array obj. --- 418,424 ---- int samples = data.getElem(offset); return (samples & bitMasks[pos]) >>> bitOffsets[pos]; } ! /** * Set the pixel at x, y to the value in the first element of the primitive * array obj. *************** public class MultiPixelPackedSampleModel *** 472,488 **** } /** ! * Sets the sample value for the pixel at (x, y) in the specified data ! * buffer to the specified value. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample value (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. ! * * @see #setSample(int, int, int, int, DataBuffer) */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) --- 472,488 ---- } /** ! * Sets the sample value for the pixel at (x, y) in the specified data ! * buffer to the specified value. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample value (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. ! * * @see #setSample(int, int, int, int, DataBuffer) */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) *************** public class MultiPixelPackedSampleModel *** 491,506 **** } /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, int s, DataBuffer data) --- 491,506 ---- } /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, int s, DataBuffer data) *************** public class MultiPixelPackedSampleModel *** 516,528 **** sample |= s; data.setElem(offset, sample); } ! /** ! * Tests this sample model for equality with an arbitrary object. This * method returns true if and only if: *
      *
    • obj is not null; ! *
    • obj is an instance of * MultiPixelPackedSampleModel; *
    • both models have the same: *
        --- 516,528 ---- sample |= s; data.setElem(offset, sample); } ! /** ! * Tests this sample model for equality with an arbitrary object. This * method returns true if and only if: *
          *
        • obj is not null; ! *
        • obj is an instance of * MultiPixelPackedSampleModel; *
        • both models have the same: *
            *************** public class MultiPixelPackedSampleModel *** 535,551 **** *
          *
        • *
        ! * * @param obj the object (null permitted) ! * * @return true if this model is equal to obj, and * false otherwise. */ ! public boolean equals(Object obj) { ! if (this == obj) return true; ! if (! (obj instanceof MultiPixelPackedSampleModel)) return false; MultiPixelPackedSampleModel that = (MultiPixelPackedSampleModel) obj; if (this.dataType != that.dataType) --- 535,551 ---- *
      *
    • *
    ! * * @param obj the object (null permitted) ! * * @return true if this model is equal to obj, and * false otherwise. */ ! public boolean equals(Object obj) { ! if (this == obj) return true; ! if (! (obj instanceof MultiPixelPackedSampleModel)) return false; MultiPixelPackedSampleModel that = (MultiPixelPackedSampleModel) obj; if (this.dataType != that.dataType) *************** public class MultiPixelPackedSampleModel *** 562,571 **** return false; return true; } ! /** * Returns a hash code for this MultiPixelPackedSampleModel. ! * * @return A hash code. */ public int hashCode() --- 562,571 ---- return false; return true; } ! /** * Returns a hash code for this MultiPixelPackedSampleModel. ! * * @return A hash code. */ public int hashCode() *************** public class MultiPixelPackedSampleModel *** 580,586 **** result = 37 * result + dataBitOffset; return result; } ! /** * Creates a String with some information about this SampleModel. * @return A String describing this SampleModel. --- 580,586 ---- result = 37 * result + dataBitOffset; return result; } ! /** * Creates a String with some information about this SampleModel. * @return A String describing this SampleModel. *************** public class MultiPixelPackedSampleModel *** 596,602 **** { result.append(", mask[").append(i).append("]=0x").append(Integer.toHexString(bitMasks[i])); } ! result.append("]"); return result.toString(); } --- 596,602 ---- { result.append(", mask[").append(i).append("]=0x").append(Integer.toHexString(bitMasks[i])); } ! result.append("]"); return result.toString(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/PackedColorModel.java gcc-4.6.0/libjava/classpath/java/awt/image/PackedColorModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/PackedColorModel.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/PackedColorModel.java Tue Jan 11 19:46:05 2011 *************** import java.awt.color.ColorSpace; *** 48,91 **** public abstract class PackedColorModel extends ColorModel { private int masks[]; ! /* Package accessibility, the DirectColorModel needs this array */ int shifts[]; public PackedColorModel(ColorSpace cspace, int pixelBits, ! int[] colorMaskArray, int alphaMask, ! boolean isAlphaPremultiplied, ! int transparency, ! int transferType) { super(pixelBits, calcBitsPerComponent(colorMaskArray, alphaMask), ! cspace, (alphaMask != 0), isAlphaPremultiplied, transparency, ! transferType); initMasks(colorMaskArray, alphaMask); if ((pixelBits<1) || (pixelBits>32)) { throw new IllegalArgumentException("pixels per bits must be " + ! "in the range [1, 32]"); } } ! private static int[] calcBitsPerComponent(int[] colorMaskArray, ! int alphaMask) { int numComponents = colorMaskArray.length; if (alphaMask != 0) numComponents++; ! int[] bitsPerComponent = new int[numComponents]; ! BitMaskExtent extent = new BitMaskExtent(); for (int b=0; b32)) { throw new IllegalArgumentException("pixels per bits must be " + ! "in the range [1, 32]"); } } ! private static int[] calcBitsPerComponent(int[] colorMaskArray, ! int alphaMask) { int numComponents = colorMaskArray.length; if (alphaMask != 0) numComponents++; ! int[] bitsPerComponent = new int[numComponents]; ! BitMaskExtent extent = new BitMaskExtent(); for (int b=0; b= 0 && height >= 0) { ! int_pixel_buffer = new int[width * height]; ! byte_pixel_buffer = new byte[width * height]; } this.forceRGB = forceRGB; } --- 192,199 ---- // initialization until setDimensions is called back by ip. if (width >= 0 && height >= 0) { ! int_pixel_buffer = new int[width * height]; ! byte_pixel_buffer = new byte[width * height]; } this.forceRGB = forceRGB; } *************** public class PixelGrabber implements Ima *** 209,219 **** // Make sure we're not already grabbing. if (grabbing == false) { ! grabbing = true; ! grabberThread = new Thread () ! { ! public void run () ! { try { ip.startProduction (PixelGrabber.this); --- 209,219 ---- // Make sure we're not already grabbing. if (grabbing == false) { ! grabbing = true; ! grabberThread = new Thread () ! { ! public void run () ! { try { ip.startProduction (PixelGrabber.this); *************** public class PixelGrabber implements Ima *** 222,230 **** { imageComplete(ImageConsumer.IMAGEABORTED); } ! } ! }; ! grabberThread.start (); } } --- 222,230 ---- { imageComplete(ImageConsumer.IMAGEABORTED); } ! } ! }; ! grabberThread.start (); } } *************** public class PixelGrabber implements Ima *** 235,246 **** { if (grabbing) { ! // Interrupt the grabbing thread. Thread moribund = grabberThread; grabberThread = null; moribund.interrupt(); ! imageComplete (ImageConsumer.IMAGEABORTED); } } --- 235,246 ---- { if (grabbing) { ! // Interrupt the grabbing thread. Thread moribund = grabberThread; grabberThread = null; moribund.interrupt(); ! imageComplete (ImageConsumer.IMAGEABORTED); } } *************** public class PixelGrabber implements Ima *** 282,288 **** { if (ms < 0) return ((observerStatus & (ImageObserver.FRAMEBITS ! | ImageObserver.ALLBITS)) != 0); // Spawn a new ImageProducer thread to send us the image data via // our ImageConsumer methods. --- 282,288 ---- { if (ms < 0) return ((observerStatus & (ImageObserver.FRAMEBITS ! | ImageObserver.ALLBITS)) != 0); // Spawn a new ImageProducer thread to send us the image data via // our ImageConsumer methods. *************** public class PixelGrabber implements Ima *** 290,305 **** if (ms > 0) { ! long stop_time = System.currentTimeMillis() + ms; ! long time_remaining; ! while (grabbing) ! { ! time_remaining = stop_time - System.currentTimeMillis(); ! if (time_remaining <= 0) ! break; ! wait (time_remaining); ! } ! abortGrabbing (); } else wait (); --- 290,305 ---- if (ms > 0) { ! long stop_time = System.currentTimeMillis() + ms; ! long time_remaining; ! while (grabbing) ! { ! time_remaining = stop_time - System.currentTimeMillis(); ! if (time_remaining <= 0) ! break; ! wait (time_remaining); ! } ! abortGrabbing (); } else wait (); *************** public class PixelGrabber implements Ima *** 310,316 **** return setObserverStatus (); return ((observerStatus & (ImageObserver.FRAMEBITS ! | ImageObserver.ALLBITS)) != 0); } // Set observer status flags based on the current consumer status --- 310,316 ---- return setObserverStatus (); return ((observerStatus & (ImageObserver.FRAMEBITS ! | ImageObserver.ALLBITS)) != 0); } // Set observer status flags based on the current consumer status *************** public class PixelGrabber implements Ima *** 328,341 **** if ((consumerStatus & STATICIMAGEDONE) != 0) { ! observerStatus |= ImageObserver.ALLBITS; ! retval = true; } if ((consumerStatus & SINGLEFRAMEDONE) != 0) { ! observerStatus |= ImageObserver.FRAMEBITS; ! retval = true; } return retval; --- 328,341 ---- if ((consumerStatus & STATICIMAGEDONE) != 0) { ! observerStatus |= ImageObserver.ALLBITS; ! retval = true; } if ((consumerStatus & SINGLEFRAMEDONE) != 0) { ! observerStatus |= ImageObserver.FRAMEBITS; ! retval = true; } return retval; *************** public class PixelGrabber implements Ima *** 402,408 **** * ImageConsumer methods should be called by code that instantiates * a PixelGrabber. They are only made public so they can be called * by the PixelGrabber's ImageProducer. ! * * @param width the width of the image * @param height the height of the image */ --- 402,408 ---- * ImageConsumer methods should be called by code that instantiates * a PixelGrabber. They are only made public so they can be called * by the PixelGrabber's ImageProducer. ! * * @param width the width of the image * @param height the height of the image */ *************** public class PixelGrabber implements Ima *** 472,478 **** * bit mask of hints from any of RANDOMPIXELORDER, * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, * SINGLEPASS, SINGLEFRAME. ! * * setHints is an ImageConsumer method. None of PixelGrabber's * ImageConsumer methods should be called by code that instantiates * a PixelGrabber. They are only made public so they can be called --- 472,478 ---- * bit mask of hints from any of RANDOMPIXELORDER, * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, * SINGLEPASS, SINGLEFRAME. ! * * setHints is an ImageConsumer method. None of PixelGrabber's * ImageConsumer methods should be called by code that instantiates * a PixelGrabber. They are only made public so they can be called *************** public class PixelGrabber implements Ima *** 505,513 **** * @param offset offset into pixels array * @param scansize width of one row in the pixel block */ ! public synchronized void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, ! int offset, int scansize) { ColorModel currentModel; if (model != null) --- 505,513 ---- * @param offset offset into pixels array * @param scansize width of one row in the pixel block */ ! public synchronized void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, ! int offset, int scansize) { ColorModel currentModel; if (model != null) *************** public class PixelGrabber implements Ima *** 517,547 **** for(int yp = y; yp < (y + h); yp++) { ! for(int xp = x; xp < (x + w); xp++) ! { ! // Check if the coordinates (xp, yp) are within the ! // pixel block that we are grabbing. ! if(xp >= this.x ! && yp >= this.y ! && xp < (this.x + this.width) ! && yp < (this.y + this.height)) ! { ! int i = (yp - this.y) * this.scansize + (xp - this.x) + this.offset; ! int p = (yp - y) * scansize + (xp - x) + offset; ! if (forceRGB) ! { ! ints_delivered = true; ! int_pixel_buffer[i] = currentModel.getRGB (pixels[p] & 0xFF); ! } ! else ! { ! bytes_delivered = true; ! byte_pixel_buffer[i] = pixels[p]; ! } ! } ! } } } --- 517,547 ---- for(int yp = y; yp < (y + h); yp++) { ! for(int xp = x; xp < (x + w); xp++) ! { ! // Check if the coordinates (xp, yp) are within the ! // pixel block that we are grabbing. ! if(xp >= this.x ! && yp >= this.y ! && xp < (this.x + this.width) ! && yp < (this.y + this.height)) ! { ! int i = (yp - this.y) * this.scansize + (xp - this.x) + this.offset; ! int p = (yp - y) * scansize + (xp - x) + offset; ! if (forceRGB) ! { ! ints_delivered = true; ! int_pixel_buffer[i] = currentModel.getRGB (pixels[p] & 0xFF); ! } ! else ! { ! bytes_delivered = true; ! byte_pixel_buffer[i] = pixels[p]; ! } ! } ! } } } *************** public class PixelGrabber implements Ima *** 565,573 **** * @param offset offset into pixels array * @param scansize width of one row in the pixel block */ ! public synchronized void setPixels(int x, int y, int w, int h, ! ColorModel model, int[] pixels, ! int offset, int scansize) { ColorModel currentModel; if (model != null) --- 565,573 ---- * @param offset offset into pixels array * @param scansize width of one row in the pixel block */ ! public synchronized void setPixels(int x, int y, int w, int h, ! ColorModel model, int[] pixels, ! int offset, int scansize) { ColorModel currentModel; if (model != null) *************** public class PixelGrabber implements Ima *** 579,601 **** for(int yp = y; yp < (y + h); yp++) { ! for(int xp = x; xp < (x + w); xp++) ! { ! // Check if the coordinates (xp, yp) are within the ! // pixel block that we are grabbing. ! if(xp >= this.x ! && yp >= this.y ! && xp < (this.x + this.width) ! && yp < (this.y + this.height)) ! { ! int i = (yp - this.y) * this.scansize + (xp - this.x) + this.offset; ! int p = (yp - y) * scansize + (xp - x) + offset; ! if (forceRGB) ! int_pixel_buffer[i] = currentModel.getRGB (pixels[p]); ! else ! int_pixel_buffer[i] = pixels[p]; ! } ! } } } --- 579,601 ---- for(int yp = y; yp < (y + h); yp++) { ! for(int xp = x; xp < (x + w); xp++) ! { ! // Check if the coordinates (xp, yp) are within the ! // pixel block that we are grabbing. ! if(xp >= this.x ! && yp >= this.y ! && xp < (this.x + this.width) ! && yp < (this.y + this.height)) ! { ! int i = (yp - this.y) * this.scansize + (xp - this.x) + this.offset; ! int p = (yp - y) * scansize + (xp - x) + offset; ! if (forceRGB) ! int_pixel_buffer[i] = currentModel.getRGB (pixels[p]); ! else ! int_pixel_buffer[i] = pixels[p]; ! } ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java gcc-4.6.0/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java Tue Jan 11 19:46:05 2011 *************** public class PixelInterleavedSampleModel *** 58,64 **** bandOffsets); } ! /** * Creates a new SampleModel that is like this one, but * uses the specified width and height. --- 58,64 ---- bandOffsets); } ! /** * Creates a new SampleModel that is like this one, but * uses the specified width and height. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/RGBImageFilter.java gcc-4.6.0/libjava/classpath/java/awt/image/RGBImageFilter.java *** gcc-4.5.2/libjava/classpath/java/awt/image/RGBImageFilter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/RGBImageFilter.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package java.awt.image; /** ! * A filter designed to filter images in the default RGBColorModel regardless of * the ImageProducer's ColorModel. * * @author Mark Benvenuto (mcb54@columbia.edu) --- 39,45 ---- package java.awt.image; /** ! * A filter designed to filter images in the default RGBColorModel regardless of * the ImageProducer's ColorModel. * * @author Mark Benvenuto (mcb54@columbia.edu) *************** public abstract class RGBImageFilter ext *** 49,55 **** protected ColorModel origmodel; protected ColorModel newmodel; ! /** * Specifies whether to apply the filter to the index entries of the * IndexColorModel. Subclasses should set this to true if the filter --- 49,55 ---- protected ColorModel origmodel; protected ColorModel newmodel; ! /** * Specifies whether to apply the filter to the index entries of the * IndexColorModel. Subclasses should set this to true if the filter *************** public abstract class RGBImageFilter ext *** 60,66 **** /** * Construct new RGBImageFilter. */ ! public RGBImageFilter() { } --- 60,66 ---- /** * Construct new RGBImageFilter. */ ! public RGBImageFilter() { } *************** public abstract class RGBImageFilter ext *** 75,81 **** * * @see ColorModel */ ! public void setColorModel(ColorModel model) { if ((model instanceof IndexColorModel) && canFilterIndexColorModel) { --- 75,81 ---- * * @see ColorModel */ ! public void setColorModel(ColorModel model) { if ((model instanceof IndexColorModel) && canFilterIndexColorModel) { *************** public abstract class RGBImageFilter ext *** 90,99 **** } /** ! * Registers a new ColorModel to subsitute for the old ColorModel when ! * setPixels encounters the a pixel with the old ColorModel. The pixel * remains unchanged except for a new ColorModel. ! * * @param oldcm the old ColorModel * @param newcm the new ColorModel */ --- 90,99 ---- } /** ! * Registers a new ColorModel to subsitute for the old ColorModel when ! * setPixels encounters the a pixel with the old ColorModel. The pixel * remains unchanged except for a new ColorModel. ! * * @param oldcm the old ColorModel * @param newcm the new ColorModel */ *************** public abstract class RGBImageFilter ext *** 109,115 **** * * @param icm an IndexColorModel to filter */ ! public IndexColorModel filterIndexColorModel(IndexColorModel icm) { int len = icm.getMapSize(); byte[] reds = new byte[len]; --- 109,115 ---- * * @param icm an IndexColorModel to filter */ ! public IndexColorModel filterIndexColorModel(IndexColorModel icm) { int len = icm.getMapSize(); byte[] reds = new byte[len]; *************** public abstract class RGBImageFilter ext *** 175,182 **** } /** ! * If the ColorModel is the same ColorModel which as already converted ! * then it converts it the converted ColorModel. Otherwise it passes the * array of pixels through filterRGBpixels. * * @param x the x coordinate of the rectangle --- 175,182 ---- } /** ! * If the ColorModel is the same ColorModel which as already converted ! * then it converts it the converted ColorModel. Otherwise it passes the * array of pixels through filterRGBpixels. * * @param x the x coordinate of the rectangle *************** public abstract class RGBImageFilter ext *** 217,223 **** /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 217,223 ---- /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/Raster.java gcc-4.6.0/libjava/classpath/java/awt/image/Raster.java *** gcc-4.5.2/libjava/classpath/java/awt/image/Raster.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/Raster.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Rectangle; *** 46,89 **** * A rectangular collection of pixels composed from a {@link DataBuffer} which * stores the pixel values, and a {@link SampleModel} which is used to retrieve * the pixel values. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class Raster { /** The sample model used to access the pixel values. */ protected SampleModel sampleModel; ! /** The data buffer used to store the pixel values. */ protected DataBuffer dataBuffer; ! /** The x-coordinate of the top left corner of the raster. */ protected int minX; ! /** The y-coordinate of the top left corner of the raster. */ protected int minY; ! /** The width of the raster. */ protected int width; ! /** The height of the raster. */ protected int height; ! protected int sampleModelTranslateX; ! protected int sampleModelTranslateY; ! /** The number of bands. */ protected int numBands; ! protected int numDataElements; ! /** The raster's parent. */ protected Raster parent; ! /** * Creates a new raster. ! * * @param sampleModel the sample model. * @param origin the origin. */ --- 46,89 ---- * A rectangular collection of pixels composed from a {@link DataBuffer} which * stores the pixel values, and a {@link SampleModel} which is used to retrieve * the pixel values. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class Raster { /** The sample model used to access the pixel values. */ protected SampleModel sampleModel; ! /** The data buffer used to store the pixel values. */ protected DataBuffer dataBuffer; ! /** The x-coordinate of the top left corner of the raster. */ protected int minX; ! /** The y-coordinate of the top left corner of the raster. */ protected int minY; ! /** The width of the raster. */ protected int width; ! /** The height of the raster. */ protected int height; ! protected int sampleModelTranslateX; ! protected int sampleModelTranslateY; ! /** The number of bands. */ protected int numBands; ! protected int numDataElements; ! /** The raster's parent. */ protected Raster parent; ! /** * Creates a new raster. ! * * @param sampleModel the sample model. * @param origin the origin. */ *************** public class Raster *** 91,100 **** { this(sampleModel, sampleModel.createDataBuffer(), origin); } ! /** * Creates a new raster. ! * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param origin the origin. --- 91,100 ---- { this(sampleModel, sampleModel.createDataBuffer(), origin); } ! /** * Creates a new raster. ! * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param origin the origin. *************** public class Raster *** 108,114 **** /** * Creates a new raster. ! * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param aRegion the raster's bounds. --- 108,114 ---- /** * Creates a new raster. ! * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param aRegion the raster's bounds. *************** public class Raster *** 124,130 **** this.minY = aRegion.y; this.width = aRegion.width; this.height = aRegion.height; ! // If sampleModelTranslate is null, use (0,0). Methods such as // Raster.createRaster are specified to allow for a null argument. if (sampleModelTranslate != null) --- 124,130 ---- this.minY = aRegion.y; this.width = aRegion.width; this.height = aRegion.height; ! // If sampleModelTranslate is null, use (0,0). Methods such as // Raster.createRaster are specified to allow for a null argument. if (sampleModelTranslate != null) *************** public class Raster *** 137,152 **** this.numDataElements = sampleModel.getNumDataElements(); this.parent = parent; } ! /** * Creates an interleaved raster using the specified data type. ! * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. * @param location ! * * @return The new raster. */ public static WritableRaster createInterleavedRaster(int dataType, --- 137,152 ---- this.numDataElements = sampleModel.getNumDataElements(); this.parent = parent; } ! /** * Creates an interleaved raster using the specified data type. ! * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. * @param location ! * * @return The new raster. */ public static WritableRaster createInterleavedRaster(int dataType, *************** public class Raster *** 154,162 **** { int[] bandOffsets = new int[bands]; // TODO: Maybe not generate this every time. ! for (int b = 0; b < bands; b++) bandOffsets[b] = b; ! int scanlineStride = bands * w; return createInterleavedRaster(dataType, w, h, scanlineStride, bands, bandOffsets, location); --- 154,162 ---- { int[] bandOffsets = new int[bands]; // TODO: Maybe not generate this every time. ! for (int b = 0; b < bands; b++) bandOffsets[b] = b; ! int scanlineStride = bands * w; return createInterleavedRaster(dataType, w, h, scanlineStride, bands, bandOffsets, location); *************** public class Raster *** 164,183 **** /** * Creates an interleaved raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param pixelStride the number of elements from a sample in one pixel to * the corresponding sample in the next pixel. * @param bandOffsets the band offsets. * @param location ! * * @return The new raster. */ ! public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location) { --- 164,183 ---- /** * Creates an interleaved raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param pixelStride the number of elements from a sample in one pixel to * the corresponding sample in the next pixel. * @param bandOffsets the band offsets. * @param location ! * * @return The new raster. */ ! public static WritableRaster createInterleavedRaster(int dataType, int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location) { *************** public class Raster *** 188,203 **** /** * Creates a new banded raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. ! * @param location ! * * @return The new raster. */ ! public static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, Point location) { SampleModel sm = new BandedSampleModel(dataType, w, h, bands); --- 188,203 ---- /** * Creates a new banded raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. ! * @param location ! * * @return The new raster. */ ! public static WritableRaster createBandedRaster(int dataType, int w, int h, int bands, Point location) { SampleModel sm = new BandedSampleModel(dataType, w, h, bands); *************** public class Raster *** 206,221 **** /** * Creates a new banded raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bankIndices the index for each bank. * @param bandOffsets the offset for each band. * @param location ! * * @return The new raster. */ public static WritableRaster createBandedRaster(int dataType, int w, int h, --- 206,221 ---- /** * Creates a new banded raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bankIndices the index for each bank. * @param bandOffsets the offset for each band. * @param location ! * * @return The new raster. */ public static WritableRaster createBandedRaster(int dataType, int w, int h, *************** public class Raster *** 225,240 **** bankIndices, bandOffsets); return createWritableRaster(sm, location); } ! /** * Creates a new packed raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. * @param bandMasks the bit mask for each band. ! * @param location ! * * @return The new raster. */ public static WritableRaster createPackedRaster(int dataType, int w, int h, --- 225,240 ---- bankIndices, bandOffsets); return createWritableRaster(sm, location); } ! /** * Creates a new packed raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. * @param bandMasks the bit mask for each band. ! * @param location ! * * @return The new raster. */ public static WritableRaster createPackedRaster(int dataType, int w, int h, *************** public class Raster *** 247,260 **** /** * Creates a new raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. * @param bitsPerBand the number of bits per band. * @param location ! * * @return The new raster. */ public static WritableRaster createPackedRaster(int dataType, --- 247,260 ---- /** * Creates a new raster. ! * * @param dataType the data type. * @param w the width. * @param h the height. * @param bands the number of bands. * @param bitsPerBand the number of bits per band. * @param location ! * * @return The new raster. */ public static WritableRaster createPackedRaster(int dataType, *************** public class Raster *** 278,284 **** bandMasks[i] = mask; mask <<= bitsPerBand; } ! sm = new SinglePixelPackedSampleModel(dataType, w, h, bandMasks); } return createWritableRaster(sm, location); --- 278,284 ---- bandMasks[i] = mask; mask <<= bitsPerBand; } ! sm = new SinglePixelPackedSampleModel(dataType, w, h, bandMasks); } return createWritableRaster(sm, location); *************** public class Raster *** 286,306 **** /** * Creates a new interleaved raster. ! * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param pixelStride the number of elements from a sample in one pixel to * the corresponding sample in the next pixel. * @param bandOffsets the offset for each band. * @param location ! * * @return The new raster. */ ! public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, ! int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location) { SampleModel sm = new ComponentSampleModel(dataBuffer.getDataType(), --- 286,306 ---- /** * Creates a new interleaved raster. ! * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param pixelStride the number of elements from a sample in one pixel to * the corresponding sample in the next pixel. * @param bandOffsets the offset for each band. * @param location ! * * @return The new raster. */ ! public static WritableRaster createInterleavedRaster(DataBuffer dataBuffer, ! int w, int h, int scanlineStride, int pixelStride, int[] bandOffsets, Point location) { SampleModel sm = new ComponentSampleModel(dataBuffer.getDataType(), *************** public class Raster *** 310,325 **** /** * Creates a new banded raster. ! * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bankIndices the index for each bank. * @param bandOffsets the band offsets. * @param location ! * * @return The new raster. */ public static WritableRaster createBandedRaster(DataBuffer dataBuffer, --- 310,325 ---- /** * Creates a new banded raster. ! * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bankIndices the index for each bank. * @param bandOffsets the band offsets. * @param location ! * * @return The new raster. */ public static WritableRaster createBandedRaster(DataBuffer dataBuffer, *************** public class Raster *** 330,347 **** w, h, scanlineStride, bankIndices, bandOffsets); return createWritableRaster(sm, dataBuffer, location); } ! /** * Creates a new packed raster. ! * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bandMasks the bit mask for each band. * @param location ! * * @return The new raster. */ public static WritableRaster createPackedRaster(DataBuffer dataBuffer, --- 330,347 ---- w, h, scanlineStride, bankIndices, bandOffsets); return createWritableRaster(sm, dataBuffer, location); } ! /** * Creates a new packed raster. ! * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. ! * @param scanlineStride the number of data elements from a sample on one * row to the corresponding sample on the next row. * @param bandMasks the bit mask for each band. * @param location ! * * @return The new raster. */ public static WritableRaster createPackedRaster(DataBuffer dataBuffer, *************** public class Raster *** 351,366 **** w, h, scanlineStride, bandMasks); return createWritableRaster(sm, dataBuffer, location); } ! /** * Creates a new packed raster. ! * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. * @param bitsPerPixel the number of bits per pixel. * @param location ! * * @return The new raster. */ public static WritableRaster createPackedRaster(DataBuffer dataBuffer, --- 351,366 ---- w, h, scanlineStride, bandMasks); return createWritableRaster(sm, dataBuffer, location); } ! /** * Creates a new packed raster. ! * * @param dataBuffer the data buffer. * @param w the width. * @param h the height. * @param bitsPerPixel the number of bits per pixel. * @param location ! * * @return The new raster. */ public static WritableRaster createPackedRaster(DataBuffer dataBuffer, *************** public class Raster *** 370,383 **** w, h, bitsPerPixel); return createWritableRaster(sm, dataBuffer, location); } ! /** * Creates a new raster. ! * * @param sm the sample model. * @param db the data buffer. * @param location ! * * @return The new raster. */ public static Raster createRaster(SampleModel sm, DataBuffer db, --- 370,383 ---- w, h, bitsPerPixel); return createWritableRaster(sm, dataBuffer, location); } ! /** * Creates a new raster. ! * * @param sm the sample model. * @param db the data buffer. * @param location ! * * @return The new raster. */ public static Raster createRaster(SampleModel sm, DataBuffer db, *************** public class Raster *** 388,397 **** /** * Creates a new writable raster. ! * * @param sm the sample model. * @param location ! * * @return The new writable raster. */ public static WritableRaster createWritableRaster(SampleModel sm, --- 388,397 ---- /** * Creates a new writable raster. ! * * @param sm the sample model. * @param location ! * * @return The new writable raster. */ public static WritableRaster createWritableRaster(SampleModel sm, *************** public class Raster *** 402,412 **** /** * Creates a new writable raster. ! * * @param sm the sample model. * @param db the data buffer. ! * @param location ! * * @return The new writable raster. */ public static WritableRaster createWritableRaster(SampleModel sm, --- 402,412 ---- /** * Creates a new writable raster. ! * * @param sm the sample model. * @param db the data buffer. ! * @param location ! * * @return The new writable raster. */ public static WritableRaster createWritableRaster(SampleModel sm, *************** public class Raster *** 417,423 **** /** * Returns the raster's parent. ! * * @return The raster's parent. */ public Raster getParent() --- 417,423 ---- /** * Returns the raster's parent. ! * * @return The raster's parent. */ public Raster getParent() *************** public class Raster *** 427,433 **** /** * Returns the x-translation. ! * * @return The x-translation. */ public final int getSampleModelTranslateX() --- 427,433 ---- /** * Returns the x-translation. ! * * @return The x-translation. */ public final int getSampleModelTranslateX() *************** public class Raster *** 437,443 **** /** * Returns the y-translation. ! * * @return The y-translation. */ public final int getSampleModelTranslateY() --- 437,443 ---- /** * Returns the y-translation. ! * * @return The y-translation. */ public final int getSampleModelTranslateY() *************** public class Raster *** 447,453 **** /** * Creates a new writable raster that is compatible with this raster. ! * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster() --- 447,453 ---- /** * Creates a new writable raster that is compatible with this raster. ! * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster() *************** public class Raster *** 457,466 **** /** * Creates a new writable raster that is compatible with this raster. ! * * @param w the width. * @param h the height. ! * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(int w, int h) --- 457,466 ---- /** * Creates a new writable raster that is compatible with this raster. ! * * @param w the width. * @param h the height. ! * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(int w, int h) *************** public class Raster *** 471,479 **** /** * Creates a new writable raster that is compatible with this raster, with * the specified bounds. ! * * @param rect the raster bounds. ! * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(Rectangle rect) --- 471,479 ---- /** * Creates a new writable raster that is compatible with this raster, with * the specified bounds. ! * * @param rect the raster bounds. ! * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(Rectangle rect) *************** public class Raster *** 485,496 **** /** * Creates a new writable raster that is compatible with this raster, with * the specified bounds. ! * * @param x the x-coordinate of the top-left corner of the raster. * @param y the y-coordinate of the top-left corner of the raster. * @param w the raster width. * @param h the raster height. ! * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(int x, int y, --- 485,496 ---- /** * Creates a new writable raster that is compatible with this raster, with * the specified bounds. ! * * @param x the x-coordinate of the top-left corner of the raster. * @param y the y-coordinate of the top-left corner of the raster. * @param w the raster width. * @param h the raster height. ! * * @return A new writable raster. */ public WritableRaster createCompatibleWritableRaster(int x, int y, *************** public class Raster *** 503,509 **** public Raster createTranslatedChild(int childMinX, int childMinY) { int tcx = sampleModelTranslateX - minX + childMinX; int tcy = sampleModelTranslateY - minY + childMinY; ! return new Raster(sampleModel, dataBuffer, new Rectangle(childMinX, childMinY, width, height), new Point(tcx, tcy), this); --- 503,509 ---- public Raster createTranslatedChild(int childMinX, int childMinY) { int tcx = sampleModelTranslateX - minX + childMinX; int tcy = sampleModelTranslateY - minY + childMinY; ! return new Raster(sampleModel, dataBuffer, new Rectangle(childMinX, childMinY, width, height), new Point(tcx, tcy), this); *************** public class Raster *** 516,522 **** if (parentX < minX || parentX + width > minX + this.width || parentY < minY || parentY + height > minY + this.height) throw new RasterFormatException("Child raster extends beyond parent"); ! SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); --- 516,522 ---- if (parentX < minX || parentX + width > minX + this.width || parentY < minY || parentY + height > minY + this.height) throw new RasterFormatException("Child raster extends beyond parent"); ! SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); *************** public class Raster *** 526,543 **** / +------------------------- |\. __ parent trans ! | \`. | \ `. parent origin | \ `. / | /\ +-------- - - |trans\ /<\-- deltaTrans ! |child +-+-\---- - - | /|`| \__ parent [x, y] |child | |`. \ |origin| : `.\ | | / `\ | : / + ! | child [x, y] parent_xy - parent_trans = child_xy - child_trans --- 526,543 ---- / +------------------------- |\. __ parent trans ! | \`. | \ `. parent origin | \ `. / | /\ +-------- - - |trans\ /<\-- deltaTrans ! |child +-+-\---- - - | /|`| \__ parent [x, y] |child | |`. \ |origin| : `.\ | | / `\ | : / + ! | child [x, y] parent_xy - parent_trans = child_xy - child_trans *************** public class Raster *** 553,559 **** /** * Returns a new rectangle containing the bounds of this raster. ! * * @return A new rectangle containing the bounds of this raster. */ public Rectangle getBounds() --- 553,559 ---- /** * Returns a new rectangle containing the bounds of this raster. ! * * @return A new rectangle containing the bounds of this raster. */ public Rectangle getBounds() *************** public class Raster *** 563,569 **** /** * Returns the x-coordinate of the top left corner of the raster. ! * * @return The x-coordinate of the top left corner of the raster. */ public final int getMinX() --- 563,569 ---- /** * Returns the x-coordinate of the top left corner of the raster. ! * * @return The x-coordinate of the top left corner of the raster. */ public final int getMinX() *************** public class Raster *** 573,579 **** /** * Returns the t-coordinate of the top left corner of the raster. ! * * @return The t-coordinate of the top left corner of the raster. */ public final int getMinY() --- 573,579 ---- /** * Returns the t-coordinate of the top left corner of the raster. ! * * @return The t-coordinate of the top left corner of the raster. */ public final int getMinY() *************** public class Raster *** 583,589 **** /** * Returns the width of the raster. ! * * @return The width of the raster. */ public final int getWidth() --- 583,589 ---- /** * Returns the width of the raster. ! * * @return The width of the raster. */ public final int getWidth() *************** public class Raster *** 593,599 **** /** * Returns the height of the raster. ! * * @return The height of the raster. */ public final int getHeight() --- 593,599 ---- /** * Returns the height of the raster. ! * * @return The height of the raster. */ public final int getHeight() *************** public class Raster *** 603,625 **** /** * Returns the number of bands for this raster. ! * * @return The number of bands. */ public final int getNumBands() { return numBands; } ! public final int getNumDataElements() { return numDataElements; } ! /** ! * Returns the transfer type for the raster (this is determined by the * raster's sample model). ! * * @return The transfer type. */ public final int getTransferType() --- 603,625 ---- /** * Returns the number of bands for this raster. ! * * @return The number of bands. */ public final int getNumBands() { return numBands; } ! public final int getNumDataElements() { return numDataElements; } ! /** ! * Returns the transfer type for the raster (this is determined by the * raster's sample model). ! * * @return The transfer type. */ public final int getTransferType() *************** public class Raster *** 629,635 **** /** * Returns the data buffer that stores the pixel data for this raster. ! * * @return The data buffer. */ public DataBuffer getDataBuffer() --- 629,635 ---- /** * Returns the data buffer that stores the pixel data for this raster. ! * * @return The data buffer. */ public DataBuffer getDataBuffer() *************** public class Raster *** 640,646 **** /** * Returns the sample model that accesses the data buffer (to extract pixel * data) for this raster. ! * * @return The sample model. */ public SampleModel getSampleModel() --- 640,646 ---- /** * Returns the sample model that accesses the data buffer (to extract pixel * data) for this raster. ! * * @return The sample model. */ public SampleModel getSampleModel() *************** public class Raster *** 662,676 **** /** * Returns an array containing the samples for the pixel at (x, y) in the ! * raster. If iArray is not null, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public int[] getPixel(int x, int y, int[] iArray) --- 662,676 ---- /** * Returns an array containing the samples for the pixel at (x, y) in the ! * raster. If iArray is not null, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public int[] getPixel(int x, int y, int[] iArray) *************** public class Raster *** 681,695 **** /** * Returns an array containing the samples for the pixel at (x, y) in the ! * raster. If fArray is not null, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public float[] getPixel(int x, int y, float[] fArray) --- 681,695 ---- /** * Returns an array containing the samples for the pixel at (x, y) in the ! * raster. If fArray is not null, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public float[] getPixel(int x, int y, float[] fArray) *************** public class Raster *** 700,714 **** /** * Returns an array containing the samples for the pixel at (x, y) in the ! * raster. If dArray is not null, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public double[] getPixel(int x, int y, double[] dArray) --- 700,714 ---- /** * Returns an array containing the samples for the pixel at (x, y) in the ! * raster. If dArray is not null, it will be * populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public double[] getPixel(int x, int y, double[] dArray) *************** public class Raster *** 718,738 **** } /** ! * Returns an array containing the samples for the pixels in the region ! * specified by (x, y, w, h) in the raster. The array is ordered by pixels ! * (that is, all the samples for the first pixel are grouped together, ! * followed by all the samples for the second pixel, and so on). ! * If iArray is not null, it will be populated ! * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray) --- 718,738 ---- } /** ! * Returns an array containing the samples for the pixels in the region ! * specified by (x, y, w, h) in the raster. The array is ordered by pixels ! * (that is, all the samples for the first pixel are grouped together, ! * followed by all the samples for the second pixel, and so on). ! * If iArray is not null, it will be populated ! * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray) *************** public class Raster *** 742,762 **** } /** ! * Returns an array containing the samples for the pixels in the region ! * specified by (x, y, w, h) in the raster. The array is ordered by pixels ! * (that is, all the samples for the first pixel are grouped together, ! * followed by all the samples for the second pixel, and so on). ! * If fArray is not null, it will be populated ! * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public float[] getPixels(int x, int y, int w, int h, float[] fArray) --- 742,762 ---- } /** ! * Returns an array containing the samples for the pixels in the region ! * specified by (x, y, w, h) in the raster. The array is ordered by pixels ! * (that is, all the samples for the first pixel are grouped together, ! * followed by all the samples for the second pixel, and so on). ! * If fArray is not null, it will be populated ! * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public float[] getPixels(int x, int y, int w, int h, float[] fArray) *************** public class Raster *** 766,786 **** } /** ! * Returns an array containing the samples for the pixels in the region ! * specified by (x, y, w, h) in the raster. The array is ordered by pixels ! * (that is, all the samples for the first pixel are grouped together, ! * followed by all the samples for the second pixel, and so on). ! * If dArray is not null, it will be populated ! * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public double[] getPixels(int x, int y, int w, int h, double[] dArray) --- 766,786 ---- } /** ! * Returns an array containing the samples for the pixels in the region ! * specified by (x, y, w, h) in the raster. The array is ordered by pixels ! * (that is, all the samples for the first pixel are grouped together, ! * followed by all the samples for the second pixel, and so on). ! * If dArray is not null, it will be populated ! * with the sample values and returned as the result of this function (this * avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The pixel sample values. */ public double[] getPixels(int x, int y, int w, int h, double[] dArray) *************** public class Raster *** 791,802 **** /** * Returns the sample value for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample value. */ public int getSample(int x, int y, int b) --- 791,802 ---- /** * Returns the sample value for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample value. */ public int getSample(int x, int y, int b) *************** public class Raster *** 807,820 **** /** * Returns the sample value for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample value. ! * * @see #getSample(int, int, int) */ public float getSampleFloat(int x, int y, int b) --- 807,820 ---- /** * Returns the sample value for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample value. ! * * @see #getSample(int, int, int) */ public float getSampleFloat(int x, int y, int b) *************** public class Raster *** 825,838 **** /** * Returns the sample value for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample value. ! * * @see #getSample(int, int, int) */ public double getSampleDouble(int x, int y, int b) --- 825,838 ---- /** * Returns the sample value for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample value. ! * * @see #getSample(int, int, int) */ public double getSampleDouble(int x, int y, int b) *************** public class Raster *** 842,862 **** } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the raster. If ! * iArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The sample values. */ public int[] getSamples(int x, int y, int w, int h, int b, --- 842,862 ---- } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the raster. If ! * iArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The sample values. */ public int[] getSamples(int x, int y, int w, int h, int b, *************** public class Raster *** 867,889 **** } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the raster. If ! * fArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The sample values. ! */ public float[] getSamples(int x, int y, int w, int h, int b, float[] fArray) { return sampleModel.getSamples(x - sampleModelTranslateX, --- 867,889 ---- } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the raster. If ! * fArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The sample values. ! */ public float[] getSamples(int x, int y, int w, int h, int b, float[] fArray) { return sampleModel.getSamples(x - sampleModelTranslateX, *************** public class Raster *** 891,929 **** } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the raster. If ! * dArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The sample values. */ ! public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray) { return sampleModel.getSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, dArray, dataBuffer); } ! /** * Create a String representing the state of this Raster. ! * * @return A String representing the stat of this Raster. */ public String toString() { CPStringBuilder result = new CPStringBuilder(); ! result.append(getClass().getName()); result.append("[("); result.append(minX).append(",").append(minY).append("), "); --- 891,929 ---- } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the raster. If ! * dArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). ! * * @return The sample values. */ ! public double[] getSamples(int x, int y, int w, int h, int b, double[] dArray) { return sampleModel.getSamples(x - sampleModelTranslateX, y - sampleModelTranslateY, w, h, b, dArray, dataBuffer); } ! /** * Create a String representing the state of this Raster. ! * * @return A String representing the stat of this Raster. */ public String toString() { CPStringBuilder result = new CPStringBuilder(); ! result.append(getClass().getName()); result.append("[("); result.append(minX).append(",").append(minY).append("), "); *************** public class Raster *** 931,942 **** result.append(sampleModel).append(","); result.append(dataBuffer); result.append("]"); ! return result.toString(); } /** ! * Returns the number of bits used to represent the specified data type. * Valid types are: *
      *
    • {@link DataBuffer#TYPE_BYTE};
    • --- 931,942 ---- result.append(sampleModel).append(","); result.append(dataBuffer); result.append("]"); ! return result.toString(); } /** ! * Returns the number of bits used to represent the specified data type. * Valid types are: *
        *
      • {@link DataBuffer#TYPE_BYTE};
      • *************** public class Raster *** 947,955 **** *
      • {@link DataBuffer#TYPE_DOUBLE};
      • *
      * This method returns 0 for invalid data types. ! * * @param dataType the data type. ! * * @return The number of bits used to represent the specified data type. */ private static int getTypeBits(int dataType) --- 947,955 ---- *
    • {@link DataBuffer#TYPE_DOUBLE};
    • *
    * This method returns 0 for invalid data types. ! * * @param dataType the data type. ! * * @return The number of bits used to represent the specified data type. */ private static int getTypeBits(int dataType) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/RasterOp.java gcc-4.6.0/libjava/classpath/java/awt/image/RasterOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/RasterOp.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/image/RasterOp.java Tue Jan 11 19:46:05 2011 *************** public interface RasterOp *** 53,65 **** * writable raster. If dest is null, a new * WritableRaster will be created by calling the * {@link #createCompatibleDestRaster(Raster)} method. If dest ! * is not null, the result is written to dest then ! * returned (this avoids creating a new WritableRaster each * time this method is called). ! * * @param src the source raster. * @param dest the destination raster (null permitted). ! * * @return The filtered raster. */ WritableRaster filter(Raster src, WritableRaster dest); --- 53,65 ---- * writable raster. If dest is null, a new * WritableRaster will be created by calling the * {@link #createCompatibleDestRaster(Raster)} method. If dest ! * is not null, the result is written to dest then ! * returned (this avoids creating a new WritableRaster each * time this method is called). ! * * @param src the source raster. * @param dest the destination raster (null permitted). ! * * @return The filtered raster. */ WritableRaster filter(Raster src, WritableRaster dest); *************** public interface RasterOp *** 67,75 **** /** * Returns the bounds of the destination raster on the basis of this * RasterOp being applied to the specified source raster. ! * * @param src the source raster. ! * * @return The destination bounds. */ Rectangle2D getBounds2D(Raster src); --- 67,75 ---- /** * Returns the bounds of the destination raster on the basis of this * RasterOp being applied to the specified source raster. ! * * @param src the source raster. ! * * @return The destination bounds. */ Rectangle2D getBounds2D(Raster src); *************** public interface RasterOp *** 77,85 **** /** * Returns a raster that can be used by this RasterOp as the * destination raster when operating on the specified source raster. ! * * @param src the source raster. ! * * @return A new writable raster that can be used as the destination raster. */ WritableRaster createCompatibleDestRaster(Raster src); --- 77,85 ---- /** * Returns a raster that can be used by this RasterOp as the * destination raster when operating on the specified source raster. ! * * @param src the source raster. ! * * @return A new writable raster that can be used as the destination raster. */ WritableRaster createCompatibleDestRaster(Raster src); *************** public interface RasterOp *** 87,105 **** /** * Returns the point on the destination raster that corresponds to the given * point on the source raster. ! * * @param srcPoint the source point. * @param destPoint the destination point (null permitted). ! * * @return The destination point. */ Point2D getPoint2D(Point2D srcPoint, Point2D destPoint); /** * Returns the rendering hints for this operation. ! * * @return The rendering hints. */ RenderingHints getRenderingHints(); } - --- 87,104 ---- /** * Returns the point on the destination raster that corresponds to the given * point on the source raster. ! * * @param srcPoint the source point. * @param destPoint the destination point (null permitted). ! * * @return The destination point. */ Point2D getPoint2D(Point2D srcPoint, Point2D destPoint); /** * Returns the rendering hints for this operation. ! * * @return The rendering hints. */ RenderingHints getRenderingHints(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/RenderedImage.java gcc-4.6.0/libjava/classpath/java/awt/image/RenderedImage.java *** gcc-4.5.2/libjava/classpath/java/awt/image/RenderedImage.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/RenderedImage.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RenderedImage.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RenderedImage.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ReplicateScaleFilter.java gcc-4.6.0/libjava/classpath/java/awt/image/ReplicateScaleFilter.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ReplicateScaleFilter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/ReplicateScaleFilter.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 48,60 **** *
    * Currently this filter does nothing and needs to be implemented. * ! * @author C. Brian Jones (cbj@gnu.org) */ public class ReplicateScaleFilter extends ImageFilter { public ReplicateScaleFilter(int width, int height) { ! destHeight = height; ! destWidth = width; } /** --- 48,60 ---- *
    * Currently this filter does nothing and needs to be implemented. * ! * @author C. Brian Jones (cbj@gnu.org) */ public class ReplicateScaleFilter extends ImageFilter { public ReplicateScaleFilter(int width, int height) { ! destHeight = height; ! destWidth = width; } /** *************** public class ReplicateScaleFilter extend *** 94,138 **** /** * An ImageProducer indicates the size of the image ! * being produced using this method. A filter can override this * method to intercept these calls from the producer in order to * change either the width or the height before in turn calling * the consumer's setDimensions method. ! * * @param width the width of the image ! * @param height the height of the image */ public void setDimensions(int width, int height) { ! srcWidth = width; ! srcHeight = height; ! /* If either destHeight or destWidth is < 0, the image should ! maintain its original aspect ratio. When both are < 0, ! just maintain the original width and height. */ ! if (destWidth < 0 && destHeight < 0) { ! destWidth = width; ! destHeight = height; ! } ! else if (destWidth < 0) ! { ! destWidth = width * destHeight / srcHeight; ! } ! else if (destHeight < 0) ! { ! destHeight = height * destWidth / srcWidth; ! } ! if (consumer != null) ! consumer.setDimensions(destWidth, destHeight); } /** * An ImageProducer can set a list of properties * associated with this image by using this method. * ! * @param props the list of properties associated with this image */ public void setProperties(Hashtable props) { --- 94,138 ---- /** * An ImageProducer indicates the size of the image ! * being produced using this method. A filter can override this * method to intercept these calls from the producer in order to * change either the width or the height before in turn calling * the consumer's setDimensions method. ! * * @param width the width of the image ! * @param height the height of the image */ public void setDimensions(int width, int height) { ! srcWidth = width; ! srcHeight = height; ! /* If either destHeight or destWidth is < 0, the image should ! maintain its original aspect ratio. When both are < 0, ! just maintain the original width and height. */ ! if (destWidth < 0 && destHeight < 0) { ! destWidth = width; ! destHeight = height; ! } ! else if (destWidth < 0) ! { ! destWidth = width * destHeight / srcHeight; ! } ! else if (destHeight < 0) ! { ! destHeight = height * destWidth / srcWidth; ! } ! if (consumer != null) ! consumer.setDimensions(destWidth, destHeight); } /** * An ImageProducer can set a list of properties * associated with this image by using this method. * ! * @param props the list of properties associated with this image */ public void setProperties(Hashtable props) { *************** public class ReplicateScaleFilter extend *** 145,151 **** /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as a byte at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 145,151 ---- /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as a byte at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle *************** public class ReplicateScaleFilter extend *** 156,163 **** * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize) { if (srcrows == null || srccols == null) setupSources(); --- 156,163 ---- * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ! ColorModel model, byte[] pixels, int offset, int scansize) { if (srcrows == null || srccols == null) setupSources(); *************** public class ReplicateScaleFilter extend *** 193,199 **** /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle --- 193,199 ---- /** * This function delivers a rectangle of pixels where any * pixel(m,n) is stored in the array as an int at ! * index (n * scansize + m + offset). * * @param x the x coordinate of the rectangle * @param y the y coordinate of the rectangle *************** public class ReplicateScaleFilter extend *** 204,210 **** * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize) { if (srcrows == null || srccols == null) --- 204,210 ---- * @param offset the index of the first pixels in the pixels array * @param scansize the width to use in extracting pixels from the pixels array */ ! public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize) { if (srcrows == null || srccols == null) *************** public class ReplicateScaleFilter extend *** 255,258 **** } } } - --- 255,257 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/RescaleOp.java gcc-4.6.0/libjava/classpath/java/awt/image/RescaleOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/RescaleOp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/RescaleOp.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 44,63 **** /** * RescaleOp is a filter that changes each pixel by a scaling factor and offset. ! * * For filtering Rasters, either one scaling factor and offset can be specified, * which will be applied to all bands; or a scaling factor and offset can be * specified for each band. ! * * For BufferedImages, the scaling may apply to both color and alpha components. * If only one scaling factor is provided, or if the number of factors provided * equals the number of color components, the scaling is performed on all color * components. Otherwise, the scaling is performed on all components including * alpha. Alpha premultiplication is ignored. ! * * After filtering, if color conversion is necessary, the conversion happens, * taking alpha premultiplication into account. ! * * @author Jerry Quinn (jlquinn@optonline.net) * @author Francis Kung (fkung@redhat.com) */ --- 44,63 ---- /** * RescaleOp is a filter that changes each pixel by a scaling factor and offset. ! * * For filtering Rasters, either one scaling factor and offset can be specified, * which will be applied to all bands; or a scaling factor and offset can be * specified for each band. ! * * For BufferedImages, the scaling may apply to both color and alpha components. * If only one scaling factor is provided, or if the number of factors provided * equals the number of color components, the scaling is performed on all color * components. Otherwise, the scaling is performed on all components including * alpha. Alpha premultiplication is ignored. ! * * After filtering, if color conversion is necessary, the conversion happens, * taking alpha premultiplication into account. ! * * @author Jerry Quinn (jlquinn@optonline.net) * @author Francis Kung (fkung@redhat.com) */ *************** public class RescaleOp implements Buffer *** 66,112 **** private float[] scale; private float[] offsets; private RenderingHints hints = null; ! /** * Create a new RescaleOp object using the given scale factors and offsets. ! * * The length of the arrays must be equal to the number of bands (or number of * data or color components) of the raster/image that this Op will be used on, * otherwise an IllegalArgumentException will be thrown when calling the * filter method. ! * * @param scaleFactors an array of scale factors. * @param offsets an array of offsets. * @param hints any rendering hints to use (can be null). * @throws NullPointerException if the scaleFactors or offsets array is null. */ public RescaleOp(float[] scaleFactors, ! float[] offsets, ! RenderingHints hints) { int length = Math.min(scaleFactors.length, offsets.length); ! scale = new float[length]; System.arraycopy(scaleFactors, 0, this.scale, 0, length); ! this.offsets = new float[length]; System.arraycopy(offsets, 0, this.offsets, 0, length); ! this.hints = hints; } ! /** * Create a new RescaleOp object using the given scale factor and offset. ! * * The same scale factor and offset will be used on all bands/components. ! * * @param scaleFactor the scale factor to use. * @param offset the offset to use. * @param hints any rendering hints to use (can be null). */ public RescaleOp(float scaleFactor, ! float offset, ! RenderingHints hints) { scale = new float[]{ scaleFactor }; offsets = new float[]{offset}; --- 66,112 ---- private float[] scale; private float[] offsets; private RenderingHints hints = null; ! /** * Create a new RescaleOp object using the given scale factors and offsets. ! * * The length of the arrays must be equal to the number of bands (or number of * data or color components) of the raster/image that this Op will be used on, * otherwise an IllegalArgumentException will be thrown when calling the * filter method. ! * * @param scaleFactors an array of scale factors. * @param offsets an array of offsets. * @param hints any rendering hints to use (can be null). * @throws NullPointerException if the scaleFactors or offsets array is null. */ public RescaleOp(float[] scaleFactors, ! float[] offsets, ! RenderingHints hints) { int length = Math.min(scaleFactors.length, offsets.length); ! scale = new float[length]; System.arraycopy(scaleFactors, 0, this.scale, 0, length); ! this.offsets = new float[length]; System.arraycopy(offsets, 0, this.offsets, 0, length); ! this.hints = hints; } ! /** * Create a new RescaleOp object using the given scale factor and offset. ! * * The same scale factor and offset will be used on all bands/components. ! * * @param scaleFactor the scale factor to use. * @param offset the offset to use. * @param hints any rendering hints to use (can be null). */ public RescaleOp(float scaleFactor, ! float offset, ! RenderingHints hints) { scale = new float[]{ scaleFactor }; offsets = new float[]{offset}; *************** public class RescaleOp implements Buffer *** 115,124 **** /** * Returns the scaling factors. This method accepts an optional array, which ! * will be used to store the factors if not null (this avoids allocating a * new array). If this array is too small to hold all the scaling factors, * the array will be filled and the remaining factors discarded. ! * * @param scaleFactors array to store the scaling factors in (can be null). * @return an array of scaling factors. */ --- 115,124 ---- /** * Returns the scaling factors. This method accepts an optional array, which ! * will be used to store the factors if not null (this avoids allocating a * new array). If this array is too small to hold all the scaling factors, * the array will be filled and the remaining factors discarded. ! * * @param scaleFactors array to store the scaling factors in (can be null). * @return an array of scaling factors. */ *************** public class RescaleOp implements Buffer *** 133,142 **** /** * Returns the offsets. This method accepts an optional array, which ! * will be used to store the offsets if not null (this avoids allocating a ! * new array). If this array is too small to hold all the offsets, the array * will be filled and the remaining factors discarded. ! * * @param offsets array to store the offsets in (can be null). * @return an array of offsets. */ --- 133,142 ---- /** * Returns the offsets. This method accepts an optional array, which ! * will be used to store the offsets if not null (this avoids allocating a ! * new array). If this array is too small to hold all the offsets, the array * will be filled and the remaining factors discarded. ! * * @param offsets array to store the offsets in (can be null). * @return an array of offsets. */ *************** public class RescaleOp implements Buffer *** 151,157 **** /** * Returns the number of scaling factors / offsets. ! * * @return the number of scaling factors / offsets. */ public final int getNumFactors() --- 151,157 ---- /** * Returns the number of scaling factors / offsets. ! * * @return the number of scaling factors / offsets. */ public final int getNumFactors() *************** public class RescaleOp implements Buffer *** 168,180 **** } /** ! * Converts the source image using the scale factors and offsets specified in ! * the constructor. The resulting image is stored in the destination image if ! * one is provided; otherwise a new BufferedImage is created and returned. ! * * The source image cannot use an IndexColorModel, and the destination image * (if one is provided) must have the same size. ! * * If the final value of a sample is beyond the range of the color model, it * will be clipped to the appropriate maximum / minimum. * --- 168,180 ---- } /** ! * Converts the source image using the scale factors and offsets specified in ! * the constructor. The resulting image is stored in the destination image if ! * one is provided; otherwise a new BufferedImage is created and returned. ! * * The source image cannot use an IndexColorModel, and the destination image * (if one is provided) must have the same size. ! * * If the final value of a sample is beyond the range of the color model, it * will be clipped to the appropriate maximum / minimum. * *************** public class RescaleOp implements Buffer *** 264,279 **** Arrays.fill(bands, true); return filter(src, dest, bands); } ! /** * Perform raster-based filtering on a selected number of bands. ! * * The length of the bands array should equal the number of bands; a true * element indicates filtering should happen on the corresponding band, while * a false element will skip the band. ! * * The rasters are assumed to be compatible and non-null. ! * * @param src the source raster. * @param dest the destination raster. * @param bands an array indicating which bands to filter. --- 264,279 ---- Arrays.fill(bands, true); return filter(src, dest, bands); } ! /** * Perform raster-based filtering on a selected number of bands. ! * * The length of the bands array should equal the number of bands; a true * element indicates filtering should happen on the corresponding band, while * a false element will skip the band. ! * * The rasters are assumed to be compatible and non-null. ! * * @param src the source raster. * @param dest the destination raster. * @param bands an array indicating which bands to filter. *************** public class RescaleOp implements Buffer *** 285,296 **** { int[] values = new int[src.getHeight() * src.getWidth()]; float scaleFactor, offset; ! // Find max sample value, to be used for clipping later int[] maxValue = src.getSampleModel().getSampleSize(); for (int i = 0; i < maxValue.length; i++) maxValue[i] = (int)Math.pow(2, maxValue[i]) - 1; ! // TODO: can this be optimized further? // Filter all samples of all requested bands for (int band = 0; band < bands.length; band++) --- 285,296 ---- { int[] values = new int[src.getHeight() * src.getWidth()]; float scaleFactor, offset; ! // Find max sample value, to be used for clipping later int[] maxValue = src.getSampleModel().getSampleSize(); for (int i = 0; i < maxValue.length; i++) maxValue[i] = (int)Math.pow(2, maxValue[i]) - 1; ! // TODO: can this be optimized further? // Filter all samples of all requested bands for (int band = 0; band < bands.length; band++) *************** public class RescaleOp implements Buffer *** 324,345 **** dest.setSamples(dest.getMinX(), dest.getMinY(), dest.getWidth(), dest.getHeight(), band, values); } ! return dest; } /* * (non-Javadoc) ! * * @see java.awt.image.BufferedImageOp#createCompatibleDestImage(java.awt.image.BufferedImage, * java.awt.image.ColorModel) */ public BufferedImage createCompatibleDestImage(BufferedImage src, ! ColorModel dstCM) { if (dstCM == null) return new BufferedImage(src.getWidth(), src.getHeight(), src.getType()); ! return new BufferedImage(dstCM, src.getRaster().createCompatibleWritableRaster(), src.isAlphaPremultiplied(), null); --- 324,345 ---- dest.setSamples(dest.getMinX(), dest.getMinY(), dest.getWidth(), dest.getHeight(), band, values); } ! return dest; } /* * (non-Javadoc) ! * * @see java.awt.image.BufferedImageOp#createCompatibleDestImage(java.awt.image.BufferedImage, * java.awt.image.ColorModel) */ public BufferedImage createCompatibleDestImage(BufferedImage src, ! ColorModel dstCM) { if (dstCM == null) return new BufferedImage(src.getWidth(), src.getHeight(), src.getType()); ! return new BufferedImage(dstCM, src.getRaster().createCompatibleWritableRaster(), src.isAlphaPremultiplied(), null); *************** public class RescaleOp implements Buffer *** 352,358 **** { return src.createCompatibleWritableRaster(); } ! /* (non-Javadoc) * @see java.awt.image.BufferedImageOp#getBounds2D(java.awt.image.BufferedImage) */ --- 352,358 ---- { return src.createCompatibleWritableRaster(); } ! /* (non-Javadoc) * @see java.awt.image.BufferedImageOp#getBounds2D(java.awt.image.BufferedImage) */ *************** public class RescaleOp implements Buffer *** 378,384 **** dst = (Point2D) src.clone(); else dst.setLocation(src); ! return dst; } --- 378,384 ---- dst = (Point2D) src.clone(); else dst.setLocation(src); ! return dst; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/SampleModel.java gcc-4.6.0/libjava/classpath/java/awt/image/SampleModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/SampleModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/SampleModel.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 37,60 **** package java.awt.image; /** ! * A SampleModel is used to access pixel data from a * {@link DataBuffer}. This is used by the {@link Raster} class. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public abstract class SampleModel { /** Width of image described. */ protected int width; ! /** Height of image described. */ protected int height; ! /** Number of bands in the image described. Package-private here, shadowed by ComponentSampleModel. */ protected int numBands; ! /** * The DataBuffer type that is used to store the data of the image * described. */ --- 37,60 ---- package java.awt.image; /** ! * A SampleModel is used to access pixel data from a * {@link DataBuffer}. This is used by the {@link Raster} class. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public abstract class SampleModel { /** Width of image described. */ protected int width; ! /** Height of image described. */ protected int height; ! /** Number of bands in the image described. Package-private here, shadowed by ComponentSampleModel. */ protected int numBands; ! /** * The DataBuffer type that is used to store the data of the image * described. */ *************** public abstract class SampleModel *** 62,81 **** /** * Creates a new sample model with the specified attributes. ! * * @param dataType the data type (one of {@link DataBuffer#TYPE_BYTE}, * {@link DataBuffer#TYPE_USHORT}, {@link DataBuffer#TYPE_SHORT}, ! * {@link DataBuffer#TYPE_INT}, {@link DataBuffer#TYPE_FLOAT}, * {@link DataBuffer#TYPE_DOUBLE} or {@link DataBuffer#TYPE_UNDEFINED}). * @param w the width in pixels (must be greater than zero). * @param h the height in pixels (must be greater than zero). * @param numBands the number of bands (must be greater than zero). ! * ! * @throws IllegalArgumentException if dataType is not one of * the listed values. * @throws IllegalArgumentException if w is less than or equal * to zero. ! * @throws IllegalArgumentException if h is less than or equal * to zero. * @throws IllegalArgumentException if w * h is greater than * {@link Integer#MAX_VALUE}. --- 62,81 ---- /** * Creates a new sample model with the specified attributes. ! * * @param dataType the data type (one of {@link DataBuffer#TYPE_BYTE}, * {@link DataBuffer#TYPE_USHORT}, {@link DataBuffer#TYPE_SHORT}, ! * {@link DataBuffer#TYPE_INT}, {@link DataBuffer#TYPE_FLOAT}, * {@link DataBuffer#TYPE_DOUBLE} or {@link DataBuffer#TYPE_UNDEFINED}). * @param w the width in pixels (must be greater than zero). * @param h the height in pixels (must be greater than zero). * @param numBands the number of bands (must be greater than zero). ! * ! * @throws IllegalArgumentException if dataType is not one of * the listed values. * @throws IllegalArgumentException if w is less than or equal * to zero. ! * @throws IllegalArgumentException if h is less than or equal * to zero. * @throws IllegalArgumentException if w * h is greater than * {@link Integer#MAX_VALUE}. *************** public abstract class SampleModel *** 85,114 **** if (dataType != DataBuffer.TYPE_UNDEFINED) if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_DOUBLE) throw new IllegalArgumentException("Unrecognised 'dataType' argument."); ! ! if ((w <= 0) || (h <= 0)) throw new IllegalArgumentException((w <= 0 ? " width<=0" : " width is ok") + (h <= 0 ? " height<=0" : " height is ok")); ! long area = (long) w * (long) h; if (area > Integer.MAX_VALUE) throw new IllegalArgumentException("w * h exceeds Integer.MAX_VALUE."); if (numBands <= 0) throw new IllegalArgumentException("Requires numBands > 0."); ! this.dataType = dataType; this.width = w; this.height = h; ! this.numBands = numBands; } ! /** ! * Returns the width of the pixel data accessible via this * SampleModel. ! * * @return The width. ! * * @see #getHeight() */ public final int getWidth() --- 85,114 ---- if (dataType != DataBuffer.TYPE_UNDEFINED) if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_DOUBLE) throw new IllegalArgumentException("Unrecognised 'dataType' argument."); ! ! if ((w <= 0) || (h <= 0)) throw new IllegalArgumentException((w <= 0 ? " width<=0" : " width is ok") + (h <= 0 ? " height<=0" : " height is ok")); ! long area = (long) w * (long) h; if (area > Integer.MAX_VALUE) throw new IllegalArgumentException("w * h exceeds Integer.MAX_VALUE."); if (numBands <= 0) throw new IllegalArgumentException("Requires numBands > 0."); ! this.dataType = dataType; this.width = w; this.height = h; ! this.numBands = numBands; } ! /** ! * Returns the width of the pixel data accessible via this * SampleModel. ! * * @return The width. ! * * @see #getHeight() */ public final int getWidth() *************** public abstract class SampleModel *** 117,127 **** } /** ! * Returns the height of the pixel data accessible via this * SampleModel. ! * * @return The height. ! * * @see #getWidth() */ public final int getHeight() --- 117,127 ---- } /** ! * Returns the height of the pixel data accessible via this * SampleModel. ! * * @return The height. ! * * @see #getWidth() */ public final int getHeight() *************** public abstract class SampleModel *** 131,150 **** /** * Returns the number of bands for this SampleModel. ! * * @return The number of bands. */ public final int getNumBands() { return numBands; } ! public abstract int getNumDataElements(); ! /** ! * Returns the type of the {@link DataBuffer} that this * SampleModel accesses. ! * * @return The data buffer type. */ public final int getDataType() --- 131,150 ---- /** * Returns the number of bands for this SampleModel. ! * * @return The number of bands. */ public final int getNumBands() { return numBands; } ! public abstract int getNumDataElements(); ! /** ! * Returns the type of the {@link DataBuffer} that this * SampleModel accesses. ! * * @return The data buffer type. */ public final int getDataType() *************** public abstract class SampleModel *** 163,188 **** * specified data buffer. If iArray is not null, * it will be populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { ! if (iArray == null) iArray = new int[numBands]; ! for (int b = 0; b < numBands; b++) iArray[b] = getSample(x, y, b, data); return iArray; } ! /** * * This method is provided as a faster alternative to getPixel(), --- 163,188 ---- * specified data buffer. If iArray is not null, * it will be populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { ! if (iArray == null) iArray = new int[numBands]; ! for (int b = 0; b < numBands; b++) iArray[b] = getSample(x, y, b, data); return iArray; } ! /** * * This method is provided as a faster alternative to getPixel(), *************** public abstract class SampleModel *** 199,212 **** public abstract Object getDataElements(int x, int y, Object obj, DataBuffer data); ! public Object getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) { int size = w * h; int numDataElements = getNumDataElements(); int dataSize = numDataElements * size; ! if (obj == null) { switch (getTransferType()) --- 199,212 ---- public abstract Object getDataElements(int x, int y, Object obj, DataBuffer data); ! public Object getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) { int size = w * h; int numDataElements = getNumDataElements(); int dataSize = numDataElements * size; ! if (obj == null) { switch (getTransferType()) *************** public abstract class SampleModel *** 247,253 **** Object obj, DataBuffer data) { int numDataElements = getNumDataElements(); ! Object pixelData; switch (getTransferType()) { --- 247,253 ---- Object obj, DataBuffer data) { int numDataElements = getNumDataElements(); ! Object pixelData; switch (getTransferType()) { *************** public abstract class SampleModel *** 292,313 **** * specified data buffer. If fArray is not null, * it will be populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public float[] getPixel(int x, int y, float[] fArray, DataBuffer data) { ! if (fArray == null) fArray = new float[numBands]; ! for (int b = 0; b < numBands; b++) { fArray[b] = getSampleFloat(x, y, b, data); --- 292,313 ---- * specified data buffer. If fArray is not null, * it will be populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public float[] getPixel(int x, int y, float[] fArray, DataBuffer data) { ! if (fArray == null) fArray = new float[numBands]; ! for (int b = 0; b < numBands; b++) { fArray[b] = getSampleFloat(x, y, b, data); *************** public abstract class SampleModel *** 320,338 **** * specified data buffer. If dArray is not null, * it will be populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public double[] getPixel(int x, int y, double[] dArray, DataBuffer data) { ! if (dArray == null) dArray = new double[numBands]; for (int b = 0; b < numBands; b++) { --- 320,338 ---- * specified data buffer. If dArray is not null, * it will be populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public double[] getPixel(int x, int y, double[] dArray, DataBuffer data) { ! if (dArray == null) dArray = new double[numBands]; for (int b = 0; b < numBands; b++) { *************** public abstract class SampleModel *** 342,365 **** } /** ! * Returns an array containing the samples for the pixels in the region * specified by (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). If iArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray, --- 342,365 ---- } /** ! * Returns an array containing the samples for the pixels in the region * specified by (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). If iArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray, *************** public abstract class SampleModel *** 368,374 **** int size = w * h; int outOffset = 0; int[] pixel = null; ! if (iArray == null) iArray = new int[w * h * numBands]; for (int yy = y; yy < (y + h); yy++) { --- 368,374 ---- int size = w * h; int outOffset = 0; int[] pixel = null; ! if (iArray == null) iArray = new int[w * h * numBands]; for (int yy = y; yy < (y + h); yy++) { *************** public abstract class SampleModel *** 383,406 **** } /** ! * Returns an array containing the samples for the pixels in the region * specified by (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). If fArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public float[] getPixels(int x, int y, int w, int h, float[] fArray, --- 383,406 ---- } /** ! * Returns an array containing the samples for the pixels in the region * specified by (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). If fArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public float[] getPixels(int x, int y, int w, int h, float[] fArray, *************** public abstract class SampleModel *** 421,446 **** } return fArray; } ! /** ! * Returns an array containing the samples for the pixels in the region * specified by (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). If dArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public double[] getPixels(int x, int y, int w, int h, double[] dArray, --- 421,446 ---- } return fArray; } ! /** ! * Returns an array containing the samples for the pixels in the region * specified by (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). If dArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public double[] getPixels(int x, int y, int w, int h, double[] dArray, *************** public abstract class SampleModel *** 449,455 **** int size = w * h; int outOffset = 0; double[] pixel = null; ! if (dArray == null) dArray = new double[w * h * numBands]; for (int yy = y; yy < (y + h); yy++) { --- 449,455 ---- int size = w * h; int outOffset = 0; double[] pixel = null; ! if (dArray == null) dArray = new double[w * h * numBands]; for (int yy = y; yy < (y + h); yy++) { *************** public abstract class SampleModel *** 464,498 **** } /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. */ public abstract int getSample(int x, int y, int b, DataBuffer data); /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. ! * * @see #getSample(int, int, int, DataBuffer) */ public float getSampleFloat(int x, int y, int b, DataBuffer data) --- 464,498 ---- } /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. */ public abstract int getSample(int x, int y, int b, DataBuffer data); /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. ! * * @see #getSample(int, int, int, DataBuffer) */ public float getSampleFloat(int x, int y, int b, DataBuffer data) *************** public abstract class SampleModel *** 501,519 **** } /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. ! * * @see #getSample(int, int, int, DataBuffer) */ public double getSampleDouble(int x, int y, int b, DataBuffer data) --- 501,519 ---- } /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. ! * * @see #getSample(int, int, int, DataBuffer) */ public double getSampleDouble(int x, int y, int b, DataBuffer data) *************** public abstract class SampleModel *** 522,545 **** } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the specified data buffer. If ! * iArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The sample values. ! * * @throws NullPointerException if data is null. */ public int[] getSamples(int x, int y, int w, int h, int b, --- 522,545 ---- } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the specified data buffer. If ! * iArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The sample values. ! * * @throws NullPointerException if data is null. */ public int[] getSamples(int x, int y, int w, int h, int b, *************** public abstract class SampleModel *** 547,553 **** { int size = w * h; int outOffset = 0; ! if (iArray == null) iArray = new int[size]; for (int yy = y; yy < (y + h); yy++) { --- 547,553 ---- { int size = w * h; int outOffset = 0; ! if (iArray == null) iArray = new int[size]; for (int yy = y; yy < (y + h); yy++) { *************** public abstract class SampleModel *** 560,583 **** } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the specified data buffer. If ! * fArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The sample values. ! * * @throws NullPointerException if data is null. */ public float[] getSamples(int x, int y, int w, int h, int b, --- 560,583 ---- } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the specified data buffer. If ! * fArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param fArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The sample values. ! * * @throws NullPointerException if data is null. */ public float[] getSamples(int x, int y, int w, int h, int b, *************** public abstract class SampleModel *** 585,591 **** { int size = w * h; int outOffset = 0; ! if (fArray == null) fArray = new float[size]; for (int yy = y; yy < (y + h); yy++) { --- 585,591 ---- { int size = w * h; int outOffset = 0; ! if (fArray == null) fArray = new float[size]; for (int yy = y; yy < (y + h); yy++) { *************** public abstract class SampleModel *** 598,621 **** } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the specified data buffer. If ! * dArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The sample values. ! * * @throws NullPointerException if data is null. */ public double[] getSamples(int x, int y, int w, int h, int b, --- 598,621 ---- } /** ! * Returns an array containing the samples from one band for the pixels in ! * the region specified by (x, y, w, h) in the specified data buffer. If ! * dArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). ! * @param dArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The sample values. ! * * @throws NullPointerException if data is null. */ public double[] getSamples(int x, int y, int w, int h, int b, *************** public abstract class SampleModel *** 623,629 **** { int size = w * h; int outOffset = 0; ! if (dArray == null) dArray = new double[size]; for (int yy = y; yy < (y + h); yy++) { --- 623,629 ---- { int size = w * h; int outOffset = 0; ! if (dArray == null) dArray = new double[size]; for (int yy = y; yy < (y + h); yy++) { *************** public abstract class SampleModel *** 634,709 **** } return dArray; } ! /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) { ! for (int b = 0; b < numBands; b++) setSample(x, y, b, iArray[b], data); } /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param fArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either fArray or * data is null. */ public void setPixel(int x, int y, float[] fArray, DataBuffer data) { ! for (int b = 0; b < numBands; b++) setSample(x, y, b, fArray[b], data); } /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param dArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either dArray or * data is null. */ public void setPixel(int x, int y, double[] dArray, DataBuffer data) { ! for (int b = 0; b < numBands; b++) setSample(x, y, b, dArray[b], data); } /** ! * Sets the sample values for the pixels in the region specified by * (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param iArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixels(int x, int y, int w, int h, int[] iArray, --- 634,709 ---- } return dArray; } ! /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) { ! for (int b = 0; b < numBands; b++) setSample(x, y, b, iArray[b], data); } /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param fArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either fArray or * data is null. */ public void setPixel(int x, int y, float[] fArray, DataBuffer data) { ! for (int b = 0; b < numBands; b++) setSample(x, y, b, fArray[b], data); } /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param dArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either dArray or * data is null. */ public void setPixel(int x, int y, double[] dArray, DataBuffer data) { ! for (int b = 0; b < numBands; b++) setSample(x, y, b, dArray[b], data); } /** ! * Sets the sample values for the pixels in the region specified by * (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param iArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixels(int x, int y, int w, int h, int[] iArray, *************** public abstract class SampleModel *** 723,742 **** } /** ! * Sets the sample values for the pixels in the region specified by * (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param fArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either fArray or * data is null. */ public void setPixels(int x, int y, int w, int h, float[] fArray, --- 723,742 ---- } /** ! * Sets the sample values for the pixels in the region specified by * (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param fArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either fArray or * data is null. */ public void setPixels(int x, int y, int w, int h, float[] fArray, *************** public abstract class SampleModel *** 756,775 **** } /** ! * Sets the sample values for the pixels in the region specified by * (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param dArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either dArray or * data is null. */ public void setPixels(int x, int y, int w, int h, double[] dArray, --- 756,775 ---- } /** ! * Sets the sample values for the pixels in the region specified by * (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param dArray the pixel sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either dArray or * data is null. */ public void setPixels(int x, int y, int w, int h, double[] dArray, *************** public abstract class SampleModel *** 789,820 **** } /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public abstract void setSample(int x, int y, int b, int s, DataBuffer data); /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, float s, --- 789,820 ---- } /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public abstract void setSample(int x, int y, int b, int s, DataBuffer data); /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, float s, *************** public abstract class SampleModel *** 824,839 **** } /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, double s, --- 824,839 ---- } /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, double s, *************** public abstract class SampleModel *** 843,861 **** } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the specified data buffer. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setSamples(int x, int y, int w, int h, int b, --- 843,861 ---- } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the specified data buffer. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setSamples(int x, int y, int w, int h, int b, *************** public abstract class SampleModel *** 869,887 **** } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the specified data buffer. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param fArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setSamples(int x, int y, int w, int h, int b, --- 869,887 ---- } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the specified data buffer. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param fArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setSamples(int x, int y, int w, int h, int b, *************** public abstract class SampleModel *** 896,914 **** } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the specified data buffer. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param dArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setSamples(int x, int y, int w, int h, int b, --- 896,914 ---- } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the specified data buffer. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param dArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setSamples(int x, int y, int w, int h, int b, *************** public abstract class SampleModel *** 923,953 **** /** * Creates a new SampleModel that is compatible with this * model and has the specified width and height. ! * * @param w the width (in pixels). * @param h the height (in pixels). ! * * @return The new sample model. */ public abstract SampleModel createCompatibleSampleModel(int w, int h); /** * Return a SampleModel with a subset of the bands in this model. ! * * Selects bands.length bands from this sample model. The bands chosen * are specified in the indices of bands[]. This also permits permuting * the bands as well as taking a subset. Thus, giving an array with * 1, 2, 3, ..., numbands, will give an identical sample model. ! * * @param bands Array with band indices to include. * @return A new sample model */ public abstract SampleModel createSubsetSampleModel(int[] bands); /** ! * Creates a new {@link DataBuffer} of the correct type and size for this * SampleModel. ! * * @return The data buffer. */ public abstract DataBuffer createDataBuffer(); --- 923,953 ---- /** * Creates a new SampleModel that is compatible with this * model and has the specified width and height. ! * * @param w the width (in pixels). * @param h the height (in pixels). ! * * @return The new sample model. */ public abstract SampleModel createCompatibleSampleModel(int w, int h); /** * Return a SampleModel with a subset of the bands in this model. ! * * Selects bands.length bands from this sample model. The bands chosen * are specified in the indices of bands[]. This also permits permuting * the bands as well as taking a subset. Thus, giving an array with * 1, 2, 3, ..., numbands, will give an identical sample model. ! * * @param bands Array with band indices to include. * @return A new sample model */ public abstract SampleModel createSubsetSampleModel(int[] bands); /** ! * Creates a new {@link DataBuffer} of the correct type and size for this * SampleModel. ! * * @return The data buffer. */ public abstract DataBuffer createDataBuffer(); *************** public abstract class SampleModel *** 955,973 **** /** * Returns an array containing the size (in bits) for each band accessed by * the SampleModel. ! * * @return An array. ! * * @see #getSampleSize(int) */ public abstract int[] getSampleSize(); /** * Returns the size (in bits) of the samples for the specified band. ! * ! * @param band the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample size (in bits). */ public abstract int getSampleSize(int band); --- 955,973 ---- /** * Returns an array containing the size (in bits) for each band accessed by * the SampleModel. ! * * @return An array. ! * * @see #getSampleSize(int) */ public abstract int[] getSampleSize(); /** * Returns the size (in bits) of the samples for the specified band. ! * ! * @param band the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample size (in bits). */ public abstract int getSampleSize(int band); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/ShortLookupTable.java gcc-4.6.0/libjava/classpath/java/awt/image/ShortLookupTable.java *** gcc-4.5.2/libjava/classpath/java/awt/image/ShortLookupTable.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/image/ShortLookupTable.java Tue Jan 11 19:46:05 2011 *************** public class ShortLookupTable extends Lo *** 58,64 **** * Offset is subtracted from pixel values when looking up in the translation * tables. If data.length is one, the same table is applied to all pixel * components. ! * * @param offset Offset to be subtracted. * @param data Array of lookup tables. * @exception IllegalArgumentException if offset < 0 or data.length < 1. --- 58,64 ---- * Offset is subtracted from pixel values when looking up in the translation * tables. If data.length is one, the same table is applied to all pixel * components. ! * * @param offset Offset to be subtracted. * @param data Array of lookup tables. * @exception IllegalArgumentException if offset < 0 or data.length < 1. *************** public class ShortLookupTable extends Lo *** 67,75 **** throws IllegalArgumentException { super(offset, data.length); ! // tests show that Sun's implementation creates a new array to store the ! // references from the incoming 'data' array - not sure why, but we'll // match that behaviour just in case it matters... this.data = new short[data.length][]; for (int i = 0; i < data.length; i++) --- 67,75 ---- throws IllegalArgumentException { super(offset, data.length); ! // tests show that Sun's implementation creates a new array to store the ! // references from the incoming 'data' array - not sure why, but we'll // match that behaviour just in case it matters... this.data = new short[data.length][]; for (int i = 0; i < data.length; i++) *************** public class ShortLookupTable extends Lo *** 81,89 **** * * Offset is subtracted from pixel values when looking up in the translation * table. The same table is applied to all pixel components. ! * * @param offset Offset to be subtracted. ! * @param data Lookup table for all components (null not * permitted). * @exception IllegalArgumentException if offset < 0. */ --- 81,89 ---- * * Offset is subtracted from pixel values when looking up in the translation * table. The same table is applied to all pixel components. ! * * @param offset Offset to be subtracted. ! * @param data Lookup table for all components (null not * permitted). * @exception IllegalArgumentException if offset < 0. */ *************** public class ShortLookupTable extends Lo *** 96,105 **** this.data = new short[][] {data}; } ! /** * Return the lookup tables. This is a reference to the actual table, so ! * modifying the contents of the returned array will modify the lookup table. ! * * @return The lookup table. */ public final short[][] getTable() --- 96,105 ---- this.data = new short[][] {data}; } ! /** * Return the lookup tables. This is a reference to the actual table, so ! * modifying the contents of the returned array will modify the lookup table. ! * * @return The lookup table. */ public final short[][] getTable() *************** public class ShortLookupTable extends Lo *** 136,142 **** else for (int i = 0; i < src.length; i++) dst[i] = data[i][src[i] - offset]; ! return dst; } --- 136,142 ---- else for (int i = 0; i < src.length; i++) dst[i] = data[i][src[i] - offset]; ! return dst; } *************** public class ShortLookupTable extends Lo *** 170,176 **** else for (int i = 0; i < src.length; i++) dst[i] = data[i][((int) src[i]) - offset]; ! return dst; } --- 170,176 ---- else for (int i = 0; i < src.length; i++) dst[i] = data[i][((int) src[i]) - offset]; ! return dst; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java gcc-4.6.0/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java *** gcc-4.5.2/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.lang.CPStringBuilder; *** 43,51 **** /** * A SampleModel used when all samples are stored in a single ! * data element in the {@link DataBuffer}, and each data element contains * samples for one pixel only. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class SinglePixelPackedSampleModel extends SampleModel --- 43,51 ---- /** * A SampleModel used when all samples are stored in a single ! * data element in the {@link DataBuffer}, and each data element contains * samples for one pixel only. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class SinglePixelPackedSampleModel extends SampleModel *************** public class SinglePixelPackedSampleMode *** 54,63 **** private int[] bitMasks; private int[] bitOffsets; private int[] sampleSize; ! /** * Creates a new SinglePixelPackedSampleModel. ! * * @param dataType the data buffer type. * @param w the width (in pixels). * @param h the height (in pixels). --- 54,63 ---- private int[] bitMasks; private int[] bitOffsets; private int[] sampleSize; ! /** * Creates a new SinglePixelPackedSampleModel. ! * * @param dataType the data buffer type. * @param w the width (in pixels). * @param h the height (in pixels). *************** public class SinglePixelPackedSampleMode *** 65,78 **** * sample value for each band. */ public SinglePixelPackedSampleModel(int dataType, int w, int h, ! int[] bitMasks) { this(dataType, w, h, w, bitMasks); } /** * Creates a new SinglePixelPackedSampleModel. ! * * @param dataType the data buffer type. * @param w the width (in pixels). * @param h the height (in pixels). --- 65,78 ---- * sample value for each band. */ public SinglePixelPackedSampleModel(int dataType, int w, int h, ! int[] bitMasks) { this(dataType, w, h, w, bitMasks); } /** * Creates a new SinglePixelPackedSampleModel. ! * * @param dataType the data buffer type. * @param w the width (in pixels). * @param h the height (in pixels). *************** public class SinglePixelPackedSampleMode *** 82,88 **** * sample value for each band. */ public SinglePixelPackedSampleModel(int dataType, int w, int h, ! int scanlineStride, int[] bitMasks) { super(dataType, w, h, bitMasks.length); --- 82,88 ---- * sample value for each band. */ public SinglePixelPackedSampleModel(int dataType, int w, int h, ! int scanlineStride, int[] bitMasks) { super(dataType, w, h, bitMasks.length); *************** public class SinglePixelPackedSampleMode *** 91,108 **** case DataBuffer.TYPE_BYTE: case DataBuffer.TYPE_USHORT: case DataBuffer.TYPE_INT: ! break; default: throw new IllegalArgumentException( "SinglePixelPackedSampleModel unsupported dataType"); } ! this.scanlineStride = scanlineStride; this.bitMasks = bitMasks; ! bitOffsets = new int[numBands]; sampleSize = new int[numBands]; ! BitMaskExtent extent = new BitMaskExtent(); for (int b = 0; b < numBands; b++) { --- 91,108 ---- case DataBuffer.TYPE_BYTE: case DataBuffer.TYPE_USHORT: case DataBuffer.TYPE_INT: ! break; default: throw new IllegalArgumentException( "SinglePixelPackedSampleModel unsupported dataType"); } ! this.scanlineStride = scanlineStride; this.bitMasks = bitMasks; ! bitOffsets = new int[numBands]; sampleSize = new int[numBands]; ! BitMaskExtent extent = new BitMaskExtent(); for (int b = 0; b < numBands; b++) { *************** public class SinglePixelPackedSampleMode *** 116,122 **** /** * Returns the number of data elements. ! * * @return 1. */ public int getNumDataElements() --- 116,122 ---- /** * Returns the number of data elements. ! * * @return 1. */ public int getNumDataElements() *************** public class SinglePixelPackedSampleMode *** 127,136 **** /** * Creates a new SampleModel that is compatible with this * model and has the specified width and height. ! * * @param w the width (in pixels). * @param h the height (in pixels). ! * * @return The new sample model. */ public SampleModel createCompatibleSampleModel(int w, int h) --- 127,136 ---- /** * Creates a new SampleModel that is compatible with this * model and has the specified width and height. ! * * @param w the width (in pixels). * @param h the height (in pixels). ! * * @return The new sample model. */ public SampleModel createCompatibleSampleModel(int w, int h) *************** public class SinglePixelPackedSampleMode *** 146,152 **** * Creates a DataBuffer for holding pixel data in the format and * layout described by this SampleModel. The returned buffer will * consist of one single bank. ! * * @return The data buffer. */ public DataBuffer createDataBuffer() --- 146,152 ---- * Creates a DataBuffer for holding pixel data in the format and * layout described by this SampleModel. The returned buffer will * consist of one single bank. ! * * @return The data buffer. */ public DataBuffer createDataBuffer() *************** public class SinglePixelPackedSampleMode *** 175,196 **** /** * Returns an array containing the size (in bits) for each band accessed by * the SampleModel. ! * * @return An array. ! * * @see #getSampleSize(int) */ public int[] getSampleSize() { return (int[]) sampleSize.clone(); } ! /** * Returns the size (in bits) of the samples for the specified band. ! * ! * @param band the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample size (in bits). */ public int getSampleSize(int band) --- 175,196 ---- /** * Returns an array containing the size (in bits) for each band accessed by * the SampleModel. ! * * @return An array. ! * * @see #getSampleSize(int) */ public int[] getSampleSize() { return (int[]) sampleSize.clone(); } ! /** * Returns the size (in bits) of the samples for the specified band. ! * ! * @param band the band (in the range 0 to * getNumBands() - 1). ! * * @return The sample size (in bits). */ public int getSampleSize(int band) *************** public class SinglePixelPackedSampleMode *** 200,209 **** /** * Returns the index in the data buffer that stores the pixel at (x, y). ! * * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return The index in the data buffer that stores the pixel at (x, y). */ public int getOffset(int x, int y) --- 200,209 ---- /** * Returns the index in the data buffer that stores the pixel at (x, y). ! * * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return The index in the data buffer that stores the pixel at (x, y). */ public int getOffset(int x, int y) *************** public class SinglePixelPackedSampleMode *** 224,230 **** /** * Returns the number of data elements from a pixel in one row to the * corresponding pixel in the next row. ! * * @return The scanline stride. */ public int getScanlineStride() --- 224,230 ---- /** * Returns the number of data elements from a pixel in one row to the * corresponding pixel in the next row. ! * * @return The scanline stride. */ public int getScanlineStride() *************** public class SinglePixelPackedSampleMode *** 235,246 **** /** * Creates a new SinglePixelPackedSampleModel that accesses * the specified subset of bands. ! * * @param bands an array containing band indices (null not * permitted). ! * * @return A new sample model. ! * * @throws NullPointerException if bands is null. * @throws RasterFormatException if bands.length is greater * than the number of bands in this model. --- 235,246 ---- /** * Creates a new SinglePixelPackedSampleModel that accesses * the specified subset of bands. ! * * @param bands an array containing band indices (null not * permitted). ! * * @return A new sample model. ! * * @throws NullPointerException if bands is null. * @throws RasterFormatException if bands.length is greater * than the number of bands in this model. *************** public class SinglePixelPackedSampleMode *** 249,268 **** { if (bands.length > numBands) throw new RasterFormatException("Too many bands."); ! int numBands = bands.length; ! int[] bitMasks = new int[numBands]; for (int b = 0; b < numBands; b++) bitMasks[b] = this.bitMasks[bands[b]]; return new SinglePixelPackedSampleModel(dataType, width, height, ! scanlineStride, bitMasks); } public Object getDataElements(int x, int y, Object obj, ! DataBuffer data) { int type = getTransferType(); Object ret = null; --- 249,268 ---- { if (bands.length > numBands) throw new RasterFormatException("Too many bands."); ! int numBands = bands.length; ! int[] bitMasks = new int[numBands]; for (int b = 0; b < numBands; b++) bitMasks[b] = this.bitMasks[bands[b]]; return new SinglePixelPackedSampleModel(dataType, width, height, ! scanlineStride, bitMasks); } public Object getDataElements(int x, int y, Object obj, ! DataBuffer data) { int type = getTransferType(); Object ret = null; *************** public class SinglePixelPackedSampleMode *** 298,318 **** } return ret; } ! /** * Returns an array containing the samples for the pixel at (x, y) in the * specified data buffer. If iArray is not null, * it will be populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) --- 298,318 ---- } return ret; } ! /** * Returns an array containing the samples for the pixel at (x, y) in the * specified data buffer. If iArray is not null, * it will be populated with the sample values and returned as the result of * this function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) *************** public class SinglePixelPackedSampleMode *** 323,385 **** for (int b = 0; b < numBands; b++) iArray[b] = (samples & bitMasks[b]) >>> bitOffsets[b]; ! return iArray; } /** ! * Returns an array containing the samples for the pixels in the region * specified by (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). If iArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray, ! DataBuffer data) { int offset = scanlineStride*y + x; if (iArray == null) iArray = new int[numBands*w*h]; int outOffset = 0; for (y = 0; y < h; y++) { ! int lineOffset = offset; ! for (x = 0; x < w; x++) ! { ! int samples = data.getElem(lineOffset++); ! for (int b = 0; b < numBands; b++) ! iArray[outOffset++] = (samples & bitMasks[b]) >>> bitOffsets[b]; ! } ! offset += scanlineStride; } ! return iArray; } /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. */ public int getSample(int x, int y, int b, DataBuffer data) --- 323,385 ---- for (int b = 0; b < numBands; b++) iArray[b] = (samples & bitMasks[b]) >>> bitOffsets[b]; ! return iArray; } /** ! * Returns an array containing the samples for the pixels in the region * specified by (x, y, w, h) in the specified data buffer. The array is ! * ordered by pixels (that is, all the samples for the first pixel are * grouped together, followed by all the samples for the second pixel, and so ! * on). If iArray is not null, it will be ! * populated with the sample values and returned as the result of this * function (this avoids allocating a new array instance). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param iArray an array to populate with the sample values and return as * the result (if null, a new array will be allocated). * @param data the data buffer (null not permitted). ! * * @return The pixel sample values. ! * * @throws NullPointerException if data is null. */ public int[] getPixels(int x, int y, int w, int h, int[] iArray, ! DataBuffer data) { int offset = scanlineStride*y + x; if (iArray == null) iArray = new int[numBands*w*h]; int outOffset = 0; for (y = 0; y < h; y++) { ! int lineOffset = offset; ! for (x = 0; x < w; x++) ! { ! int samples = data.getElem(lineOffset++); ! for (int b = 0; b < numBands; b++) ! iArray[outOffset++] = (samples & bitMasks[b]) >>> bitOffsets[b]; ! } ! offset += scanlineStride; } ! return iArray; } /** ! * Returns the sample value for the pixel at (x, y) in the specified data * buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param data the data buffer (null not permitted). ! * * @return The sample value. ! * * @throws NullPointerException if data is null. */ public int getSample(int x, int y, int b, DataBuffer data) *************** public class SinglePixelPackedSampleMode *** 388,394 **** int samples = data.getElem(offset); return (samples & bitMasks[b]) >>> bitOffsets[b]; } ! public void setDataElements(int x, int y, Object obj, DataBuffer data) { int transferType = getTransferType(); --- 388,394 ---- int samples = data.getElem(offset); return (samples & bitMasks[b]) >>> bitOffsets[b]; } ! public void setDataElements(int x, int y, Object obj, DataBuffer data) { int transferType = getTransferType(); *************** public class SinglePixelPackedSampleMode *** 417,436 **** /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) { int offset = scanlineStride*y + x; ! int samples = 0; for (int b = 0; b < numBands; b++) samples |= (iArray[b] << bitOffsets[b]) & bitMasks[b]; --- 417,436 ---- /** * Sets the samples for the pixel at (x, y) in the specified data buffer to ! * the specified values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample values (null not permitted). * @param data the data buffer (null not permitted). ! * ! * @throws NullPointerException if either iArray or * data is null. */ public void setPixel(int x, int y, int[] iArray, DataBuffer data) { int offset = scanlineStride*y + x; ! int samples = 0; for (int b = 0; b < numBands; b++) samples |= (iArray[b] << bitOffsets[b]) & bitMasks[b]; *************** public class SinglePixelPackedSampleMode *** 448,465 **** * @param h The height of the pixel rectangle in obj. * @param iArray The primitive array containing the pixels to set. * @param data The DataBuffer to store the pixels into. ! * @see java.awt.image.SampleModel#setPixels(int, int, int, int, int[], * java.awt.image.DataBuffer) */ public void setPixels(int x, int y, int w, int h, int[] iArray, ! DataBuffer data) { int inOffset = 0; for (int yy=y; yy<(y+h); yy++) { int offset = scanlineStride*yy + x; for (int xx=x; xx<(x+w); xx++) ! { int samples = 0; for (int b = 0; b < numBands; b++) samples |= (iArray[inOffset+b] << bitOffsets[b]) & bitMasks[b]; --- 448,465 ---- * @param h The height of the pixel rectangle in obj. * @param iArray The primitive array containing the pixels to set. * @param data The DataBuffer to store the pixels into. ! * @see java.awt.image.SampleModel#setPixels(int, int, int, int, int[], * java.awt.image.DataBuffer) */ public void setPixels(int x, int y, int w, int h, int[] iArray, ! DataBuffer data) { int inOffset = 0; for (int yy=y; yy<(y+h); yy++) { int offset = scanlineStride*yy + x; for (int xx=x; xx<(x+w); xx++) ! { int samples = 0; for (int b = 0; b < numBands; b++) samples |= (iArray[inOffset+b] << bitOffsets[b]) & bitMasks[b]; *************** public class SinglePixelPackedSampleMode *** 469,486 **** } } } ! /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, int s, DataBuffer data) --- 469,486 ---- } } } ! /** ! * Sets the sample value for a band for the pixel at (x, y) in the ! * specified data buffer. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. * @param data the data buffer (null not permitted). ! * * @throws NullPointerException if data is null. */ public void setSample(int x, int y, int b, int s, DataBuffer data) *************** public class SinglePixelPackedSampleMode *** 492,504 **** samples |= (s << bitOffsets[b]) & bitMask; data.setElem(offset, samples); } ! /** ! * Tests this sample model for equality with an arbitrary object. This * method returns true if and only if: *
      *
    • obj is not null; ! *
    • obj is an instance of * SinglePixelPackedSampleModel; *
    • both models have the same: *
        --- 492,504 ---- samples |= (s << bitOffsets[b]) & bitMask; data.setElem(offset, samples); } ! /** ! * Tests this sample model for equality with an arbitrary object. This * method returns true if and only if: *
          *
        • obj is not null; ! *
        • obj is an instance of * SinglePixelPackedSampleModel; *
        • both models have the same: *
            *************** public class SinglePixelPackedSampleMode *** 512,528 **** *
          *
        • *
        ! * * @param obj the object (null permitted) ! * * @return true if this model is equal to obj, and * false otherwise. */ ! public boolean equals(Object obj) { ! if (this == obj) return true; ! if (! (obj instanceof SinglePixelPackedSampleModel)) return false; SinglePixelPackedSampleModel that = (SinglePixelPackedSampleModel) obj; if (this.dataType != that.dataType) --- 512,528 ---- *
      *
    • *
    ! * * @param obj the object (null permitted) ! * * @return true if this model is equal to obj, and * false otherwise. */ ! public boolean equals(Object obj) { ! if (this == obj) return true; ! if (! (obj instanceof SinglePixelPackedSampleModel)) return false; SinglePixelPackedSampleModel that = (SinglePixelPackedSampleModel) obj; if (this.dataType != that.dataType) *************** public class SinglePixelPackedSampleMode *** 537,550 **** return false; if (!Arrays.equals(this.bitMasks, that.bitMasks)) return false; ! if (!Arrays.equals(this.bitOffsets, that.bitOffsets)) return false; return true; } ! /** * Returns a hash code for this SinglePixelPackedSampleModel. ! * * @return A hash code. */ public int hashCode() --- 537,550 ---- return false; if (!Arrays.equals(this.bitMasks, that.bitMasks)) return false; ! if (!Arrays.equals(this.bitOffsets, that.bitOffsets)) return false; return true; } ! /** * Returns a hash code for this SinglePixelPackedSampleModel. ! * * @return A hash code. */ public int hashCode() *************** public class SinglePixelPackedSampleMode *** 562,568 **** result = 37 * result + bitOffsets[i]; return result; } ! /** * Creates a String with some information about this SampleModel. * @return A String describing this SampleModel. --- 562,568 ---- result = 37 * result + bitOffsets[i]; return result; } ! /** * Creates a String with some information about this SampleModel. * @return A String describing this SampleModel. *************** public class SinglePixelPackedSampleMode *** 579,585 **** result.append(", mask[").append(i).append("]=0x").append( Integer.toHexString(bitMasks[i])); } ! result.append("]"); return result.toString(); } --- 579,585 ---- result.append(", mask[").append(i).append("]=0x").append( Integer.toHexString(bitMasks[i])); } ! result.append("]"); return result.toString(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/TileObserver.java gcc-4.6.0/libjava/classpath/java/awt/image/TileObserver.java *** gcc-4.5.2/libjava/classpath/java/awt/image/TileObserver.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/TileObserver.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TileObserver.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TileObserver.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/WritableRaster.java gcc-4.6.0/libjava/classpath/java/awt/image/WritableRaster.java *** gcc-4.5.2/libjava/classpath/java/awt/image/WritableRaster.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/awt/image/WritableRaster.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Rectangle; *** 42,71 **** /** * A raster with methods to support updating pixel values. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class WritableRaster extends Raster { /** * Creates a new WritableRaster. ! * * @param sampleModel the sample model. * @param origin the origin. */ ! protected WritableRaster(SampleModel sampleModel, Point origin) { this(sampleModel, sampleModel.createDataBuffer(), origin); } ! /** * Creates a new WritableRaster instance. ! * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param origin the origin. */ ! protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin) { this(sampleModel, dataBuffer, --- 42,71 ---- /** * A raster with methods to support updating pixel values. ! * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public class WritableRaster extends Raster { /** * Creates a new WritableRaster. ! * * @param sampleModel the sample model. * @param origin the origin. */ ! protected WritableRaster(SampleModel sampleModel, Point origin) { this(sampleModel, sampleModel.createDataBuffer(), origin); } ! /** * Creates a new WritableRaster instance. ! * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param origin the origin. */ ! protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin) { this(sampleModel, dataBuffer, *************** public class WritableRaster extends Rast *** 77,90 **** /** * Creates a new WritableRaster instance. ! * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param aRegion the raster's bounds. * @param sampleModelTranslate the translation. * @param parent the parent. */ ! protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, --- 77,90 ---- /** * Creates a new WritableRaster instance. ! * * @param sampleModel the sample model. * @param dataBuffer the data buffer. * @param aRegion the raster's bounds. * @param sampleModelTranslate the translation. * @param parent the parent. */ ! protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, *************** public class WritableRaster extends Rast *** 95,108 **** /** * Returns the raster's parent, cast as a {@link WritableRaster}. ! * * @return The raster's parent. */ public WritableRaster getWritableParent() { return (WritableRaster) getParent(); } ! /** * @param childMinX * @param childMinY --- 95,108 ---- /** * Returns the raster's parent, cast as a {@link WritableRaster}. ! * * @return The raster's parent. */ public WritableRaster getWritableParent() { return (WritableRaster) getParent(); } ! /** * @param childMinX * @param childMinY *************** public class WritableRaster extends Rast *** 116,122 **** } /** ! * * @param parentX * @param parentY * @param w --- 116,122 ---- } /** ! * * @param parentX * @param parentY * @param w *************** public class WritableRaster extends Rast *** 130,140 **** int w, int h, int childMinX, int childMinY, int[] bandList) { // This mirrors the code from the super class ! if (parentX < minX || parentX + w > minX + width || parentY < minY || parentY + h > minY + height) throw new RasterFormatException("Child raster extends beyond parent"); ! SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); --- 130,140 ---- int w, int h, int childMinX, int childMinY, int[] bandList) { // This mirrors the code from the super class ! if (parentX < minX || parentX + w > minX + width || parentY < minY || parentY + h > minY + height) throw new RasterFormatException("Child raster extends beyond parent"); ! SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); *************** public class WritableRaster extends Rast *** 147,153 **** parentY), this); } ! public Raster createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList) --- 147,153 ---- parentY), this); } ! public Raster createChild(int parentX, int parentY, int width, int height, int childMinX, int childMinY, int[] bandList) *************** public class WritableRaster extends Rast *** 155,161 **** if (parentX < minX || parentX + width > minX + this.width || parentY < minY || parentY + height > minY + this.height) throw new RasterFormatException("Child raster extends beyond parent"); ! SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); --- 155,161 ---- if (parentX < minX || parentX + width > minX + this.width || parentY < minY || parentY + height > minY + this.height) throw new RasterFormatException("Child raster extends beyond parent"); ! SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); *************** public class WritableRaster extends Rast *** 169,175 **** public void setDataElements(int x, int y, Object inData) { ! sampleModel.setDataElements(x - sampleModelTranslateX, y - sampleModelTranslateY, inData, dataBuffer); } --- 169,175 ---- public void setDataElements(int x, int y, Object inData) { ! sampleModel.setDataElements(x - sampleModelTranslateX, y - sampleModelTranslateY, inData, dataBuffer); } *************** public class WritableRaster extends Rast *** 187,193 **** } /** ! * * @param srcRaster */ public void setRect(Raster srcRaster) --- 187,193 ---- } /** ! * * @param srcRaster */ public void setRect(Raster srcRaster) *************** public class WritableRaster extends Rast *** 196,226 **** } /** ! * * @param dx * @param dy * @param srcRaster */ ! public void setRect(int dx, int dy, Raster srcRaster) { Rectangle targetUnclipped = new Rectangle(srcRaster.getMinX() + dx, srcRaster.getMinY() + dy, srcRaster.getWidth(), srcRaster.getHeight()); ! Rectangle target = getBounds().intersection(targetUnclipped); if (target.isEmpty()) return; ! int sx = target.x - dx; int sy = target.y - dy; ! // FIXME: Do tests on rasters and use get/set data instead. ! /* The JDK documentation seems to imply this implementation. (the trucation of higher bits), but an implementation using get/setDataElements would be more efficient. None of the implementations would do anything sensible when the sample models don't match. ! But this is probably not the place to consider such optimizations.*/ --- 196,226 ---- } /** ! * * @param dx * @param dy * @param srcRaster */ ! public void setRect(int dx, int dy, Raster srcRaster) { Rectangle targetUnclipped = new Rectangle(srcRaster.getMinX() + dx, srcRaster.getMinY() + dy, srcRaster.getWidth(), srcRaster.getHeight()); ! Rectangle target = getBounds().intersection(targetUnclipped); if (target.isEmpty()) return; ! int sx = target.x - dx; int sy = target.y - dy; ! // FIXME: Do tests on rasters and use get/set data instead. ! /* The JDK documentation seems to imply this implementation. (the trucation of higher bits), but an implementation using get/setDataElements would be more efficient. None of the implementations would do anything sensible when the sample models don't match. ! But this is probably not the place to consider such optimizations.*/ *************** public class WritableRaster extends Rast *** 231,243 **** } /** ! * Sets the samples for the pixel at (x, y) in the raster to the specified ! * values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample values (null not permitted). ! * * @throws NullPointerException if iArray is null. */ public void setPixel(int x, int y, int[] iArray) --- 231,243 ---- } /** ! * Sets the samples for the pixel at (x, y) in the raster to the specified ! * values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param iArray the sample values (null not permitted). ! * * @throws NullPointerException if iArray is null. */ public void setPixel(int x, int y, int[] iArray) *************** public class WritableRaster extends Rast *** 247,259 **** } /** ! * Sets the samples for the pixel at (x, y) in the raster to the specified ! * values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param fArray the sample values (null not permitted). ! * * @throws NullPointerException if fArray is null. */ public void setPixel(int x, int y, float[] fArray) --- 247,259 ---- } /** ! * Sets the samples for the pixel at (x, y) in the raster to the specified ! * values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param fArray the sample values (null not permitted). ! * * @throws NullPointerException if fArray is null. */ public void setPixel(int x, int y, float[] fArray) *************** public class WritableRaster extends Rast *** 263,275 **** } /** ! * Sets the samples for the pixel at (x, y) in the raster to the specified ! * values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param dArray the sample values (null not permitted). ! * * @throws NullPointerException if dArray is null. */ public void setPixel(int x, int y, double[] dArray) --- 263,275 ---- } /** ! * Sets the samples for the pixel at (x, y) in the raster to the specified ! * values. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. * @param dArray the sample values (null not permitted). ! * * @throws NullPointerException if dArray is null. */ public void setPixel(int x, int y, double[] dArray) *************** public class WritableRaster extends Rast *** 279,295 **** } /** ! * Sets the sample values for the pixels in the region specified by ! * (x, y, w, h) in the raster. The array is ordered by pixels (that is, all ! * the samples for the first pixel are grouped together, followed by all the ! * samples for the second pixel, and so on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param iArray the pixel sample values (null not permitted). ! * * @throws NullPointerException if iArray is null. */ public void setPixels(int x, int y, int w, int h, int[] iArray) --- 279,295 ---- } /** ! * Sets the sample values for the pixels in the region specified by ! * (x, y, w, h) in the raster. The array is ordered by pixels (that is, all ! * the samples for the first pixel are grouped together, followed by all the ! * samples for the second pixel, and so on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param iArray the pixel sample values (null not permitted). ! * * @throws NullPointerException if iArray is null. */ public void setPixels(int x, int y, int w, int h, int[] iArray) *************** public class WritableRaster extends Rast *** 299,315 **** } /** ! * Sets the sample values for the pixels in the region specified by ! * (x, y, w, h) in the raster. The array is ordered by pixels (that is, all ! * the samples for the first pixel are grouped together, followed by all the ! * samples for the second pixel, and so on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param fArray the pixel sample values (null not permitted). ! * * @throws NullPointerException if fArray is null. */ public void setPixels(int x, int y, int w, int h, float[] fArray) --- 299,315 ---- } /** ! * Sets the sample values for the pixels in the region specified by ! * (x, y, w, h) in the raster. The array is ordered by pixels (that is, all ! * the samples for the first pixel are grouped together, followed by all the ! * samples for the second pixel, and so on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param fArray the pixel sample values (null not permitted). ! * * @throws NullPointerException if fArray is null. */ public void setPixels(int x, int y, int w, int h, float[] fArray) *************** public class WritableRaster extends Rast *** 319,335 **** } /** ! * Sets the sample values for the pixels in the region specified by ! * (x, y, w, h) in the raster. The array is ordered by pixels (that is, all ! * the samples for the first pixel are grouped together, followed by all the ! * samples for the second pixel, and so on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param dArray the pixel sample values (null not permitted). ! * * @throws NullPointerException if dArray is null. */ public void setPixels(int x, int y, int w, int h, double[] dArray) --- 319,335 ---- } /** ! * Sets the sample values for the pixels in the region specified by ! * (x, y, w, h) in the raster. The array is ordered by pixels (that is, all ! * the samples for the first pixel are grouped together, followed by all the ! * samples for the second pixel, and so on). ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. * @param dArray the pixel sample values (null not permitted). ! * * @throws NullPointerException if dArray is null. */ public void setPixels(int x, int y, int w, int h, double[] dArray) *************** public class WritableRaster extends Rast *** 339,349 **** } /** ! * Sets the sample value for a band for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. */ --- 339,349 ---- } /** ! * Sets the sample value for a band for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. */ *************** public class WritableRaster extends Rast *** 354,364 **** } /** ! * Sets the sample value for a band for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. */ --- 354,364 ---- } /** ! * Sets the sample value for a band for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. */ *************** public class WritableRaster extends Rast *** 369,379 **** } /** ! * Sets the sample value for a band for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. */ --- 369,379 ---- } /** ! * Sets the sample value for a band for the pixel at (x, y) in the raster. ! * * @param x the x-coordinate of the pixel. * @param y the y-coordinate of the pixel. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param s the sample value. */ *************** public class WritableRaster extends Rast *** 384,400 **** } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the raster. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param iArray the sample values (null not permitted). ! * * @throws NullPointerException if iArray is null. */ public void setSamples(int x, int y, int w, int h, int b, --- 384,400 ---- } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the raster. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param iArray the sample values (null not permitted). ! * * @throws NullPointerException if iArray is null. */ public void setSamples(int x, int y, int w, int h, int b, *************** public class WritableRaster extends Rast *** 405,421 **** } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the raster. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param fArray the sample values (null not permitted). ! * * @throws NullPointerException if fArray is null. */ public void setSamples(int x, int y, int w, int h, int b, --- 405,421 ---- } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the raster. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param fArray the sample values (null not permitted). ! * * @throws NullPointerException if fArray is null. */ public void setSamples(int x, int y, int w, int h, int b, *************** public class WritableRaster extends Rast *** 426,442 **** } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the raster. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param dArray the sample values (null not permitted). ! * * @throws NullPointerException if dArray is null. */ public void setSamples(int x, int y, int w, int h, int b, --- 426,442 ---- } /** ! * Sets the sample values for one band for the pixels in the region ! * specified by (x, y, w, h) in the raster. ! * * @param x the x-coordinate of the top-left pixel. * @param y the y-coordinate of the top-left pixel. * @param w the width of the region of pixels. * @param h the height of the region of pixels. ! * @param b the band (in the range 0 to * getNumBands() - 1). * @param dArray the sample values (null not permitted). ! * * @throws NullPointerException if dArray is null. */ public void setSamples(int x, int y, int w, int h, int b, diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/WritableRenderedImage.java gcc-4.6.0/libjava/classpath/java/awt/image/WritableRenderedImage.java *** gcc-4.5.2/libjava/classpath/java/awt/image/WritableRenderedImage.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/WritableRenderedImage.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WritableRenderedImage.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* WritableRenderedImage.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/renderable/ContextualRenderedImageFactory.java gcc-4.6.0/libjava/classpath/java/awt/image/renderable/ContextualRenderedImageFactory.java *** gcc-4.5.2/libjava/classpath/java/awt/image/renderable/ContextualRenderedImageFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/renderable/ContextualRenderedImageFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ContextualRenderedImageFactory.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ContextualRenderedImageFactory.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/renderable/ParameterBlock.java gcc-4.6.0/libjava/classpath/java/awt/image/renderable/ParameterBlock.java *** gcc-4.5.2/libjava/classpath/java/awt/image/renderable/ParameterBlock.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/renderable/ParameterBlock.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ParameterBlock.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ParameterBlock.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderContext.java gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderContext.java *** gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderContext.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RenderContext.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RenderContext.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderableImage.java gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderableImage.java *** gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderableImage.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderableImage.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RenderableImage.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RenderableImage.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Vector; *** 45,51 **** public interface RenderableImage { String HINTS_OBSERVED = "HINTS_OBSERVED"; ! Vector getSources(); Object getProperty(String name); String[] getPropertyNames(); --- 45,51 ---- public interface RenderableImage { String HINTS_OBSERVED = "HINTS_OBSERVED"; ! Vector getSources(); Object getProperty(String name); String[] getPropertyNames(); *************** public interface RenderableImage *** 59,62 **** RenderedImage createRendering(RenderContext context); } // interface RenderableImage - --- 59,61 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderableImageOp.java gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderableImageOp.java *** gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderableImageOp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderableImageOp.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RenderableImageOp.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RenderableImageOp.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderableImageProducer.java gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderableImageProducer.java *** gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderableImageProducer.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderableImageProducer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RenderableImageProducer.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RenderableImageProducer.java -- Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderedImageFactory.java gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderedImageFactory.java *** gcc-4.5.2/libjava/classpath/java/awt/image/renderable/RenderedImageFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/image/renderable/RenderedImageFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RenderedImageFactory.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RenderedImageFactory.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/ButtonPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/ButtonPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/ButtonPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/ButtonPeer.java Tue Jan 11 19:46:05 2011 *************** package java.awt.peer; *** 41,46 **** public interface ButtonPeer extends ComponentPeer { void setLabel (String label); - - } // interface ButtonPeer --- 41,45 ---- public interface ButtonPeer extends ComponentPeer { void setLabel (String label); + } // interface ButtonPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/CanvasPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/CanvasPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/CanvasPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/CanvasPeer.java Tue Jan 11 19:46:05 2011 *************** package java.awt.peer; *** 41,45 **** public interface CanvasPeer extends ComponentPeer { ! } // interface CanvasPeer ! --- 41,44 ---- public interface CanvasPeer extends ComponentPeer { ! } // interface CanvasPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/CheckboxMenuItemPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/CheckboxMenuItemPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/CheckboxMenuItemPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/CheckboxMenuItemPeer.java Tue Jan 11 19:46:05 2011 *************** package java.awt.peer; *** 41,46 **** public interface CheckboxMenuItemPeer extends MenuItemPeer { void setState (boolean state); - - } // interface CheckboxMenuItemPeer --- 41,45 ---- public interface CheckboxMenuItemPeer extends MenuItemPeer { void setState (boolean state); + } // interface CheckboxMenuItemPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/CheckboxPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/CheckboxPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/CheckboxPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/CheckboxPeer.java Tue Jan 11 19:46:05 2011 *************** public interface CheckboxPeer extends Co *** 49,52 **** void setState (boolean state); } // interface CheckboxPeer - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/ChoicePeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/ChoicePeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/ChoicePeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/ChoicePeer.java Tue Jan 11 19:46:05 2011 *************** public interface ChoicePeer extends Comp *** 48,54 **** void removeAll(); ! void select (int index); ! ! } // interface ChoicePeer --- 48,53 ---- void removeAll(); ! void select (int index); + } // interface ChoicePeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/ComponentPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/ComponentPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/ComponentPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/awt/peer/ComponentPeer.java Tue Jan 11 19:46:05 2011 *************** public interface ComponentPeer *** 77,83 **** * * @return a bitwise ORed set of ImageObserver flags */ ! int checkImage(Image img, int width, int height, ImageObserver ob); /** --- 77,83 ---- * * @return a bitwise ORed set of ImageObserver flags */ ! int checkImage(Image img, int width, int height, ImageObserver ob); /** *************** public interface ComponentPeer *** 187,193 **** /** * Handles the given event. This is called from ! * {@link Component#dispatchEvent(AWTEvent)} to give the peer a chance to * react to events for the component. * * @param e the event --- 187,193 ---- /** * Handles the given event. This is called from ! * {@link Component#dispatchEvent(AWTEvent)} to give the peer a chance to * react to events for the component. * * @param e the event *************** public interface ComponentPeer *** 203,209 **** /** * Returns true if the component can receive keyboard input * focus. This is called from {@link Component#isFocusTraversable()}. ! * * @specnote Part of the earlier 1.1 API, replaced by isFocusable(). */ boolean isFocusTraversable(); --- 203,209 ---- /** * Returns true if the component can receive keyboard input * focus. This is called from {@link Component#isFocusTraversable()}. ! * * @specnote Part of the earlier 1.1 API, replaced by isFocusable(). */ boolean isFocusTraversable(); *************** public interface ComponentPeer *** 247,253 **** * receives updates) */ boolean prepareImage(Image img, int width, int height, ! ImageObserver ob); void print(Graphics graphics); --- 247,253 ---- * receives updates) */ boolean prepareImage(Image img, int width, int height, ! ImageObserver ob); void print(Graphics graphics); *************** public interface ComponentPeer *** 267,273 **** * Requests that this component receives the focus. This is called from * {@link Component#requestFocus()}. * ! * @specnote Part of the earlier 1.1 API, apparently replaced by argument * form of the same method. */ void requestFocus(); --- 267,273 ---- * Requests that this component receives the focus. This is called from * {@link Component#requestFocus()}. * ! * @specnote Part of the earlier 1.1 API, apparently replaced by argument * form of the same method. */ void requestFocus(); *************** public interface ComponentPeer *** 369,375 **** */ void show(); ! /** * Get the graphics configuration of the component. The color model * of the component can be derived from the configuration. * --- 369,375 ---- */ void show(); ! /** * Get the graphics configuration of the component. The color model * of the component can be derived from the configuration. * *************** public interface ComponentPeer *** 476,485 **** * @since 1.2 */ void destroyBuffers(); ! /** * Get the bounds of this component peer. ! * * @return component peer bounds * @since 1.5 */ --- 476,485 ---- * @since 1.2 */ void destroyBuffers(); ! /** * Get the bounds of this component peer. ! * * @return component peer bounds * @since 1.5 */ *************** public interface ComponentPeer *** 487,501 **** /** * Reparent this component under another container. ! * * @param parent * @since 1.5 */ void reparent(ContainerPeer parent); ! /** * Set the bounds of this component peer. ! * * @param x the new x co-ordinate * @param y the new y co-ordinate * @param width the new width --- 487,501 ---- /** * Reparent this component under another container. ! * * @param parent * @since 1.5 */ void reparent(ContainerPeer parent); ! /** * Set the bounds of this component peer. ! * * @param x the new x co-ordinate * @param y the new y co-ordinate * @param width the new width *************** public interface ComponentPeer *** 504,513 **** * @since 1.5 */ void setBounds (int x, int y, int width, int height, int z); ! /** * Check if this component supports being reparented. ! * * @return true if this component can be reparented, * false otherwise. * @since 1.5 --- 504,513 ---- * @since 1.5 */ void setBounds (int x, int y, int width, int height, int z); ! /** * Check if this component supports being reparented. ! * * @return true if this component can be reparented, * false otherwise. * @since 1.5 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/ContainerPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/ContainerPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/ContainerPeer.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/ContainerPeer.java Tue Jan 11 19:46:05 2011 *************** public interface ContainerPeer extends C *** 54,63 **** void endLayout(); boolean isPaintPending(); ! /** * Check if this container peer can be restacked. ! * * @return true if this container peer supports being restacked, false otherwise * @since 1.5 */ --- 54,63 ---- void endLayout(); boolean isPaintPending(); ! /** * Check if this container peer can be restacked. ! * * @return true if this container peer supports being restacked, false otherwise * @since 1.5 */ *************** public interface ContainerPeer extends C *** 65,71 **** /** * Cancel a pending paint event on a region of this container. ! * * @param x the x co-ordinate of the region * @param y the y co-ordinate of the region * @param width the width of the region --- 65,71 ---- /** * Cancel a pending paint event on a region of this container. ! * * @param x the x co-ordinate of the region * @param y the y co-ordinate of the region * @param width the width of the region *************** public interface ContainerPeer extends C *** 73,84 **** * @since 1.5 */ void cancelPendingPaint(int x, int y, int width, int height); ! /** * Restack the component peers in this container peer. ! * * @since 1.5 */ void restack(); ! } // interface ContainerPeer ! --- 73,83 ---- * @since 1.5 */ void cancelPendingPaint(int x, int y, int width, int height); ! /** * Restack the component peers in this container peer. ! * * @since 1.5 */ void restack(); ! } // interface ContainerPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/DesktopPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/DesktopPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/DesktopPeer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/peer/DesktopPeer.java Tue Jan 11 19:46:05 2011 *************** public interface DesktopPeer *** 55,64 **** public boolean isSupported(Action action); public void mail(URI mailtoURL) throws IOException; ! public void mail() throws IOException; public void open(File file) throws IOException; ! public void print(File file) throws IOException; } --- 55,64 ---- public boolean isSupported(Action action); public void mail(URI mailtoURL) throws IOException; ! public void mail() throws IOException; public void open(File file) throws IOException; ! public void print(File file) throws IOException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/DialogPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/DialogPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/DialogPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/DialogPeer.java Tue Jan 11 19:46:05 2011 *************** public interface DialogPeer extends Wind *** 44,48 **** void setTitle (String title); ! } // interface DialogPeer ! --- 44,47 ---- void setTitle (String title); ! } // interface DialogPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/FileDialogPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/FileDialogPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/FileDialogPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/FileDialogPeer.java Tue Jan 11 19:46:05 2011 *************** public interface FileDialogPeer extends *** 48,52 **** void setFilenameFilter (FilenameFilter ff); ! } // interface FileDialogPeer ! --- 48,51 ---- void setFilenameFilter (FilenameFilter ff); ! } // interface FileDialogPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/FontPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/FontPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/FontPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/FontPeer.java Tue Jan 11 19:46:05 2011 *************** public interface FontPeer *** 42,45 **** { } // interface FontPeer - --- 42,44 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/FramePeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/FramePeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/FramePeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/awt/peer/FramePeer.java Tue Jan 11 19:46:05 2011 *************** public interface FramePeer extends Windo *** 51,69 **** int getState(); void setState(int state); void setMaximizedBounds(Rectangle r); ! /** * Check if this frame peer supports being restacked. ! * * @return true if this frame peer can be restacked, * false otherwise * @since 1.5 */ boolean isRestackSupported(); ! /** * Sets the bounds of this frame peer. ! * * @param x the new x co-ordinate * @param y the new y co-ordinate * @param width the new width --- 51,69 ---- int getState(); void setState(int state); void setMaximizedBounds(Rectangle r); ! /** * Check if this frame peer supports being restacked. ! * * @return true if this frame peer can be restacked, * false otherwise * @since 1.5 */ boolean isRestackSupported(); ! /** * Sets the bounds of this frame peer. ! * * @param x the new x co-ordinate * @param y the new y co-ordinate * @param width the new width *************** public interface FramePeer extends Windo *** 75,78 **** Rectangle getBoundsPrivate(); } // interface FramePeer - --- 75,77 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/LabelPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/LabelPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/LabelPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/LabelPeer.java Tue Jan 11 19:46:05 2011 *************** public interface LabelPeer extends Compo *** 42,46 **** { void setAlignment(int alignment); void setText(String text); ! } // interface LabelPeer ! --- 42,45 ---- { void setAlignment(int alignment); void setText(String text); ! } // interface LabelPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/LightweightPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/LightweightPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/LightweightPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/LightweightPeer.java Tue Jan 11 19:46:05 2011 *************** public interface LightweightPeer extends *** 42,45 **** { } // interface LightweightPeer - --- 42,44 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/ListPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/ListPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/ListPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/ListPeer.java Tue Jan 11 19:46:05 2011 *************** public interface ListPeer extends Compon *** 57,61 **** void setMultipleSelections(boolean multi); Dimension getPreferredSize(int s); Dimension getMinimumSize(int s); ! } // interface ListPeer ! --- 57,60 ---- void setMultipleSelections(boolean multi); Dimension getPreferredSize(int s); Dimension getMinimumSize(int s); ! } // interface ListPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/MenuBarPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/MenuBarPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/MenuBarPeer.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/MenuBarPeer.java Tue Jan 11 19:46:05 2011 *************** public interface MenuBarPeer extends Men *** 45,49 **** void addMenu(Menu m); void addHelpMenu(Menu menu); void delMenu(int index); ! } // interface MenuBarPeer ! --- 45,48 ---- void addMenu(Menu m); void addHelpMenu(Menu menu); void delMenu(int index); ! } // interface MenuBarPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/MenuComponentPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/MenuComponentPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/MenuComponentPeer.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/MenuComponentPeer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MenuComponentPeer.java -- Copyright (C) 1999 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MenuComponentPeer.java -- Copyright (C) 1999 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.awt.Font; *** 43,55 **** public interface MenuComponentPeer { void dispose(); ! /** * Set the font on this menu component peer. ! * * @param font the new font * @since 1.5 */ void setFont (Font font); } // interface MenuComponentPeer - --- 43,54 ---- public interface MenuComponentPeer { void dispose(); ! /** * Set the font on this menu component peer. ! * * @param font the new font * @since 1.5 */ void setFont (Font font); } // interface MenuComponentPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/MenuItemPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/MenuItemPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/MenuItemPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/MenuItemPeer.java Tue Jan 11 19:46:05 2011 *************** public interface MenuItemPeer extends Me *** 44,48 **** void enable(); void setEnabled(boolean enabled); void setLabel(String text); ! } // interface MenuItemPeer ! --- 44,47 ---- void enable(); void setEnabled(boolean enabled); void setLabel(String text); ! } // interface MenuItemPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/MenuPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/MenuPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/MenuPeer.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/MenuPeer.java Tue Jan 11 19:46:05 2011 *************** public interface MenuPeer extends MenuIt *** 46,49 **** void addSeparator (); void delItem (int index); } - --- 46,48 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/MouseInfoPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/MouseInfoPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/MouseInfoPeer.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/awt/peer/MouseInfoPeer.java Tue Jan 11 19:46:05 2011 *************** public interface MouseInfoPeer *** 51,61 **** /** * Get the mouse pointer coordinates and store them in p (obviously non-null) * returns the index of the current screen device of the mouse. ! */ public int fillPointWithCoords(Point p); /** * Returns whether a given Window is under the mouse. ! */ public boolean isWindowUnderMouse(Window w); ! } --- 51,61 ---- /** * Get the mouse pointer coordinates and store them in p (obviously non-null) * returns the index of the current screen device of the mouse. ! */ public int fillPointWithCoords(Point p); /** * Returns whether a given Window is under the mouse. ! */ public boolean isWindowUnderMouse(Window w); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/PanelPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/PanelPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/PanelPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/PanelPeer.java Tue Jan 11 19:46:05 2011 *************** public interface PanelPeer extends Conta *** 42,45 **** { } // interface PanelPeer - --- 42,44 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/PopupMenuPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/PopupMenuPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/PopupMenuPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/PopupMenuPeer.java Tue Jan 11 19:46:05 2011 *************** public interface PopupMenuPeer extends M *** 50,53 **** void show (Event e); } // interface PopupMenuPeer - --- 50,52 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/RobotPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/RobotPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/RobotPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/awt/peer/RobotPeer.java Tue Jan 11 19:46:05 2011 *************** public interface RobotPeer *** 53,56 **** void dispose(); } // interface RobotPeer - --- 53,55 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/ScrollPanePeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/ScrollPanePeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/ScrollPanePeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/ScrollPanePeer.java Tue Jan 11 19:46:05 2011 *************** public interface ScrollPanePeer extends *** 49,52 **** void setUnitIncrement(Adjustable item, int inc); void setValue(Adjustable item, int value); } // interface ScollPanePeer - --- 49,51 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/ScrollbarPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/ScrollbarPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/ScrollbarPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/ScrollbarPeer.java Tue Jan 11 19:46:05 2011 *************** public interface ScrollbarPeer extends C *** 43,47 **** void setLineIncrement(int inc); void setPageIncrement(int inc); void setValues(int value, int visible, int min, int max); ! } // interface ScrollbarPeer ! --- 43,46 ---- void setLineIncrement(int inc); void setPageIncrement(int inc); void setValues(int value, int visible, int min, int max); ! } // interface ScrollbarPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/TextComponentPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/TextComponentPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/TextComponentPeer.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/TextComponentPeer.java Tue Jan 11 19:46:05 2011 *************** public interface TextComponentPeer exten *** 54,66 **** int getIndexAtPoint(int x, int y); Rectangle getCharacterBounds(int pos); long filterEvents(long filter); ! /** * Retrieve this text component peer's input method requests. ! * * @return the input method requests made by this text component peer * @since 1.5 */ InputMethodRequests getInputMethodRequests(); ! } // interface TextComponentPeer ! --- 54,65 ---- int getIndexAtPoint(int x, int y); Rectangle getCharacterBounds(int pos); long filterEvents(long filter); ! /** * Retrieve this text component peer's input method requests. ! * * @return the input method requests made by this text component peer * @since 1.5 */ InputMethodRequests getInputMethodRequests(); ! } // interface TextComponentPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/TextFieldPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/TextFieldPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/TextFieldPeer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/peer/TextFieldPeer.java Tue Jan 11 19:46:05 2011 *************** public interface TextFieldPeer extends T *** 47,52 **** Dimension getMinimumSize(int len); Dimension getPreferredSize(int len); void setEchoChar(char echo_char); ! void setEchoCharacter(char echo_char); ! } // interface TextFieldPeer ! --- 47,51 ---- Dimension getMinimumSize(int len); Dimension getPreferredSize(int len); void setEchoChar(char echo_char); ! void setEchoCharacter(char echo_char); ! } // interface TextFieldPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/peer/WindowPeer.java gcc-4.6.0/libjava/classpath/java/awt/peer/WindowPeer.java *** gcc-4.5.2/libjava/classpath/java/awt/peer/WindowPeer.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/awt/peer/WindowPeer.java Tue Jan 11 19:46:05 2011 *************** public interface WindowPeer extends Cont *** 44,60 **** { void toBack(); void toFront(); ! /** * Update the always-on-top status of the Window. * * @since 1.5 */ void updateAlwaysOnTop(); ! /** * Request that this window peer be given the window focus. ! * * @return true if the window received focus, false otherwise * @since 1.5 */ --- 44,60 ---- { void toBack(); void toFront(); ! /** * Update the always-on-top status of the Window. * * @since 1.5 */ void updateAlwaysOnTop(); ! /** * Request that this window peer be given the window focus. ! * * @return true if the window received focus, false otherwise * @since 1.5 */ *************** public interface WindowPeer extends Cont *** 66,70 **** void updateMinimumSize(); void updateIconImages(); ! } // interface WindowPeer ! --- 66,69 ---- void updateMinimumSize(); void updateIconImages(); ! } // interface WindowPeer diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/print/Book.java gcc-4.6.0/libjava/classpath/java/awt/print/Book.java *** gcc-4.5.2/libjava/classpath/java/awt/print/Book.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/print/Book.java Tue Jan 11 19:46:05 2011 *************** public class Book implements Pageable *** 135,142 **** { for (int i = 0; i < num_pages; i++) { ! printables.addElement(printable); ! page_formats.addElement(page_format); } } --- 135,142 ---- { for (int i = 0; i < num_pages; i++) { ! printables.addElement(printable); ! page_formats.addElement(page_format); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/print/PageFormat.java gcc-4.6.0/libjava/classpath/java/awt/print/PageFormat.java *** gcc-4.5.2/libjava/classpath/java/awt/print/PageFormat.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/awt/print/PageFormat.java Tue Jan 11 19:46:05 2011 *************** package java.awt.print; *** 41,47 **** /** * This class contains information about the desired page format to use for * printing a particular set of pages. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public class PageFormat --- 41,47 ---- /** * This class contains information about the desired page format to use for * printing a particular set of pages. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public class PageFormat *************** public class PageFormat *** 61,69 **** /** * A constant for a reversed landscaped page orientation. This is the ! * orientation used by Macintosh's for landscape. The origin is in the ! * upper right hand corner instead of the upper left. The X and Y axes ! * are reversed. Used by getOrientation and * setOrientation. */ public static final int REVERSE_LANDSCAPE = 2; --- 61,69 ---- /** * A constant for a reversed landscaped page orientation. This is the ! * orientation used by Macintosh's for landscape. The origin is in the ! * upper right hand corner instead of the upper left. The X and Y axes ! * are reversed. Used by getOrientation and * setOrientation. */ public static final int REVERSE_LANDSCAPE = 2; *************** public class PageFormat *** 87,93 **** /** * This method returns the width of the page, in 1/72nd's of an inch. The * "width" measured depends on orientation. ! * * @return The width of the page. */ public double getWidth() --- 87,93 ---- /** * This method returns the width of the page, in 1/72nd's of an inch. The * "width" measured depends on orientation. ! * * @return The width of the page. */ public double getWidth() *************** public class PageFormat *** 98,104 **** /** * This method returns the height of the page, in 1/72nd's of an inch. The * "height" measured depends on the orientation. ! * * @return The height of the page. */ public double getHeight() --- 98,104 ---- /** * This method returns the height of the page, in 1/72nd's of an inch. The * "height" measured depends on the orientation. ! * * @return The height of the page. */ public double getHeight() *************** public class PageFormat *** 109,115 **** /** * This method returns the X coordinate value of the upper leftmost drawable * area of the paper. ! * * @return The upper leftmost imageable X coordinate. */ public double getImageableX() --- 109,115 ---- /** * This method returns the X coordinate value of the upper leftmost drawable * area of the paper. ! * * @return The upper leftmost imageable X coordinate. */ public double getImageableX() *************** public class PageFormat *** 120,126 **** /** * This method returns the Y coordinate value of the upper leftmost drawable * area of the paper. ! * * @return The upper leftmost imageable Y coordinate. */ public double getImageableY() --- 120,126 ---- /** * This method returns the Y coordinate value of the upper leftmost drawable * area of the paper. ! * * @return The upper leftmost imageable Y coordinate. */ public double getImageableY() *************** public class PageFormat *** 131,137 **** /** * This method returns the imageable width of the paper, in 1/72nd's of an * inch. ! * * @return The imageable width of the paper. */ public double getImageableWidth() --- 131,137 ---- /** * This method returns the imageable width of the paper, in 1/72nd's of an * inch. ! * * @return The imageable width of the paper. */ public double getImageableWidth() *************** public class PageFormat *** 142,148 **** /** * This method returns the imageable height of the paper, in 1/72nd's of an * inch. ! * * @return The imageable height of the paper. */ public double getImageableHeight() --- 142,148 ---- /** * This method returns the imageable height of the paper, in 1/72nd's of an * inch. ! * * @return The imageable height of the paper. */ public double getImageableHeight() *************** public class PageFormat *** 153,159 **** /** * Returns a copy of the paper object being used for this page * format. ! * * @return A copy of the Paper object for this format. */ public Paper getPaper() --- 153,159 ---- /** * Returns a copy of the paper object being used for this page * format. ! * * @return A copy of the Paper object for this format. */ public Paper getPaper() *************** public class PageFormat *** 163,169 **** /** * Sets the Paper object to be used by this page format. ! * * @param paper The new Paper object for this page format. */ public void setPaper(Paper paper) --- 163,169 ---- /** * Sets the Paper object to be used by this page format. ! * * @param paper The new Paper object for this page format. */ public void setPaper(Paper paper) *************** public class PageFormat *** 174,180 **** /** * This method returns the current page orientation. The value returned will * be one of the page orientation constants from this class. ! * * @return The current page orientation. */ public int getOrientation() --- 174,180 ---- /** * This method returns the current page orientation. The value returned will * be one of the page orientation constants from this class. ! * * @return The current page orientation. */ public int getOrientation() *************** public class PageFormat *** 184,194 **** /** * This method sets the page orientation for this format to the specified ! * value. It must be one of the page orientation constants from this class * or an exception will be thrown. ! * * @param orientation The new page orientation. ! * @exception IllegalArgumentException If the specified page orientation * value is not one of the constants from this class. */ public void setOrientation(int orientation) throws IllegalArgumentException --- 184,194 ---- /** * This method sets the page orientation for this format to the specified ! * value. It must be one of the page orientation constants from this class * or an exception will be thrown. ! * * @param orientation The new page orientation. ! * @exception IllegalArgumentException If the specified page orientation * value is not one of the constants from this class. */ public void setOrientation(int orientation) throws IllegalArgumentException *************** public class PageFormat *** 203,211 **** /** * This method returns a matrix used for transforming user space coordinates ! * to page coordinates. The value returned will be six doubles as described * in java.awt.geom.AffineTransform. ! * * @return The transformation matrix for this page format. */ public double[] getMatrix() --- 203,211 ---- /** * This method returns a matrix used for transforming user space coordinates ! * to page coordinates. The value returned will be six doubles as described * in java.awt.geom.AffineTransform. ! * * @return The transformation matrix for this page format. */ public double[] getMatrix() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/print/Pageable.java gcc-4.6.0/libjava/classpath/java/awt/print/Pageable.java *** gcc-4.5.2/libjava/classpath/java/awt/print/Pageable.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/awt/print/Pageable.java Tue Jan 11 19:46:05 2011 *************** package java.awt.print; *** 40,46 **** /** * This interface represents pages that are to be printed. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface Pageable --- 40,46 ---- /** * This interface represents pages that are to be printed. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface Pageable *************** public interface Pageable *** 53,61 **** /** * This method returns the number of pages this object contains, or ! * UNKNOWN_NUMBER_OF_PAGES if it cannot determine the number * of pages to be printed. ! * * @return The number of pages to be printed, or * UNKNOWN_NUMBER_OF_PAGES if this is unknown. */ --- 53,61 ---- /** * This method returns the number of pages this object contains, or ! * UNKNOWN_NUMBER_OF_PAGES if it cannot determine the number * of pages to be printed. ! * * @return The number of pages to be printed, or * UNKNOWN_NUMBER_OF_PAGES if this is unknown. */ *************** public interface Pageable *** 65,75 **** * This method returns the PageFormat instance for the * specified page. Page numbers start at zero. An exception is thrown if the * requested page does not exist. ! * * @param pageIndex The index of the page to return the * PageFormat for. * @return The PageFormat for the requested page. ! * @exception IndexOutOfBoundsException If the requested page number does * not exist. */ PageFormat getPageFormat(int pageIndex) throws IndexOutOfBoundsException; --- 65,75 ---- * This method returns the PageFormat instance for the * specified page. Page numbers start at zero. An exception is thrown if the * requested page does not exist. ! * * @param pageIndex The index of the page to return the * PageFormat for. * @return The PageFormat for the requested page. ! * @exception IndexOutOfBoundsException If the requested page number does * not exist. */ PageFormat getPageFormat(int pageIndex) throws IndexOutOfBoundsException; *************** public interface Pageable *** 78,88 **** * This method returns the Printable instance for the specified * page. Page numbers start at zero. An exception is thrown if the requested * page does not exist. ! * ! * @param pageIndex The index of the page to return the * Printable for. * @return The Printable for the requested page. ! * @exception IndexOutOfBoundsException If the requested page number does * not exist. */ Printable getPrintable(int pageIndex) throws IndexOutOfBoundsException; --- 78,88 ---- * This method returns the Printable instance for the specified * page. Page numbers start at zero. An exception is thrown if the requested * page does not exist. ! * ! * @param pageIndex The index of the page to return the * Printable for. * @return The Printable for the requested page. ! * @exception IndexOutOfBoundsException If the requested page number does * not exist. */ Printable getPrintable(int pageIndex) throws IndexOutOfBoundsException; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/print/Paper.java gcc-4.6.0/libjava/classpath/java/awt/print/Paper.java *** gcc-4.5.2/libjava/classpath/java/awt/print/Paper.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/awt/print/Paper.java Tue Jan 11 19:46:05 2011 *************** package java.awt.print; *** 40,46 **** /** * This class describes a particular type of paper. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public class Paper --- 40,46 ---- /** * This class describes a particular type of paper. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public class Paper *************** public class Paper *** 79,85 **** /** * This method returns the height of the paper in 1/72nds of an inch. ! * * @return The height of the paper in 1/72nds of an inch. */ public double getHeight() --- 79,85 ---- /** * This method returns the height of the paper in 1/72nds of an inch. ! * * @return The height of the paper in 1/72nds of an inch. */ public double getHeight() *************** public class Paper *** 89,95 **** /** * Returns the width of the paper in 1/72nds of an inch. ! * * @return The width of the paper in 1/72nds of an inch. */ public double getWidth() --- 89,95 ---- /** * Returns the width of the paper in 1/72nds of an inch. ! * * @return The width of the paper in 1/72nds of an inch. */ public double getWidth() *************** public class Paper *** 100,106 **** /** * This method returns the X coordinate of the upper left hand corner of the * imageable area of the paper. ! * * @return The X coordinate of the upper left hand corner of the imageable * area of the paper. */ --- 100,106 ---- /** * This method returns the X coordinate of the upper left hand corner of the * imageable area of the paper. ! * * @return The X coordinate of the upper left hand corner of the imageable * area of the paper. */ *************** public class Paper *** 112,118 **** /** * This method returns the Y coordinate of the upper left hand corner of the * imageable area of the paper. ! * * @return The Y coordinate of the upper left hand corner of the imageable * area of the paper. */ --- 112,118 ---- /** * This method returns the Y coordinate of the upper left hand corner of the * imageable area of the paper. ! * * @return The Y coordinate of the upper left hand corner of the imageable * area of the paper. */ *************** public class Paper *** 123,129 **** /** * Returns the width of the imageable area of the paper. ! * * @return The width of the imageable area of the paper. */ public double getImageableWidth() --- 123,129 ---- /** * Returns the width of the imageable area of the paper. ! * * @return The width of the imageable area of the paper. */ public double getImageableWidth() *************** public class Paper *** 133,139 **** /** * Returns the height of the imageable area of the paper. ! * * @return The height of the imageable area of the paper. */ public double getImageableHeight() --- 133,139 ---- /** * Returns the height of the imageable area of the paper. ! * * @return The height of the imageable area of the paper. */ public double getImageableHeight() *************** public class Paper *** 144,150 **** /** * This method sets the size of the paper to the specified width and height, * which are specified in 1/72nds of an inch. ! * * @param width The width of the paper in 1/72nds of an inch. * @param height The height of the paper in 1/72nds of an inch. */ --- 144,150 ---- /** * This method sets the size of the paper to the specified width and height, * which are specified in 1/72nds of an inch. ! * * @param width The width of the paper in 1/72nds of an inch. * @param height The height of the paper in 1/72nds of an inch. */ *************** public class Paper *** 156,164 **** /** * This method sets the imageable area of the paper by specifying the ! * coordinates of the upper left hand corner of that area, and its length * and height. All values are in 1/72nds of an inch. ! * * @param imageableX The X coordinate of the upper left hand corner of the * imageable area, in 1/72nds of an inch. * @param imageableY The Y coordinate of the upper left hand corner of the --- 156,164 ---- /** * This method sets the imageable area of the paper by specifying the ! * coordinates of the upper left hand corner of that area, and its length * and height. All values are in 1/72nds of an inch. ! * * @param imageableX The X coordinate of the upper left hand corner of the * imageable area, in 1/72nds of an inch. * @param imageableY The Y coordinate of the upper left hand corner of the *************** public class Paper *** 179,185 **** /** * This method creates a copy of this object. ! * * @return A copy of this object. */ public Object clone() --- 179,185 ---- /** * This method creates a copy of this object. ! * * @return A copy of this object. */ public Object clone() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/print/PrinterGraphics.java gcc-4.6.0/libjava/classpath/java/awt/print/PrinterGraphics.java *** gcc-4.5.2/libjava/classpath/java/awt/print/PrinterGraphics.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/awt/print/PrinterGraphics.java Tue Jan 11 19:46:05 2011 *************** package java.awt.print; *** 42,48 **** * This interface is implemented by the Graphics instance that is * used for rendering pages. It provides a hook to return the object that is * controlling the print job. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface PrinterGraphics --- 42,48 ---- * This interface is implemented by the Graphics instance that is * used for rendering pages. It provides a hook to return the object that is * controlling the print job. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface PrinterGraphics *************** public interface PrinterGraphics *** 50,56 **** /** * This method returns the instance of PrinterJob that is * controlling this print job. ! * * @return The PrinterJob that is controlling this print job. */ PrinterJob getPrinterJob(); --- 50,56 ---- /** * This method returns the instance of PrinterJob that is * controlling this print job. ! * * @return The PrinterJob that is controlling this print job. */ PrinterJob getPrinterJob(); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/print/PrinterIOException.java gcc-4.6.0/libjava/classpath/java/awt/print/PrinterIOException.java *** gcc-4.5.2/libjava/classpath/java/awt/print/PrinterIOException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/awt/print/PrinterIOException.java Tue Jan 11 19:46:05 2011 *************** public class PrinterIOException extends *** 71,77 **** { super(mException == null ? null : mException.toString()); initCause(mException); ! this.mException = mException; } /** --- 71,77 ---- { super(mException == null ? null : mException.toString()); initCause(mException); ! this.mException = mException; } /** *************** public class PrinterIOException extends *** 95,98 **** return mException; } } // class PrinterIOException - --- 95,97 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/awt/print/PrinterJob.java gcc-4.6.0/libjava/classpath/java/awt/print/PrinterJob.java *** gcc-4.5.2/libjava/classpath/java/awt/print/PrinterJob.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/awt/print/PrinterJob.java Tue Jan 11 19:46:05 2011 *************** public abstract class PrinterJob *** 68,74 **** } /** ! * Initializes a new instance of PrinterJob. */ public PrinterJob() { --- 68,74 ---- } /** ! * Initializes a new instance of PrinterJob. */ public PrinterJob() { *************** public abstract class PrinterJob *** 163,169 **** // FIXME: Implement this for real. return pageDialog((PageFormat) null); } ! /** * Prints the pages. */ --- 163,169 ---- // FIXME: Implement this for real. return pageDialog((PageFormat) null); } ! /** * Prints the pages. */ *************** public abstract class PrinterJob *** 239,245 **** /** * Find and return 2D image print services. ! * * This is the same as calling PrintServiceLookup.lookupPrintServices() * with Pageable service-specified DocFlavor. * @return Array of PrintService objects, could be empty. --- 239,245 ---- /** * Find and return 2D image print services. ! * * This is the same as calling PrintServiceLookup.lookupPrintServices() * with Pageable service-specified DocFlavor. * @return Array of PrintService objects, could be empty. *************** public abstract class PrinterJob *** 250,262 **** return PrintServiceLookup.lookupPrintServices ( new DocFlavor("application/x-java-jvm-local-objectref", ! "java.awt.print.Pageable"), null); } /** * Find and return 2D image stream print services. ! * * This is the same as calling * StreamPrintServiceFactory.lookupStreamPrintServices() * with Pageable service-specified DocFlavor. --- 250,262 ---- return PrintServiceLookup.lookupPrintServices ( new DocFlavor("application/x-java-jvm-local-objectref", ! "java.awt.print.Pageable"), null); } /** * Find and return 2D image stream print services. ! * * This is the same as calling * StreamPrintServiceFactory.lookupStreamPrintServices() * with Pageable service-specified DocFlavor. *************** public abstract class PrinterJob *** 274,280 **** /** * Return the printer for this job. If print services aren't supported by * the subclass, returns null. ! * * @return The associated PrintService. * @since 1.4 */ --- 274,280 ---- /** * Return the printer for this job. If print services aren't supported by * the subclass, returns null. ! * * @return The associated PrintService. * @since 1.4 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/AppletInitializer.java gcc-4.6.0/libjava/classpath/java/beans/AppletInitializer.java *** gcc-4.5.2/libjava/classpath/java/beans/AppletInitializer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/AppletInitializer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/BeanDescriptor.java gcc-4.6.0/libjava/classpath/java/beans/BeanDescriptor.java *** gcc-4.5.2/libjava/classpath/java/beans/BeanDescriptor.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/BeanDescriptor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 48,89 **** **/ public class BeanDescriptor extends FeatureDescriptor { ! Class beanClass; ! Class customizerClass; ! /** Create a new BeanDescriptor with the given beanClass and ! ** no customizer class. ! ** @param beanClass the class of the Bean. ! **/ ! public BeanDescriptor(Class beanClass) { ! this(beanClass,null); ! } ! /** Create a new BeanDescriptor with the given bean class and ! ** customizer class. ! ** @param beanClass the class of the Bean. ! ** @param customizerClass the class of the Bean's Customizer. ! **/ ! public BeanDescriptor(Class beanClass, Class customizerClass) { ! this.beanClass = beanClass; ! this.customizerClass = customizerClass; ! // Set the FeatureDescriptor programmatic name. ! String name = beanClass.getName(); ! int lastInd = name.lastIndexOf('.'); ! if (lastInd != -1) ! name = name.substring(lastInd + 1); ! setName(name); ! } ! /** Get the Bean's class. **/ ! public Class getBeanClass() { ! return beanClass; ! } ! /** Get the Bean's customizer's class. **/ ! public Class getCustomizerClass() { ! return customizerClass; ! } } --- 48,89 ---- **/ public class BeanDescriptor extends FeatureDescriptor { ! Class beanClass; ! Class customizerClass; ! /** Create a new BeanDescriptor with the given beanClass and ! ** no customizer class. ! ** @param beanClass the class of the Bean. ! **/ ! public BeanDescriptor(Class beanClass) { ! this(beanClass,null); ! } ! /** Create a new BeanDescriptor with the given bean class and ! ** customizer class. ! ** @param beanClass the class of the Bean. ! ** @param customizerClass the class of the Bean's Customizer. ! **/ ! public BeanDescriptor(Class beanClass, Class customizerClass) { ! this.beanClass = beanClass; ! this.customizerClass = customizerClass; ! // Set the FeatureDescriptor programmatic name. ! String name = beanClass.getName(); ! int lastInd = name.lastIndexOf('.'); ! if (lastInd != -1) ! name = name.substring(lastInd + 1); ! setName(name); ! } ! /** Get the Bean's class. **/ ! public Class getBeanClass() { ! return beanClass; ! } ! /** Get the Bean's customizer's class. **/ ! public Class getCustomizerClass() { ! return customizerClass; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/BeanInfo.java gcc-4.6.0/libjava/classpath/java/beans/BeanInfo.java *** gcc-4.5.2/libjava/classpath/java/beans/BeanInfo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/BeanInfo.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 73,181 **** **/ public interface BeanInfo { ! /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/ ! int ICON_COLOR_16x16 = 1; ! /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/ ! int ICON_COLOR_32x32 = 2; ! /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/ ! int ICON_MONO_16x16 = 3; ! /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/ ! int ICON_MONO_32x32 = 4; ! /** Get the general description of this Bean type. ! ** @return the BeanDescriptor for the Bean, or null if ! ** the BeanDescriptor should be obtained by ! ** Introspection. ! **/ ! BeanDescriptor getBeanDescriptor(); ! /** Get the events this Bean type fires. ! ** @return the EventDescriptors representing events this ! ** Bean fires. Returns null if the ! ** events are to be acquired by Introspection. ! **/ ! EventSetDescriptor[] getEventSetDescriptors(); ! /** Get the "default" event, basically the one a RAD tool ! ** user is most likely to select. ! ** @return the index into the getEventSetDescriptors() ! ** that the user is most likely to use. Returns ! ** -1 if there is no default event. ! **/ ! int getDefaultEventIndex(); ! /** Get the properties (get/set method pairs) this Bean ! ** type supports. ! ** @return the PropertyDescriptors representing the ! ** properties this Bean type supports. ! ** Returns null if the properties ! ** are to be obtained by Introspection. ! **/ ! PropertyDescriptor[] getPropertyDescriptors(); ! /** Get the "default" property, basically the one a RAD ! ** tool user is most likely to select. ! ** @return the index into the getPropertyDescriptors() ! ** that the user is most likely to use. Returns ! ** -1 if there is no default event. ! **/ ! int getDefaultPropertyIndex(); ! /** Get the methods this Bean type supports. ! ** @return the MethodDescriptors representing the ! ** methods this Bean type supports. Returns ! ** null if the methods are to be ! ** obtained by Introspection. ! **/ ! MethodDescriptor[] getMethodDescriptors(); ! /** Get additional BeanInfos representing this Bean. ! ** In this version of JavaBeans, this method is used so ! ** that space and time can be saved by reading a BeanInfo ! ** for each class in the hierarchy (super, super(super), ! ** and so on).

    ! ** ! ** The order of precedence when two pieces of BeanInfo ! ** conflict (such as two PropertyDescriptors that have ! ** the same name), in order from highest precedence to ! ** lowest, is: ! **

      ! **
    1. This BeanInfo object.
    2. ! **
    3. getAdditionalBeanInfo()[getAdditionalBeanInfo().length]
    4. ! **
    5. ...
    6. ! **
    7. getAdditionalBeanInfo()[1]
    8. ! **
    9. getAdditionalBeanInfo()[0]
    10. ! **

    ! ** ! ** Spec Note: It is possible that ! ** returning null from this method could ! ** stop Introspection in its tracks, but it is unclear ! ** from the spec whether this is the case. ! ** ! ** @return additional BeanInfos representing this Bean. ! ** null may be returned (see Spec ! ** Note, above). ! **/ ! BeanInfo[] getAdditionalBeanInfo(); ! /** Get a visual icon for this Bean. ! ** A Bean does not have to support icons, and if it does ! ** support icons, it does not have to support every single ! ** type. Sun recommends that if you only support one ! ** type, you support 16x16 color. Sun also notes that you ! ** should try to use a type (like GIF) that allows for ! ** transparent pixels, so that the background of the RAD ! ** tool can show through.

    ! ** ! ** Spec Note: If you do not support the ! ** type of icon that is being asked for, but you do ! ** support another type, it is unclear whether you should ! ** return the other type or not. I would presume not. ! ** ! ** @param iconType the type of icon to get (see the ! ** ICON_* constants in this class). ! ** @return the icon, or null if that type of icon is ! ** unsupported by this Bean. ! **/ ! java.awt.Image getIcon(int iconType); } --- 73,181 ---- **/ public interface BeanInfo { ! /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/ ! int ICON_COLOR_16x16 = 1; ! /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/ ! int ICON_COLOR_32x32 = 2; ! /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/ ! int ICON_MONO_16x16 = 3; ! /** Use this as a parameter for the getIcon() command to retrieve a certain type of icon. **/ ! int ICON_MONO_32x32 = 4; ! /** Get the general description of this Bean type. ! ** @return the BeanDescriptor for the Bean, or null if ! ** the BeanDescriptor should be obtained by ! ** Introspection. ! **/ ! BeanDescriptor getBeanDescriptor(); ! /** Get the events this Bean type fires. ! ** @return the EventDescriptors representing events this ! ** Bean fires. Returns null if the ! ** events are to be acquired by Introspection. ! **/ ! EventSetDescriptor[] getEventSetDescriptors(); ! /** Get the "default" event, basically the one a RAD tool ! ** user is most likely to select. ! ** @return the index into the getEventSetDescriptors() ! ** that the user is most likely to use. Returns ! ** -1 if there is no default event. ! **/ ! int getDefaultEventIndex(); ! /** Get the properties (get/set method pairs) this Bean ! ** type supports. ! ** @return the PropertyDescriptors representing the ! ** properties this Bean type supports. ! ** Returns null if the properties ! ** are to be obtained by Introspection. ! **/ ! PropertyDescriptor[] getPropertyDescriptors(); ! /** Get the "default" property, basically the one a RAD ! ** tool user is most likely to select. ! ** @return the index into the getPropertyDescriptors() ! ** that the user is most likely to use. Returns ! ** -1 if there is no default event. ! **/ ! int getDefaultPropertyIndex(); ! /** Get the methods this Bean type supports. ! ** @return the MethodDescriptors representing the ! ** methods this Bean type supports. Returns ! ** null if the methods are to be ! ** obtained by Introspection. ! **/ ! MethodDescriptor[] getMethodDescriptors(); ! /** Get additional BeanInfos representing this Bean. ! ** In this version of JavaBeans, this method is used so ! ** that space and time can be saved by reading a BeanInfo ! ** for each class in the hierarchy (super, super(super), ! ** and so on).

    ! ** ! ** The order of precedence when two pieces of BeanInfo ! ** conflict (such as two PropertyDescriptors that have ! ** the same name), in order from highest precedence to ! ** lowest, is: ! **

      ! **
    1. This BeanInfo object.
    2. ! **
    3. getAdditionalBeanInfo()[getAdditionalBeanInfo().length]
    4. ! **
    5. ...
    6. ! **
    7. getAdditionalBeanInfo()[1]
    8. ! **
    9. getAdditionalBeanInfo()[0]
    10. ! **

    ! ** ! ** Spec Note: It is possible that ! ** returning null from this method could ! ** stop Introspection in its tracks, but it is unclear ! ** from the spec whether this is the case. ! ** ! ** @return additional BeanInfos representing this Bean. ! ** null may be returned (see Spec ! ** Note, above). ! **/ ! BeanInfo[] getAdditionalBeanInfo(); ! /** Get a visual icon for this Bean. ! ** A Bean does not have to support icons, and if it does ! ** support icons, it does not have to support every single ! ** type. Sun recommends that if you only support one ! ** type, you support 16x16 color. Sun also notes that you ! ** should try to use a type (like GIF) that allows for ! ** transparent pixels, so that the background of the RAD ! ** tool can show through.

    ! ** ! ** Spec Note: If you do not support the ! ** type of icon that is being asked for, but you do ! ** support another type, it is unclear whether you should ! ** return the other type or not. I would presume not. ! ** ! ** @param iconType the type of icon to get (see the ! ** ICON_* constants in this class). ! ** @return the icon, or null if that type of icon is ! ** unsupported by this Bean. ! **/ ! java.awt.Image getIcon(int iconType); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/Beans.java gcc-4.6.0/libjava/classpath/java/beans/Beans.java *** gcc-4.5.2/libjava/classpath/java/beans/Beans.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/beans/Beans.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.net.URL; *** 52,58 **** * * @author John Keiser * @author Robert Schuster ! * * @since 1.1 * @status updated to 1.4 * --- 52,58 ---- * * @author John Keiser * @author Robert Schuster ! * * @since 1.1 * @status updated to 1.4 * *************** public class Beans *** 74,86 **** /** Creates a bean. *

    This is a convenience method that calls instantiate(cl, beanName, null, null).

    ! * * @see instantiate(ClassLoader, String, BeanContext, AppletInitializer) * @param cl ClassLoader to be used or null for the system classloader. * @param beanName Name of a serialized bean or class name. * @return A newly created bean. * @throws IOException If access of an IO resource failed. ! * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class. */ public static Object instantiate(ClassLoader cl, String beanName) throws IOException, ClassNotFoundException --- 74,86 ---- /** Creates a bean. *

    This is a convenience method that calls instantiate(cl, beanName, null, null).

    ! * * @see instantiate(ClassLoader, String, BeanContext, AppletInitializer) * @param cl ClassLoader to be used or null for the system classloader. * @param beanName Name of a serialized bean or class name. * @return A newly created bean. * @throws IOException If access of an IO resource failed. ! * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class. */ public static Object instantiate(ClassLoader cl, String beanName) throws IOException, ClassNotFoundException *************** public class Beans *** 89,104 **** } /** Creates a bean. ! * *

    This is a convenience method that calls instantiate(cl, beanName, beanContext, null).

    ! * * @see instantiate(ClassLoader, String, BeanContext, AppletInitializer) * @param cl ClassLoader to be used or null for the system classloader. * @param beanName Name of a serialized bean or class name. * @param beanContext Context to which the newly created Bean should be added. * @return A newly created bean. * @throws IOException If access of an IO resource failed. ! * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class. */ public static Object instantiate( ClassLoader cl, --- 89,104 ---- } /** Creates a bean. ! * *

    This is a convenience method that calls instantiate(cl, beanName, beanContext, null).

    ! * * @see instantiate(ClassLoader, String, BeanContext, AppletInitializer) * @param cl ClassLoader to be used or null for the system classloader. * @param beanName Name of a serialized bean or class name. * @param beanContext Context to which the newly created Bean should be added. * @return A newly created bean. * @throws IOException If access of an IO resource failed. ! * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class. */ public static Object instantiate( ClassLoader cl, *************** public class Beans *** 110,147 **** } /** Instantiates a bean according to Beans 1.0. ! * *

    In Beans 1.0 the instantiation scheme is as follows:

    *

    The name should be dot-separated (e.g "place.for.beans.myBean") and indicate either a * serialized object or a class name. In the first case all dots in the name are replaced with * slashes ('/') and ".ser" is appended ("place.for.beans.myBean" becomes "place/for/beans/myBean.ser"). * The bean is then loaded as an application or system resource depending on whether a * ClassLoader was provided.

    ! * *

    If no such resource exists or if it contains no bean the name is interpreted as a class name of * which an instance is then created.

    ! * *

    If a BeanContext instance is available the created bean is added to it.

    ! * *

    If the created Bean is an Applet or subclass and an AppletInitializer * instance is available the applet is initialized and afterwards activated using the initializer. Additionally * every instantiated Applet bean is initialized using the {@link Applet.init} method. * Furthermore every applet gets a default AppletStub. The Applet's * document base is the location of the ".ser" file if it was deserialized or the location of its class * file if it was instantiated.

    ! * *

    A ClassNotFoundException is not only thrown when a class name was unknown * but even when the class has public no-argument constructor * (IllegalAccessException is wrapped) or an exception is thrown while * invoking such a constructor (causing exception is wrapped).

    ! * * @param cl ClassLoader to be used or null for the system classloader. * @param beanName Name of a serialized bean or class name. * @param beanContext Context to which the newly created Bean should be added. * @param initializer The AppletInitializer which is used for initializing Applet beans. * @return A newly created bean. * @throws IOException If access of an IO resource failed. ! * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class. */ public static Object instantiate( ClassLoader cl, --- 110,147 ---- } /** Instantiates a bean according to Beans 1.0. ! * *

    In Beans 1.0 the instantiation scheme is as follows:

    *

    The name should be dot-separated (e.g "place.for.beans.myBean") and indicate either a * serialized object or a class name. In the first case all dots in the name are replaced with * slashes ('/') and ".ser" is appended ("place.for.beans.myBean" becomes "place/for/beans/myBean.ser"). * The bean is then loaded as an application or system resource depending on whether a * ClassLoader was provided.

    ! * *

    If no such resource exists or if it contains no bean the name is interpreted as a class name of * which an instance is then created.

    ! * *

    If a BeanContext instance is available the created bean is added to it.

    ! * *

    If the created Bean is an Applet or subclass and an AppletInitializer * instance is available the applet is initialized and afterwards activated using the initializer. Additionally * every instantiated Applet bean is initialized using the {@link Applet.init} method. * Furthermore every applet gets a default AppletStub. The Applet's * document base is the location of the ".ser" file if it was deserialized or the location of its class * file if it was instantiated.

    ! * *

    A ClassNotFoundException is not only thrown when a class name was unknown * but even when the class has public no-argument constructor * (IllegalAccessException is wrapped) or an exception is thrown while * invoking such a constructor (causing exception is wrapped).

    ! * * @param cl ClassLoader to be used or null for the system classloader. * @param beanName Name of a serialized bean or class name. * @param beanContext Context to which the newly created Bean should be added. * @param initializer The AppletInitializer which is used for initializing Applet beans. * @return A newly created bean. * @throws IOException If access of an IO resource failed. ! * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class. */ public static Object instantiate( ClassLoader cl, *************** public class Beans *** 154,165 **** URL beanLocation = null; URL classLocation = null; ! // Converts bean name into a resource name (eg. "a.b.c" -> "a/b/c"). String resourceName = beanName.replace('.', '/'); /* Tries to get an input stream of the Bean, reading it as a system resource * if no ClassLoader is present or as an application resource if a classloader ! * is given. */ beanLocation = (cl == null) --- 154,165 ---- URL beanLocation = null; URL classLocation = null; ! // Converts bean name into a resource name (eg. "a.b.c" -> "a/b/c"). String resourceName = beanName.replace('.', '/'); /* Tries to get an input stream of the Bean, reading it as a system resource * if no ClassLoader is present or as an application resource if a classloader ! * is given. */ beanLocation = (cl == null) *************** public class Beans *** 211,220 **** bean = beanClass.newInstance(); } catch(Exception e) { ! /* Wraps all kinds of Exceptions in a ClassNotFoundException (this behavior ! * matches with official >= 1.5, this was different for <=1.4) ! */ ! throw new ClassNotFoundException(null, e); } } --- 211,220 ---- bean = beanClass.newInstance(); } catch(Exception e) { ! /* Wraps all kinds of Exceptions in a ClassNotFoundException (this behavior ! * matches with official >= 1.5, this was different for <=1.4) ! */ ! throw new ClassNotFoundException(null, e); } } *************** public class Beans *** 224,231 **** * - as every other Bean Applets are added to a BeanContext if one is available * - each instantiated Applet is initialized using Applet.init() (this is not done for deserialized ones) * - finally AppletS get activated using the AppletInitializerS activate-Method ! * ! * The order of operations is important for compatibility. */ Applet applet = null; if (bean instanceof Applet) --- 224,231 ---- * - as every other Bean Applets are added to a BeanContext if one is available * - each instantiated Applet is initialized using Applet.init() (this is not done for deserialized ones) * - finally AppletS get activated using the AppletInitializerS activate-Method ! * ! * The order of operations is important for compatibility. */ Applet applet = null; if (bean instanceof Applet) *************** public class Beans *** 344,350 **** /** * Sets whether the GUI is available to use. ! * * @param guiAvailable whether the GUI is available to use. */ public static void setGuiAvailable(boolean guiAvailable) --- 344,350 ---- /** * Sets whether the GUI is available to use. ! * * @param guiAvailable whether the GUI is available to use. */ public static void setGuiAvailable(boolean guiAvailable) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/Customizer.java gcc-4.6.0/libjava/classpath/java/beans/Customizer.java *** gcc-4.5.2/libjava/classpath/java/beans/Customizer.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/Customizer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 67,86 **** **/ public interface Customizer { ! /** Set the object to Customize. This will always be a ! ** Bean that had a BeanDescriptor indicating this ! ** Customizer. ! ** @param bean the Bean to customize. ! **/ ! void setObject(Object bean); ! /** Add a PropertyChangeListener. ! ** @param l the PropertyChangeListener to add. ! **/ ! void addPropertyChangeListener(PropertyChangeListener l); ! /** Remove a PropertyChangeListener. ! ** @param l the PropertyChangeListener to remove. ! **/ ! void removePropertyChangeListener(PropertyChangeListener l); } --- 67,86 ---- **/ public interface Customizer { ! /** Set the object to Customize. This will always be a ! ** Bean that had a BeanDescriptor indicating this ! ** Customizer. ! ** @param bean the Bean to customize. ! **/ ! void setObject(Object bean); ! /** Add a PropertyChangeListener. ! ** @param l the PropertyChangeListener to add. ! **/ ! void addPropertyChangeListener(PropertyChangeListener l); ! /** Remove a PropertyChangeListener. ! ** @param l the PropertyChangeListener to remove. ! **/ ! void removePropertyChangeListener(PropertyChangeListener l); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/DefaultPersistenceDelegate.java gcc-4.6.0/libjava/classpath/java/beans/DefaultPersistenceDelegate.java *** gcc-4.5.2/libjava/classpath/java/beans/DefaultPersistenceDelegate.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/beans/DefaultPersistenceDelegate.java Tue Jan 11 19:46:05 2011 *************** import java.lang.reflect.Method; *** 44,50 **** /**

    DefaultPersistenceDelegate is a {@link PersistenceDelegate} * implementation that can be used to serialize objects which adhere to the * Java Beans naming convention.

    ! * * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ --- 44,50 ---- /**

    DefaultPersistenceDelegate is a {@link PersistenceDelegate} * implementation that can be used to serialize objects which adhere to the * Java Beans naming convention.

    ! * * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ *************** public class DefaultPersistenceDelegate *** 62,72 **** /** This constructor allows to specify which Bean properties appear * in the constructor. ! * *

    The implementation reads the mentioned properties from the Bean * instance and applies it in the given order to a corresponding * constructor.

    ! * * @param constructorPropertyNames The properties the Bean's constructor * should be given to. */ --- 62,72 ---- /** This constructor allows to specify which Bean properties appear * in the constructor. ! * *

    The implementation reads the mentioned properties from the Bean * instance and applies it in the given order to a corresponding * constructor.

    ! * * @param constructorPropertyNames The properties the Bean's constructor * should be given to. */ *************** public class DefaultPersistenceDelegate *** 167,179 **** // * PersistenceDelegate.initialize() is implemented in a way that it // calls the initialize method of the superclass' persistence delegate. super.initialize(type, oldInstance, newInstance, out); ! // Suppresses the writing of property setting statements when this delegate // is not used for the exact instance type. By doing so the following code // is called only once per object. if (type != oldInstance.getClass()) return; ! try { PropertyDescriptor[] propertyDescs = Introspector.getBeanInfo( --- 167,179 ---- // * PersistenceDelegate.initialize() is implemented in a way that it // calls the initialize method of the superclass' persistence delegate. super.initialize(type, oldInstance, newInstance, out); ! // Suppresses the writing of property setting statements when this delegate // is not used for the exact instance type. By doing so the following code // is called only once per object. if (type != oldInstance.getClass()) return; ! try { PropertyDescriptor[] propertyDescs = Introspector.getBeanInfo( diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/DesignMode.java gcc-4.6.0/libjava/classpath/java/beans/DesignMode.java *** gcc-4.5.2/libjava/classpath/java/beans/DesignMode.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/DesignMode.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 49,55 **** * @since JDK1.2 * @see java.beans.beancontext.BeanContextChild */ ! public interface DesignMode { /** --- 49,55 ---- * @since JDK1.2 * @see java.beans.beancontext.BeanContextChild */ ! public interface DesignMode { /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/Encoder.java gcc-4.6.0/libjava/classpath/java/beans/Encoder.java *** gcc-4.5.2/libjava/classpath/java/beans/Encoder.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/beans/Encoder.java Tue Jan 11 19:46:05 2011 *************** public class Encoder *** 119,129 **** pd = new CollectionPersistenceDelegate(); delegates.put(AbstractCollection.class, pd); ! pd = new MapPersistenceDelegate(); delegates.put(java.util.AbstractMap.class, pd); delegates.put(java.util.Hashtable.class, pd); ! defaultPersistenceDelegate = new DefaultPersistenceDelegate(); delegates.put(Object.class, defaultPersistenceDelegate); --- 119,129 ---- pd = new CollectionPersistenceDelegate(); delegates.put(AbstractCollection.class, pd); ! pd = new MapPersistenceDelegate(); delegates.put(java.util.AbstractMap.class, pd); delegates.put(java.util.Hashtable.class, pd); ! defaultPersistenceDelegate = new DefaultPersistenceDelegate(); delegates.put(Object.class, defaultPersistenceDelegate); *************** public class Encoder *** 158,164 **** accessCounter++; pd.writeObject(o, this); accessCounter--; ! } /** --- 158,164 ---- accessCounter++; pd.writeObject(o, this); accessCounter--; ! } /** *************** public class Encoder *** 169,176 **** */ public void setExceptionListener(ExceptionListener listener) { ! exceptionListener = (listener != null) ! ? listener : DefaultExceptionListener.INSTANCE; } /** --- 169,176 ---- */ public void setExceptionListener(ExceptionListener listener) { ! exceptionListener = (listener != null) ! ? listener : DefaultExceptionListener.INSTANCE; } /** *************** public class Encoder *** 261,267 **** // String instances are handled in a special way. // No one knows why this is not officially specified // because this is a rather important design decision. ! return (oldInstance == null) ? null : (oldInstance.getClass() == String.class) ? oldInstance : candidates.get(oldInstance); } --- 261,267 ---- // String instances are handled in a special way. // No one knows why this is not officially specified // because this is a rather important design decision. ! return (oldInstance == null) ? null : (oldInstance.getClass() == String.class) ? oldInstance : candidates.get(oldInstance); } *************** public class Encoder *** 338,345 **** exceptionListener.exceptionThrown(e); return; } ! ! newValue = get(value); if (newValue == null) --- 338,345 ---- exceptionListener.exceptionThrown(e); return; } ! ! newValue = get(value); if (newValue == null) *************** public class Encoder *** 369,383 **** newArgs[i] = get(args[i]); } } ! Expression newExpr = new Expression(newTarget, expr.getMethodName(), newArgs); ! // Fakes the result of Class.forName() to make it possible // to hand such a type to the encoding process. if (value instanceof Class && ((Class) value).isPrimitive()) newExpr.setValue(value); ! // Instantiates the new object. try { --- 369,383 ---- newArgs[i] = get(args[i]); } } ! Expression newExpr = new Expression(newTarget, expr.getMethodName(), newArgs); ! // Fakes the result of Class.forName() to make it possible // to hand such a type to the encoding process. if (value instanceof Class && ((Class) value).isPrimitive()) newExpr.setValue(value); ! // Instantiates the new object. try { *************** public class Encoder *** 388,397 **** catch (Exception e) { exceptionListener.exceptionThrown(e); ! return; } ! writeObject(value); } --- 388,397 ---- catch (Exception e) { exceptionListener.exceptionThrown(e); ! return; } ! writeObject(value); } *************** public class Encoder *** 404,413 **** /** Returns whether the given class is an immutable * type which has to be handled differently when serializing it. ! * *

    Immutable objects always have to be instantiated instead of * modifying an existing instance.

    ! * * @param type The class to test. * @return Whether the first argument is an immutable type. */ --- 404,413 ---- /** Returns whether the given class is an immutable * type which has to be handled differently when serializing it. ! * *

    Immutable objects always have to be instantiated instead of * modifying an existing instance.

    ! * * @param type The class to test. * @return Whether the first argument is an immutable type. */ *************** public class Encoder *** 419,427 **** || type == Long.class || type == Float.class || type == Double.class; } ! /** Sets the stream candidate for a given object. ! * * @param oldObject The object given to the encoder. * @param newObject The object the encoder generated. */ --- 419,427 ---- || type == Long.class || type == Float.class || type == Double.class; } ! /** Sets the stream candidate for a given object. ! * * @param oldObject The object given to the encoder. * @param newObject The object the encoder generated. */ *************** public class Encoder *** 429,433 **** { candidates.put(oldObject, newObject); } ! } --- 429,433 ---- { candidates.put(oldObject, newObject); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/EventHandler.java gcc-4.6.0/libjava/classpath/java/beans/EventHandler.java *** gcc-4.5.2/libjava/classpath/java/beans/EventHandler.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/beans/EventHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.lang.reflect.Proxy; *** 46,59 **** /** *

    EventHandler forms a bridge between dynamically created listeners and * arbitrary properties and methods.

    ! * *

    You can use this class to easily create listener implementations for * some basic interactions between an event source and its target. Using * the three static methods named create you can create * these listener implementations.

    ! * *

    See the documentation of each method for usage examples.

    ! * * @author Jerry Quinn (jlquinn@optonline.net) * @author Robert Schuster (thebohemian@gmx.net) * @since 1.4 --- 46,59 ---- /** *

    EventHandler forms a bridge between dynamically created listeners and * arbitrary properties and methods.

    ! * *

    You can use this class to easily create listener implementations for * some basic interactions between an event source and its target. Using * the three static methods named create you can create * these listener implementations.

    ! * *

    See the documentation of each method for usage examples.

    ! * * @author Jerry Quinn (jlquinn@optonline.net) * @author Robert Schuster (thebohemian@gmx.net) * @since 1.4 *************** public class EventHandler implements Inv *** 74,80 **** // The target objects Class. private Class targetClass; ! // String class doesn't already have a capitalize routine. private String capitalize(String s) { --- 74,80 ---- // The target objects Class. private Class targetClass; ! // String class doesn't already have a capitalize routine. private String capitalize(String s) { *************** public class EventHandler implements Inv *** 90,98 **** *

    This constructs an EventHandler that will connect the method * listenerMethodName to target.action, extracting eventPropertyName from * the first argument of listenerMethodName. and sending it to action.

    ! * *

    Throws a NullPointerException if the target ! * argument is null. * * @param target Object that will perform the action. * @param action A property or method of the target. --- 90,98 ---- *

    This constructs an EventHandler that will connect the method * listenerMethodName to target.action, extracting eventPropertyName from * the first argument of listenerMethodName. and sending it to action.

    ! * *

    Throws a NullPointerException if the target ! * argument is null. * * @param target Object that will perform the action. * @param action A property or method of the target. *************** public class EventHandler implements Inv *** 100,116 **** * @param listenerMethodName The listener method name triggering the action. */ public EventHandler(Object target, String action, String eventPropertyName, ! String listenerMethodName) { this.target = target; ! // Retrieving the class is done for two reasons: // 1) The class object is needed very frequently in the invoke() method. // 2) The constructor should throw a NullPointerException if target is null. targetClass = target.getClass(); ! ! this.action = action; // Turn this into a method or do we wait till ! // runtime property = eventPropertyName; listenerMethod = listenerMethodName; } --- 100,116 ---- * @param listenerMethodName The listener method name triggering the action. */ public EventHandler(Object target, String action, String eventPropertyName, ! String listenerMethodName) { this.target = target; ! // Retrieving the class is done for two reasons: // 1) The class object is needed very frequently in the invoke() method. // 2) The constructor should throw a NullPointerException if target is null. targetClass = target.getClass(); ! ! this.action = action; // Turn this into a method or do we wait till ! // runtime property = eventPropertyName; listenerMethod = listenerMethodName; } *************** public class EventHandler implements Inv *** 164,179 **** String rest = null; if ((pos = prop.indexOf('.')) != -1) { ! rest = prop.substring(pos + 1); ! prop = prop.substring(0, pos); } // Find a method named getProp. It could be isProp instead. Method getter; try { ! // Look for boolean property getter isProperty ! getter = o.getClass().getMethod("is" + capitalize(prop)); } catch (NoSuchMethodException nsme1) { --- 164,179 ---- String rest = null; if ((pos = prop.indexOf('.')) != -1) { ! rest = prop.substring(pos + 1); ! prop = prop.substring(0, pos); } // Find a method named getProp. It could be isProp instead. Method getter; try { ! // Look for boolean property getter isProperty ! getter = o.getClass().getMethod("is" + capitalize(prop)); } catch (NoSuchMethodException nsme1) { *************** public class EventHandler implements Inv *** 209,217 **** /** * Invokes the EventHandler. ! * *

    This method is normally called by the listener's proxy implementation.

    ! * * @param proxy The listener interface that is implemented using * the proxy mechanism. * @param method The method that was called on the proxy instance. --- 209,217 ---- /** * Invokes the EventHandler. ! * *

    This method is normally called by the listener's proxy implementation.

    ! * * @param proxy The listener interface that is implemented using * the proxy mechanism. * @param method The method that was called on the proxy instance. *************** public class EventHandler implements Inv *** 245,255 **** // - need method and object to do the invoke and get return type Object v[] = getProperty(event, property); Object[] args = new Object[] { v[0] }; ! // Changes the class array that controls which method signature we are going // to look up in the target object. Class[] argTypes = new Class[] { initClass((Class) v[1]) }; ! // Tries to find a setter method to which we can apply the while(argTypes[0] != null) { try --- 245,255 ---- // - need method and object to do the invoke and get return type Object v[] = getProperty(event, property); Object[] args = new Object[] { v[0] }; ! // Changes the class array that controls which method signature we are going // to look up in the target object. Class[] argTypes = new Class[] { initClass((Class) v[1]) }; ! // Tries to find a setter method to which we can apply the while(argTypes[0] != null) { try *************** public class EventHandler implements Inv *** 263,278 **** { // If action as property didn't work, try as method later. } ! argTypes[0] = nextClass(argTypes[0]); } ! // We could not find a suitable setter method. Now we try again interpreting // action as the method name itself. ! // Since we probably have changed the block local argTypes array // we need to rebuild it. argTypes = new Class[] { initClass((Class) v[1]) }; ! // Tries to find a setter method to which we can apply the while(argTypes[0] != null) { try --- 263,278 ---- { // If action as property didn't work, try as method later. } ! argTypes[0] = nextClass(argTypes[0]); } ! // We could not find a suitable setter method. Now we try again interpreting // action as the method name itself. ! // Since we probably have changed the block local argTypes array // we need to rebuild it. argTypes = new Class[] { initClass((Class) v[1]) }; ! // Tries to find a setter method to which we can apply the while(argTypes[0] != null) { try *************** public class EventHandler implements Inv *** 284,298 **** catch (NoSuchMethodException e) { } ! argTypes[0] = nextClass(argTypes[0]); } ! throw new RuntimeException("Method not called: Could not find a public method named '" + action + "' in target " + targetClass + " which takes a '" + v[1] + "' argument or a property of this type."); ! } ! // If property was null we will search for a no-argument method here. // Note: The ordering of method lookups is important because we want to prefer no-argument // calls like the JDK does. This means if we have actionMethod() and actionMethod(Event) we will --- 284,298 ---- catch (NoSuchMethodException e) { } ! argTypes[0] = nextClass(argTypes[0]); } ! throw new RuntimeException("Method not called: Could not find a public method named '" + action + "' in target " + targetClass + " which takes a '" + v[1] + "' argument or a property of this type."); ! } ! // If property was null we will search for a no-argument method here. // Note: The ordering of method lookups is important because we want to prefer no-argument // calls like the JDK does. This means if we have actionMethod() and actionMethod(Event) we will *************** public class EventHandler implements Inv *** 312,336 **** // else this can stay this way. if(arguments != null && arguments.length >= 1/* && arguments[0] instanceof EventObject*/) { Class[] targetArgTypes = new Class[] { initClass(arguments[0].getClass()) }; ! while(targetArgTypes[0] != null) { try { // If no property exists we expect the first element of the arguments to be // an EventObject which is then applied to the target method. ! actionMethod = targetClass.getMethod(action, targetArgTypes); ! return actionMethod.invoke(target, new Object[] { arguments[0] }); } catch(NoSuchMethodException nsme2) { ! } ! targetArgTypes[0] = nextClass(targetArgTypes[0]); } ! } } --- 312,336 ---- // else this can stay this way. if(arguments != null && arguments.length >= 1/* && arguments[0] instanceof EventObject*/) { Class[] targetArgTypes = new Class[] { initClass(arguments[0].getClass()) }; ! while(targetArgTypes[0] != null) { try { // If no property exists we expect the first element of the arguments to be // an EventObject which is then applied to the target method. ! actionMethod = targetClass.getMethod(action, targetArgTypes); ! return actionMethod.invoke(target, new Object[] { arguments[0] }); } catch(NoSuchMethodException nsme2) { ! } ! targetArgTypes[0] = nextClass(targetArgTypes[0]); } ! } } *************** public class EventHandler implements Inv *** 338,344 **** // failed. The JDK throws an ArrayIndexOutOfBoundsException in this case. if(actionMethod == null) throw new ArrayIndexOutOfBoundsException(0); ! // Invoke target.action(property) return actionMethod.invoke(target); } catch(InvocationTargetException ite) { --- 338,344 ---- // failed. The JDK throws an ArrayIndexOutOfBoundsException in this case. if(actionMethod == null) throw new ArrayIndexOutOfBoundsException(0); ! // Invoke target.action(property) return actionMethod.invoke(target); } catch(InvocationTargetException ite) { *************** public class EventHandler implements Inv *** 350,424 **** throw (InternalError) new InternalError("Non-public method was invoked.").initCause(iae); } } ! /** *

    Returns the primitive type for every wrapper class or the * class itself if it is no wrapper class.

    ! * *

    This is needed because to be able to find both kinds of methods: * One that takes a wrapper class as the first argument and one that * accepts a primitive instead.

    */ private Class initClass(Class klass) { if(klass == Boolean.class) { ! return Boolean.TYPE; } else if(klass == Byte.class) { ! return Byte.TYPE; } else if(klass == Short.class) { ! return Short.TYPE; } else if(klass == Integer.class) { ! return Integer.TYPE; } else if(klass == Long.class) { ! return Long.TYPE; } else if(klass == Float.class) { ! return Float.TYPE; } else if(klass == Double.class) { ! return Double.TYPE; } else { ! return klass; } } /** ! * ! * * @param klass * @return */ private Class nextClass(Class klass) { if(klass == Boolean.TYPE) { ! return Boolean.class; } else if(klass == Byte.TYPE) { ! return Byte.class; } else if(klass == Short.TYPE) { ! return Short.class; } else if(klass == Integer.TYPE) { ! return Integer.class; } else if(klass == Long.TYPE) { ! return Long.class; } else if(klass == Float.TYPE) { ! return Float.class; } else if(klass == Double.TYPE) { ! return Double.class; } else { return klass.getSuperclass(); } } ! /** *

    Constructs an implementation of listenerInterface * to dispatch events.

    ! * *

    You can use such an implementation to simply call a public * no-argument method of an arbitrary target object or to forward * the first argument of the listener method to the target method.

    ! * *

    Call this method like:

    * * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, target, "dispose")); * ! * *

    to achieve the following behavior:

    * * button.addActionListener(new ActionListener() { --- 350,424 ---- throw (InternalError) new InternalError("Non-public method was invoked.").initCause(iae); } } ! /** *

    Returns the primitive type for every wrapper class or the * class itself if it is no wrapper class.

    ! * *

    This is needed because to be able to find both kinds of methods: * One that takes a wrapper class as the first argument and one that * accepts a primitive instead.

    */ private Class initClass(Class klass) { if(klass == Boolean.class) { ! return Boolean.TYPE; } else if(klass == Byte.class) { ! return Byte.TYPE; } else if(klass == Short.class) { ! return Short.TYPE; } else if(klass == Integer.class) { ! return Integer.TYPE; } else if(klass == Long.class) { ! return Long.TYPE; } else if(klass == Float.class) { ! return Float.TYPE; } else if(klass == Double.class) { ! return Double.TYPE; } else { ! return klass; } } /** ! * ! * * @param klass * @return */ private Class nextClass(Class klass) { if(klass == Boolean.TYPE) { ! return Boolean.class; } else if(klass == Byte.TYPE) { ! return Byte.class; } else if(klass == Short.TYPE) { ! return Short.class; } else if(klass == Integer.TYPE) { ! return Integer.class; } else if(klass == Long.TYPE) { ! return Long.class; } else if(klass == Float.TYPE) { ! return Float.class; } else if(klass == Double.TYPE) { ! return Double.class; } else { return klass.getSuperclass(); } } ! /** *

    Constructs an implementation of listenerInterface * to dispatch events.

    ! * *

    You can use such an implementation to simply call a public * no-argument method of an arbitrary target object or to forward * the first argument of the listener method to the target method.

    ! * *

    Call this method like:

    * * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, target, "dispose")); * ! * *

    to achieve the following behavior:

    * * button.addActionListener(new ActionListener() { *************** public class EventHandler implements Inv *** 427,437 **** * } * }); * ! * *

    That means if you need a listener implementation that simply calls a * a no-argument method on a given instance for each * method of the listener interface.

    ! * *

    Note: The action is interpreted as a method name. If your target object * has no no-argument method of the given name the EventHandler tries to find * a method with the same name but which can accept the first argument of the --- 427,437 ---- * } * }); * ! * *

    That means if you need a listener implementation that simply calls a * a no-argument method on a given instance for each * method of the listener interface.

    ! * *

    Note: The action is interpreted as a method name. If your target object * has no no-argument method of the given name the EventHandler tries to find * a method with the same name but which can accept the first argument of the *************** public class EventHandler implements Inv *** 444,458 **** * to their wrapper class and vice versa. Furthermore it will call * a target method if it accepts a superclass of the type of the * first argument of the listener method.

    ! * *

    In case that the method of the target object throws an exception * it will be wrapped in a RuntimeException and thrown out * of the listener method.

    ! * *

    In case that the method of the target object cannot be found an * ArrayIndexOutOfBoundsException will be thrown when the * listener method is invoked.

    ! * *

    A call to this method is equivalent to: * create(listenerInterface, target, action, null, null)

    * --- 444,458 ---- * to their wrapper class and vice versa. Furthermore it will call * a target method if it accepts a superclass of the type of the * first argument of the listener method.

    ! * *

    In case that the method of the target object throws an exception * it will be wrapped in a RuntimeException and thrown out * of the listener method.

    ! * *

    In case that the method of the target object cannot be found an * ArrayIndexOutOfBoundsException will be thrown when the * listener method is invoked.

    ! * *

    A call to this method is equivalent to: * create(listenerInterface, target, action, null, null)

    * *************** public class EventHandler implements Inv *** 462,468 **** * @return A constructed proxy object. */ public static T create(Class listenerInterface, Object target, ! String action) { return create(listenerInterface, target, action, null, null); } --- 462,468 ---- * @return A constructed proxy object. */ public static T create(Class listenerInterface, Object target, ! String action) { return create(listenerInterface, target, action, null, null); } *************** public class EventHandler implements Inv *** 476,502 **** * and applies it to the target's property or method. This first argument * of the listener is usually an event object but any other object is * valid, too.

    ! * *

    You can set the value of eventPropertyName to "prop" * to denote the retrieval of a property named "prop" from the event * object. In case that no such property exists the EventHandler * will try to find a method with that name.

    ! * *

    If you set eventPropertyName to a value like this "a.b.c" * EventHandler will recursively evaluate the properties "a", "b" * and "c". Again if no property can be found the EventHandler * tries a method name instead. This allows mixing the names, too: "a.toString" * will retrieve the property "a" from the event object and will then call * the method "toString" on it.

    ! * *

    An exception thrown in any of these methods will provoke a * RuntimeException to be thrown which contains an * InvocationTargetException containing the triggering exception.

    ! * *

    If you set eventPropertyName to a non-null value the * action parameter will be interpreted as a property name * or a method name of the target object.

    ! * *

    Any object retrieved from the event object and applied to the * target will converted from primitives to their wrapper class or * vice versa or applied to a method that accepts a superclass --- 476,502 ---- * and applies it to the target's property or method. This first argument * of the listener is usually an event object but any other object is * valid, too.

    ! * *

    You can set the value of eventPropertyName to "prop" * to denote the retrieval of a property named "prop" from the event * object. In case that no such property exists the EventHandler * will try to find a method with that name.

    ! * *

    If you set eventPropertyName to a value like this "a.b.c" * EventHandler will recursively evaluate the properties "a", "b" * and "c". Again if no property can be found the EventHandler * tries a method name instead. This allows mixing the names, too: "a.toString" * will retrieve the property "a" from the event object and will then call * the method "toString" on it.

    ! * *

    An exception thrown in any of these methods will provoke a * RuntimeException to be thrown which contains an * InvocationTargetException containing the triggering exception.

    ! * *

    If you set eventPropertyName to a non-null value the * action parameter will be interpreted as a property name * or a method name of the target object.

    ! * *

    Any object retrieved from the event object and applied to the * target will converted from primitives to their wrapper class or * vice versa or applied to a method that accepts a superclass *************** public class EventHandler implements Inv *** 512,546 **** * } * }); * ! * *

    Can be expressed using the EventHandler like this:

    *

    * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, textField, "text", "source.class.name"); * *

    ! * *

    As said above you can specify the target as a method, too:

    *

    * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, textField, "setText", "source.class.name"); * *

    ! * *

    Furthermore you can use method names in the property:

    *

    * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, textField, "setText", "getSource.getClass.getName"); * *

    ! * *

    Finally you can mix names:

    *

    * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, textField, "setText", "source.getClass.name"); * *

    ! * *

    A call to this method is equivalent to: * create(listenerInterface, target, action, null, null) *

    --- 512,546 ---- * } * }); *
    ! * *

    Can be expressed using the EventHandler like this:

    *

    * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, textField, "text", "source.class.name"); * *

    ! * *

    As said above you can specify the target as a method, too:

    *

    * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, textField, "setText", "source.class.name"); * *

    ! * *

    Furthermore you can use method names in the property:

    *

    * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, textField, "setText", "getSource.getClass.getName"); * *

    ! * *

    Finally you can mix names:

    *

    * button.addActionListener((ActionListener) * EventHandler.create(ActionListener.class, textField, "setText", "source.getClass.name"); * *

    ! * *

    A call to this method is equivalent to: * create(listenerInterface, target, action, null, null) *

    *************** public class EventHandler implements Inv *** 552,558 **** * @return A constructed proxy object. */ public static T create(Class listenerInterface, Object target, ! String action, String eventPropertyName) { return create(listenerInterface, target, action, eventPropertyName, null); } --- 552,558 ---- * @return A constructed proxy object. */ public static T create(Class listenerInterface, Object target, ! String action, String eventPropertyName) { return create(listenerInterface, target, action, eventPropertyName, null); } *************** public class EventHandler implements Inv *** 566,572 **** * to filter the listener method that should have an effect. Look at these * method's documentation for more information about the EventHandler's * usage.

    ! * *

    If you want to call dispose on a JFrame instance * when the WindowListener.windowClosing() method was invoked use * the following code:

    --- 566,572 ---- * to filter the listener method that should have an effect. Look at these * method's documentation for more information about the EventHandler's * usage.

    ! * *

    If you want to call dispose on a JFrame instance * when the WindowListener.windowClosing() method was invoked use * the following code:

    *************** public class EventHandler implements Inv *** 575,584 **** * EventHandler.create(WindowListener.class, jframeInstance, "dispose", null, "windowClosing"); *
    *

    ! * *

    A NullPointerException is thrown if the listenerInterface * or target argument are null. ! * * @param listenerInterface Listener interface to implement. * @param target Object to invoke action on. * @param action Target method name to invoke. --- 575,584 ---- * EventHandler.create(WindowListener.class, jframeInstance, "dispose", null, "windowClosing"); * *

    ! * *

    A NullPointerException is thrown if the listenerInterface * or target argument are null. ! * * @param listenerInterface Listener interface to implement. * @param target Object to invoke action on. * @param action Target method name to invoke. *************** public class EventHandler implements Inv *** 587,603 **** * @return A constructed proxy object. */ public static T create(Class listenerInterface, Object target, ! String action, String eventPropertyName, ! String listenerMethodName) { // Create EventHandler instance EventHandler eh = new EventHandler(target, action, eventPropertyName, ! listenerMethodName); // Create proxy object passing in the event handler Object proxy = Proxy.newProxyInstance(listenerInterface.getClassLoader(), ! new Class[] {listenerInterface}, ! eh); return (T) proxy; } --- 587,603 ---- * @return A constructed proxy object. */ public static T create(Class listenerInterface, Object target, ! String action, String eventPropertyName, ! String listenerMethodName) { // Create EventHandler instance EventHandler eh = new EventHandler(target, action, eventPropertyName, ! listenerMethodName); // Create proxy object passing in the event handler Object proxy = Proxy.newProxyInstance(listenerInterface.getClassLoader(), ! new Class[] {listenerInterface}, ! eh); return (T) proxy; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/EventSetDescriptor.java gcc-4.6.0/libjava/classpath/java/beans/EventSetDescriptor.java *** gcc-4.5.2/libjava/classpath/java/beans/EventSetDescriptor.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/EventSetDescriptor.java Tue Jan 11 19:46:05 2011 *************** *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Vector; *** 47,59 **** /** * EventSetDescriptor describes the hookup between an event source class and * an event listener class. ! * *

    EventSets have several attributes: the listener class, * the events that can be fired to the listener (methods in the listener * class), and an add and remove listener method from the event firer's * class. *

    ! * *

    * The methods have these constraints on them: *

      --- 47,59 ---- /** * EventSetDescriptor describes the hookup between an event source class and * an event listener class. ! * *

      EventSets have several attributes: the listener class, * the events that can be fired to the listener (methods in the listener * class), and an add and remove listener method from the event firer's * class. *

      ! * *

      * The methods have these constraints on them: *

        *************** import java.util.Vector; *** 62,90 **** * package-protected. (Don't ask me why that is, I'm just following the spec. * The only place it is even mentioned is in the Java Beans white paper, and * there it is only implied.) ! * *
      • add listener method: must have void return value. Must * take exactly one argument, of the listener class's type. May fire either * zero exceptions, or one exception of type * java.util.TooManyListenersException. * Must be public.
      • ! * *
      • remove listener method: must have void return value. Must * take exactly one argument, of the listener class's type. May not fire any * exceptions. Must be public.
      • *
      ! * *

      * A final constraint is that event listener classes must extend from * EventListener. *

      ! * *

      * There are also various design patterns associated with some of the methods * of construction. Those are explained in more detail in the appropriate * constructors. *

      ! * *

      * Documentation Convention: for proper Internalization of * Beans inside an RAD tool, sometimes there are two names for a property or --- 62,90 ---- * package-protected. (Don't ask me why that is, I'm just following the spec. * The only place it is even mentioned is in the Java Beans white paper, and * there it is only implied.) ! * *

    • add listener method: must have void return value. Must * take exactly one argument, of the listener class's type. May fire either * zero exceptions, or one exception of type * java.util.TooManyListenersException. * Must be public.
    • ! * *
    • remove listener method: must have void return value. Must * take exactly one argument, of the listener class's type. May not fire any * exceptions. Must be public.
    • *
    ! * *

    * A final constraint is that event listener classes must extend from * EventListener. *

    ! * *

    * There are also various design patterns associated with some of the methods * of construction. Those are explained in more detail in the appropriate * constructors. *

    ! * *

    * Documentation Convention: for proper Internalization of * Beans inside an RAD tool, sometimes there are two names for a property or *************** import java.util.Vector; *** 92,98 **** * anywhere, and a localized, display name, for ease of use. In the * documentation I will specify different String values as either * programmatic or localized to make this distinction clear. ! * * @author John Keiser * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.1 --- 92,98 ---- * anywhere, and a localized, display name, for ease of use. In the * documentation I will specify different String values as either * programmatic or localized to make this distinction clear. ! * * @author John Keiser * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.1 *************** public class EventSetDescriptor extends *** 118,129 **** /** * Creates a new EventSetDescriptor * This version of the constructor enforces the rules imposed on the methods * described at the top of this class, as well as searching for: *

    ! * *
      *
    1. * The event-firing method must be non-private with signature void --- 118,129 ---- /** * Creates a new EventSetDescriptor * This version of the constructor enforces the rules imposed on the methods * described at the top of this class, as well as searching for: *

      ! * *
        *
      1. * The event-firing method must be non-private with signature void *************** public class EventSetDescriptor extends *** 140,146 **** * should be chosen (they probably weren't thinking as pathologically as I * was). I don't like arbitrarily choosing things. If your class has only one * such signature, as most do, you'll have no problems.
      2. ! * *
      3. The add and remove methods must be public and named void * add<eventSetName>Listener(<listenerType>) and * void remove<eventSetName>Listener(<listenerType>) --- 140,146 ---- * should be chosen (they probably weren't thinking as pathologically as I * was). I don't like arbitrarily choosing things. If your class has only one * such signature, as most do, you'll have no problems.
      4. ! * *
      5. The add and remove methods must be public and named void * add<eventSetName>Listener(<listenerType>) and * void remove<eventSetName>Listener(<listenerType>) *************** public class EventSetDescriptor extends *** 148,154 **** * <eventSetName> will have its first letter capitalized. * Standard exception rules (see class description) apply.
      6. *
      ! * * @param eventSourceClass * the class containing the add/remove listener methods. * @param eventSetName --- 148,154 ---- * <eventSetName> will have its first letter capitalized. * Standard exception rules (see class description) apply.
    2. *
    ! * * @param eventSourceClass * the class containing the add/remove listener methods. * @param eventSetName *************** public class EventSetDescriptor extends *** 202,213 **** /** * Creates a new EventSetDescriptor. ! * *

    This form of the constructor allows you to specify the names of the * methods and adds no new constraints on top of the rules already described * at the top of the class. *

    ! * * @param eventSourceClass * the class containing the add and remove listener methods. * @param eventSetName --- 202,213 ---- /** * Creates a new EventSetDescriptor. ! * *

    This form of the constructor allows you to specify the names of the * methods and adds no new constraints on top of the rules already described * at the top of the class. *

    ! * * @param eventSourceClass * the class containing the add and remove listener methods. * @param eventSetName *************** public class EventSetDescriptor extends *** 251,257 **** /** * Creates a new EventSetDescriptor. ! * *

    * This variant of the constructor allows you to specify the names of the * methods and adds no new constraints on top of the rules already described --- 251,257 ---- /** * Creates a new EventSetDescriptor. ! * *

    * This variant of the constructor allows you to specify the names of the * methods and adds no new constraints on top of the rules already described *************** public class EventSetDescriptor extends *** 266,272 **** * Note: The validity of the return value of the GetListener method is not * checked. *

    ! * * @param eventSourceClass * the class containing the add and remove listener methods. * @param eventSetName --- 266,272 ---- * Note: The validity of the return value of the GetListener method is not * checked. *

    ! * * @param eventSourceClass * the class containing the add and remove listener methods. * @param eventSetName *************** public class EventSetDescriptor extends *** 301,313 **** try { ! newGetListenerMethod = eventSourceClass.getMethod(getListenerMethodName, new Class[] { Class.class }); } catch (NoSuchMethodException nsme) { ! throw (IntrospectionException) new IntrospectionException("No method named " + getListenerMethodName + " in class " + listenerType + " which can be used as" --- 301,313 ---- try { ! newGetListenerMethod = eventSourceClass.getMethod(getListenerMethodName, new Class[] { Class.class }); } catch (NoSuchMethodException nsme) { ! throw (IntrospectionException) new IntrospectionException("No method named " + getListenerMethodName + " in class " + listenerType + " which can be used as" *************** public class EventSetDescriptor extends *** 323,329 **** /** * Creates a new EventSetDescriptor. ! * *

    * This variant of the constructor allows you to specify the names of the * methods and adds no new constraints on top of the rules already described --- 323,329 ---- /** * Creates a new EventSetDescriptor. ! * *

    * This variant of the constructor allows you to specify the names of the * methods and adds no new constraints on top of the rules already described *************** public class EventSetDescriptor extends *** 338,344 **** * Note: The validity of the return value of the GetListener method is not * checked. *

    ! * * @param eventSetName * the programmatic name of the event set, generally starting with a * lowercase letter (i.e. fooManChu instead of FooManChu). --- 338,344 ---- * Note: The validity of the return value of the GetListener method is not * checked. *

    ! * * @param eventSetName * the programmatic name of the event set, generally starting with a * lowercase letter (i.e. fooManChu instead of FooManChu). *************** public class EventSetDescriptor extends *** 381,392 **** /** * Creates a new EventSetDescriptor. ! * *

    This form of constructor allows you to explicitly say which methods * do what, and no reflection is done by the EventSetDescriptor. * The methods are, however, checked to ensure that they follow the rules * set forth at the top of the class. ! * * @param eventSetName * the programmatic name of the event set, generally starting with a * lowercase letter (i.e. fooManChu instead of FooManChu). --- 381,392 ---- /** * Creates a new EventSetDescriptor. ! * *

    This form of constructor allows you to explicitly say which methods * do what, and no reflection is done by the EventSetDescriptor. * The methods are, however, checked to ensure that they follow the rules * set forth at the top of the class. ! * * @param eventSetName * the programmatic name of the event set, generally starting with a * lowercase letter (i.e. fooManChu instead of FooManChu). *************** public class EventSetDescriptor extends *** 428,439 **** } /** Creates a new EventSetDescriptor. ! * *

    This form of constructor allows you to explicitly say which methods do * what, and no reflection is done by the EventSetDescriptor. * The methods are, however, checked to ensure that they follow the rules * set forth at the top of the class. ! * * @param eventSetName * the programmatic name of the event set, generally starting with a * lowercase letter (i.e. fooManChu instead of FooManChu). --- 428,439 ---- } /** Creates a new EventSetDescriptor. ! * *

    This form of constructor allows you to explicitly say which methods do * what, and no reflection is done by the EventSetDescriptor. * The methods are, however, checked to ensure that they follow the rules * set forth at the top of the class. ! * * @param eventSetName * the programmatic name of the event set, generally starting with a * lowercase letter (i.e. fooManChu instead of FooManChu). *************** public class EventSetDescriptor extends *** 504,517 **** { listenerMethodDescriptors = new MethodDescriptor[listenerMethods.length]; ! for (int i = 0; i < listenerMethods.length; i++) { listenerMethodDescriptors[i] = new MethodDescriptor(listenerMethods[i]); } } ! return listenerMethodDescriptors; } --- 504,517 ---- { listenerMethodDescriptors = new MethodDescriptor[listenerMethods.length]; ! for (int i = 0; i < listenerMethods.length; i++) { listenerMethodDescriptors[i] = new MethodDescriptor(listenerMethods[i]); } } ! return listenerMethodDescriptors; } *************** public class EventSetDescriptor extends *** 539,545 **** } /** Sets whether or not multiple listeners may be added. ! * * @param unicast * whether or not multiple listeners may be added. */ --- 539,545 ---- } /** Sets whether or not multiple listeners may be added. ! * * @param unicast * whether or not multiple listeners may be added. */ *************** public class EventSetDescriptor extends *** 557,563 **** } /** Sets whether or not this is in the default event set. ! * * @param inDefaultEventSet * whether this is in the default event set. */ --- 557,563 ---- } /** Sets whether or not this is in the default event set. ! * * @param inDefaultEventSet * whether this is in the default event set. */ *************** public class EventSetDescriptor extends *** 759,763 **** this.listenerMethods[i] = (Method) chosenMethods.elementAt(i); } } ! } --- 759,763 ---- this.listenerMethods[i] = (Method) chosenMethods.elementAt(i); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/Expression.java gcc-4.6.0/libjava/classpath/java/beans/Expression.java *** gcc-4.5.2/libjava/classpath/java/beans/Expression.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/java/beans/Expression.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 40,52 **** /** *

    An Expression captures the execution of an object method * that returns a value.

    ! * *

    It stores an object, the method to call, and the arguments to pass to * the method.

    ! * *

    While this class can generally be used to describe method calls it is ! * part of the XML serialization API.

    ! * * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ --- 40,52 ---- /** *

    An Expression captures the execution of an object method * that returns a value.

    ! * *

    It stores an object, the method to call, and the arguments to pass to * the method.

    ! * *

    While this class can generally be used to describe method calls it is ! * part of the XML serialization API.

    ! * * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ *************** public class Expression extends Statemen *** 63,69 **** * Constructor Constructs an Expression representing the invocation of * object.methodName(arg[0], arg[1], ...); However, it will never be executed. * Instead, value will always be returned. ! * * @param value * The value to return. * @param target --- 63,69 ---- * Constructor Constructs an Expression representing the invocation of * object.methodName(arg[0], arg[1], ...); However, it will never be executed. * Instead, value will always be returned. ! * * @param value * The value to return. * @param target *************** public class Expression extends Statemen *** 83,89 **** /** * Constructor Constructs an Expression representing the invocation of * object.methodName(arg[0], arg[1], ...); ! * * @param target * The object to invoke the method on. * @param methodName --- 83,89 ---- /** * Constructor Constructs an Expression representing the invocation of * object.methodName(arg[0], arg[1], ...); ! * * @param target * The object to invoke the method on. * @param methodName *************** public class Expression extends Statemen *** 102,108 **** * been set, the method is executed in the same way as Statement.execute(), * except that the value is cached, and then returned. If the value has been * set, it is returned without executing the method again. ! * * @return the result of executing the method. * @exception Exception * if an error occurs --- 102,108 ---- * been set, the method is executed in the same way as Statement.execute(), * except that the value is cached, and then returned. If the value has been * set, it is returned without executing the method again. ! * * @return the result of executing the method. * @exception Exception * if an error occurs *************** public class Expression extends Statemen *** 116,122 **** /** * Set the cached value to be returned by getValue() ! * * @param value * the value to cache and return. */ --- 116,122 ---- /** * Set the cached value to be returned by getValue() ! * * @param value * the value to cache and return. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/FeatureDescriptor.java gcc-4.6.0/libjava/classpath/java/beans/FeatureDescriptor.java *** gcc-4.5.2/libjava/classpath/java/beans/FeatureDescriptor.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/FeatureDescriptor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/IndexedPropertyChangeEvent.java gcc-4.6.0/libjava/classpath/java/beans/IndexedPropertyChangeEvent.java *** gcc-4.5.2/libjava/classpath/java/beans/IndexedPropertyChangeEvent.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/java/beans/IndexedPropertyChangeEvent.java Tue Jan 11 19:46:05 2011 *************** public class IndexedPropertyChangeEvent *** 71,77 **** } /** ! * Return the index of the changed property. * @return the index */ public int getIndex() --- 71,77 ---- } /** ! * Return the index of the changed property. * @return the index */ public int getIndex() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/IndexedPropertyDescriptor.java gcc-4.6.0/libjava/classpath/java/beans/IndexedPropertyDescriptor.java *** gcc-4.5.2/libjava/classpath/java/beans/IndexedPropertyDescriptor.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/IndexedPropertyDescriptor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class IndexedPropertyDescriptor e *** 175,181 **** * Create a new PropertyDescriptor using explicit Methods. * Note that the methods will be checked for conformance to standard * Property method rules, as described above at the top of this class. ! * * @param name the programmatic name of the property, usually * starting with a lowercase letter (e.g. fooManChu * instead of FooManChu). --- 175,181 ---- * Create a new PropertyDescriptor using explicit Methods. * Note that the methods will be checked for conformance to standard * Property method rules, as described above at the top of this class. ! * * @param name the programmatic name of the property, usually * starting with a lowercase letter (e.g. fooManChu * instead of FooManChu). diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/Introspector.java gcc-4.6.0/libjava/classpath/java/beans/Introspector.java *** gcc-4.5.2/libjava/classpath/java/beans/Introspector.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/Introspector.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Vector; *** 94,100 **** * * * Properties:

    ! * *

      *
    1. If there is a public boolean isXXX() * method, then XXX is a read-only boolean property. --- 94,100 ---- * * * Properties:

      ! * *

        *
      1. If there is a public boolean isXXX() * method, then XXX is a read-only boolean property. *************** import java.util.Vector; *** 167,173 **** * not the case in general.

        * * Methods:

        ! * * Any public methods (including those which were used * for Properties or Events) are used as Methods. * --- 167,173 ---- * not the case in general.

        * * Methods:

        ! * * Any public methods (including those which were used * for Properties or Events) are used as Methods. * *************** import java.util.Vector; *** 176,193 **** * @see java.beans.BeanInfo */ public class Introspector { ! public static final int USE_ALL_BEANINFO = 1; public static final int IGNORE_IMMEDIATE_BEANINFO = 2; public static final int IGNORE_ALL_BEANINFO = 3; static String[] beanInfoSearchPath = {"gnu.java.beans.info"}; ! static Hashtable,BeanInfo> beanInfoCache = new Hashtable,BeanInfo>(); ! private Introspector() {} ! ! /** * Get the BeanInfo for class beanClass, * first by looking for explicit information, next by * using standard design patterns to determine --- 176,193 ---- * @see java.beans.BeanInfo */ public class Introspector { ! public static final int USE_ALL_BEANINFO = 1; public static final int IGNORE_IMMEDIATE_BEANINFO = 2; public static final int IGNORE_ALL_BEANINFO = 3; static String[] beanInfoSearchPath = {"gnu.java.beans.info"}; ! static Hashtable,BeanInfo> beanInfoCache = new Hashtable,BeanInfo>(); ! private Introspector() {} ! ! /** * Get the BeanInfo for class beanClass, * first by looking for explicit information, next by * using standard design patterns to determine *************** public class Introspector { *** 196,227 **** * @param beanClass the class to get BeanInfo about. * @return the BeanInfo object representing the class. */ ! public static BeanInfo getBeanInfo(Class beanClass) ! throws IntrospectionException { BeanInfo cachedInfo; ! synchronized(beanClass) { ! cachedInfo = beanInfoCache.get(beanClass); ! if(cachedInfo != null) ! { ! return cachedInfo; ! } ! cachedInfo = getBeanInfo(beanClass,null); ! beanInfoCache.put(beanClass,cachedInfo); ! return cachedInfo; } } ! /** * Returns a {@BeanInfo} instance for the given Bean class where a flag * controls the usage of explicit BeanInfo class to retrieve that * information. ! * *

        You have three options:

        *

        With {@link #USE_ALL_BEANINFO} the result is the same as * {@link #getBeanInfo(Class)}.

        ! * *

        Calling the method with flag set to * {@link #IGNORE_IMMEDIATE_BEANINFO} will let it use all * explicit BeanInfo classes for the beans superclasses --- 196,227 ---- * @param beanClass the class to get BeanInfo about. * @return the BeanInfo object representing the class. */ ! public static BeanInfo getBeanInfo(Class beanClass) ! throws IntrospectionException { BeanInfo cachedInfo; ! synchronized(beanClass) { ! cachedInfo = beanInfoCache.get(beanClass); ! if(cachedInfo != null) ! { ! return cachedInfo; ! } ! cachedInfo = getBeanInfo(beanClass,null); ! beanInfoCache.put(beanClass,cachedInfo); ! return cachedInfo; } } ! /** * Returns a {@BeanInfo} instance for the given Bean class where a flag * controls the usage of explicit BeanInfo class to retrieve that * information. ! * *

        You have three options:

        *

        With {@link #USE_ALL_BEANINFO} the result is the same as * {@link #getBeanInfo(Class)}.

        ! * *

        Calling the method with flag set to * {@link #IGNORE_IMMEDIATE_BEANINFO} will let it use all * explicit BeanInfo classes for the beans superclasses *************** public class Introspector { *** 232,248 **** * {@link BeanInfo.getEventSetDescriptors} and * {@link BeanInfo.getPropertyDescriptors}.) *

        ! * *

        When the method is called with flag ! * *

        Note: Any unknown value for flag is interpreted * as {@link #IGNORE_ALL_BEANINFO}

        . ! * * @param beanClass The class whose BeanInfo should be returned. * @param flag Controls the usage of explicit BeanInfo classes. ! * @return A BeanInfo object describing the class. * @throws IntrospectionException If something goes wrong while retrieving * the bean data. */ --- 232,248 ---- * {@link BeanInfo.getEventSetDescriptors} and * {@link BeanInfo.getPropertyDescriptors}.) *

        ! * *

        When the method is called with flag ! * *

        Note: Any unknown value for flag is interpreted * as {@link #IGNORE_ALL_BEANINFO}

        . ! * * @param beanClass The class whose BeanInfo should be returned. * @param flag Controls the usage of explicit BeanInfo classes. ! * @return A BeanInfo object describing the class. * @throws IntrospectionException If something goes wrong while retrieving * the bean data. */ *************** public class Introspector { *** 251,257 **** { IntrospectionIncubator ii; BeanInfoEmbryo infoEmbryo; ! switch(flag) { case USE_ALL_BEANINFO: --- 251,257 ---- { IntrospectionIncubator ii; BeanInfoEmbryo infoEmbryo; ! switch(flag) { case USE_ALL_BEANINFO: *************** public class Introspector { *** 259,282 **** case IGNORE_IMMEDIATE_BEANINFO: Class superclass = beanClass.getSuperclass(); ExplicitInfo explicit = new ExplicitInfo(superclass, null); ! ii = new IntrospectionIncubator(); if (explicit.explicitEventSetDescriptors != null) ii.setEventStopClass(superclass); ! if (explicit.explicitMethodDescriptors != null) ii.setMethodStopClass(superclass); ! if (explicit.explicitPropertyDescriptors != null) ii.setPropertyStopClass(superclass); ! ii.addMethods(beanClass.getMethods()); infoEmbryo = ii.getBeanInfoEmbryo(); merge(infoEmbryo, explicit); infoEmbryo.setBeanDescriptor(new BeanDescriptor(beanClass, null)); ! return infoEmbryo.getBeanInfo(); case IGNORE_ALL_BEANINFO: default: --- 259,282 ---- case IGNORE_IMMEDIATE_BEANINFO: Class superclass = beanClass.getSuperclass(); ExplicitInfo explicit = new ExplicitInfo(superclass, null); ! ii = new IntrospectionIncubator(); if (explicit.explicitEventSetDescriptors != null) ii.setEventStopClass(superclass); ! if (explicit.explicitMethodDescriptors != null) ii.setMethodStopClass(superclass); ! if (explicit.explicitPropertyDescriptors != null) ii.setPropertyStopClass(superclass); ! ii.addMethods(beanClass.getMethods()); infoEmbryo = ii.getBeanInfoEmbryo(); merge(infoEmbryo, explicit); infoEmbryo.setBeanDescriptor(new BeanDescriptor(beanClass, null)); ! return infoEmbryo.getBeanInfo(); case IGNORE_ALL_BEANINFO: default: *************** public class Introspector { *** 284,290 **** ii.addMethods(beanClass.getMethods()); infoEmbryo = ii.getBeanInfoEmbryo(); infoEmbryo.setBeanDescriptor(new BeanDescriptor(beanClass, null)); ! return infoEmbryo.getBeanInfo(); } } --- 284,290 ---- ii.addMethods(beanClass.getMethods()); infoEmbryo = ii.getBeanInfoEmbryo(); infoEmbryo.setBeanDescriptor(new BeanDescriptor(beanClass, null)); ! return infoEmbryo.getBeanInfo(); } } *************** public class Introspector { *** 298,308 **** { beanInfoCache.clear(); ! // Clears all the intermediate ExplicitInfo instances which ! // have been created. ! // This makes sure we have to retrieve stuff like BeanDescriptors ! // again. (Remember that FeatureDescriptor can be modified by the user.) ! ExplicitInfo.flushCaches(); } /** --- 298,308 ---- { beanInfoCache.clear(); ! // Clears all the intermediate ExplicitInfo instances which ! // have been created. ! // This makes sure we have to retrieve stuff like BeanDescriptors ! // again. (Remember that FeatureDescriptor can be modified by the user.) ! ExplicitInfo.flushCaches(); } /** *************** public class Introspector { *** 317,378 **** { synchronized (clz) { ! beanInfoCache.remove(clz); } } /** Adds all explicity given bean info data to the introspected * data. ! * * @param infoEmbryo Bean info data retrieved by introspection. * @param explicit Bean info data retrieved by BeanInfo classes. */ private static void merge(BeanInfoEmbryo infoEmbryo, ExplicitInfo explicit) { PropertyDescriptor[] p = explicit.explicitPropertyDescriptors; ! if(p!=null) { ! for(int i=0;i -1) { infoEmbryo.setDefaultPropertyName(p[explicit.defaultProperty].getName()); } } EventSetDescriptor[] e = explicit.explicitEventSetDescriptors; ! if(e!=null) { ! for(int i=0;i -1) { infoEmbryo.setDefaultEventName(e[explicit.defaultEvent].getName()); } } MethodDescriptor[] m = explicit.explicitMethodDescriptors; ! if(m!=null) { ! for(int i=0;i -1) { infoEmbryo.setDefaultPropertyName(p[explicit.defaultProperty].getName()); } } EventSetDescriptor[] e = explicit.explicitEventSetDescriptors; ! if(e!=null) { ! for(int i=0;i -1) { infoEmbryo.setDefaultEventName(e[explicit.defaultEvent].getName()); } } MethodDescriptor[] m = explicit.explicitMethodDescriptors; ! if(m!=null) { ! for(int i=0;ibeanClass, * first by looking for explicit information, next by * using standard design patterns to determine --- 381,390 ---- infoEmbryo.setAdditionalBeanInfo(explicit.explicitBeanInfo); infoEmbryo.setIcons(explicit.im); ! } ! ! /** * Get the BeanInfo for class beanClass, * first by looking for explicit information, next by * using standard design patterns to determine *************** public class Introspector { *** 395,402 **** * @param stopClass the class to stop at. * @return the BeanInfo object representing the class. */ ! public static BeanInfo getBeanInfo(Class beanClass, Class stopClass) ! throws IntrospectionException { ExplicitInfo explicit = new ExplicitInfo(beanClass, stopClass); --- 395,402 ---- * @param stopClass the class to stop at. * @return the BeanInfo object representing the class. */ ! public static BeanInfo getBeanInfo(Class beanClass, Class stopClass) ! throws IntrospectionException { ExplicitInfo explicit = new ExplicitInfo(beanClass, stopClass); *************** public class Introspector { *** 405,415 **** ii.setEventStopClass(explicit.eventStopClass); ii.setMethodStopClass(explicit.methodStopClass); ii.addMethods(beanClass.getMethods()); ! BeanInfoEmbryo currentInfo = ii.getBeanInfoEmbryo(); ! merge(currentInfo, explicit); ! // Sets the info's BeanDescriptor to the one we extracted from the // explicit BeanInfo instance(s) if they contained one. Otherwise we // create the BeanDescriptor from scratch. --- 405,415 ---- ii.setEventStopClass(explicit.eventStopClass); ii.setMethodStopClass(explicit.methodStopClass); ii.addMethods(beanClass.getMethods()); ! BeanInfoEmbryo currentInfo = ii.getBeanInfoEmbryo(); ! merge(currentInfo, explicit); ! // Sets the info's BeanDescriptor to the one we extracted from the // explicit BeanInfo instance(s) if they contained one. Otherwise we // create the BeanDescriptor from scratch. *************** public class Introspector { *** 417,449 **** // the user to modify the instance while it is cached. However this is how // the RI does it. currentInfo.setBeanDescriptor( ! (explicit.explicitBeanDescriptor == null ? new BeanDescriptor(beanClass, null) : ! explicit.explicitBeanDescriptor)); return currentInfo.getBeanInfo(); } ! ! /** * Get the search path for BeanInfo classes. * * @return the BeanInfo search path. */ ! public static String[] getBeanInfoSearchPath() { return beanInfoSearchPath; } ! ! /** * Set the search path for BeanInfo classes. * @param beanInfoSearchPath the new BeanInfo search * path. */ ! public static void setBeanInfoSearchPath(String[] beanInfoSearchPath) { Introspector.beanInfoSearchPath = beanInfoSearchPath; } ! ! /** * A helper method to convert a name to standard Java * naming conventions: anything with two capitals as the * first two letters remains the same, otherwise the --- 417,449 ---- // the user to modify the instance while it is cached. However this is how // the RI does it. currentInfo.setBeanDescriptor( ! (explicit.explicitBeanDescriptor == null ? new BeanDescriptor(beanClass, null) : ! explicit.explicitBeanDescriptor)); return currentInfo.getBeanInfo(); } ! ! /** * Get the search path for BeanInfo classes. * * @return the BeanInfo search path. */ ! public static String[] getBeanInfoSearchPath() { return beanInfoSearchPath; } ! ! /** * Set the search path for BeanInfo classes. * @param beanInfoSearchPath the new BeanInfo search * path. */ ! public static void setBeanInfoSearchPath(String[] beanInfoSearchPath) { Introspector.beanInfoSearchPath = beanInfoSearchPath; } ! ! /** * A helper method to convert a name to standard Java * naming conventions: anything with two capitals as the * first two letters remains the same, otherwise the *************** public class Introspector { *** 453,532 **** * @param name the name to decapitalize. * @return the decapitalized name. */ ! public static String decapitalize(String name) { ! try { ! if(!Character.isUpperCase(name.charAt(0))) ! { ! return name; ! } ! else ! { ! try ! { ! if(Character.isUpperCase(name.charAt(1))) ! { ! return name; ! } ! else ! { ! char[] c = name.toCharArray(); ! c[0] = Character.toLowerCase(c[0]); ! return new String(c); ! } ! } ! catch(StringIndexOutOfBoundsException E) ! { ! char[] c = new char[1]; ! c[0] = Character.toLowerCase(name.charAt(0)); ! return new String(c); ! } ! } ! } ! catch(StringIndexOutOfBoundsException E) { ! return name; ! } ! catch(NullPointerException E) { ! return null; } } ! static BeanInfo copyBeanInfo(BeanInfo b) { java.awt.Image[] icons = new java.awt.Image[4]; ! for(int i=1;i<=4;i++) { ! icons[i-1] = b.getIcon(i); } return new ExplicitBeanInfo(b.getBeanDescriptor(), ! b.getAdditionalBeanInfo(), ! b.getPropertyDescriptors(), ! b.getDefaultPropertyIndex(), ! b.getEventSetDescriptors(), ! b.getDefaultEventIndex(), ! b.getMethodDescriptors(), ! icons); } } ! class ExplicitInfo { BeanDescriptor explicitBeanDescriptor; BeanInfo[] explicitBeanInfo; ! PropertyDescriptor[] explicitPropertyDescriptors; EventSetDescriptor[] explicitEventSetDescriptors; MethodDescriptor[] explicitMethodDescriptors; ! int defaultProperty; int defaultEvent; ! java.awt.Image[] im = new java.awt.Image[4]; ! Class propertyStopClass; Class eventStopClass; Class methodStopClass; --- 453,532 ---- * @param name the name to decapitalize. * @return the decapitalized name. */ ! public static String decapitalize(String name) { ! try { ! if(!Character.isUpperCase(name.charAt(0))) ! { ! return name; ! } ! else ! { ! try ! { ! if(Character.isUpperCase(name.charAt(1))) ! { ! return name; ! } ! else ! { ! char[] c = name.toCharArray(); ! c[0] = Character.toLowerCase(c[0]); ! return new String(c); ! } ! } ! catch(StringIndexOutOfBoundsException E) ! { ! char[] c = new char[1]; ! c[0] = Character.toLowerCase(name.charAt(0)); ! return new String(c); ! } ! } ! } ! catch(StringIndexOutOfBoundsException E) { ! return name; ! } ! catch(NullPointerException E) { ! return null; } } ! static BeanInfo copyBeanInfo(BeanInfo b) { java.awt.Image[] icons = new java.awt.Image[4]; ! for(int i=1;i<=4;i++) { ! icons[i-1] = b.getIcon(i); } return new ExplicitBeanInfo(b.getBeanDescriptor(), ! b.getAdditionalBeanInfo(), ! b.getPropertyDescriptors(), ! b.getDefaultPropertyIndex(), ! b.getEventSetDescriptors(), ! b.getDefaultEventIndex(), ! b.getMethodDescriptors(), ! icons); } } ! class ExplicitInfo { BeanDescriptor explicitBeanDescriptor; BeanInfo[] explicitBeanInfo; ! PropertyDescriptor[] explicitPropertyDescriptors; EventSetDescriptor[] explicitEventSetDescriptors; MethodDescriptor[] explicitMethodDescriptors; ! int defaultProperty; int defaultEvent; ! java.awt.Image[] im = new java.awt.Image[4]; ! Class propertyStopClass; Class eventStopClass; Class methodStopClass; *************** class ExplicitInfo *** 534,652 **** static Hashtable explicitBeanInfos = new Hashtable(); static Vector emptyBeanInfos = new Vector(); ! ExplicitInfo(Class beanClass, Class stopClass) { ! while(beanClass != null && !beanClass.equals(stopClass)) { ! BeanInfo explicit = findExplicitBeanInfo(beanClass); ! - if(explicit != null) - { ! if(explicitBeanDescriptor == null) ! { ! explicitBeanDescriptor = explicit.getBeanDescriptor(); ! } ! if(explicitBeanInfo == null) ! { ! explicitBeanInfo = explicit.getAdditionalBeanInfo(); ! } ! if(explicitPropertyDescriptors == null) ! { ! if(explicit.getPropertyDescriptors() != null) ! { ! explicitPropertyDescriptors = explicit.getPropertyDescriptors(); ! defaultProperty = explicit.getDefaultPropertyIndex(); ! propertyStopClass = beanClass; ! } ! } ! if(explicitEventSetDescriptors == null) ! { ! if(explicit.getEventSetDescriptors() != null) ! { ! explicitEventSetDescriptors = explicit.getEventSetDescriptors(); ! defaultEvent = explicit.getDefaultEventIndex(); ! eventStopClass = beanClass; ! } ! } ! if(explicitMethodDescriptors == null) ! { ! if(explicit.getMethodDescriptors() != null) ! { ! explicitMethodDescriptors = explicit.getMethodDescriptors(); ! methodStopClass = beanClass; ! } ! } ! if(im[0] == null && im[1] == null ! && im[2] == null && im[3] == null) ! { ! im[0] = explicit.getIcon(0); ! im[1] = explicit.getIcon(1); ! im[2] = explicit.getIcon(2); ! im[3] = explicit.getIcon(3); ! } ! } ! beanClass = beanClass.getSuperclass(); } ! if(propertyStopClass == null) { ! propertyStopClass = stopClass; } ! if(eventStopClass == null) { ! eventStopClass = stopClass; } ! if(methodStopClass == null) { ! methodStopClass = stopClass; } } ! /** Throws away all cached data and makes sure we re-instantiate things * like BeanDescriptors again. */ static void flushCaches() { ! explicitBeanInfos.clear(); ! emptyBeanInfos.clear(); } ! ! static BeanInfo findExplicitBeanInfo(Class beanClass) { BeanInfo retval = (BeanInfo)explicitBeanInfos.get(beanClass); ! if(retval != null) { ! return retval; ! } ! else if(emptyBeanInfos.indexOf(beanClass) != -1) { ! return null; ! } ! else { ! retval = reallyFindExplicitBeanInfo(beanClass); ! if(retval != null) ! { ! explicitBeanInfos.put(beanClass,retval); ! } ! else ! { ! emptyBeanInfos.addElement(beanClass); ! } ! return retval; } } ! ! static BeanInfo reallyFindExplicitBeanInfo(Class beanClass) { ClassLoader beanClassLoader = beanClass.getClassLoader(); BeanInfo beanInfo; --- 534,652 ---- static Hashtable explicitBeanInfos = new Hashtable(); static Vector emptyBeanInfos = new Vector(); ! ExplicitInfo(Class beanClass, Class stopClass) { ! while(beanClass != null && !beanClass.equals(stopClass)) { ! BeanInfo explicit = findExplicitBeanInfo(beanClass); ! if(explicit != null) ! { ! if(explicitBeanDescriptor == null) ! { ! explicitBeanDescriptor = explicit.getBeanDescriptor(); ! } ! if(explicitBeanInfo == null) ! { ! explicitBeanInfo = explicit.getAdditionalBeanInfo(); ! } ! if(explicitPropertyDescriptors == null) ! { ! if(explicit.getPropertyDescriptors() != null) ! { ! explicitPropertyDescriptors = explicit.getPropertyDescriptors(); ! defaultProperty = explicit.getDefaultPropertyIndex(); ! propertyStopClass = beanClass; ! } ! } ! if(explicitEventSetDescriptors == null) ! { ! if(explicit.getEventSetDescriptors() != null) ! { ! explicitEventSetDescriptors = explicit.getEventSetDescriptors(); ! defaultEvent = explicit.getDefaultEventIndex(); ! eventStopClass = beanClass; ! } ! } ! if(explicitMethodDescriptors == null) ! { ! if(explicit.getMethodDescriptors() != null) ! { ! explicitMethodDescriptors = explicit.getMethodDescriptors(); ! methodStopClass = beanClass; ! } ! } ! ! if(im[0] == null && im[1] == null ! && im[2] == null && im[3] == null) ! { ! im[0] = explicit.getIcon(0); ! im[1] = explicit.getIcon(1); ! im[2] = explicit.getIcon(2); ! im[3] = explicit.getIcon(3); ! } ! } ! beanClass = beanClass.getSuperclass(); } ! if(propertyStopClass == null) { ! propertyStopClass = stopClass; } ! if(eventStopClass == null) { ! eventStopClass = stopClass; } ! if(methodStopClass == null) { ! methodStopClass = stopClass; } } ! /** Throws away all cached data and makes sure we re-instantiate things * like BeanDescriptors again. */ static void flushCaches() { ! explicitBeanInfos.clear(); ! emptyBeanInfos.clear(); } ! ! static BeanInfo findExplicitBeanInfo(Class beanClass) { BeanInfo retval = (BeanInfo)explicitBeanInfos.get(beanClass); ! if(retval != null) { ! return retval; ! } ! else if(emptyBeanInfos.indexOf(beanClass) != -1) { ! return null; ! } ! else { ! retval = reallyFindExplicitBeanInfo(beanClass); ! if(retval != null) ! { ! explicitBeanInfos.put(beanClass,retval); ! } ! else ! { ! emptyBeanInfos.addElement(beanClass); ! } ! return retval; } } ! ! static BeanInfo reallyFindExplicitBeanInfo(Class beanClass) { ClassLoader beanClassLoader = beanClass.getClassLoader(); BeanInfo beanInfo; *************** class ExplicitInfo *** 654,678 **** beanInfo = getBeanInfo(beanClassLoader, beanClass.getName() + "BeanInfo"); if (beanInfo == null) { ! String newName; ! newName = ClassHelper.getTruncatedClassName(beanClass) + "BeanInfo"; ! for(int i = 0; i < Introspector.beanInfoSearchPath.length; i++) ! { ! if (Introspector.beanInfoSearchPath[i].equals("")) ! beanInfo = getBeanInfo(beanClassLoader, newName); ! else ! beanInfo = getBeanInfo(beanClassLoader, ! Introspector.beanInfoSearchPath[i] + "." ! + newName); ! // Returns the beanInfo if it exists and the described class matches ! // the one we searched. ! if (beanInfo != null && beanInfo.getBeanDescriptor() != null && ! beanInfo.getBeanDescriptor().getBeanClass() == beanClass) ! return beanInfo; ! } } return beanInfo; --- 654,678 ---- beanInfo = getBeanInfo(beanClassLoader, beanClass.getName() + "BeanInfo"); if (beanInfo == null) { ! String newName; ! newName = ClassHelper.getTruncatedClassName(beanClass) + "BeanInfo"; ! for(int i = 0; i < Introspector.beanInfoSearchPath.length; i++) ! { ! if (Introspector.beanInfoSearchPath[i].equals("")) ! beanInfo = getBeanInfo(beanClassLoader, newName); ! else ! beanInfo = getBeanInfo(beanClassLoader, ! Introspector.beanInfoSearchPath[i] + "." ! + newName); ! // Returns the beanInfo if it exists and the described class matches ! // the one we searched. ! if (beanInfo != null && beanInfo.getBeanDescriptor() != null && ! beanInfo.getBeanDescriptor().getBeanClass() == beanClass) ! return beanInfo; ! } } return beanInfo; *************** class ExplicitInfo *** 686,705 **** { try { ! return (BeanInfo) Class.forName(infoName, true, cl).newInstance(); } catch (ClassNotFoundException cnfe) { ! return null; } catch (IllegalAccessException iae) { ! return null; } catch (InstantiationException ie) { ! return null; } } ! } --- 686,705 ---- { try { ! return (BeanInfo) Class.forName(infoName, true, cl).newInstance(); } catch (ClassNotFoundException cnfe) { ! return null; } catch (IllegalAccessException iae) { ! return null; } catch (InstantiationException ie) { ! return null; } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/MethodDescriptor.java gcc-4.6.0/libjava/classpath/java/beans/MethodDescriptor.java *** gcc-4.5.2/libjava/classpath/java/beans/MethodDescriptor.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/MethodDescriptor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.lang.reflect.Method; *** 49,88 **** ** @version 1.1.0, 26 Jul 1998 **/ public class MethodDescriptor extends FeatureDescriptor { ! private Method m; ! private ParameterDescriptor[] parameterDescriptors; ! /** Create a new MethodDescriptor. ! ** This method sets the name to the name of the method (Method.getName()). ! ** @param m the method it will represent. ! **/ ! public MethodDescriptor(Method m) { ! setName(m.getName()); ! this.m = m; ! } ! /** Create a new MethodDescriptor. ! ** This method sets the name to the name of the method (Method.getName()). ! ** @param m the method it will represent. ! ** @param parameterDescriptors descriptions of the parameters (especially names). ! **/ ! public MethodDescriptor(Method m, ParameterDescriptor[] parameterDescriptors) { ! setName(m.getName()); ! this.m = m; ! this.parameterDescriptors = parameterDescriptors; ! } ! /** Get the parameter descriptors from this method. ! ** Since MethodDescriptor has no way of determining what ! ** the parameter names were, this defaults to null. ! **/ ! public ParameterDescriptor[] getParameterDescriptors() { ! return parameterDescriptors; ! } ! /** Get the method this MethodDescriptor represents. **/ ! public Method getMethod() { ! return m; ! } } - --- 49,87 ---- ** @version 1.1.0, 26 Jul 1998 **/ public class MethodDescriptor extends FeatureDescriptor { ! private Method m; ! private ParameterDescriptor[] parameterDescriptors; ! /** Create a new MethodDescriptor. ! ** This method sets the name to the name of the method (Method.getName()). ! ** @param m the method it will represent. ! **/ ! public MethodDescriptor(Method m) { ! setName(m.getName()); ! this.m = m; ! } ! /** Create a new MethodDescriptor. ! ** This method sets the name to the name of the method (Method.getName()). ! ** @param m the method it will represent. ! ** @param parameterDescriptors descriptions of the parameters (especially names). ! **/ ! public MethodDescriptor(Method m, ParameterDescriptor[] parameterDescriptors) { ! setName(m.getName()); ! this.m = m; ! this.parameterDescriptors = parameterDescriptors; ! } ! /** Get the parameter descriptors from this method. ! ** Since MethodDescriptor has no way of determining what ! ** the parameter names were, this defaults to null. ! **/ ! public ParameterDescriptor[] getParameterDescriptors() { ! return parameterDescriptors; ! } ! /** Get the method this MethodDescriptor represents. **/ ! public Method getMethod() { ! return m; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/ParameterDescriptor.java gcc-4.6.0/libjava/classpath/java/beans/ParameterDescriptor.java *** gcc-4.5.2/libjava/classpath/java/beans/ParameterDescriptor.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/ParameterDescriptor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 48,52 **** ** @version 1.1.0, 26 Jul 1998 **/ public class ParameterDescriptor extends FeatureDescriptor { ! } --- 48,52 ---- ** @version 1.1.0, 26 Jul 1998 **/ public class ParameterDescriptor extends FeatureDescriptor { ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/PersistenceDelegate.java gcc-4.6.0/libjava/classpath/java/beans/PersistenceDelegate.java *** gcc-4.5.2/libjava/classpath/java/beans/PersistenceDelegate.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/PersistenceDelegate.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 40,51 **** /**

        A PersistenceDelegate describes how a another object * has to constructed and transformed in order to create a complete * replicate.

        ! * *

        For custom classes you will need to implement * PersistenceDelegate in a way that is suitable for them. * To make use of the implementation you have to register it with an * {@link Encoder} using the {Encoder#setPersistenceDelegate} method.

        ! * * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ --- 40,51 ---- /**

        A PersistenceDelegate describes how a another object * has to constructed and transformed in order to create a complete * replicate.

        ! * *

        For custom classes you will need to implement * PersistenceDelegate in a way that is suitable for them. * To make use of the implementation you have to register it with an * {@link Encoder} using the {Encoder#setPersistenceDelegate} method.

        ! * * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ *************** public abstract class PersistenceDelegat *** 60,66 **** type = type.getSuperclass(); PersistenceDelegate pd = out.getPersistenceDelegate(type); ! pd.initialize(type, oldInstance, newInstance, out); } } --- 60,66 ---- type = type.getSuperclass(); PersistenceDelegate pd = out.getPersistenceDelegate(type); ! pd.initialize(type, oldInstance, newInstance, out); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/PropertyChangeSupport.java gcc-4.6.0/libjava/classpath/java/beans/PropertyChangeSupport.java *** gcc-4.5.2/libjava/classpath/java/beans/PropertyChangeSupport.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/beans/PropertyChangeSupport.java Tue Jan 11 19:46:05 2011 *************** public class PropertyChangeSupport imple *** 404,410 **** /** * Fire an indexed property change event. This will only fire ! * an event if the old and new values are not equal and not null. * @param name the name of the property which changed * @param index the index of the property which changed * @param oldValue the old value of the property --- 404,410 ---- /** * Fire an indexed property change event. This will only fire ! * an event if the old and new values are not equal and not null. * @param name the name of the property which changed * @param index the index of the property which changed * @param oldValue the old value of the property diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/PropertyDescriptor.java gcc-4.6.0/libjava/classpath/java/beans/PropertyDescriptor.java *** gcc-4.5.2/libjava/classpath/java/beans/PropertyDescriptor.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/PropertyDescriptor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class PropertyDescriptor extends *** 100,106 **** ** starting with a lowercase letter (e.g. fooManChu ** instead of FooManChu). ** @param beanClass the class the get and set methods live in. ! ** @exception IntrospectionException if the methods are not found ** or invalid. **/ public PropertyDescriptor(String name, Class beanClass) --- 100,106 ---- ** starting with a lowercase letter (e.g. fooManChu ** instead of FooManChu). ** @param beanClass the class the get and set methods live in. ! ** @exception IntrospectionException if the methods are not found ** or invalid. **/ public PropertyDescriptor(String name, Class beanClass) *************** public class PropertyDescriptor extends *** 126,132 **** "Cannot find a " + caps + " method"); } ! // finally check the methods compatibility propertyType = checkMethods(getMethod, setMethod); } --- 126,132 ---- "Cannot find a " + caps + " method"); } ! // finally check the methods compatibility propertyType = checkMethods(getMethod, setMethod); } *************** public class PropertyDescriptor extends *** 154,160 **** ** @param beanClass the class the get and set methods live in. ** @param getMethodName the name of the get method or null if the property is write-only. ** @param setMethodName the name of the set method or null if the property is read-only. ! ** @exception IntrospectionException if the methods are not found ** or invalid. **/ public PropertyDescriptor( --- 154,160 ---- ** @param beanClass the class the get and set methods live in. ** @param getMethodName the name of the get method or null if the property is write-only. ** @param setMethodName the name of the set method or null if the property is read-only. ! ** @exception IntrospectionException if the methods are not found ** or invalid. **/ public PropertyDescriptor( *************** public class PropertyDescriptor extends *** 188,200 **** **
        ** It is possible to call this method with both Method arguments ** being null. In such a case the property type is null. ! ** ** @param name the programmatic name of the property, usually ** starting with a lowercase letter (e.g. fooManChu ** instead of FooManChu). ** @param readMethod the read method or null if the property is write-only. ** @param writeMethod the write method or null if the property is read-only. ! ** @exception IntrospectionException if the methods are not found ** or invalid. **/ public PropertyDescriptor( --- 188,200 ---- **
        ** It is possible to call this method with both Method arguments ** being null. In such a case the property type is null. ! ** ** @param name the programmatic name of the property, usually ** starting with a lowercase letter (e.g. fooManChu ** instead of FooManChu). ** @param readMethod the read method or null if the property is write-only. ** @param writeMethod the write method or null if the property is read-only. ! ** @exception IntrospectionException if the methods are not found ** or invalid. **/ public PropertyDescriptor( *************** public class PropertyDescriptor extends *** 234,240 **** *
        * It is legal to set the read and the write method to null * or provide method which have been declared in distinct classes. ! * * @param readMethod The new method to be used or null. * @throws IntrospectionException If the given method is invalid. * @since 1.2 --- 234,240 ---- *
        * It is legal to set the read and the write method to null * or provide method which have been declared in distinct classes. ! * * @param readMethod The new method to be used or null. * @throws IntrospectionException If the given method is invalid. * @since 1.2 *************** public class PropertyDescriptor extends *** 262,268 **** *
        * It is legal to set the read and the write method to null * or provide method which have been declared in distinct classes. ! * * @param writeMethod The new method to be used or null. * @throws IntrospectionException If the given method is invalid. * @since 1.2 --- 262,268 ---- *
        * It is legal to set the read and the write method to null * or provide method which have been declared in distinct classes. ! * * @param writeMethod The new method to be used or null. * @throws IntrospectionException If the given method is invalid. * @since 1.2 *************** public class PropertyDescriptor extends *** 338,344 **** /** Set the PropertyEditor class. If the class does not implement ** the PropertyEditor interface, you will likely get an exception ** late in the game. ! ** @param propertyEditorClass the PropertyEditor class for this ** class to use. **/ public void setPropertyEditorClass(Class propertyEditorClass) --- 338,344 ---- /** Set the PropertyEditor class. If the class does not implement ** the PropertyEditor interface, you will likely get an exception ** late in the game. ! ** @param propertyEditorClass the PropertyEditor class for this ** class to use. **/ public void setPropertyEditorClass(Class propertyEditorClass) *************** public class PropertyDescriptor extends *** 510,516 **** *
        * For compatibility this has to be noted:
        * The two methods are allowed to be defined in two distinct classes and may both be null. ! * * @param readMethod The new read method to check. * @param writeMethod The new write method to check. * @return The common property type of the two method. --- 510,516 ---- *
        * For compatibility this has to be noted:
        * The two methods are allowed to be defined in two distinct classes and may both be null. ! * * @param readMethod The new read method to check. * @param writeMethod The new write method to check. * @return The common property type of the two method. *************** public class PropertyDescriptor extends *** 566,572 **** } /* note: the check whether both method are defined in related classes makes sense but is not ! * done in the JDK. * I leave this code here in case someone at Sun decides to add that functionality in later versions (rschuster) if ((!readMethod .getDeclaringClass() --- 566,572 ---- } /* note: the check whether both method are defined in related classes makes sense but is not ! * done in the JDK. * I leave this code here in case someone at Sun decides to add that functionality in later versions (rschuster) if ((!readMethod .getDeclaringClass() *************** public class PropertyDescriptor extends *** 659,665 **** { return false; } ! } } --- 659,665 ---- { return false; } ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/PropertyEditor.java gcc-4.6.0/libjava/classpath/java/beans/PropertyEditor.java *** gcc-4.5.2/libjava/classpath/java/beans/PropertyEditor.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/PropertyEditor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 109,209 **** **/ public interface PropertyEditor { ! /** Called by the RAD tool to set the value of this property for the PropertyEditor. ! ** If the property type is native, it should be wrapped in the appropriate ! ** wrapper type. ! ** @param value the value to set this property to. ! **/ ! void setValue(Object value); ! /** Accessor method to get the current value the PropertyEditor is working with. ! ** If the property type is native, it will be wrapped in the appropriate ! ** wrapper type. ! ** @return the current value of the PropertyEditor. ! **/ ! Object getValue(); ! /** Set the value of this property using a String. ! ** Whether or not this PropertyEditor is editing a String type, this converts ! ** the String into the type of the PropertyEditor. ! ** @param text the text to set it to. ! ** @exception IllegalArgumentException if the String is in the wrong format or setAsText() is not supported. ! **/ ! void setAsText(String text) throws IllegalArgumentException; ! /** Get the value of this property in String format. ! ** Many times this can simply use Object.toString().

        ! ** Return null if you do not support getAsText()/setAsText(). ! ** setAsText(getAsText()) should be valid; i.e. the stuff you spit out in ! ** getAsText() should be able to go into setAsText(). ! ** @return the value of this property in String format. ! **/ ! String getAsText(); ! /** Get a list of possible Strings which this property type can have. ! ** The value of these will be used by the RAD tool to construct some sort ! ** of list box or to check text box input, and the resulting String passed ! ** to setAsText() should be one of these. Note, however, that like most things ! ** with this mammoth, unwieldy interface, this is not guaranteed. Thus, you ! ** must check the value in setAsText() anyway. ! ** @return the list of possible String values for this property type. ! **/ ! String[] getTags(); ! /** The RAD tool calls this to find out whether the PropertyEditor can paint itself. ! ** @return true if it can paint itself graphically, false if it cannot. ! **/ ! boolean isPaintable(); ! /** The RAD tool calls this to paint the actual value of the property. ! ** The Graphics context will have the same current font, color, etc. as the ! ** parent Container. You may safely change the font, color, etc. and not ! ** change them back.

        ! ** This method should do a silent no-op if isPaintable() is false. ! ** @param g the Graphics context to paint on ! ** @param bounds the rectangle you have reserved to work in ! **/ ! void paintValue(java.awt.Graphics g, java.awt.Rectangle bounds); ! /** The RAD tool calls this to find out whether the PropertyEditor supports a custom component to edit and display itself. ! ** @return true if getCustomEditor() will return a component, false if not. ! **/ ! boolean supportsCustomEditor(); ! /** The RAD tool calls this to grab the component that can edit this type. ! ** The component may be painted anywhere the RAD tool wants to paint it-- ! ** even in its own window.

        ! ** The component must hook up with the PropertyEditor and, whenever a ! ** change to the value is made, fire a PropertyChangeEvent to the source.

        ! ** @return the custom editor for this property type. ! **/ ! java.awt.Component getCustomEditor(); ! /** Adds a property change listener to this PropertyEditor. ! ** @param listener the listener to add ! **/ ! void addPropertyChangeListener(PropertyChangeListener listener); ! /** Removes a property change listener from this PropertyEditor. ! ** @param listener the listener to remove ! **/ ! void removePropertyChangeListener(PropertyChangeListener listener); ! /** Get a Java language-specific String which could be used to create an Object ! ** of the specified type. Every PropertyEditor must support this.

        ! ** The reason for this is that while most RAD tools will serialize the Beans ! ** and deserialize them at runtime, some RAD tools will generate code that ! ** creates the Beans. Examples of Java initialization strings would be:

        ! **

          ! **
        1. 2
        2. ! **
        3. "I am a String"
        4. ! **
        5. new MyObject(2, "String", new StringBuffer())
        6. ! **
        ! ** @return the initialization string for this object in Java. ! **/ ! String getJavaInitializationString(); } --- 109,209 ---- **/ public interface PropertyEditor { ! /** Called by the RAD tool to set the value of this property for the PropertyEditor. ! ** If the property type is native, it should be wrapped in the appropriate ! ** wrapper type. ! ** @param value the value to set this property to. ! **/ ! void setValue(Object value); ! /** Accessor method to get the current value the PropertyEditor is working with. ! ** If the property type is native, it will be wrapped in the appropriate ! ** wrapper type. ! ** @return the current value of the PropertyEditor. ! **/ ! Object getValue(); ! /** Set the value of this property using a String. ! ** Whether or not this PropertyEditor is editing a String type, this converts ! ** the String into the type of the PropertyEditor. ! ** @param text the text to set it to. ! ** @exception IllegalArgumentException if the String is in the wrong format or setAsText() is not supported. ! **/ ! void setAsText(String text) throws IllegalArgumentException; ! /** Get the value of this property in String format. ! ** Many times this can simply use Object.toString().

        ! ** Return null if you do not support getAsText()/setAsText(). ! ** setAsText(getAsText()) should be valid; i.e. the stuff you spit out in ! ** getAsText() should be able to go into setAsText(). ! ** @return the value of this property in String format. ! **/ ! String getAsText(); ! /** Get a list of possible Strings which this property type can have. ! ** The value of these will be used by the RAD tool to construct some sort ! ** of list box or to check text box input, and the resulting String passed ! ** to setAsText() should be one of these. Note, however, that like most things ! ** with this mammoth, unwieldy interface, this is not guaranteed. Thus, you ! ** must check the value in setAsText() anyway. ! ** @return the list of possible String values for this property type. ! **/ ! String[] getTags(); ! /** The RAD tool calls this to find out whether the PropertyEditor can paint itself. ! ** @return true if it can paint itself graphically, false if it cannot. ! **/ ! boolean isPaintable(); ! /** The RAD tool calls this to paint the actual value of the property. ! ** The Graphics context will have the same current font, color, etc. as the ! ** parent Container. You may safely change the font, color, etc. and not ! ** change them back.

        ! ** This method should do a silent no-op if isPaintable() is false. ! ** @param g the Graphics context to paint on ! ** @param bounds the rectangle you have reserved to work in ! **/ ! void paintValue(java.awt.Graphics g, java.awt.Rectangle bounds); ! /** The RAD tool calls this to find out whether the PropertyEditor supports a custom component to edit and display itself. ! ** @return true if getCustomEditor() will return a component, false if not. ! **/ ! boolean supportsCustomEditor(); ! /** The RAD tool calls this to grab the component that can edit this type. ! ** The component may be painted anywhere the RAD tool wants to paint it-- ! ** even in its own window.

        ! ** The component must hook up with the PropertyEditor and, whenever a ! ** change to the value is made, fire a PropertyChangeEvent to the source.

        ! ** @return the custom editor for this property type. ! **/ ! java.awt.Component getCustomEditor(); ! /** Adds a property change listener to this PropertyEditor. ! ** @param listener the listener to add ! **/ ! void addPropertyChangeListener(PropertyChangeListener listener); ! /** Removes a property change listener from this PropertyEditor. ! ** @param listener the listener to remove ! **/ ! void removePropertyChangeListener(PropertyChangeListener listener); ! /** Get a Java language-specific String which could be used to create an Object ! ** of the specified type. Every PropertyEditor must support this.

        ! ** The reason for this is that while most RAD tools will serialize the Beans ! ** and deserialize them at runtime, some RAD tools will generate code that ! ** creates the Beans. Examples of Java initialization strings would be:

        ! **

          ! **
        1. 2
        2. ! **
        3. "I am a String"
        4. ! **
        5. new MyObject(2, "String", new StringBuffer())
        6. ! **
        ! ** @return the initialization string for this object in Java. ! **/ ! String getJavaInitializationString(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/PropertyEditorManager.java gcc-4.6.0/libjava/classpath/java/beans/PropertyEditorManager.java *** gcc-4.5.2/libjava/classpath/java/beans/PropertyEditorManager.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/beans/PropertyEditorManager.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.awt.Font; *** 64,70 **** * package and then in the property editor search path. * *

        Default property editors are provided for:

        ! * *
          *
        1. boolean, byte, short, int, long, float, and double
        2. *
        3. java.lang.String
        4. --- 64,70 ---- * package and then in the property editor search path. * *

          Default property editors are provided for:

          ! * *
            *
          1. boolean, byte, short, int, long, float, and double
          2. *
          3. java.lang.String
          4. *************** public class PropertyEditorManager *** 143,155 **** return (PropertyEditor)found.newInstance(); } ! ClassLoader contextClassLoader ! = Thread.currentThread().getContextClassLoader(); try { found = Class.forName(editedClass.getName()+"Editor", true, ! contextClassLoader); registerEditor(editedClass,found); return (PropertyEditor)found.newInstance(); } --- 143,155 ---- return (PropertyEditor)found.newInstance(); } ! ClassLoader contextClassLoader ! = Thread.currentThread().getContextClassLoader(); try { found = Class.forName(editedClass.getName()+"Editor", true, ! contextClassLoader); registerEditor(editedClass,found); return (PropertyEditor)found.newInstance(); } *************** public class PropertyEditorManager *** 158,166 **** } String appendName ! = "." ! + ClassHelper.getTruncatedClassName(editedClass) ! + "Editor"; synchronized(editorSearchPath) { for(int i=0;inull
            . ! **/ ! public BeanDescriptor getBeanDescriptor() { ! return null; ! } ! /** Force Introspection of the events this Bean type ! ** fires. ! ** @return null ! **/ ! public EventSetDescriptor[] getEventSetDescriptors() { ! return null; ! } ! /** Say that there is no "default" event set. ! ** @return -1. ! **/ ! public int getDefaultEventIndex() { ! return -1; ! } ! /** Force Introspection of the Bean properties. ! ** @return null. ! **/ ! public PropertyDescriptor[] getPropertyDescriptors() { ! return null; ! } ! /** Say that there is no "default" property. ! ** @return -1. ! **/ ! public int getDefaultPropertyIndex() { ! return -1; ! } ! /** Force Introspection of the Bean's methods. ! ** @return null. ! **/ ! public MethodDescriptor[] getMethodDescriptors() { ! return null; ! } ! /** Tell the Introspector to go look for other BeanInfo ! ** itself. ! ** @return null. ! **/ ! public BeanInfo[] getAdditionalBeanInfo() { ! return null; ! } ! /** Say that this Bean has no icons. ! ** @param iconType the type of icon ! ** @return null. ! **/ ! public Image getIcon(int iconType) { ! return null; ! } ! /** Helper method to load an image using the Bean class ! ** getResource() method on the BeanInfo class (using ! ** getClass(), since you'll extend this class to get ! ** the BeanInfo). Basically it's assumed that the Bean ! ** and its BeanInfo are both loaded by the same ! ** ClassLoader, generally a reasonable assumption. ! ** @param location the URL relative ! ** @return the Image in question (possibly null). ! **/ ! public Image loadImage(String location) { if (location == null) return null; --- 65,139 ---- **/ public class SimpleBeanInfo implements BeanInfo { ! /** Force Introspection of the general bean info. ! ** @return null. ! **/ ! public BeanDescriptor getBeanDescriptor() { ! return null; ! } ! /** Force Introspection of the events this Bean type ! ** fires. ! ** @return null ! **/ ! public EventSetDescriptor[] getEventSetDescriptors() { ! return null; ! } ! /** Say that there is no "default" event set. ! ** @return -1. ! **/ ! public int getDefaultEventIndex() { ! return -1; ! } ! /** Force Introspection of the Bean properties. ! ** @return null. ! **/ ! public PropertyDescriptor[] getPropertyDescriptors() { ! return null; ! } ! /** Say that there is no "default" property. ! ** @return -1. ! **/ ! public int getDefaultPropertyIndex() { ! return -1; ! } ! /** Force Introspection of the Bean's methods. ! ** @return null. ! **/ ! public MethodDescriptor[] getMethodDescriptors() { ! return null; ! } ! /** Tell the Introspector to go look for other BeanInfo ! ** itself. ! ** @return null. ! **/ ! public BeanInfo[] getAdditionalBeanInfo() { ! return null; ! } ! /** Say that this Bean has no icons. ! ** @param iconType the type of icon ! ** @return null. ! **/ ! public Image getIcon(int iconType) { ! return null; ! } ! /** Helper method to load an image using the Bean class ! ** getResource() method on the BeanInfo class (using ! ** getClass(), since you'll extend this class to get ! ** the BeanInfo). Basically it's assumed that the Bean ! ** and its BeanInfo are both loaded by the same ! ** ClassLoader, generally a reasonable assumption. ! ** @param location the URL relative ! ** @return the Image in question (possibly null). ! **/ ! public Image loadImage(String location) { if (location == null) return null; *************** public class SimpleBeanInfo implements B *** 141,146 **** if (url == null) return null; return Toolkit.getDefaultToolkit().getImage(url); ! } } - --- 141,145 ---- if (url == null) return null; return Toolkit.getDefaultToolkit().getImage(url); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/Statement.java gcc-4.6.0/libjava/classpath/java/beans/Statement.java *** gcc-4.5.2/libjava/classpath/java/beans/Statement.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/beans/Statement.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Statement *** 100,106 **** *
          5. Static methods can be executed by providing the class as a * target.
          6. * ! *
          7. The method name new is reserved to call the constructor * new() will construct an object and return it. Not useful unless * an expression :-)
          8. * --- 100,106 ---- *
          9. Static methods can be executed by providing the class as a * target.
          10. * ! *
          11. The method name new is reserved to call the constructor * new() will construct an object and return it. Not useful unless * an expression :-)
          12. * *************** public class Statement *** 123,156 **** * declared in the source file.

            * * @throws Exception if an exception occurs while locating or ! * invoking the method. */ public void execute() throws Exception { doExecute(); } ! ! private static Class wrappers[] = { Boolean.class, Byte.class, Character.class, Double.class, Float.class, Integer.class, Long.class, Short.class }; ! private static Class natives[] = { Boolean.TYPE, Byte.TYPE, Character.TYPE, Double.TYPE, Float.TYPE, Integer.TYPE, Long.TYPE, Short.TYPE }; /** Given a wrapper class, return the native class for it. ! *

            For example, if c is Integer, * Integer.TYPE is returned.

            */ private Class unwrap(Class c) { for (int i = 0; i < wrappers.length; i++) if (c == wrappers[i]) ! return natives[i]; return null; } --- 123,156 ---- * declared in the source file.

            * * @throws Exception if an exception occurs while locating or ! * invoking the method. */ public void execute() throws Exception { doExecute(); } ! ! private static Class wrappers[] = { Boolean.class, Byte.class, Character.class, Double.class, Float.class, Integer.class, Long.class, Short.class }; ! private static Class natives[] = { Boolean.TYPE, Byte.TYPE, Character.TYPE, Double.TYPE, Float.TYPE, Integer.TYPE, Long.TYPE, Short.TYPE }; /** Given a wrapper class, return the native class for it. ! *

            For example, if c is Integer, * Integer.TYPE is returned.

            */ private Class unwrap(Class c) { for (int i = 0; i < wrappers.length; i++) if (c == wrappers[i]) ! return natives[i]; return null; } *************** public class Statement *** 168,183 **** // any type. if (args[i] == null) continue; ! // Treat Integer like int if appropriate ! Class nativeType = unwrap(args[i]); ! if (nativeType != null && params[i].isPrimitive() ! && params[i].isAssignableFrom(nativeType)) ! continue; ! if (params[i].isAssignableFrom(args[i])) ! continue; ! return false; } return true; } --- 168,183 ---- // any type. if (args[i] == null) continue; ! // Treat Integer like int if appropriate ! Class nativeType = unwrap(args[i]); ! if (nativeType != null && params[i].isPrimitive() ! && params[i].isAssignableFrom(nativeType)) ! continue; ! if (params[i].isAssignableFrom(args[i])) ! continue; ! return false; } return true; } *************** public class Statement *** 201,209 **** { for (int j=0; j < first.length; j++) { ! if (second[j].isAssignableFrom(first[j])) ! continue; ! return false; } return true; } --- 201,209 ---- { for (int j=0; j < first.length; j++) { ! if (second[j].isAssignableFrom(first[j])) ! continue; ! return false; } return true; } *************** public class Statement *** 211,220 **** final Object doExecute() throws Exception { Class klazz = (target instanceof Class) ! ? (Class) target : target.getClass(); Object args[] = (arguments == null) ? new Object[0] : arguments; Class argTypes[] = new Class[args.length]; ! // Retrieve type or use null if the argument is null. The null argument // type is later used in compatible(). for (int i = 0; i < args.length; i++) --- 211,220 ---- final Object doExecute() throws Exception { Class klazz = (target instanceof Class) ! ? (Class) target : target.getClass(); Object args[] = (arguments == null) ? new Object[0] : arguments; Class argTypes[] = new Class[args.length]; ! // Retrieve type or use null if the argument is null. The null argument // type is later used in compatible(). for (int i = 0; i < args.length; i++) *************** public class Statement *** 222,239 **** if (target.getClass().isArray()) { ! // FIXME: invoke may have to be used. For now, cast to Number ! // and hope for the best. If caller didn't behave, we go boom ! // and throw the exception. ! if (methodName.equals("get") && argTypes.length == 1) ! return Array.get(target, ((Number)args[0]).intValue()); ! if (methodName.equals("set") && argTypes.length == 2) ! { ! Object obj = Array.get(target, ((Number)args[0]).intValue()); ! Array.set(target, ((Number)args[0]).intValue(), args[1]); ! return obj; ! } ! throw new NoSuchMethodException("No matching method for statement " + toString()); } // If we already cached the method, just use it. --- 222,239 ---- if (target.getClass().isArray()) { ! // FIXME: invoke may have to be used. For now, cast to Number ! // and hope for the best. If caller didn't behave, we go boom ! // and throw the exception. ! if (methodName.equals("get") && argTypes.length == 1) ! return Array.get(target, ((Number)args[0]).intValue()); ! if (methodName.equals("set") && argTypes.length == 2) ! { ! Object obj = Array.get(target, ((Number)args[0]).intValue()); ! Array.set(target, ((Number)args[0]).intValue(), args[1]); ! return obj; ! } ! throw new NoSuchMethodException("No matching method for statement " + toString()); } // If we already cached the method, just use it. *************** public class Statement *** 253,314 **** if (methodName.equals("new") && target instanceof Class) { ! Constructor ctors[] = klazz.getConstructors(); ! for (int i = 0; i < ctors.length; i++) ! { ! // Skip methods with wrong number of args. ! Class ptypes[] = ctors[i].getParameterTypes(); ! if (ptypes.length != args.length) ! continue; ! // Check if method matches ! if (!compatible(ptypes, argTypes)) ! continue; ! // Use method[i] if it is more specific. ! // FIXME: should this check both directions and throw if ! // neither is more specific? ! if (ctor == null) ! { ! ctor = ctors[i]; ! continue; ! } ! Class mptypes[] = ctor.getParameterTypes(); ! if (moreSpecific(ptypes, mptypes)) ! ctor = ctors[i]; ! } ! if (ctor == null) ! throw new InstantiationException("No matching constructor for statement " + toString()); ! return ctor.newInstance(args); } Method methods[] = klazz.getMethods(); for (int i = 0; i < methods.length; i++) { ! // Skip methods with wrong name or number of args. ! if (!methods[i].getName().equals(methodName)) ! continue; ! Class ptypes[] = methods[i].getParameterTypes(); ! if (ptypes.length != args.length) ! continue; ! // Check if method matches ! if (!compatible(ptypes, argTypes)) ! continue; ! // Use method[i] if it is more specific. ! // FIXME: should this check both directions and throw if ! // neither is more specific? ! if (method == null) ! { ! method = methods[i]; ! continue; ! } ! Class mptypes[] = method.getParameterTypes(); ! if (moreSpecific(ptypes, mptypes)) ! method = methods[i]; } if (method == null) throw new NoSuchMethodException("No matching method for statement " + toString()); --- 253,314 ---- if (methodName.equals("new") && target instanceof Class) { ! Constructor ctors[] = klazz.getConstructors(); ! for (int i = 0; i < ctors.length; i++) ! { ! // Skip methods with wrong number of args. ! Class ptypes[] = ctors[i].getParameterTypes(); ! if (ptypes.length != args.length) ! continue; ! // Check if method matches ! if (!compatible(ptypes, argTypes)) ! continue; ! // Use method[i] if it is more specific. ! // FIXME: should this check both directions and throw if ! // neither is more specific? ! if (ctor == null) ! { ! ctor = ctors[i]; ! continue; ! } ! Class mptypes[] = ctor.getParameterTypes(); ! if (moreSpecific(ptypes, mptypes)) ! ctor = ctors[i]; ! } ! if (ctor == null) ! throw new InstantiationException("No matching constructor for statement " + toString()); ! return ctor.newInstance(args); } Method methods[] = klazz.getMethods(); for (int i = 0; i < methods.length; i++) { ! // Skip methods with wrong name or number of args. ! if (!methods[i].getName().equals(methodName)) ! continue; ! Class ptypes[] = methods[i].getParameterTypes(); ! if (ptypes.length != args.length) ! continue; ! // Check if method matches ! if (!compatible(ptypes, argTypes)) ! continue; ! // Use method[i] if it is more specific. ! // FIXME: should this check both directions and throw if ! // neither is more specific? ! if (method == null) ! { ! method = methods[i]; ! continue; ! } ! Class mptypes[] = method.getParameterTypes(); ! if (moreSpecific(ptypes, mptypes)) ! method = methods[i]; } if (method == null) throw new NoSuchMethodException("No matching method for statement " + toString()); *************** public class Statement *** 329,335 **** return method.invoke(target, args); } catch(IllegalArgumentException iae){ System.err.println("method: " + method); ! for(int i=0;iStatement. ! * ! * @return A string representation of this Statement. */ public String toString() { ! CPStringBuilder result = new CPStringBuilder(); String targetName; if (target != null) targetName = target.getClass().getSimpleName(); ! else targetName = "null"; result.append(targetName); --- 348,366 ---- /** Return the statement object. */ public Object getTarget() { return target; } ! /** ! * Returns a string representation of this Statement. ! * ! * @return A string representation of this Statement. */ public String toString() { ! CPStringBuilder result = new CPStringBuilder(); String targetName; if (target != null) targetName = target.getClass().getSimpleName(); ! else targetName = "null"; result.append(targetName); *************** public class Statement *** 373,379 **** { result.append(sep); result.append( ! ( arguments[i] == null ) ? "null" : ( arguments[i] instanceof String ) ? "\"" + arguments[i] + "\"" : arguments[i].getClass().getSimpleName()); sep = ", "; --- 373,379 ---- { result.append(sep); result.append( ! ( arguments[i] == null ) ? "null" : ( arguments[i] instanceof String ) ? "\"" + arguments[i] + "\"" : arguments[i].getClass().getSimpleName()); sep = ", "; *************** public class Statement *** 382,386 **** return result.toString(); } ! } --- 382,386 ---- return result.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/VetoableChangeSupport.java gcc-4.6.0/libjava/classpath/java/beans/VetoableChangeSupport.java *** gcc-4.5.2/libjava/classpath/java/beans/VetoableChangeSupport.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/beans/VetoableChangeSupport.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* VetoableChangeSupport.java -- support to manage vetoable change listeners ! Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* VetoableChangeSupport.java -- support to manage vetoable change listeners ! Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/Visibility.java gcc-4.6.0/libjava/classpath/java/beans/Visibility.java *** gcc-4.5.2/libjava/classpath/java/beans/Visibility.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/Visibility.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans; *** 54,85 **** */ public interface Visibility { ! /** ! * Tells whether the Bean can run without a GUI or not. ! * @return false if Bean can run without a GUI, else true. ! */ ! boolean needsGui(); ! /** ! * Tells whether Bean is trying not to use the GUI. ! * If needsGui() is true, this method should always return false. ! * @return true if definitely not using GUI, otherwise false. ! */ ! boolean avoidingGui(); ! /** ! * Tells the Bean not to use GUI methods. ! * If needsGUI() is false, then after this method is called, ! * avoidingGui() should return true. ! */ ! void dontUseGui(); ! /** ! * Tells the Bean it may use the GUI. ! * The Bean is not required to use the GUI in this case, it is ! * merely being permitted to use it. If needsGui() is ! * false, avoidingGui() may return true or false after this method ! * is called. ! */ ! void okToUseGui(); } --- 54,85 ---- */ public interface Visibility { ! /** ! * Tells whether the Bean can run without a GUI or not. ! * @return false if Bean can run without a GUI, else true. ! */ ! boolean needsGui(); ! /** ! * Tells whether Bean is trying not to use the GUI. ! * If needsGui() is true, this method should always return false. ! * @return true if definitely not using GUI, otherwise false. ! */ ! boolean avoidingGui(); ! /** ! * Tells the Bean not to use GUI methods. ! * If needsGUI() is false, then after this method is called, ! * avoidingGui() should return true. ! */ ! void dontUseGui(); ! /** ! * Tells the Bean it may use the GUI. ! * The Bean is not required to use the GUI in this case, it is ! * merely being permitted to use it. If needsGui() is ! * false, avoidingGui() may return true or false after this method ! * is called. ! */ ! void okToUseGui(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/XMLDecoder.java gcc-4.6.0/libjava/classpath/java/beans/XMLDecoder.java *** gcc-4.5.2/libjava/classpath/java/beans/XMLDecoder.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/beans/XMLDecoder.java Tue Jan 11 19:46:05 2011 *************** import java.util.NoSuchElementException; *** 55,62 **** * An example XML document might look like this: * * <java> ! * <string>Hello World</string> ! * <int>200</int> * </java> * *

            To read the String and the Integer instance the following can be used (assume --- 55,62 ---- * An example XML document might look like this: * * <java> ! * <string>Hello World</string> ! * <int>200</int> * </java> * *

            To read the String and the Integer instance the following can be used (assume *************** import java.util.NoSuchElementException; *** 71,82 **** *

            An owner object can be set using the setOwner method which can then be accessed when * decoding. This feature is only useful if the XML data is aware of the owner object. Such data may * look like this (assume that the owner object is a JFrame instance):

            ! * * <java> ! * <void method="getOwner"> ! * <void method="setVisible"> ! * <boolean>true<boolean> ! * </void> * </void> * </java> * --- 71,82 ---- *

            An owner object can be set using the setOwner method which can then be accessed when * decoding. This feature is only useful if the XML data is aware of the owner object. Such data may * look like this (assume that the owner object is a JFrame instance):

            ! * * <java> ! * <void method="getOwner"> ! * <void method="setVisible"> ! * <boolean>true<boolean> ! * </void> * </void> * </java> * *************** import java.util.NoSuchElementException; *** 98,307 **** * the resulting XMLDecoder will be silently (without any exception) useless. Each call * to readObject will return null and never throws an * ArrayIndexOutOfBoundsException.

            ! * * @author Robert Schuster * @since 1.4 * @status updated to 1.5 */ public class XMLDecoder { ! private Object owner; ! private ExceptionListener exceptionListener; ! private InputStream inputStream; ! private boolean isStreamClosed; ! private ClassLoader classLoader; ! private Iterator iterator; ! /** Creates a XMLDecoder instance that parses the XML data of the given input stream. ! * Using this constructor no special ClassLoader, a default ExceptionListener ! * and no owner object is used. ! * ! * @param in InputStream to read XML data from. ! */ ! public XMLDecoder(InputStream in) ! { ! this(in, null); ! } ! /** Creates a XMLDecoder instance that parses the XML data of the given input stream. ! * Using this constructor no special ClassLoader and a default ExceptionListener ! * is used. ! * ! * @param in InputStream to read XML data from. ! * @param owner Owner object which can be accessed and modified while parsing. ! */ ! public XMLDecoder(InputStream in, Object owner) ! { ! this(in, owner, null); ! } ! /** Creates a XMLDecoder instance that parses the XML data of the given input stream. ! * If the ExceptionListener argument is null a default implementation is used. ! * ! * @param in InputStream to read XML data from. ! * @param owner Owner object which can be accessed and modified while parsing. ! * @param exceptionListener ExceptionListener instance to which exception notifications are send. ! */ ! public XMLDecoder( ! InputStream in, ! Object owner, ! ExceptionListener exceptionListener) ! { ! this( ! in, ! owner, ! exceptionListener, ! Thread.currentThread().getContextClassLoader()); ! } ! /** Creates a XMLDecoder instance that parses the XML data of the given input stream. ! * If the ExceptionListener argument is null a default implementation is used. ! * ! * @param in InputStream to read XML data from. ! * @param owner Owner object which can be accessed and modified while parsing. ! * @param listener ExceptionListener instance to which exception notifications are send. ! * @param cl ClassLoader instance that is used for calls to Class.forName(String, boolean, ClassLoader) ! * @since 1.5 ! */ ! public XMLDecoder( ! InputStream in, ! Object owner, ! ExceptionListener listener, ! ClassLoader cl) ! { ! // initially here was a check for the validity of the InputStream argument but some ! // great engineers decided that this API should silently discard this and behave rather ! // odd: readObject will always return null ... ! inputStream = in; ! setExceptionListener(listener); ! // validity of this object is checked in Class.forName() and therefore may be null ! classLoader = cl; ! this.owner = owner; ! } ! /** Closes the stream associated with this decoder. This should be done after having read all ! * decoded objects. ! *

            See the description of the {@link #readObject()} for the effect caused by close.

            ! */ ! public void close() ! { ! if (isStreamClosed) ! { ! return; ! } ! try ! { ! inputStream.close(); ! isStreamClosed = true; ! } ! catch (IOException e) ! { ! // bad style forced by original API design ... ! } ! } ! /** Returns the ExceptionListener instance associated with this decoder. ! *

            See the description of {@link XMLDecoder} class for more information on the ExceptionListener.

            ! * ! * @return Current ExceptionListener of the decoder. ! */ ! public ExceptionListener getExceptionListener() ! { ! return exceptionListener; ! } ! /** Returns the owner object of the decoder. This method is usually called ! * from within the parsed XML data. ! *

            See the description of {@link XMLDecoder} class for more information on the owner object.

            ! * ! * @return The owner object of this decoder. ! */ ! public Object getOwner() ! { ! return owner; ! } ! /** Returns the next available decoded object. ! *

            Note that the actual decoding takes place when the method is called for the first time.

            ! *

            If the close method was already called a NoSuchElementException ! * is thrown.

            ! *

            If the InputStream instance used in the constructors was null this method ! * will always return null itself.

            ! * ! * @return The next object in a sequence decoded from XML data. ! * @throws ArrayIndexOutOfBoundsException When no more objects are available. ! */ ! public Object readObject() throws ArrayIndexOutOfBoundsException ! { ! // note: the RI does it this way ... ! if(inputStream == null) { ! return null; ! } ! ! // note: the original API documentation says nothing on what to do ! // when the stream was closed before readObject is called but it actually ! // throws a NoSuchElementException - this behaviour is imitated here ! if (isStreamClosed) ! { ! throw new NoSuchElementException("Cannot read any objects - XMLDecoder was already closed."); ! } ! // creates the PersistenceParser (doing the parsing and decoding) and returns its ! // Iterator on first invocation ! if (iterator == null) ! { ! iterator = ! new PersistenceParser( ! inputStream, ! exceptionListener, ! classLoader, ! this) ! .iterator(); ! } ! // note: done according to the official documentation ! if (!iterator.hasNext()) ! { ! throw new ArrayIndexOutOfBoundsException("No more objects available from this XMLDecoder."); ! } ! // returns just the next object if there was no problem ! return iterator.next(); ! } ! /** Sets the ExceptionListener instance to which notifications of exceptions are send ! * while parsing the XML data. ! *

            See the description of {@link XMLDecoder} class for more information on the ExceptionListener.

            ! * ! * @param listener ! */ ! public void setExceptionListener(ExceptionListener listener) ! { ! // uses a default implementation when null ! if (listener == null) ! { ! listener = DefaultExceptionListener.INSTANCE; ! } ! exceptionListener = listener; ! } ! /** Sets the owner object which can be accessed from the parsed XML data. ! *

            See the description of {@link XMLDecoder} class for more information on the owner object.

            ! * ! * @param newOwner ! */ ! public void setOwner(Object newOwner) ! { ! owner = newOwner; ! } } --- 98,307 ---- * the resulting XMLDecoder will be silently (without any exception) useless. Each call * to readObject will return null and never throws an * ArrayIndexOutOfBoundsException.

            ! * * @author Robert Schuster * @since 1.4 * @status updated to 1.5 */ public class XMLDecoder { ! private Object owner; ! private ExceptionListener exceptionListener; ! private InputStream inputStream; ! private boolean isStreamClosed; ! private ClassLoader classLoader; ! private Iterator iterator; ! /** Creates a XMLDecoder instance that parses the XML data of the given input stream. ! * Using this constructor no special ClassLoader, a default ExceptionListener ! * and no owner object is used. ! * ! * @param in InputStream to read XML data from. ! */ ! public XMLDecoder(InputStream in) ! { ! this(in, null); ! } ! /** Creates a XMLDecoder instance that parses the XML data of the given input stream. ! * Using this constructor no special ClassLoader and a default ExceptionListener ! * is used. ! * ! * @param in InputStream to read XML data from. ! * @param owner Owner object which can be accessed and modified while parsing. ! */ ! public XMLDecoder(InputStream in, Object owner) ! { ! this(in, owner, null); ! } ! /** Creates a XMLDecoder instance that parses the XML data of the given input stream. ! * If the ExceptionListener argument is null a default implementation is used. ! * ! * @param in InputStream to read XML data from. ! * @param owner Owner object which can be accessed and modified while parsing. ! * @param exceptionListener ExceptionListener instance to which exception notifications are send. ! */ ! public XMLDecoder( ! InputStream in, ! Object owner, ! ExceptionListener exceptionListener) ! { ! this( ! in, ! owner, ! exceptionListener, ! Thread.currentThread().getContextClassLoader()); ! } ! /** Creates a XMLDecoder instance that parses the XML data of the given input stream. ! * If the ExceptionListener argument is null a default implementation is used. ! * ! * @param in InputStream to read XML data from. ! * @param owner Owner object which can be accessed and modified while parsing. ! * @param listener ExceptionListener instance to which exception notifications are send. ! * @param cl ClassLoader instance that is used for calls to Class.forName(String, boolean, ClassLoader) ! * @since 1.5 ! */ ! public XMLDecoder( ! InputStream in, ! Object owner, ! ExceptionListener listener, ! ClassLoader cl) ! { ! // initially here was a check for the validity of the InputStream argument but some ! // great engineers decided that this API should silently discard this and behave rather ! // odd: readObject will always return null ... ! inputStream = in; ! setExceptionListener(listener); ! // validity of this object is checked in Class.forName() and therefore may be null ! classLoader = cl; ! this.owner = owner; ! } ! /** Closes the stream associated with this decoder. This should be done after having read all ! * decoded objects. ! *

            See the description of the {@link #readObject()} for the effect caused by close.

            ! */ ! public void close() ! { ! if (isStreamClosed) ! { ! return; ! } ! try ! { ! inputStream.close(); ! isStreamClosed = true; ! } ! catch (IOException e) ! { ! // bad style forced by original API design ... ! } ! } ! /** Returns the ExceptionListener instance associated with this decoder. ! *

            See the description of {@link XMLDecoder} class for more information on the ExceptionListener.

            ! * ! * @return Current ExceptionListener of the decoder. ! */ ! public ExceptionListener getExceptionListener() ! { ! return exceptionListener; ! } ! /** Returns the owner object of the decoder. This method is usually called ! * from within the parsed XML data. ! *

            See the description of {@link XMLDecoder} class for more information on the owner object.

            ! * ! * @return The owner object of this decoder. ! */ ! public Object getOwner() ! { ! return owner; ! } ! /** Returns the next available decoded object. ! *

            Note that the actual decoding takes place when the method is called for the first time.

            ! *

            If the close method was already called a NoSuchElementException ! * is thrown.

            ! *

            If the InputStream instance used in the constructors was null this method ! * will always return null itself.

            ! * ! * @return The next object in a sequence decoded from XML data. ! * @throws ArrayIndexOutOfBoundsException When no more objects are available. ! */ ! public Object readObject() throws ArrayIndexOutOfBoundsException ! { ! // note: the RI does it this way ... ! if(inputStream == null) { ! return null; ! } ! // note: the original API documentation says nothing on what to do ! // when the stream was closed before readObject is called but it actually ! // throws a NoSuchElementException - this behaviour is imitated here ! if (isStreamClosed) ! { ! throw new NoSuchElementException("Cannot read any objects - XMLDecoder was already closed."); ! } ! // creates the PersistenceParser (doing the parsing and decoding) and returns its ! // Iterator on first invocation ! if (iterator == null) ! { ! iterator = ! new PersistenceParser( ! inputStream, ! exceptionListener, ! classLoader, ! this) ! .iterator(); ! } ! // note: done according to the official documentation ! if (!iterator.hasNext()) ! { ! throw new ArrayIndexOutOfBoundsException("No more objects available from this XMLDecoder."); ! } ! // returns just the next object if there was no problem ! return iterator.next(); ! } ! /** Sets the ExceptionListener instance to which notifications of exceptions are send ! * while parsing the XML data. ! *

            See the description of {@link XMLDecoder} class for more information on the ExceptionListener.

            ! * ! * @param listener ! */ ! public void setExceptionListener(ExceptionListener listener) ! { ! // uses a default implementation when null ! if (listener == null) ! { ! listener = DefaultExceptionListener.INSTANCE; ! } ! exceptionListener = listener; ! } ! ! /** Sets the owner object which can be accessed from the parsed XML data. ! *

            See the description of {@link XMLDecoder} class for more information on the owner object.

            ! * ! * @param newOwner ! */ ! public void setOwner(Object newOwner) ! { ! owner = newOwner; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/XMLEncoder.java gcc-4.6.0/libjava/classpath/java/beans/XMLEncoder.java *** gcc-4.5.2/libjava/classpath/java/beans/XMLEncoder.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/beans/XMLEncoder.java Tue Jan 11 19:46:05 2011 *************** *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.OutputStream; *** 46,52 **** * This class uses the {@link PersistenceDelegate} and {@link Encoder} * infrastructure to generate an XML representation of the objects it * serializes. ! * * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ --- 46,52 ---- * This class uses the {@link PersistenceDelegate} and {@link Encoder} * infrastructure to generate an XML representation of the objects it * serializes. ! * * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ *************** public class XMLEncoder extends Encoder *** 92,102 **** // I needed for a succesfull operation of XMLEncoder. // // The same is true for the writeStatement method. ! // Silently ignore out of bounds calls. if (accessCounter <= 0) return; ! scanEngine.writeExpression(expr); --- 92,102 ---- // I needed for a succesfull operation of XMLEncoder. // // The same is true for the writeStatement method. ! // Silently ignore out of bounds calls. if (accessCounter <= 0) return; ! scanEngine.writeExpression(expr); *************** public class XMLEncoder extends Encoder *** 113,120 **** getExceptionListener().exceptionThrown(e); return; } ! ! newValue = get(value); if (newValue == null) --- 113,120 ---- getExceptionListener().exceptionThrown(e); return; } ! ! newValue = get(value); if (newValue == null) *************** public class XMLEncoder extends Encoder *** 144,158 **** newArgs[i] = get(args[i]); } } ! Expression newExpr = new Expression(newTarget, expr.getMethodName(), newArgs); ! // Fakes the result of Class.forName() to make it possible // to hand such a type to the encoding process. if (value instanceof Class && ((Class) value).isPrimitive()) newExpr.setValue(value); ! // Instantiates the new object. try { --- 144,158 ---- newArgs[i] = get(args[i]); } } ! Expression newExpr = new Expression(newTarget, expr.getMethodName(), newArgs); ! // Fakes the result of Class.forName() to make it possible // to hand such a type to the encoding process. if (value instanceof Class && ((Class) value).isPrimitive()) newExpr.setValue(value); ! // Instantiates the new object. try { *************** public class XMLEncoder extends Encoder *** 163,177 **** catch (Exception e) { getExceptionListener().exceptionThrown(e); ! // In Statement.writeExpression we had no possibility to flags // an erroneous state to the ScanEngine without behaving different ! // to the JDK. scanEngine.revoke(); ! return; } ! writeObject(value); } --- 163,177 ---- catch (Exception e) { getExceptionListener().exceptionThrown(e); ! // In Statement.writeExpression we had no possibility to flags // an erroneous state to the ScanEngine without behaving different ! // to the JDK. scanEngine.revoke(); ! return; } ! writeObject(value); } *************** public class XMLEncoder extends Encoder *** 187,193 **** { // In case of questions have a at the implementation note in // writeExpression. ! scanEngine.writeStatement(stmt); // Silently ignore out of bounds calls. --- 187,193 ---- { // In case of questions have a at the implementation note in // writeExpression. ! scanEngine.writeStatement(stmt); // Silently ignore out of bounds calls. *************** public class XMLEncoder extends Encoder *** 234,240 **** // In Statement.writeStatement we had no possibility to flags // an erroneous state to the ScanEngine without behaving different ! // to the JDK. scanEngine.revoke(); return; } --- 234,240 ---- // In Statement.writeStatement we had no possibility to flags // an erroneous state to the ScanEngine without behaving different ! // to the JDK. scanEngine.revoke(); return; } *************** public class XMLEncoder extends Encoder *** 245,259 **** public void writeObject(Object o) { accessCounter++; ! scanEngine.writeObject(o); ! if (get(o) == null) super.writeObject(o); ! accessCounter--; } ! public void setOwner(Object o) { owner = o; --- 245,259 ---- public void writeObject(Object o) { accessCounter++; ! scanEngine.writeObject(o); ! if (get(o) == null) super.writeObject(o); ! accessCounter--; } ! public void setOwner(Object o) { owner = o; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContext.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContext.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContext.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContext.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Collection; *** 166,272 **** */ public interface BeanContext ! extends Collection, BeanContextChild, Visibility, DesignMode { ! /** ! * The global lock on changing any BeanContext hierarchy. ! * It kinda sucks that there is only one lock, since there can be ! * multiple hierarchies. Oh well, I didn't design, I just code. ! *

            ! * ! * Methods that must (or do) synchronize on the global lock: ! *
            ! *

              ! *
            • ! * Implementors of BeanContext.add() and addAll() ! *
            • ! *
            ! * @fixme fill in the rest of the methods which use the global lock. ! */ ! Object globalHierarchyLock = new Object(); ! /** ! * Instantiate a Bean using this Bean's ClassLoader ! * and this BeanContext as the parent. ! *

            ! * ! * This method exists mainly so that BeanContext ! * implementations can perform extra actions on Beans that are ! * created within them. ! * ! * @param beanName the name of the bean to instantiate ! * @return the created Bean ! * ! * @see java.beans.Beans#instantiate(java.lang.ClassLoader,java.lang.String) ! * @see java.beans.Beans#instantiate(java.lang.ClassLoader,java.lang.String,java.beans.beancontext.BeanContext) ! * @exception IOException if there is an I/O problem during ! * instantiation. ! * @exception ClassNotFoundException if a serialized Bean's class ! * is not found. ! */ ! Object instantiateChild(String beanName) throws IOException, ClassNotFoundException; ! /** ! * Get a resource. The BeanContext will typically ! * call ClassLoader.getResource(), but may do it any ! * way it wants to. This allows a BeanContext to ! * have its own set of resources separate from the rest of the ! * system. ! *

            ! * ! * Beans should call this method on their parent rather than the ! * associated ClassLoader method. ! *

            ! * ! * I am assuming, but am not entirely sure, that if a ! * BeanContext cannot find a resource, its ! * responsibility is to call the getResource method ! * of its parent BeanContext. ! * ! * @return a URL to the requested resource. ! * @param resourceName the name of the resource requested. ! * @param requestor a reference to the child requesting the resource. ! * @see java.lang.ClassLoader#getResource(java.lang.String) ! */ ! URL getResource(String resourceName, BeanContextChild requestor); ! /** ! * Get a resource as a stream. The BeanContext will ! * typically call ClassLoader.getResourceAsStream(), ! * but may do it any way it wants to. This allows a ! * BeanContext's children to have their own set of ! * resources separate from the rest of the system. ! *

            ! * ! * Beans should call this method on their parent rather than the ! * associated ClassLoader method. ! *

            ! * ! * I am assuming, but am not entirely sure, that if a ! * BeanContext cannot find a resource, its ! * responsibility is to call the getResourceAsStream ! * method of its parent BeanContext. ! * ! * @return the requested resource as a stream. ! * @param resourceName the name of the resource requested. ! * @param requestor a reference to the child requesting the resource. ! * @see java.lang.ClassLoader#getResourceAsStream(java.lang.String) ! */ ! InputStream getResourceAsStream(String resourceName, BeanContextChild requestor); ! /** ! * Add a listener on changes to the membership of this ! * BeanContext object. ! * @param listener the listener to add. ! */ ! void addBeanContextMembershipListener(BeanContextMembershipListener listener); ! /** ! * Remove a listener on changes to the membership of this ! * BeanContext object. ! * @param listener the listener to remove. ! */ ! void removeBeanContextMembershipListener(BeanContextMembershipListener listener); } --- 166,272 ---- */ public interface BeanContext ! extends Collection, BeanContextChild, Visibility, DesignMode { ! /** ! * The global lock on changing any BeanContext hierarchy. ! * It kinda sucks that there is only one lock, since there can be ! * multiple hierarchies. Oh well, I didn't design, I just code. ! *

            ! * ! * Methods that must (or do) synchronize on the global lock: ! *
            ! *

              ! *
            • ! * Implementors of BeanContext.add() and addAll() ! *
            • ! *
            ! * @fixme fill in the rest of the methods which use the global lock. ! */ ! Object globalHierarchyLock = new Object(); ! /** ! * Instantiate a Bean using this Bean's ClassLoader ! * and this BeanContext as the parent. ! *

            ! * ! * This method exists mainly so that BeanContext ! * implementations can perform extra actions on Beans that are ! * created within them. ! * ! * @param beanName the name of the bean to instantiate ! * @return the created Bean ! * ! * @see java.beans.Beans#instantiate(java.lang.ClassLoader,java.lang.String) ! * @see java.beans.Beans#instantiate(java.lang.ClassLoader,java.lang.String,java.beans.beancontext.BeanContext) ! * @exception IOException if there is an I/O problem during ! * instantiation. ! * @exception ClassNotFoundException if a serialized Bean's class ! * is not found. ! */ ! Object instantiateChild(String beanName) throws IOException, ClassNotFoundException; ! /** ! * Get a resource. The BeanContext will typically ! * call ClassLoader.getResource(), but may do it any ! * way it wants to. This allows a BeanContext to ! * have its own set of resources separate from the rest of the ! * system. ! *

            ! * ! * Beans should call this method on their parent rather than the ! * associated ClassLoader method. ! *

            ! * ! * I am assuming, but am not entirely sure, that if a ! * BeanContext cannot find a resource, its ! * responsibility is to call the getResource method ! * of its parent BeanContext. ! * ! * @return a URL to the requested resource. ! * @param resourceName the name of the resource requested. ! * @param requestor a reference to the child requesting the resource. ! * @see java.lang.ClassLoader#getResource(java.lang.String) ! */ ! URL getResource(String resourceName, BeanContextChild requestor); ! /** ! * Get a resource as a stream. The BeanContext will ! * typically call ClassLoader.getResourceAsStream(), ! * but may do it any way it wants to. This allows a ! * BeanContext's children to have their own set of ! * resources separate from the rest of the system. ! *

            ! * ! * Beans should call this method on their parent rather than the ! * associated ClassLoader method. ! *

            ! * ! * I am assuming, but am not entirely sure, that if a ! * BeanContext cannot find a resource, its ! * responsibility is to call the getResourceAsStream ! * method of its parent BeanContext. ! * ! * @return the requested resource as a stream. ! * @param resourceName the name of the resource requested. ! * @param requestor a reference to the child requesting the resource. ! * @see java.lang.ClassLoader#getResourceAsStream(java.lang.String) ! */ ! InputStream getResourceAsStream(String resourceName, BeanContextChild requestor); ! /** ! * Add a listener on changes to the membership of this ! * BeanContext object. ! * @param listener the listener to add. ! */ ! void addBeanContextMembershipListener(BeanContextMembershipListener listener); ! /** ! * Remove a listener on changes to the membership of this ! * BeanContext object. ! * @param listener the listener to remove. ! */ ! void removeBeanContextMembershipListener(BeanContextMembershipListener listener); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextChild.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextChild.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextChild.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextChild.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.beans.VetoableChangeListener *** 77,174 **** */ public interface BeanContextChild { ! /** ! * Set the parent BeanContext. ! *

            ! * ! * This method is called from BeanContext.add() and ! * should not be called directly. ! *

            ! * ! * When this Object is being added to a new BeanContext or moved ! * from an old one, a non-null value will be passed in. ! *

            ! * ! * When this Object is being removed from the current ! * BeanContext, setBeanContext() will ! * receive the parameter null. ! *

            ! * ! * When being removed from the current BeanContext, ! * it is the BeanContextChild's responsibility to ! * release all services it has obtained. ! *

            ! * ! * This change should generate PropertyChangeEvent ! * and VetoableChangeEvents with the property name ! * "beanContext". If the change is vetoed, it must re-throw the ! * exception and not change anything. In this way, the parent ! * BeanContextChild, who has registered himself with ! * you, will have a chance to remove this child from its ! * collection. ! *

            ! * ! * If the Bean does not wish to change the parent or be removed ! * from one, it may throw the PropertyVetoException. ! * If you veto a setBeanContext(null) call, then you ! * should try your hardest to remedy whatever problem is keeping ! * you from being removed from the BeanContext so ! * that you can not veto it the next time. ! * Otherwise, nasty pathological recursion stuff could occur in ! * certain situations. ! *

            ! * ! * If you do veto the change, you must first back out any changes ! * you made prior to the veto. Best not to make any such changes ! * prior to the veto in the first place. ! *

            ! * ! * This method is called from BeanContext.add() and ! * should not be called directly. ! * ! * @param parent the new parent for the BeanContextChild, ! * or null to signify removal from a tree. ! * @exception PropertyVetoException if the ! * BeanContextChild implementor does not ! * wish to have its parent changed. ! */ ! void setBeanContext(BeanContext parent) ! throws PropertyVetoException; ! /** ! * Get the parent BeanContext. ! * @return the parent BeanContext. ! */ ! BeanContext getBeanContext(); ! /** ! * Add a listener that will be notified when a specific property changes. ! * @param prop the name of the property to listen on ! * @param listener the listener to listen on the property. ! */ ! void addPropertyChangeListener(String prop, PropertyChangeListener listener); ! /** ! * Remove a listener to a certain property. ! * @param prop the name of the property being listened on ! * @param listener the listener listening on the property. ! */ ! void removePropertyChangeListener(String prop, PropertyChangeListener listener); ! /** ! * Add a listener that will be notified when a specific property ! * change is requested (a PropertyVetoException may be thrown) as ! * well as after the change is successfully made. ! * ! * @param prop the name of the property to listen on ! * @param listener the listener to listen on the property. ! */ ! void addVetoableChangeListener(String prop, VetoableChangeListener listener); ! /** ! * Remove a listener to a certain property. ! * @param prop the name of the property being listened on ! * @param listener the listener listening on the property. ! */ ! void removeVetoableChangeListener(String prop, VetoableChangeListener listener); } --- 77,174 ---- */ public interface BeanContextChild { ! /** ! * Set the parent BeanContext. ! *

            ! * ! * This method is called from BeanContext.add() and ! * should not be called directly. ! *

            ! * ! * When this Object is being added to a new BeanContext or moved ! * from an old one, a non-null value will be passed in. ! *

            ! * ! * When this Object is being removed from the current ! * BeanContext, setBeanContext() will ! * receive the parameter null. ! *

            ! * ! * When being removed from the current BeanContext, ! * it is the BeanContextChild's responsibility to ! * release all services it has obtained. ! *

            ! * ! * This change should generate PropertyChangeEvent ! * and VetoableChangeEvents with the property name ! * "beanContext". If the change is vetoed, it must re-throw the ! * exception and not change anything. In this way, the parent ! * BeanContextChild, who has registered himself with ! * you, will have a chance to remove this child from its ! * collection. ! *

            ! * ! * If the Bean does not wish to change the parent or be removed ! * from one, it may throw the PropertyVetoException. ! * If you veto a setBeanContext(null) call, then you ! * should try your hardest to remedy whatever problem is keeping ! * you from being removed from the BeanContext so ! * that you can not veto it the next time. ! * Otherwise, nasty pathological recursion stuff could occur in ! * certain situations. ! *

            ! * ! * If you do veto the change, you must first back out any changes ! * you made prior to the veto. Best not to make any such changes ! * prior to the veto in the first place. ! *

            ! * ! * This method is called from BeanContext.add() and ! * should not be called directly. ! * ! * @param parent the new parent for the BeanContextChild, ! * or null to signify removal from a tree. ! * @exception PropertyVetoException if the ! * BeanContextChild implementor does not ! * wish to have its parent changed. ! */ ! void setBeanContext(BeanContext parent) ! throws PropertyVetoException; ! /** ! * Get the parent BeanContext. ! * @return the parent BeanContext. ! */ ! BeanContext getBeanContext(); ! /** ! * Add a listener that will be notified when a specific property changes. ! * @param prop the name of the property to listen on ! * @param listener the listener to listen on the property. ! */ ! void addPropertyChangeListener(String prop, PropertyChangeListener listener); ! /** ! * Remove a listener to a certain property. ! * @param prop the name of the property being listened on ! * @param listener the listener listening on the property. ! */ ! void removePropertyChangeListener(String prop, PropertyChangeListener listener); ! /** ! * Add a listener that will be notified when a specific property ! * change is requested (a PropertyVetoException may be thrown) as ! * well as after the change is successfully made. ! * ! * @param prop the name of the property to listen on ! * @param listener the listener to listen on the property. ! */ ! void addVetoableChangeListener(String prop, VetoableChangeListener listener); ! /** ! * Remove a listener to a certain property. ! * @param prop the name of the property being listened on ! * @param listener the listener listening on the property. ! */ ! void removeVetoableChangeListener(String prop, VetoableChangeListener listener); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextChildComponentProxy.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextChildComponentProxy.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextChildComponentProxy.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextChildComponentProxy.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.awt.Component; *** 51,60 **** */ public interface BeanContextChildComponentProxy { ! /** ! * Get the Component associated with this BeanContextChild. ! * @return the Component associated with this ! * BeanContextChild. ! */ ! Component getComponent(); } --- 51,60 ---- */ public interface BeanContextChildComponentProxy { ! /** ! * Get the Component associated with this BeanContextChild. ! * @return the Component associated with this ! * BeanContextChild. ! */ ! Component getComponent(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextChildSupport.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextChildSupport.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextChildSupport.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextChildSupport.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class BeanContextChildSupport *** 64,184 **** { static final long serialVersionUID = 6328947014421475877L; ! /** ! * The peer on which to perform set actions. ! * This is here so that this class can be used as a peer. ! *

            ! * ! * When extending this class, this variable will be set to ! * this. ! */ ! public BeanContextChild beanContextChildPeer; ! /** ! * The parent BeanContext. ! */ ! protected transient BeanContext beanContext; ! /** ! * If setBeanContext() was vetoed once before, this ! * is set to true so that the next time, vetoes will ! * be ignored. ! */ ! protected transient boolean rejectedSetBCOnce; ! /** ! * Listeners are registered here and events are fired through here. ! */ ! protected PropertyChangeSupport pcSupport; ! /** ! * Listeners are registered here and events are fired through here. ! */ ! protected VetoableChangeSupport vcSupport; ! /** ! * Create a new BeanContextChildSupport with itself as the peer. ! * This is meant to be used when you subclass ! * BeanContextChildSupport to create your child. ! */ ! public BeanContextChildSupport() { ! this (null); ! } ! /** ! * Create a new BeanContextChildSupport with the specified peer. ! * @param peer the peer to use, or null to specify ! * this. ! */ ! public BeanContextChildSupport (BeanContextChild peer) { ! if (peer == null) { peer = this; } ! beanContextChildPeer = peer; ! pcSupport = new PropertyChangeSupport (peer); ! vcSupport = new VetoableChangeSupport (peer); ! } ! /** ! * Set the parent BeanContext. ! *

            ! * ! * When this Object is being added to a new BeanContext or moved ! * from an old one, a non-null value will be passed in. ! *

            ! * ! * When this Object is being removed from the current ! * BeanContext, setBeanContext() will ! * receive the parameter null. ! *

            ! * ! * Order of events: ! *

              ! *
            1. ! * If the new BeanContext is the same as the old ! * one, nothing happens. ! *
            2. ! *
            3. ! * If the change has not been rejected or vetoed before, call ! * validatePendingSetBeanContext(). If this call ! * returns false, the change is rejected and a ! * PropertyVetoException is thrown. ! *
            4. ! *
            5. ! * If the change has not been rejected or vetoed before, ! * VetoableChangeEvents are fired with the name ! * "beanContext", using the ! * fireVetoableChange() method. If a veto ! * occurs, reversion events are fired using the same method, ! * the change is rejected, and the veto is rethrown. ! *
            6. ! *
            7. ! * releaseBeanContextResources() is called. ! *
            8. ! *
            9. ! * The change is made. ! *
            10. ! *
            11. ! * PropertyChangeEvents are fired using the ! * firePropertyChange() method. ! *
            12. ! *
            13. ! * initializeBeanContextResources() is called. ! *
            14. ! *
            ! *

            ! * ! * @param newBeanContext the new parent for the ! * BeanContextChild, or null to ! * signify removal from a tree. ! * @exception PropertyVetoException if the ! * BeanContextChild implementor does not ! * wish to have its parent changed. ! */ public void setBeanContext(BeanContext newBeanContext) throws PropertyVetoException { --- 64,184 ---- { static final long serialVersionUID = 6328947014421475877L; ! /** ! * The peer on which to perform set actions. ! * This is here so that this class can be used as a peer. ! *

            ! * ! * When extending this class, this variable will be set to ! * this. ! */ ! public BeanContextChild beanContextChildPeer; ! /** ! * The parent BeanContext. ! */ ! protected transient BeanContext beanContext; ! /** ! * If setBeanContext() was vetoed once before, this ! * is set to true so that the next time, vetoes will ! * be ignored. ! */ ! protected transient boolean rejectedSetBCOnce; ! /** ! * Listeners are registered here and events are fired through here. ! */ ! protected PropertyChangeSupport pcSupport; ! /** ! * Listeners are registered here and events are fired through here. ! */ ! protected VetoableChangeSupport vcSupport; ! /** ! * Create a new BeanContextChildSupport with itself as the peer. ! * This is meant to be used when you subclass ! * BeanContextChildSupport to create your child. ! */ ! public BeanContextChildSupport() { ! this (null); ! } ! /** ! * Create a new BeanContextChildSupport with the specified peer. ! * @param peer the peer to use, or null to specify ! * this. ! */ ! public BeanContextChildSupport (BeanContextChild peer) { ! if (peer == null) { peer = this; } ! beanContextChildPeer = peer; ! pcSupport = new PropertyChangeSupport (peer); ! vcSupport = new VetoableChangeSupport (peer); ! } ! /** ! * Set the parent BeanContext. ! *

            ! * ! * When this Object is being added to a new BeanContext or moved ! * from an old one, a non-null value will be passed in. ! *

            ! * ! * When this Object is being removed from the current ! * BeanContext, setBeanContext() will ! * receive the parameter null. ! *

            ! * ! * Order of events: ! *

              ! *
            1. ! * If the new BeanContext is the same as the old ! * one, nothing happens. ! *
            2. ! *
            3. ! * If the change has not been rejected or vetoed before, call ! * validatePendingSetBeanContext(). If this call ! * returns false, the change is rejected and a ! * PropertyVetoException is thrown. ! *
            4. ! *
            5. ! * If the change has not been rejected or vetoed before, ! * VetoableChangeEvents are fired with the name ! * "beanContext", using the ! * fireVetoableChange() method. If a veto ! * occurs, reversion events are fired using the same method, ! * the change is rejected, and the veto is rethrown. ! *
            6. ! *
            7. ! * releaseBeanContextResources() is called. ! *
            8. ! *
            9. ! * The change is made. ! *
            10. ! *
            11. ! * PropertyChangeEvents are fired using the ! * firePropertyChange() method. ! *
            12. ! *
            13. ! * initializeBeanContextResources() is called. ! *
            14. ! *
            ! *

            ! * ! * @param newBeanContext the new parent for the ! * BeanContextChild, or null to ! * signify removal from a tree. ! * @exception PropertyVetoException if the ! * BeanContextChild implementor does not ! * wish to have its parent changed. ! */ public void setBeanContext(BeanContext newBeanContext) throws PropertyVetoException { *************** public class BeanContextChildSupport *** 195,201 **** throw new PropertyVetoException ("validatePendingSetBeanContext() rejected change", new PropertyChangeEvent(beanContextChildPeer, "beanContext", beanContext, newBeanContext)); } ! try { fireVetoableChange ("beanContext", beanContext, newBeanContext); --- 195,201 ---- throw new PropertyVetoException ("validatePendingSetBeanContext() rejected change", new PropertyChangeEvent(beanContextChildPeer, "beanContext", beanContext, newBeanContext)); } ! try { fireVetoableChange ("beanContext", beanContext, newBeanContext); *************** public class BeanContextChildSupport *** 207,381 **** } } ! releaseBeanContextResources (); ! beanContext = newBeanContext; ! rejectedSetBCOnce = false; ! firePropertyChange ("beanContext", beanContext, newBeanContext); ! initializeBeanContextResources (); ! } ! } ! /** ! * Get the parent BeanContext. ! * @return the parent BeanContext. ! */ ! public BeanContext getBeanContext() { ! return beanContext; ! } ! /** ! * Get the peer (or this if there is no peer). ! * @return the peer, or this if there is no peer. ! */ ! public BeanContextChild getBeanContextChildPeer() { ! return beanContextChildPeer; ! } ! /** ! * Determine whether there is a peer. ! * This is true iff getBeanContextChildPeer() == this. ! * @return whether there is a peer. ! */ ! public boolean isDelegated() { ! return beanContextChildPeer == this; ! } ! /** ! * Add a listener that will be notified when a specific property changes. ! * @param propertyName the name of the property to listen on. ! * @param listener the listener to listen on the property. ! */ ! public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { ! pcSupport.addPropertyChangeListener(propertyName, listener); ! } ! /** ! * Remove a listener to a certain property. ! * ! * @param propertyName the name of the property being listened on. ! * @param listener the listener listening on the property. ! */ ! public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { ! pcSupport.removePropertyChangeListener(propertyName, listener); ! } ! /** ! * Add a listener that will be notified when a specific property ! * change is requested (a PropertyVetoException may be thrown) as ! * well as after the change is successfully made. ! * ! * @param propertyName the name of the property to listen on. ! * @param listener the listener to listen on the property. ! */ ! public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener) { ! vcSupport.addVetoableChangeListener(propertyName, listener); ! } ! /** ! * Remove a listener to a certain property. ! * ! * @param propertyName the name of the property being listened on ! * @param listener the listener listening on the property. ! */ ! public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener) { ! vcSupport.removeVetoableChangeListener(propertyName, listener); ! } ! /** ! * Fire a property change. ! * ! * @param propertyName the name of the property that changed ! * @param oldVal the old value of the property ! * @param newVal the new value of the property ! */ ! public void firePropertyChange(String propertyName, Object oldVal, Object newVal) { ! pcSupport.firePropertyChange(propertyName, oldVal, newVal); ! } ! /** ! * Fire a vetoable property change. ! * ! * @param propertyName the name of the property that changed ! * @param oldVal the old value of the property ! * @param newVal the new value of the property ! * @exception PropertyVetoException if the change is vetoed. ! */ ! public void fireVetoableChange(String propertyName, Object oldVal, Object newVal) throws PropertyVetoException { ! vcSupport.fireVetoableChange(propertyName, oldVal, newVal); ! } ! /** ! * Called by BeanContextServices.revokeService() to indicate that a service has been revoked. ! * If you have a reference to such a service, it should be ! * discarded and may no longer function properly. ! * getService() will no longer work on the specified ! * service class after this event has been fired. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation does ! * nothing. ! * ! * @param event the service revoked event. ! * @see java.beans.beancontext.BeanContextServices#revokeService(java.lang.Class,java.beans.beancontext.BeanContextServiceProvider,boolean) ! */ ! public void serviceRevoked(BeanContextServiceRevokedEvent event) { ! } ! /** ! * Called by BeanContextServices whenever a service is made available. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation does ! * nothing. ! * ! * @param event the service revoked event, with useful information ! * about the new service. ! */ ! public void serviceAvailable(BeanContextServiceAvailableEvent event) { ! } ! /** ! * Called by setBeanContext() to determine whether the set should be rejected. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation simply ! * returns true. ! * ! * @param newBeanContext the new parent. ! * @return whether to allow the parent to be changed to the new ! * value. ! */ ! public boolean validatePendingSetBeanContext(BeanContext newBeanContext) { ! return true; ! } ! /** ! * Called by setBeanContext() to release resources of a what will soon no longer be the parent. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation does ! * nothing. ! */ ! protected void releaseBeanContextResources() { ! } ! /** ! * Called by setBeanContext() to grab resources when the parent has been set. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation does ! * nothing. ! */ ! protected void initializeBeanContextResources() { ! } } --- 207,381 ---- } } ! releaseBeanContextResources (); ! beanContext = newBeanContext; ! rejectedSetBCOnce = false; ! firePropertyChange ("beanContext", beanContext, newBeanContext); ! initializeBeanContextResources (); ! } ! } ! /** ! * Get the parent BeanContext. ! * @return the parent BeanContext. ! */ ! public BeanContext getBeanContext() { ! return beanContext; ! } ! /** ! * Get the peer (or this if there is no peer). ! * @return the peer, or this if there is no peer. ! */ ! public BeanContextChild getBeanContextChildPeer() { ! return beanContextChildPeer; ! } ! /** ! * Determine whether there is a peer. ! * This is true iff getBeanContextChildPeer() == this. ! * @return whether there is a peer. ! */ ! public boolean isDelegated() { ! return beanContextChildPeer == this; ! } ! /** ! * Add a listener that will be notified when a specific property changes. ! * @param propertyName the name of the property to listen on. ! * @param listener the listener to listen on the property. ! */ ! public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { ! pcSupport.addPropertyChangeListener(propertyName, listener); ! } ! /** ! * Remove a listener to a certain property. ! * ! * @param propertyName the name of the property being listened on. ! * @param listener the listener listening on the property. ! */ ! public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { ! pcSupport.removePropertyChangeListener(propertyName, listener); ! } ! /** ! * Add a listener that will be notified when a specific property ! * change is requested (a PropertyVetoException may be thrown) as ! * well as after the change is successfully made. ! * ! * @param propertyName the name of the property to listen on. ! * @param listener the listener to listen on the property. ! */ ! public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener) { ! vcSupport.addVetoableChangeListener(propertyName, listener); ! } ! /** ! * Remove a listener to a certain property. ! * ! * @param propertyName the name of the property being listened on ! * @param listener the listener listening on the property. ! */ ! public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener) { ! vcSupport.removeVetoableChangeListener(propertyName, listener); ! } ! /** ! * Fire a property change. ! * ! * @param propertyName the name of the property that changed ! * @param oldVal the old value of the property ! * @param newVal the new value of the property ! */ ! public void firePropertyChange(String propertyName, Object oldVal, Object newVal) { ! pcSupport.firePropertyChange(propertyName, oldVal, newVal); ! } ! /** ! * Fire a vetoable property change. ! * ! * @param propertyName the name of the property that changed ! * @param oldVal the old value of the property ! * @param newVal the new value of the property ! * @exception PropertyVetoException if the change is vetoed. ! */ ! public void fireVetoableChange(String propertyName, Object oldVal, Object newVal) throws PropertyVetoException { ! vcSupport.fireVetoableChange(propertyName, oldVal, newVal); ! } ! /** ! * Called by BeanContextServices.revokeService() to indicate that a service has been revoked. ! * If you have a reference to such a service, it should be ! * discarded and may no longer function properly. ! * getService() will no longer work on the specified ! * service class after this event has been fired. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation does ! * nothing. ! * ! * @param event the service revoked event. ! * @see java.beans.beancontext.BeanContextServices#revokeService(java.lang.Class,java.beans.beancontext.BeanContextServiceProvider,boolean) ! */ ! public void serviceRevoked(BeanContextServiceRevokedEvent event) { ! } ! /** ! * Called by BeanContextServices whenever a service is made available. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation does ! * nothing. ! * ! * @param event the service revoked event, with useful information ! * about the new service. ! */ ! public void serviceAvailable(BeanContextServiceAvailableEvent event) { ! } ! /** ! * Called by setBeanContext() to determine whether the set should be rejected. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation simply ! * returns true. ! * ! * @param newBeanContext the new parent. ! * @return whether to allow the parent to be changed to the new ! * value. ! */ ! public boolean validatePendingSetBeanContext(BeanContext newBeanContext) { ! return true; ! } ! /** ! * Called by setBeanContext() to release resources of a what will soon no longer be the parent. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation does ! * nothing. ! */ ! protected void releaseBeanContextResources() { ! } ! /** ! * Called by setBeanContext() to grab resources when the parent has been set. ! *

            ! * ! * This method is meant to be overriden. ! * BeanContextChildSupport's implementation does ! * nothing. ! */ ! protected void initializeBeanContextResources() { ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextContainerProxy.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextContainerProxy.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextContainerProxy.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextContainerProxy.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.awt.Container; *** 54,63 **** */ public interface BeanContextContainerProxy { ! /** ! * Get the Container associated with this BeanContext. ! * @return the Container associated with this ! * BeanContext. ! */ ! Container getContainer(); } --- 54,63 ---- */ public interface BeanContextContainerProxy { ! /** ! * Get the Container associated with this BeanContext. ! * @return the Container associated with this ! * BeanContext. ! */ ! Container getContainer(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextEvent.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextEvent.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextEvent.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.EventObject; *** 50,56 **** public abstract class BeanContextEvent extends EventObject { private static final long serialVersionUID = 7267998073569045052L; ! /** * The BeanContext that most recently passed this * event on. --- 50,56 ---- public abstract class BeanContextEvent extends EventObject { private static final long serialVersionUID = 7267998073569045052L; ! /** * The BeanContext that most recently passed this * event on. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextMembershipEvent.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextMembershipEvent.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextMembershipEvent.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextMembershipEvent.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class BeanContextMembershipEvent *** 55,114 **** private static final long serialVersionUID = 3499346510334590959L; /** ! * The children that were added or removed. ! */ ! protected Collection children; ! /** ! * Create a new membership event. ! * @param context the event source. ! * @param children the children added to or removed from the source. ! */ ! public BeanContextMembershipEvent(BeanContext context, Collection children) { ! super(context); ! this.children = children; ! } ! /** ! * Create a new membership event. ! * @param context the event source. ! * @param children the children added to or removed from the source. ! */ ! public BeanContextMembershipEvent(BeanContext context, Object[] children) { ! super(context); ! this.children = Arrays.asList(children); ! } ! /** ! * The number of children removed or added. ! * @return the number of children removed or added. ! */ ! public int size() { ! return children.size(); ! } ! /** ! * An iterator that will step through all the children. ! * @return an iterator over all the children. ! */ ! public Iterator iterator() { ! return children.iterator(); ! } ! /** ! * An array of the children. ! * @return an array of the children. ! */ ! public Object[] toArray() { ! return children.toArray(); ! } ! /** ! * Tell whether the Object is one of the children added or removed. ! * @param child the child to check. ! * @return whether the Object is added or removed. ! */ ! public boolean contains(Object child) { ! return children.contains(child); ! } } --- 55,114 ---- private static final long serialVersionUID = 3499346510334590959L; /** ! * The children that were added or removed. ! */ ! protected Collection children; ! /** ! * Create a new membership event. ! * @param context the event source. ! * @param children the children added to or removed from the source. ! */ ! public BeanContextMembershipEvent(BeanContext context, Collection children) { ! super(context); ! this.children = children; ! } ! /** ! * Create a new membership event. ! * @param context the event source. ! * @param children the children added to or removed from the source. ! */ ! public BeanContextMembershipEvent(BeanContext context, Object[] children) { ! super(context); ! this.children = Arrays.asList(children); ! } ! /** ! * The number of children removed or added. ! * @return the number of children removed or added. ! */ ! public int size() { ! return children.size(); ! } ! /** ! * An iterator that will step through all the children. ! * @return an iterator over all the children. ! */ ! public Iterator iterator() { ! return children.iterator(); ! } ! /** ! * An array of the children. ! * @return an array of the children. ! */ ! public Object[] toArray() { ! return children.toArray(); ! } ! /** ! * Tell whether the Object is one of the children added or removed. ! * @param child the child to check. ! * @return whether the Object is added or removed. ! */ ! public boolean contains(Object child) { ! return children.contains(child); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextMembershipListener.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextMembershipListener.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextMembershipListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextMembershipListener.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.EventListener; *** 50,70 **** */ public interface BeanContextMembershipListener extends EventListener { ! /** ! * When beans are added to a BeanContext, ! * this method is called to fire the event. ! * ! * @param event the event, including which children were added. ! * @see java.beans.beancontext.BeanContext#add(java.lang.Object) ! */ ! void childrenAdded(BeanContextMembershipEvent event); ! /** ! * When beans are removed from a BeanContext, ! * this method is called to fire the event. ! * ! * @param event the event, including which children were removed. ! * @see java.beans.beancontext.BeanContext#remove(java.lang.Object) ! */ ! void childrenRemoved(BeanContextMembershipEvent event); } --- 50,70 ---- */ public interface BeanContextMembershipListener extends EventListener { ! /** ! * When beans are added to a BeanContext, ! * this method is called to fire the event. ! * ! * @param event the event, including which children were added. ! * @see java.beans.beancontext.BeanContext#add(java.lang.Object) ! */ ! void childrenAdded(BeanContextMembershipEvent event); ! /** ! * When beans are removed from a BeanContext, ! * this method is called to fire the event. ! * ! * @param event the event, including which children were removed. ! * @see java.beans.beancontext.BeanContext#remove(java.lang.Object) ! */ ! void childrenRemoved(BeanContextMembershipEvent event); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextProxy.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextProxy.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextProxy.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextProxy.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans.beancontext; *** 54,65 **** */ public interface BeanContextProxy { ! /** ! * Return the BeanContextChild associated with this ! * Object. ! * ! * @return the BeanContextChild associated with this ! * Object. ! */ ! BeanContextChild getBeanContextProxy(); } --- 54,65 ---- */ public interface BeanContextProxy { ! /** ! * Return the BeanContextChild associated with this ! * Object. ! * ! * @return the BeanContextChild associated with this ! * Object. ! */ ! BeanContextChild getBeanContextProxy(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceAvailableEvent.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceAvailableEvent.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceAvailableEvent.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceAvailableEvent.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class BeanContextServiceAvailable *** 52,97 **** private static final long serialVersionUID = -5333985775656400778L; /** ! * The Class representing the service which is now ! * available. ! */ ! protected Class serviceClass; ! /** ! * Create a new service available event. ! * @param services the BeanContextServices through ! * which the service is available. This is also the source ! * of the event. ! * @param serviceClass the service class that is now available. ! */ ! public BeanContextServiceAvailableEvent(BeanContextServices services, Class serviceClass) { ! super(services); ! this.serviceClass = serviceClass; ! } ! /** ! * Get the current service selectors of the service class. ! * This is identical to getSourceAsBeanContextServices().getCurrentServiceSelectors(getServiceClass()) ! * @return the current service selectors of the service class. ! */ ! public Iterator getCurrentServiceSelectors() { ! return getSourceAsBeanContextServices().getCurrentServiceSelectors(serviceClass); ! } ! /** ! * Get the newly available service class. ! * @return the service class. ! */ ! public Class getServiceClass() { ! return serviceClass; ! } ! /** ! * Get the BeanContextServices through which the new service is available. ! * @return the BeanContextServices through which the ! * new service is available. ! */ ! public BeanContextServices getSourceAsBeanContextServices() { ! return (BeanContextServices)getSource(); ! } } --- 52,97 ---- private static final long serialVersionUID = -5333985775656400778L; /** ! * The Class representing the service which is now ! * available. ! */ ! protected Class serviceClass; ! /** ! * Create a new service available event. ! * @param services the BeanContextServices through ! * which the service is available. This is also the source ! * of the event. ! * @param serviceClass the service class that is now available. ! */ ! public BeanContextServiceAvailableEvent(BeanContextServices services, Class serviceClass) { ! super(services); ! this.serviceClass = serviceClass; ! } ! /** ! * Get the current service selectors of the service class. ! * This is identical to getSourceAsBeanContextServices().getCurrentServiceSelectors(getServiceClass()) ! * @return the current service selectors of the service class. ! */ ! public Iterator getCurrentServiceSelectors() { ! return getSourceAsBeanContextServices().getCurrentServiceSelectors(serviceClass); ! } ! /** ! * Get the newly available service class. ! * @return the service class. ! */ ! public Class getServiceClass() { ! return serviceClass; ! } ! /** ! * Get the BeanContextServices through which the new service is available. ! * @return the BeanContextServices through which the ! * new service is available. ! */ ! public BeanContextServices getSourceAsBeanContextServices() { ! return (BeanContextServices)getSource(); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceProvider.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceProvider.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceProvider.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceProvider.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Iterator; *** 60,138 **** */ public interface BeanContextServiceProvider { ! /** ! * Get a service. ! * Called from BeanContextServices.getService(). ! * ! *

            If the requested service class is not available, or if this ! * BeanContextServiceProvider chooses not honor the ! * request for some reason, then this method will return ! * null.

            ! * ! * This method may throw unchecked exceptions, so watch out. ! * ! * @param services the BeanContextServices that wants ! * to get the service. Only weak references to this will ! * be retained, and it will never be changed, only queried ! * in a read-only manner. ! * @param requestor the actual requestor of the service. Only ! * weak references to this will be retained, and it will ! * never be changed, only queried in a read-only manner. ! * @param serviceClass the Class of the service being ! * requested. ! * @param serviceSelector a parameter to customize the service ! * returned with. ! * @return an instance of serviceClass (such that ! * instanceof serviceClass is true), or ! * null. ! * @see java.beans.beancontext.BeanContextServices#getService(java.beans.beancontext.BeanContextChild,java.lang.Object,java.lang.Class,java.lang.Object,java.beans.beancontext.BeanContextServiceRevokedListener) ! */ ! Object getService(BeanContextServices services, Object requestor, Class serviceClass, Object serviceSelector); ! /** ! * Release the service. ! *

            ! * ! * Called by BeanContextServices.releaseService(). ! *

            ! * ! * Most BeanContextServiceProviders won't have to do ! * anything here. ! * ! * @param services the BeanContextServices that wants ! * to release the service. Only weak references to this will ! * be retained, and it will never be changed, only queried ! * in a read-only manner. ! * @param requestor the original requestor of the service. ! * @param service the service to relinquish ! * @see java.beans.beancontext.BeanContextServices#releaseService(java.beans.beancontext.BeanContextChild,java.lang.Object,java.lang.Object) ! */ ! void releaseService(BeanContextServices services, Object requestor, Object service); ! /** ! * Get a list of valid service selectors for the specified service class. ! * This method is called from ! * BeanContextServices.getCurrentServiceSelectors(). ! *

            ! * ! * If the specified service class does not have a finite number of ! * valid service selectors, it should return null. ! * If it takes a general Integer parameter, for ! * example, you may as well return null or the poor ! * soul who called this method will be iterating all day. ! *

            ! * ! * If it has no valid service selectors, it should still return an empty ! * Iterator. ! * ! * @param services the BeanContextServices that wants ! * to get the service selectors. Only weak references to this will ! * be retained, and it will never be changed, only queried ! * in a read-only manner. ! * @param serviceClass the service class to get selectors for. ! * @return a list of valid service selectors for the service ! * class, or null. ! * @see java.beans.beancontext.BeanContextServices#getCurrentServiceSelectors(java.lang.Class) ! */ ! Iterator getCurrentServiceSelectors(BeanContextServices services, Class serviceClass); } --- 60,138 ---- */ public interface BeanContextServiceProvider { ! /** ! * Get a service. ! * Called from BeanContextServices.getService(). ! * ! *

            If the requested service class is not available, or if this ! * BeanContextServiceProvider chooses not honor the ! * request for some reason, then this method will return ! * null.

            ! * ! * This method may throw unchecked exceptions, so watch out. ! * ! * @param services the BeanContextServices that wants ! * to get the service. Only weak references to this will ! * be retained, and it will never be changed, only queried ! * in a read-only manner. ! * @param requestor the actual requestor of the service. Only ! * weak references to this will be retained, and it will ! * never be changed, only queried in a read-only manner. ! * @param serviceClass the Class of the service being ! * requested. ! * @param serviceSelector a parameter to customize the service ! * returned with. ! * @return an instance of serviceClass (such that ! * instanceof serviceClass is true), or ! * null. ! * @see java.beans.beancontext.BeanContextServices#getService(java.beans.beancontext.BeanContextChild,java.lang.Object,java.lang.Class,java.lang.Object,java.beans.beancontext.BeanContextServiceRevokedListener) ! */ ! Object getService(BeanContextServices services, Object requestor, Class serviceClass, Object serviceSelector); ! /** ! * Release the service. ! *

            ! * ! * Called by BeanContextServices.releaseService(). ! *

            ! * ! * Most BeanContextServiceProviders won't have to do ! * anything here. ! * ! * @param services the BeanContextServices that wants ! * to release the service. Only weak references to this will ! * be retained, and it will never be changed, only queried ! * in a read-only manner. ! * @param requestor the original requestor of the service. ! * @param service the service to relinquish ! * @see java.beans.beancontext.BeanContextServices#releaseService(java.beans.beancontext.BeanContextChild,java.lang.Object,java.lang.Object) ! */ ! void releaseService(BeanContextServices services, Object requestor, Object service); ! /** ! * Get a list of valid service selectors for the specified service class. ! * This method is called from ! * BeanContextServices.getCurrentServiceSelectors(). ! *

            ! * ! * If the specified service class does not have a finite number of ! * valid service selectors, it should return null. ! * If it takes a general Integer parameter, for ! * example, you may as well return null or the poor ! * soul who called this method will be iterating all day. ! *

            ! * ! * If it has no valid service selectors, it should still return an empty ! * Iterator. ! * ! * @param services the BeanContextServices that wants ! * to get the service selectors. Only weak references to this will ! * be retained, and it will never be changed, only queried ! * in a read-only manner. ! * @param serviceClass the service class to get selectors for. ! * @return a list of valid service selectors for the service ! * class, or null. ! * @see java.beans.beancontext.BeanContextServices#getCurrentServiceSelectors(java.lang.Class) ! */ ! Iterator getCurrentServiceSelectors(BeanContextServices services, Class serviceClass); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.beans.BeanInfo; *** 52,60 **** * @since JDK1.2 */ public interface BeanContextServiceProviderBeanInfo extends BeanInfo { ! /** ! * Get BeanInfos for all of the service classes of this BeanInfoServiceProvider. ! * @return BeanInfos for all provided service classes. ! */ ! BeanInfo[] getServicesBeanInfo(); } --- 52,60 ---- * @since JDK1.2 */ public interface BeanContextServiceProviderBeanInfo extends BeanInfo { ! /** ! * Get BeanInfos for all of the service classes of this BeanInfoServiceProvider. ! * @return BeanInfos for all provided service classes. ! */ ! BeanInfo[] getServicesBeanInfo(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceRevokedEvent.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceRevokedEvent.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceRevokedEvent.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceRevokedEvent.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class BeanContextServiceRevokedEv *** 50,112 **** private static final long serialVersionUID = -1295543154724961754L; /** ! * The Class representing the service which is now ! * available. ! */ ! protected Class serviceClass; ! private boolean invalidateRefs; ! /** ! * Create a new service revoked event. ! * @param services the BeanContextServices through ! * which the service was available. This is also the source ! * of the event. ! * @param serviceClass the service class that is now revoked. ! * @param revokeNow whether the revocation is immediate for all ! * classes or just a suggestion. ! */ ! public BeanContextServiceRevokedEvent(BeanContextServices services, Class serviceClass, boolean revokeNow) { ! super(services); ! this.serviceClass = serviceClass; ! invalidateRefs = revokeNow; ! } ! /** ! * Get the revoked service class. ! * @return the service class. ! */ ! public Class getServiceClass() { ! return serviceClass; ! } ! /** ! * Tell whether the revoked service class is the same as the specified class. ! * Identical to getServiceClass().equals(c). ! * @param c the class to compare. ! * @return whether the clases are equal. ! */ ! public boolean isServiceClass(Class c) { ! return serviceClass.equals(c); ! } ! /** ! * Get the BeanContextServices through which the service was available. ! * @return the BeanContextServices through which the ! * service was available. ! */ ! public BeanContextServices getSourceAsBeanContextServices() { ! return (BeanContextServices)getSource(); ! } ! /** ! * Tell whether current instances of the revoked service are usable or not. ! * This is determined by whether the service was revoked ! * immediately. ! * ! * @return whether current instances of the revoked service are ! * usable. ! */ ! public boolean isCurrentServiceInvalidNow() { ! return invalidateRefs; ! } } --- 50,112 ---- private static final long serialVersionUID = -1295543154724961754L; /** ! * The Class representing the service which is now ! * available. ! */ ! protected Class serviceClass; ! private boolean invalidateRefs; ! /** ! * Create a new service revoked event. ! * @param services the BeanContextServices through ! * which the service was available. This is also the source ! * of the event. ! * @param serviceClass the service class that is now revoked. ! * @param revokeNow whether the revocation is immediate for all ! * classes or just a suggestion. ! */ ! public BeanContextServiceRevokedEvent(BeanContextServices services, Class serviceClass, boolean revokeNow) { ! super(services); ! this.serviceClass = serviceClass; ! invalidateRefs = revokeNow; ! } ! /** ! * Get the revoked service class. ! * @return the service class. ! */ ! public Class getServiceClass() { ! return serviceClass; ! } ! /** ! * Tell whether the revoked service class is the same as the specified class. ! * Identical to getServiceClass().equals(c). ! * @param c the class to compare. ! * @return whether the clases are equal. ! */ ! public boolean isServiceClass(Class c) { ! return serviceClass.equals(c); ! } ! /** ! * Get the BeanContextServices through which the service was available. ! * @return the BeanContextServices through which the ! * service was available. ! */ ! public BeanContextServices getSourceAsBeanContextServices() { ! return (BeanContextServices)getSource(); ! } ! /** ! * Tell whether current instances of the revoked service are usable or not. ! * This is determined by whether the service was revoked ! * immediately. ! * ! * @return whether current instances of the revoked service are ! * usable. ! */ ! public boolean isCurrentServiceInvalidNow() { ! return invalidateRefs; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceRevokedListener.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceRevokedListener.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServiceRevokedListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServiceRevokedListener.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.EventListener; *** 48,62 **** */ public interface BeanContextServiceRevokedListener extends EventListener { ! /** ! * Called by BeanContextServices.revokeService() to indicate that a service has been revoked. ! * If you have a reference to such a service, it should be ! * discarded and may no longer function properly. ! * getService() will no longer work on the specified ! * service class after this event has been fired. ! * ! * @param event the service revoked event. ! * @see java.beans.beancontext.BeanContextServices#revokeService(java.lang.Class,java.beans.beancontext.BeanContextServiceProvider,boolean) ! */ ! void serviceRevoked(BeanContextServiceRevokedEvent event); } --- 48,62 ---- */ public interface BeanContextServiceRevokedListener extends EventListener { ! /** ! * Called by BeanContextServices.revokeService() to indicate that a service has been revoked. ! * If you have a reference to such a service, it should be ! * discarded and may no longer function properly. ! * getService() will no longer work on the specified ! * service class after this event has been fired. ! * ! * @param event the service revoked event. ! * @see java.beans.beancontext.BeanContextServices#revokeService(java.lang.Class,java.beans.beancontext.BeanContextServiceProvider,boolean) ! */ ! void serviceRevoked(BeanContextServiceRevokedEvent event); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServices.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServices.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServices.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServices.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServicesListener.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServicesListener.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServicesListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServicesListener.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.beans.beancontext; *** 46,56 **** */ public interface BeanContextServicesListener extends BeanContextServiceRevokedListener { ! /** ! * Called by BeanContextServices whenever a service is made available. ! * ! * @param event the service revoked event, with useful information ! * about the new service. ! */ ! void serviceAvailable(BeanContextServiceAvailableEvent event); } --- 46,56 ---- */ public interface BeanContextServicesListener extends BeanContextServiceRevokedListener { ! /** ! * Called by BeanContextServices whenever a service is made available. ! * ! * @param event the service revoked event, with useful information ! * about the new service. ! */ ! void serviceAvailable(BeanContextServiceAvailableEvent event); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java Tue Jan 11 19:46:05 2011 *************** public class BeanContextServicesSupport *** 66,72 **** implements BeanContextServices { private static final long serialVersionUID = -8494482757288719206L; ! protected class BCSSChild extends BeanContextSupport.BCSChild { --- 66,72 ---- implements BeanContextServices { private static final long serialVersionUID = -8494482757288719206L; ! protected class BCSSChild extends BeanContextSupport.BCSChild { *************** public class BeanContextServicesSupport *** 103,109 **** Object serviceSelector) { return provider.getService(bcs, requestor, serviceClass, ! serviceSelector); } public void releaseService (BeanContextServices bcs, --- 103,109 ---- Object serviceSelector) { return provider.getService(bcs, requestor, serviceClass, ! serviceSelector); } public void releaseService (BeanContextServices bcs, *************** public class BeanContextServicesSupport *** 116,122 **** public void serviceRevoked (BeanContextServiceRevokedEvent bcsre) { if (provider instanceof BeanContextServiceRevokedListener) ! ((BeanContextServiceRevokedListener) provider).serviceRevoked(bcsre); } } --- 116,122 ---- public void serviceRevoked (BeanContextServiceRevokedEvent bcsre) { if (provider instanceof BeanContextServiceRevokedListener) ! ((BeanContextServiceRevokedListener) provider).serviceRevoked(bcsre); } } *************** public class BeanContextServicesSupport *** 130,136 **** private Class serviceClass; private BCSSServiceProvider(Class serviceClass, ! BeanContextServiceProvider provider) { this.serviceClass = serviceClass; serviceProvider = provider; --- 130,136 ---- private Class serviceClass; private BCSSServiceProvider(Class serviceClass, ! BeanContextServiceProvider provider) { this.serviceClass = serviceClass; serviceProvider = provider; *************** public class BeanContextServicesSupport *** 167,176 **** public boolean equals(Object obj) { if (obj instanceof Request) ! { ! Request req = (Request) obj; ! return req.getRequestor().equals(requestor); ! } return false; } --- 167,176 ---- public boolean equals(Object obj) { if (obj instanceof Request) ! { ! Request req = (Request) obj; ! return req.getRequestor().equals(requestor); ! } return false; } *************** public class BeanContextServicesSupport *** 194,200 **** private BeanContextServiceRevokedListener listener; public ServiceRequest(Object requestor, ! BeanContextServiceRevokedListener listener) { super(requestor); this.listener = listener; --- 194,200 ---- private BeanContextServiceRevokedListener listener; public ServiceRequest(Object requestor, ! BeanContextServiceRevokedListener listener) { super(requestor); this.listener = listener; *************** public class BeanContextServicesSupport *** 203,213 **** public boolean equals(Object obj) { if (obj instanceof ServiceRequest) ! { ! ServiceRequest sr = (ServiceRequest) obj; ! return (super.equals(obj) && ! sr.getListener().equals(listener)); ! } return false; } --- 203,213 ---- public boolean equals(Object obj) { if (obj instanceof ServiceRequest) ! { ! ServiceRequest sr = (ServiceRequest) obj; ! return (super.equals(obj) && ! sr.getListener().equals(listener)); ! } return false; } *************** public class BeanContextServicesSupport *** 238,248 **** public boolean equals(Object obj) { if (obj instanceof ServiceLease) ! { ! ServiceLease sl = (ServiceLease) obj; ! return (super.equals(obj) && ! sl.getService().equals(service)); ! } return false; } --- 238,248 ---- public boolean equals(Object obj) { if (obj instanceof ServiceLease) ! { ! ServiceLease sl = (ServiceLease) obj; ! return (super.equals(obj) && ! sl.getService().equals(service)); ! } return false; } *************** public class BeanContextServicesSupport *** 257,263 **** * and revocation notifications. */ protected transient ArrayList bcsListeners; ! protected transient BCSSProxyServiceProvider proxy; /** --- 257,263 ---- * and revocation notifications. */ protected transient ArrayList bcsListeners; ! protected transient BCSSProxyServiceProvider proxy; /** *************** public class BeanContextServicesSupport *** 297,303 **** /** * Construct a {@link BeanContextServicesSupport} instance. ! * * @param peer the bean context services peer (null permitted). */ public BeanContextServicesSupport (BeanContextServices peer) --- 297,303 ---- /** * Construct a {@link BeanContextServicesSupport} instance. ! * * @param peer the bean context services peer (null permitted). */ public BeanContextServicesSupport (BeanContextServices peer) *************** public class BeanContextServicesSupport *** 307,315 **** /** * Construct a {@link BeanContextServicesSupport} instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). */ public BeanContextServicesSupport(BeanContextServices peer, Locale locale) --- 307,315 ---- /** * Construct a {@link BeanContextServicesSupport} instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). */ public BeanContextServicesSupport(BeanContextServices peer, Locale locale) *************** public class BeanContextServicesSupport *** 319,327 **** /** * Construct a {@link BeanContextServicesSupport} instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). * @param dtime a flag indicating whether or not the bean context is in * design time mode. --- 319,327 ---- /** * Construct a {@link BeanContextServicesSupport} instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). * @param dtime a flag indicating whether or not the bean context is in * design time mode. *************** public class BeanContextServicesSupport *** 334,342 **** /** * Construct a {@link BeanContextServicesSupport} instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). * @param dtime a flag indicating whether or not the bean context is in * design time mode. --- 334,342 ---- /** * Construct a {@link BeanContextServicesSupport} instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). * @param dtime a flag indicating whether or not the bean context is in * design time mode. *************** public class BeanContextServicesSupport *** 347,353 **** { super(peer, locale, dtime, visible); } ! /** * Adds a new listener for service availability and * revocation events. --- 347,353 ---- { super(peer, locale, dtime, visible); } ! /** * Adds a new listener for service availability and * revocation events. *************** public class BeanContextServicesSupport *** 403,423 **** { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! if (services.containsKey(serviceClass)) ! return false; ! services.put(serviceClass, ! createBCSSServiceProvider(serviceClass, bcsp)); ! if (bcsp instanceof Serializable) ! ++serializable; ! if (fireEvent) ! fireServiceAdded(serviceClass); ! return true; ! } } } ! /** * Deserializes any service providers which are serializable. This * method is called by the readObject method of --- 403,423 ---- { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! if (services.containsKey(serviceClass)) ! return false; ! services.put(serviceClass, ! createBCSSServiceProvider(serviceClass, bcsp)); ! if (bcsp instanceof Serializable) ! ++serializable; ! if (fireEvent) ! fireServiceAdded(serviceClass); ! return true; ! } } } ! /** * Deserializes any service providers which are serializable. This * method is called by the readObject method of *************** public class BeanContextServicesSupport *** 436,443 **** serializable = ois.readInt(); for (int a = 0; a < serializable; ++a) { ! BCSSServiceProvider bcsssp = (BCSSServiceProvider) ois.readObject(); ! addService(bcsssp.getServiceClass(), bcsssp.getServiceProvider()); } } --- 436,443 ---- serializable = ois.readInt(); for (int a = 0; a < serializable; ++a) { ! BCSSServiceProvider bcsssp = (BCSSServiceProvider) ois.readObject(); ! addService(bcsssp.getServiceClass(), bcsssp.getServiceProvider()); } } *************** public class BeanContextServicesSupport *** 451,469 **** * @param oos the stream to which data is being serialized. * @throws IOException if an I/O error occurs. */ ! protected void bcsPreSerializationHook (ObjectOutputStream oos) throws IOException { oos.writeInt(serializable); synchronized (services) { ! Iterator i = services.values().iterator(); ! while (i.hasNext()) ! { ! BCSSServiceProvider bcsssp = (BCSSServiceProvider) i.next(); ! if (bcsssp.getServiceProvider() instanceof Serializable) ! oos.writeObject(bcsssp); ! } } } --- 451,469 ---- * @param oos the stream to which data is being serialized. * @throws IOException if an I/O error occurs. */ ! protected void bcsPreSerializationHook (ObjectOutputStream oos) throws IOException { oos.writeInt(serializable); synchronized (services) { ! Iterator i = services.values().iterator(); ! while (i.hasNext()) ! { ! BCSSServiceProvider bcsssp = (BCSSServiceProvider) i.next(); ! if (bcsssp.getServiceProvider() instanceof Serializable) ! oos.writeObject(bcsssp); ! } } } *************** public class BeanContextServicesSupport *** 476,492 **** * * @param child the child being removed. * @param bcsc the support object for the child. ! */ protected void childJustRemovedHook (Object child, BeanContextSupport.BCSChild bcsc) { if (child instanceof BeanContextChild) { ! BeanContextChild bcchild = (BeanContextChild) child; ! Iterator childServices = ((List) serviceUsers.get(bcchild)).iterator(); ! while (childServices.hasNext()) ! releaseService(bcchild, this, childServices.next()); ! serviceUsers.remove(bcchild); } } --- 476,492 ---- * * @param child the child being removed. * @param bcsc the support object for the child. ! */ protected void childJustRemovedHook (Object child, BeanContextSupport.BCSChild bcsc) { if (child instanceof BeanContextChild) { ! BeanContextChild bcchild = (BeanContextChild) child; ! Iterator childServices = ((List) serviceUsers.get(bcchild)).iterator(); ! while (childServices.hasNext()) ! releaseService(bcchild, this, childServices.next()); ! serviceUsers.remove(bcchild); } } *************** public class BeanContextServicesSupport *** 570,585 **** = (BeanContextServicesListener) bcsListeners.get(i); bcsl.serviceRevoked(event); } ! List requests = (List) serviceRequests.get(event.getServiceClass()); ! if (requests != null) ! { ! Iterator i = requests.iterator(); ! while (i.hasNext()) ! { ! ServiceRequest r = (ServiceRequest) i.next(); ! r.getListener().serviceRevoked(event); ! } ! } } } --- 570,585 ---- = (BeanContextServicesListener) bcsListeners.get(i); bcsl.serviceRevoked(event); } ! List requests = (List) serviceRequests.get(event.getServiceClass()); ! if (requests != null) ! { ! Iterator i = requests.iterator(); ! while (i.hasNext()) ! { ! ServiceRequest r = (ServiceRequest) i.next(); ! r.getListener().serviceRevoked(event); ! } ! } } } *************** public class BeanContextServicesSupport *** 609,628 **** } /** ! * Returns child as an instance of ! * {@link BeanContextServicesListener}, or null if * child does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link BeanContextServicesListener}. */ protected static final BeanContextServicesListener getChildBeanContextServicesListener(Object child) { ! if (child instanceof BeanContextServicesListener) return (BeanContextServicesListener) child; ! else return null; } --- 609,628 ---- } /** ! * Returns child as an instance of ! * {@link BeanContextServicesListener}, or null if * child does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link BeanContextServicesListener}. */ protected static final BeanContextServicesListener getChildBeanContextServicesListener(Object child) { ! if (child instanceof BeanContextServicesListener) return (BeanContextServicesListener) child; ! else return null; } *************** public class BeanContextServicesSupport *** 636,645 **** { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! return services.keySet().iterator(); ! } } } --- 636,645 ---- { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! return services.keySet().iterator(); ! } } } *************** public class BeanContextServicesSupport *** 660,675 **** { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! BeanContextServiceProvider bcsp ! = ((BCSSServiceProvider) ! services.get(serviceClass)).getServiceProvider(); ! if (bcsp == null) ! return null; ! else ! return bcsp.getCurrentServiceSelectors(this, serviceClass); ! } } } --- 660,675 ---- { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! BeanContextServiceProvider bcsp ! = ((BCSSServiceProvider) ! services.get(serviceClass)).getServiceProvider(); ! if (bcsp == null) ! return null; ! else ! return bcsp.getCurrentServiceSelectors(this, serviceClass); ! } } } *************** public class BeanContextServicesSupport *** 699,745 **** { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! Object service; ! BeanContextServiceProvider provider = ((BCSSServiceProvider) ! services.get(serviceClass)).getServiceProvider(); ! if (provider != null) ! { ! service = provider.getService(this, requestor, serviceClass, ! serviceSelector); ! List childServices = (List) serviceUsers.get(child); ! if (childServices == null) ! { ! childServices = new ArrayList(); ! serviceUsers.put(child, childServices); ! } ! childServices.add(serviceClass); ! } ! else ! { ! BeanContextServices peer = getBeanContextServicesPeer(); ! if (peer != null) ! service = peer.getService(child, requestor, serviceClass, ! serviceSelector, bcsrl); ! else ! service = null; ! } ! if (service != null) ! { ! ServiceRequest request = new ServiceRequest(requestor, bcsrl); ! Set requests = (Set) serviceRequests.get(serviceClass); ! if (requests == null) ! { ! requests = new HashSet(); ! serviceRequests.put(serviceClass, requests); ! } ! requests.add(request); ! ServiceLease lease = new ServiceLease(requestor, service); ! serviceLeases.put(lease, provider); ! } ! return service; ! } } } --- 699,745 ---- { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! Object service; ! BeanContextServiceProvider provider = ((BCSSServiceProvider) ! services.get(serviceClass)).getServiceProvider(); ! if (provider != null) ! { ! service = provider.getService(this, requestor, serviceClass, ! serviceSelector); ! List childServices = (List) serviceUsers.get(child); ! if (childServices == null) ! { ! childServices = new ArrayList(); ! serviceUsers.put(child, childServices); ! } ! childServices.add(serviceClass); ! } ! else ! { ! BeanContextServices peer = getBeanContextServicesPeer(); ! if (peer != null) ! service = peer.getService(child, requestor, serviceClass, ! serviceSelector, bcsrl); ! else ! service = null; ! } ! if (service != null) ! { ! ServiceRequest request = new ServiceRequest(requestor, bcsrl); ! Set requests = (Set) serviceRequests.get(serviceClass); ! if (requests == null) ! { ! requests = new HashSet(); ! serviceRequests.put(serviceClass, requests); ! } ! requests.add(request); ! ServiceLease lease = new ServiceLease(requestor, service); ! serviceLeases.put(lease, provider); ! } ! return service; ! } } } *************** public class BeanContextServicesSupport *** 753,762 **** { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! return services.containsKey(serviceClass); ! } } } --- 753,762 ---- { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! return services.containsKey(serviceClass); ! } } } *************** public class BeanContextServicesSupport *** 784,790 **** * Relinquishes any resources obtained from the parent context. * Specifically, those services obtained from the parent are revoked. * Subclasses may override this method to deallocate resources ! * from the nesting bean context. */ protected void releaseBeanContextResources() { --- 784,790 ---- * Relinquishes any resources obtained from the parent context. * Specifically, those services obtained from the parent are revoked. * Subclasses may override this method to deallocate resources ! * from the nesting bean context. */ protected void releaseBeanContextResources() { *************** public class BeanContextServicesSupport *** 806,826 **** { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! ServiceLease lease = new ServiceLease(requestor, service); ! BeanContextServiceProvider provider = (BeanContextServiceProvider) ! serviceLeases.get(lease); ! if (provider != null) ! provider.releaseService(this, requestor, service); ! else ! { ! BeanContextServices peer = getBeanContextServicesPeer(); ! if (peer != null) ! peer.releaseService(child, requestor, service); ! } ! serviceLeases.remove(lease); ! } } } --- 806,826 ---- { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! ServiceLease lease = new ServiceLease(requestor, service); ! BeanContextServiceProvider provider = (BeanContextServiceProvider) ! serviceLeases.get(lease); ! if (provider != null) ! provider.releaseService(this, requestor, service); ! else ! { ! BeanContextServices peer = getBeanContextServicesPeer(); ! if (peer != null) ! peer.releaseService(child, requestor, service); ! } ! serviceLeases.remove(lease); ! } } } *************** public class BeanContextServicesSupport *** 829,835 **** { synchronized (bcsListeners) { ! bcsListeners.remove(listener); } } --- 829,835 ---- { synchronized (bcsListeners) { ! bcsListeners.remove(listener); } } *************** public class BeanContextServicesSupport *** 850,862 **** { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! fireServiceRevoked(serviceClass, revokeCurrentServicesNow); ! services.remove(serviceClass); ! if (bcsp instanceof Serializable) ! --serializable; ! } } } --- 850,862 ---- { synchronized (globalHierarchyLock) { ! synchronized (services) ! { ! fireServiceRevoked(serviceClass, revokeCurrentServicesNow); ! services.remove(serviceClass); ! if (bcsp instanceof Serializable) ! --serializable; ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextSupport.java gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextSupport.java *** gcc-4.5.2/libjava/classpath/java/beans/beancontext/BeanContextSupport.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/beans/beancontext/BeanContextSupport.java Tue Jan 11 19:46:05 2011 *************** public class BeanContextSupport extends *** 188,194 **** /** * Construct a BeanContextSupport instance. ! * * @param peer the bean context peer (null permitted). */ public BeanContextSupport(BeanContext peer) --- 188,194 ---- /** * Construct a BeanContextSupport instance. ! * * @param peer the bean context peer (null permitted). */ public BeanContextSupport(BeanContext peer) *************** public class BeanContextSupport extends *** 198,206 **** /** * Construct a BeanContextSupport instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). */ public BeanContextSupport (BeanContext peer, Locale locale) --- 198,206 ---- /** * Construct a BeanContextSupport instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). */ public BeanContextSupport (BeanContext peer, Locale locale) *************** public class BeanContextSupport extends *** 210,218 **** /** * Construct a BeanContextSupport instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). * @param dtime a flag indicating whether or not the bean context is in * design time mode. --- 210,218 ---- /** * Construct a BeanContextSupport instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). * @param dtime a flag indicating whether or not the bean context is in * design time mode. *************** public class BeanContextSupport extends *** 224,232 **** /** * Construct a BeanContextSupport instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). * @param dtime a flag indicating whether or not the bean context is in * design time mode. --- 224,232 ---- /** * Construct a BeanContextSupport instance. ! * * @param peer the bean context peer (null permitted). ! * @param locale the locale (null permitted, equivalent to * the default locale). * @param dtime a flag indicating whether or not the bean context is in * design time mode. *************** public class BeanContextSupport extends *** 248,254 **** *

            * Add a child to the bean context. A child can be a simple * Object, a BeanContextChild ! * or another BeanContext. *

            *

            * The children of a BeanContext form a set. As --- 248,254 ---- *

            * Add a child to the bean context. A child can be a simple * Object, a BeanContextChild ! * or another BeanContext. *

            *

            * The children of a BeanContext form a set. As *************** public class BeanContextSupport extends *** 272,278 **** * then its ability to use a GUI is set based on that of * this context. *

            ! *

            * A BeanContextMembershipEvent is fired when the * child is successfully added to the bean context. *

            --- 272,278 ---- * then its ability to use a GUI is set based on that of * this context. *

            ! *

            * A BeanContextMembershipEvent is fired when the * child is successfully added to the bean context. *

            *************** public class BeanContextSupport extends *** 290,344 **** { synchronized (globalHierarchyLock) { ! if (targetChild == null) ! throw new IllegalArgumentException(); ! BCSChild child; ! synchronized (children) ! { ! if (children.containsKey(targetChild) ! || ! validatePendingAdd(targetChild)) ! return false; ! child = createBCSChild(targetChild, beanContextChildPeer); ! children.put(targetChild, child); ! } ! synchronized (targetChild) ! { ! BeanContextChild bcChild = null; ! if (targetChild instanceof BeanContextChild) ! bcChild = (BeanContextChild) targetChild; ! if (targetChild instanceof BeanContextProxy) ! bcChild = ((BeanContextProxy) targetChild).getBeanContextProxy(); ! if (bcChild != null) ! try ! { ! bcChild.setBeanContext(this); ! bcChild.addVetoableChangeListener("beanContext", this); ! bcChild.addPropertyChangeListener("beanContext", this); ! } ! catch (PropertyVetoException e) ! { ! synchronized (children) ! { ! children.remove(targetChild); ! } ! throw new IllegalStateException("The child refused to " + ! "associate itself with " + ! "this context.", e); ! } ! if (targetChild instanceof Visibility) ! { ! Visibility visibleChild = (Visibility) targetChild; ! if (okToUseGui) ! visibleChild.okToUseGui(); ! else ! visibleChild.dontUseGui(); ! } ! childJustAddedHook(targetChild, child); ! } ! fireChildrenAdded(new BeanContextMembershipEvent(this, ! new Object[]{ targetChild })); ! return true; } } --- 290,344 ---- { synchronized (globalHierarchyLock) { ! if (targetChild == null) ! throw new IllegalArgumentException(); ! BCSChild child; ! synchronized (children) ! { ! if (children.containsKey(targetChild) ! || ! validatePendingAdd(targetChild)) ! return false; ! child = createBCSChild(targetChild, beanContextChildPeer); ! children.put(targetChild, child); ! } ! synchronized (targetChild) ! { ! BeanContextChild bcChild = null; ! if (targetChild instanceof BeanContextChild) ! bcChild = (BeanContextChild) targetChild; ! if (targetChild instanceof BeanContextProxy) ! bcChild = ((BeanContextProxy) targetChild).getBeanContextProxy(); ! if (bcChild != null) ! try ! { ! bcChild.setBeanContext(this); ! bcChild.addVetoableChangeListener("beanContext", this); ! bcChild.addPropertyChangeListener("beanContext", this); ! } ! catch (PropertyVetoException e) ! { ! synchronized (children) ! { ! children.remove(targetChild); ! } ! throw new IllegalStateException("The child refused to " + ! "associate itself with " + ! "this context.", e); ! } ! if (targetChild instanceof Visibility) ! { ! Visibility visibleChild = (Visibility) targetChild; ! if (okToUseGui) ! visibleChild.okToUseGui(); ! else ! visibleChild.dontUseGui(); ! } ! childJustAddedHook(targetChild, child); ! } ! fireChildrenAdded(new BeanContextMembershipEvent(this, ! new Object[]{ targetChild })); ! return true; } } *************** public class BeanContextSupport extends *** 415,421 **** /** * Called when a child is deserialized. ! * * @param child the deserialized child. * @param bcsc the deserialized context wrapper for the child. */ --- 415,421 ---- /** * Called when a child is deserialized. ! * * @param child the deserialized child. * @param bcsc the deserialized context wrapper for the child. */ *************** public class BeanContextSupport extends *** 489,504 **** } /** ! * Deserializes objects (written by {@link #serialize(ObjectOutputStream, * Collection)}) and adds them to the specified collection. ! * * @param ois the input stream (null not permitted). * @param coll the collection to add the objects to (null not * permitted). ! * * @throws ClassNotFoundException * @throws IOException ! * * @see #serialize(ObjectOutputStream, Collection) */ protected final void deserialize (ObjectInputStream ois, Collection coll) --- 489,504 ---- } /** ! * Deserializes objects (written by {@link #serialize(ObjectOutputStream, * Collection)}) and adds them to the specified collection. ! * * @param ois the input stream (null not permitted). * @param coll the collection to add the objects to (null not * permitted). ! * * @throws ClassNotFoundException * @throws IOException ! * * @see #serialize(ObjectOutputStream, Collection) */ protected final void deserialize (ObjectInputStream ois, Collection coll) *************** public class BeanContextSupport extends *** 548,556 **** /** * Returns the bean context peer. ! * * @return The bean context peer. ! * * @see BeanContextChildSupport#beanContextChildPeer */ public BeanContext getBeanContextPeer() --- 548,556 ---- /** * Returns the bean context peer. ! * * @return The bean context peer. ! * * @see BeanContextChildSupport#beanContextChildPeer */ public BeanContext getBeanContextPeer() *************** public class BeanContextSupport extends *** 560,570 **** /** * Returns the {@link BeanContextChild} implementation for the given child. ! * * @param child the child (null permitted). ! * * @return The bean context child. ! * * @throws IllegalArgumentException if child implements both * the {@link BeanContextChild} and {@link BeanContextProxy} interfaces. */ --- 560,570 ---- /** * Returns the {@link BeanContextChild} implementation for the given child. ! * * @param child the child (null permitted). ! * * @return The bean context child. ! * * @throws IllegalArgumentException if child implements both * the {@link BeanContextChild} and {@link BeanContextProxy} interfaces. */ *************** public class BeanContextSupport extends *** 573,579 **** if (child == null) return null; if (child instanceof BeanContextChild && child instanceof BeanContextProxy) ! throw new IllegalArgumentException("Child cannot implement " + "BeanContextChild and BeanContextProxy simultaneously."); if (child instanceof BeanContextChild) return (BeanContextChild) child; --- 573,579 ---- if (child == null) return null; if (child instanceof BeanContextChild && child instanceof BeanContextProxy) ! throw new IllegalArgumentException("Child cannot implement " + "BeanContextChild and BeanContextProxy simultaneously."); if (child instanceof BeanContextChild) return (BeanContextChild) child; *************** public class BeanContextSupport extends *** 583,671 **** } /** ! * Returns child as an instance of ! * {@link BeanContextMembershipListener}, or null if * child does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link BeanContextMembershipListener}. */ ! protected static final BeanContextMembershipListener getChildBeanContextMembershipListener(Object child) { ! if (child instanceof BeanContextMembershipListener) return (BeanContextMembershipListener) child; ! else return null; } /** ! * Returns child as an instance of * {@link PropertyChangeListener}, or null if child * does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link PropertyChangeListener}. */ protected static final PropertyChangeListener getChildPropertyChangeListener( Object child) { ! if (child instanceof PropertyChangeListener) return (PropertyChangeListener) child; ! else return null; } /** ! * Returns child as an instance of {@link Serializable}, or ! * null if child does not implement that * interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link Serializable}. */ protected static final Serializable getChildSerializable(Object child) { ! if (child instanceof Serializable) return (Serializable) child; ! else return null; } /** ! * Returns child as an instance of * {@link VetoableChangeListener}, or null if child * does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link VetoableChangeListener}. */ protected static final VetoableChangeListener getChildVetoableChangeListener( Object child) { ! if (child instanceof VetoableChangeListener) return (VetoableChangeListener) child; ! else return null; } /** * Returns child as an instance of {@link Visibility}, or * null if child does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link Visibility}. */ protected static final Visibility getChildVisibility(Object child) { ! if (child instanceof Visibility) return (Visibility) child; ! else return null; } --- 583,671 ---- } /** ! * Returns child as an instance of ! * {@link BeanContextMembershipListener}, or null if * child does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link BeanContextMembershipListener}. */ ! protected static final BeanContextMembershipListener getChildBeanContextMembershipListener(Object child) { ! if (child instanceof BeanContextMembershipListener) return (BeanContextMembershipListener) child; ! else return null; } /** ! * Returns child as an instance of * {@link PropertyChangeListener}, or null if child * does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link PropertyChangeListener}. */ protected static final PropertyChangeListener getChildPropertyChangeListener( Object child) { ! if (child instanceof PropertyChangeListener) return (PropertyChangeListener) child; ! else return null; } /** ! * Returns child as an instance of {@link Serializable}, or ! * null if child does not implement that * interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link Serializable}. */ protected static final Serializable getChildSerializable(Object child) { ! if (child instanceof Serializable) return (Serializable) child; ! else return null; } /** ! * Returns child as an instance of * {@link VetoableChangeListener}, or null if child * does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link VetoableChangeListener}. */ protected static final VetoableChangeListener getChildVetoableChangeListener( Object child) { ! if (child instanceof VetoableChangeListener) return (VetoableChangeListener) child; ! else return null; } /** * Returns child as an instance of {@link Visibility}, or * null if child does not implement that interface. ! * * @param child the child (null permitted). ! * * @return The child cast to {@link Visibility}. */ protected static final Visibility getChildVisibility(Object child) { ! if (child instanceof Visibility) return (Visibility) child; ! else return null; } *************** public class BeanContextSupport extends *** 715,725 **** } /** ! * Returns true if the BeanContext is in * design time mode, and false if it is in runtime mode. ! * * @return A boolean. ! * * @see #setDesignTime(boolean) */ public boolean isDesignTime() --- 715,725 ---- } /** ! * Returns true if the BeanContext is in * design time mode, and false if it is in runtime mode. ! * * @return A boolean. ! * * @see #setDesignTime(boolean) */ public boolean isDesignTime() *************** public class BeanContextSupport extends *** 810,824 **** Iterator i = temp.iterator(); synchronized (globalHierarchyLock) { ! synchronized (children) ! { ! while (i.hasNext()) ! { ! BCSChild bcs = (BCSChild) i.next(); ! childDeserializedHook(bcs.getTargetChild(), bcs); ! children.put(bcs.getTargetChild(), bcs); ! } ! } } } --- 810,824 ---- Iterator i = temp.iterator(); synchronized (globalHierarchyLock) { ! synchronized (children) ! { ! while (i.hasNext()) ! { ! BCSChild bcs = (BCSChild) i.next(); ! childDeserializedHook(bcs.getTargetChild(), bcs); ! children.put(bcs.getTargetChild(), bcs); ! } ! } } } *************** public class BeanContextSupport extends *** 854,860 **** * PropertyChangeListener and * VetoableChangeListener for "beanContext" events. *

            ! *

            * A BeanContextMembershipEvent is fired when the * child is successfully removed from the bean context. *

            --- 854,860 ---- * PropertyChangeListener and * VetoableChangeListener for "beanContext" events. *

            ! *

            * A BeanContextMembershipEvent is fired when the * child is successfully removed from the bean context. *

            *************** public class BeanContextSupport extends *** 874,920 **** { synchronized (globalHierarchyLock) { ! if (targetChild == null) ! throw new IllegalArgumentException(); ! BCSChild child; ! synchronized (children) ! { ! if (!children.containsKey(targetChild) ! || !validatePendingRemove(targetChild)) ! return false; ! child = (BCSChild) children.remove(targetChild); ! } ! synchronized (targetChild) ! { ! BeanContextChild bcChild = null; ! if (targetChild instanceof BeanContextChild) ! bcChild = (BeanContextChild) targetChild; ! if (targetChild instanceof BeanContextProxy) ! bcChild = ((BeanContextProxy) targetChild).getBeanContextProxy(); ! if (bcChild != null) ! try ! { ! if (callChildSetBC) ! bcChild.setBeanContext(null); ! bcChild.removeVetoableChangeListener("beanContext", this); ! bcChild.removePropertyChangeListener("beanContext", this); ! } ! catch (PropertyVetoException e) ! { ! synchronized (children) ! { ! children.put(targetChild, child); ! } ! throw new IllegalStateException("The child refused to " + ! "disassociate itself with " + ! "this context.", e); ! } ! childJustRemovedHook(targetChild, child); ! } ! fireChildrenRemoved(new BeanContextMembershipEvent(this, ! new Object[]{ targetChild })); ! return true; } } --- 874,920 ---- { synchronized (globalHierarchyLock) { ! if (targetChild == null) ! throw new IllegalArgumentException(); ! BCSChild child; ! synchronized (children) ! { ! if (!children.containsKey(targetChild) ! || !validatePendingRemove(targetChild)) ! return false; ! child = (BCSChild) children.remove(targetChild); ! } ! synchronized (targetChild) ! { ! BeanContextChild bcChild = null; ! if (targetChild instanceof BeanContextChild) ! bcChild = (BeanContextChild) targetChild; ! if (targetChild instanceof BeanContextProxy) ! bcChild = ((BeanContextProxy) targetChild).getBeanContextProxy(); ! if (bcChild != null) ! try ! { ! if (callChildSetBC) ! bcChild.setBeanContext(null); ! bcChild.removeVetoableChangeListener("beanContext", this); ! bcChild.removePropertyChangeListener("beanContext", this); ! } ! catch (PropertyVetoException e) ! { ! synchronized (children) ! { ! children.put(targetChild, child); ! } ! throw new IllegalStateException("The child refused to " + ! "disassociate itself with " + ! "this context.", e); ! } ! childJustRemovedHook(targetChild, child); ! } ! fireChildrenRemoved(new BeanContextMembershipEvent(this, ! new Object[]{ targetChild })); ! return true; } } *************** public class BeanContextSupport extends *** 940,953 **** /** * Writes the items in the collection to the specified output stream. Items ! * in the collection that are not instances of {@link Serializable} * (this includes null) are simply ignored. ! * * @param oos the output stream (null not permitted). * @param coll the collection (null not permitted). ! * * @throws IOException ! * * @see #deserialize(ObjectInputStream, Collection) */ protected final void serialize(ObjectOutputStream oos, Collection coll) --- 940,953 ---- /** * Writes the items in the collection to the specified output stream. Items ! * in the collection that are not instances of {@link Serializable} * (this includes null) are simply ignored. ! * * @param oos the output stream (null not permitted). * @param coll the collection (null not permitted). ! * * @throws IOException ! * * @see #deserialize(ObjectInputStream, Collection) */ protected final void serialize(ObjectOutputStream oos, Collection coll) *************** public class BeanContextSupport extends *** 969,983 **** } /** ! * Sets the flag that indicates whether or not the * BeanContext is in design mode. If the flag changes * value, a {@link PropertyChangeEvent} (with the property name 'designMode') * is sent to registered listeners. Note that the property name used here * does NOT match the specification in the {@link DesignMode} interface, we * match the reference implementation instead - see bug parade entry 4295174. ! * * @param dtime the new value for the flag. ! * * @see #isDesignTime() */ public void setDesignTime(boolean dtime) --- 969,983 ---- } /** ! * Sets the flag that indicates whether or not the * BeanContext is in design mode. If the flag changes * value, a {@link PropertyChangeEvent} (with the property name 'designMode') * is sent to registered listeners. Note that the property name used here * does NOT match the specification in the {@link DesignMode} interface, we * match the reference implementation instead - see bug parade entry 4295174. ! * * @param dtime the new value for the flag. ! * * @see #isDesignTime() */ public void setDesignTime(boolean dtime) *************** public class BeanContextSupport extends *** 1011,1017 **** /** * Returns an array containing the children of this BeanContext. ! * * @return An array containing the children. */ public Object[] toArray() --- 1011,1017 ---- /** * Returns an array containing the children of this BeanContext. ! * * @return An array containing the children. */ public Object[] toArray() *************** public class BeanContextSupport extends *** 1023,1033 **** } /** ! * Populates, then returns, the supplied array with the children of this ! * BeanContext. If the array is too short to hold the ! * children, a new array is allocated and returned. If the array is too * long, it is padded with null items at the end. ! * * @param array an array to populate (null not permitted). */ public Object[] toArray(Object[] array) --- 1023,1033 ---- } /** ! * Populates, then returns, the supplied array with the children of this ! * BeanContext. If the array is too short to hold the ! * children, a new array is allocated and returned. If the array is too * long, it is padded with null items at the end. ! * * @param array an array to populate (null not permitted). */ public Object[] toArray(Object[] array) *************** public class BeanContextSupport extends *** 1072,1078 **** { synchronized (children) { ! serialize(oos, children.values()); } } --- 1072,1078 ---- { synchronized (children) { ! serialize(oos, children.values()); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/BufferedInputStream.java gcc-4.6.0/libjava/classpath/java/io/BufferedInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/BufferedInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/BufferedInputStream.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,41 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package java.io; /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 --- 35,41 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package java.io; /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 *************** package java.io; *** 43,53 **** * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! /** ! * This subclass of FilterInputStream buffers input from an * underlying implementation to provide a possibly more efficient read ! * mechanism. It maintains the buffer and buffer state in instance * variables that are available to subclasses. The default buffer size * of 2048 bytes can be overridden by the creator of the stream. *

            --- 43,53 ---- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! /** ! * This subclass of FilterInputStream buffers input from an * underlying implementation to provide a possibly more efficient read ! * mechanism. It maintains the buffer and buffer state in instance * variables that are available to subclasses. The default buffer size * of 2048 bytes can be overridden by the creator of the stream. *

            *************** public class BufferedInputStream extends *** 90,102 **** /** * The value of pos when the mark() method was ! * called. * This is set to -1 if there is no mark set. */ protected int markpos = -1; /** ! * This is the maximum number of bytes than can be read after a * call to mark() before the mark can be discarded. * After this may bytes are read, the reset() method * may not be called successfully. --- 90,102 ---- /** * The value of pos when the mark() method was ! * called. * This is set to -1 if there is no mark set. */ protected int markpos = -1; /** ! * This is the maximum number of bytes than can be read after a * call to mark() before the mark can be discarded. * After this may bytes are read, the reset() method * may not be called successfully. *************** public class BufferedInputStream extends *** 148,154 **** * stream before a read can block. A return of 0 indicates that blocking * might (or might not) occur on the very next read attempt. *

            ! * The number of available bytes will be the number of read ahead bytes * stored in the internal buffer plus the number of available bytes in * the underlying stream. * --- 148,154 ---- * stream before a read can block. A return of 0 indicates that blocking * might (or might not) occur on the very next read attempt. *

            ! * The number of available bytes will be the number of read ahead bytes * stored in the internal buffer plus the number of available bytes in * the underlying stream. * *************** public class BufferedInputStream extends *** 179,185 **** /** * This method marks a position in the input to which the stream can be * "reset" by calling the reset() method. The parameter ! * readlimit is the number of bytes that can be read from the * stream after setting the mark before the mark becomes invalid. For * example, if mark() is called with a read limit of 10, then * when 11 bytes of data are read from the stream before the --- 179,185 ---- /** * This method marks a position in the input to which the stream can be * "reset" by calling the reset() method. The parameter ! * readlimit is the number of bytes that can be read from the * stream after setting the mark before the mark becomes invalid. For * example, if mark() is called with a read limit of 10, then * when 11 bytes of data are read from the stream before the *************** public class BufferedInputStream extends *** 227,233 **** public synchronized int read() throws IOException { if (pos >= count && !refill()) ! return -1; // EOF return buf[pos++] & 0xFF; } --- 227,233 ---- public synchronized int read() throws IOException { if (pos >= count && !refill()) ! return -1; // EOF return buf[pos++] & 0xFF; } *************** public class BufferedInputStream extends *** 265,271 **** return 0; if (pos >= count && !refill()) ! return -1; // No bytes were read before EOF. int totalBytesRead = Math.min(count - pos, len); System.arraycopy(buf, pos, b, off, totalBytesRead); --- 265,271 ---- return 0; if (pos >= count && !refill()) ! return -1; // No bytes were read before EOF. int totalBytesRead = Math.min(count - pos, len); System.arraycopy(buf, pos, b, off, totalBytesRead); *************** public class BufferedInputStream extends *** 275,286 **** while (len > 0 && super.available() > 0 && refill()) { ! int remain = Math.min(count - pos, len); ! System.arraycopy(buf, pos, b, off, remain); ! pos += remain; ! off += remain; ! len -= remain; ! totalBytesRead += remain; } return totalBytesRead; --- 275,286 ---- while (len > 0 && super.available() > 0 && refill()) { ! int remain = Math.min(count - pos, len); ! System.arraycopy(buf, pos, b, off, remain); ! pos += remain; ! off += remain; ! len -= remain; ! totalBytesRead += remain; } return totalBytesRead; *************** public class BufferedInputStream extends *** 327,338 **** while (n > 0L) { ! if (pos >= count && !refill()) break; ! int numread = (int) Math.min((long) (count - pos), n); ! pos += numread; ! n -= numread; } return origN - n; --- 327,338 ---- while (n > 0L) { ! if (pos >= count && !refill()) break; ! int numread = (int) Math.min((long) (count - pos), n); ! pos += numread; ! n -= numread; } return origN - n; *************** public class BufferedInputStream extends *** 351,376 **** if (markpos == -1 || count - markpos >= marklimit) { ! markpos = -1; ! pos = count = 0; } else { ! byte[] newbuf = buf; ! if (markpos < bufferSize) ! { ! newbuf = new byte[count - markpos + bufferSize]; ! } ! System.arraycopy(buf, markpos, newbuf, 0, count - markpos); ! buf = newbuf; ! count -= markpos; ! pos -= markpos; ! markpos = 0; } int numread = super.read(buf, count, bufferSize); ! if (numread <= 0) // EOF return false; count += numread; --- 351,376 ---- if (markpos == -1 || count - markpos >= marklimit) { ! markpos = -1; ! pos = count = 0; } else { ! byte[] newbuf = buf; ! if (markpos < bufferSize) ! { ! newbuf = new byte[count - markpos + bufferSize]; ! } ! System.arraycopy(buf, markpos, newbuf, 0, count - markpos); ! buf = newbuf; ! count -= markpos; ! pos -= markpos; ! markpos = 0; } int numread = super.read(buf, count, bufferSize); ! if (numread <= 0) // EOF return false; count += numread; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/BufferedOutputStream.java gcc-4.6.0/libjava/classpath/java/io/BufferedOutputStream.java *** gcc-4.5.2/libjava/classpath/java/io/BufferedOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/BufferedOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class BufferedOutputStream extend *** 112,118 **** } /** ! * This method flushes any remaining buffered bytes then closes the * underlying output stream. Any further attempts to write to this stream * may throw an exception * --- 112,118 ---- } /** ! * This method flushes any remaining buffered bytes then closes the * underlying output stream. Any further attempts to write to this stream * may throw an exception * *************** public class BufferedOutputStream extend *** 124,130 **** */ /** ! * This method runs when the object is garbage collected. It is * responsible for ensuring that all buffered bytes are written and * for closing the underlying stream. * --- 124,130 ---- */ /** ! * This method runs when the object is garbage collected. It is * responsible for ensuring that all buffered bytes are written and * for closing the underlying stream. * *************** public class BufferedOutputStream extend *** 156,163 **** } /** ! * This method writes len bytes from the byte array ! * buf starting at position offset in the buffer. * These bytes will be written to the internal buffer. However, if this * write operation fills the buffer, the buffer will be flushed to the * underlying output stream. --- 156,163 ---- } /** ! * This method writes len bytes from the byte array ! * buf starting at position offset in the buffer. * These bytes will be written to the internal buffer. However, if this * write operation fills the buffer, the buffer will be flushed to the * underlying output stream. *************** public class BufferedOutputStream extend *** 168,174 **** * * @exception IOException If an error occurs */ ! public synchronized void write(byte[] buf, int offset, int len) throws IOException { // Buffer can hold everything. Note that the case where LEN < 0 --- 168,174 ---- * * @exception IOException If an error occurs */ ! public synchronized void write(byte[] buf, int offset, int len) throws IOException { // Buffer can hold everything. Note that the case where LEN < 0 *************** public class BufferedOutputStream extend *** 188,192 **** } } ! } // class BufferedOutputStream ! --- 188,191 ---- } } ! } // class BufferedOutputStream diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/BufferedReader.java gcc-4.6.0/libjava/classpath/java/io/BufferedReader.java *** gcc-4.5.2/libjava/classpath/java/io/BufferedReader.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/io/BufferedReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import gnu.java.lang.CPStringBuilder; *** 47,55 **** */ /** ! * This subclass of FilterReader buffers input from an * underlying implementation to provide a possibly more efficient read ! * mechanism. It maintains the buffer and buffer state in instance * variables that are available to subclasses. The default buffer size * of 8192 chars can be overridden by the creator of the stream. *

            --- 47,55 ---- */ /** ! * This subclass of FilterReader buffers input from an * underlying implementation to provide a possibly more efficient read ! * mechanism. It maintains the buffer and buffer state in instance * variables that are available to subclasses. The default buffer size * of 8192 chars can be overridden by the creator of the stream. *

            *************** public class BufferedReader extends Read *** 91,97 **** static final int DEFAULT_BUFFER_SIZE = 8192; /** ! * Create a new BufferedReader that will read from the * specified subordinate stream with a default buffer size of 8192 chars. * * @param in The subordinate stream to read from --- 91,97 ---- static final int DEFAULT_BUFFER_SIZE = 8192; /** ! * Create a new BufferedReader that will read from the * specified subordinate stream with a default buffer size of 8192 chars. * * @param in The subordinate stream to read from *************** public class BufferedReader extends Read *** 102,109 **** } /** ! * Create a new BufferedReader that will read from the ! * specified subordinate stream with a buffer size that is specified by the * caller. * * @param in The subordinate stream to read from --- 102,109 ---- } /** ! * Create a new BufferedReader that will read from the ! * specified subordinate stream with a buffer size that is specified by the * caller. * * @param in The subordinate stream to read from *************** public class BufferedReader extends Read *** 130,144 **** { synchronized (lock) { ! if (in != null) ! in.close(); ! in = null; ! buffer = null; } } /** ! * Returns true to indicate that this class supports mark/reset * functionality. * * @return true --- 130,144 ---- { synchronized (lock) { ! if (in != null) ! in.close(); ! in = null; ! buffer = null; } } /** ! * Returns true to indicate that this class supports mark/reset * functionality. * * @return true *************** public class BufferedReader extends Read *** 151,161 **** /** * Mark a position in the input to which the stream can be * "reset" by calling the reset() method. The parameter ! * readLimit is the number of chars that can be read from the * stream after setting the mark before the mark becomes invalid. For ! * example, if mark() is called with a read limit of 10, then ! * when 11 chars of data are read from the stream before the ! * reset() method is called, then the mark is invalid and the * stream object instance is not required to remember the mark. *

            * Note that the number of chars that can be remembered by this method --- 151,161 ---- /** * Mark a position in the input to which the stream can be * "reset" by calling the reset() method. The parameter ! * readLimit is the number of chars that can be read from the * stream after setting the mark before the mark becomes invalid. For ! * example, if mark() is called with a read limit of 10, then ! * when 11 chars of data are read from the stream before the ! * reset() method is called, then the mark is invalid and the * stream object instance is not required to remember the mark. *

            * Note that the number of chars that can be remembered by this method *************** public class BufferedReader extends Read *** 163,169 **** * not dependent on the subordinate stream supporting mark/reset * functionality. * ! * @param readLimit The number of chars that can be read before the mark * becomes invalid * * @exception IOException If an error occurs --- 163,169 ---- * not dependent on the subordinate stream supporting mark/reset * functionality. * ! * @param readLimit The number of chars that can be read before the mark * becomes invalid * * @exception IOException If an error occurs *************** public class BufferedReader extends Read *** 176,220 **** synchronized (lock) { ! checkStatus(); ! // In this method we need to be aware of the special case where ! // pos + 1 == limit. This indicates that a '\r' was the last char ! // in the buffer during a readLine. We'll want to maintain that ! // condition after we shift things around and if a larger buffer is ! // needed to track readLimit, we'll have to make it one element ! // larger to ensure we don't invalidate the mark too early, if the ! // char following the '\r' is NOT a '\n'. This is ok because, per ! // the spec, we are not required to invalidate when passing readLimit. ! // ! // Note that if 'pos > limit', then doing 'limit -= pos' will cause ! // limit to be negative. This is the only way limit will be < 0. ! if (pos + readLimit > limit) ! { ! char[] old_buffer = buffer; ! int extraBuffSpace = 0; ! if (pos > limit) ! extraBuffSpace = 1; ! if (readLimit + extraBuffSpace > limit) ! buffer = new char[readLimit + extraBuffSpace]; ! limit -= pos; ! if (limit >= 0) ! { ! System.arraycopy(old_buffer, pos, buffer, 0, limit); ! pos = 0; ! } ! } ! if (limit < 0) ! { ! // Maintain the relationship of 'pos > limit'. ! pos = 1; ! limit = markPos = 0; ! } ! else ! markPos = pos; ! // Now pos + readLimit <= buffer.length. thus if we need to read ! // beyond buffer.length, then we are allowed to invalidate markPos. } } --- 176,220 ---- synchronized (lock) { ! checkStatus(); ! // In this method we need to be aware of the special case where ! // pos + 1 == limit. This indicates that a '\r' was the last char ! // in the buffer during a readLine. We'll want to maintain that ! // condition after we shift things around and if a larger buffer is ! // needed to track readLimit, we'll have to make it one element ! // larger to ensure we don't invalidate the mark too early, if the ! // char following the '\r' is NOT a '\n'. This is ok because, per ! // the spec, we are not required to invalidate when passing readLimit. ! // ! // Note that if 'pos > limit', then doing 'limit -= pos' will cause ! // limit to be negative. This is the only way limit will be < 0. ! if (pos + readLimit > limit) ! { ! char[] old_buffer = buffer; ! int extraBuffSpace = 0; ! if (pos > limit) ! extraBuffSpace = 1; ! if (readLimit + extraBuffSpace > limit) ! buffer = new char[readLimit + extraBuffSpace]; ! limit -= pos; ! if (limit >= 0) ! { ! System.arraycopy(old_buffer, pos, buffer, 0, limit); ! pos = 0; ! } ! } ! if (limit < 0) ! { ! // Maintain the relationship of 'pos > limit'. ! pos = 1; ! limit = markPos = 0; ! } ! else ! markPos = pos; ! // Now pos + readLimit <= buffer.length. thus if we need to read ! // beyond buffer.length, then we are allowed to invalidate markPos. } } *************** public class BufferedReader extends Read *** 233,252 **** { synchronized (lock) { ! checkStatus(); ! if (markPos < 0) ! throw new IOException("mark never set or invalidated"); ! // Need to handle the extremely unlikely case where a readLine was ! // done with a '\r' as the last char in the buffer; which was then ! // immediately followed by a mark and a reset with NO intervening ! // read of any sort. In that case, setting pos to markPos would ! // lose that info and a subsequent read would thus not skip a '\n' ! // (if one exists). The value of limit in this rare case is zero. ! // We can assume that if limit is zero for other reasons, then ! // pos is already set to zero and doesn't need to be readjusted. ! if (limit > 0) ! pos = markPos; } } --- 233,252 ---- { synchronized (lock) { ! checkStatus(); ! if (markPos < 0) ! throw new IOException("mark never set or invalidated"); ! // Need to handle the extremely unlikely case where a readLine was ! // done with a '\r' as the last char in the buffer; which was then ! // immediately followed by a mark and a reset with NO intervening ! // read of any sort. In that case, setting pos to markPos would ! // lose that info and a subsequent read would thus not skip a '\n' ! // (if one exists). The value of limit in this rare case is zero. ! // We can assume that if limit is zero for other reasons, then ! // pos is already set to zero and doesn't need to be readjusted. ! if (limit > 0) ! pos = markPos; } } *************** public class BufferedReader extends Read *** 255,261 **** * this method returns false then this stream could (but is * not guaranteed to) block on the next read attempt. * ! * @return true if this stream is ready to be read, * false otherwise * * @exception IOException If an error occurs --- 255,261 ---- * this method returns false then this stream could (but is * not guaranteed to) block on the next read attempt. * ! * @return true if this stream is ready to be read, * false otherwise * * @exception IOException If an error occurs *************** public class BufferedReader extends Read *** 264,277 **** { synchronized (lock) { ! checkStatus(); ! return pos < limit || in.ready(); } } /** * This method read chars from a stream and stores them into a caller ! * supplied buffer. It starts storing the data at index * offset into * the buffer and attempts to read len chars. This method can * return before reading the number of chars requested. The actual number --- 264,277 ---- { synchronized (lock) { ! checkStatus(); ! return pos < limit || in.ready(); } } /** * This method read chars from a stream and stores them into a caller ! * supplied buffer. It starts storing the data at index * offset into * the buffer and attempts to read len chars. This method can * return before reading the number of chars requested. The actual number *************** public class BufferedReader extends Read *** 297,349 **** synchronized (lock) { ! checkStatus(); ! // Once again, we need to handle the special case of a readLine ! // that has a '\r' at the end of the buffer. In this case, we'll ! // need to skip a '\n' if it is the next char to be read. ! // This special case is indicated by 'pos > limit'. ! boolean retAtEndOfBuffer = false; ! int avail = limit - pos; ! if (count > avail) ! { ! if (avail > 0) ! count = avail; ! else // pos >= limit ! { ! if (limit == buffer.length) ! markPos = -1; // read too far - invalidate the mark. ! if (pos > limit) ! { ! // Set a boolean and make pos == limit to simplify things. ! retAtEndOfBuffer = true; ! --pos; ! } ! if (markPos < 0) ! { ! // Optimization: can read directly into buf. ! if (count >= buffer.length && !retAtEndOfBuffer) ! return in.read(buf, offset, count); ! pos = limit = 0; ! } ! avail = in.read(buffer, limit, buffer.length - limit); ! if (retAtEndOfBuffer && avail > 0 && buffer[limit] == '\n') ! { ! --avail; ! limit++; ! } ! if (avail < count) ! { ! if (avail <= 0) ! return avail; ! count = avail; ! } ! limit += avail; ! } ! } ! System.arraycopy(buffer, pos, buf, offset, count); ! pos += count; ! return count; } } --- 297,349 ---- synchronized (lock) { ! checkStatus(); ! // Once again, we need to handle the special case of a readLine ! // that has a '\r' at the end of the buffer. In this case, we'll ! // need to skip a '\n' if it is the next char to be read. ! // This special case is indicated by 'pos > limit'. ! boolean retAtEndOfBuffer = false; ! int avail = limit - pos; ! if (count > avail) ! { ! if (avail > 0) ! count = avail; ! else // pos >= limit ! { ! if (limit == buffer.length) ! markPos = -1; // read too far - invalidate the mark. ! if (pos > limit) ! { ! // Set a boolean and make pos == limit to simplify things. ! retAtEndOfBuffer = true; ! --pos; ! } ! if (markPos < 0) ! { ! // Optimization: can read directly into buf. ! if (count >= buffer.length && !retAtEndOfBuffer) ! return in.read(buf, offset, count); ! pos = limit = 0; ! } ! avail = in.read(buffer, limit, buffer.length - limit); ! if (retAtEndOfBuffer && avail > 0 && buffer[limit] == '\n') ! { ! --avail; ! limit++; ! } ! if (avail < count) ! { ! if (avail <= 0) ! return avail; ! count = avail; ! } ! limit += avail; ! } ! } ! System.arraycopy(buffer, pos, buf, offset, count); ! pos += count; ! return count; } } *************** public class BufferedReader extends Read *** 360,366 **** if (pos > limit) { retAtEndOfBuffer = true; ! --pos; } if (markPos >= 0 && limit == buffer.length) --- 360,366 ---- if (pos > limit) { retAtEndOfBuffer = true; ! --pos; } if (markPos >= 0 && limit == buffer.length) *************** public class BufferedReader extends Read *** 373,398 **** if (retAtEndOfBuffer && buffer[pos] == '\n') { ! --count; ! // If the mark was set to the location of the \n, then we ! // must change it to fully pretend that the \n does not ! // exist. ! if (markPos == pos) ! ++markPos; ! ++pos; } return count; } ! public int read() throws IOException { synchronized (lock) { ! checkStatus(); ! if (pos >= limit && fill () <= 0) ! return -1; ! return buffer[pos++]; } } --- 373,398 ---- if (retAtEndOfBuffer && buffer[pos] == '\n') { ! --count; ! // If the mark was set to the location of the \n, then we ! // must change it to fully pretend that the \n does not ! // exist. ! if (markPos == pos) ! ++markPos; ! ++pos; } return count; } ! public int read() throws IOException { synchronized (lock) { ! checkStatus(); ! if (pos >= limit && fill () <= 0) ! return -1; ! return buffer[pos++]; } } *************** public class BufferedReader extends Read *** 405,413 **** int i = pos; for (; i < limit; i++) { ! char ch = buffer[i]; ! if (ch == '\n' || ch == '\r') ! break; } return i; } --- 405,413 ---- int i = pos; for (; i < limit; i++) { ! char ch = buffer[i]; ! if (ch == '\n' || ch == '\r') ! break; } return i; } *************** public class BufferedReader extends Read *** 418,426 **** * an "\r\n" sequence. The system dependent line separator is not used. * The line termination characters are not returned in the resulting * String. ! * * @return The line of text read, or null if end of stream. ! * * @exception IOException If an error occurs */ public String readLine() throws IOException --- 418,426 ---- * an "\r\n" sequence. The system dependent line separator is not used. * The line termination characters are not returned in the resulting * String. ! * * @return The line of text read, or null if end of stream. ! * * @exception IOException If an error occurs */ public String readLine() throws IOException *************** public class BufferedReader extends Read *** 432,456 **** // This special case is indicated by 'pos > limit'. if (pos > limit) { ! int ch = read(); ! if (ch < 0) ! return null; ! if (ch != '\n') ! --pos; } int i = lineEnd(limit); if (i < limit) { ! String str = String.valueOf(buffer, pos, i - pos); ! pos = i + 1; ! // If the last char in the buffer is a '\r', we must remember ! // to check if the next char to be read after the buffer is refilled ! // is a '\n'. If so, skip it. To indicate this condition, we set pos ! // to be limit + 1, which normally is never possible. ! if (buffer[i] == '\r') ! if (pos == limit || buffer[pos] == '\n') ! pos++; ! return str; } CPStringBuilder sbuf = new CPStringBuilder(200); sbuf.append(buffer, pos, i - pos); --- 432,456 ---- // This special case is indicated by 'pos > limit'. if (pos > limit) { ! int ch = read(); ! if (ch < 0) ! return null; ! if (ch != '\n') ! --pos; } int i = lineEnd(limit); if (i < limit) { ! String str = String.valueOf(buffer, pos, i - pos); ! pos = i + 1; ! // If the last char in the buffer is a '\r', we must remember ! // to check if the next char to be read after the buffer is refilled ! // is a '\n'. If so, skip it. To indicate this condition, we set pos ! // to be limit + 1, which normally is never possible. ! if (buffer[i] == '\r') ! if (pos == limit || buffer[pos] == '\n') ! pos++; ! return str; } CPStringBuilder sbuf = new CPStringBuilder(200); sbuf.append(buffer, pos, i - pos); *************** public class BufferedReader extends Read *** 462,494 **** boolean eof = false; for (;;) { ! // readLine should block. So we must not return until a -1 is reached. ! if (pos >= limit) ! { ! // here count == 0 isn't sufficient to give a failure. ! int count = fill(); ! if (count < 0) ! { ! eof = true; ! break; ! } ! continue; ! } ! int ch = buffer[pos++]; ! if (ch == '\n' || ch == '\r') ! { ! // Check here if a '\r' was the last char in the buffer; if so, ! // mark it as in the comment above to indicate future reads ! // should skip a newline that is the next char read after ! // refilling the buffer. ! if (ch == '\r') ! if (pos == limit || buffer[pos] == '\n') ! pos++; ! break; ! } ! i = lineEnd(limit); ! sbuf.append(buffer, pos - 1, i - (pos - 1)); ! pos = i; } return (sbuf.length() == 0 && eof) ? null : sbuf.toString(); } --- 462,494 ---- boolean eof = false; for (;;) { ! // readLine should block. So we must not return until a -1 is reached. ! if (pos >= limit) ! { ! // here count == 0 isn't sufficient to give a failure. ! int count = fill(); ! if (count < 0) ! { ! eof = true; ! break; ! } ! continue; ! } ! int ch = buffer[pos++]; ! if (ch == '\n' || ch == '\r') ! { ! // Check here if a '\r' was the last char in the buffer; if so, ! // mark it as in the comment above to indicate future reads ! // should skip a newline that is the next char read after ! // refilling the buffer. ! if (ch == '\r') ! if (pos == limit || buffer[pos] == '\n') ! pos++; ! break; ! } ! i = lineEnd(limit); ! sbuf.append(buffer, pos - 1, i - (pos - 1)); ! pos = i; } return (sbuf.length() == 0 && eof) ? null : sbuf.toString(); } *************** public class BufferedReader extends Read *** 499,505 **** * requested amount. *

            * This method first discards chars in the buffer, then calls the ! * skip method on the underlying stream to skip the * remaining chars. * * @param count The requested number of chars to skip --- 499,505 ---- * requested amount. *

            * This method first discards chars in the buffer, then calls the ! * skip method on the underlying stream to skip the * remaining chars. * * @param count The requested number of chars to skip *************** public class BufferedReader extends Read *** 513,575 **** { synchronized (lock) { ! checkStatus(); ! if (count < 0) ! throw new IllegalArgumentException("skip value is negative"); ! if (count == 0) ! return 0; ! // Yet again, we need to handle the special case of a readLine ! // that has a '\r' at the end of the buffer. In this case, we need ! // to ignore a '\n' if it is the next char to be read. ! // This special case is indicated by 'pos > limit' (i.e. avail < 0). ! // To simplify things, if we're dealing with the special case for ! // readLine, just read the next char (since the fill method will ! // skip the '\n' for us). By doing this, we'll have to back up pos. ! // That's easier than trying to keep track of whether we've skipped ! // one element or not. ! if (pos > limit) ! { ! if (read() < 0) ! return 0; ! else ! --pos; ! } ! int avail = limit - pos; ! if (count < avail) ! { ! pos += count; ! return count; ! } ! pos = limit; ! long todo = count - avail; ! if (todo > buffer.length) ! { ! markPos = -1; ! todo -= in.skip(todo); ! } ! else ! { ! while (todo > 0) ! { ! avail = fill(); ! if (avail <= 0) ! break; ! if (avail > todo) ! avail = (int) todo; ! pos += avail; ! todo -= avail; ! } ! } ! return count - todo; } } ! private void checkStatus() throws IOException { if (in == null) throw new IOException("Stream closed"); ! } } --- 513,575 ---- { synchronized (lock) { ! checkStatus(); ! if (count < 0) ! throw new IllegalArgumentException("skip value is negative"); ! if (count == 0) ! return 0; ! // Yet again, we need to handle the special case of a readLine ! // that has a '\r' at the end of the buffer. In this case, we need ! // to ignore a '\n' if it is the next char to be read. ! // This special case is indicated by 'pos > limit' (i.e. avail < 0). ! // To simplify things, if we're dealing with the special case for ! // readLine, just read the next char (since the fill method will ! // skip the '\n' for us). By doing this, we'll have to back up pos. ! // That's easier than trying to keep track of whether we've skipped ! // one element or not. ! if (pos > limit) ! { ! if (read() < 0) ! return 0; ! else ! --pos; ! } ! int avail = limit - pos; ! if (count < avail) ! { ! pos += count; ! return count; ! } ! pos = limit; ! long todo = count - avail; ! if (todo > buffer.length) ! { ! markPos = -1; ! todo -= in.skip(todo); ! } ! else ! { ! while (todo > 0) ! { ! avail = fill(); ! if (avail <= 0) ! break; ! if (avail > todo) ! avail = (int) todo; ! pos += avail; ! todo -= avail; ! } ! } ! return count - todo; } } ! private void checkStatus() throws IOException { if (in == null) throw new IOException("Stream closed"); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/BufferedWriter.java gcc-4.6.0/libjava/classpath/java/io/BufferedWriter.java *** gcc-4.5.2/libjava/classpath/java/io/BufferedWriter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/BufferedWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 53,59 **** * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) ! * @date September 25, 1998 */ public class BufferedWriter extends Writer { --- 53,59 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) ! * @date September 25, 1998 */ public class BufferedWriter extends Writer { *************** public class BufferedWriter extends Writ *** 110,116 **** } /** ! * This method flushes any remaining buffered chars then closes the * underlying output stream. Any further attempts to write to this stream * may throw an exception * --- 110,116 ---- } /** ! * This method flushes any remaining buffered chars then closes the * underlying output stream. Any further attempts to write to this stream * may throw an exception * *************** public class BufferedWriter extends Writ *** 120,130 **** { synchronized (lock) { ! // It is safe to call localFlush even if the stream is already ! // closed. ! localFlush (); ! out.close(); ! buffer = null; } } --- 120,130 ---- { synchronized (lock) { ! // It is safe to call localFlush even if the stream is already ! // closed. ! localFlush (); ! out.close(); ! buffer = null; } } *************** public class BufferedWriter extends Writ *** 138,147 **** { synchronized (lock) { ! if (buffer == null) ! throw new IOException ("Stream closed"); ! localFlush (); ! out.flush(); } } --- 138,147 ---- { synchronized (lock) { ! if (buffer == null) ! throw new IOException ("Stream closed"); ! localFlush (); ! out.flush(); } } *************** public class BufferedWriter extends Writ *** 171,187 **** { synchronized (lock) { ! if (buffer == null) ! throw new IOException ("Stream closed"); ! buffer[count++] = (char) oneChar; ! if (count == buffer.length) ! localFlush (); } } /** ! * This method writes len chars from the char array ! * buf starting at position offset in the buffer. * These chars will be written to the internal buffer. However, if this * write operation fills the buffer, the buffer will be flushed to the * underlying output stream. --- 171,187 ---- { synchronized (lock) { ! if (buffer == null) ! throw new IOException ("Stream closed"); ! buffer[count++] = (char) oneChar; ! if (count == buffer.length) ! localFlush (); } } /** ! * This method writes len chars from the char array ! * buf starting at position offset in the buffer. * These chars will be written to the internal buffer. However, if this * write operation fills the buffer, the buffer will be flushed to the * underlying output stream. *************** public class BufferedWriter extends Writ *** 196,223 **** { synchronized (lock) { ! if (buffer == null) ! throw new IOException ("Stream closed"); ! // Bypass buffering if there is too much incoming data. ! if (count + len > buffer.length) ! { ! localFlush (); ! out.write(buf, offset, len); ! } ! else ! { ! System.arraycopy(buf, offset, buffer, count, len); ! count += len; ! if (count == buffer.length) ! localFlush (); ! } } } /** * This method writes len chars from the String ! * str starting at position offset in the string. * These chars will be written to the internal buffer. However, if this * write operation fills the buffer, the buffer will be flushed to the * underlying output stream. --- 196,223 ---- { synchronized (lock) { ! if (buffer == null) ! throw new IOException ("Stream closed"); ! // Bypass buffering if there is too much incoming data. ! if (count + len > buffer.length) ! { ! localFlush (); ! out.write(buf, offset, len); ! } ! else ! { ! System.arraycopy(buf, offset, buffer, count, len); ! count += len; ! if (count == buffer.length) ! localFlush (); ! } } } /** * This method writes len chars from the String ! * str starting at position offset in the string. * These chars will be written to the internal buffer. However, if this * write operation fills the buffer, the buffer will be flushed to the * underlying output stream. *************** public class BufferedWriter extends Writ *** 232,252 **** { synchronized (lock) { ! if (buffer == null) ! throw new IOException ("Stream closed"); ! if (count + len > buffer.length) ! { ! localFlush (); ! out.write(str, offset, len); ! } ! else ! { ! str.getChars(offset, offset + len, buffer, count); ! count += len; ! if (count == buffer.length) ! localFlush (); ! } } } --- 232,252 ---- { synchronized (lock) { ! if (buffer == null) ! throw new IOException ("Stream closed"); ! if (count + len > buffer.length) ! { ! localFlush (); ! out.write(str, offset, len); ! } ! else ! { ! str.getChars(offset, offset + len, buffer, count); ! count += len; ! if (count == buffer.length) ! localFlush (); ! } } } *************** public class BufferedWriter extends Writ *** 255,262 **** { if (count > 0) { ! out.write(buffer, 0, count); ! count = 0; } } } --- 255,262 ---- { if (count > 0) { ! out.write(buffer, 0, count); ! count = 0; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ByteArrayInputStream.java gcc-4.6.0/libjava/classpath/java/io/ByteArrayInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/ByteArrayInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/ByteArrayInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 43,49 **** * * @author Warren Levy (warrenl@cygnus.com) * @author Aaron M. Renn (arenn@urbanophile.com) ! */ public class ByteArrayInputStream extends InputStream { /** --- 43,49 ---- * * @author Warren Levy (warrenl@cygnus.com) * @author Aaron M. Renn (arenn@urbanophile.com) ! */ public class ByteArrayInputStream extends InputStream { /** *************** public class ByteArrayInputStream extend *** 78,86 **** * of the array. It is identical to calling an overloaded constructor * as ByteArrayInputStream(buf, 0, buf.length). *

            ! * Note that this array is not copied. If its contents are changed * while this stream is being read, those changes will be reflected in the ! * bytes supplied to the reader. Please use caution in changing the * contents of the buffer while this stream is open. * * @param buffer The byte array buffer this stream will read from. --- 78,86 ---- * of the array. It is identical to calling an overloaded constructor * as ByteArrayInputStream(buf, 0, buf.length). *

            ! * Note that this array is not copied. If its contents are changed * while this stream is being read, those changes will be reflected in the ! * bytes supplied to the reader. Please use caution in changing the * contents of the buffer while this stream is open. * * @param buffer The byte array buffer this stream will read from. *************** public class ByteArrayInputStream extend *** 100,108 **** * The length value should be viewed as the array index * one greater than the last position in the buffer to read. *

            ! * Note that this array is not copied. If its contents are changed * while this stream is being read, those changes will be reflected in the ! * bytes supplied to the reader. Please use caution in changing the * contents of the buffer while this stream is open. * * @param buffer The byte array buffer this stream will read from. --- 100,108 ---- * The length value should be viewed as the array index * one greater than the last position in the buffer to read. *

            ! * Note that this array is not copied. If its contents are changed * while this stream is being read, those changes will be reflected in the ! * bytes supplied to the reader. Please use caution in changing the * contents of the buffer while this stream is open. * * @param buffer The byte array buffer this stream will read from. *************** public class ByteArrayInputStream extend *** 129,135 **** * stream. The value returned will be equal to count - pos. * * @return The number of bytes that can be read from this stream ! * before blocking, which is all of them */ public synchronized int available() { --- 129,135 ---- * stream. The value returned will be equal to count - pos. * * @return The number of bytes that can be read from this stream ! * before blocking, which is all of them */ public synchronized int available() { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ByteArrayOutputStream.java gcc-4.6.0/libjava/classpath/java/io/ByteArrayOutputStream.java *** gcc-4.5.2/libjava/classpath/java/io/ByteArrayOutputStream.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/io/ByteArrayOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 63,74 **** *

            * Note that this class also has methods that convert the byte array * buffer to a String using either the system default or an ! * application specified character encoding. Thus it can handle * multibyte character encodings. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) ! * @date September 24, 1998 */ public class ByteArrayOutputStream extends OutputStream { --- 63,74 ---- *

            * Note that this class also has methods that convert the byte array * buffer to a String using either the system default or an ! * application specified character encoding. Thus it can handle * multibyte character encodings. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) ! * @date September 24, 1998 */ public class ByteArrayOutputStream extends OutputStream { *************** public class ByteArrayOutputStream exten *** 130,136 **** * This method returns a byte array containing the bytes that have been * written to this stream so far. This array is a copy of the valid * bytes in the internal buffer and its length is equal to the number of ! * valid bytes, not necessarily to the the length of the current * internal buffer. Note that since this method allocates a new array, * it should be used with caution when the internal buffer is very large. */ --- 130,136 ---- * This method returns a byte array containing the bytes that have been * written to this stream so far. This array is a copy of the valid * bytes in the internal buffer and its length is equal to the number of ! * valid bytes, not necessarily to the the length of the current * internal buffer. Note that since this method allocates a new array, * it should be used with caution when the internal buffer is very large. */ *************** public class ByteArrayOutputStream exten *** 158,164 **** /** * Returns the bytes in the internal array as a String. The * bytes in the buffer are converted to characters using the specified ! * encoding. * * @param enc The name of the character encoding to use * --- 158,164 ---- /** * Returns the bytes in the internal array as a String. The * bytes in the buffer are converted to characters using the specified ! * encoding. * * @param enc The name of the character encoding to use * *************** public class ByteArrayOutputStream exten *** 184,190 **** * methods which use a true character encoding. * * @param hibyte The high eight bits to use for each character in ! * the String * * @return A String containing the data written to this * stream so far --- 184,190 ---- * methods which use a true character encoding. * * @param hibyte The high eight bits to use for each character in ! * the String * * @return A String containing the data written to this * stream so far *************** public class ByteArrayOutputStream exten *** 201,212 **** { if (count + add > buf.length) { ! int newlen = buf.length * 2; ! if (count + add > newlen) ! newlen = count + add; ! byte[] newbuf = new byte[newlen]; ! System.arraycopy(buf, 0, newbuf, 0, count); ! buf = newbuf; } } --- 201,212 ---- { if (count + add > buf.length) { ! int newlen = buf.length * 2; ! if (count + add > newlen) ! newlen = count + add; ! byte[] newbuf = new byte[newlen]; ! System.arraycopy(buf, 0, newbuf, 0, count); ! buf = newbuf; } } *************** public class ByteArrayOutputStream exten *** 223,229 **** } /** ! * This method writes len bytes from the passed in array * buf starting at index offset into the * internal buffer. * --- 223,229 ---- } /** ! * This method writes len bytes from the passed in array * buf starting at index offset into the * internal buffer. * *************** public class ByteArrayOutputStream exten *** 276,282 **** { int r = Integer.getInteger ("gnu.java.io.ByteArrayOutputStream.initialBufferSize", ! DEFAULT_INITIAL_BUFFER_SIZE).intValue (); if (r <= 0) r = DEFAULT_INITIAL_BUFFER_SIZE; initial_buffer_size = r; --- 276,282 ---- { int r = Integer.getInteger ("gnu.java.io.ByteArrayOutputStream.initialBufferSize", ! DEFAULT_INITIAL_BUFFER_SIZE).intValue (); if (r <= 0) r = DEFAULT_INITIAL_BUFFER_SIZE; initial_buffer_size = r; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/CharArrayReader.java gcc-4.6.0/libjava/classpath/java/io/CharArrayReader.java *** gcc-4.5.2/libjava/classpath/java/io/CharArrayReader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/CharArrayReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** this exception to your version of the li *** 35,41 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package java.io; /** --- 35,41 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package java.io; /** *************** public class CharArrayReader extends Rea *** 78,86 **** * of the array. It is identical to calling an overloaded constructor * as CharArrayReader(buf, 0, buf.length). *

            ! * Note that this array is not copied. If its contents are changed * while this stream is being read, those changes will be reflected in the ! * chars supplied to the reader. Please use caution in changing the * contents of the buffer while this stream is open. * * @param buffer The char array buffer this stream will read from. --- 78,86 ---- * of the array. It is identical to calling an overloaded constructor * as CharArrayReader(buf, 0, buf.length). *

            ! * Note that this array is not copied. If its contents are changed * while this stream is being read, those changes will be reflected in the ! * chars supplied to the reader. Please use caution in changing the * contents of the buffer while this stream is open. * * @param buffer The char array buffer this stream will read from. *************** public class CharArrayReader extends Rea *** 100,108 **** * The length value should be viewed as the array index * one greater than the last position in the buffer to read. *

            ! * Note that this array is not copied. If its contents are changed * while this stream is being read, those changes will be reflected in the ! * chars supplied to the reader. Please use caution in changing the * contents of the buffer while this stream is open. * * @param buffer The char array buffer this stream will read from. --- 100,108 ---- * The length value should be viewed as the array index * one greater than the last position in the buffer to read. *

            ! * Note that this array is not copied. If its contents are changed * while this stream is being read, those changes will be reflected in the ! * chars supplied to the reader. Please use caution in changing the * contents of the buffer while this stream is open. * * @param buffer The char array buffer this stream will read from. *************** public class CharArrayReader extends Rea *** 114,126 **** super(); if (offset < 0 || length < 0 || offset > buffer.length) throw new IllegalArgumentException(); ! buf = buffer; count = offset + length; if (count > buf.length) count = buf.length; ! pos = offset; markedPos = pos; } --- 114,126 ---- super(); if (offset < 0 || length < 0 || offset > buffer.length) throw new IllegalArgumentException(); ! buf = buffer; count = offset + length; if (count > buf.length) count = buf.length; ! pos = offset; markedPos = pos; } *************** public class CharArrayReader extends Rea *** 132,138 **** { synchronized (lock) { ! buf = null; } } --- 132,138 ---- { synchronized (lock) { ! buf = null; } } *************** public class CharArrayReader extends Rea *** 155,164 **** { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! // readAheadLimit is ignored per Java Class Lib. book, p. 318. ! markedPos = pos; } } --- 155,164 ---- { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! // readAheadLimit is ignored per Java Class Lib. book, p. 318. ! markedPos = pos; } } *************** public class CharArrayReader extends Rea *** 189,203 **** { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! if (pos < 0) ! throw new ArrayIndexOutOfBoundsException(pos); ! if (pos < count) ! return ((int) buf[pos++]) & 0xFFFF; ! return -1; } } --- 189,203 ---- { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! if (pos < 0) ! throw new ArrayIndexOutOfBoundsException(pos); ! if (pos < count) ! return ((int) buf[pos++]) & 0xFFFF; ! return -1; } } *************** public class CharArrayReader extends Rea *** 223,247 **** { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! /* Don't need to check pos value, arraycopy will check it. */ ! if (off < 0 || len < 0 || off + len > b.length) ! throw new IndexOutOfBoundsException(); ! if (pos >= count) ! return -1; ! int numChars = Math.min(count - pos, len); ! System.arraycopy(buf, pos, b, off, numChars); ! pos += numChars; ! return numChars; } } /** ! * Return true if more characters are available to be read. * * @return true to indicate that this stream is ready * to be read. --- 223,247 ---- { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! /* Don't need to check pos value, arraycopy will check it. */ ! if (off < 0 || len < 0 || off + len > b.length) ! throw new IndexOutOfBoundsException(); ! if (pos >= count) ! return -1; ! int numChars = Math.min(count - pos, len); ! System.arraycopy(buf, pos, b, off, numChars); ! pos += numChars; ! return numChars; } } /** ! * Return true if more characters are available to be read. * * @return true to indicate that this stream is ready * to be read. *************** public class CharArrayReader extends Rea *** 268,277 **** { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! pos = markedPos; } } --- 268,277 ---- { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! pos = markedPos; } } *************** public class CharArrayReader extends Rea *** 290,305 **** { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! // Even though the var numChars is a long, in reality it can never ! // be larger than an int since the result of subtracting 2 positive ! // ints will always fit in an int. Since we have to return a long ! // anyway, numChars might as well just be a long. ! long numChars = Math.min((long) (count - pos), n < 0 ? 0L : n); ! pos += numChars; ! return numChars; } } } --- 290,305 ---- { synchronized (lock) { ! if (buf == null) ! throw new IOException("Stream closed"); ! // Even though the var numChars is a long, in reality it can never ! // be larger than an int since the result of subtracting 2 positive ! // ints will always fit in an int. Since we have to return a long ! // anyway, numChars might as well just be a long. ! long numChars = Math.min((long) (count - pos), n < 0 ? 0L : n); ! pos += numChars; ! return numChars; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/CharArrayWriter.java gcc-4.6.0/libjava/classpath/java/io/CharArrayWriter.java *** gcc-4.5.2/libjava/classpath/java/io/CharArrayWriter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/CharArrayWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class CharArrayWriter extends Wri *** 116,122 **** { synchronized (lock) { ! count = 0; } } --- 116,122 ---- { synchronized (lock) { ! count = 0; } } *************** public class CharArrayWriter extends Wri *** 141,157 **** * This method returns a char array containing the chars that have been * written to this stream so far. This array is a copy of the valid * chars in the internal buffer and its length is equal to the number of ! * valid chars, not necessarily to the the length of the current * internal buffer. Note that since this method allocates a new array, * it should be used with caution when the internal buffer is very large. */ public char[] toCharArray () { synchronized (lock) ! { ! char[] nc = new char[count]; ! System.arraycopy(buf, 0, nc, 0, count); ! return nc; } } --- 141,157 ---- * This method returns a char array containing the chars that have been * written to this stream so far. This array is a copy of the valid * chars in the internal buffer and its length is equal to the number of ! * valid chars, not necessarily to the the length of the current * internal buffer. Note that since this method allocates a new array, * it should be used with caution when the internal buffer is very large. */ public char[] toCharArray () { synchronized (lock) ! { ! char[] nc = new char[count]; ! System.arraycopy(buf, 0, nc, 0, count); ! return nc; } } *************** public class CharArrayWriter extends Wri *** 168,174 **** { synchronized (lock) { ! return new String (buf, 0, count); } } --- 168,174 ---- { synchronized (lock) { ! return new String (buf, 0, count); } } *************** public class CharArrayWriter extends Wri *** 182,194 **** { synchronized (lock) { ! resize (1); ! buf[count++] = (char) oneChar; } } /** ! * This method writes len chars from the passed in array * buf starting at index offset into that buffer * * @param buffer The char array to write data from --- 182,194 ---- { synchronized (lock) { ! resize (1); ! buf[count++] = (char) oneChar; } } /** ! * This method writes len chars from the passed in array * buf starting at index offset into that buffer * * @param buffer The char array to write data from *************** public class CharArrayWriter extends Wri *** 199,208 **** { synchronized (lock) { ! if (len >= 0) ! resize (len); ! System.arraycopy(buffer, offset, buf, count, len); ! count += len; } } --- 199,208 ---- { synchronized (lock) { ! if (len >= 0) ! resize (len); ! System.arraycopy(buffer, offset, buf, count, len); ! count += len; } } *************** public class CharArrayWriter extends Wri *** 219,228 **** { synchronized (lock) { ! if (len >= 0) ! resize (len); ! str.getChars(offset, offset + len, buf, count); ! count += len; } } --- 219,228 ---- { synchronized (lock) { ! if (len >= 0) ! resize (len); ! str.getChars(offset, offset + len, buf, count); ! count += len; } } *************** public class CharArrayWriter extends Wri *** 238,254 **** { synchronized (lock) { ! out.write(buf, 0, count); } } ! /** * Appends the Unicode character, c, to the output stream * underlying this writer. This is equivalent to write(c). * * @param c the character to append. * @return a reference to this object. ! * @since 1.5 */ public CharArrayWriter append(char c) { --- 238,254 ---- { synchronized (lock) { ! out.write(buf, 0, count); } } ! /** * Appends the Unicode character, c, to the output stream * underlying this writer. This is equivalent to write(c). * * @param c the character to append. * @return a reference to this object. ! * @since 1.5 */ public CharArrayWriter append(char c) { *************** public class CharArrayWriter extends Wri *** 256,262 **** return this; } ! /** * Appends the specified sequence of Unicode characters to the * output stream underlying this writer. This is equivalent to * appending the results of calling toString() on the --- 256,262 ---- return this; } ! /** * Appends the specified sequence of Unicode characters to the * output stream underlying this writer. This is equivalent to * appending the results of calling toString() on the *************** public class CharArrayWriter extends Wri *** 271,292 **** * then the string "null" (the string representation of null) * is appended. * @return a reference to this object. ! * @since 1.5 */ public CharArrayWriter append(CharSequence cs) { try { ! write(cs == null ? "null" : cs.toString()); } catch (IOException _) { ! // Can't happen. } return this; } ! /** * Appends the specified subsequence of Unicode characters to the * output stream underlying this writer, starting and ending at the * specified positions within the sequence. The behaviour of this --- 271,292 ---- * then the string "null" (the string representation of null) * is appended. * @return a reference to this object. ! * @since 1.5 */ public CharArrayWriter append(CharSequence cs) { try { ! write(cs == null ? "null" : cs.toString()); } catch (IOException _) { ! // Can't happen. } return this; } ! /** * Appends the specified subsequence of Unicode characters to the * output stream underlying this writer, starting and ending at the * specified positions within the sequence. The behaviour of this *************** public class CharArrayWriter extends Wri *** 311,321 **** { try { ! write(cs == null ? "null" : cs.subSequence(start, end).toString()); } catch (IOException _) { ! // Can't happen. } return this; } --- 311,321 ---- { try { ! write(cs == null ? "null" : cs.subSequence(start, end).toString()); } catch (IOException _) { ! // Can't happen. } return this; } *************** public class CharArrayWriter extends Wri *** 331,342 **** { if (count + len >= buf.length) { ! int newlen = buf.length * 2; ! if (count + len > newlen) ! newlen = count + len; ! char[] newbuf = new char[newlen]; ! System.arraycopy(buf, 0, newbuf, 0, count); ! buf = newbuf; } } --- 331,342 ---- { if (count + len >= buf.length) { ! int newlen = buf.length * 2; ! if (count + len > newlen) ! newlen = count + len; ! char[] newbuf = new char[newlen]; ! System.arraycopy(buf, 0, newbuf, 0, count); ! buf = newbuf; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/DataInput.java gcc-4.6.0/libjava/classpath/java/io/DataInput.java *** gcc-4.5.2/libjava/classpath/java/io/DataInput.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/DataInput.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 40,51 **** /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * "The Java Language Specification", ISBN 0-201-63451-1 ! * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ /** ! * This interface is implemented by classes that can data from streams ! * into Java primitive types. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Warren Levy (warrenl@cygnus.com) --- 40,51 ---- /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * "The Java Language Specification", ISBN 0-201-63451-1 ! * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ /** ! * This interface is implemented by classes that can data from streams ! * into Java primitive types. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Warren Levy (warrenl@cygnus.com) *************** public interface DataInput *** 65,71 **** * * @return The boolean value read * ! * @exception EOFException If end of file is reached before * reading the boolean * @exception IOException If any other error occurs * --- 65,71 ---- * * @return The boolean value read * ! * @exception EOFException If end of file is reached before * reading the boolean * @exception IOException If any other error occurs * *************** public interface DataInput *** 78,84 **** * is in the range of -128 to 127. *

            * This method can read a byte written by an object ! * implementing the * writeByte() method in the DataOutput interface. *

            * @return The byte value read --- 78,84 ---- * is in the range of -128 to 127. *

            * This method can read a byte written by an object ! * implementing the * writeByte() method in the DataOutput interface. *

            * @return The byte value read *************** public interface DataInput *** 94,100 **** * This method reads 8 unsigned bits into a Java int value from * the stream. The value returned is in the range of 0 to 255. *

            ! * This method can read an unsigned byte written by an object * implementing the * writeByte() method in the DataOutput * interface. --- 94,100 ---- * This method reads 8 unsigned bits into a Java int value from * the stream. The value returned is in the range of 0 to 255. *

            ! * This method can read an unsigned byte written by an object * implementing the * writeByte() method in the DataOutput * interface. *************** public interface DataInput *** 109,119 **** int readUnsignedByte() throws EOFException, IOException; /** ! * This method reads a Java char value from an input stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java char. The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 represent the * first and second byte read from the stream respectively, they will be --- 109,119 ---- int readUnsignedByte() throws EOFException, IOException; /** ! * This method reads a Java char value from an input stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java char. The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 represent the * first and second byte read from the stream respectively, they will be *************** public interface DataInput *** 125,131 **** * the * writeChar() method in the DataOutput interface. * ! * @return The char value read * * @exception EOFException If end of file is reached before reading the char * @exception IOException If any other error occurs --- 125,131 ---- * the * writeChar() method in the DataOutput interface. * ! * @return The char value read * * @exception EOFException If end of file is reached before reading the char * @exception IOException If any other error occurs *************** public interface DataInput *** 136,145 **** /** * This method reads a signed 16-bit value into a Java in from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java short. The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 represent the * first and second byte read from the stream respectively, they will be --- 136,145 ---- /** * This method reads a signed 16-bit value into a Java in from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java short. The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 represent the * first and second byte read from the stream respectively, they will be *************** public interface DataInput *** 149,155 **** *

            * The value returned is in the range of -32768 to 32767. *

            ! * This method can read a short written by an object * implementing * the writeShort() method in the DataOutput * interface. --- 149,155 ---- *

            * The value returned is in the range of -32768 to 32767. *

            ! * This method can read a short written by an object * implementing * the writeShort() method in the DataOutput * interface. *************** public interface DataInput *** 165,174 **** /** * This method reads 16 unsigned bits into a Java int value from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single Java int. The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 represent the * first and second byte read from the stream respectively, they will be --- 165,174 ---- /** * This method reads 16 unsigned bits into a Java int value from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single Java int. The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 represent the * first and second byte read from the stream respectively, they will be *************** public interface DataInput *** 179,191 **** * The value returned is in the range of 0 to 65535. *

            * This method can read an unsigned short written by an object implementing ! * the writeShort() method in the * DataOutput * interface. * * @return The unsigned short value read as a Java int. * ! * @exception EOFException If end of file is reached before reading * the value * @exception IOException If any other error occurs * --- 179,191 ---- * The value returned is in the range of 0 to 65535. *

            * This method can read an unsigned short written by an object implementing ! * the writeShort() method in the * DataOutput * interface. * * @return The unsigned short value read as a Java int. * ! * @exception EOFException If end of file is reached before reading * the value * @exception IOException If any other error occurs * *************** public interface DataInput *** 195,216 **** /** * This method reads a Java int value from an input stream ! * It operates by reading four bytes from the stream and converting them to * a single Java int. The bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 through byte4 represent * the first four bytes read from the stream, they will be * transformed to an int in the following manner: *

            ! * (int)(((byte1 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) + * ((byte3 & 0xFF)<< 8) + (byte4 & 0xFF))) *

            * The value returned is in the range of -2147483648 to 2147483647. *

            ! * This method can read an int written by an object ! * implementing the writeInt() method in the * DataOutput interface. * * @return The int value read --- 195,216 ---- /** * This method reads a Java int value from an input stream ! * It operates by reading four bytes from the stream and converting them to * a single Java int. The bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 through byte4 represent * the first four bytes read from the stream, they will be * transformed to an int in the following manner: *

            ! * (int)(((byte1 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) + * ((byte3 & 0xFF)<< 8) + (byte4 & 0xFF))) *

            * The value returned is in the range of -2147483648 to 2147483647. *

            ! * This method can read an int written by an object ! * implementing the writeInt() method in the * DataOutput interface. * * @return The int value read *************** public interface DataInput *** 224,249 **** /** * This method reads a Java long value from an input stream ! * It operates by reading eight bytes from the stream and converting them to * a single Java long. The bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 through byte8 represent * the first eight bytes read from the stream, they will be * transformed to an long in the following manner: *

            ! * (long)(((byte1 & 0xFF) << 56) + ((byte2 & 0xFF) << 48) + ! * ((byte3 & 0xFF) << 40) + ((byte4 & 0xFF) << 32) + ! * ((byte5 & 0xFF) << 24) + ((byte6 & 0xFF) << 16) + * ((byte7 & 0xFF) << 8) + (byte8 & 0xFF))) * *

            * The value returned is in the range of -9223372036854775808 to * 9223372036854775807. *

            ! * This method can read an long written by an object ! * implementing the writeLong() method in the * DataOutput interface. * * @return The long value read --- 224,249 ---- /** * This method reads a Java long value from an input stream ! * It operates by reading eight bytes from the stream and converting them to * a single Java long. The bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 through byte8 represent * the first eight bytes read from the stream, they will be * transformed to an long in the following manner: *

            ! * (long)(((byte1 & 0xFF) << 56) + ((byte2 & 0xFF) << 48) + ! * ((byte3 & 0xFF) << 40) + ((byte4 & 0xFF) << 32) + ! * ((byte5 & 0xFF) << 24) + ((byte6 & 0xFF) << 16) + * ((byte7 & 0xFF) << 8) + (byte8 & 0xFF))) * *

            * The value returned is in the range of -9223372036854775808 to * 9223372036854775807. *

            ! * This method can read an long written by an object ! * implementing the writeLong() method in the * DataOutput interface. * * @return The long value read *************** public interface DataInput *** 263,276 **** * intBitsToFloat method in the class * java.lang.Float. *

            ! * This method can read a float written by an object * implementing * the writeFloat() method in the DataOutput * interface. * * @return The float value read * ! * @exception EOFException If end of file is reached before reading the * float * @exception IOException If any other error occurs * --- 263,276 ---- * intBitsToFloat method in the class * java.lang.Float. *

            ! * This method can read a float written by an object * implementing * the writeFloat() method in the DataOutput * interface. * * @return The float value read * ! * @exception EOFException If end of file is reached before reading the * float * @exception IOException If any other error occurs * *************** public interface DataInput *** 293,299 **** * * @return The double value read * ! * @exception EOFException If end of file is reached before reading the * double * @exception IOException If any other error occurs * --- 293,299 ---- * * @return The double value read * ! * @exception EOFException If end of file is reached before reading the * double * @exception IOException If any other error occurs * *************** public interface DataInput *** 304,319 **** /** * This method reads the next line of text data from an input stream. ! * It operates by reading bytes and converting those bytes to * char * values by treating the byte read as the low eight bits of the * char and using 0 as the high eight bits. Because of this, * it does not support the full 16-bit Unicode character set. *

            * The reading of bytes ends when either the end of file or a line terminator ! * is encountered. The bytes read are then returned as a * String. ! * A line terminator is a byte sequence consisting of either * \r, \n or \r\n. These termination * charaters are discarded and are not returned as part of the string. * A line is also terminated by an end of file condition. --- 304,319 ---- /** * This method reads the next line of text data from an input stream. ! * It operates by reading bytes and converting those bytes to * char * values by treating the byte read as the low eight bits of the * char and using 0 as the high eight bits. Because of this, * it does not support the full 16-bit Unicode character set. *

            * The reading of bytes ends when either the end of file or a line terminator ! * is encountered. The bytes read are then returned as a * String. ! * A line terminator is a byte sequence consisting of either * \r, \n or \r\n. These termination * charaters are discarded and are not returned as part of the string. * A line is also terminated by an end of file condition. *************** public interface DataInput *** 328,344 **** /** * This method reads a String from an input stream that is * encoded in a modified UTF-8 format. This format has a leading two byte ! * sequence that contains the remaining number of bytes to read. * This two byte * sequence is read using the readUnsignedShort() method of this * interface. * * After the number of remaining bytes have been determined, these bytes * are read an transformed into char values. These ! * char values are encoded in the stream using either a one, * two, or three byte format. * The particular format in use can be determined by examining the first ! * byte read. *

            * If the first byte has a high order bit of 0, then * that character consists on only one byte. This character value consists --- 328,344 ---- /** * This method reads a String from an input stream that is * encoded in a modified UTF-8 format. This format has a leading two byte ! * sequence that contains the remaining number of bytes to read. * This two byte * sequence is read using the readUnsignedShort() method of this * interface. * * After the number of remaining bytes have been determined, these bytes * are read an transformed into char values. These ! * char values are encoded in the stream using either a one, * two, or three byte format. * The particular format in use can be determined by examining the first ! * byte read. *

            * If the first byte has a high order bit of 0, then * that character consists on only one byte. This character value consists *************** public interface DataInput *** 348,357 **** *

            * (char)byte1 *

            ! * If the first byte has 110 as its high order bits, then the * character consists of two bytes. The bits that make up the character * value are in positions 0 through 4 of the first byte and bit positions ! * 0 through 5 of the second byte. (The second byte should have * 10 as its high order bits). These values are in most significant * byte first (i.e., "big endian") order. *

            --- 348,357 ---- *

            * (char)byte1 *

            ! * If the first byte has 110 as its high order bits, then the * character consists of two bytes. The bits that make up the character * value are in positions 0 through 4 of the first byte and bit positions ! * 0 through 5 of the second byte. (The second byte should have * 10 as its high order bits). These values are in most significant * byte first (i.e., "big endian") order. *

            *************** public interface DataInput *** 380,395 **** * * Note that all characters are encoded in the method that requires the * fewest number of bytes with the exception of the character with the ! * value of \<llll>u0000 which is encoded as two bytes. ! * This is a modification of the UTF standard used to prevent C language * style NUL values from appearing in the byte stream. *

            * This method can read data that was written by an object implementing the * writeUTF() method in DataOutput. ! * * @return The String read * ! * @exception EOFException If end of file is reached before reading the * String * @exception UTFDataFormatException If the data is not in UTF-8 format * @exception IOException If any other error occurs --- 380,395 ---- * * Note that all characters are encoded in the method that requires the * fewest number of bytes with the exception of the character with the ! * value of \<llll>u0000 which is encoded as two bytes. ! * This is a modification of the UTF standard used to prevent C language * style NUL values from appearing in the byte stream. *

            * This method can read data that was written by an object implementing the * writeUTF() method in DataOutput. ! * * @return The String read * ! * @exception EOFException If end of file is reached before reading the * String * @exception UTFDataFormatException If the data is not in UTF-8 format * @exception IOException If any other error occurs *************** public interface DataInput *** 408,426 **** * * @param buf The buffer into which to read the data * ! * @exception EOFException If end of file is reached before filling the * buffer * @exception IOException If any other error occurs */ void readFully(byte[] buf) throws EOFException, IOException; /** ! * This method reads raw bytes into the passed array buf * starting ! * offset bytes into the buffer. The number of bytes read * will be ! * exactly len. Note that this method blocks until the data is ! * available and throws an exception if there is not enough data left in * the stream to read len bytes. Note also that zero length * buffers are permitted. In this case, the method will return immediately * without reading any bytes from the stream. --- 408,426 ---- * * @param buf The buffer into which to read the data * ! * @exception EOFException If end of file is reached before filling the * buffer * @exception IOException If any other error occurs */ void readFully(byte[] buf) throws EOFException, IOException; /** ! * This method reads raw bytes into the passed array buf * starting ! * offset bytes into the buffer. The number of bytes read * will be ! * exactly len. Note that this method blocks until the data is ! * available and throws an exception if there is not enough data left in * the stream to read len bytes. Note also that zero length * buffers are permitted. In this case, the method will return immediately * without reading any bytes from the stream. *************** public interface DataInput *** 429,439 **** * @param offset The offset into the buffer to start storing data * @param len The number of bytes to read into the buffer * ! * @exception EOFException If end of file is reached before filling the * buffer * @exception IOException If any other error occurs */ ! void readFully(byte[] buf, int offset, int len) throws EOFException, IOException; /** --- 429,439 ---- * @param offset The offset into the buffer to start storing data * @param len The number of bytes to read into the buffer * ! * @exception EOFException If end of file is reached before filling the * buffer * @exception IOException If any other error occurs */ ! void readFully(byte[] buf, int offset, int len) throws EOFException, IOException; /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/DataInputStream.java gcc-4.6.0/libjava/classpath/java/io/DataInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/DataInputStream.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/io/DataInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** or based on this library. If you modify *** 35,41 **** this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package java.io; import gnu.java.lang.CPStringBuilder; --- 35,41 ---- this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package java.io; import gnu.java.lang.CPStringBuilder; *************** import gnu.java.lang.CPStringBuilder; *** 45,51 **** * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! /** * This subclass of FilteredInputStream implements the * DataInput interface that provides method for reading primitive --- 45,51 ---- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! /** * This subclass of FilteredInputStream implements the * DataInput interface that provides method for reading primitive *************** import gnu.java.lang.CPStringBuilder; *** 55,67 **** * * @author Warren Levy (warrenl@cygnus.com) * @author Aaron M. Renn (arenn@urbanophile.com) ! * @date October 20, 1998. */ public class DataInputStream extends FilterInputStream implements DataInput { // Byte buffer, used to make primitive read calls more efficient. byte[] buf = new byte [8]; ! /** * This constructor initializes a new DataInputStream * to read from the specified subordinate stream. --- 55,67 ---- * * @author Warren Levy (warrenl@cygnus.com) * @author Aaron M. Renn (arenn@urbanophile.com) ! * @date October 20, 1998. */ public class DataInputStream extends FilterInputStream implements DataInput { // Byte buffer, used to make primitive read calls more efficient. byte[] buf = new byte [8]; ! /** * This constructor initializes a new DataInputStream * to read from the specified subordinate stream. *************** public class DataInputStream extends Fil *** 80,87 **** * read to fill the buffer. * * @param b The buffer into which bytes will be read. ! * ! * @return The actual number of bytes read, or -1 if end of stream reached * before reading any bytes. * * @exception IOException If an error occurs. --- 80,87 ---- * read to fill the buffer. * * @param b The buffer into which bytes will be read. ! * ! * @return The actual number of bytes read, or -1 if end of stream reached * before reading any bytes. * * @exception IOException If an error occurs. *************** public class DataInputStream extends Fil *** 120,126 **** *

            * This method can read a boolean written by an object * implementing the writeBoolean() method in the ! * DataOutput interface. * * @return The boolean value read * --- 120,126 ---- *

            * This method can read a boolean written by an object * implementing the writeBoolean() method in the ! * DataOutput interface. * * @return The boolean value read * *************** public class DataInputStream extends Fil *** 156,179 **** } /** ! * This method reads a Java char value from an input stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java char. The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 * represent the first and second byte read from the stream * respectively, they will be transformed to a char in ! * the following manner: *

            * (char)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF) *

            * This method can read a char written by an object * implementing the writeChar() method in the ! * DataOutput interface. * ! * @return The char value read * * @exception EOFException If end of file is reached before reading the char * @exception IOException If any other error occurs --- 156,179 ---- } /** ! * This method reads a Java char value from an input stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java char. The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 * represent the first and second byte read from the stream * respectively, they will be transformed to a char in ! * the following manner: *

            * (char)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF) *

            * This method can read a char written by an object * implementing the writeChar() method in the ! * DataOutput interface. * ! * @return The char value read * * @exception EOFException If end of file is reached before reading the char * @exception IOException If any other error occurs *************** public class DataInputStream extends Fil *** 192,198 **** * readLong() method in this interface, then converts * that long to a double using the * longBitsToDouble method in the class ! * java.lang.Double *

            * This method can read a double written by an object * implementing the writeDouble() method in the --- 192,198 ---- * readLong() method in this interface, then converts * that long to a double using the * longBitsToDouble method in the class ! * java.lang.Double *

            * This method can read a double written by an object * implementing the writeDouble() method in the *************** public class DataInputStream extends Fil *** 229,235 **** * @exception EOFException If end of file is reached before reading the float * @exception IOException If any other error occurs * ! * @see DataOutput#writeFloat * @see java.lang.Float#intBitsToFloat */ public final float readFloat () throws IOException --- 229,235 ---- * @exception EOFException If end of file is reached before reading the float * @exception IOException If any other error occurs * ! * @see DataOutput#writeFloat * @see java.lang.Float#intBitsToFloat */ public final float readFloat () throws IOException *************** public class DataInputStream extends Fil *** 279,293 **** { if (len < 0) throw new IndexOutOfBoundsException("Negative length: " + len); ! while (len > 0) { ! // in.read will block until some data is available. ! int numread = in.read (buf, offset, len); ! if (numread < 0) ! throw new EOFException (); ! len -= numread; ! offset += numread; } } --- 279,293 ---- { if (len < 0) throw new IndexOutOfBoundsException("Negative length: " + len); ! while (len > 0) { ! // in.read will block until some data is available. ! int numread = in.read (buf, offset, len); ! if (numread < 0) ! throw new EOFException (); ! len -= numread; ! offset += numread; } } *************** public class DataInputStream extends Fil *** 357,367 **** while (true) { int c = in.read(); ! if (c == -1) // got an EOF ! return strb.length() > 0 ? strb.toString() : null; ! if (c == '\r') ! { ! int next_c = in.read(); if (next_c != '\n' && next_c != -1) { if (!(in instanceof PushbackInputStream)) --- 357,367 ---- while (true) { int c = in.read(); ! if (c == -1) // got an EOF ! return strb.length() > 0 ? strb.toString() : null; ! if (c == '\r') ! { ! int next_c = in.read(); if (next_c != '\n' && next_c != -1) { if (!(in instanceof PushbackInputStream)) *************** public class DataInputStream extends Fil *** 369,378 **** ((PushbackInputStream) in).unread(next_c); } break; ! } if (c == '\n') break; ! strb.append((char) c); } return strb.length() > 0 ? strb.toString() : ""; --- 369,378 ---- ((PushbackInputStream) in).unread(next_c); } break; ! } if (c == '\n') break; ! strb.append((char) c); } return strb.length() > 0 ? strb.toString() : ""; *************** public class DataInputStream extends Fil *** 447,453 **** readFully (buf, 0, 2); return convertToShort (buf); } ! /** * This method reads 8 unsigned bits into a Java int * value from the stream. The value returned is in the range of 0 to --- 447,453 ---- readFully (buf, 0, 2); return convertToShort (buf); } ! /** * This method reads 8 unsigned bits into a Java int * value from the stream. The value returned is in the range of 0 to *************** public class DataInputStream extends Fil *** 471,480 **** /** * This method reads 16 unsigned bits into a Java int value from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single Java int The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 * represent the first and second byte read from the stream --- 471,480 ---- /** * This method reads 16 unsigned bits into a Java int value from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single Java int The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            * As an example, if byte1 and byte2 * represent the first and second byte read from the stream *************** public class DataInputStream extends Fil *** 523,532 **** *

            * (char)byte1 *

            ! * If the first byte has 110 as its high order bits, then the * character consists of two bytes. The bits that make up the character * value are in positions 0 through 4 of the first byte and bit positions ! * 0 through 5 of the second byte. (The second byte should have * 10 as its high order bits). These values are in most significant * byte first (i.e., "big endian") order. *

            --- 523,532 ---- *

            * (char)byte1 *

            ! * If the first byte has 110 as its high order bits, then the * character consists of two bytes. The bits that make up the character * value are in positions 0 through 4 of the first byte and bit positions ! * 0 through 5 of the second byte. (The second byte should have * 10 as its high order bits). These values are in most significant * byte first (i.e., "big endian") order. *

            *************** public class DataInputStream extends Fil *** 551,557 **** * character encoding, then they would be converted to a Java * char like so: *

            ! * (char)(((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | * (byte3 & 0x3F)) *

            * Note that all characters are encoded in the method that requires --- 551,557 ---- * character encoding, then they would be converted to a Java * char like so: *

            ! * (char)(((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | * (byte3 & 0x3F)) *

            * Note that all characters are encoded in the method that requires *************** public class DataInputStream extends Fil *** 563,569 **** *

            * This method can read data that was written by an object implementing the * writeUTF() method in DataOutput ! * * @return The String read * * @exception EOFException If end of file is reached before reading --- 563,569 ---- *

            * This method can read data that was written by an object implementing the * writeUTF() method in DataOutput ! * * @return The String read * * @exception EOFException If end of file is reached before reading *************** public class DataInputStream extends Fil *** 579,585 **** } /** ! * This method reads a String encoded in UTF-8 format from the * specified DataInput source. * * @param in The DataInput source to read from --- 579,585 ---- } /** ! * This method reads a String encoded in UTF-8 format from the * specified DataInput source. * * @param in The DataInput source to read from *************** public class DataInputStream extends Fil *** 593,599 **** public static final String readUTF(DataInput in) throws IOException { final int UTFlen = in.readUnsignedShort (); ! return readUTF(in, UTFlen); } --- 593,599 ---- public static final String readUTF(DataInput in) throws IOException { final int UTFlen = in.readUnsignedShort (); ! return readUTF(in, UTFlen); } *************** public class DataInputStream extends Fil *** 601,607 **** * This method is similar to readUTF, but the * UTF-8 byte length is in 64 bits. * This method is not public. It is used by ObjectInputStream. ! * * @return The String read * * @exception EOFException If end of file is reached before reading --- 601,607 ---- * This method is similar to readUTF, but the * UTF-8 byte length is in 64 bits. * This method is not public. It is used by ObjectInputStream. ! * * @return The String read * * @exception EOFException If end of file is reached before reading *************** public class DataInputStream extends Fil *** 648,672 **** } /** ! * This method attempts to skip and discard the specified number of bytes ! * in the input stream. It may actually skip fewer bytes than requested. ! * This method will not skip any bytes if passed a negative number of bytes ! * to skip. * * @param n The requested number of bytes to skip. * * @return The requested number of bytes to skip. * * @exception IOException If an error occurs. ! * @specnote The JDK docs claim that this returns the number of bytes ! * actually skipped. The JCL claims that this method can throw an * EOFException. Neither of these appear to be true in the JDK 1.3's * implementation. This tries to implement the actual JDK behaviour. */ public final int skipBytes (int n) throws IOException { if (n <= 0) ! return 0; try { return (int) in.skip (n); --- 648,672 ---- } /** ! * This method attempts to skip and discard the specified number of bytes ! * in the input stream. It may actually skip fewer bytes than requested. ! * This method will not skip any bytes if passed a negative number of bytes ! * to skip. * * @param n The requested number of bytes to skip. * * @return The requested number of bytes to skip. * * @exception IOException If an error occurs. ! * @specnote The JDK docs claim that this returns the number of bytes ! * actually skipped. The JCL claims that this method can throw an * EOFException. Neither of these appear to be true in the JDK 1.3's * implementation. This tries to implement the actual JDK behaviour. */ public final int skipBytes (int n) throws IOException { if (n <= 0) ! return 0; try { return (int) in.skip (n); *************** public class DataInputStream extends Fil *** 674,688 **** catch (EOFException x) { // do nothing. ! } return n; } ! static boolean convertToBoolean (int b) throws EOFException { if (b < 0) throw new EOFException (); ! return (b != 0); } --- 674,688 ---- catch (EOFException x) { // do nothing. ! } return n; } ! static boolean convertToBoolean (int b) throws EOFException { if (b < 0) throw new EOFException (); ! return (b != 0); } *************** public class DataInputStream extends Fil *** 690,696 **** { if (i < 0) throw new EOFException (); ! return (byte) i; } --- 690,696 ---- { if (i < 0) throw new EOFException (); ! return (byte) i; } *************** public class DataInputStream extends Fil *** 698,783 **** { if (i < 0) throw new EOFException (); ! return (i & 0xFF); } static char convertToChar (byte[] buf) { return (char) ((buf [0] << 8) ! | (buf [1] & 0xff)); ! } static short convertToShort (byte[] buf) { return (short) ((buf [0] << 8) ! | (buf [1] & 0xff)); ! } static int convertToUnsignedShort (byte[] buf) { return (((buf [0] & 0xff) << 8) ! | (buf [1] & 0xff)); } static int convertToInt (byte[] buf) { return (((buf [0] & 0xff) << 24) ! | ((buf [1] & 0xff) << 16) ! | ((buf [2] & 0xff) << 8) ! | (buf [3] & 0xff)); } static long convertToLong (byte[] buf) { return (((long)(buf [0] & 0xff) << 56) | ! ((long)(buf [1] & 0xff) << 48) | ! ((long)(buf [2] & 0xff) << 40) | ! ((long)(buf [3] & 0xff) << 32) | ! ((long)(buf [4] & 0xff) << 24) | ! ((long)(buf [5] & 0xff) << 16) | ! ((long)(buf [6] & 0xff) << 8) | ! ((long)(buf [7] & 0xff))); } // FIXME: This method should be re-thought. I suspect we have multiple // UTF-8 decoders floating around. We should use the standard charset // converters, maybe and adding a direct call into one of the new // NIO converters for a super-fast UTF8 decode. ! static String convertFromUTF (byte[] buf) throws EOFException, UTFDataFormatException { ! // Give StringBuffer an initial estimated size to avoid // enlarge buffer frequently CPStringBuilder strbuf = new CPStringBuilder (buf.length / 2 + 2); for (int i = 0; i < buf.length; ) { ! if ((buf [i] & 0x80) == 0) // bit pattern 0xxxxxxx ! strbuf.append ((char) (buf [i++] & 0xFF)); ! else if ((buf [i] & 0xE0) == 0xC0) // bit pattern 110xxxxx ! { ! if (i + 1 >= buf.length ! || (buf [i + 1] & 0xC0) != 0x80) ! throw new UTFDataFormatException (); ! strbuf.append((char) (((buf [i++] & 0x1F) << 6) ! | (buf [i++] & 0x3F))); ! } ! else if ((buf [i] & 0xF0) == 0xE0) // bit pattern 1110xxxx ! { ! if (i + 2 >= buf.length ! || (buf [i + 1] & 0xC0) != 0x80 ! || (buf [i + 2] & 0xC0) != 0x80) ! throw new UTFDataFormatException (); ! strbuf.append ((char) (((buf [i++] & 0x0F) << 12) ! | ((buf [i++] & 0x3F) << 6) ! | (buf [i++] & 0x3F))); ! } ! else // must be ((buf [i] & 0xF0) == 0xF0 || (buf [i] & 0xC0) == 0x80) ! throw new UTFDataFormatException (); // bit patterns 1111xxxx or ! // 10xxxxxx } return strbuf.toString (); --- 698,783 ---- { if (i < 0) throw new EOFException (); ! return (i & 0xFF); } static char convertToChar (byte[] buf) { return (char) ((buf [0] << 8) ! | (buf [1] & 0xff)); ! } static short convertToShort (byte[] buf) { return (short) ((buf [0] << 8) ! | (buf [1] & 0xff)); ! } static int convertToUnsignedShort (byte[] buf) { return (((buf [0] & 0xff) << 8) ! | (buf [1] & 0xff)); } static int convertToInt (byte[] buf) { return (((buf [0] & 0xff) << 24) ! | ((buf [1] & 0xff) << 16) ! | ((buf [2] & 0xff) << 8) ! | (buf [3] & 0xff)); } static long convertToLong (byte[] buf) { return (((long)(buf [0] & 0xff) << 56) | ! ((long)(buf [1] & 0xff) << 48) | ! ((long)(buf [2] & 0xff) << 40) | ! ((long)(buf [3] & 0xff) << 32) | ! ((long)(buf [4] & 0xff) << 24) | ! ((long)(buf [5] & 0xff) << 16) | ! ((long)(buf [6] & 0xff) << 8) | ! ((long)(buf [7] & 0xff))); } // FIXME: This method should be re-thought. I suspect we have multiple // UTF-8 decoders floating around. We should use the standard charset // converters, maybe and adding a direct call into one of the new // NIO converters for a super-fast UTF8 decode. ! static String convertFromUTF (byte[] buf) throws EOFException, UTFDataFormatException { ! // Give StringBuffer an initial estimated size to avoid // enlarge buffer frequently CPStringBuilder strbuf = new CPStringBuilder (buf.length / 2 + 2); for (int i = 0; i < buf.length; ) { ! if ((buf [i] & 0x80) == 0) // bit pattern 0xxxxxxx ! strbuf.append ((char) (buf [i++] & 0xFF)); ! else if ((buf [i] & 0xE0) == 0xC0) // bit pattern 110xxxxx ! { ! if (i + 1 >= buf.length ! || (buf [i + 1] & 0xC0) != 0x80) ! throw new UTFDataFormatException (); ! strbuf.append((char) (((buf [i++] & 0x1F) << 6) ! | (buf [i++] & 0x3F))); ! } ! else if ((buf [i] & 0xF0) == 0xE0) // bit pattern 1110xxxx ! { ! if (i + 2 >= buf.length ! || (buf [i + 1] & 0xC0) != 0x80 ! || (buf [i + 2] & 0xC0) != 0x80) ! throw new UTFDataFormatException (); ! strbuf.append ((char) (((buf [i++] & 0x0F) << 12) ! | ((buf [i++] & 0x3F) << 6) ! | (buf [i++] & 0x3F))); ! } ! else // must be ((buf [i] & 0xF0) == 0xF0 || (buf [i] & 0xC0) == 0x80) ! throw new UTFDataFormatException (); // bit patterns 1111xxxx or ! // 10xxxxxx } return strbuf.toString (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/DataOutput.java gcc-4.6.0/libjava/classpath/java/io/DataOutput.java *** gcc-4.5.2/libjava/classpath/java/io/DataOutput.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/DataOutput.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 44,52 **** */ /** ! * This interface is implemented by classes that can wrte data to streams * from Java primitive types. This data can subsequently be read back ! * by classes implementing the DataInput interface. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) --- 44,52 ---- */ /** ! * This interface is implemented by classes that can wrte data to streams * from Java primitive types. This data can subsequently be read back ! * by classes implementing the DataInput interface. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) *************** public interface DataOutput *** 58,64 **** /** * This method writes a Java boolean value to an output stream. If * value is true, a byte with the value of ! * 1 will be written, otherwise a byte with the value of 0 will be * written. * * The value written can be read using the readBoolean --- 58,64 ---- /** * This method writes a Java boolean value to an output stream. If * value is true, a byte with the value of ! * 1 will be written, otherwise a byte with the value of 0 will be * written. * * The value written can be read using the readBoolean *************** public interface DataOutput *** 74,80 **** /** * This method writes a Java byte value to an output stream. The ! * byte to be written will be in the lowest 8 bits of the * int value passed. * * The value written can be read using the readByte or --- 74,80 ---- /** * This method writes a Java byte value to an output stream. The ! * byte to be written will be in the lowest 8 bits of the * int value passed. * * The value written can be read using the readByte or *************** public interface DataOutput *** 236,245 **** void writeBytes(String value) throws IOException; /** ! * This method writes all the characters of a String to an * output stream as an array of char's. Each character * is written using the method specified in the writeChar ! * method. * * @param value The String to write * --- 236,245 ---- void writeBytes(String value) throws IOException; /** ! * This method writes all the characters of a String to an * output stream as an array of char's. Each character * is written using the method specified in the writeChar ! * method. * * @param value The String to write * *************** public interface DataOutput *** 253,265 **** * This method writes a Java String to the stream in a modified * UTF-8 format. First, two bytes are written to the stream indicating the * number of bytes to follow. This is written in the form of a Java ! * short value in the same manner used by the ! * writeShort method. Note that this is the number of * bytes in the * encoded String not the String length. Next * come the encoded characters. Each character in the String * is encoded as either one, two or three bytes. For characters in the ! * range of \u0001 to \u007F, one byte is used. * The character * value goes into bits 0-7 and bit eight is 0. For characters in the range * of \u0080 to \u007FF, two bytes are used. Bits --- 253,265 ---- * This method writes a Java String to the stream in a modified * UTF-8 format. First, two bytes are written to the stream indicating the * number of bytes to follow. This is written in the form of a Java ! * short value in the same manner used by the ! * writeShort method. Note that this is the number of * bytes in the * encoded String not the String length. Next * come the encoded characters. Each character in the String * is encoded as either one, two or three bytes. For characters in the ! * range of \u0001 to \u007F, one byte is used. * The character * value goes into bits 0-7 and bit eight is 0. For characters in the range * of \u0080 to \u007FF, two bytes are used. Bits *************** public interface DataOutput *** 308,321 **** void write(byte[] buf) throws IOException; /** ! * This method writes raw bytes from the passed array buf * starting ! * offset bytes into the buffer. The number of bytes ! * written will be exactly len. * * @param buf The buffer from which to write the data * @param offset The offset into the buffer to start writing data from ! * @param len The number of bytes to write from the buffer to the output * stream * * @exception IOException If any other error occurs --- 308,321 ---- void write(byte[] buf) throws IOException; /** ! * This method writes raw bytes from the passed array buf * starting ! * offset bytes into the buffer. The number of bytes ! * written will be exactly len. * * @param buf The buffer from which to write the data * @param offset The offset into the buffer to start writing data from ! * @param len The number of bytes to write from the buffer to the output * stream * * @exception IOException If any other error occurs *************** public interface DataOutput *** 323,326 **** void write(byte[] buf, int offset, int len) throws IOException; } // interface DataOutput - --- 323,325 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/DataOutputStream.java gcc-4.6.0/libjava/classpath/java/io/DataOutputStream.java *** gcc-4.5.2/libjava/classpath/java/io/DataOutputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/DataOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class DataOutputStream extends Fi *** 66,77 **** * Utf8 byte buffer, used by writeUTF() */ private byte[] buf; ! /** * This method initializes an instance of DataOutputStream to * write its data to the specified underlying OutputStream * ! * @param out The subordinate OutputStream to which this * object will write */ public DataOutputStream (OutputStream out) --- 66,77 ---- * Utf8 byte buffer, used by writeUTF() */ private byte[] buf; ! /** * This method initializes an instance of DataOutputStream to * write its data to the specified underlying OutputStream * ! * @param out The subordinate OutputStream to which this * object will write */ public DataOutputStream (OutputStream out) *************** public class DataOutputStream extends Fi *** 127,133 **** * * @exception IOException If an error occurs. */ ! public synchronized void write (byte[] buf, int offset, int len) throws IOException { out.write(buf, offset, len); --- 127,133 ---- * * @exception IOException If an error occurs. */ ! public synchronized void write (byte[] buf, int offset, int len) throws IOException { out.write(buf, offset, len); *************** public class DataOutputStream extends Fi *** 162,168 **** * The value written can be read using the readByte or * readUnsignedByte methods in DataInput. * ! * @param value The byte to write to the stream, passed as * the low eight bits of an int. * * @exception IOException If an error occurs --- 162,168 ---- * The value written can be read using the readByte or * readUnsignedByte methods in DataInput. * ! * @param value The byte to write to the stream, passed as * the low eight bits of an int. * * @exception IOException If an error occurs *************** public class DataOutputStream extends Fi *** 215,221 **** * The value written can be read using the readChar * method in DataInput. * ! * @param value The char value to write, * passed as an int. * * @exception IOException If an error occurs --- 215,221 ---- * The value written can be read using the readChar * method in DataInput. * ! * @param value The char value to write, * passed as an int. * * @exception IOException If an error occurs *************** public class DataOutputStream extends Fi *** 394,411 **** for (int i = start; i < len; ++i) { ! char c = value.charAt(i); ! if (c >= '\u0001' && c <= '\u007f') ! sum += 1; ! else if (c == '\u0000' || (c >= '\u0080' && c <= '\u07ff')) ! sum += 2; ! else ! sum += 3; } return sum; } ! /** * This method writes a Java String to the stream in a modified * UTF-8 format. First, two bytes are written to the stream indicating the --- 394,411 ---- for (int i = start; i < len; ++i) { ! char c = value.charAt(i); ! if (c >= '\u0001' && c <= '\u007f') ! sum += 1; ! else if (c == '\u0000' || (c >= '\u0080' && c <= '\u07ff')) ! sum += 2; ! else ! sum += 3; } return sum; } ! /** * This method writes a Java String to the stream in a modified * UTF-8 format. First, two bytes are written to the stream indicating the *************** public class DataOutputStream extends Fi *** 507,540 **** if (buf == null) buf = new byte[512]; ! do { ! while (i < len && pos < buf.length - 3) ! { ! char c = value.charAt(i++); ! if (c >= '\u0001' && c <= '\u007f') buf[pos++] = (byte) c; ! else if (c == '\u0000' || (c >= '\u0080' && c <= '\u07ff')) ! { ! buf[pos++] = (byte) (0xc0 | (0x1f & (c >> 6))); ! buf[pos++] = (byte) (0x80 | (0x3f & c)); ! } ! else ! { ! // JSL says the first byte should be or'd with 0xc0, but ! // that is a typo. Unicode says 0xe0, and that is what is ! // consistent with DataInputStream. ! buf[pos++] = (byte) (0xe0 | (0x0f & (c >> 12))); ! buf[pos++] = (byte) (0x80 | (0x3f & (c >> 6))); ! buf[pos++] = (byte) (0x80 | (0x3f & c)); ! } ! } ! write(buf, 0, pos); ! pos = 0; } while (i < len); } } // class DataOutputStream - --- 507,539 ---- if (buf == null) buf = new byte[512]; ! do { ! while (i < len && pos < buf.length - 3) ! { ! char c = value.charAt(i++); ! if (c >= '\u0001' && c <= '\u007f') buf[pos++] = (byte) c; ! else if (c == '\u0000' || (c >= '\u0080' && c <= '\u07ff')) ! { ! buf[pos++] = (byte) (0xc0 | (0x1f & (c >> 6))); ! buf[pos++] = (byte) (0x80 | (0x3f & c)); ! } ! else ! { ! // JSL says the first byte should be or'd with 0xc0, but ! // that is a typo. Unicode says 0xe0, and that is what is ! // consistent with DataInputStream. ! buf[pos++] = (byte) (0xe0 | (0x0f & (c >> 12))); ! buf[pos++] = (byte) (0x80 | (0x3f & (c >> 6))); ! buf[pos++] = (byte) (0x80 | (0x3f & c)); ! } ! } ! write(buf, 0, pos); ! pos = 0; } while (i < len); } } // class DataOutputStream diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/DeleteFileHelper.java gcc-4.6.0/libjava/classpath/java/io/DeleteFileHelper.java *** gcc-4.5.2/libjava/classpath/java/io/DeleteFileHelper.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/DeleteFileHelper.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** final class DeleteFileHelper extends Thr *** 56,62 **** if (filesToDelete == null) { filesToDelete = new ArrayList(); ! AccessController.doPrivileged(new PrivilegedAction() { public Object run() --- 56,62 ---- if (filesToDelete == null) { filesToDelete = new ArrayList(); ! AccessController.doPrivileged(new PrivilegedAction() { public Object run() *************** final class DeleteFileHelper extends Thr *** 70,81 **** // Shutdown is already in progress, so we can't // register ours. } ! return null; } }); } ! filesToDelete.add(file); } --- 70,81 ---- // Shutdown is already in progress, so we can't // register ours. } ! return null; } }); } ! filesToDelete.add(file); } *************** final class DeleteFileHelper extends Thr *** 83,96 **** { for (File file : filesToDelete) { ! try ! { ! file.delete(); ! } ! catch (Exception e) ! { ! // Do nothing here. ! } } } --- 83,96 ---- { for (File file : filesToDelete) { ! try ! { ! file.delete(); ! } ! catch (Exception e) ! { ! // Do nothing here. ! } } } *************** final class DeleteFileHelper extends Thr *** 98,104 **** DeleteFileHelper() { } ! public void run() { deleteFiles(); --- 98,104 ---- DeleteFileHelper() { } ! public void run() { deleteFiles(); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/EOFException.java gcc-4.6.0/libjava/classpath/java/io/EOFException.java *** gcc-4.5.2/libjava/classpath/java/io/EOFException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/EOFException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package java.io; /** ! * This exception is thrown when the end of the file or stream was * encountered unexpectedly. This is not the normal way that an EOF * condition is reported; such as a special value like -1 being returned. * However, certain types of streams expecting certain data in a certain --- 39,45 ---- package java.io; /** ! * This exception is thrown when the end of the file or stream was * encountered unexpectedly. This is not the normal way that an EOF * condition is reported; such as a special value like -1 being returned. * However, certain types of streams expecting certain data in a certain diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/Externalizable.java gcc-4.6.0/libjava/classpath/java/io/Externalizable.java *** gcc-4.5.2/libjava/classpath/java/io/Externalizable.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/Externalizable.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 40,59 **** /** * This interface provides a way that classes can completely control how ! * the data of their object instances are written and read to and from ! * streams. It has two methods which are used to write the data to a stream ! * and to read the data from a stream. The read method must read the data ! * in exactly the way it was written by the write method. *

            * Note that classes which implement this interface must take into account ! * that all superclass data must also be written to the stream as well. * The class implementing this interface must figure out how to make that * happen. *

            ! * This interface can be used to provide object persistence. When an * object is to be stored externally, the writeExternal method is * called to save state. When the object is restored, an instance is ! * created using the default no-argument constructor and the * readExternal method is used to restore the state. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 40,59 ---- /** * This interface provides a way that classes can completely control how ! * the data of their object instances are written and read to and from ! * streams. It has two methods which are used to write the data to a stream ! * and to read the data from a stream. The read method must read the data ! * in exactly the way it was written by the write method. *

            * Note that classes which implement this interface must take into account ! * that all superclass data must also be written to the stream as well. * The class implementing this interface must figure out how to make that * happen. *

            ! * This interface can be used to provide object persistence. When an * object is to be stored externally, the writeExternal method is * called to save state. When the object is restored, an instance is ! * created using the default no-argument constructor and the * readExternal method is used to restore the state. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** public interface Externalizable extends *** 63,71 **** /** * This method restores an object's state by reading in the instance data * for the object from the passed in stream. Note that this stream is not ! * a subclass of InputStream, but rather is a class that * implements ! * the ObjectInput interface. That interface provides a * mechanism for * reading in Java data types from a stream. *

            --- 63,71 ---- /** * This method restores an object's state by reading in the instance data * for the object from the passed in stream. Note that this stream is not ! * a subclass of InputStream, but rather is a class that * implements ! * the ObjectInput interface. That interface provides a * mechanism for * reading in Java data types from a stream. *

            *************** public interface Externalizable extends *** 77,104 **** * for that object must be found and loaded. If that operation fails, * then this method throws a ClassNotFoundException * ! * @param in An ObjectInput instance for reading in the object * state * ! * @exception ClassNotFoundException If the class of an object being * restored cannot be found * @exception IOException If any other error occurs */ ! void readExternal(ObjectInput in) throws ClassNotFoundException, IOException; /** * This method is responsible for writing the instance data of an object * to the passed in stream. Note that this stream is not a subclass of * OutputStream, but rather is a class that implements the ! * ObjectOutput interface. That interface provides a * number of methods * for writing Java data values to a stream. *

            * Not that the implementation of this method must be coordinated with * the implementation of readExternal. * ! * @param out An ObjectOutput instance for writing the * object state * * @exception IOException If an error occurs --- 77,104 ---- * for that object must be found and loaded. If that operation fails, * then this method throws a ClassNotFoundException * ! * @param in An ObjectInput instance for reading in the object * state * ! * @exception ClassNotFoundException If the class of an object being * restored cannot be found * @exception IOException If any other error occurs */ ! void readExternal(ObjectInput in) throws ClassNotFoundException, IOException; /** * This method is responsible for writing the instance data of an object * to the passed in stream. Note that this stream is not a subclass of * OutputStream, but rather is a class that implements the ! * ObjectOutput interface. That interface provides a * number of methods * for writing Java data values to a stream. *

            * Not that the implementation of this method must be coordinated with * the implementation of readExternal. * ! * @param out An ObjectOutput instance for writing the * object state * * @exception IOException If an error occurs diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/File.java gcc-4.6.0/libjava/classpath/java/io/File.java *** gcc-4.5.2/libjava/classpath/java/io/File.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/io/File.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class File implements Serializabl *** 76,87 **** /** * This is the first character of the file separator string. On many ! * hosts (for example, on the GNU system), this represents the entire * separator string. The complete separator string is obtained from the * file.separatorsystem property. */ public static final char separatorChar = separator.charAt(0); ! /** * This is the string that is used to separate the host name from the * path name in paths that include the host name. It is the value of --- 76,87 ---- /** * This is the first character of the file separator string. On many ! * hosts (for example, on the GNU system), this represents the entire * separator string. The complete separator string is obtained from the * file.separatorsystem property. */ public static final char separatorChar = separator.charAt(0); ! /** * This is the string that is used to separate the host name from the * path name in paths that include the host name. It is the value of *************** public class File implements Serializabl *** 89,95 **** */ public static final String pathSeparator = SystemProperties.getProperty("path.separator"); ! /** * This is the first character of the string used to separate the host name * from the path name in paths that include a host. The separator string --- 89,95 ---- */ public static final String pathSeparator = SystemProperties.getProperty("path.separator"); ! /** * This is the first character of the string used to separate the host name * from the path name in paths that include a host. The separator string *************** public class File implements Serializabl *** 102,118 **** * may be an absolute or relative path name. */ private String path; ! ! /** * The time (millisecond), when the last temporary file was created. */ private static long last_tmp; ! /** * The number of files, created during the current millisecond. */ ! private static int n_created; /** * This method tests whether or not the current thread is allowed to --- 102,118 ---- * may be an absolute or relative path name. */ private String path; ! ! /** * The time (millisecond), when the last temporary file was created. */ private static long last_tmp; ! /** * The number of files, created during the current millisecond. */ ! private static int n_created; /** * This method tests whether or not the current thread is allowed to *************** public class File implements Serializabl *** 121,130 **** * (if any) allows access to the file via it's checkRead * method 3) the file is readable. * ! * @return true if reading is allowed, * false otherwise * ! * @exception SecurityException If the SecurityManager * does not allow access to the file */ public boolean canRead() --- 121,130 ---- * (if any) allows access to the file via it's checkRead * method 3) the file is readable. * ! * @return true if reading is allowed, * false otherwise * ! * @exception SecurityException If the SecurityManager * does not allow access to the file */ public boolean canRead() *************** public class File implements Serializabl *** 144,160 **** * whether or not a non-existent file can be created, check the parent * directory for write access. * ! * @return true if writing is allowed, false * otherwise * ! * @exception SecurityException If the SecurityManager * does not allow access to the file */ public boolean canWrite() { // First do a SecurityCheck before doing anything else. checkWrite(); ! // Test for existence. This is required by the spec if (! VMFile.exists(path)) return false; --- 144,160 ---- * whether or not a non-existent file can be created, check the parent * directory for write access. * ! * @return true if writing is allowed, false * otherwise * ! * @exception SecurityException If the SecurityManager * does not allow access to the file */ public boolean canWrite() { // First do a SecurityCheck before doing anything else. checkWrite(); ! // Test for existence. This is required by the spec if (! VMFile.exists(path)) return false; *************** public class File implements Serializabl *** 172,181 **** * (if any) allows access to the file via it's checkExec * method 3) the file is executable. * ! * @return true if execution is allowed, * false otherwise * ! * @exception SecurityException If the SecurityManager * does not allow access to the file */ public boolean canExecute() --- 172,181 ---- * (if any) allows access to the file via it's checkExec * method 3) the file is executable. * ! * @return true if execution is allowed, * false otherwise * ! * @exception SecurityException If the SecurityManager * does not allow access to the file */ public boolean canExecute() *************** public class File implements Serializabl *** 184,190 **** return false; checkExec(); ! return VMFile.canExecute(path); } --- 184,190 ---- return false; checkExec(); ! return VMFile.canExecute(path); } *************** public class File implements Serializabl *** 214,220 **** * This method deletes the file represented by this object. If this file * is a directory, it must be empty in order for the delete to succeed. * ! * @return true if the file was deleted, false * otherwise * * @exception SecurityException If deleting of the file is not allowed --- 214,220 ---- * This method deletes the file represented by this object. If this file * is a directory, it must be empty in order for the delete to succeed. * ! * @return true if the file was deleted, false * otherwise * * @exception SecurityException If deleting of the file is not allowed *************** public class File implements Serializabl *** 222,254 **** public synchronized boolean delete() { SecurityManager s = System.getSecurityManager(); ! if (s != null) s.checkDelete(path); ! return VMFile.delete(path); } /** ! * This method tests two File objects for equality by * comparing the path of the specified File against the path * of this object. The two objects are equal if an only if 1) The * argument is not null 2) The argument is a File object and * 3) The path of the Fileargument is equal to the path * of this object. *

            ! * The paths of the files are determined by calling the * getPath() * method on each object. * ! * @return true if the two objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof File)) return false; ! File other = (File) obj; if (VMFile.IS_CASE_SENSITIVE) --- 222,254 ---- public synchronized boolean delete() { SecurityManager s = System.getSecurityManager(); ! if (s != null) s.checkDelete(path); ! return VMFile.delete(path); } /** ! * This method tests two File objects for equality by * comparing the path of the specified File against the path * of this object. The two objects are equal if an only if 1) The * argument is not null 2) The argument is a File object and * 3) The path of the Fileargument is equal to the path * of this object. *

            ! * The paths of the files are determined by calling the * getPath() * method on each object. * ! * @return true if the two objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof File)) return false; ! File other = (File) obj; if (VMFile.IS_CASE_SENSITIVE) *************** public class File implements Serializabl *** 281,287 **** { path = normalizePath (name); } ! // Remove duplicate and redundant separator characters. private String normalizePath(String p) { --- 281,287 ---- { path = normalizePath (name); } ! // Remove duplicate and redundant separator characters. private String normalizePath(String p) { *************** public class File implements Serializabl *** 290,301 **** if (separatorChar == '\\') { p = p.replace ('/', '\\'); ! // We have to special case the "\c:" prefix. ! if (p.length() > 2 && p.charAt(0) == '\\' && ! ((p.charAt(1) >= 'a' && p.charAt(1) <= 'z') || ! (p.charAt(1) >= 'A' && p.charAt(1) <= 'Z')) && ! p.charAt(2) == ':') ! p = p.substring(1); } int dupIndex = p.indexOf(dupSeparator); --- 290,301 ---- if (separatorChar == '\\') { p = p.replace ('/', '\\'); ! // We have to special case the "\c:" prefix. ! if (p.length() > 2 && p.charAt(0) == '\\' && ! ((p.charAt(1) >= 'a' && p.charAt(1) <= 'z') || ! (p.charAt(1) >= 'A' && p.charAt(1) <= 'Z')) && ! p.charAt(2) == ':') ! p = p.substring(1); } int dupIndex = p.indexOf(dupSeparator); *************** public class File implements Serializabl *** 310,334 **** // Ignore trailing separator (though on Windows "a:\", for // example, is a valid and minimal path). if (plen > 1 && p.charAt (plen - 1) == separatorChar) ! { ! if (! (separatorChar == '\\' && ((plen == 3 && p.charAt(1) == ':') || (plen == 2 && p.charAt(0) == separatorChar)))) ! return p.substring (0, plen - 1); ! } ! else ! return p; } ! CPStringBuilder newpath = new CPStringBuilder(plen); int last = 0; while (dupIndex != -1) { newpath.append(p.substring(last, dupIndex)); ! // Ignore the duplicate path characters. ! while (p.charAt(dupIndex) == separatorChar) ! { ! dupIndex++; ! if (dupIndex == plen) { if ((separatorChar == '\\' && newpath.length() == 2 --- 310,334 ---- // Ignore trailing separator (though on Windows "a:\", for // example, is a valid and minimal path). if (plen > 1 && p.charAt (plen - 1) == separatorChar) ! { ! if (! (separatorChar == '\\' && ((plen == 3 && p.charAt(1) == ':') || (plen == 2 && p.charAt(0) == separatorChar)))) ! return p.substring (0, plen - 1); ! } ! else ! return p; } ! CPStringBuilder newpath = new CPStringBuilder(plen); int last = 0; while (dupIndex != -1) { newpath.append(p.substring(last, dupIndex)); ! // Ignore the duplicate path characters. ! while (p.charAt(dupIndex) == separatorChar) ! { ! dupIndex++; ! if (dupIndex == plen) { if ((separatorChar == '\\' && newpath.length() == 2 *************** public class File implements Serializabl *** 337,350 **** { newpath.append(separatorChar); } ! return newpath.toString(); } ! } ! newpath.append(separatorChar); ! last = dupIndex; ! dupIndex = p.indexOf(dupSeparator, last); } ! // Again, ignore possible trailing separator (except special cases // like "a:\" on Windows). int end; --- 337,350 ---- { newpath.append(separatorChar); } ! return newpath.toString(); } ! } ! newpath.append(separatorChar); ! last = dupIndex; ! dupIndex = p.indexOf(dupSeparator, last); } ! // Again, ignore possible trailing separator (except special cases // like "a:\" on Windows). int end; *************** public class File implements Serializabl *** 360,369 **** else end = plen; newpath.append(p.substring(last, end)); ! return newpath.toString(); } ! /** * This method initializes a new File object to represent * a file in the specified named directory. The path name to the file --- 360,369 ---- else end = plen; newpath.append(p.substring(last, end)); ! return newpath.toString(); } ! /** * This method initializes a new File object to represent * a file in the specified named directory. The path name to the file *************** public class File implements Serializabl *** 380,414 **** throw new NullPointerException(); if (dirPath != null) { ! if (dirPath.length() > 0) ! { ! // Try to be smart about the number of separator characters. ! if (dirPath.charAt(dirPath.length() - 1) == separatorChar ! || name.length() == 0) ! path = normalizePath(dirPath + name); ! else ! path = normalizePath(dirPath + separatorChar + name); ! } ! else ! { ! // If dirPath is empty, use a system dependant ! // default prefix. ! // Note that the leading separators in name have ! // to be chopped off, to prevent them forming ! // a UNC prefix on Windows. ! if (separatorChar == '\\' /* TODO use ON_WINDOWS */) ! { ! int skip = 0; ! while(name.length() > skip ! && (name.charAt(skip) == separatorChar ! || name.charAt(skip) == '/')) ! { ! skip++; ! } ! name = name.substring(skip); ! } ! path = normalizePath(separatorChar + name); ! } } else path = normalizePath(name); --- 380,414 ---- throw new NullPointerException(); if (dirPath != null) { ! if (dirPath.length() > 0) ! { ! // Try to be smart about the number of separator characters. ! if (dirPath.charAt(dirPath.length() - 1) == separatorChar ! || name.length() == 0) ! path = normalizePath(dirPath + name); ! else ! path = normalizePath(dirPath + separatorChar + name); ! } ! else ! { ! // If dirPath is empty, use a system dependant ! // default prefix. ! // Note that the leading separators in name have ! // to be chopped off, to prevent them forming ! // a UNC prefix on Windows. ! if (separatorChar == '\\' /* TODO use ON_WINDOWS */) ! { ! int skip = 0; ! while(name.length() > skip ! && (name.charAt(skip) == separatorChar ! || name.charAt(skip) == '/')) ! { ! skip++; ! } ! name = name.substring(skip); ! } ! path = normalizePath(separatorChar + name); ! } } else path = normalizePath(name); *************** public class File implements Serializabl *** 439,448 **** public File(URI uri) { if (uri == null) ! throw new NullPointerException("uri is null"); if (!uri.getScheme().equals("file")) ! throw new IllegalArgumentException("invalid uri protocol"); String name = uri.getPath(); if (name == null) --- 439,448 ---- public File(URI uri) { if (uri == null) ! throw new NullPointerException("uri is null"); if (!uri.getScheme().equals("file")) ! throw new IllegalArgumentException("invalid uri protocol"); String name = uri.getPath(); if (name == null) *************** public class File implements Serializabl *** 489,495 **** * "." and "..", and symbolic links. *

            * Note that this method, unlike the other methods which return path ! * names, can throw an IOException. This is because native method * might be required in order to resolve the canonical path * * @exception IOException If an error occurs --- 489,495 ---- * "." and "..", and symbolic links. *

            * Note that this method, unlike the other methods which return path ! * names, can throw an IOException. This is because native method * might be required in order to resolve the canonical path * * @exception IOException If an error occurs *************** public class File implements Serializabl *** 499,509 **** // On Windows, getAbsolutePath might end up calling us, so we // have to special case that call to avoid infinite recursion. if (separatorChar == '\\' && path.length() == 2 && ! ((path.charAt(0) >= 'a' && path.charAt(0) <= 'z') || ! (path.charAt(0) >= 'A' && path.charAt(0) <= 'Z')) && ! path.charAt(1) == ':') { ! return VMFile.toCanonicalForm(path); } // Call getAbsolutePath first to make sure that we do the // current directory handling, because the native code --- 499,509 ---- // On Windows, getAbsolutePath might end up calling us, so we // have to special case that call to avoid infinite recursion. if (separatorChar == '\\' && path.length() == 2 && ! ((path.charAt(0) >= 'a' && path.charAt(0) <= 'z') || ! (path.charAt(0) >= 'A' && path.charAt(0) <= 'Z')) && ! path.charAt(1) == ':') { ! return VMFile.toCanonicalForm(path); } // Call getAbsolutePath first to make sure that we do the // current directory handling, because the native code *************** public class File implements Serializabl *** 536,542 **** */ public String getName() { ! return VMFile.getName(path); } /** --- 536,542 ---- */ public String getName() { ! return VMFile.getName(path); } /** *************** public class File implements Serializabl *** 551,561 **** { String prefix = null; int nameSeqIndex = 0; ! if (path.equals("")) return null; ! // The "prefix", if present, is the leading "/" on UNIX and // either the drive specifier (e.g. "C:") or the leading "\\" // of a UNC network path on Windows. if (separatorChar == '/' && path.charAt (0) == '/') --- 551,561 ---- { String prefix = null; int nameSeqIndex = 0; ! if (path.equals("")) return null; ! // The "prefix", if present, is the leading "/" on UNIX and // either the drive specifier (e.g. "C:") or the leading "\\" // of a UNC network path on Windows. if (separatorChar == '/' && path.charAt (0) == '/') *************** public class File implements Serializabl *** 575,581 **** } } ! // According to the JDK docs, the returned parent path is the // portion of the name sequence before the last separator // character, if found, prefixed by the prefix, otherwise null. if (nameSeqIndex < path.length()) --- 575,581 ---- } } ! // According to the JDK docs, the returned parent path is the // portion of the name sequence before the last separator // character, if found, prefixed by the prefix, otherwise null. if (nameSeqIndex < path.length()) *************** public class File implements Serializabl *** 586,592 **** return prefix; else if (last == (nameSeq.length() - 1)) // Note: The path would not have a trailing separator ! // except for cases like "C:\" on Windows (see // normalizePath( )), where Sun's JRE 1.4 returns null. return null; else if (last == 0) --- 586,592 ---- return prefix; else if (last == (nameSeq.length() - 1)) // Note: The path would not have a trailing separator ! // except for cases like "C:\" on Windows (see // normalizePath( )), where Sun's JRE 1.4 returns null. return null; else if (last == 0) *************** public class File implements Serializabl *** 598,605 **** return nameSeq.substring (0, last); } else ! // Sun's JRE 1.4 returns null if the prefix is the only ! // component of the path - so "/" gives null on UNIX and // "C:", "\\", etc. return null on Windows. return null; } --- 598,605 ---- return nameSeq.substring (0, last); } else ! // Sun's JRE 1.4 returns null if the prefix is the only ! // component of the path - so "/" gives null on UNIX and // "C:", "\\", etc. return null on Windows. return null; } *************** public class File implements Serializabl *** 608,614 **** * This method returns a File object representing the parent * file of this one. * ! * @return a File for the parent of this object. * null * will be returned if this object does not have a parent. * --- 608,614 ---- * This method returns a File object representing the parent * file of this one. * ! * @return a File for the parent of this object. * null * will be returned if this object does not have a parent. * *************** public class File implements Serializabl *** 652,658 **** * by system. As an example, on GNU systems, a path is absolute if it starts * with a "/". * ! * @return true if this object represents an absolute * file name, false otherwise. */ public boolean isAbsolute() --- 652,658 ---- * by system. As an example, on GNU systems, a path is absolute if it starts * with a "/". * ! * @return true if this object represents an absolute * file name, false otherwise. */ public boolean isAbsolute() *************** public class File implements Serializabl *** 664,670 **** * This method tests whether or not the file represented by this object * is a directory. In order for this method to return true, * the file represented by this object must exist and be a directory. ! * * @return true if this file is a directory, false * otherwise * --- 664,670 ---- * This method tests whether or not the file represented by this object * is a directory. In order for this method to return true, * the file represented by this object must exist and be a directory. ! * * @return true if this file is a directory, false * otherwise * *************** public class File implements Serializabl *** 673,679 **** public boolean isDirectory() { checkRead(); ! return VMFile.isDirectory(path); } /** --- 673,679 ---- public boolean isDirectory() { checkRead(); ! return VMFile.isDirectory(path); } /** *************** public class File implements Serializabl *** 681,687 **** * is a "plain" file. A file is a plain file if and only if it 1) Exists, * 2) Is not a directory or other type of special file. * ! * @return true if this is a plain file, false * otherwise * * @exception SecurityException If reading of the file is not permitted --- 681,687 ---- * is a "plain" file. A file is a plain file if and only if it 1) Exists, * 2) Is not a directory or other type of special file. * ! * @return true if this is a plain file, false * otherwise * * @exception SecurityException If reading of the file is not permitted *************** public class File implements Serializabl *** 713,719 **** * time value returned is an abstract value that should not be interpreted * as a specified time value. It is only useful for comparing to other * such time values returned on the same system. In that case, the larger ! * value indicates a more recent modification time. *

            * If the file does not exist, then a value of 0 is returned. * --- 713,719 ---- * time value returned is an abstract value that should not be interpreted * as a specified time value. It is only useful for comparing to other * such time values returned on the same system. In that case, the larger ! * value indicates a more recent modification time. *

            * If the file does not exist, then a value of 0 is returned. * *************** public class File implements Serializabl *** 759,771 **** * directory. If read access to the directory is denied, an exception * will be thrown. * ! * @param filter An object which will identify files to exclude from * the directory listing. * ! * @return An array of files in the directory, or null * if this object does not represent a valid directory. ! * ! * @exception SecurityException If read access is not allowed to the * directory by the SecurityManager */ public String[] list(FilenameFilter filter) --- 759,771 ---- * directory. If read access to the directory is denied, an exception * will be thrown. * ! * @param filter An object which will identify files to exclude from * the directory listing. * ! * @return An array of files in the directory, or null * if this object does not represent a valid directory. ! * ! * @exception SecurityException If read access is not allowed to the * directory by the SecurityManager */ public String[] list(FilenameFilter filter) *************** public class File implements Serializabl *** 774,783 **** if (!exists() || !isDirectory()) return null; ! // Get the list of files String files[] = VMFile.list(path); ! // Check if an error occured in listInternal(). // This is an unreadable directory, pretend there is nothing inside. if (files == null) --- 774,783 ---- if (!exists() || !isDirectory()) return null; ! // Get the list of files String files[] = VMFile.list(path); ! // Check if an error occured in listInternal(). // This is an unreadable directory, pretend there is nothing inside. if (files == null) *************** public class File implements Serializabl *** 785,799 **** if (filter == null) return files; ! // Apply the filter int count = 0; for (int i = 0; i < files.length; i++) { if (filter.accept(this, files[i])) ! ++count; else ! files[i] = null; } String[] retfiles = new String[count]; --- 785,799 ---- if (filter == null) return files; ! // Apply the filter int count = 0; for (int i = 0; i < files.length; i++) { if (filter.accept(this, files[i])) ! ++count; else ! files[i] = null; } String[] retfiles = new String[count]; *************** public class File implements Serializabl *** 817,826 **** * directory. If read access to the directory is denied, an exception * will be thrown. * ! * @return An array of files in the directory, or null if * this object does not represent a valid directory. ! * ! * @exception SecurityException If read access is not allowed to the * directory by the SecurityManager */ public String[] list() --- 817,826 ---- * directory. If read access to the directory is denied, an exception * will be thrown. * ! * @return An array of files in the directory, or null if * this object does not represent a valid directory. ! * ! * @exception SecurityException If read access is not allowed to the * directory by the SecurityManager */ public String[] list() *************** public class File implements Serializabl *** 850,863 **** { return listFiles((FilenameFilter) null); } ! /** * This method returns an array of File objects representing * all the files in the directory represented by this object. If this * object does not represent a directory, null is returned. * Each of the returned File object is constructed with this * object as its parent. ! *

            * In this form of the listFiles() method, a filter is specified * that allows the caller to control which files are returned in the * list. The FilenameFilter specified is called for each --- 850,863 ---- { return listFiles((FilenameFilter) null); } ! /** * This method returns an array of File objects representing * all the files in the directory represented by this object. If this * object does not represent a directory, null is returned. * Each of the returned File object is constructed with this * object as its parent. ! *

            * In this form of the listFiles() method, a filter is specified * that allows the caller to control which files are returned in the * list. The FilenameFilter specified is called for each *************** public class File implements Serializabl *** 878,884 **** public File[] listFiles(FilenameFilter filter) { String[] filelist = list(filter); ! if (filelist == null) return null; --- 878,884 ---- public File[] listFiles(FilenameFilter filter) { String[] filelist = list(filter); ! if (filelist == null) return null; *************** public class File implements Serializabl *** 896,902 **** * object does not represent a directory, null is returned. * Each of the returned File object is constructed with this * object as its parent. ! *

            * In this form of the listFiles() method, a filter is specified * that allows the caller to control which files are returned in the * list. The FileFilter specified is called for each --- 896,902 ---- * object does not represent a directory, null is returned. * Each of the returned File object is constructed with this * object as its parent. ! *

            * In this form of the listFiles() method, a filter is specified * that allows the caller to control which files are returned in the * list. The FileFilter specified is called for each *************** public class File implements Serializabl *** 958,970 **** public URI toURI() { String abspath = getAbsolutePath(); ! if (isDirectory() || path.equals("")) abspath = abspath + separatorChar; if (separatorChar == '\\') abspath = separatorChar + abspath; ! try { return new URI("file", null, null, -1, --- 958,970 ---- public URI toURI() { String abspath = getAbsolutePath(); ! if (isDirectory() || path.equals("")) abspath = abspath + separatorChar; if (separatorChar == '\\') abspath = separatorChar + abspath; ! try { return new URI("file", null, null, -1, *************** public class File implements Serializabl *** 975,981 **** { // Can't happen. throw (InternalError) new InternalError("Unconvertible file: " ! + this).initCause(use); } } --- 975,981 ---- { // Can't happen. throw (InternalError) new InternalError("Unconvertible file: " ! + this).initCause(use); } } *************** public class File implements Serializabl *** 986,992 **** * * @return A URL for this object. * ! * @exception MalformedURLException If the URL cannot be created * successfully. */ public URL toURL() throws MalformedURLException --- 986,992 ---- * * @return A URL for this object. * ! * @exception MalformedURLException If the URL cannot be created * successfully. */ public URL toURL() throws MalformedURLException *************** public class File implements Serializabl *** 998,1004 **** /** * This method creates a directory for the path represented by this object. * ! * @return true if the directory was created, * false otherwise * * @exception SecurityException If write access is not allowed to this file --- 998,1004 ---- /** * This method creates a directory for the path represented by this object. * ! * @return true if the directory was created, * false otherwise * * @exception SecurityException If write access is not allowed to this file *************** public class File implements Serializabl *** 1013,1019 **** * This method creates a directory for the path represented by this file. * It will also create any intervening parent directories if necessary. * ! * @return true if the directory was created, * false otherwise * * @exception SecurityException If write access is not allowed to this file --- 1013,1019 ---- * This method creates a directory for the path represented by this file. * It will also create any intervening parent directories if necessary. * ! * @return true if the directory was created, * false otherwise * * @exception SecurityException If write access is not allowed to this file *************** public class File implements Serializabl *** 1025,1031 **** { return mkdir(); } ! File f = new File(parent); if (!f.exists()) { --- 1025,1031 ---- { return mkdir(); } ! File f = new File(parent); if (!f.exists()) { *************** public class File implements Serializabl *** 1038,1049 **** } /** ! * This method creates a temporary file in the specified directory. If ! * the directory name is null, then this method uses the system temporary ! * directory. The files created are guaranteed not to currently exist and ! * the same file name will never be used twice in the same virtual ! * machine instance. ! * The system temporary directory is determined by examinging the * java.io.tmpdir system property. *

            * The prefix parameter is a sequence of at least three --- 1038,1049 ---- } /** ! * This method creates a temporary file in the specified directory. If ! * the directory name is null, then this method uses the system temporary ! * directory. The files created are guaranteed not to currently exist and ! * the same file name will never be used twice in the same virtual ! * machine instance. ! * The system temporary directory is determined by examinging the * java.io.tmpdir system property. *

            * The prefix parameter is a sequence of at least three *************** public class File implements Serializabl *** 1057,1074 **** * * @param prefix The character prefix to use in generating the path name. * @param suffix The character suffix to use in generating the path name. ! * @param directory The directory to create the file in, or * null for the default temporary directory * * @exception IllegalArgumentException If the patterns is not valid ! * @exception SecurityException If there is no permission to perform * this operation * @exception IOException If an error occurs * * @since 1.2 */ public static synchronized File createTempFile(String prefix, String suffix, ! File directory) throws IOException { // Grab the system temp directory if necessary --- 1057,1074 ---- * * @param prefix The character prefix to use in generating the path name. * @param suffix The character suffix to use in generating the path name. ! * @param directory The directory to create the file in, or * null for the default temporary directory * * @exception IllegalArgumentException If the patterns is not valid ! * @exception SecurityException If there is no permission to perform * this operation * @exception IOException If an error occurs * * @since 1.2 */ public static synchronized File createTempFile(String prefix, String suffix, ! File directory) throws IOException { // Grab the system temp directory if necessary *************** public class File implements Serializabl *** 1076,1083 **** { String dirname = System.getProperty("java.io.tmpdir"); if (dirname == null) ! throw new IOException("Cannot determine system temporary directory"); ! directory = new File(dirname); if (! VMFile.exists(directory.path)) throw new IOException("System temporary directory " --- 1076,1083 ---- { String dirname = System.getProperty("java.io.tmpdir"); if (dirname == null) ! throw new IOException("Cannot determine system temporary directory"); ! directory = new File(dirname); if (! VMFile.exists(directory.path)) throw new IOException("System temporary directory " *************** public class File implements Serializabl *** 1099,1105 **** // Now identify a file name and make sure it doesn't exist. File file; if (!VMFile.IS_DOS_8_3) ! { do { long now = System.currentTimeMillis(); --- 1099,1105 ---- // Now identify a file name and make sure it doesn't exist. File file; if (!VMFile.IS_DOS_8_3) ! { do { long now = System.currentTimeMillis(); *************** public class File implements Serializabl *** 1111,1117 **** } else n_created++; ! String name = Long.toHexString(now); if (n_created > 0) name += '_'+Integer.toHexString(n_created); --- 1111,1117 ---- } else n_created++; ! String name = Long.toHexString(now); if (n_created > 0) name += '_'+Integer.toHexString(n_created); *************** public class File implements Serializabl *** 1143,1158 **** // Now create the file and return our file object // XXX - FIXME race condition. ! VMFile.create(file.getAbsolutePath()); return file; } /** * This method sets the owner's read permission for the File represented by * this object. ! * * It is the same as calling setReadable(readable, true). ! * * @param readable true to set read permission, * false to unset the read permission. * @return true if the file permissions are changed, --- 1143,1158 ---- // Now create the file and return our file object // XXX - FIXME race condition. ! VMFile.create(file.getAbsolutePath()); return file; } /** * This method sets the owner's read permission for the File represented by * this object. ! * * It is the same as calling setReadable(readable, true). ! * * @param readable true to set read permission, * false to unset the read permission. * @return true if the file permissions are changed, *************** public class File implements Serializabl *** 1165,1185 **** { return setReadable(readable, true); } ! /** * This method sets the read permissions for the File represented by * this object. ! * * If ownerOnly is set to true then only the * read permission bit for the owner of the file is changed. ! * * If ownerOnly is set to false, the file * permissions are changed so that the file can be read by everyone. ! * * On unix like systems this sets the user, group * and other read bits and is equal to call * chmod a+r on the file. ! * * @param readable true to set read permission, * false to unset the read permission. * @param ownerOnly true to set read permission --- 1165,1185 ---- { return setReadable(readable, true); } ! /** * This method sets the read permissions for the File represented by * this object. ! * * If ownerOnly is set to true then only the * read permission bit for the owner of the file is changed. ! * * If ownerOnly is set to false, the file * permissions are changed so that the file can be read by everyone. ! * * On unix like systems this sets the user, group * and other read bits and is equal to call * chmod a+r on the file. ! * * @param readable true to set read permission, * false to unset the read permission. * @param ownerOnly true to set read permission *************** public class File implements Serializabl *** 1195,1207 **** checkWrite(); return VMFile.setReadable(path, readable, ownerOnly); } ! /** * This method sets the owner's write permission for the File represented by * this object. ! * ! * It is the same as calling setWritable(readable, true). ! * * @param writable true to set write permission, * false to unset write permission. * @return true if the file permissions are changed, --- 1195,1207 ---- checkWrite(); return VMFile.setReadable(path, readable, ownerOnly); } ! /** * This method sets the owner's write permission for the File represented by * this object. ! * ! * It is the same as calling setWritable(readable, true). ! * * @param writable true to set write permission, * false to unset write permission. * @return true if the file permissions are changed, *************** public class File implements Serializabl *** 1214,1238 **** { return setWritable(writable, true); } ! /** * This method sets the write permissions for the File represented by * this object. ! * * If ownerOnly is set to true then only the * write permission bit for the owner of the file is changed. ! * * If ownerOnly is set to false, the file * permissions are changed so that the file can be written by everyone. ! * * On unix like systems this set the user, group * and other write bits and is equal to call * chmod a+w on the file. ! * * @param writable true to set write permission, * false to unset write permission. * @param ownerOnly true to set write permission ! * for owner only, false for all. * @return true if the file permissions are changed, * false otherwise. * @exception SecurityException If write access of the file is not permitted. --- 1214,1238 ---- { return setWritable(writable, true); } ! /** * This method sets the write permissions for the File represented by * this object. ! * * If ownerOnly is set to true then only the * write permission bit for the owner of the file is changed. ! * * If ownerOnly is set to false, the file * permissions are changed so that the file can be written by everyone. ! * * On unix like systems this set the user, group * and other write bits and is equal to call * chmod a+w on the file. ! * * @param writable true to set write permission, * false to unset write permission. * @param ownerOnly true to set write permission ! * for owner only, false for all. * @return true if the file permissions are changed, * false otherwise. * @exception SecurityException If write access of the file is not permitted. *************** public class File implements Serializabl *** 1244,1256 **** checkWrite(); return VMFile.setWritable(path, writable, ownerOnly); } ! /** * This method sets the owner's execute permission for the File represented * by this object. ! * ! * It is the same as calling setExecutable(readable, true). ! * * @param executable true to set execute permission, * false to unset execute permission. * @return true if the file permissions are changed, --- 1244,1256 ---- checkWrite(); return VMFile.setWritable(path, writable, ownerOnly); } ! /** * This method sets the owner's execute permission for the File represented * by this object. ! * ! * It is the same as calling setExecutable(readable, true). ! * * @param executable true to set execute permission, * false to unset execute permission. * @return true if the file permissions are changed, *************** public class File implements Serializabl *** 1259,1287 **** * @see #setExecutable(boolean, boolean) * @since 1.6 */ ! public boolean setExecutable(boolean executable) { return setExecutable(executable, true); } ! /** * This method sets the execute permissions for the File represented by * this object. ! * * If ownerOnly is set to true then only the * execute permission bit for the owner of the file is changed. ! * * If ownerOnly is set to false, the file * permissions are changed so that the file can be executed by everyone. ! * * On unix like systems this set the user, group * and other write bits and is equal to call * chmod a+x on the file. ! * * @param executable true to set write permission, * false to unset write permission. * @param ownerOnly true to set write permission ! * for owner only, false for all. * @return true if the file permissions are changed, * false otherwise. * @exception SecurityException If write access of the file is not permitted. --- 1259,1287 ---- * @see #setExecutable(boolean, boolean) * @since 1.6 */ ! public boolean setExecutable(boolean executable) { return setExecutable(executable, true); } ! /** * This method sets the execute permissions for the File represented by * this object. ! * * If ownerOnly is set to true then only the * execute permission bit for the owner of the file is changed. ! * * If ownerOnly is set to false, the file * permissions are changed so that the file can be executed by everyone. ! * * On unix like systems this set the user, group * and other write bits and is equal to call * chmod a+x on the file. ! * * @param executable true to set write permission, * false to unset write permission. * @param ownerOnly true to set write permission ! * for owner only, false for all. * @return true if the file permissions are changed, * false otherwise. * @exception SecurityException If write access of the file is not permitted. *************** public class File implements Serializabl *** 1296,1303 **** /** * Get the total space for the partition pointed by this file path, in bytes. ! * ! * @return the total number of bytes in this partition. * @since 1.6 */ public long getTotalSpace() --- 1296,1303 ---- /** * Get the total space for the partition pointed by this file path, in bytes. ! * ! * @return the total number of bytes in this partition. * @since 1.6 */ public long getTotalSpace() *************** public class File implements Serializabl *** 1307,1320 **** if (s != null) s.checkPermission(new RuntimePermission("getFileSystemAttributes")); checkRead(); ! return VMFile.getTotalSpace(path); } ! /** * Get the free space in the partition pointed by this file path, in bytes. ! * ! * @return the number of free bytes in this partition. * @since 1.6 */ public long getFreeSpace() --- 1307,1320 ---- if (s != null) s.checkPermission(new RuntimePermission("getFileSystemAttributes")); checkRead(); ! return VMFile.getTotalSpace(path); } ! /** * Get the free space in the partition pointed by this file path, in bytes. ! * ! * @return the number of free bytes in this partition. * @since 1.6 */ public long getFreeSpace() *************** public class File implements Serializabl *** 1324,1348 **** if (s != null) s.checkPermission(new RuntimePermission("getFileSystemAttributes")); checkRead(); ! return VMFile.getFreeSpace(path); } ! /** * Get the usable space in the partition pointed by this file path, in bytes. * This is not necessarily the same as the number returned by * {@link #getFreeSpace()}. ! * * Implementation note: Unlike the RI, on Linux and UNIX * like systems this methods take into account the reserved space for the * "root" user. This means that the returned results will be a little * different if a normal user or root perform the query. ! * * Also, the bytes returned should be interpreted as an hint, and may be * different at each call of this method or even right after the method * returns. ! * ! * @return the number of usable bytes in this partition. * @since 1.6 */ public long getUsableSpace() --- 1324,1348 ---- if (s != null) s.checkPermission(new RuntimePermission("getFileSystemAttributes")); checkRead(); ! return VMFile.getFreeSpace(path); } ! /** * Get the usable space in the partition pointed by this file path, in bytes. * This is not necessarily the same as the number returned by * {@link #getFreeSpace()}. ! * * Implementation note: Unlike the RI, on Linux and UNIX * like systems this methods take into account the reserved space for the * "root" user. This means that the returned results will be a little * different if a normal user or root perform the query. ! * * Also, the bytes returned should be interpreted as an hint, and may be * different at each call of this method or even right after the method * returns. ! * ! * @return the number of usable bytes in this partition. * @since 1.6 */ public long getUsableSpace() *************** public class File implements Serializabl *** 1352,1369 **** if (s != null) s.checkPermission(new RuntimePermission("getFileSystemAttributes")); checkRead(); ! // root users can use the reserved extra space String user = System.getProperty("user.name"); if (user != null && user.equals("root")) return VMFile.getFreeSpace(path); ! return VMFile.getUsableSpace(path); } ! /** * This method sets the file represented by this object to be read only. ! * A read only file or directory cannot be modified. Please note that * GNU systems allow read only files to be deleted if the directory it * is contained in is writable. * --- 1352,1369 ---- if (s != null) s.checkPermission(new RuntimePermission("getFileSystemAttributes")); checkRead(); ! // root users can use the reserved extra space String user = System.getProperty("user.name"); if (user != null && user.equals("root")) return VMFile.getFreeSpace(path); ! return VMFile.getUsableSpace(path); } ! /** * This method sets the file represented by this object to be read only. ! * A read only file or directory cannot be modified. Please note that * GNU systems allow read only files to be deleted if the directory it * is contained in is writable. * *************** public class File implements Serializabl *** 1401,1444 **** public static File[] listRoots() { File[] roots = VMFile.listRoots(); ! SecurityManager s = System.getSecurityManager(); if (s != null) { ! // Only return roots to which the security manager permits read access. ! int count = roots.length; ! for (int i = 0; i < roots.length; i++) ! { ! try ! { ! s.checkRead (roots[i].path); ! } ! catch (SecurityException sx) ! { ! roots[i] = null; ! count--; ! } ! } ! if (count != roots.length) ! { ! File[] newRoots = new File[count]; ! int k = 0; ! for (int i = 0; i < roots.length; i++) ! { ! if (roots[i] != null) ! newRoots[k++] = roots[i]; ! } ! roots = newRoots; ! } } return roots; } /** ! * This method creates a temporary file in the system temporary directory. * The files created are guaranteed not to currently exist and the same file * name will never be used twice in the same virtual machine instance. The ! * system temporary directory is determined by examinging the * java.io.tmpdir system property. *

            * The prefix parameter is a sequence of at least three --- 1401,1444 ---- public static File[] listRoots() { File[] roots = VMFile.listRoots(); ! SecurityManager s = System.getSecurityManager(); if (s != null) { ! // Only return roots to which the security manager permits read access. ! int count = roots.length; ! for (int i = 0; i < roots.length; i++) ! { ! try ! { ! s.checkRead (roots[i].path); ! } ! catch (SecurityException sx) ! { ! roots[i] = null; ! count--; ! } ! } ! if (count != roots.length) ! { ! File[] newRoots = new File[count]; ! int k = 0; ! for (int i = 0; i < roots.length; i++) ! { ! if (roots[i] != null) ! newRoots[k++] = roots[i]; ! } ! roots = newRoots; ! } } return roots; } /** ! * This method creates a temporary file in the system temporary directory. * The files created are guaranteed not to currently exist and the same file * name will never be used twice in the same virtual machine instance. The ! * system temporary directory is determined by examinging the * java.io.tmpdir system property. *

            * The prefix parameter is a sequence of at least three *************** public class File implements Serializabl *** 1450,1463 **** * If a SecurityManager exists, then its checkWrite * method is used to verify that this operation is permitted. *

            ! * This method is identical to calling * createTempFile(prefix, suffix, null). * * @param prefix The character prefix to use in generating the path name. * @param suffix The character suffix to use in generating the path name. * * @exception IllegalArgumentException If the prefix or suffix are not valid. ! * @exception SecurityException If there is no permission to perform * this operation * @exception IOException If an error occurs */ --- 1450,1463 ---- * If a SecurityManager exists, then its checkWrite * method is used to verify that this operation is permitted. *

            ! * This method is identical to calling * createTempFile(prefix, suffix, null). * * @param prefix The character prefix to use in generating the path name. * @param suffix The character suffix to use in generating the path name. * * @exception IllegalArgumentException If the prefix or suffix are not valid. ! * @exception SecurityException If there is no permission to perform * this operation * @exception IOException If an error occurs */ *************** public class File implements Serializabl *** 1470,1482 **** /** * This method compares the specified File to this one * to test for equality. It does this by comparing the canonical path names ! * of the files. *

            * The canonical paths of the files are determined by calling the * getCanonicalPath method on each object. *

            * This method returns a 0 if the specified Object is equal ! * to this one, a negative value if it is less than this one * a positive value if it is greater than this one. * * @return An integer as described above --- 1470,1482 ---- /** * This method compares the specified File to this one * to test for equality. It does this by comparing the canonical path names ! * of the files. *

            * The canonical paths of the files are determined by calling the * getCanonicalPath method on each object. *

            * This method returns a 0 if the specified Object is equal ! * to this one, a negative value if it is less than this one * a positive value if it is greater than this one. * * @return An integer as described above *************** public class File implements Serializabl *** 1497,1506 **** * * @param dest The File object representing the target name * ! * @return true if the rename succeeds, false * otherwise. * ! * @exception SecurityException If write access is not allowed to the * file by the SecurityMananger. */ public synchronized boolean renameTo(File dest) --- 1497,1506 ---- * * @param dest The File object representing the target name * ! * @return true if the rename succeeds, false * otherwise. * ! * @exception SecurityException If write access is not allowed to the * file by the SecurityMananger. */ public synchronized boolean renameTo(File dest) *************** public class File implements Serializabl *** 1527,1533 **** * * @since 1.2 */ ! public boolean setLastModified(long time) { if (time < 0) throw new IllegalArgumentException("Negative modification time: " + time); --- 1527,1533 ---- * * @since 1.2 */ ! public boolean setLastModified(long time) { if (time < 0) throw new IllegalArgumentException("Negative modification time: " + time); *************** public class File implements Serializabl *** 1540,1546 **** { // Check the SecurityManager SecurityManager s = System.getSecurityManager(); ! if (s != null) s.checkWrite(path); } --- 1540,1546 ---- { // Check the SecurityManager SecurityManager s = System.getSecurityManager(); ! if (s != null) s.checkWrite(path); } *************** public class File implements Serializabl *** 1549,1555 **** { // Check the SecurityManager SecurityManager s = System.getSecurityManager(); ! if (s != null) s.checkRead(path); } --- 1549,1555 ---- { // Check the SecurityManager SecurityManager s = System.getSecurityManager(); ! if (s != null) s.checkRead(path); } *************** public class File implements Serializabl *** 1558,1569 **** { // Check the SecurityManager SecurityManager s = System.getSecurityManager(); ! if (s != null) s.checkExec(path); } ! ! /** * Calling this method requests that the file represented by this object * be deleted when the virtual machine exits. Note that this request cannot * be cancelled. Also, it will only be carried out if the virtual machine --- 1558,1569 ---- { // Check the SecurityManager SecurityManager s = System.getSecurityManager(); ! if (s != null) s.checkExec(path); } ! ! /** * Calling this method requests that the file represented by this object * be deleted when the virtual machine exits. Note that this request cannot * be cancelled. Also, it will only be carried out if the virtual machine *************** public class File implements Serializabl *** 1571,1577 **** * * @exception SecurityException If deleting of the file is not allowed * ! * @since 1.2 */ public void deleteOnExit() { --- 1571,1577 ---- * * @exception SecurityException If deleting of the file is not allowed * ! * @since 1.2 */ public void deleteOnExit() { *************** public class File implements Serializabl *** 1597,1606 **** // If the file was from an OS with a different dir separator, // fixup the path to use the separator on this OS. char oldSeparatorChar = ois.readChar(); ! if (oldSeparatorChar != separatorChar) path = path.replace(oldSeparatorChar, separatorChar); } - - } // class File --- 1597,1605 ---- // If the file was from an OS with a different dir separator, // fixup the path to use the separator on this OS. char oldSeparatorChar = ois.readChar(); ! if (oldSeparatorChar != separatorChar) path = path.replace(oldSeparatorChar, separatorChar); } + } // class File diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FileDescriptor.java gcc-4.6.0/libjava/classpath/java/io/FileDescriptor.java *** gcc-4.5.2/libjava/classpath/java/io/FileDescriptor.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/FileDescriptor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.nio.channels.FileChannel; *** 51,57 **** * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) ! * @date September 24, 1998 */ public final class FileDescriptor { --- 51,57 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) ! * @date September 24, 1998 */ public final class FileDescriptor { *************** public final class FileDescriptor *** 100,106 **** /** * This method forces all data that has not yet been physically written to ! * the underlying storage medium associated with this * FileDescriptor * to be written out. This method will not return until all data has * been fully written to the underlying device. If the device does not --- 100,106 ---- /** * This method forces all data that has not yet been physically written to ! * the underlying storage medium associated with this * FileDescriptor * to be written out. This method will not return until all data has * been fully written to the underlying device. If the device does not *************** public final class FileDescriptor *** 111,127 **** { if (channel instanceof FileChannel) { ! try ! { ! ((FileChannel) channel).force(true); ! } ! catch (IOException ex) ! { ! if (ex instanceof SyncFailedException) ! throw (SyncFailedException) ex; ! else ! throw new SyncFailedException(ex.toString()); ! } } } --- 111,127 ---- { if (channel instanceof FileChannel) { ! try ! { ! ((FileChannel) channel).force(true); ! } ! catch (IOException ex) ! { ! if (ex instanceof SyncFailedException) ! throw (SyncFailedException) ex; ! else ! throw new SyncFailedException(ex.toString()); ! } } } *************** public final class FileDescriptor *** 129,139 **** * This methods tests whether or not this object represents a valid open * native file handle. * ! * @return true if this object represents a valid * native file handle, false otherwise */ public boolean valid () ! { ByteChannel c = channel; return (c != null) && (c.isOpen()); } --- 129,139 ---- * This methods tests whether or not this object represents a valid open * native file handle. * ! * @return true if this object represents a valid * native file handle, false otherwise */ public boolean valid () ! { ByteChannel c = channel; return (c != null) && (c.isOpen()); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FileFilter.java gcc-4.6.0/libjava/classpath/java/io/FileFilter.java *** gcc-4.5.2/libjava/classpath/java/io/FileFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/FileFilter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 40,53 **** /** * This interface has one method which is used for filtering pathnames ! * returned in a pathname listing. It is currently used by the * File.listFiles(FileFilter) method. *

            * The method in this interface determines if a particular pathname should * or should not be included in the pathname listing. * * @author Aaron M. Renn (arenn@urbanophile.com) ! * * @see File#listFiles(java.io.FileFilter) */ public interface FileFilter --- 40,53 ---- /** * This interface has one method which is used for filtering pathnames ! * returned in a pathname listing. It is currently used by the * File.listFiles(FileFilter) method. *

            * The method in this interface determines if a particular pathname should * or should not be included in the pathname listing. * * @author Aaron M. Renn (arenn@urbanophile.com) ! * * @see File#listFiles(java.io.FileFilter) */ public interface FileFilter *************** public interface FileFilter *** 58,64 **** * * @param pathname The pathname to test * ! * @return true if the path should be included in the list, * false otherwise. */ boolean accept(File pathname); --- 58,64 ---- * * @param pathname The pathname to test * ! * @return true if the path should be included in the list, * false otherwise. */ boolean accept(File pathname); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FileInputStream.java gcc-4.6.0/libjava/classpath/java/io/FileInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/FileInputStream.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/FileInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.nio.channels.FileChannel; *** 48,56 **** * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! /** ! * This class is a stream that reads its bytes from a file. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Warren Levy (warrenl@cygnus.com) --- 48,56 ---- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! /** ! * This class is a stream that reads its bytes from a file. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Warren Levy (warrenl@cygnus.com) *************** public class FileInputStream extends Inp *** 68,74 **** * This method initializes a FileInputStream to read from the * specified named file. A security check is first made to determine * whether or not access to this file is allowed. This is done by ! * calling the checkRead() method of the * SecurityManager * (if one exists) with the name of this file. An exception is thrown * if reading is not allowed. If the file does not exist, an exception --- 68,74 ---- * This method initializes a FileInputStream to read from the * specified named file. A security check is first made to determine * whether or not access to this file is allowed. This is done by ! * calling the checkRead() method of the * SecurityManager * (if one exists) with the name of this file. An exception is thrown * if reading is not allowed. If the file does not exist, an exception *************** public class FileInputStream extends Inp *** 77,83 **** * @param name The name of the file this stream should read from * * @exception SecurityException If read access to the file is not allowed ! * @exception FileNotFoundException If the file does not exist * or if it is a directory */ public FileInputStream(String name) throws FileNotFoundException --- 77,83 ---- * @param name The name of the file this stream should read from * * @exception SecurityException If read access to the file is not allowed ! * @exception FileNotFoundException If the file does not exist * or if it is a directory */ public FileInputStream(String name) throws FileNotFoundException *************** public class FileInputStream extends Inp *** 129,141 **** * specified FileDescriptor object. A security * check is first made to * determine whether or not access to this file is allowed. This is done by ! * calling the checkRead() method of the * SecurityManager ! * (if one exists) with the specified FileDescriptor ! * An exception is * thrown if reading is not allowed. * ! * @param fdObj The FileDescriptor object this stream * should read from * * @exception SecurityException If read access to the file is not allowed --- 129,141 ---- * specified FileDescriptor object. A security * check is first made to * determine whether or not access to this file is allowed. This is done by ! * calling the checkRead() method of the * SecurityManager ! * (if one exists) with the specified FileDescriptor ! * An exception is * thrown if reading is not allowed. * ! * @param fdObj The FileDescriptor object this stream * should read from * * @exception SecurityException If read access to the file is not allowed *************** public class FileInputStream extends Inp *** 210,218 **** { synchronized (this) { ! if (fd == null) ! fd = new FileDescriptor (ch); ! return fd; } } --- 210,218 ---- { synchronized (this) { ! if (fd == null) ! fd = new FileDescriptor (ch); ! return fd; } } *************** public class FileInputStream extends Inp *** 256,262 **** /** * This method read bytes from a stream and stores them into a caller ! * supplied buffer. It starts storing the data at index * offset into * the buffer and attempts to read len bytes. This method can * return before reading the number of bytes requested. The actual number --- 256,262 ---- /** * This method read bytes from a stream and stores them into a caller ! * supplied buffer. It starts storing the data at index * offset into * the buffer and attempts to read len bytes. This method can * return before reading the number of bytes requested. The actual number *************** public class FileInputStream extends Inp *** 297,303 **** public synchronized long skip (long numBytes) throws IOException { if (numBytes < 0) ! throw new IllegalArgumentException ("Can't skip negative bytes: " + numBytes); if (numBytes == 0) --- 297,303 ---- public synchronized long skip (long numBytes) throws IOException { if (numBytes < 0) ! throw new IllegalArgumentException ("Can't skip negative bytes: " + numBytes); if (numBytes == 0) *************** public class FileInputStream extends Inp *** 314,323 **** * A file channel must be created by first creating an instance of * Input/Output/RandomAccessFile and invoking the getChannel() method on it. */ ! public synchronized FileChannel getChannel () { return ch; } } // class FileInputStream - --- 314,322 ---- * A file channel must be created by first creating an instance of * Input/Output/RandomAccessFile and invoking the getChannel() method on it. */ ! public synchronized FileChannel getChannel () { return ch; } } // class FileInputStream diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FileOutputStream.java gcc-4.6.0/libjava/classpath/java/io/FileOutputStream.java *** gcc-4.5.2/libjava/classpath/java/io/FileOutputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/FileOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class FileOutputStream extends Ou *** 71,77 **** * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the name of the file to be opened. An exception is ! * thrown if writing is not allowed. * * @param path The name of the file this stream should write to * @param append true to append bytes to the end of the file, --- 71,77 ---- * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the name of the file to be opened. An exception is ! * thrown if writing is not allowed. * * @param path The name of the file this stream should write to * @param append true to append bytes to the end of the file, *************** public class FileOutputStream extends Ou *** 94,100 **** * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the name of the file to be opened. An exception is ! * thrown if writing is not allowed. * * @param path The name of the file this stream should write to * --- 94,100 ---- * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the name of the file to be opened. An exception is ! * thrown if writing is not allowed. * * @param path The name of the file this stream should write to * *************** public class FileOutputStream extends Ou *** 109,122 **** /** * This method initializes a FileOutputStream object to write ! * to the specified File object. The file is created if it ! * does not exist, and the bytes written are written starting at the * beginning of the file. *

            * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the name of the file to be opened. An exception is ! * thrown if writing is not allowed. * * @param file The File object this stream should write to * --- 109,122 ---- /** * This method initializes a FileOutputStream object to write ! * to the specified File object. The file is created if it ! * does not exist, and the bytes written are written starting at the * beginning of the file. *

            * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the name of the file to be opened. An exception is ! * thrown if writing is not allowed. * * @param file The File object this stream should write to * *************** public class FileOutputStream extends Ou *** 131,146 **** /** * This method initializes a FileOutputStream object to write ! * to the specified File object. The file is created if it ! * does not exist, and the bytes written are written starting at the ! * beginning of the file if the append parameter is * false. Otherwise bytes are written at the end of the * file. *

            * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the name of the file to be opened. An exception is ! * thrown if writing is not allowed. * * @param file The File object this stream should write to * @param append true to append bytes to the end of the file, --- 131,146 ---- /** * This method initializes a FileOutputStream object to write ! * to the specified File object. The file is created if it ! * does not exist, and the bytes written are written starting at the ! * beginning of the file if the append parameter is * false. Otherwise bytes are written at the end of the * file. *

            * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the name of the file to be opened. An exception is ! * thrown if writing is not allowed. * * @param file The File object this stream should write to * @param append true to append bytes to the end of the file, *************** public class FileOutputStream extends Ou *** 185,191 **** * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the specified FileDescriptor as an argument. ! * An exception is thrown if writing is not allowed. * * @param fdObj The FileDescriptor this stream should write to * --- 185,191 ---- * Before opening a file, a security check is performed by calling the * checkWrite method of the SecurityManager (if * one exists) with the specified FileDescriptor as an argument. ! * An exception is thrown if writing is not allowed. * * @param fdObj The FileDescriptor this stream should write to * *************** public class FileOutputStream extends Ou *** 230,243 **** { synchronized (this) { ! if (fd == null) ! fd = new FileDescriptor (ch); ! return fd; } } /** ! * This method writes a single byte of data to the file. * * @param b The byte of data to write, passed as an int * --- 230,243 ---- { synchronized (this) { ! if (fd == null) ! fd = new FileDescriptor (ch); ! return fd; } } /** ! * This method writes a single byte of data to the file. * * @param b The byte of data to write, passed as an int * *************** public class FileOutputStream extends Ou *** 263,269 **** } /** ! * This method writes len bytes from the byte array * buf to the file starting at index offset. * * @param buf The array of bytes to write to the file --- 263,269 ---- } /** ! * This method writes len bytes from the byte array * buf to the file starting at index offset. * * @param buf The array of bytes to write to the file *************** public class FileOutputStream extends Ou *** 279,285 **** || len < 0 || offset + len > buf.length) throw new ArrayIndexOutOfBoundsException (); ! ch.write(ByteBuffer.wrap(buf, offset, len)); } --- 279,285 ---- || len < 0 || offset + len > buf.length) throw new ArrayIndexOutOfBoundsException (); ! ch.write(ByteBuffer.wrap(buf, offset, len)); } *************** public class FileOutputStream extends Ou *** 301,310 **** * A file channel must be created by first creating an instance of * Input/Output/RandomAccessFile and invoking the getChannel() method on it. */ ! public synchronized FileChannel getChannel() { return ch; } } // class FileOutputStream - --- 301,309 ---- * A file channel must be created by first creating an instance of * Input/Output/RandomAccessFile and invoking the getChannel() method on it. */ ! public synchronized FileChannel getChannel() { return ch; } } // class FileOutputStream diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FilePermission.java gcc-4.6.0/libjava/classpath/java/io/FilePermission.java *** gcc-4.5.2/libjava/classpath/java/io/FilePermission.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/io/FilePermission.java Tue Jan 11 19:46:05 2011 *************** public final class FilePermission extend *** 59,65 **** String action; int i = actionsString.indexOf(','); int startI = 0; ! while (i != -1) { action = actionsString.substring(startI, i).trim().toLowerCase(); if (action.equals("read")) --- 59,65 ---- String action; int i = actionsString.indexOf(','); int startI = 0; ! while (i != -1) { action = actionsString.substring(startI, i).trim().toLowerCase(); if (action.equals("read")) *************** public final class FilePermission extend *** 70,78 **** executePerm = true; else if (action.equals("delete")) deletePerm = true; ! else ! throw new IllegalArgumentException("Unknown action: " + action); ! startI = i + 1; i = actionsString.indexOf(',', startI); } --- 70,78 ---- executePerm = true; else if (action.equals("delete")) deletePerm = true; ! else ! throw new IllegalArgumentException("Unknown action: " + action); ! startI = i + 1; i = actionsString.indexOf(',', startI); } *************** public final class FilePermission extend *** 99,105 **** * permission represents. The actions must be "read", "write", * "execute" and/or "delete". */ ! public FilePermission(String pathExpression, String actionsString) { // FIXME: what to do when the file string is malformed? super(pathExpression); --- 99,105 ---- * permission represents. The actions must be "read", "write", * "execute" and/or "delete". */ ! public FilePermission(String pathExpression, String actionsString) { // FIXME: what to do when the file string is malformed? super(pathExpression); *************** public final class FilePermission extend *** 110,135 **** this.actionsString = actionsString; checkPerms(); } ! /** * Get the actions this FilePermission supports. * @return the String representing the actions this FilePermission supports. */ ! public String getActions() { return actionsString; } /** * Get the hash code for this Object.

            ! * FilePermission's hash code is calculated as the exclusive or of the * target * String's hash code and the action String's hash code. ! * @specnote Sun did not specify how to calculate the hash code; * I made this up. * @return the hash code for this Object. */ ! public int hashCode() { return getName().hashCode() ^ actionsString.hashCode(); } --- 110,135 ---- this.actionsString = actionsString; checkPerms(); } ! /** * Get the actions this FilePermission supports. * @return the String representing the actions this FilePermission supports. */ ! public String getActions() { return actionsString; } /** * Get the hash code for this Object.

            ! * FilePermission's hash code is calculated as the exclusive or of the * target * String's hash code and the action String's hash code. ! * @specnote Sun did not specify how to calculate the hash code; * I made this up. * @return the hash code for this Object. */ ! public int hashCode() { return getName().hashCode() ^ actionsString.hashCode(); } *************** public final class FilePermission extend *** 141,147 **** * @param o the Object to compare to. * @return whether the Objects are semantically equivalent. */ ! public boolean equals(Object o) { if (! (o instanceof FilePermission)) return false; --- 141,147 ---- * @param o the Object to compare to. * @return whether the Objects are semantically equivalent. */ ! public boolean equals(Object o) { if (! (o instanceof FilePermission)) return false; *************** public final class FilePermission extend *** 152,189 **** // Compare names, taking into account if they refer to a directory // and one has a separator and the other does not. ! if (f1.length() > 0 && f1.charAt(f1.length() - 1) == File.separatorChar) { if (f2.length() > 0 ! && f2.charAt(f2.length() - 1) == File.separatorChar) { ! if (! f2.equals(f1)) ! return false; } else { ! if (! f2.equals(f1.substring(0, f1.length() - 1))) ! return false; } } else { if (f2.length() > 0 ! && f2.charAt(f2.length() - 1) == File.separatorChar) { ! if (! f1.equals(f2.substring(0, f2.length() - 1))) ! return false; } else { ! if (! f1.equals(f2)) ! return false; } } return (readPerm == p.readPerm ! && writePerm == p.writePerm ! && executePerm == p.executePerm ! && deletePerm == p.deletePerm); } /** --- 152,189 ---- // Compare names, taking into account if they refer to a directory // and one has a separator and the other does not. ! if (f1.length() > 0 && f1.charAt(f1.length() - 1) == File.separatorChar) { if (f2.length() > 0 ! && f2.charAt(f2.length() - 1) == File.separatorChar) { ! if (! f2.equals(f1)) ! return false; } else { ! if (! f2.equals(f1.substring(0, f1.length() - 1))) ! return false; } } else { if (f2.length() > 0 ! && f2.charAt(f2.length() - 1) == File.separatorChar) { ! if (! f1.equals(f2.substring(0, f2.length() - 1))) ! return false; } else { ! if (! f1.equals(f2)) ! return false; } } return (readPerm == p.readPerm ! && writePerm == p.writePerm ! && executePerm == p.executePerm ! && deletePerm == p.deletePerm); } /** *************** public final class FilePermission extend *** 191,204 **** * Permission A implies permission B if these things are all true: *

              *
            1. A and B are both FilePermissions.
            2. ! *
            3. All possible files in B are included in A * (possibly more are in A).
            4. *
            5. All actions B supports, A also supports.
            6. *
            * @param p the Permission to compare against. * @return whether this Permission implies p */ ! public boolean implies(Permission p) { if (! (p instanceof FilePermission)) return false; --- 191,204 ---- * Permission A implies permission B if these things are all true: *
              *
            1. A and B are both FilePermissions.
            2. ! *
            3. All possible files in B are included in A * (possibly more are in A).
            4. *
            5. All actions B supports, A also supports.
            6. *
            * @param p the Permission to compare against. * @return whether this Permission implies p */ ! public boolean implies(Permission p) { if (! (p instanceof FilePermission)) return false; *************** public final class FilePermission extend *** 207,213 **** if (f1.equals(ALL_FILES)) return true; ! FilePermission fp = (FilePermission) p; String f2 = fp.getName(); --- 207,213 ---- if (f1.equals(ALL_FILES)) return true; ! FilePermission fp = (FilePermission) p; String f2 = fp.getName(); *************** public final class FilePermission extend *** 216,227 **** try { ! f1 = new File(f1).getCanonicalPath(); ! f2 = new File(f2).getCanonicalPath(); } catch (IOException ioe) { ! return false; } String sub1; --- 216,227 ---- try { ! f1 = new File(f1).getCanonicalPath(); ! f2 = new File(f2).getCanonicalPath(); } catch (IOException ioe) { ! return false; } String sub1; *************** public final class FilePermission extend *** 229,282 **** switch (f1.charAt(f1.length() - 1)) { case '*': ! sub1 = f1.substring(0, f1.length() - 1); // chop off "*" ! if (f2.length() <= sub1.length()) ! { ! // If it's smaller, there is no way it could be part of ! // this directory. If it's the same (or length - 1), it ! // could be the same directory but specifies access to ! // the directory rather than the files in it. ! return false; ! } ! else if (f2.charAt(sub1.length() - 1) == File.separatorChar) ! { ! // Make sure the part before the "/" is the same. ! if (! f2.substring(0, sub1.length()).equals(sub1)) ! return false; ! // Make sure there are no subdirectories specified ! // underneath this one. ! if (f2.substring(sub1.length() + 1).indexOf(File.separatorChar) ! != -1) ! return false; ! } ! else ! { ! // Obviously not equal: f2 is either not a directory or ! // is not the same directory (its name continues further ! // than we want). ! return false; ! } ! break; case '-': ! // Chop off "/-". ! sub1 = f1.substring(0, f1.length() - 2); ! if (f2.length() < sub1.length()) ! { ! // If it's smaller, there is no way it could be part of ! // this directory. ! return false; ! } ! else if (f2.length() > sub1.length() ! && f2.charAt(sub1.length()) != File.separatorChar) ! return false; ! else if (! f2.substring(0, sub1.length()).equals(sub1)) ! return false; ! break; default: ! if (!f1.equals(f2)) ! return false; ! break; } if (fp.readPerm && ! readPerm) --- 229,282 ---- switch (f1.charAt(f1.length() - 1)) { case '*': ! sub1 = f1.substring(0, f1.length() - 1); // chop off "*" ! if (f2.length() <= sub1.length()) ! { ! // If it's smaller, there is no way it could be part of ! // this directory. If it's the same (or length - 1), it ! // could be the same directory but specifies access to ! // the directory rather than the files in it. ! return false; ! } ! else if (f2.charAt(sub1.length() - 1) == File.separatorChar) ! { ! // Make sure the part before the "/" is the same. ! if (! f2.substring(0, sub1.length()).equals(sub1)) ! return false; ! // Make sure there are no subdirectories specified ! // underneath this one. ! if (f2.substring(sub1.length() + 1).indexOf(File.separatorChar) ! != -1) ! return false; ! } ! else ! { ! // Obviously not equal: f2 is either not a directory or ! // is not the same directory (its name continues further ! // than we want). ! return false; ! } ! break; case '-': ! // Chop off "/-". ! sub1 = f1.substring(0, f1.length() - 2); ! if (f2.length() < sub1.length()) ! { ! // If it's smaller, there is no way it could be part of ! // this directory. ! return false; ! } ! else if (f2.length() > sub1.length() ! && f2.charAt(sub1.length()) != File.separatorChar) ! return false; ! else if (! f2.substring(0, sub1.length()).equals(sub1)) ! return false; ! break; default: ! if (!f1.equals(f2)) ! return false; ! break; } if (fp.readPerm && ! readPerm) *************** public final class FilePermission extend *** 287,293 **** return false; if (fp.deletePerm && ! deletePerm) return false; ! return true; } } --- 287,293 ---- return false; if (fp.deletePerm && ! deletePerm) return false; ! return true; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FileReader.java gcc-4.6.0/libjava/classpath/java/io/FileReader.java *** gcc-4.5.2/libjava/classpath/java/io/FileReader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/FileReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 41,47 **** /** * This class provides a convenient way to set up a Reader * to read from a file. It opens the specified file for reading and creates ! * the InputStreamReader to read from the * resulting FileInputStream. This class can only be used * to read from files using the default character encoding. Use * InputStreamReader directly to use a non-default encoding. --- 41,47 ---- /** * This class provides a convenient way to set up a Reader * to read from a file. It opens the specified file for reading and creates ! * the InputStreamReader to read from the * resulting FileInputStream. This class can only be used * to read from files using the default character encoding. Use * InputStreamReader directly to use a non-default encoding. *************** public class FileReader extends InputStr *** 56,62 **** * * @param file The File object representing the file to read from * ! * @exception FileNotFoundException If the file is not found or some other * error occurs */ public FileReader(File file) throws FileNotFoundException --- 56,62 ---- * * @param file The File object representing the file to read from * ! * @exception FileNotFoundException If the file is not found or some other * error occurs */ public FileReader(File file) throws FileNotFoundException *************** public class FileReader extends InputStr *** 81,87 **** * * @param name The name of the file to read from * ! * @exception FileNotFoundException If the file is not found or some other * error occurs */ public FileReader(String name) throws FileNotFoundException --- 81,87 ---- * * @param name The name of the file to read from * ! * @exception FileNotFoundException If the file is not found or some other * error occurs */ public FileReader(String name) throws FileNotFoundException *************** public class FileReader extends InputStr *** 89,92 **** super(new FileInputStream(name)); } } // class FileReader - --- 89,91 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FileWriter.java gcc-4.6.0/libjava/classpath/java/io/FileWriter.java *** gcc-4.5.2/libjava/classpath/java/io/FileWriter.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/io/FileWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 45,51 **** /** * This is a convenience class for writing to files. It creates an ! * FileOutputStream and initializes an * OutputStreamWriter to write to it. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 45,51 ---- /** * This is a convenience class for writing to files. It creates an ! * FileOutputStream and initializes an * OutputStreamWriter to write to it. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** public class FileWriter extends OutputSt *** 100,106 **** } /** ! * This method intializes a new FileWriter object to * write to the * specified named file. * --- 100,106 ---- } /** ! * This method intializes a new FileWriter object to * write to the * specified named file. * *************** public class FileWriter extends OutputSt *** 116,122 **** } /** ! * This method intializes a new FileWriter object to * write to the * specified named file. This form of the constructor allows the caller * to determine whether data should be written starting at the beginning or --- 116,122 ---- } /** ! * This method intializes a new FileWriter object to * write to the * specified named file. This form of the constructor allows the caller * to determine whether data should be written starting at the beginning or diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FilenameFilter.java gcc-4.6.0/libjava/classpath/java/io/FilenameFilter.java *** gcc-4.5.2/libjava/classpath/java/io/FilenameFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/FilenameFilter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 45,52 **** /** * This interface has one method which is used for filtering filenames ! * returned in a directory listing. It is currently used by the ! * File.list(FilenameFilter) method and by the filename * dialog in AWT. *

            * The method in this interface determines if a particular file should --- 45,52 ---- /** * This interface has one method which is used for filtering filenames ! * returned in a directory listing. It is currently used by the ! * File.list(FilenameFilter) method and by the filename * dialog in AWT. *

            * The method in this interface determines if a particular file should *************** public interface FilenameFilter *** 73,76 **** boolean accept(File dir, String name); } // interface FilenameFilter - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FilterInputStream.java gcc-4.6.0/libjava/classpath/java/io/FilterInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/FilterInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/FilterInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 45,51 **** */ /** ! * This is the common superclass of all standard classes that filter * input. It acts as a layer on top of an underlying InputStream * and simply redirects calls made to it to the subordinate InputStream * instead. Subclasses of this class perform additional filtering --- 45,51 ---- */ /** ! * This is the common superclass of all standard classes that filter * input. It acts as a layer on top of an underlying InputStream * and simply redirects calls made to it to the subordinate InputStream * instead. Subclasses of this class perform additional filtering *************** package java.io; *** 60,66 **** * When creating a subclass of FilterInputStream, override the * appropriate methods to implement the desired filtering. However, note * that the read(byte[]) method does not need to be overridden ! * as this class redirects calls to that method to * read(byte[], int, int) instead of to the subordinate * InputStream read(byte[]) method. * --- 60,66 ---- * When creating a subclass of FilterInputStream, override the * appropriate methods to implement the desired filtering. However, note * that the read(byte[]) method does not need to be overridden ! * as this class redirects calls to that method to * read(byte[], int, int) instead of to the subordinate * InputStream read(byte[]) method. * *************** public class FilterInputStream extends I *** 132,138 **** /** * Calls the in.skip(long) method * ! * @param numBytes The requested number of bytes to skip. * * @return The value returned from in.skip(long) * --- 132,138 ---- /** * Calls the in.skip(long) method * ! * @param numBytes The requested number of bytes to skip. * * @return The value returned from in.skip(long) * *************** public class FilterInputStream extends I *** 156,163 **** } /** ! * Calls the read(byte[], int, int) overloaded method. ! * Note that * this method does not redirect its call directly to a corresponding * method in in. This allows subclasses to override only the * three argument version of read. --- 156,163 ---- } /** ! * Calls the read(byte[], int, int) overloaded method. ! * Note that * this method does not redirect its call directly to a corresponding * method in in. This allows subclasses to override only the * three argument version of read. *************** public class FilterInputStream extends I *** 193,199 **** * This method closes the input stream by closing the input stream that * this object is filtering. Future attempts to access this stream may * throw an exception. ! * * @exception IOException If an error occurs */ public void close() throws IOException --- 193,199 ---- * This method closes the input stream by closing the input stream that * this object is filtering. Future attempts to access this stream may * throw an exception. ! * * @exception IOException If an error occurs */ public void close() throws IOException diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FilterOutputStream.java gcc-4.6.0/libjava/classpath/java/io/FilterOutputStream.java *** gcc-4.5.2/libjava/classpath/java/io/FilterOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/FilterOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 44,53 **** */ /** ! * This class is the common superclass of output stream classes that * filter the output they write. These classes typically transform the * data in some way prior to writing it out to another underlying ! * OutputStream. This class simply overrides all the * methods in OutputStream to redirect them to the * underlying stream. Subclasses provide actual filtering. * --- 44,53 ---- */ /** ! * This class is the common superclass of output stream classes that * filter the output they write. These classes typically transform the * data in some way prior to writing it out to another underlying ! * OutputStream. This class simply overrides all the * methods in OutputStream to redirect them to the * underlying stream. Subclasses provide actual filtering. * *************** public class FilterOutputStream extends *** 141,150 **** public void write(byte[] buf, int offset, int len) throws IOException { // Don't do checking here, per Java Lang Spec. ! for (int i=0; i < len; i++) write(buf[offset + i]); } } // class FilterOutputStream - --- 141,149 ---- public void write(byte[] buf, int offset, int len) throws IOException { // Don't do checking here, per Java Lang Spec. ! for (int i=0; i < len; i++) write(buf[offset + i]); } } // class FilterOutputStream diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FilterReader.java gcc-4.6.0/libjava/classpath/java/io/FilterReader.java *** gcc-4.5.2/libjava/classpath/java/io/FilterReader.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/io/FilterReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 45,51 **** */ /** ! * This is the common superclass of all standard classes that filter * input. It acts as a layer on top of an underlying Reader * and simply redirects calls made to it to the subordinate Reader * instead. Subclasses of this class perform additional filtering --- 45,51 ---- */ /** ! * This is the common superclass of all standard classes that filter * input. It acts as a layer on top of an underlying Reader * and simply redirects calls made to it to the subordinate Reader * instead. Subclasses of this class perform additional filtering *************** package java.io; *** 54,60 **** * When creating a subclass of FilterReader, override the * appropriate methods to implement the desired filtering. However, note * that the read(char[]) method does not need to be overridden ! * as this class redirects calls to that method to * read(yte[], int, int) instead of to the subordinate * Reader} read(yte[]) method. * --- 54,60 ---- * When creating a subclass of FilterReader, override the * appropriate methods to implement the desired filtering. However, note * that the read(char[]) method does not need to be overridden ! * as this class redirects calls to that method to * read(yte[], int, int) instead of to the subordinate * Reader} read(yte[]) method. * *************** public abstract class FilterReader exten *** 98,104 **** /** * Calls the in.markSupported() method. * ! * @return true if mark/reset is supported, * false otherwise */ public boolean markSupported() --- 98,104 ---- /** * Calls the in.markSupported() method. * ! * @return true if mark/reset is supported, * false otherwise */ public boolean markSupported() *************** public abstract class FilterReader exten *** 131,137 **** /** * Calls the in.skip(long) method * ! * @param num_chars The requested number of chars to skip. * * @return The value returned from in.skip(long) * --- 131,137 ---- /** * Calls the in.skip(long) method * ! * @param num_chars The requested number of chars to skip. * * @return The value returned from in.skip(long) * *************** public abstract class FilterReader exten *** 182,185 **** } } // class FilterReader - --- 182,184 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/FilterWriter.java gcc-4.6.0/libjava/classpath/java/io/FilterWriter.java *** gcc-4.5.2/libjava/classpath/java/io/FilterWriter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/FilterWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 44,58 **** */ /** ! * This class is the common superclass of output character stream classes * that filter the output they write. These classes typically transform the * data in some way prior to writing it out to another underlying ! * Writer. This class simply overrides all the * methods in Writer to redirect them to the * underlying stream. Subclasses provide actual filtering. * * @author Aaron M. Renn (arenn@urbanophile.com) ! * @author Tom Tromey (tromey@cygnus.com) */ public abstract class FilterWriter extends Writer { --- 44,58 ---- */ /** ! * This class is the common superclass of output character stream classes * that filter the output they write. These classes typically transform the * data in some way prior to writing it out to another underlying ! * Writer. This class simply overrides all the * methods in Writer to redirect them to the * underlying stream. Subclasses provide actual filtering. * * @author Aaron M. Renn (arenn@urbanophile.com) ! * @author Tom Tromey (tromey@cygnus.com) */ public abstract class FilterWriter extends Writer { *************** public abstract class FilterWriter exten *** 132,138 **** * starting at position offset. * * @param str The String that is to be written ! * @param offset The character offset into the String * to start writing from * @param len The number of chars to write * --- 132,138 ---- * starting at position offset. * * @param str The String that is to be written ! * @param offset The character offset into the String * to start writing from * @param len The number of chars to write * *************** public abstract class FilterWriter exten *** 144,147 **** } } // class FilterWriter - --- 144,146 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/InputStream.java gcc-4.6.0/libjava/classpath/java/io/InputStream.java *** gcc-4.5.2/libjava/classpath/java/io/InputStream.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/io/InputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** this exception to your version of the li *** 35,41 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package java.io; /** --- 35,41 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package java.io; /** *************** public abstract class InputStream implem *** 121,127 **** * if they support mark/reset functionality. * * @return true if mark/reset functionality is ! * supported, false otherwise */ public boolean markSupported() { --- 121,127 ---- * if they support mark/reset functionality. * * @return true if mark/reset functionality is ! * supported, false otherwise */ public boolean markSupported() { *************** public abstract class InputStream implem *** 200,217 **** for (i = 0; i < len; ++i) try ! { ! if ((ch = read()) < 0) ! return i == 0 ? -1 : i; // EOF ! b[off + i] = (byte) ch; ! } catch (IOException ex) ! { ! // Only reading the first byte should cause an IOException. ! if (i == 0) ! throw ex; ! return i; ! } return i; } --- 200,217 ---- for (i = 0; i < len; ++i) try ! { ! if ((ch = read()) < 0) ! return i == 0 ? -1 : i; // EOF ! b[off + i] = (byte) ch; ! } catch (IOException ex) ! { ! // Only reading the first byte should cause an IOException. ! if (i == 0) ! throw ex; ! return i; ! } return i; } *************** public abstract class InputStream implem *** 259,268 **** while (n > 0L) { ! int numread = read(tmpbuf, 0, n > buflen ? buflen : (int) n); ! if (numread <= 0) ! break; ! n -= numread; } return origN - n; --- 259,268 ---- while (n > 0L) { ! int numread = read(tmpbuf, 0, n > buflen ? buflen : (int) n); ! if (numread <= 0) ! break; ! n -= numread; } return origN - n; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/InputStreamReader.java gcc-4.6.0/libjava/classpath/java/io/InputStreamReader.java *** gcc-4.5.2/libjava/classpath/java/io/InputStreamReader.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/InputStreamReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.nio.charset.CodingErrorActio *** 51,63 **** /** * This class reads characters from a byte input stream. The characters ! * read are converted from bytes in the underlying stream by a * decoding layer. The decoding layer transforms bytes to chars according ! * to an encoding standard. There are many available encodings to choose * from. The desired encoding can either be specified by name, or if no * encoding is selected, the system default encoding will be used. The * system default encoding name is determined from the system property ! * file.encoding. The only encodings that are guaranteed to * be availalbe are "8859_1" (the Latin-1 character set) and "UTF8". * Unforunately, Java does not provide a mechanism for listing the * ecodings that are supported in a given implementation. --- 51,63 ---- /** * This class reads characters from a byte input stream. The characters ! * read are converted from bytes in the underlying stream by a * decoding layer. The decoding layer transforms bytes to chars according ! * to an encoding standard. There are many available encodings to choose * from. The desired encoding can either be specified by name, or if no * encoding is selected, the system default encoding will be used. The * system default encoding name is determined from the system property ! * file.encoding. The only encodings that are guaranteed to * be availalbe are "8859_1" (the Latin-1 character set) and "UTF8". * Unforunately, Java does not provide a mechanism for listing the * ecodings that are supported in a given implementation. *************** import java.nio.charset.CodingErrorActio *** 79,85 **** *

          13. More later
          14. * *

            ! * It is recommended that applications do not use * InputStreamReader's * directly. Rather, for efficiency purposes, an object of this class * should be wrapped by a BufferedReader. --- 79,85 ---- *

          15. More later
          16. * *

            ! * It is recommended that applications do not use * InputStreamReader's * directly. Rather, for efficiency purposes, an object of this class * should be wrapped by a BufferedReader. *************** import java.nio.charset.CodingErrorActio *** 93,99 **** * @author Robert Schuster * @author Aaron M. Renn (arenn@urbanophile.com) * @author Per Bothner (bothner@cygnus.com) ! * @date April 22, 1998. */ public class InputStreamReader extends Reader { --- 93,99 ---- * @author Robert Schuster * @author Aaron M. Renn (arenn@urbanophile.com) * @author Per Bothner (bothner@cygnus.com) ! * @date April 22, 1998. */ public class InputStreamReader extends Reader { *************** public class InputStreamReader extends R *** 148,191 **** * This method initializes a new instance of InputStreamReader * to read from the specified stream using the default encoding. * ! * @param in The InputStream to read from */ public InputStreamReader(InputStream in) { if (in == null) throw new NullPointerException(); this.in = in; ! try ! { ! encoding = SystemProperties.getProperty("file.encoding"); ! // Don't use NIO if avoidable ! if(EncodingHelper.isISOLatin1(encoding)) ! { ! encoding = "ISO8859_1"; ! maxBytesPerChar = 1f; ! decoder = null; ! return; ! } ! Charset cs = EncodingHelper.getCharset(encoding); ! decoder = cs.newDecoder(); ! encoding = EncodingHelper.getOldCanonical(cs.name()); ! try { ! maxBytesPerChar = cs.newEncoder().maxBytesPerChar(); ! } catch(UnsupportedOperationException _){ ! maxBytesPerChar = 1f; ! } ! decoder.onMalformedInput(CodingErrorAction.REPLACE); ! decoder.onUnmappableCharacter(CodingErrorAction.REPLACE); ! decoder.reset(); ! } catch(RuntimeException e) { ! encoding = "ISO8859_1"; ! maxBytesPerChar = 1f; ! decoder = null; ! } catch(UnsupportedEncodingException e) { ! encoding = "ISO8859_1"; ! maxBytesPerChar = 1f; ! decoder = null; ! } } /** --- 148,191 ---- * This method initializes a new instance of InputStreamReader * to read from the specified stream using the default encoding. * ! * @param in The InputStream to read from */ public InputStreamReader(InputStream in) { if (in == null) throw new NullPointerException(); this.in = in; ! try ! { ! encoding = SystemProperties.getProperty("file.encoding"); ! // Don't use NIO if avoidable ! if(EncodingHelper.isISOLatin1(encoding)) ! { ! encoding = "ISO8859_1"; ! maxBytesPerChar = 1f; ! decoder = null; ! return; ! } ! Charset cs = EncodingHelper.getCharset(encoding); ! decoder = cs.newDecoder(); ! encoding = EncodingHelper.getOldCanonical(cs.name()); ! try { ! maxBytesPerChar = cs.newEncoder().maxBytesPerChar(); ! } catch(UnsupportedOperationException _){ ! maxBytesPerChar = 1f; ! } ! decoder.onMalformedInput(CodingErrorAction.REPLACE); ! decoder.onUnmappableCharacter(CodingErrorAction.REPLACE); ! decoder.reset(); ! } catch(RuntimeException e) { ! encoding = "ISO8859_1"; ! maxBytesPerChar = 1f; ! decoder = null; ! } catch(UnsupportedEncodingException e) { ! encoding = "ISO8859_1"; ! maxBytesPerChar = 1f; ! decoder = null; ! } } /** *************** public class InputStreamReader extends R *** 193,203 **** * to read from the specified stream using a caller supplied character * encoding scheme. Note that due to a deficiency in the Java language * design, there is no way to determine which encodings are supported. ! * * @param in The InputStream to read from * @param encoding_name The name of the encoding scheme to use * ! * @exception UnsupportedEncodingException If the encoding scheme * requested is not available. */ public InputStreamReader(InputStream in, String encoding_name) --- 193,203 ---- * to read from the specified stream using a caller supplied character * encoding scheme. Note that due to a deficiency in the Java language * design, there is no way to determine which encodings are supported. ! * * @param in The InputStream to read from * @param encoding_name The name of the encoding scheme to use * ! * @exception UnsupportedEncodingException If the encoding scheme * requested is not available. */ public InputStreamReader(InputStream in, String encoding_name) *************** public class InputStreamReader extends R *** 206,228 **** if (in == null || encoding_name == null) throw new NullPointerException(); ! this.in = in; // Don't use NIO if avoidable if(EncodingHelper.isISOLatin1(encoding_name)) { ! encoding = "ISO8859_1"; ! maxBytesPerChar = 1f; ! decoder = null; ! return; } try { Charset cs = EncodingHelper.getCharset(encoding_name); try { maxBytesPerChar = cs.newEncoder().maxBytesPerChar(); } catch(UnsupportedOperationException _){ ! maxBytesPerChar = 1f; ! } decoder = cs.newDecoder(); decoder.onMalformedInput(CodingErrorAction.REPLACE); --- 206,228 ---- if (in == null || encoding_name == null) throw new NullPointerException(); ! this.in = in; // Don't use NIO if avoidable if(EncodingHelper.isISOLatin1(encoding_name)) { ! encoding = "ISO8859_1"; ! maxBytesPerChar = 1f; ! decoder = null; ! return; } try { Charset cs = EncodingHelper.getCharset(encoding_name); try { maxBytesPerChar = cs.newEncoder().maxBytesPerChar(); } catch(UnsupportedOperationException _){ ! maxBytesPerChar = 1f; ! } decoder = cs.newDecoder(); decoder.onMalformedInput(CodingErrorAction.REPLACE); *************** public class InputStreamReader extends R *** 242,248 **** * Creates an InputStreamReader that uses a decoder of the given * charset to decode the bytes in the InputStream into * characters. ! * * @since 1.4 */ public InputStreamReader(InputStream in, Charset charset) { --- 242,248 ---- * Creates an InputStreamReader that uses a decoder of the given * charset to decode the bytes in the InputStream into * characters. ! * * @since 1.4 */ public InputStreamReader(InputStream in, Charset charset) { *************** public class InputStreamReader extends R *** 266,272 **** /** * Creates an InputStreamReader that uses the given charset decoder * to decode the bytes in the InputStream into characters. ! * * @since 1.4 */ public InputStreamReader(InputStream in, CharsetDecoder decoder) { --- 266,272 ---- /** * Creates an InputStreamReader that uses the given charset decoder * to decode the bytes in the InputStream into characters. ! * * @since 1.4 */ public InputStreamReader(InputStream in, CharsetDecoder decoder) { *************** public class InputStreamReader extends R *** 282,289 **** else maxBytesPerChar = charset.newEncoder().maxBytesPerChar(); } catch(UnsupportedOperationException _){ ! maxBytesPerChar = 1f; ! } decoder.onMalformedInput(CodingErrorAction.REPLACE); decoder.onUnmappableCharacter(CodingErrorAction.REPLACE); --- 282,289 ---- else maxBytesPerChar = charset.newEncoder().maxBytesPerChar(); } catch(UnsupportedOperationException _){ ! maxBytesPerChar = 1f; ! } decoder.onMalformedInput(CodingErrorAction.REPLACE); decoder.onUnmappableCharacter(CodingErrorAction.REPLACE); *************** public class InputStreamReader extends R *** 291,301 **** if (charset == null) encoding = "US-ASCII"; else ! encoding = EncodingHelper.getOldCanonical(decoder.charset().name()); } ! /** ! * This method closes this stream, as well as the underlying * InputStream. * * @exception IOException If an error occurs --- 291,301 ---- if (charset == null) encoding = "US-ASCII"; else ! encoding = EncodingHelper.getOldCanonical(decoder.charset().name()); } ! /** ! * This method closes this stream, as well as the underlying * InputStream. * * @exception IOException If an error occurs *************** public class InputStreamReader extends R *** 304,317 **** { synchronized (lock) { ! // Makes sure all intermediate data is released by the decoder. ! if (decoder != null) ! decoder.reset(); ! if (in != null) ! in.close(); ! in = null; ! isDone = true; ! decoder = null; } } --- 304,317 ---- { synchronized (lock) { ! // Makes sure all intermediate data is released by the decoder. ! if (decoder != null) ! decoder.reset(); ! if (in != null) ! in.close(); ! in = null; ! isDone = true; ! decoder = null; } } *************** public class InputStreamReader extends R *** 333,339 **** * If the stream is not ready to be read, it could (although is not required * to) block on the next read attempt. * ! * @return true if the stream is ready to be read, * false otherwise * * @exception IOException If an error occurs --- 333,339 ---- * If the stream is not ready to be read, it could (although is not required * to) block on the next read attempt. * ! * @return true if the stream is ready to be read, * false otherwise * * @exception IOException If an error occurs *************** public class InputStreamReader extends R *** 342,348 **** { if (in == null) throw new IOException("Reader has been closed"); ! return in.available() != 0; } --- 342,348 ---- { if (in == null) throw new IOException("Reader has been closed"); ! return in.available() != 0; } *************** public class InputStreamReader extends R *** 367,376 **** return -1; if(decoder != null) { ! int totalBytes = (int)((double) length * maxBytesPerChar); if (byteBuffer != null) totalBytes = Math.max(totalBytes, byteBuffer.remaining()); ! byte[] bytes; // Fetch cached bytes array if available and big enough. synchronized(cacheLock) { --- 367,376 ---- return -1; if(decoder != null) { ! int totalBytes = (int)((double) length * maxBytesPerChar); if (byteBuffer != null) totalBytes = Math.max(totalBytes, byteBuffer.remaining()); ! byte[] bytes; // Fetch cached bytes array if available and big enough. synchronized(cacheLock) { *************** public class InputStreamReader extends R *** 381,437 **** bytesCache = null; } ! int remaining = 0; ! if(byteBuffer != null) ! { ! remaining = byteBuffer.remaining(); ! byteBuffer.get(bytes, 0, remaining); ! } ! int read; ! if(totalBytes - remaining > 0) ! { ! read = in.read(bytes, remaining, totalBytes - remaining); ! if(read == -1){ ! read = remaining; ! isDone = true; ! } else ! read += remaining; ! } else read = remaining; ! byteBuffer = ByteBuffer.wrap(bytes, 0, read); ! CharBuffer cb = CharBuffer.wrap(buf, offset, length); ! int startPos = cb.position(); ! if(hasSavedSurrogate){ ! hasSavedSurrogate = false; ! cb.put(savedSurrogate); ! read++; ! } ! CoderResult cr = decoder.decode(byteBuffer, cb, isDone); ! decoder.reset(); ! // 1 char remains which is the first half of a surrogate pair. ! if(cr.isOverflow() && cb.hasRemaining()){ ! CharBuffer overflowbuf = CharBuffer.allocate(2); ! cr = decoder.decode(byteBuffer, overflowbuf, isDone); ! overflowbuf.flip(); ! if(overflowbuf.hasRemaining()) ! { ! cb.put(overflowbuf.get()); ! savedSurrogate = overflowbuf.get(); ! hasSavedSurrogate = true; ! isDone = false; ! } ! } ! if(byteBuffer.hasRemaining()) { ! byteBuffer.compact(); ! byteBuffer.flip(); ! isDone = false; ! } else ! byteBuffer = null; ! read = cb.position() - startPos; // Put cached bytes array back if we are finished and the cache // is null or smaller than the used bytes array. --- 381,437 ---- bytesCache = null; } ! int remaining = 0; ! if(byteBuffer != null) ! { ! remaining = byteBuffer.remaining(); ! byteBuffer.get(bytes, 0, remaining); ! } ! int read; ! if(totalBytes - remaining > 0) ! { ! read = in.read(bytes, remaining, totalBytes - remaining); ! if(read == -1){ ! read = remaining; ! isDone = true; ! } else ! read += remaining; ! } else read = remaining; ! byteBuffer = ByteBuffer.wrap(bytes, 0, read); ! CharBuffer cb = CharBuffer.wrap(buf, offset, length); ! int startPos = cb.position(); ! if(hasSavedSurrogate){ ! hasSavedSurrogate = false; ! cb.put(savedSurrogate); ! read++; ! } ! CoderResult cr = decoder.decode(byteBuffer, cb, isDone); ! decoder.reset(); ! // 1 char remains which is the first half of a surrogate pair. ! if(cr.isOverflow() && cb.hasRemaining()){ ! CharBuffer overflowbuf = CharBuffer.allocate(2); ! cr = decoder.decode(byteBuffer, overflowbuf, isDone); ! overflowbuf.flip(); ! if(overflowbuf.hasRemaining()) ! { ! cb.put(overflowbuf.get()); ! savedSurrogate = overflowbuf.get(); ! hasSavedSurrogate = true; ! isDone = false; ! } ! } ! if(byteBuffer.hasRemaining()) { ! byteBuffer.compact(); ! byteBuffer.flip(); ! isDone = false; ! } else ! byteBuffer = null; ! read = cb.position() - startPos; // Put cached bytes array back if we are finished and the cache // is null or smaller than the used bytes array. *************** public class InputStreamReader extends R *** 445,451 **** } else { ! byte[] bytes; // Fetch cached bytes array if available and big enough. synchronized (cacheLock) { --- 445,451 ---- } else { ! byte[] bytes; // Fetch cached bytes array if available and big enough. synchronized (cacheLock) { *************** public class InputStreamReader extends R *** 456,463 **** bytesCache = null; } ! int read = in.read(bytes); ! for(int i=0;iLineNumberInputStream that reads from the * specified subordinate InputStream * * @param in The subordinate InputStream to read from --- 82,88 ---- private boolean justReadReturnChar = false; /** ! * Create a new LineNumberInputStream that reads from the * specified subordinate InputStream * * @param in The subordinate InputStream to read from *************** public class LineNumberInputStream exten *** 147,153 **** * functionality. * * @param readlimit The number of bytes that can be read before the ! * mark becomes invalid */ public void mark(int readlimit) { --- 147,153 ---- * functionality. * * @param readlimit The number of bytes that can be read before the ! * mark becomes invalid */ public void mark(int readlimit) { *************** public class LineNumberInputStream exten *** 170,176 **** * to be read. * * @return The byte read or -1 if end of stream ! * * @exception IOException If an error occurs */ public int read() throws IOException --- 170,176 ---- * to be read. * * @return The byte read or -1 if end of stream ! * * @exception IOException If an error occurs */ public int read() throws IOException *************** public class LineNumberInputStream exten *** 183,199 **** if (ch == '\n') if (justReadReturnChar) ! { ! ch = in.read(); justReadReturnChar = false; ! } else ! lineNumber++; else if (ch == '\r') { ! ch = '\n'; ! justReadReturnChar = true; ! lineNumber++; } else justReadReturnChar = false; --- 183,199 ---- if (ch == '\n') if (justReadReturnChar) ! { ! ch = in.read(); justReadReturnChar = false; ! } else ! lineNumber++; else if (ch == '\r') { ! ch = '\n'; ! justReadReturnChar = true; ! lineNumber++; } else justReadReturnChar = false; *************** public class LineNumberInputStream exten *** 239,249 **** final int origOff = off; while (len-- > 0) { ! int ch = read(); ! if (ch < 0) ! break; ! b[off++] = (byte) ch; } // This is safe since we already know that some bytes were --- 239,249 ---- final int origOff = off; while (len-- > 0) { ! int ch = read(); ! if (ch < 0) ! break; ! b[off++] = (byte) ch; } // This is safe since we already know that some bytes were *************** public class LineNumberInputStream exten *** 274,280 **** /** * This method sets the current line number to the specified value. ! * * @param lineNumber The new line number */ public void setLineNumber(int lineNumber) --- 274,280 ---- /** * This method sets the current line number to the specified value. ! * * @param lineNumber The new line number */ public void setLineNumber(int lineNumber) *************** public class LineNumberInputStream exten *** 283,289 **** } /** ! * This method skips up to the requested number of bytes in the * input stream. The actual number of bytes skipped is returned. If the * desired number of bytes to skip is negative, no bytes are skipped. * --- 283,289 ---- } /** ! * This method skips up to the requested number of bytes in the * input stream. The actual number of bytes skipped is returned. If the * desired number of bytes to skip is negative, no bytes are skipped. * *************** public class LineNumberInputStream exten *** 302,312 **** do { ! int ch = read(); ! if (ch < 0) ! break; ! if (ch == '\n' || ch == '\r') ! lineNumber++; } while (--n > 0); --- 302,312 ---- do { ! int ch = read(); ! if (ch < 0) ! break; ! if (ch == '\n' || ch == '\r') ! lineNumber++; } while (--n > 0); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/LineNumberReader.java gcc-4.6.0/libjava/classpath/java/io/LineNumberReader.java *** gcc-4.5.2/libjava/classpath/java/io/LineNumberReader.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/io/LineNumberReader.java Tue Jan 11 19:46:05 2011 *************** public class LineNumberReader extends Bu *** 151,172 **** synchronized (lock) { ! // This is basically the same as BufferedReader.mark. ! // However, if the previous character was a '\r', we need to ! // save that 'r', in case the next character is a '\n'. ! if (pos + readLimit > limit) ! { ! int saveCR = matchedNewLine ? 1 : 0; ! char[] old_buffer = buffer; ! if (readLimit > limit) ! buffer = new char[saveCR + readLimit]; ! int copy_start = pos - saveCR; ! savedLineNumber = lineNumber; ! limit -= copy_start; ! System.arraycopy(old_buffer, copy_start, buffer, 0, limit); ! pos = saveCR; ! } ! markPos = pos; } } --- 151,172 ---- synchronized (lock) { ! // This is basically the same as BufferedReader.mark. ! // However, if the previous character was a '\r', we need to ! // save that 'r', in case the next character is a '\n'. ! if (pos + readLimit > limit) ! { ! int saveCR = matchedNewLine ? 1 : 0; ! char[] old_buffer = buffer; ! if (readLimit > limit) ! buffer = new char[saveCR + readLimit]; ! int copy_start = pos - saveCR; ! savedLineNumber = lineNumber; ! limit -= copy_start; ! System.arraycopy(old_buffer, copy_start, buffer, 0, limit); ! pos = saveCR; ! } ! markPos = pos; } } *************** public class LineNumberReader extends Bu *** 185,195 **** { synchronized (lock) { ! if (markPos < 0) ! throw new IOException("mark never set or invalidated"); ! lineNumber = savedLineNumber; ! pos = markPos; ! matchedNewLine = (markPos > 0 && buffer[markPos-1] == '\r'); } } --- 185,195 ---- { synchronized (lock) { ! if (markPos < 0) ! throw new IOException("mark never set or invalidated"); ! lineNumber = savedLineNumber; ! pos = markPos; ! matchedNewLine = (markPos > 0 && buffer[markPos-1] == '\r'); } } *************** public class LineNumberReader extends Bu *** 237,260 **** { synchronized (lock) { ! skipRedundantLF(); ! if (pos >= limit && fill() < 0) ! return -1; ! char ch = buffer[pos++]; ! ! if ((matchedNewLine = (ch == '\r')) || ch == '\n') ! { ! lineNumber++; ! return '\n'; ! } ! matchedNewLine = false; ! return (int) ch; } } /** * This method reads chars from a stream and stores them into a caller ! * supplied buffer. It starts storing data at index offset into * the buffer and attemps to read len chars. This method can * return before reading the number of chars requested. The actual number * of chars read is returned as an int. A -1 is returned to indicated the --- 237,260 ---- { synchronized (lock) { ! skipRedundantLF(); ! if (pos >= limit && fill() < 0) ! return -1; ! char ch = buffer[pos++]; ! ! if ((matchedNewLine = (ch == '\r')) || ch == '\n') ! { ! lineNumber++; ! return '\n'; ! } ! matchedNewLine = false; ! return (int) ch; } } /** * This method reads chars from a stream and stores them into a caller ! * supplied buffer. It starts storing data at index offset into * the buffer and attemps to read len chars. This method can * return before reading the number of chars requested. The actual number * of chars read is returned as an int. A -1 is returned to indicated the *************** public class LineNumberReader extends Bu *** 288,324 **** if (count <= 0) { ! if (count < 0) ! throw new IndexOutOfBoundsException(); ! return 0; } synchronized (lock) { ! if (pos >= limit && fill() < 0) ! return -1; ! ! int start_offset = offset; ! boolean matched = matchedNewLine; ! ! while (count-- > 0 && pos < limit) ! { ! char ch = buffer[pos++]; ! if (ch == '\r') ! { ! lineNumber++; ! matched = true; ! } ! else if (ch == '\n' && !matched) ! lineNumber++; ! else ! matched = false; ! buf[offset++] = ch; ! } ! matchedNewLine = matched; ! return offset - start_offset; } } --- 288,324 ---- if (count <= 0) { ! if (count < 0) ! throw new IndexOutOfBoundsException(); ! return 0; } synchronized (lock) { ! if (pos >= limit && fill() < 0) ! return -1; ! int start_offset = offset; ! boolean matched = matchedNewLine; ! while (count-- > 0 && pos < limit) ! { ! char ch = buffer[pos++]; ! if (ch == '\r') ! { ! lineNumber++; ! matched = true; ! } ! else if (ch == '\n' && !matched) ! lineNumber++; ! else ! matched = false; ! ! buf[offset++] = ch; ! } ! ! matchedNewLine = matched; ! return offset - start_offset; } } *************** public class LineNumberReader extends Bu *** 326,345 **** { if (pos > 0 && matchedNewLine) { ! if (pos < limit) ! { // fast case ! if (buffer[pos] == '\n') ! pos++; ! } ! else ! { // check whether the next buffer begins with '\n'. ! // in that case kill the '\n'. ! if (fill() <= 0) ! return; ! if (buffer[pos] == '\n') ! pos++; ! } ! matchedNewLine = true; } } --- 326,345 ---- { if (pos > 0 && matchedNewLine) { ! if (pos < limit) ! { // fast case ! if (buffer[pos] == '\n') ! pos++; ! } ! else ! { // check whether the next buffer begins with '\n'. ! // in that case kill the '\n'. ! if (fill() <= 0) ! return; ! if (buffer[pos] == '\n') ! pos++; ! } ! matchedNewLine = true; } } *************** public class LineNumberReader extends Bu *** 414,417 **** return skipped; } } - --- 414,416 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ObjectInput.java gcc-4.6.0/libjava/classpath/java/io/ObjectInput.java *** gcc-4.5.2/libjava/classpath/java/io/ObjectInput.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/ObjectInput.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** obligated to do so. If you do not wish *** 36,42 **** exception statement from your version. */ ! package java.io; /** * This interface extends the DataInput interface to provide a --- 36,42 ---- exception statement from your version. */ ! package java.io; /** * This interface extends the DataInput interface to provide a *************** public interface ObjectInput extends Dat *** 62,70 **** /** * This method reading a byte of data from a stream. It returns that byte ! * as an int. This method blocks if no data is available * to be read. ! * * @return The byte of data read * * @exception IOException If an error occurs --- 62,70 ---- /** * This method reading a byte of data from a stream. It returns that byte ! * as an int. This method blocks if no data is available * to be read. ! * * @return The byte of data read * * @exception IOException If an error occurs *************** public interface ObjectInput extends Dat *** 73,79 **** /** * This method reads raw bytes and stores them them a byte array buffer. ! * Note that this method will block if no data is available. However, * it will not necessarily block until it fills the entire buffer. That is, * a "short count" is possible. * --- 73,79 ---- /** * This method reads raw bytes and stores them them a byte array buffer. ! * Note that this method will block if no data is available. However, * it will not necessarily block until it fills the entire buffer. That is, * a "short count" is possible. * *************** public interface ObjectInput extends Dat *** 87,94 **** /** * This method reads raw bytes and stores them in a byte array buffer ! * buf starting at position offset into the ! * buffer. A * maximum of len bytes will be read. Note that this method * blocks if no data is available, but will not necessarily block until * it can read len bytes of data. That is, a "short count" is --- 87,94 ---- /** * This method reads raw bytes and stores them in a byte array buffer ! * buf starting at position offset into the ! * buffer. A * maximum of len bytes will be read. Note that this method * blocks if no data is available, but will not necessarily block until * it can read len bytes of data. That is, a "short count" is *************** public interface ObjectInput extends Dat *** 111,121 **** * * @return The object instance that was read * ! * @exception ClassNotFoundException If a class for the object cannot be * found * @exception IOException If any other error occurs */ ! Object readObject() throws ClassNotFoundException, IOException; /** --- 111,121 ---- * * @return The object instance that was read * ! * @exception ClassNotFoundException If a class for the object cannot be * found * @exception IOException If any other error occurs */ ! Object readObject() throws ClassNotFoundException, IOException; /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ObjectInputStream.java gcc-4.6.0/libjava/classpath/java/io/ObjectInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/ObjectInputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/ObjectInputStream.java Tue Jan 11 19:46:05 2011 *************** public class ObjectInputStream extends I *** 86,102 **** { if (DEBUG) { ! String val = System.getProperty("gcj.dumpobjects"); ! if (dump == false && val != null && !val.equals("")) ! { ! dump = true; ! System.out.println ("Serialization debugging enabled"); ! } ! else if (dump == true && (val == null || val.equals(""))) ! { ! dump = false; ! System.out.println ("Serialization debugging disabled"); ! } } this.resolveEnabled = false; --- 86,102 ---- { if (DEBUG) { ! String val = System.getProperty("gcj.dumpobjects"); ! if (dump == false && val != null && !val.equals("")) ! { ! dump = true; ! System.out.println ("Serialization debugging enabled"); ! } ! else if (dump == true && (val == null || val.equals(""))) ! { ! dump = false; ! System.out.println ("Serialization debugging disabled"); ! } } this.resolveEnabled = false; *************** public class ObjectInputStream extends I *** 120,128 **** * private void readObject (ObjectInputStream). * * If an exception is thrown from this method, the stream is left in ! * an undefined state. This method can also throw Errors and * RuntimeExceptions if caused by existing readResolve() user code. ! * * @return The object read from the underlying stream. * * @exception ClassNotFoundException The class that an object being --- 120,128 ---- * private void readObject (ObjectInputStream). * * If an exception is thrown from this method, the stream is left in ! * an undefined state. This method can also throw Errors and * RuntimeExceptions if caused by existing readResolve() user code. ! * * @return The object read from the underlying stream. * * @exception ClassNotFoundException The class that an object being *************** public class ObjectInputStream extends I *** 182,190 **** * private void readObject (ObjectInputStream). * * If an exception is thrown from this method, the stream is left in ! * an undefined state. This method can also throw Errors and * RuntimeExceptions if caused by existing readResolve() user code. ! * * @param shared true if handles created by this call should be shared * with later calls. * @return The object read from the underlying stream. --- 182,190 ---- * private void readObject (ObjectInputStream). * * If an exception is thrown from this method, the stream is left in ! * an undefined state. This method can also throw Errors and * RuntimeExceptions if caused by existing readResolve() user code. ! * * @param shared true if handles created by this call should be shared * with later calls. * @return The object read from the underlying stream. *************** public class ObjectInputStream extends I *** 212,226 **** try { ! ret_val = parseContent(marker, shared); } finally { ! setBlockDataMode(old_mode); ! if (DEBUG) ! depth -= 2; } ! return ret_val; } --- 212,226 ---- try { ! ret_val = parseContent(marker, shared); } finally { ! setBlockDataMode(old_mode); ! if (DEBUG) ! depth -= 2; } ! return ret_val; } *************** public class ObjectInputStream extends I *** 246,320 **** switch (marker) { case TC_ENDBLOCKDATA: ! { ! ret_val = null; ! is_consumed = true; ! break; ! } ! case TC_BLOCKDATA: case TC_BLOCKDATALONG: ! { ! if (marker == TC_BLOCKDATALONG) ! { if(dump) dumpElementln("BLOCKDATALONG"); } ! else ! { if(dump) dumpElementln("BLOCKDATA"); } ! readNextBlock(marker); ! } ! case TC_NULL: ! { ! if(dump) dumpElementln("NULL"); ! ret_val = null; ! break; ! } ! case TC_REFERENCE: ! { ! if(dump) dumpElement("REFERENCE "); ! int oid = realInputStream.readInt(); ! if(dump) dumpElementln(Integer.toHexString(oid)); ! ret_val = lookupHandle(oid); ! if (!shared) ! throw new ! InvalidObjectException("References can not be read unshared."); ! break; ! } ! case TC_CLASS: ! { ! if(dump) dumpElementln("CLASS"); ! ObjectStreamClass osc = (ObjectStreamClass)readObject(); ! Class clazz = osc.forClass(); ! assignNewHandle(clazz,shared); ! ret_val = clazz; ! break; ! } ! case TC_PROXYCLASSDESC: ! { ! if(dump) dumpElementln("PROXYCLASS"); /* GCJ LOCAL */ ! // The grammar at this point is ! // TC_PROXYCLASSDESC newHandle proxyClassDescInfo ! // i.e. we have to assign the handle immediately after ! // reading the marker. ! int handle = assignNewHandle("Dummy proxy",shared); /* END GCJ LOCAL */ ! int n_intf = this.realInputStream.readInt(); ! String[] intfs = new String[n_intf]; ! for (int i = 0; i < n_intf; i++) ! { ! intfs[i] = this.realInputStream.readUTF(); ! } ! ! boolean oldmode = setBlockDataMode(true); ! Class cl = resolveProxyClass(intfs); ! setBlockDataMode(oldmode); ! ! ObjectStreamClass osc = lookupClass(cl); if (osc.firstNonSerializableParentConstructor == null) { osc.realClassIsSerializable = true; --- 246,320 ---- switch (marker) { case TC_ENDBLOCKDATA: ! { ! ret_val = null; ! is_consumed = true; ! break; ! } ! case TC_BLOCKDATA: case TC_BLOCKDATALONG: ! { ! if (marker == TC_BLOCKDATALONG) ! { if(dump) dumpElementln("BLOCKDATALONG"); } ! else ! { if(dump) dumpElementln("BLOCKDATA"); } ! readNextBlock(marker); ! } ! case TC_NULL: ! { ! if(dump) dumpElementln("NULL"); ! ret_val = null; ! break; ! } ! case TC_REFERENCE: ! { ! if(dump) dumpElement("REFERENCE "); ! int oid = realInputStream.readInt(); ! if(dump) dumpElementln(Integer.toHexString(oid)); ! ret_val = lookupHandle(oid); ! if (!shared) ! throw new ! InvalidObjectException("References can not be read unshared."); ! break; ! } ! case TC_CLASS: ! { ! if(dump) dumpElementln("CLASS"); ! ObjectStreamClass osc = (ObjectStreamClass)readObject(); ! Class clazz = osc.forClass(); ! assignNewHandle(clazz,shared); ! ret_val = clazz; ! break; ! } ! case TC_PROXYCLASSDESC: ! { ! if(dump) dumpElementln("PROXYCLASS"); /* GCJ LOCAL */ ! // The grammar at this point is ! // TC_PROXYCLASSDESC newHandle proxyClassDescInfo ! // i.e. we have to assign the handle immediately after ! // reading the marker. ! int handle = assignNewHandle("Dummy proxy",shared); /* END GCJ LOCAL */ ! int n_intf = this.realInputStream.readInt(); ! String[] intfs = new String[n_intf]; ! for (int i = 0; i < n_intf; i++) ! { ! intfs[i] = this.realInputStream.readUTF(); ! } ! ! boolean oldmode = setBlockDataMode(true); ! Class cl = resolveProxyClass(intfs); ! setBlockDataMode(oldmode); ! ! ObjectStreamClass osc = lookupClass(cl); if (osc.firstNonSerializableParentConstructor == null) { osc.realClassIsSerializable = true; *************** public class ObjectInputStream extends I *** 331,546 **** } } /* GCJ LOCAL */ ! rememberHandle(osc,shared,handle); /* END GCJ LOCAL */ ! ! if (!is_consumed) ! { ! byte b = this.realInputStream.readByte(); ! if (b != TC_ENDBLOCKDATA) ! throw new IOException("Data annotated to class was not consumed." + b); ! } ! else ! is_consumed = false; ! ObjectStreamClass superosc = (ObjectStreamClass)readObject(); ! osc.setSuperclass(superosc); ! ret_val = osc; ! break; ! } ! case TC_CLASSDESC: ! { ! ObjectStreamClass osc = readClassDescriptor(); ! ! if (!is_consumed) ! { ! byte b = this.realInputStream.readByte(); ! if (b != TC_ENDBLOCKDATA) ! throw new IOException("Data annotated to class was not consumed." + b); ! } ! else ! is_consumed = false; ! ! osc.setSuperclass ((ObjectStreamClass)readObject()); ! ret_val = osc; ! break; ! } ! case TC_STRING: ! { ! if(dump) dumpElement("STRING="); ! String s = this.realInputStream.readUTF(); ! if(dump) dumpElementln(s); ! ret_val = processResolution(null, s, assignNewHandle(s,shared), ! shared); ! break; ! } ! case TC_LONGSTRING: ! { ! if(dump) dumpElement("STRING="); ! String s = this.realInputStream.readUTFLong(); ! if(dump) dumpElementln(s); ! ret_val = processResolution(null, s, assignNewHandle(s,shared), ! shared); ! break; ! } case TC_ARRAY: ! { ! if(dump) dumpElementln("ARRAY"); ! ObjectStreamClass osc = (ObjectStreamClass)readObject(); ! Class componentType = osc.forClass().getComponentType(); ! if(dump) dumpElement("ARRAY LENGTH="); ! int length = this.realInputStream.readInt(); ! if(dump) dumpElementln (length + "; COMPONENT TYPE=" + componentType); ! Object array = Array.newInstance(componentType, length); ! int handle = assignNewHandle(array,shared); ! readArrayElements(array, componentType); ! if(dump) ! for (int i = 0, len = Array.getLength(array); i < len; i++) ! dumpElementln(" ELEMENT[" + i + "]=", Array.get(array, i)); ! ret_val = processResolution(null, array, handle, shared); ! break; ! } ! case TC_OBJECT: ! { ! if(dump) dumpElementln("OBJECT"); ! ObjectStreamClass osc = (ObjectStreamClass)readObject(); ! Class clazz = osc.forClass(); ! ! if (!osc.realClassIsSerializable) ! throw new NotSerializableException ! (clazz + " is not Serializable, and thus cannot be deserialized."); ! ! if (osc.realClassIsExternalizable) ! { ! Externalizable obj = osc.newInstance(); ! ! int handle = assignNewHandle(obj,shared); ! ! boolean read_from_blocks = ((osc.getFlags() & SC_BLOCK_DATA) != 0); ! ! boolean oldmode = this.readDataFromBlock; ! if (read_from_blocks) ! setBlockDataMode(true); ! ! obj.readExternal(this); ! ! if (read_from_blocks) { ! setBlockDataMode(oldmode); ! if (!oldmode) ! if (this.realInputStream.readByte() != TC_ENDBLOCKDATA) ! throw new IOException("No end of block data seen for class with readExternal (ObjectInputStream) method."); ! } ! ret_val = processResolution(osc, obj, handle,shared); break; ! ! } // end if (osc.realClassIsExternalizable) ! ! Object obj = newObject(clazz, osc.firstNonSerializableParentConstructor); ! ! int handle = assignNewHandle(obj,shared); ! Object prevObject = this.currentObject; ! ObjectStreamClass prevObjectStreamClass = this.currentObjectStreamClass; ! TreeSet prevObjectValidators = ! this.currentObjectValidators; ! ! this.currentObject = obj; ! this.currentObjectValidators = null; ! ObjectStreamClass[] hierarchy = hierarchy(clazz); ! ! for (int i = 0; i < hierarchy.length; i++) { ! this.currentObjectStreamClass = hierarchy[i]; ! if(dump) dumpElementln("Reading fields of " + this.currentObjectStreamClass.getName ()); ! ! // XXX: should initialize fields in classes in the hierarchy ! // that aren't in the stream ! // should skip over classes in the stream that aren't in the ! // real classes hierarchy ! ! Method readObjectMethod = this.currentObjectStreamClass.readObjectMethod; ! if (readObjectMethod != null) ! { ! fieldsAlreadyRead = false; ! boolean oldmode = setBlockDataMode(true); ! callReadMethod(readObjectMethod, this.currentObjectStreamClass.forClass(), obj); ! setBlockDataMode(oldmode); ! } ! else ! { ! readFields(obj, currentObjectStreamClass); ! } ! ! if (this.currentObjectStreamClass.hasWriteMethod()) ! { ! if(dump) dumpElement("ENDBLOCKDATA? "); ! try ! { ! /* Read blocks until an end marker */ ! byte writeMarker = this.realInputStream.readByte(); ! while (writeMarker != TC_ENDBLOCKDATA) ! { ! parseContent(writeMarker, shared); ! writeMarker = this.realInputStream.readByte(); ! } ! if(dump) dumpElementln("yes"); ! } ! catch (EOFException e) ! { ! throw (IOException) new IOException ! ("No end of block data seen for class with readObject (ObjectInputStream) method.").initCause(e); ! } ! } ! } ! ! this.currentObject = prevObject; ! this.currentObjectStreamClass = prevObjectStreamClass; ! ret_val = processResolution(osc, obj, handle, shared); ! if (currentObjectValidators != null) ! invokeValidators(); ! this.currentObjectValidators = prevObjectValidators; - break; - } - case TC_RESET: ! if(dump) dumpElementln("RESET"); ! clearHandles(); ! ret_val = readObject(); ! break; ! case TC_EXCEPTION: ! { ! if(dump) dumpElement("EXCEPTION="); ! Exception e = (Exception)readObject(); ! if(dump) dumpElementln(e.toString()); ! clearHandles(); ! throw new WriteAbortedException("Exception thrown during writing of stream", e); ! } case TC_ENUM: ! { ! /* TC_ENUM classDesc newHandle enumConstantName */ ! if (dump) ! dumpElementln("ENUM="); ! ObjectStreamClass osc = (ObjectStreamClass) readObject(); ! String constantName = (String) readObject(); ! if (dump) ! dumpElementln("CONSTANT NAME = " + constantName); ! Class clazz = osc.forClass(); ! Enum instance = Enum.valueOf(clazz, constantName); ! assignNewHandle(instance,shared); ! ret_val = instance; ! break; ! } default: ! throw new IOException("Unknown marker on stream: " + marker); } return ret_val; } --- 331,546 ---- } } /* GCJ LOCAL */ ! rememberHandle(osc,shared,handle); /* END GCJ LOCAL */ ! ! if (!is_consumed) ! { ! byte b = this.realInputStream.readByte(); ! if (b != TC_ENDBLOCKDATA) ! throw new IOException("Data annotated to class was not consumed." + b); ! } ! else ! is_consumed = false; ! ObjectStreamClass superosc = (ObjectStreamClass)readObject(); ! osc.setSuperclass(superosc); ! ret_val = osc; ! break; ! } ! case TC_CLASSDESC: ! { ! ObjectStreamClass osc = readClassDescriptor(); ! ! if (!is_consumed) ! { ! byte b = this.realInputStream.readByte(); ! if (b != TC_ENDBLOCKDATA) ! throw new IOException("Data annotated to class was not consumed." + b); ! } ! else ! is_consumed = false; ! ! osc.setSuperclass ((ObjectStreamClass)readObject()); ! ret_val = osc; ! break; ! } ! case TC_STRING: ! { ! if(dump) dumpElement("STRING="); ! String s = this.realInputStream.readUTF(); ! if(dump) dumpElementln(s); ! ret_val = processResolution(null, s, assignNewHandle(s,shared), ! shared); ! break; ! } ! case TC_LONGSTRING: ! { ! if(dump) dumpElement("STRING="); ! String s = this.realInputStream.readUTFLong(); ! if(dump) dumpElementln(s); ! ret_val = processResolution(null, s, assignNewHandle(s,shared), ! shared); ! break; ! } case TC_ARRAY: ! { ! if(dump) dumpElementln("ARRAY"); ! ObjectStreamClass osc = (ObjectStreamClass)readObject(); ! Class componentType = osc.forClass().getComponentType(); ! if(dump) dumpElement("ARRAY LENGTH="); ! int length = this.realInputStream.readInt(); ! if(dump) dumpElementln (length + "; COMPONENT TYPE=" + componentType); ! Object array = Array.newInstance(componentType, length); ! int handle = assignNewHandle(array,shared); ! readArrayElements(array, componentType); ! if(dump) ! for (int i = 0, len = Array.getLength(array); i < len; i++) ! dumpElementln(" ELEMENT[" + i + "]=", Array.get(array, i)); ! ret_val = processResolution(null, array, handle, shared); ! break; ! } ! case TC_OBJECT: ! { ! if(dump) dumpElementln("OBJECT"); ! ObjectStreamClass osc = (ObjectStreamClass)readObject(); ! Class clazz = osc.forClass(); ! ! if (!osc.realClassIsSerializable) ! throw new NotSerializableException ! (clazz + " is not Serializable, and thus cannot be deserialized."); ! ! if (osc.realClassIsExternalizable) ! { ! Externalizable obj = osc.newInstance(); ! ! int handle = assignNewHandle(obj,shared); ! ! boolean read_from_blocks = ((osc.getFlags() & SC_BLOCK_DATA) != 0); ! ! boolean oldmode = this.readDataFromBlock; ! if (read_from_blocks) ! setBlockDataMode(true); ! ! obj.readExternal(this); ! ! if (read_from_blocks) { ! setBlockDataMode(oldmode); ! if (!oldmode) ! if (this.realInputStream.readByte() != TC_ENDBLOCKDATA) ! throw new IOException("No end of block data seen for class with readExternal (ObjectInputStream) method."); ! } ! ret_val = processResolution(osc, obj, handle,shared); break; ! ! } // end if (osc.realClassIsExternalizable) ! ! Object obj = newObject(clazz, osc.firstNonSerializableParentConstructor); ! ! int handle = assignNewHandle(obj,shared); ! Object prevObject = this.currentObject; ! ObjectStreamClass prevObjectStreamClass = this.currentObjectStreamClass; ! TreeSet prevObjectValidators = ! this.currentObjectValidators; ! ! this.currentObject = obj; ! this.currentObjectValidators = null; ! ObjectStreamClass[] hierarchy = hierarchy(clazz); ! ! for (int i = 0; i < hierarchy.length; i++) { ! this.currentObjectStreamClass = hierarchy[i]; ! if(dump) dumpElementln("Reading fields of " + this.currentObjectStreamClass.getName ()); ! ! // XXX: should initialize fields in classes in the hierarchy ! // that aren't in the stream ! // should skip over classes in the stream that aren't in the ! // real classes hierarchy ! ! Method readObjectMethod = this.currentObjectStreamClass.readObjectMethod; ! if (readObjectMethod != null) ! { ! fieldsAlreadyRead = false; ! boolean oldmode = setBlockDataMode(true); ! callReadMethod(readObjectMethod, this.currentObjectStreamClass.forClass(), obj); ! setBlockDataMode(oldmode); ! } ! else ! { ! readFields(obj, currentObjectStreamClass); ! } ! ! if (this.currentObjectStreamClass.hasWriteMethod()) ! { ! if(dump) dumpElement("ENDBLOCKDATA? "); ! try ! { ! /* Read blocks until an end marker */ ! byte writeMarker = this.realInputStream.readByte(); ! while (writeMarker != TC_ENDBLOCKDATA) ! { ! parseContent(writeMarker, shared); ! writeMarker = this.realInputStream.readByte(); ! } ! if(dump) dumpElementln("yes"); ! } ! catch (EOFException e) ! { ! throw (IOException) new IOException ! ("No end of block data seen for class with readObject (ObjectInputStream) method.").initCause(e); ! } ! } ! } ! ! this.currentObject = prevObject; ! this.currentObjectStreamClass = prevObjectStreamClass; ! ret_val = processResolution(osc, obj, handle, shared); ! if (currentObjectValidators != null) ! invokeValidators(); ! this.currentObjectValidators = prevObjectValidators; ! ! break; ! } case TC_RESET: ! if(dump) dumpElementln("RESET"); ! clearHandles(); ! ret_val = readObject(); ! break; ! case TC_EXCEPTION: ! { ! if(dump) dumpElement("EXCEPTION="); ! Exception e = (Exception)readObject(); ! if(dump) dumpElementln(e.toString()); ! clearHandles(); ! throw new WriteAbortedException("Exception thrown during writing of stream", e); ! } case TC_ENUM: ! { ! /* TC_ENUM classDesc newHandle enumConstantName */ ! if (dump) ! dumpElementln("ENUM="); ! ObjectStreamClass osc = (ObjectStreamClass) readObject(); ! String constantName = (String) readObject(); ! if (dump) ! dumpElementln("CONSTANT NAME = " + constantName); ! Class clazz = osc.forClass(); ! Enum instance = Enum.valueOf(clazz, constantName); ! assignNewHandle(instance,shared); ! ret_val = instance; ! break; ! } default: ! throw new IOException("Unknown marker on stream: " + marker); } return ret_val; } *************** public class ObjectInputStream extends I *** 548,555 **** /** * This method makes a partial check of types for the fields * contained given in arguments. It checks primitive types of ! * fields1 against non primitive types of fields2. This method ! * assumes the two lists has already been sorted according to * the Java specification. * * @param name Name of the class owning the given fields. --- 548,555 ---- /** * This method makes a partial check of types for the fields * contained given in arguments. It checks primitive types of ! * fields1 against non primitive types of fields2. This method ! * assumes the two lists has already been sorted according to * the Java specification. * * @param name Name of the class owning the given fields. *************** public class ObjectInputStream extends I *** 562,606 **** throws InvalidClassException { int nonPrimitive = 0; ! ! for (nonPrimitive = 0; ! nonPrimitive < fields1.length ! && fields1[nonPrimitive].isPrimitive(); nonPrimitive++) { } if (nonPrimitive == fields1.length) return; ! int i = 0; ObjectStreamField f1; ObjectStreamField f2; ! while (i < fields2.length ! && nonPrimitive < fields1.length) { ! f1 = fields1[nonPrimitive]; ! f2 = fields2[i]; ! ! if (!f2.isPrimitive()) ! break; ! int compVal = f1.getName().compareTo (f2.getName()); ! if (compVal < 0) ! { ! nonPrimitive++; ! } ! else if (compVal > 0) ! { ! i++; ! } ! else ! { ! throw new InvalidClassException ! ("invalid field type for " + f2.getName() + ! " in class " + name); ! } } } --- 562,606 ---- throws InvalidClassException { int nonPrimitive = 0; ! ! for (nonPrimitive = 0; ! nonPrimitive < fields1.length ! && fields1[nonPrimitive].isPrimitive(); nonPrimitive++) { } if (nonPrimitive == fields1.length) return; ! int i = 0; ObjectStreamField f1; ObjectStreamField f2; ! while (i < fields2.length ! && nonPrimitive < fields1.length) { ! f1 = fields1[nonPrimitive]; ! f2 = fields2[i]; ! if (!f2.isPrimitive()) ! break; ! int compVal = f1.getName().compareTo (f2.getName()); ! ! if (compVal < 0) ! { ! nonPrimitive++; ! } ! else if (compVal > 0) ! { ! i++; ! } ! else ! { ! throw new InvalidClassException ! ("invalid field type for " + f2.getName() + ! " in class " + name); ! } } } *************** public class ObjectInputStream extends I *** 634,664 **** if(dump) dumpElementln(Short.toString(field_count)); ObjectStreamField[] fields = new ObjectStreamField[field_count]; ObjectStreamClass osc = new ObjectStreamClass(name, uid, ! flags, fields); assignNewHandle(osc,true); for (int i = 0; i < field_count; i++) { ! if(dump) dumpElement(" TYPE CODE="); ! char type_code = (char)this.realInputStream.readByte(); ! if(dump) dumpElement(type_code + "; FIELD NAME="); ! String field_name = this.realInputStream.readUTF(); ! if(dump) dumpElementln(field_name); ! String class_name; ! ! // If the type code is an array or an object we must ! // decode a String here. In the other case we convert ! // the type code and pass it to ObjectStreamField. ! // Type codes are decoded by gnu.java.lang.reflect.TypeSignature. ! if (type_code == 'L' || type_code == '[') ! class_name = (String)readObject(); ! else ! class_name = String.valueOf(type_code); ! ! fields[i] = ! new ObjectStreamField(field_name, class_name); } ! /* Now that fields have been read we may resolve the class * (and read annotation if needed). */ Class clazz = resolveClass(osc); --- 634,664 ---- if(dump) dumpElementln(Short.toString(field_count)); ObjectStreamField[] fields = new ObjectStreamField[field_count]; ObjectStreamClass osc = new ObjectStreamClass(name, uid, ! flags, fields); assignNewHandle(osc,true); for (int i = 0; i < field_count; i++) { ! if(dump) dumpElement(" TYPE CODE="); ! char type_code = (char)this.realInputStream.readByte(); ! if(dump) dumpElement(type_code + "; FIELD NAME="); ! String field_name = this.realInputStream.readUTF(); ! if(dump) dumpElementln(field_name); ! String class_name; ! ! // If the type code is an array or an object we must ! // decode a String here. In the other case we convert ! // the type code and pass it to ObjectStreamField. ! // Type codes are decoded by gnu.java.lang.reflect.TypeSignature. ! if (type_code == 'L' || type_code == '[') ! class_name = (String)readObject(); ! else ! class_name = String.valueOf(type_code); ! ! fields[i] = ! new ObjectStreamField(field_name, class_name); } ! /* Now that fields have been read we may resolve the class * (and read annotation if needed). */ Class clazz = resolveClass(osc); *************** public class ObjectInputStream extends I *** 721,783 **** /* * Check that there is no type inconsistencies between the lists. * A special checking must be done for the two groups: primitive types and ! * not primitive types. */ checkTypeConsistency(name, real_fields, stream_fields); checkTypeConsistency(name, stream_fields, real_fields); ! while (stream_idx < stream_fields.length ! || real_idx < real_fields.length) { ! ObjectStreamField stream_field = null; ! ObjectStreamField real_field = null; ! if (stream_idx == stream_fields.length) ! { ! real_field = real_fields[real_idx++]; ! } ! else if (real_idx == real_fields.length) ! { ! stream_field = stream_fields[stream_idx++]; ! } ! else ! { ! int comp_val = ! real_fields[real_idx].compareTo (stream_fields[stream_idx]); ! if (comp_val < 0) ! { ! real_field = real_fields[real_idx++]; ! } ! else if (comp_val > 0) ! { ! stream_field = stream_fields[stream_idx++]; ! } ! else ! { ! stream_field = stream_fields[stream_idx++]; ! real_field = real_fields[real_idx++]; ! if (stream_field.getType() != real_field.getType()) ! throw new InvalidClassException ! ("invalid field type for " + real_field.getName() + ! " in class " + name); ! } ! } ! /* If some of stream_fields does not correspond to any of real_fields, ! * or the opposite, then fieldmapping will go short. ! */ ! if (map_idx == fieldmapping.length) ! { ! ObjectStreamField[] newfieldmapping = ! new ObjectStreamField[fieldmapping.length + 2]; ! System.arraycopy(fieldmapping, 0, ! newfieldmapping, 0, fieldmapping.length); ! fieldmapping = newfieldmapping; ! } ! fieldmapping[map_idx++] = stream_field; ! fieldmapping[map_idx++] = real_field; } osc.fieldMapping = fieldmapping; --- 721,783 ---- /* * Check that there is no type inconsistencies between the lists. * A special checking must be done for the two groups: primitive types and ! * not primitive types. */ checkTypeConsistency(name, real_fields, stream_fields); checkTypeConsistency(name, stream_fields, real_fields); ! while (stream_idx < stream_fields.length ! || real_idx < real_fields.length) { ! ObjectStreamField stream_field = null; ! ObjectStreamField real_field = null; ! if (stream_idx == stream_fields.length) ! { ! real_field = real_fields[real_idx++]; ! } ! else if (real_idx == real_fields.length) ! { ! stream_field = stream_fields[stream_idx++]; ! } ! else ! { ! int comp_val = ! real_fields[real_idx].compareTo (stream_fields[stream_idx]); ! if (comp_val < 0) ! { ! real_field = real_fields[real_idx++]; ! } ! else if (comp_val > 0) ! { ! stream_field = stream_fields[stream_idx++]; ! } ! else ! { ! stream_field = stream_fields[stream_idx++]; ! real_field = real_fields[real_idx++]; ! if (stream_field.getType() != real_field.getType()) ! throw new InvalidClassException ! ("invalid field type for " + real_field.getName() + ! " in class " + name); ! } ! } ! /* If some of stream_fields does not correspond to any of real_fields, ! * or the opposite, then fieldmapping will go short. ! */ ! if (map_idx == fieldmapping.length) ! { ! ObjectStreamField[] newfieldmapping = ! new ObjectStreamField[fieldmapping.length + 2]; ! System.arraycopy(fieldmapping, 0, ! newfieldmapping, 0, fieldmapping.length); ! fieldmapping = newfieldmapping; ! } ! fieldmapping[map_idx++] = stream_field; ! fieldmapping[map_idx++] = real_field; } osc.fieldMapping = fieldmapping; *************** public class ObjectInputStream extends I *** 808,819 **** { if (this.currentObject == null || this.currentObjectStreamClass == null) throw new NotActiveException("defaultReadObject called by non-active" ! + " class and/or object"); if (fieldsAlreadyRead) throw new NotActiveException("defaultReadObject called but fields " ! + "already read from stream (by " ! + "defaultReadObject or readFields)"); boolean oldmode = setBlockDataMode(false); readFields(this.currentObject, this.currentObjectStreamClass); --- 808,819 ---- { if (this.currentObject == null || this.currentObjectStreamClass == null) throw new NotActiveException("defaultReadObject called by non-active" ! + " class and/or object"); if (fieldsAlreadyRead) throw new NotActiveException("defaultReadObject called but fields " ! + "already read from stream (by " ! + "defaultReadObject or readFields)"); boolean oldmode = setBlockDataMode(false); readFields(this.currentObject, this.currentObjectStreamClass); *************** public class ObjectInputStream extends I *** 842,861 **** * object currently being deserialized */ public void registerValidation(ObjectInputValidation validator, ! int priority) throws InvalidObjectException, NotActiveException { if (this.currentObject == null || this.currentObjectStreamClass == null) throw new NotActiveException("registerValidation called by non-active " ! + "class and/or object"); if (validator == null) throw new InvalidObjectException("attempt to add a null " ! + "ObjectInputValidation object"); if (currentObjectValidators == null) currentObjectValidators = new TreeSet(); ! currentObjectValidators.add(new ValidatorAndPriority(validator, priority)); } --- 842,861 ---- * object currently being deserialized */ public void registerValidation(ObjectInputValidation validator, ! int priority) throws InvalidObjectException, NotActiveException { if (this.currentObject == null || this.currentObjectStreamClass == null) throw new NotActiveException("registerValidation called by non-active " ! + "class and/or object"); if (validator == null) throw new InvalidObjectException("attempt to add a null " ! + "ObjectInputValidation object"); if (currentObjectValidators == null) currentObjectValidators = new TreeSet(); ! currentObjectValidators.add(new ValidatorAndPriority(validator, priority)); } *************** public class ObjectInputStream extends I *** 953,962 **** * represent the class hierarchy for clazz. */ private ObjectStreamClass[] hierarchy(Class clazz) ! { ObjectStreamClass osc = lookupClass(clazz); ! return osc == null ? new ObjectStreamClass[0] : osc.hierarchy(); } /** --- 953,962 ---- * represent the class hierarchy for clazz. */ private ObjectStreamClass[] hierarchy(Class clazz) ! { ObjectStreamClass osc = lookupClass(clazz); ! return osc == null ? new ObjectStreamClass[0] : osc.hierarchy(); } /** *************** public class ObjectInputStream extends I *** 982,1008 **** throws IOException, ClassNotFoundException { ClassLoader cl = currentLoader(); ! Class[] clss = new Class[intfs.length]; if(cl == null) { ! for (int i = 0; i < intfs.length; i++) ! clss[i] = Class.forName(intfs[i]); ! cl = ClassLoader.getSystemClassLoader(); } else for (int i = 0; i < intfs.length; i++) ! clss[i] = Class.forName(intfs[i], false, cl); ! try { ! return Proxy.getProxyClass(cl, clss); ! } ! catch (IllegalArgumentException e) { ! throw new ClassNotFoundException(null, e); } } ! /** * If enable is true and this object is * trusted, then resolveObject (Object) will be called --- 982,1008 ---- throws IOException, ClassNotFoundException { ClassLoader cl = currentLoader(); ! Class[] clss = new Class[intfs.length]; if(cl == null) { ! for (int i = 0; i < intfs.length; i++) ! clss[i] = Class.forName(intfs[i]); ! cl = ClassLoader.getSystemClassLoader(); } else for (int i = 0; i < intfs.length; i++) ! clss[i] = Class.forName(intfs[i], false, cl); ! try { ! return Proxy.getProxyClass(cl, clss); ! } ! catch (IllegalArgumentException e) { ! throw new ClassNotFoundException(null, e); } } ! /** * If enable is true and this object is * trusted, then resolveObject (Object) will be called *************** public class ObjectInputStream extends I *** 1016,1024 **** { if (enable) { ! SecurityManager sm = System.getSecurityManager(); ! if (sm != null) ! sm.checkPermission(new SerializablePermission("enableSubstitution")); } boolean old_val = this.resolveEnabled; --- 1016,1024 ---- { if (enable) { ! SecurityManager sm = System.getSecurityManager(); ! if (sm != null) ! sm.checkPermission(new SerializablePermission("enableSubstitution")); } boolean old_val = this.resolveEnabled; *************** public class ObjectInputStream extends I *** 1051,1059 **** { if (this.readDataFromBlock) { ! if (this.blockDataPosition >= this.blockDataBytes) ! readNextBlock(); ! return (this.blockData[this.blockDataPosition++] & 0xff); } else return this.realInputStream.read(); --- 1051,1059 ---- { if (this.readDataFromBlock) { ! if (this.blockDataPosition >= this.blockDataBytes) ! readNextBlock(); ! return (this.blockData[this.blockDataPosition++] & 0xff); } else return this.realInputStream.read(); *************** public class ObjectInputStream extends I *** 1070,1080 **** remain = this.blockDataBytes - this.blockDataPosition; } length = Math.min(length, remain); ! System.arraycopy(this.blockData, this.blockDataPosition, ! data, offset, length); ! this.blockDataPosition += length; ! return length; } else return this.realInputStream.read(data, offset, length); --- 1070,1080 ---- remain = this.blockDataBytes - this.blockDataPosition; } length = Math.min(length, remain); ! System.arraycopy(this.blockData, this.blockDataPosition, ! data, offset, length); ! this.blockDataPosition += length; ! return length; } else return this.realInputStream.read(data, offset, length); *************** public class ObjectInputStream extends I *** 1084,1093 **** { if (this.readDataFromBlock) { ! if (this.blockDataPosition >= this.blockDataBytes) ! readNextBlock (); ! return this.blockDataBytes - this.blockDataPosition; } else return this.realInputStream.available(); --- 1084,1093 ---- { if (this.readDataFromBlock) { ! if (this.blockDataPosition >= this.blockDataBytes) ! readNextBlock (); ! return this.blockDataBytes - this.blockDataPosition; } else return this.realInputStream.available(); *************** public class ObjectInputStream extends I *** 1318,1325 **** * * @return A valid freshly created 'GetField' instance to get access to * the deserialized stream. ! * @throws IOException An input/output exception occured. ! * @throws ClassNotFoundException * @throws NotActiveException */ public GetField readFields() --- 1318,1325 ---- * * @return A valid freshly created 'GetField' instance to get access to * the deserialized stream. ! * @throws IOException An input/output exception occured. ! * @throws ClassNotFoundException * @throws NotActiveException */ public GetField readFields() *************** public class ObjectInputStream extends I *** 1333,1339 **** if (fieldsAlreadyRead) throw new NotActiveException("readFields called but fields already read from" ! + " stream (by defaultReadObject or readFields)"); final ObjectStreamClass clazz = this.currentObjectStreamClass; final byte[] prim_field_data = new byte[clazz.primFieldSize]; --- 1333,1339 ---- if (fieldsAlreadyRead) throw new NotActiveException("readFields called but fields already read from" ! + " stream (by defaultReadObject or readFields)"); final ObjectStreamClass clazz = this.currentObjectStreamClass; final byte[] prim_field_data = new byte[clazz.primFieldSize]; *************** public class ObjectInputStream extends I *** 1350,1596 **** prereadFields = new GetField() { ! public ObjectStreamClass getObjectStreamClass() ! { ! return clazz; ! } ! public boolean defaulted(String name) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField f = clazz.getField(name); ! ! /* First if we have a serialized field use the descriptor */ ! if (f != null) ! { ! /* It is in serialPersistentFields but setClass tells us ! * it should not be set. This value is defaulted. ! */ ! if (f.isPersistent() && !f.isToSet()) ! return true; ! ! return false; ! } ! /* This is not a serialized field. There should be ! * a default value only if the field really exists. ! */ ! try ! { ! return (clazz.forClass().getDeclaredField (name) != null); ! } ! catch (NoSuchFieldException e) ! { ! throw new IllegalArgumentException(e); ! } ! } ! public boolean get(String name, boolean defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Boolean.TYPE); ! if (field == null) ! return defvalue; ! return prim_field_data[field.getOffset()] == 0 ? false : true; ! } ! public char get(String name, char defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Character.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return (char)(((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF)); ! } ! public byte get(String name, byte defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Byte.TYPE); ! if (field == null) ! return defvalue; ! return prim_field_data[field.getOffset()]; ! } ! public short get(String name, short defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Short.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return (short)(((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF)); ! } ! public int get(String name, int defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Integer.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return ((prim_field_data[off++] & 0xFF) << 24) ! | ((prim_field_data[off++] & 0xFF) << 16) ! | ((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF); ! } ! public long get(String name, long defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Long.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return (long)(((prim_field_data[off++] & 0xFFL) << 56) ! | ((prim_field_data[off++] & 0xFFL) << 48) ! | ((prim_field_data[off++] & 0xFFL) << 40) ! | ((prim_field_data[off++] & 0xFFL) << 32) ! | ((prim_field_data[off++] & 0xFF) << 24) ! | ((prim_field_data[off++] & 0xFF) << 16) ! | ((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF)); ! } ! public float get(String name, float defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Float.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return Float.intBitsToFloat(((prim_field_data[off++] & 0xFF) << 24) ! | ((prim_field_data[off++] & 0xFF) << 16) ! | ((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF)); ! } ! public double get(String name, double defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Double.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return Double.longBitsToDouble ! ( (long) (((prim_field_data[off++] & 0xFFL) << 56) ! | ((prim_field_data[off++] & 0xFFL) << 48) ! | ((prim_field_data[off++] & 0xFFL) << 40) ! | ((prim_field_data[off++] & 0xFFL) << 32) ! | ((prim_field_data[off++] & 0xFF) << 24) ! | ((prim_field_data[off++] & 0xFF) << 16) ! | ((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF))); ! } ! public Object get(String name, Object defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = ! getField(name, defvalue == null ? null : defvalue.getClass ()); ! if (field == null) ! return defvalue; ! return objs[field.getOffset()]; ! } ! private ObjectStreamField getField(String name, Class type) ! throws IllegalArgumentException ! { ! ObjectStreamField field = clazz.getField(name); ! boolean illegal = false; // XXX This code is horrible and needs to be rewritten! ! try ! { ! try ! { ! Class field_type = field.getType(); ! ! if (type == field_type || ! (type == null && !field_type.isPrimitive())) ! { ! /* See defaulted */ ! return field; ! } ! ! illegal = true; ! throw new IllegalArgumentException ! ("Field requested is of type " ! + field_type.getName() ! + ", but requested type was " ! + (type == null ? "Object" : type.getName())); ! } ! catch (NullPointerException _) ! { ! /* Here we catch NullPointerException, because it may ! only come from the call 'field.getType()'. If field ! is null, we have to return null and classpath ethic ! say we must try to avoid 'if (xxx == null)'. ! */ ! } ! catch (IllegalArgumentException e) ! { ! throw e; ! } ! ! return null; ! } ! finally ! { ! /* If this is an unassigned field we should return ! * the default value. ! */ ! if (!illegal && field != null && !field.isToSet() && field.isPersistent()) ! return null; ! /* We do not want to modify transient fields. They should ! * be left to 0. ! */ ! try ! { ! Field f = clazz.forClass().getDeclaredField(name); ! if (Modifier.isTransient(f.getModifiers())) ! throw new IllegalArgumentException ! ("no such field (non transient) " + name); ! if (field == null && f.getType() != type) ! throw new IllegalArgumentException ! ("Invalid requested type for field " + name); ! } ! catch (NoSuchFieldException e) ! { ! if (field == null) ! throw new IllegalArgumentException(e); ! } ! ! } ! } }; fieldsAlreadyRead = true; --- 1350,1596 ---- prereadFields = new GetField() { ! public ObjectStreamClass getObjectStreamClass() ! { ! return clazz; ! } ! public boolean defaulted(String name) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField f = clazz.getField(name); ! /* First if we have a serialized field use the descriptor */ ! if (f != null) ! { ! /* It is in serialPersistentFields but setClass tells us ! * it should not be set. This value is defaulted. ! */ ! if (f.isPersistent() && !f.isToSet()) ! return true; ! return false; ! } ! /* This is not a serialized field. There should be ! * a default value only if the field really exists. ! */ ! try ! { ! return (clazz.forClass().getDeclaredField (name) != null); ! } ! catch (NoSuchFieldException e) ! { ! throw new IllegalArgumentException(e); ! } ! } ! public boolean get(String name, boolean defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Boolean.TYPE); ! if (field == null) ! return defvalue; ! return prim_field_data[field.getOffset()] == 0 ? false : true; ! } ! public char get(String name, char defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Character.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return (char)(((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF)); ! } ! public byte get(String name, byte defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Byte.TYPE); ! if (field == null) ! return defvalue; ! return prim_field_data[field.getOffset()]; ! } ! public short get(String name, short defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Short.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return (short)(((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF)); ! } ! public int get(String name, int defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Integer.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return ((prim_field_data[off++] & 0xFF) << 24) ! | ((prim_field_data[off++] & 0xFF) << 16) ! | ((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF); ! } ! public long get(String name, long defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Long.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return (long)(((prim_field_data[off++] & 0xFFL) << 56) ! | ((prim_field_data[off++] & 0xFFL) << 48) ! | ((prim_field_data[off++] & 0xFFL) << 40) ! | ((prim_field_data[off++] & 0xFFL) << 32) ! | ((prim_field_data[off++] & 0xFF) << 24) ! | ((prim_field_data[off++] & 0xFF) << 16) ! | ((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF)); ! } ! public float get(String name, float defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Float.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return Float.intBitsToFloat(((prim_field_data[off++] & 0xFF) << 24) ! | ((prim_field_data[off++] & 0xFF) << 16) ! | ((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF)); ! } ! public double get(String name, double defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = getField(name, Double.TYPE); ! if (field == null) ! return defvalue; ! int off = field.getOffset(); ! return Double.longBitsToDouble ! ( (long) (((prim_field_data[off++] & 0xFFL) << 56) ! | ((prim_field_data[off++] & 0xFFL) << 48) ! | ((prim_field_data[off++] & 0xFFL) << 40) ! | ((prim_field_data[off++] & 0xFFL) << 32) ! | ((prim_field_data[off++] & 0xFF) << 24) ! | ((prim_field_data[off++] & 0xFF) << 16) ! | ((prim_field_data[off++] & 0xFF) << 8) ! | (prim_field_data[off] & 0xFF))); ! } ! public Object get(String name, Object defvalue) ! throws IOException, IllegalArgumentException ! { ! ObjectStreamField field = ! getField(name, defvalue == null ? null : defvalue.getClass ()); ! if (field == null) ! return defvalue; ! ! return objs[field.getOffset()]; ! } ! ! private ObjectStreamField getField(String name, Class type) ! throws IllegalArgumentException ! { ! ObjectStreamField field = clazz.getField(name); ! boolean illegal = false; // XXX This code is horrible and needs to be rewritten! ! try ! { ! try ! { ! Class field_type = field.getType(); ! if (type == field_type || ! (type == null && !field_type.isPrimitive())) ! { ! /* See defaulted */ ! return field; ! } ! ! illegal = true; ! throw new IllegalArgumentException ! ("Field requested is of type " ! + field_type.getName() ! + ", but requested type was " ! + (type == null ? "Object" : type.getName())); ! } ! catch (NullPointerException _) ! { ! /* Here we catch NullPointerException, because it may ! only come from the call 'field.getType()'. If field ! is null, we have to return null and classpath ethic ! say we must try to avoid 'if (xxx == null)'. ! */ ! } ! catch (IllegalArgumentException e) ! { ! throw e; ! } ! ! return null; ! } ! finally ! { ! /* If this is an unassigned field we should return ! * the default value. ! */ ! if (!illegal && field != null && !field.isToSet() && field.isPersistent()) ! return null; ! ! /* We do not want to modify transient fields. They should ! * be left to 0. ! */ ! try ! { ! Field f = clazz.forClass().getDeclaredField(name); ! if (Modifier.isTransient(f.getModifiers())) ! throw new IllegalArgumentException ! ("no such field (non transient) " + name); ! if (field == null && f.getType() != type) ! throw new IllegalArgumentException ! ("Invalid requested type for field " + name); ! } ! catch (NoSuchFieldException e) ! { ! if (field == null) ! throw new IllegalArgumentException(e); ! } ! ! } ! } }; fieldsAlreadyRead = true; *************** public class ObjectInputStream extends I *** 1659,1669 **** * @see #lookupHandle */ private void rememberHandle(Object obj, boolean shared, ! int handle) { handles.put(handle, new Pair(shared, obj)); } ! /** * Look up the object associated with a given handle. * --- 1659,1669 ---- * @see #lookupHandle */ private void rememberHandle(Object obj, boolean shared, ! int handle) { handles.put(handle, new Pair(shared, obj)); } ! /** * Look up the object associated with a given handle. * *************** public class ObjectInputStream extends I *** 1678,1720 **** { Pair result = handles.get(handle); if (result == null) ! throw new StreamCorruptedException("The handle, " + ! Integer.toHexString(handle) + ! ", is invalid."); if (!result.getLeft()) ! throw new InvalidObjectException("The handle, " + ! Integer.toHexString(handle) + ! ", is not shared."); return result.getRight(); } private Object processResolution(ObjectStreamClass osc, Object obj, int handle, ! boolean shared) throws IOException { if (osc != null && obj instanceof Serializable) { ! try ! { ! Method m = osc.readResolveMethod; ! if(m != null) ! { ! obj = m.invoke(obj, new Object[] {}); ! } ! } ! catch (IllegalAccessException ignore) ! { ! } ! catch (InvocationTargetException exception) ! { ! Throwable cause = exception.getCause(); ! if (cause instanceof ObjectStreamException) ! throw (ObjectStreamException) cause; ! else if (cause instanceof RuntimeException) ! throw (RuntimeException) cause; ! else if (cause instanceof Error) ! throw (Error) cause; ! } } if (this.resolveEnabled) --- 1678,1720 ---- { Pair result = handles.get(handle); if (result == null) ! throw new StreamCorruptedException("The handle, " + ! Integer.toHexString(handle) + ! ", is invalid."); if (!result.getLeft()) ! throw new InvalidObjectException("The handle, " + ! Integer.toHexString(handle) + ! ", is not shared."); return result.getRight(); } private Object processResolution(ObjectStreamClass osc, Object obj, int handle, ! boolean shared) throws IOException { if (osc != null && obj instanceof Serializable) { ! try ! { ! Method m = osc.readResolveMethod; ! if(m != null) ! { ! obj = m.invoke(obj, new Object[] {}); ! } ! } ! catch (IllegalAccessException ignore) ! { ! } ! catch (InvocationTargetException exception) ! { ! Throwable cause = exception.getCause(); ! if (cause instanceof ObjectStreamException) ! throw (ObjectStreamException) cause; ! else if (cause instanceof RuntimeException) ! throw (RuntimeException) cause; ! else if (cause instanceof Error) ! throw (Error) cause; ! } } if (this.resolveEnabled) *************** public class ObjectInputStream extends I *** 1723,1746 **** rememberHandle(obj, shared, handle); if (!shared) { ! if (obj instanceof byte[]) ! return ((byte[]) obj).clone(); ! if (obj instanceof short[]) ! return ((short[]) obj).clone(); ! if (obj instanceof int[]) ! return ((int[]) obj).clone(); ! if (obj instanceof long[]) ! return ((long[]) obj).clone(); ! if (obj instanceof char[]) ! return ((char[]) obj).clone(); ! if (obj instanceof boolean[]) ! return ((boolean[]) obj).clone(); ! if (obj instanceof float[]) ! return ((float[]) obj).clone(); ! if (obj instanceof double[]) ! return ((double[]) obj).clone(); ! if (obj instanceof Object[]) ! return ((Object[]) obj).clone(); } return obj; } --- 1723,1746 ---- rememberHandle(obj, shared, handle); if (!shared) { ! if (obj instanceof byte[]) ! return ((byte[]) obj).clone(); ! if (obj instanceof short[]) ! return ((short[]) obj).clone(); ! if (obj instanceof int[]) ! return ((int[]) obj).clone(); ! if (obj instanceof long[]) ! return ((long[]) obj).clone(); ! if (obj instanceof char[]) ! return ((char[]) obj).clone(); ! if (obj instanceof boolean[]) ! return ((boolean[]) obj).clone(); ! if (obj instanceof float[]) ! return ((float[]) obj).clone(); ! if (obj instanceof double[]) ! return ((double[]) obj).clone(); ! if (obj instanceof Object[]) ! return ((Object[]) obj).clone(); } return obj; } *************** public class ObjectInputStream extends I *** 1767,1785 **** { if (marker == TC_BLOCKDATA) { ! if(dump) dumpElement("BLOCK DATA SIZE="); ! this.blockDataBytes = this.realInputStream.readUnsignedByte(); ! if(dump) dumpElementln (Integer.toString(this.blockDataBytes)); } else if (marker == TC_BLOCKDATALONG) { ! if(dump) dumpElement("BLOCK DATA LONG SIZE="); ! this.blockDataBytes = this.realInputStream.readInt(); ! if(dump) dumpElementln (Integer.toString(this.blockDataBytes)); } else { ! throw new EOFException("Attempt to read primitive data, but no data block is active."); } if (this.blockData.length < this.blockDataBytes) --- 1767,1785 ---- { if (marker == TC_BLOCKDATA) { ! if(dump) dumpElement("BLOCK DATA SIZE="); ! this.blockDataBytes = this.realInputStream.readUnsignedByte(); ! if(dump) dumpElementln (Integer.toString(this.blockDataBytes)); } else if (marker == TC_BLOCKDATALONG) { ! if(dump) dumpElement("BLOCK DATA LONG SIZE="); ! this.blockDataBytes = this.realInputStream.readInt(); ! if(dump) dumpElementln (Integer.toString(this.blockDataBytes)); } else { ! throw new EOFException("Attempt to read primitive data, but no data block is active."); } if (this.blockData.length < this.blockDataBytes) *************** public class ObjectInputStream extends I *** 1794,1861 **** { if (clazz.isPrimitive()) { ! if (clazz == Boolean.TYPE) ! { ! boolean[] cast_array = (boolean[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readBoolean(); ! return; ! } ! if (clazz == Byte.TYPE) ! { ! byte[] cast_array = (byte[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readByte(); ! return; ! } ! if (clazz == Character.TYPE) ! { ! char[] cast_array = (char[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readChar(); ! return; ! } ! if (clazz == Double.TYPE) ! { ! double[] cast_array = (double[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readDouble(); ! return; ! } ! if (clazz == Float.TYPE) ! { ! float[] cast_array = (float[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readFloat(); ! return; ! } ! if (clazz == Integer.TYPE) ! { ! int[] cast_array = (int[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readInt(); ! return; ! } ! if (clazz == Long.TYPE) ! { ! long[] cast_array = (long[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readLong(); ! return; ! } ! if (clazz == Short.TYPE) ! { ! short[] cast_array = (short[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readShort(); ! return; ! } } else { ! Object[] cast_array = (Object[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = readObject(); } } --- 1794,1861 ---- { if (clazz.isPrimitive()) { ! if (clazz == Boolean.TYPE) ! { ! boolean[] cast_array = (boolean[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readBoolean(); ! return; ! } ! if (clazz == Byte.TYPE) ! { ! byte[] cast_array = (byte[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readByte(); ! return; ! } ! if (clazz == Character.TYPE) ! { ! char[] cast_array = (char[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readChar(); ! return; ! } ! if (clazz == Double.TYPE) ! { ! double[] cast_array = (double[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readDouble(); ! return; ! } ! if (clazz == Float.TYPE) ! { ! float[] cast_array = (float[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readFloat(); ! return; ! } ! if (clazz == Integer.TYPE) ! { ! int[] cast_array = (int[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readInt(); ! return; ! } ! if (clazz == Long.TYPE) ! { ! long[] cast_array = (long[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readLong(); ! return; ! } ! if (clazz == Short.TYPE) ! { ! short[] cast_array = (short[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = this.realInputStream.readShort(); ! return; ! } } else { ! Object[] cast_array = (Object[])array; ! for (int i=0; i < cast_array.length; i++) ! cast_array[i] = readObject(); } } *************** public class ObjectInputStream extends I *** 1866,1986 **** for (int i = 0; i < fields.length; i += 2) { ! ObjectStreamField stream_field = fields[i]; ! ObjectStreamField real_field = fields[i + 1]; ! boolean read_value = (stream_field != null && stream_field.getOffset() >= 0 && stream_field.isToSet()); ! boolean set_value = (real_field != null && real_field.isToSet()); ! String field_name; ! char type; ! if (stream_field != null) ! { ! field_name = stream_field.getName(); ! type = stream_field.getTypeCode(); ! } ! else ! { ! field_name = real_field.getName(); ! type = real_field.getTypeCode(); ! } ! ! switch(type) ! { ! case 'Z': ! { ! boolean value = ! read_value ? this.realInputStream.readBoolean() : false; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setBooleanField(obj, value); ! break; ! } ! case 'B': ! { ! byte value = ! read_value ? this.realInputStream.readByte() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setByteField(obj, value); ! break; ! } ! case 'C': ! { ! char value = ! read_value ? this.realInputStream.readChar(): 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setCharField(obj, value); ! break; ! } ! case 'D': ! { ! double value = ! read_value ? this.realInputStream.readDouble() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setDoubleField(obj, value); ! break; ! } ! case 'F': ! { ! float value = ! read_value ? this.realInputStream.readFloat() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setFloatField(obj, value); ! break; ! } ! case 'I': ! { ! int value = ! read_value ? this.realInputStream.readInt() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setIntField(obj, value); ! break; ! } ! case 'J': ! { ! long value = ! read_value ? this.realInputStream.readLong() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setLongField(obj, value); ! break; ! } ! case 'S': ! { ! short value = ! read_value ? this.realInputStream.readShort() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setShortField(obj, value); ! break; ! } ! case 'L': ! case '[': ! { ! Object value = ! read_value ? readObject() : null; ! if (set_value) ! real_field.setObjectField(obj, value); ! break; ! } ! default: ! throw new InternalError("Invalid type code: " + type); ! } } } ! // Toggles writing primitive data to block-data buffer. private boolean setBlockDataMode (boolean on) { --- 1866,1986 ---- for (int i = 0; i < fields.length; i += 2) { ! ObjectStreamField stream_field = fields[i]; ! ObjectStreamField real_field = fields[i + 1]; ! boolean read_value = (stream_field != null && stream_field.getOffset() >= 0 && stream_field.isToSet()); ! boolean set_value = (real_field != null && real_field.isToSet()); ! String field_name; ! char type; ! if (stream_field != null) ! { ! field_name = stream_field.getName(); ! type = stream_field.getTypeCode(); ! } ! else ! { ! field_name = real_field.getName(); ! type = real_field.getTypeCode(); ! } ! ! switch(type) ! { ! case 'Z': ! { ! boolean value = ! read_value ? this.realInputStream.readBoolean() : false; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setBooleanField(obj, value); ! break; ! } ! case 'B': ! { ! byte value = ! read_value ? this.realInputStream.readByte() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setByteField(obj, value); ! break; ! } ! case 'C': ! { ! char value = ! read_value ? this.realInputStream.readChar(): 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setCharField(obj, value); ! break; ! } ! case 'D': ! { ! double value = ! read_value ? this.realInputStream.readDouble() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setDoubleField(obj, value); ! break; ! } ! case 'F': ! { ! float value = ! read_value ? this.realInputStream.readFloat() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setFloatField(obj, value); ! break; ! } ! case 'I': ! { ! int value = ! read_value ? this.realInputStream.readInt() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setIntField(obj, value); ! break; ! } ! case 'J': ! { ! long value = ! read_value ? this.realInputStream.readLong() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setLongField(obj, value); ! break; ! } ! case 'S': ! { ! short value = ! read_value ? this.realInputStream.readShort() : 0; ! if (dump && read_value && set_value) ! dumpElementln(" " + field_name + ": " + value); ! if (set_value) ! real_field.setShortField(obj, value); ! break; ! } ! case 'L': ! case '[': ! { ! Object value = ! read_value ? readObject() : null; ! if (set_value) ! real_field.setObjectField(obj, value); ! break; ! } ! default: ! throw new InternalError("Invalid type code: " + type); ! } } } ! // Toggles writing primitive data to block-data buffer. private boolean setBlockDataMode (boolean on) { *************** public class ObjectInputStream extends I *** 2000,2009 **** throws ClassNotFoundException, IOException { if (constructor == null) ! throw new InvalidClassException("Missing accessible no-arg base class constructor for " + real_class.getName()); try { ! return VMObjectInputStream.allocateObject(real_class, constructor.getDeclaringClass(), constructor); } catch (InstantiationException e) { --- 2000,2009 ---- throws ClassNotFoundException, IOException { if (constructor == null) ! throw new InvalidClassException("Missing accessible no-arg base class constructor for " + real_class.getName()); try { ! return VMObjectInputStream.allocateObject(real_class, constructor.getDeclaringClass(), constructor); } catch (InstantiationException e) { *************** public class ObjectInputStream extends I *** 2018,2034 **** { try { ! Iterator it = currentObjectValidators.iterator(); ! while(it.hasNext()) ! { ! ValidatorAndPriority vap = it.next(); ! ObjectInputValidation validator = vap.validator; ! validator.validateObject(); ! } } finally { ! currentObjectValidators = null; } } --- 2018,2034 ---- { try { ! Iterator it = currentObjectValidators.iterator(); ! while(it.hasNext()) ! { ! ValidatorAndPriority vap = it.next(); ! ObjectInputValidation validator = vap.validator; ! validator.validateObject(); ! } } finally { ! currentObjectValidators = null; } } *************** public class ObjectInputStream extends I *** 2037,2068 **** { try { ! readObject.invoke(obj, new Object[] { this }); } catch (InvocationTargetException x) { /* Rethrow if possible. */ ! Throwable exception = x.getTargetException(); ! if (exception instanceof RuntimeException) ! throw (RuntimeException) exception; ! if (exception instanceof IOException) ! throw (IOException) exception; if (exception instanceof ClassNotFoundException) throw (ClassNotFoundException) exception; ! throw (IOException) new IOException( ! "Exception thrown from readObject() on " + klass).initCause(x); } catch (Exception x) { ! throw (IOException) new IOException( ! "Failure invoking readObject() on " + klass).initCause(x); } // Invalidate fields which has been read through readFields. prereadFields = null; } ! private static final int BUFFER_SIZE = 1024; private DataInputStream realInputStream; --- 2037,2068 ---- { try { ! readObject.invoke(obj, new Object[] { this }); } catch (InvocationTargetException x) { /* Rethrow if possible. */ ! Throwable exception = x.getTargetException(); ! if (exception instanceof RuntimeException) ! throw (RuntimeException) exception; ! if (exception instanceof IOException) ! throw (IOException) exception; if (exception instanceof ClassNotFoundException) throw (ClassNotFoundException) exception; ! throw (IOException) new IOException( ! "Exception thrown from readObject() on " + klass).initCause(x); } catch (Exception x) { ! throw (IOException) new IOException( ! "Failure invoking readObject() on " + klass).initCause(x); } // Invalidate fields which has been read through readFields. prereadFields = null; } ! private static final int BUFFER_SIZE = 1024; private DataInputStream realInputStream; *************** public class ObjectInputStream extends I *** 2094,2100 **** { System.out.print(msg); } ! private void dumpElementln (String msg) { System.out.println(msg); --- 2094,2100 ---- { System.out.print(msg); } ! private void dumpElementln (String msg) { System.out.println(msg); *************** public class ObjectInputStream extends I *** 2107,2117 **** { try { ! System.out.print(msg); ! if (java.lang.reflect.Proxy.isProxyClass(obj.getClass())) ! System.out.println(obj.getClass()); ! else ! System.out.println(obj); } catch (Exception _) { --- 2107,2117 ---- { try { ! System.out.print(msg); ! if (java.lang.reflect.Proxy.isProxyClass(obj.getClass())) ! System.out.println(obj.getClass()); ! else ! System.out.println(obj); } catch (Exception _) { *************** public class ObjectInputStream extends I *** 2140,2143 **** } } } - --- 2140,2142 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ObjectInputValidation.java gcc-4.6.0/libjava/classpath/java/io/ObjectInputValidation.java *** gcc-4.5.2/libjava/classpath/java/io/ObjectInputValidation.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/ObjectInputValidation.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ObjectInputValidation.java -- Validate an object Copyright (C) 1998, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ObjectInputValidation.java -- Validate an object Copyright (C) 1998, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** obligated to do so. If you do not wish *** 36,42 **** exception statement from your version. */ ! package java.io; /** * This class allows an object to validate that it is valid after --- 36,42 ---- exception statement from your version. */ ! package java.io; /** * This class allows an object to validate that it is valid after *************** package java.io; *** 46,52 **** * be used to perform re-initialization type activities on an object * after it has been completely deserialized. * ! * Since this method functions as a type of callback, it must be * registered through ObjectInputStream.registerValidation * in order to be invoked. This is typically done in the * readObject method. --- 46,52 ---- * be used to perform re-initialization type activities on an object * after it has been completely deserialized. * ! * Since this method functions as a type of callback, it must be * registered through ObjectInputStream.registerValidation * in order to be invoked. This is typically done in the * readObject method. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ObjectOutput.java gcc-4.6.0/libjava/classpath/java/io/ObjectOutput.java *** gcc-4.5.2/libjava/classpath/java/io/ObjectOutput.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/ObjectOutput.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 41,47 **** /** * This interface extends DataOutput to provide the additional * facility of writing object instances to a stream. It also adds some ! * additional methods to make the interface more * OutputStream like. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 41,47 ---- /** * This interface extends DataOutput to provide the additional * facility of writing object instances to a stream. It also adds some ! * additional methods to make the interface more * OutputStream like. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** public interface ObjectOutput extends Da *** 64,70 **** * output stream. * * @param buf The array of bytes to write. ! * * @exception IOException If an error occurs. */ void write(byte[] buf) throws IOException; --- 64,70 ---- * output stream. * * @param buf The array of bytes to write. ! * * @exception IOException If an error occurs. */ void write(byte[] buf) throws IOException; *************** public interface ObjectOutput extends Da *** 79,85 **** * * @exception IOException If an error occurs. */ ! void write(byte[] buf, int offset, int len) throws IOException; /** --- 79,85 ---- * * @exception IOException If an error occurs. */ ! void write(byte[] buf, int offset, int len) throws IOException; /** *************** public interface ObjectOutput extends Da *** 108,111 **** void close() throws IOException; } // interface ObjectOutput - --- 108,110 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ObjectOutputStream.java gcc-4.6.0/libjava/classpath/java/io/ObjectOutputStream.java *** gcc-4.5.2/libjava/classpath/java/io/ObjectOutputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/ObjectOutputStream.java Tue Jan 11 19:46:05 2011 *************** public class ObjectOutputStream extends *** 151,159 **** if (DEBUG) { ! String val = System.getProperty("gcj.dumpobjects"); ! if (val != null && !val.equals("")) ! dump = true; } } --- 151,159 ---- if (DEBUG) { ! String val = System.getProperty("gcj.dumpobjects"); ! if (val != null && !val.equals("")) ! dump = true; } } *************** public class ObjectOutputStream extends *** 246,506 **** { if (useSubclassMethod) { ! if (dump) ! dumpElementln ("WRITE OVERRIDE: " + obj); ! ! writeObjectOverride(obj); ! return; } if (dump) dumpElementln ("WRITE: ", obj); ! ! depth += 2; boolean was_serializing = isSerializing; boolean old_mode = setBlockDataMode(false); try { ! isSerializing = true; ! boolean replaceDone = false; ! Object replacedObject = null; ! ! while (true) ! { ! if (obj == null) ! { ! realOutput.writeByte(TC_NULL); ! break; ! } ! int handle = findHandle(obj); ! if (handle >= 0 && shared) ! { ! realOutput.writeByte(TC_REFERENCE); ! realOutput.writeInt(handle); ! break; ! } ! if (obj instanceof Class) ! { ! Class cl = (Class)obj; ! ObjectStreamClass osc = ObjectStreamClass.lookupForClassObject(cl); ! realOutput.writeByte(TC_CLASS); ! if (!osc.isProxyClass) ! { ! writeObject (osc); ! } ! else ! {System.err.println("1"); ! realOutput.writeByte(TC_PROXYCLASSDESC); ! Class[] intfs = cl.getInterfaces(); ! realOutput.writeInt(intfs.length); ! for (int i = 0; i < intfs.length; i++) ! realOutput.writeUTF(intfs[i].getName()); ! ! boolean oldmode = setBlockDataMode(true); ! annotateProxyClass(cl); ! setBlockDataMode(oldmode); ! realOutput.writeByte(TC_ENDBLOCKDATA); ! ! writeObject(osc.getSuper()); ! } ! if (shared) ! assignNewHandle(obj); ! break; ! } ! if (obj instanceof ObjectStreamClass) ! { ! writeClassDescriptor((ObjectStreamClass) obj); ! break; ! } ! Class clazz = obj.getClass(); ! ObjectStreamClass osc = ObjectStreamClass.lookupForClassObject(clazz); ! if (osc == null) ! throw new NotSerializableException(clazz.getName()); ! if (osc.isEnum()) ! { ! /* TC_ENUM classDesc newHandle enumConstantName */ ! realOutput.writeByte(TC_ENUM); ! writeObject(osc); ! if (shared) ! assignNewHandle(obj); ! writeObject(((Enum) obj).name()); ! break; ! } ! if ((replacementEnabled || obj instanceof Serializable) ! && ! replaceDone) ! { ! replacedObject = obj; ! ! if (obj instanceof Serializable) ! { ! try ! { Method m = osc.writeReplaceMethod; if (m != null) obj = m.invoke(obj, new Object[0]); ! } ! catch (IllegalAccessException ignore) ! { ! } ! catch (InvocationTargetException ignore) ! { ! } ! } ! ! if (replacementEnabled) ! obj = replaceObject(obj); ! ! replaceDone = true; ! continue; ! } ! if (obj instanceof String) ! { String s = (String)obj; long l = realOutput.getUTFlength(s, 0, 0); if (l <= 65535) { ! realOutput.writeByte(TC_STRING); ! if (shared) ! assignNewHandle(obj); ! realOutput.writeUTFShort(s, (int)l); } else { ! realOutput.writeByte(TC_LONGSTRING); ! if (shared) ! assignNewHandle(obj); ! realOutput.writeUTFLong(s, l); } ! break; ! } ! if (clazz.isArray ()) ! { ! realOutput.writeByte(TC_ARRAY); ! writeObject(osc); ! if (shared) ! assignNewHandle(obj); ! writeArraySizeAndElements(obj, clazz.getComponentType()); ! break; ! } ! ! realOutput.writeByte(TC_OBJECT); ! writeObject(osc); ! if (shared) ! if (replaceDone) ! assignNewHandle(replacedObject); ! else ! assignNewHandle(obj); ! ! if (obj instanceof Externalizable) ! { ! if (protocolVersion == PROTOCOL_VERSION_2) ! setBlockDataMode(true); ! ! ((Externalizable)obj).writeExternal(this); ! ! if (protocolVersion == PROTOCOL_VERSION_2) ! { ! setBlockDataMode(false); ! realOutput.writeByte(TC_ENDBLOCKDATA); ! } ! break; ! } ! if (obj instanceof Serializable) ! { ! Object prevObject = this.currentObject; ! ObjectStreamClass prevObjectStreamClass = this.currentObjectStreamClass; ! currentObject = obj; ! ObjectStreamClass[] hierarchy = osc.hierarchy(); ! ! for (int i = 0; i < hierarchy.length; i++) ! { ! currentObjectStreamClass = hierarchy[i]; ! ! fieldsAlreadyWritten = false; ! if (currentObjectStreamClass.hasWriteMethod()) ! { ! if (dump) ! dumpElementln ("WRITE METHOD CALLED FOR: ", obj); ! setBlockDataMode(true); ! callWriteMethod(obj, currentObjectStreamClass); ! setBlockDataMode(false); ! realOutput.writeByte(TC_ENDBLOCKDATA); ! if (dump) ! dumpElementln ("WRITE ENDBLOCKDATA FOR: ", obj); ! } ! else ! { ! if (dump) ! dumpElementln ("WRITE FIELDS CALLED FOR: ", obj); ! writeFields(obj, currentObjectStreamClass); ! } ! } ! this.currentObject = prevObject; ! this.currentObjectStreamClass = prevObjectStreamClass; ! currentPutField = null; ! break; ! } ! throw new NotSerializableException(clazz.getName() ! + " in " ! + obj.getClass()); ! } // end pseudo-loop } catch (ObjectStreamException ose) { ! // Rethrow these are fatal. ! throw ose; } catch (IOException e) { ! realOutput.writeByte(TC_EXCEPTION); ! reset(true); ! setBlockDataMode(false); ! try ! { ! if (DEBUG) ! { ! e.printStackTrace(System.out); ! } ! writeObject(e); ! } ! catch (IOException ioe) ! { ! StreamCorruptedException ex = ! new StreamCorruptedException ! (ioe + " thrown while exception was being written to stream."); ! if (DEBUG) ! { ! ex.printStackTrace(System.out); ! } ! throw ex; ! } - reset (true); - } finally { ! isSerializing = was_serializing; ! setBlockDataMode(old_mode); ! depth -= 2; ! if (dump) ! dumpElementln ("END: ", obj); } } --- 246,506 ---- { if (useSubclassMethod) { ! if (dump) ! dumpElementln ("WRITE OVERRIDE: " + obj); ! ! writeObjectOverride(obj); ! return; } if (dump) dumpElementln ("WRITE: ", obj); ! ! depth += 2; boolean was_serializing = isSerializing; boolean old_mode = setBlockDataMode(false); try { ! isSerializing = true; ! boolean replaceDone = false; ! Object replacedObject = null; ! while (true) ! { ! if (obj == null) ! { ! realOutput.writeByte(TC_NULL); ! break; ! } ! int handle = findHandle(obj); ! if (handle >= 0 && shared) ! { ! realOutput.writeByte(TC_REFERENCE); ! realOutput.writeInt(handle); ! break; ! } ! if (obj instanceof Class) ! { ! Class cl = (Class)obj; ! ObjectStreamClass osc = ObjectStreamClass.lookupForClassObject(cl); ! realOutput.writeByte(TC_CLASS); ! if (!osc.isProxyClass) ! { ! writeObject (osc); ! } ! else ! {System.err.println("1"); ! realOutput.writeByte(TC_PROXYCLASSDESC); ! Class[] intfs = cl.getInterfaces(); ! realOutput.writeInt(intfs.length); ! for (int i = 0; i < intfs.length; i++) ! realOutput.writeUTF(intfs[i].getName()); ! boolean oldmode = setBlockDataMode(true); ! annotateProxyClass(cl); ! setBlockDataMode(oldmode); ! realOutput.writeByte(TC_ENDBLOCKDATA); ! writeObject(osc.getSuper()); ! } ! if (shared) ! assignNewHandle(obj); ! break; ! } ! if (obj instanceof ObjectStreamClass) ! { ! writeClassDescriptor((ObjectStreamClass) obj); ! break; ! } ! ! Class clazz = obj.getClass(); ! ObjectStreamClass osc = ObjectStreamClass.lookupForClassObject(clazz); ! if (osc == null) ! throw new NotSerializableException(clazz.getName()); ! ! if (osc.isEnum()) ! { ! /* TC_ENUM classDesc newHandle enumConstantName */ ! realOutput.writeByte(TC_ENUM); ! writeObject(osc); ! if (shared) ! assignNewHandle(obj); ! writeObject(((Enum) obj).name()); ! break; ! } ! ! if ((replacementEnabled || obj instanceof Serializable) ! && ! replaceDone) ! { ! replacedObject = obj; ! ! if (obj instanceof Serializable) ! { ! try ! { Method m = osc.writeReplaceMethod; if (m != null) obj = m.invoke(obj, new Object[0]); ! } ! catch (IllegalAccessException ignore) ! { ! } ! catch (InvocationTargetException ignore) ! { ! } ! } ! if (replacementEnabled) ! obj = replaceObject(obj); ! ! replaceDone = true; ! continue; ! } ! ! if (obj instanceof String) ! { String s = (String)obj; long l = realOutput.getUTFlength(s, 0, 0); if (l <= 65535) { ! realOutput.writeByte(TC_STRING); ! if (shared) ! assignNewHandle(obj); ! realOutput.writeUTFShort(s, (int)l); } else { ! realOutput.writeByte(TC_LONGSTRING); ! if (shared) ! assignNewHandle(obj); ! realOutput.writeUTFLong(s, l); } ! break; ! } ! if (clazz.isArray ()) ! { ! realOutput.writeByte(TC_ARRAY); ! writeObject(osc); ! if (shared) ! assignNewHandle(obj); ! writeArraySizeAndElements(obj, clazz.getComponentType()); ! break; ! } ! realOutput.writeByte(TC_OBJECT); ! writeObject(osc); ! if (shared) ! if (replaceDone) ! assignNewHandle(replacedObject); ! else ! assignNewHandle(obj); ! if (obj instanceof Externalizable) ! { ! if (protocolVersion == PROTOCOL_VERSION_2) ! setBlockDataMode(true); ! ((Externalizable)obj).writeExternal(this); ! if (protocolVersion == PROTOCOL_VERSION_2) ! { ! setBlockDataMode(false); ! realOutput.writeByte(TC_ENDBLOCKDATA); ! } ! ! break; ! } ! ! if (obj instanceof Serializable) ! { ! Object prevObject = this.currentObject; ! ObjectStreamClass prevObjectStreamClass = this.currentObjectStreamClass; ! currentObject = obj; ! ObjectStreamClass[] hierarchy = osc.hierarchy(); ! ! for (int i = 0; i < hierarchy.length; i++) ! { ! currentObjectStreamClass = hierarchy[i]; ! ! fieldsAlreadyWritten = false; ! if (currentObjectStreamClass.hasWriteMethod()) ! { ! if (dump) ! dumpElementln ("WRITE METHOD CALLED FOR: ", obj); ! setBlockDataMode(true); ! callWriteMethod(obj, currentObjectStreamClass); ! setBlockDataMode(false); ! realOutput.writeByte(TC_ENDBLOCKDATA); ! if (dump) ! dumpElementln ("WRITE ENDBLOCKDATA FOR: ", obj); ! } ! else ! { ! if (dump) ! dumpElementln ("WRITE FIELDS CALLED FOR: ", obj); ! writeFields(obj, currentObjectStreamClass); ! } ! } ! ! this.currentObject = prevObject; ! this.currentObjectStreamClass = prevObjectStreamClass; ! currentPutField = null; ! break; ! } ! ! throw new NotSerializableException(clazz.getName() ! + " in " ! + obj.getClass()); ! } // end pseudo-loop } catch (ObjectStreamException ose) { ! // Rethrow these are fatal. ! throw ose; } catch (IOException e) { ! realOutput.writeByte(TC_EXCEPTION); ! reset(true); ! setBlockDataMode(false); ! try ! { ! if (DEBUG) ! { ! e.printStackTrace(System.out); ! } ! writeObject(e); ! } ! catch (IOException ioe) ! { ! StreamCorruptedException ex = ! new StreamCorruptedException ! (ioe + " thrown while exception was being written to stream."); ! if (DEBUG) ! { ! ex.printStackTrace(System.out); ! } ! throw ex; ! } ! ! reset (true); } finally { ! isSerializing = was_serializing; ! setBlockDataMode(old_mode); ! depth -= 2; ! if (dump) ! dumpElementln ("END: ", obj); } } *************** public class ObjectOutputStream extends *** 509,521 **** if (osc.isProxyClass) { realOutput.writeByte(TC_PROXYCLASSDESC); ! Class[] intfs = osc.forClass().getInterfaces(); ! realOutput.writeInt(intfs.length); ! for (int i = 0; i < intfs.length; i++) ! realOutput.writeUTF(intfs[i].getName()); assignNewHandle(osc); ! boolean oldmode = setBlockDataMode(true); annotateProxyClass(osc.forClass()); setBlockDataMode(oldmode); --- 509,521 ---- if (osc.isProxyClass) { realOutput.writeByte(TC_PROXYCLASSDESC); ! Class[] intfs = osc.forClass().getInterfaces(); ! realOutput.writeInt(intfs.length); ! for (int i = 0; i < intfs.length; i++) ! realOutput.writeUTF(intfs[i].getName()); assignNewHandle(osc); ! boolean oldmode = setBlockDataMode(true); annotateProxyClass(osc.forClass()); setBlockDataMode(oldmode); *************** public class ObjectOutputStream extends *** 525,561 **** { realOutput.writeByte(TC_CLASSDESC); realOutput.writeUTF(osc.getName()); ! if (osc.isEnum()) ! realOutput.writeLong(0L); ! else ! realOutput.writeLong(osc.getSerialVersionUID()); assignNewHandle(osc); int flags = osc.getFlags(); if (protocolVersion == PROTOCOL_VERSION_2 ! && osc.isExternalizable()) flags |= SC_BLOCK_DATA; realOutput.writeByte(flags); ObjectStreamField[] fields = osc.fields; ! if (fields == ObjectStreamClass.INVALID_FIELDS) ! throw new InvalidClassException ! (osc.getName(), "serialPersistentFields is invalid"); realOutput.writeShort(fields.length); ObjectStreamField field; for (int i = 0; i < fields.length; i++) { ! field = fields[i]; ! realOutput.writeByte(field.getTypeCode ()); ! realOutput.writeUTF(field.getName ()); ! if (! field.isPrimitive()) ! writeObject(field.getTypeString()); } boolean oldmode = setBlockDataMode(true); --- 525,561 ---- { realOutput.writeByte(TC_CLASSDESC); realOutput.writeUTF(osc.getName()); ! if (osc.isEnum()) ! realOutput.writeLong(0L); ! else ! realOutput.writeLong(osc.getSerialVersionUID()); assignNewHandle(osc); int flags = osc.getFlags(); if (protocolVersion == PROTOCOL_VERSION_2 ! && osc.isExternalizable()) flags |= SC_BLOCK_DATA; realOutput.writeByte(flags); ObjectStreamField[] fields = osc.fields; ! if (fields == ObjectStreamClass.INVALID_FIELDS) ! throw new InvalidClassException ! (osc.getName(), "serialPersistentFields is invalid"); realOutput.writeShort(fields.length); ObjectStreamField field; for (int i = 0; i < fields.length; i++) { ! field = fields[i]; ! realOutput.writeByte(field.getTypeCode ()); ! realOutput.writeUTF(field.getName ()); ! if (! field.isPrimitive()) ! writeObject(field.getTypeString()); } boolean oldmode = setBlockDataMode(true); *************** public class ObjectOutputStream extends *** 569,575 **** else writeObject(null); } ! /** * Writes the current objects non-transient, non-static fields from * the current class to the underlying output stream. --- 569,575 ---- else writeObject(null); } ! /** * Writes the current objects non-transient, non-static fields from * the current class to the underlying output stream. *************** public class ObjectOutputStream extends *** 598,608 **** { if (currentObject == null || currentObjectStreamClass == null) throw new NotActiveException ! ("defaultWriteObject called by non-active class and/or object"); if (fieldsAlreadyWritten) throw new IOException ! ("Only one of writeFields and defaultWriteObject may be called, and it may only be called once"); fieldsAlreadyWritten = true; } --- 598,608 ---- { if (currentObject == null || currentObjectStreamClass == null) throw new NotActiveException ! ("defaultWriteObject called by non-active class and/or object"); if (fieldsAlreadyWritten) throw new IOException ! ("Only one of writeFields and defaultWriteObject may be called, and it may only be called once"); fieldsAlreadyWritten = true; } *************** public class ObjectOutputStream extends *** 629,640 **** { if (!internal) { ! if (isSerializing) ! throw new IOException("Reset called while serialization in progress"); ! realOutput.writeByte(TC_RESET); } ! clearHandles(); } --- 629,640 ---- { if (!internal) { ! if (isSerializing) ! throw new IOException("Reset called while serialization in progress"); ! realOutput.writeByte(TC_RESET); } ! clearHandles(); } *************** public class ObjectOutputStream extends *** 650,678 **** * For an explanation of the differences between the two protocols * see the Java Object Serialization Specification. *

            ! * * @param version the version to use. ! * ! * @throws IllegalArgumentException if version is not a valid * protocol. * @throws IllegalStateException if called after the first the first object * was serialized. * @throws IOException if an I/O error occurs. ! * * @see ObjectStreamConstants#PROTOCOL_VERSION_1 * @see ObjectStreamConstants#PROTOCOL_VERSION_2 ! * * @since 1.2 */ public void useProtocolVersion(int version) throws IOException { if (version != PROTOCOL_VERSION_1 && version != PROTOCOL_VERSION_2) throw new IllegalArgumentException("Invalid protocol version requested."); ! if (nextOID != baseWireHandle) ! throw new IllegalStateException("Protocol version cannot be changed " + "after serialization started."); ! protocolVersion = version; } --- 650,678 ---- * For an explanation of the differences between the two protocols * see the Java Object Serialization Specification. *

            ! * * @param version the version to use. ! * ! * @throws IllegalArgumentException if version is not a valid * protocol. * @throws IllegalStateException if called after the first the first object * was serialized. * @throws IOException if an I/O error occurs. ! * * @see ObjectStreamConstants#PROTOCOL_VERSION_1 * @see ObjectStreamConstants#PROTOCOL_VERSION_2 ! * * @since 1.2 */ public void useProtocolVersion(int version) throws IOException { if (version != PROTOCOL_VERSION_1 && version != PROTOCOL_VERSION_2) throw new IllegalArgumentException("Invalid protocol version requested."); ! if (nextOID != baseWireHandle) ! throw new IllegalStateException("Protocol version cannot be changed " + "after serialization started."); ! protocolVersion = version; } *************** public class ObjectOutputStream extends *** 728,736 **** { if (enable) { ! SecurityManager sm = System.getSecurityManager(); ! if (sm != null) ! sm.checkPermission(new SerializablePermission("enableSubstitution")); } boolean old_val = replacementEnabled; --- 728,736 ---- { if (enable) { ! SecurityManager sm = System.getSecurityManager(); ! if (sm != null) ! sm.checkPermission(new SerializablePermission("enableSubstitution")); } boolean old_val = replacementEnabled; *************** public class ObjectOutputStream extends *** 799,808 **** { if (writeDataAsBlocks) { ! if (blockDataCount == BUFFER_SIZE) ! drain(); ! blockData[ blockDataCount++ ] = (byte)data; } else realOutput.write(data); --- 799,808 ---- { if (writeDataAsBlocks) { ! if (blockDataCount == BUFFER_SIZE) ! drain(); ! blockData[ blockDataCount++ ] = (byte)data; } else realOutput.write(data); *************** public class ObjectOutputStream extends *** 825,844 **** { if (writeDataAsBlocks) { ! if (len < 0) ! throw new IndexOutOfBoundsException(); ! if (blockDataCount + len < BUFFER_SIZE) ! { ! System.arraycopy(b, off, blockData, blockDataCount, len); ! blockDataCount += len; ! } ! else ! { ! drain(); ! writeBlockDataHeader(len); ! realOutput.write(b, off, len); ! } } else realOutput.write(b, off, len); --- 825,844 ---- { if (writeDataAsBlocks) { ! if (len < 0) ! throw new IndexOutOfBoundsException(); ! if (blockDataCount + len < BUFFER_SIZE) ! { ! System.arraycopy(b, off, blockData, blockDataCount, len); ! blockDataCount += len; ! } ! else ! { ! drain(); ! writeBlockDataHeader(len); ! realOutput.write(b, off, len); ! } } else realOutput.write(b, off, len); *************** public class ObjectOutputStream extends *** 1014,1156 **** currentPutField = new PutField() { ! private byte[] prim_field_data ! = new byte[currentObjectStreamClass.primFieldSize]; ! private Object[] objs ! = new Object[currentObjectStreamClass.objectFieldCount]; ! private ObjectStreamField getField (String name) ! { ! ObjectStreamField field ! = currentObjectStreamClass.getField(name); ! ! if (field == null) ! throw new IllegalArgumentException("no such serializable field " + name); ! ! return field; ! } ! ! public void put(String name, boolean value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'Z'); ! prim_field_data[field.getOffset ()] = (byte)(value ? 1 : 0); ! } ! public void put(String name, byte value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'B'); ! prim_field_data[field.getOffset()] = value; ! } ! public void put(String name, char value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'C'); ! int off = field.getOffset(); ! prim_field_data[off++] = (byte)(value >>> 8); ! prim_field_data[off] = (byte)value; ! } ! public void put(String name, double value) ! { ! ObjectStreamField field = getField (name); ! checkType(field, 'D'); ! int off = field.getOffset(); ! long l_value = Double.doubleToLongBits (value); ! prim_field_data[off++] = (byte)(l_value >>> 52); ! prim_field_data[off++] = (byte)(l_value >>> 48); ! prim_field_data[off++] = (byte)(l_value >>> 40); ! prim_field_data[off++] = (byte)(l_value >>> 32); ! prim_field_data[off++] = (byte)(l_value >>> 24); ! prim_field_data[off++] = (byte)(l_value >>> 16); ! prim_field_data[off++] = (byte)(l_value >>> 8); ! prim_field_data[off] = (byte)l_value; ! } ! public void put(String name, float value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'F'); ! int off = field.getOffset(); ! int i_value = Float.floatToIntBits(value); ! prim_field_data[off++] = (byte)(i_value >>> 24); ! prim_field_data[off++] = (byte)(i_value >>> 16); ! prim_field_data[off++] = (byte)(i_value >>> 8); ! prim_field_data[off] = (byte)i_value; ! } ! public void put(String name, int value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'I'); ! int off = field.getOffset(); ! prim_field_data[off++] = (byte)(value >>> 24); ! prim_field_data[off++] = (byte)(value >>> 16); ! prim_field_data[off++] = (byte)(value >>> 8); ! prim_field_data[off] = (byte)value; ! } ! public void put(String name, long value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'J'); ! int off = field.getOffset(); ! prim_field_data[off++] = (byte)(value >>> 52); ! prim_field_data[off++] = (byte)(value >>> 48); ! prim_field_data[off++] = (byte)(value >>> 40); ! prim_field_data[off++] = (byte)(value >>> 32); ! prim_field_data[off++] = (byte)(value >>> 24); ! prim_field_data[off++] = (byte)(value >>> 16); ! prim_field_data[off++] = (byte)(value >>> 8); ! prim_field_data[off] = (byte)value; ! } ! public void put(String name, short value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'S'); ! int off = field.getOffset(); ! prim_field_data[off++] = (byte)(value >>> 8); ! prim_field_data[off] = (byte)value; ! } ! public void put(String name, Object value) ! { ! ObjectStreamField field = getField(name); ! if (value != null && ! ! field.getType().isAssignableFrom(value.getClass ())) ! throw new IllegalArgumentException("Class " + value.getClass() + ! " cannot be cast to " + field.getType()); ! objs[field.getOffset()] = value; ! } ! public void write(ObjectOutput out) throws IOException ! { ! // Apparently Block data is not used with PutField as per ! // empirical evidence against JDK 1.2. Also see Mauve test ! // java.io.ObjectInputOutput.Test.GetPutField. ! boolean oldmode = setBlockDataMode(false); ! out.write(prim_field_data); ! for (int i = 0; i < objs.length; ++ i) ! out.writeObject(objs[i]); ! setBlockDataMode(oldmode); ! } ! private void checkType(ObjectStreamField field, char type) ! throws IllegalArgumentException ! { ! if (TypeSignature.getEncodingOfClass(field.getType()).charAt(0) ! != type) ! throw new IllegalArgumentException(); ! } }; // end PutFieldImpl --- 1014,1156 ---- currentPutField = new PutField() { ! private byte[] prim_field_data ! = new byte[currentObjectStreamClass.primFieldSize]; ! private Object[] objs ! = new Object[currentObjectStreamClass.objectFieldCount]; ! private ObjectStreamField getField (String name) ! { ! ObjectStreamField field ! = currentObjectStreamClass.getField(name); ! if (field == null) ! throw new IllegalArgumentException("no such serializable field " + name); ! return field; ! } ! public void put(String name, boolean value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'Z'); ! prim_field_data[field.getOffset ()] = (byte)(value ? 1 : 0); ! } ! public void put(String name, byte value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'B'); ! prim_field_data[field.getOffset()] = value; ! } ! public void put(String name, char value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'C'); ! int off = field.getOffset(); ! prim_field_data[off++] = (byte)(value >>> 8); ! prim_field_data[off] = (byte)value; ! } ! public void put(String name, double value) ! { ! ObjectStreamField field = getField (name); ! checkType(field, 'D'); ! int off = field.getOffset(); ! long l_value = Double.doubleToLongBits (value); ! prim_field_data[off++] = (byte)(l_value >>> 52); ! prim_field_data[off++] = (byte)(l_value >>> 48); ! prim_field_data[off++] = (byte)(l_value >>> 40); ! prim_field_data[off++] = (byte)(l_value >>> 32); ! prim_field_data[off++] = (byte)(l_value >>> 24); ! prim_field_data[off++] = (byte)(l_value >>> 16); ! prim_field_data[off++] = (byte)(l_value >>> 8); ! prim_field_data[off] = (byte)l_value; ! } ! public void put(String name, float value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'F'); ! int off = field.getOffset(); ! int i_value = Float.floatToIntBits(value); ! prim_field_data[off++] = (byte)(i_value >>> 24); ! prim_field_data[off++] = (byte)(i_value >>> 16); ! prim_field_data[off++] = (byte)(i_value >>> 8); ! prim_field_data[off] = (byte)i_value; ! } ! public void put(String name, int value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'I'); ! int off = field.getOffset(); ! prim_field_data[off++] = (byte)(value >>> 24); ! prim_field_data[off++] = (byte)(value >>> 16); ! prim_field_data[off++] = (byte)(value >>> 8); ! prim_field_data[off] = (byte)value; ! } ! public void put(String name, long value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'J'); ! int off = field.getOffset(); ! prim_field_data[off++] = (byte)(value >>> 52); ! prim_field_data[off++] = (byte)(value >>> 48); ! prim_field_data[off++] = (byte)(value >>> 40); ! prim_field_data[off++] = (byte)(value >>> 32); ! prim_field_data[off++] = (byte)(value >>> 24); ! prim_field_data[off++] = (byte)(value >>> 16); ! prim_field_data[off++] = (byte)(value >>> 8); ! prim_field_data[off] = (byte)value; ! } ! public void put(String name, short value) ! { ! ObjectStreamField field = getField(name); ! checkType(field, 'S'); ! int off = field.getOffset(); ! prim_field_data[off++] = (byte)(value >>> 8); ! prim_field_data[off] = (byte)value; ! } ! public void put(String name, Object value) ! { ! ObjectStreamField field = getField(name); ! ! if (value != null && ! ! field.getType().isAssignableFrom(value.getClass ())) ! throw new IllegalArgumentException("Class " + value.getClass() + ! " cannot be cast to " + field.getType()); ! objs[field.getOffset()] = value; ! } ! ! public void write(ObjectOutput out) throws IOException ! { ! // Apparently Block data is not used with PutField as per ! // empirical evidence against JDK 1.2. Also see Mauve test ! // java.io.ObjectInputOutput.Test.GetPutField. ! boolean oldmode = setBlockDataMode(false); ! out.write(prim_field_data); ! for (int i = 0; i < objs.length; ++ i) ! out.writeObject(objs[i]); ! setBlockDataMode(oldmode); ! } ! ! private void checkType(ObjectStreamField field, char type) ! throws IllegalArgumentException ! { ! if (TypeSignature.getEncodingOfClass(field.getType()).charAt(0) ! != type) ! throw new IllegalArgumentException(); ! } }; // end PutFieldImpl *************** public class ObjectOutputStream extends *** 1174,1186 **** { if (size < 256) { ! realOutput.writeByte(TC_BLOCKDATA); ! realOutput.write(size); } else { ! realOutput.writeByte(TC_BLOCKDATALONG); ! realOutput.writeInt(size); } } --- 1174,1186 ---- { if (size < 256) { ! realOutput.writeByte(TC_BLOCKDATA); ! realOutput.write(size); } else { ! realOutput.writeByte(TC_BLOCKDATALONG); ! realOutput.writeInt(size); } } *************** public class ObjectOutputStream extends *** 1217,1292 **** if (clazz.isPrimitive()) { ! if (clazz == Boolean.TYPE) ! { ! boolean[] cast_array = (boolean[])array; ! realOutput.writeInt (length); ! for (int i = 0; i < length; i++) ! realOutput.writeBoolean(cast_array[i]); ! return; ! } ! if (clazz == Byte.TYPE) ! { ! byte[] cast_array = (byte[])array; ! realOutput.writeInt(length); ! realOutput.write(cast_array, 0, length); ! return; ! } ! if (clazz == Character.TYPE) ! { ! char[] cast_array = (char[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! realOutput.writeChar(cast_array[i]); ! return; ! } ! if (clazz == Double.TYPE) ! { ! double[] cast_array = (double[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! realOutput.writeDouble(cast_array[i]); ! return; ! } ! if (clazz == Float.TYPE) ! { ! float[] cast_array = (float[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! realOutput.writeFloat(cast_array[i]); ! return; ! } ! if (clazz == Integer.TYPE) ! { ! int[] cast_array = (int[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! realOutput.writeInt(cast_array[i]); ! return; ! } ! if (clazz == Long.TYPE) ! { ! long[] cast_array = (long[])array; ! realOutput.writeInt (length); ! for (int i = 0; i < length; i++) ! realOutput.writeLong(cast_array[i]); ! return; ! } ! if (clazz == Short.TYPE) ! { ! short[] cast_array = (short[])array; ! realOutput.writeInt (length); ! for (int i = 0; i < length; i++) ! realOutput.writeShort(cast_array[i]); ! return; ! } } else { ! Object[] cast_array = (Object[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! writeObject(cast_array[i]); } } --- 1217,1292 ---- if (clazz.isPrimitive()) { ! if (clazz == Boolean.TYPE) ! { ! boolean[] cast_array = (boolean[])array; ! realOutput.writeInt (length); ! for (int i = 0; i < length; i++) ! realOutput.writeBoolean(cast_array[i]); ! return; ! } ! if (clazz == Byte.TYPE) ! { ! byte[] cast_array = (byte[])array; ! realOutput.writeInt(length); ! realOutput.write(cast_array, 0, length); ! return; ! } ! if (clazz == Character.TYPE) ! { ! char[] cast_array = (char[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! realOutput.writeChar(cast_array[i]); ! return; ! } ! if (clazz == Double.TYPE) ! { ! double[] cast_array = (double[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! realOutput.writeDouble(cast_array[i]); ! return; ! } ! if (clazz == Float.TYPE) ! { ! float[] cast_array = (float[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! realOutput.writeFloat(cast_array[i]); ! return; ! } ! if (clazz == Integer.TYPE) ! { ! int[] cast_array = (int[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! realOutput.writeInt(cast_array[i]); ! return; ! } ! if (clazz == Long.TYPE) ! { ! long[] cast_array = (long[])array; ! realOutput.writeInt (length); ! for (int i = 0; i < length; i++) ! realOutput.writeLong(cast_array[i]); ! return; ! } ! if (clazz == Short.TYPE) ! { ! short[] cast_array = (short[])array; ! realOutput.writeInt (length); ! for (int i = 0; i < length; i++) ! realOutput.writeShort(cast_array[i]); ! return; ! } } else { ! Object[] cast_array = (Object[])array; ! realOutput.writeInt(length); ! for (int i = 0; i < length; i++) ! writeObject(cast_array[i]); } } *************** public class ObjectOutputStream extends *** 1325,1335 **** IOException e = new IOException("Unexpected exception " + _); e.initCause(_); throw(e); ! } setBlockDataMode(oldmode); } ! /** * Helper function for writeFields(Object,ObjectStreamClass): write --- 1325,1335 ---- IOException e = new IOException("Unexpected exception " + _); e.initCause(_); throw(e); ! } setBlockDataMode(oldmode); } ! /** * Helper function for writeFields(Object,ObjectStreamClass): write *************** public class ObjectOutputStream extends *** 1347,1356 **** { ObjectStreamField osf = fields[i]; Field field = osf.field; ! if (DEBUG && dump) dumpElementln ("WRITE FIELD: " + osf.getName() + " type=" + osf.getType()); ! switch (osf.getTypeCode()) { case 'Z': realOutput.writeBoolean(field.getBoolean(obj)); break; --- 1347,1356 ---- { ObjectStreamField osf = fields[i]; Field field = osf.field; ! if (DEBUG && dump) dumpElementln ("WRITE FIELD: " + osf.getName() + " type=" + osf.getType()); ! switch (osf.getTypeCode()) { case 'Z': realOutput.writeBoolean(field.getBoolean(obj)); break; *************** public class ObjectOutputStream extends *** 1361,1369 **** case 'F': realOutput.writeFloat (field.getFloat (obj)); break; case 'J': realOutput.writeLong (field.getLong (obj)); break; case 'D': realOutput.writeDouble (field.getDouble (obj)); break; ! case 'L': case '[': writeObject (field.get (obj)); break; ! default: throw new IOException("Unexpected type code " + osf.getTypeCode()); } } --- 1361,1369 ---- case 'F': realOutput.writeFloat (field.getFloat (obj)); break; case 'J': realOutput.writeLong (field.getLong (obj)); break; case 'D': realOutput.writeDouble (field.getDouble (obj)); break; ! case 'L': case '[': writeObject (field.get (obj)); break; ! default: throw new IOException("Unexpected type code " + osf.getTypeCode()); } } *************** public class ObjectOutputStream extends *** 1402,1428 **** catch (InvocationTargetException x) { /* Rethrow if possible. */ ! Throwable exception = x.getTargetException(); ! if (exception instanceof RuntimeException) ! throw (RuntimeException) exception; ! if (exception instanceof IOException) ! throw (IOException) exception; ! IOException ioe ! = new IOException("Exception thrown from writeObject() on " + ! osc.forClass().getName() + ": " + exception.getClass().getName()); ! ioe.initCause(exception); ! throw ioe; } catch (Exception x) { ! IOException ioe ! = new IOException("Failure invoking writeObject() on " + ! osc.forClass().getName() + ": " + ! x.getClass().getName()); ! ioe.initCause(x); ! throw ioe; } } --- 1402,1428 ---- catch (InvocationTargetException x) { /* Rethrow if possible. */ ! Throwable exception = x.getTargetException(); ! if (exception instanceof RuntimeException) ! throw (RuntimeException) exception; ! if (exception instanceof IOException) ! throw (IOException) exception; ! IOException ioe ! = new IOException("Exception thrown from writeObject() on " + ! osc.forClass().getName() + ": " + exception.getClass().getName()); ! ioe.initCause(exception); ! throw ioe; } catch (Exception x) { ! IOException ioe ! = new IOException("Failure invoking writeObject() on " + ! osc.forClass().getName() + ": " + ! x.getClass().getName()); ! ioe.initCause(x); ! throw ioe; } } *************** public class ObjectOutputStream extends *** 1430,1450 **** { try { ! for (int i = 0; i < depth; i++) ! System.out.print (" "); ! System.out.print (Thread.currentThread() + ": "); ! System.out.print (msg); ! if (java.lang.reflect.Proxy.isProxyClass(obj.getClass())) ! System.out.print (obj.getClass()); ! else ! System.out.print (obj); } catch (Exception _) { } finally { ! System.out.println (); } } --- 1430,1450 ---- { try { ! for (int i = 0; i < depth; i++) ! System.out.print (" "); ! System.out.print (Thread.currentThread() + ": "); ! System.out.print (msg); ! if (java.lang.reflect.Proxy.isProxyClass(obj.getClass())) ! System.out.print (obj.getClass()); ! else ! System.out.print (obj); } catch (Exception _) { } finally { ! System.out.println (); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ObjectStreamClass.java gcc-4.6.0/libjava/classpath/java/io/ObjectStreamClass.java *** gcc-4.5.2/libjava/classpath/java/io/ObjectStreamClass.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/ObjectStreamClass.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class ObjectStreamClass implement *** 81,87 **** * * Warning: If this class contains an invalid serialPersistentField arrays * lookup will not throw anything. However {@link #getFields()} will return ! * an empty array and {@link java.io.ObjectOutputStream#writeObject} will throw an * {@link java.io.InvalidClassException}. * * @see java.io.Serializable --- 81,87 ---- * * Warning: If this class contains an invalid serialPersistentField arrays * lookup will not throw anything. However {@link #getFields()} will return ! * an empty array and {@link java.io.ObjectOutputStream#writeObject} will throw an * {@link java.io.InvalidClassException}. * * @see java.io.Serializable *************** public class ObjectStreamClass implement *** 112,120 **** return osc; else { ! osc = new ObjectStreamClass(cl); ! classLookupTable.put(cl, osc); ! return osc; } } --- 112,120 ---- return osc; else { ! osc = new ObjectStreamClass(cl); ! classLookupTable.put(cl, osc); ! return osc; } } *************** public class ObjectStreamClass implement *** 180,186 **** { for (int i = 0; i < fields.length; i++) if (fields[i].getName().equals(name)) ! return fields[i]; return null; } --- 180,186 ---- { for (int i = 0; i < fields.length; i++) if (fields[i].getName().equals(name)) ! return fields[i]; return null; } *************** public class ObjectStreamClass implement *** 256,279 **** */ ObjectStreamClass[] hierarchy() { ! ObjectStreamClass[] result = hierarchy; if (result == null) { ! int d = 0; ! for(ObjectStreamClass osc = this; osc != null; osc = osc.getSuper()) d++; ! result = new ObjectStreamClass[d]; ! for (ObjectStreamClass osc = this; osc != null; osc = osc.getSuper()) { result[--d] = osc; } ! ! hierarchy = result; } ! return result; } /** --- 256,279 ---- */ ObjectStreamClass[] hierarchy() { ! ObjectStreamClass[] result = hierarchy; if (result == null) { ! int d = 0; ! for(ObjectStreamClass osc = this; osc != null; osc = osc.getSuper()) d++; ! result = new ObjectStreamClass[d]; ! for (ObjectStreamClass osc = this; osc != null; osc = osc.getSuper()) { result[--d] = osc; } ! ! hierarchy = result; } ! return result; } /** *************** public class ObjectStreamClass implement *** 292,298 **** ObjectStreamClass(String name, long uid, byte flags, ! ObjectStreamField[] fields) { this.name = name; this.uid = uid; --- 292,298 ---- ObjectStreamClass(String name, long uid, byte flags, ! ObjectStreamField[] fields) { this.name = name; this.uid = uid; *************** public class ObjectStreamClass implement *** 322,438 **** uid = class_uid; else { ! // Check that the actual UID of the resolved class matches the UID from ! // the stream. Mismatches for array classes are ignored. ! if (!cl.isArray() && uid != class_uid) ! { ! String msg = cl + ! ": Local class not compatible: stream serialVersionUID=" ! + uid + ", local serialVersionUID=" + class_uid; ! throw new InvalidClassException (msg); ! } } isProxyClass = clazz != null && Proxy.isProxyClass(clazz); this.superClass = superClass; calculateOffsets(); ! try { ! ObjectStreamField[] exportedFields = getSerialPersistentFields (clazz); ! if (exportedFields == null) ! return; ! ObjectStreamField[] newFieldList = new ObjectStreamField[exportedFields.length + fields.length]; ! int i, j, k; ! /* We now check the import fields against the exported fields. ! * There should not be contradiction (e.g. int x and String x) ! * but extra virtual fields can be added to the class. ! */ ! Arrays.sort(exportedFields); ! i = 0; j = 0; k = 0; ! while (i < fields.length && j < exportedFields.length) ! { ! int comp = fields[i].compareTo(exportedFields[j]); ! if (comp < 0) ! { ! newFieldList[k] = fields[i]; ! fields[i].setPersistent(false); ! fields[i].setToSet(false); ! i++; ! } ! else if (comp > 0) ! { ! /* field not found in imported fields. We add it ! * in the list of supported fields. ! */ ! newFieldList[k] = exportedFields[j]; ! newFieldList[k].setPersistent(true); ! newFieldList[k].setToSet(false); ! try ! { ! newFieldList[k].lookupField(clazz); ! newFieldList[k].checkFieldType(); ! } ! catch (NoSuchFieldException _) ! { ! } ! j++; ! } ! else ! { ! try ! { ! exportedFields[j].lookupField(clazz); ! exportedFields[j].checkFieldType(); ! } ! catch (NoSuchFieldException _) ! { ! } ! if (!fields[i].getType().equals(exportedFields[j].getType())) ! throw new InvalidClassException ! ("serialPersistentFields must be compatible with" + ! " imported fields (about " + fields[i].getName() + ")"); ! newFieldList[k] = fields[i]; ! fields[i].setPersistent(true); ! i++; ! j++; ! } ! k++; ! } ! if (i < fields.length) ! for (;i"); data_out.writeInt(modifiers); ! // the replacement of '/' with '.' was needed to make computed // SUID's agree with those computed by JDK ! data_out.writeUTF (TypeSignature.getEncodingOfConstructor(constructor).replace('/','.')); } ! Method method; Method[] methods = cl.getDeclaredMethods(); Arrays.sort(methods, memberComparator); --- 960,975 ---- modifiers = constructor.getModifiers(); if (Modifier.isPrivate(modifiers)) continue; ! data_out.writeUTF(""); data_out.writeInt(modifiers); ! // the replacement of '/' with '.' was needed to make computed // SUID's agree with those computed by JDK ! data_out.writeUTF (TypeSignature.getEncodingOfConstructor(constructor).replace('/','.')); } ! Method method; Method[] methods = cl.getDeclaredMethods(); Arrays.sort(methods, memberComparator); *************** outer: *** 979,994 **** modifiers = method.getModifiers(); if (Modifier.isPrivate(modifiers)) continue; ! data_out.writeUTF(method.getName()); data_out.writeInt(modifiers); ! // the replacement of '/' with '.' was needed to make computed // SUID's agree with those computed by JDK data_out.writeUTF (TypeSignature.getEncodingOfMethod(method).replace('/', '.')); } ! data_out.close(); byte[] sha = md.digest(); result = 0; --- 979,994 ---- modifiers = method.getModifiers(); if (Modifier.isPrivate(modifiers)) continue; ! data_out.writeUTF(method.getName()); data_out.writeInt(modifiers); ! // the replacement of '/' with '.' was needed to make computed // SUID's agree with those computed by JDK data_out.writeUTF (TypeSignature.getEncodingOfMethod(method).replace('/', '.')); } ! data_out.close(); byte[] sha = md.digest(); result = 0; *************** outer: *** 1008,1014 **** * @param clazz Class to retrieve 'serialPersistentFields' from. * @return The content of 'serialPersistentFields'. */ ! private ObjectStreamField[] getSerialPersistentFields(Class clazz) throws NoSuchFieldException, IllegalAccessException { ObjectStreamField[] fieldsArray = null; --- 1008,1014 ---- * @param clazz Class to retrieve 'serialPersistentFields' from. * @return The content of 'serialPersistentFields'. */ ! private ObjectStreamField[] getSerialPersistentFields(Class clazz) throws NoSuchFieldException, IllegalAccessException { ObjectStreamField[] fieldsArray = null; *************** outer: *** 1021,1032 **** int modifiers = f.getModifiers(); if (!(Modifier.isStatic(modifiers) && ! Modifier.isFinal(modifiers) && ! Modifier.isPrivate(modifiers))) return null; ! o = (ObjectStreamField[]) f.get(null); ! if (o == null) return null; --- 1021,1032 ---- int modifiers = f.getModifiers(); if (!(Modifier.isStatic(modifiers) && ! Modifier.isFinal(modifiers) && ! Modifier.isPrivate(modifiers))) return null; ! o = (ObjectStreamField[]) f.get(null); ! if (o == null) return null; *************** outer: *** 1047,1086 **** { synchronized(this) { ! if (constructor == null) ! { ! try ! { ! final Constructor c = clazz.getConstructor(new Class[0]); ! AccessController.doPrivileged(new PrivilegedAction() ! { ! public Object run() ! { ! c.setAccessible(true); ! return null; ! } ! }); ! constructor = c; ! } ! catch(NoSuchMethodException x) ! { ! throw new InvalidClassException(clazz.getName(), ! "No public zero-argument constructor"); ! } ! } } try { ! return (Externalizable)constructor.newInstance(); } catch(Exception x) { ! throw (InvalidClassException) ! new InvalidClassException(clazz.getName(), ! "Unable to instantiate").initCause(x); } } --- 1047,1086 ---- { synchronized(this) { ! if (constructor == null) ! { ! try ! { ! final Constructor c = clazz.getConstructor(new Class[0]); ! AccessController.doPrivileged(new PrivilegedAction() ! { ! public Object run() ! { ! c.setAccessible(true); ! return null; ! } ! }); ! constructor = c; ! } ! catch(NoSuchMethodException x) ! { ! throw new InvalidClassException(clazz.getName(), ! "No public zero-argument constructor"); ! } ! } } try { ! return (Externalizable)constructor.newInstance(); } catch(Exception x) { ! throw (InvalidClassException) ! new InvalidClassException(clazz.getName(), ! "Unable to instantiate").initCause(x); } } *************** outer: *** 1153,1159 **** if (comp == 0) return TypeSignature.getEncodingOfMember(m1). ! compareTo(TypeSignature.getEncodingOfMember(m2)); else return comp; } --- 1153,1159 ---- if (comp == 0) return TypeSignature.getEncodingOfMember(m1). ! compareTo(TypeSignature.getEncodingOfMember(m2)); else return comp; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ObjectStreamConstants.java gcc-4.6.0/libjava/classpath/java/io/ObjectStreamConstants.java *** gcc-4.5.2/libjava/classpath/java/io/ObjectStreamConstants.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/io/ObjectStreamConstants.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 45,68 **** * ObjectInputStream, and ObjectStreamClass. * The values for these constants are specified by the Java library * specification. ! * * @since 1.1 */ public interface ObjectStreamConstants { ! /** * The serialization stream protocol version 1. This version was * the default serialization protocol before JDK 1.2. ! * * @see ObjectOutputStream#useProtocolVersion(int) * @since 1.2 */ int PROTOCOL_VERSION_1 = 1; ! ! /** * The serialization stream protocol version 2. This version is * used as the default serialization protocol since JDK 1.2. ! * * @see ObjectOutputStream#useProtocolVersion(int) * @since 1.2 */ --- 45,68 ---- * ObjectInputStream, and ObjectStreamClass. * The values for these constants are specified by the Java library * specification. ! * * @since 1.1 */ public interface ObjectStreamConstants { ! /** * The serialization stream protocol version 1. This version was * the default serialization protocol before JDK 1.2. ! * * @see ObjectOutputStream#useProtocolVersion(int) * @since 1.2 */ int PROTOCOL_VERSION_1 = 1; ! ! /** * The serialization stream protocol version 2. This version is * used as the default serialization protocol since JDK 1.2. ! * * @see ObjectOutputStream#useProtocolVersion(int) * @since 1.2 */ *************** public interface ObjectStreamConstants *** 72,78 **** * The magic number that is written as part of the stream header. */ short STREAM_MAGIC = (short)0xaced; ! /** * The stream version number that is written as part of the stream header. * Note that this is different from the protocol version that specifies --- 72,78 ---- * The magic number that is written as part of the stream header. */ short STREAM_MAGIC = (short)0xaced; ! /** * The stream version number that is written as part of the stream header. * Note that this is different from the protocol version that specifies *************** public interface ObjectStreamConstants *** 84,153 **** * Token value to designate a null reference in the stream. */ byte TC_NULL = (byte)112; //0x70 ! /** * Token value to designate a reference to an already serialized object. */ byte TC_REFERENCE = (byte)113; //0x71 ! /** * Token value to designate a class descriptor is next in the stream. */ byte TC_CLASSDESC = (byte)114; //0x72 ! /** ! * Token value to designate a new object is next in the stream. */ byte TC_OBJECT = (byte)115; //0x73 ! /** * Token value to designate a new string is next in the stream. */ byte TC_STRING = (byte)116; //0x74 ! /** * Token value to designate a new array is next in the stream. */ byte TC_ARRAY = (byte)117; //0x75 ! /** * Token reference to designate a reference to a class. */ byte TC_CLASS = (byte)118; //0x76 ! /** * Token value to designate a block of primitive data is next in the stream. * The next byte in the stream holds the size of the block (in bytes). */ byte TC_BLOCKDATA = (byte)119; //0x77 ! /** * Token value to designate the end of a block of primitve data. */ byte TC_ENDBLOCKDATA = (byte)120; //0x78 ! /** * Token value to designate a reset of the stream state. */ byte TC_RESET = (byte)121; //0x79 ! /** * Token value to designate a long block of primitive data is next in the * stream. The next long in the stream holds the size of the block ! * (in bytes). */ byte TC_BLOCKDATALONG = (byte)122; //0x7A ! /** * Token value to designate an exception occured during serialization. */ byte TC_EXCEPTION = (byte)123; //0x7B ! /** * Token value to designate a long string is next in the stream. */ byte TC_LONGSTRING = (byte)124; //0x7C ! /** * Token value to designate a proxy class descriptor is next in the stream. */ --- 84,153 ---- * Token value to designate a null reference in the stream. */ byte TC_NULL = (byte)112; //0x70 ! /** * Token value to designate a reference to an already serialized object. */ byte TC_REFERENCE = (byte)113; //0x71 ! /** * Token value to designate a class descriptor is next in the stream. */ byte TC_CLASSDESC = (byte)114; //0x72 ! /** ! * Token value to designate a new object is next in the stream. */ byte TC_OBJECT = (byte)115; //0x73 ! /** * Token value to designate a new string is next in the stream. */ byte TC_STRING = (byte)116; //0x74 ! /** * Token value to designate a new array is next in the stream. */ byte TC_ARRAY = (byte)117; //0x75 ! /** * Token reference to designate a reference to a class. */ byte TC_CLASS = (byte)118; //0x76 ! /** * Token value to designate a block of primitive data is next in the stream. * The next byte in the stream holds the size of the block (in bytes). */ byte TC_BLOCKDATA = (byte)119; //0x77 ! /** * Token value to designate the end of a block of primitve data. */ byte TC_ENDBLOCKDATA = (byte)120; //0x78 ! /** * Token value to designate a reset of the stream state. */ byte TC_RESET = (byte)121; //0x79 ! /** * Token value to designate a long block of primitive data is next in the * stream. The next long in the stream holds the size of the block ! * (in bytes). */ byte TC_BLOCKDATALONG = (byte)122; //0x7A ! /** * Token value to designate an exception occured during serialization. */ byte TC_EXCEPTION = (byte)123; //0x7B ! /** * Token value to designate a long string is next in the stream. */ byte TC_LONGSTRING = (byte)124; //0x7C ! /** * Token value to designate a proxy class descriptor is next in the stream. */ *************** public interface ObjectStreamConstants *** 155,170 **** /** * Token value to designate an enum constant is next in the stream. ! * * @since 1.5 */ byte TC_ENUM = (byte)126; //0x7E ! /** * The first token value. */ byte TC_BASE = TC_NULL; ! /** * The last token value. */ --- 155,170 ---- /** * Token value to designate an enum constant is next in the stream. ! * * @since 1.5 */ byte TC_ENUM = (byte)126; //0x7E ! /** * The first token value. */ byte TC_BASE = TC_NULL; ! /** * The last token value. */ *************** public interface ObjectStreamConstants *** 180,202 **** * defines the writeObject method. */ byte SC_WRITE_METHOD = 0x01; ! /** * Flag used in ObjectStreamClass to designate that the class * is serializeable. */ byte SC_SERIALIZABLE = 0x02; ! /** * Flag used in ObjectStreamClass to designate that the class * is externalizable. */ byte SC_EXTERNALIZABLE = 0x04; ! /** * Flag used in ObjectStreamClass to designate that * externalizable data is written in block data mode. ! * * @since 1.2 */ byte SC_BLOCK_DATA = 0x08; --- 180,202 ---- * defines the writeObject method. */ byte SC_WRITE_METHOD = 0x01; ! /** * Flag used in ObjectStreamClass to designate that the class * is serializeable. */ byte SC_SERIALIZABLE = 0x02; ! /** * Flag used in ObjectStreamClass to designate that the class * is externalizable. */ byte SC_EXTERNALIZABLE = 0x04; ! /** * Flag used in ObjectStreamClass to designate that * externalizable data is written in block data mode. ! * * @since 1.2 */ byte SC_BLOCK_DATA = 0x08; *************** public interface ObjectStreamConstants *** 204,214 **** /** * Flag used in ObjectStreamClass to designate that the class * is an enum constant. ! * * @since 1.5 */ byte SC_ENUM = 0x10; ! /** * Constant for use with a SecurityManager to check if * substitution of objects is allowed. --- 204,214 ---- /** * Flag used in ObjectStreamClass to designate that the class * is an enum constant. ! * * @since 1.5 */ byte SC_ENUM = 0x10; ! /** * Constant for use with a SecurityManager to check if * substitution of objects is allowed. *************** public interface ObjectStreamConstants *** 224,227 **** SerializablePermission SUBCLASS_IMPLEMENTATION_PERMISSION = new SerializablePermission("enableSubclassImplementation"); } - --- 224,226 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/ObjectStreamField.java gcc-4.6.0/libjava/classpath/java/io/ObjectStreamField.java *** gcc-4.5.2/libjava/classpath/java/io/ObjectStreamField.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/ObjectStreamField.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.security.PrivilegedAction; *** 55,61 **** * @author Michael Koch (konqueror@gmx.de) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ ! public class ObjectStreamField implements Comparable { private String name; --- 55,61 ---- * @author Michael Koch (konqueror@gmx.de) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ ! public class ObjectStreamField implements Comparable { private String name; *************** public class ObjectStreamField *** 74,80 **** } /** ! * This constructor creates an ObjectStreamField instance * which represents a field named name and is * of the type type. * --- 74,80 ---- } /** ! * This constructor creates an ObjectStreamField instance * which represents a field named name and is * of the type type. * *************** public class ObjectStreamField *** 87,93 **** } /** ! * This constructor creates an ObjectStreamField instance * which represents a field named name and is * of the type type. * --- 87,93 ---- } /** ! * This constructor creates an ObjectStreamField instance * which represents a field named name and is * of the type type. * *************** public class ObjectStreamField *** 105,113 **** this.typename = TypeSignature.getEncodingOfClass(type); this.unshared = unshared; } ! /** ! * There are many cases you can not get java.lang.Class from typename * if your context class loader cannot load it, then use typename to * construct the field. * --- 105,113 ---- this.typename = TypeSignature.getEncodingOfClass(type); this.unshared = unshared; } ! /** ! * There are many cases you can not get java.lang.Class from typename * if your context class loader cannot load it, then use typename to * construct the field. * *************** public class ObjectStreamField *** 130,136 **** { } } ! /** * This method returns the name of the field represented by the * ObjectStreamField instance. --- 130,136 ---- { } } ! /** * This method returns the name of the field represented by the * ObjectStreamField instance. *************** public class ObjectStreamField *** 169,175 **** * {@link #getTypeCode()} in the case the type is a real * class (and not a primitive). * ! * @return The name of the type (class name) if it is not a * primitive, in the other case null is returned. */ public String getTypeString () --- 169,175 ---- * {@link #getTypeCode()} in the case the type is a real * class (and not a primitive). * ! * @return The name of the type (class name) if it is not a * primitive, in the other case null is returned. */ public String getTypeString () *************** public class ObjectStreamField *** 195,201 **** /** * This method sets the current offset of the field. ! * * @param off The offset of the field in bytes. * @see #getOffset() */ --- 195,201 ---- /** * This method sets the current offset of the field. ! * * @param off The offset of the field in bytes. * @see #getOffset() */ *************** public class ObjectStreamField *** 255,261 **** * the field should not be changed when the stream is read (if it is not * explicitly specified using serialPersistentFields). * ! * @param persistent True if the field is persistent, false in the * other cases. * @see #isPersistent() */ --- 255,261 ---- * the field should not be changed when the stream is read (if it is not * explicitly specified using serialPersistentFields). * ! * @param persistent True if the field is persistent, false in the * other cases. * @see #isPersistent() */ *************** public class ObjectStreamField *** 276,282 **** } /** ! * This method is specific to classpath's implementation and so * has the default access. It changes the state of this field as * to be set by ObjectInputStream. * --- 276,282 ---- } /** ! * This method is specific to classpath's implementation and so * has the default access. It changes the state of this field as * to be set by ObjectInputStream. * *************** public class ObjectStreamField *** 312,327 **** void lookupField(Class clazz) throws NoSuchFieldException, SecurityException { final Field f = clazz.getDeclaredField(name); ! AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() ! { ! f.setAccessible(true); ! return null; ! } }); ! this.field = f; } --- 312,327 ---- void lookupField(Class clazz) throws NoSuchFieldException, SecurityException { final Field f = clazz.getDeclaredField(name); ! AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() ! { ! f.setAccessible(true); ! return null; ! } }); ! this.field = f; } *************** public class ObjectStreamField *** 340,347 **** if (!ftype.isAssignableFrom(type)) throw new InvalidClassException ! ("invalid field type for " + name + ! " in class " + field.getDeclaringClass()); } /** --- 340,347 ---- if (!ftype.isAssignableFrom(type)) throw new InvalidClassException ! ("invalid field type for " + name + ! " in class " + field.getDeclaringClass()); } /** *************** public class ObjectStreamField *** 356,374 **** final void setBooleanField(Object obj, boolean val) { ! VMObjectStreamClass.setBooleanNative(field, obj, val); } final void setByteField(Object obj, byte val) { VMObjectStreamClass.setByteNative(field, obj, val); } ! final void setCharField(Object obj, char val) { VMObjectStreamClass.setCharNative(field, obj, val); } ! final void setShortField(Object obj, short val) { VMObjectStreamClass.setShortNative(field, obj, val); --- 356,374 ---- final void setBooleanField(Object obj, boolean val) { ! VMObjectStreamClass.setBooleanNative(field, obj, val); } final void setByteField(Object obj, byte val) { VMObjectStreamClass.setByteNative(field, obj, val); } ! final void setCharField(Object obj, char val) { VMObjectStreamClass.setCharNative(field, obj, val); } ! final void setShortField(Object obj, short val) { VMObjectStreamClass.setShortNative(field, obj, val); *************** public class ObjectStreamField *** 378,401 **** { VMObjectStreamClass.setIntNative(field, obj, val); } ! final void setLongField(Object obj, long val) { VMObjectStreamClass.setLongNative(field, obj, val); } ! final void setFloatField(Object obj, float val) { VMObjectStreamClass.setFloatNative(field, obj, val); } ! final void setDoubleField(Object obj, double val) { VMObjectStreamClass.setDoubleNative(field, obj, val); } ! final void setObjectField(Object obj, Object val) ! { VMObjectStreamClass.setObjectNative(field, obj, val); } } --- 378,401 ---- { VMObjectStreamClass.setIntNative(field, obj, val); } ! final void setLongField(Object obj, long val) { VMObjectStreamClass.setLongNative(field, obj, val); } ! final void setFloatField(Object obj, float val) { VMObjectStreamClass.setFloatNative(field, obj, val); } ! final void setDoubleField(Object obj, double val) { VMObjectStreamClass.setDoubleNative(field, obj, val); } ! final void setObjectField(Object obj, Object val) ! { VMObjectStreamClass.setObjectNative(field, obj, val); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/OutputStream.java gcc-4.6.0/libjava/classpath/java/io/OutputStream.java *** gcc-4.5.2/libjava/classpath/java/io/OutputStream.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/io/OutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 39,48 **** package java.io; /** ! * This abstract class forms the base of the hierarchy of classes that * write output as a stream of bytes. It provides a common set of methods * for writing bytes to stream. Subclasses implement and/or extend these ! * methods to write bytes in a particular manner or to a particular * destination such as a file on disk or network connection. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 39,48 ---- package java.io; /** ! * This abstract class forms the base of the hierarchy of classes that * write output as a stream of bytes. It provides a common set of methods * for writing bytes to stream. Subclasses implement and/or extend these ! * methods to write bytes in a particular manner or to a particular * destination such as a file on disk or network connection. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** public abstract class OutputStream imple *** 65,71 **** * Subclasses must provide an implementation of this abstract method * * @param b The byte to be written to the output stream, passed as ! * the low eight bits of an int * * @exception IOException If an error occurs */ --- 65,71 ---- * Subclasses must provide an implementation of this abstract method * * @param b The byte to be written to the output stream, passed as ! * the low eight bits of an int * * @exception IOException If an error occurs */ *************** public abstract class OutputStream imple *** 98,104 **** * @param b The array of bytes to write from * @param off The index into the array to start writing from * @param len The number of bytes to write ! * * @exception IOException If an error occurs */ public void write (byte[] b, int off, int len) --- 98,104 ---- * @param b The array of bytes to write from * @param off The index into the array to start writing from * @param len The number of bytes to write ! * * @exception IOException If an error occurs */ public void write (byte[] b, int off, int len) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/OutputStreamWriter.java gcc-4.6.0/libjava/classpath/java/io/OutputStreamWriter.java *** gcc-4.5.2/libjava/classpath/java/io/OutputStreamWriter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/OutputStreamWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.nio.charset.MalformedInputEx *** 79,85 **** * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Per Bothner (bothner@cygnus.com) ! * @date April 17, 1998. */ public class OutputStreamWriter extends Writer { --- 79,85 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Per Bothner (bothner@cygnus.com) ! * @date April 17, 1998. */ public class OutputStreamWriter extends Writer { *************** public class OutputStreamWriter extends *** 111,123 **** * design, there is no way to determine which encodings are supported. * * @param out The OutputStream to write to ! * @param encoding_scheme The name of the encoding scheme to use for * character to byte translation * ! * @exception UnsupportedEncodingException If the named encoding is * not available. */ ! public OutputStreamWriter (OutputStream out, String encoding_scheme) throws UnsupportedEncodingException { CharsetEncoder encoder; --- 111,123 ---- * design, there is no way to determine which encodings are supported. * * @param out The OutputStream to write to ! * @param encoding_scheme The name of the encoding scheme to use for * character to byte translation * ! * @exception UnsupportedEncodingException If the named encoding is * not available. */ ! public OutputStreamWriter (OutputStream out, String encoding_scheme) throws UnsupportedEncodingException { CharsetEncoder encoder; *************** public class OutputStreamWriter extends *** 125,182 **** this.out = out; outputBuffer = CharBuffer.allocate(BUFFER_SIZE); ! try { ! // Don't use NIO if avoidable ! if(EncodingHelper.isISOLatin1(encoding_scheme)) ! { ! encodingName = "ISO8859_1"; ! encoder = null; ! } else ! { ! /* ! * Workaround for encodings with a byte-order-mark. ! * We only want to write it once per stream. ! */ ! try ! { ! if(encoding_scheme.equalsIgnoreCase("UnicodeBig") || ! encoding_scheme.equalsIgnoreCase("UTF-16") || ! encoding_scheme.equalsIgnoreCase("UTF16")) ! { ! encoding_scheme = "UTF-16BE"; ! out.write((byte)0xFE); ! out.write((byte)0xFF); ! } ! else if(encoding_scheme.equalsIgnoreCase("UnicodeLittle")) ! { ! encoding_scheme = "UTF-16LE"; ! out.write((byte)0xFF); ! out.write((byte)0xFE); ! } ! } ! catch(IOException ioe) ! { ! } ! ! Charset cs = EncodingHelper.getCharset(encoding_scheme); ! if(cs == null) ! throw new UnsupportedEncodingException("Encoding "+encoding_scheme+ ! " unknown"); ! encoder = cs.newEncoder(); ! encodingName = EncodingHelper.getOldCanonical(cs.name()); ! ! encoder.onMalformedInput(CodingErrorAction.REPLACE); ! encoder.onUnmappableCharacter(CodingErrorAction.REPLACE); ! } ! } ! catch(RuntimeException e) { ! // Default to ISO Latin-1, will happen if this is called, for instance, ! // before the NIO provider is loadable. ! encoder = null; ! encodingName = "ISO8859_1"; } this.encoder = encoder; this.encodingName = encodingName; --- 125,182 ---- this.out = out; outputBuffer = CharBuffer.allocate(BUFFER_SIZE); ! try { ! // Don't use NIO if avoidable ! if(EncodingHelper.isISOLatin1(encoding_scheme)) ! { ! encodingName = "ISO8859_1"; ! encoder = null; ! } else ! { ! /* ! * Workaround for encodings with a byte-order-mark. ! * We only want to write it once per stream. ! */ ! try ! { ! if(encoding_scheme.equalsIgnoreCase("UnicodeBig") || ! encoding_scheme.equalsIgnoreCase("UTF-16") || ! encoding_scheme.equalsIgnoreCase("UTF16")) ! { ! encoding_scheme = "UTF-16BE"; ! out.write((byte)0xFE); ! out.write((byte)0xFF); ! } ! else if(encoding_scheme.equalsIgnoreCase("UnicodeLittle")) ! { ! encoding_scheme = "UTF-16LE"; ! out.write((byte)0xFF); ! out.write((byte)0xFE); ! } ! } ! catch(IOException ioe) ! { ! } ! ! Charset cs = EncodingHelper.getCharset(encoding_scheme); ! if(cs == null) ! throw new UnsupportedEncodingException("Encoding "+encoding_scheme+ ! " unknown"); ! encoder = cs.newEncoder(); ! encodingName = EncodingHelper.getOldCanonical(cs.name()); ! ! encoder.onMalformedInput(CodingErrorAction.REPLACE); ! encoder.onUnmappableCharacter(CodingErrorAction.REPLACE); ! } ! } ! catch(RuntimeException e) { ! // Default to ISO Latin-1, will happen if this is called, for instance, ! // before the NIO provider is loadable. ! encoder = null; ! encodingName = "ISO8859_1"; } this.encoder = encoder; this.encodingName = encodingName; *************** public class OutputStreamWriter extends *** 194,216 **** String encodingName; this.out = out; outputBuffer = CharBuffer.allocate(BUFFER_SIZE); ! try { ! String encoding = System.getProperty("file.encoding"); ! Charset cs = Charset.forName(encoding); ! encoder = cs.newEncoder(); ! encodingName = EncodingHelper.getOldCanonical(cs.name()); ! } ! catch(RuntimeException e) { ! encoder = null; ! encodingName = "ISO8859_1"; } if(encoder != null) { ! encoder.onMalformedInput(CodingErrorAction.REPLACE); ! encoder.onUnmappableCharacter(CodingErrorAction.REPLACE); } this.encoder = encoder; this.encodingName = encodingName; --- 194,216 ---- String encodingName; this.out = out; outputBuffer = CharBuffer.allocate(BUFFER_SIZE); ! try { ! String encoding = System.getProperty("file.encoding"); ! Charset cs = Charset.forName(encoding); ! encoder = cs.newEncoder(); ! encodingName = EncodingHelper.getOldCanonical(cs.name()); ! } ! catch(RuntimeException e) { ! encoder = null; ! encodingName = "ISO8859_1"; } if(encoder != null) { ! encoder.onMalformedInput(CodingErrorAction.REPLACE); ! encoder.onUnmappableCharacter(CodingErrorAction.REPLACE); } this.encoder = encoder; this.encodingName = encodingName; *************** public class OutputStreamWriter extends *** 222,228 **** * * @param out The OutputStream to write to * @param cs The Charset of the encoding to use ! * * @since 1.5 */ public OutputStreamWriter(OutputStream out, Charset cs) --- 222,228 ---- * * @param out The OutputStream to write to * @param cs The Charset of the encoding to use ! * * @since 1.5 */ public OutputStreamWriter(OutputStream out, Charset cs) *************** public class OutputStreamWriter extends *** 234,240 **** outputBuffer = CharBuffer.allocate(BUFFER_SIZE); encodingName = EncodingHelper.getOldCanonical(cs.name()); } ! /** * This method initializes a new instance of OutputStreamWriter * to write to the specified stream using a given --- 234,240 ---- outputBuffer = CharBuffer.allocate(BUFFER_SIZE); encodingName = EncodingHelper.getOldCanonical(cs.name()); } ! /** * This method initializes a new instance of OutputStreamWriter * to write to the specified stream using a given *************** public class OutputStreamWriter extends *** 242,248 **** * * @param out The OutputStream to write to * @param enc The CharsetEncoder to encode the output with ! * * @since 1.5 */ public OutputStreamWriter(OutputStream out, CharsetEncoder enc) --- 242,248 ---- * * @param out The OutputStream to write to * @param enc The CharsetEncoder to encode the output with ! * * @since 1.5 */ public OutputStreamWriter(OutputStream out, CharsetEncoder enc) *************** public class OutputStreamWriter extends *** 258,264 **** } /** ! * This method closes this stream, and the underlying * OutputStream * * @exception IOException If an error occurs --- 258,264 ---- } /** ! * This method closes this stream, and the underlying * OutputStream * * @exception IOException If an error occurs *************** public class OutputStreamWriter extends *** 291,307 **** */ public void flush () throws IOException { ! if(out != null){ ! if(outputBuffer != null){ ! char[] buf = new char[outputBuffer.position()]; ! if(buf.length > 0){ ! outputBuffer.flip(); ! outputBuffer.get(buf); ! writeConvert(buf, 0, buf.length); ! outputBuffer.clear(); ! } ! } ! out.flush (); } } --- 291,307 ---- */ public void flush () throws IOException { ! if(out != null){ ! if(outputBuffer != null){ ! char[] buf = new char[outputBuffer.position()]; ! if(buf.length > 0){ ! outputBuffer.flip(); ! outputBuffer.get(buf); ! writeConvert(buf, 0, buf.length); ! outputBuffer.clear(); ! } ! } ! out.flush (); } } *************** public class OutputStreamWriter extends *** 324,394 **** throw new IOException("Buffer is null."); if(outputBuffer != null) ! { ! if(count >= outputBuffer.remaining()) ! { ! int r = outputBuffer.remaining(); ! outputBuffer.put(buf, offset, r); ! writeConvert(outputBuffer.array(), 0, BUFFER_SIZE); ! outputBuffer.clear(); ! offset += r; ! count -= r; ! // if the remaining bytes is larger than the whole buffer, ! // just don't buffer. ! if(count >= outputBuffer.remaining()){ writeConvert(buf, offset, count); ! return; ! } ! } ! outputBuffer.put(buf, offset, count); ! } else writeConvert(buf, offset, count); } /** * Converts and writes characters. */ ! private void writeConvert (char[] buf, int offset, int count) throws IOException { if(encoder == null) { byte[] b = new byte[count]; for(int i=0;icount bytes from the specified * String starting at position offset into the * String. * * @param str The String to write chars from ! * @param offset The position in the String to start * writing chars from * @param count The number of chars to write * --- 324,394 ---- throw new IOException("Buffer is null."); if(outputBuffer != null) ! { ! if(count >= outputBuffer.remaining()) ! { ! int r = outputBuffer.remaining(); ! outputBuffer.put(buf, offset, r); ! writeConvert(outputBuffer.array(), 0, BUFFER_SIZE); ! outputBuffer.clear(); ! offset += r; ! count -= r; ! // if the remaining bytes is larger than the whole buffer, ! // just don't buffer. ! if(count >= outputBuffer.remaining()){ writeConvert(buf, offset, count); ! return; ! } ! } ! outputBuffer.put(buf, offset, count); ! } else writeConvert(buf, offset, count); } /** * Converts and writes characters. */ ! private void writeConvert (char[] buf, int offset, int count) throws IOException { if(encoder == null) { byte[] b = new byte[count]; for(int i=0;icount bytes from the specified * String starting at position offset into the * String. * * @param str The String to write chars from ! * @param offset The position in the String to start * writing chars from * @param count The number of chars to write * *************** public class OutputStreamWriter extends *** 411,430 **** */ public void write (int ch) throws IOException { ! // No buffering, no encoding ... just pass through ! if (encoder == null && outputBuffer == null) { ! out.write(nullConversion((char)ch)); ! } else { ! if (outputBuffer != null) { ! if (outputBuffer.remaining() == 0) { ! writeConvert(outputBuffer.array(), 0, BUFFER_SIZE); ! outputBuffer.clear(); ! } ! outputBuffer.put((char)ch); ! } else { ! writeConvert(new char[]{ (char)ch }, 0, 1); ! } ! } } } // class OutputStreamWriter - --- 411,429 ---- */ public void write (int ch) throws IOException { ! // No buffering, no encoding ... just pass through ! if (encoder == null && outputBuffer == null) { ! out.write(nullConversion((char)ch)); ! } else { ! if (outputBuffer != null) { ! if (outputBuffer.remaining() == 0) { ! writeConvert(outputBuffer.array(), 0, BUFFER_SIZE); ! outputBuffer.clear(); ! } ! outputBuffer.put((char)ch); ! } else { ! writeConvert(new char[]{ (char)ch }, 0, 1); ! } ! } } } // class OutputStreamWriter diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/PipedInputStream.java gcc-4.6.0/libjava/classpath/java/io/PipedInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/PipedInputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/PipedInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 37,57 **** package java.io; ! // NOTE: This implementation is very similar to that of PipedReader. If you ! // fix a bug in here, chances are you should make a similar change to the // PipedReader code. /** * An input stream that reads its bytes from an output stream ! * to which it is connected. *

            * Data is read and written to an internal buffer. It is highly recommended ! * that the PipedInputStream and connected * PipedOutputStream ! * be part of different threads. If they are not, the read and write * operations could deadlock their thread. * ! * @specnote The JDK implementation appears to have some undocumented * functionality where it keeps track of what thread is writing * to pipe and throws an IOException if that thread susequently * dies. This behaviour seems dubious and unreliable - we don't --- 37,57 ---- package java.io; ! // NOTE: This implementation is very similar to that of PipedReader. If you ! // fix a bug in here, chances are you should make a similar change to the // PipedReader code. /** * An input stream that reads its bytes from an output stream ! * to which it is connected. *

            * Data is read and written to an internal buffer. It is highly recommended ! * that the PipedInputStream and connected * PipedOutputStream ! * be part of different threads. If they are not, the read and write * operations could deadlock their thread. * ! * @specnote The JDK implementation appears to have some undocumented * functionality where it keeps track of what thread is writing * to pipe and throws an IOException if that thread susequently * dies. This behaviour seems dubious and unreliable - we don't *************** package java.io; *** 61,67 **** */ public class PipedInputStream extends InputStream { ! /** PipedOutputStream to which this is connected. Null only if this * InputStream hasn't been connected yet. */ PipedOutputStream source; --- 61,67 ---- */ public class PipedInputStream extends InputStream { ! /** PipedOutputStream to which this is connected. Null only if this * InputStream hasn't been connected yet. */ PipedOutputStream source; *************** public class PipedInputStream extends In *** 86,92 **** /** * The index into buffer where the next byte from the connected ! * PipedOutputStream will be written. If this variable is * equal to out, then the buffer is full. If set to < 0, * the buffer is empty. */ --- 86,92 ---- /** * The index into buffer where the next byte from the connected ! * PipedOutputStream will be written. If this variable is * equal to out, then the buffer is full. If set to < 0, * the buffer is empty. */ *************** public class PipedInputStream extends In *** 101,108 **** private byte[] read_buf = new byte[1]; /** ! * Creates a new PipedInputStream that is not connected to a ! * PipedOutputStream. It must be connected before bytes can * be read from this stream. */ public PipedInputStream() --- 101,108 ---- private byte[] read_buf = new byte[1]; /** ! * Creates a new PipedInputStream that is not connected to a ! * PipedOutputStream. It must be connected before bytes can * be read from this stream. */ public PipedInputStream() *************** public class PipedInputStream extends In *** 114,137 **** * Creates a new PipedInputStream of the given size that is not * connected to a PipedOutputStream. * It must be connected before bytes can be read from this stream. ! * * @since 1.6 * @since IllegalArgumentException If pipeSize <= 0. */ ! public PipedInputStream(int pipeSize) throws IllegalArgumentException { if (pipeSize <= 0) throw new IllegalArgumentException("pipeSize must be > 0"); ! this.buffer = new byte[pipeSize]; } ! /** * This constructor creates a new PipedInputStream and connects ! * it to the passed in PipedOutputStream. The stream is then * ready for reading. * ! * @param source The PipedOutputStream to connect this * stream to * * @exception IOException If source is already connected. --- 114,137 ---- * Creates a new PipedInputStream of the given size that is not * connected to a PipedOutputStream. * It must be connected before bytes can be read from this stream. ! * * @since 1.6 * @since IllegalArgumentException If pipeSize <= 0. */ ! public PipedInputStream(int pipeSize) throws IllegalArgumentException { if (pipeSize <= 0) throw new IllegalArgumentException("pipeSize must be > 0"); ! this.buffer = new byte[pipeSize]; } ! /** * This constructor creates a new PipedInputStream and connects ! * it to the passed in PipedOutputStream. The stream is then * ready for reading. * ! * @param source The PipedOutputStream to connect this * stream to * * @exception IOException If source is already connected. *************** public class PipedInputStream extends In *** 147,153 **** * size and connects it to the passed in PipedOutputStream. * The stream is then ready for reading. * ! * @param source The PipedOutputStream to connect this * stream to * * @since 1.6 --- 147,153 ---- * size and connects it to the passed in PipedOutputStream. * The stream is then ready for reading. * ! * @param source The PipedOutputStream to connect this * stream to * * @since 1.6 *************** public class PipedInputStream extends In *** 159,188 **** this(pipeSize); connect(source); } ! /** ! * This method connects this stream to the passed in * PipedOutputStream. * This stream is then ready for reading. If this stream is already * connected or has been previously closed, then an exception is thrown * * @param source The PipedOutputStream to connect this stream to * ! * @exception IOException If this PipedInputStream or source * has been connected already. */ public void connect(PipedOutputStream source) throws IOException { ! // The JDK (1.3) does not appear to check for a previously closed // connection here. ! if (this.source != null || source.sink != null) throw new IOException ("Already connected"); ! source.sink = this; this.source = source; } ! /** * This method receives a byte of input from the source PipedOutputStream. * If the internal circular buffer is full, this method blocks. --- 159,188 ---- this(pipeSize); connect(source); } ! /** ! * This method connects this stream to the passed in * PipedOutputStream. * This stream is then ready for reading. If this stream is already * connected or has been previously closed, then an exception is thrown * * @param source The PipedOutputStream to connect this stream to * ! * @exception IOException If this PipedInputStream or source * has been connected already. */ public void connect(PipedOutputStream source) throws IOException { ! // The JDK (1.3) does not appear to check for a previously closed // connection here. ! if (this.source != null || source.sink != null) throw new IOException ("Already connected"); ! source.sink = this; this.source = source; } ! /** * This method receives a byte of input from the source PipedOutputStream. * If the internal circular buffer is full, this method blocks. *************** public class PipedInputStream extends In *** 210,216 **** * @specnote This code should be in PipedOutputStream.write, but we * put it here in order to support that bizarre recieve(int) * method. ! */ synchronized void receive(byte[] buf, int offset, int len) throws IOException { --- 210,216 ---- * @specnote This code should be in PipedOutputStream.write, but we * put it here in order to support that bizarre recieve(int) * method. ! */ synchronized void receive(byte[] buf, int offset, int len) throws IOException { *************** public class PipedInputStream extends In *** 219,277 **** int bufpos = offset; int copylen; ! while (len > 0) { try ! { ! while (in == out) ! { ! // The pipe is full. Wake up any readers and wait for them. ! notifyAll(); ! wait(); ! // The pipe could have been closed while we were waiting. ! if (closed) ! throw new IOException ("Pipe closed"); ! } ! } ! catch (InterruptedException ix) ! { throw new InterruptedIOException (); ! } ! if (in < 0) // The pipe is empty. ! in = 0; ! ! // Figure out how many bytes from buf can be copied without ! // overrunning out or going past the length of the buffer. ! if (in < out) ! copylen = Math.min (len, out - in); ! else ! copylen = Math.min (len, buffer.length - in); ! // Copy bytes until the pipe is filled, wrapping if necessary. ! System.arraycopy(buf, bufpos, buffer, in, copylen); ! len -= copylen; ! bufpos += copylen; ! in += copylen; ! if (in == buffer.length) ! in = 0; } // Notify readers that new data is in the pipe. notifyAll(); } ! /** * This method reads one byte from the stream. * -1 is returned to indicated that no bytes can be read * because the end of the stream was reached. If the stream is already * closed, a -1 will again be returned to indicate the end of the stream. ! * *

            This method will block if no byte is available to be read.

            * * @return the value of the read byte value, or -1 of the end of the stream * was reached ! * * @throws IOException if an error occured */ public int read() throws IOException --- 219,277 ---- int bufpos = offset; int copylen; ! while (len > 0) { try ! { ! while (in == out) ! { ! // The pipe is full. Wake up any readers and wait for them. ! notifyAll(); ! wait(); ! // The pipe could have been closed while we were waiting. ! if (closed) ! throw new IOException ("Pipe closed"); ! } ! } ! catch (InterruptedException ix) ! { throw new InterruptedIOException (); ! } ! if (in < 0) // The pipe is empty. ! in = 0; ! // Figure out how many bytes from buf can be copied without ! // overrunning out or going past the length of the buffer. ! if (in < out) ! copylen = Math.min (len, out - in); ! else ! copylen = Math.min (len, buffer.length - in); ! ! // Copy bytes until the pipe is filled, wrapping if necessary. ! System.arraycopy(buf, bufpos, buffer, in, copylen); ! len -= copylen; ! bufpos += copylen; ! in += copylen; ! if (in == buffer.length) ! in = 0; } // Notify readers that new data is in the pipe. notifyAll(); } ! /** * This method reads one byte from the stream. * -1 is returned to indicated that no bytes can be read * because the end of the stream was reached. If the stream is already * closed, a -1 will again be returned to indicate the end of the stream. ! * *

            This method will block if no byte is available to be read.

            * * @return the value of the read byte value, or -1 of the end of the stream * was reached ! * * @throws IOException if an error occured */ public int read() throws IOException *************** public class PipedInputStream extends In *** 285,298 **** int r = read(read_buf, 0, 1); return r != -1 ? (read_buf[0] & 0xff) : -1; } ! /** * This method reads bytes from the stream into a caller supplied buffer. ! * It starts storing bytes at position offset into the * buffer and ! * reads a maximum of len bytes. Note that this method * can actually ! * read fewer than len bytes. The actual number of bytes * read is * returned. A -1 is returned to indicated that no bytes can be read * because the end of the stream was reached - ie close() was called on the --- 285,298 ---- int r = read(read_buf, 0, 1); return r != -1 ? (read_buf[0] & 0xff) : -1; } ! /** * This method reads bytes from the stream into a caller supplied buffer. ! * It starts storing bytes at position offset into the * buffer and ! * reads a maximum of len bytes. Note that this method * can actually ! * read fewer than len bytes. The actual number of bytes * read is * returned. A -1 is returned to indicated that no bytes can be read * because the end of the stream was reached - ie close() was called on the *************** public class PipedInputStream extends In *** 306,312 **** * * @exception IOException If close() was called on this Piped * InputStream. ! */ public synchronized int read(byte[] buf, int offset, int len) throws IOException { --- 306,312 ---- * * @exception IOException If close() was called on this Piped * InputStream. ! */ public synchronized int read(byte[] buf, int offset, int len) throws IOException { *************** public class PipedInputStream extends In *** 319,379 **** if (len == 0) return 0; ! // If the buffer is empty, wait until there is something in the pipe // to read. try { ! while (in < 0) ! { ! if (source.closed) ! return -1; ! wait(); ! } } catch (InterruptedException ix) { throw new InterruptedIOException(); } ! int total = 0; int copylen; ! while (true) { ! // Figure out how many bytes from the pipe can be copied without ! // overrunning in or going past the length of buf. ! if (out < in) ! copylen = Math.min (len, in - out); ! else ! copylen = Math.min (len, buffer.length - out); System.arraycopy (buffer, out, buf, offset, copylen); ! offset += copylen; ! len -= copylen; ! out += copylen; ! total += copylen; ! ! if (out == buffer.length) ! out = 0; ! ! if (out == in) ! { ! // Pipe is now empty. ! in = -1; ! out = 0; ! } // If output buffer is filled or the pipe is empty, we're done. ! if (len == 0 || in == -1) ! { ! // Notify any waiting outputstream that there is now space ! // to write. ! notifyAll(); ! return total; ! } } } ! /** * This method returns the number of bytes that can be read from this stream * before blocking could occur. This is the number of bytes that are --- 319,379 ---- if (len == 0) return 0; ! // If the buffer is empty, wait until there is something in the pipe // to read. try { ! while (in < 0) ! { ! if (source.closed) ! return -1; ! wait(); ! } } catch (InterruptedException ix) { throw new InterruptedIOException(); } ! int total = 0; int copylen; ! while (true) { ! // Figure out how many bytes from the pipe can be copied without ! // overrunning in or going past the length of buf. ! if (out < in) ! copylen = Math.min (len, in - out); ! else ! copylen = Math.min (len, buffer.length - out); System.arraycopy (buffer, out, buf, offset, copylen); ! offset += copylen; ! len -= copylen; ! out += copylen; ! total += copylen; ! ! if (out == buffer.length) ! out = 0; ! ! if (out == in) ! { ! // Pipe is now empty. ! in = -1; ! out = 0; ! } // If output buffer is filled or the pipe is empty, we're done. ! if (len == 0 || in == -1) ! { ! // Notify any waiting outputstream that there is now space ! // to write. ! notifyAll(); ! return total; ! } } } ! /** * This method returns the number of bytes that can be read from this stream * before blocking could occur. This is the number of bytes that are *************** public class PipedInputStream extends In *** 384,395 **** * @return The number of bytes that can be read before blocking might occur * * @exception IOException If an error occurs ! */ public synchronized int available() throws IOException { ! // The JDK 1.3 implementation does not appear to check for the closed or // unconnected stream conditions here. ! if (in < 0) return 0; else if (out < in) --- 384,395 ---- * @return The number of bytes that can be read before blocking might occur * * @exception IOException If an error occurs ! */ public synchronized int available() throws IOException { ! // The JDK 1.3 implementation does not appear to check for the closed or // unconnected stream conditions here. ! if (in < 0) return 0; else if (out < in) *************** public class PipedInputStream extends In *** 397,403 **** else return (buffer.length - out) + in; } ! /** * This methods closes the stream so that no more data can be read * from it. --- 397,403 ---- else return (buffer.length - out) + in; } ! /** * This methods closes the stream so that no more data can be read * from it. *************** public class PipedInputStream extends In *** 411,414 **** notifyAll(); } } - --- 411,413 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/PipedOutputStream.java gcc-4.6.0/libjava/classpath/java/io/PipedOutputStream.java *** gcc-4.5.2/libjava/classpath/java/io/PipedOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/PipedOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 38,53 **** package java.io; ! // NOTE: This implementation is very similar to that of PipedWriter. If you ! // fix a bug in here, chances are you should make a similar change to the // PipedWriter code. /** ! * This class writes its bytes to a PipedInputStream to * which it is connected. *

            * It is highly recommended that a PipedOutputStream and its ! * connected PipedInputStream be in different threads. If * they are in the same thread, read and write operations could deadlock * the thread. * --- 38,53 ---- package java.io; ! // NOTE: This implementation is very similar to that of PipedWriter. If you ! // fix a bug in here, chances are you should make a similar change to the // PipedWriter code. /** ! * This class writes its bytes to a PipedInputStream to * which it is connected. *

            * It is highly recommended that a PipedOutputStream and its ! * connected PipedInputStream be in different threads. If * they are in the same thread, read and write operations could deadlock * the thread. * *************** package java.io; *** 55,68 **** */ public class PipedOutputStream extends OutputStream { ! /** Target PipedInputStream to which this is connected. Null only if this * OutputStream hasn't been connected yet. */ PipedInputStream sink; ! /** Set to true if close() has been called on this OutputStream. */ boolean closed; ! ! /** * Create an unconnected PipedOutputStream. It must be connected * to a PipedInputStream using the connect * method prior to writing any data or an exception will be thrown. --- 55,68 ---- */ public class PipedOutputStream extends OutputStream { ! /** Target PipedInputStream to which this is connected. Null only if this * OutputStream hasn't been connected yet. */ PipedInputStream sink; ! /** Set to true if close() has been called on this OutputStream. */ boolean closed; ! ! /** * Create an unconnected PipedOutputStream. It must be connected * to a PipedInputStream using the connect * method prior to writing any data or an exception will be thrown. *************** public class PipedOutputStream extends O *** 78,84 **** * * @param sink The PipedInputStream to connect this stream to. * ! * @exception IOException If sink has already been connected * to a different PipedOutputStream. */ public PipedOutputStream(PipedInputStream sink) throws IOException --- 78,84 ---- * * @param sink The PipedInputStream to connect this stream to. * ! * @exception IOException If sink has already been connected * to a different PipedOutputStream. */ public PipedOutputStream(PipedInputStream sink) throws IOException *************** public class PipedOutputStream extends O *** 87,93 **** } /** ! * Connects this object to the specified PipedInputStream * object. This stream will then be ready for writing. * * @param sink The PipedInputStream to connect this stream to --- 87,93 ---- } /** ! * Connects this object to the specified PipedInputStream * object. This stream will then be ready for writing. * * @param sink The PipedInputStream to connect this stream to *************** public class PipedOutputStream extends O *** 103,131 **** } /** ! * Write a single byte of date to the stream. Note that this method will ! * block if the PipedInputStream to which this object is * connected has a full buffer. * * @param b The byte of data to be written, passed as an int. * * @exception IOException If the stream has not been connected or has * been closed. ! */ public void write(int b) throws IOException { if (sink == null) throw new IOException ("Not connected"); if (closed) throw new IOException ("Pipe closed"); ! sink.receive (b); } ! /** * This method writes len bytes of data from the byte array * buf starting at index offset in the array ! * to the stream. Note that this method will block if the * PipedInputStream to which this object is connected has * a buffer that cannot hold all of the bytes to be written. * --- 103,131 ---- } /** ! * Write a single byte of date to the stream. Note that this method will ! * block if the PipedInputStream to which this object is * connected has a full buffer. * * @param b The byte of data to be written, passed as an int. * * @exception IOException If the stream has not been connected or has * been closed. ! */ public void write(int b) throws IOException { if (sink == null) throw new IOException ("Not connected"); if (closed) throw new IOException ("Pipe closed"); ! sink.receive (b); } ! /** * This method writes len bytes of data from the byte array * buf starting at index offset in the array ! * to the stream. Note that this method will block if the * PipedInputStream to which this object is connected has * a buffer that cannot hold all of the bytes to be written. * *************** public class PipedOutputStream extends O *** 142,148 **** throw new IOException ("Not connected"); if (closed) throw new IOException ("Pipe closed"); ! sink.receive(buffer, offset, len); } --- 142,148 ---- throw new IOException ("Not connected"); if (closed) throw new IOException ("Pipe closed"); ! sink.receive(buffer, offset, len); } *************** public class PipedOutputStream extends O *** 157,163 **** public void flush() throws IOException { } ! /** * This method closes this stream so that no more data can be written * to it. Any further attempts to write to this stream may throw an --- 157,163 ---- public void flush() throws IOException { } ! /** * This method closes this stream so that no more data can be written * to it. Any further attempts to write to this stream may throw an *************** public class PipedOutputStream extends O *** 170,181 **** // A close call on an unconnected PipedOutputStream has no effect. if (sink != null) { ! closed = true; ! // Notify any waiting readers that the stream is now closed. ! synchronized (sink) ! { ! sink.notifyAll(); ! } } } } --- 170,181 ---- // A close call on an unconnected PipedOutputStream has no effect. if (sink != null) { ! closed = true; ! // Notify any waiting readers that the stream is now closed. ! synchronized (sink) ! { ! sink.notifyAll(); ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/PipedReader.java gcc-4.6.0/libjava/classpath/java/io/PipedReader.java *** gcc-4.5.2/libjava/classpath/java/io/PipedReader.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/PipedReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 37,56 **** package java.io; ! // NOTE: This implementation is very similar to that of PipedInputStream. ! // If you fix a bug in here, chances are you should make a similar change to // the PipedInputStream code. /** ! * An input stream that reads characters from a piped writer to which it is ! * connected. *

            * Data is read and written to an internal buffer. It is highly recommended * that the PipedReader and connected PipedWriter * be part of different threads. If they are not, there is a possibility * that the read and write operations could deadlock their thread. * ! * @specnote The JDK implementation appears to have some undocumented * functionality where it keeps track of what thread is writing * to pipe and throws an IOException if that thread susequently * dies. This behaviour seems dubious and unreliable - we don't --- 37,56 ---- package java.io; ! // NOTE: This implementation is very similar to that of PipedInputStream. ! // If you fix a bug in here, chances are you should make a similar change to // the PipedInputStream code. /** ! * An input stream that reads characters from a piped writer to which it is ! * connected. *

            * Data is read and written to an internal buffer. It is highly recommended * that the PipedReader and connected PipedWriter * be part of different threads. If they are not, there is a possibility * that the read and write operations could deadlock their thread. * ! * @specnote The JDK implementation appears to have some undocumented * functionality where it keeps track of what thread is writing * to pipe and throws an IOException if that thread susequently * dies. This behaviour seems dubious and unreliable - we don't *************** package java.io; *** 60,66 **** */ public class PipedReader extends Reader { ! /** PipedWriter to which this is connected. Null only if this * Reader hasn't been connected yet. */ PipedWriter source; --- 60,66 ---- */ public class PipedReader extends Reader { ! /** PipedWriter to which this is connected. Null only if this * Reader hasn't been connected yet. */ PipedWriter source; *************** public class PipedReader extends Reader *** 80,86 **** /** * The index into buffer where the next char from the connected ! * PipedWriter will be written. If this variable is * equal to out, then the buffer is full. If set to < 0, * the buffer is empty. */ --- 80,86 ---- /** * The index into buffer where the next char from the connected ! * PipedWriter will be written. If this variable is * equal to out, then the buffer is full. If set to < 0, * the buffer is empty. */ *************** public class PipedReader extends Reader *** 95,102 **** char[] read_buf = new char[1]; /** ! * Creates a new PipedReader that is not connected to a ! * PipedWriter. It must be connected before chars can * be read from this stream. */ public PipedReader() --- 95,102 ---- char[] read_buf = new char[1]; /** ! * Creates a new PipedReader that is not connected to a ! * PipedWriter. It must be connected before chars can * be read from this stream. */ public PipedReader() *************** public class PipedReader extends Reader *** 105,111 **** /** * This constructor creates a new PipedReader and connects ! * it to the passed in PipedWriter. The stream is then * ready for reading. * * @param source The PipedWriter to connect this stream to --- 105,111 ---- /** * This constructor creates a new PipedReader and connects ! * it to the passed in PipedWriter. The stream is then * ready for reading. * * @param source The PipedWriter to connect this stream to *************** public class PipedReader extends Reader *** 118,145 **** } /** ! * This method connects this stream to the passed in * PipedWriter. * This stream is then ready for reading. If this stream is already * connected or has been previously closed, then an exception is thrown * * @param source The PipedWriter to connect this stream to * ! * @exception IOException If this PipedReader or source * has been connected already. */ public void connect(PipedWriter source) throws IOException { ! // The JDK (1.3) does not appear to check for a previously closed // connection here. ! if (this.source != null || source.sink != null) throw new IOException ("Already connected"); ! source.sink = this; this.source = source; } ! /** * This method is used by the connected PipedWriter to * write chars into the buffer. --- 118,145 ---- } /** ! * This method connects this stream to the passed in * PipedWriter. * This stream is then ready for reading. If this stream is already * connected or has been previously closed, then an exception is thrown * * @param source The PipedWriter to connect this stream to * ! * @exception IOException If this PipedReader or source * has been connected already. */ public void connect(PipedWriter source) throws IOException { ! // The JDK (1.3) does not appear to check for a previously closed // connection here. ! if (this.source != null || source.sink != null) throw new IOException ("Already connected"); ! source.sink = this; this.source = source; } ! /** * This method is used by the connected PipedWriter to * write chars into the buffer. *************** public class PipedReader extends Reader *** 152,218 **** * @specnote This code should be in PipedWriter.write, but we * put it here in order to support that bizarre recieve(int) * method. ! */ void receive(char[] buf, int offset, int len) throws IOException { synchronized (lock) { if (closed) ! throw new IOException ("Pipe closed"); int bufpos = offset; int copylen; while (len > 0) ! { try ! { ! while (in == out) ! { ! // The pipe is full. Wake up any readers and wait for them. ! lock.notifyAll(); ! lock.wait(); ! // The pipe could have been closed while we were waiting. ! if (closed) ! throw new IOException ("Pipe closed"); ! } ! } ! catch (InterruptedException ix) ! { throw new InterruptedIOException (); ! } ! if (in < 0) // The pipe is empty. ! in = 0; ! // Figure out how many chars from buf can be copied without ! // overrunning out or going past the length of the buffer. ! if (in < out) ! copylen = Math.min (len, out - in); ! else ! copylen = Math.min (len, buffer.length - in); ! // Copy chars until the pipe is filled, wrapping if necessary. ! System.arraycopy(buf, bufpos, buffer, in, copylen); ! len -= copylen; ! bufpos += copylen; ! in += copylen; ! if (in == buffer.length) ! in = 0; ! } // Notify readers that new data is in the pipe. lock.notifyAll(); } } ! /** * This method reads chars from the stream into a caller supplied buffer. ! * It starts storing chars at position offset into the * buffer and ! * reads a maximum of len chars. Note that this method * can actually ! * read fewer than len chars. The actual number of chars * read is * returned. A -1 is returned to indicated that no chars can be read * because the end of the stream was reached. If the stream is already --- 152,218 ---- * @specnote This code should be in PipedWriter.write, but we * put it here in order to support that bizarre recieve(int) * method. ! */ void receive(char[] buf, int offset, int len) throws IOException { synchronized (lock) { if (closed) ! throw new IOException ("Pipe closed"); int bufpos = offset; int copylen; while (len > 0) ! { try ! { ! while (in == out) ! { ! // The pipe is full. Wake up any readers and wait for them. ! lock.notifyAll(); ! lock.wait(); ! // The pipe could have been closed while we were waiting. ! if (closed) ! throw new IOException ("Pipe closed"); ! } ! } ! catch (InterruptedException ix) ! { throw new InterruptedIOException (); ! } ! if (in < 0) // The pipe is empty. ! in = 0; ! // Figure out how many chars from buf can be copied without ! // overrunning out or going past the length of the buffer. ! if (in < out) ! copylen = Math.min (len, out - in); ! else ! copylen = Math.min (len, buffer.length - in); ! // Copy chars until the pipe is filled, wrapping if necessary. ! System.arraycopy(buf, bufpos, buffer, in, copylen); ! len -= copylen; ! bufpos += copylen; ! in += copylen; ! if (in == buffer.length) ! in = 0; ! } // Notify readers that new data is in the pipe. lock.notifyAll(); } } ! /** * This method reads chars from the stream into a caller supplied buffer. ! * It starts storing chars at position offset into the * buffer and ! * reads a maximum of len chars. Note that this method * can actually ! * read fewer than len chars. The actual number of chars * read is * returned. A -1 is returned to indicated that no chars can be read * because the end of the stream was reached. If the stream is already *************** public class PipedReader extends Reader *** 231,242 **** int r = read(read_buf, 0, 1); return r != -1 ? read_buf[0] : -1; } ! /** ! * This method reads characters from the stream into a caller supplied ! * buffer. It starts storing chars at position offset into ! * the buffer and reads a maximum of len chars. Note that ! * this method can actually read fewer than len chars. * The actual number of chars read is * returned. A -1 is returned to indicated that no chars can be read * because the end of the stream was reached - ie close() was called on the --- 231,242 ---- int r = read(read_buf, 0, 1); return r != -1 ? read_buf[0] : -1; } ! /** ! * This method reads characters from the stream into a caller supplied ! * buffer. It starts storing chars at position offset into ! * the buffer and reads a maximum of len chars. Note that ! * this method can actually read fewer than len chars. * The actual number of chars read is * returned. A -1 is returned to indicated that no chars can be read * because the end of the stream was reached - ie close() was called on the *************** public class PipedReader extends Reader *** 250,351 **** * * @exception IOException If close() was called on this Piped * Reader. ! */ public int read(char[] buf, int offset, int len) throws IOException { synchronized (lock) { if (source == null) ! throw new IOException ("Not connected"); if (closed) ! throw new IOException ("Pipe closed"); // Don't block if nothing was requested. if (len == 0) return 0; ! // If the buffer is empty, wait until there is something in the pipe // to read. try ! { ! while (in < 0) ! { ! if (source.closed) ! return -1; ! lock.wait(); ! } ! } catch (InterruptedException ix) ! { throw new InterruptedIOException(); ! } int total = 0; int copylen; while (true) ! { ! // Figure out how many chars from the pipe can be copied without ! // overrunning in or going past the length of buf. ! if (out < in) ! copylen = Math.min (len, in - out); ! else ! copylen = Math.min (len, buffer.length - out); System.arraycopy (buffer, out, buf, offset, copylen); ! offset += copylen; ! len -= copylen; ! out += copylen; ! total += copylen; ! if (out == buffer.length) ! out = 0; ! if (out == in) ! { ! // Pipe is now empty. ! in = -1; ! out = 0; ! } // If output buffer is filled or the pipe is empty, we're done. ! if (len == 0 || in == -1) ! { ! // Notify any waiting Writer that there is now space ! // to write. ! lock.notifyAll(); ! return total; ! } ! } } } ! public boolean ready() throws IOException { ! // The JDK 1.3 implementation does not appear to check for the closed or // unconnected stream conditions here. However, checking for a // closed stream is explicitly required by the JDK 1.2 and 1.3 // documentation (for Reader.close()), so we do it. ! synchronized (lock) { if (closed) ! throw new IOException("Pipe closed"); if (in < 0) ! return false; int count; if (out < in) ! count = in - out; else ! count = (buffer.length - out) - in; return (count > 0); } } ! /** * This methods closes the stream so that no more data can be read * from it. --- 250,351 ---- * * @exception IOException If close() was called on this Piped * Reader. ! */ public int read(char[] buf, int offset, int len) throws IOException { synchronized (lock) { if (source == null) ! throw new IOException ("Not connected"); if (closed) ! throw new IOException ("Pipe closed"); // Don't block if nothing was requested. if (len == 0) return 0; ! // If the buffer is empty, wait until there is something in the pipe // to read. try ! { ! while (in < 0) ! { ! if (source.closed) ! return -1; ! lock.wait(); ! } ! } catch (InterruptedException ix) ! { throw new InterruptedIOException(); ! } int total = 0; int copylen; while (true) ! { ! // Figure out how many chars from the pipe can be copied without ! // overrunning in or going past the length of buf. ! if (out < in) ! copylen = Math.min (len, in - out); ! else ! copylen = Math.min (len, buffer.length - out); System.arraycopy (buffer, out, buf, offset, copylen); ! offset += copylen; ! len -= copylen; ! out += copylen; ! total += copylen; ! if (out == buffer.length) ! out = 0; ! if (out == in) ! { ! // Pipe is now empty. ! in = -1; ! out = 0; ! } // If output buffer is filled or the pipe is empty, we're done. ! if (len == 0 || in == -1) ! { ! // Notify any waiting Writer that there is now space ! // to write. ! lock.notifyAll(); ! return total; ! } ! } } } ! public boolean ready() throws IOException { ! // The JDK 1.3 implementation does not appear to check for the closed or // unconnected stream conditions here. However, checking for a // closed stream is explicitly required by the JDK 1.2 and 1.3 // documentation (for Reader.close()), so we do it. ! synchronized (lock) { if (closed) ! throw new IOException("Pipe closed"); if (in < 0) ! return false; int count; if (out < in) ! count = in - out; else ! count = (buffer.length - out) - in; return (count > 0); } } ! /** * This methods closes the stream so that no more data can be read * from it. *************** public class PipedReader extends Reader *** 362,365 **** } } } - --- 362,364 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/PipedWriter.java gcc-4.6.0/libjava/classpath/java/io/PipedWriter.java *** gcc-4.5.2/libjava/classpath/java/io/PipedWriter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/PipedWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 38,53 **** package java.io; ! // NOTE: This implementation is very similar to that of PipedOutputStream. ! // If you fix a bug in here, chances are you should make a similar change to // the PipedOutputStream code. /** ! * This class writes its chars to a PipedReader to * which it is connected. *

            * It is highly recommended that a PipedWriter and its ! * connected PipedReader be in different threads. If * they are in the same thread, read and write operations could deadlock * the thread. * --- 38,53 ---- package java.io; ! // NOTE: This implementation is very similar to that of PipedOutputStream. ! // If you fix a bug in here, chances are you should make a similar change to // the PipedOutputStream code. /** ! * This class writes its chars to a PipedReader to * which it is connected. *

            * It is highly recommended that a PipedWriter and its ! * connected PipedReader be in different threads. If * they are in the same thread, read and write operations could deadlock * the thread. * *************** package java.io; *** 55,71 **** */ public class PipedWriter extends Writer { ! /** Target PipedReader to which this is connected. Null only if this * Writer hasn't been connected yet. */ PipedReader sink; ! /** Set to true if close() has been called on this Writer. */ boolean closed; /** Buffer used to implement single-argument write */ char[] read_buf = new char[1]; ! ! /** * Create an unconnected PipedWriter. It must be connected * to a PipedReader using the connect * method prior to writing any data or an exception will be thrown. --- 55,71 ---- */ public class PipedWriter extends Writer { ! /** Target PipedReader to which this is connected. Null only if this * Writer hasn't been connected yet. */ PipedReader sink; ! /** Set to true if close() has been called on this Writer. */ boolean closed; /** Buffer used to implement single-argument write */ char[] read_buf = new char[1]; ! ! /** * Create an unconnected PipedWriter. It must be connected * to a PipedReader using the connect * method prior to writing any data or an exception will be thrown. *************** public class PipedWriter extends Writer *** 81,87 **** * * @param sink The PipedReader to connect this stream to. * ! * @exception IOException If sink has already been connected * to a different PipedWriter. */ public PipedWriter(PipedReader sink) throws IOException --- 81,87 ---- * * @param sink The PipedReader to connect this stream to. * ! * @exception IOException If sink has already been connected * to a different PipedWriter. */ public PipedWriter(PipedReader sink) throws IOException *************** public class PipedWriter extends Writer *** 90,96 **** } /** ! * Connects this object to the specified PipedReader * object. This stream will then be ready for writing. * * @param sink The PipedReader to connect this stream to --- 90,96 ---- } /** ! * Connects this object to the specified PipedReader * object. This stream will then be ready for writing. * * @param sink The PipedReader to connect this stream to *************** public class PipedWriter extends Writer *** 106,130 **** } /** ! * Write a single char of date to the stream. Note that this method will ! * block if the PipedReader to which this object is * connected has a full buffer. * * @param b The char of data to be written, passed as an int. * * @exception IOException If the stream has not been connected or has * been closed. ! */ public void write(int b) throws IOException { read_buf[0] = (char) (b & 0xffff); sink.receive (read_buf, 0, 1); } ! /** * This method writes len chars of data from the char array * buf starting at index offset in the array ! * to the stream. Note that this method will block if the * PipedReader to which this object is connected has * a buffer that cannot hold all of the chars to be written. * --- 106,130 ---- } /** ! * Write a single char of date to the stream. Note that this method will ! * block if the PipedReader to which this object is * connected has a full buffer. * * @param b The char of data to be written, passed as an int. * * @exception IOException If the stream has not been connected or has * been closed. ! */ public void write(int b) throws IOException { read_buf[0] = (char) (b & 0xffff); sink.receive (read_buf, 0, 1); } ! /** * This method writes len chars of data from the char array * buf starting at index offset in the array ! * to the stream. Note that this method will block if the * PipedReader to which this object is connected has * a buffer that cannot hold all of the chars to be written. * *************** public class PipedWriter extends Writer *** 141,147 **** throw new IOException ("Not connected"); if (closed) throw new IOException ("Pipe closed"); ! sink.receive(buffer, offset, len); } --- 141,147 ---- throw new IOException ("Not connected"); if (closed) throw new IOException ("Pipe closed"); ! sink.receive(buffer, offset, len); } *************** public class PipedWriter extends Writer *** 158,164 **** if (closed) throw new IOException ("Pipe closed"); } ! /** * This method closes this stream so that no more data can be written * to it. Any further attempts to write to this stream may throw an --- 158,164 ---- if (closed) throw new IOException ("Pipe closed"); } ! /** * This method closes this stream so that no more data can be written * to it. Any further attempts to write to this stream may throw an *************** public class PipedWriter extends Writer *** 171,182 **** // A close call on an unconnected PipedWriter has no effect. if (sink != null) { ! closed = true; ! // Notify any waiting readers that the stream is now closed. ! synchronized (sink) ! { ! sink.notifyAll(); ! } } } } --- 171,182 ---- // A close call on an unconnected PipedWriter has no effect. if (sink != null) { ! closed = true; ! // Notify any waiting readers that the stream is now closed. ! synchronized (sink) ! { ! sink.notifyAll(); ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/PrintStream.java gcc-4.6.0/libjava/classpath/java/io/PrintStream.java *** gcc-4.5.2/libjava/classpath/java/io/PrintStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/io/PrintStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import gnu.classpath.SystemProperties; *** 53,59 **** * This class prints Java primitive values and object to a stream as * text. None of the methods in this class throw an exception. However, * errors can be detected by calling the checkError() method. ! * Additionally, this stream can be designated as "autoflush" when * created so that any writes are automatically flushed to the underlying * output sink when the current line is terminated. *

            --- 53,59 ---- * This class prints Java primitive values and object to a stream as * text. None of the methods in this class throw an exception. However, * errors can be detected by calling the checkError() method. ! * Additionally, this stream can be designated as "autoflush" when * created so that any writes are automatically flushed to the underlying * output sink when the current line is terminated. *

            *************** public class PrintStream extends FilterO *** 85,91 **** private boolean error_occurred = false; /** ! * This is true if auto-flush is enabled, * false otherwise */ private final boolean auto_flush; --- 85,91 ---- private boolean error_occurred = false; /** ! * This is true if auto-flush is enabled, * false otherwise */ private final boolean auto_flush; *************** public class PrintStream extends FilterO *** 173,185 **** * This method initializes a new PrintStream object to write * to the specified output sink. This constructor also allows "auto-flush" * functionality to be specified where the stream will be flushed after ! * every print or println call, when the ! * write methods with array arguments are called, or when a * single new-line character is written. *

            * * @param out The OutputStream to write to. ! * @param auto_flush true to flush the stream after every * line, false otherwise */ public PrintStream (OutputStream out, boolean auto_flush) --- 173,185 ---- * This method initializes a new PrintStream object to write * to the specified output sink. This constructor also allows "auto-flush" * functionality to be specified where the stream will be flushed after ! * every print or println call, when the ! * write methods with array arguments are called, or when a * single new-line character is written. *

            * * @param out The OutputStream to write to. ! * @param auto_flush true to flush the stream after every * line, false otherwise */ public PrintStream (OutputStream out, boolean auto_flush) *************** public class PrintStream extends FilterO *** 187,199 **** super (out); String encoding; try { ! encoding = SystemProperties.getProperty("file.encoding"); } catch (SecurityException e){ ! encoding = "ISO8859_1"; } catch (IllegalArgumentException e){ ! encoding = "ISO8859_1"; } catch (NullPointerException e){ ! encoding = "ISO8859_1"; } this.encoding = encoding; this.auto_flush = auto_flush; --- 187,199 ---- super (out); String encoding; try { ! encoding = SystemProperties.getProperty("file.encoding"); } catch (SecurityException e){ ! encoding = "ISO8859_1"; } catch (IllegalArgumentException e){ ! encoding = "ISO8859_1"; } catch (NullPointerException e){ ! encoding = "ISO8859_1"; } this.encoding = encoding; this.auto_flush = auto_flush; *************** public class PrintStream extends FilterO *** 203,215 **** * This method initializes a new PrintStream object to write * to the specified output sink. This constructor also allows "auto-flush" * functionality to be specified where the stream will be flushed after ! * every print or println call, when the ! * write methods with array arguments are called, or when a * single new-line character is written. *

            * * @param out The OutputStream to write to. ! * @param auto_flush true to flush the stream after every * line, false otherwise * @param encoding The name of the character encoding to use for this * object. --- 203,215 ---- * This method initializes a new PrintStream object to write * to the specified output sink. This constructor also allows "auto-flush" * functionality to be specified where the stream will be flushed after ! * every print or println call, when the ! * write methods with array arguments are called, or when a * single new-line character is written. *

            * * @param out The OutputStream to write to. ! * @param auto_flush true to flush the stream after every * line, false otherwise * @param encoding The name of the character encoding to use for this * object. *************** public class PrintStream extends FilterO *** 230,236 **** * true forever for this stream. Before checking for an * error condition, this method flushes the stream. * ! * @return true if an error has occurred, * false otherwise */ public boolean checkError () --- 230,236 ---- * true forever for this stream. Before checking for an * error condition, this method flushes the stream. * ! * @return true if an error has occurred, * false otherwise */ public boolean checkError () *************** public class PrintStream extends FilterO *** 255,270 **** { try { ! flush(); ! out.close(); } catch (InterruptedIOException iioe) { ! Thread.currentThread().interrupt(); } catch (IOException e) { ! setError (); } } --- 255,270 ---- { try { ! flush(); ! out.close(); } catch (InterruptedIOException iioe) { ! Thread.currentThread().interrupt(); } catch (IOException e) { ! setError (); } } *************** public class PrintStream extends FilterO *** 276,290 **** { try { ! out.flush(); } catch (InterruptedIOException iioe) { ! Thread.currentThread().interrupt(); } catch (IOException e) { ! setError (); } } --- 276,290 ---- { try { ! out.flush(); } catch (InterruptedIOException iioe) { ! Thread.currentThread().interrupt(); } catch (IOException e) { ! setError (); } } *************** public class PrintStream extends FilterO *** 293,331 **** try { writeChars(str, 0, str.length()); ! if (println) ! writeChars(line_separator, 0, line_separator.length); ! if (auto_flush) ! flush(); } catch (InterruptedIOException iioe) { ! Thread.currentThread().interrupt(); } catch (IOException e) { ! setError (); } } private synchronized void print (char[] chars, int pos, int len, ! boolean println) { try { writeChars(chars, pos, len); ! if (println) ! writeChars(line_separator, 0, line_separator.length); ! if (auto_flush) ! flush(); } catch (InterruptedIOException iioe) { ! Thread.currentThread().interrupt(); } catch (IOException e) { ! setError (); } } --- 293,331 ---- try { writeChars(str, 0, str.length()); ! if (println) ! writeChars(line_separator, 0, line_separator.length); ! if (auto_flush) ! flush(); } catch (InterruptedIOException iioe) { ! Thread.currentThread().interrupt(); } catch (IOException e) { ! setError (); } } private synchronized void print (char[] chars, int pos, int len, ! boolean println) { try { writeChars(chars, pos, len); ! if (println) ! writeChars(line_separator, 0, line_separator.length); ! if (auto_flush) ! flush(); } catch (InterruptedIOException iioe) { ! Thread.currentThread().interrupt(); } catch (IOException e) { ! setError (); } } *************** public class PrintStream extends FilterO *** 577,583 **** * This method writes a byte of data to the stream. If auto-flush is * enabled, printing a newline character will cause the stream to be * flushed after the character is written. ! * * @param oneByte The byte to be written */ public void write (int oneByte) --- 577,583 ---- * This method writes a byte of data to the stream. If auto-flush is * enabled, printing a newline character will cause the stream to be * flushed after the character is written. ! * * @param oneByte The byte to be written */ public void write (int oneByte) *************** public class PrintStream extends FilterO *** 585,597 **** try { out.write (oneByte & 0xff); ! if (auto_flush && (oneByte == '\n')) flush (); } catch (InterruptedIOException iioe) { ! Thread.currentThread ().interrupt (); } catch (IOException e) { --- 585,597 ---- try { out.write (oneByte & 0xff); ! if (auto_flush && (oneByte == '\n')) flush (); } catch (InterruptedIOException iioe) { ! Thread.currentThread ().interrupt (); } catch (IOException e) { *************** public class PrintStream extends FilterO *** 612,624 **** try { out.write (buffer, offset, len); ! if (auto_flush) flush (); } catch (InterruptedIOException iioe) { ! Thread.currentThread ().interrupt (); } catch (IOException e) { --- 612,624 ---- try { out.write (buffer, offset, len); ! if (auto_flush) flush (); } catch (InterruptedIOException iioe) { ! Thread.currentThread ().interrupt (); } catch (IOException e) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/PrintWriter.java gcc-4.6.0/libjava/classpath/java/io/PrintWriter.java *** gcc-4.5.2/libjava/classpath/java/io/PrintWriter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/PrintWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Formatter; *** 50,56 **** * This class prints Java primitive values and objects to a stream as * text. None of the methods in this class throw an exception. However, * errors can be detected by calling the checkError() method. ! * Additionally, this stream can be designated as "autoflush" when * created so that any writes are automatically flushed to the underlying * output sink whenever one of the println methods is * called. (Note that this differs from the PrintStream --- 50,56 ---- * This class prints Java primitive values and objects to a stream as * text. None of the methods in this class throw an exception. However, * errors can be detected by calling the checkError() method. ! * Additionally, this stream can be designated as "autoflush" when * created so that any writes are automatically flushed to the underlying * output sink whenever one of the println methods is * called. (Note that this differs from the PrintStream *************** import java.util.Formatter; *** 59,65 **** * * @author Per Bothner (bothner@cygnus.com) * @author Aaron M. Renn (arenn@urbanophile.com) ! * @date April 17, 1998. */ public class PrintWriter extends Writer { --- 59,65 ---- * * @author Per Bothner (bothner@cygnus.com) * @author Aaron M. Renn (arenn@urbanophile.com) ! * @date April 17, 1998. */ public class PrintWriter extends Writer { *************** public class PrintWriter extends Writer *** 73,79 **** * on this stream. */ private boolean error; ! /** * Indicates whether or not the stream has been closed. */ --- 73,79 ---- * on this stream. */ private boolean error; ! /** * Indicates whether or not the stream has been closed. */ *************** public class PrintWriter extends Writer *** 105,111 **** * every line is terminated or newline character is written. * * @param wr The Writer to write to. ! * @param autoflush true to flush the stream after every * line, false otherwise */ public PrintWriter(Writer wr, boolean autoflush) --- 105,111 ---- * every line is terminated or newline character is written. * * @param wr The Writer to write to. ! * @param autoflush true to flush the stream after every * line, false otherwise */ public PrintWriter(Writer wr, boolean autoflush) *************** public class PrintWriter extends Writer *** 133,143 **** /** * This method initializes a new PrintWriter object to write * to the specified OutputStream. Characters will be converted ! * to chars using the system default encoding. This form of the * constructor allows auto-flush functionality to be enabled if desired * * @param out The OutputStream to write to ! * @param autoflush true to flush the stream after every * println call, false otherwise. */ public PrintWriter(OutputStream out, boolean autoflush) --- 133,143 ---- /** * This method initializes a new PrintWriter object to write * to the specified OutputStream. Characters will be converted ! * to chars using the system default encoding. This form of the * constructor allows auto-flush functionality to be enabled if desired * * @param out The OutputStream to write to ! * @param autoflush true to flush the stream after every * println call, false otherwise. */ public PrintWriter(OutputStream out, boolean autoflush) *************** public class PrintWriter extends Writer *** 152,158 **** * OutputStreamWriter using the default encoding. * @param file name of the file to write to * @throws FileNotFoundException if the file cannot be written or created ! * * @since 1.5 */ public PrintWriter(String file) throws FileNotFoundException --- 152,158 ---- * OutputStreamWriter using the default encoding. * @param file name of the file to write to * @throws FileNotFoundException if the file cannot be written or created ! * * @since 1.5 */ public PrintWriter(String file) throws FileNotFoundException *************** public class PrintWriter extends Writer *** 168,177 **** * @param enc the encoding to use * @throws FileNotFoundException if the file cannot be written or created * @throws UnsupportedEncodingException if the encoding is not supported ! * * @since 1.5 */ ! public PrintWriter(String file, String enc) throws FileNotFoundException, UnsupportedEncodingException { this(new OutputStreamWriter(new FileOutputStream(file), enc)); --- 168,177 ---- * @param enc the encoding to use * @throws FileNotFoundException if the file cannot be written or created * @throws UnsupportedEncodingException if the encoding is not supported ! * * @since 1.5 */ ! public PrintWriter(String file, String enc) throws FileNotFoundException, UnsupportedEncodingException { this(new OutputStreamWriter(new FileOutputStream(file), enc)); *************** public class PrintWriter extends Writer *** 183,189 **** * OutputStreamWriter using the default encoding. * @param file the file to write to * @throws FileNotFoundException if the file cannot be written or created ! * * @since 1.5 */ public PrintWriter(File file) throws FileNotFoundException --- 183,189 ---- * OutputStreamWriter using the default encoding. * @param file the file to write to * @throws FileNotFoundException if the file cannot be written or created ! * * @since 1.5 */ public PrintWriter(File file) throws FileNotFoundException *************** public class PrintWriter extends Writer *** 199,208 **** * @param enc the encoding to use * @throws FileNotFoundException if the file cannot be written or created * @throws UnsupportedEncodingException if the encoding is not supported ! * * @since 1.5 */ ! public PrintWriter(File file, String enc) throws FileNotFoundException, UnsupportedEncodingException { this(new OutputStreamWriter(new FileOutputStream(file), enc)); --- 199,208 ---- * @param enc the encoding to use * @throws FileNotFoundException if the file cannot be written or created * @throws UnsupportedEncodingException if the encoding is not supported ! * * @since 1.5 */ ! public PrintWriter(File file, String enc) throws FileNotFoundException, UnsupportedEncodingException { this(new OutputStreamWriter(new FileOutputStream(file), enc)); *************** public class PrintWriter extends Writer *** 223,229 **** * true forever for this stream. Before checking for an * error condition, this method flushes the stream. * ! * @return true if an error has occurred, * false otherwise */ public boolean checkError() --- 223,229 ---- * true forever for this stream. Before checking for an * error condition, this method flushes the stream. * ! * @return true if an error has occurred, * false otherwise */ public boolean checkError() *************** public class PrintWriter extends Writer *** 241,251 **** { try { ! out.flush(); } catch (IOException ex) { ! error = true; } } --- 241,251 ---- { try { ! out.flush(); } catch (IOException ex) { ! error = true; } } *************** public class PrintWriter extends Writer *** 261,267 **** } catch (IOException ex) { ! error = true; } } --- 261,267 ---- } catch (IOException ex) { ! error = true; } } *************** public class PrintWriter extends Writer *** 382,388 **** * This is the system dependent line separator */ private static final char[] line_separator ! = System.getProperty("line.separator", "\n").toCharArray(); /** * This method prints a line separator sequence to the stream. The value --- 382,388 ---- * This is the system dependent line separator */ private static final char[] line_separator ! = System.getProperty("line.separator", "\n").toCharArray(); /** * This method prints a line separator sequence to the stream. The value *************** public class PrintWriter extends Writer *** 393,408 **** { synchronized (lock) { ! try ! { ! write(line_separator, 0, line_separator.length); ! if (autoflush) ! out.flush(); ! } ! catch (IOException ex) ! { ! error = true; ! } } } --- 393,408 ---- { synchronized (lock) { ! try ! { ! write(line_separator, 0, line_separator.length); ! if (autoflush) ! out.flush(); ! } ! catch (IOException ex) ! { ! error = true; ! } } } *************** public class PrintWriter extends Writer *** 419,426 **** { synchronized (lock) { ! print(bool); ! println(); } } --- 419,426 ---- { synchronized (lock) { ! print(bool); ! println(); } } *************** public class PrintWriter extends Writer *** 436,443 **** { synchronized (lock) { ! print(inum); ! println(); } } --- 436,443 ---- { synchronized (lock) { ! print(inum); ! println(); } } *************** public class PrintWriter extends Writer *** 453,460 **** { synchronized (lock) { ! print(lnum); ! println(); } } --- 453,460 ---- { synchronized (lock) { ! print(lnum); ! println(); } } *************** public class PrintWriter extends Writer *** 470,477 **** { synchronized (lock) { ! print(fnum); ! println(); } } --- 470,477 ---- { synchronized (lock) { ! print(fnum); ! println(); } } *************** public class PrintWriter extends Writer *** 487,494 **** { synchronized (lock) { ! print(dnum); ! println(); } } --- 487,494 ---- { synchronized (lock) { ! print(dnum); ! println(); } } *************** public class PrintWriter extends Writer *** 505,512 **** { synchronized (lock) { ! print(obj); ! println(); } } --- 505,512 ---- { synchronized (lock) { ! print(obj); ! println(); } } *************** public class PrintWriter extends Writer *** 522,529 **** { synchronized (lock) { ! print(str); ! println(); } } --- 522,529 ---- { synchronized (lock) { ! print(str); ! println(); } } *************** public class PrintWriter extends Writer *** 539,546 **** { synchronized (lock) { ! print(ch); ! println(); } } --- 539,546 ---- { synchronized (lock) { ! print(ch); ! println(); } } *************** public class PrintWriter extends Writer *** 556,585 **** { synchronized (lock) { ! print(charArray); ! println(); } } /** ! * This method writes a single char to the stream. ! * * @param ch The char to be written, passed as a int */ public void write(int ch) { try { ! out.write(ch); } catch (IOException ex) { ! error = true; } } /** ! * This method writes count chars from the specified array * starting at index offset into the array. * * @param charArray The array of chars to write --- 556,585 ---- { synchronized (lock) { ! print(charArray); ! println(); } } /** ! * This method writes a single char to the stream. ! * * @param ch The char to be written, passed as a int */ public void write(int ch) { try { ! out.write(ch); } catch (IOException ex) { ! error = true; } } /** ! * This method writes count chars from the specified array * starting at index offset into the array. * * @param charArray The array of chars to write *************** public class PrintWriter extends Writer *** 590,600 **** { try { ! out.write(charArray, offset, count); } catch (IOException ex) { ! error = true; } } --- 590,600 ---- { try { ! out.write(charArray, offset, count); } catch (IOException ex) { ! error = true; } } *************** public class PrintWriter extends Writer *** 611,621 **** { try { ! out.write(str, offset, count); } catch (IOException ex) { ! error = true; } } --- 611,621 ---- { try { ! out.write(str, offset, count); } catch (IOException ex) { ! error = true; } } *************** public class PrintWriter extends Writer *** 627,633 **** public void write(char[] charArray) { write(charArray, 0, charArray.length); ! } /** * This method writes the contents of the specified String --- 627,633 ---- public void write(char[] charArray) { write(charArray, 0, charArray.length); ! } /** * This method writes the contents of the specified String *************** public class PrintWriter extends Writer *** 638,644 **** public void write(String str) { write(str, 0, str.length()); ! } /** @since 1.5 */ public PrintWriter append(char c) --- 638,644 ---- public void write(String str) { write(str, 0, str.length()); ! } /** @since 1.5 */ public PrintWriter append(char c) *************** public class PrintWriter extends Writer *** 687,690 **** return this; } } - --- 687,689 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/PushbackInputStream.java gcc-4.6.0/libjava/classpath/java/io/PushbackInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/PushbackInputStream.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/io/PushbackInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 38,47 **** package java.io; /** ! * This subclass of FilterInputStream provides the ability to * unread data from a stream. It maintains an internal buffer of unread * data that is supplied to the next read operation. This is conceptually ! * similar to mark/reset functionality, except that in this case the * position to reset the stream to does not need to be known in advance. *

            * The default pushback buffer size one byte, but this can be overridden --- 38,47 ---- package java.io; /** ! * This subclass of FilterInputStream provides the ability to * unread data from a stream. It maintains an internal buffer of unread * data that is supplied to the next read operation. This is conceptually ! * similar to mark/reset functionality, except that in this case the * position to reset the stream to does not need to be known in advance. *

            * The default pushback buffer size one byte, but this can be overridden *************** public class PushbackInputStream extends *** 66,73 **** /** * This is the position in the buffer from which the next byte will be * read. Bytes are stored in reverse order in the buffer, starting from ! * buf[buf.length - 1] to buf[0]. Thus when ! * pos is 0 the buffer is full and buf.length when * it is empty */ protected int pos; --- 66,73 ---- /** * This is the position in the buffer from which the next byte will be * read. Bytes are stored in reverse order in the buffer, starting from ! * buf[buf.length - 1] to buf[0]. Thus when ! * pos is 0 the buffer is full and buf.length when * it is empty */ protected int pos; *************** public class PushbackInputStream extends *** 107,113 **** * might (or might not) occur on the very next read attempt. *

            * This method will return the number of bytes available from the ! * pushback buffer plus the number of bytes available from the * underlying stream. * * @return The number of bytes that can be read before blocking could occur --- 107,113 ---- * might (or might not) occur on the very next read attempt. *

            * This method will return the number of bytes available from the ! * pushback buffer plus the number of bytes available from the * underlying stream. * * @return The number of bytes that can be read before blocking could occur *************** public class PushbackInputStream extends *** 116,134 **** */ public int available() throws IOException { ! try { ! return (buf.length - pos) + super.available(); ! } ! catch (NullPointerException npe) { ! throw new IOException ("Stream closed"); } } /** * This method closes the stream and releases any associated resources. ! * * @exception IOException If an error occurs. */ public synchronized void close() throws IOException --- 116,134 ---- */ public int available() throws IOException { ! try { ! return (buf.length - pos) + super.available(); ! } ! catch (NullPointerException npe) { ! throw new IOException ("Stream closed"); } } /** * This method closes the stream and releases any associated resources. ! * * @exception IOException If an error occurs. */ public synchronized void close() throws IOException *************** public class PushbackInputStream extends *** 192,200 **** *

            * This method will block until some data can be read. *

            ! * This method first reads bytes from the pushback buffer in order to * satisfy the read request. If the pushback buffer cannot provide all ! * of the bytes requested, the remaining bytes are read from the * underlying stream. * * @param b The array into which the bytes read should be stored --- 192,200 ---- *

            * This method will block until some data can be read. *

            ! * This method first reads bytes from the pushback buffer in order to * satisfy the read request. If the pushback buffer cannot provide all ! * of the bytes requested, the remaining bytes are read from the * underlying stream. * * @param b The array into which the bytes read should be stored *************** public class PushbackInputStream extends *** 211,228 **** if (numBytes > 0) { ! System.arraycopy (buf, pos, b, off, numBytes); ! pos += numBytes; ! len -= numBytes; ! off += numBytes; } ! if (len > 0) { len = super.read(b, off, len); if (len == -1) //EOF ! return numBytes > 0 ? numBytes : -1; ! numBytes += len; } return numBytes; } --- 211,228 ---- if (numBytes > 0) { ! System.arraycopy (buf, pos, b, off, numBytes); ! pos += numBytes; ! len -= numBytes; ! off += numBytes; } ! if (len > 0) { len = super.read(b, off, len); if (len == -1) //EOF ! return numBytes > 0 ? numBytes : -1; ! numBytes += len; } return numBytes; } *************** public class PushbackInputStream extends *** 250,256 **** } /** ! * This method pushes all of the bytes in the passed byte array into * the pushback bfer. These bytes are pushed in reverse order so that * the next byte read from the stream after this operation will be * b[0] followed by b[1], etc. --- 250,256 ---- } /** ! * This method pushes all of the bytes in the passed byte array into * the pushback bfer. These bytes are pushed in reverse order so that * the next byte read from the stream after this operation will be * b[0] followed by b[1], etc. *************** public class PushbackInputStream extends *** 306,312 **** * requested amount. *

            * This method first discards bytes from the buffer, then calls the ! * skip method on the underlying InputStream to * skip additional bytes if necessary. * * @param n The requested number of bytes to skip --- 306,312 ---- * requested amount. *

            * This method first discards bytes from the buffer, then calls the ! * skip method on the underlying InputStream to * skip additional bytes if necessary. * * @param n The requested number of bytes to skip *************** public class PushbackInputStream extends *** 323,333 **** if (n > 0L) { ! int numread = (int) Math.min((long) (buf.length - pos), n); ! pos += numread; ! n -= numread; ! if (n > 0) ! n -= super.skip(n); } return origN - n; --- 323,333 ---- if (n > 0L) { ! int numread = (int) Math.min((long) (buf.length - pos), n); ! pos += numread; ! n -= numread; ! if (n > 0) ! n -= super.skip(n); } return origN - n; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/PushbackReader.java gcc-4.6.0/libjava/classpath/java/io/PushbackReader.java *** gcc-4.5.2/libjava/classpath/java/io/PushbackReader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/PushbackReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 39,48 **** package java.io; /** ! * This subclass of FilterReader provides the ability to * unread data from a stream. It maintains an internal buffer of unread * data that is supplied to the next read operation. This is conceptually ! * similar to mark/reset functionality, except that in this case the * position to reset the stream to does not need to be known in advance. *

            * The default pushback buffer size one char, but this can be overridden --- 39,48 ---- package java.io; /** ! * This subclass of FilterReader provides the ability to * unread data from a stream. It maintains an internal buffer of unread * data that is supplied to the next read operation. This is conceptually ! * similar to mark/reset functionality, except that in this case the * position to reset the stream to does not need to be known in advance. *

            * The default pushback buffer size one char, but this can be overridden *************** public class PushbackReader extends Filt *** 66,80 **** /** * This is the position in the buffer from which the next char will be * read. Bytes are stored in reverse order in the buffer, starting from ! * buf[buf.length - 1] to buf[0]. Thus when ! * pos is 0 the buffer is full and buf.length when * it is empty */ private int pos; /** * This method initializes a PushbackReader to read from the ! * specified subordinate Reader with a default pushback buffer * size of 1. * * @param in The subordinate stream to read from --- 66,80 ---- /** * This is the position in the buffer from which the next char will be * read. Bytes are stored in reverse order in the buffer, starting from ! * buf[buf.length - 1] to buf[0]. Thus when ! * pos is 0 the buffer is full and buf.length when * it is empty */ private int pos; /** * This method initializes a PushbackReader to read from the ! * specified subordinate Reader with a default pushback buffer * size of 1. * * @param in The subordinate stream to read from *************** public class PushbackReader extends Filt *** 112,119 **** { synchronized (lock) { ! buf = null; ! super.close(); } } --- 112,119 ---- { synchronized (lock) { ! buf = null; ! super.close(); } } *************** public class PushbackReader extends Filt *** 134,140 **** * This method returns false to indicate that it does not support * mark/reset functionality. * ! * @return This method returns false to indicate that this * class does not support mark/reset functionality * */ --- 134,140 ---- * This method returns false to indicate that it does not support * mark/reset functionality. * ! * @return This method returns false to indicate that this * class does not support mark/reset functionality * */ *************** public class PushbackReader extends Filt *** 164,170 **** * read in the pushback buffer or if the underlying stream is ready to * be read. * ! * @return true if this stream is ready to be read, * false otherwise * * @exception IOException If an error occurs --- 164,170 ---- * read in the pushback buffer or if the underlying stream is ready to * be read. * ! * @return true if this stream is ready to be read, * false otherwise * * @exception IOException If an error occurs *************** public class PushbackReader extends Filt *** 173,185 **** { synchronized (lock) { ! if (buf == null) ! throw new IOException ("stream closed"); ! if (((buf.length - pos) > 0) || super.ready()) ! return(true); ! else ! return(false); } } --- 173,185 ---- { synchronized (lock) { ! if (buf == null) ! throw new IOException ("stream closed"); ! if (((buf.length - pos) > 0) || super.ready()) ! return(true); ! else ! return(false); } } *************** public class PushbackReader extends Filt *** 191,197 **** * requested amount. *

            * This method first discards chars from the buffer, then calls the ! * skip method on the underlying Reader to * skip additional chars if necessary. * * @param num_chars The requested number of chars to skip --- 191,197 ---- * requested amount. *

            * This method first discards chars from the buffer, then calls the ! * skip method on the underlying Reader to * skip additional chars if necessary. * * @param num_chars The requested number of chars to skip *************** public class PushbackReader extends Filt *** 204,224 **** { synchronized (lock) { ! if (num_chars <= 0) ! return(0); ! if ((buf.length - pos) >= num_chars) ! { ! pos += num_chars; ! return(num_chars); ! } ! int chars_discarded = buf.length - pos; ! pos = buf.length; ! long chars_skipped = in.skip(num_chars - chars_discarded); ! return(chars_discarded + chars_skipped); } } --- 204,224 ---- { synchronized (lock) { ! if (num_chars <= 0) ! return(0); ! if ((buf.length - pos) >= num_chars) ! { ! pos += num_chars; ! return(num_chars); ! } ! int chars_discarded = buf.length - pos; ! pos = buf.length; ! long chars_skipped = in.skip(num_chars - chars_discarded); ! return(chars_discarded + chars_skipped); } } *************** public class PushbackReader extends Filt *** 239,252 **** { synchronized (lock) { ! if (buf == null) throw new IOException("stream closed"); ! if (pos == buf.length) ! return(super.read()); ! ++pos; ! return((buf[pos - 1] & 0xFFFF)); } } --- 239,252 ---- { synchronized (lock) { ! if (buf == null) throw new IOException("stream closed"); ! if (pos == buf.length) ! return(super.read()); ! ++pos; ! return((buf[pos - 1] & 0xFFFF)); } } *************** public class PushbackReader extends Filt *** 261,269 **** *

            * This method will block until some data can be read. *

            ! * This method first reads chars from the pushback buffer in order to * satisfy the read request. If the pushback buffer cannot provide all ! * of the chars requested, the remaining chars are read from the * underlying stream. * * @param buffer The array into which the chars read should be stored --- 261,269 ---- *

            * This method will block until some data can be read. *

            ! * This method first reads chars from the pushback buffer in order to * satisfy the read request. If the pushback buffer cannot provide all ! * of the chars requested, the remaining chars are read from the * underlying stream. * * @param buffer The array into which the chars read should be stored *************** public class PushbackReader extends Filt *** 279,299 **** { synchronized (lock) { ! if (buf == null) throw new IOException("stream closed"); ! if (offset < 0 || length < 0 || offset + length > buffer.length) throw new ArrayIndexOutOfBoundsException(); ! int numBytes = Math.min(buf.length - pos, length); ! if (numBytes > 0) ! { ! System.arraycopy (buf, pos, buffer, offset, numBytes); ! pos += numBytes; ! return numBytes; ! } ! return super.read(buffer, offset, length); } } --- 279,299 ---- { synchronized (lock) { ! if (buf == null) throw new IOException("stream closed"); ! if (offset < 0 || length < 0 || offset + length > buffer.length) throw new ArrayIndexOutOfBoundsException(); ! int numBytes = Math.min(buf.length - pos, length); ! if (numBytes > 0) ! { ! System.arraycopy (buf, pos, buffer, offset, numBytes); ! pos += numBytes; ! return numBytes; ! } ! return super.read(buffer, offset, length); } } *************** public class PushbackReader extends Filt *** 304,310 **** *

            * If the pushback buffer is full, this method throws an exception. *

            ! * The argument to this method is an int. Only the low eight * bits of this value are pushed back. * * @param b The char to be pushed back, passed as an int --- 304,310 ---- *

            * If the pushback buffer is full, this method throws an exception. *

            ! * The argument to this method is an int. Only the low eight * bits of this value are pushed back. * * @param b The char to be pushed back, passed as an int *************** public class PushbackReader extends Filt *** 315,332 **** { synchronized (lock) { ! if (buf == null) ! throw new IOException("stream closed"); ! if (pos == 0) ! throw new IOException("Pushback buffer is full"); ! --pos; ! buf[pos] = (char)(b & 0xFFFF); } } /** ! * This method pushes all of the chars in the passed char array into * the pushback buffer. These chars are pushed in reverse order so that * the next char read from the stream after this operation will be * buf[0] followed by buf[1], etc. --- 315,332 ---- { synchronized (lock) { ! if (buf == null) ! throw new IOException("stream closed"); ! if (pos == 0) ! throw new IOException("Pushback buffer is full"); ! --pos; ! buf[pos] = (char)(b & 0xFFFF); } } /** ! * This method pushes all of the chars in the passed char array into * the pushback buffer. These chars are pushed in reverse order so that * the next char read from the stream after this operation will be * buf[0] followed by buf[1], etc. *************** public class PushbackReader extends Filt *** 345,351 **** /** * This method pushed back chars from the passed in array into the pushback ! * buffer. The chars from buf[offset] to * buf[offset + len] * are pushed in reverse order so that the next char read from the stream * after this operation will be buf[offset] followed by --- 345,351 ---- /** * This method pushed back chars from the passed in array into the pushback ! * buffer. The chars from buf[offset] to * buf[offset + len] * are pushed in reverse order so that the next char read from the stream * after this operation will be buf[offset] followed by *************** public class PushbackReader extends Filt *** 365,384 **** { synchronized (lock) { ! if (buf == null) throw new IOException("stream closed"); ! if (pos < length) ! throw new IOException("Pushback buffer is full"); ! // Note the order that these chars are being added is the opposite ! // of what would be done if they were added to the buffer one at a time. ! // See the Java Class Libraries book p. 1397. ! System.arraycopy(buffer, offset, buf, pos - length, length); ! // Don't put this into the arraycopy above, an exception might be thrown ! // and in that case we don't want to modify pos. ! pos -= length; } } } - --- 365,383 ---- { synchronized (lock) { ! if (buf == null) throw new IOException("stream closed"); ! if (pos < length) ! throw new IOException("Pushback buffer is full"); ! // Note the order that these chars are being added is the opposite ! // of what would be done if they were added to the buffer one at a time. ! // See the Java Class Libraries book p. 1397. ! System.arraycopy(buffer, offset, buf, pos - length, length); ! // Don't put this into the arraycopy above, an exception might be thrown ! // and in that case we don't want to modify pos. ! pos -= length; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/RandomAccessFile.java gcc-4.6.0/libjava/classpath/java/io/RandomAccessFile.java *** gcc-4.5.2/libjava/classpath/java/io/RandomAccessFile.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/RandomAccessFile.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class RandomAccessFile implements *** 67,78 **** // The corresponding input and output streams. private DataOutputStream out; private DataInputStream in; ! ! /** * This method initializes a new instance of RandomAccessFile ! * to read from the specified File object with the specified ! * access mode. The access mode is either "r" for read only access or "rw" * for read-write access. *

            * Note that a SecurityManager check is made prior to --- 67,78 ---- // The corresponding input and output streams. private DataOutputStream out; private DataInputStream in; ! ! /** * This method initializes a new instance of RandomAccessFile ! * to read from the specified File object with the specified ! * access mode. The access mode is either "r" for read only access or "rw" * for read-write access. *

            * Note that a SecurityManager check is made prior to *************** public class RandomAccessFile implements *** 82,92 **** * @param file The File object to read and/or write. * @param mode "r" for read only or "rw" for read-write access to the file * ! * @exception IllegalArgumentException If mode has an * illegal value ! * @exception SecurityException If the requested access to the file * is not allowed ! * @exception FileNotFoundException If the file is a directory, or * any other error occurs */ public RandomAccessFile (File file, String mode) --- 82,92 ---- * @param file The File object to read and/or write. * @param mode "r" for read only or "rw" for read-write access to the file * ! * @exception IllegalArgumentException If mode has an * illegal value ! * @exception SecurityException If the requested access to the file * is not allowed ! * @exception FileNotFoundException If the file is a directory, or * any other error occurs */ public RandomAccessFile (File file, String mode) *************** public class RandomAccessFile implements *** 99,111 **** fdmode = FileChannelImpl.READ | FileChannelImpl.WRITE; else if (mode.equals("rws")) { ! fdmode = (FileChannelImpl.READ | FileChannelImpl.WRITE ! | FileChannelImpl.SYNC); } else if (mode.equals("rwd")) { ! fdmode = (FileChannelImpl.READ | FileChannelImpl.WRITE ! | FileChannelImpl.DSYNC); } else throw new IllegalArgumentException ("invalid mode: " + mode); --- 99,111 ---- fdmode = FileChannelImpl.READ | FileChannelImpl.WRITE; else if (mode.equals("rws")) { ! fdmode = (FileChannelImpl.READ | FileChannelImpl.WRITE ! | FileChannelImpl.SYNC); } else if (mode.equals("rwd")) { ! fdmode = (FileChannelImpl.READ | FileChannelImpl.WRITE ! | FileChannelImpl.DSYNC); } else throw new IllegalArgumentException ("invalid mode: " + mode); *************** public class RandomAccessFile implements *** 159,169 **** * @param fileName The name of the file to read and/or write * @param mode "r", "rw", "rws", or "rwd" * ! * @exception IllegalArgumentException If mode has an * illegal value ! * @exception SecurityException If the requested access to the file * is not allowed ! * @exception FileNotFoundException If the file is a directory or * any other error occurs */ public RandomAccessFile (String fileName, String mode) --- 159,169 ---- * @param fileName The name of the file to read and/or write * @param mode "r", "rw", "rws", or "rwd" * ! * @exception IllegalArgumentException If mode has an * illegal value ! * @exception SecurityException If the requested access to the file * is not allowed ! * @exception FileNotFoundException If the file is a directory or * any other error occurs */ public RandomAccessFile (String fileName, String mode) *************** public class RandomAccessFile implements *** 184,190 **** } /** ! * This method returns a FileDescriptor object that * represents the native file handle for this file. * * @return The FileDescriptor object for this file --- 184,190 ---- } /** ! * This method returns a FileDescriptor object that * represents the native file handle for this file. * * @return The FileDescriptor object for this file *************** public class RandomAccessFile implements *** 195,203 **** { synchronized (this) { ! if (fd == null) ! fd = new FileDescriptor (ch); ! return fd; } } --- 195,203 ---- { synchronized (this) { ! if (fd == null) ! fd = new FileDescriptor (ch); ! return fd; } } *************** public class RandomAccessFile implements *** 239,248 **** ch.truncate (newLen); else if (newLen > length()) { ! long pos = getFilePointer(); ! seek(newLen - 1); ! write(0); ! seek(pos); } } --- 239,248 ---- ch.truncate (newLen); else if (newLen > length()) { ! long pos = getFilePointer(); ! seek(newLen - 1); ! write(0); ! seek(pos); } } *************** public class RandomAccessFile implements *** 273,279 **** /** * This method reads bytes from the file into the specified array. The ! * bytes are stored starting at the beginning of the array and up to * buf.length bytes can be read. * * @param buffer The buffer to read bytes from the file into --- 273,279 ---- /** * This method reads bytes from the file into the specified array. The ! * bytes are stored starting at the beginning of the array and up to * buf.length bytes can be read. * * @param buffer The buffer to read bytes from the file into *************** public class RandomAccessFile implements *** 310,323 **** * value returned is false If the byte is non-zero, then * the value returned is true *

            ! * This method can read a boolean written by an object * implementing the ! * writeBoolean() method in the DataOutput * interface. * * @return The boolean value read * ! * @exception EOFException If end of file is reached before reading the * boolean * @exception IOException If any other error occurs */ --- 310,323 ---- * value returned is false If the byte is non-zero, then * the value returned is true *

            ! * This method can read a boolean written by an object * implementing the ! * writeBoolean() method in the DataOutput * interface. * * @return The boolean value read * ! * @exception EOFException If end of file is reached before reading the * boolean * @exception IOException If any other error occurs */ *************** public class RandomAccessFile implements *** 330,337 **** * This method reads a Java byte value from an input stream. The value * is in the range of -128 to 127. *

            ! * This method can read a byte written by an object ! * implementing the * writeByte() method in the DataOutput interface. * * @return The byte value read --- 330,337 ---- * This method reads a Java byte value from an input stream. The value * is in the range of -128 to 127. *

            ! * This method can read a byte written by an object ! * implementing the * writeByte() method in the DataOutput interface. * * @return The byte value read *************** public class RandomAccessFile implements *** 347,370 **** } /** ! * This method reads a Java char value from an input stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java char The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 and byte2 represent * the first * and second byte read from the stream respectively, they will be * transformed to a char in the following manner: *

            * (char)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF) *

            ! * This method can read a char written by an object * implementing the * writeChar() method in the DataOutput interface. * ! * @return The char value read * * @exception EOFException If end of file is reached before reading the char * @exception IOException If any other error occurs --- 347,370 ---- } /** ! * This method reads a Java char value from an input stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java char The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 and byte2 represent * the first * and second byte read from the stream respectively, they will be * transformed to a char in the following manner: *

            * (char)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF) *

            ! * This method can read a char written by an object * implementing the * writeChar() method in the DataOutput interface. * ! * @return The char value read * * @exception EOFException If end of file is reached before reading the char * @exception IOException If any other error occurs *************** public class RandomAccessFile implements *** 379,397 **** /** * This method reads a Java double value from an input stream. It operates * by first reading a logn value from the stream by calling the ! * readLong() method in this interface, then * converts that long ! * to a double using the longBitsToDouble * method in the class java.lang.Double *

            ! * This method can read a double written by an object * implementing the ! * writeDouble() method in the DataOutput * interface. * * @return The double value read * ! * @exception EOFException If end of file is reached before reading * the double * @exception IOException If any other error occurs * --- 379,397 ---- /** * This method reads a Java double value from an input stream. It operates * by first reading a logn value from the stream by calling the ! * readLong() method in this interface, then * converts that long ! * to a double using the longBitsToDouble * method in the class java.lang.Double *

            ! * This method can read a double written by an object * implementing the ! * writeDouble() method in the DataOutput * interface. * * @return The double value read * ! * @exception EOFException If end of file is reached before reading * the double * @exception IOException If any other error occurs * *************** public class RandomAccessFile implements *** 406,417 **** /** * This method reads a Java float value from an input stream. It operates * by first reading an int value from the stream by calling the ! * readInt() method in this interface, then converts * that int ! * to a float using the intBitsToFloat method in * the class java.lang.Float *

            ! * This method can read a float written by an object * implementing the * writeFloat() method in the DataOutput interface. * --- 406,417 ---- /** * This method reads a Java float value from an input stream. It operates * by first reading an int value from the stream by calling the ! * readInt() method in this interface, then converts * that int ! * to a float using the intBitsToFloat method in * the class java.lang.Float *

            ! * This method can read a float written by an object * implementing the * writeFloat() method in the DataOutput interface. * *************** public class RandomAccessFile implements *** 436,442 **** * * @param buffer The buffer into which to read the data * ! * @exception EOFException If end of file is reached before filling the * buffer * @exception IOException If any other error occurs */ --- 436,442 ---- * * @param buffer The buffer into which to read the data * ! * @exception EOFException If end of file is reached before filling the * buffer * @exception IOException If any other error occurs */ *************** public class RandomAccessFile implements *** 446,464 **** } /** ! * This method reads raw bytes into the passed array buf * starting ! * offset bytes into the buffer. The number of bytes read * will be ! * exactly len Note that this method blocks until the data is ! * available and throws an exception if there is not enough data left in * the stream to read len bytes. * * @param buffer The buffer into which to read the data * @param offset The offset into the buffer to start storing data * @param count The number of bytes to read into the buffer * ! * @exception EOFException If end of file is reached before filling * the buffer * @exception IOException If any other error occurs */ --- 446,464 ---- } /** ! * This method reads raw bytes into the passed array buf * starting ! * offset bytes into the buffer. The number of bytes read * will be ! * exactly len Note that this method blocks until the data is ! * available and throws an exception if there is not enough data left in * the stream to read len bytes. * * @param buffer The buffer into which to read the data * @param offset The offset into the buffer to start storing data * @param count The number of bytes to read into the buffer * ! * @exception EOFException If end of file is reached before filling * the buffer * @exception IOException If any other error occurs */ *************** public class RandomAccessFile implements *** 470,491 **** /** * This method reads a Java int value from an input stream ! * It operates by reading four bytes from the stream and converting them to * a single Java int The bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 through byte4 * represent the first * four bytes read from the stream, they will be * transformed to an int in the following manner: *

            ! * (int)(((byte1 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) + * ((byte3 & 0xFF) << 8) + (byte4 & 0xFF))) *

            * The value returned is in the range of 0 to 65535. *

            ! * This method can read an int written by an object * implementing the * writeInt() method in the DataOutput interface. * --- 470,491 ---- /** * This method reads a Java int value from an input stream ! * It operates by reading four bytes from the stream and converting them to * a single Java int The bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 through byte4 * represent the first * four bytes read from the stream, they will be * transformed to an int in the following manner: *

            ! * (int)(((byte1 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) + * ((byte3 & 0xFF) << 8) + (byte4 & 0xFF))) *

            * The value returned is in the range of 0 to 65535. *

            ! * This method can read an int written by an object * implementing the * writeInt() method in the DataOutput interface. * *************** public class RandomAccessFile implements *** 503,519 **** /** * This method reads the next line of text data from an input stream. ! * It operates by reading bytes and converting those bytes to * char ! * values by treating the byte read as the low eight bits of the * char * and using 0 as the high eight bits. Because of this, it does * not support the full 16-bit Unicode character set. *

            * The reading of bytes ends when either the end of file or a line terminator * is encountered. The bytes read are then returned as a String ! * A line terminator is a byte sequence consisting of either ! * \r \n or \r\n These * termination charaters are * discarded and are not returned as part of the string. *

            --- 503,519 ---- /** * This method reads the next line of text data from an input stream. ! * It operates by reading bytes and converting those bytes to * char ! * values by treating the byte read as the low eight bits of the * char * and using 0 as the high eight bits. Because of this, it does * not support the full 16-bit Unicode character set. *

            * The reading of bytes ends when either the end of file or a line terminator * is encountered. The bytes read are then returned as a String ! * A line terminator is a byte sequence consisting of either ! * \r \n or \r\n These * termination charaters are * discarded and are not returned as part of the string. *

            *************** public class RandomAccessFile implements *** 533,557 **** /** * This method reads a Java long value from an input stream ! * It operates by reading eight bytes from the stream and converting them to * a single Java long The bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 through byte8 * represent the first * eight bytes read from the stream, they will be * transformed to an long in the following manner: *

            * ! * (long)((((long)byte1 & 0xFF) << 56) + (((long)byte2 & 0xFF) << 48) + ! * (((long)byte3 & 0xFF) << 40) + (((long)byte4 & 0xFF) << 32) + ! * (((long)byte5 & 0xFF) << 24) + (((long)byte6 & 0xFF) << 16) + * (((long)byte7 & 0xFF) << 8) + ((long)byte9 & 0xFF))) *

            * The value returned is in the range of 0 to 65535. *

            ! * This method can read an long written by an object * implementing the * writeLong() method in the DataOutput interface. * --- 533,557 ---- /** * This method reads a Java long value from an input stream ! * It operates by reading eight bytes from the stream and converting them to * a single Java long The bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 through byte8 * represent the first * eight bytes read from the stream, they will be * transformed to an long in the following manner: *

            * ! * (long)((((long)byte1 & 0xFF) << 56) + (((long)byte2 & 0xFF) << 48) + ! * (((long)byte3 & 0xFF) << 40) + (((long)byte4 & 0xFF) << 32) + ! * (((long)byte5 & 0xFF) << 24) + (((long)byte6 & 0xFF) << 16) + * (((long)byte7 & 0xFF) << 8) + ((long)byte9 & 0xFF))) *

            * The value returned is in the range of 0 to 65535. *

            ! * This method can read an long written by an object * implementing the * writeLong() method in the DataOutput interface. * *************** public class RandomAccessFile implements *** 569,580 **** /** * This method reads a signed 16-bit value into a Java in from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java short The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 and byte2 * represent the first * and second byte read from the stream respectively, they will be * transformed to a short in the following manner: --- 569,580 ---- /** * This method reads a signed 16-bit value into a Java in from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single 16-bit Java short The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 and byte2 * represent the first * and second byte read from the stream respectively, they will be * transformed to a short in the following manner: *************** public class RandomAccessFile implements *** 583,589 **** *

            * The value returned is in the range of -32768 to 32767. *

            ! * This method can read a short written by an object * implementing the * writeShort() method in the DataOutput interface. * --- 583,589 ---- *

            * The value returned is in the range of -32768 to 32767. *

            ! * This method can read a short written by an object * implementing the * writeShort() method in the DataOutput interface. * *************** public class RandomAccessFile implements *** 600,611 **** } /** ! * This method reads 8 unsigned bits into a Java int value ! * from the * stream. The value returned is in the range of 0 to 255. *

            ! * This method can read an unsigned byte written by an object implementing ! * the writeUnsignedByte() method in the * DataOutput interface. * * @return The unsigned bytes value read as a Java int --- 600,611 ---- } /** ! * This method reads 8 unsigned bits into a Java int value ! * from the * stream. The value returned is in the range of 0 to 255. *

            ! * This method can read an unsigned byte written by an object implementing ! * the writeUnsignedByte() method in the * DataOutput interface. * * @return The unsigned bytes value read as a Java int *************** public class RandomAccessFile implements *** 622,633 **** /** * This method reads 16 unsigned bits into a Java int value from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single Java int The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 and byte2 * represent the first * and second byte read from the stream respectively, they will be * transformed to an int in the following manner: --- 622,633 ---- /** * This method reads 16 unsigned bits into a Java int value from the stream. ! * It operates by reading two bytes from the stream and converting them to * a single Java int The two bytes are stored most * significant byte first (i.e., "big endian") regardless of the native ! * host byte ordering. *

            ! * As an example, if byte1 and byte2 * represent the first * and second byte read from the stream respectively, they will be * transformed to an int in the following manner: *************** public class RandomAccessFile implements *** 637,643 **** * The value returned is in the range of 0 to 65535. *

            * This method can read an unsigned short written by an object implementing ! * the writeUnsignedShort() method in the * DataOutput interface. * * @return The unsigned short value read as a Java int --- 637,643 ---- * The value returned is in the range of 0 to 65535. *

            * This method can read an unsigned short written by an object implementing ! * the writeUnsignedShort() method in the * DataOutput interface. * * @return The unsigned short value read as a Java int *************** public class RandomAccessFile implements *** 651,657 **** } /** ! * This method reads a String from an input stream that * is encoded in * a modified UTF-8 format. This format has a leading two byte sequence * that contains the remaining number of bytes to read. This two byte --- 651,657 ---- } /** ! * This method reads a String from an input stream that * is encoded in * a modified UTF-8 format. This format has a leading two byte sequence * that contains the remaining number of bytes to read. This two byte *************** public class RandomAccessFile implements *** 659,669 **** * interface. *

            * After the number of remaining bytes have been determined, these bytes ! * are read an transformed into char values. * These char values * are encoded in the stream using either a one, two, or three byte format. * The particular format in use can be determined by examining the first ! * byte read. *

            * If the first byte has a high order bit of 0 then * that character consists on only one byte. This character value consists --- 659,669 ---- * interface. *

            * After the number of remaining bytes have been determined, these bytes ! * are read an transformed into char values. * These char values * are encoded in the stream using either a one, two, or three byte format. * The particular format in use can be determined by examining the first ! * byte read. *

            * If the first byte has a high order bit of 0 then * that character consists on only one byte. This character value consists *************** public class RandomAccessFile implements *** 673,686 **** *

            * (char)byte1 *

            ! * If the first byte has 110 as its high order bits, then the * character consists of two bytes. The bits that make up the character * value are in positions 0 through 4 of the first byte and bit positions ! * 0 through 5 of the second byte. (The second byte should have * 10 as its high order bits). These values are in most significant * byte first (i.e., "big endian") order. *

            ! * As an example, if byte1 and byte2 * are the first two bytes * read respectively, and the high order bits of them match the patterns * which indicate a two byte character encoding, then they would be --- 673,686 ---- *

            * (char)byte1 *

            ! * If the first byte has 110 as its high order bits, then the * character consists of two bytes. The bits that make up the character * value are in positions 0 through 4 of the first byte and bit positions ! * 0 through 5 of the second byte. (The second byte should have * 10 as its high order bits). These values are in most significant * byte first (i.e., "big endian") order. *

            ! * As an example, if byte1 and byte2 * are the first two bytes * read respectively, and the high order bits of them match the patterns * which indicate a two byte character encoding, then they would be *************** public class RandomAccessFile implements *** 695,721 **** * have 10 as their high order bits). These values are in most * significant byte first (i.e., "big endian") order. *

            ! * As an example, if byte1 byte2 * and byte3 are the * three bytes read, and the high order bits of them match the patterns * which indicate a three byte character encoding, then they would be * converted to a Java char like so: *

            ! * (char)(((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | * (byte3 & 0x3F)) *

            * Note that all characters are encoded in the method that requires the * fewest number of bytes with the exception of the character with the ! * value of \u0000 which is encoded as two bytes. This is * a modification of the UTF standard used to prevent C language style * NUL values from appearing in the byte stream. *

            * This method can read data that was written by an object implementing the * writeUTF() method in DataOutput ! * * @return The String read * ! * @exception EOFException If end of file is reached before reading the * String * @exception UTFDataFormatException If the data is not in UTF-8 format * @exception IOException If any other error occurs --- 695,721 ---- * have 10 as their high order bits). These values are in most * significant byte first (i.e., "big endian") order. *

            ! * As an example, if byte1 byte2 * and byte3 are the * three bytes read, and the high order bits of them match the patterns * which indicate a three byte character encoding, then they would be * converted to a Java char like so: *

            ! * (char)(((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | * (byte3 & 0x3F)) *

            * Note that all characters are encoded in the method that requires the * fewest number of bytes with the exception of the character with the ! * value of \u0000 which is encoded as two bytes. This is * a modification of the UTF standard used to prevent C language style * NUL values from appearing in the byte stream. *

            * This method can read data that was written by an object implementing the * writeUTF() method in DataOutput ! * * @return The String read * ! * @exception EOFException If end of file is reached before reading the * String * @exception UTFDataFormatException If the data is not in UTF-8 format * @exception IOException If any other error occurs *************** public class RandomAccessFile implements *** 728,738 **** } /** ! * This method sets the current file position to the specified offset * from the beginning of the file. Note that some operating systems will * allow the file pointer to be set past the current end of the file. * ! * @param pos The offset from the beginning of the file at which to set * the file pointer * * @exception IOException If an error occurs --- 728,738 ---- } /** ! * This method sets the current file position to the specified offset * from the beginning of the file. Note that some operating systems will * allow the file pointer to be set past the current end of the file. * ! * @param pos The offset from the beginning of the file at which to set * the file pointer * * @exception IOException If an error occurs *************** public class RandomAccessFile implements *** 743,750 **** } /** ! * This method attempts to skip and discard the specified number of bytes ! * in the input stream. It may actually skip fewer bytes than requested. * The actual number of bytes skipped is returned. This method will not * skip any bytes if passed a negative number of bytes to skip. * --- 743,750 ---- } /** ! * This method attempts to skip and discard the specified number of bytes ! * in the input stream. It may actually skip fewer bytes than requested. * The actual number of bytes skipped is returned. This method will not * skip any bytes if passed a negative number of bytes to skip. * *************** public class RandomAccessFile implements *** 759,768 **** if (numBytes < 0) throw new IllegalArgumentException ("Can't skip negative bytes: " + numBytes); ! if (numBytes == 0) return 0; ! long oldPos = ch.position(); long newPos = oldPos + numBytes; long size = ch.size(); --- 759,768 ---- if (numBytes < 0) throw new IllegalArgumentException ("Can't skip negative bytes: " + numBytes); ! if (numBytes == 0) return 0; ! long oldPos = ch.position(); long newPos = oldPos + numBytes; long size = ch.size(); *************** public class RandomAccessFile implements *** 821,827 **** } /** ! * This method writes a Java boolean to the underlying output * stream. For a value of true, 1 is written to the stream. * For a value of false, 0 is written. * --- 821,827 ---- } /** ! * This method writes a Java boolean to the underlying output * stream. For a value of true, 1 is written to the stream. * For a value of false, 0 is written. * *************** public class RandomAccessFile implements *** 841,847 **** * This method writes a Java byte value to the underlying * output stream. * ! * @param val The byte to write to the stream, passed * as an int. * * @exception IOException If an error occurs --- 841,847 ---- * This method writes a Java byte value to the underlying * output stream. * ! * @param val The byte to write to the stream, passed * as an int. * * @exception IOException If an error occurs *************** public class RandomAccessFile implements *** 858,864 **** * This method writes a Java short to the stream, high byte * first. This method requires two bytes to encode the value. * ! * @param val The short value to write to the stream, * passed as an int. * * @exception IOException If an error occurs --- 858,864 ---- * This method writes a Java short to the stream, high byte * first. This method requires two bytes to encode the value. * ! * @param val The short value to write to the stream, * passed as an int. * * @exception IOException If an error occurs *************** public class RandomAccessFile implements *** 875,881 **** * This method writes a single char value to the stream, * high byte first. * ! * @param val The char value to write, passed as * an int. * * @exception IOException If an error occurs --- 875,881 ---- * This method writes a single char value to the stream, * high byte first. * ! * @param val The char value to write, passed as * an int. * * @exception IOException If an error occurs *************** public class RandomAccessFile implements *** 922,928 **** /** * This method writes a Java float value to the stream. This ! * value is written by first calling the method * Float.floatToIntBits * to retrieve an int representing the floating point number, * then writing this int value to the stream exactly the same --- 922,928 ---- /** * This method writes a Java float value to the stream. This ! * value is written by first calling the method * Float.floatToIntBits * to retrieve an int representing the floating point number, * then writing this int value to the stream exactly the same *************** public class RandomAccessFile implements *** 944,956 **** /** * This method writes a Java double value to the stream. This ! * value is written by first calling the method * Double.doubleToLongBits * to retrieve an long representing the floating point number, * then writing this long value to the stream exactly the same * as the writeLong() method does. * ! * @param val The double precision floating point number to write to the * stream. * * @exception IOException If an error occurs --- 944,956 ---- /** * This method writes a Java double value to the stream. This ! * value is written by first calling the method * Double.doubleToLongBits * to retrieve an long representing the floating point number, * then writing this long value to the stream exactly the same * as the writeLong() method does. * ! * @param val The double precision floating point number to write to the * stream. * * @exception IOException If an error occurs *************** public class RandomAccessFile implements *** 981,987 **** out.writeBytes(val); } ! /** * This method writes all the characters in a String to the * stream. There will be two bytes for each character value. The high --- 981,987 ---- out.writeBytes(val); } ! /** * This method writes all the characters in a String to the * stream. There will be two bytes for each character value. The high *************** public class RandomAccessFile implements *** 998,1004 **** out.writeChars(val); } ! /** * This method writes a Java String to the stream in a modified * UTF-8 format. First, two bytes are written to the stream indicating the --- 998,1004 ---- out.writeChars(val); } ! /** * This method writes a Java String to the stream in a modified * UTF-8 format. First, two bytes are written to the stream indicating the *************** public class RandomAccessFile implements *** 1006,1015 **** * encoded String not the String length. Next * come the encoded characters. Each character in the String * is encoded as either one, two or three bytes. For characters in the ! * range of \u0001 to \u007F, * one byte is used. The character * value goes into bits 0-7 and bit eight is 0. For characters in the range ! * of \u0080 to \u007FF, two * bytes are used. Bits * 6-10 of the character value are encoded bits 0-4 of the first byte, with * the high bytes having a value of "110". Bits 0-5 of the character value --- 1006,1015 ---- * encoded String not the String length. Next * come the encoded characters. Each character in the String * is encoded as either one, two or three bytes. For characters in the ! * range of \u0001 to \u007F, * one byte is used. The character * value goes into bits 0-7 and bit eight is 0. For characters in the range ! * of \u0080 to \u007FF, two * bytes are used. Bits * 6-10 of the character value are encoded bits 0-4 of the first byte, with * the high bytes having a value of "110". Bits 0-5 of the character value *************** public class RandomAccessFile implements *** 1035,1041 **** out.writeUTF(val); } ! /** * This method creates a java.nio.channels.FileChannel. * Nio does not allow one to create a file channel directly. --- 1035,1041 ---- out.writeUTF(val); } ! /** * This method creates a java.nio.channels.FileChannel. * Nio does not allow one to create a file channel directly. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/Reader.java gcc-4.6.0/libjava/classpath/java/io/Reader.java *** gcc-4.5.2/libjava/classpath/java/io/Reader.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/Reader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** obligated to do so. If you do not wish *** 36,42 **** exception statement from your version. */ package java.io; ! import java.nio.CharBuffer; /* Written using "Java Class Libraries", 2nd edition, plus online --- 36,42 ---- exception statement from your version. */ package java.io; ! import java.nio.CharBuffer; /* Written using "Java Class Libraries", 2nd edition, plus online *************** import java.nio.CharBuffer; *** 52,69 **** * or network connection. * * @author Per Bothner (bothner@cygnus.com) ! * @date April 21, 1998. ! * @author Aaron M. Renn (arenn@urbanophile.com) */ public abstract class Reader implements Closeable, Readable { /** * This is the Object used for synchronizing critical code ! * sections. Subclasses should use this variable instead of a * synchronized method or an explicit synchronization on this */ protected Object lock; ! /** * Unitializes a Reader that will use the object * itself for synchronization of critical code sections. --- 52,69 ---- * or network connection. * * @author Per Bothner (bothner@cygnus.com) ! * @date April 21, 1998. ! * @author Aaron M. Renn (arenn@urbanophile.com) */ public abstract class Reader implements Closeable, Readable { /** * This is the Object used for synchronizing critical code ! * sections. Subclasses should use this variable instead of a * synchronized method or an explicit synchronization on this */ protected Object lock; ! /** * Unitializes a Reader that will use the object * itself for synchronization of critical code sections. *************** public abstract class Reader implements *** 86,95 **** /** * Read chars from a stream and stores them into a caller ! * supplied buffer. It starts storing the data at index offset ! * into the buffer and attempts to read len chars. This method ! * can return before reading the number of chars requested. The actual ! * number of chars read is returned as an int. A -1 is returned to indicate * the end of the stream. *

            * This method will block until some data can be read. --- 86,95 ---- /** * Read chars from a stream and stores them into a caller ! * supplied buffer. It starts storing the data at index offset ! * into the buffer and attempts to read len chars. This method ! * can return before reading the number of chars requested. The actual ! * number of chars read is returned as an int. A -1 is returned to indicate * the end of the stream. *

            * This method will block until some data can be read. *************** public abstract class Reader implements *** 113,119 **** */ public abstract int read(char buf[], int offset, int count) throws IOException; ! /** * Reads chars from a stream and stores them into a caller * supplied buffer. This method attempts to completely fill the buffer, --- 113,119 ---- */ public abstract int read(char buf[], int offset, int count) throws IOException; ! /** * Reads chars from a stream and stores them into a caller * supplied buffer. This method attempts to completely fill the buffer, *************** public abstract class Reader implements *** 182,191 **** * point. *

            * This method always returns false in this class, but ! * subclasses can override this method to return true if they * support mark/reset functionality. * ! * @return true if mark/reset functionality is supported, * false otherwise * */ --- 182,191 ---- * point. *

            * This method always returns false in this class, but ! * subclasses can override this method to return true if they * support mark/reset functionality. * ! * @return true if mark/reset functionality is supported, * false otherwise * */ *************** public abstract class Reader implements *** 197,213 **** /** * Marks a position in the input to which the stream can be * "reset" by calling the reset() method. The parameter ! * readlimit is the number of chars that can be read from the * stream after setting the mark before the mark becomes invalid. For ! * example, if mark() is called with a read limit of 10, then ! * when 11 chars of data are read from the stream before the ! * reset() method is called, then the mark is invalid and the * stream object instance is not required to remember the mark. * ! * @param readLimit The number of chars that can be read before the mark * becomes invalid * ! * @exception IOException If an error occurs such as mark not being * supported for this class */ public void mark(int readLimit) throws IOException --- 197,213 ---- /** * Marks a position in the input to which the stream can be * "reset" by calling the reset() method. The parameter ! * readlimit is the number of chars that can be read from the * stream after setting the mark before the mark becomes invalid. For ! * example, if mark() is called with a read limit of 10, then ! * when 11 chars of data are read from the stream before the ! * reset() method is called, then the mark is invalid and the * stream object instance is not required to remember the mark. * ! * @param readLimit The number of chars that can be read before the mark * becomes invalid * ! * @exception IOException If an error occurs such as mark not being * supported for this class */ public void mark(int readLimit) throws IOException *************** public abstract class Reader implements *** 216,223 **** } /** ! * Resets a stream to the point where the mark() ! * method was called. Any chars that were read after the mark point was * set will be re-read during subsequent reads. *

            * This method always throws an IOException in this class, but subclasses --- 216,223 ---- } /** ! * Resets a stream to the point where the mark() ! * method was called. Any chars that were read after the mark point was * set will be re-read during subsequent reads. *

            * This method always throws an IOException in this class, but subclasses *************** public abstract class Reader implements *** 237,243 **** *

            * This method always returns false in this class * ! * @return true if the stream is ready to be read, * false otherwise. * * @exception IOException If an error occurs --- 237,243 ---- *

            * This method always returns false in this class * ! * @return true if the stream is ready to be read, * false otherwise. * * @exception IOException If an error occurs *************** public abstract class Reader implements *** 274,285 **** synchronized (lock) { while (todo > 0) ! { ! int skipped = read(buffer, 0, bsize > todo ? (int) todo : bsize); ! if (skipped <= 0) ! break; ! todo -= skipped; ! } } return count - todo; } --- 274,285 ---- synchronized (lock) { while (todo > 0) ! { ! int skipped = read(buffer, 0, bsize > todo ? (int) todo : bsize); ! if (skipped <= 0) ! break; ! todo -= skipped; ! } } return count - todo; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/SequenceInputStream.java gcc-4.6.0/libjava/classpath/java/io/SequenceInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/SequenceInputStream.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/SequenceInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Enumeration; *** 45,51 **** * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! /** * This class merges a sequence of multiple InputStream's in * order to form a single logical stream that can be read by applications --- 45,51 ---- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! /** * This class merges a sequence of multiple InputStream's in * order to form a single logical stream that can be read by applications *************** public class SequenceInputStream extends *** 126,132 **** /** * Closes this stream. This will cause any remaining unclosed subordinate ! * InputStream's to be closed as well. Subsequent attempts to * read from this stream may cause an exception. * * @exception IOException If an error occurs --- 126,132 ---- /** * Closes this stream. This will cause any remaining unclosed subordinate ! * InputStream's to be closed as well. Subsequent attempts to * read from this stream may cause an exception. * * @exception IOException If an error occurs *************** public class SequenceInputStream extends *** 135,142 **** { while (in != null) { ! in.close(); ! in = getNextStream (); } } --- 135,142 ---- { while (in != null) { ! in.close(); ! in = getNextStream (); } } *************** public class SequenceInputStream extends *** 158,164 **** while (in != null && (ch = in.read()) < 0) { ! in.close(); in = getNextStream(); } --- 158,164 ---- while (in != null && (ch = in.read()) < 0) { ! in.close(); in = getNextStream(); } *************** public class SequenceInputStream extends *** 192,198 **** // don't bother doing it here. while (in != null && (ch = in.read(b, off, len)) < 0) { ! in.close(); in = getNextStream(); } --- 192,198 ---- // don't bother doing it here. while (in != null && (ch = in.read(b, off, len)) < 0) { ! in.close(); in = getNextStream(); } *************** public class SequenceInputStream extends *** 210,221 **** if (e != null) { if (e.hasMoreElements()) ! nextIn = e.nextElement(); } else if (in2 != null) { ! nextIn = in2; ! in2 = null; } return nextIn; --- 210,221 ---- if (e != null) { if (e.hasMoreElements()) ! nextIn = e.nextElement(); } else if (in2 != null) { ! nextIn = in2; ! in2 = null; } return nextIn; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/Serializable.java gcc-4.6.0/libjava/classpath/java/io/Serializable.java *** gcc-4.5.2/libjava/classpath/java/io/Serializable.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/Serializable.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/SerializablePermission.java gcc-4.6.0/libjava/classpath/java/io/SerializablePermission.java *** gcc-4.5.2/libjava/classpath/java/io/SerializablePermission.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/SerializablePermission.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.security.BasicPermission; *** 60,78 **** public final class SerializablePermission extends BasicPermission { static final long serialVersionUID = 8537212141160296410L; ! /* * Class Variables */ private static final String[] legal_names = { "enableSubclassImplementation", ! "enableSubstitution" }; /* * Constructors */ /** ! * This method initializes a new instance of * SerializablePermission * that has the specified name. * --- 60,78 ---- public final class SerializablePermission extends BasicPermission { static final long serialVersionUID = 8537212141160296410L; ! /* * Class Variables */ private static final String[] legal_names = { "enableSubclassImplementation", ! "enableSubstitution" }; /* * Constructors */ /** ! * This method initializes a new instance of * SerializablePermission * that has the specified name. * *************** public final class SerializablePermissio *** 87,93 **** } /** ! * This method initializes a new instance of * SerializablePermission * that has the specified name and action list. Note that the action list * is unused in this class. --- 87,93 ---- } /** ! * This method initializes a new instance of * SerializablePermission * that has the specified name and action list. Note that the action list * is unused in this class. *************** public final class SerializablePermissio *** 95,101 **** * @param name The name of the permission. * @param actions The action list (unused). * ! * @exception IllegalArgumentException If the name is not valid for * this class. */ public SerializablePermission(String name, String actions) --- 95,101 ---- * @param name The name of the permission. * @param actions The action list (unused). * ! * @exception IllegalArgumentException If the name is not valid for * this class. */ public SerializablePermission(String name, String actions) *************** public final class SerializablePermissio *** 110,113 **** } } // class SerializablePermission - --- 110,112 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/StreamTokenizer.java gcc-4.6.0/libjava/classpath/java/io/StreamTokenizer.java *** gcc-4.5.2/libjava/classpath/java/io/StreamTokenizer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/io/StreamTokenizer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import gnu.java.lang.CPStringBuilder; *** 41,58 **** /** * This class parses streams of characters into tokens. There are a ! * million-zillion flags that can be set to control the parsing, as * described under the various method headings. * * @author Warren Levy (warrenl@cygnus.com) ! * @date October 25, 1998. */ /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * "The Java Language Specification", ISBN 0-201-63451-1 * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! public class StreamTokenizer { /** A constant indicating that the end of the stream has been read. */ --- 41,58 ---- /** * This class parses streams of characters into tokens. There are a ! * million-zillion flags that can be set to control the parsing, as * described under the various method headings. * * @author Warren Levy (warrenl@cygnus.com) ! * @date October 25, 1998. */ /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * "The Java Language Specification", ISBN 0-201-63451-1 * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. */ ! public class StreamTokenizer { /** A constant indicating that the end of the stream has been read. */ *************** public class StreamTokenizer *** 74,80 **** * Contains the type of the token read resulting from a call to nextToken * The rules are as follows: *

              ! *
            • For a token consisting of a single ordinary character, this is the * value of that character.
            • *
            • For a quoted string, this is the value of the quote character
            • *
            • For a word, this is TT_WORD
            • --- 74,80 ---- * Contains the type of the token read resulting from a call to nextToken * The rules are as follows: *
                ! *
              • For a token consisting of a single ordinary character, this is the * value of that character.
              • *
              • For a quoted string, this is the value of the quote character
              • *
              • For a word, this is TT_WORD
              • *************** public class StreamTokenizer *** 134,140 **** } /** ! * This method initializes a new StreamTokenizer to read * characters from a Reader and parse them. The char values * have their hight bits masked so that the value is treated a character * in the range of 0x0000 to 0x00FF. --- 134,140 ---- } /** ! * This method initializes a new StreamTokenizer to read * characters from a Reader and parse them. The char values * have their hight bits masked so that the value is treated a character * in the range of 0x0000 to 0x00FF. *************** public class StreamTokenizer *** 178,188 **** { if (ch >= 0 && ch <= 255) { ! comment[ch] = true; ! whitespace[ch] = false; ! alphabetic[ch] = false; ! numeric[ch] = false; ! quote[ch] = false; } } --- 178,188 ---- { if (ch >= 0 && ch <= 255) { ! comment[ch] = true; ! whitespace[ch] = false; ! alphabetic[ch] = false; ! numeric[ch] = false; ! quote[ch] = false; } } *************** public class StreamTokenizer *** 199,205 **** } /** ! * This method returns the current line number. Note that if the * pushBack() method is called, it has no effect on the * line number returned by this method. * --- 199,205 ---- } /** ! * This method returns the current line number. Note that if the * pushBack() method is called, it has no effect on the * line number returned by this method. * *************** public class StreamTokenizer *** 213,219 **** /** * This method sets a flag that indicates whether or not alphabetic * tokens that are returned should be converted to lower case. ! * * @param flag true to convert to lower case, * false otherwise */ --- 213,219 ---- /** * This method sets a flag that indicates whether or not alphabetic * tokens that are returned should be converted to lower case. ! * * @param flag true to convert to lower case, * false otherwise */ *************** public class StreamTokenizer *** 248,255 **** } /** ! * This method reads the next token from the stream. It sets the ! * ttype variable to the appropriate token type and * returns it. It also can set sval or nval * as described below. The parsing strategy is as follows: *
                  --- 248,255 ---- } /** ! * This method reads the next token from the stream. It sets the ! * ttype variable to the appropriate token type and * returns it. It also can set sval or nval * as described below. The parsing strategy is as follows: *
                    *************** public class StreamTokenizer *** 266,278 **** * is stored in sval. If lower case mode is set, the token * stored in sval is converted to lower case. The end of line * sequence terminates a word only if EOL signficance has been turned on. ! * The start of a comment also terminates a word. Any character with a * non-alphabetic and non-numeric attribute (such as white space, a quote, * or a commet) are treated as non-alphabetic and terminate the word. *
                  • If a comment character is parsed, then all remaining characters on * the current line are skipped and another token is parsed. Any EOL or * EOF's encountered are not discarded, but rather terminate the comment.
                  • ! *
                  • If a quote character is parsed, then all characters up to the * second occurrence of the same quote character are parsed into a * String. This String is stored as * sval, but is not converted to lower case, even if lower case --- 266,278 ---- * is stored in sval. If lower case mode is set, the token * stored in sval is converted to lower case. The end of line * sequence terminates a word only if EOL signficance has been turned on. ! * The start of a comment also terminates a word. Any character with a * non-alphabetic and non-numeric attribute (such as white space, a quote, * or a commet) are treated as non-alphabetic and terminate the word.
                  • *
                  • If a comment character is parsed, then all remaining characters on * the current line are skipped and another token is parsed. Any EOL or * EOF's encountered are not discarded, but rather terminate the comment.
                  • ! *
                  • If a quote character is parsed, then all characters up to the * second occurrence of the same quote character are parsed into a * String. This String is stored as * sval, but is not converted to lower case, even if lower case *************** public class StreamTokenizer *** 281,287 **** * (\b (backspace), \t (HTAB), \n (linefeed), \f (form feed), \r * (carriage return), \" (double quote), \' (single quote), \\ * (backslash), \XXX (octal esacpe)) are converted to the appropriate ! * char values. Invalid esacape sequences are left in untranslated. * Unicode characters like ('\ u0000') are not recognized.
                  • *
                  • If the C++ comment sequence "//" is encountered, and the parser * is configured to handle that sequence, then the remainder of the line --- 281,287 ---- * (\b (backspace), \t (HTAB), \n (linefeed), \f (form feed), \r * (carriage return), \" (double quote), \' (single quote), \\ * (backslash), \XXX (octal esacpe)) are converted to the appropriate ! * char values. Invalid esacape sequences are left in untranslated. * Unicode characters like ('\ u0000') are not recognized.
                  • *
                  • If the C++ comment sequence "//" is encountered, and the parser * is configured to handle that sequence, then the remainder of the line *************** public class StreamTokenizer *** 303,311 **** { if (pushedBack) { ! pushedBack = false; ! if (ttype != TT_NONE) ! return ttype; } sval = null; --- 303,311 ---- { if (pushedBack) { ! pushedBack = false; ! if (ttype != TT_NONE) ! return ttype; } sval = null; *************** public class StreamTokenizer *** 314,509 **** // Skip whitespace. Deal with EOL along the way. while (isWhitespace(ch = in.read())) if (ch == '\n' || ch == '\r') ! { ! lineNumber++; ! // Throw away \n if in combination with \r. ! if (ch == '\r' && (ch = in.read()) != '\n') ! { ! if (ch != TT_EOF) ! in.unread(ch); ! } ! if (eolSignificant) ! return (ttype = TT_EOL); ! } if (ch == '/') if ((ch = in.read()) == '/' && slashSlash) ! { ! while ((ch = in.read()) != '\n' && ch != '\r' && ch != TT_EOF) ! ; ! ! if (ch != TT_EOF) ! in.unread(ch); ! return nextToken(); // Recursive, but not too deep in normal cases ! } ! else if (ch == '*' && slashStar) ! { ! while (true) ! { ! ch = in.read(); ! if (ch == '*') ! { ! if ((ch = in.read()) == '/') ! break; ! else if (ch != TT_EOF) ! in.unread(ch); ! } ! else if (ch == '\n' || ch == '\r') ! { ! lineNumber++; ! if (ch == '\r' && (ch = in.read()) != '\n') ! { ! if (ch != TT_EOF) ! in.unread(ch); ! } ! } ! else if (ch == TT_EOF) ! { ! break; ! } ! } ! return nextToken(); // Recursive, but not too deep in normal cases ! } else ! { ! if (ch != TT_EOF) ! in.unread(ch); ! ch = '/'; ! } if (ch == TT_EOF) ttype = TT_EOF; else if (isNumeric(ch)) { ! boolean isNegative = false; ! if (ch == '-') ! { ! // Read ahead to see if this is an ordinary '-' rather than numeric. ! ch = in.read(); ! if (isNumeric(ch) && ch != '-') ! { ! isNegative = true; ! } ! else ! { ! if (ch != TT_EOF) ! in.unread(ch); ! return (ttype = '-'); ! } ! } ! CPStringBuilder tokbuf = new CPStringBuilder(); ! tokbuf.append((char) ch); ! int decCount = 0; ! while (isNumeric(ch = in.read()) && ch != '-') ! if (ch == '.' && decCount++ > 0) ! break; ! else ! tokbuf.append((char) ch); ! if (ch != TT_EOF) ! in.unread(ch); ! ttype = TT_NUMBER; ! try ! { ! nval = Double.valueOf(tokbuf.toString()).doubleValue(); ! } ! catch (NumberFormatException _) ! { ! nval = 0.0; ! } ! if (isNegative) ! nval = -nval; } else if (isAlphabetic(ch)) { ! CPStringBuilder tokbuf = new CPStringBuilder(); ! tokbuf.append((char) ch); ! while (isAlphabetic(ch = in.read()) || isNumeric(ch)) ! tokbuf.append((char) ch); ! if (ch != TT_EOF) ! in.unread(ch); ! ttype = TT_WORD; ! sval = tokbuf.toString(); ! if (lowerCase) ! sval = sval.toLowerCase(); } else if (isComment(ch)) { ! while ((ch = in.read()) != '\n' && ch != '\r' && ch != TT_EOF) ! ; ! ! if (ch != TT_EOF) ! in.unread(ch); ! return nextToken(); // Recursive, but not too deep in normal cases. } else if (isQuote(ch)) { ! ttype = ch; ! CPStringBuilder tokbuf = new CPStringBuilder(); ! while ((ch = in.read()) != ttype && ch != '\n' && ch != '\r' && ! ch != TT_EOF) ! { ! if (ch == '\\') ! switch (ch = in.read()) ! { ! case 'a': ch = 0x7; ! break; ! case 'b': ch = '\b'; ! break; ! case 'f': ch = 0xC; ! break; ! case 'n': ch = '\n'; ! break; ! case 'r': ch = '\r'; ! break; ! case 't': ch = '\t'; ! break; ! case 'v': ch = 0xB; ! break; ! case '\n': ch = '\n'; ! break; case '\r': ch = '\r'; ! break; ! case '\"': ! case '\'': ! case '\\': ! break; ! default: ! int ch1, nextch; ! if ((nextch = ch1 = ch) >= '0' && ch <= '7') ! { ! ch -= '0'; ! if ((nextch = in.read()) >= '0' && nextch <= '7') ! { ! ch = ch * 8 + nextch - '0'; ! if ((nextch = in.read()) >= '0' && nextch <= '7' && ! ch1 >= '0' && ch1 <= '3') ! { ! ch = ch * 8 + nextch - '0'; ! nextch = in.read(); ! } ! } ! } ! if (nextch != TT_EOF) ! in.unread(nextch); ! } ! tokbuf.append((char) ch); ! } ! // Throw away matching quote char. ! if (ch != ttype && ch != TT_EOF) ! in.unread(ch); ! sval = tokbuf.toString(); } else { ! ttype = ch; } return ttype; --- 314,509 ---- // Skip whitespace. Deal with EOL along the way. while (isWhitespace(ch = in.read())) if (ch == '\n' || ch == '\r') ! { ! lineNumber++; ! // Throw away \n if in combination with \r. ! if (ch == '\r' && (ch = in.read()) != '\n') ! { ! if (ch != TT_EOF) ! in.unread(ch); ! } ! if (eolSignificant) ! return (ttype = TT_EOL); ! } if (ch == '/') if ((ch = in.read()) == '/' && slashSlash) ! { ! while ((ch = in.read()) != '\n' && ch != '\r' && ch != TT_EOF) ! ; ! ! if (ch != TT_EOF) ! in.unread(ch); ! return nextToken(); // Recursive, but not too deep in normal cases ! } ! else if (ch == '*' && slashStar) ! { ! while (true) ! { ! ch = in.read(); ! if (ch == '*') ! { ! if ((ch = in.read()) == '/') ! break; ! else if (ch != TT_EOF) ! in.unread(ch); ! } ! else if (ch == '\n' || ch == '\r') ! { ! lineNumber++; ! if (ch == '\r' && (ch = in.read()) != '\n') ! { ! if (ch != TT_EOF) ! in.unread(ch); ! } ! } ! else if (ch == TT_EOF) ! { ! break; ! } ! } ! return nextToken(); // Recursive, but not too deep in normal cases ! } else ! { ! if (ch != TT_EOF) ! in.unread(ch); ! ch = '/'; ! } if (ch == TT_EOF) ttype = TT_EOF; else if (isNumeric(ch)) { ! boolean isNegative = false; ! if (ch == '-') ! { ! // Read ahead to see if this is an ordinary '-' rather than numeric. ! ch = in.read(); ! if (isNumeric(ch) && ch != '-') ! { ! isNegative = true; ! } ! else ! { ! if (ch != TT_EOF) ! in.unread(ch); ! return (ttype = '-'); ! } ! } ! CPStringBuilder tokbuf = new CPStringBuilder(); ! tokbuf.append((char) ch); ! int decCount = 0; ! while (isNumeric(ch = in.read()) && ch != '-') ! if (ch == '.' && decCount++ > 0) ! break; ! else ! tokbuf.append((char) ch); ! if (ch != TT_EOF) ! in.unread(ch); ! ttype = TT_NUMBER; ! try ! { ! nval = Double.valueOf(tokbuf.toString()).doubleValue(); ! } ! catch (NumberFormatException _) ! { ! nval = 0.0; ! } ! if (isNegative) ! nval = -nval; } else if (isAlphabetic(ch)) { ! CPStringBuilder tokbuf = new CPStringBuilder(); ! tokbuf.append((char) ch); ! while (isAlphabetic(ch = in.read()) || isNumeric(ch)) ! tokbuf.append((char) ch); ! if (ch != TT_EOF) ! in.unread(ch); ! ttype = TT_WORD; ! sval = tokbuf.toString(); ! if (lowerCase) ! sval = sval.toLowerCase(); } else if (isComment(ch)) { ! while ((ch = in.read()) != '\n' && ch != '\r' && ch != TT_EOF) ! ; ! ! if (ch != TT_EOF) ! in.unread(ch); ! return nextToken(); // Recursive, but not too deep in normal cases. } else if (isQuote(ch)) { ! ttype = ch; ! CPStringBuilder tokbuf = new CPStringBuilder(); ! while ((ch = in.read()) != ttype && ch != '\n' && ch != '\r' && ! ch != TT_EOF) ! { ! if (ch == '\\') ! switch (ch = in.read()) ! { ! case 'a': ch = 0x7; ! break; ! case 'b': ch = '\b'; ! break; ! case 'f': ch = 0xC; ! break; ! case 'n': ch = '\n'; ! break; ! case 'r': ch = '\r'; ! break; ! case 't': ch = '\t'; ! break; ! case 'v': ch = 0xB; ! break; ! case '\n': ch = '\n'; ! break; case '\r': ch = '\r'; ! break; ! case '\"': ! case '\'': ! case '\\': ! break; ! default: ! int ch1, nextch; ! if ((nextch = ch1 = ch) >= '0' && ch <= '7') ! { ! ch -= '0'; ! if ((nextch = in.read()) >= '0' && nextch <= '7') ! { ! ch = ch * 8 + nextch - '0'; ! if ((nextch = in.read()) >= '0' && nextch <= '7' && ! ch1 >= '0' && ch1 <= '3') ! { ! ch = ch * 8 + nextch - '0'; ! nextch = in.read(); ! } ! } ! } ! if (nextch != TT_EOF) ! in.unread(nextch); ! } ! tokbuf.append((char) ch); ! } ! // Throw away matching quote char. ! if (ch != ttype && ch != TT_EOF) ! in.unread(ch); ! sval = tokbuf.toString(); } else { ! ttype = ch; } return ttype; *************** public class StreamTokenizer *** 591,601 **** { if (ch >= 0 && ch <= 255) { ! quote[ch] = true; ! comment[ch] = false; ! whitespace[ch] = false; ! alphabetic[ch] = false; ! numeric[ch] = false; } } --- 591,601 ---- { if (ch >= 0 && ch <= 255) { ! quote[ch] = true; ! comment[ch] = false; ! whitespace[ch] = false; ! alphabetic[ch] = false; ! numeric[ch] = false; } } *************** public class StreamTokenizer *** 692,699 **** hi = 255; for (int i = low; i <= hi; i++) { ! resetChar(i); ! whitespace[i] = true; } } --- 692,699 ---- hi = 255; for (int i = low; i <= hi; i++) { ! resetChar(i); ! whitespace[i] = true; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/StringBufferInputStream.java gcc-4.6.0/libjava/classpath/java/io/StringBufferInputStream.java *** gcc-4.5.2/libjava/classpath/java/io/StringBufferInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/StringBufferInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 43,49 **** * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. Deprecated in JDK 1.1. */ ! /** * This class permits a String to be read as an input stream. * The low eight bits of each character in the String are the --- 43,49 ---- * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. Deprecated in JDK 1.1. */ ! /** * This class permits a String to be read as an input stream. * The low eight bits of each character in the String are the *************** package java.io; *** 51,60 **** * discarded. *

                    * The mark/reset functionality in this class behaves differently than ! * normal. The mark() method is always ignored and the ! * reset() method always resets in stream to start reading from ! * position 0 in the String. Note that since this method does not override ! * markSupported() in InputStream, calling that * method will return false. *

                    * Note that this class is deprecated because it does not properly handle --- 51,60 ---- * discarded. *

                    * The mark/reset functionality in this class behaves differently than ! * normal. The mark() method is always ignored and the ! * reset() method always resets in stream to start reading from ! * position 0 in the String. Note that since this method does not override ! * markSupported() in InputStream, calling that * method will return false. *

                    * Note that this class is deprecated because it does not properly handle *************** public class StringBufferInputStream ext *** 104,110 **** } /** ! * This method reads one byte from the stream. The pos counter * is advanced to the next byte to be read. The byte read is returned as * an int in the range of 0-255. If the stream position is already at the * end of the buffer, no byte is read and a -1 is returned in order to --- 104,110 ---- } /** ! * This method reads one byte from the stream. The pos counter * is advanced to the next byte to be read. The byte read is returned as * an int in the range of 0-255. If the stream position is already at the * end of the buffer, no byte is read and a -1 is returned in order to *************** public class StringBufferInputStream ext *** 115,132 **** public int read() { if (pos >= count) ! return -1; // EOF return ((int) buffer.charAt(pos++)) & 0xFF; } /** * This method reads bytes from the stream and stores them into a caller ! * supplied buffer. It starts storing the data at index offset * into the buffer and attempts to read len bytes. This method * can return before reading the number of bytes requested if the end of the ! * stream is encountered first. The actual number of bytes read is ! * returned. If no bytes can be read because the stream is already at * the end of stream position, a -1 is returned. *

                    * This method does not block. --- 115,132 ---- public int read() { if (pos >= count) ! return -1; // EOF return ((int) buffer.charAt(pos++)) & 0xFF; } /** * This method reads bytes from the stream and stores them into a caller ! * supplied buffer. It starts storing the data at index offset * into the buffer and attempts to read len bytes. This method * can return before reading the number of bytes requested if the end of the ! * stream is encountered first. The actual number of bytes read is ! * returned. If no bytes can be read because the stream is already at * the end of stream position, a -1 is returned. *

                    * This method does not block. *************** public class StringBufferInputStream ext *** 143,149 **** throw new ArrayIndexOutOfBoundsException(); if (pos >= count) ! return -1; // EOF int numRead = Math.min(len, count - pos); if (numRead < 0) --- 143,149 ---- throw new ArrayIndexOutOfBoundsException(); if (pos >= count) ! return -1; // EOF int numRead = Math.min(len, count - pos); if (numRead < 0) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/StringReader.java gcc-4.6.0/libjava/classpath/java/io/StringReader.java *** gcc-4.5.2/libjava/classpath/java/io/StringReader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/StringReader.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 44,50 **** */ /** ! * This class permits a String to be read as a character * input stream. *

                    * The mark/reset functionality in this class behaves differently than --- 44,50 ---- */ /** ! * This class permits a String to be read as a character * input stream. *

                    * The mark/reset functionality in this class behaves differently than *************** package java.io; *** 53,59 **** * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Warren Levy (warrenl@cygnus.com) ! * @date October 19, 1998. */ public class StringReader extends Reader { --- 53,59 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Warren Levy (warrenl@cygnus.com) ! * @date October 19, 1998. */ public class StringReader extends Reader { *************** public class StringReader extends Reader *** 70,77 **** private int count; /** ! * Create a new StringReader that will read chars from the ! * passed in String. This stream will read from the beginning * to the end of the String. * * @param buffer The String this stream will read from. --- 70,77 ---- private int count; /** ! * Create a new StringReader that will read chars from the ! * passed in String. This stream will read from the beginning * to the end of the String. * * @param buffer The String this stream will read from. *************** public class StringReader extends Reader *** 180,186 **** /** * This method attempts to skip the requested number of chars in the ! * input stream. It does this by advancing the pos value by * the specified number of chars. It this would exceed the length of the * buffer, then only enough chars are skipped to position the stream at * the end of the buffer. The actual number of chars skipped is returned. --- 180,186 ---- /** * This method attempts to skip the requested number of chars in the ! * input stream. It does this by advancing the pos value by * the specified number of chars. It this would exceed the length of the * buffer, then only enough chars are skipped to position the stream at * the end of the buffer. The actual number of chars skipped is returned. *************** public class StringReader extends Reader *** 206,209 **** } } } - --- 206,208 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/StringWriter.java gcc-4.6.0/libjava/classpath/java/io/StringWriter.java *** gcc-4.5.2/libjava/classpath/java/io/StringWriter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/StringWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class StringWriter extends Writer *** 118,124 **** * as a String. * * @return A String representing the chars written to ! * this stream. */ public String toString () { --- 118,124 ---- * as a String. * * @return A String representing the chars written to ! * this stream. */ public String toString () { *************** public class StringWriter extends Writer *** 170,176 **** * @param str The String to write characters from * @param offset The character position to start writing from * @param len The number of characters to write. ! */ public void write (String str, int offset, int len) { // char[] tmpbuf = new char[len]; --- 170,176 ---- * @param str The String to write characters from * @param offset The character position to start writing from * @param len The number of characters to write. ! */ public void write (String str, int offset, int len) { // char[] tmpbuf = new char[len]; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/UnsupportedEncodingException.java gcc-4.6.0/libjava/classpath/java/io/UnsupportedEncodingException.java *** gcc-4.5.2/libjava/classpath/java/io/UnsupportedEncodingException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/io/UnsupportedEncodingException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package java.io; /** ! * This exception is thrown when the requested character encoding is * not supported. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 39,45 ---- package java.io; /** ! * This exception is thrown when the requested character encoding is * not supported. * * @author Aaron M. Renn (arenn@urbanophile.com) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/io/Writer.java gcc-4.6.0/libjava/classpath/java/io/Writer.java *** gcc-4.5.2/libjava/classpath/java/io/Writer.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/io/Writer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.io; *** 44,53 **** */ /** ! * This abstract class forms the base of the hierarchy of classes that * write output as a stream of chars. It provides a common set of methods * for writing chars to stream. Subclasses implement and/or extend these ! * methods to write chars in a particular manner or to a particular * destination such as a file on disk or network connection. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 44,53 ---- */ /** ! * This abstract class forms the base of the hierarchy of classes that * write output as a stream of chars. It provides a common set of methods * for writing chars to stream. Subclasses implement and/or extend these ! * methods to write chars in a particular manner or to a particular * destination such as a file on disk or network connection. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** public abstract class Writer implements *** 98,104 **** public abstract void flush() throws IOException; /** ! * This method closes the stream. Any internal or native resources * associated * with this stream are freed. Any subsequent attempt to access the stream * might throw an exception. --- 98,104 ---- public abstract void flush() throws IOException; /** ! * This method closes the stream. Any internal or native resources * associated * with this stream are freed. Any subsequent attempt to access the stream * might throw an exception. *************** public abstract class Writer implements *** 110,116 **** public abstract void close() throws IOException; /** ! * This method writes a single char to the output stream. * * @param b The char to be written to the output stream, passed as an int * --- 110,116 ---- public abstract void close() throws IOException; /** ! * This method writes a single char to the output stream. * * @param b The char to be written to the output stream, passed as an int * *************** public abstract class Writer implements *** 125,132 **** } /** ! * This method all the writes char from the passed array to the output ! * stream. This method is equivalent to * write(buf, 0, buf.length) which * is exactly how it is implemented in this class. * --- 125,132 ---- } /** ! * This method all the writes char from the passed array to the output ! * stream. This method is equivalent to * write(buf, 0, buf.length) which * is exactly how it is implemented in this class. * *************** public abstract class Writer implements *** 148,157 **** * @param buf The array of char to write from * @param offset The index into the array to start writing from * @param len The number of char to write ! * * @exception IOException If an error occurs */ ! public abstract void write(char[] buf, int offset, int len) throws IOException; /** --- 148,157 ---- * @param buf The array of char to write from * @param offset The index into the array to start writing from * @param len The number of char to write ! * * @exception IOException If an error occurs */ ! public abstract void write(char[] buf, int offset, int len) throws IOException; /** *************** public abstract class Writer implements *** 165,171 **** public void write(String str) throws IOException { write(str, 0, str.length()); ! } /** * This method writes len chars from the String --- 165,171 ---- public void write(String str) throws IOException { write(str, 0, str.length()); ! } /** * This method writes len chars from the String *************** public abstract class Writer implements *** 180,186 **** */ public void write(String str, int offset, int len) throws IOException { ! // FIXME - for libgcj re-write using native code to not require // copied buffer. char[] buf = new char[len]; --- 180,186 ---- */ public void write(String str, int offset, int len) throws IOException { ! // FIXME - for libgcj re-write using native code to not require // copied buffer. char[] buf = new char[len]; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/AbstractStringBuffer.java gcc-4.6.0/libjava/classpath/java/lang/AbstractStringBuffer.java *** gcc-4.5.2/libjava/classpath/java/lang/AbstractStringBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/AbstractStringBuffer.java Tue Jan 11 19:46:05 2011 *************** abstract class AbstractStringBuffer *** 169,181 **** /* If the StringBuffer's value just grew, then we know that value is newly allocated and the region between count and newLength is filled with '\0'. */ ! count = newLength; } else { ! /* The StringBuffer's value doesn't need to grow. However, ! we should clear out any cruft that may exist. */ ! while (count < newLength) value[count++] = '\0'; } } --- 169,181 ---- /* If the StringBuffer's value just grew, then we know that value is newly allocated and the region between count and newLength is filled with '\0'. */ ! count = newLength; } else { ! /* The StringBuffer's value doesn't need to grow. However, ! we should clear out any cruft that may exist. */ ! while (count < newLength) value[count++] = '\0'; } } *************** abstract class AbstractStringBuffer *** 244,250 **** * @see System#arraycopy(Object, int, Object, int, int) */ public void getChars(int srcOffset, int srcEnd, ! char[] dst, int dstOffset) { if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset) throw new StringIndexOutOfBoundsException(); --- 244,250 ---- * @see System#arraycopy(Object, int, Object, int, int) */ public void getChars(int srcOffset, int srcEnd, ! char[] dst, int dstOffset) { if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset) throw new StringIndexOutOfBoundsException(); *************** abstract class AbstractStringBuffer *** 316,325 **** return append("null"); synchronized (stringBuffer) { ! int len = stringBuffer.count; ! ensureCapacity(count + len); ! VMSystem.arraycopy(stringBuffer.value, 0, value, count, len); ! count += len; } return this; } --- 316,325 ---- return append("null"); synchronized (stringBuffer) { ! int len = stringBuffer.count; ! ensureCapacity(count + len); ! VMSystem.arraycopy(stringBuffer.value, 0, value, count, len); ! count += len; } return this; } *************** abstract class AbstractStringBuffer *** 420,428 **** seq = "null"; if (end - start > 0) { ! ensureCapacity_unsynchronized(count + end - start); ! for (; start < end; ++start) ! value[count++] = seq.charAt(start); } return this; } --- 420,428 ---- seq = "null"; if (end - start > 0) { ! ensureCapacity_unsynchronized(count + end - start); ! for (; start < end; ++start) ! value[count++] = seq.charAt(start); } return this; } *************** abstract class AbstractStringBuffer *** 907,915 **** // If we save more than 1/4 of the buffer, shrink. if (wouldSave > 200 || wouldSave * 4 > value.length) { ! char[] newValue = new char[count]; ! VMSystem.arraycopy(value, 0, newValue, 0, count); ! value = newValue; } } --- 907,915 ---- // If we save more than 1/4 of the buffer, shrink. if (wouldSave > 200 || wouldSave * 4 > value.length) { ! char[] newValue = new char[count]; ! VMSystem.arraycopy(value, 0, newValue, 0, count); ! value = newValue; } } *************** abstract class AbstractStringBuffer *** 933,955 **** int count = 0; while (start < end) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == end ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! ++count; } return count; } --- 933,955 ---- int count = 0; while (start < end) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == end ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! ++count; } return count; } *************** abstract class AbstractStringBuffer *** 969,990 **** { while (codePoints > 0) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! --codePoints; } return start; } --- 969,990 ---- { while (codePoints > 0) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! --codePoints; } return start; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Boolean.java gcc-4.6.0/libjava/classpath/java/lang/Boolean.java *** gcc-4.5.2/libjava/classpath/java/lang/Boolean.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/Boolean.java Tue Jan 11 19:46:05 2011 *************** public final class Boolean implements Se *** 226,232 **** * Compares this Boolean to another. * * @param other the Boolean to compare this Boolean to ! * @return 0 if both Booleans represent the same value, a positive number * if this Boolean represents true and the other false, and a negative * number otherwise. * @since 1.5 --- 226,232 ---- * Compares this Boolean to another. * * @param other the Boolean to compare this Boolean to ! * @return 0 if both Booleans represent the same value, a positive number * if this Boolean represents true and the other false, and a negative * number otherwise. * @since 1.5 *************** public final class Boolean implements Se *** 247,251 **** { return "true".equalsIgnoreCase(b) ? true : false; } ! } --- 247,251 ---- { return "true".equalsIgnoreCase(b) ? true : false; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Character.java gcc-4.6.0/libjava/classpath/java/lang/Character.java *** gcc-4.5.2/libjava/classpath/java/lang/Character.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Character.java Tue Jan 11 19:46:05 2011 *************** public final class Character implements *** 168,174 **** * standard. */ private UnicodeBlock(int start, int end, String name, ! String canonicalName) { super(name); this.start = start; --- 168,174 ---- * standard. */ private UnicodeBlock(int start, int end, String name, ! String canonicalName) { super(name); this.start = start; *************** public final class Character implements *** 202,209 **** public static UnicodeBlock of(int codePoint) { if (codePoint > MAX_CODE_POINT) ! throw new IllegalArgumentException("The supplied integer value is " + ! "too large to be a codepoint."); // Simple binary search for the correct block. int low = 0; int hi = sets.length - 1; --- 202,209 ---- public static UnicodeBlock of(int codePoint) { if (codePoint > MAX_CODE_POINT) ! throw new IllegalArgumentException("The supplied integer value is " + ! "too large to be a codepoint."); // Simple binary search for the correct block. int low = 0; int hi = sets.length - 1; *************** public final class Character implements *** 278,284 **** return SURROGATES_AREA; break; case CONSTANT: ! if (usCollator.compare(blockName, "SURROGATES_AREA") == 0) return SURROGATES_AREA; break; } --- 278,284 ---- return SURROGATES_AREA; break; case CONSTANT: ! if (usCollator.compare(blockName, "SURROGATES_AREA") == 0) return SURROGATES_AREA; break; } *************** public final class Character implements *** 292,303 **** break; case NO_SPACES: for (UnicodeBlock block : sets) ! { ! String nsName = block.canonicalName.replaceAll(" ",""); ! if (usCollator.compare(blockName, nsName) == 0) ! return block; ! } ! break; case CONSTANT: for (UnicodeBlock block : sets) if (usCollator.compare(blockName, block.toString()) == 0) --- 292,303 ---- break; case NO_SPACES: for (UnicodeBlock block : sets) ! { ! String nsName = block.canonicalName.replaceAll(" ",""); ! if (usCollator.compare(blockName, nsName) == 0) ! return block; ! } ! break; case CONSTANT: for (UnicodeBlock block : sets) if (usCollator.compare(blockName, block.toString()) == 0) *************** public final class Character implements *** 314,320 **** */ public static final UnicodeBlock BASIC_LATIN = new UnicodeBlock(0x0000, 0x007F, ! "BASIC_LATIN", "Basic Latin"); /** --- 314,320 ---- */ public static final UnicodeBlock BASIC_LATIN = new UnicodeBlock(0x0000, 0x007F, ! "BASIC_LATIN", "Basic Latin"); /** *************** public final class Character implements *** 323,329 **** */ public static final UnicodeBlock LATIN_1_SUPPLEMENT = new UnicodeBlock(0x0080, 0x00FF, ! "LATIN_1_SUPPLEMENT", "Latin-1 Supplement"); /** --- 323,329 ---- */ public static final UnicodeBlock LATIN_1_SUPPLEMENT = new UnicodeBlock(0x0080, 0x00FF, ! "LATIN_1_SUPPLEMENT", "Latin-1 Supplement"); /** *************** public final class Character implements *** 332,338 **** */ public static final UnicodeBlock LATIN_EXTENDED_A = new UnicodeBlock(0x0100, 0x017F, ! "LATIN_EXTENDED_A", "Latin Extended-A"); /** --- 332,338 ---- */ public static final UnicodeBlock LATIN_EXTENDED_A = new UnicodeBlock(0x0100, 0x017F, ! "LATIN_EXTENDED_A", "Latin Extended-A"); /** *************** public final class Character implements *** 341,347 **** */ public static final UnicodeBlock LATIN_EXTENDED_B = new UnicodeBlock(0x0180, 0x024F, ! "LATIN_EXTENDED_B", "Latin Extended-B"); /** --- 341,347 ---- */ public static final UnicodeBlock LATIN_EXTENDED_B = new UnicodeBlock(0x0180, 0x024F, ! "LATIN_EXTENDED_B", "Latin Extended-B"); /** *************** public final class Character implements *** 350,356 **** */ public static final UnicodeBlock IPA_EXTENSIONS = new UnicodeBlock(0x0250, 0x02AF, ! "IPA_EXTENSIONS", "IPA Extensions"); /** --- 350,356 ---- */ public static final UnicodeBlock IPA_EXTENSIONS = new UnicodeBlock(0x0250, 0x02AF, ! "IPA_EXTENSIONS", "IPA Extensions"); /** *************** public final class Character implements *** 359,365 **** */ public static final UnicodeBlock SPACING_MODIFIER_LETTERS = new UnicodeBlock(0x02B0, 0x02FF, ! "SPACING_MODIFIER_LETTERS", "Spacing Modifier Letters"); /** --- 359,365 ---- */ public static final UnicodeBlock SPACING_MODIFIER_LETTERS = new UnicodeBlock(0x02B0, 0x02FF, ! "SPACING_MODIFIER_LETTERS", "Spacing Modifier Letters"); /** *************** public final class Character implements *** 368,374 **** */ public static final UnicodeBlock COMBINING_DIACRITICAL_MARKS = new UnicodeBlock(0x0300, 0x036F, ! "COMBINING_DIACRITICAL_MARKS", "Combining Diacritical Marks"); /** --- 368,374 ---- */ public static final UnicodeBlock COMBINING_DIACRITICAL_MARKS = new UnicodeBlock(0x0300, 0x036F, ! "COMBINING_DIACRITICAL_MARKS", "Combining Diacritical Marks"); /** *************** public final class Character implements *** 377,383 **** */ public static final UnicodeBlock GREEK = new UnicodeBlock(0x0370, 0x03FF, ! "GREEK", "Greek"); /** --- 377,383 ---- */ public static final UnicodeBlock GREEK = new UnicodeBlock(0x0370, 0x03FF, ! "GREEK", "Greek"); /** *************** public final class Character implements *** 386,392 **** */ public static final UnicodeBlock CYRILLIC = new UnicodeBlock(0x0400, 0x04FF, ! "CYRILLIC", "Cyrillic"); /** --- 386,392 ---- */ public static final UnicodeBlock CYRILLIC = new UnicodeBlock(0x0400, 0x04FF, ! "CYRILLIC", "Cyrillic"); /** *************** public final class Character implements *** 396,402 **** */ public static final UnicodeBlock CYRILLIC_SUPPLEMENTARY = new UnicodeBlock(0x0500, 0x052F, ! "CYRILLIC_SUPPLEMENTARY", "Cyrillic Supplementary"); /** --- 396,402 ---- */ public static final UnicodeBlock CYRILLIC_SUPPLEMENTARY = new UnicodeBlock(0x0500, 0x052F, ! "CYRILLIC_SUPPLEMENTARY", "Cyrillic Supplementary"); /** *************** public final class Character implements *** 405,411 **** */ public static final UnicodeBlock ARMENIAN = new UnicodeBlock(0x0530, 0x058F, ! "ARMENIAN", "Armenian"); /** --- 405,411 ---- */ public static final UnicodeBlock ARMENIAN = new UnicodeBlock(0x0530, 0x058F, ! "ARMENIAN", "Armenian"); /** *************** public final class Character implements *** 414,420 **** */ public static final UnicodeBlock HEBREW = new UnicodeBlock(0x0590, 0x05FF, ! "HEBREW", "Hebrew"); /** --- 414,420 ---- */ public static final UnicodeBlock HEBREW = new UnicodeBlock(0x0590, 0x05FF, ! "HEBREW", "Hebrew"); /** *************** public final class Character implements *** 423,429 **** */ public static final UnicodeBlock ARABIC = new UnicodeBlock(0x0600, 0x06FF, ! "ARABIC", "Arabic"); /** --- 423,429 ---- */ public static final UnicodeBlock ARABIC = new UnicodeBlock(0x0600, 0x06FF, ! "ARABIC", "Arabic"); /** *************** public final class Character implements *** 433,439 **** */ public static final UnicodeBlock SYRIAC = new UnicodeBlock(0x0700, 0x074F, ! "SYRIAC", "Syriac"); /** --- 433,439 ---- */ public static final UnicodeBlock SYRIAC = new UnicodeBlock(0x0700, 0x074F, ! "SYRIAC", "Syriac"); /** *************** public final class Character implements *** 443,449 **** */ public static final UnicodeBlock THAANA = new UnicodeBlock(0x0780, 0x07BF, ! "THAANA", "Thaana"); /** --- 443,449 ---- */ public static final UnicodeBlock THAANA = new UnicodeBlock(0x0780, 0x07BF, ! "THAANA", "Thaana"); /** *************** public final class Character implements *** 452,458 **** */ public static final UnicodeBlock DEVANAGARI = new UnicodeBlock(0x0900, 0x097F, ! "DEVANAGARI", "Devanagari"); /** --- 452,458 ---- */ public static final UnicodeBlock DEVANAGARI = new UnicodeBlock(0x0900, 0x097F, ! "DEVANAGARI", "Devanagari"); /** *************** public final class Character implements *** 461,467 **** */ public static final UnicodeBlock BENGALI = new UnicodeBlock(0x0980, 0x09FF, ! "BENGALI", "Bengali"); /** --- 461,467 ---- */ public static final UnicodeBlock BENGALI = new UnicodeBlock(0x0980, 0x09FF, ! "BENGALI", "Bengali"); /** *************** public final class Character implements *** 470,476 **** */ public static final UnicodeBlock GURMUKHI = new UnicodeBlock(0x0A00, 0x0A7F, ! "GURMUKHI", "Gurmukhi"); /** --- 470,476 ---- */ public static final UnicodeBlock GURMUKHI = new UnicodeBlock(0x0A00, 0x0A7F, ! "GURMUKHI", "Gurmukhi"); /** *************** public final class Character implements *** 479,485 **** */ public static final UnicodeBlock GUJARATI = new UnicodeBlock(0x0A80, 0x0AFF, ! "GUJARATI", "Gujarati"); /** --- 479,485 ---- */ public static final UnicodeBlock GUJARATI = new UnicodeBlock(0x0A80, 0x0AFF, ! "GUJARATI", "Gujarati"); /** *************** public final class Character implements *** 488,494 **** */ public static final UnicodeBlock ORIYA = new UnicodeBlock(0x0B00, 0x0B7F, ! "ORIYA", "Oriya"); /** --- 488,494 ---- */ public static final UnicodeBlock ORIYA = new UnicodeBlock(0x0B00, 0x0B7F, ! "ORIYA", "Oriya"); /** *************** public final class Character implements *** 497,503 **** */ public static final UnicodeBlock TAMIL = new UnicodeBlock(0x0B80, 0x0BFF, ! "TAMIL", "Tamil"); /** --- 497,503 ---- */ public static final UnicodeBlock TAMIL = new UnicodeBlock(0x0B80, 0x0BFF, ! "TAMIL", "Tamil"); /** *************** public final class Character implements *** 506,512 **** */ public static final UnicodeBlock TELUGU = new UnicodeBlock(0x0C00, 0x0C7F, ! "TELUGU", "Telugu"); /** --- 506,512 ---- */ public static final UnicodeBlock TELUGU = new UnicodeBlock(0x0C00, 0x0C7F, ! "TELUGU", "Telugu"); /** *************** public final class Character implements *** 515,521 **** */ public static final UnicodeBlock KANNADA = new UnicodeBlock(0x0C80, 0x0CFF, ! "KANNADA", "Kannada"); /** --- 515,521 ---- */ public static final UnicodeBlock KANNADA = new UnicodeBlock(0x0C80, 0x0CFF, ! "KANNADA", "Kannada"); /** *************** public final class Character implements *** 524,530 **** */ public static final UnicodeBlock MALAYALAM = new UnicodeBlock(0x0D00, 0x0D7F, ! "MALAYALAM", "Malayalam"); /** --- 524,530 ---- */ public static final UnicodeBlock MALAYALAM = new UnicodeBlock(0x0D00, 0x0D7F, ! "MALAYALAM", "Malayalam"); /** *************** public final class Character implements *** 534,540 **** */ public static final UnicodeBlock SINHALA = new UnicodeBlock(0x0D80, 0x0DFF, ! "SINHALA", "Sinhala"); /** --- 534,540 ---- */ public static final UnicodeBlock SINHALA = new UnicodeBlock(0x0D80, 0x0DFF, ! "SINHALA", "Sinhala"); /** *************** public final class Character implements *** 543,549 **** */ public static final UnicodeBlock THAI = new UnicodeBlock(0x0E00, 0x0E7F, ! "THAI", "Thai"); /** --- 543,549 ---- */ public static final UnicodeBlock THAI = new UnicodeBlock(0x0E00, 0x0E7F, ! "THAI", "Thai"); /** *************** public final class Character implements *** 552,558 **** */ public static final UnicodeBlock LAO = new UnicodeBlock(0x0E80, 0x0EFF, ! "LAO", "Lao"); /** --- 552,558 ---- */ public static final UnicodeBlock LAO = new UnicodeBlock(0x0E80, 0x0EFF, ! "LAO", "Lao"); /** *************** public final class Character implements *** 561,567 **** */ public static final UnicodeBlock TIBETAN = new UnicodeBlock(0x0F00, 0x0FFF, ! "TIBETAN", "Tibetan"); /** --- 561,567 ---- */ public static final UnicodeBlock TIBETAN = new UnicodeBlock(0x0F00, 0x0FFF, ! "TIBETAN", "Tibetan"); /** *************** public final class Character implements *** 571,577 **** */ public static final UnicodeBlock MYANMAR = new UnicodeBlock(0x1000, 0x109F, ! "MYANMAR", "Myanmar"); /** --- 571,577 ---- */ public static final UnicodeBlock MYANMAR = new UnicodeBlock(0x1000, 0x109F, ! "MYANMAR", "Myanmar"); /** *************** public final class Character implements *** 580,586 **** */ public static final UnicodeBlock GEORGIAN = new UnicodeBlock(0x10A0, 0x10FF, ! "GEORGIAN", "Georgian"); /** --- 580,586 ---- */ public static final UnicodeBlock GEORGIAN = new UnicodeBlock(0x10A0, 0x10FF, ! "GEORGIAN", "Georgian"); /** *************** public final class Character implements *** 589,595 **** */ public static final UnicodeBlock HANGUL_JAMO = new UnicodeBlock(0x1100, 0x11FF, ! "HANGUL_JAMO", "Hangul Jamo"); /** --- 589,595 ---- */ public static final UnicodeBlock HANGUL_JAMO = new UnicodeBlock(0x1100, 0x11FF, ! "HANGUL_JAMO", "Hangul Jamo"); /** *************** public final class Character implements *** 599,605 **** */ public static final UnicodeBlock ETHIOPIC = new UnicodeBlock(0x1200, 0x137F, ! "ETHIOPIC", "Ethiopic"); /** --- 599,605 ---- */ public static final UnicodeBlock ETHIOPIC = new UnicodeBlock(0x1200, 0x137F, ! "ETHIOPIC", "Ethiopic"); /** *************** public final class Character implements *** 609,615 **** */ public static final UnicodeBlock CHEROKEE = new UnicodeBlock(0x13A0, 0x13FF, ! "CHEROKEE", "Cherokee"); /** --- 609,615 ---- */ public static final UnicodeBlock CHEROKEE = new UnicodeBlock(0x13A0, 0x13FF, ! "CHEROKEE", "Cherokee"); /** *************** public final class Character implements *** 619,625 **** */ public static final UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = new UnicodeBlock(0x1400, 0x167F, ! "UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS", "Unified Canadian Aboriginal Syllabics"); /** --- 619,625 ---- */ public static final UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = new UnicodeBlock(0x1400, 0x167F, ! "UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS", "Unified Canadian Aboriginal Syllabics"); /** *************** public final class Character implements *** 629,635 **** */ public static final UnicodeBlock OGHAM = new UnicodeBlock(0x1680, 0x169F, ! "OGHAM", "Ogham"); /** --- 629,635 ---- */ public static final UnicodeBlock OGHAM = new UnicodeBlock(0x1680, 0x169F, ! "OGHAM", "Ogham"); /** *************** public final class Character implements *** 639,645 **** */ public static final UnicodeBlock RUNIC = new UnicodeBlock(0x16A0, 0x16FF, ! "RUNIC", "Runic"); /** --- 639,645 ---- */ public static final UnicodeBlock RUNIC = new UnicodeBlock(0x16A0, 0x16FF, ! "RUNIC", "Runic"); /** *************** public final class Character implements *** 649,655 **** */ public static final UnicodeBlock TAGALOG = new UnicodeBlock(0x1700, 0x171F, ! "TAGALOG", "Tagalog"); /** --- 649,655 ---- */ public static final UnicodeBlock TAGALOG = new UnicodeBlock(0x1700, 0x171F, ! "TAGALOG", "Tagalog"); /** *************** public final class Character implements *** 659,665 **** */ public static final UnicodeBlock HANUNOO = new UnicodeBlock(0x1720, 0x173F, ! "HANUNOO", "Hanunoo"); /** --- 659,665 ---- */ public static final UnicodeBlock HANUNOO = new UnicodeBlock(0x1720, 0x173F, ! "HANUNOO", "Hanunoo"); /** *************** public final class Character implements *** 669,675 **** */ public static final UnicodeBlock BUHID = new UnicodeBlock(0x1740, 0x175F, ! "BUHID", "Buhid"); /** --- 669,675 ---- */ public static final UnicodeBlock BUHID = new UnicodeBlock(0x1740, 0x175F, ! "BUHID", "Buhid"); /** *************** public final class Character implements *** 679,685 **** */ public static final UnicodeBlock TAGBANWA = new UnicodeBlock(0x1760, 0x177F, ! "TAGBANWA", "Tagbanwa"); /** --- 679,685 ---- */ public static final UnicodeBlock TAGBANWA = new UnicodeBlock(0x1760, 0x177F, ! "TAGBANWA", "Tagbanwa"); /** *************** public final class Character implements *** 689,695 **** */ public static final UnicodeBlock KHMER = new UnicodeBlock(0x1780, 0x17FF, ! "KHMER", "Khmer"); /** --- 689,695 ---- */ public static final UnicodeBlock KHMER = new UnicodeBlock(0x1780, 0x17FF, ! "KHMER", "Khmer"); /** *************** public final class Character implements *** 699,705 **** */ public static final UnicodeBlock MONGOLIAN = new UnicodeBlock(0x1800, 0x18AF, ! "MONGOLIAN", "Mongolian"); /** --- 699,705 ---- */ public static final UnicodeBlock MONGOLIAN = new UnicodeBlock(0x1800, 0x18AF, ! "MONGOLIAN", "Mongolian"); /** *************** public final class Character implements *** 709,715 **** */ public static final UnicodeBlock LIMBU = new UnicodeBlock(0x1900, 0x194F, ! "LIMBU", "Limbu"); /** --- 709,715 ---- */ public static final UnicodeBlock LIMBU = new UnicodeBlock(0x1900, 0x194F, ! "LIMBU", "Limbu"); /** *************** public final class Character implements *** 719,725 **** */ public static final UnicodeBlock TAI_LE = new UnicodeBlock(0x1950, 0x197F, ! "TAI_LE", "Tai Le"); /** --- 719,725 ---- */ public static final UnicodeBlock TAI_LE = new UnicodeBlock(0x1950, 0x197F, ! "TAI_LE", "Tai Le"); /** *************** public final class Character implements *** 729,735 **** */ public static final UnicodeBlock KHMER_SYMBOLS = new UnicodeBlock(0x19E0, 0x19FF, ! "KHMER_SYMBOLS", "Khmer Symbols"); /** --- 729,735 ---- */ public static final UnicodeBlock KHMER_SYMBOLS = new UnicodeBlock(0x19E0, 0x19FF, ! "KHMER_SYMBOLS", "Khmer Symbols"); /** *************** public final class Character implements *** 739,745 **** */ public static final UnicodeBlock PHONETIC_EXTENSIONS = new UnicodeBlock(0x1D00, 0x1D7F, ! "PHONETIC_EXTENSIONS", "Phonetic Extensions"); /** --- 739,745 ---- */ public static final UnicodeBlock PHONETIC_EXTENSIONS = new UnicodeBlock(0x1D00, 0x1D7F, ! "PHONETIC_EXTENSIONS", "Phonetic Extensions"); /** *************** public final class Character implements *** 748,754 **** */ public static final UnicodeBlock LATIN_EXTENDED_ADDITIONAL = new UnicodeBlock(0x1E00, 0x1EFF, ! "LATIN_EXTENDED_ADDITIONAL", "Latin Extended Additional"); /** --- 748,754 ---- */ public static final UnicodeBlock LATIN_EXTENDED_ADDITIONAL = new UnicodeBlock(0x1E00, 0x1EFF, ! "LATIN_EXTENDED_ADDITIONAL", "Latin Extended Additional"); /** *************** public final class Character implements *** 757,763 **** */ public static final UnicodeBlock GREEK_EXTENDED = new UnicodeBlock(0x1F00, 0x1FFF, ! "GREEK_EXTENDED", "Greek Extended"); /** --- 757,763 ---- */ public static final UnicodeBlock GREEK_EXTENDED = new UnicodeBlock(0x1F00, 0x1FFF, ! "GREEK_EXTENDED", "Greek Extended"); /** *************** public final class Character implements *** 766,772 **** */ public static final UnicodeBlock GENERAL_PUNCTUATION = new UnicodeBlock(0x2000, 0x206F, ! "GENERAL_PUNCTUATION", "General Punctuation"); /** --- 766,772 ---- */ public static final UnicodeBlock GENERAL_PUNCTUATION = new UnicodeBlock(0x2000, 0x206F, ! "GENERAL_PUNCTUATION", "General Punctuation"); /** *************** public final class Character implements *** 775,781 **** */ public static final UnicodeBlock SUPERSCRIPTS_AND_SUBSCRIPTS = new UnicodeBlock(0x2070, 0x209F, ! "SUPERSCRIPTS_AND_SUBSCRIPTS", "Superscripts and Subscripts"); /** --- 775,781 ---- */ public static final UnicodeBlock SUPERSCRIPTS_AND_SUBSCRIPTS = new UnicodeBlock(0x2070, 0x209F, ! "SUPERSCRIPTS_AND_SUBSCRIPTS", "Superscripts and Subscripts"); /** *************** public final class Character implements *** 784,790 **** */ public static final UnicodeBlock CURRENCY_SYMBOLS = new UnicodeBlock(0x20A0, 0x20CF, ! "CURRENCY_SYMBOLS", "Currency Symbols"); /** --- 784,790 ---- */ public static final UnicodeBlock CURRENCY_SYMBOLS = new UnicodeBlock(0x20A0, 0x20CF, ! "CURRENCY_SYMBOLS", "Currency Symbols"); /** *************** public final class Character implements *** 793,799 **** */ public static final UnicodeBlock COMBINING_MARKS_FOR_SYMBOLS = new UnicodeBlock(0x20D0, 0x20FF, ! "COMBINING_MARKS_FOR_SYMBOLS", "Combining Marks for Symbols"); /** --- 793,799 ---- */ public static final UnicodeBlock COMBINING_MARKS_FOR_SYMBOLS = new UnicodeBlock(0x20D0, 0x20FF, ! "COMBINING_MARKS_FOR_SYMBOLS", "Combining Marks for Symbols"); /** *************** public final class Character implements *** 802,808 **** */ public static final UnicodeBlock LETTERLIKE_SYMBOLS = new UnicodeBlock(0x2100, 0x214F, ! "LETTERLIKE_SYMBOLS", "Letterlike Symbols"); /** --- 802,808 ---- */ public static final UnicodeBlock LETTERLIKE_SYMBOLS = new UnicodeBlock(0x2100, 0x214F, ! "LETTERLIKE_SYMBOLS", "Letterlike Symbols"); /** *************** public final class Character implements *** 811,817 **** */ public static final UnicodeBlock NUMBER_FORMS = new UnicodeBlock(0x2150, 0x218F, ! "NUMBER_FORMS", "Number Forms"); /** --- 811,817 ---- */ public static final UnicodeBlock NUMBER_FORMS = new UnicodeBlock(0x2150, 0x218F, ! "NUMBER_FORMS", "Number Forms"); /** *************** public final class Character implements *** 820,826 **** */ public static final UnicodeBlock ARROWS = new UnicodeBlock(0x2190, 0x21FF, ! "ARROWS", "Arrows"); /** --- 820,826 ---- */ public static final UnicodeBlock ARROWS = new UnicodeBlock(0x2190, 0x21FF, ! "ARROWS", "Arrows"); /** *************** public final class Character implements *** 829,835 **** */ public static final UnicodeBlock MATHEMATICAL_OPERATORS = new UnicodeBlock(0x2200, 0x22FF, ! "MATHEMATICAL_OPERATORS", "Mathematical Operators"); /** --- 829,835 ---- */ public static final UnicodeBlock MATHEMATICAL_OPERATORS = new UnicodeBlock(0x2200, 0x22FF, ! "MATHEMATICAL_OPERATORS", "Mathematical Operators"); /** *************** public final class Character implements *** 838,844 **** */ public static final UnicodeBlock MISCELLANEOUS_TECHNICAL = new UnicodeBlock(0x2300, 0x23FF, ! "MISCELLANEOUS_TECHNICAL", "Miscellaneous Technical"); /** --- 838,844 ---- */ public static final UnicodeBlock MISCELLANEOUS_TECHNICAL = new UnicodeBlock(0x2300, 0x23FF, ! "MISCELLANEOUS_TECHNICAL", "Miscellaneous Technical"); /** *************** public final class Character implements *** 847,853 **** */ public static final UnicodeBlock CONTROL_PICTURES = new UnicodeBlock(0x2400, 0x243F, ! "CONTROL_PICTURES", "Control Pictures"); /** --- 847,853 ---- */ public static final UnicodeBlock CONTROL_PICTURES = new UnicodeBlock(0x2400, 0x243F, ! "CONTROL_PICTURES", "Control Pictures"); /** *************** public final class Character implements *** 856,862 **** */ public static final UnicodeBlock OPTICAL_CHARACTER_RECOGNITION = new UnicodeBlock(0x2440, 0x245F, ! "OPTICAL_CHARACTER_RECOGNITION", "Optical Character Recognition"); /** --- 856,862 ---- */ public static final UnicodeBlock OPTICAL_CHARACTER_RECOGNITION = new UnicodeBlock(0x2440, 0x245F, ! "OPTICAL_CHARACTER_RECOGNITION", "Optical Character Recognition"); /** *************** public final class Character implements *** 865,871 **** */ public static final UnicodeBlock ENCLOSED_ALPHANUMERICS = new UnicodeBlock(0x2460, 0x24FF, ! "ENCLOSED_ALPHANUMERICS", "Enclosed Alphanumerics"); /** --- 865,871 ---- */ public static final UnicodeBlock ENCLOSED_ALPHANUMERICS = new UnicodeBlock(0x2460, 0x24FF, ! "ENCLOSED_ALPHANUMERICS", "Enclosed Alphanumerics"); /** *************** public final class Character implements *** 874,880 **** */ public static final UnicodeBlock BOX_DRAWING = new UnicodeBlock(0x2500, 0x257F, ! "BOX_DRAWING", "Box Drawing"); /** --- 874,880 ---- */ public static final UnicodeBlock BOX_DRAWING = new UnicodeBlock(0x2500, 0x257F, ! "BOX_DRAWING", "Box Drawing"); /** *************** public final class Character implements *** 883,889 **** */ public static final UnicodeBlock BLOCK_ELEMENTS = new UnicodeBlock(0x2580, 0x259F, ! "BLOCK_ELEMENTS", "Block Elements"); /** --- 883,889 ---- */ public static final UnicodeBlock BLOCK_ELEMENTS = new UnicodeBlock(0x2580, 0x259F, ! "BLOCK_ELEMENTS", "Block Elements"); /** *************** public final class Character implements *** 892,898 **** */ public static final UnicodeBlock GEOMETRIC_SHAPES = new UnicodeBlock(0x25A0, 0x25FF, ! "GEOMETRIC_SHAPES", "Geometric Shapes"); /** --- 892,898 ---- */ public static final UnicodeBlock GEOMETRIC_SHAPES = new UnicodeBlock(0x25A0, 0x25FF, ! "GEOMETRIC_SHAPES", "Geometric Shapes"); /** *************** public final class Character implements *** 901,907 **** */ public static final UnicodeBlock MISCELLANEOUS_SYMBOLS = new UnicodeBlock(0x2600, 0x26FF, ! "MISCELLANEOUS_SYMBOLS", "Miscellaneous Symbols"); /** --- 901,907 ---- */ public static final UnicodeBlock MISCELLANEOUS_SYMBOLS = new UnicodeBlock(0x2600, 0x26FF, ! "MISCELLANEOUS_SYMBOLS", "Miscellaneous Symbols"); /** *************** public final class Character implements *** 910,916 **** */ public static final UnicodeBlock DINGBATS = new UnicodeBlock(0x2700, 0x27BF, ! "DINGBATS", "Dingbats"); /** --- 910,916 ---- */ public static final UnicodeBlock DINGBATS = new UnicodeBlock(0x2700, 0x27BF, ! "DINGBATS", "Dingbats"); /** *************** public final class Character implements *** 920,926 **** */ public static final UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = new UnicodeBlock(0x27C0, 0x27EF, ! "MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A", "Miscellaneous Mathematical Symbols-A"); /** --- 920,926 ---- */ public static final UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = new UnicodeBlock(0x27C0, 0x27EF, ! "MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A", "Miscellaneous Mathematical Symbols-A"); /** *************** public final class Character implements *** 930,936 **** */ public static final UnicodeBlock SUPPLEMENTAL_ARROWS_A = new UnicodeBlock(0x27F0, 0x27FF, ! "SUPPLEMENTAL_ARROWS_A", "Supplemental Arrows-A"); /** --- 930,936 ---- */ public static final UnicodeBlock SUPPLEMENTAL_ARROWS_A = new UnicodeBlock(0x27F0, 0x27FF, ! "SUPPLEMENTAL_ARROWS_A", "Supplemental Arrows-A"); /** *************** public final class Character implements *** 940,946 **** */ public static final UnicodeBlock BRAILLE_PATTERNS = new UnicodeBlock(0x2800, 0x28FF, ! "BRAILLE_PATTERNS", "Braille Patterns"); /** --- 940,946 ---- */ public static final UnicodeBlock BRAILLE_PATTERNS = new UnicodeBlock(0x2800, 0x28FF, ! "BRAILLE_PATTERNS", "Braille Patterns"); /** *************** public final class Character implements *** 950,956 **** */ public static final UnicodeBlock SUPPLEMENTAL_ARROWS_B = new UnicodeBlock(0x2900, 0x297F, ! "SUPPLEMENTAL_ARROWS_B", "Supplemental Arrows-B"); /** --- 950,956 ---- */ public static final UnicodeBlock SUPPLEMENTAL_ARROWS_B = new UnicodeBlock(0x2900, 0x297F, ! "SUPPLEMENTAL_ARROWS_B", "Supplemental Arrows-B"); /** *************** public final class Character implements *** 960,966 **** */ public static final UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = new UnicodeBlock(0x2980, 0x29FF, ! "MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B", "Miscellaneous Mathematical Symbols-B"); /** --- 960,966 ---- */ public static final UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = new UnicodeBlock(0x2980, 0x29FF, ! "MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B", "Miscellaneous Mathematical Symbols-B"); /** *************** public final class Character implements *** 970,976 **** */ public static final UnicodeBlock SUPPLEMENTAL_MATHEMATICAL_OPERATORS = new UnicodeBlock(0x2A00, 0x2AFF, ! "SUPPLEMENTAL_MATHEMATICAL_OPERATORS", "Supplemental Mathematical Operators"); /** --- 970,976 ---- */ public static final UnicodeBlock SUPPLEMENTAL_MATHEMATICAL_OPERATORS = new UnicodeBlock(0x2A00, 0x2AFF, ! "SUPPLEMENTAL_MATHEMATICAL_OPERATORS", "Supplemental Mathematical Operators"); /** *************** public final class Character implements *** 980,986 **** */ public static final UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_ARROWS = new UnicodeBlock(0x2B00, 0x2BFF, ! "MISCELLANEOUS_SYMBOLS_AND_ARROWS", "Miscellaneous Symbols and Arrows"); /** --- 980,986 ---- */ public static final UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_ARROWS = new UnicodeBlock(0x2B00, 0x2BFF, ! "MISCELLANEOUS_SYMBOLS_AND_ARROWS", "Miscellaneous Symbols and Arrows"); /** *************** public final class Character implements *** 990,996 **** */ public static final UnicodeBlock CJK_RADICALS_SUPPLEMENT = new UnicodeBlock(0x2E80, 0x2EFF, ! "CJK_RADICALS_SUPPLEMENT", "CJK Radicals Supplement"); /** --- 990,996 ---- */ public static final UnicodeBlock CJK_RADICALS_SUPPLEMENT = new UnicodeBlock(0x2E80, 0x2EFF, ! "CJK_RADICALS_SUPPLEMENT", "CJK Radicals Supplement"); /** *************** public final class Character implements *** 1000,1006 **** */ public static final UnicodeBlock KANGXI_RADICALS = new UnicodeBlock(0x2F00, 0x2FDF, ! "KANGXI_RADICALS", "Kangxi Radicals"); /** --- 1000,1006 ---- */ public static final UnicodeBlock KANGXI_RADICALS = new UnicodeBlock(0x2F00, 0x2FDF, ! "KANGXI_RADICALS", "Kangxi Radicals"); /** *************** public final class Character implements *** 1010,1016 **** */ public static final UnicodeBlock IDEOGRAPHIC_DESCRIPTION_CHARACTERS = new UnicodeBlock(0x2FF0, 0x2FFF, ! "IDEOGRAPHIC_DESCRIPTION_CHARACTERS", "Ideographic Description Characters"); /** --- 1010,1016 ---- */ public static final UnicodeBlock IDEOGRAPHIC_DESCRIPTION_CHARACTERS = new UnicodeBlock(0x2FF0, 0x2FFF, ! "IDEOGRAPHIC_DESCRIPTION_CHARACTERS", "Ideographic Description Characters"); /** *************** public final class Character implements *** 1019,1025 **** */ public static final UnicodeBlock CJK_SYMBOLS_AND_PUNCTUATION = new UnicodeBlock(0x3000, 0x303F, ! "CJK_SYMBOLS_AND_PUNCTUATION", "CJK Symbols and Punctuation"); /** --- 1019,1025 ---- */ public static final UnicodeBlock CJK_SYMBOLS_AND_PUNCTUATION = new UnicodeBlock(0x3000, 0x303F, ! "CJK_SYMBOLS_AND_PUNCTUATION", "CJK Symbols and Punctuation"); /** *************** public final class Character implements *** 1028,1034 **** */ public static final UnicodeBlock HIRAGANA = new UnicodeBlock(0x3040, 0x309F, ! "HIRAGANA", "Hiragana"); /** --- 1028,1034 ---- */ public static final UnicodeBlock HIRAGANA = new UnicodeBlock(0x3040, 0x309F, ! "HIRAGANA", "Hiragana"); /** *************** public final class Character implements *** 1037,1043 **** */ public static final UnicodeBlock KATAKANA = new UnicodeBlock(0x30A0, 0x30FF, ! "KATAKANA", "Katakana"); /** --- 1037,1043 ---- */ public static final UnicodeBlock KATAKANA = new UnicodeBlock(0x30A0, 0x30FF, ! "KATAKANA", "Katakana"); /** *************** public final class Character implements *** 1046,1052 **** */ public static final UnicodeBlock BOPOMOFO = new UnicodeBlock(0x3100, 0x312F, ! "BOPOMOFO", "Bopomofo"); /** --- 1046,1052 ---- */ public static final UnicodeBlock BOPOMOFO = new UnicodeBlock(0x3100, 0x312F, ! "BOPOMOFO", "Bopomofo"); /** *************** public final class Character implements *** 1055,1061 **** */ public static final UnicodeBlock HANGUL_COMPATIBILITY_JAMO = new UnicodeBlock(0x3130, 0x318F, ! "HANGUL_COMPATIBILITY_JAMO", "Hangul Compatibility Jamo"); /** --- 1055,1061 ---- */ public static final UnicodeBlock HANGUL_COMPATIBILITY_JAMO = new UnicodeBlock(0x3130, 0x318F, ! "HANGUL_COMPATIBILITY_JAMO", "Hangul Compatibility Jamo"); /** *************** public final class Character implements *** 1064,1070 **** */ public static final UnicodeBlock KANBUN = new UnicodeBlock(0x3190, 0x319F, ! "KANBUN", "Kanbun"); /** --- 1064,1070 ---- */ public static final UnicodeBlock KANBUN = new UnicodeBlock(0x3190, 0x319F, ! "KANBUN", "Kanbun"); /** *************** public final class Character implements *** 1074,1080 **** */ public static final UnicodeBlock BOPOMOFO_EXTENDED = new UnicodeBlock(0x31A0, 0x31BF, ! "BOPOMOFO_EXTENDED", "Bopomofo Extended"); /** --- 1074,1080 ---- */ public static final UnicodeBlock BOPOMOFO_EXTENDED = new UnicodeBlock(0x31A0, 0x31BF, ! "BOPOMOFO_EXTENDED", "Bopomofo Extended"); /** *************** public final class Character implements *** 1084,1090 **** */ public static final UnicodeBlock KATAKANA_PHONETIC_EXTENSIONS = new UnicodeBlock(0x31F0, 0x31FF, ! "KATAKANA_PHONETIC_EXTENSIONS", "Katakana Phonetic Extensions"); /** --- 1084,1090 ---- */ public static final UnicodeBlock KATAKANA_PHONETIC_EXTENSIONS = new UnicodeBlock(0x31F0, 0x31FF, ! "KATAKANA_PHONETIC_EXTENSIONS", "Katakana Phonetic Extensions"); /** *************** public final class Character implements *** 1093,1099 **** */ public static final UnicodeBlock ENCLOSED_CJK_LETTERS_AND_MONTHS = new UnicodeBlock(0x3200, 0x32FF, ! "ENCLOSED_CJK_LETTERS_AND_MONTHS", "Enclosed CJK Letters and Months"); /** --- 1093,1099 ---- */ public static final UnicodeBlock ENCLOSED_CJK_LETTERS_AND_MONTHS = new UnicodeBlock(0x3200, 0x32FF, ! "ENCLOSED_CJK_LETTERS_AND_MONTHS", "Enclosed CJK Letters and Months"); /** *************** public final class Character implements *** 1102,1108 **** */ public static final UnicodeBlock CJK_COMPATIBILITY = new UnicodeBlock(0x3300, 0x33FF, ! "CJK_COMPATIBILITY", "CJK Compatibility"); /** --- 1102,1108 ---- */ public static final UnicodeBlock CJK_COMPATIBILITY = new UnicodeBlock(0x3300, 0x33FF, ! "CJK_COMPATIBILITY", "CJK Compatibility"); /** *************** public final class Character implements *** 1112,1118 **** */ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = new UnicodeBlock(0x3400, 0x4DBF, ! "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A", "CJK Unified Ideographs Extension A"); /** --- 1112,1118 ---- */ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = new UnicodeBlock(0x3400, 0x4DBF, ! "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A", "CJK Unified Ideographs Extension A"); /** *************** public final class Character implements *** 1122,1128 **** */ public static final UnicodeBlock YIJING_HEXAGRAM_SYMBOLS = new UnicodeBlock(0x4DC0, 0x4DFF, ! "YIJING_HEXAGRAM_SYMBOLS", "Yijing Hexagram Symbols"); /** --- 1122,1128 ---- */ public static final UnicodeBlock YIJING_HEXAGRAM_SYMBOLS = new UnicodeBlock(0x4DC0, 0x4DFF, ! "YIJING_HEXAGRAM_SYMBOLS", "Yijing Hexagram Symbols"); /** *************** public final class Character implements *** 1131,1137 **** */ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS = new UnicodeBlock(0x4E00, 0x9FFF, ! "CJK_UNIFIED_IDEOGRAPHS", "CJK Unified Ideographs"); /** --- 1131,1137 ---- */ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS = new UnicodeBlock(0x4E00, 0x9FFF, ! "CJK_UNIFIED_IDEOGRAPHS", "CJK Unified Ideographs"); /** *************** public final class Character implements *** 1141,1147 **** */ public static final UnicodeBlock YI_SYLLABLES = new UnicodeBlock(0xA000, 0xA48F, ! "YI_SYLLABLES", "Yi Syllables"); /** --- 1141,1147 ---- */ public static final UnicodeBlock YI_SYLLABLES = new UnicodeBlock(0xA000, 0xA48F, ! "YI_SYLLABLES", "Yi Syllables"); /** *************** public final class Character implements *** 1151,1157 **** */ public static final UnicodeBlock YI_RADICALS = new UnicodeBlock(0xA490, 0xA4CF, ! "YI_RADICALS", "Yi Radicals"); /** --- 1151,1157 ---- */ public static final UnicodeBlock YI_RADICALS = new UnicodeBlock(0xA490, 0xA4CF, ! "YI_RADICALS", "Yi Radicals"); /** *************** public final class Character implements *** 1160,1166 **** */ public static final UnicodeBlock HANGUL_SYLLABLES = new UnicodeBlock(0xAC00, 0xD7AF, ! "HANGUL_SYLLABLES", "Hangul Syllables"); /** --- 1160,1166 ---- */ public static final UnicodeBlock HANGUL_SYLLABLES = new UnicodeBlock(0xAC00, 0xD7AF, ! "HANGUL_SYLLABLES", "Hangul Syllables"); /** *************** public final class Character implements *** 1170,1176 **** */ public static final UnicodeBlock HIGH_SURROGATES = new UnicodeBlock(0xD800, 0xDB7F, ! "HIGH_SURROGATES", "High Surrogates"); /** --- 1170,1176 ---- */ public static final UnicodeBlock HIGH_SURROGATES = new UnicodeBlock(0xD800, 0xDB7F, ! "HIGH_SURROGATES", "High Surrogates"); /** *************** public final class Character implements *** 1180,1186 **** */ public static final UnicodeBlock HIGH_PRIVATE_USE_SURROGATES = new UnicodeBlock(0xDB80, 0xDBFF, ! "HIGH_PRIVATE_USE_SURROGATES", "High Private Use Surrogates"); /** --- 1180,1186 ---- */ public static final UnicodeBlock HIGH_PRIVATE_USE_SURROGATES = new UnicodeBlock(0xDB80, 0xDBFF, ! "HIGH_PRIVATE_USE_SURROGATES", "High Private Use Surrogates"); /** *************** public final class Character implements *** 1190,1196 **** */ public static final UnicodeBlock LOW_SURROGATES = new UnicodeBlock(0xDC00, 0xDFFF, ! "LOW_SURROGATES", "Low Surrogates"); /** --- 1190,1196 ---- */ public static final UnicodeBlock LOW_SURROGATES = new UnicodeBlock(0xDC00, 0xDFFF, ! "LOW_SURROGATES", "Low Surrogates"); /** *************** public final class Character implements *** 1199,1205 **** */ public static final UnicodeBlock PRIVATE_USE_AREA = new UnicodeBlock(0xE000, 0xF8FF, ! "PRIVATE_USE_AREA", "Private Use Area"); /** --- 1199,1205 ---- */ public static final UnicodeBlock PRIVATE_USE_AREA = new UnicodeBlock(0xE000, 0xF8FF, ! "PRIVATE_USE_AREA", "Private Use Area"); /** *************** public final class Character implements *** 1208,1214 **** */ public static final UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS = new UnicodeBlock(0xF900, 0xFAFF, ! "CJK_COMPATIBILITY_IDEOGRAPHS", "CJK Compatibility Ideographs"); /** --- 1208,1214 ---- */ public static final UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS = new UnicodeBlock(0xF900, 0xFAFF, ! "CJK_COMPATIBILITY_IDEOGRAPHS", "CJK Compatibility Ideographs"); /** *************** public final class Character implements *** 1217,1223 **** */ public static final UnicodeBlock ALPHABETIC_PRESENTATION_FORMS = new UnicodeBlock(0xFB00, 0xFB4F, ! "ALPHABETIC_PRESENTATION_FORMS", "Alphabetic Presentation Forms"); /** --- 1217,1223 ---- */ public static final UnicodeBlock ALPHABETIC_PRESENTATION_FORMS = new UnicodeBlock(0xFB00, 0xFB4F, ! "ALPHABETIC_PRESENTATION_FORMS", "Alphabetic Presentation Forms"); /** *************** public final class Character implements *** 1226,1232 **** */ public static final UnicodeBlock ARABIC_PRESENTATION_FORMS_A = new UnicodeBlock(0xFB50, 0xFDFF, ! "ARABIC_PRESENTATION_FORMS_A", "Arabic Presentation Forms-A"); /** --- 1226,1232 ---- */ public static final UnicodeBlock ARABIC_PRESENTATION_FORMS_A = new UnicodeBlock(0xFB50, 0xFDFF, ! "ARABIC_PRESENTATION_FORMS_A", "Arabic Presentation Forms-A"); /** *************** public final class Character implements *** 1236,1242 **** */ public static final UnicodeBlock VARIATION_SELECTORS = new UnicodeBlock(0xFE00, 0xFE0F, ! "VARIATION_SELECTORS", "Variation Selectors"); /** --- 1236,1242 ---- */ public static final UnicodeBlock VARIATION_SELECTORS = new UnicodeBlock(0xFE00, 0xFE0F, ! "VARIATION_SELECTORS", "Variation Selectors"); /** *************** public final class Character implements *** 1245,1251 **** */ public static final UnicodeBlock COMBINING_HALF_MARKS = new UnicodeBlock(0xFE20, 0xFE2F, ! "COMBINING_HALF_MARKS", "Combining Half Marks"); /** --- 1245,1251 ---- */ public static final UnicodeBlock COMBINING_HALF_MARKS = new UnicodeBlock(0xFE20, 0xFE2F, ! "COMBINING_HALF_MARKS", "Combining Half Marks"); /** *************** public final class Character implements *** 1254,1260 **** */ public static final UnicodeBlock CJK_COMPATIBILITY_FORMS = new UnicodeBlock(0xFE30, 0xFE4F, ! "CJK_COMPATIBILITY_FORMS", "CJK Compatibility Forms"); /** --- 1254,1260 ---- */ public static final UnicodeBlock CJK_COMPATIBILITY_FORMS = new UnicodeBlock(0xFE30, 0xFE4F, ! "CJK_COMPATIBILITY_FORMS", "CJK Compatibility Forms"); /** *************** public final class Character implements *** 1263,1269 **** */ public static final UnicodeBlock SMALL_FORM_VARIANTS = new UnicodeBlock(0xFE50, 0xFE6F, ! "SMALL_FORM_VARIANTS", "Small Form Variants"); /** --- 1263,1269 ---- */ public static final UnicodeBlock SMALL_FORM_VARIANTS = new UnicodeBlock(0xFE50, 0xFE6F, ! "SMALL_FORM_VARIANTS", "Small Form Variants"); /** *************** public final class Character implements *** 1272,1278 **** */ public static final UnicodeBlock ARABIC_PRESENTATION_FORMS_B = new UnicodeBlock(0xFE70, 0xFEFF, ! "ARABIC_PRESENTATION_FORMS_B", "Arabic Presentation Forms-B"); /** --- 1272,1278 ---- */ public static final UnicodeBlock ARABIC_PRESENTATION_FORMS_B = new UnicodeBlock(0xFE70, 0xFEFF, ! "ARABIC_PRESENTATION_FORMS_B", "Arabic Presentation Forms-B"); /** *************** public final class Character implements *** 1281,1287 **** */ public static final UnicodeBlock HALFWIDTH_AND_FULLWIDTH_FORMS = new UnicodeBlock(0xFF00, 0xFFEF, ! "HALFWIDTH_AND_FULLWIDTH_FORMS", "Halfwidth and Fullwidth Forms"); /** --- 1281,1287 ---- */ public static final UnicodeBlock HALFWIDTH_AND_FULLWIDTH_FORMS = new UnicodeBlock(0xFF00, 0xFFEF, ! "HALFWIDTH_AND_FULLWIDTH_FORMS", "Halfwidth and Fullwidth Forms"); /** *************** public final class Character implements *** 1290,1296 **** */ public static final UnicodeBlock SPECIALS = new UnicodeBlock(0xFFF0, 0xFFFF, ! "SPECIALS", "Specials"); /** --- 1290,1296 ---- */ public static final UnicodeBlock SPECIALS = new UnicodeBlock(0xFFF0, 0xFFFF, ! "SPECIALS", "Specials"); /** *************** public final class Character implements *** 1300,1306 **** */ public static final UnicodeBlock LINEAR_B_SYLLABARY = new UnicodeBlock(0x10000, 0x1007F, ! "LINEAR_B_SYLLABARY", "Linear B Syllabary"); /** --- 1300,1306 ---- */ public static final UnicodeBlock LINEAR_B_SYLLABARY = new UnicodeBlock(0x10000, 0x1007F, ! "LINEAR_B_SYLLABARY", "Linear B Syllabary"); /** *************** public final class Character implements *** 1310,1316 **** */ public static final UnicodeBlock LINEAR_B_IDEOGRAMS = new UnicodeBlock(0x10080, 0x100FF, ! "LINEAR_B_IDEOGRAMS", "Linear B Ideograms"); /** --- 1310,1316 ---- */ public static final UnicodeBlock LINEAR_B_IDEOGRAMS = new UnicodeBlock(0x10080, 0x100FF, ! "LINEAR_B_IDEOGRAMS", "Linear B Ideograms"); /** *************** public final class Character implements *** 1320,1326 **** */ public static final UnicodeBlock AEGEAN_NUMBERS = new UnicodeBlock(0x10100, 0x1013F, ! "AEGEAN_NUMBERS", "Aegean Numbers"); /** --- 1320,1326 ---- */ public static final UnicodeBlock AEGEAN_NUMBERS = new UnicodeBlock(0x10100, 0x1013F, ! "AEGEAN_NUMBERS", "Aegean Numbers"); /** *************** public final class Character implements *** 1330,1336 **** */ public static final UnicodeBlock OLD_ITALIC = new UnicodeBlock(0x10300, 0x1032F, ! "OLD_ITALIC", "Old Italic"); /** --- 1330,1336 ---- */ public static final UnicodeBlock OLD_ITALIC = new UnicodeBlock(0x10300, 0x1032F, ! "OLD_ITALIC", "Old Italic"); /** *************** public final class Character implements *** 1340,1346 **** */ public static final UnicodeBlock GOTHIC = new UnicodeBlock(0x10330, 0x1034F, ! "GOTHIC", "Gothic"); /** --- 1340,1346 ---- */ public static final UnicodeBlock GOTHIC = new UnicodeBlock(0x10330, 0x1034F, ! "GOTHIC", "Gothic"); /** *************** public final class Character implements *** 1350,1356 **** */ public static final UnicodeBlock UGARITIC = new UnicodeBlock(0x10380, 0x1039F, ! "UGARITIC", "Ugaritic"); /** --- 1350,1356 ---- */ public static final UnicodeBlock UGARITIC = new UnicodeBlock(0x10380, 0x1039F, ! "UGARITIC", "Ugaritic"); /** *************** public final class Character implements *** 1360,1366 **** */ public static final UnicodeBlock DESERET = new UnicodeBlock(0x10400, 0x1044F, ! "DESERET", "Deseret"); /** --- 1360,1366 ---- */ public static final UnicodeBlock DESERET = new UnicodeBlock(0x10400, 0x1044F, ! "DESERET", "Deseret"); /** *************** public final class Character implements *** 1370,1376 **** */ public static final UnicodeBlock SHAVIAN = new UnicodeBlock(0x10450, 0x1047F, ! "SHAVIAN", "Shavian"); /** --- 1370,1376 ---- */ public static final UnicodeBlock SHAVIAN = new UnicodeBlock(0x10450, 0x1047F, ! "SHAVIAN", "Shavian"); /** *************** public final class Character implements *** 1380,1386 **** */ public static final UnicodeBlock OSMANYA = new UnicodeBlock(0x10480, 0x104AF, ! "OSMANYA", "Osmanya"); /** --- 1380,1386 ---- */ public static final UnicodeBlock OSMANYA = new UnicodeBlock(0x10480, 0x104AF, ! "OSMANYA", "Osmanya"); /** *************** public final class Character implements *** 1390,1396 **** */ public static final UnicodeBlock CYPRIOT_SYLLABARY = new UnicodeBlock(0x10800, 0x1083F, ! "CYPRIOT_SYLLABARY", "Cypriot Syllabary"); /** --- 1390,1396 ---- */ public static final UnicodeBlock CYPRIOT_SYLLABARY = new UnicodeBlock(0x10800, 0x1083F, ! "CYPRIOT_SYLLABARY", "Cypriot Syllabary"); /** *************** public final class Character implements *** 1400,1406 **** */ public static final UnicodeBlock BYZANTINE_MUSICAL_SYMBOLS = new UnicodeBlock(0x1D000, 0x1D0FF, ! "BYZANTINE_MUSICAL_SYMBOLS", "Byzantine Musical Symbols"); /** --- 1400,1406 ---- */ public static final UnicodeBlock BYZANTINE_MUSICAL_SYMBOLS = new UnicodeBlock(0x1D000, 0x1D0FF, ! "BYZANTINE_MUSICAL_SYMBOLS", "Byzantine Musical Symbols"); /** *************** public final class Character implements *** 1410,1416 **** */ public static final UnicodeBlock MUSICAL_SYMBOLS = new UnicodeBlock(0x1D100, 0x1D1FF, ! "MUSICAL_SYMBOLS", "Musical Symbols"); /** --- 1410,1416 ---- */ public static final UnicodeBlock MUSICAL_SYMBOLS = new UnicodeBlock(0x1D100, 0x1D1FF, ! "MUSICAL_SYMBOLS", "Musical Symbols"); /** *************** public final class Character implements *** 1420,1426 **** */ public static final UnicodeBlock TAI_XUAN_JING_SYMBOLS = new UnicodeBlock(0x1D300, 0x1D35F, ! "TAI_XUAN_JING_SYMBOLS", "Tai Xuan Jing Symbols"); /** --- 1420,1426 ---- */ public static final UnicodeBlock TAI_XUAN_JING_SYMBOLS = new UnicodeBlock(0x1D300, 0x1D35F, ! "TAI_XUAN_JING_SYMBOLS", "Tai Xuan Jing Symbols"); /** *************** public final class Character implements *** 1430,1436 **** */ public static final UnicodeBlock MATHEMATICAL_ALPHANUMERIC_SYMBOLS = new UnicodeBlock(0x1D400, 0x1D7FF, ! "MATHEMATICAL_ALPHANUMERIC_SYMBOLS", "Mathematical Alphanumeric Symbols"); /** --- 1430,1436 ---- */ public static final UnicodeBlock MATHEMATICAL_ALPHANUMERIC_SYMBOLS = new UnicodeBlock(0x1D400, 0x1D7FF, ! "MATHEMATICAL_ALPHANUMERIC_SYMBOLS", "Mathematical Alphanumeric Symbols"); /** *************** public final class Character implements *** 1440,1446 **** */ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = new UnicodeBlock(0x20000, 0x2A6DF, ! "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B", "CJK Unified Ideographs Extension B"); /** --- 1440,1446 ---- */ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = new UnicodeBlock(0x20000, 0x2A6DF, ! "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B", "CJK Unified Ideographs Extension B"); /** *************** public final class Character implements *** 1450,1456 **** */ public static final UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = new UnicodeBlock(0x2F800, 0x2FA1F, ! "CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT", "CJK Compatibility Ideographs Supplement"); /** --- 1450,1456 ---- */ public static final UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = new UnicodeBlock(0x2F800, 0x2FA1F, ! "CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT", "CJK Compatibility Ideographs Supplement"); /** *************** public final class Character implements *** 1460,1466 **** */ public static final UnicodeBlock TAGS = new UnicodeBlock(0xE0000, 0xE007F, ! "TAGS", "Tags"); /** --- 1460,1466 ---- */ public static final UnicodeBlock TAGS = new UnicodeBlock(0xE0000, 0xE007F, ! "TAGS", "Tags"); /** *************** public final class Character implements *** 1470,1476 **** */ public static final UnicodeBlock VARIATION_SELECTORS_SUPPLEMENT = new UnicodeBlock(0xE0100, 0xE01EF, ! "VARIATION_SELECTORS_SUPPLEMENT", "Variation Selectors Supplement"); /** --- 1470,1476 ---- */ public static final UnicodeBlock VARIATION_SELECTORS_SUPPLEMENT = new UnicodeBlock(0xE0100, 0xE01EF, ! "VARIATION_SELECTORS_SUPPLEMENT", "Variation Selectors Supplement"); /** *************** public final class Character implements *** 1480,1486 **** */ public static final UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_A = new UnicodeBlock(0xF0000, 0xFFFFF, ! "SUPPLEMENTARY_PRIVATE_USE_AREA_A", "Supplementary Private Use Area-A"); /** --- 1480,1486 ---- */ public static final UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_A = new UnicodeBlock(0xF0000, 0xFFFFF, ! "SUPPLEMENTARY_PRIVATE_USE_AREA_A", "Supplementary Private Use Area-A"); /** *************** public final class Character implements *** 1490,1502 **** */ public static final UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_B = new UnicodeBlock(0x100000, 0x10FFFF, ! "SUPPLEMENTARY_PRIVATE_USE_AREA_B", "Supplementary Private Use Area-B"); /** * Surrogates Area. * 'D800' - 'DFFF'. ! * @deprecated As of 1.5, the three areas, * HIGH_SURROGATES, * HIGH_PRIVATE_USE_SURROGATES * and LOW_SURROGATES, as defined --- 1490,1502 ---- */ public static final UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_B = new UnicodeBlock(0x100000, 0x10FFFF, ! "SUPPLEMENTARY_PRIVATE_USE_AREA_B", "Supplementary Private Use Area-B"); /** * Surrogates Area. * 'D800' - 'DFFF'. ! * @deprecated As of 1.5, the three areas, * HIGH_SURROGATES, * HIGH_PRIVATE_USE_SURROGATES * and LOW_SURROGATES, as defined *************** public final class Character implements *** 1508,1514 **** public static final UnicodeBlock SURROGATES_AREA = new UnicodeBlock(0xD800, 0xDFFF, "SURROGATES_AREA", ! "Surrogates Area"); /** * The defined subsets. --- 1508,1514 ---- public static final UnicodeBlock SURROGATES_AREA = new UnicodeBlock(0xD800, 0xDFFF, "SURROGATES_AREA", ! "Surrogates Area"); /** * The defined subsets. *************** public final class Character implements *** 1643,1651 **** } // class UnicodeBlock /** ! * A class to encompass all the properties of characters in the * private use blocks in the Unicode standard. This class extends ! * UnassignedCharacters because the return type from getType() is * different. * @author Anthony Balkissoon abalkiss at redhat dot com * --- 1643,1651 ---- } // class UnicodeBlock /** ! * A class to encompass all the properties of characters in the * private use blocks in the Unicode standard. This class extends ! * UnassignedCharacters because the return type from getType() is * different. * @author Anthony Balkissoon abalkiss at redhat dot com * *************** public final class Character implements *** 1657,1681 **** */ static int getType(int cp) { ! // The upper 2 code points in any plane are considered unassigned, // even in the private-use planes. if ((cp & 0xffff) >= 0xfffe) return UnassignedCharacters.getType(cp); return PRIVATE_USE; } ! /** * Returns true if the character cp is defined. */ static boolean isDefined(int cp) { ! // The upper 2 code points in any plane are considered unassigned, // even in the private-use planes. if ((cp & 0xffff) >= 0xfffe) return UnassignedCharacters.isDefined(cp); return true; } ! /** * Gets the directionality for the character cp. */ --- 1657,1681 ---- */ static int getType(int cp) { ! // The upper 2 code points in any plane are considered unassigned, // even in the private-use planes. if ((cp & 0xffff) >= 0xfffe) return UnassignedCharacters.getType(cp); return PRIVATE_USE; } ! /** * Returns true if the character cp is defined. */ static boolean isDefined(int cp) { ! // The upper 2 code points in any plane are considered unassigned, // even in the private-use planes. if ((cp & 0xffff) >= 0xfffe) return UnassignedCharacters.isDefined(cp); return true; } ! /** * Gets the directionality for the character cp. */ *************** public final class Character implements *** 1686,1694 **** return DIRECTIONALITY_LEFT_TO_RIGHT; } } ! /** ! * A class to encompass all the properties of code points that are * currently undefined in the Unicode standard. * @author Anthony Balkissoon abalkiss at redhat dot com * --- 1686,1694 ---- return DIRECTIONALITY_LEFT_TO_RIGHT; } } ! /** ! * A class to encompass all the properties of code points that are * currently undefined in the Unicode standard. * @author Anthony Balkissoon abalkiss at redhat dot com * *************** public final class Character implements *** 1707,1713 **** } /** ! * Returns the Unicode directionality property for unassigned * characters. * @param cp the character * @return DIRECTIONALITY_UNDEFINED --- 1707,1713 ---- } /** ! * Returns the Unicode directionality property for unassigned * characters. * @param cp the character * @return DIRECTIONALITY_UNDEFINED *************** public final class Character implements *** 1736,1744 **** { return UNASSIGNED; } ! /** ! * Returns false to indiciate that the character is not defined in the * Unicode standard. * @param cp the character * @return false --- 1736,1744 ---- { return UNASSIGNED; } ! /** ! * Returns false to indiciate that the character is not defined in the * Unicode standard. * @param cp the character * @return false *************** public final class Character implements *** 1759,1765 **** } /** ! * Returns false to indicate that the character cannot be ignored * within an identifier * @param cp the character * @return false --- 1759,1765 ---- } /** ! * Returns false to indicate that the character cannot be ignored * within an identifier * @param cp the character * @return false *************** public final class Character implements *** 1770,1776 **** } /** ! * Returns false to indicate that the character cannot be part of a * Java identifier. * @param cp the character * @return false --- 1770,1776 ---- } /** ! * Returns false to indicate that the character cannot be part of a * Java identifier. * @param cp the character * @return false *************** public final class Character implements *** 1781,1787 **** } /** ! * Returns false to indicate that the character cannot be start a * Java identifier. * @param cp the character * @return false --- 1781,1787 ---- } /** ! * Returns false to indicate that the character cannot be start a * Java identifier. * @param cp the character * @return false *************** public final class Character implements *** 1821,1827 **** { return false; } ! /** * Returns false to indicate that the character cannot is not mirrored. * @param cp the character --- 1821,1827 ---- { return false; } ! /** * Returns false to indicate that the character cannot is not mirrored. * @param cp the character *************** public final class Character implements *** 1841,1847 **** { return false; } ! /** * Returns false to indicate that the character it not a titlecase letter. * @param cp the character --- 1841,1847 ---- { return false; } ! /** * Returns false to indicate that the character it not a titlecase letter. * @param cp the character *************** public final class Character implements *** 1851,1859 **** { return false; } ! /** ! * Returns false to indicate that the character cannot be part of a * Unicode identifier. * @param cp the character * @return false --- 1851,1859 ---- { return false; } ! /** ! * Returns false to indicate that the character cannot be part of a * Unicode identifier. * @param cp the character * @return false *************** public final class Character implements *** 1864,1870 **** } /** ! * Returns false to indicate that the character cannot start a * Unicode identifier. * @param cp the character * @return false --- 1864,1870 ---- } /** ! * Returns false to indicate that the character cannot start a * Unicode identifier. * @param cp the character * @return false *************** public final class Character implements *** 1904,1910 **** { return cp; } ! /** * Returns cp to indicate this character has no titlecase conversion. * @param cp the character --- 1904,1910 ---- { return cp; } ! /** * Returns cp to indicate this character has no titlecase conversion. * @param cp the character *************** public final class Character implements *** 1923,1929 **** static int toUpperCase(int cp) { return cp; ! } } /** --- 1923,1929 ---- static int toUpperCase(int cp) { return cp; ! } } /** *************** public final class Character implements *** 2014,2020 **** * This value is '\uDFFF'. * @since 1.5 */ ! public static final char MAX_LOW_SURROGATE = '\uDFFF'; /** * The minimum Unicode surrogate code unit in the UTF-16 character encoding. --- 2014,2020 ---- * This value is '\uDFFF'. * @since 1.5 */ ! public static final char MAX_LOW_SURROGATE = '\uDFFF'; /** * The minimum Unicode surrogate code unit in the UTF-16 character encoding. *************** public final class Character implements *** 2034,2040 **** * The lowest possible supplementary Unicode code point (the first code * point outside the basic multilingual plane (BMP)). * This value is 0x10000. ! */ public static final int MIN_SUPPLEMENTARY_CODE_POINT = 0x10000; /** --- 2034,2040 ---- * The lowest possible supplementary Unicode code point (the first code * point outside the basic multilingual plane (BMP)). * This value is 0x10000. ! */ public static final int MIN_SUPPLEMENTARY_CODE_POINT = 0x10000; /** *************** public final class Character implements *** 2418,2424 **** * @see #readCodePoint(int) * @see CharData#BLOCKS */ ! private static final char[][] blocks = new char[][]{ String.zeroBasedStringValue(CharData.BLOCKS[0]), String.zeroBasedStringValue(CharData.BLOCKS[1]), --- 2418,2424 ---- * @see #readCodePoint(int) * @see CharData#BLOCKS */ ! private static final char[][] blocks = new char[][]{ String.zeroBasedStringValue(CharData.BLOCKS[0]), String.zeroBasedStringValue(CharData.BLOCKS[1]), *************** public final class Character implements *** 2443,2449 **** * of String.value to avoid copying the array. * @see CharData#DATA */ ! private static final char[][] data = new char[][]{ String.zeroBasedStringValue(CharData.DATA[0]), String.zeroBasedStringValue(CharData.DATA[1]), --- 2443,2449 ---- * of String.value to avoid copying the array. * @see CharData#DATA */ ! private static final char[][] data = new char[][]{ String.zeroBasedStringValue(CharData.DATA[0]), String.zeroBasedStringValue(CharData.DATA[1]), *************** public final class Character implements *** 2468,2474 **** * of String.value to avoid copying the array. * @see CharData#NUM_VALUE */ ! private static final char[][] numValue = new char[][]{ String.zeroBasedStringValue(CharData.NUM_VALUE[0]), String.zeroBasedStringValue(CharData.NUM_VALUE[1]), --- 2468,2474 ---- * of String.value to avoid copying the array. * @see CharData#NUM_VALUE */ ! private static final char[][] numValue = new char[][]{ String.zeroBasedStringValue(CharData.NUM_VALUE[0]), String.zeroBasedStringValue(CharData.NUM_VALUE[1]), *************** public final class Character implements *** 2492,2499 **** * Stores unicode uppercase attribute table. Exploit package visibility * of String.value to avoid copying the array. * @see CharData#UPPER ! */ ! private static final char[][] upper = new char[][]{ String.zeroBasedStringValue(CharData.UPPER[0]), String.zeroBasedStringValue(CharData.UPPER[1]), --- 2492,2499 ---- * Stores unicode uppercase attribute table. Exploit package visibility * of String.value to avoid copying the array. * @see CharData#UPPER ! */ ! private static final char[][] upper = new char[][]{ String.zeroBasedStringValue(CharData.UPPER[0]), String.zeroBasedStringValue(CharData.UPPER[1]), *************** public final class Character implements *** 2518,2524 **** * of String.value to avoid copying the array. * @see CharData#LOWER */ ! private static final char[][] lower = new char[][]{ String.zeroBasedStringValue(CharData.LOWER[0]), String.zeroBasedStringValue(CharData.LOWER[1]), --- 2518,2524 ---- * of String.value to avoid copying the array. * @see CharData#LOWER */ ! private static final char[][] lower = new char[][]{ String.zeroBasedStringValue(CharData.LOWER[0]), String.zeroBasedStringValue(CharData.LOWER[1]), *************** public final class Character implements *** 2544,2550 **** * @see CharData#DIRECTION */ // Package visible for use by String. ! static final char[][] direction = new char[][]{ String.zeroBasedStringValue(CharData.DIRECTION[0]), String.zeroBasedStringValue(CharData.DIRECTION[1]), --- 2544,2550 ---- * @see CharData#DIRECTION */ // Package visible for use by String. ! static final char[][] direction = new char[][]{ String.zeroBasedStringValue(CharData.DIRECTION[0]), String.zeroBasedStringValue(CharData.DIRECTION[1]), *************** public final class Character implements *** 2569,2575 **** * String.value to avoid copying the array. * @see CharData#TITLE */ ! private static final char[] title = String.zeroBasedStringValue(CharData.TITLE); /** * Mask for grabbing the type out of the contents of data. --- 2569,2575 ---- * String.value to avoid copying the array. * @see CharData#TITLE */ ! private static final char[] title = String.zeroBasedStringValue(CharData.TITLE); /** * Mask for grabbing the type out of the contents of data. *************** public final class Character implements *** 2698,2704 **** { return isLowerCase((int)ch); } ! /** * Determines if a character is a Unicode lowercase letter. For example, * 'a' is lowercase. Returns true if getType() returns --- 2698,2704 ---- { return isLowerCase((int)ch); } ! /** * Determines if a character is a Unicode lowercase letter. For example, * 'a' is lowercase. Returns true if getType() returns *************** public final class Character implements *** 2712,2718 **** * @see #isTitleCase(char) * @see #toLowerCase(char) * @see #getType(char) ! * * @since 1.5 */ public static boolean isLowerCase(int codePoint) --- 2712,2718 ---- * @see #isTitleCase(char) * @see #toLowerCase(char) * @see #getType(char) ! * * @since 1.5 */ public static boolean isLowerCase(int codePoint) *************** public final class Character implements *** 2738,2744 **** { return isUpperCase((int)ch); } ! /** * Determines if a character is a Unicode uppercase letter. For example, * 'A' is uppercase. Returns true if getType() returns --- 2738,2744 ---- { return isUpperCase((int)ch); } ! /** * Determines if a character is a Unicode uppercase letter. For example, * 'A' is uppercase. Returns true if getType() returns *************** public final class Character implements *** 2752,2758 **** * @see #isTitleCase(char) * @see #toUpperCase(char) * @see #getType(char) ! * * @since 1.5 */ public static boolean isUpperCase(int codePoint) --- 2752,2758 ---- * @see #isTitleCase(char) * @see #toUpperCase(char) * @see #getType(char) ! * * @since 1.5 */ public static boolean isUpperCase(int codePoint) *************** public final class Character implements *** 2792,2805 **** * @see #isUpperCase(char) * @see #toTitleCase(char) * @see #getType(char) ! * * @since 1.5 */ public static boolean isTitleCase(int codePoint) { return getType(codePoint) == TITLECASE_LETTER; } ! /** * Determines if a character is a Unicode decimal digit. For example, --- 2792,2805 ---- * @see #isUpperCase(char) * @see #toTitleCase(char) * @see #getType(char) ! * * @since 1.5 */ public static boolean isTitleCase(int codePoint) { return getType(codePoint) == TITLECASE_LETTER; } ! /** * Determines if a character is a Unicode decimal digit. For example, *************** public final class Character implements *** 2818,2824 **** { return isDigit((int)ch); } ! /** * Determines if a character is a Unicode decimal digit. For example, * '0' is a digit. A character is a Unicode digit if --- 2818,2824 ---- { return isDigit((int)ch); } ! /** * Determines if a character is a Unicode decimal digit. For example, * '0' is a digit. A character is a Unicode digit if *************** public final class Character implements *** 2831,2837 **** * @see #digit(char, int) * @see #forDigit(int, int) * @see #getType(char) ! * * @since 1.5 */ --- 2831,2837 ---- * @see #digit(char, int) * @see #forDigit(int, int) * @see #getType(char) ! * * @since 1.5 */ *************** public final class Character implements *** 2859,2865 **** { return isDefined((int)ch); } ! /** * Determines if a character is part of the Unicode Standard. This is an * evolving standard, but covers every character in the data file. --- 2859,2865 ---- { return isDefined((int)ch); } ! /** * Determines if a character is part of the Unicode Standard. This is an * evolving standard, but covers every character in the data file. *************** public final class Character implements *** 2874,2880 **** * @see #isLowerCase(char) * @see #isTitleCase(char) * @see #isUpperCase(char) ! * * @since 1.5 */ public static boolean isDefined(int codePoint) --- 2874,2880 ---- * @see #isLowerCase(char) * @see #isTitleCase(char) * @see #isUpperCase(char) ! * * @since 1.5 */ public static boolean isDefined(int codePoint) *************** public final class Character implements *** 2885,2891 **** /** * Determines if a character is a Unicode letter. Not all letters have case, * so this may return true when isLowerCase and isUpperCase return false. ! * A character is a Unicode letter if getType() returns one of * UPPERCASE_LETTER, LOWERCASE_LETTER, TITLECASE_LETTER, MODIFIER_LETTER, * or OTHER_LETTER. *
                    --- 2885,2891 ---- /** * Determines if a character is a Unicode letter. Not all letters have case, * so this may return true when isLowerCase and isUpperCase return false. ! * A character is a Unicode letter if getType() returns one of * UPPERCASE_LETTER, LOWERCASE_LETTER, TITLECASE_LETTER, MODIFIER_LETTER, * or OTHER_LETTER. *
                    *************** public final class Character implements *** 2907,2917 **** { return isLetter((int)ch); } ! /** * Determines if a character is a Unicode letter. Not all letters have case, * so this may return true when isLowerCase and isUpperCase return false. ! * A character is a Unicode letter if getType() returns one of * UPPERCASE_LETTER, LOWERCASE_LETTER, TITLECASE_LETTER, MODIFIER_LETTER, * or OTHER_LETTER. *
                    --- 2907,2917 ---- { return isLetter((int)ch); } ! /** * Determines if a character is a Unicode letter. Not all letters have case, * so this may return true when isLowerCase and isUpperCase return false. ! * A character is a Unicode letter if getType() returns one of * UPPERCASE_LETTER, LOWERCASE_LETTER, TITLECASE_LETTER, MODIFIER_LETTER, * or OTHER_LETTER. *
                    *************** public final class Character implements *** 2928,2934 **** * @see #isTitleCase(char) * @see #isUnicodeIdentifierStart(char) * @see #isUpperCase(char) ! * * @since 1.5 */ public static boolean isLetter(int codePoint) --- 2928,2934 ---- * @see #isTitleCase(char) * @see #isUnicodeIdentifierStart(char) * @see #isUpperCase(char) ! * * @since 1.5 */ public static boolean isLetter(int codePoint) *************** public final class Character implements *** 2947,2963 **** * @param index the start position in the CharSequence * @param codePointOffset the number of code points offset from the start * position ! * @return the index into the CharSequence that is codePointOffset code * points offset from index ! * * @throws NullPointerException if seq is null * @throws IndexOutOfBoundsException if index is negative or greater than the * length of the sequence. ! * @throws IndexOutOfBoundsException if codePointOffset is positive and the * subsequence from index to the end of seq has fewer than codePointOffset * code points * @throws IndexOutOfBoundsException if codePointOffset is negative and the ! * subsequence from the start of seq to index has fewer than * (-codePointOffset) code points * @since 1.5 */ --- 2947,2963 ---- * @param index the start position in the CharSequence * @param codePointOffset the number of code points offset from the start * position ! * @return the index into the CharSequence that is codePointOffset code * points offset from index ! * * @throws NullPointerException if seq is null * @throws IndexOutOfBoundsException if index is negative or greater than the * length of the sequence. ! * @throws IndexOutOfBoundsException if codePointOffset is positive and the * subsequence from index to the end of seq has fewer than codePointOffset * code points * @throws IndexOutOfBoundsException if codePointOffset is negative and the ! * subsequence from the start of seq to index has fewer than * (-codePointOffset) code points * @since 1.5 */ *************** public final class Character implements *** 2968,2974 **** int len = seq.length(); if (index < 0 || index > len) throw new IndexOutOfBoundsException(); ! int numToGo = codePointOffset; int offset = index; int adjust = 1; --- 2968,2974 ---- int len = seq.length(); if (index < 0 || index > len) throw new IndexOutOfBoundsException(); ! int numToGo = codePointOffset; int offset = index; int adjust = 1; *************** public final class Character implements *** 2999,3005 **** return offset; } } ! /** * Returns the index into the given char subarray that is offset * codePointOffset code points from index. --- 2999,3005 ---- return offset; } } ! /** * Returns the index into the given char subarray that is offset * codePointOffset code points from index. *************** public final class Character implements *** 3010,3020 **** * @param codePointOffset the number of code points offset from index * * @return the index into the char array ! * * @throws NullPointerException if a is null * @throws IndexOutOfBoundsException if start or count is negative or if * start + count is greater than the length of the array ! * @throws IndexOutOfBoundsException if index is less than start or larger * than start + count * @throws IndexOutOfBoundsException if codePointOffset is positive and the * subarray from index to start + count - 1 has fewer than codePointOffset --- 3010,3020 ---- * @param codePointOffset the number of code points offset from index * * @return the index into the char array ! * * @throws NullPointerException if a is null * @throws IndexOutOfBoundsException if start or count is negative or if * start + count is greater than the length of the array ! * @throws IndexOutOfBoundsException if index is less than start or larger * than start + count * @throws IndexOutOfBoundsException if codePointOffset is positive and the * subarray from index to start + count - 1 has fewer than codePointOffset *************** public final class Character implements *** 3022,3028 **** * @throws IndexOutOfBoundsException if codePointOffset is negative and the * subarray from start to index - 1 has fewer than (-codePointOffset) code * points ! * * @since 1.5 */ public static int offsetByCodePoints(char[] a, --- 3022,3028 ---- * @throws IndexOutOfBoundsException if codePointOffset is negative and the * subarray from start to index - 1 has fewer than (-codePointOffset) code * points ! * * @since 1.5 */ public static int offsetByCodePoints(char[] a, *************** public final class Character implements *** 3035,3041 **** int end = start + count; if (start < 0 || count < 0 || end > len || index < start || index > end) throw new IndexOutOfBoundsException(); ! int numToGo = codePointOffset; int offset = index; int adjust = 1; --- 3035,3041 ---- int end = start + count; if (start < 0 || count < 0 || end > len || index < start || index > end) throw new IndexOutOfBoundsException(); ! int numToGo = codePointOffset; int offset = index; int adjust = 1; *************** public final class Character implements *** 3069,3086 **** } } ! /** * Returns the number of Unicode code points in the specified range of the * given CharSequence. The first char in the range is at position ! * beginIndex and the last one is at position endIndex - 1. Paired ! * surrogates (supplementary characters are represented by a pair of chars - ! * one from the high surrogates and one from the low surrogates) * count as just one code point. * @param seq the CharSequence to inspect * @param beginIndex the beginning of the range * @param endIndex the end of the range ! * @return the number of Unicode code points in the given range of the * sequence * @throws NullPointerException if seq is null * @throws IndexOutOfBoundsException if beginIndex is negative, endIndex is --- 3069,3086 ---- } } ! /** * Returns the number of Unicode code points in the specified range of the * given CharSequence. The first char in the range is at position ! * beginIndex and the last one is at position endIndex - 1. Paired ! * surrogates (supplementary characters are represented by a pair of chars - ! * one from the high surrogates and one from the low surrogates) * count as just one code point. * @param seq the CharSequence to inspect * @param beginIndex the beginning of the range * @param endIndex the end of the range ! * @return the number of Unicode code points in the given range of the * sequence * @throws NullPointerException if seq is null * @throws IndexOutOfBoundsException if beginIndex is negative, endIndex is *************** public final class Character implements *** 3093,3099 **** int len = seq.length(); if (beginIndex < 0 || endIndex > len || beginIndex > endIndex) throw new IndexOutOfBoundsException(); ! int count = 0; for (int i = beginIndex; i < endIndex; i++) { --- 3093,3099 ---- int len = seq.length(); if (beginIndex < 0 || endIndex > len || beginIndex > endIndex) throw new IndexOutOfBoundsException(); ! int count = 0; for (int i = beginIndex; i < endIndex; i++) { *************** public final class Character implements *** 3102,3125 **** if (isHighSurrogate(seq.charAt(i)) && (i + 1) < endIndex && isLowSurrogate(seq.charAt(i + 1))) i ++; ! } return count; } ! /** * Returns the number of Unicode code points in the specified range of the * given char array. The first char in the range is at position * offset and the length of the range is count. Paired surrogates ! * (supplementary characters are represented by a pair of chars - ! * one from the high surrogates and one from the low surrogates) * count as just one code point. * @param a the char array to inspect * @param offset the beginning of the range * @param count the length of the range ! * @return the number of Unicode code points in the given range of the * array * @throws NullPointerException if a is null ! * @throws IndexOutOfBoundsException if offset or count is negative or if * offset + countendIndex is larger than the length of a. * @since 1.5 */ --- 3102,3125 ---- if (isHighSurrogate(seq.charAt(i)) && (i + 1) < endIndex && isLowSurrogate(seq.charAt(i + 1))) i ++; ! } return count; } ! /** * Returns the number of Unicode code points in the specified range of the * given char array. The first char in the range is at position * offset and the length of the range is count. Paired surrogates ! * (supplementary characters are represented by a pair of chars - ! * one from the high surrogates and one from the low surrogates) * count as just one code point. * @param a the char array to inspect * @param offset the beginning of the range * @param count the length of the range ! * @return the number of Unicode code points in the given range of the * array * @throws NullPointerException if a is null ! * @throws IndexOutOfBoundsException if offset or count is negative or if * offset + countendIndex is larger than the length of a. * @since 1.5 */ *************** public final class Character implements *** 3130,3136 **** int end = offset + count; if (offset < 0 || count < 0 || end > len) throw new IndexOutOfBoundsException(); ! int counter = 0; for (int i = offset; i < end; i++) { --- 3130,3136 ---- int end = offset + count; if (offset < 0 || count < 0 || end > len) throw new IndexOutOfBoundsException(); ! int counter = 0; for (int i = offset; i < end; i++) { *************** public final class Character implements *** 3139,3145 **** if (isHighSurrogate(a[i]) && (i + 1) < end && isLowSurrogate(a[i + 1])) i ++; ! } return counter; } --- 3139,3145 ---- if (isHighSurrogate(a[i]) && (i + 1) < end && isLowSurrogate(a[i + 1])) i ++; ! } return counter; } *************** public final class Character implements *** 3177,3183 **** * @see #isJavaLetterOrDigit(char) * @see #isLetter(char) * @see #isUnicodeIdentifierPart(char) ! * * @since 1.5 */ public static boolean isLetterOrDigit(int codePoint) --- 3177,3183 ---- * @see #isJavaLetterOrDigit(char) * @see #isLetter(char) * @see #isUnicodeIdentifierPart(char) ! * * @since 1.5 */ public static boolean isLetterOrDigit(int codePoint) *************** public final class Character implements *** 3190,3196 **** | (1 << OTHER_LETTER) | (1 << DECIMAL_DIGIT_NUMBER))) != 0; } ! /** * Determines if a character can start a Java identifier. This is the * combination of isLetter, any character where getType returns --- 3190,3196 ---- | (1 << OTHER_LETTER) | (1 << DECIMAL_DIGIT_NUMBER))) != 0; } ! /** * Determines if a character can start a Java identifier. This is the * combination of isLetter, any character where getType returns *************** public final class Character implements *** 3306,3312 **** { return isJavaIdentifierPart((int)ch); } ! /** * Determines if a character can follow the first letter in * a Java identifier. This is the combination of isJavaLetter (isLetter, --- 3306,3312 ---- { return isJavaIdentifierPart((int)ch); } ! /** * Determines if a character can follow the first letter in * a Java identifier. This is the combination of isJavaLetter (isLetter, *************** public final class Character implements *** 3411,3417 **** { return isUnicodeIdentifierPart((int)ch); } ! /** * Determines if a character can follow the first letter in * a Unicode identifier. This includes letters, connecting punctuation, --- 3411,3417 ---- { return isUnicodeIdentifierPart((int)ch); } ! /** * Determines if a character can follow the first letter in * a Unicode identifier. This includes letters, connecting punctuation, *************** public final class Character implements *** 3512,3518 **** { return (char) (lower[0][readCodePoint((int)ch) >>> 7] + ch); } ! /** * Converts a Unicode character into its lowercase equivalent mapping. * If a mapping does not exist, then the character passed is returned. --- 3512,3518 ---- { return (char) (lower[0][readCodePoint((int)ch) >>> 7] + ch); } ! /** * Converts a Unicode character into its lowercase equivalent mapping. * If a mapping does not exist, then the character passed is returned. *************** public final class Character implements *** 3525,3531 **** * @see #isUpperCase(char) * @see #toTitleCase(char) * @see #toUpperCase(char) ! * * @since 1.5 */ public static int toLowerCase(int codePoint) --- 3525,3531 ---- * @see #isUpperCase(char) * @see #toTitleCase(char) * @see #toUpperCase(char) ! * * @since 1.5 */ public static int toLowerCase(int codePoint) *************** public final class Character implements *** 3537,3543 **** return UnassignedCharacters.toLowerCase(codePoint); if (plane > 14) return PrivateUseCharacters.toLowerCase(codePoint); ! // The short value stored in lower[plane] is the signed difference between // codePoint and its lowercase conversion. return ((short)lower[plane][readCodePoint(codePoint) >>> 7]) + codePoint; --- 3537,3543 ---- return UnassignedCharacters.toLowerCase(codePoint); if (plane > 14) return PrivateUseCharacters.toLowerCase(codePoint); ! // The short value stored in lower[plane] is the signed difference between // codePoint and its lowercase conversion. return ((short)lower[plane][readCodePoint(codePoint) >>> 7]) + codePoint; *************** public final class Character implements *** 3560,3566 **** { return (char) (upper[0][readCodePoint((int)ch) >>> 7] + ch); } ! /** * Converts a Unicode character into its uppercase equivalent mapping. * If a mapping does not exist, then the character passed is returned. --- 3560,3566 ---- { return (char) (upper[0][readCodePoint((int)ch) >>> 7] + ch); } ! /** * Converts a Unicode character into its uppercase equivalent mapping. * If a mapping does not exist, then the character passed is returned. *************** public final class Character implements *** 3573,3579 **** * @see #isUpperCase(char) * @see #toLowerCase(char) * @see #toTitleCase(char) ! * * @since 1.5 */ public static int toUpperCase(int codePoint) --- 3573,3579 ---- * @see #isUpperCase(char) * @see #toLowerCase(char) * @see #toTitleCase(char) ! * * @since 1.5 */ public static int toUpperCase(int codePoint) *************** public final class Character implements *** 3585,3591 **** return UnassignedCharacters.toUpperCase(codePoint); if (plane > 14) return PrivateUseCharacters.toUpperCase(codePoint); ! // The short value stored in upper[plane] is the signed difference between // codePoint and its uppercase conversion. return ((short)upper[plane][readCodePoint(codePoint) >>> 7]) + codePoint; --- 3585,3591 ---- return UnassignedCharacters.toUpperCase(codePoint); if (plane > 14) return PrivateUseCharacters.toUpperCase(codePoint); ! // The short value stored in upper[plane] is the signed difference between // codePoint and its uppercase conversion. return ((short)upper[plane][readCodePoint(codePoint) >>> 7]) + codePoint; *************** public final class Character implements *** 3623,3629 **** * @see #isTitleCase(char) * @see #toLowerCase(char) * @see #toUpperCase(char) ! * * @since 1.5 */ public static int toTitleCase(int codePoint) --- 3623,3629 ---- * @see #isTitleCase(char) * @see #toLowerCase(char) * @see #toUpperCase(char) ! * * @since 1.5 */ public static int toTitleCase(int codePoint) *************** public final class Character implements *** 3693,3699 **** { if (radix < MIN_RADIX || radix > MAX_RADIX) return -1; ! // If the code point is unassigned or in one of the private use areas // then we delegate the call to the appropriate private static inner class. int plane = codePoint >>> 16; --- 3693,3699 ---- { if (radix < MIN_RADIX || radix > MAX_RADIX) return -1; ! // If the code point is unassigned or in one of the private use areas // then we delegate the call to the appropriate private static inner class. int plane = codePoint >>> 16; *************** public final class Character implements *** 3709,3716 **** { // Signedness doesn't matter; 0xffff vs. -1 are both rejected. int digit = numValue[plane][attr >> 7]; ! ! // If digit is less than or equal to -3 then the numerical value was // too large to fit into numValue and is stored in CharData.LARGENUMS. if (digit <= -3) digit = CharData.LARGENUMS[-digit - 3]; --- 3709,3716 ---- { // Signedness doesn't matter; 0xffff vs. -1 are both rejected. int digit = numValue[plane][attr >> 7]; ! ! // If digit is less than or equal to -3 then the numerical value was // too large to fit into numValue and is stored in CharData.LARGENUMS. if (digit <= -3) digit = CharData.LARGENUMS[-digit - 3]; *************** public final class Character implements *** 3718,3724 **** } return -1; } ! /** * Returns the Unicode numeric value property of a character. For example, * '\\u216C' (the Roman numeral fifty) returns 50. --- 3718,3724 ---- } return -1; } ! /** * Returns the Unicode numeric value property of a character. For example, * '\\u216C' (the Roman numeral fifty) returns 50. *************** public final class Character implements *** 3751,3757 **** // Treat numValue as signed. return (short) numValue[0][readCodePoint((int)ch) >> 7]; } ! /** * Returns the Unicode numeric value property of a character. For example, * '\\u216C' (the Roman numeral fifty) returns 50. --- 3751,3757 ---- // Treat numValue as signed. return (short) numValue[0][readCodePoint((int)ch) >> 7]; } ! /** * Returns the Unicode numeric value property of a character. For example, * '\\u216C' (the Roman numeral fifty) returns 50. *************** public final class Character implements *** 3788,3796 **** return UnassignedCharacters.getNumericValue(codePoint); if (plane > 14) return PrivateUseCharacters.getNumericValue(codePoint); ! // If the value N found in numValue[plane] is less than or equal to -3 ! // then the numeric value was too big to fit into 16 bits and is // stored in CharData.LARGENUMS at offset (-N - 3). short num = (short)numValue[plane][readCodePoint(codePoint) >> 7]; if (num <= -3) --- 3788,3796 ---- return UnassignedCharacters.getNumericValue(codePoint); if (plane > 14) return PrivateUseCharacters.getNumericValue(codePoint); ! // If the value N found in numValue[plane] is less than or equal to -3 ! // then the numeric value was too big to fit into 16 bits and is // stored in CharData.LARGENUMS at offset (-N - 3). short num = (short)numValue[plane][readCodePoint(codePoint) >> 7]; if (num <= -3) *************** public final class Character implements *** 3837,3843 **** { return isSpaceChar((int)ch); } ! /** * Determines if a character is a Unicode space character. This includes * SPACE_SEPARATOR, LINE_SEPARATOR, and PARAGRAPH_SEPARATOR. --- 3837,3843 ---- { return isSpaceChar((int)ch); } ! /** * Determines if a character is a Unicode space character. This includes * SPACE_SEPARATOR, LINE_SEPARATOR, and PARAGRAPH_SEPARATOR. *************** public final class Character implements *** 3878,3884 **** { return isWhitespace((int) ch); } ! /** * Determines if a character is Java whitespace. This includes Unicode * space characters (SPACE_SEPARATOR, LINE_SEPARATOR, and --- 3878,3884 ---- { return isWhitespace((int) ch); } ! /** * Determines if a character is Java whitespace. This includes Unicode * space characters (SPACE_SEPARATOR, LINE_SEPARATOR, and *************** public final class Character implements *** 3903,3909 **** return UnassignedCharacters.isWhiteSpace(codePoint); if (plane > 14) return PrivateUseCharacters.isWhiteSpace(codePoint); ! int attr = readCodePoint(codePoint); return ((((1 << (attr & TYPE_MASK)) & ((1 << SPACE_SEPARATOR) --- 3903,3909 ---- return UnassignedCharacters.isWhiteSpace(codePoint); if (plane > 14) return PrivateUseCharacters.isWhiteSpace(codePoint); ! int attr = readCodePoint(codePoint); return ((((1 << (attr & TYPE_MASK)) & ((1 << SPACE_SEPARATOR) *************** public final class Character implements *** 3937,3950 **** { return isISOControl((int)ch); } ! /** * Determines if the character is an ISO Control character. This is true * if the code point is in the range [0, 0x001F] or if it is in the range * [0x007F, 0x009F]. * @param codePoint the character to check * @return true if the character is in one of the above ranges ! * * @since 1.5 */ public static boolean isISOControl(int codePoint) --- 3937,3950 ---- { return isISOControl((int)ch); } ! /** * Determines if the character is an ISO Control character. This is true * if the code point is in the range [0, 0x001F] or if it is in the range * [0x007F, 0x009F]. * @param codePoint the character to check * @return true if the character is in one of the above ranges ! * * @since 1.5 */ public static boolean isISOControl(int codePoint) *************** public final class Character implements *** 3952,3958 **** if ((codePoint >= 0 && codePoint <= 0x001F) || (codePoint >= 0x007F && codePoint <= 0x009F)) return true; ! return false; } /** --- 3952,3958 ---- if ((codePoint >= 0 && codePoint <= 0x001F) || (codePoint >= 0x007F && codePoint <= 0x009F)) return true; ! return false; } /** *************** public final class Character implements *** 3996,4002 **** { return getType((int)ch); } ! /** * Returns the Unicode general category property of a character. * --- 3996,4002 ---- { return getType((int)ch); } ! /** * Returns the Unicode general category property of a character. * *************** public final class Character implements *** 4032,4038 **** * @see #MODIFIER_SYMBOL * @see #INITIAL_QUOTE_PUNCTUATION * @see #FINAL_QUOTE_PUNCTUATION ! * * @since 1.5 */ public static int getType(int codePoint) --- 4032,4038 ---- * @see #MODIFIER_SYMBOL * @see #INITIAL_QUOTE_PUNCTUATION * @see #FINAL_QUOTE_PUNCTUATION ! * * @since 1.5 */ public static int getType(int codePoint) *************** public final class Character implements *** 4044,4050 **** return UnassignedCharacters.getType(codePoint); if (plane > 14) return PrivateUseCharacters.getType(codePoint); ! return readCodePoint(codePoint) & TYPE_MASK; } --- 4044,4050 ---- return UnassignedCharacters.getType(codePoint); if (plane > 14) return PrivateUseCharacters.getType(codePoint); ! return readCodePoint(codePoint) & TYPE_MASK; } *************** public final class Character implements *** 4105,4111 **** return getDirectionality((int)ch); } ! /** * Returns the Unicode directionality property of the character. This * is used in the visual ordering of text. --- 4105,4111 ---- return getDirectionality((int)ch); } ! /** * Returns the Unicode directionality property of the character. This * is used in the visual ordering of text. *************** public final class Character implements *** 4143,4153 **** return UnassignedCharacters.getDirectionality(codePoint); if (plane > 14) return PrivateUseCharacters.getDirectionality(codePoint); ! // The result will correctly be signed. return (byte) (direction[plane][readCodePoint(codePoint) >> 7] >> 2); } ! /** * Determines whether the character is mirrored according to Unicode. For * example, \u0028 (LEFT PARENTHESIS) appears as '(' in --- 4143,4153 ---- return UnassignedCharacters.getDirectionality(codePoint); if (plane > 14) return PrivateUseCharacters.getDirectionality(codePoint); ! // The result will correctly be signed. return (byte) (direction[plane][readCodePoint(codePoint) >> 7] >> 2); } ! /** * Determines whether the character is mirrored according to Unicode. For * example, \u0028 (LEFT PARENTHESIS) appears as '(' in *************** public final class Character implements *** 4161,4167 **** { return (readCodePoint((int)ch) & MIRROR_MASK) != 0; } ! /** * Determines whether the character is mirrored according to Unicode. For * example, \u0028 (LEFT PARENTHESIS) appears as '(' in --- 4161,4167 ---- { return (readCodePoint((int)ch) & MIRROR_MASK) != 0; } ! /** * Determines whether the character is mirrored according to Unicode. For * example, \u0028 (LEFT PARENTHESIS) appears as '(' in *************** public final class Character implements *** 4180,4186 **** return UnassignedCharacters.isMirrored(codePoint); if (plane > 14) return PrivateUseCharacters.isMirrored(codePoint); ! return (readCodePoint(codePoint) & MIRROR_MASK) != 0; } --- 4180,4186 ---- return UnassignedCharacters.isMirrored(codePoint); if (plane > 14) return PrivateUseCharacters.isMirrored(codePoint); ! return (readCodePoint(codePoint) & MIRROR_MASK) != 0; } *************** public final class Character implements *** 4229,4235 **** /** * Converts a unicode code point to a UTF-16 representation of that * code point. ! * * @param codePoint the unicode code point * * @return the UTF-16 representation of that code point --- 4229,4235 ---- /** * Converts a unicode code point to a UTF-16 representation of that * code point. ! * * @param codePoint the unicode code point * * @return the UTF-16 representation of that code point *************** public final class Character implements *** 4288,4294 **** else { dst[dstIndex] = (char) codePoint; ! result = 1; } return result; } --- 4288,4294 ---- else { dst[dstIndex] = (char) codePoint; ! result = 1; } return result; } *************** public final class Character implements *** 4305,4313 **** */ public static int charCount(int codePoint) { ! return ! (codePoint >= MIN_SUPPLEMENTARY_CODE_POINT) ! ? 2 : 1; } --- 4305,4313 ---- */ public static int charCount(int codePoint) { ! return ! (codePoint >= MIN_SUPPLEMENTARY_CODE_POINT) ! ? 2 : 1; } *************** public final class Character implements *** 4510,4516 **** public static int codePointBefore(char[] chars, int index, int start) { if (index < start || index > chars.length ! || start < 0 || start >= chars.length) throw new IndexOutOfBoundsException(); --index; char low = chars[index]; --- 4510,4516 ---- public static int codePointBefore(char[] chars, int index, int start) { if (index < start || index > chars.length ! || start < 0 || start >= chars.length) throw new IndexOutOfBoundsException(); --index; char low = chars[index]; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Class.java gcc-4.6.0/libjava/classpath/java/lang/Class.java *** gcc-4.5.2/libjava/classpath/java/lang/Class.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Class.java Tue Jan 11 19:46:05 2011 *************** import java.util.LinkedHashSet; *** 99,105 **** * @since 1.0 * @see ClassLoader */ ! public final class Class implements Serializable, Type, AnnotatedElement, GenericDeclaration { /** --- 99,105 ---- * @since 1.0 * @see ClassLoader */ ! public final class Class implements Serializable, Type, AnnotatedElement, GenericDeclaration { /** *************** public final class Class *** 215,221 **** * @since 1.2 */ public static Class forName(String name, boolean initialize, ! ClassLoader classloader) throws ClassNotFoundException { if (classloader == null) --- 215,221 ---- * @since 1.2 */ public static Class forName(String name, boolean initialize, ! ClassLoader classloader) throws ClassNotFoundException { if (classloader == null) *************** public final class Class *** 232,238 **** } return (Class) VMClass.forName(name, initialize, classloader); } ! /** * Get all the public member classes and interfaces declared in this * class or inherited from superclasses. This returns an array of length --- 232,238 ---- } return (Class) VMClass.forName(name, initialize, classloader); } ! /** * Get all the public member classes and interfaces declared in this * class or inherited from superclasses. This returns an array of length *************** public final class Class *** 263,269 **** list.addAll(Arrays.asList(superClass.internalGetClasses())); return list.toArray(new Class[list.size()]); } ! /** * Get the ClassLoader that loaded this class. If the class was loaded * by the bootstrap classloader, this method will return null. --- 263,269 ---- list.addAll(Arrays.asList(superClass.internalGetClasses())); return list.toArray(new Class[list.size()]); } ! /** * Get the ClassLoader that loaded this class. If the class was loaded * by the bootstrap classloader, this method will return null. *************** public final class Class *** 288,294 **** if (loader != null && sm != null) { // Get the calling classloader ! ClassLoader cl = VMStackWalker.getCallingClassLoader(); if (cl != null && !cl.isAncestorOf(loader)) sm.checkPermission(new RuntimePermission("getClassLoader")); } --- 288,294 ---- if (loader != null && sm != null) { // Get the calling classloader ! ClassLoader cl = VMStackWalker.getCallingClassLoader(); if (cl != null && !cl.isAncestorOf(loader)) sm.checkPermission(new RuntimePermission("getClassLoader")); } *************** public final class Class *** 331,339 **** Constructor[] constructors = getDeclaredConstructors(true); for (int i = 0; i < constructors.length; i++) { ! Constructor constructor = constructors[i]; ! if (matchParameters(types, constructor.getParameterTypes())) ! return constructor; } throw new NoSuchMethodException(); } --- 331,339 ---- Constructor[] constructors = getDeclaredConstructors(true); for (int i = 0; i < constructors.length; i++) { ! Constructor constructor = constructors[i]; ! if (matchParameters(types, constructor.getParameterTypes())) ! return constructor; } throw new NoSuchMethodException(); } *************** public final class Class *** 377,385 **** Constructor[] constructors = getDeclaredConstructors(false); for (int i = 0; i < constructors.length; i++) { ! Constructor constructor = constructors[i]; ! if (matchParameters(types, constructor.getParameterTypes())) ! return constructor; } throw new NoSuchMethodException(); } --- 377,385 ---- Constructor[] constructors = getDeclaredConstructors(false); for (int i = 0; i < constructors.length; i++) { ! Constructor constructor = constructors[i]; ! if (matchParameters(types, constructor.getParameterTypes())) ! return constructor; } throw new NoSuchMethodException(); } *************** public final class Class *** 429,435 **** { return VMClass.getDeclaredConstructors (this, publicOnly); } ! /** * Get a field declared in this class, where name is its simple name. The * implicit length field of arrays is not available. A security check may --- 429,435 ---- { return VMClass.getDeclaredConstructors (this, publicOnly); } ! /** * Get a field declared in this class, where name is its simple name. The * implicit length field of arrays is not available. A security check may *************** public final class Class *** 449,456 **** Field[] fields = getDeclaredFields(false); for (int i = 0; i < fields.length; i++) { ! if (fields[i].getName().equals(name)) ! return fields[i]; } throw new NoSuchFieldException(); } --- 449,456 ---- Field[] fields = getDeclaredFields(false); for (int i = 0; i < fields.length; i++) { ! if (fields[i].getName().equals(name)) ! return fields[i]; } throw new NoSuchFieldException(); } *************** public final class Class *** 535,541 **** { return VMClass.getDeclaredMethods (this, publicOnly); } ! /** * If this is a nested or inner class, return the class that declared it. * If not, return null. --- 535,541 ---- { return VMClass.getDeclaredMethods (this, publicOnly); } ! /** * If this is a nested or inner class, return the class that declared it. * If not, return null. *************** public final class Class *** 643,649 **** private Class[] params; private Class returnType; private int hash; ! MethodKey(Method m) { name = m.getName(); --- 643,649 ---- private Class[] params; private Class returnType; private int hash; ! MethodKey(Method m) { name = m.getName(); *************** public final class Class *** 651,686 **** returnType = m.getReturnType(); hash = name.hashCode() ^ returnType.hashCode(); for(int i = 0; i < params.length; i++) ! { ! hash ^= params[i].hashCode(); ! } } ! public boolean equals(Object o) { if (o instanceof MethodKey) ! { ! MethodKey m = (MethodKey) o; ! if (m.name.equals(name) && m.params.length == params.length ! && m.returnType == returnType) ! { ! for (int i = 0; i < params.length; i++) ! { ! if (m.params[i] != params[i]) ! return false; ! } ! return true; ! } ! } return false; } ! public int hashCode() { return hash; } } ! /** * Get a public method declared or inherited in this class, where name is * its simple name. The implicit methods of Object are not available from --- 651,686 ---- returnType = m.getReturnType(); hash = name.hashCode() ^ returnType.hashCode(); for(int i = 0; i < params.length; i++) ! { ! hash ^= params[i].hashCode(); ! } } ! public boolean equals(Object o) { if (o instanceof MethodKey) ! { ! MethodKey m = (MethodKey) o; ! if (m.name.equals(name) && m.params.length == params.length ! && m.returnType == returnType) ! { ! for (int i = 0; i < params.length; i++) ! { ! if (m.params[i] != params[i]) ! return false; ! } ! return true; ! } ! } return false; } ! public int hashCode() { return hash; } } ! /** * Get a public method declared or inherited in this class, where name is * its simple name. The implicit methods of Object are not available from *************** public final class Class *** 725,745 **** Class superClass = getSuperclass(); if (superClass != null) { ! match = superClass.internalGetMethod(methodName, args); ! if(match != null) ! return match; } Class[] interfaces = getInterfaces(); for (int i = 0; i < interfaces.length; i++) { ! match = interfaces[i].internalGetMethod(methodName, args); ! if (match != null) ! return match; } return null; } ! /** * Find the best matching method in list according to * the definition of ``best matching'' used by getMethod() * --- 725,745 ---- Class superClass = getSuperclass(); if (superClass != null) { ! match = superClass.internalGetMethod(methodName, args); ! if(match != null) ! return match; } Class[] interfaces = getInterfaces(); for (int i = 0; i < interfaces.length; i++) { ! match = interfaces[i].internalGetMethod(methodName, args); ! if (match != null) ! return match; } return null; } ! /** * Find the best matching method in list according to * the definition of ``best matching'' used by getMethod() * *************** public final class Class *** 756,769 **** Method match = null; for (int i = 0; i < list.length; i++) { ! Method method = list[i]; ! if (!method.getName().equals(name)) ! continue; ! if (!matchParameters(args, method.getParameterTypes())) ! continue; ! if (match == null ! || match.getReturnType().isAssignableFrom(method.getReturnType())) ! match = method; } return match; } --- 756,769 ---- Method match = null; for (int i = 0; i < list.length; i++) { ! Method method = list[i]; ! if (!method.getName().equals(name)) ! continue; ! if (!matchParameters(args, method.getParameterTypes())) ! continue; ! if (match == null ! || match.getReturnType().isAssignableFrom(method.getReturnType())) ! match = method; } return match; } *************** public final class Class *** 783,794 **** return false; for (int i = 0; i < types1.length; i++) { ! if (types1[i] != types2[i]) ! return false; } return true; } ! /** * Get all the public methods declared in this class or inherited from * superclasses. This returns an array of length 0 if there are no methods, --- 783,794 ---- return false; for (int i = 0; i < types1.length; i++) { ! if (types1[i] != types2[i]) ! return false; } return true; } ! /** * Get all the public methods declared in this class or inherited from * superclasses. This returns an array of length 0 if there are no methods, *************** public final class Class *** 825,849 **** Class[] interfaces = getInterfaces(); for(int i = 0; i < interfaces.length; i++) { ! methods = interfaces[i].internalGetMethods(); ! for(int j = 0; j < methods.length; j++) ! { ! map.put(new MethodKey(methods[j]), methods[j]); ! } } Class superClass = getSuperclass(); if(superClass != null) { ! methods = superClass.internalGetMethods(); ! for(int i = 0; i < methods.length; i++) ! { ! map.put(new MethodKey(methods[i]), methods[i]); ! } } methods = getDeclaredMethods(true); for(int i = 0; i < methods.length; i++) { ! map.put(new MethodKey(methods[i]), methods[i]); } return map.values().toArray(new Method[map.size()]); } --- 825,849 ---- Class[] interfaces = getInterfaces(); for(int i = 0; i < interfaces.length; i++) { ! methods = interfaces[i].internalGetMethods(); ! for(int j = 0; j < methods.length; j++) ! { ! map.put(new MethodKey(methods[j]), methods[j]); ! } } Class superClass = getSuperclass(); if(superClass != null) { ! methods = superClass.internalGetMethods(); ! for(int i = 0; i < methods.length; i++) ! { ! map.put(new MethodKey(methods[i]), methods[i]); ! } } methods = getDeclaredMethods(true); for(int i = 0; i < methods.length; i++) { ! map.put(new MethodKey(methods[i]), methods[i]); } return map.values().toArray(new Method[map.size()]); } *************** public final class Class *** 867,873 **** Modifier.FINAL | Modifier.STATIC | Modifier.ABSTRACT | Modifier.INTERFACE)); } ! /** * Get the name of this class, separated by dots for package separators. * If the class represents a primitive type, or void, then the --- 867,873 ---- Modifier.FINAL | Modifier.STATIC | Modifier.ABSTRACT | Modifier.INTERFACE)); } ! /** * Get the name of this class, separated by dots for package separators. * If the class represents a primitive type, or void, then the *************** public final class Class *** 896,902 **** * @return the name of this class */ public String getName() ! { return VMClass.getName (this); } --- 896,902 ---- * @return the name of this class */ public String getName() ! { return VMClass.getName (this); } *************** public final class Class *** 959,974 **** { if (resourceName.length() > 0) { ! if (resourceName.charAt(0) != '/') ! { ! String pkg = getPackagePortion(getName()); ! if (pkg.length() > 0) ! resourceName = pkg.replace('.','/') + '/' + resourceName; ! } ! else ! { ! resourceName = resourceName.substring(1); ! } } return resourceName; } --- 959,974 ---- { if (resourceName.length() > 0) { ! if (resourceName.charAt(0) != '/') ! { ! String pkg = getPackagePortion(getName()); ! if (pkg.length() > 0) ! resourceName = pkg.replace('.','/') + '/' + resourceName; ! } ! else ! { ! resourceName = resourceName.substring(1); ! } } return resourceName; } *************** public final class Class *** 984,990 **** { return signers == null ? null : (Object[]) signers.clone (); } ! /** * Set the signers of this class. * --- 984,990 ---- { return signers == null ? null : (Object[]) signers.clone (); } ! /** * Set the signers of this class. * *************** public final class Class *** 1006,1012 **** { return VMClass.getSuperclass (this); } ! /** * Return whether this class is an array type. * --- 1006,1012 ---- { return VMClass.getSuperclass (this); } ! /** * Return whether this class is an array type. * *************** public final class Class *** 1017,1023 **** { return VMClass.isArray (this); } ! /** * Discover whether an instance of the Class parameter would be an * instance of this Class as well. Think of doing --- 1017,1023 ---- { return VMClass.isArray (this); } ! /** * Discover whether an instance of the Class parameter would be an * instance of this Class as well. Think of doing *************** public final class Class *** 1036,1042 **** { return VMClass.isAssignableFrom (this, c); } ! /** * Discover whether an Object is an instance of this Class. Think of it * as almost like o instanceof (this class). --- 1036,1042 ---- { return VMClass.isAssignableFrom (this, c); } ! /** * Discover whether an Object is an instance of this Class. Think of it * as almost like o instanceof (this class). *************** public final class Class *** 1049,1055 **** { return VMClass.isInstance (this, o); } ! /** * Check whether this class is an interface or not. Array types are not * interfaces. --- 1049,1055 ---- { return VMClass.isInstance (this, o); } ! /** * Check whether this class is an interface or not. Array types are not * interfaces. *************** public final class Class *** 1060,1066 **** { return VMClass.isInterface (this); } ! /** * Return whether this class is a primitive type. A primitive type class * is a class representing a kind of "placeholder" for the various --- 1060,1066 ---- { return VMClass.isInterface (this); } ! /** * Return whether this class is a primitive type. A primitive type class * is a class representing a kind of "placeholder" for the various *************** public final class Class *** 1084,1090 **** { return VMClass.isPrimitive (this); } ! /** * Get a new instance of this class by calling the no-argument constructor. * The class is initialized if it has not been already. A security check --- 1084,1090 ---- { return VMClass.isPrimitive (this); } ! /** * Get a new instance of this class by calling the no-argument constructor. * The class is initialized if it has not been already. A security check *************** public final class Class *** 1109,1153 **** Constructor constructor; synchronized(this) { ! constructor = this.constructor; } if (constructor == null) { ! Constructor[] constructors = getDeclaredConstructors(false); ! for (int i = 0; i < constructors.length; i++) ! { ! if (constructors[i].getParameterTypes().length == 0) ! { ! constructor = constructors[i]; ! break; ! } ! } ! if (constructor == null) ! throw new InstantiationException(getName()); ! if (!Modifier.isPublic(constructor.getModifiers()) || !Modifier.isPublic(VMClass.getModifiers(this, true))) ! { ! setAccessible(constructor); ! } ! synchronized(this) ! { ! if (this.constructor == null) ! this.constructor = constructor; ! } } int modifiers = constructor.getModifiers(); if (!Modifier.isPublic(modifiers) || !Modifier.isPublic(VMClass.getModifiers(this, true))) { ! Class caller = VMStackWalker.getCallingClass(); ! if (caller != null && ! caller != this && ! (Modifier.isPrivate(modifiers) ! || getClassLoader() != caller.getClassLoader() ! || !getPackagePortion(getName()) ! .equals(getPackagePortion(caller.getName())))) ! throw new IllegalAccessException(getName() ! + " has an inaccessible constructor"); } try { --- 1109,1153 ---- Constructor constructor; synchronized(this) { ! constructor = this.constructor; } if (constructor == null) { ! Constructor[] constructors = getDeclaredConstructors(false); ! for (int i = 0; i < constructors.length; i++) ! { ! if (constructors[i].getParameterTypes().length == 0) ! { ! constructor = constructors[i]; ! break; ! } ! } ! if (constructor == null) ! throw new InstantiationException(getName()); ! if (!Modifier.isPublic(constructor.getModifiers()) || !Modifier.isPublic(VMClass.getModifiers(this, true))) ! { ! setAccessible(constructor); ! } ! synchronized(this) ! { ! if (this.constructor == null) ! this.constructor = constructor; ! } } int modifiers = constructor.getModifiers(); if (!Modifier.isPublic(modifiers) || !Modifier.isPublic(VMClass.getModifiers(this, true))) { ! Class caller = VMStackWalker.getCallingClass(); ! if (caller != null && ! caller != this && ! (Modifier.isPrivate(modifiers) ! || getClassLoader() != caller.getClassLoader() ! || !getPackagePortion(getName()) ! .equals(getPackagePortion(caller.getName())))) ! throw new IllegalAccessException(getName() ! + " has an inaccessible constructor"); } try { *************** public final class Class *** 1155,1163 **** } catch (InvocationTargetException e) { ! VMClass.throwException(e.getTargetException()); ! throw (InternalError) new InternalError ! ("VMClass.throwException returned").initCause(e); } } --- 1155,1163 ---- } catch (InvocationTargetException e) { ! VMClass.throwException(e.getTargetException()); ! throw (InternalError) new InternalError ! ("VMClass.throwException returned").initCause(e); } } *************** public final class Class *** 1288,1301 **** * returns an appropriately cast reference to this object. Otherwise, * a ClassCastException is thrown. *

                    ! * * @param klass the class object, the parameterized type (U) of * which should be a superclass of the parameterized type of * this instance. * @return a reference to this object, appropriately cast. * @throws ClassCastException if this class can not be converted to one * which represents a subclass of the specified ! * type, U. * @since 1.5 */ public Class asSubclass(Class klass) --- 1288,1301 ---- * returns an appropriately cast reference to this object. Otherwise, * a ClassCastException is thrown. *

                    ! * * @param klass the class object, the parameterized type (U) of * which should be a superclass of the parameterized type of * this instance. * @return a reference to this object, appropriately cast. * @throws ClassCastException if this class can not be converted to one * which represents a subclass of the specified ! * type, U. * @since 1.5 */ public Class asSubclass(Class klass) *************** public final class Class *** 1328,1343 **** Field[] fields = getDeclaredFields(true); for (int i = 0; i < fields.length; i++) { ! Field field = fields[i]; ! if (field.getName().equals(name)) ! return field; } Class[] interfaces = getInterfaces(); for (int i = 0; i < interfaces.length; i++) { ! Field field = interfaces[i].internalGetField(name); ! if(field != null) ! return field; } Class superClass = getSuperclass(); if (superClass != null) --- 1328,1343 ---- Field[] fields = getDeclaredFields(true); for (int i = 0; i < fields.length; i++) { ! Field field = fields[i]; ! if (field.getName().equals(name)) ! return field; } Class[] interfaces = getInterfaces(); for (int i = 0; i < interfaces.length; i++) { ! Field field = interfaces[i].internalGetField(name); ! if(field != null) ! return field; } Class superClass = getSuperclass(); if (superClass != null) *************** public final class Class *** 1368,1377 **** SecurityManager sm = SecurityManager.current; if (sm != null) { ! sm.checkMemberAccess(this, which); ! Package pkg = getPackage(); ! if (pkg != null) ! sm.checkPackageAccess(pkg.getName()); } } --- 1368,1377 ---- SecurityManager sm = SecurityManager.current; if (sm != null) { ! sm.checkMemberAccess(this, which); ! Package pkg = getPackage(); ! if (pkg != null) ! sm.checkPackageAccess(pkg.getName()); } } *************** public final class Class *** 1388,1417 **** { if (isEnum()) { ! try ! { Method m = getMethod("values"); setAccessible(m); ! return (T[]) m.invoke(null); ! } ! catch (NoSuchMethodException exception) ! { ! throw new Error("Enum lacks values() method"); ! } ! catch (IllegalAccessException exception) ! { ! throw new Error("Unable to access Enum class"); ! } ! catch (InvocationTargetException exception) ! { ! throw new ! RuntimeException("The values method threw an exception", ! exception); ! } } else { ! return null; } } --- 1388,1417 ---- { if (isEnum()) { ! try ! { Method m = getMethod("values"); setAccessible(m); ! return (T[]) m.invoke(null); ! } ! catch (NoSuchMethodException exception) ! { ! throw new Error("Enum lacks values() method"); ! } ! catch (IllegalAccessException exception) ! { ! throw new Error("Unable to access Enum class"); ! } ! catch (InvocationTargetException exception) ! { ! throw new ! RuntimeException("The values method threw an exception", ! exception); ! } } else { ! return null; } } *************** public final class Class *** 1458,1464 **** * getName() which follows the last ".". Anonymous * classes have no name, and so the result of calling this method is * "". The simple name of an array consists of the simple name of ! * its component type, followed by "[]". Thus, an array with the * component type of an anonymous class has a simple name of simply * "[]". * --- 1458,1464 ---- * getName() which follows the last ".". Anonymous * classes have no name, and so the result of calling this method is * "". The simple name of an array consists of the simple name of ! * its component type, followed by "[]". Thus, an array with the * component type of an anonymous class has a simple name of simply * "[]". * *************** public final class Class *** 1485,1491 **** Annotation[] annotations = getAnnotations(); for (Annotation annotation : annotations) if (annotation.annotationType() == annotationClass) ! foundAnnotation = (A) annotation; return foundAnnotation; } --- 1485,1491 ---- Annotation[] annotations = getAnnotations(); for (Annotation annotation : annotations) if (annotation.annotationType() == annotationClass) ! foundAnnotation = (A) annotation; return foundAnnotation; } *************** public final class Class *** 1506,1520 **** for (Annotation a : getDeclaredAnnotations()) map.put((Class) a.annotationType(), a); for (Class s = getSuperclass(); ! s != null; ! s = s.getSuperclass()) { ! for (Annotation a : s.getDeclaredAnnotations()) ! { ! Class k = (Class) a.annotationType(); ! if (! map.containsKey(k) && k.isAnnotationPresent(Inherited.class)) ! map.put(k, a); ! } } Collection v = map.values(); return v.toArray(new Annotation[v.size()]); --- 1506,1520 ---- for (Annotation a : getDeclaredAnnotations()) map.put((Class) a.annotationType(), a); for (Class s = getSuperclass(); ! s != null; ! s = s.getSuperclass()) { ! for (Annotation a : s.getDeclaredAnnotations()) ! { ! Class k = (Class) a.annotationType(); ! if (! map.containsKey(k) && k.isAnnotationPresent(Inherited.class)) ! map.put(k, a); ! } } Collection v = map.values(); return v.toArray(new Annotation[v.size()]); *************** public final class Class *** 1533,1539 **** * The canonical name for top-level classes, top-level interfaces and * primitive types is always the same as the fully-qualified name. * For array types, the canonical name is the canonical name of its ! * component type with `[]' appended. *

                    *

                    * The canonical name of a member class always refers to the place where --- 1533,1539 ---- * The canonical name for top-level classes, top-level interfaces and * primitive types is always the same as the fully-qualified name. * For array types, the canonical name is the canonical name of its ! * component type with `[]' appended. *

                    *

                    * The canonical name of a member class always refers to the place where *************** public final class Class *** 1590,1596 **** /** * Returns the constructor which immediately encloses this class. If ! * this class is a top-level class, or a local or anonymous class * immediately enclosed by a type definition, instance initializer * or static initializer, then null is returned. * --- 1590,1596 ---- /** * Returns the constructor which immediately encloses this class. If ! * this class is a top-level class, or a local or anonymous class * immediately enclosed by a type definition, instance initializer * or static initializer, then null is returned. * *************** public final class Class *** 1606,1612 **** /** * Returns the method which immediately encloses this class. If ! * this class is a top-level class, or a local or anonymous class * immediately enclosed by a type definition, instance initializer * or static initializer, then null is returned. * --- 1606,1612 ---- /** * Returns the method which immediately encloses this class. If ! * this class is a top-level class, or a local or anonymous class * immediately enclosed by a type definition, instance initializer * or static initializer, then null is returned. * *************** public final class Class *** 1718,1724 **** * An array of size zero is returned if this class has no type * variables. * ! * @return the type variables associated with this class. * @throws GenericSignatureFormatError if the generic signature does * not conform to the format specified in the Virtual Machine * specification, version 3. --- 1718,1724 ---- * An array of size zero is returned if this class has no type * variables. * ! * @return the type variables associated with this class. * @throws GenericSignatureFormatError if the generic signature does * not conform to the format specified in the Virtual Machine * specification, version 3. *************** public final class Class *** 1743,1750 **** * @return true if an annotation exists for the specified type. * @since 1.5 */ ! public boolean isAnnotationPresent(Class ! annotationClass) { return getAnnotation(annotationClass) != null; } --- 1743,1750 ---- * @return true if an annotation exists for the specified type. * @since 1.5 */ ! public boolean isAnnotationPresent(Class ! annotationClass) { return getAnnotation(annotationClass) != null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/ClassLoader.java gcc-4.6.0/libjava/classpath/java/lang/ClassLoader.java *** gcc-4.5.2/libjava/classpath/java/lang/ClassLoader.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/ClassLoader.java Tue Jan 11 19:46:05 2011 *************** public abstract class ClassLoader *** 165,187 **** if (secman != null && SecurityManager.current == null) { if (secman.equals("") || secman.equals("default")) ! { ! SecurityManager.current = new SecurityManager(); ! } ! else ! { ! try ! { ! Class cl = Class.forName(secman, false, StaticData.systemClassLoader); ! SecurityManager.current = (SecurityManager)cl.newInstance(); ! } ! catch (Exception x) ! { ! throw (InternalError) ! new InternalError("Unable to create SecurityManager") ! .initCause(x); ! } ! } } } --- 165,187 ---- if (secman != null && SecurityManager.current == null) { if (secman.equals("") || secman.equals("default")) ! { ! SecurityManager.current = new SecurityManager(); ! } ! else ! { ! try ! { ! Class cl = Class.forName(secman, false, StaticData.systemClassLoader); ! SecurityManager.current = (SecurityManager)cl.newInstance(); ! } ! catch (Exception x) ! { ! throw (InternalError) ! new InternalError("Unable to create SecurityManager") ! .initCause(x); ! } ! } } } *************** public abstract class ClassLoader *** 320,342 **** Class c = findLoadedClass(name); if (c == null) { ! // Can the class be loaded by a parent? ! try ! { ! if (parent == null) ! { ! c = VMClassLoader.loadClass(name, resolve); ! if (c != null) ! return c; ! } ! else ! { ! return parent.loadClass(name, resolve); ! } ! } catch (ClassNotFoundException e) ! { ! } // Still not found, we have to do it ourself. c = findClass(name); } --- 320,342 ---- Class c = findLoadedClass(name); if (c == null) { ! // Can the class be loaded by a parent? ! try ! { ! if (parent == null) ! { ! c = VMClassLoader.loadClass(name, resolve); ! if (c != null) ! return c; ! } ! else ! { ! return parent.loadClass(name, resolve); ! } ! } catch (ClassNotFoundException e) ! { ! } // Still not found, we have to do it ourself. c = findClass(name); } *************** public abstract class ClassLoader *** 431,437 **** * @since 1.1 */ protected final Class defineClass(String name, byte[] data, int offset, ! int len) throws ClassFormatError { return defineClass(name, data, offset, len, null); } --- 431,437 ---- * @since 1.1 */ protected final Class defineClass(String name, byte[] data, int offset, ! int len) throws ClassFormatError { return defineClass(name, data, offset, len, null); } *************** public abstract class ClassLoader *** 460,475 **** * @since 1.2 */ protected final synchronized Class defineClass(String name, byte[] data, ! int offset, int len, ! ProtectionDomain domain) throws ClassFormatError { checkInitialized(); if (domain == null) domain = StaticData.defaultProtectionDomain; ! return VMClassLoader.defineClassWithTransformers(this, name, data, offset, ! len, domain); } /** --- 460,475 ---- * @since 1.2 */ protected final synchronized Class defineClass(String name, byte[] data, ! int offset, int len, ! ProtectionDomain domain) throws ClassFormatError { checkInitialized(); if (domain == null) domain = StaticData.defaultProtectionDomain; ! return VMClassLoader.defineClassWithTransformers(this, name, data, offset, ! len, domain); } /** *************** public abstract class ClassLoader *** 493,499 **** * @since 1.5 */ protected final Class defineClass(String name, ByteBuffer buf, ! ProtectionDomain domain) throws ClassFormatError { byte[] data = new byte[buf.remaining()]; --- 493,499 ---- * @since 1.5 */ protected final Class defineClass(String name, ByteBuffer buf, ! ProtectionDomain domain) throws ClassFormatError { byte[] data = new byte[buf.remaining()]; *************** public abstract class ClassLoader *** 547,554 **** SecurityManager sm = SecurityManager.current; if (sm != null) { ! ClassLoader cl = VMStackWalker.getCallingClassLoader(); ! if (cl != null && ! cl.isAncestorOf(this)) sm.checkPermission(new RuntimePermission("getClassLoader")); } return parent; --- 547,554 ---- SecurityManager sm = SecurityManager.current; if (sm != null) { ! ClassLoader cl = VMStackWalker.getCallingClassLoader(); ! if (cl != null && ! cl.isAncestorOf(this)) sm.checkPermission(new RuntimePermission("getClassLoader")); } return parent; *************** public abstract class ClassLoader *** 791,799 **** SecurityManager sm = SecurityManager.current; if (sm != null) { ! ClassLoader cl = VMStackWalker.getCallingClassLoader(); ! if (cl != null && cl != StaticData.systemClassLoader) ! sm.checkPermission(new RuntimePermission("getClassLoader")); } return StaticData.systemClassLoader; --- 791,799 ---- SecurityManager sm = SecurityManager.current; if (sm != null) { ! ClassLoader cl = VMStackWalker.getCallingClassLoader(); ! if (cl != null && cl != StaticData.systemClassLoader) ! sm.checkPermission(new RuntimePermission("getClassLoader")); } return StaticData.systemClassLoader; *************** public abstract class ClassLoader *** 863,872 **** if (p == null) { ! synchronized (definedPackages) ! { ! p = definedPackages.get(name); ! } } return p; } --- 863,872 ---- if (p == null) { ! synchronized (definedPackages) ! { ! p = definedPackages.get(name); ! } } return p; } *************** public abstract class ClassLoader *** 895,901 **** parentPackages = parent.getPackages(); Package[] allPackages = new Package[parentPackages.length ! + packages.length]; System.arraycopy(parentPackages, 0, allPackages, 0, parentPackages.length); System.arraycopy(packages, 0, allPackages, parentPackages.length, --- 895,901 ---- parentPackages = parent.getPackages(); Package[] allPackages = new Package[parentPackages.length ! + packages.length]; System.arraycopy(parentPackages, 0, allPackages, 0, parentPackages.length); System.arraycopy(packages, 0, allPackages, parentPackages.length, *************** public abstract class ClassLoader *** 937,943 **** { defaultAssertionStatus = enabled; } ! /** * Set the default assertion status for packages, used unless overridden * by a class request. This default also covers subpackages, unless they --- 937,943 ---- { defaultAssertionStatus = enabled; } ! /** * Set the default assertion status for packages, used unless overridden * by a class request. This default also covers subpackages, unless they *************** public abstract class ClassLoader *** 958,964 **** = new HashMap(StaticData.systemPackageAssertionStatus); packageAssertionStatus.put(name, Boolean.valueOf(enabled)); } ! /** * Set the default assertion status for a class. This only affects the * status of top-level classes, any other string is harmless. --- 958,964 ---- = new HashMap(StaticData.systemPackageAssertionStatus); packageAssertionStatus.put(name, Boolean.valueOf(enabled)); } ! /** * Set the default assertion status for a class. This only affects the * status of top-level classes, any other string is harmless. *************** public abstract class ClassLoader *** 976,986 **** { if (classAssertionStatus == null) classAssertionStatus ! = new HashMap(StaticData.systemClassAssertionStatus); // The toString() hack catches null, as required. classAssertionStatus.put(name.toString(), Boolean.valueOf(enabled)); } ! /** * Resets the default assertion status of this classloader, its packages * and classes, all to false. This allows overriding defaults inherited --- 976,986 ---- { if (classAssertionStatus == null) classAssertionStatus ! = new HashMap(StaticData.systemClassAssertionStatus); // The toString() hack catches null, as required. classAssertionStatus.put(name.toString(), Boolean.valueOf(enabled)); } ! /** * Resets the default assertion status of this classloader, its packages * and classes, all to false. This allows overriding defaults inherited *************** public abstract class ClassLoader *** 1007,1015 **** { while (loader != null) { ! if (this == loader) ! return true; ! loader = loader.parent; } return false; } --- 1007,1015 ---- { while (loader != null) { ! if (this == loader) ! return true; ! loader = loader.parent; } return false; } *************** public abstract class ClassLoader *** 1021,1037 **** ArrayList list = new ArrayList(); while (tok.hasMoreTokens()) { ! try ! { ! File f = new File(tok.nextToken()); ! File[] files = f.listFiles(); ! if (files != null) ! for (int i = 0; i < files.length; i++) ! list.add(files[i].toURL()); ! } ! catch(Exception x) ! { ! } } URL[] urls = new URL[list.size()]; list.toArray(urls); --- 1021,1037 ---- ArrayList list = new ArrayList(); while (tok.hasMoreTokens()) { ! try ! { ! File f = new File(tok.nextToken()); ! File[] files = f.listFiles(); ! if (files != null) ! for (int i = 0; i < files.length; i++) ! list.add(files[i].toURL()); ! } ! catch(Exception x) ! { ! } } URL[] urls = new URL[list.size()]; list.toArray(urls); *************** public abstract class ClassLoader *** 1042,1048 **** { try { ! list.add(new File(file).toURL()); } catch(java.net.MalformedURLException x) { --- 1042,1048 ---- { try { ! list.add(new File(file).toURL()); } catch(java.net.MalformedURLException x) { *************** public abstract class ClassLoader *** 1056,1077 **** ArrayList list = new ArrayList(); while (tok.hasMoreTokens()) { ! String s = tok.nextToken(); ! if (s.equals(File.pathSeparator)) ! addFileURL(list, "."); ! else ! { ! addFileURL(list, s); ! if (tok.hasMoreTokens()) ! { ! // Skip the separator. ! tok.nextToken(); ! // If the classpath ended with a separator, ! // append the current directory. ! if (!tok.hasMoreTokens()) ! addFileURL(list, "."); ! } ! } } URL[] urls = new URL[list.size()]; list.toArray(urls); --- 1056,1077 ---- ArrayList list = new ArrayList(); while (tok.hasMoreTokens()) { ! String s = tok.nextToken(); ! if (s.equals(File.pathSeparator)) ! addFileURL(list, "."); ! else ! { ! addFileURL(list, s); ! if (tok.hasMoreTokens()) ! { ! // Skip the separator. ! tok.nextToken(); ! // If the classpath ended with a separator, ! // append the current directory. ! if (!tok.hasMoreTokens()) ! addFileURL(list, "."); ! } ! } } URL[] urls = new URL[list.size()]; list.toArray(urls); *************** public abstract class ClassLoader *** 1096,1117 **** static ClassLoader createSystemClassLoader(URL[] urls, ClassLoader parent) { return ! new URLClassLoader(urls, parent) ! { ! protected synchronized Class loadClass(String name, ! boolean resolve) ! throws ClassNotFoundException ! { ! SecurityManager sm = SecurityManager.current; ! if (sm != null) ! { ! int lastDot = name.lastIndexOf('.'); ! if (lastDot != -1) ! sm.checkPackageAccess(name.substring(0, lastDot)); ! } ! return super.loadClass(name, resolve); ! } ! }; } static ClassLoader createAuxiliarySystemClassLoader(ClassLoader parent) --- 1096,1117 ---- static ClassLoader createSystemClassLoader(URL[] urls, ClassLoader parent) { return ! new URLClassLoader(urls, parent) ! { ! protected synchronized Class loadClass(String name, ! boolean resolve) ! throws ClassNotFoundException ! { ! SecurityManager sm = SecurityManager.current; ! if (sm != null) ! { ! int lastDot = name.lastIndexOf('.'); ! if (lastDot != -1) ! sm.checkPackageAccess(name.substring(0, lastDot)); ! } ! return super.loadClass(name, resolve); ! } ! }; } static ClassLoader createAuxiliarySystemClassLoader(ClassLoader parent) *************** public abstract class ClassLoader *** 1119,1138 **** String loader = SystemProperties.getProperty("java.system.class.loader", null); if (loader == null) { ! return parent; } try { ! Constructor c = Class.forName(loader, false, parent) ! .getConstructor(new Class[] { ClassLoader.class }); ! return (ClassLoader)c.newInstance(new Object[] { parent }); } catch (Exception e) { ! System.err.println("Requested system classloader " + loader + " failed."); ! throw (Error) ! new Error("Requested system classloader " + loader + " failed.") ! .initCause(e); } } --- 1119,1138 ---- String loader = SystemProperties.getProperty("java.system.class.loader", null); if (loader == null) { ! return parent; } try { ! Constructor c = Class.forName(loader, false, parent) ! .getConstructor(new Class[] { ClassLoader.class }); ! return (ClassLoader)c.newInstance(new Object[] { parent }); } catch (Exception e) { ! System.err.println("Requested system classloader " + loader + " failed."); ! throw (Error) ! new Error("Requested system classloader " + loader + " failed.") ! .initCause(e); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Comparable.java gcc-4.6.0/libjava/classpath/java/lang/Comparable.java *** gcc-4.5.2/libjava/classpath/java/lang/Comparable.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/Comparable.java Tue Jan 11 19:46:05 2011 *************** package java.lang; *** 52,59 **** * *

                    Lists, arrays, and sets of objects that implement this interface can * be sorted automatically, without the need for an explicit ! * {@link java.util.Comparator}. Note that e1.compareTo(null) ! * should throw an Exception; as should comparison between incompatible * classes. * * @author Geoff Berry --- 52,59 ---- * *

                    Lists, arrays, and sets of objects that implement this interface can * be sorted automatically, without the need for an explicit ! * {@link java.util.Comparator}. Note that e1.compareTo(null) ! * should throw an Exception; as should comparison between incompatible * classes. * * @author Geoff Berry diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Double.java gcc-4.6.0/libjava/classpath/java/lang/Double.java *** gcc-4.5.2/libjava/classpath/java/lang/Double.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Double.java Tue Jan 11 19:46:05 2011 *************** public final class Double extends Number *** 213,219 **** long bits = doubleToLongBits(d); CPStringBuilder result = new CPStringBuilder(); ! if (bits < 0) result.append('-'); result.append("0x"); --- 213,219 ---- long bits = doubleToLongBits(d); CPStringBuilder result = new CPStringBuilder(); ! if (bits < 0) result.append('-'); result.append("0x"); *************** public final class Double extends Number *** 603,623 **** { // handle the easy cases: if (x < y) ! return -1; if (x > y) ! return 1; // handle equality respecting that 0.0 != -0.0 (hence not using x == y): long lx = doubleToRawLongBits(x); long ly = doubleToRawLongBits(y); if (lx == ly) ! return 0; // handle NaNs: if (x != x) ! return (y != y) ? 0 : 1; else if (y != y) ! return -1; // handle +/- 0.0 return (lx < ly) ? -1 : 1; --- 603,623 ---- { // handle the easy cases: if (x < y) ! return -1; if (x > y) ! return 1; // handle equality respecting that 0.0 != -0.0 (hence not using x == y): long lx = doubleToRawLongBits(x); long ly = doubleToRawLongBits(y); if (lx == ly) ! return 0; // handle NaNs: if (x != x) ! return (y != y) ? 0 : 1; else if (y != y) ! return -1; // handle +/- 0.0 return (lx < ly) ? -1 : 1; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Enum.java gcc-4.6.0/libjava/classpath/java/lang/Enum.java *** gcc-4.5.2/libjava/classpath/java/lang/Enum.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Enum.java Tue Jan 11 19:46:05 2011 *************** public abstract class Enume.ordinal > this.ordinal. * @throws ClassCastException if e is not an enumeration * constant of the same class. ! */ public final int compareTo(T e) { if (getDeclaringClass() != e.getDeclaringClass()) --- 167,173 ---- * integer if e.ordinal > this.ordinal. * @throws ClassCastException if e is not an enumeration * constant of the same class. ! */ public final int compareTo(T e) { if (getDeclaringClass() != e.getDeclaringClass()) *************** public abstract class Enum theEnum, ! String name) { super("enum " + theEnum + " is missing the constant " + name); enumType = theEnum; --- 69,75 ---- * @param name the name of the missing enum constant */ public EnumConstantNotPresentException(Class theEnum, ! String name) { super("enum " + theEnum + " is missing the constant " + name); enumType = theEnum; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Float.java gcc-4.6.0/libjava/classpath/java/lang/Float.java *** gcc-4.5.2/libjava/classpath/java/lang/Float.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Float.java Tue Jan 11 19:46:05 2011 *************** public final class Float extends Number *** 224,230 **** int bits = floatToIntBits(f); CPStringBuilder result = new CPStringBuilder(); ! if (bits < 0) result.append('-'); result.append("0x"); --- 224,230 ---- int bits = floatToIntBits(f); CPStringBuilder result = new CPStringBuilder(); ! if (bits < 0) result.append('-'); result.append("0x"); *************** public final class Float extends Number *** 611,631 **** { // handle the easy cases: if (x < y) ! return -1; if (x > y) ! return 1; // handle equality respecting that 0.0 != -0.0 (hence not using x == y): int ix = floatToRawIntBits(x); int iy = floatToRawIntBits(y); if (ix == iy) ! return 0; // handle NaNs: if (x != x) ! return (y != y) ? 0 : 1; else if (y != y) ! return -1; // handle +/- 0.0 return (ix < iy) ? -1 : 1; --- 611,631 ---- { // handle the easy cases: if (x < y) ! return -1; if (x > y) ! return 1; // handle equality respecting that 0.0 != -0.0 (hence not using x == y): int ix = floatToRawIntBits(x); int iy = floatToRawIntBits(y); if (ix == iy) ! return 0; // handle NaNs: if (x != x) ! return (y != y) ? 0 : 1; else if (y != y) ! return -1; // handle +/- 0.0 return (ix < iy) ? -1 : 1; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/IllegalArgumentException.java gcc-4.6.0/libjava/classpath/java/lang/IllegalArgumentException.java *** gcc-4.5.2/libjava/classpath/java/lang/IllegalArgumentException.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/lang/IllegalArgumentException.java Tue Jan 11 19:46:05 2011 *************** public class IllegalArgumentException ex *** 88,94 **** * automatically incorporated into the resulting detail message of * this exception. *

                    ! * * @param message the detail message, which should give the reason for * this exception being thrown. * @param cause the cause of this exception, or null if the cause --- 88,94 ---- * automatically incorporated into the resulting detail message of * this exception. *

                    ! * * @param message the detail message, which should give the reason for * this exception being thrown. * @param cause the cause of this exception, or null if the cause *************** public class IllegalArgumentException ex *** 116,122 **** * This makes this constructor very useful for simply wrapping another * exception. *

                    ! * * @param cause the cause of this exception, or null if the cause * is unknown. * @since 1.5 --- 116,122 ---- * This makes this constructor very useful for simply wrapping another * exception. *

                    ! * * @param cause the cause of this exception, or null if the cause * is unknown. * @since 1.5 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/IllegalStateException.java gcc-4.6.0/libjava/classpath/java/lang/IllegalStateException.java *** gcc-4.5.2/libjava/classpath/java/lang/IllegalStateException.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/lang/IllegalStateException.java Tue Jan 11 19:46:05 2011 *************** public class IllegalStateException exten *** 93,99 **** * automatically incorporated into the resulting detail message of * this exception. *

                    ! * * @param message the detail message, which should give the reason for * this exception being thrown. * @param cause the cause of this exception, or null if the cause --- 93,99 ---- * automatically incorporated into the resulting detail message of * this exception. *

                    ! * * @param message the detail message, which should give the reason for * this exception being thrown. * @param cause the cause of this exception, or null if the cause *************** public class IllegalStateException exten *** 121,127 **** * This makes this constructor very useful for simply wrapping another * exception. *

                    ! * * @param cause the cause of this exception, or null if the cause * is unknown. * @since 1.5 --- 121,127 ---- * This makes this constructor very useful for simply wrapping another * exception. *

                    ! * * @param cause the cause of this exception, or null if the cause * is unknown. * @since 1.5 *************** public class IllegalStateException exten *** 132,135 **** } } - --- 132,134 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/IndexOutOfBoundsException.java gcc-4.6.0/libjava/classpath/java/lang/IndexOutOfBoundsException.java *** gcc-4.5.2/libjava/classpath/java/lang/IndexOutOfBoundsException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/lang/IndexOutOfBoundsException.java Tue Jan 11 19:46:05 2011 *************** package java.lang; *** 41,47 **** /** * This exception can be thrown to indicate an attempt to access an * index which is out of bounds on objects like String, Array, or Vector. ! * Usually any negative integer less than or equal to -1 and positive * integer greater than or equal to the size of the object is an index * which would be out of bounds. * --- 41,47 ---- /** * This exception can be thrown to indicate an attempt to access an * index which is out of bounds on objects like String, Array, or Vector. ! * Usually any negative integer less than or equal to -1 and positive * integer greater than or equal to the size of the object is an index * which would be out of bounds. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Integer.java gcc-4.6.0/libjava/classpath/java/lang/Integer.java *** gcc-4.5.2/libjava/classpath/java/lang/Integer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Integer.java Tue Jan 11 19:46:05 2011 *************** public final class Integer extends Numbe *** 205,216 **** // When the value is MIN_VALUE, it overflows when made positive if (num < 0) ! { i = size = stringSize(MAX_VALUE, radix) + 2; buffer = new char[size]; ! buffer[--i] = digits[(int) (-(num + radix) % radix)]; ! num = -(num / radix); ! } else { i = size = stringSize(num, radix) + 1; --- 205,216 ---- // When the value is MIN_VALUE, it overflows when made positive if (num < 0) ! { i = size = stringSize(MAX_VALUE, radix) + 2; buffer = new char[size]; ! buffer[--i] = digits[(int) (-(num + radix) % radix)]; ! num = -(num / radix); ! } else { i = size = stringSize(num, radix) + 1; *************** public final class Integer extends Numbe *** 704,712 **** public static int reverseBytes(int val) { return ( ((val >> 24) & 0xff) ! | ((val >> 8) & 0xff00) ! | ((val << 8) & 0xff0000) ! | ((val << 24) & 0xff000000)); } /** --- 704,712 ---- public static int reverseBytes(int val) { return ( ((val >> 24) & 0xff) ! | ((val >> 8) & 0xff00) ! | ((val << 8) & 0xff0000) ! | ((val << 24) & 0xff000000)); } /** *************** public final class Integer extends Numbe *** 786,800 **** if (ch == '-') { if (len == 1) ! throw new NumberFormatException("pure '-'"); isNeg = true; ch = str.charAt(++index); } else if (ch == '+') { ! if (len == 1) ! throw new NumberFormatException("pure '+'"); ! ch = str.charAt(++index); } if (decode) { --- 786,800 ---- if (ch == '-') { if (len == 1) ! throw new NumberFormatException("pure '-'"); isNeg = true; ch = str.charAt(++index); } else if (ch == '+') { ! if (len == 1) ! throw new NumberFormatException("pure '+'"); ! ch = str.charAt(++index); } if (decode) { *************** public final class Integer extends Numbe *** 828,835 **** int val = 0; while (index < len) { ! if (val < 0 || val > max) ! throw new NumberFormatException("number overflow (pos=" + index + ") : " + str); ch = Character.digit(str.charAt(index++), radix); val = val * radix + ch; --- 828,835 ---- int val = 0; while (index < len) { ! if (val < 0 || val > max) ! throw new NumberFormatException("number overflow (pos=" + index + ") : " + str); ch = Character.digit(str.charAt(index++), radix); val = val * radix + ch; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Long.java gcc-4.6.0/libjava/classpath/java/lang/Long.java *** gcc-4.5.2/libjava/classpath/java/lang/Long.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Long.java Tue Jan 11 19:46:05 2011 *************** public final class Long extends Number i *** 817,824 **** long val = 0; while (index < len) { ! if (val < 0 || val > max) ! throw new NumberFormatException(); ch = Character.digit(str.charAt(index++), radix); val = val * radix + ch; --- 817,824 ---- long val = 0; while (index < len) { ! if (val < 0 || val > max) ! throw new NumberFormatException(); ch = Character.digit(str.charAt(index++), radix); val = val * radix + ch; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Math.java gcc-4.6.0/libjava/classpath/java/lang/Math.java *** gcc-4.5.2/libjava/classpath/java/lang/Math.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/lang/Math.java Tue Jan 11 19:46:05 2011 *************** public final class Math *** 709,715 **** * zero, then the original value is returned. The returned result is * within 1 ulp of the exact result. For a finite value, x, * the cube root of -x is equal to the negation of the cube root ! * of x. *

                    *

                    * For a square root, use sqrt. For other roots, use --- 709,715 ---- * zero, then the original value is returned. The returned result is * within 1 ulp of the exact result. For a finite value, x, * the cube root of -x is equal to the negation of the cube root ! * of x. *

                    *

                    * For a square root, use sqrt. For other roots, use *************** public final class Math *** 730,736 **** /** *

                    * Returns the hyperbolic cosine of the given value. For a value, ! * x, the hyperbolic cosine is (ex + * e-x)/2 * with e being Euler's number. The returned * result is within 2.5 ulps of the exact result. --- 730,736 ---- /** *

                    * Returns the hyperbolic cosine of the given value. For a value, ! * x, the hyperbolic cosine is (ex + * e-x)/2 * with e being Euler's number. The returned * result is within 2.5 ulps of the exact result. *************** public final class Math *** 740,746 **** * returned. For either infinity, positive infinity is returned. * The hyperbolic cosine of zero is 1.0. *

                    ! * * @param a the numeric argument * @return the hyperbolic cosine of a. * @since 1.5 --- 740,746 ---- * returned. For either infinity, positive infinity is returned. * The hyperbolic cosine of zero is 1.0. *

                    ! * * @param a the numeric argument * @return the hyperbolic cosine of a. * @since 1.5 *************** public final class Math *** 758,769 **** * 1 ulp of the exact result, and results are semi-monotonic. For finite * inputs, the returned value is greater than or equal to -1.0. Once * a result enters within half a ulp of this limit, the limit is returned. ! *

                    *

                    * For NaN, positive infinity and zero, the original value * is returned. Negative infinity returns a result of -1.0 (the limit). *

                    ! * * @param a the numeric argument * @return ea - 1 * @since 1.5 --- 758,769 ---- * 1 ulp of the exact result, and results are semi-monotonic. For finite * inputs, the returned value is greater than or equal to -1.0. Once * a result enters within half a ulp of this limit, the limit is returned. ! *

                    *

                    * For NaN, positive infinity and zero, the original value * is returned. Negative infinity returns a result of -1.0 (the limit). *

                    ! * * @param a the numeric argument * @return ea - 1 * @since 1.5 *************** public final class Math *** 785,791 **** * is positive infinity. Otherwise, if either argument is NaN, * then NaN is returned. *

                    ! * * @param a the first parameter. * @param b the second parameter. * @return the hypotenuse matching the supplied parameters. --- 785,791 ---- * is positive infinity. Otherwise, if either argument is NaN, * then NaN is returned. *

                    ! * * @param a the first parameter. * @param b the second parameter. * @return the hypotenuse matching the supplied parameters. *************** public final class Math *** 855,861 **** *
                  • If a is positive or negative zero, the result is the * same.
                  • *
                  ! * * @param a the numeric argument. * @return the sign of the argument. * @since 1.5. --- 855,861 ---- *
                • If a is positive or negative zero, the result is the * same.
                • *
                ! * * @param a the numeric argument. * @return the sign of the argument. * @since 1.5. *************** public final class Math *** 882,888 **** *
              • If a is positive or negative zero, the result is the * same.
              • *
              ! * * @param a the numeric argument. * @return the sign of the argument. * @since 1.5. --- 882,888 ---- *
            • If a is positive or negative zero, the result is the * same.
            • *
            ! * * @param a the numeric argument. * @return the sign of the argument. * @since 1.5. *************** public final class Math *** 901,907 **** /** *

            * Returns the hyperbolic sine of the given value. For a value, ! * x, the hyperbolic sine is (ex - * e-x)/2 * with e being Euler's number. The returned * result is within 2.5 ulps of the exact result. --- 901,907 ---- /** *

            * Returns the hyperbolic sine of the given value. For a value, ! * x, the hyperbolic sine is (ex - * e-x)/2 * with e being Euler's number. The returned * result is within 2.5 ulps of the exact result. *************** public final class Math *** 910,916 **** * If the supplied value is NaN, an infinity or a zero, then the * original value is returned. *

            ! * * @param a the numeric argument * @return the hyperbolic sine of a. * @since 1.5 --- 910,916 ---- * If the supplied value is NaN, an infinity or a zero, then the * original value is returned. *

            ! * * @param a the numeric argument * @return the hyperbolic sine of a. * @since 1.5 *************** public final class Math *** 923,929 **** /** *

            * Returns the hyperbolic tangent of the given value. For a value, ! * x, the hyperbolic tangent is (ex - * e-x)/(ex + e-x) * (i.e. sinh(a)/cosh(a)) * with e being Euler's number. The returned --- 923,929 ---- /** *

            * Returns the hyperbolic tangent of the given value. For a value, ! * x, the hyperbolic tangent is (ex - * e-x)/(ex + e-x) * (i.e. sinh(a)/cosh(a)) * with e being Euler's number. The returned *************** public final class Math *** 938,944 **** * value is returned. Positive infinity returns +1.0 and negative infinity * returns -1.0. *

            ! * * @param a the numeric argument * @return the hyperbolic tangent of a. * @since 1.5 --- 938,944 ---- * value is returned. Positive infinity returns +1.0 and negative infinity * returns -1.0. *

            ! * * @param a the numeric argument * @return the hyperbolic tangent of a. * @since 1.5 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/NoClassDefFoundError.java gcc-4.6.0/libjava/classpath/java/lang/NoClassDefFoundError.java *** gcc-4.5.2/libjava/classpath/java/lang/NoClassDefFoundError.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/lang/NoClassDefFoundError.java Tue Jan 11 19:46:05 2011 *************** package java.lang; *** 43,49 **** * Java Virtual Machine tries to load a class and no definition of the class * can be found. This could happen when using the new expression * or during a normal method call. The reason this would occur at runtime is ! * because the missing class definition existed when the currently executing * class was compiled, but now that definition cannot be found. * * @author Brian Jones --- 43,49 ---- * Java Virtual Machine tries to load a class and no definition of the class * can be found. This could happen when using the new expression * or during a normal method call. The reason this would occur at runtime is ! * because the missing class definition existed when the currently executing * class was compiled, but now that definition cannot be found. * * @author Brian Jones diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Object.java gcc-4.6.0/libjava/classpath/java/lang/Object.java *** gcc-4.5.2/libjava/classpath/java/lang/Object.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/Object.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Package.java gcc-4.6.0/libjava/classpath/java/lang/Package.java *** gcc-4.5.2/libjava/classpath/java/lang/Package.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/Package.java Tue Jan 11 19:46:05 2011 *************** public class Package *** 109,116 **** * that defines the Package. */ Package(String name, ! String specTitle, String specVendor, String specVersion, ! String implTitle, String implVendor, String implVersion, URL sealed) { this(name, specTitle, specVendor, specVersion, implTitle, implVendor, implVersion, sealed, null); --- 109,116 ---- * that defines the Package. */ Package(String name, ! String specTitle, String specVendor, String specVersion, ! String implTitle, String implVendor, String implVersion, URL sealed) { this(name, specTitle, specVendor, specVersion, implTitle, implVendor, implVersion, sealed, null); *************** public class Package *** 121,127 **** * the name of the package may be null. * There are no public constructors defined for Package; this is a package * local constructor that is used by java.lang.Classloader.definePackage(). ! * * @param name The name of the Package * @param specTitle The name of the specification * @param specVendor The name of the specification designer --- 121,127 ---- * the name of the package may be null. * There are no public constructors defined for Package; this is a package * local constructor that is used by java.lang.Classloader.definePackage(). ! * * @param name The name of the Package * @param specTitle The name of the specification * @param specVendor The name of the specification designer *************** public class Package *** 132,139 **** * @param sealed If sealed the origin of the package classes */ Package(String name, ! String specTitle, String specVendor, String specVersion, ! String implTitle, String implVendor, String implVersion, URL sealed, ClassLoader loader) { if (name == null) --- 132,139 ---- * @param sealed If sealed the origin of the package classes */ Package(String name, ! String specTitle, String specVendor, String specVersion, ! String implTitle, String implVendor, String implVersion, URL sealed, ClassLoader loader) { if (name == null) *************** public class Package *** 333,339 **** public String toString() { return ("package " + name + (specTitle == null ? "" : ", " + specTitle) ! + (specVersion == null ? "" : ", version " + specVersion)); } /** --- 333,339 ---- public String toString() { return ("package " + name + (specTitle == null ? "" : ", " + specTitle) ! + (specVersion == null ? "" : ", version " + specVersion)); } /** *************** public class Package *** 351,357 **** Annotation[] annotations = getAnnotations(); for (Annotation annotation : annotations) if (annotation.annotationType() == annotationClass) ! foundAnnotation = (A) annotation; return foundAnnotation; } --- 351,357 ---- Annotation[] annotations = getAnnotations(); for (Annotation annotation : annotations) if (annotation.annotationType() == annotationClass) ! foundAnnotation = (A) annotation; return foundAnnotation; } *************** public class Package *** 405,412 **** * @return true if an annotation exists for the specified type. * @since 1.5 */ ! public boolean isAnnotationPresent(Class ! annotationClass) { return getAnnotation(annotationClass) != null; } --- 405,412 ---- * @return true if an annotation exists for the specified type. * @since 1.5 */ ! public boolean isAnnotationPresent(Class ! annotationClass) { return getAnnotation(annotationClass) != null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/ProcessBuilder.java gcc-4.6.0/libjava/classpath/java/lang/ProcessBuilder.java *** gcc-4.5.2/libjava/classpath/java/lang/ProcessBuilder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/ProcessBuilder.java Tue Jan 11 19:46:05 2011 *************** public final class ProcessBuilder *** 204,210 **** * indicates that the default behaviour of using the * working directory of the current process should * be adopted. ! * * @return the working directory. */ public File directory() --- 204,210 ---- * indicates that the default behaviour of using the * working directory of the current process should * be adopted. ! * * @return the working directory. */ public File directory() *************** public final class ProcessBuilder *** 218,224 **** * which indicates the default value should be used. * The default is the working directory of the current * process. ! * * @param directory the new working directory. * @return a reference to this process builder. */ --- 218,224 ---- * which indicates the default value should be used. * The default is the working directory of the current * process. ! * * @param directory the new working directory. * @return a reference to this process builder. */ *************** public final class ProcessBuilder *** 252,258 **** * some may not allow any changes to the environment variables or * may prevent certain values being used. Attempts to do so will * throw an UnsupportedOperationException or ! * IllegalArgumentException, respectively. *

            *

            * Use of this method may require a security check for the --- 252,258 ---- * some may not allow any changes to the environment variables or * may prevent certain values being used. Attempts to do so will * throw an UnsupportedOperationException or ! * IllegalArgumentException, respectively. *

            *

            * Use of this method may require a security check for the diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Runtime.java gcc-4.6.0/libjava/classpath/java/lang/Runtime.java *** gcc-4.5.2/libjava/classpath/java/lang/Runtime.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/lang/Runtime.java Tue Jan 11 19:46:05 2011 *************** public class Runtime *** 93,103 **** { if (current != null) throw new InternalError("Attempt to recreate Runtime"); ! // If used by underlying VM this contains the directories where Classpath's own // native libraries are located. String bootPath = SystemProperties.getProperty("gnu.classpath.boot.library.path", ""); ! // If properly set by the user this contains the directories where the application's // native libraries are located. On operating systems where a LD_LIBRARY_PATH environment // variable is available a VM should preset java.library.path with value of this --- 93,103 ---- { if (current != null) throw new InternalError("Attempt to recreate Runtime"); ! // If used by underlying VM this contains the directories where Classpath's own // native libraries are located. String bootPath = SystemProperties.getProperty("gnu.classpath.boot.library.path", ""); ! // If properly set by the user this contains the directories where the application's // native libraries are located. On operating systems where a LD_LIBRARY_PATH environment // variable is available a VM should preset java.library.path with value of this *************** public class Runtime *** 109,130 **** StringTokenizer t1 = new StringTokenizer(bootPath, pathSep); StringTokenizer t2 = new StringTokenizer(path, pathSep); libpath = new String[t1.countTokens() + t2.countTokens()]; ! int i = 0; while(t1.hasMoreTokens()) { String prefix = t1.nextToken(); if (! prefix.endsWith(fileSep)) prefix += fileSep; ! libpath[i] = prefix; i++; } ! while(t2.hasMoreTokens()) { String prefix = t2.nextToken(); if (! prefix.endsWith(fileSep)) prefix += fileSep; ! libpath[i] = prefix; i++; } --- 109,130 ---- StringTokenizer t1 = new StringTokenizer(bootPath, pathSep); StringTokenizer t2 = new StringTokenizer(path, pathSep); libpath = new String[t1.countTokens() + t2.countTokens()]; ! int i = 0; while(t1.hasMoreTokens()) { String prefix = t1.nextToken(); if (! prefix.endsWith(fileSep)) prefix += fileSep; ! libpath[i] = prefix; i++; } ! while(t2.hasMoreTokens()) { String prefix = t2.nextToken(); if (! prefix.endsWith(fileSep)) prefix += fileSep; ! libpath[i] = prefix; i++; } *************** public class Runtime *** 185,192 **** // inside a join on our thread. exitSequence.interrupt(); // Shutdown hooks are still running, so we clear status to ! // make sure we don't halt. ! status = 0; } } --- 185,192 ---- // inside a join on our thread. exitSequence.interrupt(); // Shutdown hooks are still running, so we clear status to ! // make sure we don't halt. ! status = 0; } } *************** public class Runtime *** 214,220 **** * Any subsequent invocations will simply return false. * Note that it is package accessible so that VMRuntime can call it * when VM exit is not triggered by a call to Runtime.exit(). ! * * @return was the current thread the first one to call this method? */ boolean runShutdownHooks() --- 214,220 ---- * Any subsequent invocations will simply return false. * Note that it is package accessible so that VMRuntime can call it * when VM exit is not triggered by a call to Runtime.exit(). ! * * @return was the current thread the first one to call this method? */ boolean runShutdownHooks() *************** public class Runtime *** 286,293 **** shutdownHooks = null; } } ! // Run finalization on all finalizable objects (even if they are ! // still reachable). VMRuntime.runFinalizationForExit(); } return first; --- 286,293 ---- shutdownHooks = null; } } ! // Run finalization on all finalizable objects (even if they are ! // still reachable). VMRuntime.runFinalizationForExit(); } return first; *************** public class Runtime *** 750,764 **** String filename; if (loader != null && (filename = loader.findLibrary(libname)) != null) { ! if (loadLib(filename, loader) != 0) ! return; } else { ! filename = VMRuntime.mapLibraryName(libname); ! for (int i = 0; i < libpath.length; i++) ! if (loadLib(libpath[i] + filename, loader) != 0) ! return; } throw new UnsatisfiedLinkError("Native library `" + libname + "' not found (as file `" + filename + "') in gnu.classpath.boot.library.path and java.library.path"); --- 750,764 ---- String filename; if (loader != null && (filename = loader.findLibrary(libname)) != null) { ! if (loadLib(filename, loader) != 0) ! return; } else { ! filename = VMRuntime.mapLibraryName(libname); ! for (int i = 0; i < libpath.length; i++) ! if (loadLib(libpath[i] + filename, loader) != 0) ! return; } throw new UnsatisfiedLinkError("Native library `" + libname + "' not found (as file `" + filename + "') in gnu.classpath.boot.library.path and java.library.path"); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/SecurityException.java gcc-4.6.0/libjava/classpath/java/lang/SecurityException.java *** gcc-4.5.2/libjava/classpath/java/lang/SecurityException.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/lang/SecurityException.java Tue Jan 11 19:46:05 2011 *************** public class SecurityException extends R *** 87,93 **** * automatically incorporated into the resulting detail message of * this exception. *

            ! * * @param message the detail message, which should give the reason for * this exception being thrown. * @param cause the cause of this exception, or null if the cause --- 87,93 ---- * automatically incorporated into the resulting detail message of * this exception. *

            ! * * @param message the detail message, which should give the reason for * this exception being thrown. * @param cause the cause of this exception, or null if the cause *************** public class SecurityException extends R *** 115,121 **** * This makes this constructor very useful for simply wrapping another * exception. *

            ! * * @param cause the cause of this exception, or null if the cause * is unknown. * @since 1.5 --- 115,121 ---- * This makes this constructor very useful for simply wrapping another * exception. *

            ! * * @param cause the cause of this exception, or null if the cause * is unknown. * @since 1.5 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/SecurityManager.java gcc-4.6.0/libjava/classpath/java/lang/SecurityManager.java *** gcc-4.5.2/libjava/classpath/java/lang/SecurityManager.java Mon Jan 29 13:43:22 2007 --- gcc-4.6.0/libjava/classpath/java/lang/SecurityManager.java Tue Jan 11 19:46:05 2011 *************** public class SecurityManager *** 225,231 **** * are from system classes *
          17. A check of java.security.AllPermission succeeds.
          18. * ! * * @return the most recent non-system ClassLoader on the execution stack * @deprecated use {@link #checkPermission(Permission)} instead */ --- 225,231 ---- * are from system classes *
          19. A check of java.security.AllPermission succeeds.
          20. * ! * * @return the most recent non-system ClassLoader on the execution stack * @deprecated use {@link #checkPermission(Permission)} instead */ *************** public class SecurityManager *** 248,254 **** * are from system classes *
          21. A check of java.security.AllPermission succeeds.
          22. * ! * * @return the most recent non-system Class on the execution stack * @deprecated use {@link #checkPermission(Permission)} instead */ --- 248,254 ---- * are from system classes *
          23. A check of java.security.AllPermission succeeds.
          24. * ! * * @return the most recent non-system Class on the execution stack * @deprecated use {@link #checkPermission(Permission)} instead */ *************** public class SecurityManager *** 287,293 **** * are from system classes *
          25. A check of java.security.AllPermission succeeds.
          26. * ! * * @return the index of the most recent non-system Class on the stack * @deprecated use {@link #checkPermission(Permission)} instead */ --- 287,293 ---- * are from system classes *
          27. A check of java.security.AllPermission succeeds.
          28. * ! * * @return the index of the most recent non-system Class on the stack * @deprecated use {@link #checkPermission(Permission)} instead */ *************** public class SecurityManager *** 432,439 **** */ public void checkAccess(Thread thread) { ! if (thread.getThreadGroup() != null ! && thread.getThreadGroup().parent == null) checkPermission(new RuntimePermission("modifyThread")); } --- 432,439 ---- */ public void checkAccess(Thread thread) { ! if (thread.getThreadGroup() != null ! && thread.getThreadGroup().parent == null) checkPermission(new RuntimePermission("modifyThread")); } *************** public class SecurityManager *** 1062,1071 **** String list = (String)AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() { ! return Security.getProperty(restriction); ! } }); if (list == null || list.equals("")) --- 1062,1071 ---- String list = (String)AccessController.doPrivileged(new PrivilegedAction() { ! public Object run() { ! return Security.getProperty(restriction); ! } }); if (list == null || list.equals("")) *************** public class SecurityManager *** 1076,1087 **** StringTokenizer st = new StringTokenizer(list, ","); while (st.hasMoreTokens()) { ! if (packageNamePlusDot.startsWith(st.nextToken())) ! { ! Permission p = new RuntimePermission(permission + packageName); ! checkPermission(p); ! return; ! } } } } --- 1076,1087 ---- StringTokenizer st = new StringTokenizer(list, ","); while (st.hasMoreTokens()) { ! if (packageNamePlusDot.startsWith(st.nextToken())) ! { ! Permission p = new RuntimePermission(permission + packageName); ! checkPermission(p); ! return; ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/StackTraceElement.java gcc-4.6.0/libjava/classpath/java/lang/StackTraceElement.java *** gcc-4.5.2/libjava/classpath/java/lang/StackTraceElement.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/lang/StackTraceElement.java Tue Jan 11 19:46:05 2011 *************** public final class StackTraceElement imp *** 119,125 **** * @param fileName the name of the file, null if unknown * @param lineNumber the line in the file, negative if unknown, or -2 * if this method is native ! * * @since 1.5 */ public StackTraceElement(String className, String methodName, String fileName, --- 119,125 ---- * @param fileName the name of the file, null if unknown * @param lineNumber the line in the file, negative if unknown, or -2 * if this method is native ! * * @since 1.5 */ public StackTraceElement(String className, String methodName, String fileName, diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/StrictMath.java gcc-4.6.0/libjava/classpath/java/lang/StrictMath.java *** gcc-4.5.2/libjava/classpath/java/lang/StrictMath.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/lang/StrictMath.java Tue Jan 11 19:46:05 2011 *************** public final strictfp class StrictMath *** 658,669 **** // 1. Replace x by |x| (sinh(-x) = -sinh(x)). // 2. // E + E/(E+1) ! // 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x) ! // 2 // // 22 <= x <= lnovft : sinh(x) := exp(x)/2 // lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2) ! // ln2ovft < x : sinh(x) := +inf (overflow) double t, w, h; --- 658,669 ---- // 1. Replace x by |x| (sinh(-x) = -sinh(x)). // 2. // E + E/(E+1) ! // 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x) ! // 2 // // 22 <= x <= lnovft : sinh(x) := exp(x)/2 // lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2) ! // ln2ovft < x : sinh(x) := +inf (overflow) double t, w, h; *************** public final strictfp class StrictMath *** 691,705 **** // |x| in [0, 22], return sign(x) * 0.5 * (E+E/(E+1)) if (h_bits < 0x40360000L) // |x| < 22 { ! if (h_bits < 0x3e300000L) // |x| < 2^-28 ! return x; // for tiny arguments return x ! t = expm1(abs(x)); ! if (h_bits < 0x3ff00000L) ! return h * (2.0 * t - t * t / (t + 1.0)); ! return h * (t + t / (t + 1.0)); } // |x| in [22, log(Double.MAX_VALUE)], return 0.5 * exp(|x|) --- 691,705 ---- // |x| in [0, 22], return sign(x) * 0.5 * (E+E/(E+1)) if (h_bits < 0x40360000L) // |x| < 22 { ! if (h_bits < 0x3e300000L) // |x| < 2^-28 ! return x; // for tiny arguments return x ! t = expm1(abs(x)); ! if (h_bits < 0x3ff00000L) ! return h * (2.0 * t - t * t / (t + 1.0)); ! return h * (t + t / (t + 1.0)); } // |x| in [22, log(Double.MAX_VALUE)], return 0.5 * exp(|x|) *************** public final strictfp class StrictMath *** 708,719 **** // |x| in [log(Double.MAX_VALUE), overflowthreshold] if ((h_bits < 0x408633ceL) ! || ((h_bits == 0x408633ceL) && (l_bits <= 0x8fb9f87dL))) { ! w = exp(0.5 * abs(x)); ! t = h * w; ! return t * w; } // |x| > overflowthershold --- 708,719 ---- // |x| in [log(Double.MAX_VALUE), overflowthreshold] if ((h_bits < 0x408633ceL) ! || ((h_bits == 0x408633ceL) && (l_bits <= 0x8fb9f87dL))) { ! w = exp(0.5 * abs(x)); ! t = h * w; ! return t * w; } // |x| > overflowthershold *************** public final strictfp class StrictMath *** 749,760 **** // 0 <= x <= ln2/2 : cosh(x) := 1 + ------------------- // 2*exp(x) // ! // exp(x) + 1/exp(x) // ln2/2 <= x <= 22 : cosh(x) := ------------------ ! // 2 // 22 <= x <= lnovft : cosh(x) := exp(x)/2 // lnovft <= x <= ln2ovft: cosh(x) := exp(x/2)/2 * exp(x/2) ! // ln2ovft < x : cosh(x) := +inf (overflow) double t, w; long bits; --- 749,760 ---- // 0 <= x <= ln2/2 : cosh(x) := 1 + ------------------- // 2*exp(x) // ! // exp(x) + 1/exp(x) // ln2/2 <= x <= 22 : cosh(x) := ------------------ ! // 2 // 22 <= x <= lnovft : cosh(x) := exp(x)/2 // lnovft <= x <= ln2ovft: cosh(x) := exp(x/2)/2 * exp(x/2) ! // ln2ovft < x : cosh(x) := +inf (overflow) double t, w; long bits; *************** public final strictfp class StrictMath *** 776,797 **** // |x| in [0, 0.5 * ln(2)], return 1 + expm1(|x|)^2 / (2 * exp(|x|)) if (hx < 0x3fd62e43L) { ! t = expm1(abs(x)); ! w = 1.0 + t; ! // for tiny arguments return 1. ! if (hx < 0x3c800000L) ! return w; ! return 1.0 + (t * t) / (w + w); } // |x| in [0.5 * ln(2), 22], return exp(|x|)/2 + 1 / (2 * exp(|x|)) if (hx < 0x40360000L) { ! t = exp(abs(x)); ! return 0.5 * t + 0.5 / t; } // |x| in [22, log(Double.MAX_VALUE)], return 0.5 * exp(|x|) --- 776,797 ---- // |x| in [0, 0.5 * ln(2)], return 1 + expm1(|x|)^2 / (2 * exp(|x|)) if (hx < 0x3fd62e43L) { ! t = expm1(abs(x)); ! w = 1.0 + t; ! // for tiny arguments return 1. ! if (hx < 0x3c800000L) ! return w; ! return 1.0 + (t * t) / (w + w); } // |x| in [0.5 * ln(2), 22], return exp(|x|)/2 + 1 / (2 * exp(|x|)) if (hx < 0x40360000L) { ! t = exp(abs(x)); ! return 0.5 * t + 0.5 / t; } // |x| in [22, log(Double.MAX_VALUE)], return 0.5 * exp(|x|) *************** public final strictfp class StrictMath *** 801,812 **** // |x| in [log(Double.MAX_VALUE), overflowthreshold], // return exp(x/2)/2 * exp(x/2) if ((hx < 0x408633ceL) ! || ((hx == 0x408633ceL) && (lx <= 0x8fb9f87dL))) { ! w = exp(0.5 * abs(x)); ! t = 0.5 * w; ! return t * w; } // |x| > overflowthreshold --- 801,812 ---- // |x| in [log(Double.MAX_VALUE), overflowthreshold], // return exp(x/2)/2 * exp(x/2) if ((hx < 0x408633ceL) ! || ((hx == 0x408633ceL) && (lx <= 0x8fb9f87dL))) { ! w = exp(0.5 * abs(x)); ! t = 0.5 * w; ! return t * w; } // |x| > overflowthreshold *************** public final strictfp class StrictMath *** 862,883 **** if (h_bits < 0x40360000L) // |x| < 22 { ! if (h_bits < 0x3c800000L) // |x| < 2^-55 ! return x * (1.0 + x); ! if (h_bits >= 0x3ff00000L) // |x| >= 1 ! { ! t = expm1(2.0 * abs(x)); ! z = 1.0 - 2.0 / (t + 2.0); ! } ! else // |x| < 1 ! { ! t = expm1(-2.0 * abs(x)); ! z = -t / (t + 2.0); ! } } else // |x| >= 22 ! z = 1.0; return (x >= 0) ? z : -z; } --- 862,883 ---- if (h_bits < 0x40360000L) // |x| < 22 { ! if (h_bits < 0x3c800000L) // |x| < 2^-55 ! return x * (1.0 + x); ! if (h_bits >= 0x3ff00000L) // |x| >= 1 ! { ! t = expm1(2.0 * abs(x)); ! z = 1.0 - 2.0 / (t + 2.0); ! } ! else // |x| < 1 ! { ! t = expm1(-2.0 * abs(x)); ! z = -t / (t + 2.0); ! } } else // |x| >= 22 ! z = 1.0; return (x >= 0) ? z : -z; } *************** public final strictfp class StrictMath *** 909,915 **** private static double buildDouble(long lowDWord, long highDWord) { return Double.longBitsToDouble(((highDWord & 0xffffffffL) << 32) ! | (lowDWord & 0xffffffffL)); } /** --- 909,915 ---- private static double buildDouble(long lowDWord, long highDWord) { return Double.longBitsToDouble(((highDWord & 0xffffffffL) << 32) ! | (lowDWord & 0xffffffffL)); } /** *************** public final strictfp class StrictMath *** 960,985 **** if (bits < 0x0010000000000000L) // subnormal number { ! t = TWO_54; ! t *= x; ! // __HI(t)=__HI(t)/3+B2; ! bits = Double.doubleToLongBits(t); ! h = getHighDWord(bits); ! l = getLowDWord(bits); ! h = h / 3 + CBRT_B2; ! t = buildDouble(l, h); } else { ! // __HI(t)=__HI(x)/3+B1; ! h = getHighDWord(bits); ! l = 0; ! h = h / 3 + CBRT_B1; ! t = buildDouble(l, h); } // new cbrt to 23 bits --- 960,985 ---- if (bits < 0x0010000000000000L) // subnormal number { ! t = TWO_54; ! t *= x; ! // __HI(t)=__HI(t)/3+B2; ! bits = Double.doubleToLongBits(t); ! h = getHighDWord(bits); ! l = getLowDWord(bits); ! h = h / 3 + CBRT_B2; ! t = buildDouble(l, h); } else { ! // __HI(t)=__HI(x)/3+B1; ! h = getHighDWord(bits); ! l = 0; ! h = h / 3 + CBRT_B1; ! t = buildDouble(l, h); } // new cbrt to 23 bits *************** public final strictfp class StrictMath *** 998,1004 **** t = buildDouble(l, h); // one step newton iteration to 53 bits with error less than 0.667 ulps ! s = t * t; // t * t is exact r = x / s; w = t + t; r = (r - t) / (w + r); // r - t is exact --- 998,1004 ---- t = buildDouble(l, h); // one step newton iteration to 53 bits with error less than 0.667 ulps ! s = t * t; // t * t is exact r = x / s; w = t + t; r = (r - t) / (w + r); // r - t is exact *************** public final strictfp class StrictMath *** 1087,1161 **** { // Method // 1. Argument reduction: ! // Given x, find r and integer k such that // // x = k * ln(2) + r, |r| <= 0.5 * ln(2) // // Here a correction term c will be computed to compensate ! // the error in r when rounded to a floating-point number. // // 2. Approximating expm1(r) by a special rational function on ! // the interval [0, 0.5 * ln(2)]: ! // Since ! // r*(exp(r)+1)/(exp(r)-1) = 2 + r^2/6 - r^4/360 + ... ! // we define R1(r*r) by ! // r*(exp(r)+1)/(exp(r)-1) = 2 + r^2/6 * R1(r*r) ! // That is, ! // R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r) ! // = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r)) ! // = 1 - r^2/60 + r^4/2520 - r^6/100800 + ... // We use a special Remes algorithm on [0, 0.347] to generate ! // a polynomial of degree 5 in r*r to approximate R1. The ! // maximum error of this polynomial approximation is bounded ! // by 2**-61. In other words, ! // R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5 ! // where Q1 = -1.6666666666666567384E-2, ! // Q2 = 3.9682539681370365873E-4, ! // Q3 = -9.9206344733435987357E-6, ! // Q4 = 2.5051361420808517002E-7, ! // Q5 = -6.2843505682382617102E-9; ! // (where z=r*r, and Q1 to Q5 are called EXPM1_Qx in the source) ! // with error bounded by ! // | 5 | -61 ! // | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2 ! // | | // ! // expm1(r) = exp(r)-1 is then computed by the following ! // specific way which minimize the accumulation rounding error: ! // 2 3 ! // r r [ 3 - (R1 + R1*r/2) ] ! // expm1(r) = r + --- + --- * [--------------------] ! // 2 2 [ 6 - r*(3 - R1*r/2) ] // ! // To compensate the error in the argument reduction, we use ! // expm1(r+c) = expm1(r) + c + expm1(r)*c ! // ~ expm1(r) + c + r*c ! // Thus c+r*c will be added in as the correction terms for ! // expm1(r+c). Now rearrange the term to avoid optimization ! // screw up: ! // ( 2 2 ) ! // ({ ( r [ R1 - (3 - R1*r/2) ] ) } r ) ! // expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- ) ! // ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 ) // ( ) // ! // = r - E // 3. Scale back to obtain expm1(x): ! // From step 1, we have ! // expm1(x) = either 2^k*[expm1(r)+1] - 1 ! // = or 2^k*[expm1(r) + (1-2^-k)] // 4. Implementation notes: ! // (A). To save one multiplication, we scale the coefficient Qi ! // to Qi*2^i, and replace z by (x^2)/2. ! // (B). To achieve maximum accuracy, we compute expm1(x) by ! // (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf) ! // (ii) if k=0, return r-E ! // (iii) if k=-1, return 0.5*(r-E)-0.5 ! // (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E) ! // else return 1.0+2.0*(r-E); ! // (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1) ! // (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else ! // (vii) return 2^k(1-((E+2^-k)-r)) boolean negative = (x < 0); double y, hi, lo, c, t, e, hxs, hfx, r1; --- 1087,1161 ---- { // Method // 1. Argument reduction: ! // Given x, find r and integer k such that // // x = k * ln(2) + r, |r| <= 0.5 * ln(2) // // Here a correction term c will be computed to compensate ! // the error in r when rounded to a floating-point number. // // 2. Approximating expm1(r) by a special rational function on ! // the interval [0, 0.5 * ln(2)]: ! // Since ! // r*(exp(r)+1)/(exp(r)-1) = 2 + r^2/6 - r^4/360 + ... ! // we define R1(r*r) by ! // r*(exp(r)+1)/(exp(r)-1) = 2 + r^2/6 * R1(r*r) ! // That is, ! // R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r) ! // = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r)) ! // = 1 - r^2/60 + r^4/2520 - r^6/100800 + ... // We use a special Remes algorithm on [0, 0.347] to generate ! // a polynomial of degree 5 in r*r to approximate R1. The ! // maximum error of this polynomial approximation is bounded ! // by 2**-61. In other words, ! // R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5 ! // where Q1 = -1.6666666666666567384E-2, ! // Q2 = 3.9682539681370365873E-4, ! // Q3 = -9.9206344733435987357E-6, ! // Q4 = 2.5051361420808517002E-7, ! // Q5 = -6.2843505682382617102E-9; ! // (where z=r*r, and Q1 to Q5 are called EXPM1_Qx in the source) ! // with error bounded by ! // | 5 | -61 ! // | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2 ! // | | // ! // expm1(r) = exp(r)-1 is then computed by the following ! // specific way which minimize the accumulation rounding error: ! // 2 3 ! // r r [ 3 - (R1 + R1*r/2) ] ! // expm1(r) = r + --- + --- * [--------------------] ! // 2 2 [ 6 - r*(3 - R1*r/2) ] // ! // To compensate the error in the argument reduction, we use ! // expm1(r+c) = expm1(r) + c + expm1(r)*c ! // ~ expm1(r) + c + r*c ! // Thus c+r*c will be added in as the correction terms for ! // expm1(r+c). Now rearrange the term to avoid optimization ! // screw up: ! // ( 2 2 ) ! // ({ ( r [ R1 - (3 - R1*r/2) ] ) } r ) ! // expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- ) ! // ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 ) // ( ) // ! // = r - E // 3. Scale back to obtain expm1(x): ! // From step 1, we have ! // expm1(x) = either 2^k*[expm1(r)+1] - 1 ! // = or 2^k*[expm1(r) + (1-2^-k)] // 4. Implementation notes: ! // (A). To save one multiplication, we scale the coefficient Qi ! // to Qi*2^i, and replace z by (x^2)/2. ! // (B). To achieve maximum accuracy, we compute expm1(x) by ! // (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf) ! // (ii) if k=0, return r-E ! // (iii) if k=-1, return 0.5*(r-E)-0.5 ! // (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E) ! // else return 1.0+2.0*(r-E); ! // (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1) ! // (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else ! // (vii) return 2^k(1-((E+2^-k)-r)) boolean negative = (x < 0); double y, hi, lo, c, t, e, hxs, hfx, r1; *************** public final strictfp class StrictMath *** 1175,1226 **** // handle special cases and large arguments if (h_bits >= 0x4043687aL) // if |x| >= 56 * ln(2) { ! if (h_bits >= 0x40862e42L) // if |x| >= EXP_LIMIT_H ! { ! if (h_bits >= 0x7ff00000L) ! { ! if (((h_bits & 0x000fffffL) | (l_bits & 0xffffffffL)) != 0) ! return x; // exp(NaN) = NaN ! else ! return negative ? -1.0 : x; // exp({+-inf}) = {+inf, -1} ! } ! if (x > EXP_LIMIT_H) ! return Double.POSITIVE_INFINITY; // overflow ! } ! if (negative) // x <= -56 * ln(2) ! return -1.0; } // argument reduction if (h_bits > 0x3fd62e42L) // |x| > 0.5 * ln(2) { ! if (h_bits < 0x3ff0a2b2L) // |x| < 1.5 * ln(2) ! { ! if (negative) ! { ! hi = x + LN2_H; ! lo = -LN2_L; ! k = -1; ! } ! else ! { ! hi = x - LN2_H; ! lo = LN2_L; ! k = 1; ! } ! } ! else ! { ! k = (int) (INV_LN2 * x + (negative ? - 0.5 : 0.5)); ! t = k; ! hi = x - t * LN2_H; ! lo = t * LN2_L; ! } ! x = hi - lo; ! c = (hi - x) - lo; } else if (h_bits < 0x3c900000L) // |x| < 2^-54 return x --- 1175,1226 ---- // handle special cases and large arguments if (h_bits >= 0x4043687aL) // if |x| >= 56 * ln(2) { ! if (h_bits >= 0x40862e42L) // if |x| >= EXP_LIMIT_H ! { ! if (h_bits >= 0x7ff00000L) ! { ! if (((h_bits & 0x000fffffL) | (l_bits & 0xffffffffL)) != 0) ! return x; // exp(NaN) = NaN ! else ! return negative ? -1.0 : x; // exp({+-inf}) = {+inf, -1} ! } ! if (x > EXP_LIMIT_H) ! return Double.POSITIVE_INFINITY; // overflow ! } ! if (negative) // x <= -56 * ln(2) ! return -1.0; } // argument reduction if (h_bits > 0x3fd62e42L) // |x| > 0.5 * ln(2) { ! if (h_bits < 0x3ff0a2b2L) // |x| < 1.5 * ln(2) ! { ! if (negative) ! { ! hi = x + LN2_H; ! lo = -LN2_L; ! k = -1; ! } ! else ! { ! hi = x - LN2_H; ! lo = LN2_L; ! k = 1; ! } ! } ! else ! { ! k = (int) (INV_LN2 * x + (negative ? - 0.5 : 0.5)); ! t = k; ! hi = x - t * LN2_H; ! lo = t * LN2_L; ! } ! x = hi - lo; ! c = (hi - x) - lo; } else if (h_bits < 0x3c900000L) // |x| < 2^-54 return x *************** public final strictfp class StrictMath *** 1232,1316 **** hfx = 0.5 * x; hxs = x * hfx; r1 = 1.0 + hxs * (EXPM1_Q1 ! + hxs * (EXPM1_Q2 + hxs * (EXPM1_Q3 ! + hxs * (EXPM1_Q4 ! + hxs * EXPM1_Q5)))); t = 3.0 - r1 * hfx; e = hxs * ((r1 - t) / (6.0 - x * t)); if (k == 0) { ! return x - (x * e - hxs); // c == 0 } else { ! e = x * (e - c) - c; ! e -= hxs; ! if (k == -1) ! return 0.5 * (x - e) - 0.5; ! if (k == 1) ! { ! if (x < - 0.25) ! return -2.0 * (e - (x + 0.5)); ! else ! return 1.0 + 2.0 * (x - e); ! } ! if (k <= -2 || k > 56) // sufficient to return exp(x) - 1 ! { ! y = 1.0 - (e - x); ! bits = Double.doubleToLongBits(y); ! h_bits = getHighDWord(bits); ! l_bits = getLowDWord(bits); ! h_bits += (k << 20); // add k to y's exponent ! y = buildDouble(l_bits, h_bits); ! return y - 1.0; ! } ! t = 1.0; ! if (k < 20) ! { ! bits = Double.doubleToLongBits(t); ! h_bits = 0x3ff00000L - (0x00200000L >> k); ! l_bits = getLowDWord(bits); ! t = buildDouble(l_bits, h_bits); // t = 1 - 2^(-k) ! y = t - (e - x); ! bits = Double.doubleToLongBits(y); ! h_bits = getHighDWord(bits); ! l_bits = getLowDWord(bits); ! h_bits += (k << 20); // add k to y's exponent ! y = buildDouble(l_bits, h_bits); ! } ! else ! { ! bits = Double.doubleToLongBits(t); ! h_bits = (0x000003ffL - k) << 20; ! l_bits = getLowDWord(bits); ! t = buildDouble(l_bits, h_bits); // t = 2^(-k) ! y = x - (e + t); ! y += 1.0; ! bits = Double.doubleToLongBits(y); ! h_bits = getHighDWord(bits); ! l_bits = getLowDWord(bits); ! h_bits += (k << 20); // add k to y's exponent ! y = buildDouble(l_bits, h_bits); ! } } return y; --- 1232,1316 ---- hfx = 0.5 * x; hxs = x * hfx; r1 = 1.0 + hxs * (EXPM1_Q1 ! + hxs * (EXPM1_Q2 + hxs * (EXPM1_Q3 ! + hxs * (EXPM1_Q4 ! + hxs * EXPM1_Q5)))); t = 3.0 - r1 * hfx; e = hxs * ((r1 - t) / (6.0 - x * t)); if (k == 0) { ! return x - (x * e - hxs); // c == 0 } else { ! e = x * (e - c) - c; ! e -= hxs; ! if (k == -1) ! return 0.5 * (x - e) - 0.5; ! if (k == 1) ! { ! if (x < - 0.25) ! return -2.0 * (e - (x + 0.5)); ! else ! return 1.0 + 2.0 * (x - e); ! } ! if (k <= -2 || k > 56) // sufficient to return exp(x) - 1 ! { ! y = 1.0 - (e - x); ! bits = Double.doubleToLongBits(y); ! h_bits = getHighDWord(bits); ! l_bits = getLowDWord(bits); ! h_bits += (k << 20); // add k to y's exponent ! y = buildDouble(l_bits, h_bits); ! return y - 1.0; ! } ! t = 1.0; ! if (k < 20) ! { ! bits = Double.doubleToLongBits(t); ! h_bits = 0x3ff00000L - (0x00200000L >> k); ! l_bits = getLowDWord(bits); ! t = buildDouble(l_bits, h_bits); // t = 1 - 2^(-k) ! y = t - (e - x); ! bits = Double.doubleToLongBits(y); ! h_bits = getHighDWord(bits); ! l_bits = getLowDWord(bits); ! h_bits += (k << 20); // add k to y's exponent ! y = buildDouble(l_bits, h_bits); ! } ! else ! { ! bits = Double.doubleToLongBits(t); ! h_bits = (0x000003ffL - k) << 20; ! l_bits = getLowDWord(bits); ! t = buildDouble(l_bits, h_bits); // t = 2^(-k) ! y = x - (e + t); ! y += 1.0; ! bits = Double.doubleToLongBits(y); ! h_bits = getHighDWord(bits); ! l_bits = getLowDWord(bits); ! h_bits += (k << 20); // add k to y's exponent ! y = buildDouble(l_bits, h_bits); ! } } return y; *************** public final strictfp class StrictMath *** 2504,2510 **** *
          29. If a is positive or negative zero, the result is the * same.
          30. * ! * * @param a the numeric argument. * @return the sign of the argument. * @since 1.5. --- 2504,2510 ---- *
          31. If a is positive or negative zero, the result is the * same.
          32. * ! * * @param a the numeric argument. * @return the sign of the argument. * @since 1.5. *************** public final strictfp class StrictMath *** 2526,2532 **** *
          33. If a is positive or negative zero, the result is the * same.
          34. * ! * * @param a the numeric argument. * @return the sign of the argument. * @since 1.5. --- 2526,2532 ---- *
          35. If a is positive or negative zero, the result is the * same.
          36. * ! * * @param a the numeric argument. * @return the sign of the argument. * @since 1.5. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/String.java gcc-4.6.0/libjava/classpath/java/lang/String.java *** gcc-4.5.2/libjava/classpath/java/lang/String.java Tue Jan 6 22:44:05 2009 --- gcc-4.6.0/libjava/classpath/java/lang/String.java Tue Jan 11 19:46:05 2011 *************** public final class String *** 107,113 **** * @see CharData#UPPER_EXPAND */ private static final char[] upperExpand ! = zeroBasedStringValue(CharData.UPPER_EXPAND); /** * Stores unicode multi-character uppercase special casing table. --- 107,113 ---- * @see CharData#UPPER_EXPAND */ private static final char[] upperExpand ! = zeroBasedStringValue(CharData.UPPER_EXPAND); /** * Stores unicode multi-character uppercase special casing table. *************** public final class String *** 115,122 **** * @see CharData#UPPER_SPECIAL */ private static final char[] upperSpecial ! = zeroBasedStringValue(CharData.UPPER_SPECIAL); ! /** * Characters which make up the String. * Package access is granted for use by StringBuffer. --- 115,122 ---- * @see CharData#UPPER_SPECIAL */ private static final char[] upperSpecial ! = zeroBasedStringValue(CharData.UPPER_SPECIAL); ! /** * Characters which make up the String. * Package access is granted for use by StringBuffer. *************** public final class String *** 281,287 **** // equivalent to: offset + count < 0 || offset + count > ascii.length if (ascii.length - offset < count) throw new StringIndexOutOfBoundsException("offset + count: " ! + (offset + count)); value = new char[count]; this.offset = 0; this.count = count; --- 281,287 ---- // equivalent to: offset + count < 0 || offset + count > ascii.length if (ascii.length - offset < count) throw new StringIndexOutOfBoundsException("offset + count: " ! + (offset + count)); value = new char[count]; this.offset = 0; this.count = count; *************** public final class String *** 355,372 **** { try { ! return Charset.forName(encoding); } catch(IllegalCharsetNameException e) { ! throw new UnsupportedEncodingException("Encoding: "+encoding+ ! " not found."); } catch(UnsupportedCharsetException e) { ! throw new UnsupportedEncodingException("Encoding: "+encoding+ ! " not found."); ! } } /** --- 355,372 ---- { try { ! return Charset.forName(encoding); } catch(IllegalCharsetNameException e) { ! throw new UnsupportedEncodingException("Encoding: "+encoding+ ! " not found."); } catch(UnsupportedCharsetException e) { ! throw new UnsupportedEncodingException("Encoding: "+encoding+ ! " not found."); ! } } /** *************** public final class String *** 397,427 **** // equivalent to: offset + count < 0 || offset + count > data.length if (data.length - offset < count) throw new StringIndexOutOfBoundsException("offset + count: " ! + (offset + count)); ! try { CharsetDecoder csd = encoding.newDecoder(); ! csd.onMalformedInput(CodingErrorAction.REPLACE); ! csd.onUnmappableCharacter(CodingErrorAction.REPLACE); ! CharBuffer cbuf = csd.decode(ByteBuffer.wrap(data, offset, count)); ! if(cbuf.hasArray()) ! { ! value = cbuf.array(); ! this.offset = cbuf.position(); ! this.count = cbuf.remaining(); ! } else { ! // Doubt this will happen. But just in case. ! value = new char[cbuf.remaining()]; ! cbuf.get(value); ! this.offset = 0; ! this.count = value.length; ! } ! } catch(CharacterCodingException e) { ! // This shouldn't ever happen. ! throw (InternalError) new InternalError().initCause(e); ! } } /** --- 397,427 ---- // equivalent to: offset + count < 0 || offset + count > data.length if (data.length - offset < count) throw new StringIndexOutOfBoundsException("offset + count: " ! + (offset + count)); ! try { CharsetDecoder csd = encoding.newDecoder(); ! csd.onMalformedInput(CodingErrorAction.REPLACE); ! csd.onUnmappableCharacter(CodingErrorAction.REPLACE); ! CharBuffer cbuf = csd.decode(ByteBuffer.wrap(data, offset, count)); ! if(cbuf.hasArray()) ! { ! value = cbuf.array(); ! this.offset = cbuf.position(); ! this.count = cbuf.remaining(); ! } else { ! // Doubt this will happen. But just in case. ! value = new char[cbuf.remaining()]; ! cbuf.get(value); ! this.offset = 0; ! this.count = value.length; ! } ! } catch(CharacterCodingException e) { ! // This shouldn't ever happen. ! throw (InternalError) new InternalError().initCause(e); ! } } /** *************** public final class String *** 494,532 **** // equivalent to: offset + count < 0 || offset + count > data.length if (data.length - offset < count) throw new StringIndexOutOfBoundsException("offset + count: " ! + (offset + count)); int o, c; char[] v; String encoding; ! try ! { ! encoding = System.getProperty("file.encoding"); ! CharsetDecoder csd = Charset.forName(encoding).newDecoder(); ! csd.onMalformedInput(CodingErrorAction.REPLACE); ! csd.onUnmappableCharacter(CodingErrorAction.REPLACE); ! CharBuffer cbuf = csd.decode(ByteBuffer.wrap(data, offset, count)); ! if(cbuf.hasArray()) ! { v = cbuf.array(); ! o = cbuf.position(); ! c = cbuf.remaining(); ! } else { ! // Doubt this will happen. But just in case. ! v = new char[cbuf.remaining()]; ! cbuf.get(v); ! o = 0; ! c = v.length; ! } ! } catch(Exception ex){ ! // If anything goes wrong (System property not set, ! // NIO provider not available, etc) ! // Default to the 'safe' encoding ISO8859_1 ! v = new char[count]; ! o = 0; ! c = count; ! for (int i=0;i data.length if (data.length - offset < count) throw new StringIndexOutOfBoundsException("offset + count: " ! + (offset + count)); int o, c; char[] v; String encoding; ! try ! { ! encoding = System.getProperty("file.encoding"); ! CharsetDecoder csd = Charset.forName(encoding).newDecoder(); ! csd.onMalformedInput(CodingErrorAction.REPLACE); ! csd.onUnmappableCharacter(CodingErrorAction.REPLACE); ! CharBuffer cbuf = csd.decode(ByteBuffer.wrap(data, offset, count)); ! if(cbuf.hasArray()) ! { v = cbuf.array(); ! o = cbuf.position(); ! c = cbuf.remaining(); ! } else { ! // Doubt this will happen. But just in case. ! v = new char[cbuf.remaining()]; ! cbuf.get(v); ! o = 0; ! c = v.length; ! } ! } catch(Exception ex){ ! // If anything goes wrong (System property not set, ! // NIO provider not available, etc) ! // Default to the 'safe' encoding ISO8859_1 ! v = new char[count]; ! o = 0; ! c = count; ! for (int i=0;i data.length if (data.length - offset < count) throw new StringIndexOutOfBoundsException("offset + count: " ! + (offset + count)); if (dont_copy) { value = data; --- 610,616 ---- // equivalent to: offset + count < 0 || offset + count > data.length if (data.length - offset < count) throw new StringIndexOutOfBoundsException("offset + count: " ! + (offset + count)); if (dont_copy) { value = data; *************** public final class String *** 631,637 **** * @param codePoints the entire array of code points * @param offset the start of the subarray * @param count the length of the subarray ! * * @throws IllegalArgumentException if an invalid code point is found * in the codePoints array * @throws IndexOutOfBoundsException if offset is negative or offset + count --- 631,637 ---- * @param codePoints the entire array of code points * @param offset the start of the subarray * @param count the length of the subarray ! * * @throws IllegalArgumentException if an invalid code point is found * in the codePoints array * @throws IndexOutOfBoundsException if offset is negative or offset + count *************** public final class String *** 640,673 **** public String(int[] codePoints, int offset, int count) { // FIXME: This implementation appears to give correct internal ! // representation of the String because: // - length() is correct ! // - getting a char[] from toCharArray() and testing // Character.codePointAt() on all the characters in that array gives // the appropriate results ! // however printing the String gives incorrect results. This may be // due to printing method errors (such as incorrectly looping through // the String one char at a time rather than one "character" at a time. ! if (offset < 0) throw new IndexOutOfBoundsException(); int end = offset + count; int pos = 0; // This creates a char array that is long enough for all of the code // points to represent supplementary characters. This is more than likely ! // a waste of storage, so we use it only temporarily and then copy the // used portion into the value array. char[] temp = new char[2 * codePoints.length]; for (int i = offset; i < end; i++) { ! pos += Character.toChars(codePoints[i], temp, pos); } this.count = pos; this.value = new char[pos]; System.arraycopy(temp, 0, value, 0, pos); this.offset = 0; } ! /** * Returns the number of characters contained in this String. * --- 640,673 ---- public String(int[] codePoints, int offset, int count) { // FIXME: This implementation appears to give correct internal ! // representation of the String because: // - length() is correct ! // - getting a char[] from toCharArray() and testing // Character.codePointAt() on all the characters in that array gives // the appropriate results ! // however printing the String gives incorrect results. This may be // due to printing method errors (such as incorrectly looping through // the String one char at a time rather than one "character" at a time. ! if (offset < 0) throw new IndexOutOfBoundsException(); int end = offset + count; int pos = 0; // This creates a char array that is long enough for all of the code // points to represent supplementary characters. This is more than likely ! // a waste of storage, so we use it only temporarily and then copy the // used portion into the value array. char[] temp = new char[2 * codePoints.length]; for (int i = offset; i < end; i++) { ! pos += Character.toChars(codePoints[i], temp, pos); } this.count = pos; this.value = new char[pos]; System.arraycopy(temp, 0, value, 0, pos); this.offset = 0; } ! /** * Returns the number of characters contained in this String. * *************** public final class String *** 813,837 **** */ public byte[] getBytes(Charset enc) { ! try { ! CharsetEncoder cse = enc.newEncoder(); ! cse.onMalformedInput(CodingErrorAction.REPLACE); ! cse.onUnmappableCharacter(CodingErrorAction.REPLACE); ! ByteBuffer bbuf = cse.encode(CharBuffer.wrap(value, offset, count)); ! if(bbuf.hasArray()) ! return bbuf.array(); ! ! // Doubt this will happen. But just in case. ! byte[] bytes = new byte[bbuf.remaining()]; ! bbuf.get(bytes); ! return bytes; ! } catch(CharacterCodingException e) { ! // This shouldn't ever happen. ! throw (InternalError) new InternalError().initCause(e); ! } } /** --- 813,837 ---- */ public byte[] getBytes(Charset enc) { ! try { ! CharsetEncoder cse = enc.newEncoder(); ! cse.onMalformedInput(CodingErrorAction.REPLACE); ! cse.onUnmappableCharacter(CodingErrorAction.REPLACE); ! ByteBuffer bbuf = cse.encode(CharBuffer.wrap(value, offset, count)); ! if(bbuf.hasArray()) ! return bbuf.array(); ! ! // Doubt this will happen. But just in case. ! byte[] bytes = new byte[bbuf.remaining()]; ! bbuf.get(bytes); ! return bytes; ! } catch(CharacterCodingException e) { ! // This shouldn't ever happen. ! throw (InternalError) new InternalError().initCause(e); ! } } /** *************** public final class String *** 845,862 **** * @since 1.1 */ public byte[] getBytes() ! { ! try ! { ! return getBytes(System.getProperty("file.encoding")); ! } catch(Exception e) { ! // XXX - Throw an error here? ! // For now, default to the 'safe' encoding. ! byte[] bytes = new byte[count]; ! for(int i=0;i Character.MAX_HIGH_SURROGATE ! || start == end ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! ++count; } return count; } --- 2026,2048 ---- int count = 0; while (start < end) { ! char base = value[start]; ! if (base < Character.MIN_HIGH_SURROGATE ! || base > Character.MAX_HIGH_SURROGATE ! || start == end ! || start == count ! || value[start + 1] < Character.MIN_LOW_SURROGATE ! || value[start + 1] > Character.MAX_LOW_SURROGATE) ! { ! // Nothing. ! } ! else ! { ! // Surrogate pair. ! ++start; ! } ! ++start; ! ++count; } return count; } *************** public final class String *** 2111,2140 **** value = s.value; else { ! int count = s.count; ! value = new char[count]; ! VMSystem.arraycopy(s.value, s.offset, value, 0, count); } return value; } ! /** * Returns true iff this String contains the sequence of Characters * described in s. * @param s the CharSequence * @return true iff this String contains s ! * * @since 1.5 */ public boolean contains (CharSequence s) { return this.indexOf(s.toString()) != -1; } ! /** * Returns a string that is this string with all instances of the sequence ! * represented by target replaced by the sequence in * replacement. * @param target the sequence to be replaced * @param replacement the sequence used as the replacement --- 2111,2140 ---- value = s.value; else { ! int count = s.count; ! value = new char[count]; ! VMSystem.arraycopy(s.value, s.offset, value, 0, count); } return value; } ! /** * Returns true iff this String contains the sequence of Characters * described in s. * @param s the CharSequence * @return true iff this String contains s ! * * @since 1.5 */ public boolean contains (CharSequence s) { return this.indexOf(s.toString()) != -1; } ! /** * Returns a string that is this string with all instances of the sequence ! * represented by target replaced by the sequence in * replacement. * @param target the sequence to be replaced * @param replacement the sequence used as the replacement *************** public final class String *** 2146,2154 **** String replaceString = replacement.toString(); int targetLength = target.length(); int replaceLength = replacement.length(); ! int startPos = this.indexOf(targetString); ! CPStringBuilder result = new CPStringBuilder(this); while (startPos != -1) { // Replace the target with the replacement --- 2146,2154 ---- String replaceString = replacement.toString(); int targetLength = target.length(); int replaceLength = replacement.length(); ! int startPos = this.indexOf(targetString); ! CPStringBuilder result = new CPStringBuilder(this); while (startPos != -1) { // Replace the target with the replacement *************** public final class String *** 2159,2173 **** } return result.toString(); } ! /** ! * Return the index into this String that is offset from the given index by * codePointOffset code points. * @param index the index at which to start * @param codePointOffset the number of code points to offset * @return the index into this String that is codePointOffset * code points offset from index. ! * * @throws IndexOutOfBoundsException if index is negative or larger than the * length of this string. * @throws IndexOutOfBoundsException if codePointOffset is positive and the --- 2159,2173 ---- } return result.toString(); } ! /** ! * Return the index into this String that is offset from the given index by * codePointOffset code points. * @param index the index at which to start * @param codePointOffset the number of code points to offset * @return the index into this String that is codePointOffset * code points offset from index. ! * * @throws IndexOutOfBoundsException if index is negative or larger than the * length of this string. * @throws IndexOutOfBoundsException if codePointOffset is positive and the *************** public final class String *** 2180,2186 **** { if (index < 0 || index > count) throw new IndexOutOfBoundsException(); ! return Character.offsetByCodePoints(value, offset, count, offset + index, codePointOffset); } --- 2180,2186 ---- { if (index < 0 || index > count) throw new IndexOutOfBoundsException(); ! return Character.offsetByCodePoints(value, offset, count, offset + index, codePointOffset); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/StringBuffer.java gcc-4.6.0/libjava/classpath/java/lang/StringBuffer.java *** gcc-4.5.2/libjava/classpath/java/lang/StringBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/StringBuffer.java Tue Jan 11 19:46:05 2011 *************** public final class StringBuffer *** 691,697 **** * @since 1.5 */ public synchronized StringBuffer insert(int offset, CharSequence sequence, ! int start, int end) { super.insert(offset, sequence, start, end); return this; --- 691,697 ---- * @since 1.5 */ public synchronized StringBuffer insert(int offset, CharSequence sequence, ! int start, int end) { super.insert(offset, sequence, start, end); return this; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/StringBuilder.java gcc-4.6.0/libjava/classpath/java/lang/StringBuilder.java *** gcc-4.5.2/libjava/classpath/java/lang/StringBuilder.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/StringBuilder.java Tue Jan 11 19:46:05 2011 *************** public final class StringBuilder *** 291,297 **** * @return this StringBuilder */ public StringBuilder append(CharSequence seq, int start, ! int end) { super.append(seq, start, end); return this; --- 291,297 ---- * @return this StringBuilder */ public StringBuilder append(CharSequence seq, int start, ! int end) { super.append(seq, start, end); return this; *************** public final class StringBuilder *** 487,493 **** * @throws StringIndexOutOfBoundsException if any index is out of bounds */ public StringBuilder insert(int offset, ! char[] str, int str_offset, int len) { super.insert(offset, str, str_offset, len); return this; --- 487,493 ---- * @throws StringIndexOutOfBoundsException if any index is out of bounds */ public StringBuilder insert(int offset, ! char[] str, int str_offset, int len) { super.insert(offset, str, str_offset, len); return this; *************** public final class StringBuilder *** 556,562 **** * or end are out of bounds */ public StringBuilder insert(int offset, CharSequence sequence, ! int start, int end) { super.insert(offset, sequence, start, end); return this; --- 556,562 ---- * or end are out of bounds */ public StringBuilder insert(int offset, CharSequence sequence, ! int start, int end) { super.insert(offset, sequence, start, end); return this; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/System.java gcc-4.6.0/libjava/classpath/java/lang/System.java *** gcc-4.5.2/libjava/classpath/java/lang/System.java Wed Oct 22 18:19:29 2008 --- gcc-4.6.0/libjava/classpath/java/lang/System.java Tue Jan 11 19:46:05 2011 *************** public final class System *** 134,140 **** SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) sm.checkPermission(new RuntimePermission("setIO")); ! VMSystem.setIn(in); } --- 134,140 ---- SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) sm.checkPermission(new RuntimePermission("setIO")); ! VMSystem.setIn(in); } *************** public final class System *** 151,157 **** { SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) ! sm.checkPermission(new RuntimePermission("setIO")); VMSystem.setOut(out); } --- 151,157 ---- { SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) ! sm.checkPermission(new RuntimePermission("setIO")); VMSystem.setOut(out); } *************** public final class System *** 202,216 **** // preload it here. if (SecurityManager.current == null) { ! try ! { ! Class.forName("java.security.Security"); ! } ! catch (ClassNotFoundException e) ! { ! } } ! SecurityManager.current = sm; } --- 202,216 ---- // preload it here. if (SecurityManager.current == null) { ! try ! { ! Class.forName("java.security.Security"); ! } ! catch (ClassNotFoundException e) ! { ! } } ! SecurityManager.current = sm; } *************** public final class System *** 237,244 **** { return VMSystem.currentTimeMillis(); } ! ! /** *

            * Returns the current value of a nanosecond-precise system timer. * The value of the timer is an offset relative to some arbitrary fixed --- 237,244 ---- { return VMSystem.currentTimeMillis(); } ! ! /** *

            * Returns the current value of a nanosecond-precise system timer. * The value of the timer is an offset relative to some arbitrary fixed *************** public final class System *** 261,267 **** *

            * * @return the time of a system timer in nanoseconds. ! * @since 1.5 */ public static long nanoTime() { --- 261,267 ---- *

            * * @return the time of a system timer in nanoseconds. ! * @since 1.5 */ public static long nanoTime() { *************** public final class System *** 365,371 **** *
            gnu.java.io.encoding_scheme_alias.iso-latin-_?
            8859_?
            *
            gnu.java.io.encoding_scheme_alias.latin?
            8859_?
            *
            gnu.java.io.encoding_scheme_alias.utf-8
            UTF8
            ! *
            gnu.java.util.zoneinfo.dir
            Root of zoneinfo tree
            *
            gnu.javax.print.server
            Hostname of external CUPS server.
            * * --- 365,371 ---- *
            gnu.java.io.encoding_scheme_alias.iso-latin-_?
            8859_?
            *
            gnu.java.io.encoding_scheme_alias.latin?
            8859_?
            *
            gnu.java.io.encoding_scheme_alias.utf-8
            UTF8
            ! *
            gnu.java.util.zoneinfo.dir
            Root of zoneinfo tree
            *
            gnu.javax.print.server
            Hostname of external CUPS server.
            * * *************** public final class System *** 549,555 **** if (environmentMap == null) { ! Map variables = new EnvironmentMap(); List environ = (List)VMSystem.environ(); for (String envEntry : environ) { --- 549,555 ---- if (environmentMap == null) { ! Map variables = new EnvironmentMap(); List environ = (List)VMSystem.environ(); for (String envEntry : environ) { *************** public final class System *** 558,573 **** { // it's perfectly legal that some entries may be in the form // key=value=value=value ! int equalSignIndex = envEntry.indexOf('='); String key = envEntry.substring(0, equalSignIndex); String value = envEntry.substring(equalSignIndex + 1); variables.put(key, value); } } ! environmentMap = Collections.unmodifiableMap(variables); } ! return environmentMap; } --- 558,573 ---- { // it's perfectly legal that some entries may be in the form // key=value=value=value ! int equalSignIndex = envEntry.indexOf('='); String key = envEntry.substring(0, equalSignIndex); String value = envEntry.substring(equalSignIndex + 1); variables.put(key, value); } } ! environmentMap = Collections.unmodifiableMap(variables); } ! return environmentMap; } *************** public final class System *** 731,737 **** { c = coll; } ! /** * Blocks queries containing a null object or an object which * isn't of type String. All other queries --- 731,737 ---- { c = coll; } ! /** * Blocks queries containing a null object or an object which * isn't of type String. All other queries *************** public final class System *** 745,759 **** public boolean contains(Object obj) { if (obj == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); if (!(obj instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); return c.contains(obj); } ! /** * Blocks queries where the collection contains a null object or * an object which isn't of type String. All other --- 745,759 ---- public boolean contains(Object obj) { if (obj == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); if (!(obj instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); return c.contains(obj); } ! /** * Blocks queries where the collection contains a null object or * an object which isn't of type String. All other *************** public final class System *** 768,782 **** public boolean containsAll(Collection coll) { for (Object o: coll) ! { ! if (o == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); ! if (!(o instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); ! } return c.containsAll(coll); } --- 768,782 ---- public boolean containsAll(Collection coll) { for (Object o: coll) ! { ! if (o == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); ! if (!(o instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); ! } return c.containsAll(coll); } *************** public final class System *** 790,796 **** { return c.iterator(); } ! /** * Blocks the removal of elements from the collection. * --- 790,796 ---- { return c.iterator(); } ! /** * Blocks the removal of elements from the collection. * *************** public final class System *** 802,816 **** public boolean remove(Object key) { if (key == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); if (!(key instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); return c.contains(key); ! } ! /** * Blocks the removal of all elements in the specified * collection from the collection. --- 802,816 ---- public boolean remove(Object key) { if (key == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); if (!(key instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); return c.contains(key); ! } ! /** * Blocks the removal of all elements in the specified * collection from the collection. *************** public final class System *** 824,841 **** public boolean removeAll(Collection coll) { for (Object o: coll) ! { ! if (o == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); ! if (!(o instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); ! } return c.removeAll(coll); } ! /** * Blocks the retention of all elements in the specified * collection from the collection. --- 824,841 ---- public boolean removeAll(Collection coll) { for (Object o: coll) ! { ! if (o == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); ! if (!(o instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); ! } return c.removeAll(coll); } ! /** * Blocks the retention of all elements in the specified * collection from the collection. *************** public final class System *** 849,863 **** public boolean retainAll(Collection coll) { for (Object o: coll) ! { ! if (o == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); ! if (!(o instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); ! } return c.containsAll(coll); } --- 849,863 ---- public boolean retainAll(Collection coll) { for (Object o: coll) ! { ! if (o == null) ! throw new ! NullPointerException("This collection does not support " + ! "null values."); ! if (!(o instanceof String)) ! throw new ! ClassCastException("This collection only supports Strings."); ! } return c.containsAll(coll); } *************** public final class System *** 877,890 **** /** * This is a specialised HashMap, which * prevents the addition or querying of anything other than ! * String objects. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ static class EnvironmentMap extends HashMap { ! /** * Cache the entry set. */ --- 877,890 ---- /** * This is a specialised HashMap, which * prevents the addition or querying of anything other than ! * String objects. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ static class EnvironmentMap extends HashMap { ! /** * Cache the entry set. */ *************** public final class System *** 915,921 **** * @param m the map to be added to this. * @throws NullPointerException if a key or value is null. * @throws ClassCastException if a key or value is not a String. ! */ EnvironmentMap(Map m) { super(m); --- 915,921 ---- * @param m the map to be added to this. * @throws NullPointerException if a key or value is null. * @throws ClassCastException if a key or value is not a String. ! */ EnvironmentMap(Map m) { super(m); *************** public final class System *** 933,946 **** public boolean containsKey(Object key) { if (key == null) ! throw new ! NullPointerException("This map does not support null keys."); if (!(key instanceof String)) ! throw new ! ClassCastException("This map only allows queries using Strings."); return super.containsKey(key); } ! /** * Blocks queries using a null or non-String value. * All other queries are forwarded to the superclass. --- 933,946 ---- public boolean containsKey(Object key) { if (key == null) ! throw new ! NullPointerException("This map does not support null keys."); if (!(key instanceof String)) ! throw new ! ClassCastException("This map only allows queries using Strings."); return super.containsKey(key); } ! /** * Blocks queries using a null or non-String value. * All other queries are forwarded to the superclass. *************** public final class System *** 952,962 **** public boolean containsValue(Object value) { if (value == null) ! throw new ! NullPointerException("This map does not support null values."); if (!(value instanceof String)) ! throw new ! ClassCastException("This map only allows queries using Strings."); return super.containsValue(value); } --- 952,962 ---- public boolean containsValue(Object value) { if (value == null) ! throw new ! NullPointerException("This map does not support null values."); if (!(value instanceof String)) ! throw new ! ClassCastException("This map only allows queries using Strings."); return super.containsValue(value); } *************** public final class System *** 985,998 **** public String get(Object key) { if (key == null) ! throw new ! NullPointerException("This map does not support null keys."); if (!(key instanceof String)) ! throw new ! ClassCastException("This map only allows queries using Strings."); return super.get(key); } ! /** * Returns a set view of the keys, with the same * provisions as for the underlying map. --- 985,998 ---- public String get(Object key) { if (key == null) ! throw new ! NullPointerException("This map does not support null keys."); if (!(key instanceof String)) ! throw new ! ClassCastException("This map only allows queries using Strings."); return super.get(key); } ! /** * Returns a set view of the keys, with the same * provisions as for the underlying map. *************** public final class System *** 1021,1033 **** public String put(String key, String value) { if (key == null) ! throw new NullPointerException("A new key is null."); if (value == null) ! throw new NullPointerException("A new value is null."); if (!(key instanceof String)) ! throw new ClassCastException("A new key is not a String."); if (!(value instanceof String)) ! throw new ClassCastException("A new value is not a String."); return super.put(key, value); } --- 1021,1033 ---- public String put(String key, String value) { if (key == null) ! throw new NullPointerException("A new key is null."); if (value == null) ! throw new NullPointerException("A new value is null."); if (!(key instanceof String)) ! throw new ClassCastException("A new key is not a String."); if (!(value instanceof String)) ! throw new ClassCastException("A new value is not a String."); return super.put(key, value); } *************** public final class System *** 1043,1056 **** public String remove(Object key) { if (key == null) ! throw new ! NullPointerException("This map does not support null keys."); if (!(key instanceof String)) ! throw new ! ClassCastException("This map only allows queries using Strings."); return super.remove(key); } ! /** * Returns a collection view of the values, with the same * provisions as for the underlying map. --- 1043,1056 ---- public String remove(Object key) { if (key == null) ! throw new ! NullPointerException("This map does not support null keys."); if (!(key instanceof String)) ! throw new ! ClassCastException("This map only allows queries using Strings."); return super.remove(key); } ! /** * Returns a collection view of the values, with the same * provisions as for the underlying map. *************** public final class System *** 1063,1069 **** values = new EnvironmentCollection(super.values()); return values; } ! } /** --- 1063,1069 ---- values = new EnvironmentCollection(super.values()); return values; } ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Thread.java gcc-4.6.0/libjava/classpath/java/lang/Thread.java *** gcc-4.5.2/libjava/classpath/java/lang/Thread.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Thread.java Tue Jan 11 19:46:05 2011 *************** public class Thread implements Runnable *** 143,155 **** /** This thread's ID. */ private final long threadId; ! /** The park blocker. See LockSupport. */ Object parkBlocker; /** The next thread number to use. */ private static int numAnonymousThreadsCreated; ! /** Used to generate the next thread ID to use. */ private static long totalThreadsCreated; --- 143,155 ---- /** This thread's ID. */ private final long threadId; ! /** The park blocker. See LockSupport. */ Object parkBlocker; /** The next thread number to use. */ private static int numAnonymousThreadsCreated; ! /** Used to generate the next thread ID to use. */ private static long totalThreadsCreated; *************** public class Thread implements Runnable *** 354,363 **** Thread current = currentThread(); if (group == null) { ! if (sm != null) ! group = sm.getThreadGroup(); ! if (group == null) ! group = current.group; } if (sm != null) sm.checkAccess(group); --- 354,363 ---- Thread current = currentThread(); if (group == null) { ! if (sm != null) ! group = sm.getThreadGroup(); ! if (group == null) ! group = current.group; } if (sm != null) sm.checkAccess(group); *************** public class Thread implements Runnable *** 368,374 **** this.runnable = target; this.stacksize = size; this.locals = new ThreadLocalMap(); ! synchronized (Thread.class) { this.threadId = ++totalThreadsCreated; --- 368,374 ---- this.runnable = target; this.stacksize = size; this.locals = new ThreadLocalMap(); ! synchronized (Thread.class) { this.threadId = ++totalThreadsCreated; *************** public class Thread implements Runnable *** 422,428 **** this.threadId = ++totalThreadsCreated; } } ! /** * Generate a name for an anonymous thread. */ --- 422,428 ---- this.threadId = ++totalThreadsCreated; } } ! /** * Generate a name for an anonymous thread. */ *************** public class Thread implements Runnable *** 510,516 **** { throw new NoSuchMethodError(); } ! /** * Print a stack trace of the current thread to stderr using the same * format as Throwable's printStackTrace() method. --- 510,516 ---- { throw new NoSuchMethodError(); } ! /** * Print a stack trace of the current thread to stderr using the same * format as Throwable's printStackTrace() method. *************** public class Thread implements Runnable *** 540,546 **** { return currentThread().group.enumerate(array); } ! /** * Get this Thread's name. * --- 540,546 ---- { return currentThread().group.enumerate(array); } ! /** * Get this Thread's name. * *************** public class Thread implements Runnable *** 731,737 **** if (t != null) t.resume(); } ! /** * The method of Thread that will be run if there is no Runnable object * associated with the Thread. Thread's implementation does nothing at all. --- 731,737 ---- if (t != null) t.resume(); } ! /** * The method of Thread that will be run if there is no Runnable object * associated with the Thread. Thread's implementation does nothing at all. *************** public class Thread implements Runnable *** 788,794 **** if (loader != null && sm != null) { // Get the calling classloader ! ClassLoader cl = VMStackWalker.getCallingClassLoader(); if (cl != null && !cl.isAncestorOf(loader)) sm.checkPermission(new RuntimePermission("getClassLoader")); } --- 788,794 ---- if (loader != null && sm != null) { // Get the calling classloader ! ClassLoader cl = VMStackWalker.getCallingClassLoader(); if (cl != null && !cl.isAncestorOf(loader)) sm.checkPermission(new RuntimePermission("getClassLoader")); } *************** public class Thread implements Runnable *** 921,927 **** VMThread.create(this, stacksize); } ! /** * Cause this Thread to stop abnormally because of the throw of a ThreadDeath * error. If you stop a Thread that has not yet started, it will stop --- 921,927 ---- VMThread.create(this, stacksize); } ! /** * Cause this Thread to stop abnormally because of the throw of a ThreadDeath * error. If you stop a Thread that has not yet started, it will stop *************** public class Thread implements Runnable *** 992,1000 **** } VMThread vt = vmThread; if (vt != null) ! vt.stop(t); else ! stillborn = t; } /** --- 992,1000 ---- } VMThread vt = vmThread; if (vt != null) ! vt.stop(t); else ! stillborn = t; } /** *************** public class Thread implements Runnable *** 1055,1061 **** public String toString() { return ("Thread[" + name + "," + priority + "," ! + (group == null ? "" : group.getName()) + "]"); } /** --- 1055,1061 ---- public String toString() { return ("Thread[" + name + "," + priority + "," ! + (group == null ? "" : group.getName()) + "]"); } /** *************** public class Thread implements Runnable *** 1076,1082 **** return currentThread().locals; } ! /** * Assigns the given UncaughtExceptionHandler to this * thread. This will then be called if the thread terminates due * to an uncaught exception, pre-empting that of the --- 1076,1082 ---- return currentThread().locals; } ! /** * Assigns the given UncaughtExceptionHandler to this * thread. This will then be called if the thread terminates due * to an uncaught exception, pre-empting that of the *************** public class Thread implements Runnable *** 1084,1100 **** * * @param h the handler to use for this thread. * @throws SecurityException if the current thread can't modify this thread. ! * @since 1.5 */ public void setUncaughtExceptionHandler(UncaughtExceptionHandler h) { SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) ! sm.checkAccess(this); exceptionHandler = h; } ! /** *

            * Returns the handler used when this thread terminates due to an * uncaught exception. The handler used is determined by the following: --- 1084,1100 ---- * * @param h the handler to use for this thread. * @throws SecurityException if the current thread can't modify this thread. ! * @since 1.5 */ public void setUncaughtExceptionHandler(UncaughtExceptionHandler h) { SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) ! sm.checkAccess(this); exceptionHandler = h; } ! /** *

            * Returns the handler used when this thread terminates due to an * uncaught exception. The handler used is determined by the following: *************** public class Thread implements Runnable *** 1107,1123 **** * (which can only happen when the thread was terminated since * then it won't have an associated thread group anymore). * ! * * @return the appropriate UncaughtExceptionHandler or * null if one can't be obtained. ! * @since 1.5 */ public UncaughtExceptionHandler getUncaughtExceptionHandler() { return exceptionHandler != null ? exceptionHandler : group; } ! /** *

            * Sets the default uncaught exception handler used when one isn't * provided by the thread or its associated ThreadGroup. --- 1107,1123 ---- * (which can only happen when the thread was terminated since * then it won't have an associated thread group anymore). * ! * * @return the appropriate UncaughtExceptionHandler or * null if one can't be obtained. ! * @since 1.5 */ public UncaughtExceptionHandler getUncaughtExceptionHandler() { return exceptionHandler != null ? exceptionHandler : group; } ! /** *

            * Sets the default uncaught exception handler used when one isn't * provided by the thread or its associated ThreadGroup. *************** public class Thread implements Runnable *** 1137,1172 **** * @throws SecurityException if a security manager is present and * disallows the runtime permission * "setDefaultUncaughtExceptionHandler". ! * @since 1.5 */ ! public static void setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler h) { SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) ! sm.checkPermission(new RuntimePermission("setDefaultUncaughtExceptionHandler")); defaultHandler = h; } ! /** * Returns the handler used by default when a thread terminates * unexpectedly due to an exception, or null if one doesn't * exist. * * @return the default uncaught exception handler. ! * @since 1.5 */ public static UncaughtExceptionHandler getDefaultUncaughtExceptionHandler() { return defaultHandler; } ! ! /** * Returns the unique identifier for this thread. This ID is generated * on thread creation, and may be re-used on its death. * * @return a positive long number representing the thread's ID. ! * @since 1.5 */ public long getId() { --- 1137,1172 ---- * @throws SecurityException if a security manager is present and * disallows the runtime permission * "setDefaultUncaughtExceptionHandler". ! * @since 1.5 */ ! public static void setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler h) { SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) ! sm.checkPermission(new RuntimePermission("setDefaultUncaughtExceptionHandler")); defaultHandler = h; } ! /** * Returns the handler used by default when a thread terminates * unexpectedly due to an exception, or null if one doesn't * exist. * * @return the default uncaught exception handler. ! * @since 1.5 */ public static UncaughtExceptionHandler getDefaultUncaughtExceptionHandler() { return defaultHandler; } ! ! /** * Returns the unique identifier for this thread. This ID is generated * on thread creation, and may be re-used on its death. * * @return a positive long number representing the thread's ID. ! * @since 1.5 */ public long getId() { *************** public class Thread implements Runnable *** 1231,1237 **** void uncaughtException(Thread thr, Throwable exc); } ! /** *

            * Represents the current state of a thread, according to the VM rather * than the operating system. It can be one of the following: --- 1231,1237 ---- void uncaughtException(Thread thr, Throwable exc); } ! /** *

            * Represents the current state of a thread, according to the VM rather * than the operating system. It can be one of the following: *************** public class Thread implements Runnable *** 1249,1255 **** *

          37. TERMINATED -- The thread has exited.
          38. * * ! * @since 1.5 */ public enum State { --- 1249,1255 ---- *
          39. TERMINATED -- The thread has exited.
          40. * * ! * @since 1.5 */ public enum State { *************** public class Thread implements Runnable *** 1296,1302 **** * by the thread, with the most recent method forming the * first element in the array. The array will be empty * if the virtual machine can not obtain information on the ! * thread. *

            *

            * To execute this method, the current security manager --- 1296,1302 ---- * by the thread, with the most recent method forming the * first element in the array. The array will be empty * if the virtual machine can not obtain information on the ! * thread. *

            *

            * To execute this method, the current security manager *************** public class Thread implements Runnable *** 1304,1310 **** * "getStackTrace" and * "modifyThreadGroup" {@link RuntimePermission}s. *

            ! * * @return a map of threads to arrays of {@link StackTraceElement}s. * @throws SecurityException if a security manager exists, and * prevents either or both the runtime --- 1304,1310 ---- * "getStackTrace" and * "modifyThreadGroup" {@link RuntimePermission}s. *

            ! * * @return a map of threads to arrays of {@link StackTraceElement}s. * @throws SecurityException if a security manager exists, and * prevents either or both the runtime *************** public class Thread implements Runnable *** 1322,1335 **** int filled = group.enumerate(threadList); while (filled == arraySize) { ! arraySize *= 2; ! threadList = new Thread[arraySize]; ! filled = group.enumerate(threadList); } Map traces = new HashMap(); for (int a = 0; a < filled; ++a) traces.put(threadList[a], ! threadList[a].getStackTrace()); return traces; } --- 1322,1335 ---- int filled = group.enumerate(threadList); while (filled == arraySize) { ! arraySize *= 2; ! threadList = new Thread[arraySize]; ! filled = group.enumerate(threadList); } Map traces = new HashMap(); for (int a = 0; a < filled; ++a) traces.put(threadList[a], ! threadList[a].getStackTrace()); return traces; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/ThreadLocal.java gcc-4.6.0/libjava/classpath/java/lang/ThreadLocal.java *** gcc-4.5.2/libjava/classpath/java/lang/ThreadLocal.java Wed Oct 22 18:19:29 2008 --- gcc-4.6.0/libjava/classpath/java/lang/ThreadLocal.java Tue Jan 11 19:46:05 2011 *************** public class ThreadLocal *** 100,106 **** /** * Allocate a new hash. */ ! private synchronized int computeNextHash() { return nextHashBase++ * 6709; } --- 100,106 ---- /** * Allocate a new hash. */ ! private synchronized int computeNextHash() { return nextHashBase++ * 6709; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/Throwable.java gcc-4.6.0/libjava/classpath/java/lang/Throwable.java *** gcc-4.5.2/libjava/classpath/java/lang/Throwable.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/Throwable.java Tue Jan 11 19:46:05 2011 *************** public class Throwable implements Serial *** 423,454 **** Throwable cause = getCause(); while (cause != null) { ! // Cause start first line sb.append("Caused by: "); // Cause stacktrace StackTraceElement[] parentStack = stack; stack = cause.getStackTrace(); ! if (parentStack == null || parentStack.length == 0) ! stackTraceStringBuffer(sb, cause.toString(), stack, 0); ! else ! { ! int equal = 0; // Count how many of the last stack frames are equal ! int frame = stack.length-1; ! int parentFrame = parentStack.length-1; ! while (frame > 0 && parentFrame > 0) ! { ! if (stack[frame].equals(parentStack[parentFrame])) ! { ! equal++; ! frame--; ! parentFrame--; ! } ! else ! break; ! } ! stackTraceStringBuffer(sb, cause.toString(), stack, equal); ! } cause = cause.getCause(); } --- 423,454 ---- Throwable cause = getCause(); while (cause != null) { ! // Cause start first line sb.append("Caused by: "); // Cause stacktrace StackTraceElement[] parentStack = stack; stack = cause.getStackTrace(); ! if (parentStack == null || parentStack.length == 0) ! stackTraceStringBuffer(sb, cause.toString(), stack, 0); ! else ! { ! int equal = 0; // Count how many of the last stack frames are equal ! int frame = stack.length-1; ! int parentFrame = parentStack.length-1; ! while (frame > 0 && parentFrame > 0) ! { ! if (stack[frame].equals(parentStack[parentFrame])) ! { ! equal++; ! frame--; ! parentFrame--; ! } ! else ! break; ! } ! stackTraceStringBuffer(sb, cause.toString(), stack, equal); ! } cause = cause.getCause(); } *************** public class Throwable implements Serial *** 458,464 **** // Adds to the given StringBuffer a line containing the name and // all stacktrace elements minus the last equal ones. private static void stackTraceStringBuffer(CPStringBuilder sb, String name, ! StackTraceElement[] stack, int equal) { String nl = StaticData.nl; // (finish) first line --- 458,464 ---- // Adds to the given StringBuffer a line containing the name and // all stacktrace elements minus the last equal ones. private static void stackTraceStringBuffer(CPStringBuilder sb, String name, ! StackTraceElement[] stack, int equal) { String nl = StaticData.nl; // (finish) first line *************** public class Throwable implements Serial *** 468,491 **** // The stacktrace if (stack == null || stack.length == 0) { ! sb.append(" <>"); ! sb.append(nl); } else { ! for (int i = 0; i < stack.length-equal; i++) ! { ! sb.append(" at "); ! sb.append(stack[i] == null ? "<>" : stack[i].toString()); ! sb.append(nl); ! } ! if (equal > 0) ! { ! sb.append(" ..."); ! sb.append(equal); ! sb.append(" more"); ! sb.append(nl); ! } } } --- 468,491 ---- // The stacktrace if (stack == null || stack.length == 0) { ! sb.append(" <>"); ! sb.append(nl); } else { ! for (int i = 0; i < stack.length-equal; i++) ! { ! sb.append(" at "); ! sb.append(stack[i] == null ? "<>" : stack[i].toString()); ! sb.append(nl); ! } ! if (equal > 0) ! { ! sb.append(" ..."); ! sb.append(equal); ! sb.append(" more"); ! sb.append(nl); ! } } } *************** public class Throwable implements Serial *** 518,529 **** { if (stackTrace == null) if (vmState == null) ! stackTrace = new StackTraceElement[0]; ! else ! { ! stackTrace = vmState.getStackTrace(this); ! vmState = null; // No longer needed ! } return stackTrace; } --- 518,529 ---- { if (stackTrace == null) if (vmState == null) ! stackTrace = new StackTraceElement[0]; ! else ! { ! stackTrace = vmState.getStackTrace(this); ! vmState = null; // No longer needed ! } return stackTrace; } *************** public class Throwable implements Serial *** 548,556 **** while (--i >= 0) { ! st[i] = stackTrace[i]; ! if (st[i] == null) ! throw new NullPointerException("Element " + i + " null"); } this.stackTrace = st; --- 548,556 ---- while (--i >= 0) { ! st[i] = stackTrace[i]; ! if (st[i] == null) ! throw new NullPointerException("Element " + i + " null"); } this.stackTrace = st; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/TypeNotPresentException.java gcc-4.6.0/libjava/classpath/java/lang/TypeNotPresentException.java *** gcc-4.5.2/libjava/classpath/java/lang/TypeNotPresentException.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/lang/TypeNotPresentException.java Tue Jan 11 19:46:05 2011 *************** package java.lang; *** 43,49 **** * Thrown when a type is accessed using a String-based * representation, but no definition of the supplied type is found. * This is effectively an unchecked equivalent of the existing ! * ClassNotFound exception. *

            *

            * It may occur due to an attempt to load a missing class, interface or --- 43,49 ---- * Thrown when a type is accessed using a String-based * representation, but no definition of the supplied type is found. * This is effectively an unchecked equivalent of the existing ! * ClassNotFound exception. *

            *

            * It may occur due to an attempt to load a missing class, interface or *************** public class TypeNotPresentException *** 66,72 **** * may be used to provide additional history, with regards to the * root of the problem. It is perfectly valid for this to be null, * if the cause of the problem is unknown. ! * * @param typeName the name of the missing type. * @param cause the cause of this exception, or null if the cause * is unknown. --- 66,72 ---- * may be used to provide additional history, with regards to the * root of the problem. It is perfectly valid for this to be null, * if the cause of the problem is unknown. ! * * @param typeName the name of the missing type. * @param cause the cause of this exception, or null if the cause * is unknown. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/UnsupportedOperationException.java gcc-4.6.0/libjava/classpath/java/lang/UnsupportedOperationException.java *** gcc-4.5.2/libjava/classpath/java/lang/UnsupportedOperationException.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/lang/UnsupportedOperationException.java Tue Jan 11 19:46:05 2011 *************** public class UnsupportedOperationExcepti *** 86,92 **** * automatically incorporated into the resulting detail message of * this exception. *

            ! * * @param message the detail message, which should give the reason for * this exception being thrown. * @param cause the cause of this exception, or null if the cause --- 86,92 ---- * automatically incorporated into the resulting detail message of * this exception. *

            ! * * @param message the detail message, which should give the reason for * this exception being thrown. * @param cause the cause of this exception, or null if the cause *************** public class UnsupportedOperationExcepti *** 114,120 **** * This makes this constructor very useful for simply wrapping another * exception. *

            ! * * @param cause the cause of this exception, or null if the cause * is unknown. * @since 1.5 --- 114,120 ---- * This makes this constructor very useful for simply wrapping another * exception. *

            ! * * @param cause the cause of this exception, or null if the cause * is unknown. * @since 1.5 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/annotation/Annotation.java gcc-4.6.0/libjava/classpath/java/lang/annotation/Annotation.java *** gcc-4.5.2/libjava/classpath/java/lang/annotation/Annotation.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/annotation/Annotation.java Tue Jan 11 19:46:05 2011 *************** public interface Annotation *** 67,79 **** * annotation, according to the following: *
              *
            • If the members are floats, then, for floats ! * x and y, * Float.valueOf(x).equals(Float.valueOf(y) must return * true. This differs from the usual (==) comparison * in that NaN is considered equal to itself and positive * and negative zero are seen as different.
            • *
            • Likewise, if the members are doubles, then, for doubles ! * x and y, * Double.valueOf(x).equals(Double.valueOf(y) must return * true. This differs from the usual (==) comparison * in that NaN is considered equal to itself and positive --- 67,79 ---- * annotation, according to the following: *
                *
              • If the members are floats, then, for floats ! * x and y, * Float.valueOf(x).equals(Float.valueOf(y) must return * true. This differs from the usual (==) comparison * in that NaN is considered equal to itself and positive * and negative zero are seen as different.
              • *
              • Likewise, if the members are doubles, then, for doubles ! * x and y, * Double.valueOf(x).equals(Double.valueOf(y) must return * true. This differs from the usual (==) comparison * in that NaN is considered equal to itself and positive diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/annotation/AnnotationTypeMismatchException.java gcc-4.6.0/libjava/classpath/java/lang/annotation/AnnotationTypeMismatchException.java *** gcc-4.5.2/libjava/classpath/java/lang/annotation/AnnotationTypeMismatchException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/lang/annotation/AnnotationTypeMismatchException.java Tue Jan 11 19:46:05 2011 *************** import java.lang.reflect.Method; *** 44,50 **** * which the type has changed, since compilation or serialization * took place. The mismatch between the compiled or serialized * type and the current type causes this exception to be thrown. ! * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 44,50 ---- * which the type has changed, since compilation or serialization * took place. The mismatch between the compiled or serialized * type and the current type causes this exception to be thrown. ! * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/annotation/IncompleteAnnotationException.java gcc-4.6.0/libjava/classpath/java/lang/annotation/IncompleteAnnotationException.java *** gcc-4.5.2/libjava/classpath/java/lang/annotation/IncompleteAnnotationException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/annotation/IncompleteAnnotationException.java Tue Jan 11 19:46:05 2011 *************** package java.lang.annotation; *** 40,47 **** /** * Thrown when accessing an element within an annotation which * was added since compilation or serialization took place, and ! * does not have a default value. ! * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 40,47 ---- /** * Thrown when accessing an element within an annotation which * was added since compilation or serialization took place, and ! * does not have a default value. ! * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public class IncompleteAnnotationExcepti *** 59,65 **** * @param name the name of the missing element. */ public IncompleteAnnotationException(Class type, ! String name) { this.annotationType = type; this.elementName = name; --- 59,65 ---- * @param name the name of the missing element. */ public IncompleteAnnotationException(Class type, ! String name) { this.annotationType = type; this.elementName = name; *************** public class IncompleteAnnotationExcepti *** 100,106 **** /** * The name of the missing element. * ! * @serial the name of the missing element. */ private String elementName; --- 100,106 ---- /** * The name of the missing element. * ! * @serial the name of the missing element. */ private String elementName; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/instrument/ClassFileTransformer.java gcc-4.6.0/libjava/classpath/java/lang/instrument/ClassFileTransformer.java *** gcc-4.5.2/libjava/classpath/java/lang/instrument/ClassFileTransformer.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/instrument/ClassFileTransformer.java Tue Jan 11 19:46:05 2011 *************** public interface ClassFileTransformer *** 67,75 **** * @param protectionDomain the protection domain of the class being defined or * redefined * @param classfileBuffer the input byte buffer in class file format ! * * @return a class file buffer or null when no transformation has been performed ! * * @throws IllegalClassFormatException if the byte buffer does not represent * a well-formed class file * @see Instrumentation#redefineClasses(java.lang.instrument.ClassDefinition[]) --- 67,75 ---- * @param protectionDomain the protection domain of the class being defined or * redefined * @param classfileBuffer the input byte buffer in class file format ! * * @return a class file buffer or null when no transformation has been performed ! * * @throws IllegalClassFormatException if the byte buffer does not represent * a well-formed class file * @see Instrumentation#redefineClasses(java.lang.instrument.ClassDefinition[]) *************** public interface ClassFileTransformer *** 82,85 **** byte[] classfileBuffer) throws IllegalClassFormatException; } - --- 82,84 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/instrument/Instrumentation.java gcc-4.6.0/libjava/classpath/java/lang/instrument/Instrumentation.java *** gcc-4.5.2/libjava/classpath/java/lang/instrument/Instrumentation.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/java/lang/instrument/Instrumentation.java Tue Jan 11 19:46:05 2011 *************** package java.lang.instrument; *** 50,71 **** */ public interface Instrumentation { ! /** * Adds a ClassFileTransformer object * to the instrumentation. Each time a class is defined * or redefined, the transform method of the * transformer object is called. ! * * @param transformer the transformer to add * @throws NullPointerException if transformer is null */ void addTransformer(ClassFileTransformer transformer); ! /** * Removes the given transformer from the set of transformers * this Instrumentation object has. ! * * @param transformer the transformer to remove * @return true if the transformer was found and removed, false if * the transformer was not found --- 50,71 ---- */ public interface Instrumentation { ! /** * Adds a ClassFileTransformer object * to the instrumentation. Each time a class is defined * or redefined, the transform method of the * transformer object is called. ! * * @param transformer the transformer to add * @throws NullPointerException if transformer is null */ void addTransformer(ClassFileTransformer transformer); ! /** * Removes the given transformer from the set of transformers * this Instrumentation object has. ! * * @param transformer the transformer to remove * @return true if the transformer was found and removed, false if * the transformer was not found *************** public interface Instrumentation *** 75,81 **** /** * Returns if the current JVM supports class redefinition ! * * @return true if the current JVM supports class redefinition */ boolean isRedefineClassesSupported(); --- 75,81 ---- /** * Returns if the current JVM supports class redefinition ! * * @return true if the current JVM supports class redefinition */ boolean isRedefineClassesSupported(); *************** public interface Instrumentation *** 85,93 **** * the corresponding class files. * * @param definitions an array of classes to redefine ! * ! * @throws ClassNotFoundException if a class cannot be found ! * @throws UnmodifiableClassException if a class cannot be modified * @throws UnsupportedOperationException if the JVM does not support * redefinition or the redefinition made unsupported changes * @throws ClassFormatError if a class file is not valid --- 85,93 ---- * the corresponding class files. * * @param definitions an array of classes to redefine ! * ! * @throws ClassNotFoundException if a class cannot be found ! * @throws UnmodifiableClassException if a class cannot be modified * @throws UnsupportedOperationException if the JVM does not support * redefinition or the redefinition made unsupported changes * @throws ClassFormatError if a class file is not valid *************** public interface Instrumentation *** 97,103 **** * are unsupported * @throws ClassCircularityError if circularity occured with the new * classes ! * @throws LinkageError if a linkage error occurs * @throws NullPointerException if the definitions array is null, or any * of its element * --- 97,103 ---- * are unsupported * @throws ClassCircularityError if circularity occured with the new * classes ! * @throws LinkageError if a linkage error occurs * @throws NullPointerException if the definitions array is null, or any * of its element * *************** public interface Instrumentation *** 112,118 **** /** * Get all the classes loaded by the JVM. ! * * @return an array containing all the classes loaded by the JVM. The array * is empty if no class is loaded. */ --- 112,118 ---- /** * Get all the classes loaded by the JVM. ! * * @return an array containing all the classes loaded by the JVM. The array * is empty if no class is loaded. */ *************** public interface Instrumentation *** 120,128 **** /** * Get all the classes loaded by a given class loader ! * * @param loader the loader ! * * @return an array containing all the classes loaded by the given loader. * The array is empty if no class was loaded by the loader. */ --- 120,128 ---- /** * Get all the classes loaded by a given class loader ! * * @param loader the loader ! * * @return an array containing all the classes loaded by the given loader. * The array is empty if no class was loaded by the loader. */ *************** public interface Instrumentation *** 130,136 **** /** * Get the size of an object. It contains the size of all fields. ! * * @param objectToSize the object * @return the size of the object * @throws NullPointerException if objectToSize is null. --- 130,136 ---- /** * Get the size of an object. It contains the size of all fields. ! * * @param objectToSize the object * @return the size of the object * @throws NullPointerException if objectToSize is null. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/ClassLoadingMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/ClassLoadingMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/ClassLoadingMXBean.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/java/lang/management/ClassLoadingMXBean.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package java.lang.management; /** ! * Provides access to information about the class loading * behaviour of the current invocation of the virtual * machine. An instance of this bean is obtained by calling * {@link ManagementFactory#getClassLoadingMXBean()}. --- 38,44 ---- package java.lang.management; /** ! * Provides access to information about the class loading * behaviour of the current invocation of the virtual * machine. An instance of this bean is obtained by calling * {@link ManagementFactory#getClassLoadingMXBean()}. *************** public interface ClassLoadingMXBean *** 100,103 **** void setVerbose(boolean verbose); } - --- 100,102 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/CompilationMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/CompilationMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/CompilationMXBean.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/java/lang/management/CompilationMXBean.java Tue Jan 11 19:46:05 2011 *************** package java.lang.management; *** 50,56 **** */ public interface CompilationMXBean { ! /** * Returns the name of the Just-In-Time (JIT) compiler. * --- 50,56 ---- */ public interface CompilationMXBean { ! /** * Returns the name of the Just-In-Time (JIT) compiler. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/GarbageCollectorMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/GarbageCollectorMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/GarbageCollectorMXBean.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/java/lang/management/GarbageCollectorMXBean.java Tue Jan 11 19:46:05 2011 *************** public interface GarbageCollectorMXBean *** 70,76 **** * Note that the accumulated time may not change, even when the * collection count increases, if the time taken is sufficiently * short; this depends on the resolution of the timer used. ! * * @return the accumulated number of milliseconds spent collecting, * or -1 if this is undefined. */ --- 70,76 ---- * Note that the accumulated time may not change, even when the * collection count increases, if the time taken is sufficiently * short; this depends on the resolution of the timer used. ! * * @return the accumulated number of milliseconds spent collecting, * or -1 if this is undefined. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/ManagementFactory.java gcc-4.6.0/libjava/classpath/java/lang/management/ManagementFactory.java *** gcc-4.5.2/libjava/classpath/java/lang/management/ManagementFactory.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/lang/management/ManagementFactory.java Tue Jan 11 19:46:05 2011 *************** import javax.management.openmbean.Tabula *** 82,88 **** /** *

                * Provides access to the system's management beans via a series ! * of static methods. *

                *

                * An instance of a system management bean can be obtained by --- 82,88 ---- /** *

                * Provides access to the system's management beans via a series ! * of static methods. *

                *

                * An instance of a system management bean can be obtained by *************** public class ManagementFactory *** 251,266 **** public static OperatingSystemMXBean getOperatingSystemMXBean() { if (osBean == null) ! try ! { ! osBean = new OperatingSystemMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "operating system bean is not a " + ! "compliant management bean."); ! } return osBean; } --- 251,266 ---- public static OperatingSystemMXBean getOperatingSystemMXBean() { if (osBean == null) ! try ! { ! osBean = new OperatingSystemMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "operating system bean is not a " + ! "compliant management bean."); ! } return osBean; } *************** public class ManagementFactory *** 275,289 **** { if (runtimeBean == null) try ! { ! runtimeBean = new RuntimeMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "runtime bean is not a compliant " + ! "management bean."); ! } return runtimeBean; } --- 275,289 ---- { if (runtimeBean == null) try ! { ! runtimeBean = new RuntimeMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "runtime bean is not a compliant " + ! "management bean."); ! } return runtimeBean; } *************** public class ManagementFactory *** 298,312 **** { if (classLoadingBean == null) try ! { ! classLoadingBean = new ClassLoadingMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "class loading bean is not a " + ! "compliant management bean."); ! } return classLoadingBean; } --- 298,312 ---- { if (classLoadingBean == null) try ! { ! classLoadingBean = new ClassLoadingMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "class loading bean is not a " + ! "compliant management bean."); ! } return classLoadingBean; } *************** public class ManagementFactory *** 321,335 **** { if (threadBean == null) try ! { ! threadBean = new ThreadMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "thread bean is not a compliant " + ! "management bean."); ! } return threadBean; } --- 321,335 ---- { if (threadBean == null) try ! { ! threadBean = new ThreadMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "thread bean is not a compliant " + ! "management bean."); ! } return threadBean; } *************** public class ManagementFactory *** 344,358 **** { if (memoryBean == null) try ! { ! memoryBean = new MemoryMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "memory bean is not a compliant " + ! "management bean."); ! } return memoryBean; } --- 344,358 ---- { if (memoryBean == null) try ! { ! memoryBean = new MemoryMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "memory bean is not a compliant " + ! "management bean."); ! } return memoryBean; } *************** public class ManagementFactory *** 369,385 **** public static CompilationMXBean getCompilationMXBean() { if (compilationBean == null && ! SystemProperties.getProperty("gnu.java.compiler.name") != null) try ! { ! compilationBean = new CompilationMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "compilation bean is not a compliant " + ! "management bean."); ! } return compilationBean; } --- 369,385 ---- public static CompilationMXBean getCompilationMXBean() { if (compilationBean == null && ! SystemProperties.getProperty("gnu.java.compiler.name") != null) try ! { ! compilationBean = new CompilationMXBeanImpl(); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "compilation bean is not a compliant " + ! "management bean."); ! } return compilationBean; } *************** public class ManagementFactory *** 397,411 **** String[] names = VMManagementFactory.getMemoryPoolNames(); for (int a = 0; a < names.length; ++a) try ! { ! poolBeans.add(new MemoryPoolMXBeanImpl(names[a])); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "memory pool bean, " + a + ", is " + ! "not a compliant management bean."); ! } return poolBeans; } --- 397,411 ---- String[] names = VMManagementFactory.getMemoryPoolNames(); for (int a = 0; a < names.length; ++a) try ! { ! poolBeans.add(new MemoryPoolMXBeanImpl(names[a])); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "memory pool bean, " + a + ", is " + ! "not a compliant management bean."); ! } return poolBeans; } *************** public class ManagementFactory *** 423,437 **** String[] names = VMManagementFactory.getMemoryManagerNames(); for (int a = 0; a < names.length; ++a) try ! { ! managerBeans.add(new MemoryManagerMXBeanImpl(names[a])); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "memory manager bean, " + a + ", is " + ! "not a compliant management bean."); ! } managerBeans.addAll(getGarbageCollectorMXBeans()); return managerBeans; } --- 423,437 ---- String[] names = VMManagementFactory.getMemoryManagerNames(); for (int a = 0; a < names.length; ++a) try ! { ! managerBeans.add(new MemoryManagerMXBeanImpl(names[a])); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "memory manager bean, " + a + ", is " + ! "not a compliant management bean."); ! } managerBeans.addAll(getGarbageCollectorMXBeans()); return managerBeans; } *************** public class ManagementFactory *** 450,465 **** String[] names = VMManagementFactory.getGarbageCollectorNames(); for (int a = 0; a < names.length; ++a) try ! { ! gcBeans.add(new GarbageCollectorMXBeanImpl(names[a])); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "garbage collector bean, " + a + ! ", is not a compliant management " + ! "bean."); ! } return gcBeans; } --- 450,465 ---- String[] names = VMManagementFactory.getGarbageCollectorNames(); for (int a = 0; a < names.length; ++a) try ! { ! gcBeans.add(new GarbageCollectorMXBeanImpl(names[a])); ! } catch (NotCompliantMBeanException e) ! { ! throw new InternalError("The GNU implementation of the " + ! "garbage collector bean, " + a + ! ", is not a compliant management " + ! "bean."); ! } return gcBeans; } *************** public class ManagementFactory *** 490,566 **** { if (platformServer == null) { ! platformServer = MBeanServerFactory.createMBeanServer(); ! try ! { ! platformServer.registerMBean(getOperatingSystemMXBean(), ! new ObjectName(OPERATING_SYSTEM_MXBEAN_NAME)); ! platformServer.registerMBean(getRuntimeMXBean(), ! new ObjectName(RUNTIME_MXBEAN_NAME)); ! platformServer.registerMBean(getClassLoadingMXBean(), ! new ObjectName(CLASS_LOADING_MXBEAN_NAME)); ! platformServer.registerMBean(getThreadMXBean(), ! new ObjectName(THREAD_MXBEAN_NAME)); ! platformServer.registerMBean(getMemoryMXBean(), ! new ObjectName(MEMORY_MXBEAN_NAME)); ! CompilationMXBean compBean = getCompilationMXBean(); ! if (compBean != null) ! platformServer.registerMBean(compBean, ! new ObjectName(COMPILATION_MXBEAN_NAME)); ! Iterator beans = getMemoryPoolMXBeans().iterator(); ! while (beans.hasNext()) ! { ! MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next(); ! platformServer.registerMBean(bean, ! new ObjectName(MEMORY_POOL_MXBEAN_DOMAIN_TYPE + ! ",name=" + ! bean.getName())); ! } ! beans = getMemoryManagerMXBeans().iterator(); ! while (beans.hasNext()) ! { ! MemoryManagerMXBean bean = (MemoryManagerMXBean) beans.next(); ! platformServer.registerMBean(bean, ! new ObjectName(MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE + ! ",name=" + ! bean.getName())); ! } ! beans = getGarbageCollectorMXBeans().iterator(); ! while (beans.hasNext()) ! { ! GarbageCollectorMXBean bean = (GarbageCollectorMXBean) beans.next(); ! platformServer.registerMBean(bean, ! new ObjectName(GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE + ! ",name=" + ! bean.getName())); ! } ! platformServer.registerMBean(LogManager.getLoggingMXBean(), ! new ObjectName(LogManager.LOGGING_MXBEAN_NAME)); ! } ! catch (InstanceAlreadyExistsException e) ! { ! throw (Error) ! (new InternalError("One of the management beans is " + ! "already registered.").initCause(e)); ! } ! catch (MBeanRegistrationException e) ! { ! throw (Error) ! (new InternalError("One of the management beans' preRegister " + ! "methods threw an exception.").initCause(e)); ! } ! catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("One of the management beans is " + ! "not compliant.").initCause(e)); ! } ! catch (MalformedObjectNameException e) ! { ! throw (Error) ! (new InternalError("The object name of a management bean is " + ! "not compliant.").initCause(e)); ! } } return platformServer; } --- 490,566 ---- { if (platformServer == null) { ! platformServer = MBeanServerFactory.createMBeanServer(); ! try ! { ! platformServer.registerMBean(getOperatingSystemMXBean(), ! new ObjectName(OPERATING_SYSTEM_MXBEAN_NAME)); ! platformServer.registerMBean(getRuntimeMXBean(), ! new ObjectName(RUNTIME_MXBEAN_NAME)); ! platformServer.registerMBean(getClassLoadingMXBean(), ! new ObjectName(CLASS_LOADING_MXBEAN_NAME)); ! platformServer.registerMBean(getThreadMXBean(), ! new ObjectName(THREAD_MXBEAN_NAME)); ! platformServer.registerMBean(getMemoryMXBean(), ! new ObjectName(MEMORY_MXBEAN_NAME)); ! CompilationMXBean compBean = getCompilationMXBean(); ! if (compBean != null) ! platformServer.registerMBean(compBean, ! new ObjectName(COMPILATION_MXBEAN_NAME)); ! Iterator beans = getMemoryPoolMXBeans().iterator(); ! while (beans.hasNext()) ! { ! MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next(); ! platformServer.registerMBean(bean, ! new ObjectName(MEMORY_POOL_MXBEAN_DOMAIN_TYPE + ! ",name=" + ! bean.getName())); ! } ! beans = getMemoryManagerMXBeans().iterator(); ! while (beans.hasNext()) ! { ! MemoryManagerMXBean bean = (MemoryManagerMXBean) beans.next(); ! platformServer.registerMBean(bean, ! new ObjectName(MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE + ! ",name=" + ! bean.getName())); ! } ! beans = getGarbageCollectorMXBeans().iterator(); ! while (beans.hasNext()) ! { ! GarbageCollectorMXBean bean = (GarbageCollectorMXBean) beans.next(); ! platformServer.registerMBean(bean, ! new ObjectName(GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE + ! ",name=" + ! bean.getName())); ! } ! platformServer.registerMBean(LogManager.getLoggingMXBean(), ! new ObjectName(LogManager.LOGGING_MXBEAN_NAME)); ! } ! catch (InstanceAlreadyExistsException e) ! { ! throw (Error) ! (new InternalError("One of the management beans is " + ! "already registered.").initCause(e)); ! } ! catch (MBeanRegistrationException e) ! { ! throw (Error) ! (new InternalError("One of the management beans' preRegister " + ! "methods threw an exception.").initCause(e)); ! } ! catch (NotCompliantMBeanException e) ! { ! throw (Error) ! (new InternalError("One of the management beans is " + ! "not compliant.").initCause(e)); ! } ! catch (MalformedObjectNameException e) ! { ! throw (Error) ! (new InternalError("The object name of a management bean is " + ! "not compliant.").initCause(e)); ! } } return platformServer; } *************** public class ManagementFactory *** 600,650 **** * @throws IOException if the connection throws one. */ public static T newPlatformMXBeanProxy(MBeanServerConnection connection, ! String mxbeanName, ! Class mxbeanInterface) throws IOException { if (!(mxbeanName.equals(CLASS_LOADING_MXBEAN_NAME) || ! mxbeanName.equals(COMPILATION_MXBEAN_NAME) || ! mxbeanName.startsWith(GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE) || ! mxbeanName.startsWith(MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE) || ! mxbeanName.equals(MEMORY_MXBEAN_NAME) || ! mxbeanName.startsWith(MEMORY_POOL_MXBEAN_DOMAIN_TYPE) || ! mxbeanName.equals(OPERATING_SYSTEM_MXBEAN_NAME) || ! mxbeanName.equals(RUNTIME_MXBEAN_NAME) || ! mxbeanName.equals(THREAD_MXBEAN_NAME))) { ! throw new IllegalArgumentException("The named bean, " + mxbeanName + ! ", is not a platform name."); } if ((mxbeanName.equals(CLASS_LOADING_MXBEAN_NAME) && ! mxbeanInterface != ClassLoadingMXBean.class) || ! (mxbeanName.equals(COMPILATION_MXBEAN_NAME) && ! mxbeanInterface != CompilationMXBean.class) || ! (mxbeanName.startsWith(GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE) && ! mxbeanInterface != GarbageCollectorMXBean.class) || ! (mxbeanName.startsWith(MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE) && ! mxbeanInterface != MemoryManagerMXBean.class) || ! (mxbeanName.equals(MEMORY_MXBEAN_NAME) && ! mxbeanInterface != MemoryMXBean.class) || ! (mxbeanName.startsWith(MEMORY_POOL_MXBEAN_DOMAIN_TYPE) && ! mxbeanInterface != MemoryPoolMXBean.class) || ! (mxbeanName.equals(OPERATING_SYSTEM_MXBEAN_NAME) && ! mxbeanInterface != OperatingSystemMXBean.class) || ! (mxbeanName.equals(RUNTIME_MXBEAN_NAME) && ! mxbeanInterface != RuntimeMXBean.class) || ! (mxbeanName.equals(THREAD_MXBEAN_NAME) && ! mxbeanInterface != ThreadMXBean.class)) throw new IllegalArgumentException("The interface, " + mxbeanInterface + ! ", does not match the bean, " + mxbeanName); ObjectName bean; try { ! bean = new ObjectName(mxbeanName); } catch (MalformedObjectNameException e) { ! throw new IllegalArgumentException("The named bean is invalid."); } if (!(connection.isRegistered(bean))) throw new IllegalArgumentException("The bean is not registered on this connection."); --- 600,650 ---- * @throws IOException if the connection throws one. */ public static T newPlatformMXBeanProxy(MBeanServerConnection connection, ! String mxbeanName, ! Class mxbeanInterface) throws IOException { if (!(mxbeanName.equals(CLASS_LOADING_MXBEAN_NAME) || ! mxbeanName.equals(COMPILATION_MXBEAN_NAME) || ! mxbeanName.startsWith(GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE) || ! mxbeanName.startsWith(MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE) || ! mxbeanName.equals(MEMORY_MXBEAN_NAME) || ! mxbeanName.startsWith(MEMORY_POOL_MXBEAN_DOMAIN_TYPE) || ! mxbeanName.equals(OPERATING_SYSTEM_MXBEAN_NAME) || ! mxbeanName.equals(RUNTIME_MXBEAN_NAME) || ! mxbeanName.equals(THREAD_MXBEAN_NAME))) { ! throw new IllegalArgumentException("The named bean, " + mxbeanName + ! ", is not a platform name."); } if ((mxbeanName.equals(CLASS_LOADING_MXBEAN_NAME) && ! mxbeanInterface != ClassLoadingMXBean.class) || ! (mxbeanName.equals(COMPILATION_MXBEAN_NAME) && ! mxbeanInterface != CompilationMXBean.class) || ! (mxbeanName.startsWith(GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE) && ! mxbeanInterface != GarbageCollectorMXBean.class) || ! (mxbeanName.startsWith(MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE) && ! mxbeanInterface != MemoryManagerMXBean.class) || ! (mxbeanName.equals(MEMORY_MXBEAN_NAME) && ! mxbeanInterface != MemoryMXBean.class) || ! (mxbeanName.startsWith(MEMORY_POOL_MXBEAN_DOMAIN_TYPE) && ! mxbeanInterface != MemoryPoolMXBean.class) || ! (mxbeanName.equals(OPERATING_SYSTEM_MXBEAN_NAME) && ! mxbeanInterface != OperatingSystemMXBean.class) || ! (mxbeanName.equals(RUNTIME_MXBEAN_NAME) && ! mxbeanInterface != RuntimeMXBean.class) || ! (mxbeanName.equals(THREAD_MXBEAN_NAME) && ! mxbeanInterface != ThreadMXBean.class)) throw new IllegalArgumentException("The interface, " + mxbeanInterface + ! ", does not match the bean, " + mxbeanName); ObjectName bean; try { ! bean = new ObjectName(mxbeanName); } catch (MalformedObjectNameException e) { ! throw new IllegalArgumentException("The named bean is invalid."); } if (!(connection.isRegistered(bean))) throw new IllegalArgumentException("The bean is not registered on this connection."); *************** public class ManagementFactory *** 654,661 **** else interfaces = new Class[] { mxbeanInterface }; return (T) Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), ! interfaces, ! new ManagementInvocationHandler(connection, bean)); } /** --- 654,661 ---- else interfaces = new Class[] { mxbeanInterface }; return (T) Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), ! interfaces, ! new ManagementInvocationHandler(connection, bean)); } /** *************** public class ManagementFactory *** 688,694 **** * @param bean the bean to proxy. */ public ManagementInvocationHandler(MBeanServerConnection conn, ! ObjectName bean) throws IOException { this.conn = conn; --- 688,694 ---- * @param bean the bean to proxy. */ public ManagementInvocationHandler(MBeanServerConnection conn, ! ObjectName bean) throws IOException { this.conn = conn; *************** public class ManagementFactory *** 715,760 **** { String name = method.getName(); if (name.equals("toString")) ! return "Proxy for " + bean + " using " + conn; if (name.equals("addNotificationListener")) ! { ! conn.addNotificationListener(bean, ! (NotificationListener) args[0], ! (NotificationFilter) args[1], ! args[2]); ! return null; ! } if (name.equals("getNotificationInfo")) ! return conn.getMBeanInfo(bean).getNotifications(); if (name.equals("removeNotificationListener")) ! { ! if (args.length == 1) ! conn.removeNotificationListener(bean, ! (NotificationListener) ! args[0]); ! else ! conn.removeNotificationListener(bean, ! (NotificationListener) ! args[0], ! (NotificationFilter) ! args[1], args[2]); ! return null; ! } String attrib = null; if (name.startsWith("get")) ! attrib = name.substring(3); else if (name.startsWith("is")) ! attrib = name.substring(2); if (attrib != null) ! return translate(conn.getAttribute(bean, attrib), method); else if (name.startsWith("set")) ! { ! conn.setAttribute(bean, new Attribute(name.substring(3), ! args[0])); ! return null; ! } else ! return translate(conn.invoke(bean, name, args, null), method); } /** --- 715,760 ---- { String name = method.getName(); if (name.equals("toString")) ! return "Proxy for " + bean + " using " + conn; if (name.equals("addNotificationListener")) ! { ! conn.addNotificationListener(bean, ! (NotificationListener) args[0], ! (NotificationFilter) args[1], ! args[2]); ! return null; ! } if (name.equals("getNotificationInfo")) ! return conn.getMBeanInfo(bean).getNotifications(); if (name.equals("removeNotificationListener")) ! { ! if (args.length == 1) ! conn.removeNotificationListener(bean, ! (NotificationListener) ! args[0]); ! else ! conn.removeNotificationListener(bean, ! (NotificationListener) ! args[0], ! (NotificationFilter) ! args[1], args[2]); ! return null; ! } String attrib = null; if (name.startsWith("get")) ! attrib = name.substring(3); else if (name.startsWith("is")) ! attrib = name.substring(2); if (attrib != null) ! return translate(conn.getAttribute(bean, attrib), method); else if (name.startsWith("set")) ! { ! conn.setAttribute(bean, new Attribute(name.substring(3), ! args[0])); ! return null; ! } else ! return translate(conn.invoke(bean, name, args, null), method); } /** *************** public class ManagementFactory *** 772,815 **** { Class returnType = method.getReturnType(); if (returnType.isEnum()) ! { ! String ename = (String) otype; ! Enum[] constants = (Enum[]) returnType.getEnumConstants(); ! for (Enum c : constants) ! if (c.name().equals(ename)) ! return c; ! } if (List.class.isAssignableFrom(returnType)) ! { ! Object[] elems = (Object[]) otype; ! List l = new ArrayList(elems.length); ! for (Object elem : elems) ! l.add(elem); ! return l; ! } if (Map.class.isAssignableFrom(returnType)) ! { ! TabularData data = (TabularData) otype; ! Map m = new HashMap(data.size()); ! for (Object val : data.values()) ! { ! CompositeData vals = (CompositeData) val; ! m.put(vals.get("key"), vals.get("value")); ! } ! return m; ! } try ! { ! Method m = returnType.getMethod("from", ! new Class[] ! { CompositeData.class }); ! return m.invoke(null, (CompositeData) otype); ! } catch (NoSuchMethodException e) ! { ! /* Ignored; we expect this if this ! isn't a from(CompositeData) class */ ! } return otype; } --- 772,815 ---- { Class returnType = method.getReturnType(); if (returnType.isEnum()) ! { ! String ename = (String) otype; ! Enum[] constants = (Enum[]) returnType.getEnumConstants(); ! for (Enum c : constants) ! if (c.name().equals(ename)) ! return c; ! } if (List.class.isAssignableFrom(returnType)) ! { ! Object[] elems = (Object[]) otype; ! List l = new ArrayList(elems.length); ! for (Object elem : elems) ! l.add(elem); ! return l; ! } if (Map.class.isAssignableFrom(returnType)) ! { ! TabularData data = (TabularData) otype; ! Map m = new HashMap(data.size()); ! for (Object val : data.values()) ! { ! CompositeData vals = (CompositeData) val; ! m.put(vals.get("key"), vals.get("value")); ! } ! return m; ! } try ! { ! Method m = returnType.getMethod("from", ! new Class[] ! { CompositeData.class }); ! return m.invoke(null, (CompositeData) otype); ! } catch (NoSuchMethodException e) ! { ! /* Ignored; we expect this if this ! isn't a from(CompositeData) class */ ! } return otype; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/ManagementPermission.java gcc-4.6.0/libjava/classpath/java/lang/management/ManagementPermission.java *** gcc-4.5.2/libjava/classpath/java/lang/management/ManagementPermission.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/java/lang/management/ManagementPermission.java Tue Jan 11 19:46:05 2011 *************** import java.security.BasicPermission; *** 71,77 **** * usage limits changed. Malicious code could use * this to alter the behaviour of the system.

              • *
              ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 71,77 ---- * usage limits changed. Malicious code could use * this to alter the behaviour of the system.
            • *
            ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public final class ManagementPermission *** 127,132 **** if (!(actions == null || actions.equals(""))) throw new IllegalArgumentException("Invalid actions."); } - - } --- 127,131 ---- if (!(actions == null || actions.equals(""))) throw new IllegalArgumentException("Invalid actions."); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/MemoryMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/MemoryMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/MemoryMXBean.java Sat Jul 29 18:39:18 2006 --- gcc-4.6.0/libjava/classpath/java/lang/management/MemoryMXBean.java Tue Jan 11 19:46:05 2011 *************** package java.lang.management; *** 39,45 **** /** *

            ! * Provides access to information about the memory used * by the virtual machine. An instance of this bean is * obtained by calling * {@link ManagementFactory#getMemoryMXBean()}. --- 39,45 ---- /** *

            ! * Provides access to information about the memory used * by the virtual machine. An instance of this bean is * obtained by calling * {@link ManagementFactory#getMemoryMXBean()}. *************** package java.lang.management; *** 104,110 **** */ public interface MemoryMXBean { ! /** * Instigates a garbage collection cycle. The virtual * machine's garbage collector should make the best --- 104,110 ---- */ public interface MemoryMXBean { ! /** * Instigates a garbage collection cycle. The virtual * machine's garbage collector should make the best *************** public interface MemoryMXBean *** 135,141 **** * memory. */ MemoryUsage getNonHeapMemoryUsage(); ! /** * Returns the number of objects which are waiting to * be garbage collected (finalized). An object is --- 135,141 ---- * memory. */ MemoryUsage getNonHeapMemoryUsage(); ! /** * Returns the number of objects which are waiting to * be garbage collected (finalized). An object is diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/MemoryManagerMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/MemoryManagerMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/MemoryManagerMXBean.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/java/lang/management/MemoryManagerMXBean.java Tue Jan 11 19:46:05 2011 *************** package java.lang.management; *** 49,58 **** public interface MemoryManagerMXBean { ! /** * Returns an array containing the names of the memory pools * this memory manager manages. ! * * @return an array containing the name of each memory pool * this manager is responsible for. */ --- 49,58 ---- public interface MemoryManagerMXBean { ! /** * Returns an array containing the names of the memory pools * this memory manager manages. ! * * @return an array containing the name of each memory pool * this manager is responsible for. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/MemoryNotificationInfo.java gcc-4.6.0/libjava/classpath/java/lang/management/MemoryNotificationInfo.java *** gcc-4.5.2/libjava/classpath/java/lang/management/MemoryNotificationInfo.java Sat Jul 29 18:39:18 2006 --- gcc-4.6.0/libjava/classpath/java/lang/management/MemoryNotificationInfo.java Tue Jan 11 19:46:05 2011 *************** import javax.management.openmbean.Simple *** 74,80 **** * {@link #from(javax.management.openmbean.CompositeData)} method may be * used to unwrap the value and obtain an instance of this class. *

            ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 74,80 ---- * {@link #from(javax.management.openmbean.CompositeData)} method may be * used to unwrap the value and obtain an instance of this class. *

            ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public class MemoryNotificationInfo *** 87,93 **** * threshold again before another notification is emitted. The value is * java.management.memory.threshold.exceeded. */ ! public static final String MEMORY_THRESHOLD_EXCEEDED = "java.management.memory.threshold.exceeded"; /** --- 87,93 ---- * threshold again before another notification is emitted. The value is * java.management.memory.threshold.exceeded. */ ! public static final String MEMORY_THRESHOLD_EXCEEDED = "java.management.memory.threshold.exceeded"; /** *************** public class MemoryNotificationInfo *** 153,161 **** * committedjava.lang.Long * maxjava.lang.Long * ! * * @param data the composite data structure to take values from. ! * @return a new instance containing the values from the * composite data structure, or null * if the data structure was also null. * @throws IllegalArgumentException if the composite data structure --- 153,161 ---- * committedjava.lang.Long * maxjava.lang.Long * ! * * @param data the composite data structure to take values from. ! * @return a new instance containing the values from the * composite data structure, or null * if the data structure was also null. * @throws IllegalArgumentException if the composite data structure *************** public class MemoryNotificationInfo *** 172,179 **** ThreadInfo.checkAttribute(type, "count", SimpleType.LONG); MemoryUsage usage = MemoryUsage.from((CompositeData) data.get("usage")); return new MemoryNotificationInfo(((String) data.get("poolName")), ! usage, ! ((Long) data.get("count")).longValue()); } /** --- 172,179 ---- ThreadInfo.checkAttribute(type, "count", SimpleType.LONG); MemoryUsage usage = MemoryUsage.from((CompositeData) data.get("usage")); return new MemoryNotificationInfo(((String) data.get("poolName")), ! usage, ! ((Long) data.get("count")).longValue()); } /** *************** public class MemoryNotificationInfo *** 212,215 **** } } - --- 212,214 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/MemoryPoolMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/MemoryPoolMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/MemoryPoolMXBean.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/management/MemoryPoolMXBean.java Tue Jan 11 19:46:05 2011 *************** public interface MemoryPoolMXBean *** 209,215 **** long getUsageThresholdCount(); /** ! * Returns true if the collection usage level is equal to * or greater than the collection usage threshold. * * @return true if the collection usage threshold has been --- 209,215 ---- long getUsageThresholdCount(); /** ! * Returns true if the collection usage level is equal to * or greater than the collection usage threshold. * * @return true if the collection usage threshold has been *************** public interface MemoryPoolMXBean *** 236,242 **** boolean isCollectionUsageThresholdSupported(); /** ! * Returns true if the usage level is equal to * or greater than the usage threshold. * * @return true if the usage threshold has been --- 236,242 ---- boolean isCollectionUsageThresholdSupported(); /** ! * Returns true if the usage level is equal to * or greater than the usage threshold. * * @return true if the usage threshold has been *************** public interface MemoryPoolMXBean *** 260,266 **** * @see #setUsageThreshold(long) */ boolean isUsageThresholdSupported(); ! /** * Returns true if this memory pool is still valid. A memory pool * becomes invalid when it is removed by the virtual machine and --- 260,266 ---- * @see #setUsageThreshold(long) */ boolean isUsageThresholdSupported(); ! /** * Returns true if this memory pool is still valid. A memory pool * becomes invalid when it is removed by the virtual machine and diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/MemoryType.java gcc-4.6.0/libjava/classpath/java/lang/management/MemoryType.java *** gcc-4.5.2/libjava/classpath/java/lang/management/MemoryType.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/management/MemoryType.java Tue Jan 11 19:46:05 2011 *************** public enum MemoryType *** 48,51 **** { HEAP, NON_HEAP; } - --- 48,50 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/MemoryUsage.java gcc-4.6.0/libjava/classpath/java/lang/management/MemoryUsage.java *** gcc-4.5.2/libjava/classpath/java/lang/management/MemoryUsage.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/lang/management/MemoryUsage.java Tue Jan 11 19:46:05 2011 *************** public class MemoryUsage *** 119,147 **** * above. */ public MemoryUsage(long init, long used, long committed, ! long maximum) { if (init < -1) throw new IllegalArgumentException("Initial value of " ! + init + " is too small."); if (used < 0) throw new IllegalArgumentException("Used value of " ! + used + " is too small."); if (committed < 0) throw new IllegalArgumentException("Committed value of " ! + committed + " is too small."); if (committed < used) throw new IllegalArgumentException("Committed value of " ! + committed + " is below " ! + used + ", the amount used."); if (maximum < -1) throw new IllegalArgumentException("Maximum value of " ! + maximum + " is too small."); if (maximum != -1 && maximum < committed) ! throw new IllegalArgumentException("Maximum value of " ! + maximum + " is below " ! + committed + ", the amount " ! + "committed."); this.init = init; this.used = used; this.committed = committed; --- 119,147 ---- * above. */ public MemoryUsage(long init, long used, long committed, ! long maximum) { if (init < -1) throw new IllegalArgumentException("Initial value of " ! + init + " is too small."); if (used < 0) throw new IllegalArgumentException("Used value of " ! + used + " is too small."); if (committed < 0) throw new IllegalArgumentException("Committed value of " ! + committed + " is too small."); if (committed < used) throw new IllegalArgumentException("Committed value of " ! + committed + " is below " ! + used + ", the amount used."); if (maximum < -1) throw new IllegalArgumentException("Maximum value of " ! + maximum + " is too small."); if (maximum != -1 && maximum < committed) ! throw new IllegalArgumentException("Maximum value of " ! + maximum + " is below " ! + committed + ", the amount " ! + "committed."); this.init = init; this.used = used; this.committed = committed; *************** public class MemoryUsage *** 165,173 **** *

            * All should have the type, java.lang.Long. *

            ! * * @param data the composite data structure to take values from. ! * @return a new instance containing the values from the * composite data structure, or null * if the data structure was also null. * @throws IllegalArgumentException if the composite data structure --- 165,173 ---- *

            * All should have the type, java.lang.Long. *

            ! * * @param data the composite data structure to take values from. ! * @return a new instance containing the values from the * composite data structure, or null * if the data structure was also null. * @throws IllegalArgumentException if the composite data structure *************** public class MemoryUsage *** 185,193 **** ThreadInfo.checkAttribute(type, "Committed", SimpleType.LONG); ThreadInfo.checkAttribute(type, "Max", SimpleType.LONG); return new MemoryUsage(((Long) data.get("Init")).longValue(), ! ((Long) data.get("Used")).longValue(), ! ((Long) data.get("Committed")).longValue(), ! ((Long) data.get("Max")).longValue()); } /** --- 185,193 ---- ThreadInfo.checkAttribute(type, "Committed", SimpleType.LONG); ThreadInfo.checkAttribute(type, "Max", SimpleType.LONG); return new MemoryUsage(((Long) data.get("Init")).longValue(), ! ((Long) data.get("Used")).longValue(), ! ((Long) data.get("Committed")).longValue(), ! ((Long) data.get("Max")).longValue()); } /** *************** public class MemoryUsage *** 217,223 **** /** * Returns the maximum amount of memory available for this ! * pool (in bytes). This amount is not guaranteed to * actually be usable. This method may return -1, if the * value is undefined. * --- 217,223 ---- /** * Returns the maximum amount of memory available for this ! * pool (in bytes). This amount is not guaranteed to * actually be usable. This method may return -1, if the * value is undefined. * *************** public class MemoryUsage *** 262,265 **** } } - --- 262,264 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/MonitorInfo.java gcc-4.6.0/libjava/classpath/java/lang/management/MonitorInfo.java *** gcc-4.5.2/libjava/classpath/java/lang/management/MonitorInfo.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/lang/management/MonitorInfo.java Tue Jan 11 19:46:05 2011 *************** public class MonitorInfo *** 82,97 **** * < 0. */ public MonitorInfo(String className, int identityHashCode, int stackDepth, ! StackTraceElement stackFrame) { super(className, identityHashCode); if (stackFrame == null && stackDepth >= 0) throw new IllegalArgumentException("The stack frame is null, but the " + ! "stack depth is greater than or equal " + ! "to zero."); if (stackFrame != null && stackDepth < 0) throw new IllegalArgumentException("The stack frame is not null, but the " + ! "stack depth is less than zero."); this.stackDepth = stackDepth; this.stackFrame = stackFrame; } --- 82,97 ---- * < 0. */ public MonitorInfo(String className, int identityHashCode, int stackDepth, ! StackTraceElement stackFrame) { super(className, identityHashCode); if (stackFrame == null && stackDepth >= 0) throw new IllegalArgumentException("The stack frame is null, but the " + ! "stack depth is greater than or equal " + ! "to zero."); if (stackFrame != null && stackDepth < 0) throw new IllegalArgumentException("The stack frame is not null, but the " + ! "stack depth is less than zero."); this.stackDepth = stackDepth; this.stackFrame = stackFrame; } *************** public class MonitorInfo *** 123,131 **** * lineNumberjava.lang.Integer * nativeMethodjava.lang.Boolean * ! * * @param data the composite data structure to take values from. ! * @return a new instance containing the values from the * composite data structure, or null * if the data structure was also null. * @throws IllegalArgumentException if the composite data structure --- 123,131 ---- * lineNumberjava.lang.Integer * nativeMethodjava.lang.Boolean * ! * * @param data the composite data structure to take values from. ! * @return a new instance containing the values from the * composite data structure, or null * if the data structure was also null. * @throws IllegalArgumentException if the composite data structure *************** public class MonitorInfo *** 141,155 **** ThreadInfo.checkAttribute(type, "IdentityHashCode", SimpleType.INTEGER); ThreadInfo.checkAttribute(type, "LockedStackDepth", SimpleType.INTEGER); ThreadInfo.checkAttribute(type, "LockedStackFrame", ! ThreadInfo.getStackTraceType()); CompositeData frame = (CompositeData) data.get("LockedStackFrame"); return new MonitorInfo((String) data.get("ClassName"), ! (Integer) data.get("IdentityHashCode"), ! (Integer) data.get("LockedStackDepth"), ! new StackTraceElement((String) frame.get("ClassName"), ! (String) frame.get("MethodName"), ! (String) frame.get("FileName"), ! (Integer) frame.get("LineNumber"))); } /** --- 141,155 ---- ThreadInfo.checkAttribute(type, "IdentityHashCode", SimpleType.INTEGER); ThreadInfo.checkAttribute(type, "LockedStackDepth", SimpleType.INTEGER); ThreadInfo.checkAttribute(type, "LockedStackFrame", ! ThreadInfo.getStackTraceType()); CompositeData frame = (CompositeData) data.get("LockedStackFrame"); return new MonitorInfo((String) data.get("ClassName"), ! (Integer) data.get("IdentityHashCode"), ! (Integer) data.get("LockedStackDepth"), ! new StackTraceElement((String) frame.get("ClassName"), ! (String) frame.get("MethodName"), ! (String) frame.get("FileName"), ! (Integer) frame.get("LineNumber"))); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/OperatingSystemMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/OperatingSystemMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/OperatingSystemMXBean.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/lang/management/OperatingSystemMXBean.java Tue Jan 11 19:46:05 2011 *************** public interface OperatingSystemMXBean *** 89,95 **** /** * Returns the system load average for the last minute, or -1 * if this is unavailable. The availability and calculation ! * of the load average is system-dependent, but is usually * a damped time-dependent average obtained by monitoring the * number of queued and running processes. It is expected * that this method will be called frequently to monitor the --- 89,95 ---- /** * Returns the system load average for the last minute, or -1 * if this is unavailable. The availability and calculation ! * of the load average is system-dependent, but is usually * a damped time-dependent average obtained by monitoring the * number of queued and running processes. It is expected * that this method will be called frequently to monitor the diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/RuntimeMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/RuntimeMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/RuntimeMXBean.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/management/RuntimeMXBean.java Tue Jan 11 19:46:05 2011 *************** public interface RuntimeMXBean *** 56,62 **** * Returns the boot classpath used by the virtual machine. This * value follows the standard path syntax used by the underlying * operating system (e.g. directories separated by ':' on UNIX ! * or ';' on Windows). *

            *

            * Supplying this value is optional. Users should check the --- 56,62 ---- * Returns the boot classpath used by the virtual machine. This * value follows the standard path syntax used by the underlying * operating system (e.g. directories separated by ':' on UNIX ! * or ';' on Windows). *

            *

            * Supplying this value is optional. Users should check the *************** public interface RuntimeMXBean *** 81,87 **** * property via {@link System#getProperty(String)}. This value * follows the standard path syntax used by the underlying operating * system (e.g. directories separated by ':' on UNIX or ';' on ! * Windows). * * @return the classpath used by the system class loader. * @throws SecurityException if a security manager exists which --- 81,87 ---- * property via {@link System#getProperty(String)}. This value * follows the standard path syntax used by the underlying operating * system (e.g. directories separated by ':' on UNIX or ';' on ! * Windows). * * @return the classpath used by the system class loader. * @throws SecurityException if a security manager exists which *************** public interface RuntimeMXBean *** 114,120 **** * {@link System#getProperty(String)}. This value follows the * standard path syntax used by the underlying operating * system (e.g. directories separated by ':' on UNIX or ';' on ! * Windows). * * @return the library path. * @throws SecurityException if a security manager exists which --- 114,120 ---- * {@link System#getProperty(String)}. This value follows the * standard path syntax used by the underlying operating * system (e.g. directories separated by ':' on UNIX or ';' on ! * Windows). * * @return the library path. * @throws SecurityException if a security manager exists which *************** public interface RuntimeMXBean *** 142,148 **** * same virtual machine (for example, it might include * the process identifier or the host name of the machine * on which it is running). The intention is that this ! * name refers to the precise entity that the other data * supplied by this bean refers to, rather than the VM * in general. * --- 142,148 ---- * same virtual machine (for example, it might include * the process identifier or the host name of the machine * on which it is running). The intention is that this ! * name refers to the precise entity that the other data * supplied by this bean refers to, rather than the VM * in general. * *************** public interface RuntimeMXBean *** 154,160 **** * Returns the specification name of the virtual machine. * This is equivalent to obtaining the * java.vm.specification.name property via ! * {@link System#getProperty(String)}. * * @return the specification name of the VM. * @throws SecurityException if a security manager exists which --- 154,160 ---- * Returns the specification name of the virtual machine. * This is equivalent to obtaining the * java.vm.specification.name property via ! * {@link System#getProperty(String)}. * * @return the specification name of the VM. * @throws SecurityException if a security manager exists which *************** public interface RuntimeMXBean *** 169,175 **** * Returns the specification vendor of the virtual machine. * This is equivalent to obtaining the * java.vm.specification.vendor property via ! * {@link System#getProperty(String)}. * * @return the specification vendor of the VM. * @throws SecurityException if a security manager exists which --- 169,175 ---- * Returns the specification vendor of the virtual machine. * This is equivalent to obtaining the * java.vm.specification.vendor property via ! * {@link System#getProperty(String)}. * * @return the specification vendor of the VM. * @throws SecurityException if a security manager exists which *************** public interface RuntimeMXBean *** 184,190 **** * Returns the specification version of the virtual machine. * This is equivalent to obtaining the * java.vm.specification.version property via ! * {@link System#getProperty(String)}. * * @return the specification version of the VM. * @throws SecurityException if a security manager exists which --- 184,190 ---- * Returns the specification version of the virtual machine. * This is equivalent to obtaining the * java.vm.specification.version property via ! * {@link System#getProperty(String)}. * * @return the specification version of the VM. * @throws SecurityException if a security manager exists which *************** public interface RuntimeMXBean *** 198,204 **** /** * Returns the approximate start time of the virtual machine * in milliseconds. ! * * @return the start time of the virtual machine. */ long getStartTime(); --- 198,204 ---- /** * Returns the approximate start time of the virtual machine * in milliseconds. ! * * @return the start time of the virtual machine. */ long getStartTime(); *************** public interface RuntimeMXBean *** 216,222 **** /** * Returns the uptime of the virtual machine in milliseconds. ! * * @return the uptime of the virtual machine. */ long getUptime(); --- 216,222 ---- /** * Returns the uptime of the virtual machine in milliseconds. ! * * @return the uptime of the virtual machine. */ long getUptime(); *************** public interface RuntimeMXBean *** 225,231 **** * Returns the implementation name of the virtual machine. * This is equivalent to obtaining the * java.vm.name property via ! * {@link System#getProperty(String)}. * * @return the implementation name of the VM. * @throws SecurityException if a security manager exists which --- 225,231 ---- * Returns the implementation name of the virtual machine. * This is equivalent to obtaining the * java.vm.name property via ! * {@link System#getProperty(String)}. * * @return the implementation name of the VM. * @throws SecurityException if a security manager exists which *************** public interface RuntimeMXBean *** 240,246 **** * Returns the implementation vendor of the virtual machine. * This is equivalent to obtaining the * java.vm.vendor property via ! * {@link System#getProperty(String)}. * * @return the implementation vendor of the VM. * @throws SecurityException if a security manager exists which --- 240,246 ---- * Returns the implementation vendor of the virtual machine. * This is equivalent to obtaining the * java.vm.vendor property via ! * {@link System#getProperty(String)}. * * @return the implementation vendor of the VM. * @throws SecurityException if a security manager exists which *************** public interface RuntimeMXBean *** 255,261 **** * Returns the implementation version of the virtual machine. * This is equivalent to obtaining the * java.vm.version property via ! * {@link System#getProperty(String)}. * * @return the implementation version of the VM. * @throws SecurityException if a security manager exists which --- 255,261 ---- * Returns the implementation version of the virtual machine. * This is equivalent to obtaining the * java.vm.version property via ! * {@link System#getProperty(String)}. * * @return the implementation version of the VM. * @throws SecurityException if a security manager exists which diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/ThreadInfo.java gcc-4.6.0/libjava/classpath/java/lang/management/ThreadInfo.java *** gcc-4.5.2/libjava/classpath/java/lang/management/ThreadInfo.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/lang/management/ThreadInfo.java Tue Jan 11 19:46:05 2011 *************** public class ThreadInfo *** 211,217 **** * lock, or -1 if it doesn't have an owner * (only used if blocked) * @param lockOwnerName the name of the thread which owns the monitor ! * lock, or null if it doesn't have an * owner (only used if blocked) * @param waitedCount the number of times the thread has been in a * waiting state. --- 211,217 ---- * lock, or -1 if it doesn't have an owner * (only used if blocked) * @param lockOwnerName the name of the thread which owns the monitor ! * lock, or null if it doesn't have an * owner (only used if blocked) * @param waitedCount the number of times the thread has been in a * waiting state. *************** public class ThreadInfo *** 227,242 **** * by the thread. * @param lockedSynchronizers an array of {@link LockInfo} objects * representing locks held on ownable ! * synchronizers by the thread. * * @since 1.6 */ private ThreadInfo(long threadId, String threadName, Thread.State threadState, ! long blockedCount, long blockedTime, String lockName, ! long lockOwnerId, String lockOwnerName, long waitedCount, ! long waitedTime, boolean isInNative, boolean isSuspended, ! StackTraceElement[] trace, MonitorInfo[] lockedMonitors, ! LockInfo[] lockedSynchronizers) { this.threadId = threadId; this.threadName = threadName; --- 227,242 ---- * by the thread. * @param lockedSynchronizers an array of {@link LockInfo} objects * representing locks held on ownable ! * synchronizers by the thread. * * @since 1.6 */ private ThreadInfo(long threadId, String threadName, Thread.State threadState, ! long blockedCount, long blockedTime, String lockName, ! long lockOwnerId, String lockOwnerName, long waitedCount, ! long waitedTime, boolean isInNative, boolean isSuspended, ! StackTraceElement[] trace, MonitorInfo[] lockedMonitors, ! LockInfo[] lockedSynchronizers) { this.threadId = threadId; this.threadName = threadName; *************** public class ThreadInfo *** 266,281 **** * or of the wrong type. */ static void checkAttribute(CompositeType ctype, String name, ! OpenType type) throws IllegalArgumentException { OpenType foundType = ctype.getType(name); if (foundType == null) throw new IllegalArgumentException("Could not find a field named " + ! name); if (!(foundType.equals(type))) throw new IllegalArgumentException("Field " + name + " is not of " + ! "type " + type.getClassName()); } /** --- 266,281 ---- * or of the wrong type. */ static void checkAttribute(CompositeType ctype, String name, ! OpenType type) throws IllegalArgumentException { OpenType foundType = ctype.getType(name); if (foundType == null) throw new IllegalArgumentException("Could not find a field named " + ! name); if (!(foundType.equals(type))) throw new IllegalArgumentException("Field " + name + " is not of " + ! "type " + type.getClassName()); } /** *************** public class ThreadInfo *** 288,318 **** { if (seType == null) try ! { ! seType = new CompositeType(StackTraceElement.class.getName(), ! "An element of a stack trace", ! new String[] { "className", "methodName", ! "fileName", "lineNumber", ! "nativeMethod" ! }, ! new String[] { "Name of the class", ! "Name of the method", ! "Name of the source code file", ! "Line number", ! "True if this is a native method" ! }, ! new OpenType[] { ! SimpleType.STRING, SimpleType.STRING, ! SimpleType.STRING, SimpleType.INTEGER, ! SimpleType.BOOLEAN ! }); ! } catch (OpenDataException e) ! { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data type for the " + ! "stack trace element.", e); ! } return seType; } --- 288,318 ---- { if (seType == null) try ! { ! seType = new CompositeType(StackTraceElement.class.getName(), ! "An element of a stack trace", ! new String[] { "className", "methodName", ! "fileName", "lineNumber", ! "nativeMethod" ! }, ! new String[] { "Name of the class", ! "Name of the method", ! "Name of the source code file", ! "Line number", ! "True if this is a native method" ! }, ! new OpenType[] { ! SimpleType.STRING, SimpleType.STRING, ! SimpleType.STRING, SimpleType.INTEGER, ! SimpleType.BOOLEAN ! }); ! } catch (OpenDataException e) ! { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data type for the " + ! "stack trace element.", e); ! } return seType; } *************** public class ThreadInfo *** 352,360 **** * lineNumberjava.lang.Integer * nativeMethodjava.lang.Boolean * ! * * @param data the composite data structure to take values from. ! * @return a new instance containing the values from the * composite data structure, or null * if the data structure was also null. * @throws IllegalArgumentException if the composite data structure --- 352,360 ---- * lineNumberjava.lang.Integer * nativeMethodjava.lang.Boolean * ! * * @param data the composite data structure to take values from. ! * @return a new instance containing the values from the * composite data structure, or null * if the data structure was also null. * @throws IllegalArgumentException if the composite data structure *************** public class ThreadInfo *** 380,498 **** checkAttribute(type, "LockOwnerName", SimpleType.STRING); try { ! checkAttribute(type, "StackTrace", ! new ArrayType(1, getStackTraceType())); } catch (OpenDataException e) { ! throw new IllegalStateException("Something went wrong in creating " + ! "the array for the stack trace element.", ! e); } OpenType foundType = type.getType("LockedMonitors"); if (foundType != null) try ! { ! CompositeType mType = new CompositeType(MonitorInfo.class.getName(), ! "Information on a object monitor lock", ! new String[] { "ClassName", ! "IdentityHashCode", ! "LockedStackDepth", ! "LockedStackFrame" ! }, ! new String[] { "Name of the class", ! "Identity hash code " + ! "of the class", ! "Stack depth at time " + ! "of lock", ! "Stack frame at time " + ! "of lock", ! }, ! new OpenType[] { ! SimpleType.STRING, SimpleType.INTEGER, ! SimpleType.INTEGER, getStackTraceType() ! }); ! if (!(foundType.equals(new ArrayType(1, mType)))) ! throw new IllegalArgumentException("Field LockedMonitors is not of " + ! "type " + mType.getClassName()); ! } catch (OpenDataException e) { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data type for the " + ! "object monitor information array.", e); } foundType = type.getType("LockedSynchronizers"); if (foundType != null) try ! { ! CompositeType lType = new CompositeType(LockInfo.class.getName(), ! "Information on a lock", ! new String[] { "ClassName", ! "IdentityHashCode" ! }, ! new String[] { "Name of the class", ! "Identity hash code " + ! "of the class" ! }, ! new OpenType[] { ! SimpleType.STRING, SimpleType.INTEGER ! }); ! if (!(foundType.equals(new ArrayType(1, lType)))) ! throw new IllegalArgumentException("Field LockedSynchronizers is not of " + ! "type " + lType.getClassName()); ! } catch (OpenDataException e) { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data type for the " + ! "ownable synchronizerinformation array.", e); } CompositeData[] dTraces = (CompositeData[]) data.get("StackTrace"); StackTraceElement[] traces = new StackTraceElement[dTraces.length]; for (int a = 0; a < dTraces.length; ++a) ! /* FIXME: We can't use the boolean as there is no available ! constructor. */ ! traces[a] = ! new StackTraceElement((String) dTraces[a].get("ClassName"), ! (String) dTraces[a].get("MethodName"), ! (String) dTraces[a].get("FileName"), ! ((Integer) ! dTraces[a].get("LineNumber")).intValue()); MonitorInfo[] mInfo; if (data.containsKey("LockedMonitors")) { ! CompositeData[] dmInfos = (CompositeData[]) data.get("LockedMonitors"); ! mInfo = new MonitorInfo[dmInfos.length]; ! for (int a = 0; a < dmInfos.length; ++a) ! mInfo[a] = MonitorInfo.from(dmInfos[a]); } else mInfo = new MonitorInfo[]{}; LockInfo[] lInfo; if (data.containsKey("LockedSynchronizers")) { ! CompositeData[] dlInfos = (CompositeData[]) data.get("LockedSynchronizers"); ! lInfo = new LockInfo[dlInfos.length]; ! for (int a = 0; a < dlInfos.length; ++a) ! lInfo[a] = new LockInfo((String) dlInfos[a].get("ClassName"), ! (Integer) dlInfos[a].get("IdentityHashCode")); } else lInfo = new LockInfo[]{}; return new ThreadInfo(((Long) data.get("ThreadId")).longValue(), ! (String) data.get("ThreadName"), ! Thread.State.valueOf((String) data.get("ThreadState")), ! ((Long) data.get("BlockedCount")).longValue(), ! ((Long) data.get("BlockedTime")).longValue(), ! (String) data.get("LockName"), ! ((Long) data.get("LockOwnerId")).longValue(), ! (String) data.get("LockOwnerName"), ! ((Long) data.get("WaitedCount")).longValue(), ! ((Long) data.get("WaitedTime")).longValue(), ! ((Boolean) data.get("InNative")).booleanValue(), ! ((Boolean) data.get("Suspended")).booleanValue(), ! traces, mInfo, lInfo); } /** --- 380,498 ---- checkAttribute(type, "LockOwnerName", SimpleType.STRING); try { ! checkAttribute(type, "StackTrace", ! new ArrayType(1, getStackTraceType())); } catch (OpenDataException e) { ! throw new IllegalStateException("Something went wrong in creating " + ! "the array for the stack trace element.", ! e); } OpenType foundType = type.getType("LockedMonitors"); if (foundType != null) try ! { ! CompositeType mType = new CompositeType(MonitorInfo.class.getName(), ! "Information on a object monitor lock", ! new String[] { "ClassName", ! "IdentityHashCode", ! "LockedStackDepth", ! "LockedStackFrame" ! }, ! new String[] { "Name of the class", ! "Identity hash code " + ! "of the class", ! "Stack depth at time " + ! "of lock", ! "Stack frame at time " + ! "of lock", ! }, ! new OpenType[] { ! SimpleType.STRING, SimpleType.INTEGER, ! SimpleType.INTEGER, getStackTraceType() ! }); ! if (!(foundType.equals(new ArrayType(1, mType)))) ! throw new IllegalArgumentException("Field LockedMonitors is not of " + ! "type " + mType.getClassName()); ! } catch (OpenDataException e) { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data type for the " + ! "object monitor information array.", e); } foundType = type.getType("LockedSynchronizers"); if (foundType != null) try ! { ! CompositeType lType = new CompositeType(LockInfo.class.getName(), ! "Information on a lock", ! new String[] { "ClassName", ! "IdentityHashCode" ! }, ! new String[] { "Name of the class", ! "Identity hash code " + ! "of the class" ! }, ! new OpenType[] { ! SimpleType.STRING, SimpleType.INTEGER ! }); ! if (!(foundType.equals(new ArrayType(1, lType)))) ! throw new IllegalArgumentException("Field LockedSynchronizers is not of " + ! "type " + lType.getClassName()); ! } catch (OpenDataException e) { ! throw new IllegalStateException("Something went wrong in creating " + ! "the composite data type for the " + ! "ownable synchronizerinformation array.", e); } CompositeData[] dTraces = (CompositeData[]) data.get("StackTrace"); StackTraceElement[] traces = new StackTraceElement[dTraces.length]; for (int a = 0; a < dTraces.length; ++a) ! /* FIXME: We can't use the boolean as there is no available ! constructor. */ ! traces[a] = ! new StackTraceElement((String) dTraces[a].get("ClassName"), ! (String) dTraces[a].get("MethodName"), ! (String) dTraces[a].get("FileName"), ! ((Integer) ! dTraces[a].get("LineNumber")).intValue()); MonitorInfo[] mInfo; if (data.containsKey("LockedMonitors")) { ! CompositeData[] dmInfos = (CompositeData[]) data.get("LockedMonitors"); ! mInfo = new MonitorInfo[dmInfos.length]; ! for (int a = 0; a < dmInfos.length; ++a) ! mInfo[a] = MonitorInfo.from(dmInfos[a]); } else mInfo = new MonitorInfo[]{}; LockInfo[] lInfo; if (data.containsKey("LockedSynchronizers")) { ! CompositeData[] dlInfos = (CompositeData[]) data.get("LockedSynchronizers"); ! lInfo = new LockInfo[dlInfos.length]; ! for (int a = 0; a < dlInfos.length; ++a) ! lInfo[a] = new LockInfo((String) dlInfos[a].get("ClassName"), ! (Integer) dlInfos[a].get("IdentityHashCode")); } else lInfo = new LockInfo[]{}; return new ThreadInfo(((Long) data.get("ThreadId")).longValue(), ! (String) data.get("ThreadName"), ! Thread.State.valueOf((String) data.get("ThreadState")), ! ((Long) data.get("BlockedCount")).longValue(), ! ((Long) data.get("BlockedTime")).longValue(), ! (String) data.get("LockName"), ! ((Long) data.get("LockOwnerId")).longValue(), ! (String) data.get("LockOwnerName"), ! ((Long) data.get("WaitedCount")).longValue(), ! ((Long) data.get("WaitedTime")).longValue(), ! ((Boolean) data.get("InNative")).booleanValue(), ! ((Boolean) data.get("Suspended")).booleanValue(), ! traces, mInfo, lInfo); } /** *************** public class ThreadInfo *** 528,534 **** * for thread contention monitoring and for this support * to be enabled. *

            ! * * @return the accumulated time (in milliseconds) that this * thread has spent in the blocked state, since * thread contention monitoring was enabled, or -1 --- 528,534 ---- * for thread contention monitoring and for this support * to be enabled. *

            ! * * @return the accumulated time (in milliseconds) that this * thread has spent in the blocked state, since * thread contention monitoring was enabled, or -1 *************** public class ThreadInfo *** 601,607 **** * The lock is the return value of * {@link java.util.concurrent.locks.LockSupport#getBlocker()}. * ! * * @return a {@link LockInfo} object representing the lock on * which the thread is blocked, or null if * the thread isn't blocked. --- 601,607 ---- * The lock is the return value of * {@link java.util.concurrent.locks.LockSupport#getBlocker()}. * ! * * @return a {@link LockInfo} object representing the lock on * which the thread is blocked, or null if * the thread isn't blocked. *************** public class ThreadInfo *** 613,619 **** String lockName = getLockName(); int at = lockName.indexOf('@'); return new LockInfo(lockName.substring(0, at), ! Integer.decode(lockName.substring(at + 1))); } /** --- 613,619 ---- String lockName = getLockName(); int at = lockName.indexOf('@'); return new LockInfo(lockName.substring(0, at), ! Integer.decode(lockName.substring(at + 1))); } /** *************** public class ThreadInfo *** 655,661 **** * monitor lock this thread is waiting for. -1 is returned * if either this thread is not blocked, or the lock is * not held by any other thread. ! * * @return the thread identifier of thread holding the lock * this thread is waiting for, or -1 if the thread * is not blocked or the lock is not held by another --- 655,661 ---- * monitor lock this thread is waiting for. -1 is returned * if either this thread is not blocked, or the lock is * not held by any other thread. ! * * @return the thread identifier of thread holding the lock * this thread is waiting for, or -1 if the thread * is not blocked or the lock is not held by another *************** public class ThreadInfo *** 673,679 **** * monitor lock this thread is waiting for. null * is returned if either this thread is not blocked, * or the lock is not held by any other thread. ! * * @return the thread identifier of thread holding the lock * this thread is waiting for, or null * if the thread is not blocked or the lock is not --- 673,679 ---- * monitor lock this thread is waiting for. null * is returned if either this thread is not blocked, * or the lock is not held by any other thread. ! * * @return the thread identifier of thread holding the lock * this thread is waiting for, or null * if the thread is not blocked or the lock is not *************** public class ThreadInfo *** 701,707 **** * stack trace information for a thread. In these * cases, an empty array will also be returned. *

            ! * * @return an array of {@link java.lang.StackTraceElement}s * representing the trace of this thread. */ --- 701,707 ---- * stack trace information for a thread. In these * cases, an empty array will also be returned. *

            ! * * @return an array of {@link java.lang.StackTraceElement}s * representing the trace of this thread. */ *************** public class ThreadInfo *** 742,757 **** { return threadState; } ! /** * Returns the number of times this thread has been ! * in the {@link java.lang.Thread.State#WAITING} * or {@link java.lang.Thread.State#TIMED_WAITING} state. * A thread enters one of these states when it is waiting * due to a call to {@link java.lang.Object.wait()}, * {@link java.lang.Object.join()} or * {@link java.lang.concurrent.locks.LockSupport.park()}, ! * either with an infinite or timed delay, respectively. * * @return the number of times this thread has been waiting. */ --- 742,757 ---- { return threadState; } ! /** * Returns the number of times this thread has been ! * in the {@link java.lang.Thread.State#WAITING} * or {@link java.lang.Thread.State#TIMED_WAITING} state. * A thread enters one of these states when it is waiting * due to a call to {@link java.lang.Object.wait()}, * {@link java.lang.Object.join()} or * {@link java.lang.concurrent.locks.LockSupport.park()}, ! * either with an infinite or timed delay, respectively. * * @return the number of times this thread has been waiting. */ *************** public class ThreadInfo *** 771,784 **** * due to a call to {@link java.lang.Object.wait()}, * {@link java.lang.Object.join()} or * {@link java.lang.concurrent.locks.LockSupport.park()}, ! * either with an infinite or timed delay, respectively. *

            *

            * Use of this method requires virtual machine support * for thread contention monitoring and for this support * to be enabled. *

            ! * * @return the accumulated time (in milliseconds) that this * thread has spent in one of the waiting states, since * thread contention monitoring was enabled, or -1 --- 771,784 ---- * due to a call to {@link java.lang.Object.wait()}, * {@link java.lang.Object.join()} or * {@link java.lang.concurrent.locks.LockSupport.park()}, ! * either with an infinite or timed delay, respectively. *

            *

            * Use of this method requires virtual machine support * for thread contention monitoring and for this support * to be enabled. *

            ! * * @return the accumulated time (in milliseconds) that this * thread has spent in one of the waiting states, since * thread contention monitoring was enabled, or -1 *************** public class ThreadInfo *** 849,862 **** public String toString() { return getClass().getName() + ! "[id=" + threadId + ", name=" + threadName + ", state=" + threadState + ", blockedCount=" + blockedCount + ", waitedCount=" + waitedCount + ! ", isInNative=" + isInNative + ", isSuspended=" + isSuspended + ! (isThreadBlocked() ? ", lockOwnerId=" + lockOwnerId + ", lockOwnerName=" + lockOwnerName : "") + ", lockedMonitors=" + Arrays.toString(lockedMonitors) + --- 849,862 ---- public String toString() { return getClass().getName() + ! "[id=" + threadId + ", name=" + threadName + ", state=" + threadState + ", blockedCount=" + blockedCount + ", waitedCount=" + waitedCount + ! ", isInNative=" + isInNative + ", isSuspended=" + isSuspended + ! (isThreadBlocked() ? ", lockOwnerId=" + lockOwnerId + ", lockOwnerName=" + lockOwnerName : "") + ", lockedMonitors=" + Arrays.toString(lockedMonitors) + *************** public class ThreadInfo *** 888,895 **** private boolean isThreadBlocked() { return (threadState == Thread.State.BLOCKED || ! threadState == Thread.State.WAITING || ! threadState == Thread.State.TIMED_WAITING); } ! } --- 888,895 ---- private boolean isThreadBlocked() { return (threadState == Thread.State.BLOCKED || ! threadState == Thread.State.WAITING || ! threadState == Thread.State.TIMED_WAITING); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/management/ThreadMXBean.java gcc-4.6.0/libjava/classpath/java/lang/management/ThreadMXBean.java *** gcc-4.5.2/libjava/classpath/java/lang/management/ThreadMXBean.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/lang/management/ThreadMXBean.java Tue Jan 11 19:46:05 2011 *************** package java.lang.management; *** 39,45 **** /** *

            ! * Provides access to information about the threads * of the virtual machine. An instance of this bean is * obtained by calling * {@link ManagementFactory#getThreadMXBean()}. --- 39,45 ---- /** *

            ! * Provides access to information about the threads * of the virtual machine. An instance of this bean is * obtained by calling * {@link ManagementFactory#getThreadMXBean()}. *************** public interface ThreadMXBean *** 122,129 **** * @see #isSynchronizerUsageSupported() */ ThreadInfo[] dumpAllThreads(boolean lockedMonitors, ! boolean lockedSynchronizers); ! /** *

            * This method obtains a list of threads which are deadlocked --- 122,129 ---- * @see #isSynchronizerUsageSupported() */ ThreadInfo[] dumpAllThreads(boolean lockedMonitors, ! boolean lockedSynchronizers); ! /** *

            * This method obtains a list of threads which are deadlocked *************** public interface ThreadMXBean *** 140,146 **** * then {@link #findMonitorDeadlockedThreads()} should be used in * preference to this method. *

            ! * * @return an array of thread identifiers, corresponding to threads * which are currently in a deadlocked situation, or * null if there are no deadlocks. --- 140,146 ---- * then {@link #findMonitorDeadlockedThreads()} should be used in * preference to this method. *

            ! * * @return an array of thread identifiers, corresponding to threads * which are currently in a deadlocked situation, or * null if there are no deadlocks. *************** public interface ThreadMXBean *** 161,167 **** * waiting to obtain monitor ownership. On entering a synchronized * method of an object, or re-entering it after returning from an * {@link java.lang.Object#wait()} call, a thread obtains ownership ! * of the object's monitor. *

            *

            * Deadlocks can occur in this situation if one or more threads end up --- 161,167 ---- * waiting to obtain monitor ownership. On entering a synchronized * method of an object, or re-entering it after returning from an * {@link java.lang.Object#wait()} call, a thread obtains ownership ! * of the object's monitor. *

            *

            * Deadlocks can occur in this situation if one or more threads end up *************** public interface ThreadMXBean *** 174,180 **** * of a different object. While in that method, it then wants to * call the original synchronized method, R, called by A. Doing so * requires ownership of P, which is still held by A. Hence, it ! * becomes blocked. *

            *

            * A then finishes its sleep, becomes runnable, and is then allowed --- 174,180 ---- * of a different object. While in that method, it then wants to * call the original synchronized method, R, called by A. Doing so * requires ownership of P, which is still held by A. Hence, it ! * becomes blocked. *

            *

            * A then finishes its sleep, becomes runnable, and is then allowed *************** public interface ThreadMXBean *** 193,199 **** * to include deadlocks involving ownable synchronizers, * {@link #findDeadlockedThreads()} should be used instead. *

            ! * * @return an array of thread identifiers, corresponding to threads * which are currently in a deadlocked situation, or * null if there are no deadlocks. --- 193,199 ---- * to include deadlocks involving ownable synchronizers, * {@link #findDeadlockedThreads()} should be used instead. *

            ! * * @return an array of thread identifiers, corresponding to threads * which are currently in a deadlocked situation, or * null if there are no deadlocks. *************** public interface ThreadMXBean *** 221,227 **** * Returns the total number of nanoseconds of CPU time * the current thread has used. This is equivalent to calling * {@link #getThreadCpuTime()}(Thread.currentThread.getId()). ! *

            *

            * Note that the value is only nanosecond-precise, and not accurate; there * is no guarantee that the difference between two values is really a --- 221,227 ---- * Returns the total number of nanoseconds of CPU time * the current thread has used. This is equivalent to calling * {@link #getThreadCpuTime()}(Thread.currentThread.getId()). ! *

            *

            * Note that the value is only nanosecond-precise, and not accurate; there * is no guarantee that the difference between two values is really a *************** public interface ThreadMXBean *** 248,254 **** * the current thread has executed in user mode. This is * equivalent to calling * {@link #getThreadUserTime()}(Thread.currentThread.getId()). ! *

            *

            * Note that the value is only nanosecond-precise, and not accurate; there * is no guarantee that the difference between two values is really a --- 248,254 ---- * the current thread has executed in user mode. This is * equivalent to calling * {@link #getThreadUserTime()}(Thread.currentThread.getId()). ! *

            *

            * Note that the value is only nanosecond-precise, and not accurate; there * is no guarantee that the difference between two values is really a *************** public interface ThreadMXBean *** 298,305 **** /** *

            * Returns the total number of nanoseconds of CPU time ! * the specified thread has used. ! *

            *

            * Note that the value is only nanosecond-precise, and not accurate; there * is no guarantee that the difference between two values is really a --- 298,305 ---- /** *

            * Returns the total number of nanoseconds of CPU time ! * the specified thread has used. ! *

            *

            * Note that the value is only nanosecond-precise, and not accurate; there * is no guarantee that the difference between two values is really a *************** public interface ThreadMXBean *** 329,335 **** * {@link #getThreadInfo}(id, 0). If the * identifier specifies a thread which is either non-existant * or not alive, then the method returns null. ! * * @param id the identifier of the thread to return information * on. * @return a {@link ThreadInfo} object pertaining to the specified --- 329,335 ---- * {@link #getThreadInfo}(id, 0). If the * identifier specifies a thread which is either non-existant * or not alive, then the method returns null. ! * * @param id the identifier of the thread to return information * on. * @return a {@link ThreadInfo} object pertaining to the specified *************** public interface ThreadMXBean *** 348,358 **** * identifier specifies a thread which is either non-existant * or not alive, then the corresponding element in the returned * array is null. ! * * @param ids an array of thread identifiers to return information * on. * @return an array of {@link ThreadInfo} objects matching the ! * specified threads. The corresponding element is * null if the identifier specifies * a thread that doesn't exist or is not alive. * @throws IllegalArgumentException if an identifier in the array is --- 348,358 ---- * identifier specifies a thread which is either non-existant * or not alive, then the corresponding element in the returned * array is null. ! * * @param ids an array of thread identifiers to return information * on. * @return an array of {@link ThreadInfo} objects matching the ! * specified threads. The corresponding element is * null if the identifier specifies * a thread that doesn't exist or is not alive. * @throws IllegalArgumentException if an identifier in the array is *************** public interface ThreadMXBean *** 379,393 **** * If an identifier specifies a thread which is either non-existant * or not alive, then the corresponding element in the returned * array is null. ! * * @param ids an array of thread identifiers to return information * on. * @param lockedMonitors true if information on locked monitors * should be included. * @param lockedSynchronizers true if information on locked ! * ownable synchronizers should be included. * @return an array of {@link ThreadInfo} objects matching the ! * specified threads. The corresponding element is * null if the identifier specifies * a thread that doesn't exist or is not alive. * @throws IllegalArgumentException if an identifier in the array is --- 379,393 ---- * If an identifier specifies a thread which is either non-existant * or not alive, then the corresponding element in the returned * array is null. ! * * @param ids an array of thread identifiers to return information * on. * @param lockedMonitors true if information on locked monitors * should be included. * @param lockedSynchronizers true if information on locked ! * ownable synchronizers should be included. * @return an array of {@link ThreadInfo} objects matching the ! * specified threads. The corresponding element is * null if the identifier specifies * a thread that doesn't exist or is not alive. * @throws IllegalArgumentException if an identifier in the array is *************** public interface ThreadMXBean *** 407,413 **** * @see #isSynchronizerUsageSupported() */ ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, ! boolean lockedSynchronizers); /** * Returns information on the specified thread with --- 407,413 ---- * @see #isSynchronizerUsageSupported() */ ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, ! boolean lockedSynchronizers); /** * Returns information on the specified thread with *************** public interface ThreadMXBean *** 444,450 **** * to an empty stack trace (an empty array is returned by the * appropriate {@link ThreadInfo} method). A maximum depth of * Integer.MAX_VALUE returns the full stack trace. ! * * @param ids an array of thread identifiers to return information * on. * @param maxDepth the maximum depth of the stack trace. --- 444,450 ---- * to an empty stack trace (an empty array is returned by the * appropriate {@link ThreadInfo} method). A maximum depth of * Integer.MAX_VALUE returns the full stack trace. ! * * @param ids an array of thread identifiers to return information * on. * @param maxDepth the maximum depth of the stack trace. *************** public interface ThreadMXBean *** 452,458 **** * correspond to an empty and full stack trace * respectively. * @return an array of {@link ThreadInfo} objects matching the ! * specified threads. The corresponding element is * null if the identifier specifies * a thread that doesn't exist or is not alive. * @throws IllegalArgumentException if an identifier in the array is --- 452,458 ---- * correspond to an empty and full stack trace * respectively. * @return an array of {@link ThreadInfo} objects matching the ! * specified threads. The corresponding element is * null if the identifier specifies * a thread that doesn't exist or is not alive. * @throws IllegalArgumentException if an identifier in the array is *************** public interface ThreadMXBean *** 466,473 **** /** *

            * Returns the total number of nanoseconds of CPU time ! * the specified thread has executed in user mode. ! *

            *

            * Note that the value is only nanosecond-precise, and not accurate; there * is no guarantee that the difference between two values is really a --- 466,473 ---- /** *

            * Returns the total number of nanoseconds of CPU time ! * the specified thread has executed in user mode. ! *

            *

            * Note that the value is only nanosecond-precise, and not accurate; there * is no guarantee that the difference between two values is really a diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/ref/PhantomReference.java gcc-4.6.0/libjava/classpath/java/lang/ref/PhantomReference.java *** gcc-4.5.2/libjava/classpath/java/lang/ref/PhantomReference.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/ref/PhantomReference.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.lang.ref; *** 44,50 **** * finalized. This is the reason, why get() always * returns null. * ! * @author Jochen Hoenicke */ public class PhantomReference extends Reference --- 44,50 ---- * finalized. This is the reason, why get() always * returns null. * ! * @author Jochen Hoenicke */ public class PhantomReference extends Reference *************** public class PhantomReference *** 60,70 **** { super(referent, q); } ! /** * Returns the object, this reference refers to. * @return null, since the refered object may be ! * finalized and thus not accessible. */ public T get() { --- 60,70 ---- { super(referent, q); } ! /** * Returns the object, this reference refers to. * @return null, since the refered object may be ! * finalized and thus not accessible. */ public T get() { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/ref/Reference.java gcc-4.6.0/libjava/classpath/java/lang/ref/Reference.java *** gcc-4.5.2/libjava/classpath/java/lang/ref/Reference.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/ref/Reference.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public abstract class Reference *** 89,95 **** * reference is not enqueued. Otherwise it points to the next * reference. The last reference on a queue will point to itself * (not to null, that value is used to mark a not enqueued ! * reference). */ volatile Reference nextOnQueue; --- 89,95 ---- * reference is not enqueued. Otherwise it points to the next * reference. The last reference on a queue will point to itself * (not to null, that value is used to mark a not enqueued ! * reference). */ volatile Reference nextOnQueue; *************** public abstract class Reference *** 103,109 **** /** * Creates a new reference that is not registered to any queue. * Since it is package private, it is not possible to overload this ! * class in a different package. * @param ref the object we refer to. */ Reference(T ref) --- 103,109 ---- /** * Creates a new reference that is not registered to any queue. * Since it is package private, it is not possible to overload this ! * class in a different package. * @param ref the object we refer to. */ Reference(T ref) *************** public abstract class Reference *** 114,120 **** /** * Creates a reference that is registered to a queue. Since this is * package private, it is not possible to overload this class in a ! * different package. * @param ref the object we refer to. * @param q the reference queue to register on. * @exception NullPointerException if q is null. --- 114,120 ---- /** * Creates a reference that is registered to a queue. Since this is * package private, it is not possible to overload this class in a ! * different package. * @param ref the object we refer to. * @param q the reference queue to register on. * @exception NullPointerException if q is null. *************** public abstract class Reference *** 129,149 **** /** * Returns the object, this reference refers to. ! * @return the object, this reference refers to, or null if the * reference was cleared. */ public T get() { synchronized (lock) { ! return referent; } } /** * Clears the reference, so that it doesn't refer to its object * anymore. For soft and weak references this is called by the ! * garbage collector. For phantom references you should call * this when enqueuing the reference. */ public void clear() --- 129,149 ---- /** * Returns the object, this reference refers to. ! * @return the object, this reference refers to, or null if the * reference was cleared. */ public T get() { synchronized (lock) { ! return referent; } } /** * Clears the reference, so that it doesn't refer to its object * anymore. For soft and weak references this is called by the ! * garbage collector. For phantom references you should call * this when enqueuing the reference. */ public void clear() *************** public abstract class Reference *** 164,175 **** * Enqueue an object on a reference queue. This is normally executed * by the garbage collector. */ ! public boolean enqueue() { ReferenceQueue q = queue; if (q != null) { ! return q.enqueue(this); } return false; } --- 164,175 ---- * Enqueue an object on a reference queue. This is normally executed * by the garbage collector. */ ! public boolean enqueue() { ReferenceQueue q = queue; if (q != null) { ! return q.enqueue(this); } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/ref/ReferenceQueue.java gcc-4.6.0/libjava/classpath/java/lang/ref/ReferenceQueue.java *** gcc-4.5.2/libjava/classpath/java/lang/ref/ReferenceQueue.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/ref/ReferenceQueue.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class ReferenceQueue *** 55,63 **** /** * This is a linked list of references. If this is null, the list is * empty. Otherwise this points to the first reference on the queue. ! * The first reference will point to the next reference via the * nextOnQueue field. The last reference will point to ! * itself (not to null, since nextOnQueue is used to * determine if a reference is enqueued). */ private Reference first; --- 55,63 ---- /** * This is a linked list of references. If this is null, the list is * empty. Otherwise this points to the first reference on the queue. ! * The first reference will point to the next reference via the * nextOnQueue field. The last reference will point to ! * itself (not to null, since nextOnQueue is used to * determine if a reference is enqueued). */ private Reference first; *************** public class ReferenceQueue *** 80,94 **** * immediately. The reference will be dequeued. * * @return a reference on the queue, if there is one, ! * null otherwise. */ public Reference poll() ! { return dequeue(); } /** ! * This is called by reference to enqueue itself on this queue. * @param ref the reference that should be enqueued. * @return true if successful, false if not. */ --- 80,94 ---- * immediately. The reference will be dequeued. * * @return a reference on the queue, if there is one, ! * null otherwise. */ public Reference poll() ! { return dequeue(); } /** ! * This is called by reference to enqueue itself on this queue. * @param ref the reference that should be enqueued. * @return true if successful, false if not. */ *************** public class ReferenceQueue *** 119,125 **** { if (first == null) return null; ! Reference result = first; first = (first == first.nextOnQueue) ? null : first.nextOnQueue; result.nextOnQueue = null; --- 119,125 ---- { if (first == null) return null; ! Reference result = first; first = (first == first.nextOnQueue) ? null : first.nextOnQueue; result.nextOnQueue = null; *************** public class ReferenceQueue *** 132,139 **** * until a reference is enqueued. * @param timeout the timeout period in milliseconds, 0 means * wait forever. ! * @return the reference removed from the queue, or ! * null if timeout period expired. * @exception InterruptedException if the wait was interrupted. */ public Reference remove(long timeout) --- 132,139 ---- * until a reference is enqueued. * @param timeout the timeout period in milliseconds, 0 means * wait forever. ! * @return the reference removed from the queue, or ! * null if timeout period expired. * @exception InterruptedException if the wait was interrupted. */ public Reference remove(long timeout) *************** public class ReferenceQueue *** 147,159 **** return dequeue(); } ! /** * Removes a reference from the queue, blocking until a reference is * enqueued. * ! * @return the reference removed from the queue. * @exception InterruptedException if the wait was interrupted. */ public Reference remove() --- 147,159 ---- return dequeue(); } ! /** * Removes a reference from the queue, blocking until a reference is * enqueued. * ! * @return the reference removed from the queue. * @exception InterruptedException if the wait was interrupted. */ public Reference remove() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/ref/SoftReference.java gcc-4.6.0/libjava/classpath/java/lang/ref/SoftReference.java *** gcc-4.5.2/libjava/classpath/java/lang/ref/SoftReference.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/ref/SoftReference.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.lang.ref; *** 45,51 **** * references it should clear. This makes a soft reference ideal for * caches.
            * ! * @author Jochen Hoenicke */ public class SoftReference extends Reference --- 45,51 ---- * references it should clear. This makes a soft reference ideal for * caches.
            * ! * @author Jochen Hoenicke */ public class SoftReference extends Reference *************** public class SoftReference *** 69,83 **** { super(referent, q); } ! /** * Returns the object, this reference refers to. ! * @return the object, this reference refers to, or null if the * reference was cleared. */ public T get() { ! /* Why is this overloaded??? * Maybe for a kind of LRU strategy. */ return super.get(); } --- 69,83 ---- { super(referent, q); } ! /** * Returns the object, this reference refers to. ! * @return the object, this reference refers to, or null if the * reference was cleared. */ public T get() { ! /* Why is this overloaded??? * Maybe for a kind of LRU strategy. */ return super.get(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/ref/WeakReference.java gcc-4.6.0/libjava/classpath/java/lang/ref/WeakReference.java *** gcc-4.5.2/libjava/classpath/java/lang/ref/WeakReference.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/ref/WeakReference.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.lang.ref; *** 51,58 **** * an object is not referenced anymore, the reference will * automatically cleared, and you may remove it from the set.
            * ! * @author Jochen Hoenicke ! * @see java.util.WeakHashMap */ public class WeakReference extends Reference --- 51,58 ---- * an object is not referenced anymore, the reference will * automatically cleared, and you may remove it from the set.
            * ! * @author Jochen Hoenicke ! * @see java.util.WeakHashMap */ public class WeakReference extends Reference diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/AccessibleObject.java gcc-4.6.0/libjava/classpath/java/lang/reflect/AccessibleObject.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/AccessibleObject.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/AccessibleObject.java Tue Jan 11 19:46:05 2011 *************** public class AccessibleObject *** 91,99 **** * ReflectPermission("suppressAccessChecks").

            * * It is forbidden to set the accessibility flag to true on any constructor ! * for java.lang.Class. This will result in a SecurityException. If the * SecurityException is thrown for any of the passed AccessibleObjects, ! * the accessibility flag will be set on AccessibleObjects in the array prior * to the one which resulted in the exception. * * @param array the array of accessible objects --- 91,99 ---- * ReflectPermission("suppressAccessChecks").

            * * It is forbidden to set the accessibility flag to true on any constructor ! * for java.lang.Class. This will result in a SecurityException. If the * SecurityException is thrown for any of the passed AccessibleObjects, ! * the accessibility flag will be set on AccessibleObjects in the array prior * to the one which resulted in the exception. * * @param array the array of accessible objects *************** public class AccessibleObject *** 115,121 **** * manager exists, it is checked for * ReflectPermission("suppressAccessChecks").

            * ! * It is forbidden to set the accessibility flag to true on any constructor for * java.lang.Class. This will result in a SecurityException. * * @param flag the desired state of accessibility, true to bypass security --- 115,121 ---- * manager exists, it is checked for * ReflectPermission("suppressAccessChecks").

            * ! * It is forbidden to set the accessibility flag to true on any constructor for * java.lang.Class. This will result in a SecurityException. * * @param flag the desired state of accessibility, true to bypass security diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/AnnotatedElement.java gcc-4.6.0/libjava/classpath/java/lang/reflect/AnnotatedElement.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/AnnotatedElement.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/AnnotatedElement.java Tue Jan 11 19:46:05 2011 *************** import java.lang.annotation.Annotation; *** 57,63 **** * AnnotationTypeMismatchException or * IncompleteAnnotationException. *

            ! * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 57,63 ---- * AnnotationTypeMismatchException or * IncompleteAnnotationException. *

            ! * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/Array.java gcc-4.6.0/libjava/classpath/java/lang/reflect/Array.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/Array.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/Array.java Tue Jan 11 19:46:05 2011 *************** public final class Array *** 248,254 **** throw new NullPointerException(); throw new IllegalArgumentException(); } ! /** * Gets an element of a byte array. * --- 248,254 ---- throw new NullPointerException(); throw new IllegalArgumentException(); } ! /** * Gets an element of a byte array. * *************** public final class Array *** 422,432 **** { if (array instanceof Object[]) { ! // Too bad the API won't let us throw the easier ArrayStoreException! ! if (value != null ! && ! array.getClass().getComponentType().isInstance(value)) ! throw new IllegalArgumentException(); ! ((Object[]) array)[index] = value; } else if (value instanceof Byte) setByte(array, index, ((Byte) value).byteValue()); --- 422,432 ---- { if (array instanceof Object[]) { ! // Too bad the API won't let us throw the easier ArrayStoreException! ! if (value != null ! && ! array.getClass().getComponentType().isInstance(value)) ! throw new IllegalArgumentException(); ! ((Object[]) array)[index] = value; } else if (value instanceof Byte) setByte(array, index, ((Byte) value).byteValue()); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/Constructor.java gcc-4.6.0/libjava/classpath/java/lang/reflect/Constructor.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/Constructor.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/Constructor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.lang.annotation.Annotation; *** 81,87 **** public final class Constructor extends AccessibleObject implements GenericDeclaration, Member ! { private static final int CONSTRUCTOR_MODIFIERS = Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC; --- 81,87 ---- public final class Constructor extends AccessibleObject implements GenericDeclaration, Member ! { private static final int CONSTRUCTOR_MODIFIERS = Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC; *************** public final class Constructor *** 108,114 **** */ public Class getDeclaringClass() { ! // Inescapable as the VM layer is 1.4 based. @SuppressWarnings("unchecked") Class declClass = (Class) cons.getDeclaringClass(); return declClass; --- 108,114 ---- */ public Class getDeclaringClass() { ! // Inescapable as the VM layer is 1.4 based. @SuppressWarnings("unchecked") Class declClass = (Class) cons.getDeclaringClass(); return declClass; *************** public final class Constructor *** 314,320 **** throws InstantiationException, IllegalAccessException, InvocationTargetException { ! // Inescapable as the VM layer is 1.4 based. @SuppressWarnings("unchecked") T ins = (T) cons.construct(args); return ins; --- 314,320 ---- throws InstantiationException, IllegalAccessException, InvocationTargetException { ! // Inescapable as the VM layer is 1.4 based. @SuppressWarnings("unchecked") T ins = (T) cons.construct(args); return ins; *************** public final class Constructor *** 336,345 **** { if (p == null) { ! String sig = cons.getSignature(); ! if (sig == null) ! return new TypeVariable[0]; ! p = new MethodSignatureParser(this, sig); } return p.getTypeParameters(); } --- 336,345 ---- { if (p == null) { ! String sig = cons.getSignature(); ! if (sig == null) ! return new TypeVariable[0]; ! p = new MethodSignatureParser(this, sig); } return p.getTypeParameters(); } *************** public final class Constructor *** 350,356 **** * An array of size zero is returned if this constructor declares no * exceptions. * ! * @return the exception types declared by this constructor. * @throws GenericSignatureFormatError if the generic signature does * not conform to the format specified in the Virtual Machine * specification, version 3. --- 350,356 ---- * An array of size zero is returned if this constructor declares no * exceptions. * ! * @return the exception types declared by this constructor. * @throws GenericSignatureFormatError if the generic signature does * not conform to the format specified in the Virtual Machine * specification, version 3. *************** public final class Constructor *** 360,369 **** { if (p == null) { ! String sig = cons.getSignature(); ! if (sig == null) ! return getExceptionTypes(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericExceptionTypes(); } --- 360,369 ---- { if (p == null) { ! String sig = cons.getSignature(); ! if (sig == null) ! return getExceptionTypes(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericExceptionTypes(); } *************** public final class Constructor *** 384,393 **** { if (p == null) { ! String sig = cons.getSignature(); ! if (sig == null) ! return getParameterTypes(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericParameterTypes(); } --- 384,393 ---- { if (p == null) { ! String sig = cons.getSignature(); ! if (sig == null) ! return getParameterTypes(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericParameterTypes(); } *************** public final class Constructor *** 406,412 **** * The returned annotations are serialized. Changing the annotations has * no affect on the return value of future calls to this method. *

            ! * * @return an array of arrays which represents the annotations used on the * parameters of this constructor. The order of the array elements * matches the declaration order of the parameters. --- 406,412 ---- * The returned annotations are serialized. Changing the annotations has * no affect on the return value of future calls to this method. *

            ! * * @return an array of arrays which represents the annotations used on the * parameters of this constructor. The order of the array elements * matches the declaration order of the parameters. *************** public final class Constructor *** 428,434 **** */ public T getAnnotation(Class annotationClass) { ! // Inescapable as the VM layer is 1.4 based. @SuppressWarnings("unchecked") T ann = (T) cons.getAnnotation(annotationClass); return ann; --- 428,434 ---- */ public T getAnnotation(Class annotationClass) { ! // Inescapable as the VM layer is 1.4 based. @SuppressWarnings("unchecked") T ann = (T) cons.getAnnotation(annotationClass); return ann; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/Field.java gcc-4.6.0/libjava/classpath/java/lang/reflect/Field.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/Field.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/Field.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** extends AccessibleObject implements Memb *** 691,701 **** { if (p == null) { ! String signature = f.getSignature(); ! if (signature == null) ! return getType(); ! p = new FieldSignatureParser(getDeclaringClass(), ! signature); } return p.getFieldType(); } --- 691,701 ---- { if (p == null) { ! String signature = f.getSignature(); ! if (signature == null) ! return getType(); ! p = new FieldSignatureParser(getDeclaringClass(), ! signature); } return p.getFieldType(); } *************** extends AccessibleObject implements Memb *** 711,717 **** */ public T getAnnotation(Class annotationClass) { ! // Inescapable as the VM layer is 1.4 based. T will erase to Annotation anyway. @SuppressWarnings("unchecked") T ann = (T) f.getAnnotation(annotationClass); return ann; } --- 711,717 ---- */ public T getAnnotation(Class annotationClass) { ! // Inescapable as the VM layer is 1.4 based. T will erase to Annotation anyway. @SuppressWarnings("unchecked") T ann = (T) f.getAnnotation(annotationClass); return ann; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/GenericArrayType.java gcc-4.6.0/libjava/classpath/java/lang/reflect/GenericArrayType.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/GenericArrayType.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/GenericArrayType.java Tue Jan 11 19:46:05 2011 *************** package java.lang.reflect; *** 46,52 **** * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! public interface GenericArrayType extends Type { --- 46,52 ---- * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! public interface GenericArrayType extends Type { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/GenericDeclaration.java gcc-4.6.0/libjava/classpath/java/lang/reflect/GenericDeclaration.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/GenericDeclaration.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/GenericDeclaration.java Tue Jan 11 19:46:05 2011 *************** public interface GenericDeclaration *** 52,58 **** * Returns a TypeVariable object for each type variable * declared by this entity, in order of declaration. An empty array * is returned if no type variables are declared. ! * * @return an array of TypeVariable objects. * @throws GenericSignatureFormatError if the signature format within the * class file does not conform to that specified in the 3rd edition --- 52,58 ---- * Returns a TypeVariable object for each type variable * declared by this entity, in order of declaration. An empty array * is returned if no type variables are declared. ! * * @return an array of TypeVariable objects. * @throws GenericSignatureFormatError if the signature format within the * class file does not conform to that specified in the 3rd edition diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/InvocationHandler.java gcc-4.6.0/libjava/classpath/java/lang/reflect/InvocationHandler.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/InvocationHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/InvocationHandler.java Tue Jan 11 19:46:05 2011 *************** package java.lang.reflect; *** 55,61 **** * work on any object in general.

            * *

            Hints for implementing this class:

            ! * *
              *
            • Don't forget that Object.equals, Object.hashCode, and * Object.toString will call this handler. In particular, --- 55,61 ---- * work on any object in general.

              * *

              Hints for implementing this class:

              ! * *
                *
              • Don't forget that Object.equals, Object.hashCode, and * Object.toString will call this handler. In particular, diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/MalformedParameterizedTypeException.java gcc-4.6.0/libjava/classpath/java/lang/reflect/MalformedParameterizedTypeException.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/MalformedParameterizedTypeException.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/MalformedParameterizedTypeException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package java.lang.reflect; ! /** * This exception class is thrown when one of the reflection * methods encountered an invalid parameterized type within * the metadata of a class. One possible reason for this --- 38,44 ---- package java.lang.reflect; ! /** * This exception class is thrown when one of the reflection * methods encountered an invalid parameterized type within * the metadata of a class. One possible reason for this *************** package java.lang.reflect; *** 47,55 **** * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class MalformedParameterizedTypeException extends RuntimeException { private static final long serialVersionUID = -5696557788586220964L; --- 47,55 ---- * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class MalformedParameterizedTypeException extends RuntimeException { private static final long serialVersionUID = -5696557788586220964L; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/Method.java gcc-4.6.0/libjava/classpath/java/lang/reflect/Method.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/Method.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/Method.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** extends AccessibleObject implements Memb *** 333,339 **** * An array of size zero is returned if this class has no type * variables. * ! * @return the type variables associated with this class. * @throws GenericSignatureFormatError if the generic signature does * not conform to the format specified in the Virtual Machine * specification, version 3. --- 333,339 ---- * An array of size zero is returned if this class has no type * variables. * ! * @return the type variables associated with this class. * @throws GenericSignatureFormatError if the generic signature does * not conform to the format specified in the Virtual Machine * specification, version 3. *************** extends AccessibleObject implements Memb *** 343,352 **** { if (p == null) { ! String sig = m.getSignature(); ! if (sig == null) ! return (TypeVariable[]) new TypeVariable[0]; ! p = new MethodSignatureParser(this, sig); } return p.getTypeParameters(); } --- 343,352 ---- { if (p == null) { ! String sig = m.getSignature(); ! if (sig == null) ! return (TypeVariable[]) new TypeVariable[0]; ! p = new MethodSignatureParser(this, sig); } return p.getTypeParameters(); } *************** extends AccessibleObject implements Memb *** 357,363 **** * An array of size zero is returned if this method declares no * exceptions. * ! * @return the exception types declared by this method. * @throws GenericSignatureFormatError if the generic signature does * not conform to the format specified in the Virtual Machine * specification, version 3. --- 357,363 ---- * An array of size zero is returned if this method declares no * exceptions. * ! * @return the exception types declared by this method. * @throws GenericSignatureFormatError if the generic signature does * not conform to the format specified in the Virtual Machine * specification, version 3. *************** extends AccessibleObject implements Memb *** 367,376 **** { if (p == null) { ! String sig = m.getSignature(); ! if (sig == null) ! return getExceptionTypes(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericExceptionTypes(); } --- 367,376 ---- { if (p == null) { ! String sig = m.getSignature(); ! if (sig == null) ! return getExceptionTypes(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericExceptionTypes(); } *************** extends AccessibleObject implements Memb *** 391,400 **** { if (p == null) { ! String sig = m.getSignature(); ! if (sig == null) ! return getParameterTypes(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericParameterTypes(); } --- 391,400 ---- { if (p == null) { ! String sig = m.getSignature(); ! if (sig == null) ! return getParameterTypes(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericParameterTypes(); } *************** extends AccessibleObject implements Memb *** 412,421 **** { if (p == null) { ! String sig = m.getSignature(); ! if (sig == null) ! return getReturnType(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericReturnType(); } --- 412,421 ---- { if (p == null) { ! String sig = m.getSignature(); ! if (sig == null) ! return getReturnType(); ! p = new MethodSignatureParser(this, sig); } return p.getGenericReturnType(); } *************** extends AccessibleObject implements Memb *** 450,456 **** * The returned annotations are serialized. Changing the annotations has * no affect on the return value of future calls to this method. *

                ! * * @return an array of arrays which represents the annotations used on the * parameters of this method. The order of the array elements * matches the declaration order of the parameters. --- 450,456 ---- * The returned annotations are serialized. Changing the annotations has * no affect on the return value of future calls to this method. *

                ! * * @return an array of arrays which represents the annotations used on the * parameters of this method. The order of the array elements * matches the declaration order of the parameters. *************** extends AccessibleObject implements Memb *** 472,478 **** */ public T getAnnotation(Class annotationClass) { ! // Inescapable as the VM layer is 1.4 based. T will erase to Annotation anyway. @SuppressWarnings("unchecked") T ann = (T) m.getAnnotation(annotationClass); return ann; --- 472,478 ---- */ public T getAnnotation(Class annotationClass) { ! // Inescapable as the VM layer is 1.4 based. T will erase to Annotation anyway. @SuppressWarnings("unchecked") T ann = (T) m.getAnnotation(annotationClass); return ann; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/Modifier.java gcc-4.6.0/libjava/classpath/java/lang/reflect/Modifier.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/Modifier.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/Modifier.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Modifier *** 345,351 **** r.append("strictfp "); if (isInterface(mod)) r.append("interface "); ! // Trim trailing space. if ((mod & ALL_FLAGS) != 0) r.setLength(r.length() - 1); --- 345,351 ---- r.append("strictfp "); if (isInterface(mod)) r.append("interface "); ! // Trim trailing space. if ((mod & ALL_FLAGS) != 0) r.setLength(r.length() - 1); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/Proxy.java gcc-4.6.0/libjava/classpath/java/lang/reflect/Proxy.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/Proxy.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/Proxy.java Tue Jan 11 19:46:05 2011 *************** public class Proxy implements Serializab *** 217,223 **** *

                There are several restrictions on this method, the violation of * which will result in an IllegalArgumentException or * NullPointerException:

                ! * *
                  *
                • All objects in `interfaces' must represent distinct interfaces. * Classes, primitive types, null, and duplicates are forbidden.
                • --- 217,223 ---- *

                  There are several restrictions on this method, the violation of * which will result in an IllegalArgumentException or * NullPointerException:

                  ! * *
                    *
                  • All objects in `interfaces' must represent distinct interfaces. * Classes, primitive types, null, and duplicates are forbidden.
                  • *************** public class Proxy implements Serializab *** 258,264 **** // synchronized so that we aren't trying to build the same class // simultaneously in two threads public static synchronized Class getProxyClass(ClassLoader loader, ! Class... interfaces) { interfaces = (Class[]) interfaces.clone(); ProxyType pt = new ProxyType(loader, interfaces); --- 258,264 ---- // synchronized so that we aren't trying to build the same class // simultaneously in two threads public static synchronized Class getProxyClass(ClassLoader loader, ! Class... interfaces) { interfaces = (Class[]) interfaces.clone(); ProxyType pt = new ProxyType(loader, interfaces); *************** public class Proxy implements Serializab *** 274,280 **** : ProxyData.getProxyData(pt)); clazz = (VMProxy.HAVE_NATIVE_GENERATE_PROXY_CLASS ! ? VMProxy.generateProxyClass(loader, data) : new ClassFactory(data).generate(loader)); } --- 274,280 ---- : ProxyData.getProxyData(pt)); clazz = (VMProxy.HAVE_NATIVE_GENERATE_PROXY_CLASS ! ? VMProxy.generateProxyClass(loader, data) : new ClassFactory(data).generate(loader)); } *************** public class Proxy implements Serializab *** 716,722 **** if (! Modifier.isPublic(inter.getModifiers())) if (in_package) { ! String p = getPackage(inter); if (! data.pack.equals(p)) throw new IllegalArgumentException("non-public interfaces " + "from different " --- 716,722 ---- if (! Modifier.isPublic(inter.getModifiers())) if (in_package) { ! String p = getPackage(inter); if (! data.pack.equals(p)) throw new IllegalArgumentException("non-public interfaces " + "from different " *************** public class Proxy implements Serializab *** 769,775 **** * Method.equals as it would also check the declaring class, what we do not * want. We only want to check that the given method have the same signature * as a core method (same name and parameter types) ! * * @param method the method to check * @return whether the method has the same name and parameter types as * Object.equals, Object.hashCode or Object.toString --- 769,775 ---- * Method.equals as it would also check the declaring class, what we do not * want. We only want to check that the given method have the same signature * as a core method (same name and parameter types) ! * * @param method the method to check * @return whether the method has the same name and parameter types as * Object.equals, Object.hashCode or Object.toString *************** public class Proxy implements Serializab *** 795,801 **** } return false; } ! } // class ProxyData /** --- 795,801 ---- } return false; } ! } // class ProxyData /** *************** public class Proxy implements Serializab *** 1260,1266 **** ProtectionDomain.class }; Method m = vmClassLoader.getDeclaredMethod("defineClass", types); // We can bypass the security check of setAccessible(true), since ! // we're in the same package. m.flag = true; Object[] args = {loader, qualName, bytecode, Integer.valueOf(0), --- 1260,1266 ---- ProtectionDomain.class }; Method m = vmClassLoader.getDeclaredMethod("defineClass", types); // We can bypass the security check of setAccessible(true), since ! // we're in the same package. m.flag = true; Object[] args = {loader, qualName, bytecode, Integer.valueOf(0), diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/Type.java gcc-4.6.0/libjava/classpath/java/lang/reflect/Type.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/Type.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/Type.java Tue Jan 11 19:46:05 2011 *************** package java.lang.reflect; *** 49,55 **** * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 ! */ public interface Type { } --- 49,55 ---- * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 ! */ public interface Type { } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/TypeVariable.java gcc-4.6.0/libjava/classpath/java/lang/reflect/TypeVariable.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/TypeVariable.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/TypeVariable.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,51 **** package java.lang.reflect; /** ! *

                    * This is a common interface for all type variables provided by * the Java language. Instances are created the first time a type * variable is needed by one of the reflective methods declared in * this package. *

                    ! *

                    * Creating a type variable requires resolving the appropriate type. * This may involve resolving other classes as a side effect (e.g. * if the type is nested inside other classes). Creation should not --- 39,51 ---- package java.lang.reflect; /** ! *

                    * This is a common interface for all type variables provided by * the Java language. Instances are created the first time a type * variable is needed by one of the reflective methods declared in * this package. *

                    ! *

                    * Creating a type variable requires resolving the appropriate type. * This may involve resolving other classes as a side effect (e.g. * if the type is nested inside other classes). Creation should not *************** package java.lang.reflect; *** 57,63 **** * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 ! */ public interface TypeVariable extends Type { --- 57,63 ---- * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 ! */ public interface TypeVariable extends Type { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/lang/reflect/WildcardType.java gcc-4.6.0/libjava/classpath/java/lang/reflect/WildcardType.java *** gcc-4.5.2/libjava/classpath/java/lang/reflect/WildcardType.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/lang/reflect/WildcardType.java Tue Jan 11 19:46:05 2011 *************** public interface WildcardType extends Ty *** 84,90 **** * the lower bounds of this type do not actually exist. * @throws MalformedParameterizedTypeException if any of the types * refer to a type which can not be instantiated. ! */ Type[] getLowerBounds(); /** --- 84,90 ---- * the lower bounds of this type do not actually exist. * @throws MalformedParameterizedTypeException if any of the types * refer to a type which can not be instantiated. ! */ Type[] getLowerBounds(); /** *************** public interface WildcardType extends Ty *** 109,115 **** * the upper bounds of this type do not actually exist. * @throws MalformedParameterizedTypeException if any of the types * refer to a type which can not be instantiated. ! */ Type[] getUpperBounds(); } --- 109,115 ---- * the upper bounds of this type do not actually exist. * @throws MalformedParameterizedTypeException if any of the types * refer to a type which can not be instantiated. ! */ Type[] getUpperBounds(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/math/BigDecimal.java gcc-4.6.0/libjava/classpath/java/math/BigDecimal.java *** gcc-4.5.2/libjava/classpath/java/math/BigDecimal.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/math/BigDecimal.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class BigDecimal extends Number i *** 50,70 **** * The constant zero as a BigDecimal with scale zero. * @since 1.5 */ ! public static final BigDecimal ZERO = new BigDecimal (BigInteger.ZERO, 0); /** * The constant one as a BigDecimal with scale zero. * @since 1.5 */ ! public static final BigDecimal ONE = new BigDecimal (BigInteger.ONE, 0); /** * The constant ten as a BigDecimal with scale zero. * @since 1.5 */ ! public static final BigDecimal TEN = new BigDecimal (BigInteger.TEN, 0); public static final int ROUND_UP = 0; --- 50,70 ---- * The constant zero as a BigDecimal with scale zero. * @since 1.5 */ ! public static final BigDecimal ZERO = new BigDecimal (BigInteger.ZERO, 0); /** * The constant one as a BigDecimal with scale zero. * @since 1.5 */ ! public static final BigDecimal ONE = new BigDecimal (BigInteger.ONE, 0); /** * The constant ten as a BigDecimal with scale zero. * @since 1.5 */ ! public static final BigDecimal TEN = new BigDecimal (BigInteger.TEN, 0); public static final int ROUND_UP = 0; *************** public class BigDecimal extends Number i *** 87,93 **** this.intVal = BigInteger.valueOf(val); this.scale = 0; } ! /** * Constructs a BigDecimal using the BigDecimal(int) constructor and then * rounds according to the MathContext. --- 87,93 ---- this.intVal = BigInteger.valueOf(val); this.scale = 0; } ! /** * Constructs a BigDecimal using the BigDecimal(int) constructor and then * rounds according to the MathContext. *************** public class BigDecimal extends Number i *** 106,114 **** this.intVal = result.intVal; this.scale = result.scale; this.precision = result.precision; ! } } ! /** * Constructs a new BigDecimal whose unscaled value is val and whose * scale is zero. --- 106,114 ---- this.intVal = result.intVal; this.scale = result.scale; this.precision = result.precision; ! } } ! /** * Constructs a new BigDecimal whose unscaled value is val and whose * scale is zero. *************** public class BigDecimal extends Number i *** 119,125 **** this.intVal = BigInteger.valueOf(val); this.scale = 0; } ! /** * Constructs a BigDecimal from the long in the same way as BigDecimal(long) * and then rounds according to the MathContext. --- 119,125 ---- this.intVal = BigInteger.valueOf(val); this.scale = 0; } ! /** * Constructs a BigDecimal from the long in the same way as BigDecimal(long) * and then rounds according to the MathContext. *************** public class BigDecimal extends Number i *** 138,149 **** this.intVal = result.intVal; this.scale = result.scale; this.precision = result.precision; ! } } ! /** ! * Constructs a BigDecimal whose value is given by num rounded according to ! * mc. Since num is already a BigInteger, the rounding refers only to the * precision setting in mc, if mc.getPrecision() returns an int lower than * the number of digits in num, then rounding is necessary. * @param num the unscaledValue, before rounding --- 138,149 ---- this.intVal = result.intVal; this.scale = result.scale; this.precision = result.precision; ! } } ! /** ! * Constructs a BigDecimal whose value is given by num rounded according to ! * mc. Since num is already a BigInteger, the rounding refers only to the * precision setting in mc, if mc.getPrecision() returns an int lower than * the number of digits in num, then rounding is necessary. * @param num the unscaledValue, before rounding *************** public class BigDecimal extends Number i *** 163,177 **** this.precision = result.precision; } } ! /** * Constructs a BigDecimal from the String val according to the same ! * rules as the BigDecimal(String) constructor and then rounds * according to the MathContext mc. * @param val the String from which we construct the initial BigDecimal * @param mc the MathContext that specifies the rounding * @throws ArithmeticException if the result is inexact but the rounding type ! * is RoundingMode.UNNECESSARY * @since 1.5 */ public BigDecimal (String val, MathContext mc) --- 163,177 ---- this.precision = result.precision; } } ! /** * Constructs a BigDecimal from the String val according to the same ! * rules as the BigDecimal(String) constructor and then rounds * according to the MathContext mc. * @param val the String from which we construct the initial BigDecimal * @param mc the MathContext that specifies the rounding * @throws ArithmeticException if the result is inexact but the rounding type ! * is RoundingMode.UNNECESSARY * @since 1.5 */ public BigDecimal (String val, MathContext mc) *************** public class BigDecimal extends Number i *** 185,197 **** this.precision = result.precision; } } ! /** * Constructs a BigDecimal whose unscaled value is num and whose * scale is zero. * @param num the value of the new BigDecimal */ ! public BigDecimal (BigInteger num) { this (num, 0); } --- 185,197 ---- this.precision = result.precision; } } ! /** * Constructs a BigDecimal whose unscaled value is num and whose * scale is zero. * @param num the value of the new BigDecimal */ ! public BigDecimal (BigInteger num) { this (num, 0); } *************** public class BigDecimal extends Number i *** 207,215 **** this.intVal = num; this.scale = scale; } ! /** ! * Constructs a BigDecimal using the BigDecimal(BigInteger, int) * constructor and then rounds according to the MathContext. * @param num the unscaled value of the unrounded BigDecimal * @param scale the scale of the unrounded BigDecimal --- 207,215 ---- this.intVal = num; this.scale = scale; } ! /** ! * Constructs a BigDecimal using the BigDecimal(BigInteger, int) * constructor and then rounds according to the MathContext. * @param num the unscaled value of the unrounded BigDecimal * @param scale the scale of the unrounded BigDecimal *************** public class BigDecimal extends Number i *** 236,242 **** * @param num the double from which the initial BigDecimal is created * @param mc the MathContext that specifies the rounding behaviour * @throws ArithmeticException if the result is inexact but the rounding type ! * is RoundingMode.UNNECESSARY * @since 1.5 */ public BigDecimal (double num, MathContext mc) --- 236,242 ---- * @param num the double from which the initial BigDecimal is created * @param mc the MathContext that specifies the rounding behaviour * @throws ArithmeticException if the result is inexact but the rounding type ! * is RoundingMode.UNNECESSARY * @since 1.5 */ public BigDecimal (double num, MathContext mc) *************** public class BigDecimal extends Number i *** 250,257 **** this.precision = result.precision; } } ! ! public BigDecimal (double num) throws NumberFormatException { if (Double.isInfinite (num) || Double.isNaN (num)) throw new NumberFormatException ("invalid argument: " + num); --- 250,257 ---- this.precision = result.precision; } } ! ! public BigDecimal (double num) throws NumberFormatException { if (Double.isInfinite (num) || Double.isNaN (num)) throw new NumberFormatException ("invalid argument: " + num); *************** public class BigDecimal extends Number i *** 282,318 **** // Shave off factors of 10. while (exponent < 0 && (mantissa & 1) == 0) { ! ++exponent; ! mantissa >>= 1; } intVal = BigInteger.valueOf (bits < 0 ? - mantissa : mantissa); if (exponent < 0) { ! // We have MANTISSA * 2 ^ (EXPONENT). ! // Since (1/2)^N == 5^N * 10^-N we can easily convert this ! // into a power of 10. ! scale = (int) (- exponent); ! BigInteger mult = BigInteger.valueOf (5).pow (scale); ! intVal = intVal.multiply (mult); } else { ! intVal = intVal.shiftLeft ((int) exponent); ! scale = 0; } } /** ! * Constructs a BigDecimal from the char subarray and rounding * according to the MathContext. * @param in the char array * @param offset the start of the subarray * @param len the length of the subarray * @param mc the MathContext for rounding ! * @throws NumberFormatException if the char subarray is not a valid * BigDecimal representation ! * @throws ArithmeticException if the result is inexact but the rounding * mode is RoundingMode.UNNECESSARY * @since 1.5 */ --- 282,318 ---- // Shave off factors of 10. while (exponent < 0 && (mantissa & 1) == 0) { ! ++exponent; ! mantissa >>= 1; } intVal = BigInteger.valueOf (bits < 0 ? - mantissa : mantissa); if (exponent < 0) { ! // We have MANTISSA * 2 ^ (EXPONENT). ! // Since (1/2)^N == 5^N * 10^-N we can easily convert this ! // into a power of 10. ! scale = (int) (- exponent); ! BigInteger mult = BigInteger.valueOf (5).pow (scale); ! intVal = intVal.multiply (mult); } else { ! intVal = intVal.shiftLeft ((int) exponent); ! scale = 0; } } /** ! * Constructs a BigDecimal from the char subarray and rounding * according to the MathContext. * @param in the char array * @param offset the start of the subarray * @param len the length of the subarray * @param mc the MathContext for rounding ! * @throws NumberFormatException if the char subarray is not a valid * BigDecimal representation ! * @throws ArithmeticException if the result is inexact but the rounding * mode is RoundingMode.UNNECESSARY * @since 1.5 */ *************** public class BigDecimal extends Number i *** 328,337 **** this.precision = temp.precision; } } ! /** * Constructs a BigDecimal from the char array and rounding according ! * to the MathContext. * @param in the char array * @param mc the MathContext * @throws NumberFormatException if in is not a valid BigDecimal --- 328,337 ---- this.precision = temp.precision; } } ! /** * Constructs a BigDecimal from the char array and rounding according ! * to the MathContext. * @param in the char array * @param mc the MathContext * @throws NumberFormatException if in is not a valid BigDecimal *************** public class BigDecimal extends Number i *** 350,358 **** this.intVal = temp.intVal; this.scale = temp.scale; this.precision = temp.precision; ! } } ! /** * Constructs a BigDecimal from the given char array, accepting the same * sequence of characters as the BigDecimal(String) constructor. --- 350,358 ---- this.intVal = temp.intVal; this.scale = temp.scale; this.precision = temp.precision; ! } } ! /** * Constructs a BigDecimal from the given char array, accepting the same * sequence of characters as the BigDecimal(String) constructor. *************** public class BigDecimal extends Number i *** 365,374 **** { this(in, 0, in.length); } ! /** * Constructs a BigDecimal from a char subarray, accepting the same sequence ! * of characters as the BigDecimal(String) constructor. * @param in the char array * @param offset the start of the subarray * @param len the length of the subarray --- 365,374 ---- { this(in, 0, in.length); } ! /** * Constructs a BigDecimal from a char subarray, accepting the same sequence ! * of characters as the BigDecimal(String) constructor. * @param in the char array * @param offset the start of the subarray * @param len the length of the subarray *************** public class BigDecimal extends Number i *** 385,396 **** // point is the index into the char array where the exponent starts // (or, if there is no exponent, this is equal to end) int point = offset; ! // dot is the index into the char array where the decimal point is // found, or -1 if there is no decimal point int dot = -1; ! // The following examples show what these variables mean. Note that ! // point and dot don't yet have the correct values, they will be // properly assigned in a loop later on in this method. // // Example 1 --- 385,396 ---- // point is the index into the char array where the exponent starts // (or, if there is no exponent, this is equal to end) int point = offset; ! // dot is the index into the char array where the decimal point is // found, or -1 if there is no decimal point int dot = -1; ! // The following examples show what these variables mean. Note that ! // point and dot don't yet have the correct values, they will be // properly assigned in a loop later on in this method. // // Example 1 *************** public class BigDecimal extends Number i *** 409,419 **** // // Example 3 // ! // - 1 2 3 4 5 e 7 // __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ // ! // offset = 2, len = 8, start = 3, dot = -1, point = 8, end = 10 ! // Determine the sign of the number. boolean negative = false; if (in[offset] == '+') --- 409,419 ---- // // Example 3 // ! // - 1 2 3 4 5 e 7 // __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ // ! // offset = 2, len = 8, start = 3, dot = -1, point = 8, end = 10 ! // Determine the sign of the number. boolean negative = false; if (in[offset] == '+') *************** public class BigDecimal extends Number i *** 428,434 **** negative = true; } ! // Check each character looking for the decimal point and the // start of the exponent. while (point < end) { --- 428,434 ---- negative = true; } ! // Check each character looking for the decimal point and the // start of the exponent. while (point < end) { *************** public class BigDecimal extends Number i *** 443,449 **** // Break when we reach the start of the exponent. else if (c == 'e' || c == 'E') break; ! // Throw an exception if the character was not a decimal or an // exponent and is not a digit. else if (!Character.isDigit(c)) throw new NumberFormatException("unrecognized character at " + point --- 443,449 ---- // Break when we reach the start of the exponent. else if (c == 'e' || c == 'E') break; ! // Throw an exception if the character was not a decimal or an // exponent and is not a digit. else if (!Character.isDigit(c)) throw new NumberFormatException("unrecognized character at " + point *************** public class BigDecimal extends Number i *** 456,462 **** CPStringBuilder val = new CPStringBuilder(point - start - 1); if (dot != -1) { ! // If there was a decimal we must combine the two parts that // contain only digits and we must set the scale properly. val.append(in, start, dot - start); val.append(in, dot + 1, point - dot - 1); --- 456,462 ---- CPStringBuilder val = new CPStringBuilder(point - start - 1); if (dot != -1) { ! // If there was a decimal we must combine the two parts that // contain only digits and we must set the scale properly. val.append(in, start, dot - start); val.append(in, dot + 1, point - dot - 1); *************** public class BigDecimal extends Number i *** 494,500 **** try { ! // Adjust the scale according to the exponent. // Remember that the value of a BigDecimal is // unscaledValue x Math.pow(10, -scale) scale -= Integer.parseInt(new String(in, point, end - point)); --- 494,500 ---- try { ! // Adjust the scale according to the exponent. // Remember that the value of a BigDecimal is // unscaledValue x Math.pow(10, -scale) scale -= Integer.parseInt(new String(in, point, end - point)); *************** public class BigDecimal extends Number i *** 505,512 **** } } } ! ! public BigDecimal (String num) throws NumberFormatException { int len = num.length(); int start = 0, point = 0; --- 505,512 ---- } } } ! ! public BigDecimal (String num) throws NumberFormatException { int len = num.length(); int start = 0, point = 0; *************** public class BigDecimal extends Number i *** 514,555 **** boolean negative = false; if (num.charAt(0) == '+') { ! ++start; ! ++point; } else if (num.charAt(0) == '-') { ! ++start; ! ++point; ! negative = true; } while (point < len) { ! char c = num.charAt (point); ! if (c == '.') ! { ! if (dot >= 0) ! throw new NumberFormatException ("multiple `.'s in number"); ! dot = point; ! } ! else if (c == 'e' || c == 'E') ! break; ! else if (Character.digit (c, 10) < 0) ! throw new NumberFormatException ("unrecognized character: " + c); ! ++point; } String val; if (dot >= 0) { ! val = num.substring (start, dot) + num.substring (dot + 1, point); ! scale = point - 1 - dot; } else { ! val = num.substring (start, point); ! scale = 0; } if (val.length () == 0) throw new NumberFormatException ("no digits seen"); --- 514,555 ---- boolean negative = false; if (num.charAt(0) == '+') { ! ++start; ! ++point; } else if (num.charAt(0) == '-') { ! ++start; ! ++point; ! negative = true; } while (point < len) { ! char c = num.charAt (point); ! if (c == '.') ! { ! if (dot >= 0) ! throw new NumberFormatException ("multiple `.'s in number"); ! dot = point; ! } ! else if (c == 'e' || c == 'E') ! break; ! else if (Character.digit (c, 10) < 0) ! throw new NumberFormatException ("unrecognized character: " + c); ! ++point; } String val; if (dot >= 0) { ! val = num.substring (start, dot) + num.substring (dot + 1, point); ! scale = point - 1 - dot; } else { ! val = num.substring (start, point); ! scale = 0; } if (val.length () == 0) throw new NumberFormatException ("no digits seen"); *************** public class BigDecimal extends Number i *** 567,605 **** if (point >= len ) throw new NumberFormatException ("no exponent following e or E"); ! ! try ! { scale -= Integer.parseInt (num.substring (point)); ! } ! catch (NumberFormatException ex) ! { ! throw new NumberFormatException ("malformed exponent"); ! } } } ! public static BigDecimal valueOf (long val) { return valueOf (val, 0); } ! public static BigDecimal valueOf (long val, int scale) ! throws NumberFormatException { if ((scale == 0) && ((int)val == val)) switch ((int) val) ! { ! case 0: ! return ZERO; ! case 1: ! return ONE; ! } return new BigDecimal (BigInteger.valueOf (val), scale); } ! public BigDecimal add (BigDecimal val) { // For addition, need to line up decimals. Note that the movePointRight // method cannot be used for this as it might return a BigDecimal with --- 567,605 ---- if (point >= len ) throw new NumberFormatException ("no exponent following e or E"); ! ! try ! { scale -= Integer.parseInt (num.substring (point)); ! } ! catch (NumberFormatException ex) ! { ! throw new NumberFormatException ("malformed exponent"); ! } } } ! public static BigDecimal valueOf (long val) { return valueOf (val, 0); } ! public static BigDecimal valueOf (long val, int scale) ! throws NumberFormatException { if ((scale == 0) && ((int)val == val)) switch ((int) val) ! { ! case 0: ! return ZERO; ! case 1: ! return ONE; ! } return new BigDecimal (BigInteger.valueOf (val), scale); } ! public BigDecimal add (BigDecimal val) { // For addition, need to line up decimals. Note that the movePointRight // method cannot be used for this as it might return a BigDecimal with *************** public class BigDecimal extends Number i *** 613,621 **** return new BigDecimal (op1.add (op2), Math.max (scale, val.scale)); } ! /** ! * Returns a BigDecimal whose value is found first by calling the * method add(val) and then by rounding according to the MathContext mc. * @param val the augend * @param mc the MathContext for rounding --- 613,621 ---- return new BigDecimal (op1.add (op2), Math.max (scale, val.scale)); } ! /** ! * Returns a BigDecimal whose value is found first by calling the * method add(val) and then by rounding according to the MathContext mc. * @param val the augend * @param mc the MathContext for rounding *************** public class BigDecimal extends Number i *** 629,641 **** return add(val).round(mc); } ! public BigDecimal subtract (BigDecimal val) { return this.add(val.negate()); } /** ! * Returns a BigDecimal whose value is found first by calling the * method subtract(val) and then by rounding according to the MathContext mc. * @param val the subtrahend * @param mc the MathContext for rounding --- 629,641 ---- return add(val).round(mc); } ! public BigDecimal subtract (BigDecimal val) { return this.add(val.negate()); } /** ! * Returns a BigDecimal whose value is found first by calling the * method subtract(val) and then by rounding according to the MathContext mc. * @param val the subtrahend * @param mc the MathContext for rounding *************** public class BigDecimal extends Number i *** 649,662 **** return subtract(val).round(mc); } ! public BigDecimal multiply (BigDecimal val) { return new BigDecimal (intVal.multiply (val.intVal), scale + val.scale); } ! /** * Returns a BigDecimal whose value is (this x val) before it is rounded ! * according to the MathContext mc. * @param val the multiplicand * @param mc the MathContext for rounding * @return a new BigDecimal with value approximately (this x val) --- 649,662 ---- return subtract(val).round(mc); } ! public BigDecimal multiply (BigDecimal val) { return new BigDecimal (intVal.multiply (val.intVal), scale + val.scale); } ! /** * Returns a BigDecimal whose value is (this x val) before it is rounded ! * according to the MathContext mc. * @param val the multiplicand * @param mc the MathContext for rounding * @return a new BigDecimal with value approximately (this x val) *************** public class BigDecimal extends Number i *** 669,683 **** return multiply(val).round(mc); } ! public BigDecimal divide (BigDecimal val, int roundingMode) ! throws ArithmeticException, IllegalArgumentException { return divide (val, scale, roundingMode); } ! /** * Returns a BigDecimal whose value is (this / val), with the specified scale ! * and rounding according to the RoundingMode * @param val the divisor * @param scale the scale of the BigDecimal returned * @param roundingMode the rounding mode to use --- 669,683 ---- return multiply(val).round(mc); } ! public BigDecimal divide (BigDecimal val, int roundingMode) ! throws ArithmeticException, IllegalArgumentException { return divide (val, scale, roundingMode); } ! /** * Returns a BigDecimal whose value is (this / val), with the specified scale ! * and rounding according to the RoundingMode * @param val the divisor * @param scale the scale of the BigDecimal returned * @param roundingMode the rounding mode to use *************** public class BigDecimal extends Number i *** 686,692 **** * UNNECESSARY but the specified scale cannot represent the value exactly * @since 1.5 */ ! public BigDecimal divide(BigDecimal val, int scale, RoundingMode roundingMode) { return divide (val, scale, roundingMode.ordinal()); --- 686,692 ---- * UNNECESSARY but the specified scale cannot represent the value exactly * @since 1.5 */ ! public BigDecimal divide(BigDecimal val, int scale, RoundingMode roundingMode) { return divide (val, scale, roundingMode.ordinal()); *************** public class BigDecimal extends Number i *** 705,734 **** { return divide (val, scale, roundingMode.ordinal()); } ! public BigDecimal divide(BigDecimal val, int newScale, int roundingMode) ! throws ArithmeticException, IllegalArgumentException { if (roundingMode < 0 || roundingMode > 7) ! throw ! new IllegalArgumentException("illegal rounding mode: " + roundingMode); ! if (intVal.signum () == 0) // handle special case of 0.0/0.0 return newScale == 0 ? ZERO : new BigDecimal (ZERO.intVal, newScale); ! // Ensure that pow gets a non-negative value. BigInteger valIntVal = val.intVal; int power = newScale - (scale - val.scale); if (power < 0) { ! // Effectively increase the scale of val to avoid an ! // ArithmeticException for a negative power. valIntVal = valIntVal.multiply (BigInteger.TEN.pow (-power)); ! power = 0; } BigInteger dividend = intVal.multiply (BigInteger.TEN.pow (power)); ! BigInteger parts[] = dividend.divideAndRemainder (valIntVal); BigInteger unrounded = parts[0]; --- 705,734 ---- { return divide (val, scale, roundingMode.ordinal()); } ! public BigDecimal divide(BigDecimal val, int newScale, int roundingMode) ! throws ArithmeticException, IllegalArgumentException { if (roundingMode < 0 || roundingMode > 7) ! throw ! new IllegalArgumentException("illegal rounding mode: " + roundingMode); ! if (intVal.signum () == 0) // handle special case of 0.0/0.0 return newScale == 0 ? ZERO : new BigDecimal (ZERO.intVal, newScale); ! // Ensure that pow gets a non-negative value. BigInteger valIntVal = val.intVal; int power = newScale - (scale - val.scale); if (power < 0) { ! // Effectively increase the scale of val to avoid an ! // ArithmeticException for a negative power. valIntVal = valIntVal.multiply (BigInteger.TEN.pow (-power)); ! power = 0; } BigInteger dividend = intVal.multiply (BigInteger.TEN.pow (power)); ! BigInteger parts[] = dividend.divideAndRemainder (valIntVal); BigInteger unrounded = parts[0]; *************** public class BigDecimal extends Number i *** 746,778 **** roundingMode = (sign < 0) ? ROUND_UP : ROUND_DOWN; else { ! // half is -1 if remainder*2 < positive intValue (*power), 0 if equal, ! // 1 if >. This implies that the remainder to round is less than, ! // equal to, or greater than half way to the next digit. ! BigInteger posRemainder ! = parts[1].signum () < 0 ? parts[1].negate() : parts[1]; ! valIntVal = valIntVal.signum () < 0 ? valIntVal.negate () : valIntVal; ! int half = posRemainder.shiftLeft(1).compareTo(valIntVal); ! switch(roundingMode) ! { ! case ROUND_HALF_UP: ! roundingMode = (half < 0) ? ROUND_DOWN : ROUND_UP; ! break; ! case ROUND_HALF_DOWN: ! roundingMode = (half > 0) ? ROUND_UP : ROUND_DOWN; ! break; ! case ROUND_HALF_EVEN: ! if (half < 0) ! roundingMode = ROUND_DOWN; ! else if (half > 0) ! roundingMode = ROUND_UP; ! else if (unrounded.testBit(0)) // odd, then ROUND_HALF_UP ! roundingMode = ROUND_UP; ! else // even, ROUND_HALF_DOWN ! roundingMode = ROUND_DOWN; ! break; ! } } if (roundingMode == ROUND_UP) --- 746,778 ---- roundingMode = (sign < 0) ? ROUND_UP : ROUND_DOWN; else { ! // half is -1 if remainder*2 < positive intValue (*power), 0 if equal, ! // 1 if >. This implies that the remainder to round is less than, ! // equal to, or greater than half way to the next digit. ! BigInteger posRemainder ! = parts[1].signum () < 0 ? parts[1].negate() : parts[1]; ! valIntVal = valIntVal.signum () < 0 ? valIntVal.negate () : valIntVal; ! int half = posRemainder.shiftLeft(1).compareTo(valIntVal); ! switch(roundingMode) ! { ! case ROUND_HALF_UP: ! roundingMode = (half < 0) ? ROUND_DOWN : ROUND_UP; ! break; ! case ROUND_HALF_DOWN: ! roundingMode = (half > 0) ? ROUND_UP : ROUND_DOWN; ! break; ! case ROUND_HALF_EVEN: ! if (half < 0) ! roundingMode = ROUND_DOWN; ! else if (half > 0) ! roundingMode = ROUND_UP; ! else if (unrounded.testBit(0)) // odd, then ROUND_HALF_UP ! roundingMode = ROUND_UP; ! else // even, ROUND_HALF_DOWN ! roundingMode = ROUND_DOWN; ! break; ! } } if (roundingMode == ROUND_UP) *************** public class BigDecimal extends Number i *** 781,804 **** // roundingMode == ROUND_DOWN return new BigDecimal (unrounded, newScale); } ! /** * Performs division, if the resulting quotient requires rounding ! * (has a nonterminating decimal expansion), ! * an ArithmeticException is thrown. * #see divide(BigDecimal, int, int) * @since 1.5 */ public BigDecimal divide(BigDecimal divisor) ! throws ArithmeticException, IllegalArgumentException { return divide(divisor, scale, ROUND_UNNECESSARY); } /** * Returns a BigDecimal whose value is the remainder in the quotient ! * this / val. This is obtained by ! * subtract(divideToIntegralValue(val).multiply(val)). * @param val the divisor * @return a BigDecimal whose value is the remainder * @throws ArithmeticException if val == 0 --- 781,804 ---- // roundingMode == ROUND_DOWN return new BigDecimal (unrounded, newScale); } ! /** * Performs division, if the resulting quotient requires rounding ! * (has a nonterminating decimal expansion), ! * an ArithmeticException is thrown. * #see divide(BigDecimal, int, int) * @since 1.5 */ public BigDecimal divide(BigDecimal divisor) ! throws ArithmeticException, IllegalArgumentException { return divide(divisor, scale, ROUND_UNNECESSARY); } /** * Returns a BigDecimal whose value is the remainder in the quotient ! * this / val. This is obtained by ! * subtract(divideToIntegralValue(val).multiply(val)). * @param val the divisor * @return a BigDecimal whose value is the remainder * @throws ArithmeticException if val == 0 *************** public class BigDecimal extends Number i *** 811,817 **** /** * Returns a BigDecimal array, the first element of which is the integer part ! * of this / val, and the second element of which is the remainder of * that quotient. * @param val the divisor * @return the above described BigDecimal array --- 811,817 ---- /** * Returns a BigDecimal array, the first element of which is the integer part ! * of this / val, and the second element of which is the remainder of * that quotient. * @param val the divisor * @return the above described BigDecimal array *************** public class BigDecimal extends Number i *** 825,833 **** result[1] = subtract(result[0].multiply(val)); return result; } ! /** ! * Returns a BigDecimal whose value is the integer part of the quotient * this / val. The preferred scale is this.scale - val.scale. * @param val the divisor * @return a BigDecimal whose value is the integer part of this / val. --- 825,833 ---- result[1] = subtract(result[0].multiply(val)); return result; } ! /** ! * Returns a BigDecimal whose value is the integer part of the quotient * this / val. The preferred scale is this.scale - val.scale. * @param val the divisor * @return a BigDecimal whose value is the integer part of this / val. *************** public class BigDecimal extends Number i *** 838,849 **** { return divide(val, ROUND_DOWN).floor().setScale(scale - val.scale, ROUND_DOWN); } ! /** ! * Mutates this BigDecimal into one with no fractional part, whose value is * equal to the largest integer that is <= to this BigDecimal. Note that * since this method is private it is okay to mutate this BigDecimal. ! * @return the BigDecimal obtained through the floor operation on this * BigDecimal. */ private BigDecimal floor() --- 838,849 ---- { return divide(val, ROUND_DOWN).floor().setScale(scale - val.scale, ROUND_DOWN); } ! /** ! * Mutates this BigDecimal into one with no fractional part, whose value is * equal to the largest integer that is <= to this BigDecimal. Note that * since this method is private it is okay to mutate this BigDecimal. ! * @return the BigDecimal obtained through the floor operation on this * BigDecimal. */ private BigDecimal floor() *************** public class BigDecimal extends Number i *** 855,871 **** intVal = new BigInteger(intValStr).multiply(BigInteger.TEN.pow(scale)); return this; } ! ! public int compareTo (BigDecimal val) { if (scale == val.scale) return intVal.compareTo (val.intVal); ! BigInteger thisParts[] = intVal.divideAndRemainder (BigInteger.TEN.pow (scale)); BigInteger valParts[] = val.intVal.divideAndRemainder (BigInteger.TEN.pow (val.scale)); ! int compare; if ((compare = thisParts[0].compareTo (valParts[0])) != 0) return compare; --- 855,871 ---- intVal = new BigInteger(intValStr).multiply(BigInteger.TEN.pow(scale)); return this; } ! ! public int compareTo (BigDecimal val) { if (scale == val.scale) return intVal.compareTo (val.intVal); ! BigInteger thisParts[] = intVal.divideAndRemainder (BigInteger.TEN.pow (scale)); BigInteger valParts[] = val.intVal.divideAndRemainder (BigInteger.TEN.pow (val.scale)); ! int compare; if ((compare = thisParts[0].compareTo (valParts[0])) != 0) return compare; *************** public class BigDecimal extends Number i *** 875,920 **** // Add some trailing zeros to the remainder with the smallest scale if (scale < val.scale) thisParts[1] = thisParts[1].multiply ! (BigInteger.valueOf (10).pow (val.scale - scale)); else if (scale > val.scale) valParts[1] = valParts[1].multiply ! (BigInteger.valueOf (10).pow (scale - val.scale)); // and compare them return thisParts[1].compareTo (valParts[1]); } ! public boolean equals (Object o) { ! return (o instanceof BigDecimal ! && scale == ((BigDecimal) o).scale ! && compareTo ((BigDecimal) o) == 0); } ! public int hashCode() { return intValue() ^ scale; } public BigDecimal max (BigDecimal val) { ! switch (compareTo (val)) { case 1: ! return this; default: ! return val; } } ! public BigDecimal min (BigDecimal val) { ! switch (compareTo (val)) { case -1: ! return this; default: ! return val; } } --- 875,920 ---- // Add some trailing zeros to the remainder with the smallest scale if (scale < val.scale) thisParts[1] = thisParts[1].multiply ! (BigInteger.valueOf (10).pow (val.scale - scale)); else if (scale > val.scale) valParts[1] = valParts[1].multiply ! (BigInteger.valueOf (10).pow (scale - val.scale)); // and compare them return thisParts[1].compareTo (valParts[1]); } ! public boolean equals (Object o) { ! return (o instanceof BigDecimal ! && scale == ((BigDecimal) o).scale ! && compareTo ((BigDecimal) o) == 0); } ! public int hashCode() { return intValue() ^ scale; } public BigDecimal max (BigDecimal val) { ! switch (compareTo (val)) { case 1: ! return this; default: ! return val; } } ! public BigDecimal min (BigDecimal val) { ! switch (compareTo (val)) { case -1: ! return this; default: ! return val; } } *************** public class BigDecimal extends Number i *** 931,965 **** if (scale >= n) return new BigDecimal (intVal, scale - n); ! return new BigDecimal (intVal.multiply ! (BigInteger.TEN.pow (n - scale)), 0); } ! public int signum () { return intVal.signum (); } ! public int scale () { return scale; } ! public BigInteger unscaledValue() { return intVal; } ! public BigDecimal abs () { return new BigDecimal (intVal.abs (), scale); } ! public BigDecimal negate () { return new BigDecimal (intVal.negate (), scale); } ! /** * Returns a BigDecimal whose value is found first by negating this via * the negate() method, then by rounding according to the MathContext mc. --- 931,965 ---- if (scale >= n) return new BigDecimal (intVal, scale - n); ! return new BigDecimal (intVal.multiply ! (BigInteger.TEN.pow (n - scale)), 0); } ! public int signum () { return intVal.signum (); } ! public int scale () { return scale; } ! public BigInteger unscaledValue() { return intVal; } ! public BigDecimal abs () { return new BigDecimal (intVal.abs (), scale); } ! public BigDecimal negate () { return new BigDecimal (intVal.negate (), scale); } ! /** * Returns a BigDecimal whose value is found first by negating this via * the negate() method, then by rounding according to the MathContext mc. *************** public class BigDecimal extends Number i *** 976,984 **** result = result.round(mc); return result; } ! /** ! * Returns this BigDecimal. This is included for symmetry with the * method negate(). * @return this * @since 1.5 --- 976,984 ---- result = result.round(mc); return result; } ! /** ! * Returns this BigDecimal. This is included for symmetry with the * method negate(). * @return this * @since 1.5 *************** public class BigDecimal extends Number i *** 987,995 **** { return this; } ! /** ! * Returns a BigDecimal whose value is found by rounding this * according to the MathContext. This is the same as round(MathContext). * @param mc the MathContext for rounding * @return a BigDecimal whose value is this before being rounded --- 987,995 ---- { return this; } ! /** ! * Returns a BigDecimal whose value is found by rounding this * according to the MathContext. This is the same as round(MathContext). * @param mc the MathContext for rounding * @return a BigDecimal whose value is this before being rounded *************** public class BigDecimal extends Number i *** 1001,1007 **** { return round(mc); } ! /** * Returns a BigDecimal which is this BigDecimal rounded according to the * MathContext rounding settings. --- 1001,1007 ---- { return round(mc); } ! /** * Returns a BigDecimal which is this BigDecimal rounded according to the * MathContext rounding settings. *************** public class BigDecimal extends Number i *** 1012,1023 **** { int mcPrecision = mc.getPrecision(); int numToChop = precision() - mcPrecision; ! // If mc specifies not to chop any digits or if we've already chopped // enough digits (say by using a MathContext in the constructor for this // BigDecimal) then just return this. if (mcPrecision == 0 || numToChop <= 0) return this; ! // Make a new BigDecimal which is the correct power of 10 to chop off // the required number of digits and then call divide. BigDecimal div = new BigDecimal(BigInteger.TEN.pow(numToChop)); --- 1012,1023 ---- { int mcPrecision = mc.getPrecision(); int numToChop = precision() - mcPrecision; ! // If mc specifies not to chop any digits or if we've already chopped // enough digits (say by using a MathContext in the constructor for this // BigDecimal) then just return this. if (mcPrecision == 0 || numToChop <= 0) return this; ! // Make a new BigDecimal which is the correct power of 10 to chop off // the required number of digits and then call divide. BigDecimal div = new BigDecimal(BigInteger.TEN.pow(numToChop)); *************** public class BigDecimal extends Number i *** 1026,1063 **** rounded.precision = mcPrecision; return rounded; } ! /** * Returns the precision of this BigDecimal (the number of digits in the * unscaled value). The precision of a zero value is 1. ! * @return the number of digits in the unscaled value, or 1 if the value * is zero. */ public int precision() { if (precision == 0) { ! String s = intVal.toString(); ! precision = s.length() - (( s.charAt(0) == '-' ) ? 1 : 0); } return precision; } ! /** * Returns the String representation of this BigDecimal, using scientific * notation if necessary. The following steps are taken to generate * the result: ! * * 1. the BigInteger unscaledValue's toString method is called and if * scale == 0 is returned. * 2. an int adjExp is created which is equal to the negation ! * of scale plus the number of digits in the unscaled value, * minus one. ! * 3. if scale >= 0 && adjExp >= -6 then we represent this ! * BigDecimal without scientific notation. A decimal is added if the * scale is positive and zeros are prepended as necessary. * 4. if scale is negative or adjExp is less than -6 we use scientific ! * notation. If the unscaled value has more than one digit, a decimal * as inserted after the first digit, the character 'E' is appended * and adjExp is appended. */ --- 1026,1063 ---- rounded.precision = mcPrecision; return rounded; } ! /** * Returns the precision of this BigDecimal (the number of digits in the * unscaled value). The precision of a zero value is 1. ! * @return the number of digits in the unscaled value, or 1 if the value * is zero. */ public int precision() { if (precision == 0) { ! String s = intVal.toString(); ! precision = s.length() - (( s.charAt(0) == '-' ) ? 1 : 0); } return precision; } ! /** * Returns the String representation of this BigDecimal, using scientific * notation if necessary. The following steps are taken to generate * the result: ! * * 1. the BigInteger unscaledValue's toString method is called and if * scale == 0 is returned. * 2. an int adjExp is created which is equal to the negation ! * of scale plus the number of digits in the unscaled value, * minus one. ! * 3. if scale >= 0 && adjExp >= -6 then we represent this ! * BigDecimal without scientific notation. A decimal is added if the * scale is positive and zeros are prepended as necessary. * 4. if scale is negative or adjExp is less than -6 we use scientific ! * notation. If the unscaled value has more than one digit, a decimal * as inserted after the first digit, the character 'E' is appended * and adjExp is appended. */ *************** public class BigDecimal extends Number i *** 1076,1082 **** if (scale >= 0 && (point - 1) >= -6) { ! // Convert to character form without scientific notation. if (point <= 0) { // Zeros need to be prepended to the StringBuilder. --- 1076,1082 ---- if (scale >= 0 && (point - 1) >= -6) { ! // Convert to character form without scientific notation. if (point <= 0) { // Zeros need to be prepended to the StringBuilder. *************** public class BigDecimal extends Number i *** 1094,1100 **** } else { ! // No zeros need to be prepended so the String is simply the // unscaled value with the decimal point inserted. val.append(bigStr); val.insert(point + (negative ? 1 : 0), '.'); --- 1094,1100 ---- } else { ! // No zeros need to be prepended so the String is simply the // unscaled value with the decimal point inserted. val.append(bigStr); val.insert(point + (negative ? 1 : 0), '.'); *************** public class BigDecimal extends Number i *** 1104,1110 **** { // We must use scientific notation to represent this BigDecimal. val.append(bigStr); ! // If there is more than one digit in the unscaled value we put a // decimal after the first digit. if (bigStr.length() > 1) val.insert( ( negative ? 2 : 1 ), '.'); --- 1104,1110 ---- { // We must use scientific notation to represent this BigDecimal. val.append(bigStr); ! // If there is more than one digit in the unscaled value we put a // decimal after the first digit. if (bigStr.length() > 1) val.insert( ( negative ? 2 : 1 ), '.'); *************** public class BigDecimal extends Number i *** 1119,1128 **** /** * Returns the String representation of this BigDecimal, using engineering ! * notation if necessary. This is similar to toString() but when exponents * are used the exponent is made to be a multiple of 3 such that the integer * part is between 1 and 999. ! * * @return a String representation of this BigDecimal in engineering notation * @since 1.5 */ --- 1119,1128 ---- /** * Returns the String representation of this BigDecimal, using engineering ! * notation if necessary. This is similar to toString() but when exponents * are used the exponent is made to be a multiple of 3 such that the integer * part is between 1 and 999. ! * * @return a String representation of this BigDecimal in engineering notation * @since 1.5 */ *************** public class BigDecimal extends Number i *** 1161,1167 **** } else { ! // No zeros need to be prepended so the String is simply the // unscaled value with the decimal point inserted. val.append(bigStr); val.insert(point + (negative ? 1 : 0), '.'); --- 1161,1167 ---- } else { ! // No zeros need to be prepended so the String is simply the // unscaled value with the decimal point inserted. val.append(bigStr); val.insert(point + (negative ? 1 : 0), '.'); *************** public class BigDecimal extends Number i *** 1172,1178 **** // We must use scientific notation to represent this BigDecimal. // The exponent must be a multiple of 3 and the integer part // must be between 1 and 999. ! val.append(bigStr); int zeros = adjExp % 3; int dot = 1; if (adjExp > 0) --- 1172,1178 ---- // We must use scientific notation to represent this BigDecimal. // The exponent must be a multiple of 3 and the integer part // must be between 1 and 999. ! val.append(bigStr); int zeros = adjExp % 3; int dot = 1; if (adjExp > 0) *************** public class BigDecimal extends Number i *** 1185,1193 **** else { // If the exponent is negative then we move the dot to the right ! // and decrease the exponent (increase its magnitude) until // it is a multiple of 3. Note that this is not adjExp -= zeros ! // because the mod operator doesn't give us the distance to the // correct multiple of 3. (-5 mod 3) is -2 but the distance from // -5 to the correct multiple of 3 (-6) is 1, not 2. if (zeros == -2) --- 1185,1193 ---- else { // If the exponent is negative then we move the dot to the right ! // and decrease the exponent (increase its magnitude) until // it is a multiple of 3. Note that this is not adjExp -= zeros ! // because the mod operator doesn't give us the distance to the // correct multiple of 3. (-5 mod 3) is -2 but the distance from // -5 to the correct multiple of 3 (-6) is 1, not 2. if (zeros == -2) *************** public class BigDecimal extends Number i *** 1211,1217 **** } else if (bigStr.length() > dot) val.insert(dot + (negative ? 1 : 0), '.'); ! // And then append 'E' and the exponent (adjExp). val.append('E'); if (adjExp >= 0) --- 1211,1217 ---- } else if (bigStr.length() > dot) val.insert(dot + (negative ? 1 : 0), '.'); ! // And then append 'E' and the exponent (adjExp). val.append('E'); if (adjExp >= 0) *************** public class BigDecimal extends Number i *** 1220,1239 **** } return val.toString(); } ! /** ! * Returns a String representation of this BigDecimal without using * scientific notation. This is how toString() worked for releases 1.4 * and previous. Zeros may be added to the end of the String. For ! * example, an unscaled value of 1234 and a scale of -3 would result in ! * the String 1234000, but the toString() method would return * 1.234E+6. * @return a String representation of this BigDecimal * @since 1.5 */ public String toPlainString() { ! // If the scale is zero we simply return the String representation of the // unscaled value. String bigStr = intVal.toString(); if (scale == 0) --- 1220,1239 ---- } return val.toString(); } ! /** ! * Returns a String representation of this BigDecimal without using * scientific notation. This is how toString() worked for releases 1.4 * and previous. Zeros may be added to the end of the String. For ! * example, an unscaled value of 1234 and a scale of -3 would result in ! * the String 1234000, but the toString() method would return * 1.234E+6. * @return a String representation of this BigDecimal * @since 1.5 */ public String toPlainString() { ! // If the scale is zero we simply return the String representation of the // unscaled value. String bigStr = intVal.toString(); if (scale == 0) *************** public class BigDecimal extends Number i *** 1245,1251 **** int point = bigStr.length() - scale - (negative ? 1 : 0); CPStringBuilder sb = new CPStringBuilder(bigStr.length() + 2 ! + (point <= 0 ? (-point + 1) : 0)); if (point <= 0) { // We have to prepend zeros and a decimal point. --- 1245,1251 ---- int point = bigStr.length() - scale - (negative ? 1 : 0); CPStringBuilder sb = new CPStringBuilder(bigStr.length() + 2 ! + (point <= 0 ? (-point + 1) : 0)); if (point <= 0) { // We have to prepend zeros and a decimal point. *************** public class BigDecimal extends Number i *** 1275,1287 **** } return sb.toString(); } ! /** * Converts this BigDecimal to a BigInteger. Any fractional part will * be discarded. * @return a BigDecimal whose value is equal to floor[this] */ ! public BigInteger toBigInteger () { // If scale > 0 then we must divide, if scale > 0 then we must multiply, // and if scale is zero then we just return intVal; --- 1275,1287 ---- } return sb.toString(); } ! /** * Converts this BigDecimal to a BigInteger. Any fractional part will * be discarded. * @return a BigDecimal whose value is equal to floor[this] */ ! public BigInteger toBigInteger () { // If scale > 0 then we must divide, if scale > 0 then we must multiply, // and if scale is zero then we just return intVal; *************** public class BigDecimal extends Number i *** 1291,1299 **** return intVal.multiply(BigInteger.TEN.pow(-scale)); return intVal; } ! /** ! * Converts this BigDecimal into a BigInteger, throwing an * ArithmeticException if the conversion is not exact. * @return a BigInteger whose value is equal to the value of this BigDecimal * @since 1.5 --- 1291,1299 ---- return intVal.multiply(BigInteger.TEN.pow(-scale)); return intVal; } ! /** ! * Converts this BigDecimal into a BigInteger, throwing an * ArithmeticException if the conversion is not exact. * @return a BigInteger whose value is equal to the value of this BigDecimal * @since 1.5 *************** public class BigDecimal extends Number i *** 1303,1309 **** if (scale > 0) { // If we have to divide, we must check if the result is exact. ! BigInteger[] result = intVal.divideAndRemainder(BigInteger.TEN.pow(scale)); if (result[1].equals(BigInteger.ZERO)) return result[0]; --- 1303,1309 ---- if (scale > 0) { // If we have to divide, we must check if the result is exact. ! BigInteger[] result = intVal.divideAndRemainder(BigInteger.TEN.pow(scale)); if (result[1].equals(BigInteger.ZERO)) return result[0]; *************** public class BigDecimal extends Number i *** 1316,1335 **** return intVal; } ! public int intValue () { return toBigInteger ().intValue (); } ! /** ! * Returns a BigDecimal which is numerically equal to this BigDecimal but ! * with no trailing zeros in the representation. For example, if this * BigDecimal has [unscaledValue, scale] = [6313000, 4] this method returns ! * a BigDecimal with [unscaledValue, scale] = [6313, 1]. As another * example, [12400, -2] would become [124, -4]. * @return a numerically equal BigDecimal with no trailing zeros */ ! public BigDecimal stripTrailingZeros() { String intValStr = intVal.toString(); int newScale = scale; --- 1316,1335 ---- return intVal; } ! public int intValue () { return toBigInteger ().intValue (); } ! /** ! * Returns a BigDecimal which is numerically equal to this BigDecimal but ! * with no trailing zeros in the representation. For example, if this * BigDecimal has [unscaledValue, scale] = [6313000, 4] this method returns ! * a BigDecimal with [unscaledValue, scale] = [6313, 1]. As another * example, [12400, -2] would become [124, -4]. * @return a numerically equal BigDecimal with no trailing zeros */ ! public BigDecimal stripTrailingZeros() { String intValStr = intVal.toString(); int newScale = scale; *************** public class BigDecimal extends Number i *** 1344,1350 **** } // Create a new BigDecimal with the appropriate substring and then // set its scale. ! BigDecimal result = new BigDecimal(intValStr.substring(0, pointer + 1)); result.scale = newScale; return result; } --- 1344,1350 ---- } // Create a new BigDecimal with the appropriate substring and then // set its scale. ! BigDecimal result = new BigDecimal(intValStr.substring(0, pointer + 1)); result.scale = newScale; return result; } *************** public class BigDecimal extends Number i *** 1354,1365 **** return toBigInteger().longValue(); } ! public float floatValue() { return Float.valueOf(toString()).floatValue(); } ! public double doubleValue() { return Double.valueOf(toString()).doubleValue(); } --- 1354,1365 ---- return toBigInteger().longValue(); } ! public float floatValue() { return Float.valueOf(toString()).floatValue(); } ! public double doubleValue() { return Double.valueOf(toString()).doubleValue(); } *************** public class BigDecimal extends Number i *** 1378,1403 **** if( scale < 0 ) throw new ArithmeticException("Scale parameter < 0."); return divide (ONE, scale, roundingMode); } ! /** * Returns a BigDecimal whose value is the same as this BigDecimal but whose * representation has a scale of newScale. If the scale is * reduced then rounding may occur, according to the RoundingMode. * @param newScale * @param roundingMode ! * @return a BigDecimal whose scale is as given, whose value is * this with possible rounding ! * @throws ArithmeticException if the rounding mode is UNNECESSARY but ! * rounding is required * @since 1.5 */ public BigDecimal setScale(int newScale, RoundingMode roundingMode) { return setScale(newScale, roundingMode.ordinal()); } ! /** ! * Returns a new BigDecimal constructed from the BigDecimal(String) * constructor using the Double.toString(double) method to obtain * the String. * @param val the double value used in Double.toString(double) --- 1378,1403 ---- if( scale < 0 ) throw new ArithmeticException("Scale parameter < 0."); return divide (ONE, scale, roundingMode); } ! /** * Returns a BigDecimal whose value is the same as this BigDecimal but whose * representation has a scale of newScale. If the scale is * reduced then rounding may occur, according to the RoundingMode. * @param newScale * @param roundingMode ! * @return a BigDecimal whose scale is as given, whose value is * this with possible rounding ! * @throws ArithmeticException if the rounding mode is UNNECESSARY but ! * rounding is required * @since 1.5 */ public BigDecimal setScale(int newScale, RoundingMode roundingMode) { return setScale(newScale, roundingMode.ordinal()); } ! /** ! * Returns a new BigDecimal constructed from the BigDecimal(String) * constructor using the Double.toString(double) method to obtain * the String. * @param val the double value used in Double.toString(double) *************** public class BigDecimal extends Number i *** 1411,1420 **** throw new NumberFormatException("argument cannot be NaN or infinite."); return new BigDecimal(Double.toString(val)); } ! /** * Returns a BigDecimal whose numerical value is the numerical value ! * of this BigDecimal multiplied by 10 to the power of n. * @param n the power of ten * @return the new BigDecimal * @since 1.5 --- 1411,1420 ---- throw new NumberFormatException("argument cannot be NaN or infinite."); return new BigDecimal(Double.toString(val)); } ! /** * Returns a BigDecimal whose numerical value is the numerical value ! * of this BigDecimal multiplied by 10 to the power of n. * @param n the power of ten * @return the new BigDecimal * @since 1.5 *************** public class BigDecimal extends Number i *** 1425,1434 **** result.precision = precision; return result; } ! /** ! * Returns a BigDecimal whose value is this to the power of ! * n. * @param n the power * @return the new BigDecimal * @since 1.5 --- 1425,1434 ---- result.precision = precision; return result; } ! /** ! * Returns a BigDecimal whose value is this to the power of ! * n. * @param n the power * @return the new BigDecimal * @since 1.5 *************** public class BigDecimal extends Number i *** 1440,1446 **** BigDecimal result = new BigDecimal(intVal.pow(n), scale * n); return result; } ! /** * Returns a BigDecimal whose value is determined by first calling pow(n) * and then by rounding according to the MathContext mc. --- 1440,1446 ---- BigDecimal result = new BigDecimal(intVal.pow(n), scale * n); return result; } ! /** * Returns a BigDecimal whose value is determined by first calling pow(n) * and then by rounding according to the MathContext mc. *************** public class BigDecimal extends Number i *** 1457,1463 **** // currently do not. return pow(n).round(mc); } ! /** * Returns a BigDecimal whose value is the absolute value of this BigDecimal * with rounding according to the given MathContext. --- 1457,1463 ---- // currently do not. return pow(n).round(mc); } ! /** * Returns a BigDecimal whose value is the absolute value of this BigDecimal * with rounding according to the given MathContext. *************** public class BigDecimal extends Number i *** 1470,1476 **** result = result.round(mc); return result; } ! /** * Returns the size of a unit in the last place of this BigDecimal. This * returns a BigDecimal with [unscaledValue, scale] = [1, this.scale()]. --- 1470,1476 ---- result = result.round(mc); return result; } ! /** * Returns the size of a unit in the last place of this BigDecimal. This * returns a BigDecimal with [unscaledValue, scale] = [1, this.scale()]. *************** public class BigDecimal extends Number i *** 1481,1487 **** { return new BigDecimal(BigInteger.ONE, scale); } ! /** * Converts this BigDecimal to a long value. * @return the long value --- 1481,1487 ---- { return new BigDecimal(BigInteger.ONE, scale); } ! /** * Converts this BigDecimal to a long value. * @return the long value *************** public class BigDecimal extends Number i *** 1499,1508 **** || (result < 0 && signum() == 1) || (result > 0 && signum() == -1)) throw new ArithmeticException("this BigDecimal is too " + "large to fit into the return type"); ! return intVal.longValue(); } ! /** * Converts this BigDecimal into an int by first calling longValueExact * and then checking that the long returned from that --- 1499,1508 ---- || (result < 0 && signum() == 1) || (result > 0 && signum() == -1)) throw new ArithmeticException("this BigDecimal is too " + "large to fit into the return type"); ! return intVal.longValue(); } ! /** * Converts this BigDecimal into an int by first calling longValueExact * and then checking that the long returned from that *************** public class BigDecimal extends Number i *** 1520,1526 **** throw new ArithmeticException ("this BigDecimal cannot fit into an int"); return result; } ! /** * Converts this BigDecimal into a byte by first calling longValueExact * and then checking that the long returned from that --- 1520,1526 ---- throw new ArithmeticException ("this BigDecimal cannot fit into an int"); return result; } ! /** * Converts this BigDecimal into a byte by first calling longValueExact * and then checking that the long returned from that *************** public class BigDecimal extends Number i *** 1538,1544 **** throw new ArithmeticException ("this BigDecimal cannot fit into a byte"); return result; } ! /** * Converts this BigDecimal into a short by first calling longValueExact * and then checking that the long returned from that --- 1538,1544 ---- throw new ArithmeticException ("this BigDecimal cannot fit into a byte"); return result; } ! /** * Converts this BigDecimal into a short by first calling longValueExact * and then checking that the long returned from that diff -Nrcpad gcc-4.5.2/libjava/classpath/java/math/BigInteger.java gcc-4.6.0/libjava/classpath/java/math/BigInteger.java *** gcc-4.5.2/libjava/classpath/java/math/BigInteger.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/math/BigInteger.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.logging.Logger; *** 54,60 **** * Written using on-line Java Platform 1.2 API Specification, as well * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998) and * "Applied Cryptography, Second Edition" by Bruce Schneier (Wiley, 1996). ! * * Based primarily on IntNum.java BitOps.java by Per Bothner (per@bothner.com) * (found in Kawa 1.6.62). * --- 54,60 ---- * Written using on-line Java Platform 1.2 API Specification, as well * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998) and * "Applied Cryptography, Second Edition" by Bruce Schneier (Wiley, 1996). ! * * Based primarily on IntNum.java BitOps.java by Per Bothner (per@bothner.com) * (found in Kawa 1.6.62). * *************** public class BigInteger extends Number i *** 84,96 **** private static final long serialVersionUID = -8287574255936472291L; ! /** We pre-allocate integers in the range minFixNum..maxFixNum. * Note that we must at least preallocate 0, 1, and 10. */ private static final int minFixNum = -100; private static final int maxFixNum = 1024; private static final int numFixNum = maxFixNum-minFixNum+1; private static final BigInteger[] smallFixNums; ! /** The alter-ego GMP instance for this. */ private transient GMP mpz; --- 84,96 ---- private static final long serialVersionUID = -8287574255936472291L; ! /** We pre-allocate integers in the range minFixNum..maxFixNum. * Note that we must at least preallocate 0, 1, and 10. */ private static final int minFixNum = -100; private static final int maxFixNum = 1024; private static final int numFixNum = maxFixNum-minFixNum+1; private static final BigInteger[] smallFixNums; ! /** The alter-ego GMP instance for this. */ private transient GMP mpz; *************** public class BigInteger extends Number i *** 109,116 **** else { smallFixNums = new BigInteger[numFixNum]; ! for (int i = numFixNum; --i >= 0; ) ! smallFixNums[i] = new BigInteger(i + minFixNum); ZERO = smallFixNums[-minFixNum]; ONE = smallFixNums[1 - minFixNum]; --- 109,116 ---- else { smallFixNums = new BigInteger[numFixNum]; ! for (int i = numFixNum; --i >= 0; ) ! smallFixNums[i] = new BigInteger(i + minFixNum); ZERO = smallFixNums[-minFixNum]; ONE = smallFixNums[1 - minFixNum]; *************** public class BigInteger extends Number i *** 260,270 **** if (signum == 0) { ! int i; ! for (i = magnitude.length - 1; i >= 0 && magnitude[i] == 0; --i) ! ; ! if (i >= 0) ! throw new NumberFormatException(); return; } --- 260,270 ---- if (signum == 0) { ! int i; ! for (i = magnitude.length - 1; i >= 0 && magnitude[i] == 0; --i) ! ; ! if (i >= 0) ! throw new NumberFormatException(); return; } *************** public class BigInteger extends Number i *** 330,349 **** while (highbits == 0 && nwords > 0) { ! highbits = rnd.nextInt(); ! --nwords; } if (nwords == 0 && highbits >= 0) { ! ival = highbits; } else { ! ival = highbits < 0 ? nwords + 2 : nwords + 1; ! words = new int[ival]; ! words[nwords] = highbits; ! while (--nwords >= 0) ! words[nwords] = rnd.nextInt(); } } --- 330,349 ---- while (highbits == 0 && nwords > 0) { ! highbits = rnd.nextInt(); ! --nwords; } if (nwords == 0 && highbits >= 0) { ! ival = highbits; } else { ! ival = highbits < 0 ? nwords + 2 : nwords + 1; ! words = new int[ival]; ! words[nwords] = highbits; ! while (--nwords >= 0) ! words[nwords] = rnd.nextInt(); } } *************** public class BigInteger extends Number i *** 369,375 **** } } ! /** * Return a BigInteger that is bitLength bits long with a * probability < 2^-100 of being composite. * --- 369,375 ---- } } ! /** * Return a BigInteger that is bitLength bits long with a * probability < 2^-100 of being composite. * *************** public class BigInteger extends Number i *** 465,473 **** // Elements remaining in byte[] are a multiple of 4. while (nwords > 0) words[--nwords] = bytes[bptr++] << 24 | ! (bytes[bptr++] & 0xff) << 16 | ! (bytes[bptr++] & 0xff) << 8 | ! (bytes[bptr++] & 0xff); return words; } --- 465,473 ---- // Elements remaining in byte[] are a multiple of 4. while (nwords > 0) words[--nwords] = bytes[bptr++] << 24 | ! (bytes[bptr++] & 0xff) << 16 | ! (bytes[bptr++] & 0xff) << 8 | ! (bytes[bptr++] & 0xff); return words; } *************** public class BigInteger extends Number i *** 489,518 **** { if (nwords == 0) { ! if (words != null) ! { ! if (ival > 0) ! ival = words[0]; ! words = null; ! } } else if (words == null ! || words.length < nwords ! || words.length > nwords + 2) { ! int[] new_words = new int [nwords]; ! if (words == null) ! { ! new_words[0] = ival; ! ival = 1; ! } ! else ! { ! if (nwords < ival) ! ival = nwords; ! System.arraycopy(words, 0, new_words, 0, ival); ! } ! words = new_words; } } --- 489,518 ---- { if (nwords == 0) { ! if (words != null) ! { ! if (ival > 0) ! ival = words[0]; ! words = null; ! } } else if (words == null ! || words.length < nwords ! || words.length > nwords + 2) { ! int[] new_words = new int [nwords]; ! if (words == null) ! { ! new_words[0] = ival; ! ival = 1; ! } ! else ! { ! if (nwords < ival) ! ival = nwords; ! System.arraycopy(words, 0, new_words, 0, ival); ! } ! words = new_words; } } *************** public class BigInteger extends Number i *** 588,606 **** int i = len; if (i > 0) { ! int word = words[--i]; ! if (word == -1) ! { ! while (i > 0 && (word = words[i - 1]) < 0) ! { ! i--; ! if (word != -1) break; ! } ! } ! else ! { ! while (word == 0 && i > 0 && (word = words[i - 1]) >= 0) i--; ! } } return i + 1; } --- 588,606 ---- int i = len; if (i > 0) { ! int word = words[--i]; ! if (word == -1) ! { ! while (i > 0 && (word = words[i - 1]) < 0) ! { ! i--; ! if (word != -1) break; ! } ! } ! else ! { ! while (word == 0 && i > 0 && (word = words[i - 1]) >= 0) i--; ! } } return i + 1; } *************** public class BigInteger extends Number i *** 608,618 **** private BigInteger canonicalize() { if (words != null ! && (ival = BigInteger.wordsNeeded(words, ival)) <= 1) { ! if (ival == 1) ! ival = words[0]; ! words = null; } if (words == null && ival >= minFixNum && ival <= maxFixNum) return smallFixNums[ival - minFixNum]; --- 608,618 ---- private BigInteger canonicalize() { if (words != null ! && (ival = BigInteger.wordsNeeded(words, ival)) <= 1) { ! if (ival == 1) ! ival = words[0]; ! words = null; } if (words == null && ival >= minFixNum && ival <= maxFixNum) return smallFixNums[ival - minFixNum]; *************** public class BigInteger extends Number i *** 641,657 **** { if (x.words == null) { ! set((long) x.ival + (long) y); ! return; } int len = x.ival; realloc(len + 1); long carry = y; for (int i = 0; i < len; i++) { ! carry += ((long) x.words[i] & 0xffffffffL); ! words[i] = (int) carry; ! carry >>= 32; } if (x.words[len - 1] < 0) carry--; --- 641,657 ---- { if (x.words == null) { ! set((long) x.ival + (long) y); ! return; } int len = x.ival; realloc(len + 1); long carry = y; for (int i = 0; i < len; i++) { ! carry += ((long) x.words[i] & 0xffffffffL); ! words[i] = (int) carry; ! carry >>= 32; } if (x.words[len - 1] < 0) carry--; *************** public class BigInteger extends Number i *** 671,685 **** int i = (int) y; if ((long) i == y) { ! ival = i; ! words = null; } else { ! realloc(2); ! words[0] = i; ! words[1] = (int) (y >> 32); ! ival = 2; } } --- 671,685 ---- int i = (int) y; if ((long) i == y) { ! ival = i; ! words = null; } else { ! realloc(2); ! words[0] = i; ! words[1] = (int) (y >> 32); ! ival = 2; } } *************** public class BigInteger extends Number i *** 698,706 **** set(y.ival); else if (this != y) { ! realloc(y.ival); ! System.arraycopy(y.words, 0, words, 0, y.ival); ! ival = y.ival; } } --- 698,706 ---- set(y.ival); else if (this != y) { ! realloc(y.ival); ! System.arraycopy(y.words, 0, words, 0, y.ival); ! ival = y.ival; } } *************** public class BigInteger extends Number i *** 711,720 **** return valueOf((long) k * (long) y.ival + (long) x.ival); if (k != 1) { ! if (k == -1) ! y = BigInteger.neg(y); ! else ! y = BigInteger.times(y, valueOf(k)); } if (x.words == null) return BigInteger.add(y, x.ival); --- 711,720 ---- return valueOf((long) k * (long) y.ival + (long) x.ival); if (k != 1) { ! if (k == -1) ! y = BigInteger.neg(y); ! else ! y = BigInteger.times(y, valueOf(k)); } if (x.words == null) return BigInteger.add(y, x.ival); *************** public class BigInteger extends Number i *** 723,729 **** // Both are big if (y.ival > x.ival) { // Swap so x is longer then y. ! BigInteger tmp = x; x = y; y = tmp; } BigInteger result = alloc(x.ival + 1); int i = y.ival; --- 723,729 ---- // Both are big if (y.ival > x.ival) { // Swap so x is longer then y. ! BigInteger tmp = x; x = y; y = tmp; } BigInteger result = alloc(x.ival + 1); int i = y.ival; *************** public class BigInteger extends Number i *** 731,739 **** long y_ext = y.words[i - 1] < 0 ? 0xffffffffL : 0; for (; i < x.ival; i++) { ! carry += ((long) x.words[i] & 0xffffffffL) + y_ext; ! result.words[i] = (int) carry; ! carry >>>= 32; } if (x.words[i - 1] < 0) y_ext--; --- 731,739 ---- long y_ext = y.words[i - 1] < 0 ? 0xffffffffL : 0; for (; i < x.ival; i++) { ! carry += ((long) x.words[i] & 0xffffffffL) + y_ext; ! result.words[i] = (int) carry; ! carry >>>= 32; } if (x.words[i - 1] < 0) y_ext--; *************** public class BigInteger extends Number i *** 782,797 **** BigInteger result = BigInteger.alloc(xlen + 1); if (xwords[xlen - 1] < 0) { ! negative = true; ! negate(result.words, xwords, xlen); ! xwords = result.words; } else negative = false; if (y < 0) { ! negative = !negative; ! y = -y; } result.words[xlen] = MPN.mul_1(result.words, xwords, xlen, y); result.ival = xlen + 1; --- 782,797 ---- BigInteger result = BigInteger.alloc(xlen + 1); if (xwords[xlen - 1] < 0) { ! negative = true; ! negate(result.words, xwords, xlen); ! xwords = result.words; } else negative = false; if (y < 0) { ! negative = !negative; ! y = -y; } result.words[xlen] = MPN.mul_1(result.words, xwords, xlen, y); result.ival = xlen + 1; *************** public class BigInteger extends Number i *** 813,840 **** int ylen = y.ival; if (x.isNegative()) { ! negative = true; ! xwords = new int[xlen]; ! negate(xwords, x.words, xlen); } else { ! negative = false; ! xwords = x.words; } if (y.isNegative()) { ! negative = !negative; ! ywords = new int[ylen]; ! negate(ywords, y.words, ylen); } else ywords = y.words; // Swap if x is shorter then y. if (xlen < ylen) { ! int[] twords = xwords; xwords = ywords; ywords = twords; ! int tlen = xlen; xlen = ylen; ylen = tlen; } BigInteger result = BigInteger.alloc(xlen+ylen); MPN.mul(result.words, xwords, xlen, ywords, ylen); --- 813,840 ---- int ylen = y.ival; if (x.isNegative()) { ! negative = true; ! xwords = new int[xlen]; ! negate(xwords, x.words, xlen); } else { ! negative = false; ! xwords = x.words; } if (y.isNegative()) { ! negative = !negative; ! ywords = new int[ylen]; ! negate(ywords, y.words, ylen); } else ywords = y.words; // Swap if x is shorter then y. if (xlen < ylen) { ! int[] twords = xwords; xwords = ywords; ywords = twords; ! int tlen = xlen; xlen = ylen; ylen = tlen; } BigInteger result = BigInteger.alloc(xlen+ylen); MPN.mul(result.words, xwords, xlen, ywords, ylen); *************** public class BigInteger extends Number i *** 858,899 **** } private static void divide(long x, long y, ! BigInteger quotient, BigInteger remainder, ! int rounding_mode) { boolean xNegative, yNegative; if (x < 0) { ! xNegative = true; ! if (x == Long.MIN_VALUE) ! { ! divide(valueOf(x), valueOf(y), ! quotient, remainder, rounding_mode); ! return; ! } ! x = -x; } else xNegative = false; if (y < 0) { ! yNegative = true; ! if (y == Long.MIN_VALUE) ! { ! if (rounding_mode == TRUNCATE) ! { // x != Long.Min_VALUE implies abs(x) < abs(y) ! if (quotient != null) ! quotient.set(0); ! if (remainder != null) ! remainder.set(x); ! } ! else ! divide(valueOf(x), valueOf(y), ! quotient, remainder, rounding_mode); ! return; ! } ! y = -y; } else yNegative = false; --- 858,899 ---- } private static void divide(long x, long y, ! BigInteger quotient, BigInteger remainder, ! int rounding_mode) { boolean xNegative, yNegative; if (x < 0) { ! xNegative = true; ! if (x == Long.MIN_VALUE) ! { ! divide(valueOf(x), valueOf(y), ! quotient, remainder, rounding_mode); ! return; ! } ! x = -x; } else xNegative = false; if (y < 0) { ! yNegative = true; ! if (y == Long.MIN_VALUE) ! { ! if (rounding_mode == TRUNCATE) ! { // x != Long.Min_VALUE implies abs(x) < abs(y) ! if (quotient != null) ! quotient.set(0); ! if (remainder != null) ! remainder.set(x); ! } ! else ! divide(valueOf(x), valueOf(y), ! quotient, remainder, rounding_mode); ! return; ! } ! y = -y; } else yNegative = false; *************** public class BigInteger extends Number i *** 905,951 **** boolean add_one = false; if (r != 0) { ! switch (rounding_mode) ! { ! case TRUNCATE: ! break; ! case CEILING: ! case FLOOR: ! if (qNegative == (rounding_mode == FLOOR)) ! add_one = true; ! break; ! case ROUND: ! add_one = r > ((y - (q & 1)) >> 1); ! break; ! } } if (quotient != null) { ! if (add_one) ! q++; ! if (qNegative) ! q = -q; ! quotient.set(q); } if (remainder != null) { ! // The remainder is by definition: X-Q*Y ! if (add_one) ! { ! // Subtract the remainder from Y. ! r = y - r; ! // In this case, abs(Q*Y) > abs(X). ! // So sign(remainder) = -sign(X). ! xNegative = ! xNegative; ! } ! else ! { ! // If !add_one, then: abs(Q*Y) <= abs(X). ! // So sign(remainder) = sign(X). ! } ! if (xNegative) ! r = -r; ! remainder.set(r); } } --- 905,951 ---- boolean add_one = false; if (r != 0) { ! switch (rounding_mode) ! { ! case TRUNCATE: ! break; ! case CEILING: ! case FLOOR: ! if (qNegative == (rounding_mode == FLOOR)) ! add_one = true; ! break; ! case ROUND: ! add_one = r > ((y - (q & 1)) >> 1); ! break; ! } } if (quotient != null) { ! if (add_one) ! q++; ! if (qNegative) ! q = -q; ! quotient.set(q); } if (remainder != null) { ! // The remainder is by definition: X-Q*Y ! if (add_one) ! { ! // Subtract the remainder from Y. ! r = y - r; ! // In this case, abs(Q*Y) > abs(X). ! // So sign(remainder) = -sign(X). ! xNegative = ! xNegative; ! } ! else ! { ! // If !add_one, then: abs(Q*Y) <= abs(X). ! // So sign(remainder) = sign(X). ! } ! if (xNegative) ! r = -r; ! remainder.set(r); } } *************** public class BigInteger extends Number i *** 958,976 **** * @param rounding_mode one of FLOOR, CEILING, TRUNCATE, or ROUND. */ private static void divide(BigInteger x, BigInteger y, ! BigInteger quotient, BigInteger remainder, ! int rounding_mode) { if ((x.words == null || x.ival <= 2) ! && (y.words == null || y.ival <= 2)) { ! long x_l = x.longValue(); ! long y_l = y.longValue(); ! if (x_l != Long.MIN_VALUE && y_l != Long.MIN_VALUE) ! { ! divide(x_l, y_l, quotient, remainder, rounding_mode); ! return; ! } } boolean xNegative = x.isNegative(); --- 958,976 ---- * @param rounding_mode one of FLOOR, CEILING, TRUNCATE, or ROUND. */ private static void divide(BigInteger x, BigInteger y, ! BigInteger quotient, BigInteger remainder, ! int rounding_mode) { if ((x.words == null || x.ival <= 2) ! && (y.words == null || y.ival <= 2)) { ! long x_l = x.longValue(); ! long y_l = y.longValue(); ! if (x_l != Long.MIN_VALUE && y_l != Long.MIN_VALUE) ! { ! divide(x_l, y_l, quotient, remainder, rounding_mode); ! return; ! } } boolean xNegative = x.isNegative(); *************** public class BigInteger extends Number i *** 992,1048 **** int cmpval = MPN.cmp(xwords, xlen, ywords, ylen); if (cmpval < 0) // abs(x) < abs(y) { // quotient = 0; remainder = num. ! int[] rwords = xwords; xwords = ywords; ywords = rwords; ! rlen = xlen; qlen = 1; xwords[0] = 0; } else if (cmpval == 0) // abs(x) == abs(y) { ! xwords[0] = 1; qlen = 1; // quotient = 1 ! ywords[0] = 0; rlen = 1; // remainder = 0; } else if (ylen == 1) { ! qlen = xlen; ! // Need to leave room for a word of leading zeros if dividing by 1 ! // and the dividend has the high bit set. It might be safe to ! // increment qlen in all cases, but it certainly is only necessary ! // in the following case. ! if (ywords[0] == 1 && xwords[xlen-1] < 0) ! qlen++; ! rlen = 1; ! ywords[0] = MPN.divmod_1(xwords, xwords, xlen, ywords[0]); } else // abs(x) > abs(y) { ! // Normalize the denominator, i.e. make its most significant bit set by ! // shifting it normalization_steps bits to the left. Also shift the ! // numerator the same number of steps (to keep the quotient the same!). ! int nshift = MPN.count_leading_zeros(ywords[ylen - 1]); ! if (nshift != 0) ! { ! // Shift up the denominator setting the most significant bit of ! // the most significant word. ! MPN.lshift(ywords, 0, ywords, ylen, nshift); ! // Shift up the numerator, possibly introducing a new most ! // significant word. ! int x_high = MPN.lshift(xwords, 0, xwords, xlen, nshift); ! xwords[xlen++] = x_high; ! } ! if (xlen == ylen) ! xwords[xlen++] = 0; ! MPN.divide(xwords, xlen, ywords, ylen); ! rlen = ylen; ! MPN.rshift0 (ywords, xwords, 0, rlen, nshift); ! qlen = xlen + 1 - ylen; ! if (quotient != null) ! { ! for (int i = 0; i < qlen; i++) ! xwords[i] = xwords[i+ylen]; ! } } if (ywords[rlen-1] < 0) --- 992,1048 ---- int cmpval = MPN.cmp(xwords, xlen, ywords, ylen); if (cmpval < 0) // abs(x) < abs(y) { // quotient = 0; remainder = num. ! int[] rwords = xwords; xwords = ywords; ywords = rwords; ! rlen = xlen; qlen = 1; xwords[0] = 0; } else if (cmpval == 0) // abs(x) == abs(y) { ! xwords[0] = 1; qlen = 1; // quotient = 1 ! ywords[0] = 0; rlen = 1; // remainder = 0; } else if (ylen == 1) { ! qlen = xlen; ! // Need to leave room for a word of leading zeros if dividing by 1 ! // and the dividend has the high bit set. It might be safe to ! // increment qlen in all cases, but it certainly is only necessary ! // in the following case. ! if (ywords[0] == 1 && xwords[xlen-1] < 0) ! qlen++; ! rlen = 1; ! ywords[0] = MPN.divmod_1(xwords, xwords, xlen, ywords[0]); } else // abs(x) > abs(y) { ! // Normalize the denominator, i.e. make its most significant bit set by ! // shifting it normalization_steps bits to the left. Also shift the ! // numerator the same number of steps (to keep the quotient the same!). ! int nshift = MPN.count_leading_zeros(ywords[ylen - 1]); ! if (nshift != 0) ! { ! // Shift up the denominator setting the most significant bit of ! // the most significant word. ! MPN.lshift(ywords, 0, ywords, ylen, nshift); ! // Shift up the numerator, possibly introducing a new most ! // significant word. ! int x_high = MPN.lshift(xwords, 0, xwords, xlen, nshift); ! xwords[xlen++] = x_high; ! } ! if (xlen == ylen) ! xwords[xlen++] = 0; ! MPN.divide(xwords, xlen, ywords, ylen); ! rlen = ylen; ! MPN.rshift0 (ywords, xwords, 0, rlen, nshift); ! qlen = xlen + 1 - ylen; ! if (quotient != null) ! { ! for (int i = 0; i < qlen; i++) ! xwords[i] = xwords[i+ylen]; ! } } if (ywords[rlen-1] < 0) *************** public class BigInteger extends Number i *** 1056,1129 **** boolean add_one = false; if (rlen > 1 || ywords[0] != 0) { // Non-zero remainder i.e. in-exact quotient. ! switch (rounding_mode) ! { ! case TRUNCATE: ! break; ! case CEILING: ! case FLOOR: ! if (qNegative == (rounding_mode == FLOOR)) ! add_one = true; ! break; ! case ROUND: ! // int cmp = compareTo(remainder<<1, abs(y)); ! BigInteger tmp = remainder == null ? new BigInteger() : remainder; ! tmp.set(ywords, rlen); ! tmp = shift(tmp, 1); ! if (yNegative) ! tmp.setNegative(); ! int cmp = compareTo(tmp, y); ! // Now cmp == compareTo(sign(y)*(remainder<<1), y) ! if (yNegative) ! cmp = -cmp; ! add_one = (cmp == 1) || (cmp == 0 && (xwords[0]&1) != 0); ! } } if (quotient != null) { ! quotient.set(xwords, qlen); ! if (qNegative) ! { ! if (add_one) // -(quotient + 1) == ~(quotient) ! quotient.setInvert(); ! else ! quotient.setNegative(); ! } ! else if (add_one) ! quotient.setAdd(1); } if (remainder != null) { ! // The remainder is by definition: X-Q*Y ! remainder.set(ywords, rlen); ! if (add_one) ! { ! // Subtract the remainder from Y: ! // abs(R) = abs(Y) - abs(orig_rem) = -(abs(orig_rem) - abs(Y)). ! BigInteger tmp; ! if (y.words == null) ! { ! tmp = remainder; ! tmp.set(yNegative ? ywords[0] + y.ival : ywords[0] - y.ival); ! } ! else ! tmp = BigInteger.add(remainder, y, yNegative ? 1 : -1); ! // Now tmp <= 0. ! // In this case, abs(Q) = 1 + floor(abs(X)/abs(Y)). ! // Hence, abs(Q*Y) > abs(X). ! // So sign(remainder) = -sign(X). ! if (xNegative) ! remainder.setNegative(tmp); ! else ! remainder.set(tmp); ! } ! else ! { ! // If !add_one, then: abs(Q*Y) <= abs(X). ! // So sign(remainder) = sign(X). ! if (xNegative) ! remainder.setNegative(); ! } } } --- 1056,1129 ---- boolean add_one = false; if (rlen > 1 || ywords[0] != 0) { // Non-zero remainder i.e. in-exact quotient. ! switch (rounding_mode) ! { ! case TRUNCATE: ! break; ! case CEILING: ! case FLOOR: ! if (qNegative == (rounding_mode == FLOOR)) ! add_one = true; ! break; ! case ROUND: ! // int cmp = compareTo(remainder<<1, abs(y)); ! BigInteger tmp = remainder == null ? new BigInteger() : remainder; ! tmp.set(ywords, rlen); ! tmp = shift(tmp, 1); ! if (yNegative) ! tmp.setNegative(); ! int cmp = compareTo(tmp, y); ! // Now cmp == compareTo(sign(y)*(remainder<<1), y) ! if (yNegative) ! cmp = -cmp; ! add_one = (cmp == 1) || (cmp == 0 && (xwords[0]&1) != 0); ! } } if (quotient != null) { ! quotient.set(xwords, qlen); ! if (qNegative) ! { ! if (add_one) // -(quotient + 1) == ~(quotient) ! quotient.setInvert(); ! else ! quotient.setNegative(); ! } ! else if (add_one) ! quotient.setAdd(1); } if (remainder != null) { ! // The remainder is by definition: X-Q*Y ! remainder.set(ywords, rlen); ! if (add_one) ! { ! // Subtract the remainder from Y: ! // abs(R) = abs(Y) - abs(orig_rem) = -(abs(orig_rem) - abs(Y)). ! BigInteger tmp; ! if (y.words == null) ! { ! tmp = remainder; ! tmp.set(yNegative ? ywords[0] + y.ival : ywords[0] - y.ival); ! } ! else ! tmp = BigInteger.add(remainder, y, yNegative ? 1 : -1); ! // Now tmp <= 0. ! // In this case, abs(Q) = 1 + floor(abs(X)/abs(Y)). ! // Hence, abs(Q*Y) > abs(X). ! // So sign(remainder) = -sign(X). ! if (xNegative) ! remainder.setNegative(tmp); ! else ! remainder.set(tmp); ! } ! else ! { ! // If !add_one, then: abs(Q*Y) <= abs(X). ! // So sign(remainder) = sign(X). ! if (xNegative) ! remainder.setNegative(); ! } } } *************** public class BigInteger extends Number i *** 1220,1228 **** { if (exponent <= 0) { ! if (exponent == 0) ! return ONE; ! throw new ArithmeticException("negative exponent"); } if (USING_NATIVE) --- 1220,1228 ---- { if (exponent <= 0) { ! if (exponent == 0) ! return ONE; ! throw new ArithmeticException("negative exponent"); } if (USING_NATIVE) *************** public class BigInteger extends Number i *** 1240,1267 **** int[] pow2 = new int [blen]; int[] rwords = new int [blen]; int[] work = new int [blen]; ! getAbsolute(pow2); // pow2 = abs(this); int rlen = 1; rwords[0] = 1; // rwords = 1; for (;;) // for (i = 0; ; i++) { ! // pow2 == this**(2**i) ! // prod = this**(sum(j=0..i-1, (exponent>>j)&1)) ! if ((exponent & 1) != 0) ! { // r *= pow2 ! MPN.mul(work, pow2, plen, rwords, rlen); ! int[] temp = work; work = rwords; rwords = temp; ! rlen += plen; ! while (rwords[rlen - 1] == 0) rlen--; ! } ! exponent >>= 1; ! if (exponent == 0) ! break; ! // pow2 *= pow2; ! MPN.mul(work, pow2, plen, pow2, plen); ! int[] temp = work; work = pow2; pow2 = temp; // swap to avoid a copy ! plen *= 2; ! while (pow2[plen - 1] == 0) plen--; } if (rwords[rlen - 1] < 0) rlen++; --- 1240,1267 ---- int[] pow2 = new int [blen]; int[] rwords = new int [blen]; int[] work = new int [blen]; ! getAbsolute(pow2); // pow2 = abs(this); int rlen = 1; rwords[0] = 1; // rwords = 1; for (;;) // for (i = 0; ; i++) { ! // pow2 == this**(2**i) ! // prod = this**(sum(j=0..i-1, (exponent>>j)&1)) ! if ((exponent & 1) != 0) ! { // r *= pow2 ! MPN.mul(work, pow2, plen, rwords, rlen); ! int[] temp = work; work = rwords; rwords = temp; ! rlen += plen; ! while (rwords[rlen - 1] == 0) rlen--; ! } ! exponent >>= 1; ! if (exponent == 0) ! break; ! // pow2 *= pow2; ! MPN.mul(work, pow2, plen, pow2, plen); ! int[] temp = work; work = pow2; pow2 = temp; // swap to avoid a copy ! plen *= 2; ! while (pow2[plen - 1] == 0) plen--; } if (rwords[rlen - 1] < 0) rlen++; *************** public class BigInteger extends Number i *** 1276,1286 **** throw new ArithmeticException("not invertible"); if (b == 1) ! // Success: values are indeed invertible! ! // Bottom of the recursion reached; start unwinding. ! return new int[] { -prevDiv, 1 }; ! int[] xy = euclidInv(b, a % b, a / b); // Recursion happens here. a = xy[0]; // use our local copy of 'a' as a work var xy[0] = a * -prevDiv + xy[1]; xy[1] = a; --- 1276,1286 ---- throw new ArithmeticException("not invertible"); if (b == 1) ! // Success: values are indeed invertible! ! // Bottom of the recursion reached; start unwinding. ! return new int[] { -prevDiv, 1 }; ! int[] xy = euclidInv(b, a % b, a / b); // Recursion happens here. a = xy[0]; // use our local copy of 'a' as a work var xy[0] = a * -prevDiv + xy[1]; xy[1] = a; *************** public class BigInteger extends Number i *** 1295,1305 **** if (b.isOne()) { ! // Success: values are indeed invertible! ! // Bottom of the recursion reached; start unwinding. ! xy[0] = neg(prevDiv); xy[1] = ONE; ! return; } // Recursion happens in the following conditional! --- 1295,1305 ---- if (b.isOne()) { ! // Success: values are indeed invertible! ! // Bottom of the recursion reached; start unwinding. ! xy[0] = neg(prevDiv); xy[1] = ONE; ! return; } // Recursion happens in the following conditional! *************** public class BigInteger extends Number i *** 1308,1325 **** if (a.words == null) { int[] xyInt = euclidInv(b.ival, a.ival % b.ival, a.ival / b.ival); ! xy[0] = new BigInteger(xyInt[0]); xy[1] = new BigInteger(xyInt[1]); } else { ! BigInteger rem = new BigInteger(); ! BigInteger quot = new BigInteger(); ! divide(a, b, quot, rem, FLOOR); // quot and rem may not be in canonical form. ensure rem.canonicalize(); quot.canonicalize(); ! euclidInv(b, rem, quot, xy); } BigInteger t = xy[0]; --- 1308,1325 ---- if (a.words == null) { int[] xyInt = euclidInv(b.ival, a.ival % b.ival, a.ival / b.ival); ! xy[0] = new BigInteger(xyInt[0]); xy[1] = new BigInteger(xyInt[1]); } else { ! BigInteger rem = new BigInteger(); ! BigInteger quot = new BigInteger(); ! divide(a, b, quot, rem, FLOOR); // quot and rem may not be in canonical form. ensure rem.canonicalize(); quot.canonicalize(); ! euclidInv(b, rem, quot, xy); } BigInteger t = xy[0]; *************** public class BigInteger extends Number i *** 1358,1418 **** if (y.words == null) { ! // The result is guaranteed to be less than the modulus, y (which is ! // an int), so simplify this by working with the int result of this ! // modulo y. Also, if this is negative, make it positive via modulo ! // math. Note that BigInteger.mod() must be used even if this is ! // already an int as the % operator would provide a negative result if ! // this is negative, BigInteger.mod() never returns negative values. int xval = (words != null || isNegative()) ? mod(y).ival : ival; int yval = y.ival; ! // Swap values so x > y. ! if (yval > xval) ! { ! int tmp = xval; xval = yval; yval = tmp; ! swapped = true; ! } ! // Normally, the result is in the 2nd element of the array, but ! // if originally x < y, then x and y were swapped and the result ! // is in the 1st element of the array. ! result.ival = ! euclidInv(yval, xval % yval, xval / yval)[swapped ? 0 : 1]; ! // Result can't be negative, so make it positive by adding the ! // original modulus, y.ival (not the possibly "swapped" yval). ! if (result.ival < 0) ! result.ival += y.ival; } else { ! // As above, force this to be a positive value via modulo math. ! BigInteger x = isNegative() ? this.mod(y) : this; ! // Swap values so x > y. ! if (x.compareTo(y) < 0) ! { ! result = x; x = y; y = result; // use 'result' as a work var ! swapped = true; ! } ! // As above (for ints), result will be in the 2nd element unless ! // the original x and y were swapped. ! BigInteger rem = new BigInteger(); ! BigInteger quot = new BigInteger(); ! divide(x, y, quot, rem, FLOOR); // quot and rem may not be in canonical form. ensure rem.canonicalize(); quot.canonicalize(); ! BigInteger[] xy = new BigInteger[2]; ! euclidInv(y, rem, quot, xy); ! result = swapped ? xy[0] : xy[1]; ! // Result can't be negative, so make it positive by adding the ! // original modulus, y (which is now x if they were swapped). ! if (result.isNegative()) ! result = add(result, swapped ? x : y, 1); } ! return result; } --- 1358,1418 ---- if (y.words == null) { ! // The result is guaranteed to be less than the modulus, y (which is ! // an int), so simplify this by working with the int result of this ! // modulo y. Also, if this is negative, make it positive via modulo ! // math. Note that BigInteger.mod() must be used even if this is ! // already an int as the % operator would provide a negative result if ! // this is negative, BigInteger.mod() never returns negative values. int xval = (words != null || isNegative()) ? mod(y).ival : ival; int yval = y.ival; ! // Swap values so x > y. ! if (yval > xval) ! { ! int tmp = xval; xval = yval; yval = tmp; ! swapped = true; ! } ! // Normally, the result is in the 2nd element of the array, but ! // if originally x < y, then x and y were swapped and the result ! // is in the 1st element of the array. ! result.ival = ! euclidInv(yval, xval % yval, xval / yval)[swapped ? 0 : 1]; ! // Result can't be negative, so make it positive by adding the ! // original modulus, y.ival (not the possibly "swapped" yval). ! if (result.ival < 0) ! result.ival += y.ival; } else { ! // As above, force this to be a positive value via modulo math. ! BigInteger x = isNegative() ? this.mod(y) : this; ! // Swap values so x > y. ! if (x.compareTo(y) < 0) ! { ! result = x; x = y; y = result; // use 'result' as a work var ! swapped = true; ! } ! // As above (for ints), result will be in the 2nd element unless ! // the original x and y were swapped. ! BigInteger rem = new BigInteger(); ! BigInteger quot = new BigInteger(); ! divide(x, y, quot, rem, FLOOR); // quot and rem may not be in canonical form. ensure rem.canonicalize(); quot.canonicalize(); ! BigInteger[] xy = new BigInteger[2]; ! euclidInv(y, rem, quot, xy); ! result = swapped ? xy[0] : xy[1]; ! // Result can't be negative, so make it positive by adding the ! // original modulus, y (which is now x if they were swapped). ! if (result.isNegative()) ! result = add(result, swapped ? x : y, 1); } ! return result; } *************** public class BigInteger extends Number i *** 1450,1459 **** while (!u.isZero()) { ! if (u.and(ONE).isOne()) ! s = times(s, t).mod(m); ! u = u.shiftRight(1); ! t = times(t, t).mod(m); } return s; --- 1450,1459 ---- while (!u.isZero()) { ! if (u.and(ONE).isOne()) ! s = times(s, t).mod(m); ! u = u.shiftRight(1); ! t = times(t, t).mod(m); } return s; *************** public class BigInteger extends Number i *** 1466,1483 **** int tmp; if (b > a) { ! tmp = a; a = b; b = tmp; } for(;;) { ! if (b == 0) ! return a; if (b == 1) ! return b; tmp = b; ! b = a % b; ! a = tmp; ! } } public BigInteger gcd(BigInteger y) --- 1466,1483 ---- int tmp; if (b > a) { ! tmp = a; a = b; b = tmp; } for(;;) { ! if (b == 0) ! return a; if (b == 1) ! return b; tmp = b; ! b = a % b; ! a = tmp; ! } } public BigInteger gcd(BigInteger y) *************** public class BigInteger extends Number i *** 1494,1517 **** int yval = y.ival; if (words == null) { ! if (xval == 0) ! return abs(y); ! if (y.words == null ! && xval != Integer.MIN_VALUE && yval != Integer.MIN_VALUE) ! { ! if (xval < 0) ! xval = -xval; ! if (yval < 0) ! yval = -yval; ! return valueOf(gcd(xval, yval)); ! } ! xval = 1; } if (y.words == null) { ! if (yval == 0) ! return abs(this); ! yval = 1; } int len = (xval > yval ? xval : yval) + 1; int[] xwords = new int[len]; --- 1494,1517 ---- int yval = y.ival; if (words == null) { ! if (xval == 0) ! return abs(y); ! if (y.words == null ! && xval != Integer.MIN_VALUE && yval != Integer.MIN_VALUE) ! { ! if (xval < 0) ! xval = -xval; ! if (yval < 0) ! yval = -yval; ! return valueOf(gcd(xval, yval)); ! } ! xval = 1; } if (y.words == null) { ! if (yval == 0) ! return abs(this); ! yval = 1; } int len = (xval > yval ? xval : yval) + 1; int[] xwords = new int[len]; *************** public class BigInteger extends Number i *** 1562,1573 **** int i; for (i = 0; i < primes.length; i++) { ! if (words == null && ival == primes[i]) ! return true; divide(this, smallFixNums[primes[i] - minFixNum], null, rem, TRUNCATE); if (rem.canonicalize().isZero()) ! return false; } // Now perform the Rabin-Miller test. --- 1562,1573 ---- int i; for (i = 0; i < primes.length; i++) { ! if (words == null && ival == primes[i]) ! return true; divide(this, smallFixNums[primes[i] - minFixNum], null, rem, TRUNCATE); if (rem.canonicalize().isZero()) ! return false; } // Now perform the Rabin-Miller test. *************** public class BigInteger extends Number i *** 1599,1621 **** // Remark 4.28 states: "...A strategy that is sometimes employed // is to fix the bases a to be the first few primes instead of // choosing them at random. ! z = smallFixNums[primes[t] - minFixNum].modPow(m, this); ! if (z.isOne() || z.equals(pMinus1)) ! continue; // Passes the test; may be prime. ! for (i = 0; i < b; ) ! { ! if (z.isOne()) ! return false; ! i++; ! if (z.equals(pMinus1)) ! break; // Passes the test; may be prime. ! z = z.modPow(valueOf(2), this); ! } ! if (i == b && !z.equals(pMinus1)) ! return false; } return true; } --- 1599,1621 ---- // Remark 4.28 states: "...A strategy that is sometimes employed // is to fix the bases a to be the first few primes instead of // choosing them at random. ! z = smallFixNums[primes[t] - minFixNum].modPow(m, this); ! if (z.isOne() || z.equals(pMinus1)) ! continue; // Passes the test; may be prime. ! for (i = 0; i < b; ) ! { ! if (z.isOne()) ! return false; ! i++; ! if (z.equals(pMinus1)) ! break; // Passes the test; may be prime. ! z = z.modPow(valueOf(2), this); ! } ! if (i == b && !z.equals(pMinus1)) ! return false; } return true; } *************** public class BigInteger extends Number i *** 1626,1633 **** ival = ~ival; else { ! for (int i = ival; --i >= 0; ) ! words[i] = ~words[i]; } } --- 1626,1633 ---- ival = ~ival; else { ! for (int i = ival; --i >= 0; ) ! words[i] = ~words[i]; } } *************** public class BigInteger extends Number i *** 1637,1672 **** int xlen; if (x.words == null) { ! if (count < 32) ! { ! set((long) x.ival << count); ! return; ! } ! xwords = new int[1]; ! xwords[0] = x.ival; ! xlen = 1; } else { ! xwords = x.words; ! xlen = x.ival; } int word_count = count >> 5; count &= 31; int new_len = xlen + word_count; if (count == 0) { ! realloc(new_len); ! for (int i = xlen; --i >= 0; ) ! words[i+word_count] = xwords[i]; } else { ! new_len++; ! realloc(new_len); ! int shift_out = MPN.lshift(words, word_count, xwords, xlen, count); ! count = 32 - count; ! words[new_len-1] = (shift_out << count) >> count; // sign-extend. } ival = new_len; for (int i = word_count; --i >= 0; ) --- 1637,1672 ---- int xlen; if (x.words == null) { ! if (count < 32) ! { ! set((long) x.ival << count); ! return; ! } ! xwords = new int[1]; ! xwords[0] = x.ival; ! xlen = 1; } else { ! xwords = x.words; ! xlen = x.ival; } int word_count = count >> 5; count &= 31; int new_len = xlen + word_count; if (count == 0) { ! realloc(new_len); ! for (int i = xlen; --i >= 0; ) ! words[i+word_count] = xwords[i]; } else { ! new_len++; ! realloc(new_len); ! int shift_out = MPN.lshift(words, word_count, xwords, xlen, count); ! count = 32 - count; ! words[new_len-1] = (shift_out << count) >> count; // sign-extend. } ival = new_len; for (int i = word_count; --i >= 0; ) *************** public class BigInteger extends Number i *** 1681,1701 **** set(x); else { ! boolean neg = x.isNegative(); ! int word_count = count >> 5; ! count &= 31; ! int d_len = x.ival - word_count; ! if (d_len <= 0) ! set(neg ? -1 : 0); ! else ! { ! if (words == null || words.length < d_len) ! realloc(d_len); ! MPN.rshift0 (words, x.words, word_count, d_len, count); ! ival = d_len; ! if (neg) ! words[d_len-1] |= -2 << (31 - count); ! } } } --- 1681,1701 ---- set(x); else { ! boolean neg = x.isNegative(); ! int word_count = count >> 5; ! count &= 31; ! int d_len = x.ival - word_count; ! if (d_len <= 0) ! set(neg ? -1 : 0); ! else ! { ! if (words == null || words.length < d_len) ! realloc(d_len); ! MPN.rshift0 (words, x.words, word_count, d_len, count); ! ival = d_len; ! if (neg) ! words[d_len-1] |= -2 << (31 - count); ! } } } *************** public class BigInteger extends Number i *** 1711,1720 **** { if (x.words == null) { ! if (count <= 0) ! return valueOf(count > -32 ? x.ival >> (-count) : x.ival < 0 ? -1 : 0); ! if (count < 32) ! return valueOf((long) x.ival << count); } if (count == 0) return x; --- 1711,1720 ---- { if (x.words == null) { ! if (count <= 0) ! return valueOf(count > -32 ? x.ival >> (-count) : x.ival < 0 ? -1 : 0); ! if (count < 32) ! return valueOf((long) x.ival << count); } if (count == 0) return x; *************** public class BigInteger extends Number i *** 1767,1823 **** buffer.append(Long.toString(longValue(), radix)); else { ! boolean neg = isNegative(); ! int[] work; ! if (neg || radix != 16) ! { ! work = new int[ival]; ! getAbsolute(work); ! } ! else ! work = words; ! int len = ival; ! if (radix == 16) ! { ! if (neg) ! buffer.append('-'); ! int buf_start = buffer.length(); ! for (int i = len; --i >= 0; ) ! { ! int word = work[i]; ! for (int j = 8; --j >= 0; ) ! { ! int hex_digit = (word >> (4 * j)) & 0xF; ! // Suppress leading zeros: ! if (hex_digit > 0 || buffer.length() > buf_start) ! buffer.append(Character.forDigit(hex_digit, 16)); ! } ! } ! } ! else ! { ! int i = buffer.length(); ! for (;;) ! { ! int digit = MPN.divmod_1(work, work, len, radix); ! buffer.append(Character.forDigit(digit, radix)); ! while (len > 0 && work[len-1] == 0) len--; ! if (len == 0) ! break; ! } ! if (neg) ! buffer.append('-'); ! /* Reverse buffer. */ ! int j = buffer.length() - 1; ! while (i < j) ! { ! char tmp = buffer.charAt(i); ! buffer.setCharAt(i, buffer.charAt(j)); ! buffer.setCharAt(j, tmp); ! i++; j--; ! } ! } } } --- 1767,1823 ---- buffer.append(Long.toString(longValue(), radix)); else { ! boolean neg = isNegative(); ! int[] work; ! if (neg || radix != 16) ! { ! work = new int[ival]; ! getAbsolute(work); ! } ! else ! work = words; ! int len = ival; ! if (radix == 16) ! { ! if (neg) ! buffer.append('-'); ! int buf_start = buffer.length(); ! for (int i = len; --i >= 0; ) ! { ! int word = work[i]; ! for (int j = 8; --j >= 0; ) ! { ! int hex_digit = (word >> (4 * j)) & 0xF; ! // Suppress leading zeros: ! if (hex_digit > 0 || buffer.length() > buf_start) ! buffer.append(Character.forDigit(hex_digit, 16)); ! } ! } ! } ! else ! { ! int i = buffer.length(); ! for (;;) ! { ! int digit = MPN.divmod_1(work, work, len, radix); ! buffer.append(Character.forDigit(digit, radix)); ! while (len > 0 && work[len-1] == 0) len--; ! if (len == 0) ! break; ! } ! if (neg) ! buffer.append('-'); ! /* Reverse buffer. */ ! int j = buffer.length() - 1; ! while (i < j) ! { ! char tmp = buffer.charAt(i); ! buffer.setCharAt(i, buffer.charAt(j)); ! buffer.setCharAt(j, tmp); ! i++; j--; ! } ! } } } *************** public class BigInteger extends Number i *** 1900,1907 **** return false; for (int i = x.ival; --i >= 0; ) { ! if (x.words[i] != y.words[i]) ! return false; } return true; } --- 1900,1907 ---- return false; for (int i = x.ival; --i >= 0; ) { ! if (x.words[i] != y.words[i]) ! return false; } return true; } *************** public class BigInteger extends Number i *** 1915,1921 **** } private static BigInteger valueOf(byte[] digits, int byte_len, ! boolean negative, int radix) { int chars_per_word = MPN.chars_per_word(radix); int[] words = new int[byte_len / chars_per_word + 1]; --- 1915,1921 ---- } private static BigInteger valueOf(byte[] digits, int byte_len, ! boolean negative, int radix) { int chars_per_word = MPN.chars_per_word(radix); int[] words = new int[byte_len / chars_per_word + 1]; *************** public class BigInteger extends Number i *** 1959,1965 **** int i; for (i = 0; i < (n >> 5) ; i++) if (words[i] != 0) ! return true; return (n & 31) != 0 && (words[i] & ((1 << (n & 31)) - 1)) != 0; } --- 1959,1965 ---- int i; for (i = 0; i < (n >> 5) ; i++) if (words[i] != 0) ! return true; return (n & 31) != 0 && (words[i] & ((1 << (n & 31)) - 1)) != 0; } *************** public class BigInteger extends Number i *** 2000,2006 **** int excess_bits = il - (ml + 1); if (excess_bits > 0) m = ((words == null) ? ival >> excess_bits ! : MPN.rshift_long(words, ival, excess_bits)); else m = longValue() << (- excess_bits); --- 2000,2006 ---- int excess_bits = il - (ml + 1); if (excess_bits > 0) m = ((words == null) ? ival >> excess_bits ! : MPN.rshift_long(words, ival, excess_bits)); else m = longValue() << (- excess_bits); *************** public class BigInteger extends Number i *** 2008,2038 **** // any amount, even if it's less than half a step, it overflows. if (exp == 1023 && ((m >> 1) == (1L << 53) - 1)) { ! if (remainder || checkBits(il - ml)) ! return neg ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY; ! else ! return neg ? - Double.MAX_VALUE : Double.MAX_VALUE; } // Normal round-to-even rule: round up if the bit dropped is a one, and // the bit above it or any of the bits below it is a one. if ((m & 1) == 1 ! && ((m & 2) == 2 || remainder || checkBits(excess_bits))) { ! m += 2; ! // Check if we overflowed the mantissa ! if ((m & (1L << 54)) != 0) ! { ! exp++; ! // renormalize ! m >>= 1; ! } ! // Check if a denormalized mantissa was just rounded up to a ! // normalized one. ! else if (ml == 52 && (m & (1L << 53)) != 0) ! exp++; } ! // Discard the rounding bit m >>= 1; --- 2008,2038 ---- // any amount, even if it's less than half a step, it overflows. if (exp == 1023 && ((m >> 1) == (1L << 53) - 1)) { ! if (remainder || checkBits(il - ml)) ! return neg ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY; ! else ! return neg ? - Double.MAX_VALUE : Double.MAX_VALUE; } // Normal round-to-even rule: round up if the bit dropped is a one, and // the bit above it or any of the bits below it is a one. if ((m & 1) == 1 ! && ((m & 2) == 2 || remainder || checkBits(excess_bits))) { ! m += 2; ! // Check if we overflowed the mantissa ! if ((m & (1L << 54)) != 0) ! { ! exp++; ! // renormalize ! m >>= 1; ! } ! // Check if a denormalized mantissa was just rounded up to a ! // normalized one. ! else if (ml == 52 && (m & (1L << 53)) != 0) ! exp++; } ! // Discard the rounding bit m >>= 1; *************** public class BigInteger extends Number i *** 2052,2065 **** int len; if (this.words == null) { ! len = 1; ! words[0] = this.ival; } else { ! len = this.ival; ! for (int i = len; --i >= 0; ) ! words[i] = this.words[i]; } if (words[len - 1] < 0) negate(words, words, len); --- 2052,2065 ---- int len; if (this.words == null) { ! len = 1; ! words[0] = this.ival; } else { ! len = this.ival; ! for (int i = len; --i >= 0; ) ! words[i] = this.words[i]; } if (words[len - 1] < 0) negate(words, words, len); *************** public class BigInteger extends Number i *** 2090,2100 **** int len = x.ival; if (x.words == null) { ! if (len == Integer.MIN_VALUE) ! set(- (long) len); ! else ! set(-len); ! return; } realloc(len + 1); if (negate(words, x.words, len)) --- 2090,2100 ---- int len = x.ival; if (x.words == null) { ! if (len == Integer.MIN_VALUE) ! set(- (long) len); ! else ! set(-len); ! return; } realloc(len + 1); if (negate(words, x.words, len)) *************** public class BigInteger extends Number i *** 2139,2145 **** if (USING_NATIVE) { BigInteger result = new BigInteger(); ! mpz.negate(result.mpz); return result; } --- 2139,2145 ---- if (USING_NATIVE) { BigInteger result = new BigInteger(); ! mpz.negate(result.mpz); return result; } *************** public class BigInteger extends Number i *** 2193,2200 **** // If BigInteger is an int, then it is in ival and nbytes will be <= 4. while (nbytes > 4) { ! word = words[wptr++]; ! for (int i = 4; i > 0; --i, word >>= 8) bytes[--nbytes] = (byte) word; } --- 2193,2200 ---- // If BigInteger is an int, then it is in ival and nbytes will be <= 4. while (nbytes > 4) { ! word = words[wptr++]; ! for (int i = 4; i > 0; --i, word >>= 8) bytes[--nbytes] = (byte) word; } *************** public class BigInteger extends Number i *** 2234,2268 **** /** Do one the the 16 possible bit-wise operations of two BigIntegers. */ private static void setBitOp(BigInteger result, int op, ! BigInteger x, BigInteger y) { if ((y.words != null) && (x.words == null || x.ival < y.ival)) { ! BigInteger temp = x; x = y; y = temp; ! op = swappedOp(op); } int xi; int yi; int xlen, ylen; if (y.words == null) { ! yi = y.ival; ! ylen = 1; } else { ! yi = y.words[0]; ! ylen = y.ival; } if (x.words == null) { ! xi = x.ival; ! xlen = 1; } else { ! xi = x.words[0]; ! xlen = x.ival; } if (xlen > 1) result.realloc(xlen); --- 2234,2268 ---- /** Do one the the 16 possible bit-wise operations of two BigIntegers. */ private static void setBitOp(BigInteger result, int op, ! BigInteger x, BigInteger y) { if ((y.words != null) && (x.words == null || x.ival < y.ival)) { ! BigInteger temp = x; x = y; y = temp; ! op = swappedOp(op); } int xi; int yi; int xlen, ylen; if (y.words == null) { ! yi = y.ival; ! ylen = 1; } else { ! yi = y.words[0]; ! ylen = y.ival; } if (x.words == null) { ! xi = x.ival; ! xlen = 1; } else { ! xi = x.words[0]; ! xlen = x.ival; } if (xlen > 1) result.realloc(xlen); *************** public class BigInteger extends Number i *** 2277,2402 **** switch (op) { case 0: // clr ! ni = 0; ! break; case 1: // and ! for (;;) ! { ! ni = xi & yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi < 0) finish = 1; ! break; case 2: // andc2 ! for (;;) ! { ! ni = xi & ~yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi >= 0) finish = 1; ! break; case 3: // copy x ! ni = xi; ! finish = 1; // Copy rest ! break; case 4: // andc1 ! for (;;) ! { ! ni = ~xi & yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi < 0) finish = 2; ! break; case 5: // copy y ! for (;;) ! { ! ni = yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! break; case 6: // xor ! for (;;) ! { ! ni = xi ^ yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! finish = yi < 0 ? 2 : 1; ! break; case 7: // ior ! for (;;) ! { ! ni = xi | yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi >= 0) finish = 1; ! break; case 8: // nor ! for (;;) ! { ! ni = ~(xi | yi); ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi >= 0) finish = 2; ! break; case 9: // eqv [exclusive nor] ! for (;;) ! { ! ni = ~(xi ^ yi); ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! finish = yi >= 0 ? 2 : 1; ! break; case 10: // c2 ! for (;;) ! { ! ni = ~yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! break; case 11: // orc2 ! for (;;) ! { ! ni = xi | ~yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi < 0) finish = 1; ! break; case 12: // c1 ! ni = ~xi; ! finish = 2; ! break; case 13: // orc1 ! for (;;) ! { ! ni = ~xi | yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi >= 0) finish = 2; ! break; case 14: // nand ! for (;;) ! { ! ni = ~(xi & yi); ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi < 0) finish = 2; ! break; default: case 15: // set ! ni = -1; ! break; } // Here i==ylen-1; w[0]..w[i-1] have the correct result; // and ni contains the correct result for w[i+1]. --- 2277,2402 ---- switch (op) { case 0: // clr ! ni = 0; ! break; case 1: // and ! for (;;) ! { ! ni = xi & yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi < 0) finish = 1; ! break; case 2: // andc2 ! for (;;) ! { ! ni = xi & ~yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi >= 0) finish = 1; ! break; case 3: // copy x ! ni = xi; ! finish = 1; // Copy rest ! break; case 4: // andc1 ! for (;;) ! { ! ni = ~xi & yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi < 0) finish = 2; ! break; case 5: // copy y ! for (;;) ! { ! ni = yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! break; case 6: // xor ! for (;;) ! { ! ni = xi ^ yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! finish = yi < 0 ? 2 : 1; ! break; case 7: // ior ! for (;;) ! { ! ni = xi | yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi >= 0) finish = 1; ! break; case 8: // nor ! for (;;) ! { ! ni = ~(xi | yi); ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi >= 0) finish = 2; ! break; case 9: // eqv [exclusive nor] ! for (;;) ! { ! ni = ~(xi ^ yi); ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! finish = yi >= 0 ? 2 : 1; ! break; case 10: // c2 ! for (;;) ! { ! ni = ~yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! break; case 11: // orc2 ! for (;;) ! { ! ni = xi | ~yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi < 0) finish = 1; ! break; case 12: // c1 ! ni = ~xi; ! finish = 2; ! break; case 13: // orc1 ! for (;;) ! { ! ni = ~xi | yi; ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi >= 0) finish = 2; ! break; case 14: // nand ! for (;;) ! { ! ni = ~(xi & yi); ! if (i+1 >= ylen) break; ! w[i++] = ni; xi = x.words[i]; yi = y.words[i]; ! } ! if (yi < 0) finish = 2; ! break; default: case 15: // set ! ni = -1; ! break; } // Here i==ylen-1; w[0]..w[i-1] have the correct result; // and ni contains the correct result for w[i+1]. *************** public class BigInteger extends Number i *** 2405,2417 **** switch (finish) { case 0: ! if (i == 0 && w == null) ! { ! result.ival = ni; ! return; ! } ! w[i++] = ni; ! break; case 1: w[i] = ni; while (++i < xlen) w[i] = x.words[i]; break; case 2: w[i] = ni; while (++i < xlen) w[i] = ~x.words[i]; break; } --- 2405,2417 ---- switch (finish) { case 0: ! if (i == 0 && w == null) ! { ! result.ival = ni; ! return; ! } ! w[i++] = ni; ! break; case 1: w[i] = ni; while (++i < xlen) w[i] = x.words[i]; break; case 2: w[i] = ni; while (++i < xlen) w[i] = ~x.words[i]; break; } *************** public class BigInteger extends Number i *** 2590,2604 **** // bit4count[I] is number of '1' bits in I. private static final byte[] bit4_count = { 0, 1, 1, 2, 1, 2, 2, 3, ! 1, 2, 2, 3, 2, 3, 3, 4}; private static int bitCount(int i) { int count = 0; while (i != 0) { ! count += bit4_count[i & 15]; ! i >>>= 4; } return count; } --- 2590,2604 ---- // bit4count[I] is number of '1' bits in I. private static final byte[] bit4_count = { 0, 1, 1, 2, 1, 2, 2, 3, ! 1, 2, 2, 3, 2, 3, 3, 4}; private static int bitCount(int i) { int count = 0; while (i != 0) { ! count += bit4_count[i & 15]; ! i >>>= 4; } return count; } *************** public class BigInteger extends Number i *** 2622,2634 **** int[] x_words = words; if (x_words == null) { ! x_len = 1; ! i = bitCount(ival); } else { ! x_len = ival; ! i = bitCount(x_words, x_len); } return isNegative() ? x_len * 32 - i : i; } --- 2622,2634 ---- int[] x_words = words; if (x_words == null) { ! x_len = 1; ! i = bitCount(ival); } else { ! x_len = ival; ! i = bitCount(x_words, x_len); } return isNegative() ? x_len * 32 - i : i; } *************** public class BigInteger extends Number i *** 2646,2664 **** } else { ! s.defaultReadObject(); ! if (magnitude.length == 0 || signum == 0) ! { ! this.ival = 0; ! this.words = null; ! } ! else ! { ! words = byteArrayToIntArray(magnitude, signum < 0 ? -1 : 0); ! BigInteger result = make(words, words.length); ! this.ival = result.ival; ! this.words = result.words; ! } } } --- 2646,2664 ---- } else { ! s.defaultReadObject(); ! if (magnitude.length == 0 || signum == 0) ! { ! this.ival = 0; ! this.words = null; ! } ! else ! { ! words = byteArrayToIntArray(magnitude, signum < 0 ? -1 : 0); ! BigInteger result = make(words, words.length); ! this.ival = result.ival; ! this.words = result.words; ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/math/MathContext.java gcc-4.6.0/libjava/classpath/java/math/MathContext.java *** gcc-4.5.2/libjava/classpath/java/math/MathContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/math/MathContext.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MathContext.java -- Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MathContext.java -- Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.io.Serializable; *** 49,106 **** public final class MathContext implements Serializable { /** A MathContext for unlimited precision arithmetic * */ ! public static final MathContext UNLIMITED = new MathContext(0, RoundingMode.HALF_UP); ! /** * A MathContext for the IEEE 754R Decimal32 format - 7 digit preicision and * HALF_EVEN rounding. */ ! public static final MathContext DECIMAL32 = new MathContext(7, RoundingMode.HALF_EVEN); ! /** * A MathContext for the IEEE 754R Decimal64 format - 16 digit preicision and * HALF_EVEN rounding. */ ! public static final MathContext DECIMAL64 = new MathContext(16, RoundingMode.HALF_EVEN); ! /** * A MathContext for the IEEE 754R Decimal128 format - 34 digit preicision and * HALF_EVEN rounding. */ ! public static final MathContext DECIMAL128 = new MathContext(34, RoundingMode.HALF_EVEN); ! /** * This is the serialVersionUID reported here: * java.sun.com/j2se/1.5.0/docs/api/serialized-form.html#java.math.MathContext */ private static final long serialVersionUID = 5579720004786848255L; ! private int precision; ! private RoundingMode roundMode; ! /** * Constructs a new MathContext with the specified precision and with HALF_UP * rounding. * @param setPrecision the precision for the new MathContext ! * * @throws IllegalArgumentException if precision is < 0. */ public MathContext(int setPrecision) { this(setPrecision, RoundingMode.HALF_UP); } ! /** * Constructs a new MathContext with the specified precision and rounding * mode. * @param setPrecision the precision * @param setRoundingMode the rounding mode ! * * @throws IllegalArgumentException if precision is < 0. */ public MathContext(int setPrecision, RoundingMode setRoundingMode) --- 49,106 ---- public final class MathContext implements Serializable { /** A MathContext for unlimited precision arithmetic * */ ! public static final MathContext UNLIMITED = new MathContext(0, RoundingMode.HALF_UP); ! /** * A MathContext for the IEEE 754R Decimal32 format - 7 digit preicision and * HALF_EVEN rounding. */ ! public static final MathContext DECIMAL32 = new MathContext(7, RoundingMode.HALF_EVEN); ! /** * A MathContext for the IEEE 754R Decimal64 format - 16 digit preicision and * HALF_EVEN rounding. */ ! public static final MathContext DECIMAL64 = new MathContext(16, RoundingMode.HALF_EVEN); ! /** * A MathContext for the IEEE 754R Decimal128 format - 34 digit preicision and * HALF_EVEN rounding. */ ! public static final MathContext DECIMAL128 = new MathContext(34, RoundingMode.HALF_EVEN); ! /** * This is the serialVersionUID reported here: * java.sun.com/j2se/1.5.0/docs/api/serialized-form.html#java.math.MathContext */ private static final long serialVersionUID = 5579720004786848255L; ! private int precision; ! private RoundingMode roundMode; ! /** * Constructs a new MathContext with the specified precision and with HALF_UP * rounding. * @param setPrecision the precision for the new MathContext ! * * @throws IllegalArgumentException if precision is < 0. */ public MathContext(int setPrecision) { this(setPrecision, RoundingMode.HALF_UP); } ! /** * Constructs a new MathContext with the specified precision and rounding * mode. * @param setPrecision the precision * @param setRoundingMode the rounding mode ! * * @throws IllegalArgumentException if precision is < 0. */ public MathContext(int setPrecision, RoundingMode setRoundingMode) *************** public final class MathContext implement *** 110,121 **** precision = setPrecision; roundMode = setRoundingMode; } ! /** * Constructs a MathContext from a String that has the same form as one * produced by the toString() method. * @param val ! * * @throws IllegalArgumentException if the String is not in the correct * format or if the precision specified is < 0. */ --- 110,121 ---- precision = setPrecision; roundMode = setRoundingMode; } ! /** * Constructs a MathContext from a String that has the same form as one * produced by the toString() method. * @param val ! * * @throws IllegalArgumentException if the String is not in the correct * format or if the precision specified is < 0. */ *************** public final class MathContext implement *** 138,148 **** if (precision < 0) throw new IllegalArgumentException("Precision cannot be less than 0."); } ! /** * Returns true if x is a MathContext and has the same precision setting * and rounding mode as this MathContext. ! * * @return true if the above conditions hold */ public boolean equals(Object x) --- 138,148 ---- if (precision < 0) throw new IllegalArgumentException("Precision cannot be less than 0."); } ! /** * Returns true if x is a MathContext and has the same precision setting * and rounding mode as this MathContext. ! * * @return true if the above conditions hold */ public boolean equals(Object x) *************** public final class MathContext implement *** 153,159 **** return mc.precision == this.precision && mc.roundMode.equals(this.roundMode); } ! /** * Returns the precision setting. * @return the precision setting. --- 153,159 ---- return mc.precision == this.precision && mc.roundMode.equals(this.roundMode); } ! /** * Returns the precision setting. * @return the precision setting. *************** public final class MathContext implement *** 162,172 **** { return precision; } ! /** ! * Returns the rounding mode setting. This will be one of ! * RoundingMode.CEILING, RoundingMode.DOWN, RoundingMode.FLOOR, ! * RoundingMode.HALF_DOWN, RoundingMode.HALF_EVEN, RoundingMode.HALF_UP, * RoundingMode.UNNECESSARY, or RoundingMode.UP. * @return the rounding mode setting. */ --- 162,172 ---- { return precision; } ! /** ! * Returns the rounding mode setting. This will be one of ! * RoundingMode.CEILING, RoundingMode.DOWN, RoundingMode.FLOOR, ! * RoundingMode.HALF_DOWN, RoundingMode.HALF_EVEN, RoundingMode.HALF_UP, * RoundingMode.UNNECESSARY, or RoundingMode.UP. * @return the rounding mode setting. */ *************** public final class MathContext implement *** 174,192 **** { return roundMode; } ! /** ! * Returns "precision=p roundingMode=MODE" where p is an int giving the * precision and MODE is UP, DOWN, HALF_UP, HALF_DOWN, HALF_EVEN, CEILING, * FLOOR, or UNNECESSARY corresponding to rounding modes. ! * * @return a String describing this MathContext */ public String toString() { return "precision="+precision+" roundingMode="+roundMode; } ! /** * Returns the hashcode for this MathContext. * @return the hashcode for this MathContext. --- 174,192 ---- { return roundMode; } ! /** ! * Returns "precision=p roundingMode=MODE" where p is an int giving the * precision and MODE is UP, DOWN, HALF_UP, HALF_DOWN, HALF_EVEN, CEILING, * FLOOR, or UNNECESSARY corresponding to rounding modes. ! * * @return a String describing this MathContext */ public String toString() { return "precision="+precision+" roundingMode="+roundMode; } ! /** * Returns the hashcode for this MathContext. * @return the hashcode for this MathContext. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/math/RoundingMode.java gcc-4.6.0/libjava/classpath/java/math/RoundingMode.java *** gcc-4.5.2/libjava/classpath/java/math/RoundingMode.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/math/RoundingMode.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RoundingMode.java -- An Enum to replace BigDecimal rounding constants. Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RoundingMode.java -- An Enum to replace BigDecimal rounding constants. Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public enum RoundingMode *** 52,58 **** * For compatability with Sun's JDK */ private static final long serialVersionUID = 432302042773881265L; ! /** * Returns the RoundingMode object corresponding to the legacy rounding modes * in BigDecimal. --- 52,58 ---- * For compatability with Sun's JDK */ private static final long serialVersionUID = 432302042773881265L; ! /** * Returns the RoundingMode object corresponding to the legacy rounding modes * in BigDecimal. *************** public enum RoundingMode *** 80,88 **** case BigDecimal.ROUND_UNNECESSARY: return UNNECESSARY; default: ! throw new ! IllegalArgumentException("invalid argument: " + rm + ! ". Argument should be one of the " + "rounding modes defined in BigDecimal."); } } --- 80,88 ---- case BigDecimal.ROUND_UNNECESSARY: return UNNECESSARY; default: ! throw new ! IllegalArgumentException("invalid argument: " + rm + ! ". Argument should be one of the " + "rounding modes defined in BigDecimal."); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/ContentHandler.java gcc-4.6.0/libjava/classpath/java/net/ContentHandler.java *** gcc-4.5.2/libjava/classpath/java/net/ContentHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/net/ContentHandler.java Tue Jan 11 19:46:05 2011 *************** public abstract class ContentHandler *** 117,124 **** for (int i = 0; i < classes.length; i++) { ! if (classes[i].isInstance(obj)) ! return obj; } return null; --- 117,124 ---- for (int i = 0; i < classes.length; i++) { ! if (classes[i].isInstance(obj)) ! return obj; } return null; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/DatagramSocket.java gcc-4.6.0/libjava/classpath/java/net/DatagramSocket.java *** gcc-4.5.2/libjava/classpath/java/net/DatagramSocket.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/net/DatagramSocket.java Tue Jan 11 19:46:05 2011 *************** public class DatagramSocket *** 196,210 **** else try { ! impl = ! (DatagramSocketImpl) Class.forName("java.net." + propVal ! + "DatagramSocketImpl") ! .newInstance(); } catch (Exception e) { ! System.err.println("Could not instantiate class: java.net." ! + propVal + "DatagramSocketImpl"); try { impl = new PlainDatagramSocketImpl(); --- 196,210 ---- else try { ! impl = ! (DatagramSocketImpl) Class.forName("java.net." + propVal ! + "DatagramSocketImpl") ! .newInstance(); } catch (Exception e) { ! System.err.println("Could not instantiate class: java.net." ! + propVal + "DatagramSocketImpl"); try { impl = new PlainDatagramSocketImpl(); *************** public class DatagramSocket *** 226,244 **** { try { ! if (! implCreated) ! { ! impl.create(); ! implCreated = true; ! } ! return impl; } catch (IOException e) { ! SocketException se = new SocketException(); ! se.initCause(e); ! throw se; } } --- 226,244 ---- { try { ! if (! implCreated) ! { ! impl.create(); ! implCreated = true; ! } ! return impl; } catch (IOException e) { ! SocketException se = new SocketException(); ! se.initCause(e); ! throw se; } } *************** public class DatagramSocket *** 252,278 **** try { ! getImpl().close(); } catch (SocketException e) { ! // Ignore this case, just close the socket in finally clause. } finally { ! remoteAddress = null; ! remotePort = -1; ! impl = null; } try { ! if (getChannel() != null) ! getChannel().close(); } catch (IOException e) { ! // Do nothing. } } --- 252,278 ---- try { ! getImpl().close(); } catch (SocketException e) { ! // Ignore this case, just close the socket in finally clause. } finally { ! remoteAddress = null; ! remotePort = -1; ! impl = null; } try { ! if (getChannel() != null) ! getChannel().close(); } catch (IOException e) { ! // Do nothing. } } *************** public class DatagramSocket *** 320,340 **** try { ! localAddr = ! (InetAddress) getImpl().getOption(SocketOptions.SO_BINDADDR); ! SecurityManager s = System.getSecurityManager(); ! if (s != null) ! s.checkConnect(localAddr.getHostAddress(), -1); } catch (SecurityException e) { ! localAddr = InetAddress.ANY_IF; } catch (SocketException e) { ! // This cannot happen as we are bound. ! return null; } return localAddr; --- 320,340 ---- try { ! localAddr = ! (InetAddress) getImpl().getOption(SocketOptions.SO_BINDADDR); ! SecurityManager s = System.getSecurityManager(); ! if (s != null) ! s.checkConnect(localAddr.getHostAddress(), -1); } catch (SecurityException e) { ! localAddr = InetAddress.ANY_IF; } catch (SocketException e) { ! // This cannot happen as we are bound. ! return null; } return localAddr; *************** public class DatagramSocket *** 352,363 **** try { ! return getImpl().getLocalPort(); } catch (SocketException e) { ! // This cannot happen as we are bound. ! return 0; } } --- 352,363 ---- try { ! return getImpl().getLocalPort(); } catch (SocketException e) { ! // This cannot happen as we are bound. ! return 0; } } *************** public class DatagramSocket *** 529,541 **** try { ! getImpl().connect(address, port); ! remoteAddress = address; ! remotePort = port; } catch (SocketException e) { ! // This means simply not connected or connect not implemented. } } --- 529,541 ---- try { ! getImpl().connect(address, port); ! remoteAddress = address; ! remotePort = port; } catch (SocketException e) { ! // This means simply not connected or connect not implemented. } } *************** public class DatagramSocket *** 553,568 **** try { ! getImpl().disconnect(); } catch (SocketException e) { ! // This cannot happen as we are connected. } finally { ! remoteAddress = null; ! remotePort = -1; } } --- 553,568 ---- try { ! getImpl().disconnect(); } catch (SocketException e) { ! // This cannot happen as we are connected. } finally { ! remoteAddress = null; ! remotePort = -1; } } *************** public class DatagramSocket *** 592,598 **** if (remoteAddress != null && remoteAddress.isMulticastAddress()) throw new IOException ! ("Socket connected to a multicast address my not receive"); if (getChannel() != null && ! getChannel().isBlocking() && ! ((DatagramChannelImpl) getChannel()).isInChannelOperation()) --- 592,598 ---- if (remoteAddress != null && remoteAddress.isMulticastAddress()) throw new IOException ! ("Socket connected to a multicast address my not receive"); if (getChannel() != null && ! getChannel().isBlocking() && ! ((DatagramChannelImpl) getChannel()).isInChannelOperation()) *************** public class DatagramSocket *** 635,653 **** SecurityManager s = System.getSecurityManager(); if (s != null && ! isConnected()) { ! InetAddress addr = p.getAddress(); ! if (addr.isMulticastAddress()) ! s.checkMulticast(addr); ! else ! s.checkConnect(addr.getHostAddress(), p.getPort()); } if (isConnected()) { ! if (p.getAddress() != null ! && (remoteAddress != p.getAddress() || remotePort != p.getPort())) ! throw new IllegalArgumentException ! ("DatagramPacket address does not match remote address"); } // FIXME: if this is a subclass of MulticastSocket, --- 635,653 ---- SecurityManager s = System.getSecurityManager(); if (s != null && ! isConnected()) { ! InetAddress addr = p.getAddress(); ! if (addr.isMulticastAddress()) ! s.checkMulticast(addr); ! else ! s.checkConnect(addr.getHostAddress(), p.getPort()); } if (isConnected()) { ! if (p.getAddress() != null ! && (remoteAddress != p.getAddress() || remotePort != p.getPort())) ! throw new IllegalArgumentException ! ("DatagramPacket address does not match remote address"); } // FIXME: if this is a subclass of MulticastSocket, *************** public class DatagramSocket *** 675,681 **** { if (isClosed()) throw new SocketException("socket is closed"); ! if (address == null) address = new InetSocketAddress(InetAddress.ANY_IF, 0); --- 675,681 ---- { if (isClosed()) throw new SocketException("socket is closed"); ! if (address == null) address = new InetSocketAddress(InetAddress.ANY_IF, 0); *************** public class DatagramSocket *** 697,719 **** try { ! getImpl().bind(port, addr); ! bound = true; } catch (SocketException exception) { ! getImpl().close(); ! throw exception; } catch (RuntimeException exception) { ! getImpl().close(); ! throw exception; } catch (Error error) { ! getImpl().close(); ! throw error; } } --- 697,719 ---- try { ! getImpl().bind(port, addr); ! bound = true; } catch (SocketException exception) { ! getImpl().close(); ! throw exception; } catch (RuntimeException exception) { ! getImpl().close(); ! throw exception; } catch (Error error) { ! getImpl().close(); ! throw error; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/DatagramSocketImpl.java gcc-4.6.0/libjava/classpath/java/net/DatagramSocketImpl.java *** gcc-4.5.2/libjava/classpath/java/net/DatagramSocketImpl.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/net/DatagramSocketImpl.java Tue Jan 11 19:46:05 2011 *************** public abstract class DatagramSocketImpl *** 200,208 **** * socket. Use getTimeToLive() instead. * * @return the current time-to-live ! * * @exception IOException If an error occurs ! * * @deprecated // FIXME: when ? */ protected abstract byte getTTL() throws IOException; --- 200,208 ---- * socket. Use getTimeToLive() instead. * * @return the current time-to-live ! * * @exception IOException If an error occurs ! * * @deprecated // FIXME: when ? */ protected abstract byte getTTL() throws IOException; *************** public abstract class DatagramSocketImpl *** 222,228 **** * socket. * * @return the current time-to-live ! * * @exception IOException If an error occurs */ protected abstract int getTimeToLive() throws IOException; --- 222,228 ---- * socket. * * @return the current time-to-live ! * * @exception IOException If an error occurs */ protected abstract int getTimeToLive() throws IOException; *************** public abstract class DatagramSocketImpl *** 276,282 **** /** * Returns the FileDescriptor for this socket ! * * @return the file descriptor associated with this socket */ protected FileDescriptor getFileDescriptor() --- 276,282 ---- /** * Returns the FileDescriptor for this socket ! * * @return the file descriptor associated with this socket */ protected FileDescriptor getFileDescriptor() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/HttpURLConnection.java gcc-4.6.0/libjava/classpath/java/net/HttpURLConnection.java *** gcc-4.5.2/libjava/classpath/java/net/HttpURLConnection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/net/HttpURLConnection.java Tue Jan 11 19:46:05 2011 *************** public abstract class HttpURLConnection *** 380,386 **** /** * Returns the value of this HttpURLConnection's instanceFollowRedirects * field ! * * @return true if following redirects is enabled, false otherwise */ public boolean getInstanceFollowRedirects() --- 380,386 ---- /** * Returns the value of this HttpURLConnection's instanceFollowRedirects * field ! * * @return true if following redirects is enabled, false otherwise */ public boolean getInstanceFollowRedirects() *************** public abstract class HttpURLConnection *** 474,506 **** // If responseCode not yet explicitly set by subclass if (responseCode == -1) { ! // Response is the first header received from the connection. ! String respField = getHeaderField(0); ! if (respField == null || ! respField.startsWith("HTTP/")) ! { ! // Set to default values on failure. ! responseCode = -1; ! responseMessage = null; ! return; ! } ! int firstSpc; ! int nextSpc; ! firstSpc = respField.indexOf(' '); ! nextSpc = respField.indexOf(' ', firstSpc + 1); ! responseMessage = respField.substring(nextSpc + 1); ! String codeStr = respField.substring(firstSpc + 1, nextSpc); ! try ! { ! responseCode = Integer.parseInt(codeStr); ! } ! catch (NumberFormatException e) ! { ! // Set to default values on failure. ! responseCode = -1; ! responseMessage = null; ! } } } --- 474,506 ---- // If responseCode not yet explicitly set by subclass if (responseCode == -1) { ! // Response is the first header received from the connection. ! String respField = getHeaderField(0); ! if (respField == null || ! respField.startsWith("HTTP/")) ! { ! // Set to default values on failure. ! responseCode = -1; ! responseMessage = null; ! return; ! } ! int firstSpc; ! int nextSpc; ! firstSpc = respField.indexOf(' '); ! nextSpc = respField.indexOf(' ', firstSpc + 1); ! responseMessage = respField.substring(nextSpc + 1); ! String codeStr = respField.substring(firstSpc + 1, nextSpc); ! try ! { ! responseCode = Integer.parseInt(codeStr); ! } ! catch (NumberFormatException e) ! { ! // Set to default values on failure. ! responseCode = -1; ! responseMessage = null; ! } } } *************** public abstract class HttpURLConnection *** 542,552 **** int code; try { ! code = getResponseCode(); } catch (IOException e) { ! code = -1; } if (code == -1) --- 542,552 ---- int code; try { ! code = getResponseCode(); } catch (IOException e) { ! code = -1; } if (code == -1) *************** public abstract class HttpURLConnection *** 557,574 **** try { ! PushbackInputStream pbis = new PushbackInputStream(getInputStream()); ! int i = pbis.read(); ! if (i == -1) ! return null; ! pbis.unread(i); ! return pbis; } catch (IOException e) { ! return null; } } --- 557,574 ---- try { ! PushbackInputStream pbis = new PushbackInputStream(getInputStream()); ! int i = pbis.read(); ! if (i == -1) ! return null; ! pbis.unread(i); ! return pbis; } catch (IOException e) { ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/Inet4Address.java gcc-4.6.0/libjava/classpath/java/net/Inet4Address.java *** gcc-4.5.2/libjava/classpath/java/net/Inet4Address.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/Inet4Address.java Tue Jan 11 19:46:05 2011 *************** public final class Inet4Address extends *** 70,76 **** { return new InetAddress(addr, hostName, AF_INET); } ! /** * Initializes this object's addr instance variable from the passed in * byte array. Note that this constructor is protected and is called --- 70,76 ---- { return new InetAddress(addr, hostName, AF_INET); } ! /** * Initializes this object's addr instance variable from the passed in * byte array. Note that this constructor is protected and is called *************** public final class Inet4Address extends *** 175,182 **** return false; return ((addr[0] & 0xff) == 0xe0 ! && (addr[1] & 0xff) == 0x00 ! && (addr[2] & 0xff) == 0x00); } /** --- 175,182 ---- return false; return ((addr[0] & 0xff) == 0xe0 ! && (addr[1] & 0xff) == 0x00 ! && (addr[2] & 0xff) == 0x00); } /** *************** public final class Inet4Address extends *** 218,232 **** int len = addr.length; int i = 0; ! for ( ; ; ) { sb.append(addr[i] & 0xff); i++; ! if (i == len) break; ! sb.append('.'); } --- 218,232 ---- int len = addr.length; int i = 0; ! for ( ; ; ) { sb.append(addr[i] & 0xff); i++; ! if (i == len) break; ! sb.append('.'); } *************** public final class Inet4Address extends *** 266,272 **** for (int i = addr1.length; --i >= 0;) if (addr1[i] != addr2[i]) ! return false; return true; } --- 266,272 ---- for (int i = addr1.length; --i >= 0;) if (addr1[i] != addr2[i]) ! return false; return true; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/Inet6Address.java gcc-4.6.0/libjava/classpath/java/net/Inet6Address.java *** gcc-4.5.2/libjava/classpath/java/net/Inet6Address.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/Inet6Address.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 48,54 **** /* * Written using on-line Java Platform 1.4 API Specification and * RFC 1884 (http://www.ietf.org/rfc/rfc1884.txt) ! * * @author Michael Koch * @status Updated to 1.5. Serialization compatibility is tested. */ --- 48,54 ---- /* * Written using on-line Java Platform 1.4 API Specification and * RFC 1884 (http://www.ietf.org/rfc/rfc1884.txt) ! * * @author Michael Koch * @status Updated to 1.5. Serialization compatibility is tested. */ *************** public final class Inet6Address extends *** 62,98 **** byte[] ipaddress; /** ! * The scope ID, if any. * @since 1.5 ! * @serial */ private int scope_id; /** ! * The scope ID, if any. * @since 1.5 ! * @serial */ private boolean scope_id_set; /** * Whether ifname is set or not. * @since 1.5 ! * @serial */ private boolean scope_ifname_set; /** * Name of the network interface, used only by the serialization methods * @since 1.5 ! * @serial */ private String ifname; /** * Scope network interface, or null. */ ! private transient NetworkInterface nif; /** * The address family of these addresses (used for serialization). --- 62,98 ---- byte[] ipaddress; /** ! * The scope ID, if any. * @since 1.5 ! * @serial */ private int scope_id; /** ! * The scope ID, if any. * @since 1.5 ! * @serial */ private boolean scope_id_set; /** * Whether ifname is set or not. * @since 1.5 ! * @serial */ private boolean scope_ifname_set; /** * Name of the network interface, used only by the serialization methods * @since 1.5 ! * @serial */ private String ifname; /** * Scope network interface, or null. */ ! private transient NetworkInterface nif; /** * The address family of these addresses (used for serialization). *************** public final class Inet6Address extends *** 250,263 **** * * @throws UnkownHostException if the address is an invalid number of bytes. * @since 1.5 ! */ ! public static Inet6Address getByAddress(String host, byte[] addr, ! int scopeId) throws UnknownHostException { if( addr.length != 16 ) throw new UnknownHostException("Illegal address length: " + addr.length ! + " bytes."); Inet6Address ip = new Inet6Address( addr, host ); ip.scope_id = scopeId; ip.scope_id_set = true; --- 250,263 ---- * * @throws UnkownHostException if the address is an invalid number of bytes. * @since 1.5 ! */ ! public static Inet6Address getByAddress(String host, byte[] addr, ! int scopeId) throws UnknownHostException { if( addr.length != 16 ) throw new UnknownHostException("Illegal address length: " + addr.length ! + " bytes."); Inet6Address ip = new Inet6Address( addr, host ); ip.scope_id = scopeId; ip.scope_id_set = true; *************** public final class Inet6Address extends *** 270,283 **** * * @throws UnkownHostException if the address is an invalid number of bytes. * @since 1.5 ! */ ! public static Inet6Address getByAddress(String host, byte[] addr, ! NetworkInterface nif) throws UnknownHostException { if( addr.length != 16 ) throw new UnknownHostException("Illegal address length: " + addr.length ! + " bytes."); Inet6Address ip = new Inet6Address( addr, host ); ip.nif = nif; --- 270,283 ---- * * @throws UnkownHostException if the address is an invalid number of bytes. * @since 1.5 ! */ ! public static Inet6Address getByAddress(String host, byte[] addr, ! NetworkInterface nif) throws UnknownHostException { if( addr.length != 16 ) throw new UnknownHostException("Illegal address length: " + addr.length ! + " bytes."); Inet6Address ip = new Inet6Address( addr, host ); ip.nif = nif; *************** public final class Inet6Address extends *** 287,294 **** /** * Returns the NetworkInterface of the address scope * if it is a scoped address and the scope is given in the form of a ! * NetworkInterface. ! * (I.e. the address was created using the * getByAddress(String, byte[], NetworkInterface) method) * Otherwise this method returns null. * @since 1.5 --- 287,294 ---- /** * Returns the NetworkInterface of the address scope * if it is a scoped address and the scope is given in the form of a ! * NetworkInterface. ! * (I.e. the address was created using the * getByAddress(String, byte[], NetworkInterface) method) * Otherwise this method returns null. * @since 1.5 *************** public final class Inet6Address extends *** 310,316 **** // check scope_id_set because some JDK-serialized objects seem to have // scope_id set to a nonzero value even when scope_id_set == false if( scope_id_set ) ! return scope_id; return 0; } --- 310,316 ---- // check scope_id_set because some JDK-serialized objects seem to have // scope_id set to a nonzero value even when scope_id_set == false if( scope_id_set ) ! return scope_id; return 0; } *************** public final class Inet6Address extends *** 323,334 **** for (int i = 0; i < 16; i += 2) { ! int x = ((ipaddress[i] & 0xFF) << 8) | (ipaddress[i + 1] & 0xFF); ! if (i > 0) ! sbuf.append(':'); ! sbuf.append(Integer.toHexString(x)); } if( nif != null ) sbuf.append( "%" + nif.getName() ); --- 323,334 ---- for (int i = 0; i < 16; i += 2) { ! int x = ((ipaddress[i] & 0xFF) << 8) | (ipaddress[i + 1] & 0xFF); ! if (i > 0) ! sbuf.append(':'); ! sbuf.append(Integer.toHexString(x)); } if( nif != null ) sbuf.append( "%" + nif.getName() ); *************** public final class Inet6Address extends *** 361,367 **** for (int i = 0; i < ip.ipaddress.length; i++) if (ipaddress[i] != ip.ipaddress[i]) ! return false; if( ip.nif != null && nif != null ) return nif.equals( ip.nif ); --- 361,367 ---- for (int i = 0; i < ip.ipaddress.length; i++) if (ipaddress[i] != ip.ipaddress[i]) ! return false; if( ip.nif != null && nif != null ) return nif.equals( ip.nif ); *************** public final class Inet6Address extends *** 399,414 **** */ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException ! { s.defaultReadObject(); try { ! if( scope_ifname_set ) ! nif = NetworkInterface.getByName( ifname ); } catch( SocketException se ) { ! // FIXME: Ignore this? or throw an IOException? } } --- 399,414 ---- */ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException ! { s.defaultReadObject(); try { ! if( scope_ifname_set ) ! nif = NetworkInterface.getByName( ifname ); } catch( SocketException se ) { ! // FIXME: Ignore this? or throw an IOException? } } *************** public final class Inet6Address extends *** 421,428 **** { if( nif != null ) { ! ifname = nif.getName(); ! scope_ifname_set = true; } s.defaultWriteObject(); } --- 421,428 ---- { if( nif != null ) { ! ifname = nif.getName(); ! scope_ifname_set = true; } s.defaultWriteObject(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/InetAddress.java gcc-4.6.0/libjava/classpath/java/net/InetAddress.java *** gcc-4.5.2/libjava/classpath/java/net/InetAddress.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/net/InetAddress.java Tue Jan 11 19:46:05 2011 *************** public class InetAddress implements Seri *** 74,97 **** byte[] addr; try { ! addr = VMInetAddress.lookupInaddrAny(); } catch (UnknownHostException e) { ! // Make one up and hope it works. ! addr = new byte[] {0, 0, 0, 0}; } try { ! ANY_IF = getByAddress(addr); } catch (UnknownHostException e) { ! throw (InternalError) new InternalError().initCause(e); } ANY_IF.hostName = ANY_IF.getHostName(); } ! /** * Stores static localhost address object. */ --- 74,97 ---- byte[] addr; try { ! addr = VMInetAddress.lookupInaddrAny(); } catch (UnknownHostException e) { ! // Make one up and hope it works. ! addr = new byte[] {0, 0, 0, 0}; } try { ! ANY_IF = getByAddress(addr); } catch (UnknownHostException e) { ! throw (InternalError) new InternalError().initCause(e); } ANY_IF.hostName = ANY_IF.getHostName(); } ! /** * Stores static localhost address object. */ *************** public class InetAddress implements Seri *** 100,112 **** { try { ! LOCALHOST = getByAddress("localhost", new byte[] {127, 0, 0, 1}); } catch (UnknownHostException e) { ! throw (InternalError) new InternalError().initCause(e); } ! } /** * The Serialized Form specifies that an int 'address' is saved/restored. --- 100,112 ---- { try { ! LOCALHOST = getByAddress("localhost", new byte[] {127, 0, 0, 1}); } catch (UnknownHostException e) { ! throw (InternalError) new InternalError().initCause(e); } ! } /** * The Serialized Form specifies that an int 'address' is saved/restored. *************** public class InetAddress implements Seri *** 158,164 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @return true if mulitcast, false if not * * @since 1.1 --- 158,164 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @return true if mulitcast, false if not * * @since 1.1 *************** public class InetAddress implements Seri *** 174,180 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isAnyLocalAddress() --- 174,180 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isAnyLocalAddress() *************** public class InetAddress implements Seri *** 188,194 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isLoopbackAddress() --- 188,194 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isLoopbackAddress() *************** public class InetAddress implements Seri *** 202,208 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isLinkLocalAddress() --- 202,208 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isLinkLocalAddress() *************** public class InetAddress implements Seri *** 216,222 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isSiteLocalAddress() --- 216,222 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isSiteLocalAddress() *************** public class InetAddress implements Seri *** 230,236 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCGlobal() --- 230,236 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCGlobal() *************** public class InetAddress implements Seri *** 244,250 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCNodeLocal() --- 244,250 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCNodeLocal() *************** public class InetAddress implements Seri *** 258,264 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCLinkLocal() --- 258,264 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCLinkLocal() *************** public class InetAddress implements Seri *** 272,278 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCSiteLocal() --- 272,278 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCSiteLocal() *************** public class InetAddress implements Seri *** 287,293 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCOrgLocal() --- 287,293 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @since 1.4 */ public boolean isMCOrgLocal() *************** public class InetAddress implements Seri *** 316,332 **** { try { ! return ResolverCache.getHostByAddr(addr); } catch (UnknownHostException e) { ! return getHostAddress(); } } /** * Returns the canonical hostname represented by this InetAddress ! * * @since 1.4 */ public String getCanonicalHostName() --- 316,332 ---- { try { ! return ResolverCache.getHostByAddr(addr); } catch (UnknownHostException e) { ! return getHostAddress(); } } /** * Returns the canonical hostname represented by this InetAddress ! * * @since 1.4 */ public String getCanonicalHostName() *************** public class InetAddress implements Seri *** 337,349 **** if (sm != null) { try ! { sm.checkConnect(hostname, -1); ! } ! catch (SecurityException e) ! { ! return getHostAddress(); ! } } return hostname; --- 337,349 ---- if (sm != null) { try ! { sm.checkConnect(hostname, -1); ! } ! catch (SecurityException e) ! { ! return getHostAddress(); ! } } return hostname; *************** public class InetAddress implements Seri *** 367,373 **** *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @return The IP address of this object in String form * * @since 1.0.2 --- 367,373 ---- *

                    This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

                    ! * * @return The IP address of this object in String form * * @since 1.0.2 *************** public class InetAddress implements Seri *** 425,431 **** for (int i = 0; i < addr.length; i++) if (addr[i] != addr2[i]) ! return false; return true; } --- 425,431 ---- for (int i = 0; i < addr.length; i++) if (addr[i] != addr2[i]) ! return false; return true; } *************** public class InetAddress implements Seri *** 481,498 **** if (addr.length == 16) { ! for (int i = 0; i < 12; i++) ! { ! if (addr[i] != (i < 10 ? 0 : (byte) 0xFF)) ! return new Inet6Address(addr, host); ! } ! ! byte[] ip4addr = new byte[4]; ! ip4addr[0] = addr[12]; ! ip4addr[1] = addr[13]; ! ip4addr[2] = addr[14]; ! ip4addr[3] = addr[15]; ! return new Inet4Address(ip4addr, host); } throw new UnknownHostException("IP address has illegal length"); --- 481,498 ---- if (addr.length == 16) { ! for (int i = 0; i < 12; i++) ! { ! if (addr[i] != (i < 10 ? 0 : (byte) 0xFF)) ! return new Inet6Address(addr, host); ! } ! ! byte[] ip4addr = new byte[4]; ! ip4addr[0] = addr[12]; ! ip4addr[1] = addr[13]; ! ip4addr[2] = addr[14]; ! ip4addr[3] = addr[15]; ! return new Inet4Address(ip4addr, host); } throw new UnknownHostException("IP address has illegal length"); *************** public class InetAddress implements Seri *** 515,528 **** byte[] address = VMInetAddress.aton(literal); if (address == null) return null; ! try { ! return getByAddress(address); } catch (UnknownHostException e) { ! throw (InternalError) new InternalError().initCause(e); } } --- 515,528 ---- byte[] address = VMInetAddress.aton(literal); if (address == null) return null; ! try { ! return getByAddress(address); } catch (UnknownHostException e) { ! throw (InternalError) new InternalError().initCause(e); } } *************** public class InetAddress implements Seri *** 534,540 **** * default. This method is equivalent to returning the first element in * the InetAddress array returned from GetAllByName. * ! * @param hostname The name of the desired host, or null for the local * loopback address. * * @return The address of the host as an InetAddress object. --- 534,540 ---- * default. This method is equivalent to returning the first element in * the InetAddress array returned from GetAllByName. * ! * @param hostname The name of the desired host, or null for the local * loopback address. * * @return The address of the host as an InetAddress object. *************** public class InetAddress implements Seri *** 612,622 **** String hostname = VMInetAddress.getLocalHostname(); try { ! return getByName(hostname); } catch (SecurityException e) { ! return LOCALHOST; } } --- 612,622 ---- String hostname = VMInetAddress.getLocalHostname(); try { ! return getByName(hostname); } catch (SecurityException e) { ! return LOCALHOST; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/InetSocketAddress.java gcc-4.6.0/libjava/classpath/java/net/InetSocketAddress.java *** gcc-4.5.2/libjava/classpath/java/net/InetSocketAddress.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/net/InetSocketAddress.java Tue Jan 11 19:46:05 2011 *************** public class InetSocketAddress extends S *** 181,194 **** // The hostname may differ. if (obj instanceof InetSocketAddress) { ! InetSocketAddress sa = (InetSocketAddress) obj; ! if (addr == null && sa.addr != null) ! return false; ! else if (addr == null && sa.addr == null) // we know hostname != null ! return hostname.equals(sa.hostname) && sa.port == port; ! else ! return addr.equals(sa.addr) && sa.port == port; } return false; --- 181,194 ---- // The hostname may differ. if (obj instanceof InetSocketAddress) { ! InetSocketAddress sa = (InetSocketAddress) obj; ! if (addr == null && sa.addr != null) ! return false; ! else if (addr == null && sa.addr == null) // we know hostname != null ! return hostname.equals(sa.hostname) && sa.port == port; ! else ! return addr.equals(sa.addr) && sa.port == port; } return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/MimeTypeMapper.java gcc-4.6.0/libjava/classpath/java/net/MimeTypeMapper.java *** gcc-4.5.2/libjava/classpath/java/net/MimeTypeMapper.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/net/MimeTypeMapper.java Tue Jan 11 19:46:05 2011 *************** class MimeTypeMapper implements FileName *** 258,272 **** } } ! public static void fillFromFile (Map table, String fname) throws IOException { ! LineNumberReader reader = new LineNumberReader (new FileReader (fname)); while (reader.ready ()) { ! StringTokenizer tokenizer = new StringTokenizer (reader.readLine ()); try --- 258,272 ---- } } ! public static void fillFromFile (Map table, String fname) throws IOException { ! LineNumberReader reader = new LineNumberReader (new FileReader (fname)); while (reader.ready ()) { ! StringTokenizer tokenizer = new StringTokenizer (reader.readLine ()); try *************** class MimeTypeMapper implements FileName *** 308,317 **** int index = filename.lastIndexOf("."); if (index != -1) { ! if (index == filename.length()) ! return "application/octet-stream"; ! else ! filename = filename.substring(index + 1); } String type = (String) mime_types.get(filename); --- 308,317 ---- int index = filename.lastIndexOf("."); if (index != -1) { ! if (index == filename.length()) ! return "application/octet-stream"; ! else ! filename = filename.substring(index + 1); } String type = (String) mime_types.get(filename); *************** class MimeTypeMapper implements FileName *** 338,344 **** String key = it.next(); String value = map.get(key); // Put the "," first since it is easier to make correct syntax this way. ! System.out.println(" " + (first ? " " : ", ") + "{ \"" + key + "\", \"" + value + "\" }"); first = false; } --- 338,344 ---- String key = it.next(); String value = map.get(key); // Put the "," first since it is easier to make correct syntax this way. ! System.out.println(" " + (first ? " " : ", ") + "{ \"" + key + "\", \"" + value + "\" }"); first = false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/MulticastSocket.java gcc-4.6.0/libjava/classpath/java/net/MulticastSocket.java *** gcc-4.5.2/libjava/classpath/java/net/MulticastSocket.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/net/MulticastSocket.java Tue Jan 11 19:46:05 2011 *************** public class MulticastSocket extends Dat *** 202,208 **** { if (isClosed()) throw new SocketException("socket is closed"); ! InetAddress address; if (netIf != null) out: --- 202,208 ---- { if (isClosed()) throw new SocketException("socket is closed"); ! InetAddress address; if (netIf != null) out: *************** public class MulticastSocket extends Dat *** 235,242 **** } else address = InetAddress.ANY_IF; ! ! getImpl().setOption(SocketOptions.IP_MULTICAST_IF, address); } --- 235,242 ---- } else address = InetAddress.ANY_IF; ! ! getImpl().setOption(SocketOptions.IP_MULTICAST_IF, address); } *************** public class MulticastSocket extends Dat *** 258,267 **** InetAddress address = (InetAddress) getImpl().getOption(SocketOptions.IP_MULTICAST_IF); ! if (address.isAnyLocalAddress()) return NetworkInterface.createAnyInterface(); ! NetworkInterface netIf = NetworkInterface.getByInetAddress(address); return netIf; --- 258,267 ---- InetAddress address = (InetAddress) getImpl().getOption(SocketOptions.IP_MULTICAST_IF); ! if (address.isAnyLocalAddress()) return NetworkInterface.createAnyInterface(); ! NetworkInterface netIf = NetworkInterface.getByInetAddress(address); return netIf; *************** public class MulticastSocket extends Dat *** 294,300 **** * Checks if local loopback mode is enabled * * @return true if loopback mode is enabled, false otherwise ! * * @exception SocketException If an error occurs * * @since 1.4 --- 294,300 ---- * Checks if local loopback mode is enabled * * @return true if loopback mode is enabled, false otherwise ! * * @exception SocketException If an error occurs * * @since 1.4 *************** public class MulticastSocket extends Dat *** 501,513 **** SecurityManager s = System.getSecurityManager(); if (s != null) { ! InetAddress addr = packet.getAddress(); ! if (addr.isMulticastAddress()) ! s.checkPermission(new SocketPermission(addr.getHostName() ! + packet.getPort(), ! "accept,connect")); ! else ! s.checkConnect(addr.getHostAddress(), packet.getPort()); } int oldttl = getImpl().getTimeToLive(); --- 501,513 ---- SecurityManager s = System.getSecurityManager(); if (s != null) { ! InetAddress addr = packet.getAddress(); ! if (addr.isMulticastAddress()) ! s.checkPermission(new SocketPermission(addr.getHostName() ! + packet.getPort(), ! "accept,connect")); ! else ! s.checkConnect(addr.getHostAddress(), packet.getPort()); } int oldttl = getImpl().getTimeToLive(); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/NetworkInterface.java gcc-4.6.0/libjava/classpath/java/net/NetworkInterface.java *** gcc-4.5.2/libjava/classpath/java/net/NetworkInterface.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/NetworkInterface.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 59,70 **** public final class NetworkInterface { private final VMNetworkInterface netif; ! private NetworkInterface(VMNetworkInterface netif) { this.netif = netif; } ! /** Creates an NetworkInterface instance which * represents any interface in the system. Its only * address is 0.0.0.0/0.0.0.0. This --- 59,70 ---- public final class NetworkInterface { private final VMNetworkInterface netif; ! private NetworkInterface(VMNetworkInterface netif) { this.netif = netif; } ! /** Creates an NetworkInterface instance which * represents any interface in the system. Its only * address is 0.0.0.0/0.0.0.0. This *************** public final class NetworkInterface *** 74,80 **** { return new NetworkInterface(new VMNetworkInterface()); } ! /** * Returns the name of the network interface * --- 74,80 ---- { return new NetworkInterface(new VMNetworkInterface()); } ! /** * Returns the name of the network interface * *************** public final class NetworkInterface *** 109,124 **** for (Enumeration addresses = inetAddresses.elements(); addresses.hasMoreElements();) { ! InetAddress addr = addresses.nextElement(); ! try ! { ! s.checkConnect(addr.getHostAddress(), -1); ! tmpInetAddresses.add(addr); ! } ! catch (SecurityException e) ! { ! // Ignore. ! } } return tmpInetAddresses.elements(); --- 109,124 ---- for (Enumeration addresses = inetAddresses.elements(); addresses.hasMoreElements();) { ! InetAddress addr = addresses.nextElement(); ! try ! { ! s.checkConnect(addr.getHostAddress(), -1); ! tmpInetAddresses.add(addr); ! } ! catch (SecurityException e) ! { ! // Ignore. ! } } return tmpInetAddresses.elements(); *************** public final class NetworkInterface *** 138,144 **** * Returns an network interface by name * * @param name The name of the interface to return ! * * @return a NetworkInterface object representing the interface, * or null if there is no interface with that name. * --- 138,144 ---- * Returns an network interface by name * * @param name The name of the interface to return ! * * @return a NetworkInterface object representing the interface, * or null if there is no interface with that name. * *************** public final class NetworkInterface *** 187,200 **** * Return an Enumeration of all available network interfaces * * @return all interfaces ! * * @exception SocketException If an error occurs */ public static Enumeration getNetworkInterfaces() throws SocketException { VMNetworkInterface[] netifs = VMNetworkInterface.getVMInterfaces(); ! Vector networkInterfaces = new Vector(netifs.length); for (int i = 0; i < netifs.length; i++) { --- 187,200 ---- * Return an Enumeration of all available network interfaces * * @return all interfaces ! * * @exception SocketException If an error occurs */ public static Enumeration getNetworkInterfaces() throws SocketException { VMNetworkInterface[] netifs = VMNetworkInterface.getVMInterfaces(); ! Vector networkInterfaces = new Vector(netifs.length); for (int i = 0; i < netifs.length; i++) { *************** public final class NetworkInterface *** 217,223 **** return false; NetworkInterface tmp = (NetworkInterface) obj; ! if (netif.name == null) return tmp.netif.name == null; --- 217,223 ---- return false; NetworkInterface tmp = (NetworkInterface) obj; ! if (netif.name == null) return tmp.netif.name == null; *************** public final class NetworkInterface *** 234,243 **** { // FIXME: hash correctly int hc = netif.addresses.hashCode(); ! if (netif.name != null) hc += netif.name.hashCode(); ! return hc; } --- 234,243 ---- { // FIXME: hash correctly int hc = netif.addresses.hashCode(); ! if (netif.name != null) hc += netif.name.hashCode(); ! return hc; } *************** public final class NetworkInterface *** 253,259 **** String separator = SystemProperties.getProperty("line.separator"); result = new CPStringBuilder(); ! result.append("name: "); result.append(getDisplayName()); result.append(" (").append(getName()).append(") addresses:"); --- 253,259 ---- String separator = SystemProperties.getProperty("line.separator"); result = new CPStringBuilder(); ! result.append("name: "); result.append(getDisplayName()); result.append(" (").append(getName()).append(") addresses:"); *************** public final class NetworkInterface *** 261,268 **** for (Iterator it = netif.addresses.iterator(); it.hasNext(); ) { ! InetAddress address = (InetAddress) it.next(); ! result.append(address.toString()).append(";").append(separator); } return result.toString(); --- 261,268 ---- for (Iterator it = netif.addresses.iterator(); it.hasNext(); ) { ! InetAddress address = (InetAddress) it.next(); ! result.append(address.toString()).append(";").append(separator); } return result.toString(); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/Proxy.java gcc-4.6.0/libjava/classpath/java/net/Proxy.java *** gcc-4.5.2/libjava/classpath/java/net/Proxy.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/net/Proxy.java Tue Jan 11 19:46:05 2011 *************** package java.net; *** 41,47 **** /** * Defines a proxy setting. This setting contains a type (https, socks, * direct) and a socket address. ! * * @since 1.5 */ public class Proxy --- 41,47 ---- /** * Defines a proxy setting. This setting contains a type (https, socks, * direct) and a socket address. ! * * @since 1.5 */ public class Proxy *************** public class Proxy *** 49,56 **** /** * Represents the proxy type. */ ! public enum Type ! { DIRECT, HTTP, SOCKS; /** --- 49,56 ---- /** * Represents the proxy type. */ ! public enum Type ! { DIRECT, HTTP, SOCKS; /** *************** public class Proxy *** 112,119 **** Proxy tmp = (Proxy) obj; return (type.equals(tmp.type) ! && (address == null ? tmp.address == null ! : address.equals(tmp.address))); } /** --- 112,119 ---- Proxy tmp = (Proxy) obj; return (type.equals(tmp.type) ! && (address == null ? tmp.address == null ! : address.equals(tmp.address))); } /** *************** public class Proxy *** 134,139 **** public String toString() { return type.toString() + (address == null ? "" ! : (":" + address.toString())); } } --- 134,139 ---- public String toString() { return type.toString() + (address == null ? "" ! : (":" + address.toString())); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/ProxySelector.java gcc-4.6.0/libjava/classpath/java/net/ProxySelector.java *** gcc-4.5.2/libjava/classpath/java/net/ProxySelector.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/net/ProxySelector.java Tue Jan 11 19:46:05 2011 *************** import java.util.List; *** 44,50 **** /** * Class for handling proxies for different connections. ! * * @since 1.5 */ public abstract class ProxySelector --- 44,50 ---- /** * Class for handling proxies for different connections. ! * * @since 1.5 */ public abstract class ProxySelector *************** public abstract class ProxySelector *** 100,116 **** /** * Signals to the selector that a proxy was no available. ! * * @throws IllegalArgumentException If one argument is null */ public abstract void connectFailed(URI uri, SocketAddress address, ! IOException exception); /** * Returns the list of proxy settings for a given URI. * * @return list of proxy settings ! * * @throws IllegalArgumentException If uri is null */ public abstract List select(URI uri); --- 100,116 ---- /** * Signals to the selector that a proxy was no available. ! * * @throws IllegalArgumentException If one argument is null */ public abstract void connectFailed(URI uri, SocketAddress address, ! IOException exception); /** * Returns the list of proxy settings for a given URI. * * @return list of proxy settings ! * * @throws IllegalArgumentException If uri is null */ public abstract List select(URI uri); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/ResolverCache.java gcc-4.6.0/libjava/classpath/java/net/ResolverCache.java *** gcc-4.5.2/libjava/classpath/java/net/ResolverCache.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/net/ResolverCache.java Tue Jan 11 19:46:05 2011 *************** class ResolverCache *** 119,139 **** Entry entry = get(key); if (entry != null) { ! if (entry.value == null) ! throw new UnknownHostException(); ! return (String) entry.value; } try { ! String hostname = VMInetAddress.getHostByAddr(addr); ! put(new Entry(key, hostname)); ! return hostname; } catch (UnknownHostException e) { ! put(new Entry(key, null)); ! throw e; } } --- 119,139 ---- Entry entry = get(key); if (entry != null) { ! if (entry.value == null) ! throw new UnknownHostException(); ! return (String) entry.value; } try { ! String hostname = VMInetAddress.getHostByAddr(addr); ! put(new Entry(key, hostname)); ! return hostname; } catch (UnknownHostException e) { ! put(new Entry(key, null)); ! throw e; } } *************** class ResolverCache *** 152,172 **** Entry entry = get(hostname); if (entry != null) { ! if (entry.value == null) ! throw new UnknownHostException(); ! return (byte[][]) entry.value; } try { ! byte[][] addrs = VMInetAddress.getHostByName(hostname); ! put(new Entry(hostname, addrs)); ! return addrs; } catch (UnknownHostException e) { ! put(new Entry(hostname, null)); ! throw e; } } --- 152,172 ---- Entry entry = get(hostname); if (entry != null) { ! if (entry.value == null) ! throw new UnknownHostException(); ! return (byte[][]) entry.value; } try { ! byte[][] addrs = VMInetAddress.getHostByName(hostname); ! put(new Entry(hostname, addrs)); ! return addrs; } catch (UnknownHostException e) { ! put(new Entry(hostname, null)); ! throw e; } } *************** class ResolverCache *** 201,209 **** reap(); if (entry.expires != 0) { ! if (entry.expires != -1) ! killqueue.add(entry); ! cache.put(entry.key, entry); } } --- 201,209 ---- reap(); if (entry.expires != 0) { ! if (entry.expires != -1) ! killqueue.add(entry); ! cache.put(entry.key, entry); } } *************** class ResolverCache *** 215,234 **** { if (!killqueue.isEmpty()) { ! long now = System.currentTimeMillis(); ! Iterator iter = killqueue.iterator(); ! while (iter.hasNext()) ! { ! Entry entry = (Entry) iter.next(); ! if (entry.expires > now) ! break; ! cache.remove(entry.key); ! iter.remove(); ! } } } ! /** * An entry in the cache. */ --- 215,234 ---- { if (!killqueue.isEmpty()) { ! long now = System.currentTimeMillis(); ! Iterator iter = killqueue.iterator(); ! while (iter.hasNext()) ! { ! Entry entry = (Entry) iter.next(); ! if (entry.expires > now) ! break; ! cache.remove(entry.key); ! iter.remove(); ! } } } ! /** * An entry in the cache. */ *************** class ResolverCache *** 243,249 **** * The entry itself. A null value indicates a failed lookup. */ public final Object value; ! /** * The time when this cache entry expires. If set to -1 then * this entry will never expire. If set to 0 then this entry --- 243,249 ---- * The entry itself. A null value indicates a failed lookup. */ public final Object value; ! /** * The time when this cache entry expires. If set to -1 then * this entry will never expire. If set to 0 then this entry *************** class ResolverCache *** 261,269 **** int ttl = value != null ? POSITIVE_TTL : NEGATIVE_TTL; if (ttl < 1) ! expires = ttl; else ! expires = System.currentTimeMillis() + ttl * 1000; } } } --- 261,269 ---- int ttl = value != null ? POSITIVE_TTL : NEGATIVE_TTL; if (ttl < 1) ! expires = ttl; else ! expires = System.currentTimeMillis() + ttl * 1000; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/ServerSocket.java gcc-4.6.0/libjava/classpath/java/net/ServerSocket.java *** gcc-4.5.2/libjava/classpath/java/net/ServerSocket.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/net/ServerSocket.java Tue Jan 11 19:46:05 2011 *************** public class ServerSocket *** 247,254 **** try { ! impl.bind(addr, port); ! impl.listen(backlog); this.port = port; local = new InetSocketAddress( (InetAddress) impl.getOption(SocketOptions.SO_BINDADDR), --- 247,254 ---- try { ! impl.bind(addr, port); ! impl.listen(backlog); this.port = port; local = new InetSocketAddress( (InetAddress) impl.getOption(SocketOptions.SO_BINDADDR), *************** public class ServerSocket *** 259,265 **** try { if (local == null) ! close(); } catch (IOException _) { --- 259,265 ---- try { if (local == null) ! close(); } catch (IOException _) { *************** public class ServerSocket *** 297,303 **** * Returns the local socket address * * @return the local socket address, null if not bound ! * * @since 1.4 */ public SocketAddress getLocalSocketAddress() --- 297,303 ---- * Returns the local socket address * * @return the local socket address, null if not bound ! * * @since 1.4 */ public SocketAddress getLocalSocketAddress() *************** public class ServerSocket *** 326,358 **** try { ! implAccept(socket); } catch (IOException e) { ! try ! { ! socket.close(); ! } ! catch (IOException e2) ! { ! // Ignore. ! } ! throw e; } catch (SecurityException e) { ! try ! { ! socket.close(); ! } ! catch (IOException e2) ! { ! // Ignore. ! } ! throw e; } return socket; --- 326,358 ---- try { ! implAccept(socket); } catch (IOException e) { ! try ! { ! socket.close(); ! } ! catch (IOException e2) ! { ! // Ignore. ! } ! throw e; } catch (SecurityException e) { ! try ! { ! socket.close(); ! } ! catch (IOException e2) ! { ! // Ignore. ! } ! throw e; } return socket; *************** public class ServerSocket *** 391,397 **** SecurityManager sm = System.getSecurityManager(); if (sm != null) sm.checkAccept(socket.getInetAddress().getHostAddress(), ! socket.getPort()); } /** --- 391,397 ---- SecurityManager sm = System.getSecurityManager(); if (sm != null) sm.checkAccept(socket.getInetAddress().getHostAddress(), ! socket.getPort()); } /** *************** public class ServerSocket *** 416,422 **** * by ServerSocketChannel.open().

                    * * @return the associated socket channel, null if none exists ! * * @since 1.4 */ public ServerSocketChannel getChannel() --- 416,422 ---- * by ServerSocketChannel.open().

                    * * @return the associated socket channel, null if none exists ! * * @since 1.4 */ public ServerSocketChannel getChannel() *************** public class ServerSocket *** 428,434 **** * Returns true when the socket is bound, otherwise false * * @return true if socket is bound, false otherwise ! * * @since 1.4 */ public boolean isBound() --- 428,434 ---- * Returns true when the socket is bound, otherwise false * * @return true if socket is bound, false otherwise ! * * @since 1.4 */ public boolean isBound() *************** public class ServerSocket *** 440,446 **** * Returns true if the socket is closed, otherwise false * * @return true if socket is closed, false otherwise ! * * @since 1.4 */ public boolean isClosed() --- 440,446 ---- * Returns true if the socket is closed, otherwise false * * @return true if socket is closed, false otherwise ! * * @since 1.4 */ public boolean isClosed() *************** public class ServerSocket *** 501,507 **** * Enables/Disables the SO_REUSEADDR option * * @param on true if SO_REUSEADDR should be enabled, false otherwise ! * * @exception SocketException If an error occurs * * @since 1.4 --- 501,507 ---- * Enables/Disables the SO_REUSEADDR option * * @param on true if SO_REUSEADDR should be enabled, false otherwise ! * * @exception SocketException If an error occurs * * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/Socket.java gcc-4.6.0/libjava/classpath/java/net/Socket.java *** gcc-4.5.2/libjava/classpath/java/net/Socket.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/net/Socket.java Tue Jan 11 19:46:05 2011 *************** public class Socket *** 377,399 **** // bind to address/port try { ! getImpl().bind(tmp.getAddress(), tmp.getPort()); ! bound = true; } catch (IOException exception) { ! close(); ! throw exception; } catch (RuntimeException exception) { ! close(); ! throw exception; } catch (Error error) { ! close(); ! throw error; } } --- 377,399 ---- // bind to address/port try { ! getImpl().bind(tmp.getAddress(), tmp.getPort()); ! bound = true; } catch (IOException exception) { ! close(); ! throw exception; } catch (RuntimeException exception) { ! close(); ! throw exception; } catch (Error error) { ! close(); ! throw error; } } *************** public class Socket *** 467,477 **** try { ! return getImpl().getInetAddress(); } catch (SocketException e) { ! // This cannot happen as we are connected. } return null; --- 467,477 ---- try { ! return getImpl().getInetAddress(); } catch (SocketException e) { ! // This cannot happen as we are connected. } return null; *************** public class Socket *** 495,501 **** if (impl instanceof PlainSocketImpl) addr = ((PlainSocketImpl) impl).getLocalAddress().getAddress(); ! if (addr == null) { try --- 495,501 ---- if (impl instanceof PlainSocketImpl) addr = ((PlainSocketImpl) impl).getLocalAddress().getAddress(); ! if (addr == null) { try *************** public class Socket *** 536,546 **** try { ! return getImpl().getPort(); } catch (SocketException e) { ! // This cannot happen as we are connected. } return 0; --- 536,546 ---- try { ! return getImpl().getPort(); } catch (SocketException e) { ! // This cannot happen as we are connected. } return 0; *************** public class Socket *** 559,570 **** try { ! if (getImpl() != null) ! return getImpl().getLocalPort(); } catch (SocketException e) { ! // This cannot happen as we are bound. } return -1; --- 559,570 ---- try { ! if (getImpl() != null) ! return getImpl().getLocalPort(); } catch (SocketException e) { ! // This cannot happen as we are bound. } return -1; *************** public class Socket *** 586,597 **** try { ! return new InetSocketAddress(addr, getImpl().getLocalPort()); } catch (SocketException e) { ! // This cannot happen as we are bound. ! return null; } } --- 586,597 ---- try { ! return new InetSocketAddress(addr, getImpl().getLocalPort()); } catch (SocketException e) { ! // This cannot happen as we are bound. ! return null; } } *************** public class Socket *** 609,621 **** try { ! return new InetSocketAddress(getImpl().getInetAddress(), ! getImpl().getPort()); } catch (SocketException e) { ! // This cannot happen as we are connected. ! return null; } } --- 609,621 ---- try { ! return new InetSocketAddress(getImpl().getInetAddress(), ! getImpl().getPort()); } catch (SocketException e) { ! // This cannot happen as we are connected. ! return null; } } *************** public class Socket *** 721,733 **** if (on) { ! if (linger < 0) ! throw new IllegalArgumentException("SO_LINGER must be >= 0"); ! if (linger > 65535) ! linger = 65535; ! getImpl().setOption(SocketOptions.SO_LINGER, Integer.valueOf(linger)); } else getImpl().setOption(SocketOptions.SO_LINGER, Integer.valueOf(-1)); --- 721,733 ---- if (on) { ! if (linger < 0) ! throw new IllegalArgumentException("SO_LINGER must be >= 0"); ! if (linger > 65535) ! linger = 65535; ! getImpl().setOption(SocketOptions.SO_LINGER, Integer.valueOf(linger)); } else getImpl().setOption(SocketOptions.SO_LINGER, Integer.valueOf(-1)); *************** public class Socket *** 1034,1048 **** { try { ! if (isConnected()) ! return (super.toString() + " [addr=" + getImpl().getInetAddress() + ",port=" ! + getImpl().getPort() + ",localport=" ! + getImpl().getLocalPort() + "]"); } catch (SocketException e) { ! // This cannot happen as we are connected. } return super.toString() + " [unconnected]"; --- 1034,1048 ---- { try { ! if (isConnected()) ! return (super.toString() + " [addr=" + getImpl().getInetAddress() + ",port=" ! + getImpl().getPort() + ",localport=" ! + getImpl().getLocalPort() + "]"); } catch (SocketException e) { ! // This cannot happen as we are connected. } return super.toString() + " [unconnected]"; *************** public class Socket *** 1225,1231 **** { if (impl == null) return false; ! return impl.getInetAddress() != null; } --- 1225,1231 ---- { if (impl == null) return false; ! return impl.getInetAddress() != null; } *************** public class Socket *** 1242,1248 **** return false; if (impl instanceof PlainSocketImpl) { ! InetSocketAddress addr = ((PlainSocketImpl) impl).getLocalAddress(); return addr != null && addr.getAddress() != null; } return bound; --- 1242,1248 ---- return false; if (impl instanceof PlainSocketImpl) { ! InetSocketAddress addr = ((PlainSocketImpl) impl).getLocalAddress(); return addr != null && addr.getAddress() != null; } return bound; *************** public class Socket *** 1258,1264 **** public boolean isClosed() { SocketChannel channel = getChannel(); ! return impl == null || (channel != null && ! channel.isOpen()); } --- 1258,1264 ---- public boolean isClosed() { SocketChannel channel = getChannel(); ! return impl == null || (channel != null && ! channel.isOpen()); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/SocketPermission.java gcc-4.6.0/libjava/classpath/java/net/SocketPermission.java *** gcc-4.5.2/libjava/classpath/java/net/SocketPermission.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/SocketPermission.java Tue Jan 11 19:46:05 2011 *************** public final class SocketPermission exte *** 127,135 **** /** * An IP address (IPv4 or IPv6). Will be set if and only if this * object was initialized with a single literal IP address. ! */ private transient InetAddress address = null; ! /** * A range of ports. */ --- 127,135 ---- /** * An IP address (IPv4 or IPv6). Will be set if and only if this * object was initialized with a single literal IP address. ! */ private transient InetAddress address = null; ! /** * A range of ports. */ *************** public final class SocketPermission exte *** 199,237 **** boolean colon_allowed = true; for (int i = 0; i < hostport.length(); i++) { ! if (hostport.charAt(i) == ':') ! { ! if (!colon_allowed) ! throw new IllegalArgumentException("Ambiguous hostport part"); ! colons++; ! colon_allowed = false; ! } ! else ! colon_allowed = true; } switch (colons) { case 0: case 1: ! // a hostname or IPv4 address ! return hostport; ! case 7: ! // an IPv6 address with no ports ! return "[" + hostport + "]"; case 8: ! // an IPv6 address with ports ! int last_colon = hostport.lastIndexOf(':'); ! return "[" + hostport.substring(0, last_colon) + "]" ! + hostport.substring(last_colon); default: ! throw new IllegalArgumentException("Ambiguous hostport part"); } } ! /** * Parse the hostport argument to the constructor. */ --- 199,237 ---- boolean colon_allowed = true; for (int i = 0; i < hostport.length(); i++) { ! if (hostport.charAt(i) == ':') ! { ! if (!colon_allowed) ! throw new IllegalArgumentException("Ambiguous hostport part"); ! colons++; ! colon_allowed = false; ! } ! else ! colon_allowed = true; } switch (colons) { case 0: case 1: ! // a hostname or IPv4 address ! return hostport; ! case 7: ! // an IPv6 address with no ports ! return "[" + hostport + "]"; case 8: ! // an IPv6 address with ports ! int last_colon = hostport.lastIndexOf(':'); ! return "[" + hostport.substring(0, last_colon) + "]" ! + hostport.substring(last_colon); default: ! throw new IllegalArgumentException("Ambiguous hostport part"); } } ! /** * Parse the hostport argument to the constructor. */ *************** public final class SocketPermission exte *** 241,330 **** String host, ports; if (hostport.charAt(0) == '[') { ! // host is a bracketed IPv6 address ! int end = hostport.indexOf("]"); ! if (end == -1) ! throw new IllegalArgumentException("Unmatched '['"); ! host = hostport.substring(1, end); ! address = InetAddress.getByLiteral(host); ! if (address == null) ! throw new IllegalArgumentException("Bad IPv6 address"); ! if (end == hostport.length() - 1) ! ports = ""; ! else if (hostport.charAt(end + 1) == ':') ! ports = hostport.substring(end + 2); ! else ! throw new IllegalArgumentException("Bad character after ']'"); } else { ! // host is a hostname or IPv4 address ! int sep = hostport.indexOf(":"); ! if (sep == -1) ! { ! host = hostport; ! ports = ""; ! } ! else ! { ! host = hostport.substring(0, sep); ! ports = hostport.substring(sep + 1); ! } ! address = InetAddress.getByLiteral(host); ! if (address == null) ! { ! if (host.lastIndexOf('*') > 0) ! throw new IllegalArgumentException("Bad hostname"); ! hostname = host; ! } } // Parse and validate the ports if (ports.length() == 0) { ! minport = MIN_PORT; ! maxport = MAX_PORT; } else { ! int sep = ports.indexOf("-"); ! if (sep == -1) ! { ! // a single port ! minport = maxport = Integer.parseInt(ports); ! } ! else ! { ! if (ports.indexOf("-", sep + 1) != -1) ! throw new IllegalArgumentException("Unexpected '-'"); ! if (sep == 0) ! { ! // an upper bound ! minport = MIN_PORT; ! maxport = Integer.parseInt(ports.substring(1)); ! } ! else if (sep == ports.length() - 1) ! { ! // a lower bound ! minport = ! Integer.parseInt(ports.substring(0, ports.length() - 1)); ! maxport = MAX_PORT; ! } ! else ! { ! // a range with two bounds ! minport = Integer.parseInt(ports.substring(0, sep)); ! maxport = Integer.parseInt(ports.substring(sep + 1)); ! } ! } } } ! /** * Parse the actions argument to the constructor. */ --- 241,330 ---- String host, ports; if (hostport.charAt(0) == '[') { ! // host is a bracketed IPv6 address ! int end = hostport.indexOf("]"); ! if (end == -1) ! throw new IllegalArgumentException("Unmatched '['"); ! host = hostport.substring(1, end); ! address = InetAddress.getByLiteral(host); ! if (address == null) ! throw new IllegalArgumentException("Bad IPv6 address"); ! if (end == hostport.length() - 1) ! ports = ""; ! else if (hostport.charAt(end + 1) == ':') ! ports = hostport.substring(end + 2); ! else ! throw new IllegalArgumentException("Bad character after ']'"); } else { ! // host is a hostname or IPv4 address ! int sep = hostport.indexOf(":"); ! if (sep == -1) ! { ! host = hostport; ! ports = ""; ! } ! else ! { ! host = hostport.substring(0, sep); ! ports = hostport.substring(sep + 1); ! } ! address = InetAddress.getByLiteral(host); ! if (address == null) ! { ! if (host.lastIndexOf('*') > 0) ! throw new IllegalArgumentException("Bad hostname"); ! hostname = host; ! } } // Parse and validate the ports if (ports.length() == 0) { ! minport = MIN_PORT; ! maxport = MAX_PORT; } else { ! int sep = ports.indexOf("-"); ! if (sep == -1) ! { ! // a single port ! minport = maxport = Integer.parseInt(ports); ! } ! else ! { ! if (ports.indexOf("-", sep + 1) != -1) ! throw new IllegalArgumentException("Unexpected '-'"); ! if (sep == 0) ! { ! // an upper bound ! minport = MIN_PORT; ! maxport = Integer.parseInt(ports.substring(1)); ! } ! else if (sep == ports.length() - 1) ! { ! // a lower bound ! minport = ! Integer.parseInt(ports.substring(0, ports.length() - 1)); ! maxport = MAX_PORT; ! } ! else ! { ! // a range with two bounds ! minport = Integer.parseInt(ports.substring(0, sep)); ! maxport = Integer.parseInt(ports.substring(sep + 1)); ! } ! } } } ! /** * Parse the actions argument to the constructor. */ *************** public final class SocketPermission exte *** 334,351 **** boolean resolve_needed = false; boolean resolve_present = false; ! StringTokenizer t = new StringTokenizer(actionstring, ","); while (t.hasMoreTokens()) { ! String action = t.nextToken(); ! action = action.trim().toLowerCase(); ! setAction(action); ! if (action.equals("resolve")) ! resolve_present = true; ! else ! resolve_needed = true; } if (resolve_needed && !resolve_present) --- 334,351 ---- boolean resolve_needed = false; boolean resolve_present = false; ! StringTokenizer t = new StringTokenizer(actionstring, ","); while (t.hasMoreTokens()) { ! String action = t.nextToken(); ! action = action.trim().toLowerCase(); ! setAction(action); ! if (action.equals("resolve")) ! resolve_present = true; ! else ! resolve_needed = true; } if (resolve_needed && !resolve_present) *************** public final class SocketPermission exte *** 359,369 **** { for (int i = 0; i < ACTIONS.length; i++) { ! if (action.equals(ACTIONS[i])) ! { ! actionmask |= 1 << i; ! return; ! } } throw new IllegalArgumentException("Unknown action " + action); } --- 359,369 ---- { for (int i = 0; i < ACTIONS.length; i++) { ! if (action.equals(ACTIONS[i])) ! { ! actionmask |= 1 << i; ! return; ! } } throw new IllegalArgumentException("Unknown action " + action); } *************** public final class SocketPermission exte *** 389,411 **** return false; if (p.actionmask != actionmask || ! p.minport != minport || ! p.maxport != maxport) return false; if (address != null) { ! if (p.address == null) ! return false; ! else ! return p.address.equals(address); } else { ! if (p.hostname == null) ! return false; ! else ! return p.hostname.equals(hostname); } } --- 389,411 ---- return false; if (p.actionmask != actionmask || ! p.minport != minport || ! p.maxport != maxport) return false; if (address != null) { ! if (p.address == null) ! return false; ! else ! return p.address.equals(address); } else { ! if (p.hostname == null) ! return false; ! else ! return p.hostname.equals(hostname); } } *************** public final class SocketPermission exte *** 437,448 **** for (int i = 0; i < ACTIONS.length; i++) { ! if ((actionmask & (1 << i)) != 0) ! { ! if (sb.length() != 0) ! sb.append(","); ! sb.append(ACTIONS[i]); ! } } return sb.toString(); --- 437,448 ---- for (int i = 0; i < ACTIONS.length; i++) { ! if ((actionmask & (1 << i)) != 0) ! { ! if (sb.length() != 0) ! sb.append(","); ! sb.append(ACTIONS[i]); ! } } return sb.toString(); *************** public final class SocketPermission exte *** 471,481 **** try { ! return InetAddress.getAllByName(hostname); } catch (UnknownHostException e) { ! return new InetAddress[0]; } } --- 471,481 ---- try { ! return InetAddress.getAllByName(hostname); } catch (UnknownHostException e) { ! return new InetAddress[0]; } } *************** public final class SocketPermission exte *** 491,508 **** return null; try { ! return InetAddress.getByName(hostname).internalGetCanonicalHostName(); } catch (UnknownHostException e) { ! return null; } } ! /** * Returns true if the permission object passed it is implied by the * this permission. This will be true if: ! * *
                      *
                    • The argument is of type SocketPermission
                    • *
                    • The actions list of the argument are in this object's actions
                    • --- 491,508 ---- return null; try { ! return InetAddress.getByName(hostname).internalGetCanonicalHostName(); } catch (UnknownHostException e) { ! return null; } } ! /** * Returns true if the permission object passed it is implied by the * this permission. This will be true if: ! * *
                        *
                      • The argument is of type SocketPermission
                      • *
                      • The actions list of the argument are in this object's actions
                      • *************** public final class SocketPermission exte *** 511,517 **** *
                      * *

                      The argument's hostname will be a subset of this object's hostname if:

                      ! * *
                        *
                      • The argument's hostname or IP address is equal to this object's.
                      • *
                      • The argument's canonical hostname is equal to this object's.
                      • --- 511,517 ---- *
                      * *

                      The argument's hostname will be a subset of this object's hostname if:

                      ! * *
                        *
                      • The argument's hostname or IP address is equal to this object's.
                      • *
                      • The argument's canonical hostname is equal to this object's.
                      • *************** public final class SocketPermission exte *** 538,547 **** // imply it. This is not part of the spec, but it seems necessary. if (p.hostname != null && p.hostname.length() == 0) return false; ! // Next check the actions if ((p.actionmask & actionmask) != p.actionmask) ! return false; // Then check the ports if ((p.minport < minport) || (p.maxport > maxport)) --- 538,547 ---- // imply it. This is not part of the spec, but it seems necessary. if (p.hostname != null && p.hostname.length() == 0) return false; ! // Next check the actions if ((p.actionmask & actionmask) != p.actionmask) ! return false; // Then check the ports if ((p.minport < minport) || (p.maxport > maxport)) *************** public final class SocketPermission exte *** 554,602 **** // IP address which one of p's IP addresses is equal to. if (address != null) { ! InetAddress[] addrs = p.getAddresses(); ! for (int i = 0; i < addrs.length; i++) ! { ! if (address.equals(addrs[i])) ! return true; ! } } // Return true if this object is a wildcarded domain that // p's canonical name matches. if (hostname != null && hostname.charAt(0) == '*') { ! p_canon = p.getCanonicalHostName(); ! if (p_canon != null && p_canon.endsWith(hostname.substring(1))) ! return true; ! } // Return true if this one of this object's IP addresses // is equal to one of p's. if (address == null) { ! InetAddress[] addrs = p.getAddresses(); ! InetAddress[] p_addrs = p.getAddresses(); ! for (int i = 0; i < addrs.length; i++) ! { ! for (int j = 0; j < p_addrs.length; j++) ! { ! if (addrs[i].equals(p_addrs[j])) ! return true; ! } ! } } // Return true if this object's canonical name equals p's. String canon = getCanonicalHostName(); if (canon != null) { ! if (p_canon == null) ! p_canon = p.getCanonicalHostName(); ! if (p_canon != null && canon.equals(p_canon)) ! return true; } // Didn't make it --- 554,602 ---- // IP address which one of p's IP addresses is equal to. if (address != null) { ! InetAddress[] addrs = p.getAddresses(); ! for (int i = 0; i < addrs.length; i++) ! { ! if (address.equals(addrs[i])) ! return true; ! } } // Return true if this object is a wildcarded domain that // p's canonical name matches. if (hostname != null && hostname.charAt(0) == '*') { ! p_canon = p.getCanonicalHostName(); ! if (p_canon != null && p_canon.endsWith(hostname.substring(1))) ! return true; ! } // Return true if this one of this object's IP addresses // is equal to one of p's. if (address == null) { ! InetAddress[] addrs = p.getAddresses(); ! InetAddress[] p_addrs = p.getAddresses(); ! for (int i = 0; i < addrs.length; i++) ! { ! for (int j = 0; j < p_addrs.length; j++) ! { ! if (addrs[i].equals(p_addrs[j])) ! return true; ! } ! } } // Return true if this object's canonical name equals p's. String canon = getCanonicalHostName(); if (canon != null) { ! if (p_canon == null) ! p_canon = p.getCanonicalHostName(); ! if (p_canon != null && canon.equals(p_canon)) ! return true; } // Didn't make it diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/URI.java gcc-4.6.0/libjava/classpath/java/net/URI.java *** gcc-4.5.2/libjava/classpath/java/net/URI.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/URI.java Tue Jan 11 19:46:05 2011 *************** import java.util.regex.Pattern; *** 49,55 **** /** *

                        ! * A URI instance represents that defined by * RFC3986, * with some deviations. *

                        --- 49,55 ---- /** *

                        ! * A URI instance represents that defined by * RFC3986, * with some deviations. *

                        *************** import java.util.regex.Pattern; *** 157,163 **** * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.4 */ ! public final class URI implements Comparable, Serializable { /** --- 157,163 ---- * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.4 */ ! public final class URI implements Comparable, Serializable { /** *************** public final class URI *** 193,199 **** private static final String RFC3986_SUBDELIMS = "!$&'()*+,;="; private static final String RFC3986_REG_NAME = RFC3986_UNRESERVED + RFC3986_SUBDELIMS + "%"; ! private static final String RFC3986_PCHAR = RFC3986_UNRESERVED + RFC3986_SUBDELIMS + ":@%"; private static final String RFC3986_SEGMENT = RFC3986_PCHAR; private static final String RFC3986_PATH_SEGMENTS = RFC3986_SEGMENT + "/"; --- 193,199 ---- private static final String RFC3986_SUBDELIMS = "!$&'()*+,;="; private static final String RFC3986_REG_NAME = RFC3986_UNRESERVED + RFC3986_SUBDELIMS + "%"; ! private static final String RFC3986_PCHAR = RFC3986_UNRESERVED + RFC3986_SUBDELIMS + ":@%"; private static final String RFC3986_SEGMENT = RFC3986_PCHAR; private static final String RFC3986_PATH_SEGMENTS = RFC3986_SEGMENT + "/"; *************** public final class URI *** 230,236 **** * Index of fragment component in parsed URI. */ private static final int FRAGMENT_GROUP = 10; ! /** * Index of userinfo component in parsed authority section. */ --- 230,236 ---- * Index of fragment component in parsed URI. */ private static final int FRAGMENT_GROUP = 10; ! /** * Index of userinfo component in parsed authority section. */ *************** public final class URI *** 294,312 **** this.string = (String) is.readObject(); try { ! parseURI(this.string); } catch (URISyntaxException x) { ! // Should not happen. ! throw new RuntimeException(x); } } private void writeObject(ObjectOutputStream os) throws IOException { if (string == null) ! string = toString(); os.writeObject(string); } --- 294,312 ---- this.string = (String) is.readObject(); try { ! parseURI(this.string); } catch (URISyntaxException x) { ! // Should not happen. ! throw new RuntimeException(x); } } private void writeObject(ObjectOutputStream os) throws IOException { if (string == null) ! string = toString(); os.writeObject(string); } *************** public final class URI *** 350,360 **** String matched = match.group(group); if (matched == null || matched.length() == 0) { ! String prevMatched = match.group(group -1); ! if (prevMatched == null || prevMatched.length() == 0) ! return null; ! else ! return ""; } return matched; } --- 350,360 ---- String matched = match.group(group); if (matched == null || matched.length() == 0) { ! String prevMatched = match.group(group -1); ! if (prevMatched == null || prevMatched.length() == 0) ! return null; ! else ! return ""; } return matched; } *************** public final class URI *** 369,391 **** private void parseURI(String str) throws URISyntaxException { Matcher matcher = URI_PATTERN.matcher(str); ! if (matcher.matches()) { ! scheme = getURIGroup(matcher, SCHEME_GROUP); ! rawSchemeSpecificPart = matcher.group(SCHEME_SPEC_PART_GROUP); ! schemeSpecificPart = unquote(rawSchemeSpecificPart); ! if (!isOpaque()) ! { ! rawAuthority = getURIGroup(matcher, AUTHORITY_GROUP); ! rawPath = matcher.group(PATH_GROUP); ! rawQuery = getURIGroup(matcher, QUERY_GROUP); ! } ! rawFragment = getURIGroup(matcher, FRAGMENT_GROUP); } else throw new URISyntaxException(str, ! "doesn't match URI regular expression"); parseServerAuthority(); // We must eagerly unquote the parts, because this is the only time --- 369,391 ---- private void parseURI(String str) throws URISyntaxException { Matcher matcher = URI_PATTERN.matcher(str); ! if (matcher.matches()) { ! scheme = getURIGroup(matcher, SCHEME_GROUP); ! rawSchemeSpecificPart = matcher.group(SCHEME_SPEC_PART_GROUP); ! schemeSpecificPart = unquote(rawSchemeSpecificPart); ! if (!isOpaque()) ! { ! rawAuthority = getURIGroup(matcher, AUTHORITY_GROUP); ! rawPath = matcher.group(PATH_GROUP); ! rawQuery = getURIGroup(matcher, QUERY_GROUP); ! } ! rawFragment = getURIGroup(matcher, FRAGMENT_GROUP); } else throw new URISyntaxException(str, ! "doesn't match URI regular expression"); parseServerAuthority(); // We must eagerly unquote the parts, because this is the only time *************** public final class URI *** 416,442 **** int pos = 0; for (int i = 0; i < str.length(); i++) { ! char c = str.charAt(i); ! if (c == '%') ! { ! if (i + 2 >= str.length()) ! throw new URISyntaxException(str, "Invalid quoted character"); ! int hi = Character.digit(str.charAt(++i), 16); ! int lo = Character.digit(str.charAt(++i), 16); ! if (lo < 0 || hi < 0) ! throw new URISyntaxException(str, "Invalid quoted character"); ! buf[pos++] = (byte) (hi * 16 + lo); ! } ! else ! buf[pos++] = (byte) c; } try { ! return new String(buf, 0, pos, "utf-8"); } catch (java.io.UnsupportedEncodingException x2) { ! throw (Error) new InternalError().initCause(x2); } } --- 416,442 ---- int pos = 0; for (int i = 0; i < str.length(); i++) { ! char c = str.charAt(i); ! if (c == '%') ! { ! if (i + 2 >= str.length()) ! throw new URISyntaxException(str, "Invalid quoted character"); ! int hi = Character.digit(str.charAt(++i), 16); ! int lo = Character.digit(str.charAt(++i), 16); ! if (lo < 0 || hi < 0) ! throw new URISyntaxException(str, "Invalid quoted character"); ! buf[pos++] = (byte) (hi * 16 + lo); ! } ! else ! buf[pos++] = (byte) c; } try { ! return new String(buf, 0, pos, "utf-8"); } catch (java.io.UnsupportedEncodingException x2) { ! throw (Error) new InternalError().initCause(x2); } } *************** public final class URI *** 488,503 **** CPStringBuilder sb = new CPStringBuilder(str.length()); for (int i = 0; i < str.length(); i++) { ! char c = str.charAt(i); ! if ((legalCharacters.indexOf(c) == -1) ! && (c <= 127)) ! { ! sb.append('%'); ! sb.append(HEX.charAt(c / 16)); ! sb.append(HEX.charAt(c % 16)); ! } ! else ! sb.append(c); } return sb.toString(); } --- 488,503 ---- CPStringBuilder sb = new CPStringBuilder(str.length()); for (int i = 0; i < str.length(); i++) { ! char c = str.charAt(i); ! if ((legalCharacters.indexOf(c) == -1) ! && (c <= 127)) ! { ! sb.append('%'); ! sb.append(HEX.charAt(c / 16)); ! sb.append(HEX.charAt(c % 16)); ! } ! else ! sb.append(c); } return sb.toString(); } *************** public final class URI *** 659,670 **** { try { ! return new URI(str); } catch (URISyntaxException e) { ! throw (IllegalArgumentException) new IllegalArgumentException() ! .initCause(e); } } --- 659,670 ---- { try { ! return new URI(str); } catch (URISyntaxException e) { ! throw (IllegalArgumentException) new IllegalArgumentException() ! .initCause(e); } } *************** public final class URI *** 686,717 **** { if (rawAuthority != null) { ! Matcher matcher = AUTHORITY_PATTERN.matcher(rawAuthority); ! if (matcher.matches()) ! { ! rawUserInfo = getURIGroup(matcher, AUTHORITY_USERINFO_GROUP); ! rawHost = getURIGroup(matcher, AUTHORITY_HOST_GROUP); ! ! String portStr = getURIGroup(matcher, AUTHORITY_PORT_GROUP); ! ! if (portStr != null && ! portStr.isEmpty()) ! try ! { ! port = Integer.parseInt(portStr); ! } ! catch (NumberFormatException e) ! { ! URISyntaxException use = ! new URISyntaxException ! (string, "doesn't match URI regular expression"); ! use.initCause(e); ! throw use; ! } ! } ! else ! throw new URISyntaxException(string, ! "doesn't match URI regular expression"); } return this; } --- 686,717 ---- { if (rawAuthority != null) { ! Matcher matcher = AUTHORITY_PATTERN.matcher(rawAuthority); ! if (matcher.matches()) ! { ! rawUserInfo = getURIGroup(matcher, AUTHORITY_USERINFO_GROUP); ! rawHost = getURIGroup(matcher, AUTHORITY_HOST_GROUP); ! ! String portStr = getURIGroup(matcher, AUTHORITY_PORT_GROUP); ! ! if (portStr != null && ! portStr.isEmpty()) ! try ! { ! port = Integer.parseInt(portStr); ! } ! catch (NumberFormatException e) ! { ! URISyntaxException use = ! new URISyntaxException ! (string, "doesn't match URI regular expression"); ! use.initCause(e); ! throw use; ! } ! } ! else ! throw new URISyntaxException(string, ! "doesn't match URI regular expression"); } return this; } *************** public final class URI *** 744,756 **** return this; try { ! return new URI(scheme, authority, normalizePath(path), query, ! fragment); } catch (URISyntaxException e) { ! throw (Error) new InternalError("Normalized URI variant could not "+ ! "be constructed").initCause(e); } } --- 744,756 ---- return this; try { ! return new URI(scheme, authority, normalizePath(path), query, ! fragment); } catch (URISyntaxException e) { ! throw (Error) new InternalError("Normalized URI variant could not "+ ! "be constructed").initCause(e); } } *************** public final class URI *** 770,782 **** * The resulting URI will be free of `.' and `..' segments, barring those * that were prepended or which couldn't be paired, respectively. *

                        ! * * @param relativePath the relative path to be normalized. * @return the normalized path. */ private String normalizePath(String relativePath) { ! /* This follows the algorithm in section 5.2.4. of RFC3986, but doesn't modify the input buffer. */ --- 770,782 ---- * The resulting URI will be free of `.' and `..' segments, barring those * that were prepended or which couldn't be paired, respectively. *

                        ! * * @param relativePath the relative path to be normalized. * @return the normalized path. */ private String normalizePath(String relativePath) { ! /* This follows the algorithm in section 5.2.4. of RFC3986, but doesn't modify the input buffer. */ *************** public final class URI *** 785,850 **** int start = 0; while (start < input.length()) { ! /* A */ ! if (input.indexOf("../",start) == start) ! { ! start += 3; ! continue; ! } ! if (input.indexOf("./",start) == start) ! { ! start += 2; ! continue; ! } ! /* B */ ! if (input.indexOf("/./",start) == start) ! { ! start += 2; ! continue; ! } ! if (input.indexOf("/.",start) == start ! && input.charAt(start + 2) != '.') ! { ! start += 1; ! input.setCharAt(start,'/'); ! continue; ! } ! /* C */ ! if (input.indexOf("/../",start) == start) ! { ! start += 3; ! removeLastSegment(output); ! continue; ! } ! if (input.indexOf("/..",start) == start) ! { ! start += 2; ! input.setCharAt(start,'/'); ! removeLastSegment(output); ! continue; ! } ! /* D */ ! if (start == input.length() - 1 && input.indexOf(".",start) == start) ! { ! input.delete(0,1); ! continue; ! } ! if (start == input.length() - 2 && input.indexOf("..",start) == start) ! { ! input.delete(0,2); ! continue; ! } ! /* E */ ! int indexOfSlash = input.indexOf("/",start); ! while (indexOfSlash == start) ! { ! output.append("/"); ! ++start; ! indexOfSlash = input.indexOf("/",start); ! } ! if (indexOfSlash == -1) ! indexOfSlash = input.length(); ! output.append(input.substring(start, indexOfSlash)); start = indexOfSlash; } return output.toString(); --- 785,850 ---- int start = 0; while (start < input.length()) { ! /* A */ ! if (input.indexOf("../",start) == start) ! { ! start += 3; ! continue; ! } ! if (input.indexOf("./",start) == start) ! { ! start += 2; ! continue; ! } ! /* B */ ! if (input.indexOf("/./",start) == start) ! { ! start += 2; ! continue; ! } ! if (input.indexOf("/.",start) == start ! && input.charAt(start + 2) != '.') ! { ! start += 1; ! input.setCharAt(start,'/'); ! continue; ! } ! /* C */ ! if (input.indexOf("/../",start) == start) ! { ! start += 3; ! removeLastSegment(output); ! continue; ! } ! if (input.indexOf("/..",start) == start) ! { ! start += 2; ! input.setCharAt(start,'/'); ! removeLastSegment(output); ! continue; ! } ! /* D */ ! if (start == input.length() - 1 && input.indexOf(".",start) == start) ! { ! input.delete(0,1); ! continue; ! } ! if (start == input.length() - 2 && input.indexOf("..",start) == start) ! { ! input.delete(0,2); ! continue; ! } ! /* E */ ! int indexOfSlash = input.indexOf("/",start); ! while (indexOfSlash == start) ! { ! output.append("/"); ! ++start; ! indexOfSlash = input.indexOf("/",start); ! } ! if (indexOfSlash == -1) ! indexOfSlash = input.length(); ! output.append(input.substring(start, indexOfSlash)); start = indexOfSlash; } return output.toString(); *************** public final class URI *** 890,922 **** try { ! if (fragment != null && path != null && path.equals("") ! && scheme == null && authority == null && query == null) ! return new URI(this.scheme, this.schemeSpecificPart, fragment); ! if (authority == null) ! { ! authority = this.authority; ! if (path == null) ! path = ""; ! if (! (path.startsWith("/"))) ! { ! CPStringBuilder basepath = new CPStringBuilder(this.path); ! int i = this.path.lastIndexOf('/'); ! if (i >= 0) ! basepath.delete(i + 1, basepath.length()); ! basepath.append(path); ! path = normalizePath(basepath.toString()); ! } ! } ! return new URI(this.scheme, authority, path, query, fragment); } catch (URISyntaxException e) { ! throw (Error) new InternalError("Resolved URI variant could not "+ ! "be constructed").initCause(e); } } --- 890,922 ---- try { ! if (fragment != null && path != null && path.equals("") ! && scheme == null && authority == null && query == null) ! return new URI(this.scheme, this.schemeSpecificPart, fragment); ! if (authority == null) ! { ! authority = this.authority; ! if (path == null) ! path = ""; ! if (! (path.startsWith("/"))) ! { ! CPStringBuilder basepath = new CPStringBuilder(this.path); ! int i = this.path.lastIndexOf('/'); ! if (i >= 0) ! basepath.delete(i + 1, basepath.length()); ! basepath.append(path); ! path = normalizePath(basepath.toString()); ! } ! } ! return new URI(this.scheme, authority, path, query, fragment); } catch (URISyntaxException e) { ! throw (Error) new InternalError("Resolved URI variant could not "+ ! "be constructed").initCause(e); } } *************** public final class URI *** 973,993 **** String basePath = rawPath; if (!(uri.getRawPath().equals(rawPath))) { ! if (!(basePath.endsWith("/"))) ! basePath = basePath.concat("/"); ! if (!(uri.getRawPath().startsWith(basePath))) ! return uri; } try { ! return new URI(null, null, ! uri.getRawPath().substring(basePath.length()), ! uri.getRawQuery(), uri.getRawFragment()); } catch (URISyntaxException e) { ! throw (Error) new InternalError("Relativized URI variant could not "+ ! "be constructed").initCause(e); } } --- 973,993 ---- String basePath = rawPath; if (!(uri.getRawPath().equals(rawPath))) { ! if (!(basePath.endsWith("/"))) ! basePath = basePath.concat("/"); ! if (!(uri.getRawPath().startsWith(basePath))) ! return uri; } try { ! return new URI(null, null, ! uri.getRawPath().substring(basePath.length()), ! uri.getRawQuery(), uri.getRawFragment()); } catch (URISyntaxException e) { ! throw (Error) new InternalError("Relativized URI variant could not "+ ! "be constructed").initCause(e); } } *************** public final class URI *** 1144,1150 **** } /** ! *

                        * Compares the URI with the given object for equality. If the * object is not a URI, then the method returns false. * Otherwise, the following criteria are observed: --- 1144,1150 ---- } /** ! *

                        * Compares the URI with the given object for equality. If the * object is not a URI, then the method returns false. * Otherwise, the following criteria are observed: *************** public final class URI *** 1187,1226 **** URI uriObj = (URI) obj; if (scheme == null) { ! if (uriObj.getScheme() != null) ! return false; } else if (!(scheme.equalsIgnoreCase(uriObj.getScheme()))) ! return false; if (rawFragment == null) { ! if (uriObj.getRawFragment() != null) ! return false; } else if (!(rawFragment.equalsIgnoreCase(uriObj.getRawFragment()))) ! return false; boolean opaqueThis = isOpaque(); boolean opaqueObj = uriObj.isOpaque(); if (opaqueThis && opaqueObj) return rawSchemeSpecificPart.equals(uriObj.getRawSchemeSpecificPart()); else if (!opaqueThis && !opaqueObj) { ! boolean common = rawPath.equalsIgnoreCase(uriObj.getRawPath()) ! && ((rawQuery == null && uriObj.getRawQuery() == null) ! || rawQuery.equalsIgnoreCase(uriObj.getRawQuery())); ! if (rawAuthority == null && uriObj.getRawAuthority() == null) ! return common; ! if (host == null) ! return common ! && rawAuthority.equalsIgnoreCase(uriObj.getRawAuthority()); ! return common ! && host.equalsIgnoreCase(uriObj.getHost()) ! && port == uriObj.getPort() ! && (rawUserInfo == null ? ! uriObj.getRawUserInfo() == null : ! rawUserInfo.equalsIgnoreCase(uriObj.getRawUserInfo())); } else return false; --- 1187,1226 ---- URI uriObj = (URI) obj; if (scheme == null) { ! if (uriObj.getScheme() != null) ! return false; } else if (!(scheme.equalsIgnoreCase(uriObj.getScheme()))) ! return false; if (rawFragment == null) { ! if (uriObj.getRawFragment() != null) ! return false; } else if (!(rawFragment.equalsIgnoreCase(uriObj.getRawFragment()))) ! return false; boolean opaqueThis = isOpaque(); boolean opaqueObj = uriObj.isOpaque(); if (opaqueThis && opaqueObj) return rawSchemeSpecificPart.equals(uriObj.getRawSchemeSpecificPart()); else if (!opaqueThis && !opaqueObj) { ! boolean common = rawPath.equalsIgnoreCase(uriObj.getRawPath()) ! && ((rawQuery == null && uriObj.getRawQuery() == null) ! || rawQuery.equalsIgnoreCase(uriObj.getRawQuery())); ! if (rawAuthority == null && uriObj.getRawAuthority() == null) ! return common; ! if (host == null) ! return common ! && rawAuthority.equalsIgnoreCase(uriObj.getRawAuthority()); ! return common ! && host.equalsIgnoreCase(uriObj.getHost()) ! && port == uriObj.getPort() ! && (rawUserInfo == null ? ! uriObj.getRawUserInfo() == null : ! rawUserInfo.equalsIgnoreCase(uriObj.getRawUserInfo())); } else return false; *************** public final class URI *** 1278,1293 **** * on whether this URI is less than, equal to or greater * than that supplied, respectively. */ ! public int compareTo(URI uri) throws ClassCastException { if (scheme == null && uri.getScheme() != null) return -1; if (scheme != null) { ! int sCompare = scheme.compareToIgnoreCase(uri.getScheme()); ! if (sCompare != 0) ! return sCompare; } boolean opaqueThis = isOpaque(); boolean opaqueObj = uri.isOpaque(); --- 1278,1293 ---- * on whether this URI is less than, equal to or greater * than that supplied, respectively. */ ! public int compareTo(URI uri) throws ClassCastException { if (scheme == null && uri.getScheme() != null) return -1; if (scheme != null) { ! int sCompare = scheme.compareToIgnoreCase(uri.getScheme()); ! if (sCompare != 0) ! return sCompare; } boolean opaqueThis = isOpaque(); boolean opaqueObj = uri.isOpaque(); *************** public final class URI *** 1297,1347 **** return -1; if (opaqueThis) { ! int ssCompare = ! rawSchemeSpecificPart.compareTo(uri.getRawSchemeSpecificPart()); ! if (ssCompare == 0) ! return compareFragments(uri); ! else ! return ssCompare; } if (rawAuthority == null && uri.getRawAuthority() != null) return -1; if (rawAuthority != null) { ! int aCompare = rawAuthority.compareTo(uri.getRawAuthority()); ! if (aCompare != 0) ! { ! if (host == null) ! return aCompare; ! if (rawUserInfo == null && uri.getRawUserInfo() != null) ! return -1; ! int uCompare = rawUserInfo.compareTo(uri.getRawUserInfo()); ! if (uCompare != 0) ! return uCompare; ! if (host == null && uri.getHost() != null) ! return -1; ! int hCompare = host.compareTo(uri.getHost()); ! if (hCompare != 0) ! return hCompare; ! int uriPort = uri.getPort(); ! return (uriPort == port) ? 0 : (uriPort > port) ? -1 : 1; ! } } if (rawPath == null && uri.getRawPath() != null) return -1; if (rawPath != null) { ! int pCompare = rawPath.compareTo(uri.getRawPath()); ! if (pCompare != 0) ! return pCompare; } if (rawQuery == null && uri.getRawQuery() != null) return -1; if (rawQuery != null) { ! int qCompare = rawQuery.compareTo(uri.getRawQuery()); ! if (qCompare != 0) ! return qCompare; } return compareFragments(uri); } --- 1297,1347 ---- return -1; if (opaqueThis) { ! int ssCompare = ! rawSchemeSpecificPart.compareTo(uri.getRawSchemeSpecificPart()); ! if (ssCompare == 0) ! return compareFragments(uri); ! else ! return ssCompare; } if (rawAuthority == null && uri.getRawAuthority() != null) return -1; if (rawAuthority != null) { ! int aCompare = rawAuthority.compareTo(uri.getRawAuthority()); ! if (aCompare != 0) ! { ! if (host == null) ! return aCompare; ! if (rawUserInfo == null && uri.getRawUserInfo() != null) ! return -1; ! int uCompare = rawUserInfo.compareTo(uri.getRawUserInfo()); ! if (uCompare != 0) ! return uCompare; ! if (host == null && uri.getHost() != null) ! return -1; ! int hCompare = host.compareTo(uri.getHost()); ! if (hCompare != 0) ! return hCompare; ! int uriPort = uri.getPort(); ! return (uriPort == port) ? 0 : (uriPort > port) ? -1 : 1; ! } } if (rawPath == null && uri.getRawPath() != null) return -1; if (rawPath != null) { ! int pCompare = rawPath.compareTo(uri.getRawPath()); ! if (pCompare != 0) ! return pCompare; } if (rawQuery == null && uri.getRawQuery() != null) return -1; if (rawQuery != null) { ! int qCompare = rawQuery.compareTo(uri.getRawQuery()); ! if (qCompare != 0) ! return qCompare; } return compareFragments(uri); } *************** public final class URI *** 1394,1418 **** CPStringBuilder encBuffer = null; for (int i = 0; i < strRep.length(); i++) { ! char c = strRep.charAt(i); ! if (c <= 127) ! { ! if (inNonAsciiBlock) ! { ! buffer.append(escapeCharacters(encBuffer.toString())); ! inNonAsciiBlock = false; ! } ! buffer.append(c); ! } ! else ! { ! if (!inNonAsciiBlock) ! { ! encBuffer = new CPStringBuilder(); ! inNonAsciiBlock = true; ! } ! encBuffer.append(c); ! } } return buffer.toString(); } --- 1394,1418 ---- CPStringBuilder encBuffer = null; for (int i = 0; i < strRep.length(); i++) { ! char c = strRep.charAt(i); ! if (c <= 127) ! { ! if (inNonAsciiBlock) ! { ! buffer.append(escapeCharacters(encBuffer.toString())); ! inNonAsciiBlock = false; ! } ! buffer.append(c); ! } ! else ! { ! if (!inNonAsciiBlock) ! { ! encBuffer = new CPStringBuilder(); ! inNonAsciiBlock = true; ! } ! encBuffer.append(c); ! } } return buffer.toString(); } *************** public final class URI *** 1430,1449 **** { try { ! CPStringBuilder sb = new CPStringBuilder(); ! // this is far from optimal, but it works ! byte[] utf8 = str.getBytes("utf-8"); ! for (int j = 0; j < utf8.length; j++) ! { ! sb.append('%'); ! sb.append(HEX.charAt((utf8[j] & 0xff) / 16)); ! sb.append(HEX.charAt((utf8[j] & 0xff) % 16)); ! } ! return sb.toString(); } catch (java.io.UnsupportedEncodingException x) { ! throw (Error) new InternalError("Escaping error").initCause(x); } } --- 1430,1449 ---- { try { ! CPStringBuilder sb = new CPStringBuilder(); ! // this is far from optimal, but it works ! byte[] utf8 = str.getBytes("utf-8"); ! for (int j = 0; j < utf8.length; j++) ! { ! sb.append('%'); ! sb.append(HEX.charAt((utf8[j] & 0xff) / 16)); ! sb.append(HEX.charAt((utf8[j] & 0xff) % 16)); ! } ! return sb.toString(); } catch (java.io.UnsupportedEncodingException x) { ! throw (Error) new InternalError("Escaping error").initCause(x); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/URL.java gcc-4.6.0/libjava/classpath/java/net/URL.java *** gcc-4.5.2/libjava/classpath/java/net/URL.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/net/URL.java Tue Jan 11 19:46:05 2011 *************** public final class URL implements Serial *** 203,211 **** String s = SystemProperties.getProperty("gnu.java.net.nocache_protocol_handlers"); if (s == null) ! cache_handlers = true; else ! cache_handlers = false; } /** --- 203,211 ---- String s = SystemProperties.getProperty("gnu.java.net.nocache_protocol_handlers"); if (s == null) ! cache_handlers = true; else ! cache_handlers = false; } /** *************** public final class URL implements Serial *** 276,286 **** if (ph != null) { ! SecurityManager s = System.getSecurityManager(); ! if (s != null) ! s.checkPermission(new NetPermission("specifyStreamHandler")); ! this.ph = ph; } else this.ph = getURLStreamHandler(protocol); --- 276,286 ---- if (ph != null) { ! SecurityManager s = System.getSecurityManager(); ! if (s != null) ! s.checkPermission(new NetPermission("specifyStreamHandler")); ! this.ph = ph; } else this.ph = getURLStreamHandler(protocol); *************** public final class URL implements Serial *** 293,310 **** this.port = port; this.authority = (host != null) ? host : ""; if (port >= 0 && host != null) ! this.authority += ":" + port; int hashAt = file.indexOf('#'); if (hashAt < 0) { ! this.file = file; ! this.ref = null; } else { ! this.file = file.substring(0, hashAt); ! this.ref = file.substring(hashAt + 1); } hashCode = hashCode(); // Used for serialization. } --- 293,310 ---- this.port = port; this.authority = (host != null) ? host : ""; if (port >= 0 && host != null) ! this.authority += ":" + port; int hashAt = file.indexOf('#'); if (hashAt < 0) { ! this.file = file; ! this.ref = null; } else { ! this.file = file.substring(0, hashAt); ! this.ref = file.substring(hashAt + 1); } hashCode = hashCode(); // Used for serialization. } *************** public final class URL implements Serial *** 324,330 **** public URL(String spec) throws MalformedURLException { this((URL) null, spec != null ? spec : "", (URLStreamHandler) null, ! false); } /** --- 324,330 ---- public URL(String spec) throws MalformedURLException { this((URL) null, spec != null ? spec : "", (URLStreamHandler) null, ! false); } /** *************** public final class URL implements Serial *** 346,353 **** public URL(URL context, String spec) throws MalformedURLException { this(context, spec, ! (context == null) ? (URLStreamHandler) null : context.ph, ! false); } /** --- 346,353 ---- public URL(URL context, String spec) throws MalformedURLException { this(context, spec, ! (context == null) ? (URLStreamHandler) null : context.ph, ! false); } /** *************** public final class URL implements Serial *** 395,401 **** * */ private URL(URL context, String spec, URLStreamHandler ph, ! boolean phFromUser) throws MalformedURLException { /* A protocol is defined by the doc as the substring before a ':' --- 395,401 ---- * */ private URL(URL context, String spec, URLStreamHandler ph, ! boolean phFromUser) throws MalformedURLException { /* A protocol is defined by the doc as the substring before a ':' *************** public final class URL implements Serial *** 416,427 **** int colon; int slash = spec.indexOf('/'); if ((colon = spec.indexOf("://", 1)) > 0 ! && ((colon < slash || slash < 0)) && ! spec.regionMatches(colon, "://:", 0, 4)) { ! context = null; ! if (! phFromUser) ! ph = null; } boolean protocolSpecified = false; --- 416,427 ---- int colon; int slash = spec.indexOf('/'); if ((colon = spec.indexOf("://", 1)) > 0 ! && ((colon < slash || slash < 0)) && ! spec.regionMatches(colon, "://:", 0, 4)) { ! context = null; ! if (! phFromUser) ! ph = null; } boolean protocolSpecified = false; *************** public final class URL implements Serial *** 429,438 **** if ((colon = spec.indexOf(':')) > 0 && (colon < slash || slash < 0)) { ! // Protocol may have been specified in spec string. protocolSpecified = true; ! protocol = spec.substring(0, colon).toLowerCase(); ! if (context != null) { if (context.protocol.equals(protocol)) { --- 429,438 ---- if ((colon = spec.indexOf(':')) > 0 && (colon < slash || slash < 0)) { ! // Protocol may have been specified in spec string. protocolSpecified = true; ! protocol = spec.substring(0, colon).toLowerCase(); ! if (context != null) { if (context.protocol.equals(protocol)) { *************** public final class URL implements Serial *** 482,492 **** if (ph != null) { ! SecurityManager s = System.getSecurityManager(); ! if (s != null && phFromUser) ! s.checkPermission(new NetPermission("specifyStreamHandler")); ! this.ph = ph; } else this.ph = getURLStreamHandler(protocol); --- 482,492 ---- if (ph != null) { ! SecurityManager s = System.getSecurityManager(); ! if (s != null && phFromUser) ! s.checkPermission(new NetPermission("specifyStreamHandler")); ! this.ph = ph; } else this.ph = getURLStreamHandler(protocol); *************** public final class URL implements Serial *** 502,515 **** try { ! this.ph.parseURL(this, spec, colon + 1, ! hashAt < 0 ? spec.length() : hashAt); } catch (URLParseError e) { MalformedURLException mue = new MalformedURLException(e.getMessage()); mue.initCause(e); ! throw mue; } catch (RuntimeException e) { --- 502,515 ---- try { ! this.ph.parseURL(this, spec, colon + 1, ! hashAt < 0 ? spec.length() : hashAt); } catch (URLParseError e) { MalformedURLException mue = new MalformedURLException(e.getMessage()); mue.initCause(e); ! throw mue; } catch (RuntimeException e) { *************** public final class URL implements Serial *** 772,784 **** protocol = protocol.toLowerCase(); if (! this.protocol.equals(protocol)) protocolHandler = getURLStreamHandler(protocol); ! // It is an hidden feature of the JDK. If the protocol does not exist, // we keep the previously initialized protocol. if (protocolHandler != null) { ! this.ph = protocolHandler; ! this.protocol = protocol; } this.authority = ""; this.port = port; --- 772,784 ---- protocol = protocol.toLowerCase(); if (! this.protocol.equals(protocol)) protocolHandler = getURLStreamHandler(protocol); ! // It is an hidden feature of the JDK. If the protocol does not exist, // we keep the previously initialized protocol. if (protocolHandler != null) { ! this.ph = protocolHandler; ! this.protocol = protocol; } this.authority = ""; this.port = port; *************** public final class URL implements Serial *** 818,830 **** protocol = protocol.toLowerCase(); if (! this.protocol.equals(protocol)) protocolHandler = getURLStreamHandler(protocol); ! // It is an hidden feature of the JDK. If the protocol does not exist, // we keep the previously initialized protocol. if (protocolHandler != null) { ! this.ph = protocolHandler; ! this.protocol = protocol; } this.host = host; this.userInfo = userInfo; --- 818,830 ---- protocol = protocol.toLowerCase(); if (! this.protocol.equals(protocol)) protocolHandler = getURLStreamHandler(protocol); ! // It is an hidden feature of the JDK. If the protocol does not exist, // we keep the previously initialized protocol. if (protocolHandler != null) { ! this.ph = protocolHandler; ! this.protocol = protocol; } this.host = host; this.userInfo = userInfo; *************** public final class URL implements Serial *** 902,971 **** // First, see if a protocol handler is in our cache. if (cache_handlers) { ! if ((ph = ph_cache.get(protocol)) != null) ! return ph; } // If a non-default factory has been set, use it to find the protocol. if (factory != null) { ! ph = factory.createURLStreamHandler(protocol); } // Non-default factory may have returned null or a factory wasn't set. // Use the default search algorithm to find a handler for this protocol. if (ph == null) { ! // Get the list of packages to check and append our default handler ! // to it, along with the JDK specified default as a last resort. ! // Except in very unusual environments the JDK specified one shouldn't ! // ever be needed (or available). ! String ph_search_path = ! SystemProperties.getProperty("java.protocol.handler.pkgs"); ! // Tack our default package on at the ends. ! if (ph_search_path != null) ! ph_search_path += "|" + DEFAULT_SEARCH_PATH; ! else ! ph_search_path = DEFAULT_SEARCH_PATH; ! // Finally loop through our search path looking for a match. ! StringTokenizer pkgPrefix = new StringTokenizer(ph_search_path, "|"); ! // Cache the systemClassLoader ! if (systemClassLoader == null) ! { ! systemClassLoader = AccessController.doPrivileged ! (new PrivilegedAction() { ! public ClassLoader run() ! { ! return ClassLoader.getSystemClassLoader(); ! } ! }); ! } ! do ! { ! try ! { ! // Try to get a class from the system/application ! // classloader, initialize it, make an instance ! // and try to cast it to a URLStreamHandler. ! String clsName = ! (pkgPrefix.nextToken() + "." + protocol + ".Handler"); ! Class c = Class.forName(clsName, true, systemClassLoader); ! ph = (URLStreamHandler) c.newInstance(); ! } catch (ThreadDeath death) { throw death; } ! catch (Throwable t) ! { ! // Ignored. ! } ! } ! while (ph == null && pkgPrefix.hasMoreTokens()); } // Update the hashtable with the new protocol handler. --- 902,971 ---- // First, see if a protocol handler is in our cache. if (cache_handlers) { ! if ((ph = ph_cache.get(protocol)) != null) ! return ph; } // If a non-default factory has been set, use it to find the protocol. if (factory != null) { ! ph = factory.createURLStreamHandler(protocol); } // Non-default factory may have returned null or a factory wasn't set. // Use the default search algorithm to find a handler for this protocol. if (ph == null) { ! // Get the list of packages to check and append our default handler ! // to it, along with the JDK specified default as a last resort. ! // Except in very unusual environments the JDK specified one shouldn't ! // ever be needed (or available). ! String ph_search_path = ! SystemProperties.getProperty("java.protocol.handler.pkgs"); ! // Tack our default package on at the ends. ! if (ph_search_path != null) ! ph_search_path += "|" + DEFAULT_SEARCH_PATH; ! else ! ph_search_path = DEFAULT_SEARCH_PATH; ! // Finally loop through our search path looking for a match. ! StringTokenizer pkgPrefix = new StringTokenizer(ph_search_path, "|"); ! // Cache the systemClassLoader ! if (systemClassLoader == null) ! { ! systemClassLoader = AccessController.doPrivileged ! (new PrivilegedAction() { ! public ClassLoader run() ! { ! return ClassLoader.getSystemClassLoader(); ! } ! }); ! } ! do ! { ! try ! { ! // Try to get a class from the system/application ! // classloader, initialize it, make an instance ! // and try to cast it to a URLStreamHandler. ! String clsName = ! (pkgPrefix.nextToken() + "." + protocol + ".Handler"); ! Class c = Class.forName(clsName, true, systemClassLoader); ! ph = (URLStreamHandler) c.newInstance(); ! } catch (ThreadDeath death) { throw death; } ! catch (Throwable t) ! { ! // Ignored. ! } ! } ! while (ph == null && pkgPrefix.hasMoreTokens()); } // Update the hashtable with the new protocol handler. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/URLClassLoader.java gcc-4.6.0/libjava/classpath/java/net/URLClassLoader.java *** gcc-4.5.2/libjava/classpath/java/net/URLClassLoader.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/URLClassLoader.java Tue Jan 11 19:46:05 2011 *************** public class URLClassLoader extends Secu *** 288,295 **** if (newUrl == null) return; // Silently ignore... ! // Reset the toString() value. ! thisString = null; // Create a loader for this URL. URLLoader loader = null; --- 288,295 ---- if (newUrl == null) return; // Silently ignore... ! // Reset the toString() value. ! thisString = null; // Create a loader for this URL. URLLoader loader = null; *************** public class URLClassLoader extends Secu *** 394,401 **** newUrl); } ! urlinfos.add(loader); ! ArrayList extra = loader.getClassPath(); if (extra != null) urlinfos.addAll(extra); } --- 394,401 ---- newUrl); } ! urlinfos.add(loader); ! ArrayList extra = loader.getClassPath(); if (extra != null) urlinfos.addAll(extra); } *************** public class URLClassLoader extends Secu *** 414,421 **** { for (int i = 0; i < newUrls.length; i++) { ! urls.add(newUrls[i]); ! addURLImpl(newUrls[i]); } } --- 414,421 ---- { for (int i = 0; i < newUrls.length; i++) { ! urls.add(newUrls[i]); ! addURLImpl(newUrls[i]); } } *************** public class URLClassLoader extends Secu *** 424,430 **** * object, if not null, has precedence. */ private String getAttributeValue(Attributes.Name name, Attributes first, ! Attributes second) { String result = null; if (first != null) --- 424,430 ---- * object, if not null, has precedence. */ private String getAttributeValue(Attributes.Name name, Attributes first, ! Attributes second) { String result = null; if (first != null) *************** public class URLClassLoader extends Secu *** 457,463 **** CPStringBuilder xform = new CPStringBuilder(name); for (int i = xform.length () - 1; i >= 0; --i) if (xform.charAt(i) == '.') ! xform.setCharAt(i, '/'); xform.append('/'); String xformName = xform.toString(); --- 457,463 ---- CPStringBuilder xform = new CPStringBuilder(name); for (int i = xform.length () - 1; i >= 0; --i) if (xform.charAt(i) == '.') ! xform.setCharAt(i, '/'); xform.append('/'); String xformName = xform.toString(); *************** public class URLClassLoader extends Secu *** 466,487 **** String specTitle = getAttributeValue(Attributes.Name.SPECIFICATION_TITLE, ! entryAttr, attr); String specVersion = getAttributeValue(Attributes.Name.SPECIFICATION_VERSION, ! entryAttr, attr); String specVendor = getAttributeValue(Attributes.Name.SPECIFICATION_VENDOR, ! entryAttr, attr); String implTitle = getAttributeValue(Attributes.Name.IMPLEMENTATION_TITLE, ! entryAttr, attr); String implVersion = getAttributeValue(Attributes.Name.IMPLEMENTATION_VERSION, ! entryAttr, attr); String implVendor = getAttributeValue(Attributes.Name.IMPLEMENTATION_VENDOR, ! entryAttr, attr); // Look if the Manifest indicates that this package is sealed // XXX - most likely not completely correct! --- 466,487 ---- String specTitle = getAttributeValue(Attributes.Name.SPECIFICATION_TITLE, ! entryAttr, attr); String specVersion = getAttributeValue(Attributes.Name.SPECIFICATION_VERSION, ! entryAttr, attr); String specVendor = getAttributeValue(Attributes.Name.SPECIFICATION_VENDOR, ! entryAttr, attr); String implTitle = getAttributeValue(Attributes.Name.IMPLEMENTATION_TITLE, ! entryAttr, attr); String implVersion = getAttributeValue(Attributes.Name.IMPLEMENTATION_VERSION, ! entryAttr, attr); String implVendor = getAttributeValue(Attributes.Name.IMPLEMENTATION_VENDOR, ! entryAttr, attr); // Look if the Manifest indicates that this package is sealed // XXX - most likely not completely correct! *************** public class URLClassLoader extends Secu *** 494,502 **** url = null; return definePackage(name, ! specTitle, specVendor, specVersion, ! implTitle, implVendor, implVersion, ! url); } /** --- 494,502 ---- url = null; return definePackage(name, ! specTitle, specVendor, specVersion, ! implTitle, implVendor, implVersion, ! url); } /** *************** public class URLClassLoader extends Secu *** 534,580 **** // construct the class (and watch out for those nasty IOExceptions) try { ! byte[] data; ! InputStream in = resource.getInputStream(); ! try ! { ! int length = resource.getLength(); ! if (length != -1) ! { ! // We know the length of the data. ! // Just try to read it in all at once ! data = new byte[length]; ! int pos = 0; ! while (length - pos > 0) ! { ! int len = in.read(data, pos, length - pos); ! if (len == -1) ! throw new EOFException("Not enough data reading from: " ! + in); ! pos += len; ! } ! } ! else ! { ! // We don't know the data length. ! // Have to read it in chunks. ! ByteArrayOutputStream out = new ByteArrayOutputStream(4096); ! byte[] b = new byte[4096]; ! int l = 0; ! while (l != -1) ! { ! l = in.read(b); ! if (l != -1) ! out.write(b, 0, l); ! } ! data = out.toByteArray(); ! } ! } ! finally ! { ! in.close(); ! } ! final byte[] classData = data; // Now get the CodeSource final CodeSource source = resource.getCodeSource(); --- 534,580 ---- // construct the class (and watch out for those nasty IOExceptions) try { ! byte[] data; ! InputStream in = resource.getInputStream(); ! try ! { ! int length = resource.getLength(); ! if (length != -1) ! { ! // We know the length of the data. ! // Just try to read it in all at once ! data = new byte[length]; ! int pos = 0; ! while (length - pos > 0) ! { ! int len = in.read(data, pos, length - pos); ! if (len == -1) ! throw new EOFException("Not enough data reading from: " ! + in); ! pos += len; ! } ! } ! else ! { ! // We don't know the data length. ! // Have to read it in chunks. ! ByteArrayOutputStream out = new ByteArrayOutputStream(4096); ! byte[] b = new byte[4096]; ! int l = 0; ! while (l != -1) ! { ! l = in.read(b); ! if (l != -1) ! out.write(b, 0, l); ! } ! data = out.toByteArray(); ! } ! } ! finally ! { ! in.close(); ! } ! final byte[] classData = data; // Now get the CodeSource final CodeSource source = resource.getCodeSource(); *************** public class URLClassLoader extends Secu *** 620,637 **** Certificate[] resourceCertificates = resource.getCertificates(); if(resourceCertificates != null) super.setSigners(result, resourceCertificates); ! return result; } catch (IOException ioe) { ! throw new ClassNotFoundException(className + " not found in " + this, ioe); } } ! // Cached String representation of this URLClassLoader private String thisString; ! /** * Returns a String representation of this URLClassLoader giving the * actual Class name, the URLs that are searched and the parent --- 620,637 ---- Certificate[] resourceCertificates = resource.getCertificates(); if(resourceCertificates != null) super.setSigners(result, resourceCertificates); ! return result; } catch (IOException ioe) { ! throw new ClassNotFoundException(className + " not found in " + this, ioe); } } ! // Cached String representation of this URLClassLoader private String thisString; ! /** * Returns a String representation of this URLClassLoader giving the * actual Class name, the URLs that are searched and the parent *************** public class URLClassLoader extends Secu *** 641,665 **** { synchronized (this) { ! if (thisString == null) ! { ! CPStringBuilder sb = new CPStringBuilder(); ! sb.append(this.getClass().getName()); ! sb.append("{urls=[" ); ! URL[] thisURLs = getURLs(); ! for (int i = 0; i < thisURLs.length; i++) ! { ! sb.append(thisURLs[i]); ! if (i < thisURLs.length - 1) ! sb.append(','); ! } ! sb.append(']'); ! sb.append(", parent="); ! sb.append(getParent()); ! sb.append('}'); ! thisString = sb.toString(); ! } ! return thisString; } } --- 641,665 ---- { synchronized (this) { ! if (thisString == null) ! { ! CPStringBuilder sb = new CPStringBuilder(); ! sb.append(this.getClass().getName()); ! sb.append("{urls=[" ); ! URL[] thisURLs = getURLs(); ! for (int i = 0; i < thisURLs.length; i++) ! { ! sb.append(thisURLs[i]); ! if (i < thisURLs.length - 1) ! sb.append(','); ! } ! sb.append(']'); ! sb.append(", parent="); ! sb.append(getParent()); ! sb.append('}'); ! thisString = sb.toString(); ! } ! return thisString; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/URLConnection.java gcc-4.6.0/libjava/classpath/java/net/URLConnection.java *** gcc-4.5.2/libjava/classpath/java/net/URLConnection.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/net/URLConnection.java Tue Jan 11 19:46:05 2011 *************** public abstract class URLConnection *** 173,179 **** private static SimpleDateFormat[] dateFormats; private static boolean dateformats_initialized; ! /** * The connection timeout period. */ --- 173,179 ---- private static SimpleDateFormat[] dateFormats; private static boolean dateformats_initialized; ! /** * The connection timeout period. */ *************** public abstract class URLConnection *** 236,242 **** /** * Set the connection timeout speed, in milliseconds, or zero if the timeout ! * is to be considered infinite. Note that in certain socket * implementations/platforms this method may not have any effect. * * Throws an IllegalArgumentException if timeout < 0. --- 236,242 ---- /** * Set the connection timeout speed, in milliseconds, or zero if the timeout ! * is to be considered infinite. Note that in certain socket * implementations/platforms this method may not have any effect. * * Throws an IllegalArgumentException if timeout < 0. *************** public abstract class URLConnection *** 270,276 **** /** * Set the read timeout, in milliseconds, or zero if the timeout ! * is to be considered infinite. Note that in certain socket * implementations/platforms this method may not have any effect. * * Throws an IllegalArgumentException if timeout < 0. --- 270,276 ---- /** * Set the read timeout, in milliseconds, or zero if the timeout ! * is to be considered infinite. Note that in certain socket * implementations/platforms this method may not have any effect. * * Throws an IllegalArgumentException if timeout < 0. *************** public abstract class URLConnection *** 368,374 **** /** * Return a String representing the header value at the specified index. * This allows the caller to walk the list of header fields. The analogous ! * {@link #getHeaderField(int)} method allows access to the corresponding * key for this header field * * @param index The index into the header field list to retrieve the value for --- 368,374 ---- /** * Return a String representing the header value at the specified index. * This allows the caller to walk the list of header fields. The analogous ! * {@link #getHeaderField(int)} method allows access to the corresponding * key for this header field * * @param index The index into the header field list to retrieve the value for *************** public abstract class URLConnection *** 397,404 **** /** * Returns an unmodifiable Map containing all sent header fields. ! * ! * @return The map of header fields. The map consists of String keys with * an unmodifiable List of String objects as value. * * @since 1.4 --- 397,404 ---- /** * Returns an unmodifiable Map containing all sent header fields. ! * ! * @return The map of header fields. The map consists of String keys with * an unmodifiable List of String objects as value. * * @since 1.4 *************** public abstract class URLConnection *** 430,440 **** try { ! return Integer.parseInt(value); } catch (NumberFormatException e) { ! return defaultValue; } } --- 430,440 ---- try { ! return Integer.parseInt(value); } catch (NumberFormatException e) { ! return defaultValue; } } *************** public abstract class URLConnection *** 463,477 **** if (str != null) { ! for (int i = 0; i < dateFormats.length; i++) ! { ! SimpleDateFormat df = dateFormats[i]; ! position.setIndex(0); ! position.setErrorIndex(0); ! Date date = df.parse(str, position); ! if (date != null) ! return date.getTime(); ! } } return result; --- 463,477 ---- if (str != null) { ! for (int i = 0; i < dateFormats.length; i++) ! { ! SimpleDateFormat df = dateFormats[i]; ! position.setIndex(0); ! position.setErrorIndex(0); ! Date date = df.parse(str, position); ! if (date != null) ! return date.getTime(); ! } } return result; *************** public abstract class URLConnection *** 480,486 **** /** * Returns a String representing the header key at the specified index. * This allows the caller to walk the list of header fields. The analogous ! * {@link #getHeaderField(int)} method allows access to the corresponding * value for this tag. * * @param index The index into the header field list to retrieve the key for. --- 480,486 ---- /** * Returns a String representing the header key at the specified index. * This allows the caller to walk the list of header fields. The analogous ! * {@link #getHeaderField(int)} method allows access to the corresponding * value for this tag. * * @param index The index into the header field list to retrieve the key for. *************** public abstract class URLConnection *** 527,533 **** connect(); // FIXME: Doc indicates that other criteria should be applied as ! // heuristics to determine the true content type, e.g. see // guessContentTypeFromName() and guessContentTypeFromStream methods // as well as FileNameMap class & fileNameMap field & get/set methods. String type = getContentType(); --- 527,533 ---- connect(); // FIXME: Doc indicates that other criteria should be applied as ! // heuristics to determine the true content type, e.g. see // guessContentTypeFromName() and guessContentTypeFromStream methods // as well as FileNameMap class & fileNameMap field & get/set methods. String type = getContentType(); *************** public abstract class URLConnection *** 698,704 **** { if (connected) throw new IllegalStateException("Already connected"); ! allowUserInteraction = allow; } --- 698,704 ---- { if (connected) throw new IllegalStateException("Already connected"); ! allowUserInteraction = allow; } *************** public abstract class URLConnection *** 820,827 **** } /** ! * Sets the value of the named request property. ! * This method does overwrite the value of existing properties with * the new value. * * @param key The name of the property --- 820,827 ---- } /** ! * Sets the value of the named request property. ! * This method does overwrite the value of existing properties with * the new value. * * @param key The name of the property *************** public abstract class URLConnection *** 898,905 **** /** * Returns an unmodifiable Map containing the request properties. ! * ! * @return The map of properties. The map consists of String keys with an * unmodifiable List of String objects as value. * * @exception IllegalStateException If already connected --- 898,905 ---- /** * Returns an unmodifiable Map containing the request properties. ! * ! * @return The map of properties. The map consists of String keys with an * unmodifiable List of String objects as value. * * @exception IllegalStateException If already connected *************** public abstract class URLConnection *** 1074,1084 **** handler = factory.createContentHandler(contentType); // Now try default factory. Using this factory to instantiate built-in ! // content handlers is preferable if (handler == null) handler = defaultFactory.createContentHandler(contentType); ! // User-set factory has not returned a handler. Use the default search // algorithm. if (handler == null) { --- 1074,1084 ---- handler = factory.createContentHandler(contentType); // Now try default factory. Using this factory to instantiate built-in ! // content handlers is preferable if (handler == null) handler = defaultFactory.createContentHandler(contentType); ! // User-set factory has not returned a handler. Use the default search // algorithm. if (handler == null) { *************** public abstract class URLConnection *** 1103,1109 **** { if (cArray[i] == '/') cArray[i] = '.'; ! else if (! ((cArray[i] >= 'A' && cArray[i] <= 'Z') || (cArray[i] >= 'a' && cArray[i] <= 'z') || (cArray[i] >= '0' && cArray[i] <= '9'))) cArray[i] = '_'; --- 1103,1109 ---- { if (cArray[i] == '/') cArray[i] = '.'; ! else if (! ((cArray[i] >= 'A' && cArray[i] <= 'Z') || (cArray[i] >= 'a' && cArray[i] <= 'z') || (cArray[i] >= '0' && cArray[i] <= '9'))) cArray[i] = '_'; *************** public abstract class URLConnection *** 1129,1135 **** return handler; } ! // We don't put these in a static initializer, because it creates problems // with initializer co-dependency: SimpleDateFormat's constructors // eventually depend on URLConnection (via the java.text.*Symbols classes). --- 1129,1135 ---- return handler; } ! // We don't put these in a static initializer, because it creates problems // with initializer co-dependency: SimpleDateFormat's constructors // eventually depend on URLConnection (via the java.text.*Symbols classes). diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/URLDecoder.java gcc-4.6.0/libjava/classpath/java/net/URLDecoder.java *** gcc-4.5.2/libjava/classpath/java/net/URLDecoder.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/URLDecoder.java Tue Jan 11 19:46:05 2011 *************** public class URLDecoder *** 87,98 **** { try { ! return decode(s, "UTF-8"); } catch (UnsupportedEncodingException uee) { ! // Should never happen since UTF-8 encoding should always be supported ! return s; } } --- 87,98 ---- { try { ! return decode(s, "UTF-8"); } catch (UnsupportedEncodingException uee) { ! // Should never happen since UTF-8 encoding should always be supported ! return s; } } *************** public class URLDecoder *** 132,176 **** CPStringBuilder result = new CPStringBuilder(length); while ((i = str.indexOf('%', start)) >= 0) { ! // Add all non-encoded characters to the result buffer ! result.append(str.substring(start, i)); ! start = i; ! // Get all consecutive encoded bytes ! while ((i + 2 < length) && (str.charAt(i) == '%')) ! i += 3; ! // Decode all these bytes ! if ((bytes == null) || (bytes.length < ((i - start) / 3))) ! bytes = new byte[((i - start) / 3)]; ! int index = 0; ! try ! { ! while (start < i) ! { ! String sub = str.substring(start + 1, start + 3); ! bytes[index] = (byte) Integer.parseInt(sub, 16); ! index++; ! start += 3; ! } ! } ! catch (NumberFormatException nfe) ! { ! // One of the hex encoded strings was bad ! } ! // Add the bytes as characters according to the given encoding ! result.append(new String(bytes, 0, index, encoding)); ! // Make sure we skip to just after a % sign ! // There might not have been enough encoded characters after the % ! // or the hex chars were not actually hex chars (NumberFormatException) ! if (start < length && s.charAt(start) == '%') ! { ! result.append('%'); ! start++; ! } } // Add any characters left --- 132,176 ---- CPStringBuilder result = new CPStringBuilder(length); while ((i = str.indexOf('%', start)) >= 0) { ! // Add all non-encoded characters to the result buffer ! result.append(str.substring(start, i)); ! start = i; ! // Get all consecutive encoded bytes ! while ((i + 2 < length) && (str.charAt(i) == '%')) ! i += 3; ! // Decode all these bytes ! if ((bytes == null) || (bytes.length < ((i - start) / 3))) ! bytes = new byte[((i - start) / 3)]; ! int index = 0; ! try ! { ! while (start < i) ! { ! String sub = str.substring(start + 1, start + 3); ! bytes[index] = (byte) Integer.parseInt(sub, 16); ! index++; ! start += 3; ! } ! } ! catch (NumberFormatException nfe) ! { ! // One of the hex encoded strings was bad ! } ! // Add the bytes as characters according to the given encoding ! result.append(new String(bytes, 0, index, encoding)); ! // Make sure we skip to just after a % sign ! // There might not have been enough encoded characters after the % ! // or the hex chars were not actually hex chars (NumberFormatException) ! if (start < length && s.charAt(start) == '%') ! { ! result.append('%'); ! start++; ! } } // Add any characters left diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/URLEncoder.java gcc-4.6.0/libjava/classpath/java/net/URLEncoder.java *** gcc-4.5.2/libjava/classpath/java/net/URLEncoder.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/URLEncoder.java Tue Jan 11 19:46:05 2011 *************** public class URLEncoder *** 83,96 **** { try { ! // We default to 8859_1 for compatibility with the same ! // default elsewhere in the library. ! return encode(s, System.getProperty("file.encoding", "8859_1")); } catch (UnsupportedEncodingException uee) { ! // Should never happen since default should always be supported ! return s; } } --- 83,96 ---- { try { ! // We default to 8859_1 for compatibility with the same ! // default elsewhere in the library. ! return encode(s, System.getProperty("file.encoding", "8859_1")); } catch (UnsupportedEncodingException uee) { ! // Should never happen since default should always be supported ! return s; } } *************** public class URLEncoder *** 118,157 **** CPStringBuilder result = new CPStringBuilder(length); while (true) { ! while (i < length && isSafe(s.charAt(i))) ! i++; ! // Safe character can just be added ! result.append(s.substring(start, i)); ! // Are we done? ! if (i >= length) ! return result.toString(); ! else if (s.charAt(i) == ' ') ! { ! result.append('+'); // Replace space char with plus symbol. ! i++; ! } ! else ! { ! // Get all unsafe characters ! start = i; ! char c; ! while (i < length && (c = s.charAt(i)) != ' ' && ! isSafe(c)) ! i++; ! // Convert them to %XY encoded strings ! String unsafe = s.substring(start, i); ! byte[] bytes = unsafe.getBytes(encoding); ! for (int j = 0; j < bytes.length; j++) ! { ! result.append('%'); ! int val = bytes[j]; ! result.append(hex.charAt((val & 0xf0) >> 4)); ! result.append(hex.charAt(val & 0x0f)); ! } ! } ! start = i; } } --- 118,157 ---- CPStringBuilder result = new CPStringBuilder(length); while (true) { ! while (i < length && isSafe(s.charAt(i))) ! i++; ! // Safe character can just be added ! result.append(s.substring(start, i)); ! // Are we done? ! if (i >= length) ! return result.toString(); ! else if (s.charAt(i) == ' ') ! { ! result.append('+'); // Replace space char with plus symbol. ! i++; ! } ! else ! { ! // Get all unsafe characters ! start = i; ! char c; ! while (i < length && (c = s.charAt(i)) != ' ' && ! isSafe(c)) ! i++; ! // Convert them to %XY encoded strings ! String unsafe = s.substring(start, i); ! byte[] bytes = unsafe.getBytes(encoding); ! for (int j = 0; j < bytes.length; j++) ! { ! result.append('%'); ! int val = bytes[j]; ! result.append(hex.charAt((val & 0xf0) >> 4)); ! result.append(hex.charAt(val & 0x0f)); ! } ! } ! start = i; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/net/URLStreamHandler.java gcc-4.6.0/libjava/classpath/java/net/URLStreamHandler.java *** gcc-4.5.2/libjava/classpath/java/net/URLStreamHandler.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/net/URLStreamHandler.java Tue Jan 11 19:46:05 2011 *************** public abstract class URLStreamHandler *** 131,199 **** String userInfo = url.getUserInfo(); String authority = url.getAuthority(); String query = null; ! // On Windows we need to change \ to / for file URLs char separator = File.separatorChar; if (url.getProtocol().equals("file") && separator != '/') { ! file = file.replace(separator, '/'); ! spec = spec.replace(separator, '/'); } if (spec.regionMatches(start, "//", 0, 2)) { ! String genuineHost; ! int hostEnd; ! int colon; ! int at_host; ! start += 2; ! int slash = spec.indexOf('/', start); ! if (slash >= 0) ! hostEnd = slash; ! else ! hostEnd = end; ! authority = host = spec.substring(start, hostEnd); ! // We first need a genuine host name (with userinfo). ! // So we check for '@': if it's present check the port in the ! // section after '@' in the other case check it in the full string. ! // P.S.: We don't care having '@' at the beginning of the string. ! if ((at_host = host.indexOf('@')) >= 0) ! { ! genuineHost = host.substring(at_host); ! userInfo = host.substring(0, at_host); ! } ! else ! genuineHost = host; ! // Look for optional port number. It is valid for the non-port ! // part of the host name to be null (e.g. a URL "http://:80"). ! // TBD: JDK 1.2 in this case sets host to null rather than ""; ! // this is undocumented and likely an unintended side effect in 1.2 ! // so we'll be simple here and stick with "". Note that ! // "http://" or "http:///" produce a "" host in JDK 1.2. ! if ((colon = genuineHost.indexOf(':')) >= 0) ! { ! try ! { ! port = Integer.parseInt(genuineHost.substring(colon + 1)); ! } ! catch (NumberFormatException e) ! { ! // Ignore invalid port values; port is already set to u's ! // port. ! } ! // Now we must cut the port number in the original string. ! if (at_host >= 0) ! host = host.substring(0, at_host + colon); ! else ! host = host.substring(0, colon); ! } ! file = null; ! start = hostEnd; } else if (host == null) host = ""; --- 131,199 ---- String userInfo = url.getUserInfo(); String authority = url.getAuthority(); String query = null; ! // On Windows we need to change \ to / for file URLs char separator = File.separatorChar; if (url.getProtocol().equals("file") && separator != '/') { ! file = file.replace(separator, '/'); ! spec = spec.replace(separator, '/'); } if (spec.regionMatches(start, "//", 0, 2)) { ! String genuineHost; ! int hostEnd; ! int colon; ! int at_host; ! start += 2; ! int slash = spec.indexOf('/', start); ! if (slash >= 0) ! hostEnd = slash; ! else ! hostEnd = end; ! authority = host = spec.substring(start, hostEnd); ! // We first need a genuine host name (with userinfo). ! // So we check for '@': if it's present check the port in the ! // section after '@' in the other case check it in the full string. ! // P.S.: We don't care having '@' at the beginning of the string. ! if ((at_host = host.indexOf('@')) >= 0) ! { ! genuineHost = host.substring(at_host); ! userInfo = host.substring(0, at_host); ! } ! else ! genuineHost = host; ! // Look for optional port number. It is valid for the non-port ! // part of the host name to be null (e.g. a URL "http://:80"). ! // TBD: JDK 1.2 in this case sets host to null rather than ""; ! // this is undocumented and likely an unintended side effect in 1.2 ! // so we'll be simple here and stick with "". Note that ! // "http://" or "http:///" produce a "" host in JDK 1.2. ! if ((colon = genuineHost.indexOf(':')) >= 0) ! { ! try ! { ! port = Integer.parseInt(genuineHost.substring(colon + 1)); ! } ! catch (NumberFormatException e) ! { ! // Ignore invalid port values; port is already set to u's ! // port. ! } ! // Now we must cut the port number in the original string. ! if (at_host >= 0) ! host = host.substring(0, at_host + colon); ! else ! host = host.substring(0, colon); ! } ! file = null; ! start = hostEnd; } else if (host == null) host = ""; *************** public abstract class URLStreamHandler *** 201,249 **** if (file == null || file.length() == 0 || (start < end && spec.charAt(start) == '/')) { ! // No file context available; just spec for file. ! // Or this is an absolute path name; ignore any file context. ! file = spec.substring(start, end); ! ref = null; } else if (start < end) { ! // Context is available, but only override it if there is a new file. ! int lastSlash = file.lastIndexOf('/'); ! if (lastSlash < 0) ! file = spec.substring(start, end); ! else ! file = (file.substring(0, lastSlash) ! + '/' + spec.substring(start, end)); ! // For URLs constructed relative to a context, we ! // need to canonicalise the file path. ! file = canonicalizeFilename(file); ! ref = null; } if (ref == null) { ! // Normally there should be no '#' in the file part, ! // but we are nice. ! int hash = file.indexOf('#'); ! if (hash != -1) ! { ! ref = file.substring(hash + 1, file.length()); ! file = file.substring(0, hash); ! } } // We care about the query tag only if there is no reference at all. if (ref == null) { ! int queryTag = file.indexOf('?'); ! if (queryTag != -1) ! { ! query = file.substring(queryTag + 1); ! file = file.substring(0, queryTag); ! } } // XXX - Classpath used to call PlatformHelper.toCanonicalForm() on --- 201,249 ---- if (file == null || file.length() == 0 || (start < end && spec.charAt(start) == '/')) { ! // No file context available; just spec for file. ! // Or this is an absolute path name; ignore any file context. ! file = spec.substring(start, end); ! ref = null; } else if (start < end) { ! // Context is available, but only override it if there is a new file. ! int lastSlash = file.lastIndexOf('/'); ! if (lastSlash < 0) ! file = spec.substring(start, end); ! else ! file = (file.substring(0, lastSlash) ! + '/' + spec.substring(start, end)); ! // For URLs constructed relative to a context, we ! // need to canonicalise the file path. ! file = canonicalizeFilename(file); ! ref = null; } if (ref == null) { ! // Normally there should be no '#' in the file part, ! // but we are nice. ! int hash = file.indexOf('#'); ! if (hash != -1) ! { ! ref = file.substring(hash + 1, file.length()); ! file = file.substring(0, hash); ! } } // We care about the query tag only if there is no reference at all. if (ref == null) { ! int queryTag = file.indexOf('?'); ! if (queryTag != -1) ! { ! query = file.substring(queryTag + 1); ! file = file.substring(0, queryTag); ! } } // XXX - Classpath used to call PlatformHelper.toCanonicalForm() on *************** public abstract class URLStreamHandler *** 270,281 **** // the general case, but it's probably not bad most of the time. while ((index = file.indexOf("/../")) >= 0) { ! // Strip of the previous directory - if it exists. ! int previous = file.lastIndexOf('/', index - 1); ! if (previous >= 0) ! file = file.substring(0, previous) + file.substring(index + 3); ! else ! break; } return file; } --- 270,281 ---- // the general case, but it's probably not bad most of the time. while ((index = file.indexOf("/../")) >= 0) { ! // Strip of the previous directory - if it exists. ! int previous = file.lastIndexOf('/', index - 1); ! if (previous >= 0) ! file = file.substring(0, previous) + file.substring(index + 3); ! else ! break; } return file; } *************** public abstract class URLStreamHandler *** 451,461 **** try { ! return InetAddress.getByName(hostname); } catch (UnknownHostException e) { ! return null; } } --- 451,461 ---- try { ! return InetAddress.getByName(hostname); } catch (UnknownHostException e) { ! return null; } } *************** public abstract class URLStreamHandler *** 505,511 **** authority = url.getAuthority(); if (authority == null) authority = ""; ! file = url.getFile(); ref = url.getRef(); --- 505,511 ---- authority = url.getAuthority(); if (authority == null) authority = ""; ! file = url.getFile(); ref = url.getRef(); *************** public abstract class URLStreamHandler *** 516,530 **** if (protocol.length() > 0) { ! sb.append(protocol); ! sb.append(":"); } ! // If we have superfluous leading slashes (that means, at least 2) // we always add the authority component ("//" + host) to // avoid ambiguity. Otherwise we would generate an URL like // proto://home/foo ! // where we meant: // host: - file: //home/foo // but URL spec says it is: // host: home - file: /foo --- 516,530 ---- if (protocol.length() > 0) { ! sb.append(protocol); ! sb.append(":"); } ! // If we have superfluous leading slashes (that means, at least 2) // we always add the authority component ("//" + host) to // avoid ambiguity. Otherwise we would generate an URL like // proto://home/foo ! // where we meant: // host: - file: //home/foo // but URL spec says it is: // host: home - file: /foo diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/Buffer.java gcc-4.6.0/libjava/classpath/java/nio/Buffer.java *** gcc-4.5.2/libjava/classpath/java/nio/Buffer.java Wed Oct 22 18:19:29 2008 --- gcc-4.6.0/libjava/classpath/java/nio/Buffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Buffer.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Buffer.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class Buffer *** 57,78 **** * Should be package private. */ Buffer (int capacity, int limit, int position, int mark, ! Pointer address) { this.address = address; if (capacity < 0) throw new IllegalArgumentException (); ! cap = capacity; limit (limit); position (position); ! if (mark >= 0) { if (mark > pos) throw new IllegalArgumentException (); ! this.mark = mark; } else --- 57,78 ---- * Should be package private. */ Buffer (int capacity, int limit, int position, int mark, ! Pointer address) { this.address = address; if (capacity < 0) throw new IllegalArgumentException (); ! cap = capacity; limit (limit); position (position); ! if (mark >= 0) { if (mark > pos) throw new IllegalArgumentException (); ! this.mark = mark; } else *************** public abstract class Buffer *** 80,86 **** this.mark = -1; } } ! /** * Retrieves the capacity of the buffer. * --- 80,86 ---- this.mark = -1; } } ! /** * Retrieves the capacity of the buffer. * *************** public abstract class Buffer *** 103,109 **** mark = -1; return this; } ! /** * Flips the buffer. * --- 103,109 ---- mark = -1; return this; } ! /** * Flips the buffer. * *************** public abstract class Buffer *** 116,122 **** mark = -1; return this; } ! /** * Tells whether the buffer has remaining data to read or not. * --- 116,122 ---- mark = -1; return this; } ! /** * Tells whether the buffer has remaining data to read or not. * *************** public abstract class Buffer *** 147,153 **** /** * Sets this buffer's limit. ! * * @param newLimit The new limit value; must be non-negative and no larger * than this buffer's capacity. * --- 147,153 ---- /** * Sets this buffer's limit. ! * * @param newLimit The new limit value; must be non-negative and no larger * than this buffer's capacity. * *************** public abstract class Buffer *** 191,201 **** { return pos; } ! /** * Sets this buffer's position. If the mark is defined and larger than the * new position then it is discarded. ! * * @param newPosition The new position value; must be non-negative and no * larger than the current limit. * --- 191,201 ---- { return pos; } ! /** * Sets this buffer's position. If the mark is defined and larger than the * new position then it is discarded. ! * * @param newPosition The new position value; must be non-negative and no * larger than the current limit. * *************** public abstract class Buffer *** 257,263 **** /** * Checks for underflow. This method is used internally to check ! * whether a buffer has enough elements left to satisfy a read * request. * * @exception BufferUnderflowException If there are no remaining --- 257,263 ---- /** * Checks for underflow. This method is used internally to check ! * whether a buffer has enough elements left to satisfy a read * request. * * @exception BufferUnderflowException If there are no remaining *************** public abstract class Buffer *** 271,282 **** /** * Checks for underflow. This method is used internally to check ! * whether a buffer has enough elements left to satisfy a read * request for a given number of elements. * * @param length The length of a sequence of elements. * ! * @exception BufferUnderflowException If there are not enough * remaining elements in this buffer. */ final void checkForUnderflow(int length) --- 271,282 ---- /** * Checks for underflow. This method is used internally to check ! * whether a buffer has enough elements left to satisfy a read * request for a given number of elements. * * @param length The length of a sequence of elements. * ! * @exception BufferUnderflowException If there are not enough * remaining elements in this buffer. */ final void checkForUnderflow(int length) *************** public abstract class Buffer *** 287,293 **** /** * Checks for overflow. This method is used internally to check ! * whether a buffer has enough space left to satisfy a write * request. * * @exception BufferOverflowException If there is no remaining --- 287,293 ---- /** * Checks for overflow. This method is used internally to check ! * whether a buffer has enough space left to satisfy a write * request. * * @exception BufferOverflowException If there is no remaining *************** public abstract class Buffer *** 301,312 **** /** * Checks for overflow. This method is used internally to check ! * whether a buffer has enough space left to satisfy a write * request for a given number of elements. * * @param length The length of a sequence of elements. * ! * @exception BufferUnderflowException If there is not enough * remaining space in this buffer. */ final void checkForOverflow(int length) --- 301,312 ---- /** * Checks for overflow. This method is used internally to check ! * whether a buffer has enough space left to satisfy a write * request for a given number of elements. * * @param length The length of a sequence of elements. * ! * @exception BufferUnderflowException If there is not enough * remaining space in this buffer. */ final void checkForOverflow(int length) *************** public abstract class Buffer *** 316,322 **** } /** ! * Checks if index is negative or not smaller than the buffer's * limit. This method is used internally to check whether * an indexed request can be fulfilled. * --- 316,322 ---- } /** ! * Checks if index is negative or not smaller than the buffer's * limit. This method is used internally to check whether * an indexed request can be fulfilled. * *************** public abstract class Buffer *** 338,344 **** * * @exception ReadOnlyBufferException If this buffer is read-only. */ ! final void checkIfReadOnly() { if (isReadOnly()) throw new ReadOnlyBufferException (); --- 338,344 ---- * * @exception ReadOnlyBufferException If this buffer is read-only. */ ! final void checkIfReadOnly() { if (isReadOnly()) throw new ReadOnlyBufferException (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/BufferOverflowException.java gcc-4.6.0/libjava/classpath/java/nio/BufferOverflowException.java *** gcc-4.5.2/libjava/classpath/java/nio/BufferOverflowException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/BufferOverflowException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BufferOverflowException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BufferOverflowException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/BufferUnderflowException.java gcc-4.6.0/libjava/classpath/java/nio/BufferUnderflowException.java *** gcc-4.5.2/libjava/classpath/java/nio/BufferUnderflowException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/BufferUnderflowException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BufferUnderflowException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BufferUnderflowException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/ByteBuffer.java gcc-4.6.0/libjava/classpath/java/nio/ByteBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/ByteBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/ByteBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ByteBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ByteBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class ByteBuffer extends *** 53,59 **** final int array_offset; ByteBuffer (int capacity, int limit, int position, int mark, ! RawData address, byte[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; --- 53,59 ---- final int array_offset; ByteBuffer (int capacity, int limit, int position, int mark, ! RawData address, byte[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; *************** public abstract class ByteBuffer extends *** 62,68 **** /** * Allocates a new direct byte buffer. ! */ public static ByteBuffer allocateDirect (int capacity) { return DirectByteBufferImpl.allocate (capacity); --- 62,68 ---- /** * Allocates a new direct byte buffer. ! */ public static ByteBuffer allocateDirect (int capacity) { return DirectByteBufferImpl.allocate (capacity); *************** public abstract class ByteBuffer extends *** 104,110 **** { return wrap (array, 0, array.length); } ! /** * This method transfers bytes from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than --- 104,110 ---- { return wrap (array, 0, array.length); } ! /** * This method transfers bytes from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than *************** public abstract class ByteBuffer extends *** 187,193 **** * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining bytes in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset --- 187,193 ---- * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining bytes in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset *************** public abstract class ByteBuffer extends *** 210,216 **** * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining bytes in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. --- 210,216 ---- * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining bytes in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. *************** public abstract class ByteBuffer extends *** 243,249 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } --- 243,249 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } *************** public abstract class ByteBuffer extends *** 260,266 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } --- 260,266 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } *************** public abstract class ByteBuffer extends *** 283,290 **** int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return hashCode; } --- 283,290 ---- int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return hashCode; } *************** public abstract class ByteBuffer extends *** 313,344 **** int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { byte a = get(pos_this++); ! byte b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } /** * Returns the byte order of this buffer. ! */ public final ByteOrder order () { return endian; } ! /** * Modifies this buffer's byte order. */ --- 313,344 ---- int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { byte a = get(pos_this++); ! byte b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } /** * Returns the byte order of this buffer. ! */ public final ByteOrder order () { return endian; } ! /** * Modifies this buffer's byte order. */ *************** public abstract class ByteBuffer extends *** 347,353 **** this.endian = endian; return this; } ! /** * Reads the byte at this buffer's current position, * and then increments the position. --- 347,353 ---- this.endian = endian; return this; } ! /** * Reads the byte at this buffer's current position, * and then increments the position. *************** public abstract class ByteBuffer extends *** 361,367 **** * Writes the byte at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * bytes in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 361,367 ---- * Writes the byte at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * bytes in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** public abstract class ByteBuffer extends *** 374,380 **** * than the buffer's limit. */ public abstract byte get (int index); ! /** * Absolute put method. * --- 374,380 ---- * than the buffer's limit. */ public abstract byte get (int index); ! /** * Absolute put method. * *************** public abstract class ByteBuffer extends *** 386,392 **** /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract ByteBuffer compact (); --- 386,392 ---- /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract ByteBuffer compact (); *************** public abstract class ByteBuffer extends *** 419,450 **** * buffer's content. */ public abstract ByteBuffer asReadOnlyBuffer (); ! /** * Creates a view of this byte buffer as a short buffer. */ public abstract ShortBuffer asShortBuffer (); ! /** * Creates a view of this byte buffer as a char buffer. */ public abstract CharBuffer asCharBuffer (); ! /** * Creates a view of this byte buffer as an integer buffer. */ public abstract IntBuffer asIntBuffer (); ! /** * Creates a view of this byte buffer as a long buffer. */ public abstract LongBuffer asLongBuffer (); ! /** * Creates a view of this byte buffer as a float buffer. */ public abstract FloatBuffer asFloatBuffer (); ! /** * Creates a view of this byte buffer as a double buffer. */ --- 419,450 ---- * buffer's content. */ public abstract ByteBuffer asReadOnlyBuffer (); ! /** * Creates a view of this byte buffer as a short buffer. */ public abstract ShortBuffer asShortBuffer (); ! /** * Creates a view of this byte buffer as a char buffer. */ public abstract CharBuffer asCharBuffer (); ! /** * Creates a view of this byte buffer as an integer buffer. */ public abstract IntBuffer asIntBuffer (); ! /** * Creates a view of this byte buffer as a long buffer. */ public abstract LongBuffer asLongBuffer (); ! /** * Creates a view of this byte buffer as a float buffer. */ public abstract FloatBuffer asFloatBuffer (); ! /** * Creates a view of this byte buffer as a double buffer. */ *************** public abstract class ByteBuffer extends *** 457,463 **** * remaining in this buffer. */ public abstract char getChar (); ! /** * Relative put method for writing a character value. * --- 457,463 ---- * remaining in this buffer. */ public abstract char getChar (); ! /** * Relative put method for writing a character value. * *************** public abstract class ByteBuffer extends *** 465,471 **** * not smaller than its limit. */ public abstract ByteBuffer putChar (char value); ! /** * Absolute get method for reading a character value. * --- 465,471 ---- * not smaller than its limit. */ public abstract ByteBuffer putChar (char value); ! /** * Absolute get method for reading a character value. * *************** public abstract class ByteBuffer extends *** 473,479 **** * remaining in this buffer */ public abstract char getChar (int index); ! /** * Absolute put method for writing a character value. * --- 473,479 ---- * remaining in this buffer */ public abstract char getChar (int index); ! /** * Absolute put method for writing a character value. * *************** public abstract class ByteBuffer extends *** 481,487 **** * than the buffer's limit, minus one. */ public abstract ByteBuffer putChar (int index, char value); ! /** * Relative get method for reading a short value. * --- 481,487 ---- * than the buffer's limit, minus one. */ public abstract ByteBuffer putChar (int index, char value); ! /** * Relative get method for reading a short value. * *************** public abstract class ByteBuffer extends *** 489,495 **** * than the buffer's limit, minus one. */ public abstract short getShort (); ! /** * Relative put method for writing a short value. * --- 489,495 ---- * than the buffer's limit, minus one. */ public abstract short getShort (); ! /** * Relative put method for writing a short value. * *************** public abstract class ByteBuffer extends *** 497,503 **** * not smaller than its limit. */ public abstract ByteBuffer putShort (short value); ! /** * Absolute get method for reading a short value. * --- 497,503 ---- * not smaller than its limit. */ public abstract ByteBuffer putShort (short value); ! /** * Absolute get method for reading a short value. * *************** public abstract class ByteBuffer extends *** 505,511 **** * remaining in this buffer */ public abstract short getShort (int index); ! /** * Absolute put method for writing a short value. * --- 505,511 ---- * remaining in this buffer */ public abstract short getShort (int index); ! /** * Absolute put method for writing a short value. * *************** public abstract class ByteBuffer extends *** 513,519 **** * than the buffer's limit, minus one. */ public abstract ByteBuffer putShort (int index, short value); ! /** * Relative get method for reading an integer value. * --- 513,519 ---- * than the buffer's limit, minus one. */ public abstract ByteBuffer putShort (int index, short value); ! /** * Relative get method for reading an integer value. * *************** public abstract class ByteBuffer extends *** 521,527 **** * remaining in this buffer. */ public abstract int getInt (); ! /** * Relative put method for writing an integer value. * --- 521,527 ---- * remaining in this buffer. */ public abstract int getInt (); ! /** * Relative put method for writing an integer value. * *************** public abstract class ByteBuffer extends *** 529,535 **** * not smaller than its limit. */ public abstract ByteBuffer putInt (int value); ! /** * Absolute get method for reading an integer value. * --- 529,535 ---- * not smaller than its limit. */ public abstract ByteBuffer putInt (int value); ! /** * Absolute get method for reading an integer value. * *************** public abstract class ByteBuffer extends *** 537,543 **** * than the buffer's limit, minus three. */ public abstract int getInt (int index); ! /** * Absolute put method for writing an integer value. * --- 537,543 ---- * than the buffer's limit, minus three. */ public abstract int getInt (int index); ! /** * Absolute put method for writing an integer value. * *************** public abstract class ByteBuffer extends *** 545,551 **** * than the buffer's limit, minus three. */ public abstract ByteBuffer putInt (int index, int value); ! /** * Relative get method for reading a long value. * --- 545,551 ---- * than the buffer's limit, minus three. */ public abstract ByteBuffer putInt (int index, int value); ! /** * Relative get method for reading a long value. * *************** public abstract class ByteBuffer extends *** 553,559 **** * remaining in this buffer. */ public abstract long getLong (); ! /** * Relative put method for writing a long value. * --- 553,559 ---- * remaining in this buffer. */ public abstract long getLong (); ! /** * Relative put method for writing a long value. * *************** public abstract class ByteBuffer extends *** 561,567 **** * not smaller than its limit. */ public abstract ByteBuffer putLong (long value); ! /** * Absolute get method for reading a long value. * --- 561,567 ---- * not smaller than its limit. */ public abstract ByteBuffer putLong (long value); ! /** * Absolute get method for reading a long value. * *************** public abstract class ByteBuffer extends *** 569,575 **** * than the buffer's limit, minus seven. */ public abstract long getLong (int index); ! /** * Absolute put method for writing a float value. * --- 569,575 ---- * than the buffer's limit, minus seven. */ public abstract long getLong (int index); ! /** * Absolute put method for writing a float value. * *************** public abstract class ByteBuffer extends *** 577,583 **** * than the buffer's limit, minus seven. */ public abstract ByteBuffer putLong (int index, long value); ! /** * Relative get method for reading a float value. * --- 577,583 ---- * than the buffer's limit, minus seven. */ public abstract ByteBuffer putLong (int index, long value); ! /** * Relative get method for reading a float value. * *************** public abstract class ByteBuffer extends *** 585,591 **** * remaining in this buffer. */ public abstract float getFloat (); ! /** * Relative put method for writing a float value. * --- 585,591 ---- * remaining in this buffer. */ public abstract float getFloat (); ! /** * Relative put method for writing a float value. * *************** public abstract class ByteBuffer extends *** 593,599 **** * remaining in this buffer. */ public abstract ByteBuffer putFloat (float value); ! /** * Absolute get method for reading a float value. * --- 593,599 ---- * remaining in this buffer. */ public abstract ByteBuffer putFloat (float value); ! /** * Absolute get method for reading a float value. * *************** public abstract class ByteBuffer extends *** 601,607 **** * than the buffer's limit, minus three. */ public abstract float getFloat (int index); ! /** * Relative put method for writing a float value. * --- 601,607 ---- * than the buffer's limit, minus three. */ public abstract float getFloat (int index); ! /** * Relative put method for writing a float value. * *************** public abstract class ByteBuffer extends *** 609,615 **** * than the buffer's limit, minus three. */ public abstract ByteBuffer putFloat (int index, float value); ! /** * Relative get method for reading a double value. * --- 609,615 ---- * than the buffer's limit, minus three. */ public abstract ByteBuffer putFloat (int index, float value); ! /** * Relative get method for reading a double value. * *************** public abstract class ByteBuffer extends *** 617,623 **** * remaining in this buffer. */ public abstract double getDouble (); ! /** * Relative put method for writing a double value. * --- 617,623 ---- * remaining in this buffer. */ public abstract double getDouble (); ! /** * Relative put method for writing a double value. * *************** public abstract class ByteBuffer extends *** 625,631 **** * not smaller than its limit. */ public abstract ByteBuffer putDouble (double value); ! /** * Absolute get method for reading a double value. * --- 625,631 ---- * not smaller than its limit. */ public abstract ByteBuffer putDouble (double value); ! /** * Absolute get method for reading a double value. * *************** public abstract class ByteBuffer extends *** 633,639 **** * than the buffer's limit, minus seven. */ public abstract double getDouble (int index); ! /** * Absolute put method for writing a double value. * --- 633,639 ---- * than the buffer's limit, minus seven. */ public abstract double getDouble (int index); ! /** * Absolute put method for writing a double value. * *************** public abstract class ByteBuffer extends *** 648,655 **** public String toString () { return getClass ().getName () + ! "[pos=" + position () + ! " lim=" + limit () + ! " cap=" + capacity () + "]"; } } --- 648,655 ---- public String toString () { return getClass ().getName () + ! "[pos=" + position () + ! " lim=" + limit () + ! " cap=" + capacity () + "]"; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/ByteBufferHelper.java gcc-4.6.0/libjava/classpath/java/nio/ByteBufferHelper.java *** gcc-4.5.2/libjava/classpath/java/nio/ByteBufferHelper.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/nio/ByteBufferHelper.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ByteBufferImpl.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ByteBufferImpl.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ByteBufferHelper *** 46,64 **** { return (char) getShort (buffer, order); } ! public static void putChar (ByteBuffer buffer, char value, ByteOrder order) { putShort (buffer, (short) value, order); } ! public static char getChar (ByteBuffer buffer, int index, ByteOrder order) { return (char) getShort (buffer, index, order); } ! public static void putChar (ByteBuffer buffer, int index, ! char value, ByteOrder order) { putShort (buffer, index, (short) value, order); } --- 46,64 ---- { return (char) getShort (buffer, order); } ! public static void putChar (ByteBuffer buffer, char value, ByteOrder order) { putShort (buffer, (short) value, order); } ! public static char getChar (ByteBuffer buffer, int index, ByteOrder order) { return (char) getShort (buffer, index, order); } ! public static void putChar (ByteBuffer buffer, int index, ! char value, ByteOrder order) { putShort (buffer, index, (short) value, order); } *************** final class ByteBufferHelper *** 76,82 **** return (short) ((buffer.get() << 8) + (buffer.get() & 0xff)); } ! public static void putShort (ByteBuffer buffer, short value, ByteOrder order) { buffer.checkForOverflow(2); --- 76,82 ---- return (short) ((buffer.get() << 8) + (buffer.get() & 0xff)); } ! public static void putShort (ByteBuffer buffer, short value, ByteOrder order) { buffer.checkForOverflow(2); *************** final class ByteBufferHelper *** 92,100 **** buffer.put ((byte) value); } } ! public static short getShort (ByteBuffer buffer, ! int index, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) { --- 92,100 ---- buffer.put ((byte) value); } } ! public static short getShort (ByteBuffer buffer, ! int index, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) { *************** final class ByteBufferHelper *** 105,113 **** return (short) ((buffer.get (index) << 8) + (buffer.get (++index) & 0xff)); } ! public static void putShort (ByteBuffer buffer, int index, ! short value, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) { --- 105,113 ---- return (short) ((buffer.get (index) << 8) + (buffer.get (++index) & 0xff)); } ! public static void putShort (ByteBuffer buffer, int index, ! short value, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) { *************** final class ByteBufferHelper *** 138,144 **** + ((buffer.get() & 0xff) << 8) + (buffer.get() & 0xff)); } ! public static void putInt (ByteBuffer buffer, int value, ByteOrder order) { buffer.checkForOverflow(4); --- 138,144 ---- + ((buffer.get() & 0xff) << 8) + (buffer.get() & 0xff)); } ! public static void putInt (ByteBuffer buffer, int value, ByteOrder order) { buffer.checkForOverflow(4); *************** final class ByteBufferHelper *** 158,164 **** buffer.put ((byte) value); } } ! public static int getInt (ByteBuffer buffer, int index, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) --- 158,164 ---- buffer.put ((byte) value); } } ! public static int getInt (ByteBuffer buffer, int index, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) *************** final class ByteBufferHelper *** 174,182 **** + ((buffer.get (++index) & 0xff) << 8) + (buffer.get (++index) & 0xff)); } ! public static void putInt (ByteBuffer buffer, int index, ! int value, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) { --- 174,182 ---- + ((buffer.get (++index) & 0xff) << 8) + (buffer.get (++index) & 0xff)); } ! public static void putInt (ByteBuffer buffer, int index, ! int value, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) { *************** final class ByteBufferHelper *** 219,225 **** + ((buffer.get() & 0xff) << 8) + (buffer.get() & 0xff)); } ! public static void putLong (ByteBuffer buffer, long value, ByteOrder order) { buffer.checkForOverflow(8); --- 219,225 ---- + ((buffer.get() & 0xff) << 8) + (buffer.get() & 0xff)); } ! public static void putLong (ByteBuffer buffer, long value, ByteOrder order) { buffer.checkForOverflow(8); *************** final class ByteBufferHelper *** 247,253 **** buffer.put ((byte) value); } } ! public static long getLong (ByteBuffer buffer, int index, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) --- 247,253 ---- buffer.put ((byte) value); } } ! public static long getLong (ByteBuffer buffer, int index, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) *************** final class ByteBufferHelper *** 271,279 **** + ((buffer.get (++index) & 0xff) << 8) + (buffer.get (++index) & 0xff)); } ! public static void putLong (ByteBuffer buffer, int index, ! long value, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) { --- 271,279 ---- + ((buffer.get (++index) & 0xff) << 8) + (buffer.get (++index) & 0xff)); } ! public static void putLong (ByteBuffer buffer, int index, ! long value, ByteOrder order) { if (order == ByteOrder.LITTLE_ENDIAN) { *************** final class ByteBufferHelper *** 303,321 **** { return Float.intBitsToFloat (getInt (buffer, order)); } ! public static void putFloat (ByteBuffer buffer, float value, ByteOrder order) { putInt (buffer, Float.floatToRawIntBits (value), order); } ! public static float getFloat (ByteBuffer buffer, int index, ByteOrder order) { return Float.intBitsToFloat (getInt (buffer, index, order)); } public static void putFloat (ByteBuffer buffer, int index, ! float value, ByteOrder order) { putInt (buffer, index, Float.floatToRawIntBits (value), order); } --- 303,321 ---- { return Float.intBitsToFloat (getInt (buffer, order)); } ! public static void putFloat (ByteBuffer buffer, float value, ByteOrder order) { putInt (buffer, Float.floatToRawIntBits (value), order); } ! public static float getFloat (ByteBuffer buffer, int index, ByteOrder order) { return Float.intBitsToFloat (getInt (buffer, index, order)); } public static void putFloat (ByteBuffer buffer, int index, ! float value, ByteOrder order) { putInt (buffer, index, Float.floatToRawIntBits (value), order); } *************** final class ByteBufferHelper *** 329,344 **** { putLong (buffer, Double.doubleToRawLongBits (value), order); } ! public static double getDouble (ByteBuffer buffer, int index, ByteOrder order) { return Double.longBitsToDouble (getLong (buffer, index, order)); } ! public static void putDouble (ByteBuffer buffer, int index, ! double value, ByteOrder order) { putLong (buffer, index, Double.doubleToRawLongBits (value), order); } } // ByteBufferHelper - --- 329,343 ---- { putLong (buffer, Double.doubleToRawLongBits (value), order); } ! public static double getDouble (ByteBuffer buffer, int index, ByteOrder order) { return Double.longBitsToDouble (getLong (buffer, index, order)); } ! public static void putDouble (ByteBuffer buffer, int index, ! double value, ByteOrder order) { putLong (buffer, index, Double.doubleToRawLongBits (value), order); } } // ByteBufferHelper diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/ByteBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/ByteBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/ByteBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/ByteBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ByteBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ByteBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ByteBufferImpl extends ByteB *** 46,57 **** private final boolean readOnly; ByteBufferImpl (byte[] buffer, int offset, int capacity, int limit, ! int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public CharBuffer asCharBuffer () { return new CharViewBufferImpl (this, remaining() >> 1); --- 46,57 ---- private final boolean readOnly; ByteBufferImpl (byte[] buffer, int offset, int capacity, int limit, ! int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public CharBuffer asCharBuffer () { return new CharViewBufferImpl (this, remaining() >> 1); *************** final class ByteBufferImpl extends ByteB *** 86,115 **** { return readOnly; } ! public ByteBuffer slice () { return new ByteBufferImpl (backing_buffer, array_offset + position (), ! remaining (), remaining (), 0, -1, isReadOnly ()); } ! public ByteBuffer duplicate () { return new ByteBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, isReadOnly ()); } ! public ByteBuffer asReadOnlyBuffer () { return new ByteBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, true); } ! void shiftDown (int dst_offset, int src_offset, int count) { System.arraycopy(backing_buffer, array_offset + src_offset, ! backing_buffer, array_offset + dst_offset, ! count); } public ByteBuffer compact () --- 86,115 ---- { return readOnly; } ! public ByteBuffer slice () { return new ByteBufferImpl (backing_buffer, array_offset + position (), ! remaining (), remaining (), 0, -1, isReadOnly ()); } ! public ByteBuffer duplicate () { return new ByteBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, isReadOnly ()); } ! public ByteBuffer asReadOnlyBuffer () { return new ByteBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, true); } ! void shiftDown (int dst_offset, int src_offset, int count) { System.arraycopy(backing_buffer, array_offset + src_offset, ! backing_buffer, array_offset + dst_offset, ! count); } public ByteBuffer compact () *************** final class ByteBufferImpl extends ByteB *** 124,130 **** limit(capacity()); return this; } ! public boolean isDirect () { return false; --- 124,130 ---- limit(capacity()); return this; } ! public boolean isDirect () { return false; *************** final class ByteBufferImpl extends ByteB *** 154,161 **** if ( (limit - pos) < length) // check for overflow throw new BufferUnderflowException(); ! System.arraycopy(backing_buffer, pos + array_offset, ! dst, offset, length); pos += length; return this; --- 154,161 ---- if ( (limit - pos) < length) // check for overflow throw new BufferUnderflowException(); ! System.arraycopy(backing_buffer, pos + array_offset, ! dst, offset, length); pos += length; return this; *************** final class ByteBufferImpl extends ByteB *** 194,200 **** backing_buffer [(pos++) + array_offset] = value; return this; } ! /** * Absolute get method. Reads the byte at position * index. --- 194,200 ---- backing_buffer [(pos++) + array_offset] = value; return this; } ! /** * Absolute get method. Reads the byte at position * index. *************** final class ByteBufferImpl extends ByteB *** 208,214 **** return backing_buffer [index + array_offset]; } ! /** * Absolute put method. Writes value to position * index in the buffer. --- 208,214 ---- return backing_buffer [index + array_offset]; } ! /** * Absolute put method. Writes value to position * index in the buffer. *************** final class ByteBufferImpl extends ByteB *** 225,236 **** backing_buffer [index + array_offset] = value; return this; } ! public char getChar () { return ByteBufferHelper.getChar(this, order()); } ! public ByteBuffer putChar (char value) { if (readOnly) --- 225,236 ---- backing_buffer [index + array_offset] = value; return this; } ! public char getChar () { return ByteBufferHelper.getChar(this, order()); } ! public ByteBuffer putChar (char value) { if (readOnly) *************** final class ByteBufferImpl extends ByteB *** 250,261 **** } return this; } ! public char getChar (int index) { return ByteBufferHelper.getChar(this, index, order()); } ! public ByteBuffer putChar (int index, char value) { ByteBufferHelper.putChar(this, index, value, order()); --- 250,261 ---- } return this; } ! public char getChar (int index) { return ByteBufferHelper.getChar(this, index, order()); } ! public ByteBuffer putChar (int index, char value) { ByteBufferHelper.putChar(this, index, value, order()); *************** final class ByteBufferImpl extends ByteB *** 266,283 **** { return ByteBufferHelper.getShort(this, order()); } ! public ByteBuffer putShort (short value) { ByteBufferHelper.putShort(this, value, order()); return this; } ! public short getShort (int index) { return ByteBufferHelper.getShort(this, index, order()); } ! public ByteBuffer putShort (int index, short value) { ByteBufferHelper.putShort(this, index, value, order()); --- 266,283 ---- { return ByteBufferHelper.getShort(this, order()); } ! public ByteBuffer putShort (short value) { ByteBufferHelper.putShort(this, value, order()); return this; } ! public short getShort (int index) { return ByteBufferHelper.getShort(this, index, order()); } ! public ByteBuffer putShort (int index, short value) { ByteBufferHelper.putShort(this, index, value, order()); *************** final class ByteBufferImpl extends ByteB *** 288,305 **** { return ByteBufferHelper.getInt(this, order()); } ! public ByteBuffer putInt (int value) { ByteBufferHelper.putInt(this, value, order()); return this; } ! public int getInt (int index) { return ByteBufferHelper.getInt(this, index, order()); } ! public ByteBuffer putInt (int index, int value) { ByteBufferHelper.putInt(this, index, value, order()); --- 288,305 ---- { return ByteBufferHelper.getInt(this, order()); } ! public ByteBuffer putInt (int value) { ByteBufferHelper.putInt(this, value, order()); return this; } ! public int getInt (int index) { return ByteBufferHelper.getInt(this, index, order()); } ! public ByteBuffer putInt (int index, int value) { ByteBufferHelper.putInt(this, index, value, order()); *************** final class ByteBufferImpl extends ByteB *** 310,327 **** { return ByteBufferHelper.getLong(this, order()); } ! public ByteBuffer putLong (long value) { ByteBufferHelper.putLong (this, value, order()); return this; } ! public long getLong (int index) { return ByteBufferHelper.getLong (this, index, order()); } ! public ByteBuffer putLong (int index, long value) { ByteBufferHelper.putLong (this, index, value, order()); --- 310,327 ---- { return ByteBufferHelper.getLong(this, order()); } ! public ByteBuffer putLong (long value) { ByteBufferHelper.putLong (this, value, order()); return this; } ! public long getLong (int index) { return ByteBufferHelper.getLong (this, index, order()); } ! public ByteBuffer putLong (int index, long value) { ByteBufferHelper.putLong (this, index, value, order()); *************** final class ByteBufferImpl extends ByteB *** 332,344 **** { return ByteBufferHelper.getFloat (this, order()); } ! public ByteBuffer putFloat (float value) { ByteBufferHelper.putFloat (this, value, order()); return this; } ! public float getFloat (int index) { return ByteBufferHelper.getFloat (this, index, order()); --- 332,344 ---- { return ByteBufferHelper.getFloat (this, order()); } ! public ByteBuffer putFloat (float value) { ByteBufferHelper.putFloat (this, value, order()); return this; } ! public float getFloat (int index) { return ByteBufferHelper.getFloat (this, index, order()); *************** final class ByteBufferImpl extends ByteB *** 360,371 **** ByteBufferHelper.putDouble (this, value, order()); return this; } ! public double getDouble (int index) { return ByteBufferHelper.getDouble (this, index, order()); } ! public ByteBuffer putDouble (int index, double value) { ByteBufferHelper.putDouble (this, index, value, order()); --- 360,371 ---- ByteBufferHelper.putDouble (this, value, order()); return this; } ! public double getDouble (int index) { return ByteBufferHelper.getDouble (this, index, order()); } ! public ByteBuffer putDouble (int index, double value) { ByteBufferHelper.putDouble (this, index, value, order()); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/ByteOrder.java gcc-4.6.0/libjava/classpath/java/nio/ByteOrder.java *** gcc-4.5.2/libjava/classpath/java/nio/ByteOrder.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/nio/ByteOrder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ByteOrder.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ByteOrder.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/CharBuffer.java gcc-4.6.0/libjava/classpath/java/nio/CharBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/CharBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/CharBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class CharBuffer extends *** 53,59 **** final char[] backing_buffer; CharBuffer (int capacity, int limit, int position, int mark, ! RawData address, char[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; --- 53,59 ---- final char[] backing_buffer; CharBuffer (int capacity, int limit, int position, int mark, ! RawData address, char[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; *************** public abstract class CharBuffer extends *** 77,92 **** * @param length the length of the region in the array to wrap * * @return a new CharBuffer object ! * * @exception IndexOutOfBoundsException If the preconditions on the offset * and length parameters do not hold */ public static final CharBuffer wrap(char[] array, int offset, int length) { return new CharBufferImpl(array, 0, array.length, offset + length, offset, ! -1, false); } ! /** * Wraps a character sequence into a CharBuffer object. * --- 77,92 ---- * @param length the length of the region in the array to wrap * * @return a new CharBuffer object ! * * @exception IndexOutOfBoundsException If the preconditions on the offset * and length parameters do not hold */ public static final CharBuffer wrap(char[] array, int offset, int length) { return new CharBufferImpl(array, 0, array.length, offset + length, offset, ! -1, false); } ! /** * Wraps a character sequence into a CharBuffer object. * *************** public abstract class CharBuffer extends *** 98,113 **** { return wrap(seq, 0, seq.length()); } ! /** * Wraps a character sequence into a CharBuffer object. ! * * @param seq the sequence to wrap * @param start the index of the first character to wrap * @param end the index of the first character not to wrap * * @return a new CharBuffer object ! * * @exception IndexOutOfBoundsException If the preconditions on the offset * and length parameters do not hold */ --- 98,113 ---- { return wrap(seq, 0, seq.length()); } ! /** * Wraps a character sequence into a CharBuffer object. ! * * @param seq the sequence to wrap * @param start the index of the first character to wrap * @param end the index of the first character not to wrap * * @return a new CharBuffer object ! * * @exception IndexOutOfBoundsException If the preconditions on the offset * and length parameters do not hold */ *************** public abstract class CharBuffer extends *** 128,138 **** { return wrap(array, 0, array.length); } ! /** * This method transfers chars from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length chars remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first char --- 128,138 ---- { return wrap(array, 0, array.length); } ! /** * This method transfers chars from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length chars remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first char *************** public abstract class CharBuffer extends *** 207,213 **** { char[] toPut = new char [src.remaining ()]; src.get (toPut); ! put (toPut); } return this; --- 207,213 ---- { char[] toPut = new char [src.remaining ()]; src.get (toPut); ! put (toPut); } return this; *************** public abstract class CharBuffer extends *** 223,229 **** * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining chars in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset --- 223,229 ---- * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining chars in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset *************** public abstract class CharBuffer extends *** 234,240 **** { checkArraySize(src.length, offset, length); checkForOverflow(length); ! for (int i = offset; i < offset + length; i++) put (src [i]); --- 234,240 ---- { checkArraySize(src.length, offset, length); checkForOverflow(length); ! for (int i = offset; i < offset + length; i++) put (src [i]); *************** public abstract class CharBuffer extends *** 246,252 **** * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining chars in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. --- 246,252 ---- * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining chars in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. *************** public abstract class CharBuffer extends *** 296,302 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } --- 296,302 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } *************** public abstract class CharBuffer extends *** 317,324 **** int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return hashCode; } --- 317,324 ---- int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return hashCode; } *************** public abstract class CharBuffer extends *** 347,367 **** int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! char a = get(pos_this++); ! char b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } --- 347,367 ---- int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! char a = get(pos_this++); ! char b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } *************** public abstract class CharBuffer extends *** 383,389 **** * Writes the char at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * chars in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 383,389 ---- * Writes the char at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * chars in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** public abstract class CharBuffer extends *** 396,402 **** * than the buffer's limit. */ public abstract char get (int index); ! /** * Absolute put method. * --- 396,402 ---- * than the buffer's limit. */ public abstract char get (int index); ! /** * Absolute put method. * *************** public abstract class CharBuffer extends *** 408,414 **** /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract CharBuffer compact (); --- 408,414 ---- /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract CharBuffer compact (); *************** public abstract class CharBuffer extends *** 435,441 **** * buffer's content. */ public abstract CharBuffer asReadOnlyBuffer (); ! /** * Returns the remaining content of the buffer as a string. */ --- 435,441 ---- * buffer's content. */ public abstract CharBuffer asReadOnlyBuffer (); ! /** * Returns the remaining content of the buffer as a string. */ *************** public abstract class CharBuffer extends *** 455,461 **** * Returns the length of the remaining chars in this buffer. */ public final int length () ! { return remaining (); } --- 455,461 ---- * Returns the length of the remaining chars in this buffer. */ public final int length () ! { return remaining (); } *************** public abstract class CharBuffer extends *** 470,476 **** /** * Relative put method. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer. * @exception IndexOutOfBoundsException If the preconditions on the start --- 470,476 ---- /** * Relative put method. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer. * @exception IndexOutOfBoundsException If the preconditions on the start *************** public abstract class CharBuffer extends *** 481,490 **** { return put (str.toCharArray (), start, length); } ! /** * Relative put method. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer. * @exception ReadOnlyBufferException If this buffer is read-only. --- 481,490 ---- { return put (str.toCharArray (), start, length); } ! /** * Relative put method. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer. * @exception ReadOnlyBufferException If this buffer is read-only. *************** public abstract class CharBuffer extends *** 493,502 **** { return put (str.toCharArray (), 0, str.length ()); } ! /** * Returns the character at position() + index. ! * * @exception IndexOutOfBoundsException If index is negative not smaller than * remaining(). */ --- 493,502 ---- { return put (str.toCharArray (), 0, str.length ()); } ! /** * Returns the character at position() + index. ! * * @exception IndexOutOfBoundsException If index is negative not smaller than * remaining(). */ *************** public abstract class CharBuffer extends *** 505,511 **** if (index < 0 || index >= remaining ()) throw new IndexOutOfBoundsException (); ! return get (position () + index); } --- 505,511 ---- if (index < 0 || index >= remaining ()) throw new IndexOutOfBoundsException (); ! return get (position () + index); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/CharBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/CharBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/CharBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/CharBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharBufferImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharBufferImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class CharBufferImpl extends CharB *** 49,87 **** { this (new char [capacity], 0, capacity, capacity, 0, -1, false); } ! CharBufferImpl (char[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public CharBufferImpl (CharBufferImpl copy) { super (copy.capacity (), copy.limit (), copy.position (), 0, null, copy.backing_buffer, copy.array_offset); this.readOnly = copy.isReadOnly (); } ! public boolean isReadOnly () { return readOnly; } ! public CharBuffer slice () { return new CharBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); } ! public CharBuffer duplicate () { return new CharBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); } ! public CharBuffer asReadOnlyBuffer () { return new CharBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); } ! public CharBuffer compact () { checkIfReadOnly(); --- 49,87 ---- { this (new char [capacity], 0, capacity, capacity, 0, -1, false); } ! CharBufferImpl (char[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public CharBufferImpl (CharBufferImpl copy) { super (copy.capacity (), copy.limit (), copy.position (), 0, null, copy.backing_buffer, copy.array_offset); this.readOnly = copy.isReadOnly (); } ! public boolean isReadOnly () { return readOnly; } ! public CharBuffer slice () { return new CharBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); } ! public CharBuffer duplicate () { return new CharBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); } ! public CharBuffer asReadOnlyBuffer () { return new CharBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); } ! public CharBuffer compact () { checkIfReadOnly(); *************** final class CharBufferImpl extends CharB *** 97,103 **** limit(capacity()); return this; } ! public boolean isDirect () { return false; --- 97,103 ---- limit(capacity()); return this; } ! public boolean isDirect () { return false; *************** final class CharBufferImpl extends CharB *** 113,119 **** return new CharBufferImpl (backing_buffer, array_offset, capacity (), position () + end, position () + start, -1, isReadOnly ()); } ! /** * Reads the char at this buffer's current position, * and then increments the position. --- 113,119 ---- return new CharBufferImpl (backing_buffer, array_offset, capacity (), position () + end, position () + start, -1, isReadOnly ()); } ! /** * Reads the char at this buffer's current position, * and then increments the position. *************** final class CharBufferImpl extends CharB *** 128,138 **** return backing_buffer [(pos++) + array_offset]; } ! /** * Relative put method. Writes value to the next position * in the buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public CharBuffer put (char value) --- 128,138 ---- return backing_buffer [(pos++) + array_offset]; } ! /** * Relative put method. Writes value to the next position * in the buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public CharBuffer put (char value) *************** final class CharBufferImpl extends CharB *** 145,151 **** backing_buffer [(pos++) + array_offset] = value; return this; } ! /** * Absolute get method. Reads the char at position * index. --- 145,151 ---- backing_buffer [(pos++) + array_offset] = value; return this; } ! /** * Absolute get method. Reads the char at position * index. *************** final class CharBufferImpl extends CharB *** 158,167 **** public char get (int index) { checkIndex(index); ! return backing_buffer [index + array_offset]; } ! /** * Bulk get, overloaded for speed. */ --- 158,167 ---- public char get (int index) { checkIndex(index); ! return backing_buffer [index + array_offset]; } ! /** * Bulk get, overloaded for speed. */ *************** final class CharBufferImpl extends CharB *** 170,177 **** checkArraySize(dst.length, offset, length); checkForUnderflow(length); ! System.arraycopy(backing_buffer, pos + array_offset, ! dst, offset, length); pos += length; return this; } --- 170,177 ---- checkArraySize(dst.length, offset, length); checkForUnderflow(length); ! System.arraycopy(backing_buffer, pos + array_offset, ! dst, offset, length); pos += length; return this; } *************** final class CharBufferImpl extends CharB *** 183,191 **** { checkArraySize(src.length, offset, length); checkForOverflow(length); ! System.arraycopy(src, offset, ! backing_buffer, pos + array_offset, length); pos += length; return this; } --- 183,191 ---- { checkArraySize(src.length, offset, length); checkForOverflow(length); ! System.arraycopy(src, offset, ! backing_buffer, pos + array_offset, length); pos += length; return this; } *************** final class CharBufferImpl extends CharB *** 202,212 **** { checkIndex(index); checkIfReadOnly(); ! backing_buffer [index + array_offset] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); --- 202,212 ---- { checkIndex(index); checkIfReadOnly(); ! backing_buffer [index + array_offset] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/CharSequenceBuffer.java gcc-4.6.0/libjava/classpath/java/nio/CharSequenceBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/CharSequenceBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/CharSequenceBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharBuffer.java -- Copyright (C) 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharBuffer.java -- Copyright (C) 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class CharSequenceBuffer *** 86,92 **** public CharBuffer asReadOnlyBuffer() { return duplicate(); ! } /** * This buffer class is not writable by definition and thus throws --- 86,92 ---- public CharBuffer asReadOnlyBuffer() { return duplicate(); ! } /** * This buffer class is not writable by definition and thus throws diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/CharViewBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/CharViewBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/CharViewBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/CharViewBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** class CharViewBufferImpl extends CharBuf *** 45,69 **** private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! CharViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, bb.position()) : null, ! null, 0); this.bb = bb; this.offset = bb.position(); this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public CharViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset) : null, ! null, 0); this.bb = bb; this.offset = offset; this.readOnly = readOnly; --- 45,69 ---- private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! CharViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, bb.position()) : null, ! null, 0); this.bb = bb; this.offset = bb.position(); this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public CharViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset) : null, ! null, 0); this.bb = bb; this.offset = offset; this.readOnly = readOnly; *************** class CharViewBufferImpl extends CharBuf *** 106,112 **** position(p + 1); return this; } ! public CharBuffer put (int index, char value) { ByteBufferHelper.putChar(bb, (index << 1) + offset, value, endian); --- 106,112 ---- position(p + 1); return this; } ! public CharBuffer put (int index, char value) { ByteBufferHelper.putChar(bb, (index << 1) + offset, value, endian); *************** class CharViewBufferImpl extends CharBuf *** 118,143 **** if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 2 * position(), 2 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public CharBuffer slice () { // Create a sliced copy of this object that shares its content. return new CharViewBufferImpl (bb, (position () << 1) + offset, ! remaining (), remaining (), 0, -1, ! isReadOnly (), endian); } ! CharBuffer duplicate (boolean readOnly) { int pos = position(); --- 118,143 ---- if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 2 * position(), 2 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public CharBuffer slice () { // Create a sliced copy of this object that shares its content. return new CharViewBufferImpl (bb, (position () << 1) + offset, ! remaining (), remaining (), 0, -1, ! isReadOnly (), endian); } ! CharBuffer duplicate (boolean readOnly) { int pos = position(); *************** class CharViewBufferImpl extends CharBuf *** 147,153 **** return new CharViewBufferImpl (bb, offset, capacity(), limit(), pos, mark, readOnly, endian); } ! public CharBuffer duplicate () { return duplicate(readOnly); --- 147,153 ---- return new CharViewBufferImpl (bb, offset, capacity(), limit(), pos, mark, readOnly, endian); } ! public CharBuffer duplicate () { return duplicate(readOnly); *************** class CharViewBufferImpl extends CharBuf *** 166,185 **** throw new IndexOutOfBoundsException (); return new CharViewBufferImpl (bb, array_offset, capacity (), ! position () + end, position () + start, ! -1, isReadOnly (), endian); } public boolean isReadOnly () { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; --- 166,185 ---- throw new IndexOutOfBoundsException (); return new CharViewBufferImpl (bb, array_offset, capacity (), ! position () + end, position () + start, ! -1, isReadOnly (), endian); } public boolean isReadOnly () { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/DirectByteBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/DirectByteBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/DirectByteBufferImpl.java Wed Oct 22 18:19:29 2008 --- gcc-4.6.0/libjava/classpath/java/nio/DirectByteBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DirectByteBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DirectByteBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** abstract class DirectByteBufferImpl exte *** 60,67 **** static final class ReadOnly extends DirectByteBufferImpl { ReadOnly(Object owner, Pointer address, ! int capacity, int limit, ! int position) { super(owner, address, capacity, limit, position); } --- 60,67 ---- static final class ReadOnly extends DirectByteBufferImpl { ReadOnly(Object owner, Pointer address, ! int capacity, int limit, ! int position) { super(owner, address, capacity, limit, position); } *************** abstract class DirectByteBufferImpl exte *** 93,102 **** { super(address, capacity); } ! ReadWrite(Object owner, Pointer address, ! int capacity, int limit, ! int position) { super(owner, address, capacity, limit, position); } --- 93,102 ---- { super(address, capacity); } ! ReadWrite(Object owner, Pointer address, ! int capacity, int limit, ! int position) { super(owner, address, capacity, limit, position); } *************** abstract class DirectByteBufferImpl exte *** 110,116 **** DirectByteBufferImpl(int capacity) { super(capacity, capacity, 0, -1, ! VMDirectByteBuffer.allocate(capacity), null, 0); this.owner = this; } --- 110,116 ---- DirectByteBufferImpl(int capacity) { super(capacity, capacity, 0, -1, ! VMDirectByteBuffer.allocate(capacity), null, 0); this.owner = this; } *************** abstract class DirectByteBufferImpl exte *** 119,128 **** super(capacity, capacity, 0, -1, address, null, 0); this.owner = null; } ! DirectByteBufferImpl(Object owner, Pointer address, ! int capacity, int limit, ! int position) { super(capacity, limit, position, -1, address, null, 0); this.owner = owner; --- 119,128 ---- super(capacity, capacity, 0, -1, address, null, 0); this.owner = null; } ! DirectByteBufferImpl(Object owner, Pointer address, ! int capacity, int limit, ! int position) { super(capacity, limit, position, -1, address, null, 0); this.owner = owner; *************** abstract class DirectByteBufferImpl exte *** 130,136 **** /** * Allocates a new direct byte buffer. ! */ public static ByteBuffer allocate(int capacity) { return new DirectByteBufferImpl.ReadWrite(capacity); --- 130,136 ---- /** * Allocates a new direct byte buffer. ! */ public static ByteBuffer allocate(int capacity) { return new DirectByteBufferImpl.ReadWrite(capacity); *************** abstract class DirectByteBufferImpl exte *** 141,147 **** if (owner == this) VMDirectByteBuffer.free(address); } ! public byte get() { checkForUnderflow(); --- 141,147 ---- if (owner == this) VMDirectByteBuffer.free(address); } ! public byte get() { checkForUnderflow(); *************** abstract class DirectByteBufferImpl exte *** 180,186 **** position(pos + 1); return this; } ! public ByteBuffer put(int index, byte value) { checkIndex(index); --- 180,186 ---- position(pos + 1); return this; } ! public ByteBuffer put(int index, byte value) { checkIndex(index); *************** abstract class DirectByteBufferImpl exte *** 188,194 **** VMDirectByteBuffer.put(address, index, value); return this; } ! public ByteBuffer put (byte[] src, int offset, int length) { checkArraySize (src.length, offset, length); --- 188,194 ---- VMDirectByteBuffer.put(address, index, value); return this; } ! public ByteBuffer put (byte[] src, int offset, int length) { checkArraySize (src.length, offset, length); *************** abstract class DirectByteBufferImpl exte *** 196,210 **** int index = position (); VMDirectByteBuffer.put (address, index, src, offset, length); position (index + length); ! return this; } ! void shiftDown(int dst_offset, int src_offset, int count) { VMDirectByteBuffer.shiftDown(address, dst_offset, src_offset, count); } ! public ByteBuffer compact() { checkIfReadOnly(); --- 196,210 ---- int index = position (); VMDirectByteBuffer.put (address, index, src, offset, length); position (index + length); ! return this; } ! void shiftDown(int dst_offset, int src_offset, int count) { VMDirectByteBuffer.shiftDown(address, dst_offset, src_offset, count); } ! public ByteBuffer compact() { checkIfReadOnly(); *************** abstract class DirectByteBufferImpl exte *** 212,226 **** int pos = position(); if (pos > 0) { ! int count = remaining(); ! VMDirectByteBuffer.shiftDown(address, 0, pos, count); ! position(count); ! limit(capacity()); } else { ! position(limit()); ! limit(capacity()); } return this; } --- 212,226 ---- int pos = position(); if (pos > 0) { ! int count = remaining(); ! VMDirectByteBuffer.shiftDown(address, 0, pos, count); ! position(count); ! limit(capacity()); } else { ! position(limit()); ! limit(capacity()); } return this; } *************** abstract class DirectByteBufferImpl exte *** 255,263 **** if (mark != pos) { ! result.position(mark); ! result.mark(); ! result.position(pos); } return result; } --- 255,263 ---- if (mark != pos) { ! result.position(mark); ! result.mark(); ! result.position(pos); } return result; } *************** abstract class DirectByteBufferImpl exte *** 311,328 **** { return ByteBufferHelper.getChar(this, order()); } ! public ByteBuffer putChar(char value) { ByteBufferHelper.putChar(this, value, order()); return this; } ! public char getChar(int index) { return ByteBufferHelper.getChar(this, index, order()); } ! public ByteBuffer putChar(int index, char value) { ByteBufferHelper.putChar(this, index, value, order()); --- 311,328 ---- { return ByteBufferHelper.getChar(this, order()); } ! public ByteBuffer putChar(char value) { ByteBufferHelper.putChar(this, value, order()); return this; } ! public char getChar(int index) { return ByteBufferHelper.getChar(this, index, order()); } ! public ByteBuffer putChar(int index, char value) { ByteBufferHelper.putChar(this, index, value, order()); *************** abstract class DirectByteBufferImpl exte *** 333,350 **** { return ByteBufferHelper.getShort(this, order()); } ! public ByteBuffer putShort(short value) { ByteBufferHelper.putShort(this, value, order()); return this; } ! public short getShort(int index) { return ByteBufferHelper.getShort(this, index, order()); } ! public ByteBuffer putShort(int index, short value) { ByteBufferHelper.putShort(this, index, value, order()); --- 333,350 ---- { return ByteBufferHelper.getShort(this, order()); } ! public ByteBuffer putShort(short value) { ByteBufferHelper.putShort(this, value, order()); return this; } ! public short getShort(int index) { return ByteBufferHelper.getShort(this, index, order()); } ! public ByteBuffer putShort(int index, short value) { ByteBufferHelper.putShort(this, index, value, order()); *************** abstract class DirectByteBufferImpl exte *** 355,372 **** { return ByteBufferHelper.getInt(this, order()); } ! public ByteBuffer putInt(int value) { ByteBufferHelper.putInt(this, value, order()); return this; } ! public int getInt(int index) { return ByteBufferHelper.getInt(this, index, order()); } ! public ByteBuffer putInt(int index, int value) { ByteBufferHelper.putInt(this, index, value, order()); --- 355,372 ---- { return ByteBufferHelper.getInt(this, order()); } ! public ByteBuffer putInt(int value) { ByteBufferHelper.putInt(this, value, order()); return this; } ! public int getInt(int index) { return ByteBufferHelper.getInt(this, index, order()); } ! public ByteBuffer putInt(int index, int value) { ByteBufferHelper.putInt(this, index, value, order()); *************** abstract class DirectByteBufferImpl exte *** 377,394 **** { return ByteBufferHelper.getLong(this, order()); } ! public ByteBuffer putLong(long value) { ByteBufferHelper.putLong(this, value, order()); return this; } ! public long getLong(int index) { return ByteBufferHelper.getLong(this, index, order()); } ! public ByteBuffer putLong(int index, long value) { ByteBufferHelper.putLong(this, index, value, order()); --- 377,394 ---- { return ByteBufferHelper.getLong(this, order()); } ! public ByteBuffer putLong(long value) { ByteBufferHelper.putLong(this, value, order()); return this; } ! public long getLong(int index) { return ByteBufferHelper.getLong(this, index, order()); } ! public ByteBuffer putLong(int index, long value) { ByteBufferHelper.putLong(this, index, value, order()); *************** abstract class DirectByteBufferImpl exte *** 399,411 **** { return ByteBufferHelper.getFloat(this, order()); } ! public ByteBuffer putFloat(float value) { ByteBufferHelper.putFloat(this, value, order()); return this; } ! public float getFloat(int index) { return ByteBufferHelper.getFloat(this, index, order()); --- 399,411 ---- { return ByteBufferHelper.getFloat(this, order()); } ! public ByteBuffer putFloat(float value) { ByteBufferHelper.putFloat(this, value, order()); return this; } ! public float getFloat(int index) { return ByteBufferHelper.getFloat(this, index, order()); *************** abstract class DirectByteBufferImpl exte *** 427,438 **** ByteBufferHelper.putDouble(this, value, order()); return this; } ! public double getDouble(int index) { return ByteBufferHelper.getDouble(this, index, order()); } ! public ByteBuffer putDouble(int index, double value) { ByteBufferHelper.putDouble(this, index, value, order()); --- 427,438 ---- ByteBufferHelper.putDouble(this, value, order()); return this; } ! public double getDouble(int index) { return ByteBufferHelper.getDouble(this, index, order()); } ! public ByteBuffer putDouble(int index, double value) { ByteBufferHelper.putDouble(this, index, value, order()); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/DoubleBuffer.java gcc-4.6.0/libjava/classpath/java/nio/DoubleBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/DoubleBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/DoubleBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DoubleBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DoubleBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class DoubleBuffer exten *** 51,57 **** final double[] backing_buffer; DoubleBuffer (int capacity, int limit, int position, int mark, ! RawData address, double[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; --- 51,57 ---- final double[] backing_buffer; DoubleBuffer (int capacity, int limit, int position, int mark, ! RawData address, double[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; *************** public abstract class DoubleBuffer exten *** 86,96 **** { return wrap (array, 0, array.length); } ! /** * This method transfers doubles from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length doubles remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first double --- 86,96 ---- { return wrap (array, 0, array.length); } ! /** * This method transfers doubles from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length doubles remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first double *************** public abstract class DoubleBuffer exten *** 169,175 **** * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining doubles in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset --- 169,175 ---- * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining doubles in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset *************** public abstract class DoubleBuffer exten *** 192,198 **** * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining doubles in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. --- 192,198 ---- * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining doubles in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. *************** public abstract class DoubleBuffer exten *** 225,231 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } --- 225,231 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } *************** public abstract class DoubleBuffer exten *** 242,248 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } --- 242,248 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } *************** public abstract class DoubleBuffer exten *** 254,260 **** * s[position()] + 31 + (s[position()+1] + 30)*31**1 + ... + * (s[limit()-1]+30)*31**(limit()-1). * Where s is the buffer data, in Double.doubleToLongBits() form ! * Note that the hashcode is dependent on buffer content, * and therefore is not useful if the buffer content may change. * * @return the hash code (casted to int) --- 254,260 ---- * s[position()] + 31 + (s[position()+1] + 30)*31**1 + ... + * (s[limit()-1]+30)*31**(limit()-1). * Where s is the buffer data, in Double.doubleToLongBits() form ! * Note that the hashcode is dependent on buffer content, * and therefore is not useful if the buffer content may change. * * @return the hash code (casted to int) *************** public abstract class DoubleBuffer exten *** 265,272 **** long multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (Double.doubleToLongBits(get(i)) + 30)*multiplier; } return ((int)hashCode); } --- 265,272 ---- long multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (Double.doubleToLongBits(get(i)) + 30)*multiplier; } return ((int)hashCode); } *************** public abstract class DoubleBuffer exten *** 295,315 **** int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! double a = get(pos_this++); ! double b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } --- 295,315 ---- int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! double a = get(pos_this++); ! double b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } *************** public abstract class DoubleBuffer exten *** 331,337 **** * Writes the double at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * doubles in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 331,337 ---- * Writes the double at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * doubles in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** public abstract class DoubleBuffer exten *** 344,350 **** * than the buffer's limit. */ public abstract double get (int index); ! /** * Absolute put method. * --- 344,350 ---- * than the buffer's limit. */ public abstract double get (int index); ! /** * Absolute put method. * *************** public abstract class DoubleBuffer exten *** 356,362 **** /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract DoubleBuffer compact (); --- 356,362 ---- /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract DoubleBuffer compact (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/DoubleBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/DoubleBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/DoubleBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/DoubleBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DoubleBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DoubleBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class DoubleBufferImpl extends Dou *** 49,85 **** { this (new double [capacity], 0, capacity, capacity, 0, -1, false); } ! DoubleBufferImpl (double[] buffer, int offset, int capacity, int limit, ! int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public DoubleBuffer slice () { return new DoubleBufferImpl (backing_buffer, array_offset + position (), ! remaining (), remaining (), 0, -1, isReadOnly ()); } ! public DoubleBuffer duplicate () { return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, isReadOnly ()); } ! public DoubleBuffer asReadOnlyBuffer () { return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, true); } ! public DoubleBuffer compact () { checkIfReadOnly(); --- 49,85 ---- { this (new double [capacity], 0, capacity, capacity, 0, -1, false); } ! DoubleBufferImpl (double[] buffer, int offset, int capacity, int limit, ! int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public DoubleBuffer slice () { return new DoubleBufferImpl (backing_buffer, array_offset + position (), ! remaining (), remaining (), 0, -1, isReadOnly ()); } ! public DoubleBuffer duplicate () { return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, isReadOnly ()); } ! public DoubleBuffer asReadOnlyBuffer () { return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, true); } ! public DoubleBuffer compact () { checkIfReadOnly(); *************** final class DoubleBufferImpl extends Dou *** 95,101 **** limit(capacity()); return this; } ! public boolean isDirect () { return false; --- 95,101 ---- limit(capacity()); return this; } ! public boolean isDirect () { return false; *************** final class DoubleBufferImpl extends Dou *** 116,127 **** position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. * ! * @exception BufferOverflowException If there no remaining * space in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 116,127 ---- position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. * ! * @exception BufferOverflowException If there no remaining * space in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** final class DoubleBufferImpl extends Dou *** 129,140 **** { checkIfReadOnly(); checkForOverflow(); ! backing_buffer [position ()] = value; position (position () + 1); return this; } ! /** * Absolute get method. Reads the double at position * index. --- 129,140 ---- { checkIfReadOnly(); checkForOverflow(); ! backing_buffer [position ()] = value; position (position () + 1); return this; } ! /** * Absolute get method. Reads the double at position * index. *************** final class DoubleBufferImpl extends Dou *** 148,154 **** return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. --- 148,154 ---- return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. *************** final class DoubleBufferImpl extends Dou *** 165,171 **** backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); --- 165,171 ---- backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/DoubleViewBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/DoubleViewBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/DoubleViewBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/DoubleViewBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DoubleViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DoubleViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class DoubleViewBufferImpl extends *** 45,51 **** private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! DoubleViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? --- 45,51 ---- private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! DoubleViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? *************** final class DoubleViewBufferImpl extends *** 55,61 **** this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public DoubleViewBufferImpl (ByteBuffer bb, int offset, int capacity, int limit, int position, int mark, boolean readOnly, ByteOrder endian) --- 55,61 ---- this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public DoubleViewBufferImpl (ByteBuffer bb, int offset, int capacity, int limit, int position, int mark, boolean readOnly, ByteOrder endian) *************** final class DoubleViewBufferImpl extends *** 102,108 **** position(p + 1); return this; } ! public DoubleBuffer put (int index, double value) { ByteBufferHelper.putDouble(bb, (index << 3) + offset, value, endian); --- 102,108 ---- position(p + 1); return this; } ! public DoubleBuffer put (int index, double value) { ByteBufferHelper.putDouble(bb, (index << 3) + offset, value, endian); *************** final class DoubleViewBufferImpl extends *** 114,138 **** if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 8 * position(), 8 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public DoubleBuffer slice () { return new DoubleViewBufferImpl (bb, (position () << 3) + offset, ! remaining(), remaining(), 0, -1, readOnly, endian); } ! DoubleBuffer duplicate (boolean readOnly) { int pos = position(); --- 114,138 ---- if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 8 * position(), 8 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public DoubleBuffer slice () { return new DoubleViewBufferImpl (bb, (position () << 3) + offset, ! remaining(), remaining(), 0, -1, readOnly, endian); } ! DoubleBuffer duplicate (boolean readOnly) { int pos = position(); *************** final class DoubleViewBufferImpl extends *** 142,148 **** return new DoubleViewBufferImpl (bb, offset, capacity(), limit(), pos, mark, readOnly, endian); } ! public DoubleBuffer duplicate () { return duplicate(readOnly); --- 142,148 ---- return new DoubleViewBufferImpl (bb, offset, capacity(), limit(), pos, mark, readOnly, endian); } ! public DoubleBuffer duplicate () { return duplicate(readOnly); *************** final class DoubleViewBufferImpl extends *** 157,168 **** { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; --- 157,168 ---- { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/FloatBuffer.java gcc-4.6.0/libjava/classpath/java/nio/FloatBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/FloatBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/FloatBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FloatBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FloatBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class FloatBuffer extend *** 51,57 **** final float[] backing_buffer; FloatBuffer (int capacity, int limit, int position, int mark, ! RawData address, float[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; --- 51,57 ---- final float[] backing_buffer; FloatBuffer (int capacity, int limit, int position, int mark, ! RawData address, float[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; *************** public abstract class FloatBuffer extend *** 86,96 **** { return wrap (array, 0, array.length); } ! /** * This method transfers floats from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length floats remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first float --- 86,96 ---- { return wrap (array, 0, array.length); } ! /** * This method transfers floats from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length floats remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first float *************** public abstract class FloatBuffer extend *** 169,175 **** * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining floats in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset --- 169,175 ---- * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining floats in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset *************** public abstract class FloatBuffer extend *** 192,198 **** * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining floats in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. --- 192,198 ---- * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining floats in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. *************** public abstract class FloatBuffer extend *** 225,231 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } --- 225,231 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } *************** public abstract class FloatBuffer extend *** 242,248 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } --- 242,248 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } *************** public abstract class FloatBuffer extend *** 254,260 **** * s[position()] + 31 + (s[position()+1] + 30)*31**1 + ... + * (s[limit()-1]+30)*31**(limit()-1). * Where s is the buffer data, in Float.floatToIntBits() form ! * Note that the hashcode is dependent on buffer content, * and therefore is not useful if the buffer content may change. * * @return the hash code --- 254,260 ---- * s[position()] + 31 + (s[position()+1] + 30)*31**1 + ... + * (s[limit()-1]+30)*31**(limit()-1). * Where s is the buffer data, in Float.floatToIntBits() form ! * Note that the hashcode is dependent on buffer content, * and therefore is not useful if the buffer content may change. * * @return the hash code *************** public abstract class FloatBuffer extend *** 265,272 **** int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (Float.floatToIntBits(get(i)) + 30)*multiplier; } return hashCode; } --- 265,272 ---- int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (Float.floatToIntBits(get(i)) + 30)*multiplier; } return hashCode; } *************** public abstract class FloatBuffer extend *** 295,315 **** int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! float a = get(pos_this++); ! float b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } --- 295,315 ---- int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! float a = get(pos_this++); ! float b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } *************** public abstract class FloatBuffer extend *** 331,337 **** * Writes the float at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * floats in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 331,337 ---- * Writes the float at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * floats in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** public abstract class FloatBuffer extend *** 344,350 **** * than the buffer's limit. */ public abstract float get (int index); ! /** * Absolute put method. * --- 344,350 ---- * than the buffer's limit. */ public abstract float get (int index); ! /** * Absolute put method. * *************** public abstract class FloatBuffer extend *** 356,362 **** /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract FloatBuffer compact (); --- 356,362 ---- /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract FloatBuffer compact (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/FloatBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/FloatBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/FloatBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/FloatBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FloatBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FloatBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class FloatBufferImpl extends Floa *** 49,82 **** { this (new float [capacity], 0, capacity, capacity, 0, -1, false); } ! FloatBufferImpl (float[] buffer, int offset, int capacity, int limit, ! int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public FloatBuffer slice () { return new FloatBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); } ! public FloatBuffer duplicate () { return new FloatBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); } ! public FloatBuffer asReadOnlyBuffer () { return new FloatBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); } ! public FloatBuffer compact () { checkIfReadOnly(); --- 49,82 ---- { this (new float [capacity], 0, capacity, capacity, 0, -1, false); } ! FloatBufferImpl (float[] buffer, int offset, int capacity, int limit, ! int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public FloatBuffer slice () { return new FloatBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); } ! public FloatBuffer duplicate () { return new FloatBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); } ! public FloatBuffer asReadOnlyBuffer () { return new FloatBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); } ! public FloatBuffer compact () { checkIfReadOnly(); *************** final class FloatBufferImpl extends Floa *** 92,98 **** limit(capacity()); return this; } ! public boolean isDirect () { return false; --- 92,98 ---- limit(capacity()); return this; } ! public boolean isDirect () { return false; *************** final class FloatBufferImpl extends Floa *** 113,124 **** position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. ! * ! * @exception BufferOverflowException If there no remaining * space in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 113,124 ---- position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. ! * ! * @exception BufferOverflowException If there no remaining * space in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** final class FloatBufferImpl extends Floa *** 131,137 **** position (position () + 1); return this; } ! /** * Absolute get method. Reads the float at position * index. --- 131,137 ---- position (position () + 1); return this; } ! /** * Absolute get method. Reads the float at position * index. *************** final class FloatBufferImpl extends Floa *** 145,151 **** return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. --- 145,151 ---- return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. *************** final class FloatBufferImpl extends Floa *** 162,168 **** backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); --- 162,168 ---- backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/FloatViewBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/FloatViewBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/FloatViewBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/FloatViewBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FloatViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FloatViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class FloatViewBufferImpl extends *** 45,51 **** private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! FloatViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? --- 45,51 ---- private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! FloatViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? *************** final class FloatViewBufferImpl extends *** 55,64 **** this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public FloatViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0); --- 55,64 ---- this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public FloatViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0); *************** final class FloatViewBufferImpl extends *** 102,108 **** position(p + 1); return this; } ! public FloatBuffer put (int index, float value) { ByteBufferHelper.putFloat(bb, (index << 2) + offset, value, endian); --- 102,108 ---- position(p + 1); return this; } ! public FloatBuffer put (int index, float value) { ByteBufferHelper.putFloat(bb, (index << 2) + offset, value, endian); *************** final class FloatViewBufferImpl extends *** 114,139 **** if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 4 * position(), 4 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public FloatBuffer slice () { // Create a sliced copy of this object that shares its content. return new FloatViewBufferImpl (bb, (position () << 2) + offset, ! remaining(), remaining(), 0, -1, ! readOnly, endian); } ! FloatBuffer duplicate (boolean readOnly) { int pos = position(); --- 114,139 ---- if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 4 * position(), 4 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public FloatBuffer slice () { // Create a sliced copy of this object that shares its content. return new FloatViewBufferImpl (bb, (position () << 2) + offset, ! remaining(), remaining(), 0, -1, ! readOnly, endian); } ! FloatBuffer duplicate (boolean readOnly) { int pos = position(); *************** final class FloatViewBufferImpl extends *** 141,149 **** int mark = position(); position(pos); return new FloatViewBufferImpl (bb, offset, capacity(), limit(), ! pos, mark, readOnly, endian); } ! public FloatBuffer duplicate () { return duplicate(readOnly); --- 141,149 ---- int mark = position(); position(pos); return new FloatViewBufferImpl (bb, offset, capacity(), limit(), ! pos, mark, readOnly, endian); } ! public FloatBuffer duplicate () { return duplicate(readOnly); *************** final class FloatViewBufferImpl extends *** 158,169 **** { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; --- 158,169 ---- { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/IntBuffer.java gcc-4.6.0/libjava/classpath/java/nio/IntBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/IntBuffer.java Wed Oct 22 18:19:29 2008 --- gcc-4.6.0/libjava/classpath/java/nio/IntBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IntBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IntBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class IntBuffer extends *** 51,57 **** final int[] backing_buffer; IntBuffer (int capacity, int limit, int position, int mark, ! RawData address, int[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; --- 51,57 ---- final int[] backing_buffer; IntBuffer (int capacity, int limit, int position, int mark, ! RawData address, int[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; *************** public abstract class IntBuffer extends *** 76,82 **** public static final IntBuffer wrap (int[] array, int offset, int length) { return new IntBufferImpl (array, 0, array.length, offset + length, offset, ! -1, false); } /** --- 76,82 ---- public static final IntBuffer wrap (int[] array, int offset, int length) { return new IntBufferImpl (array, 0, array.length, offset + length, offset, ! -1, false); } /** *************** public abstract class IntBuffer extends *** 87,97 **** { return wrap (array, 0, array.length); } ! /** * This method transfers ints from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length ints remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first int --- 87,97 ---- { return wrap (array, 0, array.length); } ! /** * This method transfers ints from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length ints remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first int *************** public abstract class IntBuffer extends *** 170,176 **** * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining ints in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset --- 170,176 ---- * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining ints in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset *************** public abstract class IntBuffer extends *** 193,199 **** * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining ints in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. --- 193,199 ---- * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining ints in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. *************** public abstract class IntBuffer extends *** 226,232 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } --- 226,232 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } *************** public abstract class IntBuffer extends *** 243,249 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } --- 243,249 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } *************** public abstract class IntBuffer extends *** 266,273 **** int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return hashCode; } --- 266,273 ---- int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return hashCode; } *************** public abstract class IntBuffer extends *** 296,316 **** int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! int a = get(pos_this++); ! int b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } --- 296,316 ---- int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! int a = get(pos_this++); ! int b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } *************** public abstract class IntBuffer extends *** 332,338 **** * Writes the int at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * ints in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 332,338 ---- * Writes the int at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * ints in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** public abstract class IntBuffer extends *** 345,351 **** * than the buffer's limit. */ public abstract int get (int index); ! /** * Absolute put method. * --- 345,351 ---- * than the buffer's limit. */ public abstract int get (int index); ! /** * Absolute put method. * *************** public abstract class IntBuffer extends *** 357,363 **** /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract IntBuffer compact (); --- 357,363 ---- /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract IntBuffer compact (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/IntBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/IntBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/IntBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/IntBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IntBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IntBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class IntBufferImpl extends IntBuf *** 49,81 **** { this (new int [capacity], 0, capacity, capacity, 0, -1, false); } ! IntBufferImpl (int[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public IntBuffer slice () { return new IntBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); } ! public IntBuffer duplicate () { return new IntBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); } ! public IntBuffer asReadOnlyBuffer () { return new IntBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); } ! public IntBuffer compact () { checkIfReadOnly(); --- 49,81 ---- { this (new int [capacity], 0, capacity, capacity, 0, -1, false); } ! IntBufferImpl (int[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public IntBuffer slice () { return new IntBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); } ! public IntBuffer duplicate () { return new IntBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); } ! public IntBuffer asReadOnlyBuffer () { return new IntBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); } ! public IntBuffer compact () { checkIfReadOnly(); *************** final class IntBufferImpl extends IntBuf *** 91,97 **** limit(capacity()); return this; } ! public boolean isDirect () { return false; --- 91,97 ---- limit(capacity()); return this; } ! public boolean isDirect () { return false; *************** final class IntBufferImpl extends IntBuf *** 112,123 **** position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. * ! * @exception BufferOverflowException If there no remaining * space in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 112,123 ---- position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. * ! * @exception BufferOverflowException If there no remaining * space in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** final class IntBufferImpl extends IntBuf *** 130,136 **** position (position () + 1); return this; } ! /** * Absolute get method. Reads the int at position * index. --- 130,136 ---- position (position () + 1); return this; } ! /** * Absolute get method. Reads the int at position * index. *************** final class IntBufferImpl extends IntBuf *** 144,150 **** return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. --- 144,150 ---- return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. *************** final class IntBufferImpl extends IntBuf *** 161,167 **** backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); --- 161,167 ---- backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/IntViewBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/IntViewBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/IntViewBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/IntViewBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IntViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IntViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class IntViewBufferImpl extends In *** 45,51 **** private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! IntViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? --- 45,51 ---- private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! IntViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? *************** final class IntViewBufferImpl extends In *** 55,64 **** this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public IntViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0); --- 55,64 ---- this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public IntViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0); *************** final class IntViewBufferImpl extends In *** 102,108 **** position(p + 1); return this; } ! public IntBuffer put (int index, int value) { ByteBufferHelper.putInt(bb, (index << 2) + offset, value, endian); --- 102,108 ---- position(p + 1); return this; } ! public IntBuffer put (int index, int value) { ByteBufferHelper.putInt(bb, (index << 2) + offset, value, endian); *************** final class IntViewBufferImpl extends In *** 114,139 **** if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 4 * position(), 4 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public IntBuffer slice () { // Create a sliced copy of this object that shares its content. return new IntViewBufferImpl (bb, (position () << 2) + offset, ! remaining(), remaining(), 0, -1, ! readOnly, endian); } ! IntBuffer duplicate (boolean readOnly) { int pos = position(); --- 114,139 ---- if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 4 * position(), 4 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public IntBuffer slice () { // Create a sliced copy of this object that shares its content. return new IntViewBufferImpl (bb, (position () << 2) + offset, ! remaining(), remaining(), 0, -1, ! readOnly, endian); } ! IntBuffer duplicate (boolean readOnly) { int pos = position(); *************** final class IntViewBufferImpl extends In *** 141,149 **** int mark = position(); position(pos); return new IntViewBufferImpl (bb, offset, capacity(), limit(), ! pos, mark, readOnly, endian); } ! public IntBuffer duplicate () { return duplicate(readOnly); --- 141,149 ---- int mark = position(); position(pos); return new IntViewBufferImpl (bb, offset, capacity(), limit(), ! pos, mark, readOnly, endian); } ! public IntBuffer duplicate () { return duplicate(readOnly); *************** final class IntViewBufferImpl extends In *** 158,169 **** { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; --- 158,169 ---- { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/InvalidMarkException.java gcc-4.6.0/libjava/classpath/java/nio/InvalidMarkException.java *** gcc-4.5.2/libjava/classpath/java/nio/InvalidMarkException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/InvalidMarkException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* InvalidMarkException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* InvalidMarkException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/LongBuffer.java gcc-4.6.0/libjava/classpath/java/nio/LongBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/LongBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/LongBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LongBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LongBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class LongBuffer extends *** 51,57 **** final long[] backing_buffer; LongBuffer (int capacity, int limit, int position, int mark, ! RawData address, long[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; --- 51,57 ---- final long[] backing_buffer; LongBuffer (int capacity, int limit, int position, int mark, ! RawData address, long[] backing_buffer, int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; *************** public abstract class LongBuffer extends *** 86,96 **** { return wrap (array, 0, array.length); } ! /** * This method transfers longs from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length longs remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first long --- 86,96 ---- { return wrap (array, 0, array.length); } ! /** * This method transfers longs from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length longs remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first long *************** public abstract class LongBuffer extends *** 169,175 **** * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining longs in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset --- 169,175 ---- * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining longs in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset *************** public abstract class LongBuffer extends *** 192,198 **** * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining longs in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. --- 192,198 ---- * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining longs in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. *************** public abstract class LongBuffer extends *** 225,231 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } --- 225,231 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } *************** public abstract class LongBuffer extends *** 242,248 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } --- 242,248 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } *************** public abstract class LongBuffer extends *** 265,272 **** long multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return ((int)hashCode); } --- 265,272 ---- long multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return ((int)hashCode); } *************** public abstract class LongBuffer extends *** 295,315 **** int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! long a = get(pos_this++); ! long b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } --- 295,315 ---- int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! long a = get(pos_this++); ! long b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } *************** public abstract class LongBuffer extends *** 331,337 **** * Writes the long at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * longs in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 331,337 ---- * Writes the long at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * longs in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** public abstract class LongBuffer extends *** 344,350 **** * than the buffer's limit. */ public abstract long get (int index); ! /** * Absolute put method. * --- 344,350 ---- * than the buffer's limit. */ public abstract long get (int index); ! /** * Absolute put method. * *************** public abstract class LongBuffer extends *** 356,362 **** /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract LongBuffer compact (); --- 356,362 ---- /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract LongBuffer compact (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/LongBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/LongBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/LongBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/LongBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LongBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LongBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class LongBufferImpl extends LongB *** 49,85 **** { this (new long [capacity], 0, capacity, capacity, 0, -1, false); } ! LongBufferImpl (long[] buffer, int offset, int capacity, int limit, ! int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public LongBuffer slice () { return new LongBufferImpl (backing_buffer, array_offset + position (), ! remaining (), remaining (), 0, -1, isReadOnly ()); } ! public LongBuffer duplicate () { return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), ! position (), mark, isReadOnly ()); } ! public LongBuffer asReadOnlyBuffer () { return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), ! position (), mark, true); } ! public LongBuffer compact () { checkIfReadOnly(); --- 49,85 ---- { this (new long [capacity], 0, capacity, capacity, 0, -1, false); } ! LongBufferImpl (long[] buffer, int offset, int capacity, int limit, ! int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public LongBuffer slice () { return new LongBufferImpl (backing_buffer, array_offset + position (), ! remaining (), remaining (), 0, -1, isReadOnly ()); } ! public LongBuffer duplicate () { return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), ! position (), mark, isReadOnly ()); } ! public LongBuffer asReadOnlyBuffer () { return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), ! position (), mark, true); } ! public LongBuffer compact () { checkIfReadOnly(); *************** final class LongBufferImpl extends LongB *** 95,101 **** limit(capacity()); return this; } ! public boolean isDirect () { return false; --- 95,101 ---- limit(capacity()); return this; } ! public boolean isDirect () { return false; *************** final class LongBufferImpl extends LongB *** 116,122 **** position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. --- 116,122 ---- position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. *************** final class LongBufferImpl extends LongB *** 134,140 **** position (position () + 1); return this; } ! /** * Absolute get method. Reads the long at position * index. --- 134,140 ---- position (position () + 1); return this; } ! /** * Absolute get method. Reads the long at position * index. *************** final class LongBufferImpl extends LongB *** 148,154 **** return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. --- 148,154 ---- return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. *************** final class LongBufferImpl extends LongB *** 165,171 **** backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); --- 165,171 ---- backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/LongViewBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/LongViewBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/LongViewBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/LongViewBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* LongViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* LongViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class LongViewBufferImpl extends L *** 45,51 **** private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! LongViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? --- 45,51 ---- private final ByteBuffer bb; private final boolean readOnly; private final ByteOrder endian; ! LongViewBufferImpl (ByteBuffer bb, int capacity) { super (capacity, capacity, 0, -1, bb.isDirect() ? *************** final class LongViewBufferImpl extends L *** 55,64 **** this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public LongViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0); --- 55,64 ---- this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public LongViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0); *************** final class LongViewBufferImpl extends L *** 102,108 **** position(p + 1); return this; } ! public LongBuffer put (int index, long value) { ByteBufferHelper.putLong(bb, (index << 3) + offset, value, endian); --- 102,108 ---- position(p + 1); return this; } ! public LongBuffer put (int index, long value) { ByteBufferHelper.putLong(bb, (index << 3) + offset, value, endian); *************** final class LongViewBufferImpl extends L *** 114,139 **** if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 8 * position(), 8 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public LongBuffer slice () { // Create a sliced copy of this object that shares its content. return new LongViewBufferImpl (bb, (position () << 3) + offset, ! remaining(), remaining(), 0, -1, ! readOnly, endian); } ! LongBuffer duplicate (boolean readOnly) { int pos = position(); --- 114,139 ---- if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 8 * position(), 8 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public LongBuffer slice () { // Create a sliced copy of this object that shares its content. return new LongViewBufferImpl (bb, (position () << 3) + offset, ! remaining(), remaining(), 0, -1, ! readOnly, endian); } ! LongBuffer duplicate (boolean readOnly) { int pos = position(); *************** final class LongViewBufferImpl extends L *** 141,149 **** int mark = position(); position(pos); return new LongViewBufferImpl (bb, offset, capacity(), limit(), ! pos, mark, readOnly, endian); } ! public LongBuffer duplicate () { return duplicate(readOnly); --- 141,149 ---- int mark = position(); position(pos); return new LongViewBufferImpl (bb, offset, capacity(), limit(), ! pos, mark, readOnly, endian); } ! public LongBuffer duplicate () { return duplicate(readOnly); *************** final class LongViewBufferImpl extends L *** 158,169 **** { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; --- 158,169 ---- { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/MappedByteBuffer.java gcc-4.6.0/libjava/classpath/java/nio/MappedByteBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/MappedByteBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/MappedByteBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MappedByteBuffer.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MappedByteBuffer.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import gnu.gcj.RawData; *** 48,58 **** public abstract class MappedByteBuffer extends ByteBuffer { MappedByteBuffer (int capacity, int limit, int position, int mark, ! RawData address) { super (capacity, limit, position, mark, address, null, 0); } ! void forceImpl() { } --- 48,58 ---- public abstract class MappedByteBuffer extends ByteBuffer { MappedByteBuffer (int capacity, int limit, int position, int mark, ! RawData address) { super (capacity, limit, position, mark, address, null, 0); } ! void forceImpl() { } *************** public abstract class MappedByteBuffer e *** 62,68 **** forceImpl(); return this; } ! boolean isLoadedImpl() { load(); --- 62,68 ---- forceImpl(); return this; } ! boolean isLoadedImpl() { load(); *************** public abstract class MappedByteBuffer e *** 73,79 **** { return isLoadedImpl(); } ! void loadImpl() { } --- 73,79 ---- { return isLoadedImpl(); } ! void loadImpl() { } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/MappedByteBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/MappedByteBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/MappedByteBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/MappedByteBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MappedByteBufferImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MappedByteBufferImpl.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class MappedByteBufferImpl extends *** 52,58 **** /** Posix uses this for the actual length passed to mmap; * Win32 uses it for the pointer returned by CreateFileMapping. */ public long implLen; ! public MappedByteBufferImpl(Pointer address, int size, boolean readOnly) throws IOException { --- 52,58 ---- /** Posix uses this for the actual length passed to mmap; * Win32 uses it for the pointer returned by CreateFileMapping. */ public long implLen; ! public MappedByteBufferImpl(Pointer address, int size, boolean readOnly) throws IOException { *************** final class MappedByteBufferImpl extends *** 64,70 **** { return readOnly; } ! public byte get() { checkForUnderflow(); --- 64,70 ---- { return readOnly; } ! public byte get() { checkForUnderflow(); *************** final class MappedByteBufferImpl extends *** 121,136 **** int pos = position(); if (pos > 0) { ! int count = remaining(); ! // Call shiftDown method optimized for direct buffers. ! VMDirectByteBuffer.shiftDown(address, 0, pos, count); ! position(count); ! limit(capacity()); } else { ! position(limit()); ! limit(capacity()); } return this; } --- 121,136 ---- int pos = position(); if (pos > 0) { ! int count = remaining(); ! // Call shiftDown method optimized for direct buffers. ! VMDirectByteBuffer.shiftDown(address, 0, pos, count); ! position(count); ! limit(capacity()); } else { ! position(limit()); ! limit(capacity()); } return this; } *************** final class MappedByteBufferImpl extends *** 169,177 **** if (mark != pos) { ! result.position(mark); ! result.mark(); ! result.position(pos); } return result; } --- 169,177 ---- if (mark != pos) { ! result.position(mark); ! result.mark(); ! result.position(pos); } return result; } *************** final class MappedByteBufferImpl extends *** 220,237 **** { return ByteBufferHelper.getChar(this, order()); } ! public ByteBuffer putChar(char value) { ByteBufferHelper.putChar(this, value, order()); return this; } ! public char getChar(int index) { return ByteBufferHelper.getChar(this, index, order()); } ! public ByteBuffer putChar(int index, char value) { ByteBufferHelper.putChar(this, index, value, order()); --- 220,237 ---- { return ByteBufferHelper.getChar(this, order()); } ! public ByteBuffer putChar(char value) { ByteBufferHelper.putChar(this, value, order()); return this; } ! public char getChar(int index) { return ByteBufferHelper.getChar(this, index, order()); } ! public ByteBuffer putChar(int index, char value) { ByteBufferHelper.putChar(this, index, value, order()); *************** final class MappedByteBufferImpl extends *** 242,259 **** { return ByteBufferHelper.getShort(this, order()); } ! public ByteBuffer putShort(short value) { ByteBufferHelper.putShort(this, value, order()); return this; } ! public short getShort(int index) { return ByteBufferHelper.getShort(this, index, order()); } ! public ByteBuffer putShort(int index, short value) { ByteBufferHelper.putShort(this, index, value, order()); --- 242,259 ---- { return ByteBufferHelper.getShort(this, order()); } ! public ByteBuffer putShort(short value) { ByteBufferHelper.putShort(this, value, order()); return this; } ! public short getShort(int index) { return ByteBufferHelper.getShort(this, index, order()); } ! public ByteBuffer putShort(int index, short value) { ByteBufferHelper.putShort(this, index, value, order()); *************** final class MappedByteBufferImpl extends *** 264,281 **** { return ByteBufferHelper.getInt(this, order()); } ! public ByteBuffer putInt(int value) { ByteBufferHelper.putInt(this, value, order()); return this; } ! public int getInt(int index) { return ByteBufferHelper.getInt(this, index, order()); } ! public ByteBuffer putInt(int index, int value) { ByteBufferHelper.putInt(this, index, value, order()); --- 264,281 ---- { return ByteBufferHelper.getInt(this, order()); } ! public ByteBuffer putInt(int value) { ByteBufferHelper.putInt(this, value, order()); return this; } ! public int getInt(int index) { return ByteBufferHelper.getInt(this, index, order()); } ! public ByteBuffer putInt(int index, int value) { ByteBufferHelper.putInt(this, index, value, order()); *************** final class MappedByteBufferImpl extends *** 286,303 **** { return ByteBufferHelper.getLong(this, order()); } ! public ByteBuffer putLong(long value) { ByteBufferHelper.putLong(this, value, order()); return this; } ! public long getLong(int index) { return ByteBufferHelper.getLong(this, index, order()); } ! public ByteBuffer putLong(int index, long value) { ByteBufferHelper.putLong(this, index, value, order()); --- 286,303 ---- { return ByteBufferHelper.getLong(this, order()); } ! public ByteBuffer putLong(long value) { ByteBufferHelper.putLong(this, value, order()); return this; } ! public long getLong(int index) { return ByteBufferHelper.getLong(this, index, order()); } ! public ByteBuffer putLong(int index, long value) { ByteBufferHelper.putLong(this, index, value, order()); *************** final class MappedByteBufferImpl extends *** 308,320 **** { return ByteBufferHelper.getFloat(this, order()); } ! public ByteBuffer putFloat(float value) { ByteBufferHelper.putFloat(this, value, order()); return this; } ! public float getFloat(int index) { return ByteBufferHelper.getFloat(this, index, order()); --- 308,320 ---- { return ByteBufferHelper.getFloat(this, order()); } ! public ByteBuffer putFloat(float value) { ByteBufferHelper.putFloat(this, value, order()); return this; } ! public float getFloat(int index) { return ByteBufferHelper.getFloat(this, index, order()); *************** final class MappedByteBufferImpl extends *** 336,347 **** ByteBufferHelper.putDouble(this, value, order()); return this; } ! public double getDouble(int index) { return ByteBufferHelper.getDouble(this, index, order()); } ! public ByteBuffer putDouble(int index, double value) { ByteBufferHelper.putDouble(this, index, value, order()); --- 336,347 ---- ByteBufferHelper.putDouble(this, value, order()); return this; } ! public double getDouble(int index) { return ByteBufferHelper.getDouble(this, index, order()); } ! public ByteBuffer putDouble(int index, double value) { ByteBufferHelper.putDouble(this, index, value, order()); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/ReadOnlyBufferException.java gcc-4.6.0/libjava/classpath/java/nio/ReadOnlyBufferException.java *** gcc-4.5.2/libjava/classpath/java/nio/ReadOnlyBufferException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/ReadOnlyBufferException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ReadOnlyBufferException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ReadOnlyBufferException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/ShortBuffer.java gcc-4.6.0/libjava/classpath/java/nio/ShortBuffer.java *** gcc-4.5.2/libjava/classpath/java/nio/ShortBuffer.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/ShortBuffer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ShortBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ShortBuffer.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class ShortBuffer extend *** 51,58 **** final short[] backing_buffer; ShortBuffer (int capacity, int limit, int position, ! int mark, RawData address, short[] backing_buffer, ! int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; --- 51,58 ---- final short[] backing_buffer; ShortBuffer (int capacity, int limit, int position, ! int mark, RawData address, short[] backing_buffer, ! int array_offset) { super (capacity, limit, position, mark, address); this.backing_buffer = backing_buffer; *************** public abstract class ShortBuffer extend *** 87,97 **** { return wrap (array, 0, array.length); } ! /** * This method transfers shorts from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length shorts remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first short --- 87,97 ---- { return wrap (array, 0, array.length); } ! /** * This method transfers shorts from this buffer into the given * destination array. Before the transfer, it checks if there are fewer than ! * length shorts remaining in this buffer. * * @param dst The destination array * @param offset The offset within the array of the first short *************** public abstract class ShortBuffer extend *** 170,176 **** * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining shorts in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset --- 170,176 ---- * must be non-negative and no larger than src.length. * @param length The number of bytes to be read from the given array; * must be non-negative and no larger than src.length - offset. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining shorts in the source array. * @exception IndexOutOfBoundsException If the preconditions on the offset *************** public abstract class ShortBuffer extend *** 193,199 **** * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining shorts in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. --- 193,199 ---- * into the buffer. * * @param src The array to copy into the buffer. ! * * @exception BufferOverflowException If there is insufficient space in this * buffer for the remaining shorts in the source array. * @exception ReadOnlyBufferException If this buffer is read-only. *************** public abstract class ShortBuffer extend *** 226,232 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } --- 226,232 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return backing_buffer; } *************** public abstract class ShortBuffer extend *** 243,249 **** throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } --- 243,249 ---- throw new UnsupportedOperationException (); checkIfReadOnly(); ! return array_offset; } *************** public abstract class ShortBuffer extend *** 266,273 **** int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return hashCode; } --- 266,273 ---- int multiplier = 1; for (int i = position() + 1; i < limit(); ++i) { ! multiplier *= 31; ! hashCode += (get(i) + 30)*multiplier; } return hashCode; } *************** public abstract class ShortBuffer extend *** 296,316 **** int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! short a = get(pos_this++); ! short b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } --- 296,316 ---- int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); ! for (int count = 0; count < num; count++) { ! short a = get(pos_this++); ! short b = other.get(pos_other++); ! ! if (a == b) ! continue; ! ! if (a < b) ! return -1; ! ! return 1; } ! return remaining() - other.remaining(); } *************** public abstract class ShortBuffer extend *** 332,338 **** * Writes the short at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * shorts in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 332,338 ---- * Writes the short at this buffer's current position, * and then increments the position. * ! * @exception BufferOverflowException If there no remaining * shorts in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** public abstract class ShortBuffer extend *** 345,351 **** * than the buffer's limit. */ public abstract short get (int index); ! /** * Absolute put method. * --- 345,351 ---- * than the buffer's limit. */ public abstract short get (int index); ! /** * Absolute put method. * *************** public abstract class ShortBuffer extend *** 357,363 **** /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract ShortBuffer compact (); --- 357,363 ---- /** * Compacts this buffer. ! * * @exception ReadOnlyBufferException If this buffer is read-only. */ public abstract ShortBuffer compact (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/ShortBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/ShortBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/ShortBufferImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/nio/ShortBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ShortBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ShortBufferImpl.java -- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ShortBufferImpl extends Shor *** 49,85 **** { this (new short [capacity], 0, capacity, capacity, 0, -1, false); } ! ShortBufferImpl (short[] buffer, int offset, int capacity, ! int limit, int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public ShortBuffer slice () { return new ShortBufferImpl (backing_buffer, array_offset + position (), ! remaining (), remaining (), 0, -1, isReadOnly ()); } ! public ShortBuffer duplicate () { return new ShortBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, isReadOnly ()); } ! public ShortBuffer asReadOnlyBuffer () { return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (), ! position (), mark, true); } ! public ShortBuffer compact () { checkIfReadOnly(); --- 49,85 ---- { this (new short [capacity], 0, capacity, capacity, 0, -1, false); } ! ShortBufferImpl (short[] buffer, int offset, int capacity, ! int limit, int position, int mark, boolean readOnly) { super (capacity, limit, position, mark, null, buffer, offset); this.readOnly = readOnly; } ! public boolean isReadOnly () { return readOnly; } ! public ShortBuffer slice () { return new ShortBufferImpl (backing_buffer, array_offset + position (), ! remaining (), remaining (), 0, -1, isReadOnly ()); } ! public ShortBuffer duplicate () { return new ShortBufferImpl (backing_buffer, array_offset, capacity (), ! limit (), position (), mark, isReadOnly ()); } ! public ShortBuffer asReadOnlyBuffer () { return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (), ! position (), mark, true); } ! public ShortBuffer compact () { checkIfReadOnly(); *************** final class ShortBufferImpl extends Shor *** 95,101 **** limit(capacity()); return this; } ! public boolean isDirect () { return false; --- 95,101 ---- limit(capacity()); return this; } ! public boolean isDirect () { return false; *************** final class ShortBufferImpl extends Shor *** 116,127 **** position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. * ! * @exception BufferOverflowException If there no remaining * space in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ --- 116,127 ---- position (position () + 1); return result; } ! /** * Relative put method. Writes value to the next position * in the buffer. * ! * @exception BufferOverflowException If there no remaining * space in this buffer. * @exception ReadOnlyBufferException If this buffer is read-only. */ *************** final class ShortBufferImpl extends Shor *** 134,140 **** position (position () + 1); return this; } ! /** * Absolute get method. Reads the short at position * index. --- 134,140 ---- position (position () + 1); return this; } ! /** * Absolute get method. Reads the short at position * index. *************** final class ShortBufferImpl extends Shor *** 148,154 **** return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. --- 148,154 ---- return backing_buffer [index]; } ! /** * Absolute put method. Writes value to position * index in the buffer. *************** final class ShortBufferImpl extends Shor *** 165,171 **** backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); --- 165,171 ---- backing_buffer [index] = value; return this; } ! public ByteOrder order () { return ByteOrder.nativeOrder (); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/ShortViewBufferImpl.java gcc-4.6.0/libjava/classpath/java/nio/ShortViewBufferImpl.java *** gcc-4.5.2/libjava/classpath/java/nio/ShortViewBufferImpl.java Wed Oct 22 18:19:29 2008 --- gcc-4.6.0/libjava/classpath/java/nio/ShortViewBufferImpl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ShortViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ShortViewBufferImpl.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** final class ShortViewBufferImpl extends *** 50,69 **** { super (capacity, capacity, 0, -1, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, ! null, 0); this.bb = bb; this.offset = bb.position(); this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public ShortViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset):null, ! null, 0); this.bb = bb; this.offset = offset; this.readOnly = readOnly; --- 50,69 ---- { super (capacity, capacity, 0, -1, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, ! null, 0); this.bb = bb; this.offset = bb.position(); this.readOnly = bb.isReadOnly(); this.endian = bb.order(); } ! public ShortViewBufferImpl (ByteBuffer bb, int offset, int capacity, ! int limit, int position, int mark, ! boolean readOnly, ByteOrder endian) { super (capacity, limit, position, mark, bb.isDirect() ? VMDirectByteBuffer.adjustAddress(bb.address, offset):null, ! null, 0); this.bb = bb; this.offset = offset; this.readOnly = readOnly; *************** final class ShortViewBufferImpl extends *** 104,110 **** position(p + 1); return this; } ! public ShortBuffer put (int index, short value) { ByteBufferHelper.putShort(bb, (index << 1) + offset, value, endian); --- 104,110 ---- position(p + 1); return this; } ! public ShortBuffer put (int index, short value) { ByteBufferHelper.putShort(bb, (index << 1) + offset, value, endian); *************** final class ShortViewBufferImpl extends *** 116,141 **** if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 2 * position(), 2 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public ShortBuffer slice () { // Create a sliced copy of this object that shares its content. return new ShortViewBufferImpl (bb, (position () << 1) + offset, ! remaining(), remaining(), 0, -1, ! readOnly, endian); } ! ShortBuffer duplicate (boolean readOnly) { int pos = position(); --- 116,141 ---- if (position () > 0) { int count = limit () - position (); ! bb.shiftDown(offset, offset + 2 * position(), 2 * count); position (count); limit (capacity ()); } else { ! position(limit()); ! limit(capacity()); } return this; } ! public ShortBuffer slice () { // Create a sliced copy of this object that shares its content. return new ShortViewBufferImpl (bb, (position () << 1) + offset, ! remaining(), remaining(), 0, -1, ! readOnly, endian); } ! ShortBuffer duplicate (boolean readOnly) { int pos = position(); *************** final class ShortViewBufferImpl extends *** 143,151 **** int mark = position(); position(pos); return new ShortViewBufferImpl (bb, offset, capacity(), limit(), ! pos, mark, readOnly, endian); } ! public ShortBuffer duplicate () { return duplicate(readOnly); --- 143,151 ---- int mark = position(); position(pos); return new ShortViewBufferImpl (bb, offset, capacity(), limit(), ! pos, mark, readOnly, endian); } ! public ShortBuffer duplicate () { return duplicate(readOnly); *************** final class ShortViewBufferImpl extends *** 160,171 **** { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; --- 160,171 ---- { return readOnly; } ! public boolean isDirect () { return bb.isDirect (); } ! public ByteOrder order () { return endian; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/channels/FileChannel.java gcc-4.6.0/libjava/classpath/java/nio/channels/FileChannel.java *** gcc-4.5.2/libjava/classpath/java/nio/channels/FileChannel.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/nio/channels/FileChannel.java Tue Jan 11 19:46:05 2011 *************** public abstract class FileChannel extend *** 71,79 **** public String toString() { if (this == READ_ONLY) ! return "READ_ONLY"; else if (this == READ_WRITE) ! return "READ_WRITE"; return "PRIVATE"; } --- 71,79 ---- public String toString() { if (this == READ_ONLY) ! return "READ_ONLY"; else if (this == READ_WRITE) ! return "READ_WRITE"; return "PRIVATE"; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/channels/SocketChannel.java gcc-4.6.0/libjava/classpath/java/nio/channels/SocketChannel.java *** gcc-4.5.2/libjava/classpath/java/nio/channels/SocketChannel.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/nio/channels/SocketChannel.java Tue Jan 11 19:46:05 2011 *************** public abstract class SocketChannel exte *** 64,70 **** * Opens a socket channel. * * @return the new SocketChannel object ! * * @exception IOException If an error occurs */ public static SocketChannel open() throws IOException --- 64,70 ---- * Opens a socket channel. * * @return the new SocketChannel object ! * * @exception IOException If an error occurs */ public static SocketChannel open() throws IOException *************** public abstract class SocketChannel exte *** 76,82 **** * Opens a channel and connects it to a remote address. * * @return the new SocketChannel object ! * * @exception AsynchronousCloseException If this channel is already connected. * @exception ClosedByInterruptException If another thread interrupts the * current thread while the connect operation is in progress, thereby closing --- 76,82 ---- * Opens a channel and connects it to a remote address. * * @return the new SocketChannel object ! * * @exception AsynchronousCloseException If this channel is already connected. * @exception ClosedByInterruptException If another thread interrupts the * current thread while the connect operation is in progress, thereby closing *************** public abstract class SocketChannel exte *** 120,126 **** * Writes data to the channel. * * @return the number of bytes written, zero is valid too ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ --- 120,126 ---- * Writes data to the channel. * * @return the number of bytes written, zero is valid too ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ *************** public abstract class SocketChannel exte *** 150,156 **** * * @return the number of bytes read, zero is valid too, -1 if end of stream * is reached ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ --- 150,156 ---- * * @return the number of bytes read, zero is valid too, -1 if end of stream * is reached ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ *************** public abstract class SocketChannel exte *** 162,168 **** * @return true if the channel got successfully connected, * false if the channel is in non-blocking mode and connection * operation is still in progress. ! * * @exception AlreadyConnectedException If this channel is already connected. * @exception AsynchronousCloseException If this channel is already connected. * @exception ClosedByInterruptException If another thread interrupts the --- 162,168 ---- * @return true if the channel got successfully connected, * false if the channel is in non-blocking mode and connection * operation is still in progress. ! * * @exception AlreadyConnectedException If this channel is already connected. * @exception AsynchronousCloseException If this channel is already connected. * @exception ClosedByInterruptException If another thread interrupts the *************** public abstract class SocketChannel exte *** 211,217 **** * * @return the number of bytes read, zero is valid too, -1 if end of stream * is reached ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ --- 211,217 ---- * * @return the number of bytes read, zero is valid too, -1 if end of stream * is reached ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ *************** public abstract class SocketChannel exte *** 229,235 **** * Writes data to the channel. * * @return the number of bytes written, zero is valid too ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ --- 229,235 ---- * Writes data to the channel. * * @return the number of bytes written, zero is valid too ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ *************** public abstract class SocketChannel exte *** 239,245 **** * Writes data to the channel. * * @return the number of bytes written, zero is valid too ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ --- 239,245 ---- * Writes data to the channel. * * @return the number of bytes written, zero is valid too ! * * @exception IOException If an error occurs * @exception NotYetConnectedException If this channel is not yet connected. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/channels/spi/AbstractInterruptibleChannel.java gcc-4.6.0/libjava/classpath/java/nio/channels/spi/AbstractInterruptibleChannel.java *** gcc-4.5.2/libjava/classpath/java/nio/channels/spi/AbstractInterruptibleChannel.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/channels/spi/AbstractInterruptibleChannel.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AbstractInterruptibleChannel.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AbstractInterruptibleChannel.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class AbstractInterrupti *** 76,83 **** { if (! closed) { ! closed = true; ! implCloseChannel(); } } --- 76,83 ---- { if (! closed) { ! closed = true; ! implCloseChannel(); } } *************** public abstract class AbstractInterrupti *** 96,102 **** throws AsynchronousCloseException { // FIXME: check more here. ! if (closed) throw new AsynchronousCloseException(); } --- 96,102 ---- throws AsynchronousCloseException { // FIXME: check more here. ! if (closed) throw new AsynchronousCloseException(); } *************** public abstract class AbstractInterrupti *** 109,116 **** /** * Tells whether or not this channel is open. ! * ! * @return true if the channel is open, false otherwise */ public final boolean isOpen() { --- 109,116 ---- /** * Tells whether or not this channel is open. ! * ! * @return true if the channel is open, false otherwise */ public final boolean isOpen() { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java gcc-4.6.0/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java *** gcc-4.5.2/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractSelectable *** 90,100 **** { synchronized (blockingLock()) { ! if (this.blocking != blocking) ! { ! implConfigureBlocking(blocking); ! this.blocking = blocking; ! } } return this; --- 90,100 ---- { synchronized (blockingLock()) { ! if (this.blocking != blocking) ! { ! implConfigureBlocking(blocking); ! this.blocking = blocking; ! } } return this; *************** public abstract class AbstractSelectable *** 173,186 **** try { ! synchronized (blockingLock()) ! { ! return locate(selector); ! } } catch (Exception e) { ! return null; } } --- 173,186 ---- try { ! synchronized (blockingLock()) ! { ! return locate(selector); ! } } catch (Exception e) { ! return null; } } *************** public abstract class AbstractSelectable *** 200,209 **** while (it.hasNext()) { ! SelectionKey key = (SelectionKey) it.next(); ! if (key.selector() == selector) ! return key; } return null; --- 200,209 ---- while (it.hasNext()) { ! SelectionKey key = (SelectionKey) it.next(); ! if (key.selector() == selector) ! return key; } return null; *************** public abstract class AbstractSelectable *** 217,223 **** * @param att an attachment for the returned selection key * * @return the registered selection key ! * * @exception ClosedChannelException If the channel is already closed. * @exception IllegalBlockingModeException If the channel is configured in * blocking mode. --- 217,223 ---- * @param att an attachment for the returned selection key * * @return the registered selection key ! * * @exception ClosedChannelException If the channel is already closed. * @exception IllegalBlockingModeException If the channel is configured in * blocking mode. *************** public abstract class AbstractSelectable *** 230,258 **** if ((ops & ~validOps()) != 0) throw new IllegalArgumentException(); ! SelectionKey key = null; AbstractSelector selector = (AbstractSelector) selin; synchronized (blockingLock()) { ! if (blocking) ! throw new IllegalBlockingModeException(); ! key = locate(selector); ! if (key != null && key.isValid()) ! { key.interestOps(ops); key.attach(att); ! } ! else ! { ! key = selector.register(this, ops, att); ! if (key != null) ! addSelectionKey(key); ! } } return key; --- 230,258 ---- if ((ops & ~validOps()) != 0) throw new IllegalArgumentException(); ! SelectionKey key = null; AbstractSelector selector = (AbstractSelector) selin; synchronized (blockingLock()) { ! if (blocking) ! throw new IllegalBlockingModeException(); ! key = locate(selector); ! if (key != null && key.isValid()) ! { key.interestOps(ops); key.attach(att); ! } ! else ! { ! key = selector.register(this, ops, att); ! if (key != null) ! addSelectionKey(key); ! } } return key; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/channels/spi/AbstractSelectionKey.java gcc-4.6.0/libjava/classpath/java/nio/channels/spi/AbstractSelectionKey.java *** gcc-4.5.2/libjava/classpath/java/nio/channels/spi/AbstractSelectionKey.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/nio/channels/spi/AbstractSelectionKey.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractSelectionK *** 61,68 **** { if (isValid()) { ! ((AbstractSelector) selector()).cancelKey(this); ! cancelled = true; } } --- 61,68 ---- { if (isValid()) { ! ((AbstractSelector) selector()).cancelKey(this); ! cancelled = true; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/channels/spi/AbstractSelector.java gcc-4.6.0/libjava/classpath/java/nio/channels/spi/AbstractSelector.java *** gcc-4.5.2/libjava/classpath/java/nio/channels/spi/AbstractSelector.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/nio/channels/spi/AbstractSelector.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractSelector e *** 132,138 **** { synchronized (cancelledKeys) { ! cancelledKeys.add(key); } } --- 132,138 ---- { synchronized (cancelledKeys) { ! cancelledKeys.add(key); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/channels/spi/SelectorProvider.java gcc-4.6.0/libjava/classpath/java/nio/channels/spi/SelectorProvider.java *** gcc-4.5.2/libjava/classpath/java/nio/channels/spi/SelectorProvider.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/nio/channels/spi/SelectorProvider.java Tue Jan 11 19:46:05 2011 *************** public abstract class SelectorProvider *** 72,78 **** * Opens a datagram channel. * * @return a new datagram channel object ! * * @exception IOException if an error occurs */ public abstract DatagramChannel openDatagramChannel() --- 72,78 ---- * Opens a datagram channel. * * @return a new datagram channel object ! * * @exception IOException if an error occurs */ public abstract DatagramChannel openDatagramChannel() *************** public abstract class SelectorProvider *** 82,88 **** * Opens a pipe. * * @return a new pipe object ! * * @exception IOException if an error occurs */ public abstract Pipe openPipe() throws IOException; --- 82,88 ---- * Opens a pipe. * * @return a new pipe object ! * * @exception IOException if an error occurs */ public abstract Pipe openPipe() throws IOException; *************** public abstract class SelectorProvider *** 91,97 **** * Opens a selector. * * @return a new selector object ! * * @exception IOException if an error occurs */ public abstract AbstractSelector openSelector() throws IOException; --- 91,97 ---- * Opens a selector. * * @return a new selector object ! * * @exception IOException if an error occurs */ public abstract AbstractSelector openSelector() throws IOException; *************** public abstract class SelectorProvider *** 100,106 **** * Opens a server socket channel. * * @return a new server socket channel object ! * * @exception IOException if an error occurs */ public abstract ServerSocketChannel openServerSocketChannel() --- 100,106 ---- * Opens a server socket channel. * * @return a new server socket channel object ! * * @exception IOException if an error occurs */ public abstract ServerSocketChannel openServerSocketChannel() *************** public abstract class SelectorProvider *** 110,116 **** * Opens a socket channel. * * @return a new socket channel object ! * * @exception IOException if an error occurs */ public abstract SocketChannel openSocketChannel() throws IOException; --- 110,116 ---- * Opens a socket channel. * * @return a new socket channel object ! * * @exception IOException if an error occurs */ public abstract SocketChannel openSocketChannel() throws IOException; *************** public abstract class SelectorProvider *** 151,176 **** { if (systemDefaultProvider == null) { ! String propertyValue = ! System.getProperty("java.nio.channels.spi.SelectorProvider"); ! if (propertyValue == null || propertyValue.equals("")) ! systemDefaultProvider = new SelectorProviderImpl(); ! else ! { ! try ! { ! systemDefaultProvider = ! (SelectorProvider) Class.forName(propertyValue) ! .newInstance(); ! } ! catch (Exception e) ! { ! System.err.println("Could not instantiate class: " ! + propertyValue); ! systemDefaultProvider = new SelectorProviderImpl(); ! } ! } } return systemDefaultProvider; --- 151,176 ---- { if (systemDefaultProvider == null) { ! String propertyValue = ! System.getProperty("java.nio.channels.spi.SelectorProvider"); ! if (propertyValue == null || propertyValue.equals("")) ! systemDefaultProvider = new SelectorProviderImpl(); ! else ! { ! try ! { ! systemDefaultProvider = ! (SelectorProvider) Class.forName(propertyValue) ! .newInstance(); ! } ! catch (Exception e) ! { ! System.err.println("Could not instantiate class: " ! + propertyValue); ! systemDefaultProvider = new SelectorProviderImpl(); ! } ! } } return systemDefaultProvider; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/CharacterCodingException.java gcc-4.6.0/libjava/classpath/java/nio/charset/CharacterCodingException.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/CharacterCodingException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/charset/CharacterCodingException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharacterCodingException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharacterCodingException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/Charset.java gcc-4.6.0/libjava/classpath/java/nio/charset/Charset.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/Charset.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/nio/charset/Charset.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Charset.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Charset.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class Charset implements *** 64,78 **** { private CharsetEncoder cachedEncoder; private CharsetDecoder cachedDecoder; ! /** * Extra Charset providers. */ private static CharsetProvider[] providers; ! private final String canonicalName; private final String[] aliases; ! protected Charset (String canonicalName, String[] aliases) { checkName (canonicalName); --- 64,78 ---- { private CharsetEncoder cachedEncoder; private CharsetDecoder cachedDecoder; ! /** * Extra Charset providers. */ private static CharsetProvider[] providers; ! private final String canonicalName; private final String[] aliases; ! protected Charset (String canonicalName, String[] aliases) { checkName (canonicalName); *************** public abstract class Charset implements *** 121,165 **** * * This may be set by the user or VM with the file.encoding * property. ! * * @since 1.5 */ public static Charset defaultCharset() { String encoding; ! ! try { ! encoding = SystemProperties.getProperty("file.encoding"); } catch(SecurityException e) { ! // Use fallback. ! encoding = "ISO-8859-1"; } catch(IllegalArgumentException e) { ! // Use fallback. ! encoding = "ISO-8859-1"; } try { ! return forName(encoding); } catch(UnsupportedCharsetException e) { ! // Ignore. } catch(IllegalCharsetNameException e) { ! // Ignore. } catch(IllegalArgumentException e) { ! // Ignore. } ! throw new IllegalStateException("Can't get default charset!"); } --- 121,165 ---- * * This may be set by the user or VM with the file.encoding * property. ! * * @since 1.5 */ public static Charset defaultCharset() { String encoding; ! ! try { ! encoding = SystemProperties.getProperty("file.encoding"); } catch(SecurityException e) { ! // Use fallback. ! encoding = "ISO-8859-1"; } catch(IllegalArgumentException e) { ! // Use fallback. ! encoding = "ISO-8859-1"; } try { ! return forName(encoding); } catch(UnsupportedCharsetException e) { ! // Ignore. } catch(IllegalCharsetNameException e) { ! // Ignore. } catch(IllegalArgumentException e) { ! // Ignore. } ! throw new IllegalStateException("Can't get default charset!"); } *************** public abstract class Charset implements *** 170,176 **** /** * Returns the Charset instance for the charset of the given name. ! * * @param charsetName * @return the Charset instance for the indicated charset * @throws UnsupportedCharsetException if this VM does not support --- 170,176 ---- /** * Returns the Charset instance for the charset of the given name. ! * * @param charsetName * @return the Charset instance for the indicated charset * @throws UnsupportedCharsetException if this VM does not support *************** public abstract class Charset implements *** 184,190 **** // Throws IllegalArgumentException as the JDK does. if(charsetName == null) throw new IllegalArgumentException("Charset name must not be null."); ! Charset cs = charsetForName (charsetName); if (cs == null) throw new UnsupportedCharsetException (charsetName); --- 184,190 ---- // Throws IllegalArgumentException as the JDK does. if(charsetName == null) throw new IllegalArgumentException("Charset name must not be null."); ! Charset cs = charsetForName (charsetName); if (cs == null) throw new UnsupportedCharsetException (charsetName); *************** public abstract class Charset implements *** 208,220 **** Charset cs = provider().charsetForName(charsetName); if (cs == null) { ! CharsetProvider[] providers = providers2(); ! for (int i = 0; i < providers.length; i++) ! { ! cs = providers[i].charsetForName(charsetName); ! if (cs != null) ! break; ! } } return cs; } --- 208,220 ---- Charset cs = provider().charsetForName(charsetName); if (cs == null) { ! CharsetProvider[] providers = providers2(); ! for (int i = 0; i < providers.length; i++) ! { ! cs = providers[i].charsetForName(charsetName); ! if (cs != null) ! break; ! } } return cs; } *************** public abstract class Charset implements *** 225,232 **** = new TreeMap(String.CASE_INSENSITIVE_ORDER); for (Iterator i = provider().charsets(); i.hasNext(); ) { ! Charset cs = i.next(); ! charsets.put(cs.name(), cs); } CharsetProvider[] providers = providers2(); --- 225,232 ---- = new TreeMap(String.CASE_INSENSITIVE_ORDER); for (Iterator i = provider().charsets(); i.hasNext(); ) { ! Charset cs = i.next(); ! charsets.put(cs.name(), cs); } CharsetProvider[] providers = providers2(); *************** public abstract class Charset implements *** 333,353 **** { try { ! if (cachedEncoder == null) ! { ! cachedEncoder = newEncoder () ! .onMalformedInput (CodingErrorAction.REPLACE) ! .onUnmappableCharacter (CodingErrorAction.REPLACE); ! } else ! cachedEncoder.reset(); ! return cachedEncoder.encode (cb); } catch (CharacterCodingException e) { throw new AssertionError (e); } } ! public final ByteBuffer encode (String str) { return encode (CharBuffer.wrap (str)); --- 333,353 ---- { try { ! if (cachedEncoder == null) ! { ! cachedEncoder = newEncoder () ! .onMalformedInput (CodingErrorAction.REPLACE) ! .onUnmappableCharacter (CodingErrorAction.REPLACE); ! } else ! cachedEncoder.reset(); ! return cachedEncoder.encode (cb); } catch (CharacterCodingException e) { throw new AssertionError (e); } } ! public final ByteBuffer encode (String str) { return encode (CharBuffer.wrap (str)); *************** public abstract class Charset implements *** 361,375 **** { try { ! if (cachedDecoder == null) ! { ! cachedDecoder = newDecoder () ! .onMalformedInput (CodingErrorAction.REPLACE) ! .onUnmappableCharacter (CodingErrorAction.REPLACE); ! } else ! cachedDecoder.reset(); ! return cachedDecoder.decode (bb); } catch (CharacterCodingException e) { --- 361,375 ---- { try { ! if (cachedDecoder == null) ! { ! cachedDecoder = newDecoder () ! .onMalformedInput (CodingErrorAction.REPLACE) ! .onUnmappableCharacter (CodingErrorAction.REPLACE); ! } else ! cachedDecoder.reset(); ! return cachedDecoder.decode (bb); } catch (CharacterCodingException e) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/CharsetDecoder.java gcc-4.6.0/libjava/classpath/java/nio/charset/CharsetDecoder.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/CharsetDecoder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/nio/charset/CharsetDecoder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharsetDecoder.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharsetDecoder.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class CharsetDecoder *** 160,166 **** cr = decodeLoop (in, out); } catch (RuntimeException e) ! { throw new CoderMalfunctionError (e); } --- 160,166 ---- cr = decodeLoop (in, out); } catch (RuntimeException e) ! { throw new CoderMalfunctionError (e); } *************** public abstract class CharsetDecoder *** 199,205 **** { throw new UnsupportedOperationException (); } ! public final CoderResult flush (CharBuffer out) { // It seems weird that you can flush after reset, but Sun's javadoc --- 199,205 ---- { throw new UnsupportedOperationException (); } ! public final CoderResult flush (CharBuffer out) { // It seems weird that you can flush after reset, but Sun's javadoc diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/CharsetEncoder.java gcc-4.6.0/libjava/classpath/java/nio/charset/CharsetEncoder.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/CharsetEncoder.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/nio/charset/CharsetEncoder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CharsetEncoder.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CharsetEncoder.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class CharsetEncoder *** 50,56 **** private static final int STATE_CODING = 1; private static final int STATE_END = 2; private static final int STATE_FLUSHED = 3; ! private static final byte[] DEFAULT_REPLACEMENT = {(byte)'?'}; private final Charset charset; --- 50,56 ---- private static final int STATE_CODING = 1; private static final int STATE_END = 2; private static final int STATE_FLUSHED = 3; ! private static final byte[] DEFAULT_REPLACEMENT = {(byte)'?'}; private final Charset charset; *************** public abstract class CharsetEncoder *** 71,77 **** this (cs, averageBytesPerChar, maxBytesPerChar, DEFAULT_REPLACEMENT); } ! protected CharsetEncoder (Charset cs, float averageBytesPerChar, float maxBytesPerChar, byte[] replacement) { if (averageBytesPerChar <= 0.0f) --- 71,77 ---- this (cs, averageBytesPerChar, maxBytesPerChar, DEFAULT_REPLACEMENT); } ! protected CharsetEncoder (Charset cs, float averageBytesPerChar, float maxBytesPerChar, byte[] replacement) { if (averageBytesPerChar <= 0.0f) *************** public abstract class CharsetEncoder *** 87,93 **** this.replacement = replacement; implReplaceWith (replacement); } ! public final float averageBytesPerChar () { return averageBytesPerChar; --- 87,93 ---- this.replacement = replacement; implReplaceWith (replacement); } ! public final float averageBytesPerChar () { return averageBytesPerChar; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/CoderMalfunctionError.java gcc-4.6.0/libjava/classpath/java/nio/charset/CoderMalfunctionError.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/CoderMalfunctionError.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/charset/CoderMalfunctionError.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CoderMalfunctionError.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CoderMalfunctionError.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/CoderResult.java gcc-4.6.0/libjava/classpath/java/nio/charset/CoderResult.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/CoderResult.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/nio/charset/CoderResult.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CoderResult.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CoderResult.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.HashMap; *** 47,53 **** * @since 1.4 */ public class CoderResult ! { private static final int TYPE_MALFORMED = 0; private static final int TYPE_OVERFLOW = 1; private static final int TYPE_UNDERFLOW = 2; --- 47,53 ---- * @since 1.4 */ public class CoderResult ! { private static final int TYPE_MALFORMED = 0; private static final int TYPE_OVERFLOW = 1; private static final int TYPE_UNDERFLOW = 2; *************** public class CoderResult *** 57,63 **** = new CoderResult (TYPE_OVERFLOW, 0); public static final CoderResult UNDERFLOW = new CoderResult (TYPE_UNDERFLOW, 0); ! private static final String[] names = { "MALFORMED", "OVERFLOW", "UNDERFLOW", "UNMAPPABLE" }; --- 57,63 ---- = new CoderResult (TYPE_OVERFLOW, 0); public static final CoderResult UNDERFLOW = new CoderResult (TYPE_UNDERFLOW, 0); ! private static final String[] names = { "MALFORMED", "OVERFLOW", "UNDERFLOW", "UNMAPPABLE" }; *************** public class CoderResult *** 126,132 **** { return malformedCache.get (length); } ! public void throwException () throws CharacterCodingException { --- 126,132 ---- { return malformedCache.get (length); } ! public void throwException () throws CharacterCodingException { *************** public class CoderResult *** 152,158 **** public static CoderResult unmappableForLength (int length) { return unmappableCache.get (length); ! } private abstract static class Cache { --- 152,158 ---- public static CoderResult unmappableForLength (int length) { return unmappableCache.get (length); ! } private abstract static class Cache { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/CodingErrorAction.java gcc-4.6.0/libjava/classpath/java/nio/charset/CodingErrorAction.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/CodingErrorAction.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/nio/charset/CodingErrorAction.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CodingErrorAction.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* CodingErrorAction.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package java.nio.charset; *** 40,50 **** public class CodingErrorAction { public static final CodingErrorAction IGNORE ! = new CodingErrorAction("ignore"); public static final CodingErrorAction REPLACE ! = new CodingErrorAction("replace"); public static final CodingErrorAction REPORT ! = new CodingErrorAction("report"); private final String name; --- 40,50 ---- public class CodingErrorAction { public static final CodingErrorAction IGNORE ! = new CodingErrorAction("ignore"); public static final CodingErrorAction REPLACE ! = new CodingErrorAction("replace"); public static final CodingErrorAction REPORT ! = new CodingErrorAction("report"); private final String name; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/IllegalCharsetNameException.java gcc-4.6.0/libjava/classpath/java/nio/charset/IllegalCharsetNameException.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/IllegalCharsetNameException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/nio/charset/IllegalCharsetNameException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IllegalCharsetNameException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IllegalCharsetNameException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class IllegalCharsetNameException *** 47,55 **** * Compatible with JDK 1.4+ */ private static final long serialVersionUID = 1457525358470002989L; ! private String charsetName; ! /** * Creates the exception * --- 47,55 ---- * Compatible with JDK 1.4+ */ private static final long serialVersionUID = 1457525358470002989L; ! private String charsetName; ! /** * Creates the exception * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/MalformedInputException.java gcc-4.6.0/libjava/classpath/java/nio/charset/MalformedInputException.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/MalformedInputException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/charset/MalformedInputException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MalformedInputException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MalformedInputException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class MalformedInputException ext *** 45,51 **** private static final long serialVersionUID = - 3438823399834806194L; private int inputLength; ! /** * Creates the exception * --- 45,51 ---- private static final long serialVersionUID = - 3438823399834806194L; private int inputLength; ! /** * Creates the exception * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/UnmappableCharacterException.java gcc-4.6.0/libjava/classpath/java/nio/charset/UnmappableCharacterException.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/UnmappableCharacterException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/nio/charset/UnmappableCharacterException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnmappableCharacterException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnmappableCharacterException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class UnmappableCharacterExceptio *** 45,51 **** private static final long serialVersionUID = - 7026962371537706123L; private int inputLength; ! /** * Creates the exception */ --- 45,51 ---- private static final long serialVersionUID = - 7026962371537706123L; private int inputLength; ! /** * Creates the exception */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/nio/charset/UnsupportedCharsetException.java gcc-4.6.0/libjava/classpath/java/nio/charset/UnsupportedCharsetException.java *** gcc-4.5.2/libjava/classpath/java/nio/charset/UnsupportedCharsetException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/nio/charset/UnsupportedCharsetException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnsupportedCharsetException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnsupportedCharsetException.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class UnsupportedCharsetException *** 47,55 **** * Compatible with JDK 1.4+ */ private static final long serialVersionUID = 1490765524727386367L; ! String charsetName; ! /** * Creates the exception */ --- 47,55 ---- * Compatible with JDK 1.4+ */ private static final long serialVersionUID = 1490765524727386367L; ! String charsetName; ! /** * Creates the exception */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/AccessException.java gcc-4.6.0/libjava/classpath/java/rmi/AccessException.java *** gcc-4.5.2/libjava/classpath/java/rmi/AccessException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/AccessException.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* AccessException.java -- thrown if the caller does not have access ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* AccessException.java -- thrown if the caller does not have access ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/AlreadyBoundException.java gcc-4.6.0/libjava/classpath/java/rmi/AlreadyBoundException.java *** gcc-4.5.2/libjava/classpath/java/rmi/AlreadyBoundException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/AlreadyBoundException.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* AlreadyBoundException.java -- thrown if a binding is already bound ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* AlreadyBoundException.java -- thrown if a binding is already bound ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/MarshalledObject.java gcc-4.6.0/libjava/classpath/java/rmi/MarshalledObject.java *** gcc-4.5.2/libjava/classpath/java/rmi/MarshalledObject.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/MarshalledObject.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* MarshalledObject.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* MarshalledObject.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.Serializable; *** 51,58 **** * marshalled according to the RMI specification. *

                        * An object passed to the constructor is serialized and tagged with the needed ! * URL to retrieve its class definition for remote usage. If the object is a ! * remote reference its stub is serialized instead. The instance of this * marshalled object can be later retrieved by its get() method. *

                        * --- 51,58 ---- * marshalled according to the RMI specification. *

                        * An object passed to the constructor is serialized and tagged with the needed ! * URL to retrieve its class definition for remote usage. If the object is a ! * remote reference its stub is serialized instead. The instance of this * marshalled object can be later retrieved by its get() method. *

                        * *************** public final class MarshalledObject *** 70,83 **** /** * Constructs a MarshalledObject from the given object. ! * * @param obj the object to marshal * @throws IOException if an I/O error during serialization occurs. */ public MarshalledObject(T obj) throws IOException { ByteArrayOutputStream objStream = new ByteArrayOutputStream(); ! RMIMarshalledObjectOutputStream stream = new RMIMarshalledObjectOutputStream(objStream); stream.writeObject(obj); stream.flush(); --- 70,83 ---- /** * Constructs a MarshalledObject from the given object. ! * * @param obj the object to marshal * @throws IOException if an I/O error during serialization occurs. */ public MarshalledObject(T obj) throws IOException { ByteArrayOutputStream objStream = new ByteArrayOutputStream(); ! RMIMarshalledObjectOutputStream stream = new RMIMarshalledObjectOutputStream(objStream); stream.writeObject(obj); stream.flush(); *************** public final class MarshalledObject *** 88,94 **** hash = 0; for (int i = 0; i < objBytes.length; i++) hash = hash * 31 + objBytes[i]; ! if (locBytes != null) for (int i = 0; i < locBytes.length; i++) hash = hash * 31 + locBytes[i]; --- 88,94 ---- hash = 0; for (int i = 0; i < objBytes.length; i++) hash = hash * 31 + objBytes[i]; ! if (locBytes != null) for (int i = 0; i < locBytes.length; i++) hash = hash * 31 + locBytes[i]; *************** public final class MarshalledObject *** 96,107 **** /** * Checks if the given object is equal to this marshalled object. ! * *

                        Marshalled objects are considered equal if they contain the ! * same serialized object. Codebase annotations where the class * definition can be downloaded are ignored in the equals test.

                        * ! * @param obj the object to compare. * @return true if equal, false otherwise. */ public boolean equals(Object obj) --- 96,107 ---- /** * Checks if the given object is equal to this marshalled object. ! * *

                        Marshalled objects are considered equal if they contain the ! * same serialized object. Codebase annotations where the class * definition can be downloaded are ignored in the equals test.

                        * ! * @param obj the object to compare. * @return true if equal, false otherwise. */ public boolean equals(Object obj) *************** public final class MarshalledObject *** 129,147 **** /** * Constructs and returns a copy of the internal serialized object. ! * * @return The deserialized object. ! * * @throws IOException if an I/O exception occurs during deserialization. ! * @throws ClassNotFoundException if the class of the deserialized object * cannot be found. */ public T get() throws IOException, ClassNotFoundException { if (objBytes == null) return null; ! ! RMIMarshalledObjectInputStream stream = new RMIMarshalledObjectInputStream(objBytes, locBytes); return (T) stream.readObject(); } --- 129,147 ---- /** * Constructs and returns a copy of the internal serialized object. ! * * @return The deserialized object. ! * * @throws IOException if an I/O exception occurs during deserialization. ! * @throws ClassNotFoundException if the class of the deserialized object * cannot be found. */ public T get() throws IOException, ClassNotFoundException { if (objBytes == null) return null; ! ! RMIMarshalledObjectInputStream stream = new RMIMarshalledObjectInputStream(objBytes, locBytes); return (T) stream.readObject(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/Naming.java gcc-4.6.0/libjava/classpath/java/rmi/Naming.java *** gcc-4.5.2/libjava/classpath/java/rmi/Naming.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/Naming.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* Naming.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* Naming.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.registry.Registry; *** 65,71 **** *

                        *

                        * RMI services are registered using one of these names, and the same name ! * is later used by the client to lookup the service and access its methods. * Registries can be shared by multiple services, or a service can create * its own registry using createRegistry(). *

                        --- 65,71 ---- *

                        *

                        * RMI services are registered using one of these names, and the same name ! * is later used by the client to lookup the service and access its methods. * Registries can be shared by multiple services, or a service can create * its own registry using createRegistry(). *

                        *************** public final class Naming *** 87,101 **** } /** ! * Looks for the remote object that is associated with the named service. * Name and location is given in form of a URL without a scheme: ! * *
                             * //host:port/service-name
                             * 
                        ! * * The port is optional. ! * * @param name the service name and location * @return Remote-object that implements the named service * @throws NotBoundException if no object implements the service --- 87,101 ---- } /** ! * Looks for the remote object that is associated with the named service. * Name and location is given in form of a URL without a scheme: ! * *
                             * //host:port/service-name
                             * 
                        ! * * The port is optional. ! * * @param name the service name and location * @return Remote-object that implements the named service * @throws NotBoundException if no object implements the service *************** public final class Naming *** 112,118 **** /** * Try to bind the given object to the given service name. ! * * @param name * @param obj * @throws AlreadyBoundException --- 112,118 ---- /** * Try to bind the given object to the given service name. ! * * @param name * @param obj * @throws AlreadyBoundException *************** public final class Naming *** 129,135 **** /** * Remove a binding for a given service name. ! * * @param name * @throws RemoteException * @throws NotBoundException --- 129,135 ---- /** * Remove a binding for a given service name. ! * * @param name * @throws RemoteException * @throws NotBoundException *************** public final class Naming *** 146,152 **** /** * Forces the binding between the given Remote-object and the given service * name, even if there was already an object bound to this name. ! * * @param name * @param obj * @throws RemoteException --- 146,152 ---- /** * Forces the binding between the given Remote-object and the given service * name, even if there was already an object bound to this name. ! * * @param name * @param obj * @throws RemoteException *************** public final class Naming *** 162,168 **** /** * Lists all services at the named registry. ! * * @param name url that specifies the registry * @return list of services at the name registry * @throws RemoteException --- 162,168 ---- /** * Lists all services at the named registry. ! * * @param name url that specifies the registry * @return list of services at the name registry * @throws RemoteException *************** public final class Naming *** 190,196 **** * Parses the supplied URL and converts it to use the HTTP protocol. From an * RMI perspective, the scheme is irrelevant and we want to be able to create * a URL for which a handler is available. ! * * @param name the URL in String form. * @throws MalformedURLException if the URL is invalid. */ --- 190,196 ---- * Parses the supplied URL and converts it to use the HTTP protocol. From an * RMI perspective, the scheme is irrelevant and we want to be able to create * a URL for which a handler is available. ! * * @param name the URL in String form. * @throws MalformedURLException if the URL is invalid. */ *************** public final class Naming *** 216,222 **** /** * Checks that the URL contains a name, and removes any leading slashes. ! * * @param url the URL to check. * @throws MalformedURLException if no name is specified. */ --- 216,222 ---- /** * Checks that the URL contains a name, and removes any leading slashes. ! * * @param url the URL to check. * @throws MalformedURLException if no name is specified. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/NoSuchObjectException.java gcc-4.6.0/libjava/classpath/java/rmi/NoSuchObjectException.java *** gcc-4.5.2/libjava/classpath/java/rmi/NoSuchObjectException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/NoSuchObjectException.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* NoSuchObjectException.java -- thrown if the remote object no longer exists ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* NoSuchObjectException.java -- thrown if the remote object no longer exists ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/NotBoundException.java gcc-4.6.0/libjava/classpath/java/rmi/NotBoundException.java *** gcc-4.5.2/libjava/classpath/java/rmi/NotBoundException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/NotBoundException.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* NotBoundException.java -- attempt to use a registry name with no binding ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* NotBoundException.java -- attempt to use a registry name with no binding ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/RMISecurityException.java gcc-4.6.0/libjava/classpath/java/rmi/RMISecurityException.java *** gcc-4.5.2/libjava/classpath/java/rmi/RMISecurityException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/RMISecurityException.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* RMISecurityException.java -- deprecated version of SecurityException ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* RMISecurityException.java -- deprecated version of SecurityException ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 39,45 **** package java.rmi; /** ! * Never thrown, but originally intended to wrap a * {@link java.lang.SecurityException} in the case of RMI. * * @author unknown --- 39,45 ---- package java.rmi; /** ! * Never thrown, but originally intended to wrap a * {@link java.lang.SecurityException} in the case of RMI. * * @author unknown diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/RMISecurityManager.java gcc-4.6.0/libjava/classpath/java/rmi/RMISecurityManager.java *** gcc-4.5.2/libjava/classpath/java/rmi/RMISecurityManager.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/RMISecurityManager.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/Remote.java gcc-4.6.0/libjava/classpath/java/rmi/Remote.java *** gcc-4.5.2/libjava/classpath/java/rmi/Remote.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/Remote.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.rmi; *** 42,56 **** * from outside of this virtual machine through remote method calls. *

                        * Remote invokable methods of remote object implementations are specified ! * as the methods defined in the implemented remote interfaces. Typically ! * remote object implementations are subclasses of the convenience classes ! * {@link java.rmi.server.UnicastRemoteObject} or * {@link java.rmi.activation.Activatable} implementing one or more remote * interfaces indicating their remotely accessible methods. The convenience ! * classes provide implementations for correct remote object creation, * hash, equals and toString methods. *

                        ! * * @author unknown */ public interface Remote { --- 42,56 ---- * from outside of this virtual machine through remote method calls. *

                        * Remote invokable methods of remote object implementations are specified ! * as the methods defined in the implemented remote interfaces. Typically ! * remote object implementations are subclasses of the convenience classes ! * {@link java.rmi.server.UnicastRemoteObject} or * {@link java.rmi.activation.Activatable} implementing one or more remote * interfaces indicating their remotely accessible methods. The convenience ! * classes provide implementations for correct remote object creation, * hash, equals and toString methods. *

                        ! * * @author unknown */ public interface Remote { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/RemoteException.java gcc-4.6.0/libjava/classpath/java/rmi/RemoteException.java *** gcc-4.5.2/libjava/classpath/java/rmi/RemoteException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/RemoteException.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* RemoteException.java -- common superclass for exceptions in java.rmi ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* RemoteException.java -- common superclass for exceptions in java.rmi ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/StubNotFoundException.java gcc-4.6.0/libjava/classpath/java/rmi/StubNotFoundException.java *** gcc-4.5.2/libjava/classpath/java/rmi/StubNotFoundException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/StubNotFoundException.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* StubNotFoundException.java -- thrown if a valid stub is not found ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* StubNotFoundException.java -- thrown if a valid stub is not found ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/UnknownHostException.java gcc-4.6.0/libjava/classpath/java/rmi/UnknownHostException.java *** gcc-4.5.2/libjava/classpath/java/rmi/UnknownHostException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/UnknownHostException.java Tue Jan 11 19:46:05 2011 *************** package java.rmi; *** 45,51 **** * @since 1.1 * @status updated to 1.4 */ ! public class UnknownHostException extends RemoteException { /** * Compatible with JDK 1.1+. --- 45,51 ---- * @since 1.1 * @status updated to 1.4 */ ! public class UnknownHostException extends RemoteException { /** * Compatible with JDK 1.1+. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/Activatable.java gcc-4.6.0/libjava/classpath/java/rmi/activation/Activatable.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/Activatable.java Wed Dec 30 10:53:31 2009 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/Activatable.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.server.UnicastRemoteObje *** 63,72 **** * parameter being the {@link ActivationID} and the second the * {@link MarshalledObject}. Activatable is the main class that developers need * to use to implement and manage activatable objects. It also contains methods ! * for making activatable remote objects that are not derived from the * Activatable class. ! * ! * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public abstract class Activatable extends RemoteServer --- 63,72 ---- * parameter being the {@link ActivationID} and the second the * {@link MarshalledObject}. Activatable is the main class that developers need * to use to implement and manage activatable objects. It also contains methods ! * for making activatable remote objects that are not derived from the * Activatable class. ! * ! * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public abstract class Activatable extends RemoteServer *************** public abstract class Activatable *** 76,87 **** * Use SVUID for interoperability. */ static final long serialVersionUID = - 3120617863591563455L; ! /** * The object activation id. */ final ActivationID id; ! /** * This constructor is used to register export the object on the given port. A * subclass of the Activatable class calls this constructor to register and --- 76,87 ---- * Use SVUID for interoperability. */ static final long serialVersionUID = - 3120617863591563455L; ! /** * The object activation id. */ final ActivationID id; ! /** * This constructor is used to register export the object on the given port. A * subclass of the Activatable class calls this constructor to register and *************** public abstract class Activatable *** 90,96 **** * with the activation system and "exported" (on an anonymous port, if port is * zero) to the RMI runtime so that it is available to accept incoming calls * from clients. ! * * @param codebase the object code base url * @param data the data, needed to activate the object. * @param restart specifies reactivation mode after crash. If true, the object --- 90,96 ---- * with the activation system and "exported" (on an anonymous port, if port is * zero) to the RMI runtime so that it is available to accept incoming calls * from clients. ! * * @param codebase the object code base url * @param data the data, needed to activate the object. * @param restart specifies reactivation mode after crash. If true, the object *************** public abstract class Activatable *** 118,124 **** * additionally specifying the socket factories. A subclass of the Activatable * class calls this constructor to register and export the object during * initial construction. ! * * @param codebase the object code base url * @param data the data, needed to activate the object. * @param restart specifies reactivation mode after crash. If true, the object --- 118,124 ---- * additionally specifying the socket factories. A subclass of the Activatable * class calls this constructor to register and export the object during * initial construction. ! * * @param codebase the object code base url * @param data the data, needed to activate the object. * @param restart specifies reactivation mode after crash. If true, the object *************** public abstract class Activatable *** 151,157 **** * "activation" constructor with the two parameters ({@link ActivationID}, * {@link MarshalledObject}). As a side effect, the object is exported and is * available to accept incoming calls. ! * * @param anId the activation id * @param port the port, on which the activatable will be listening * @throws RemoteException if the activation failed. --- 151,157 ---- * "activation" constructor with the two parameters ({@link ActivationID}, * {@link MarshalledObject}). As a side effect, the object is exported and is * available to accept incoming calls. ! * * @param anId the activation id * @param port the port, on which the activatable will be listening * @throws RemoteException if the activation failed. *************** public abstract class Activatable *** 166,172 **** catch (Exception e) { e.printStackTrace(); ! RemoteException acex = new RemoteException("cannot export Activatable", e); throw acex; } --- 166,172 ---- catch (Exception e) { e.printStackTrace(); ! RemoteException acex = new RemoteException("cannot export Activatable", e); throw acex; } *************** public abstract class Activatable *** 180,191 **** * "activation" constructor with the two parameters ({@link ActivationID}, * {@link MarshalledObject}). As a side effect, the object is exported and is * available to accept incoming calls. ! * * @param anId the activation id * @param port the port, on which the activatable will be listening * @param csf the client socket factory * @param ssf the server socket factory ! * * @throws RemoteException if the remote call failed */ protected Activatable(ActivationID anId, int port, RMIClientSocketFactory csf, --- 180,191 ---- * "activation" constructor with the two parameters ({@link ActivationID}, * {@link MarshalledObject}). As a side effect, the object is exported and is * available to accept incoming calls. ! * * @param anId the activation id * @param port the port, on which the activatable will be listening * @param csf the client socket factory * @param ssf the server socket factory ! * * @throws RemoteException if the remote call failed */ protected Activatable(ActivationID anId, int port, RMIClientSocketFactory csf, *************** public abstract class Activatable *** 203,219 **** throw acex; } } ! /** * Get the objects activation identifier. ! * * @return the object activation identifier */ protected ActivationID getID() { return id; } ! /** * Obtain the activation Id from the activation descriptor by registering * within the current group. --- 203,219 ---- throw acex; } } ! /** * Get the objects activation identifier. ! * * @return the object activation identifier */ protected ActivationID getID() { return id; } ! /** * Obtain the activation Id from the activation descriptor by registering * within the current group. *************** public abstract class Activatable *** 230,240 **** system = ActivationGroup.currentGroupID().getSystem(); return system.registerObject(descriptor); } ! /** * This method registers an activatable object. The object is expected to be * on the anonymous port (null client and server socket factories). ! * * @param desc the object description. * @return the remote stub for the activatable object (the first call on this * stub will activate the object). --- 230,240 ---- system = ActivationGroup.currentGroupID().getSystem(); return system.registerObject(descriptor); } ! /** * This method registers an activatable object. The object is expected to be * on the anonymous port (null client and server socket factories). ! * * @param desc the object description. * @return the remote stub for the activatable object (the first call on this * stub will activate the object). *************** public abstract class Activatable *** 258,269 **** throw new ActivationException("Class not found: "+desc.getClassName()); } } ! /** * Inactivates and unexports the object. The subsequent calls will activate * the object again. The object is not inactivated if it is currently * executing calls. ! * * @param id the id of the object being inactivated * @return true if the object has been inactivated, false if it has not been * inactivated because of the running or pending calls. --- 258,269 ---- throw new ActivationException("Class not found: "+desc.getClassName()); } } ! /** * Inactivates and unexports the object. The subsequent calls will activate * the object again. The object is not inactivated if it is currently * executing calls. ! * * @param id the id of the object being inactivated * @return true if the object has been inactivated, false if it has not been * inactivated because of the running or pending calls. *************** public abstract class Activatable *** 278,287 **** id.group.inactiveObject(id); return UnicastRemoteObject.unexportObject(id.activate(false), false); } ! /** * Unregister the object (the object will no longer be activable with that id) ! * * @param id the object id * @throws UnknownObjectException if the id is unknown * @throws ActivationException if the activation system is not running --- 278,287 ---- id.group.inactiveObject(id); return UnicastRemoteObject.unexportObject(id.activate(false), false); } ! /** * Unregister the object (the object will no longer be activable with that id) ! * * @param id the object id * @throws UnknownObjectException if the id is unknown * @throws ActivationException if the activation system is not running *************** public abstract class Activatable *** 293,315 **** ActivationGroup.currentGroupId.getSystem().unregisterObject(id); UnicastServer.unregisterActivatable(id); } ! /** * Register and export the object that activatable object that is not derived * from the Activatable super class. It creates and registers the object * activation descriptor. There is no need to call this method if the object * extends Activable, as its work is done in the constructor * {@link #Activatable(String, MarshalledObject, boolean, int)}. ! * * @param obj the object, that is exported, becoming available at the given * port. * @param location the object code location (codebase). * @param data the data, needed to activate the object * @param restart the restart mode * @param port the port, where the object will be available ! * * @return the created object activation ID. ! * * @throws ActivationException if the activation group is not active * @throws RemoteException if the registration or export fails */ --- 293,315 ---- ActivationGroup.currentGroupId.getSystem().unregisterObject(id); UnicastServer.unregisterActivatable(id); } ! /** * Register and export the object that activatable object that is not derived * from the Activatable super class. It creates and registers the object * activation descriptor. There is no need to call this method if the object * extends Activable, as its work is done in the constructor * {@link #Activatable(String, MarshalledObject, boolean, int)}. ! * * @param obj the object, that is exported, becoming available at the given * port. * @param location the object code location (codebase). * @param data the data, needed to activate the object * @param restart the restart mode * @param port the port, where the object will be available ! * * @return the created object activation ID. ! * * @throws ActivationException if the activation group is not active * @throws RemoteException if the registration or export fails */ *************** public abstract class Activatable *** 321,327 **** ActivationDesc descriptor = new ActivationDesc(obj.getClass().getName(), location, data, restart); ActivationID id = obtainId(descriptor); ! Remote stub = exportObject(obj, id, port); return id; } --- 321,327 ---- ActivationDesc descriptor = new ActivationDesc(obj.getClass().getName(), location, data, restart); ActivationID id = obtainId(descriptor); ! Remote stub = exportObject(obj, id, port); return id; } *************** public abstract class Activatable *** 331,337 **** * activation descriptor. There is no need to call this method if the object * extends Activable, as its work is done in the constructor * {@link #Activatable(String, MarshalledObject, boolean, int, RMIClientSocketFactory, RMIServerSocketFactory)} ! * * @param obj the object, that is exported, becoming available at the given * port. * @param location the object code location (codebase). --- 331,337 ---- * activation descriptor. There is no need to call this method if the object * extends Activable, as its work is done in the constructor * {@link #Activatable(String, MarshalledObject, boolean, int, RMIClientSocketFactory, RMIServerSocketFactory)} ! * * @param obj the object, that is exported, becoming available at the given * port. * @param location the object code location (codebase). *************** public abstract class Activatable *** 340,348 **** * @param port the port, where the object will be available * @param csf the client socket factory * @param ssf the server socket factory ! * * @return the created object activation ID. ! * * @throws ActivationException if the activation group is not active * @throws RemoteException if the registration or export fails */ --- 340,348 ---- * @param port the port, where the object will be available * @param csf the client socket factory * @param ssf the server socket factory ! * * @return the created object activation ID. ! * * @throws ActivationException if the activation group is not active * @throws RemoteException if the registration or export fails */ *************** public abstract class Activatable *** 356,362 **** ActivationDesc descriptor = new ActivationDesc(obj.getClass().getName(), location, data, restart); ActivationID id = obtainId(descriptor); ! Remote stub = exportObject(obj, id, port, csf, ssf); return id; } --- 356,362 ---- ActivationDesc descriptor = new ActivationDesc(obj.getClass().getName(), location, data, restart); ActivationID id = obtainId(descriptor); ! Remote stub = exportObject(obj, id, port, csf, ssf); return id; } *************** public abstract class Activatable *** 367,379 **** * class. There is no need to call this method if the object extends * Activable, as its work is done in the constructor * {@link #Activatable(ActivationID, int)} ! * * @param obj the object * @param id the known activation id * @param port the object port ! * * @return the remote stub of the activatable object ! * * @throws RemoteException if the object export fails */ public static Remote exportObject(Remote obj, ActivationID id, int port) --- 367,379 ---- * class. There is no need to call this method if the object extends * Activable, as its work is done in the constructor * {@link #Activatable(ActivationID, int)} ! * * @param obj the object * @param id the known activation id * @param port the object port ! * * @return the remote stub of the activatable object ! * * @throws RemoteException if the object export fails */ public static Remote exportObject(Remote obj, ActivationID id, int port) *************** public abstract class Activatable *** 389,403 **** * class. There is no need to call this method if the object extends * Activable, as its work is done in the constructor * {@link #Activatable(ActivationID, int)} ! * * @param obj the object * @param id the known activation id * @param port the object port * @param csf the client socket factory * @param ssf the server socket factory ! * * @return the remote stub of the activatable object ! * * @throws RemoteException if the object export fails */ public static Remote exportObject(Remote obj, ActivationID id, int port, --- 389,403 ---- * class. There is no need to call this method if the object extends * Activable, as its work is done in the constructor * {@link #Activatable(ActivationID, int)} ! * * @param obj the object * @param id the known activation id * @param port the object port * @param csf the client socket factory * @param ssf the server socket factory ! * * @return the remote stub of the activatable object ! * * @throws RemoteException if the object export fails */ public static Remote exportObject(Remote obj, ActivationID id, int port, *************** public abstract class Activatable *** 405,411 **** RMIServerSocketFactory ssf) throws RemoteException { ! Remote stub = export(id, obj, port, ssf); return stub; } --- 405,411 ---- RMIServerSocketFactory ssf) throws RemoteException { ! Remote stub = export(id, obj, port, ssf); return stub; } *************** public abstract class Activatable *** 414,420 **** * Make the remote object unavailable for incoming calls. This method also * unregisters the object, so it cannot be activated again by incoming call * (unless registered). ! * * @param obj the object to unexport * @param force if true, cancel all pending or running calls to that object * (if false, the object with such calls is not unexported and false --- 414,420 ---- * Make the remote object unavailable for incoming calls. This method also * unregisters the object, so it cannot be activated again by incoming call * (unless registered). ! * * @param obj the object to unexport * @param force if true, cancel all pending or running calls to that object * (if false, the object with such calls is not unexported and false *************** public abstract class Activatable *** 426,432 **** throws NoSuchObjectException { Object aref = UnicastServer.getExportedRef(obj); ! // Unregister it also (otherwise will be activated during the subsequent // call. if (aref instanceof ActivatableServerRef) --- 426,432 ---- throws NoSuchObjectException { Object aref = UnicastServer.getExportedRef(obj); ! // Unregister it also (otherwise will be activated during the subsequent // call. if (aref instanceof ActivatableServerRef) *************** public abstract class Activatable *** 436,444 **** } return UnicastRemoteObject.unexportObject(obj, force); } ! ! static Remote exportObject(Remote obj, int port, ! RMIServerSocketFactory serverSocketFactory) throws RemoteException { UnicastServerRef sref = null; --- 436,444 ---- } return UnicastRemoteObject.unexportObject(obj, force); } ! ! static Remote exportObject(Remote obj, int port, ! RMIServerSocketFactory serverSocketFactory) throws RemoteException { UnicastServerRef sref = null; *************** public abstract class Activatable *** 449,500 **** sref = new UnicastServerRef(new ObjID(), port, serverSocketFactory); Remote stub = sref.exportObject(obj); ! // addStub(obj, stub); // TODO Need to change the place of the stub repository return stub; } ! /** * Create and export the new remote object, making it available at the given * port, using sockets, produced by the specified factories. ! * * @param port the port, on that the object should become available. Zero * means anonymous port. * @param serverSocketFactory the server socket factory */ private static Remote export(ActivationID id, Remote obj, int port, ! RMIServerSocketFactory serverSocketFactory) throws RemoteException { ActivatableServerRef sref = null; sref = new ActivatableServerRef(makeId(id), id, port, serverSocketFactory); return sref.exportObject(obj); ! } ! /** * Make the object ID from the activation ID. The same activation ID always * produces the identical object id. ! * * @param aid the activation id ! * * @return the object id */ private static ObjID makeId(ActivationID aid) { ObjID id = new ObjID(0); ! // The fields of both ObjID and ActivationID must be package private, // so we need to use the reflection to access them anyway. // Probably other implementations use some very different approach. ! try { Field idUid = ObjID.class.getDeclaredField("space"); Field aidUid = ActivationID.class.getDeclaredField("uid"); ! aidUid.setAccessible(true); idUid.setAccessible(true); ! idUid.set(id, aidUid.get(aid)); } catch (Exception e) --- 449,500 ---- sref = new UnicastServerRef(new ObjID(), port, serverSocketFactory); Remote stub = sref.exportObject(obj); ! // addStub(obj, stub); // TODO Need to change the place of the stub repository return stub; } ! /** * Create and export the new remote object, making it available at the given * port, using sockets, produced by the specified factories. ! * * @param port the port, on that the object should become available. Zero * means anonymous port. * @param serverSocketFactory the server socket factory */ private static Remote export(ActivationID id, Remote obj, int port, ! RMIServerSocketFactory serverSocketFactory) throws RemoteException { ActivatableServerRef sref = null; sref = new ActivatableServerRef(makeId(id), id, port, serverSocketFactory); return sref.exportObject(obj); ! } ! /** * Make the object ID from the activation ID. The same activation ID always * produces the identical object id. ! * * @param aid the activation id ! * * @return the object id */ private static ObjID makeId(ActivationID aid) { ObjID id = new ObjID(0); ! // The fields of both ObjID and ActivationID must be package private, // so we need to use the reflection to access them anyway. // Probably other implementations use some very different approach. ! try { Field idUid = ObjID.class.getDeclaredField("space"); Field aidUid = ActivationID.class.getDeclaredField("uid"); ! aidUid.setAccessible(true); idUid.setAccessible(true); ! idUid.set(id, aidUid.get(aid)); } catch (Exception e) *************** public abstract class Activatable *** 503,512 **** ierr.initCause(e); throw ierr; } ! return id; ! } ! /** * Connect the object to the UnicastServer (export), but not activate it. * The object will be activated on the first call. --- 503,512 ---- ierr.initCause(e); throw ierr; } ! return id; ! } ! /** * Connect the object to the UnicastServer (export), but not activate it. * The object will be activated on the first call. *************** public abstract class Activatable *** 515,521 **** { try { ! ActivatableServerRef asr = new ActivatableServerRef(makeId(anId), anId, 0, null); UnicastServer.exportActivatableObject(asr); return asr.exportClass(stubFor); --- 515,521 ---- { try { ! ActivatableServerRef asr = new ActivatableServerRef(makeId(anId), anId, 0, null); UnicastServer.exportActivatableObject(asr); return asr.exportClass(stubFor); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationDesc.java gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationDesc.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationDesc.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationDesc.java Tue Jan 11 19:46:05 2011 *************** *** 1,13 **** /* ActivationDesc.java -- record with info to activate an object Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 1,13 ---- /* ActivationDesc.java -- record with info to activate an object Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.MarshalledObject; *** 51,58 **** *
                      • the object restart mode
                      • *
                      • the object specific intialization information
                      • *
                      ! * ! * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public final class ActivationDesc implements Serializable --- 51,58 ---- *
                    • the object restart mode
                    • *
                    • the object specific intialization information
                    • *
                    ! * ! * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public final class ActivationDesc implements Serializable *************** public final class ActivationDesc *** 89,96 **** /** * Create the new activation description, assuming the object group is the ! * {@link ActivationGroup#currentGroupID()}. ! * * @param className the object fully qualified class name * @param location the code base URL * @param data the object initialization data, contained in a marshalled form --- 89,96 ---- /** * Create the new activation description, assuming the object group is the ! * {@link ActivationGroup#currentGroupID()}. ! * * @param className the object fully qualified class name * @param location the code base URL * @param data the object initialization data, contained in a marshalled form *************** public final class ActivationDesc *** 103,110 **** /** * Create the new activation description, assuming the object group is the ! * {@link ActivationGroup#currentGroupID()}. ! * * @param className the object fully qualified class name * @param location the code base URL * @param data the object initialization data, contained in a marshalled form --- 103,110 ---- /** * Create the new activation description, assuming the object group is the ! * {@link ActivationGroup#currentGroupID()}. ! * * @param className the object fully qualified class name * @param location the code base URL * @param data the object initialization data, contained in a marshalled form *************** public final class ActivationDesc *** 124,130 **** /** * Create the new activation description. Under crash, the object will only * be reactivated on demand. ! * * @param groupID the object group id. * @param className the object fully qualified class name * @param location the code base URL --- 124,130 ---- /** * Create the new activation description. Under crash, the object will only * be reactivated on demand. ! * * @param groupID the object group id. * @param className the object fully qualified class name * @param location the code base URL *************** public final class ActivationDesc *** 138,144 **** /** * Create the new activation description, providing full information. ! * * @param groupID the object group id. * @param className the object fully qualified class name * @param location the code base URL --- 138,144 ---- /** * Create the new activation description, providing full information. ! * * @param groupID the object group id. * @param className the object fully qualified class name * @param location the code base URL *************** public final class ActivationDesc *** 166,172 **** /** * Get the class name of the object being activated ! * * @return the fully qualified class name of the object being activated */ public String getClassName() --- 166,172 ---- /** * Get the class name of the object being activated ! * * @return the fully qualified class name of the object being activated */ public String getClassName() *************** public final class ActivationDesc *** 176,182 **** /** * Get the code location URL ("codebase") of the object being activated. ! * * @return the codebase of the object being activated. */ public String getLocation() --- 176,182 ---- /** * Get the code location URL ("codebase") of the object being activated. ! * * @return the codebase of the object being activated. */ public String getLocation() *************** public final class ActivationDesc *** 191,197 **** /** * Get the object reactivation strategy after crash. ! * * @return true ir the object is activated when activator is restarted or the * activation group is restarted. False if the object is only * activated on demand. This flag does has no effect during the normal --- 191,197 ---- /** * Get the object reactivation strategy after crash. ! * * @return true ir the object is activated when activator is restarted or the * activation group is restarted. False if the object is only * activated on demand. This flag does has no effect during the normal *************** public final class ActivationDesc *** 201,210 **** { return restart; } ! /** * Compare this object with another activation description for equality. ! * * @return true if all fields have the equal values, false otherwise. */ public boolean equals(Object obj) --- 201,210 ---- { return restart; } ! /** * Compare this object with another activation description for equality. ! * * @return true if all fields have the equal values, false otherwise. */ public boolean equals(Object obj) *************** public final class ActivationDesc *** 213,237 **** { ActivationDesc that = (ActivationDesc) obj; return eq(groupid, that.groupid) && ! eq(classname, that.classname) && ! eq(location, that.location) && eq(data, that.data) && restart == that.restart; } else return false; } ! /** * Get the hash code of this object (overridden to make the returned value * consistent with .equals(..). */ public int hashCode() { ! return hash(groupid) ^ hash(classname) ^ hash(location) ^ hash(data); } ! /** * Get the hashcode of x or 0 if x == null. */ --- 213,237 ---- { ActivationDesc that = (ActivationDesc) obj; return eq(groupid, that.groupid) && ! eq(classname, that.classname) && ! eq(location, that.location) && eq(data, that.data) && restart == that.restart; } else return false; } ! /** * Get the hash code of this object (overridden to make the returned value * consistent with .equals(..). */ public int hashCode() { ! return hash(groupid) ^ hash(classname) ^ hash(location) ^ hash(data); } ! /** * Get the hashcode of x or 0 if x == null. */ *************** public final class ActivationDesc *** 239,245 **** { return x == null ? 0 : x.hashCode(); } ! /** * Compare by .equals if both a and b are not null, compare directly if at * least one of them is null. --- 239,245 ---- { return x == null ? 0 : x.hashCode(); } ! /** * Compare by .equals if both a and b are not null, compare directly if at * least one of them is null. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationGroup.java gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationGroup.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationGroup.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationGroup.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.server.UnicastRemoteObje *** 50,56 **** /** * The entity that receives the request to activate object and activates it. * Frequently there is one activation group per virtual machine. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) (from stub) */ public abstract class ActivationGroup --- 50,56 ---- /** * The entity that receives the request to activate object and activates it. * Frequently there is one activation group per virtual machine. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) (from stub) */ public abstract class ActivationGroup *************** public abstract class ActivationGroup *** 62,73 **** * Use the SVUID for interoperability. */ static final long serialVersionUID = - 7696947875314805420L; ! /** * The Id of the current group on this VM (null if none). */ ! static ActivationGroupID currentGroupId = null; ! /** * The groups identifier. */ --- 62,73 ---- * Use the SVUID for interoperability. */ static final long serialVersionUID = - 7696947875314805420L; ! /** * The Id of the current group on this VM (null if none). */ ! static ActivationGroupID currentGroupId = null; ! /** * The groups identifier. */ *************** public abstract class ActivationGroup *** 77,93 **** * The groups activation monitor. */ ActivationMonitor monitor; ! /** * The groups incarnation number. */ long incarnation; ! /** * The groups activation system. */ static ActivationSystem system; ! /** * Used during the group creation (required constructor). */ --- 77,93 ---- * The groups activation monitor. */ ActivationMonitor monitor; ! /** * The groups incarnation number. */ long incarnation; ! /** * The groups activation system. */ static ActivationSystem system; ! /** * Used during the group creation (required constructor). */ *************** public abstract class ActivationGroup *** 98,131 **** }; /** ! * Create the new activation group with the given group id. ! * * @param aGroupId the group Id. ! * * @throws RemoteException if the group export fails. */ protected ActivationGroup(ActivationGroupID aGroupId) throws RemoteException { groupId = aGroupId; } ! /** * The method is called when the object is exported. The group must notify * the activation monitor, if this was not already done before. ! * * @param id the object activation id * @param obj the remote object implementation ! * * @throws ActivationException if the group is inactive * @throws UnknownObjectException if such object is not known * @throws RemoteException if the call to monitor fails */ public abstract void activeObject(ActivationID id, Remote obj) throws ActivationException, UnknownObjectException, RemoteException; ! /** * Notifies the monitor about the object being inactivated. ! * * @param id the object being inactivated. * @return true always (must be overridden to return other values). * @throws ActivationException never --- 98,131 ---- }; /** ! * Create the new activation group with the given group id. ! * * @param aGroupId the group Id. ! * * @throws RemoteException if the group export fails. */ protected ActivationGroup(ActivationGroupID aGroupId) throws RemoteException { groupId = aGroupId; } ! /** * The method is called when the object is exported. The group must notify * the activation monitor, if this was not already done before. ! * * @param id the object activation id * @param obj the remote object implementation ! * * @throws ActivationException if the group is inactive * @throws UnknownObjectException if such object is not known * @throws RemoteException if the call to monitor fails */ public abstract void activeObject(ActivationID id, Remote obj) throws ActivationException, UnknownObjectException, RemoteException; ! /** * Notifies the monitor about the object being inactivated. ! * * @param id the object being inactivated. * @return true always (must be overridden to return other values). * @throws ActivationException never *************** public abstract class ActivationGroup *** 148,154 **** * {@link MarshalledObject}. The group must be first be registered with the * ActivationSystem. Once a group is created, the currentGroupID method * returns the identifier for this group until the group becomes inactive. ! * * @param id the activation group id * @param desc the group descriptor, providing the information, necessary to * create the group --- 148,154 ---- * {@link MarshalledObject}. The group must be first be registered with the * ActivationSystem. Once a group is created, the currentGroupID method * returns the identifier for this group until the group becomes inactive. ! * * @param id the activation group id * @param desc the group descriptor, providing the information, necessary to * create the group *************** public abstract class ActivationGroup *** 165,171 **** // passed in the group id. if (system == null) system = id.system; ! ActivationGroup group = null; // TODO at the moment all groups are created on the current jre and the --- 165,171 ---- // passed in the group id. if (system == null) system = id.system; ! ActivationGroup group = null; // TODO at the moment all groups are created on the current jre and the *************** public abstract class ActivationGroup *** 220,226 **** /** * Get the id of current activation group. ! * * @return the id of the current activation group or null if none exists. */ public static ActivationGroupID currentGroupID() --- 220,226 ---- /** * Get the id of current activation group. ! * * @return the id of the current activation group or null if none exists. */ public static ActivationGroupID currentGroupID() *************** public abstract class ActivationGroup *** 240,255 **** ierr.initCause(e); throw ierr; } ! return currentGroupId; } /** * Set the activation system for this virtual machine. The system can only ! * be set if no group is active. ! * * @param aSystem the system to set ! * * @throws ActivationException if some group is active now. */ public static void setSystem(ActivationSystem aSystem) --- 240,255 ---- ierr.initCause(e); throw ierr; } ! return currentGroupId; } /** * Set the activation system for this virtual machine. The system can only ! * be set if no group is active. ! * * @param aSystem the system to set ! * * @throws ActivationException if some group is active now. */ public static void setSystem(ActivationSystem aSystem) *************** public abstract class ActivationGroup *** 259,265 **** throw new ActivationException("Group active"); else { ! try { // Register the default transient activation system and group. system = aSystem; --- 259,265 ---- throw new ActivationException("Group active"); else { ! try { // Register the default transient activation system and group. system = aSystem; *************** public abstract class ActivationGroup *** 277,285 **** ierr.initCause(ex); throw ierr; } ! } } ! /** * Get the current activation system. If the system is not set via * {@link #setSystem} method, the default system for this virtual machine is --- 277,285 ---- ierr.initCause(ex); throw ierr; } ! } } ! /** * Get the current activation system. If the system is not set via * {@link #setSystem} method, the default system for this virtual machine is *************** public abstract class ActivationGroup *** 293,299 **** * transient activation system will be created and returned. This internal * system is highly limited in in capabilities and is not intended to be used * anywhere apart automated testing. ! * * @return the activation system for this virtual machine * @throws ActivationException */ --- 293,299 ---- * transient activation system will be created and returned. This internal * system is highly limited in in capabilities and is not intended to be used * anywhere apart automated testing. ! * * @return the activation system for this virtual machine * @throws ActivationException */ *************** public abstract class ActivationGroup *** 306,312 **** /** * Makes the call back to the groups {@link ActivationMonitor}. ! * * @param id the id obj the object being activated * @param mObject the marshalled object, contains the activated remote object * stub. --- 306,312 ---- /** * Makes the call back to the groups {@link ActivationMonitor}. ! * * @param id the id obj the object being activated * @param mObject the marshalled object, contains the activated remote object * stub. *************** public abstract class ActivationGroup *** 315,338 **** * @throws RemoteException on remote call (to monitor) error */ protected void activeObject(ActivationID id, ! MarshalledObject mObject) throws ActivationException, UnknownObjectException, RemoteException { if (monitor!=null) monitor.activeObject(id, mObject); ! id.group = this; } /** * Makes the call back to the groups {@link ActivationMonitor} and sets * the current group to null. ! */ protected void inactiveGroup() throws UnknownGroupException, RemoteException { if (monitor!=null) monitor.inactiveGroup(groupId, incarnation); ! if (currentGroupId!=null && currentGroupId.equals(groupId)) currentGroupId = null; } --- 315,338 ---- * @throws RemoteException on remote call (to monitor) error */ protected void activeObject(ActivationID id, ! MarshalledObject mObject) throws ActivationException, UnknownObjectException, RemoteException { if (monitor!=null) monitor.activeObject(id, mObject); ! id.group = this; } /** * Makes the call back to the groups {@link ActivationMonitor} and sets * the current group to null. ! */ protected void inactiveGroup() throws UnknownGroupException, RemoteException { if (monitor!=null) monitor.inactiveGroup(groupId, incarnation); ! if (currentGroupId!=null && currentGroupId.equals(groupId)) currentGroupId = null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationGroupDesc.java gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationGroupDesc.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationGroupDesc.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationGroupDesc.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.zip.Adler32; *** 64,70 **** * expectes the group class to have the two parameter constructor, the first * parameter being the {@link ActivationGroupID} and the second the * {@link MarshalledObject}. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public final class ActivationGroupDesc --- 64,70 ---- * expectes the group class to have the two parameter constructor, the first * parameter being the {@link ActivationGroupID} and the second the * {@link MarshalledObject}. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public final class ActivationGroupDesc *************** public final class ActivationGroupDesc *** 74,80 **** * Contains the startup options for the {@link ActivationGroup} * implementations. Allows to override system properties and specify other * options for the implementation groups. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public static class CommandEnvironment --- 74,80 ---- * Contains the startup options for the {@link ActivationGroup} * implementations. Allows to override system properties and specify other * options for the implementation groups. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public static class CommandEnvironment *************** public final class ActivationGroupDesc *** 85,91 **** * Use the SVUID for interoperability. */ static final long serialVersionUID = 6165754737887770191L; ! /** * The zero size string array used as argv value when null is passed. */ --- 85,91 ---- * Use the SVUID for interoperability. */ static final long serialVersionUID = 6165754737887770191L; ! /** * The zero size string array used as argv value when null is passed. */ *************** public final class ActivationGroupDesc *** 95,109 **** * The path to the java executable (or null for using default jre). */ final String command; ! /** * The extra parameters (may be empty array but never null). */ final String[] options; ! /** * Create the new command environment. ! * * @param commandPatch the full path (and name) to the java executable of * null for using the default executable. * @param args extra options that will be used when creating the activation --- 95,109 ---- * The path to the java executable (or null for using default jre). */ final String command; ! /** * The extra parameters (may be empty array but never null). */ final String[] options; ! /** * Create the new command environment. ! * * @param commandPatch the full path (and name) to the java executable of * null for using the default executable. * @param args extra options that will be used when creating the activation *************** public final class ActivationGroupDesc *** 117,126 **** else options = NO_ARGS; } ! /** * Get the path to the java executable. ! * * @return the path to the java executable or null for using the default * jre. */ --- 117,126 ---- else options = NO_ARGS; } ! /** * Get the path to the java executable. ! * * @return the path to the java executable or null for using the default * jre. */ *************** public final class ActivationGroupDesc *** 128,144 **** { return command; } ! /** * Get the additional command options. ! * * @return the command options array, may be empty string */ public String[] getCommandOptions() { return options; } ! /** * Compare for content equality. */ --- 128,144 ---- { return command; } ! /** * Get the additional command options. ! * * @return the command options array, may be empty string */ public String[] getCommandOptions() { return options; } ! /** * Compare for content equality. */ *************** public final class ActivationGroupDesc *** 179,227 **** return h; } } ! /** * Use the SVUID for interoperability. */ static final long serialVersionUID = - 4936225423168276595L; ! /** * The group class name or null for the default group class implementation. */ final String className; ! /** * The group class download location URL (codebase), ignored by the ! * default implementation. */ final String location; ! /** * The group initialization data. */ final MarshalledObject data; ! /** * The path to the group jre and the parameters of this jre, may be * null for the default jre. */ final ActivationGroupDesc.CommandEnvironment env; ! /** * The properties that override the system properties. */ final Properties props; ! /** * The cached hash code. */ transient long hash; ! /** * Create the new activation group descriptor that will use the default * activation group implementation with the given properties and * environment. ! * * @param aProperties the properties that override the system properties * @param environment the command line (and parameters), indicating, where to * find the jre executable and with that parameters to call it. May --- 179,227 ---- return h; } } ! /** * Use the SVUID for interoperability. */ static final long serialVersionUID = - 4936225423168276595L; ! /** * The group class name or null for the default group class implementation. */ final String className; ! /** * The group class download location URL (codebase), ignored by the ! * default implementation. */ final String location; ! /** * The group initialization data. */ final MarshalledObject data; ! /** * The path to the group jre and the parameters of this jre, may be * null for the default jre. */ final ActivationGroupDesc.CommandEnvironment env; ! /** * The properties that override the system properties. */ final Properties props; ! /** * The cached hash code. */ transient long hash; ! /** * Create the new activation group descriptor that will use the default * activation group implementation with the given properties and * environment. ! * * @param aProperties the properties that override the system properties * @param environment the command line (and parameters), indicating, where to * find the jre executable and with that parameters to call it. May *************** public final class ActivationGroupDesc *** 235,244 **** this(DefaultActivationGroup.class.getName(), null, null, aProperties, environment); } ! /** * Create the new activation group descriptor. ! * * @param aClassName the name of the group implementation class. The null * value indicates the default implementation. * @param aLocation the location, from where the group implementation class --- 235,244 ---- this(DefaultActivationGroup.class.getName(), null, null, aProperties, environment); } ! /** * Create the new activation group descriptor. ! * * @param aClassName the name of the group implementation class. The null * value indicates the default implementation. * @param aLocation the location, from where the group implementation class *************** public final class ActivationGroupDesc *** 261,280 **** props = aProperties; env = environment; } ! /** * Get the activation group class name. ! * * @return the activation group class name (null for default implementation) */ public String getClassName() { return className; } ! /** * Get the location, from where the group class will be loaded ! * * @return the location, from where the implementation should be loaded (null * for the default implementation) */ --- 261,280 ---- props = aProperties; env = environment; } ! /** * Get the activation group class name. ! * * @return the activation group class name (null for default implementation) */ public String getClassName() { return className; } ! /** * Get the location, from where the group class will be loaded ! * * @return the location, from where the implementation should be loaded (null * for the default implementation) */ *************** public final class ActivationGroupDesc *** 282,291 **** { return location; } ! /** * Get the group intialization data. ! * * @return the group intialization data in the marshalled form. */ public MarshalledObject getData() --- 282,291 ---- { return location; } ! /** * Get the group intialization data. ! * * @return the group intialization data in the marshalled form. */ public MarshalledObject getData() *************** public final class ActivationGroupDesc *** 295,312 **** /** * Get the overridded system properties. ! * * @return the overridden group system properties. */ public Properties getPropertyOverrides() { return props; } ! /** * Get the group command environment, containing path to the jre executable * and startup options. ! * * @return the command environment or null if the default environment should * be used. */ --- 295,312 ---- /** * Get the overridded system properties. ! * * @return the overridden group system properties. */ public Properties getPropertyOverrides() { return props; } ! /** * Get the group command environment, containing path to the jre executable * and startup options. ! * * @return the command environment or null if the default environment should * be used. */ *************** public final class ActivationGroupDesc *** 314,320 **** { return env; } ! /** * Compare for the content equality. */ --- 314,320 ---- { return env; } ! /** * Compare for the content equality. */ *************** public final class ActivationGroupDesc *** 366,372 **** else return false; } ! /** * Compare for direct equality if one or both parameters are null, otherwise * call .equals. --- 366,372 ---- else return false; } ! /** * Compare for direct equality if one or both parameters are null, otherwise * call .equals. *************** public final class ActivationGroupDesc *** 378,384 **** else return a.equals(b); } ! /** * Return the hashcode. */ --- 378,384 ---- else return a.equals(b); } ! /** * Return the hashcode. */ *************** public final class ActivationGroupDesc *** 401,411 **** if (props!=null) { Enumeration en = props.propertyNames(); ! // Using the intermediate sorted set to ensure that the // properties are sorted. TreeSet pr = new TreeSet(); ! Object key; Object value; while (en.hasMoreElements()) --- 401,411 ---- if (props!=null) { Enumeration en = props.propertyNames(); ! // Using the intermediate sorted set to ensure that the // properties are sorted. TreeSet pr = new TreeSet(); ! Object key; Object value; while (en.hasMoreElements()) *************** public final class ActivationGroupDesc *** 414,420 **** if (key!=null) pr.add(key); } ! Iterator it = pr.iterator(); while (it.hasNext()) { --- 414,420 ---- if (key!=null) pr.add(key); } ! Iterator it = pr.iterator(); while (it.hasNext()) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationGroupID.java gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationGroupID.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationGroupID.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationGroupID.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.server.UID; *** 45,51 **** * This identifier identifies the activation group inside the scope of its * activation system. It also contains (and can provide) the reference to the * groups activation system. ! * * @see ActivationSystem#registerGroup(ActivationGroupDesc) */ public class ActivationGroupID --- 45,51 ---- * This identifier identifies the activation group inside the scope of its * activation system. It also contains (and can provide) the reference to the * groups activation system. ! * * @see ActivationSystem#registerGroup(ActivationGroupDesc) */ public class ActivationGroupID *************** public class ActivationGroupID *** 60,66 **** * The associated activation system. */ final ActivationSystem system; ! /** * The object identifier, making the ID unique. */ --- 60,66 ---- * The associated activation system. */ final ActivationSystem system; ! /** * The object identifier, making the ID unique. */ *************** public class ActivationGroupID *** 69,75 **** /** * Create the new activation group id in the scope of the given activation * system ! * * @param aSystem the activation system */ public ActivationGroupID(ActivationSystem aSystem) --- 69,75 ---- /** * Create the new activation group id in the scope of the given activation * system ! * * @param aSystem the activation system */ public ActivationGroupID(ActivationSystem aSystem) *************** public class ActivationGroupID *** 80,86 **** /** * Get the associated activation system ! * * @return the associated activation system */ public ActivationSystem getSystem() --- 80,86 ---- /** * Get the associated activation system ! * * @return the associated activation system */ public ActivationSystem getSystem() *************** public class ActivationGroupID *** 110,116 **** else return false; } ! /** * Get the string representation */ --- 110,116 ---- else return false; } ! /** * Get the string representation */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationID.java gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationID.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationID.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationID.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.server.UID; *** 57,63 **** *
                  * An instance of the ActivationID has the {@link UID} as its component and * hence is globally unique. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public class ActivationID --- 57,63 ---- *
                * An instance of the ActivationID has the {@link UID} as its component and * hence is globally unique. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) (from stub) */ public class ActivationID *************** public class ActivationID *** 72,83 **** * The activator. */ transient Activator activator; ! /** * The UID, making this instance unique. */ ! transient UID uid; ! /** * The activation group that has activated the object with this * activation id. The field is filled in inside the group and is used --- 72,83 ---- * The activator. */ transient Activator activator; ! /** * The UID, making this instance unique. */ ! transient UID uid; ! /** * The activation group that has activated the object with this * activation id. The field is filled in inside the group and is used *************** public class ActivationID *** 87,93 **** /** * Create a new instance with the given activator. ! * * @param an_activator tha activator that should activate the object. */ public ActivationID(Activator an_activator) --- 87,93 ---- /** * Create a new instance with the given activator. ! * * @param an_activator tha activator that should activate the object. */ public ActivationID(Activator an_activator) *************** public class ActivationID *** 95,104 **** activator = an_activator; uid = new UID(); } ! /** * Activate the object. ! * * @param force if true, always contact the group. Otherwise, the cached value * may be returned. * @return the activated object --- 95,104 ---- activator = an_activator; uid = new UID(); } ! /** * Activate the object. ! * * @param force if true, always contact the group. Otherwise, the cached value * may be returned. * @return the activated object *************** public class ActivationID *** 116,122 **** catch (IOException e) { ActivationException acex = new ActivationException("id "+uid, e); ! throw acex; } catch (ClassNotFoundException e) { --- 116,122 ---- catch (IOException e) { ActivationException acex = new ActivationException("id "+uid, e); ! throw acex; } catch (ClassNotFoundException e) { *************** public class ActivationID *** 124,130 **** throw acex; } } ! /** * Returns the hash code of the activator. */ --- 124,130 ---- throw acex; } } ! /** * Returns the hash code of the activator. */ *************** public class ActivationID *** 132,138 **** { return uid == null ? 0 : uid.hashCode(); } ! /** * Compares the activators for equality. */ --- 132,138 ---- { return uid == null ? 0 : uid.hashCode(); } ! /** * Compares the activators for equality. */ *************** public class ActivationID *** 146,157 **** else return false; } ! /** * Read the object from the input stream. ! * * @param in the stream to read from ! * * @throws IOException if thrown by the stream * @throws ClassNotFoundException */ --- 146,157 ---- else return false; } ! /** * Read the object from the input stream. ! * * @param in the stream to read from ! * * @throws IOException if thrown by the stream * @throws ClassNotFoundException */ *************** public class ActivationID *** 161,170 **** uid = (UID) in.readObject(); activator = (Activator) in.readObject(); } ! /** * Write the object to the output stream. ! * * @param out the stream to write int * @throws IOException if thrown by the stream * @throws ClassNotFoundException --- 161,170 ---- uid = (UID) in.readObject(); activator = (Activator) in.readObject(); } ! /** * Write the object to the output stream. ! * * @param out the stream to write int * @throws IOException if thrown by the stream * @throws ClassNotFoundException *************** public class ActivationID *** 175,181 **** out.writeObject(uid); out.writeObject(activator); } ! /** * Compare by .equals if both a and b are not null, compare directly if at * least one of them is null. --- 175,181 ---- out.writeObject(uid); out.writeObject(activator); } ! /** * Compare by .equals if both a and b are not null, compare directly if at * least one of them is null. *************** public class ActivationID *** 186,192 **** return a == b; else return a.equals(b); ! } /** * Return the content based string representation. --- 186,192 ---- return a == b; else return a.equals(b); ! } /** * Return the content based string representation. *************** public class ActivationID *** 195,199 **** { return uid.toString(); } ! } --- 195,199 ---- { return uid.toString(); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationInstantiator.java gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationInstantiator.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationInstantiator.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationInstantiator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.RemoteException; *** 45,51 **** /** * The implementation of this interface creates (instantiates) the new remote * objects in response to the activation request. The instantiator is returned ! * by the {@link ActivationGroup} that calls * {@link ActivationSystem#activeGroup(ActivationGroupID, ActivationInstantiator, long)}. */ public interface ActivationInstantiator --- 45,51 ---- /** * The implementation of this interface creates (instantiates) the new remote * objects in response to the activation request. The instantiator is returned ! * by the {@link ActivationGroup} that calls * {@link ActivationSystem#activeGroup(ActivationGroupID, ActivationInstantiator, long)}. */ public interface ActivationInstantiator *************** public interface ActivationInstantiator *** 60,66 **** *
              • Creates an instance of the object using its special two parameter * activation constructor, the first parameter being the {@link ActivationID} * and the second the {@link MarshalledObject}.
              • ! * * @param id the id of the object being instantiated * @param desc the activation descriptor being instantiated * @return the MarshalledObject, containing the stub to the newly created --- 60,66 ---- *
              • Creates an instance of the object using its special two parameter * activation constructor, the first parameter being the {@link ActivationID} * and the second the {@link MarshalledObject}.
              • ! * * @param id the id of the object being instantiated * @param desc the activation descriptor being instantiated * @return the MarshalledObject, containing the stub to the newly created diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationMonitor.java gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationMonitor.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationMonitor.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationMonitor.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.Remote; *** 44,52 **** import java.rmi.RemoteException; /** ! * The activation and inactivation event listener. The group obtains this * listener via {@link ActivationSystem#activeGroup} and must notify it ! * when the group objects are activated or inactivated and also when the * whole group becomes inactive. * @author root. */ --- 44,52 ---- import java.rmi.RemoteException; /** ! * The activation and inactivation event listener. The group obtains this * listener via {@link ActivationSystem#activeGroup} and must notify it ! * when the group objects are activated or inactivated and also when the * whole group becomes inactive. * @author root. */ *************** public interface ActivationMonitor exten *** 54,60 **** { /** * Informs that the object is now active. ! * * @param id the activation id of the object that is now active * @throws UnknownObjectException is such object is not known in this group * @throws RemoteException if remote call fails --- 54,60 ---- { /** * Informs that the object is now active. ! * * @param id the activation id of the object that is now active * @throws UnknownObjectException is such object is not known in this group * @throws RemoteException if remote call fails *************** public interface ActivationMonitor exten *** 64,70 **** /** * Informs that the object is not inactive. ! * * @param id the activation id of the object that is now inactive * @throws UnknownObjectException is such object is not known in this group * @throws RemoteException if remote call fails --- 64,70 ---- /** * Informs that the object is not inactive. ! * * @param id the activation id of the object that is now inactive * @throws UnknownObjectException is such object is not known in this group * @throws RemoteException if remote call fails *************** public interface ActivationMonitor exten *** 76,82 **** * Informs that the whole group is now inactive because all group objects are * inactive. The group will be recreated upon the later request to activate * any object, belonging to the group. ! * * @param groupId the group id * @param incarnation the group incarnation number * @throws UnknownGroupException if the group id is not known --- 76,82 ---- * Informs that the whole group is now inactive because all group objects are * inactive. The group will be recreated upon the later request to activate * any object, belonging to the group. ! * * @param groupId the group id * @param incarnation the group incarnation number * @throws UnknownGroupException if the group id is not known diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationSystem.java gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationSystem.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/ActivationSystem.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/ActivationSystem.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public interface ActivationSystem *** 66,78 **** * . */ int SYSTEM_PORT = 1098; ! /** * Registers the activation descriptor and creates (and returns) its * activation identifier. The map entry (identifier to descriptor) is stored * in the stable map and used when the {@link Activator} receives the request * to activate the object. ! * * @param desc the activation descriptor to register. * @return the created activation identifier that is mapped to the passed * descriptor. --- 66,78 ---- * . */ int SYSTEM_PORT = 1098; ! /** * Registers the activation descriptor and creates (and returns) its * activation identifier. The map entry (identifier to descriptor) is stored * in the stable map and used when the {@link Activator} receives the request * to activate the object. ! * * @param desc the activation descriptor to register. * @return the created activation identifier that is mapped to the passed * descriptor. *************** public interface ActivationSystem *** 84,94 **** */ ActivationID registerObject(ActivationDesc desc) throws ActivationException, UnknownGroupException, RemoteException; ! /** * Removes the stored identifier-description map entry. The object will no * longer be activable using the passed activation id ! * * @param id the activation id to remove * @throws ActivationException if the entry removing operation failed * (database update problems, etc) --- 84,94 ---- */ ActivationID registerObject(ActivationDesc desc) throws ActivationException, UnknownGroupException, RemoteException; ! /** * Removes the stored identifier-description map entry. The object will no * longer be activable using the passed activation id ! * * @param id the activation id to remove * @throws ActivationException if the entry removing operation failed * (database update problems, etc) *************** public interface ActivationSystem *** 97,107 **** */ void unregisterObject(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException; ! /** * Register the new activation group. For instance, it can be one activation * group per virtual machine. ! * * @param groupDesc the activation group descriptor. * @return the created activation group ID for the activation group * @throws ActivationException if the group registration fails --- 97,107 ---- */ void unregisterObject(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException; ! /** * Register the new activation group. For instance, it can be one activation * group per virtual machine. ! * * @param groupDesc the activation group descriptor. * @return the created activation group ID for the activation group * @throws ActivationException if the group registration fails *************** public interface ActivationSystem *** 109,121 **** */ ActivationGroupID registerGroup(ActivationGroupDesc groupDesc) throws ActivationException, RemoteException; ! /** * This method is called from the {@link ActivationGroup} to inform the * ActivatinSystem that the group is now active and there is the * {@link ActivationInstantiator} for that group. This call is made internally * from the {@link ActivationGroup#createGroup}. ! * * @param id the group id * @param group the group activation instantiator * @param incarnation the groups incarnatin number. --- 109,121 ---- */ ActivationGroupID registerGroup(ActivationGroupDesc groupDesc) throws ActivationException, RemoteException; ! /** * This method is called from the {@link ActivationGroup} to inform the * ActivatinSystem that the group is now active and there is the * {@link ActivationInstantiator} for that group. This call is made internally * from the {@link ActivationGroup#createGroup}. ! * * @param id the group id * @param group the group activation instantiator * @param incarnation the groups incarnatin number. *************** public interface ActivationSystem *** 132,138 **** /** * Removes the activation group with the given identifier. The group calls * back, informing the activator about the shutdown. ! * * @param id the group activation id. * @throws ActivationException if the database update fails * @throws UnknownGroupException if such group is not registered --- 132,138 ---- /** * Removes the activation group with the given identifier. The group calls * back, informing the activator about the shutdown. ! * * @param id the group activation id. * @throws ActivationException if the database update fails * @throws UnknownGroupException if such group is not registered *************** public interface ActivationSystem *** 140,149 **** */ void unregisterGroup(ActivationGroupID id) throws ActivationException, UnknownGroupException, RemoteException; ! /** * Shutdown the activation system and all associated activation groups ! * * @throws RemoteException if the remote call fails */ void shutdown() throws RemoteException; --- 140,149 ---- */ void unregisterGroup(ActivationGroupID id) throws ActivationException, UnknownGroupException, RemoteException; ! /** * Shutdown the activation system and all associated activation groups ! * * @throws RemoteException if the remote call fails */ void shutdown() throws RemoteException; *************** public interface ActivationSystem *** 151,157 **** /** * Replace the activation descriptor for the object with the given activation * id. ! * * @param id the activation id * @param desc the new activation descriptor * @return the previous activation descriptor for that object. --- 151,157 ---- /** * Replace the activation descriptor for the object with the given activation * id. ! * * @param id the activation id * @param desc the new activation descriptor * @return the previous activation descriptor for that object. *************** public interface ActivationSystem *** 164,174 **** ActivationDesc setActivationDesc(ActivationID id, ActivationDesc desc) throws ActivationException, UnknownObjectException, UnknownGroupException, RemoteException; ! /** * Replaces the group descriptor for the group with the given group activation * id. ! * * @param groupId the group id * @param groupDesc the new group descriptor * @return the previous group descriptor --- 164,174 ---- ActivationDesc setActivationDesc(ActivationID id, ActivationDesc desc) throws ActivationException, UnknownObjectException, UnknownGroupException, RemoteException; ! /** * Replaces the group descriptor for the group with the given group activation * id. ! * * @param groupId the group id * @param groupDesc the new group descriptor * @return the previous group descriptor *************** public interface ActivationSystem *** 179,188 **** ActivationGroupDesc setActivationGroupDesc(ActivationGroupID groupId, ActivationGroupDesc groupDesc) throws ActivationException, UnknownGroupException, RemoteException; ! /** * Get the activation descriptor for the object with the given activation id. ! * * @param id the object activation id * @return the activation descriptor for that object * @throws ActivationException if the database access fails --- 179,188 ---- ActivationGroupDesc setActivationGroupDesc(ActivationGroupID groupId, ActivationGroupDesc groupDesc) throws ActivationException, UnknownGroupException, RemoteException; ! /** * Get the activation descriptor for the object with the given activation id. ! * * @param id the object activation id * @return the activation descriptor for that object * @throws ActivationException if the database access fails *************** public interface ActivationSystem *** 191,200 **** */ ActivationDesc getActivationDesc(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException; ! /** * Get the group descriptor for the group with the given id. ! * * @param groupId the group id * @return the group descriptor * @throws ActivationException if the database access fails --- 191,200 ---- */ ActivationDesc getActivationDesc(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException; ! /** * Get the group descriptor for the group with the given id. ! * * @param groupId the group id * @return the group descriptor * @throws ActivationException if the database access fails diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/Activator.java gcc-4.6.0/libjava/classpath/java/rmi/activation/Activator.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/Activator.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/Activator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public interface Activator *** 58,64 **** * identifier, determines the object activation group and initiates object * recreation either via {@link ActivationInstantiator} or via * {@link Class#newInstance()}. ! * * @param id the identifier of the object to activate. * @param force if true, the activator always contacts the group to obtain the * reference. If false, it may return the cached value. --- 58,64 ---- * identifier, determines the object activation group and initiates object * recreation either via {@link ActivationInstantiator} or via * {@link Class#newInstance()}. ! * * @param id the identifier of the object to activate. * @param force if true, the activator always contacts the group to obtain the * reference. If false, it may return the cached value. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/activation/UnknownGroupException.java gcc-4.6.0/libjava/classpath/java/rmi/activation/UnknownGroupException.java *** gcc-4.5.2/libjava/classpath/java/rmi/activation/UnknownGroupException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/activation/UnknownGroupException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnknownGroupException.java -- thrown on an invalid ActivationGroupID Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnknownGroupException.java -- thrown on an invalid ActivationGroupID Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/dgc/DGC.java gcc-4.6.0/libjava/classpath/java/rmi/dgc/DGC.java *** gcc-4.5.2/libjava/classpath/java/rmi/dgc/DGC.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/dgc/DGC.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public interface DGC *** 56,62 **** { /** * Mark the given objects referecnes as used on the client side. ! * * @param ids the ids of the used objects. * @param sequenceNum the number of the call (used to detect and discard late * calls). --- 56,62 ---- { /** * Mark the given objects referecnes as used on the client side. ! * * @param ids the ids of the used objects. * @param sequenceNum the number of the call (used to detect and discard late * calls). *************** public interface DGC *** 68,74 **** /** * Mark the given objects as no longer used on the client side. ! * * @param ids the ids of the objects that are no longer used. * @param sequenceNum the number of the call (used to detect and discard late * @param vmid the VMID of the client. --- 68,74 ---- /** * Mark the given objects as no longer used on the client side. ! * * @param ids the ids of the objects that are no longer used. * @param sequenceNum the number of the call (used to detect and discard late * @param vmid the VMID of the client. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/dgc/Lease.java gcc-4.6.0/libjava/classpath/java/rmi/dgc/Lease.java *** gcc-4.5.2/libjava/classpath/java/rmi/dgc/Lease.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/dgc/Lease.java Tue Jan 11 19:46:05 2011 *************** public final class Lease *** 56,62 **** /** * Create the new lease with the given id and duration ! * * @param id the lease id * @param duration the lease duration */ --- 56,62 ---- /** * Create the new lease with the given id and duration ! * * @param id the lease id * @param duration the lease duration */ *************** public final class Lease *** 68,74 **** /** * Get the lease id. ! * * @return the lease id */ public VMID getVMID() --- 68,74 ---- /** * Get the lease id. ! * * @return the lease id */ public VMID getVMID() *************** public final class Lease *** 78,84 **** /** * Get the lease duration ! * * @return the lease duration */ public long getValue() --- 78,84 ---- /** * Get the lease duration ! * * @return the lease duration */ public long getValue() *************** public final class Lease *** 88,94 **** /** * Get the string representation of this lease ! * * @return the string represenation (lease id, followed by the lease * duration). */ --- 88,94 ---- /** * Get the string representation of this lease ! * * @return the string represenation (lease id, followed by the lease * duration). */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/dgc/VMID.java gcc-4.6.0/libjava/classpath/java/rmi/dgc/VMID.java *** gcc-4.5.2/libjava/classpath/java/rmi/dgc/VMID.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/rmi/dgc/VMID.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Arrays; *** 49,72 **** * An identifier that is unique accross the all virtual machines. This class is * used by distributed garbage collector to identify the virtual machine of * the client, but may also be used in various other cases, when such identifier ! * is required. This class separately stores and transfers the host IP * address, but will try to do its best also for the case if it failed to ! * determine it. The alternative algorithms are used in {@link UID} that is * part of this class. The VMID's, created on the same host, but in the two * separately (parallely) running virtual machines are different. */ ! public final class VMID implements Serializable { /** * Use SVUID for interoperability. */ static final long serialVersionUID = -538642295484486218L; ! /** * If true, the IP of this host can ve reliably determined. */ static boolean areWeUnique; ! /** * The IP address of the local host. */ --- 49,72 ---- * An identifier that is unique accross the all virtual machines. This class is * used by distributed garbage collector to identify the virtual machine of * the client, but may also be used in various other cases, when such identifier ! * is required. This class separately stores and transfers the host IP * address, but will try to do its best also for the case if it failed to ! * determine it. The alternative algorithms are used in {@link UID} that is * part of this class. The VMID's, created on the same host, but in the two * separately (parallely) running virtual machines are different. */ ! public final class VMID implements Serializable { /** * Use SVUID for interoperability. */ static final long serialVersionUID = -538642295484486218L; ! /** * If true, the IP of this host can ve reliably determined. */ static boolean areWeUnique; ! /** * The IP address of the local host. */ *************** public final class VMID implements Seria *** 76,87 **** * The IP address of the local host. */ private byte[] addr; ! /** * The cached hash code. */ transient int hash; ! /** * The UID of this VMID. */ --- 76,87 ---- * The IP address of the local host. */ private byte[] addr; ! /** * The cached hash code. */ transient int hash; ! /** * The UID of this VMID. */ *************** public final class VMID implements Seria *** 89,95 **** static { ! // This "local host" value usually indicates that the local // IP address cannot be reliably determined. byte[] localHost = new byte[] { 127, 0, 0, 1 }; --- 89,95 ---- static { ! // This "local host" value usually indicates that the local // IP address cannot be reliably determined. byte[] localHost = new byte[] { 127, 0, 0, 1 }; *************** public final class VMID implements Seria *** 104,113 **** areWeUnique = false; } } ! /** * Create the new VMID. All VMID's are unique accross tha all virtual ! * machines. */ public VMID() { --- 104,113 ---- areWeUnique = false; } } ! /** * Create the new VMID. All VMID's are unique accross tha all virtual ! * machines. */ public VMID() { *************** public final class VMID implements Seria *** 119,129 **** * Return true if it is possible to get the accurate address of this host. * If false is returned, the created VMID's are less reliable, but the * starting time and possibly the memory allocation are also taken into ! * consideration in the incorporated UID. Hence the VMID's, created on the * different virtual machines, still should be different. ! * * @deprecated VMID's are more or less always reliable. ! * * @return false if the local host ip address is 127.0.0.1 or unknown, * true otherwise. */ --- 119,129 ---- * Return true if it is possible to get the accurate address of this host. * If false is returned, the created VMID's are less reliable, but the * starting time and possibly the memory allocation are also taken into ! * consideration in the incorporated UID. Hence the VMID's, created on the * different virtual machines, still should be different. ! * * @deprecated VMID's are more or less always reliable. ! * * @return false if the local host ip address is 127.0.0.1 or unknown, * true otherwise. */ *************** public final class VMID implements Seria *** 131,137 **** { return areWeUnique; } ! /** * Get the hash code of this VMID. */ --- 131,137 ---- { return areWeUnique; } ! /** * Get the hash code of this VMID. */ *************** public final class VMID implements Seria *** 145,151 **** } return hash; } ! /** * Returns true if the passed parameter is also VMID and it is equal to this * VMID. The VMID should only be equal to itself (also if the passed value is --- 145,151 ---- } return hash; } ! /** * Returns true if the passed parameter is also VMID and it is equal to this * VMID. The VMID should only be equal to itself (also if the passed value is *************** public final class VMID implements Seria *** 164,187 **** return false; } ! /** * Get the string representation of this VMID. */ public String toString () { CPStringBuilder buf = new CPStringBuilder ("[VMID: "); ! for (int i = 0; i < addr.length; i++) { if (i > 0) { buf.append ("."); } ! buf.append (Integer.toString (addr [i])); } ! buf.append (" "); buf.append (uid.toString ()); buf.append ("]"); --- 164,187 ---- return false; } ! /** * Get the string representation of this VMID. */ public String toString () { CPStringBuilder buf = new CPStringBuilder ("[VMID: "); ! for (int i = 0; i < addr.length; i++) { if (i > 0) { buf.append ("."); } ! buf.append (Integer.toString (addr [i])); } ! buf.append (" "); buf.append (uid.toString ()); buf.append ("]"); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/registry/LocateRegistry.java gcc-4.6.0/libjava/classpath/java/rmi/registry/LocateRegistry.java *** gcc-4.5.2/libjava/classpath/java/rmi/registry/LocateRegistry.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/registry/LocateRegistry.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public final class LocateRegistry { *** 56,87 **** private LocateRegistry() {} public static Registry getRegistry() throws RemoteException { ! return (getRegistry("localhost", Registry.REGISTRY_PORT)); } public static Registry getRegistry(int port) throws RemoteException { ! return (getRegistry("localhost", port)); } public static Registry getRegistry(String host) throws RemoteException { ! return (getRegistry(host, Registry.REGISTRY_PORT)); } public static Registry getRegistry(String host, int port) throws RemoteException { ! return (getRegistry(host, port, RMISocketFactory.getSocketFactory())); } public static Registry getRegistry(String host, int port, RMIClientSocketFactory csf) throws RemoteException { ! RemoteRef ref = new UnicastRef(new ObjID(ObjID.REGISTRY_ID), host, port, csf); ! return (new RegistryImpl_Stub(ref)); } public static Registry createRegistry(int port) throws RemoteException { ! return (createRegistry(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory())); } public static Registry createRegistry(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException { ! return (new RegistryImpl(port, csf, ssf)); } } --- 56,87 ---- private LocateRegistry() {} public static Registry getRegistry() throws RemoteException { ! return (getRegistry("localhost", Registry.REGISTRY_PORT)); } public static Registry getRegistry(int port) throws RemoteException { ! return (getRegistry("localhost", port)); } public static Registry getRegistry(String host) throws RemoteException { ! return (getRegistry(host, Registry.REGISTRY_PORT)); } public static Registry getRegistry(String host, int port) throws RemoteException { ! return (getRegistry(host, port, RMISocketFactory.getSocketFactory())); } public static Registry getRegistry(String host, int port, RMIClientSocketFactory csf) throws RemoteException { ! RemoteRef ref = new UnicastRef(new ObjID(ObjID.REGISTRY_ID), host, port, csf); ! return (new RegistryImpl_Stub(ref)); } public static Registry createRegistry(int port) throws RemoteException { ! return (createRegistry(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory())); } public static Registry createRegistry(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException { ! return (new RegistryImpl(port, csf, ssf)); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/registry/Registry.java gcc-4.6.0/libjava/classpath/java/rmi/registry/Registry.java *** gcc-4.5.2/libjava/classpath/java/rmi/registry/Registry.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/registry/Registry.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.RemoteException; *** 47,71 **** public interface Registry extends Remote { int REGISTRY_PORT = 1099; ! /** * Find and return the reference to the object that was previously bound * to the registry by this name. For remote objects, this method returns * the stub instances, containing the code for remote invocations. ! * ! * Since jdk 1.5 this method does not longer require the stub class ! * (nameImpl_Stub) to be present. If such class is not found, the stub is ! * replaced by the dynamically constructed proxy class. No attempt to find ! * and load the stubs is made if the system property ! * java.rmi.server.ignoreStubClasses is set to true (set to reduce the * starting time if the stubs are surely not present and exclusively 1.2 * RMI is used). ! * * @param name the name of the object ! * * @return the reference to that object on that it is possible to invoke * the (usually remote) object methods. ! * * @throws RemoteException * @throws NotBoundException * @throws AccessException --- 47,71 ---- public interface Registry extends Remote { int REGISTRY_PORT = 1099; ! /** * Find and return the reference to the object that was previously bound * to the registry by this name. For remote objects, this method returns * the stub instances, containing the code for remote invocations. ! * ! * Since jdk 1.5 this method does not longer require the stub class ! * (nameImpl_Stub) to be present. If such class is not found, the stub is ! * replaced by the dynamically constructed proxy class. No attempt to find ! * and load the stubs is made if the system property ! * java.rmi.server.ignoreStubClasses is set to true (set to reduce the * starting time if the stubs are surely not present and exclusively 1.2 * RMI is used). ! * * @param name the name of the object ! * * @return the reference to that object on that it is possible to invoke * the (usually remote) object methods. ! * * @throws RemoteException * @throws NotBoundException * @throws AccessException diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/registry/RegistryHandler.java gcc-4.6.0/libjava/classpath/java/rmi/registry/RegistryHandler.java *** gcc-4.5.2/libjava/classpath/java/rmi/registry/RegistryHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/registry/RegistryHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/LoaderHandler.java gcc-4.6.0/libjava/classpath/java/rmi/server/LoaderHandler.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/LoaderHandler.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/server/LoaderHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/LogStream.java gcc-4.6.0/libjava/classpath/java/rmi/server/LogStream.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/LogStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/LogStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class LogStream extends PrintStre *** 72,78 **** { return defStream; } ! /** * @deprecated */ --- 72,78 ---- { return defStream; } ! /** * @deprecated */ *************** public class LogStream extends PrintStre *** 130,146 **** { return SILENT; } ! if (s.equalsIgnoreCase ("brief")) { return BRIEF; } ! if (s.equalsIgnoreCase ("verbose")) { return VERBOSE; } ! return SILENT; } } --- 130,146 ---- { return SILENT; } ! if (s.equalsIgnoreCase ("brief")) { return BRIEF; } ! if (s.equalsIgnoreCase ("verbose")) { return VERBOSE; } ! return SILENT; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/ObjID.java gcc-4.6.0/libjava/classpath/java/rmi/server/ObjID.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/ObjID.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/server/ObjID.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.Serializable; *** 50,56 **** * Represents the object identifier, unique for the host that generated it. * The ObjID contains inside the integer object identifier that, if needed, * may indicated that this is a reference to one of the well known objects ! * on that host (registry, activator or dgc) and the {@link UID} that * ensures uniqueness. */ public final class ObjID --- 50,56 ---- * Represents the object identifier, unique for the host that generated it. * The ObjID contains inside the integer object identifier that, if needed, * may indicated that this is a reference to one of the well known objects ! * on that host (registry, activator or dgc) and the {@link UID} that * ensures uniqueness. */ public final class ObjID *************** public final class ObjID *** 121,127 **** *
              • {@link #DGC_ID} - distributed garbage collector (grants lease * durations to keep the object before it is garbage collected.
              • *
              ! * * @param id the well known object id, one of the above. */ public ObjID(int id) --- 121,127 ---- *
            • {@link #DGC_ID} - distributed garbage collector (grants lease * durations to keep the object before it is garbage collected.
            • *
            ! * * @param id the well known object id, one of the above. */ public ObjID(int id) *************** public final class ObjID *** 184,191 **** return a == b; else return a.equals(b); ! } ! /** * Get the string representation. */ --- 184,191 ---- return a == b; else return a.equals(b); ! } ! /** * Get the string representation. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/Operation.java gcc-4.6.0/libjava/classpath/java/rmi/server/Operation.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/Operation.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/server/Operation.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.rmi.server; *** 40,46 **** /** * This class was used with jdk 1.1 stubs and skeletons. It is no longer * needed since jdk 1.2 and higher. ! * * @deprecated */ public class Operation --- 40,46 ---- /** * This class was used with jdk 1.1 stubs and skeletons. It is no longer * needed since jdk 1.2 and higher. ! * * @deprecated */ public class Operation *************** public class Operation *** 58,64 **** /** * Get the name of the operation. ! * * @deprecated */ public String getOperation () --- 58,64 ---- /** * Get the name of the operation. ! * * @deprecated */ public String getOperation () *************** public class Operation *** 68,74 **** /** * Return the name of the operation. ! * * @deprecated */ public String toString () --- 68,74 ---- /** * Return the name of the operation. ! * * @deprecated */ public String toString () diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RMIClassLoader.java gcc-4.6.0/libjava/classpath/java/rmi/server/RMIClassLoader.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RMIClassLoader.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RMIClassLoader.java Tue Jan 11 19:46:05 2011 *************** public class RMIClassLoader *** 74,80 **** { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.loadClass(codebase, name, null); } --- 74,80 ---- { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.loadClass(codebase, name, null); } *************** public class RMIClassLoader *** 84,90 **** { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.loadClass(codebase, name, defaultLoader); } --- 84,90 ---- { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.loadClass(codebase, name, defaultLoader); } *************** public class RMIClassLoader *** 120,148 **** { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.loadClass(codeBase.toString(), name, null); } /** * Gets a classloader for the given codebase and with the current * context classloader as parent. ! * * @param codebase ! * * @return a classloader for the given codebase ! * * @throws MalformedURLException if the codebase contains a malformed URL */ ! public static ClassLoader getClassLoader(String codebase) throws MalformedURLException { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.getClassLoader(codebase); } ! /** * Returns a string representation of the network location where a remote * endpoint can get the class-definition of the given class. --- 120,148 ---- { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.loadClass(codeBase.toString(), name, null); } /** * Gets a classloader for the given codebase and with the current * context classloader as parent. ! * * @param codebase ! * * @return a classloader for the given codebase ! * * @throws MalformedURLException if the codebase contains a malformed URL */ ! public static ClassLoader getClassLoader(String codebase) throws MalformedURLException { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.getClassLoader(codebase); } ! /** * Returns a string representation of the network location where a remote * endpoint can get the class-definition of the given class. *************** public class RMIClassLoader *** 156,162 **** { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.getClassAnnotation(cl); } --- 156,162 ---- { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) ! spi = getDefaultProviderInstance(); return spi.getClassAnnotation(cl); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RMIClientSocketFactory.java gcc-4.6.0/libjava/classpath/java/rmi/server/RMIClientSocketFactory.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RMIClientSocketFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RMIClientSocketFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RMIFailureHandler.java gcc-4.6.0/libjava/classpath/java/rmi/server/RMIFailureHandler.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RMIFailureHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RMIFailureHandler.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RMIServerSocketFactory.java gcc-4.6.0/libjava/classpath/java/rmi/server/RMIServerSocketFactory.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RMIServerSocketFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RMIServerSocketFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RMISocketFactory.java gcc-4.6.0/libjava/classpath/java/rmi/server/RMISocketFactory.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RMISocketFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RMISocketFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteCall.java gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteCall.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteCall.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteCall.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteObject.java gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteObject.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteObject.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteObject.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.UnmarshalException; *** 48,54 **** import java.util.WeakHashMap; public abstract class RemoteObject ! implements Remote, Serializable { private static final long serialVersionUID = -3215090123894869218l; --- 48,54 ---- import java.util.WeakHashMap; public abstract class RemoteObject ! implements Remote, Serializable { private static final long serialVersionUID = -3215090123894869218l; *************** protected transient RemoteRef ref; *** 57,71 **** private static final WeakHashMap stubs = new WeakHashMap(); protected RemoteObject() { ! this(null); } protected RemoteObject(RemoteRef newref) { ! ref = newref; } public RemoteRef getRef() { ! return (ref); } synchronized static void addStub(Remote obj, Remote stub) --- 57,71 ---- private static final WeakHashMap stubs = new WeakHashMap(); protected RemoteObject() { ! this(null); } protected RemoteObject(RemoteRef newref) { ! ref = newref; } public RemoteRef getRef() { ! return (ref); } synchronized static void addStub(Remote obj, Remote stub) *************** synchronized static void deleteStub(Remo *** 78,84 **** stubs.remove(obj); } ! public static Remote toStub(Remote obj) throws NoSuchObjectException { Remote stub = (Remote)stubs.get(obj); --- 78,84 ---- stubs.remove(obj); } ! public static Remote toStub(Remote obj) throws NoSuchObjectException { Remote stub = (Remote)stubs.get(obj); *************** synchronized static void deleteStub(Remo *** 89,124 **** } public int hashCode() { ! if (ref == null) { ! return (0); ! } ! else { ! return (ref.hashCode()); ! } } public boolean equals(Object obj) { ! // We only compare references. ! return (this == obj); } /** * Get the string representation of this remote object. */ ! public String toString() { if (ref == null) return getClass ().toString (); return (ref.toString ()); } ! /** * Read the remote object from the input stream. Expects the class name * without package first. Then the method creates and assigns the {@link #ref} * an instance of this class and calls its .readExternal method. The standard * packageless class names are UnicastRef, UnicastRef2, UnicastServerRef, * UnicastServerRef2, ActivatableRef or ActivatableServerRef. ! * * @param in the stream to read from * @throws IOException if the IO exception occurs * @throws ClassNotFoundException if the class with the given name is not --- 89,124 ---- } public int hashCode() { ! if (ref == null) { ! return (0); ! } ! else { ! return (ref.hashCode()); ! } } public boolean equals(Object obj) { ! // We only compare references. ! return (this == obj); } /** * Get the string representation of this remote object. */ ! public String toString() { if (ref == null) return getClass ().toString (); return (ref.toString ()); } ! /** * Read the remote object from the input stream. Expects the class name * without package first. Then the method creates and assigns the {@link #ref} * an instance of this class and calls its .readExternal method. The standard * packageless class names are UnicastRef, UnicastRef2, UnicastServerRef, * UnicastServerRef2, ActivatableRef or ActivatableServerRef. ! * * @param in the stream to read from * @throws IOException if the IO exception occurs * @throws ClassNotFoundException if the class with the given name is not *************** public boolean equals(Object obj) { *** 171,177 **** * ActivatableRef or ActivatableServerRef. The empty string with the * subsequently following serialized ref instance be written if the * ref.getRefClass returns null. ! * * @param out the stream to write to * @throws IOException if one occurs during writing * @throws ClassNotFoundException never in this implementation (specified as --- 171,177 ---- * ActivatableRef or ActivatableServerRef. The empty string with the * subsequently following serialized ref instance be written if the * ref.getRefClass returns null. ! * * @param out the stream to write to * @throws IOException if one occurs during writing * @throws ClassNotFoundException never in this implementation (specified as diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteObjectInvocationHandler.java gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteObjectInvocationHandler.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteObjectInvocationHandler.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteObjectInvocationHandler.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 60,66 **** * user program. Such instances are automatically created and returned by * {@link Registry} or {@link UnicastRemoteObject} methods if the remote * reference is known but the corresponding stub class is not accessible. ! * * @see Registry#lookup * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) --- 60,66 ---- * user program. Such instances are automatically created and returned by * {@link Registry} or {@link UnicastRemoteObject} methods if the remote * reference is known but the corresponding stub class is not accessible. ! * * @see Registry#lookup * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) *************** public class RemoteObjectInvocationHandl *** 72,103 **** * Use the jdk 1.5 SUID for interoperability. */ static final long serialVersionUID = 2L; ! /** * The RMI method hash codes, computed once as described in the section 8.3 * of the Java Remote Method Invocation (RMI) Specification. */ static Hashtable methodHashCodes = new Hashtable(); ! /** * The empty class array to define parameters of .hashCode and .toString. */ static final Class[] noArgsC = new Class[0]; ! /** * The class array to define parameters of .equals */ static final Class[] anObjectC = new Class[] { Object.class }; ! /** * The empty object array to replace null when no args are passed. */ static final Object[] noArgs = new Object[0]; ! /** * Construct the remote invocation handler that forwards calls to the given * remote object. ! * * @param reference the reference to the remote object where the method * calls should be forwarded. */ --- 72,103 ---- * Use the jdk 1.5 SUID for interoperability. */ static final long serialVersionUID = 2L; ! /** * The RMI method hash codes, computed once as described in the section 8.3 * of the Java Remote Method Invocation (RMI) Specification. */ static Hashtable methodHashCodes = new Hashtable(); ! /** * The empty class array to define parameters of .hashCode and .toString. */ static final Class[] noArgsC = new Class[0]; ! /** * The class array to define parameters of .equals */ static final Class[] anObjectC = new Class[] { Object.class }; ! /** * The empty object array to replace null when no args are passed. */ static final Object[] noArgs = new Object[0]; ! /** * Construct the remote invocation handler that forwards calls to the given * remote object. ! * * @param reference the reference to the remote object where the method * calls should be forwarded. */ *************** public class RemoteObjectInvocationHandl *** 121,127 **** *
          41. All other methods are converted to remote calls and forwarded to the * remote reference.
          42. * ! * * @param proxyInstance * the instance of the proxy stub * @param method --- 121,127 ---- *
          43. All other methods are converted to remote calls and forwarded to the * remote reference.
          44. * ! * * @param proxyInstance * the instance of the proxy stub * @param method *************** public class RemoteObjectInvocationHandl *** 148,154 **** throw new IllegalAccessException(name + " does not implement " + Remote.class.getName()); } ! if (parameters == null) parameters = noArgs; --- 148,154 ---- throw new IllegalAccessException(name + " does not implement " + Remote.class.getName()); } ! if (parameters == null) parameters = noArgs; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteRef.java gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteRef.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteRef.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteRef.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* RemoteRef.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* RemoteRef.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public interface RemoteRef extends Exter *** 56,62 **** * Indicates compatibility with JDK 1.1.* */ long serialVersionUID = 3632638527362204081L; ! /** * For binary compatibility with the JDK, the string "sun.rmi.server". * Not actually used for anything. --- 56,62 ---- * Indicates compatibility with JDK 1.1.* */ long serialVersionUID = 3632638527362204081L; ! /** * For binary compatibility with the JDK, the string "sun.rmi.server". * Not actually used for anything. *************** public interface RemoteRef extends Exter *** 67,78 **** * @deprecated use {@link #invoke(Remote, Method, Object[], long)} instead. */ void invoke (RemoteCall call) throws Exception; ! /** * Invoke a method. This method either returns the result of remote invocation * or throws RemoteException if the remote call failed. Other exceptions may * be thrown if some problem has occured in the application level. ! * * @param obj the object, containing the remote reference (for instance, * remote stub, generated by rmic). * @param method the method to invoke --- 67,78 ---- * @deprecated use {@link #invoke(Remote, Method, Object[], long)} instead. */ void invoke (RemoteCall call) throws Exception; ! /** * Invoke a method. This method either returns the result of remote invocation * or throws RemoteException if the remote call failed. Other exceptions may * be thrown if some problem has occured in the application level. ! * * @param obj the object, containing the remote reference (for instance, * remote stub, generated by rmic). * @param method the method to invoke *************** public interface RemoteRef extends Exter *** 85,91 **** */ Object invoke (Remote obj, Method method, Object[] params, long methodHash) throws Exception; ! /** * @deprecated use {@link #invoke(Remote, Method, Object[], long)} instead. */ --- 85,91 ---- */ Object invoke (Remote obj, Method method, Object[] params, long methodHash) throws Exception; ! /** * @deprecated use {@link #invoke(Remote, Method, Object[], long)} instead. */ *************** public interface RemoteRef extends Exter *** 96,136 **** * @deprecated use {@link #invoke(Remote, Method, Object[], long)} instead. */ void done (RemoteCall call) throws RemoteException; ! /** * Compare two remote objects for equality. The references are equal if * they point to the same remote object. ! * * @param ref the reference to compare. ! * * @return true if this and passed references both point to the same remote * object, false otherwise. */ boolean remoteEquals (RemoteRef ref); ! /** * Get the hashcode for a remote object. Two remote object stubs, referring * to the same remote object, have the same hash code. ! * * @return the hashcode of the remote object */ int remoteHashCode(); ! ! /** * Returns the class name of the reference type that must be written to the * given stream. When writing, this returned name is passed first, and * the reference.writeExternal(out) writes the reference specific data. ! * ! * @param out the stream, where the data must be written ! * ! * @return the class name. */ String getRefClass (ObjectOutput out); ! /** * Get the string representation of this remote reference. ! * * @return the string representation. */ String remoteToString(); --- 96,136 ---- * @deprecated use {@link #invoke(Remote, Method, Object[], long)} instead. */ void done (RemoteCall call) throws RemoteException; ! /** * Compare two remote objects for equality. The references are equal if * they point to the same remote object. ! * * @param ref the reference to compare. ! * * @return true if this and passed references both point to the same remote * object, false otherwise. */ boolean remoteEquals (RemoteRef ref); ! /** * Get the hashcode for a remote object. Two remote object stubs, referring * to the same remote object, have the same hash code. ! * * @return the hashcode of the remote object */ int remoteHashCode(); ! ! /** * Returns the class name of the reference type that must be written to the * given stream. When writing, this returned name is passed first, and * the reference.writeExternal(out) writes the reference specific data. ! * ! * @param out the stream, where the data must be written ! * ! * @return the class name. */ String getRefClass (ObjectOutput out); ! /** * Get the string representation of this remote reference. ! * * @return the string representation. */ String remoteToString(); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteServer.java gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteServer.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteServer.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteServer.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public abstract class RemoteServer *** 51,57 **** extends RemoteObject { private static final long serialVersionUID = - 4100238210092549637L; ! /** * Does nothing, delegates to super(). */ --- 51,57 ---- extends RemoteObject { private static final long serialVersionUID = - 4100238210092549637L; ! /** * Does nothing, delegates to super(). */ *************** public abstract class RemoteServer *** 59,65 **** { super(); } ! /** * Does nothing, delegates to super(ref). */ --- 59,65 ---- { super(); } ! /** * Does nothing, delegates to super(ref). */ *************** public abstract class RemoteServer *** 67,79 **** { super(ref); } ! /** * Get the host of the calling client. The current thread must be an instance * of the {@link RMIIncomingThread}. ! * * @return the client host address ! * * @throws ServerNotActiveException if the current thread is not an instance * of the RMIIncomingThread. */ --- 67,79 ---- { super(ref); } ! /** * Get the host of the calling client. The current thread must be an instance * of the {@link RMIIncomingThread}. ! * * @return the client host address ! * * @throws ServerNotActiveException if the current thread is not an instance * of the RMIIncomingThread. */ *************** public abstract class RemoteServer *** 91,110 **** "Unknown client host - current thread not instance of 'RMIIncomingThread'"); } } ! /** * Set the stream for logging RMI calls. ! * * @param out the stream to set or null to turn the logging off. */ public static void setLog(OutputStream out) { throw new Error("Not implemented"); } ! /** * Get the stream for logging RMI calls. ! * * @return the associated stream. */ public static PrintStream getLog() --- 91,110 ---- "Unknown client host - current thread not instance of 'RMIIncomingThread'"); } } ! /** * Set the stream for logging RMI calls. ! * * @param out the stream to set or null to turn the logging off. */ public static void setLog(OutputStream out) { throw new Error("Not implemented"); } ! /** * Get the stream for logging RMI calls. ! * * @return the associated stream. */ public static PrintStream getLog() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteStub.java gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteStub.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/RemoteStub.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/server/RemoteStub.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 38,44 **** package java.rmi.server; /** ! * This is a base class for the automatically generated RMI stubs. */ public abstract class RemoteStub extends RemoteObject { --- 38,44 ---- package java.rmi.server; /** ! * This is a base class for the automatically generated RMI stubs. */ public abstract class RemoteStub extends RemoteObject { *************** public abstract class RemoteStub extends *** 46,52 **** * Use serialVersionUID for interoperability. */ static final long serialVersionUID = -1585587260594494182l; ! /** * Constructs the remote stub with no reference set. */ --- 46,52 ---- * Use serialVersionUID for interoperability. */ static final long serialVersionUID = -1585587260594494182l; ! /** * Constructs the remote stub with no reference set. */ *************** public abstract class RemoteStub extends *** 54,64 **** { super (); } ! /** * Constructs the remote stub that uses given remote reference for the * method invocations. ! * * @param ref the remote reference for the method invocation. */ protected RemoteStub (RemoteRef ref) --- 54,64 ---- { super (); } ! /** * Constructs the remote stub that uses given remote reference for the * method invocations. ! * * @param ref the remote reference for the method invocation. */ protected RemoteStub (RemoteRef ref) *************** public abstract class RemoteStub extends *** 67,76 **** } /** ! * Sets the given remote reference for the given stub. This method is * deprecated. Pass the stub remote reference to the RemoteStub * constructor instead. ! * * @deprecated */ protected static void setRef (RemoteStub stub, RemoteRef ref) --- 67,76 ---- } /** ! * Sets the given remote reference for the given stub. This method is * deprecated. Pass the stub remote reference to the RemoteStub * constructor instead. ! * * @deprecated */ protected static void setRef (RemoteStub stub, RemoteRef ref) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/ServerRef.java gcc-4.6.0/libjava/classpath/java/rmi/server/ServerRef.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/ServerRef.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/ServerRef.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/Skeleton.java gcc-4.6.0/libjava/classpath/java/rmi/server/Skeleton.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/Skeleton.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/Skeleton.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/UID.java gcc-4.6.0/libjava/classpath/java/rmi/server/UID.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/UID.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/rmi/server/UID.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.net.InetAddress; *** 49,56 **** * it. It contains time (when created), counter (the number of the UID * creation order) and virtual machine id components. The UID can also be * constructed specifying a "well known" identifier in the for of short: ! * this identifier defines the UID uniqueness alone. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public final class UID --- 49,56 ---- * it. It contains time (when created), counter (the number of the UID * creation order) and virtual machine id components. The UID can also be * constructed specifying a "well known" identifier in the for of short: ! * this identifier defines the UID uniqueness alone. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ public final class UID *************** public final class UID *** 60,75 **** * Use the serial version uid for interoperability. */ private static final long serialVersionUID = 1086053664494604050L; ! /** * The UID counter (the ordinary number in the sequence of number of UID's, ! * created during the recent millisecond). In the next millisecond, it * starts from the minimal value again. In the unlikely case of creating * more than 65536 uids per millisecond the process pauses till the next * ms. */ private static short uidCounter = Short.MIN_VALUE; ! /** * The time, when the last UID has been created. */ --- 60,75 ---- * Use the serial version uid for interoperability. */ private static final long serialVersionUID = 1086053664494604050L; ! /** * The UID counter (the ordinary number in the sequence of number of UID's, ! * created during the recent millisecond). In the next millisecond, it * starts from the minimal value again. In the unlikely case of creating * more than 65536 uids per millisecond the process pauses till the next * ms. */ private static short uidCounter = Short.MIN_VALUE; ! /** * The time, when the last UID has been created. */ *************** public final class UID *** 94,100 **** * The time stamp, when the UID was created. */ private long time; ! /** * Create the new UID that would have the described features of the * uniqueness. --- 94,100 ---- * The time stamp, when the UID was created. */ private long time; ! /** * Create the new UID that would have the described features of the * uniqueness. *************** public final class UID *** 130,148 **** } } } ! /** * Create the new UID with the well known id (number). All UIDs, creates * with the this constructor having the same parameter are equal to each * other (regardless to the host and time where they were created. ! * * @param wellKnownId the well known UID. */ public UID(short wellKnownId) { unique = wellKnownId; } ! /** * Get the hashCode of this UID. */ --- 130,148 ---- } } } ! /** * Create the new UID with the well known id (number). All UIDs, creates * with the this constructor having the same parameter are equal to each * other (regardless to the host and time where they were created. ! * * @param wellKnownId the well known UID. */ public UID(short wellKnownId) { unique = wellKnownId; } ! /** * Get the hashCode of this UID. */ *************** public final class UID *** 150,156 **** { return (int) (unique ^ time ^ count); } ! /** * Compare this UID with another UID for equality (not equal to other types of * objects). --- 150,156 ---- { return (int) (unique ^ time ^ count); } ! /** * Compare this UID with another UID for equality (not equal to other types of * objects). *************** public final class UID *** 165,171 **** else return false; } ! public static UID read(DataInput in) throws IOException { UID uid = new UID(); --- 165,171 ---- else return false; } ! public static UID read(DataInput in) throws IOException { UID uid = new UID(); *************** public final class UID *** 208,217 **** return new Object().hashCode() ^ (int) System.currentTimeMillis() ^ hostIpHash; } ! /** * Get the string representation of this UID. ! * * @return a string, uniquely identifying this id. */ public String toString() --- 208,217 ---- return new Object().hashCode() ^ (int) System.currentTimeMillis() ^ hostIpHash; } ! /** * Get the string representation of this UID. ! * * @return a string, uniquely identifying this id. */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/UnicastRemoteObject.java gcc-4.6.0/libjava/classpath/java/rmi/server/UnicastRemoteObject.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/UnicastRemoteObject.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/rmi/server/UnicastRemoteObject.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* UnicastRemoteObject.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2003, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* UnicastRemoteObject.java -- ! Copyright (c) 1996, 1997, 1998, 1999, 2002, 2003, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.rmi.Remote; *** 46,52 **** import java.rmi.RemoteException; /** ! * This class obtains stub that communicates with the remote object. */ public class UnicastRemoteObject extends RemoteServer { --- 46,52 ---- import java.rmi.RemoteException; /** ! * This class obtains stub that communicates with the remote object. */ public class UnicastRemoteObject extends RemoteServer { *************** public class UnicastRemoteObject extends *** 57,75 **** //The following serialized fields are from Java API Documentation // "Serialized form" ! /** * The port, on that the created remote object becomes available, * zero meaning the anonymous port. */ private int port; ! /** * The client socket factory for producing client sockets, used by this * object. */ private RMIClientSocketFactory csf; ! /** * The server socket factory for producing server sockets, used by this * object. --- 57,75 ---- //The following serialized fields are from Java API Documentation // "Serialized form" ! /** * The port, on that the created remote object becomes available, * zero meaning the anonymous port. */ private int port; ! /** * The client socket factory for producing client sockets, used by this * object. */ private RMIClientSocketFactory csf; ! /** * The server socket factory for producing server sockets, used by this * object. *************** public class UnicastRemoteObject extends *** 78,121 **** /** * Create and export new remote object without specifying the port value. ! * * @throws RemoteException if the attempt to export the object failed. */ protected UnicastRemoteObject() throws RemoteException { ! this(0); } ! /** * Create and export the new remote object, making it available at the * given port, local host. ! * * @param port the port, on that the object should become available. * Zero means anonymous port. ! * * @throws RemoteException if the attempt to export the object failed. */ protected UnicastRemoteObject(int port) throws RemoteException { ! this(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory()); } /** * Create and export the new remote object, making it available at the * given port, using sockets, produced by the specified factories. ! * * @param port the port, on that the object should become available. * Zero means anonymous port. ! * * @param clientSocketFactory the client socket factory * @param serverSocketFactory the server socket factory ! * * @throws RemoteException if the attempt to export the object failed. */ ! protected UnicastRemoteObject(int port, RMIClientSocketFactory clientSocketFactory, RMIServerSocketFactory serverSocketFactory) throws RemoteException --- 78,121 ---- /** * Create and export new remote object without specifying the port value. ! * * @throws RemoteException if the attempt to export the object failed. */ protected UnicastRemoteObject() throws RemoteException { ! this(0); } ! /** * Create and export the new remote object, making it available at the * given port, local host. ! * * @param port the port, on that the object should become available. * Zero means anonymous port. ! * * @throws RemoteException if the attempt to export the object failed. */ protected UnicastRemoteObject(int port) throws RemoteException { ! this(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory()); } /** * Create and export the new remote object, making it available at the * given port, using sockets, produced by the specified factories. ! * * @param port the port, on that the object should become available. * Zero means anonymous port. ! * * @param clientSocketFactory the client socket factory * @param serverSocketFactory the server socket factory ! * * @throws RemoteException if the attempt to export the object failed. */ ! protected UnicastRemoteObject(int port, RMIClientSocketFactory clientSocketFactory, RMIServerSocketFactory serverSocketFactory) throws RemoteException *************** public class UnicastRemoteObject extends *** 131,183 **** protected UnicastRemoteObject(RemoteRef ref) throws RemoteException { ! super((UnicastServerRef) ref); ! exportObject(this, 0); } public Object clone() throws CloneNotSupportedException { ! throw new Error("Not implemented"); } ! /** ! * Export object, making it available for the remote calls at the ! * anonymous port. ! * * This method returns the instance of the abstract class, not an interface. * Hence it will not work with the proxy stubs that are supported since * jdk 1.5 (such stubs cannot be derived from the RemoteStub). Only use * this method if you are sure that the stub class will be accessible. ! * * @param obj the object being exported. ! * * @return the remote object stub ! * * @throws RemoteException if the attempt to export the object failed. */ public static RemoteStub exportObject(Remote obj) throws RemoteException { ! return (RemoteStub) exportObject(obj, 0); } /** ! * Export object, making it available for the remote calls at the * specified port. ! * * Since jdk 1.5 this method does not longer require the stub class to be ! * present. If such class is not found, the stub is replaced by the * dynamically constructed proxy class. No attempt to find and load the stubs * is made if the system property java.rmi.server.ignoreStubClasses ! * is set to true (set to reduce the starting time if the stubs are * surely not present and exclusively 1.2 RMI is used). ! * * @param obj the object being exported. * @param port the remote object port ! * * @return the remote object stub ! * * @throws RemoteException if the attempt to export the object failed. */ public static Remote exportObject(Remote obj, int port) --- 131,183 ---- protected UnicastRemoteObject(RemoteRef ref) throws RemoteException { ! super((UnicastServerRef) ref); ! exportObject(this, 0); } public Object clone() throws CloneNotSupportedException { ! throw new Error("Not implemented"); } ! /** ! * Export object, making it available for the remote calls at the ! * anonymous port. ! * * This method returns the instance of the abstract class, not an interface. * Hence it will not work with the proxy stubs that are supported since * jdk 1.5 (such stubs cannot be derived from the RemoteStub). Only use * this method if you are sure that the stub class will be accessible. ! * * @param obj the object being exported. ! * * @return the remote object stub ! * * @throws RemoteException if the attempt to export the object failed. */ public static RemoteStub exportObject(Remote obj) throws RemoteException { ! return (RemoteStub) exportObject(obj, 0); } /** ! * Export object, making it available for the remote calls at the * specified port. ! * * Since jdk 1.5 this method does not longer require the stub class to be ! * present. If such class is not found, the stub is replaced by the * dynamically constructed proxy class. No attempt to find and load the stubs * is made if the system property java.rmi.server.ignoreStubClasses ! * is set to true (set to reduce the starting time if the stubs are * surely not present and exclusively 1.2 RMI is used). ! * * @param obj the object being exported. * @param port the remote object port ! * * @return the remote object stub ! * * @throws RemoteException if the attempt to export the object failed. */ public static Remote exportObject(Remote obj, int port) *************** public class UnicastRemoteObject extends *** 189,209 **** /** * Create and export the new remote object, making it available at the * given port, using sockets, produced by the specified factories. ! * * Since jdk 1.5 this method does not longer require the stub class to be ! * present. If such class is not found, the stub is replaced by the * dynamically constructed proxy class. No attempt to find and load the stubs * is made if the system property java.rmi.server.ignoreStubClasses ! * is set to true (set to reduce the starting time if the stubs are * surely not present and exclusively 1.2 RMI is used). ! * * @param port the port, on that the object should become available. * Zero means anonymous port. ! * * @param serverSocketFactory the server socket factory ! */ ! static Remote exportObject(Remote obj, int port, ! RMIServerSocketFactory serverSocketFactory) throws RemoteException { UnicastServerRef sref = null; --- 189,209 ---- /** * Create and export the new remote object, making it available at the * given port, using sockets, produced by the specified factories. ! * * Since jdk 1.5 this method does not longer require the stub class to be ! * present. If such class is not found, the stub is replaced by the * dynamically constructed proxy class. No attempt to find and load the stubs * is made if the system property java.rmi.server.ignoreStubClasses ! * is set to true (set to reduce the starting time if the stubs are * surely not present and exclusively 1.2 RMI is used). ! * * @param port the port, on that the object should become available. * Zero means anonymous port. ! * * @param serverSocketFactory the server socket factory ! */ ! static Remote exportObject(Remote obj, int port, ! RMIServerSocketFactory serverSocketFactory) throws RemoteException { UnicastServerRef sref = null; *************** public class UnicastRemoteObject extends *** 224,236 **** public static Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) ! throws RemoteException { return (exportObject(obj, port, ssf)); } ! public static boolean unexportObject(Remote obj, boolean force) ! throws NoSuchObjectException { if (obj instanceof RemoteObject) { --- 224,236 ---- public static Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) ! throws RemoteException { return (exportObject(obj, port, ssf)); } ! public static boolean unexportObject(Remote obj, boolean force) ! throws NoSuchObjectException { if (obj instanceof RemoteObject) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/rmi/server/Unreferenced.java gcc-4.6.0/libjava/classpath/java/rmi/server/Unreferenced.java *** gcc-4.5.2/libjava/classpath/java/rmi/server/Unreferenced.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/rmi/server/Unreferenced.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/AccessControlContext.java gcc-4.6.0/libjava/classpath/java/security/AccessControlContext.java *** gcc-4.5.2/libjava/classpath/java/security/AccessControlContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/AccessControlContext.java Tue Jan 11 19:46:05 2011 *************** package java.security; *** 40,47 **** import java.util.HashSet; /** ! * AccessControlContext makes system resource access decsion ! * based on permission rights. * * It is used for a specific context and has only one method * checkPermission. It is similar to AccessController except --- 40,47 ---- import java.util.HashSet; /** ! * AccessControlContext makes system resource access decsion ! * based on permission rights. * * It is used for a specific context and has only one method * checkPermission. It is similar to AccessController except *************** public final class AccessControlContext *** 60,66 **** /** * Construct a new AccessControlContext with the specified ! * ProtectionDomains. context must not be * null and duplicates will be removed. * * @param context The ProtectionDomains to use --- 60,66 ---- /** * Construct a new AccessControlContext with the specified ! * ProtectionDomains. context must not be * null and duplicates will be removed. * * @param context The ProtectionDomains to use *************** public final class AccessControlContext *** 87,115 **** * @since 1.3 */ public AccessControlContext(AccessControlContext acc, ! DomainCombiner combiner) { AccessControlContext acc2 = null; SecurityManager sm = System.getSecurityManager (); if (sm != null) { ! Permission perm = ! new SecurityPermission ("createAccessControlContext"); ! // The default SecurityManager.checkPermission(perm) just calls ! // AccessController.checkPermission(perm) which in turn just ! // calls AccessController.getContext().checkPermission(perm). ! // This means AccessController.getContext() is called twice, ! // once for the security check and once by us. It's a very ! // expensive call (on gcj at least) so if we're using the ! // default security manager we avoid this duplication. ! if (sm.getClass() == SecurityManager.class) ! { ! acc2 = AccessController.getContext (); ! acc2.checkPermission (perm); ! } ! else ! sm.checkPermission (perm); } if (acc2 == null) acc2 = AccessController.getContext (); --- 87,115 ---- * @since 1.3 */ public AccessControlContext(AccessControlContext acc, ! DomainCombiner combiner) { AccessControlContext acc2 = null; SecurityManager sm = System.getSecurityManager (); if (sm != null) { ! Permission perm = ! new SecurityPermission ("createAccessControlContext"); ! // The default SecurityManager.checkPermission(perm) just calls ! // AccessController.checkPermission(perm) which in turn just ! // calls AccessController.getContext().checkPermission(perm). ! // This means AccessController.getContext() is called twice, ! // once for the security check and once by us. It's a very ! // expensive call (on gcj at least) so if we're using the ! // default security manager we avoid this duplication. ! if (sm.getClass() == SecurityManager.class) ! { ! acc2 = AccessController.getContext (); ! acc2.checkPermission (perm); ! } ! else ! sm.checkPermission (perm); } if (acc2 == null) acc2 = AccessController.getContext (); *************** public final class AccessControlContext *** 137,143 **** /** * Determines whether or not the specific permission is granted ! * depending on the context it is within. * * @param perm a permission to check * --- 137,143 ---- /** * Determines whether or not the specific permission is granted ! * depending on the context it is within. * * @param perm a permission to check * *************** public final class AccessControlContext *** 146,164 **** public void checkPermission(Permission perm) throws AccessControlException { if (protectionDomains.length == 0) ! throw new AccessControlException ("permission " ! + perm ! + " not granted: no protection domains"); for (int i = 0; i < protectionDomains.length; i++) { ! final ProtectionDomain domain = protectionDomains[i]; ! if (!domain.implies(perm)) ! throw new AccessControlException ("permission " ! + perm ! + " not granted: " ! + domain ! + " does not imply it."); } } --- 146,164 ---- public void checkPermission(Permission perm) throws AccessControlException { if (protectionDomains.length == 0) ! throw new AccessControlException ("permission " ! + perm ! + " not granted: no protection domains"); for (int i = 0; i < protectionDomains.length; i++) { ! final ProtectionDomain domain = protectionDomains[i]; ! if (!domain.implies(perm)) ! throw new AccessControlException ("permission " ! + perm ! + " not granted: " ! + domain ! + " does not imply it."); } } *************** public final class AccessControlContext *** 176,185 **** { if (obj instanceof AccessControlContext) { ! AccessControlContext acc = (AccessControlContext) obj; ! if (acc.protectionDomains.length != protectionDomains.length) ! return false; int i, j; for (i = 0; i < protectionDomains.length; i++) --- 176,185 ---- { if (obj instanceof AccessControlContext) { ! AccessControlContext acc = (AccessControlContext) obj; ! if (acc.protectionDomains.length != protectionDomains.length) ! return false; int i, j; for (i = 0; i < protectionDomains.length; i++) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/AccessController.java gcc-4.6.0/libjava/classpath/java/security/AccessController.java *** gcc-4.5.2/libjava/classpath/java/security/AccessController.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/AccessController.java Tue Jan 11 19:46:05 2011 *************** public final class AccessController *** 155,161 **** } catch (RuntimeException e) { ! throw e; } catch (Exception e) { --- 155,161 ---- } catch (RuntimeException e) { ! throw e; } catch (Exception e) { *************** public final class AccessController *** 196,202 **** } catch (RuntimeException e) { ! throw e; } catch (Exception e) { --- 196,202 ---- } catch (RuntimeException e) { ! throw e; } catch (Exception e) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/AlgorithmParameterGenerator.java gcc-4.6.0/libjava/classpath/java/security/AlgorithmParameterGenerator.java *** gcc-4.5.2/libjava/classpath/java/security/AlgorithmParameterGenerator.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/AlgorithmParameterGenerator.java Tue Jan 11 19:46:05 2011 *************** import java.security.spec.AlgorithmParam *** 48,54 **** /** * AlgorithmParameterGenerator is used to generate algorithm * parameters for specified algorithms. ! * *

            In case the client does not explicitly initialize the * AlgorithmParameterGenerator (via a call to an * init() method), each provider must supply (and document) a --- 48,54 ---- /** * AlgorithmParameterGenerator is used to generate algorithm * parameters for specified algorithms. ! * *

            In case the client does not explicitly initialize the * AlgorithmParameterGenerator (via a call to an * init() method), each provider must supply (and document) a *************** public class AlgorithmParameterGenerator *** 73,79 **** /** * Constructs a new instance of AlgorithmParameterGenerator. ! * * @param paramGenSpi * the generator to use. * @param provider --- 73,79 ---- /** * Constructs a new instance of AlgorithmParameterGenerator. ! * * @param paramGenSpi * the generator to use. * @param provider *************** public class AlgorithmParameterGenerator *** 82,89 **** * the algorithm to use. */ protected AlgorithmParameterGenerator(AlgorithmParameterGeneratorSpi ! paramGenSpi, Provider provider, ! String algorithm) { this.paramGenSpi = paramGenSpi; this.provider = provider; --- 82,89 ---- * the algorithm to use. */ protected AlgorithmParameterGenerator(AlgorithmParameterGeneratorSpi ! paramGenSpi, Provider provider, ! String algorithm) { this.paramGenSpi = paramGenSpi; this.provider = provider; *************** public class AlgorithmParameterGenerator *** 99,105 **** /** * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. ! * * @param algorithm the name of algorithm to use. * @return the new instance. * @throws NoSuchAlgorithmException if algorithm is not --- 99,105 ---- /** * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. ! * * @param algorithm the name of algorithm to use. * @return the new instance. * @throws NoSuchAlgorithmException if algorithm is not *************** public class AlgorithmParameterGenerator *** 129,135 **** /** * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. ! * * @param algorithm the name of algorithm to use. * @param provider the name of the {@link Provider} to use. * @return the new instance. --- 129,135 ---- /** * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. ! * * @param algorithm the name of algorithm to use. * @param provider the name of the {@link Provider} to use. * @return the new instance. *************** public class AlgorithmParameterGenerator *** 157,163 **** /** * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. ! * * @param algorithm the name of algorithm to use. * @param provider the {@link Provider} to use. * @return the new instance. --- 157,163 ---- /** * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. ! * * @param algorithm the name of algorithm to use. * @param provider the {@link Provider} to use. * @return the new instance. *************** public class AlgorithmParameterGenerator *** 213,219 **** /** * Initializes this instance with the specified size. Since no source of * randomness is supplied, a default one will be used. ! * * @param size * size (in bits) to use. */ --- 213,219 ---- /** * Initializes this instance with the specified size. Since no source of * randomness is supplied, a default one will be used. ! * * @param size * size (in bits) to use. */ *************** public class AlgorithmParameterGenerator *** 225,231 **** /** * Initializes this instance with the specified key-size and source of * randomness. ! * * @param size * the size (in bits) to use. * @param random --- 225,231 ---- /** * Initializes this instance with the specified key-size and source of * randomness. ! * * @param size * the size (in bits) to use. * @param random *************** public class AlgorithmParameterGenerator *** 239,245 **** /** * Initializes this instance with the specified {@link AlgorithmParameterSpec}. * Since no source of randomness is supplied, a default one will be used. ! * * @param genParamSpec * the {@link AlgorithmParameterSpec} to use. * @throws InvalidAlgorithmParameterException --- 239,245 ---- /** * Initializes this instance with the specified {@link AlgorithmParameterSpec}. * Since no source of randomness is supplied, a default one will be used. ! * * @param genParamSpec * the {@link AlgorithmParameterSpec} to use. * @throws InvalidAlgorithmParameterException *************** public class AlgorithmParameterGenerator *** 254,260 **** /** * Initializes this instance with the specified {@link AlgorithmParameterSpec} * and source of randomness. ! * * @param genParamSpec * the {@link AlgorithmParameterSpec} to use. * @param random --- 254,260 ---- /** * Initializes this instance with the specified {@link AlgorithmParameterSpec} * and source of randomness. ! * * @param genParamSpec * the {@link AlgorithmParameterSpec} to use. * @param random diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/AlgorithmParameterGeneratorSpi.java gcc-4.6.0/libjava/classpath/java/security/AlgorithmParameterGeneratorSpi.java *** gcc-4.5.2/libjava/classpath/java/security/AlgorithmParameterGeneratorSpi.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/AlgorithmParameterGeneratorSpi.java Tue Jan 11 19:46:05 2011 *************** package java.security; *** 39,46 **** import java.security.spec.AlgorithmParameterSpec; /** ! AlgorithmParameterGeneratorSpi is the Service Provider ! Interface for the AlgorithmParameterGenerator class. This class is used to generate the algorithm parameters for a specific algorithm. --- 39,46 ---- import java.security.spec.AlgorithmParameterSpec; /** ! AlgorithmParameterGeneratorSpi is the Service Provider ! Interface for the AlgorithmParameterGenerator class. This class is used to generate the algorithm parameters for a specific algorithm. *************** public abstract class AlgorithmParameter *** 61,67 **** Initializes the parameter generator with the specified size and SecureRandom ! @param size the size( in number of bits) @param random the SecureRandom class to use for randomness */ protected abstract void engineInit(int size, SecureRandom random); --- 61,67 ---- Initializes the parameter generator with the specified size and SecureRandom ! @param size the size( in number of bits) @param random the SecureRandom class to use for randomness */ protected abstract void engineInit(int size, SecureRandom random); *************** public abstract class AlgorithmParameter *** 80,86 **** @throws InvalidAlgorithmParameterException genParamSpec is invalid */ protected abstract void engineInit(AlgorithmParameterSpec genParamSpec, ! SecureRandom random) throws InvalidAlgorithmParameterException; --- 80,86 ---- @throws InvalidAlgorithmParameterException genParamSpec is invalid */ protected abstract void engineInit(AlgorithmParameterSpec genParamSpec, ! SecureRandom random) throws InvalidAlgorithmParameterException; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/AlgorithmParameters.java gcc-4.6.0/libjava/classpath/java/security/AlgorithmParameters.java *** gcc-4.5.2/libjava/classpath/java/security/AlgorithmParameters.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/AlgorithmParameters.java Tue Jan 11 19:46:05 2011 *************** public class AlgorithmParameters *** 69,75 **** /** * Constructs a new instance of AlgorithmParameters. ! * * @param paramSpi * the engine to use. * @param provider --- 69,75 ---- /** * Constructs a new instance of AlgorithmParameters. ! * * @param paramSpi * the engine to use. * @param provider *************** public class AlgorithmParameters *** 97,103 **** *

            * The returned AlgorithmParameters must still be initialized * with an init() method. ! * * @param algorithm the algorithm to use. * @return the new instance repesenting the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any --- 97,103 ---- *

            * The returned AlgorithmParameters must still be initialized * with an init() method. ! * * @param algorithm the algorithm to use. * @return the new instance repesenting the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any *************** public class AlgorithmParameters *** 131,137 **** * The returned AlgorithmParameters must still be intialized * with an init() method. *

            ! * * @param algorithm the algorithm to use. * @param provider the name of the {@link Provider} to use. * @return the new instance repesenting the desired algorithm. --- 131,137 ---- * The returned AlgorithmParameters must still be intialized * with an init() method. *

            ! * * @param algorithm the algorithm to use. * @param provider the name of the {@link Provider} to use. * @return the new instance repesenting the desired algorithm. *************** public class AlgorithmParameters *** 162,168 **** *

            * The returned AlgorithmParameters must still be intialized * with an init() method. ! * * @param algorithm the algorithm to use. * @param provider the {@link Provider} to use. * @return the new instance repesenting the desired algorithm. --- 162,168 ---- *

            * The returned AlgorithmParameters must still be intialized * with an init() method. ! * * @param algorithm the algorithm to use. * @param provider the {@link Provider} to use. * @return the new instance repesenting the desired algorithm. *************** public class AlgorithmParameters *** 213,219 **** /** * Initializes the engine with the specified {@link AlgorithmParameterSpec}. ! * * @param paramSpec * A {@link AlgorithmParameterSpec} to use. * @throws InvalidParameterSpecException --- 213,219 ---- /** * Initializes the engine with the specified {@link AlgorithmParameterSpec}. ! * * @param paramSpec * A {@link AlgorithmParameterSpec} to use. * @throws InvalidParameterSpecException *************** public class AlgorithmParameters *** 230,236 **** * array and decodes them according to the ASN.1 specification. If the ASN.1 * specification exists then it succeeds otherwise an {@link IOException} is * thrown. ! * * @param params * the parameters to use. * @throws IOException --- 230,236 ---- * array and decodes them according to the ASN.1 specification. If the ASN.1 * specification exists then it succeeds otherwise an {@link IOException} is * thrown. ! * * @param params * the parameters to use. * @throws IOException *************** public class AlgorithmParameters *** 247,253 **** * If format is null, then this method decodes the * byte array using the ASN.1 specification if it exists, otherwise it throws * an {@link IOException}. ! * * @param params * the parameters to use. * @param format --- 247,253 ---- * If format is null, then this method decodes the * byte array using the ASN.1 specification if it exists, otherwise it throws * an {@link IOException}. ! * * @param params * the parameters to use. * @param format *************** public class AlgorithmParameters *** 263,269 **** /** * Returns a new instance of AlgorithmParameters as a * designated parameter specification {@link Class}. ! * * @param paramSpec * the {@link Class} to use. * @return the parameter specification. --- 263,269 ---- /** * Returns a new instance of AlgorithmParameters as a * designated parameter specification {@link Class}. ! * * @param paramSpec * the {@link Class} to use. * @return the parameter specification. *************** public class AlgorithmParameters *** 280,286 **** /** * Returns the parameters in the default encoding format. The primary encoding * format is ASN.1 if it exists for the specified type. ! * * @return byte array representing the parameters. */ public final byte[] getEncoded() throws IOException --- 280,286 ---- /** * Returns the parameters in the default encoding format. The primary encoding * format is ASN.1 if it exists for the specified type. ! * * @return byte array representing the parameters. */ public final byte[] getEncoded() throws IOException *************** public class AlgorithmParameters *** 292,298 **** * Returns the parameters in the specified encoding format. If * format is null then the ASN.1 encoding * format is used if it exists for the specified type. ! * * @param format * the name of the encoding format to use. * @return the parameters encoded using the specified encoding scheme. --- 292,298 ---- * Returns the parameters in the specified encoding format. If * format is null then the ASN.1 encoding * format is used if it exists for the specified type. ! * * @param format * the name of the encoding format to use. * @return the parameters encoded using the specified encoding scheme. *************** public class AlgorithmParameters *** 307,313 **** /** * Returns a string representation of the encoded form. ! * * @return a string representation of the encoded form. */ public final String toString() --- 307,313 ---- /** * Returns a string representation of the encoded form. ! * * @return a string representation of the encoded form. */ public final String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/AlgorithmParametersSpi.java gcc-4.6.0/libjava/classpath/java/security/AlgorithmParametersSpi.java *** gcc-4.5.2/libjava/classpath/java/security/AlgorithmParametersSpi.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/AlgorithmParametersSpi.java Tue Jan 11 19:46:05 2011 *************** public abstract class AlgorithmParameter *** 60,66 **** } /** ! * Initializes the engine with the specified * AlgorithmParameterSpec class. * * @param paramSpec A AlgorithmParameterSpec to initialize with --- 60,66 ---- } /** ! * Initializes the engine with the specified * AlgorithmParameterSpec class. * * @param paramSpec A AlgorithmParameterSpec to initialize with *************** public abstract class AlgorithmParameter *** 72,78 **** throws InvalidParameterSpecException; /** ! * Initializes the engine with the specified * parameters stored in the byte array and decodes them * according to the ASN.1 specification. If the ASN.1 * specification exists then it succeeds or else it throws --- 72,78 ---- throws InvalidParameterSpecException; /** ! * Initializes the engine with the specified * parameters stored in the byte array and decodes them * according to the ASN.1 specification. If the ASN.1 * specification exists then it succeeds or else it throws *************** public abstract class AlgorithmParameter *** 85,94 **** protected abstract void engineInit(byte[]params) throws IOException; /** ! * Initializes the engine with the specified * parameters stored in the byte array and decodes them ! * according to the specified decoding specification. ! * If format is null, then it is decoded using the ASN.1 * specification if it exists or else it throws * IOException. * --- 85,94 ---- protected abstract void engineInit(byte[]params) throws IOException; /** ! * Initializes the engine with the specified * parameters stored in the byte array and decodes them ! * according to the specified decoding specification. ! * If format is null, then it is decoded using the ASN.1 * specification if it exists or else it throws * IOException. * *************** public abstract class AlgorithmParameter *** 113,125 **** * @throws InvalidParameterSpecException if the paramSpec is an * invalid parameter class */ ! protected abstract T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException; /** ! * Returns the parameters in the default encoding format. * The primary encoding format is ASN.1 format if it exists * for the specified type. * --- 113,125 ---- * @throws InvalidParameterSpecException if the paramSpec is an * invalid parameter class */ ! protected abstract T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException; /** ! * Returns the parameters in the default encoding format. * The primary encoding format is ASN.1 format if it exists * for the specified type. * *************** public abstract class AlgorithmParameter *** 129,137 **** /** ! * Returns the parameters in the specified encoding format. ! * If format is null then the ! * primary encoding format is used, the ASN.1 format, * if it exists for the specified type. * * @return byte array representing the parameters --- 129,137 ---- /** ! * Returns the parameters in the specified encoding format. ! * If format is null then the ! * primary encoding format is used, the ASN.1 format, * if it exists for the specified type. * * @return byte array representing the parameters *************** public abstract class AlgorithmParameter *** 140,146 **** throws IOException; /** ! * Returns a string describing the parameters in the * AlgorithmParametersSpi class. * * @return A string representing the format of the parameters. --- 140,146 ---- throws IOException; /** ! * Returns a string describing the parameters in the * AlgorithmParametersSpi class. * * @return A string representing the format of the parameters. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/CodeSource.java gcc-4.6.0/libjava/classpath/java/security/CodeSource.java *** gcc-4.5.2/libjava/classpath/java/security/CodeSource.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/CodeSource.java Tue Jan 11 19:46:05 2011 *************** public class CodeSource implements Seria *** 195,208 **** * *

            For example, each of these locations imply the location * "http://java.sun.com/classes/foo.jar":

            ! * *
                 * http:
                 * http://*.sun.com/classes/*
                 * http://java.sun.com/classes/-
                 * http://java.sun.com/classes/foo.jar
                 * 
            ! * *

            Note that the code source with null location and null certificates implies * all other code sources.

            * --- 195,208 ---- * *

            For example, each of these locations imply the location * "http://java.sun.com/classes/foo.jar":

            ! * *
                 * http:
                 * http://*.sun.com/classes/*
                 * http://java.sun.com/classes/-
                 * http://java.sun.com/classes/foo.jar
                 * 
            ! * *

            Note that the code source with null location and null certificates implies * all other code sources.

            * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/DigestInputStream.java gcc-4.6.0/libjava/classpath/java/security/DigestInputStream.java *** gcc-4.5.2/libjava/classpath/java/security/DigestInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/DigestInputStream.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 43,50 **** import java.io.InputStream; /** ! * DigestInputStream is a class that ties an InputStream with a ! * MessageDigest. The Message Digest is used by the class to * update it self as bytes are read from the InputStream. * * The updating to the digest depends on the on flag which is set --- 43,50 ---- import java.io.InputStream; /** ! * DigestInputStream is a class that ties an InputStream with a ! * MessageDigest. The Message Digest is used by the class to * update it self as bytes are read from the InputStream. * * The updating to the digest depends on the on flag which is set *************** import java.io.InputStream; *** 57,63 **** public class DigestInputStream extends FilterInputStream { /** ! * The message digest for the DigestInputStream */ protected MessageDigest digest; --- 57,63 ---- public class DigestInputStream extends FilterInputStream { /** ! * The message digest for the DigestInputStream */ protected MessageDigest digest; *************** public class DigestInputStream extends F *** 66,72 **** /** * Constructs a new DigestInputStream. ! * It associates a MessageDigest with the stream to * compute the stream as data is written. * * @param stream An InputStream to associate this stream with --- 66,72 ---- /** * Constructs a new DigestInputStream. ! * It associates a MessageDigest with the stream to * compute the stream as data is written. * * @param stream An InputStream to associate this stream with *************** public class DigestInputStream extends F *** 80,86 **** } /** ! * Returns the MessageDigest associated with this DigestInputStream * * @return The MessageDigest used to hash this stream */ --- 80,86 ---- } /** ! * Returns the MessageDigest associated with this DigestInputStream * * @return The MessageDigest used to hash this stream */ *************** public class DigestInputStream extends F *** 99,110 **** this.digest = digest; } ! /** * Reads a byte from the input stream and updates the digest. ! * This method reads the underlying input stream and if the * on flag is true then updates the message digest. * ! * @return Returns a byte from the input stream, -1 is returned to indicate that * the end of stream was reached before this read call * * @throws IOException if an IO error occurs in the underlying input stream, --- 99,110 ---- this.digest = digest; } ! /** * Reads a byte from the input stream and updates the digest. ! * This method reads the underlying input stream and if the * on flag is true then updates the message digest. * ! * @return Returns a byte from the input stream, -1 is returned to indicate that * the end of stream was reached before this read call * * @throws IOException if an IO error occurs in the underlying input stream, *************** public class DigestInputStream extends F *** 120,134 **** return temp; } ! /** * Reads bytes from the input stream and updates the digest. ! * This method reads the underlying input stream and if the * on flag is true then updates the message digest. * * @param b a byte array to store the data from the input stream * @param off an offset to start at in the array * @param len length of data to read ! * @return Returns count of bytes read, -1 is returned to indicate that * the end of stream was reached before this read call * * @throws IOException if an IO error occurs in the underlying input stream, --- 120,134 ---- return temp; } ! /** * Reads bytes from the input stream and updates the digest. ! * This method reads the underlying input stream and if the * on flag is true then updates the message digest. * * @param b a byte array to store the data from the input stream * @param off an offset to start at in the array * @param len length of data to read ! * @return Returns count of bytes read, -1 is returned to indicate that * the end of stream was reached before this read call * * @throws IOException if an IO error occurs in the underlying input stream, diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/DigestOutputStream.java gcc-4.6.0/libjava/classpath/java/security/DigestOutputStream.java *** gcc-4.5.2/libjava/classpath/java/security/DigestOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/DigestOutputStream.java Tue Jan 11 19:46:05 2011 *************** public class DigestOutputStream extends *** 105,111 **** * * @param b A byte to write to the output stream * ! * @exception IOException if the underlying output stream * cannot write the byte, this is thrown. */ public void write(int b) throws IOException --- 105,111 ---- * * @param b A byte to write to the output stream * ! * @exception IOException if the underlying output stream * cannot write the byte, this is thrown. */ public void write(int b) throws IOException *************** public class DigestOutputStream extends *** 124,130 **** * @param off Offset to start to start at in array * @param len Length of data to write * ! * @exception IOException if the underlying output stream * cannot write the bytes, this is thrown. */ public void write(byte[]b, int off, int len) throws IOException --- 124,130 ---- * @param off Offset to start to start at in array * @param len Length of data to write * ! * @exception IOException if the underlying output stream * cannot write the bytes, this is thrown. */ public void write(byte[]b, int off, int len) throws IOException diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/GeneralSecurityException.java gcc-4.6.0/libjava/classpath/java/security/GeneralSecurityException.java *** gcc-4.5.2/libjava/classpath/java/security/GeneralSecurityException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/security/GeneralSecurityException.java Tue Jan 11 19:46:05 2011 *************** package java.security; *** 40,46 **** /** * This class is the common superclass of all security exceptions. All * exceptions in java.security extend this class with the exception (no ! * pun intended) of AccessControlException and * CertificateException (which extend * SecurityException), ProviderException * (RuntimeException), and InvalidParamterException --- 40,46 ---- /** * This class is the common superclass of all security exceptions. All * exceptions in java.security extend this class with the exception (no ! * pun intended) of AccessControlException and * CertificateException (which extend * SecurityException), ProviderException * (RuntimeException), and InvalidParamterException diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/Identity.java gcc-4.6.0/libjava/classpath/java/security/Identity.java *** gcc-4.5.2/libjava/classpath/java/security/Identity.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/security/Identity.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 44,57 **** * The Identity class is used to represent people and companies * that can be authenticated using public key encryption. The identities can * also be abstract objects such as smart cards. ! * *

            Identity objects store a name and public key for each * identity. The names cannot be changed and the identities can be scoped. Each * identity (name and public key) within a scope are unique to that scope.

            ! * *

            Each identity has a set of ceritificates which all specify the same * public key, but not necessarily the same name.

            ! * *

            The Identity class can be subclassed to allow additional * information to be attached to it.

            * --- 44,57 ---- * The Identity class is used to represent people and companies * that can be authenticated using public key encryption. The identities can * also be abstract objects such as smart cards. ! * *

            Identity objects store a name and public key for each * identity. The names cannot be changed and the identities can be scoped. Each * identity (name and public key) within a scope are unique to that scope.

            ! * *

            Each identity has a set of ceritificates which all specify the same * public key, but not necessarily the same name.

            ! * *

            The Identity class can be subclassed to allow additional * information to be attached to it.

            * *************** public abstract class Identity implement *** 81,87 **** /** * Constructs a new instance of Identity with the specified * name and scope. ! * * @param name * the name to use. * @param scope --- 81,87 ---- /** * Constructs a new instance of Identity with the specified * name and scope. ! * * @param name * the name to use. * @param scope *************** public abstract class Identity implement *** 99,105 **** /** * Constructs a new instance of Identity with the specified * name and no scope. ! * * @param name * the name to use. */ --- 99,105 ---- /** * Constructs a new instance of Identity with the specified * name and no scope. ! * * @param name * the name to use. */ *************** public abstract class Identity implement *** 133,139 **** /** * Sets the public key for this identity. The old key and all certificates * are removed. ! * * @param key * the public key to use. * @throws KeyManagementException --- 133,139 ---- /** * Sets the public key for this identity. The old key and all certificates * are removed. ! * * @param key * the public key to use. * @throws KeyManagementException *************** public abstract class Identity implement *** 154,160 **** /** * Sets the general information string. ! * * @param info * the general information string. * @throws SecurityException --- 154,160 ---- /** * Sets the general information string. ! * * @param info * the general information string. * @throws SecurityException *************** public abstract class Identity implement *** 183,189 **** * Adds a certificate to the list of ceritificates for this identity. The * public key in this certificate must match the existing public key if it * exists. ! * * @param certificate * the certificate to add. * @throws KeyManagementException --- 183,189 ---- * Adds a certificate to the list of ceritificates for this identity. The * public key in this certificate must match the existing public key if it * exists. ! * * @param certificate * the certificate to add. * @throws KeyManagementException *************** public abstract class Identity implement *** 202,216 **** // Check public key of this certificate against the first one in the vector if (certificates.size() > 0) { ! if (((Certificate) certificates.firstElement()).getPublicKey() != publicKey) ! throw new KeyManagementException("Public key does not match"); } certificates.addElement(certificate); } /** * Removes a certificate from the list of ceritificates for this identity. ! * * @param certificate * the certificate to remove. * @throws KeyManagementException --- 202,216 ---- // Check public key of this certificate against the first one in the vector if (certificates.size() > 0) { ! if (((Certificate) certificates.firstElement()).getPublicKey() != publicKey) ! throw new KeyManagementException("Public key does not match"); } certificates.addElement(certificate); } /** * Removes a certificate from the list of ceritificates for this identity. ! * * @param certificate * the certificate to remove. * @throws KeyManagementException *************** public abstract class Identity implement *** 248,254 **** * checks if they are the same object, then if the name and scope match and * returns true if successful. If these tests fail, the * {@link #identityEquals(Identity)} method is called. ! * * @return true if they are equal, false * otherwise. */ --- 248,254 ---- * checks if they are the same object, then if the name and scope match and * returns true if successful. If these tests fail, the * {@link #identityEquals(Identity)} method is called. ! * * @return true if they are equal, false * otherwise. */ *************** public abstract class Identity implement *** 256,269 **** { if (identity instanceof Identity) { ! if (identity == this) ! return true; ! if ((((Identity) identity).getName().equals(this.name)) && ! (((Identity) identity).getScope().equals(this.scope))) ! return true; ! return identityEquals((Identity) identity); } return false; } --- 256,269 ---- { if (identity instanceof Identity) { ! if (identity == this) ! return true; ! if ((((Identity) identity).getName().equals(this.name)) && ! (((Identity) identity).getScope().equals(this.scope))) ! return true; ! return identityEquals((Identity) identity); } return false; } *************** public abstract class Identity implement *** 272,290 **** * Checks for equality between this Identity and a specified object. A * subclass should override this method. The default behavior is to return * true if the public key and names match. ! * * @return true if they are equal, false * otherwise. */ protected boolean identityEquals(Identity identity) { return ((identity.getName().equals(this.name)) && ! (identity.getPublicKey().equals(this.publicKey))); } /** * Returns a string representation of this Identity. ! * * @return a string representation of this Identity. * @throws SecurityException * if a {@link SecurityManager} is installed which disallows this --- 272,290 ---- * Checks for equality between this Identity and a specified object. A * subclass should override this method. The default behavior is to return * true if the public key and names match. ! * * @return true if they are equal, false * otherwise. */ protected boolean identityEquals(Identity identity) { return ((identity.getName().equals(this.name)) && ! (identity.getPublicKey().equals(this.publicKey))); } /** * Returns a string representation of this Identity. ! * * @return a string representation of this Identity. * @throws SecurityException * if a {@link SecurityManager} is installed which disallows this *************** public abstract class Identity implement *** 302,308 **** /** * Returns a detailed string representation of this Identity. ! * * @param detailed * indicates whether or detailed information is desired. * @return a string representation of this Identity. --- 302,308 ---- /** * Returns a detailed string representation of this Identity. ! * * @param detailed * indicates whether or detailed information is desired. * @return a string representation of this Identity. *************** public abstract class Identity implement *** 318,330 **** if (detailed) { ! /* TODO: Insert proper detailed format here */ ! return (name + ":@" + scope + " Public Key: " + publicKey); } else { ! /* TODO: Insert proper format here */ ! return (name + ":@" + scope + " Public Key: " + publicKey); } } --- 318,330 ---- if (detailed) { ! /* TODO: Insert proper detailed format here */ ! return (name + ":@" + scope + " Public Key: " + publicKey); } else { ! /* TODO: Insert proper format here */ ! return (name + ":@" + scope + " Public Key: " + publicKey); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/IdentityScope.java gcc-4.6.0/libjava/classpath/java/security/IdentityScope.java *** gcc-4.5.2/libjava/classpath/java/security/IdentityScope.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/IdentityScope.java Tue Jan 11 19:46:05 2011 *************** import java.util.Enumeration; *** 43,56 **** * IdentityScope represents a scope of an identity. * IdentityScope is also an {@link Identity} and can have a name * and scope along with the other qualitites identities possess. ! * *

            An IdentityScope contains other {@link Identity} objects. * All {@link Identity} objects are manipulated in the scope the same way. The * scope is supposed to apply different scope to different type of * Identities.

            ! * *

            No identity within the same scope can have the same public key.

            ! * * @author Mark Benvenuto * @see Identity * @see Signer --- 43,56 ---- * IdentityScope represents a scope of an identity. * IdentityScope is also an {@link Identity} and can have a name * and scope along with the other qualitites identities possess. ! * *

            An IdentityScope contains other {@link Identity} objects. * All {@link Identity} objects are manipulated in the scope the same way. The * scope is supposed to apply different scope to different type of * Identities.

            ! * *

            No identity within the same scope can have the same public key.

            ! * * @author Mark Benvenuto * @see Identity * @see Signer *************** public abstract class IdentityScope exte *** 73,79 **** /** * Constructs a new instance of IdentityScope with the * specified name and no scope. ! * * @param name * the name to use. */ --- 73,79 ---- /** * Constructs a new instance of IdentityScope with the * specified name and no scope. ! * * @param name * the name to use. */ *************** public abstract class IdentityScope exte *** 85,91 **** /** * Constructs a new instance of IdentityScope with the * specified name and {@link IdentityScope}. ! * * @param name * the name to use. * @param scope --- 85,91 ---- /** * Constructs a new instance of IdentityScope with the * specified name and {@link IdentityScope}. ! * * @param name * the name to use. * @param scope *************** public abstract class IdentityScope exte *** 101,122 **** /** * Returns the system's Scope. ! * * @return the system's Scope. */ public static IdentityScope getSystemScope() { if (systemScope == null) { ! //Load it ! //systemScope; } return systemScope; } /** * Sets the scope of the system. ! * * @param scope * the new system scope. * @throws SecurityException --- 101,122 ---- /** * Returns the system's Scope. ! * * @return the system's Scope. */ public static IdentityScope getSystemScope() { if (systemScope == null) { ! //Load it ! //systemScope; } return systemScope; } /** * Sets the scope of the system. ! * * @param scope * the new system scope. * @throws SecurityException *************** public abstract class IdentityScope exte *** 134,147 **** /** * Returns the number of entries within this IdentityScope. ! * * @return the number of entries within this IdentityScope. */ public abstract int size(); /** * Returns the specified {@link Identity}, by name, within this scope. ! * * @param name * name of {@link Identity} to get. * @return an {@link Identity} representing the name or null if --- 134,147 ---- /** * Returns the number of entries within this IdentityScope. ! * * @return the number of entries within this IdentityScope. */ public abstract int size(); /** * Returns the specified {@link Identity}, by name, within this scope. ! * * @param name * name of {@link Identity} to get. * @return an {@link Identity} representing the name or null if *************** public abstract class IdentityScope exte *** 152,158 **** /** * Returns the specified {@link Identity}, by {@link Principal}, within this * scope. ! * * @param principal * the {@link Principal} to use. * @return an identity representing the {@link Principal} or null --- 152,158 ---- /** * Returns the specified {@link Identity}, by {@link Principal}, within this * scope. ! * * @param principal * the {@link Principal} to use. * @return an identity representing the {@link Principal} or null *************** public abstract class IdentityScope exte *** 165,171 **** /** * Returns the specified {@link Identity}, by public key, within this scope. ! * * @param key * the {@link PublicKey} to use. * @return an identity representing the public key or null if --- 165,171 ---- /** * Returns the specified {@link Identity}, by public key, within this scope. ! * * @param key * the {@link PublicKey} to use. * @return an identity representing the public key or null if *************** public abstract class IdentityScope exte *** 175,181 **** /** * Adds an identity to his scope. ! * * @param identity * the {@link Identity} to add. * @throws KeyManagementException --- 175,181 ---- /** * Adds an identity to his scope. ! * * @param identity * the {@link Identity} to add. * @throws KeyManagementException *************** public abstract class IdentityScope exte *** 187,193 **** /** * Removes an identity in this scope. ! * * @param identity * the {@link Identity} to remove. * @throws KeyManagementException --- 187,193 ---- /** * Removes an identity in this scope. ! * * @param identity * the {@link Identity} to remove. * @throws KeyManagementException *************** public abstract class IdentityScope exte *** 198,204 **** /** * Returns an {@link Enumeration} of identities in this scope. ! * * @return an {@link Enumeration} of the identities in this scope. */ public abstract Enumeration identities(); --- 198,204 ---- /** * Returns an {@link Enumeration} of identities in this scope. ! * * @return an {@link Enumeration} of the identities in this scope. */ public abstract Enumeration identities(); *************** public abstract class IdentityScope exte *** 206,212 **** /** * Returns a string representing this instance. It includes the name, the * scope name, and number of identities. ! * * @return a string representation of this instance. */ public String toString() --- 206,212 ---- /** * Returns a string representing this instance. It includes the name, the * scope name, and number of identities. ! * * @return a string representation of this instance. */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/KeyFactory.java gcc-4.6.0/libjava/classpath/java/security/KeyFactory.java *** gcc-4.5.2/libjava/classpath/java/security/KeyFactory.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/KeyFactory.java Tue Jan 11 19:46:05 2011 *************** import java.security.spec.KeySpec; *** 50,56 **** * Key factories are used to convert keys (opaque cryptographic keys of type * {@link Key}) into key specifications (transparent representations of the * underlying key material). ! * *

            Key factories are bi-directional. They allow a key class to be converted * into a key specification (key material) and back again. For example DSA * public keys can be specified as DSAPublicKeySpec or --- 50,56 ---- * Key factories are used to convert keys (opaque cryptographic keys of type * {@link Key}) into key specifications (transparent representations of the * underlying key material). ! * *

            Key factories are bi-directional. They allow a key class to be converted * into a key specification (key material) and back again. For example DSA * public keys can be specified as DSAPublicKeySpec or *************** public class KeyFactory *** 76,82 **** /** * Constructs a new instance of KeyFactory with the specified * parameters. ! * * @param keyFacSpi * the key factory to use. * @param provider --- 76,82 ---- /** * Constructs a new instance of KeyFactory with the specified * parameters. ! * * @param keyFacSpi * the key factory to use. * @param provider *************** public class KeyFactory *** 85,91 **** * the name of the key algorithm to use. */ protected KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, ! String algorithm) { this.keyFacSpi = keyFacSpi; this.provider = provider; --- 85,91 ---- * the name of the key algorithm to use. */ protected KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, ! String algorithm) { this.keyFacSpi = keyFacSpi; this.provider = provider; *************** public class KeyFactory *** 95,101 **** /** * Returns a new instance of KeyFactory representing the * specified key factory. ! * * @param algorithm the name of algorithm to use. * @return a new instance repesenting the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any --- 95,101 ---- /** * Returns a new instance of KeyFactory representing the * specified key factory. ! * * @param algorithm the name of algorithm to use. * @return a new instance repesenting the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any *************** public class KeyFactory *** 125,131 **** /** * Returns a new instance of KeyFactory representing the * specified key factory from the specified provider. ! * * @param algorithm the name of algorithm to use. * @param provider the name of the provider to use. * @return a new instance repesenting the desired algorithm. --- 125,131 ---- /** * Returns a new instance of KeyFactory representing the * specified key factory from the specified provider. ! * * @param algorithm the name of algorithm to use. * @param provider the name of the provider to use. * @return a new instance repesenting the desired algorithm. *************** public class KeyFactory *** 152,158 **** /** * Returns a new instance of KeyFactory representing the * specified key factory from the designated {@link Provider}. ! * * @param algorithm the name of algorithm to use. * @param provider the {@link Provider} to use. * @return a new instance repesenting the desired algorithm. --- 152,158 ---- /** * Returns a new instance of KeyFactory representing the * specified key factory from the designated {@link Provider}. ! * * @param algorithm the name of algorithm to use. * @param provider the {@link Provider} to use. * @return a new instance repesenting the desired algorithm. *************** public class KeyFactory *** 195,201 **** /** * Returns the {@link Provider} of this instance. ! * * @return the {@link Provider} of this instance. */ public final Provider getProvider() --- 195,201 ---- /** * Returns the {@link Provider} of this instance. ! * * @return the {@link Provider} of this instance. */ public final Provider getProvider() *************** public class KeyFactory *** 205,211 **** /** * Returns the name of the algorithm used. ! * * @return the name of the algorithm used. */ public final String getAlgorithm() --- 205,211 ---- /** * Returns the name of the algorithm used. ! * * @return the name of the algorithm used. */ public final String getAlgorithm() *************** public class KeyFactory *** 215,221 **** /** * Generates a public key from the provided key specification. ! * * @param keySpec * the key specification. * @return the public key. --- 215,221 ---- /** * Generates a public key from the provided key specification. ! * * @param keySpec * the key specification. * @return the public key. *************** public class KeyFactory *** 230,236 **** /** * Generates a private key from the provided key specification. ! * * @param keySpec * the key specification. * @return the private key. --- 230,236 ---- /** * Generates a private key from the provided key specification. ! * * @param keySpec * the key specification. * @return the private key. *************** public class KeyFactory *** 246,252 **** /** * Returns a key specification for the given key. keySpec * identifies the specification class to return the key material in. ! * * @param key * the key to use. * @param keySpec --- 246,252 ---- /** * Returns a key specification for the given key. keySpec * identifies the specification class to return the key material in. ! * * @param key * the key to use. * @param keySpec *************** public class KeyFactory *** 266,272 **** /** * Translates the key from an unknown or untrusted provider into a key from * this key factory. ! * * @param key * the key to translate from. * @return the translated key. --- 266,272 ---- /** * Translates the key from an unknown or untrusted provider into a key from * this key factory. ! * * @param key * the key to translate from. * @return the translated key. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/KeyFactorySpi.java gcc-4.6.0/libjava/classpath/java/security/KeyFactorySpi.java *** gcc-4.5.2/libjava/classpath/java/security/KeyFactorySpi.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/KeyFactorySpi.java Tue Jan 11 19:46:05 2011 *************** import java.security.spec.InvalidKeySpec *** 42,62 **** import java.security.spec.KeySpec; /** ! * KeyFactorySpi is the Service Provider Interface (SPI) for the ! * KeyFactory class. This is the interface for providers to * supply to implement a key factory for an algorithm. * ! * Key factories are used to convert keys (opaque cryptographic ! * keys of type Key) into key specifications (transparent * representations of the underlying key material). * ! * Key factories are bi-directional. They allow a key class * to be converted into a key specification (key material) and * back again. * ! * For example DSA public keys can be specified as * DSAPublicKeySpec or X509EncodedKeySpec. The key factory ! * translate these key specifications. * * @since JDK 1.2 * @author Mark Benvenuto --- 42,62 ---- import java.security.spec.KeySpec; /** ! * KeyFactorySpi is the Service Provider Interface (SPI) for the ! * KeyFactory class. This is the interface for providers to * supply to implement a key factory for an algorithm. * ! * Key factories are used to convert keys (opaque cryptographic ! * keys of type Key) into key specifications (transparent * representations of the underlying key material). * ! * Key factories are bi-directional. They allow a key class * to be converted into a key specification (key material) and * back again. * ! * For example DSA public keys can be specified as * DSAPublicKeySpec or X509EncodedKeySpec. The key factory ! * translate these key specifications. * * @since JDK 1.2 * @author Mark Benvenuto *************** public abstract class KeyFactorySpi *** 98,116 **** throws InvalidKeySpecException; /** ! * Returns a key specification for the given key. keySpec ! * identifies the specification class to return the key * material in. * * @param key the key ! * @param keySpec the specification class to return the * key material in. * * @return the key specification in an instance of the requested * specification class * * @throws InvalidKeySpecException the requested key specification ! * is inappropriate for this key or the key is * unrecognized. */ protected abstract T engineGetKeySpec(Key key, --- 98,116 ---- throws InvalidKeySpecException; /** ! * Returns a key specification for the given key. keySpec ! * identifies the specification class to return the key * material in. * * @param key the key ! * @param keySpec the specification class to return the * key material in. * * @return the key specification in an instance of the requested * specification class * * @throws InvalidKeySpecException the requested key specification ! * is inappropriate for this key or the key is * unrecognized. */ protected abstract T engineGetKeySpec(Key key, *************** public abstract class KeyFactorySpi *** 126,132 **** * * @return the translated key * ! * @throws InvalidKeyException if the key cannot be * processed by this key factory */ protected abstract Key engineTranslateKey(Key key) --- 126,132 ---- * * @return the translated key * ! * @throws InvalidKeyException if the key cannot be * processed by this key factory */ protected abstract Key engineTranslateKey(Key key) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/KeyPairGenerator.java gcc-4.6.0/libjava/classpath/java/security/KeyPairGenerator.java *** gcc-4.5.2/libjava/classpath/java/security/KeyPairGenerator.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/KeyPairGenerator.java Tue Jan 11 19:46:05 2011 *************** import java.security.spec.AlgorithmParam *** 48,54 **** /** * KeyPairGenerator is a class used to generate key-pairs for a * security algorithm. ! * *

            The KeyPairGenerator is created with the * getInstance() Factory methods. It is used to generate a pair of * public and private keys for a specific algorithm and associate this key-pair --- 48,54 ---- /** * KeyPairGenerator is a class used to generate key-pairs for a * security algorithm. ! * *

            The KeyPairGenerator is created with the * getInstance() Factory methods. It is used to generate a pair of * public and private keys for a specific algorithm and associate this key-pair *************** public abstract class KeyPairGenerator e *** 69,75 **** /** * Constructs a new instance of KeyPairGenerator. ! * * @param algorithm * the algorithm to use. */ --- 69,75 ---- /** * Constructs a new instance of KeyPairGenerator. ! * * @param algorithm * the algorithm to use. */ *************** public abstract class KeyPairGenerator e *** 81,87 **** /** * Returns the name of the algorithm used. ! * * @return the name of the algorithm used. */ public String getAlgorithm() --- 81,87 ---- /** * Returns the name of the algorithm used. ! * * @return the name of the algorithm used. */ public String getAlgorithm() *************** public abstract class KeyPairGenerator e *** 92,98 **** /** * Returns a new instance of KeyPairGenerator which generates * key-pairs for the specified algorithm. ! * * @param algorithm the name of the algorithm to use. * @return a new instance repesenting the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any --- 92,98 ---- /** * Returns a new instance of KeyPairGenerator which generates * key-pairs for the specified algorithm. ! * * @param algorithm the name of the algorithm to use. * @return a new instance repesenting the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any *************** public abstract class KeyPairGenerator e *** 122,128 **** /** * Returns a new instance of KeyPairGenerator which generates * key-pairs for the specified algorithm from a named provider. ! * * @param algorithm the name of the algorithm to use. * @param provider the name of a {@link Provider} to use. * @return a new instance repesenting the desired algorithm. --- 122,128 ---- /** * Returns a new instance of KeyPairGenerator which generates * key-pairs for the specified algorithm from a named provider. ! * * @param algorithm the name of the algorithm to use. * @param provider the name of a {@link Provider} to use. * @return a new instance repesenting the desired algorithm. *************** public abstract class KeyPairGenerator e *** 149,155 **** /** * Returns a new instance of KeyPairGenerator which generates * key-pairs for the specified algorithm from a designated {@link Provider}. ! * * @param algorithm * the name of the algorithm to use. * @param provider --- 149,155 ---- /** * Returns a new instance of KeyPairGenerator which generates * key-pairs for the specified algorithm from a designated {@link Provider}. ! * * @param algorithm * the name of the algorithm to use. * @param provider *************** public abstract class KeyPairGenerator e *** 163,170 **** * @since 1.4 * @see Provider */ ! public static KeyPairGenerator getInstance(String algorithm, ! Provider provider) throws NoSuchAlgorithmException { CPStringBuilder sb = new CPStringBuilder("KeyPairGenerator for algorithm [") --- 163,170 ---- * @since 1.4 * @see Provider */ ! public static KeyPairGenerator getInstance(String algorithm, ! Provider provider) throws NoSuchAlgorithmException { CPStringBuilder sb = new CPStringBuilder("KeyPairGenerator for algorithm [") *************** public abstract class KeyPairGenerator e *** 206,212 **** /** * Returns the {@link Provider} of this instance. ! * * @return the {@link Provider} of this instance. */ public final Provider getProvider() --- 206,212 ---- /** * Returns the {@link Provider} of this instance. ! * * @return the {@link Provider} of this instance. */ public final Provider getProvider() *************** public abstract class KeyPairGenerator e *** 217,223 **** /** * Initializes this instance for the specified key size. Since no source of * randomness is specified, a default one will be used. ! * * @param keysize * the size of keys to use. */ --- 217,223 ---- /** * Initializes this instance for the specified key size. Since no source of * randomness is specified, a default one will be used. ! * * @param keysize * the size of keys to use. */ *************** public abstract class KeyPairGenerator e *** 229,235 **** /** * Initializes this instance for the specified key size and * {@link SecureRandom}. ! * * @param keysize * the size of keys to use. * @param random --- 229,235 ---- /** * Initializes this instance for the specified key size and * {@link SecureRandom}. ! * * @param keysize * the size of keys to use. * @param random *************** public abstract class KeyPairGenerator e *** 244,250 **** * Initializes this instance with the specified * {@link AlgorithmParameterSpec}. Since no source of randomness is specified, * a default one will be used. ! * * @param params * the {@link AlgorithmParameterSpec} to use. * @throws InvalidAlgorithmParameterException --- 244,250 ---- * Initializes this instance with the specified * {@link AlgorithmParameterSpec}. Since no source of randomness is specified, * a default one will be used. ! * * @param params * the {@link AlgorithmParameterSpec} to use. * @throws InvalidAlgorithmParameterException *************** public abstract class KeyPairGenerator e *** 260,266 **** /** * Initializes this instance with the specified {@link AlgorithmParameterSpec} * and {@link SecureRandom}. ! * * @param params * the {@link AlgorithmParameterSpec} to use. * @param random --- 260,266 ---- /** * Initializes this instance with the specified {@link AlgorithmParameterSpec} * and {@link SecureRandom}. ! * * @param params * the {@link AlgorithmParameterSpec} to use. * @param random *************** public abstract class KeyPairGenerator e *** 277,285 **** /** * Generates a new "DSA" {@link KeyPair} from the "GNU" security provider. ! * *

            This method generates a unique key-pair each time it is called.

            ! * * @return a new unique {@link KeyPair}. * @see #generateKeyPair() * @since 1.2 --- 277,285 ---- /** * Generates a new "DSA" {@link KeyPair} from the "GNU" security provider. ! * *

            This method generates a unique key-pair each time it is called.

            ! * * @return a new unique {@link KeyPair}. * @see #generateKeyPair() * @since 1.2 *************** public abstract class KeyPairGenerator e *** 300,308 **** /** * Generates a new "DSA" {@link KeyPair} from the "GNU" security provider. ! * *

            This method generates a unique key pair each time it is called.

            ! * * @return a new unique {@link KeyPair}. * @see #genKeyPair() */ --- 300,308 ---- /** * Generates a new "DSA" {@link KeyPair} from the "GNU" security provider. ! * *

            This method generates a unique key pair each time it is called.

            ! * * @return a new unique {@link KeyPair}. * @see #genKeyPair() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/KeyPairGeneratorSpi.java gcc-4.6.0/libjava/classpath/java/security/KeyPairGeneratorSpi.java *** gcc-4.5.2/libjava/classpath/java/security/KeyPairGeneratorSpi.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/KeyPairGeneratorSpi.java Tue Jan 11 19:46:05 2011 *************** public abstract class KeyPairGeneratorSp *** 58,64 **** key size and source of randomness @param keysize size of the key to generate ! @param random A SecureRandom source of randomness */ public abstract void initialize(int keysize, SecureRandom random); --- 58,64 ---- key size and source of randomness @param keysize size of the key to generate ! @param random A SecureRandom source of randomness */ public abstract void initialize(int keysize, SecureRandom random); *************** public abstract class KeyPairGeneratorSp *** 72,78 **** method just throws UnsupportedOperationException. @param params A AlgorithmParameterSpec to intialize with ! @param random A SecureRandom source of randomness @throws InvalidAlgorithmParameterException */ --- 72,78 ---- method just throws UnsupportedOperationException. @param params A AlgorithmParameterSpec to intialize with ! @param random A SecureRandom source of randomness @throws InvalidAlgorithmParameterException */ *************** public abstract class KeyPairGeneratorSp *** 84,90 **** /** Generates a KeyPair according the rules for the algorithm. ! Unless intialized, algorithm defaults will be used. It creates a unique key pair each time. @return a key pair --- 84,90 ---- /** Generates a KeyPair according the rules for the algorithm. ! Unless intialized, algorithm defaults will be used. It creates a unique key pair each time. @return a key pair diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/KeyStore.java gcc-4.6.0/libjava/classpath/java/security/KeyStore.java *** gcc-4.5.2/libjava/classpath/java/security/KeyStore.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/KeyStore.java Tue Jan 11 19:46:05 2011 *************** import java.util.Date; *** 49,67 **** import java.util.Enumeration; /** ! * Keystore represents an in-memory collection of keys and * certificates. There are two types of entries: * *
            *
            Key Entry
            * *

            This type of keystore entry store sensitive crytographic key ! * information in a protected format.Typically this is a secret * key or a private key with a certificate chain.

            * *
            Trusted Ceritificate Entry
            * ! *

            This type of keystore entry contains a single public key * certificate belonging to annother entity. It is called trusted * because the keystore owner trusts that the certificates * belongs to the subject (owner) of the certificate.

            --- 49,67 ---- import java.util.Enumeration; /** ! * Keystore represents an in-memory collection of keys and * certificates. There are two types of entries: * *
            *
            Key Entry
            * *

            This type of keystore entry store sensitive crytographic key ! * information in a protected format.Typically this is a secret * key or a private key with a certificate chain.

            * *
            Trusted Ceritificate Entry
            * ! *

            This type of keystore entry contains a single public key * certificate belonging to annother entity. It is called trusted * because the keystore owner trusts that the certificates * belongs to the subject (owner) of the certificate.

            *************** import java.util.Enumeration; *** 70,79 **** *

            Entries in a key store are referred to by their "alias": a simple * unique string. * ! *

            The structure and persistentence of the key store is not ! * specified. Any method could be used to protect sensitive ! * (private or secret) keys. Smart cards or integrated ! * cryptographic engines could be used or the keystore could * be simply stored in a file.

            * * @see java.security.cert.Certificate --- 70,79 ---- *

            Entries in a key store are referred to by their "alias": a simple * unique string. * ! *

            The structure and persistentence of the key store is not ! * specified. Any method could be used to protect sensitive ! * (private or secret) keys. Smart cards or integrated ! * cryptographic engines could be used or the keystore could * be simply stored in a file.

            * * @see java.security.cert.Certificate *************** public class KeyStore *** 112,118 **** /** * Returns an instance of a KeyStore representing the specified * type, from the first provider that implements it. ! * * @param type the type of keystore to create. * @return a KeyStore repesenting the desired type. * @throws KeyStoreException if the designated type of is not implemented by --- 112,118 ---- /** * Returns an instance of a KeyStore representing the specified * type, from the first provider that implements it. ! * * @param type the type of keystore to create. * @return a KeyStore repesenting the desired type. * @throws KeyStoreException if the designated type of is not implemented by *************** public class KeyStore *** 141,147 **** /** * Returns an instance of a KeyStore representing the specified * type, from the named provider. ! * * @param type the type of keystore to create. * @param provider the name of the provider to use. * @return a KeyStore repesenting the desired type. --- 141,147 ---- /** * Returns an instance of a KeyStore representing the specified * type, from the named provider. ! * * @param type the type of keystore to create. * @param provider the name of the provider to use. * @return a KeyStore repesenting the desired type. *************** public class KeyStore *** 168,174 **** /** * Returns an instance of a KeyStore representing the specified * type, from the specified provider. ! * * @param type the type of keystore to create. * @param provider the provider to use. * @return a KeyStore repesenting the desired type. --- 168,174 ---- /** * Returns an instance of a KeyStore representing the specified * type, from the specified provider. ! * * @param type the type of keystore to create. * @param provider the provider to use. * @return a KeyStore repesenting the desired type. *************** public class KeyStore *** 207,219 **** /** * Returns the default KeyStore type. This method looks up the ! * type in <JAVA_HOME>/lib/security/java.security with the * property "keystore.type" or if that fails then "gkr" . */ public static final String getDefaultType() { ! // Security reads every property in java.security so it ! // will return this property if it exists. String tmp = Security.getProperty("keystore.type"); if (tmp == null) --- 207,219 ---- /** * Returns the default KeyStore type. This method looks up the ! * type in <JAVA_HOME>/lib/security/java.security with the * property "keystore.type" or if that fails then "gkr" . */ public static final String getDefaultType() { ! // Security reads every property in java.security so it ! // will return this property if it exists. String tmp = Security.getProperty("keystore.type"); if (tmp == null) *************** public class KeyStore *** 246,252 **** } /** ! Returns the key associated with given alias using the supplied password. @param alias an alias for the key to get --- 246,252 ---- } /** ! Returns the key associated with given alias using the supplied password. @param alias an alias for the key to get *************** public class KeyStore *** 271,278 **** @param alias the alias name ! @return a chain of Certificates ( ordered from the user's ! certificate to the Certificate Authority's ) or null if the alias does not exist or there is no certificate chain for the alias ( the alias refers to a trusted certificate entry or there is no entry). --- 271,278 ---- @param alias the alias name ! @return a chain of Certificates ( ordered from the user's ! certificate to the Certificate Authority's ) or null if the alias does not exist or there is no certificate chain for the alias ( the alias refers to a trusted certificate entry or there is no entry). *************** public class KeyStore *** 292,298 **** @param alias the alias name ! @return a Certificate or null if the alias does not exist or there is no certificate for the alias */ public final java.security.cert.Certificate getCertificate(String alias) --- 292,298 ---- @param alias the alias name ! @return a Certificate or null if the alias does not exist or there is no certificate for the alias */ public final java.security.cert.Certificate getCertificate(String alias) *************** public class KeyStore *** 315,322 **** /** Assign the key to the alias in the keystore, protecting it ! with the given password. It will overwrite an existing ! entry and if the key is a PrivateKey, also add the certificate chain representing the corresponding public key. @param alias the alias name --- 315,322 ---- /** Assign the key to the alias in the keystore, protecting it ! with the given password. It will overwrite an existing ! entry and if the key is a PrivateKey, also add the certificate chain representing the corresponding public key. @param alias the alias name *************** public class KeyStore *** 328,343 **** @throws KeyStoreException if it fails */ public final void setKeyEntry(String alias, Key key, char[]password, ! java.security.cert. ! Certificate[]chain) throws KeyStoreException { keyStoreSpi.engineSetKeyEntry(alias, key, password, chain); } /** Assign the key to the alias in the keystore. It will overwrite ! an existing entry and if the key is a PrivateKey, also ! add the certificate chain representing the corresponding public key. @param alias the alias name --- 328,343 ---- @throws KeyStoreException if it fails */ public final void setKeyEntry(String alias, Key key, char[]password, ! java.security.cert. ! Certificate[]chain) throws KeyStoreException { keyStoreSpi.engineSetKeyEntry(alias, key, password, chain); } /** Assign the key to the alias in the keystore. It will overwrite ! an existing entry and if the key is a PrivateKey, also ! add the certificate chain representing the corresponding public key. @param alias the alias name *************** public class KeyStore *** 348,361 **** @throws KeyStoreException if it fails */ public final void setKeyEntry(String alias, byte[]key, ! java.security.cert. ! Certificate[]chain) throws KeyStoreException { keyStoreSpi.engineSetKeyEntry(alias, key, chain); } /** ! Assign the certificate to the alias in the keystore. It will overwrite an existing entry. @param alias the alias name --- 348,361 ---- @throws KeyStoreException if it fails */ public final void setKeyEntry(String alias, byte[]key, ! java.security.cert. ! Certificate[]chain) throws KeyStoreException { keyStoreSpi.engineSetKeyEntry(alias, key, chain); } /** ! Assign the certificate to the alias in the keystore. It will overwrite an existing entry. @param alias the alias name *************** public class KeyStore *** 364,371 **** @throws KeyStoreException if it fails */ public final void setCertificateEntry(String alias, ! java.security.cert. ! Certificate cert) throws KeyStoreException { keyStoreSpi.engineSetCertificateEntry(alias, cert); --- 364,371 ---- @throws KeyStoreException if it fails */ public final void setCertificateEntry(String alias, ! java.security.cert. ! Certificate cert) throws KeyStoreException { keyStoreSpi.engineSetCertificateEntry(alias, cert); *************** public class KeyStore *** 416,422 **** } /** ! Determines if the keystore contains a key entry for the specified alias. @param alias the alias name --- 416,422 ---- } /** ! Determines if the keystore contains a key entry for the specified alias. @param alias the alias name *************** public class KeyStore *** 430,436 **** /** ! Determines if the keystore contains a certificate entry for the specified alias. @param alias the alias name --- 430,436 ---- /** ! Determines if the keystore contains a certificate entry for the specified alias. @param alias the alias name *************** public class KeyStore *** 444,450 **** } /** ! Determines if the keystore contains the specified certificate entry and returns the alias. It checks every entry and for a key entry checks only the --- 444,450 ---- } /** ! Determines if the keystore contains the specified certificate entry and returns the alias. It checks every entry and for a key entry checks only the *************** public class KeyStore *** 452,458 **** @param cert Certificate to look for ! @return alias of first matching certificate, null if it does not exist. */ public final String getCertificateAlias(java.security.cert.Certificate cert) --- 452,458 ---- @param cert Certificate to look for ! @return alias of first matching certificate, null if it does not exist. */ public final String getCertificateAlias(java.security.cert.Certificate cert) *************** public class KeyStore *** 469,475 **** @param password the password to protect the keystore integrity with @throws IOException if an I/O error occurs. ! @throws NoSuchAlgorithmException the data integrity algorithm used cannot be found. @throws CertificateException if any certificates could not be stored in the output stream. --- 469,475 ---- @param password the password to protect the keystore integrity with @throws IOException if an I/O error occurs. ! @throws NoSuchAlgorithmException the data integrity algorithm used cannot be found. @throws CertificateException if any certificates could not be stored in the output stream. *************** public class KeyStore *** 489,495 **** @param password the password to check the keystore integrity with @throws IOException if an I/O error occurs. ! @throws NoSuchAlgorithmException the data integrity algorithm used cannot be found. @throws CertificateException if any certificates could not be stored in the output stream. --- 489,495 ---- @param password the password to check the keystore integrity with @throws IOException if an I/O error occurs. ! @throws NoSuchAlgorithmException the data integrity algorithm used cannot be found. @throws CertificateException if any certificates could not be stored in the output stream. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/KeyStoreSpi.java gcc-4.6.0/libjava/classpath/java/security/KeyStoreSpi.java *** gcc-4.5.2/libjava/classpath/java/security/KeyStoreSpi.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/KeyStoreSpi.java Tue Jan 11 19:46:05 2011 *************** import java.util.Date; *** 46,54 **** import java.util.Enumeration; /** ! * KeyStoreSpi is the Service Provider Interface (SPI) for the ! * KeyStore class. This is the interface for providers to ! * supply to implement a keystore for a particular keystore * type. * * @since 1.2 --- 46,54 ---- import java.util.Enumeration; /** ! * KeyStoreSpi is the Service Provider Interface (SPI) for the ! * KeyStore class. This is the interface for providers to ! * supply to implement a keystore for a particular keystore * type. * * @since 1.2 *************** public abstract class KeyStoreSpi *** 64,70 **** } /** ! * Returns the key associated with given alias using the * supplied password. * * @param alias an alias for the key to get --- 64,70 ---- } /** ! * Returns the key associated with given alias using the * supplied password. * * @param alias an alias for the key to get *************** public abstract class KeyStoreSpi *** 85,92 **** * * @param alias the alias name * ! * @return a chain of Certificates ( ordered from the user's ! * certificate to the Certificate Authority's ) or * null if the alias does not exist or there is no * certificate chain for the alias ( the alias refers * to a trusted certificate entry or there is no entry). --- 85,92 ---- * * @param alias the alias name * ! * @return a chain of Certificates ( ordered from the user's ! * certificate to the Certificate Authority's ) or * null if the alias does not exist or there is no * certificate chain for the alias ( the alias refers * to a trusted certificate entry or there is no entry). *************** public abstract class KeyStoreSpi *** 104,110 **** * * @param alias the alias name * ! * @return a Certificate or null if the alias does not exist * or there is no certificate for the alias */ public abstract java.security.cert. --- 104,110 ---- * * @param alias the alias name * ! * @return a Certificate or null if the alias does not exist * or there is no certificate for the alias */ public abstract java.security.cert. *************** public abstract class KeyStoreSpi *** 121,128 **** /** * Assign the key to the alias in the keystore, protecting it ! * with the given password. It will overwrite an existing ! * entry and if the key is a PrivateKey, also add the * certificate chain representing the corresponding public key. * * @param alias the alias name --- 121,128 ---- /** * Assign the key to the alias in the keystore, protecting it ! * with the given password. It will overwrite an existing ! * entry and if the key is a PrivateKey, also add the * certificate chain representing the corresponding public key. * * @param alias the alias name *************** public abstract class KeyStoreSpi *** 134,148 **** * @throws KeyStoreException if it fails */ public abstract void engineSetKeyEntry(String alias, Key key, ! char[]password, ! java.security.cert. ! Certificate[]chain) throws KeyStoreException; /** * Assign the key to the alias in the keystore. It will overwrite ! * an existing entry and if the key is a PrivateKey, also ! * add the certificate chain representing the corresponding * public key. * * @param alias the alias name --- 134,148 ---- * @throws KeyStoreException if it fails */ public abstract void engineSetKeyEntry(String alias, Key key, ! char[]password, ! java.security.cert. ! Certificate[]chain) throws KeyStoreException; /** * Assign the key to the alias in the keystore. It will overwrite ! * an existing entry and if the key is a PrivateKey, also ! * add the certificate chain representing the corresponding * public key. * * @param alias the alias name *************** public abstract class KeyStoreSpi *** 153,165 **** * @throws KeyStoreException if it fails */ public abstract void engineSetKeyEntry(String alias, byte[]key, ! java.security.cert. ! Certificate[]chain) throws KeyStoreException; /** ! * Assign the certificate to the alias in the keystore. It * will overwrite an existing entry. * * @param alias the alias name --- 153,165 ---- * @throws KeyStoreException if it fails */ public abstract void engineSetKeyEntry(String alias, byte[]key, ! java.security.cert. ! Certificate[]chain) throws KeyStoreException; /** ! * Assign the certificate to the alias in the keystore. It * will overwrite an existing entry. * * @param alias the alias name *************** public abstract class KeyStoreSpi *** 168,175 **** * @throws KeyStoreException if it fails */ public abstract void engineSetCertificateEntry(String alias, ! java.security.cert. ! Certificate cert) throws KeyStoreException; /** --- 168,175 ---- * @throws KeyStoreException if it fails */ public abstract void engineSetCertificateEntry(String alias, ! java.security.cert. ! Certificate cert) throws KeyStoreException; /** *************** public abstract class KeyStoreSpi *** 206,212 **** public abstract int engineSize(); /** ! * Determines if the keystore contains a key entry for * the specified alias. * * @param alias the alias name --- 206,212 ---- public abstract int engineSize(); /** ! * Determines if the keystore contains a key entry for * the specified alias. * * @param alias the alias name *************** public abstract class KeyStoreSpi *** 216,222 **** public abstract boolean engineIsKeyEntry(String alias); /** ! * Determines if the keystore contains a certificate entry for * the specified alias. * * @param alias the alias name --- 216,222 ---- public abstract boolean engineIsKeyEntry(String alias); /** ! * Determines if the keystore contains a certificate entry for * the specified alias. * * @param alias the alias name *************** public abstract class KeyStoreSpi *** 226,232 **** public abstract boolean engineIsCertificateEntry(String alias); /** ! * Determines if the keystore contains the specified certificate * entry and returns the alias. * * It checks every entry and for a key entry checks only the --- 226,232 ---- public abstract boolean engineIsCertificateEntry(String alias); /** ! * Determines if the keystore contains the specified certificate * entry and returns the alias. * * It checks every entry and for a key entry checks only the *************** public abstract class KeyStoreSpi *** 234,244 **** * * @param cert Certificate to look for * ! * @return alias of first matching certificate, null if it * does not exist. */ public abstract String engineGetCertificateAlias(java.security.cert. ! Certificate cert); /** * Stores the keystore in the specified output stream and it --- 234,244 ---- * * @param cert Certificate to look for * ! * @return alias of first matching certificate, null if it * does not exist. */ public abstract String engineGetCertificateAlias(java.security.cert. ! Certificate cert); /** * Stores the keystore in the specified output stream and it *************** public abstract class KeyStoreSpi *** 248,254 **** * @param password the password to protect the keystore integrity with * * @throws IOException if an I/O error occurs. ! * @throws NoSuchAlgorithmException the data integrity algorithm * used cannot be found. * @throws CertificateException if any certificates could not be * stored in the output stream. --- 248,254 ---- * @param password the password to protect the keystore integrity with * * @throws IOException if an I/O error occurs. ! * @throws NoSuchAlgorithmException the data integrity algorithm * used cannot be found. * @throws CertificateException if any certificates could not be * stored in the output stream. *************** public abstract class KeyStoreSpi *** 265,271 **** * @param password the password to check the keystore integrity with * * @throws IOException if an I/O error occurs. ! * @throws NoSuchAlgorithmException the data integrity algorithm * used cannot be found. * @throws CertificateException if any certificates could not be * stored in the output stream. --- 265,271 ---- * @param password the password to check the keystore integrity with * * @throws IOException if an I/O error occurs. ! * @throws NoSuchAlgorithmException the data integrity algorithm * used cannot be found. * @throws CertificateException if any certificates could not be * stored in the output stream. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/MessageDigest.java gcc-4.6.0/libjava/classpath/java/security/MessageDigest.java *** gcc-4.5.2/libjava/classpath/java/security/MessageDigest.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/MessageDigest.java Tue Jan 11 19:46:05 2011 *************** public abstract class MessageDigest exte *** 63,69 **** /** * Constructs a new instance of MessageDigest representing the * specified algorithm. ! * * @param algorithm * the name of the digest algorithm to use. */ --- 63,69 ---- /** * Constructs a new instance of MessageDigest representing the * specified algorithm. ! * * @param algorithm * the name of the digest algorithm to use. */ *************** public abstract class MessageDigest exte *** 76,82 **** /** * Returns a new instance of MessageDigest representing the * specified algorithm. ! * * @param algorithm the name of the digest algorithm to use. * @return a new instance representing the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any --- 76,82 ---- /** * Returns a new instance of MessageDigest representing the * specified algorithm. ! * * @param algorithm the name of the digest algorithm to use. * @return a new instance representing the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any *************** public abstract class MessageDigest exte *** 106,112 **** /** * Returns a new instance of MessageDigest representing the * specified algorithm from a named provider. ! * * @param algorithm the name of the digest algorithm to use. * @param provider the name of the provider to use. * @return a new instance representing the desired algorithm. --- 106,112 ---- /** * Returns a new instance of MessageDigest representing the * specified algorithm from a named provider. ! * * @param algorithm the name of the digest algorithm to use. * @param provider the name of the provider to use. * @return a new instance representing the desired algorithm. *************** public abstract class MessageDigest exte *** 133,139 **** /** * Returns a new instance of MessageDigest representing the * specified algorithm from a designated {@link Provider}. ! * * @param algorithm the name of the digest algorithm to use. * @param provider the {@link Provider} to use. * @return a new instance representing the desired algorithm. --- 133,139 ---- /** * Returns a new instance of MessageDigest representing the * specified algorithm from a designated {@link Provider}. ! * * @param algorithm the name of the digest algorithm to use. * @param provider the {@link Provider} to use. * @return a new instance representing the desired algorithm. *************** public abstract class MessageDigest exte *** 187,193 **** /** * Returns the {@link Provider} of this instance. ! * * @return the {@link Provider} of this instance. */ public final Provider getProvider() --- 187,193 ---- /** * Returns the {@link Provider} of this instance. ! * * @return the {@link Provider} of this instance. */ public final Provider getProvider() *************** public abstract class MessageDigest exte *** 197,203 **** /** * Updates the digest with the byte. ! * * @param input byte to update the digest with. */ public void update(byte input) --- 197,203 ---- /** * Updates the digest with the byte. ! * * @param input byte to update the digest with. */ public void update(byte input) *************** public abstract class MessageDigest exte *** 208,214 **** /** * Updates the digest with the bytes from the array starting from the * specified offset and using the specified length of bytes. ! * * @param input * bytes to update the digest with. * @param offset --- 208,214 ---- /** * Updates the digest with the bytes from the array starting from the * specified offset and using the specified length of bytes. ! * * @param input * bytes to update the digest with. * @param offset *************** public abstract class MessageDigest exte *** 223,229 **** /** * Updates the digest with the bytes of an array. ! * * @param input bytes to update the digest with. */ public void update(byte[] input) --- 223,229 ---- /** * Updates the digest with the bytes of an array. ! * * @param input bytes to update the digest with. */ public void update(byte[] input) *************** public abstract class MessageDigest exte *** 233,239 **** /** * Updates the digest with the remaining bytes of a buffer. ! * * @param input The input byte buffer. * @since 1.5 */ --- 233,239 ---- /** * Updates the digest with the remaining bytes of a buffer. ! * * @param input The input byte buffer. * @since 1.5 */ *************** public abstract class MessageDigest exte *** 241,250 **** { engineUpdate (input); } ! /** * Computes the final digest of the stored data. ! * * @return a byte array representing the message digest. */ public byte[] digest() --- 241,250 ---- { engineUpdate (input); } ! /** * Computes the final digest of the stored data. ! * * @return a byte array representing the message digest. */ public byte[] digest() *************** public abstract class MessageDigest exte *** 254,260 **** /** * Computes the final digest of the stored bytes and returns the result. ! * * @param buf * an array of bytes to store the result in. * @param offset --- 254,260 ---- /** * Computes the final digest of the stored bytes and returns the result. ! * * @param buf * an array of bytes to store the result in. * @param offset *************** public abstract class MessageDigest exte *** 272,278 **** * Computes a final update using the input array of bytes, then computes a * final digest and returns it. It calls {@link #update(byte[])} and then * {@link #digest(byte[])}. ! * * @param input * an array of bytes to perform final update with. * @return a byte array representing the message digest. --- 272,278 ---- * Computes a final update using the input array of bytes, then computes a * final digest and returns it. It calls {@link #update(byte[])} and then * {@link #digest(byte[])}. ! * * @param input * an array of bytes to perform final update with. * @return a byte array representing the message digest. *************** public abstract class MessageDigest exte *** 285,291 **** /** * Returns a string representation of this instance. ! * * @return a string representation of this instance. */ public String toString() --- 285,291 ---- /** * Returns a string representation of this instance. ! * * @return a string representation of this instance. */ public String toString() *************** public abstract class MessageDigest exte *** 295,301 **** /** * Does a simple byte comparison of the two digests. ! * * @param digesta * first digest to compare. * @param digestb --- 295,301 ---- /** * Does a simple byte comparison of the two digests. ! * * @param digesta * first digest to compare. * @param digestb *************** public abstract class MessageDigest exte *** 323,329 **** /** * Returns the name of message digest algorithm. ! * * @return the name of message digest algorithm. */ public final String getAlgorithm() --- 323,329 ---- /** * Returns the name of message digest algorithm. ! * * @return the name of message digest algorithm. */ public final String getAlgorithm() *************** public abstract class MessageDigest exte *** 334,340 **** /** * Returns the length of the message digest. The default is zero which means * that the concrete implementation does not implement this method. ! * * @return length of the message digest. * @since 1.2 */ --- 334,340 ---- /** * Returns the length of the message digest. The default is zero which means * that the concrete implementation does not implement this method. ! * * @return length of the message digest. * @since 1.2 */ *************** public abstract class MessageDigest exte *** 348,354 **** * then a {@link CloneNotSupportedException} is thrown. Cloning depends on * whether the subclass {@link MessageDigestSpi} implements {@link Cloneable} * which contains the actual implementation of the appropriate algorithm. ! * * @return a clone of this instance. * @throws CloneNotSupportedException * the implementation does not support cloning. --- 348,354 ---- * then a {@link CloneNotSupportedException} is thrown. Cloning depends on * whether the subclass {@link MessageDigestSpi} implements {@link Cloneable} * which contains the actual implementation of the appropriate algorithm. ! * * @return a clone of this instance. * @throws CloneNotSupportedException * the implementation does not support cloning. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/MessageDigestSpi.java gcc-4.6.0/libjava/classpath/java/security/MessageDigestSpi.java *** gcc-4.5.2/libjava/classpath/java/security/MessageDigestSpi.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/MessageDigestSpi.java Tue Jan 11 19:46:05 2011 *************** public abstract class MessageDigestSpi *** 101,107 **** /** * Updates this digest with the remaining bytes of a byte buffer. ! * * @param input The input buffer. * @since 1.5 */ --- 101,107 ---- /** * Updates this digest with the remaining bytes of a byte buffer. ! * * @param input The input buffer. * @since 1.5 */ *************** public abstract class MessageDigestSpi *** 115,121 **** engineUpdate (buf, 0, n); } } ! /** Computes the final digest of the stored bytes and returns them. It performs any necessary padding. The message digest --- 115,121 ---- engineUpdate (buf, 0, n); } } ! /** Computes the final digest of the stored bytes and returns them. It performs any necessary padding. The message digest diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/Permission.java gcc-4.6.0/libjava/classpath/java/security/Permission.java *** gcc-4.5.2/libjava/classpath/java/security/Permission.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/Permission.java Tue Jan 11 19:46:05 2011 *************** public abstract class Permission impleme *** 183,202 **** */ public String toString() { ! CPStringBuilder string = new CPStringBuilder(); ! string = string.append('('); string = string.append(getClass().getName()); string = string.append(' '); string = string.append(getName()); ! if (!(getActions().equals(""))) { string = string.append(' '); string = string.append(getActions()); } ! string = string.append(')'); ! return string.toString(); } } // class Permission --- 183,202 ---- */ public String toString() { ! CPStringBuilder string = new CPStringBuilder(); ! string = string.append('('); string = string.append(getClass().getName()); string = string.append(' '); string = string.append(getName()); ! if (!(getActions().equals(""))) { string = string.append(' '); string = string.append(getActions()); } ! string = string.append(')'); ! return string.toString(); } } // class Permission diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/Permissions.java gcc-4.6.0/libjava/classpath/java/security/Permissions.java *** gcc-4.5.2/libjava/classpath/java/security/Permissions.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/Permissions.java Tue Jan 11 19:46:05 2011 *************** public final class Permissions extends P *** 231,243 **** public boolean implies(Permission perm) { Enumeration elements = elements(); ! while (elements.hasMoreElements()) ! { ! Permission p = (Permission)elements.nextElement(); ! if (p.implies(perm)) ! return true; ! } return false; } --- 231,243 ---- public boolean implies(Permission perm) { Enumeration elements = elements(); ! while (elements.hasMoreElements()) ! { ! Permission p = (Permission)elements.nextElement(); ! if (p.implies(perm)) ! return true; ! } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/Policy.java gcc-4.6.0/libjava/classpath/java/security/Policy.java *** gcc-4.5.2/libjava/classpath/java/security/Policy.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/security/Policy.java Tue Jan 11 19:46:05 2011 *************** import java.util.Map; *** 47,82 **** * policy for the Java application environment. It specifies which permissions * are available for code from various sources. The security policy is * represented through a subclass of Policy. ! * *

            Only one Policy is in effect at any time. A * {@link ProtectionDomain} initializes itself with information from this class * on the set of permssions to grant.

            ! * *

            The location for the actual Policy could be anywhere in any * form because it depends on the Policy implementation. The default system is * in a flat ASCII file or it could be in a database.

            ! * *

            The current installed Policy can be accessed with * {@link #getPolicy()} and changed with {@link #setPolicy(Policy)} if the code * has the correct permissions.

            ! * *

            The {@link #refresh()} method causes the Policy instance to * refresh/reload its configuration. The method used to refresh depends on the * Policy implementation.

            ! * *

            When a protection domain initializes its permissions, it uses code like * the following:

            ! * * * policy = Policy.getPolicy(); * PermissionCollection perms = policy.getPermissions(myCodeSource); * ! * *

            The protection domain passes the Policy handler a * {@link CodeSource} instance which contains the codebase URL and a public key. * The Policy implementation then returns the proper set of * permissions for that {@link CodeSource}.

            ! * *

            The default Policy implementation can be changed by setting * the "policy.provider" security provider in the "java.security" file to the * correct Policy implementation class.

            --- 47,82 ---- * policy for the Java application environment. It specifies which permissions * are available for code from various sources. The security policy is * represented through a subclass of Policy. ! * *

            Only one Policy is in effect at any time. A * {@link ProtectionDomain} initializes itself with information from this class * on the set of permssions to grant.

            ! * *

            The location for the actual Policy could be anywhere in any * form because it depends on the Policy implementation. The default system is * in a flat ASCII file or it could be in a database.

            ! * *

            The current installed Policy can be accessed with * {@link #getPolicy()} and changed with {@link #setPolicy(Policy)} if the code * has the correct permissions.

            ! * *

            The {@link #refresh()} method causes the Policy instance to * refresh/reload its configuration. The method used to refresh depends on the * Policy implementation.

            ! * *

            When a protection domain initializes its permissions, it uses code like * the following:

            ! * * * policy = Policy.getPolicy(); * PermissionCollection perms = policy.getPermissions(myCodeSource); * ! * *

            The protection domain passes the Policy handler a * {@link CodeSource} instance which contains the codebase URL and a public key. * The Policy implementation then returns the proper set of * permissions for that {@link CodeSource}.

            ! * *

            The default Policy implementation can be changed by setting * the "policy.provider" security provider in the "java.security" file to the * correct Policy implementation class.

            *************** public abstract class Policy *** 103,109 **** * Returns the currently installed Policy handler. The value * should not be cached as it can be changed any time by * {@link #setPolicy(Policy)}. ! * * @return the current Policy. * @throws SecurityException * if a {@link SecurityManager} is installed which disallows this --- 103,109 ---- * Returns the currently installed Policy handler. The value * should not be cached as it can be changed any time by * {@link #setPolicy(Policy)}. ! * * @return the current Policy. * @throws SecurityException * if a {@link SecurityManager} is installed which disallows this *************** public abstract class Policy *** 120,126 **** /** * Sets the Policy handler to a new value. ! * * @param policy * the new Policy to use. * @throws SecurityException --- 120,126 ---- /** * Sets the Policy handler to a new value. ! * * @param policy * the new Policy to use. * @throws SecurityException *************** public abstract class Policy *** 177,186 **** { currentPolicy = (Policy) Class.forName(pp).newInstance(); } ! catch (Exception e) ! { ! // Ignored. ! } if (currentPolicy == null) currentPolicy = new gnu.java.security.provider.DefaultPolicy(); --- 177,186 ---- { currentPolicy = (Policy) Class.forName(pp).newInstance(); } ! catch (Exception e) ! { ! // Ignored. ! } if (currentPolicy == null) currentPolicy = new gnu.java.security.provider.DefaultPolicy(); *************** public abstract class Policy *** 200,206 **** /** * Returns the set of Permissions allowed for a given {@link CodeSource}. ! * * @param codesource * the {@link CodeSource} for which, the caller needs to find the * set of granted permissions. --- 200,206 ---- /** * Returns the set of Permissions allowed for a given {@link CodeSource}. ! * * @param codesource * the {@link CodeSource} for which, the caller needs to find the * set of granted permissions. *************** public abstract class Policy *** 214,220 **** /** * Returns the set of Permissions allowed for a given {@link ProtectionDomain}. ! * * @param domain * the {@link ProtectionDomain} for which, the caller needs to find * the set of granted permissions. --- 214,220 ---- /** * Returns the set of Permissions allowed for a given {@link ProtectionDomain}. ! * * @param domain * the {@link ProtectionDomain} for which, the caller needs to find * the set of granted permissions. *************** public abstract class Policy *** 257,263 **** /** * Checks if the designated {@link Permission} is granted to a designated * {@link ProtectionDomain}. ! * * @param domain * the {@link ProtectionDomain} to test. * @param permission --- 257,263 ---- /** * Checks if the designated {@link Permission} is granted to a designated * {@link ProtectionDomain}. ! * * @param domain * the {@link ProtectionDomain} to test. * @param permission diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/ProtectionDomain.java gcc-4.6.0/libjava/classpath/java/security/ProtectionDomain.java *** gcc-4.5.2/libjava/classpath/java/security/ProtectionDomain.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/ProtectionDomain.java Tue Jan 11 19:46:05 2011 *************** import gnu.java.lang.CPStringBuilder; *** 47,53 **** * class loaded from the specified {@link CodeSource} is treated as part of * this domain. The set of permissions is represented by an instance of * {@link PermissionCollection}. ! * *

            Every class in the system will belong to one and only one * ProtectionDomain.

            * --- 47,53 ---- * class loaded from the specified {@link CodeSource} is treated as part of * this domain. The set of permissions is represented by an instance of * {@link PermissionCollection}. ! * *

            Every class in the system will belong to one and only one * ProtectionDomain.

            * *************** public class ProtectionDomain *** 77,83 **** * can be added later to the {@link PermissionCollection} and this contructor * will call the setReadOnly method on the specified set of * permissions. ! * * @param codesource * The {@link CodeSource} for this domain. * @param permissions --- 77,83 ---- * can be added later to the {@link PermissionCollection} and this contructor * will call the setReadOnly method on the specified set of * permissions. ! * * @param codesource * The {@link CodeSource} for this domain. * @param permissions *************** public class ProtectionDomain *** 93,103 **** * This method initializes a new instance of ProtectionDomain * given its {@link CodeSource}, granted permissions, associated * {@link ClassLoader} and {@link Principal}s. ! * *

            Similar to the previous constructor, if the designated set of * permissions is not null, the setReadOnly method * is called on that set.

            ! * * @param codesource * The {@link CodeSource} for this domain. * @param permissions --- 93,103 ---- * This method initializes a new instance of ProtectionDomain * given its {@link CodeSource}, granted permissions, associated * {@link ClassLoader} and {@link Principal}s. ! * *

            Similar to the previous constructor, if the designated set of * permissions is not null, the setReadOnly method * is called on that set.

            ! * * @param codesource * The {@link CodeSource} for this domain. * @param permissions *************** public class ProtectionDomain *** 138,144 **** /** * Returns the {@link CodeSource} of this domain. ! * * @return the {@link CodeSource} of this domain. * @since 1.2 */ --- 138,144 ---- /** * Returns the {@link CodeSource} of this domain. ! * * @return the {@link CodeSource} of this domain. * @since 1.2 */ *************** public class ProtectionDomain *** 149,155 **** /** * Returns the {@link ClassLoader} of this domain. ! * * @return the {@link ClassLoader} of this domain. * @since 1.4 */ --- 149,155 ---- /** * Returns the {@link ClassLoader} of this domain. ! * * @return the {@link ClassLoader} of this domain. * @since 1.4 */ *************** public class ProtectionDomain *** 160,166 **** /** * Returns a clone of the {@link Principal}s of this domain. ! * * @return a clone of the {@link Principal}s of this domain. * @since 1.4 */ --- 160,166 ---- /** * Returns a clone of the {@link Principal}s of this domain. ! * * @return a clone of the {@link Principal}s of this domain. * @since 1.4 */ *************** public class ProtectionDomain *** 171,177 **** /** * Returns the {@link PermissionCollection} of this domain. ! * * @return The {@link PermissionCollection} of this domain. */ public final PermissionCollection getPermissions() --- 171,177 ---- /** * Returns the {@link PermissionCollection} of this domain. ! * * @return The {@link PermissionCollection} of this domain. */ public final PermissionCollection getPermissions() *************** public class ProtectionDomain *** 182,188 **** /** * Tests whether or not the specified {@link Permission} is implied by the * set of permissions granted to this domain. ! * * @param permission * the {@link Permission} to test. * @return true if the specified {@link Permission} is implied --- 182,188 ---- /** * Tests whether or not the specified {@link Permission} is implied by the * set of permissions granted to this domain. ! * * @param permission * the {@link Permission} to test. * @return true if the specified {@link Permission} is implied *************** public class ProtectionDomain *** 200,206 **** /** * Returns a string representation of this object. It will include the * {@link CodeSource} and set of permissions associated with this domain. ! * * @return A string representation of this object. */ public String toString() --- 200,206 ---- /** * Returns a string representation of this object. It will include the * {@link CodeSource} and set of permissions associated with this domain. ! * * @return A string representation of this object. */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/Provider.java gcc-4.6.0/libjava/classpath/java/security/Provider.java *** gcc-4.5.2/libjava/classpath/java/security/Provider.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/security/Provider.java Tue Jan 11 19:46:05 2011 *************** import java.util.Properties; *** 48,54 **** * Providers are installed by name and version number. See the static * initializer of the {@link java.security.Security} class for the default * security providers installed by this class library. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public abstract class Provider --- 48,54 ---- * Providers are installed by name and version number. See the static * initializer of the {@link java.security.Security} class for the default * security providers installed by this class library. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public abstract class Provider *************** public abstract class Provider *** 99,105 **** /** * This method retunrs the version number of this Provider. ! * * @return The Provider's version number. */ public double getVersion() --- 99,105 ---- /** * This method retunrs the version number of this Provider. ! * * @return The Provider's version number. */ public double getVersion() *************** public abstract class Provider *** 126,132 **** * name is this provider's name. For the default implementation * this translates into a {@link SecurityManager#checkPermission(Permission)} * for a SecurityPermission("putProviderProperty." + name). ! * * @param key The property key. * @param value The property value. * @return The previous value of the specified property (key), --- 126,132 ---- * name is this provider's name. For the default implementation * this translates into a {@link SecurityManager#checkPermission(Permission)} * for a SecurityPermission("putProviderProperty." + name). ! * * @param key The property key. * @param value The property value. * @return The previous value of the specified property (key), *************** public abstract class Provider *** 162,168 **** * name is this provider's name. For the default implementation * this translates into a {@link SecurityManager#checkPermission(Permission)} * for a SecurityPermission("removeProviderProperty." + name). ! * * @param key The key to remove * @return The previous value for this key, or null if no * previous value. --- 162,168 ---- * name is this provider's name. For the default implementation * this translates into a {@link SecurityManager#checkPermission(Permission)} * for a SecurityPermission("removeProviderProperty." + name). ! * * @param key The key to remove * @return The previous value for this key, or null if no * previous value. *************** public abstract class Provider *** 206,212 **** public String toString() { return (getClass().getName() + ": name=" + getName() + " version=" + ! version); } private Object toCanonicalKey(Object key) --- 206,212 ---- public String toString() { return (getClass().getName() + ": name=" + getName() + " version=" + ! version); } private Object toCanonicalKey(Object key) diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/ProviderException.java gcc-4.6.0/libjava/classpath/java/security/ProviderException.java *** gcc-4.5.2/libjava/classpath/java/security/ProviderException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/security/ProviderException.java Tue Jan 11 19:46:05 2011 *************** package java.security; *** 39,45 **** /** * This exception indicates that a runtime problem was encounterd with ! * a security provider. * * @author Aaron M. Renn (arenn@urbanophile.com) * @status updated to 1.4 --- 39,45 ---- /** * This exception indicates that a runtime problem was encounterd with ! * a security provider. * * @author Aaron M. Renn (arenn@urbanophile.com) * @status updated to 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/SecureClassLoader.java gcc-4.6.0/libjava/classpath/java/security/SecureClassLoader.java *** gcc-4.5.2/libjava/classpath/java/security/SecureClassLoader.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/security/SecureClassLoader.java Tue Jan 11 19:46:05 2011 *************** import java.nio.ByteBuffer; *** 41,47 **** import java.util.HashMap; /** ! * A Secure Class Loader for loading classes with additional * support for specifying code source and permissions when * they are retrieved by the system policy handler. * --- 41,47 ---- import java.util.HashMap; /** ! * A Secure Class Loader for loading classes with additional * support for specifying code source and permissions when * they are retrieved by the system policy handler. * *************** public class SecureClassLoader extends C *** 63,70 **** { } ! /** ! * Creates a class using an array of bytes and a * CodeSource. * * @param name the name to give the class. null if unknown. --- 63,70 ---- { } ! /** ! * Creates a class using an array of bytes and a * CodeSource. * * @param name the name to give the class. null if unknown. *************** public class SecureClassLoader extends C *** 78,90 **** * @exception ClassFormatError if the byte array is not in proper classfile format. */ protected final Class defineClass(String name, byte[] b, int off, int len, ! CodeSource cs) { return super.defineClass(name, b, off, len, getProtectionDomain(cs)); } ! /** ! * Creates a class using an ByteBuffer and a * CodeSource. * * @param name the name to give the class. null if unknown. --- 78,90 ---- * @exception ClassFormatError if the byte array is not in proper classfile format. */ protected final Class defineClass(String name, byte[] b, int off, int len, ! CodeSource cs) { return super.defineClass(name, b, off, len, getProtectionDomain(cs)); } ! /** ! * Creates a class using an ByteBuffer and a * CodeSource. * * @param name the name to give the class. null if unknown. *************** public class SecureClassLoader extends C *** 109,139 **** ProtectionDomain protectionDomain = null; if (cs != null) { ! synchronized (protectionDomainCache) ! { ! protectionDomain = protectionDomainCache.get(cs); ! } ! if (protectionDomain == null) ! { ! protectionDomain ! = new ProtectionDomain(cs, getPermissions(cs), this, null); ! synchronized (protectionDomainCache) ! { ! ProtectionDomain domain = protectionDomainCache.get(cs); ! if (domain == null) ! protectionDomainCache.put(cs, protectionDomain); ! else ! protectionDomain = domain; ! } ! } } return protectionDomain; } /** * Returns a PermissionCollection for the specified CodeSource. ! * The default implementation invokes * java.security.Policy.getPermissions. * * This method is called by defineClass that takes a CodeSource --- 109,139 ---- ProtectionDomain protectionDomain = null; if (cs != null) { ! synchronized (protectionDomainCache) ! { ! protectionDomain = protectionDomainCache.get(cs); ! } ! if (protectionDomain == null) ! { ! protectionDomain ! = new ProtectionDomain(cs, getPermissions(cs), this, null); ! synchronized (protectionDomainCache) ! { ! ProtectionDomain domain = protectionDomainCache.get(cs); ! if (domain == null) ! protectionDomainCache.put(cs, protectionDomain); ! else ! protectionDomain = domain; ! } ! } } return protectionDomain; } /** * Returns a PermissionCollection for the specified CodeSource. ! * The default implementation invokes * java.security.Policy.getPermissions. * * This method is called by defineClass that takes a CodeSource diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/SecureRandom.java gcc-4.6.0/libjava/classpath/java/security/SecureRandom.java *** gcc-4.5.2/libjava/classpath/java/security/SecureRandom.java Wed Feb 25 21:40:28 2009 --- gcc-4.6.0/libjava/classpath/java/security/SecureRandom.java Tue Jan 11 19:46:05 2011 *************** public class SecureRandom extends Random *** 77,85 **** private static final long serialVersionUID = 4940670005562187L; //Serialized Field ! long counter = 0; //Serialized Provider provider = null; ! byte[] randomBytes = null; //Always null int randomBytesUsed = 0; SecureRandomSpi secureRandomSpi = null; byte[] state = null; --- 77,85 ---- private static final long serialVersionUID = 4940670005562187L; //Serialized Field ! long counter = 0; //Serialized Provider provider = null; ! byte[] randomBytes = null; //Always null int randomBytesUsed = 0; SecureRandomSpi secureRandomSpi = null; byte[] state = null; *************** public class SecureRandom extends Random *** 91,99 **** // ------------------------------------------------------------------------ /** ! Default constructor for SecureRandom. It constructs a ! new SecureRandom by instantating the first SecureRandom ! algorithm in the default security provier. It is not seeded and should be seeded using setSeed or else on the first call to getnextBytes it will force a seed. --- 91,99 ---- // ------------------------------------------------------------------------ /** ! Default constructor for SecureRandom. It constructs a ! new SecureRandom by instantating the first SecureRandom ! algorithm in the default security provier. It is not seeded and should be seeded using setSeed or else on the first call to getnextBytes it will force a seed. *************** public class SecureRandom extends Random *** 134,142 **** throw death; } catch (Throwable t) ! { ! // Ignore. ! } } } } --- 134,142 ---- throw death; } catch (Throwable t) ! { ! // Ignore. ! } } } } *************** public class SecureRandom extends Random *** 148,156 **** } /** ! A constructor for SecureRandom. It constructs a new ! SecureRandom by instantating the first SecureRandom algorithm ! in the default security provier. It is seeded with the passed function and is useful if the user has access to hardware random device (like a radiation detector). --- 148,156 ---- } /** ! A constructor for SecureRandom. It constructs a new ! SecureRandom by instantating the first SecureRandom algorithm ! in the default security provier. It is seeded with the passed function and is useful if the user has access to hardware random device (like a radiation detector). *************** public class SecureRandom extends Random *** 167,175 **** } /** ! A constructor for SecureRandom. It constructs a new SecureRandom using the specified SecureRandomSpi from ! the specified security provier. @param secureRandomSpi A SecureRandomSpi class @param provider A Provider class --- 167,175 ---- } /** ! A constructor for SecureRandom. It constructs a new SecureRandom using the specified SecureRandomSpi from ! the specified security provier. @param secureRandomSpi A SecureRandomSpi class @param provider A Provider class *************** public class SecureRandom extends Random *** 183,189 **** * Private constructor called from the getInstance() method. */ private SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider, ! String algorithm) { this.secureRandomSpi = secureRandomSpi; this.provider = provider; --- 183,189 ---- * Private constructor called from the getInstance() method. */ private SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider, ! String algorithm) { this.secureRandomSpi = secureRandomSpi; this.provider = provider; *************** public class SecureRandom extends Random *** 193,199 **** /** * Returns an instance of a SecureRandom from the first provider * that implements it. ! * * @param algorithm The algorithm name. * @return A new SecureRandom implementing the given algorithm. * @throws NoSuchAlgorithmException If no installed provider implements the --- 193,199 ---- /** * Returns an instance of a SecureRandom from the first provider * that implements it. ! * * @param algorithm The algorithm name. * @return A new SecureRandom implementing the given algorithm. * @throws NoSuchAlgorithmException If no installed provider implements the *************** public class SecureRandom extends Random *** 223,229 **** /** * Returns an instance of a SecureRandom for the specified * algorithm from the named provider. ! * * @param algorithm The algorithm name. * @param provider The provider name. * @return A new SecureRandom implementing the chosen --- 223,229 ---- /** * Returns an instance of a SecureRandom for the specified * algorithm from the named provider. ! * * @param algorithm The algorithm name. * @param provider The provider name. * @return A new SecureRandom implementing the chosen *************** public class SecureRandom extends Random *** 252,258 **** /** * Returns an instance of a SecureRandom for the specified * algorithm from the given provider. ! * * @param algorithm The SecureRandom algorithm to create. * @param provider The provider to use. * @throws NoSuchAlgorithmException If the algorithm cannot be found, or if --- 252,258 ---- /** * Returns an instance of a SecureRandom for the specified * algorithm from the given provider. ! * * @param algorithm The SecureRandom algorithm to create. * @param provider The provider to use. * @throws NoSuchAlgorithmException If the algorithm cannot be found, or if *************** public class SecureRandom extends Random *** 313,319 **** } /** ! Seeds the SecureRandom. The class is re-seeded for each call and each seed builds on the previous seed so as not to weaken security. @param seed seed bytes to seed with --- 313,319 ---- } /** ! Seeds the SecureRandom. The class is re-seeded for each call and each seed builds on the previous seed so as not to weaken security. @param seed seed bytes to seed with *************** public class SecureRandom extends Random *** 325,331 **** } /** ! Seeds the SecureRandom. The class is re-seeded for each call and each seed builds on the previous seed so as not to weaken security. @param seed 8 seed bytes to seed with --- 325,331 ---- } /** ! Seeds the SecureRandom. The class is re-seeded for each call and each seed builds on the previous seed so as not to weaken security. @param seed 8 seed bytes to seed with *************** public class SecureRandom extends Random *** 340,352 **** if (secureRandomSpi != null) { byte[] tmp = { (byte) (0xff & (seed >> 56)), ! (byte) (0xff & (seed >> 48)), ! (byte) (0xff & (seed >> 40)), ! (byte) (0xff & (seed >> 32)), ! (byte) (0xff & (seed >> 24)), ! (byte) (0xff & (seed >> 16)), ! (byte) (0xff & (seed >> 8)), ! (byte) (0xff & seed) }; secureRandomSpi.engineSetSeed(tmp); isSeeded = true; --- 340,352 ---- if (secureRandomSpi != null) { byte[] tmp = { (byte) (0xff & (seed >> 56)), ! (byte) (0xff & (seed >> 48)), ! (byte) (0xff & (seed >> 40)), ! (byte) (0xff & (seed >> 32)), ! (byte) (0xff & (seed >> 24)), ! (byte) (0xff & (seed >> 16)), ! (byte) (0xff & (seed >> 8)), ! (byte) (0xff & seed) }; secureRandomSpi.engineSetSeed(tmp); isSeeded = true; *************** public class SecureRandom extends Random *** 394,400 **** /** Returns the given number of seed bytes. This method is ! maintained only for backwards capability. @param numBytes number of seed bytes to get --- 394,400 ---- /** Returns the given number of seed bytes. This method is ! maintained only for backwards capability. @param numBytes number of seed bytes to get diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/SecureRandomSpi.java gcc-4.6.0/libjava/classpath/java/security/SecureRandomSpi.java *** gcc-4.5.2/libjava/classpath/java/security/SecureRandomSpi.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/SecureRandomSpi.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 40,50 **** /** SecureRandomSpi is the Service Provider Interface for SecureRandom ! providers. It provides an interface for providers to the SecureRandom engine to write their own pseudo-random number generator. ! @since JDK 1.2 @author Mark Benvenuto (ivymccough@worldnet.att.net) */ --- 40,50 ---- /** SecureRandomSpi is the Service Provider Interface for SecureRandom ! providers. It provides an interface for providers to the SecureRandom engine to write their own pseudo-random number generator. ! @since JDK 1.2 @author Mark Benvenuto (ivymccough@worldnet.att.net) */ *************** public abstract class SecureRandomSpi im *** 60,66 **** } /** ! Updates the seed for SecureRandomSpi but does not reset seed. It does to this so repeated called never decrease randomness. */ protected abstract void engineSetSeed(byte[] seed); --- 60,66 ---- } /** ! Updates the seed for SecureRandomSpi but does not reset seed. It does to this so repeated called never decrease randomness. */ protected abstract void engineSetSeed(byte[] seed); *************** public abstract class SecureRandomSpi im *** 74,80 **** protected abstract void engineNextBytes(byte[] bytes); /** ! Gets a user specified number of bytes specified by the parameter. @param numBytes number of random bytes to generate --- 74,80 ---- protected abstract void engineNextBytes(byte[] bytes); /** ! Gets a user specified number of bytes specified by the parameter. @param numBytes number of random bytes to generate diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/Security.java gcc-4.6.0/libjava/classpath/java/security/Security.java *** gcc-4.5.2/libjava/classpath/java/security/Security.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/security/Security.java Tue Jan 11 19:46:05 2011 *************** public final class Security *** 70,76 **** private static Vector providers = new Vector(); private static Properties secprops = new Properties(); ! static { String base = SystemProperties.getProperty("gnu.classpath.home.url"); --- 70,76 ---- private static Vector providers = new Vector(); private static Properties secprops = new Properties(); ! static { String base = SystemProperties.getProperty("gnu.classpath.home.url"); *************** public final class Security *** 78,113 **** // Try VM specific security file boolean loaded = loadProviders (base, vendor); ! // Append classpath standard provider if possible if (!loadProviders (base, "classpath") ! && !loaded ! && providers.size() == 0) ! { ! if (Configuration.DEBUG) ! { ! /* No providers found and both security files failed to ! * load properly. Give a warning in case of DEBUG is ! * enabled. Could be done with java.util.logging later. ! */ ! System.err.println ! ("WARNING: could not properly read security provider files:"); ! System.err.println ! (" " + base + "/security/" + vendor ! + ".security"); ! System.err.println ! (" " + base + "/security/" + "classpath" ! + ".security"); ! System.err.println ! (" Falling back to standard GNU security provider"); ! } // Note that this matches our classpath.security file. ! providers.addElement (new gnu.java.security.provider.Gnu()); ! providers.addElement(new gnu.javax.crypto.jce.GnuCrypto()); providers.addElement(new gnu.javax.crypto.jce.GnuSasl()); providers.addElement(new gnu.javax.net.ssl.provider.Jessie()); providers.addElement(new gnu.javax.security.auth.callback.GnuCallbacks()); ! } } // This class can't be instantiated. private Security() --- 78,113 ---- // Try VM specific security file boolean loaded = loadProviders (base, vendor); ! // Append classpath standard provider if possible if (!loadProviders (base, "classpath") ! && !loaded ! && providers.size() == 0) ! { ! if (Configuration.DEBUG) ! { ! /* No providers found and both security files failed to ! * load properly. Give a warning in case of DEBUG is ! * enabled. Could be done with java.util.logging later. ! */ ! System.err.println ! ("WARNING: could not properly read security provider files:"); ! System.err.println ! (" " + base + "/security/" + vendor ! + ".security"); ! System.err.println ! (" " + base + "/security/" + "classpath" ! + ".security"); ! System.err.println ! (" Falling back to standard GNU security provider"); ! } // Note that this matches our classpath.security file. ! providers.addElement (new gnu.java.security.provider.Gnu()); ! providers.addElement(new gnu.javax.crypto.jce.GnuCrypto()); providers.addElement(new gnu.javax.crypto.jce.GnuSasl()); providers.addElement(new gnu.javax.net.ssl.provider.Jessie()); providers.addElement(new gnu.javax.security.auth.callback.GnuCallbacks()); ! } } // This class can't be instantiated. private Security() *************** public final class Security *** 128,171 **** String secfilestr = baseUrl + "/security/" + vendor + ".security"; try { ! InputStream fin = new URL(secfilestr).openStream(); ! secprops.load(fin); ! int i = 1; ! String name; ! while ((name = secprops.getProperty("security.provider." + i)) != null) ! { ! Exception exception = null; ! try ! { ! ClassLoader sys = ClassLoader.getSystemClassLoader(); ! providers.addElement(Class.forName(name, true, sys).newInstance()); ! } ! catch (ClassNotFoundException x) ! { ! exception = x; ! } ! catch (InstantiationException x) ! { ! exception = x; ! } ! catch (IllegalAccessException x) ! { ! exception = x; ! } ! if (exception != null) ! { ! System.err.println ("WARNING: Error loading security provider " ! + name + ": " + exception); ! result = false; ! } ! i++; ! } } catch (IOException ignored) { ! result = false; } return result; --- 128,171 ---- String secfilestr = baseUrl + "/security/" + vendor + ".security"; try { ! InputStream fin = new URL(secfilestr).openStream(); ! secprops.load(fin); ! int i = 1; ! String name; ! while ((name = secprops.getProperty("security.provider." + i)) != null) ! { ! Exception exception = null; ! try ! { ! ClassLoader sys = ClassLoader.getSystemClassLoader(); ! providers.addElement(Class.forName(name, true, sys).newInstance()); ! } ! catch (ClassNotFoundException x) ! { ! exception = x; ! } ! catch (InstantiationException x) ! { ! exception = x; ! } ! catch (IllegalAccessException x) ! { ! exception = x; ! } ! if (exception != null) ! { ! System.err.println ("WARNING: Error loading security provider " ! + name + ": " + exception); ! result = false; ! } ! i++; ! } } catch (IOException ignored) { ! result = false; } return result; *************** public final class Security *** 174,180 **** /** * Returns the value associated to a designated property name for a given * algorithm. ! * * @param algName * the algorithm name. * @param propName --- 174,180 ---- /** * Returns the value associated to a designated property name for a given * algorithm. ! * * @param algName * the algorithm name. * @param propName *************** public final class Security *** 208,214 **** /** * Inserts a new designated {@link Provider} at a designated (1-based) * position in the current list of installed {@link Provider}s, ! * * @param provider * the new {@link Provider} to add. * @param position --- 208,214 ---- /** * Inserts a new designated {@link Provider} at a designated (1-based) * position in the current list of installed {@link Provider}s, ! * * @param provider * the new {@link Provider} to add. * @param position *************** public final class Security *** 235,242 **** int max = providers.size (); for (int i = 0; i < max; i++) { ! if (((Provider) providers.elementAt(i)).getName().equals(provider.getName())) ! return -1; } if (position < 0) --- 235,242 ---- int max = providers.size (); for (int i = 0; i < max; i++) { ! if (((Provider) providers.elementAt(i)).getName().equals(provider.getName())) ! return -1; } if (position < 0) *************** public final class Security *** 252,258 **** /** * Appends the designated new {@link Provider} to the current list of * installed {@link Provider}s. ! * * @param provider * the new {@link Provider} to append. * @return the position (starting from 1) of provider in the --- 252,258 ---- /** * Appends the designated new {@link Provider} to the current list of * installed {@link Provider}s. ! * * @param provider * the new {@link Provider} to append. * @return the position (starting from 1) of provider in the *************** public final class Security *** 273,279 **** /** * Removes an already installed {@link Provider}, given its name, from the * current list of installed {@link Provider}s. ! * * @param name * the name of an already installed {@link Provider} to remove. * @throws SecurityException --- 273,279 ---- /** * Removes an already installed {@link Provider}, given its name, from the * current list of installed {@link Provider}s. ! * * @param name * the name of an already installed {@link Provider} to remove. * @throws SecurityException *************** public final class Security *** 291,308 **** int max = providers.size (); for (int i = 0; i < max; i++) { ! if (((Provider) providers.elementAt(i)).getName().equals(name)) ! { ! providers.remove(i); ! break; ! } } } /** * Returns the current list of installed {@link Provider}s as an array * ordered according to their installation preference order. ! * * @return an array of all the installed providers. */ public static Provider[] getProviders() --- 291,308 ---- int max = providers.size (); for (int i = 0; i < max; i++) { ! if (((Provider) providers.elementAt(i)).getName().equals(name)) ! { ! providers.remove(i); ! break; ! } } } /** * Returns the current list of installed {@link Provider}s as an array * ordered according to their installation preference order. ! * * @return an array of all the installed providers. */ public static Provider[] getProviders() *************** public final class Security *** 314,320 **** /** * Returns an already installed {@link Provider} given its name. ! * * @param name * the name of an already installed {@link Provider}. * @return the {@link Provider} known by name. Returns --- 314,320 ---- /** * Returns an already installed {@link Provider} given its name. ! * * @param name * the name of an already installed {@link Provider}. * @return the {@link Provider} known by name. Returns *************** public final class Security *** 337,352 **** int max = providers.size (); for (int i = 0; i < max; i++) { ! p = (Provider) providers.elementAt(i); ! if (p.getName().equals(name)) ! return p; } return null; } /** * Returns the value associated with a Security propery. ! * * @param key * the key of the property to fetch. * @return the value of the Security property associated with --- 337,352 ---- int max = providers.size (); for (int i = 0; i < max; i++) { ! p = (Provider) providers.elementAt(i); ! if (p.getName().equals(name)) ! return p; } return null; } /** * Returns the value associated with a Security propery. ! * * @param key * the key of the property to fetch. * @return the value of the Security property associated with *************** public final class Security *** 372,378 **** /** * Sets or changes a designated Security property to a designated value. ! * * @param key * the name of the property to set. * @param datum --- 372,378 ---- /** * Sets or changes a designated Security property to a designated value. ! * * @param key * the name of the property to set. * @param datum *************** public final class Security *** 399,405 **** * For a given service (e.g. Signature, MessageDigest, etc...) this * method returns the {@link Set} of all available algorithm names (instances * of {@link String}, from all currently installed {@link Provider}s. ! * * @param serviceName * the case-insensitive name of a service (e.g. Signature, * MessageDigest, etc). --- 399,405 ---- * For a given service (e.g. Signature, MessageDigest, etc...) this * method returns the {@link Set} of all available algorithm names (instances * of {@link String}, from all currently installed {@link Provider}s. ! * * @param serviceName * the case-insensitive name of a service (e.g. Signature, * MessageDigest, etc). *************** public final class Security *** 441,461 **** * Returns an array of currently installed {@link Provider}s, ordered * according to their installation preference order, which satisfy a given * selection criterion. ! * *

            This implementation recognizes a selection criterion written in * one of two following forms:

            ! * *
              *
            • <crypto_service>.<algorithm_or_type>: Where * crypto_service is a case-insensitive string, similar to what has * been described in the {@link #getAlgorithms(String)} method, and * algorithm_or_type is a known case-insensitive name of an * Algorithm, or one of its aliases. ! * *

              For example, "CertificateFactory.X.509" would return all the installed * {@link Provider}s which provide a CertificateFactory * implementation of X.509.

            • ! * *
            • <crypto_service>.<algorithm_or_type> <attribute_name>:<value>: * Where crypto_service is a case-insensitive string, similar to what * has been described in the {@link #getAlgorithms(String)} method, --- 441,461 ---- * Returns an array of currently installed {@link Provider}s, ordered * according to their installation preference order, which satisfy a given * selection criterion. ! * *

              This implementation recognizes a selection criterion written in * one of two following forms:

              ! * *
                *
              • <crypto_service>.<algorithm_or_type>: Where * crypto_service is a case-insensitive string, similar to what has * been described in the {@link #getAlgorithms(String)} method, and * algorithm_or_type is a known case-insensitive name of an * Algorithm, or one of its aliases. ! * *

                For example, "CertificateFactory.X.509" would return all the installed * {@link Provider}s which provide a CertificateFactory * implementation of X.509.

              • ! * *
              • <crypto_service>.<algorithm_or_type> <attribute_name>:<value>: * Where crypto_service is a case-insensitive string, similar to what * has been described in the {@link #getAlgorithms(String)} method, *************** public final class Security *** 463,475 **** * or one of its aliases, attribute_name is a case-insensitive * property name with no whitespace characters, and no dots, in-between, and * value is a {@link String} with no whitespace characters in-between. ! * *

                For example, "Signature.Sha1WithDSS KeySize:1024" would return all the * installed {@link Provider}s which declared their ability to provide * Signature services, using the Sha1WithDSS algorithm with * key sizes of 1024.

              • *
              ! * * @param filter * the selection criterion for selecting among the installed * {@link Provider}s. --- 463,475 ---- * or one of its aliases, attribute_name is a case-insensitive * property name with no whitespace characters, and no dots, in-between, and * value is a {@link String} with no whitespace characters in-between. ! * *

              For example, "Signature.Sha1WithDSS KeySize:1024" would return all the * installed {@link Provider}s which declared their ability to provide * Signature services, using the Sha1WithDSS algorithm with * key sizes of 1024.

            • *
            ! * * @param filter * the selection criterion for selecting among the installed * {@link Provider}s. *************** public final class Security *** 503,513 **** /** * Returns an array of currently installed {@link Provider}s which satisfy a * set of selection criteria. ! * *

            The selection criteria are defined in a {@link Map} where each * element specifies a selection querry. The Keys in this * {@link Map} must be in one of the two following forms:

            ! * *
              *
            • <crypto_service>.<algorithm_or_type>: Where * crypto_service is a case-insensitive string, similar to what has --- 503,513 ---- /** * Returns an array of currently installed {@link Provider}s which satisfy a * set of selection criteria. ! * *

              The selection criteria are defined in a {@link Map} where each * element specifies a selection querry. The Keys in this * {@link Map} must be in one of the two following forms:

              ! * *
                *
              • <crypto_service>.<algorithm_or_type>: Where * crypto_service is a case-insensitive string, similar to what has *************** public final class Security *** 517,523 **** * {@link Map} for such a Key MUST be the empty string. * {@link Provider}s which provide an implementation for the designated * service algorithm are included in the result.
              • ! * *
              • <crypto_service>.<algorithm_or_type> <attribute_name>: * Where crypto_service is a case-insensitive string, similar to what * has been described in the {@link #getAlgorithms(String)} method, --- 517,523 ---- * {@link Map} for such a Key MUST be the empty string. * {@link Provider}s which provide an implementation for the designated * service algorithm are included in the result.
              • ! * *
              • <crypto_service>.<algorithm_or_type> <attribute_name>: * Where crypto_service is a case-insensitive string, similar to what * has been described in the {@link #getAlgorithms(String)} method, *************** public final class Security *** 529,535 **** * declare the designated attribute_name and value for the * designated service algorithm are included in the result.
              • *
              ! * * @param filter * a {@link Map} of selection querries. * @return all currently installed {@link Provider}s which satisfy ALL the --- 529,535 ---- * declare the designated attribute_name and value for the * designated service algorithm are included in the result.
            • *
            ! * * @param filter * a {@link Map} of selection querries. * @return all currently installed {@link Provider}s which satisfy ALL the diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/Signature.java gcc-4.6.0/libjava/classpath/java/security/Signature.java *** gcc-4.5.2/libjava/classpath/java/security/Signature.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/Signature.java Tue Jan 11 19:46:05 2011 *************** import java.security.spec.AlgorithmParam *** 52,81 **** * Signature is used to provide an interface to digital signature * algorithms. Digital signatures provide authentication and data integrity of * digital data. ! * *

            The GNU provider provides the NIST standard DSA which uses DSA and SHA-1. * It can be specified by SHA/DSA, SHA-1/DSA or its OID. If the RSA signature * algorithm is provided then it could be MD2/RSA. MD5/RSA, or SHA-1/RSA. The * algorithm must be specified because there is no default.

            ! * *

            Signature provides implementation-independent algorithms which are * requested by the user through the getInstance() methods. It can * be requested by specifying just the algorithm name or by specifying both the * algorithm name and provider name.

            ! * *

            The three phases of using Signature are:

            ! * *
              *
            1. Initializing: *
                *
              • It must be initialized with a private key for signing.
              • *
              • It must be initialized with a public key for verifying.
              • * ! * *
              • Updating: *

                Update the bytes for signing or verifying with calls to update.

                *
              • ! * *
              • Signing or Verify the signature on the currently stored bytes by * calling sign or verify.
              • *
            --- 52,81 ---- * Signature is used to provide an interface to digital signature * algorithms. Digital signatures provide authentication and data integrity of * digital data. ! * *

            The GNU provider provides the NIST standard DSA which uses DSA and SHA-1. * It can be specified by SHA/DSA, SHA-1/DSA or its OID. If the RSA signature * algorithm is provided then it could be MD2/RSA. MD5/RSA, or SHA-1/RSA. The * algorithm must be specified because there is no default.

            ! * *

            Signature provides implementation-independent algorithms which are * requested by the user through the getInstance() methods. It can * be requested by specifying just the algorithm name or by specifying both the * algorithm name and provider name.

            ! * *

            The three phases of using Signature are:

            ! * *
              *
            1. Initializing: *
                *
              • It must be initialized with a private key for signing.
              • *
              • It must be initialized with a public key for verifying.
              • * ! * *
              • Updating: *

                Update the bytes for signing or verifying with calls to update.

                *
              • ! * *
              • Signing or Verify the signature on the currently stored bytes by * calling sign or verify.
              • *
            *************** public abstract class Signature extends *** 117,123 **** /** * Constructs a new Signature instance for a designated digital * signature algorithm. ! * * @param algorithm * the algorithm to use. */ --- 117,123 ---- /** * Constructs a new Signature instance for a designated digital * signature algorithm. ! * * @param algorithm * the algorithm to use. */ *************** public abstract class Signature extends *** 130,136 **** /** * Returns an instance of Signature representing the specified * signature. ! * * @param algorithm the algorithm to use. * @return a new instance repesenting the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any --- 130,136 ---- /** * Returns an instance of Signature representing the specified * signature. ! * * @param algorithm the algorithm to use. * @return a new instance repesenting the desired algorithm. * @throws NoSuchAlgorithmException if the algorithm is not implemented by any *************** public abstract class Signature extends *** 160,166 **** /** * Returns an instance of Signature representing the specified * signature from the named provider. ! * * @param algorithm the algorithm to use. * @param provider the name of the provider to use. * @return a new instance repesenting the desired algorithm. --- 160,166 ---- /** * Returns an instance of Signature representing the specified * signature from the named provider. ! * * @param algorithm the algorithm to use. * @param provider the name of the provider to use. * @return a new instance repesenting the desired algorithm. *************** public abstract class Signature extends *** 187,193 **** /** * Returns an instance of Signature representing the specified * signature from the specified {@link Provider}. ! * * @param algorithm the algorithm to use. * @param provider the {@link Provider} to use. * @return a new instance repesenting the desired algorithm. --- 187,193 ---- /** * Returns an instance of Signature representing the specified * signature from the specified {@link Provider}. ! * * @param algorithm the algorithm to use. * @param provider the {@link Provider} to use. * @return a new instance repesenting the desired algorithm. *************** public abstract class Signature extends *** 239,245 **** /** * Returns the {@link Provider} of this instance. ! * * @return the {@link Provider} of this instance. */ public final Provider getProvider() --- 239,245 ---- /** * Returns the {@link Provider} of this instance. ! * * @return the {@link Provider} of this instance. */ public final Provider getProvider() *************** public abstract class Signature extends *** 249,255 **** /** * Initializes this instance with the public key for verification purposes. ! * * @param publicKey * the public key to verify with. * @throws InvalidKeyException --- 249,255 ---- /** * Initializes this instance with the public key for verification purposes. ! * * @param publicKey * the public key to verify with. * @throws InvalidKeyException *************** public abstract class Signature extends *** 264,274 **** /** * Verify a signature with a designated {@link Certificate}. This is a FIPS * 140-1 compatible method since it verifies a signature with a certificate. ! * *

            If the {@link Certificate} is an X.509 one, has a KeyUsage * parameter and that parameter indicates this key is not to be used for * signing then an exception is thrown.

            ! * * @param certificate * a {@link Certificate} containing a public key to verify with. * @throws InvalidKeyException if the key is invalid. --- 264,274 ---- /** * Verify a signature with a designated {@link Certificate}. This is a FIPS * 140-1 compatible method since it verifies a signature with a certificate. ! * *

            If the {@link Certificate} is an X.509 one, has a KeyUsage * parameter and that parameter indicates this key is not to be used for * signing then an exception is thrown.

            ! * * @param certificate * a {@link Certificate} containing a public key to verify with. * @throws InvalidKeyException if the key is invalid. *************** public abstract class Signature extends *** 290,296 **** /** * Initializes this class with the private key for signing purposes. ! * * @param privateKey * the private key to sign with. * @throws InvalidKeyException --- 290,296 ---- /** * Initializes this class with the private key for signing purposes. ! * * @param privateKey * the private key to sign with. * @throws InvalidKeyException *************** public abstract class Signature extends *** 305,311 **** /** * Initializes this class with the private key and source of randomness for * signing purposes. ! * * @param privateKey * the private key to sign with. * @param random --- 305,311 ---- /** * Initializes this class with the private key and source of randomness for * signing purposes. ! * * @param privateKey * the private key to sign with. * @param random *************** public abstract class Signature extends *** 323,329 **** /** * Returns the signature bytes of all the data fed to this instance. The * format of the output depends on the underlying signature algorithm. ! * * @return the signature bytes. * @throws SignatureException * if the engine is not properly initialized. --- 323,329 ---- /** * Returns the signature bytes of all the data fed to this instance. The * format of the output depends on the underlying signature algorithm. ! * * @return the signature bytes. * @throws SignatureException * if the engine is not properly initialized. *************** public abstract class Signature extends *** 340,354 **** * Generates signature bytes of all the data fed to this instance and stores * it in the designated array. The format of the result depends on the * underlying signature algorithm. ! * *

            After calling this method, the instance is reset to its initial state * and can then be used to generate additional signatures.

            ! * *

            IMPLEMENTATION NOTE: Neither this method nor the GNU provider * will return partial digests. If len is less than the * signature length, this method will throw a {@link SignatureException}. If * it is greater than or equal then it is ignored.

            ! * * @param outbuf * array of bytes of where to store the resulting signature bytes. * @param offset --- 340,354 ---- * Generates signature bytes of all the data fed to this instance and stores * it in the designated array. The format of the result depends on the * underlying signature algorithm. ! * *

            After calling this method, the instance is reset to its initial state * and can then be used to generate additional signatures.

            ! * *

            IMPLEMENTATION NOTE: Neither this method nor the GNU provider * will return partial digests. If len is less than the * signature length, this method will throw a {@link SignatureException}. If * it is greater than or equal then it is ignored.

            ! * * @param outbuf * array of bytes of where to store the resulting signature bytes. * @param offset *************** public abstract class Signature extends *** 371,377 **** /** * Verifies a designated signature. ! * * @param signature * the signature bytes to verify. * @return true if verified, false otherwise. --- 371,377 ---- /** * Verifies a designated signature. ! * * @param signature * the signature bytes to verify. * @return true if verified, false otherwise. *************** public abstract class Signature extends *** 389,395 **** /** * Verifies a designated signature. ! * * @param signature * the signature bytes to verify. * @param offset --- 389,395 ---- /** * Verifies a designated signature. ! * * @param signature * the signature bytes to verify. * @param offset *************** public abstract class Signature extends *** 427,433 **** /** * Updates the data to be signed or verified with the specified byte. ! * * @param b * the byte to update with. * @throws SignatureException --- 427,433 ---- /** * Updates the data to be signed or verified with the specified byte. ! * * @param b * the byte to update with. * @throws SignatureException *************** public abstract class Signature extends *** 443,449 **** /** * Updates the data to be signed or verified with the specified bytes. ! * * @param data * the array of bytes to use. * @throws SignatureException --- 443,449 ---- /** * Updates the data to be signed or verified with the specified bytes. ! * * @param data * the array of bytes to use. * @throws SignatureException *************** public abstract class Signature extends *** 459,465 **** /** * Updates the data to be signed or verified with the specified bytes. ! * * @param data * an array of bytes to use. * @param off --- 459,465 ---- /** * Updates the data to be signed or verified with the specified bytes. ! * * @param data * an array of bytes to use. * @param off *************** public abstract class Signature extends *** 477,487 **** else throw new SignatureException(); } ! /** * Update this signature with the {@link java.nio.Buffer#remaining()} * bytes of the input buffer. ! * * @param input The input buffer. * @throws SignatureException If this instance was not properly * initialized. --- 477,487 ---- else throw new SignatureException(); } ! /** * Update this signature with the {@link java.nio.Buffer#remaining()} * bytes of the input buffer. ! * * @param input The input buffer. * @throws SignatureException If this instance was not properly * initialized. *************** public abstract class Signature extends *** 497,503 **** /** * Returns the name of the algorithm currently used. The names of algorithms * are usually SHA/DSA or SHA/RSA. ! * * @return name of algorithm. */ public final String getAlgorithm() --- 497,503 ---- /** * Returns the name of the algorithm currently used. The names of algorithms * are usually SHA/DSA or SHA/RSA. ! * * @return name of algorithm. */ public final String getAlgorithm() *************** public abstract class Signature extends *** 507,513 **** /** * Returns a rstring representation of this instance. ! * * @return a rstring representation of this instance. */ public String toString() --- 507,513 ---- /** * Returns a rstring representation of this instance. ! * * @return a rstring representation of this instance. */ public String toString() *************** public abstract class Signature extends *** 517,523 **** /** * Sets the specified algorithm parameter to the specified value. ! * * @param param * the parameter name. * @param value --- 517,523 ---- /** * Sets the specified algorithm parameter to the specified value. ! * * @param param * the parameter name. * @param value *************** public abstract class Signature extends *** 535,544 **** /** * Sets the signature engine with the specified {@link AlgorithmParameterSpec}. ! * *

            By default, and unless overriden by the concrete SPI, this method always * throws an {@link UnsupportedOperationException}.

            ! * * @param params * the parameters to use for intializing this instance. * @throws InvalidParameterException --- 535,544 ---- /** * Sets the signature engine with the specified {@link AlgorithmParameterSpec}. ! * *

            By default, and unless overriden by the concrete SPI, this method always * throws an {@link UnsupportedOperationException}.

            ! * * @param params * the parameters to use for intializing this instance. * @throws InvalidParameterException *************** public abstract class Signature extends *** 554,560 **** /** * Return the parameters of the algorithm used in this instance as an * {@link AlgorithmParameters}. ! * * @return the parameters used with this instance, or null if * this instance does not use any parameters. */ --- 554,560 ---- /** * Return the parameters of the algorithm used in this instance as an * {@link AlgorithmParameters}. ! * * @return the parameters used with this instance, or null if * this instance does not use any parameters. */ *************** public abstract class Signature extends *** 565,571 **** /** * Returns the value for the specified algorithm parameter. ! * * @param param * the parameter name. * @return the parameter value. --- 565,571 ---- /** * Returns the value for the specified algorithm parameter. ! * * @param param * the parameter name. * @return the parameter value. *************** public abstract class Signature extends *** 581,587 **** /** * Returns a clone of this instance. ! * * @return a clone of this instace. * @throws CloneNotSupportedException * if the implementation does not support cloning. --- 581,587 ---- /** * Returns a clone of this instance. ! * * @return a clone of this instace. * @throws CloneNotSupportedException * if the implementation does not support cloning. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/SignatureSpi.java gcc-4.6.0/libjava/classpath/java/security/SignatureSpi.java *** gcc-4.5.2/libjava/classpath/java/security/SignatureSpi.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/security/SignatureSpi.java Tue Jan 11 19:46:05 2011 *************** public abstract class SignatureSpi *** 65,71 **** /** * Initializes this instance with the public key for verification purposes. ! * * @param publicKey * the public key to verify with. * @throws InvalidKeyException --- 65,71 ---- /** * Initializes this instance with the public key for verification purposes. ! * * @param publicKey * the public key to verify with. * @throws InvalidKeyException *************** public abstract class SignatureSpi *** 76,82 **** /** * Initializes this instance with the private key for signing purposes. ! * * @param privateKey * the private key to sign with. * @throws InvalidKeyException --- 76,82 ---- /** * Initializes this instance with the private key for signing purposes. ! * * @param privateKey * the private key to sign with. * @throws InvalidKeyException *************** public abstract class SignatureSpi *** 88,96 **** /** * Initializes this instance with the private key and source of randomness for * signing purposes. ! * *

            This method cannot be abstract for backward compatibility reasons.

            ! * * @param privateKey * the private key to sign with. * @param random --- 88,96 ---- /** * Initializes this instance with the private key and source of randomness for * signing purposes. ! * *

            This method cannot be abstract for backward compatibility reasons.

            ! * * @param privateKey * the private key to sign with. * @param random *************** public abstract class SignatureSpi *** 108,114 **** /** * Updates the data to be signed or verified with the specified byte. ! * * @param b * byte to update with. * @throws SignatureException --- 108,114 ---- /** * Updates the data to be signed or verified with the specified byte. ! * * @param b * byte to update with. * @throws SignatureException *************** public abstract class SignatureSpi *** 118,124 **** /** * Updates the data to be signed or verified with the specified bytes. ! * * @param b * the array of bytes to use. * @param off --- 118,124 ---- /** * Updates the data to be signed or verified with the specified bytes. ! * * @param b * the array of bytes to use. * @param off *************** public abstract class SignatureSpi *** 134,140 **** /** * Update this signature with the {@link java.nio.Buffer#remaining()} * bytes of the given buffer. ! * * @param input The input buffer. * @throws IllegalStateException if the engine is not properly initialized. */ --- 134,140 ---- /** * Update this signature with the {@link java.nio.Buffer#remaining()} * bytes of the given buffer. ! * * @param input The input buffer. * @throws IllegalStateException if the engine is not properly initialized. */ *************** public abstract class SignatureSpi *** 155,165 **** } } } ! /** * Returns the signature bytes of all the data fed to this instance. The * format of the output depends on the underlying signature algorithm. ! * * @return the signature bytes. * @throws SignatureException * if the engine is not properly initialized. --- 155,165 ---- } } } ! /** * Returns the signature bytes of all the data fed to this instance. The * format of the output depends on the underlying signature algorithm. ! * * @return the signature bytes. * @throws SignatureException * if the engine is not properly initialized. *************** public abstract class SignatureSpi *** 170,185 **** * Generates signature bytes of all the data fed to this instance and stores * the result in the designated array. The format of the output depends on * the underlying signature algorithm. ! * *

            This method cannot be abstract for backward compatibility reasons. * After calling this method, the signature is reset to its initial state and * can be used to generate additional signatures.

            ! * *

            IMPLEMENTATION NOTE:: Neither this method nor the GNU provider * will return partial digests. If len is less than the * signature length, this method will throw a {@link SignatureException}. If * it is greater than or equal then it is ignored.

            ! * * @param outbuf * the array of bytes to store the result in. * @param offset --- 170,185 ---- * Generates signature bytes of all the data fed to this instance and stores * the result in the designated array. The format of the output depends on * the underlying signature algorithm. ! * *

            This method cannot be abstract for backward compatibility reasons. * After calling this method, the signature is reset to its initial state and * can be used to generate additional signatures.

            ! * *

            IMPLEMENTATION NOTE:: Neither this method nor the GNU provider * will return partial digests. If len is less than the * signature length, this method will throw a {@link SignatureException}. If * it is greater than or equal then it is ignored.

            ! * * @param outbuf * the array of bytes to store the result in. * @param offset *************** public abstract class SignatureSpi *** 204,210 **** /** * Verifies a designated signature. ! * * @param sigBytes * the signature bytes to verify. * @return true if verified, false otherwise. --- 204,210 ---- /** * Verifies a designated signature. ! * * @param sigBytes * the signature bytes to verify. * @return true if verified, false otherwise. *************** public abstract class SignatureSpi *** 219,225 **** * Convenience method which calls the method with the same name and one * argument after copying the designated bytes into a temporary byte array. * Subclasses may override this method for performance reasons. ! * * @param sigBytes * the array of bytes to use. * @param offset --- 219,225 ---- * Convenience method which calls the method with the same name and one * argument after copying the designated bytes into a temporary byte array. * Subclasses may override this method for performance reasons. ! * * @param sigBytes * the array of bytes to use. * @param offset *************** public abstract class SignatureSpi *** 240,246 **** /** * Sets the specified algorithm parameter to the specified value. ! * * @param param * the parameter name. * @param value --- 240,246 ---- /** * Sets the specified algorithm parameter to the specified value. ! * * @param param * the parameter name. * @param value *************** public abstract class SignatureSpi *** 255,265 **** /** * Sets the signature engine with the specified {@link AlgorithmParameterSpec}. ! * *

            This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

            ! * * @param params * the parameters. * @throws InvalidParameterException --- 255,265 ---- /** * Sets the signature engine with the specified {@link AlgorithmParameterSpec}. ! * *

            This method cannot be abstract for backward compatibility reasons. By * default it always throws {@link UnsupportedOperationException} unless * overridden.

            ! * * @param params * the parameters. * @throws InvalidParameterException *************** public abstract class SignatureSpi *** 278,284 **** * implementations to return the appropriate {@link AlgorithmParameters} for * this signature engine (or null when that engine does not use * any parameters. ! * * @return the parameters used with this signature engine, or * null if it does not use any parameters. * @throws UnsupportedOperationException --- 278,284 ---- * implementations to return the appropriate {@link AlgorithmParameters} for * this signature engine (or null when that engine does not use * any parameters. ! * * @return the parameters used with this signature engine, or * null if it does not use any parameters. * @throws UnsupportedOperationException *************** public abstract class SignatureSpi *** 291,297 **** /** * Returns the value for the specified algorithm parameter. ! * * @param param * the parameter name. * @return the parameter value. --- 291,297 ---- /** * Returns the value for the specified algorithm parameter. ! * * @param param * the parameter name. * @return the parameter value. *************** public abstract class SignatureSpi *** 304,310 **** /** * Returns a clone of this instance. ! * * @return a clone of this instance. * @throws CloneNotSupportedException * if the implementation does not support cloning. --- 304,310 ---- /** * Returns a clone of this instance. ! * * @return a clone of this instance. * @throws CloneNotSupportedException * if the implementation does not support cloning. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/SignedObject.java gcc-4.6.0/libjava/classpath/java/security/SignedObject.java *** gcc-4.5.2/libjava/classpath/java/security/SignedObject.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/security/SignedObject.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 48,74 **** /** * SignedObject is used for storing runtime objects whose * integrity cannot be compromised without being detected. ! * *

            SignedObject contains a {@link Serializable} object which is * yet to be signed and a digital signature of that object.

            ! * *

            The signed copy is a "deep copy" (in serialized form) of an original * object. Any changes to that original instance are not reflected in the * enclosed copy inside this SignedObject.

            ! * *

            Several things to note are that, first there is no need to initialize the * signature engine as this class will handle that automatically. Second, * verification will only succeed if the public key corresponds to the private * key used to generate the digital signature inside this * SignedObject.

            ! * *

            For fexibility, the signature engine can be specified in the constructor * or the verify() method. Programmers wishing to verify * SignedObjects should be aware of the {@link Signature} engine * they use. A malicious or flawed {@link Signature} implementation may always * return true on verification thus circumventing the intended secrity check * provided by the SignedObject.

            ! * *

            The GNU security provider offers an implementation of the standard NIST * DSA which uses "DSA" and "SHA-1". It can be specified by "SHA/DSA", * "SHA-1/DSA" or its OID. If the RSA signature algorithm is provided then it --- 48,74 ---- /** * SignedObject is used for storing runtime objects whose * integrity cannot be compromised without being detected. ! * *

            SignedObject contains a {@link Serializable} object which is * yet to be signed and a digital signature of that object.

            ! * *

            The signed copy is a "deep copy" (in serialized form) of an original * object. Any changes to that original instance are not reflected in the * enclosed copy inside this SignedObject.

            ! * *

            Several things to note are that, first there is no need to initialize the * signature engine as this class will handle that automatically. Second, * verification will only succeed if the public key corresponds to the private * key used to generate the digital signature inside this * SignedObject.

            ! * *

            For fexibility, the signature engine can be specified in the constructor * or the verify() method. Programmers wishing to verify * SignedObjects should be aware of the {@link Signature} engine * they use. A malicious or flawed {@link Signature} implementation may always * return true on verification thus circumventing the intended secrity check * provided by the SignedObject.

            ! * *

            The GNU security provider offers an implementation of the standard NIST * DSA which uses "DSA" and "SHA-1". It can be specified by "SHA/DSA", * "SHA-1/DSA" or its OID. If the RSA signature algorithm is provided then it *************** public final class SignedObject implemen *** 94,100 **** * Constructs a new instance of SignedObject from a * {@link Serializable} object. The object is signed with a designated * private key and a signature engine. ! * * @param object * the object to sign. * @param signingKey --- 94,100 ---- * Constructs a new instance of SignedObject from a * {@link Serializable} object. The object is signed with a designated * private key and a signature engine. ! * * @param object * the object to sign. * @param signingKey *************** public final class SignedObject implemen *** 109,115 **** * if a signing error occurs. */ public SignedObject(Serializable object, PrivateKey signingKey, ! Signature signingEngine) throws IOException, InvalidKeyException, SignatureException { thealgorithm = signingEngine.getAlgorithm(); --- 109,115 ---- * if a signing error occurs. */ public SignedObject(Serializable object, PrivateKey signingKey, ! Signature signingEngine) throws IOException, InvalidKeyException, SignatureException { thealgorithm = signingEngine.getAlgorithm(); *************** public final class SignedObject implemen *** 130,136 **** /** * Returns the encapsulated object. The object is de-serialized before being * returned. ! * * @return the encapsulated object. * @throws IOException * if a de-serialization error occurs. --- 130,136 ---- /** * Returns the encapsulated object. The object is de-serialized before being * returned. ! * * @return the encapsulated object. * @throws IOException * if a de-serialization error occurs. *************** public final class SignedObject implemen *** 150,156 **** /** * Returns the signature bytes of the encapsulated object. ! * * @return the signature bytes of the encapsulated object. */ public byte[] getSignature() --- 150,156 ---- /** * Returns the signature bytes of the encapsulated object. ! * * @return the signature bytes of the encapsulated object. */ public byte[] getSignature() *************** public final class SignedObject implemen *** 161,167 **** /** * Returns the name of the signature algorithm. ! * * @return the name of the signature algorithm. */ public String getAlgorithm() --- 161,167 ---- /** * Returns the name of the signature algorithm. ! * * @return the name of the signature algorithm. */ public String getAlgorithm() *************** public final class SignedObject implemen *** 172,178 **** /** * Verifies the encapsulated digital signature by checking that it was * generated by the owner of a designated public key. ! * * @param verificationKey * the public key to use. * @param verificationEngine --- 172,178 ---- /** * Verifies the encapsulated digital signature by checking that it was * generated by the owner of a designated public key. ! * * @param verificationKey * the public key to use. * @param verificationEngine diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/Signer.java gcc-4.6.0/libjava/classpath/java/security/Signer.java *** gcc-4.5.2/libjava/classpath/java/security/Signer.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/security/Signer.java Tue Jan 11 19:46:05 2011 *************** public abstract class Signer extends Ide *** 58,64 **** /** * Constructs a new instance of Signer with the specified * identity name. ! * * @param name * the name of the identity to use. */ --- 58,64 ---- /** * Constructs a new instance of Signer with the specified * identity name. ! * * @param name * the name of the identity to use. */ *************** public abstract class Signer extends Ide *** 70,76 **** /** * Constructs a new instance of Signer with the specified * identity name and {@link IdentityScope}. ! * * @param name * the name of the the identity to use. * @param scope --- 70,76 ---- /** * Constructs a new instance of Signer with the specified * identity name and {@link IdentityScope}. ! * * @param name * the name of the the identity to use. * @param scope *************** public abstract class Signer extends Ide *** 86,92 **** /** * Returns the private key of this Signer. ! * * @returns the private key of this Signer. * @throws SecurityException * if a {@link SecurityManager} is installed which disallows this --- 86,92 ---- /** * Returns the private key of this Signer. ! * * @returns the private key of this Signer. * @throws SecurityException * if a {@link SecurityManager} is installed which disallows this *************** public abstract class Signer extends Ide *** 103,109 **** /** * Specifies the {@link KeyPair} associated with this Signer. ! * * @param pair * the {@link KeyPair} to use. * @throws InvalidParameterException --- 103,109 ---- /** * Specifies the {@link KeyPair} associated with this Signer. ! * * @param pair * the {@link KeyPair} to use. * @throws InvalidParameterException diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/acl/Acl.java gcc-4.6.0/libjava/classpath/java/security/acl/Acl.java *** gcc-4.5.2/libjava/classpath/java/security/acl/Acl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/acl/Acl.java Tue Jan 11 19:46:05 2011 *************** import java.util.Enumeration; *** 50,56 **** * denied, the ACL treats it as if it were never granted or denied. If * both a Principal and a Group to which the * Principal belongs have an ACL entry, the permissions for ! * the individual Principal take precedence over the * permissions of the Group if there is a conflict. *

            * Additionally, the ACL interface extends the Owner interface --- 50,56 ---- * denied, the ACL treats it as if it were never granted or denied. If * both a Principal and a Group to which the * Principal belongs have an ACL entry, the permissions for ! * the individual Principal take precedence over the * permissions of the Group if there is a conflict. *

            * Additionally, the ACL interface extends the Owner interface *************** public interface Acl extends Owner *** 94,100 **** * * @exception NotOwnerException If the caller is not an owner of this ACL. */ ! boolean addEntry(Principal caller, AclEntry entry) throws NotOwnerException; /** --- 94,100 ---- * * @exception NotOwnerException If the caller is not an owner of this ACL. */ ! boolean addEntry(Principal caller, AclEntry entry) throws NotOwnerException; /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/acl/AclEntry.java gcc-4.6.0/libjava/classpath/java/security/acl/AclEntry.java *** gcc-4.5.2/libjava/classpath/java/security/acl/AclEntry.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/acl/AclEntry.java Tue Jan 11 19:46:05 2011 *************** import java.util.Enumeration; *** 42,51 **** /** * This interface models an entry in an access control list (ACL). Java ! * ACL's consist of a list of entries, where each consists of a * Principal and a list of Permission's which * have been granted to that Principal. An ACL can also ! * be negative, which indicates that the list of * Permission's is a list of permissions that are not * granted to the Principal. A Principal can * have at most one regular (or positive) ACL entry and one negative --- 42,51 ---- /** * This interface models an entry in an access control list (ACL). Java ! * ACL's consist of a list of entries, where each consists of a * Principal and a list of Permission's which * have been granted to that Principal. An ACL can also ! * be negative, which indicates that the list of * Permission's is a list of permissions that are not * granted to the Principal. A Principal can * have at most one regular (or positive) ACL entry and one negative diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/acl/Group.java gcc-4.6.0/libjava/classpath/java/security/acl/Group.java *** gcc-4.5.2/libjava/classpath/java/security/acl/Group.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/acl/Group.java Tue Jan 11 19:46:05 2011 *************** public interface Group extends Principal *** 81,87 **** boolean isMember(Principal member); /** ! * This method returns a list of all members of the group as an * Enumeration. * * @return The list of all members of the group --- 81,87 ---- boolean isMember(Principal member); /** ! * This method returns a list of all members of the group as an * Enumeration. * * @return The list of all members of the group diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/acl/Owner.java gcc-4.6.0/libjava/classpath/java/security/acl/Owner.java *** gcc-4.5.2/libjava/classpath/java/security/acl/Owner.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/acl/Owner.java Tue Jan 11 19:46:05 2011 *************** public interface Owner *** 64,70 **** * * @exception NotOwnerException If the caller is not already an owner of this ACL */ ! boolean addOwner(Principal caller, Principal owner) throws NotOwnerException; /** --- 64,70 ---- * * @exception NotOwnerException If the caller is not already an owner of this ACL */ ! boolean addOwner(Principal caller, Principal owner) throws NotOwnerException; /** *************** public interface Owner *** 82,88 **** * @exception NotOwnerException If the caller is not already an owner of this ACL * @exception LastOwnerException If completing the operation would delete the last ACL owner */ ! boolean deleteOwner(Principal caller, Principal owner) throws NotOwnerException, LastOwnerException; /** --- 82,88 ---- * @exception NotOwnerException If the caller is not already an owner of this ACL * @exception LastOwnerException If completing the operation would delete the last ACL owner */ ! boolean deleteOwner(Principal caller, Principal owner) throws NotOwnerException, LastOwnerException; /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CRL.java gcc-4.6.0/libjava/classpath/java/security/cert/CRL.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CRL.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/CRL.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.security.cert; *** 43,53 **** have different formats but the same general use. They all serve as lists of revoked certificates and can be queried for a given certificate. ! Specialized CRLs extend this class. ! @author Mark Benvenuto ! @since JDK 1.2 */ public abstract class CRL --- 43,53 ---- have different formats but the same general use. They all serve as lists of revoked certificates and can be queried for a given certificate. ! Specialized CRLs extend this class. ! @author Mark Benvenuto ! @since JDK 1.2 */ public abstract class CRL *************** public abstract class CRL *** 59,65 **** Creates a new CRL for the specified type. An example is "X.509". ! @param type the standard name for the CRL type. */ protected CRL(String type) { --- 59,65 ---- Creates a new CRL for the specified type. An example is "X.509". ! @param type the standard name for the CRL type. */ protected CRL(String type) { *************** public abstract class CRL *** 90,96 **** @param cert A certificate to check if it is revoked @return true if the certificate is revoked, ! false otherwise. */ public abstract boolean isRevoked(Certificate cert); --- 90,96 ---- @param cert A certificate to check if it is revoked @return true if the certificate is revoked, ! false otherwise. */ public abstract boolean isRevoked(Certificate cert); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CRLSelector.java gcc-4.6.0/libjava/classpath/java/security/cert/CRLSelector.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CRLSelector.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/CRLSelector.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertPathBuilder.java gcc-4.6.0/libjava/classpath/java/security/cert/CertPathBuilder.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertPathBuilder.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertPathBuilder.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class CertPathBuilder *** 116,122 **** /** * Returns an instance of a named CertPathBuilder from the * first provider that implements it. ! * * @param algorithm The name of the CertPathBuilder to create. * @return The new instance. * @throws NoSuchAlgorithmException If no installed provider implements the --- 116,122 ---- /** * Returns an instance of a named CertPathBuilder from the * first provider that implements it. ! * * @param algorithm The name of the CertPathBuilder to create. * @return The new instance. * @throws NoSuchAlgorithmException If no installed provider implements the *************** public class CertPathBuilder *** 146,152 **** /** * Returns an instance of a named CertPathBuilder from a named * provider. ! * * @param algorithm The name of the CertPathBuilder to create. * @param provider The name of the provider to use. * @return The new instance. --- 146,152 ---- /** * Returns an instance of a named CertPathBuilder from a named * provider. ! * * @param algorithm The name of the CertPathBuilder to create. * @param provider The name of the provider to use. * @return The new instance. *************** public class CertPathBuilder *** 171,177 **** /** * Returns an instance of a named CertPathBuilder from the * specified provider. ! * * @param algorithm The name of the CertPathBuilder to create. * @param provider The provider to use. * @return The new instance. --- 171,177 ---- /** * Returns an instance of a named CertPathBuilder from the * specified provider. ! * * @param algorithm The name of the CertPathBuilder to create. * @param provider The provider to use. * @return The new instance. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertPathBuilderResult.java gcc-4.6.0/libjava/classpath/java/security/cert/CertPathBuilderResult.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertPathBuilderResult.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertPathBuilderResult.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.security.cert; *** 47,63 **** */ public interface CertPathBuilderResult extends Cloneable { ! /** * Creates a copy of this builder result. * * @return The copy. */ ! Object clone(); /** * Get the certificate path that was built. * * @retrn The certificate path. */ ! CertPath getCertPath(); } --- 47,63 ---- */ public interface CertPathBuilderResult extends Cloneable { ! /** * Creates a copy of this builder result. * * @return The copy. */ ! Object clone(); /** * Get the certificate path that was built. * * @retrn The certificate path. */ ! CertPath getCertPath(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertPathValidator.java gcc-4.6.0/libjava/classpath/java/security/cert/CertPathValidator.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertPathValidator.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertPathValidator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class CertPathValidator { *** 129,135 **** /** * Returns an instance of the given validator from the first provider that * implements it. ! * * @param algorithm The name of the algorithm to get. * @return The new instance. * @throws NoSuchAlgorithmException If no installed provider implements the --- 129,135 ---- /** * Returns an instance of the given validator from the first provider that * implements it. ! * * @param algorithm The name of the algorithm to get. * @return The new instance. * @throws NoSuchAlgorithmException If no installed provider implements the *************** public class CertPathValidator { *** 158,164 **** /** * Returns an instance of the given validator from the named provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The name of the provider from which to get the * implementation. --- 158,164 ---- /** * Returns an instance of the given validator from the named provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The name of the provider from which to get the * implementation. *************** public class CertPathValidator { *** 184,190 **** /** * Returns an instance of the given validator from the given provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The provider from which to get the implementation. * @return The new instance. --- 184,190 ---- /** * Returns an instance of the given validator from the given provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The provider from which to get the implementation. * @return The new instance. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertPathValidatorResult.java gcc-4.6.0/libjava/classpath/java/security/cert/CertPathValidatorResult.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertPathValidatorResult.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertPathValidatorResult.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertPathValidatorSpi.java gcc-4.6.0/libjava/classpath/java/security/cert/CertPathValidatorSpi.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertPathValidatorSpi.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertPathValidatorSpi.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertSelector.java gcc-4.6.0/libjava/classpath/java/security/cert/CertSelector.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertSelector.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertSelector.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertStore.java gcc-4.6.0/libjava/classpath/java/security/cert/CertStore.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertStore.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertStore.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class CertStore *** 128,134 **** /** * Returns an instance of the given certificate store type from the first * installed provider. ! * * @param type The type of CertStore to create. * @param params The parameters to initialize this cert store with. * @return The new instance. --- 128,134 ---- /** * Returns an instance of the given certificate store type from the first * installed provider. ! * * @param type The type of CertStore to create. * @param params The parameters to initialize this cert store with. * @return The new instance. *************** public class CertStore *** 161,167 **** /** * Returns an instance of the given certificate store type from a named * provider. ! * * @param type The type of CertStore to create. * @param params The parameters to initialize this cert store with. * @param provider The name of the provider to use. --- 161,167 ---- /** * Returns an instance of the given certificate store type from a named * provider. ! * * @param type The type of CertStore to create. * @param params The parameters to initialize this cert store with. * @param provider The name of the provider to use. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertStoreParameters.java gcc-4.6.0/libjava/classpath/java/security/cert/CertStoreParameters.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertStoreParameters.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertStoreParameters.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertStoreSpi.java gcc-4.6.0/libjava/classpath/java/security/cert/CertStoreSpi.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertStoreSpi.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertStoreSpi.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/Certificate.java gcc-4.6.0/libjava/classpath/java/security/cert/Certificate.java *** gcc-4.5.2/libjava/classpath/java/security/cert/Certificate.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/security/cert/Certificate.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.security.PublicKey; *** 49,66 **** import java.security.SignatureException; /** ! * The Certificate class is an abstract class used to manage * identity certificates. An identity certificate is a ! * combination of a principal and a public key which is ! * certified by another principal. This is the puprose of * Certificate Authorities (CA). ! * *

            This class is used to manage different types of certificates ! * but have important common puposes. Different types of * certificates like X.509 and OpenPGP share general certificate * functions (like encoding and verifying) and information like * public keys. ! * *

            X.509, OpenPGP, and SDSI can be implemented by subclassing this * class even though they differ in storage methods and information * stored. --- 49,66 ---- import java.security.SignatureException; /** ! * The Certificate class is an abstract class used to manage * identity certificates. An identity certificate is a ! * combination of a principal and a public key which is ! * certified by another principal. This is the puprose of * Certificate Authorities (CA). ! * *

            This class is used to manage different types of certificates ! * but have important common puposes. Different types of * certificates like X.509 and OpenPGP share general certificate * functions (like encoding and verifying) and information like * public keys. ! * *

            X.509, OpenPGP, and SDSI can be implemented by subclassing this * class even though they differ in storage methods and information * stored. *************** import java.security.SignatureException; *** 74,80 **** public abstract class Certificate implements Serializable { private static final long serialVersionUID = -3585440601605666277L; ! private String type; /** --- 74,80 ---- public abstract class Certificate implements Serializable { private static final long serialVersionUID = -3585440601605666277L; ! private String type; /** *************** public abstract class Certificate implem *** 111,129 **** { if( other instanceof Certificate ) { try { ! Certificate x = (Certificate) other; ! if( getEncoded().length != x.getEncoded().length ) ! return false; ! byte[] b1 = getEncoded(); ! byte[] b2 = x.getEncoded(); ! for( int i = 0; i < b1.length; i++ ) ! if( b1[i] != b2[i] ) ! return false; ! } catch( CertificateEncodingException cee ) { ! return false; } return true; } --- 111,129 ---- { if( other instanceof Certificate ) { try { ! Certificate x = (Certificate) other; ! if( getEncoded().length != x.getEncoded().length ) ! return false; ! byte[] b1 = getEncoded(); ! byte[] b2 = x.getEncoded(); ! for( int i = 0; i < b1.length; i++ ) ! if( b1[i] != b2[i] ) ! return false; ! } catch( CertificateEncodingException cee ) { ! return false; } return true; } *************** public abstract class Certificate implem *** 154,160 **** /** Verifies that this Certificate was properly signed with the ! PublicKey that corresponds to its private key. @param key PublicKey to verify with --- 154,160 ---- /** Verifies that this Certificate was properly signed with the ! PublicKey that corresponds to its private key. @param key PublicKey to verify with *************** public abstract class Certificate implem *** 174,180 **** /** Verifies that this Certificate was properly signed with the PublicKey that corresponds to its private key and uses ! the signature engine provided by the provider. @param key PublicKey to verify with @param sigProvider Provider to use for signature algorithm --- 174,180 ---- /** Verifies that this Certificate was properly signed with the PublicKey that corresponds to its private key and uses ! the signature engine provided by the provider. @param key PublicKey to verify with @param sigProvider Provider to use for signature algorithm *************** public abstract class Certificate implem *** 186,192 **** @throws SignatureException signature error */ public abstract void verify(PublicKey key, ! String sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, --- 186,192 ---- @throws SignatureException signature error */ public abstract void verify(PublicKey key, ! String sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, *************** public abstract class Certificate implem *** 251,257 **** /** From JDK1.4. */ private static final long serialVersionUID = -8563758940495660020L; ! /** The certificate type, e.g. "X.509". */ private String type; --- 251,257 ---- /** From JDK1.4. */ private static final long serialVersionUID = -8563758940495660020L; ! /** The certificate type, e.g. "X.509". */ private String type; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertificateFactory.java gcc-4.6.0/libjava/classpath/java/security/cert/CertificateFactory.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertificateFactory.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertificateFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class CertificateFactory *** 88,94 **** /** * Returns an instance of a CertificateFactory representing the * specified certificate factory type. ! * * @param type The type of certificate factory to create. * @return A CertificateFactory of the desired type. * @throws CertificateException If the type of certificate factory is not --- 88,94 ---- /** * Returns an instance of a CertificateFactory representing the * specified certificate factory type. ! * * @param type The type of certificate factory to create. * @return A CertificateFactory of the desired type. * @throws CertificateException If the type of certificate factory is not *************** public class CertificateFactory *** 118,124 **** /** * Returns an instance of a CertificateFactory representing the * specified certificate factory type from the named provider. ! * * @param type The type of certificate factory to create. * @param provider The name of the provider to use. * @return A CertificateFactory for the desired type. --- 118,124 ---- /** * Returns an instance of a CertificateFactory representing the * specified certificate factory type from the named provider. ! * * @param type The type of certificate factory to create. * @param provider The name of the provider to use. * @return A CertificateFactory for the desired type. *************** public class CertificateFactory *** 130,136 **** * type is an empty string. */ public static final CertificateFactory getInstance(String type, ! String provider) throws CertificateException, NoSuchProviderException { if (provider == null) --- 130,136 ---- * type is an empty string. */ public static final CertificateFactory getInstance(String type, ! String provider) throws CertificateException, NoSuchProviderException { if (provider == null) *************** public class CertificateFactory *** 144,150 **** /** * Returns an instance of a CertificateFactory representing the * specified certificate factory type from the designated provider. ! * * @param type The type of certificate factory to create. * @param provider The provider from which to get the implementation. * @return A CertificateFactory for the desired type. --- 144,150 ---- /** * Returns an instance of a CertificateFactory representing the * specified certificate factory type from the designated provider. ! * * @param type The type of certificate factory to create. * @param provider The provider from which to get the implementation. * @return A CertificateFactory for the desired type. *************** public class CertificateFactory *** 213,222 **** * Ex: A X.509 CertificateFactory should return X509Certificate. * *

            For X.509 certificates, the certificate in inStream must be ! * DER encoded and supplied in binary or printable (Base64) ! * encoding. If the certificate is in Base64 encoding, it must be ! * bounded by -----BEGINCERTIFICATE-----, and ! * -----END CERTIFICATE-----. * * @param inStream An input stream containing the certificate data. * @return A certificate initialized from the decoded InputStream data. --- 213,222 ---- * Ex: A X.509 CertificateFactory should return X509Certificate. * *

            For X.509 certificates, the certificate in inStream must be ! * DER encoded and supplied in binary or printable (Base64) ! * encoding. If the certificate is in Base64 encoding, it must be ! * bounded by -----BEGINCERTIFICATE-----, and ! * -----END CERTIFICATE-----. * * @param inStream An input stream containing the certificate data. * @return A certificate initialized from the decoded InputStream data. *************** public class CertificateFactory *** 230,245 **** } /** ! * Returns a collection of certificates that were read from the ! * input stream. It may be empty, have only one, or have * multiple certificates. * * For a X.509 certificate factory, the stream may contain a ! * single DER encoded certificate or a PKCS#7 certificate ! * chain. This is a PKCS#7 SignedData object with the ! * most significant field being certificates. If no * CRLs are present, then an empty collection is returned. ! * * @param inStream An input stream containing the certificate data. * @return A collection of certificates initialized from the decoded * InputStream data. --- 230,245 ---- } /** ! * Returns a collection of certificates that were read from the ! * input stream. It may be empty, have only one, or have * multiple certificates. * * For a X.509 certificate factory, the stream may contain a ! * single DER encoded certificate or a PKCS#7 certificate ! * chain. This is a PKCS#7 SignedData object with the ! * most significant field being certificates. If no * CRLs are present, then an empty collection is returned. ! * * @param inStream An input stream containing the certificate data. * @return A collection of certificates initialized from the decoded * InputStream data. *************** public class CertificateFactory *** 278,285 **** * from the InputStream. * *

            For a X.509 certificate factory, the stream may contain a ! * single DER encoded CRL or a PKCS#7 CRL set. This is a ! * PKCS#7 SignedData object with the most significant * field being crls. If no CRLs are present, then an * empty collection is returned. * --- 278,285 ---- * from the InputStream. * *

            For a X.509 certificate factory, the stream may contain a ! * single DER encoded CRL or a PKCS#7 CRL set. This is a ! * PKCS#7 SignedData object with the most significant * field being crls. If no CRLs are present, then an * empty collection is returned. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CertificateFactorySpi.java gcc-4.6.0/libjava/classpath/java/security/cert/CertificateFactorySpi.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CertificateFactorySpi.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/cert/CertificateFactorySpi.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.List; *** 47,61 **** /** CertificateFactorySpi is the abstract class Service Provider Interface (SPI) for the CertificateFactory class. A provider ! must implement all the abstract methods if they wish to supply a certificate factory for a particular certificate type. Ex: X.509 ! Certificate factories are used to generate certificates and certificate revocation lists (CRL) from their encoding. ! @since 1.2 ! @author Mark Benvenuto */ public abstract class CertificateFactorySpi --- 47,61 ---- /** CertificateFactorySpi is the abstract class Service Provider Interface (SPI) for the CertificateFactory class. A provider ! must implement all the abstract methods if they wish to supply a certificate factory for a particular certificate type. Ex: X.509 ! Certificate factories are used to generate certificates and certificate revocation lists (CRL) from their encoding. ! @since 1.2 ! @author Mark Benvenuto */ public abstract class CertificateFactorySpi *************** public abstract class CertificateFactory *** 85,94 **** Ex: A X.509 CertificateFactory should return X509Certificate. For X.509 certificates, the certificate in inStream must be ! DER encoded and supplied in binary or printable (Base64) ! encoding. If the certificate is in Base64 encoding, it must be ! bounded by -----BEGIN CERTIFICATE-----, and ! -----END CERTIFICATE-----. @param inStream an input stream containing the certificate data --- 85,94 ---- Ex: A X.509 CertificateFactory should return X509Certificate. For X.509 certificates, the certificate in inStream must be ! DER encoded and supplied in binary or printable (Base64) ! encoding. If the certificate is in Base64 encoding, it must be ! bounded by -----BEGIN CERTIFICATE-----, and ! -----END CERTIFICATE-----. @param inStream an input stream containing the certificate data *************** public abstract class CertificateFactory *** 100,118 **** throws CertificateException; /** ! Returns a collection of certificates that were read from the ! input stream. It may be empty, have only one, or have multiple certificates. For a X.509 certificate factory, the stream may contain a ! single DER encoded certificate or a PKCS#7 certificate ! chain. This is a PKCS#7 SignedData object with the ! most significant field being certificates. If no CRLs are present, then an empty collection is returned. ! @param inStream an input stream containing the certificates ! @return a collection of certificates initialized with the InputStream data. @throws CertificateException Certificate parsing error --- 100,118 ---- throws CertificateException; /** ! Returns a collection of certificates that were read from the ! input stream. It may be empty, have only one, or have multiple certificates. For a X.509 certificate factory, the stream may contain a ! single DER encoded certificate or a PKCS#7 certificate ! chain. This is a PKCS#7 SignedData object with the ! most significant field being certificates. If no CRLs are present, then an empty collection is returned. ! @param inStream an input stream containing the certificates ! @return a collection of certificates initialized with the InputStream data. @throws CertificateException Certificate parsing error *************** public abstract class CertificateFactory *** 145,158 **** from the InputStream. For a X.509 certificate factory, the stream may contain a ! single DER encoded CRL or a PKCS#7 CRL set. This is a ! PKCS#7 SignedData object with the most significant field being crls. If no CRLs are present, then an empty collection is returned. @param inStream an input stream containing the CRLs ! @return a collection of CRLs initialized with the InputStream data. @throws CRLException CRL parsing error --- 145,158 ---- from the InputStream. For a X.509 certificate factory, the stream may contain a ! single DER encoded CRL or a PKCS#7 CRL set. This is a ! PKCS#7 SignedData object with the most significant field being crls. If no CRLs are present, then an empty collection is returned. @param inStream an input stream containing the CRLs ! @return a collection of CRLs initialized with the InputStream data. @throws CRLException CRL parsing error *************** public abstract class CertificateFactory *** 222,225 **** throw new UnsupportedOperationException("not implemented"); } } - --- 222,224 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/CollectionCertStoreParameters.java gcc-4.6.0/libjava/classpath/java/security/cert/CollectionCertStoreParameters.java *** gcc-4.5.2/libjava/classpath/java/security/cert/CollectionCertStoreParameters.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/cert/CollectionCertStoreParameters.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/LDAPCertStoreParameters.java gcc-4.6.0/libjava/classpath/java/security/cert/LDAPCertStoreParameters.java *** gcc-4.5.2/libjava/classpath/java/security/cert/LDAPCertStoreParameters.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/LDAPCertStoreParameters.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/PKIXBuilderParameters.java gcc-4.6.0/libjava/classpath/java/security/cert/PKIXBuilderParameters.java *** gcc-4.5.2/libjava/classpath/java/security/cert/PKIXBuilderParameters.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/cert/PKIXBuilderParameters.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java gcc-4.6.0/libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java *** gcc-4.5.2/libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/PKIXCertPathChecker.java gcc-4.6.0/libjava/classpath/java/security/cert/PKIXCertPathChecker.java *** gcc-4.5.2/libjava/classpath/java/security/cert/PKIXCertPathChecker.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/cert/PKIXCertPathChecker.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/PKIXCertPathValidatorResult.java gcc-4.6.0/libjava/classpath/java/security/cert/PKIXCertPathValidatorResult.java *** gcc-4.5.2/libjava/classpath/java/security/cert/PKIXCertPathValidatorResult.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/PKIXCertPathValidatorResult.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/PKIXParameters.java gcc-4.6.0/libjava/classpath/java/security/cert/PKIXParameters.java *** gcc-4.5.2/libjava/classpath/java/security/cert/PKIXParameters.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/cert/PKIXParameters.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/PolicyNode.java gcc-4.6.0/libjava/classpath/java/security/cert/PolicyNode.java *** gcc-4.5.2/libjava/classpath/java/security/cert/PolicyNode.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/cert/PolicyNode.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/PolicyQualifierInfo.java gcc-4.6.0/libjava/classpath/java/security/cert/PolicyQualifierInfo.java *** gcc-4.5.2/libjava/classpath/java/security/cert/PolicyQualifierInfo.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/cert/PolicyQualifierInfo.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/X509CRL.java gcc-4.6.0/libjava/classpath/java/security/cert/X509CRL.java *** gcc-4.5.2/libjava/classpath/java/security/cert/X509CRL.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/security/cert/X509CRL.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import javax.security.auth.x500.X500Prin *** 56,103 **** time stamped entries which indicate which lists have been revoked. The list is signed by a Certificate Authority (CA) and made publically available in a repository. ! ! Each revoked certificate in the CRL is identified by its ! certificate serial number. When a piece of code uses a ! certificate, the certificates validity is checked by validating its signature and determing that it is not only a recently acquired CRL. The recently aquired CRL is depends on the local policy in affect. The CA issues ! a new CRL periodically and entries are removed as the certificate expiration date is reached ! ! A description of the X.509 v2 CRL follows below from rfc2459. ! "The X.509 v2 CRL syntax is as follows. For signature calculation, the data that is to be signed is ASN.1 DER encoded. ASN.1 DER encoding is a tag, length, value encoding system for each element. ! ! CertificateList ::= SEQUENCE { ! tbsCertList TBSCertList, ! signatureAlgorithm AlgorithmIdentifier, ! signatureValue BIT STRING } ! ! TBSCertList ::= SEQUENCE { ! version Version OPTIONAL, -- if present, shall be v2 ! signature AlgorithmIdentifier, ! issuer Name, ! thisUpdate Time, ! nextUpdate Time OPTIONAL, ! revokedCertificates SEQUENCE OF SEQUENCE { ! userCertificate CertificateSerialNumber, ! revocationDate Time, ! crlEntryExtensions Extensions OPTIONAL ! -- if present, shall be v2 ! } OPTIONAL, ! crlExtensions [0] EXPLICIT Extensions OPTIONAL ! -- if present, shall be v2 ! }" ! @author Mark Benvenuto ! @since 1.2 */ public abstract class X509CRL extends CRL implements X509Extension { --- 56,103 ---- time stamped entries which indicate which lists have been revoked. The list is signed by a Certificate Authority (CA) and made publically available in a repository. ! ! Each revoked certificate in the CRL is identified by its ! certificate serial number. When a piece of code uses a ! certificate, the certificates validity is checked by validating its signature and determing that it is not only a recently acquired CRL. The recently aquired CRL is depends on the local policy in affect. The CA issues ! a new CRL periodically and entries are removed as the certificate expiration date is reached ! ! A description of the X.509 v2 CRL follows below from rfc2459. ! "The X.509 v2 CRL syntax is as follows. For signature calculation, the data that is to be signed is ASN.1 DER encoded. ASN.1 DER encoding is a tag, length, value encoding system for each element. ! ! CertificateList ::= SEQUENCE { ! tbsCertList TBSCertList, ! signatureAlgorithm AlgorithmIdentifier, ! signatureValue BIT STRING } ! ! TBSCertList ::= SEQUENCE { ! version Version OPTIONAL, -- if present, shall be v2 ! signature AlgorithmIdentifier, ! issuer Name, ! thisUpdate Time, ! nextUpdate Time OPTIONAL, ! revokedCertificates SEQUENCE OF SEQUENCE { ! userCertificate CertificateSerialNumber, ! revocationDate Time, ! crlEntryExtensions Extensions OPTIONAL ! -- if present, shall be v2 ! } OPTIONAL, ! crlExtensions [0] EXPLICIT Extensions OPTIONAL ! -- if present, shall be v2 ! }" ! @author Mark Benvenuto ! @since 1.2 */ public abstract class X509CRL extends CRL implements X509Extension { *************** public abstract class X509CRL extends CR *** 123,141 **** { if( other instanceof X509CRL ) { try { ! X509CRL x = (X509CRL) other; ! if( getEncoded().length != x.getEncoded().length ) ! return false; ! byte[] b1 = getEncoded(); ! byte[] b2 = x.getEncoded(); ! for( int i = 0; i < b1.length; i++ ) ! if( b1[i] != b2[i] ) ! return false; ! } catch( CRLException crle ) { ! return false; } return true; } --- 123,141 ---- { if( other instanceof X509CRL ) { try { ! X509CRL x = (X509CRL) other; ! if( getEncoded().length != x.getEncoded().length ) ! return false; ! byte[] b1 = getEncoded(); ! byte[] b2 = x.getEncoded(); ! for( int i = 0; i < b1.length; i++ ) ! if( b1[i] != b2[i] ) ! return false; ! } catch( CRLException crle ) { ! return false; } return true; } *************** public abstract class X509CRL extends CR *** 164,170 **** /** Verifies that this CRL was properly signed with the ! PublicKey that corresponds to its private key. @param key PublicKey to verify with --- 164,170 ---- /** Verifies that this CRL was properly signed with the ! PublicKey that corresponds to its private key. @param key PublicKey to verify with *************** public abstract class X509CRL extends CR *** 184,190 **** /** Verifies that this CRL was properly signed with the PublicKey that corresponds to its private key and uses ! the signature engine provided by the provider. @param key PublicKey to verify with @param sigProvider Provider to use for signature algorithm --- 184,190 ---- /** Verifies that this CRL was properly signed with the PublicKey that corresponds to its private key and uses ! the signature engine provided by the provider. @param key PublicKey to verify with @param sigProvider Provider to use for signature algorithm *************** public abstract class X509CRL extends CR *** 196,202 **** @throws SignatureException signature error */ public abstract void verify(PublicKey key, ! String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, --- 196,202 ---- @throws SignatureException signature error */ public abstract void verify(PublicKey key, ! String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, *************** public abstract class X509CRL extends CR *** 221,227 **** /** Returns the issuer (issuer distinguished name) of the CRL. ! The issuer is the entity who signed and issued the Certificate Revocation List. The ASN.1 DER encoding is: --- 221,227 ---- /** Returns the issuer (issuer distinguished name) of the CRL. ! The issuer is the entity who signed and issued the Certificate Revocation List. The ASN.1 DER encoding is: *************** public abstract class X509CRL extends CR *** 307,313 **** public abstract Set getRevokedCertificates(); /** ! Returns the DER ASN.1 encoded tbsCertList which is the basic information of the list and associated certificates in the encoded state. See top for more information. --- 307,313 ---- public abstract Set getRevokedCertificates(); /** ! Returns the DER ASN.1 encoded tbsCertList which is the basic information of the list and associated certificates in the encoded state. See top for more information. *************** public abstract class X509CRL extends CR *** 323,329 **** /** ! Returns the signature for the CRL. The ASN.1 DER encoding is: --- 323,329 ---- /** ! Returns the signature for the CRL. The ASN.1 DER encoding is: *************** public abstract class X509CRL extends CR *** 334,340 **** public abstract byte[] getSignature(); /** ! Returns the signature algorithm used to sign the CRL. An examples is "SHA-1/DSA". The ASN.1 DER encoding is: --- 334,340 ---- public abstract byte[] getSignature(); /** ! Returns the signature algorithm used to sign the CRL. An examples is "SHA-1/DSA". The ASN.1 DER encoding is: *************** public abstract class X509CRL extends CR *** 371,379 **** /** Returns the AlgorithmParameters in the encoded form ! for the signature algorithm used. ! If access to the parameters is need, create an instance of AlgorithmParameters. @return byte array containing algorithm parameters, null --- 371,379 ---- /** Returns the AlgorithmParameters in the encoded form ! for the signature algorithm used. ! If access to the parameters is need, create an instance of AlgorithmParameters. @return byte array containing algorithm parameters, null diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/X509CRLEntry.java gcc-4.6.0/libjava/classpath/java/security/cert/X509CRLEntry.java *** gcc-4.5.2/libjava/classpath/java/security/cert/X509CRLEntry.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/cert/X509CRLEntry.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.math.BigInteger; *** 42,49 **** import java.util.Date; /** ! Abstract class for entries in the CRL (Certificate Revocation ! List). The ASN.1 definition for revokedCertificates is revokedCertificates SEQUENCE OF SEQUENCE { userCertificate CertificateSerialNumber, --- 42,49 ---- import java.util.Date; /** ! Abstract class for entries in the CRL (Certificate Revocation ! List). The ASN.1 definition for revokedCertificates is revokedCertificates SEQUENCE OF SEQUENCE { userCertificate CertificateSerialNumber, *************** import java.util.Date; *** 52,75 **** -- if present, shall be v2 } OPTIONAL, ! CertificateSerialNumber ::= INTEGER ! Time ::= CHOICE { utcTime UTCTime, ! generalTime GeneralizedTime } ! Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension ! Extension ::= SEQUENCE { ! extnID OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING } - - For more information consult rfc2459. ! @author Mark Benvenuto ! @since JDK 1.2 */ public abstract class X509CRLEntry implements X509Extension { --- 52,75 ---- -- if present, shall be v2 } OPTIONAL, ! CertificateSerialNumber ::= INTEGER ! Time ::= CHOICE { utcTime UTCTime, ! generalTime GeneralizedTime } ! Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension ! Extension ::= SEQUENCE { ! extnID OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING } ! For more information consult rfc2459. ! @author Mark Benvenuto ! ! @since JDK 1.2 */ public abstract class X509CRLEntry implements X509Extension { *************** public abstract class X509CRLEntry imple *** 93,111 **** { if( other instanceof X509CRLEntry ) { try { ! X509CRLEntry xe = (X509CRLEntry) other; ! if( getEncoded().length != xe.getEncoded().length ) ! return false; ! byte[] b1 = getEncoded(); ! byte[] b2 = xe.getEncoded(); ! for( int i = 0; i < b1.length; i++ ) ! if( b1[i] != b2[i] ) ! return false; ! } catch( CRLException crle ) { ! return false; } return true; } --- 93,111 ---- { if( other instanceof X509CRLEntry ) { try { ! X509CRLEntry xe = (X509CRLEntry) other; ! if( getEncoded().length != xe.getEncoded().length ) ! return false; ! byte[] b1 = getEncoded(); ! byte[] b2 = xe.getEncoded(); ! for( int i = 0; i < b1.length; i++ ) ! if( b1[i] != b2[i] ) ! return false; ! } catch( CRLException crle ) { ! return false; } return true; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/X509CertSelector.java gcc-4.6.0/libjava/classpath/java/security/cert/X509CertSelector.java *** gcc-4.5.2/libjava/classpath/java/security/cert/X509CertSelector.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/security/cert/X509CertSelector.java Tue Jan 11 19:46:05 2011 *************** public class X509CertSelector implements *** 102,108 **** return (oid != null && oid.length > 2 && (oid[0] >= 0 && oid[0] <= 2) && (oid[1] >= 0 && oid[1] <= 39)); } ! private static GeneralName makeName(int id, String name) throws IOException { byte[] nameBytes = null; --- 102,108 ---- return (oid != null && oid.length > 2 && (oid[0] >= 0 && oid[0] <= 2) && (oid[1] >= 0 && oid[1] <= 39)); } ! private static GeneralName makeName(int id, String name) throws IOException { byte[] nameBytes = null; *************** public class X509CertSelector implements *** 114,135 **** case uniformResourceIdentifier: nameBytes = name.getBytes("ASCII"); break; ! case iPAddress: InetAddress addr = InetAddress.getByName(name); nameBytes = addr.getAddress(); break; ! case registeredId: OID oid = new OID(name); nameBytes = oid.getDER(); break; ! case directoryName: X500Principal xname = new X500Principal(name); nameBytes = xname.getEncoded(); break; ! case ediPartyName: case x400Address: case otherName: --- 114,135 ---- case uniformResourceIdentifier: nameBytes = name.getBytes("ASCII"); break; ! case iPAddress: InetAddress addr = InetAddress.getByName(name); nameBytes = addr.getAddress(); break; ! case registeredId: OID oid = new OID(name); nameBytes = oid.getDER(); break; ! case directoryName: X500Principal xname = new X500Principal(name); nameBytes = xname.getEncoded(); break; ! case ediPartyName: case x400Address: case otherName: *************** public class X509CertSelector implements *** 138,144 **** } return new GeneralName(kind, nameBytes); } ! private int basicConstraints; private X509Certificate cert; private BigInteger serialNo; --- 138,144 ---- } return new GeneralName(kind, nameBytes); } ! private int basicConstraints; private X509Certificate cert; private BigInteger serialNo; *************** public class X509CertSelector implements *** 171,177 **** /** * Add a name to match in the NameConstraints extension. The argument is * the DER-encoded bytes of a GeneralName structure. ! * * See the method {@link #addSubjectAlternativeName(int, byte[])} for the * format of the GeneralName structure. * --- 171,177 ---- /** * Add a name to match in the NameConstraints extension. The argument is * the DER-encoded bytes of a GeneralName structure. ! * * See the method {@link #addSubjectAlternativeName(int, byte[])} for the * format of the GeneralName structure. * *************** public class X509CertSelector implements *** 208,216 **** /** * Add a name, as DER-encoded bytes, to the subject alternative names * criterion. ! * * The name is a GeneralName structure, which has the ASN.1 format: ! * *

                GeneralName ::= CHOICE {
                  otherName                       [0]     OtherName,
            --- 208,216 ----
                /**
                 * Add a name, as DER-encoded bytes, to the subject alternative names
                 * criterion.
            !    *
                 * The name is a GeneralName structure, which has the ASN.1 format:
            !    *
                 * 
                GeneralName ::= CHOICE {
                  otherName                       [0]     OtherName,
            *************** public class X509CertSelector implements
            *** 242,248 ****
                 * only recognize certain types of name that have convenient string
                 * encodings. For robustness, you should use the {@link
                 *  #addSubjectAlternativeName(int, byte[])} method whenever possible.
            !    * 
                 * This method can only decode certain name kinds of names as strings.
                 *
                 * @param id The type of name this is. Must be in the range [0,8].
            --- 242,248 ----
                 * only recognize certain types of name that have convenient string
                 * encodings. For robustness, you should use the {@link
                 *  #addSubjectAlternativeName(int, byte[])} method whenever possible.
            !    *
                 * This method can only decode certain name kinds of names as strings.
                 *
                 * @param id The type of name this is. Must be in the range [0,8].
            *************** public class X509CertSelector implements
            *** 417,423 ****
                          n.add(name.name());
                          names.add(n);
                        }
            !         
                      return names;
                    }
                  return null;
            --- 417,423 ----
                          n.add(name.name());
                          names.add(n);
                        }
            ! 
                      return names;
                    }
                  return null;
            *************** public class X509CertSelector implements
            *** 735,741 ****
                              // ignored
                            }
                        }
            !         
                      if (policies == null)
                        return false;
                      if (!policies.getPolicies().containsAll(policy))
            --- 735,741 ----
                              // ignored
                            }
                        }
            ! 
                      if (policies == null)
                        return false;
                      if (!policies.getPolicies().containsAll(policy))
            *************** public class X509CertSelector implements
            *** 766,772 ****
                                }
                            }
                        }
            !         
                      if (nc == null)
                        return false;
              
            --- 766,772 ----
                                }
                            }
                        }
            ! 
                      if (nc == null)
                        return false;
              
            *************** public class X509CertSelector implements
            *** 956,973 ****
                {
                  // Check if the input is well-formed...
                  new NameConstraints(nameConstraints);
            !     
                  // But we just compare raw byte arrays.
                  this.nameConstraints = nameConstraints != null
                    ? (byte[]) nameConstraints.clone() : null;
                }
            !   
                /**
            !    * Sets the pathToNames criterion. The argument is a collection of 
                 * pairs, the first element of which is an {@link Integer} giving
                 * the ID of the name, and the second element is either a {@link String}
                 * or a byte array.
            !    * 
                 * See {@link #addPathToName(int, byte[])} and {@link #addPathToName(int, String)}
                 * for how these arguments are handled.
                 *
            --- 956,973 ----
                {
                  // Check if the input is well-formed...
                  new NameConstraints(nameConstraints);
            ! 
                  // But we just compare raw byte arrays.
                  this.nameConstraints = nameConstraints != null
                    ? (byte[]) nameConstraints.clone() : null;
                }
            ! 
                /**
            !    * Sets the pathToNames criterion. The argument is a collection of
                 * pairs, the first element of which is an {@link Integer} giving
                 * the ID of the name, and the second element is either a {@link String}
                 * or a byte array.
            !    *
                 * See {@link #addPathToName(int, byte[])} and {@link #addPathToName(int, String)}
                 * for how these arguments are handled.
                 *
            *************** public class X509CertSelector implements
            *** 1249,1255 ****
                  else
                    this.sigId = null;
                }
            !   
                public String toString()
                {
                  CPStringBuilder str = new CPStringBuilder(X509CertSelector.class.getName());
            --- 1249,1255 ----
                  else
                    this.sigId = null;
                }
            ! 
                public String toString()
                {
                  CPStringBuilder str = new CPStringBuilder(X509CertSelector.class.getName());
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/X509Certificate.java gcc-4.6.0/libjava/classpath/java/security/cert/X509Certificate.java
            *** gcc-4.5.2/libjava/classpath/java/security/cert/X509Certificate.java	Sun Jun  3 23:18:43 2007
            --- gcc-4.6.0/libjava/classpath/java/security/cert/X509Certificate.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** import java.util.List;
            *** 45,54 ****
              
              /**
               * X509Certificate is the abstract class for X.509 certificates.
            !  * This provides a stanard class interface for accessing all 
               * the attributes of X.509 certificates.
               *
            !  * 

            In June 1996, the basic X.509 v3 format was finished by * ISO/IEC and ANSI X.9. The ASN.1 DER format is below: * *

            --- 45,54 ----
              
              /**
               * X509Certificate is the abstract class for X.509 certificates.
            !  * This provides a stanard class interface for accessing all
               * the attributes of X.509 certificates.
               *
            !  * 

            In June 1996, the basic X.509 v3 format was finished by * ISO/IEC and ANSI X.9. The ASN.1 DER format is below: * *

            *************** import java.util.List;
            *** 58,79 ****
               *   signatureValue       BIT STRING  }
               * 
            * ! *

            These certificates are widely used in various Internet ! * protocols to support authentication. It is used in * Privacy Enhanced Mail (PEM), Transport Layer Security (TLS), * Secure Sockets Layer (SSL), code signing for trusted software * distribution, and Secure Electronic Transactions (SET). * ! *

            The certificates are managed and vouched for by ! * Certificate Authorities (CAs). CAs are companies or ! * groups that create certificates by placing the data in the * X.509 certificate format and signing it with their private * key. CAs serve as trusted third parties by certifying that * the person or group specified in the certificate is who ! * they say they are. * *

            The ASN.1 defintion for tbsCertificate is ! * *

               * TBSCertificate  ::=  SEQUENCE  {
               *   version         [0]  EXPLICIT Version DEFAULT v1,
            --- 58,79 ----
               *   signatureValue       BIT STRING  }
               * 
            * ! *

            These certificates are widely used in various Internet ! * protocols to support authentication. It is used in * Privacy Enhanced Mail (PEM), Transport Layer Security (TLS), * Secure Sockets Layer (SSL), code signing for trusted software * distribution, and Secure Electronic Transactions (SET). * ! *

            The certificates are managed and vouched for by ! * Certificate Authorities (CAs). CAs are companies or ! * groups that create certificates by placing the data in the * X.509 certificate format and signing it with their private * key. CAs serve as trusted third parties by certifying that * the person or group specified in the certificate is who ! * they say they are. * *

            The ASN.1 defintion for tbsCertificate is ! * *

               * TBSCertificate  ::=  SEQUENCE  {
               *   version         [0]  EXPLICIT Version DEFAULT v1,
            *************** import java.util.List;
            *** 116,122 ****
               *   critical    BOOLEAN DEFAULT FALSE,
               *   extnValue   OCTET STRING  }
               * 
            ! * * Certificates are created with the CertificateFactory. * *

            References: --- 116,122 ---- * critical BOOLEAN DEFAULT FALSE, * extnValue OCTET STRING } *

            ! * * Certificates are created with the CertificateFactory. * *

            References: *************** public abstract class X509Certificate *** 170,176 **** Consult rfc2459 for more information. @throws CertificateExpiredException if the certificate expired ! @throws CertificateNotYetValidException if the certificate is not yet valid */ public abstract void checkValidity() --- 170,176 ---- Consult rfc2459 for more information. @throws CertificateExpiredException if the certificate expired ! @throws CertificateNotYetValidException if the certificate is not yet valid */ public abstract void checkValidity() *************** public abstract class X509Certificate *** 178,191 **** CertificateNotYetValidException; /** ! Checks the validity of the X.509 certificate for the ! specified time and date. It is valid if the specified ! date and time are within the period specified by the certificate. ! @throws CertificateExpiredException if the certificate expired based on the date ! @throws CertificateNotYetValidException if the certificate is not yet valid based on the date */ public abstract void checkValidity(Date date) --- 178,191 ---- CertificateNotYetValidException; /** ! Checks the validity of the X.509 certificate for the ! specified time and date. It is valid if the specified ! date and time are within the period specified by the certificate. ! @throws CertificateExpiredException if the certificate expired based on the date ! @throws CertificateNotYetValidException if the certificate is not yet valid based on the date */ public abstract void checkValidity(Date date) *************** public abstract class X509Certificate *** 203,215 **** Consult rfc2459 for more information. ! @return version number of certificate */ public abstract int getVersion(); /** Gets the serial number for serial Number in ! this Certifcate. It must be a unique number unique other serial numbers from the granting CA. The ASN.1 DER encoding is: --- 203,215 ---- Consult rfc2459 for more information. ! @return version number of certificate */ public abstract int getVersion(); /** Gets the serial number for serial Number in ! this Certifcate. It must be a unique number unique other serial numbers from the granting CA. The ASN.1 DER encoding is: *************** public abstract class X509Certificate *** 225,232 **** public abstract BigInteger getSerialNumber(); /** ! Returns the issuer (issuer distinguished name) of the ! Certificate. The issuer is the entity who signed and issued the Certificate. The ASN.1 DER encoding is: --- 225,232 ---- public abstract BigInteger getSerialNumber(); /** ! Returns the issuer (issuer distinguished name) of the ! Certificate. The issuer is the entity who signed and issued the Certificate. The ASN.1 DER encoding is: *************** public abstract class X509Certificate *** 263,269 **** public abstract Principal getIssuerDN(); /** ! Returns the subject (subject distinguished name) of the Certificate. The subject is the entity who the Certificate identifies. --- 263,269 ---- public abstract Principal getIssuerDN(); /** ! Returns the subject (subject distinguished name) of the Certificate. The subject is the entity who the Certificate identifies. *************** public abstract class X509Certificate *** 331,337 **** public abstract byte[] getSignature(); /** ! Returns the signature algorithm used to sign the CRL. An examples is "SHA-1/DSA". The ASN.1 DER encoding is: --- 331,337 ---- public abstract byte[] getSignature(); /** ! Returns the signature algorithm used to sign the CRL. An examples is "SHA-1/DSA". The ASN.1 DER encoding is: *************** public abstract class X509Certificate *** 370,378 **** /** Returns the AlgorithmParameters in the encoded form ! for the signature algorithm used. ! If access to the parameters is need, create an instance of AlgorithmParameters. @return byte array containing algorithm parameters, null --- 370,378 ---- /** Returns the AlgorithmParameters in the encoded form ! for the signature algorithm used. ! If access to the parameters is need, create an instance of AlgorithmParameters. @return byte array containing algorithm parameters, null *************** public abstract class X509Certificate *** 390,396 **** -- If present, version shall be v2 or v3 UniqueIdentifier ::= BIT STRING ! Consult rfc2459 for more information. @return bit representation of issuerUniqueID --- 390,396 ---- -- If present, version shall be v2 or v3 UniqueIdentifier ::= BIT STRING ! Consult rfc2459 for more information. @return bit representation of issuerUniqueID *************** public abstract class X509Certificate *** 406,412 **** -- If present, version shall be v2 or v3 UniqueIdentifier ::= BIT STRING ! Consult rfc2459 for more information. @return bit representation of subjectUniqueID --- 406,412 ---- -- If present, version shall be v2 or v3 UniqueIdentifier ::= BIT STRING ! Consult rfc2459 for more information. @return bit representation of subjectUniqueID *************** public abstract class X509Certificate *** 414,420 **** public abstract boolean[] getSubjectUniqueID(); /** ! Returns a boolean array representing the KeyUsage extension for the certificate. The KeyUsage (OID = 2.5.29.15) defines the purpose of the key in the certificate. --- 414,420 ---- public abstract boolean[] getSubjectUniqueID(); /** ! Returns a boolean array representing the KeyUsage extension for the certificate. The KeyUsage (OID = 2.5.29.15) defines the purpose of the key in the certificate. *************** public abstract class X509Certificate *** 441,455 **** /** Returns the certificate constraints path length from the ! critical BasicConstraints extension, (OID = 2.5.29.19). ! The basic constraints extensions is used to determine if ! the subject of the certificate is a Certificate Authority (CA) ! and how deep the certification path may exist. The pathLenConstraint only takes affect if cA ! is set to true. "A value of zero indicates that only an end-entity certificate may follow in the path." (rfc2459) ! The ASN.1 DER encoding is: id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 } --- 441,455 ---- /** Returns the certificate constraints path length from the ! critical BasicConstraints extension, (OID = 2.5.29.19). ! The basic constraints extensions is used to determine if ! the subject of the certificate is a Certificate Authority (CA) ! and how deep the certification path may exist. The pathLenConstraint only takes affect if cA ! is set to true. "A value of zero indicates that only an end-entity certificate may follow in the path." (rfc2459) ! The ASN.1 DER encoding is: id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 } *************** public abstract class X509Certificate *** 477,483 **** * *

            The ASN.1 definition for this extension is: * ! *

             
                 * ExtendedKeyUsage ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
                 *
                 * KeyPurposeId ::= OBJECT IDENTIFIER
            --- 477,483 ----
                 *
                 * 

            The ASN.1 definition for this extension is: * ! *

                 * ExtendedKeyUsage ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
                 *
                 * KeyPurposeId ::= OBJECT IDENTIFIER
            *************** public abstract class X509Certificate
            *** 575,581 ****
                {
                  throw new UnsupportedOperationException();
                }
            !  
                /**
                 * Returns the X.500 distinguished name of this certificate's issuer.
                 *
            --- 575,581 ----
                {
                  throw new UnsupportedOperationException();
                }
            ! 
                /**
                 * Returns the X.500 distinguished name of this certificate's issuer.
                 *
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/cert/X509Extension.java gcc-4.6.0/libjava/classpath/java/security/cert/X509Extension.java
            *** gcc-4.5.2/libjava/classpath/java/security/cert/X509Extension.java	Tue Jan  9 19:58:05 2007
            --- gcc-4.6.0/libjava/classpath/java/security/cert/X509Extension.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** package java.security.cert;
            *** 40,76 ****
              import java.util.Set;
              
              /**
            ! 	Public interface for the X.509 Extension.
              
            ! 	This is used for X.509 v3 Certificates and CRL v2 (Certificate
            ! 	Revocation Lists) for managing attributes assoicated with
            ! 	Certificates, for managing the hierarchy of certificates,
            ! 	and for managing the distribution of CRL. This extension
            ! 	format is used to define private extensions.
              
            ! 	Each extensions for a certificate or CRL must be marked
            ! 	either critical or non-critical. If the certificate/CRL 
            ! 	system encounters a critical extension not recognized then 
            ! 	it must reject the certificate. A non-critical extension
            ! 	may be just ignored if not recognized.
              
              
            ! 	The ASN.1 definition for this class is: 
              
            ! 	 Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension
              
            ! 	 Extension  ::=  SEQUENCE  {
            ! 	     extnId        OBJECT IDENTIFIER,
            ! 	     critical      BOOLEAN DEFAULT FALSE,
            ! 	     extnValue     OCTET STRING
            ! 	                   -- contains a DER encoding of a value
            ! 	                   -- of the type registered for use with
            ! 	                   -- the extnId object identifier value
            ! 	 }
            !  	
            ! 	@author Mark Benvenuto
              
            ! 	@since 1.2
              */
              public interface X509Extension
              {
            --- 40,76 ----
              import java.util.Set;
              
              /**
            !         Public interface for the X.509 Extension.
              
            !         This is used for X.509 v3 Certificates and CRL v2 (Certificate
            !         Revocation Lists) for managing attributes assoicated with
            !         Certificates, for managing the hierarchy of certificates,
            !         and for managing the distribution of CRL. This extension
            !         format is used to define private extensions.
              
            !         Each extensions for a certificate or CRL must be marked
            !         either critical or non-critical. If the certificate/CRL
            !         system encounters a critical extension not recognized then
            !         it must reject the certificate. A non-critical extension
            !         may be just ignored if not recognized.
              
              
            !         The ASN.1 definition for this class is:
              
            !          Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension
              
            !          Extension  ::=  SEQUENCE  {
            !              extnId        OBJECT IDENTIFIER,
            !              critical      BOOLEAN DEFAULT FALSE,
            !              extnValue     OCTET STRING
            !                            -- contains a DER encoding of a value
            !                            -- of the type registered for use with
            !                            -- the extnId object identifier value
            !          }
              
            !         @author Mark Benvenuto
            ! 
            !         @since 1.2
              */
              public interface X509Extension
              {
            *************** public interface X509Extension
            *** 79,90 ****
                   Returns true if the certificate contains a critical extension
                   that is not supported.
              
            !      @return true if has unsupported extension, false otherwise	
                */
                boolean hasUnsupportedCriticalExtension();
              
                /**
            !      Returns a set of the CRITICAL extension OIDs from the 
                   certificate/CRL that the object implementing this interface
                   manages.
              
            --- 79,90 ----
                   Returns true if the certificate contains a critical extension
                   that is not supported.
              
            !      @return true if has unsupported extension, false otherwise
                */
                boolean hasUnsupportedCriticalExtension();
              
                /**
            !      Returns a set of the CRITICAL extension OIDs from the
                   certificate/CRL that the object implementing this interface
                   manages.
              
            *************** public interface X509Extension
            *** 94,100 ****
                Set getCriticalExtensionOIDs();
              
                /**
            !      Returns a set of the NON-CRITICAL extension OIDs from the 
                   certificate/CRL that the object implementing this interface
                   manages.
              
            --- 94,100 ----
                Set getCriticalExtensionOIDs();
              
                /**
            !      Returns a set of the NON-CRITICAL extension OIDs from the
                   certificate/CRL that the object implementing this interface
                   manages.
              
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/AlgorithmParameterSpec.java gcc-4.6.0/libjava/classpath/java/security/spec/AlgorithmParameterSpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/AlgorithmParameterSpec.java	Fri Sep 23 17:31:48 2005
            --- gcc-4.6.0/libjava/classpath/java/security/spec/AlgorithmParameterSpec.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** exception statement from your version. *
            *** 39,51 ****
              package java.security.spec;
              
              /**
            ! 	A transparent interface for Algorithm Parameter Specifications. 
            ! 	It contains no member functions. It is used to group
            ! 	algorithm parameter classes.
              
            ! 	@since JDK 1.2
              
            ! 	@author Mark Benvenuto
              */
              public interface AlgorithmParameterSpec
              {
            --- 39,51 ----
              package java.security.spec;
              
              /**
            !         A transparent interface for Algorithm Parameter Specifications.
            !         It contains no member functions. It is used to group
            !         algorithm parameter classes.
              
            !         @since JDK 1.2
              
            !         @author Mark Benvenuto
              */
              public interface AlgorithmParameterSpec
              {
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/DSAParameterSpec.java gcc-4.6.0/libjava/classpath/java/security/spec/DSAParameterSpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/DSAParameterSpec.java	Fri Sep 23 17:31:48 2005
            --- gcc-4.6.0/libjava/classpath/java/security/spec/DSAParameterSpec.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** public class DSAParameterSpec implements
            *** 62,80 ****
                 * @param q the sub-prime
                 * @param g the base
                 */
            !   public DSAParameterSpec(BigInteger p, BigInteger q, BigInteger g) 
                {
                  this.p = p;
                  this.q = q;
                  this.g = g;
                }
            !   
                /**
                 * Returns p for the DSA algorithm.
                 *
                 * @return Returns the requested BigInteger
                 */
            !   public BigInteger getP() 
                {
                  return this.p;
                }
            --- 62,80 ----
                 * @param q the sub-prime
                 * @param g the base
                 */
            !   public DSAParameterSpec(BigInteger p, BigInteger q, BigInteger g)
                {
                  this.p = p;
                  this.q = q;
                  this.g = g;
                }
            ! 
                /**
                 * Returns p for the DSA algorithm.
                 *
                 * @return Returns the requested BigInteger
                 */
            !   public BigInteger getP()
                {
                  return this.p;
                }
            *************** public class DSAParameterSpec implements
            *** 84,90 ****
                 *
                 * @return Returns the requested BigInteger
                 */
            !   public BigInteger getQ() 
                {
                  return this.q;
                }
            --- 84,90 ----
                 *
                 * @return Returns the requested BigInteger
                 */
            !   public BigInteger getQ()
                {
                  return this.q;
                }
            *************** public class DSAParameterSpec implements
            *** 98,101 ****
                {
                  return this.g;
                }
            ! }
            \ No newline at end of file
            --- 98,101 ----
                {
                  return this.g;
                }
            ! }
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/DSAPrivateKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/DSAPrivateKeySpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/DSAPrivateKeySpec.java	Fri Sep 23 17:31:48 2005
            --- gcc-4.6.0/libjava/classpath/java/security/spec/DSAPrivateKeySpec.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** package java.security.spec;
            *** 40,53 ****
              import java.math.BigInteger;
              
              /**
            ! 	DSA Private Key class Specification. Used to maintain the DSA
            ! 	Private Keys.
              
            ! 	@since JDK 1.2
              
            ! 	@author Mark Benvenuto
              */
            ! public class DSAPrivateKeySpec implements KeySpec 
              {
                private BigInteger x = null;
                private BigInteger p = null;
            --- 40,53 ----
              import java.math.BigInteger;
              
              /**
            !         DSA Private Key class Specification. Used to maintain the DSA
            !         Private Keys.
              
            !         @since JDK 1.2
              
            !         @author Mark Benvenuto
              */
            ! public class DSAPrivateKeySpec implements KeySpec
              {
                private BigInteger x = null;
                private BigInteger p = null;
            *************** public class DSAPrivateKeySpec implement
            *** 62,68 ****
                   @param q the sub-prime
                   @param g the base
                */
            !   public DSAPrivateKeySpec(BigInteger x, BigInteger p, BigInteger q, BigInteger g) 
                {
                  this.x = x;
                  this.p = p;
            --- 62,68 ----
                   @param q the sub-prime
                   @param g the base
                */
            !   public DSAPrivateKeySpec(BigInteger x, BigInteger p, BigInteger q, BigInteger g)
                {
                  this.x = x;
                  this.p = p;
            *************** public class DSAPrivateKeySpec implement
            *** 75,81 ****
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getX() 
                {
                  return this.x;
                }
            --- 75,81 ----
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getX()
                {
                  return this.x;
                }
            *************** public class DSAPrivateKeySpec implement
            *** 85,91 ****
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getP() 
                {
                  return this.p;
                }
            --- 85,91 ----
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getP()
                {
                  return this.p;
                }
            *************** public class DSAPrivateKeySpec implement
            *** 95,101 ****
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getQ() 
                {
                  return this.q;
                }
            --- 95,101 ----
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getQ()
                {
                  return this.q;
                }
            *************** public class DSAPrivateKeySpec implement
            *** 105,111 ****
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getG() 
                {
                  return this.g;
                }
            --- 105,111 ----
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getG()
                {
                  return this.g;
                }
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/DSAPublicKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/DSAPublicKeySpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/DSAPublicKeySpec.java	Fri Sep 23 17:31:48 2005
            --- gcc-4.6.0/libjava/classpath/java/security/spec/DSAPublicKeySpec.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** package java.security.spec;
            *** 40,53 ****
              import java.math.BigInteger;
              
              /**
            ! 	DSA Public Key class Specification. Used to maintain the DSA
            ! 	Public Keys.
              
            ! 	@since JDK 1.2
              
            ! 	@author Mark Benvenuto
              */
            ! public class DSAPublicKeySpec implements KeySpec 
              {
                private BigInteger y = null;
                private BigInteger p = null;
            --- 40,53 ----
              import java.math.BigInteger;
              
              /**
            !         DSA Public Key class Specification. Used to maintain the DSA
            !         Public Keys.
              
            !         @since JDK 1.2
              
            !         @author Mark Benvenuto
              */
            ! public class DSAPublicKeySpec implements KeySpec
              {
                private BigInteger y = null;
                private BigInteger p = null;
            *************** public class DSAPublicKeySpec implements
            *** 62,68 ****
                   @param q the sub-prime
                   @param g the base
                */
            !   public DSAPublicKeySpec(BigInteger y, BigInteger p, BigInteger q, BigInteger g) 
                {
                  this.y = y;
                  this.p = p;
            --- 62,68 ----
                   @param q the sub-prime
                   @param g the base
                */
            !   public DSAPublicKeySpec(BigInteger y, BigInteger p, BigInteger q, BigInteger g)
                {
                  this.y = y;
                  this.p = p;
            *************** public class DSAPublicKeySpec implements
            *** 75,81 ****
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getY() 
                {
                  return this.y;
                }
            --- 75,81 ----
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getY()
                {
                  return this.y;
                }
            *************** public class DSAPublicKeySpec implements
            *** 85,91 ****
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getP() 
                {
                  return this.p;
                }
            --- 85,91 ----
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getP()
                {
                  return this.p;
                }
            *************** public class DSAPublicKeySpec implements
            *** 95,101 ****
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getQ() 
                {
                  return this.q;
                }
            --- 95,101 ----
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getQ()
                {
                  return this.q;
                }
            *************** public class DSAPublicKeySpec implements
            *** 105,111 ****
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getG() 
                {
                  return this.g;
                }
            --- 105,111 ----
              
                   @return Returns the requested BigInteger
                */
            !   public BigInteger getG()
                {
                  return this.g;
                }
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/EncodedKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/EncodedKeySpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/EncodedKeySpec.java	Fri Sep 23 17:31:48 2005
            --- gcc-4.6.0/libjava/classpath/java/security/spec/EncodedKeySpec.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** exception statement from your version. *
            *** 39,50 ****
              package java.security.spec;
              
              /**
            ! 	Encoded Key Specification class which is used to store 
            ! 	byte encoded keys.
              
            ! 	@since JDK 1.2
              
            ! 	@author Mark Benvenuto
              */
              public abstract class EncodedKeySpec implements KeySpec
              {
            --- 39,50 ----
              package java.security.spec;
              
              /**
            !         Encoded Key Specification class which is used to store
            !         byte encoded keys.
              
            !         @since JDK 1.2
              
            !         @author Mark Benvenuto
              */
              public abstract class EncodedKeySpec implements KeySpec
              {
            *************** public abstract class EncodedKeySpec imp
            *** 56,62 ****
              
                   @param encodedKey A key to store
                */
            !   public EncodedKeySpec(byte[] encodedKey) 
                {
                  this.encodedKey = encodedKey;
                }
            --- 56,62 ----
              
                   @param encodedKey A key to store
                */
            !   public EncodedKeySpec(byte[] encodedKey)
                {
                  this.encodedKey = encodedKey;
                }
            *************** public abstract class EncodedKeySpec imp
            *** 66,72 ****
              
                   @returns the encoded key
                */
            !   public byte[] getEncoded() 
                {
                  return this.encodedKey;
                }
            --- 66,72 ----
              
                   @returns the encoded key
                */
            !   public byte[] getEncoded()
                {
                  return this.encodedKey;
                }
            *************** public abstract class EncodedKeySpec imp
            *** 75,82 ****
                   Returns the name of the key format used.
              
                   This name is the format such as "PKCS#8" or "X.509" which
            !      if it matches a Key class name of the same type can be 
            !      transformed using the apporiate KeyFactory. 
              
                   @return a string representing the name
                */
            --- 75,82 ----
                   Returns the name of the key format used.
              
                   This name is the format such as "PKCS#8" or "X.509" which
            !      if it matches a Key class name of the same type can be
            !      transformed using the apporiate KeyFactory.
              
                   @return a string representing the name
                */
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/InvalidParameterSpecException.java gcc-4.6.0/libjava/classpath/java/security/spec/InvalidParameterSpecException.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/InvalidParameterSpecException.java	Fri Sep 23 17:31:48 2005
            --- gcc-4.6.0/libjava/classpath/java/security/spec/InvalidParameterSpecException.java	Tue Jan 11 19:46:05 2011
            *************** public class InvalidParameterSpecExcepti
            *** 60,66 ****
                /**
                 * Constructs an InvalidParameterSpecException without a message string.
                 */
            !   public InvalidParameterSpecException() 
                {
                }
              
            --- 60,66 ----
                /**
                 * Constructs an InvalidParameterSpecException without a message string.
                 */
            !   public InvalidParameterSpecException()
                {
                }
              
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/KeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/KeySpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/KeySpec.java	Fri Sep 23 17:31:48 2005
            --- gcc-4.6.0/libjava/classpath/java/security/spec/KeySpec.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** exception statement from your version. *
            *** 39,52 ****
              package java.security.spec;
              
              /**
            ! 	A transparent interface for Key Specifications.
            ! 	It contains no member functions. It is used to group
            ! 	key classes.
              
            ! 	@since JDK 1.2
              
            ! 	@author Mark Benvenuto
              */
            ! public interface KeySpec 
              {
              }
            --- 39,52 ----
              package java.security.spec;
              
              /**
            !         A transparent interface for Key Specifications.
            !         It contains no member functions. It is used to group
            !         key classes.
              
            !         @since JDK 1.2
              
            !         @author Mark Benvenuto
              */
            ! public interface KeySpec
              {
              }
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/PKCS8EncodedKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/PKCS8EncodedKeySpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/PKCS8EncodedKeySpec.java	Fri Sep 23 17:31:48 2005
            --- gcc-4.6.0/libjava/classpath/java/security/spec/PKCS8EncodedKeySpec.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** exception statement from your version. *
            *** 39,50 ****
              package java.security.spec;
              
              /**
            ! 	PKCS8 Encoded Key Specification class which is used to store 
            ! 	"PKCS#8" byte encoded keys.
              
            ! 	@since JDK 1.2
              
            ! 	@author Mark Benvenuto
              */
              public class PKCS8EncodedKeySpec extends EncodedKeySpec
              {
            --- 39,50 ----
              package java.security.spec;
              
              /**
            !         PKCS8 Encoded Key Specification class which is used to store
            !         "PKCS#8" byte encoded keys.
              
            !         @since JDK 1.2
              
            !         @author Mark Benvenuto
              */
              public class PKCS8EncodedKeySpec extends EncodedKeySpec
              {
            *************** public class PKCS8EncodedKeySpec extends
            *** 59,67 ****
                }
              
                /**
            ! 	Gets the encoded key in byte format.
              
            ! 	@returns the encoded key
              */
                public byte[] getEncoded()
                {
            --- 59,67 ----
                }
              
                /**
            !         Gets the encoded key in byte format.
              
            !         @returns the encoded key
              */
                public byte[] getEncoded()
                {
            *************** public class PKCS8EncodedKeySpec extends
            *** 69,77 ****
                }
              
                /**
            ! 	Returns the name of the key format used which is "PKCS#8"
              
            ! 	@return a string representing the name
              */
                public final String getFormat()
                {
            --- 69,77 ----
                }
              
                /**
            !         Returns the name of the key format used which is "PKCS#8"
              
            !         @return a string representing the name
              */
                public final String getFormat()
                {
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/PSSParameterSpec.java gcc-4.6.0/libjava/classpath/java/security/spec/PSSParameterSpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/PSSParameterSpec.java	Fri Mar 10 21:46:48 2006
            --- gcc-4.6.0/libjava/classpath/java/security/spec/PSSParameterSpec.java	Tue Jan 11 19:46:05 2011
            *************** package java.security.spec;
            *** 40,46 ****
              /**
               * An implementation of {@link AlgorithmParameterSpec} for the RSA PSS encoding
               * scheme.
            !  * 
               * @since 1.4
               * @see AlgorithmParameterSpec
               * @see java.security.Signature
            --- 40,46 ----
              /**
               * An implementation of {@link AlgorithmParameterSpec} for the RSA PSS encoding
               * scheme.
            !  *
               * @since 1.4
               * @see AlgorithmParameterSpec
               * @see java.security.Signature
            *************** public class PSSParameterSpec implements
            *** 58,64 ****
                /**
                 * Construct a new instance of PSSParameterSpec given a salt
                 * length.
            !    * 
                 * @param saltLen
                 *          the length in bits of the salt.
                 * @throws IllegalArgumentException
            --- 58,64 ----
                /**
                 * Construct a new instance of PSSParameterSpec given a salt
                 * length.
            !    *
                 * @param saltLen
                 *          the length in bits of the salt.
                 * @throws IllegalArgumentException
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java gcc-4.6.0/libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java	Sat Jun 28 13:29:13 2008
            --- gcc-4.6.0/libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java	Tue Jan 11 19:46:05 2011
            *************** GNU Classpath is free software; you can 
            *** 7,13 ****
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            !  
              GNU Classpath 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
            --- 7,13 ----
              it under the terms of the GNU General Public License as published by
              the Free Software Foundation; either version 2, or (at your option)
              any later version.
            ! 
              GNU Classpath 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
            *************** public class RSAKeyGenParameterSpec impl
            *** 63,69 ****
                public static final BigInteger F4 = BigInteger.valueOf(65537L);
              
                /**
            !      Create a new RSAKeyGenParameterSpec to store the RSA key's keysize 
                   and public exponent
              
                   @param keysize Modulus size of key in bits
            --- 63,69 ----
                public static final BigInteger F4 = BigInteger.valueOf(65537L);
              
                /**
            !      Create a new RSAKeyGenParameterSpec to store the RSA key's keysize
                   and public exponent
              
                   @param keysize Modulus size of key in bits
            *************** public class RSAKeyGenParameterSpec impl
            *** 74,80 ****
                  this.keysize = keysize;
                  this.publicExponent = publicExponent;
                }
            !     
                /**
                   Return the size of the key.
              
            --- 74,80 ----
                  this.keysize = keysize;
                  this.publicExponent = publicExponent;
                }
            ! 
                /**
                   Return the size of the key.
              
            *************** public class RSAKeyGenParameterSpec impl
            *** 84,90 ****
                {
                  return keysize;
                }
            !     
                /**
                   Return the public exponent.
              
            --- 84,90 ----
                {
                  return keysize;
                }
            ! 
                /**
                   Return the public exponent.
              
            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java
            *** gcc-4.5.2/libjava/classpath/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java	Fri Mar 10 21:46:48 2006
            --- gcc-4.6.0/libjava/classpath/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java	Tue Jan 11 19:46:05 2011
            *************** public class RSAMultiPrimePrivateCrtKeyS
            *** 72,81 ****
                /**
                 * Constructs a new instance of RSAMultiPrimePrivateCrtKeySpec
                 * given the various PKCS#1 v2.1 parameters.
            !    * 
                 * 

            Note that otherPrimeInfo is cloned when constructing this * object.

            ! * * @param modulus * the modulus n. * @param publicExponent --- 72,81 ---- /** * Constructs a new instance of RSAMultiPrimePrivateCrtKeySpec * given the various PKCS#1 v2.1 parameters. ! * *

            Note that otherPrimeInfo is cloned when constructing this * object.

            ! * * @param modulus * the modulus n. * @param publicExponent diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/RSAOtherPrimeInfo.java gcc-4.6.0/libjava/classpath/java/security/spec/RSAOtherPrimeInfo.java *** gcc-4.5.2/libjava/classpath/java/security/spec/RSAOtherPrimeInfo.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/security/spec/RSAOtherPrimeInfo.java Tue Jan 11 19:46:05 2011 *************** public class RSAOtherPrimeInfo *** 61,67 **** /** * Constructs a new RSAOtherPrimeInfo given the PKCS#1 MPIs. ! * * @param prime * the prime factor of n. * @param primeExponent --- 61,67 ---- /** * Constructs a new RSAOtherPrimeInfo given the PKCS#1 MPIs. ! * * @param prime * the prime factor of n. * @param primeExponent diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/RSAPrivateCrtKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/RSAPrivateCrtKeySpec.java *** gcc-4.5.2/libjava/classpath/java/security/spec/RSAPrivateCrtKeySpec.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/spec/RSAPrivateCrtKeySpec.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.security.spec; *** 40,52 **** import java.math.BigInteger; /** ! RSA Private Certificate Key class Specification. Used to ! maintain the RSA Private Certificate Keys with the ! Chinese Remainder Theorem(CRT) as specified by PKCS#1. ! @since JDK 1.2 ! @author Mark Benvenuto */ public class RSAPrivateCrtKeySpec extends RSAPrivateKeySpec { --- 40,52 ---- import java.math.BigInteger; /** ! RSA Private Certificate Key class Specification. Used to ! maintain the RSA Private Certificate Keys with the ! Chinese Remainder Theorem(CRT) as specified by PKCS#1. ! @since JDK 1.2 ! @author Mark Benvenuto */ public class RSAPrivateCrtKeySpec extends RSAPrivateKeySpec { *************** public class RSAPrivateCrtKeySpec extend *** 71,83 **** @param crtCoefficient the CRT coefficient */ public RSAPrivateCrtKeySpec(BigInteger modulus, ! BigInteger publicExponent, ! BigInteger privateExponent, ! BigInteger primeP, ! BigInteger primeQ, ! BigInteger primeExponentP, ! BigInteger primeExponentQ, ! BigInteger crtCoefficient) { super( modulus, privateExponent); this.publicExponent = publicExponent; --- 71,83 ---- @param crtCoefficient the CRT coefficient */ public RSAPrivateCrtKeySpec(BigInteger modulus, ! BigInteger publicExponent, ! BigInteger privateExponent, ! BigInteger primeP, ! BigInteger primeQ, ! BigInteger primeExponentP, ! BigInteger primeExponentQ, ! BigInteger crtCoefficient) { super( modulus, privateExponent); this.publicExponent = publicExponent; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/RSAPrivateKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/RSAPrivateKeySpec.java *** gcc-4.5.2/libjava/classpath/java/security/spec/RSAPrivateKeySpec.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/spec/RSAPrivateKeySpec.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.security.spec; *** 40,51 **** import java.math.BigInteger; /** ! RSA Private Key class Specification. Used to maintain the RSA ! Private Keys. ! @since JDK 1.2 ! @author Mark Benvenuto */ public class RSAPrivateKeySpec implements KeySpec { --- 40,51 ---- import java.math.BigInteger; /** ! RSA Private Key class Specification. Used to maintain the RSA ! Private Keys. ! @since JDK 1.2 ! @author Mark Benvenuto */ public class RSAPrivateKeySpec implements KeySpec { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/RSAPublicKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/RSAPublicKeySpec.java *** gcc-4.5.2/libjava/classpath/java/security/spec/RSAPublicKeySpec.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/spec/RSAPublicKeySpec.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.security.spec; *** 40,51 **** import java.math.BigInteger; /** ! RSA Public Key class Specification. Used to maintain the RSA ! Public Keys. ! @since JDK 1.2 ! @author Mark Benvenuto */ public class RSAPublicKeySpec implements KeySpec { --- 40,51 ---- import java.math.BigInteger; /** ! RSA Public Key class Specification. Used to maintain the RSA ! Public Keys. ! @since JDK 1.2 ! @author Mark Benvenuto */ public class RSAPublicKeySpec implements KeySpec { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/security/spec/X509EncodedKeySpec.java gcc-4.6.0/libjava/classpath/java/security/spec/X509EncodedKeySpec.java *** gcc-4.5.2/libjava/classpath/java/security/spec/X509EncodedKeySpec.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/security/spec/X509EncodedKeySpec.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 39,50 **** package java.security.spec; /** ! X.509 Encoded Key Specification class which is used to store ! "X.509" byte encoded keys. ! @since JDK 1.2 ! @author Mark Benvenuto */ public class X509EncodedKeySpec extends EncodedKeySpec { --- 39,50 ---- package java.security.spec; /** ! X.509 Encoded Key Specification class which is used to store ! "X.509" byte encoded keys. ! @since JDK 1.2 ! @author Mark Benvenuto */ public class X509EncodedKeySpec extends EncodedKeySpec { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Array.java gcc-4.6.0/libjava/classpath/java/sql/Array.java *** gcc-4.5.2/libjava/classpath/java/sql/Array.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/sql/Array.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Map; *** 44,50 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Array { /** * Returns the name of the SQL type of the elements in this --- 44,50 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Array { /** * Returns the name of the SQL type of the elements in this *************** public interface Array *** 57,63 **** /** * Returns the JDBC type identifier of the elements in this ! * array. This will be one of the values defined in the * Types class. * * @return The JDBC type of the elements in this array. --- 57,63 ---- /** * Returns the JDBC type identifier of the elements in this ! * array. This will be one of the values defined in the * Types class. * * @return The JDBC type of the elements in this array. *************** public interface Array *** 77,85 **** /** * Returns the contents of this array. The specified ! * Map will be used to override selected mappings * between SQL types and Java classes. ! * * @param map A mapping of SQL types to Java classes. * @return The contents of the array as an array of Java objects. * @exception SQLException If an error occurs. --- 77,85 ---- /** * Returns the contents of this array. The specified ! * Map will be used to override selected mappings * between SQL types and Java classes. ! * * @param map A mapping of SQL types to Java classes. * @return The contents of the array as an array of Java objects. * @exception SQLException If an error occurs. *************** public interface Array *** 162,168 **** * @see ResultSet */ ResultSet getResultSet(long start, int count) throws SQLException; ! /** * This method returns a portion of the array as a ResultSet. * The returned portion will start at start into the --- 162,168 ---- * @see ResultSet */ ResultSet getResultSet(long start, int count) throws SQLException; ! /** * This method returns a portion of the array as a ResultSet. * The returned portion will start at start into the *************** public interface Array *** 180,186 **** * @return The requested elements of this array as a ResultSet. * @exception SQLException If an error occurs. * @see ResultSet ! */ ResultSet getResultSet(long start, int count, Map> map) throws SQLException; } --- 180,186 ---- * @return The requested elements of this array as a ResultSet. * @exception SQLException If an error occurs. * @see ResultSet ! */ ResultSet getResultSet(long start, int count, Map> map) throws SQLException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/BatchUpdateException.java gcc-4.6.0/libjava/classpath/java/sql/BatchUpdateException.java *** gcc-4.5.2/libjava/classpath/java/sql/BatchUpdateException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/BatchUpdateException.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 39,50 **** /** * This class extends SQLException to count the successful ! * updates in each statement in a batch that was successfully updated prior * to the error. * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class BatchUpdateException extends SQLException { static final long serialVersionUID = 5977529877145521757L; --- 39,50 ---- /** * This class extends SQLException to count the successful ! * updates in each statement in a batch that was successfully updated prior * to the error. * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class BatchUpdateException extends SQLException { static final long serialVersionUID = 5977529877145521757L; *************** public class BatchUpdateException extend *** 84,90 **** int[] updateCounts) { super(message, SQLState); ! this.updateCounts = updateCounts; } /** --- 84,90 ---- int[] updateCounts) { super(message, SQLState); ! this.updateCounts = updateCounts; } /** *************** public class BatchUpdateException extend *** 118,124 **** /** * Initializes a new instance of BatchUpdateException * with no descriptive error message. The SQL state and update count will ! * be initialized to null and the vendor specific error code will * initialized to 0. */ public BatchUpdateException() --- 118,124 ---- /** * Initializes a new instance of BatchUpdateException * with no descriptive error message. The SQL state and update count will ! * be initialized to null and the vendor specific error code will * initialized to 0. */ public BatchUpdateException() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Blob.java gcc-4.6.0/libjava/classpath/java/sql/Blob.java *** gcc-4.5.2/libjava/classpath/java/sql/Blob.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/Blob.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.OutputStream; *** 43,49 **** /** * This interface specified methods for accessing a SQL BLOB (Binary Large * OBject) type. ! * * @author Aaron M. Renn (arenn@urbanophile.com) * @since 1.2 */ --- 43,49 ---- /** * This interface specified methods for accessing a SQL BLOB (Binary Large * OBject) type. ! * * @author Aaron M. Renn (arenn@urbanophile.com) * @since 1.2 */ *************** public interface Blob *** 51,57 **** { /** * This method returns the number of bytes in this Blob. ! * * @return The number of bytes in this Blob. * @exception SQLException If an error occurs. */ --- 51,57 ---- { /** * This method returns the number of bytes in this Blob. ! * * @return The number of bytes in this Blob. * @exception SQLException If an error occurs. */ *************** public interface Blob *** 60,66 **** /** * This method returns up to the requested bytes of this Blob * as a byte array. ! * * @param start The index into this Blob to start returning * bytes from. * @param count The requested number of bytes to return. --- 60,66 ---- /** * This method returns up to the requested bytes of this Blob * as a byte array. ! * * @param start The index into this Blob to start returning * bytes from. * @param count The requested number of bytes to return. *************** public interface Blob *** 72,78 **** /** * This method returns a stream that will read the bytes of this * Blob. ! * * @return A stream that will read the bytes of this Blob. * @exception SQLException If an error occurs. */ --- 72,78 ---- /** * This method returns a stream that will read the bytes of this * Blob. ! * * @return A stream that will read the bytes of this Blob. * @exception SQLException If an error occurs. */ *************** public interface Blob *** 82,88 **** * This method returns the index into this Blob at which the * first instance of the specified bytes occur. The searching starts at the * specified index into this Blob. ! * * @param pattern The byte pattern to search for. * @param start The index into this Blob to start searching for * the pattern. --- 82,88 ---- * This method returns the index into this Blob at which the * first instance of the specified bytes occur. The searching starts at the * specified index into this Blob. ! * * @param pattern The byte pattern to search for. * @param start The index into this Blob to start searching for * the pattern. *************** public interface Blob *** 97,103 **** * first instance of the specified pattern occurs. The searching starts at the * specified index into this Blob. The bytes in the specified * Blob are used as the search pattern. ! * * @param pattern The Blob containing the byte pattern to * search for. * @param start The index into this Blob to start searching for --- 97,103 ---- * first instance of the specified pattern occurs. The searching starts at the * specified index into this Blob. The bytes in the specified * Blob are used as the search pattern. ! * * @param pattern The Blob containing the byte pattern to * search for. * @param start The index into this Blob to start searching for *************** public interface Blob *** 111,117 **** /** * Writes the specified data into this Blob, starting at the * specified index. ! * * @param start The index at which the writing starts. * @param bytes The data to write. * @exception SQLException If an error occurs. --- 111,117 ---- /** * Writes the specified data into this Blob, starting at the * specified index. ! * * @param start The index at which the writing starts. * @param bytes The data to write. * @exception SQLException If an error occurs. *************** public interface Blob *** 122,128 **** /** * Writes a portion of the specified data into this Blob, * starting at the specified index. ! * * @param startWrite The index into this Blob at which writing * starts. * @param bytes The data to write a portion of. --- 122,128 ---- /** * Writes a portion of the specified data into this Blob, * starting at the specified index. ! * * @param startWrite The index into this Blob at which writing * starts. * @param bytes The data to write a portion of. *************** public interface Blob *** 137,143 **** /** * Returns a binary stream that writes into this Blob, * starting at the specified index. ! * * @param start The index at which the writing starts. * @return A binary stream to write into this Blob. * @exception SQLException If an error occurs. --- 137,143 ---- /** * Returns a binary stream that writes into this Blob, * starting at the specified index. ! * * @param start The index at which the writing starts. * @return A binary stream to write into this Blob. * @exception SQLException If an error occurs. *************** public interface Blob *** 148,154 **** /** * Truncates this Blob to be at most the specified number of * bytes long. ! * * @param count The length this Blob is truncated to. * @exception SQLException If an error occurs. * @since 1.4 --- 148,154 ---- /** * Truncates this Blob to be at most the specified number of * bytes long. ! * * @param count The length this Blob is truncated to. * @exception SQLException If an error occurs. * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/CallableStatement.java gcc-4.6.0/libjava/classpath/java/sql/CallableStatement.java *** gcc-4.5.2/libjava/classpath/java/sql/CallableStatement.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/sql/CallableStatement.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Map; *** 49,55 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface CallableStatement extends PreparedStatement { /** * This method registers the specified parameter as an output parameter --- 49,55 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface CallableStatement extends PreparedStatement { /** * This method registers the specified parameter as an output parameter *************** public interface CallableStatement exten *** 58,64 **** * @param index The index of the parameter to register as output. * @param sqlType The SQL type value from Types. * @exception SQLException If an error occurs. ! */ void registerOutParameter(int index, int sqlType) throws SQLException; --- 58,64 ---- * @param index The index of the parameter to register as output. * @param sqlType The SQL type value from Types. * @exception SQLException If an error occurs. ! */ void registerOutParameter(int index, int sqlType) throws SQLException; *************** public interface CallableStatement exten *** 70,76 **** * @param sqlType The SQL type value from Types. * @param scale The scale of the value that will be returned. * @exception SQLException If an error occurs. ! */ void registerOutParameter(int index, int sqlType, int scale) throws SQLException; --- 70,76 ---- * @param sqlType The SQL type value from Types. * @param scale The scale of the value that will be returned. * @exception SQLException If an error occurs. ! */ void registerOutParameter(int index, int sqlType, int scale) throws SQLException; *************** public interface CallableStatement exten *** 271,277 **** * @return The parameter value as a Blob. * @exception SQLException If an error occurs. * @since 1.2 ! */ Blob getBlob(int index) throws SQLException; /** --- 271,277 ---- * @return The parameter value as a Blob. * @exception SQLException If an error occurs. * @since 1.2 ! */ Blob getBlob(int index) throws SQLException; /** *************** public interface CallableStatement exten *** 359,365 **** /** * This method registers the specified parameter as an output parameter ! * of the specified SQL type. This version of registerOutParameter is used * for NUMERIC or DECIMAL types. * * @param name The name of the parameter to register as output. --- 359,365 ---- /** * This method registers the specified parameter as an output parameter ! * of the specified SQL type. This version of registerOutParameter is used * for NUMERIC or DECIMAL types. * * @param name The name of the parameter to register as output. *************** public interface CallableStatement exten *** 374,380 **** /** * This method registers the specified parameter as an output parameter ! * of the specified SQL type. This version of registerOutParameter is used * for user-named or REF types. If the type of the output parameter does * not have such a type, the typeName argument is ignored. * --- 374,380 ---- /** * This method registers the specified parameter as an output parameter ! * of the specified SQL type. This version of registerOutParameter is used * for user-named or REF types. If the type of the output parameter does * not have such a type, the typeName argument is ignored. * *************** public interface CallableStatement exten *** 384,390 **** * @exception SQLException If an error occurs. * @since 1.4 */ ! void registerOutParameter(String name, int sqlType, String typeName) throws SQLException; /** --- 384,390 ---- * @exception SQLException If an error occurs. * @since 1.4 */ ! void registerOutParameter(String name, int sqlType, String typeName) throws SQLException; /** *************** public interface CallableStatement exten *** 401,407 **** /** * This method sets the value of the specified parameter to the specified * java.net.URL ! * * @param name The name of the parameter to set. * @param value The value the parameter. * @since 1.4 --- 401,407 ---- /** * This method sets the value of the specified parameter to the specified * java.net.URL ! * * @param name The name of the parameter to set. * @param value The value the parameter. * @since 1.4 *************** public interface CallableStatement exten *** 413,419 **** * for the specified type. * * @param name The name of the parameter to set. ! * @param sqlType The SQL type identifier of the parameter from * Types * @exception SQLException If an error occurs. * @since 1.4 --- 413,419 ---- * for the specified type. * * @param name The name of the parameter to set. ! * @param sqlType The SQL type identifier of the parameter from * Types * @exception SQLException If an error occurs. * @since 1.4 *************** public interface CallableStatement exten *** 597,603 **** * * @param name The name of the parameter value to set. * @param value The value of the parameter. ! * @param sqlType The SQL type to use for the parameter, from * Types * @param scale The scale of the value, for numeric values only. * @exception SQLException If an error occurs. --- 597,603 ---- * * @param name The name of the parameter value to set. * @param value The value of the parameter. ! * @param sqlType The SQL type to use for the parameter, from * Types * @param scale The scale of the value, for numeric values only. * @exception SQLException If an error occurs. *************** public interface CallableStatement exten *** 613,619 **** * * @param name The name of the parameter value to set. * @param value The value of the parameter. ! * @param sqlType The SQL type to use for the parameter, from * Types * @exception SQLException If an error occurs. * @see Types --- 613,619 ---- * * @param name The name of the parameter value to set. * @param value The value of the parameter. ! * @param sqlType The SQL type to use for the parameter, from * Types * @exception SQLException If an error occurs. * @see Types diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Clob.java gcc-4.6.0/libjava/classpath/java/sql/Clob.java *** gcc-4.5.2/libjava/classpath/java/sql/Clob.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/Clob.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.Writer; *** 46,59 **** /** * This interface contains methods for accessing a SQL CLOB (Character Large * OBject) type. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface Clob { /** * This method returns the number of characters in this Clob. ! * * @return The number of characters in this Clob. * @exception SQLException If an error occurs. * @since 1.2 --- 46,59 ---- /** * This interface contains methods for accessing a SQL CLOB (Character Large * OBject) type. ! * * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface Clob { /** * This method returns the number of characters in this Clob. ! * * @return The number of characters in this Clob. * @exception SQLException If an error occurs. * @since 1.2 *************** public interface Clob *** 63,69 **** /** * This method returns the specified portion of this Clob as a * String. ! * * @param start The index into this Clob (index values * start at 1) to start returning characters from. * @param count The requested number of characters to return. --- 63,69 ---- /** * This method returns the specified portion of this Clob as a * String. ! * * @param start The index into this Clob (index values * start at 1) to start returning characters from. * @param count The requested number of characters to return. *************** public interface Clob *** 76,82 **** /** * This method returns a character stream that reads the contents of this * Clob. ! * * @return A character stream to read this Clob's contents. * @exception SQLException If an error occurs. * @since 1.2 --- 76,82 ---- /** * This method returns a character stream that reads the contents of this * Clob. ! * * @return A character stream to read this Clob's contents. * @exception SQLException If an error occurs. * @since 1.2 *************** public interface Clob *** 86,92 **** /** * This method returns a byte stream that reads the contents of this * Clob as a series of ASCII bytes. ! * * @return A stream to read this Clob's contents. * @exception SQLException If an error occurs. * @since 1.2 --- 86,92 ---- /** * This method returns a byte stream that reads the contents of this * Clob as a series of ASCII bytes. ! * * @return A stream to read this Clob's contents. * @exception SQLException If an error occurs. * @since 1.2 *************** public interface Clob *** 97,103 **** * This method returns the index into this Clob of the first * occurrence of the specified character pattern (supplied by the caller as a * String). The search begins at the specified index. ! * * @param pattern The character pattern to search for, passed as a * String. * @param start The index into this Clob to start searching --- 97,103 ---- * This method returns the index into this Clob of the first * occurrence of the specified character pattern (supplied by the caller as a * String). The search begins at the specified index. ! * * @param pattern The character pattern to search for, passed as a * String. * @param start The index into this Clob to start searching *************** public interface Clob *** 113,119 **** * This method returns the index into this Clob of the first * occurrence of the specified character pattern (supplied by the caller as a * Clob). The search begins at the specified index. ! * * @param pattern The character pattern to search for, passed as a * Clob. * @param start The index into this Clob to start searching --- 113,119 ---- * This method returns the index into this Clob of the first * occurrence of the specified character pattern (supplied by the caller as a * Clob). The search begins at the specified index. ! * * @param pattern The character pattern to search for, passed as a * Clob. * @param start The index into this Clob to start searching *************** public interface Clob *** 128,134 **** /** * Writes the specified string into this Clob, starting at the * specified index. ! * * @param start The index at which the writing starts. * @param value The string to write. * @return The number of characters written. --- 128,134 ---- /** * Writes the specified string into this Clob, starting at the * specified index. ! * * @param start The index at which the writing starts. * @param value The string to write. * @return The number of characters written. *************** public interface Clob *** 140,146 **** /** * Writes the specified portion of a string into this Clob, * starting at the specified index. ! * * @param startWrite The index at which the writing starts. * @param value The string to write a portion of. * @param startRead The offset into the string where the portion to copy --- 140,146 ---- /** * Writes the specified portion of a string into this Clob, * starting at the specified index. ! * * @param startWrite The index at which the writing starts. * @param value The string to write a portion of. * @param startRead The offset into the string where the portion to copy *************** public interface Clob *** 156,162 **** /** * Returns an ASCII text stream that writes into this Clob, * starting at the specified index. ! * * @param start The index at which the writing starts. * @return An ASCII text stream to write into this Clob. * @exception SQLException If an error occurs. --- 156,162 ---- /** * Returns an ASCII text stream that writes into this Clob, * starting at the specified index. ! * * @param start The index at which the writing starts. * @return An ASCII text stream to write into this Clob. * @exception SQLException If an error occurs. *************** public interface Clob *** 167,173 **** /** * Returns a character stream that writes into this Clob, * starting at the specified index. ! * * @param start The index at which the writing starts. * @return A character stream to write into this Clob. * @exception SQLException If an error occurs. --- 167,173 ---- /** * Returns a character stream that writes into this Clob, * starting at the specified index. ! * * @param start The index at which the writing starts. * @return A character stream to write into this Clob. * @exception SQLException If an error occurs. *************** public interface Clob *** 178,184 **** /** * Truncates this Clob to be at most the specified number of * characters long. ! * * @param count The length this Clob is truncated to. * @exception SQLException If an error occurs. * @since 1.4 --- 178,184 ---- /** * Truncates this Clob to be at most the specified number of * characters long. ! * * @param count The length this Clob is truncated to. * @exception SQLException If an error occurs. * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Connection.java gcc-4.6.0/libjava/classpath/java/sql/Connection.java *** gcc-4.5.2/libjava/classpath/java/sql/Connection.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/sql/Connection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Map; *** 45,51 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Connection { /** * This transaction isolation level indicates that transactions are not --- 45,51 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Connection { /** * This transaction isolation level indicates that transactions are not *************** public interface Connection *** 90,96 **** * This method creates a new SQL statement. The default result set type * and concurrency will be used. * ! * @return A new Statement object. * @exception SQLException If an error occurs. * @see Statement */ --- 90,96 ---- * This method creates a new SQL statement. The default result set type * and concurrency will be used. * ! * @return A new Statement object. * @exception SQLException If an error occurs. * @see Statement */ *************** public interface Connection *** 101,107 **** * SQL string. This method is designed for use with parameterized * statements. The default result set type and concurrency will be used. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @return A new PreparedStatement. * @exception SQLException If an error occurs. --- 101,107 ---- * SQL string. This method is designed for use with parameterized * statements. The default result set type and concurrency will be used. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @return A new PreparedStatement. * @exception SQLException If an error occurs. *************** public interface Connection *** 110,121 **** PreparedStatement prepareStatement(String sql) throws SQLException; /** ! * This method creates a new CallableStatement for the * specified SQL string. Thie method is designed to be used with * stored procedures. The default result set type and concurrency * will be used. * ! * @param sql The SQL statement to use in creating this * CallableStatement. * @return A new CallableStatement. * @exception SQLException If an error occurs. --- 110,121 ---- PreparedStatement prepareStatement(String sql) throws SQLException; /** ! * This method creates a new CallableStatement for the * specified SQL string. Thie method is designed to be used with * stored procedures. The default result set type and concurrency * will be used. * ! * @param sql The SQL statement to use in creating this * CallableStatement. * @return A new CallableStatement. * @exception SQLException If an error occurs. *************** public interface Connection *** 151,157 **** * In auto commit mode, every SQL statement is committed its own transaction. * Otherwise a transaction must be explicitly committed or rolled back. * ! * @return true if auto commit mode is enabled, * false otherwise. * @exception SQLException If an error occurs. * @see #commit() --- 151,157 ---- * In auto commit mode, every SQL statement is committed its own transaction. * Otherwise a transaction must be explicitly committed or rolled back. * ! * @return true if auto commit mode is enabled, * false otherwise. * @exception SQLException If an error occurs. * @see #commit() *************** public interface Connection *** 160,166 **** boolean getAutoCommit() throws SQLException; /** ! * This method commits any SQL statements executed on this connection since * the last commit or rollback. * * @exception SQLException If an error occurs. --- 160,166 ---- boolean getAutoCommit() throws SQLException; /** ! * This method commits any SQL statements executed on this connection since * the last commit or rollback. * * @exception SQLException If an error occurs. *************** public interface Connection *** 183,189 **** void close() throws SQLException; /** ! * This method tests whether or not this connection has been closed. * * @return true if the connection is closed, false * otherwise. --- 183,189 ---- void close() throws SQLException; /** ! * This method tests whether or not this connection has been closed. * * @return true if the connection is closed, false * otherwise. *************** public interface Connection *** 233,239 **** * This method returns the name of the catalog in use by this connection, * if any. * ! * @return The name of the catalog, or null if none * exists or catalogs are not supported by this database. * @exception SQLException If an error occurs. */ --- 233,239 ---- * This method returns the name of the catalog in use by this connection, * if any. * ! * @return The name of the catalog, or null if none * exists or catalogs are not supported by this database. * @exception SQLException If an error occurs. */ *************** public interface Connection *** 262,268 **** * if any. If there were any subsequence warnings, they will be chained * to the first one. * ! * @return The first SQLWarning that occurred, or * null if there have been no warnings. * @exception SQLException If an error occurs. */ --- 262,268 ---- * if any. If there were any subsequence warnings, they will be chained * to the first one. * ! * @return The first SQLWarning that occurred, or * null if there have been no warnings. * @exception SQLException If an error occurs. */ *************** public interface Connection *** 298,304 **** * Valid values for these parameters are specified in the * ResultSet class. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in --- 298,304 ---- * Valid values for these parameters are specified in the * ResultSet class. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in *************** public interface Connection *** 308,324 **** * @see PreparedStatement * @see ResultSet */ ! PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException; /** ! * This method creates a new CallableStatement for the * specified SQL string. Thie method is designed to be used with * stored procedures. The specified result set type and concurrency * will be used. Valid values for these parameters are specified in the * ResultSet class. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in --- 308,324 ---- * @see PreparedStatement * @see ResultSet */ ! PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException; /** ! * This method creates a new CallableStatement for the * specified SQL string. Thie method is designed to be used with * stored procedures. The specified result set type and concurrency * will be used. Valid values for these parameters are specified in the * ResultSet class. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in *************** public interface Connection *** 353,359 **** /** * Sets the default holdability of ResultSetS that are created * from StatementS using this Connection. ! * * @param holdability The default holdability value to set, this must be one * of ResultSet.HOLD_CURSORS_OVER_COMMIT or * ResultSet.CLOSE_CURSORS_AT_COMMIT. --- 353,359 ---- /** * Sets the default holdability of ResultSetS that are created * from StatementS using this Connection. ! * * @param holdability The default holdability value to set, this must be one * of ResultSet.HOLD_CURSORS_OVER_COMMIT or * ResultSet.CLOSE_CURSORS_AT_COMMIT. *************** public interface Connection *** 366,372 **** /** * Gets the default holdability of ResultSetS that are created * from StatementS using this Connection. ! * * @return The current default holdability value, this must be one of * ResultSet.HOLD_CURSORS_OVER_COMMIT or * ResultSet.CLOSE_CURSORS_AT_COMMIT. --- 366,372 ---- /** * Gets the default holdability of ResultSetS that are created * from StatementS using this Connection. ! * * @return The current default holdability value, this must be one of * ResultSet.HOLD_CURSORS_OVER_COMMIT or * ResultSet.CLOSE_CURSORS_AT_COMMIT. *************** public interface Connection *** 378,384 **** /** * Creates a new unnamed savepoint for this Connection ! * * @return The Savepoint object representing the savepoint. * @exception SQLException If an error occurs. * @since 1.4 --- 378,384 ---- /** * Creates a new unnamed savepoint for this Connection ! * * @return The Savepoint object representing the savepoint. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface Connection *** 388,394 **** /** * Creates a new savepoint with the specifiend name for this * Connection. ! * * @param name The name of the savepoint. * @return The Savepoint object representing the savepoint. * @exception SQLException If an error occurs. --- 388,394 ---- /** * Creates a new savepoint with the specifiend name for this * Connection. ! * * @param name The name of the savepoint. * @return The Savepoint object representing the savepoint. * @exception SQLException If an error occurs. *************** public interface Connection *** 398,404 **** /** * Undoes all changes made after the specified savepoint was set. ! * * @param savepoint The safepoint to roll back to. * @exception SQLException If an error occurs. * @since 1.4 --- 398,404 ---- /** * Undoes all changes made after the specified savepoint was set. ! * * @param savepoint The safepoint to roll back to. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface Connection *** 409,415 **** * Removes the specified savepoint from this Connection. * Refering to a savepoint after it was removed is an error and will throw an * SQLException. ! * * @param savepoint The savepoint to release. * @exception SQLException If an error occurs. * @since 1.4 --- 409,415 ---- * Removes the specified savepoint from this Connection. * Refering to a savepoint after it was removed is an error and will throw an * SQLException. ! * * @param savepoint The savepoint to release. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface Connection *** 420,426 **** * This method creates a new SQL statement with the specified type, * concurrency and holdability, instead of using the defaults. Valid values * for these parameters are specified in the ResultSet class. ! * * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in * the result set for this statement. --- 420,426 ---- * This method creates a new SQL statement with the specified type, * concurrency and holdability, instead of using the defaults. Valid values * for these parameters are specified in the ResultSet class. ! * * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in * the result set for this statement. *************** public interface Connection *** 441,447 **** * will be used. Valid values for these parameters are specified in the * ResultSet class. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in --- 441,447 ---- * will be used. Valid values for these parameters are specified in the * ResultSet class. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in *************** public interface Connection *** 458,470 **** resultSetConcurrency, int resultSetHoldability) throws SQLException; /** ! * This method creates a new CallableStatement for the * specified SQL string. Thie method is designed to be used with * stored procedures. The specified result set type, concurrency and * holdability will be used. Valid values for these parameters are specified * in the ResultSet class. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in --- 458,470 ---- resultSetConcurrency, int resultSetHoldability) throws SQLException; /** ! * This method creates a new CallableStatement for the * specified SQL string. Thie method is designed to be used with * stored procedures. The specified result set type, concurrency and * holdability will be used. Valid values for these parameters are specified * in the ResultSet class. * ! * @param sql The SQL statement to use in creating this * PreparedStatement. * @param resultSetType The type of result set to use for this statement. * @param resultSetConcurrency The type of concurrency to be used in diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/DataTruncation.java gcc-4.6.0/libjava/classpath/java/sql/DataTruncation.java *** gcc-4.5.2/libjava/classpath/java/sql/DataTruncation.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/DataTruncation.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 38,49 **** package java.sql; /** ! * This exception is thrown when a piece of data is unexpectedly * truncated in JDBC. * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class DataTruncation extends SQLWarning { static final long serialVersionUID = 6464298989504059473L; --- 38,49 ---- package java.sql; /** ! * This exception is thrown when a piece of data is unexpectedly * truncated in JDBC. * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class DataTruncation extends SQLWarning { static final long serialVersionUID = 6464298989504059473L; *************** public class DataTruncation extends SQLW *** 74,80 **** /** * This method initializes a new instance of DataTruncation ! * with the specified values. The descriptive error message for this * exception will be "Data truncation", the SQL state will be "01004" * and the vendor specific error code will be set to 0. * --- 74,80 ---- /** * This method initializes a new instance of DataTruncation ! * with the specified values. The descriptive error message for this * exception will be "Data truncation", the SQL state will be "01004" * and the vendor specific error code will be set to 0. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/DatabaseMetaData.java gcc-4.6.0/libjava/classpath/java/sql/DatabaseMetaData.java *** gcc-4.5.2/libjava/classpath/java/sql/DatabaseMetaData.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/DatabaseMetaData.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 37,43 **** package java.sql; ! public interface DatabaseMetaData { /** * It is unknown whether or not the procedure returns a result. --- 37,43 ---- package java.sql; ! public interface DatabaseMetaData { /** * It is unknown whether or not the procedure returns a result. *************** public interface DatabaseMetaData *** 409,415 **** * This method tests whether or not the database uses local files to * store tables. * ! * @return true if the database uses local files, * false otherwise. * * @exception SQLException If an error occurs. --- 409,415 ---- * This method tests whether or not the database uses local files to * store tables. * ! * @return true if the database uses local files, * false otherwise. * * @exception SQLException If an error occurs. *************** public interface DatabaseMetaData *** 459,465 **** boolean storesLowerCaseIdentifiers() throws SQLException; /** ! * This method tests whether or not the database stores mixed case * identifers even if it treats them as case insensitive. * * @return true if the database stores mixed case identifiers, --- 459,465 ---- boolean storesLowerCaseIdentifiers() throws SQLException; /** ! * This method tests whether or not the database stores mixed case * identifers even if it treats them as case insensitive. * * @return true if the database stores mixed case identifiers, *************** public interface DatabaseMetaData *** 482,488 **** * This method tests whether or not the database treats mixed case * quoted identifiers as all upper case. * ! * @return true if the database treats all quoted identifiers * as upper case, false otherwise. * @exception SQLException If an error occurs. */ --- 482,488 ---- * This method tests whether or not the database treats mixed case * quoted identifiers as all upper case. * ! * @return true if the database treats all quoted identifiers * as upper case, false otherwise. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 492,508 **** * This method tests whether or not the database treats mixed case * quoted identifiers as all lower case. * ! * @return true if the database treats all quoted identifiers * as lower case, false otherwise. * @exception SQLException If an error occurs. */ boolean storesLowerCaseQuotedIdentifiers() throws SQLException; /** ! * This method tests whether or not the database stores mixed case * quoted identifers even if it treats them as case insensitive. * ! * @return true if the database stores mixed case quoted * identifiers, false otherwise. * @exception SQLException If an error occurs. */ --- 492,508 ---- * This method tests whether or not the database treats mixed case * quoted identifiers as all lower case. * ! * @return true if the database treats all quoted identifiers * as lower case, false otherwise. * @exception SQLException If an error occurs. */ boolean storesLowerCaseQuotedIdentifiers() throws SQLException; /** ! * This method tests whether or not the database stores mixed case * quoted identifers even if it treats them as case insensitive. * ! * @return true if the database stores mixed case quoted * identifiers, false otherwise. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 552,558 **** /** * This method returns comma separated list of time/date functions. ! * * @return The list of time/date functions. * @exception SQLException If an error occurs. */ --- 552,558 ---- /** * This method returns comma separated list of time/date functions. ! * * @return The list of time/date functions. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 567,573 **** String getSearchStringEscape() throws SQLException; /** ! * This methods returns non-standard characters that can appear in * unquoted identifiers. * * @return Non-standard characters that can appear in unquoted identifiers. --- 567,573 ---- String getSearchStringEscape() throws SQLException; /** ! * This methods returns non-standard characters that can appear in * unquoted identifiers. * * @return Non-standard characters that can appear in unquoted identifiers. *************** public interface DatabaseMetaData *** 638,644 **** SQLException; /** ! * This method tests whether or not table correlation names are * supported. This will be always be true in a fully JDBC * compliant driver. * --- 638,644 ---- SQLException; /** ! * This method tests whether or not table correlation names are * supported. This will be always be true in a fully JDBC * compliant driver. * *************** public interface DatabaseMetaData *** 722,728 **** * This method tests whether multiple result sets for a single statement are * supported. * ! * @return true if multiple result sets are supported for a * single statement, false otherwise. * @exception SQLException If an error occurs. */ --- 722,728 ---- * This method tests whether multiple result sets for a single statement are * supported. * ! * @return true if multiple result sets are supported for a * single statement, false otherwise. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 789,795 **** /** * This method tests whether or not the ANSI92 intermediate SQL ! * grammar is supported. * * @return true if the ANSI92 intermediate SQL grammar is * supported, false otherwise. --- 789,795 ---- /** * This method tests whether or not the ANSI92 intermediate SQL ! * grammar is supported. * * @return true if the ANSI92 intermediate SQL grammar is * supported, false otherwise. *************** public interface DatabaseMetaData *** 799,805 **** /** * This method tests whether or not the ANSI92 full SQL ! * grammar is supported. * * @return true if the ANSI92 full SQL grammar is * supported, false otherwise. --- 799,805 ---- /** * This method tests whether or not the ANSI92 full SQL ! * grammar is supported. * * @return true if the ANSI92 full SQL grammar is * supported, false otherwise. *************** public interface DatabaseMetaData *** 829,835 **** /** * This method tests whether or not the database supports full outer joins. * ! * @return true if full outer joins are supported, * false otherwise. * @exception SQLException If an error occurs. */ --- 829,835 ---- /** * This method tests whether or not the database supports full outer joins. * ! * @return true if full outer joins are supported, * false otherwise. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 838,844 **** /** * This method tests whether or not the database supports limited outer joins. * ! * @return true if limited outer joins are supported, * false otherwise. * @exception SQLException If an error occurs. */ --- 838,844 ---- /** * This method tests whether or not the database supports limited outer joins. * ! * @return true if limited outer joins are supported, * false otherwise. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 1005,1011 **** * This method tests whether or not SELECT FOR UPDATE is supported by the * database. * ! * @return true if SELECT FOR UPDATE is supported * false otherwise. * @exception SQLException If an error occurs. */ --- 1005,1011 ---- * This method tests whether or not SELECT FOR UPDATE is supported by the * database. * ! * @return true if SELECT FOR UPDATE is supported * false otherwise. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 1036,1042 **** * expressions. A fully JDBC compliant driver will always return * true. * ! * @return true if subqueries are allowed in exists * expressions, false otherwise. * @exception SQLException If an error occurs. */ --- 1036,1042 ---- * expressions. A fully JDBC compliant driver will always return * true. * ! * @return true if subqueries are allowed in exists * expressions, false otherwise. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 1057,1063 **** * expressions. A fully JDBC compliant driver will always return * true. * ! * @return true if subqueries are allowed in quantified * expressions, false otherwise. * @exception SQLException If an error occurs. */ --- 1057,1063 ---- * expressions. A fully JDBC compliant driver will always return * true. * ! * @return true if subqueries are allowed in quantified * expressions, false otherwise. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 1143,1149 **** /** * This method returns the maximum length of a character literal. ! * * @return The maximum length of a character literal. * @exception SQLException If an error occurs. */ --- 1143,1149 ---- /** * This method returns the maximum length of a character literal. ! * * @return The maximum length of a character literal. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 1338,1344 **** SQLException; /** ! * This method tests whether or not DDL and DML statements allowed within * the same transaction. * * @return true if DDL and DML statements are allowed in the --- 1338,1344 ---- SQLException; /** ! * This method tests whether or not DDL and DML statements allowed within * the same transaction. * * @return true if DDL and DML statements are allowed in the *************** public interface DatabaseMetaData *** 1385,1391 **** * a ResultSet with the following columns: *

            *

              ! *
            1. PROCEDURE_CAT - The catalog the procedure is in, which may be * null.
            2. *
            3. PROCEDURE_SCHEM - The schema the procedures is in, which may be * null.
            4. --- 1385,1391 ---- * a ResultSet with the following columns: *

              *

                ! *
              1. PROCEDURE_CAT - The catalog the procedure is in, which may be * null.
              2. *
              3. PROCEDURE_SCHEM - The schema the procedures is in, which may be * null.
              4. *************** public interface DatabaseMetaData *** 1394,1401 **** *
              5. Unused
              6. *
              7. Unused
              8. *
              9. REMARKS - A description of the procedure
              10. ! *
              11. PROCEDURE_TYPE - Indicates the return type of the procedure, which ! * is one of the contstants defined in this class * (procedureResultUnknown, procedureNoResult, or * procedureReturnsResult).
              12. *
              --- 1394,1401 ---- *
            5. Unused
            6. *
            7. Unused
            8. *
            9. REMARKS - A description of the procedure
            10. ! *
            11. PROCEDURE_TYPE - Indicates the return type of the procedure, which ! * is one of the contstants defined in this class * (procedureResultUnknown, procedureNoResult, or * procedureReturnsResult).
            12. *
            *************** public interface DatabaseMetaData *** 1417,1423 **** * ResultSet with the following columns: *

            *

              ! *
            1. PROCEDURE_CAT - The catalog the procedure is in, which may be * null.
            2. *
            3. PROCEDURE_SCHEM - The schema the procedures is in, which may be * null.
            4. --- 1417,1423 ---- * ResultSet with the following columns: *

              *

                ! *
              1. PROCEDURE_CAT - The catalog the procedure is in, which may be * null.
              2. *
              3. PROCEDURE_SCHEM - The schema the procedures is in, which may be * null.
              4. *************** public interface DatabaseMetaData *** 1455,1461 **** SQLException; /** ! * This method returns a list of the requested table as a * ResultSet with the following columns: * *
                  --- 1455,1461 ---- SQLException; /** ! * This method returns a list of the requested table as a * ResultSet with the following columns: * *
                    *************** public interface DatabaseMetaData *** 1466,1472 **** * of the values returned by the getTableTypes() method. *
                  1. REMARKS - Comments about the table.
                  2. *
                  ! * * @param catalog The name of the catalog to return tables from, * or "" to return tables from all catalogs. * @param schemaPattern A schema pattern for the schemas to return tables --- 1466,1472 ---- * of the values returned by the getTableTypes() method. *
                1. REMARKS - Comments about the table.
                2. *
                ! * * @param catalog The name of the catalog to return tables from, * or "" to return tables from all catalogs. * @param schemaPattern A schema pattern for the schemas to return tables *************** public interface DatabaseMetaData *** 1480,1486 **** tablePattern, String[] types) throws SQLException; /** ! * This method returns the list of database schemas as a * ResultSet, with one column - TABLE_SCHEM - that is the * name of the schema. * --- 1480,1486 ---- tablePattern, String[] types) throws SQLException; /** ! * This method returns the list of database schemas as a * ResultSet, with one column - TABLE_SCHEM - that is the * name of the schema. * *************** public interface DatabaseMetaData *** 1515,1521 **** * ResultSet with the following columns: *

                *

                  ! *
                1. TABLE_CAT - The catalog the table is in, which may be * null.
                2. *
                3. TABLE_SCHEM - The schema the tables is in, which may be * null.
                4. --- 1515,1521 ---- * ResultSet with the following columns: *

                  *

                    ! *
                  1. TABLE_CAT - The catalog the table is in, which may be * null.
                  2. *
                  3. TABLE_SCHEM - The schema the tables is in, which may be * null.
                  4. *************** public interface DatabaseMetaData *** 1543,1549 **** * * @param catalog The name of the catalog to return table from, * or "" to return tables from all catalogs. ! * @param schemaPattern A schema pattern for the schemas to return * tables from, or "" to return tables from all schemas. * @param tablePattern The pattern of table names to return. * @param columnPattern The pattern of column names to return. --- 1543,1549 ---- * * @param catalog The name of the catalog to return table from, * or "" to return tables from all catalogs. ! * @param schemaPattern A schema pattern for the schemas to return * tables from, or "" to return tables from all schemas. * @param tablePattern The pattern of table names to return. * @param columnPattern The pattern of column names to return. *************** public interface DatabaseMetaData *** 1559,1565 **** * with the following columns: * *
                      ! *
                    1. TABLE_CAT - The catalog the table is in, which may be * null.
                    2. *
                    3. TABLE_SCHEM - The schema the tables is in, which may be * null.
                    4. --- 1559,1565 ---- * with the following columns: * *
                        ! *
                      1. TABLE_CAT - The catalog the table is in, which may be * null.
                      2. *
                      3. TABLE_SCHEM - The schema the tables is in, which may be * null.
                      4. *************** public interface DatabaseMetaData *** 1591,1597 **** * with the following columns: * *
                          ! *
                        1. TABLE_CAT - The catalog the table is in, which may be * null.
                        2. *
                        3. TABLE_SCHEM - The schema the tables is in, which may be * null.
                        4. --- 1591,1597 ---- * with the following columns: * *
                            ! *
                          1. TABLE_CAT - The catalog the table is in, which may be * null.
                          2. *
                          3. TABLE_SCHEM - The schema the tables is in, which may be * null.
                          4. *************** public interface DatabaseMetaData *** 1608,1614 **** * to return information from all catalogs. * @param schemaPattern The schema to retrieve information from, or the empty string * to return entities not associated with a schema. ! * @param tablePattern The table name pattern of tables to return * information for. * @return A ResultSet with all the requested privileges. * @exception SQLException If an error occurs. --- 1608,1614 ---- * to return information from all catalogs. * @param schemaPattern The schema to retrieve information from, or the empty string * to return entities not associated with a schema. ! * @param tablePattern The table name pattern of tables to return * information for. * @return A ResultSet with all the requested privileges. * @exception SQLException If an error occurs. *************** public interface DatabaseMetaData *** 1622,1628 **** * the following columns: * *
                              ! *
                            1. SCOPE - The scope of the results returned. This is one of the * constants defined in this class (bestRowTemporary, * bestRowTransaction, or bestRowSession).
                            2. *
                            3. COLUMN_NAME - The name of the column.
                            4. --- 1622,1628 ---- * the following columns: * *
                                ! *
                              1. SCOPE - The scope of the results returned. This is one of the * constants defined in this class (bestRowTemporary, * bestRowTransaction, or bestRowSession).
                              2. *
                              3. COLUMN_NAME - The name of the column.
                              4. *************** public interface DatabaseMetaData *** 1633,1639 **** *
                              5. BUFFER_LENGTH - Unused
                              6. *
                              7. DECIMAL_DIGITS - The scale of the column.
                              8. *
                              9. PSEUDO_COLUMN - Whether or not the best row identifier is a ! * pseudo_column. This is one of the constants defined in this class * (bestRowUnknown, bestRowNotPseudo, or * bestRowPseudo).
                              10. *
                              --- 1633,1639 ---- *
                            5. BUFFER_LENGTH - Unused
                            6. *
                            7. DECIMAL_DIGITS - The scale of the column.
                            8. *
                            9. PSEUDO_COLUMN - Whether or not the best row identifier is a ! * pseudo_column. This is one of the constants defined in this class * (bestRowUnknown, bestRowNotPseudo, or * bestRowPseudo).
                            10. *
                            *************** public interface DatabaseMetaData *** 1655,1661 **** /** * This method returns the set of columns that are automatically updated ! * when the row is update. It returns this information as a * ResultSet with the following columns: * *
                              --- 1655,1661 ---- /** * This method returns the set of columns that are automatically updated ! * when the row is update. It returns this information as a * ResultSet with the following columns: * *
                                *************** public interface DatabaseMetaData *** 1668,1674 **** *
                              1. BUFFER_LENGTH - Unused
                              2. *
                              3. DECIMAL_DIGITS - The scale of the column.
                              4. *
                              5. PSEUDO_COLUMN - Whether or not the best row identifier is a ! * pseudo_column. This is one of the constants defined in this class * (versionRowUnknown, versionRowNotPseudo, or * versionRowPseudo).
                              6. *
                              --- 1668,1674 ---- *
                            1. BUFFER_LENGTH - Unused
                            2. *
                            3. DECIMAL_DIGITS - The scale of the column.
                            4. *
                            5. PSEUDO_COLUMN - Whether or not the best row identifier is a ! * pseudo_column. This is one of the constants defined in this class * (versionRowUnknown, versionRowNotPseudo, or * versionRowPseudo).
                            6. *
                            *************** public interface DatabaseMetaData *** 1725,1736 **** *
                          5. FKCOLUMN_NAME - The foreign key column name.
                          6. *
                          7. KEY_SEQ - The sequence number of the column within the foreign key.
                          8. *
                          9. UPDATE_RULE - How the foreign key behaves when the primary key is ! * updated. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, importedKeySetDefault, or * importedKeyRestrict).
                          10. *
                          11. DELETE_RULE - How the foreign key behaves when the primary key is ! * deleted. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, or importedKeySetDefault)
                          12. *
                          13. FK_NAME - The name of the foreign key.
                          14. --- 1725,1736 ---- *
                          15. FKCOLUMN_NAME - The foreign key column name.
                          16. *
                          17. KEY_SEQ - The sequence number of the column within the foreign key.
                          18. *
                          19. UPDATE_RULE - How the foreign key behaves when the primary key is ! * updated. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, importedKeySetDefault, or * importedKeyRestrict).
                          20. *
                          21. DELETE_RULE - How the foreign key behaves when the primary key is ! * deleted. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, or importedKeySetDefault)
                          22. *
                          23. FK_NAME - The name of the foreign key.
                          24. *************** public interface DatabaseMetaData *** 1769,1780 **** *
                          25. FKCOLUMN_NAME - The foreign key column name.
                          26. *
                          27. KEY_SEQ - The sequence number of the column within the foreign key.
                          28. *
                          29. UPDATE_RULE - How the foreign key behaves when the primary key is ! * updated. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, importedKeySetDefault, or * importedKeyRestrict).
                          30. *
                          31. DELETE_RULE - How the foreign key behaves when the primary key is ! * deleted. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, or importedKeySetDefault)
                          32. *
                          33. FK_NAME - The name of the foreign key.
                          34. --- 1769,1780 ---- *
                          35. FKCOLUMN_NAME - The foreign key column name.
                          36. *
                          37. KEY_SEQ - The sequence number of the column within the foreign key.
                          38. *
                          39. UPDATE_RULE - How the foreign key behaves when the primary key is ! * updated. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, importedKeySetDefault, or * importedKeyRestrict).
                          40. *
                          41. DELETE_RULE - How the foreign key behaves when the primary key is ! * deleted. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, or importedKeySetDefault)
                          42. *
                          43. FK_NAME - The name of the foreign key.
                          44. *************** public interface DatabaseMetaData *** 1813,1824 **** *
                          45. FKCOLUMN_NAME - The foreign key column name.
                          46. *
                          47. KEY_SEQ - The sequence number of the column within the foreign key.
                          48. *
                          49. UPDATE_RULE - How the foreign key behaves when the primary key is ! * updated. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, importedKeySetDefault, or * importedKeyRestrict).
                          50. *
                          51. DELETE_RULE - How the foreign key behaves when the primary key is ! * deleted. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, or importedKeySetDefault)
                          52. *
                          53. FK_NAME - The name of the foreign key.
                          54. --- 1813,1824 ---- *
                          55. FKCOLUMN_NAME - The foreign key column name.
                          56. *
                          57. KEY_SEQ - The sequence number of the column within the foreign key.
                          58. *
                          59. UPDATE_RULE - How the foreign key behaves when the primary key is ! * updated. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, importedKeySetDefault, or * importedKeyRestrict).
                          60. *
                          61. DELETE_RULE - How the foreign key behaves when the primary key is ! * deleted. This is one of the constants defined in this class * (importedNoAction, importedKeyCascade, * importedKeySetNull, or importedKeySetDefault)
                          62. *
                          63. FK_NAME - The name of the foreign key.
                          64. *************** public interface DatabaseMetaData *** 1871,1877 **** *
                          65. CREATE_PARAMS - The parameters used to create the type, which may be * null.
                          66. *
                          67. NULLABLE - Whether or not this type supports NULL values. This will ! * be one of the constants defined in this interface * (typeNoNulls, typeNullable, or * typeNullableUnknown).
                          68. *
                          69. CASE_SENSITIVE - Whether or not the value is case sensitive.
                          70. --- 1871,1877 ---- *
                          71. CREATE_PARAMS - The parameters used to create the type, which may be * null.
                          72. *
                          73. NULLABLE - Whether or not this type supports NULL values. This will ! * be one of the constants defined in this interface * (typeNoNulls, typeNullable, or * typeNullableUnknown).
                          74. *
                          75. CASE_SENSITIVE - Whether or not the value is case sensitive.
                          76. *************** public interface DatabaseMetaData *** 1889,1895 **** *
                          77. SQL_DATETIME_SUB - Unused.
                          78. *
                          79. NUM_PREC_RADIX - The radix of this data type.
                          80. *
                          ! * * @return A ResultSet with the list of available data types. * @exception SQLException If an error occurs. */ --- 1889,1895 ---- *
                        5. SQL_DATETIME_SUB - Unused.
                        6. *
                        7. NUM_PREC_RADIX - The radix of this data type.
                        8. *
                        ! * * @return A ResultSet with the list of available data types. * @exception SQLException If an error occurs. */ *************** public interface DatabaseMetaData *** 1925,1936 **** *
                      * * @param catalog The catalog to retrieve information from, or the empty string ! * to return entities not associated with a catalog, or * null to return information from all catalogs. * @param schema The schema to retrieve information from, or the empty string * to return entities not associated with a schema. * @param tableName The table name to return information for. ! * @param unique true to return only unique indexes, * false otherwise. * @param approximate true if data values can be approximations, * false otherwise. --- 1925,1936 ---- *
                    * * @param catalog The catalog to retrieve information from, or the empty string ! * to return entities not associated with a catalog, or * null to return information from all catalogs. * @param schema The schema to retrieve information from, or the empty string * to return entities not associated with a schema. * @param tableName The table name to return information for. ! * @param unique true to return only unique indexes, * false otherwise. * @param approximate true if data values can be approximations, * false otherwise. *************** public interface DatabaseMetaData *** 2012,2018 **** boolean ownInsertsAreVisible(int type) throws SQLException; /** ! * This method tests whether or not the specified result set type sees * updates committed by others. * * @param type The desired result type, which is one of the constants --- 2012,2018 ---- boolean ownInsertsAreVisible(int type) throws SQLException; /** ! * This method tests whether or not the specified result set type sees * updates committed by others. * * @param type The desired result type, which is one of the constants *************** public interface DatabaseMetaData *** 2025,2031 **** boolean othersUpdatesAreVisible(int type) throws SQLException; /** ! * This method tests whether or not the specified result set type sees * deletes committed by others. * * @param type The desired result type, which is one of the constants --- 2025,2031 ---- boolean othersUpdatesAreVisible(int type) throws SQLException; /** ! * This method tests whether or not the specified result set type sees * deletes committed by others. * * @param type The desired result type, which is one of the constants *************** public interface DatabaseMetaData *** 2038,2044 **** boolean othersDeletesAreVisible(int type) throws SQLException; /** ! * This method tests whether or not the specified result set type sees * inserts committed by others. * * @param type The desired result type, which is one of the constants --- 2038,2044 ---- boolean othersDeletesAreVisible(int type) throws SQLException; /** ! * This method tests whether or not the specified result set type sees * inserts committed by others. * * @param type The desired result type, which is one of the constants *************** public interface DatabaseMetaData *** 2075,2081 **** * @see ResultSet */ boolean deletesAreDetected(int type) throws SQLException; ! /** * This method tests whether or not the specified result set type can detect * a visible insert by calling the rowUpdated method. --- 2075,2081 ---- * @see ResultSet */ boolean deletesAreDetected(int type) throws SQLException; ! /** * This method tests whether or not the specified result set type can detect * a visible insert by calling the rowUpdated method. *************** public interface DatabaseMetaData *** 2138,2144 **** /** * This method tests whether the databse supports savepoints. ! * * @return true if the database supports savepoints, * false if it does not. * @exception SQLException If an error occurs. --- 2138,2144 ---- /** * This method tests whether the databse supports savepoints. ! * * @return true if the database supports savepoints, * false if it does not. * @exception SQLException If an error occurs. *************** public interface DatabaseMetaData *** 2149,2155 **** /** * This method tests whether the database supports named parameters. ! * * @return true if the database supports named parameters, * false if it does not. * @exception SQLException If an error occurs. --- 2149,2155 ---- /** * This method tests whether the database supports named parameters. ! * * @return true if the database supports named parameters, * false if it does not. * @exception SQLException If an error occurs. *************** public interface DatabaseMetaData *** 2160,2166 **** /** * This method tests whether the database supports returning multiple * ResultSetS from a CallableStatement at once. ! * * @return true if the database supports returnig multiple * results at once, false if it does not. * @exception SQLException If an error occurs. --- 2160,2166 ---- /** * This method tests whether the database supports returning multiple * ResultSetS from a CallableStatement at once. ! * * @return true if the database supports returnig multiple * results at once, false if it does not. * @exception SQLException If an error occurs. *************** public interface DatabaseMetaData *** 2195,2201 **** * This method tests if the database supports the specified holdability type. * Valid values for this parameter are specified in the * ResultSet class. ! * * @param holdability The holdability type to test. * @return true if the database supports the holdability type, * false if it does not. --- 2195,2201 ---- * This method tests if the database supports the specified holdability type. * Valid values for this parameter are specified in the * ResultSet class. ! * * @param holdability The holdability type to test. * @return true if the database supports the holdability type, * false if it does not. *************** public interface DatabaseMetaData *** 2210,2216 **** * This method returns the default holdability type of ResultSetS * retrieved from this database. The possible values are specified in the * ResultSet class. ! * * @return The default holdability type. * @exception SQLException If an error occurs. * @since 1.4 --- 2210,2216 ---- * This method returns the default holdability type of ResultSetS * retrieved from this database. The possible values are specified in the * ResultSet class. ! * * @return The default holdability type. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface DatabaseMetaData *** 2219,2225 **** /** * This method returns the major version number of the database. ! * * @return The major version number of the database. * @exception SQLException If an error occurs. * @since 1.4 --- 2219,2225 ---- /** * This method returns the major version number of the database. ! * * @return The major version number of the database. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface DatabaseMetaData *** 2228,2234 **** /** * This method returns the minor version number of the database. ! * * @return The minor version number of the database. * @exception SQLException If an error occurs. * @since 1.4 --- 2228,2234 ---- /** * This method returns the minor version number of the database. ! * * @return The minor version number of the database. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface DatabaseMetaData *** 2237,2243 **** /** * This method returns the major version number of the JDBC driver. ! * * @return The major version number of the JDBC driver. * @exception SQLException If an error occurs. * @since 1.4 --- 2237,2243 ---- /** * This method returns the major version number of the JDBC driver. ! * * @return The major version number of the JDBC driver. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface DatabaseMetaData *** 2246,2252 **** /** * This method returns the minor version number of the JDBC driver. ! * * @return The minor version number of the database. * @exception SQLException If an error occurs. * @since 1.4 --- 2246,2252 ---- /** * This method returns the minor version number of the JDBC driver. ! * * @return The minor version number of the database. * @exception SQLException If an error occurs. * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Date.java gcc-4.6.0/libjava/classpath/java/sql/Date.java *** gcc-4.5.2/libjava/classpath/java/sql/Date.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/Date.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.text.SimpleDateFormat; *** 46,52 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class Date extends java.util.Date { static final long serialVersionUID = 1511598038487230103L; --- 46,52 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class Date extends java.util.Date { static final long serialVersionUID = 1511598038487230103L; *************** public class Date extends java.util.Date *** 67,78 **** */ public Date(int year, int month, int day) { ! super(year, month, day); } /** * This method initializes a new instance of this class with the ! * specified time value representing the number of milliseconds since * Jan 1, 1970 at 12:00 midnight GMT. * * @param date The time value to intialize this date to. --- 67,78 ---- */ public Date(int year, int month, int day) { ! super(year, month, day); } /** * This method initializes a new instance of this class with the ! * specified time value representing the number of milliseconds since * Jan 1, 1970 at 12:00 midnight GMT. * * @param date The time value to intialize this date to. *************** public class Date extends java.util.Date *** 157,174 **** */ public static Date valueOf (String str) { ! try { ! java.util.Date d = (java.util.Date) sdf.parseObject(str); ! if (d == null) ! throw new IllegalArgumentException(str); ! else ! return new Date(d.getTime()); } catch (ParseException e) { ! throw new IllegalArgumentException(str); } } --- 157,174 ---- */ public static Date valueOf (String str) { ! try { ! java.util.Date d = (java.util.Date) sdf.parseObject(str); ! if (d == null) ! throw new IllegalArgumentException(str); ! else ! return new Date(d.getTime()); } catch (ParseException e) { ! throw new IllegalArgumentException(str); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Driver.java gcc-4.6.0/libjava/classpath/java/sql/Driver.java *** gcc-4.5.2/libjava/classpath/java/sql/Driver.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/Driver.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Properties; *** 43,59 **** * This interface specifies a mechanism for accessing a JDBC database * driver. When the class implementing this method is loaded, it should * register an instance of itself with the DriverManager in ! * a static initializer. *

                    * Because the DriverManager might attempt to use several ! * drivers to find one that can connect to the requested database, * this driver should not cause large numbers of classes and code to * be loaded. If another driver is the one that ends up performing the * request, any loading done by this driver would be wasted. * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Driver { /** * This method connects to the specified database using the connection --- 43,59 ---- * This interface specifies a mechanism for accessing a JDBC database * driver. When the class implementing this method is loaded, it should * register an instance of itself with the DriverManager in ! * a static initializer. *

                    * Because the DriverManager might attempt to use several ! * drivers to find one that can connect to the requested database, * this driver should not cause large numbers of classes and code to * be loaded. If another driver is the one that ends up performing the * request, any loading done by this driver would be wasted. * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Driver { /** * This method connects to the specified database using the connection *************** public interface Driver *** 61,67 **** * URL, it should return null instead of throwing an * exception since the DriverManager will probe a driver * in this manner. ! * * @param url The URL string for this connection. * @param properties The list of database connection properties. * @return A Connection object for the newly established --- 61,67 ---- * URL, it should return null instead of throwing an * exception since the DriverManager will probe a driver * in this manner. ! * * @param url The URL string for this connection. * @param properties The list of database connection properties. * @return A Connection object for the newly established *************** public interface Driver *** 72,83 **** /** * This method tests whether or not the driver believes it can connect to ! * the specified database. The driver should only test whether it ! * understands and accepts the URL. It should not necessarily attempt to * probe the database for a connection. * * @param url The database URL string. ! * @return true if the drivers can connect to the database, * false otherwise. * @exception SQLException If an error occurs. */ --- 72,83 ---- /** * This method tests whether or not the driver believes it can connect to ! * the specified database. The driver should only test whether it ! * understands and accepts the URL. It should not necessarily attempt to * probe the database for a connection. * * @param url The database URL string. ! * @return true if the drivers can connect to the database, * false otherwise. * @exception SQLException If an error occurs. */ *************** public interface Driver *** 101,107 **** * This method returns the major version number of the driver. * * @return The major version number of the driver. ! */ int getMajorVersion(); /** --- 101,107 ---- * This method returns the major version number of the driver. * * @return The major version number of the driver. ! */ int getMajorVersion(); /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/DriverManager.java gcc-4.6.0/libjava/classpath/java/sql/DriverManager.java *** gcc-4.5.2/libjava/classpath/java/sql/DriverManager.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/sql/DriverManager.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Vector; *** 55,61 **** * property should be a colon separated list of fully qualified driver * class names. Additional drivers can be loaded at any time by * simply loading the driver class with class.forName(String). ! * The driver should automatically register itself in a static * initializer. *

                    * The methods in this class are all static. This class --- 55,61 ---- * property should be a colon separated list of fully qualified driver * class names. Additional drivers can be loaded at any time by * simply loading the driver class with class.forName(String). ! * The driver should automatically register itself in a static * initializer. *

                    * The methods in this class are all static. This class *************** import java.util.Vector; *** 63,69 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class DriverManager { /** * This is the log stream for JDBC drivers. --- 63,69 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class DriverManager { /** * This is the log stream for JDBC drivers. *************** public class DriverManager *** 95,113 **** String driver_string = System.getProperty("jdbc.drivers"); if (driver_string != null) { ! StringTokenizer st = new StringTokenizer(driver_string); ! while (st.hasMoreTokens()) { String driver_classname = st.nextToken(); try { ! Class.forName(driver_classname); // The driver registers itself } catch (Exception e) ! { ! // Ignore not founds ! } } } --- 95,113 ---- String driver_string = System.getProperty("jdbc.drivers"); if (driver_string != null) { ! StringTokenizer st = new StringTokenizer(driver_string); ! while (st.hasMoreTokens()) { String driver_classname = st.nextToken(); try { ! Class.forName(driver_classname); // The driver registers itself } catch (Exception e) ! { ! // Ignore not founds ! } } } *************** public class DriverManager *** 129,139 **** { return log_writer; } ! /** * This method sets the log writer being used by JDBC drivers. This is a * system-wide parameter that affects all drivers. Note that since there ! * is no way to retrieve a PrintStream from a * PrintWriter, this method cannot set the log stream in * use by JDBC. Thus any older drivers may not see this setting. * --- 129,139 ---- { return log_writer; } ! /** * This method sets the log writer being used by JDBC drivers. This is a * system-wide parameter that affects all drivers. Note that since there ! * is no way to retrieve a PrintStream from a * PrintWriter, this method cannot set the log stream in * use by JDBC. Thus any older drivers may not see this setting. * *************** public class DriverManager *** 223,230 **** Enumeration e = drivers.elements(); while(e.hasMoreElements()) { ! Driver d = (Driver)e.nextElement(); ! if (d.acceptsURL(url)) return d; } --- 223,230 ---- Enumeration e = drivers.elements(); while(e.hasMoreElements()) { ! Driver d = (Driver)e.nextElement(); ! if (d.acceptsURL(url)) return d; } *************** public class DriverManager *** 242,248 **** public static void registerDriver(Driver driver) throws SQLException { if (! drivers.contains(driver)) ! drivers.addElement(driver); } /** --- 242,248 ---- public static void registerDriver(Driver driver) throws SQLException { if (! drivers.contains(driver)) ! drivers.addElement(driver); } /** *************** public class DriverManager *** 274,290 **** while(e.hasMoreElements()) { ! Object obj = e.nextElement(); ! ClassLoader loader = obj.getClass().getClassLoader(); ! if (loader == null) ! loader = ClassLoader.getSystemClassLoader(); ! if (! loader.equals(cl)) ! continue; ! v.addElement(obj); ! } return v.elements(); } --- 274,290 ---- while(e.hasMoreElements()) { ! Object obj = e.nextElement(); ! ClassLoader loader = obj.getClass().getClassLoader(); ! if (loader == null) ! loader = ClassLoader.getSystemClassLoader(); ! if (! loader.equals(cl)) ! continue; ! v.addElement(obj); ! } return v.elements(); } *************** public class DriverManager *** 297,303 **** */ public static void setLoginTimeout(int seconds) { ! DriverManager.login_timeout = seconds; } /** --- 297,303 ---- */ public static void setLoginTimeout(int seconds) { ! DriverManager.login_timeout = seconds; } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/DriverPropertyInfo.java gcc-4.6.0/libjava/classpath/java/sql/DriverPropertyInfo.java *** gcc-4.5.2/libjava/classpath/java/sql/DriverPropertyInfo.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/DriverPropertyInfo.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 44,50 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class DriverPropertyInfo { /** * The name of the property. --- 44,50 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class DriverPropertyInfo { /** * The name of the property. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/ParameterMetaData.java gcc-4.6.0/libjava/classpath/java/sql/ParameterMetaData.java *** gcc-4.5.2/libjava/classpath/java/sql/ParameterMetaData.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/ParameterMetaData.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 40,46 **** /** * @since 1.4 */ ! public interface ParameterMetaData { int parameterNoNulls = 0; --- 40,46 ---- /** * @since 1.4 */ ! public interface ParameterMetaData { int parameterNoNulls = 0; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/PreparedStatement.java gcc-4.6.0/libjava/classpath/java/sql/PreparedStatement.java *** gcc-4.5.2/libjava/classpath/java/sql/PreparedStatement.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/PreparedStatement.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Calendar; *** 48,59 **** * statements. This provides greater efficiency when calling the same * statement multiple times. Parameters are allowed in a statement, * providings for maximum reusability. ! * *

                    Note that in this class parameter indices start at 1, not 0.

                    * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface PreparedStatement extends Statement { /** * This method executes a prepared SQL query and returns its ResultSet. --- 48,59 ---- * statements. This provides greater efficiency when calling the same * statement multiple times. Parameters are allowed in a statement, * providings for maximum reusability. ! * *

                    Note that in this class parameter indices start at 1, not 0.

                    * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface PreparedStatement extends Statement { /** * This method executes a prepared SQL query and returns its ResultSet. *************** public interface PreparedStatement exten *** 78,84 **** * for the specified type. * * @param index The index of the parameter to set. ! * @param sqlType The SQL type identifier of the parameter from * Types * * @exception SQLException If an error occurs. --- 78,84 ---- * for the specified type. * * @param index The index of the parameter to set. ! * @param sqlType The SQL type identifier of the parameter from * Types * * @exception SQLException If an error occurs. *************** public interface PreparedStatement exten *** 268,274 **** * * @param index The index of the parameter value to set. * @param value The value of the parameter. ! * @param sqlType The SQL type to use for the parameter, from * Types * @param scale The scale of the value, for numeric values only. * @exception SQLException If an error occurs. --- 268,274 ---- * * @param index The index of the parameter value to set. * @param value The value of the parameter. ! * @param sqlType The SQL type to use for the parameter, from * Types * @param scale The scale of the value, for numeric values only. * @exception SQLException If an error occurs. *************** public interface PreparedStatement exten *** 283,289 **** * * @param index The index of the parameter value to set. * @param value The value of the parameter. ! * @param sqlType The SQL type to use for the parameter, from * Types * @exception SQLException If an error occurs. * @see Types --- 283,289 ---- * * @param index The index of the parameter value to set. * @param value The value of the parameter. ! * @param sqlType The SQL type to use for the parameter, from * Types * @exception SQLException If an error occurs. * @see Types *************** public interface PreparedStatement exten *** 348,354 **** * will be used. * * @param index The index of the parameter value to set. ! * @param value The Blob used to set the * value of the parameter. * @exception SQLException If an error occurs. */ --- 348,354 ---- * will be used. * * @param index The index of the parameter value to set. ! * @param value The Blob used to set the * value of the parameter. * @exception SQLException If an error occurs. */ *************** public interface PreparedStatement exten *** 437,443 **** /** * This method sets the specified parameter from the given Java * java.net.URL value. ! * * @param index The index of the parameter to set. * @param value The value of the parameter. * @exception SQLException If an error occurs. --- 437,443 ---- /** * This method sets the specified parameter from the given Java * java.net.URL value. ! * * @param index The index of the parameter to set. * @param value The value of the parameter. * @exception SQLException If an error occurs. *************** public interface PreparedStatement exten *** 446,455 **** void setURL(int index, URL value) throws SQLException; /** ! * Returns information about the parameters set on this * PreparedStatement (see {@link ParameterMetaData} for a * detailed description of the provided information). ! * * @return Meta data for the parameters of this statement. * @see ParameterMetaData * @since 1.4 --- 446,455 ---- void setURL(int index, URL value) throws SQLException; /** ! * Returns information about the parameters set on this * PreparedStatement (see {@link ParameterMetaData} for a * detailed description of the provided information). ! * * @return Meta data for the parameters of this statement. * @see ParameterMetaData * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Ref.java gcc-4.6.0/libjava/classpath/java/sql/Ref.java *** gcc-4.5.2/libjava/classpath/java/sql/Ref.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/sql/Ref.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Map; *** 46,52 **** * @author Aaron M. Renn (arenn@urbanophile.com) * @since 1.2 */ ! public interface Ref { /** * This method returns the fully qualified name of the SQL structured --- 46,52 ---- * @author Aaron M. Renn (arenn@urbanophile.com) * @since 1.2 */ ! public interface Ref { /** * This method returns the fully qualified name of the SQL structured diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/ResultSet.java gcc-4.6.0/libjava/classpath/java/sql/ResultSet.java *** gcc-4.5.2/libjava/classpath/java/sql/ResultSet.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/sql/ResultSet.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Map; *** 59,65 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface ResultSet { /** * The rows will be processed in order from first to last. --- 59,65 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface ResultSet { /** * The rows will be processed in order from first to last. *************** public interface ResultSet *** 119,125 **** /** * This method closes the result set and frees any associated resources. ! * * @exception SQLException If an error occurs. */ void close() throws SQLException; --- 119,125 ---- /** * This method closes the result set and frees any associated resources. ! * * @exception SQLException If an error occurs. */ void close() throws SQLException; *************** public interface ResultSet *** 268,276 **** Timestamp getTimestamp(int columnIndex) throws SQLException; /** ! * This method returns the value of the specified column as an ASCII * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * --- 268,276 ---- Timestamp getTimestamp(int columnIndex) throws SQLException; /** ! * This method returns the value of the specified column as an ASCII * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * *************** public interface ResultSet *** 283,289 **** /** * This method returns the value of the specified column as a Unicode UTF-8 * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * --- 283,289 ---- /** * This method returns the value of the specified column as a Unicode UTF-8 * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * *************** public interface ResultSet *** 297,303 **** /** * This method returns the value of the specified column as a raw byte * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * --- 297,303 ---- /** * This method returns the value of the specified column as a raw byte * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * *************** public interface ResultSet *** 440,448 **** Timestamp getTimestamp(String columnName) throws SQLException; /** ! * This method returns the value of the specified column as an ASCII * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * --- 440,448 ---- Timestamp getTimestamp(String columnName) throws SQLException; /** ! * This method returns the value of the specified column as an ASCII * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * *************** public interface ResultSet *** 455,461 **** /** * This method returns the value of the specified column as a Unicode UTF-8 * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * --- 455,461 ---- /** * This method returns the value of the specified column as a Unicode UTF-8 * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * *************** public interface ResultSet *** 469,475 **** /** * This method returns the value of the specified column as a raw byte * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * --- 469,475 ---- /** * This method returns the value of the specified column as a raw byte * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * *************** public interface ResultSet *** 546,552 **** /** * This method returns the value of the specified column as a character * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * --- 546,552 ---- /** * This method returns the value of the specified column as a character * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * *************** public interface ResultSet *** 559,565 **** /** * This method returns the value of the specified column as a character * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * --- 559,565 ---- /** * This method returns the value of the specified column as a character * stream. Note that all the data from this stream must be read before ! * fetching the value of any other column. Please also be aware that * calling next() or close() on this result set * will close this stream as well. * *************** public interface ResultSet *** 632,638 **** /** * This method repositions the cursor to before the first row in the * result set. ! * * @exception SQLException If an error occurs. */ void beforeFirst() throws SQLException; --- 632,638 ---- /** * This method repositions the cursor to before the first row in the * result set. ! * * @exception SQLException If an error occurs. */ void beforeFirst() throws SQLException; *************** public interface ResultSet *** 640,646 **** /** * This method repositions the cursor to after the last row in the result * set. ! * * @exception SQLException If an error occurs. */ void afterLast() throws SQLException; --- 640,646 ---- /** * This method repositions the cursor to after the last row in the result * set. ! * * @exception SQLException If an error occurs. */ void afterLast() throws SQLException; *************** public interface ResultSet *** 658,664 **** /** * This method repositions the cursor on the last row in the result * set. ! * * @return true if the cursor is on a valid row; * false if there are no rows in the result set. * @exception SQLException If an error occurs. --- 658,664 ---- /** * This method repositions the cursor on the last row in the result * set. ! * * @return true if the cursor is on a valid row; * false if there are no rows in the result set. * @exception SQLException If an error occurs. *************** public interface ResultSet *** 711,717 **** /** * This method provides a hint to the driver about which direction the ! * result set will be processed in. * * @param direction The direction in which rows will be processed. The * allowed values are the FETCH_* constants --- 711,717 ---- /** * This method provides a hint to the driver about which direction the ! * result set will be processed in. * * @param direction The direction in which rows will be processed. The * allowed values are the FETCH_* constants *************** public interface ResultSet *** 738,744 **** void setFetchSize(int rows) throws SQLException; /** ! * This method returns the current number of rows that will be fetched * from the database at a time. * * @return The current fetch size for this result set. --- 738,744 ---- void setFetchSize(int rows) throws SQLException; /** ! * This method returns the current number of rows that will be fetched * from the database at a time. * * @return The current fetch size for this result set. *************** public interface ResultSet *** 941,947 **** void updateTime(int columnIndex, Time value) throws SQLException; /** ! * This method updates the specified column to have a java.sql.Timestamp value. * This does not update the actual database. updateRow must be * called in order to do that. * --- 941,947 ---- void updateTime(int columnIndex, Time value) throws SQLException; /** ! * This method updates the specified column to have a java.sql.Timestamp value. * This does not update the actual database. updateRow must be * called in order to do that. * *************** public interface ResultSet *** 992,998 **** throws SQLException; /** ! * This method updates the specified column to have an Object value. * This does not update the actual database. updateRow must be * called in order to do that. * --- 992,998 ---- throws SQLException; /** ! * This method updates the specified column to have an Object value. * This does not update the actual database. updateRow must be * called in order to do that. * *************** public interface ResultSet *** 1006,1012 **** throws SQLException; /** ! * This method updates the specified column to have an Object value. * This does not update the actual database. updateRow must be * called in order to do that. * --- 1006,1012 ---- throws SQLException; /** ! * This method updates the specified column to have an Object value. * This does not update the actual database. updateRow must be * called in order to do that. * *************** public interface ResultSet *** 1160,1166 **** void updateTime(String columnName, Time value) throws SQLException; /** ! * This method updates the specified column to have a java.sql.Timestamp value. * This does not update the actual database. updateRow must be * called in order to do that. * --- 1160,1166 ---- void updateTime(String columnName, Time value) throws SQLException; /** ! * This method updates the specified column to have a java.sql.Timestamp value. * This does not update the actual database. updateRow must be * called in order to do that. * *************** public interface ResultSet *** 1211,1217 **** throws SQLException; /** ! * This method updates the specified column to have an Object value. * This does not update the actual database. updateRow must be * called in order to do that. * --- 1211,1217 ---- throws SQLException; /** ! * This method updates the specified column to have an Object value. * This does not update the actual database. updateRow must be * called in order to do that. * *************** public interface ResultSet *** 1225,1231 **** throws SQLException; /** ! * This method updates the specified column to have an Object value. * This does not update the actual database. updateRow must be * called in order to do that. * --- 1225,1231 ---- throws SQLException; /** ! * This method updates the specified column to have an Object value. * This does not update the actual database. updateRow must be * called in order to do that. * *************** public interface ResultSet *** 1266,1272 **** void refreshRow() throws SQLException; /** ! * This method cancels any changes that have been made to a row. If * the rowUpdate method has been called, then the changes * cannot be undone. * --- 1266,1272 ---- void refreshRow() throws SQLException; /** ! * This method cancels any changes that have been made to a row. If * the rowUpdate method has been called, then the changes * cannot be undone. * *************** public interface ResultSet *** 1358,1364 **** * @return The value of the column as an Object. * @exception SQLException If an error occurs. */ ! Object getObject(String columnName, Map> map) throws SQLException; /** --- 1358,1364 ---- * @return The value of the column as an Object. * @exception SQLException If an error occurs. */ ! Object getObject(String columnName, Map> map) throws SQLException; /** *************** public interface ResultSet *** 1399,1405 **** Array getArray(String columnName) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Date. The specified Calendar is used * to generate a value for the date if the database does not support * timezones. --- 1399,1405 ---- Array getArray(String columnName) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Date. The specified Calendar is used * to generate a value for the date if the database does not support * timezones. *************** public interface ResultSet *** 1412,1418 **** Date getDate(int columnIndex, Calendar cal) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Date. The specified Calendar is used * to generate a value for the date if the database does not support * timezones. --- 1412,1418 ---- Date getDate(int columnIndex, Calendar cal) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Date. The specified Calendar is used * to generate a value for the date if the database does not support * timezones. *************** public interface ResultSet *** 1425,1431 **** Date getDate(String columnName, Calendar cal) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Time. The specified Calendar is used * to generate a value for the time if the database does not support * timezones. --- 1425,1431 ---- Date getDate(String columnName, Calendar cal) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Time. The specified Calendar is used * to generate a value for the time if the database does not support * timezones. *************** public interface ResultSet *** 1438,1444 **** Time getTime(int columnIndex, Calendar cal) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Time. The specified Calendar is used * to generate a value for the time if the database does not support * timezones. --- 1438,1444 ---- Time getTime(int columnIndex, Calendar cal) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Time. The specified Calendar is used * to generate a value for the time if the database does not support * timezones. *************** public interface ResultSet *** 1451,1457 **** Time getTime(String columnName, Calendar cal) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Timestamp. The specified Calendar is used * to generate a value for the timestamp if the database does not support * timezones. --- 1451,1457 ---- Time getTime(String columnName, Calendar cal) throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Timestamp. The specified Calendar is used * to generate a value for the timestamp if the database does not support * timezones. *************** public interface ResultSet *** 1465,1471 **** throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Timestamp. The specified Calendar is used * to generate a value for the timestamp if the database does not support * timezones. --- 1465,1471 ---- throws SQLException; /** ! * This method returns the specified column value as a * java.sql.Timestamp. The specified Calendar is used * to generate a value for the timestamp if the database does not support * timezones. *************** public interface ResultSet *** 1481,1489 **** throws SQLException; /** ! * This method returns the specified column value as a * java.net.URL. ! * * @param columnIndex The index of the column value to return. * @exception SQLException If an error occurs. * @since 1.4 --- 1481,1489 ---- throws SQLException; /** ! * This method returns the specified column value as a * java.net.URL. ! * * @param columnIndex The index of the column value to return. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface ResultSet *** 1493,1499 **** /** * This method returns the specified column value as a * java.net.URL. ! * * @param columnName The name of the column value to return. * @exception SQLException If an error occurs. * @since 1.4 --- 1493,1499 ---- /** * This method returns the specified column value as a * java.net.URL. ! * * @param columnName The name of the column value to return. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface ResultSet *** 1501,1513 **** URL getURL(String columnName) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Ref value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnIndex The index of the column value to update. ! * @parm value The java.sql.Ref used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 --- 1501,1513 ---- URL getURL(String columnName) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Ref value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnIndex The index of the column value to update. ! * @parm value The java.sql.Ref used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface ResultSet *** 1515,1527 **** void updateRef(int columnIndex, Ref value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Ref value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnName The name of the column value to update. ! * @parm value The java.sql.Ref used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 --- 1515,1527 ---- void updateRef(int columnIndex, Ref value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Ref value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnName The name of the column value to update. ! * @parm value The java.sql.Ref used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface ResultSet *** 1529,1541 **** void updateRef(String columnName, Ref value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Blob value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnIndex The index of the column value to update. ! * @parm value The java.sql.Blob used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 --- 1529,1541 ---- void updateRef(String columnName, Ref value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Blob value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnIndex The index of the column value to update. ! * @parm value The java.sql.Blob used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface ResultSet *** 1543,1555 **** void updateBlob(int columnIndex, Blob value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Blob value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnName The name of the column value to update. ! * @parm value The java.sql.Blob used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 --- 1543,1555 ---- void updateBlob(int columnIndex, Blob value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Blob value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnName The name of the column value to update. ! * @parm value The java.sql.Blob used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface ResultSet *** 1557,1569 **** void updateBlob(String columnName, Blob value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Clob value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnIndex The index of the column value to update. ! * @parm value The java.sql.Clob used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 --- 1557,1569 ---- void updateBlob(String columnName, Blob value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Clob value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnIndex The index of the column value to update. ! * @parm value The java.sql.Clob used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface ResultSet *** 1571,1583 **** void updateClob(int columnIndex, Clob value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Clob value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnName The name of the column value to update. ! * @parm value The java.sql.Clob used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 --- 1571,1583 ---- void updateClob(int columnIndex, Clob value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sql.Clob value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnName The name of the column value to update. ! * @parm value The java.sql.Clob used to set the new value * of the column. * @exception SQLException If an error occurs. * @since 1.4 *************** public interface ResultSet *** 1585,1595 **** void updateClob(String columnName, Clob value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sqlArray value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnIndex The index of the column value to update. * @parm value The new value of the column. * @exception SQLException If an error occurs. --- 1585,1595 ---- void updateClob(String columnName, Clob value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sqlArray value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnIndex The index of the column value to update. * @parm value The new value of the column. * @exception SQLException If an error occurs. *************** public interface ResultSet *** 1598,1608 **** void updateArray(int columnIndex, Array value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sqlArray value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnName The name of the column value to update. * @parm value The new value of the column. * @exception SQLException If an error occurs. --- 1598,1608 ---- void updateArray(int columnIndex, Array value) throws SQLException; /** ! * This method updates the specified column to have a ! * java.sqlArray value. * This does not update the actual database. updateRow must be * called in order to do that. ! * * @parm columnName The name of the column value to update. * @parm value The new value of the column. * @exception SQLException If an error occurs. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/ResultSetMetaData.java gcc-4.6.0/libjava/classpath/java/sql/ResultSetMetaData.java *** gcc-4.5.2/libjava/classpath/java/sql/ResultSetMetaData.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/ResultSetMetaData.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 41,52 **** /** * This interface provides a mechanism for obtaining information about * the columns that are present in a ResultSet. ! * *

                    Note that in this class column indices start at 1, not 0.

                    * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface ResultSetMetaData { /** * The column does not allow NULL's. --- 41,52 ---- /** * This interface provides a mechanism for obtaining information about * the columns that are present in a ResultSet. ! * *

                    Note that in this class column indices start at 1, not 0.

                    * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface ResultSetMetaData { /** * The column does not allow NULL's. *************** public interface ResultSetMetaData *** 93,99 **** boolean isCaseSensitive(int columnIndex) throws SQLException; /** ! * This method tests whether not the specified column can be used in * a WHERE clause. * * @param columnIndex The index of the column to test. --- 93,99 ---- boolean isCaseSensitive(int columnIndex) throws SQLException; /** ! * This method tests whether not the specified column can be used in * a WHERE clause. * * @param columnIndex The index of the column to test. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/SQLData.java gcc-4.6.0/libjava/classpath/java/sql/SQLData.java *** gcc-4.5.2/libjava/classpath/java/sql/SQLData.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/SQLData.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 43,49 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface SQLData { /** * This method returns the user defined datatype name for this object. --- 43,49 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface SQLData { /** * This method returns the user defined datatype name for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/SQLException.java gcc-4.6.0/libjava/classpath/java/sql/SQLException.java *** gcc-4.5.2/libjava/classpath/java/sql/SQLException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/SQLException.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 43,49 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class SQLException extends Exception { static final long serialVersionUID = 2135244094396331484L; --- 43,49 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class SQLException extends Exception { static final long serialVersionUID = 2135244094396331484L; *************** public class SQLException extends Except *** 75,81 **** { super(message); this.SQLState = SQLState; ! this.vendorCode = vendorCode; } /** --- 75,81 ---- { super(message); this.SQLState = SQLState; ! this.vendorCode = vendorCode; } /** *************** public class SQLException extends Except *** 100,106 **** */ public SQLException(String message) { ! this(message, null, 0); } /** --- 100,106 ---- */ public SQLException(String message) { ! this(message, null, 0); } /** *************** public class SQLException extends Except *** 110,116 **** */ public SQLException() { ! this(null, null, 0); } /** --- 110,116 ---- */ public SQLException() { ! this(null, null, 0); } /** *************** public class SQLException extends Except *** 126,132 **** } /** ! * This method returns the vendor specific error code associated with * this error. * * @return The vendor specific error code associated with this error. --- 126,132 ---- } /** ! * This method returns the vendor specific error code associated with * this error. * * @return The vendor specific error code associated with this error. *************** public class SQLException extends Except *** 139,145 **** /** * This method returns the exception that is chained to this object. * ! * @return The exception chained to this object, which may be * null. */ public SQLException getNextException() --- 139,145 ---- /** * This method returns the exception that is chained to this object. * ! * @return The exception chained to this object, which may be * null. */ public SQLException getNextException() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/SQLInput.java gcc-4.6.0/libjava/classpath/java/sql/SQLInput.java *** gcc-4.5.2/libjava/classpath/java/sql/SQLInput.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/SQLInput.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.net.URL; *** 50,56 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface SQLInput { /** * This method reads the next item from the stream a Java --- 50,56 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface SQLInput { /** * This method reads the next item from the stream a Java *************** public interface SQLInput *** 137,143 **** * This method reads the next item from the stream a Java * byte array * ! * @return The value read from the stream as a byte array. * @exception SQLException If an error occurs. */ byte[] readBytes() throws SQLException; --- 137,143 ---- * This method reads the next item from the stream a Java * byte array * ! * @return The value read from the stream as a byte array. * @exception SQLException If an error occurs. */ byte[] readBytes() throws SQLException; *************** public interface SQLInput *** 256,259 **** */ URL readURL() throws SQLException; } - --- 256,258 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/SQLOutput.java gcc-4.6.0/libjava/classpath/java/sql/SQLOutput.java *** gcc-4.5.2/libjava/classpath/java/sql/SQLOutput.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/SQLOutput.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.net.URL; *** 50,56 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface SQLOutput { /** * This method writes the specified Java String --- 50,56 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface SQLOutput { /** * This method writes the specified Java String *************** public interface SQLOutput *** 143,149 **** void writeBytes(byte[] value) throws SQLException; /** ! * This method writes the specified Java java.sql.Date * to the SQL stream. * * @param value The value to write to the stream. --- 143,149 ---- void writeBytes(byte[] value) throws SQLException; /** ! * This method writes the specified Java java.sql.Date * to the SQL stream. * * @param value The value to write to the stream. *************** public interface SQLOutput *** 152,158 **** void writeDate(Date value) throws SQLException; /** ! * This method writes the specified Java java.sql.Time * to the SQL stream. * * @param value The value to write to the stream. --- 152,158 ---- void writeDate(Date value) throws SQLException; /** ! * This method writes the specified Java java.sql.Time * to the SQL stream. * * @param value The value to write to the stream. *************** public interface SQLOutput *** 161,167 **** void writeTime(Time value) throws SQLException; /** ! * This method writes the specified Java java.sql.Timestamp * to the SQL stream. * * @param value The value to write to the stream. --- 161,167 ---- void writeTime(Time value) throws SQLException; /** ! * This method writes the specified Java java.sql.Timestamp * to the SQL stream. * * @param value The value to write to the stream. *************** public interface SQLOutput *** 256,264 **** void writeArray(Array value) throws SQLException; /** ! * This method writes the specified java.net.URL object to the * SQL stream. ! * * @param value The value to write to the stream. * @exception SQLException If an error occurs. * @since 1.4 --- 256,264 ---- void writeArray(Array value) throws SQLException; /** ! * This method writes the specified java.net.URL object to the * SQL stream. ! * * @param value The value to write to the stream. * @exception SQLException If an error occurs. * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/SQLPermission.java gcc-4.6.0/libjava/classpath/java/sql/SQLPermission.java *** gcc-4.5.2/libjava/classpath/java/sql/SQLPermission.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/SQLPermission.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.security.BasicPermission; *** 43,49 **** /** * @since 1.3 */ ! public final class SQLPermission extends BasicPermission { public SQLPermission(String name) { --- 43,49 ---- /** * @since 1.3 */ ! public final class SQLPermission extends BasicPermission { public SQLPermission(String name) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/SQLWarning.java gcc-4.6.0/libjava/classpath/java/sql/SQLWarning.java *** gcc-4.5.2/libjava/classpath/java/sql/SQLWarning.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/SQLWarning.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 43,49 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class SQLWarning extends SQLException { static final long serialVersionUID = 3917336774604784856L; --- 43,49 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class SQLWarning extends SQLException { static final long serialVersionUID = 3917336774604784856L; *************** public class SQLWarning extends SQLExcep *** 99,105 **** /** * This method returns the exception that is chained to this object. * ! * @return The exception chained to this object, which may be * null. */ public SQLWarning getNextWarning() --- 99,105 ---- /** * This method returns the exception that is chained to this object. * ! * @return The exception chained to this object, which may be * null. */ public SQLWarning getNextWarning() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Savepoint.java gcc-4.6.0/libjava/classpath/java/sql/Savepoint.java *** gcc-4.5.2/libjava/classpath/java/sql/Savepoint.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/Savepoint.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 41,47 **** /** * @since 1.4 */ ! public interface Savepoint { /** * @since 1.4 --- 41,47 ---- /** * @since 1.4 */ ! public interface Savepoint { /** * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Statement.java gcc-4.6.0/libjava/classpath/java/sql/Statement.java *** gcc-4.5.2/libjava/classpath/java/sql/Statement.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/Statement.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 43,49 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Statement { int CLOSE_CURRENT_RESULT = 1; int KEEP_CURRENT_RESULT = 2; --- 43,49 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Statement { int CLOSE_CURRENT_RESULT = 1; int KEEP_CURRENT_RESULT = 2; *************** public interface Statement *** 66,72 **** /** * This method executes the specified SQL INSERT, UPDATE, or DELETE statement * and returns the number of rows affected, which may be 0. ! * * @param sql The SQL statement to execute. * @return The number of rows affected by the SQL statement. * @exception SQLException If an error occurs. --- 66,72 ---- /** * This method executes the specified SQL INSERT, UPDATE, or DELETE statement * and returns the number of rows affected, which may be 0. ! * * @param sql The SQL statement to execute. * @return The number of rows affected by the SQL statement. * @exception SQLException If an error occurs. *************** public interface Statement *** 117,123 **** * This method sets the local escape processing mode on or off. The * default value is on. * ! * @param escape true to enable local escape processing, * false to disable it. * @exception SQLException If an error occurs. */ --- 117,123 ---- * This method sets the local escape processing mode on or off. The * default value is on. * ! * @param escape true to enable local escape processing, * false to disable it. * @exception SQLException If an error occurs. */ *************** public interface Statement *** 214,223 **** int getUpdateCount() throws SQLException; /** ! * This method advances the result set pointer to the next result set, * which can then be retrieved using getResultSet * ! * @return true if there is another result set, * false otherwise (for example, the next result is an * update count). * @exception SQLException If an error occurs. --- 214,223 ---- int getUpdateCount() throws SQLException; /** ! * This method advances the result set pointer to the next result set, * which can then be retrieved using getResultSet * ! * @return true if there is another result set, * false otherwise (for example, the next result is an * update count). * @exception SQLException If an error occurs. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Struct.java gcc-4.6.0/libjava/classpath/java/sql/Struct.java *** gcc-4.5.2/libjava/classpath/java/sql/Struct.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/sql/Struct.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 41,52 **** import java.util.Map; /** ! * This interface implements the standard type mapping for a SQL * structured type. * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Struct { /** * This method returns the name of the SQL structured type for this --- 41,52 ---- import java.util.Map; /** ! * This interface implements the standard type mapping for a SQL * structured type. * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public interface Struct { /** * This method returns the name of the SQL structured type for this diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Time.java gcc-4.6.0/libjava/classpath/java/sql/Time.java *** gcc-4.5.2/libjava/classpath/java/sql/Time.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/sql/Time.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class Time extends java.util.Date *** 145,160 **** { try { ! java.util.Date d = (java.util.Date) sdf.parseObject(str); ! if (d == null) ! throw new IllegalArgumentException(str); ! else ! return new Time(d.getTime()); } catch (ParseException e) { ! throw new IllegalArgumentException(str); } } --- 145,160 ---- { try { ! java.util.Date d = (java.util.Date) sdf.parseObject(str); ! if (d == null) ! throw new IllegalArgumentException(str); ! else ! return new Time(d.getTime()); } catch (ParseException e) { ! throw new IllegalArgumentException(str); } } *************** public class Time extends java.util.Date *** 178,184 **** /** * This method initializes a new instance of this class with the ! * specified time value representing the number of milliseconds since * Jan 1, 1970 at 12:00 midnight GMT. * * @param date The time value to intialize this Time to. --- 178,184 ---- /** * This method initializes a new instance of this class with the ! * specified time value representing the number of milliseconds since * Jan 1, 1970 at 12:00 midnight GMT. * * @param date The time value to intialize this Time to. *************** public class Time extends java.util.Date *** 199,202 **** } } - --- 199,201 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Timestamp.java gcc-4.6.0/libjava/classpath/java/sql/Timestamp.java *** gcc-4.5.2/libjava/classpath/java/sql/Timestamp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/sql/Timestamp.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.text.SimpleDateFormat; *** 45,51 **** /** * This class is a wrapper around java.util.Date to allow the JDBC * driver to identify the value as a SQL Timestamp. Note that this ! * class also adds an additional field for nano-seconds, and so * is not completely identical to java.util.Date as * the java.sql.Date and java.sql.Time * classes are. --- 45,51 ---- /** * This class is a wrapper around java.util.Date to allow the JDBC * driver to identify the value as a SQL Timestamp. Note that this ! * class also adds an additional field for nano-seconds, and so * is not completely identical to java.util.Date as * the java.sql.Date and java.sql.Time * classes are. *************** public class Timestamp extends java.util *** 74,80 **** * date in JDBC format into a Java date. * * @param str The string to parse. ! * @return The resulting java.sql.Timestamp value. */ public static Timestamp valueOf(String str) { --- 74,80 ---- * date in JDBC format into a Java date. * * @param str The string to parse. ! * @return The resulting java.sql.Timestamp value. */ public static Timestamp valueOf(String str) { *************** public class Timestamp extends java.util *** 82,99 **** int dot = str.indexOf('.'); if (dot != -1) { ! if (str.lastIndexOf('.') != dot) ! throw new IllegalArgumentException(str); ! int len = str.length() - dot - 1; ! if (len < 1 || len > 9) ! throw new IllegalArgumentException(str); ! nanos = Integer.parseInt(str.substring(dot + 1)); ! for (int i = len; i < 9; i++) ! nanos *= 10; ! ! str = str.substring(0, dot); } --- 82,99 ---- int dot = str.indexOf('.'); if (dot != -1) { ! if (str.lastIndexOf('.') != dot) ! throw new IllegalArgumentException(str); ! int len = str.length() - dot - 1; ! if (len < 1 || len > 9) ! throw new IllegalArgumentException(str); ! nanos = Integer.parseInt(str.substring(dot + 1)); ! for (int i = len; i < 9; i++) ! nanos *= 10; ! ! str = str.substring(0, dot); } *************** public class Timestamp extends java.util *** 101,120 **** { java.util.Date d; synchronized (dateFormat) ! { ! d = (java.util.Date) dateFormat.parseObject(str); ! } ! if (d == null) ! throw new IllegalArgumentException(str); ! Timestamp ts = new Timestamp(d.getTime() + nanos / 1000000); ! ts.nanos = nanos; ! return ts; } catch (ParseException e) { ! throw new IllegalArgumentException(str); } } --- 101,120 ---- { java.util.Date d; synchronized (dateFormat) ! { ! d = (java.util.Date) dateFormat.parseObject(str); ! } ! if (d == null) ! throw new IllegalArgumentException(str); ! Timestamp ts = new Timestamp(d.getTime() + nanos / 1000000); ! ts.nanos = nanos; ! return ts; } catch (ParseException e) { ! throw new IllegalArgumentException(str); } } *************** public class Timestamp extends java.util *** 131,137 **** * @param nanos The nanosecond value for this Timestamp (0 to 999,999,9999) * @deprecated */ ! public Timestamp(int year, int month, int day, int hour, int minute, int second, int nanos) { super(year, month, day, hour, minute, second); --- 131,137 ---- * @param nanos The nanosecond value for this Timestamp (0 to 999,999,9999) * @deprecated */ ! public Timestamp(int year, int month, int day, int hour, int minute, int second, int nanos) { super(year, month, day, hour, minute, second); *************** public class Timestamp extends java.util *** 140,146 **** /** * This method initializes a new instance of this class with the ! * specified time value representing the number of milliseconds since * Jan 1, 1970 at 12:00 midnight GMT. * * @param date The time value to intialize this Time to. --- 140,146 ---- /** * This method initializes a new instance of this class with the ! * specified time value representing the number of milliseconds since * Jan 1, 1970 at 12:00 midnight GMT. * * @param date The time value to intialize this Time to. *************** public class Timestamp extends java.util *** 152,158 **** } /** ! * Return the value of this Timestamp as the number of milliseconds * since Jan 1, 1970 at 12:00 midnight GMT. */ public long getTime() --- 152,158 ---- } /** ! * Return the value of this Timestamp as the number of milliseconds * since Jan 1, 1970 at 12:00 midnight GMT. */ public long getTime() *************** public class Timestamp extends java.util *** 170,182 **** synchronized (dateFormat) { sbuf.setLength(0); ! dateFormat.format(this, sbuf, null); ! sbuf.append('.'); ! decimalFormat.format(nanos, sbuf, null); ! int end = sbuf.length() - 1; ! while (end > 20 && sbuf.charAt(end) == '0') ! end--; ! return sbuf.substring(0, end + 1); } } --- 170,182 ---- synchronized (dateFormat) { sbuf.setLength(0); ! dateFormat.format(this, sbuf, null); ! sbuf.append('.'); ! decimalFormat.format(nanos, sbuf, null); ! int end = sbuf.length() - 1; ! while (end > 20 && sbuf.charAt(end) == '0') ! end--; ! return sbuf.substring(0, end + 1); } } *************** public class Timestamp extends java.util *** 280,286 **** /** * Compares this Timestamp to another one. ! * * @param ts The other Timestamp. * @return 0, if both Timestamp's represent exactly * the same date, a negative value if this Timestamp is --- 280,286 ---- /** * Compares this Timestamp to another one. ! * * @param ts The other Timestamp. * @return 0, if both Timestamp's represent exactly * the same date, a negative value if this Timestamp is *************** public class Timestamp extends java.util *** 302,308 **** * compareTo(Timestamp), but it may throw a * ClassCastException, if the specified object is not of type * Timestamp. ! * * @param obj The object to compare with. * @return 0, if both Timestamp's represent exactly * the same date, a negative value if this Timestamp is --- 302,308 ---- * compareTo(Timestamp), but it may throw a * ClassCastException, if the specified object is not of type * Timestamp. ! * * @param obj The object to compare with. * @return 0, if both Timestamp's represent exactly * the same date, a negative value if this Timestamp is diff -Nrcpad gcc-4.5.2/libjava/classpath/java/sql/Types.java gcc-4.6.0/libjava/classpath/java/sql/Types.java *** gcc-4.5.2/libjava/classpath/java/sql/Types.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/sql/Types.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.sql; *** 43,49 **** * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class Types { // These should be self explanatory. People need a SQL book, not // Javadoc comments for these. --- 43,49 ---- * * @author Aaron M. Renn (arenn@urbanophile.com) */ ! public class Types { // These should be self explanatory. People need a SQL book, not // Javadoc comments for these. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/Annotation.java gcc-4.6.0/libjava/classpath/java/text/Annotation.java *** gcc-4.5.2/libjava/classpath/java/text/Annotation.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/text/Annotation.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** toString() *** 110,113 **** } } // class Annotation - --- 110,112 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/AttributedCharacterIterator.java gcc-4.6.0/libjava/classpath/java/text/AttributedCharacterIterator.java *** gcc-4.5.2/libjava/classpath/java/text/AttributedCharacterIterator.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/text/AttributedCharacterIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Set; *** 54,60 **** * characters or which is undefined over a range of characters. * * @since 1.2 ! * * @author Aaron M. Renn (arenn@urbanophile.com) * @since 1.2 */ --- 54,60 ---- * characters or which is undefined over a range of characters. * * @since 1.2 ! * * @author Aaron M. Renn (arenn@urbanophile.com) * @since 1.2 */ *************** public interface AttributedCharacterIter *** 77,83 **** * This is the attribute for the reading form of text. This is used * for storing pronunciation along with the written text for languages * which need it. The value of attributes of this key type are ! * instances of Annotation which wrappers a * String. */ public static final Attribute READING = new Attribute("reading"); --- 77,83 ---- * This is the attribute for the reading form of text. This is used * for storing pronunciation along with the written text for languages * which need it. The value of attributes of this key type are ! * instances of Annotation which wrappers a * String. */ public static final Attribute READING = new Attribute("reading"); *************** public interface AttributedCharacterIter *** 117,123 **** } /** ! * Resolves an instance of * AttributedCharacterIterator.Attribute * that is being deserialized to one of the three pre-defined attribute * constants. It does this by comparing the names of the attributes. The --- 117,123 ---- } /** ! * Resolves an instance of * AttributedCharacterIterator.Attribute * that is being deserialized to one of the three pre-defined attribute * constants. It does this by comparing the names of the attributes. The *************** public interface AttributedCharacterIter *** 125,131 **** * * @return The resolved contant value * ! * @exception InvalidObjectException If the object being deserialized * cannot be resolved. */ protected Object readResolve() throws InvalidObjectException --- 125,131 ---- * * @return The resolved contant value * ! * @exception InvalidObjectException If the object being deserialized * cannot be resolved. */ protected Object readResolve() throws InvalidObjectException *************** public interface AttributedCharacterIter *** 139,169 **** if (getName().equals(INPUT_METHOD_SEGMENT.getName())) return INPUT_METHOD_SEGMENT; ! throw new InvalidObjectException ("Can't resolve Attribute: " + getName()); } ! /** * Tests this object for equality against the specified object. * The two objects will be considered equal if and only if: *
                      *
                    • The specified object is not null. ! *
                    • The specified object is an instance of * AttributedCharacterIterator.Attribute. *
                    • The specified object has the same attribute name as this object. *
                    * ! * @param obj the Object to test for equality against this * object. * ! * @return true if the specified object is equal to this one, * false otherwise. */ public final boolean equals(Object obj) { if (obj == this) return true; ! else return false; } --- 139,169 ---- if (getName().equals(INPUT_METHOD_SEGMENT.getName())) return INPUT_METHOD_SEGMENT; ! throw new InvalidObjectException ("Can't resolve Attribute: " + getName()); } ! /** * Tests this object for equality against the specified object. * The two objects will be considered equal if and only if: *
                      *
                    • The specified object is not null. ! *
                    • The specified object is an instance of * AttributedCharacterIterator.Attribute. *
                    • The specified object has the same attribute name as this object. *
                    * ! * @param obj the Object to test for equality against this * object. * ! * @return true if the specified object is equal to this one, * false otherwise. */ public final boolean equals(Object obj) { if (obj == this) return true; ! else return false; } *************** public interface AttributedCharacterIter *** 190,204 **** } // Inner class Attribute /** ! * Returns a list of all keys that are defined for the * text range. This can be an empty list if no attributes are defined. * ! * @return A list of keys */ Set getAllAttributeKeys(); /** ! * Returns a Map of the attributes defined for the current * character. * * @return A Map of the attributes for the current character. --- 190,204 ---- } // Inner class Attribute /** ! * Returns a list of all keys that are defined for the * text range. This can be an empty list if no attributes are defined. * ! * @return A list of keys */ Set getAllAttributeKeys(); /** ! * Returns a Map of the attributes defined for the current * character. * * @return A Map of the attributes for the current character. *************** public interface AttributedCharacterIter *** 234,240 **** * @return The start index of the run. */ int getRunStart(Set attribs); ! /** * Returns the index of the first character in the run that * contains the specified attribute defined for the current character. --- 234,240 ---- * @return The start index of the run. */ int getRunStart(Set attribs); ! /** * Returns the index of the first character in the run that * contains the specified attribute defined for the current character. *************** public interface AttributedCharacterIter *** 244,250 **** * @return The start index of the run. */ int getRunStart(AttributedCharacterIterator.Attribute attrib); ! /** * Returns the index of the character after the end of the run * that contains all attributes defined for the current character. --- 244,250 ---- * @return The start index of the run. */ int getRunStart(AttributedCharacterIterator.Attribute attrib); ! /** * Returns the index of the character after the end of the run * that contains all attributes defined for the current character. *************** public interface AttributedCharacterIter *** 252,258 **** * @return The end index of the run. */ int getRunLimit(); ! /** * Returns the index of the character after the end of the run * that contains all attributes in the specified Set defined --- 252,258 ---- * @return The end index of the run. */ int getRunLimit(); ! /** * Returns the index of the character after the end of the run * that contains all attributes in the specified Set defined *************** public interface AttributedCharacterIter *** 263,275 **** * @return The end index of the run. */ int getRunLimit(Set attribs); ! /** * Returns the index of the character after the end of the run * that contains the specified attribute defined for the current character. * * @param attrib The attribute. ! * * @return The end index of the run. */ int getRunLimit(AttributedCharacterIterator.Attribute attrib); --- 263,275 ---- * @return The end index of the run. */ int getRunLimit(Set attribs); ! /** * Returns the index of the character after the end of the run * that contains the specified attribute defined for the current character. * * @param attrib The attribute. ! * * @return The end index of the run. */ int getRunLimit(AttributedCharacterIterator.Attribute attrib); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/AttributedString.java gcc-4.6.0/libjava/classpath/java/text/AttributedString.java *** gcc-4.5.2/libjava/classpath/java/text/AttributedString.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/text/AttributedString.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Set; *** 50,58 **** /** * This class models a String with attributes over various ! * subranges of the string. It allows applications to access this * information via the AttributedCharacterIterator interface. ! * * @since 1.2 * * @author Aaron M. Renn (arenn@urbanophile.com) --- 50,58 ---- /** * This class models a String with attributes over various ! * subranges of the string. It allows applications to access this * information via the AttributedCharacterIterator interface. ! * * @since 1.2 * * @author Aaron M. Renn (arenn@urbanophile.com) *************** import java.util.Set; *** 61,68 **** public class AttributedString { ! /** ! * The attributes and ranges of text over which those attributes apply. */ final class AttributeRange { --- 61,68 ---- public class AttributedString { ! /** ! * The attributes and ranges of text over which those attributes apply. */ final class AttributeRange { *************** public class AttributedString *** 78,89 **** /** * Creates a new attribute range. ! * * @param attribs the attributes. * @param beginIndex the start index. * @param endIndex the end index. */ ! AttributeRange(Map attribs, int beginIndex, int endIndex) { this.attribs = attribs; this.beginIndex = beginIndex; --- 78,89 ---- /** * Creates a new attribute range. ! * * @param attribs the attributes. * @param beginIndex the start index. * @param endIndex the end index. */ ! AttributeRange(Map attribs, int beginIndex, int endIndex) { this.attribs = attribs; this.beginIndex = beginIndex; *************** public class AttributedString *** 104,110 **** * * @param str The String to be attributed (null not * permitted). ! * * @throws NullPointerException if str is null. */ public AttributedString(String str) --- 104,110 ---- * * @param str The String to be attributed (null not * permitted). ! * * @throws NullPointerException if str is null. */ public AttributedString(String str) *************** public class AttributedString *** 135,144 **** * that will use the text and attribute information from the specified * AttributedCharacterIterator. * ! * @param aci The AttributedCharacterIterator containing the ! * text and attribute information (null not * permitted). ! * * @throws NullPointerException if aci is null. */ public AttributedString(AttributedCharacterIterator aci) --- 135,144 ---- * that will use the text and attribute information from the specified * AttributedCharacterIterator. * ! * @param aci The AttributedCharacterIterator containing the ! * text and attribute information (null not * permitted). ! * * @throws NullPointerException if aci is null. */ public AttributedString(AttributedCharacterIterator aci) *************** public class AttributedString *** 151,157 **** * that will use the text and attribute information from the specified * subrange of the specified AttributedCharacterIterator. * ! * @param aci The AttributedCharacterIterator containing the * text and attribute information. * @param beginIndex The beginning index of the text subrange. * @param endIndex The ending index of the text subrange. --- 151,157 ---- * that will use the text and attribute information from the specified * subrange of the specified AttributedCharacterIterator. * ! * @param aci The AttributedCharacterIterator containing the * text and attribute information. * @param beginIndex The beginning index of the text subrange. * @param endIndex The ending index of the text subrange. *************** public class AttributedString *** 170,183 **** * specified array of attributes will be included in the attribute list * for this object. * ! * @param aci The AttributedCharacterIterator containing the * text and attribute information. * @param begin The beginning index of the text subrange. * @param end The ending index of the text subrange. ! * @param attributes A list of attributes to include from the iterator, or * null to include all attributes. */ ! public AttributedString(AttributedCharacterIterator aci, int begin, int end, AttributedCharacterIterator.Attribute[] attributes) { // Validate some arguments --- 170,183 ---- * specified array of attributes will be included in the attribute list * for this object. * ! * @param aci The AttributedCharacterIterator containing the * text and attribute information. * @param begin The beginning index of the text subrange. * @param end The ending index of the text subrange. ! * @param attributes A list of attributes to include from the iterator, or * null to include all attributes. */ ! public AttributedString(AttributedCharacterIterator aci, int begin, int end, AttributedCharacterIterator.Attribute[] attributes) { // Validate some arguments *************** public class AttributedString *** 196,202 **** ArrayList accum = new ArrayList(); do ! { sb.append(c); Iterator iter = allAttribs.iterator(); --- 196,202 ---- ArrayList accum = new ArrayList(); do ! { sb.append(c); Iterator iter = allAttribs.iterator(); *************** public class AttributedString *** 208,214 **** if (!(obj instanceof AttributedCharacterIterator.Attribute)) continue; ! AttributedCharacterIterator.Attribute attrib = (AttributedCharacterIterator.Attribute)obj; // Make sure the attribute is defined. --- 208,214 ---- if (!(obj instanceof AttributedCharacterIterator.Attribute)) continue; ! AttributedCharacterIterator.Attribute attrib = (AttributedCharacterIterator.Attribute)obj; // Make sure the attribute is defined. *************** public class AttributedString *** 260,266 **** * @param attrib The attribute to add. * @param value The value of the attribute. */ ! public void addAttribute(AttributedCharacterIterator.Attribute attrib, Object value) { addAttribute(attrib, value, 0, sci.getEndIndex()); --- 260,266 ---- * @param attrib The attribute to add. * @param value The value of the attribute. */ ! public void addAttribute(AttributedCharacterIterator.Attribute attrib, Object value) { addAttribute(attrib, value, 0, sci.getEndIndex()); *************** public class AttributedString *** 275,284 **** * @param begin The beginning index of the subrange. * @param end The ending index of the subrange. * ! * @exception IllegalArgumentException If attribute is null or * the subrange is not valid. */ ! public void addAttribute(AttributedCharacterIterator.Attribute attrib, Object value, int begin, int end) { if (attrib == null) --- 275,284 ---- * @param begin The beginning index of the subrange. * @param end The ending index of the subrange. * ! * @exception IllegalArgumentException If attribute is null or * the subrange is not valid. */ ! public void addAttribute(AttributedCharacterIterator.Attribute attrib, Object value, int begin, int end) { if (attrib == null) *************** public class AttributedString *** 299,310 **** * @param beginIndex The beginning index. * @param endIndex The ending index * ! * @throws NullPointerException if attributes is * null. * @throws IllegalArgumentException if the subrange is not valid. */ public void addAttributes(Map attributes, ! int beginIndex, int endIndex) { if (attributes == null) throw new NullPointerException("null attribute"); --- 299,310 ---- * @param beginIndex The beginning index. * @param endIndex The ending index * ! * @throws NullPointerException if attributes is * null. * @throws IllegalArgumentException if the subrange is not valid. */ public void addAttributes(Map attributes, ! int beginIndex, int endIndex) { if (attributes == null) throw new NullPointerException("null attribute"); *************** public class AttributedString *** 316,334 **** AttributeRange[] new_list = new AttributeRange[attribs.length + 1]; System.arraycopy(attribs, 0, new_list, 0, attribs.length); attribs = new_list; ! attribs[attribs.length - 1] = new AttributeRange(attributes, beginIndex, endIndex); ! } /** ! * Returns an AttributedCharacterIterator that * will iterate over the entire string. * * @return An AttributedCharacterIterator for the entire string. */ public AttributedCharacterIterator getIterator() { ! return(new AttributedStringIterator(sci, attribs, 0, sci.getEndIndex(), null)); } --- 316,334 ---- AttributeRange[] new_list = new AttributeRange[attribs.length + 1]; System.arraycopy(attribs, 0, new_list, 0, attribs.length); attribs = new_list; ! attribs[attribs.length - 1] = new AttributeRange(attributes, beginIndex, endIndex); ! } /** ! * Returns an AttributedCharacterIterator that * will iterate over the entire string. * * @return An AttributedCharacterIterator for the entire string. */ public AttributedCharacterIterator getIterator() { ! return(new AttributedStringIterator(sci, attribs, 0, sci.getEndIndex(), null)); } *************** public class AttributedString *** 351,361 **** /** * Returns an AttributedCharacterIterator that ! * will iterate over the specified subrange. This iterator will return ! * information about the list of attributes in the specified array. ! * Attributes not in the array may or may not be returned by the iterator. ! * If the specified array is null, all attributes will be ! * returned. * * @param attributes A list of attributes to include in the returned iterator. * @param beginIndex The beginning index of the subrange. --- 351,361 ---- /** * Returns an AttributedCharacterIterator that ! * will iterate over the specified subrange. This iterator will return ! * information about the list of attributes in the specified array. ! * Attributes not in the array may or may not be returned by the iterator. ! * If the specified array is null, all attributes will be ! * returned. * * @param attributes A list of attributes to include in the returned iterator. * @param beginIndex The beginning index of the subrange. *************** public class AttributedString *** 364,370 **** * @return An AttributedCharacterIterator for this string. */ public AttributedCharacterIterator getIterator( ! AttributedCharacterIterator.Attribute[] attributes, int beginIndex, int endIndex) { if ((beginIndex < 0) || (endIndex > sci.getEndIndex()) || --- 364,370 ---- * @return An AttributedCharacterIterator for this string. */ public AttributedCharacterIterator getIterator( ! AttributedCharacterIterator.Attribute[] attributes, int beginIndex, int endIndex) { if ((beginIndex < 0) || (endIndex > sci.getEndIndex()) || diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/AttributedStringIterator.java gcc-4.6.0/libjava/classpath/java/text/AttributedStringIterator.java *** gcc-4.5.2/libjava/classpath/java/text/AttributedStringIterator.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/text/AttributedStringIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** class AttributedStringIterator implement *** 73,86 **** /** * Creates a new instance. ! * * @param sci an iterator for the string content. * @param attribs the attribute ranges. * @param beginIndex the start index. * @param endIndex the end index. * @param restricts the attributes that the user is interested in. */ ! AttributedStringIterator(StringCharacterIterator sci, AttributedString.AttributeRange[] attribs, int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] restricts) --- 73,86 ---- /** * Creates a new instance. ! * * @param sci an iterator for the string content. * @param attribs the attribute ranges. * @param beginIndex the start index. * @param endIndex the end index. * @param restricts the attributes that the user is interested in. */ ! AttributedStringIterator(StringCharacterIterator sci, AttributedString.AttributeRange[] attribs, int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] restricts) *************** class AttributedStringIterator implement *** 132,138 **** public char setIndex(int index) { ! return(ci.setIndex(index)); } public int getBeginIndex() --- 132,138 ---- public char setIndex(int index) { ! return(ci.setIndex(index)); } public int getBeginIndex() *************** class AttributedStringIterator implement *** 147,153 **** /* * Here is where the AttributedCharacterIterator methods start. ! */ /*************************************************************************/ --- 147,153 ---- /* * Here is where the AttributedCharacterIterator methods start. ! */ /*************************************************************************/ *************** class AttributedStringIterator implement *** 164,171 **** for (int i = 0; i < attribs.length; i++) { if (attribs[i].beginIndex > getEndIndex() ! || attribs[i].endIndex <= getBeginIndex()) ! continue; Set key_set = attribs[i].attribs.keySet(); Iterator iter = key_set.iterator(); --- 164,171 ---- for (int i = 0; i < attribs.length; i++) { if (attribs[i].beginIndex > getEndIndex() ! || attribs[i].endIndex <= getBeginIndex()) ! continue; Set key_set = attribs[i].attribs.keySet(); Iterator iter = key_set.iterator(); *************** class AttributedStringIterator implement *** 201,230 **** { if (attributeSet == null) return ci.getEndIndex(); ! int current = ci.getIndex(); int end = ci.getEndIndex(); int limit = current; ! if (current == end) return end; Map runValues = getAttributes(); ! while (limit < end) { Iterator iterator = attributeSet.iterator(); ! while (iterator.hasNext()) { Attribute attributeKey = (Attribute) iterator.next(); Object v1 = runValues.get(attributeKey); Object v2 = getAttribute(attributeKey, limit + 1); boolean changed = false; // check for equal or both null, if NO return start ! if (v1 != null) { changed = !v1.equals(v2); } ! else { ! changed = (v2 != null); } if (changed) return limit + 1; --- 201,230 ---- { if (attributeSet == null) return ci.getEndIndex(); ! int current = ci.getIndex(); int end = ci.getEndIndex(); int limit = current; ! if (current == end) return end; Map runValues = getAttributes(); ! while (limit < end) { Iterator iterator = attributeSet.iterator(); ! while (iterator.hasNext()) { Attribute attributeKey = (Attribute) iterator.next(); Object v1 = runValues.get(attributeKey); Object v2 = getAttribute(attributeKey, limit + 1); boolean changed = false; // check for equal or both null, if NO return start ! if (v1 != null) { changed = !v1.equals(v2); } ! else { ! changed = (v2 != null); } if (changed) return limit + 1; *************** class AttributedStringIterator implement *** 246,252 **** * Returns the index of the first character in the run containing the current * character and defined by all the attributes defined for that character * position. ! * * @return The run start index. */ public int getRunStart() --- 246,252 ---- * Returns the index of the first character in the run containing the current * character and defined by all the attributes defined for that character * position. ! * * @return The run start index. */ public int getRunStart() *************** class AttributedStringIterator implement *** 255,265 **** } /** ! * Returns the index of the first character in the run, defined by the * specified attribute, that contains the current character. ! * * @param attrib the attribute (null permitted). ! * * return The index of the first character in the run. */ public int getRunStart(AttributedCharacterIterator.Attribute attrib) --- 255,265 ---- } /** ! * Returns the index of the first character in the run, defined by the * specified attribute, that contains the current character. ! * * @param attrib the attribute (null permitted). ! * * return The index of the first character in the run. */ public int getRunStart(AttributedCharacterIterator.Attribute attrib) *************** class AttributedStringIterator implement *** 272,313 **** } /** ! * Returns the index of the first character in the run, defined by the * specified attribute set, that contains the current character. ! * * @param attributeSet the attribute set (null permitted). ! * * return The index of the first character in the run. */ public int getRunStart(Set attributeSet) { if (attributeSet == null) return ci.getBeginIndex(); ! int current = ci.getIndex(); int begin = ci.getBeginIndex(); int start = current; ! if (start == begin) return begin; Map runValues = getAttributes(); int prev = start - 1; ! while (start > begin) { Iterator iterator = attributeSet.iterator(); ! while (iterator.hasNext()) { Attribute attributeKey = (Attribute) iterator.next(); Object v1 = runValues.get(attributeKey); Object v2 = getAttribute(attributeKey, prev); boolean changed = false; // check for equal or both null, if NO return start ! if (v1 != null) { changed = !v1.equals(v2); } ! else { ! changed = (v2 != null); } if (changed) return start; --- 272,313 ---- } /** ! * Returns the index of the first character in the run, defined by the * specified attribute set, that contains the current character. ! * * @param attributeSet the attribute set (null permitted). ! * * return The index of the first character in the run. */ public int getRunStart(Set attributeSet) { if (attributeSet == null) return ci.getBeginIndex(); ! int current = ci.getIndex(); int begin = ci.getBeginIndex(); int start = current; ! if (start == begin) return begin; Map runValues = getAttributes(); int prev = start - 1; ! while (start > begin) { Iterator iterator = attributeSet.iterator(); ! while (iterator.hasNext()) { Attribute attributeKey = (Attribute) iterator.next(); Object v1 = runValues.get(attributeKey); Object v2 = getAttribute(attributeKey, prev); boolean changed = false; // check for equal or both null, if NO return start ! if (v1 != null) { changed = !v1.equals(v2); } ! else { ! changed = (v2 != null); } if (changed) return start; *************** class AttributedStringIterator implement *** 325,337 **** * Returns the value for an attribute at the specified position. If the * attribute key (key) is null, the method returns * null. ! * * @param key the key (null permitted). * @param pos the character position. ! * * @return The attribute value (possibly null). */ ! private Object getAttribute(AttributedCharacterIterator.Attribute key, int pos) { if (attribs == null) --- 325,337 ---- * Returns the value for an attribute at the specified position. If the * attribute key (key) is null, the method returns * null. ! * * @param key the key (null permitted). * @param pos the character position. ! * * @return The attribute value (possibly null). */ ! private Object getAttribute(AttributedCharacterIterator.Attribute key, int pos) { if (attribs == null) *************** class AttributedStringIterator implement *** 341,362 **** if (pos >= attribs[i].beginIndex && pos < attribs[i].endIndex) { Set keys = attribs[i].attribs.keySet(); ! if (keys.contains(key)) { return attribs[i].attribs.get(key); } } } ! return null; } ! /** * Returns the value for an attribute at the current position. If the * attribute key (key) is null, the method returns * null. ! * * @param key the key (null permitted). ! * * @return The attribute value (possibly null). */ public Object getAttribute(AttributedCharacterIterator.Attribute key) --- 341,362 ---- if (pos >= attribs[i].beginIndex && pos < attribs[i].endIndex) { Set keys = attribs[i].attribs.keySet(); ! if (keys.contains(key)) { return attribs[i].attribs.get(key); } } } ! return null; } ! /** * Returns the value for an attribute at the current position. If the * attribute key (key) is null, the method returns * null. ! * * @param key the key (null permitted). ! * * @return The attribute value (possibly null). */ public Object getAttribute(AttributedCharacterIterator.Attribute key) *************** class AttributedStringIterator implement *** 375,381 **** HashMap m = new HashMap(); if (attribs == null) return(m); ! for (int i = 0; i < attribs.length; i++) { if ((ci.getIndex() >= attribs[i].beginIndex) && --- 375,381 ---- HashMap m = new HashMap(); if (attribs == null) return(m); ! for (int i = 0; i < attribs.length; i++) { if ((ci.getIndex() >= attribs[i].beginIndex) && diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/Bidi.java gcc-4.6.0/libjava/classpath/java/text/Bidi.java *** gcc-4.5.2/libjava/classpath/java/text/Bidi.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/text/Bidi.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public final class Bidi *** 111,117 **** // the codes have been removed. private ArrayList formatterIndices; ! // Indices of the starts of runs in the text. private int[] runs; // A convenience field where we keep track of what kinds of runs --- 111,117 ---- // the codes have been removed. private ArrayList formatterIndices; ! // Indices of the starts of runs in the text. private int[] runs; // A convenience field where we keep track of what kinds of runs *************** public final class Bidi *** 128,138 **** * {@link TextAttribute#RUN_DIRECTION_RTL}. If neither is given, * {@link #DIRECTION_DEFAULT_LEFT_TO_RIGHT} is assumed. * ! * *
                  5. If {@link TextAttribute#NUMERIC_SHAPING} is seen, then numeric * shaping will be done before the Bidi algorithm is run. *
                  6. ! * *
                  7. If {@link TextAttribute#BIDI_EMBEDDING} is seen on a given * character, then the value of this attribute will be used as an * embedding level override. --- 128,138 ---- * {@link TextAttribute#RUN_DIRECTION_RTL}. If neither is given, * {@link #DIRECTION_DEFAULT_LEFT_TO_RIGHT} is assumed. *
                  8. ! * *
                  9. If {@link TextAttribute#NUMERIC_SHAPING} is seen, then numeric * shaping will be done before the Bidi algorithm is run. *
                  10. ! * *
                  11. If {@link TextAttribute#BIDI_EMBEDDING} is seen on a given * character, then the value of this attribute will be used as an * embedding level override. *************** public final class Bidi *** 192,203 **** /** * Create a new Bidi object with the indicated text and, possibly, explicit * embedding settings. ! * * If the embeddings array is null, it is ignored. Otherwise it is taken to * be explicit embedding settings corresponding to the text. Positive values * from 1 to 61 are embedding levels, and negative values from -1 to -61 are * embedding overrides. (FIXME: not at all clear what this really means.) ! * * @param text the text to use * @param offset the offset of the first character of the text * @param embeddings the explicit embeddings, or null if there are none --- 192,203 ---- /** * Create a new Bidi object with the indicated text and, possibly, explicit * embedding settings. ! * * If the embeddings array is null, it is ignored. Otherwise it is taken to * be explicit embedding settings corresponding to the text. Positive values * from 1 to 61 are embedding levels, and negative values from -1 to -61 are * embedding overrides. (FIXME: not at all clear what this really means.) ! * * @param text the text to use * @param offset the offset of the first character of the text * @param embeddings the explicit embeddings, or null if there are none *************** public final class Bidi *** 321,327 **** // It isn't at all clear what we're supposed to do here. // What does a negative value really mean? // Should we push on the embedding stack here? ! currentEmbedding = embeddings[embeddingOffset + i]; if (currentEmbedding < 0) { currentEmbedding = (byte) -currentEmbedding; --- 321,327 ---- // It isn't at all clear what we're supposed to do here. // What does a negative value really mean? // Should we push on the embedding stack here? ! currentEmbedding = embeddings[embeddingOffset + i]; if (currentEmbedding < 0) { currentEmbedding = (byte) -currentEmbedding; *************** public final class Bidi *** 486,492 **** private void resolveWeakTypes() { final int runCount = getRunCount(); ! int previousLevel = baseEmbedding; for (int run = 0; run < runCount; ++run) { --- 486,492 ---- private void resolveWeakTypes() { final int runCount = getRunCount(); ! int previousLevel = baseEmbedding; for (int run = 0; run < runCount; ++run) { *************** public final class Bidi *** 600,606 **** { // This implements rules N1 and N2. final int runCount = getRunCount(); ! int previousLevel = baseEmbedding; for (int run = 0; run < runCount; ++run) { --- 600,606 ---- { // This implements rules N1 and N2. final int runCount = getRunCount(); ! int previousLevel = baseEmbedding; for (int run = 0; run < runCount; ++run) { *************** public final class Bidi *** 644,650 **** case Character.DIRECTIONALITY_OTHER_NEUTRALS: case Character.DIRECTIONALITY_SEGMENT_SEPARATOR: case Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR: ! case Character.DIRECTIONALITY_WHITESPACE: if (neutralStart == -1) neutralStart = i; break; --- 644,650 ---- case Character.DIRECTIONALITY_OTHER_NEUTRALS: case Character.DIRECTIONALITY_SEGMENT_SEPARATOR: case Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR: ! case Character.DIRECTIONALITY_WHITESPACE: if (neutralStart == -1) neutralStart = i; break; *************** public final class Bidi *** 983,999 **** { for (int i = start; i < end; i++) { ! byte dir = Character.getDirectionality(text[i]); ! if (dir != Character.DIRECTIONALITY_LEFT_TO_RIGHT ! && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER ! && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR ! && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR ! && dir != Character.DIRECTIONALITY_ARABIC_NUMBER ! && dir != Character.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR ! && dir != Character.DIRECTIONALITY_SEGMENT_SEPARATOR ! && dir != Character.DIRECTIONALITY_WHITESPACE && dir != Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR) ! return true; } return false; --- 983,999 ---- { for (int i = start; i < end; i++) { ! byte dir = Character.getDirectionality(text[i]); ! if (dir != Character.DIRECTIONALITY_LEFT_TO_RIGHT ! && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER ! && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR ! && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR ! && dir != Character.DIRECTIONALITY_ARABIC_NUMBER ! && dir != Character.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR ! && dir != Character.DIRECTIONALITY_SEGMENT_SEPARATOR ! && dir != Character.DIRECTIONALITY_WHITESPACE && dir != Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR) ! return true; } return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/BreakIterator.java gcc-4.6.0/libjava/classpath/java/text/BreakIterator.java *** gcc-4.5.2/libjava/classpath/java/text/BreakIterator.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/text/BreakIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public abstract class BreakIterator impl *** 105,111 **** return null; } } ! /** * This method returns the index of the current text element boundary. * --- 105,111 ---- return null; } } ! /** * This method returns the index of the current text element boundary. * *************** public abstract class BreakIterator impl *** 149,179 **** String className; try { ! ResourceBundle res ! = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); ! className = res.getString(type); } catch (MissingResourceException x) { ! return null; } try { ! Class k = Class.forName(className); ! return (BreakIterator) k.newInstance(); } catch (ClassNotFoundException x1) { ! return null; } catch (InstantiationException x2) { ! return null; } catch (IllegalAccessException x3) { ! return null; } } --- 149,179 ---- String className; try { ! ResourceBundle res ! = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); ! className = res.getString(type); } catch (MissingResourceException x) { ! return null; } try { ! Class k = Class.forName(className); ! return (BreakIterator) k.newInstance(); } catch (ClassNotFoundException x1) { ! return null; } catch (InstantiationException x2) { ! return null; } catch (IllegalAccessException x3) { ! return null; } } *************** public abstract class BreakIterator impl *** 202,219 **** if (r != null) return r; for (BreakIteratorProvider p : ! ServiceLoader.load(BreakIteratorProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! BreakIterator bi = p.getCharacterInstance(locale); ! if (bi != null) ! return bi; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) return new CharacterBreakIterator(); --- 202,219 ---- if (r != null) return r; for (BreakIteratorProvider p : ! ServiceLoader.load(BreakIteratorProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! BreakIterator bi = p.getCharacterInstance(locale); ! if (bi != null) ! return bi; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) return new CharacterBreakIterator(); *************** public abstract class BreakIterator impl *** 245,262 **** if (r != null) return r; for (BreakIteratorProvider p : ! ServiceLoader.load(BreakIteratorProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! BreakIterator bi = p.getLineInstance(locale); ! if (bi != null) ! return bi; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) return new LineBreakIterator(); --- 245,262 ---- if (r != null) return r; for (BreakIteratorProvider p : ! ServiceLoader.load(BreakIteratorProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! BreakIterator bi = p.getLineInstance(locale); ! if (bi != null) ! return bi; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) return new LineBreakIterator(); *************** public abstract class BreakIterator impl *** 288,305 **** if (r != null) return r; for (BreakIteratorProvider p : ! ServiceLoader.load(BreakIteratorProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! BreakIterator bi = p.getSentenceInstance(locale); ! if (bi != null) ! return bi; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) return new SentenceBreakIterator(); --- 288,305 ---- if (r != null) return r; for (BreakIteratorProvider p : ! ServiceLoader.load(BreakIteratorProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! BreakIterator bi = p.getSentenceInstance(locale); ! if (bi != null) ! return bi; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) return new SentenceBreakIterator(); *************** public abstract class BreakIterator impl *** 327,333 **** /** * This method returns an instance of BreakIterator that will ! * iterate over words as defined in the specified locale. * * @param locale The desired locale. * --- 327,333 ---- /** * This method returns an instance of BreakIterator that will ! * iterate over words as defined in the specified locale. * * @param locale The desired locale. * *************** public abstract class BreakIterator impl *** 339,356 **** if (r != null) return r; for (BreakIteratorProvider p : ! ServiceLoader.load(BreakIteratorProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! BreakIterator bi = p.getWordInstance(locale); ! if (bi != null) ! return bi; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) return new WordBreakIterator(); --- 339,356 ---- if (r != null) return r; for (BreakIteratorProvider p : ! ServiceLoader.load(BreakIteratorProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! BreakIterator bi = p.getWordInstance(locale); ! if (bi != null) ! return bi; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) return new WordBreakIterator(); *************** public abstract class BreakIterator impl *** 364,370 **** * @param pos The text position to test. * * @return true if the position is a boundary, ! * false otherwise. */ public boolean isBoundary (int pos) { --- 364,370 ---- * @param pos The text position to test. * * @return true if the position is a boundary, ! * false otherwise. */ public boolean isBoundary (int pos) { *************** public abstract class BreakIterator impl *** 403,409 **** * This methdod returns the offset of the text element boundary preceding * the specified offset. * ! * @param pos The text index from which to find the preceding text boundary. * * @returns The next text boundary preceding the specified index. */ --- 403,409 ---- * This methdod returns the offset of the text element boundary preceding * the specified offset. * ! * @param pos The text index from which to find the preceding text boundary. * * @returns The next text boundary preceding the specified index. */ *************** public abstract class BreakIterator impl *** 437,443 **** /** * This method sets the text to iterate over from the specified * CharacterIterator. ! * * @param newText The desired CharacterIterator. */ public abstract void setText (CharacterIterator newText); --- 437,443 ---- /** * This method sets the text to iterate over from the specified * CharacterIterator. ! * * @param newText The desired CharacterIterator. */ public abstract void setText (CharacterIterator newText); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/CharacterIterator.java gcc-4.6.0/libjava/classpath/java/text/CharacterIterator.java *** gcc-4.5.2/libjava/classpath/java/text/CharacterIterator.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/text/CharacterIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.text; *** 43,49 **** * characters. For a given range of text, a beginning and ending index, * as well as a current index are defined. These values can be queried * by the methods in this interface. Additionally, various methods allow ! * the index to be set. * * @author Aaron M. Renn (arenn@urbanophile.com) */ --- 43,49 ---- * characters. For a given range of text, a beginning and ending index, * as well as a current index are defined. These values can be queried * by the methods in this interface. Additionally, various methods allow ! * the index to be set. * * @author Aaron M. Renn (arenn@urbanophile.com) */ *************** public interface CharacterIterator exten *** 64,70 **** /** * This method increments the current index and then returns the character ! * at the new index value. If the index is already at * getEndIndex() - 1, it will not be incremented. * * @return The character at the position of the incremented index value, --- 64,70 ---- /** * This method increments the current index and then returns the character ! * at the new index value. If the index is already at * getEndIndex() - 1, it will not be incremented. * * @return The character at the position of the incremented index value, *************** public interface CharacterIterator exten *** 87,93 **** * This method sets the index value to the beginning of the range and returns * the character there. * ! * @return The character at the beginning of the range, or {@link #DONE} if * the range is empty. */ char first(); --- 87,93 ---- * This method sets the index value to the beginning of the range and returns * the character there. * ! * @return The character at the beginning of the range, or {@link #DONE} if * the range is empty. */ char first(); *************** public interface CharacterIterator exten *** 97,106 **** * returns the character there. If the range is empty, then the index value * will be set equal to the beginning index. * ! * @return The character at the end of the range, or {@link #DONE} if the * range is empty. */ ! char last(); /** * This method returns the current value of the index. --- 97,106 ---- * returns the character there. If the range is empty, then the index value * will be set equal to the beginning index. * ! * @return The character at the end of the range, or {@link #DONE} if the * range is empty. */ ! char last(); /** * This method returns the current value of the index. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/ChoiceFormat.java gcc-4.6.0/libjava/classpath/java/text/ChoiceFormat.java *** gcc-4.5.2/libjava/classpath/java/text/ChoiceFormat.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/text/ChoiceFormat.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Vector; *** 46,55 **** /** * This class allows a format to be specified based on a range of numbers. * To use this class, first specify two lists of formats and range terminators. ! * These lists must be arrays of equal length. The format of index ! * i will be selected for value X if * terminator[i] <= X < limit[i + 1]. If the value X is not ! * included in any range, then either the first or last format will be * used depending on whether the value X falls outside the range. *

                    * This sounds complicated, but that is because I did a poor job of --- 46,55 ---- /** * This class allows a format to be specified based on a range of numbers. * To use this class, first specify two lists of formats and range terminators. ! * These lists must be arrays of equal length. The format of index ! * i will be selected for value X if * terminator[i] <= X < limit[i + 1]. If the value X is not ! * included in any range, then either the first or last format will be * used depending on whether the value X falls outside the range. *

                    * This sounds complicated, but that is because I did a poor job of *************** public class ChoiceFormat extends Number *** 85,91 **** { /** * This method sets new range terminators and format strings for this ! * object based on the specified pattern. This pattern is of the form * "term#string|term#string...". For example "1#Sunday|2#Monday|#Tuesday". * * @param newPattern The pattern of terminators and format strings. --- 85,91 ---- { /** * This method sets new range terminators and format strings for this ! * object based on the specified pattern. This pattern is of the form * "term#string|term#string...". For example "1#Sunday|2#Monday|#Tuesday". * * @param newPattern The pattern of terminators and format strings. *************** public class ChoiceFormat extends Number *** 104,156 **** while (true) { ! // Find end of double. ! int dstart = index; ! while (index < max) ! { ! char c = newPattern.charAt(index); ! if (c == '#' || c == '\u2064' || c == '<') ! break; ! ++index; ! } ! ! if (index == max) ! throw new IllegalArgumentException ("unexpected end of text"); ! Double d = Double.valueOf (newPattern.substring(dstart, index)); ! if (newPattern.charAt(index) == '<') ! d = Double.valueOf (nextDouble (d.doubleValue())); ! limitVec.addElement(d); ! // Scan text. ! ++index; ! buf.setLength(0); ! while (index < max) ! { ! char c = newPattern.charAt(index); ! if (c == '\'' && index < max + 1 ! && newPattern.charAt(index + 1) == '\'') ! { ! buf.append(c); ! ++index; ! } ! else if (c == '\'' && index < max + 2) ! { ! buf.append(newPattern.charAt(index + 1)); ! index += 2; ! } ! else if (c == '|') ! break; ! else ! buf.append(c); ! ++index; ! } ! stringVec.addElement(buf.toString()); ! if (index == max) ! break; ! ++index; } choiceFormats = new String[stringVec.size()]; --- 104,156 ---- while (true) { ! // Find end of double. ! int dstart = index; ! while (index < max) ! { ! char c = newPattern.charAt(index); ! if (c == '#' || c == '\u2064' || c == '<') ! break; ! ++index; ! } ! if (index == max) ! throw new IllegalArgumentException ("unexpected end of text"); ! Double d = Double.valueOf (newPattern.substring(dstart, index)); ! if (newPattern.charAt(index) == '<') ! d = Double.valueOf (nextDouble (d.doubleValue())); ! limitVec.addElement(d); ! // Scan text. ! ++index; ! buf.setLength(0); ! while (index < max) ! { ! char c = newPattern.charAt(index); ! if (c == '\'' && index < max + 1 ! && newPattern.charAt(index + 1) == '\'') ! { ! buf.append(c); ! ++index; ! } ! else if (c == '\'' && index < max + 2) ! { ! buf.append(newPattern.charAt(index + 1)); ! index += 2; ! } ! else if (c == '|') ! break; ! else ! buf.append(c); ! ++index; ! } ! ! stringVec.addElement(buf.toString()); ! if (index == max) ! break; ! ++index; } choiceFormats = new String[stringVec.size()]; *************** public class ChoiceFormat extends Number *** 159,173 **** choiceLimits = new double[limitVec.size()]; for (int i = 0; i < choiceLimits.length; ++i) { ! Double d = (Double) limitVec.elementAt(i); ! choiceLimits[i] = d.doubleValue(); } } /** * This method initializes a new instance of ChoiceFormat that * generates its range terminator and format string arrays from the ! * specified pattern. This pattern is of the form * "term#string|term#string...". For example "1#Sunday|2#Monday|#Tuesday". * This is the same pattern type used by the applyPattern * method. --- 159,173 ---- choiceLimits = new double[limitVec.size()]; for (int i = 0; i < choiceLimits.length; ++i) { ! Double d = (Double) limitVec.elementAt(i); ! choiceLimits[i] = d.doubleValue(); } } /** * This method initializes a new instance of ChoiceFormat that * generates its range terminator and format string arrays from the ! * specified pattern. This pattern is of the form * "term#string|term#string...". For example "1#Sunday|2#Monday|#Tuesday". * This is the same pattern type used by the applyPattern * method. *************** public class ChoiceFormat extends Number *** 196,202 **** } /** ! * This method tests this object for equality with the specified * object. This will be true if and only if: *

                      *
                    • The specified object is not null.
                    • --- 196,202 ---- } /** ! * This method tests this object for equality with the specified * object. This will be true if and only if: *
                        *
                      • The specified object is not null.
                      • *************** public class ChoiceFormat extends Number *** 208,214 **** * @param obj The object to test for equality against. * * @return true if the specified object is equal to ! * this one, false otherwise. */ public boolean equals (Object obj) { --- 208,214 ---- * @param obj The object to test for equality against. * * @return true if the specified object is equal to ! * this one, false otherwise. */ public boolean equals (Object obj) { *************** public class ChoiceFormat extends Number *** 219,227 **** return false; for (int i = choiceLimits.length - 1; i >= 0; --i) { ! if (choiceLimits[i] != cf.choiceLimits[i] ! || !choiceFormats[i].equals(cf.choiceFormats[i])) ! return false; } return true; } --- 219,227 ---- return false; for (int i = choiceLimits.length - 1; i >= 0; --i) { ! if (choiceLimits[i] != cf.choiceLimits[i] ! || !choiceFormats[i].equals(cf.choiceFormats[i])) ! return false; } return true; } *************** public class ChoiceFormat extends Number *** 232,246 **** * argument. * * @param num The number used for determine (based on the range ! * terminators) which format string to append. ! * @param appendBuf The StringBuffer to append the format string * to. * @param pos Unused. * * @return The StringBuffer with the format string appended. */ public StringBuffer format (long num, StringBuffer appendBuf, ! FieldPosition pos) { return format ((double) num, appendBuf, pos); } --- 232,246 ---- * argument. * * @param num The number used for determine (based on the range ! * terminators) which format string to append. ! * @param appendBuf The StringBuffer to append the format string * to. * @param pos Unused. * * @return The StringBuffer with the format string appended. */ public StringBuffer format (long num, StringBuffer appendBuf, ! FieldPosition pos) { return format ((double) num, appendBuf, pos); } *************** public class ChoiceFormat extends Number *** 251,264 **** * argument. * * @param num The number used for determine (based on the range ! * terminators) which format string to append. * @param appendBuf The StringBuffer to append the format string to. * @param pos Unused. * * @return The StringBuffer with the format string appended. */ public StringBuffer format (double num, StringBuffer appendBuf, ! FieldPosition pos) { if (choiceLimits.length == 0) return appendBuf; --- 251,264 ---- * argument. * * @param num The number used for determine (based on the range ! * terminators) which format string to append. * @param appendBuf The StringBuffer to append the format string to. * @param pos Unused. * * @return The StringBuffer with the format string appended. */ public StringBuffer format (double num, StringBuffer appendBuf, ! FieldPosition pos) { if (choiceLimits.length == 0) return appendBuf; *************** public class ChoiceFormat extends Number *** 266,276 **** int index = 0; if (! Double.isNaN(num) && num >= choiceLimits[0]) { ! for (; index < choiceLimits.length - 1; ++index) ! { ! if (choiceLimits[index] <= num && num < choiceLimits[index + 1]) ! break; ! } } return appendBuf.append(choiceFormats[index]); --- 266,276 ---- int index = 0; if (! Double.isNaN(num) && num >= choiceLimits[0]) { ! for (; index < choiceLimits.length - 1; ++index) ! { ! if (choiceLimits[index] <= num && num < choiceLimits[index + 1]) ! break; ! } } return appendBuf.append(choiceFormats[index]); *************** public class ChoiceFormat extends Number *** 298,304 **** /** * This method returns a hash value for this object ! * * @return A hash value for this object. */ public int hashCode () --- 298,304 ---- /** * This method returns a hash value for this object ! * * @return A hash value for this object. */ public int hashCode () *************** public class ChoiceFormat extends Number *** 306,320 **** int hash = 0; for (int i = 0; i < choiceLimits.length; ++i) { ! long v = Double.doubleToLongBits(choiceLimits[i]); ! hash ^= (v ^ (v >>> 32)); ! hash ^= choiceFormats[i].hashCode(); } return hash; } /** ! * This method returns the lowest possible double greater than the * specified double. If the specified double value is equal to * Double.NaN then that is the value returned. * --- 306,320 ---- int hash = 0; for (int i = 0; i < choiceLimits.length; ++i) { ! long v = Double.doubleToLongBits(choiceLimits[i]); ! hash ^= (v ^ (v >>> 32)); ! hash ^= choiceFormats[i].hashCode(); } return hash; } /** ! * This method returns the lowest possible double greater than the * specified double. If the specified double value is equal to * Double.NaN then that is the value returned. * *************** public class ChoiceFormat extends Number *** 331,343 **** * This method returns a double that is either the next highest double * or next lowest double compared to the specified double depending on the * value of the passed boolean parameter. If the boolean parameter is ! * true, then the lowest possible double greater than the * specified double will be returned. Otherwise the highest possible * double less than the specified double will be returned. * * @param d The specified double * @param next true to return the next highest ! * double, false otherwise. * * @return The next highest or lowest double value. */ --- 331,343 ---- * This method returns a double that is either the next highest double * or next lowest double compared to the specified double depending on the * value of the passed boolean parameter. If the boolean parameter is ! * true, then the lowest possible double greater than the * specified double will be returned. Otherwise the highest possible * double less than the specified double will be returned. * * @param d The specified double * @param next true to return the next highest ! * double, false otherwise. * * @return The next highest or lowest double value. */ *************** public class ChoiceFormat extends Number *** 356,391 **** if (next ^ (bits < 0)) // Increment magnitude { ! if (mantissa == (1L << mantissaBits) - 1) ! { ! mantissa = 0L; ! exponent++; ! ! // Check for absolute overflow. ! if (exponent >= (1L << mantissaBits)) ! return (bits > 0) ? Double.POSITIVE_INFINITY ! : Double.NEGATIVE_INFINITY; ! } ! else ! mantissa++; } else // Decrement magnitude { ! if (exponent == 0L && mantissa == 0L) ! { ! // The only case where there is a change of sign ! return next ? Double.MIN_VALUE : -Double.MIN_VALUE; ! } ! else ! { ! if (mantissa == 0L) ! { ! mantissa = (1L << mantissaBits) - 1; ! exponent--; ! } ! else ! mantissa--; ! } } long result = bits < 0 ? 1 : 0; --- 356,391 ---- if (next ^ (bits < 0)) // Increment magnitude { ! if (mantissa == (1L << mantissaBits) - 1) ! { ! mantissa = 0L; ! exponent++; ! ! // Check for absolute overflow. ! if (exponent >= (1L << mantissaBits)) ! return (bits > 0) ? Double.POSITIVE_INFINITY ! : Double.NEGATIVE_INFINITY; ! } ! else ! mantissa++; } else // Decrement magnitude { ! if (exponent == 0L && mantissa == 0L) ! { ! // The only case where there is a change of sign ! return next ? Double.MIN_VALUE : -Double.MIN_VALUE; ! } ! else ! { ! if (mantissa == 0L) ! { ! mantissa = (1L << mantissaBits) - 1; ! exponent--; ! } ! else ! mantissa--; ! } } long result = bits < 0 ? 1 : 0; *************** public class ChoiceFormat extends Number *** 403,420 **** int index = pos.getIndex(); for (int i = 0; i < choiceLimits.length; ++i) { ! if (sourceStr.startsWith(choiceFormats[i], index)) ! { ! pos.setIndex(index + choiceFormats[i].length()); ! return Double.valueOf (choiceLimits[i]); ! } } pos.setErrorIndex(index); return Double.valueOf (Double.NaN); } /** ! * This method returns the highest possible double less than the * specified double. If the specified double value is equal to * Double.NaN then that is the value returned. * --- 403,420 ---- int index = pos.getIndex(); for (int i = 0; i < choiceLimits.length; ++i) { ! if (sourceStr.startsWith(choiceFormats[i], index)) ! { ! pos.setIndex(index + choiceFormats[i].length()); ! return Double.valueOf (choiceLimits[i]); ! } } pos.setErrorIndex(index); return Double.valueOf (Double.NaN); } /** ! * This method returns the highest possible double less than the * specified double. If the specified double value is equal to * Double.NaN then that is the value returned. * *************** public class ChoiceFormat extends Number *** 449,474 **** int max = text.length(); for (int i = 0; i < max; ++i) { ! char c = text.charAt(i); ! if (c == '\'') ! { ! dest.append(c); ! dest.append(c); ! } ! else if (c == '#' || c == '|' || c == '\u2064' || c == '<') ! { ! dest.append('\''); ! dest.append(c); ! dest.append('\''); ! } ! else ! dest.append(c); } } /** * This method returns the range terminator list and format string list ! * as a String suitable for using with the * applyPattern method. * * @return A pattern string for this object --- 449,474 ---- int max = text.length(); for (int i = 0; i < max; ++i) { ! char c = text.charAt(i); ! if (c == '\'') ! { ! dest.append(c); ! dest.append(c); ! } ! else if (c == '#' || c == '|' || c == '\u2064' || c == '<') ! { ! dest.append('\''); ! dest.append(c); ! dest.append('\''); ! } ! else ! dest.append(c); } } /** * This method returns the range terminator list and format string list ! * as a String suitable for using with the * applyPattern method. * * @return A pattern string for this object *************** public class ChoiceFormat extends Number *** 478,486 **** CPStringBuilder result = new CPStringBuilder (); for (int i = 0; i < choiceLimits.length; ++i) { ! result.append(choiceLimits[i]); ! result.append('#'); ! quoteString (result, choiceFormats[i]); } return result.toString(); } --- 478,486 ---- CPStringBuilder result = new CPStringBuilder (); for (int i = 0; i < choiceLimits.length; ++i) { ! result.append(choiceLimits[i]); ! result.append('#'); ! quoteString (result, choiceFormats[i]); } return result.toString(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/CollationElementIterator.java gcc-4.6.0/libjava/classpath/java/text/CollationElementIterator.java *** gcc-4.5.2/libjava/classpath/java/text/CollationElementIterator.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/text/CollationElementIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.ArrayList; *** 48,58 **** */ /** ! * This class walks through the character collation elements of a ! * String as defined by the collation rules in an instance of * RuleBasedCollator. There is no public constructor for * this class. An instance is created by calling the ! * getCollationElementIterator method on * RuleBasedCollator. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 48,58 ---- */ /** ! * This class walks through the character collation elements of a ! * String as defined by the collation rules in an instance of * RuleBasedCollator. There is no public constructor for * this class. An instance is created by calling the ! * getCollationElementIterator method on * RuleBasedCollator. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** import java.util.ArrayList; *** 62,68 **** public final class CollationElementIterator { /** ! * This is a constant value that is returned to indicate that the end of * the string was encountered. */ public static final int NULLORDER = -1; --- 62,68 ---- public final class CollationElementIterator { /** ! * This is a constant value that is returned to indicate that the end of * the string was encountered. */ public static final int NULLORDER = -1; *************** public final class CollationElementItera *** 109,116 **** CollationElementIterator(RuleBasedCollator collator, String text) { this.collator = collator; ! ! setText (text); } /** --- 109,116 ---- CollationElementIterator(RuleBasedCollator collator, String text) { this.collator = collator; ! ! setText (text); } /** *************** public final class CollationElementItera *** 124,140 **** CollationElementIterator(RuleBasedCollator collator, CharacterIterator text) { this.collator = collator; ! ! setText (text); } RuleBasedCollator.CollationElement nextBlock() { if (index >= text_decomposition.length) return null; ! RuleBasedCollator.CollationElement e = text_decomposition[index]; ! textIndex = text_indexes[index+1]; index++; --- 124,140 ---- CollationElementIterator(RuleBasedCollator collator, CharacterIterator text) { this.collator = collator; ! ! setText (text); } RuleBasedCollator.CollationElement nextBlock() { if (index >= text_decomposition.length) return null; ! RuleBasedCollator.CollationElement e = text_decomposition[index]; ! textIndex = text_indexes[index+1]; index++; *************** public final class CollationElementItera *** 146,157 **** { if (index == 0) return null; ! index--; RuleBasedCollator.CollationElement e = text_decomposition[index]; textIndex = text_indexes[index+1]; ! return e; } --- 146,157 ---- { if (index == 0) return null; ! index--; RuleBasedCollator.CollationElement e = text_decomposition[index]; textIndex = text_indexes[index+1]; ! return e; } *************** public final class CollationElementItera *** 169,175 **** if (e == null) return NULLORDER; ! return e.getValue(); } --- 169,175 ---- if (e == null) return NULLORDER; ! return e.getValue(); } *************** public final class CollationElementItera *** 186,192 **** if (e == null) return NULLORDER; ! return e.getValue(); } --- 186,192 ---- if (e == null) return NULLORDER; ! return e.getValue(); } *************** public final class CollationElementItera *** 194,200 **** * This method returns the primary order value for the given collation * value. * ! * @param order The collation value returned from next() or * previous(). * * @return The primary order value of the specified collation value. This is --- 194,200 ---- * This method returns the primary order value for the given collation * value. * ! * @param order The collation value returned from next() or * previous(). * * @return The primary order value of the specified collation value. This is *************** public final class CollationElementItera *** 220,229 **** * This method returns the secondary order value for the given collation * value. * ! * @param order The collation value returned from next() or * previous(). * ! * @return The secondary order value of the specified collation value. This * is the bits 8-15. */ public static short secondaryOrder(int order) --- 220,229 ---- * This method returns the secondary order value for the given collation * value. * ! * @param order The collation value returned from next() or * previous(). * ! * @return The secondary order value of the specified collation value. This * is the bits 8-15. */ public static short secondaryOrder(int order) *************** public final class CollationElementItera *** 236,245 **** * This method returns the tertiary order value for the given collation * value. * ! * @param order The collation value returned from next() or * previous(). * ! * @return The tertiary order value of the specified collation value. This * is the low eight bits. */ public static short tertiaryOrder(int order) --- 236,245 ---- * This method returns the tertiary order value for the given collation * value. * ! * @param order The collation value returned from next() or * previous(). * ! * @return The tertiary order value of the specified collation value. This * is the low eight bits. */ public static short tertiaryOrder(int order) *************** public final class CollationElementItera *** 274,409 **** // Build element collection ordered as they come in "text". while (idx < work_text.length()) { ! String key, key_old; ! Object object = null; ! int p = 1; ! ! // IMPROVE: use a TreeMap with a prefix-ordering rule. ! key_old = key = null; ! do ! { ! if (object != null) ! key_old = key; ! key = work_text.substring (idx, idx+p); ! object = collator.prefix_tree.get (key); ! if (object != null && idx < alreadyExpanded) ! { ! RuleBasedCollator.CollationElement prefix = (RuleBasedCollator.CollationElement)object; ! if (prefix.expansion != null && ! prefix.expansion.startsWith(work_text.substring(0, idx))) ! { ! object = null; ! key = key_old; ! } ! } ! p++; ! } ! while (idx+p <= work_text.length()); ! ! if (object == null) ! key = key_old; ! ! RuleBasedCollator.CollationElement prefix = ! (RuleBasedCollator.CollationElement) collator.prefix_tree.get (key); ! /* ! * First case: There is no such sequence in the database. ! * We will have to build one from the context. ! */ ! if (prefix == null) ! { ! /* ! * We are dealing with sequences in an expansion. They ! * are treated as accented characters (tertiary order). ! */ ! if (alreadyExpanded > 0) ! { ! RuleBasedCollator.CollationElement e = ! collator.getDefaultAccentedElement (work_text.charAt (idx)); ! ! a_element.add (e); ! a_idx.add (new Integer(idx_idx)); ! idx++; ! alreadyExpanded--; ! if (alreadyExpanded == 0) ! { ! /* There is not any characters left in the expansion set. ! * We can increase the pointer in the source string. ! */ ! idx_idx += idxToMove; ! idxToMove = 0; ! } ! else ! idx_idx++; ! } ! else ! { ! /* This is a normal character. */ ! RuleBasedCollator.CollationElement e = ! collator.getDefaultElement (work_text.charAt (idx)); ! Integer i_ref = new Integer(idx_idx); ! /* Don't forget to mark it as a special sequence so the ! * string can be ordered. ! */ ! a_element.add (RuleBasedCollator.SPECIAL_UNKNOWN_SEQ); ! a_idx.add (i_ref); ! a_element.add (e); ! a_idx.add (i_ref); ! idx_idx++; ! idx++; ! } ! continue; ! } ! ! /* ! * Second case: Here we have found a matching sequence. ! * Here we have an expansion string prepend it to the "work text" and ! * add the corresponding sorting element. We must also mark ! */ ! if (prefix.expansion != null) ! { ! work_text = prefix.expansion ! + work_text.substring (idx+prefix.key.length()); ! idx = 0; ! a_element.add (prefix); ! a_idx.add (new Integer(idx_idx)); ! if (alreadyExpanded == 0) ! idxToMove = prefix.key.length(); ! alreadyExpanded += prefix.expansion.length()-prefix.key.length(); ! } ! else ! { ! /* Third case: the simplest. We have got the prefix and it ! * has not to be expanded. ! */ ! a_element.add (prefix); ! a_idx.add (new Integer(idx_idx)); ! idx += prefix.key.length(); ! /* If the sequence is in an expansion, we must decrease the ! * counter. ! */ ! if (alreadyExpanded > 0) ! { ! alreadyExpanded -= prefix.key.length(); ! if (alreadyExpanded == 0) ! { ! idx_idx += idxToMove; ! idxToMove = 0; ! } ! } ! else ! idx_idx += prefix.key.length(); ! } } ! text_decomposition = (RuleBasedCollator.CollationElement[]) ! a_element.toArray(new RuleBasedCollator.CollationElement[a_element.size()]); text_indexes = new int[a_idx.size()+1]; ! for (int i = 0; i < a_idx.size(); i++) { ! text_indexes[i] = ((Integer)a_idx.get(i)).intValue(); } text_indexes[a_idx.size()] = text.length(); } --- 274,409 ---- // Build element collection ordered as they come in "text". while (idx < work_text.length()) { ! String key, key_old; ! Object object = null; ! int p = 1; ! // IMPROVE: use a TreeMap with a prefix-ordering rule. ! key_old = key = null; ! do ! { ! if (object != null) ! key_old = key; ! key = work_text.substring (idx, idx+p); ! object = collator.prefix_tree.get (key); ! if (object != null && idx < alreadyExpanded) ! { ! RuleBasedCollator.CollationElement prefix = (RuleBasedCollator.CollationElement)object; ! if (prefix.expansion != null && ! prefix.expansion.startsWith(work_text.substring(0, idx))) ! { ! object = null; ! key = key_old; ! } ! } ! p++; ! } ! while (idx+p <= work_text.length()); ! if (object == null) ! key = key_old; ! ! RuleBasedCollator.CollationElement prefix = ! (RuleBasedCollator.CollationElement) collator.prefix_tree.get (key); ! ! /* ! * First case: There is no such sequence in the database. ! * We will have to build one from the context. ! */ ! if (prefix == null) ! { ! /* ! * We are dealing with sequences in an expansion. They ! * are treated as accented characters (tertiary order). ! */ ! if (alreadyExpanded > 0) ! { ! RuleBasedCollator.CollationElement e = ! collator.getDefaultAccentedElement (work_text.charAt (idx)); ! ! a_element.add (e); ! a_idx.add (new Integer(idx_idx)); ! idx++; ! alreadyExpanded--; ! if (alreadyExpanded == 0) ! { ! /* There is not any characters left in the expansion set. ! * We can increase the pointer in the source string. ! */ ! idx_idx += idxToMove; ! idxToMove = 0; ! } ! else ! idx_idx++; ! } ! else ! { ! /* This is a normal character. */ ! RuleBasedCollator.CollationElement e = ! collator.getDefaultElement (work_text.charAt (idx)); ! Integer i_ref = new Integer(idx_idx); ! ! /* Don't forget to mark it as a special sequence so the ! * string can be ordered. ! */ ! a_element.add (RuleBasedCollator.SPECIAL_UNKNOWN_SEQ); ! a_idx.add (i_ref); ! a_element.add (e); ! a_idx.add (i_ref); ! idx_idx++; ! idx++; ! } ! continue; ! } ! ! /* ! * Second case: Here we have found a matching sequence. ! * Here we have an expansion string prepend it to the "work text" and ! * add the corresponding sorting element. We must also mark ! */ ! if (prefix.expansion != null) ! { ! work_text = prefix.expansion ! + work_text.substring (idx+prefix.key.length()); ! idx = 0; ! a_element.add (prefix); ! a_idx.add (new Integer(idx_idx)); ! if (alreadyExpanded == 0) ! idxToMove = prefix.key.length(); ! alreadyExpanded += prefix.expansion.length()-prefix.key.length(); ! } ! else ! { ! /* Third case: the simplest. We have got the prefix and it ! * has not to be expanded. ! */ ! a_element.add (prefix); ! a_idx.add (new Integer(idx_idx)); ! idx += prefix.key.length(); ! /* If the sequence is in an expansion, we must decrease the ! * counter. ! */ ! if (alreadyExpanded > 0) ! { ! alreadyExpanded -= prefix.key.length(); ! if (alreadyExpanded == 0) ! { ! idx_idx += idxToMove; ! idxToMove = 0; ! } ! } ! else ! idx_idx += prefix.key.length(); ! } } ! text_decomposition = (RuleBasedCollator.CollationElement[]) ! a_element.toArray(new RuleBasedCollator.CollationElement[a_element.size()]); text_indexes = new int[a_idx.size()+1]; ! for (int i = 0; i < a_idx.size(); i++) { ! text_indexes[i] = ((Integer)a_idx.get(i)).intValue(); } text_indexes[a_idx.size()] = text.length(); } *************** public final class CollationElementItera *** 422,429 **** // For now assume we read from the beginning of the string. for (char c = source.first(); ! c != CharacterIterator.DONE; ! c = source.next()) expand.append(c); setText(expand.toString()); --- 422,429 ---- // For now assume we read from the beginning of the string. for (char c = source.first(); ! c != CharacterIterator.DONE; ! c = source.next()) expand.append(c); setText(expand.toString()); *************** public final class CollationElementItera *** 459,469 **** if (offset > (text.getEndIndex() - 1)) throw new IllegalArgumentException("Offset too large: " + offset); ! for (index = 0; index < text_decomposition.length; index++) ! { ! if (offset <= text_indexes[index]) ! break; } /* * As text_indexes[0] == 0, we should not have to take care whether index is --- 459,469 ---- if (offset > (text.getEndIndex() - 1)) throw new IllegalArgumentException("Offset too large: " + offset); ! for (index = 0; index < text_decomposition.length; index++) ! { ! if (offset <= text_indexes[index]) ! break; } /* * As text_indexes[0] == 0, we should not have to take care whether index is diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/CollationKey.java gcc-4.6.0/libjava/classpath/java/text/CollationKey.java *** gcc-4.5.2/libjava/classpath/java/text/CollationKey.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/text/CollationKey.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Arrays; *** 53,63 **** * Collator in a manner than is usually more efficient than * using the raw Collator compare methods. There is overhead * associated with calculating this value, so it is generally not ! * advisable to compute CollationKey's unless multiple * comparisons against a String will be done. (For example, * in a sort routine). *

                        ! * This class cannot be instantiated directly. Instead, a * CollationKey is created by calling the * getCollationKey method on an instance of Collator. * --- 53,63 ---- * Collator in a manner than is usually more efficient than * using the raw Collator compare methods. There is overhead * associated with calculating this value, so it is generally not ! * advisable to compute CollationKey's unless multiple * comparisons against a String will be done. (For example, * in a sort routine). *

                        ! * This class cannot be instantiated directly. Instead, a * CollationKey is created by calling the * getCollationKey method on an instance of Collator. * *************** public class CollationKey implements Com *** 90,97 **** } /** ! * This method compares the specified object to this one. An integer is ! * returned which indicates whether the specified object is less than, * greater than, or equal to this object. * * @param ck The CollationKey to compare against this one. --- 90,97 ---- } /** ! * This method compares the specified object to this one. An integer is ! * returned which indicates whether the specified object is less than, * greater than, or equal to this object. * * @param ck The CollationKey to compare against this one. *************** public class CollationKey implements Com *** 104,111 **** for (int i = 0; i < max; ++i) { ! if (key[i] != ck.key[i]) ! return key[i] - ck.key[i]; } return key.length - ck.key.length; --- 104,111 ---- for (int i = 0; i < max; ++i) { ! if (key[i] != ck.key[i]) ! return key[i] - ck.key[i]; } return key.length - ck.key.length; *************** public class CollationKey implements Com *** 173,179 **** h ^= key[i] * (i + 1); return (int) ((h >> 32) ^ h); } ! /** * This method returns the collation bit sequence as a byte array. * --- 173,179 ---- h ^= key[i] * (i + 1); return (int) ((h >> 32) ^ h); } ! /** * This method returns the collation bit sequence as a byte array. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/Collator.java gcc-4.6.0/libjava/classpath/java/text/Collator.java *** gcc-4.5.2/libjava/classpath/java/text/Collator.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/text/Collator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.ResourceBundle; *** 49,62 **** import java.util.ServiceLoader; /** ! * This class is the abstract superclass of classes which perform * locale dependent String comparisons. A caller requests * an instance of Collator for a particular locale using * the getInstance() static method in this class. That method * will return a locale specific subclass of Collator which * can be used to perform String comparisons for that locale. * If a subclass of Collator cannot be located for a particular ! * locale, a default instance for the current locale will be returned. * * In addition to setting the correct locale, there are two additional * settings that can be adjusted to affect String comparisons: --- 49,62 ---- import java.util.ServiceLoader; /** ! * This class is the abstract superclass of classes which perform * locale dependent String comparisons. A caller requests * an instance of Collator for a particular locale using * the getInstance() static method in this class. That method * will return a locale specific subclass of Collator which * can be used to perform String comparisons for that locale. * If a subclass of Collator cannot be located for a particular ! * locale, a default instance for the current locale will be returned. * * In addition to setting the correct locale, there are two additional * settings that can be adjusted to affect String comparisons: *************** public abstract class Collator implement *** 82,88 **** * are considered to have a primary difference. */ public static final int PRIMARY = 0; ! /** * This constant is a strength value which indicates that only secondary * or primary differences between characters will be considered --- 82,88 ---- * are considered to have a primary difference. */ public static final int PRIMARY = 0; ! /** * This constant is a strength value which indicates that only secondary * or primary differences between characters will be considered *************** public abstract class Collator implement *** 90,96 **** * are instances of the same letter with different accented forms. */ public static final int SECONDARY = 1; ! /** * This constant is a strength value which indicates that tertiary, * secondary, and primary differences will be considered during sorting. --- 90,96 ---- * are instances of the same letter with different accented forms. */ public static final int SECONDARY = 1; ! /** * This constant is a strength value which indicates that tertiary, * secondary, and primary differences will be considered during sorting. *************** public abstract class Collator implement *** 98,110 **** * This is the default value for the strength setting. */ public static final int TERTIARY = 2; ! /** * This constant is a strength value which indicates that any difference * at all between character values are considered significant. */ public static final int IDENTICAL = 3; ! /** * This constant indicates that accented characters won't be decomposed * when performing comparisons. This will yield the fastest results, but --- 98,110 ---- * This is the default value for the strength setting. */ public static final int TERTIARY = 2; ! /** * This constant is a strength value which indicates that any difference * at all between character values are considered significant. */ public static final int IDENTICAL = 3; ! /** * This constant indicates that accented characters won't be decomposed * when performing comparisons. This will yield the fastest results, but *************** public abstract class Collator implement *** 112,118 **** * use accents such as English. */ public static final int NO_DECOMPOSITION = 0; ! /** * This constant indicates that only characters which are canonical variants * in Unicode 2.0 will be decomposed prior to performing comparisons. This --- 112,118 ---- * use accents such as English. */ public static final int NO_DECOMPOSITION = 0; ! /** * This constant indicates that only characters which are canonical variants * in Unicode 2.0 will be decomposed prior to performing comparisons. This *************** public abstract class Collator implement *** 120,126 **** * default decomposition value. */ public static final int CANONICAL_DECOMPOSITION = 1; ! /** * This constant indicates that both canonical variants and compatibility * variants in Unicode 2.0 will be decomposed prior to performing --- 120,126 ---- * default decomposition value. */ public static final int CANONICAL_DECOMPOSITION = 1; ! /** * This constant indicates that both canonical variants and compatibility * variants in Unicode 2.0 will be decomposed prior to performing *************** public abstract class Collator implement *** 131,137 **** /** * This method initializes a new instance of Collator to have ! * the default strength (TERTIARY) and decomposition * (CANONICAL_DECOMPOSITION) settings. This constructor is protected and * is for use by subclasses only. Non-subclass callers should use the * static getInstance() methods of this class to instantiate --- 131,137 ---- /** * This method initializes a new instance of Collator to have ! * the default strength (TERTIARY) and decomposition * (CANONICAL_DECOMPOSITION) settings. This constructor is protected and * is for use by subclasses only. Non-subclass callers should use the * static getInstance() methods of this class to instantiate *************** public abstract class Collator implement *** 147,153 **** * This method compares the two String's and returns an * integer indicating whether or not the first argument is less than, * equal to, or greater than the second argument. The comparison is ! * performed according to the rules of the locale for this * Collator and the strength and decomposition rules in * effect. * --- 147,153 ---- * This method compares the two String's and returns an * integer indicating whether or not the first argument is less than, * equal to, or greater than the second argument. The comparison is ! * performed according to the rules of the locale for this * Collator and the strength and decomposition rules in * effect. * *************** public abstract class Collator implement *** 155,161 **** * @param target The second object to compare * * @return A negative integer if str1 < str2, 0 if str1 == str2, or ! * a positive integer if str1 > str2. */ public abstract int compare (String source, String target); --- 155,161 ---- * @param target The second object to compare * * @return A negative integer if str1 < str2, 0 if str1 == str2, or ! * a positive integer if str1 > str2. */ public abstract int compare (String source, String target); *************** public abstract class Collator implement *** 169,178 **** * @param o2 The second object to compare * * @return A negative integer if obj1 < obj2, 0 if obj1 == obj2, or ! * a positive integer if obj1 > obj2. * * @exception ClassCastException If the arguments are not instances ! * of String. */ public int compare (Object o1, Object o2) { --- 169,178 ---- * @param o2 The second object to compare * * @return A negative integer if obj1 < obj2, 0 if obj1 == obj2, or ! * a positive integer if obj1 > obj2. * * @exception ClassCastException If the arguments are not instances ! * of String. */ public int compare (Object o1, Object o2) { *************** public abstract class Collator implement *** 191,197 **** *

                      * * @param obj The Object to test for equality against ! * this object. * * @return true if the specified object is equal to * this one, false otherwise. --- 191,197 ---- *
                    * * @param obj The Object to test for equality against ! * this object. * * @return true if the specified object is equal to * this one, false otherwise. *************** public abstract class Collator implement *** 213,219 **** * @param target The second String to compare * * @return true if the two strings are equal, ! * false otherwise. */ public boolean equals (String source, String target) { --- 213,219 ---- * @param target The second String to compare * * @return true if the two strings are equal, ! * false otherwise. */ public boolean equals (String source, String target) { *************** public abstract class Collator implement *** 229,239 **** { try { ! return super.clone (); } catch (CloneNotSupportedException _) { ! return null; } } --- 229,239 ---- { try { ! return super.clone (); } catch (CloneNotSupportedException _) { ! return null; } } *************** public abstract class Collator implement *** 300,345 **** String pattern; try { ! ResourceBundle res = ! ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); ! return new RuleBasedCollator(res.getString("collation_rules")); } catch (MissingResourceException x) { ! /* This means runtime support for the locale ! * is not available, so we check providers. */ } catch (ParseException x) { ! throw (InternalError)new InternalError().initCause(x); } for (CollatorProvider p : ServiceLoader.load(CollatorProvider.class)) { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! Collator c = p.getInstance(loc); ! if (c != null) ! return c; ! break; ! } ! } } if (loc.equals(Locale.ROOT)) { ! try ! { ! return new RuleBasedCollator("<0<1<2<3<4<5<6<7<8<9= allFields.length || calendarField < 0) ! throw new IllegalArgumentException("no such calendar field (" ! + calendarField + ")"); ! return allFields[calendarField]; } ! protected Object readResolve() throws InvalidObjectException { String s = getName(); for (int i=0;i= allFields.length || calendarField < 0) ! throw new IllegalArgumentException("no such calendar field (" ! + calendarField + ")"); ! return allFields[calendarField]; } ! protected Object readResolve() throws InvalidObjectException { String s = getName(); for (int i=0;iIs an instance of DateFormat.
                  12. *
                  13. Has equal numberFormat field as this object.
                  14. *
                  15. Has equal (Calendar) TimeZone rules as this object.
                  16. ! *
                  17. Has equal (Calendar) isLenient results.
                  18. *
                  19. Has equal Calendar first day of week and minimal days in week * values.
                  20. * --- 327,333 ---- *
                  21. Is an instance of DateFormat.
                  22. *
                  23. Has equal numberFormat field as this object.
                  24. *
                  25. Has equal (Calendar) TimeZone rules as this object.
                  26. ! *
                  27. Has equal (Calendar) isLenient results.
                  28. *
                  29. Has equal Calendar first day of week and minimal days in week * values.
                  30. * *************** public abstract class DateFormat extends *** 339,345 **** * are not taken into account. * * @param obj The object to test for equality against. ! * * @return true if the specified object is equal to this object, * false otherwise. */ --- 339,345 ---- * are not taken into account. * * @param obj The object to test for equality against. ! * * @return true if the specified object is equal to this object, * false otherwise. */ *************** public abstract class DateFormat extends *** 353,370 **** TimeZone tzd = d.getTimeZone(); if (tz.hasSameRules(tzd)) if (isLenient() == d.isLenient()) ! { ! Calendar c = getCalendar(); ! Calendar cd = d.getCalendar(); ! if ((c == null && cd == null) ! || ! (c.getFirstDayOfWeek() == cd.getFirstDayOfWeek() ! && ! c.getMinimalDaysInFirstWeek() ! == cd.getMinimalDaysInFirstWeek())) ! return ((numberFormat == null && d.numberFormat == null) ! || numberFormat.equals(d.numberFormat)); ! } return false; } --- 353,370 ---- TimeZone tzd = d.getTimeZone(); if (tz.hasSameRules(tzd)) if (isLenient() == d.isLenient()) ! { ! Calendar c = getCalendar(); ! Calendar cd = d.getCalendar(); ! if ((c == null && cd == null) ! || ! (c.getFirstDayOfWeek() == cd.getFirstDayOfWeek() ! && ! c.getMinimalDaysInFirstWeek() ! == cd.getMinimalDaysInFirstWeek())) ! return ((numberFormat == null && d.numberFormat == null) ! || numberFormat.equals(d.numberFormat)); ! } return false; } *************** public abstract class DateFormat extends *** 397,415 **** * formatted date/time appended. */ public final StringBuffer format (Object obj, ! StringBuffer buf, FieldPosition pos) { if (obj instanceof Number) obj = new Date(((Number) obj).longValue()); else if (! (obj instanceof Date)) throw new IllegalArgumentException ! ("Cannot format given Object as a Date"); return format ((Date) obj, buf, pos); } ! /** ! * Formats the date argument according to the pattern specified. * * @param date The formatted date. */ --- 397,415 ---- * formatted date/time appended. */ public final StringBuffer format (Object obj, ! StringBuffer buf, FieldPosition pos) { if (obj instanceof Number) obj = new Date(((Number) obj).longValue()); else if (! (obj instanceof Date)) throw new IllegalArgumentException ! ("Cannot format given Object as a Date"); return format ((Date) obj, buf, pos); } ! /** ! * Formats the date argument according to the pattern specified. * * @param date The formatted date. */ *************** public abstract class DateFormat extends *** 434,440 **** * formatted date/time appended. */ public abstract StringBuffer format (Date date, ! StringBuffer buf, FieldPosition pos); /** * This method returns a list of available locales supported by this --- 434,440 ---- * formatted date/time appended. */ public abstract StringBuffer format (Date date, ! StringBuffer buf, FieldPosition pos); /** * This method returns a list of available locales supported by this *************** public abstract class DateFormat extends *** 474,609 **** ResourceBundle res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); String pattern = null; if (use_date) { ! String name, def; ! switch (dateStyle) ! { ! case FULL: ! name = "fullDateFormat"; ! def = "EEEE MMMM d, yyyy G"; ! break; ! case LONG: ! name = "longDateFormat"; ! def = "MMMM d, yyyy"; ! break; ! case MEDIUM: ! name = "mediumDateFormat"; ! def = "d-MMM-yy"; ! break; ! case SHORT: ! name = "shortDateFormat"; ! def = "M/d/yy"; ! break; ! default: ! throw new IllegalArgumentException (); ! } ! try ! { ! pattern = res == null ? def : res.getString(name); ! } ! catch (MissingResourceException x) ! { ! pattern = def; ! } } if (use_time) { ! if (pattern == null) ! pattern = ""; ! else ! pattern += " "; ! String name, def; ! switch (timeStyle) ! { ! case FULL: ! name = "fullTimeFormat"; ! def = "h:mm:ss;S 'o''clock' a z"; ! break; ! case LONG: ! name = "longTimeFormat"; ! def = "h:mm:ss a z"; ! break; ! case MEDIUM: ! name = "mediumTimeFormat"; ! def = "h:mm:ss a"; ! break; ! case SHORT: ! name = "shortTimeFormat"; ! def = "h:mm a"; ! break; ! default: ! throw new IllegalArgumentException (); ! } ! String s; ! try ! { ! s = res == null ? def : res.getString(name); ! } ! catch (MissingResourceException x) ! { ! s = def; ! } ! pattern += s; } return new SimpleDateFormat (pattern, loc); } private static DateFormat computeDefault (int dateStyle, int timeStyle, ! boolean use_date, boolean use_time) { String pattern = null; if (use_date) { ! switch (dateStyle) ! { ! case FULL: ! pattern = "EEEE MMMM d, yyyy G"; ! break; ! case LONG: ! pattern = "MMMM d, yyyy"; ! break; ! case MEDIUM: ! pattern = "d-MMM-yy"; ! break; ! case SHORT: ! pattern = "M/d/yy"; ! default: ! throw new IllegalArgumentException (); ! } } ! if (use_time) { ! if (pattern == null) ! pattern = ""; ! else ! pattern += " "; ! switch (timeStyle) ! { ! case FULL: ! pattern += "h:mm:ss;S 'o''clock' a z"; ! break; ! case LONG: ! pattern += "h:mm:ss a z"; ! break; ! case MEDIUM: ! pattern += "h:mm:ss a"; ! break; ! case SHORT: ! pattern += "h:mm a"; ! break; ! default: ! throw new IllegalArgumentException (); ! } } return new SimpleDateFormat (pattern, Locale.ROOT); --- 474,609 ---- ResourceBundle res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); String pattern = null; if (use_date) { ! String name, def; ! switch (dateStyle) ! { ! case FULL: ! name = "fullDateFormat"; ! def = "EEEE MMMM d, yyyy G"; ! break; ! case LONG: ! name = "longDateFormat"; ! def = "MMMM d, yyyy"; ! break; ! case MEDIUM: ! name = "mediumDateFormat"; ! def = "d-MMM-yy"; ! break; ! case SHORT: ! name = "shortDateFormat"; ! def = "M/d/yy"; ! break; ! default: ! throw new IllegalArgumentException (); ! } ! try ! { ! pattern = res == null ? def : res.getString(name); ! } ! catch (MissingResourceException x) ! { ! pattern = def; ! } } if (use_time) { ! if (pattern == null) ! pattern = ""; ! else ! pattern += " "; ! String name, def; ! switch (timeStyle) ! { ! case FULL: ! name = "fullTimeFormat"; ! def = "h:mm:ss;S 'o''clock' a z"; ! break; ! case LONG: ! name = "longTimeFormat"; ! def = "h:mm:ss a z"; ! break; ! case MEDIUM: ! name = "mediumTimeFormat"; ! def = "h:mm:ss a"; ! break; ! case SHORT: ! name = "shortTimeFormat"; ! def = "h:mm a"; ! break; ! default: ! throw new IllegalArgumentException (); ! } ! String s; ! try ! { ! s = res == null ? def : res.getString(name); ! } ! catch (MissingResourceException x) ! { ! s = def; ! } ! pattern += s; } return new SimpleDateFormat (pattern, loc); } private static DateFormat computeDefault (int dateStyle, int timeStyle, ! boolean use_date, boolean use_time) { String pattern = null; if (use_date) { ! switch (dateStyle) ! { ! case FULL: ! pattern = "EEEE MMMM d, yyyy G"; ! break; ! case LONG: ! pattern = "MMMM d, yyyy"; ! break; ! case MEDIUM: ! pattern = "d-MMM-yy"; ! break; ! case SHORT: ! pattern = "M/d/yy"; ! default: ! throw new IllegalArgumentException (); ! } } ! if (use_time) { ! if (pattern == null) ! pattern = ""; ! else ! pattern += " "; ! switch (timeStyle) ! { ! case FULL: ! pattern += "h:mm:ss;S 'o''clock' a z"; ! break; ! case LONG: ! pattern += "h:mm:ss a z"; ! break; ! case MEDIUM: ! pattern += "h:mm:ss a"; ! break; ! case SHORT: ! pattern += "h:mm a"; ! break; ! default: ! throw new IllegalArgumentException (); ! } } return new SimpleDateFormat (pattern, Locale.ROOT); *************** public abstract class DateFormat extends *** 624,631 **** * This method returns an instance of DateFormat that will * format using the specified formatting style for dates. * ! * @param style The type of formatting to perform. ! * * @return A new DateFormat instance. */ public static final DateFormat getDateInstance (int style) --- 624,631 ---- * This method returns an instance of DateFormat that will * format using the specified formatting style for dates. * ! * @param style The type of formatting to perform. ! * * @return A new DateFormat instance. */ public static final DateFormat getDateInstance (int style) *************** public abstract class DateFormat extends *** 638,672 **** * format using the specified formatting style for dates. The specified * localed will be used in place of the default. * ! * @param style The type of formatting to perform. * @param loc The desired locale. ! * * @return A new DateFormat instance. */ public static final DateFormat getDateInstance (int style, Locale loc) { try { ! return computeInstance (style, loc, true, false); } catch (MissingResourceException e) { ! for (DateFormatProvider p : ! ServiceLoader.load(DateFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! DateFormat df = p.getDateInstance(style, loc); ! if (df != null) ! return df; ! break; ! } ! } ! } ! return getDateInstance(style, ! LocaleHelper.getFallbackLocale(loc)); } } --- 638,672 ---- * format using the specified formatting style for dates. The specified * localed will be used in place of the default. * ! * @param style The type of formatting to perform. * @param loc The desired locale. ! * * @return A new DateFormat instance. */ public static final DateFormat getDateInstance (int style, Locale loc) { try { ! return computeInstance (style, loc, true, false); } catch (MissingResourceException e) { ! for (DateFormatProvider p : ! ServiceLoader.load(DateFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! DateFormat df = p.getDateInstance(style, loc); ! if (df != null) ! return df; ! break; ! } ! } ! } ! return getDateInstance(style, ! LocaleHelper.getFallbackLocale(loc)); } } *************** public abstract class DateFormat extends *** 687,694 **** * * @return A new DateFormatinstance. */ ! public static final DateFormat getDateTimeInstance (int dateStyle, ! int timeStyle) { return getDateTimeInstance (dateStyle, timeStyle, Locale.getDefault()); } --- 687,694 ---- * * @return A new DateFormatinstance. */ ! public static final DateFormat getDateTimeInstance (int dateStyle, ! int timeStyle) { return getDateTimeInstance (dateStyle, timeStyle, Locale.getDefault()); } *************** public abstract class DateFormat extends *** 696,734 **** /** * This method returns a new instance of DateFormat that * formats both dates and times using the specified styles. ! * * @param dateStyle The desired style for date formatting. * @param timeStyle The desired style for time formatting * * @return A new DateFormatinstance. */ ! public static final DateFormat getDateTimeInstance (int dateStyle, ! int timeStyle, ! Locale loc) { try { ! return computeInstance (dateStyle, timeStyle, loc, true, true); } catch (MissingResourceException e) { ! for (DateFormatProvider p : ! ServiceLoader.load(DateFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! DateFormat df = p.getDateTimeInstance(dateStyle, ! timeStyle, loc); ! if (df != null) ! return df; ! break; ! } ! } ! } ! return getDateTimeInstance(dateStyle, timeStyle, ! LocaleHelper.getFallbackLocale(loc)); } } --- 696,734 ---- /** * This method returns a new instance of DateFormat that * formats both dates and times using the specified styles. ! * * @param dateStyle The desired style for date formatting. * @param timeStyle The desired style for time formatting * * @return A new DateFormatinstance. */ ! public static final DateFormat getDateTimeInstance (int dateStyle, ! int timeStyle, ! Locale loc) { try { ! return computeInstance (dateStyle, timeStyle, loc, true, true); } catch (MissingResourceException e) { ! for (DateFormatProvider p : ! ServiceLoader.load(DateFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! DateFormat df = p.getDateTimeInstance(dateStyle, ! timeStyle, loc); ! if (df != null) ! return df; ! break; ! } ! } ! } ! return getDateTimeInstance(dateStyle, timeStyle, ! LocaleHelper.getFallbackLocale(loc)); } } *************** public abstract class DateFormat extends *** 770,777 **** * This method returns an instance of DateFormat that will * format using the specified formatting style for times. * ! * @param style The type of formatting to perform. ! * * @return A new DateFormat instance. */ public static final DateFormat getTimeInstance (int style) --- 770,777 ---- * This method returns an instance of DateFormat that will * format using the specified formatting style for times. * ! * @param style The type of formatting to perform. ! * * @return A new DateFormat instance. */ public static final DateFormat getTimeInstance (int style) *************** public abstract class DateFormat extends *** 784,818 **** * format using the specified formatting style for times. The specified * localed will be used in place of the default. * ! * @param style The type of formatting to perform. * @param loc The desired locale. ! * * @return A new DateFormat instance. */ public static final DateFormat getTimeInstance (int style, Locale loc) { try { ! return computeInstance (style, loc, false, true); } catch (MissingResourceException e) { ! for (DateFormatProvider p : ! ServiceLoader.load(DateFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! DateFormat df = p.getTimeInstance(style, loc); ! if (df != null) ! return df; ! break; ! } ! } ! } ! return getTimeInstance(style, ! LocaleHelper.getFallbackLocale(loc)); } } --- 784,818 ---- * format using the specified formatting style for times. The specified * localed will be used in place of the default. * ! * @param style The type of formatting to perform. * @param loc The desired locale. ! * * @return A new DateFormat instance. */ public static final DateFormat getTimeInstance (int style, Locale loc) { try { ! return computeInstance (style, loc, false, true); } catch (MissingResourceException e) { ! for (DateFormatProvider p : ! ServiceLoader.load(DateFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! DateFormat df = p.getTimeInstance(style, loc); ! if (df != null) ! return df; ! break; ! } ! } ! } ! return getTimeInstance(style, ! LocaleHelper.getFallbackLocale(loc)); } } *************** public abstract class DateFormat extends *** 829,835 **** /** * This method returns a hash value for this object. ! * * @return A hash value for this object. */ public int hashCode () --- 829,835 ---- /** * This method returns a hash value for this object. ! * * @return A hash value for this object. */ public int hashCode () *************** public abstract class DateFormat extends *** 866,882 **** Date result = parse (source, pos); if (result == null) { ! int index = pos.getErrorIndex(); ! if (index < 0) ! index = pos.getIndex(); ! throw new ParseException("invalid Date syntax in \"" ! + source + '\"', index); } return result; } ! /** ! * This method parses the specified String into a * Date. The pos argument contains the * starting parse position on method entry and the ending parse * position on method exit. --- 866,882 ---- Date result = parse (source, pos); if (result == null) { ! int index = pos.getErrorIndex(); ! if (index < 0) ! index = pos.getIndex(); ! throw new ParseException("invalid Date syntax in \"" ! + source + '\"', index); } return result; } ! /** ! * This method parses the specified String into a * Date. The pos argument contains the * starting parse position on method entry and the ending parse * position on method exit. *************** public abstract class DateFormat extends *** 894,900 **** * This method is identical to parse(String, ParsePosition), * but returns its result as an Object instead of a * Date. ! * * @param source The string to parse. * @param pos The starting parse position in entry, the ending parse * position on exit. --- 894,900 ---- * This method is identical to parse(String, ParsePosition), * but returns its result as an Object instead of a * Date. ! * * @param source The string to parse. * @param pos The starting parse position in entry, the ending parse * position on exit. *************** public abstract class DateFormat extends *** 908,914 **** } /** ! * This method specified the Calendar that should be used * by this object to parse/format datetimes. * * @param calendar The new Calendar for this object. --- 908,914 ---- } /** ! * This method specified the Calendar that should be used * by this object to parse/format datetimes. * * @param calendar The new Calendar for this object. *************** public abstract class DateFormat extends *** 921,927 **** } /** ! * This method specifies whether or not this object should be lenient in * the syntax it accepts while parsing date/time values. * * @param lenient true if parsing should be lenient, --- 921,927 ---- } /** ! * This method specifies whether or not this object should be lenient in * the syntax it accepts while parsing date/time values. * * @param lenient true if parsing should be lenient, diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/DateFormatSymbols.java gcc-4.6.0/libjava/classpath/java/text/DateFormatSymbols.java *** gcc-4.5.2/libjava/classpath/java/text/DateFormatSymbols.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/text/DateFormatSymbols.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class DateFormatSymbols implement *** 89,95 **** static { properties = new Properties(); ! try { properties.load(DateFormatSymbols.class.getResourceAsStream("metazones.properties")); } --- 89,95 ---- static { properties = new Properties(); ! try { properties.load(DateFormatSymbols.class.getResourceAsStream("metazones.properties")); } *************** public class DateFormatSymbols implement *** 126,132 **** transient String[] timeFormats; private static String[] getStringArray(ResourceBundle res, String name) ! { return res.getString(name).split("\u00ae"); } --- 126,132 ---- transient String[] timeFormats; private static String[] getStringArray(ResourceBundle res, String name) ! { return res.getString(name).split("\u00ae"); } *************** public class DateFormatSymbols implement *** 135,250 **** List allZones = new ArrayList(); try { ! Map systemZones = new HashMap(); ! while (true) ! { ! int index = 0; ! String country = locale.getCountry(); ! String data = res.getString("zoneStrings"); ! String[] zones = data.split("\u00a9"); ! for (int a = 0; a < zones.length; ++a) ! { ! String[] strings = zones[a].split("\u00ae"); ! String type = properties.getProperty(strings[0] + "." + country); ! if (type == null) ! type = properties.getProperty(strings[0] + ".DEFAULT"); ! if (type != null) ! strings[0] = type; ! if (strings.length < 5) ! { ! String[] newStrings = new String[5]; ! System.arraycopy(strings, 0, newStrings, 0, strings.length); ! for (int b = strings.length; b < newStrings.length; ++b) ! newStrings[b] = ""; ! strings = newStrings; ! } ! String[] existing = systemZones.get(strings[0]); ! if (existing != null && existing.length > 1) ! { ! for (int b = 1; b < existing.length; ++b) ! if (!existing[b].equals("")) ! strings[b] = existing[b]; ! } ! systemZones.put(strings[0], strings); ! } ! if (res.getLocale() == Locale.ROOT) ! break; ! else ! res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! LocaleHelper.getFallbackLocale(res.getLocale()), ! ClassLoader.getSystemClassLoader()); ! } ! /* Final sanity check for missing values */ ! for (String[] zstrings : systemZones.values()) ! { ! if (zstrings[1].equals("") && zstrings[2].equals("")) ! { ! for (Map.Entry entry : properties.entrySet()) ! { ! String val = (String) entry.getValue(); ! if (val.equals(zstrings[0])) ! { ! String key = (String) entry.getKey(); ! String metazone = key.substring(0, key.indexOf(".")); ! String type = properties.getProperty(metazone + "." + locale.getCountry()); ! if (type == null) ! type = properties.getProperty(metazone + ".DEFAULT"); ! if (type != null) ! { ! String[] ostrings = systemZones.get(type); ! zstrings[1] = ostrings[1]; ! zstrings[2] = ostrings[2]; ! } ! } ! } ! } ! } ! allZones.addAll(systemZones.values()); } catch (MissingResourceException e) { ! /* This means runtime support for the locale ! * is not available, so we just include providers. */ } for (TimeZoneNameProvider p : ! ServiceLoader.load(TimeZoneNameProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! for (String id : TimeZone.getAvailableIDs()) ! { ! String[] z = new String[5]; ! z[0] = id; ! z[1] = p.getDisplayName(id, false, ! TimeZone.LONG, ! locale); ! z[2] = p.getDisplayName(id, false, ! TimeZone.SHORT, ! locale); ! z[3] = p.getDisplayName(id, true, ! TimeZone.LONG, ! locale); ! z[4] = p.getDisplayName(id, true, ! TimeZone.SHORT, ! locale); ! allZones.add(z); ! } ! break; ! } ! } } return allZones.toArray(new String[allZones.size()][]); } ! ! private String[] formatsForKey(ResourceBundle res, String key) { String[] values = new String[formatPrefixes.length]; ! for (int i = 0; i < formatPrefixes.length; i++) values[i] = res.getString(formatPrefixes[i] + key); ! return values; } --- 135,250 ---- List allZones = new ArrayList(); try { ! Map systemZones = new HashMap(); ! while (true) ! { ! int index = 0; ! String country = locale.getCountry(); ! String data = res.getString("zoneStrings"); ! String[] zones = data.split("\u00a9"); ! for (int a = 0; a < zones.length; ++a) ! { ! String[] strings = zones[a].split("\u00ae"); ! String type = properties.getProperty(strings[0] + "." + country); ! if (type == null) ! type = properties.getProperty(strings[0] + ".DEFAULT"); ! if (type != null) ! strings[0] = type; ! if (strings.length < 5) ! { ! String[] newStrings = new String[5]; ! System.arraycopy(strings, 0, newStrings, 0, strings.length); ! for (int b = strings.length; b < newStrings.length; ++b) ! newStrings[b] = ""; ! strings = newStrings; ! } ! String[] existing = systemZones.get(strings[0]); ! if (existing != null && existing.length > 1) ! { ! for (int b = 1; b < existing.length; ++b) ! if (!existing[b].equals("")) ! strings[b] = existing[b]; ! } ! systemZones.put(strings[0], strings); ! } ! if (res.getLocale() == Locale.ROOT) ! break; ! else ! res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! LocaleHelper.getFallbackLocale(res.getLocale()), ! ClassLoader.getSystemClassLoader()); ! } ! /* Final sanity check for missing values */ ! for (String[] zstrings : systemZones.values()) ! { ! if (zstrings[1].equals("") && zstrings[2].equals("")) ! { ! for (Map.Entry entry : properties.entrySet()) ! { ! String val = (String) entry.getValue(); ! if (val.equals(zstrings[0])) ! { ! String key = (String) entry.getKey(); ! String metazone = key.substring(0, key.indexOf(".")); ! String type = properties.getProperty(metazone + "." + locale.getCountry()); ! if (type == null) ! type = properties.getProperty(metazone + ".DEFAULT"); ! if (type != null) ! { ! String[] ostrings = systemZones.get(type); ! zstrings[1] = ostrings[1]; ! zstrings[2] = ostrings[2]; ! } ! } ! } ! } ! } ! allZones.addAll(systemZones.values()); } catch (MissingResourceException e) { ! /* This means runtime support for the locale ! * is not available, so we just include providers. */ } for (TimeZoneNameProvider p : ! ServiceLoader.load(TimeZoneNameProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! for (String id : TimeZone.getAvailableIDs()) ! { ! String[] z = new String[5]; ! z[0] = id; ! z[1] = p.getDisplayName(id, false, ! TimeZone.LONG, ! locale); ! z[2] = p.getDisplayName(id, false, ! TimeZone.SHORT, ! locale); ! z[3] = p.getDisplayName(id, true, ! TimeZone.LONG, ! locale); ! z[4] = p.getDisplayName(id, true, ! TimeZone.SHORT, ! locale); ! allZones.add(z); ! } ! break; ! } ! } } return allZones.toArray(new String[allZones.size()][]); } ! ! private String[] formatsForKey(ResourceBundle res, String key) { String[] values = new String[formatPrefixes.length]; ! for (int i = 0; i < formatPrefixes.length; i++) values[i] = res.getString(formatPrefixes[i] + key); ! return values; } *************** public class DateFormatSymbols implement *** 256,262 **** * call {@link #getInstance(java.util.Locale)} instead. * * @param locale The locale for which date formatting symbols should ! * be loaded. * @throws MissingResourceException if the resources for the specified * locale could not be found or loaded. * @see #getInstance(java.util.Locale) --- 256,262 ---- * call {@link #getInstance(java.util.Locale)} instead. * * @param locale The locale for which date formatting symbols should ! * be loaded. * @throws MissingResourceException if the resources for the specified * locale could not be found or loaded. * @see #getInstance(java.util.Locale) *************** public class DateFormatSymbols implement *** 266,272 **** { ResourceBundle res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", locale, ! ClassLoader.getSystemClassLoader()); ampms = getStringArray(res, "ampms"); eras = getStringArray(res, "eras"); --- 266,272 ---- { ResourceBundle res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", locale, ! ClassLoader.getSystemClassLoader()); ampms = getStringArray(res, "ampms"); eras = getStringArray(res, "eras"); *************** public class DateFormatSymbols implement *** 290,296 **** * locale could not be found or loaded. * @see #getInstance() */ ! public DateFormatSymbols() throws MissingResourceException { this (Locale.getDefault()); --- 290,296 ---- * locale could not be found or loaded. * @see #getInstance() */ ! public DateFormatSymbols() throws MissingResourceException { this (Locale.getDefault()); *************** public class DateFormatSymbols implement *** 323,329 **** /** * This method returns the pattern character information for this * object. This is an 18 character string that contains the characters ! * that are used in creating the date formatting strings in * SimpleDateFormat. The following are the character * positions in the string and which format character they correspond * to (the character in parentheses is the default value in the US English --- 323,329 ---- /** * This method returns the pattern character information for this * object. This is an 18 character string that contains the characters ! * that are used in creating the date formatting strings in * SimpleDateFormat. The following are the character * positions in the string and which format character they correspond * to (the character in parentheses is the default value in the US English *************** public class DateFormatSymbols implement *** 386,392 **** } /** ! * This method returns the list of strings used for displaying abbreviated * weekday names (e.g., "Sun" and "Mon"). This is an eight element * String array indexed by Calendar.SUNDAY * through Calendar.SATURDAY. Note that the first element --- 386,392 ---- } /** ! * This method returns the list of strings used for displaying abbreviated * weekday names (e.g., "Sun" and "Mon"). This is an eight element * String array indexed by Calendar.SUNDAY * through Calendar.SATURDAY. Note that the first element *************** public class DateFormatSymbols implement *** 476,482 **** * This method sets the list of characters used to specific date/time * formatting strings. * This is an 18 character string that contains the characters ! * that are used in creating the date formatting strings in * SimpleDateFormat. The following are the character * positions in the string and which format character they correspond * to (the character in parentheses is the default value in the US English --- 476,482 ---- * This method sets the list of characters used to specific date/time * formatting strings. * This is an 18 character string that contains the characters ! * that are used in creating the date formatting strings in * SimpleDateFormat. The following are the character * positions in the string and which format character they correspond * to (the character in parentheses is the default value in the US English *************** public class DateFormatSymbols implement *** 615,622 **** return false; for (int i = xa.length; --i >= 0; ) { ! if (! equals(xa[i], ya[i])) ! return false; } return true; } --- 615,622 ---- return false; for (int i = xa.length; --i >= 0; ) { ! if (! equals(xa[i], ya[i])) ! return false; } return true; } *************** public class DateFormatSymbols implement *** 643,649 **** *
                  31. Is an instance of DateFormatSymbols.
                  32. *
                  33. Contains identical formatting symbols to this object.
                  34. * ! * * @param obj The Object to test for equality against. * * @return true if the specified object is equal to this one, --- 643,649 ---- *
                  35. Is an instance of DateFormatSymbols.
                  36. *
                  37. Contains identical formatting symbols to this object.
                  38. * ! * * @param obj The Object to test for equality against. * * @return true if the specified object is equal to this one, *************** public class DateFormatSymbols implement *** 655,667 **** return false; DateFormatSymbols other = (DateFormatSymbols) obj; return (equals(ampms, other.ampms) ! && equals(eras, other.eras) ! && equals(localPatternChars, other.localPatternChars) ! && equals(months, other.months) ! && equals(shortMonths, other.shortMonths) ! && equals(shortWeekdays, other.shortWeekdays) ! && equals(weekdays, other.weekdays) ! && equals(zoneStrings, other.zoneStrings)); } /** --- 655,667 ---- return false; DateFormatSymbols other = (DateFormatSymbols) obj; return (equals(ampms, other.ampms) ! && equals(eras, other.eras) ! && equals(localPatternChars, other.localPatternChars) ! && equals(months, other.months) ! && equals(shortMonths, other.shortMonths) ! && equals(shortWeekdays, other.shortWeekdays) ! && equals(weekdays, other.weekdays) ! && equals(zoneStrings, other.zoneStrings)); } /** *************** public class DateFormatSymbols implement *** 674,681 **** try { return super.clone (); ! } ! catch (CloneNotSupportedException e) { return null; } --- 674,681 ---- try { return super.clone (); ! } ! catch (CloneNotSupportedException e) { return null; } *************** public class DateFormatSymbols implement *** 689,701 **** public int hashCode () { return (hashCode(ampms) ! ^ hashCode(eras) ! ^ hashCode(localPatternChars) ! ^ hashCode(months) ! ^ hashCode(shortMonths) ! ^ hashCode(shortWeekdays) ! ^ hashCode(weekdays) ! ^ hashCode(zoneStrings)); } /** --- 689,701 ---- public int hashCode () { return (hashCode(ampms) ! ^ hashCode(eras) ! ^ hashCode(localPatternChars) ! ^ hashCode(months) ! ^ hashCode(shortMonths) ! ^ hashCode(shortWeekdays) ! ^ hashCode(weekdays) ! ^ hashCode(zoneStrings)); } /** *************** public class DateFormatSymbols implement *** 705,711 **** * {@link java.text.spi.DateFormatSymbolsProvider} instances. * This is equivalent to calling * getInstance(Locale.getDefault()). ! * * @return a {@link DateFormatSymbols} instance for the default * locale. * @since 1.6 --- 705,711 ---- * {@link java.text.spi.DateFormatSymbolsProvider} instances. * This is equivalent to calling * getInstance(Locale.getDefault()). ! * * @return a {@link DateFormatSymbols} instance for the default * locale. * @since 1.6 *************** public class DateFormatSymbols implement *** 720,726 **** * specified locale obtained from either the runtime itself * or one of the installed * {@link java.text.spi.DateFormatSymbolsProvider} instances. ! * * @param locale the locale for which an instance should be * returned. * @return a {@link DateFormatSymbols} instance for the specified --- 720,726 ---- * specified locale obtained from either the runtime itself * or one of the installed * {@link java.text.spi.DateFormatSymbolsProvider} instances. ! * * @param locale the locale for which an instance should be * returned. * @return a {@link DateFormatSymbols} instance for the specified *************** public class DateFormatSymbols implement *** 733,759 **** { try { ! DateFormatSymbols syms = new DateFormatSymbols(locale); ! return syms; } catch (MissingResourceException e) { ! /* This means runtime support for the locale ! * is not available, so we check providers. */ } for (DateFormatSymbolsProvider p : ! ServiceLoader.load(DateFormatSymbolsProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! DateFormatSymbols syms = p.getInstance(locale); ! if (syms != null) ! return syms; ! break; ! } ! } } return getInstance(LocaleHelper.getFallbackLocale(locale)); } --- 733,759 ---- { try { ! DateFormatSymbols syms = new DateFormatSymbols(locale); ! return syms; } catch (MissingResourceException e) { ! /* This means runtime support for the locale ! * is not available, so we check providers. */ } for (DateFormatSymbolsProvider p : ! ServiceLoader.load(DateFormatSymbolsProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! DateFormatSymbols syms = p.getInstance(locale); ! if (syms != null) ! return syms; ! break; ! } ! } } return getInstance(LocaleHelper.getFallbackLocale(locale)); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/DecimalFormat.java gcc-4.6.0/libjava/classpath/java/text/DecimalFormat.java *** gcc-4.5.2/libjava/classpath/java/text/DecimalFormat.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/text/DecimalFormat.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** this exception to your version of the li *** 35,41 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! /* * This class contains few bits from ICU4J (http://icu.sourceforge.net/), * Copyright by IBM and others and distributed under the * distributed under MIT/X. --- 35,41 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! /* * This class contains few bits from ICU4J (http://icu.sourceforge.net/), * Copyright by IBM and others and distributed under the * distributed under MIT/X. *************** import java.util.Locale; *** 55,61 **** /* * This note is here for historical reasons and because I had not the courage * to remove it :) ! * * @author Tom Tromey (tromey@cygnus.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @date March 4, 1999 --- 55,61 ---- /* * This note is here for historical reasons and because I had not the courage * to remove it :) ! * * @author Tom Tromey (tromey@cygnus.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @date March 4, 1999 *************** import java.util.Locale; *** 72,78 **** * decimal numbers. The class can format numbers given a specific locale. * Generally, to get an instance of DecimalFormat you should call the factory * methods in the NumberFormat base class. ! * * @author Mario Torre (neugens@limasoftware.net) * @author Tom Tromey (tromey@cygnus.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) --- 72,78 ---- * decimal numbers. The class can format numbers given a specific locale. * Generally, to get an instance of DecimalFormat you should call the factory * methods in the NumberFormat base class. ! * * @author Mario Torre (neugens@limasoftware.net) * @author Tom Tromey (tromey@cygnus.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) *************** public class DecimalFormat extends Numbe *** 81,184 **** { /** serialVersionUID for serializartion. */ private static final long serialVersionUID = 864413376551465018L; ! /** Defines the default number of digits allowed while formatting integers. */ ! private static final int DEFAULT_INTEGER_DIGITS = 309; /** * Defines the default number of digits allowed while formatting * fractions. */ private static final int DEFAULT_FRACTION_DIGITS = 340; ! /** * Locale-independent pattern symbols. */ // Happen to be the same as the US symbols. private static final DecimalFormatSymbols nonLocalizedSymbols = new DecimalFormatSymbols (Locale.US); ! /** * Defines if parse should return a BigDecimal or not. */ private boolean parseBigDecimal; ! /** * Defines if we have to use the monetary decimal separator or * the decimal separator while formatting numbers. */ private boolean useCurrencySeparator; ! /** Defines if the decimal separator is always shown or not. */ private boolean decimalSeparatorAlwaysShown; ! /** * Defines if the decimal separator has to be shown. ! * * This is different then decimalSeparatorAlwaysShown, * as it defines if the format string contains a decimal separator or no. */ private boolean showDecimalSeparator; ! /** * This field is used to determine if the grouping * separator is included in the format string or not. * This is only needed to match the behaviour of the RI. */ private boolean groupingSeparatorInPattern; ! /** Defines the size of grouping groups when grouping is used. */ private byte groupingSize; ! /** * This is an internal parameter used to keep track of the number * of digits the form the exponent, when exponential notation is used. * It is used with exponentRound */ private byte minExponentDigits; ! /** This field is used to set the exponent in the engineering notation. */ private int exponentRound; ! /** Multiplier used in percent style formats. */ private int multiplier; ! /** Multiplier used in percent style formats. */ private int negativePatternMultiplier; ! /** The negative prefix. */ private String negativePrefix; ! /** The negative suffix. */ private String negativeSuffix; ! /** The positive prefix. */ private String positivePrefix; ! /** The positive suffix. */ private String positiveSuffix; ! /** Decimal Format Symbols for the given locale. */ private DecimalFormatSymbols symbols; ! /** Determine if we have to use exponential notation or not. */ private boolean useExponentialNotation; ! /** * Defines the maximum number of integer digits to show when we use * the exponential notation. */ private int maxIntegerDigitsExponent; ! /** Defines if the format string has a negative prefix or not. */ private boolean hasNegativePrefix; ! /** Defines if the format string has a fractional pattern or not. */ private boolean hasFractionalPattern; ! /** Stores a list of attributes for use by formatToCharacterIterator. */ private ArrayList attributes = new ArrayList(); ! /** * Constructs a DecimalFormat which uses the default * pattern and symbols. --- 81,184 ---- { /** serialVersionUID for serializartion. */ private static final long serialVersionUID = 864413376551465018L; ! /** Defines the default number of digits allowed while formatting integers. */ ! private static final int DEFAULT_INTEGER_DIGITS = 309; /** * Defines the default number of digits allowed while formatting * fractions. */ private static final int DEFAULT_FRACTION_DIGITS = 340; ! /** * Locale-independent pattern symbols. */ // Happen to be the same as the US symbols. private static final DecimalFormatSymbols nonLocalizedSymbols = new DecimalFormatSymbols (Locale.US); ! /** * Defines if parse should return a BigDecimal or not. */ private boolean parseBigDecimal; ! /** * Defines if we have to use the monetary decimal separator or * the decimal separator while formatting numbers. */ private boolean useCurrencySeparator; ! /** Defines if the decimal separator is always shown or not. */ private boolean decimalSeparatorAlwaysShown; ! /** * Defines if the decimal separator has to be shown. ! * * This is different then decimalSeparatorAlwaysShown, * as it defines if the format string contains a decimal separator or no. */ private boolean showDecimalSeparator; ! /** * This field is used to determine if the grouping * separator is included in the format string or not. * This is only needed to match the behaviour of the RI. */ private boolean groupingSeparatorInPattern; ! /** Defines the size of grouping groups when grouping is used. */ private byte groupingSize; ! /** * This is an internal parameter used to keep track of the number * of digits the form the exponent, when exponential notation is used. * It is used with exponentRound */ private byte minExponentDigits; ! /** This field is used to set the exponent in the engineering notation. */ private int exponentRound; ! /** Multiplier used in percent style formats. */ private int multiplier; ! /** Multiplier used in percent style formats. */ private int negativePatternMultiplier; ! /** The negative prefix. */ private String negativePrefix; ! /** The negative suffix. */ private String negativeSuffix; ! /** The positive prefix. */ private String positivePrefix; ! /** The positive suffix. */ private String positiveSuffix; ! /** Decimal Format Symbols for the given locale. */ private DecimalFormatSymbols symbols; ! /** Determine if we have to use exponential notation or not. */ private boolean useExponentialNotation; ! /** * Defines the maximum number of integer digits to show when we use * the exponential notation. */ private int maxIntegerDigitsExponent; ! /** Defines if the format string has a negative prefix or not. */ private boolean hasNegativePrefix; ! /** Defines if the format string has a fractional pattern or not. */ private boolean hasFractionalPattern; ! /** Stores a list of attributes for use by formatToCharacterIterator. */ private ArrayList attributes = new ArrayList(); ! /** * Constructs a DecimalFormat which uses the default * pattern and symbols. *************** public class DecimalFormat extends Numbe *** 187,193 **** { this ("#,##0.###"); } ! /** * Constructs a DecimalFormat which uses the given * pattern and the default symbols for formatting and parsing. --- 187,193 ---- { this ("#,##0.###"); } ! /** * Constructs a DecimalFormat which uses the given * pattern and the default symbols for formatting and parsing. *************** public class DecimalFormat extends Numbe *** 204,210 **** /** * Constructs a DecimalFormat using the given pattern * and formatting symbols. This construction method is used to give ! * complete control over the formatting process. * * @param pattern the non-localized pattern to use. * @param symbols the set of symbols used for parsing and formatting. --- 204,210 ---- /** * Constructs a DecimalFormat using the given pattern * and formatting symbols. This construction method is used to give ! * complete control over the formatting process. * * @param pattern the non-localized pattern to use. * @param symbols the set of symbols used for parsing and formatting. *************** public class DecimalFormat extends Numbe *** 216,225 **** this.symbols = (DecimalFormatSymbols) symbols.clone(); applyPatternWithSymbols(pattern, nonLocalizedSymbols); } ! /** * Apply the given localized patern to the current DecimalFormat object. ! * * @param pattern The localized pattern to apply. * @throws IllegalArgumentException if the given pattern is invalid. * @throws NullPointerException if the input pattern is null. --- 216,225 ---- this.symbols = (DecimalFormatSymbols) symbols.clone(); applyPatternWithSymbols(pattern, nonLocalizedSymbols); } ! /** * Apply the given localized patern to the current DecimalFormat object. ! * * @param pattern The localized pattern to apply. * @throws IllegalArgumentException if the given pattern is invalid. * @throws NullPointerException if the input pattern is null. *************** public class DecimalFormat extends Numbe *** 231,237 **** /** * Apply the given localized pattern to the current DecimalFormat object. ! * * @param pattern The localized pattern to apply. * @throws IllegalArgumentException if the given pattern is invalid. * @throws NullPointerException if the input pattern is null. --- 231,237 ---- /** * Apply the given localized pattern to the current DecimalFormat object. ! * * @param pattern The localized pattern to apply. * @throws IllegalArgumentException if the given pattern is invalid. * @throws NullPointerException if the input pattern is null. *************** public class DecimalFormat extends Numbe *** 256,264 **** *
                  39. obj is an instance of DecimalFormat;
                  40. *
                  41. this instance and obj have the same attributes;
                  42. * ! * * @param obj the object (null permitted). ! * * @return A boolean. */ public boolean equals(Object obj) --- 256,264 ---- *
                  43. obj is an instance of DecimalFormat;
                  44. *
                  45. this instance and obj have the same attributes;
                  46. * ! * * @param obj the object (null permitted). ! * * @return A boolean. */ public boolean equals(Object obj) *************** public class DecimalFormat extends Numbe *** 266,274 **** if (! (obj instanceof DecimalFormat)) return false; DecimalFormat dup = (DecimalFormat) obj; ! return (decimalSeparatorAlwaysShown == dup.decimalSeparatorAlwaysShown && groupingUsed == dup.groupingUsed ! && groupingSeparatorInPattern == dup.groupingSeparatorInPattern && groupingSize == dup.groupingSize && multiplier == dup.multiplier && useExponentialNotation == dup.useExponentialNotation --- 266,274 ---- if (! (obj instanceof DecimalFormat)) return false; DecimalFormat dup = (DecimalFormat) obj; ! return (decimalSeparatorAlwaysShown == dup.decimalSeparatorAlwaysShown && groupingUsed == dup.groupingUsed ! && groupingSeparatorInPattern == dup.groupingSeparatorInPattern && groupingSize == dup.groupingSize && multiplier == dup.multiplier && useExponentialNotation == dup.useExponentialNotation *************** public class DecimalFormat extends Numbe *** 301,313 **** { return toPattern().hashCode(); } ! /** * Produce a formatted {@link String} representation of this object. ! * The passed object must be of type number. ! * * @param obj The {@link Number} to format. ! * @param sbuf The destination String; text will be appended to this String. * @param pos If used on input can be used to define an alignment * field. If used on output defines the offsets of the alignment field. * @return The String representation of this long. --- 301,313 ---- { return toPattern().hashCode(); } ! /** * Produce a formatted {@link String} representation of this object. ! * The passed object must be of type number. ! * * @param obj The {@link Number} to format. ! * @param sbuf The destination String; text will be appended to this String. * @param pos If used on input can be used to define an alignment * field. If used on output defines the offsets of the alignment field. * @return The String representation of this long. *************** public class DecimalFormat extends Numbe *** 325,346 **** formatInternal((BigDecimal) obj, true, sbuf, pos); return sbuf; } ! return super.format(obj, sbuf, pos); } ! /** * Produce a formatted {@link String} representation of this double. ! * * @param number The double to format. ! * @param dest The destination String; text will be appended to this String. * @param fieldPos If used on input can be used to define an alignment * field. If used on output defines the offsets of the alignment field. * @return The String representation of this long. * @throws NullPointerException if dest or fieldPos are null */ public StringBuffer format(double number, StringBuffer dest, ! FieldPosition fieldPos) { // special cases for double: NaN and negative or positive infinity if (Double.isNaN(number)) --- 325,346 ---- formatInternal((BigDecimal) obj, true, sbuf, pos); return sbuf; } ! return super.format(obj, sbuf, pos); } ! /** * Produce a formatted {@link String} representation of this double. ! * * @param number The double to format. ! * @param dest The destination String; text will be appended to this String. * @param fieldPos If used on input can be used to define an alignment * field. If used on output defines the offsets of the alignment field. * @return The String representation of this long. * @throws NullPointerException if dest or fieldPos are null */ public StringBuffer format(double number, StringBuffer dest, ! FieldPosition fieldPos) { // special cases for double: NaN and negative or positive infinity if (Double.isNaN(number)) *************** public class DecimalFormat extends Numbe *** 348,354 **** // 1. NaN String nan = symbols.getNaN(); dest.append(nan); ! // update field position if required if ((fieldPos.getField() == INTEGER_FIELD || fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) --- 348,354 ---- // 1. NaN String nan = symbols.getNaN(); dest.append(nan); ! // update field position if required if ((fieldPos.getField() == INTEGER_FIELD || fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) *************** public class DecimalFormat extends Numbe *** 365,378 **** dest.append(this.negativePrefix); else dest.append(this.positivePrefix); ! dest.append(symbols.getInfinity()); ! if (number < 0) dest.append(this.negativeSuffix); else dest.append(this.positiveSuffix); ! if ((fieldPos.getField() == INTEGER_FIELD || fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) { --- 365,378 ---- dest.append(this.negativePrefix); else dest.append(this.positivePrefix); ! dest.append(symbols.getInfinity()); ! if (number < 0) dest.append(this.negativeSuffix); else dest.append(this.positiveSuffix); ! if ((fieldPos.getField() == INTEGER_FIELD || fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) { *************** public class DecimalFormat extends Numbe *** 386,400 **** BigDecimal bigDecimal = new BigDecimal(String.valueOf(number)); formatInternal(bigDecimal, false, dest, fieldPos); } ! return dest; } /** * Produce a formatted {@link String} representation of this long. ! * * @param number The long to format. ! * @param dest The destination String; text will be appended to this String. * @param fieldPos If used on input can be used to define an alignment * field. If used on output defines the offsets of the alignment field. * @return The String representation of this long. --- 386,400 ---- BigDecimal bigDecimal = new BigDecimal(String.valueOf(number)); formatInternal(bigDecimal, false, dest, fieldPos); } ! return dest; } /** * Produce a formatted {@link String} representation of this long. ! * * @param number The long to format. ! * @param dest The destination String; text will be appended to this String. * @param fieldPos If used on input can be used to define an alignment * field. If used on output defines the offsets of the alignment field. * @return The String representation of this long. *************** public class DecimalFormat extends Numbe *** 406,418 **** formatInternal(bigDecimal, true, dest, fieldPos); return dest; } ! /** * Return an AttributedCharacterIterator as a result of * the formatting of the passed {@link Object}. ! * * @return An {@link AttributedCharacterIterator}. ! * @throws NullPointerException if value is null. * @throws IllegalArgumentException if value is not an instance of * {@link Number}. */ --- 406,418 ---- formatInternal(bigDecimal, true, dest, fieldPos); return dest; } ! /** * Return an AttributedCharacterIterator as a result of * the formatting of the passed {@link Object}. ! * * @return An {@link AttributedCharacterIterator}. ! * @throws NullPointerException if value is null. * @throws IllegalArgumentException if value is not an instance of * {@link Number}. */ *************** public class DecimalFormat extends Numbe *** 422,434 **** * This method implementation derives directly from the * ICU4J (http://icu.sourceforge.net/) library, distributed under MIT/X. */ ! if (value == null) throw new NullPointerException("Passed Object is null"); ! if (!(value instanceof Number)) throw new IllegalArgumentException("Cannot format given Object as a Number"); ! StringBuffer text = new StringBuffer(); attributes.clear(); super.format(value, text, new FieldPosition(0)); --- 422,434 ---- * This method implementation derives directly from the * ICU4J (http://icu.sourceforge.net/) library, distributed under MIT/X. */ ! if (value == null) throw new NullPointerException("Passed Object is null"); ! if (!(value instanceof Number)) throw new IllegalArgumentException("Cannot format given Object as a Number"); ! StringBuffer text = new StringBuffer(); attributes.clear(); super.format(value, text, new FieldPosition(0)); *************** public class DecimalFormat extends Numbe *** 440,454 **** { FieldPosition pos = (FieldPosition) attributes.get(i); Format.Field attribute = pos.getFieldAttribute(); ! as.addAttribute(attribute, attribute, pos.getBeginIndex(), pos.getEndIndex()); } ! // return the CharacterIterator from AttributedString return as.getIterator(); } ! /** * Returns the currency corresponding to the currency symbol stored * in the instance of DecimalFormatSymbols used by this --- 440,454 ---- { FieldPosition pos = (FieldPosition) attributes.get(i); Format.Field attribute = pos.getFieldAttribute(); ! as.addAttribute(attribute, attribute, pos.getBeginIndex(), pos.getEndIndex()); } ! // return the CharacterIterator from AttributedString return as.getIterator(); } ! /** * Returns the currency corresponding to the currency symbol stored * in the instance of DecimalFormatSymbols used by this *************** public class DecimalFormat extends Numbe *** 461,485 **** { return symbols.getCurrency(); } ! /** * Returns a copy of the symbols used by this instance. ! * * @return A copy of the symbols. */ public DecimalFormatSymbols getDecimalFormatSymbols() { return (DecimalFormatSymbols) symbols.clone(); } ! /** * Gets the interval used between a grouping separator and the next. * For example, a grouping size of 3 means that the number 1234 is * formatted as 1,234. ! * * The actual character used as grouping separator depends on the * locale and is defined by {@link DecimalFormatSymbols#getDecimalSeparator()} ! * * @return The interval used between a grouping separator and the next. */ public int getGroupingSize() --- 461,485 ---- { return symbols.getCurrency(); } ! /** * Returns a copy of the symbols used by this instance. ! * * @return A copy of the symbols. */ public DecimalFormatSymbols getDecimalFormatSymbols() { return (DecimalFormatSymbols) symbols.clone(); } ! /** * Gets the interval used between a grouping separator and the next. * For example, a grouping size of 3 means that the number 1234 is * formatted as 1,234. ! * * The actual character used as grouping separator depends on the * locale and is defined by {@link DecimalFormatSymbols#getDecimalSeparator()} ! * * @return The interval used between a grouping separator and the next. */ public int getGroupingSize() *************** public class DecimalFormat extends Numbe *** 489,505 **** /** * Gets the multiplier used in percent and similar formats. ! * * @return The multiplier used in percent and similar formats. */ public int getMultiplier() { return multiplier; } ! /** * Gets the negative prefix. ! * * @return The negative prefix. */ public String getNegativePrefix() --- 489,505 ---- /** * Gets the multiplier used in percent and similar formats. ! * * @return The multiplier used in percent and similar formats. */ public int getMultiplier() { return multiplier; } ! /** * Gets the negative prefix. ! * * @return The negative prefix. */ public String getNegativePrefix() *************** public class DecimalFormat extends Numbe *** 509,564 **** /** * Gets the negative suffix. ! * * @return The negative suffix. */ public String getNegativeSuffix() { return negativeSuffix; } ! /** * Gets the positive prefix. ! * * @return The positive prefix. */ public String getPositivePrefix() { return positivePrefix; } ! /** * Gets the positive suffix. ! * * @return The positive suffix. */ public String getPositiveSuffix() { return positiveSuffix; } ! public boolean isDecimalSeparatorAlwaysShown() { return decimalSeparatorAlwaysShown; } ! /** * Define if parse(java.lang.String, java.text.ParsePosition) ! * should return a {@link BigDecimal} or not. ! * * @param newValue */ public void setParseBigDecimal(boolean newValue) { this.parseBigDecimal = newValue; } ! /** * Returns true if * parse(java.lang.String, java.text.ParsePosition) returns * a BigDecimal, false otherwise. * The default return value for this method is false. ! * * @return true if the parse method returns a {@link BigDecimal}, * false otherwise. * @since 1.5 --- 509,564 ---- /** * Gets the negative suffix. ! * * @return The negative suffix. */ public String getNegativeSuffix() { return negativeSuffix; } ! /** * Gets the positive prefix. ! * * @return The positive prefix. */ public String getPositivePrefix() { return positivePrefix; } ! /** * Gets the positive suffix. ! * * @return The positive suffix. */ public String getPositiveSuffix() { return positiveSuffix; } ! public boolean isDecimalSeparatorAlwaysShown() { return decimalSeparatorAlwaysShown; } ! /** * Define if parse(java.lang.String, java.text.ParsePosition) ! * should return a {@link BigDecimal} or not. ! * * @param newValue */ public void setParseBigDecimal(boolean newValue) { this.parseBigDecimal = newValue; } ! /** * Returns true if * parse(java.lang.String, java.text.ParsePosition) returns * a BigDecimal, false otherwise. * The default return value for this method is false. ! * * @return true if the parse method returns a {@link BigDecimal}, * false otherwise. * @since 1.5 *************** public class DecimalFormat extends Numbe *** 568,582 **** { return this.parseBigDecimal; } ! /** * This method parses the specified string into a Number. ! * * The parsing starts at pos, which is updated as the parser * consume characters in the passed string. * On error, the Position object index is not updated, while * error position is set appropriately, an null is returned. ! * * @param str The string to parse. * @param pos The desired ParsePosition. * --- 568,582 ---- { return this.parseBigDecimal; } ! /** * This method parses the specified string into a Number. ! * * The parsing starts at pos, which is updated as the parser * consume characters in the passed string. * On error, the Position object index is not updated, while * error position is set appropriately, an null is returned. ! * * @param str The string to parse. * @param pos The desired ParsePosition. * *************** public class DecimalFormat extends Numbe *** 588,617 **** // NaN if (str.contains(this.symbols.getNaN())) return Double.valueOf(Double.NaN); ! // this will be our final number CPStringBuilder number = new CPStringBuilder(); ! // special character char minus = symbols.getMinusSign(); ! // starting parsing position int start = pos.getIndex(); ! ! // validate the string, it have to be in the // same form as the format string or parsing will fail String _negativePrefix = (this.negativePrefix.compareTo("") == 0 ? minus + positivePrefix : this.negativePrefix); ! // we check both prefixes, because one might be empty. // We want to pick the longest prefix that matches. int positiveLen = positivePrefix.length(); int negativeLen = _negativePrefix.length(); ! boolean isNegative = str.startsWith(_negativePrefix); boolean isPositive = str.startsWith(positivePrefix); ! if (isPositive && isNegative) { // By checking this way, we preserve ambiguity in the case --- 588,617 ---- // NaN if (str.contains(this.symbols.getNaN())) return Double.valueOf(Double.NaN); ! // this will be our final number CPStringBuilder number = new CPStringBuilder(); ! // special character char minus = symbols.getMinusSign(); ! // starting parsing position int start = pos.getIndex(); ! ! // validate the string, it have to be in the // same form as the format string or parsing will fail String _negativePrefix = (this.negativePrefix.compareTo("") == 0 ? minus + positivePrefix : this.negativePrefix); ! // we check both prefixes, because one might be empty. // We want to pick the longest prefix that matches. int positiveLen = positivePrefix.length(); int negativeLen = _negativePrefix.length(); ! boolean isNegative = str.startsWith(_negativePrefix); boolean isPositive = str.startsWith(positivePrefix); ! if (isPositive && isNegative) { // By checking this way, we preserve ambiguity in the case *************** public class DecimalFormat extends Numbe *** 644,674 **** pos.setErrorIndex(start); return null; } ! // other special characters used by the parser char decimalSeparator = symbols.getDecimalSeparator(); char zero = symbols.getZeroDigit(); ! char exponent = symbols.getExponential(); ! // stop parsing position in the string int stop = start + this.maximumIntegerDigits + maximumFractionDigits + 2; ! if (useExponentialNotation) stop += minExponentDigits + 1; ! boolean inExponent = false; // correct the size of the end parsing flag int len = str.length(); if (len < stop) stop = len; char groupingSeparator = symbols.getGroupingSeparator(); ! int i = start; while (i < stop) { char ch = str.charAt(i); i++; ! if (ch >= zero && ch <= (zero + 9)) { number.append(ch); --- 644,674 ---- pos.setErrorIndex(start); return null; } ! // other special characters used by the parser char decimalSeparator = symbols.getDecimalSeparator(); char zero = symbols.getZeroDigit(); ! char exponent = symbols.getExponential(); ! // stop parsing position in the string int stop = start + this.maximumIntegerDigits + maximumFractionDigits + 2; ! if (useExponentialNotation) stop += minExponentDigits + 1; ! boolean inExponent = false; // correct the size of the end parsing flag int len = str.length(); if (len < stop) stop = len; char groupingSeparator = symbols.getGroupingSeparator(); ! int i = start; while (i < stop) { char ch = str.charAt(i); i++; ! if (ch >= zero && ch <= (zero + 9)) { number.append(ch); *************** public class DecimalFormat extends Numbe *** 692,734 **** if (inExponent) number.append(ch); else ! { ! i--; ! break; ! } } - else - { - if (!groupingUsed || ch != groupingSeparator) - { - i--; - break; - } - } } // 2nd special case: infinity // XXX: need to be tested if (str.contains(symbols.getInfinity())) { ! int inf = str.indexOf(symbols.getInfinity()); pos.setIndex(inf); ! // FIXME: ouch, this is really ugly and lazy code... if (this.parseBigDecimal) { if (isNegative) return BigDecimal.valueOf(Double.NEGATIVE_INFINITY); ! return BigDecimal.valueOf(Double.POSITIVE_INFINITY); } ! if (isNegative) return Double.valueOf(Double.NEGATIVE_INFINITY); return Double.valueOf(Double.POSITIVE_INFINITY); } ! // no number... if (i == start || number.length() == 0) { --- 692,734 ---- if (inExponent) number.append(ch); else ! { ! i--; ! break; ! } ! } ! else ! { ! if (!groupingUsed || ch != groupingSeparator) ! { ! i--; ! break; ! } } } // 2nd special case: infinity // XXX: need to be tested if (str.contains(symbols.getInfinity())) { ! int inf = str.indexOf(symbols.getInfinity()); pos.setIndex(inf); ! // FIXME: ouch, this is really ugly and lazy code... if (this.parseBigDecimal) { if (isNegative) return BigDecimal.valueOf(Double.NEGATIVE_INFINITY); ! return BigDecimal.valueOf(Double.POSITIVE_INFINITY); } ! if (isNegative) return Double.valueOf(Double.NEGATIVE_INFINITY); return Double.valueOf(Double.POSITIVE_INFINITY); } ! // no number... if (i == start || number.length() == 0) { *************** public class DecimalFormat extends Numbe *** 744,750 **** positiveLen = positiveSuffix.length(); negativeLen = negativeSuffix.length(); ! if (isNegative && !hasNegativeSuffix) { pos.setErrorIndex(i); --- 744,750 ---- positiveLen = positiveSuffix.length(); negativeLen = negativeSuffix.length(); ! if (isNegative && !hasNegativeSuffix) { pos.setErrorIndex(i); *************** public class DecimalFormat extends Numbe *** 761,776 **** pos.setErrorIndex(i); return null; } ! if (isNegative) number.insert(0, '-'); ! pos.setIndex(i); ! // now we handle the return type BigDecimal bigDecimal = new BigDecimal(number.toString()); if (this.parseBigDecimal) return bigDecimal; ! // want integer? if (this.parseIntegerOnly) return Long.valueOf(bigDecimal.longValue()); --- 761,776 ---- pos.setErrorIndex(i); return null; } ! if (isNegative) number.insert(0, '-'); ! pos.setIndex(i); ! // now we handle the return type BigDecimal bigDecimal = new BigDecimal(number.toString()); if (this.parseBigDecimal) return bigDecimal; ! // want integer? if (this.parseIntegerOnly) return Long.valueOf(bigDecimal.longValue()); *************** public class DecimalFormat extends Numbe *** 778,784 **** // 3th special case -0.0 if (isNegative && (bigDecimal.compareTo(BigDecimal.ZERO) == 0)) return Double.valueOf(-0.0); ! try { BigDecimal integer --- 778,784 ---- // 3th special case -0.0 if (isNegative && (bigDecimal.compareTo(BigDecimal.ZERO) == 0)) return Double.valueOf(-0.0); ! try { BigDecimal integer *************** public class DecimalFormat extends Numbe *** 795,801 **** * Sets the Currency on the * DecimalFormatSymbols used, which also sets the * currency symbols on those symbols. ! * * @param currency The new Currency on the * DecimalFormatSymbols. */ --- 795,801 ---- * Sets the Currency on the * DecimalFormatSymbols used, which also sets the * currency symbols on those symbols. ! * * @param currency The new Currency on the * DecimalFormatSymbols. */ *************** public class DecimalFormat extends Numbe *** 804,849 **** Currency current = symbols.getCurrency(); if (current != currency) { ! String oldSymbol = symbols.getCurrencySymbol(); ! int len = oldSymbol.length(); ! symbols.setCurrency(currency); ! String newSymbol = symbols.getCurrencySymbol(); ! int posPre = positivePrefix.indexOf(oldSymbol); ! if (posPre != -1) ! positivePrefix = positivePrefix.substring(0, posPre) + ! newSymbol + positivePrefix.substring(posPre+len); ! int negPre = negativePrefix.indexOf(oldSymbol); ! if (negPre != -1) ! negativePrefix = negativePrefix.substring(0, negPre) + ! newSymbol + negativePrefix.substring(negPre+len); ! int posSuf = positiveSuffix.indexOf(oldSymbol); ! if (posSuf != -1) ! positiveSuffix = positiveSuffix.substring(0, posSuf) + ! newSymbol + positiveSuffix.substring(posSuf+len); ! int negSuf = negativeSuffix.indexOf(oldSymbol); ! if (negSuf != -1) ! negativeSuffix = negativeSuffix.substring(0, negSuf) + ! newSymbol + negativeSuffix.substring(negSuf+len); } } ! /** ! * Sets the symbols used by this instance. This method makes a copy of * the supplied symbols. ! * * @param newSymbols the symbols (null not permitted). */ public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols) { symbols = (DecimalFormatSymbols) newSymbols.clone(); } ! /** * Define if the decimal separator should be always visible or only * visible when needed. This method as effect only on integer values. * Pass true if you want the decimal separator to be * always shown, false otherwise. ! * * @param newValue true if you want the decimal separator to be * always shown, false otherwise. */ --- 804,849 ---- Currency current = symbols.getCurrency(); if (current != currency) { ! String oldSymbol = symbols.getCurrencySymbol(); ! int len = oldSymbol.length(); ! symbols.setCurrency(currency); ! String newSymbol = symbols.getCurrencySymbol(); ! int posPre = positivePrefix.indexOf(oldSymbol); ! if (posPre != -1) ! positivePrefix = positivePrefix.substring(0, posPre) + ! newSymbol + positivePrefix.substring(posPre+len); ! int negPre = negativePrefix.indexOf(oldSymbol); ! if (negPre != -1) ! negativePrefix = negativePrefix.substring(0, negPre) + ! newSymbol + negativePrefix.substring(negPre+len); ! int posSuf = positiveSuffix.indexOf(oldSymbol); ! if (posSuf != -1) ! positiveSuffix = positiveSuffix.substring(0, posSuf) + ! newSymbol + positiveSuffix.substring(posSuf+len); ! int negSuf = negativeSuffix.indexOf(oldSymbol); ! if (negSuf != -1) ! negativeSuffix = negativeSuffix.substring(0, negSuf) + ! newSymbol + negativeSuffix.substring(negSuf+len); } } ! /** ! * Sets the symbols used by this instance. This method makes a copy of * the supplied symbols. ! * * @param newSymbols the symbols (null not permitted). */ public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols) { symbols = (DecimalFormatSymbols) newSymbols.clone(); } ! /** * Define if the decimal separator should be always visible or only * visible when needed. This method as effect only on integer values. * Pass true if you want the decimal separator to be * always shown, false otherwise. ! * * @param newValue true
                    if you want the decimal separator to be * always shown, false otherwise. */ *************** public class DecimalFormat extends Numbe *** 851,862 **** { decimalSeparatorAlwaysShown = newValue; } ! /** * Sets the number of digits used to group portions of the integer part of * the number. For example, the number 123456, with a grouping * size of 3, is rendered 123,456. ! * * @param groupSize The number of digits used while grouping portions * of the integer part of a number. */ --- 851,862 ---- { decimalSeparatorAlwaysShown = newValue; } ! /** * Sets the number of digits used to group portions of the integer part of * the number. For example, the number 123456, with a grouping * size of 3, is rendered 123,456. ! * * @param groupSize The number of digits used while grouping portions * of the integer part of a number. */ *************** public class DecimalFormat extends Numbe *** 864,877 **** { groupingSize = (byte) groupSize; } ! /** * Sets the maximum number of digits allowed in the integer * portion of a number to the specified value. * The new value will be the choosen as the minimum between * newvalue and 309. Any value below zero will be * replaced by zero. ! * * @param newValue The new maximum integer digits value. */ public void setMaximumIntegerDigits(int newValue) --- 864,877 ---- { groupingSize = (byte) groupSize; } ! /** * Sets the maximum number of digits allowed in the integer * portion of a number to the specified value. * The new value will be the choosen as the minimum between * newvalue and 309. Any value below zero will be * replaced by zero. ! * * @param newValue The new maximum integer digits value. */ public void setMaximumIntegerDigits(int newValue) *************** public class DecimalFormat extends Numbe *** 879,892 **** newValue = (newValue > 0) ? newValue : 0; super.setMaximumIntegerDigits(Math.min(newValue, DEFAULT_INTEGER_DIGITS)); } ! /** * Sets the minimum number of digits allowed in the integer * portion of a number to the specified value. * The new value will be the choosen as the minimum between * newvalue and 309. Any value below zero will be * replaced by zero. ! * * @param newValue The new minimum integer digits value. */ public void setMinimumIntegerDigits(int newValue) --- 879,892 ---- newValue = (newValue > 0) ? newValue : 0; super.setMaximumIntegerDigits(Math.min(newValue, DEFAULT_INTEGER_DIGITS)); } ! /** * Sets the minimum number of digits allowed in the integer * portion of a number to the specified value. * The new value will be the choosen as the minimum between * newvalue and 309. Any value below zero will be * replaced by zero. ! * * @param newValue The new minimum integer digits value. */ public void setMinimumIntegerDigits(int newValue) *************** public class DecimalFormat extends Numbe *** 894,907 **** newValue = (newValue > 0) ? newValue : 0; super.setMinimumIntegerDigits(Math.min(newValue, DEFAULT_INTEGER_DIGITS)); } ! /** * Sets the maximum number of digits allowed in the fraction * portion of a number to the specified value. * The new value will be the choosen as the minimum between * newvalue and 309. Any value below zero will be * replaced by zero. ! * * @param newValue The new maximum fraction digits value. */ public void setMaximumFractionDigits(int newValue) --- 894,907 ---- newValue = (newValue > 0) ? newValue : 0; super.setMinimumIntegerDigits(Math.min(newValue, DEFAULT_INTEGER_DIGITS)); } ! /** * Sets the maximum number of digits allowed in the fraction * portion of a number to the specified value. * The new value will be the choosen as the minimum between * newvalue and 309. Any value below zero will be * replaced by zero. ! * * @param newValue The new maximum fraction digits value. */ public void setMaximumFractionDigits(int newValue) *************** public class DecimalFormat extends Numbe *** 909,922 **** newValue = (newValue > 0) ? newValue : 0; super.setMaximumFractionDigits(Math.min(newValue, DEFAULT_FRACTION_DIGITS)); } ! /** * Sets the minimum number of digits allowed in the fraction * portion of a number to the specified value. * The new value will be the choosen as the minimum between * newvalue and 309. Any value below zero will be * replaced by zero. ! * * @param newValue The new minimum fraction digits value. */ public void setMinimumFractionDigits(int newValue) --- 909,922 ---- newValue = (newValue > 0) ? newValue : 0; super.setMaximumFractionDigits(Math.min(newValue, DEFAULT_FRACTION_DIGITS)); } ! /** * Sets the minimum number of digits allowed in the fraction * portion of a number to the specified value. * The new value will be the choosen as the minimum between * newvalue and 309. Any value below zero will be * replaced by zero. ! * * @param newValue The new minimum fraction digits value. */ public void setMinimumFractionDigits(int newValue) *************** public class DecimalFormat extends Numbe *** 924,945 **** newValue = (newValue > 0) ? newValue : 0; super.setMinimumFractionDigits(Math.min(newValue, DEFAULT_FRACTION_DIGITS)); } ! /** * Sets the multiplier for use in percent and similar formats. * For example, for percent set the multiplier to 100, for permille, set the * miltiplier to 1000. ! * * @param newValue the new value for multiplier. */ public void setMultiplier(int newValue) { multiplier = newValue; } ! /** * Sets the negative prefix. ! * * @param newValue The new negative prefix. */ public void setNegativePrefix(String newValue) --- 924,945 ---- newValue = (newValue > 0) ? newValue : 0; super.setMinimumFractionDigits(Math.min(newValue, DEFAULT_FRACTION_DIGITS)); } ! /** * Sets the multiplier for use in percent and similar formats. * For example, for percent set the multiplier to 100, for permille, set the * miltiplier to 1000. ! * * @param newValue the new value for multiplier. */ public void setMultiplier(int newValue) { multiplier = newValue; } ! /** * Sets the negative prefix. ! * * @param newValue The new negative prefix. */ public void setNegativePrefix(String newValue) *************** public class DecimalFormat extends Numbe *** 949,986 **** /** * Sets the negative suffix. ! * * @param newValue The new negative suffix. */ public void setNegativeSuffix(String newValue) { negativeSuffix = newValue; } ! /** * Sets the positive prefix. ! * * @param newValue The new positive prefix. */ public void setPositivePrefix(String newValue) { positivePrefix = newValue; } ! /** * Sets the new positive suffix. ! * * @param newValue The new positive suffix. */ public void setPositiveSuffix(String newValue) { positiveSuffix = newValue; } ! /** * This method returns a string with the formatting pattern being used * by this object. The string is localized. ! * * @return A localized String with the formatting pattern. * @see #toPattern() */ --- 949,986 ---- /** * Sets the negative suffix. ! * * @param newValue The new negative suffix. */ public void setNegativeSuffix(String newValue) { negativeSuffix = newValue; } ! /** * Sets the positive prefix. ! * * @param newValue The new positive prefix. */ public void setPositivePrefix(String newValue) { positivePrefix = newValue; } ! /** * Sets the new positive suffix. ! * * @param newValue The new positive suffix. */ public void setPositiveSuffix(String newValue) { positiveSuffix = newValue; } ! /** * This method returns a string with the formatting pattern being used * by this object. The string is localized. ! * * @return A localized String with the formatting pattern. * @see #toPattern() */ *************** public class DecimalFormat extends Numbe *** 988,998 **** { return computePattern(this.symbols); } ! /** * This method returns a string with the formatting pattern being used * by this object. The string is not localized. ! * * @return A String with the formatting pattern. * @see #toLocalizedPattern() */ --- 988,998 ---- { return computePattern(this.symbols); } ! /** * This method returns a string with the formatting pattern being used * by this object. The string is not localized. ! * * @return A String with the formatting pattern. * @see #toLocalizedPattern() */ *************** public class DecimalFormat extends Numbe *** 1000,1012 **** { return computePattern(nonLocalizedSymbols); } ! /* ***** private methods ***** */ ! /** * This is an shortcut helper method used to test if two given strings are * equals. ! * * @param s1 The first string to test for equality. * @param s2 The second string to test for equality. * @return true if the strings are both null or --- 1000,1012 ---- { return computePattern(nonLocalizedSymbols); } ! /* ***** private methods ***** */ ! /** * This is an shortcut helper method used to test if two given strings are * equals. ! * * @param s1 The first string to test for equality. * @param s2 The second string to test for equality. * @return true if the strings are both null or *************** public class DecimalFormat extends Numbe *** 1018,1027 **** return s1 == s2; return s1.equals(s2); } ! ! /* ****** PATTERN ****** */ ! /** * This helper function creates a string consisting of all the * characters which can appear in a pattern and must be quoted. --- 1018,1027 ---- return s1 == s2; return s1.equals(s2); } ! ! /* ****** PATTERN ****** */ ! /** * This helper function creates a string consisting of all the * characters which can appear in a pattern and must be quoted. *************** public class DecimalFormat extends Numbe *** 1029,1035 **** private String patternChars (DecimalFormatSymbols syms) { CPStringBuilder buf = new CPStringBuilder (); ! buf.append(syms.getDecimalSeparator()); buf.append(syms.getDigit()); buf.append(syms.getExponential()); --- 1029,1035 ---- private String patternChars (DecimalFormatSymbols syms) { CPStringBuilder buf = new CPStringBuilder (); ! buf.append(syms.getDecimalSeparator()); buf.append(syms.getDigit()); buf.append(syms.getExponential()); *************** public class DecimalFormat extends Numbe *** 1041,1054 **** buf.append(syms.getZeroDigit()); buf.append('\''); buf.append('\u00a4'); ! return buf.toString(); } /** * Quote special characters as defined by patChars in the * input string. ! * * @param text * @param patChars * @return A StringBuffer with special characters quoted. --- 1041,1054 ---- buf.append(syms.getZeroDigit()); buf.append('\''); buf.append('\u00a4'); ! return buf.toString(); } /** * Quote special characters as defined by patChars in the * input string. ! * * @param text * @param patChars * @return A StringBuffer with special characters quoted. *************** public class DecimalFormat extends Numbe *** 1056,1062 **** private CPStringBuilder quoteFix(String text, String patChars) { CPStringBuilder buf = new CPStringBuilder(); ! int len = text.length(); char ch; for (int index = 0; index < len; ++index) --- 1056,1062 ---- private CPStringBuilder quoteFix(String text, String patChars) { CPStringBuilder buf = new CPStringBuilder(); ! int len = text.length(); char ch; for (int index = 0; index < len; ++index) *************** public class DecimalFormat extends Numbe *** 1073,1082 **** buf.append(ch); } } ! return buf; } ! /** * Returns the format pattern, localized to follow the given * symbols. --- 1073,1082 ---- buf.append(ch); } } ! return buf; } ! /** * Returns the format pattern, localized to follow the given * symbols. *************** public class DecimalFormat extends Numbe *** 1084,1106 **** private String computePattern(DecimalFormatSymbols symbols) { StringBuilder mainPattern = new StringBuilder(); ! // We have to at least emit a zero for the minimum number of // digits. Past that we need hash marks up to the grouping // separator (and one beyond). int _groupingSize = groupingUsed ? groupingSize + 1: groupingSize; int totalDigits = Math.max(minimumIntegerDigits, _groupingSize); ! // if it is not in exponential notiation, // we always have a # prebended if (!useExponentialNotation) mainPattern.append(symbols.getDigit()); ! for (int i = 1; i < totalDigits - minimumIntegerDigits; i++) mainPattern.append(symbols.getDigit()); ! for (int i = totalDigits - minimumIntegerDigits; i < totalDigits; i++) mainPattern.append(symbols.getZeroDigit()); ! if (groupingUsed) { mainPattern.insert(mainPattern.length() - groupingSize, --- 1084,1106 ---- private String computePattern(DecimalFormatSymbols symbols) { StringBuilder mainPattern = new StringBuilder(); ! // We have to at least emit a zero for the minimum number of // digits. Past that we need hash marks up to the grouping // separator (and one beyond). int _groupingSize = groupingUsed ? groupingSize + 1: groupingSize; int totalDigits = Math.max(minimumIntegerDigits, _groupingSize); ! // if it is not in exponential notiation, // we always have a # prebended if (!useExponentialNotation) mainPattern.append(symbols.getDigit()); ! for (int i = 1; i < totalDigits - minimumIntegerDigits; i++) mainPattern.append(symbols.getDigit()); ! for (int i = totalDigits - minimumIntegerDigits; i < totalDigits; i++) mainPattern.append(symbols.getZeroDigit()); ! if (groupingUsed) { mainPattern.insert(mainPattern.length() - groupingSize, *************** public class DecimalFormat extends Numbe *** 1113,1145 **** { mainPattern.append(symbols.getDecimalSeparator()); } ! for (int i = 0; i < minimumFractionDigits; ++i) mainPattern.append(symbols.getZeroDigit()); ! for (int i = minimumFractionDigits; i < maximumFractionDigits; ++i) mainPattern.append(symbols.getDigit()); ! if (useExponentialNotation) { mainPattern.append(symbols.getExponential()); ! for (int i = 0; i < minExponentDigits; ++i) mainPattern.append(symbols.getZeroDigit()); ! if (minExponentDigits == 0) mainPattern.append(symbols.getDigit()); } ! // save the pattern String pattern = mainPattern.toString(); ! // so far we have the pattern itself, now we need to add // the positive and the optional negative prefixes and suffixes String patternChars = patternChars(symbols); mainPattern.insert(0, quoteFix(positivePrefix, patternChars)); mainPattern.append(quoteFix(positiveSuffix, patternChars)); ! if (hasNegativePrefix) { mainPattern.append(symbols.getPatternSeparator()); --- 1113,1145 ---- { mainPattern.append(symbols.getDecimalSeparator()); } ! for (int i = 0; i < minimumFractionDigits; ++i) mainPattern.append(symbols.getZeroDigit()); ! for (int i = minimumFractionDigits; i < maximumFractionDigits; ++i) mainPattern.append(symbols.getDigit()); ! if (useExponentialNotation) { mainPattern.append(symbols.getExponential()); ! for (int i = 0; i < minExponentDigits; ++i) mainPattern.append(symbols.getZeroDigit()); ! if (minExponentDigits == 0) mainPattern.append(symbols.getDigit()); } ! // save the pattern String pattern = mainPattern.toString(); ! // so far we have the pattern itself, now we need to add // the positive and the optional negative prefixes and suffixes String patternChars = patternChars(symbols); mainPattern.insert(0, quoteFix(positivePrefix, patternChars)); mainPattern.append(quoteFix(positiveSuffix, patternChars)); ! if (hasNegativePrefix) { mainPattern.append(symbols.getPatternSeparator()); *************** public class DecimalFormat extends Numbe *** 1147,1163 **** mainPattern.append(pattern); mainPattern.append(quoteFix(negativeSuffix, patternChars)); } ! // finally, return the pattern string return mainPattern.toString(); } ! /* ****** FORMAT PARSING ****** */ ! /** * Scan the input string and define a pattern suitable for use * with this decimal format. ! * * @param pattern * @param symbols */ --- 1147,1163 ---- mainPattern.append(pattern); mainPattern.append(quoteFix(negativeSuffix, patternChars)); } ! // finally, return the pattern string return mainPattern.toString(); } ! /* ****** FORMAT PARSING ****** */ ! /** * Scan the input string and define a pattern suitable for use * with this decimal format. ! * * @param pattern * @param symbols */ *************** public class DecimalFormat extends Numbe *** 1175,1185 **** // the parameters we need for formatting (which is basicly what // a descendent recursive parser would do - but without recursion). // I'm sure that there are smarter methods to do this. ! // Restore default values. Most of these will be overwritten // but we want to be sure that nothing is left out. setDefaultValues(); ! int len = pattern.length(); if (len == 0) { --- 1175,1185 ---- // the parameters we need for formatting (which is basicly what // a descendent recursive parser would do - but without recursion). // I'm sure that there are smarter methods to do this. ! // Restore default values. Most of these will be overwritten // but we want to be sure that nothing is left out. setDefaultValues(); ! int len = pattern.length(); if (len == 0) { *************** public class DecimalFormat extends Numbe *** 1188,1203 **** this.maximumIntegerDigits = DEFAULT_INTEGER_DIGITS; this.minimumFractionDigits = 0; this.maximumFractionDigits = DEFAULT_FRACTION_DIGITS; ! // FIXME: ...and these values may not be valid in all locales this.minExponentDigits = 0; this.showDecimalSeparator = true; this.groupingUsed = true; this.groupingSize = 3; ! return; } ! int start = scanFix(pattern, symbols, 0, true); if (start < len) start = scanNumberInteger(pattern, symbols, start); if (start < len) --- 1188,1203 ---- this.maximumIntegerDigits = DEFAULT_INTEGER_DIGITS; this.minimumFractionDigits = 0; this.maximumFractionDigits = DEFAULT_FRACTION_DIGITS; ! // FIXME: ...and these values may not be valid in all locales this.minExponentDigits = 0; this.showDecimalSeparator = true; this.groupingUsed = true; this.groupingSize = 3; ! return; } ! int start = scanFix(pattern, symbols, 0, true); if (start < len) start = scanNumberInteger(pattern, symbols, start); if (start < len) *************** public class DecimalFormat extends Numbe *** 1213,1228 **** //this.decimalSeparatorAlwaysShown = false; //this.showDecimalSeparator = false; } ! // XXX: this fixes a compatibility test with the RI. // If new uses cases fail, try removing this line first. //if (!this.hasIntegerPattern && !this.hasFractionalPattern) // throw new IllegalArgumentException("No valid pattern found!"); ! if (start < len) start = scanExponent(pattern, symbols, start); if (start < len) start = scanFix(pattern, symbols, start, false); if (start < len) scanNegativePattern(pattern, symbols, start); ! if (useExponentialNotation && (maxIntegerDigitsExponent > minimumIntegerDigits) && (maxIntegerDigitsExponent > 1)) --- 1213,1228 ---- //this.decimalSeparatorAlwaysShown = false; //this.showDecimalSeparator = false; } ! // XXX: this fixes a compatibility test with the RI. // If new uses cases fail, try removing this line first. //if (!this.hasIntegerPattern && !this.hasFractionalPattern) // throw new IllegalArgumentException("No valid pattern found!"); ! if (start < len) start = scanExponent(pattern, symbols, start); if (start < len) start = scanFix(pattern, symbols, start, false); if (start < len) scanNegativePattern(pattern, symbols, start); ! if (useExponentialNotation && (maxIntegerDigitsExponent > minimumIntegerDigits) && (maxIntegerDigitsExponent > 1)) *************** public class DecimalFormat extends Numbe *** 1230,1249 **** minimumIntegerDigits = 1; exponentRound = maxIntegerDigitsExponent; } ! if (useExponentialNotation) maximumIntegerDigits = maxIntegerDigitsExponent; ! if (!this.hasFractionalPattern && this.showDecimalSeparator == true) { this.decimalSeparatorAlwaysShown = true; } } ! /** * Scans for the prefix or suffix portion of the pattern string. * This method handles the positive subpattern of the pattern string. ! * * @param pattern The pattern string to parse. * @return The position in the pattern string where parsing ended. */ --- 1230,1249 ---- minimumIntegerDigits = 1; exponentRound = maxIntegerDigitsExponent; } ! if (useExponentialNotation) maximumIntegerDigits = maxIntegerDigitsExponent; ! if (!this.hasFractionalPattern && this.showDecimalSeparator == true) { this.decimalSeparatorAlwaysShown = true; } } ! /** * Scans for the prefix or suffix portion of the pattern string. * This method handles the positive subpattern of the pattern string. ! * * @param pattern The pattern string to parse. * @return The position in the pattern string where parsing ended. */ *************** public class DecimalFormat extends Numbe *** 1251,1257 **** int start, boolean prefix) { CPStringBuilder buffer = new CPStringBuilder(); ! // the number portion is always delimited by one of those // characters char decimalSeparator = sourceSymbols.getDecimalSeparator(); --- 1251,1257 ---- int start, boolean prefix) { CPStringBuilder buffer = new CPStringBuilder(); ! // the number portion is always delimited by one of those // characters char decimalSeparator = sourceSymbols.getDecimalSeparator(); *************** public class DecimalFormat extends Numbe *** 1260,1274 **** char digit = sourceSymbols.getDigit(); char zero = sourceSymbols.getZeroDigit(); char minus = sourceSymbols.getMinusSign(); ! // other special characters, cached here to avoid method calls later char percent = sourceSymbols.getPercent(); char permille = sourceSymbols.getPerMill(); ! String currencySymbol = this.symbols.getCurrencySymbol(); ! boolean quote = false; ! char ch = pattern.charAt(start); if (ch == patternSeparator) { --- 1260,1274 ---- char digit = sourceSymbols.getDigit(); char zero = sourceSymbols.getZeroDigit(); char minus = sourceSymbols.getMinusSign(); ! // other special characters, cached here to avoid method calls later char percent = sourceSymbols.getPercent(); char permille = sourceSymbols.getPerMill(); ! String currencySymbol = this.symbols.getCurrencySymbol(); ! boolean quote = false; ! char ch = pattern.charAt(start); if (ch == patternSeparator) { *************** public class DecimalFormat extends Numbe *** 1277,1283 **** ++start; return start; } ! int len = pattern.length(); int i; for (i = start; i < len; i++) --- 1277,1283 ---- ++start; return start; } ! int len = pattern.length(); int i; for (i = start; i < len; i++) *************** public class DecimalFormat extends Numbe *** 1292,1303 **** throw new IllegalArgumentException("Invalid pattern found: " + start); } ! this.hasNegativePrefix = true; ++i; break; } ! // this means we are inside the number portion if (!quote && (ch == minus || ch == digit || ch == zero || --- 1292,1303 ---- throw new IllegalArgumentException("Invalid pattern found: " + start); } ! this.hasNegativePrefix = true; ++i; break; } ! // this means we are inside the number portion if (!quote && (ch == minus || ch == digit || ch == zero || *************** public class DecimalFormat extends Numbe *** 1314,1320 **** buffer.append(ch); continue; } ! if (ch == '\u00A4') { // CURRENCY --- 1314,1320 ---- buffer.append(ch); continue; } ! if (ch == '\u00A4') { // CURRENCY *************** public class DecimalFormat extends Numbe *** 1347,1353 **** // QUOTE if ((i + 1) < len && pattern.charAt(i + 1) == '\'') { ! // we need to add ' to the buffer buffer.append(ch); i++; } --- 1347,1353 ---- // QUOTE if ((i + 1) < len && pattern.charAt(i + 1) == '\'') { ! // we need to add ' to the buffer buffer.append(ch); i++; } *************** public class DecimalFormat extends Numbe *** 1362,1368 **** buffer.append(ch); } } ! if (prefix) { this.positivePrefix = buffer.toString(); --- 1362,1368 ---- buffer.append(ch); } } ! if (prefix) { this.positivePrefix = buffer.toString(); *************** public class DecimalFormat extends Numbe *** 1372,1386 **** { this.positiveSuffix = buffer.toString(); } ! return i; } ! /** * Scan the given string for number patterns, starting * from start. * This method searches the integer part of the pattern only. ! * * @param pattern The pattern string to parse. * @param start The starting parse position in the string. * @return The position in the pattern string where parsing ended, --- 1372,1386 ---- { this.positiveSuffix = buffer.toString(); } ! return i; } ! /** * Scan the given string for number patterns, starting * from start. * This method searches the integer part of the pattern only. ! * * @param pattern The pattern string to parse. * @param start The starting parse position in the string. * @return The position in the pattern string where parsing ended, *************** public class DecimalFormat extends Numbe *** 1395,1427 **** char decimalSeparator = symbols.getDecimalSeparator(); char exponent = symbols.getExponential(); char patternSeparator = symbols.getPatternSeparator(); ! // count the number of zeroes in the pattern // this number defines the minum digits in the integer portion int zeros = 0; ! // count the number of digits used in grouping int _groupingSize = 0; ! this.maxIntegerDigitsExponent = 0; ! boolean intPartTouched = false; ! char ch; int len = pattern.length(); int i; for (i = start; i < len; i++) { ch = pattern.charAt(i); ! // break on decimal separator or exponent or pattern separator if (ch == decimalSeparator || ch == exponent) break; ! if (this.hasNegativePrefix && ch == patternSeparator) throw new IllegalArgumentException("Invalid pattern found: " + start); ! if (ch == digit) { // in our implementation we could relax this strict --- 1395,1427 ---- char decimalSeparator = symbols.getDecimalSeparator(); char exponent = symbols.getExponential(); char patternSeparator = symbols.getPatternSeparator(); ! // count the number of zeroes in the pattern // this number defines the minum digits in the integer portion int zeros = 0; ! // count the number of digits used in grouping int _groupingSize = 0; ! this.maxIntegerDigitsExponent = 0; ! boolean intPartTouched = false; ! char ch; int len = pattern.length(); int i; for (i = start; i < len; i++) { ch = pattern.charAt(i); ! // break on decimal separator or exponent or pattern separator if (ch == decimalSeparator || ch == exponent) break; ! if (this.hasNegativePrefix && ch == patternSeparator) throw new IllegalArgumentException("Invalid pattern found: " + start); ! if (ch == digit) { // in our implementation we could relax this strict *************** public class DecimalFormat extends Numbe *** 1430,1436 **** if (zeros > 0) throw new IllegalArgumentException("digit mark following zero in " + "positive subpattern, not allowed. Position: " + i); ! _groupingSize++; intPartTouched = true; this.maxIntegerDigitsExponent++; --- 1430,1436 ---- if (zeros > 0) throw new IllegalArgumentException("digit mark following zero in " + "positive subpattern, not allowed. Position: " + i); ! _groupingSize++; intPartTouched = true; this.maxIntegerDigitsExponent++; *************** public class DecimalFormat extends Numbe *** 1454,1463 **** break; } } ! if (groupingSeparatorInPattern) this.groupingSize = (byte) _groupingSize; this.minimumIntegerDigits = zeros; ! // XXX: compatibility code with the RI: the number of minimum integer // digits is at least one when maximumIntegerDigits is more than zero if (intPartTouched && this.maximumIntegerDigits > 0 && --- 1454,1463 ---- break; } } ! if (groupingSeparatorInPattern) this.groupingSize = (byte) _groupingSize; this.minimumIntegerDigits = zeros; ! // XXX: compatibility code with the RI: the number of minimum integer // digits is at least one when maximumIntegerDigits is more than zero if (intPartTouched && this.maximumIntegerDigits > 0 && *************** public class DecimalFormat extends Numbe *** 1466,1477 **** return i; } ! /** * Scan the given string for number patterns, starting * from start. * This method searches the fractional part of the pattern only. ! * * @param pattern The pattern string to parse. * @param start The starting parse position in the string. * @return The position in the pattern string where parsing ended, --- 1466,1477 ---- return i; } ! /** * Scan the given string for number patterns, starting * from start. * This method searches the fractional part of the pattern only. ! * * @param pattern The pattern string to parse. * @param start The starting parse position in the string. * @return The position in the pattern string where parsing ended, *************** public class DecimalFormat extends Numbe *** 1487,1493 **** char decimalSeparator = symbols.getDecimalSeparator(); char exponent = symbols.getExponential(); char patternSeparator = symbols.getPatternSeparator(); ! // first character needs to be '.' otherwise we are not parsing the // fractional portion char ch = pattern.charAt(start); --- 1487,1493 ---- char decimalSeparator = symbols.getDecimalSeparator(); char exponent = symbols.getExponential(); char patternSeparator = symbols.getPatternSeparator(); ! // first character needs to be '.' otherwise we are not parsing the // fractional portion char ch = pattern.charAt(start); *************** public class DecimalFormat extends Numbe *** 1497,1525 **** this.maximumFractionDigits = 0; return start; } ! ++start; ! this.hasFractionalPattern = true; ! this.minimumFractionDigits = 0; int digits = 0; ! int len = pattern.length(); int i; for (i = start; i < len; i++) { ch = pattern.charAt(i); ! // we hit the exponential or negative subpattern if (ch == exponent || ch == patternSeparator) break; ! // pattern error if (ch == groupingSeparator || ch == decimalSeparator) throw new IllegalArgumentException("unexpected character '" + ch + "' " + "in fractional subpattern. Position: " + i); ! if (ch == digit) { digits++; --- 1497,1525 ---- this.maximumFractionDigits = 0; return start; } ! ++start; ! this.hasFractionalPattern = true; ! this.minimumFractionDigits = 0; int digits = 0; ! int len = pattern.length(); int i; for (i = start; i < len; i++) { ch = pattern.charAt(i); ! // we hit the exponential or negative subpattern if (ch == exponent || ch == patternSeparator) break; ! // pattern error if (ch == groupingSeparator || ch == decimalSeparator) throw new IllegalArgumentException("unexpected character '" + ch + "' " + "in fractional subpattern. Position: " + i); ! if (ch == digit) { digits++; *************** public class DecimalFormat extends Numbe *** 1529,1535 **** if (digits > 0) throw new IllegalArgumentException("digit mark following zero in " + "positive subpattern, not allowed. Position: " + i); ! this.minimumFractionDigits++; } else --- 1529,1535 ---- if (digits > 0) throw new IllegalArgumentException("digit mark following zero in " + "positive subpattern, not allowed. Position: " + i); ! this.minimumFractionDigits++; } else *************** public class DecimalFormat extends Numbe *** 1538,1557 **** break; } } ! if (i == start) this.hasFractionalPattern = false; ! this.maximumFractionDigits = this.minimumFractionDigits + digits; this.showDecimalSeparator = true; ! return i; } ! /** * Scan the given string for number patterns, starting * from start. * This method searches the expoential part of the pattern only. ! * * @param pattern The pattern string to parse. * @param start The starting parse position in the string. * @return The position in the pattern string where parsing ended, --- 1538,1557 ---- break; } } ! if (i == start) this.hasFractionalPattern = false; ! this.maximumFractionDigits = this.minimumFractionDigits + digits; this.showDecimalSeparator = true; ! return i; } ! /** * Scan the given string for number patterns, starting * from start. * This method searches the expoential part of the pattern only. ! * * @param pattern The pattern string to parse. * @param start The starting parse position in the string. * @return The position in the pattern string where parsing ended, *************** public class DecimalFormat extends Numbe *** 1565,1600 **** char groupingSeparator = symbols.getGroupingSeparator(); char decimalSeparator = symbols.getDecimalSeparator(); char exponent = symbols.getExponential(); ! char ch = pattern.charAt(start); ! if (ch == decimalSeparator) { // ignore dots ++start; } ! if (ch != exponent) { this.useExponentialNotation = false; return start; } ! ++start; ! this.minExponentDigits = 0; ! int len = pattern.length(); int i; for (i = start; i < len; i++) { ch = pattern.charAt(i); ! if (ch == groupingSeparator || ch == decimalSeparator || ch == digit || ch == exponent) throw new ! IllegalArgumentException("unexpected character '" + ch + "' " + "in exponential subpattern. Position: " + i); ! if (ch == zero) { this.minExponentDigits++; --- 1565,1600 ---- char groupingSeparator = symbols.getGroupingSeparator(); char decimalSeparator = symbols.getDecimalSeparator(); char exponent = symbols.getExponential(); ! char ch = pattern.charAt(start); ! if (ch == decimalSeparator) { // ignore dots ++start; } ! if (ch != exponent) { this.useExponentialNotation = false; return start; } ! ++start; ! this.minExponentDigits = 0; ! int len = pattern.length(); int i; for (i = start; i < len; i++) { ch = pattern.charAt(i); ! if (ch == groupingSeparator || ch == decimalSeparator || ch == digit || ch == exponent) throw new ! IllegalArgumentException("unexpected character '" + ch + "' " + "in exponential subpattern. Position: " + i); ! if (ch == zero) { this.minExponentDigits++; *************** public class DecimalFormat extends Numbe *** 1605,1622 **** break; } } ! ! this.useExponentialNotation = true; ! return i; } ! /** * Scan the given string for number patterns, starting * from start. * This method searches the negative part of the pattern only and scan * throught the end of the string. ! * * @param pattern The pattern string to parse. * @param start The starting parse position in the string. */ --- 1605,1622 ---- break; } } ! ! this.useExponentialNotation = true; ! return i; } ! /** * Scan the given string for number patterns, starting * from start. * This method searches the negative part of the pattern only and scan * throught the end of the string. ! * * @param pattern The pattern string to parse. * @param start The starting parse position in the string. */ *************** public class DecimalFormat extends Numbe *** 1625,1631 **** int start) { StringBuilder buffer = new StringBuilder(); ! // the number portion is always delimited by one of those // characters char decimalSeparator = sourceSymbols.getDecimalSeparator(); --- 1625,1631 ---- int start) { StringBuilder buffer = new StringBuilder(); ! // the number portion is always delimited by one of those // characters char decimalSeparator = sourceSymbols.getDecimalSeparator(); *************** public class DecimalFormat extends Numbe *** 1634,1668 **** char digit = sourceSymbols.getDigit(); char zero = sourceSymbols.getZeroDigit(); char minus = sourceSymbols.getMinusSign(); ! // other special charcaters, cached here to avoid method calls later char percent = sourceSymbols.getPercent(); char permille = sourceSymbols.getPerMill(); ! String CURRENCY_SYMBOL = this.symbols.getCurrencySymbol(); String currencySymbol = CURRENCY_SYMBOL; ! boolean quote = false; boolean prefixDone = false; ! int len = pattern.length(); if (len > 0) this.hasNegativePrefix = true; ! char ch = pattern.charAt(start); if (ch == patternSeparator) { // no pattern separator in the negative pattern if ((start + 1) > len) throw new IllegalArgumentException("unexpected character '" + ch + "' " + ! "in negative subpattern."); start++; } ! int i; for (i = start; i < len; i++) { ch = pattern.charAt(i); ! // this means we are inside the number portion if (!quote && (ch == digit || ch == zero || ch == decimalSeparator || --- 1634,1668 ---- char digit = sourceSymbols.getDigit(); char zero = sourceSymbols.getZeroDigit(); char minus = sourceSymbols.getMinusSign(); ! // other special charcaters, cached here to avoid method calls later char percent = sourceSymbols.getPercent(); char permille = sourceSymbols.getPerMill(); ! String CURRENCY_SYMBOL = this.symbols.getCurrencySymbol(); String currencySymbol = CURRENCY_SYMBOL; ! boolean quote = false; boolean prefixDone = false; ! int len = pattern.length(); if (len > 0) this.hasNegativePrefix = true; ! char ch = pattern.charAt(start); if (ch == patternSeparator) { // no pattern separator in the negative pattern if ((start + 1) > len) throw new IllegalArgumentException("unexpected character '" + ch + "' " + ! "in negative subpattern."); start++; } ! int i; for (i = start; i < len; i++) { ch = pattern.charAt(i); ! // this means we are inside the number portion if (!quote && (ch == digit || ch == zero || ch == decimalSeparator || *************** public class DecimalFormat extends Numbe *** 1699,1705 **** // change prefix and suffix, so leave it as commented // unless in case of bug report/errors //this.useCurrencySeparator = true; ! buffer.append(currencySymbol); } else if (ch == percent) --- 1699,1705 ---- // change prefix and suffix, so leave it as commented // unless in case of bug report/errors //this.useCurrencySeparator = true; ! buffer.append(currencySymbol); } else if (ch == percent) *************** public class DecimalFormat extends Numbe *** 1719,1725 **** // QUOTE if ((i + 1) < len && pattern.charAt(i + 1) == '\'') { ! // we need to add ' to the buffer buffer.append(ch); i++; } --- 1719,1725 ---- // QUOTE if ((i + 1) < len && pattern.charAt(i + 1) == '\'') { ! // we need to add ' to the buffer buffer.append(ch); i++; } *************** public class DecimalFormat extends Numbe *** 1739,1763 **** buffer.append(ch); } } ! if (prefixDone) this.negativeSuffix = buffer.toString(); else this.negativePrefix = buffer.toString(); } ! /* ****** FORMATTING ****** */ ! /** * Handles the real formatting. ! * * We use a BigDecimal to format the number without precision loss. * All the rounding is done by methods in BigDecimal. * The isLong parameter is used to determine if we are * formatting a long or BigInteger. In this case, we avoid to format * the fractional part of the number (unless specified otherwise in the * format string) that would consist only of a 0 digit. ! * * @param number A BigDecimal representation fo the input number. * @param dest The destination buffer. * @param isLong A boolean that indicates if this BigDecimal is a real --- 1739,1763 ---- buffer.append(ch); } } ! if (prefixDone) this.negativeSuffix = buffer.toString(); else this.negativePrefix = buffer.toString(); } ! /* ****** FORMATTING ****** */ ! /** * Handles the real formatting. ! * * We use a BigDecimal to format the number without precision loss. * All the rounding is done by methods in BigDecimal. * The isLong parameter is used to determine if we are * formatting a long or BigInteger. In this case, we avoid to format * the fractional part of the number (unless specified otherwise in the * format string) that would consist only of a 0 digit. ! * * @param number A BigDecimal representation fo the input number. * @param dest The destination buffer. * @param isLong A boolean that indicates if this BigDecimal is a real *************** public class DecimalFormat extends Numbe *** 1766,1772 **** */ private void formatInternal(BigDecimal number, boolean isLong, StringBuffer dest, FieldPosition fieldPos) ! { // The specs says that fieldPos should not be null, and that we // should throw a NPE, but it seems that in few classes that // reference this one, fieldPos is set to null. --- 1766,1772 ---- */ private void formatInternal(BigDecimal number, boolean isLong, StringBuffer dest, FieldPosition fieldPos) ! { // The specs says that fieldPos should not be null, and that we // should throw a NPE, but it seems that in few classes that // reference this one, fieldPos is set to null. *************** public class DecimalFormat extends Numbe *** 1775,1802 **** // null. If it cause harms or regressions, just remove this line and // fix the classes in the point of call, insted. if (fieldPos == null) fieldPos = new FieldPosition(0); ! int _multiplier = this.multiplier; ! // used to track attribute starting position for each attribute int attributeStart = -1; ! // now get the sign this will be used by the special case Inifinity // and by the normal cases. boolean isNegative = (number.signum() < 0) ? true : false; if (isNegative) { attributeStart = dest.length(); ! // append the negative prefix to the string dest.append(negativePrefix); ! // once got the negative prefix, we can use // the absolute value. number = number.abs(); ! _multiplier = negativePatternMultiplier; ! addAttribute(Field.SIGN, attributeStart, dest.length()); } else --- 1775,1802 ---- // null. If it cause harms or regressions, just remove this line and // fix the classes in the point of call, insted. if (fieldPos == null) fieldPos = new FieldPosition(0); ! int _multiplier = this.multiplier; ! // used to track attribute starting position for each attribute int attributeStart = -1; ! // now get the sign this will be used by the special case Inifinity // and by the normal cases. boolean isNegative = (number.signum() < 0) ? true : false; if (isNegative) { attributeStart = dest.length(); ! // append the negative prefix to the string dest.append(negativePrefix); ! // once got the negative prefix, we can use // the absolute value. number = number.abs(); ! _multiplier = negativePatternMultiplier; ! addAttribute(Field.SIGN, attributeStart, dest.length()); } else *************** public class DecimalFormat extends Numbe *** 1804,1819 **** // not negative, use the positive prefix dest.append(positivePrefix); } ! // these are used ot update the field position int beginIndexInt = dest.length(); int endIndexInt = 0; int beginIndexFract = 0; int endIndexFract = 0; ! // compute the multiplier to use with percent and similar number = number.multiply(BigDecimal.valueOf(_multiplier)); ! // XXX: special case, not sure if it belongs here or if it is // correct at all. There may be other special cases as well // these should be handled in the format string parser. --- 1804,1819 ---- // not negative, use the positive prefix dest.append(positivePrefix); } ! // these are used ot update the field position int beginIndexInt = dest.length(); int endIndexInt = 0; int beginIndexFract = 0; int endIndexFract = 0; ! // compute the multiplier to use with percent and similar number = number.multiply(BigDecimal.valueOf(_multiplier)); ! // XXX: special case, not sure if it belongs here or if it is // correct at all. There may be other special cases as well // these should be handled in the format string parser. *************** public class DecimalFormat extends Numbe *** 1823,1876 **** this.maximumIntegerDigits = 1; this.minimumIntegerDigits = 1; } ! // get the absolute number number = number.abs(); // the scaling to use while formatting this number int scale = this.maximumFractionDigits; ! // this is the actual number we will use // it is corrected later on to handle exponential // notation, if needed long exponent = 0; ! // are we using exponential notation? if (this.useExponentialNotation) { exponent = getExponent(number); number = number.movePointLeft((int) exponent); ! // FIXME: this makes the test ##.###E0 to pass, // but all all the other tests to fail... // this should be really something like // min + max - what is already shown... //scale = this.minimumIntegerDigits + this.maximumFractionDigits; } ! // round the number to the nearest neighbor number = number.setScale(scale, BigDecimal.ROUND_HALF_EVEN); // now get the integer and fractional part of the string // that will be processed later String plain = number.toPlainString(); ! String intPart = null; String fractPart = null; ! // remove - from the integer part, this is needed as // the Narrowing Primitive Conversions algorithm used may loose // information about the sign int minusIndex = plain.lastIndexOf('-', 0); if (minusIndex > -1) plain = plain.substring(minusIndex + 1); ! // strip the decimal portion int dot = plain.indexOf('.'); if (dot > -1) { intPart = plain.substring(0, dot); dot++; ! if (useExponentialNotation) fractPart = plain.substring(dot, dot + scale); else --- 1823,1876 ---- this.maximumIntegerDigits = 1; this.minimumIntegerDigits = 1; } ! // get the absolute number number = number.abs(); // the scaling to use while formatting this number int scale = this.maximumFractionDigits; ! // this is the actual number we will use // it is corrected later on to handle exponential // notation, if needed long exponent = 0; ! // are we using exponential notation? if (this.useExponentialNotation) { exponent = getExponent(number); number = number.movePointLeft((int) exponent); ! // FIXME: this makes the test ##.###E0 to pass, // but all all the other tests to fail... // this should be really something like // min + max - what is already shown... //scale = this.minimumIntegerDigits + this.maximumFractionDigits; } ! // round the number to the nearest neighbor number = number.setScale(scale, BigDecimal.ROUND_HALF_EVEN); // now get the integer and fractional part of the string // that will be processed later String plain = number.toPlainString(); ! String intPart = null; String fractPart = null; ! // remove - from the integer part, this is needed as // the Narrowing Primitive Conversions algorithm used may loose // information about the sign int minusIndex = plain.lastIndexOf('-', 0); if (minusIndex > -1) plain = plain.substring(minusIndex + 1); ! // strip the decimal portion int dot = plain.indexOf('.'); if (dot > -1) { intPart = plain.substring(0, dot); dot++; ! if (useExponentialNotation) fractPart = plain.substring(dot, dot + scale); else *************** public class DecimalFormat extends Numbe *** 1880,1890 **** { intPart = plain; } ! // used in various places later on int intPartLen = intPart.length(); endIndexInt = intPartLen; ! // if the number of digits in our intPart is not greater than the // minimum we have to display, we append zero to the destination // buffer before adding the integer portion of the number. --- 1880,1890 ---- { intPart = plain; } ! // used in various places later on int intPartLen = intPart.length(); endIndexInt = intPartLen; ! // if the number of digits in our intPart is not greater than the // minimum we have to display, we append zero to the destination // buffer before adding the integer portion of the number. *************** public class DecimalFormat extends Numbe *** 1901,1907 **** // the sum of the minimum integer and maximum fraction // digits, and does not take into account the maximun integer // digits to display. ! if (attributeStart < 0) attributeStart = Math.max(dest.length() - 1, 0); appendDigit(intPart, dest, this.groupingUsed); --- 1901,1907 ---- // the sum of the minimum integer and maximum fraction // digits, and does not take into account the maximun integer // digits to display. ! if (attributeStart < 0) attributeStart = Math.max(dest.length() - 1, 0); appendDigit(intPart, dest, this.groupingUsed); *************** public class DecimalFormat extends Numbe *** 1911,1922 **** // non exponential notation intPartLen = intPart.length(); int canary = Math.min(intPartLen, this.maximumIntegerDigits); ! // remove from the string the number in excess // use only latest digits intPart = intPart.substring(intPartLen - canary); endIndexInt = intPart.length() + 1; ! // append it if (maximumIntegerDigits > 0 && !(this.minimumIntegerDigits == 0 && --- 1911,1922 ---- // non exponential notation intPartLen = intPart.length(); int canary = Math.min(intPartLen, this.maximumIntegerDigits); ! // remove from the string the number in excess // use only latest digits intPart = intPart.substring(intPartLen - canary); endIndexInt = intPart.length() + 1; ! // append it if (maximumIntegerDigits > 0 && !(this.minimumIntegerDigits == 0 && *************** public class DecimalFormat extends Numbe *** 1927,1936 **** appendDigit(intPart, dest, this.groupingUsed); } } ! // add the INTEGER attribute addAttribute(Field.INTEGER, attributeStart, dest.length()); ! // ...update field position, if needed, and return... if ((fieldPos.getField() == INTEGER_FIELD || fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) --- 1927,1936 ---- appendDigit(intPart, dest, this.groupingUsed); } } ! // add the INTEGER attribute addAttribute(Field.INTEGER, attributeStart, dest.length()); ! // ...update field position, if needed, and return... if ((fieldPos.getField() == INTEGER_FIELD || fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) *************** public class DecimalFormat extends Numbe *** 1938,1978 **** fieldPos.setBeginIndex(beginIndexInt); fieldPos.setEndIndex(endIndexInt); } ! handleFractionalPart(dest, fractPart, fieldPos, isLong); ! // and the exponent if (this.useExponentialNotation) { attributeStart = dest.length(); ! dest.append(symbols.getExponential()); ! addAttribute(Field.EXPONENT_SYMBOL, attributeStart, dest.length()); attributeStart = dest.length(); ! if (exponent < 0) { dest.append(symbols.getMinusSign()); exponent = -exponent; ! addAttribute(Field.EXPONENT_SIGN, attributeStart, dest.length()); } ! attributeStart = dest.length(); ! String exponentString = String.valueOf(exponent); int exponentLength = exponentString.length(); ! for (int i = 0; i < minExponentDigits - exponentLength; i++) dest.append(symbols.getZeroDigit()); ! for (int i = 0; i < exponentLength; ++i) dest.append(exponentString.charAt(i)); ! addAttribute(Field.EXPONENT, attributeStart, dest.length()); } ! // now include the suffixes... if (isNegative) { --- 1938,1978 ---- fieldPos.setBeginIndex(beginIndexInt); fieldPos.setEndIndex(endIndexInt); } ! handleFractionalPart(dest, fractPart, fieldPos, isLong); ! // and the exponent if (this.useExponentialNotation) { attributeStart = dest.length(); ! dest.append(symbols.getExponential()); ! addAttribute(Field.EXPONENT_SYMBOL, attributeStart, dest.length()); attributeStart = dest.length(); ! if (exponent < 0) { dest.append(symbols.getMinusSign()); exponent = -exponent; ! addAttribute(Field.EXPONENT_SIGN, attributeStart, dest.length()); } ! attributeStart = dest.length(); ! String exponentString = String.valueOf(exponent); int exponentLength = exponentString.length(); ! for (int i = 0; i < minExponentDigits - exponentLength; i++) dest.append(symbols.getZeroDigit()); ! for (int i = 0; i < exponentLength; ++i) dest.append(exponentString.charAt(i)); ! addAttribute(Field.EXPONENT, attributeStart, dest.length()); } ! // now include the suffixes... if (isNegative) { *************** public class DecimalFormat extends Numbe *** 1987,1993 **** /** * Add to the input buffer the result of formatting the fractional * portion of the number. ! * * @param dest * @param fractPart * @param fieldPos --- 1987,1993 ---- /** * Add to the input buffer the result of formatting the fractional * portion of the number. ! * * @param dest * @param fractPart * @param fieldPos *************** public class DecimalFormat extends Numbe *** 1999,2044 **** int dotStart = 0; int dotEnd = 0; boolean addDecimal = false; ! if (this.decimalSeparatorAlwaysShown || ((!isLong || this.useExponentialNotation) && this.showDecimalSeparator && this.maximumFractionDigits > 0) || this.minimumFractionDigits > 0) { dotStart = dest.length(); ! if (this.useCurrencySeparator) dest.append(symbols.getMonetaryDecimalSeparator()); else dest.append(symbols.getDecimalSeparator()); ! dotEnd = dest.length(); addDecimal = true; } ! // now handle the fraction portion of the number int fractStart = 0; int fractEnd = 0; boolean addFractional = false; ! if ((!isLong || this.useExponentialNotation) && this.maximumFractionDigits > 0 || this.minimumFractionDigits > 0) { fractStart = dest.length(); fractEnd = fractStart; ! int digits = this.minimumFractionDigits; ! if (this.useExponentialNotation) { digits = (this.minimumIntegerDigits + this.minimumFractionDigits) - dest.length(); if (digits < 0) digits = 0; } ! fractPart = adjustTrailingZeros(fractPart, digits); ! // FIXME: this code must be improved // now check if the factional part is just 0, in this case // we need to remove the '.' unless requested --- 1999,2044 ---- int dotStart = 0; int dotEnd = 0; boolean addDecimal = false; ! if (this.decimalSeparatorAlwaysShown || ((!isLong || this.useExponentialNotation) && this.showDecimalSeparator && this.maximumFractionDigits > 0) || this.minimumFractionDigits > 0) { dotStart = dest.length(); ! if (this.useCurrencySeparator) dest.append(symbols.getMonetaryDecimalSeparator()); else dest.append(symbols.getDecimalSeparator()); ! dotEnd = dest.length(); addDecimal = true; } ! // now handle the fraction portion of the number int fractStart = 0; int fractEnd = 0; boolean addFractional = false; ! if ((!isLong || this.useExponentialNotation) && this.maximumFractionDigits > 0 || this.minimumFractionDigits > 0) { fractStart = dest.length(); fractEnd = fractStart; ! int digits = this.minimumFractionDigits; ! if (this.useExponentialNotation) { digits = (this.minimumIntegerDigits + this.minimumFractionDigits) - dest.length(); if (digits < 0) digits = 0; } ! fractPart = adjustTrailingZeros(fractPart, digits); ! // FIXME: this code must be improved // now check if the factional part is just 0, in this case // we need to remove the '.' unless requested *************** public class DecimalFormat extends Numbe *** 2049,2060 **** if (fracts[i] != '0') allZeros = false; } ! if (!allZeros || (minimumFractionDigits > 0)) { appendDigit(fractPart, dest, false); fractEnd = dest.length(); ! addDecimal = true; addFractional = true; } --- 2049,2060 ---- if (fracts[i] != '0') allZeros = false; } ! if (!allZeros || (minimumFractionDigits > 0)) { appendDigit(fractPart, dest, false); fractEnd = dest.length(); ! addDecimal = true; addFractional = true; } *************** public class DecimalFormat extends Numbe *** 2069,2081 **** addFractional = true; } } ! if (addDecimal) addAttribute(Field.DECIMAL_SEPARATOR, dotStart, dotEnd); ! if (addFractional) addAttribute(Field.FRACTION, fractStart, fractEnd); ! if ((fieldPos.getField() == FRACTION_FIELD || fieldPos.getFieldAttribute() == NumberFormat.Field.FRACTION)) { --- 2069,2081 ---- addFractional = true; } } ! if (addDecimal) addAttribute(Field.DECIMAL_SEPARATOR, dotStart, dotEnd); ! if (addFractional) addAttribute(Field.FRACTION, fractStart, fractEnd); ! if ((fieldPos.getField() == FRACTION_FIELD || fieldPos.getFieldAttribute() == NumberFormat.Field.FRACTION)) { *************** public class DecimalFormat extends Numbe *** 2083,2089 **** fieldPos.setEndIndex(fractEnd); } } ! /** * Append to destthe give number of zeros. * Grouping is added if needed. --- 2083,2089 ---- fieldPos.setEndIndex(fractEnd); } } ! /** * Append to destthe give number of zeros. * Grouping is added if needed. *************** public class DecimalFormat extends Numbe *** 2094,2100 **** { char ch = symbols.getZeroDigit(); char gSeparator = symbols.getGroupingSeparator(); ! int i = 0; int gPos = totalDigitCount; for (i = 0; i < zeroes; i++, gPos--) --- 2094,2100 ---- { char ch = symbols.getZeroDigit(); char gSeparator = symbols.getGroupingSeparator(); ! int i = 0; int gPos = totalDigitCount; for (i = 0; i < zeroes; i++, gPos--) *************** public class DecimalFormat extends Numbe *** 2103,2122 **** (this.groupingUsed && this.groupingSize != 0) && (gPos % groupingSize == 0 && i > 0)) dest.append(gSeparator); ! dest.append(ch); } ! // special case, that requires adding an additional separator if (this.groupingSeparatorInPattern && (this.groupingUsed && this.groupingSize != 0) && (gPos % groupingSize == 0)) dest.append(gSeparator); } ! /** * Append src to dest. ! * * Grouping is added if groupingUsed is set * to true. */ --- 2103,2122 ---- (this.groupingUsed && this.groupingSize != 0) && (gPos % groupingSize == 0 && i > 0)) dest.append(gSeparator); ! dest.append(ch); } ! // special case, that requires adding an additional separator if (this.groupingSeparatorInPattern && (this.groupingUsed && this.groupingSize != 0) && (gPos % groupingSize == 0)) dest.append(gSeparator); } ! /** * Append src to dest. ! * * Grouping is added if groupingUsed is set * to true. */ *************** public class DecimalFormat extends Numbe *** 2124,2133 **** boolean groupingUsed) { int zero = symbols.getZeroDigit() - '0'; ! int ch; char gSeparator = symbols.getGroupingSeparator(); ! int len = src.length(); for (int i = 0, gPos = len; i < len; i++, gPos--) { --- 2124,2133 ---- boolean groupingUsed) { int zero = symbols.getZeroDigit() - '0'; ! int ch; char gSeparator = symbols.getGroupingSeparator(); ! int len = src.length(); for (int i = 0, gPos = len; i < len; i++, gPos--) { *************** public class DecimalFormat extends Numbe *** 2139,2145 **** dest.append((char) (zero + ch)); } } ! /** * Calculate the exponent to use if eponential notation is used. * The exponent is calculated as a power of ten. --- 2139,2145 ---- dest.append((char) (zero + ch)); } } ! /** * Calculate the exponent to use if eponential notation is used. * The exponent is calculated as a power of ten. *************** public class DecimalFormat extends Numbe *** 2149,2163 **** private long getExponent(BigDecimal number) { long exponent = 0; ! if (number.signum() > 0) { double _number = number.doubleValue(); exponent = (long) Math.floor (Math.log10(_number)); ! // get the right value for the exponent exponent = exponent - (exponent % this.exponentRound); ! // if the minimumIntegerDigits is more than zero // we display minimumIntegerDigits of digits. // so, for example, if minimumIntegerDigits == 2 --- 2149,2163 ---- private long getExponent(BigDecimal number) { long exponent = 0; ! if (number.signum() > 0) { double _number = number.doubleValue(); exponent = (long) Math.floor (Math.log10(_number)); ! // get the right value for the exponent exponent = exponent - (exponent % this.exponentRound); ! // if the minimumIntegerDigits is more than zero // we display minimumIntegerDigits of digits. // so, for example, if minimumIntegerDigits == 2 *************** public class DecimalFormat extends Numbe *** 2168,2198 **** if (minimumIntegerDigits > 0) exponent -= minimumIntegerDigits - 1; } ! return exponent; } ! /** * Remove contiguos zeros from the end of the src string, * if src contains more than minimumDigits digits. * if src contains less that minimumDigits, * then append zeros to the string. ! * * Only the first block of zero digits is removed from the string * and only if they fall in the src.length - minimumDigits * portion of the string. ! * * @param src The string with the correct number of zeros. */ private String adjustTrailingZeros(String src, int minimumDigits) { int len = src.length(); String result; ! // remove all trailing zero if (len > minimumDigits) { ! int zeros = 0; for (int i = len - 1; i > minimumDigits; i--) { if (src.charAt(i) == '0') --- 2168,2198 ---- if (minimumIntegerDigits > 0) exponent -= minimumIntegerDigits - 1; } ! return exponent; } ! /** * Remove contiguos zeros from the end of the src string, * if src contains more than minimumDigits digits. * if src contains less that minimumDigits, * then append zeros to the string. ! * * Only the first block of zero digits is removed from the string * and only if they fall in the src.length - minimumDigits * portion of the string. ! * * @param src The string with the correct number of zeros. */ private String adjustTrailingZeros(String src, int minimumDigits) { int len = src.length(); String result; ! // remove all trailing zero if (len > minimumDigits) { ! int zeros = 0; for (int i = len - 1; i > minimumDigits; i--) { if (src.charAt(i) == '0') *************** public class DecimalFormat extends Numbe *** 2200,2206 **** else break; } ! result = src.substring(0, len - zeros); } else { --- 2200,2206 ---- else break; } ! result = src.substring(0, len - zeros); } else { *************** public class DecimalFormat extends Numbe *** 2212,2224 **** } result = _result.toString(); } ! return result; } ! /** * Adds an attribute to the attributes list. ! * * @param field * @param begin * @param end --- 2212,2224 ---- } result = _result.toString(); } ! return result; } ! /** * Adds an attribute to the attributes list. ! * * @param field * @param begin * @param end *************** public class DecimalFormat extends Numbe *** 2229,2241 **** * This method and its implementation derives directly from the * ICU4J (http://icu.sourceforge.net/) library, distributed under MIT/X. */ ! FieldPosition pos = new FieldPosition(field); pos.setBeginIndex(begin); pos.setEndIndex(end); attributes.add(pos); } ! /** * Sets the default values for the various properties in this DecimaFormat. */ --- 2229,2241 ---- * This method and its implementation derives directly from the * ICU4J (http://icu.sourceforge.net/) library, distributed under MIT/X. */ ! FieldPosition pos = new FieldPosition(field); pos.setBeginIndex(begin); pos.setEndIndex(end); attributes.add(pos); } ! /** * Sets the default values for the various properties in this DecimaFormat. */ *************** public class DecimalFormat extends Numbe *** 2245,2278 **** // the most appropriate for them for any locale. // Anyway, these seem to be good values for a default in most languages. // Note that most of these will change based on the format string. ! this.negativePrefix = String.valueOf(symbols.getMinusSign()); this.negativeSuffix = ""; this.positivePrefix = ""; this.positiveSuffix = ""; ! this.multiplier = 1; this.negativePatternMultiplier = 1; this.exponentRound = 1; ! this.hasNegativePrefix = false; ! this.minimumIntegerDigits = 1; this.maximumIntegerDigits = DEFAULT_INTEGER_DIGITS; this.minimumFractionDigits = 0; this.maximumFractionDigits = DEFAULT_FRACTION_DIGITS; this.minExponentDigits = 0; ! this.groupingSize = 0; ! this.decimalSeparatorAlwaysShown = false; this.showDecimalSeparator = false; this.useExponentialNotation = false; this.groupingUsed = false; this.groupingSeparatorInPattern = false; ! this.useCurrencySeparator = false; ! this.hasFractionalPattern = false; } } --- 2245,2278 ---- // the most appropriate for them for any locale. // Anyway, these seem to be good values for a default in most languages. // Note that most of these will change based on the format string. ! this.negativePrefix = String.valueOf(symbols.getMinusSign()); this.negativeSuffix = ""; this.positivePrefix = ""; this.positiveSuffix = ""; ! this.multiplier = 1; this.negativePatternMultiplier = 1; this.exponentRound = 1; ! this.hasNegativePrefix = false; ! this.minimumIntegerDigits = 1; this.maximumIntegerDigits = DEFAULT_INTEGER_DIGITS; this.minimumFractionDigits = 0; this.maximumFractionDigits = DEFAULT_FRACTION_DIGITS; this.minExponentDigits = 0; ! this.groupingSize = 0; ! this.decimalSeparatorAlwaysShown = false; this.showDecimalSeparator = false; this.useExponentialNotation = false; this.groupingUsed = false; this.groupingSeparatorInPattern = false; ! this.useCurrencySeparator = false; ! this.hasFractionalPattern = false; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/DecimalFormatSymbols.java gcc-4.6.0/libjava/classpath/java/text/DecimalFormatSymbols.java *** gcc-4.5.2/libjava/classpath/java/text/DecimalFormatSymbols.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/text/DecimalFormatSymbols.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.ResourceBundle; *** 53,59 **** import java.util.ServiceLoader; /** ! * This class is a container for the symbols used by * DecimalFormat to format numbers and currency * for a particular locale. These are * normally handled automatically, but an application can override --- 53,59 ---- import java.util.ServiceLoader; /** ! * This class is a container for the symbols used by * DecimalFormat to format numbers and currency * for a particular locale. These are * normally handled automatically, but an application can override *************** public class DecimalFormatSymbols implem *** 79,85 **** } catch(CloneNotSupportedException e) { ! return null; } } --- 79,85 ---- } catch(CloneNotSupportedException e) { ! return null; } } *************** public class DecimalFormatSymbols implem *** 110,122 **** { if (bundle != null) { ! try ! { ! return bundle.getString(name); ! } ! catch (MissingResourceException x) ! { ! } } return def; } --- 110,122 ---- { if (bundle != null) { ! try ! { ! return bundle.getString(name); ! } ! catch (MissingResourceException x) ! { ! } } return def; } *************** public class DecimalFormatSymbols implem *** 127,139 **** String r = null; if (bundle != null) { ! try ! { ! r = bundle.getString(name); ! } ! catch (MissingResourceException x) ! { ! } } if (r == null || r.length() < 1) return def; --- 127,139 ---- String r = null; if (bundle != null) { ! try ! { ! r = bundle.getString(name); ! } ! catch (MissingResourceException x) ! { ! } } if (r == null || r.length() < 1) return def; *************** public class DecimalFormatSymbols implem *** 163,174 **** try { ! res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); } catch (MissingResourceException x) { ! res = null; } locale = loc; currency = Currency.getInstance("XXX"); --- 163,174 ---- try { ! res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); } catch (MissingResourceException x) { ! res = null; } locale = loc; currency = Currency.getInstance("XXX"); *************** public class DecimalFormatSymbols implem *** 176,190 **** intlCurrencySymbol = "XXX"; try { ! Currency localeCurrency = Currency.getInstance(loc); ! if (localeCurrency != null) ! { ! setCurrency(localeCurrency); ! } } catch(IllegalArgumentException exception) { ! /* Locale has an invalid currency */ } decimalSeparator = safeGetChar (res, "decimalSeparator", '.'); digit = safeGetChar (res, "digit", '#'); --- 176,190 ---- intlCurrencySymbol = "XXX"; try { ! Currency localeCurrency = Currency.getInstance(loc); ! if (localeCurrency != null) ! { ! setCurrency(localeCurrency); ! } } catch(IllegalArgumentException exception) { ! /* Locale has an invalid currency */ } decimalSeparator = safeGetChar (res, "decimalSeparator", '.'); digit = safeGetChar (res, "digit", '#'); *************** public class DecimalFormatSymbols implem *** 193,203 **** infinity = safeGetString (res, "infinity", "\u221e"); try { ! monetarySeparator = safeGetChar (res, "monetarySeparator", '.'); } catch (MissingResourceException x) { ! monetarySeparator = decimalSeparator; } minusSign = safeGetChar (res, "minusSign", '-'); NaN = safeGetString (res, "NaN", "\ufffd"); --- 193,203 ---- infinity = safeGetString (res, "infinity", "\u221e"); try { ! monetarySeparator = safeGetChar (res, "monetarySeparator", '.'); } catch (MissingResourceException x) { ! monetarySeparator = decimalSeparator; } minusSign = safeGetChar (res, "minusSign", '-'); NaN = safeGetString (res, "NaN", "\ufffd"); *************** public class DecimalFormatSymbols implem *** 227,245 **** return false; DecimalFormatSymbols dfs = (DecimalFormatSymbols) obj; return (currencySymbol.equals(dfs.currencySymbol) ! && decimalSeparator == dfs.decimalSeparator ! && digit == dfs.digit ! && exponential == dfs.exponential ! && groupingSeparator == dfs.groupingSeparator ! && infinity.equals(dfs.infinity) ! && intlCurrencySymbol.equals(dfs.intlCurrencySymbol) ! && minusSign == dfs.minusSign ! && monetarySeparator == dfs.monetarySeparator ! && NaN.equals(dfs.NaN) ! && patternSeparator == dfs.patternSeparator ! && percent == dfs.percent ! && perMill == dfs.perMill ! && zeroDigit == dfs.zeroDigit); } /** --- 227,245 ---- return false; DecimalFormatSymbols dfs = (DecimalFormatSymbols) obj; return (currencySymbol.equals(dfs.currencySymbol) ! && decimalSeparator == dfs.decimalSeparator ! && digit == dfs.digit ! && exponential == dfs.exponential ! && groupingSeparator == dfs.groupingSeparator ! && infinity.equals(dfs.infinity) ! && intlCurrencySymbol.equals(dfs.intlCurrencySymbol) ! && minusSign == dfs.minusSign ! && monetarySeparator == dfs.monetarySeparator ! && NaN.equals(dfs.NaN) ! && patternSeparator == dfs.patternSeparator ! && percent == dfs.percent ! && perMill == dfs.perMill ! && zeroDigit == dfs.zeroDigit); } /** *************** public class DecimalFormatSymbols implem *** 281,287 **** * format pattern string. * * @return The character used to represent a digit in a format ! * pattern string. */ public char getDigit () { --- 281,287 ---- * format pattern string. * * @return The character used to represent a digit in a format ! * pattern string. */ public char getDigit () { *************** public class DecimalFormatSymbols implem *** 503,509 **** * used for the currency attribute, and the currency symbol * is set to the corresponding value from this instance. * Otherwise, the currency attribute is set to null and the ! * symbol is left unmodified. * * @param currencyCode The new international currency symbol. */ --- 503,509 ---- * used for the currency attribute, and the currency symbol * is set to the corresponding value from this instance. * Otherwise, the currency attribute is set to null and the ! * symbol is left unmodified. * * @param currencyCode The new international currency symbol. */ *************** public class DecimalFormatSymbols implem *** 512,522 **** intlCurrencySymbol = currencyCode; try { ! currency = Currency.getInstance(currencyCode); } catch (IllegalArgumentException exception) { ! currency = null; } if (currency != null) { --- 512,522 ---- intlCurrencySymbol = currencyCode; try { ! currency = Currency.getInstance(currencyCode); } catch (IllegalArgumentException exception) { ! currency = null; } if (currency != null) { *************** public class DecimalFormatSymbols implem *** 538,544 **** * This method sets the character used for the decimal point in currency * values. * ! * @param decimalSep The decimal point character used in currency values. */ public void setMonetaryDecimalSeparator (char decimalSep) { --- 538,544 ---- * This method sets the character used for the decimal point in currency * values. * ! * @param decimalSep The decimal point character used in currency values. */ public void setMonetaryDecimalSeparator (char decimalSep) { *************** public class DecimalFormatSymbols implem *** 547,553 **** /** * This method sets the string used to represent the NaN (not a ! * number) value. * * @param nan The string used to represent NaN */ --- 547,553 ---- /** * This method sets the string used to represent the NaN (not a ! * number) value. * * @param nan The string used to represent NaN */ *************** public class DecimalFormatSymbols implem *** 692,701 **** if (serialVersionOnStream < 1) { monetarySeparator = decimalSeparator; ! exponential = 'E'; } if (serialVersionOnStream < 2) ! locale = Locale.getDefault(); serialVersionOnStream = 2; } --- 692,701 ---- if (serialVersionOnStream < 1) { monetarySeparator = decimalSeparator; ! exponential = 'E'; } if (serialVersionOnStream < 2) ! locale = Locale.getDefault(); serialVersionOnStream = 2; } *************** public class DecimalFormatSymbols implem *** 707,713 **** * {@link java.text.spi.DecimalFormatSymbolsProvider} instances. * This is equivalent to calling * getInstance(Locale.getDefault()). ! * * @return a {@link DecimalFormatSymbols} instance for the default * locale. * @since 1.6 --- 707,713 ---- * {@link java.text.spi.DecimalFormatSymbolsProvider} instances. * This is equivalent to calling * getInstance(Locale.getDefault()). ! * * @return a {@link DecimalFormatSymbols} instance for the default * locale. * @since 1.6 *************** public class DecimalFormatSymbols implem *** 722,728 **** * specified locale obtained from either the runtime itself * or one of the installed * {@link java.text.spi.DecimalFormatSymbolsProvider} instances. ! * * @param locale the locale for which an instance should be * returned. * @return a {@link DecimalFormatSymbols} instance for the specified --- 722,728 ---- * specified locale obtained from either the runtime itself * or one of the installed * {@link java.text.spi.DecimalFormatSymbolsProvider} instances. ! * * @param locale the locale for which an instance should be * returned. * @return a {@link DecimalFormatSymbols} instance for the specified *************** public class DecimalFormatSymbols implem *** 735,764 **** { try { ! if (!locale.equals(Locale.ROOT)) ! ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! locale, ! ClassLoader.getSystemClassLoader()); ! return new DecimalFormatSymbols(locale); } catch (MissingResourceException x) { ! /* This means runtime support for the locale ! * is not available, so we check providers. */ } for (DecimalFormatSymbolsProvider p : ! ServiceLoader.load(DecimalFormatSymbolsProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! DecimalFormatSymbols syms = p.getInstance(locale); ! if (syms != null) ! return syms; ! break; ! } ! } } return getInstance(LocaleHelper.getFallbackLocale(locale)); } --- 735,764 ---- { try { ! if (!locale.equals(Locale.ROOT)) ! ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! locale, ! ClassLoader.getSystemClassLoader()); ! return new DecimalFormatSymbols(locale); } catch (MissingResourceException x) { ! /* This means runtime support for the locale ! * is not available, so we check providers. */ } for (DecimalFormatSymbolsProvider p : ! ServiceLoader.load(DecimalFormatSymbolsProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! DecimalFormatSymbols syms = p.getInstance(locale); ! if (syms != null) ! return syms; ! break; ! } ! } } return getInstance(LocaleHelper.getFallbackLocale(locale)); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/FieldPosition.java gcc-4.6.0/libjava/classpath/java/text/FieldPosition.java *** gcc-4.5.2/libjava/classpath/java/text/FieldPosition.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/text/FieldPosition.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class FieldPosition *** 169,182 **** *
                      *
                    • The specified object is not null. *
                    • The specified object has the same class as this object. ! *
                    • The specified object has the same field identifier, field attribute * and beginning and ending index as this object. *
                    * * @param obj The object to test for equality to this object. * * @return true if the specified object is equal to ! * this object, false otherwise. */ public boolean equals (Object obj) { --- 169,182 ---- *
                      *
                    • The specified object is not null. *
                    • The specified object has the same class as this object. ! *
                    • The specified object has the same field identifier, field attribute * and beginning and ending index as this object. *
                    * * @param obj The object to test for equality to this object. * * @return true if the specified object is equal to ! * this object, false otherwise. */ public boolean equals (Object obj) { *************** public class FieldPosition *** 188,204 **** FieldPosition fp = (FieldPosition) obj; return (field_id == fp.field_id ! && (field_attribute == fp.field_attribute ! || (field_attribute != null ! && field_attribute.equals(fp.field_attribute))) ! && begin == fp.begin ! && end == fp.end); } /** * This method returns a hash value for this object ! * * @return A hash value for this object. */ public int hashCode () --- 188,204 ---- FieldPosition fp = (FieldPosition) obj; return (field_id == fp.field_id ! && (field_attribute == fp.field_attribute ! || (field_attribute != null ! && field_attribute.equals(fp.field_attribute))) ! && begin == fp.begin ! && end == fp.end); } /** * This method returns a hash value for this object ! * * @return A hash value for this object. */ public int hashCode () *************** public class FieldPosition *** 208,214 **** hash = 31 * hash + field_id; hash = 31 * hash + begin; hash = 31 * hash + end; ! hash = 31 * hash + (null == field_attribute ? 0 : field_attribute.hashCode()); return hash; --- 208,214 ---- hash = 31 * hash + field_id; hash = 31 * hash + begin; hash = 31 * hash + end; ! hash = 31 * hash + (null == field_attribute ? 0 : field_attribute.hashCode()); return hash; *************** public class FieldPosition *** 223,232 **** public String toString () { return (getClass ().getName () ! + "[field=" + getField () ! + ",attribute=" + getFieldAttribute () ! + ",beginIndex=" + getBeginIndex () ! + ",endIndex=" + getEndIndex () ! + "]"); } } --- 223,232 ---- public String toString () { return (getClass ().getName () ! + "[field=" + getField () ! + ",attribute=" + getFieldAttribute () ! + ",beginIndex=" + getBeginIndex () ! + ",endIndex=" + getEndIndex () ! + "]"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/Format.java gcc-4.6.0/libjava/classpath/java/text/Format.java *** gcc-4.5.2/libjava/classpath/java/text/Format.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/text/Format.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.Serializable; *** 44,59 **** /** * This class is the abstract superclass of classes that format and parse ! * data to/from Strings. It is guaranteed that any * String produced by a concrete subclass of Format * will be parseable by that same subclass. *

                    * In addition to implementing the abstract methods in this class, subclasses ! * should provide static factory methods of the form * getInstance() and getInstance(Locale) if the * subclass loads different formatting/parsing schemes based on locale. * These subclasses should also implement a static method called ! * getAvailableLocales() which returns an array of * available locales in the current runtime environment. * * @author Aaron M. Renn (arenn@urbanophile.com) --- 44,59 ---- /** * This class is the abstract superclass of classes that format and parse ! * data to/from Strings. It is guaranteed that any * String produced by a concrete subclass of Format * will be parseable by that same subclass. *

                    * In addition to implementing the abstract methods in this class, subclasses ! * should provide static factory methods of the form * getInstance() and getInstance(Locale) if the * subclass loads different formatting/parsing schemes based on locale. * These subclasses should also implement a static method called ! * getAvailableLocales() which returns an array of * available locales in the current runtime environment. * * @author Aaron M. Renn (arenn@urbanophile.com) *************** public abstract class Format implements *** 69,81 **** public static class Field extends AttributedCharacterIterator.Attribute { static final long serialVersionUID = 276966692217360283L; ! protected Field(String name) { super(name); } } ! /** * This method initializes a new instance of Format. * It performs no actions, but acts as a default constructor for --- 69,81 ---- public static class Field extends AttributedCharacterIterator.Attribute { static final long serialVersionUID = 276966692217360283L; ! protected Field(String name) { super(name); } } ! /** * This method initializes a new instance of Format. * It performs no actions, but acts as a default constructor for *************** public abstract class Format implements *** 87,99 **** /** * This method formats an Object into a String. ! * * @param obj The Object to format. * * @return The formatted String. * * @exception IllegalArgumentException If the Object ! * cannot be formatted. */ public final String format(Object obj) throws IllegalArgumentException { --- 87,99 ---- /** * This method formats an Object into a String. ! * * @param obj The Object to format. * * @return The formatted String. * * @exception IllegalArgumentException If the Object ! * cannot be formatted. */ public final String format(Object obj) throws IllegalArgumentException { *************** public abstract class Format implements *** 109,127 **** * @param obj The Object to format. * @param sb The StringBuffer to append to. * @param pos The desired FieldPosition, which is also ! * updated by this call. * * @return The updated StringBuffer. * * @exception IllegalArgumentException If the Object ! * cannot be formatted. */ public abstract StringBuffer format (Object obj, StringBuffer sb, ! FieldPosition pos) throws IllegalArgumentException; /** ! * This method parses a String and converts the parsed * contents into an Object. * * @param str The String to parse. --- 109,127 ---- * @param obj The Object to format. * @param sb The StringBuffer to append to. * @param pos The desired FieldPosition, which is also ! * updated by this call. * * @return The updated StringBuffer. * * @exception IllegalArgumentException If the Object ! * cannot be formatted. */ public abstract StringBuffer format (Object obj, StringBuffer sb, ! FieldPosition pos) throws IllegalArgumentException; /** ! * This method parses a String and converts the parsed * contents into an Object. * * @param str The String to parse. *************** public abstract class Format implements *** 136,156 **** Object result = parseObject (str, pos); if (result == null) { ! int index = pos.getErrorIndex(); ! if (index < 0) ! index = pos.getIndex(); ! throw new ParseException("parseObject failed", index); } return result; } /** * This method parses a String and converts the parsed ! * contents into an Object. * * @param str The String to parse. * @param pos The starting parse index on input, the ending parse ! * index on output. * * @return The parsed Object, or null in * case of error. --- 136,156 ---- Object result = parseObject (str, pos); if (result == null) { ! int index = pos.getErrorIndex(); ! if (index < 0) ! index = pos.getIndex(); ! throw new ParseException("parseObject failed", index); } return result; } /** * This method parses a String and converts the parsed ! * contents into an Object. * * @param str The String to parse. * @param pos The starting parse index on input, the ending parse ! * index on output. * * @return The parsed Object, or null in * case of error. *************** public abstract class Format implements *** 171,181 **** { try { ! return super.clone (); } catch (CloneNotSupportedException e) { ! return null; } } } --- 171,181 ---- { try { ! return super.clone (); } catch (CloneNotSupportedException e) { ! return null; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/MessageFormat.java gcc-4.6.0/libjava/classpath/java/text/MessageFormat.java *** gcc-4.5.2/libjava/classpath/java/text/MessageFormat.java Tue Jan 6 22:44:05 2009 --- gcc-4.6.0/libjava/classpath/java/text/MessageFormat.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class MessageFormat extends Forma *** 99,105 **** else if (style.equals("percent")) format = NumberFormat.getPercentInstance(loc); else if (style.equals("integer")) ! format = NumberFormat.getIntegerInstance(loc); else { format = NumberFormat.getNumberInstance(loc); --- 99,105 ---- else if (style.equals("percent")) format = NumberFormat.getPercentInstance(loc); else if (style.equals("integer")) ! format = NumberFormat.getIntegerInstance(loc); else { format = NumberFormat.getNumberInstance(loc); *************** public class MessageFormat extends Forma *** 126,132 **** else styleIsPattern = true; } ! if (type.equals("time")) format = DateFormat.getTimeInstance(val, loc); else --- 126,132 ---- else styleIsPattern = true; } ! if (type.equals("time")) format = DateFormat.getTimeInstance(val, loc); else *************** public class MessageFormat extends Forma *** 169,175 **** { super(""); } ! protected Field(String s) { super(s); --- 169,175 ---- { super(""); } ! protected Field(String s) { super(s); *************** public class MessageFormat extends Forma *** 184,190 **** protected Object readResolve() throws InvalidObjectException { if (getName().equals(ARGUMENT.getName())) ! return ARGUMENT; throw new InvalidObjectException("no such MessageFormat field called " + getName()); } --- 184,190 ---- protected Object readResolve() throws InvalidObjectException { if (getName().equals(ARGUMENT.getName())) ! return ARGUMENT; throw new InvalidObjectException("no such MessageFormat field called " + getName()); } *************** public class MessageFormat extends Forma *** 201,230 **** boolean quoted = false; for (; index < max; ++index) { ! char c = pat.charAt(index); ! if (quoted) ! { ! // In a quoted context, a single quote ends the quoting. ! if (c == '\'') ! quoted = false; ! else ! buffer.append(c); ! } ! // Check for '', which is a single quote. ! else if (c == '\'' && index + 1 < max && pat.charAt(index + 1) == '\'') ! { ! buffer.append(c); ! ++index; ! } ! else if (c == '\'') ! { ! // Start quoting. ! quoted = true; ! } ! else if (c == '{') ! break; ! else ! buffer.append(c); } // Note that we explicitly allow an unterminated quote. This is // done for compatibility. --- 201,230 ---- boolean quoted = false; for (; index < max; ++index) { ! char c = pat.charAt(index); ! if (quoted) ! { ! // In a quoted context, a single quote ends the quoting. ! if (c == '\'') ! quoted = false; ! else ! buffer.append(c); ! } ! // Check for '', which is a single quote. ! else if (c == '\'' && index + 1 < max && pat.charAt(index + 1) == '\'') ! { ! buffer.append(c); ! ++index; ! } ! else if (c == '\'') ! { ! // Start quoting. ! quoted = true; ! } ! else if (c == '{') ! break; ! else ! buffer.append(c); } // Note that we explicitly allow an unterminated quote. This is // done for compatibility. *************** public class MessageFormat extends Forma *** 243,280 **** for (; index < max; ++index) { ! char c = pat.charAt(index); ! // First see if we should turn off quoting. ! if (quoted) ! { ! if (c == '\'') ! quoted = false; ! // In both cases we fall through to inserting the ! // character here. ! } ! // See if we have just a plain quote to insert. ! else if (c == '\'' && index + 1 < max ! && pat.charAt(index + 1) == '\'') ! { ! buffer.append(c); ! ++index; ! } ! // See if quoting should turn on. ! else if (c == '\'') ! quoted = true; ! else if (c == '{') ! ++brace_depth; ! else if (c == '}') ! { ! if (--brace_depth == 0) ! break; ! } ! // Check for TERM after braces, because TERM might be `}'. ! else if (c == term) ! break; ! // All characters, including opening and closing quotes, are ! // inserted here. ! buffer.append(c); } return index; } --- 243,280 ---- for (; index < max; ++index) { ! char c = pat.charAt(index); ! // First see if we should turn off quoting. ! if (quoted) ! { ! if (c == '\'') ! quoted = false; ! // In both cases we fall through to inserting the ! // character here. ! } ! // See if we have just a plain quote to insert. ! else if (c == '\'' && index + 1 < max ! && pat.charAt(index + 1) == '\'') ! { ! buffer.append(c); ! ++index; ! } ! // See if quoting should turn on. ! else if (c == '\'') ! quoted = true; ! else if (c == '{') ! ++brace_depth; ! else if (c == '}') ! { ! if (--brace_depth == 0) ! break; ! } ! // Check for TERM after braces, because TERM might be `}'. ! else if (c == term) ! break; ! // All characters, including opening and closing quotes, are ! // inserted here. ! buffer.append(c); } return index; } *************** public class MessageFormat extends Forma *** 296,322 **** index = scanFormatElement (pat, index, buffer, ','); try { ! mfe.argNumber = Integer.parseInt(buffer.toString()); } catch (NumberFormatException nfx) { ! IllegalArgumentException iae = new IllegalArgumentException(pat); ! iae.initCause(nfx); ! throw iae; } // Extract the element format. if (index < max && pat.charAt(index) == ',') { ! index = scanFormatElement (pat, index + 1, buffer, ','); ! mfe.type = buffer.toString(); ! // Extract the style. ! if (index < max && pat.charAt(index) == ',') ! { ! index = scanFormatElement (pat, index + 1, buffer, '}'); ! mfe.style = buffer.toString (); ! } } // Advance past the last terminator. --- 296,322 ---- index = scanFormatElement (pat, index, buffer, ','); try { ! mfe.argNumber = Integer.parseInt(buffer.toString()); } catch (NumberFormatException nfx) { ! IllegalArgumentException iae = new IllegalArgumentException(pat); ! iae.initCause(nfx); ! throw iae; } // Extract the element format. if (index < max && pat.charAt(index) == ',') { ! index = scanFormatElement (pat, index + 1, buffer, ','); ! mfe.type = buffer.toString(); ! // Extract the style. ! if (index < max && pat.charAt(index) == ',') ! { ! index = scanFormatElement (pat, index + 1, buffer, '}'); ! mfe.style = buffer.toString (); ! } } // Advance past the last terminator. *************** public class MessageFormat extends Forma *** 373,379 **** return false; MessageFormat mf = (MessageFormat) obj; return (pattern.equals(mf.pattern) ! && locale.equals(mf.locale)); } /** --- 373,379 ---- return false; MessageFormat mf = (MessageFormat) obj; return (pattern.equals(mf.pattern) ! && locale.equals(mf.locale)); } /** *************** public class MessageFormat extends Forma *** 385,393 **** { Object[] arguments_array = (Object[])arguments; FormatCharacterIterator iterator = new FormatCharacterIterator(); ! formatInternal(arguments_array, new StringBuffer(), null, iterator); ! return iterator; } --- 385,393 ---- { Object[] arguments_array = (Object[])arguments; FormatCharacterIterator iterator = new FormatCharacterIterator(); ! formatInternal(arguments_array, new StringBuffer(), null, iterator); ! return iterator; } *************** public class MessageFormat extends Forma *** 413,427 **** * @param fp A FieldPosition object (it is ignored). */ public final StringBuffer format (Object arguments[], StringBuffer appendBuf, ! FieldPosition fp) { return formatInternal(arguments, appendBuf, fp, null); } private StringBuffer formatInternal (Object arguments[], StringBuffer appendBuf, ! FieldPosition fp, ! FormatCharacterIterator output_iterator) { appendBuf.append(leader); if (output_iterator != null) --- 413,427 ---- * @param fp A FieldPosition object (it is ignored). */ public final StringBuffer format (Object arguments[], StringBuffer appendBuf, ! FieldPosition fp) { return formatInternal(arguments, appendBuf, fp, null); } private StringBuffer formatInternal (Object arguments[], StringBuffer appendBuf, ! FieldPosition fp, ! FormatCharacterIterator output_iterator) { appendBuf.append(leader); if (output_iterator != null) *************** public class MessageFormat extends Forma *** 429,521 **** for (int i = 0; i < elements.length; ++i) { ! Object thisArg = null; ! boolean unavailable = false; ! if (arguments == null || elements[i].argNumber >= arguments.length) ! unavailable = true; ! else ! thisArg = arguments[elements[i].argNumber]; ! AttributedCharacterIterator iterator = null; ! Format formatter = null; ! if (fp != null && i == fp.getField() && fp.getFieldAttribute() == Field.ARGUMENT) ! fp.setBeginIndex(appendBuf.length()); ! if (unavailable) ! appendBuf.append("{" + elements[i].argNumber + "}"); ! else ! { ! if (elements[i].setFormat != null) ! formatter = elements[i].setFormat; ! else if (elements[i].format != null) ! { ! if (elements[i].formatClass != null ! && ! elements[i].formatClass.isInstance(thisArg)) ! throw new IllegalArgumentException("Wrong format class"); ! ! formatter = elements[i].format; ! } ! else if (thisArg instanceof Number) ! formatter = NumberFormat.getInstance(locale); ! else if (thisArg instanceof Date) ! formatter = DateFormat.getTimeInstance(DateFormat.DEFAULT, locale); ! else ! appendBuf.append(thisArg); ! } ! if (fp != null && fp.getField() == i && fp.getFieldAttribute() == Field.ARGUMENT) ! fp.setEndIndex(appendBuf.length()); ! if (formatter != null) ! { ! // Special-case ChoiceFormat. ! if (formatter instanceof ChoiceFormat) ! { ! StringBuffer buf = new StringBuffer (); ! formatter.format(thisArg, buf, fp); ! MessageFormat mf = new MessageFormat (); ! mf.setLocale(locale); ! mf.applyPattern(buf.toString()); ! mf.format(arguments, appendBuf, fp); ! } ! else ! { ! if (output_iterator != null) ! iterator = formatter.formatToCharacterIterator(thisArg); ! else ! formatter.format(thisArg, appendBuf, fp); ! } ! elements[i].format = formatter; ! } ! if (output_iterator != null) ! { ! HashMap hash_argument = ! new HashMap(); ! int position = output_iterator.getEndIndex(); ! ! hash_argument.put (MessageFormat.Field.ARGUMENT, ! Integer.valueOf(elements[i].argNumber)); ! ! if (iterator != null) ! { ! output_iterator.append(iterator); ! output_iterator.addAttributes(hash_argument, position, ! output_iterator.getEndIndex()); ! } ! else ! output_iterator.append(thisArg.toString(), hash_argument); ! ! output_iterator.append(elements[i].trailer); ! } ! ! appendBuf.append(elements[i].trailer); } ! return appendBuf; } --- 429,521 ---- for (int i = 0; i < elements.length; ++i) { ! Object thisArg = null; ! boolean unavailable = false; ! if (arguments == null || elements[i].argNumber >= arguments.length) ! unavailable = true; ! else ! thisArg = arguments[elements[i].argNumber]; ! AttributedCharacterIterator iterator = null; ! Format formatter = null; ! if (fp != null && i == fp.getField() && fp.getFieldAttribute() == Field.ARGUMENT) ! fp.setBeginIndex(appendBuf.length()); ! if (unavailable) ! appendBuf.append("{" + elements[i].argNumber + "}"); ! else ! { ! if (elements[i].setFormat != null) ! formatter = elements[i].setFormat; ! else if (elements[i].format != null) ! { ! if (elements[i].formatClass != null ! && ! elements[i].formatClass.isInstance(thisArg)) ! throw new IllegalArgumentException("Wrong format class"); ! formatter = elements[i].format; ! } ! else if (thisArg instanceof Number) ! formatter = NumberFormat.getInstance(locale); ! else if (thisArg instanceof Date) ! formatter = DateFormat.getTimeInstance(DateFormat.DEFAULT, locale); ! else ! appendBuf.append(thisArg); ! } ! if (fp != null && fp.getField() == i && fp.getFieldAttribute() == Field.ARGUMENT) ! fp.setEndIndex(appendBuf.length()); ! if (formatter != null) ! { ! // Special-case ChoiceFormat. ! if (formatter instanceof ChoiceFormat) ! { ! StringBuffer buf = new StringBuffer (); ! formatter.format(thisArg, buf, fp); ! MessageFormat mf = new MessageFormat (); ! mf.setLocale(locale); ! mf.applyPattern(buf.toString()); ! mf.format(arguments, appendBuf, fp); ! } ! else ! { ! if (output_iterator != null) ! iterator = formatter.formatToCharacterIterator(thisArg); ! else ! formatter.format(thisArg, appendBuf, fp); ! } ! elements[i].format = formatter; ! } ! if (output_iterator != null) ! { ! HashMap hash_argument = ! new HashMap(); ! int position = output_iterator.getEndIndex(); ! ! hash_argument.put (MessageFormat.Field.ARGUMENT, ! Integer.valueOf(elements[i].argNumber)); ! ! ! if (iterator != null) ! { ! output_iterator.append(iterator); ! output_iterator.addAttributes(hash_argument, position, ! output_iterator.getEndIndex()); ! } ! else ! output_iterator.append(thisArg.toString(), hash_argument); ! ! output_iterator.append(elements[i].trailer); ! } ! ! appendBuf.append(elements[i].trailer); } ! return appendBuf; } *************** public class MessageFormat extends Forma *** 529,535 **** * @param fpos A FieldPosition object (it is ignored). */ public final StringBuffer format (Object objectArray, StringBuffer appendBuf, ! FieldPosition fpos) { return format ((Object[])objectArray, appendBuf, fpos); } --- 529,535 ---- * @param fpos A FieldPosition object (it is ignored). */ public final StringBuffer format (Object objectArray, StringBuffer appendBuf, ! FieldPosition fpos) { return format ((Object[])objectArray, appendBuf, fpos); } *************** public class MessageFormat extends Forma *** 601,615 **** * @param pos the current parse position (and eventually the error position). * @return the array of parsed objects sorted according to their argument number * in the pattern. ! */ public Object[] parse (String sourceStr, ParsePosition pos) { // Check initial text. int index = pos.getIndex(); if (! sourceStr.startsWith(leader, index)) { ! pos.setErrorIndex(index); ! return null; } index += leader.length(); --- 601,615 ---- * @param pos the current parse position (and eventually the error position). * @return the array of parsed objects sorted according to their argument number * in the pattern. ! */ public Object[] parse (String sourceStr, ParsePosition pos) { // Check initial text. int index = pos.getIndex(); if (! sourceStr.startsWith(leader, index)) { ! pos.setErrorIndex(index); ! return null; } index += leader.length(); *************** public class MessageFormat extends Forma *** 617,695 **** // Now check each format. for (int i = 0; i < elements.length; ++i) { ! Format formatter = null; ! if (elements[i].setFormat != null) ! formatter = elements[i].setFormat; ! else if (elements[i].format != null) ! formatter = elements[i].format; ! Object value = null; ! if (formatter instanceof ChoiceFormat) ! { ! // We must special-case a ChoiceFormat because it might ! // have recursive formatting. ! ChoiceFormat cf = (ChoiceFormat) formatter; ! String[] formats = (String[]) cf.getFormats(); ! double[] limits = cf.getLimits(); ! MessageFormat subfmt = new MessageFormat (); ! subfmt.setLocale(locale); ! ParsePosition subpos = new ParsePosition (index); ! int j; ! for (j = 0; value == null && j < limits.length; ++j) ! { ! subfmt.applyPattern(formats[j]); ! subpos.setIndex(index); ! value = subfmt.parse(sourceStr, subpos); ! } ! if (value != null) ! { ! index = subpos.getIndex(); ! value = new Double (limits[j]); ! } ! } ! else if (formatter != null) ! { ! pos.setIndex(index); ! value = formatter.parseObject(sourceStr, pos); ! if (value != null) ! index = pos.getIndex(); ! } ! else ! { ! // We have a String format. This can lose in a number ! // of ways, but we give it a shot. ! int next_index; ! if (elements[i].trailer.length() > 0) ! next_index = sourceStr.indexOf(elements[i].trailer, index); ! else ! next_index = sourceStr.length(); ! if (next_index == -1) ! { ! pos.setErrorIndex(index); ! return null; ! } ! value = sourceStr.substring(index, next_index); ! index = next_index; ! } ! if (value == null ! || ! sourceStr.startsWith(elements[i].trailer, index)) ! { ! pos.setErrorIndex(index); ! return null; ! } ! if (elements[i].argNumber >= results.size()) ! { ! // Emulate padding behaviour of Vector.setSize() with ArrayList ! results.ensureCapacity(elements[i].argNumber + 1); ! for (int a = results.size(); a <= elements[i].argNumber; ++a) ! results.add(a, null); ! } ! results.set(elements[i].argNumber, value); ! index += elements[i].trailer.length(); } return results.toArray(new Object[results.size()]); --- 617,695 ---- // Now check each format. for (int i = 0; i < elements.length; ++i) { ! Format formatter = null; ! if (elements[i].setFormat != null) ! formatter = elements[i].setFormat; ! else if (elements[i].format != null) ! formatter = elements[i].format; ! Object value = null; ! if (formatter instanceof ChoiceFormat) ! { ! // We must special-case a ChoiceFormat because it might ! // have recursive formatting. ! ChoiceFormat cf = (ChoiceFormat) formatter; ! String[] formats = (String[]) cf.getFormats(); ! double[] limits = cf.getLimits(); ! MessageFormat subfmt = new MessageFormat (); ! subfmt.setLocale(locale); ! ParsePosition subpos = new ParsePosition (index); ! int j; ! for (j = 0; value == null && j < limits.length; ++j) ! { ! subfmt.applyPattern(formats[j]); ! subpos.setIndex(index); ! value = subfmt.parse(sourceStr, subpos); ! } ! if (value != null) ! { ! index = subpos.getIndex(); ! value = new Double (limits[j]); ! } ! } ! else if (formatter != null) ! { ! pos.setIndex(index); ! value = formatter.parseObject(sourceStr, pos); ! if (value != null) ! index = pos.getIndex(); ! } ! else ! { ! // We have a String format. This can lose in a number ! // of ways, but we give it a shot. ! int next_index; ! if (elements[i].trailer.length() > 0) ! next_index = sourceStr.indexOf(elements[i].trailer, index); ! else ! next_index = sourceStr.length(); ! if (next_index == -1) ! { ! pos.setErrorIndex(index); ! return null; ! } ! value = sourceStr.substring(index, next_index); ! index = next_index; ! } ! if (value == null ! || ! sourceStr.startsWith(elements[i].trailer, index)) ! { ! pos.setErrorIndex(index); ! return null; ! } ! if (elements[i].argNumber >= results.size()) ! { ! // Emulate padding behaviour of Vector.setSize() with ArrayList ! results.ensureCapacity(elements[i].argNumber + 1); ! for (int a = results.size(); a <= elements[i].argNumber; ++a) ! results.add(a, null); ! } ! results.set(elements[i].argNumber, value); ! index += elements[i].trailer.length(); } return results.toArray(new Object[results.size()]); *************** public class MessageFormat extends Forma *** 746,753 **** locale = loc; if (elements != null) { ! for (int i = 0; i < elements.length; ++i) ! elements[i].setLocale(loc); } } --- 746,753 ---- locale = loc; if (elements != null) { ! for (int i = 0; i < elements.length; ++i) ! elements[i].setLocale(loc); } } *************** public class MessageFormat extends Forma *** 777,791 **** // First, find the greatest argument number. for (int i=0;i argNumMax) ! argNumMax = elements[i].argNumber; Format[] formats = new Format[argNumMax]; for (int i=0;i argNumMax) ! argNumMax = elements[i].argNumber; Format[] formats = new Format[argNumMax]; for (int i=0;i * To create an instance of a concrete subclass of NumberFormat, * do not call a class constructor directly. Instead, use one of the ! * static factory methods in this class such as * getCurrencyInstance. ! * * @author Tom Tromey (tromey@cygnus.com) * @author Aaron M. Renn (arenn@urbanophile.com) * @date March 4, 1999 --- 63,71 ---- *

                    * To create an instance of a concrete subclass of NumberFormat, * do not call a class constructor directly. Instead, use one of the ! * static factory methods in this class such as * getCurrencyInstance. ! * * @author Tom Tromey (tromey@cygnus.com) * @author Aaron M. Renn (arenn@urbanophile.com) * @date March 4, 1999 *************** public abstract class NumberFormat exten *** 195,201 **** /** * This function is used by the deserializer to know which object ! * to use when it encounters an encoded NumberFormat.Field in a * serialization stream. If the stream is valid it should return * one of the above field. In the other case we throw an exception. * --- 195,201 ---- /** * This function is used by the deserializer to know which object ! * to use when it encounters an encoded NumberFormat.Field in a * serialization stream. If the stream is valid it should return * one of the above field. In the other case we throw an exception. * *************** public abstract class NumberFormat exten *** 207,217 **** { String s = getName(); for (int i = 0; i < allFields.length; i++) ! if (s.equals(allFields[i].getName())) ! return allFields[i]; throw new InvalidObjectException("no such NumberFormat field called " ! + s); } } --- 207,217 ---- { String s = getName(); for (int i = 0; i < allFields.length; i++) ! if (s.equals(allFields[i].getName())) ! return allFields[i]; throw new InvalidObjectException("no such NumberFormat field called " ! + s); } } *************** public abstract class NumberFormat exten *** 238,244 **** { if (obj instanceof Number) return format(((Number) obj).doubleValue(), sbuf, pos); ! throw new IllegalArgumentException("Cannot format given Object as a Number"); } --- 238,244 ---- { if (obj instanceof Number) return format(((Number) obj).doubleValue(), sbuf, pos); ! throw new IllegalArgumentException("Cannot format given Object as a Number"); } *************** public abstract class NumberFormat exten *** 246,275 **** /** * This method formats the specified double and appends it to * a StringBuffer. ! * * @param number The double to format. ! * @param sbuf The StringBuffer to append the formatted number * to. * @param pos The desired FieldPosition. * * @return The StringBuffer with the appended number. */ public abstract StringBuffer format (double number, ! StringBuffer sbuf, FieldPosition pos); /** * This method formats the specified long and appends it to * a StringBuffer. ! * * @param number The long to format. ! * @param sbuf The StringBuffer to append the formatted number * to. * @param pos The desired FieldPosition. * * @return The StringBuffer with the appended number. */ public abstract StringBuffer format (long number, ! StringBuffer sbuf, FieldPosition pos); /** * This method tests the specified object for equality against this object. --- 246,275 ---- /** * This method formats the specified double and appends it to * a StringBuffer. ! * * @param number The double to format. ! * @param sbuf The StringBuffer to append the formatted number * to. * @param pos The desired FieldPosition. * * @return The StringBuffer with the appended number. */ public abstract StringBuffer format (double number, ! StringBuffer sbuf, FieldPosition pos); /** * This method formats the specified long and appends it to * a StringBuffer. ! * * @param number The long to format. ! * @param sbuf The StringBuffer to append the formatted number * to. * @param pos The desired FieldPosition. * * @return The StringBuffer with the appended number. */ public abstract StringBuffer format (long number, ! StringBuffer sbuf, FieldPosition pos); /** * This method tests the specified object for equality against this object. *************** public abstract class NumberFormat exten *** 280,293 **** *

                  47. The specified object is an instance of NumberFormat. * *

                    ! * Since this method does not test much, it is highly advised that * concrete subclasses override this method. * * @param obj The Object to test against equality with ! * this object. ! * * @return true if the specified object is equal to ! * this object, false otherwise. */ public boolean equals (Object obj) { --- 280,293 ---- *

                  48. The specified object is an instance of NumberFormat. * *

                    ! * Since this method does not test much, it is highly advised that * concrete subclasses override this method. * * @param obj The Object to test against equality with ! * this object. ! * * @return true if the specified object is equal to ! * this object, false otherwise. */ public boolean equals (Object obj) { *************** public abstract class NumberFormat exten *** 295,305 **** return false; NumberFormat nf = (NumberFormat) obj; return (groupingUsed == nf.groupingUsed ! && maximumFractionDigits == nf.maximumFractionDigits ! && maximumIntegerDigits == nf.maximumIntegerDigits ! && minimumFractionDigits == nf.minimumFractionDigits ! && minimumIntegerDigits == nf.minimumIntegerDigits ! && parseIntegerOnly == nf.parseIntegerOnly); } /** --- 295,305 ---- return false; NumberFormat nf = (NumberFormat) obj; return (groupingUsed == nf.groupingUsed ! && maximumFractionDigits == nf.maximumFractionDigits ! && maximumIntegerDigits == nf.maximumIntegerDigits ! && minimumFractionDigits == nf.minimumFractionDigits ! && minimumIntegerDigits == nf.minimumIntegerDigits ! && parseIntegerOnly == nf.parseIntegerOnly); } /** *************** public abstract class NumberFormat exten *** 320,337 **** throws MissingResourceException { if (loc.equals(Locale.ROOT)) ! return new DecimalFormat(def, DecimalFormatSymbols.getInstance(loc)); ResourceBundle res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); String fmt; try { ! fmt = res == null ? def : res.getString(resource); } catch (MissingResourceException x) { ! fmt = def; } DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(loc); return new DecimalFormat (fmt, dfs); --- 320,337 ---- throws MissingResourceException { if (loc.equals(Locale.ROOT)) ! return new DecimalFormat(def, DecimalFormatSymbols.getInstance(loc)); ResourceBundle res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! loc, ClassLoader.getSystemClassLoader()); String fmt; try { ! fmt = res == null ? def : res.getString(resource); } catch (MissingResourceException x) { ! fmt = def; } DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(loc); return new DecimalFormat (fmt, dfs); *************** public abstract class NumberFormat exten *** 358,393 **** { try { ! NumberFormat format; ! ! format = computeInstance (loc, "currencyFormat", ! "\u00A4#,##0.00;(\u00A4#,##0.00)"); ! format.setMaximumFractionDigits(format.getCurrency().getDefaultFractionDigits()); ! return format; } catch (MissingResourceException e) { ! for (NumberFormatProvider p : ! ServiceLoader.load(NumberFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! NumberFormat nf = p.getCurrencyInstance(loc); ! if (nf != null) ! return nf; ! break; ! } ! } ! } ! return getCurrencyInstance(LocaleHelper.getFallbackLocale(loc)); } } /** * This method returns a default instance for the default locale. This ! * will be a concrete subclass of NumberFormat, but the * actual class returned is dependent on the locale. * * @return An instance of the default NumberFormat class. --- 358,393 ---- { try { ! NumberFormat format; ! ! format = computeInstance (loc, "currencyFormat", ! "\u00A4#,##0.00;(\u00A4#,##0.00)"); ! format.setMaximumFractionDigits(format.getCurrency().getDefaultFractionDigits()); ! return format; } catch (MissingResourceException e) { ! for (NumberFormatProvider p : ! ServiceLoader.load(NumberFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! NumberFormat nf = p.getCurrencyInstance(loc); ! if (nf != null) ! return nf; ! break; ! } ! } ! } ! return getCurrencyInstance(LocaleHelper.getFallbackLocale(loc)); } } /** * This method returns a default instance for the default locale. This ! * will be a concrete subclass of NumberFormat, but the * actual class returned is dependent on the locale. * * @return An instance of the default NumberFormat class. *************** public abstract class NumberFormat exten *** 399,405 **** /** * This method returns a default instance for the specified locale. This ! * will be a concrete subclass of NumberFormat, but the * actual class returned is dependent on the locale. * * @param loc The desired locale. --- 399,405 ---- /** * This method returns a default instance for the specified locale. This ! * will be a concrete subclass of NumberFormat, but the * actual class returned is dependent on the locale. * * @param loc The desired locale. *************** public abstract class NumberFormat exten *** 417,423 **** * portion of a number. * * @return The maximum number of digits allowed in the fraction ! * portion of a number. */ public int getMaximumFractionDigits () { --- 417,423 ---- * portion of a number. * * @return The maximum number of digits allowed in the fraction ! * portion of a number. */ public int getMaximumFractionDigits () { *************** public abstract class NumberFormat exten *** 429,435 **** * portion of a number. * * @return The maximum number of digits allowed in the integer ! * portion of a number. */ public int getMaximumIntegerDigits () { --- 429,435 ---- * portion of a number. * * @return The maximum number of digits allowed in the integer ! * portion of a number. */ public int getMaximumIntegerDigits () { *************** public abstract class NumberFormat exten *** 441,447 **** * portion of a number. * * @return The minimum number of digits allowed in the fraction ! * portion of a number. */ public int getMinimumFractionDigits () { --- 441,447 ---- * portion of a number. * * @return The minimum number of digits allowed in the fraction ! * portion of a number. */ public int getMinimumFractionDigits () { *************** public abstract class NumberFormat exten *** 453,459 **** * portion of a number. * * @return The minimum number of digits allowed in the integer ! * portion of a number. */ public int getMinimumIntegerDigits () { --- 453,459 ---- * portion of a number. * * @return The minimum number of digits allowed in the integer ! * portion of a number. */ public int getMinimumIntegerDigits () { *************** public abstract class NumberFormat exten *** 462,468 **** /** * This method returns a default instance for the specified locale. This ! * will be a concrete subclass of NumberFormat, but the * actual class returned is dependent on the locale. * * @return An instance of the default NumberFormat class. --- 462,468 ---- /** * This method returns a default instance for the specified locale. This ! * will be a concrete subclass of NumberFormat, but the * actual class returned is dependent on the locale. * * @return An instance of the default NumberFormat class. *************** public abstract class NumberFormat exten *** 484,508 **** { try { ! return computeInstance (loc, "numberFormat", "#,##0.###"); } catch (MissingResourceException e) { ! for (NumberFormatProvider p : ! ServiceLoader.load(NumberFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! NumberFormat nf = p.getNumberInstance(loc); ! if (nf != null) ! return nf; ! break; ! } ! } ! } ! return getNumberInstance(LocaleHelper.getFallbackLocale(loc)); } } --- 484,508 ---- { try { ! return computeInstance (loc, "numberFormat", "#,##0.###"); } catch (MissingResourceException e) { ! for (NumberFormatProvider p : ! ServiceLoader.load(NumberFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! NumberFormat nf = p.getNumberInstance(loc); ! if (nf != null) ! return nf; ! break; ! } ! } ! } ! return getNumberInstance(LocaleHelper.getFallbackLocale(loc)); } } *************** public abstract class NumberFormat exten *** 512,518 **** * but the actual class returned is dependent on the locale. * * @return An instance of an integer number formatter for the default locale. ! * @since 1.4 */ public static final NumberFormat getIntegerInstance() { --- 512,518 ---- * but the actual class returned is dependent on the locale. * * @return An instance of an integer number formatter for the default locale. ! * @since 1.4 */ public static final NumberFormat getIntegerInstance() { *************** public abstract class NumberFormat exten *** 527,561 **** * @param locale the desired locale. * * @return An instance of an integer number formatter for the desired locale. ! * @since 1.4 */ public static NumberFormat getIntegerInstance(Locale locale) { try { ! NumberFormat format = computeInstance (locale, ! "integerFormat", "#,##0"); ! format.setMaximumFractionDigits(0); ! format.setParseIntegerOnly (true); ! return format; } catch (MissingResourceException e) { ! for (NumberFormatProvider p : ! ServiceLoader.load(NumberFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(locale)) ! { ! NumberFormat nf = p.getIntegerInstance(locale); ! if (nf != null) ! return nf; ! break; ! } ! } ! } ! return getIntegerInstance(LocaleHelper.getFallbackLocale(locale)); } } --- 527,561 ---- * @param locale the desired locale. * * @return An instance of an integer number formatter for the desired locale. ! * @since 1.4 */ public static NumberFormat getIntegerInstance(Locale locale) { try { ! NumberFormat format = computeInstance (locale, ! "integerFormat", "#,##0"); ! format.setMaximumFractionDigits(0); ! format.setParseIntegerOnly (true); ! return format; } catch (MissingResourceException e) { ! for (NumberFormatProvider p : ! ServiceLoader.load(NumberFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(locale)) ! { ! NumberFormat nf = p.getIntegerInstance(locale); ! if (nf != null) ! return nf; ! break; ! } ! } ! } ! return getIntegerInstance(LocaleHelper.getFallbackLocale(locale)); } } *************** public abstract class NumberFormat exten *** 582,606 **** { try { ! return computeInstance (loc, "percentFormat", "#,##0%"); } catch (MissingResourceException e) { ! for (NumberFormatProvider p : ! ServiceLoader.load(NumberFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! NumberFormat nf = p.getPercentInstance(loc); ! if (nf != null) ! return nf; ! break; ! } ! } ! } ! return getPercentInstance(LocaleHelper.getFallbackLocale(loc)); } } --- 582,606 ---- { try { ! return computeInstance (loc, "percentFormat", "#,##0%"); } catch (MissingResourceException e) { ! for (NumberFormatProvider p : ! ServiceLoader.load(NumberFormatProvider.class)) ! { ! for (Locale l : p.getAvailableLocales()) ! { ! if (l.equals(loc)) ! { ! NumberFormat nf = p.getPercentInstance(loc); ! if (nf != null) ! return nf; ! break; ! } ! } ! } ! return getPercentInstance(LocaleHelper.getFallbackLocale(loc)); } } *************** public abstract class NumberFormat exten *** 613,619 **** { int hash = super.hashCode(); hash ^= (maximumFractionDigits + maximumIntegerDigits ! + minimumFractionDigits + minimumIntegerDigits); if (groupingUsed) hash ^= 0xf0f0; if (parseIntegerOnly) --- 613,619 ---- { int hash = super.hashCode(); hash ^= (maximumFractionDigits + maximumIntegerDigits ! + minimumFractionDigits + minimumIntegerDigits); if (groupingUsed) hash ^= 0xf0f0; if (parseIntegerOnly) *************** public abstract class NumberFormat exten *** 631,637 **** * locale). * * @return true if grouping is enabled, ! * false otherwise. */ public boolean isGroupingUsed () { --- 631,637 ---- * locale). * * @return true if grouping is enabled, ! * false otherwise. */ public boolean isGroupingUsed () { *************** public abstract class NumberFormat exten *** 644,650 **** * point. * * @return true if only integers are parsed, ! * false otherwise. */ public boolean isParseIntegerOnly () { --- 644,650 ---- * point. * * @return true if only integers are parsed, ! * false otherwise. */ public boolean isParseIntegerOnly () { *************** public abstract class NumberFormat exten *** 689,698 **** Number r = parse (sourceStr, pp); if (r == null) { ! int index = pp.getErrorIndex(); ! if (index < 0) ! index = pp.getIndex(); ! throw new ParseException ("couldn't parse number", index); } return r; } --- 689,698 ---- Number r = parse (sourceStr, pp); if (r == null) { ! int index = pp.getErrorIndex(); ! if (index < 0) ! index = pp.getIndex(); ! throw new ParseException ("couldn't parse number", index); } return r; } *************** public abstract class NumberFormat exten *** 723,729 **** * locale). * * @param newValue true to enable grouping, ! * false to disable it. */ public void setGroupingUsed (boolean newValue) { --- 723,729 ---- * locale). * * @param newValue true to enable grouping, ! * false to disable it. */ public void setGroupingUsed (boolean newValue) { *************** public abstract class NumberFormat exten *** 790,801 **** setMaximumIntegerDigits (minimumIntegerDigits); } ! /** ! * This method sets the parsing behavior of this object to parse only * integers or not. * * @param value true to parse only integers, ! * false otherwise. */ public void setParseIntegerOnly (boolean value) { --- 790,801 ---- setMaximumIntegerDigits (minimumIntegerDigits); } ! /** ! * This method sets the parsing behavior of this object to parse only * integers or not. * * @param value true to parse only integers, ! * false otherwise. */ public void setParseIntegerOnly (boolean value) { *************** public abstract class NumberFormat exten *** 814,820 **** { StringBuffer sbuf = new StringBuffer(50); FieldPosition position = new FieldPosition(0); ! format (number, sbuf, position); return sbuf.toString(); } --- 814,820 ---- { StringBuffer sbuf = new StringBuffer(50); FieldPosition position = new FieldPosition(0); ! format (number, sbuf, position); return sbuf.toString(); } *************** public abstract class NumberFormat exten *** 840,849 **** if (serialVersionOnStream < 1) { maximumFractionDigits = maxFractionDigits; ! maximumIntegerDigits = maxIntegerDigits; ! minimumFractionDigits = minFractionDigits; ! minimumIntegerDigits = minIntegerDigits; ! serialVersionOnStream = 1; } } --- 840,849 ---- if (serialVersionOnStream < 1) { maximumFractionDigits = maxFractionDigits; ! maximumIntegerDigits = maxIntegerDigits; ! minimumFractionDigits = minFractionDigits; ! minimumIntegerDigits = minIntegerDigits; ! serialVersionOnStream = 1; } } *************** public abstract class NumberFormat exten *** 897,903 **** { if (currency == null) throw new NullPointerException("currency may not be null"); ! throw new UnsupportedOperationException(); } } --- 897,903 ---- { if (currency == null) throw new NullPointerException("currency may not be null"); ! throw new UnsupportedOperationException(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/ParsePosition.java gcc-4.6.0/libjava/classpath/java/text/ParsePosition.java *** gcc-4.5.2/libjava/classpath/java/text/ParsePosition.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/text/ParsePosition.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class ParsePosition *** 123,129 **** * * * @param obj The Object to test for equality against ! * this object. * * @return true if the specified object is equal to * this object, false otherwise. --- 123,129 ---- * * * @param obj The Object to test for equality against ! * this object. * * @return true if the specified object is equal to * this object, false otherwise. *************** public class ParsePosition *** 136,142 **** ParsePosition other = (ParsePosition) obj; return index == other.index && error_index == other.error_index; } ! /** * Return the hash code for this object. * @return the hash code --- 136,142 ---- ParsePosition other = (ParsePosition) obj; return index == other.index && error_index == other.error_index; } ! /** * Return the hash code for this object. * @return the hash code *************** public class ParsePosition *** 155,160 **** public String toString () { return (getClass ().getName () + "[index=" + getIndex () ! + ",errorIndex=" + getErrorIndex () + "]"); } } --- 155,160 ---- public String toString () { return (getClass ().getName () + "[index=" + getIndex () ! + ",errorIndex=" + getErrorIndex () + "]"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/RuleBasedCollator.java gcc-4.6.0/libjava/classpath/java/text/RuleBasedCollator.java *** gcc-4.5.2/libjava/classpath/java/text/RuleBasedCollator.java Tue Jan 6 22:44:05 2009 --- gcc-4.6.0/libjava/classpath/java/text/RuleBasedCollator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.HashMap; *** 66,72 **** * case with French. The modifier applies to all rules after * the modifier but before the next primary sequence. If placed at the end * of the sequence if applies to all unknown accented character. ! * The relational operators specify how the text * argument relates to the previous term. The relation characters have * the following meanings: *

                      --- 66,72 ---- * case with French. The modifier applies to all rules after * the modifier but before the next primary sequence. If placed at the end * of the sequence if applies to all unknown accented character. ! * The relational operators specify how the text * argument relates to the previous term. The relation characters have * the following meanings: *
                        *************** import java.util.HashMap; *** 81,89 **** *

                        * As for the text argument itself, this is any sequence of Unicode * characters not in the following ranges: 0x0009-0x000D, 0x0020-0x002F, ! * 0x003A-0x0040, 0x005B-0x0060, and 0x007B-0x007E. If these characters are ! * desired, they must be enclosed in single quotes. If any whitespace is ! * encountered, it is ignored. (For example, "a b" is equal to "ab"). *

                        * The reset operation inserts the following rule at the point where the * text argument to it exists in the previously declared rule string. This --- 81,89 ---- *

                        * As for the text argument itself, this is any sequence of Unicode * characters not in the following ranges: 0x0009-0x000D, 0x0020-0x002F, ! * 0x003A-0x0040, 0x005B-0x0060, and 0x007B-0x007E. If these characters are ! * desired, they must be enclosed in single quotes. If any whitespace is ! * encountered, it is ignored. (For example, "a b" is equal to "ab"). *

                        * The reset operation inserts the following rule at the point where the * text argument to it exists in the previously declared rule string. This *************** import java.util.HashMap; *** 91,97 **** * them in a reset sequence at the end. Note that the text argument, or * at least the first character of it, must be present somewhere in the * previously declared rules in order to be inserted properly. If this ! * is not satisfied, a ParseException will be thrown. *

                        * This system of configuring RuleBasedCollator is needlessly * complex and the people at Taligent who developed it (along with the folks --- 91,97 ---- * them in a reset sequence at the end. Note that the text argument, or * at least the first character of it, must be present somewhere in the * previously declared rules in order to be inserted properly. If this ! * is not satisfied, a ParseException will be thrown. *

                        * This system of configuring RuleBasedCollator is needlessly * complex and the people at Taligent who developed it (along with the folks *************** import java.util.HashMap; *** 100,106 **** *

                        * Here are a couple of example of rule strings: *

                        ! * "< a < b < c" - This string says that a is greater than b which is * greater than c, with all differences being primary differences. *

                        * "< a,A < b,B < c,C" - This string says that 'A' is greater than 'a' with --- 100,106 ---- *

                        * Here are a couple of example of rule strings: *

                        ! * "< a < b < c" - This string says that a is greater than b which is * greater than c, with all differences being primary differences. *

                        * "< a,A < b,B < c,C" - This string says that 'A' is greater than 'a' with *************** import java.util.HashMap; *** 108,114 **** * 'A' during a primary strength comparison. But 'B' is greater than 'b' * under a tertiary strength comparison. *

                        ! * "< a < c & a < b " - This sequence is identical in function to the * "< a < b < c" rule string above. The '&' reset symbol indicates that * the rule "< b" is to be inserted after the text argument "a" in the * previous rule string segment. --- 108,114 ---- * 'A' during a primary strength comparison. But 'B' is greater than 'b' * under a tertiary strength comparison. *

                        ! * "< a < c & a < b " - This sequence is identical in function to the * "< a < b < c" rule string above. The '&' reset symbol indicates that * the rule "< b" is to be inserted after the text argument "a" in the * previous rule string segment. *************** import java.util.HashMap; *** 125,131 **** *

                        * As an additional complication to this already overly complex rule scheme, * if any characters precede the first rule, these characters are considered ! * ignorable. They will be treated as if they did not exist during * comparisons. For example, "- < a < b ..." would make '-' an ignorable * character such that the strings "high-tech" and "hightech" would * be considered identical. --- 125,131 ---- *

                        * As an additional complication to this already overly complex rule scheme, * if any characters precede the first rule, these characters are considered ! * ignorable. They will be treated as if they did not exist during * comparisons. For example, "- < a < b ..." would make '-' an ignorable * character such that the strings "high-tech" and "hightech" would * be considered identical. *************** import java.util.HashMap; *** 146,152 **** public class RuleBasedCollator extends Collator { /** ! * This class describes what rank has a character (or a sequence of characters) * in the lexicographic order. Each element in a rule has a collation element. */ static final class CollationElement --- 146,152 ---- public class RuleBasedCollator extends Collator { /** ! * This class describes what rank has a character (or a sequence of characters) * in the lexicographic order. Each element in a rule has a collation element. */ static final class CollationElement *************** public class RuleBasedCollator extends C *** 160,166 **** final String expansion; CollationElement(String key, int primary, short secondary, short tertiary, ! short equality, String expansion, boolean ignore) { this.key = key; this.primary = primary; --- 160,166 ---- final String expansion; CollationElement(String key, int primary, short secondary, short tertiary, ! short equality, String expansion, boolean ignore) { this.key = key; this.primary = primary; *************** public class RuleBasedCollator extends C *** 193,199 **** static final int EQUAL = 3; static final int RESET = 4; static final int INVERSE_SECONDARY = 5; ! final int comparisonType; final String textElement; final int hashText; --- 193,199 ---- static final int EQUAL = 3; static final int RESET = 4; static final int INVERSE_SECONDARY = 5; ! final int comparisonType; final String textElement; final int hashText; *************** public class RuleBasedCollator extends C *** 203,209 **** String expansionOrdering; private CollationSorter(final int comparisonType, final String textElement, ! final int offset, final boolean ignore) { this.comparisonType = comparisonType; this.textElement = textElement; --- 203,209 ---- String expansionOrdering; private CollationSorter(final int comparisonType, final String textElement, ! final int offset, final boolean ignore) { this.comparisonType = comparisonType; this.textElement = textElement; *************** public class RuleBasedCollator extends C *** 254,263 **** * The JDK uses it to mark and sort the characters which has * no collation rules. */ ! static final CollationElement SPECIAL_UNKNOWN_SEQ = new CollationElement("", (short) 32767, (short) 0, (short) 0, ! (short) 0, null, false); ! /** * This method initializes a new instance of RuleBasedCollator * with the specified collation rules. Note that an application normally --- 254,263 ---- * The JDK uses it to mark and sort the characters which has * no collation rules. */ ! static final CollationElement SPECIAL_UNKNOWN_SEQ = new CollationElement("", (short) 32767, (short) 0, (short) 0, ! (short) 0, null, false); ! /** * This method initializes a new instance of RuleBasedCollator * with the specified collation rules. Note that an application normally *************** public class RuleBasedCollator extends C *** 273,279 **** { if (rules.equals("")) throw new ParseException("empty rule set", 0); ! this.rules = rules; buildCollationVector(parseString(rules)); --- 273,279 ---- { if (rules.equals("")) throw new ParseException("empty rule set", 0); ! this.rules = rules; buildCollationVector(parseString(rules)); *************** public class RuleBasedCollator extends C *** 296,303 **** for (index = 0; index < len && index < s.length(); ++index) { ! if (prefix.charAt(index) != s.charAt(index)) ! return index; } --- 296,303 ---- for (index = 0; index < len && index < s.length(); ++index) { ! if (prefix.charAt(index) != s.charAt(index)) ! return index; } *************** public class RuleBasedCollator extends C *** 317,361 **** * @throws ParseException if it is impossible to find an anchor point for the new rules. */ private void mergeRules(int offset, String starter, ArrayList main, ! ArrayList patch) ! throws ParseException { int insertion_point = -1; int max_length = 0; ! /* We must check that no rules conflict with another already present. If it ! * is the case delete the old rule. */ ! /* For the moment good old O(N^2) algorithm. */ for (int i = 0; i < patch.size(); i++) { ! int j = 0; ! ! while (j < main.size()) ! { ! CollationSorter rule1 = patch.get(i); ! CollationSorter rule2 = main.get(j); ! ! if (rule1.textElement.equals(rule2.textElement)) ! main.remove(j); ! else ! j++; ! } } // Find the insertion point... O(N) for (int i = 0; i < main.size(); i++) { ! CollationSorter sorter = main.get(i); ! int length = findPrefixLength(starter, sorter.textElement); ! ! if (length > max_length) ! { ! max_length = length; ! insertion_point = i+1; ! } } if (insertion_point < 0) --- 317,361 ---- * @throws ParseException if it is impossible to find an anchor point for the new rules. */ private void mergeRules(int offset, String starter, ArrayList main, ! ArrayList patch) ! throws ParseException { int insertion_point = -1; int max_length = 0; ! /* We must check that no rules conflict with another already present. If it ! * is the case delete the old rule. */ ! /* For the moment good old O(N^2) algorithm. */ for (int i = 0; i < patch.size(); i++) { ! int j = 0; ! ! while (j < main.size()) ! { ! CollationSorter rule1 = patch.get(i); ! CollationSorter rule2 = main.get(j); ! ! if (rule1.textElement.equals(rule2.textElement)) ! main.remove(j); ! else ! j++; ! } } // Find the insertion point... O(N) for (int i = 0; i < main.size(); i++) { ! CollationSorter sorter = main.get(i); ! int length = findPrefixLength(starter, sorter.textElement); ! ! if (length > max_length) ! { ! max_length = length; ! insertion_point = i+1; ! } } if (insertion_point < 0) *************** public class RuleBasedCollator extends C *** 363,390 **** if (max_length < starter.length()) { ! /* ! * We need to expand the first entry. It must be sorted ! * like if it was the reference key itself (like the spec ! * said. So the first entry is special: the element is ! * replaced by the specified text element for the sorting. ! * This text replace the old one for comparisons. However ! * to preserve the behaviour we replace the first key (corresponding ! * to the found prefix) by a new code rightly ordered in the ! * sequence. The rest of the subsequence must be appended ! * to the end of the sequence. ! */ ! CollationSorter sorter = patch.get(0); ! ! sorter.expansionOrdering = starter.substring(max_length); // Skip the first good prefix element ! ! main.add(insertion_point, sorter); ! ! /* ! * This is a new set of rules. Append to the list. ! */ ! patch.remove(0); ! insertion_point++; } // Now insert all elements of patch at the insertion point. --- 363,390 ---- if (max_length < starter.length()) { ! /* ! * We need to expand the first entry. It must be sorted ! * like if it was the reference key itself (like the spec ! * said. So the first entry is special: the element is ! * replaced by the specified text element for the sorting. ! * This text replace the old one for comparisons. However ! * to preserve the behaviour we replace the first key (corresponding ! * to the found prefix) by a new code rightly ordered in the ! * sequence. The rest of the subsequence must be appended ! * to the end of the sequence. ! */ ! CollationSorter sorter = patch.get(0); ! ! sorter.expansionOrdering = starter.substring(max_length); // Skip the first good prefix element ! ! main.add(insertion_point, sorter); ! ! /* ! * This is a new set of rules. Append to the list. ! */ ! patch.remove(0); ! insertion_point++; } // Now insert all elements of patch at the insertion point. *************** public class RuleBasedCollator extends C *** 395,401 **** /** * This method parses a string and build a set of sorting instructions. The parsing * may only be partial on the case the rules are to be merged sometime later. ! * * @param stop_on_reset If this parameter is true then the parser stops when it * encounters a reset instruction. In the other case, it tries to parse the subrules * and merged it in the same repository. --- 395,401 ---- /** * This method parses a string and build a set of sorting instructions. The parsing * may only be partial on the case the rules are to be merged sometime later. ! * * @param stop_on_reset If this parameter is true then the parser stops when it * encounters a reset instruction. In the other case, it tries to parse the subrules * and merged it in the same repository. *************** public class RuleBasedCollator extends C *** 403,414 **** * @param base_offset Offset in the string to begin parsing. * @param rules Rules to be parsed. * @return -1 if the parser reached the end of the string, an integer representing the ! * offset in the string at which it stopped parsing. * @throws ParseException if something turned wrong during the parsing. To get details * decode the message. */ private int subParseString(boolean stop_on_reset, ArrayList v, ! int base_offset, String rules) throws ParseException { boolean ignoreChars = (base_offset == 0); --- 403,414 ---- * @param base_offset Offset in the string to begin parsing. * @param rules Rules to be parsed. * @return -1 if the parser reached the end of the string, an integer representing the ! * offset in the string at which it stopped parsing. * @throws ParseException if something turned wrong during the parsing. To get details * decode the message. */ private int subParseString(boolean stop_on_reset, ArrayList v, ! int base_offset, String rules) throws ParseException { boolean ignoreChars = (base_offset == 0); *************** public class RuleBasedCollator extends C *** 419,573 **** boolean nextIsModifier = false; boolean isModifier = false; int i; ! main_parse_loop: for (i = 0; i < rules.length(); i++) { ! char c = rules.charAt(i); ! int type = -1; ! ! if (!eatingChars && ! ((c >= 0x09 && c <= 0x0D) || (c == 0x20))) ! continue; ! isModifier = nextIsModifier; ! nextIsModifier = false; ! if (eatingChars && c != '\'') ! { ! doubleQuote = false; ! sb.append(c); ! continue; ! } ! if (doubleQuote && eatingChars) ! { ! sb.append(c); ! doubleQuote = false; ! continue; ! } ! switch (c) ! { ! case '!': ! throw new ParseException ! ("Modifier '!' is not yet supported by Classpath", i + base_offset); ! case '<': ! type = CollationSorter.GREATERP; ! break; ! case ';': ! type = CollationSorter.GREATERS; ! break; ! case ',': ! type = CollationSorter.GREATERT; ! break; ! case '=': ! type = CollationSorter.EQUAL; ! break; ! case '\'': ! eatingChars = !eatingChars; ! doubleQuote = true; ! break; ! case '@': ! if (ignoreChars) ! throw new ParseException ! ("comparison list has not yet been started. You may only use" ! + "(<,;=&)", i + base_offset); ! // Inverse the order of secondaries from now on. ! nextIsModifier = true; ! type = CollationSorter.INVERSE_SECONDARY; ! break; ! case '&': ! type = CollationSorter.RESET; ! if (stop_on_reset) ! break main_parse_loop; ! break; ! default: ! if (operator < 0) ! throw new ParseException ! ("operator missing at " + (i + base_offset), i + base_offset); ! if (! eatingChars ! && ((c >= 0x21 && c <= 0x2F) ! || (c >= 0x3A && c <= 0x40) ! || (c >= 0x5B && c <= 0x60) ! || (c >= 0x7B && c <= 0x7E))) ! throw new ParseException ! ("unquoted punctuation character '" + c + "'", i + base_offset); ! //type = ignoreChars ? CollationSorter.IGNORE : -1; ! sb.append(c); ! break; ! } ! if (type < 0) ! continue; ! if (operator < 0) ! { ! operator = type; ! continue; ! } ! if (sb.length() == 0 && !isModifier) ! throw new ParseException ! ("text element empty at " + (i+base_offset), i+base_offset); ! if (operator == CollationSorter.RESET) ! { ! /* Reposition in the sorting list at the position ! * indicated by the text element. ! */ ! String subrules = rules.substring(i); ! ArrayList sorted_rules = new ArrayList(); ! int idx; ! // Parse the subrules but do not iterate through all ! // sublist. This is the privilege of the first call. ! idx = subParseString(true, sorted_rules, base_offset+i, subrules); ! ! // Merge new parsed rules into the list. ! mergeRules(base_offset+i, sb.toString(), v, sorted_rules); ! sb.setLength(0); ! ! // Reset state to none. ! operator = -1; ! type = -1; ! // We have found a new subrule at 'idx' but it has not been parsed. ! if (idx >= 0) ! { ! i += idx-1; ! continue main_parse_loop; ! } ! else ! // No more rules. ! break main_parse_loop; ! } ! String textElement = sb.toString(); ! if (operator == CollationSorter.GREATERP) ! ignoreChars = false; ! CollationSorter sorter = new CollationSorter(operator, textElement, ! base_offset + rules.length(), ! ignoreChars); ! sb.setLength(0); ! v.add(sorter); ! operator = type; } if (operator >= 0) { ! int pos = rules.length() + base_offset; ! if ((sb.length() != 0 && nextIsModifier) ! || (sb.length() == 0 && !nextIsModifier && !eatingChars)) ! throw new ParseException("text element empty at " + pos, pos); ! if (operator == CollationSorter.GREATERP) ! ignoreChars = false; ! CollationSorter sorter = new CollationSorter(operator, sb.toString(), ! base_offset+pos, ignoreChars); ! v.add(sorter); } if (i == rules.length()) --- 419,573 ---- boolean nextIsModifier = false; boolean isModifier = false; int i; ! main_parse_loop: for (i = 0; i < rules.length(); i++) { ! char c = rules.charAt(i); ! int type = -1; ! if (!eatingChars && ! ((c >= 0x09 && c <= 0x0D) || (c == 0x20))) ! continue; ! isModifier = nextIsModifier; ! nextIsModifier = false; ! if (eatingChars && c != '\'') ! { ! doubleQuote = false; ! sb.append(c); ! continue; ! } ! if (doubleQuote && eatingChars) ! { ! sb.append(c); ! doubleQuote = false; ! continue; ! } ! switch (c) ! { ! case '!': ! throw new ParseException ! ("Modifier '!' is not yet supported by Classpath", i + base_offset); ! case '<': ! type = CollationSorter.GREATERP; ! break; ! case ';': ! type = CollationSorter.GREATERS; ! break; ! case ',': ! type = CollationSorter.GREATERT; ! break; ! case '=': ! type = CollationSorter.EQUAL; ! break; ! case '\'': ! eatingChars = !eatingChars; ! doubleQuote = true; ! break; ! case '@': ! if (ignoreChars) ! throw new ParseException ! ("comparison list has not yet been started. You may only use" ! + "(<,;=&)", i + base_offset); ! // Inverse the order of secondaries from now on. ! nextIsModifier = true; ! type = CollationSorter.INVERSE_SECONDARY; ! break; ! case '&': ! type = CollationSorter.RESET; ! if (stop_on_reset) ! break main_parse_loop; ! break; ! default: ! if (operator < 0) ! throw new ParseException ! ("operator missing at " + (i + base_offset), i + base_offset); ! if (! eatingChars ! && ((c >= 0x21 && c <= 0x2F) ! || (c >= 0x3A && c <= 0x40) ! || (c >= 0x5B && c <= 0x60) ! || (c >= 0x7B && c <= 0x7E))) ! throw new ParseException ! ("unquoted punctuation character '" + c + "'", i + base_offset); ! //type = ignoreChars ? CollationSorter.IGNORE : -1; ! sb.append(c); ! break; ! } ! if (type < 0) ! continue; ! if (operator < 0) ! { ! operator = type; ! continue; ! } ! if (sb.length() == 0 && !isModifier) ! throw new ParseException ! ("text element empty at " + (i+base_offset), i+base_offset); ! if (operator == CollationSorter.RESET) ! { ! /* Reposition in the sorting list at the position ! * indicated by the text element. ! */ ! String subrules = rules.substring(i); ! ArrayList sorted_rules = new ArrayList(); ! int idx; ! // Parse the subrules but do not iterate through all ! // sublist. This is the privilege of the first call. ! idx = subParseString(true, sorted_rules, base_offset+i, subrules); ! // Merge new parsed rules into the list. ! mergeRules(base_offset+i, sb.toString(), v, sorted_rules); ! sb.setLength(0); ! ! // Reset state to none. ! operator = -1; ! type = -1; ! // We have found a new subrule at 'idx' but it has not been parsed. ! if (idx >= 0) ! { ! i += idx-1; ! continue main_parse_loop; ! } ! else ! // No more rules. ! break main_parse_loop; ! } ! ! String textElement = sb.toString(); ! if (operator == CollationSorter.GREATERP) ! ignoreChars = false; ! CollationSorter sorter = new CollationSorter(operator, textElement, ! base_offset + rules.length(), ! ignoreChars); ! sb.setLength(0); ! ! v.add(sorter); ! operator = type; } if (operator >= 0) { ! int pos = rules.length() + base_offset; ! if ((sb.length() != 0 && nextIsModifier) ! || (sb.length() == 0 && !nextIsModifier && !eatingChars)) ! throw new ParseException("text element empty at " + pos, pos); ! if (operator == CollationSorter.GREATERP) ! ignoreChars = false; ! CollationSorter sorter = new CollationSorter(operator, sb.toString(), ! base_offset+pos, ignoreChars); ! v.add(sorter); } if (i == rules.length()) *************** main_parse_loop: *** 589,600 **** /** * This method completely parses a string 'rules' containing sorting rules. * ! * @param rules String containing the rules to be parsed. * @return A set of sorting instructions stored in a Vector. * @throws ParseException if something turned wrong during the parsing. To get details * decode the message. */ ! private ArrayList parseString(String rules) throws ParseException { ArrayList v = new ArrayList(); --- 589,600 ---- /** * This method completely parses a string 'rules' containing sorting rules. * ! * @param rules String containing the rules to be parsed. * @return A set of sorting instructions stored in a Vector. * @throws ParseException if something turned wrong during the parsing. To get details * decode the message. */ ! private ArrayList parseString(String rules) throws ParseException { ArrayList v = new ArrayList(); *************** main_parse_loop: *** 602,608 **** // result of the first subParseString is not absolute (may be -1 or a // positive integer). But we do not care. subParseString(false, v, 0, rules); ! return v; } --- 602,608 ---- // result of the first subParseString is not absolute (may be -1 or a // positive integer). But we do not care. subParseString(false, v, 0, rules); ! return v; } *************** main_parse_loop: *** 631,690 **** element_loop: for (int i = 0; i < parsedElements.size(); i++) { ! CollationSorter elt = parsedElements.get(i); ! switch (elt.comparisonType) ! { ! case CollationSorter.GREATERP: ! primary_seq++; ! if (inverseComparisons) ! { ! secondary_seq = Short.MAX_VALUE; ! secondaryType = DECREASING; ! } ! else ! { ! secondary_seq = 0; ! secondaryType = INCREASING; ! } ! tertiary_seq = 0; ! equality_seq = 0; ! inverseComparisons = false; ! break; ! case CollationSorter.GREATERS: ! if (secondaryType == DECREASING) ! secondary_seq--; ! else ! secondary_seq++; ! tertiary_seq = 0; ! equality_seq = 0; ! break; ! case CollationSorter.INVERSE_SECONDARY: ! inverseComparisons = true; ! continue element_loop; ! case CollationSorter.GREATERT: ! tertiary_seq++; ! if (primary_seq == 0) ! last_tertiary_seq = tertiary_seq; ! equality_seq = 0; ! break; ! case CollationSorter.EQUAL: ! equality_seq++; ! break; ! case CollationSorter.RESET: ! throw new ParseException ! ("Invalid reached state 'RESET'. Internal error", elt.offset); ! default: ! throw new ParseException ! ("Invalid unknown state '" + elt.comparisonType + "'", elt.offset); ! } ! v.add(new CollationElement(elt.textElement, primary_seq, ! secondary_seq, tertiary_seq, ! equality_seq, elt.expansionOrdering, elt.ignore)); } ! this.inverseAccentComparison = inverseComparisons; ce_table = v.toArray(new CollationElement[v.size()]); --- 631,690 ---- element_loop: for (int i = 0; i < parsedElements.size(); i++) { ! CollationSorter elt = parsedElements.get(i); ! switch (elt.comparisonType) ! { ! case CollationSorter.GREATERP: ! primary_seq++; ! if (inverseComparisons) ! { ! secondary_seq = Short.MAX_VALUE; ! secondaryType = DECREASING; ! } ! else ! { ! secondary_seq = 0; ! secondaryType = INCREASING; ! } ! tertiary_seq = 0; ! equality_seq = 0; ! inverseComparisons = false; ! break; ! case CollationSorter.GREATERS: ! if (secondaryType == DECREASING) ! secondary_seq--; ! else ! secondary_seq++; ! tertiary_seq = 0; ! equality_seq = 0; ! break; ! case CollationSorter.INVERSE_SECONDARY: ! inverseComparisons = true; ! continue element_loop; ! case CollationSorter.GREATERT: ! tertiary_seq++; ! if (primary_seq == 0) ! last_tertiary_seq = tertiary_seq; ! equality_seq = 0; ! break; ! case CollationSorter.EQUAL: ! equality_seq++; ! break; ! case CollationSorter.RESET: ! throw new ParseException ! ("Invalid reached state 'RESET'. Internal error", elt.offset); ! default: ! throw new ParseException ! ("Invalid unknown state '" + elt.comparisonType + "'", elt.offset); ! } ! v.add(new CollationElement(elt.textElement, primary_seq, ! secondary_seq, tertiary_seq, ! equality_seq, elt.expansionOrdering, elt.ignore)); } ! this.inverseAccentComparison = inverseComparisons; ce_table = v.toArray(new CollationElement[v.size()]); *************** element_loop: *** 703,711 **** for (int i = 0; i < ce_table.length; i++) { ! CollationElement e = ce_table[i]; ! prefix_tree.put(e.key, e); } } --- 703,711 ---- for (int i = 0; i < ce_table.length; i++) { ! CollationElement e = ce_table[i]; ! prefix_tree.put(e.key, e); } } *************** element_loop: *** 734,805 **** for(;;) { ! int ord1; ! int ord2; ! /* ! * We have to check whether the characters are ignorable. ! * If it is the case then forget them. ! */ ! if (advance_block_1) ! { ! ord1block = cs.nextBlock(); ! if (ord1block != null && ord1block.ignore) ! continue; ! } ! ! if (advance_block_2) ! { ! ord2block = ct.nextBlock(); ! if (ord2block != null && ord2block.ignore) ! { ! advance_block_1 = false; ! continue; ! } ! } ! else ! advance_block_2 = true; ! if (!advance_block_1) ! advance_block_1 = true; ! if (ord1block != null) ! ord1 = ord1block.getValue(); ! else ! { ! if (ord2block == null) ! return 0; ! return -1; ! } ! if (ord2block == null) ! return 1; ! ! ord2 = ord2block.getValue(); ! ! // We know chars are totally equal, so skip if (ord1 == ord2) ! { ! if (getStrength() == IDENTICAL) ! if (!ord1block.key.equals(ord2block.key)) ! return ord1block.key.compareTo(ord2block.key); ! continue; ! } // Check for primary strength differences ! int prim1 = CollationElementIterator.primaryOrder(ord1); ! int prim2 = CollationElementIterator.primaryOrder(ord2); ! ! if (prim1 == 0 && getStrength() < TERTIARY) ! { advance_block_2 = false; ! continue; ! } ! else if (prim2 == 0 && getStrength() < TERTIARY) ! { ! advance_block_1 = false; ! continue; ! } if (prim1 < prim2) return -1; --- 734,805 ---- for(;;) { ! int ord1; ! int ord2; ! /* ! * We have to check whether the characters are ignorable. ! * If it is the case then forget them. ! */ ! if (advance_block_1) ! { ! ord1block = cs.nextBlock(); ! if (ord1block != null && ord1block.ignore) ! continue; ! } ! if (advance_block_2) ! { ! ord2block = ct.nextBlock(); ! if (ord2block != null && ord2block.ignore) ! { ! advance_block_1 = false; ! continue; ! } ! } ! else ! advance_block_2 = true; ! if (!advance_block_1) ! advance_block_1 = true; ! if (ord1block != null) ! ord1 = ord1block.getValue(); ! else ! { ! if (ord2block == null) ! return 0; ! return -1; ! } ! ! if (ord2block == null) ! return 1; ! ! ord2 = ord2block.getValue(); ! ! // We know chars are totally equal, so skip if (ord1 == ord2) ! { ! if (getStrength() == IDENTICAL) ! if (!ord1block.key.equals(ord2block.key)) ! return ord1block.key.compareTo(ord2block.key); ! continue; ! } // Check for primary strength differences ! int prim1 = CollationElementIterator.primaryOrder(ord1); ! int prim2 = CollationElementIterator.primaryOrder(ord2); ! ! if (prim1 == 0 && getStrength() < TERTIARY) ! { advance_block_2 = false; ! continue; ! } ! else if (prim2 == 0 && getStrength() < TERTIARY) ! { ! advance_block_1 = false; ! continue; ! } if (prim1 < prim2) return -1; *************** element_loop: *** 812,818 **** int sec1 = CollationElementIterator.secondaryOrder(ord1); int sec2 = CollationElementIterator.secondaryOrder(ord2); ! if (sec1 < sec2) return -1; else if (sec1 > sec2) return 1; --- 812,818 ---- int sec1 = CollationElementIterator.secondaryOrder(ord1); int sec2 = CollationElementIterator.secondaryOrder(ord2); ! if (sec1 < sec2) return -1; else if (sec1 > sec2) return 1; *************** element_loop: *** 827,842 **** return -1; else if (tert1 > tert2) return 1; ! else if (getStrength() == TERTIARY) ! continue; ! // Apparently JDK does this (at least for my test case). ! return ord1block.key.compareTo(ord2block.key); } } /** ! * This method tests this object for equality against the specified * object. This will be true if and only if the specified object is * another reference to this object. * --- 827,842 ---- return -1; else if (tert1 > tert2) return 1; ! else if (getStrength() == TERTIARY) ! continue; ! // Apparently JDK does this (at least for my test case). ! return ord1block.key.compareTo(ord2block.key); } } /** ! * This method tests this object for equality against the specified * object. This will be true if and only if the specified object is * another reference to this object. * *************** element_loop: *** 872,878 **** else v = (short) c; return new CollationElement("" + c, last_primary_value + v, ! (short) 0, (short) 0, (short) 0, null, false); } /** --- 872,878 ---- else v = (short) c; return new CollationElement("" + c, last_primary_value + v, ! (short) 0, (short) 0, (short) 0, null, false); } /** *************** element_loop: *** 894,900 **** else v = (short) c; return new CollationElement("" + c, (short) 0, ! (short) 0, (short) (last_tertiary_value + v), (short) 0, null, false); } /** --- 894,900 ---- else v = (short) c; return new CollationElement("" + c, (short) 0, ! (short) 0, (short) (last_tertiary_value + v), (short) 0, null, false); } /** *************** element_loop: *** 948,976 **** while (ord != CollationElementIterator.NULLORDER) { ! // If the primary order is null, it means this is an ignorable ! // character. ! if (CollationElementIterator.primaryOrder(ord) == 0) ! { ord = cei.next(); ! continue; ! } switch (getStrength()) { case PRIMARY: ! ord = CollationElementIterator.primaryOrder(ord); ! break; ! case SECONDARY: ! ord = CollationElementIterator.primaryOrder(ord) << 8; ! ord |= CollationElementIterator.secondaryOrder(ord); default: break; } ! vect.add(Integer.valueOf(ord)); ! ord = cei.next(); //increment to next key } Integer[] objarr = vect.toArray(new Integer[vect.size()]); --- 948,976 ---- while (ord != CollationElementIterator.NULLORDER) { ! // If the primary order is null, it means this is an ignorable ! // character. ! if (CollationElementIterator.primaryOrder(ord) == 0) ! { ord = cei.next(); ! continue; ! } switch (getStrength()) { case PRIMARY: ! ord = CollationElementIterator.primaryOrder(ord); ! break; ! case SECONDARY: ! ord = CollationElementIterator.primaryOrder(ord) << 8; ! ord |= CollationElementIterator.secondaryOrder(ord); default: break; } ! vect.add(Integer.valueOf(ord)); ! ord = cei.next(); //increment to next key } Integer[] objarr = vect.toArray(new Integer[vect.size()]); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/SimpleDateFormat.java gcc-4.6.0/libjava/classpath/java/text/SimpleDateFormat.java *** gcc-4.5.2/libjava/classpath/java/text/SimpleDateFormat.java Tue Jan 6 22:44:05 2009 --- gcc-4.6.0/libjava/classpath/java/text/SimpleDateFormat.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SimpleDateFormat.java -- A class for parsing/formating simple date constructs Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. --- 1,4 ---- ! /* SimpleDateFormat.java -- A class for parsing/formating simple date constructs Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. *************** GNU Classpath is free software; you can *** 9,15 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 9,15 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.regex.Pattern; *** 62,74 **** /** * SimpleDateFormat provides convenient methods for parsing and formatting ! * dates using Gregorian calendars (see java.util.GregorianCalendar). * This class is not thread-safe; external synchronisation should be applied * if an instance is to be accessed from multiple threads. */ ! public class SimpleDateFormat extends DateFormat { ! /** * This class is used by SimpleDateFormat as a * compiled representation of a format string. The field * ID, size, and character used are stored for each sequence --- 62,74 ---- /** * SimpleDateFormat provides convenient methods for parsing and formatting ! * dates using Gregorian calendars (see java.util.GregorianCalendar). * This class is not thread-safe; external synchronisation should be applied * if an instance is to be accessed from multiple threads. */ ! public class SimpleDateFormat extends DateFormat { ! /** * This class is used by SimpleDateFormat as a * compiled representation of a format string. The field * ID, size, and character used are stored for each sequence *************** public class SimpleDateFormat extends Da *** 93,99 **** */ private char character; ! /** * Constructs a compiled field using the * the given field ID, size and character * values. --- 93,99 ---- */ private char character; ! /** * Constructs a compiled field using the * the given field ID, size and character * values. *************** public class SimpleDateFormat extends Da *** 238,249 **** // This string is specified in the root of the CLDR. private static final String standardChars = "GyMdkHmsSEDFwWahKzYeugAZvcL"; ! /** * Represents the position of the RFC822 timezone pattern character * in the array of localized pattern characters. In the * U.S. locale, this is 'Z'. The value is the offset of the current * time from GMT e.g. -0500 would be five hours prior to GMT. ! */ private static final int RFC822_TIMEZONE_FIELD = 23; /** --- 238,249 ---- // This string is specified in the root of the CLDR. private static final String standardChars = "GyMdkHmsSEDFwWahKzYeugAZvcL"; ! /** * Represents the position of the RFC822 timezone pattern character * in the array of localized pattern characters. In the * U.S. locale, this is 'Z'. The value is the offset of the current * time from GMT e.g. -0500 would be five hours prior to GMT. ! */ private static final int RFC822_TIMEZONE_FIELD = 23; /** *************** public class SimpleDateFormat extends Da *** 259,265 **** * @throws ClassNotFoundException if the class of the serialized data * could not be found. * @throws InvalidObjectException if the pattern is invalid. ! */ private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { --- 259,265 ---- * @throws ClassNotFoundException if the class of the serialized data * could not be found. * @throws InvalidObjectException if the pattern is invalid. ! */ private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { *************** public class SimpleDateFormat extends Da *** 267,273 **** if (serialVersionOnStream < 1) { computeCenturyStart (); ! serialVersionOnStream = 1; } else // Ensure that defaultCentury gets set. --- 267,273 ---- if (serialVersionOnStream < 1) { computeCenturyStart (); ! serialVersionOnStream = 1; } else // Ensure that defaultCentury gets set. *************** public class SimpleDateFormat extends Da *** 277,287 **** tokens = new ArrayList(); try { ! compileFormat(pattern); } catch (IllegalArgumentException e) { ! throw new InvalidObjectException("The stream pattern was invalid."); } } --- 277,287 ---- tokens = new ArrayList(); try { ! compileFormat(pattern); } catch (IllegalArgumentException e) { ! throw new InvalidObjectException("The stream pattern was invalid."); } } *************** public class SimpleDateFormat extends Da *** 294,300 **** * @param pattern the non-localized pattern to compile. * @throws IllegalArgumentException if the pattern is invalid. */ ! private void compileFormat(String pattern) { // Any alphabetical characters are treated as pattern characters // unless enclosed in single quotes. --- 294,300 ---- * @param pattern the non-localized pattern to compile. * @throws IllegalArgumentException if the pattern is invalid. */ ! private void compileFormat(String pattern) { // Any alphabetical characters are treated as pattern characters // unless enclosed in single quotes. *************** public class SimpleDateFormat extends Da *** 306,375 **** for (int i = 0; i < pattern.length(); i++) { ! thisChar = pattern.charAt(i); ! field = standardChars.indexOf(thisChar); ! if (field == -1) ! { ! current = null; ! if ((thisChar >= 'A' && thisChar <= 'Z') ! || (thisChar >= 'a' && thisChar <= 'z')) ! { ! // Not a valid letter ! throw new IllegalArgumentException("Invalid letter " ! + thisChar + ! " encountered at character " ! + i + "."); ! } ! else if (thisChar == '\'') ! { ! // Quoted text section; skip to next single quote ! pos = pattern.indexOf('\'', i + 1); ! // First look for '' -- meaning a single quote. ! if (pos == i + 1) ! tokens.add("'"); ! else ! { ! // Look for the terminating quote. However, if we ! // see a '', that represents a literal quote and ! // we must iterate. ! CPStringBuilder buf = new CPStringBuilder(); ! int oldPos = i + 1; ! do ! { ! if (pos == -1) ! throw new IllegalArgumentException("Quotes starting at character " ! + i + ! " not closed."); ! buf.append(pattern.substring(oldPos, pos)); ! if (pos + 1 >= pattern.length() ! || pattern.charAt(pos + 1) != '\'') ! break; ! buf.append('\''); ! oldPos = pos + 2; ! pos = pattern.indexOf('\'', pos + 2); ! } ! while (true); ! tokens.add(buf.toString()); ! } ! i = pos; ! } ! else ! { ! // A special character ! tokens.add(Character.valueOf(thisChar)); ! } ! } ! else ! { ! // A valid field ! if ((current != null) && (field == current.field)) ! current.size++; ! else ! { ! current = new CompiledField(field, 1, thisChar); ! tokens.add(current); ! } ! } } } --- 306,375 ---- for (int i = 0; i < pattern.length(); i++) { ! thisChar = pattern.charAt(i); ! field = standardChars.indexOf(thisChar); ! if (field == -1) ! { ! current = null; ! if ((thisChar >= 'A' && thisChar <= 'Z') ! || (thisChar >= 'a' && thisChar <= 'z')) ! { ! // Not a valid letter ! throw new IllegalArgumentException("Invalid letter " ! + thisChar + ! " encountered at character " ! + i + "."); ! } ! else if (thisChar == '\'') ! { ! // Quoted text section; skip to next single quote ! pos = pattern.indexOf('\'', i + 1); ! // First look for '' -- meaning a single quote. ! if (pos == i + 1) ! tokens.add("'"); ! else ! { ! // Look for the terminating quote. However, if we ! // see a '', that represents a literal quote and ! // we must iterate. ! CPStringBuilder buf = new CPStringBuilder(); ! int oldPos = i + 1; ! do ! { ! if (pos == -1) ! throw new IllegalArgumentException("Quotes starting at character " ! + i + ! " not closed."); ! buf.append(pattern.substring(oldPos, pos)); ! if (pos + 1 >= pattern.length() ! || pattern.charAt(pos + 1) != '\'') ! break; ! buf.append('\''); ! oldPos = pos + 2; ! pos = pattern.indexOf('\'', pos + 2); ! } ! while (true); ! tokens.add(buf.toString()); ! } ! i = pos; ! } ! else ! { ! // A special character ! tokens.add(Character.valueOf(thisChar)); ! } ! } ! else ! { ! // A valid field ! if ((current != null) && (field == current.field)) ! current.size++; ! else ! { ! current = new CompiledField(field, 1, thisChar); ! tokens.add(current); ! } ! } } } *************** public class SimpleDateFormat extends Da *** 380,386 **** * @return a string representation of the SimpleDateFormat * instance. */ ! public String toString() { CPStringBuilder output = new CPStringBuilder(getClass().getName()); output.append("[tokens="); --- 380,386 ---- * @return a string representation of the SimpleDateFormat * instance. */ ! public String toString() { CPStringBuilder output = new CPStringBuilder(getClass().getName()); output.append("[tokens="); *************** public class SimpleDateFormat extends Da *** 405,414 **** * Constructs a SimpleDateFormat using the default pattern for * the default locale. */ ! public SimpleDateFormat() { /* ! * There does not appear to be a standard API for determining * what the default pattern for a locale is, so use package-scope * variables in DateFormatSymbols to encapsulate this. */ --- 405,414 ---- * Constructs a SimpleDateFormat using the default pattern for * the default locale. */ ! public SimpleDateFormat() { /* ! * There does not appear to be a standard API for determining * what the default pattern for a locale is, so use package-scope * variables in DateFormatSymbols to encapsulate this. */ *************** public class SimpleDateFormat extends Da *** 419,432 **** tokens = new ArrayList(); formatData = new DateFormatSymbols(locale); pattern = (formatData.dateFormats[DEFAULT] + ' ' ! + formatData.timeFormats[DEFAULT]); compileFormat(pattern); numberFormat = NumberFormat.getInstance(locale); numberFormat.setGroupingUsed (false); numberFormat.setParseIntegerOnly (true); numberFormat.setMaximumFractionDigits (0); } ! /** * Creates a date formatter using the specified non-localized pattern, * with the default DateFormatSymbols for the default locale. --- 419,432 ---- tokens = new ArrayList(); formatData = new DateFormatSymbols(locale); pattern = (formatData.dateFormats[DEFAULT] + ' ' ! + formatData.timeFormats[DEFAULT]); compileFormat(pattern); numberFormat = NumberFormat.getInstance(locale); numberFormat.setGroupingUsed (false); numberFormat.setParseIntegerOnly (true); numberFormat.setMaximumFractionDigits (0); } ! /** * Creates a date formatter using the specified non-localized pattern, * with the default DateFormatSymbols for the default locale. *************** public class SimpleDateFormat extends Da *** 435,441 **** * @throws NullPointerException if the pattern is null. * @throws IllegalArgumentException if the pattern is invalid. */ ! public SimpleDateFormat(String pattern) { this(pattern, Locale.getDefault()); } --- 435,441 ---- * @throws NullPointerException if the pattern is null. * @throws IllegalArgumentException if the pattern is invalid. */ ! public SimpleDateFormat(String pattern) { this(pattern, Locale.getDefault()); } *************** public class SimpleDateFormat extends Da *** 449,455 **** * @throws NullPointerException if the pattern is null. * @throws IllegalArgumentException if the pattern is invalid. */ ! public SimpleDateFormat(String pattern, Locale locale) { super(); calendar = new GregorianCalendar(locale); --- 449,455 ---- * @throws NullPointerException if the pattern is null. * @throws IllegalArgumentException if the pattern is invalid. */ ! public SimpleDateFormat(String pattern, Locale locale) { super(); calendar = new GregorianCalendar(locale); *************** public class SimpleDateFormat extends Da *** 561,588 **** * newChars. */ private String translateLocalizedPattern(String pattern, ! String oldChars, String newChars) { int len = pattern.length(); CPStringBuilder buf = new CPStringBuilder(len); boolean quoted = false; for (int i = 0; i < len; i++) { ! char ch = pattern.charAt(i); ! if (ch == '\'') ! quoted = ! quoted; ! if (! quoted) ! { ! int j = oldChars.indexOf(ch); ! if (j >= 0) ! ch = newChars.charAt(j); ! } ! buf.append(ch); } return buf.toString(); } ! /** * Returns the start of the century used for two digit years. * * @return A Date representing the start of the century --- 561,588 ---- * newChars. */ private String translateLocalizedPattern(String pattern, ! String oldChars, String newChars) { int len = pattern.length(); CPStringBuilder buf = new CPStringBuilder(len); boolean quoted = false; for (int i = 0; i < len; i++) { ! char ch = pattern.charAt(i); ! if (ch == '\'') ! quoted = ! quoted; ! if (! quoted) ! { ! int j = oldChars.indexOf(ch); ! if (j >= 0) ! ch = newChars.charAt(j); ! } ! buf.append(ch); } return buf.toString(); } ! /** * Returns the start of the century used for two digit years. * * @return A Date representing the start of the century *************** public class SimpleDateFormat extends Da *** 630,637 **** { if (formatData == null) { ! throw new ! NullPointerException("The supplied format data was null."); } this.formatData = formatData; } --- 630,637 ---- { if (formatData == null) { ! throw new ! NullPointerException("The supplied format data was null."); } this.formatData = formatData; } *************** public class SimpleDateFormat extends Da *** 703,845 **** Iterator iter = tokens.iterator(); while (iter.hasNext()) { ! Object o = iter.next(); ! if (o instanceof CompiledField) ! { ! CompiledField cf = (CompiledField) o; ! int beginIndex = buffer.length(); ! ! switch (cf.getField()) ! { ! case ERA_FIELD: ! buffer.append (formatData.eras[calendar.get (Calendar.ERA)], DateFormat.Field.ERA); ! break; ! case YEAR_FIELD: ! // If we have two digits, then we truncate. Otherwise, we ! // use the size of the pattern, and zero pad. ! buffer.setDefaultAttribute (DateFormat.Field.YEAR); ! if (cf.getSize() == 2) ! { ! temp = "00"+String.valueOf (calendar.get (Calendar.YEAR)); ! buffer.append (temp.substring (temp.length() - 2)); ! } ! else ! withLeadingZeros (calendar.get (Calendar.YEAR), cf.getSize(), buffer); ! break; ! case MONTH_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.MONTH); ! if (cf.getSize() < 3) ! withLeadingZeros (calendar.get (Calendar.MONTH) + 1, cf.getSize(), buffer); ! else if (cf.getSize() < 4) ! buffer.append (formatData.shortMonths[calendar.get (Calendar.MONTH)]); ! else ! buffer.append (formatData.months[calendar.get (Calendar.MONTH)]); ! break; ! case DATE_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_MONTH); ! withLeadingZeros (calendar.get (Calendar.DATE), cf.getSize(), buffer); ! break; ! case HOUR_OF_DAY1_FIELD: // 1-24 ! buffer.setDefaultAttribute(DateFormat.Field.HOUR_OF_DAY1); ! withLeadingZeros ( ((calendar.get (Calendar.HOUR_OF_DAY) + 23) % 24) + 1, ! cf.getSize(), buffer); ! break; ! case HOUR_OF_DAY0_FIELD: // 0-23 ! buffer.setDefaultAttribute (DateFormat.Field.HOUR_OF_DAY0); ! withLeadingZeros (calendar.get (Calendar.HOUR_OF_DAY), cf.getSize(), buffer); ! break; ! case MINUTE_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.MINUTE); ! withLeadingZeros (calendar.get (Calendar.MINUTE), ! cf.getSize(), buffer); ! break; ! case SECOND_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.SECOND); ! withLeadingZeros(calendar.get (Calendar.SECOND), ! cf.getSize(), buffer); ! break; ! case MILLISECOND_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.MILLISECOND); ! withLeadingZeros (calendar.get (Calendar.MILLISECOND), cf.getSize(), buffer); ! break; ! case DAY_OF_WEEK_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_WEEK); ! if (cf.getSize() < 4) ! buffer.append (formatData.shortWeekdays[calendar.get (Calendar.DAY_OF_WEEK)]); ! else ! buffer.append (formatData.weekdays[calendar.get (Calendar.DAY_OF_WEEK)]); ! break; ! case DAY_OF_YEAR_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_YEAR); ! withLeadingZeros (calendar.get (Calendar.DAY_OF_YEAR), cf.getSize(), buffer); ! break; ! case DAY_OF_WEEK_IN_MONTH_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_WEEK_IN_MONTH); ! withLeadingZeros (calendar.get (Calendar.DAY_OF_WEEK_IN_MONTH), ! cf.getSize(), buffer); ! break; ! case WEEK_OF_YEAR_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.WEEK_OF_YEAR); ! withLeadingZeros (calendar.get (Calendar.WEEK_OF_YEAR), ! cf.getSize(), buffer); ! break; ! case WEEK_OF_MONTH_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.WEEK_OF_MONTH); ! withLeadingZeros (calendar.get (Calendar.WEEK_OF_MONTH), ! cf.getSize(), buffer); ! break; ! case AM_PM_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.AM_PM); ! buffer.append (formatData.ampms[calendar.get (Calendar.AM_PM)]); ! break; ! case HOUR1_FIELD: // 1-12 ! buffer.setDefaultAttribute (DateFormat.Field.HOUR1); ! withLeadingZeros (((calendar.get (Calendar.HOUR) + 11) % 12) + 1, ! cf.getSize(), buffer); ! break; ! case HOUR0_FIELD: // 0-11 ! buffer.setDefaultAttribute (DateFormat.Field.HOUR0); ! withLeadingZeros (calendar.get (Calendar.HOUR), cf.getSize(), buffer); ! break; ! case TIMEZONE_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.TIME_ZONE); ! TimeZone zone = calendar.getTimeZone(); ! boolean isDST = calendar.get (Calendar.DST_OFFSET) != 0; ! // FIXME: XXX: This should be a localized time zone. ! String zoneID = zone.getDisplayName ! (isDST, cf.getSize() > 3 ? TimeZone.LONG : TimeZone.SHORT); ! buffer.append (zoneID); ! break; ! case RFC822_TIMEZONE_FIELD: ! buffer.setDefaultAttribute(DateFormat.Field.TIME_ZONE); ! int pureMinutes = (calendar.get(Calendar.ZONE_OFFSET) + ! calendar.get(Calendar.DST_OFFSET)) / (1000 * 60); ! String sign = (pureMinutes < 0) ? "-" : "+"; pureMinutes = Math.abs(pureMinutes); ! int hours = pureMinutes / 60; ! int minutes = pureMinutes % 60; ! buffer.append(sign); ! withLeadingZeros(hours, 2, buffer); ! withLeadingZeros(minutes, 2, buffer); ! break; ! default: ! throw new IllegalArgumentException ("Illegal pattern character " + ! cf.getCharacter()); ! } ! if (pos != null && (buffer.getDefaultAttribute() == pos.getFieldAttribute() ! || cf.getField() == pos.getField())) ! { ! pos.setBeginIndex(beginIndex); ! pos.setEndIndex(buffer.length()); ! } ! } else ! { ! buffer.append(o.toString(), null); ! } } } ! public StringBuffer format(Date date, StringBuffer buffer, FieldPosition pos) { formatWithAttribute(date, new StringFormatBuffer (buffer), pos); --- 703,845 ---- Iterator iter = tokens.iterator(); while (iter.hasNext()) { ! Object o = iter.next(); ! if (o instanceof CompiledField) ! { ! CompiledField cf = (CompiledField) o; ! int beginIndex = buffer.length(); ! ! switch (cf.getField()) ! { ! case ERA_FIELD: ! buffer.append (formatData.eras[calendar.get (Calendar.ERA)], DateFormat.Field.ERA); ! break; ! case YEAR_FIELD: ! // If we have two digits, then we truncate. Otherwise, we ! // use the size of the pattern, and zero pad. ! buffer.setDefaultAttribute (DateFormat.Field.YEAR); ! if (cf.getSize() == 2) ! { ! temp = "00"+String.valueOf (calendar.get (Calendar.YEAR)); ! buffer.append (temp.substring (temp.length() - 2)); ! } ! else ! withLeadingZeros (calendar.get (Calendar.YEAR), cf.getSize(), buffer); ! break; ! case MONTH_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.MONTH); ! if (cf.getSize() < 3) ! withLeadingZeros (calendar.get (Calendar.MONTH) + 1, cf.getSize(), buffer); ! else if (cf.getSize() < 4) ! buffer.append (formatData.shortMonths[calendar.get (Calendar.MONTH)]); ! else ! buffer.append (formatData.months[calendar.get (Calendar.MONTH)]); ! break; ! case DATE_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_MONTH); ! withLeadingZeros (calendar.get (Calendar.DATE), cf.getSize(), buffer); ! break; ! case HOUR_OF_DAY1_FIELD: // 1-24 ! buffer.setDefaultAttribute(DateFormat.Field.HOUR_OF_DAY1); ! withLeadingZeros ( ((calendar.get (Calendar.HOUR_OF_DAY) + 23) % 24) + 1, ! cf.getSize(), buffer); ! break; ! case HOUR_OF_DAY0_FIELD: // 0-23 ! buffer.setDefaultAttribute (DateFormat.Field.HOUR_OF_DAY0); ! withLeadingZeros (calendar.get (Calendar.HOUR_OF_DAY), cf.getSize(), buffer); ! break; ! case MINUTE_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.MINUTE); ! withLeadingZeros (calendar.get (Calendar.MINUTE), ! cf.getSize(), buffer); ! break; ! case SECOND_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.SECOND); ! withLeadingZeros(calendar.get (Calendar.SECOND), ! cf.getSize(), buffer); ! break; ! case MILLISECOND_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.MILLISECOND); ! withLeadingZeros (calendar.get (Calendar.MILLISECOND), cf.getSize(), buffer); ! break; ! case DAY_OF_WEEK_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_WEEK); ! if (cf.getSize() < 4) ! buffer.append (formatData.shortWeekdays[calendar.get (Calendar.DAY_OF_WEEK)]); ! else ! buffer.append (formatData.weekdays[calendar.get (Calendar.DAY_OF_WEEK)]); ! break; ! case DAY_OF_YEAR_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_YEAR); ! withLeadingZeros (calendar.get (Calendar.DAY_OF_YEAR), cf.getSize(), buffer); ! break; ! case DAY_OF_WEEK_IN_MONTH_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_WEEK_IN_MONTH); ! withLeadingZeros (calendar.get (Calendar.DAY_OF_WEEK_IN_MONTH), ! cf.getSize(), buffer); ! break; ! case WEEK_OF_YEAR_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.WEEK_OF_YEAR); ! withLeadingZeros (calendar.get (Calendar.WEEK_OF_YEAR), ! cf.getSize(), buffer); ! break; ! case WEEK_OF_MONTH_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.WEEK_OF_MONTH); ! withLeadingZeros (calendar.get (Calendar.WEEK_OF_MONTH), ! cf.getSize(), buffer); ! break; ! case AM_PM_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.AM_PM); ! buffer.append (formatData.ampms[calendar.get (Calendar.AM_PM)]); ! break; ! case HOUR1_FIELD: // 1-12 ! buffer.setDefaultAttribute (DateFormat.Field.HOUR1); ! withLeadingZeros (((calendar.get (Calendar.HOUR) + 11) % 12) + 1, ! cf.getSize(), buffer); ! break; ! case HOUR0_FIELD: // 0-11 ! buffer.setDefaultAttribute (DateFormat.Field.HOUR0); ! withLeadingZeros (calendar.get (Calendar.HOUR), cf.getSize(), buffer); ! break; ! case TIMEZONE_FIELD: ! buffer.setDefaultAttribute (DateFormat.Field.TIME_ZONE); ! TimeZone zone = calendar.getTimeZone(); ! boolean isDST = calendar.get (Calendar.DST_OFFSET) != 0; ! // FIXME: XXX: This should be a localized time zone. ! String zoneID = zone.getDisplayName ! (isDST, cf.getSize() > 3 ? TimeZone.LONG : TimeZone.SHORT); ! buffer.append (zoneID); ! break; ! case RFC822_TIMEZONE_FIELD: ! buffer.setDefaultAttribute(DateFormat.Field.TIME_ZONE); ! int pureMinutes = (calendar.get(Calendar.ZONE_OFFSET) + ! calendar.get(Calendar.DST_OFFSET)) / (1000 * 60); ! String sign = (pureMinutes < 0) ? "-" : "+"; pureMinutes = Math.abs(pureMinutes); ! int hours = pureMinutes / 60; ! int minutes = pureMinutes % 60; ! buffer.append(sign); ! withLeadingZeros(hours, 2, buffer); ! withLeadingZeros(minutes, 2, buffer); ! break; ! default: ! throw new IllegalArgumentException ("Illegal pattern character " + ! cf.getCharacter()); ! } ! if (pos != null && (buffer.getDefaultAttribute() == pos.getFieldAttribute() ! || cf.getField() == pos.getField())) ! { ! pos.setBeginIndex(beginIndex); ! pos.setEndIndex(buffer.length()); ! } ! } else ! { ! buffer.append(o.toString(), null); ! } } } ! public StringBuffer format(Date date, StringBuffer buffer, FieldPosition pos) { formatWithAttribute(date, new StringFormatBuffer (buffer), pos); *************** public class SimpleDateFormat extends Da *** 857,871 **** AttributedFormatBuffer buf = new AttributedFormatBuffer(); formatWithAttribute((Date)date, buf, ! null); buf.sync(); ! return new FormatCharacterIterator(buf.getBuffer().toString(), ! buf.getRanges(), ! buf.getAttributes()); } ! private void withLeadingZeros(int value, int length, FormatBuffer buffer) { String valStr = String.valueOf(value); for (length -= valStr.length(); length > 0; length--) --- 857,871 ---- AttributedFormatBuffer buf = new AttributedFormatBuffer(); formatWithAttribute((Date)date, buf, ! null); buf.sync(); ! return new FormatCharacterIterator(buf.getBuffer().toString(), ! buf.getRanges(), ! buf.getAttributes()); } ! private void withLeadingZeros(int value, int length, FormatBuffer buffer) { String valStr = String.valueOf(value); for (length -= valStr.length(); length > 0; length--) *************** public class SimpleDateFormat extends Da *** 886,892 **** /** * This method parses the specified string into a date. ! * * @param dateStr The date string to parse. * @param pos The input and output parse position * --- 886,892 ---- /** * This method parses the specified string into a date. ! * * @param dateStr The date string to parse. * @param pos The input and output parse position * *************** public class SimpleDateFormat extends Da *** 904,930 **** boolean is2DigitYear = false; try { ! for (; fmt_index < fmt_max; ++fmt_index) ! { ! char ch = pattern.charAt(fmt_index); ! if (ch == '\'') ! { ! if (fmt_index < fmt_max - 1 ! && pattern.charAt(fmt_index + 1) == '\'') ! { ! if (! expect (dateStr, pos, ch)) ! return null; ! ++fmt_index; ! } ! else ! quote_start = quote_start < 0 ? fmt_index : -1; ! continue; ! } ! ! if (quote_start != -1 ! || ((ch < 'a' || ch > 'z') ! && (ch < 'A' || ch > 'Z'))) ! { if (quote_start == -1 && ch == ' ') { // A single unquoted space in the pattern may match --- 904,930 ---- boolean is2DigitYear = false; try { ! for (; fmt_index < fmt_max; ++fmt_index) ! { ! char ch = pattern.charAt(fmt_index); ! if (ch == '\'') ! { ! if (fmt_index < fmt_max - 1 ! && pattern.charAt(fmt_index + 1) == '\'') ! { ! if (! expect (dateStr, pos, ch)) ! return null; ! ++fmt_index; ! } ! else ! quote_start = quote_start < 0 ? fmt_index : -1; ! continue; ! } ! ! if (quote_start != -1 ! || ((ch < 'a' || ch > 'z') ! && (ch < 'A' || ch > 'Z'))) ! { if (quote_start == -1 && ch == ' ') { // A single unquoted space in the pattern may match *************** public class SimpleDateFormat extends Da *** 944,1218 **** } } else if (! expect (dateStr, pos, ch)) ! return null; ! continue; ! } ! ! // We've arrived at a potential pattern character in the ! // pattern. ! int fmt_count = 1; ! while (++fmt_index < fmt_max && pattern.charAt(fmt_index) == ch) ! { ! ++fmt_count; ! } ! ! // We might need to limit the number of digits to parse in ! // some cases. We look to the next pattern character to ! // decide. ! boolean limit_digits = false; ! if (fmt_index < fmt_max ! && standardChars.indexOf(pattern.charAt(fmt_index)) >= 0) ! limit_digits = true; ! --fmt_index; ! ! // We can handle most fields automatically: most either are ! // numeric or are looked up in a string vector. In some cases ! // we need an offset. When numeric, `offset' is added to the ! // resulting value. When doing a string lookup, offset is the ! // initial index into the string array. ! int calendar_field; ! boolean is_numeric = true; ! int offset = 0; ! boolean maybe2DigitYear = false; ! boolean oneBasedHour = false; ! boolean oneBasedHourOfDay = false; ! Integer simpleOffset; ! String[] set1 = null; ! String[] set2 = null; ! switch (ch) ! { ! case 'd': ! calendar_field = Calendar.DATE; ! break; ! case 'D': ! calendar_field = Calendar.DAY_OF_YEAR; ! break; ! case 'F': ! calendar_field = Calendar.DAY_OF_WEEK_IN_MONTH; ! break; ! case 'E': ! is_numeric = false; ! offset = 1; ! calendar_field = Calendar.DAY_OF_WEEK; ! set1 = formatData.getWeekdays(); ! set2 = formatData.getShortWeekdays(); ! break; ! case 'w': ! calendar_field = Calendar.WEEK_OF_YEAR; ! break; ! case 'W': ! calendar_field = Calendar.WEEK_OF_MONTH; ! break; ! case 'M': ! calendar_field = Calendar.MONTH; ! if (fmt_count <= 2) ! offset = -1; ! else ! { ! is_numeric = false; ! set1 = formatData.getMonths(); ! set2 = formatData.getShortMonths(); ! } ! break; ! case 'y': ! calendar_field = Calendar.YEAR; ! if (fmt_count <= 2) ! maybe2DigitYear = true; ! break; ! case 'K': ! calendar_field = Calendar.HOUR; ! break; ! case 'h': ! calendar_field = Calendar.HOUR; ! oneBasedHour = true; ! break; ! case 'H': ! calendar_field = Calendar.HOUR_OF_DAY; ! break; ! case 'k': ! calendar_field = Calendar.HOUR_OF_DAY; ! oneBasedHourOfDay = true; ! break; ! case 'm': ! calendar_field = Calendar.MINUTE; ! break; ! case 's': ! calendar_field = Calendar.SECOND; ! break; ! case 'S': ! calendar_field = Calendar.MILLISECOND; ! break; ! case 'a': ! is_numeric = false; ! calendar_field = Calendar.AM_PM; ! set1 = formatData.getAmPmStrings(); ! break; ! case 'z': ! case 'Z': ! // We need a special case for the timezone, because it ! // uses a different data structure than the other cases. ! is_numeric = false; ! calendar_field = Calendar.ZONE_OFFSET; ! String[][] zoneStrings = formatData.getZoneStrings(); ! int zoneCount = zoneStrings.length; ! int index = pos.getIndex(); ! boolean found_zone = false; ! simpleOffset = computeOffset(dateStr.substring(index), pos); ! if (simpleOffset != null) ! { ! found_zone = true; ! saw_timezone = true; ! calendar.set(Calendar.DST_OFFSET, 0); ! offset = simpleOffset.intValue(); ! } ! else ! { ! for (int j = 0; j < zoneCount; j++) ! { ! String[] strings = zoneStrings[j]; ! int k; ! for (k = 0; k < strings.length; ++k) ! { ! if (dateStr.startsWith(strings[k], index)) ! break; ! } ! if (k != strings.length) ! { ! found_zone = true; ! saw_timezone = true; ! TimeZone tz = TimeZone.getTimeZone (strings[0]); ! // Check if it's a DST zone or ordinary ! if(k == 3 || k == 4) ! calendar.set (Calendar.DST_OFFSET, tz.getDSTSavings()); ! else ! calendar.set (Calendar.DST_OFFSET, 0); offset = tz.getRawOffset (); ! pos.setIndex(index + strings[k].length()); ! break; ! } ! } ! } ! if (! found_zone) ! { ! pos.setErrorIndex(pos.getIndex()); ! return null; ! } ! break; ! default: ! pos.setErrorIndex(pos.getIndex()); ! return null; ! } ! ! // Compute the value we should assign to the field. ! int value; ! int index = -1; ! if (is_numeric) ! { ! numberFormat.setMinimumIntegerDigits(fmt_count); ! if (maybe2DigitYear) ! index = pos.getIndex(); ! Number n = null; ! if (limit_digits) ! { ! // numberFormat.setMaximumIntegerDigits(fmt_count) may ! // not work as expected. So we explicitly use substring ! // of dateStr. ! int origPos = pos.getIndex(); ! pos.setIndex(0); ! n = numberFormat.parse(dateStr.substring(origPos, origPos + fmt_count), pos); ! pos.setIndex(origPos + pos.getIndex()); ! } ! else ! n = numberFormat.parse(dateStr, pos); ! if (pos == null || ! (n instanceof Long)) ! return null; ! value = n.intValue() + offset; ! } ! else if (set1 != null) ! { ! index = pos.getIndex(); ! int i; ! boolean found = false; ! for (i = offset; i < set1.length; ++i) ! { ! if (set1[i] != null) ! if (dateStr.toUpperCase().startsWith(set1[i].toUpperCase(), ! index)) ! { ! found = true; ! pos.setIndex(index + set1[i].length()); ! break; ! } ! } ! if (!found && set2 != null) ! { ! for (i = offset; i < set2.length; ++i) ! { ! if (set2[i] != null) ! if (dateStr.toUpperCase().startsWith(set2[i].toUpperCase(), ! index)) ! { ! found = true; ! pos.setIndex(index + set2[i].length()); ! break; ! } ! } ! } ! if (!found) ! { ! pos.setErrorIndex(index); ! return null; ! } ! value = i; ! } ! else ! value = offset; ! ! if (maybe2DigitYear) ! { ! // Parse into default century if the numeric year string has ! // exactly 2 digits. ! int digit_count = pos.getIndex() - index; ! if (digit_count == 2) ! { ! is2DigitYear = true; ! value += defaultCentury; ! } ! } ! ! // Calendar uses 0-based hours. ! // I.e. 00:00 AM is midnight, not 12 AM or 24:00 ! if (oneBasedHour && value == 12) ! value = 0; ! if (oneBasedHourOfDay && value == 24) ! value = 0; ! ! // Assign the value and move on. ! calendar.set(calendar_field, value); ! } ! ! if (is2DigitYear) ! { ! // Apply the 80-20 heuristic to dermine the full year based on ! // defaultCenturyStart. ! int year = calendar.get(Calendar.YEAR); ! if (calendar.getTime().compareTo(defaultCenturyStart) < 0) ! calendar.set(Calendar.YEAR, year + 100); ! } ! if (! saw_timezone) ! { ! // Use the real rules to determine whether or not this ! // particular time is in daylight savings. ! calendar.clear (Calendar.DST_OFFSET); ! calendar.clear (Calendar.ZONE_OFFSET); ! } return calendar.getTime(); } catch (IllegalArgumentException x) { pos.setErrorIndex(pos.getIndex()); ! return null; } } --- 944,1218 ---- } } else if (! expect (dateStr, pos, ch)) ! return null; ! continue; ! } ! ! // We've arrived at a potential pattern character in the ! // pattern. ! int fmt_count = 1; ! while (++fmt_index < fmt_max && pattern.charAt(fmt_index) == ch) ! { ! ++fmt_count; ! } ! ! // We might need to limit the number of digits to parse in ! // some cases. We look to the next pattern character to ! // decide. ! boolean limit_digits = false; ! if (fmt_index < fmt_max ! && standardChars.indexOf(pattern.charAt(fmt_index)) >= 0) ! limit_digits = true; ! --fmt_index; ! ! // We can handle most fields automatically: most either are ! // numeric or are looked up in a string vector. In some cases ! // we need an offset. When numeric, `offset' is added to the ! // resulting value. When doing a string lookup, offset is the ! // initial index into the string array. ! int calendar_field; ! boolean is_numeric = true; ! int offset = 0; ! boolean maybe2DigitYear = false; ! boolean oneBasedHour = false; ! boolean oneBasedHourOfDay = false; ! Integer simpleOffset; ! String[] set1 = null; ! String[] set2 = null; ! switch (ch) ! { ! case 'd': ! calendar_field = Calendar.DATE; ! break; ! case 'D': ! calendar_field = Calendar.DAY_OF_YEAR; ! break; ! case 'F': ! calendar_field = Calendar.DAY_OF_WEEK_IN_MONTH; ! break; ! case 'E': ! is_numeric = false; ! offset = 1; ! calendar_field = Calendar.DAY_OF_WEEK; ! set1 = formatData.getWeekdays(); ! set2 = formatData.getShortWeekdays(); ! break; ! case 'w': ! calendar_field = Calendar.WEEK_OF_YEAR; ! break; ! case 'W': ! calendar_field = Calendar.WEEK_OF_MONTH; ! break; ! case 'M': ! calendar_field = Calendar.MONTH; ! if (fmt_count <= 2) ! offset = -1; ! else ! { ! is_numeric = false; ! set1 = formatData.getMonths(); ! set2 = formatData.getShortMonths(); ! } ! break; ! case 'y': ! calendar_field = Calendar.YEAR; ! if (fmt_count <= 2) ! maybe2DigitYear = true; ! break; ! case 'K': ! calendar_field = Calendar.HOUR; ! break; ! case 'h': ! calendar_field = Calendar.HOUR; ! oneBasedHour = true; ! break; ! case 'H': ! calendar_field = Calendar.HOUR_OF_DAY; ! break; ! case 'k': ! calendar_field = Calendar.HOUR_OF_DAY; ! oneBasedHourOfDay = true; ! break; ! case 'm': ! calendar_field = Calendar.MINUTE; ! break; ! case 's': ! calendar_field = Calendar.SECOND; ! break; ! case 'S': ! calendar_field = Calendar.MILLISECOND; ! break; ! case 'a': ! is_numeric = false; ! calendar_field = Calendar.AM_PM; ! set1 = formatData.getAmPmStrings(); ! break; ! case 'z': ! case 'Z': ! // We need a special case for the timezone, because it ! // uses a different data structure than the other cases. ! is_numeric = false; ! calendar_field = Calendar.ZONE_OFFSET; ! String[][] zoneStrings = formatData.getZoneStrings(); ! int zoneCount = zoneStrings.length; ! int index = pos.getIndex(); ! boolean found_zone = false; ! simpleOffset = computeOffset(dateStr.substring(index), pos); ! if (simpleOffset != null) ! { ! found_zone = true; ! saw_timezone = true; ! calendar.set(Calendar.DST_OFFSET, 0); ! offset = simpleOffset.intValue(); ! } ! else ! { ! for (int j = 0; j < zoneCount; j++) ! { ! String[] strings = zoneStrings[j]; ! int k; ! for (k = 0; k < strings.length; ++k) ! { ! if (dateStr.startsWith(strings[k], index)) ! break; ! } ! if (k != strings.length) ! { ! found_zone = true; ! saw_timezone = true; ! TimeZone tz = TimeZone.getTimeZone (strings[0]); ! // Check if it's a DST zone or ordinary ! if(k == 3 || k == 4) ! calendar.set (Calendar.DST_OFFSET, tz.getDSTSavings()); ! else ! calendar.set (Calendar.DST_OFFSET, 0); offset = tz.getRawOffset (); ! pos.setIndex(index + strings[k].length()); ! break; ! } ! } ! } ! if (! found_zone) ! { ! pos.setErrorIndex(pos.getIndex()); ! return null; ! } ! break; ! default: ! pos.setErrorIndex(pos.getIndex()); ! return null; ! } ! // Compute the value we should assign to the field. ! int value; ! int index = -1; ! if (is_numeric) ! { ! numberFormat.setMinimumIntegerDigits(fmt_count); ! if (maybe2DigitYear) ! index = pos.getIndex(); ! Number n = null; ! if (limit_digits) ! { ! // numberFormat.setMaximumIntegerDigits(fmt_count) may ! // not work as expected. So we explicitly use substring ! // of dateStr. ! int origPos = pos.getIndex(); ! pos.setIndex(0); ! n = numberFormat.parse(dateStr.substring(origPos, origPos + fmt_count), pos); ! pos.setIndex(origPos + pos.getIndex()); ! } ! else ! n = numberFormat.parse(dateStr, pos); ! if (pos == null || ! (n instanceof Long)) ! return null; ! value = n.intValue() + offset; ! } ! else if (set1 != null) ! { ! index = pos.getIndex(); ! int i; ! boolean found = false; ! for (i = offset; i < set1.length; ++i) ! { ! if (set1[i] != null) ! if (dateStr.toUpperCase().startsWith(set1[i].toUpperCase(), ! index)) ! { ! found = true; ! pos.setIndex(index + set1[i].length()); ! break; ! } ! } ! if (!found && set2 != null) ! { ! for (i = offset; i < set2.length; ++i) ! { ! if (set2[i] != null) ! if (dateStr.toUpperCase().startsWith(set2[i].toUpperCase(), ! index)) ! { ! found = true; ! pos.setIndex(index + set2[i].length()); ! break; ! } ! } ! } ! if (!found) ! { ! pos.setErrorIndex(index); ! return null; ! } ! value = i; ! } ! else ! value = offset; ! ! if (maybe2DigitYear) ! { ! // Parse into default century if the numeric year string has ! // exactly 2 digits. ! int digit_count = pos.getIndex() - index; ! if (digit_count == 2) ! { ! is2DigitYear = true; ! value += defaultCentury; ! } ! } ! ! // Calendar uses 0-based hours. ! // I.e. 00:00 AM is midnight, not 12 AM or 24:00 ! if (oneBasedHour && value == 12) ! value = 0; ! ! if (oneBasedHourOfDay && value == 24) ! value = 0; ! ! // Assign the value and move on. ! calendar.set(calendar_field, value); ! } ! ! if (is2DigitYear) ! { ! // Apply the 80-20 heuristic to dermine the full year based on ! // defaultCenturyStart. ! int year = calendar.get(Calendar.YEAR); ! if (calendar.getTime().compareTo(defaultCenturyStart) < 0) ! calendar.set(Calendar.YEAR, year + 100); ! } ! if (! saw_timezone) ! { ! // Use the real rules to determine whether or not this ! // particular time is in daylight savings. ! calendar.clear (Calendar.DST_OFFSET); ! calendar.clear (Calendar.ZONE_OFFSET); ! } return calendar.getTime(); } catch (IllegalArgumentException x) { pos.setErrorIndex(pos.getIndex()); ! return null; } } *************** public class SimpleDateFormat extends Da *** 1244,1250 **** * order to allow such failure to be represented. *

                        * ! * @param zoneString a string in the form * (GMT)? sign hours : minutes * where sign = '+' or '-', hours * is a one or two digits representing --- 1244,1250 ---- * order to allow such failure to be represented. *

                        * ! * @param zoneString a string in the form * (GMT)? sign hours : minutes * where sign = '+' or '-', hours * is a one or two digits representing *************** public class SimpleDateFormat extends Da *** 1256,1262 **** */ private Integer computeOffset(String zoneString, ParsePosition pos) { ! Pattern pattern = Pattern.compile("(GMT)?([+-])([012])?([0-9]):?([0-9]{2})"); Matcher matcher = pattern.matcher(zoneString); --- 1256,1262 ---- */ private Integer computeOffset(String zoneString, ParsePosition pos) { ! Pattern pattern = Pattern.compile("(GMT)?([+-])([012])?([0-9]):?([0-9]{2})"); Matcher matcher = pattern.matcher(zoneString); *************** public class SimpleDateFormat extends Da *** 1264,1298 **** boolean hasAll = matcher.lookingAt(); try { ! // Do we have at least the sign, hour and minute? ! matcher.group(2); ! matcher.group(4); ! matcher.group(5); } catch (IllegalStateException ise) { ! hasAll = false; } if (hasAll) { ! int sign = matcher.group(2).equals("+") ? 1 : -1; ! int hour = Integer.parseInt(matcher.group(4)); ! if (!matcher.group(3).equals("")) ! hour += (Integer.parseInt(matcher.group(3)) * 10); ! int minutes = Integer.parseInt(matcher.group(5)); ! if (hour > 23) ! return null; ! int offset = sign * ((hour * 60) + minutes) * 60000; ! // advance the index ! pos.setIndex(pos.getIndex() + matcher.end()); ! return Integer.valueOf(offset); } else if (zoneString.startsWith("GMT")) { ! pos.setIndex(pos.getIndex() + 3); ! return Integer.valueOf(0); } return null; } --- 1264,1298 ---- boolean hasAll = matcher.lookingAt(); try { ! // Do we have at least the sign, hour and minute? ! matcher.group(2); ! matcher.group(4); ! matcher.group(5); } catch (IllegalStateException ise) { ! hasAll = false; } if (hasAll) { ! int sign = matcher.group(2).equals("+") ? 1 : -1; ! int hour = Integer.parseInt(matcher.group(4)); ! if (!matcher.group(3).equals("")) ! hour += (Integer.parseInt(matcher.group(3)) * 10); ! int minutes = Integer.parseInt(matcher.group(5)); ! if (hour > 23) ! return null; ! int offset = sign * ((hour * 60) + minutes) * 60000; ! // advance the index ! pos.setIndex(pos.getIndex() + matcher.end()); ! return Integer.valueOf(offset); } else if (zoneString.startsWith("GMT")) { ! pos.setIndex(pos.getIndex() + 3); ! return Integer.valueOf(0); } return null; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/StringCharacterIterator.java gcc-4.6.0/libjava/classpath/java/text/StringCharacterIterator.java *** gcc-4.5.2/libjava/classpath/java/text/StringCharacterIterator.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/text/StringCharacterIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** exception statement from your version. * *** 39,49 **** package java.text; /** ! * This class iterates over a range of characters in a String. * For a given range of text, a beginning and ending index, * as well as a current index are defined. These values can be queried * by the methods in this interface. Additionally, various methods allow ! * the index to be set. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) --- 39,49 ---- package java.text; /** ! * This class iterates over a range of characters in a String. * For a given range of text, a beginning and ending index, * as well as a current index are defined. These values can be queried * by the methods in this interface. Additionally, various methods allow ! * the index to be set. * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) *************** public final class StringCharacterIterat *** 76,84 **** * text of the specified String. The initial index * value will be set to the first character in the string. * ! * @param text The String to iterate through (null * not permitted). ! * * @throws NullPointerException if text is null. */ public StringCharacterIterator (String text) --- 76,84 ---- * text of the specified String. The initial index * value will be set to the first character in the string. * ! * @param text The String to iterate through (null * not permitted). ! * * @throws NullPointerException if text is null. */ public StringCharacterIterator (String text) *************** public final class StringCharacterIterat *** 209,215 **** * the character there. * * @return The character at the beginning of the range, or ! * DONE if the range is empty. */ public char first () { --- 209,215 ---- * the character there. * * @return The character at the beginning of the range, or ! * DONE if the range is empty. */ public char first () { *************** public final class StringCharacterIterat *** 225,231 **** * will be set equal to the beginning index. * * @return The character at the end of the range, or ! * DONE if the range is empty. */ public char last () { --- 225,231 ---- * will be set equal to the beginning index. * * @return The character at the end of the range, or ! * DONE if the range is empty. */ public char last () { *************** public final class StringCharacterIterat *** 257,263 **** * @param index The new index value. * * @return The character at the new index value or DONE ! * if the index value is equal to getEndIndex. * * @exception IllegalArgumentException If the specified index is not valid */ --- 257,263 ---- * @param index The new index value. * * @return The character at the new index value or DONE ! * if the index value is equal to getEndIndex. * * @exception IllegalArgumentException If the specified index is not valid */ *************** public final class StringCharacterIterat *** 313,319 **** /*************************************************************************/ /** ! * This method tests this object for equality againt the specified * object. This will be true if and only if the specified object: *

                        *

                          --- 313,319 ---- /*************************************************************************/ /** ! * This method tests this object for equality againt the specified * object. This will be true if and only if the specified object: *

                          *

                            *************** public final class StringCharacterIterat *** 336,346 **** StringCharacterIterator sci = (StringCharacterIterator) obj; return (begin == sci.begin ! && end == sci.end ! && index == sci.index ! && text.equals (sci.text)); } ! /** * Return the hash code for this object. * @return the hash code --- 336,346 ---- StringCharacterIterator sci = (StringCharacterIterator) obj; return (begin == sci.begin ! && end == sci.end ! && index == sci.index ! && text.equals (sci.text)); } ! /** * Return the hash code for this object. * @return the hash code diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/spi/DateFormatProvider.java gcc-4.6.0/libjava/classpath/java/text/spi/DateFormatProvider.java *** gcc-4.5.2/libjava/classpath/java/text/spi/DateFormatProvider.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/text/spi/DateFormatProvider.java Tue Jan 11 19:46:05 2011 *************** public abstract class DateFormatProvider *** 80,86 **** * @see java.text.DateFormat#getDateInstance(int,java.util.Locale) */ public abstract DateFormat getDateInstance(int style, ! Locale locale); /** * Returns a {@link java.text.DateFormat} instance --- 80,86 ---- * @see java.text.DateFormat#getDateInstance(int,java.util.Locale) */ public abstract DateFormat getDateInstance(int style, ! Locale locale); /** * Returns a {@link java.text.DateFormat} instance *************** public abstract class DateFormatProvider *** 103,110 **** * @see java.text.DateFormat#getDateInstance(java.util.Locale) */ public abstract DateFormat getDateTimeInstance(int dateStyle, ! int timeStyle, ! Locale locale); /** * Returns a {@link java.text.DateFormat} instance --- 103,110 ---- * @see java.text.DateFormat#getDateInstance(java.util.Locale) */ public abstract DateFormat getDateTimeInstance(int dateStyle, ! int timeStyle, ! Locale locale); /** * Returns a {@link java.text.DateFormat} instance *************** public abstract class DateFormatProvider *** 124,129 **** * @see java.text.DateFormat#getTimeInstance(int,java.util.Locale) */ public abstract DateFormat getTimeInstance(int style, ! Locale locale); } --- 124,129 ---- * @see java.text.DateFormat#getTimeInstance(int,java.util.Locale) */ public abstract DateFormat getTimeInstance(int style, ! Locale locale); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/text/spi/NumberFormatProvider.java gcc-4.6.0/libjava/classpath/java/text/spi/NumberFormatProvider.java *** gcc-4.5.2/libjava/classpath/java/text/spi/NumberFormatProvider.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/text/spi/NumberFormatProvider.java Tue Jan 11 19:46:05 2011 *************** public abstract class NumberFormatProvid *** 80,86 **** /** * Returns a {@link java.text.NumberFormat} instance * for integers in the specified {@link java.util.Locale}. ! * The returned instance should be configured to round * floating point numbers to the nearest integer using * {@link java.math.RoundingMode#HALF_EVEN} rounding, * and to parse only the integer part of a number. --- 80,86 ---- /** * Returns a {@link java.text.NumberFormat} instance * for integers in the specified {@link java.util.Locale}. ! * The returned instance should be configured to round * floating point numbers to the nearest integer using * {@link java.math.RoundingMode#HALF_EVEN} rounding, * and to parse only the integer part of a number. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/AbstractCollection.java gcc-4.6.0/libjava/classpath/java/util/AbstractCollection.java *** gcc-4.5.2/libjava/classpath/java/util/AbstractCollection.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/AbstractCollection.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractCollection *** 441,451 **** while (hasNext) { Object o = itr.next(); ! if (o == this) ! r.append(""); ! else ! r.append(o); ! hasNext = itr.hasNext(); if (hasNext) r.append(", "); } --- 441,451 ---- while (hasNext) { Object o = itr.next(); ! if (o == this) ! r.append(""); ! else ! r.append(o); ! hasNext = itr.hasNext(); if (hasNext) r.append(", "); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/AbstractList.java gcc-4.6.0/libjava/classpath/java/util/AbstractList.java *** gcc-4.5.2/libjava/classpath/java/util/AbstractList.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/AbstractList.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractList *** 243,249 **** * Obtains a hash code for this list. In order to obey the general * contract of the hashCode method of class Object, this value is * calculated as follows: ! *
                            hashCode = 1;
                              Iterator i = list.iterator();
                              while (i.hasNext())
                            --- 243,249 ----
                                 * Obtains a hash code for this list. In order to obey the general
                                 * contract of the hashCode method of class Object, this value is
                                 * calculated as follows:
                            !    *
                              
                            hashCode = 1;
                              Iterator i = list.iterator();
                              while (i.hasNext())
                            *************** while (i.hasNext())
                            *** 591,597 ****
                                    /**
                                     * Adds the supplied object before the element that would be returned
                                     * by a call to next(), if the list supports addition.
                            !        * 
                                     * @param o The object to add to the list.
                                     * @throws UnsupportedOperationException if the list doesn't support
                                     *         the addition of new elements.
                            --- 591,597 ----
                                    /**
                                     * Adds the supplied object before the element that would be returned
                                     * by a call to next(), if the list supports addition.
                            !        *
                                     * @param o The object to add to the list.
                                     * @throws UnsupportedOperationException if the list doesn't support
                                     *         the addition of new elements.
                            *************** while (i.hasNext())
                            *** 713,719 ****
                                 *
                                 * All methods first check to see if the actual modCount of the backing
                                 * list is equal to its expected value, and throw a
                            !    * ConcurrentModificationException if it is not. 
                                 *
                                 * @param fromIndex the index that the returned list should start from
                                 *        (inclusive)
                            --- 713,719 ----
                                 *
                                 * All methods first check to see if the actual modCount of the backing
                                 * list is equal to its expected value, and throw a
                            !    * ConcurrentModificationException if it is not.
                                 *
                                 * @param fromIndex the index that the returned list should start from
                                 *        (inclusive)
                            *************** while (i.hasNext())
                            *** 756,762 ****
                                  final int offset;
                                  /** The size of the sublist. */
                                  int size;
                            !     
                                  /**
                                   * Construct the sublist.
                                   *
                            --- 756,762 ----
                                  final int offset;
                                  /** The size of the sublist. */
                                  int size;
                            ! 
                                  /**
                                   * Construct the sublist.
                                   *
                            *************** while (i.hasNext())
                            *** 771,777 ****
                                    offset = fromIndex;
                                    size = toIndex - fromIndex;
                                  }
                            !     
                                  /**
                                   * This method checks the two modCount fields to ensure that there has
                                   * not been a concurrent modification, returning if all is okay.
                            --- 771,777 ----
                                    offset = fromIndex;
                                    size = toIndex - fromIndex;
                                  }
                            ! 
                                  /**
                                   * This method checks the two modCount fields to ensure that there has
                                   * not been a concurrent modification, returning if all is okay.
                            *************** while (i.hasNext())
                            *** 783,791 ****
                                  void checkMod()
                                  {
                                    if (modCount != backingList.modCount)
                            ! 	throw new ConcurrentModificationException();
                                  }
                            !     
                                  /**
                                   * This method checks that a value is between 0 and size (inclusive). If
                                   * it is not, an exception is thrown.
                            --- 783,791 ----
                                  void checkMod()
                                  {
                                    if (modCount != backingList.modCount)
                            !         throw new ConcurrentModificationException();
                                  }
                            ! 
                                  /**
                                   * This method checks that a value is between 0 and size (inclusive). If
                                   * it is not, an exception is thrown.
                            *************** while (i.hasNext())
                            *** 797,806 ****
                                  private void checkBoundsInclusive(int index)
                                  {
                                    if (index < 0 || index > size)
                            ! 	throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
                            ! 					    + size);
                                  }
                            !     
                                  /**
                                   * This method checks that a value is between 0 (inclusive) and size
                                   * (exclusive). If it is not, an exception is thrown.
                            --- 797,806 ----
                                  private void checkBoundsInclusive(int index)
                                  {
                                    if (index < 0 || index > size)
                            !         throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
                            !                                             + size);
                                  }
                            ! 
                                  /**
                                   * This method checks that a value is between 0 (inclusive) and size
                                   * (exclusive). If it is not, an exception is thrown.
                            *************** while (i.hasNext())
                            *** 812,821 ****
                                  private void checkBoundsExclusive(int index)
                                  {
                                    if (index < 0 || index >= size)
                            ! 	throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
                            ! 					    + size);
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to return the private field size.
                                   *
                            --- 812,821 ----
                                  private void checkBoundsExclusive(int index)
                                  {
                                    if (index < 0 || index >= size)
                            !         throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
                            !                                             + size);
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to return the private field size.
                                   *
                            *************** while (i.hasNext())
                            *** 828,834 ****
                                    checkMod();
                                    return size;
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            --- 828,834 ----
                                    checkMod();
                                    return size;
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            *************** while (i.hasNext())
                            *** 851,857 ****
                                    checkBoundsExclusive(index);
                                    return backingList.set(index + offset, o);
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            --- 851,857 ----
                                    checkBoundsExclusive(index);
                                    return backingList.set(index + offset, o);
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            *************** while (i.hasNext())
                            *** 867,873 ****
                                    checkBoundsExclusive(index);
                                    return backingList.get(index + offset);
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            --- 867,873 ----
                                    checkBoundsExclusive(index);
                                    return backingList.get(index + offset);
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            *************** while (i.hasNext())
                            *** 891,897 ****
                                    size++;
                                    modCount = backingList.modCount;
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            --- 891,897 ----
                                    size++;
                                    modCount = backingList.modCount;
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            *************** while (i.hasNext())
                            *** 912,918 ****
                                    modCount = backingList.modCount;
                                    return o;
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   * This does no bounds checking, as it assumes it will only be called
                            --- 912,918 ----
                                    modCount = backingList.modCount;
                                    return o;
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   * This does no bounds checking, as it assumes it will only be called
                            *************** while (i.hasNext())
                            *** 928,939 ****
                                  protected void removeRange(int fromIndex, int toIndex)
                                  {
                                    checkMod();
                            !       
                                    backingList.removeRange(offset + fromIndex, offset + toIndex);
                                    size -= toIndex - fromIndex;
                                    modCount = backingList.modCount;
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            --- 928,939 ----
                                  protected void removeRange(int fromIndex, int toIndex)
                                  {
                                    checkMod();
                            ! 
                                    backingList.removeRange(offset + fromIndex, offset + toIndex);
                                    size -= toIndex - fromIndex;
                                    modCount = backingList.modCount;
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to delegate to the backing list.
                                   *
                            *************** while (i.hasNext())
                            *** 961,967 ****
                                    modCount = backingList.modCount;
                                    return result;
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to return addAll(size, c).
                                   *
                            --- 961,967 ----
                                    modCount = backingList.modCount;
                                    return result;
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to return addAll(size, c).
                                   *
                            *************** while (i.hasNext())
                            *** 981,987 ****
                                  {
                                    return addAll(size, c);
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to return listIterator().
                                   *
                            --- 981,987 ----
                                  {
                                    return addAll(size, c);
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to return listIterator().
                                   *
                            *************** while (i.hasNext())
                            *** 991,997 ****
                                  {
                                    return listIterator();
                                  }
                            !     
                                  /**
                                   * Specified by AbstractList.subList to return a wrapper around the
                                   * backing list's iterator.
                            --- 991,997 ----
                                  {
                                    return listIterator();
                                  }
                            ! 
                                  /**
                                   * Specified by AbstractList.subList to return a wrapper around the
                                   * backing list's iterator.
                            *************** while (i.hasNext())
                            *** 1006,1181 ****
                                  {
                                    checkMod();
                                    checkBoundsInclusive(index);
                            !       
                                    return new ListIterator()
                            ! 	{
                            ! 	  private final ListIterator i
                            ! 	    = backingList.listIterator(index + offset);
                            ! 	  private int position = index;
                            ! 	  
                            ! 	  /**
                            ! 	   * Tests to see if there are any more objects to
                            ! 	   * return.
                            ! 	   *
                            ! 	   * @return True if the end of the list has not yet been
                            ! 	   *         reached.
                            ! 	   */
                            ! 	  public boolean hasNext()
                            ! 	  {
                            ! 	      return position < size;
                            ! 	  }
                            ! 	  
                            ! 	  /**
                            ! 	   * Tests to see if there are objects prior to the
                            ! 	   * current position in the list.
                            ! 	   *
                            ! 	   * @return True if objects exist prior to the current
                            ! 	   *         position of the iterator.
                            ! 	   */
                            ! 	  public boolean hasPrevious()
                            ! 	  {
                            ! 	      return position > 0;
                            ! 	  }
                            ! 	  
                            ! 	  /**
                            ! 	   * Retrieves the next object from the list.
                            ! 	   *
                            ! 	   * @return The next object.
                            ! 	   * @throws NoSuchElementException if there are no
                            ! 	   *         more objects to retrieve.
                            ! 	   * @throws ConcurrentModificationException if the
                            ! 	   *         list has been modified elsewhere.
                            ! 	   */
                            ! 	  public E next()
                            ! 	  {
                            ! 	      if (position == size)
                            ! 		throw new NoSuchElementException();
                            ! 	      position++;
                            ! 	      return i.next();
                            ! 	  }
                              
                            ! 	  /**
                            ! 	   * Retrieves the previous object from the list.
                            ! 	   *
                            ! 	   * @return The next object.
                            ! 	   * @throws NoSuchElementException if there are no
                            ! 	   *         previous objects to retrieve.
                            ! 	   * @throws ConcurrentModificationException if the
                            ! 	   *         list has been modified elsewhere.
                            ! 	   */
                            ! 	  public E previous()
                            ! 	  {
                            ! 	      if (position == 0)
                            ! 		throw new NoSuchElementException();
                            ! 	      position--;
                            ! 	      return i.previous();
                            ! 	  }
                            ! 	  
                            ! 	  /**
                            ! 	   * Returns the index of the next element in the
                            ! 	   * list, which will be retrieved by next()
                            ! 	   *
                            ! 	   * @return The index of the next element.
                            ! 	   */
                            ! 	  public int nextIndex()
                            ! 	  {
                            ! 	      return i.nextIndex() - offset;
                            ! 	  }
                            ! 	  
                            ! 	  /**
                            ! 	   * Returns the index of the previous element in the
                            ! 	   * list, which will be retrieved by previous()
                            ! 	   *
                            ! 	   * @return The index of the previous element.
                            ! 	   */
                            ! 	  public int previousIndex()
                            ! 	  {
                            ! 	      return i.previousIndex() - offset;
                            ! 	  }
                            ! 	  
                            ! 	  /**
                            ! 	   * Removes the last object retrieved by next()
                            ! 	   * from the list, if the list supports object removal.
                            ! 	   *
                            ! 	   * @throws IllegalStateException if the iterator is positioned
                            ! 	   *         before the start of the list or the last object has already
                            ! 	   *         been removed.
                            ! 	   * @throws UnsupportedOperationException if the list does
                            ! 	   *         not support removing elements.
                            ! 	   */
                            ! 	  public void remove()
                            ! 	  {
                            ! 	      i.remove();
                            ! 	      size--;
                            ! 	      position = nextIndex();
                            ! 	      modCount = backingList.modCount;
                            ! 	  }
                            ! 	  
                            ! 	  
                            ! 	  /**
                            ! 	   * Replaces the last object retrieved by next()
                            ! 	   * or previous with o, if the list supports object
                            ! 	   * replacement and an add or remove operation has not already
                            ! 	   * been performed.
                            ! 	   *
                            ! 	   * @throws IllegalStateException if the iterator is positioned
                            ! 	   *         before the start of the list or the last object has already
                            ! 	   *         been removed.
                            ! 	   * @throws UnsupportedOperationException if the list doesn't support
                            ! 	   *         the addition or removal of elements.
                            ! 	   * @throws ClassCastException if the type of o is not a valid type
                            ! 	   *         for this list.
                            ! 	   * @throws IllegalArgumentException if something else related to o
                            ! 	   *         prevents its addition.
                            ! 	   * @throws ConcurrentModificationException if the list
                            ! 	   *         has been modified elsewhere.
                            ! 	   */
                            ! 	  public void set(E o)
                            ! 	  {
                            ! 	      i.set(o);
                            ! 	  }
                            ! 	  
                            ! 	  /**
                            ! 	   * Adds the supplied object before the element that would be returned
                            ! 	   * by a call to next(), if the list supports addition.
                            ! 	   * 
                            ! 	   * @param o The object to add to the list.
                            ! 	   * @throws UnsupportedOperationException if the list doesn't support
                            ! 	   *         the addition of new elements.
                            ! 	   * @throws ClassCastException if the type of o is not a valid type
                            ! 	   *         for this list.
                            ! 	   * @throws IllegalArgumentException if something else related to o
                            ! 	   *         prevents its addition.
                            ! 	   * @throws ConcurrentModificationException if the list
                            ! 	   *         has been modified elsewhere.
                            ! 	   */
                            ! 	  public void add(E o)
                            ! 	  {
                            ! 	      i.add(o);
                            ! 	      size++;
                            ! 	      position++;
                            ! 	      modCount = backingList.modCount;
                            ! 	  }
                            ! 	  
                            ! 	  // Here is the reason why the various modCount fields are mostly
                            ! 	  // ignored in this wrapper listIterator.
                            ! 	  // If the backing listIterator is failfast, then the following holds:
                            ! 	  //   Using any other method on this list will call a corresponding
                            ! 	  //   method on the backing list *after* the backing listIterator
                            ! 	  //   is created, which will in turn cause a ConcurrentModException
                            ! 	  //   when this listIterator comes to use the backing one. So it is
                            ! 	  //   implicitly failfast.
                            ! 	  // If the backing listIterator is NOT failfast, then the whole of
                            ! 	  //   this list isn't failfast, because the modCount field of the
                            ! 	  //   backing list is not valid. It would still be *possible* to
                            ! 	  //   make the iterator failfast wrt modifications of the sublist
                            ! 	  //   only, but somewhat pointless when the list can be changed under
                            ! 	  //   us.
                            ! 	  // Either way, no explicit handling of modCount is needed.
                            ! 	  // However modCount = backingList.modCount must be executed in add
                            ! 	  // and remove, and size must also be updated in these two methods,
                            ! 	  // since they do not go through the corresponding methods of the subList.
                            ! 	};
                                  }
                                } // class SubList
                              
                            --- 1006,1181 ----
                                  {
                                    checkMod();
                                    checkBoundsInclusive(index);
                            ! 
                                    return new ListIterator()
                            !         {
                            !           private final ListIterator i
                            !             = backingList.listIterator(index + offset);
                            !           private int position = index;
                              
                            !           /**
                            !            * Tests to see if there are any more objects to
                            !            * return.
                            !            *
                            !            * @return True if the end of the list has not yet been
                            !            *         reached.
                            !            */
                            !           public boolean hasNext()
                            !           {
                            !               return position < size;
                            !           }
                            ! 
                            !           /**
                            !            * Tests to see if there are objects prior to the
                            !            * current position in the list.
                            !            *
                            !            * @return True if objects exist prior to the current
                            !            *         position of the iterator.
                            !            */
                            !           public boolean hasPrevious()
                            !           {
                            !               return position > 0;
                            !           }
                            ! 
                            !           /**
                            !            * Retrieves the next object from the list.
                            !            *
                            !            * @return The next object.
                            !            * @throws NoSuchElementException if there are no
                            !            *         more objects to retrieve.
                            !            * @throws ConcurrentModificationException if the
                            !            *         list has been modified elsewhere.
                            !            */
                            !           public E next()
                            !           {
                            !               if (position == size)
                            !                 throw new NoSuchElementException();
                            !               position++;
                            !               return i.next();
                            !           }
                            ! 
                            !           /**
                            !            * Retrieves the previous object from the list.
                            !            *
                            !            * @return The next object.
                            !            * @throws NoSuchElementException if there are no
                            !            *         previous objects to retrieve.
                            !            * @throws ConcurrentModificationException if the
                            !            *         list has been modified elsewhere.
                            !            */
                            !           public E previous()
                            !           {
                            !               if (position == 0)
                            !                 throw new NoSuchElementException();
                            !               position--;
                            !               return i.previous();
                            !           }
                            ! 
                            !           /**
                            !            * Returns the index of the next element in the
                            !            * list, which will be retrieved by next()
                            !            *
                            !            * @return The index of the next element.
                            !            */
                            !           public int nextIndex()
                            !           {
                            !               return i.nextIndex() - offset;
                            !           }
                            ! 
                            !           /**
                            !            * Returns the index of the previous element in the
                            !            * list, which will be retrieved by previous()
                            !            *
                            !            * @return The index of the previous element.
                            !            */
                            !           public int previousIndex()
                            !           {
                            !               return i.previousIndex() - offset;
                            !           }
                            ! 
                            !           /**
                            !            * Removes the last object retrieved by next()
                            !            * from the list, if the list supports object removal.
                            !            *
                            !            * @throws IllegalStateException if the iterator is positioned
                            !            *         before the start of the list or the last object has already
                            !            *         been removed.
                            !            * @throws UnsupportedOperationException if the list does
                            !            *         not support removing elements.
                            !            */
                            !           public void remove()
                            !           {
                            !               i.remove();
                            !               size--;
                            !               position = nextIndex();
                            !               modCount = backingList.modCount;
                            !           }
                            ! 
                            ! 
                            !           /**
                            !            * Replaces the last object retrieved by next()
                            !            * or previous with o, if the list supports object
                            !            * replacement and an add or remove operation has not already
                            !            * been performed.
                            !            *
                            !            * @throws IllegalStateException if the iterator is positioned
                            !            *         before the start of the list or the last object has already
                            !            *         been removed.
                            !            * @throws UnsupportedOperationException if the list doesn't support
                            !            *         the addition or removal of elements.
                            !            * @throws ClassCastException if the type of o is not a valid type
                            !            *         for this list.
                            !            * @throws IllegalArgumentException if something else related to o
                            !            *         prevents its addition.
                            !            * @throws ConcurrentModificationException if the list
                            !            *         has been modified elsewhere.
                            !            */
                            !           public void set(E o)
                            !           {
                            !               i.set(o);
                            !           }
                            ! 
                            !           /**
                            !            * Adds the supplied object before the element that would be returned
                            !            * by a call to next(), if the list supports addition.
                            !            *
                            !            * @param o The object to add to the list.
                            !            * @throws UnsupportedOperationException if the list doesn't support
                            !            *         the addition of new elements.
                            !            * @throws ClassCastException if the type of o is not a valid type
                            !            *         for this list.
                            !            * @throws IllegalArgumentException if something else related to o
                            !            *         prevents its addition.
                            !            * @throws ConcurrentModificationException if the list
                            !            *         has been modified elsewhere.
                            !            */
                            !           public void add(E o)
                            !           {
                            !               i.add(o);
                            !               size++;
                            !               position++;
                            !               modCount = backingList.modCount;
                            !           }
                            ! 
                            !           // Here is the reason why the various modCount fields are mostly
                            !           // ignored in this wrapper listIterator.
                            !           // If the backing listIterator is failfast, then the following holds:
                            !           //   Using any other method on this list will call a corresponding
                            !           //   method on the backing list *after* the backing listIterator
                            !           //   is created, which will in turn cause a ConcurrentModException
                            !           //   when this listIterator comes to use the backing one. So it is
                            !           //   implicitly failfast.
                            !           // If the backing listIterator is NOT failfast, then the whole of
                            !           //   this list isn't failfast, because the modCount field of the
                            !           //   backing list is not valid. It would still be *possible* to
                            !           //   make the iterator failfast wrt modifications of the sublist
                            !           //   only, but somewhat pointless when the list can be changed under
                            !           //   us.
                            !           // Either way, no explicit handling of modCount is needed.
                            !           // However modCount = backingList.modCount must be executed in add
                            !           // and remove, and size must also be updated in these two methods,
                            !           // since they do not go through the corresponding methods of the subList.
                            !         };
                                  }
                                } // class SubList
                              
                            *************** while (i.hasNext())
                            *** 1200,1204 ****
                                    super(backing, fromIndex, toIndex);
                                  }
                                } // class RandomAccessSubList
                            !   
                              } // class AbstractList
                            --- 1200,1204 ----
                                    super(backing, fromIndex, toIndex);
                                  }
                                } // class RandomAccessSubList
                            ! 
                              } // class AbstractList
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/AbstractMap.java gcc-4.6.0/libjava/classpath/java/util/AbstractMap.java
                            *** gcc-4.5.2/libjava/classpath/java/util/AbstractMap.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/AbstractMap.java	Tue Jan 11 19:46:05 2011
                            *************** import java.io.Serializable;
                            *** 71,84 ****
                               */
                              public abstract class AbstractMap implements Map
                              {
                            !   /** 
                                 * A class containing an immutable key and value.  The
                                 * implementation of {@link Entry#setValue(V)} for this class
                                 * simply throws an {@link UnsupportedOperationException},
                                 * thus preventing changes being made.  This is useful when
                                 * a static thread-safe view of a map is required.
                                 *
                            !    * @since 1.6 
                                 */
                                public static class SimpleImmutableEntry
                                  implements Entry, Serializable
                            --- 71,84 ----
                               */
                              public abstract class AbstractMap implements Map
                              {
                            !   /**
                                 * A class containing an immutable key and value.  The
                                 * implementation of {@link Entry#setValue(V)} for this class
                                 * simply throws an {@link UnsupportedOperationException},
                                 * thus preventing changes being made.  This is useful when
                                 * a static thread-safe view of a map is required.
                                 *
                            !    * @since 1.6
                                 */
                                public static class SimpleImmutableEntry
                                  implements Entry, Serializable
                            *************** public abstract class AbstractMap 
                            *** 251,258 ****
                                public boolean equals(Object o)
                                {
                                  return (o == this
                            ! 	    || (o instanceof Map
                            ! 		&& entrySet().equals(((Map) o).entrySet())));
                                }
                              
                                /**
                            --- 251,258 ----
                                public boolean equals(Object o)
                                {
                                  return (o == this
                            !             || (o instanceof Map
                            !                 && entrySet().equals(((Map) o).entrySet())));
                                }
                              
                                /**
                            *************** public abstract class AbstractMap 
                            *** 330,405 ****
                                  if (keys == null)
                                    keys = new AbstractSet()
                                    {
                            ! 	/**
                            ! 	 * Retrieves the number of keys in the backing map.
                            ! 	 *
                            ! 	 * @return The number of keys.
                            ! 	 */
                                      public int size()
                                      {
                                        return AbstractMap.this.size();
                                      }
                              
                            ! 	/**
                            ! 	 * Returns true if the backing map contains the
                            ! 	 * supplied key.
                            ! 	 *
                            ! 	 * @param key The key to search for.
                            ! 	 * @return True if the key was found, false otherwise.
                            !  	 */
                                      public boolean contains(Object key)
                                      {
                                        return containsKey(key);
                                      }
                              
                            ! 	/**
                            ! 	 * Returns an iterator which iterates over the keys
                            ! 	 * in the backing map, using a wrapper around the
                            ! 	 * iterator returned by entrySet().
                            ! 	 *
                            ! 	 * @return An iterator over the keys.
                            ! 	 */
                                      public Iterator iterator()
                                      {
                                        return new Iterator()
                                        {
                            ! 	    /**
                            ! 	     * The iterator returned by entrySet().
                            ! 	     */
                                          private final Iterator> map_iterator
                            ! 	      = entrySet().iterator();
                              
                            ! 	    /**
                            ! 	     * Returns true if a call to next() will
                            ! 	     * return another key.
                            ! 	     *
                            ! 	     * @return True if the iterator has not yet reached
                            ! 	     *         the last key.
                            ! 	     */
                                          public boolean hasNext()
                                          {
                                            return map_iterator.hasNext();
                                          }
                              
                            ! 	    /**
                            ! 	     * Returns the key from the next entry retrieved
                            ! 	     * by the underlying entrySet() iterator.
                            ! 	     *
                            ! 	     * @return The next key.
                            ! 	     */ 
                                         public K next()
                                          {
                                            return map_iterator.next().getKey();
                                          }
                              
                            ! 	    /**
                            ! 	     * Removes the map entry which has a key equal
                            ! 	     * to that returned by the last call to
                            ! 	     * next().
                            ! 	     *
                            ! 	     * @throws UnsupportedOperationException if the
                            ! 	     *         map doesn't support removal.
                            ! 	     */
                                          public void remove()
                                          {
                                            map_iterator.remove();
                            --- 330,405 ----
                                  if (keys == null)
                                    keys = new AbstractSet()
                                    {
                            !         /**
                            !          * Retrieves the number of keys in the backing map.
                            !          *
                            !          * @return The number of keys.
                            !          */
                                      public int size()
                                      {
                                        return AbstractMap.this.size();
                                      }
                              
                            !         /**
                            !          * Returns true if the backing map contains the
                            !          * supplied key.
                            !          *
                            !          * @param key The key to search for.
                            !          * @return True if the key was found, false otherwise.
                            !          */
                                      public boolean contains(Object key)
                                      {
                                        return containsKey(key);
                                      }
                              
                            !         /**
                            !          * Returns an iterator which iterates over the keys
                            !          * in the backing map, using a wrapper around the
                            !          * iterator returned by entrySet().
                            !          *
                            !          * @return An iterator over the keys.
                            !          */
                                      public Iterator iterator()
                                      {
                                        return new Iterator()
                                        {
                            !             /**
                            !              * The iterator returned by entrySet().
                            !              */
                                          private final Iterator> map_iterator
                            !               = entrySet().iterator();
                              
                            !             /**
                            !              * Returns true if a call to next() will
                            !              * return another key.
                            !              *
                            !              * @return True if the iterator has not yet reached
                            !              *         the last key.
                            !              */
                                          public boolean hasNext()
                                          {
                                            return map_iterator.hasNext();
                                          }
                              
                            !             /**
                            !              * Returns the key from the next entry retrieved
                            !              * by the underlying entrySet() iterator.
                            !              *
                            !              * @return The next key.
                            !              */
                                         public K next()
                                          {
                                            return map_iterator.next().getKey();
                                          }
                              
                            !             /**
                            !              * Removes the map entry which has a key equal
                            !              * to that returned by the last call to
                            !              * next().
                            !              *
                            !              * @throws UnsupportedOperationException if the
                            !              *         map doesn't support removal.
                            !              */
                                          public void remove()
                                          {
                                            map_iterator.remove();
                            *************** public abstract class AbstractMap 
                            *** 565,641 ****
                                  if (values == null)
                                    values = new AbstractCollection()
                                    {
                            !  	/**
                            ! 	 * Returns the number of values stored in
                            ! 	 * the backing map.
                            ! 	 *
                            ! 	 * @return The number of values.
                            ! 	 */
                                     public int size()
                                      {
                                        return AbstractMap.this.size();
                                      }
                              
                            ! 	/**
                            ! 	 * Returns true if the backing map contains
                            ! 	 * the supplied value.
                            ! 	 *
                            ! 	 * @param value The value to search for.
                            ! 	 * @return True if the value was found, false otherwise.
                            ! 	 */
                                      public boolean contains(Object value)
                                      {
                                        return containsValue(value);
                                      }
                              
                            ! 	/**
                            ! 	 * Returns an iterator which iterates over the
                            ! 	 * values in the backing map, by using a wrapper
                            ! 	 * around the iterator returned by entrySet().
                            ! 	 *
                            ! 	 * @return An iterator over the values.
                            ! 	 */
                                      public Iterator iterator()
                                      {
                                        return new Iterator()
                                        {
                            ! 	    /**
                            ! 	     * The iterator returned by entrySet().
                            ! 	     */
                                          private final Iterator> map_iterator
                            ! 	      = entrySet().iterator();
                              
                            !  	    /**
                            !  	     * Returns true if a call to next() will
                            !  	     * return another value.
                            !  	     *
                            !  	     * @return True if the iterator has not yet reached
                            !  	     * the last value.
                            !  	     */
                                          public boolean hasNext()
                                          {
                                            return map_iterator.hasNext();
                                          }
                              
                            !  	    /**
                            !  	     * Returns the value from the next entry retrieved
                            !  	     * by the underlying entrySet() iterator.
                            !  	     *
                            !  	     * @return The next value.
                            !  	     */
                                          public V next()
                                          {
                                            return map_iterator.next().getValue();
                                          }
                              
                            !  	    /**
                            !  	     * Removes the map entry which has a key equal
                            !  	     * to that returned by the last call to
                            !  	     * next().
                            !  	     *
                            !  	     * @throws UnsupportedOperationException if the
                            !  	     *         map doesn't support removal.
                            !  	     */
                                          public void remove()
                                          {
                                            map_iterator.remove();
                            --- 565,641 ----
                                  if (values == null)
                                    values = new AbstractCollection()
                                    {
                            !         /**
                            !          * Returns the number of values stored in
                            !          * the backing map.
                            !          *
                            !          * @return The number of values.
                            !          */
                                     public int size()
                                      {
                                        return AbstractMap.this.size();
                                      }
                              
                            !         /**
                            !          * Returns true if the backing map contains
                            !          * the supplied value.
                            !          *
                            !          * @param value The value to search for.
                            !          * @return True if the value was found, false otherwise.
                            !          */
                                      public boolean contains(Object value)
                                      {
                                        return containsValue(value);
                                      }
                              
                            !         /**
                            !          * Returns an iterator which iterates over the
                            !          * values in the backing map, by using a wrapper
                            !          * around the iterator returned by entrySet().
                            !          *
                            !          * @return An iterator over the values.
                            !          */
                                      public Iterator iterator()
                                      {
                                        return new Iterator()
                                        {
                            !             /**
                            !              * The iterator returned by entrySet().
                            !              */
                                          private final Iterator> map_iterator
                            !               = entrySet().iterator();
                              
                            !             /**
                            !              * Returns true if a call to next() will
                            !              * return another value.
                            !              *
                            !              * @return True if the iterator has not yet reached
                            !              * the last value.
                            !              */
                                          public boolean hasNext()
                                          {
                                            return map_iterator.hasNext();
                                          }
                              
                            !             /**
                            !              * Returns the value from the next entry retrieved
                            !              * by the underlying entrySet() iterator.
                            !              *
                            !              * @return The next value.
                            !              */
                                          public V next()
                                          {
                                            return map_iterator.next().getValue();
                                          }
                              
                            !             /**
                            !              * Removes the map entry which has a key equal
                            !              * to that returned by the last call to
                            !              * next().
                            !              *
                            !              * @throws UnsupportedOperationException if the
                            !              *         map doesn't support removal.
                            !              */
                                          public void remove()
                                          {
                                            map_iterator.remove();
                            *************** public abstract class AbstractMap 
                            *** 680,686 ****
                                 *
                                 * @author Jon Zeppieri
                                 * @author Eric Blake (ebb9@email.byu.edu)
                            !    * 
                                 * @since 1.6
                                 */
                                public static class SimpleEntry implements Entry, Serializable
                            --- 680,686 ----
                                 *
                                 * @author Jon Zeppieri
                                 * @author Eric Blake (ebb9@email.byu.edu)
                            !    *
                                 * @since 1.6
                                 */
                                public static class SimpleEntry implements Entry, Serializable
                            *************** public abstract class AbstractMap 
                            *** 711,717 ****
                                    key = newKey;
                                    value = newValue;
                                  }
                            !     
                                  public SimpleEntry(Entry entry)
                                  {
                                    this(entry.getKey(), entry.getValue());
                            --- 711,717 ----
                                    key = newKey;
                                    value = newValue;
                                  }
                            ! 
                                  public SimpleEntry(Entry entry)
                                  {
                                    this(entry.getKey(), entry.getValue());
                            *************** public abstract class AbstractMap 
                            *** 814,819 ****
                                    return key + "=" + value;
                                  }
                                } // class SimpleEntry
                            !   
                            !   
                              }
                            --- 814,819 ----
                                    return key + "=" + value;
                                  }
                                } // class SimpleEntry
                            ! 
                            ! 
                              }
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/AbstractSet.java gcc-4.6.0/libjava/classpath/java/util/AbstractSet.java
                            *** gcc-4.5.2/libjava/classpath/java/util/AbstractSet.java	Tue Jan  9 19:58:05 2007
                            --- gcc-4.6.0/libjava/classpath/java/util/AbstractSet.java	Tue Jan 11 19:46:05 2011
                            *************** public abstract class AbstractSet
                            *** 83,90 ****
                                public boolean equals(Object o)
                                {
                                  return (o == this
                            ! 	    || (o instanceof Set && ((Set) o).size() == size()
                            ! 		&& containsAll((Collection) o)));
                                }
                              
                                /**
                            --- 83,90 ----
                                public boolean equals(Object o)
                                {
                                  return (o == this
                            !             || (o instanceof Set && ((Set) o).size() == size()
                            !                 && containsAll((Collection) o)));
                                }
                              
                                /**
                            *************** public abstract class AbstractSet
                            *** 128,145 ****
                                  int count = c.size();
                                  if (oldsize < count)
                                    {
                            ! 	Iterator i;
                            ! 	for (i = iterator(), count = oldsize; count > 0; count--)
                            ! 	  {
                            ! 	    if (c.contains(i.next()))
                            ! 	      i.remove();
                            ! 	  }
                                    }
                                  else
                                    {
                            ! 	Iterator i;
                            ! 	for (i = c.iterator(); count > 0; count--)
                            ! 	  remove(i.next());
                                    }
                                  return oldsize != size();
                                }
                            --- 128,145 ----
                                  int count = c.size();
                                  if (oldsize < count)
                                    {
                            !         Iterator i;
                            !         for (i = iterator(), count = oldsize; count > 0; count--)
                            !           {
                            !             if (c.contains(i.next()))
                            !               i.remove();
                            !           }
                                    }
                                  else
                                    {
                            !         Iterator i;
                            !         for (i = c.iterator(); count > 0; count--)
                            !           remove(i.next());
                                    }
                                  return oldsize != size();
                                }
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/ArrayList.java gcc-4.6.0/libjava/classpath/java/util/ArrayList.java
                            *** gcc-4.5.2/libjava/classpath/java/util/ArrayList.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/ArrayList.java	Tue Jan 11 19:46:05 2011
                            *************** public class ArrayList extends Abstra
                            *** 503,510 ****
                                  // do so).
                                  throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
                                }
                            !   
                            !   
                                /**
                                 * Remove from this list all elements contained in the given collection.
                                 * This is not public, due to Sun's API, but this performs in linear
                            --- 503,510 ----
                                  // do so).
                                  throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
                                }
                            ! 
                            ! 
                                /**
                                 * Remove from this list all elements contained in the given collection.
                                 * This is not public, due to Sun's API, but this performs in linear
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Arrays.java gcc-4.6.0/libjava/classpath/java/util/Arrays.java
                            *** gcc-4.5.2/libjava/classpath/java/util/Arrays.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/Arrays.java	Tue Jan 11 19:46:05 2011
                            *************** public class Arrays
                            *** 76,82 ****
                                {
                                }
                              
                            ! 
                              // binarySearch
                                /**
                                 * Perform a binary search of a byte array for a key. The array must be
                            --- 76,82 ----
                                {
                                }
                              
                            ! 
                              // binarySearch
                                /**
                                 * Perform a binary search of a byte array for a key. The array must be
                            *************** public class Arrays
                            *** 122,131 ****
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            ! 					 "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            ! 					       "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            --- 122,131 ----
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            !                                          "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            !                                                "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            *************** public class Arrays
                            *** 186,195 ****
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            ! 					 "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            ! 					       "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            --- 186,195 ----
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            !                                          "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            !                                                "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            *************** public class Arrays
                            *** 250,259 ****
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            ! 					 "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            ! 					       "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            --- 250,259 ----
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            !                                          "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            !                                                "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            *************** public class Arrays
                            *** 314,323 ****
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            ! 					 "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            ! 					       "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            --- 314,323 ----
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            !                                          "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            !                                                "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            *************** public class Arrays
                            *** 378,387 ****
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            ! 					 "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            ! 					       "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            --- 378,387 ----
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            !                                          "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            !                                                "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                            *************** public class Arrays
                            *** 442,451 ****
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            ! 					 "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            ! 					       "of bounds.");
                                  // Must use Float.compare to take into account NaN, +-0.
                                  int mid = 0;
                                  while (low <= hi)
                            --- 442,451 ----
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            !                                          "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            !                                                "of bounds.");
                                  // Must use Float.compare to take into account NaN, +-0.
                                  int mid = 0;
                                  while (low <= hi)
                            *************** public class Arrays
                            *** 507,516 ****
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            ! 					 "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            ! 					       "of bounds.");
                                  // Must use Double.compare to take into account NaN, +-0.
                                  int mid = 0;
                                  while (low <= hi)
                            --- 507,516 ----
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            !                                          "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            !                                                "of bounds.");
                                  // Must use Double.compare to take into account NaN, +-0.
                                  int mid = 0;
                                  while (low <= hi)
                            *************** public class Arrays
                            *** 629,649 ****
                                 *                                        hi > a.length.
                                 */
                                public static  int binarySearch(T[] a, int low, int hi, T key,
                            ! 				     Comparator c)
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            ! 					 "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            ! 					       "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                                      mid = (low + hi) >>> 1;
                            ! 	// NOTE: Please keep the order of a[mid] and key.  Although
                            ! 	// not required by the specs, the RI has it in this order as
                            ! 	// well, and real programs (erroneously) depend on it.
                                      final int d = Collections.compare(a[mid], key, c);
                                      if (d == 0)
                                        return mid;
                            --- 629,649 ----
                                 *                                        hi > a.length.
                                 */
                                public static  int binarySearch(T[] a, int low, int hi, T key,
                            !                                      Comparator c)
                                {
                                  if (low > hi)
                                    throw new IllegalArgumentException("The start index is higher than " +
                            !                                          "the finish index.");
                                  if (low < 0 || hi > a.length)
                                    throw new ArrayIndexOutOfBoundsException("One of the indices is out " +
                            !                                                "of bounds.");
                                  int mid = 0;
                                  while (low <= hi)
                                    {
                                      mid = (low + hi) >>> 1;
                            !         // NOTE: Please keep the order of a[mid] and key.  Although
                            !         // not required by the specs, the RI has it in this order as
                            !         // well, and real programs (erroneously) depend on it.
                                      final int d = Collections.compare(a[mid], key, c);
                                      if (d == 0)
                                        return mid;
                            *************** public class Arrays
                            *** 656,662 ****
                                  return -mid - 1;
                                }
                              
                            ! 
                              // equals
                                /**
                                 * Compare two boolean arrays for equality.
                            --- 656,662 ----
                                  return -mid - 1;
                                }
                              
                            ! 
                              // equals
                                /**
                                 * Compare two boolean arrays for equality.
                            *************** public class Arrays
                            *** 675,689 ****
                              
                                  if (null == a1 || null == a2)
                                    return false;
                            !     
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (a1[i] != a2[i])
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                            --- 675,689 ----
                              
                                  if (null == a1 || null == a2)
                                    return false;
                            ! 
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (a1[i] != a2[i])
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                            *************** public class Arrays
                            *** 709,719 ****
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (a1[i] != a2[i])
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                            --- 709,719 ----
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (a1[i] != a2[i])
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                            *************** public class Arrays
                            *** 735,749 ****
                              
                                  if (null == a1 || null == a2)
                                    return false;
                            !     
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (a1[i] != a2[i])
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                            --- 735,749 ----
                              
                                  if (null == a1 || null == a2)
                                    return false;
                            ! 
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (a1[i] != a2[i])
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                            *************** public class Arrays
                            *** 769,779 ****
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (a1[i] != a2[i])
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                            --- 769,779 ----
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (a1[i] != a2[i])
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                            *************** public class Arrays
                            *** 799,809 ****
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (a1[i] != a2[i])
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                            --- 799,809 ----
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (a1[i] != a2[i])
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                            *************** public class Arrays
                            *** 829,839 ****
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (a1[i] != a2[i])
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                            --- 829,839 ----
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (a1[i] != a2[i])
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                            *************** public class Arrays
                            *** 860,870 ****
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (Float.compare(a1[i], a2[i]) != 0)
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                            --- 860,870 ----
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (Float.compare(a1[i], a2[i]) != 0)
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                            *************** public class Arrays
                            *** 886,901 ****
                              
                                  if (null == a1 || null == a2)
                                    return false;
                            !     
                                  // Must use Double.compare to take into account NaN, +-0.
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (Double.compare(a1[i], a2[i]) != 0)
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                            --- 886,901 ----
                              
                                  if (null == a1 || null == a2)
                                    return false;
                            ! 
                                  // Must use Double.compare to take into account NaN, +-0.
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (Double.compare(a1[i], a2[i]) != 0)
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                            *************** public class Arrays
                            *** 918,937 ****
                              
                                  if (null == a1 || null == a2)
                                    return false;
                            !     
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            ! 	int i = a1.length;
                            ! 	while (--i >= 0)
                            ! 	  if (! AbstractCollection.equals(a1[i], a2[i]))
                            ! 	    return false;
                            ! 	return true;
                                    }
                                  return false;
                                }
                              
                            ! 
                              // fill
                                /**
                                 * Fill an array with a boolean value.
                            --- 918,937 ----
                              
                                  if (null == a1 || null == a2)
                                    return false;
                            ! 
                                  // If they're the same length, test each element
                                  if (a1.length == a2.length)
                                    {
                            !         int i = a1.length;
                            !         while (--i >= 0)
                            !           if (! AbstractCollection.equals(a1[i], a2[i]))
                            !             return false;
                            !         return true;
                                    }
                                  return false;
                                }
                              
                            ! 
                              // fill
                                /**
                                 * Fill an array with a boolean value.
                            *************** public class Arrays
                            *** 1207,1213 ****
                                    a[i] = val;
                                }
                              
                            ! 
                              // sort
                                // Thanks to Paul Fisher (rao@gnu.org) for finding this quicksort algorithm
                                // as specified by Sun and porting it to Java. The algorithm is an optimised
                            --- 1207,1213 ----
                                    a[i] = val;
                                }
                              
                            ! 
                              // sort
                                // Thanks to Paul Fisher (rao@gnu.org) for finding this quicksort algorithm
                                // as specified by Sun and porting it to Java. The algorithm is an optimised
                            *************** public class Arrays
                            *** 1633,1640 ****
                                  if (count <= 7)
                                    {
                                      for (int i = from + 1; i < from + count; i++)
                            ! 	  for (int j = i; j > from && array[j - 1] > array[j]; j--)
                            ! 	    swap(j, j - 1, array);
                                      return;
                                    }
                              
                            --- 1633,1640 ----
                                  if (count <= 7)
                                    {
                                      for (int i = from + 1; i < from + count; i++)
                            !           for (int j = i; j > from && array[j - 1] > array[j]; j--)
                            !             swap(j, j - 1, array);
                                      return;
                                    }
                              
                            *************** public class Arrays
                            *** 2488,2494 ****
                                 *         ordering (only possible when c is null)
                                 */
                                public static  void sort(T[] a, int fromIndex, int toIndex,
                            ! 			      Comparator c)
                                {
                                  if (fromIndex > toIndex)
                                    throw new IllegalArgumentException("fromIndex " + fromIndex
                            --- 2488,2494 ----
                                 *         ordering (only possible when c is null)
                                 */
                                public static  void sort(T[] a, int fromIndex, int toIndex,
                            !                               Comparator c)
                                {
                                  if (fromIndex > toIndex)
                                    throw new IllegalArgumentException("fromIndex " + fromIndex
                            *************** public class Arrays
                            *** 2618,2624 ****
                                 *
                                 * @param a the array to return a view of (null not permitted)
                                 * @return a fixed-size list, changes to which "write through" to the array
                            !    * 
                                 * @throws NullPointerException if a is null.
                                 * @see Serializable
                                 * @see RandomAccess
                            --- 2618,2624 ----
                                 *
                                 * @param a the array to return a view of (null not permitted)
                                 * @return a fixed-size list, changes to which "write through" to the array
                            !    *
                                 * @throws NullPointerException if a is null.
                                 * @see Serializable
                                 * @see RandomAccess
                            *************** public class Arrays
                            *** 2629,2635 ****
                                  return new Arrays.ArrayList(a);
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of long numbers.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            --- 2629,2635 ----
                                  return new Arrays.ArrayList(a);
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of long numbers.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            *************** public class Arrays
                            *** 2640,2646 ****
                                 * @param v an array of long numbers for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(long[] v)
                                {
                            --- 2640,2646 ----
                                 * @param v an array of long numbers for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(long[] v)
                                {
                            *************** public class Arrays
                            *** 2649,2661 ****
                                  int result = 1;
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	int elt = (int) (v[i] ^ (v[i] >>> 32));
                            ! 	result = 31 * result + elt;
                                    }
                                  return result;
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of integer numbers.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            --- 2649,2661 ----
                                  int result = 1;
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         int elt = (int) (v[i] ^ (v[i] >>> 32));
                            !         result = 31 * result + elt;
                                    }
                                  return result;
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of integer numbers.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            *************** public class Arrays
                            *** 2666,2672 ****
                                 * @param v an array of integer numbers for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(int[] v)
                                {
                            --- 2666,2672 ----
                                 * @param v an array of integer numbers for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(int[] v)
                                {
                            *************** public class Arrays
                            *** 2678,2684 ****
                                  return result;
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of short numbers.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            --- 2678,2684 ----
                                  return result;
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of short numbers.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            *************** public class Arrays
                            *** 2689,2695 ****
                                 * @param v an array of short numbers for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(short[] v)
                                {
                            --- 2689,2695 ----
                                 * @param v an array of short numbers for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(short[] v)
                                {
                            *************** public class Arrays
                            *** 2701,2707 ****
                                  return result;
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of characters.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            --- 2701,2707 ----
                                  return result;
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of characters.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            *************** public class Arrays
                            *** 2712,2718 ****
                                 * @param v an array of characters for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(char[] v)
                                {
                            --- 2712,2718 ----
                                 * @param v an array of characters for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(char[] v)
                                {
                            *************** public class Arrays
                            *** 2724,2730 ****
                                  return result;
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of bytes.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            --- 2724,2730 ----
                                  return result;
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of bytes.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            *************** public class Arrays
                            *** 2735,2741 ****
                                 * @param v an array of bytes for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(byte[] v)
                                {
                            --- 2735,2741 ----
                                 * @param v an array of bytes for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(byte[] v)
                                {
                            *************** public class Arrays
                            *** 2747,2753 ****
                                  return result;
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of booleans.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            --- 2747,2753 ----
                                  return result;
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of booleans.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            *************** public class Arrays
                            *** 2758,2764 ****
                                 * @param v an array of booleans for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(boolean[] v)
                                {
                            --- 2758,2764 ----
                                 * @param v an array of booleans for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(boolean[] v)
                                {
                            *************** public class Arrays
                            *** 2770,2776 ****
                                  return result;
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of floats.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            --- 2770,2776 ----
                                  return result;
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of floats.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            *************** public class Arrays
                            *** 2781,2787 ****
                                 * @param v an array of floats for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(float[] v)
                                {
                            --- 2781,2787 ----
                                 * @param v an array of floats for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(float[] v)
                                {
                            *************** public class Arrays
                            *** 2793,2799 ****
                                  return result;
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of doubles.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            --- 2793,2799 ----
                                  return result;
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of doubles.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            *************** public class Arrays
                            *** 2804,2810 ****
                                 * @param v an array of doubles for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(double[] v)
                                {
                            --- 2804,2810 ----
                                 * @param v an array of doubles for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(double[] v)
                                {
                            *************** public class Arrays
                            *** 2813,2836 ****
                                  int result = 1;
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	long l = Double.doubleToLongBits(v[i]);
                            ! 	int elt = (int) (l ^ (l >>> 32));
                            ! 	result = 31 * result + elt;
                                    }
                                  return result;
                                }
                              
                            !   /** 
                                 * Returns the hashcode of an array of objects.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            !    * obtained by the corresponding List object.  
                                 * For null, 0 is returned.
                                 *
                                 * @param v an array of integer numbers for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5 
                                 */
                                public static int hashCode(Object[] v)
                                {
                            --- 2813,2836 ----
                                  int result = 1;
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         long l = Double.doubleToLongBits(v[i]);
                            !         int elt = (int) (l ^ (l >>> 32));
                            !         result = 31 * result + elt;
                                    }
                                  return result;
                                }
                              
                            !   /**
                                 * Returns the hashcode of an array of objects.  If two arrays
                                 * are equal, according to equals(), they should have the
                                 * same hashcode.  The hashcode returned by the method is equal to that
                            !    * obtained by the corresponding List object.
                                 * For null, 0 is returned.
                                 *
                                 * @param v an array of integer numbers for which the hash code should be
                                 *          computed.
                                 * @return the hash code of the array, or 0 if null was given.
                            !    * @since 1.5
                                 */
                                public static int hashCode(Object[] v)
                                {
                            *************** public class Arrays
                            *** 2839,2846 ****
                                  int result = 1;
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	int elt = v[i] == null ? 0 : v[i].hashCode();
                            ! 	result = 31 * result + elt;
                                    }
                                  return result;
                                }
                            --- 2839,2846 ----
                                  int result = 1;
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         int elt = v[i] == null ? 0 : v[i].hashCode();
                            !         result = 31 * result + elt;
                                    }
                                  return result;
                                }
                            *************** public class Arrays
                            *** 2852,2881 ****
                                  int result = 1;
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	int elt;
                            ! 	if (v[i] == null)
                            ! 	  elt = 0;
                            ! 	else if (v[i] instanceof boolean[])
                            ! 	  elt = hashCode((boolean[]) v[i]);
                            ! 	else if (v[i] instanceof byte[])
                            ! 	  elt = hashCode((byte[]) v[i]);
                            ! 	else if (v[i] instanceof char[])
                            ! 	  elt = hashCode((char[]) v[i]);
                            ! 	else if (v[i] instanceof short[])
                            ! 	  elt = hashCode((short[]) v[i]);
                            ! 	else if (v[i] instanceof int[])
                            ! 	  elt = hashCode((int[]) v[i]);
                            ! 	else if (v[i] instanceof long[])
                            ! 	  elt = hashCode((long[]) v[i]);
                            ! 	else if (v[i] instanceof float[])
                            ! 	  elt = hashCode((float[]) v[i]);
                            ! 	else if (v[i] instanceof double[])
                            ! 	  elt = hashCode((double[]) v[i]);
                            ! 	else if (v[i] instanceof Object[])
                            ! 	  elt = hashCode((Object[]) v[i]);
                            ! 	else
                            ! 	  elt = v[i].hashCode();
                            ! 	result = 31 * result + elt;
                                    }
                                  return result;
                                }
                            --- 2852,2881 ----
                                  int result = 1;
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         int elt;
                            !         if (v[i] == null)
                            !           elt = 0;
                            !         else if (v[i] instanceof boolean[])
                            !           elt = hashCode((boolean[]) v[i]);
                            !         else if (v[i] instanceof byte[])
                            !           elt = hashCode((byte[]) v[i]);
                            !         else if (v[i] instanceof char[])
                            !           elt = hashCode((char[]) v[i]);
                            !         else if (v[i] instanceof short[])
                            !           elt = hashCode((short[]) v[i]);
                            !         else if (v[i] instanceof int[])
                            !           elt = hashCode((int[]) v[i]);
                            !         else if (v[i] instanceof long[])
                            !           elt = hashCode((long[]) v[i]);
                            !         else if (v[i] instanceof float[])
                            !           elt = hashCode((float[]) v[i]);
                            !         else if (v[i] instanceof double[])
                            !           elt = hashCode((double[]) v[i]);
                            !         else if (v[i] instanceof Object[])
                            !           elt = hashCode((Object[]) v[i]);
                            !         else
                            !           elt = v[i].hashCode();
                            !         result = 31 * result + elt;
                                    }
                                  return result;
                                }
                            *************** public class Arrays
                            *** 2890,2926 ****
                              
                                  for (int i = 0; i < v1.length; ++i)
                                    {
                            ! 	Object e1 = v1[i];
                            ! 	Object e2 = v2[i];
                              
                            ! 	if (e1 == e2)
                            ! 	  continue;
                            ! 	if (e1 == null || e2 == null)
                            ! 	  return false;
                              
                            ! 	boolean check;
                            ! 	if (e1 instanceof boolean[] && e2 instanceof boolean[])
                            ! 	  check = equals((boolean[]) e1, (boolean[]) e2);
                            ! 	else if (e1 instanceof byte[] && e2 instanceof byte[])
                            ! 	  check = equals((byte[]) e1, (byte[]) e2);
                            ! 	else if (e1 instanceof char[] && e2 instanceof char[])
                            ! 	  check = equals((char[]) e1, (char[]) e2);
                            ! 	else if (e1 instanceof short[] && e2 instanceof short[])
                            ! 	  check = equals((short[]) e1, (short[]) e2);
                            ! 	else if (e1 instanceof int[] && e2 instanceof int[])
                            ! 	  check = equals((int[]) e1, (int[]) e2);
                            ! 	else if (e1 instanceof long[] && e2 instanceof long[])
                            ! 	  check = equals((long[]) e1, (long[]) e2);
                            ! 	else if (e1 instanceof float[] && e2 instanceof float[])
                            ! 	  check = equals((float[]) e1, (float[]) e2);
                            ! 	else if (e1 instanceof double[] && e2 instanceof double[])
                            ! 	  check = equals((double[]) e1, (double[]) e2);
                            ! 	else if (e1 instanceof Object[] && e2 instanceof Object[])
                            ! 	  check = equals((Object[]) e1, (Object[]) e2);
                            ! 	else
                            ! 	  check = e1.equals(e2);
                            ! 	if (! check)
                            ! 	  return false;
                                    }
                              
                                  return true;
                            --- 2890,2926 ----
                              
                                  for (int i = 0; i < v1.length; ++i)
                                    {
                            !         Object e1 = v1[i];
                            !         Object e2 = v2[i];
                              
                            !         if (e1 == e2)
                            !           continue;
                            !         if (e1 == null || e2 == null)
                            !           return false;
                              
                            !         boolean check;
                            !         if (e1 instanceof boolean[] && e2 instanceof boolean[])
                            !           check = equals((boolean[]) e1, (boolean[]) e2);
                            !         else if (e1 instanceof byte[] && e2 instanceof byte[])
                            !           check = equals((byte[]) e1, (byte[]) e2);
                            !         else if (e1 instanceof char[] && e2 instanceof char[])
                            !           check = equals((char[]) e1, (char[]) e2);
                            !         else if (e1 instanceof short[] && e2 instanceof short[])
                            !           check = equals((short[]) e1, (short[]) e2);
                            !         else if (e1 instanceof int[] && e2 instanceof int[])
                            !           check = equals((int[]) e1, (int[]) e2);
                            !         else if (e1 instanceof long[] && e2 instanceof long[])
                            !           check = equals((long[]) e1, (long[]) e2);
                            !         else if (e1 instanceof float[] && e2 instanceof float[])
                            !           check = equals((float[]) e1, (float[]) e2);
                            !         else if (e1 instanceof double[] && e2 instanceof double[])
                            !           check = equals((double[]) e1, (double[]) e2);
                            !         else if (e1 instanceof Object[] && e2 instanceof Object[])
                            !           check = equals((Object[]) e1, (Object[]) e2);
                            !         else
                            !           check = e1.equals(e2);
                            !         if (! check)
                            !           return false;
                                    }
                              
                                  return true;
                            *************** public class Arrays
                            *** 2940,2948 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 2940,2948 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 2962,2970 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 2962,2970 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 2984,2992 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 2984,2992 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 3006,3014 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 3006,3014 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 3028,3036 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 3028,3036 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 3050,3058 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 3050,3058 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 3072,3080 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 3072,3080 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 3094,3102 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 3094,3102 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 3116,3124 ****
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            --- 3116,3124 ----
                                  CPStringBuilder b = new CPStringBuilder("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         b.append(v[i]);
                                    }
                                  b.append("]");
                                  return b.toString();
                            *************** public class Arrays
                            *** 3129,3168 ****
                                  b.append("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            ! 	if (i > 0)
                            ! 	  b.append(", ");
                            ! 	Object elt = v[i];
                            ! 	if (elt == null)
                            ! 	  b.append("null");
                            ! 	else if (elt instanceof boolean[])
                            ! 	  b.append(toString((boolean[]) elt));
                            ! 	else if (elt instanceof byte[])
                            ! 	  b.append(toString((byte[]) elt));
                            ! 	else if (elt instanceof char[])
                            ! 	  b.append(toString((char[]) elt));
                            ! 	else if (elt instanceof short[])
                            ! 	  b.append(toString((short[]) elt));
                            ! 	else if (elt instanceof int[])
                            ! 	  b.append(toString((int[]) elt));
                            ! 	else if (elt instanceof long[])
                            ! 	  b.append(toString((long[]) elt));
                            ! 	else if (elt instanceof float[])
                            ! 	  b.append(toString((float[]) elt));
                            ! 	else if (elt instanceof double[])
                            ! 	  b.append(toString((double[]) elt));
                            ! 	else if (elt instanceof Object[])
                            ! 	  {
                            ! 	    Object[] os = (Object[]) elt;
                            ! 	    if (seen.contains(os))
                            ! 	      b.append("[...]");
                            ! 	    else
                            ! 	      {
                            ! 		seen.add(os);
                            ! 		deepToString(os, b, seen);
                            ! 	      }
                            ! 	  }
                            ! 	else
                            ! 	  b.append(elt);
                                    }
                                  b.append("]");
                                }
                            --- 3129,3168 ----
                                  b.append("[");
                                  for (int i = 0; i < v.length; ++i)
                                    {
                            !         if (i > 0)
                            !           b.append(", ");
                            !         Object elt = v[i];
                            !         if (elt == null)
                            !           b.append("null");
                            !         else if (elt instanceof boolean[])
                            !           b.append(toString((boolean[]) elt));
                            !         else if (elt instanceof byte[])
                            !           b.append(toString((byte[]) elt));
                            !         else if (elt instanceof char[])
                            !           b.append(toString((char[]) elt));
                            !         else if (elt instanceof short[])
                            !           b.append(toString((short[]) elt));
                            !         else if (elt instanceof int[])
                            !           b.append(toString((int[]) elt));
                            !         else if (elt instanceof long[])
                            !           b.append(toString((long[]) elt));
                            !         else if (elt instanceof float[])
                            !           b.append(toString((float[]) elt));
                            !         else if (elt instanceof double[])
                            !           b.append(toString((double[]) elt));
                            !         else if (elt instanceof Object[])
                            !           {
                            !             Object[] os = (Object[]) elt;
                            !             if (seen.contains(os))
                            !               b.append("[...]");
                            !             else
                            !               {
                            !                 seen.add(os);
                            !                 deepToString(os, b, seen);
                            !               }
                            !           }
                            !         else
                            !           b.append(elt);
                                    }
                                  b.append("]");
                                }
                            *************** public class Arrays
                            *** 3223,3229 ****
                                   *
                                   * @param index The index to retrieve an object from.
                                   * @return The object at the array index specified.
                            !      */ 
                                  public E get(int index)
                                  {
                                    return a[index];
                            --- 3223,3229 ----
                                   *
                                   * @param index The index to retrieve an object from.
                                   * @return The object at the array index specified.
                            !      */
                                  public E get(int index)
                                  {
                                    return a[index];
                            *************** public class Arrays
                            *** 3325,3331 ****
                                    int size = a.length;
                                    if (array.length < size)
                                      array = (T[]) Array.newInstance(array.getClass().getComponentType(),
                            ! 					size);
                                    else if (array.length > size)
                                      array[size] = null;
                              
                            --- 3325,3331 ----
                                    int size = a.length;
                                    if (array.length < size)
                                      array = (T[]) Array.newInstance(array.getClass().getComponentType(),
                            !                                         size);
                                    else if (array.length > size)
                                      array[size] = null;
                              
                            *************** public class Arrays
                            *** 3390,3402 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  boolean[] newArray = new boolean[to - from];
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, false);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3390,3402 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  boolean[] newArray = new boolean[to - from];
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, false);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3459,3471 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  byte[] newArray = new byte[to - from];
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, (byte)0);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3459,3471 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  byte[] newArray = new byte[to - from];
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, (byte)0);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3528,3540 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  char[] newArray = new char[to - from];
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, '\0');
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3528,3540 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  char[] newArray = new char[to - from];
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, '\0');
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3597,3609 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  double[] newArray = new double[to - from];
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, 0d);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3597,3609 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  double[] newArray = new double[to - from];
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, 0d);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3666,3678 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  float[] newArray = new float[to - from];
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, 0f);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3666,3678 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  float[] newArray = new float[to - from];
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, 0f);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3735,3747 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  int[] newArray = new int[to - from];
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, 0);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3735,3747 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  int[] newArray = new int[to - from];
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, 0);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3804,3816 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  long[] newArray = new long[to - from];
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, 0L);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3804,3816 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  long[] newArray = new long[to - from];
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, 0L);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3873,3885 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  short[] newArray = new short[to - from];
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, (short)0);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3873,3885 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  short[] newArray = new short[to - from];
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, (short)0);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3942,3955 ****
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  Class elemType = original.getClass().getComponentType();
                                  T[] newArray = (T[]) Array.newInstance(elemType, to - from);
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, null);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 3942,3955 ----
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  Class elemType = original.getClass().getComponentType();
                                  T[] newArray = (T[]) Array.newInstance(elemType, to - from);
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, null);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            *************** public class Arrays
                            *** 3977,3983 ****
                                 * @see #copyOfRange(U[],int,int,Class)
                                 */
                                public static  T[] copyOf(U[] original, int newLength,
                            ! 				 Class newType)
                                {
                                  if (newLength < 0)
                                    throw new NegativeArraySizeException("The array size is negative.");
                            --- 3977,3983 ----
                                 * @see #copyOfRange(U[],int,int,Class)
                                 */
                                public static  T[] copyOf(U[] original, int newLength,
                            !                                  Class newType)
                                {
                                  if (newLength < 0)
                                    throw new NegativeArraySizeException("The array size is negative.");
                            *************** public class Arrays
                            *** 4014,4031 ****
                                 * @see #copyOf(T[],int)
                                 */
                                public static  T[] copyOfRange(U[] original, int from, int to,
                            ! 				      Class newType)
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            ! 					 "the final index.");
                                  T[] newArray = (T[]) Array.newInstance(newType.getComponentType(),
                            ! 					   to - from);
                                  if (to > original.length)
                                    {
                            ! 	System.arraycopy(original, from, newArray, 0,
                            ! 			 original.length - from);
                            ! 	fill(newArray, original.length, newArray.length, null);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            --- 4014,4031 ----
                                 * @see #copyOf(T[],int)
                                 */
                                public static  T[] copyOfRange(U[] original, int from, int to,
                            !                                       Class newType)
                                {
                                  if (from > to)
                                    throw new IllegalArgumentException("The initial index is after " +
                            !                                          "the final index.");
                                  T[] newArray = (T[]) Array.newInstance(newType.getComponentType(),
                            !                                            to - from);
                                  if (to > original.length)
                                    {
                            !         System.arraycopy(original, from, newArray, 0,
                            !                          original.length - from);
                            !         fill(newArray, original.length, newArray.length, null);
                                    }
                                  else
                                    System.arraycopy(original, from, newArray, 0, to - from);
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/BitSet.java gcc-4.6.0/libjava/classpath/java/util/BitSet.java
                            *** gcc-4.5.2/libjava/classpath/java/util/BitSet.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/BitSet.java	Tue Jan 11 19:46:05 2011
                            *************** public class BitSet implements Cloneable
                            *** 107,113 ****
                                {
                                  if (nbits < 0)
                                    throw new NegativeArraySizeException();
                            !     
                                  int length = nbits >>> 6;
                                  if ((nbits & LONG_MASK) != 0)
                                    ++length;
                            --- 107,113 ----
                                {
                                  if (nbits < 0)
                                    throw new NegativeArraySizeException();
                            ! 
                                  int length = nbits >>> 6;
                                  if ((nbits & LONG_MASK) != 0)
                                    ++length;
                            *************** public class BitSet implements Cloneable
                            *** 412,418 ****
                                 * Then the following definition of the hashCode method
                                 * would be a correct implementation of the actual algorithm:
                                 *
                            !    * 
                              
                            public int hashCode()
                              {
                                long h = 1234;
                            --- 412,418 ----
                                 * Then the following definition of the hashCode method
                                 * would be a correct implementation of the actual algorithm:
                                 *
                            !    *
                              
                            public int hashCode()
                              {
                                long h = 1234;
                            *************** public class BitSet implements Cloneable
                            *** 535,541 ****
                                 * Returns the index of the next true bit, from the specified bit
                                 * (inclusive). If there is none, -1 is returned. You can iterate over
                                 * all true bits with this loop:
                            ! *
                            for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1))
                              {
                                // operate on i here
                            --- 535,541 ----
                                 * Returns the index of the next true bit, from the specified bit
                                 * (inclusive). If there is none, -1 is returned. You can iterate over
                                 * all true bits with this loop:
                            ! *
                            for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1))
                              {
                                // operate on i here
                            *************** public class BitSet implements Cloneable
                            *** 750,757 ****
                                {
                                  for (int i = other.bits.length - 1; i >= 0; i--)
                                    {
                            ! 	if ((bits[i] & other.bits[i]) != other.bits[i])
                            ! 	  return false;
                                    }
                                  return true;
                                }
                            --- 750,757 ----
                                {
                                  for (int i = other.bits.length - 1; i >= 0; i--)
                                    {
                            !         if ((bits[i] & other.bits[i]) != other.bits[i])
                            !           return false;
                                    }
                                  return true;
                                }
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Calendar.java gcc-4.6.0/libjava/classpath/java/util/Calendar.java
                            *** gcc-4.5.2/libjava/classpath/java/util/Calendar.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/Calendar.java	Tue Jan 11 19:46:05 2011
                            ***************
                            *** 1,5 ****
                              /* Calendar.java --
                            !    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006,  
                                 Free Software Foundation, Inc.
                              
                              This file is part of GNU Classpath.
                            --- 1,5 ----
                              /* Calendar.java --
                            !    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006,
                                 Free Software Foundation, Inc.
                              
                              This file is part of GNU Classpath.
                            *************** public abstract class Calendar
                            *** 487,493 ****
                                }
                              
                                /**
                            !    * The set of properties for obtaining the minimum number of days in 
                                 * the first week.
                                 */
                                private static transient final Properties properties;
                            --- 487,493 ----
                                }
                              
                                /**
                            !    * The set of properties for obtaining the minimum number of days in
                                 * the first week.
                                 */
                                private static transient final Properties properties;
                            *************** public abstract class Calendar
                            *** 498,504 ****
                                static
                                {
                                  properties = new Properties();
                            !     try 
                                    {
                                      properties.load(Calendar.class.getResourceAsStream("weeks.properties"));
                                    }
                            --- 498,504 ----
                                static
                                {
                                  properties = new Properties();
                            !     try
                                    {
                                      properties.load(Calendar.class.getResourceAsStream("weeks.properties"));
                                    }
                            *************** public abstract class Calendar
                            *** 538,556 ****
                                    first = properties.getProperty("firstDay.DEFAULT");
                                  try
                                    {
                            ! 	if (min != null)
                            ! 	  minimalDaysInFirstWeek = Integer.parseInt(min);
                                    }
                                  catch (NumberFormatException ex)
                                    {
                            ! 	minimalDaysInFirstWeek = 1;
                                    }
                              
                                  firstDayOfWeek = 1;
                                  if (first != null)
                                    for (int i = 0; i < 8; i++)
                            ! 	if (days[i].equals(first))
                            ! 	  firstDayOfWeek = i;
                              
                                  clear();
                                }
                            --- 538,556 ----
                                    first = properties.getProperty("firstDay.DEFAULT");
                                  try
                                    {
                            !         if (min != null)
                            !           minimalDaysInFirstWeek = Integer.parseInt(min);
                                    }
                                  catch (NumberFormatException ex)
                                    {
                            !         minimalDaysInFirstWeek = 1;
                                    }
                              
                                  firstDayOfWeek = 1;
                                  if (first != null)
                                    for (int i = 0; i < 8; i++)
                            !         if (days[i].equals(first))
                            !           firstDayOfWeek = i;
                              
                                  clear();
                                }
                            *************** public abstract class Calendar
                            *** 558,564 ****
                                /**
                                 * Creates a calendar representing the actual time, using the default
                                 * time zone and locale.
                            !    * 
                                 * @return The new calendar.
                                 */
                                public static synchronized Calendar getInstance()
                            --- 558,564 ----
                                /**
                                 * Creates a calendar representing the actual time, using the default
                                 * time zone and locale.
                            !    *
                                 * @return The new calendar.
                                 */
                                public static synchronized Calendar getInstance()
                            *************** public abstract class Calendar
                            *** 569,579 ****
                                /**
                                 * Creates a calendar representing the actual time, using the given
                                 * time zone and the default locale.
                            !    * 
                                 * @param zone a time zone (null not permitted).
                            !    * 
                                 * @return The new calendar.
                            !    * 
                                 * @throws NullPointerException if zone is null.
                                 */
                                public static synchronized Calendar getInstance(TimeZone zone)
                            --- 569,579 ----
                                /**
                                 * Creates a calendar representing the actual time, using the given
                                 * time zone and the default locale.
                            !    *
                                 * @param zone a time zone (null not permitted).
                            !    *
                                 * @return The new calendar.
                            !    *
                                 * @throws NullPointerException if zone is null.
                                 */
                                public static synchronized Calendar getInstance(TimeZone zone)
                            *************** public abstract class Calendar
                            *** 584,594 ****
                                /**
                                 * Creates a calendar representing the actual time, using the default
                                 * time zone and the given locale.
                            !    * 
                                 * @param locale a locale (null not permitted).
                            !    * 
                                 * @return The new calendar.
                            !    * 
                                 * @throws NullPointerException if locale is null.
                                 */
                                public static synchronized Calendar getInstance(Locale locale)
                            --- 584,594 ----
                                /**
                                 * Creates a calendar representing the actual time, using the default
                                 * time zone and the given locale.
                            !    *
                                 * @param locale a locale (null not permitted).
                            !    *
                                 * @return The new calendar.
                            !    *
                                 * @throws NullPointerException if locale is null.
                                 */
                                public static synchronized Calendar getInstance(Locale locale)
                            *************** public abstract class Calendar
                            *** 611,622 ****
                                /**
                                 * Creates a calendar representing the actual time, using the given
                                 * time zone and locale.
                            !    * 
                                 * @param zone a time zone (null not permitted).
                                 * @param locale a locale (null not permitted).
                            !    * 
                                 * @return The new calendar.
                            !    * 
                                 * @throws NullPointerException if zone or locale
                                 *     is null.
                                 */
                            --- 611,622 ----
                                /**
                                 * Creates a calendar representing the actual time, using the given
                                 * time zone and locale.
                            !    *
                                 * @param zone a time zone (null not permitted).
                                 * @param locale a locale (null not permitted).
                            !    *
                                 * @return The new calendar.
                            !    *
                                 * @throws NullPointerException if zone or locale
                                 *     is null.
                                 */
                            *************** public abstract class Calendar
                            *** 627,669 ****
                              
                                  try
                                    {
                            ! 	if (calendarClass == null)
                            ! 	  {
                            ! 	    calendarClass = Class.forName(calendarClassName);
                            ! 	    if (Calendar.class.isAssignableFrom(calendarClass))
                            ! 	      cache.put(locale, calendarClass);
                            ! 	  }
                              
                            ! 	// GregorianCalendar is by far the most common case. Optimize by 
                            ! 	// avoiding reflection.
                            ! 	if (calendarClass == GregorianCalendar.class)
                            ! 	  return new GregorianCalendar(zone, locale);
                              
                            ! 	if (Calendar.class.isAssignableFrom(calendarClass))
                            ! 	  {
                            ! 	    Constructor ctor = calendarClass.getConstructor(ctorArgTypes);
                            ! 	    return (Calendar) ctor.newInstance(new Object[] { zone, locale });
                            ! 	  }
                                    }
                                  catch (ClassNotFoundException ex)
                                    {
                            ! 	exception = ex;
                                    }
                                  catch (IllegalAccessException ex)
                                    {
                            ! 	exception = ex;
                                    }
                                  catch (NoSuchMethodException ex)
                                    {
                            ! 	exception = ex;
                                    }
                                  catch (InstantiationException ex)
                                    {
                            ! 	exception = ex;
                                    }
                                  catch (InvocationTargetException ex)
                                    {
                            ! 	exception = ex;
                                    }
                              
                                  throw new RuntimeException("Error instantiating calendar for locale "
                            --- 627,669 ----
                              
                                  try
                                    {
                            !         if (calendarClass == null)
                            !           {
                            !             calendarClass = Class.forName(calendarClassName);
                            !             if (Calendar.class.isAssignableFrom(calendarClass))
                            !               cache.put(locale, calendarClass);
                            !           }
                              
                            !         // GregorianCalendar is by far the most common case. Optimize by
                            !         // avoiding reflection.
                            !         if (calendarClass == GregorianCalendar.class)
                            !           return new GregorianCalendar(zone, locale);
                              
                            !         if (Calendar.class.isAssignableFrom(calendarClass))
                            !           {
                            !             Constructor ctor = calendarClass.getConstructor(ctorArgTypes);
                            !             return (Calendar) ctor.newInstance(new Object[] { zone, locale });
                            !           }
                                    }
                                  catch (ClassNotFoundException ex)
                                    {
                            !         exception = ex;
                                    }
                                  catch (IllegalAccessException ex)
                                    {
                            !         exception = ex;
                                    }
                                  catch (NoSuchMethodException ex)
                                    {
                            !         exception = ex;
                                    }
                                  catch (InstantiationException ex)
                                    {
                            !         exception = ex;
                                    }
                                  catch (InvocationTargetException ex)
                                    {
                            !         exception = ex;
                                    }
                              
                                  throw new RuntimeException("Error instantiating calendar for locale "
                            *************** public abstract class Calendar
                            *** 710,718 ****
                                /**
                                 * Sets this Calendar's time to the given Date.  All time fields
                                 * are invalidated by this method.
                            !    * 
                                 * @param date  the date (null not permitted).
                            !    * 
                                 * @throws NullPointerException if date is null.
                                 */
                                public final void setTime(Date date)
                            --- 710,718 ----
                                /**
                                 * Sets this Calendar's time to the given Date.  All time fields
                                 * are invalidated by this method.
                            !    *
                                 * @param date  the date (null not permitted).
                            !    *
                                 * @throws NullPointerException if date is null.
                                 */
                                public final void setTime(Date date)
                            *************** public abstract class Calendar
                            *** 794,800 ****
                                {
                                  if (isTimeSet)
                                    for (int i = 0; i < FIELD_COUNT; i++)
                            ! 	isSet[i] = false;
                                  isTimeSet = false;
                                  fields[field] = value;
                                  isSet[field] = true;
                            --- 794,800 ----
                                {
                                  if (isTimeSet)
                                    for (int i = 0; i < FIELD_COUNT; i++)
                            !         isSet[i] = false;
                                  isTimeSet = false;
                                  fields[field] = value;
                                  isSet[field] = true;
                            *************** public abstract class Calendar
                            *** 808,881 ****
                                  switch (field)
                                    {
                                    case MONTH: // pattern 1,2 or 3
                            ! 	isSet[DAY_OF_YEAR] = false;
                            ! 	isSet[WEEK_OF_YEAR] = false;
                            ! 	break;
                                    case DAY_OF_MONTH: // pattern 1
                            ! 	isSet[YEAR] = true;
                            ! 	isSet[MONTH] = true;
                            ! 	isSet[WEEK_OF_MONTH] = true;
                            ! 	isSet[DAY_OF_WEEK] = false;
                            ! 	isSet[DAY_OF_WEEK_IN_MONTH] = false;
                            ! 	isSet[DAY_OF_YEAR] = false;
                            ! 	isSet[WEEK_OF_YEAR] = false;
                            ! 	break;
                                    case WEEK_OF_MONTH: // pattern 2
                            ! 	if (! isSet[DAY_OF_WEEK])
                            ! 	  fields[DAY_OF_WEEK] = getFirstDayOfWeek();
                            ! 	isSet[YEAR] = true;
                            ! 	isSet[MONTH] = true;
                            ! 	isSet[DAY_OF_WEEK] = true;
                            ! 	isSet[DAY_OF_MONTH] = false;
                            ! 	isSet[DAY_OF_WEEK_IN_MONTH] = false;
                            ! 	isSet[DAY_OF_YEAR] = false;
                            ! 	isSet[WEEK_OF_YEAR] = false;
                            ! 	break;
                                    case DAY_OF_WEEK_IN_MONTH: // pattern 3
                            ! 	if (! isSet[DAY_OF_WEEK])
                            ! 	  fields[DAY_OF_WEEK] = getFirstDayOfWeek();
                            ! 	isSet[YEAR] = true;
                            ! 	isSet[MONTH] = true;
                            ! 	isSet[DAY_OF_WEEK] = true;
                            ! 	isSet[DAY_OF_YEAR] = false;
                            ! 	isSet[DAY_OF_MONTH] = false;
                            ! 	isSet[WEEK_OF_MONTH] = false;
                            ! 	isSet[WEEK_OF_YEAR] = false;
                            ! 	break;
                                    case DAY_OF_YEAR: // pattern 4
                            ! 	isSet[YEAR] = true;
                            ! 	isSet[MONTH] = false;
                            ! 	isSet[WEEK_OF_MONTH] = false;
                            ! 	isSet[DAY_OF_MONTH] = false;
                            ! 	isSet[DAY_OF_WEEK] = false;
                            ! 	isSet[WEEK_OF_YEAR] = false;
                            ! 	isSet[DAY_OF_WEEK_IN_MONTH] = false;
                            ! 	break;
                                    case WEEK_OF_YEAR: // pattern 5
                            ! 	if (! isSet[DAY_OF_WEEK])
                            ! 	  fields[DAY_OF_WEEK] = getFirstDayOfWeek();
                            ! 	isSet[YEAR] = true;
                            ! 	isSet[DAY_OF_WEEK] = true;
                            ! 	isSet[MONTH] = false;
                            ! 	isSet[DAY_OF_MONTH] = false;
                            ! 	isSet[WEEK_OF_MONTH] = false;
                            ! 	isSet[DAY_OF_YEAR] = false;
                            ! 	isSet[DAY_OF_WEEK_IN_MONTH] = false;
                            ! 	break;
                                    case AM_PM:
                            ! 	isSet[HOUR] = true;
                            ! 	isSet[HOUR_OF_DAY] = false;
                            ! 	break;
                                    case HOUR_OF_DAY:
                            ! 	isSet[AM_PM] = false;
                            ! 	isSet[HOUR] = false;
                            ! 	break;
                                    case HOUR:
                            ! 	isSet[AM_PM] = true;
                            ! 	isSet[HOUR_OF_DAY] = false;
                            ! 	break;
                                    case DST_OFFSET:
                            ! 	explicitDSTOffset = true;
                                    }
                              
                                  // May have crossed over a DST boundary.
                            --- 808,881 ----
                                  switch (field)
                                    {
                                    case MONTH: // pattern 1,2 or 3
                            !         isSet[DAY_OF_YEAR] = false;
                            !         isSet[WEEK_OF_YEAR] = false;
                            !         break;
                                    case DAY_OF_MONTH: // pattern 1
                            !         isSet[YEAR] = true;
                            !         isSet[MONTH] = true;
                            !         isSet[WEEK_OF_MONTH] = true;
                            !         isSet[DAY_OF_WEEK] = false;
                            !         isSet[DAY_OF_WEEK_IN_MONTH] = false;
                            !         isSet[DAY_OF_YEAR] = false;
                            !         isSet[WEEK_OF_YEAR] = false;
                            !         break;
                                    case WEEK_OF_MONTH: // pattern 2
                            !         if (! isSet[DAY_OF_WEEK])
                            !           fields[DAY_OF_WEEK] = getFirstDayOfWeek();
                            !         isSet[YEAR] = true;
                            !         isSet[MONTH] = true;
                            !         isSet[DAY_OF_WEEK] = true;
                            !         isSet[DAY_OF_MONTH] = false;
                            !         isSet[DAY_OF_WEEK_IN_MONTH] = false;
                            !         isSet[DAY_OF_YEAR] = false;
                            !         isSet[WEEK_OF_YEAR] = false;
                            !         break;
                                    case DAY_OF_WEEK_IN_MONTH: // pattern 3
                            !         if (! isSet[DAY_OF_WEEK])
                            !           fields[DAY_OF_WEEK] = getFirstDayOfWeek();
                            !         isSet[YEAR] = true;
                            !         isSet[MONTH] = true;
                            !         isSet[DAY_OF_WEEK] = true;
                            !         isSet[DAY_OF_YEAR] = false;
                            !         isSet[DAY_OF_MONTH] = false;
                            !         isSet[WEEK_OF_MONTH] = false;
                            !         isSet[WEEK_OF_YEAR] = false;
                            !         break;
                                    case DAY_OF_YEAR: // pattern 4
                            !         isSet[YEAR] = true;
                            !         isSet[MONTH] = false;
                            !         isSet[WEEK_OF_MONTH] = false;
                            !         isSet[DAY_OF_MONTH] = false;
                            !         isSet[DAY_OF_WEEK] = false;
                            !         isSet[WEEK_OF_YEAR] = false;
                            !         isSet[DAY_OF_WEEK_IN_MONTH] = false;
                            !         break;
                                    case WEEK_OF_YEAR: // pattern 5
                            !         if (! isSet[DAY_OF_WEEK])
                            !           fields[DAY_OF_WEEK] = getFirstDayOfWeek();
                            !         isSet[YEAR] = true;
                            !         isSet[DAY_OF_WEEK] = true;
                            !         isSet[MONTH] = false;
                            !         isSet[DAY_OF_MONTH] = false;
                            !         isSet[WEEK_OF_MONTH] = false;
                            !         isSet[DAY_OF_YEAR] = false;
                            !         isSet[DAY_OF_WEEK_IN_MONTH] = false;
                            !         break;
                                    case AM_PM:
                            !         isSet[HOUR] = true;
                            !         isSet[HOUR_OF_DAY] = false;
                            !         break;
                                    case HOUR_OF_DAY:
                            !         isSet[AM_PM] = false;
                            !         isSet[HOUR] = false;
                            !         break;
                                    case HOUR:
                            !         isSet[AM_PM] = true;
                            !         isSet[HOUR_OF_DAY] = false;
                            !         break;
                                    case DST_OFFSET:
                            !         explicitDSTOffset = true;
                                    }
                              
                                  // May have crossed over a DST boundary.
                            *************** public abstract class Calendar
                            *** 950,956 ****
                                  isTimeSet = false;
                                  areFieldsSet = false;
                                  int zoneOffs = zone.getRawOffset();
                            !     int[] tempFields = 
                                                     {
                                                       1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0,
                                                       0, 0, zoneOffs, 0
                            --- 950,956 ----
                                  isTimeSet = false;
                                  areFieldsSet = false;
                                  int zoneOffs = zone.getRawOffset();
                            !     int[] tempFields =
                                                     {
                                                       1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0,
                                                       0, 0, zoneOffs, 0
                            *************** public abstract class Calendar
                            *** 969,975 ****
                                 */
                                public final void clear(int field)
                                {
                            !     int[] tempFields = 
                                                     {
                                                       1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0,
                                                       0, 0, zone.getRawOffset(), 0
                            --- 969,975 ----
                                 */
                                public final void clear(int field)
                                {
                            !     int[] tempFields =
                                                     {
                                                       1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0,
                                                       0, 0, zone.getRawOffset(), 0
                            *************** public abstract class Calendar
                            *** 1118,1130 ****
                                {
                                  while (amount > 0)
                                    {
                            ! 	roll(field, true);
                            ! 	amount--;
                                    }
                                  while (amount < 0)
                                    {
                            ! 	roll(field, false);
                            ! 	amount++;
                                    }
                                }
                              
                            --- 1118,1130 ----
                                {
                                  while (amount > 0)
                                    {
                            !         roll(field, true);
                            !         amount--;
                                    }
                                  while (amount < 0)
                                    {
                            !         roll(field, false);
                            !         amount++;
                                    }
                                }
                              
                            *************** public abstract class Calendar
                            *** 1260,1268 ****
                                  tmp.set(field, min);
                                  for (; min > end; min--)
                                    {
                            ! 	tmp.add(field, -1); // Try to get smaller
                            ! 	if (tmp.get(field) != min - 1)
                            ! 	  break; // Done if not successful
                                    }
                                  return min;
                                }
                            --- 1260,1268 ----
                                  tmp.set(field, min);
                                  for (; min > end; min--)
                                    {
                            !         tmp.add(field, -1); // Try to get smaller
                            !         if (tmp.get(field) != min - 1)
                            !           break; // Done if not successful
                                    }
                                  return min;
                                }
                            *************** public abstract class Calendar
                            *** 1285,1293 ****
                                  tmp.set(field, max);
                                  for (; max < end; max++)
                                    {
                            ! 	tmp.add(field, 1);
                            ! 	if (tmp.get(field) != max + 1)
                            ! 	  break;
                                    }
                                  return max;
                                }
                            --- 1285,1293 ----
                                  tmp.set(field, max);
                                  for (; max < end; max++)
                                    {
                            !         tmp.add(field, 1);
                            !         if (tmp.get(field) != max + 1)
                            !           break;
                                    }
                                  return max;
                                }
                            *************** public abstract class Calendar
                            *** 1295,1308 ****
                                /**
                                 * Compares the time of two calendar instances.
                                 * @param cal the calendar to which the time should be compared.
                            !    * @return 0 if the two calendars are set to the same time, 
                            !    * less than 0 if the time of this calendar is before that of 
                                 * cal, or more than 0 if the time of this calendar is after
                                 * that of cal.
                                 *
                                 * @param cal the calendar to compare this instance with.
                                 * @throws NullPointerException if cal is null.
                            !    * @throws IllegalArgumentException if either calendar has fields set to 
                                 * invalid values.
                                 * @since 1.5
                                 */
                            --- 1295,1308 ----
                                /**
                                 * Compares the time of two calendar instances.
                                 * @param cal the calendar to which the time should be compared.
                            !    * @return 0 if the two calendars are set to the same time,
                            !    * less than 0 if the time of this calendar is before that of
                                 * cal, or more than 0 if the time of this calendar is after
                                 * that of cal.
                                 *
                                 * @param cal the calendar to compare this instance with.
                                 * @throws NullPointerException if cal is null.
                            !    * @throws IllegalArgumentException if either calendar has fields set to
                                 * invalid values.
                                 * @since 1.5
                                 */
                            *************** public abstract class Calendar
                            *** 1324,1341 ****
                                {
                                  try
                                    {
                            ! 	Calendar cal = (Calendar) super.clone();
                            ! 	cal.fields = (int[]) fields.clone();
                            ! 	cal.isSet = (boolean[]) isSet.clone();
                            ! 	return cal;
                                    }
                                  catch (CloneNotSupportedException ex)
                                    {
                            ! 	return null;
                                    }
                                }
                              
                            !   private static final String[] fieldNames = 
                                                                           {
                                                                             ",ERA=", ",YEAR=", ",MONTH=",
                                                                             ",WEEK_OF_YEAR=",
                            --- 1324,1341 ----
                                {
                                  try
                                    {
                            !         Calendar cal = (Calendar) super.clone();
                            !         cal.fields = (int[]) fields.clone();
                            !         cal.isSet = (boolean[]) isSet.clone();
                            !         return cal;
                                    }
                                  catch (CloneNotSupportedException ex)
                                    {
                            !         return null;
                                    }
                                }
                              
                            !   private static final String[] fieldNames =
                                                                           {
                                                                             ",ERA=", ",YEAR=", ",MONTH=",
                                                                             ",WEEK_OF_YEAR=",
                            *************** public abstract class Calendar
                            *** 1367,1377 ****
                                  sb.append(",areFieldsSet=" + areFieldsSet);
                                  for (int i = 0; i < FIELD_COUNT; i++)
                                    {
                            ! 	sb.append(fieldNames[i]);
                            ! 	if (isSet[i])
                            ! 	  sb.append(fields[i]);
                            ! 	else
                            ! 	  sb.append("?");
                                    }
                                  sb.append(",lenient=").append(lenient);
                                  sb.append(",firstDayOfWeek=").append(firstDayOfWeek);
                            --- 1367,1377 ----
                                  sb.append(",areFieldsSet=" + areFieldsSet);
                                  for (int i = 0; i < FIELD_COUNT; i++)
                                    {
                            !         sb.append(fieldNames[i]);
                            !         if (isSet[i])
                            !           sb.append(fields[i]);
                            !         else
                            !           sb.append("?");
                                    }
                                  sb.append(",lenient=").append(lenient);
                                  sb.append(",firstDayOfWeek=").append(firstDayOfWeek);
                            *************** public abstract class Calendar
                            *** 1407,1419 ****
                              
                                  if (serialVersionOnStream > 1)
                                    {
                            ! 	// This is my interpretation of the serial number:
                            ! 	// Sun wants to remove all fields from the stream someday
                            ! 	// and will then increase the serialVersion number again.
                            ! 	// We prepare to be compatible.
                            ! 	fields = new int[FIELD_COUNT];
                            ! 	isSet = new boolean[FIELD_COUNT];
                            ! 	areFieldsSet = false;
                                    }
                                }
                              
                            --- 1407,1419 ----
                              
                                  if (serialVersionOnStream > 1)
                                    {
                            !         // This is my interpretation of the serial number:
                            !         // Sun wants to remove all fields from the stream someday
                            !         // and will then increase the serialVersion number again.
                            !         // We prepare to be compatible.
                            !         fields = new int[FIELD_COUNT];
                            !         isSet = new boolean[FIELD_COUNT];
                            !         areFieldsSet = false;
                                    }
                                }
                              
                            *************** public abstract class Calendar
                            *** 1449,1463 ****
                                {
                                  if (field < 0 || field >= FIELD_COUNT)
                                    throw new IllegalArgumentException("The field value, " + field +
                            ! 					 ", is invalid.");
                                  if (style != SHORT && style != LONG)
                                    throw new IllegalArgumentException("The style must be either " +
                            ! 					 "short or long.");
                                  if (field == YEAR || field == WEEK_OF_YEAR ||
                            ! 	field == WEEK_OF_MONTH || field == DAY_OF_MONTH ||
                            ! 	field == DAY_OF_YEAR || field == DAY_OF_WEEK_IN_MONTH ||
                            ! 	field == HOUR || field == HOUR_OF_DAY || field == MINUTE ||
                            ! 	field == SECOND || field == MILLISECOND)
                                    return null;
                              
                                  int value = get(field);
                            --- 1449,1463 ----
                                {
                                  if (field < 0 || field >= FIELD_COUNT)
                                    throw new IllegalArgumentException("The field value, " + field +
                            !                                          ", is invalid.");
                                  if (style != SHORT && style != LONG)
                                    throw new IllegalArgumentException("The style must be either " +
                            !                                          "short or long.");
                                  if (field == YEAR || field == WEEK_OF_YEAR ||
                            !         field == WEEK_OF_MONTH || field == DAY_OF_MONTH ||
                            !         field == DAY_OF_YEAR || field == DAY_OF_WEEK_IN_MONTH ||
                            !         field == HOUR || field == HOUR_OF_DAY || field == MINUTE ||
                            !         field == SECOND || field == MILLISECOND)
                                    return null;
                              
                                  int value = get(field);
                            *************** public abstract class Calendar
                            *** 1466,1495 ****
                                    return syms.getEras()[value];
                                  if (field == MONTH)
                                    if (style == LONG)
                            ! 	return syms.getMonths()[value];
                            !       else 
                            ! 	return syms.getShortMonths()[value];
                                  if (field == DAY_OF_WEEK)
                                    if (style == LONG)
                            ! 	return syms.getWeekdays()[value];
                                    else
                            ! 	return syms.getShortWeekdays()[value];
                                  if (field == AM_PM)
                                    return syms.getAmPmStrings()[value];
                                  if (field == ZONE_OFFSET)
                                    if (style == LONG)
                            ! 	return syms.getZoneStrings()[value][1];
                                    else
                            ! 	return syms.getZoneStrings()[value][2];
                                  if (field == DST_OFFSET)
                                    if (style == LONG)
                            ! 	return syms.getZoneStrings()[value][3];
                                    else
                            ! 	return syms.getZoneStrings()[value][4];
                              
                                  throw new InternalError("Failed to resolve field " + field +
                            ! 			    " with style " + style + " for locale " +
                            ! 			    locale);
                                }
                              
                                /**
                            --- 1466,1495 ----
                                    return syms.getEras()[value];
                                  if (field == MONTH)
                                    if (style == LONG)
                            !         return syms.getMonths()[value];
                            !       else
                            !         return syms.getShortMonths()[value];
                                  if (field == DAY_OF_WEEK)
                                    if (style == LONG)
                            !         return syms.getWeekdays()[value];
                                    else
                            !         return syms.getShortWeekdays()[value];
                                  if (field == AM_PM)
                                    return syms.getAmPmStrings()[value];
                                  if (field == ZONE_OFFSET)
                                    if (style == LONG)
                            !         return syms.getZoneStrings()[value][1];
                                    else
                            !         return syms.getZoneStrings()[value][2];
                                  if (field == DST_OFFSET)
                                    if (style == LONG)
                            !         return syms.getZoneStrings()[value][3];
                                    else
                            !         return syms.getZoneStrings()[value][4];
                              
                                  throw new InternalError("Failed to resolve field " + field +
                            !                             " with style " + style + " for locale " +
                            !                             locale);
                                }
                              
                                /**
                            *************** public abstract class Calendar
                            *** 1528,1620 ****
                                {
                                  if (field < 0 || field >= FIELD_COUNT)
                                    throw new IllegalArgumentException("The field value, " + field +
                            ! 					 ", is invalid.");
                                  if (style != SHORT && style != LONG && style != ALL_STYLES)
                                    throw new IllegalArgumentException("The style must be either " +
                            ! 					 "short, long or all styles.");
                                  if (field == YEAR || field == WEEK_OF_YEAR ||
                            ! 	field == WEEK_OF_MONTH || field == DAY_OF_MONTH ||
                            ! 	field == DAY_OF_YEAR || field == DAY_OF_WEEK_IN_MONTH ||
                            ! 	field == HOUR || field == HOUR_OF_DAY || field == MINUTE ||
                            ! 	field == SECOND || field == MILLISECOND)
                                    return null;
                              
                                  DateFormatSymbols syms = DateFormatSymbols.getInstance(locale);
                                  Map map = new HashMap();
                                  if (field == ERA)
                                    {
                            ! 	String[] eras = syms.getEras();
                            ! 	for (int a = 0; a < eras.length; ++a)
                            ! 	  map.put(eras[a], a);
                            ! 	return map;
                                    }
                                  if (field == MONTH)
                                    {
                            ! 	if (style == LONG || style == ALL_STYLES)
                            ! 	  {
                            ! 	    String[] months = syms.getMonths();
                            ! 	    for (int a = 0; a < months.length; ++a)
                            ! 	      map.put(months[a], a);
                            ! 	  }
                            ! 	if (style == SHORT || style == ALL_STYLES)
                            ! 	  {
                            ! 	    String[] months = syms.getShortMonths();
                            ! 	    for (int a = 0; a < months.length; ++a)
                            ! 	      map.put(months[a], a);
                            ! 	  }
                            ! 	return map;
                                    }
                                  if (field == DAY_OF_WEEK)
                                    {
                            ! 	if (style == LONG || style == ALL_STYLES)
                            ! 	  {
                            ! 	    String[] weekdays = syms.getWeekdays();
                            ! 	    for (int a = SUNDAY; a < weekdays.length; ++a)
                            ! 	      map.put(weekdays[a], a);
                            ! 	  }
                            ! 	if (style == SHORT || style == ALL_STYLES)
                            ! 	  {
                            ! 	    String[] weekdays = syms.getShortWeekdays();
                            ! 	    for (int a = SUNDAY; a < weekdays.length; ++a)
                            ! 	      map.put(weekdays[a], a);
                            ! 	  }
                            ! 	return map;
                                    }
                                  if (field == AM_PM)
                                    {
                            ! 	String[] ampms = syms.getAmPmStrings();
                            ! 	for (int a = 0; a < ampms.length; ++a)
                            ! 	  map.put(ampms[a], a);
                            ! 	return map;
                                    }
                                  if (field == ZONE_OFFSET)
                                    {
                            ! 	String[][] zones = syms.getZoneStrings();
                            ! 	for (int a = 0; a < zones.length; ++a)
                            ! 	  {
                            ! 	    if (style == LONG || style == ALL_STYLES) 
                            ! 	      map.put(zones[a][1], a);
                            ! 	    if (style == SHORT || style == ALL_STYLES)
                            ! 	      map.put(zones[a][2], a);
                            ! 	  }
                            ! 	return map;
                                    }
                                  if (field == DST_OFFSET)
                                    {
                            ! 	String[][] zones = syms.getZoneStrings();
                            ! 	for (int a = 0; a < zones.length; ++a)
                            ! 	  {
                            ! 	    if (style == LONG || style == ALL_STYLES) 
                            ! 	      map.put(zones[a][3], a);
                            ! 	    if (style == SHORT || style == ALL_STYLES)
                            ! 	      map.put(zones[a][4], a);
                            ! 	  }
                            ! 	return map;
                                    }
                            !     
                                  throw new InternalError("Failed to resolve field " + field +
                            ! 			    " with style " + style + " for locale " +
                            ! 			    locale);
                                }
                              
                              }
                            --- 1528,1620 ----
                                {
                                  if (field < 0 || field >= FIELD_COUNT)
                                    throw new IllegalArgumentException("The field value, " + field +
                            !                                          ", is invalid.");
                                  if (style != SHORT && style != LONG && style != ALL_STYLES)
                                    throw new IllegalArgumentException("The style must be either " +
                            !                                          "short, long or all styles.");
                                  if (field == YEAR || field == WEEK_OF_YEAR ||
                            !         field == WEEK_OF_MONTH || field == DAY_OF_MONTH ||
                            !         field == DAY_OF_YEAR || field == DAY_OF_WEEK_IN_MONTH ||
                            !         field == HOUR || field == HOUR_OF_DAY || field == MINUTE ||
                            !         field == SECOND || field == MILLISECOND)
                                    return null;
                              
                                  DateFormatSymbols syms = DateFormatSymbols.getInstance(locale);
                                  Map map = new HashMap();
                                  if (field == ERA)
                                    {
                            !         String[] eras = syms.getEras();
                            !         for (int a = 0; a < eras.length; ++a)
                            !           map.put(eras[a], a);
                            !         return map;
                                    }
                                  if (field == MONTH)
                                    {
                            !         if (style == LONG || style == ALL_STYLES)
                            !           {
                            !             String[] months = syms.getMonths();
                            !             for (int a = 0; a < months.length; ++a)
                            !               map.put(months[a], a);
                            !           }
                            !         if (style == SHORT || style == ALL_STYLES)
                            !           {
                            !             String[] months = syms.getShortMonths();
                            !             for (int a = 0; a < months.length; ++a)
                            !               map.put(months[a], a);
                            !           }
                            !         return map;
                                    }
                                  if (field == DAY_OF_WEEK)
                                    {
                            !         if (style == LONG || style == ALL_STYLES)
                            !           {
                            !             String[] weekdays = syms.getWeekdays();
                            !             for (int a = SUNDAY; a < weekdays.length; ++a)
                            !               map.put(weekdays[a], a);
                            !           }
                            !         if (style == SHORT || style == ALL_STYLES)
                            !           {
                            !             String[] weekdays = syms.getShortWeekdays();
                            !             for (int a = SUNDAY; a < weekdays.length; ++a)
                            !               map.put(weekdays[a], a);
                            !           }
                            !         return map;
                                    }
                                  if (field == AM_PM)
                                    {
                            !         String[] ampms = syms.getAmPmStrings();
                            !         for (int a = 0; a < ampms.length; ++a)
                            !           map.put(ampms[a], a);
                            !         return map;
                                    }
                                  if (field == ZONE_OFFSET)
                                    {
                            !         String[][] zones = syms.getZoneStrings();
                            !         for (int a = 0; a < zones.length; ++a)
                            !           {
                            !             if (style == LONG || style == ALL_STYLES)
                            !               map.put(zones[a][1], a);
                            !             if (style == SHORT || style == ALL_STYLES)
                            !               map.put(zones[a][2], a);
                            !           }
                            !         return map;
                                    }
                                  if (field == DST_OFFSET)
                                    {
                            !         String[][] zones = syms.getZoneStrings();
                            !         for (int a = 0; a < zones.length; ++a)
                            !           {
                            !             if (style == LONG || style == ALL_STYLES)
                            !               map.put(zones[a][3], a);
                            !             if (style == SHORT || style == ALL_STYLES)
                            !               map.put(zones[a][4], a);
                            !           }
                            !         return map;
                                    }
                            ! 
                                  throw new InternalError("Failed to resolve field " + field +
                            !                             " with style " + style + " for locale " +
                            !                             locale);
                                }
                              
                              }
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Collections.java gcc-4.6.0/libjava/classpath/java/util/Collections.java
                            *** gcc-4.5.2/libjava/classpath/java/util/Collections.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/Collections.java	Tue Jan 11 19:46:05 2011
                            *************** public class Collections
                            *** 354,360 ****
                                   * This is true only if the given collection is also empty.
                                   * @param c The collection of objects, which should be compared
                                   *          against the members of this list.
                            !      * @return true if c is also empty. 
                                   */
                                  public boolean containsAll(Collection c)
                                  {
                            --- 354,360 ----
                                   * This is true only if the given collection is also empty.
                                   * @param c The collection of objects, which should be compared
                                   *          against the members of this list.
                            !      * @return true if c is also empty.
                                   */
                                  public boolean containsAll(Collection c)
                                  {
                            *************** public class Collections
                            *** 552,558 ****
                                  /**
                                   * No mappings, so this returns null.
                                   * @param o The key of the object to retrieve.
                            !      * @return null. 
                                   */
                                  public V get(Object o)
                                  {
                            --- 552,558 ----
                                  /**
                                   * No mappings, so this returns null.
                                   * @param o The key of the object to retrieve.
                            !      * @return null.
                                   */
                                  public V get(Object o)
                                  {
                            *************** public class Collections
                            *** 617,623 ****
                                  }
                                } // class EmptyMap
                              
                            ! 
                                /**
                                 * Compare two objects with or without a Comparator. If c is null, uses the
                                 * natural ordering. Slightly slower than doing it inline if the JVM isn't
                            --- 617,623 ----
                                  }
                                } // class EmptyMap
                              
                            ! 
                                /**
                                 * Compare two objects with or without a Comparator. If c is null, uses the
                                 * natural ordering. Slightly slower than doing it inline if the JVM isn't
                            *************** public class Collections
                            *** 653,660 ****
                                 * @throws NullPointerException if a null element has compareTo called
                                 * @see #sort(List)
                                 */
                            !   public static  int binarySearch(List> l, 
                            ! 				     T key)
                                {
                                  return binarySearch(l, key, null);
                                }
                            --- 653,660 ----
                                 * @throws NullPointerException if a null element has compareTo called
                                 * @see #sort(List)
                                 */
                            !   public static  int binarySearch(List> l,
                            !                                      T key)
                                {
                                  return binarySearch(l, key, null);
                                }
                            *************** public class Collections
                            *** 687,693 ****
                                 * @see #sort(List, Comparator)
                                 */
                                public static  int binarySearch(List l, T key,
                            ! 				     Comparator c)
                                {
                                  int pos = 0;
                                  int low = 0;
                            --- 687,693 ----
                                 * @see #sort(List, Comparator)
                                 */
                                public static  int binarySearch(List l, T key,
                            !                                      Comparator c)
                                {
                                  int pos = 0;
                                  int low = 0;
                            *************** public class Collections
                            *** 697,749 ****
                                  // if the list is sequential-access.
                                  if (isSequential(l))
                                    {
                            ! 	ListIterator itr = ((List) l).listIterator();
                                      int i = 0;
                            ! 	T o = itr.next(); // Assumes list is not empty (see isSequential)
                            ! 	boolean forward = true;
                                      while (low <= hi)
                                        {
                                          pos = (low + hi) >>> 1;
                                          if (i < pos)
                            ! 	      {
                            ! 		if (!forward)
                            ! 		  itr.next(); // Changing direction first.
                            ! 		for ( ; i != pos; i++, o = itr.next())
                                                ;
                            ! 		forward = true;
                            ! 	      }
                                          else
                            ! 	      {
                            ! 		if (forward)
                            ! 		  itr.previous(); // Changing direction first.
                            ! 		for ( ; i != pos; i--, o = itr.previous())
                                                ;
                            ! 		forward = false;
                            ! 	      }
                            ! 	    final int d = compare(o, key, c);
                            ! 	    if (d == 0)
                                            return pos;
                            ! 	    else if (d > 0)
                                            hi = pos - 1;
                            ! 	    else
                                            // This gets the insertion point right on the last loop
                                            low = ++pos;
                                        }
                                    }
                                  else
                                    {
                            ! 	while (low <= hi)
                            ! 	  {
                            ! 	    pos = (low + hi) >>> 1;
                            ! 	    final int d = compare(((List) l).get(pos), key, c);
                            ! 	    if (d == 0)
                                            return pos;
                            ! 	    else if (d > 0)
                                            hi = pos - 1;
                            ! 	    else
                                            // This gets the insertion point right on the last loop
                                            low = ++pos;
                            ! 	  }
                                    }
                              
                                  // If we failed to find it, we do the same whichever search we did.
                            --- 697,749 ----
                                  // if the list is sequential-access.
                                  if (isSequential(l))
                                    {
                            !         ListIterator itr = ((List) l).listIterator();
                                      int i = 0;
                            !         T o = itr.next(); // Assumes list is not empty (see isSequential)
                            !         boolean forward = true;
                                      while (low <= hi)
                                        {
                                          pos = (low + hi) >>> 1;
                                          if (i < pos)
                            !               {
                            !                 if (!forward)
                            !                   itr.next(); // Changing direction first.
                            !                 for ( ; i != pos; i++, o = itr.next())
                                                ;
                            !                 forward = true;
                            !               }
                                          else
                            !               {
                            !                 if (forward)
                            !                   itr.previous(); // Changing direction first.
                            !                 for ( ; i != pos; i--, o = itr.previous())
                                                ;
                            !                 forward = false;
                            !               }
                            !             final int d = compare(o, key, c);
                            !             if (d == 0)
                                            return pos;
                            !             else if (d > 0)
                                            hi = pos - 1;
                            !             else
                                            // This gets the insertion point right on the last loop
                                            low = ++pos;
                                        }
                                    }
                                  else
                                    {
                            !         while (low <= hi)
                            !           {
                            !             pos = (low + hi) >>> 1;
                            !             final int d = compare(((List) l).get(pos), key, c);
                            !             if (d == 0)
                                            return pos;
                            !             else if (d > 0)
                                            hi = pos - 1;
                            !             else
                                            // This gets the insertion point right on the last loop
                                            low = ++pos;
                            !           }
                                    }
                              
                                  // If we failed to find it, we do the same whichever search we did.
                            *************** public class Collections
                            *** 799,805 ****
                                     */
                                    public final boolean hasMoreElements()
                                    {
                            ! 	return i.hasNext();
                                    }
                              
                                    /**
                            --- 799,805 ----
                                     */
                                    public final boolean hasMoreElements()
                                    {
                            !         return i.hasNext();
                                    }
                              
                                    /**
                            *************** public class Collections
                            *** 810,816 ****
                                     */
                                    public final T nextElement()
                                    {
                            ! 	return i.next();
                                    }
                                  };
                                }
                            --- 810,816 ----
                                     */
                                    public final T nextElement()
                                    {
                            !         return i.next();
                                    }
                                  };
                                }
                            *************** public class Collections
                            *** 829,836 ****
                                  ListIterator itr = l.listIterator();
                                  for (int i = l.size() - 1; i >= 0; --i)
                                    {
                            ! 	itr.next();
                            ! 	itr.set(val);
                                    }
                                }
                              
                            --- 829,836 ----
                                  ListIterator itr = l.listIterator();
                                  for (int i = l.size() - 1; i >= 0; --i)
                                    {
                            !         itr.next();
                            !         itr.set(val);
                                    }
                                }
                              
                            *************** public class Collections
                            *** 928,943 ****
                                 *        (only possible when order is null)
                                 */
                                public static  T max(Collection c,
                            ! 			  Comparator order)
                                {
                                  Iterator itr = c.iterator();
                                  T max = itr.next(); // throws NoSuchElementException
                                  int csize = c.size();
                                  for (int i = 1; i < csize; i++)
                                    {
                            ! 	T o = itr.next();
                            ! 	if (compare(max, o, order) < 0)
                            ! 	  max = o;
                                    }
                                  return max;
                                }
                            --- 928,943 ----
                                 *        (only possible when order is null)
                                 */
                                public static  T max(Collection c,
                            !                           Comparator order)
                                {
                                  Iterator itr = c.iterator();
                                  T max = itr.next(); // throws NoSuchElementException
                                  int csize = c.size();
                                  for (int i = 1; i < csize; i++)
                                    {
                            !         T o = itr.next();
                            !         if (compare(max, o, order) < 0)
                            !           max = o;
                                    }
                                  return max;
                                }
                            *************** public class Collections
                            *** 974,989 ****
                                 *        (only possible when order is null)
                                 */
                                public static  T min(Collection c,
                            ! 			  Comparator order)
                                {
                                  Iterator itr = c.iterator();
                            !     T min = itr.next();	// throws NoSuchElementExcception
                                  int csize = c.size();
                                  for (int i = 1; i < csize; i++)
                                    {
                            ! 	T o = itr.next();
                            ! 	if (compare(min, o, order) > 0)
                            ! 	  min = o;
                                    }
                                  return min;
                                }
                            --- 974,989 ----
                                 *        (only possible when order is null)
                                 */
                                public static  T min(Collection c,
                            !                           Comparator order)
                                {
                                  Iterator itr = c.iterator();
                            !     T min = itr.next(); // throws NoSuchElementExcception
                                  int csize = c.size();
                                  for (int i = 1; i < csize; i++)
                                    {
                            !         T o = itr.next();
                            !         if (compare(min, o, order) > 0)
                            !           min = o;
                                    }
                                  return min;
                                }
                            *************** public class Collections
                            *** 1044,1050 ****
                                  CopiesList(int n, T o)
                                  {
                                    if (n < 0)
                            ! 	throw new IllegalArgumentException();
                                    this.n = n;
                                    element = o;
                                  }
                            --- 1044,1050 ----
                                  CopiesList(int n, T o)
                                  {
                                    if (n < 0)
                            !         throw new IllegalArgumentException();
                                    this.n = n;
                                    element = o;
                                  }
                            *************** public class Collections
                            *** 1190,1201 ****
                                  ListIterator i2 = l.listIterator(pos2);
                                  while (pos1 < pos2)
                                    {
                            ! 	Object o1 = i1.next();
                                  Object o2 = i2.previous();
                            ! 	i1.set(o2);
                            ! 	i2.set(o1);
                            ! 	++pos1;
                            ! 	--pos2;
                                    }
                                }
                              
                            --- 1190,1201 ----
                                  ListIterator i2 = l.listIterator(pos2);
                                  while (pos1 < pos2)
                                    {
                            !         Object o1 = i1.next();
                                  Object o2 = i2.previous();
                            !         i1.set(o2);
                            !         i2.set(o1);
                            !         ++pos1;
                            !         --pos2;
                                    }
                                }
                              
                            *************** public class Collections
                            *** 1221,1227 ****
                                  {
                                    public int compare(T a, T b)
                                    {
                            ! 	return - c.compare(a, b);
                                    }
                                  };
                                }
                            --- 1221,1227 ----
                                  {
                                    public int compare(T a, T b)
                                    {
                            !         return - c.compare(a, b);
                                    }
                                  };
                                }
                            *************** public class Collections
                            *** 1344,1350 ****
                              
                                      // Now, make the swaps. We must take the remainder every time through
                                      // the inner loop so that we don't overflow i to negative values.
                            ! 	List objList = (List) list;
                                      while (--lcm >= 0)
                                        {
                                          Object o = objList.get(lcm);
                            --- 1344,1350 ----
                              
                                      // Now, make the swaps. We must take the remainder every time through
                                      // the inner loop so that we don't overflow i to negative values.
                            !         List objList = (List) list;
                                      while (--lcm >= 0)
                                        {
                                          Object o = objList.get(lcm);
                            *************** public class Collections
                            *** 1381,1390 ****
                                  if (defaultRandom == null)
                                    {
                                      synchronized (Collections.class)
                            ! 	  {
                            ! 	    if (defaultRandom == null)
                            ! 	      defaultRandom = new Random();
                            ! 	  }
                                    }
                                  shuffle(l, defaultRandom);
                                }
                            --- 1381,1390 ----
                                  if (defaultRandom == null)
                                    {
                                      synchronized (Collections.class)
                            !           {
                            !             if (defaultRandom == null)
                            !               defaultRandom = new Random();
                            !           }
                                    }
                                  shuffle(l, defaultRandom);
                                }
                            *************** public class Collections
                            *** 1432,1443 ****
                              
                                  for (int pos = lsize - 1; pos > 0; --pos)
                                    {
                            ! 	// Obtain a random position to swap with. pos + 1 is used so that the
                            ! 	// range of the random number includes the current position.
                            ! 	int swap = r.nextInt(pos + 1);
                              
                            ! 	// Swap the desired element.
                            ! 	Object o;
                                      if (sequential)
                                        {
                                          o = a[swap];
                            --- 1432,1443 ----
                              
                                  for (int pos = lsize - 1; pos > 0; --pos)
                                    {
                            !         // Obtain a random position to swap with. pos + 1 is used so that the
                            !         // range of the random number includes the current position.
                            !         int swap = r.nextInt(pos + 1);
                              
                            !         // Swap the desired element.
                            !         Object o;
                                      if (sequential)
                                        {
                                          o = a[swap];
                            *************** public class Collections
                            *** 1446,1452 ****
                                      else
                                        o = list.set(swap, i.previous());
                              
                            ! 	i.set(o);
                                    }
                                }
                              
                            --- 1446,1452 ----
                                      else
                                        o = list.set(swap, i.previous());
                              
                            !         i.set(o);
                                    }
                                }
                              
                            *************** public class Collections
                            *** 1455,1465 ****
                                 * collection.  The frequency represents the number of occurrences of
                                 * elements within the collection which return true when
                                 * compared with the object using the equals method.
                            !    * 
                                 * @param c the collection to scan for occurrences of the object.
                                 * @param o the object to locate occurrances of within the collection.
                                 * @throws NullPointerException if the collection is null.
                            !    * @since 1.5 
                                 */
                                public static int frequency (Collection c, Object o)
                                {
                            --- 1455,1465 ----
                                 * collection.  The frequency represents the number of occurrences of
                                 * elements within the collection which return true when
                                 * compared with the object using the equals method.
                            !    *
                                 * @param c the collection to scan for occurrences of the object.
                                 * @param o the object to locate occurrances of within the collection.
                                 * @throws NullPointerException if the collection is null.
                            !    * @since 1.5
                                 */
                                public static int frequency (Collection c, Object o)
                                {
                            *************** public class Collections
                            *** 1467,1475 ****
                                  final Iterator it = c.iterator();
                                  while (it.hasNext())
                                    {
                            ! 	Object v = it.next();
                            ! 	if (AbstractCollection.equals(o, v))
                            ! 	  ++result;
                                    }
                                  return result;
                                }
                            --- 1467,1475 ----
                                  final Iterator it = c.iterator();
                                  while (it.hasNext())
                                    {
                            !         Object v = it.next();
                            !         if (AbstractCollection.equals(o, v))
                            !           ++result;
                                    }
                                  return result;
                                }
                            *************** public class Collections
                            *** 1505,1513 ****
                              
                                  for (T element : a)
                                    {
                            ! 	boolean result = c.add(element);
                            ! 	if (result)
                            ! 	  overall = true;
                                    }
                                  return overall;
                                }
                            --- 1505,1513 ----
                              
                                  for (T element : a)
                                    {
                            !         boolean result = c.add(element);
                            !         if (result)
                            !           overall = true;
                                    }
                                  return overall;
                                }
                            *************** public class Collections
                            *** 1531,1541 ****
                                  final Iterator it = oc1.iterator();
                                  while (it.hasNext())
                                    if (c2.contains(it.next()))
                            ! 	return false;
                                  return true;
                                }
                              
                            ! 
                                /**
                                 * Obtain an immutable Set consisting of a single element. The return value
                                 * of this method is Serializable.
                            --- 1531,1541 ----
                                  final Iterator it = oc1.iterator();
                                  while (it.hasNext())
                                    if (c2.contains(it.next()))
                            !         return false;
                                  return true;
                                }
                              
                            ! 
                                /**
                                 * Obtain an immutable Set consisting of a single element. The return value
                                 * of this method is Serializable.
                            *************** public class Collections
                            *** 1595,1624 ****
                                  {
                                    return new Iterator()
                                    {
                            ! 	/**
                            ! 	 * Flag to indicate whether or not the element has
                            ! 	 * been retrieved.
                            ! 	 */
                                      private boolean hasNext = true;
                              
                            ! 	/**
                            ! 	 * Returns true if elements still remain to be
                            ! 	 * iterated through.
                            ! 	 *
                            ! 	 * @return true if the element has not yet been returned.
                            ! 	 */
                                      public boolean hasNext()
                                      {
                                        return hasNext;
                                      }
                              
                            ! 	/**
                            ! 	 * Returns the element.
                            ! 	 *
                            ! 	 * @return The element used by this singleton.
                            ! 	 * @throws NoSuchElementException if the object
                            ! 	 *         has already been retrieved.
                            ! 	 */ 
                                      public T next()
                                      {
                                        if (hasNext)
                            --- 1595,1624 ----
                                  {
                                    return new Iterator()
                                    {
                            !         /**
                            !          * Flag to indicate whether or not the element has
                            !          * been retrieved.
                            !          */
                                      private boolean hasNext = true;
                              
                            !         /**
                            !          * Returns true if elements still remain to be
                            !          * iterated through.
                            !          *
                            !          * @return true if the element has not yet been returned.
                            !          */
                                      public boolean hasNext()
                                      {
                                        return hasNext;
                                      }
                              
                            !         /**
                            !          * Returns the element.
                            !          *
                            !          * @return The element used by this singleton.
                            !          * @throws NoSuchElementException if the object
                            !          *         has already been retrieved.
                            !          */
                                      public T next()
                                      {
                                        if (hasNext)
                            *************** public class Collections
                            *** 1630,1644 ****
                                          throw new NoSuchElementException();
                                      }
                              
                            ! 	/**
                            ! 	 * Removes the element from the singleton.
                            ! 	 * As this set is immutable, this will always
                            ! 	 * throw an exception.
                            ! 	 *
                            ! 	 * @throws UnsupportedOperationException as the
                            ! 	 *         singleton set doesn't support
                            ! 	 *         remove().
                            ! 	 */
                                      public void remove()
                                      {
                                        throw new UnsupportedOperationException();
                            --- 1630,1644 ----
                                          throw new NoSuchElementException();
                                      }
                              
                            !         /**
                            !          * Removes the element from the singleton.
                            !          * As this set is immutable, this will always
                            !          * throw an exception.
                            !          *
                            !          * @throws UnsupportedOperationException as the
                            !          *         singleton set doesn't support
                            !          *         remove().
                            !          */
                                      public void remove()
                                      {
                                        throw new UnsupportedOperationException();
                            *************** public class Collections
                            *** 1678,1684 ****
                              
                                  /**
                                   * The hash is just that of the element.
                            !      * 
                                   * @return The hashcode of the element.
                                   */
                                  public int hashCode()
                            --- 1678,1684 ----
                              
                                  /**
                                   * The hash is just that of the element.
                            !      *
                                   * @return The hashcode of the element.
                                   */
                                  public int hashCode()
                            *************** public class Collections
                            *** 1842,1848 ****
                              
                                  /**
                                   * Sublists are limited in scope.
                            !      * 
                                   * @param from The starting bound for the sublist.
                                   * @param to The ending bound for the sublist.
                                   * @return Either an empty list if both bounds are
                            --- 1842,1848 ----
                              
                                  /**
                                   * Sublists are limited in scope.
                            !      *
                                   * @param from The starting bound for the sublist.
                                   * @param to The ending bound for the sublist.
                                   * @return Either an empty list if both bounds are
                            *************** public class Collections
                            *** 1876,1882 ****
                                   * Obvious string.
                                   *
                                   * @return The string surrounded by enclosing
                            !      *         square brackets. 
                                   */
                                  public String toString()
                                  {
                            --- 1876,1882 ----
                                   * Obvious string.
                                   *
                                   * @return The string surrounded by enclosing
                            !      *         square brackets.
                                   */
                                  public String toString()
                                  {
                            *************** public class Collections
                            *** 1949,1973 ****
                                  public Set> entrySet()
                                  {
                                    if (entries == null)
                            ! 	{
                            ! 	  Map.Entry entry = new AbstractMap.SimpleEntry(k, v)
                            ! 	  {
                            ! 	    /**
                            ! 	     * Sets the value of the map entry to the supplied value.
                            ! 	     * An exception is always thrown, as the map is immutable.
                            ! 	     *
                            ! 	     * @param o The new value.
                            ! 	     * @return The old value.
                            ! 	     * @throws UnsupportedOperationException as setting the value
                            ! 	     *         is not supported.
                            ! 	     */
                            ! 	    public V setValue(V o)
                            ! 	    {
                            ! 	      throw new UnsupportedOperationException();
                            ! 	    }
                            ! 	  };
                            ! 	  entries = singleton(entry);
                            ! 	}
                                    return entries;
                                  }
                              
                            --- 1949,1973 ----
                                  public Set> entrySet()
                                  {
                                    if (entries == null)
                            !         {
                            !           Map.Entry entry = new AbstractMap.SimpleEntry(k, v)
                            !           {
                            !             /**
                            !              * Sets the value of the map entry to the supplied value.
                            !              * An exception is always thrown, as the map is immutable.
                            !              *
                            !              * @param o The new value.
                            !              * @return The old value.
                            !              * @throws UnsupportedOperationException as setting the value
                            !              *         is not supported.
                            !              */
                            !             public V setValue(V o)
                            !             {
                            !               throw new UnsupportedOperationException();
                            !             }
                            !           };
                            !           entries = singleton(entry);
                            !         }
                                    return entries;
                                  }
                              
                            *************** public class Collections
                            *** 2100,2109 ****
                                 *        null for natural ordering
                                 * @throws ClassCastException if c will not compare some pair of items
                                 * @throws UnsupportedOperationException if the List is not modifiable
                            !    * @throws NullPointerException if the List is null or 
                            !    *         null is compared by natural ordering (only possible 
                                 *         when c is null)
                            !    *         
                                 * @see Arrays#sort(Object[], Comparator)
                                 */
                                public static  void sort(List l, Comparator c)
                            --- 2100,2109 ----
                                 *        null for natural ordering
                                 * @throws ClassCastException if c will not compare some pair of items
                                 * @throws UnsupportedOperationException if the List is not modifiable
                            !    * @throws NullPointerException if the List is null or
                            !    *         null is compared by natural ordering (only possible
                                 *         when c is null)
                            !    *
                                 * @see Arrays#sort(Object[], Comparator)
                                 */
                                public static  void sort(List l, Comparator c)
                            *************** public class Collections
                            *** 2113,2120 ****
                                  ListIterator i = l.listIterator();
                                  for (int pos = 0, alen = a.length;  pos < alen;  pos++)
                                    {
                            ! 	i.next();
                            ! 	i.set(a[pos]);
                                    }
                                }
                              
                            --- 2113,2120 ----
                                  ListIterator i = l.listIterator();
                                  for (int pos = 0, alen = a.length;  pos < alen;  pos++)
                                    {
                            !         i.next();
                            !         i.set(a[pos]);
                                    }
                                }
                              
                            *************** public class Collections
                            *** 2136,2142 ****
                                  list.set(i, list.set(j, list.get(i)));
                                }
                              
                            ! 
                                /**
                                 * Returns a synchronized (thread-safe) collection wrapper backed by the
                                 * given collection. Notice that element access through the iterators
                            --- 2136,2142 ----
                                  list.set(i, list.set(j, list.get(i)));
                                }
                              
                            ! 
                                /**
                                 * Returns a synchronized (thread-safe) collection wrapper backed by the
                                 * given collection. Notice that element access through the iterators
                            *************** public class Collections
                            *** 2536,2542 ****
                                  /**
                                   * Retrieves the next object in the underlying collection.
                                   * A lock is obtained on the mutex before the collection is accessed.
                            !      * 
                                   * @return The next object in the collection.
                                   * @throws NoSuchElementException if there are no more elements
                                   */
                            --- 2536,2542 ----
                                  /**
                                   * Retrieves the next object in the underlying collection.
                                   * A lock is obtained on the mutex before the collection is accessed.
                            !      *
                                   * @return The next object in the collection.
                                   * @throws NoSuchElementException if there are no more elements
                                   */
                            *************** public class Collections
                            *** 2695,2701 ****
                              
                                /**
                                 * Add the contents of a collection to the underlying list at the given
                            !    * index (optional operation).  If the list imposes restraints on what 
                                 * can be inserted, such as no null elements, this should be documented.
                                 * A lock is obtained on the mutex before any of the elements are added.
                                 *
                            --- 2695,2701 ----
                              
                                /**
                                 * Add the contents of a collection to the underlying list at the given
                            !    * index (optional operation).  If the list imposes restraints on what
                                 * can be inserted, such as no null elements, this should be documented.
                                 * A lock is obtained on the mutex before any of the elements are added.
                                 *
                            *************** public class Collections
                            *** 2854,2860 ****
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedListIterator(mutex,
                            ! 						 list.listIterator(index));
                                      }
                                  }
                              
                            --- 2854,2860 ----
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedListIterator(mutex,
                            !                                                  list.listIterator(index));
                                      }
                                  }
                              
                            *************** public class Collections
                            *** 2926,2932 ****
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedList(mutex,
                            ! 					 list.subList(fromIndex, toIndex));
                                      }
                                  }
                                } // class SynchronizedList
                            --- 2926,2932 ----
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedList(mutex,
                            !                                          list.subList(fromIndex, toIndex));
                                      }
                                  }
                                } // class SynchronizedList
                            *************** public class Collections
                            *** 2991,2998 ****
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedRandomAccessList(mutex,
                            ! 						     list.subList(fromIndex,
                            ! 								  toIndex));
                                      }
                                  }
                                } // class SynchronizedRandomAccessList
                            --- 2991,2998 ----
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedRandomAccessList(mutex,
                            !                                                      list.subList(fromIndex,
                            !                                                                   toIndex));
                                      }
                                  }
                                } // class SynchronizedRandomAccessList
                            *************** public class Collections
                            *** 3308,3321 ****
                                        e = o;
                                      }
                              
                            ! 	/**
                            ! 	 * Returns true if the object, o, implements Map.Entry
                            ! 	 * with the same key and value as the underlying entry.  A lock is
                            ! 	 * obtained on the mutex before the comparison takes place.
                            ! 	 *
                            ! 	 * @param o The object to compare with this entry.
                            ! 	 * @return true if o is equivalent to the underlying map entry.
                            ! 	 */
                                      public boolean equals(Object o)
                                      {
                                        synchronized (mutex)
                            --- 3308,3321 ----
                                        e = o;
                                      }
                              
                            !         /**
                            !          * Returns true if the object, o, implements Map.Entry
                            !          * with the same key and value as the underlying entry.  A lock is
                            !          * obtained on the mutex before the comparison takes place.
                            !          *
                            !          * @param o The object to compare with this entry.
                            !          * @return true if o is equivalent to the underlying map entry.
                            !          */
                                      public boolean equals(Object o)
                                      {
                                        synchronized (mutex)
                            *************** public class Collections
                            *** 3324,3335 ****
                                          }
                                      }
                              
                            ! 	/**
                            ! 	 * Returns the key used in the underlying map entry.  A lock is obtained
                            ! 	 * on the mutex before the key is retrieved.
                            ! 	 *
                            ! 	 * @return The key of the underlying map entry.
                            ! 	 */
                                      public K getKey()
                                      {
                                        synchronized (mutex)
                            --- 3324,3335 ----
                                          }
                                      }
                              
                            !         /**
                            !          * Returns the key used in the underlying map entry.  A lock is obtained
                            !          * on the mutex before the key is retrieved.
                            !          *
                            !          * @return The key of the underlying map entry.
                            !          */
                                      public K getKey()
                                      {
                                        synchronized (mutex)
                            *************** public class Collections
                            *** 3338,3349 ****
                                          }
                                      }
                              
                            ! 	/**
                            ! 	 * Returns the value used in the underlying map entry.  A lock is obtained
                            ! 	 * on the mutex before the value is retrieved.
                            ! 	 *
                            ! 	 * @return The value of the underlying map entry.
                            ! 	 */
                                      public V getValue()
                                      {
                                        synchronized (mutex)
                            --- 3338,3349 ----
                                          }
                                      }
                              
                            !         /**
                            !          * Returns the value used in the underlying map entry.  A lock is obtained
                            !          * on the mutex before the value is retrieved.
                            !          *
                            !          * @return The value of the underlying map entry.
                            !          */
                                      public V getValue()
                                      {
                                        synchronized (mutex)
                            *************** public class Collections
                            *** 3352,3366 ****
                                          }
                                      }
                              
                            ! 	/**
                            ! 	 * Computes the hash code for the underlying map entry.
                            ! 	 * This computation is described in the documentation for the
                            ! 	 * Map interface.  A lock is obtained on the mutex
                            ! 	 * before the underlying map is accessed.
                            ! 	 *
                            ! 	 * @return The hash code of the underlying map entry.
                            ! 	 * @see Map#hashCode()
                            ! 	 */
                                      public int hashCode()
                                      {
                                        synchronized (mutex)
                            --- 3352,3366 ----
                                          }
                                      }
                              
                            !         /**
                            !          * Computes the hash code for the underlying map entry.
                            !          * This computation is described in the documentation for the
                            !          * Map interface.  A lock is obtained on the mutex
                            !          * before the underlying map is accessed.
                            !          *
                            !          * @return The hash code of the underlying map entry.
                            !          * @see Map#hashCode()
                            !          */
                                      public int hashCode()
                                      {
                                        synchronized (mutex)
                            *************** public class Collections
                            *** 3369,3390 ****
                                          }
                                      }
                              
                            ! 	/**
                            ! 	 * Replaces the value in the underlying map entry with the specified
                            ! 	 * object (optional operation).  A lock is obtained on the mutex
                            ! 	 * before the map is altered.  The map entry, in turn, will alter
                            ! 	 * the underlying map object.  The operation is undefined if the
                            ! 	 * remove() method of the iterator has been called
                            ! 	 * beforehand.
                            ! 	 *
                            ! 	 * @param value the new value to store
                            ! 	 * @return the old value
                            ! 	 * @throws UnsupportedOperationException if the operation is not supported.
                            ! 	 * @throws ClassCastException if the value is of the wrong type.
                            ! 	 * @throws IllegalArgumentException if something about the value
                            ! 	 *         prevents it from existing in this map.
                            ! 	 * @throws NullPointerException if the map forbids null values.
                            ! 	 */
                                      public V setValue(V value)
                                      {
                                        synchronized (mutex)
                            --- 3369,3390 ----
                                          }
                                      }
                              
                            !         /**
                            !          * Replaces the value in the underlying map entry with the specified
                            !          * object (optional operation).  A lock is obtained on the mutex
                            !          * before the map is altered.  The map entry, in turn, will alter
                            !          * the underlying map object.  The operation is undefined if the
                            !          * remove() method of the iterator has been called
                            !          * beforehand.
                            !          *
                            !          * @param value the new value to store
                            !          * @return the old value
                            !          * @throws UnsupportedOperationException if the operation is not supported.
                            !          * @throws ClassCastException if the value is of the wrong type.
                            !          * @throws IllegalArgumentException if something about the value
                            !          *         prevents it from existing in this map.
                            !          * @throws NullPointerException if the map forbids null values.
                            !          */
                                      public V setValue(V value)
                                      {
                                        synchronized (mutex)
                            *************** public class Collections
                            *** 3393,3404 ****
                                          }
                                      }
                              
                            ! 	/**
                            ! 	 * Returns a textual representation of the underlying map entry.
                            ! 	 * A lock is obtained on the mutex before the entry is accessed.
                            ! 	 *
                            ! 	 * @return The contents of the map entry in String form.
                            ! 	 */
                                      public String toString()
                                      {
                                        synchronized (mutex)
                            --- 3393,3404 ----
                                          }
                                      }
                              
                            !         /**
                            !          * Returns a textual representation of the underlying map entry.
                            !          * A lock is obtained on the mutex before the entry is accessed.
                            !          *
                            !          * @return The contents of the map entry in String form.
                            !          */
                                      public String toString()
                                      {
                                        synchronized (mutex)
                            *************** public class Collections
                            *** 3414,3442 ****
                                        {
                                          entries = new SynchronizedSet>(mutex, m.entrySet())
                                          {
                            ! 	      /**
                            ! 	       * Returns an iterator over the set.  The iterator has no specific order,
                            ! 	       * unless further specified.  A lock is obtained on the set's mutex
                            ! 	       * before the iterator is created.  The created iterator is also
                            ! 	       * thread-safe.
                            ! 	       *
                            ! 	       * @return A synchronized set iterator.
                            ! 	       */
                                            public Iterator> iterator()
                                            {
                                              synchronized (super.mutex)
                                                {
                                                  return new SynchronizedIterator>(super.mutex,
                            ! 								     c.iterator())
                                                  {
                            ! 		      /**
                            ! 		       * Retrieves the next map entry from the iterator.
                            ! 		       * A lock is obtained on the iterator's mutex before
                            ! 		       * the entry is created.  The new map entry is enclosed in
                            ! 		       * a thread-safe wrapper.
                            ! 		       *
                            ! 		       * @return A synchronized map entry.
                            ! 		       */
                                                    public Map.Entry next()
                                                    {
                                                      synchronized (super.mutex)
                            --- 3414,3442 ----
                                        {
                                          entries = new SynchronizedSet>(mutex, m.entrySet())
                                          {
                            !               /**
                            !                * Returns an iterator over the set.  The iterator has no specific order,
                            !                * unless further specified.  A lock is obtained on the set's mutex
                            !                * before the iterator is created.  The created iterator is also
                            !                * thread-safe.
                            !                *
                            !                * @return A synchronized set iterator.
                            !                */
                                            public Iterator> iterator()
                                            {
                                              synchronized (super.mutex)
                                                {
                                                  return new SynchronizedIterator>(super.mutex,
                            !                                                                      c.iterator())
                                                  {
                            !                       /**
                            !                        * Retrieves the next map entry from the iterator.
                            !                        * A lock is obtained on the iterator's mutex before
                            !                        * the entry is created.  The new map entry is enclosed in
                            !                        * a thread-safe wrapper.
                            !                        *
                            !                        * @return A synchronized map entry.
                            !                        */
                                                    public Map.Entry next()
                                                    {
                                                      synchronized (super.mutex)
                            *************** public class Collections
                            *** 3658,3664 ****
                                   * add or addAll, is not supported via this
                                   * collection.  A lock is obtained on the mutex before the collection
                                   * is created.
                            !      * 
                                   * @return the collection of all values in the underlying map.
                                   */
                                  public Collection values()
                            --- 3658,3664 ----
                                   * add or addAll, is not supported via this
                                   * collection.  A lock is obtained on the mutex before the collection
                                   * is created.
                            !      *
                                   * @return the collection of all values in the underlying map.
                                   */
                                  public Collection values()
                            *************** public class Collections
                            *** 3946,3952 ****
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedSortedMap(mutex,
                            ! 						 sm.subMap(fromKey, toKey));
                                      }
                                  }
                              
                            --- 3946,3952 ----
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedSortedMap(mutex,
                            !                                                  sm.subMap(fromKey, toKey));
                                      }
                                  }
                              
                            *************** public class Collections
                            *** 4144,4151 ****
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedSortedSet(mutex,
                            ! 					      ss.subSet(fromElement,
                            ! 							toElement));
                                      }
                                  }
                              
                            --- 4144,4151 ----
                                    synchronized (mutex)
                                      {
                                        return new SynchronizedSortedSet(mutex,
                            !                                               ss.subSet(fromElement,
                            !                                                         toElement));
                                      }
                                  }
                              
                            *************** public class Collections
                            *** 4174,4180 ****
                                  }
                                } // class SynchronizedSortedSet
                              
                            ! 
                                /**
                                 * Returns an unmodifiable view of the given collection. This allows
                                 * "read-only" access, although changes in the backing collection show up
                            --- 4174,4180 ----
                                  }
                                } // class SynchronizedSortedSet
                              
                            ! 
                                /**
                                 * Returns an unmodifiable view of the given collection. This allows
                                 * "read-only" access, although changes in the backing collection show up
                            *************** public class Collections
                            *** 4497,4503 ****
                                 * via sublists, will fail with {@link UnsupportedOperationException}.
                                 * Although this view prevents changes to the structure of the list and
                                 * its elements, the values referenced by the objects in the list can
                            !    * still be modified.   
                                 * 

                            * * The returned List implements Serializable, but can only be serialized if --- 4497,4503 ---- * via sublists, will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the list and * its elements, the values referenced by the objects in the list can ! * still be modified. *

                            * * The returned List implements Serializable, but can only be serialized if *************** public class Collections *** 4868,4874 **** * iterators will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the map and its * entries, the values referenced by the objects in the map can still be ! * modified. *

                            * * The returned Map implements Serializable, but can only be serialized if --- 4868,4874 ---- * iterators will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the map and its * entries, the values referenced by the objects in the map can still be ! * modified. *

                            * * The returned Map implements Serializable, but can only be serialized if *************** public class Collections *** 4879,4885 **** * @see Serializable */ public static Map unmodifiableMap(Map m) { return new UnmodifiableMap(m); } --- 4879,4885 ---- * @see Serializable */ public static Map unmodifiableMap(Map m) { return new UnmodifiableMap(m); } *************** public class Collections *** 5019,5025 **** /** * Returns true if the object, o, is also a map entry * with an identical key and value. ! * * @param o the object to compare. * @return true if o is an equivalent map entry. */ --- 5019,5025 ---- /** * Returns true if the object, o, is also a map entry * with an identical key and value. ! * * @param o the object to compare. * @return true if o is an equivalent map entry. */ *************** public class Collections *** 5030,5036 **** /** * Returns the key of this map entry. ! * * @return the key. */ public K getKey() --- 5030,5036 ---- /** * Returns the key of this map entry. ! * * @return the key. */ public K getKey() *************** public class Collections *** 5040,5046 **** /** * Returns the value of this map entry. ! * * @return the value. */ public V getValue() --- 5040,5046 ---- /** * Returns the value of this map entry. ! * * @return the value. */ public V getValue() *************** public class Collections *** 5051,5057 **** /** * Computes the hash code of this map entry. The computation is * described in the Map interface documentation. ! * * @return the hash code of this entry. * @see Map#hashCode() */ --- 5051,5057 ---- /** * Computes the hash code of this map entry. The computation is * described in the Map interface documentation. ! * * @return the hash code of this entry. * @see Map#hashCode() */ *************** public class Collections *** 5063,5069 **** /** * Blocks the alteration of the value of this map entry. This method * never returns, throwing an exception instead. ! * * @param value The new value. * @throws UnsupportedOperationException as an unmodifiable map entry * does not support the setValue() operation. --- 5063,5069 ---- /** * Blocks the alteration of the value of this map entry. This method * never returns, throwing an exception instead. ! * * @param value The new value. * @throws UnsupportedOperationException as an unmodifiable map entry * does not support the setValue() operation. *************** public class Collections *** 5075,5081 **** /** * Returns a textual representation of the map entry. ! * * @return The map entry as a String. */ public String toString() --- 5075,5081 ---- /** * Returns a textual representation of the map entry. ! * * @return The map entry as a String. */ public String toString() *************** public class Collections *** 5102,5121 **** public Iterator> iterator() { return new UnmodifiableIterator>(c.iterator()) ! { ! /** ! * Obtains the next element from the underlying set of ! * map entries. ! * ! * @return the next element in the collection. ! * @throws NoSuchElementException if there are no more elements. ! */ public Map.Entry next() { final Map.Entry e = super.next(); ! return new UnmodifiableMapEntry(e); ! } ! }; } // The array returned is an array of UnmodifiableMapEntry instead of --- 5102,5121 ---- public Iterator> iterator() { return new UnmodifiableIterator>(c.iterator()) ! { ! /** ! * Obtains the next element from the underlying set of ! * map entries. ! * ! * @return the next element in the collection. ! * @throws NoSuchElementException if there are no more elements. ! */ public Map.Entry next() { final Map.Entry e = super.next(); ! return new UnmodifiableMapEntry(e); ! } ! }; } // The array returned is an array of UnmodifiableMapEntry instead of *************** public class Collections *** 5124,5137 **** { Object[] mapEntryResult = super.toArray(); UnmodifiableMapEntry result[] = null; ! if (mapEntryResult != null) { result = (UnmodifiableMapEntry[]) ! new UnmodifiableMapEntry[mapEntryResult.length]; for (int i = 0; i < mapEntryResult.length; ++i) ! result[i] = new UnmodifiableMapEntry((Map.Entry)mapEntryResult[i]); ! } return result; } --- 5124,5137 ---- { Object[] mapEntryResult = super.toArray(); UnmodifiableMapEntry result[] = null; ! if (mapEntryResult != null) { result = (UnmodifiableMapEntry[]) ! new UnmodifiableMapEntry[mapEntryResult.length]; for (int i = 0; i < mapEntryResult.length; ++i) ! result[i] = new UnmodifiableMapEntry((Map.Entry)mapEntryResult[i]); ! } return result; } *************** public class Collections *** 5140,5153 **** public S[] toArray(S[] array) { S[] result = super.toArray(array); ! if (result != null) ! for (int i = 0; i < result.length; i++) ! array[i] = ! (S) new UnmodifiableMapEntry((Map.Entry) result[i]); return array; } ! } // class UnmodifiableEntrySet --- 5140,5153 ---- public S[] toArray(S[] array) { S[] result = super.toArray(array); ! if (result != null) ! for (int i = 0; i < result.length; i++) ! array[i] = ! (S) new UnmodifiableMapEntry((Map.Entry) result[i]); return array; } ! } // class UnmodifiableEntrySet *************** public class Collections *** 5311,5317 **** * will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the set and its * entries, the values referenced by the objects in the set can still be ! * modified. *

                            * * The returned Set implements Serializable, but can only be serialized if --- 5311,5317 ---- * will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the set and its * entries, the values referenced by the objects in the set can still be ! * modified. *

                            * * The returned Set implements Serializable, but can only be serialized if *************** public class Collections *** 5366,5372 **** * hash codes of all elements within the set. * * @return the hash code of the set. ! */ public int hashCode() { return c.hashCode(); --- 5366,5372 ---- * hash codes of all elements within the set. * * @return the hash code of the set. ! */ public int hashCode() { return c.hashCode(); *************** public class Collections *** 5380,5386 **** * views, or iterators, will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the map and its * entries, the values referenced by the objects in the map can still be ! * modified. *

                            * * The returned SortedMap implements Serializable, but can only be --- 5380,5386 ---- * views, or iterators, will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the map and its * entries, the values referenced by the objects in the map can still be ! * modified. *

                            * * The returned SortedMap implements Serializable, but can only be *************** public class Collections *** 5391,5397 **** * @see Serializable */ public static SortedMap unmodifiableSortedMap(SortedMap m) { return new UnmodifiableSortedMap(m); } --- 5391,5397 ---- * @see Serializable */ public static SortedMap unmodifiableSortedMap(SortedMap m) { return new UnmodifiableSortedMap(m); } *************** public class Collections *** 5555,5561 **** * iterators, will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the set and its * entries, the values referenced by the objects in the set can still be ! * modified. *

                            * * The returns SortedSet implements Serializable, but can only be --- 5555,5561 ---- * iterators, will fail with {@link UnsupportedOperationException}. * Although this view prevents changes to the structure of the set and its * entries, the values referenced by the objects in the set can still be ! * modified. *

                            * * The returns SortedSet implements Serializable, but can only be *************** public class Collections *** 5724,5730 **** } // class UnmodifiableSortedSet /** ! *

                            * Returns a dynamically typesafe view of the given collection, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of --- 5724,5730 ---- } // class UnmodifiableSortedSet /** ! *

                            * Returns a dynamically typesafe view of the given collection, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of *************** public class Collections *** 5740,5746 **** * ClassCastException caused by erroneous casting, or * for protecting collections from corruption by external libraries. *

                            ! *

                            * Since the collection might be a List or a Set, and those * have incompatible equals and hashCode requirements, this relies * on Object's implementation rather than passing those calls on to --- 5740,5746 ---- * ClassCastException caused by erroneous casting, or * for protecting collections from corruption by external libraries. *

                            ! *

                            * Since the collection might be a List or a Set, and those * have incompatible equals and hashCode requirements, this relies * on Object's implementation rather than passing those calls on to *************** public class Collections *** 5748,5754 **** * Serializable, but can only be serialized if the collection it * wraps is likewise Serializable. *

                            ! * * @param c the collection to wrap in a dynamically typesafe wrapper * @param type the type of elements the collection should hold. * @return a dynamically typesafe view of the collection. --- 5748,5754 ---- * Serializable, but can only be serialized if the collection it * wraps is likewise Serializable. *

                            ! * * @param c the collection to wrap in a dynamically typesafe wrapper * @param type the type of elements the collection should hold. * @return a dynamically typesafe view of the collection. *************** public class Collections *** 5756,5762 **** * @since 1.5 */ public static Collection checkedCollection(Collection c, ! Class type) { return new CheckedCollection(c, type); } --- 5756,5762 ---- * @since 1.5 */ public static Collection checkedCollection(Collection c, ! Class type) { return new CheckedCollection(c, type); } *************** public class Collections *** 5775,5781 **** * Compatible with JDK 1.5. */ private static final long serialVersionUID = 1578914078182001775L; ! /** * The wrapped collection. Package visible for use by subclasses. * @serial the real collection --- 5775,5781 ---- * Compatible with JDK 1.5. */ private static final long serialVersionUID = 1578914078182001775L; ! /** * The wrapped collection. Package visible for use by subclasses. * @serial the real collection *************** public class Collections *** 5814,5822 **** public boolean add(E o) { if (type.isInstance(o)) ! return c.add(o); else ! throw new ClassCastException("The element is of the incorrect type."); } /** --- 5814,5822 ---- public boolean add(E o) { if (type.isInstance(o)) ! return c.add(o); else ! throw new ClassCastException("The element is of the incorrect type."); } /** *************** public class Collections *** 5834,5844 **** Collection typedColl = (Collection) c; final Iterator it = typedColl.iterator(); while (it.hasNext()) ! { ! final E element = it.next(); ! if (!type.isInstance(element)) ! throw new ClassCastException("A member of the collection is not of the correct type."); ! } return c.addAll(typedColl); } --- 5834,5844 ---- Collection typedColl = (Collection) c; final Iterator it = typedColl.iterator(); while (it.hasNext()) ! { ! final E element = it.next(); ! if (!type.isInstance(element)) ! throw new ClassCastException("A member of the collection is not of the correct type."); ! } return c.addAll(typedColl); } *************** public class Collections *** 6075,6081 **** } // class CheckedIterator /** ! *

                            * Returns a dynamically typesafe view of the given list, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of --- 6075,6081 ---- } // class CheckedIterator /** ! *

                            * Returns a dynamically typesafe view of the given list, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of *************** public class Collections *** 6118,6124 **** * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! private static class CheckedList extends CheckedCollection implements List { --- 6118,6124 ---- * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! private static class CheckedList extends CheckedCollection implements List { *************** public class Collections *** 6158,6166 **** public void add(int index, E o) { if (type.isInstance(o)) ! list.add(index, o); else ! throw new ClassCastException("The object is of the wrong type."); } /** --- 6158,6166 ---- public void add(int index, E o) { if (type.isInstance(o)) ! list.add(index, o); else ! throw new ClassCastException("The object is of the wrong type."); } /** *************** public class Collections *** 6178,6187 **** Collection typedColl = (Collection) coll; final Iterator it = typedColl.iterator(); while (it.hasNext()) ! { ! if (!type.isInstance(it.next())) ! throw new ClassCastException("A member of the collection is not of the correct type."); ! } return list.addAll(index, coll); } --- 6178,6187 ---- Collection typedColl = (Collection) coll; final Iterator it = typedColl.iterator(); while (it.hasNext()) ! { ! if (!type.isInstance(it.next())) ! throw new ClassCastException("A member of the collection is not of the correct type."); ! } return list.addAll(index, coll); } *************** public class Collections *** 6399,6407 **** public void add(E o) { if (type.isInstance(o)) ! li.add(o); else ! throw new ClassCastException("The object is of the wrong type."); } /** --- 6399,6407 ---- public void add(E o) { if (type.isInstance(o)) ! li.add(o); else ! throw new ClassCastException("The object is of the wrong type."); } /** *************** public class Collections *** 6466,6479 **** public void set(E o) { if (type.isInstance(o)) ! li.set(o); else ! throw new ClassCastException("The object is of the wrong type."); } } // class CheckedListIterator /** ! *

                            * Returns a dynamically typesafe view of the given map, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of --- 6466,6479 ---- public void set(E o) { if (type.isInstance(o)) ! li.set(o); else ! throw new ClassCastException("The object is of the wrong type."); } } // class CheckedListIterator /** ! *

                            * Returns a dynamically typesafe view of the given map, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of *************** public class Collections *** 6501,6507 **** * @see Serializable */ public static Map checkedMap(Map m, Class keyType, ! Class valueType) { return new CheckedMap(m, keyType, valueType); } --- 6501,6507 ---- * @see Serializable */ public static Map checkedMap(Map m, Class keyType, ! Class valueType) { return new CheckedMap(m, keyType, valueType); } *************** public class Collections *** 6513,6519 **** * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! private static class CheckedMap implements Map, Serializable { /** --- 6513,6519 ---- * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! private static class CheckedMap implements Map, Serializable { /** *************** public class Collections *** 6621,6627 **** *

                            * The set is backed by the map, so that changes in one show up in the * other. Modifications made while an iterator is in progress cause ! * undefined behavior. *

                            * * @return the checked set view of all mapping entries. --- 6621,6627 ---- *

                            * The set is backed by the map, so that changes in one show up in the * other. Modifications made while an iterator is in progress cause ! * undefined behavior. *

                            * * @return the checked set view of all mapping entries. *************** public class Collections *** 6630,6643 **** public Set> entrySet() { if (entries == null) ! { ! Class> klass = ! (Class>) (Class) Map.Entry.class; ! entries = new CheckedEntrySet,K,V>(m.entrySet(), ! klass, ! keyType, ! valueType); ! } return entries; } --- 6630,6643 ---- public Set> entrySet() { if (entries == null) ! { ! Class> klass = ! (Class>) (Class) Map.Entry.class; ! entries = new CheckedEntrySet,K,V>(m.entrySet(), ! klass, ! keyType, ! valueType); ! } return entries; } *************** public class Collections *** 6656,6668 **** * @serial the key type. */ private final Class keyType; ! /** * The type of the map's values. * @serial the value type. */ private final Class valueType; ! /** * Wrap a given set of map entries. * --- 6656,6668 ---- * @serial the key type. */ private final Class keyType; ! /** * The type of the map's values. * @serial the value type. */ private final Class valueType; ! /** * Wrap a given set of map entries. * *************** public class Collections *** 6672,6775 **** * @param valueType the type of the map's values. */ CheckedEntrySet(Set s, Class type, Class keyType, ! Class valueType) { super(s, type); ! this.keyType = keyType; ! this.valueType = valueType; } // The iterator must return checked map entries. public Iterator iterator() { return new CheckedIterator(c.iterator(), type) ! { ! /** ! * Obtains the next element from the underlying set of ! * map entries. ! * ! * @return the next element in the collection. ! * @throws NoSuchElementException if there are no more elements. ! */ public E next() { final Map.Entry e = (Map.Entry) super.next(); return (E) new Map.Entry() ! { ! /** ! * Returns true if the object, o, is also a map ! * entry with an identical key and value. ! * ! * @param o the object to compare. ! * @return true if o is an equivalent map entry. ! */ public boolean equals(Object o) { return e.equals(o); } ! ! /** ! * Returns the key of this map entry. ! * ! * @return the key. ! */ public Object getKey() { return e.getKey(); } ! /** ! * Returns the value of this map entry. ! * ! * @return the value. ! */ public Object getValue() { return e.getValue(); } ! /** ! * Computes the hash code of this map entry. ! * The computation is described in the Map ! * interface documentation. ! * ! * @return the hash code of this entry. ! * @see Map#hashCode() ! */ ! public int hashCode() { return e.hashCode(); } ! /** ! * Sets the value of this map entry, provided it is of the ! * right type. ! * ! * @param value The new value. ! * @throws ClassCastException if the type of the value is not ! * a valid type for the underlying ! * map. ! */ public Object setValue(Object value) { ! if (valueType.isInstance(value)) ! return e.setValue(value); ! else ! throw new ClassCastException("The value is of the wrong type."); } ! /** ! * Returns a textual representation of the map entry. ! * ! * @return The map entry as a String. ! */ public String toString() { return e.toString(); } ! }; } ! }; } } // class CheckedEntrySet --- 6672,6775 ---- * @param valueType the type of the map's values. */ CheckedEntrySet(Set s, Class type, Class keyType, ! Class valueType) { super(s, type); ! this.keyType = keyType; ! this.valueType = valueType; } // The iterator must return checked map entries. public Iterator iterator() { return new CheckedIterator(c.iterator(), type) ! { ! /** ! * Obtains the next element from the underlying set of ! * map entries. ! * ! * @return the next element in the collection. ! * @throws NoSuchElementException if there are no more elements. ! */ public E next() { final Map.Entry e = (Map.Entry) super.next(); return (E) new Map.Entry() ! { ! /** ! * Returns true if the object, o, is also a map ! * entry with an identical key and value. ! * ! * @param o the object to compare. ! * @return true if o is an equivalent map entry. ! */ public boolean equals(Object o) { return e.equals(o); } ! ! /** ! * Returns the key of this map entry. ! * ! * @return the key. ! */ public Object getKey() { return e.getKey(); } ! /** ! * Returns the value of this map entry. ! * ! * @return the value. ! */ public Object getValue() { return e.getValue(); } ! /** ! * Computes the hash code of this map entry. ! * The computation is described in the Map ! * interface documentation. ! * ! * @return the hash code of this entry. ! * @see Map#hashCode() ! */ ! public int hashCode() { return e.hashCode(); } ! /** ! * Sets the value of this map entry, provided it is of the ! * right type. ! * ! * @param value The new value. ! * @throws ClassCastException if the type of the value is not ! * a valid type for the underlying ! * map. ! */ public Object setValue(Object value) { ! if (valueType.isInstance(value)) ! return e.setValue(value); ! else ! throw new ClassCastException("The value is of the wrong type."); } ! /** ! * Returns a textual representation of the map entry. ! * ! * @return The map entry as a String. ! */ public String toString() { return e.toString(); } ! }; } ! }; } } // class CheckedEntrySet *************** public class Collections *** 6811,6827 **** * @param value The new value. * @return the previous value of the key, or null if there was no mapping. * @throws ClassCastException if the type of the key or the value is ! * not a valid type for the underlying map. */ public V put(K key, V value) { if (keyType.isInstance(key)) ! { ! if (valueType.isInstance(value)) ! return m.put(key,value); ! else ! throw new ClassCastException("The value is of the wrong type."); ! } throw new ClassCastException("The key is of the wrong type."); } --- 6811,6827 ---- * @param value The new value. * @return the previous value of the key, or null if there was no mapping. * @throws ClassCastException if the type of the key or the value is ! * not a valid type for the underlying map. */ public V put(K key, V value) { if (keyType.isInstance(key)) ! { ! if (valueType.isInstance(value)) ! return m.put(key,value); ! else ! throw new ClassCastException("The value is of the wrong type."); ! } throw new ClassCastException("The key is of the wrong type."); } *************** public class Collections *** 6875,6894 **** * @param map the map, the entries of which should be added * to the underlying map. * @throws ClassCastException if the type of a key or value is ! * not a valid type for the underlying map. */ public void putAll(Map map) { Map typedMap = (Map) map; final Iterator> it = typedMap.entrySet().iterator(); while (it.hasNext()) ! { ! final Map.Entry entry = it.next(); ! if (!keyType.isInstance(entry.getKey())) ! throw new ClassCastException("A key is of the wrong type."); ! if (!valueType.isInstance(entry.getValue())) ! throw new ClassCastException("A value is of the wrong type."); ! } m.putAll(typedMap); } --- 6875,6894 ---- * @param map the map, the entries of which should be added * to the underlying map. * @throws ClassCastException if the type of a key or value is ! * not a valid type for the underlying map. */ public void putAll(Map map) { Map typedMap = (Map) map; final Iterator> it = typedMap.entrySet().iterator(); while (it.hasNext()) ! { ! final Map.Entry entry = it.next(); ! if (!keyType.isInstance(entry.getKey())) ! throw new ClassCastException("A key is of the wrong type."); ! if (!valueType.isInstance(entry.getValue())) ! throw new ClassCastException("A value is of the wrong type."); ! } m.putAll(typedMap); } *************** public class Collections *** 6941,6947 **** * behavior. These modifications are again limited to the values of * the keys. *

                            ! * * @return the collection view of all values. */ public Collection values() --- 6941,6947 ---- * behavior. These modifications are again limited to the values of * the keys. *

                            ! * * @return the collection view of all values. */ public Collection values() *************** public class Collections *** 6953,6959 **** } // class CheckedMap /** ! *

                            * Returns a dynamically typesafe view of the given set, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of --- 6953,6959 ---- } // class CheckedMap /** ! *

                            * Returns a dynamically typesafe view of the given set, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of *************** public class Collections *** 6991,6997 **** * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! private static class CheckedSet extends CheckedCollection implements Set { --- 6991,6997 ---- * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! private static class CheckedSet extends CheckedCollection implements Set { *************** public class Collections *** 7027,7033 **** * hash codes of all elements within the set. * * @return the hash code of the set. ! */ public int hashCode() { return c.hashCode(); --- 7027,7033 ---- * hash codes of all elements within the set. * * @return the hash code of the set. ! */ public int hashCode() { return c.hashCode(); *************** public class Collections *** 7035,7041 **** } // class CheckedSet /** ! *

                            * Returns a dynamically typesafe view of the given sorted map, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of --- 7035,7041 ---- } // class CheckedSet /** ! *

                            * Returns a dynamically typesafe view of the given sorted map, * where any modification is first checked to ensure that the type * of the new data is appropriate. Although the addition of *************** public class Collections *** 7063,7070 **** * @see Serializable */ public static SortedMap checkedSortedMap(SortedMap m, ! Class keyType, ! Class valueType) { return new CheckedSortedMap(m, keyType, valueType); } --- 7063,7070 ---- * @see Serializable */ public static SortedMap checkedSortedMap(SortedMap m, ! Class keyType, ! Class valueType) { return new CheckedSortedMap(m, keyType, valueType); } *************** public class Collections *** 7199,7206 **** */ public SortedMap subMap(K fromKey, K toKey) { ! return new CheckedSortedMap(sm.subMap(fromKey, toKey), keyType, ! valueType); } /** --- 7199,7206 ---- */ public SortedMap subMap(K fromKey, K toKey) { ! return new CheckedSortedMap(sm.subMap(fromKey, toKey), keyType, ! valueType); } /** *************** public class Collections *** 7231,7237 **** public SortedMap tailMap(K fromKey) { return new CheckedSortedMap(sm.tailMap(fromKey), keyType, ! valueType); } } // class CheckedSortedMap --- 7231,7237 ---- public SortedMap tailMap(K fromKey) { return new CheckedSortedMap(sm.tailMap(fromKey), keyType, ! valueType); } } // class CheckedSortedMap *************** public class Collections *** 7263,7269 **** * @see Serializable */ public static SortedSet checkedSortedSet(SortedSet s, ! Class type) { return new CheckedSortedSet(s, type); } --- 7263,7269 ---- * @see Serializable */ public static SortedSet checkedSortedSet(SortedSet s, ! Class type) { return new CheckedSortedSet(s, type); } *************** public class Collections *** 7275,7281 **** * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! private static class CheckedSortedSet extends CheckedSet implements SortedSet { --- 7275,7281 ---- * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ ! private static class CheckedSortedSet extends CheckedSet implements SortedSet { *************** public class Collections *** 7287,7293 **** /** * The wrapped set; stored both here and in the superclass to avoid * excessive casting. ! * * @serial the wrapped set */ private SortedSet ss; --- 7287,7293 ---- /** * The wrapped set; stored both here and in the superclass to avoid * excessive casting. ! * * @serial the wrapped set */ private SortedSet ss; *************** public class Collections *** 7388,7394 **** * new Integer(highlimit.intValue() + 1)) to reverse * the inclusiveness of both endpoints. *

                            ! * * @param fromElement the inclusive lower range of the subset. * @param toElement the exclusive upper range of the subset. * @return the subset. --- 7388,7394 ---- * new Integer(highlimit.intValue() + 1)) to reverse * the inclusiveness of both endpoints. *

                            ! * * @param fromElement the inclusive lower range of the subset. * @param toElement the exclusive upper range of the subset. * @return the subset. *************** public class Collections *** 7471,7477 **** } /** ! * The implementation of {@link #asLIFOQueue(Deque)}. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.6 --- 7471,7477 ---- } /** ! * The implementation of {@link #asLIFOQueue(Deque)}. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.6 *************** public class Collections *** 7479,7485 **** private static class LIFOQueue extends AbstractQueue { ! /** * The backing deque. */ --- 7479,7485 ---- private static class LIFOQueue extends AbstractQueue { ! /** * The backing deque. */ *************** public class Collections *** 7500,7535 **** { return deque.offerFirst(e); } ! public boolean addAll(Collection c) { boolean result = false; final Iterator it = c.iterator(); while (it.hasNext()) ! result |= deque.offerFirst(it.next()); return result; } ! public void clear() { deque.clear(); } ! public boolean isEmpty() { return deque.isEmpty(); } ! public Iterator iterator() { return deque.iterator(); } ! public boolean offer(T e) { return deque.offerFirst(e); } ! public T peek() { return deque.peek(); --- 7500,7535 ---- { return deque.offerFirst(e); } ! public boolean addAll(Collection c) { boolean result = false; final Iterator it = c.iterator(); while (it.hasNext()) ! result |= deque.offerFirst(it.next()); return result; } ! public void clear() { deque.clear(); } ! public boolean isEmpty() { return deque.isEmpty(); } ! public Iterator iterator() { return deque.iterator(); } ! public boolean offer(T e) { return deque.offerFirst(e); } ! public T peek() { return deque.peek(); *************** public class Collections *** 7539,7545 **** { return deque.poll(); } ! public int size() { return deque.size(); --- 7539,7545 ---- { return deque.poll(); } ! public int size() { return deque.size(); *************** public class Collections *** 7547,7553 **** } // class LIFOQueue /** ! * The implementation of {@link #newSetFromMap(Map)}. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.6 --- 7547,7553 ---- } // class LIFOQueue /** ! * The implementation of {@link #newSetFromMap(Map)}. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.6 *************** public class Collections *** 7555,7561 **** private static class MapSet extends AbstractSet { ! /** * The backing map. */ --- 7555,7561 ---- private static class MapSet extends AbstractSet { ! /** * The backing map. */ *************** public class Collections *** 7571,7577 **** public MapSet(Map map) { if (!map.isEmpty()) ! throw new IllegalArgumentException("The map must be empty."); this.map = map; } --- 7571,7577 ---- public MapSet(Map map) { if (!map.isEmpty()) ! throw new IllegalArgumentException("The map must be empty."); this.map = map; } *************** public class Collections *** 7579,7623 **** { return map.put(e, true) == null; } ! public boolean addAll(Collection c) { boolean result = false; final Iterator it = c.iterator(); while (it.hasNext()) ! result |= (map.put(it.next(), true) == null); return result; } ! public void clear() { map.clear(); } ! public boolean contains(Object o) { return map.containsKey(o); } ! public boolean isEmpty() { return map.isEmpty(); } ! public Iterator iterator() { return map.keySet().iterator(); } ! public boolean remove(Object o) { return map.remove(o) != null; } ! public int size() { return map.size(); } } // class MapSet ! } // class Collections --- 7579,7623 ---- { return map.put(e, true) == null; } ! public boolean addAll(Collection c) { boolean result = false; final Iterator it = c.iterator(); while (it.hasNext()) ! result |= (map.put(it.next(), true) == null); return result; } ! public void clear() { map.clear(); } ! public boolean contains(Object o) { return map.containsKey(o); } ! public boolean isEmpty() { return map.isEmpty(); } ! public Iterator iterator() { return map.keySet().iterator(); } ! public boolean remove(Object o) { return map.remove(o) != null; } ! public int size() { return map.size(); } } // class MapSet ! } // class Collections diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Currency.java gcc-4.6.0/libjava/classpath/java/util/Currency.java *** gcc-4.5.2/libjava/classpath/java/util/Currency.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/Currency.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.spi.CurrencyNameProvide *** 60,66 **** * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.4 */ ! public final class Currency implements Serializable { /** --- 60,66 ---- * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.4 */ ! public final class Currency implements Serializable { /** *************** public final class Currency *** 95,101 **** * @serial the number of fraction digits */ private transient int fractionDigits; ! /** * A cached map of country codes * instances to international currency code --- 95,101 ---- * @serial the number of fraction digits */ private transient int fractionDigits; ! /** * A cached map of country codes * instances to international currency code *************** public final class Currency *** 115,121 **** * is the international currency code. * * @see #getInstance(java.util.Locale) ! * @see #getInstance(java.lang.String) * @see #readResolve() * @serial ignored. */ --- 115,121 ---- * is the international currency code. * * @see #getInstance(java.util.Locale) ! * @see #getInstance(java.lang.String) * @see #readResolve() * @serial ignored. */ *************** public final class Currency *** 133,139 **** /* Create the properties object */ properties = new Properties(); /* Try and load the properties from our iso4217.properties resource */ ! try { properties.load(Currency.class.getResourceAsStream("iso4217.properties")); } --- 133,139 ---- /* Create the properties object */ properties = new Properties(); /* Try and load the properties from our iso4217.properties resource */ ! try { properties.load(Currency.class.getResourceAsStream("iso4217.properties")); } *************** public final class Currency *** 157,163 **** * country code, are ignored. The results of calling this * method may vary over time, as the currency associated with * a particular country changes. For countries without ! * a given currency (e.g. Antarctica), the result is null. * * @param loc the locale for the new currency, or null if * there is no country code specified or a currency --- 157,163 ---- * country code, are ignored. The results of calling this * method may vary over time, as the currency associated with * a particular country changes. For countries without ! * a given currency (e.g. Antarctica), the result is null. * * @param loc the locale for the new currency, or null if * there is no country code specified or a currency *************** public final class Currency *** 176,183 **** if (countryCode.equals("")) { throw new ! IllegalArgumentException("Invalid (empty) country code for locale:" ! + loc); } /* Construct the key for the currency */ currencyKey = countryCode + ".currency"; --- 176,183 ---- if (countryCode.equals("")) { throw new ! IllegalArgumentException("Invalid (empty) country code for locale:" ! + loc); } /* Construct the key for the currency */ currencyKey = countryCode + ".currency"; *************** public final class Currency *** 206,212 **** * currency code. * * @param code the code to use. ! */ private Currency(String code) { currencyCode = code; --- 206,212 ---- * currency code. * * @param code the code to use. ! */ private Currency(String code) { currencyCode = code; *************** public final class Currency *** 234,252 **** * currencies, such as IMF Special Drawing Rights, -1 is returned. * * @return the number of digits after the decimal separator for this currency. ! */ public int getDefaultFractionDigits() { return fractionDigits; } ! /** * Builds a new currency instance for this locale. * All components of the given locale, other than the * country code, are ignored. The results of calling this * method may vary over time, as the currency associated with * a particular country changes. For countries without ! * a given currency (e.g. Antarctica), the result is null. * * @param locale a Locale instance. * @return a new Currency instance. --- 234,252 ---- * currencies, such as IMF Special Drawing Rights, -1 is returned. * * @return the number of digits after the decimal separator for this currency. ! */ public int getDefaultFractionDigits() { return fractionDigits; } ! /** * Builds a new currency instance for this locale. * All components of the given locale, other than the * country code, are ignored. The results of calling this * method may vary over time, as the currency associated with * a particular country changes. For countries without ! * a given currency (e.g. Antarctica), the result is null. * * @param locale a Locale instance. * @return a new Currency instance. *************** public final class Currency *** 254,260 **** * country code is null. * @throws IllegalArgumentException if the country of * the given locale is not a supported ISO3166 code. ! */ public static Currency getInstance(Locale locale) { /** --- 254,260 ---- * country code is null. * @throws IllegalArgumentException if the country of * the given locale is not a supported ISO3166 code. ! */ public static Currency getInstance(Locale locale) { /** *************** public final class Currency *** 270,308 **** String country = locale.getCountry(); if (locale == null || country == null) { ! throw new ! NullPointerException("The locale or its country is null."); } ! /* Check that country of locale given is valid. */ if (country.length() != 2) throw new IllegalArgumentException(); ! /* Attempt to get the currency from the cache */ String code = (String) countryMap.get(country); if (code == null) { /* Create the currency for this locale */ newCurrency = new Currency(locale); ! /* * If the currency code is null, then creation failed * and we return null. */ ! code = newCurrency.getCurrencyCode(); if (code == null) { return null; } ! else { /* Cache it */ countryMap.put(country, code); ! cache.put(code, newCurrency); } } else { ! newCurrency = (Currency) cache.get(code); } /* Return the instance */ return newCurrency; --- 270,308 ---- String country = locale.getCountry(); if (locale == null || country == null) { ! throw new ! NullPointerException("The locale or its country is null."); } ! /* Check that country of locale given is valid. */ if (country.length() != 2) throw new IllegalArgumentException(); ! /* Attempt to get the currency from the cache */ String code = (String) countryMap.get(country); if (code == null) { /* Create the currency for this locale */ newCurrency = new Currency(locale); ! /* * If the currency code is null, then creation failed * and we return null. */ ! code = newCurrency.getCurrencyCode(); if (code == null) { return null; } ! else { /* Cache it */ countryMap.put(country, code); ! cache.put(code, newCurrency); } } else { ! newCurrency = (Currency) cache.get(code); } /* Return the instance */ return newCurrency; *************** public final class Currency *** 321,330 **** { Locale[] allLocales; ! /* * Throw a null pointer exception explicitly if currencyCode is null. * One is not thrown otherwise. It results in an ! * IllegalArgumentException. */ if (currencyCode == null) { --- 321,330 ---- { Locale[] allLocales; ! /* * Throw a null pointer exception explicitly if currencyCode is null. * One is not thrown otherwise. It results in an ! * IllegalArgumentException. */ if (currencyCode == null) { *************** public final class Currency *** 336,370 **** Currency newCurrency = (Currency) cache.get(currencyCode); if (newCurrency == null) { ! /* Get all locales */ ! allLocales = Locale.getAvailableLocales(); ! /* Loop through each locale, looking for the code */ ! for (int i = 0;i < allLocales.length; i++) ! { ! try ! { ! Currency testCurrency = getInstance (allLocales[i]); ! if (testCurrency != null && ! testCurrency.getCurrencyCode().equals(currencyCode)) ! { ! return testCurrency; ! } ! } ! catch (IllegalArgumentException exception) ! { ! /* Ignore locales without valid countries */ ! } ! } ! /* ! * If we get this far, the code is not supported by any of ! * our locales. ! */ ! throw new IllegalArgumentException("The currency code, " + currencyCode + ! ", is not supported."); } else { ! return newCurrency; } } --- 336,370 ---- Currency newCurrency = (Currency) cache.get(currencyCode); if (newCurrency == null) { ! /* Get all locales */ ! allLocales = Locale.getAvailableLocales(); ! /* Loop through each locale, looking for the code */ ! for (int i = 0;i < allLocales.length; i++) ! { ! try ! { ! Currency testCurrency = getInstance (allLocales[i]); ! if (testCurrency != null && ! testCurrency.getCurrencyCode().equals(currencyCode)) ! { ! return testCurrency; ! } ! } ! catch (IllegalArgumentException exception) ! { ! /* Ignore locales without valid countries */ ! } ! } ! /* ! * If we get this far, the code is not supported by any of ! * our locales. ! */ ! throw new IllegalArgumentException("The currency code, " + currencyCode + ! ", is not supported."); } else { ! return newCurrency; } } *************** public final class Currency *** 413,439 **** try { return ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! locale).getString(property); } catch (MissingResourceException exception) { ! /* This means runtime support for the locale ! * is not available, so we check providers. */ } for (CurrencyNameProvider p : ! ServiceLoader.load(CurrencyNameProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! String localizedString = p.getSymbol(currencyCode, ! locale); ! if (localizedString != null) ! return localizedString; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) // Base case return currencyCode; --- 413,439 ---- try { return ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", ! locale).getString(property); } catch (MissingResourceException exception) { ! /* This means runtime support for the locale ! * is not available, so we check providers. */ } for (CurrencyNameProvider p : ! ServiceLoader.load(CurrencyNameProvider.class)) { ! for (Locale loc : p.getAvailableLocales()) ! { ! if (loc.equals(locale)) ! { ! String localizedString = p.getSymbol(currencyCode, ! locale); ! if (localizedString != null) ! return localizedString; ! break; ! } ! } } if (locale.equals(Locale.ROOT)) // Base case return currencyCode; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Date.java gcc-4.6.0/libjava/classpath/java/util/Date.java *** gcc-4.5.2/libjava/classpath/java/util/Date.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/Date.java Tue Jan 11 19:46:05 2011 *************** import java.text.SimpleDateFormat; *** 49,59 **** /** *

                            * This class represents a specific time in milliseconds since the epoch. ! * The epoch is 1970, January 1 00:00:00.0000 UTC. *

                            *

                            * Date is intended to reflect universal time coordinate (UTC), ! * but this depends on the underlying host environment. Most operating systems * don't handle the leap second, which occurs about once every year or * so. The leap second is added to the last minute of the day on either * the 30th of June or the 31st of December, creating a minute 61 seconds --- 49,59 ---- /** *

                            * This class represents a specific time in milliseconds since the epoch. ! * The epoch is 1970, January 1 00:00:00.0000 UTC. *

                            *

                            * Date is intended to reflect universal time coordinate (UTC), ! * but this depends on the underlying host environment. Most operating systems * don't handle the leap second, which occurs about once every year or * so. The leap second is added to the last minute of the day on either * the 30th of June or the 31st of December, creating a minute 61 seconds *************** public class Date *** 127,139 **** * An array of week names used to map names to integer values. */ private static final String[] weekNames = { "Sun", "Mon", "Tue", "Wed", ! "Thu", "Fri", "Sat" }; /** * An array of month names used to map names to integer values. */ private static final String[] monthNames = { "Jan", "Feb", "Mar", "Apr", ! "May", "Jun", "Jul", "Aug", ! "Sep", "Oct", "Nov", "Dec" }; /** * Creates a new Date Object representing the current time. */ --- 127,139 ---- * An array of week names used to map names to integer values. */ private static final String[] weekNames = { "Sun", "Mon", "Tue", "Wed", ! "Thu", "Fri", "Sat" }; /** * An array of month names used to map names to integer values. */ private static final String[] monthNames = { "Jan", "Feb", "Mar", "Apr", ! "May", "Jun", "Jul", "Aug", ! "Sep", "Oct", "Nov", "Dec" }; /** * Creates a new Date Object representing the current time. */ *************** public class Date *** 187,193 **** * Creates a new Date Object representing the given time. * * @deprecated use new GregorianCalendar(year+1900, month, ! * day, hour, min, sec) instead. * @param year the difference between the required year and 1900. * @param month the month as a value between 0 and 11. * @param day the day as a value between 0 and 31. --- 187,193 ---- * Creates a new Date Object representing the given time. * * @deprecated use new GregorianCalendar(year+1900, month, ! * day, hour, min, sec) instead. * @param year the difference between the required year and 1900. * @param month the month as a value between 0 and 11. * @param day the day as a value between 0 and 31. *************** public class Date *** 200,206 **** public Date(int year, int month, int day, int hour, int min, int sec) { GregorianCalendar cal = ! new GregorianCalendar(year + 1900, month, day, hour, min, sec); time = cal.getTimeInMillis(); } --- 200,206 ---- public Date(int year, int month, int day, int hour, int min, int sec) { GregorianCalendar cal = ! new GregorianCalendar(year + 1900, month, day, hour, min, sec); time = cal.getTimeInMillis(); } *************** public class Date *** 208,214 **** * Creates a new Date from the given string representation. This * does the same as new Date(Date.parse(s)) * @see #parse ! * @deprecated use java.text.DateFormat.parse(s) instead. */ public Date(String s) { --- 208,214 ---- * Creates a new Date from the given string representation. This * does the same as new Date(Date.parse(s)) * @see #parse ! * @deprecated use java.text.DateFormat.parse(s) instead. */ public Date(String s) { *************** public class Date *** 226,236 **** { try { ! return super.clone(); } catch (CloneNotSupportedException ex) { ! return null; } } --- 226,236 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException ex) { ! return null; } } *************** public class Date *** 253,259 **** * @return the time in milliseconds since the epoch. */ public static long UTC(int year, int month, int date, ! int hrs, int min, int sec) { GregorianCalendar cal = new GregorianCalendar(year + 1900, month, date, hrs, min, sec); --- 253,259 ---- * @return the time in milliseconds since the epoch. */ public static long UTC(int year, int month, int date, ! int hrs, int min, int sec) { GregorianCalendar cal = new GregorianCalendar(year + 1900, month, date, hrs, min, sec); *************** public class Date *** 278,284 **** * from this object is also used to determine whether or not daylight savings * time is in effect. For example, the offset for the UK would be 0 if the * month of the date object was January, and 1 if the month was August. ! * * @deprecated use * Calendar.get(Calendar.ZONE_OFFSET)+Calendar.get(Calendar.DST_OFFSET) * instead. --- 278,284 ---- * from this object is also used to determine whether or not daylight savings * time is in effect. For example, the offset for the UK would be 0 if the * month of the date object was January, and 1 if the month was August. ! * * @deprecated use * Calendar.get(Calendar.ZONE_OFFSET)+Calendar.get(Calendar.DST_OFFSET) * instead. *************** public class Date *** 291,303 **** Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(time); return - (cal.get(Calendar.ZONE_OFFSET) ! + cal.get(Calendar.DST_OFFSET)) / (60 * 1000); } /** * Sets the time which this object should represent. * ! * @param time the time in milliseconds since the epoch. */ public void setTime(long time) { --- 291,303 ---- Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(time); return - (cal.get(Calendar.ZONE_OFFSET) ! + cal.get(Calendar.DST_OFFSET)) / (60 * 1000); } /** * Sets the time which this object should represent. * ! * @param time the time in milliseconds since the epoch. */ public void setTime(long time) { *************** public class Date *** 309,315 **** * * @param when the other date * @return true, if the date represented by this object is ! * strictly later than the time represented by when. */ public boolean after(Date when) { --- 309,315 ---- * * @param when the other date * @return true, if the date represented by this object is ! * strictly later than the time represented by when. */ public boolean after(Date when) { *************** public class Date *** 334,340 **** * @param obj the object to compare. * @return true, if obj is a Date object and the time represented * by obj is exactly the same as the time represented by this ! * object. */ public boolean equals(Object obj) { --- 334,340 ---- * @param obj the object to compare. * @return true, if obj is a Date object and the time represented * by obj is exactly the same as the time represented by this ! * object. */ public boolean equals(Object obj) { *************** public class Date *** 348,354 **** * @return 0, if the date represented * by obj is exactly the same as the time represented by this * object, a negative if this Date is before the other Date, and ! * a positive value otherwise. */ public int compareTo(Date when) { --- 348,354 ---- * @return 0, if the date represented * by obj is exactly the same as the time represented by this * object, a negative if this Date is before the other Date, and ! * a positive value otherwise. */ public int compareTo(Date when) { *************** public class Date *** 414,420 **** * * *

                            ! * The DateFormat class should now be * preferred over using this method. *

                            * --- 414,420 ---- * * *

                            ! * The DateFormat class should now be * preferred over using this method. *

                            * *************** public class Date *** 439,449 **** + sec.substring(sec.length() - 2) + " " + cal.getTimeZone().getDisplayName(cal.getTimeZone().inDaylightTime(this), ! TimeZone.SHORT) + " " + year.substring(year.length() - 4); } ! /** * Returns a locale-dependent string representation of this * Date object. * --- 439,449 ---- + sec.substring(sec.length() - 2) + " " + cal.getTimeZone().getDisplayName(cal.getTimeZone().inDaylightTime(this), ! TimeZone.SHORT) + " " + year.substring(year.length() - 4); } ! /** * Returns a locale-dependent string representation of this * Date object. * *************** public class Date *** 457,463 **** return java.text.DateFormat.getInstance().format(this); } ! /** *

                            * Returns a string representation of this Date * object using GMT rather than the local timezone. --- 457,463 ---- return java.text.DateFormat.getInstance().format(this); } ! /** *

                            * Returns a string representation of this Date * object using GMT rather than the local timezone. *************** public class Date *** 497,503 **** * the local timezone. * * ! * * @deprecated Use DateFormat.format(Date) with a GMT TimeZone. * @return A string of the form 'd mon yyyy hh:mm:ss GMT' using * GMT as opposed to the local timezone. --- 497,503 ---- * the local timezone. * * ! * * @deprecated Use DateFormat.format(Date) with a GMT TimeZone. * @return A string of the form 'd mon yyyy hh:mm:ss GMT' using * GMT as opposed to the local timezone. *************** public class Date *** 526,537 **** try { ! // parseInt doesn't handle '+' so strip off sign. ! num = Integer.parseInt(tok.substring(1)); } catch (NumberFormatException ex) { ! throw new IllegalArgumentException(tok); } // Convert hours to minutes. --- 526,537 ---- try { ! // parseInt doesn't handle '+' so strip off sign. ! num = Integer.parseInt(tok.substring(1)); } catch (NumberFormatException ex) { ! throw new IllegalArgumentException(tok); } // Convert hours to minutes. *************** public class Date *** 557,564 **** // We could possibly use the fields of DateFormatSymbols but that is // localized and thus might not match the English words specified. String months[] = { "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", ! "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", ! "NOVEMBER", "DECEMBER" }; int i; for (i = 0; i < 12; i++) --- 557,564 ---- // We could possibly use the fields of DateFormatSymbols but that is // localized and thus might not match the English words specified. String months[] = { "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", ! "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", ! "NOVEMBER", "DECEMBER" }; int i; for (i = 0; i < 12; i++) *************** public class Date *** 581,587 **** // We could possibly use the fields of DateFormatSymbols but that is // localized and thus might not match the English words specified. String daysOfWeek[] = { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", ! "THURSDAY", "FRIDAY", "SATURDAY" }; int i; for (i = 0; i < 7; i++) --- 581,587 ---- // We could possibly use the fields of DateFormatSymbols but that is // localized and thus might not match the English words specified. String daysOfWeek[] = { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", ! "THURSDAY", "FRIDAY", "SATURDAY" }; int i; for (i = 0; i < 7; i++) *************** public class Date *** 591,597 **** return false; } ! /** *

                            * Parses a String and returns the time, in milliseconds since the * epoch, it represents. Most syntaxes are handled, including --- 591,597 ---- return false; } ! /** *

                            * Parses a String and returns the time, in milliseconds since the * epoch, it represents. Most syntaxes are handled, including *************** public class Date *** 612,618 **** * failure. The ASCII characters A-Z, a-z, 0-9, and ',', '+', '-', * ':' and '/' are the only characters permitted within the string, * besides whitespace and characters enclosed within parantheses ! * '(' and ')'. *

                            *

                            * A sequence of consecutive digits are recognised as a number, --- 612,618 ---- * failure. The ASCII characters A-Z, a-z, 0-9, and ',', '+', '-', * ':' and '/' are the only characters permitted within the string, * besides whitespace and characters enclosed within parantheses ! * '(' and ')'. *

                            *

                            * A sequence of consecutive digits are recognised as a number, *************** public class Date *** 729,743 **** int len = string.length(); for (int i = 0; i < len; i++) { ! char ch = string.charAt(i); ! if (ch >= 'a' && ch <= 'z') ! ch -= 'a' - 'A'; ! if (ch == '(') ! parenNesting++; ! else if (parenNesting == 0) ! buf.append(ch); ! else if (ch == ')') ! parenNesting--; } int tmpMonth; --- 729,743 ---- int len = string.length(); for (int i = 0; i < len; i++) { ! char ch = string.charAt(i); ! if (ch >= 'a' && ch <= 'z') ! ch -= 'a' - 'A'; ! if (ch == '(') ! parenNesting++; ! else if (parenNesting == 0) ! buf.append(ch); ! else if (ch == ')') ! parenNesting--; } int tmpMonth; *************** public class Date *** 747,909 **** while (strtok.hasMoreTokens()) { ! String tok = strtok.nextToken(); ! char firstch = tok.charAt(0); ! if ((firstch == '+' || firstch == '-') && year >= 0) ! { ! timezone = parseTz(tok, firstch); ! localTimezone = false; ! } ! else if (firstch >= '0' && firstch <= '9') ! { ! int lastPunct = -1; ! while (tok != null && tok.length() > 0) ! { ! int punctOffset = tok.length(); ! int num = 0; ! int punct; ! for (int i = 0; ; i++) ! { ! if (i >= punctOffset) ! { ! punct = -1; ! break; ! } ! else ! { ! punct = tok.charAt(i); ! if (punct >= '0' && punct <= '9') ! { ! if (num > 999999999) // in case of overflow ! throw new IllegalArgumentException(tok); ! num = 10 * num + (punct - '0'); ! } ! else ! { ! punctOffset = i; ! break; ! } ! } ! ! } ! if (punct == ':') ! { ! if (hour < 0) ! hour = num; ! else ! minute = num; ! } ! else if (lastPunct == ':' && hour >= 0 && (minute < 0 || second < 0)) ! { ! if (minute < 0) ! minute = num; ! else ! second = num; ! } ! else if ((num >= 70 ! && (punct == ' ' || punct == ',' ! || punct == '/' || punct < 0)) ! || (num < 70 && day >= 0 && month >= 0 && year < 0)) ! { ! if (num >= 100) ! year = num; ! else ! { ! int curYear = 1900 + new Date().getYear(); ! int firstYear = curYear - 80; ! year = firstYear / 100 * 100 + num; ! if (year < firstYear) ! year += 100; ! } ! } ! else if (punct == '/') ! { ! if (month < 0) ! month = num - 1; ! else ! day = num; ! } ! else if (hour >= 0 && minute < 0) ! minute = num; ! else if (minute >= 0 && second < 0) ! second = num; ! else if (day < 0) ! day = num; ! else ! throw new IllegalArgumentException(tok); ! // Advance string if there's more to process in this token. ! if (punct < 0 || punctOffset + 1 >= tok.length()) ! tok = null; ! else ! tok = tok.substring(punctOffset + 1); ! lastPunct = punct; ! } ! } ! else if (firstch >= 'A' && firstch <= 'Z') ! { ! if (tok.equals("AM")) ! { ! if (hour < 1 || hour > 12) ! throw new IllegalArgumentException(tok); ! if (hour == 12) ! hour = 0; ! } ! else if (tok.equals("PM")) ! { ! if (hour < 1 || hour > 12) ! throw new IllegalArgumentException(tok); ! if (hour < 12) ! hour += 12; ! } ! else if (parseDayOfWeek(tok)) ! { /* Ignore it; throw the token away. */ } ! else if (tok.equals("UT") || tok.equals("UTC") || tok.equals("GMT")) ! localTimezone = false; ! else if (tok.startsWith("UT") || tok.startsWith("GMT")) ! { ! int signOffset = 3; ! if (tok.charAt(1) == 'T' && tok.charAt(2) != 'C') ! signOffset = 2; ! char sign = tok.charAt(signOffset); ! if (sign != '+' && sign != '-') ! throw new IllegalArgumentException(tok); ! timezone = parseTz(tok.substring(signOffset), sign); ! localTimezone = false; ! } ! else if ((tmpMonth = parseMonth(tok)) >= 0) ! month = tmpMonth; ! else if (tok.length() == 3 && tok.charAt(2) == 'T') ! { ! // Convert timezone offset from hours to minutes. ! char ch = tok.charAt(0); ! if (ch == 'E') ! timezone = -5 * 60; ! else if (ch == 'C') ! timezone = -6 * 60; ! else if (ch == 'M') ! timezone = -7 * 60; ! else if (ch == 'P') ! timezone = -8 * 60; ! else ! throw new IllegalArgumentException(tok); ! // Shift 60 minutes for Daylight Savings Time. ! if (tok.charAt(1) == 'D') ! timezone += 60; ! else if (tok.charAt(1) != 'S') ! throw new IllegalArgumentException(tok); ! localTimezone = false; ! } ! else ! throw new IllegalArgumentException(tok); ! } ! else ! throw new IllegalArgumentException(tok); } // Unspecified hours, minutes, or seconds should default to 0. --- 747,909 ---- while (strtok.hasMoreTokens()) { ! String tok = strtok.nextToken(); ! char firstch = tok.charAt(0); ! if ((firstch == '+' || firstch == '-') && year >= 0) ! { ! timezone = parseTz(tok, firstch); ! localTimezone = false; ! } ! else if (firstch >= '0' && firstch <= '9') ! { ! int lastPunct = -1; ! while (tok != null && tok.length() > 0) ! { ! int punctOffset = tok.length(); ! int num = 0; ! int punct; ! for (int i = 0; ; i++) ! { ! if (i >= punctOffset) ! { ! punct = -1; ! break; ! } ! else ! { ! punct = tok.charAt(i); ! if (punct >= '0' && punct <= '9') ! { ! if (num > 999999999) // in case of overflow ! throw new IllegalArgumentException(tok); ! num = 10 * num + (punct - '0'); ! } ! else ! { ! punctOffset = i; ! break; ! } ! } ! } ! if (punct == ':') ! { ! if (hour < 0) ! hour = num; ! else ! minute = num; ! } ! else if (lastPunct == ':' && hour >= 0 && (minute < 0 || second < 0)) ! { ! if (minute < 0) ! minute = num; ! else ! second = num; ! } ! else if ((num >= 70 ! && (punct == ' ' || punct == ',' ! || punct == '/' || punct < 0)) ! || (num < 70 && day >= 0 && month >= 0 && year < 0)) ! { ! if (num >= 100) ! year = num; ! else ! { ! int curYear = 1900 + new Date().getYear(); ! int firstYear = curYear - 80; ! year = firstYear / 100 * 100 + num; ! if (year < firstYear) ! year += 100; ! } ! } ! else if (punct == '/') ! { ! if (month < 0) ! month = num - 1; ! else ! day = num; ! } ! else if (hour >= 0 && minute < 0) ! minute = num; ! else if (minute >= 0 && second < 0) ! second = num; ! else if (day < 0) ! day = num; ! else ! throw new IllegalArgumentException(tok); ! // Advance string if there's more to process in this token. ! if (punct < 0 || punctOffset + 1 >= tok.length()) ! tok = null; ! else ! tok = tok.substring(punctOffset + 1); ! lastPunct = punct; ! } ! } ! else if (firstch >= 'A' && firstch <= 'Z') ! { ! if (tok.equals("AM")) ! { ! if (hour < 1 || hour > 12) ! throw new IllegalArgumentException(tok); ! if (hour == 12) ! hour = 0; ! } ! else if (tok.equals("PM")) ! { ! if (hour < 1 || hour > 12) ! throw new IllegalArgumentException(tok); ! if (hour < 12) ! hour += 12; ! } ! else if (parseDayOfWeek(tok)) ! { /* Ignore it; throw the token away. */ } ! else if (tok.equals("UT") || tok.equals("UTC") || tok.equals("GMT")) ! localTimezone = false; ! else if (tok.startsWith("UT") || tok.startsWith("GMT")) ! { ! int signOffset = 3; ! if (tok.charAt(1) == 'T' && tok.charAt(2) != 'C') ! signOffset = 2; ! char sign = tok.charAt(signOffset); ! if (sign != '+' && sign != '-') ! throw new IllegalArgumentException(tok); ! timezone = parseTz(tok.substring(signOffset), sign); ! localTimezone = false; ! } ! else if ((tmpMonth = parseMonth(tok)) >= 0) ! month = tmpMonth; ! else if (tok.length() == 3 && tok.charAt(2) == 'T') ! { ! // Convert timezone offset from hours to minutes. ! char ch = tok.charAt(0); ! if (ch == 'E') ! timezone = -5 * 60; ! else if (ch == 'C') ! timezone = -6 * 60; ! else if (ch == 'M') ! timezone = -7 * 60; ! else if (ch == 'P') ! timezone = -8 * 60; ! else ! throw new IllegalArgumentException(tok); ! // Shift 60 minutes for Daylight Savings Time. ! if (tok.charAt(1) == 'D') ! timezone += 60; ! else if (tok.charAt(1) != 'S') ! throw new IllegalArgumentException(tok); ! ! localTimezone = false; ! } ! else ! throw new IllegalArgumentException(tok); ! } ! else ! throw new IllegalArgumentException(tok); } // Unspecified hours, minutes, or seconds should default to 0. *************** public class Date *** 925,932 **** = new GregorianCalendar(year, month, day, hour, minute, second); if (!localTimezone) { ! cal.set(Calendar.ZONE_OFFSET, timezone * 60 * 1000); ! cal.set(Calendar.DST_OFFSET, 0); } return cal.getTimeInMillis(); } --- 925,932 ---- = new GregorianCalendar(year, month, day, hour, minute, second); if (!localTimezone) { ! cal.set(Calendar.ZONE_OFFSET, timezone * 60 * 1000); ! cal.set(Calendar.DST_OFFSET, 0); } return cal.getTimeInMillis(); } *************** public class Date *** 965,971 **** * @param year the year minus 1900. * @deprecated Use Calendar instead of Date, and use * set(Calendar.YEAR, year) instead. Note about the 1900 ! * difference in year. * @see #getYear() * @see Calendar */ --- 965,971 ---- * @param year the year minus 1900. * @deprecated Use Calendar instead of Date, and use * set(Calendar.YEAR, year) instead. Note about the 1900 ! * difference in year. * @see #getYear() * @see Calendar */ *************** public class Date *** 1008,1020 **** * in the seconds value being reset to 0 and the minutes * value being incremented by 1, if the new time does * not include a leap second. ! * * @param month the month, with a zero-based index * from January. * @deprecated Use Calendar instead of Date, and use * set(Calendar.MONTH, month) instead. * @see #getMonth() ! * @see Calendar */ public void setMonth(int month) { --- 1008,1020 ---- * in the seconds value being reset to 0 and the minutes * value being incremented by 1, if the new time does * not include a leap second. ! * * @param month the month, with a zero-based index * from January. * @deprecated Use Calendar instead of Date, and use * set(Calendar.MONTH, month) instead. * @see #getMonth() ! * @see Calendar */ public void setMonth(int month) { *************** public class Date *** 1059,1065 **** * * @param date the date. * @deprecated Use Calendar instead of Date, and use ! * set(Calendar.DATE, date) instead. * @see Calendar * @see #getDate() */ --- 1059,1065 ---- * * @param date the date. * @deprecated Use Calendar instead of Date, and use ! * set(Calendar.DATE, date) instead. * @see Calendar * @see #getDate() */ *************** public class Date *** 1121,1127 **** * @deprecated Use Calendar instead of Date, and use * set(Calendar.HOUR_OF_DAY, hours) instead. * @see Calendar ! * @see #getHours() */ public void setHours(int hours) { --- 1121,1127 ---- * @deprecated Use Calendar instead of Date, and use * set(Calendar.HOUR_OF_DAY, hours) instead. * @see Calendar ! * @see #getHours() */ public void setHours(int hours) { *************** public class Date *** 1162,1168 **** * * @param minutes the minutes. * @deprecated Use Calendar instead of Date, and use ! * set(Calendar.MINUTE, minutes) instead. * @see Calendar * @see #getMinutes() */ --- 1162,1168 ---- * * @param minutes the minutes. * @deprecated Use Calendar instead of Date, and use ! * set(Calendar.MINUTE, minutes) instead. * @see Calendar * @see #getMinutes() */ *************** public class Date *** 1207,1213 **** * @deprecated Use Calendar instead of Date, and use * set(Calendar.SECOND, seconds) instead. * @see Calendar ! * @see #getSeconds() */ public void setSeconds(int seconds) { --- 1207,1213 ---- * @deprecated Use Calendar instead of Date, and use * set(Calendar.SECOND, seconds) instead. * @see Calendar ! * @see #getSeconds() */ public void setSeconds(int seconds) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Dictionary.java gcc-4.6.0/libjava/classpath/java/util/Dictionary.java *** gcc-4.5.2/libjava/classpath/java/util/Dictionary.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/Dictionary.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Dictionary.java -- an abstract (and essentially worthless) class which is Hashtable's superclass Copyright (C) 1998, 2001, 2002, 2004 Free Software Foundation, Inc. --- 1,4 ---- ! /* Dictionary.java -- an abstract (and essentially worthless) class which is Hashtable's superclass Copyright (C) 1998, 2001, 2002, 2004 Free Software Foundation, Inc. *************** package java.util; *** 42,53 **** /** * A Dictionary maps keys to values; how it does that is * implementation-specific. ! * * This is an abstract class which has really gone by the wayside. * People at Javasoft are probably embarrassed by it. At this point, * it might as well be an interface rather than a class, but it remains * this poor, laughable skeleton for the sake of backwards compatibility. ! * At any rate, this was what came before the {@link Map} interface * in the Collections framework. * * @author Jon Zeppieri --- 42,53 ---- /** * A Dictionary maps keys to values; how it does that is * implementation-specific. ! * * This is an abstract class which has really gone by the wayside. * People at Javasoft are probably embarrassed by it. At this point, * it might as well be an interface rather than a class, but it remains * this poor, laughable skeleton for the sake of backwards compatibility. ! * At any rate, this was what came before the {@link Map} interface * in the Collections framework. * * @author Jon Zeppieri *************** public abstract class Dictionary *** 77,83 **** */ public abstract Enumeration elements(); ! /** * Returns the value associated with the supplied key, or null * if no such value exists. Since Dictionaries are not allowed null keys * or elements, a null result always means the key is not present. --- 77,83 ---- */ public abstract Enumeration elements(); ! /** * Returns the value associated with the supplied key, or null * if no such value exists. Since Dictionaries are not allowed null keys * or elements, a null result always means the key is not present. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/DuplicateFormatFlagsException.java gcc-4.6.0/libjava/classpath/java/util/DuplicateFormatFlagsException.java *** gcc-4.5.2/libjava/classpath/java/util/DuplicateFormatFlagsException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/DuplicateFormatFlagsException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,52 **** package java.util; ! /** * Thrown when the flags supplied to the {@link Formatter#format()} * method of a {@link Formatter} contain duplicates. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class DuplicateFormatFlagsException extends IllegalFormatException { private static final long serialVersionUID = 18890531L; --- 38,52 ---- package java.util; ! /** * Thrown when the flags supplied to the {@link Formatter#format()} * method of a {@link Formatter} contain duplicates. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class DuplicateFormatFlagsException extends IllegalFormatException { private static final long serialVersionUID = 18890531L; *************** public class DuplicateFormatFlagsExcepti *** 72,78 **** super("Duplicate flag passed in " + flags); if (flags == null) throw new ! NullPointerException("Null flags value passed to constructor."); this.flags = flags; } --- 72,78 ---- super("Duplicate flag passed in " + flags); if (flags == null) throw new ! NullPointerException("Null flags value passed to constructor."); this.flags = flags; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/EnumMap.java gcc-4.6.0/libjava/classpath/java/util/EnumMap.java *** gcc-4.5.2/libjava/classpath/java/util/EnumMap.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/java/util/EnumMap.java Tue Jan 11 19:46:05 2011 *************** package java.util; *** 40,49 **** import java.io.Serializable; ! /** * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ public class EnumMap, V> --- 40,49 ---- import java.io.Serializable; ! /** * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ public class EnumMap, V> *************** public class EnumMap, *** 82,110 **** { if (map instanceof EnumMap) { ! EnumMap other = (EnumMap) map; ! store = (V[]) other.store.clone(); ! cardinality = other.cardinality; ! enumClass = other.enumClass; } else { ! for (K key : map.keySet()) ! { ! V value = map.get(key); ! if (store == null) ! { ! enumClass = key.getDeclaringClass(); ! store = (V[]) new Object[enumClass.getEnumConstants().length]; ! } ! int o = key.ordinal(); ! if (store[o] == emptySlot) ! ++cardinality; ! store[o] = value; ! } ! // There must be a single element. ! if (store == null) ! throw new IllegalArgumentException("no elements in map"); } } --- 82,110 ---- { if (map instanceof EnumMap) { ! EnumMap other = (EnumMap) map; ! store = (V[]) other.store.clone(); ! cardinality = other.cardinality; ! enumClass = other.enumClass; } else { ! for (K key : map.keySet()) ! { ! V value = map.get(key); ! if (store == null) ! { ! enumClass = key.getDeclaringClass(); ! store = (V[]) new Object[enumClass.getEnumConstants().length]; ! } ! int o = key.ordinal(); ! if (store[o] == emptySlot) ! ++cardinality; ! store[o] = value; ! } ! // There must be a single element. ! if (store == null) ! throw new IllegalArgumentException("no elements in map"); } } *************** public class EnumMap, *** 117,124 **** { for (V i : store) { ! if (i != emptySlot && AbstractCollection.equals(i , value)) ! return true; } return false; } --- 117,124 ---- { for (V i : store) { ! if (i != emptySlot && AbstractCollection.equals(i , value)) ! return true; } return false; } *************** public class EnumMap, *** 150,157 **** V result; if (store[o] == emptySlot) { ! result = null; ! ++cardinality; } else result = store[o]; --- 150,157 ---- V result; if (store[o] == emptySlot) { ! result = null; ! ++cardinality; } else result = store[o]; *************** public class EnumMap, *** 179,190 **** { for (K key : map.keySet()) { ! V value = map.get(key); ! int o = key.ordinal(); ! if (store[o] == emptySlot) ! ++cardinality; ! store[o] = value; } } --- 179,190 ---- { for (K key : map.keySet()) { ! V value = map.get(key); ! int o = key.ordinal(); ! if (store[o] == emptySlot) ! ++cardinality; ! store[o] = value; } } *************** public class EnumMap, *** 198,253 **** { if (keys == null) { ! keys = new AbstractSet() ! { ! public int size() ! { ! return cardinality; ! } ! public Iterator iterator() ! { ! return new Iterator() ! { ! int count = 0; ! int index = -1; ! public boolean hasNext() ! { ! return count < cardinality; ! } ! public K next() ! { ! ++count; ! for (++index; store[index] == emptySlot; ++index) ! ; ! return enumClass.getEnumConstants()[index]; ! } ! public void remove() ! { ! --cardinality; ! store[index] = (V) emptySlot; ! } ! }; ! } ! public void clear() ! { ! EnumMap.this.clear(); ! } ! public boolean contains(Object o) ! { ! return contains(o); ! } ! public boolean remove(Object o) ! { ! return EnumMap.this.remove(o) != null; ! } ! }; } return keys; } --- 198,253 ---- { if (keys == null) { ! keys = new AbstractSet() ! { ! public int size() ! { ! return cardinality; ! } ! public Iterator iterator() ! { ! return new Iterator() ! { ! int count = 0; ! int index = -1; ! public boolean hasNext() ! { ! return count < cardinality; ! } ! public K next() ! { ! ++count; ! for (++index; store[index] == emptySlot; ++index) ! ; ! return enumClass.getEnumConstants()[index]; ! } ! public void remove() ! { ! --cardinality; ! store[index] = (V) emptySlot; ! } ! }; ! } ! public void clear() ! { ! EnumMap.this.clear(); ! } ! public boolean contains(Object o) ! { ! return contains(o); ! } ! public boolean remove(Object o) ! { ! return EnumMap.this.remove(o) != null; ! } ! }; } return keys; } *************** public class EnumMap, *** 256,301 **** { if (values == null) { ! values = new AbstractCollection() ! { ! public int size() ! { ! return cardinality; ! } ! public Iterator iterator() ! { ! return new Iterator() ! { ! int count = 0; ! int index = -1; ! public boolean hasNext() ! { ! return count < cardinality; ! } ! public V next() ! { ! ++count; ! for (++index; store[index] == emptySlot; ++index) ! ; ! return store[index]; ! } ! public void remove() ! { ! --cardinality; ! store[index] = (V) emptySlot; ! } ! }; ! } ! public void clear() ! { ! EnumMap.this.clear(); ! } ! }; } return values; } --- 256,301 ---- { if (values == null) { ! values = new AbstractCollection() ! { ! public int size() ! { ! return cardinality; ! } ! public Iterator iterator() ! { ! return new Iterator() ! { ! int count = 0; ! int index = -1; ! public boolean hasNext() ! { ! return count < cardinality; ! } ! public V next() ! { ! ++count; ! for (++index; store[index] == emptySlot; ++index) ! ; ! return store[index]; ! } ! public void remove() ! { ! --cardinality; ! store[index] = (V) emptySlot; ! } ! }; ! } ! public void clear() ! { ! EnumMap.this.clear(); ! } ! }; } return values; } *************** public class EnumMap, *** 304,377 **** { if (entries == null) { ! entries = new AbstractSet>() ! { ! public int size() ! { ! return cardinality; ! } ! public Iterator> iterator() ! { ! return new Iterator>() ! { ! int count = 0; ! int index = -1; ! public boolean hasNext() ! { ! return count < cardinality; ! } ! public Map.Entry next() ! { ! ++count; ! for (++index; store[index] == emptySlot; ++index) ! ; ! // FIXME: we could just return something that ! // only knows the index. That would be cleaner. ! return new AbstractMap.SimpleEntry(enumClass.getEnumConstants()[index], ! store[index]) ! { ! public V setValue(V newVal) ! { ! value = newVal; ! return put(key, newVal); ! } ! }; ! } ! public void remove() ! { ! --cardinality; ! store[index] = (V) emptySlot; ! } ! }; ! } ! public void clear() ! { ! EnumMap.this.clear(); ! } ! public boolean contains(Object o) ! { ! if (! (o instanceof Map.Entry)) ! return false; ! Map.Entry other = (Map.Entry) o; ! return (containsKey(other.getKey()) ! && AbstractCollection.equals(get(other.getKey()), ! other.getValue())); ! } ! public boolean remove(Object o) ! { ! if (! (o instanceof Map.Entry)) ! return false; ! Map.Entry other = (Map.Entry) o; ! return EnumMap.this.remove(other.getKey()) != null; ! } ! }; } return entries; } --- 304,377 ---- { if (entries == null) { ! entries = new AbstractSet>() ! { ! public int size() ! { ! return cardinality; ! } ! public Iterator> iterator() ! { ! return new Iterator>() ! { ! int count = 0; ! int index = -1; ! public boolean hasNext() ! { ! return count < cardinality; ! } ! public Map.Entry next() ! { ! ++count; ! for (++index; store[index] == emptySlot; ++index) ! ; ! // FIXME: we could just return something that ! // only knows the index. That would be cleaner. ! return new AbstractMap.SimpleEntry(enumClass.getEnumConstants()[index], ! store[index]) ! { ! public V setValue(V newVal) ! { ! value = newVal; ! return put(key, newVal); ! } ! }; ! } ! public void remove() ! { ! --cardinality; ! store[index] = (V) emptySlot; ! } ! }; ! } ! public void clear() ! { ! EnumMap.this.clear(); ! } ! public boolean contains(Object o) ! { ! if (! (o instanceof Map.Entry)) ! return false; ! Map.Entry other = (Map.Entry) o; ! return (containsKey(other.getKey()) ! && AbstractCollection.equals(get(other.getKey()), ! other.getValue())); ! } ! public boolean remove(Object o) ! { ! if (! (o instanceof Map.Entry)) ! return false; ! Map.Entry other = (Map.Entry) o; ! return EnumMap.this.remove(other.getKey()) != null; ! } ! }; } return entries; } *************** public class EnumMap, *** 391,402 **** EnumMap result; try { ! result = (EnumMap) super.clone(); } catch (CloneNotSupportedException ignore) { ! // Can't happen. ! result = null; } result.store = (V[]) store.clone(); return result; --- 391,402 ---- EnumMap result; try { ! result = (EnumMap) super.clone(); } catch (CloneNotSupportedException ignore) { ! // Can't happen. ! result = null; } result.store = (V[]) store.clone(); return result; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/EnumSet.java gcc-4.6.0/libjava/classpath/java/util/EnumSet.java *** gcc-4.5.2/libjava/classpath/java/util/EnumSet.java Thu Aug 30 19:57:30 2007 --- gcc-4.6.0/libjava/classpath/java/util/EnumSet.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 52,58 **** *

                            *

                            * This class is designed to provide an alternative to using integer bit flags ! * by providing a typesafe {@link Collection} interface with an underlying * implementation that utilises the assumptions above to give an equivalent level * of efficiency. The values in a {@link EnumSet} must all be from the same * {@link Enum} type, which allows the contents to be packed into a bit vector. --- 52,58 ---- *

                            *

                            * This class is designed to provide an alternative to using integer bit flags ! * by providing a typesafe {@link Collection} interface with an underlying * implementation that utilises the assumptions above to give an equivalent level * of efficiency. The values in a {@link EnumSet} must all be from the same * {@link Enum} type, which allows the contents to be packed into a bit vector. *************** import java.io.Serializable; *** 76,82 **** * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @author Dalibor Topic (robilad@kaffe.org) ! * @since 1.5 */ // FIXME: serialization is special, uses SerializationProxy. --- 76,82 ---- * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @author Dalibor Topic (robilad@kaffe.org) ! * @since 1.5 */ // FIXME: serialization is special, uses SerializationProxy. *************** public abstract class EnumSet clone() --- 115,121 ---- /** * Returns a clone of the set. ! * * @return a clone of the set. */ public EnumSet clone() *************** public abstract class EnumSet) super.clone(); } catch (CloneNotSupportedException _) { ! /* Can't happen */ ! return null; } r.store = (BitSet) store.clone(); return r; --- 124,135 ---- try { ! r = (EnumSet) super.clone(); } catch (CloneNotSupportedException _) { ! /* Can't happen */ ! return null; } r.store = (BitSet) store.clone(); return r; *************** public abstract class EnumSet) other); if (other.isEmpty()) ! throw new IllegalArgumentException("Collection is empty"); EnumSet r = null; for (T val : other) { ! if (r == null) ! r = of(val); ! else ! r.add(val); } return r; --- 190,205 ---- if (other instanceof EnumSet) return copyOf((EnumSet) other); if (other.isEmpty()) ! throw new IllegalArgumentException("Collection is empty"); EnumSet r = null; for (T val : other) { ! if (r == null) ! r = of(val); ! else ! r.add(val); } return r; *************** public abstract class EnumSetfirst is null. --- 225,231 ---- /** * Creates a new {@link EnumSet} populated with the given element. ! * * @param first the element to use to populate the new set. * @return an {@link EnumSet} containing the element. * @throws NullPointerException if first is null. *************** public abstract class EnumSet c) { ! boolean result = false; ! if (c instanceof EnumSet) ! { ! EnumSet other = (EnumSet) c; ! if (enumClass == other.enumClass) ! { ! store.or(other.store); ! int save = cardinality; ! cardinality = store.cardinality(); ! result = save != cardinality; ! } ! } ! else ! { ! for (T val : c) ! { ! if (add (val)) ! result = true; ! } ! } ! return result; } public void clear() { ! store.clear(); ! cardinality = 0; } public boolean contains(Object o) { ! if (! (o instanceof Enum)) ! return false; ! Enum e = (Enum) o; ! if (e.getDeclaringClass() != enumClass) ! return false; ! return store.get(e.ordinal()); } public boolean containsAll(Collection c) { ! if (c instanceof EnumSet) ! { ! EnumSet other = (EnumSet) c; ! if (enumClass == other.enumClass) ! return store.containsAll(other.store); ! return false; ! } ! return super.containsAll(c); } public Iterator iterator() { ! return new Iterator() ! { ! int next = -1; ! int count = 0; ! public boolean hasNext() ! { ! return count < cardinality; ! } ! public T next() ! { ! next = store.nextSetBit(next + 1); ! ++count; ! return enumClass.getEnumConstants()[next]; ! } ! public void remove() ! { ! if (! store.get(next)) ! { ! store.clear(next); ! --cardinality; ! } ! } ! }; } public boolean remove(Object o) { ! if (! (o instanceof Enum)) ! return false; ! Enum e = (Enum) o; ! if (e.getDeclaringClass() != enumClass) ! return false; ! store.clear(e.ordinal()); ! --cardinality; ! return true; } public boolean removeAll(Collection c) { ! if (c instanceof EnumSet) ! { ! EnumSet other = (EnumSet) c; ! if (enumClass != other.enumClass) ! return false; ! store.andNot(other.store); ! int save = cardinality; ! cardinality = store.cardinality(); ! return save != cardinality; ! } ! return super.removeAll(c); } public boolean retainAll(Collection c) { ! if (c instanceof EnumSet) ! { ! EnumSet other = (EnumSet) c; ! if (enumClass != other.enumClass) ! return false; ! store.and(other.store); ! int save = cardinality; ! cardinality = store.cardinality(); ! return save != cardinality; ! } ! return super.retainAll(c); } public int size() { ! return cardinality; } }; --- 236,384 ---- { public boolean add(T val) { ! if (store.get(val.ordinal())) ! return false; ! store.set(val.ordinal()); ! ++cardinality; ! return true; } public boolean addAll(Collection c) { ! boolean result = false; ! if (c instanceof EnumSet) ! { ! EnumSet other = (EnumSet) c; ! if (enumClass == other.enumClass) ! { ! store.or(other.store); ! int save = cardinality; ! cardinality = store.cardinality(); ! result = save != cardinality; ! } ! } ! else ! { ! for (T val : c) ! { ! if (add (val)) ! result = true; ! } ! } ! return result; } public void clear() { ! store.clear(); ! cardinality = 0; } public boolean contains(Object o) { ! if (! (o instanceof Enum)) ! return false; ! Enum e = (Enum) o; ! if (e.getDeclaringClass() != enumClass) ! return false; ! return store.get(e.ordinal()); } public boolean containsAll(Collection c) { ! if (c instanceof EnumSet) ! { ! EnumSet other = (EnumSet) c; ! if (enumClass == other.enumClass) ! return store.containsAll(other.store); ! return false; ! } ! return super.containsAll(c); } public Iterator iterator() { ! return new Iterator() ! { ! int next = -1; ! int count = 0; ! public boolean hasNext() ! { ! return count < cardinality; ! } ! public T next() ! { ! next = store.nextSetBit(next + 1); ! ++count; ! return enumClass.getEnumConstants()[next]; ! } ! public void remove() ! { ! if (! store.get(next)) ! { ! store.clear(next); ! --cardinality; ! } ! } ! }; } public boolean remove(Object o) { ! if (! (o instanceof Enum)) ! return false; ! Enum e = (Enum) o; ! if (e.getDeclaringClass() != enumClass) ! return false; ! store.clear(e.ordinal()); ! --cardinality; ! return true; } public boolean removeAll(Collection c) { ! if (c instanceof EnumSet) ! { ! EnumSet other = (EnumSet) c; ! if (enumClass != other.enumClass) ! return false; ! store.andNot(other.store); ! int save = cardinality; ! cardinality = store.cardinality(); ! return save != cardinality; ! } ! return super.removeAll(c); } public boolean retainAll(Collection c) { ! if (c instanceof EnumSet) ! { ! EnumSet other = (EnumSet) c; ! if (enumClass != other.enumClass) ! return false; ! store.and(other.store); ! int save = cardinality; ! cardinality = store.cardinality(); ! return save != cardinality; ! } ! return super.retainAll(c); } public int size() { ! return cardinality; } }; *************** public abstract class EnumSetnull. */ public static > EnumSet of(T first, T second, T third, ! T fourth) { EnumSet r = of(first, second, third); r.add(fourth); --- 432,438 ---- * @throws NullPointerException if any of the parameters are null. */ public static > EnumSet of(T first, T second, T third, ! T fourth) { EnumSet r = of(first, second, third); r.add(fourth); *************** public abstract class EnumSetnull. */ public static > EnumSet of(T first, T second, T third, ! T fourth, T fifth) { EnumSet r = of(first, second, third, fourth); r.add(fifth); --- 451,457 ---- * @throws NullPointerException if any of the parameters are null. */ public static > EnumSet of(T first, T second, T third, ! T fourth, T fifth) { EnumSet r = of(first, second, third, fourth); r.add(fifth); *************** public abstract class EnumSet * The Formattable interface is used to provide customised * formatting to arbitrary objects via the {@link Formatter}. The --- 38,44 ---- package java.util; ! /** *

                            * The Formattable interface is used to provide customised * formatting to arbitrary objects via the {@link Formatter}. The *************** package java.util; *** 54,60 **** * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ public interface Formattable { --- 54,60 ---- * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ public interface Formattable { *************** public interface Formattable *** 88,92 **** * between it and the arguments. */ public void formatTo(Formatter formatter, int flags, int width, ! int precision); } --- 88,92 ---- * between it and the arguments. */ public void formatTo(Formatter formatter, int flags, int width, ! int precision); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/FormattableFlags.java gcc-4.6.0/libjava/classpath/java/util/FormattableFlags.java *** gcc-4.5.2/libjava/classpath/java/util/FormattableFlags.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/FormattableFlags.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package java.util; ! /** * This class contains a set of flags used * by the {@link Formattable#formatTo()} method. * They are used to modify the output of the --- 38,44 ---- package java.util; ! /** * This class contains a set of flags used * by the {@link Formattable#formatTo()} method. * They are used to modify the output of the *************** package java.util; *** 48,54 **** * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ public class FormattableFlags { --- 48,54 ---- * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ public class FormattableFlags { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Formatter.java gcc-4.6.0/libjava/classpath/java/util/Formatter.java *** gcc-4.5.2/libjava/classpath/java/util/Formatter.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/Formatter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.text.DecimalFormatSymbols; *** 56,62 **** import gnu.classpath.SystemProperties; ! /** *

                            * A Java formatter for printf-style format strings, * as seen in the C programming language. This differs from the --- 56,62 ---- import gnu.classpath.SystemProperties; ! /** *

                            * A Java formatter for printf-style format strings, * as seen in the C programming language. This differs from the *************** import gnu.classpath.SystemProperties; *** 79,90 **** * Note: the formatter is not thread-safe. For * multi-threaded access, external synchronization should be provided. *

                            ! * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public final class Formatter implements Closeable, Flushable { --- 79,90 ---- * Note: the formatter is not thread-safe. For * multi-threaded access, external synchronization should be provided. *

                            ! * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public final class Formatter implements Closeable, Flushable { *************** public final class Formatter *** 211,217 **** * @throws SecurityException if a security manager is present * and doesn't allow writing to the file. */ ! public Formatter(File file) throws FileNotFoundException { this(new OutputStreamWriter(new FileOutputStream(file))); --- 211,217 ---- * @throws SecurityException if a security manager is present * and doesn't allow writing to the file. */ ! public Formatter(File file) throws FileNotFoundException { this(new OutputStreamWriter(new FileOutputStream(file))); *************** public final class Formatter *** 257,263 **** throws FileNotFoundException, UnsupportedEncodingException { this(new OutputStreamWriter(new FileOutputStream(file), charset), ! loc); } /** --- 257,263 ---- throws FileNotFoundException, UnsupportedEncodingException { this(new OutputStreamWriter(new FileOutputStream(file), charset), ! loc); } /** *************** public final class Formatter *** 373,379 **** throws FileNotFoundException, UnsupportedEncodingException { this(new OutputStreamWriter(new FileOutputStream(file), charset), ! loc); } /** --- 373,379 ---- throws FileNotFoundException, UnsupportedEncodingException { this(new OutputStreamWriter(new FileOutputStream(file), charset), ! loc); } /** *************** public final class Formatter *** 390,402 **** return; try { ! if (out instanceof Closeable) ! ((Closeable) out).close(); } catch (IOException _) { ! // FIXME: do we ignore these or do we set ioException? ! // The docs seem to indicate that we should ignore. } closed = true; } --- 390,402 ---- return; try { ! if (out instanceof Closeable) ! ((Closeable) out).close(); } catch (IOException _) { ! // FIXME: do we ignore these or do we set ioException? ! // The docs seem to indicate that we should ignore. } closed = true; } *************** public final class Formatter *** 414,426 **** throw new FormatterClosedException(); try { ! if (out instanceof Flushable) ! ((Flushable) out).flush(); } catch (IOException _) { ! // FIXME: do we ignore these or do we set ioException? ! // The docs seem to indicate that we should ignore. } } --- 414,426 ---- throw new FormatterClosedException(); try { ! if (out instanceof Flushable) ! ((Flushable) out).flush(); } catch (IOException _) { ! // FIXME: do we ignore these or do we set ioException? ! // The docs seem to indicate that we should ignore. } } *************** public final class Formatter *** 450,456 **** flags &= ~allowed; if (flags != 0) throw new FormatFlagsConversionMismatchException(getName(flags), ! conversion); } /** --- 450,456 ---- flags &= ~allowed; if (flags != 0) throw new FormatFlagsConversionMismatchException(getName(flags), ! conversion); } /** *************** public final class Formatter *** 473,479 **** * @param isNegative true if the value is negative. */ private void applyLocalization(CPStringBuilder builder, int flags, int width, ! boolean isNegative) { DecimalFormatSymbols dfsyms; if (fmtLocale == null) --- 473,479 ---- * @param isNegative true if the value is negative. */ private void applyLocalization(CPStringBuilder builder, int flags, int width, ! boolean isNegative) { DecimalFormatSymbols dfsyms; if (fmtLocale == null) *************** public final class Formatter *** 486,537 **** int decimalOffset = -1; for (int i = builder.length() - 1; i >= 0; --i) { ! char c = builder.charAt(i); ! if (c >= '0' && c <= '9') ! builder.setCharAt(i, (char) (c - '0' + zeroDigit)); ! else if (c == '.') ! { ! assert decimalOffset == -1; ! decimalOffset = i; ! } } // Localize the decimal separator. if (decimalOffset != -1) { ! builder.deleteCharAt(decimalOffset); ! builder.insert(decimalOffset, dfsyms.getDecimalSeparator()); } ! // Insert the grouping separators. if ((flags & FormattableFlags.COMMA) != 0) { ! char groupSeparator = dfsyms.getGroupingSeparator(); ! int groupSize = 3; // FIXME ! int offset = (decimalOffset == -1) ? builder.length() : decimalOffset; ! // We use '>' because we don't want to insert a separator ! // before the first digit. ! for (int i = offset - groupSize; i > 0; i -= groupSize) ! builder.insert(i, groupSeparator); } if ((flags & FormattableFlags.ZERO) != 0) { ! // Zero fill. Note that according to the algorithm we do not ! // insert grouping separators here. ! for (int i = width - builder.length(); i > 0; --i) ! builder.insert(0, zeroDigit); } if (isNegative) { ! if ((flags & FormattableFlags.PAREN) != 0) ! { ! builder.insert(0, '('); ! builder.append(')'); ! } ! else ! builder.insert(0, '-'); } else if ((flags & FormattableFlags.PLUS) != 0) builder.insert(0, '+'); --- 486,537 ---- int decimalOffset = -1; for (int i = builder.length() - 1; i >= 0; --i) { ! char c = builder.charAt(i); ! if (c >= '0' && c <= '9') ! builder.setCharAt(i, (char) (c - '0' + zeroDigit)); ! else if (c == '.') ! { ! assert decimalOffset == -1; ! decimalOffset = i; ! } } // Localize the decimal separator. if (decimalOffset != -1) { ! builder.deleteCharAt(decimalOffset); ! builder.insert(decimalOffset, dfsyms.getDecimalSeparator()); } ! // Insert the grouping separators. if ((flags & FormattableFlags.COMMA) != 0) { ! char groupSeparator = dfsyms.getGroupingSeparator(); ! int groupSize = 3; // FIXME ! int offset = (decimalOffset == -1) ? builder.length() : decimalOffset; ! // We use '>' because we don't want to insert a separator ! // before the first digit. ! for (int i = offset - groupSize; i > 0; i -= groupSize) ! builder.insert(i, groupSeparator); } if ((flags & FormattableFlags.ZERO) != 0) { ! // Zero fill. Note that according to the algorithm we do not ! // insert grouping separators here. ! for (int i = width - builder.length(); i > 0; --i) ! builder.insert(0, zeroDigit); } if (isNegative) { ! if ((flags & FormattableFlags.PAREN) != 0) ! { ! builder.insert(0, '('); ! builder.append(')'); ! } ! else ! builder.insert(0, '-'); } else if ((flags & FormattableFlags.PLUS) != 0) builder.insert(0, '+'); *************** public final class Formatter *** 554,563 **** { if ((flags & FormattableFlags.UPPERCASE) != 0) { ! if (fmtLocale == null) ! arg = arg.toUpperCase(); ! else ! arg = arg.toUpperCase(fmtLocale); } if (precision >= 0 && arg.length() > precision) --- 554,563 ---- { if ((flags & FormattableFlags.UPPERCASE) != 0) { ! if (fmtLocale == null) ! arg = arg.toUpperCase(); ! else ! arg = arg.toUpperCase(fmtLocale); } if (precision >= 0 && arg.length() > precision) *************** public final class Formatter *** 568,586 **** throw new MissingFormatWidthException("fixme"); if (! leftJustify && arg.length() < width) { ! for (int i = width - arg.length(); i > 0; --i) ! out.append(' '); } out.append(arg); if (leftJustify && arg.length() < width) { ! for (int i = width - arg.length(); i > 0; --i) ! out.append(' '); } } ! /** ! * Emit a boolean. * * @param arg the boolean to emit. * @param flags the formatting flags to use. --- 568,586 ---- throw new MissingFormatWidthException("fixme"); if (! leftJustify && arg.length() < width) { ! for (int i = width - arg.length(); i > 0; --i) ! out.append(' '); } out.append(arg); if (leftJustify && arg.length() < width) { ! for (int i = width - arg.length(); i > 0; --i) ! out.append(' '); } } ! /** ! * Emit a boolean. * * @param arg the boolean to emit. * @param flags the formatting flags to use. *************** public final class Formatter *** 590,601 **** * @throws IOException if the output stream throws an I/O error. */ private void booleanFormat(Object arg, int flags, int width, int precision, ! char conversion) throws IOException { checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); String result; if (arg instanceof Boolean) result = String.valueOf((Boolean) arg); --- 590,601 ---- * @throws IOException if the output stream throws an I/O error. */ private void booleanFormat(Object arg, int flags, int width, int precision, ! char conversion) throws IOException { checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); String result; if (arg instanceof Boolean) result = String.valueOf((Boolean) arg); *************** public final class Formatter *** 604,611 **** genericFormat(result, flags, width, precision); } ! /** ! * Emit a hash code. * * @param arg the hash code to emit. * @param flags the formatting flags to use. --- 604,611 ---- genericFormat(result, flags, width, precision); } ! /** ! * Emit a hash code. * * @param arg the hash code to emit. * @param flags the formatting flags to use. *************** public final class Formatter *** 615,632 **** * @throws IOException if the output stream throws an I/O error. */ private void hashCodeFormat(Object arg, int flags, int width, int precision, ! char conversion) throws IOException { checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); genericFormat(arg == null ? "null" : Integer.toHexString(arg.hashCode()), ! flags, width, precision); } ! /** ! * Emit a String or Formattable conversion. * * @param arg the String or Formattable to emit. * @param flags the formatting flags to use. --- 615,632 ---- * @throws IOException if the output stream throws an I/O error. */ private void hashCodeFormat(Object arg, int flags, int width, int precision, ! char conversion) throws IOException { checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); genericFormat(arg == null ? "null" : Integer.toHexString(arg.hashCode()), ! flags, width, precision); } ! /** ! * Emit a String or Formattable conversion. * * @param arg the String or Formattable to emit. * @param flags the formatting flags to use. *************** public final class Formatter *** 636,666 **** * @throws IOException if the output stream throws an I/O error. */ private void stringFormat(Object arg, int flags, int width, int precision, ! char conversion) throws IOException { if (arg instanceof Formattable) { ! checkFlags(flags, ! (FormattableFlags.LEFT_JUSTIFY ! | FormattableFlags.UPPERCASE ! | FormattableFlags.ALTERNATE), ! conversion); ! Formattable fmt = (Formattable) arg; ! fmt.formatTo(this, flags, width, precision); } else { ! checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); ! genericFormat(arg == null ? "null" : arg.toString(), flags, width, ! precision); } } ! /** ! * Emit a character. * * @param arg the character to emit. * @param flags the formatting flags to use. --- 636,666 ---- * @throws IOException if the output stream throws an I/O error. */ private void stringFormat(Object arg, int flags, int width, int precision, ! char conversion) throws IOException { if (arg instanceof Formattable) { ! checkFlags(flags, ! (FormattableFlags.LEFT_JUSTIFY ! | FormattableFlags.UPPERCASE ! | FormattableFlags.ALTERNATE), ! conversion); ! Formattable fmt = (Formattable) arg; ! fmt.formatTo(this, flags, width, precision); } else { ! checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); ! genericFormat(arg == null ? "null" : arg.toString(), flags, width, ! precision); } } ! /** ! * Emit a character. * * @param arg the character to emit. * @param flags the formatting flags to use. *************** public final class Formatter *** 670,681 **** * @throws IOException if the output stream throws an I/O error. */ private void characterFormat(Object arg, int flags, int width, int precision, ! char conversion) throws IOException { checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); noPrecision(precision); int theChar; --- 670,681 ---- * @throws IOException if the output stream throws an I/O error. */ private void characterFormat(Object arg, int flags, int width, int precision, ! char conversion) throws IOException { checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); noPrecision(precision); int theChar; *************** public final class Formatter *** 687,695 **** theChar = (char) (((Short) arg).shortValue ()); else if (arg instanceof Integer) { ! theChar = ((Integer) arg).intValue(); ! if (! Character.isValidCodePoint(theChar)) ! throw new IllegalFormatCodePointException(theChar); } else throw new IllegalFormatConversionException(conversion, arg.getClass()); --- 687,695 ---- theChar = (char) (((Short) arg).shortValue ()); else if (arg instanceof Integer) { ! theChar = ((Integer) arg).intValue(); ! if (! Character.isValidCodePoint(theChar)) ! throw new IllegalFormatCodePointException(theChar); } else throw new IllegalFormatConversionException(conversion, arg.getClass()); *************** public final class Formatter *** 697,703 **** genericFormat(result, flags, width, precision); } ! /** * Emit a '%'. * * @param flags the formatting flags to use. --- 697,703 ---- genericFormat(result, flags, width, precision); } ! /** * Emit a '%'. * * @param flags the formatting flags to use. *************** public final class Formatter *** 713,719 **** genericFormat("%", flags, width, precision); } ! /** * Emit a newline. * * @param flags the formatting flags to use. --- 713,719 ---- genericFormat("%", flags, width, precision); } ! /** * Emit a newline. * * @param flags the formatting flags to use. *************** public final class Formatter *** 744,758 **** * @return the result. */ private CPStringBuilder basicIntegralConversion(Object arg, int flags, ! int width, int precision, ! int radix, char conversion) { assert radix == 8 || radix == 10 || radix == 16; noPrecision(precision); // Some error checking. if ((flags & FormattableFlags.PLUS) != 0 ! && (flags & FormattableFlags.SPACE) != 0) throw new IllegalFormatFlagsException(getName(flags)); if ((flags & FormattableFlags.LEFT_JUSTIFY) != 0 && width == -1) --- 744,758 ---- * @return the result. */ private CPStringBuilder basicIntegralConversion(Object arg, int flags, ! int width, int precision, ! int radix, char conversion) { assert radix == 8 || radix == 10 || radix == 16; noPrecision(precision); // Some error checking. if ((flags & FormattableFlags.PLUS) != 0 ! && (flags & FormattableFlags.SPACE) != 0) throw new IllegalFormatFlagsException(getName(flags)); if ((flags & FormattableFlags.LEFT_JUSTIFY) != 0 && width == -1) *************** public final class Formatter *** 761,801 **** // Do the base translation of the value to a string. String result; int basicFlags = (FormattableFlags.LEFT_JUSTIFY ! // We already handled any possible error when ! // parsing. ! | FormattableFlags.UPPERCASE ! | FormattableFlags.ZERO); if (radix == 10) basicFlags |= (FormattableFlags.PLUS ! | FormattableFlags.SPACE ! | FormattableFlags.COMMA ! | FormattableFlags.PAREN); else basicFlags |= FormattableFlags.ALTERNATE; if (arg instanceof BigInteger) { ! checkFlags(flags, ! (basicFlags ! | FormattableFlags.PLUS ! | FormattableFlags.SPACE ! | FormattableFlags.PAREN), ! conversion); ! BigInteger bi = (BigInteger) arg; ! result = bi.toString(radix); } else if (arg instanceof Number ! && ! (arg instanceof Float) ! && ! (arg instanceof Double)) { ! checkFlags(flags, basicFlags, conversion); ! long value = ((Number) arg).longValue (); ! if (radix == 8) ! result = Long.toOctalString(value); ! else if (radix == 16) ! result = Long.toHexString(value); ! else ! result = Long.toString(value); } else throw new IllegalFormatConversionException(conversion, arg.getClass()); --- 761,801 ---- // Do the base translation of the value to a string. String result; int basicFlags = (FormattableFlags.LEFT_JUSTIFY ! // We already handled any possible error when ! // parsing. ! | FormattableFlags.UPPERCASE ! | FormattableFlags.ZERO); if (radix == 10) basicFlags |= (FormattableFlags.PLUS ! | FormattableFlags.SPACE ! | FormattableFlags.COMMA ! | FormattableFlags.PAREN); else basicFlags |= FormattableFlags.ALTERNATE; if (arg instanceof BigInteger) { ! checkFlags(flags, ! (basicFlags ! | FormattableFlags.PLUS ! | FormattableFlags.SPACE ! | FormattableFlags.PAREN), ! conversion); ! BigInteger bi = (BigInteger) arg; ! result = bi.toString(radix); } else if (arg instanceof Number ! && ! (arg instanceof Float) ! && ! (arg instanceof Double)) { ! checkFlags(flags, basicFlags, conversion); ! long value = ((Number) arg).longValue (); ! if (radix == 8) ! result = Long.toOctalString(value); ! else if (radix == 16) ! result = Long.toHexString(value); ! else ! result = Long.toString(value); } else throw new IllegalFormatConversionException(conversion, arg.getClass()); *************** public final class Formatter *** 803,811 **** return new CPStringBuilder(result); } ! /** ! * Emit a hex or octal value. ! * * @param arg the hexadecimal or octal value. * @param flags the formatting flags to use. * @param width the width to use. --- 803,811 ---- return new CPStringBuilder(result); } ! /** ! * Emit a hex or octal value. ! * * @param arg the hexadecimal or octal value. * @param flags the formatting flags to use. * @param width the width to use. *************** public final class Formatter *** 815,893 **** * @throws IOException if the output stream throws an I/O error. */ private void hexOrOctalConversion(Object arg, int flags, int width, ! int precision, int radix, ! char conversion) throws IOException { assert radix == 8 || radix == 16; CPStringBuilder builder = basicIntegralConversion(arg, flags, width, ! precision, radix, ! conversion); int insertPoint = 0; // Insert the sign. if (builder.charAt(0) == '-') { ! // Already inserted. Note that we don't insert a sign, since ! // the only case where it is needed it BigInteger, and it has ! // already been inserted by toString. ! ++insertPoint; } else if ((flags & FormattableFlags.PLUS) != 0) { ! builder.insert(insertPoint, '+'); ! ++insertPoint; } else if ((flags & FormattableFlags.SPACE) != 0) { ! builder.insert(insertPoint, ' '); ! ++insertPoint; } // Insert the radix prefix. if ((flags & FormattableFlags.ALTERNATE) != 0) { ! builder.insert(insertPoint, radix == 8 ? "0" : "0x"); ! insertPoint += radix == 8 ? 1 : 2; } // Now justify the result. int resultWidth = builder.length(); if (resultWidth < width) { ! char fill = ((flags & FormattableFlags.ZERO) != 0) ? '0' : ' '; ! if ((flags & FormattableFlags.LEFT_JUSTIFY) != 0) ! { ! // Left justify. ! if (fill == ' ') ! insertPoint = builder.length(); ! } ! else ! { ! // Right justify. Insert spaces before the radix prefix ! // and sign. ! insertPoint = 0; ! } ! while (resultWidth++ < width) ! builder.insert(insertPoint, fill); } String result = builder.toString(); if ((flags & FormattableFlags.UPPERCASE) != 0) { ! if (fmtLocale == null) ! result = result.toUpperCase(); ! else ! result = result.toUpperCase(fmtLocale); } out.append(result); } ! /** ! * Emit a decimal value. ! * * @param arg the hexadecimal or octal value. * @param flags the formatting flags to use. * @param width the width to use. --- 815,893 ---- * @throws IOException if the output stream throws an I/O error. */ private void hexOrOctalConversion(Object arg, int flags, int width, ! int precision, int radix, ! char conversion) throws IOException { assert radix == 8 || radix == 16; CPStringBuilder builder = basicIntegralConversion(arg, flags, width, ! precision, radix, ! conversion); int insertPoint = 0; // Insert the sign. if (builder.charAt(0) == '-') { ! // Already inserted. Note that we don't insert a sign, since ! // the only case where it is needed it BigInteger, and it has ! // already been inserted by toString. ! ++insertPoint; } else if ((flags & FormattableFlags.PLUS) != 0) { ! builder.insert(insertPoint, '+'); ! ++insertPoint; } else if ((flags & FormattableFlags.SPACE) != 0) { ! builder.insert(insertPoint, ' '); ! ++insertPoint; } // Insert the radix prefix. if ((flags & FormattableFlags.ALTERNATE) != 0) { ! builder.insert(insertPoint, radix == 8 ? "0" : "0x"); ! insertPoint += radix == 8 ? 1 : 2; } // Now justify the result. int resultWidth = builder.length(); if (resultWidth < width) { ! char fill = ((flags & FormattableFlags.ZERO) != 0) ? '0' : ' '; ! if ((flags & FormattableFlags.LEFT_JUSTIFY) != 0) ! { ! // Left justify. ! if (fill == ' ') ! insertPoint = builder.length(); ! } ! else ! { ! // Right justify. Insert spaces before the radix prefix ! // and sign. ! insertPoint = 0; ! } ! while (resultWidth++ < width) ! builder.insert(insertPoint, fill); } String result = builder.toString(); if ((flags & FormattableFlags.UPPERCASE) != 0) { ! if (fmtLocale == null) ! result = result.toUpperCase(); ! else ! result = result.toUpperCase(fmtLocale); } out.append(result); } ! /** ! * Emit a decimal value. ! * * @param arg the hexadecimal or octal value. * @param flags the formatting flags to use. * @param width the width to use. *************** public final class Formatter *** 896,921 **** * @throws IOException if the output stream throws an I/O error. */ private void decimalConversion(Object arg, int flags, int width, ! int precision, char conversion) throws IOException { CPStringBuilder builder = basicIntegralConversion(arg, flags, width, ! precision, 10, ! conversion); boolean isNegative = false; if (builder.charAt(0) == '-') { ! // Sign handling is done during localization. ! builder.deleteCharAt(0); ! isNegative = true; } applyLocalization(builder, flags, width, isNegative); genericFormat(builder.toString(), flags, width, precision); } ! /** ! * Emit a single date or time conversion to a StringBuilder. * * @param builder the builder to write to. * @param cal the calendar to use in the conversion. --- 896,921 ---- * @throws IOException if the output stream throws an I/O error. */ private void decimalConversion(Object arg, int flags, int width, ! int precision, char conversion) throws IOException { CPStringBuilder builder = basicIntegralConversion(arg, flags, width, ! precision, 10, ! conversion); boolean isNegative = false; if (builder.charAt(0) == '-') { ! // Sign handling is done during localization. ! builder.deleteCharAt(0); ! isNegative = true; } applyLocalization(builder, flags, width, isNegative); genericFormat(builder.toString(), flags, width, precision); } ! /** ! * Emit a single date or time conversion to a StringBuilder. * * @param builder the builder to write to. * @param cal the calendar to use in the conversion. *************** public final class Formatter *** 923,1107 **** * @param syms the date formatting symbols. */ private void singleDateTimeConversion(CPStringBuilder builder, Calendar cal, ! char conversion, ! DateFormatSymbols syms) { int oldLen = builder.length(); int digits = -1; switch (conversion) { case 'H': ! builder.append(cal.get(Calendar.HOUR_OF_DAY)); ! digits = 2; ! break; case 'I': ! builder.append(cal.get(Calendar.HOUR)); ! digits = 2; ! break; case 'k': ! builder.append(cal.get(Calendar.HOUR_OF_DAY)); ! break; case 'l': ! builder.append(cal.get(Calendar.HOUR)); ! break; case 'M': ! builder.append(cal.get(Calendar.MINUTE)); ! digits = 2; ! break; case 'S': ! builder.append(cal.get(Calendar.SECOND)); ! digits = 2; ! break; case 'N': ! // FIXME: nanosecond ... ! digits = 9; ! break; case 'p': ! { ! int ampm = cal.get(Calendar.AM_PM); ! builder.append(syms.getAmPmStrings()[ampm]); ! } ! break; case 'z': ! { ! int zone = cal.get(Calendar.ZONE_OFFSET) / (1000 * 60); ! builder.append(zone); ! digits = 4; ! // Skip the '-' sign. ! if (zone < 0) ! ++oldLen; ! } ! break; case 'Z': ! { ! // FIXME: DST? ! int zone = cal.get(Calendar.ZONE_OFFSET) / (1000 * 60 * 60); ! String[][] zs = syms.getZoneStrings(); ! builder.append(zs[zone + 12][1]); ! } ! break; case 's': ! { ! long val = cal.getTime().getTime(); ! builder.append(val / 1000); ! } ! break; case 'Q': ! { ! long val = cal.getTime().getTime(); ! builder.append(val); ! } ! break; case 'B': ! { ! int month = cal.get(Calendar.MONTH); ! builder.append(syms.getMonths()[month]); ! } ! break; case 'b': case 'h': ! { ! int month = cal.get(Calendar.MONTH); ! builder.append(syms.getShortMonths()[month]); ! } ! break; case 'A': ! { ! int day = cal.get(Calendar.DAY_OF_WEEK); ! builder.append(syms.getWeekdays()[day]); ! } ! break; case 'a': ! { ! int day = cal.get(Calendar.DAY_OF_WEEK); ! builder.append(syms.getShortWeekdays()[day]); ! } ! break; case 'C': ! builder.append(cal.get(Calendar.YEAR) / 100); ! digits = 2; ! break; case 'Y': ! builder.append(cal.get(Calendar.YEAR)); ! digits = 4; ! break; case 'y': ! builder.append(cal.get(Calendar.YEAR) % 100); ! digits = 2; ! break; case 'j': ! builder.append(cal.get(Calendar.DAY_OF_YEAR)); ! digits = 3; ! break; case 'm': ! builder.append(cal.get(Calendar.MONTH) + 1); ! digits = 2; ! break; case 'd': ! builder.append(cal.get(Calendar.DAY_OF_MONTH)); ! digits = 2; ! break; case 'e': ! builder.append(cal.get(Calendar.DAY_OF_MONTH)); ! break; case 'R': ! singleDateTimeConversion(builder, cal, 'H', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'M', syms); ! break; case 'T': ! singleDateTimeConversion(builder, cal, 'H', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'M', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'S', syms); ! break; case 'r': ! singleDateTimeConversion(builder, cal, 'I', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'M', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'S', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'p', syms); ! break; case 'D': ! singleDateTimeConversion(builder, cal, 'm', syms); ! builder.append('/'); ! singleDateTimeConversion(builder, cal, 'd', syms); ! builder.append('/'); ! singleDateTimeConversion(builder, cal, 'y', syms); ! break; case 'F': ! singleDateTimeConversion(builder, cal, 'Y', syms); ! builder.append('-'); ! singleDateTimeConversion(builder, cal, 'm', syms); ! builder.append('-'); ! singleDateTimeConversion(builder, cal, 'd', syms); ! break; case 'c': ! singleDateTimeConversion(builder, cal, 'a', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'b', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'd', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'T', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'Z', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'Y', syms); ! break; default: ! throw new UnknownFormatConversionException(String.valueOf(conversion)); } if (digits > 0) { ! int newLen = builder.length(); ! int delta = newLen - oldLen; ! while (delta++ < digits) ! builder.insert(oldLen, '0'); } } --- 923,1107 ---- * @param syms the date formatting symbols. */ private void singleDateTimeConversion(CPStringBuilder builder, Calendar cal, ! char conversion, ! DateFormatSymbols syms) { int oldLen = builder.length(); int digits = -1; switch (conversion) { case 'H': ! builder.append(cal.get(Calendar.HOUR_OF_DAY)); ! digits = 2; ! break; case 'I': ! builder.append(cal.get(Calendar.HOUR)); ! digits = 2; ! break; case 'k': ! builder.append(cal.get(Calendar.HOUR_OF_DAY)); ! break; case 'l': ! builder.append(cal.get(Calendar.HOUR)); ! break; case 'M': ! builder.append(cal.get(Calendar.MINUTE)); ! digits = 2; ! break; case 'S': ! builder.append(cal.get(Calendar.SECOND)); ! digits = 2; ! break; case 'N': ! // FIXME: nanosecond ... ! digits = 9; ! break; case 'p': ! { ! int ampm = cal.get(Calendar.AM_PM); ! builder.append(syms.getAmPmStrings()[ampm]); ! } ! break; case 'z': ! { ! int zone = cal.get(Calendar.ZONE_OFFSET) / (1000 * 60); ! builder.append(zone); ! digits = 4; ! // Skip the '-' sign. ! if (zone < 0) ! ++oldLen; ! } ! break; case 'Z': ! { ! // FIXME: DST? ! int zone = cal.get(Calendar.ZONE_OFFSET) / (1000 * 60 * 60); ! String[][] zs = syms.getZoneStrings(); ! builder.append(zs[zone + 12][1]); ! } ! break; case 's': ! { ! long val = cal.getTime().getTime(); ! builder.append(val / 1000); ! } ! break; case 'Q': ! { ! long val = cal.getTime().getTime(); ! builder.append(val); ! } ! break; case 'B': ! { ! int month = cal.get(Calendar.MONTH); ! builder.append(syms.getMonths()[month]); ! } ! break; case 'b': case 'h': ! { ! int month = cal.get(Calendar.MONTH); ! builder.append(syms.getShortMonths()[month]); ! } ! break; case 'A': ! { ! int day = cal.get(Calendar.DAY_OF_WEEK); ! builder.append(syms.getWeekdays()[day]); ! } ! break; case 'a': ! { ! int day = cal.get(Calendar.DAY_OF_WEEK); ! builder.append(syms.getShortWeekdays()[day]); ! } ! break; case 'C': ! builder.append(cal.get(Calendar.YEAR) / 100); ! digits = 2; ! break; case 'Y': ! builder.append(cal.get(Calendar.YEAR)); ! digits = 4; ! break; case 'y': ! builder.append(cal.get(Calendar.YEAR) % 100); ! digits = 2; ! break; case 'j': ! builder.append(cal.get(Calendar.DAY_OF_YEAR)); ! digits = 3; ! break; case 'm': ! builder.append(cal.get(Calendar.MONTH) + 1); ! digits = 2; ! break; case 'd': ! builder.append(cal.get(Calendar.DAY_OF_MONTH)); ! digits = 2; ! break; case 'e': ! builder.append(cal.get(Calendar.DAY_OF_MONTH)); ! break; case 'R': ! singleDateTimeConversion(builder, cal, 'H', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'M', syms); ! break; case 'T': ! singleDateTimeConversion(builder, cal, 'H', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'M', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'S', syms); ! break; case 'r': ! singleDateTimeConversion(builder, cal, 'I', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'M', syms); ! builder.append(':'); ! singleDateTimeConversion(builder, cal, 'S', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'p', syms); ! break; case 'D': ! singleDateTimeConversion(builder, cal, 'm', syms); ! builder.append('/'); ! singleDateTimeConversion(builder, cal, 'd', syms); ! builder.append('/'); ! singleDateTimeConversion(builder, cal, 'y', syms); ! break; case 'F': ! singleDateTimeConversion(builder, cal, 'Y', syms); ! builder.append('-'); ! singleDateTimeConversion(builder, cal, 'm', syms); ! builder.append('-'); ! singleDateTimeConversion(builder, cal, 'd', syms); ! break; case 'c': ! singleDateTimeConversion(builder, cal, 'a', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'b', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'd', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'T', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'Z', syms); ! builder.append(' '); ! singleDateTimeConversion(builder, cal, 'Y', syms); ! break; default: ! throw new UnknownFormatConversionException(String.valueOf(conversion)); } if (digits > 0) { ! int newLen = builder.length(); ! int delta = newLen - oldLen; ! while (delta++ < digits) ! builder.insert(oldLen, '0'); } } *************** public final class Formatter *** 1117,1149 **** * @throws IOException if the output stream throws an I/O error. */ private void dateTimeConversion(Object arg, int flags, int width, ! int precision, char conversion, ! char subConversion) throws IOException { noPrecision(precision); checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); Calendar cal; if (arg instanceof Calendar) cal = (Calendar) arg; else { ! Date date; ! if (arg instanceof Date) ! date = (Date) arg; ! else if (arg instanceof Long) ! date = new Date(((Long) arg).longValue()); ! else ! throw new IllegalFormatConversionException(conversion, ! arg.getClass()); ! if (fmtLocale == null) ! cal = Calendar.getInstance(); ! else ! cal = Calendar.getInstance(fmtLocale); ! cal.setTime(date); } // We could try to be more efficient by computing this lazily. --- 1117,1149 ---- * @throws IOException if the output stream throws an I/O error. */ private void dateTimeConversion(Object arg, int flags, int width, ! int precision, char conversion, ! char subConversion) throws IOException { noPrecision(precision); checkFlags(flags, ! FormattableFlags.LEFT_JUSTIFY | FormattableFlags.UPPERCASE, ! conversion); Calendar cal; if (arg instanceof Calendar) cal = (Calendar) arg; else { ! Date date; ! if (arg instanceof Date) ! date = (Date) arg; ! else if (arg instanceof Long) ! date = new Date(((Long) arg).longValue()); ! else ! throw new IllegalFormatConversionException(conversion, ! arg.getClass()); ! if (fmtLocale == null) ! cal = Calendar.getInstance(); ! else ! cal = Calendar.getInstance(fmtLocale); ! cal.setTime(date); } // We could try to be more efficient by computing this lazily. *************** public final class Formatter *** 1170,1177 **** ++index; if (index >= length) { ! // FIXME: what exception here? ! throw new IllegalArgumentException(); } } --- 1170,1177 ---- ++index; if (index >= length) { ! // FIXME: what exception here? ! throw new IllegalArgumentException(); } } *************** public final class Formatter *** 1204,1223 **** int start = index; if (format.charAt(index) == '<') { ! result = 0; ! advance(); } else if (Character.isDigit(format.charAt(index))) { ! result = parseInt(); ! if (format.charAt(index) == '$') ! advance(); ! else ! { ! // Reset. ! index = start; ! result = -1; ! } } return result; } --- 1204,1223 ---- int start = index; if (format.charAt(index) == '<') { ! result = 0; ! advance(); } else if (Character.isDigit(format.charAt(index))) { ! result = parseInt(); ! if (format.charAt(index) == '$') ! advance(); ! else ! { ! // Reset. ! index = start; ! result = -1; ! } } return result; } *************** public final class Formatter *** 1235,1249 **** int start = index; while (true) { ! int x = FLAGS.indexOf(format.charAt(index)); ! if (x == -1) ! break; ! int newValue = 1 << x; ! if ((value & newValue) != 0) ! throw new DuplicateFormatFlagsException(format.substring(start, ! index + 1)); ! value |= newValue; ! advance(); } return value; } --- 1235,1249 ---- int start = index; while (true) { ! int x = FLAGS.indexOf(format.charAt(index)); ! if (x == -1) ! break; ! int newValue = 1 << x; ! if ((value & newValue) != 0) ! throw new DuplicateFormatFlagsException(format.substring(start, ! index + 1)); ! value |= newValue; ! advance(); } return value; } *************** public final class Formatter *** 1293,1299 **** * specification or a mismatch * between it and the arguments. * @throws FormatterClosedException if the formatter is closed. ! */ public Formatter format(Locale loc, String fmt, Object... args) { if (closed) --- 1293,1299 ---- * specification or a mismatch * between it and the arguments. * @throws FormatterClosedException if the formatter is closed. ! */ public Formatter format(Locale loc, String fmt, Object... args) { if (closed) *************** public final class Formatter *** 1305,1426 **** try { ! fmtLocale = loc; ! format = fmt; ! length = format.length(); ! for (index = 0; index < length; ++index) ! { ! char c = format.charAt(index); ! if (c != '%') ! { ! out.append(c); ! continue; ! } ! int start = index; ! advance(); ! // We do the needed post-processing of this later, when we ! // determine whether an argument is actually needed by ! // this conversion. ! int argumentIndex = parseArgumentIndex(); ! int flags = parseFlags(); ! int width = parseWidth(); ! int precision = parsePrecision(); ! char origConversion = format.charAt(index); ! char conversion = origConversion; ! if (Character.isUpperCase(conversion)) ! { ! flags |= FormattableFlags.UPPERCASE; ! conversion = Character.toLowerCase(conversion); ! } ! Object argument = null; ! if (conversion == '%' || conversion == 'n') ! { ! if (argumentIndex != -1) ! { ! // FIXME: not sure about this. ! throw new UnknownFormatConversionException("FIXME"); ! } ! } ! else ! { ! if (argumentIndex == -1) ! argumentIndex = implicitArgumentIndex++; ! else if (argumentIndex == 0) ! argumentIndex = previousArgumentIndex; ! // Argument indices start at 1 but array indices at 0. ! --argumentIndex; ! if (argumentIndex < 0 || argumentIndex >= args.length) ! throw new MissingFormatArgumentException(format.substring(start, index)); ! argument = args[argumentIndex]; ! } ! switch (conversion) ! { ! case 'b': ! booleanFormat(argument, flags, width, precision, ! origConversion); ! break; ! case 'h': ! hashCodeFormat(argument, flags, width, precision, ! origConversion); ! break; ! case 's': ! stringFormat(argument, flags, width, precision, ! origConversion); ! break; ! case 'c': ! characterFormat(argument, flags, width, precision, ! origConversion); ! break; ! case 'd': ! checkFlags(flags & FormattableFlags.UPPERCASE, 0, 'd'); ! decimalConversion(argument, flags, width, precision, ! origConversion); ! break; ! case 'o': ! checkFlags(flags & FormattableFlags.UPPERCASE, 0, 'o'); ! hexOrOctalConversion(argument, flags, width, precision, 8, ! origConversion); ! break; ! case 'x': ! hexOrOctalConversion(argument, flags, width, precision, 16, ! origConversion); ! case 'e': ! // scientificNotationConversion(); ! break; ! case 'f': ! // floatingDecimalConversion(); ! break; ! case 'g': ! // smartFloatingConversion(); ! break; ! case 'a': ! // hexFloatingConversion(); ! break; ! case 't': ! advance(); ! char subConversion = format.charAt(index); ! dateTimeConversion(argument, flags, width, precision, ! origConversion, subConversion); ! break; ! case '%': ! percentFormat(flags, width, precision); ! break; ! case 'n': ! newLineFormat(flags, width, precision); ! break; ! default: ! throw new UnknownFormatConversionException(String.valueOf(origConversion)); ! } ! } } catch (IOException exc) { ! ioException = exc; } return this; } --- 1305,1426 ---- try { ! fmtLocale = loc; ! format = fmt; ! length = format.length(); ! for (index = 0; index < length; ++index) ! { ! char c = format.charAt(index); ! if (c != '%') ! { ! out.append(c); ! continue; ! } ! int start = index; ! advance(); ! // We do the needed post-processing of this later, when we ! // determine whether an argument is actually needed by ! // this conversion. ! int argumentIndex = parseArgumentIndex(); ! int flags = parseFlags(); ! int width = parseWidth(); ! int precision = parsePrecision(); ! char origConversion = format.charAt(index); ! char conversion = origConversion; ! if (Character.isUpperCase(conversion)) ! { ! flags |= FormattableFlags.UPPERCASE; ! conversion = Character.toLowerCase(conversion); ! } ! Object argument = null; ! if (conversion == '%' || conversion == 'n') ! { ! if (argumentIndex != -1) ! { ! // FIXME: not sure about this. ! throw new UnknownFormatConversionException("FIXME"); ! } ! } ! else ! { ! if (argumentIndex == -1) ! argumentIndex = implicitArgumentIndex++; ! else if (argumentIndex == 0) ! argumentIndex = previousArgumentIndex; ! // Argument indices start at 1 but array indices at 0. ! --argumentIndex; ! if (argumentIndex < 0 || argumentIndex >= args.length) ! throw new MissingFormatArgumentException(format.substring(start, index)); ! argument = args[argumentIndex]; ! } ! switch (conversion) ! { ! case 'b': ! booleanFormat(argument, flags, width, precision, ! origConversion); ! break; ! case 'h': ! hashCodeFormat(argument, flags, width, precision, ! origConversion); ! break; ! case 's': ! stringFormat(argument, flags, width, precision, ! origConversion); ! break; ! case 'c': ! characterFormat(argument, flags, width, precision, ! origConversion); ! break; ! case 'd': ! checkFlags(flags & FormattableFlags.UPPERCASE, 0, 'd'); ! decimalConversion(argument, flags, width, precision, ! origConversion); ! break; ! case 'o': ! checkFlags(flags & FormattableFlags.UPPERCASE, 0, 'o'); ! hexOrOctalConversion(argument, flags, width, precision, 8, ! origConversion); ! break; ! case 'x': ! hexOrOctalConversion(argument, flags, width, precision, 16, ! origConversion); ! case 'e': ! // scientificNotationConversion(); ! break; ! case 'f': ! // floatingDecimalConversion(); ! break; ! case 'g': ! // smartFloatingConversion(); ! break; ! case 'a': ! // hexFloatingConversion(); ! break; ! case 't': ! advance(); ! char subConversion = format.charAt(index); ! dateTimeConversion(argument, flags, width, precision, ! origConversion, subConversion); ! break; ! case '%': ! percentFormat(flags, width, precision); ! break; ! case 'n': ! newLineFormat(flags, width, precision); ! break; ! default: ! throw new UnknownFormatConversionException(String.valueOf(origConversion)); ! } ! } } catch (IOException exc) { ! ioException = exc; } return this; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/FormatterClosedException.java gcc-4.6.0/libjava/classpath/java/util/FormatterClosedException.java *** gcc-4.5.2/libjava/classpath/java/util/FormatterClosedException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/FormatterClosedException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,52 **** package java.util; ! /** * Thrown when a method is called on a {@link Formatter} but * it has already been closed. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class FormatterClosedException extends IllegalStateException { private static final long serialVersionUID = 18111216L; --- 38,52 ---- package java.util; ! /** * Thrown when a method is called on a {@link Formatter} but * it has already been closed. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class FormatterClosedException extends IllegalStateException { private static final long serialVersionUID = 18111216L; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/GregorianCalendar.java gcc-4.6.0/libjava/classpath/java/util/GregorianCalendar.java *** gcc-4.5.2/libjava/classpath/java/util/GregorianCalendar.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/GregorianCalendar.java Tue Jan 11 19:46:05 2011 *************** public class GregorianCalendar extends C *** 367,391 **** if (month > 11) { ! year += (month / 12); ! month = month % 12; } if (month < 0) { ! year += (int) month / 12; ! month = month % 12; ! if (month < 0) ! { ! month += 12; ! year--; ! } } int dayOfYear = dayCount[month] + 1; if (month > 1) if (isLeapYear(year)) ! dayOfYear++; boolean greg = isGregorian(year, dayOfYear); int day = (int) getLinearDay(year, dayOfYear, greg); --- 367,391 ---- if (month > 11) { ! year += (month / 12); ! month = month % 12; } if (month < 0) { ! year += (int) month / 12; ! month = month % 12; ! if (month < 0) ! { ! month += 12; ! year--; ! } } int dayOfYear = dayCount[month] + 1; if (month > 1) if (isLeapYear(year)) ! dayOfYear++; boolean greg = isGregorian(year, dayOfYear); int day = (int) getLinearDay(year, dayOfYear, greg); *************** public class GregorianCalendar extends C *** 431,459 **** throw new IllegalArgumentException("Illegal MONTH."); if (isSet[WEEK_OF_YEAR]) { ! int daysInYear = 365 + leap; ! daysInYear += (getFirstDayOfMonth(year, 0) - 1); // pad first week ! int last = getFirstDayOfMonth(year, 11) + 4; ! if (last > 7) ! last -= 7; ! daysInYear += 7 - last; ! int weeks = daysInYear / 7; ! if (fields[WEEK_OF_YEAR] < 1 || fields[WEEK_OF_YEAR] > weeks) ! throw new IllegalArgumentException("Illegal WEEK_OF_YEAR."); } if (isSet[WEEK_OF_MONTH]) { ! int weeks = (month == 1 && leap == 0) ? 5 : 6; ! if (fields[WEEK_OF_MONTH] < 1 || fields[WEEK_OF_MONTH] > weeks) ! throw new IllegalArgumentException("Illegal WEEK_OF_MONTH."); } if (isSet[DAY_OF_MONTH]) if (fields[DAY_OF_MONTH] < 1 || fields[DAY_OF_MONTH] > month_days[month] + ((month == 1) ? leap : 0)) ! throw new IllegalArgumentException("Illegal DAY_OF_MONTH."); if (isSet[DAY_OF_YEAR] && (fields[DAY_OF_YEAR] < 1 || fields[DAY_OF_YEAR] > 365 + leap)) --- 431,459 ---- throw new IllegalArgumentException("Illegal MONTH."); if (isSet[WEEK_OF_YEAR]) { ! int daysInYear = 365 + leap; ! daysInYear += (getFirstDayOfMonth(year, 0) - 1); // pad first week ! int last = getFirstDayOfMonth(year, 11) + 4; ! if (last > 7) ! last -= 7; ! daysInYear += 7 - last; ! int weeks = daysInYear / 7; ! if (fields[WEEK_OF_YEAR] < 1 || fields[WEEK_OF_YEAR] > weeks) ! throw new IllegalArgumentException("Illegal WEEK_OF_YEAR."); } if (isSet[WEEK_OF_MONTH]) { ! int weeks = (month == 1 && leap == 0) ? 5 : 6; ! if (fields[WEEK_OF_MONTH] < 1 || fields[WEEK_OF_MONTH] > weeks) ! throw new IllegalArgumentException("Illegal WEEK_OF_MONTH."); } if (isSet[DAY_OF_MONTH]) if (fields[DAY_OF_MONTH] < 1 || fields[DAY_OF_MONTH] > month_days[month] + ((month == 1) ? leap : 0)) ! throw new IllegalArgumentException("Illegal DAY_OF_MONTH."); if (isSet[DAY_OF_YEAR] && (fields[DAY_OF_YEAR] < 1 || fields[DAY_OF_YEAR] > 365 + leap)) *************** public class GregorianCalendar extends C *** 465,474 **** if (isSet[DAY_OF_WEEK_IN_MONTH]) { ! int weeks = (month == 1 && leap == 0) ? 4 : 5; ! if (fields[DAY_OF_WEEK_IN_MONTH] < -weeks ! || fields[DAY_OF_WEEK_IN_MONTH] > weeks) ! throw new IllegalArgumentException("Illegal DAY_OF_WEEK_IN_MONTH."); } if (isSet[AM_PM] && fields[AM_PM] != AM && fields[AM_PM] != PM) --- 465,474 ---- if (isSet[DAY_OF_WEEK_IN_MONTH]) { ! int weeks = (month == 1 && leap == 0) ? 4 : 5; ! if (fields[DAY_OF_WEEK_IN_MONTH] < -weeks ! || fields[DAY_OF_WEEK_IN_MONTH] > weeks) ! throw new IllegalArgumentException("Illegal DAY_OF_WEEK_IN_MONTH."); } if (isSet[AM_PM] && fields[AM_PM] != AM && fields[AM_PM] != PM) *************** public class GregorianCalendar extends C *** 522,599 **** if (! isSet[MONTH] && (! isSet[DAY_OF_WEEK] || isSet[WEEK_OF_YEAR])) { ! // 5: YEAR + DAY_OF_WEEK + WEEK_OF_YEAR ! if (isSet[WEEK_OF_YEAR]) ! { ! int first = getFirstDayOfMonth(year, 0); ! int offs = 1; ! int daysInFirstWeek = getFirstDayOfWeek() - first; ! if (daysInFirstWeek <= 0) ! daysInFirstWeek += 7; ! if (daysInFirstWeek < getMinimalDaysInFirstWeek()) ! offs += daysInFirstWeek; ! else ! offs -= 7 - daysInFirstWeek; ! month = 0; ! day = offs + 7 * (fields[WEEK_OF_YEAR] - 1); ! offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek(); ! if (offs < 0) ! offs += 7; ! day += offs; ! } ! else ! { ! // 4: YEAR + DAY_OF_YEAR ! month = 0; ! day = fields[DAY_OF_YEAR]; ! } } else { ! if (isSet[DAY_OF_WEEK]) ! { ! int first = getFirstDayOfMonth(year, month); ! // 3: YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK ! if (isSet[DAY_OF_WEEK_IN_MONTH]) ! { ! if (fields[DAY_OF_WEEK_IN_MONTH] < 0) ! { ! month++; ! first = getFirstDayOfMonth(year, month); ! day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH]); ! } ! else ! day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH] - 1); ! int offs = fields[DAY_OF_WEEK] - first; ! if (offs < 0) ! offs += 7; ! day += offs; ! } ! else ! { // 2: YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK ! int offs = 1; ! int daysInFirstWeek = getFirstDayOfWeek() - first; ! if (daysInFirstWeek <= 0) ! daysInFirstWeek += 7; ! if (daysInFirstWeek < getMinimalDaysInFirstWeek()) ! offs += daysInFirstWeek; ! else ! offs -= 7 - daysInFirstWeek; ! day = offs + 7 * (fields[WEEK_OF_MONTH] - 1); ! offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek(); ! if (offs < 0) ! offs += 7; ! day += offs; ! } ! } ! // 1: YEAR + MONTH + DAY_OF_MONTH } if (era == BC && year > 0) year = 1 - year; --- 522,599 ---- if (! isSet[MONTH] && (! isSet[DAY_OF_WEEK] || isSet[WEEK_OF_YEAR])) { ! // 5: YEAR + DAY_OF_WEEK + WEEK_OF_YEAR ! if (isSet[WEEK_OF_YEAR]) ! { ! int first = getFirstDayOfMonth(year, 0); ! int offs = 1; ! int daysInFirstWeek = getFirstDayOfWeek() - first; ! if (daysInFirstWeek <= 0) ! daysInFirstWeek += 7; ! if (daysInFirstWeek < getMinimalDaysInFirstWeek()) ! offs += daysInFirstWeek; ! else ! offs -= 7 - daysInFirstWeek; ! month = 0; ! day = offs + 7 * (fields[WEEK_OF_YEAR] - 1); ! offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek(); ! if (offs < 0) ! offs += 7; ! day += offs; ! } ! else ! { ! // 4: YEAR + DAY_OF_YEAR ! month = 0; ! day = fields[DAY_OF_YEAR]; ! } } else { ! if (isSet[DAY_OF_WEEK]) ! { ! int first = getFirstDayOfMonth(year, month); ! // 3: YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK ! if (isSet[DAY_OF_WEEK_IN_MONTH]) ! { ! if (fields[DAY_OF_WEEK_IN_MONTH] < 0) ! { ! month++; ! first = getFirstDayOfMonth(year, month); ! day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH]); ! } ! else ! day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH] - 1); ! int offs = fields[DAY_OF_WEEK] - first; ! if (offs < 0) ! offs += 7; ! day += offs; ! } ! else ! { // 2: YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK ! int offs = 1; ! int daysInFirstWeek = getFirstDayOfWeek() - first; ! if (daysInFirstWeek <= 0) ! daysInFirstWeek += 7; ! if (daysInFirstWeek < getMinimalDaysInFirstWeek()) ! offs += daysInFirstWeek; ! else ! offs -= 7 - daysInFirstWeek; ! day = offs + 7 * (fields[WEEK_OF_MONTH] - 1); ! offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek(); ! if (offs < 0) ! offs += 7; ! day += offs; ! } ! } ! // 1: YEAR + MONTH + DAY_OF_MONTH } if (era == BC && year > 0) year = 1 - year; *************** public class GregorianCalendar extends C *** 603,611 **** // get the hour (but no check for validity) if (isSet[HOUR]) { ! hour = fields[HOUR]; ! if (fields[AM_PM] == PM) ! hour += 12; } else hour = fields[HOUR_OF_DAY]; --- 603,611 ---- // get the hour (but no check for validity) if (isSet[HOUR]) { ! hour = fields[HOUR]; ! if (fields[AM_PM] == PM) ! hour += 12; } else hour = fields[HOUR_OF_DAY]; *************** public class GregorianCalendar extends C *** 619,659 **** if (month < 0) { ! year += (int) month / 12; ! month = month % 12; ! if (month < 0) ! { ! month += 12; ! year--; ! } } if (month > 11) { ! year += (month / 12); ! month = month % 12; } month_days[1] = isLeapYear(year) ? 29 : 28; while (day <= 0) { ! if (month == 0) ! { ! year--; ! month_days[1] = isLeapYear(year) ? 29 : 28; ! } ! month = (month + 11) % 12; ! day += month_days[month]; } while (day > month_days[month]) { ! day -= (month_days[month]); ! month = (month + 1) % 12; ! if (month == 0) ! { ! year++; ! month_days[1] = isLeapYear(year) ? 29 : 28; ! } } // ok, by here we have valid day,month,year,era and millisinday --- 619,659 ---- if (month < 0) { ! year += (int) month / 12; ! month = month % 12; ! if (month < 0) ! { ! month += 12; ! year--; ! } } if (month > 11) { ! year += (month / 12); ! month = month % 12; } month_days[1] = isLeapYear(year) ? 29 : 28; while (day <= 0) { ! if (month == 0) ! { ! year--; ! month_days[1] = isLeapYear(year) ? 29 : 28; ! } ! month = (month + 11) % 12; ! day += month_days[month]; } while (day > month_days[month]) { ! day -= (month_days[month]); ! month = (month + 1) % 12; ! if (month == 0) ! { ! year++; ! month_days[1] = isLeapYear(year) ? 29 : 28; ! } } // ok, by here we have valid day,month,year,era and millisinday *************** public class GregorianCalendar extends C *** 719,737 **** if (gregorian) { ! // subtract the days that are missing in gregorian calendar ! // with respect to julian calendar. ! // ! // Okay, here we rely on the fact that the gregorian ! // calendar was introduced in the AD era. This doesn't work ! // with negative years. ! // ! // The additional leap year factor accounts for the fact that ! // a leap day is not seen on Jan 1 of the leap year. ! int gregOffset = (int) Math.floor((double) (year - 1) / 400.) ! - (int) Math.floor((double) (year - 1) / 100.); ! return julianDay + gregOffset; } else julianDay -= 2; --- 719,737 ---- if (gregorian) { ! // subtract the days that are missing in gregorian calendar ! // with respect to julian calendar. ! // ! // Okay, here we rely on the fact that the gregorian ! // calendar was introduced in the AD era. This doesn't work ! // with negative years. ! // ! // The additional leap year factor accounts for the fact that ! // a leap day is not seen on Jan 1 of the leap year. ! int gregOffset = (int) Math.floor((double) (year - 1) / 400.) ! - (int) Math.floor((double) (year - 1) / 100.); ! return julianDay + gregOffset; } else julianDay -= 2; *************** public class GregorianCalendar extends C *** 754,760 **** weekday += 7; fields[DAY_OF_WEEK] = weekday; ! // get a first approximation of the year. This may be one // year too big. int year = 1970 + (int) (gregorian --- 754,760 ---- weekday += 7; fields[DAY_OF_WEEK] = weekday; ! // get a first approximation of the year. This may be one // year too big. int year = 1970 + (int) (gregorian *************** public class GregorianCalendar extends C *** 768,775 **** // Now look in which year day really lies. if (day < firstDayOfYear) { ! year--; ! firstDayOfYear = getLinearDay(year, 1, gregorian); } day -= firstDayOfYear - 1; // day of year, one based. --- 768,775 ---- // Now look in which year day really lies. if (day < firstDayOfYear) { ! year--; ! firstDayOfYear = getLinearDay(year, 1, gregorian); } day -= firstDayOfYear - 1; // day of year, one based. *************** public class GregorianCalendar extends C *** 777,803 **** fields[DAY_OF_YEAR] = (int) day; if (year <= 0) { ! fields[ERA] = BC; ! fields[YEAR] = 1 - year; } else { ! fields[ERA] = AD; ! fields[YEAR] = year; } int leapday = isLeapYear(year) ? 1 : 0; if (day <= 31 + 28 + leapday) { ! fields[MONTH] = (int) day / 32; // 31->JANUARY, 32->FEBRUARY ! fields[DAY_OF_MONTH] = (int) day - 31 * fields[MONTH]; } else { ! // A few more magic formulas ! int scaledDay = ((int) day - leapday) * 5 + 8; ! fields[MONTH] = scaledDay / (31 + 30 + 31 + 30 + 31); ! fields[DAY_OF_MONTH] = (scaledDay % (31 + 30 + 31 + 30 + 31)) / 5 + 1; } } --- 777,803 ---- fields[DAY_OF_YEAR] = (int) day; if (year <= 0) { ! fields[ERA] = BC; ! fields[YEAR] = 1 - year; } else { ! fields[ERA] = AD; ! fields[YEAR] = year; } int leapday = isLeapYear(year) ? 1 : 0; if (day <= 31 + 28 + leapday) { ! fields[MONTH] = (int) day / 32; // 31->JANUARY, 32->FEBRUARY ! fields[DAY_OF_MONTH] = (int) day - 31 * fields[MONTH]; } else { ! // A few more magic formulas ! int scaledDay = ((int) day - leapday) * 5 + 8; ! fields[MONTH] = scaledDay / (31 + 30 + 31 + 30 + 31); ! fields[DAY_OF_MONTH] = (scaledDay % (31 + 30 + 31 + 30 + 31)) / 5 + 1; } } *************** public class GregorianCalendar extends C *** 819,826 **** if (millisInDay < 0) { ! millisInDay += (24 * 60 * 60 * 1000); ! day--; } calculateDay(fields, day, gregorian); --- 819,826 ---- if (millisInDay < 0) { ! millisInDay += (24 * 60 * 60 * 1000); ! day--; } calculateDay(fields, day, gregorian); *************** public class GregorianCalendar extends C *** 832,839 **** millisInDay += fields[DST_OFFSET]; if (millisInDay >= 24 * 60 * 60 * 1000) { ! millisInDay -= 24 * 60 * 60 * 1000; ! calculateDay(fields, ++day, gregorian); } fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 6) / 7; --- 832,839 ---- millisInDay += fields[DST_OFFSET]; if (millisInDay >= 24 * 60 * 60 * 1000) { ! millisInDay -= 24 * 60 * 60 * 1000; ! calculateDay(fields, ++day, gregorian); } fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 6) / 7; *************** public class GregorianCalendar extends C *** 845,851 **** // nb 35 is the smallest multiple of 7 that ensures that // the left hand side of the modulo operator is positive. int relativeWeekdayOfFirst = (relativeWeekday - fields[DAY_OF_MONTH] ! + 1 + 35) % 7; // which week of the month is the first of this month in? int minDays = getMinimalDaysInFirstWeek(); --- 845,851 ---- // nb 35 is the smallest multiple of 7 that ensures that // the left hand side of the modulo operator is positive. int relativeWeekdayOfFirst = (relativeWeekday - fields[DAY_OF_MONTH] ! + 1 + 35) % 7; // which week of the month is the first of this month in? int minDays = getMinimalDaysInFirstWeek(); *************** public class GregorianCalendar extends C *** 853,863 **** // which week of the month is this day in? fields[WEEK_OF_MONTH] = (fields[DAY_OF_MONTH] ! + relativeWeekdayOfFirst - 1) / 7 + weekOfFirst; int weekOfYear = (fields[DAY_OF_YEAR] - relativeWeekday + 6) / 7; ! // Do the Correction: getMinimalDaysInFirstWeek() is always in the // first week. int firstWeekday = (7 + getWeekDay(fields[YEAR], minDays) - getFirstDayOfWeek()) % 7; --- 853,863 ---- // which week of the month is this day in? fields[WEEK_OF_MONTH] = (fields[DAY_OF_MONTH] ! + relativeWeekdayOfFirst - 1) / 7 + weekOfFirst; int weekOfYear = (fields[DAY_OF_YEAR] - relativeWeekday + 6) / 7; ! // Do the Correction: getMinimalDaysInFirstWeek() is always in the // first week. int firstWeekday = (7 + getWeekDay(fields[YEAR], minDays) - getFirstDayOfWeek()) % 7; *************** public class GregorianCalendar extends C *** 878,884 **** areFieldsSet = isSet[ERA] = isSet[YEAR] = isSet[MONTH] = isSet[WEEK_OF_YEAR] = isSet[WEEK_OF_MONTH] = isSet[DAY_OF_MONTH] = isSet[DAY_OF_YEAR] = isSet[DAY_OF_WEEK] = isSet[DAY_OF_WEEK_IN_MONTH] = isSet[AM_PM] = isSet[HOUR] = isSet[HOUR_OF_DAY] = isSet[MINUTE] = isSet[SECOND] = isSet[MILLISECOND] = isSet[ZONE_OFFSET] = isSet[DST_OFFSET] = true; } ! /** * Return a hash code for this object, following the general contract * specified by {@link Object#hashCode()}. --- 878,884 ---- areFieldsSet = isSet[ERA] = isSet[YEAR] = isSet[MONTH] = isSet[WEEK_OF_YEAR] = isSet[WEEK_OF_MONTH] = isSet[DAY_OF_MONTH] = isSet[DAY_OF_YEAR] = isSet[DAY_OF_WEEK] = isSet[DAY_OF_WEEK_IN_MONTH] = isSet[AM_PM] = isSet[HOUR] = isSet[HOUR_OF_DAY] = isSet[MINUTE] = isSet[SECOND] = isSet[MILLISECOND] = isSet[ZONE_OFFSET] = isSet[DST_OFFSET] = true; } ! /** * Return a hash code for this object, following the general contract * specified by {@link Object#hashCode()}. *************** public class GregorianCalendar extends C *** 931,1006 **** switch (field) { case YEAR: ! complete(); ! fields[YEAR] += amount; ! isTimeSet = false; ! break; case MONTH: ! complete(); ! int months = fields[MONTH] + amount; ! fields[YEAR] += months / 12; ! fields[MONTH] = months % 12; ! if (fields[MONTH] < 0) ! { ! fields[MONTH] += 12; ! fields[YEAR]--; ! } ! int maxDay = getActualMaximum(DAY_OF_MONTH); ! if (fields[DAY_OF_MONTH] > maxDay) ! fields[DAY_OF_MONTH] = maxDay; ! set(YEAR, fields[YEAR]); ! set(MONTH, fields[MONTH]); ! break; case DAY_OF_MONTH: case DAY_OF_YEAR: case DAY_OF_WEEK: ! if (! isTimeSet) ! computeTime(); ! time += amount * (24 * 60 * 60 * 1000L); ! areFieldsSet = false; ! break; case WEEK_OF_YEAR: case WEEK_OF_MONTH: case DAY_OF_WEEK_IN_MONTH: ! if (! isTimeSet) ! computeTime(); ! time += amount * (7 * 24 * 60 * 60 * 1000L); ! areFieldsSet = false; ! break; case AM_PM: ! if (! isTimeSet) ! computeTime(); ! time += amount * (12 * 60 * 60 * 1000L); ! areFieldsSet = false; ! break; case HOUR: case HOUR_OF_DAY: ! if (! isTimeSet) ! computeTime(); ! time += amount * (60 * 60 * 1000L); ! areFieldsSet = false; ! break; case MINUTE: ! if (! isTimeSet) ! computeTime(); ! time += amount * (60 * 1000L); ! areFieldsSet = false; ! break; case SECOND: ! if (! isTimeSet) ! computeTime(); ! time += amount * (1000L); ! areFieldsSet = false; ! break; case MILLISECOND: ! if (! isTimeSet) ! computeTime(); ! time += amount; ! areFieldsSet = false; ! break; case ZONE_OFFSET: case DST_OFFSET:default: ! throw new IllegalArgumentException("Invalid or unknown field"); } } --- 931,1006 ---- switch (field) { case YEAR: ! complete(); ! fields[YEAR] += amount; ! isTimeSet = false; ! break; case MONTH: ! complete(); ! int months = fields[MONTH] + amount; ! fields[YEAR] += months / 12; ! fields[MONTH] = months % 12; ! if (fields[MONTH] < 0) ! { ! fields[MONTH] += 12; ! fields[YEAR]--; ! } ! int maxDay = getActualMaximum(DAY_OF_MONTH); ! if (fields[DAY_OF_MONTH] > maxDay) ! fields[DAY_OF_MONTH] = maxDay; ! set(YEAR, fields[YEAR]); ! set(MONTH, fields[MONTH]); ! break; case DAY_OF_MONTH: case DAY_OF_YEAR: case DAY_OF_WEEK: ! if (! isTimeSet) ! computeTime(); ! time += amount * (24 * 60 * 60 * 1000L); ! areFieldsSet = false; ! break; case WEEK_OF_YEAR: case WEEK_OF_MONTH: case DAY_OF_WEEK_IN_MONTH: ! if (! isTimeSet) ! computeTime(); ! time += amount * (7 * 24 * 60 * 60 * 1000L); ! areFieldsSet = false; ! break; case AM_PM: ! if (! isTimeSet) ! computeTime(); ! time += amount * (12 * 60 * 60 * 1000L); ! areFieldsSet = false; ! break; case HOUR: case HOUR_OF_DAY: ! if (! isTimeSet) ! computeTime(); ! time += amount * (60 * 60 * 1000L); ! areFieldsSet = false; ! break; case MINUTE: ! if (! isTimeSet) ! computeTime(); ! time += amount * (60 * 1000L); ! areFieldsSet = false; ! break; case SECOND: ! if (! isTimeSet) ! computeTime(); ! time += amount * (1000L); ! areFieldsSet = false; ! break; case MILLISECOND: ! if (! isTimeSet) ! computeTime(); ! time += amount; ! areFieldsSet = false; ! break; case ZONE_OFFSET: case DST_OFFSET:default: ! throw new IllegalArgumentException("Invalid or unknown field"); } } *************** public class GregorianCalendar extends C *** 1044,1120 **** case ERA: case YEAR: case MONTH: ! // check that day of month is still in correct range ! if (fields[DAY_OF_MONTH] > getActualMaximum(DAY_OF_MONTH)) ! fields[DAY_OF_MONTH] = getActualMaximum(DAY_OF_MONTH); ! isTimeSet = false; ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_WEEK] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! isSet[WEEK_OF_YEAR] = false; ! break; case DAY_OF_MONTH: ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_WEEK] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! isSet[WEEK_OF_YEAR] = false; ! time += delta * (24 * 60 * 60 * 1000L); ! break; case WEEK_OF_MONTH: ! isSet[DAY_OF_MONTH] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! isSet[WEEK_OF_YEAR] = false; ! time += delta * (7 * 24 * 60 * 60 * 1000L); ! break; case DAY_OF_WEEK_IN_MONTH: ! isSet[DAY_OF_MONTH] = false; ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! isSet[WEEK_OF_YEAR] = false; ! time += delta * (7 * 24 * 60 * 60 * 1000L); ! break; case DAY_OF_YEAR: ! isSet[MONTH] = false; ! isSet[DAY_OF_MONTH] = false; ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_WEEK] = false; ! isSet[WEEK_OF_YEAR] = false; ! time += delta * (24 * 60 * 60 * 1000L); ! break; case WEEK_OF_YEAR: ! isSet[MONTH] = false; ! isSet[DAY_OF_MONTH] = false; ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! time += delta * (7 * 24 * 60 * 60 * 1000L); ! break; case AM_PM: ! isSet[HOUR_OF_DAY] = false; ! time += delta * (12 * 60 * 60 * 1000L); ! break; case HOUR: ! isSet[HOUR_OF_DAY] = false; ! time += delta * (60 * 60 * 1000L); ! break; case HOUR_OF_DAY: ! isSet[HOUR] = false; ! isSet[AM_PM] = false; ! time += delta * (60 * 60 * 1000L); ! break; case MINUTE: ! time += delta * (60 * 1000L); ! break; case SECOND: ! time += delta * (1000L); ! break; case MILLISECOND: ! time += delta; ! break; } } --- 1044,1120 ---- case ERA: case YEAR: case MONTH: ! // check that day of month is still in correct range ! if (fields[DAY_OF_MONTH] > getActualMaximum(DAY_OF_MONTH)) ! fields[DAY_OF_MONTH] = getActualMaximum(DAY_OF_MONTH); ! isTimeSet = false; ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_WEEK] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! isSet[WEEK_OF_YEAR] = false; ! break; case DAY_OF_MONTH: ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_WEEK] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! isSet[WEEK_OF_YEAR] = false; ! time += delta * (24 * 60 * 60 * 1000L); ! break; case WEEK_OF_MONTH: ! isSet[DAY_OF_MONTH] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! isSet[WEEK_OF_YEAR] = false; ! time += delta * (7 * 24 * 60 * 60 * 1000L); ! break; case DAY_OF_WEEK_IN_MONTH: ! isSet[DAY_OF_MONTH] = false; ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! isSet[WEEK_OF_YEAR] = false; ! time += delta * (7 * 24 * 60 * 60 * 1000L); ! break; case DAY_OF_YEAR: ! isSet[MONTH] = false; ! isSet[DAY_OF_MONTH] = false; ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_WEEK] = false; ! isSet[WEEK_OF_YEAR] = false; ! time += delta * (24 * 60 * 60 * 1000L); ! break; case WEEK_OF_YEAR: ! isSet[MONTH] = false; ! isSet[DAY_OF_MONTH] = false; ! isSet[WEEK_OF_MONTH] = false; ! isSet[DAY_OF_WEEK_IN_MONTH] = false; ! isSet[DAY_OF_YEAR] = false; ! time += delta * (7 * 24 * 60 * 60 * 1000L); ! break; case AM_PM: ! isSet[HOUR_OF_DAY] = false; ! time += delta * (12 * 60 * 60 * 1000L); ! break; case HOUR: ! isSet[HOUR_OF_DAY] = false; ! time += delta * (60 * 60 * 1000L); ! break; case HOUR_OF_DAY: ! isSet[HOUR] = false; ! isSet[AM_PM] = false; ! time += delta * (60 * 60 * 1000L); ! break; case MINUTE: ! time += delta * (60 * 1000L); ! break; case SECOND: ! time += delta * (1000L); ! break; case MILLISECOND: ! time += delta; ! break; } } *************** public class GregorianCalendar extends C *** 1141,1152 **** switch (field) { case DAY_OF_WEEK: ! // day of week is special: it rolls automatically ! add(field, amount); ! return; case ZONE_OFFSET: case DST_OFFSET: ! throw new IllegalArgumentException("Can't roll time zone"); } complete(); int min = getActualMinimum(field); --- 1141,1152 ---- switch (field) { case DAY_OF_WEEK: ! // day of week is special: it rolls automatically ! add(field, amount); ! return; case ZONE_OFFSET: case DST_OFFSET: ! throw new IllegalArgumentException("Can't roll time zone"); } complete(); int min = getActualMinimum(field); *************** public class GregorianCalendar extends C *** 1162,1168 **** /** * The minimum values for the calendar fields. */ ! private static final int[] minimums = { BC, 1, 0, 0, 1, 1, 1, SUNDAY, 1, AM, 1, 0, 0, 0, 0, -(12 * 60 * 60 * 1000), --- 1162,1168 ---- /** * The minimum values for the calendar fields. */ ! private static final int[] minimums = { BC, 1, 0, 0, 1, 1, 1, SUNDAY, 1, AM, 1, 0, 0, 0, 0, -(12 * 60 * 60 * 1000), *************** public class GregorianCalendar extends C *** 1172,1178 **** /** * The maximum values for the calendar fields. */ ! private static final int[] maximums = { AD, 5000000, 11, 53, 6, 31, 366, SATURDAY, 5, PM, 12, 23, 59, 59, 999, --- 1172,1178 ---- /** * The maximum values for the calendar fields. */ ! private static final int[] maximums = { AD, 5000000, 11, 53, 6, 31, 366, SATURDAY, 5, PM, 12, 23, 59, 59, 999, *************** public class GregorianCalendar extends C *** 1235,1250 **** switch (field) { case WEEK_OF_YEAR: ! return 52; case DAY_OF_MONTH: ! return 28; case DAY_OF_YEAR: ! return 365; case DAY_OF_WEEK_IN_MONTH: case WEEK_OF_MONTH: ! return 4; default: ! return maximums[field]; } } --- 1235,1250 ---- switch (field) { case WEEK_OF_YEAR: ! return 52; case DAY_OF_MONTH: ! return 28; case DAY_OF_YEAR: ! return 365; case DAY_OF_WEEK_IN_MONTH: case WEEK_OF_MONTH: ! return 4; default: ! return maximums[field]; } } *************** public class GregorianCalendar extends C *** 1263,1279 **** { if (field == WEEK_OF_YEAR) { ! int min = getMinimalDaysInFirstWeek(); ! if (min == 0) ! return 1; ! if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR]) ! complete(); ! int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR]; ! int weekday = getWeekDay(year, min); ! if ((7 + weekday - getFirstDayOfWeek()) % 7 >= min - 1) ! return 1; ! return 0; } return minimums[field]; } --- 1263,1279 ---- { if (field == WEEK_OF_YEAR) { ! int min = getMinimalDaysInFirstWeek(); ! if (min == 0) ! return 1; ! if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR]) ! complete(); ! int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR]; ! int weekday = getWeekDay(year, min); ! if ((7 + weekday - getFirstDayOfWeek()) % 7 >= min - 1) ! return 1; ! return 0; } return minimums[field]; } *************** public class GregorianCalendar extends C *** 1295,1365 **** { case WEEK_OF_YEAR: { ! if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR]) ! complete(); ! // This is wrong for the year that contains the gregorian change. ! // I.e it gives the weeks in the julian year or in the gregorian ! // year in that case. ! int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR]; ! int lastDay = isLeapYear(year) ? 366 : 365; ! int weekday = getWeekDay(year, lastDay); ! int week = (lastDay + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7; ! int minimalDays = getMinimalDaysInFirstWeek(); ! int firstWeekday = getWeekDay(year, minimalDays); ! /* ! * Is there a set of days at the beginning of the year, before the ! * first day of the week, equal to or greater than the minimum number ! * of days required in the first week? ! */ ! if (minimalDays - (7 + firstWeekday - getFirstDayOfWeek()) % 7 < 1) ! return week + 1; /* Add week 1: firstWeekday through to firstDayOfWeek */ } case DAY_OF_MONTH: { ! if (! areFieldsSet || ! isSet[MONTH]) ! complete(); ! int month = fields[MONTH]; ! // If you change this, you should also change ! // SimpleTimeZone.getDaysInMonth(); ! if (month == FEBRUARY) ! { ! if (! isSet[YEAR] || ! isSet[ERA]) ! complete(); ! int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR]; ! return isLeapYear(year) ? 29 : 28; ! } ! else if (month < AUGUST) ! return 31 - (month & 1); ! else ! return 30 + (month & 1); } case DAY_OF_YEAR: { ! if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR]) ! complete(); ! int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR]; ! return isLeapYear(year) ? 366 : 365; } case DAY_OF_WEEK_IN_MONTH: { ! // This is wrong for the month that contains the gregorian change. ! int daysInMonth = getActualMaximum(DAY_OF_MONTH); ! // That's black magic, I know ! return (daysInMonth - (fields[DAY_OF_MONTH] - 1) % 7 + 6) / 7; } case WEEK_OF_MONTH: { ! int daysInMonth = getActualMaximum(DAY_OF_MONTH); ! int weekday = (daysInMonth - fields[DAY_OF_MONTH] ! + fields[DAY_OF_WEEK] - SUNDAY) % 7 + SUNDAY; ! return (daysInMonth + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7; } default: ! return maximums[field]; } } } --- 1295,1365 ---- { case WEEK_OF_YEAR: { ! if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR]) ! complete(); ! // This is wrong for the year that contains the gregorian change. ! // I.e it gives the weeks in the julian year or in the gregorian ! // year in that case. ! int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR]; ! int lastDay = isLeapYear(year) ? 366 : 365; ! int weekday = getWeekDay(year, lastDay); ! int week = (lastDay + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7; ! int minimalDays = getMinimalDaysInFirstWeek(); ! int firstWeekday = getWeekDay(year, minimalDays); ! /* ! * Is there a set of days at the beginning of the year, before the ! * first day of the week, equal to or greater than the minimum number ! * of days required in the first week? ! */ ! if (minimalDays - (7 + firstWeekday - getFirstDayOfWeek()) % 7 < 1) ! return week + 1; /* Add week 1: firstWeekday through to firstDayOfWeek */ } case DAY_OF_MONTH: { ! if (! areFieldsSet || ! isSet[MONTH]) ! complete(); ! int month = fields[MONTH]; ! // If you change this, you should also change ! // SimpleTimeZone.getDaysInMonth(); ! if (month == FEBRUARY) ! { ! if (! isSet[YEAR] || ! isSet[ERA]) ! complete(); ! int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR]; ! return isLeapYear(year) ? 29 : 28; ! } ! else if (month < AUGUST) ! return 31 - (month & 1); ! else ! return 30 + (month & 1); } case DAY_OF_YEAR: { ! if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR]) ! complete(); ! int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR]; ! return isLeapYear(year) ? 366 : 365; } case DAY_OF_WEEK_IN_MONTH: { ! // This is wrong for the month that contains the gregorian change. ! int daysInMonth = getActualMaximum(DAY_OF_MONTH); ! // That's black magic, I know ! return (daysInMonth - (fields[DAY_OF_MONTH] - 1) % 7 + 6) / 7; } case WEEK_OF_MONTH: { ! int daysInMonth = getActualMaximum(DAY_OF_MONTH); ! int weekday = (daysInMonth - fields[DAY_OF_MONTH] ! + fields[DAY_OF_WEEK] - SUNDAY) % 7 + SUNDAY; ! return (daysInMonth + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7; } default: ! return maximums[field]; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/HashMap.java gcc-4.6.0/libjava/classpath/java/util/HashMap.java *** gcc-4.5.2/libjava/classpath/java/util/HashMap.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/HashMap.java Tue Jan 11 19:46:05 2011 *************** public class HashMap extends Abstr *** 349,355 **** if (equals(key, e.key)) { e.access(); // Must call this for bookkeeping in LinkedHashMap. ! V r = e.value; e.value = value; return r; } --- 349,355 ---- if (equals(key, e.key)) { e.access(); // Must call this for bookkeeping in LinkedHashMap. ! V r = e.value; e.value = value; return r; } *************** public class HashMap extends Abstr *** 384,395 **** final Iterator> it = addMap.entrySet().iterator(); while (it.hasNext()) { ! final Map.Entry e = it.next(); // Optimize in case the Entry is one of our own. if (e instanceof AbstractMap.SimpleEntry) { AbstractMap.SimpleEntry entry ! = (AbstractMap.SimpleEntry) e; put(entry.key, entry.value); } else --- 384,395 ---- final Iterator> it = addMap.entrySet().iterator(); while (it.hasNext()) { ! final Map.Entry e = it.next(); // Optimize in case the Entry is one of our own. if (e instanceof AbstractMap.SimpleEntry) { AbstractMap.SimpleEntry entry ! = (AbstractMap.SimpleEntry) e; put(entry.key, entry.value); } else *************** public class HashMap extends Abstr *** 702,709 **** } /** ! * A simplified, more efficient internal implementation of putAll(). clone() ! * should not call putAll or put, in order to be compatible with the JDK * implementation with respect to subclasses. * * @param m the map to initialize this from --- 702,709 ---- } /** ! * A simplified, more efficient internal implementation of putAll(). clone() ! * should not call putAll or put, in order to be compatible with the JDK * implementation with respect to subclasses. * * @param m the map to initialize this from *************** public class HashMap extends Abstr *** 715,725 **** size = 0; while (it.hasNext()) { ! final Map.Entry e = it.next(); size++; ! K key = e.getKey(); ! int idx = hash(key); ! addEntry(key, e.getValue(), idx, false); } } --- 715,725 ---- size = 0; while (it.hasNext()) { ! final Map.Entry e = it.next(); size++; ! K key = e.getKey(); ! int idx = hash(key); ! addEntry(key, e.getValue(), idx, false); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Hashtable.java gcc-4.6.0/libjava/classpath/java/util/Hashtable.java *** gcc-4.5.2/libjava/classpath/java/util/Hashtable.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/Hashtable.java Tue Jan 11 19:46:05 2011 *************** public class Hashtable extends Dic *** 345,351 **** } } ! return false; } /** --- 345,351 ---- } } ! return false; } /** *************** public class Hashtable extends Dic *** 362,368 **** */ public boolean containsValue(Object value) { ! // Delegate to older method to make sure code overriding it continues // to work. return contains(value); } --- 362,368 ---- */ public boolean containsValue(Object value) { ! // Delegate to older method to make sure code overriding it continues // to work. return contains(value); } *************** public class Hashtable extends Dic *** 511,522 **** final Iterator> it = addMap.entrySet().iterator(); while (it.hasNext()) { ! final Map.Entry e = it.next(); // Optimize in case the Entry is one of our own. if (e instanceof AbstractMap.SimpleEntry) { AbstractMap.SimpleEntry entry ! = (AbstractMap.SimpleEntry) e; put(entry.key, entry.value); } else --- 511,522 ---- final Iterator> it = addMap.entrySet().iterator(); while (it.hasNext()) { ! final Map.Entry e = it.next(); // Optimize in case the Entry is one of our own. if (e instanceof AbstractMap.SimpleEntry) { AbstractMap.SimpleEntry entry ! = (AbstractMap.SimpleEntry) e; put(entry.key, entry.value); } else *************** public class Hashtable extends Dic *** 850,857 **** } /** ! * A simplified, more efficient internal implementation of putAll(). clone() ! * should not call putAll or put, in order to be compatible with the JDK * implementation with respect to subclasses. * * @param m the map to initialize this from --- 850,857 ---- } /** ! * A simplified, more efficient internal implementation of putAll(). clone() ! * should not call putAll or put, in order to be compatible with the JDK * implementation with respect to subclasses. * * @param m the map to initialize this from *************** public class Hashtable extends Dic *** 863,875 **** size = 0; while (it.hasNext()) { ! final Map.Entry e = it.next(); size++; ! K key = e.getKey(); ! int idx = hash(key); ! HashEntry he = new HashEntry(key, e.getValue()); ! he.next = buckets[idx]; ! buckets[idx] = he; } } --- 863,875 ---- size = 0; while (it.hasNext()) { ! final Map.Entry e = it.next(); size++; ! K key = e.getKey(); ! int idx = hash(key); ! HashEntry he = new HashEntry(key, e.getValue()); ! he.next = buckets[idx]; ! buckets[idx] = he; } } *************** public class Hashtable extends Dic *** 991,997 **** * @author Jon Zeppieri * @author Fridjof Siebert */ ! private class EntryIterator implements Iterator> { /** --- 991,997 ---- * @author Jon Zeppieri * @author Fridjof Siebert */ ! private class EntryIterator implements Iterator> { /** *************** public class Hashtable extends Dic *** 1044,1053 **** HashEntry e = next; while (e == null) ! if (idx <= 0) ! return null; ! else ! e = buckets[--idx]; next = e.next; last = e; --- 1044,1053 ---- HashEntry e = next; while (e == null) ! if (idx <= 0) ! return null; ! else ! e = buckets[--idx]; next = e.next; last = e; *************** public class Hashtable extends Dic *** 1081,1087 **** * @author Fridtjof Siebert * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ ! private class KeyIterator implements Iterator { --- 1081,1087 ---- * @author Fridtjof Siebert * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ ! private class KeyIterator implements Iterator { *************** public class Hashtable extends Dic *** 1097,1103 **** */ KeyIterator() { ! iterator = new EntryIterator(); } --- 1097,1103 ---- */ KeyIterator() { ! iterator = new EntryIterator(); } *************** public class Hashtable extends Dic *** 1109,1115 **** */ public boolean hasNext() { ! return iterator.hasNext(); } /** --- 1109,1115 ---- */ public boolean hasNext() { ! return iterator.hasNext(); } /** *************** public class Hashtable extends Dic *** 1137,1143 **** iterator.remove(); } } // class KeyIterator ! /** * A class which implements the Iterator interface and is used for * iterating over values in Hashtables. This class uses an --- 1137,1143 ---- iterator.remove(); } } // class KeyIterator ! /** * A class which implements the Iterator interface and is used for * iterating over values in Hashtables. This class uses an *************** public class Hashtable extends Dic *** 1162,1168 **** */ ValueIterator() { ! iterator = new EntryIterator(); } --- 1162,1168 ---- */ ValueIterator() { ! iterator = new EntryIterator(); } *************** public class Hashtable extends Dic *** 1174,1180 **** */ public boolean hasNext() { ! return iterator.hasNext(); } /** --- 1174,1180 ---- */ public boolean hasNext() { ! return iterator.hasNext(); } /** *************** public class Hashtable extends Dic *** 1218,1224 **** * @author Jon Zeppieri * @author Fridjof Siebert */ ! private class EntryEnumerator implements Enumeration> { /** The number of elements remaining to be returned by next(). */ --- 1218,1224 ---- * @author Jon Zeppieri * @author Fridjof Siebert */ ! private class EntryEnumerator implements Enumeration> { /** The number of elements remaining to be returned by next(). */ *************** public class Hashtable extends Dic *** 1315,1321 **** */ public boolean hasMoreElements() { ! return enumerator.hasMoreElements(); } /** --- 1315,1321 ---- */ public boolean hasMoreElements() { ! return enumerator.hasMoreElements(); } /** *************** public class Hashtable extends Dic *** 1376,1382 **** */ public boolean hasMoreElements() { ! return enumerator.hasMoreElements(); } /** --- 1376,1382 ---- */ public boolean hasMoreElements() { ! return enumerator.hasMoreElements(); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/IdentityHashMap.java gcc-4.6.0/libjava/classpath/java/util/IdentityHashMap.java *** gcc-4.5.2/libjava/classpath/java/util/IdentityHashMap.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/IdentityHashMap.java Tue Jan 11 19:46:05 2011 *************** public class IdentityHashMap extend *** 789,798 **** key = table[loc]; } while (key == null); ! ! return (I) (type == KEYS ? unxform(key) ! : (type == VALUES ? unxform(table[loc + 1]) ! : new IdentityEntry(loc))); } /** --- 789,798 ---- key = table[loc]; } while (key == null); ! ! return (I) (type == KEYS ? unxform(key) ! : (type == VALUES ? unxform(table[loc + 1]) ! : new IdentityEntry(loc))); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/IllegalFormatCodePointException.java gcc-4.6.0/libjava/classpath/java/util/IllegalFormatCodePointException.java *** gcc-4.5.2/libjava/classpath/java/util/IllegalFormatCodePointException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/IllegalFormatCodePointException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,53 **** package java.util; ! /** * Thrown when a {@link Formatter} receives a character with an * invalid Unicode codepoint, as defined by * {@link Character#isValidCodePoint(int)}. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatCodePointException extends IllegalFormatException { private static final long serialVersionUID = 19080630L; --- 38,53 ---- package java.util; ! /** * Thrown when a {@link Formatter} receives a character with an * invalid Unicode codepoint, as defined by * {@link Character#isValidCodePoint(int)}. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatCodePointException extends IllegalFormatException { private static final long serialVersionUID = 19080630L; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/IllegalFormatConversionException.java gcc-4.6.0/libjava/classpath/java/util/IllegalFormatConversionException.java *** gcc-4.5.2/libjava/classpath/java/util/IllegalFormatConversionException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/IllegalFormatConversionException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,53 **** package java.util; ! /** * Thrown when the type of an argument supplied to the * {@link Formatter#format()} method of a {@link Formatter} * does not match the conversion character specified for it. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatConversionException extends IllegalFormatException { private static final long serialVersionUID = 17000126L; --- 38,53 ---- package java.util; ! /** * Thrown when the type of an argument supplied to the * {@link Formatter#format()} method of a {@link Formatter} * does not match the conversion character specified for it. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatConversionException extends IllegalFormatException { private static final long serialVersionUID = 17000126L; *************** public class IllegalFormatConversionExce *** 81,87 **** public IllegalFormatConversionException(char c, Class arg) { super("The type, " + arg + ", is invalid for the conversion character, " + ! c + "."); if (arg == null) throw new NullPointerException("The supplied type was null."); this.c = c; --- 81,87 ---- public IllegalFormatConversionException(char c, Class arg) { super("The type, " + arg + ", is invalid for the conversion character, " + ! c + "."); if (arg == null) throw new NullPointerException("The supplied type was null."); this.c = c; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/IllegalFormatException.java gcc-4.6.0/libjava/classpath/java/util/IllegalFormatException.java *** gcc-4.5.2/libjava/classpath/java/util/IllegalFormatException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/IllegalFormatException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package java.util; ! /** * A general exception thrown when a format string is supplied * to a {@link Formatter} that contains either invalid syntax * or a mismatch between the format specification and the --- 38,44 ---- package java.util; ! /** * A general exception thrown when a format string is supplied * to a {@link Formatter} that contains either invalid syntax * or a mismatch between the format specification and the *************** package java.util; *** 48,56 **** * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatException extends IllegalArgumentException { private static final long serialVersionUID = 18830826L; --- 48,56 ---- * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatException extends IllegalArgumentException { private static final long serialVersionUID = 18830826L; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/IllegalFormatFlagsException.java gcc-4.6.0/libjava/classpath/java/util/IllegalFormatFlagsException.java *** gcc-4.5.2/libjava/classpath/java/util/IllegalFormatFlagsException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/IllegalFormatFlagsException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,52 **** package java.util; ! /** * Thrown when the flags supplied to the {@link Formatter#format()} * method of a {@link Formatter} form an illegal combination. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatFlagsException extends IllegalFormatException { private static final long serialVersionUID = 790824L; --- 38,52 ---- package java.util; ! /** * Thrown when the flags supplied to the {@link Formatter#format()} * method of a {@link Formatter} form an illegal combination. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatFlagsException extends IllegalFormatException { private static final long serialVersionUID = 790824L; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/IllegalFormatPrecisionException.java gcc-4.6.0/libjava/classpath/java/util/IllegalFormatPrecisionException.java *** gcc-4.5.2/libjava/classpath/java/util/IllegalFormatPrecisionException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/IllegalFormatPrecisionException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package java.util; ! /** * Thrown when the specified precision for a {@link Formatter} * argument is illegal. This may be because the number is * a negative number (other than -1), the argument does not --- 38,44 ---- package java.util; ! /** * Thrown when the specified precision for a {@link Formatter} * argument is illegal. This may be because the number is * a negative number (other than -1), the argument does not *************** package java.util; *** 46,54 **** * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatPrecisionException extends IllegalFormatException { private static final long serialVersionUID = 18711008L; --- 46,54 ---- * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatPrecisionException extends IllegalFormatException { private static final long serialVersionUID = 18711008L; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/IllegalFormatWidthException.java gcc-4.6.0/libjava/classpath/java/util/IllegalFormatWidthException.java *** gcc-4.5.2/libjava/classpath/java/util/IllegalFormatWidthException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/IllegalFormatWidthException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,53 **** package java.util; ! /** * Thrown when the specified width for a {@link Formatter} * argument is illegal. This may be because the number is * a negative number (other than -1) or for some other reason. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatWidthException extends IllegalFormatException { private static final long serialVersionUID = 16660902L; --- 38,53 ---- package java.util; ! /** * Thrown when the specified width for a {@link Formatter} * argument is illegal. This may be because the number is * a negative number (other than -1) or for some other reason. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class IllegalFormatWidthException extends IllegalFormatException { private static final long serialVersionUID = 16660902L; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/InputMismatchException.java gcc-4.6.0/libjava/classpath/java/util/InputMismatchException.java *** gcc-4.5.2/libjava/classpath/java/util/InputMismatchException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/InputMismatchException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package java.util; ! /** * Thrown when a {@link Scanner} instance encounters a mismatch * between the input data and the pattern it is trying to match it * against. This could be because the input data represents an --- 38,44 ---- package java.util; ! /** * Thrown when a {@link Scanner} instance encounters a mismatch * between the input data and the pattern it is trying to match it * against. This could be because the input data represents an *************** package java.util; *** 47,55 **** * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class InputMismatchException extends NoSuchElementException { /** --- 47,55 ---- * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class InputMismatchException extends NoSuchElementException { /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/LinkedHashMap.java gcc-4.6.0/libjava/classpath/java/util/LinkedHashMap.java *** gcc-4.5.2/libjava/classpath/java/util/LinkedHashMap.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/LinkedHashMap.java Tue Jan 11 19:46:05 2011 *************** package java.util; *** 76,84 **** * things like keep the map at a fixed size. *

                            * ! * Under ideal circumstances (no collisions), LinkedHashMap offers O(1) * performance on most operations (containsValue() is, ! * of course, O(n)). In the worst case (all keys map to the same * hash code -- very unlikely), most operations are O(n). Traversal is * faster than in HashMap (proportional to the map size, and not the space * allocated for the map), but other operations may be slower because of the --- 76,84 ---- * things like keep the map at a fixed size. *

                            * ! * Under ideal circumstances (no collisions), LinkedHashMap offers O(1) * performance on most operations (containsValue() is, ! * of course, O(n)). In the worst case (all keys map to the same * hash code -- very unlikely), most operations are O(n). Traversal is * faster than in HashMap (proportional to the map size, and not the space * allocated for the map), but other operations may be slower because of the *************** public class LinkedHashMap extends *** 188,194 **** succ = null; pred = root.pred; pred.succ = this; ! root.pred = this; } } } --- 188,194 ---- succ = null; pred = root.pred; pred.succ = this; ! root.pred = this; } } } *************** public class LinkedHashMap extends *** 477,483 **** current = current.succ; return type == VALUES ? last.value : type == KEYS ? last.key : last; } ! /** * Removes from the backing HashMap the last element which was fetched * with the next() method. --- 477,483 ---- current = current.succ; return type == VALUES ? last.value : type == KEYS ? last.key : last; } ! /** * Removes from the backing HashMap the last element which was fetched * with the next() method. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/LinkedHashSet.java gcc-4.6.0/libjava/classpath/java/util/LinkedHashSet.java *** gcc-4.5.2/libjava/classpath/java/util/LinkedHashSet.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/util/LinkedHashSet.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 62,68 **** * without needing the overhead of TreeSet. *

                            * ! * Under ideal circumstances (no collisions), LinkedHashSet offers O(1) * performance on most operations. In the worst case (all elements map * to the same hash code -- very unlikely), most operations are O(n). *

                            --- 62,68 ---- * without needing the overhead of TreeSet. *

                            * ! * Under ideal circumstances (no collisions), LinkedHashSet offers O(1) * performance on most operations. In the worst case (all elements map * to the same hash code -- very unlikely), most operations are O(n). *

                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/LinkedList.java gcc-4.6.0/libjava/classpath/java/util/LinkedList.java *** gcc-4.5.2/libjava/classpath/java/util/LinkedList.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/LinkedList.java Tue Jan 11 19:46:05 2011 *************** public class LinkedList extends Abstr *** 684,690 **** * Returns an Array whose component type is the runtime component type of * the passed-in Array. The returned Array is populated with all of the * elements in this LinkedList. If the passed-in Array is not large enough ! * to store all of the elements in this List, a new Array will be created * and returned; if the passed-in Array is larger than the size * of this List, then size() index will be set to null. * --- 684,690 ---- * Returns an Array whose component type is the runtime component type of * the passed-in Array. The returned Array is populated with all of the * elements in this LinkedList. If the passed-in Array is not large enough ! * to store all of the elements in this List, a new Array will be created * and returned; if the passed-in Array is larger than the size * of this List, then size() index will be set to null. * *************** public class LinkedList extends Abstr *** 1081,1088 **** if (next == null) throw new NoSuchElementException(); --position; ! lastReturned = next; ! next = lastReturned.previous; return lastReturned.data; } --- 1081,1088 ---- if (next == null) throw new NoSuchElementException(); --position; ! lastReturned = next; ! next = lastReturned.previous; return lastReturned.data; } *************** public class LinkedList extends Abstr *** 1101,1109 **** checkMod(); if (lastReturned == null) throw new IllegalStateException(); ! removeEntry(lastReturned); ! lastReturned = null; ! ++knownMod; } }; } --- 1101,1109 ---- checkMod(); if (lastReturned == null) throw new IllegalStateException(); ! removeEntry(lastReturned); ! lastReturned = null; ! ++knownMod; } }; } *************** public class LinkedList extends Abstr *** 1217,1223 **** { addFirst(value); } ! /** * Removes the first occurrence of the specified element * from the list, when traversing the list from head to --- 1217,1223 ---- { addFirst(value); } ! /** * Removes the first occurrence of the specified element * from the list, when traversing the list from head to *************** public class LinkedList extends Abstr *** 1247,1258 **** Entry e = last; while (e != null) { ! if (equals(o, e.data)) ! { ! removeEntry(e); ! return true; ! } ! e = e.previous; } return false; } --- 1247,1258 ---- Entry e = last; while (e != null) { ! if (equals(o, e.data)) ! { ! removeEntry(e); ! return true; ! } ! e = e.previous; } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/List.java gcc-4.6.0/libjava/classpath/java/util/List.java *** gcc-4.5.2/libjava/classpath/java/util/List.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/List.java Tue Jan 11 19:46:05 2011 *************** public interface List extends Collect *** 232,238 **** * Obtains a hash code for this list. In order to obey the general * contract of the hashCode method of class Object, this value is * calculated as follows: ! *

                            hashCode = 1;
                              Iterator i = list.iterator();
                              while (i.hasNext())
                            --- 232,238 ----
                                 * Obtains a hash code for this list. In order to obey the general
                                 * contract of the hashCode method of class Object, this value is
                                 * calculated as follows:
                            !    *
                              

                            hashCode = 1;
                              Iterator i = list.iterator();
                              while (i.hasNext())
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Locale.java gcc-4.6.0/libjava/classpath/java/util/Locale.java
                            *** gcc-4.5.2/libjava/classpath/java/util/Locale.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/Locale.java	Tue Jan 11 19:46:05 2011
                            *************** public final class Locale implements Ser
                            *** 215,221 ****
                                 * got called.
                                 */
                                private static transient HashMap localeMap;
                            !   
                                /**
                                 * The default locale. Except for during bootstrapping, this should never be
                                 * null. Note the logic in the main constructor, to detect when
                            --- 215,221 ----
                                 * got called.
                                 */
                                private static transient HashMap localeMap;
                            ! 
                                /**
                                 * The default locale. Except for during bootstrapping, this should never be
                                 * null. Note the logic in the main constructor, to detect when
                            *************** public final class Locale implements Ser
                            *** 249,260 ****
                                 *
                                 * @param language the language of the locale to retrieve.
                                 * @return the locale.
                            !    */ 
                                private static Locale getLocale(String language)
                                {
                                  return getLocale(language, "", "");
                                }
                            !   
                                /**
                                 * Retrieves the locale with the specified language and country
                                 * from the cache.
                            --- 249,260 ----
                                 *
                                 * @param language the language of the locale to retrieve.
                                 * @return the locale.
                            !    */
                                private static Locale getLocale(String language)
                                {
                                  return getLocale(language, "", "");
                                }
                            ! 
                                /**
                                 * Retrieves the locale with the specified language and country
                                 * from the cache.
                            *************** public final class Locale implements Ser
                            *** 262,273 ****
                                 * @param language the language of the locale to retrieve.
                                 * @param country the country of the locale to retrieve.
                                 * @return the locale.
                            !    */ 
                                private static Locale getLocale(String language, String country)
                                {
                                  return getLocale(language, country, "");
                                }
                            !   
                                /**
                                 * Retrieves the locale with the specified language, country
                                 * and variant from the cache.
                            --- 262,273 ----
                                 * @param language the language of the locale to retrieve.
                                 * @param country the country of the locale to retrieve.
                                 * @return the locale.
                            !    */
                                private static Locale getLocale(String language, String country)
                                {
                                  return getLocale(language, country, "");
                                }
                            ! 
                                /**
                                 * Retrieves the locale with the specified language, country
                                 * and variant from the cache.
                            *************** public final class Locale implements Ser
                            *** 276,282 ****
                                 * @param country the country of the locale to retrieve.
                                 * @param variant the variant of the locale to retrieve.
                                 * @return the locale.
                            !    */ 
                                private static Locale getLocale(String language, String country, String variant)
                                {
                                  if (localeMap == null)
                            --- 276,282 ----
                                 * @param country the country of the locale to retrieve.
                                 * @param variant the variant of the locale to retrieve.
                                 * @return the locale.
                            !    */
                                private static Locale getLocale(String language, String country, String variant)
                                {
                                  if (localeMap == null)
                            *************** public final class Locale implements Ser
                            *** 287,299 ****
                              
                                  if (locale == null)
                                    {
                            ! 	locale = new Locale(language, country, variant);
                            ! 	localeMap.put(name, locale);
                                    }
                              
                                  return locale;
                                }
                            !   
                                /**
                                 * Convert new iso639 codes to the old ones.
                                 *
                            --- 287,299 ----
                              
                                  if (locale == null)
                                    {
                            !         locale = new Locale(language, country, variant);
                            !         localeMap.put(name, locale);
                                    }
                              
                                  return locale;
                                }
                            ! 
                                /**
                                 * Convert new iso639 codes to the old ones.
                                 *
                            *************** public final class Locale implements Ser
                            *** 418,434 ****
                                          if (name.length() > 2)
                                            country = name.substring(3);
                              
                            ! 	    int index = country.indexOf("_");
                            ! 	    if (index > 0)
                            ! 	      {
                            ! 		variant = country.substring(index + 1);
                            ! 		country = country.substring(0, index - 1);
                            ! 	      }
                              
                                          availableLocales[i] = getLocale(language, country, variant);
                                        }
                                    }
                            !     
                                  return (Locale[]) availableLocales.clone();
                                }
                              
                            --- 418,434 ----
                                          if (name.length() > 2)
                                            country = name.substring(3);
                              
                            !             int index = country.indexOf("_");
                            !             if (index > 0)
                            !               {
                            !                 variant = country.substring(index + 1);
                            !                 country = country.substring(0, index - 1);
                            !               }
                              
                                          availableLocales[i] = getLocale(language, country, variant);
                                        }
                                    }
                            ! 
                                  return (Locale[]) availableLocales.clone();
                                }
                              
                            *************** public final class Locale implements Ser
                            *** 442,448 ****
                                {
                                  if (countryCache == null)
                                    {
                            ! 	countryCache = getISOStrings("territories");
                                    }
                              
                                  return (String[]) countryCache.clone();
                            --- 442,448 ----
                                {
                                  if (countryCache == null)
                                    {
                            !         countryCache = getISOStrings("territories");
                                    }
                              
                                  return (String[]) countryCache.clone();
                            *************** public final class Locale implements Ser
                            *** 458,464 ****
                                {
                                  if (languageCache == null)
                                    {
                            ! 	languageCache = getISOStrings("languages");
                                    }
                                  return (String[]) languageCache.clone();
                                }
                            --- 458,464 ----
                                {
                                  if (languageCache == null)
                                    {
                            !         languageCache = getISOStrings("languages");
                                    }
                                  return (String[]) languageCache.clone();
                                }
                            *************** public final class Locale implements Ser
                            *** 480,506 ****
                              
                                  while (e.hasMoreElements())
                                    {
                            ! 	String key = (String) e.nextElement();
                            ! 	
                            ! 	if (key.startsWith(tableName + "."))
                            ! 	  {
                            ! 	    String str = key.substring(tableName.length() + 1);
                              
                            ! 	    if (str.length() == 2
                            ! 		&& Character.isLetter(str.charAt(0))
                            ! 		&& Character.isLetter(str.charAt(1)))
                            ! 	      {
                            ! 		tempList.add(str);
                            ! 		++count;
                            ! 	      }
                            ! 	  }
                                    }
                              
                                  String[] strings = new String[count];
                            !     
                                  for (int a = 0; a < count; ++a)
                                    strings[a] = (String) tempList.get(a);
                            !     
                                  return strings;
                                }
                              
                            --- 480,506 ----
                              
                                  while (e.hasMoreElements())
                                    {
                            !         String key = (String) e.nextElement();
                              
                            !         if (key.startsWith(tableName + "."))
                            !           {
                            !             String str = key.substring(tableName.length() + 1);
                            ! 
                            !             if (str.length() == 2
                            !                 && Character.isLetter(str.charAt(0))
                            !                 && Character.isLetter(str.charAt(1)))
                            !               {
                            !                 tempList.add(str);
                            !                 ++count;
                            !               }
                            !           }
                                    }
                              
                                  String[] strings = new String[count];
                            ! 
                                  for (int a = 0; a < count; ++a)
                                    strings[a] = (String) tempList.get(a);
                            ! 
                                  return strings;
                                }
                              
                            *************** public final class Locale implements Ser
                            *** 687,693 ****
                                    return "";
                                  try
                                    {
                            ! 	ResourceBundle res =
                                        ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
                                                                 inLocale,
                                                                 ClassLoader.getSystemClassLoader());
                            --- 687,693 ----
                                    return "";
                                  try
                                    {
                            !         ResourceBundle res =
                                        ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
                                                                 inLocale,
                                                                 ClassLoader.getSystemClassLoader());
                            *************** public final class Locale implements Ser
                            *** 696,718 ****
                                    }
                                  catch (MissingResourceException e)
                                    {
                            ! 	/* This means runtime support for the locale
                            ! 	 * is not available, so we check providers. */
                                    }
                                  for (LocaleNameProvider p :
                            ! 	   ServiceLoader.load(LocaleNameProvider.class))
                                    {
                            ! 	for (Locale loc : p.getAvailableLocales())
                            ! 	  {
                            ! 	    if (loc.equals(inLocale))
                            ! 	      {
                            ! 		String locLang = p.getDisplayLanguage(language,
                            ! 						      inLocale);
                            ! 		if (locLang != null)
                            ! 		  return locLang;
                            ! 		break;
                            ! 	      }
                            ! 	  }
                                    }
                                  if (inLocale.equals(Locale.ROOT)) // Base case
                                    return language;
                            --- 696,718 ----
                                    }
                                  catch (MissingResourceException e)
                                    {
                            !         /* This means runtime support for the locale
                            !          * is not available, so we check providers. */
                                    }
                                  for (LocaleNameProvider p :
                            !            ServiceLoader.load(LocaleNameProvider.class))
                                    {
                            !         for (Locale loc : p.getAvailableLocales())
                            !           {
                            !             if (loc.equals(inLocale))
                            !               {
                            !                 String locLang = p.getDisplayLanguage(language,
                            !                                                       inLocale);
                            !                 if (locLang != null)
                            !                   return locLang;
                            !                 break;
                            !               }
                            !           }
                                    }
                                  if (inLocale.equals(Locale.ROOT)) // Base case
                                    return language;
                            *************** public final class Locale implements Ser
                            *** 770,797 ****
                                        ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
                                                                 inLocale,
                                                                 ClassLoader.getSystemClassLoader());
                            !     
                                      return res.getString("territories." + country);
                                    }
                                  catch (MissingResourceException e)
                                    {
                            ! 	/* This means runtime support for the locale
                            ! 	 * is not available, so we check providers. */
                                    }
                                  for (LocaleNameProvider p :
                            ! 	   ServiceLoader.load(LocaleNameProvider.class))
                                    {
                            ! 	for (Locale loc : p.getAvailableLocales())
                            ! 	  {
                            ! 	    if (loc.equals(inLocale))
                            ! 	      {
                            ! 		String locCountry = p.getDisplayCountry(country,
                            ! 							inLocale);
                            ! 		if (locCountry != null)
                            ! 		  return locCountry;
                            ! 		break;
                            ! 	      }
                            ! 	  }
                                    }
                                  if (inLocale.equals(Locale.ROOT)) // Base case
                                    return country;
                            --- 770,797 ----
                                        ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
                                                                 inLocale,
                                                                 ClassLoader.getSystemClassLoader());
                            ! 
                                      return res.getString("territories." + country);
                                    }
                                  catch (MissingResourceException e)
                                    {
                            !         /* This means runtime support for the locale
                            !          * is not available, so we check providers. */
                                    }
                                  for (LocaleNameProvider p :
                            !            ServiceLoader.load(LocaleNameProvider.class))
                                    {
                            !         for (Locale loc : p.getAvailableLocales())
                            !           {
                            !             if (loc.equals(inLocale))
                            !               {
                            !                 String locCountry = p.getDisplayCountry(country,
                            !                                                         inLocale);
                            !                 if (locCountry != null)
                            !                   return locCountry;
                            !                 break;
                            !               }
                            !           }
                                    }
                                  if (inLocale.equals(Locale.ROOT)) // Base case
                                    return country;
                            *************** public final class Locale implements Ser
                            *** 850,877 ****
                                        ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
                                                                 inLocale,
                                                                 ClassLoader.getSystemClassLoader());
                            !     
                                      return res.getString("variants." + variant);
                                    }
                                  catch (MissingResourceException e)
                                    {
                            ! 	/* This means runtime support for the locale
                            ! 	 * is not available, so we check providers. */
                                    }
                                  for (LocaleNameProvider p :
                            ! 	   ServiceLoader.load(LocaleNameProvider.class))
                                    {
                            ! 	for (Locale loc : p.getAvailableLocales())
                            ! 	  {
                            ! 	    if (loc.equals(inLocale))
                            ! 	      {
                            ! 		String locVar = p.getDisplayVariant(variant,
                            ! 						    inLocale);
                            ! 		if (locVar != null)
                            ! 		  return locVar;
                            ! 		break;
                            ! 	      }
                            ! 	  }
                                    }
                                  if (inLocale.equals(Locale.ROOT)) // Base case
                                    return country;
                            --- 850,877 ----
                                        ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
                                                                 inLocale,
                                                                 ClassLoader.getSystemClassLoader());
                            ! 
                                      return res.getString("variants." + variant);
                                    }
                                  catch (MissingResourceException e)
                                    {
                            !         /* This means runtime support for the locale
                            !          * is not available, so we check providers. */
                                    }
                                  for (LocaleNameProvider p :
                            !            ServiceLoader.load(LocaleNameProvider.class))
                                    {
                            !         for (Locale loc : p.getAvailableLocales())
                            !           {
                            !             if (loc.equals(inLocale))
                            !               {
                            !                 String locVar = p.getDisplayVariant(variant,
                            !                                                     inLocale);
                            !                 if (locVar != null)
                            !                   return locVar;
                            !                 break;
                            !               }
                            !           }
                                    }
                                  if (inLocale.equals(Locale.ROOT)) // Base case
                                    return country;
                            *************** public final class Locale implements Ser
                            *** 989,996 ****
                                    return false;
                                  Locale l = (Locale) obj;
                              
                            !     return (language == l.language 
                            !             && country == l.country 
                                          && variant == l.variant);
                                }
                              
                            --- 989,996 ----
                                    return false;
                                  Locale l = (Locale) obj;
                              
                            !     return (language == l.language
                            !             && country == l.country
                                          && variant == l.variant);
                                }
                              
                            *************** public final class Locale implements Ser
                            *** 1000,1007 ****
                                 * @param s the stream to write to
                                 * @throws IOException if the write fails
                                 * @serialData The first three fields are Strings representing language,
                            !    *             country, and variant. The fourth field is a placeholder for 
                            !    *             the cached hashcode, but this is always written as -1, and 
                                 *             recomputed when reading it back.
                                 */
                                private void writeObject(ObjectOutputStream s)
                            --- 1000,1007 ----
                                 * @param s the stream to write to
                                 * @throws IOException if the write fails
                                 * @serialData The first three fields are Strings representing language,
                            !    *             country, and variant. The fourth field is a placeholder for
                            !    *             the cached hashcode, but this is always written as -1, and
                                 *             recomputed when reading it back.
                                 */
                                private void writeObject(ObjectOutputStream s)
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Map.java gcc-4.6.0/libjava/classpath/java/util/Map.java
                            *** gcc-4.5.2/libjava/classpath/java/util/Map.java	Tue Jan  9 19:58:05 2007
                            --- gcc-4.6.0/libjava/classpath/java/util/Map.java	Tue Jan 11 19:46:05 2011
                            *************** public interface Map
                            *** 310,316 ****
                                   * Returns the hash code of the entry.  This is defined as the
                                   * exclusive-or of the hashcodes of the key and value (using 0 for
                                   * null). In other words, this must be:
                            !      * 
                              

                            (getKey() == null ? 0 : getKey().hashCode())
                              ^ (getValue() == null ? 0 : getValue().hashCode())
                            * --- 310,316 ---- * Returns the hash code of the entry. This is defined as the * exclusive-or of the hashcodes of the key and value (using 0 for * null). In other words, this must be: ! *

                            (getKey() == null ? 0 : getKey().hashCode())
                              ^ (getValue() == null ? 0 : getValue().hashCode())
                            * *************** public interface Map *** 322,328 **** * Compares the specified object with this entry. Returns true only if * the object is a mapping of identical key and value. In other words, * this must be: ! *

                            (o instanceof Map.Entry)
                              && (getKey() == null ? ((Map.Entry) o).getKey() == null
                                                   : getKey().equals(((Map.Entry) o).getKey()))
                            --- 322,328 ----
                                   * Compares the specified object with this entry. Returns true only if
                                   * the object is a mapping of identical key and value. In other words,
                                   * this must be:
                            !      *
                              

                            (o instanceof Map.Entry)
                              && (getKey() == null ? ((Map.Entry) o).getKey() == null
                                                   : getKey().equals(((Map.Entry) o).getKey()))
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/MissingFormatArgumentException.java gcc-4.6.0/libjava/classpath/java/util/MissingFormatArgumentException.java
                            *** gcc-4.5.2/libjava/classpath/java/util/MissingFormatArgumentException.java	Mon Aug 14 23:12:35 2006
                            --- gcc-4.6.0/libjava/classpath/java/util/MissingFormatArgumentException.java	Tue Jan 11 19:46:05 2011
                            *************** exception statement from your version. *
                            *** 38,53 ****
                              
                              package java.util;
                              
                            ! /** 
                               * Thrown when the a format specification for a {@link Formatter}
                               * refers to an argument that is non-existent, or an argument index
                               * references a non-existent argument.
                               *
                               * @author Tom Tromey (tromey@redhat.com)
                               * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
                            !  * @since 1.5 
                               */
                            ! public class MissingFormatArgumentException 
                                extends IllegalFormatException
                              {
                                private static final long serialVersionUID = 19190115L;
                            --- 38,53 ----
                              
                              package java.util;
                              
                            ! /**
                               * Thrown when the a format specification for a {@link Formatter}
                               * refers to an argument that is non-existent, or an argument index
                               * references a non-existent argument.
                               *
                               * @author Tom Tromey (tromey@redhat.com)
                               * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
                            !  * @since 1.5
                               */
                            ! public class MissingFormatArgumentException
                                extends IllegalFormatException
                              {
                                private static final long serialVersionUID = 19190115L;
                            *************** public class MissingFormatArgumentExcept
                            *** 71,78 ****
                                 */
                                public MissingFormatArgumentException(String s)
                                {
                            !     super("The specification, " + s + 
                            ! 	  ", refers to a non-existent argument.");
                                  if (s == null)
                                    throw new NullPointerException("The specification is null.");
                                  this.s = s;
                            --- 71,78 ----
                                 */
                                public MissingFormatArgumentException(String s)
                                {
                            !     super("The specification, " + s +
                            !           ", refers to a non-existent argument.");
                                  if (s == null)
                                    throw new NullPointerException("The specification is null.");
                                  this.s = s;
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/MissingFormatWidthException.java gcc-4.6.0/libjava/classpath/java/util/MissingFormatWidthException.java
                            *** gcc-4.5.2/libjava/classpath/java/util/MissingFormatWidthException.java	Mon Aug 14 23:12:35 2006
                            --- gcc-4.6.0/libjava/classpath/java/util/MissingFormatWidthException.java	Tue Jan 11 19:46:05 2011
                            *************** exception statement from your version. *
                            *** 38,52 ****
                              
                              package java.util;
                              
                            ! /** 
                               * Thrown when the a format specification for a {@link Formatter}
                               * does not include a width for a value where one is required.
                               *
                               * @author Tom Tromey (tromey@redhat.com)
                               * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
                            !  * @since 1.5 
                               */
                            ! public class MissingFormatWidthException 
                                extends IllegalFormatException
                              {
                                private static final long serialVersionUID = 15560123L;
                            --- 38,52 ----
                              
                              package java.util;
                              
                            ! /**
                               * Thrown when the a format specification for a {@link Formatter}
                               * does not include a width for a value where one is required.
                               *
                               * @author Tom Tromey (tromey@redhat.com)
                               * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
                            !  * @since 1.5
                               */
                            ! public class MissingFormatWidthException
                                extends IllegalFormatException
                              {
                                private static final long serialVersionUID = 15560123L;
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/PriorityQueue.java gcc-4.6.0/libjava/classpath/java/util/PriorityQueue.java
                            *** gcc-4.5.2/libjava/classpath/java/util/PriorityQueue.java	Sun Jun  3 23:18:43 2007
                            --- gcc-4.6.0/libjava/classpath/java/util/PriorityQueue.java	Tue Jan 11 19:46:05 2011
                            *************** public class PriorityQueue extends Ab
                            *** 79,101 ****
                                  // Special case where we can find the comparator to use.
                                  if (c instanceof SortedSet)
                                    {
                            ! 	SortedSet ss = (SortedSet) c;
                            ! 	this.comparator = (Comparator) ss.comparator();
                            ! 	// We can insert the elements directly, since they are sorted.
                            ! 	int i = 0;
                            ! 	for (E val : ss)
                            ! 	  {
                            ! 	    if (val == null)
                            ! 	      throw new NullPointerException();
                            ! 	    storage[i++] = val;
                            ! 	  }
                                    }
                                  else if (c instanceof PriorityQueue)
                                    {
                            ! 	PriorityQueue pq = (PriorityQueue) c;
                            ! 	this.comparator = (Comparator)pq.comparator();
                            ! 	// We can just copy the contents.
                            ! 	System.arraycopy(pq.storage, 0, storage, 0, pq.storage.length);
                                    }
                              
                                  addAll(c);
                            --- 79,101 ----
                                  // Special case where we can find the comparator to use.
                                  if (c instanceof SortedSet)
                                    {
                            !         SortedSet ss = (SortedSet) c;
                            !         this.comparator = (Comparator) ss.comparator();
                            !         // We can insert the elements directly, since they are sorted.
                            !         int i = 0;
                            !         for (E val : ss)
                            !           {
                            !             if (val == null)
                            !               throw new NullPointerException();
                            !             storage[i++] = val;
                            !           }
                                    }
                                  else if (c instanceof PriorityQueue)
                                    {
                            !         PriorityQueue pq = (PriorityQueue) c;
                            !         this.comparator = (Comparator)pq.comparator();
                            !         // We can just copy the contents.
                            !         System.arraycopy(pq.storage, 0, storage, 0, pq.storage.length);
                                    }
                              
                                  addAll(c);
                            *************** public class PriorityQueue extends Ab
                            *** 109,115 ****
                                public PriorityQueue(int cap, Comparator comp)
                                {
                                  if (cap < 1)
                            !       throw new IllegalArgumentException();      
                                  this.used = 0;
                                  this.storage = (E[]) new Object[cap];
                                  this.comparator = comp;
                            --- 109,115 ----
                                public PriorityQueue(int cap, Comparator comp)
                                {
                                  if (cap < 1)
                            !       throw new IllegalArgumentException();
                                  this.used = 0;
                                  this.storage = (E[]) new Object[cap];
                                  this.comparator = comp;
                            *************** public class PriorityQueue extends Ab
                            *** 118,124 ****
                                public PriorityQueue(PriorityQueue c)
                                {
                                  this(Math.max(1, (int) (1.1 * c.size())),
                            ! 	 (Comparator)c.comparator());
                                  // We can just copy the contents.
                                  System.arraycopy(c.storage, 0, storage, 0, c.storage.length);
                                }
                            --- 118,124 ----
                                public PriorityQueue(PriorityQueue c)
                                {
                                  this(Math.max(1, (int) (1.1 * c.size())),
                            !          (Comparator)c.comparator());
                                  // We can just copy the contents.
                                  System.arraycopy(c.storage, 0, storage, 0, c.storage.length);
                                }
                            *************** public class PriorityQueue extends Ab
                            *** 126,139 ****
                                public PriorityQueue(SortedSet c)
                                {
                                  this(Math.max(1, (int) (1.1 * c.size())),
                            ! 	 (Comparator)c.comparator());
                                  // We can insert the elements directly, since they are sorted.
                                  int i = 0;
                                  for (E val : c)
                                    {
                            ! 	if (val == null)
                            ! 	  throw new NullPointerException();
                            ! 	storage[i++] = val;
                                    }
                                }
                              
                            --- 126,139 ----
                                public PriorityQueue(SortedSet c)
                                {
                                  this(Math.max(1, (int) (1.1 * c.size())),
                            !          (Comparator)c.comparator());
                                  // We can insert the elements directly, since they are sorted.
                                  int i = 0;
                                  for (E val : c)
                                    {
                            !         if (val == null)
                            !           throw new NullPointerException();
                            !         storage[i++] = val;
                                    }
                                }
                              
                            *************** public class PriorityQueue extends Ab
                            *** 157,178 ****
                              
                                    public boolean hasNext()
                                    {
                            ! 	return count < used;
                                    }
                              
                                    public E next()
                                    {
                            ! 	while (storage[++index] == null)
                            ! 	  ;
                            !         
                            ! 	++count;
                            ! 	return storage[index];
                                    }
                              
                                    public void remove()
                                    {
                            ! 	PriorityQueue.this.remove(index);
                            ! 	index--;
                                    }
                                  };
                                }
                            --- 157,178 ----
                              
                                    public boolean hasNext()
                                    {
                            !         return count < used;
                                    }
                              
                                    public E next()
                                    {
                            !         while (storage[++index] == null)
                            !           ;
                            ! 
                            !         ++count;
                            !         return storage[index];
                                    }
                              
                                    public void remove()
                                    {
                            !         PriorityQueue.this.remove(index);
                            !         index--;
                                    }
                                  };
                                }
                            *************** public class PriorityQueue extends Ab
                            *** 209,222 ****
                                {
                                  if (o != null)
                                    {
                            ! 	for (int i = 0; i < storage.length; ++i)
                            ! 	  {
                            ! 	    if (o.equals(storage[i]))
                            ! 	      {
                            ! 		remove(i);
                            ! 		return true;
                            ! 	      }
                            ! 	  }
                                    }
                                  return false;
                                }
                            --- 209,222 ----
                                {
                                  if (o != null)
                                    {
                            !         for (int i = 0; i < storage.length; ++i)
                            !           {
                            !             if (o.equals(storage[i]))
                            !               {
                            !                 remove(i);
                            !                 return true;
                            !               }
                            !           }
                                    }
                                  return false;
                                }
                            *************** public class PriorityQueue extends Ab
                            *** 237,248 ****
                                  int save = used;
                                  for (E val : c)
                                    {
                            ! 	if (val == null)
                            ! 	  throw new NullPointerException();
                            ! 	newSlot = findSlot(newSlot);
                            ! 	storage[newSlot] = val;
                            ! 	++used;
                            ! 	bubbleUp(newSlot);
                                    }
                              
                                  return save != used;
                            --- 237,248 ----
                                  int save = used;
                                  for (E val : c)
                                    {
                            !         if (val == null)
                            !           throw new NullPointerException();
                            !         newSlot = findSlot(newSlot);
                            !         storage[newSlot] = val;
                            !         ++used;
                            !         bubbleUp(newSlot);
                                    }
                              
                                  return save != used;
                            *************** public class PriorityQueue extends Ab
                            *** 253,269 ****
                                  int slot;
                                  if (used == storage.length)
                                    {
                            ! 	resize();
                            ! 	slot = used;
                                    }
                                  else
                                    {
                            ! 	for (slot = start + 1; slot < storage.length; ++slot)
                            ! 	  {
                            ! 	    if (storage[slot] == null)
                            ! 	      break;
                            ! 	  }
                            ! 	// We'll always find a slot.
                                    }
                                  return slot;
                                }
                            --- 253,269 ----
                                  int slot;
                                  if (used == storage.length)
                                    {
                            !         resize();
                            !         slot = used;
                                    }
                                  else
                                    {
                            !         for (slot = start + 1; slot < storage.length; ++slot)
                            !           {
                            !             if (storage[slot] == null)
                            !               break;
                            !           }
                            !         // We'll always find a slot.
                                    }
                                  return slot;
                                }
                            *************** public class PriorityQueue extends Ab
                            *** 275,302 ****
                                  // the bottom of the tree.
                                  while (storage[index] != null)
                                    {
                            ! 	int child = 2 * index + 1;
                              
                            ! 	// See if we went off the end.
                            ! 	if (child >= storage.length)
                            ! 	  {
                            ! 	    storage[index] = null;
                            ! 	    break;
                            ! 	  }
                              
                            ! 	// Find which child we want to promote.  If one is not null,
                            ! 	// we pick it.  If both are null, it doesn't matter, we're
                            ! 	// about to leave.  If neither is null, pick the lesser.
                            ! 	if (child + 1 >= storage.length || storage[child + 1] == null)
                            ! 	  {
                            ! 	    // Nothing.
                            ! 	  }
                            ! 	else if (storage[child] == null
                            ! 		 || (Collections.compare(storage[child], storage[child + 1],
                            ! 					 comparator) > 0))
                            ! 	  ++child;
                            ! 	storage[index] = storage[child];
                            ! 	index = child;
                                    }
                                  --used;
                                }
                            --- 275,302 ----
                                  // the bottom of the tree.
                                  while (storage[index] != null)
                                    {
                            !         int child = 2 * index + 1;
                              
                            !         // See if we went off the end.
                            !         if (child >= storage.length)
                            !           {
                            !             storage[index] = null;
                            !             break;
                            !           }
                              
                            !         // Find which child we want to promote.  If one is not null,
                            !         // we pick it.  If both are null, it doesn't matter, we're
                            !         // about to leave.  If neither is null, pick the lesser.
                            !         if (child + 1 >= storage.length || storage[child + 1] == null)
                            !           {
                            !             // Nothing.
                            !           }
                            !         else if (storage[child] == null
                            !                  || (Collections.compare(storage[child], storage[child + 1],
                            !                                          comparator) > 0))
                            !           ++child;
                            !         storage[index] = storage[child];
                            !         index = child;
                                    }
                                  --used;
                                }
                            *************** public class PriorityQueue extends Ab
                            *** 307,329 ****
                                  // it up the tree to its natural resting place.
                                  while (index > 0)
                                    {
                            ! 	// This works regardless of whether we're at 2N+1 or 2N+2.
                            ! 	int parent = (index - 1) / 2;
                            ! 	if (Collections.compare(storage[parent], storage[index], comparator)
                            ! 	    <= 0)
                            ! 	  {
                            ! 	    // Parent is the same or smaller than this element, so the
                            ! 	    // invariant is preserved.  Note that if the new element
                            ! 	    // is smaller than the parent, then it is necessarily
                            ! 	    // smaller than the parent's other child.
                            ! 	    break;
                            ! 	  }
                              
                            ! 	E temp = storage[index];
                            ! 	storage[index] = storage[parent];
                            ! 	storage[parent] = temp;
                              
                            ! 	index = parent;
                                    }
                                }
                              
                            --- 307,329 ----
                                  // it up the tree to its natural resting place.
                                  while (index > 0)
                                    {
                            !         // This works regardless of whether we're at 2N+1 or 2N+2.
                            !         int parent = (index - 1) / 2;
                            !         if (Collections.compare(storage[parent], storage[index], comparator)
                            !             <= 0)
                            !           {
                            !             // Parent is the same or smaller than this element, so the
                            !             // invariant is preserved.  Note that if the new element
                            !             // is smaller than the parent, then it is necessarily
                            !             // smaller than the parent's other child.
                            !             break;
                            !           }
                              
                            !         E temp = storage[index];
                            !         storage[index] = storage[parent];
                            !         storage[parent] = temp;
                              
                            !         index = parent;
                                    }
                                }
                              
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Properties.java gcc-4.6.0/libjava/classpath/java/util/Properties.java
                            *** gcc-4.5.2/libjava/classpath/java/util/Properties.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/Properties.java	Tue Jan 11 19:46:05 2011
                            *************** import org.w3c.dom.ls.LSSerializer;
                            *** 75,81 ****
                               * and put it in the CLASSPATH.  (The character
                               * \u00e4 is the german umlaut)
                               *
                            !  * 
                              
                            s1=3
                              s2=MeineDisk
                              s3=3. M\u00e4rz 96
                            --- 75,81 ----
                               * and put it in the CLASSPATH.  (The character
                               * \u00e4 is the german umlaut)
                               *
                            !  *
                              
                            s1=3
                              s2=MeineDisk
                              s3=3. M\u00e4rz 96
                            *************** public class Properties extends Hashtabl
                            *** 179,185 ****
                                 * \\uxxxx notation are detected, and
                                 * converted to the corresponding single character. 
                            * ! *
                            # This is a comment
                              key     = value
                              k\:5      \ a string starting with space and ending with newline\n
                            --- 179,185 ----
                                 * \\uxxxx notation are detected, and
                                 * converted to the corresponding single character. 
                            * ! *
                            # This is a comment
                              key     = value
                              k\:5      \ a string starting with space and ending with newline\n
                            *************** label   = Name:\\u0020
                            *** 204,224 **** { char c = 0; int pos = 0; ! // Leading whitespaces must be deleted first. while (pos < line.length() && Character.isWhitespace(c = line.charAt(pos))) pos++; // If empty line or begins with a comment character, skip this line. if ((line.length() - pos) == 0 ! || line.charAt(pos) == '#' || line.charAt(pos) == '!') continue; // The characters up to the next Whitespace, ':', or '=' // describe the key. But look for escape sequences. ! // Try to short-circuit when there is no escape char. ! int start = pos; ! boolean needsEscape = line.indexOf('\\', pos) != -1; CPStringBuilder key = needsEscape ? new CPStringBuilder() : null; while (pos < line.length() && ! Character.isWhitespace(c = line.charAt(pos++)) --- 204,224 ---- { char c = 0; int pos = 0; ! // Leading whitespaces must be deleted first. while (pos < line.length() && Character.isWhitespace(c = line.charAt(pos))) pos++; // If empty line or begins with a comment character, skip this line. if ((line.length() - pos) == 0 ! || line.charAt(pos) == '#' || line.charAt(pos) == '!') continue; // The characters up to the next Whitespace, ':', or '=' // describe the key. But look for escape sequences. ! // Try to short-circuit when there is no escape char. ! int start = pos; ! boolean needsEscape = line.indexOf('\\', pos) != -1; CPStringBuilder key = needsEscape ? new CPStringBuilder() : null; while (pos < line.length() && ! Character.isWhitespace(c = line.charAt(pos++)) *************** label = Name:\\u0020
                            *** 232,239 **** // is no next line, just treat it as a key with an // empty value. line = reader.readLine(); ! if (line == null) ! line = ""; pos = 0; while (pos < line.length() && Character.isWhitespace(c = line.charAt(pos))) --- 232,239 ---- // is no next line, just treat it as a key with an // empty value. line = reader.readLine(); ! if (line == null) ! line = ""; pos = 0; while (pos < line.length() && Character.isWhitespace(c = line.charAt(pos))) *************** label = Name:\\u0020
                            *** 274,286 **** boolean isDelim = (c == ':' || c == '='); ! String keyString; ! if (needsEscape) ! keyString = key.toString(); ! else if (isDelim || Character.isWhitespace(c)) ! keyString = line.substring(start, pos - 1); ! else ! keyString = line.substring(start, pos); while (pos < line.length() && Character.isWhitespace(c = line.charAt(pos))) --- 274,286 ---- boolean isDelim = (c == ':' || c == '='); ! String keyString; ! if (needsEscape) ! keyString = key.toString(); ! else if (isDelim || Character.isWhitespace(c)) ! keyString = line.substring(start, pos - 1); ! else ! keyString = line.substring(start, pos); while (pos < line.length() && Character.isWhitespace(c = line.charAt(pos))) *************** label = Name:\\u0020
                            *** 294,307 **** pos++; } ! // Short-circuit if no escape chars found. ! if (!needsEscape) ! { ! put(keyString, line.substring(pos)); ! continue; ! } ! // Escape char found so iterate through the rest of the line. StringBuilder element = new StringBuilder(line.length() - pos); while (pos < line.length()) { --- 294,307 ---- pos++; } ! // Short-circuit if no escape chars found. ! if (!needsEscape) ! { ! put(keyString, line.substring(pos)); ! continue; ! } ! // Escape char found so iterate through the rest of the line. StringBuilder element = new StringBuilder(line.length() - pos); while (pos < line.length()) { *************** label = Name:\\u0020
                            *** 313,323 **** // The line continues on the next line. line = reader.readLine(); ! // We might have seen a backslash at the end of ! // the file. The JDK ignores the backslash in ! // this case, so we follow for compatibility. ! if (line == null) ! break; pos = 0; while (pos < line.length() --- 313,323 ---- // The line continues on the next line. line = reader.readLine(); ! // We might have seen a backslash at the end of ! // the file. The JDK ignores the backslash in ! // this case, so we follow for compatibility. ! if (line == null) ! break; pos = 0; while (pos < line.length() *************** label = Name:\\u0020
                            *** 438,444 **** if (header != null) writer.println("#" + header); writer.println ("#" + Calendar.getInstance ().getTime ()); ! Iterator iter = entrySet ().iterator (); int i = size (); CPStringBuilder s = new CPStringBuilder (); // Reuse the same buffer. --- 438,444 ---- if (header != null) writer.println("#" + header); writer.println ("#" + Calendar.getInstance ().getTime ()); ! Iterator iter = entrySet ().iterator (); int i = size (); CPStringBuilder s = new CPStringBuilder (); // Reuse the same buffer. *************** label = Name:\\u0020
                            *** 528,534 **** } /** ! * Prints the key/value pairs to the given print stream. This is * mainly useful for debugging purposes. * * @param out the print stream, where the key/value pairs are written to --- 528,534 ---- } /** ! * Prints the key/value pairs to the given print stream. This is * mainly useful for debugging purposes. * * @param out the print stream, where the key/value pairs are written to *************** label = Name:\\u0020
                            *** 645,651 **** * Invoking this method provides the same behaviour as invoking * storeToXML(os, comment, "UTF-8"). *

                            ! * * @param os the stream to output to. * @param comment a comment to include at the top of the XML file, or * null if one is not required. --- 645,651 ---- * Invoking this method provides the same behaviour as invoking * storeToXML(os, comment, "UTF-8"). *

                            ! * * @param os the stream to output to. * @param comment a comment to include at the top of the XML file, or * null if one is not required. *************** label = Name:\\u0020 *** 666,672 **** * * http://java.sun.com/dtd/properties.dtd. *

                            ! * * @param os the stream to output to. * @param comment a comment to include at the top of the XML file, or * null if one is not required. --- 666,672 ---- * * http://java.sun.com/dtd/properties.dtd. *

                            ! * * @param os the stream to output to. * @param comment a comment to include at the top of the XML file, or * null if one is not required. *************** label = Name:\\u0020 *** 685,737 **** throw new NullPointerException("Null encoding supplied."); try { ! DOMImplementationRegistry registry = ! DOMImplementationRegistry.newInstance(); ! DOMImplementation domImpl = registry.getDOMImplementation("LS 3.0"); ! DocumentType doctype = ! domImpl.createDocumentType("properties", null, ! "http://java.sun.com/dtd/properties.dtd"); ! Document doc = domImpl.createDocument(null, "properties", doctype); ! Element root = doc.getDocumentElement(); ! if (comment != null) ! { ! Element commentElement = doc.createElement("comment"); ! commentElement.appendChild(doc.createTextNode(comment)); ! root.appendChild(commentElement); ! } ! Iterator iterator = entrySet().iterator(); ! while (iterator.hasNext()) ! { ! Map.Entry entry = (Map.Entry) iterator.next(); ! Element entryElement = doc.createElement("entry"); ! entryElement.setAttribute("key", (String) entry.getKey()); ! entryElement.appendChild(doc.createTextNode((String) ! entry.getValue())); ! root.appendChild(entryElement); ! } ! DOMImplementationLS loadAndSave = (DOMImplementationLS) domImpl; ! LSSerializer serializer = loadAndSave.createLSSerializer(); ! LSOutput output = loadAndSave.createLSOutput(); ! output.setByteStream(os); ! output.setEncoding(encoding); ! serializer.write(doc, output); } catch (ClassNotFoundException e) { ! throw (IOException) ! new IOException("The XML classes could not be found.").initCause(e); } catch (InstantiationException e) { ! throw (IOException) ! new IOException("The XML classes could not be instantiated.") ! .initCause(e); } catch (IllegalAccessException e) { ! throw (IOException) ! new IOException("The XML classes could not be accessed.") ! .initCause(e); } } --- 685,737 ---- throw new NullPointerException("Null encoding supplied."); try { ! DOMImplementationRegistry registry = ! DOMImplementationRegistry.newInstance(); ! DOMImplementation domImpl = registry.getDOMImplementation("LS 3.0"); ! DocumentType doctype = ! domImpl.createDocumentType("properties", null, ! "http://java.sun.com/dtd/properties.dtd"); ! Document doc = domImpl.createDocument(null, "properties", doctype); ! Element root = doc.getDocumentElement(); ! if (comment != null) ! { ! Element commentElement = doc.createElement("comment"); ! commentElement.appendChild(doc.createTextNode(comment)); ! root.appendChild(commentElement); ! } ! Iterator iterator = entrySet().iterator(); ! while (iterator.hasNext()) ! { ! Map.Entry entry = (Map.Entry) iterator.next(); ! Element entryElement = doc.createElement("entry"); ! entryElement.setAttribute("key", (String) entry.getKey()); ! entryElement.appendChild(doc.createTextNode((String) ! entry.getValue())); ! root.appendChild(entryElement); ! } ! DOMImplementationLS loadAndSave = (DOMImplementationLS) domImpl; ! LSSerializer serializer = loadAndSave.createLSSerializer(); ! LSOutput output = loadAndSave.createLSOutput(); ! output.setByteStream(os); ! output.setEncoding(encoding); ! serializer.write(doc, output); } catch (ClassNotFoundException e) { ! throw (IOException) ! new IOException("The XML classes could not be found.").initCause(e); } catch (InstantiationException e) { ! throw (IOException) ! new IOException("The XML classes could not be instantiated.") ! .initCause(e); } catch (IllegalAccessException e) { ! throw (IOException) ! new IOException("The XML classes could not be accessed.") ! .initCause(e); } } *************** label = Name:\\u0020 *** 813,821 **** } catch (XMLStreamException e) { ! throw (InvalidPropertiesFormatException) ! new InvalidPropertiesFormatException("Error in parsing XML."). ! initCause(e); } } --- 813,821 ---- } catch (XMLStreamException e) { ! throw (InvalidPropertiesFormatException) ! new InvalidPropertiesFormatException("Error in parsing XML."). ! initCause(e); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/PropertyPermission.java gcc-4.6.0/libjava/classpath/java/util/PropertyPermission.java *** gcc-4.5.2/libjava/classpath/java/util/PropertyPermission.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/PropertyPermission.java Tue Jan 11 19:46:05 2011 *************** public final class PropertyPermission ex *** 136,142 **** { // Initialising the class java.util.Locale ... // tries to initialise the Locale.defaultLocale static ! // which calls System.getProperty, // which calls SecurityManager.checkPropertiesAccess, // which creates a PropertyPermission with action "read,write", // which calls setActions("read,write"). --- 136,142 ---- { // Initialising the class java.util.Locale ... // tries to initialise the Locale.defaultLocale static ! // which calls System.getProperty, // which calls SecurityManager.checkPropertiesAccess, // which creates a PropertyPermission with action "read,write", // which calls setActions("read,write"). *************** public final class PropertyPermission ex *** 144,152 **** // this would call Locale.getDefault() which returns null // because Locale.defaultLocale hasn't been set yet // then toLowerCase will fail with a null pointer exception. ! // // The solution is to take a punt on 'str' being lower case, and ! // test accordingly. If that fails, we convert 'str' to lower case // and try the tests again. if ("read".equals(str)) actions = READ; --- 144,152 ---- // this would call Locale.getDefault() which returns null // because Locale.defaultLocale hasn't been set yet // then toLowerCase will fail with a null pointer exception. ! // // The solution is to take a punt on 'str' being lower case, and ! // test accordingly. If that fails, we convert 'str' to lower case // and try the tests again. if ("read".equals(str)) actions = READ; *************** public final class PropertyPermission ex *** 156,170 **** actions = READ | WRITE; else { ! String lstr = str.toLowerCase(); ! if ("read".equals(lstr)) ! actions = READ; ! else if ("write".equals(lstr)) ! actions = WRITE; ! else if ("read,write".equals(lstr) || "write,read".equals(lstr)) ! actions = READ | WRITE; ! else ! throw new IllegalArgumentException("illegal action " + str); } } --- 156,170 ---- actions = READ | WRITE; else { ! String lstr = str.toLowerCase(); ! if ("read".equals(lstr)) ! actions = READ; ! else if ("write".equals(lstr)) ! actions = WRITE; ! else if ("read,write".equals(lstr) || "write,read".equals(lstr)) ! actions = READ | WRITE; ! else ! throw new IllegalArgumentException("illegal action " + str); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/PropertyPermissionCollection.java gcc-4.6.0/libjava/classpath/java/util/PropertyPermissionCollection.java *** gcc-4.5.2/libjava/classpath/java/util/PropertyPermissionCollection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/PropertyPermissionCollection.java Tue Jan 11 19:46:05 2011 *************** class PropertyPermissionCollection exten *** 67,73 **** /** * A flag to detect if "*" is in the collection. * ! * @serial true if "*" is in the collection */ private boolean all_allowed; --- 67,73 ---- /** * A flag to detect if "*" is in the collection. * ! * @serial true if "*" is in the collection */ private boolean all_allowed; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Random.java gcc-4.6.0/libjava/classpath/java/util/Random.java *** gcc-4.5.2/libjava/classpath/java/util/Random.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/util/Random.java Tue Jan 11 19:46:05 2011 *************** public class Random implements Serializa *** 227,233 **** * an int value whose 32 bits are independent chosen random bits * (0 and 1 are equally likely). The implementation for * java.util.Random is: ! *
                            public int nextInt()
                              {
                                return next(32);
                            --- 227,233 ----
                                 * an int value whose 32 bits are independent chosen random bits
                                 * (0 and 1 are equally likely).  The implementation for
                                 * java.util.Random is:
                            !    *
                              
                            public int nextInt()
                              {
                                return next(32);
                            *************** public class Random implements Serializa
                            *** 246,252 ****
                                 * each value has the same likelihodd (1/n).
                                 * (0 and 1 are equally likely).  The implementation for
                                 * java.util.Random is:
                            !    * 
                              
                              public int nextInt(int n)
                              {
                            --- 246,252 ----
                                 * each value has the same likelihodd (1/n).
                                 * (0 and 1 are equally likely).  The implementation for
                                 * java.util.Random is:
                            !    *
                              
                              public int nextInt(int n)
                              {
                            *************** public int nextInt(int n)
                            *** 266,272 ****
                              
                                return val;
                              }
                            ! * *

                            This algorithm would return every value with exactly the same * probability, if the next()-method would be a perfect random number * generator. --- 266,272 ---- return val; }

                            ! * *

                            This algorithm would return every value with exactly the same * probability, if the next()-method would be a perfect random number * generator. *************** public int nextInt(int n) *** 323,329 **** /** * Generates the next pseudorandom boolean. True and false have * the same probability. The implementation is: ! *

                            public boolean nextBoolean()
                              {
                                return next(1) != 0;
                            --- 323,329 ----
                                /**
                                 * Generates the next pseudorandom boolean.  True and false have
                                 * the same probability.  The implementation is:
                            !    *
                              
                            public boolean nextBoolean()
                              {
                                return next(1) != 0;
                            *************** public int nextInt(int n)
                            *** 341,347 ****
                                 * Generates the next pseudorandom float uniformly distributed
                                 * between 0.0f (inclusive) and 1.0f (exclusive).  The
                                 * implementation is as follows.
                            !    * 
                              
                            public float nextFloat()
                              {
                                return next(24) / ((float)(1 << 24));
                            --- 341,347 ----
                                 * Generates the next pseudorandom float uniformly distributed
                                 * between 0.0f (inclusive) and 1.0f (exclusive).  The
                                 * implementation is as follows.
                            !    *
                              
                            public float nextFloat()
                              {
                                return next(24) / ((float)(1 << 24));
                            *************** public int nextInt(int n)
                            *** 375,381 ****
                                 * Generates the next pseudorandom, Gaussian (normally) distributed
                                 * double value, with mean 0.0 and standard deviation 1.0.
                                 * The algorithm is as follows.
                            !    * 
                              
                            public synchronized double nextGaussian()
                              {
                                if (haveNextNextGaussian)
                            --- 375,381 ----
                                 * Generates the next pseudorandom, Gaussian (normally) distributed
                                 * double value, with mean 0.0 and standard deviation 1.0.
                                 * The algorithm is as follows.
                            !    *
                              
                            public synchronized double nextGaussian()
                              {
                                if (haveNextNextGaussian)
                            diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/ResourceBundle.java gcc-4.6.0/libjava/classpath/java/util/ResourceBundle.java
                            *** gcc-4.5.2/libjava/classpath/java/util/ResourceBundle.java	Tue Oct 21 17:55:01 2008
                            --- gcc-4.6.0/libjava/classpath/java/util/ResourceBundle.java	Tue Jan 11 19:46:05 2011
                            *************** public abstract class ResourceBundle
                            *** 95,101 ****
                                /**
                                 * Maximum size of our cache of ResourceBundles keyed by
                                 * {@link BundleKey} instances.
                            !    * 
                                 * @see BundleKey
                                 */
                                private static final int CACHE_SIZE = 100;
                            --- 95,101 ----
                                /**
                                 * Maximum size of our cache of ResourceBundles keyed by
                                 * {@link BundleKey} instances.
                            !    *
                                 * @see BundleKey
                                 */
                                private static final int CACHE_SIZE = 100;
                            *************** public abstract class ResourceBundle
                            *** 120,126 ****
                                 * {@link #CACHE_SIZE} accessed ResourceBundles keyed by the
                                 * tuple: default locale, resource-bundle name, resource-bundle locale, and
                                 * classloader.
                            !    * 
                                 * @see BundleKey
                                 */
                                private static Map bundleCache =
                            --- 120,126 ----
                                 * {@link #CACHE_SIZE} accessed ResourceBundles keyed by the
                                 * tuple: default locale, resource-bundle name, resource-bundle locale, and
                                 * classloader.
                            !    *
                                 * @see BundleKey
                                 */
                                private static Map bundleCache =
                            *************** public abstract class ResourceBundle
                            *** 188,195 ****
                              
                                  String className = getClass().getName();
                                  throw new MissingResourceException("Key '" + key
                            ! 				       + "'not found in Bundle: "
                            ! 				       + className, className, key);
                                }
                              
                                /**
                            --- 188,195 ----
                              
                                  String className = getClass().getName();
                                  throw new MissingResourceException("Key '" + key
                            !                                        + "'not found in Bundle: "
                            !                                        + className, className, key);
                                }
                              
                                /**
                            *************** public abstract class ResourceBundle
                            *** 270,276 ****
                                  {
                                    set(dl, s, l, cl);
                                  }
                            !     
                                  void set(Locale dl, String s, Locale l, ClassLoader cl)
                                  {
                                    defaultLocale = dl;
                            --- 270,276 ----
                                  {
                                    set(dl, s, l, cl);
                                  }
                            ! 
                                  void set(Locale dl, String s, Locale l, ClassLoader cl)
                                  {
                                    defaultLocale = dl;
                            *************** public abstract class ResourceBundle
                            *** 280,291 ****
                                    hashcode = defaultLocale.hashCode() ^ baseName.hashCode()
                                        ^ locale.hashCode() ^ classLoader.hashCode();
                                  }
                            !     
                                  public int hashCode()
                                  {
                                    return hashcode;
                                  }
                            !     
                                  public boolean equals(Object o)
                                  {
                                    if (! (o instanceof BundleKey))
                            --- 280,291 ----
                                    hashcode = defaultLocale.hashCode() ^ baseName.hashCode()
                                        ^ locale.hashCode() ^ classLoader.hashCode();
                                  }
                            ! 
                                  public int hashCode()
                                  {
                                    return hashcode;
                                  }
                            ! 
                                  public boolean equals(Object o)
                                  {
                                    if (! (o instanceof BundleKey))
                            *************** public abstract class ResourceBundle
                            *** 296,302 ****
                                        && baseName.equals(key.baseName)
                                        && locale.equals(key.locale)
                                        && classLoader.equals(key.classLoader);
                            !     }    
                              
                                  public String toString()
                                  {
                            --- 296,302 ----
                                        && baseName.equals(key.baseName)
                                        && locale.equals(key.locale)
                                        && classLoader.equals(key.classLoader);
                            !     }
                              
                                  public String toString()
                                  {
                            *************** public abstract class ResourceBundle
                            *** 313,323 ****
                                    return builder.toString();
                                  }
                                }
                            !   
                                /** A cache lookup key. This avoids having to a new one for every
                                 *  getBundle() call. */
                                private static final BundleKey lookupKey = new BundleKey();
                            !   
                                /** Singleton cache entry to represent previous failed lookups. */
                                private static final Object nullEntry = new Object();
                              
                            --- 313,323 ----
                                    return builder.toString();
                                  }
                                }
                            ! 
                                /** A cache lookup key. This avoids having to a new one for every
                                 *  getBundle() call. */
                                private static final BundleKey lookupKey = new BundleKey();
                            ! 
                                /** Singleton cache entry to represent previous failed lookups. */
                                private static final Object nullEntry = new Object();
                              
                            *************** public abstract class ResourceBundle
                            *** 383,389 ****
                                 * 
                          • Locale("es", "ES"): result MyResources_es_ES.class, parent * MyResources.class
                          • * ! * *

                            The file MyResources_fr_CH.properties is never used because it is hidden * by MyResources_fr_CH.class.

                            * --- 383,389 ---- *
                          • Locale("es", "ES"): result MyResources_es_ES.class, parent * MyResources.class
                          • * ! * *

                            The file MyResources_fr_CH.properties is never used because it is hidden * by MyResources_fr_CH.class.

                            * *************** public abstract class ResourceBundle *** 475,512 **** rbClass = Class.forName(localizedName); else rbClass = classloader.loadClass(localizedName); ! // Note that we do the check up front instead of catching ! // ClassCastException. The reason for this is that some crazy ! // programs (Eclipse) have classes that do not extend ! // ResourceBundle but that have the same name as a property ! // bundle; in fact Eclipse relies on ResourceBundle not ! // instantiating these classes. ! if (ResourceBundle.class.isAssignableFrom(rbClass)) ! bundle = (ResourceBundle) rbClass.newInstance(); } catch (Exception ex) {} if (bundle == null) { ! try ! { ! InputStream is; ! String resourceName ! = localizedName.replace('.', '/') + ".properties"; ! if (classloader == null) ! is = ClassLoader.getSystemResourceAsStream(resourceName); ! else ! is = classloader.getResourceAsStream(resourceName); ! if (is != null) ! bundle = new PropertyResourceBundle(is); ! } ! catch (IOException ex) ! { ! MissingResourceException mre = new MissingResourceException ! ("Failed to load bundle: " + localizedName, localizedName, ""); ! mre.initCause(ex); ! throw mre; ! } } return bundle; --- 475,512 ---- rbClass = Class.forName(localizedName); else rbClass = classloader.loadClass(localizedName); ! // Note that we do the check up front instead of catching ! // ClassCastException. The reason for this is that some crazy ! // programs (Eclipse) have classes that do not extend ! // ResourceBundle but that have the same name as a property ! // bundle; in fact Eclipse relies on ResourceBundle not ! // instantiating these classes. ! if (ResourceBundle.class.isAssignableFrom(rbClass)) ! bundle = (ResourceBundle) rbClass.newInstance(); } catch (Exception ex) {} if (bundle == null) { ! try ! { ! InputStream is; ! String resourceName ! = localizedName.replace('.', '/') + ".properties"; ! if (classloader == null) ! is = ClassLoader.getSystemResourceAsStream(resourceName); ! else ! is = classloader.getResourceAsStream(resourceName); ! if (is != null) ! bundle = new PropertyResourceBundle(is); ! } ! catch (IOException ex) ! { ! MissingResourceException mre = new MissingResourceException ! ("Failed to load bundle: " + localizedName, localizedName, ""); ! mre.initCause(ex); ! throw mre; ! } } return bundle; *************** public abstract class ResourceBundle *** 524,536 **** * @return the resource bundle if it was loaded, otherwise the backup */ private static ResourceBundle tryBundle(String baseName, Locale locale, ! ClassLoader classLoader, ! boolean wantBase) { String language = locale.getLanguage(); String country = locale.getCountry(); String variant = locale.getVariant(); ! int baseLen = baseName.length(); // Build up a CPStringBuilder containing the complete bundle name, fully --- 524,536 ---- * @return the resource bundle if it was loaded, otherwise the backup */ private static ResourceBundle tryBundle(String baseName, Locale locale, ! ClassLoader classLoader, ! boolean wantBase) { String language = locale.getLanguage(); String country = locale.getCountry(); String variant = locale.getVariant(); ! int baseLen = baseName.length(); // Build up a CPStringBuilder containing the complete bundle name, fully *************** public abstract class ResourceBundle *** 538,560 **** CPStringBuilder sb = new CPStringBuilder(baseLen + variant.length() + 7); sb.append(baseName); ! if (language.length() > 0) { ! sb.append('_'); ! sb.append(language); ! ! if (country.length() > 0) ! { ! sb.append('_'); ! sb.append(country); ! ! if (variant.length() > 0) ! { ! sb.append('_'); ! sb.append(variant); ! } ! } } // Now try to load bundles, starting with the most specialized name. --- 538,560 ---- CPStringBuilder sb = new CPStringBuilder(baseLen + variant.length() + 7); sb.append(baseName); ! if (language.length() > 0) { ! sb.append('_'); ! sb.append(language); ! ! if (country.length() > 0) ! { ! sb.append('_'); ! sb.append(country); ! ! if (variant.length() > 0) ! { ! sb.append('_'); ! sb.append(variant); ! } ! } } // Now try to load bundles, starting with the most specialized name. *************** public abstract class ResourceBundle *** 562,589 **** String bundleName = sb.toString(); ResourceBundle first = null; // The most specialized bundle. ResourceBundle last = null; // The least specialized bundle. ! while (true) { ResourceBundle foundBundle = tryBundle(bundleName, classLoader); ! if (foundBundle != null) ! { ! if (first == null) ! first = foundBundle; ! if (last != null) ! last.parent = foundBundle; ! foundBundle.locale = locale; ! last = foundBundle; ! } ! int idx = bundleName.lastIndexOf('_'); ! // Try the non-localized base name only if we already have a ! // localized child bundle, or wantBase is true. ! if (idx > baseLen || (idx == baseLen && (first != null || wantBase))) ! bundleName = bundleName.substring(0, idx); ! else ! break; } ! return first; } --- 562,589 ---- String bundleName = sb.toString(); ResourceBundle first = null; // The most specialized bundle. ResourceBundle last = null; // The least specialized bundle. ! while (true) { ResourceBundle foundBundle = tryBundle(bundleName, classLoader); ! if (foundBundle != null) ! { ! if (first == null) ! first = foundBundle; ! if (last != null) ! last.parent = foundBundle; ! foundBundle.locale = locale; ! last = foundBundle; ! } ! int idx = bundleName.lastIndexOf('_'); ! // Try the non-localized base name only if we already have a ! // localized child bundle, or wantBase is true. ! if (idx > baseLen || (idx == baseLen && (first != null || wantBase))) ! bundleName = bundleName.substring(0, idx); ! else ! break; } ! return first; } *************** public abstract class ResourceBundle *** 611,624 **** if (loader == null) throw new NullPointerException("The loader can not be null."); synchronized (ResourceBundle.class) ! { ! Iterator iter = bundleCache.keySet().iterator(); ! while (iter.hasNext()) ! { ! BundleKey key = iter.next(); ! if (key.classLoader == loader) ! iter.remove(); ! } } } --- 611,624 ---- if (loader == null) throw new NullPointerException("The loader can not be null."); synchronized (ResourceBundle.class) ! { ! Iterator iter = bundleCache.keySet().iterator(); ! while (iter.hasNext()) ! { ! BundleKey key = iter.next(); ! if (key.classLoader == loader) ! iter.remove(); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Scanner.java gcc-4.6.0/libjava/classpath/java/util/Scanner.java *** gcc-4.5.2/libjava/classpath/java/util/Scanner.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/Scanner.java Tue Oct 12 15:55:12 2010 *************** import java.util.regex.Pattern; *** 64,93 **** /** * @author E0327023 Hernadi Laszlo ! */ ! public class Scanner implements Iterator { ! private static final String NOT_LONG = "\" is not a long"; //$NON-NLS-1$ ! private static final String ERR_PREFIX = "\""; //$NON-NLS-1$ ! private static final String NOT_INT = "\" is not an integer"; //$NON-NLS-1$ ! private static final String NOT_DOUBLE = "\" is not a double"; //$NON-NLS-1$ ! private static final String NOT_BYTE = "\" is not a byte"; //$NON-NLS-1$ ! private static final String NOT_BOOLEAN = "\" is not a boolean"; //$NON-NLS-1$ ! private static final String IS_NOT = "\" is not "; //$NON-NLS-1$ ! private static final String DEFAULT_PATTERN_S = "\\p{javaWhitespace}+"; //$NON-NLS-1$ private static final Pattern DEFAULT_PATTERN = Pattern.compile (DEFAULT_PATTERN_S); ! private static final String BIG_INTEGER = "BigInteger"; //$NON-NLS-1$ private final static String NEW_LINE = System.getProperty ("line.separator"); --- 64,93 ---- /** * @author E0327023 Hernadi Laszlo ! */ ! public class Scanner implements Iterator { ! private static final String NOT_LONG = "\" is not a long"; //$NON-NLS-1$ ! private static final String ERR_PREFIX = "\""; //$NON-NLS-1$ ! private static final String NOT_INT = "\" is not an integer"; //$NON-NLS-1$ ! private static final String NOT_DOUBLE = "\" is not a double"; //$NON-NLS-1$ ! private static final String NOT_BYTE = "\" is not a byte"; //$NON-NLS-1$ ! private static final String NOT_BOOLEAN = "\" is not a boolean"; //$NON-NLS-1$ ! private static final String IS_NOT = "\" is not "; //$NON-NLS-1$ ! private static final String DEFAULT_PATTERN_S = "\\p{javaWhitespace}+"; //$NON-NLS-1$ private static final Pattern DEFAULT_PATTERN = Pattern.compile (DEFAULT_PATTERN_S); ! private static final String BIG_INTEGER = "BigInteger"; //$NON-NLS-1$ private final static String NEW_LINE = System.getProperty ("line.separator"); *************** public class Scanner *** 131,137 **** /** * The current locale. ! * * @see #useLocale(Locale) * @see #locale() */ --- 131,137 ---- /** * The current locale. ! * * @see #useLocale(Locale) * @see #locale() */ *************** public class Scanner *** 172,178 **** * null . */ private Readable readableSource = null; ! /** * A ReadableByteChannel source if a Constructor with a ReadableByteChannel source is called, * otherwise it stays null . --- 172,178 ---- * null . */ private Readable readableSource = null; ! /** * A ReadableByteChannel source if a Constructor with a ReadableByteChannel source is called, * otherwise it stays null . *************** public class Scanner *** 183,189 **** * Indicates if the close() method was called. */ private boolean isClosed = false; ! /** * For performance reasons the last Found is saved, if a hasNextXXX method was called. */ --- 183,189 ---- * Indicates if the close() method was called. */ private boolean isClosed = false; ! /** * For performance reasons the last Found is saved, if a hasNextXXX method was called. */ *************** public class Scanner *** 247,267 **** /** * Constructs a new Scanner with the given File as source. * {@link #Scanner(InputStream, String)} is called with null as charsetName. ! * * @param source * The File to use as source. * @throws FileNotFoundException * If the file is not found an Exception is thrown. */ ! public Scanner (final File source) throws FileNotFoundException // TESTED { this (source, null); } ! /** * Constructs a new Scanner with the given File as source.
                            * {@link #Scanner(InputStream, String)} is called with the given charsetName. ! * * @param source * The File to use as source. * @param charsetName --- 247,267 ---- /** * Constructs a new Scanner with the given File as source. * {@link #Scanner(InputStream, String)} is called with null as charsetName. ! * * @param source * The File to use as source. * @throws FileNotFoundException * If the file is not found an Exception is thrown. */ ! public Scanner (final File source) throws FileNotFoundException // TESTED { this (source, null); } ! /** * Constructs a new Scanner with the given File as source.
                            * {@link #Scanner(InputStream, String)} is called with the given charsetName. ! * * @param source * The File to use as source. * @param charsetName *************** public class Scanner *** 271,277 **** * If the file is not found an Exception is thrown. */ public Scanner (final File source, ! final String charsetName) throws FileNotFoundException { this (new FileInputStream (source), charsetName); } --- 271,277 ---- * If the file is not found an Exception is thrown. */ public Scanner (final File source, ! final String charsetName) throws FileNotFoundException { this (new FileInputStream (source), charsetName); } *************** public class Scanner *** 279,289 **** /** * Constructs a new Scanner with the given inputStream.
                            * {@link #Scanner(InputStream, String)} is called with null as charsetName. ! * * @param source * The InputStream to use as source. */ ! public Scanner (final InputStream source) // TESTED { this (source, null); } --- 279,289 ---- /** * Constructs a new Scanner with the given inputStream.
                            * {@link #Scanner(InputStream, String)} is called with null as charsetName. ! * * @param source * The InputStream to use as source. */ ! public Scanner (final InputStream source) // TESTED { this (source, null); } *************** public class Scanner *** 291,297 **** /** * Constructs a new Scanner with the InputSream and a charsetName. Afterwards the Buffer is * filled. ! * * @param source * The InputStream to use as source. * @param charsetName --- 291,297 ---- /** * Constructs a new Scanner with the InputSream and a charsetName. Afterwards the Buffer is * filled. ! * * @param source * The InputStream to use as source. * @param charsetName *************** public class Scanner *** 303,312 **** this.charsetName = charsetName; myFillBuffer (); } ! /** * Constructs a new Scanner with a Readable input as source. ! * * @param source * The Readable to use as source. */ --- 303,312 ---- this.charsetName = charsetName; myFillBuffer (); } ! /** * Constructs a new Scanner with a Readable input as source. ! * * @param source * The Readable to use as source. */ *************** public class Scanner *** 320,326 **** * Constructs a new Scanner with a ReadableByteChannel as * source. Therfore the {@link #Scanner(ReadableByteChannel, * String)} is called with null as charsetName. ! * * @param source * The ReadableByteChannel to use as source. */ --- 320,326 ---- * Constructs a new Scanner with a ReadableByteChannel as * source. Therfore the {@link #Scanner(ReadableByteChannel, * String)} is called with null as charsetName. ! * * @param source * The ReadableByteChannel to use as source. */ *************** public class Scanner *** 333,339 **** * Constructs a new Scanner with a ReadableByteChannel as source and * a given charsetName, which is to be applied on it.
                            It also * initiates the main Buffer. ! * * @param source * The ReadableByteChannel to use as source. * @param charsetName --- 333,339 ---- * Constructs a new Scanner with a ReadableByteChannel as source and * a given charsetName, which is to be applied on it.
                            It also * initiates the main Buffer. ! * * @param source * The ReadableByteChannel to use as source. * @param charsetName *************** public class Scanner *** 348,358 **** /** * Constructs a new Scanner using the given String as input only. ! * * @param source * The whole String to be used as source. */ ! public Scanner (final String source) // TESTED { this.actBuffer = new String (source); this.myMatcher.reset (this.actBuffer); --- 348,358 ---- /** * Constructs a new Scanner using the given String as input only. ! * * @param source * The whole String to be used as source. */ ! public Scanner (final String source) // TESTED { this.actBuffer = new String (source); this.myMatcher.reset (this.actBuffer); *************** public class Scanner *** 364,377 **** * the Scanner is closed, all searches will lead to a {@link * IllegalStateException}. */ ! public void close () { try { if (this.bIS != null) ! this.bIS.close (); if (this.rbcSource != null) ! this.rbcSource.close (); this.isClosed = true; } catch (IOException ioe) --- 364,377 ---- * the Scanner is closed, all searches will lead to a {@link * IllegalStateException}. */ ! public void close () { try { if (this.bIS != null) ! this.bIS.close (); if (this.rbcSource != null) ! this.rbcSource.close (); this.isClosed = true; } catch (IOException ioe) *************** public class Scanner *** 382,398 **** /** * Returns the current delimiter. ! * * @return the current delimiter. */ ! public Pattern delimiter () // TESTED { return this.p; } /** * Tries to find the pattern in the current line. ! * * @param pattern The pattern which should be searched in the * current line of the input. * @throws NoSuchElementException --- 382,398 ---- /** * Returns the current delimiter. ! * * @return the current delimiter. */ ! public Pattern delimiter () // TESTED { return this.p; } /** * Tries to find the pattern in the current line. ! * * @param pattern The pattern which should be searched in the * current line of the input. * @throws NoSuchElementException *************** public class Scanner *** 400,430 **** * @return If the search was successful, the result or otherwise a * {@link NoSuchElementException} is thrown. */ ! public String findInLine (final Pattern pattern) throws NoSuchElementException // TESTED { String tmpStr = myNextLine (false); return myFindPInStr (pattern, tmpStr, 0); } ! /** * Compiles the given pattern into a {@link Pattern} and calls * {@link #findInLine(Pattern)} with the compiled pattern and * returns whatever it returns. ! * * @param pattern * The pattern which should be matched in the input. * @throws NoSuchElementException * If the pattern was not found. * @return The match in the current line. */ ! public String findInLine (final String pattern) // TESTED { return findInLine (Pattern.compile (pattern)); } /** * Trys to match the pattern within the given horizon. ! * * @param pattern * Pattern to search. * @param horizon --- 400,430 ---- * @return If the search was successful, the result or otherwise a * {@link NoSuchElementException} is thrown. */ ! public String findInLine (final Pattern pattern) throws NoSuchElementException // TESTED { String tmpStr = myNextLine (false); return myFindPInStr (pattern, tmpStr, 0); } ! /** * Compiles the given pattern into a {@link Pattern} and calls * {@link #findInLine(Pattern)} with the compiled pattern and * returns whatever it returns. ! * * @param pattern * The pattern which should be matched in the input. * @throws NoSuchElementException * If the pattern was not found. * @return The match in the current line. */ ! public String findInLine (final String pattern) // TESTED { return findInLine (Pattern.compile (pattern)); } /** * Trys to match the pattern within the given horizon. ! * * @param pattern * Pattern to search. * @param horizon *************** public class Scanner *** 439,450 **** { if (horizon < 0) { ! throw new IllegalArgumentException (horizon + " is negative"); } if (this.isClosed) { ! throw new IllegalStateException ("Scanner is closed"); } // doSkipp is set true to get the matching patern together with the found String --- 439,450 ---- { if (horizon < 0) { ! throw new IllegalArgumentException (horizon + " is negative"); } if (this.isClosed) { ! throw new IllegalStateException ("Scanner is closed"); } // doSkipp is set true to get the matching patern together with the found String *************** public class Scanner *** 453,459 **** if (rc != null) { ! this.actPos += rc.length (); } return rc; --- 453,459 ---- if (rc != null) { ! this.actPos += rc.length (); } return rc; *************** public class Scanner *** 462,468 **** /** * Compile the pattern and call {@link #findWithinHorizon(Pattern, * int)}. ! * * @param pattern * Pattern to search. * @param horizon --- 462,468 ---- /** * Compile the pattern and call {@link #findWithinHorizon(Pattern, * int)}. ! * * @param pattern * Pattern to search. * @param horizon *************** public class Scanner *** 484,499 **** * and the length must be greater then 0. If a {@link * NoSuchElementException} is thrown by the search method, it is * catched and false is returned. ! * * @return true if there is any result using the current delimiter. This wouldn't * lead to a {@link NoSuchElementException}. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNext () throws IllegalStateException // TESTED { String tmpStr = null; ! try { tmpStr = myCoreNext (false, this.p); --- 484,499 ---- * and the length must be greater then 0. If a {@link * NoSuchElementException} is thrown by the search method, it is * catched and false is returned. ! * * @return true if there is any result using the current delimiter. This wouldn't * lead to a {@link NoSuchElementException}. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNext () throws IllegalStateException // TESTED { String tmpStr = null; ! try { tmpStr = myCoreNext (false, this.p); *************** public class Scanner *** 504,510 **** if (tmpStr == null || tmpStr.length () <= 0) { ! return false; } return true; } --- 504,510 ---- if (tmpStr == null || tmpStr.length () <= 0) { ! return false; } return true; } *************** public class Scanner *** 512,525 **** /** * Searches the pattern in the next subString before the next * current delimiter. ! * * @param pattern * The pattern to search for. * @return true if the pattern is found before the current delimiter. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNext (final Pattern pattern) throws IllegalStateException // TESTED { String tmpStr; --- 512,525 ---- /** * Searches the pattern in the next subString before the next * current delimiter. ! * * @param pattern * The pattern to search for. * @return true if the pattern is found before the current delimiter. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNext (final Pattern pattern) throws IllegalStateException // TESTED { String tmpStr; *************** public class Scanner *** 527,533 **** if (tmpStr == null || tmpStr.length () <= 0) { ! return false; } return true; } --- 527,533 ---- if (tmpStr == null || tmpStr.length () <= 0) { ! return false; } return true; } *************** public class Scanner *** 535,541 **** /** * Compiles the pattern to a {@link Pattern} and calls {@link * #hasNext(Pattern)}. ! * * @see #hasNext(Pattern) * @param pattern * The pattern as string to search for. --- 535,541 ---- /** * Compiles the pattern to a {@link Pattern} and calls {@link * #hasNext(Pattern)}. ! * * @see #hasNext(Pattern) * @param pattern * The pattern as string to search for. *************** public class Scanner *** 543,549 **** * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNext (final String pattern) throws IllegalStateException // TESTED { return hasNext (Pattern.compile (pattern)); } --- 543,549 ---- * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNext (final String pattern) throws IllegalStateException // TESTED { return hasNext (Pattern.compile (pattern)); } *************** public class Scanner *** 552,564 **** * Checks if the string to the next delimiter can be interpreted as * a BigDecimal number.
                            BigDecimal numbers are always tryed * with radix 10. ! * * @see #nextBigDecimal() * @return true if the next string is a BigDecimal number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextBigDecimal () throws IllegalStateException // TESTED { try { --- 552,564 ---- * Checks if the string to the next delimiter can be interpreted as * a BigDecimal number.
                            BigDecimal numbers are always tryed * with radix 10. ! * * @see #nextBigDecimal() * @return true if the next string is a BigDecimal number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextBigDecimal () throws IllegalStateException // TESTED { try { *************** public class Scanner *** 575,587 **** * Checks if the string to the next delimiter can be interpreted as * a BigInteger number.
                            Call {@link #hasNextBigInteger(int)} * with the current radix. ! * * @see #nextBigInteger() * @return true if the next string is a BigInteger number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextBigInteger () throws IllegalStateException // TESTED { return hasNextBigInteger (this.currentRadix); } --- 575,587 ---- * Checks if the string to the next delimiter can be interpreted as * a BigInteger number.
                            Call {@link #hasNextBigInteger(int)} * with the current radix. ! * * @see #nextBigInteger() * @return true if the next string is a BigInteger number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextBigInteger () throws IllegalStateException // TESTED { return hasNextBigInteger (this.currentRadix); } *************** public class Scanner *** 589,595 **** /** * Checks if the string to the next delimiter can be interpreted as * a BigInteger number.
                            ! * * @param radix * The radix to use for this check. The global radix of the Scanner will not be * changed. --- 589,595 ---- /** * Checks if the string to the next delimiter can be interpreted as * a BigInteger number.
                            ! * * @param radix * The radix to use for this check. The global radix of the Scanner will not be * changed. *************** public class Scanner *** 615,627 **** * Checks if the next string could be a boolean. The method handles * the input not case sensitiv, so "true" and "TRUE" and even "tRuE" * are true . ! * * @see #nextBoolean() * @return Return true if the next string is a boolean. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextBoolean () throws IllegalStateException // TESTED { try { --- 615,627 ---- * Checks if the next string could be a boolean. The method handles * the input not case sensitiv, so "true" and "TRUE" and even "tRuE" * are true . ! * * @see #nextBoolean() * @return Return true if the next string is a boolean. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextBoolean () throws IllegalStateException // TESTED { try { *************** public class Scanner *** 638,650 **** * Checks if the string to the next delimiter can be interpreted as * a byte number.
                            Calls {@link #hasNextByte(int)} with the * current radix. ! * * @see #nextByte() * @return true if the next string is a byte number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextByte () throws IllegalStateException // TESTED { return hasNextByte (this.currentRadix); } --- 638,650 ---- * Checks if the string to the next delimiter can be interpreted as * a byte number.
                            Calls {@link #hasNextByte(int)} with the * current radix. ! * * @see #nextByte() * @return true if the next string is a byte number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextByte () throws IllegalStateException // TESTED { return hasNextByte (this.currentRadix); } *************** public class Scanner *** 654,660 **** * a byte number with the given radix.
                            To check, the private * method {@link #myNextByte(int, boolean)} is called, and if no * error occurs the next string could be a byte. ! * * @see #nextByte(int) * @param radix The radix to use for this check. The global radix of * the Scanner will not be changed. --- 654,660 ---- * a byte number with the given radix.
                            To check, the private * method {@link #myNextByte(int, boolean)} is called, and if no * error occurs the next string could be a byte. ! * * @see #nextByte(int) * @param radix The radix to use for this check. The global radix of * the Scanner will not be changed. *************** public class Scanner *** 680,692 **** * a double number.
                            To check, the private method {@link * #myNextDouble(boolean)} is called, and if no error occurs the * next string could be a double. ! * * @see #nextDouble() * @return true if the next string is a double number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextDouble () throws IllegalStateException // TESTED { try { --- 680,692 ---- * a double number.
                            To check, the private method {@link * #myNextDouble(boolean)} is called, and if no error occurs the * next string could be a double. ! * * @see #nextDouble() * @return true if the next string is a double number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextDouble () throws IllegalStateException // TESTED { try { *************** public class Scanner *** 705,717 **** * checked.
                            To check, the private method {@link * #myNextDouble(boolean)} is called, and if no error occurs the * next string could be a double. ! * * @see #nextFloat() * @return true if the next string is a double number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextFloat () throws IllegalStateException // TESTED { try { --- 705,717 ---- * checked.
                            To check, the private method {@link * #myNextDouble(boolean)} is called, and if no error occurs the * next string could be a double. ! * * @see #nextFloat() * @return true if the next string is a double number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextFloat () throws IllegalStateException // TESTED { try { *************** public class Scanner *** 730,742 **** * an int number.
                            To check, the private method {@link * #myNextInt(int, boolean)} is called, and if no error occurs the * next string could be an int. ! * * @see #nextInt(int) * @return true if the next string is an int number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextInt () throws IllegalStateException // TESTED { return hasNextInt (this.currentRadix); } --- 730,742 ---- * an int number.
                            To check, the private method {@link * #myNextInt(int, boolean)} is called, and if no error occurs the * next string could be an int. ! * * @see #nextInt(int) * @return true if the next string is an int number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextInt () throws IllegalStateException // TESTED { return hasNextInt (this.currentRadix); } *************** public class Scanner *** 746,752 **** * an int number with the given radix.
                            To check, the private * method {@link #myNextInt(int, boolean)} is called, and if no * error occurs the next string could be an int. ! * * @see #nextInt(int) * @param radix * The radix to use for this check. The global radix of the Scanner will not be --- 746,752 ---- * an int number with the given radix.
                            To check, the private * method {@link #myNextInt(int, boolean)} is called, and if no * error occurs the next string could be an int. ! * * @see #nextInt(int) * @param radix * The radix to use for this check. The global radix of the Scanner will not be *************** public class Scanner *** 771,782 **** /** * Checks if there is a current line, which ends at the next line * break or the end of the input. ! * * @return true if there is a current line. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextLine () throws IllegalStateException // TESTED { return (myNextLine (false) != null); } --- 771,782 ---- /** * Checks if there is a current line, which ends at the next line * break or the end of the input. ! * * @return true if there is a current line. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextLine () throws IllegalStateException // TESTED { return (myNextLine (false) != null); } *************** public class Scanner *** 786,798 **** * a long number.
                            To check, the private method {@link * #myNextLong(int, boolean)} is called, and if no error occurs the * next string could be a long. ! * * @see #nextLong() * @return true if the next string is a long number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextLong () throws IllegalStateException // TESTED { return hasNextLong (this.currentRadix); } --- 786,798 ---- * a long number.
                            To check, the private method {@link * #myNextLong(int, boolean)} is called, and if no error occurs the * next string could be a long. ! * * @see #nextLong() * @return true if the next string is a long number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextLong () throws IllegalStateException // TESTED { return hasNextLong (this.currentRadix); } *************** public class Scanner *** 802,808 **** * a long number with the given radix.
                            To check, the private * method {@link #myNextLong(int, boolean)} is called, and if no * error occurs the next string could be a long. ! * * @see #nextLong(int) * @param radix * The radix to use for this check. The global radix of the Scanner will not be --- 802,808 ---- * a long number with the given radix.
                            To check, the private * method {@link #myNextLong(int, boolean)} is called, and if no * error occurs the next string could be a long. ! * * @see #nextLong(int) * @param radix * The radix to use for this check. The global radix of the Scanner will not be *************** public class Scanner *** 829,841 **** * a short number with the given radix.
                            To check, the private * method {@link #myNextShort(int, boolean)} is called, and if no * error occurs the next string could be a short. ! * * @see #nextShort(int) * @return true if the next string is a short number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextShort () throws IllegalStateException // TESTED { return hasNextShort (this.currentRadix); } --- 829,841 ---- * a short number with the given radix.
                            To check, the private * method {@link #myNextShort(int, boolean)} is called, and if no * error occurs the next string could be a short. ! * * @see #nextShort(int) * @return true if the next string is a short number. * @throws IllegalStateException * if the Scanner is closed. */ ! public boolean hasNextShort () throws IllegalStateException // TESTED { return hasNextShort (this.currentRadix); } *************** public class Scanner *** 845,851 **** * a short number.
                            To check, the private method {@link * #myNextShort(int, boolean)} is called, and if no error occurs the * next string could be a short. ! * * @see #nextShort(int) * @param radix * The radix to use for this check. The global radix of the Scanner will not be --- 845,851 ---- * a short number.
                            To check, the private method {@link * #myNextShort(int, boolean)} is called, and if no error occurs the * next string could be a short. ! * * @see #nextShort(int) * @param radix * The radix to use for this check. The global radix of the Scanner will not be *************** public class Scanner *** 869,875 **** /** * Returns the last {@link IOException} occured. ! * * @return Returns the last {@link IOException}. */ public IOException ioException () --- 869,875 ---- /** * Returns the last {@link IOException} occured. ! * * @return Returns the last {@link IOException}. */ public IOException ioException () *************** public class Scanner *** 881,891 **** * Returns the current value of {@link #useLocale}. This is used to * tell the Scanner if it should use the Locale format or just * handle numbers of the default format. ! * * @see #setUseLocale(boolean) * @return the useLoclae. */ ! public boolean isUseLocale () // TESTED { return this.useLocale; } --- 881,891 ---- * Returns the current value of {@link #useLocale}. This is used to * tell the Scanner if it should use the Locale format or just * handle numbers of the default format. ! * * @see #setUseLocale(boolean) * @return the useLoclae. */ ! public boolean isUseLocale () // TESTED { return this.useLocale; } *************** public class Scanner *** 893,903 **** /** * Returns the current Locale. It is initialized with {@link * Locale#getDefault()}. ! * * @see #useLocale(Locale) * @return Returns the current Locale. */ ! public Locale locale () // TESTED { return this.actLocale; } --- 893,903 ---- /** * Returns the current Locale. It is initialized with {@link * Locale#getDefault()}. ! * * @see #useLocale(Locale) * @return Returns the current Locale. */ ! public Locale locale () // TESTED { return this.actLocale; } *************** public class Scanner *** 905,914 **** /** * Returns the last MatchResult found. This is updated after every * successfully search. ! * * @return Returns the last {@link MatchResult} found. */ ! public MatchResult match () // TESTED { return this.actResult; } --- 905,914 ---- /** * Returns the last MatchResult found. This is updated after every * successfully search. ! * * @return Returns the last {@link MatchResult} found. */ ! public MatchResult match () // TESTED { return this.actResult; } *************** public class Scanner *** 918,924 **** * buffer. If a string is found the current position is set after * the delimiter, otherwise a {@link NoSuchElementException} is * thrown. A successful match sets the matchResult. ! * * @see #match() * @return Returns the next string of the buffer. * @throws NoSuchElementException --- 918,924 ---- * buffer. If a string is found the current position is set after * the delimiter, otherwise a {@link NoSuchElementException} is * thrown. A successful match sets the matchResult. ! * * @see #match() * @return Returns the next string of the buffer. * @throws NoSuchElementException *************** public class Scanner *** 926,932 **** * @throws IllegalStateException * If the Scanner is closed. */ ! public String next () throws NoSuchElementException, IllegalStateException // TESTED { return myCoreNext (true, this.p); } --- 926,932 ---- * @throws IllegalStateException * If the Scanner is closed. */ ! public String next () throws NoSuchElementException, IllegalStateException // TESTED { return myCoreNext (true, this.p); } *************** public class Scanner *** 934,940 **** /** * Tries to match the buffer with the given pattern. The current * delimiter will not be changed. ! * * @param pattern * The pattern to match. * @return Returns the next string matching the pattern. --- 934,940 ---- /** * Tries to match the buffer with the given pattern. The current * delimiter will not be changed. ! * * @param pattern * The pattern to match. * @return Returns the next string matching the pattern. *************** public class Scanner *** 943,949 **** * @throws IllegalStateException * If the Scanner is closed. */ ! public String next (final Pattern pattern) throws NoSuchElementException, IllegalStateException // TESTED { return myNext (pattern, true); } --- 943,949 ---- * @throws IllegalStateException * If the Scanner is closed. */ ! public String next (final Pattern pattern) throws NoSuchElementException, IllegalStateException // TESTED { return myNext (pattern, true); } *************** public class Scanner *** 952,958 **** * Tries to match the buffer with the given pattern. The current * delimiter will not be changed. Calls the {@link #next(Pattern)} * with the compiled pattern. ! * * @see #next(Pattern) * @param pattern * The pattern to match. --- 952,958 ---- * Tries to match the buffer with the given pattern. The current * delimiter will not be changed. Calls the {@link #next(Pattern)} * with the compiled pattern. ! * * @see #next(Pattern) * @param pattern * The pattern to match. *************** public class Scanner *** 962,982 **** * @throws IllegalStateException * If the Scanner is closed. */ ! public String next (final String pattern) throws NoSuchElementException, IllegalStateException // TESTED { return next (Pattern.compile (pattern)); } /** * Tries to interpret the next string as a BigDecimal value. ! * * @return Returns the BigDecimal value of the next string. * @throws NoSuchElementException * If no string is found or the string is not a BigDecimal. * @throws IllegalStateException * If the Scanner is closed. */ ! public BigDecimal nextBigDecimal () throws NoSuchElementException, IllegalStateException // TESTED { return myBigDecimal (true); } --- 962,982 ---- * @throws IllegalStateException * If the Scanner is closed. */ ! public String next (final String pattern) throws NoSuchElementException, IllegalStateException // TESTED { return next (Pattern.compile (pattern)); } /** * Tries to interpret the next string as a BigDecimal value. ! * * @return Returns the BigDecimal value of the next string. * @throws NoSuchElementException * If no string is found or the string is not a BigDecimal. * @throws IllegalStateException * If the Scanner is closed. */ ! public BigDecimal nextBigDecimal () throws NoSuchElementException, IllegalStateException // TESTED { return myBigDecimal (true); } *************** public class Scanner *** 985,991 **** * Tries to interpret the next string as a BigInteger value. Call * {@link #nextBigInteger(int)} with the current radix as parameter, * and return the value. ! * * @see #nextBigInteger(int) * @return Returns the BigInteger value of the next string. * @throws NoSuchElementException --- 985,991 ---- * Tries to interpret the next string as a BigInteger value. Call * {@link #nextBigInteger(int)} with the current radix as parameter, * and return the value. ! * * @see #nextBigInteger(int) * @return Returns the BigInteger value of the next string. * @throws NoSuchElementException *************** public class Scanner *** 993,999 **** * @throws IllegalStateException * If the Scanner is closed. */ ! public BigInteger nextBigInteger () throws NoSuchElementException, IllegalStateException // TESTED { return nextBigInteger (this.currentRadix); } --- 993,999 ---- * @throws IllegalStateException * If the Scanner is closed. */ ! public BigInteger nextBigInteger () throws NoSuchElementException, IllegalStateException // TESTED { return nextBigInteger (this.currentRadix); } *************** public class Scanner *** 1001,1007 **** /** * Tries to interpret the next string as a BigInteger value with the * given radix. ! * * @param radix * The radix to be used for this BigInteger. The current radix of the Scanner is not * changed. --- 1001,1007 ---- /** * Tries to interpret the next string as a BigInteger value with the * given radix. ! * * @param radix * The radix to be used for this BigInteger. The current radix of the Scanner is not * changed. *************** public class Scanner *** 1020,1033 **** /** * Tries to interpret the next string to the delimiter as a boolean * value, ignoring case. ! * * @return Returns the boolean value of the next matching string or throws an exception. * @throws NoSuchElementException * If no string is found or the string is not a boolean. * @throws IllegalStateException * If the Scanner is closed. */ ! public boolean nextBoolean () throws NoSuchElementException, IllegalStateException // TESTED { return myNextBoolean (true); } --- 1020,1033 ---- /** * Tries to interpret the next string to the delimiter as a boolean * value, ignoring case. ! * * @return Returns the boolean value of the next matching string or throws an exception. * @throws NoSuchElementException * If no string is found or the string is not a boolean. * @throws IllegalStateException * If the Scanner is closed. */ ! public boolean nextBoolean () throws NoSuchElementException, IllegalStateException // TESTED { return myNextBoolean (true); } *************** public class Scanner *** 1036,1042 **** * Tries to interpret the next string as a byte value. Call {@link * #nextByte(int)} with the current radix as parameter, and return * the value. ! * * @see #nextByte(int) * @return Returns the byte value of the next string. * @throws NoSuchElementException --- 1036,1042 ---- * Tries to interpret the next string as a byte value. Call {@link * #nextByte(int)} with the current radix as parameter, and return * the value. ! * * @see #nextByte(int) * @return Returns the byte value of the next string. * @throws NoSuchElementException *************** public class Scanner *** 1044,1050 **** * @throws IllegalStateException * If the Scanner is closed. */ ! public byte nextByte () throws NoSuchElementException, IllegalStateException // TESTED { return nextByte (this.currentRadix); } --- 1044,1050 ---- * @throws IllegalStateException * If the Scanner is closed. */ ! public byte nextByte () throws NoSuchElementException, IllegalStateException // TESTED { return nextByte (this.currentRadix); } *************** public class Scanner *** 1052,1058 **** /** * Tries to interpret the next string as a byte value with the given * radix. ! * * @param radix * The radix to be used for this byte. The current radix of the Scanner is not * changed. --- 1052,1058 ---- /** * Tries to interpret the next string as a byte value with the given * radix. ! * * @param radix * The radix to be used for this byte. The current radix of the Scanner is not * changed. *************** public class Scanner *** 1070,1083 **** /** * Tries to interpret the next string as a double value. ! * * @return Returns the int value of the next string. * @throws NoSuchElementException * If no string is found or the string is not a double. * @throws IllegalStateException * If the Scanner is closed. */ ! public double nextDouble () throws NoSuchElementException, IllegalStateException // TESTED { return myNextDouble (true); } --- 1070,1083 ---- /** * Tries to interpret the next string as a double value. ! * * @return Returns the int value of the next string. * @throws NoSuchElementException * If no string is found or the string is not a double. * @throws IllegalStateException * If the Scanner is closed. */ ! public double nextDouble () throws NoSuchElementException, IllegalStateException // TESTED { return myNextDouble (true); } *************** public class Scanner *** 1085,1098 **** /** * Tries to interpret the next string as a double value, and then * casts down to float. ! * * @return Returns the int value of the next string. * @throws NoSuchElementException * If no string is found or the string is not a double. * @throws IllegalStateException * If the Scanner is closed. */ ! public float nextFloat () throws NoSuchElementException, IllegalStateException // TESTED { return (float) myNextDouble (true); // return myNextFloat(true); --- 1085,1098 ---- /** * Tries to interpret the next string as a double value, and then * casts down to float. ! * * @return Returns the int value of the next string. * @throws NoSuchElementException * If no string is found or the string is not a double. * @throws IllegalStateException * If the Scanner is closed. */ ! public float nextFloat () throws NoSuchElementException, IllegalStateException // TESTED { return (float) myNextDouble (true); // return myNextFloat(true); *************** public class Scanner *** 1102,1108 **** * Tries to interpret the next string as an int value. Calls {@link * #nextInt(int)} with the current radix as parameter, and return * the value. ! * * @see #nextInt(int) * @return Returns the int value of the next string. * @throws NoSuchElementException --- 1102,1108 ---- * Tries to interpret the next string as an int value. Calls {@link * #nextInt(int)} with the current radix as parameter, and return * the value. ! * * @see #nextInt(int) * @return Returns the int value of the next string. * @throws NoSuchElementException *************** public class Scanner *** 1110,1116 **** * @throws IllegalStateException * If the Scanner is closed. */ ! public int nextInt () throws NoSuchElementException, IllegalStateException // TESTED { return nextInt (this.currentRadix); } --- 1110,1116 ---- * @throws IllegalStateException * If the Scanner is closed. */ ! public int nextInt () throws NoSuchElementException, IllegalStateException // TESTED { return nextInt (this.currentRadix); } *************** public class Scanner *** 1118,1124 **** /** * Tries to interpret the next string as an int value with the given * radix. ! * * @param radix * The radix to be used for this int. The current radix of the Scanner is not changed * @return Returns the int value of the next string. --- 1118,1124 ---- /** * Tries to interpret the next string as an int value with the given * radix. ! * * @param radix * The radix to be used for this int. The current radix of the Scanner is not changed * @return Returns the int value of the next string. *************** public class Scanner *** 1136,1149 **** /** * Tries to match the system line seperator, and returns the current * line. ! * * @return Returns the current line. * @throws NoSuchElementException * If the current delimiter is not found. * @throws IllegalStateException * If the Scanner is closed. */ ! public String nextLine () throws NoSuchElementException, IllegalStateException // TESTED { return myNextLine (true); } --- 1136,1149 ---- /** * Tries to match the system line seperator, and returns the current * line. ! * * @return Returns the current line. * @throws NoSuchElementException * If the current delimiter is not found. * @throws IllegalStateException * If the Scanner is closed. */ ! public String nextLine () throws NoSuchElementException, IllegalStateException // TESTED { return myNextLine (true); } *************** public class Scanner *** 1152,1158 **** * Tries to interpret the next string as a long value. Calls {@link * #nextLong(int)} with the current radix as parameter, and return * the value. ! * * @see #nextLong(int) * @return Returns the long value of the next string. * @throws NoSuchElementException --- 1152,1158 ---- * Tries to interpret the next string as a long value. Calls {@link * #nextLong(int)} with the current radix as parameter, and return * the value. ! * * @see #nextLong(int) * @return Returns the long value of the next string. * @throws NoSuchElementException *************** public class Scanner *** 1160,1166 **** * @throws IllegalStateException * If the Scanner is closed. */ ! public long nextLong () throws NoSuchElementException, IllegalStateException // TESTED { return nextLong (this.currentRadix); } --- 1160,1166 ---- * @throws IllegalStateException * If the Scanner is closed. */ ! public long nextLong () throws NoSuchElementException, IllegalStateException // TESTED { return nextLong (this.currentRadix); } *************** public class Scanner *** 1168,1174 **** /** * Tries to interpret the next string as a long value with the given * radix. ! * * @param radix * The radix to be used for this long. The current radix of the Scanner is not * changed --- 1168,1174 ---- /** * Tries to interpret the next string as a long value with the given * radix. ! * * @param radix * The radix to be used for this long. The current radix of the Scanner is not * changed *************** public class Scanner *** 1188,1200 **** * Tries to interpret the next string as a short value. Calls {@link * #nextShort(int)} with the current radix as parameter, and return * the value. ! * * @see #nextShort(int) * @return Returns the short value of the next string. * @throws NoSuchElementException * If no string is found or the string is not a short. */ ! public short nextShort () throws NoSuchElementException // TESTED { return nextShort (this.currentRadix); } --- 1188,1200 ---- * Tries to interpret the next string as a short value. Calls {@link * #nextShort(int)} with the current radix as parameter, and return * the value. ! * * @see #nextShort(int) * @return Returns the short value of the next string. * @throws NoSuchElementException * If no string is found or the string is not a short. */ ! public short nextShort () throws NoSuchElementException // TESTED { return nextShort (this.currentRadix); } *************** public class Scanner *** 1202,1208 **** /** * Tries to interpret the next string as a short value with the * given radix. ! * * @param radix * The radix to be used for this short. The current radix of the Scanner is not * changed. --- 1202,1208 ---- /** * Tries to interpret the next string as a short value with the * given radix. ! * * @param radix * The radix to be used for this short. The current radix of the Scanner is not * changed. *************** public class Scanner *** 1234,1247 **** /** * @param useLocale the useLocale to set. */ ! public void setUseLocale (final boolean useLocale) // TESTED { this.useLocale = useLocale; } /** * Skips the given pattern. Sets skipped true. ! * * @param pattern * Pattern which should be skipped. * @return this with the skipped buffer. --- 1234,1247 ---- /** * @param useLocale the useLocale to set. */ ! public void setUseLocale (final boolean useLocale) // TESTED { this.useLocale = useLocale; } /** * Skips the given pattern. Sets skipped true. ! * * @param pattern * Pattern which should be skipped. * @return this with the skipped buffer. *************** public class Scanner *** 1269,1275 **** if (!found) { ! throw new NoSuchElementException (); } return this; } --- 1269,1275 ---- if (!found) { ! throw new NoSuchElementException (); } return this; } *************** public class Scanner *** 1277,1283 **** /** * Skips a given pattern. Calls {@link #skip(Pattern)} with the * compiled pattern. ! * * @see #skip(Pattern) * @param pattern * Pattern which should be skipped. --- 1277,1283 ---- /** * Skips a given pattern. Calls {@link #skip(Pattern)} with the * compiled pattern. ! * * @see #skip(Pattern) * @param pattern * Pattern which should be skipped. *************** public class Scanner *** 1291,1297 **** /** * Returns the string representation of this Scanner. */ ! @Override public String toString () { String tmpStr2; --- 1291,1297 ---- /** * Returns the string representation of this Scanner. */ ! @Override public String toString () { String tmpStr2; *************** public class Scanner *** 1335,1351 **** /** * Sets the current pattern to the given parameter, and updates the * {@link Matcher} with the new pattern. ! * * @param pattern * The new pattern to use. * @return Returns the Scanner (this) with the new pattern. */ ! public Scanner useDelimiter (final Pattern pattern) // TESTED { if (pattern != null) { ! this.p = pattern; ! this.myMatcher = this.p.matcher (this.actBuffer); } return this; } --- 1335,1351 ---- /** * Sets the current pattern to the given parameter, and updates the * {@link Matcher} with the new pattern. ! * * @param pattern * The new pattern to use. * @return Returns the Scanner (this) with the new pattern. */ ! public Scanner useDelimiter (final Pattern pattern) // TESTED { if (pattern != null) { ! this.p = pattern; ! this.myMatcher = this.p.matcher (this.actBuffer); } return this; } *************** public class Scanner *** 1353,1365 **** /** * Sets the current pattern to the given parameter. Compiles the * pattern and calls {@link #useDelimiter(Pattern)} ! * * @see #useDelimiter(Pattern) * @param pattern * The new pattern to use. * @return Returns the Scanner (this) with the new pattern. */ ! public Scanner useDelimiter (final String pattern) // TESTED { return useDelimiter (Pattern.compile (pattern)); } --- 1353,1365 ---- /** * Sets the current pattern to the given parameter. Compiles the * pattern and calls {@link #useDelimiter(Pattern)} ! * * @see #useDelimiter(Pattern) * @param pattern * The new pattern to use. * @return Returns the Scanner (this) with the new pattern. */ ! public Scanner useDelimiter (final String pattern) // TESTED { return useDelimiter (Pattern.compile (pattern)); } *************** public class Scanner *** 1367,1385 **** /** * Sets the current Locale to the given parameter. Formats and * Symbols are also set using the new Locale. ! * * @param locale The new Locale to use. If it is null * nothing happens. * @return Returns the Scanner (this) with the new Locale. */ ! public Scanner useLocale (final Locale locale) // TESTED { if (locale != null) { ! this.actLocale = locale; ! this.actFormat = NumberFormat.getInstance (this.actLocale); ! this.dfs = new DecimalFormatSymbols (this.actLocale); ! this.df = (DecimalFormat) this.actFormat; } return this; } --- 1367,1385 ---- /** * Sets the current Locale to the given parameter. Formats and * Symbols are also set using the new Locale. ! * * @param locale The new Locale to use. If it is null * nothing happens. * @return Returns the Scanner (this) with the new Locale. */ ! public Scanner useLocale (final Locale locale) // TESTED { if (locale != null) { ! this.actLocale = locale; ! this.actFormat = NumberFormat.getInstance (this.actLocale); ! this.dfs = new DecimalFormatSymbols (this.actLocale); ! this.df = (DecimalFormat) this.actFormat; } return this; } *************** public class Scanner *** 1388,1394 **** * Sets the current radix to the current value if the given radix is * >= 2 and <= 36 otherwise an {@link IllegalArgumentException} is * thrown. ! * * @param radix * the new radix to use as default. * @return this with the new radix value. --- 1388,1394 ---- * Sets the current radix to the current value if the given radix is * >= 2 and <= 36 otherwise an {@link IllegalArgumentException} is * thrown. ! * * @param radix * the new radix to use as default. * @return this with the new radix value. *************** public class Scanner *** 1399,1405 **** { if (radix < 2 || radix > 36) { ! throw new IllegalArgumentException (); } this.currentRadix = radix; return this; --- 1399,1405 ---- { if (radix < 2 || radix > 36) { ! throw new IllegalArgumentException (); } this.currentRadix = radix; return this; *************** public class Scanner *** 1410,1416 **** * String. If so the String is converted using the {@link * NumberFormat#parse(String)} into a Number and then back to a * default stringrepresentation of that Number. ! * * @see #setUseLocale(boolean) * @param str * String to convert into another string. --- 1410,1416 ---- * String. If so the String is converted using the {@link * NumberFormat#parse(String)} into a Number and then back to a * default stringrepresentation of that Number. ! * * @see #setUseLocale(boolean) * @param str * String to convert into another string. *************** public class Scanner *** 1422,1435 **** * if {@link NumberFormat#parse(String)} fails to parse. */ private String myApplyLocale (final String str, ! final int radix) throws ParseException { String rc; if (this.useLocale && radix == 10) { ! rc = this.actFormat.parse (str).toString (); ! return rc; } return str; --- 1422,1435 ---- * if {@link NumberFormat#parse(String)} fails to parse. */ private String myApplyLocale (final String str, ! final int radix) throws ParseException { String rc; if (this.useLocale && radix == 10) { ! rc = this.actFormat.parse (str).toString (); ! return rc; } return str; *************** public class Scanner *** 1444,1450 **** * integer part which is converted to a long, and the fraction part * is appended afterwards. Between the integer and the fraction part * comes a ".". Finally the resulting string is returned. ! * * @see #setUseLocale(boolean) * @param str String representation of a BigDecimal number. * @return The default String representation (without Locale) of the --- 1444,1450 ---- * integer part which is converted to a long, and the fraction part * is appended afterwards. Between the integer and the fraction part * comes a ".". Finally the resulting string is returned. ! * * @see #setUseLocale(boolean) * @param str String representation of a BigDecimal number. * @return The default String representation (without Locale) of the *************** public class Scanner *** 1456,1462 **** { if (!this.useLocale || this.currentRadix != 10) { ! return str; } String negPrefix = this.df.getNegativePrefix (); --- 1456,1462 ---- { if (!this.useLocale || this.currentRadix != 10) { ! return str; } String negPrefix = this.df.getNegativePrefix (); *************** public class Scanner *** 1476,1518 **** if (begin2 > 0) { ! throw new ParseException ("more than one Decimal seperators", begin2); } parts = str.substring (0, begin1); if ((negPrefix.length () > 0 ! && str.substring (0, negPrefix.length ()).equals (negPrefix)) ! || (negSuffix.length () > 0 ! && str.substring (str.length () - ! negSuffix.length ()).equals (negSuffix))) { ! parts += negSuffix; ! isNegativ = true; } else if ((posPrefix.length () > 0 ! && str.substring (0, posPrefix.length ()).equals (posPrefix)) ! || (posSuffix.length () > 0 ! && str.substring (str.length () - ! posSuffix.length ()).equals (posSuffix))) { ! parts += posSuffix; } tmpStr1 = this.actFormat.parse (parts).toString (); if (isNegativ) { ! tmpStr1 += ! "." + str.substring (str.indexOf (d) + 1, ! str.length () - negSuffix.length ()); } else { ! tmpStr1 += ! "." + str.substring (str.indexOf (d) + 1, ! str.length () - posSuffix.length ()); } return tmpStr1; --- 1476,1518 ---- if (begin2 > 0) { ! throw new ParseException ("more than one Decimal seperators", begin2); } parts = str.substring (0, begin1); if ((negPrefix.length () > 0 ! && str.substring (0, negPrefix.length ()).equals (negPrefix)) ! || (negSuffix.length () > 0 ! && str.substring (str.length () - ! negSuffix.length ()).equals (negSuffix))) { ! parts += negSuffix; ! isNegativ = true; } else if ((posPrefix.length () > 0 ! && str.substring (0, posPrefix.length ()).equals (posPrefix)) ! || (posSuffix.length () > 0 ! && str.substring (str.length () - ! posSuffix.length ()).equals (posSuffix))) { ! parts += posSuffix; } tmpStr1 = this.actFormat.parse (parts).toString (); if (isNegativ) { ! tmpStr1 += ! "." + str.substring (str.indexOf (d) + 1, ! str.length () - negSuffix.length ()); } else { ! tmpStr1 += ! "." + str.substring (str.indexOf (d) + 1, ! str.length () - posSuffix.length ()); } return tmpStr1; *************** public class Scanner *** 1523,1529 **** * next String is get with {@link #myCoreNext(boolean, Pattern)} and * then {@link #myApplyLocaleBD(String)} is called to convert the * String into a BigDecimal. ! * * @param delete * Should the found string be deleted or not. * @return Returns the BigDecimal value of the next string. --- 1523,1529 ---- * next String is get with {@link #myCoreNext(boolean, Pattern)} and * then {@link #myApplyLocaleBD(String)} is called to convert the * String into a BigDecimal. ! * * @param delete * Should the found string be deleted or not. * @return Returns the BigDecimal value of the next string. *************** public class Scanner *** 1542,1548 **** catch (ParseException e) { throw new InputMismatchException (ERR_PREFIX + tmp + IS_NOT + ! "BigDecimal!!"); } rc = new BigDecimal (tmp); --- 1542,1548 ---- catch (ParseException e) { throw new InputMismatchException (ERR_PREFIX + tmp + IS_NOT + ! "BigDecimal!!"); } rc = new BigDecimal (tmp); *************** public class Scanner *** 1552,1558 **** /** * Applies suffix ("\E") and prefix ("\Q") if str.length != 0 Used * by the toString method. ! * * @param str * the string on which the suffix and prefix should be applied. * @return The new new string with the suffix and prefix. --- 1552,1558 ---- /** * Applies suffix ("\E") and prefix ("\Q") if str.length != 0 Used * by the toString method. ! * * @param str * the string on which the suffix and prefix should be applied. * @return The new new string with the suffix and prefix. *************** public class Scanner *** 1561,1567 **** { if (str != null && str.length () > 0) { ! return "\\Q" + str + "\\E"; } return str; } --- 1561,1567 ---- { if (str != null && str.length () > 0) { ! return "\\Q" + str + "\\E"; } return str; } *************** public class Scanner *** 1572,1578 **** * source. The search results are always saved in {@link #actResult} * which is returned when match() is called. If doSkip is true the * pattern is also taken. ! * * @param delete * if true the aktPos is set. * @param pattern --- 1572,1578 ---- * source. The search results are always saved in {@link #actResult} * which is returned when match() is called. If doSkip is true the * pattern is also taken. ! * * @param delete * if true the aktPos is set. * @param pattern *************** public class Scanner *** 1586,1609 **** { if (this.isClosed) { ! throw new IllegalStateException ("Scanner closed"); } if (shallUseLastFound (pattern != null ? pattern : this.p)) { ! if (this.last_RegionEnd != this.myMatcher.regionEnd ()) ! { ! System.out.println (this.last_RegionEnd + " != " + ! this.myMatcher.regionEnd () + " (" + ! (this.last_RegionEnd - ! this.myMatcher.regionEnd ()) + ")"); ! } ! if (delete) ! { ! this.actPos = this.lastNextPos; ! this.lastFoundPresent = false; ! this.actResult = this.lastResult; ! } ! return this.lastFound; } boolean found = false; --- 1586,1609 ---- { if (this.isClosed) { ! throw new IllegalStateException ("Scanner closed"); } if (shallUseLastFound (pattern != null ? pattern : this.p)) { ! if (this.last_RegionEnd != this.myMatcher.regionEnd ()) ! { ! System.out.println (this.last_RegionEnd + " != " + ! this.myMatcher.regionEnd () + " (" + ! (this.last_RegionEnd - ! this.myMatcher.regionEnd ()) + ")"); ! } ! if (delete) ! { ! this.actPos = this.lastNextPos; ! this.lastFoundPresent = false; ! this.actResult = this.lastResult; ! } ! return this.lastFound; } boolean found = false; *************** public class Scanner *** 1614,1631 **** if (this.actPos > this.MAX_PREFIX) { ! // skipp the processed chars so that the size of the buffer don't grow to much even with ! // huge files ! this.procesedChars += this.actPos; ! this.actBuffer = this.actBuffer.substring (this.actPos); ! this.actPos = 0; ! this.myMatcher = pattern.matcher (this.actBuffer); } left = this.actBuffer.length () - this.actPos; if (left < this.MIN_BUF_LEN) { ! myFillBuffer (); } found = this.myMatcher.find (this.actPos); --- 1614,1631 ---- if (this.actPos > this.MAX_PREFIX) { ! // skipp the processed chars so that the size of the buffer don't grow to much even with ! // huge files ! this.procesedChars += this.actPos; ! this.actBuffer = this.actBuffer.substring (this.actPos); ! this.actPos = 0; ! this.myMatcher = pattern.matcher (this.actBuffer); } left = this.actBuffer.length () - this.actPos; if (left < this.MIN_BUF_LEN) { ! myFillBuffer (); } found = this.myMatcher.find (this.actPos); *************** public class Scanner *** 1635,1695 **** if (found) { ! if (this.doSkipp) ! { ! endIndex = this.myMatcher.end (); ! } ! else ! { ! endIndex = this.myMatcher.start (); ! } ! tmp2 = this.actBuffer.substring (this.actPos, endIndex); ! this.lastNextPos = this.myMatcher.end (); ! /* ! * if the delete flag is set, just set the current position after the end of the matched ! * pattern. ! */ ! if (delete) ! { ! this.actPos = this.lastNextPos; ! } ! else ! { ! this.lastFound = tmp2; ! this.lastFoundPresent = true; ! this.lastPatternHash = pattern.hashCode (); ! } ! this.last_RegionStart = this.myMatcher.regionStart (); ! this.last_RegionEnd = this.myMatcher.regionEnd (); ! this.last_anchor = this.myMatcher.hasAnchoringBounds (); ! this.last_transparent = this.myMatcher.hasTransparentBounds (); } else if (this.myMatcher.hitEnd ()) // the end of input is matched { ! tmp2 = this.actBuffer.substring (this.actPos); ! this.lastNextPos = this.actBuffer.length (); ! if (delete) ! { ! this.actPos = this.lastNextPos; ! } ! else ! { ! this.lastFound = tmp2; ! this.lastFoundPresent = true; ! this.lastPatternHash = pattern.hashCode (); ! } ! this.last_RegionStart = this.myMatcher.regionStart (); ! this.last_RegionEnd = this.myMatcher.regionEnd (); ! this.last_anchor = this.myMatcher.hasAnchoringBounds (); ! this.last_transparent = this.myMatcher.hasTransparentBounds (); } else { ! /* ! * if no match found an Exception is throwed ! */ ! throw new NoSuchElementException (); } /* * change the Result only when a nextXXX() method was called, not if a hasNextXXX() method --- 1635,1697 ---- if (found) { ! if (this.doSkipp) ! { ! endIndex = this.myMatcher.end (); ! } ! else ! { ! endIndex = this.myMatcher.start (); ! } ! tmp2 = this.actBuffer.substring (this.actPos, endIndex); ! this.lastNextPos = this.myMatcher.end (); ! /* ! * if the delete flag is set, just set the current position after the end of the matched ! * pattern. ! */ ! if (delete) ! { ! this.actPos = this.lastNextPos; ! } ! else ! { ! this.lastFound = tmp2; ! this.lastFoundPresent = true; ! this.lastPatternHash = pattern.hashCode (); ! } ! this.last_RegionStart = this.myMatcher.regionStart (); ! this.last_RegionEnd = this.myMatcher.regionEnd (); ! this.last_anchor = this.myMatcher.hasAnchoringBounds (); ! this.last_transparent = this.myMatcher.hasTransparentBounds (); } else if (this.myMatcher.hitEnd ()) // the end of input is matched { ! tmp2 = this.actBuffer.substring (this.actPos); ! if (tmp2.length() == 0) ! tmp2 = null; ! this.lastNextPos = this.actBuffer.length (); ! if (delete) ! { ! this.actPos = this.lastNextPos; ! } ! else ! { ! this.lastFound = tmp2; ! this.lastFoundPresent = true; ! this.lastPatternHash = pattern.hashCode (); ! } ! this.last_RegionStart = this.myMatcher.regionStart (); ! this.last_RegionEnd = this.myMatcher.regionEnd (); ! this.last_anchor = this.myMatcher.hasAnchoringBounds (); ! this.last_transparent = this.myMatcher.hasTransparentBounds (); } else { ! /* ! * if no match found an Exception is throwed ! */ ! throw new NoSuchElementException (); } /* * change the Result only when a nextXXX() method was called, not if a hasNextXXX() method *************** public class Scanner *** 1697,1709 **** */ if (delete) { ! this.actResult = this.myMatcher.toMatchResult (); ! this.matchValid = this.actResult != null; } else { ! this.lastResult = this.myMatcher.toMatchResult (); } this.skipped = this.doSkipp; --- 1699,1711 ---- */ if (delete) { ! this.actResult = this.myMatcher.toMatchResult (); ! this.matchValid = this.actResult != null; } else { ! this.lastResult = this.myMatcher.toMatchResult (); } this.skipped = this.doSkipp; *************** public class Scanner *** 1728,1801 **** if (this.bIS != null) { ! try ! { ! len = this.bIS.read (this.tmpBuffer); ! if (len < 0) ! { ! return; ! } ! if (this.charsetName != null) ! { ! tmpStr = new String (this.tmpBuffer, 0, len, this.charsetName); ! } ! else ! { ! tmpStr = new String (this.tmpBuffer, 0, len); ! } ! this.actBuffer += tmpStr; ! } ! catch (IOException e) ! { ! this.lastIOException = e; ! } } else if (this.readableSource != null) { ! try ! { ! cb = CharBuffer.allocate (1000); ! this.needInput = true; ! len = this.readableSource.read (cb); ! if (len < 0) ! { ! return; ! } ! this.needInput = false; ! tmpStr = new String (cb.array ()); ! this.actBuffer += tmpStr; ! } ! catch (IOException e) ! { ! this.lastIOException = e; ! } } else if (this.rbcSource != null) { ! try ! { ! bb = ByteBuffer.allocate (1000); ! this.needInput = true; ! len = this.rbcSource.read (bb); ! this.needInput = false; ! if (len < 0) ! { ! return; ! } ! if (this.charsetName != null) ! { ! tmpStr = new String (bb.array (), 0, len, this.charsetName); ! } ! else ! { ! tmpStr = new String (bb.array (), 0, len); ! } ! this.actBuffer += tmpStr; ! } ! catch (IOException e) ! { ! this.lastIOException = e; ! } } this.myMatcher.reset (this.actBuffer); --- 1730,1803 ---- if (this.bIS != null) { ! try ! { ! len = this.bIS.read (this.tmpBuffer); ! if (len < 0) ! { ! return; ! } ! if (this.charsetName != null) ! { ! tmpStr = new String (this.tmpBuffer, 0, len, this.charsetName); ! } ! else ! { ! tmpStr = new String (this.tmpBuffer, 0, len); ! } ! this.actBuffer += tmpStr; ! } ! catch (IOException e) ! { ! this.lastIOException = e; ! } } else if (this.readableSource != null) { ! try ! { ! cb = CharBuffer.allocate (1000); ! this.needInput = true; ! len = this.readableSource.read (cb); ! if (len < 0) ! { ! return; ! } ! this.needInput = false; ! tmpStr = new String (cb.array ()); ! this.actBuffer += tmpStr; ! } ! catch (IOException e) ! { ! this.lastIOException = e; ! } } else if (this.rbcSource != null) { ! try ! { ! bb = ByteBuffer.allocate (1000); ! this.needInput = true; ! len = this.rbcSource.read (bb); ! this.needInput = false; ! if (len < 0) ! { ! return; ! } ! if (this.charsetName != null) ! { ! tmpStr = new String (bb.array (), 0, len, this.charsetName); ! } ! else ! { ! tmpStr = new String (bb.array (), 0, len); ! } ! this.actBuffer += tmpStr; ! } ! catch (IOException e) ! { ! this.lastIOException = e; ! } } this.myMatcher.reset (this.actBuffer); *************** public class Scanner *** 1805,1811 **** * A loop in which the {@link #myFillBuffer()} is called and checked * if the pattern is found in the matcher and if the buffersize * changes after the read. ! * * @param aktM * The current Matcher. * @param pos --- 1807,1813 ---- * A loop in which the {@link #myFillBuffer()} is called and checked * if the pattern is found in the matcher and if the buffersize * changes after the read. ! * * @param aktM * The current Matcher. * @param pos *************** public class Scanner *** 1815,1836 **** * @return true if the matcher has found a match. */ private boolean myFillBuffer_loop (final Matcher aktM, final int pos, ! boolean found) { int tmp; tmp = this.actBuffer.length (); while (aktM.hitEnd () ! && ((this.bIS != null) || (this.readableSource != null) ! || (this.rbcSource != null))) { ! myFillBuffer (); ! if (tmp == this.actBuffer.length ()) ! { ! break; ! } ! found = aktM.find (pos); ! this.needInput = true; } return found; } --- 1817,1838 ---- * @return true if the matcher has found a match. */ private boolean myFillBuffer_loop (final Matcher aktM, final int pos, ! boolean found) { int tmp; tmp = this.actBuffer.length (); while (aktM.hitEnd () ! && ((this.bIS != null) || (this.readableSource != null) ! || (this.rbcSource != null))) { ! myFillBuffer (); ! if (tmp == this.actBuffer.length ()) ! { ! break; ! } ! found = aktM.find (pos); ! this.needInput = true; } return found; } *************** public class Scanner *** 1841,1847 **** * overwritten using the given pattern and the given Sting.
                            * After the search the original values are restored, and skipped is * set true . ! * * @param pattern * Pattern which should be matched. * @param str --- 1843,1849 ---- * overwritten using the given pattern and the given Sting.
                            * After the search the original values are restored, and skipped is * set true . ! * * @param pattern * Pattern which should be matched. * @param str *************** public class Scanner *** 1851,1857 **** * @return Returns the String in the given String that matches the pattern. */ private String myFindPInStr (final Pattern pattern, final String str, ! final int horizon) { String rc = null; int curPos = this.actPos; --- 1853,1859 ---- * @return Returns the String in the given String that matches the pattern. */ private String myFindPInStr (final Pattern pattern, final String str, ! final int horizon) { String rc = null; int curPos = this.actPos; *************** public class Scanner *** 1860,1868 **** this.myMatcher = pattern.matcher (str); if (horizon > 0) { ! this.myMatcher.useAnchoringBounds (true); ! this.myMatcher.useTransparentBounds (true); ! this.myMatcher.region (this.actPos, this.actPos + horizon); } rc = myCoreNext (true, pattern); this.myMatcher = aktMatcher; --- 1862,1870 ---- this.myMatcher = pattern.matcher (str); if (horizon > 0) { ! this.myMatcher.useAnchoringBounds (true); ! this.myMatcher.useTransparentBounds (true); ! this.myMatcher.region (this.actPos, this.actPos + horizon); } rc = myCoreNext (true, pattern); this.myMatcher = aktMatcher; *************** public class Scanner *** 1880,1886 **** * subsring.
                            Finally the current Buffer and matcher (which have * been temporarily changed) are set back.

                            The {@link * #skipped} is set true . ! * * @param pattern * Pattern to find until the current delimiter. * @param delete --- 1882,1888 ---- * subsring.
                            Finally the current Buffer and matcher (which have * been temporarily changed) are set back.

                            The {@link * #skipped} is set true . ! * * @param pattern * Pattern to find until the current delimiter. * @param delete *************** public class Scanner *** 1917,1923 **** * and useLocale is true . Afterwards it is tried to * call the Constructor of a {@link BigInteger} with the given * radix. ! * * @param radix The radix to use. * @param delete If the found String should be removed from input or * not. --- 1919,1925 ---- * and useLocale is true . Afterwards it is tried to * call the Constructor of a {@link BigInteger} with the given * radix. ! * * @param radix The radix to use. * @param delete If the found String should be removed from input or * not. *************** public class Scanner *** 1927,1933 **** * If there is a {@link ParseException} or a {@link NumberFormatException}. */ private BigInteger myNextBigInteger (final int radix, final boolean delete, ! final String name) { BigInteger rc; String tmp = myPrepareForNext (this.p, delete); --- 1929,1935 ---- * If there is a {@link ParseException} or a {@link NumberFormatException}. */ private BigInteger myNextBigInteger (final int radix, final boolean delete, ! final String name) { BigInteger rc; String tmp = myPrepareForNext (this.p, delete); *************** public class Scanner *** 1952,1958 **** * an {@link InputMismatchException} is thrown. It ignores the case * of the string so that "true" and "TRUE" and even "TrUe" are * accepted. ! * * @param delete Should the found value be removed from the input or * not. * @return Returns the boolean value (if it is a boolean). --- 1954,1960 ---- * an {@link InputMismatchException} is thrown. It ignores the case * of the string so that "true" and "TRUE" and even "TrUe" are * accepted. ! * * @param delete Should the found value be removed from the input or * not. * @return Returns the boolean value (if it is a boolean). *************** public class Scanner *** 1965,1979 **** String tmp = myPrepareForNext (this.p, delete); if (tmp.equalsIgnoreCase ("true")) { ! return true; } else if (tmp.equalsIgnoreCase ("false")) { ! return false; } else { ! throw new InputMismatchException (ERR_PREFIX + tmp + NOT_BOOLEAN); } } --- 1967,1981 ---- String tmp = myPrepareForNext (this.p, delete); if (tmp.equalsIgnoreCase ("true")) { ! return true; } else if (tmp.equalsIgnoreCase ("false")) { ! return false; } else { ! throw new InputMismatchException (ERR_PREFIX + tmp + NOT_BOOLEAN); } } *************** public class Scanner *** 1983,1996 **** * String matching the current delimier. Afterwards it is tryed to * convert the String into a byte. Any Error will lead into a {@link * InputMismatchException}. ! * * @param radix The radix to use. * @param delete Should the found String be removed from the input. * @return Returns the byte value of the String. * @throws InputMismatchException if the next String is not a byte. */ private byte myNextByte (final int radix, ! final boolean delete) throws InputMismatchException { byte rc; String tmp = myPrepareForNext (this.p, delete); --- 1985,1998 ---- * String matching the current delimier. Afterwards it is tryed to * convert the String into a byte. Any Error will lead into a {@link * InputMismatchException}. ! * * @param radix The radix to use. * @param delete Should the found String be removed from the input. * @return Returns the byte value of the String. * @throws InputMismatchException if the next String is not a byte. */ private byte myNextByte (final int radix, ! final boolean delete) throws InputMismatchException { byte rc; String tmp = myPrepareForNext (this.p, delete); *************** public class Scanner *** 2018,2024 **** * don't match, an {@link InputMismatchException} is thrown.
                            *
                            The radix used is always 10 even if the global radix is * changed. ! * * @param delete Should the String be removed, if true it will be * also removed if the String is not a double value. * @return Returns the double value of the next String. --- 2020,2026 ---- * don't match, an {@link InputMismatchException} is thrown.
                            *
                            The radix used is always 10 even if the global radix is * changed. ! * * @param delete Should the String be removed, if true it will be * also removed if the String is not a double value. * @return Returns the double value of the next String. *************** public class Scanner *** 2036,2044 **** tmp = myApplyLocale (tmp, 10); rc = Double.parseDouble (tmp); if (("" + rc).equals (tmp)) ! { ! return rc; ! } } catch (ParseException e) { --- 2038,2046 ---- tmp = myApplyLocale (tmp, 10); rc = Double.parseDouble (tmp); if (("" + rc).equals (tmp)) ! { ! return rc; ! } } catch (ParseException e) { *************** public class Scanner *** 2052,2058 **** * should be applied or not and then the result is parsed using * {@link Integer#parseInt(String, int)}. Any Error will lead to an * {@link InputMismatchException}. ! * * @param radix The radix to use. * @param delete true if the String should be deleted * from the input. --- 2054,2060 ---- * should be applied or not and then the result is parsed using * {@link Integer#parseInt(String, int)}. Any Error will lead to an * {@link InputMismatchException}. ! * * @param radix The radix to use. * @param delete true if the String should be deleted * from the input. *************** public class Scanner *** 2060,2074 **** * @throws InputMismatchException if the next String is not an int. */ private int myNextInt (final int radix, ! final boolean delete) throws InputMismatchException { int rc; String tmp = myPrepareForNext (this.p, delete); try { ! tmp = myApplyLocale (tmp, radix); ! rc = Integer.parseInt (tmp, radix); ! return rc; } catch (NumberFormatException nfe) { --- 2062,2076 ---- * @throws InputMismatchException if the next String is not an int. */ private int myNextInt (final int radix, ! final boolean delete) throws InputMismatchException { int rc; String tmp = myPrepareForNext (this.p, delete); try { ! tmp = myApplyLocale (tmp, radix); ! rc = Integer.parseInt (tmp, radix); ! return rc; } catch (NumberFormatException nfe) { *************** public class Scanner *** 2082,2119 **** /** * Finds the next line using the {@link #NEW_LINE} constant which is * set to the system specific line seperator. ! * ! * @param delete Should the found line be deleted from the input. ! * @return Returns the current line. */ private String myNextLine (final boolean delete) { ! String rc = null; ! rc = myPrepareForNext (Pattern.compile (NEW_LINE), delete); ! return rc; } /** * Tries to interpret the next String as a long value with the given * radix. Therfore the {@link Long#parseLong(String, int)} is called * and every Error will lead into a {@link InputMismatchException}. ! * * @param radix The radix to be used. * @param delete Should the found String be deleted from the input. * @return the long value of the next String. * @throws InputMismatchException if the next String is not a long. */ private long myNextLong (final int radix, ! final boolean delete) throws InputMismatchException { long rc; String tmp = myPrepareForNext (this.p, delete); try { ! tmp = myApplyLocale (tmp, radix); ! rc = Long.parseLong (tmp, radix); ! return rc; } catch (NumberFormatException nfe) { --- 2084,2119 ---- /** * Finds the next line using the {@link #NEW_LINE} constant which is * set to the system specific line seperator. ! * ! * @param delete should the found line be deleted from the input. ! * @return the current line. */ private String myNextLine (final boolean delete) { ! return myPrepareForNext (Pattern.compile (NEW_LINE), delete); } /** * Tries to interpret the next String as a long value with the given * radix. Therfore the {@link Long#parseLong(String, int)} is called * and every Error will lead into a {@link InputMismatchException}. ! * * @param radix The radix to be used. * @param delete Should the found String be deleted from the input. * @return the long value of the next String. * @throws InputMismatchException if the next String is not a long. */ private long myNextLong (final int radix, ! final boolean delete) throws InputMismatchException { long rc; String tmp = myPrepareForNext (this.p, delete); try { ! tmp = myApplyLocale (tmp, radix); ! rc = Long.parseLong (tmp, radix); ! return rc; } catch (NumberFormatException nfe) { *************** public class Scanner *** 2129,2135 **** * given radix. Therfore the {@link Short#parseShort(String, int)} * is called and every Error will lead into a {@link * InputMismatchException} . ! * * @param radix * The radix to be used. * @param delete --- 2129,2135 ---- * given radix. Therfore the {@link Short#parseShort(String, int)} * is called and every Error will lead into a {@link * InputMismatchException} . ! * * @param radix * The radix to be used. * @param delete *************** public class Scanner *** 2139,2155 **** * if the next String is not a short. */ private short myNextShort (final int radix, ! final boolean delete) throws InputMismatchException { short rc; String tmp = myPrepareForNext (this.p, delete); ! try { ! tmp = myApplyLocale (tmp, radix); ! rc = Short.parseShort (tmp, radix); ! return rc; } catch (NumberFormatException nfe) { --- 2139,2155 ---- * if the next String is not a short. */ private short myNextShort (final int radix, ! final boolean delete) throws InputMismatchException { short rc; String tmp = myPrepareForNext (this.p, delete); ! try { ! tmp = myApplyLocale (tmp, radix); ! rc = Short.parseShort (tmp, radix); ! return rc; } catch (NumberFormatException nfe) { *************** public class Scanner *** 2158,2178 **** { } throw new InputMismatchException (ERR_PREFIX + tmp + ! "\" is not a short"); } /** * Sets the current pattern to the given pattern and calls the * {@link #myCoreNext(boolean, Pattern)}. Finally sets the pattern * back to its old value. ! * * @param aktPattern Pattern to be used for the next match. * @param delete Should the found String be deleted or not. * @return Return the String returned from {@link * #myCoreNext(boolean, Pattern)}. */ private String myPrepareForNext (final Pattern aktPattern, ! final boolean delete) { String rc; --- 2158,2178 ---- { } throw new InputMismatchException (ERR_PREFIX + tmp + ! "\" is not a short"); } /** * Sets the current pattern to the given pattern and calls the * {@link #myCoreNext(boolean, Pattern)}. Finally sets the pattern * back to its old value. ! * * @param aktPattern Pattern to be used for the next match. * @param delete Should the found String be deleted or not. * @return Return the String returned from {@link * #myCoreNext(boolean, Pattern)}. */ private String myPrepareForNext (final Pattern aktPattern, ! final boolean delete) { String rc; *************** public class Scanner *** 2190,2221 **** * Determinates if the last found can be used, so that after a * hasNextXXX the nextXXX has not to search if nothing has * changed.
                            Used in {@link #myCoreNext(boolean, Pattern)}. ! * * @param aktP The pattern which should be checked. * @return true if the searchresult is already ready. */ private boolean shallUseLastFound (final Pattern aktP) { if (this.lastFoundPresent && ! this.lastPatternHash == aktP.hashCode () && ! this.last_RegionStart == this.myMatcher.regionStart () && ! this.last_anchor == this.myMatcher.hasAnchoringBounds () && ! this.last_transparent == this.myMatcher.hasTransparentBounds ()) { ! if (this.last_RegionEnd != this.myMatcher.regionEnd ()) ! { ! int tmpVal = ! this.myMatcher.regionEnd () - ! this.last_RegionEnd - this.MAX_PREFIX; ! if (tmpVal > 0 && tmpVal < 20) ! { ! this.last_RegionEnd = ! this.myMatcher.regionEnd (); ! return true; ! } ! } ! else ! return true; } return false; } --- 2190,2221 ---- * Determinates if the last found can be used, so that after a * hasNextXXX the nextXXX has not to search if nothing has * changed.
                            Used in {@link #myCoreNext(boolean, Pattern)}. ! * * @param aktP The pattern which should be checked. * @return true if the searchresult is already ready. */ private boolean shallUseLastFound (final Pattern aktP) { if (this.lastFoundPresent && ! this.lastPatternHash == aktP.hashCode () && ! this.last_RegionStart == this.myMatcher.regionStart () && ! this.last_anchor == this.myMatcher.hasAnchoringBounds () && ! this.last_transparent == this.myMatcher.hasTransparentBounds ()) { ! if (this.last_RegionEnd != this.myMatcher.regionEnd ()) ! { ! int tmpVal = ! this.myMatcher.regionEnd () - ! this.last_RegionEnd - this.MAX_PREFIX; ! if (tmpVal > 0 && tmpVal < 20) ! { ! this.last_RegionEnd = ! this.myMatcher.regionEnd (); ! return true; ! } ! } ! else ! return true; } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/ServiceConfigurationError.java gcc-4.6.0/libjava/classpath/java/util/ServiceConfigurationError.java *** gcc-4.5.2/libjava/classpath/java/util/ServiceConfigurationError.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/ServiceConfigurationError.java Tue Jan 11 19:46:05 2011 *************** package java.util; *** 50,63 **** *
                          • A listed class does not implement the service
                          • *
                          • A listed class can not be instantiated
                          • * ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.6 */ public class ServiceConfigurationError extends Error { ! /** * Compatible with JDK 1.6 */ --- 50,63 ---- *
                          • A listed class does not implement the service
                          • *
                          • A listed class can not be instantiated
                          • * ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.6 */ public class ServiceConfigurationError extends Error { ! /** * Compatible with JDK 1.6 */ *************** public class ServiceConfigurationError *** 86,92 **** * or inappropriate. */ public ServiceConfigurationError(String message, ! Throwable cause) { super(message,cause); } --- 86,92 ---- * or inappropriate. */ public ServiceConfigurationError(String message, ! Throwable cause) { super(message,cause); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/ServiceLoader.java gcc-4.6.0/libjava/classpath/java/util/ServiceLoader.java *** gcc-4.5.2/libjava/classpath/java/util/ServiceLoader.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/ServiceLoader.java Tue Jan 11 19:46:05 2011 *************** public final class ServiceLoader *** 149,185 **** { return new Iterator() { ! /** ! * The cache iterator. ! */ ! private Iterator cacheIt = cache.iterator(); ! public boolean hasNext() ! { ! if (cacheIt.hasNext()) ! return true; ! if (serviceIt == null) ! serviceIt = ! ServiceFactory.lookupProviders(spi, loader, true); ! return serviceIt.hasNext(); ! } ! public S next() ! { ! if (cacheIt.hasNext()) ! return cacheIt.next(); ! if (serviceIt == null) ! serviceIt = ! ServiceFactory.lookupProviders(spi, loader, true); ! S nextService = serviceIt.next(); ! cache.add(nextService); ! return nextService; ! } ! public void remove() ! { ! throw new UnsupportedOperationException(); ! } }; } --- 149,185 ---- { return new Iterator() { ! /** ! * The cache iterator. ! */ ! private Iterator cacheIt = cache.iterator(); ! public boolean hasNext() ! { ! if (cacheIt.hasNext()) ! return true; ! if (serviceIt == null) ! serviceIt = ! ServiceFactory.lookupProviders(spi, loader, true); ! return serviceIt.hasNext(); ! } ! public S next() ! { ! if (cacheIt.hasNext()) ! return cacheIt.next(); ! if (serviceIt == null) ! serviceIt = ! ServiceFactory.lookupProviders(spi, loader, true); ! S nextService = serviceIt.next(); ! cache.add(nextService); ! return nextService; ! } ! public void remove() ! { ! throw new UnsupportedOperationException(); ! } }; } *************** public final class ServiceLoader *** 196,202 **** public static ServiceLoader load(Class service) { return load(service, ! Thread.currentThread().getContextClassLoader()); } /** --- 196,202 ---- public static ServiceLoader load(Class service) { return load(service, ! Thread.currentThread().getContextClassLoader()); } /** *************** public final class ServiceLoader *** 215,221 **** * @return a new {@link ServiceLoader} instance. */ public static ServiceLoader load(Class service, ! ClassLoader loader) { if (loader == null) loader = ClassLoader.getSystemClassLoader(); --- 215,221 ---- * @return a new {@link ServiceLoader} instance. */ public static ServiceLoader load(Class service, ! ClassLoader loader) { if (loader == null) loader = ClassLoader.getSystemClassLoader(); *************** public final class ServiceLoader *** 244,250 **** * of the system class loader, as in * ClassLoader.getDefaultSystemClassLoader() */ return load(service, ! ClassLoader.getSystemClassLoader().getParent()); } /** --- 244,250 ---- * of the system class loader, as in * ClassLoader.getDefaultSystemClassLoader() */ return load(service, ! ClassLoader.getSystemClassLoader().getParent()); } /** *************** public final class ServiceLoader *** 258,265 **** /** * Returns a textual representation of this ! * {@link ServiceLoader}. ! * * @return a textual representation of the * service loader. */ --- 258,265 ---- /** * Returns a textual representation of this ! * {@link ServiceLoader}. ! * * @return a textual representation of the * service loader. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/SimpleTimeZone.java gcc-4.6.0/libjava/classpath/java/util/SimpleTimeZone.java *** gcc-4.5.2/libjava/classpath/java/util/SimpleTimeZone.java Mon Jan 28 17:08:39 2008 --- gcc-4.6.0/libjava/classpath/java/util/SimpleTimeZone.java Tue Jan 11 19:46:05 2011 *************** public class SimpleTimeZone extends Time *** 211,217 **** * @serial */ private byte[] monthLength = monthArr; ! private static final byte[] monthArr = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 --- 211,217 ---- * @serial */ private byte[] monthLength = monthArr; ! private static final byte[] monthArr = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 *************** public class SimpleTimeZone extends Time *** 382,388 **** int endTime, int endTimeMode, int dstSavings) { this(rawOffset, id, startMonth, startDayOfWeekInMonth, startDayOfWeek, ! startTime, endMonth, endDayOfWeekInMonth, endDayOfWeek, endTime); if (startTimeMode < WALL_TIME || startTimeMode > UTC_TIME) throw new IllegalArgumentException("startTimeMode must be one of WALL_TIME, STANDARD_TIME, or UTC_TIME"); --- 382,388 ---- int endTime, int endTimeMode, int dstSavings) { this(rawOffset, id, startMonth, startDayOfWeekInMonth, startDayOfWeek, ! startTime, endMonth, endDayOfWeekInMonth, endDayOfWeek, endTime); if (startTimeMode < WALL_TIME || startTimeMode > UTC_TIME) throw new IllegalArgumentException("startTimeMode must be one of WALL_TIME, STANDARD_TIME, or UTC_TIME"); *************** public class SimpleTimeZone extends Time *** 425,452 **** int daysInMonth = getDaysInMonth(month, 1); if (dayOfWeek == 0) { ! if (day <= 0 || day > daysInMonth) ! throw new IllegalArgumentException("day out of range"); ! return DOM_MODE; } else if (dayOfWeek > 0) { ! if (Math.abs(day) > (daysInMonth + 6) / 7) ! throw new IllegalArgumentException("dayOfWeekInMonth out of range"); ! if (dayOfWeek > Calendar.SATURDAY) ! throw new IllegalArgumentException("dayOfWeek out of range"); ! return DOW_IN_MONTH_MODE; } else { ! if (day == 0 || Math.abs(day) > daysInMonth) ! throw new IllegalArgumentException("day out of range"); ! if (dayOfWeek < -Calendar.SATURDAY) ! throw new IllegalArgumentException("dayOfWeek out of range"); ! if (day < 0) ! return DOW_LE_DOM_MODE; ! else ! return DOW_GE_DOM_MODE; } } --- 425,452 ---- int daysInMonth = getDaysInMonth(month, 1); if (dayOfWeek == 0) { ! if (day <= 0 || day > daysInMonth) ! throw new IllegalArgumentException("day out of range"); ! return DOM_MODE; } else if (dayOfWeek > 0) { ! if (Math.abs(day) > (daysInMonth + 6) / 7) ! throw new IllegalArgumentException("dayOfWeekInMonth out of range"); ! if (dayOfWeek > Calendar.SATURDAY) ! throw new IllegalArgumentException("dayOfWeek out of range"); ! return DOW_IN_MONTH_MODE; } else { ! if (day == 0 || Math.abs(day) > daysInMonth) ! throw new IllegalArgumentException("day out of range"); ! if (dayOfWeek < -Calendar.SATURDAY) ! throw new IllegalArgumentException("dayOfWeek out of range"); ! if (day < 0) ! return DOW_LE_DOM_MODE; ! else ! return DOW_GE_DOM_MODE; } } *************** public class SimpleTimeZone extends Time *** 641,685 **** int daylightSavings = 0; if (useDaylight && era == GregorianCalendar.AD && year >= startYear) { ! int orig_year = year; ! int time = startTime + (startTimeMode == UTC_TIME ? rawOffset : 0); ! // This does only work for Gregorian calendars :-( ! // This is mainly because setStartYear doesn't take an era. ! boolean afterStart = ! isBefore(year, month, day, dayOfWeek, millis, ! startMode, startMonth, startDay, ! startDayOfWeek, time); ! millis += dstSavings; ! if (millis >= 24 * 60 * 60 * 1000) ! { ! millis -= 24 * 60 * 60 * 1000; ! dayOfWeek = (dayOfWeek % 7) + 1; ! if (++day > daysInMonth) ! { ! day = 1; ! if (month++ == Calendar.DECEMBER) ! { ! month = Calendar.JANUARY; ! year++; ! } ! } ! } ! time = endTime + (endTimeMode == UTC_TIME ? rawOffset : 0); ! if (endTimeMode != WALL_TIME) ! time += dstSavings; ! boolean beforeEnd = isBefore(year, month, day, dayOfWeek, millis, ! endMode, endMonth, endDay, endDayOfWeek, ! time); ! if (year != orig_year) ! afterStart = false; ! if (startMonth < endMonth) ! // use daylight savings, if the date is after the start of ! // savings, and before the end of savings. ! daylightSavings = afterStart && beforeEnd ? dstSavings : 0; ! else ! // use daylight savings, if the date is before the end of ! // savings, or after the start of savings. ! daylightSavings = beforeEnd || afterStart ? dstSavings : 0; } return rawOffset + daylightSavings; } --- 641,685 ---- int daylightSavings = 0; if (useDaylight && era == GregorianCalendar.AD && year >= startYear) { ! int orig_year = year; ! int time = startTime + (startTimeMode == UTC_TIME ? rawOffset : 0); ! // This does only work for Gregorian calendars :-( ! // This is mainly because setStartYear doesn't take an era. ! boolean afterStart = ! isBefore(year, month, day, dayOfWeek, millis, ! startMode, startMonth, startDay, ! startDayOfWeek, time); ! millis += dstSavings; ! if (millis >= 24 * 60 * 60 * 1000) ! { ! millis -= 24 * 60 * 60 * 1000; ! dayOfWeek = (dayOfWeek % 7) + 1; ! if (++day > daysInMonth) ! { ! day = 1; ! if (month++ == Calendar.DECEMBER) ! { ! month = Calendar.JANUARY; ! year++; ! } ! } ! } ! time = endTime + (endTimeMode == UTC_TIME ? rawOffset : 0); ! if (endTimeMode != WALL_TIME) ! time += dstSavings; ! boolean beforeEnd = isBefore(year, month, day, dayOfWeek, millis, ! endMode, endMonth, endDay, endDayOfWeek, ! time); ! if (year != orig_year) ! afterStart = false; ! if (startMonth < endMonth) ! // use daylight savings, if the date is after the start of ! // savings, and before the end of savings. ! daylightSavings = afterStart && beforeEnd ? dstSavings : 0; ! else ! // use daylight savings, if the date is before the end of ! // savings, or after the start of savings. ! daylightSavings = beforeEnd || afterStart ? dstSavings : 0; } return rawOffset + daylightSavings; } *************** public class SimpleTimeZone extends Time *** 748,766 **** * @param year The year. */ private int getDaysInMonth(int month, int year) ! { if (month == Calendar.FEBRUARY) { ! if ((year & 3) != 0) ! return 28; ! // Assume default Gregorian cutover, ! // all years prior to this must be Julian ! if (year < 1582) ! return 29; ! // Gregorian rules ! return ((year % 100) != 0 || (year % 400) == 0) ? 29 : 28; } else return monthArr[month]; --- 748,766 ---- * @param year The year. */ private int getDaysInMonth(int month, int year) ! { if (month == Calendar.FEBRUARY) { ! if ((year & 3) != 0) ! return 28; ! // Assume default Gregorian cutover, ! // all years prior to this must be Julian ! if (year < 1582) ! return 29; ! // Gregorian rules ! return ((year % 100) != 0 || (year % 400) == 0) ? 29 : 28; } else return monthArr[month]; *************** public class SimpleTimeZone extends Time *** 800,865 **** switch (mode) { case DOM_MODE: ! if (calDayOfMonth != day) ! return calDayOfMonth < day; ! break; case DOW_IN_MONTH_MODE: { ! // This computes the day of month of the day of type ! // "dayOfWeek" that lies in the same (sunday based) week as cal. ! calDayOfMonth += (dayOfWeek - calDayOfWeek); ! // Now we convert it to 7 based number (to get a one based offset ! // after dividing by 7). If we count from the end of the ! // month, we get want a -7 based number counting the days from ! // the end: ! if (day < 0) ! calDayOfMonth -= getDaysInMonth(calMonth, calYear) + 7; ! else ! calDayOfMonth += 6; ! // day > 0 day < 0 ! // S M T W T F S S M T W T F S ! // 7 8 9 10 11 12 -36-35-34-33-32-31 ! // 13 14 15 16 17 18 19 -30-29-28-27-26-25-24 ! // 20 21 22 23 24 25 26 -23-22-21-20-19-18-17 ! // 27 28 29 30 31 32 33 -16-15-14-13-12-11-10 ! // 34 35 36 -9 -8 -7 ! // Now we calculate the day of week in month: ! int week = calDayOfMonth / 7; ! // day > 0 day < 0 ! // S M T W T F S S M T W T F S ! // 1 1 1 1 1 1 -5 -5 -4 -4 -4 -4 ! // 1 2 2 2 2 2 2 -4 -4 -4 -3 -3 -3 -3 ! // 2 3 3 3 3 3 3 -3 -3 -3 -2 -2 -2 -2 ! // 3 4 4 4 4 4 4 -2 -2 -2 -1 -1 -1 -1 ! // 4 5 5 -1 -1 -1 ! if (week != day) ! return week < day; ! if (calDayOfWeek != dayOfWeek) ! return calDayOfWeek < dayOfWeek; ! // daylight savings starts/ends on the given day. ! break; } case DOW_LE_DOM_MODE: ! // The greatest sunday before or equal December, 12 ! // is the same as smallest sunday after or equal December, 6. ! day = Math.abs(day) - 6; case DOW_GE_DOM_MODE: ! // Calculate the day of month of the day of type ! // "dayOfWeek" that lies before (or on) the given date. ! calDayOfMonth -= (calDayOfWeek < dayOfWeek ? 7 : 0) + calDayOfWeek ! - dayOfWeek; ! if (calDayOfMonth < day) ! return true; ! if (calDayOfWeek != dayOfWeek || calDayOfMonth >= day + 7) ! return false; ! // now we have the same day ! break; } // the millis decides: --- 800,865 ---- switch (mode) { case DOM_MODE: ! if (calDayOfMonth != day) ! return calDayOfMonth < day; ! break; case DOW_IN_MONTH_MODE: { ! // This computes the day of month of the day of type ! // "dayOfWeek" that lies in the same (sunday based) week as cal. ! calDayOfMonth += (dayOfWeek - calDayOfWeek); ! // Now we convert it to 7 based number (to get a one based offset ! // after dividing by 7). If we count from the end of the ! // month, we get want a -7 based number counting the days from ! // the end: ! if (day < 0) ! calDayOfMonth -= getDaysInMonth(calMonth, calYear) + 7; ! else ! calDayOfMonth += 6; ! // day > 0 day < 0 ! // S M T W T F S S M T W T F S ! // 7 8 9 10 11 12 -36-35-34-33-32-31 ! // 13 14 15 16 17 18 19 -30-29-28-27-26-25-24 ! // 20 21 22 23 24 25 26 -23-22-21-20-19-18-17 ! // 27 28 29 30 31 32 33 -16-15-14-13-12-11-10 ! // 34 35 36 -9 -8 -7 ! // Now we calculate the day of week in month: ! int week = calDayOfMonth / 7; ! // day > 0 day < 0 ! // S M T W T F S S M T W T F S ! // 1 1 1 1 1 1 -5 -5 -4 -4 -4 -4 ! // 1 2 2 2 2 2 2 -4 -4 -4 -3 -3 -3 -3 ! // 2 3 3 3 3 3 3 -3 -3 -3 -2 -2 -2 -2 ! // 3 4 4 4 4 4 4 -2 -2 -2 -1 -1 -1 -1 ! // 4 5 5 -1 -1 -1 ! if (week != day) ! return week < day; ! if (calDayOfWeek != dayOfWeek) ! return calDayOfWeek < dayOfWeek; ! // daylight savings starts/ends on the given day. ! break; } case DOW_LE_DOM_MODE: ! // The greatest sunday before or equal December, 12 ! // is the same as smallest sunday after or equal December, 6. ! day = Math.abs(day) - 6; case DOW_GE_DOM_MODE: ! // Calculate the day of month of the day of type ! // "dayOfWeek" that lies before (or on) the given date. ! calDayOfMonth -= (calDayOfWeek < dayOfWeek ? 7 : 0) + calDayOfWeek ! - dayOfWeek; ! if (calDayOfMonth < day) ! return true; ! if (calDayOfWeek != dayOfWeek || calDayOfMonth >= day + 7) ! return false; ! // now we have the same day ! break; } // the millis decides: *************** public class SimpleTimeZone extends Time *** 971,998 **** input.defaultReadObject(); if (serialVersionOnStream == 0) { ! // initialize the new fields to default values. ! dstSavings = 60 * 60 * 1000; ! endMode = DOW_IN_MONTH_MODE; ! startMode = DOW_IN_MONTH_MODE; ! startTimeMode = WALL_TIME; ! endTimeMode = WALL_TIME; ! serialVersionOnStream = 2; } else { ! int length = input.readInt(); ! byte[] byteArray = new byte[length]; ! input.read(byteArray, 0, length); ! if (length >= 4) ! { ! // Lets hope that Sun does extensions to the serialized ! // form in a sane manner. ! startDay = byteArray[0]; ! startDayOfWeek = byteArray[1]; ! endDay = byteArray[2]; ! endDayOfWeek = byteArray[3]; ! } } } --- 971,998 ---- input.defaultReadObject(); if (serialVersionOnStream == 0) { ! // initialize the new fields to default values. ! dstSavings = 60 * 60 * 1000; ! endMode = DOW_IN_MONTH_MODE; ! startMode = DOW_IN_MONTH_MODE; ! startTimeMode = WALL_TIME; ! endTimeMode = WALL_TIME; ! serialVersionOnStream = 2; } else { ! int length = input.readInt(); ! byte[] byteArray = new byte[length]; ! input.read(byteArray, 0, length); ! if (length >= 4) ! { ! // Lets hope that Sun does extensions to the serialized ! // form in a sane manner. ! startDay = byteArray[0]; ! startDayOfWeek = byteArray[1]; ! endDay = byteArray[2]; ! endDayOfWeek = byteArray[3]; ! } } } *************** public class SimpleTimeZone extends Time *** 1025,1046 **** switch (startMode) { case DOM_MODE: ! startDayOfWeek = Calendar.SUNDAY; // random day of week // fall through case DOW_GE_DOM_MODE: case DOW_LE_DOM_MODE: ! startDay = (startDay + 6) / 7; } switch (endMode) { case DOM_MODE: ! endDayOfWeek = Calendar.SUNDAY; // fall through case DOW_GE_DOM_MODE: case DOW_LE_DOM_MODE: ! endDay = (endDay + 6) / 7; } // the required part: --- 1025,1046 ---- switch (startMode) { case DOM_MODE: ! startDayOfWeek = Calendar.SUNDAY; // random day of week // fall through case DOW_GE_DOM_MODE: case DOW_LE_DOM_MODE: ! startDay = (startDay + 6) / 7; } switch (endMode) { case DOM_MODE: ! endDayOfWeek = Calendar.SUNDAY; // fall through case DOW_GE_DOM_MODE: case DOW_LE_DOM_MODE: ! endDay = (endDay + 6) / 7; } // the required part: diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/StringTokenizer.java gcc-4.6.0/libjava/classpath/java/util/StringTokenizer.java *** gcc-4.5.2/libjava/classpath/java/util/StringTokenizer.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/StringTokenizer.java Tue Jan 11 19:46:05 2011 *************** public class StringTokenizer implements *** 189,195 **** int start = pos; while (++pos < len && delim.indexOf(str.charAt(pos)) < 0) ; ! return str.substring(start, pos); } throw new NoSuchElementException(); --- 189,195 ---- int start = pos; while (++pos < len && delim.indexOf(str.charAt(pos)) < 0) ; ! return str.substring(start, pos); } throw new NoSuchElementException(); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/TimeZone.java gcc-4.6.0/libjava/classpath/java/util/TimeZone.java *** gcc-4.5.2/libjava/classpath/java/util/TimeZone.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/TimeZone.java Tue Jan 11 19:46:05 2011 *************** import java.text.DateFormatSymbols; *** 50,56 **** /** * This class represents a time zone offset and handles daylight savings. ! * * You can get the default time zone with getDefault. * This represents the time zone where program is running. * --- 50,56 ---- /** * This class represents a time zone offset and handles daylight savings. ! * * You can get the default time zone with getDefault. * This represents the time zone where program is running. * *************** public abstract class TimeZone implement *** 100,135 **** private static synchronized TimeZone defaultZone() { /* Look up default timezone */ ! if (defaultZone0 == null) { ! defaultZone0 = (TimeZone) AccessController.doPrivileged ! (new PrivilegedAction() ! { ! public Object run() ! { ! TimeZone zone = null; ! ! // Prefer System property user.timezone. ! String tzid = System.getProperty("user.timezone"); ! if (tzid != null && !tzid.equals("")) ! zone = getDefaultTimeZone(tzid); ! ! // Try platfom specific way. ! if (zone == null) ! zone = VMTimeZone.getDefaultTimeZoneId(); ! ! // Fall back on GMT. ! if (zone == null) ! zone = getTimeZone ("GMT"); ! ! return zone; ! } ! }); } ! ! return defaultZone0; } ! private static final long serialVersionUID = 3581463369166924961L; /** --- 100,135 ---- private static synchronized TimeZone defaultZone() { /* Look up default timezone */ ! if (defaultZone0 == null) { ! defaultZone0 = (TimeZone) AccessController.doPrivileged ! (new PrivilegedAction() ! { ! public Object run() ! { ! TimeZone zone = null; ! ! // Prefer System property user.timezone. ! String tzid = System.getProperty("user.timezone"); ! if (tzid != null && !tzid.equals("")) ! zone = getDefaultTimeZone(tzid); ! ! // Try platfom specific way. ! if (zone == null) ! zone = VMTimeZone.getDefaultTimeZoneId(); ! ! // Fall back on GMT. ! if (zone == null) ! zone = getTimeZone ("GMT"); ! ! return zone; ! } ! }); } ! ! return defaultZone0; } ! private static final long serialVersionUID = 3581463369166924961L; /** *************** public abstract class TimeZone implement *** 149,904 **** private static HashMap aliases0; /** ! * HashMap for timezones by ID. */ private static HashMap timezones0; /* initialize this static field lazily to overhead if ! * it is not needed: */ // Package-private to avoid a trampoline. static HashMap timezones() { ! if (timezones0 == null) { ! HashMap timezones = new HashMap(); ! timezones0 = timezones; ! zoneinfo_dir = SystemProperties.getProperty("gnu.java.util.zoneinfo.dir"); ! if (zoneinfo_dir != null && !new File(zoneinfo_dir).isDirectory()) ! zoneinfo_dir = null; ! if (zoneinfo_dir != null) ! { ! aliases0 = new HashMap(); ! // These deprecated aliases for JDK 1.1.x compatibility ! // should take precedence over data files read from ! // /usr/share/zoneinfo. ! aliases0.put("ACT", "Australia/Darwin"); ! aliases0.put("AET", "Australia/Sydney"); ! aliases0.put("AGT", "America/Argentina/Buenos_Aires"); ! aliases0.put("ART", "Africa/Cairo"); ! aliases0.put("AST", "America/Juneau"); ! aliases0.put("BST", "Asia/Colombo"); ! aliases0.put("CAT", "Africa/Gaborone"); ! aliases0.put("CNT", "America/St_Johns"); ! aliases0.put("CST", "CST6CDT"); ! aliases0.put("CTT", "Asia/Brunei"); ! aliases0.put("EAT", "Indian/Comoro"); ! aliases0.put("ECT", "CET"); ! aliases0.put("EST", "EST5EDT"); ! aliases0.put("EST5", "EST5EDT"); ! aliases0.put("IET", "EST5EDT"); ! aliases0.put("IST", "Asia/Calcutta"); ! aliases0.put("JST", "Asia/Seoul"); ! aliases0.put("MIT", "Pacific/Niue"); ! aliases0.put("MST", "MST7MDT"); ! aliases0.put("MST7", "MST7MDT"); ! aliases0.put("NET", "Indian/Mauritius"); ! aliases0.put("NST", "Pacific/Auckland"); ! aliases0.put("PLT", "Indian/Kerguelen"); ! aliases0.put("PNT", "MST7MDT"); ! aliases0.put("PRT", "America/Anguilla"); ! aliases0.put("PST", "PST8PDT"); ! aliases0.put("SST", "Pacific/Ponape"); ! aliases0.put("VST", "Asia/Bangkok"); ! return timezones; ! } ! TimeZone tz; ! // Automatically generated by scripts/timezones.pl ! // XXX - Should we read this data from a file? ! tz = new SimpleTimeZone(-11000 * 3600, "MIT"); ! timezones0.put("MIT", tz); ! timezones0.put("Pacific/Apia", tz); ! timezones0.put("Pacific/Midway", tz); ! timezones0.put("Pacific/Niue", tz); ! timezones0.put("Pacific/Pago_Pago", tz); ! tz = new SimpleTimeZone ! (-10000 * 3600, "America/Adak", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Adak", tz); ! tz = new SimpleTimeZone(-10000 * 3600, "HST"); ! timezones0.put("HST", tz); ! timezones0.put("Pacific/Fakaofo", tz); ! timezones0.put("Pacific/Honolulu", tz); ! timezones0.put("Pacific/Johnston", tz); ! timezones0.put("Pacific/Rarotonga", tz); ! timezones0.put("Pacific/Tahiti", tz); ! tz = new SimpleTimeZone(-9500 * 3600, "Pacific/Marquesas"); ! timezones0.put("Pacific/Marquesas", tz); ! tz = new SimpleTimeZone ! (-9000 * 3600, "AST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("AST", tz); ! timezones0.put("America/Anchorage", tz); ! timezones0.put("America/Juneau", tz); ! timezones0.put("America/Nome", tz); ! timezones0.put("America/Yakutat", tz); ! tz = new SimpleTimeZone(-9000 * 3600, "Pacific/Gambier"); ! timezones0.put("Pacific/Gambier", tz); ! tz = new SimpleTimeZone ! (-8000 * 3600, "America/Tijuana", ! Calendar.APRIL, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Tijuana", tz); ! tz = new SimpleTimeZone ! (-8000 * 3600, "PST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("PST", tz); ! timezones0.put("PST8PDT", tz); ! timezones0.put("America/Dawson", tz); ! timezones0.put("America/Los_Angeles", tz); ! timezones0.put("America/Vancouver", tz); ! timezones0.put("America/Whitehorse", tz); ! timezones0.put("US/Pacific-New", tz); ! tz = new SimpleTimeZone(-8000 * 3600, "Pacific/Pitcairn"); ! timezones0.put("Pacific/Pitcairn", tz); ! tz = new SimpleTimeZone ! (-7000 * 3600, "America/Chihuahua", ! Calendar.APRIL, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Chihuahua", tz); ! timezones0.put("America/Mazatlan", tz); ! tz = new SimpleTimeZone(-7000 * 3600, "MST7"); ! timezones0.put("MST7", tz); ! timezones0.put("PNT", tz); ! timezones0.put("America/Dawson_Creek", tz); ! timezones0.put("America/Hermosillo", tz); ! timezones0.put("America/Phoenix", tz); ! tz = new SimpleTimeZone ! (-7000 * 3600, "MST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("MST", tz); ! timezones0.put("MST7MDT", tz); ! timezones0.put("America/Boise", tz); ! timezones0.put("America/Cambridge_Bay", tz); ! timezones0.put("America/Denver", tz); ! timezones0.put("America/Edmonton", tz); ! timezones0.put("America/Inuvik", tz); ! timezones0.put("America/Shiprock", tz); ! timezones0.put("America/Yellowknife", tz); ! tz = new SimpleTimeZone ! (-6000 * 3600, "America/Cancun", ! Calendar.APRIL, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Cancun", tz); ! timezones0.put("America/Merida", tz); ! timezones0.put("America/Mexico_City", tz); ! timezones0.put("America/Monterrey", tz); ! tz = new SimpleTimeZone(-6000 * 3600, "America/Belize"); ! timezones0.put("America/Belize", tz); ! timezones0.put("America/Costa_Rica", tz); ! timezones0.put("America/El_Salvador", tz); ! timezones0.put("America/Guatemala", tz); ! timezones0.put("America/Managua", tz); ! timezones0.put("America/Regina", tz); ! timezones0.put("America/Swift_Current", tz); ! timezones0.put("America/Tegucigalpa", tz); ! timezones0.put("Pacific/Galapagos", tz); ! tz = new SimpleTimeZone ! (-6000 * 3600, "CST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("CST", tz); ! timezones0.put("CST6CDT", tz); ! timezones0.put("America/Chicago", tz); ! timezones0.put("America/Indiana/Knox", tz); ! timezones0.put("America/Indiana/Petersburg", tz); ! timezones0.put("America/Indiana/Vincennes", tz); ! timezones0.put("America/Menominee", tz); ! timezones0.put("America/North_Dakota/Center", tz); ! timezones0.put("America/North_Dakota/New_Salem", tz); ! timezones0.put("America/Rainy_River", tz); ! timezones0.put("America/Rankin_Inlet", tz); ! timezones0.put("America/Winnipeg", tz); ! tz = new SimpleTimeZone ! (-6000 * 3600, "Pacific/Easter", ! Calendar.OCTOBER, 2, Calendar.SATURDAY, 22000 * 3600, ! Calendar.MARCH, 2, Calendar.SATURDAY, 22000 * 3600); ! timezones0.put("Pacific/Easter", tz); ! tz = new SimpleTimeZone(-5000 * 3600, "EST5"); ! timezones0.put("EST5", tz); ! timezones0.put("IET", tz); ! timezones0.put("America/Atikokan", tz); ! timezones0.put("America/Bogota", tz); ! timezones0.put("America/Cayman", tz); ! timezones0.put("America/Eirunepe", tz); ! timezones0.put("America/Guayaquil", tz); ! timezones0.put("America/Jamaica", tz); ! timezones0.put("America/Lima", tz); ! timezones0.put("America/Panama", tz); ! timezones0.put("America/Rio_Branco", tz); ! tz = new SimpleTimeZone ! (-5000 * 3600, "America/Havana", ! Calendar.APRIL, 1, Calendar.SUNDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 1000 * 3600); ! timezones0.put("America/Havana", tz); ! tz = new SimpleTimeZone ! (-5000 * 3600, "America/Grand_Turk", ! Calendar.APRIL, 1, Calendar.SUNDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Grand_Turk", tz); ! timezones0.put("America/Port-au-Prince", tz); ! tz = new SimpleTimeZone ! (-5000 * 3600, "EST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("EST", tz); ! timezones0.put("EST5EDT", tz); ! timezones0.put("America/Detroit", tz); ! timezones0.put("America/Indiana/Indianapolis", tz); ! timezones0.put("America/Indiana/Marengo", tz); ! timezones0.put("America/Indiana/Vevay", tz); ! timezones0.put("America/Iqaluit", tz); ! timezones0.put("America/Kentucky/Louisville", tz); ! timezones0.put("America/Kentucky/Monticello", tz); ! timezones0.put("America/Montreal", tz); ! timezones0.put("America/Nassau", tz); ! timezones0.put("America/New_York", tz); ! timezones0.put("America/Nipigon", tz); ! timezones0.put("America/Pangnirtung", tz); ! timezones0.put("America/Thunder_Bay", tz); ! timezones0.put("America/Toronto", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Asuncion", ! Calendar.OCTOBER, 3, Calendar.SUNDAY, 0 * 3600, ! Calendar.MARCH, 2, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Asuncion", tz); ! tz = new SimpleTimeZone(-4000 * 3600, "PRT"); ! timezones0.put("PRT", tz); ! timezones0.put("America/Anguilla", tz); ! timezones0.put("America/Antigua", tz); ! timezones0.put("America/Aruba", tz); ! timezones0.put("America/Barbados", tz); ! timezones0.put("America/Blanc-Sablon", tz); ! timezones0.put("America/Boa_Vista", tz); ! timezones0.put("America/Caracas", tz); ! timezones0.put("America/Curacao", tz); ! timezones0.put("America/Dominica", tz); ! timezones0.put("America/Grenada", tz); ! timezones0.put("America/Guadeloupe", tz); ! timezones0.put("America/Guyana", tz); ! timezones0.put("America/La_Paz", tz); ! timezones0.put("America/Manaus", tz); ! timezones0.put("America/Martinique", tz); ! timezones0.put("America/Montserrat", tz); ! timezones0.put("America/Port_of_Spain", tz); ! timezones0.put("America/Porto_Velho", tz); ! timezones0.put("America/Puerto_Rico", tz); ! timezones0.put("America/Santo_Domingo", tz); ! timezones0.put("America/St_Kitts", tz); ! timezones0.put("America/St_Lucia", tz); ! timezones0.put("America/St_Thomas", tz); ! timezones0.put("America/St_Vincent", tz); ! timezones0.put("America/Tortola", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Campo_Grande", ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0 * 3600, ! Calendar.FEBRUARY, -1, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Campo_Grande", tz); ! timezones0.put("America/Cuiaba", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Goose_Bay", ! Calendar.MARCH, 2, Calendar.SUNDAY, 60000, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 60000); ! timezones0.put("America/Goose_Bay", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Glace_Bay", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Glace_Bay", tz); ! timezones0.put("America/Halifax", tz); ! timezones0.put("America/Moncton", tz); ! timezones0.put("America/Thule", tz); ! timezones0.put("Atlantic/Bermuda", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Santiago", ! Calendar.OCTOBER, 9, -Calendar.SUNDAY, 0 * 3600, ! Calendar.MARCH, 9, -Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Santiago", tz); ! timezones0.put("Antarctica/Palmer", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "Atlantic/Stanley", ! Calendar.SEPTEMBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.APRIL, 3, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("Atlantic/Stanley", tz); ! tz = new SimpleTimeZone ! (-3500 * 3600, "CNT", ! Calendar.MARCH, 2, Calendar.SUNDAY, 60000, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 60000); ! timezones0.put("CNT", tz); ! timezones0.put("America/St_Johns", tz); ! tz = new SimpleTimeZone ! (-3000 * 3600, "America/Godthab", ! Calendar.MARCH, 30, -Calendar.SATURDAY, 22000 * 3600, ! Calendar.OCTOBER, 30, -Calendar.SATURDAY, 23000 * 3600); ! timezones0.put("America/Godthab", tz); ! tz = new SimpleTimeZone ! (-3000 * 3600, "America/Miquelon", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Miquelon", tz); ! tz = new SimpleTimeZone ! (-3000 * 3600, "America/Montevideo", ! Calendar.OCTOBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Montevideo", tz); ! tz = new SimpleTimeZone ! (-3000 * 3600, "America/Sao_Paulo", ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0 * 3600, ! Calendar.FEBRUARY, -1, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Sao_Paulo", tz); ! tz = new SimpleTimeZone(-3000 * 3600, "AGT"); ! timezones0.put("AGT", tz); ! timezones0.put("America/Araguaina", tz); ! timezones0.put("America/Argentina/Buenos_Aires", tz); ! timezones0.put("America/Argentina/Catamarca", tz); ! timezones0.put("America/Argentina/Cordoba", tz); ! timezones0.put("America/Argentina/Jujuy", tz); ! timezones0.put("America/Argentina/La_Rioja", tz); ! timezones0.put("America/Argentina/Mendoza", tz); ! timezones0.put("America/Argentina/Rio_Gallegos", tz); ! timezones0.put("America/Argentina/San_Juan", tz); ! timezones0.put("America/Argentina/Tucuman", tz); ! timezones0.put("America/Argentina/Ushuaia", tz); ! timezones0.put("America/Bahia", tz); ! timezones0.put("America/Belem", tz); ! timezones0.put("America/Cayenne", tz); ! timezones0.put("America/Fortaleza", tz); ! timezones0.put("America/Maceio", tz); ! timezones0.put("America/Paramaribo", tz); ! timezones0.put("America/Recife", tz); ! timezones0.put("Antarctica/Rothera", tz); ! tz = new SimpleTimeZone(-2000 * 3600, "America/Noronha"); ! timezones0.put("America/Noronha", tz); ! timezones0.put("Atlantic/South_Georgia", tz); ! tz = new SimpleTimeZone ! (-1000 * 3600, "America/Scoresbysund", ! Calendar.MARCH, -1, Calendar.SUNDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 1000 * 3600); ! timezones0.put("America/Scoresbysund", tz); ! timezones0.put("Atlantic/Azores", tz); ! tz = new SimpleTimeZone(-1000 * 3600, "Atlantic/Cape_Verde"); ! timezones0.put("Atlantic/Cape_Verde", tz); ! tz = new SimpleTimeZone(0 * 3600, "GMT"); ! timezones0.put("GMT", tz); ! timezones0.put("UTC", tz); ! timezones0.put("Africa/Abidjan", tz); ! timezones0.put("Africa/Accra", tz); ! timezones0.put("Africa/Bamako", tz); ! timezones0.put("Africa/Banjul", tz); ! timezones0.put("Africa/Bissau", tz); ! timezones0.put("Africa/Casablanca", tz); ! timezones0.put("Africa/Conakry", tz); ! timezones0.put("Africa/Dakar", tz); ! timezones0.put("Africa/El_Aaiun", tz); ! timezones0.put("Africa/Freetown", tz); ! timezones0.put("Africa/Lome", tz); ! timezones0.put("Africa/Monrovia", tz); ! timezones0.put("Africa/Nouakchott", tz); ! timezones0.put("Africa/Ouagadougou", tz); ! timezones0.put("Africa/Sao_Tome", tz); ! timezones0.put("America/Danmarkshavn", tz); ! timezones0.put("Atlantic/Reykjavik", tz); ! timezones0.put("Atlantic/St_Helena", tz); ! tz = new SimpleTimeZone ! (0 * 3600, "WET", ! Calendar.MARCH, -1, Calendar.SUNDAY, 1000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("WET", tz); ! timezones0.put("Atlantic/Canary", tz); ! timezones0.put("Atlantic/Faroe", tz); ! timezones0.put("Atlantic/Madeira", tz); ! timezones0.put("Europe/Dublin", tz); ! timezones0.put("Europe/Guernsey", tz); ! timezones0.put("Europe/Isle_of_Man", tz); ! timezones0.put("Europe/Jersey", tz); ! timezones0.put("Europe/Lisbon", tz); ! timezones0.put("Europe/London", tz); ! tz = new SimpleTimeZone(1000 * 3600, "Africa/Algiers"); ! timezones0.put("Africa/Algiers", tz); ! timezones0.put("Africa/Bangui", tz); ! timezones0.put("Africa/Brazzaville", tz); ! timezones0.put("Africa/Douala", tz); ! timezones0.put("Africa/Kinshasa", tz); ! timezones0.put("Africa/Lagos", tz); ! timezones0.put("Africa/Libreville", tz); ! timezones0.put("Africa/Luanda", tz); ! timezones0.put("Africa/Malabo", tz); ! timezones0.put("Africa/Ndjamena", tz); ! timezones0.put("Africa/Niamey", tz); ! timezones0.put("Africa/Porto-Novo", tz); ! tz = new SimpleTimeZone ! (1000 * 3600, "Africa/Windhoek", ! Calendar.SEPTEMBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.APRIL, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("Africa/Windhoek", tz); ! tz = new SimpleTimeZone ! (1000 * 3600, "CET", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("CET", tz); ! timezones0.put("ECT", tz); ! timezones0.put("MET", tz); ! timezones0.put("Africa/Ceuta", tz); ! timezones0.put("Africa/Tunis", tz); ! timezones0.put("Arctic/Longyearbyen", tz); ! timezones0.put("Atlantic/Jan_Mayen", tz); ! timezones0.put("Europe/Amsterdam", tz); ! timezones0.put("Europe/Andorra", tz); ! timezones0.put("Europe/Belgrade", tz); ! timezones0.put("Europe/Berlin", tz); ! timezones0.put("Europe/Bratislava", tz); ! timezones0.put("Europe/Brussels", tz); ! timezones0.put("Europe/Budapest", tz); ! timezones0.put("Europe/Copenhagen", tz); ! timezones0.put("Europe/Gibraltar", tz); ! timezones0.put("Europe/Ljubljana", tz); ! timezones0.put("Europe/Luxembourg", tz); ! timezones0.put("Europe/Madrid", tz); ! timezones0.put("Europe/Malta", tz); ! timezones0.put("Europe/Monaco", tz); ! timezones0.put("Europe/Oslo", tz); ! timezones0.put("Europe/Paris", tz); ! timezones0.put("Europe/Podgorica", tz); ! timezones0.put("Europe/Prague", tz); ! timezones0.put("Europe/Rome", tz); ! timezones0.put("Europe/San_Marino", tz); ! timezones0.put("Europe/Sarajevo", tz); ! timezones0.put("Europe/Skopje", tz); ! timezones0.put("Europe/Stockholm", tz); ! timezones0.put("Europe/Tirane", tz); ! timezones0.put("Europe/Vaduz", tz); ! timezones0.put("Europe/Vatican", tz); ! timezones0.put("Europe/Vienna", tz); ! timezones0.put("Europe/Warsaw", tz); ! timezones0.put("Europe/Zagreb", tz); ! timezones0.put("Europe/Zurich", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "ART", ! Calendar.APRIL, -1, Calendar.FRIDAY, 0 * 3600, ! Calendar.SEPTEMBER, -1, Calendar.THURSDAY, 24000 * 3600); ! timezones0.put("ART", tz); ! timezones0.put("Africa/Cairo", tz); ! tz = new SimpleTimeZone(2000 * 3600, "CAT"); ! timezones0.put("CAT", tz); ! timezones0.put("Africa/Blantyre", tz); ! timezones0.put("Africa/Bujumbura", tz); ! timezones0.put("Africa/Gaborone", tz); ! timezones0.put("Africa/Harare", tz); ! timezones0.put("Africa/Johannesburg", tz); ! timezones0.put("Africa/Kigali", tz); ! timezones0.put("Africa/Lubumbashi", tz); ! timezones0.put("Africa/Lusaka", tz); ! timezones0.put("Africa/Maputo", tz); ! timezones0.put("Africa/Maseru", tz); ! timezones0.put("Africa/Mbabane", tz); ! timezones0.put("Africa/Tripoli", tz); ! timezones0.put("Asia/Jerusalem", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Asia/Amman", ! Calendar.MARCH, -1, Calendar.THURSDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.FRIDAY, 1000 * 3600); ! timezones0.put("Asia/Amman", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Asia/Beirut", ! Calendar.MARCH, -1, Calendar.SUNDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("Asia/Beirut", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Asia/Damascus", ! Calendar.APRIL, 1, 0, 0 * 3600, ! Calendar.OCTOBER, 1, 0, 0 * 3600); ! timezones0.put("Asia/Damascus", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Asia/Gaza", ! Calendar.APRIL, 1, 0, 0 * 3600, ! Calendar.OCTOBER, 3, Calendar.FRIDAY, 0 * 3600); ! timezones0.put("Asia/Gaza", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "EET", ! Calendar.MARCH, -1, Calendar.SUNDAY, 3000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 4000 * 3600); ! timezones0.put("EET", tz); ! timezones0.put("Asia/Istanbul", tz); ! timezones0.put("Asia/Nicosia", tz); ! timezones0.put("Europe/Athens", tz); ! timezones0.put("Europe/Bucharest", tz); ! timezones0.put("Europe/Chisinau", tz); ! timezones0.put("Europe/Helsinki", tz); ! timezones0.put("Europe/Istanbul", tz); ! timezones0.put("Europe/Kiev", tz); ! timezones0.put("Europe/Mariehamn", tz); ! timezones0.put("Europe/Nicosia", tz); ! timezones0.put("Europe/Riga", tz); ! timezones0.put("Europe/Simferopol", tz); ! timezones0.put("Europe/Sofia", tz); ! timezones0.put("Europe/Tallinn", tz); ! timezones0.put("Europe/Uzhgorod", tz); ! timezones0.put("Europe/Vilnius", tz); ! timezones0.put("Europe/Zaporozhye", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Europe/Kaliningrad", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Europe/Kaliningrad", tz); ! timezones0.put("Europe/Minsk", tz); ! tz = new SimpleTimeZone ! (3000 * 3600, "Asia/Baghdad", ! Calendar.APRIL, 1, 0, 3000 * 3600, ! Calendar.OCTOBER, 1, 0, 4000 * 3600); ! timezones0.put("Asia/Baghdad", tz); ! tz = new SimpleTimeZone ! (3000 * 3600, "Europe/Moscow", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Europe/Moscow", tz); ! timezones0.put("Europe/Volgograd", tz); ! tz = new SimpleTimeZone(3000 * 3600, "EAT"); ! timezones0.put("EAT", tz); ! timezones0.put("Africa/Addis_Ababa", tz); ! timezones0.put("Africa/Asmara", tz); ! timezones0.put("Africa/Dar_es_Salaam", tz); ! timezones0.put("Africa/Djibouti", tz); ! timezones0.put("Africa/Kampala", tz); ! timezones0.put("Africa/Khartoum", tz); ! timezones0.put("Africa/Mogadishu", tz); ! timezones0.put("Africa/Nairobi", tz); ! timezones0.put("Antarctica/Syowa", tz); ! timezones0.put("Asia/Aden", tz); ! timezones0.put("Asia/Bahrain", tz); ! timezones0.put("Asia/Kuwait", tz); ! timezones0.put("Asia/Qatar", tz); ! timezones0.put("Asia/Riyadh", tz); ! timezones0.put("Indian/Antananarivo", tz); ! timezones0.put("Indian/Comoro", tz); ! timezones0.put("Indian/Mayotte", tz); ! tz = new SimpleTimeZone(3500 * 3600, "Asia/Tehran"); ! timezones0.put("Asia/Tehran", tz); ! tz = new SimpleTimeZone ! (4000 * 3600, "Asia/Baku", ! Calendar.MARCH, -1, Calendar.SUNDAY, 4000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 5000 * 3600); ! timezones0.put("Asia/Baku", tz); ! tz = new SimpleTimeZone ! (4000 * 3600, "Asia/Yerevan", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Yerevan", tz); ! timezones0.put("Europe/Samara", tz); ! tz = new SimpleTimeZone(4000 * 3600, "NET"); ! timezones0.put("NET", tz); ! timezones0.put("Asia/Dubai", tz); ! timezones0.put("Asia/Muscat", tz); ! timezones0.put("Asia/Tbilisi", tz); ! timezones0.put("Indian/Mahe", tz); ! timezones0.put("Indian/Mauritius", tz); ! timezones0.put("Indian/Reunion", tz); ! tz = new SimpleTimeZone(4500 * 3600, "Asia/Kabul"); ! timezones0.put("Asia/Kabul", tz); ! tz = new SimpleTimeZone ! (5000 * 3600, "Asia/Yekaterinburg", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Yekaterinburg", tz); ! tz = new SimpleTimeZone(5000 * 3600, "PLT"); ! timezones0.put("PLT", tz); ! timezones0.put("Asia/Aqtau", tz); ! timezones0.put("Asia/Aqtobe", tz); ! timezones0.put("Asia/Ashgabat", tz); ! timezones0.put("Asia/Dushanbe", tz); ! timezones0.put("Asia/Karachi", tz); ! timezones0.put("Asia/Oral", tz); ! timezones0.put("Asia/Samarkand", tz); ! timezones0.put("Asia/Tashkent", tz); ! timezones0.put("Indian/Kerguelen", tz); ! timezones0.put("Indian/Maldives", tz); ! tz = new SimpleTimeZone(5500 * 3600, "BST"); ! timezones0.put("BST", tz); ! timezones0.put("IST", tz); ! timezones0.put("Asia/Calcutta", tz); ! timezones0.put("Asia/Colombo", tz); ! tz = new SimpleTimeZone(5750 * 3600, "Asia/Katmandu"); ! timezones0.put("Asia/Katmandu", tz); ! tz = new SimpleTimeZone(6000 * 3600, "Antarctica/Mawson"); ! timezones0.put("Antarctica/Mawson", tz); ! timezones0.put("Antarctica/Vostok", tz); ! timezones0.put("Asia/Almaty", tz); ! timezones0.put("Asia/Bishkek", tz); ! timezones0.put("Asia/Dhaka", tz); ! timezones0.put("Asia/Qyzylorda", tz); ! timezones0.put("Asia/Thimphu", tz); ! timezones0.put("Indian/Chagos", tz); ! tz = new SimpleTimeZone ! (6000 * 3600, "Asia/Novosibirsk", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Novosibirsk", tz); ! timezones0.put("Asia/Omsk", tz); ! tz = new SimpleTimeZone(6500 * 3600, "Asia/Rangoon"); ! timezones0.put("Asia/Rangoon", tz); ! timezones0.put("Indian/Cocos", tz); ! tz = new SimpleTimeZone(7000 * 3600, "VST"); ! timezones0.put("VST", tz); ! timezones0.put("Antarctica/Davis", tz); ! timezones0.put("Asia/Bangkok", tz); ! timezones0.put("Asia/Jakarta", tz); ! timezones0.put("Asia/Phnom_Penh", tz); ! timezones0.put("Asia/Pontianak", tz); ! timezones0.put("Asia/Saigon", tz); ! timezones0.put("Asia/Vientiane", tz); ! timezones0.put("Indian/Christmas", tz); ! tz = new SimpleTimeZone ! (7000 * 3600, "Asia/Hovd", ! Calendar.MARCH, -1, Calendar.SATURDAY, 2000 * 3600, ! Calendar.SEPTEMBER, -1, Calendar.SATURDAY, 2000 * 3600); ! timezones0.put("Asia/Hovd", tz); ! tz = new SimpleTimeZone ! (7000 * 3600, "Asia/Krasnoyarsk", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Krasnoyarsk", tz); ! tz = new SimpleTimeZone(8000 * 3600, "CTT"); ! timezones0.put("CTT", tz); ! timezones0.put("Antarctica/Casey", tz); ! timezones0.put("Asia/Brunei", tz); ! timezones0.put("Asia/Chongqing", tz); ! timezones0.put("Asia/Harbin", tz); ! timezones0.put("Asia/Hong_Kong", tz); ! timezones0.put("Asia/Kashgar", tz); ! timezones0.put("Asia/Kuala_Lumpur", tz); ! timezones0.put("Asia/Kuching", tz); ! timezones0.put("Asia/Macau", tz); ! timezones0.put("Asia/Makassar", tz); ! timezones0.put("Asia/Manila", tz); ! timezones0.put("Asia/Shanghai", tz); ! timezones0.put("Asia/Singapore", tz); ! timezones0.put("Asia/Taipei", tz); ! timezones0.put("Asia/Urumqi", tz); ! timezones0.put("Australia/Perth", tz); ! tz = new SimpleTimeZone ! (8000 * 3600, "Asia/Irkutsk", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Irkutsk", tz); ! tz = new SimpleTimeZone ! (8000 * 3600, "Asia/Ulaanbaatar", ! Calendar.MARCH, -1, Calendar.SATURDAY, 2000 * 3600, ! Calendar.SEPTEMBER, -1, Calendar.SATURDAY, 2000 * 3600); ! timezones0.put("Asia/Ulaanbaatar", tz); ! tz = new SimpleTimeZone(8750 * 3600, "Australia/Eucla"); ! timezones0.put("Australia/Eucla", tz); ! tz = new SimpleTimeZone ! (9000 * 3600, "Asia/Choibalsan", ! Calendar.MARCH, -1, Calendar.SATURDAY, 2000 * 3600, ! Calendar.SEPTEMBER, -1, Calendar.SATURDAY, 2000 * 3600); ! timezones0.put("Asia/Choibalsan", tz); ! tz = new SimpleTimeZone(9000 * 3600, "JST"); ! timezones0.put("JST", tz); ! timezones0.put("Asia/Dili", tz); ! timezones0.put("Asia/Jayapura", tz); ! timezones0.put("Asia/Pyongyang", tz); ! timezones0.put("Asia/Seoul", tz); ! timezones0.put("Asia/Tokyo", tz); ! timezones0.put("Pacific/Palau", tz); ! tz = new SimpleTimeZone ! (9000 * 3600, "Asia/Yakutsk", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Yakutsk", tz); ! tz = new SimpleTimeZone ! (9500 * 3600, "Australia/Adelaide", ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Australia/Adelaide", tz); ! timezones0.put("Australia/Broken_Hill", tz); ! tz = new SimpleTimeZone(9500 * 3600, "ACT"); ! timezones0.put("ACT", tz); ! timezones0.put("Australia/Darwin", tz); ! tz = new SimpleTimeZone(10000 * 3600, "Antarctica/DumontDUrville"); ! timezones0.put("Antarctica/DumontDUrville", tz); ! timezones0.put("Australia/Brisbane", tz); ! timezones0.put("Australia/Lindeman", tz); ! timezones0.put("Pacific/Guam", tz); ! timezones0.put("Pacific/Port_Moresby", tz); ! timezones0.put("Pacific/Saipan", tz); ! timezones0.put("Pacific/Truk", tz); ! tz = new SimpleTimeZone ! (10000 * 3600, "Asia/Sakhalin", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Sakhalin", tz); ! timezones0.put("Asia/Vladivostok", tz); ! tz = new SimpleTimeZone ! (10000 * 3600, "Australia/Currie", ! Calendar.OCTOBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Australia/Currie", tz); ! timezones0.put("Australia/Hobart", tz); ! tz = new SimpleTimeZone ! (10000 * 3600, "AET", ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("AET", tz); ! timezones0.put("Australia/Melbourne", tz); ! timezones0.put("Australia/Sydney", tz); ! tz = new SimpleTimeZone ! (10500 * 3600, "Australia/Lord_Howe", ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, 500 * 3600); ! timezones0.put("Australia/Lord_Howe", tz); ! tz = new SimpleTimeZone ! (11000 * 3600, "Asia/Magadan", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Magadan", tz); ! tz = new SimpleTimeZone(11000 * 3600, "SST"); ! timezones0.put("SST", tz); ! timezones0.put("Pacific/Efate", tz); ! timezones0.put("Pacific/Guadalcanal", tz); ! timezones0.put("Pacific/Kosrae", tz); ! timezones0.put("Pacific/Noumea", tz); ! timezones0.put("Pacific/Ponape", tz); ! tz = new SimpleTimeZone(11500 * 3600, "Pacific/Norfolk"); ! timezones0.put("Pacific/Norfolk", tz); ! tz = new SimpleTimeZone ! (12000 * 3600, "NST", ! Calendar.OCTOBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, 3, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("NST", tz); ! timezones0.put("Antarctica/McMurdo", tz); ! timezones0.put("Antarctica/South_Pole", tz); ! timezones0.put("Pacific/Auckland", tz); ! tz = new SimpleTimeZone ! (12000 * 3600, "Asia/Anadyr", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Anadyr", tz); ! timezones0.put("Asia/Kamchatka", tz); ! tz = new SimpleTimeZone(12000 * 3600, "Pacific/Fiji"); ! timezones0.put("Pacific/Fiji", tz); ! timezones0.put("Pacific/Funafuti", tz); ! timezones0.put("Pacific/Kwajalein", tz); ! timezones0.put("Pacific/Majuro", tz); ! timezones0.put("Pacific/Nauru", tz); ! timezones0.put("Pacific/Tarawa", tz); ! timezones0.put("Pacific/Wake", tz); ! timezones0.put("Pacific/Wallis", tz); ! tz = new SimpleTimeZone ! (12750 * 3600, "Pacific/Chatham", ! Calendar.OCTOBER, 1, Calendar.SUNDAY, 2750 * 3600, ! Calendar.MARCH, 3, Calendar.SUNDAY, 3750 * 3600); ! timezones0.put("Pacific/Chatham", tz); ! tz = new SimpleTimeZone(13000 * 3600, "Pacific/Enderbury"); ! timezones0.put("Pacific/Enderbury", tz); ! timezones0.put("Pacific/Tongatapu", tz); ! tz = new SimpleTimeZone(14000 * 3600, "Pacific/Kiritimati"); ! timezones0.put("Pacific/Kiritimati", tz); } return timezones0; } --- 149,904 ---- private static HashMap aliases0; /** ! * HashMap for timezones by ID. */ private static HashMap timezones0; /* initialize this static field lazily to overhead if ! * it is not needed: */ // Package-private to avoid a trampoline. static HashMap timezones() { ! if (timezones0 == null) { ! HashMap timezones = new HashMap(); ! timezones0 = timezones; ! zoneinfo_dir = SystemProperties.getProperty("gnu.java.util.zoneinfo.dir"); ! if (zoneinfo_dir != null && !new File(zoneinfo_dir).isDirectory()) ! zoneinfo_dir = null; ! if (zoneinfo_dir != null) ! { ! aliases0 = new HashMap(); ! // These deprecated aliases for JDK 1.1.x compatibility ! // should take precedence over data files read from ! // /usr/share/zoneinfo. ! aliases0.put("ACT", "Australia/Darwin"); ! aliases0.put("AET", "Australia/Sydney"); ! aliases0.put("AGT", "America/Argentina/Buenos_Aires"); ! aliases0.put("ART", "Africa/Cairo"); ! aliases0.put("AST", "America/Juneau"); ! aliases0.put("BST", "Asia/Colombo"); ! aliases0.put("CAT", "Africa/Gaborone"); ! aliases0.put("CNT", "America/St_Johns"); ! aliases0.put("CST", "CST6CDT"); ! aliases0.put("CTT", "Asia/Brunei"); ! aliases0.put("EAT", "Indian/Comoro"); ! aliases0.put("ECT", "CET"); ! aliases0.put("EST", "EST5EDT"); ! aliases0.put("EST5", "EST5EDT"); ! aliases0.put("IET", "EST5EDT"); ! aliases0.put("IST", "Asia/Calcutta"); ! aliases0.put("JST", "Asia/Seoul"); ! aliases0.put("MIT", "Pacific/Niue"); ! aliases0.put("MST", "MST7MDT"); ! aliases0.put("MST7", "MST7MDT"); ! aliases0.put("NET", "Indian/Mauritius"); ! aliases0.put("NST", "Pacific/Auckland"); ! aliases0.put("PLT", "Indian/Kerguelen"); ! aliases0.put("PNT", "MST7MDT"); ! aliases0.put("PRT", "America/Anguilla"); ! aliases0.put("PST", "PST8PDT"); ! aliases0.put("SST", "Pacific/Ponape"); ! aliases0.put("VST", "Asia/Bangkok"); ! return timezones; ! } ! TimeZone tz; ! // Automatically generated by scripts/timezones.pl ! // XXX - Should we read this data from a file? ! tz = new SimpleTimeZone(-11000 * 3600, "MIT"); ! timezones0.put("MIT", tz); ! timezones0.put("Pacific/Apia", tz); ! timezones0.put("Pacific/Midway", tz); ! timezones0.put("Pacific/Niue", tz); ! timezones0.put("Pacific/Pago_Pago", tz); ! tz = new SimpleTimeZone ! (-10000 * 3600, "America/Adak", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Adak", tz); ! tz = new SimpleTimeZone(-10000 * 3600, "HST"); ! timezones0.put("HST", tz); ! timezones0.put("Pacific/Fakaofo", tz); ! timezones0.put("Pacific/Honolulu", tz); ! timezones0.put("Pacific/Johnston", tz); ! timezones0.put("Pacific/Rarotonga", tz); ! timezones0.put("Pacific/Tahiti", tz); ! tz = new SimpleTimeZone(-9500 * 3600, "Pacific/Marquesas"); ! timezones0.put("Pacific/Marquesas", tz); ! tz = new SimpleTimeZone ! (-9000 * 3600, "AST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("AST", tz); ! timezones0.put("America/Anchorage", tz); ! timezones0.put("America/Juneau", tz); ! timezones0.put("America/Nome", tz); ! timezones0.put("America/Yakutat", tz); ! tz = new SimpleTimeZone(-9000 * 3600, "Pacific/Gambier"); ! timezones0.put("Pacific/Gambier", tz); ! tz = new SimpleTimeZone ! (-8000 * 3600, "America/Tijuana", ! Calendar.APRIL, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Tijuana", tz); ! tz = new SimpleTimeZone ! (-8000 * 3600, "PST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("PST", tz); ! timezones0.put("PST8PDT", tz); ! timezones0.put("America/Dawson", tz); ! timezones0.put("America/Los_Angeles", tz); ! timezones0.put("America/Vancouver", tz); ! timezones0.put("America/Whitehorse", tz); ! timezones0.put("US/Pacific-New", tz); ! tz = new SimpleTimeZone(-8000 * 3600, "Pacific/Pitcairn"); ! timezones0.put("Pacific/Pitcairn", tz); ! tz = new SimpleTimeZone ! (-7000 * 3600, "America/Chihuahua", ! Calendar.APRIL, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Chihuahua", tz); ! timezones0.put("America/Mazatlan", tz); ! tz = new SimpleTimeZone(-7000 * 3600, "MST7"); ! timezones0.put("MST7", tz); ! timezones0.put("PNT", tz); ! timezones0.put("America/Dawson_Creek", tz); ! timezones0.put("America/Hermosillo", tz); ! timezones0.put("America/Phoenix", tz); ! tz = new SimpleTimeZone ! (-7000 * 3600, "MST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("MST", tz); ! timezones0.put("MST7MDT", tz); ! timezones0.put("America/Boise", tz); ! timezones0.put("America/Cambridge_Bay", tz); ! timezones0.put("America/Denver", tz); ! timezones0.put("America/Edmonton", tz); ! timezones0.put("America/Inuvik", tz); ! timezones0.put("America/Shiprock", tz); ! timezones0.put("America/Yellowknife", tz); ! tz = new SimpleTimeZone ! (-6000 * 3600, "America/Cancun", ! Calendar.APRIL, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Cancun", tz); ! timezones0.put("America/Merida", tz); ! timezones0.put("America/Mexico_City", tz); ! timezones0.put("America/Monterrey", tz); ! tz = new SimpleTimeZone(-6000 * 3600, "America/Belize"); ! timezones0.put("America/Belize", tz); ! timezones0.put("America/Costa_Rica", tz); ! timezones0.put("America/El_Salvador", tz); ! timezones0.put("America/Guatemala", tz); ! timezones0.put("America/Managua", tz); ! timezones0.put("America/Regina", tz); ! timezones0.put("America/Swift_Current", tz); ! timezones0.put("America/Tegucigalpa", tz); ! timezones0.put("Pacific/Galapagos", tz); ! tz = new SimpleTimeZone ! (-6000 * 3600, "CST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("CST", tz); ! timezones0.put("CST6CDT", tz); ! timezones0.put("America/Chicago", tz); ! timezones0.put("America/Indiana/Knox", tz); ! timezones0.put("America/Indiana/Petersburg", tz); ! timezones0.put("America/Indiana/Vincennes", tz); ! timezones0.put("America/Menominee", tz); ! timezones0.put("America/North_Dakota/Center", tz); ! timezones0.put("America/North_Dakota/New_Salem", tz); ! timezones0.put("America/Rainy_River", tz); ! timezones0.put("America/Rankin_Inlet", tz); ! timezones0.put("America/Winnipeg", tz); ! tz = new SimpleTimeZone ! (-6000 * 3600, "Pacific/Easter", ! Calendar.OCTOBER, 2, Calendar.SATURDAY, 22000 * 3600, ! Calendar.MARCH, 2, Calendar.SATURDAY, 22000 * 3600); ! timezones0.put("Pacific/Easter", tz); ! tz = new SimpleTimeZone(-5000 * 3600, "EST5"); ! timezones0.put("EST5", tz); ! timezones0.put("IET", tz); ! timezones0.put("America/Atikokan", tz); ! timezones0.put("America/Bogota", tz); ! timezones0.put("America/Cayman", tz); ! timezones0.put("America/Eirunepe", tz); ! timezones0.put("America/Guayaquil", tz); ! timezones0.put("America/Jamaica", tz); ! timezones0.put("America/Lima", tz); ! timezones0.put("America/Panama", tz); ! timezones0.put("America/Rio_Branco", tz); ! tz = new SimpleTimeZone ! (-5000 * 3600, "America/Havana", ! Calendar.APRIL, 1, Calendar.SUNDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 1000 * 3600); ! timezones0.put("America/Havana", tz); ! tz = new SimpleTimeZone ! (-5000 * 3600, "America/Grand_Turk", ! Calendar.APRIL, 1, Calendar.SUNDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Grand_Turk", tz); ! timezones0.put("America/Port-au-Prince", tz); ! tz = new SimpleTimeZone ! (-5000 * 3600, "EST", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("EST", tz); ! timezones0.put("EST5EDT", tz); ! timezones0.put("America/Detroit", tz); ! timezones0.put("America/Indiana/Indianapolis", tz); ! timezones0.put("America/Indiana/Marengo", tz); ! timezones0.put("America/Indiana/Vevay", tz); ! timezones0.put("America/Iqaluit", tz); ! timezones0.put("America/Kentucky/Louisville", tz); ! timezones0.put("America/Kentucky/Monticello", tz); ! timezones0.put("America/Montreal", tz); ! timezones0.put("America/Nassau", tz); ! timezones0.put("America/New_York", tz); ! timezones0.put("America/Nipigon", tz); ! timezones0.put("America/Pangnirtung", tz); ! timezones0.put("America/Thunder_Bay", tz); ! timezones0.put("America/Toronto", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Asuncion", ! Calendar.OCTOBER, 3, Calendar.SUNDAY, 0 * 3600, ! Calendar.MARCH, 2, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Asuncion", tz); ! tz = new SimpleTimeZone(-4000 * 3600, "PRT"); ! timezones0.put("PRT", tz); ! timezones0.put("America/Anguilla", tz); ! timezones0.put("America/Antigua", tz); ! timezones0.put("America/Aruba", tz); ! timezones0.put("America/Barbados", tz); ! timezones0.put("America/Blanc-Sablon", tz); ! timezones0.put("America/Boa_Vista", tz); ! timezones0.put("America/Caracas", tz); ! timezones0.put("America/Curacao", tz); ! timezones0.put("America/Dominica", tz); ! timezones0.put("America/Grenada", tz); ! timezones0.put("America/Guadeloupe", tz); ! timezones0.put("America/Guyana", tz); ! timezones0.put("America/La_Paz", tz); ! timezones0.put("America/Manaus", tz); ! timezones0.put("America/Martinique", tz); ! timezones0.put("America/Montserrat", tz); ! timezones0.put("America/Port_of_Spain", tz); ! timezones0.put("America/Porto_Velho", tz); ! timezones0.put("America/Puerto_Rico", tz); ! timezones0.put("America/Santo_Domingo", tz); ! timezones0.put("America/St_Kitts", tz); ! timezones0.put("America/St_Lucia", tz); ! timezones0.put("America/St_Thomas", tz); ! timezones0.put("America/St_Vincent", tz); ! timezones0.put("America/Tortola", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Campo_Grande", ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0 * 3600, ! Calendar.FEBRUARY, -1, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Campo_Grande", tz); ! timezones0.put("America/Cuiaba", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Goose_Bay", ! Calendar.MARCH, 2, Calendar.SUNDAY, 60000, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 60000); ! timezones0.put("America/Goose_Bay", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Glace_Bay", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Glace_Bay", tz); ! timezones0.put("America/Halifax", tz); ! timezones0.put("America/Moncton", tz); ! timezones0.put("America/Thule", tz); ! timezones0.put("Atlantic/Bermuda", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "America/Santiago", ! Calendar.OCTOBER, 9, -Calendar.SUNDAY, 0 * 3600, ! Calendar.MARCH, 9, -Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Santiago", tz); ! timezones0.put("Antarctica/Palmer", tz); ! tz = new SimpleTimeZone ! (-4000 * 3600, "Atlantic/Stanley", ! Calendar.SEPTEMBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.APRIL, 3, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("Atlantic/Stanley", tz); ! tz = new SimpleTimeZone ! (-3500 * 3600, "CNT", ! Calendar.MARCH, 2, Calendar.SUNDAY, 60000, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 60000); ! timezones0.put("CNT", tz); ! timezones0.put("America/St_Johns", tz); ! tz = new SimpleTimeZone ! (-3000 * 3600, "America/Godthab", ! Calendar.MARCH, 30, -Calendar.SATURDAY, 22000 * 3600, ! Calendar.OCTOBER, 30, -Calendar.SATURDAY, 23000 * 3600); ! timezones0.put("America/Godthab", tz); ! tz = new SimpleTimeZone ! (-3000 * 3600, "America/Miquelon", ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600, ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Miquelon", tz); ! tz = new SimpleTimeZone ! (-3000 * 3600, "America/Montevideo", ! Calendar.OCTOBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, 2, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("America/Montevideo", tz); ! tz = new SimpleTimeZone ! (-3000 * 3600, "America/Sao_Paulo", ! Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0 * 3600, ! Calendar.FEBRUARY, -1, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("America/Sao_Paulo", tz); ! tz = new SimpleTimeZone(-3000 * 3600, "AGT"); ! timezones0.put("AGT", tz); ! timezones0.put("America/Araguaina", tz); ! timezones0.put("America/Argentina/Buenos_Aires", tz); ! timezones0.put("America/Argentina/Catamarca", tz); ! timezones0.put("America/Argentina/Cordoba", tz); ! timezones0.put("America/Argentina/Jujuy", tz); ! timezones0.put("America/Argentina/La_Rioja", tz); ! timezones0.put("America/Argentina/Mendoza", tz); ! timezones0.put("America/Argentina/Rio_Gallegos", tz); ! timezones0.put("America/Argentina/San_Juan", tz); ! timezones0.put("America/Argentina/Tucuman", tz); ! timezones0.put("America/Argentina/Ushuaia", tz); ! timezones0.put("America/Bahia", tz); ! timezones0.put("America/Belem", tz); ! timezones0.put("America/Cayenne", tz); ! timezones0.put("America/Fortaleza", tz); ! timezones0.put("America/Maceio", tz); ! timezones0.put("America/Paramaribo", tz); ! timezones0.put("America/Recife", tz); ! timezones0.put("Antarctica/Rothera", tz); ! tz = new SimpleTimeZone(-2000 * 3600, "America/Noronha"); ! timezones0.put("America/Noronha", tz); ! timezones0.put("Atlantic/South_Georgia", tz); ! tz = new SimpleTimeZone ! (-1000 * 3600, "America/Scoresbysund", ! Calendar.MARCH, -1, Calendar.SUNDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 1000 * 3600); ! timezones0.put("America/Scoresbysund", tz); ! timezones0.put("Atlantic/Azores", tz); ! tz = new SimpleTimeZone(-1000 * 3600, "Atlantic/Cape_Verde"); ! timezones0.put("Atlantic/Cape_Verde", tz); ! tz = new SimpleTimeZone(0 * 3600, "GMT"); ! timezones0.put("GMT", tz); ! timezones0.put("UTC", tz); ! timezones0.put("Africa/Abidjan", tz); ! timezones0.put("Africa/Accra", tz); ! timezones0.put("Africa/Bamako", tz); ! timezones0.put("Africa/Banjul", tz); ! timezones0.put("Africa/Bissau", tz); ! timezones0.put("Africa/Casablanca", tz); ! timezones0.put("Africa/Conakry", tz); ! timezones0.put("Africa/Dakar", tz); ! timezones0.put("Africa/El_Aaiun", tz); ! timezones0.put("Africa/Freetown", tz); ! timezones0.put("Africa/Lome", tz); ! timezones0.put("Africa/Monrovia", tz); ! timezones0.put("Africa/Nouakchott", tz); ! timezones0.put("Africa/Ouagadougou", tz); ! timezones0.put("Africa/Sao_Tome", tz); ! timezones0.put("America/Danmarkshavn", tz); ! timezones0.put("Atlantic/Reykjavik", tz); ! timezones0.put("Atlantic/St_Helena", tz); ! tz = new SimpleTimeZone ! (0 * 3600, "WET", ! Calendar.MARCH, -1, Calendar.SUNDAY, 1000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("WET", tz); ! timezones0.put("Atlantic/Canary", tz); ! timezones0.put("Atlantic/Faroe", tz); ! timezones0.put("Atlantic/Madeira", tz); ! timezones0.put("Europe/Dublin", tz); ! timezones0.put("Europe/Guernsey", tz); ! timezones0.put("Europe/Isle_of_Man", tz); ! timezones0.put("Europe/Jersey", tz); ! timezones0.put("Europe/Lisbon", tz); ! timezones0.put("Europe/London", tz); ! tz = new SimpleTimeZone(1000 * 3600, "Africa/Algiers"); ! timezones0.put("Africa/Algiers", tz); ! timezones0.put("Africa/Bangui", tz); ! timezones0.put("Africa/Brazzaville", tz); ! timezones0.put("Africa/Douala", tz); ! timezones0.put("Africa/Kinshasa", tz); ! timezones0.put("Africa/Lagos", tz); ! timezones0.put("Africa/Libreville", tz); ! timezones0.put("Africa/Luanda", tz); ! timezones0.put("Africa/Malabo", tz); ! timezones0.put("Africa/Ndjamena", tz); ! timezones0.put("Africa/Niamey", tz); ! timezones0.put("Africa/Porto-Novo", tz); ! tz = new SimpleTimeZone ! (1000 * 3600, "Africa/Windhoek", ! Calendar.SEPTEMBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.APRIL, 1, Calendar.SUNDAY, 2000 * 3600); ! timezones0.put("Africa/Windhoek", tz); ! tz = new SimpleTimeZone ! (1000 * 3600, "CET", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("CET", tz); ! timezones0.put("ECT", tz); ! timezones0.put("MET", tz); ! timezones0.put("Africa/Ceuta", tz); ! timezones0.put("Africa/Tunis", tz); ! timezones0.put("Arctic/Longyearbyen", tz); ! timezones0.put("Atlantic/Jan_Mayen", tz); ! timezones0.put("Europe/Amsterdam", tz); ! timezones0.put("Europe/Andorra", tz); ! timezones0.put("Europe/Belgrade", tz); ! timezones0.put("Europe/Berlin", tz); ! timezones0.put("Europe/Bratislava", tz); ! timezones0.put("Europe/Brussels", tz); ! timezones0.put("Europe/Budapest", tz); ! timezones0.put("Europe/Copenhagen", tz); ! timezones0.put("Europe/Gibraltar", tz); ! timezones0.put("Europe/Ljubljana", tz); ! timezones0.put("Europe/Luxembourg", tz); ! timezones0.put("Europe/Madrid", tz); ! timezones0.put("Europe/Malta", tz); ! timezones0.put("Europe/Monaco", tz); ! timezones0.put("Europe/Oslo", tz); ! timezones0.put("Europe/Paris", tz); ! timezones0.put("Europe/Podgorica", tz); ! timezones0.put("Europe/Prague", tz); ! timezones0.put("Europe/Rome", tz); ! timezones0.put("Europe/San_Marino", tz); ! timezones0.put("Europe/Sarajevo", tz); ! timezones0.put("Europe/Skopje", tz); ! timezones0.put("Europe/Stockholm", tz); ! timezones0.put("Europe/Tirane", tz); ! timezones0.put("Europe/Vaduz", tz); ! timezones0.put("Europe/Vatican", tz); ! timezones0.put("Europe/Vienna", tz); ! timezones0.put("Europe/Warsaw", tz); ! timezones0.put("Europe/Zagreb", tz); ! timezones0.put("Europe/Zurich", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "ART", ! Calendar.APRIL, -1, Calendar.FRIDAY, 0 * 3600, ! Calendar.SEPTEMBER, -1, Calendar.THURSDAY, 24000 * 3600); ! timezones0.put("ART", tz); ! timezones0.put("Africa/Cairo", tz); ! tz = new SimpleTimeZone(2000 * 3600, "CAT"); ! timezones0.put("CAT", tz); ! timezones0.put("Africa/Blantyre", tz); ! timezones0.put("Africa/Bujumbura", tz); ! timezones0.put("Africa/Gaborone", tz); ! timezones0.put("Africa/Harare", tz); ! timezones0.put("Africa/Johannesburg", tz); ! timezones0.put("Africa/Kigali", tz); ! timezones0.put("Africa/Lubumbashi", tz); ! timezones0.put("Africa/Lusaka", tz); ! timezones0.put("Africa/Maputo", tz); ! timezones0.put("Africa/Maseru", tz); ! timezones0.put("Africa/Mbabane", tz); ! timezones0.put("Africa/Tripoli", tz); ! timezones0.put("Asia/Jerusalem", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Asia/Amman", ! Calendar.MARCH, -1, Calendar.THURSDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.FRIDAY, 1000 * 3600); ! timezones0.put("Asia/Amman", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Asia/Beirut", ! Calendar.MARCH, -1, Calendar.SUNDAY, 0 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 0 * 3600); ! timezones0.put("Asia/Beirut", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Asia/Damascus", ! Calendar.APRIL, 1, 0, 0 * 3600, ! Calendar.OCTOBER, 1, 0, 0 * 3600); ! timezones0.put("Asia/Damascus", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Asia/Gaza", ! Calendar.APRIL, 1, 0, 0 * 3600, ! Calendar.OCTOBER, 3, Calendar.FRIDAY, 0 * 3600); ! timezones0.put("Asia/Gaza", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "EET", ! Calendar.MARCH, -1, Calendar.SUNDAY, 3000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 4000 * 3600); ! timezones0.put("EET", tz); ! timezones0.put("Asia/Istanbul", tz); ! timezones0.put("Asia/Nicosia", tz); ! timezones0.put("Europe/Athens", tz); ! timezones0.put("Europe/Bucharest", tz); ! timezones0.put("Europe/Chisinau", tz); ! timezones0.put("Europe/Helsinki", tz); ! timezones0.put("Europe/Istanbul", tz); ! timezones0.put("Europe/Kiev", tz); ! timezones0.put("Europe/Mariehamn", tz); ! timezones0.put("Europe/Nicosia", tz); ! timezones0.put("Europe/Riga", tz); ! timezones0.put("Europe/Simferopol", tz); ! timezones0.put("Europe/Sofia", tz); ! timezones0.put("Europe/Tallinn", tz); ! timezones0.put("Europe/Uzhgorod", tz); ! timezones0.put("Europe/Vilnius", tz); ! timezones0.put("Europe/Zaporozhye", tz); ! tz = new SimpleTimeZone ! (2000 * 3600, "Europe/Kaliningrad", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Europe/Kaliningrad", tz); ! timezones0.put("Europe/Minsk", tz); ! tz = new SimpleTimeZone ! (3000 * 3600, "Asia/Baghdad", ! Calendar.APRIL, 1, 0, 3000 * 3600, ! Calendar.OCTOBER, 1, 0, 4000 * 3600); ! timezones0.put("Asia/Baghdad", tz); ! tz = new SimpleTimeZone ! (3000 * 3600, "Europe/Moscow", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Europe/Moscow", tz); ! timezones0.put("Europe/Volgograd", tz); ! tz = new SimpleTimeZone(3000 * 3600, "EAT"); ! timezones0.put("EAT", tz); ! timezones0.put("Africa/Addis_Ababa", tz); ! timezones0.put("Africa/Asmara", tz); ! timezones0.put("Africa/Dar_es_Salaam", tz); ! timezones0.put("Africa/Djibouti", tz); ! timezones0.put("Africa/Kampala", tz); ! timezones0.put("Africa/Khartoum", tz); ! timezones0.put("Africa/Mogadishu", tz); ! timezones0.put("Africa/Nairobi", tz); ! timezones0.put("Antarctica/Syowa", tz); ! timezones0.put("Asia/Aden", tz); ! timezones0.put("Asia/Bahrain", tz); ! timezones0.put("Asia/Kuwait", tz); ! timezones0.put("Asia/Qatar", tz); ! timezones0.put("Asia/Riyadh", tz); ! timezones0.put("Indian/Antananarivo", tz); ! timezones0.put("Indian/Comoro", tz); ! timezones0.put("Indian/Mayotte", tz); ! tz = new SimpleTimeZone(3500 * 3600, "Asia/Tehran"); ! timezones0.put("Asia/Tehran", tz); ! tz = new SimpleTimeZone ! (4000 * 3600, "Asia/Baku", ! Calendar.MARCH, -1, Calendar.SUNDAY, 4000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 5000 * 3600); ! timezones0.put("Asia/Baku", tz); ! tz = new SimpleTimeZone ! (4000 * 3600, "Asia/Yerevan", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Yerevan", tz); ! timezones0.put("Europe/Samara", tz); ! tz = new SimpleTimeZone(4000 * 3600, "NET"); ! timezones0.put("NET", tz); ! timezones0.put("Asia/Dubai", tz); ! timezones0.put("Asia/Muscat", tz); ! timezones0.put("Asia/Tbilisi", tz); ! timezones0.put("Indian/Mahe", tz); ! timezones0.put("Indian/Mauritius", tz); ! timezones0.put("Indian/Reunion", tz); ! tz = new SimpleTimeZone(4500 * 3600, "Asia/Kabul"); ! timezones0.put("Asia/Kabul", tz); ! tz = new SimpleTimeZone ! (5000 * 3600, "Asia/Yekaterinburg", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Yekaterinburg", tz); ! tz = new SimpleTimeZone(5000 * 3600, "PLT"); ! timezones0.put("PLT", tz); ! timezones0.put("Asia/Aqtau", tz); ! timezones0.put("Asia/Aqtobe", tz); ! timezones0.put("Asia/Ashgabat", tz); ! timezones0.put("Asia/Dushanbe", tz); ! timezones0.put("Asia/Karachi", tz); ! timezones0.put("Asia/Oral", tz); ! timezones0.put("Asia/Samarkand", tz); ! timezones0.put("Asia/Tashkent", tz); ! timezones0.put("Indian/Kerguelen", tz); ! timezones0.put("Indian/Maldives", tz); ! tz = new SimpleTimeZone(5500 * 3600, "BST"); ! timezones0.put("BST", tz); ! timezones0.put("IST", tz); ! timezones0.put("Asia/Calcutta", tz); ! timezones0.put("Asia/Colombo", tz); ! tz = new SimpleTimeZone(5750 * 3600, "Asia/Katmandu"); ! timezones0.put("Asia/Katmandu", tz); ! tz = new SimpleTimeZone(6000 * 3600, "Antarctica/Mawson"); ! timezones0.put("Antarctica/Mawson", tz); ! timezones0.put("Antarctica/Vostok", tz); ! timezones0.put("Asia/Almaty", tz); ! timezones0.put("Asia/Bishkek", tz); ! timezones0.put("Asia/Dhaka", tz); ! timezones0.put("Asia/Qyzylorda", tz); ! timezones0.put("Asia/Thimphu", tz); ! timezones0.put("Indian/Chagos", tz); ! tz = new SimpleTimeZone ! (6000 * 3600, "Asia/Novosibirsk", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Novosibirsk", tz); ! timezones0.put("Asia/Omsk", tz); ! tz = new SimpleTimeZone(6500 * 3600, "Asia/Rangoon"); ! timezones0.put("Asia/Rangoon", tz); ! timezones0.put("Indian/Cocos", tz); ! tz = new SimpleTimeZone(7000 * 3600, "VST"); ! timezones0.put("VST", tz); ! timezones0.put("Antarctica/Davis", tz); ! timezones0.put("Asia/Bangkok", tz); ! timezones0.put("Asia/Jakarta", tz); ! timezones0.put("Asia/Phnom_Penh", tz); ! timezones0.put("Asia/Pontianak", tz); ! timezones0.put("Asia/Saigon", tz); ! timezones0.put("Asia/Vientiane", tz); ! timezones0.put("Indian/Christmas", tz); ! tz = new SimpleTimeZone ! (7000 * 3600, "Asia/Hovd", ! Calendar.MARCH, -1, Calendar.SATURDAY, 2000 * 3600, ! Calendar.SEPTEMBER, -1, Calendar.SATURDAY, 2000 * 3600); ! timezones0.put("Asia/Hovd", tz); ! tz = new SimpleTimeZone ! (7000 * 3600, "Asia/Krasnoyarsk", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Krasnoyarsk", tz); ! tz = new SimpleTimeZone(8000 * 3600, "CTT"); ! timezones0.put("CTT", tz); ! timezones0.put("Antarctica/Casey", tz); ! timezones0.put("Asia/Brunei", tz); ! timezones0.put("Asia/Chongqing", tz); ! timezones0.put("Asia/Harbin", tz); ! timezones0.put("Asia/Hong_Kong", tz); ! timezones0.put("Asia/Kashgar", tz); ! timezones0.put("Asia/Kuala_Lumpur", tz); ! timezones0.put("Asia/Kuching", tz); ! timezones0.put("Asia/Macau", tz); ! timezones0.put("Asia/Makassar", tz); ! timezones0.put("Asia/Manila", tz); ! timezones0.put("Asia/Shanghai", tz); ! timezones0.put("Asia/Singapore", tz); ! timezones0.put("Asia/Taipei", tz); ! timezones0.put("Asia/Urumqi", tz); ! timezones0.put("Australia/Perth", tz); ! tz = new SimpleTimeZone ! (8000 * 3600, "Asia/Irkutsk", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Irkutsk", tz); ! tz = new SimpleTimeZone ! (8000 * 3600, "Asia/Ulaanbaatar", ! Calendar.MARCH, -1, Calendar.SATURDAY, 2000 * 3600, ! Calendar.SEPTEMBER, -1, Calendar.SATURDAY, 2000 * 3600); ! timezones0.put("Asia/Ulaanbaatar", tz); ! tz = new SimpleTimeZone(8750 * 3600, "Australia/Eucla"); ! timezones0.put("Australia/Eucla", tz); ! tz = new SimpleTimeZone ! (9000 * 3600, "Asia/Choibalsan", ! Calendar.MARCH, -1, Calendar.SATURDAY, 2000 * 3600, ! Calendar.SEPTEMBER, -1, Calendar.SATURDAY, 2000 * 3600); ! timezones0.put("Asia/Choibalsan", tz); ! tz = new SimpleTimeZone(9000 * 3600, "JST"); ! timezones0.put("JST", tz); ! timezones0.put("Asia/Dili", tz); ! timezones0.put("Asia/Jayapura", tz); ! timezones0.put("Asia/Pyongyang", tz); ! timezones0.put("Asia/Seoul", tz); ! timezones0.put("Asia/Tokyo", tz); ! timezones0.put("Pacific/Palau", tz); ! tz = new SimpleTimeZone ! (9000 * 3600, "Asia/Yakutsk", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Yakutsk", tz); ! tz = new SimpleTimeZone ! (9500 * 3600, "Australia/Adelaide", ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Australia/Adelaide", tz); ! timezones0.put("Australia/Broken_Hill", tz); ! tz = new SimpleTimeZone(9500 * 3600, "ACT"); ! timezones0.put("ACT", tz); ! timezones0.put("Australia/Darwin", tz); ! tz = new SimpleTimeZone(10000 * 3600, "Antarctica/DumontDUrville"); ! timezones0.put("Antarctica/DumontDUrville", tz); ! timezones0.put("Australia/Brisbane", tz); ! timezones0.put("Australia/Lindeman", tz); ! timezones0.put("Pacific/Guam", tz); ! timezones0.put("Pacific/Port_Moresby", tz); ! timezones0.put("Pacific/Saipan", tz); ! timezones0.put("Pacific/Truk", tz); ! tz = new SimpleTimeZone ! (10000 * 3600, "Asia/Sakhalin", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Sakhalin", tz); ! timezones0.put("Asia/Vladivostok", tz); ! tz = new SimpleTimeZone ! (10000 * 3600, "Australia/Currie", ! Calendar.OCTOBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Australia/Currie", tz); ! timezones0.put("Australia/Hobart", tz); ! tz = new SimpleTimeZone ! (10000 * 3600, "AET", ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("AET", tz); ! timezones0.put("Australia/Melbourne", tz); ! timezones0.put("Australia/Sydney", tz); ! tz = new SimpleTimeZone ! (10500 * 3600, "Australia/Lord_Howe", ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, 500 * 3600); ! timezones0.put("Australia/Lord_Howe", tz); ! tz = new SimpleTimeZone ! (11000 * 3600, "Asia/Magadan", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Magadan", tz); ! tz = new SimpleTimeZone(11000 * 3600, "SST"); ! timezones0.put("SST", tz); ! timezones0.put("Pacific/Efate", tz); ! timezones0.put("Pacific/Guadalcanal", tz); ! timezones0.put("Pacific/Kosrae", tz); ! timezones0.put("Pacific/Noumea", tz); ! timezones0.put("Pacific/Ponape", tz); ! tz = new SimpleTimeZone(11500 * 3600, "Pacific/Norfolk"); ! timezones0.put("Pacific/Norfolk", tz); ! tz = new SimpleTimeZone ! (12000 * 3600, "NST", ! Calendar.OCTOBER, 1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.MARCH, 3, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("NST", tz); ! timezones0.put("Antarctica/McMurdo", tz); ! timezones0.put("Antarctica/South_Pole", tz); ! timezones0.put("Pacific/Auckland", tz); ! tz = new SimpleTimeZone ! (12000 * 3600, "Asia/Anadyr", ! Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600, ! Calendar.OCTOBER, -1, Calendar.SUNDAY, 3000 * 3600); ! timezones0.put("Asia/Anadyr", tz); ! timezones0.put("Asia/Kamchatka", tz); ! tz = new SimpleTimeZone(12000 * 3600, "Pacific/Fiji"); ! timezones0.put("Pacific/Fiji", tz); ! timezones0.put("Pacific/Funafuti", tz); ! timezones0.put("Pacific/Kwajalein", tz); ! timezones0.put("Pacific/Majuro", tz); ! timezones0.put("Pacific/Nauru", tz); ! timezones0.put("Pacific/Tarawa", tz); ! timezones0.put("Pacific/Wake", tz); ! timezones0.put("Pacific/Wallis", tz); ! tz = new SimpleTimeZone ! (12750 * 3600, "Pacific/Chatham", ! Calendar.OCTOBER, 1, Calendar.SUNDAY, 2750 * 3600, ! Calendar.MARCH, 3, Calendar.SUNDAY, 3750 * 3600); ! timezones0.put("Pacific/Chatham", tz); ! tz = new SimpleTimeZone(13000 * 3600, "Pacific/Enderbury"); ! timezones0.put("Pacific/Enderbury", tz); ! timezones0.put("Pacific/Tongatapu", tz); ! tz = new SimpleTimeZone(14000 * 3600, "Pacific/Kiritimati"); ! timezones0.put("Pacific/Kiritimati", tz); } return timezones0; } *************** public abstract class TimeZone implement *** 909,915 **** * with the result of System.getProperty("user.timezone") * or getDefaultTimeZoneId(). Note that giving one of * the standard tz data names from ftp://elsie.nci.nih.gov/pub/ is ! * preferred. * The time zone name can be given as follows: * (standard zone name)[(GMT offset)[(DST zone name)[DST offset]]] * --- 909,915 ---- * with the result of System.getProperty("user.timezone") * or getDefaultTimeZoneId(). Note that giving one of * the standard tz data names from ftp://elsie.nci.nih.gov/pub/ is ! * preferred. * The time zone name can be given as follows: * (standard zone name)[(GMT offset)[(DST zone name)[DST offset]]] * *************** public abstract class TimeZone implement *** 954,1128 **** int dstOffs; try { ! int idLength = sysTimeZoneId.length(); ! int index = 0; ! int prevIndex; ! char c; ! // get std ! do ! c = sysTimeZoneId.charAt(index); ! while (c != '+' && c != '-' && c != ',' && c != ':' ! && ! Character.isDigit(c) && c != '\0' && ++index < idLength); ! if (index >= idLength) ! return getTimeZoneInternal(sysTimeZoneId); ! stdName = sysTimeZoneId.substring(0, index); ! prevIndex = index; ! // get the std offset ! do ! c = sysTimeZoneId.charAt(index++); ! while ((c == '-' || c == '+' || c == ':' || Character.isDigit(c)) ! && index < idLength); ! if (index < idLength) ! index--; ! { // convert the dst string to a millis number ! String offset = sysTimeZoneId.substring(prevIndex, index); ! prevIndex = index; ! if (offset.charAt(0) == '+' || offset.charAt(0) == '-') ! stdOffs = parseTime(offset.substring(1)); ! else ! stdOffs = parseTime(offset); ! if (offset.charAt(0) == '-') ! stdOffs = -stdOffs; ! // TZ timezone offsets are positive when WEST of the meridian. ! stdOffs = -stdOffs; ! } ! // Done yet? (Format: std offset) ! if (index >= idLength) ! { ! // Do we have an existing timezone with that name and offset? ! TimeZone tz = getTimeZoneInternal(stdName); ! if (tz != null) ! if (tz.getRawOffset() == stdOffs) ! return tz; ! // Custom then. ! return new SimpleTimeZone(stdOffs, stdName); ! } ! // get dst ! do ! c = sysTimeZoneId.charAt(index); ! while (c != '+' && c != '-' && c != ',' && c != ':' ! && ! Character.isDigit(c) && c != '\0' && ++index < idLength); ! // Done yet? (Format: std offset dst) ! if (index >= idLength) ! { ! // Do we have an existing timezone with that name and offset ! // which has DST? ! TimeZone tz = getTimeZoneInternal(stdName); ! if (tz != null) ! if (tz.getRawOffset() == stdOffs && tz.useDaylightTime()) ! return tz; ! // Custom then. ! return new SimpleTimeZone(stdOffs, stdName); ! } ! // get the dst offset ! prevIndex = index; ! do ! c = sysTimeZoneId.charAt(index++); ! while ((c == '-' || c == '+' || c == ':' || Character.isDigit(c)) ! && index < idLength); ! if (index < idLength) ! index--; ! if (index == prevIndex && (c == ',' || c == ';')) ! { ! // Missing dst offset defaults to one hour ahead of standard ! // time. ! dstOffs = stdOffs + 60 * 60 * 1000; ! } ! else ! { // convert the dst string to a millis number ! String offset = sysTimeZoneId.substring(prevIndex, index); ! prevIndex = index; ! if (offset.charAt(0) == '+' || offset.charAt(0) == '-') ! dstOffs = parseTime(offset.substring(1)); ! else ! dstOffs = parseTime(offset); ! if (offset.charAt(0) == '-') ! dstOffs = -dstOffs; ! // TZ timezone offsets are positive when WEST of the meridian. ! dstOffs = -dstOffs; ! } ! // Done yet? (Format: std offset dst offset) ! // FIXME: We don't support DST without a rule given. Should we? ! if (index >= idLength) ! { ! // Time Zone existing with same name, dst and offsets? ! TimeZone tz = getTimeZoneInternal(stdName); ! if (tz != null) ! if (tz.getRawOffset() == stdOffs && tz.useDaylightTime() ! && tz.getDSTSavings() == (dstOffs - stdOffs)) ! return tz; ! return new SimpleTimeZone(stdOffs, stdName); ! } ! // get the DST rule ! if (sysTimeZoneId.charAt(index) == ',' ! || sysTimeZoneId.charAt(index) == ';') ! { ! index++; ! int offs = index; ! while (sysTimeZoneId.charAt(index) != ',' ! && sysTimeZoneId.charAt(index) != ';') ! index++; ! String startTime = sysTimeZoneId.substring(offs, index); ! index++; ! String endTime = sysTimeZoneId.substring(index); ! index = startTime.indexOf('/'); ! int startMillis; ! int endMillis; ! String startDate; ! String endDate; ! if (index != -1) ! { ! startDate = startTime.substring(0, index); ! startMillis = parseTime(startTime.substring(index + 1)); ! } ! else ! { ! startDate = startTime; ! // if time isn't given, default to 2:00:00 AM. ! startMillis = 2 * 60 * 60 * 1000; ! } ! index = endTime.indexOf('/'); ! if (index != -1) ! { ! endDate = endTime.substring(0, index); ! endMillis = parseTime(endTime.substring(index + 1)); ! } ! else ! { ! endDate = endTime; ! // if time isn't given, default to 2:00:00 AM. ! endMillis = 2 * 60 * 60 * 1000; ! } ! int[] start = getDateParams(startDate); ! int[] end = getDateParams(endDate); ! return new SimpleTimeZone(stdOffs, stdName, start[0], start[1], ! start[2], startMillis, end[0], end[1], ! end[2], endMillis, (dstOffs - stdOffs)); ! } } // FIXME: Produce a warning here? --- 954,1128 ---- int dstOffs; try { ! int idLength = sysTimeZoneId.length(); ! int index = 0; ! int prevIndex; ! char c; ! // get std ! do ! c = sysTimeZoneId.charAt(index); ! while (c != '+' && c != '-' && c != ',' && c != ':' ! && ! Character.isDigit(c) && c != '\0' && ++index < idLength); ! if (index >= idLength) ! return getTimeZoneInternal(sysTimeZoneId); ! stdName = sysTimeZoneId.substring(0, index); ! prevIndex = index; ! // get the std offset ! do ! c = sysTimeZoneId.charAt(index++); ! while ((c == '-' || c == '+' || c == ':' || Character.isDigit(c)) ! && index < idLength); ! if (index < idLength) ! index--; ! { // convert the dst string to a millis number ! String offset = sysTimeZoneId.substring(prevIndex, index); ! prevIndex = index; ! if (offset.charAt(0) == '+' || offset.charAt(0) == '-') ! stdOffs = parseTime(offset.substring(1)); ! else ! stdOffs = parseTime(offset); ! if (offset.charAt(0) == '-') ! stdOffs = -stdOffs; ! // TZ timezone offsets are positive when WEST of the meridian. ! stdOffs = -stdOffs; ! } ! // Done yet? (Format: std offset) ! if (index >= idLength) ! { ! // Do we have an existing timezone with that name and offset? ! TimeZone tz = getTimeZoneInternal(stdName); ! if (tz != null) ! if (tz.getRawOffset() == stdOffs) ! return tz; ! // Custom then. ! return new SimpleTimeZone(stdOffs, stdName); ! } ! // get dst ! do ! c = sysTimeZoneId.charAt(index); ! while (c != '+' && c != '-' && c != ',' && c != ':' ! && ! Character.isDigit(c) && c != '\0' && ++index < idLength); ! // Done yet? (Format: std offset dst) ! if (index >= idLength) ! { ! // Do we have an existing timezone with that name and offset ! // which has DST? ! TimeZone tz = getTimeZoneInternal(stdName); ! if (tz != null) ! if (tz.getRawOffset() == stdOffs && tz.useDaylightTime()) ! return tz; ! // Custom then. ! return new SimpleTimeZone(stdOffs, stdName); ! } ! // get the dst offset ! prevIndex = index; ! do ! c = sysTimeZoneId.charAt(index++); ! while ((c == '-' || c == '+' || c == ':' || Character.isDigit(c)) ! && index < idLength); ! if (index < idLength) ! index--; ! if (index == prevIndex && (c == ',' || c == ';')) ! { ! // Missing dst offset defaults to one hour ahead of standard ! // time. ! dstOffs = stdOffs + 60 * 60 * 1000; ! } ! else ! { // convert the dst string to a millis number ! String offset = sysTimeZoneId.substring(prevIndex, index); ! prevIndex = index; ! if (offset.charAt(0) == '+' || offset.charAt(0) == '-') ! dstOffs = parseTime(offset.substring(1)); ! else ! dstOffs = parseTime(offset); ! if (offset.charAt(0) == '-') ! dstOffs = -dstOffs; ! // TZ timezone offsets are positive when WEST of the meridian. ! dstOffs = -dstOffs; ! } ! // Done yet? (Format: std offset dst offset) ! // FIXME: We don't support DST without a rule given. Should we? ! if (index >= idLength) ! { ! // Time Zone existing with same name, dst and offsets? ! TimeZone tz = getTimeZoneInternal(stdName); ! if (tz != null) ! if (tz.getRawOffset() == stdOffs && tz.useDaylightTime() ! && tz.getDSTSavings() == (dstOffs - stdOffs)) ! return tz; ! return new SimpleTimeZone(stdOffs, stdName); ! } ! // get the DST rule ! if (sysTimeZoneId.charAt(index) == ',' ! || sysTimeZoneId.charAt(index) == ';') ! { ! index++; ! int offs = index; ! while (sysTimeZoneId.charAt(index) != ',' ! && sysTimeZoneId.charAt(index) != ';') ! index++; ! String startTime = sysTimeZoneId.substring(offs, index); ! index++; ! String endTime = sysTimeZoneId.substring(index); ! index = startTime.indexOf('/'); ! int startMillis; ! int endMillis; ! String startDate; ! String endDate; ! if (index != -1) ! { ! startDate = startTime.substring(0, index); ! startMillis = parseTime(startTime.substring(index + 1)); ! } ! else ! { ! startDate = startTime; ! // if time isn't given, default to 2:00:00 AM. ! startMillis = 2 * 60 * 60 * 1000; ! } ! index = endTime.indexOf('/'); ! if (index != -1) ! { ! endDate = endTime.substring(0, index); ! endMillis = parseTime(endTime.substring(index + 1)); ! } ! else ! { ! endDate = endTime; ! // if time isn't given, default to 2:00:00 AM. ! endMillis = 2 * 60 * 60 * 1000; ! } ! int[] start = getDateParams(startDate); ! int[] end = getDateParams(endDate); ! return new SimpleTimeZone(stdOffs, stdName, start[0], start[1], ! start[2], startMillis, end[0], end[1], ! end[2], endMillis, (dstOffs - stdOffs)); ! } } // FIXME: Produce a warning here? *************** public abstract class TimeZone implement *** 1148,1197 **** if (date.charAt(0) == 'M' || date.charAt(0) == 'm') { ! int day; ! // Month, week of month, day of week ! // "Mm.w.d". d is between 0 (Sunday) and 6. Week w is ! // between 1 and 5; Week 1 is the first week in which day d ! // occurs and Week 5 specifies the last d day in the month. ! // Month m is between 1 and 12. ! month = Integer.parseInt(date.substring(1, date.indexOf('.'))); ! int week = Integer.parseInt(date.substring(date.indexOf('.') + 1, ! date.lastIndexOf('.'))); ! int dayOfWeek = Integer.parseInt(date.substring(date.lastIndexOf('.') ! + 1)); ! dayOfWeek++; // Java day of week is one-based, Sunday is first day. ! if (week == 5) ! day = -1; // last day of month is -1 in java, 5 in TZ ! else ! { ! // First day of week starting on or after. For example, ! // to specify the second Sunday of April, set month to ! // APRIL, day-of-month to 8, and day-of-week to -SUNDAY. ! day = (week - 1) * 7 + 1; ! dayOfWeek = -dayOfWeek; ! } ! month--; // Java month is zero-based. ! return new int[] { month, day, dayOfWeek }; } // julian day, either zero-based 0<=n<=365 (incl feb 29) // or one-based 1<=n<=365 (no feb 29) ! int julianDay; // Julian day, if (date.charAt(0) != 'J' || date.charAt(0) != 'j') { ! julianDay = Integer.parseInt(date.substring(1)); ! julianDay++; // make 1-based ! // Adjust day count to include feb 29. ! dayCount = new int[] ! { ! 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 ! }; } else // 1-based julian day --- 1148,1197 ---- if (date.charAt(0) == 'M' || date.charAt(0) == 'm') { ! int day; ! // Month, week of month, day of week ! // "Mm.w.d". d is between 0 (Sunday) and 6. Week w is ! // between 1 and 5; Week 1 is the first week in which day d ! // occurs and Week 5 specifies the last d day in the month. ! // Month m is between 1 and 12. ! month = Integer.parseInt(date.substring(1, date.indexOf('.'))); ! int week = Integer.parseInt(date.substring(date.indexOf('.') + 1, ! date.lastIndexOf('.'))); ! int dayOfWeek = Integer.parseInt(date.substring(date.lastIndexOf('.') ! + 1)); ! dayOfWeek++; // Java day of week is one-based, Sunday is first day. ! if (week == 5) ! day = -1; // last day of month is -1 in java, 5 in TZ ! else ! { ! // First day of week starting on or after. For example, ! // to specify the second Sunday of April, set month to ! // APRIL, day-of-month to 8, and day-of-week to -SUNDAY. ! day = (week - 1) * 7 + 1; ! dayOfWeek = -dayOfWeek; ! } ! month--; // Java month is zero-based. ! return new int[] { month, day, dayOfWeek }; } // julian day, either zero-based 0<=n<=365 (incl feb 29) // or one-based 1<=n<=365 (no feb 29) ! int julianDay; // Julian day, if (date.charAt(0) != 'J' || date.charAt(0) != 'j') { ! julianDay = Integer.parseInt(date.substring(1)); ! julianDay++; // make 1-based ! // Adjust day count to include feb 29. ! dayCount = new int[] ! { ! 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 ! }; } else // 1-based julian day *************** public abstract class TimeZone implement *** 1200,1208 **** int i = 11; while (i > 0) if (dayCount[i] < julianDay) ! break; else ! i--; julianDay -= dayCount[i]; month = i; return new int[] { month, julianDay, 0 }; --- 1200,1208 ---- int i = 11; while (i > 0) if (dayCount[i] < julianDay) ! break; else ! i--; julianDay -= dayCount[i]; month = i; return new int[] { month, julianDay, 0 }; *************** public abstract class TimeZone implement *** 1219,1227 **** while (i < time.length()) if (time.charAt(i) == ':') ! break; else ! i++; millis = 60 * 60 * 1000 * Integer.parseInt(time.substring(0, i)); if (i >= time.length()) return millis; --- 1219,1227 ---- while (i < time.length()) if (time.charAt(i) == ':') ! break; else ! i++; millis = 60 * 60 * 1000 * Integer.parseInt(time.substring(0, i)); if (i >= time.length()) return millis; *************** public abstract class TimeZone implement *** 1229,1237 **** int iprev = ++i; while (i < time.length()) if (time.charAt(i) == ':') ! break; else ! i++; millis += 60 * 1000 * Integer.parseInt(time.substring(iprev, i)); if (i >= time.length()) return millis; --- 1229,1237 ---- int iprev = ++i; while (i < time.length()) if (time.charAt(i) == ':') ! break; else ! i++; millis += 60 * 1000 * Integer.parseInt(time.substring(iprev, i)); if (i >= time.length()) return millis; *************** public abstract class TimeZone implement *** 1241,1247 **** } /** ! * Gets the time zone offset, for current date, modified in case of * daylight savings. This is the offset to add to UTC to get the local * time. * @param era the era of the given date --- 1241,1247 ---- } /** ! * Gets the time zone offset, for current date, modified in case of * daylight savings. This is the offset to add to UTC to get the local * time. * @param era the era of the given date *************** public abstract class TimeZone implement *** 1253,1259 **** * @return the time zone offset in milliseconds. */ public abstract int getOffset(int era, int year, int month, ! int day, int dayOfWeek, int milliseconds); /** * Get the time zone offset for the specified date, modified in case of --- 1253,1259 ---- * @return the time zone offset in milliseconds. */ public abstract int getOffset(int era, int year, int month, ! int day, int dayOfWeek, int milliseconds); /** * Get the time zone offset for the specified date, modified in case of *************** public abstract class TimeZone implement *** 1269,1279 **** ? getRawOffset() + getDSTSavings() : getRawOffset()); } ! /** * Gets the time zone offset, ignoring daylight savings. This is * the offset to add to UTC to get the local time. ! * @return the time zone offset in milliseconds. */ public abstract int getRawOffset(); --- 1269,1279 ---- ? getRawOffset() + getDSTSavings() : getRawOffset()); } ! /** * Gets the time zone offset, ignoring daylight savings. This is * the offset to add to UTC to get the local time. ! * @return the time zone offset in milliseconds. */ public abstract int getRawOffset(); *************** public abstract class TimeZone implement *** 1287,1293 **** /** * Gets the identifier of this time zone. For instance, PST for * Pacific Standard Time. ! * @returns the ID of this time zone. */ public String getID() { --- 1287,1293 ---- /** * Gets the identifier of this time zone. For instance, PST for * Pacific Standard Time. ! * @returns the ID of this time zone. */ public String getID() { *************** public abstract class TimeZone implement *** 1304,1310 **** { if (id == null) throw new NullPointerException(); ! this.ID = id; } --- 1304,1310 ---- { if (id == null) throw new NullPointerException(); ! this.ID = id; } *************** public abstract class TimeZone implement *** 1339,1345 **** /** * This method returns a string name of the time zone suitable * for displaying to the user. The string returned will be of the ! * specified type in the current locale. * * @param dst Whether or not daylight savings time is in effect. * @param style LONG for a long name, SHORT for --- 1339,1345 ---- /** * This method returns a string name of the time zone suitable * for displaying to the user. The string returned will be of the ! * specified type in the current locale. * * @param dst Whether or not daylight savings time is in effect. * @param style LONG for a long name, SHORT for *************** public abstract class TimeZone implement *** 1356,1362 **** /** * This method returns a string name of the time zone suitable * for displaying to the user. The string returned will be of the ! * specified type in the specified locale. * * @param dst Whether or not daylight savings time is in effect. * @param style LONG for a long name, SHORT for --- 1356,1362 ---- /** * This method returns a string name of the time zone suitable * for displaying to the user. The string returned will be of the ! * specified type in the specified locale. * * @param dst Whether or not daylight savings time is in effect. * @param style LONG for a long name, SHORT for *************** public abstract class TimeZone implement *** 1370,1399 **** DateFormatSymbols dfs; try { ! dfs = new DateFormatSymbols(locale); ! // The format of the value returned is defined by us. ! String[][]zoneinfo = dfs.getZoneStrings(); ! for (int i = 0; i < zoneinfo.length; i++) ! { ! if (zoneinfo[i][0].equals(getID())) ! { ! if (!dst) ! { ! if (style == SHORT) ! return (zoneinfo[i][2]); ! else ! return (zoneinfo[i][1]); ! } ! else ! { ! if (style == SHORT) ! return (zoneinfo[i][4]); ! else ! return (zoneinfo[i][3]); ! } ! } ! } } catch (MissingResourceException e) { --- 1370,1399 ---- DateFormatSymbols dfs; try { ! dfs = new DateFormatSymbols(locale); ! // The format of the value returned is defined by us. ! String[][]zoneinfo = dfs.getZoneStrings(); ! for (int i = 0; i < zoneinfo.length; i++) ! { ! if (zoneinfo[i][0].equals(getID())) ! { ! if (!dst) ! { ! if (style == SHORT) ! return (zoneinfo[i][2]); ! else ! return (zoneinfo[i][1]); ! } ! else ! { ! if (style == SHORT) ! return (zoneinfo[i][4]); ! else ! return (zoneinfo[i][3]); ! } ! } ! } } catch (MissingResourceException e) { *************** public abstract class TimeZone implement *** 1415,1432 **** if (minutes != 0 || hours != 0) { ! sb.append(offset >= 0 ? '+' : '-'); ! sb.append((char) ('0' + hours / 10)); ! sb.append((char) ('0' + hours % 10)); ! sb.append(':'); ! sb.append((char) ('0' + minutes / 10)); ! sb.append((char) ('0' + minutes % 10)); } return sb.toString(); } ! /** * Returns true, if this time zone uses Daylight Savings Time. */ public abstract boolean useDaylightTime(); --- 1415,1432 ---- if (minutes != 0 || hours != 0) { ! sb.append(offset >= 0 ? '+' : '-'); ! sb.append((char) ('0' + hours / 10)); ! sb.append((char) ('0' + hours % 10)); ! sb.append(':'); ! sb.append((char) ('0' + minutes / 10)); ! sb.append((char) ('0' + minutes % 10)); } return sb.toString(); } ! /** * Returns true, if this time zone uses Daylight Savings Time. */ public abstract boolean useDaylightTime(); *************** public abstract class TimeZone implement *** 1467,1511 **** TimeZone tznew = null; for (int pass = 0; pass < 2; pass++) { ! synchronized (TimeZone.class) ! { ! tz = (TimeZone) timezones().get(ID); ! if (tz != null) ! { ! if (!tz.getID().equals(ID)) ! { ! // We always return a timezone with the requested ID. ! // This is the same behaviour as with JDK1.2. ! tz = (TimeZone) tz.clone(); ! tz.setID(ID); ! // We also save the alias, so that we return the same ! // object again if getTimeZone is called with the same ! // alias. ! timezones().put(ID, tz); ! } ! return tz; ! } ! else if (tznew != null) ! { ! timezones().put(ID, tznew); ! return tznew; ! } ! } ! if (pass == 1 || zoneinfo_dir == null) ! return null; ! // aliases0 is never changing after first timezones(), so should ! // be safe without synchronization. ! String zonename = (String) aliases0.get(ID); ! if (zonename == null) ! zonename = ID; ! // Read the file outside of the critical section, it is expensive. ! tznew = ZoneInfo.readTZFile (ID, zoneinfo_dir ! + File.separatorChar + zonename); ! if (tznew == null) ! return null; } return null; --- 1467,1511 ---- TimeZone tznew = null; for (int pass = 0; pass < 2; pass++) { ! synchronized (TimeZone.class) ! { ! tz = (TimeZone) timezones().get(ID); ! if (tz != null) ! { ! if (!tz.getID().equals(ID)) ! { ! // We always return a timezone with the requested ID. ! // This is the same behaviour as with JDK1.2. ! tz = (TimeZone) tz.clone(); ! tz.setID(ID); ! // We also save the alias, so that we return the same ! // object again if getTimeZone is called with the same ! // alias. ! timezones().put(ID, tz); ! } ! return tz; ! } ! else if (tznew != null) ! { ! timezones().put(ID, tznew); ! return tznew; ! } ! } ! if (pass == 1 || zoneinfo_dir == null) ! return null; ! // aliases0 is never changing after first timezones(), so should ! // be safe without synchronization. ! String zonename = (String) aliases0.get(ID); ! if (zonename == null) ! zonename = ID; ! // Read the file outside of the critical section, it is expensive. ! tznew = ZoneInfo.readTZFile (ID, zoneinfo_dir ! + File.separatorChar + zonename); ! if (tznew == null) ! return null; } return null; *************** public abstract class TimeZone implement *** 1522,1589 **** // Check for custom IDs first if (ID.startsWith("GMT") && ID.length() > 3) { ! int pos = 3; ! int offset_direction = 1; ! if (ID.charAt(pos) == '-') ! { ! offset_direction = -1; ! pos++; ! } ! else if (ID.charAt(pos) == '+') ! { ! pos++; ! } ! try ! { ! int hour, minute; ! String offset_str = ID.substring(pos); ! int idx = offset_str.indexOf(":"); ! if (idx != -1) ! { ! hour = Integer.parseInt(offset_str.substring(0, idx)); ! minute = Integer.parseInt(offset_str.substring(idx + 1)); ! } ! else ! { ! int offset_length = offset_str.length(); ! if (offset_length <= 2) ! { ! // Only hour ! hour = Integer.parseInt(offset_str); ! minute = 0; ! } ! else ! { ! // hour and minute, not separated by colon ! hour = Integer.parseInt ! (offset_str.substring(0, offset_length - 2)); ! minute = Integer.parseInt ! (offset_str.substring(offset_length - 2)); ! } ! } ! // Custom IDs have to be normalized ! CPStringBuilder sb = new CPStringBuilder(9); ! sb.append("GMT"); ! sb.append(offset_direction >= 0 ? '+' : '-'); ! sb.append((char) ('0' + hour / 10)); ! sb.append((char) ('0' + hour % 10)); ! sb.append(':'); ! sb.append((char) ('0' + minute / 10)); ! sb.append((char) ('0' + minute % 10)); ! ID = sb.toString(); ! return new SimpleTimeZone((hour * (60 * 60 * 1000) ! + minute * (60 * 1000)) ! * offset_direction, ID); ! } ! catch (NumberFormatException e) ! { ! } } TimeZone tz = getTimeZoneInternal(ID); --- 1522,1589 ---- // Check for custom IDs first if (ID.startsWith("GMT") && ID.length() > 3) { ! int pos = 3; ! int offset_direction = 1; ! if (ID.charAt(pos) == '-') ! { ! offset_direction = -1; ! pos++; ! } ! else if (ID.charAt(pos) == '+') ! { ! pos++; ! } ! try ! { ! int hour, minute; ! String offset_str = ID.substring(pos); ! int idx = offset_str.indexOf(":"); ! if (idx != -1) ! { ! hour = Integer.parseInt(offset_str.substring(0, idx)); ! minute = Integer.parseInt(offset_str.substring(idx + 1)); ! } ! else ! { ! int offset_length = offset_str.length(); ! if (offset_length <= 2) ! { ! // Only hour ! hour = Integer.parseInt(offset_str); ! minute = 0; ! } ! else ! { ! // hour and minute, not separated by colon ! hour = Integer.parseInt ! (offset_str.substring(0, offset_length - 2)); ! minute = Integer.parseInt ! (offset_str.substring(offset_length - 2)); ! } ! } ! // Custom IDs have to be normalized ! CPStringBuilder sb = new CPStringBuilder(9); ! sb.append("GMT"); ! sb.append(offset_direction >= 0 ? '+' : '-'); ! sb.append((char) ('0' + hour / 10)); ! sb.append((char) ('0' + hour % 10)); ! sb.append(':'); ! sb.append((char) ('0' + minute / 10)); ! sb.append((char) ('0' + minute % 10)); ! ID = sb.toString(); ! return new SimpleTimeZone((hour * (60 * 60 * 1000) ! + minute * (60 * 1000)) ! * offset_direction, ID); ! } ! catch (NumberFormatException e) ! { ! } } TimeZone tz = getTimeZoneInternal(ID); *************** public abstract class TimeZone implement *** 1595,1601 **** /** * Gets the available IDs according to the given time zone ! * offset. * @param rawOffset the given time zone GMT offset. * @return An array of IDs, where the time zone has the specified GMT * offset. For example {"Phoenix", "Denver"}, since both have --- 1595,1601 ---- /** * Gets the available IDs according to the given time zone ! * offset. * @param rawOffset the given time zone GMT offset. * @return An array of IDs, where the time zone has the specified GMT * offset. For example {"Phoenix", "Denver"}, since both have *************** public abstract class TimeZone implement *** 1605,1646 **** { synchronized (TimeZone.class) { ! HashMap h = timezones(); ! int count = 0; ! if (zoneinfo_dir == null) ! { ! Iterator iter = h.entrySet().iterator(); ! while (iter.hasNext()) ! { ! // Don't iterate the values, since we want to count ! // doubled values (aliases) ! Map.Entry entry = (Map.Entry) iter.next(); ! if (((TimeZone) entry.getValue()).getRawOffset() == rawOffset) ! count++; ! } ! String[] ids = new String[count]; ! count = 0; ! iter = h.entrySet().iterator(); ! while (iter.hasNext()) ! { ! Map.Entry entry = (Map.Entry) iter.next(); ! if (((TimeZone) entry.getValue()).getRawOffset() == rawOffset) ! ids[count++] = (String) entry.getKey(); ! } ! return ids; ! } } String[] s = getAvailableIDs(); int count = 0; for (int i = 0; i < s.length; i++) { ! TimeZone t = getTimeZoneInternal(s[i]); ! if (t == null || t.getRawOffset() != rawOffset) ! s[i] = null; ! else ! count++; } String[] ids = new String[count]; count = 0; --- 1605,1646 ---- { synchronized (TimeZone.class) { ! HashMap h = timezones(); ! int count = 0; ! if (zoneinfo_dir == null) ! { ! Iterator iter = h.entrySet().iterator(); ! while (iter.hasNext()) ! { ! // Don't iterate the values, since we want to count ! // doubled values (aliases) ! Map.Entry entry = (Map.Entry) iter.next(); ! if (((TimeZone) entry.getValue()).getRawOffset() == rawOffset) ! count++; ! } ! String[] ids = new String[count]; ! count = 0; ! iter = h.entrySet().iterator(); ! while (iter.hasNext()) ! { ! Map.Entry entry = (Map.Entry) iter.next(); ! if (((TimeZone) entry.getValue()).getRawOffset() == rawOffset) ! ids[count++] = (String) entry.getKey(); ! } ! return ids; ! } } String[] s = getAvailableIDs(); int count = 0; for (int i = 0; i < s.length; i++) { ! TimeZone t = getTimeZoneInternal(s[i]); ! if (t == null || t.getRawOffset() != rawOffset) ! s[i] = null; ! else ! count++; } String[] ids = new String[count]; count = 0; *************** public abstract class TimeZone implement *** 1658,1685 **** boolean top = prefix.length() == 0; list.add (files); for (int i = 0; i < files.length; i++) ! { ! if (top ! && (files[i].equals("posix") ! || files[i].equals("right") ! || files[i].endsWith(".tab") ! || aliases0.get(files[i]) != null)) ! { ! files[i] = null; ! count--; ! continue; ! } ! File f = new File(d, files[i]); ! if (f.isDirectory()) ! { ! count += getAvailableIDs(f, prefix + files[i] ! + File.separatorChar, list) - 1; ! files[i] = null; ! } ! else ! files[i] = prefix + files[i]; ! } return count; } --- 1658,1685 ---- boolean top = prefix.length() == 0; list.add (files); for (int i = 0; i < files.length; i++) ! { ! if (top ! && (files[i].equals("posix") ! || files[i].equals("right") ! || files[i].endsWith(".tab") ! || aliases0.get(files[i]) != null)) ! { ! files[i] = null; ! count--; ! continue; ! } ! File f = new File(d, files[i]); ! if (f.isDirectory()) ! { ! count += getAvailableIDs(f, prefix + files[i] ! + File.separatorChar, list) - 1; ! files[i] = null; ! } ! else ! files[i] = prefix + files[i]; ! } return count; } *************** public abstract class TimeZone implement *** 1691,1735 **** { synchronized (TimeZone.class) { ! HashMap h = timezones(); ! if (zoneinfo_dir == null) ! return (String[]) h.keySet().toArray(new String[h.size()]); ! if (availableIDs != null) ! { ! String[] ids = new String[availableIDs.length]; ! for (int i = 0; i < availableIDs.length; i++) ! ids[i] = availableIDs[i]; ! return ids; ! } ! File d = new File(zoneinfo_dir); ! ArrayList list = new ArrayList(30); ! int count = getAvailableIDs(d, "", list) + aliases0.size(); ! availableIDs = new String[count]; ! String[] ids = new String[count]; ! count = 0; ! for (int i = 0; i < list.size(); i++) ! { ! String[] s = (String[]) list.get(i); ! for (int j = 0; j < s.length; j++) ! if (s[j] != null) ! { ! availableIDs[count] = s[j]; ! ids[count++] = s[j]; ! } ! } ! Iterator iter = aliases0.entrySet().iterator(); ! while (iter.hasNext()) ! { ! Map.Entry entry = (Map.Entry) iter.next(); ! availableIDs[count] = (String) entry.getKey(); ! ids[count++] = (String) entry.getKey(); ! } ! return ids; } } --- 1691,1735 ---- { synchronized (TimeZone.class) { ! HashMap h = timezones(); ! if (zoneinfo_dir == null) ! return (String[]) h.keySet().toArray(new String[h.size()]); ! if (availableIDs != null) ! { ! String[] ids = new String[availableIDs.length]; ! for (int i = 0; i < availableIDs.length; i++) ! ids[i] = availableIDs[i]; ! return ids; ! } ! File d = new File(zoneinfo_dir); ! ArrayList list = new ArrayList(30); ! int count = getAvailableIDs(d, "", list) + aliases0.size(); ! availableIDs = new String[count]; ! String[] ids = new String[count]; ! count = 0; ! for (int i = 0; i < list.size(); i++) ! { ! String[] s = (String[]) list.get(i); ! for (int j = 0; j < s.length; j++) ! if (s[j] != null) ! { ! availableIDs[count] = s[j]; ! ids[count++] = s[j]; ! } ! } ! Iterator iter = aliases0.entrySet().iterator(); ! while (iter.hasNext()) ! { ! Map.Entry entry = (Map.Entry) iter.next(); ! availableIDs[count] = (String) entry.getKey(); ! ids[count++] = (String) entry.getKey(); ! } ! return ids; } } *************** public abstract class TimeZone implement *** 1771,1781 **** { try { ! return super.clone(); } catch (CloneNotSupportedException ex) { ! return null; } } } --- 1771,1781 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException ex) { ! return null; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Timer.java gcc-4.6.0/libjava/classpath/java/util/Timer.java *** gcc-4.5.2/libjava/classpath/java/util/Timer.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/Timer.java Tue Jan 11 19:46:05 2011 *************** public class Timer *** 111,121 **** { elements++; if (elements == heap.length) ! { ! TimerTask new_heap[] = new TimerTask[heap.length * 2]; ! System.arraycopy(heap, 0, new_heap, 0, heap.length); ! heap = new_heap; ! } heap[elements] = task; } --- 111,121 ---- { elements++; if (elements == heap.length) ! { ! TimerTask new_heap[] = new TimerTask[heap.length * 2]; ! System.arraycopy(heap, 0, new_heap, 0, heap.length); ! heap = new_heap; ! } heap[elements] = task; } *************** public class Timer *** 130,140 **** heap[elements] = null; elements--; if (elements + DEFAULT_SIZE / 2 <= (heap.length / 4)) ! { ! TimerTask new_heap[] = new TimerTask[heap.length / 2]; ! System.arraycopy(heap, 0, new_heap, 0, elements + 1); ! heap = new_heap; ! } } /** --- 130,140 ---- heap[elements] = null; elements--; if (elements + DEFAULT_SIZE / 2 <= (heap.length / 4)) ! { ! TimerTask new_heap[] = new TimerTask[heap.length / 2]; ! System.arraycopy(heap, 0, new_heap, 0, elements + 1); ! heap = new_heap; ! } } /** *************** public class Timer *** 145,169 **** { // Check if it is legal to add another element if (heap == null) ! { ! throw new IllegalStateException ! ("cannot enqueue when stop() has been called on queue"); ! } ! heap[0] = task; // sentinel ! add(task); // put the new task at the end // Now push the task up in the heap until it has reached its place int child = elements; int parent = child / 2; while (heap[parent].scheduled > task.scheduled) ! { ! heap[child] = heap[parent]; ! child = parent; ! parent = child / 2; ! } // This is the correct place for the new task heap[child] = task; ! heap[0] = null; // clear sentinel // Maybe sched() is waiting for a new element this.notify(); } --- 145,169 ---- { // Check if it is legal to add another element if (heap == null) ! { ! throw new IllegalStateException ! ("cannot enqueue when stop() has been called on queue"); ! } ! heap[0] = task; // sentinel ! add(task); // put the new task at the end // Now push the task up in the heap until it has reached its place int child = elements; int parent = child / 2; while (heap[parent].scheduled > task.scheduled) ! { ! heap[child] = heap[parent]; ! child = parent; ! parent = child / 2; ! } // This is the correct place for the new task heap[child] = task; ! heap[0] = null; // clear sentinel // Maybe sched() is waiting for a new element this.notify(); } *************** public class Timer *** 175,187 **** private TimerTask top() { if (elements == 0) ! { ! return null; ! } else ! { ! return heap[1]; ! } } /** --- 175,187 ---- private TimerTask top() { if (elements == 0) ! { ! return null; ! } else ! { ! return heap[1]; ! } } /** *************** public class Timer *** 195,244 **** TimerTask task = null; while (task == null) ! { ! // Get the next task ! task = top(); ! // return null when asked to stop ! // or if asked to return null when the queue is empty ! if ((heap == null) || (task == null && nullOnEmpty)) ! { ! return null; ! } ! // Do we have a task? ! if (task != null) ! { ! // The time to wait until the task should be served ! long time = task.scheduled - System.currentTimeMillis(); ! if (time > 0) ! { ! // This task should not yet be served ! // So wait until this task is ready ! // or something else happens to the queue ! task = null; // set to null to make sure we call top() ! try ! { ! this.wait(time); ! } ! catch (InterruptedException _) ! { ! } ! } ! } ! else ! { ! // wait until a task is added ! // or something else happens to the queue ! try ! { ! this.wait(); ! } ! catch (InterruptedException _) ! { ! } ! } ! } // reconstruct the heap TimerTask lastTask = heap[elements]; --- 195,244 ---- TimerTask task = null; while (task == null) ! { ! // Get the next task ! task = top(); ! // return null when asked to stop ! // or if asked to return null when the queue is empty ! if ((heap == null) || (task == null && nullOnEmpty)) ! { ! return null; ! } ! // Do we have a task? ! if (task != null) ! { ! // The time to wait until the task should be served ! long time = task.scheduled - System.currentTimeMillis(); ! if (time > 0) ! { ! // This task should not yet be served ! // So wait until this task is ready ! // or something else happens to the queue ! task = null; // set to null to make sure we call top() ! try ! { ! this.wait(time); ! } ! catch (InterruptedException _) ! { ! } ! } ! } ! else ! { ! // wait until a task is added ! // or something else happens to the queue ! try ! { ! this.wait(); ! } ! catch (InterruptedException _) ! { ! } ! } ! } // reconstruct the heap TimerTask lastTask = heap[elements]; *************** public class Timer *** 249,270 **** int child = 2; heap[1] = lastTask; while (child <= elements) ! { ! if (child < elements) ! { ! if (heap[child].scheduled > heap[child + 1].scheduled) ! { ! child++; ! } ! } ! if (lastTask.scheduled <= heap[child].scheduled) ! break; // found the correct place (the parent) - done ! heap[parent] = heap[child]; ! parent = child; ! child = parent * 2; ! } // this is the correct new place for the lastTask heap[parent] = lastTask; --- 249,270 ---- int child = 2; heap[1] = lastTask; while (child <= elements) ! { ! if (child < elements) ! { ! if (heap[child].scheduled > heap[child + 1].scheduled) ! { ! child++; ! } ! } ! if (lastTask.scheduled <= heap[child].scheduled) ! break; // found the correct place (the parent) - done ! heap[parent] = heap[child]; ! parent = child; ! child = parent * 2; ! } // this is the correct new place for the lastTask heap[parent] = lastTask; *************** public class Timer *** 306,358 **** // Null out any elements that are canceled. Skip element 0 as // it is the sentinel. for (int i = elements; i > 0; --i) ! { ! if (heap[i].scheduled < 0) ! { ! ++removed; ! // Remove an element by pushing the appropriate child ! // into place, and then iterating to the bottom of the ! // tree. ! int index = i; ! while (heap[index] != null) ! { ! int child = 2 * index; ! if (child >= heap.length) ! { ! // Off end; we're done. ! heap[index] = null; ! break; ! } ! if (child + 1 >= heap.length || heap[child + 1] == null) ! { ! // Nothing -- we're done. ! } ! else if (heap[child] == null ! || (heap[child].scheduled ! > heap[child + 1].scheduled)) ! ++child; ! heap[index] = heap[child]; ! index = child; ! } ! } ! } // Make a new heap if we shrank enough. int newLen = heap.length; while (elements - removed + DEFAULT_SIZE / 2 <= newLen / 4) ! newLen /= 2; if (newLen != heap.length) ! { ! TimerTask[] newHeap = new TimerTask[newLen]; ! System.arraycopy(heap, 0, newHeap, 0, elements + 1); ! heap = newHeap; ! } return removed; } ! } // TaskQueue /** * The scheduler that executes all the tasks on a particular TaskQueue, --- 306,358 ---- // Null out any elements that are canceled. Skip element 0 as // it is the sentinel. for (int i = elements; i > 0; --i) ! { ! if (heap[i].scheduled < 0) ! { ! ++removed; ! // Remove an element by pushing the appropriate child ! // into place, and then iterating to the bottom of the ! // tree. ! int index = i; ! while (heap[index] != null) ! { ! int child = 2 * index; ! if (child >= heap.length) ! { ! // Off end; we're done. ! heap[index] = null; ! break; ! } ! if (child + 1 >= heap.length || heap[child + 1] == null) ! { ! // Nothing -- we're done. ! } ! else if (heap[child] == null ! || (heap[child].scheduled ! > heap[child + 1].scheduled)) ! ++child; ! heap[index] = heap[child]; ! index = child; ! } ! } ! } // Make a new heap if we shrank enough. int newLen = heap.length; while (elements - removed + DEFAULT_SIZE / 2 <= newLen / 4) ! newLen /= 2; if (newLen != heap.length) ! { ! TimerTask[] newHeap = new TimerTask[newLen]; ! System.arraycopy(heap, 0, newHeap, 0, elements + 1); ! heap = newHeap; ! } return removed; } ! } // TaskQueue /** * The scheduler that executes all the tasks on a particular TaskQueue, *************** public class Timer *** 378,440 **** { TimerTask task; while ((task = queue.serve()) != null) ! { ! // If this task has not been canceled ! if (task.scheduled >= 0) ! { ! // Mark execution time ! task.lastExecutionTime = task.scheduled; ! // Repeatable task? ! if (task.period < 0) ! { ! // Last time this task is executed ! task.scheduled = -1; ! } ! // Run the task ! try ! { ! task.run(); ! } catch (ThreadDeath death) { // If an exception escapes, the Timer becomes invalid. queue.stop(); throw death; } ! catch (Throwable t) ! { ! // If an exception escapes, the Timer becomes invalid. queue.stop(); ! } ! } ! // Calculate next time and possibly re-enqueue. ! if (task.scheduled >= 0) ! { ! if (task.fixed) ! { ! task.scheduled += task.period; ! } ! else ! { ! task.scheduled = task.period + System.currentTimeMillis(); ! } ! try ! { ! queue.enqueue(task); ! } ! catch (IllegalStateException ise) ! { ! // Ignore. Apparently the Timer queue has been stopped. ! } ! } ! } } ! } // Scheduler // Number of Timers created. // Used for creating nice Thread names. --- 378,440 ---- { TimerTask task; while ((task = queue.serve()) != null) ! { ! // If this task has not been canceled ! if (task.scheduled >= 0) ! { ! // Mark execution time ! task.lastExecutionTime = task.scheduled; ! // Repeatable task? ! if (task.period < 0) ! { ! // Last time this task is executed ! task.scheduled = -1; ! } ! // Run the task ! try ! { ! task.run(); ! } catch (ThreadDeath death) { // If an exception escapes, the Timer becomes invalid. queue.stop(); throw death; } ! catch (Throwable t) ! { ! // If an exception escapes, the Timer becomes invalid. queue.stop(); ! } ! } ! // Calculate next time and possibly re-enqueue. ! if (task.scheduled >= 0) ! { ! if (task.fixed) ! { ! task.scheduled += task.period; ! } ! else ! { ! task.scheduled = task.period + System.currentTimeMillis(); ! } ! try ! { ! queue.enqueue(task); ! } ! catch (IllegalStateException ise) ! { ! // Ignore. Apparently the Timer queue has been stopped. ! } ! } ! } } ! } // Scheduler // Number of Timers created. // Used for creating nice Thread names. *************** public class Timer *** 474,484 **** this(daemon, Thread.NORM_PRIORITY); } ! /** ! * Create a new Timer whose Thread has the indicated name. It will have ! * normal priority and will not be a daemon thread. * @param name the name of the Thread ! * @since 1.5 */ public Timer(String name) { --- 474,484 ---- this(daemon, Thread.NORM_PRIORITY); } ! /** ! * Create a new Timer whose Thread has the indicated name. It will have ! * normal priority and will not be a daemon thread. * @param name the name of the Thread ! * @since 1.5 */ public Timer(String name) { *************** public class Timer *** 486,492 **** } /** ! * Create a new Timer whose Thread has the indicated name. It will have * normal priority. The boolean argument controls whether or not it * will be a daemon thread. * @param name the name of the Thread --- 486,492 ---- } /** ! * Create a new Timer whose Thread has the indicated name. It will have * normal priority. The boolean argument controls whether or not it * will be a daemon thread. * @param name the name of the Thread *************** public class Timer *** 548,571 **** if (task.scheduled == 0 && task.lastExecutionTime == -1) { ! task.scheduled = time; ! task.period = period; ! task.fixed = fixed; } else { ! throw new IllegalStateException ! ("task was already scheduled or canceled"); } if (!this.canceled && this.thread != null) { ! queue.enqueue(task); } else { ! throw new IllegalStateException ! ("timer was canceled or scheduler thread has died"); } } --- 548,571 ---- if (task.scheduled == 0 && task.lastExecutionTime == -1) { ! task.scheduled = time; ! task.period = period; ! task.fixed = fixed; } else { ! throw new IllegalStateException ! ("task was already scheduled or canceled"); } if (!this.canceled && this.thread != null) { ! queue.enqueue(task); } else { ! throw new IllegalStateException ! ("timer was canceled or scheduler thread has died"); } } *************** public class Timer *** 573,579 **** { if (delay < 0) { ! throw new IllegalArgumentException("delay is negative"); } } --- 573,579 ---- { if (delay < 0) { ! throw new IllegalArgumentException("delay is negative"); } } *************** public class Timer *** 581,587 **** { if (period < 0) { ! throw new IllegalArgumentException("period is negative"); } } --- 581,587 ---- { if (period < 0) { ! throw new IllegalArgumentException("period is negative"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/TreeMap.java gcc-4.6.0/libjava/classpath/java/util/TreeMap.java *** gcc-4.5.2/libjava/classpath/java/util/TreeMap.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/TreeMap.java Tue Jan 11 19:46:05 2011 *************** public class TreeMap extends Abstr *** 446,452 **** * (or equal to, if inclusive is true) toKey. * The returned map is backed by the original, so changes in one appear * in the other. The submap will throw an {@link IllegalArgumentException} ! * for any attempt to access or add an element beyond the specified cutoff. * * @param toKey the cutoff point * @param inclusive true if the cutoff point should be included. --- 446,452 ---- * (or equal to, if inclusive is true) toKey. * The returned map is backed by the original, so changes in one appear * in the other. The submap will throw an {@link IllegalArgumentException} ! * for any attempt to access or add an element beyond the specified cutoff. * * @param toKey the cutoff point * @param inclusive true if the cutoff point should be included. *************** public class TreeMap extends Abstr *** 459,466 **** */ public NavigableMap headMap(K toKey, boolean inclusive) { ! return new SubMap((K)(Object)nil, inclusive ! ? successor(getNode(toKey)).key : toKey); } /** --- 459,466 ---- */ public NavigableMap headMap(K toKey, boolean inclusive) { ! return new SubMap((K)(Object)nil, inclusive ! ? successor(getNode(toKey)).key : toKey); } /** *************** public class TreeMap extends Abstr *** 641,647 **** * toKey. The returned map is backed by the original, so * changes in one appear in the other. The submap will throw an * {@link IllegalArgumentException} for any attempt to access or add an ! * element beyond the specified cutoffs. * * @param fromKey the low cutoff point * @param fromInclusive true if the low cutoff point should be included. --- 641,647 ---- * toKey. The returned map is backed by the original, so * changes in one appear in the other. The submap will throw an * {@link IllegalArgumentException} for any attempt to access or add an ! * element beyond the specified cutoffs. * * @param fromKey the low cutoff point * @param fromInclusive true if the low cutoff point should be included. *************** public class TreeMap extends Abstr *** 655,664 **** * @throws IllegalArgumentException if fromKey is greater than toKey */ public NavigableMap subMap(K fromKey, boolean fromInclusive, ! K toKey, boolean toInclusive) { return new SubMap(fromInclusive ? fromKey : successor(getNode(fromKey)).key, ! toInclusive ? successor(getNode(toKey)).key : toKey); } /** --- 655,664 ---- * @throws IllegalArgumentException if fromKey is greater than toKey */ public NavigableMap subMap(K fromKey, boolean fromInclusive, ! K toKey, boolean toInclusive) { return new SubMap(fromInclusive ? fromKey : successor(getNode(fromKey)).key, ! toInclusive ? successor(getNode(toKey)).key : toKey); } /** *************** public class TreeMap extends Abstr *** 701,707 **** public NavigableMap tailMap(K fromKey, boolean inclusive) { return new SubMap(inclusive ? fromKey : successor(getNode(fromKey)).key, ! (K)(Object)nil); } /** --- 701,707 ---- public NavigableMap tailMap(K fromKey, boolean inclusive) { return new SubMap(inclusive ? fromKey : successor(getNode(fromKey)).key, ! (K)(Object)nil); } /** *************** public class TreeMap extends Abstr *** 873,881 **** { if (count == 0) { ! root = nil; ! size = 0; ! return; } // We color every row of nodes black, except for the overflow nodes. --- 873,881 ---- { if (count == 0) { ! root = nil; ! size = 0; ! return; } // We color every row of nodes black, except for the overflow nodes. *************** public class TreeMap extends Abstr *** 1601,1607 **** { Entry n = TreeMap.this.ceilingEntry(key); if (n != null && keyInRange(n.getKey())) ! return n; return null; } --- 1601,1607 ---- { Entry n = TreeMap.this.ceilingEntry(key); if (n != null && keyInRange(n.getKey())) ! return n; return null; } *************** public class TreeMap extends Abstr *** 1609,1617 **** { K found = TreeMap.this.ceilingKey(key); if (keyInRange(found)) ! return found; else ! return null; } public NavigableSet descendingKeySet() --- 1609,1617 ---- { K found = TreeMap.this.ceilingKey(key); if (keyInRange(found)) ! return found; else ! return null; } public NavigableSet descendingKeySet() *************** public class TreeMap extends Abstr *** 1622,1631 **** public NavigableMap descendingMap() { if (descendingMap == null) ! descendingMap = new DescendingMap(this); return descendingMap; } ! public void clear() { Node next = lowestGreaterThan(minKey, true); --- 1622,1631 ---- public NavigableMap descendingMap() { if (descendingMap == null) ! descendingMap = new DescendingMap(this); return descendingMap; } ! public void clear() { Node next = lowestGreaterThan(minKey, true); *************** public class TreeMap extends Abstr *** 1674,1680 **** { Node node = lowestGreaterThan(minKey, true); if (node == nil || ! keyInRange(node.key)) ! return null; return node; } --- 1674,1680 ---- { Node node = lowestGreaterThan(minKey, true); if (node == nil || ! keyInRange(node.key)) ! return null; return node; } *************** public class TreeMap extends Abstr *** 1690,1696 **** { Entry n = TreeMap.this.floorEntry(key); if (n != null && keyInRange(n.getKey())) ! return n; return null; } --- 1690,1696 ---- { Entry n = TreeMap.this.floorEntry(key); if (n != null && keyInRange(n.getKey())) ! return n; return null; } *************** public class TreeMap extends Abstr *** 1698,1706 **** { K found = TreeMap.this.floorKey(key); if (keyInRange(found)) ! return found; else ! return null; } public V get(Object key) --- 1698,1706 ---- { K found = TreeMap.this.floorKey(key); if (keyInRange(found)) ! return found; else ! return null; } public V get(Object key) *************** public class TreeMap extends Abstr *** 1719,1726 **** { if (!keyInRange(toKey)) throw new IllegalArgumentException("Key outside submap range"); ! return new SubMap(minKey, (inclusive ? ! successor(getNode(toKey)).key : toKey)); } public Set keySet() --- 1719,1726 ---- { if (!keyInRange(toKey)) throw new IllegalArgumentException("Key outside submap range"); ! return new SubMap(minKey, (inclusive ? ! successor(getNode(toKey)).key : toKey)); } public Set keySet() *************** public class TreeMap extends Abstr *** 1736,1742 **** { Entry n = TreeMap.this.higherEntry(key); if (n != null && keyInRange(n.getKey())) ! return n; return null; } --- 1736,1742 ---- { Entry n = TreeMap.this.higherEntry(key); if (n != null && keyInRange(n.getKey())) ! return n; return null; } *************** public class TreeMap extends Abstr *** 1744,1752 **** { K found = TreeMap.this.higherKey(key); if (keyInRange(found)) ! return found; else ! return null; } public Entry lastEntry() --- 1744,1752 ---- { K found = TreeMap.this.higherKey(key); if (keyInRange(found)) ! return found; else ! return null; } public Entry lastEntry() *************** public class TreeMap extends Abstr *** 1766,1772 **** { Entry n = TreeMap.this.lowerEntry(key); if (n != null && keyInRange(n.getKey())) ! return n; return null; } --- 1766,1772 ---- { Entry n = TreeMap.this.lowerEntry(key); if (n != null && keyInRange(n.getKey())) ! return n; return null; } *************** public class TreeMap extends Abstr *** 1774,1782 **** { K found = TreeMap.this.lowerKey(key); if (keyInRange(found)) ! return found; else ! return null; } public NavigableSet navigableKeySet() --- 1774,1782 ---- { K found = TreeMap.this.lowerKey(key); if (keyInRange(found)) ! return found; else ! return null; } public NavigableSet navigableKeySet() *************** public class TreeMap extends Abstr *** 1785,1798 **** // Create an AbstractSet with custom implementations of those methods // that can be overriden easily and efficiently. this.nKeys = new SubMap.NavigableKeySet(); ! return this.nKeys; } public Entry pollFirstEntry() { Entry e = firstEntry(); if (e != null) ! removeNode((Node) e); return e; } --- 1785,1798 ---- // Create an AbstractSet with custom implementations of those methods // that can be overriden easily and efficiently. this.nKeys = new SubMap.NavigableKeySet(); ! return this.nKeys; } public Entry pollFirstEntry() { Entry e = firstEntry(); if (e != null) ! removeNode((Node) e); return e; } *************** public class TreeMap extends Abstr *** 1800,1806 **** { Entry e = lastEntry(); if (e != null) ! removeNode((Node) e); return e; } --- 1800,1806 ---- { Entry e = lastEntry(); if (e != null) ! removeNode((Node) e); return e; } *************** public class TreeMap extends Abstr *** 1837,1861 **** } public NavigableMap subMap(K fromKey, boolean fromInclusive, ! K toKey, boolean toInclusive) { if (! keyInRange(fromKey) || ! keyInRange(toKey)) throw new IllegalArgumentException("key outside range"); ! return new SubMap(fromInclusive ? fromKey : successor(getNode(fromKey)).key, ! toInclusive ? successor(getNode(toKey)).key : toKey); } public SortedMap tailMap(K fromKey) { return tailMap(fromKey, true); } ! public NavigableMap tailMap(K fromKey, boolean inclusive) { if (! keyInRange(fromKey)) throw new IllegalArgumentException("key outside range"); return new SubMap(inclusive ? fromKey : successor(getNode(fromKey)).key, ! maxKey); } public Collection values() --- 1837,1861 ---- } public NavigableMap subMap(K fromKey, boolean fromInclusive, ! K toKey, boolean toInclusive) { if (! keyInRange(fromKey) || ! keyInRange(toKey)) throw new IllegalArgumentException("key outside range"); ! return new SubMap(fromInclusive ? fromKey : successor(getNode(fromKey)).key, ! toInclusive ? successor(getNode(toKey)).key : toKey); } public SortedMap tailMap(K fromKey) { return tailMap(fromKey, true); } ! public NavigableMap tailMap(K fromKey, boolean inclusive) { if (! keyInRange(fromKey)) throw new IllegalArgumentException("key outside range"); return new SubMap(inclusive ? fromKey : successor(getNode(fromKey)).key, ! maxKey); } public Collection values() *************** public class TreeMap extends Abstr *** 1884,1930 **** }; return this.values; } ! private class KeySet extends AbstractSet { public int size() { ! return SubMap.this.size(); } ! public Iterator iterator() { ! Node first = lowestGreaterThan(minKey, true); ! Node max = lowestGreaterThan(maxKey, false); ! return new TreeIterator(KEYS, first, max); } ! public void clear() { ! SubMap.this.clear(); } ! public boolean contains(Object o) { ! if (! keyInRange((K) o)) ! return false; ! return getNode((K) o) != nil; } ! public boolean remove(Object o) { ! if (! keyInRange((K) o)) ! return false; ! Node n = getNode((K) o); ! if (n != nil) ! { ! removeNode(n); ! return true; ! } ! return false; } ! } // class SubMap.KeySet private final class NavigableKeySet --- 1884,1930 ---- }; return this.values; } ! private class KeySet extends AbstractSet { public int size() { ! return SubMap.this.size(); } ! public Iterator iterator() { ! Node first = lowestGreaterThan(minKey, true); ! Node max = lowestGreaterThan(maxKey, false); ! return new TreeIterator(KEYS, first, max); } ! public void clear() { ! SubMap.this.clear(); } ! public boolean contains(Object o) { ! if (! keyInRange((K) o)) ! return false; ! return getNode((K) o) != nil; } ! public boolean remove(Object o) { ! if (! keyInRange((K) o)) ! return false; ! Node n = getNode((K) o); ! if (n != nil) ! { ! removeNode(n); ! return true; ! } ! return false; } ! } // class SubMap.KeySet private final class NavigableKeySet *************** public class TreeMap extends Abstr *** 1934,2024 **** public K ceiling(K k) { ! return SubMap.this.ceilingKey(k); } ! public Comparator comparator() { ! return comparator; } ! public Iterator descendingIterator() { ! return descendingSet().iterator(); } ! public NavigableSet descendingSet() { ! return new DescendingSet(this); } ! public K first() { ! return SubMap.this.firstKey(); } ! public K floor(K k) { ! return SubMap.this.floorKey(k); } ! public SortedSet headSet(K to) { ! return headSet(to, false); } public NavigableSet headSet(K to, boolean inclusive) { ! return SubMap.this.headMap(to, inclusive).navigableKeySet(); } public K higher(K k) { ! return SubMap.this.higherKey(k); } public K last() { ! return SubMap.this.lastKey(); } public K lower(K k) { ! return SubMap.this.lowerKey(k); } public K pollFirst() { ! return SubMap.this.pollFirstEntry().getKey(); } public K pollLast() { ! return SubMap.this.pollLastEntry().getKey(); } public SortedSet subSet(K from, K to) { ! return subSet(from, true, to, false); } ! public NavigableSet subSet(K from, boolean fromInclusive, ! K to, boolean toInclusive) { ! return SubMap.this.subMap(from, fromInclusive, ! to, toInclusive).navigableKeySet(); } public SortedSet tailSet(K from) { ! return tailSet(from, true); } ! public NavigableSet tailSet(K from, boolean inclusive) { ! return SubMap.this.tailMap(from, inclusive).navigableKeySet(); } ! } // class SubMap.NavigableKeySet /** --- 1934,2024 ---- public K ceiling(K k) { ! return SubMap.this.ceilingKey(k); } ! public Comparator comparator() { ! return comparator; } ! public Iterator descendingIterator() { ! return descendingSet().iterator(); } ! public NavigableSet descendingSet() { ! return new DescendingSet(this); } ! public K first() { ! return SubMap.this.firstKey(); } ! public K floor(K k) { ! return SubMap.this.floorKey(k); } ! public SortedSet headSet(K to) { ! return headSet(to, false); } public NavigableSet headSet(K to, boolean inclusive) { ! return SubMap.this.headMap(to, inclusive).navigableKeySet(); } public K higher(K k) { ! return SubMap.this.higherKey(k); } public K last() { ! return SubMap.this.lastKey(); } public K lower(K k) { ! return SubMap.this.lowerKey(k); } public K pollFirst() { ! return SubMap.this.pollFirstEntry().getKey(); } public K pollLast() { ! return SubMap.this.pollLastEntry().getKey(); } public SortedSet subSet(K from, K to) { ! return subSet(from, true, to, false); } ! public NavigableSet subSet(K from, boolean fromInclusive, ! K to, boolean toInclusive) { ! return SubMap.this.subMap(from, fromInclusive, ! to, toInclusive).navigableKeySet(); } public SortedSet tailSet(K from) { ! return tailSet(from, true); } ! public NavigableSet tailSet(K from, boolean inclusive) { ! return SubMap.this.tailMap(from, inclusive).navigableKeySet(); } ! } // class SubMap.NavigableKeySet /** *************** public class TreeMap extends Abstr *** 2027,2080 **** private class EntrySet extends AbstractSet> { ! public int size() { return SubMap.this.size(); } ! public Iterator> iterator() { Node first = lowestGreaterThan(minKey, true); Node max = lowestGreaterThan(maxKey, false); return new TreeIterator(ENTRIES, first, max); } ! public void clear() { SubMap.this.clear(); } ! public boolean contains(Object o) { if (! (o instanceof Map.Entry)) ! return false; Map.Entry me = (Map.Entry) o; K key = me.getKey(); if (! keyInRange(key)) ! return false; Node n = getNode(key); return n != nil && AbstractSet.equals(me.getValue(), n.value); } ! public boolean remove(Object o) { if (! (o instanceof Map.Entry)) ! return false; Map.Entry me = (Map.Entry) o; K key = me.getKey(); if (! keyInRange(key)) ! return false; Node n = getNode(key); if (n != nil && AbstractSet.equals(me.getValue(), n.value)) ! { ! removeNode(n); ! return true; ! } return false; } } // class SubMap.EntrySet ! private final class NavigableEntrySet extends EntrySet implements NavigableSet> --- 2027,2080 ---- private class EntrySet extends AbstractSet> { ! public int size() { return SubMap.this.size(); } ! public Iterator> iterator() { Node first = lowestGreaterThan(minKey, true); Node max = lowestGreaterThan(maxKey, false); return new TreeIterator(ENTRIES, first, max); } ! public void clear() { SubMap.this.clear(); } ! public boolean contains(Object o) { if (! (o instanceof Map.Entry)) ! return false; Map.Entry me = (Map.Entry) o; K key = me.getKey(); if (! keyInRange(key)) ! return false; Node n = getNode(key); return n != nil && AbstractSet.equals(me.getValue(), n.value); } ! public boolean remove(Object o) { if (! (o instanceof Map.Entry)) ! return false; Map.Entry me = (Map.Entry) o; K key = me.getKey(); if (! keyInRange(key)) ! return false; Node n = getNode(key); if (n != nil && AbstractSet.equals(me.getValue(), n.value)) ! { ! removeNode(n); ! return true; ! } return false; } } // class SubMap.EntrySet ! private final class NavigableEntrySet extends EntrySet implements NavigableSet> *************** public class TreeMap extends Abstr *** 2082,2184 **** public Entry ceiling(Entry e) { ! return SubMap.this.ceilingEntry(e.getKey()); } ! public Comparator> comparator() { ! return new Comparator>() ! { ! public int compare(Entry t1, Entry t2) ! { ! return comparator.compare(t1.getKey(), t2.getKey()); ! } ! }; } ! public Iterator> descendingIterator() { ! return descendingSet().iterator(); } ! public NavigableSet> descendingSet() { ! return new DescendingSet(this); } ! public Entry first() { ! return SubMap.this.firstEntry(); } ! public Entry floor(Entry e) { ! return SubMap.this.floorEntry(e.getKey()); } ! public SortedSet> headSet(Entry to) { ! return headSet(to, false); } public NavigableSet> headSet(Entry to, boolean inclusive) { ! return (NavigableSet>) ! SubMap.this.headMap(to.getKey(), inclusive).entrySet(); } public Entry higher(Entry e) { ! return SubMap.this.higherEntry(e.getKey()); } public Entry last() { ! return SubMap.this.lastEntry(); } public Entry lower(Entry e) { ! return SubMap.this.lowerEntry(e.getKey()); } public Entry pollFirst() { ! return SubMap.this.pollFirstEntry(); } public Entry pollLast() { ! return SubMap.this.pollLastEntry(); } public SortedSet> subSet(Entry from, Entry to) { ! return subSet(from, true, to, false); } ! public NavigableSet> subSet(Entry from, boolean fromInclusive, ! Entry to, boolean toInclusive) { ! return (NavigableSet>) ! SubMap.this.subMap(from.getKey(), fromInclusive, ! to.getKey(), toInclusive).entrySet(); } public SortedSet> tailSet(Entry from) { ! return tailSet(from, true); } ! public NavigableSet> tailSet(Entry from, boolean inclusive) { ! return (NavigableSet>) ! SubMap.this.tailMap(from.getKey(), inclusive).navigableKeySet(); } ! } // class SubMap.NavigableEntrySet ! } // class SubMap /** * Returns the entry associated with the least or lowest key --- 2082,2184 ---- public Entry ceiling(Entry e) { ! return SubMap.this.ceilingEntry(e.getKey()); } ! public Comparator> comparator() { ! return new Comparator>() ! { ! public int compare(Entry t1, Entry t2) ! { ! return comparator.compare(t1.getKey(), t2.getKey()); ! } ! }; } ! public Iterator> descendingIterator() { ! return descendingSet().iterator(); } ! public NavigableSet> descendingSet() { ! return new DescendingSet(this); } ! public Entry first() { ! return SubMap.this.firstEntry(); } ! public Entry floor(Entry e) { ! return SubMap.this.floorEntry(e.getKey()); } ! public SortedSet> headSet(Entry to) { ! return headSet(to, false); } public NavigableSet> headSet(Entry to, boolean inclusive) { ! return (NavigableSet>) ! SubMap.this.headMap(to.getKey(), inclusive).entrySet(); } public Entry higher(Entry e) { ! return SubMap.this.higherEntry(e.getKey()); } public Entry last() { ! return SubMap.this.lastEntry(); } public Entry lower(Entry e) { ! return SubMap.this.lowerEntry(e.getKey()); } public Entry pollFirst() { ! return SubMap.this.pollFirstEntry(); } public Entry pollLast() { ! return SubMap.this.pollLastEntry(); } public SortedSet> subSet(Entry from, Entry to) { ! return subSet(from, true, to, false); } ! public NavigableSet> subSet(Entry from, boolean fromInclusive, ! Entry to, boolean toInclusive) { ! return (NavigableSet>) ! SubMap.this.subMap(from.getKey(), fromInclusive, ! to.getKey(), toInclusive).entrySet(); } public SortedSet> tailSet(Entry from) { ! return tailSet(from, true); } ! public NavigableSet> tailSet(Entry from, boolean inclusive) { ! return (NavigableSet>) ! SubMap.this.tailMap(from.getKey(), inclusive).navigableKeySet(); } ! } // class SubMap.NavigableEntrySet ! } // class SubMap /** * Returns the entry associated with the least or lowest key *************** public class TreeMap extends Abstr *** 2326,2332 **** * null if there is no such key. * * @param key the key relative to the returned entry. ! * @return the entry with the least key greater than * the given key, or null if there is * no such key. * @throws ClassCastException if the specified key can not --- 2326,2332 ---- * null if there is no such key. * * @param key the key relative to the returned entry. ! * @return the entry with the least key greater than * the given key, or null if there is * no such key. * @throws ClassCastException if the specified key can not *************** public class TreeMap extends Abstr *** 2385,2391 **** * null if there is no such key. * * @param key the key relative to the returned entry. ! * @return the entry with the greatest key less than * the given key, or null if there is * no such key. * @throws ClassCastException if the specified key can not --- 2385,2391 ---- * null if there is no such key. * * @param key the key relative to the returned entry. ! * @return the entry with the greatest key less than * the given key, or null if there is * no such key. * @throws ClassCastException if the specified key can not *************** public class TreeMap extends Abstr *** 2473,2479 **** Entry e = lastEntry(); if (e != null) removeNode((Node)e); ! return e; } /** --- 2473,2479 ---- Entry e = lastEntry(); if (e != null) removeNode((Node)e); ! return e; } /** *************** public class TreeMap extends Abstr *** 2524,2530 **** { this.map = map; } ! public Map.Entry ceilingEntry(DK key) { return map.floorEntry(key); --- 2524,2530 ---- { this.map = map; } ! public Map.Entry ceilingEntry(DK key) { return map.floorEntry(key); *************** public class TreeMap extends Abstr *** 2549,2555 **** { return map.containsKey(o); } ! public boolean containsValue(Object o) { return map.containsValue(o); --- 2549,2555 ---- { return map.containsKey(o); } ! public boolean containsValue(Object o) { return map.containsValue(o); *************** public class TreeMap extends Abstr *** 2568,2576 **** public Set> entrySet() { if (entries == null) ! entries = ! new DescendingSet>((NavigableSet>) ! map.entrySet()); return entries; } --- 2568,2576 ---- public Set> entrySet() { if (entries == null) ! entries = ! new DescendingSet>((NavigableSet>) ! map.entrySet()); return entries; } *************** public class TreeMap extends Abstr *** 2632,2638 **** public Set keySet() { if (keys == null) ! keys = new DescendingSet(map.navigableKeySet()); return keys; } --- 2632,2638 ---- public Set keySet() { if (keys == null) ! keys = new DescendingSet(map.navigableKeySet()); return keys; } *************** public class TreeMap extends Abstr *** 2664,2670 **** public NavigableSet navigableKeySet() { if (nKeys == null) ! nKeys = new DescendingSet(map.navigableKeySet()); return nKeys; } --- 2664,2670 ---- public NavigableSet navigableKeySet() { if (nKeys == null) ! nKeys = new DescendingSet(map.navigableKeySet()); return nKeys; } *************** public class TreeMap extends Abstr *** 2704,2713 **** } public NavigableMap subMap(DK fromKey, boolean fromInclusive, ! DK toKey, boolean toInclusive) { return new DescendingMap(map.subMap(fromKey, fromInclusive, ! toKey, toInclusive)); } public SortedMap tailMap(DK fromKey) --- 2704,2713 ---- } public NavigableMap subMap(DK fromKey, boolean fromInclusive, ! DK toKey, boolean toInclusive) { return new DescendingMap(map.subMap(fromKey, fromInclusive, ! toKey, toInclusive)); } public SortedMap tailMap(DK fromKey) *************** public class TreeMap extends Abstr *** 2726,2736 **** final Iterator> it = entrySet().iterator(); while (it.hasNext()) { ! final Entry e = it.next(); r.append(e.getKey()); r.append('='); r.append(e.getValue()); ! r.append(", "); } r.replace(r.length() - 2, r.length(), "}"); return r.toString(); --- 2726,2736 ---- final Iterator> it = entrySet().iterator(); while (it.hasNext()) { ! final Entry e = it.next(); r.append(e.getKey()); r.append('='); r.append(e.getValue()); ! r.append(", "); } r.replace(r.length() - 2, r.length(), "}"); return r.toString(); *************** public class TreeMap extends Abstr *** 2742,2794 **** // Create an AbstractCollection with custom implementations of those // methods that can be overriden easily and efficiently. values = new AbstractCollection() ! { ! public int size() ! { ! return size(); ! } ! ! public Iterator iterator() ! { ! return new Iterator() ! { ! /** The last Entry returned by a next() call. */ ! private Entry last; ! ! /** The next entry that should be returned by next(). */ ! private Entry next = firstEntry(); ! ! public boolean hasNext() ! { ! return next != null; ! } ! public DV next() ! { ! if (next == null) ! throw new NoSuchElementException(); ! last = next; ! next = higherEntry(last.getKey()); ! ! return last.getValue(); ! } ! public void remove() ! { ! if (last == null) ! throw new IllegalStateException(); ! ! DescendingMap.this.remove(last.getKey()); ! last = null; ! } ! }; ! } ! ! public void clear() ! { ! clear(); ! } ! }; return values; } --- 2742,2794 ---- // Create an AbstractCollection with custom implementations of those // methods that can be overriden easily and efficiently. values = new AbstractCollection() ! { ! public int size() ! { ! return DescendingMap.this.size(); ! } ! public Iterator iterator() ! { ! return new Iterator() ! { ! /** The last Entry returned by a next() call. */ ! private Entry last; ! /** The next entry that should be returned by next(). */ ! private Entry next = firstEntry(); ! ! public boolean hasNext() ! { ! return next != null; ! } ! ! public DV next() ! { ! if (next == null) ! throw new NoSuchElementException(); ! last = next; ! next = higherEntry(last.getKey()); ! ! return last.getValue(); ! } ! ! public void remove() ! { ! if (last == null) ! throw new IllegalStateException(); ! ! DescendingMap.this.remove(last.getKey()); ! last = null; ! } ! }; ! } ! ! public void clear() ! { ! DescendingMap.this.clear(); ! } ! }; return values; } *************** public class TreeMap extends Abstr *** 2815,2831 **** { TreeMap.this.clear(); } ! public boolean contains(Object o) { return containsKey(o); } ! public boolean remove(Object key) { Node n = getNode((K) key); if (n == nil) ! return false; removeNode(n); return true; } --- 2815,2831 ---- { TreeMap.this.clear(); } ! public boolean contains(Object o) { return containsKey(o); } ! public boolean remove(Object key) { Node n = getNode((K) key); if (n == nil) ! return false; removeNode(n); return true; } *************** public class TreeMap extends Abstr *** 2912,2921 **** } public NavigableSet subSet(K from, boolean fromInclusive, ! K to, boolean toInclusive) { return subMap(from, fromInclusive, ! to, toInclusive).navigableKeySet(); } public SortedSet tailSet(K from) --- 2912,2921 ---- } public NavigableSet subSet(K from, boolean fromInclusive, ! K to, boolean toInclusive) { return subMap(from, fromInclusive, ! to, toInclusive).navigableKeySet(); } public SortedSet tailSet(K from) *************** public class TreeMap extends Abstr *** 2959,2965 **** { this.set = set; } ! public boolean add(D e) { return set.add(e); --- 2959,2965 ---- { this.set = set; } ! public boolean add(D e) { return set.add(e); *************** public class TreeMap extends Abstr *** 3048,3085 **** public Iterator iterator() { return new Iterator() ! { ! ! /** The last element returned by a next() call. */ ! private D last; ! ! /** The next element that should be returned by next(). */ ! private D next = first(); ! ! public boolean hasNext() ! { ! return next != null; ! } ! public D next() ! { ! if (next == null) ! throw new NoSuchElementException(); ! last = next; ! next = higher(last); ! ! return last; ! } ! public void remove() ! { ! if (last == null) ! throw new IllegalStateException(); ! ! DescendingSet.this.remove(last); ! last = null; ! } ! }; } public D last() --- 3048,3085 ---- public Iterator iterator() { return new Iterator() ! { ! /** The last element returned by a next() call. */ ! private D last; ! /** The next element that should be returned by next(). */ ! private D next = first(); ! ! public boolean hasNext() ! { ! return next != null; ! } ! ! public D next() ! { ! if (next == null) ! throw new NoSuchElementException(); ! last = next; ! next = higher(last); ! ! return last; ! } ! ! public void remove() ! { ! if (last == null) ! throw new IllegalStateException(); ! ! DescendingSet.this.remove(last); ! last = null; ! } ! }; } public D last() *************** public class TreeMap extends Abstr *** 3128,3137 **** } public NavigableSet subSet(D from, boolean fromInclusive, ! D to, boolean toInclusive) { return new DescendingSet(set.subSet(from, fromInclusive, ! to, toInclusive)); } public SortedSet tailSet(D from) --- 3128,3137 ---- } public NavigableSet subSet(D from, boolean fromInclusive, ! D to, boolean toInclusive) { return new DescendingSet(set.subSet(from, fromInclusive, ! to, toInclusive)); } public SortedSet tailSet(D from) *************** public class TreeMap extends Abstr *** 3164,3175 **** final Iterator it = iterator(); while (it.hasNext()) { ! final D o = it.next(); ! if (o == this) ! r.append(""); ! else ! r.append(o); ! r.append(", "); } r.replace(r.length() - 2, r.length(), "]"); return r.toString(); --- 3164,3175 ---- final Iterator it = iterator(); while (it.hasNext()) { ! final D o = it.next(); ! if (o == this) ! r.append(""); ! else ! r.append(o); ! r.append(", "); } r.replace(r.length() - 2, r.length(), "]"); return r.toString(); *************** public class TreeMap extends Abstr *** 3184,3195 **** { return size; } ! public Iterator> iterator() { return new TreeIterator(ENTRIES); } ! public void clear() { TreeMap.this.clear(); --- 3184,3195 ---- { return size; } ! public Iterator> iterator() { return new TreeIterator(ENTRIES); } ! public void clear() { TreeMap.this.clear(); *************** public class TreeMap extends Abstr *** 3198,3265 **** public boolean contains(Object o) { if (! (o instanceof Map.Entry)) ! return false; Map.Entry me = (Map.Entry) o; Node n = getNode(me.getKey()); return n != nil && AbstractSet.equals(me.getValue(), n.value); } ! public boolean remove(Object o) { if (! (o instanceof Map.Entry)) ! return false; Map.Entry me = (Map.Entry) o; Node n = getNode(me.getKey()); if (n != nil && AbstractSet.equals(me.getValue(), n.value)) ! { ! removeNode(n); ! return true; ! } return false; } } ! private final class NavigableEntrySet extends EntrySet implements NavigableSet> { ! public Entry ceiling(Entry e) { return ceilingEntry(e.getKey()); } ! public Comparator> comparator() { return new Comparator>() ! { ! public int compare(Entry t1, Entry t2) ! { ! return comparator.compare(t1.getKey(), t2.getKey()); ! } ! }; } ! public Iterator> descendingIterator() { return descendingSet().iterator(); } ! public NavigableSet> descendingSet() { return new DescendingSet(this); } ! public Entry first() { return firstEntry(); } ! public Entry floor(Entry e) { return floorEntry(e.getKey()); } ! public SortedSet> headSet(Entry to) { return headSet(to, false); --- 3198,3265 ---- public boolean contains(Object o) { if (! (o instanceof Map.Entry)) ! return false; Map.Entry me = (Map.Entry) o; Node n = getNode(me.getKey()); return n != nil && AbstractSet.equals(me.getValue(), n.value); } ! public boolean remove(Object o) { if (! (o instanceof Map.Entry)) ! return false; Map.Entry me = (Map.Entry) o; Node n = getNode(me.getKey()); if (n != nil && AbstractSet.equals(me.getValue(), n.value)) ! { ! removeNode(n); ! return true; ! } return false; } } ! private final class NavigableEntrySet extends EntrySet implements NavigableSet> { ! public Entry ceiling(Entry e) { return ceilingEntry(e.getKey()); } ! public Comparator> comparator() { return new Comparator>() ! { ! public int compare(Entry t1, Entry t2) ! { ! return comparator.compare(t1.getKey(), t2.getKey()); ! } ! }; } ! public Iterator> descendingIterator() { return descendingSet().iterator(); } ! public NavigableSet> descendingSet() { return new DescendingSet(this); } ! public Entry first() { return firstEntry(); } ! public Entry floor(Entry e) { return floorEntry(e.getKey()); } ! public SortedSet> headSet(Entry to) { return headSet(to, false); *************** public class TreeMap extends Abstr *** 3269,3275 **** { return (NavigableSet>) headMap(to.getKey(), inclusive).entrySet(); } ! public Entry higher(Entry e) { return higherEntry(e.getKey()); --- 3269,3275 ---- { return (NavigableSet>) headMap(to.getKey(), inclusive).entrySet(); } ! public Entry higher(Entry e) { return higherEntry(e.getKey()); *************** public class TreeMap extends Abstr *** 3299,3322 **** { return subSet(from, true, to, false); } ! public NavigableSet> subSet(Entry from, boolean fromInclusive, ! Entry to, boolean toInclusive) { return (NavigableSet>) subMap(from.getKey(), fromInclusive, ! to.getKey(), toInclusive).entrySet(); } public SortedSet> tailSet(Entry from) { return tailSet(from, true); } ! public NavigableSet> tailSet(Entry from, boolean inclusive) { return (NavigableSet>) tailMap(from.getKey(), inclusive).navigableKeySet(); } ! } // class NavigableEntrySet } // class TreeMap --- 3299,3322 ---- { return subSet(from, true, to, false); } ! public NavigableSet> subSet(Entry from, boolean fromInclusive, ! Entry to, boolean toInclusive) { return (NavigableSet>) subMap(from.getKey(), fromInclusive, ! to.getKey(), toInclusive).entrySet(); } public SortedSet> tailSet(Entry from) { return tailSet(from, true); } ! public NavigableSet> tailSet(Entry from, boolean inclusive) { return (NavigableSet>) tailMap(from.getKey(), inclusive).navigableKeySet(); } ! } // class NavigableEntrySet } // class TreeMap diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/TreeSet.java gcc-4.6.0/libjava/classpath/java/util/TreeSet.java *** gcc-4.5.2/libjava/classpath/java/util/TreeSet.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/TreeSet.java Tue Jan 11 19:46:05 2011 *************** public class TreeSet extends Abstract *** 291,297 **** * The returned set is backed by the original, so changes * in one appear in the other. The subset will throw an * {@link IllegalArgumentException} for any attempt to access or add an ! * element beyond the specified cutoff. * * @param to the cutoff point * @param inclusive true if to should be included. --- 291,297 ---- * The returned set is backed by the original, so changes * in one appear in the other. The subset will throw an * {@link IllegalArgumentException} for any attempt to access or add an ! * element beyond the specified cutoff. * * @param to the cutoff point * @param inclusive true if to should be included. *************** public class TreeSet extends Abstract *** 406,415 **** * @throws IllegalArgumentException if from is greater than to */ public NavigableSet subSet(T from, boolean fromInclusive, ! T to, boolean toInclusive) { return new TreeSet(map.subMap(from, fromInclusive, ! to, toInclusive)); } /** --- 406,415 ---- * @throws IllegalArgumentException if from is greater than to */ public NavigableSet subSet(T from, boolean fromInclusive, ! T to, boolean toInclusive) { return new TreeSet(map.subMap(from, fromInclusive, ! to, toInclusive)); } /** *************** public class TreeSet extends Abstract *** 574,580 **** * no such element. * * @param e the element relative to the returned element. ! * @return the least element greater than * the given element, or null if there is * no such element. * @throws ClassCastException if the specified element can not --- 574,580 ---- * no such element. * * @param e the element relative to the returned element. ! * @return the least element greater than * the given element, or null if there is * no such element. * @throws ClassCastException if the specified element can not *************** public class TreeSet extends Abstract *** 596,602 **** * no such element. * * @param e the element relative to the returned element. ! * @return the greatest element less than * the given element, or null if there is * no such element. * @throws ClassCastException if the specified element can not --- 596,602 ---- * no such element. * * @param e the element relative to the returned element. ! * @return the greatest element less than * the given element, or null if there is * no such element. * @throws ClassCastException if the specified element can not diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/UUID.java gcc-4.6.0/libjava/classpath/java/util/UUID.java *** gcc-4.5.2/libjava/classpath/java/util/UUID.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/UUID.java Tue Jan 11 19:46:05 2011 *************** import java.security.NoSuchAlgorithmExce *** 44,72 **** /** * This class represents a 128-bit UUID value. ! * * There are several types of UUID, and while this class can be used to store ! * them, only the Leach-Salz (variant 2) UUID specified in RFC-4122 will * give meaningful results from the method calls. * See: http://tools.ietf.org/html/4122 for the details * ! * The format of a Leach-Salz (variant 2) time-based (version 1) UUID * is as follows: * time_low - upper 32 bits of the most significant 64 bits, * this is the least-significant part of the timestamp. * * time_mid - bits 16-31 of the most significant 64 bits, ! * this is the middle portion of the timestamp. * ! * version - bits 8-15 of the most significant 64 bits. * * time_hi - bits 0-7 of the most significant 64 bits, * the most significant portion of the timestamp. * * clock_and_reserved - bits 48-63 of the least significant 64 bits. ! * a variable number of bits hold the variant * (see the spec) ! * * node identifier - bits 0-47 of the least signficant 64 bits. * * These fields are valid only for version 1, in the remaining versions, --- 44,72 ---- /** * This class represents a 128-bit UUID value. ! * * There are several types of UUID, and while this class can be used to store ! * them, only the Leach-Salz (variant 2) UUID specified in RFC-4122 will * give meaningful results from the method calls. * See: http://tools.ietf.org/html/4122 for the details * ! * The format of a Leach-Salz (variant 2) time-based (version 1) UUID * is as follows: * time_low - upper 32 bits of the most significant 64 bits, * this is the least-significant part of the timestamp. * * time_mid - bits 16-31 of the most significant 64 bits, ! * this is the middle portion of the timestamp. * ! * version - bits 8-15 of the most significant 64 bits. * * time_hi - bits 0-7 of the most significant 64 bits, * the most significant portion of the timestamp. * * clock_and_reserved - bits 48-63 of the least significant 64 bits. ! * a variable number of bits hold the variant * (see the spec) ! * * node identifier - bits 0-47 of the least signficant 64 bits. * * These fields are valid only for version 1, in the remaining versions, *************** import java.security.NoSuchAlgorithmExce *** 75,82 **** * @since 1.5 * @author Sven de Marothy */ ! public final class UUID ! extends Object implements Serializable, Comparable { private static final long serialVersionUID = -4856846361193249489L; --- 75,82 ---- * @since 1.5 * @author Sven de Marothy */ ! public final class UUID ! extends Object implements Serializable, Comparable { private static final long serialVersionUID = -4856846361193249489L; *************** public final class UUID *** 106,112 **** this.mostSigBits = mostSigBits; this.leastSigBits = leastSigBits; } ! /** * Returns the clock-sequence value of this UUID. * This field only exists in a time-based (version 1) UUID. --- 106,112 ---- this.mostSigBits = mostSigBits; this.leastSigBits = leastSigBits; } ! /** * Returns the clock-sequence value of this UUID. * This field only exists in a time-based (version 1) UUID. *************** public final class UUID *** 147,154 **** { if( !(obj instanceof UUID ) ) return false; ! return ( ((UUID)obj).mostSigBits == mostSigBits && ! ((UUID)obj).leastSigBits == leastSigBits ); } /** --- 147,154 ---- { if( !(obj instanceof UUID ) ) return false; ! return ( ((UUID)obj).mostSigBits == mostSigBits && ! ((UUID)obj).leastSigBits == leastSigBits ); } /** *************** public final class UUID *** 164,170 **** StringTokenizer st = new StringTokenizer( name.trim(), "-" ); if( st.countTokens() < 5 ) throw new IllegalArgumentException( "Incorrect UUID string"+ ! " representation:"+name ); long msb = (Long.parseLong(st.nextToken(), 16) << 32); // time low msb |= (Long.parseLong(st.nextToken(), 16) << 16); // time mid --- 164,170 ---- StringTokenizer st = new StringTokenizer( name.trim(), "-" ); if( st.countTokens() < 5 ) throw new IllegalArgumentException( "Incorrect UUID string"+ ! " representation:"+name ); long msb = (Long.parseLong(st.nextToken(), 16) << 32); // time low msb |= (Long.parseLong(st.nextToken(), 16) << 16); // time mid *************** public final class UUID *** 195,212 **** return // time-low first padHex( (( mostSigBits & 0xFFFFFFFF00000000L) >> 32) & 0xFFFFFFFFL, 8) + "-" + // then time-mid ! padHex( (( mostSigBits & 0xFFFF0000L ) >> 16), 4 ) + "-" + // time-high ! padHex( ( mostSigBits & 0x0000000000000000FFFFL ), 4 ) + "-" + // clock (note - no reason to separate high and low here) ! padHex( (((leastSigBits & 0xFFFF000000000000L) >> 48) & 0xFFFF), 4 ) + "-" + // finally the node value. ! padHex(leastSigBits & 0xFFFFFFFFFFFFL, 12); } /** * Returns the least significant 64 bits of the UUID as a long. ! */ public long getLeastSignificantBits() { return leastSigBits; --- 195,212 ---- return // time-low first padHex( (( mostSigBits & 0xFFFFFFFF00000000L) >> 32) & 0xFFFFFFFFL, 8) + "-" + // then time-mid ! padHex( (( mostSigBits & 0xFFFF0000L ) >> 16), 4 ) + "-" + // time-high ! padHex( ( mostSigBits & 0x0000000000000000FFFFL ), 4 ) + "-" + // clock (note - no reason to separate high and low here) ! padHex( (((leastSigBits & 0xFFFF000000000000L) >> 48) & 0xFFFF), 4 ) + "-" + // finally the node value. ! padHex(leastSigBits & 0xFFFFFFFFFFFFL, 12); } /** * Returns the least significant 64 bits of the UUID as a long. ! */ public long getLeastSignificantBits() { return leastSigBits; *************** public final class UUID *** 214,220 **** /** * Returns the most significant 64 bits of the UUID as a long. ! */ public long getMostSignificantBits() { return mostSigBits; --- 214,220 ---- /** * Returns the most significant 64 bits of the UUID as a long. ! */ public long getMostSignificantBits() { return mostSigBits; *************** public final class UUID *** 238,257 **** * from a series of bytes representing a name. */ public static UUID nameUUIDFromBytes(byte[] name) ! { long msb, lsb; byte[] hash; try { ! MessageDigest md5 = MessageDigest.getInstance("MD5"); ! hash = md5.digest( name ); ! } ! catch (NoSuchAlgorithmException e) { ! throw new UnsupportedOperationException("No MD5 algorithm available."); } ! msb = ((hash[0] & 0xFFL) << 56) | ((hash[1] & 0xFFL) << 48) | ((hash[2] & 0xFFL) << 40) | ((hash[3] & 0xFFL) << 32) | ((hash[4] & 0xFFL) << 24) | ((hash[5] & 0xFFL) << 16) | --- 238,257 ---- * from a series of bytes representing a name. */ public static UUID nameUUIDFromBytes(byte[] name) ! { long msb, lsb; byte[] hash; try { ! MessageDigest md5 = MessageDigest.getInstance("MD5"); ! hash = md5.digest( name ); ! } ! catch (NoSuchAlgorithmException e) { ! throw new UnsupportedOperationException("No MD5 algorithm available."); } ! msb = ((hash[0] & 0xFFL) << 56) | ((hash[1] & 0xFFL) << 48) | ((hash[2] & 0xFFL) << 40) | ((hash[3] & 0xFFL) << 32) | ((hash[4] & 0xFFL) << 24) | ((hash[5] & 0xFFL) << 16) | *************** public final class UUID *** 262,284 **** ((hash[12] & 0xFFL) << 24) | ((hash[13] & 0xFFL) << 16) | ((hash[14] & 0xFFL) << 8) | (hash[15] & 0xFFL); ! lsb &= 0x3FFFFFFFFFFFFFFFL; lsb |= 0x8000000000000000L; // set top two bits to variant 2 ! msb &= 0xFFFFFFFFFFFF0FFFL; ! msb |= 0x3000; // Version 3; return new UUID(msb, lsb); } /** ! * Returns the 48-bit node value in a long. * This field only exists in a time-based (version 1) UUID. * * @throws UnsupportedOperationException if the UUID type is not 1. * @returns a long with the node value in the lower 48 bits. */ ! public long node() { if( version() != 1 ) throw new UnsupportedOperationException("Not a type 1 UUID"); --- 262,284 ---- ((hash[12] & 0xFFL) << 24) | ((hash[13] & 0xFFL) << 16) | ((hash[14] & 0xFFL) << 8) | (hash[15] & 0xFFL); ! lsb &= 0x3FFFFFFFFFFFFFFFL; lsb |= 0x8000000000000000L; // set top two bits to variant 2 ! msb &= 0xFFFFFFFFFFFF0FFFL; ! msb |= 0x3000; // Version 3; return new UUID(msb, lsb); } /** ! * Returns the 48-bit node value in a long. * This field only exists in a time-based (version 1) UUID. * * @throws UnsupportedOperationException if the UUID type is not 1. * @returns a long with the node value in the lower 48 bits. */ ! public long node() { if( version() != 1 ) throw new UnsupportedOperationException("Not a type 1 UUID"); *************** public final class UUID *** 286,292 **** } /** ! * Returns the 60-bit timestamp value of the UUID in a long. * This field only exists in a time-based (version 1) UUID. * * @throws UnsupportedOperationException if the UUID type is not 1. --- 286,292 ---- } /** ! * Returns the 60-bit timestamp value of the UUID in a long. * This field only exists in a time-based (version 1) UUID. * * @throws UnsupportedOperationException if the UUID type is not 1. *************** public final class UUID *** 309,323 **** * */ public static UUID randomUUID() ! { ! long lsb = r.nextLong(); long msb = r.nextLong(); ! lsb &= 0x3FFFFFFFFFFFFFFFL; lsb |= 0x8000000000000000L; // set top two bits to variant 2 ! msb &= 0xFFFFFFFFFFFF0FFFL; ! msb |= 0x4000; // Version 4; return new UUID( msb, lsb ); } --- 309,323 ---- * */ public static UUID randomUUID() ! { ! long lsb = r.nextLong(); long msb = r.nextLong(); ! lsb &= 0x3FFFFFFFFFFFFFFFL; lsb |= 0x8000000000000000L; // set top two bits to variant 2 ! msb &= 0xFFFFFFFFFFFF0FFFL; ! msb |= 0x4000; // Version 4; return new UUID( msb, lsb ); } *************** public final class UUID *** 350,356 **** return 0; if( (v & 0x02) == 0 ) // variant is 0 1 (Leach-Salz) return 2; ! return v; // 6 or 7 } /** --- 350,356 ---- return 0; if( (v & 0x02) == 0 ) // variant is 0 1 (Leach-Salz) return 2; ! return v; // 6 or 7 } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/UnknownFormatConversionException.java gcc-4.6.0/libjava/classpath/java/util/UnknownFormatConversionException.java *** gcc-4.5.2/libjava/classpath/java/util/UnknownFormatConversionException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/UnknownFormatConversionException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,52 **** package java.util; ! /** * Thrown when a {@link Formatter} is supplied with an * unknown conversion. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class UnknownFormatConversionException extends IllegalFormatException { private static final long serialVersionUID = 19060418L; --- 38,52 ---- package java.util; ! /** * Thrown when a {@link Formatter} is supplied with an * unknown conversion. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class UnknownFormatConversionException extends IllegalFormatException { private static final long serialVersionUID = 19060418L; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/UnknownFormatFlagsException.java gcc-4.6.0/libjava/classpath/java/util/UnknownFormatFlagsException.java *** gcc-4.5.2/libjava/classpath/java/util/UnknownFormatFlagsException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/UnknownFormatFlagsException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,52 **** package java.util; ! /** * Thrown when a {@link Formatter} is supplied with an * unknown flag. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class UnknownFormatFlagsException extends IllegalFormatException { private static final long serialVersionUID = 19370506L; --- 38,52 ---- package java.util; ! /** * Thrown when a {@link Formatter} is supplied with an * unknown flag. * * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) ! * @since 1.5 */ ! public class UnknownFormatFlagsException extends IllegalFormatException { private static final long serialVersionUID = 19370506L; *************** public class UnknownFormatFlagsException *** 72,78 **** super("Unknown flag passed in " + s); if (s == null) throw new ! NullPointerException("Null flags value passed to constructor."); this.flags = s; } --- 72,78 ---- super("Unknown flag passed in " + s); if (s == null) throw new ! NullPointerException("Null flags value passed to constructor."); this.flags = s; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/Vector.java gcc-4.6.0/libjava/classpath/java/util/Vector.java *** gcc-4.5.2/libjava/classpath/java/util/Vector.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/Vector.java Tue Jan 11 19:46:05 2011 *************** *** 1,5 **** /* Vector.java -- Class that provides growable arrays. ! Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,5 ---- /* Vector.java -- Class that provides growable arrays. ! Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class Vector extends AbstractL *** 167,174 **** /** * Copies the contents of the Vector into the provided array. If the ! * array is too small to fit all the elements in the Vector, an ! * {@link IndexOutOfBoundsException} is thrown without modifying the array. * Old elements in the array are overwritten by the new elements. * * @param a target array for the copy --- 167,174 ---- /** * Copies the contents of the Vector into the provided array. If the ! * array is too small to fit all the elements in the Vector, an ! * {@link IndexOutOfBoundsException} is thrown without modifying the array. * Old elements in the array are overwritten by the new elements. * * @param a target array for the copy *************** public class Vector extends AbstractL *** 578,584 **** { if (a.length < elementCount) a = (S[]) Array.newInstance(a.getClass().getComponentType(), ! elementCount); else if (a.length > elementCount) a[elementCount] = null; System.arraycopy(elementData, 0, a, 0, elementCount); --- 578,584 ---- { if (a.length < elementCount) a = (S[]) Array.newInstance(a.getClass().getComponentType(), ! elementCount); else if (a.length > elementCount) a[elementCount] = null; System.arraycopy(elementData, 0, a, 0, elementCount); *************** public class Vector extends AbstractL *** 800,806 **** int end = index + csize; if (elementCount > 0 && index != elementCount) System.arraycopy(elementData, index, ! elementData, end, elementCount - index); elementCount += csize; for ( ; index < end; index++) elementData[index] = itr.next(); --- 800,806 ---- int end = index + csize; if (elementCount > 0 && index != elementCount) System.arraycopy(elementData, index, ! elementData, end, elementCount - index); elementCount += csize; for ( ; index < end; index++) elementData[index] = itr.next(); *************** public class Vector extends AbstractL *** 941,947 **** // do so). throw new ArrayIndexOutOfBoundsException(index + operator + elementCount); } ! /** * Serializes this object to the given stream. * --- 941,947 ---- // do so). throw new ArrayIndexOutOfBoundsException(index + operator + elementCount); } ! /** * Serializes this object to the given stream. * diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/WeakHashMap.java gcc-4.6.0/libjava/classpath/java/util/WeakHashMap.java *** gcc-4.5.2/libjava/classpath/java/util/WeakHashMap.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/WeakHashMap.java Tue Jan 11 19:46:05 2011 *************** import java.lang.ref.WeakReference; *** 86,92 **** * @since 1.2 * @status updated to 1.4 (partial 1.5) */ ! public class WeakHashMap extends AbstractMap { // WARNING: WeakHashMap is a CORE class in the bootstrap cycle. See the // comments in vm/reference/java/lang/Runtime for implications of this fact. --- 86,92 ---- * @since 1.2 * @status updated to 1.4 (partial 1.5) */ ! public class WeakHashMap extends AbstractMap { // WARNING: WeakHashMap is a CORE class in the bootstrap cycle. See the // comments in vm/reference/java/lang/Runtime for implications of this fact. *************** public class WeakHashMap extends Ab *** 704,715 **** while (next != bucket) { if (next == null) throw new InternalError("WeakHashMap in incosistent state"); ! prev = next; next = prev.next; } if (prev == null) buckets[slot] = bucket.next; ! else prev.next = bucket.next; size--; --- 704,715 ---- while (next != bucket) { if (next == null) throw new InternalError("WeakHashMap in incosistent state"); ! prev = next; next = prev.next; } if (prev == null) buckets[slot] = bucket.next; ! else prev.next = bucket.next; size--; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java gcc-4.6.0/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java *** gcc-4.5.2/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java Mon Aug 2 13:46:09 2010 --- gcc-4.6.0/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java Tue Jan 11 19:46:05 2011 *************** import java.util.RandomAccess; *** 75,86 **** * This class is especially useful when used with event handling, like the * following code demonstrates:
                            *
                            !  * 
                               * CopyOnWriteArrayList listeners =
                               *   new CopyOnWriteArrayList();
                            !  * 
                               * [...]
                            !  * 
                               * for (final EventListener listener : listeners)
                               *   {
                               *     Runnable dispatcher = new Runnable() {
                            --- 75,86 ----
                               * This class is especially useful when used with event handling, like the
                               * following code demonstrates:
                            *
                            !  *
                               * CopyOnWriteArrayList listeners =
                               *   new CopyOnWriteArrayList();
                            !  *
                               * [...]
                            !  *
                               * for (final EventListener listener : listeners)
                               *   {
                               *     Runnable dispatcher = new Runnable() {
                            *************** import java.util.RandomAccess;
                            *** 89,110 ****
                               *         listener.preferenceChange(event);
                               *       }
                               *     };
                            !  *         
                               *     Executor executor = Executors.newSingleThreadExecutor();
                               *     executor.execute(dispatcher);
                               *   }
                               * 
                            ! * * @since 1.5 */ ! public class CopyOnWriteArrayList implements List, RandomAccess, Cloneable, Serializable { /** ! * */ private static final long serialVersionUID = 8673264195747942595L; ! /** * Where the data is stored. */ --- 89,110 ---- * listener.preferenceChange(event); * } * }; ! * * Executor executor = Executors.newSingleThreadExecutor(); * executor.execute(dispatcher); * } *
                            ! * * @since 1.5 */ ! public class CopyOnWriteArrayList implements List, RandomAccess, Cloneable, Serializable { /** ! * */ private static final long serialVersionUID = 8673264195747942595L; ! /** * Where the data is stored. */ *************** public class CopyOnWriteArrayList *** 121,127 **** /** * Construct a new ArrayList, and initialize it with the elements in the * supplied Collection. The initial capacity is 110% of the Collection's size. ! * * @param c * the collection whose elements will initialize this list * @throws NullPointerException --- 121,127 ---- /** * Construct a new ArrayList, and initialize it with the elements in the * supplied Collection. The initial capacity is 110% of the Collection's size. ! * * @param c * the collection whose elements will initialize this list * @throws NullPointerException *************** public class CopyOnWriteArrayList *** 139,145 **** /** * Construct a new ArrayList, and initialize it with the elements in the * supplied array. ! * * @param array * the array used to initialize this list * @throws NullPointerException --- 139,145 ---- /** * Construct a new ArrayList, and initialize it with the elements in the * supplied array. ! * * @param array * the array used to initialize this list * @throws NullPointerException *************** public class CopyOnWriteArrayList *** 152,158 **** /** * Returns the number of elements in this list. ! * * @return the list size */ public int size() --- 152,158 ---- /** * Returns the number of elements in this list. ! * * @return the list size */ public int size() *************** public class CopyOnWriteArrayList *** 162,168 **** /** * Checks if the list is empty. ! * * @return true if there are no elements */ public boolean isEmpty() --- 162,168 ---- /** * Checks if the list is empty. ! * * @return true if there are no elements */ public boolean isEmpty() *************** public class CopyOnWriteArrayList *** 172,178 **** /** * Returns true if element is in this ArrayList. ! * * @param e * the element whose inclusion in the List is being tested * @return true if the list contains e --- 172,178 ---- /** * Returns true if element is in this ArrayList. ! * * @param e * the element whose inclusion in the List is being tested * @return true if the list contains e *************** public class CopyOnWriteArrayList *** 207,213 **** /** * Returns the lowest index at which element appears in this List, or -1 if it * does not appear. ! * * @param e * the element whose inclusion in the List is being tested * @return the index where e was found --- 207,213 ---- /** * Returns the lowest index at which element appears in this List, or -1 if it * does not appear. ! * * @param e * the element whose inclusion in the List is being tested * @return the index where e was found *************** public class CopyOnWriteArrayList *** 243,249 **** /** * Returns the highest index at which element appears in this List, or -1 if * it does not appear. ! * * @param e * the element whose inclusion in the List is being tested * @return the index where e was found --- 243,249 ---- /** * Returns the highest index at which element appears in this List, or -1 if * it does not appear. ! * * @param e * the element whose inclusion in the List is being tested * @return the index where e was found *************** public class CopyOnWriteArrayList *** 278,284 **** /** * Creates a shallow copy of this ArrayList (elements are not cloned). ! * * @return the cloned object */ public Object clone() --- 278,284 ---- /** * Creates a shallow copy of this ArrayList (elements are not cloned). ! * * @return the cloned object */ public Object clone() *************** public class CopyOnWriteArrayList *** 298,304 **** /** * Returns an Object array containing all of the elements in this ArrayList. * The array is independent of this list. ! * * @return an array representation of this list */ public Object[] toArray() --- 298,304 ---- /** * Returns an Object array containing all of the elements in this ArrayList. * The array is independent of this list. ! * * @return an array representation of this list */ public Object[] toArray() *************** public class CopyOnWriteArrayList *** 316,322 **** * of the elements in this List, a new Array will be created and returned; if * the passed-in Array is larger than the size of this List, then * size() index will be set to null. ! * * @param a * the passed-in Array * @return an array representation of this list --- 316,322 ---- * of the elements in this List, a new Array will be created and returned; if * the passed-in Array is larger than the size of this List, then * size() index will be set to null. ! * * @param a * the passed-in Array * @return an array representation of this list *************** public class CopyOnWriteArrayList *** 338,344 **** /** * Retrieves the element at the user-supplied index. ! * * @param index * the index of the element we are fetching * @throws IndexOutOfBoundsException --- 338,344 ---- /** * Retrieves the element at the user-supplied index. ! * * @param index * the index of the element we are fetching * @throws IndexOutOfBoundsException *************** public class CopyOnWriteArrayList *** 352,358 **** /** * Sets the element at the specified index. The new element, e, can be an * object of any type or null. ! * * @param index * the index at which the element is being set * @param e --- 352,358 ---- /** * Sets the element at the specified index. The new element, e, can be an * object of any type or null. ! * * @param index * the index at which the element is being set * @param e *************** public class CopyOnWriteArrayList *** 373,379 **** /** * Appends the supplied element to the end of this list. The element, e, can * be an object of any type or null. ! * * @param e * the element to be appended to this list * @return true, the add will always succeed --- 373,379 ---- /** * Appends the supplied element to the end of this list. The element, e, can * be an object of any type or null. ! * * @param e * the element to be appended to this list * @return true, the add will always succeed *************** public class CopyOnWriteArrayList *** 392,398 **** * Adds the supplied element at the specified index, shifting all elements * currently at that index or higher one to the right. The element, e, can be * an object of any type or null. ! * * @param index * the index at which the element is being added * @param e --- 392,398 ---- * Adds the supplied element at the specified index, shifting all elements * currently at that index or higher one to the right. The element, e, can be * an object of any type or null. ! * * @param index * the index at which the element is being added * @param e *************** public class CopyOnWriteArrayList *** 412,418 **** /** * Removes the element at the user-supplied index. ! * * @param index * the index of the element to be removed * @return the removed Object --- 412,418 ---- /** * Removes the element at the user-supplied index. ! * * @param index * the index of the element to be removed * @return the removed Object *************** public class CopyOnWriteArrayList *** 423,442 **** { if (index < 0 || index >= this.size()) throw new IndexOutOfBoundsException("index = " + index); ! E[] snapshot = this.data; E[] newData = (E[]) new Object[snapshot.length - 1]; ! E result = snapshot[index]; ! if (index > 0) System.arraycopy(snapshot, 0, newData, 0, index); ! System.arraycopy(snapshot, index + 1, newData, index, snapshot.length - index - 1); ! this.data = newData; ! return result; } --- 423,442 ---- { if (index < 0 || index >= this.size()) throw new IndexOutOfBoundsException("index = " + index); ! E[] snapshot = this.data; E[] newData = (E[]) new Object[snapshot.length - 1]; ! E result = snapshot[index]; ! if (index > 0) System.arraycopy(snapshot, 0, newData, 0, index); ! System.arraycopy(snapshot, index + 1, newData, index, snapshot.length - index - 1); ! this.data = newData; ! return result; } *************** public class CopyOnWriteArrayList *** 444,450 **** * Remove the first occurrence, if any, of the given object from this list, * returning true if the object was removed, false * otherwise. ! * * @param element the object to be removed. * @return true if element was removed, false otherwise. false means also that * the underlying storage was unchanged after this operation concluded. --- 444,450 ---- * Remove the first occurrence, if any, of the given object from this list, * returning true if the object was removed, false * otherwise. ! * * @param element the object to be removed. * @return true if element was removed, false otherwise. false means also that * the underlying storage was unchanged after this operation concluded. *************** public class CopyOnWriteArrayList *** 458,464 **** return false; E[] newData = (E[]) new Object[len - 1]; ! // search the element to remove while filling the backup array // this way we can run this method in O(n) int elementIndex = -1; --- 458,464 ---- return false; E[] newData = (E[]) new Object[len - 1]; ! // search the element to remove while filling the backup array // this way we can run this method in O(n) int elementIndex = -1; *************** public class CopyOnWriteArrayList *** 469,508 **** elementIndex = i; break; } ! if (i < newData.length) newData[i] = snapshot[i]; } ! if (elementIndex < 0) return false; ! System.arraycopy(snapshot, elementIndex + 1, newData, elementIndex, snapshot.length - elementIndex - 1); this.data = newData; ! return true; } ! /** * Removes all the elements contained in the given collection. * This method removes the elements that are contained in both * this list and in the given collection. ! * * @param c the collection containing the elements to be removed from this * list. * @return true if at least one element was removed, indicating that ! * the list internal storage changed as a result, false otherwise. */ public synchronized boolean removeAll(Collection c) { if (c.size() == 0) return false; ! E [] snapshot = this.data; ! E [] storage = (E[]) new Object[this.data.length]; boolean changed = false; ! int length = 0; for (E element : snapshot) { --- 469,508 ---- elementIndex = i; break; } ! if (i < newData.length) newData[i] = snapshot[i]; } ! if (elementIndex < 0) return false; ! System.arraycopy(snapshot, elementIndex + 1, newData, elementIndex, snapshot.length - elementIndex - 1); this.data = newData; ! return true; } ! /** * Removes all the elements contained in the given collection. * This method removes the elements that are contained in both * this list and in the given collection. ! * * @param c the collection containing the elements to be removed from this * list. * @return true if at least one element was removed, indicating that ! * the list internal storage changed as a result, false otherwise. */ public synchronized boolean removeAll(Collection c) { if (c.size() == 0) return false; ! E [] snapshot = this.data; ! E [] storage = (E[]) new Object[this.data.length]; boolean changed = false; ! int length = 0; for (E element : snapshot) { *************** public class CopyOnWriteArrayList *** 514,531 **** else storage[length++] = element; } ! if (!changed) return false; ! E[] newData = (E[]) new Object[length]; System.arraycopy(storage, 0, newData, 0, length); ! this.data = newData; ! return true; } ! /** * Removes all the elements that are not in the passed collection. * If the collection is void, this method has the same effect of --- 514,531 ---- else storage[length++] = element; } ! if (!changed) return false; ! E[] newData = (E[]) new Object[length]; System.arraycopy(storage, 0, newData, 0, length); ! this.data = newData; ! return true; } ! /** * Removes all the elements that are not in the passed collection. * If the collection is void, this method has the same effect of *************** public class CopyOnWriteArrayList *** 533,539 **** * Please, note that this method is extremely slow (unless the argument has * size == 0) and has bad performance is both space and time * usage. ! * * @param c the collection containing the elements to be retained by this * list. * @return true the list internal storage changed as a result of this --- 533,539 ---- * Please, note that this method is extremely slow (unless the argument has * size == 0) and has bad performance is both space and time * usage. ! * * @param c the collection containing the elements to be retained by this * list. * @return true the list internal storage changed as a result of this *************** public class CopyOnWriteArrayList *** 548,578 **** this.clear(); return true; } ! E [] snapshot = this.data; ! E [] storage = (E[]) new Object[this.data.length]; ! int length = 0; for (E element : snapshot) { if (c.contains(element)) storage[length++] = element; } ! // means we retained all the elements previously in our storage // we are running already slow here, but at least we avoid copying // another array and changing the internal storage if (length == snapshot.length) return false; ! E[] newData = (E[]) new Object[length]; System.arraycopy(storage, 0, newData, 0, length); ! this.data = newData; ! return true; } ! /** * Removes all elements from this List */ --- 548,578 ---- this.clear(); return true; } ! E [] snapshot = this.data; ! E [] storage = (E[]) new Object[this.data.length]; ! int length = 0; for (E element : snapshot) { if (c.contains(element)) storage[length++] = element; } ! // means we retained all the elements previously in our storage // we are running already slow here, but at least we avoid copying // another array and changing the internal storage if (length == snapshot.length) return false; ! E[] newData = (E[]) new Object[length]; System.arraycopy(storage, 0, newData, 0, length); ! this.data = newData; ! return true; } ! /** * Removes all elements from this List */ *************** public class CopyOnWriteArrayList *** 586,592 **** * what happens if you modify the list while this is taking place; for * example, if the collection contains this list. c can contain objects of any * type, as well as null values. ! * * @param c * a Collection containing elements to be added to this List * @return true if the list was modified, in other words c is not empty --- 586,592 ---- * what happens if you modify the list while this is taking place; for * example, if the collection contains this list. c can contain objects of any * type, as well as null values. ! * * @param c * a Collection containing elements to be added to this List * @return true if the list was modified, in other words c is not empty *************** public class CopyOnWriteArrayList *** 602,608 **** * Add all elements in the supplied collection, inserting them beginning at * the specified index. c can contain objects of any type, as well as null * values. ! * * @param index * the index at which the elements will be inserted * @param c --- 602,608 ---- * Add all elements in the supplied collection, inserting them beginning at * the specified index. c can contain objects of any type, as well as null * values. ! * * @param index * the index at which the elements will be inserted * @param c *************** public class CopyOnWriteArrayList *** 616,652 **** { if (index < 0 || index > this.size()) throw new IndexOutOfBoundsException("index = " + index); ! int csize = c.size(); if (csize == 0) return false; ! E[] data = this.data; Iterator itr = c.iterator(); ! E[] newData = (E[]) new Object[data.length + csize]; ! // avoid this call at all if we were asked to put the elements at the // beginning of our storage if (index != 0) System.arraycopy(data, 0, newData, 0, index); ! int itemsLeft = index; ! for (E value : c) newData[index++] = value; ! // now copy the remaining elements System.arraycopy(data, itemsLeft, newData, 0, data.length - itemsLeft); ! this.data = newData; ! return true; } ! /** * Adds an element if the list does not contains it already. ! * * @param val the element to add to the list. * @return true if the element was added, false otherwise. */ --- 616,652 ---- { if (index < 0 || index > this.size()) throw new IndexOutOfBoundsException("index = " + index); ! int csize = c.size(); if (csize == 0) return false; ! E[] data = this.data; Iterator itr = c.iterator(); ! E[] newData = (E[]) new Object[data.length + csize]; ! // avoid this call at all if we were asked to put the elements at the // beginning of our storage if (index != 0) System.arraycopy(data, 0, newData, 0, index); ! int itemsLeft = index; ! for (E value : c) newData[index++] = value; ! // now copy the remaining elements System.arraycopy(data, itemsLeft, newData, 0, data.length - itemsLeft); ! this.data = newData; ! return true; } ! /** * Adds an element if the list does not contains it already. ! * * @param val the element to add to the list. * @return true if the element was added, false otherwise. */ *************** public class CopyOnWriteArrayList *** 661,667 **** /** * Adds all the element from the given collection that are not already * in this list. ! * * @param c the Collection containing the elements to be inserted * @return true the list internal storage changed as a result of this * operation, false otherwise. --- 661,667 ---- /** * Adds all the element from the given collection that are not already * in this list. ! * * @param c the Collection containing the elements to be inserted * @return true the list internal storage changed as a result of this * operation, false otherwise. *************** public class CopyOnWriteArrayList *** 671,698 **** int size = c.size(); if (size == 0) return 0; ! E [] snapshot = this.data; E [] storage = (E[]) new Object[size]; ! size = 0; for (E val : c) { if (!this.contains(val)) storage[size++] = val; } ! if (size == 0) return 0; ! // append storage to data E [] newData = (E[]) new Object[snapshot.length + size]; ! System.arraycopy(snapshot, 0, newData, 0, snapshot.length); System.arraycopy(storage, 0, newData, snapshot.length, size); ! this.data = newData; ! return size; } --- 671,698 ---- int size = c.size(); if (size == 0) return 0; ! E [] snapshot = this.data; E [] storage = (E[]) new Object[size]; ! size = 0; for (E val : c) { if (!this.contains(val)) storage[size++] = val; } ! if (size == 0) return 0; ! // append storage to data E [] newData = (E[]) new Object[snapshot.length + size]; ! System.arraycopy(snapshot, 0, newData, 0, snapshot.length); System.arraycopy(storage, 0, newData, snapshot.length, size); ! this.data = newData; ! return size; } *************** public class CopyOnWriteArrayList *** 705,723 **** { if (o == null) return false; ! if (this == o) return true; ! // let's see if 'o' is a list, if so, we need to compare the elements // as returned by the iterator if (o instanceof List) { List source = (List) o; ! if (source.size() != this.size()) return false; ! Iterator sourceIterator = source.iterator(); for (E element : this) { --- 705,723 ---- { if (o == null) return false; ! if (this == o) return true; ! // let's see if 'o' is a list, if so, we need to compare the elements // as returned by the iterator if (o instanceof List) { List source = (List) o; ! if (source.size() != this.size()) return false; ! Iterator sourceIterator = source.iterator(); for (E element : this) { *************** public class CopyOnWriteArrayList *** 727,736 **** return true; } ! return false; } ! public int hashCode() { // see http://java.sun.com/6/docs/api/java/util/List.html#hashcode() --- 727,736 ---- return true; } ! return false; } ! public int hashCode() { // see http://java.sun.com/6/docs/api/java/util/List.html#hashcode() *************** public class CopyOnWriteArrayList *** 741,754 **** } return hashcode; } ! /** * Return an Iterator containing the elements of this list. * The Iterator uses a snapshot of the state of the internal storage * at the moment this method is called and does not support * update operations, so no synchronization is needed to traverse the * iterator. ! * * @return an Iterator containing the elements of this list in sequence. */ public Iterator iterator() --- 741,754 ---- } return hashcode; } ! /** * Return an Iterator containing the elements of this list. * The Iterator uses a snapshot of the state of the internal storage * at the moment this method is called and does not support * update operations, so no synchronization is needed to traverse the * iterator. ! * * @return an Iterator containing the elements of this list in sequence. */ public Iterator iterator() *************** public class CopyOnWriteArrayList *** 757,763 **** { E [] iteratorData = CopyOnWriteArrayList.this.data; int currentElement = 0; ! public boolean hasNext() { return (currentElement < iteratorData.length); --- 757,763 ---- { E [] iteratorData = CopyOnWriteArrayList.this.data; int currentElement = 0; ! public boolean hasNext() { return (currentElement < iteratorData.length); *************** public class CopyOnWriteArrayList *** 776,789 **** } }; } ! /** * Return a ListIterator containing the elements of this list. * The Iterator uses a snapshot of the state of the internal storage * at the moment this method is called and does not support * update operations, so no synchronization is needed to traverse the * iterator. ! * * @return a ListIterator containing the elements of this list in sequence. */ public ListIterator listIterator() --- 776,789 ---- } }; } ! /** * Return a ListIterator containing the elements of this list. * The Iterator uses a snapshot of the state of the internal storage * at the moment this method is called and does not support * update operations, so no synchronization is needed to traverse the * iterator. ! * * @return a ListIterator containing the elements of this list in sequence. */ public ListIterator listIterator() *************** public class CopyOnWriteArrayList *** 800,806 **** * at the moment this method is called and does not support * update operations, so no synchronization is needed to traverse the * iterator. ! * * @param index the index at which to start iterating. * @return a ListIterator containing the elements of this list in sequence. */ --- 800,806 ---- * at the moment this method is called and does not support * update operations, so no synchronization is needed to traverse the * iterator. ! * * @param index the index at which to start iterating. * @return a ListIterator containing the elements of this list in sequence. */ *************** public class CopyOnWriteArrayList *** 814,820 **** { E [] iteratorData = CopyOnWriteArrayList.this.data; int currentElement = index; ! public void add(E o) { throw new UnsupportedOperationException("updating of elements in " + --- 814,820 ---- { E [] iteratorData = CopyOnWriteArrayList.this.data; int currentElement = index; ! public void add(E o) { throw new UnsupportedOperationException("updating of elements in " + *************** public class CopyOnWriteArrayList *** 836,842 **** { if (hasNext() == false) throw new java.util.NoSuchElementException(); ! return iteratorData[currentElement++]; } --- 836,842 ---- { if (hasNext() == false) throw new java.util.NoSuchElementException(); ! return iteratorData[currentElement++]; } *************** public class CopyOnWriteArrayList *** 849,855 **** { if (hasPrevious() == false) throw new java.util.NoSuchElementException(); ! return iteratorData[--currentElement]; } --- 849,855 ---- { if (hasPrevious() == false) throw new java.util.NoSuchElementException(); ! return iteratorData[--currentElement]; } *************** public class CopyOnWriteArrayList *** 871,880 **** "iterators is not supported " + "by this class"); } ! }; } ! /** * Obtain a List view of a subsection of this list, from fromIndex * (inclusive) to toIndex (exclusive). If the two indices are equal, the --- 871,880 ---- "iterators is not supported " + "by this class"); } ! }; } ! /** * Obtain a List view of a subsection of this list, from fromIndex * (inclusive) to toIndex (exclusive). If the two indices are equal, the *************** public class CopyOnWriteArrayList *** 907,913 **** * * All methods first check to see if the actual modCount of the backing * list is equal to its expected value, and throw a ! * ConcurrentModificationException if it is not. * * @param fromIndex the index that the returned list should start from * (inclusive) --- 907,913 ---- * * All methods first check to see if the actual modCount of the backing * list is equal to its expected value, and throw a ! * ConcurrentModificationException if it is not. * * @param fromIndex the index that the returned list should start from * (inclusive) *************** public class CopyOnWriteArrayList *** 941,947 **** * @author Original author unknown * @author Eric Blake (ebb9@email.byu.edu) */ ! private static class SubList extends AbstractList { // Package visible, for use by iterator. --- 941,947 ---- * @author Original author unknown * @author Eric Blake (ebb9@email.byu.edu) */ ! private static class SubList extends AbstractList { // Package visible, for use by iterator. *************** public class CopyOnWriteArrayList *** 968,974 **** offset = fromIndex; size = toIndex - fromIndex; } ! /** * This method checks the two modCount fields to ensure that there has * not been a concurrent modification, returning if all is okay. --- 968,974 ---- offset = fromIndex; size = toIndex - fromIndex; } ! /** * This method checks the two modCount fields to ensure that there has * not been a concurrent modification, returning if all is okay. *************** public class CopyOnWriteArrayList *** 982,988 **** if (data != backingList.data) throw new ConcurrentModificationException(); } ! /** * This method checks that a value is between 0 and size (inclusive). If * it is not, an exception is thrown. --- 982,988 ---- if (data != backingList.data) throw new ConcurrentModificationException(); } ! /** * This method checks that a value is between 0 and size (inclusive). If * it is not, an exception is thrown. *************** public class CopyOnWriteArrayList *** 997,1003 **** throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + size); } ! /** * This method checks that a value is between 0 (inclusive) and size * (exclusive). If it is not, an exception is thrown. --- 997,1003 ---- throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + size); } ! /** * This method checks that a value is between 0 (inclusive) and size * (exclusive). If it is not, an exception is thrown. *************** public class CopyOnWriteArrayList *** 1012,1018 **** throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + size); } ! /** * Specified by AbstractList.subList to return the private field size. * --- 1012,1018 ---- throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + size); } ! /** * Specified by AbstractList.subList to return the private field size. * *************** public class CopyOnWriteArrayList *** 1028,1034 **** return size; } } ! public void clear() { synchronized (backingList) --- 1028,1034 ---- return size; } } ! public void clear() { synchronized (backingList) *************** public class CopyOnWriteArrayList *** 1037,1053 **** E[] newData = (E[]) new Object[snapshot.length - size]; int toIndex = size + offset; ! System.arraycopy(snapshot, 0, newData, 0, offset); System.arraycopy(snapshot, toIndex, newData, offset, snapshot.length - toIndex); ! backingList.data = newData; this.data = backingList.data; this.size = 0; } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * --- 1037,1053 ---- E[] newData = (E[]) new Object[snapshot.length - size]; int toIndex = size + offset; ! System.arraycopy(snapshot, 0, newData, 0, offset); System.arraycopy(snapshot, toIndex, newData, offset, snapshot.length - toIndex); ! backingList.data = newData; this.data = backingList.data; this.size = 0; } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * *************** public class CopyOnWriteArrayList *** 1070,1083 **** { checkMod(); checkBoundsExclusive(index); ! E el = backingList.set(index + offset, o); this.data = backingList.data; ! return el; } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * --- 1070,1083 ---- { checkMod(); checkBoundsExclusive(index); ! E el = backingList.set(index + offset, o); this.data = backingList.data; ! return el; } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * *************** public class CopyOnWriteArrayList *** 1093,1103 **** { checkMod(); checkBoundsExclusive(index); ! return backingList.get(index + offset); } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * --- 1093,1103 ---- { checkMod(); checkBoundsExclusive(index); ! return backingList.get(index + offset); } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * *************** public class CopyOnWriteArrayList *** 1119,1132 **** { checkMod(); checkBoundsInclusive(index); ! backingList.add(index + offset, o); ! this.data = backingList.data; size++; } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * --- 1119,1132 ---- { checkMod(); checkBoundsInclusive(index); ! backingList.add(index + offset, o); ! this.data = backingList.data; size++; } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * *************** public class CopyOnWriteArrayList *** 1145,1158 **** checkMod(); checkBoundsExclusive(index); E o = backingList.remove(index + offset); ! this.data = backingList.data; size--; ! return o; } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * --- 1145,1158 ---- checkMod(); checkBoundsExclusive(index); E o = backingList.remove(index + offset); ! this.data = backingList.data; size--; ! return o; } } ! /** * Specified by AbstractList.subList to delegate to the backing list. * *************** public class CopyOnWriteArrayList *** 1178,1191 **** checkBoundsInclusive(index); int csize = c.size(); boolean result = backingList.addAll(offset + index, c); ! this.data = backingList.data; size += csize; ! return result; } } ! /** * Specified by AbstractList.subList to return addAll(size, c). * --- 1178,1191 ---- checkBoundsInclusive(index); int csize = c.size(); boolean result = backingList.addAll(offset + index, c); ! this.data = backingList.data; size += csize; ! return result; } } ! /** * Specified by AbstractList.subList to return addAll(size, c). * *************** public class CopyOnWriteArrayList *** 1208,1214 **** return addAll(size, c); } } ! /** * Specified by AbstractList.subList to return listIterator(). * --- 1208,1214 ---- return addAll(size, c); } } ! /** * Specified by AbstractList.subList to return listIterator(). * *************** public class CopyOnWriteArrayList *** 1218,1224 **** { return listIterator(); } ! /** * Specified by AbstractList.subList to return a wrapper around the * backing list's iterator. --- 1218,1224 ---- { return listIterator(); } ! /** * Specified by AbstractList.subList to return a wrapper around the * backing list's iterator. *************** public class CopyOnWriteArrayList *** 1363,1369 **** /** * Adds the supplied object before the element that would be returned * by a call to next(), if the list supports addition. ! * * @param o The object to add to the list. * @throws UnsupportedOperationException if the list doesn't support * the addition of new elements. --- 1363,1369 ---- /** * Adds the supplied object before the element that would be returned * by a call to next(), if the list supports addition. ! * * @param o The object to add to the list. * @throws UnsupportedOperationException if the list doesn't support * the addition of new elements. *************** public class CopyOnWriteArrayList *** 1378,1384 **** { throw new UnsupportedOperationException("Modification not supported " + "on CopyOnWriteArrayList iterators"); ! } }; } } // class SubList --- 1378,1384 ---- { throw new UnsupportedOperationException("Modification not supported " + "on CopyOnWriteArrayList iterators"); ! } }; } } // class SubList *************** public class CopyOnWriteArrayList *** 1407,1413 **** /** * Serializes this object to the given stream. ! * * @param s * the stream to write to * @throws IOException --- 1407,1413 ---- /** * Serializes this object to the given stream. ! * * @param s * the stream to write to * @throws IOException *************** public class CopyOnWriteArrayList *** 1430,1436 **** /** * Deserializes this object from the given stream. ! * * @param s * the stream to read from * @throws ClassNotFoundException --- 1430,1436 ---- /** * Deserializes this object from the given stream. ! * * @param s * the stream to read from * @throws ClassNotFoundException *************** public class CopyOnWriteArrayList *** 1455,1461 **** { return o1 == null ? o2 == null : o1.equals(o2); } ! Object[] getArray() { return data; --- 1455,1461 ---- { return o1 == null ? o2 == null : o1.equals(o2); } ! Object[] getArray() { return data; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/jar/Attributes.java gcc-4.6.0/libjava/classpath/java/util/jar/Attributes.java *** gcc-4.5.2/libjava/classpath/java/util/jar/Attributes.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/jar/Attributes.java Tue Jan 11 19:46:05 2011 *************** import java.util.Set; *** 67,73 **** * @see java.util.jar.Attributes.Name * @author Mark Wielaard (mark@klomp.org) */ ! public class Attributes implements Cloneable, Map { --- 67,73 ---- * @see java.util.jar.Attributes.Name * @author Mark Wielaard (mark@klomp.org) */ ! public class Attributes implements Cloneable, Map { *************** public class Attributes *** 87,102 **** * know names for the general main attributes, stand alone application * attributes, applet attributes, extension identification attributes, * package versioning and sealing attributes, file contents attributes, ! * bean objects attribute and signing attributes. See the ! * *

                            The characters of a Name must obey the following restrictions:

                            ! * *
                              *
                            • Must contain at least one character
                            • *
                            • The first character must be alphanumeric (a-z, A-Z, 0-9)
                            • *
                            • All other characters must be alphanumeric, a '-' or a '_'
                            • *
                            ! * *

                            When comparing Names (with equals) all characters are * converted to lowercase. But you can get the original case sensitive * string with the toString() method.

                            --- 87,102 ---- * know names for the general main attributes, stand alone application * attributes, applet attributes, extension identification attributes, * package versioning and sealing attributes, file contents attributes, ! * bean objects attribute and signing attributes. See the ! * *

                            The characters of a Name must obey the following restrictions:

                            ! * *
                              *
                            • Must contain at least one character
                            • *
                            • The first character must be alphanumeric (a-z, A-Z, 0-9)
                            • *
                            • All other characters must be alphanumeric, a '-' or a '_'
                            • *
                            ! * *

                            When comparing Names (with equals) all characters are * converted to lowercase. But you can get the original case sensitive * string with the toString() method.

                            *************** public class Attributes *** 125,137 **** * the version of this Manifest file. */ public static final Name MANIFEST_VERSION = new Name(JarUtils.MANIFEST_VERSION); ! /** * General main attribute - * the version of the jar file signature. */ public static final Name SIGNATURE_VERSION = new Name(JarUtils.SIGNATURE_VERSION); ! /** * General main attribute - * (relative) file paths of the libraries/classpaths that the Classes in --- 125,137 ---- * the version of this Manifest file. */ public static final Name MANIFEST_VERSION = new Name(JarUtils.MANIFEST_VERSION); ! /** * General main attribute - * the version of the jar file signature. */ public static final Name SIGNATURE_VERSION = new Name(JarUtils.SIGNATURE_VERSION); ! /** * General main attribute - * (relative) file paths of the libraries/classpaths that the Classes in *************** public class Attributes *** 172,178 **** * the name if the extension library contained in the jar. */ public static final Name EXTENSION_NAME = new Name("Extension-Name"); ! /** * Extension identification attribute - * synonym for EXTENSTION_NAME. --- 172,178 ---- * the name if the extension library contained in the jar. */ public static final Name EXTENSION_NAME = new Name("Extension-Name"); ! /** * Extension identification attribute - * synonym for EXTENSTION_NAME. *************** public class Attributes *** 180,221 **** public static final Name EXTENSION_INSTALLATION = EXTENSION_NAME; // Package versioning and sealing attributes ! /** * Package versioning - * name of extension library contained in this jar. */ public static final Name IMPLEMENTATION_TITLE = new Name("Implementation-Title"); ! /** * Package versioning - * version of the extension library contained in this jar. */ public static final Name IMPLEMENTATION_VERSION = new Name("Implementation-Version"); ! /** * Package versioning - * name of extension library creator contained in this jar. */ public static final Name IMPLEMENTATION_VENDOR = new Name("Implementation-Vendor"); ! /** * Package versioning - * unique id of extension library creator. */ public static final Name IMPLEMENTATION_VENDOR_ID = new Name("Implementation-Vendor-Id"); ! /** * Package versioning - * location where this implementation can be downloaded. */ public static final Name IMPLEMENTATION_URL = new Name("Implementation-URL"); ! /** * Package versioning - * title of the specification contained in this jar. --- 180,221 ---- public static final Name EXTENSION_INSTALLATION = EXTENSION_NAME; // Package versioning and sealing attributes ! /** * Package versioning - * name of extension library contained in this jar. */ public static final Name IMPLEMENTATION_TITLE = new Name("Implementation-Title"); ! /** * Package versioning - * version of the extension library contained in this jar. */ public static final Name IMPLEMENTATION_VERSION = new Name("Implementation-Version"); ! /** * Package versioning - * name of extension library creator contained in this jar. */ public static final Name IMPLEMENTATION_VENDOR = new Name("Implementation-Vendor"); ! /** * Package versioning - * unique id of extension library creator. */ public static final Name IMPLEMENTATION_VENDOR_ID = new Name("Implementation-Vendor-Id"); ! /** * Package versioning - * location where this implementation can be downloaded. */ public static final Name IMPLEMENTATION_URL = new Name("Implementation-URL"); ! /** * Package versioning - * title of the specification contained in this jar. *************** public class Attributes *** 263,269 **** * Creates a new Name from the given String. * Throws an IllegalArgumentException if the given String is empty or * contains any illegal Name characters. ! * * @param name the name of the new Name * @exception IllegalArgumentException if name isn't a valid String * representation of a Name --- 263,269 ---- * Creates a new Name from the given String. * Throws an IllegalArgumentException if the given String is empty or * contains any illegal Name characters. ! * * @param name the name of the new Name * @exception IllegalArgumentException if name isn't a valid String * representation of a Name *************** public class Attributes *** 278,305 **** // there must be at least one character if (chars.length == 0) ! throw new ! IllegalArgumentException ! ("There must be at least one character in a name"); // first character must be alphanum char c = chars[0]; if (!((c >= 'a' && c <= 'z') || ! (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'))) ! throw new ! IllegalArgumentException("First character must be alphanum"); // all other characters must be alphanums, '-' or '_' for (int i = 1; i < chars.length; i++) ! { ! c = chars[i]; ! if (!((c >= 'a' && c <= 'z') || ! (c >= 'A' && c <= 'Z') || ! (c >= '0' && c <= '9') || (c == '-') || (c == '_'))) ! throw new ! IllegalArgumentException ! ("Characters must be alphanums, '-' or '_'"); ! } // Still here? Then convert to lower case and be done. // Store the original name for toString(); --- 278,305 ---- // there must be at least one character if (chars.length == 0) ! throw new ! IllegalArgumentException ! ("There must be at least one character in a name"); // first character must be alphanum char c = chars[0]; if (!((c >= 'a' && c <= 'z') || ! (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'))) ! throw new ! IllegalArgumentException("First character must be alphanum"); // all other characters must be alphanums, '-' or '_' for (int i = 1; i < chars.length; i++) ! { ! c = chars[i]; ! if (!((c >= 'a' && c <= 'z') || ! (c >= 'A' && c <= 'Z') || ! (c >= '0' && c <= '9') || (c == '-') || (c == '_'))) ! throw new ! IllegalArgumentException ! ("Characters must be alphanums, '-' or '_'"); ! } // Still here? Then convert to lower case and be done. // Store the original name for toString(); *************** public class Attributes *** 325,347 **** { // Quick and dirty check if (name == o) ! return true; try ! { ! // Note that the constructor already converts the strings to ! // lowercase. ! String otherName = ((Name) o).name; ! return name.equals(otherName); ! } catch (ClassCastException cce) ! { ! return false; ! } catch (NullPointerException npe) ! { ! return false; ! } } /** --- 325,347 ---- { // Quick and dirty check if (name == o) ! return true; try ! { ! // Note that the constructor already converts the strings to ! // lowercase. ! String otherName = ((Name) o).name; ! return name.equals(otherName); ! } catch (ClassCastException cce) ! { ! return false; ! } catch (NullPointerException npe) ! { ! return false; ! } } /** *************** public class Attributes *** 514,528 **** try { ! return map.equals(((Attributes) o).map); } catch (ClassCastException cce) { ! return false; } catch (NullPointerException npe) { ! return false; } } --- 514,528 ---- try { ! return map.equals(((Attributes) o).map); } catch (ClassCastException cce) { ! return false; } catch (NullPointerException npe) { ! return false; } } *************** public class Attributes *** 591,598 **** { if (!(attr instanceof Attributes)) { ! throw new ! ClassCastException("Supplied Map is not an instance of Attributes"); } map.putAll(attr); } --- 591,598 ---- { if (!(attr instanceof Attributes)) { ! throw new ! ClassCastException("Supplied Map is not an instance of Attributes"); } map.putAll(attr); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/jar/JarEntry.java gcc-4.6.0/libjava/classpath/java/util/jar/JarEntry.java *** gcc-4.5.2/libjava/classpath/java/util/jar/JarEntry.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/jar/JarEntry.java Tue Jan 11 19:46:05 2011 *************** public class JarEntry extends ZipEntry *** 108,114 **** super(entry); try { ! attr = entry.getAttributes(); } catch (IOException _) { --- 108,114 ---- super(entry); try { ! attr = entry.getAttributes(); } catch (IOException _) { *************** public class JarEntry extends ZipEntry *** 130,140 **** { if (attr != null) { ! return (Attributes) attr.clone(); } else { ! return null; } } --- 130,140 ---- { if (attr != null) { ! return (Attributes) attr.clone(); } else { ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/jar/JarFile.java gcc-4.6.0/libjava/classpath/java/util/jar/JarFile.java *** gcc-4.5.2/libjava/classpath/java/util/jar/JarFile.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/jar/JarFile.java Tue Jan 11 19:46:05 2011 *************** public class JarFile extends ZipFile *** 199,206 **** super(fileName); if (verify) { ! manifest = readManifest(); ! verify(); } } --- 199,206 ---- super(fileName); if (verify) { ! manifest = readManifest(); ! verify(); } } *************** public class JarFile extends ZipFile *** 236,243 **** super(file); if (verify) { ! manifest = readManifest(); ! verify(); } } --- 236,243 ---- super(file); if (verify) { ! manifest = readManifest(); ! verify(); } } *************** public class JarFile extends ZipFile *** 256,262 **** * @exception FileNotFoundException if the file does not exist * @exception IOException if another IO exception occurs while reading * @exception IllegalArgumentException when given an illegal mode ! * * @since 1.3 */ public JarFile(File file, boolean verify, int mode) throws --- 256,262 ---- * @exception FileNotFoundException if the file does not exist * @exception IOException if another IO exception occurs while reading * @exception IllegalArgumentException when given an illegal mode ! * * @since 1.3 */ public JarFile(File file, boolean verify, int mode) throws *************** public class JarFile extends ZipFile *** 265,272 **** super(file, mode); if (verify) { ! manifest = readManifest(); ! verify(); } } --- 265,272 ---- super(file, mode); if (verify) { ! manifest = readManifest(); ! verify(); } } *************** public class JarFile extends ZipFile *** 280,287 **** // only check if manifest is not null if (manifest == null) { ! verify = false; ! return; } verify = true; --- 280,287 ---- // only check if manifest is not null if (manifest == null) { ! verify = false; ! return; } verify = true; *************** public class JarFile extends ZipFile *** 295,317 **** { try { ! ZipEntry manEntry = super.getEntry(MANIFEST_NAME); ! if (manEntry != null) ! { ! InputStream in = super.getInputStream(manEntry); ! manifestRead = true; ! return new Manifest(in); ! } ! else ! { ! manifestRead = true; ! return null; ! } } catch (IOException ioe) { ! manifestRead = true; ! return null; } } --- 295,317 ---- { try { ! ZipEntry manEntry = super.getEntry(MANIFEST_NAME); ! if (manEntry != null) ! { ! InputStream in = super.getInputStream(manEntry); ! manifestRead = true; ! return new Manifest(in); ! } ! else ! { ! manifestRead = true; ! return null; ! } } catch (IOException ioe) { ! manifestRead = true; ! return null; } } *************** public class JarFile extends ZipFile *** 353,388 **** JarEntry jar = new JarEntry(zip); Manifest manifest; try ! { ! manifest = jarfile.getManifest(); ! } catch (IOException ioe) ! { ! manifest = null; ! } if (manifest != null) ! { ! jar.attr = manifest.getAttributes(jar.getName()); ! } synchronized(jarfile) ! { ! if (jarfile.verify && !jarfile.signaturesRead) ! try ! { ! jarfile.readSignatures(); ! } ! catch (IOException ioe) ! { ! if (JarFile.DEBUG) ! { ! JarFile.debug(ioe); ! ioe.printStackTrace(); ! } ! jarfile.signaturesRead = true; // fudge it. ! } ! } jar.jarfile = jarfile; return jar; } --- 353,388 ---- JarEntry jar = new JarEntry(zip); Manifest manifest; try ! { ! manifest = jarfile.getManifest(); ! } catch (IOException ioe) ! { ! manifest = null; ! } if (manifest != null) ! { ! jar.attr = manifest.getAttributes(jar.getName()); ! } synchronized(jarfile) ! { ! if (jarfile.verify && !jarfile.signaturesRead) ! try ! { ! jarfile.readSignatures(); ! } ! catch (IOException ioe) ! { ! if (JarFile.DEBUG) ! { ! JarFile.debug(ioe); ! ioe.printStackTrace(); ! } ! jarfile.signaturesRead = true; // fudge it. ! } ! } jar.jarfile = jarfile; return jar; } *************** public class JarFile extends ZipFile *** 398,435 **** ZipEntry entry = super.getEntry(name); if (entry != null) { ! JarEntry jarEntry = new JarEntry(entry); ! Manifest manifest; ! try ! { ! manifest = getManifest(); ! } ! catch (IOException ioe) ! { ! manifest = null; ! } ! if (manifest != null) ! { ! jarEntry.attr = manifest.getAttributes(name); } ! if (verify && !signaturesRead) ! try ! { ! readSignatures(); ! } ! catch (IOException ioe) ! { ! if (DEBUG) ! { ! debug(ioe); ! ioe.printStackTrace(); ! } ! signaturesRead = true; ! } jarEntry.jarfile = this; ! return jarEntry; } return null; } --- 398,435 ---- ZipEntry entry = super.getEntry(name); if (entry != null) { ! JarEntry jarEntry = new JarEntry(entry); ! Manifest manifest; ! try ! { ! manifest = getManifest(); ! } ! catch (IOException ioe) ! { ! manifest = null; ! } ! if (manifest != null) ! { ! jarEntry.attr = manifest.getAttributes(name); } ! if (verify && !signaturesRead) ! try ! { ! readSignatures(); ! } ! catch (IOException ioe) ! { ! if (DEBUG) ! { ! debug(ioe); ! ioe.printStackTrace(); ! } ! signaturesRead = true; ! } jarEntry.jarfile = this; ! return jarEntry; } return null; } *************** public class JarFile extends ZipFile *** 734,744 **** /** * Verifies that the digest(s) in a signature file were, in fact, made over * the manifest entry for ENTRY. ! * * @param entry The entry name. * @param attr The attributes from the signature file to verify. * @param hmManifestEntries Mappings of Jar file entry names to their manifest ! * entry text; i.e. the base-64 encoding of their */ private boolean verifyHashes(String entry, Attributes attr, HashMap hmManifestEntries) --- 734,744 ---- /** * Verifies that the digest(s) in a signature file were, in fact, made over * the manifest entry for ENTRY. ! * * @param entry The entry name. * @param attr The attributes from the signature file to verify. * @param hmManifestEntries Mappings of Jar file entry names to their manifest ! * entry text; i.e. the base-64 encoding of their */ private boolean verifyHashes(String entry, Attributes attr, HashMap hmManifestEntries) *************** public class JarFile extends ZipFile *** 820,827 **** private boolean checked; EntryInputStream(final ZipEntry entry, ! final InputStream in, ! final JarFile jar) throws IOException { super(in); --- 820,827 ---- private boolean checked; EntryInputStream(final ZipEntry entry, ! final InputStream in, ! final JarFile jar) throws IOException { super(in); *************** public class JarFile extends ZipFile *** 835,843 **** Attributes attr; Manifest manifest = jarfile.getManifest(); if (manifest != null) ! attr = manifest.getAttributes(entry.getName()); else ! attr = null; if (DEBUG) debug("verifying entry " + entry + " attr=" + attr); if (attr == null) --- 835,843 ---- Attributes attr; Manifest manifest = jarfile.getManifest(); if (manifest != null) ! attr = manifest.getAttributes(entry.getName()); else ! attr = null; if (DEBUG) debug("verifying entry " + entry + " attr=" + attr); if (attr == null) *************** public class JarFile extends ZipFile *** 958,981 **** + " comp=" + new java.math.BigInteger(hash).toString(16)); if (!Arrays.equals(hash, hashes[i])) { ! synchronized(jarfile) ! { ! if (DEBUG) ! debug(entry + " could NOT be verified"); ! jarfile.verified.put(entry.getName(), Boolean.FALSE); ! } ! return; ! // XXX ??? what do we do here? ! // throw new ZipException("message digest mismatch"); } } synchronized(jarfile) ! { ! if (DEBUG) ! debug(entry + " has been VERIFIED"); ! jarfile.verified.put(entry.getName(), Boolean.TRUE); ! } } } } --- 958,981 ---- + " comp=" + new java.math.BigInteger(hash).toString(16)); if (!Arrays.equals(hash, hashes[i])) { ! synchronized(jarfile) ! { ! if (DEBUG) ! debug(entry + " could NOT be verified"); ! jarfile.verified.put(entry.getName(), Boolean.FALSE); ! } ! return; ! // XXX ??? what do we do here? ! // throw new ZipException("message digest mismatch"); } } synchronized(jarfile) ! { ! if (DEBUG) ! debug(entry + " has been VERIFIED"); ! jarfile.verified.put(entry.getName(), Boolean.TRUE); ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/jar/JarInputStream.java gcc-4.6.0/libjava/classpath/java/util/jar/JarInputStream.java *** gcc-4.5.2/libjava/classpath/java/util/jar/JarInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/jar/JarInputStream.java Tue Jan 11 19:46:05 2011 *************** public class JarInputStream extends ZipI *** 108,125 **** { firstEntry = (JarEntry) super.getNextEntry(); while ((firstEntry != null) && ! firstEntry.getName().startsWith("META-INF/")) { ! if (firstEntry.getName().equals(JarFile.MANIFEST_NAME)) ! { ! manifest = new Manifest(this); ! } ! firstEntry = (JarEntry) super.getNextEntry(); } if (verify) { ! // XXX } } --- 108,125 ---- { firstEntry = (JarEntry) super.getNextEntry(); while ((firstEntry != null) && ! firstEntry.getName().startsWith("META-INF/")) { ! if (firstEntry.getName().equals(JarFile.MANIFEST_NAME)) ! { ! manifest = new Manifest(this); ! } ! firstEntry = (JarEntry) super.getNextEntry(); } if (verify) { ! // XXX } } *************** public class JarInputStream extends ZipI *** 136,142 **** JarEntry jarEntry = new JarEntry(zipEntry); if (manifest != null) { ! jarEntry.attr = manifest.getAttributes(name); } return jarEntry; } --- 136,142 ---- JarEntry jarEntry = new JarEntry(zipEntry); if (manifest != null) { ! jarEntry.attr = manifest.getAttributes(name); } return jarEntry; } *************** public class JarInputStream extends ZipI *** 163,174 **** ZipEntry entry; if (firstEntry != null) { ! entry = firstEntry; ! firstEntry = null; } else { ! entry = super.getNextEntry(); } return entry; } --- 163,174 ---- ZipEntry entry; if (firstEntry != null) { ! entry = firstEntry; ! firstEntry = null; } else { ! entry = super.getNextEntry(); } return entry; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/jar/JarOutputStream.java gcc-4.6.0/libjava/classpath/java/util/jar/JarOutputStream.java *** gcc-4.5.2/libjava/classpath/java/util/jar/JarOutputStream.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/java/util/jar/JarOutputStream.java Tue Jan 11 19:46:05 2011 *************** public class JarOutputStream extends Zip *** 100,106 **** } /** ! * Prepares the JarOutputStream for writing the next entry. * This implementation just calls super.putNextEntry(). * * @param entry The information for the next entry --- 100,106 ---- } /** ! * Prepares the JarOutputStream for writing the next entry. * This implementation just calls super.putNextEntry(). * * @param entry The information for the next entry *************** public class JarOutputStream extends Zip *** 108,113 **** */ public void putNextEntry(ZipEntry entry) throws IOException { ! super.putNextEntry(entry); // XXX } } --- 108,113 ---- */ public void putNextEntry(ZipEntry entry) throws IOException { ! super.putNextEntry(entry); // XXX } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/jar/Manifest.java gcc-4.6.0/libjava/classpath/java/util/jar/Manifest.java *** gcc-4.5.2/libjava/classpath/java/util/jar/Manifest.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/java/util/jar/Manifest.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package java.util.jar; import gnu.java.util.jar.JarUtils; ! import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; --- 38,44 ---- package java.util.jar; import gnu.java.util.jar.JarUtils; ! import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; *************** import java.util.Map; *** 48,54 **** /** * Reads, writes and manipulaties jar manifest files. * XXX ! * * @since 1.2 * @author Mark Wielaard (mark@klomp.org) */ --- 48,54 ---- /** * Reads, writes and manipulaties jar manifest files. * XXX ! * * @since 1.2 * @author Mark Wielaard (mark@klomp.org) */ *************** public class Manifest implements Cloneab *** 153,159 **** /** * Read and merge a Manifest from the designated input stream. ! * * @param in the input stream to read from. * @throws IOException if an I/O related exception occurs during the process. */ --- 153,159 ---- /** * Read and merge a Manifest from the designated input stream. ! * * @param in the input stream to read from. * @throws IOException if an I/O related exception occurs during the process. */ *************** public class Manifest implements Cloneab *** 166,172 **** * Writes the contents of this Manifest to the designated * output stream. Line-endings are platform-independent and consist of the * 2-codepoint sequence 0x0D and 0x0A. ! * * @param out the output stream to write this Manifest to. * @throws IOException if an I/O related exception occurs during the process. */ --- 166,172 ---- * Writes the contents of this Manifest to the designated * output stream. Line-endings are platform-independent and consist of the * 2-codepoint sequence 0x0D and 0x0A. ! * * @param out the output stream to write this Manifest to. * @throws IOException if an I/O related exception occurs during the process. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/ConsoleHandler.java gcc-4.6.0/libjava/classpath/java/util/logging/ConsoleHandler.java *** gcc-4.5.2/libjava/classpath/java/util/logging/ConsoleHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/ConsoleHandler.java Tue Jan 11 19:46:05 2011 *************** public class ConsoleHandler *** 81,87 **** public ConsoleHandler() { super(System.err, "java.util.logging.ConsoleHandler", Level.INFO, ! /* formatter */ null, SimpleFormatter.class); } --- 81,87 ---- public ConsoleHandler() { super(System.err, "java.util.logging.ConsoleHandler", Level.INFO, ! /* formatter */ null, SimpleFormatter.class); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/ErrorManager.java gcc-4.6.0/libjava/classpath/java/util/logging/ErrorManager.java *** gcc-4.5.2/libjava/classpath/java/util/logging/ErrorManager.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/ErrorManager.java Tue Jan 11 19:46:05 2011 *************** public class ErrorManager *** 82,88 **** */ public static final int CLOSE_FAILURE = 3; ! /** * Indicates that there was a problem upon opening * an output stream. --- 82,88 ---- */ public static final int CLOSE_FAILURE = 3; ! /** * Indicates that there was a problem upon opening * an output stream. *************** public class ErrorManager *** 146,152 **** * widespread acceptance. See Classpath bug #2944. */ if (everUsed) ! return; everUsed = true; } --- 146,152 ---- * widespread acceptance. See Classpath bug #2944. */ if (everUsed) ! return; everUsed = true; } *************** public class ErrorManager *** 191,194 **** ex.printStackTrace(); } } - --- 191,193 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/FileHandler.java gcc-4.6.0/libjava/classpath/java/util/logging/FileHandler.java *** gcc-4.5.2/libjava/classpath/java/util/logging/FileHandler.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/logging/FileHandler.java Tue Jan 11 19:46:05 2011 *************** import java.util.ListIterator; *** 120,126 **** * system property user.home. * *
                          • %g - replaced by a generation number for ! * distinguisthing the individual items in the rotating set * of log files. The generation number cycles through the * sequence 0, 1, ..., count - 1.
                          • * --- 120,126 ---- * system property user.home. * *
                          • %g - replaced by a generation number for ! * distinguisthing the individual items in the rotating set * of log files. The generation number cycles through the * sequence 0, 1, ..., count - 1.
                          • * *************** import java.util.ListIterator; *** 160,166 **** * step is performed after any generation number has been * appended. * ! *

                            Examples for the GNU platform: * *

                              * --- 160,166 ---- * step is performed after any generation number has been * appended. * ! *

                              Examples for the GNU platform: * *

                                * *************** public class FileHandler *** 269,275 **** /** * A linked list of files we are, or have written to. The entries ! * are file path strings, kept in the order */ private LinkedList logFiles; --- 269,275 ---- /** * A linked list of files we are, or have written to. The entries ! * are file path strings, kept in the order */ private LinkedList logFiles; *************** public class FileHandler *** 291,299 **** throws IOException, SecurityException { this(LogManager.getLogManager().getProperty(PATTERN_KEY), ! LogManager.getIntProperty(LIMIT_KEY, DEFAULT_LIMIT), ! LogManager.getIntProperty(COUNT_KEY, DEFAULT_COUNT), ! LogManager.getBooleanProperty(APPEND_KEY, DEFAULT_APPEND)); } --- 291,299 ---- throws IOException, SecurityException { this(LogManager.getLogManager().getProperty(PATTERN_KEY), ! LogManager.getIntProperty(LIMIT_KEY, DEFAULT_LIMIT), ! LogManager.getIntProperty(COUNT_KEY, DEFAULT_COUNT), ! LogManager.getBooleanProperty(APPEND_KEY, DEFAULT_APPEND)); } *************** public class FileHandler *** 317,324 **** public FileHandler(String pattern, int limit, int count) throws IOException, SecurityException { ! this(pattern, limit, count, ! LogManager.getBooleanProperty(APPEND_KEY, DEFAULT_APPEND)); } --- 317,324 ---- public FileHandler(String pattern, int limit, int count) throws IOException, SecurityException { ! this(pattern, limit, count, ! LogManager.getBooleanProperty(APPEND_KEY, DEFAULT_APPEND)); } *************** public class FileHandler *** 368,383 **** * the Sun reference implementation. */ public FileHandler(String pattern, ! int limit, ! int count, ! boolean append) throws IOException, SecurityException { super(/* output stream, created below */ null, ! PROPERTY_PREFIX, ! /* default level */ Level.ALL, ! /* formatter */ null, ! /* default formatter */ XMLFormatter.class); if ((limit <0) || (count < 1)) throw new IllegalArgumentException(); --- 368,383 ---- * the Sun reference implementation. */ public FileHandler(String pattern, ! int limit, ! int count, ! boolean append) throws IOException, SecurityException { super(/* output stream, created below */ null, ! PROPERTY_PREFIX, ! /* default level */ Level.ALL, ! /* formatter */ null, ! /* default formatter */ XMLFormatter.class); if ((limit <0) || (count < 1)) throw new IllegalArgumentException(); *************** public class FileHandler *** 426,432 **** try { ! File file = new File(path); if (!file.exists () || append) { FileOutputStream fout = new FileOutputStream (file, append); --- 426,432 ---- try { ! File file = new File(path); if (!file.exists () || append) { FileOutputStream fout = new FileOutputStream (file, append); *************** public class FileHandler *** 476,484 **** * pattern. */ private static String replaceFileNameEscapes(String pattern, ! int generation, ! int uniqueNumber, ! int count) { CPStringBuilder buf = new CPStringBuilder(pattern); String replaceWith; --- 476,484 ---- * pattern. */ private static String replaceFileNameEscapes(String pattern, ! int generation, ! int uniqueNumber, ! int count) { CPStringBuilder buf = new CPStringBuilder(pattern); String replaceWith; *************** public class FileHandler *** 489,537 **** { // Uncomment the next line for finding bugs. // System.out.println(buf.substring(0,pos) + '|' + buf.substring(pos)); ! if (buf.charAt(pos) == '/') { ! /* The same value is also provided by java.io.File.separator. */ ! replaceWith = System.getProperty("file.separator"); ! buf.replace(pos, pos + 1, replaceWith); ! pos = pos + replaceWith.length() - 1; ! continue; } if (buf.charAt(pos) == '%') { switch (buf.charAt(pos + 1)) ! { ! case 't': ! replaceWith = System.getProperty("java.io.tmpdir"); ! break; ! case 'h': ! replaceWith = System.getProperty("user.home"); ! break; ! case 'g': ! replaceWith = Integer.toString(generation); ! foundGeneration = true; ! break; ! case 'u': ! replaceWith = Integer.toString(uniqueNumber); ! break; ! case '%': ! replaceWith = "%"; ! break; ! default: ! replaceWith = "??"; ! break; // FIXME: Throw exception? ! } ! buf.replace(pos, pos + 2, replaceWith); ! pos = pos + replaceWith.length() - 1; ! continue; } } while (++pos < buf.length() - 1); --- 489,537 ---- { // Uncomment the next line for finding bugs. // System.out.println(buf.substring(0,pos) + '|' + buf.substring(pos)); ! if (buf.charAt(pos) == '/') { ! /* The same value is also provided by java.io.File.separator. */ ! replaceWith = System.getProperty("file.separator"); ! buf.replace(pos, pos + 1, replaceWith); ! pos = pos + replaceWith.length() - 1; ! continue; } if (buf.charAt(pos) == '%') { switch (buf.charAt(pos + 1)) ! { ! case 't': ! replaceWith = System.getProperty("java.io.tmpdir"); ! break; ! case 'h': ! replaceWith = System.getProperty("user.home"); ! break; ! case 'g': ! replaceWith = Integer.toString(generation); ! foundGeneration = true; ! break; ! case 'u': ! replaceWith = Integer.toString(uniqueNumber); ! break; ! case '%': ! replaceWith = "%"; ! break; ! default: ! replaceWith = "??"; ! break; // FIXME: Throw exception? ! } ! buf.replace(pos, pos + 2, replaceWith); ! pos = pos + replaceWith.length() - 1; ! continue; } } while (++pos < buf.length() - 1); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/Formatter.java gcc-4.6.0/libjava/classpath/java/util/logging/Formatter.java *** gcc-4.5.2/libjava/classpath/java/util/logging/Formatter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/Formatter.java Tue Jan 11 19:46:05 2011 *************** public abstract class Formatter *** 150,156 **** { try { ! msg = bundle.getString(msg); } catch (java.util.MissingResourceException _) { --- 150,156 ---- { try { ! msg = bundle.getString(msg); } catch (java.util.MissingResourceException _) { *************** public abstract class Formatter *** 160,167 **** /* Format the message if there are parameters. */ params = record.getParameters(); if ((params != null) ! && (params.length > 0) ! && (msg.indexOf("{0") >= 0)) { msg = MessageFormat.format(msg, params); } --- 160,167 ---- /* Format the message if there are parameters. */ params = record.getParameters(); if ((params != null) ! && (params.length > 0) ! && (msg.indexOf("{0") >= 0)) { msg = MessageFormat.format(msg, params); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/Handler.java gcc-4.6.0/libjava/classpath/java/util/logging/Handler.java *** gcc-4.5.2/libjava/classpath/java/util/logging/Handler.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/Handler.java Tue Jan 11 19:46:05 2011 *************** h.setFormatter(h.getFormatter());
                            *** 179,185 **** throws SecurityException { LogManager.getLogManager().checkAccess(); ! /* Throws a NullPointerException if formatter is null. */ formatter.getClass(); --- 179,185 ---- throws SecurityException { LogManager.getLogManager().checkAccess(); ! /* Throws a NullPointerException if formatter is null. */ formatter.getClass(); *************** h.setFormatter(h.getFormatter());
                            *** 377,383 **** { if (record.getLevel().intValue() < level.intValue()) return false; ! if (filter != null) return filter.isLoggable(record); else --- 377,383 ---- { if (record.getLevel().intValue() < level.intValue()) return false; ! if (filter != null) return filter.isLoggable(record); else diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/Level.java gcc-4.6.0/libjava/classpath/java/util/logging/Level.java *** gcc-4.5.2/libjava/classpath/java/util/logging/Level.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/util/logging/Level.java Tue Jan 11 19:46:05 2011 *************** public class Level implements Serializab *** 180,191 **** * @param value the integer value of the level. Please note * that the JavaTM * Logging API does not specify integer ! * values for standard levels (such as ! * Level.FINE). Therefore, a custom ! * level should pass an integer value that ! * is calculated at run-time, e.g. ! * (Level.FINE.intValue() + Level.CONFIG.intValue()) ! * / 2 for a level between FINE and CONFIG. */ protected Level(String name, int value) { --- 180,191 ---- * @param value the integer value of the level. Please note * that the JavaTM * Logging API does not specify integer ! * values for standard levels (such as ! * Level.FINE). Therefore, a custom ! * level should pass an integer value that ! * is calculated at run-time, e.g. ! * (Level.FINE.intValue() + Level.CONFIG.intValue()) ! * / 2 for a level between FINE and CONFIG. */ protected Level(String name, int value) { *************** public class Level implements Serializab *** 205,217 **** * * @param value the integer value of the level. Please note * that the JavaTM ! * Logging API does not specify integer ! * values for standard levels (such as ! * Level.FINE). Therefore, a custom ! * level should pass an integer value that ! * is calculated at run-time, e.g. ! * (Level.FINE.intValue() + Level.CONFIG.intValue()) ! * / 2 for a level between FINE and CONFIG. * * @param resourceBundleName the name of a resource bundle * for localizing the level name, or null --- 205,217 ---- * * @param value the integer value of the level. Please note * that the JavaTM ! * Logging API does not specify integer ! * values for standard levels (such as ! * Level.FINE). Therefore, a custom ! * level should pass an integer value that ! * is calculated at run-time, e.g. ! * (Level.FINE.intValue() + Level.CONFIG.intValue()) ! * / 2 for a level between FINE and CONFIG. * * @param resourceBundleName the name of a resource bundle * for localizing the level name, or null *************** public class Level implements Serializab *** 243,249 **** { for (int i = 0; i < knownLevels.length; i++) if (value == knownLevels[i].intValue()) ! return knownLevels[i]; return this; } --- 243,249 ---- { for (int i = 0; i < knownLevels.length; i++) if (value == knownLevels[i].intValue()) ! return knownLevels[i]; return this; } *************** public class Level implements Serializab *** 286,292 **** try { ResourceBundle b = ResourceBundle.getBundle(resourceBundleName); ! localizedName = b.getString(name); } catch (Exception _) { --- 286,292 ---- try { ResourceBundle b = ResourceBundle.getBundle(resourceBundleName); ! localizedName = b.getString(name); } catch (Exception _) { *************** public class Level implements Serializab *** 345,359 **** // standard logging levels will be returned by this method, and // they are all created using string literals. if (name == knownLevels[i].name) ! return knownLevels[i]; } ! try { int num = Integer.parseInt(name); for (int i = 0; i < knownLevels.length; i++) ! if (num == knownLevels[i].value) ! return knownLevels[i]; } catch (NumberFormatException _) { --- 345,359 ---- // standard logging levels will be returned by this method, and // they are all created using string literals. if (name == knownLevels[i].name) ! return knownLevels[i]; } ! try { int num = Integer.parseInt(name); for (int i = 0; i < knownLevels.length; i++) ! if (num == knownLevels[i].value) ! return knownLevels[i]; } catch (NumberFormatException _) { *************** public class Level implements Serializab *** 369,375 **** * another object. * * @return true if other is an instance of ! * java.util.logging.Level and has the same integer * value, false otherwise. */ public boolean equals(Object other) --- 369,375 ---- * another object. * * @return true if other is an instance of ! * java.util.logging.Level and has the same integer * value, false otherwise. */ public boolean equals(Object other) *************** public class Level implements Serializab *** 388,394 **** public int hashCode() { return value; ! } /** --- 388,394 ---- public int hashCode() { return value; ! } /** *************** public class Level implements Serializab *** 409,417 **** { for (int i = 0; i < knownLevels.length; i++) if (knownLevels[i] == this) ! return true; return false; } } - --- 409,416 ---- { for (int i = 0; i < knownLevels.length; i++) if (knownLevels[i] == this) ! return true; return false; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/LogManager.java gcc-4.6.0/libjava/classpath/java/util/logging/LogManager.java *** gcc-4.5.2/libjava/classpath/java/util/logging/LogManager.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/logging/LogManager.java Tue Jan 11 19:46:05 2011 *************** public class LogManager *** 150,156 **** * this case. */ private final PropertyChangeSupport pcs = new PropertyChangeSupport( /* source bean */ ! LogManager.class); protected LogManager() { --- 150,156 ---- * this case. */ private final PropertyChangeSupport pcs = new PropertyChangeSupport( /* source bean */ ! LogManager.class); protected LogManager() { *************** public class LogManager *** 272,284 **** ref = loggers.get(name); if (ref != null) { ! if (ref.get() != null) ! return false; ! /* There has been a logger under this name in the past, ! * but it has been garbage collected. ! */ ! loggers.remove(ref); } /* Adding a named logger requires a security permission. */ --- 272,284 ---- ref = loggers.get(name); if (ref != null) { ! if (ref.get() != null) ! return false; ! /* There has been a logger under this name in the past, ! * but it has been garbage collected. ! */ ! loggers.remove(ref); } /* Adding a named logger requires a security permission. */ *************** public class LogManager *** 292,301 **** // The level of the newly added logger must be specified. // The easiest case is if there is a level for exactly this logger ! // in the properties. If no such level exists the level needs to be // searched along the hirachy. So if there is a new logger 'foo.blah.blub' // and an existing parent logger 'foo' the properties 'foo.blah.blub.level' ! // and 'foo.blah.level' need to be checked. If both do not exist in the // properties the level of the new logger is set to 'null' (i.e. it uses the // level of its parent 'foo'). Level logLevel = logger.getLevel(); --- 292,301 ---- // The level of the newly added logger must be specified. // The easiest case is if there is a level for exactly this logger ! // in the properties. If no such level exists the level needs to be // searched along the hirachy. So if there is a new logger 'foo.blah.blub' // and an existing parent logger 'foo' the properties 'foo.blah.blub.level' ! // and 'foo.blah.level' need to be checked. If both do not exist in the // properties the level of the new logger is set to 'null' (i.e. it uses the // level of its parent 'foo'). Level logLevel = logger.getLevel(); *************** public class LogManager *** 320,340 **** */ for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();) { ! Logger possChild = (Logger) ((WeakReference) loggers.get(iter.next())) ! .get(); ! if ((possChild == null) || (possChild == logger) ! || (possChild.getParent() != parent)) ! continue; ! ! if (! possChild.getName().startsWith(name)) ! continue; ! ! if (possChild.getName().charAt(name.length()) != '.') ! continue; ! ! possChild.setParent(logger); } ! return true; } --- 320,340 ---- */ for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();) { ! Logger possChild = (Logger) ((WeakReference) loggers.get(iter.next())) ! .get(); ! if ((possChild == null) || (possChild == logger) ! || (possChild.getParent() != parent)) ! continue; ! ! if (! possChild.getName().startsWith(name)) ! continue; ! ! if (possChild.getName().charAt(name.length()) != '.') ! continue; ! ! possChild.setParent(logger); } ! return true; } *************** public class LogManager *** 369,388 **** for (String candName : loggers.keySet()) { ! candNameLength = candName.length(); ! if (candNameLength > bestNameLength ! && childNameLength > candNameLength ! && childName.startsWith(candName) ! && childName.charAt(candNameLength) == '.') ! { ! cand = loggers.get(candName).get(); ! if ((cand == null) || (cand == child)) ! continue; ! bestNameLength = candName.length(); ! best = cand; ! } } return best; --- 369,388 ---- for (String candName : loggers.keySet()) { ! candNameLength = candName.length(); ! if (candNameLength > bestNameLength ! && childNameLength > candNameLength ! && childName.startsWith(candName) ! && childName.charAt(candNameLength) == '.') ! { ! cand = loggers.get(candName).get(); ! if ((cand == null) || (cand == child)) ! continue; ! bestNameLength = candName.length(); ! best = cand; ! } } return best; *************** public class LogManager *** 447,468 **** Iterator> iter = loggers.values().iterator(); while (iter.hasNext()) { ! WeakReference ref; ! Logger logger; ! ref = iter.next(); ! if (ref != null) ! { ! logger = ref.get(); ! if (logger == null) ! iter.remove(); ! else if (logger != Logger.root) ! { ! logger.resetLogger(); ! logger.setLevel(null); ! } ! } } Logger.root.setLevel(Level.INFO); --- 447,468 ---- Iterator> iter = loggers.values().iterator(); while (iter.hasNext()) { ! WeakReference ref; ! Logger logger; ! ref = iter.next(); ! if (ref != null) ! { ! logger = ref.get(); ! if (logger == null) ! iter.remove(); ! else if (logger != Logger.root) ! { ! logger.resetLogger(); ! logger.setLevel(null); ! } ! } } Logger.root.setLevel(Level.INFO); *************** public class LogManager *** 505,511 **** try { inputStream = new URL(url).openStream(); ! } catch (Exception e) { inputStream=null; --- 505,511 ---- try { inputStream = new URL(url).openStream(); ! } catch (Exception e) { inputStream=null; *************** public class LogManager *** 549,594 **** while (keys.hasMoreElements()) { ! String key = ((String) keys.nextElement()).trim(); ! String value = newProperties.getProperty(key); ! if (value == null) ! continue; ! value = value.trim(); ! if ("handlers".equals(key)) ! { ! // In Java 5 and earlier this was specified to be ! // whitespace-separated, but in reality it also accepted ! // commas (tomcat relied on this), and in Java 6 the ! // documentation was updated to fit the implementation. ! StringTokenizer tokenizer = new StringTokenizer(value, ! " \t\n\r\f,"); ! while (tokenizer.hasMoreTokens()) ! { ! String handlerName = tokenizer.nextToken(); Handler handler = (Handler) createInstance(handlerName, Handler.class, key); ! // Tomcat also relies on the implementation ignoring ! // items in 'handlers' which are not class names. ! if (handler != null) ! Logger.root.addHandler(handler); ! } ! } ! if (key.endsWith(".level")) ! { ! String loggerName = key.substring(0, key.length() - 6); ! Logger logger = getLogger(loggerName); ! if (logger == null) ! { ! logger = Logger.getLogger(loggerName); ! addLogger(logger); ! } Level level = null; ! try { level = Level.parse(value); } --- 549,594 ---- while (keys.hasMoreElements()) { ! String key = ((String) keys.nextElement()).trim(); ! String value = newProperties.getProperty(key); ! if (value == null) ! continue; ! value = value.trim(); ! if ("handlers".equals(key)) ! { ! // In Java 5 and earlier this was specified to be ! // whitespace-separated, but in reality it also accepted ! // commas (tomcat relied on this), and in Java 6 the ! // documentation was updated to fit the implementation. ! StringTokenizer tokenizer = new StringTokenizer(value, ! " \t\n\r\f,"); ! while (tokenizer.hasMoreTokens()) ! { ! String handlerName = tokenizer.nextToken(); Handler handler = (Handler) createInstance(handlerName, Handler.class, key); ! // Tomcat also relies on the implementation ignoring ! // items in 'handlers' which are not class names. ! if (handler != null) ! Logger.root.addHandler(handler); ! } ! } ! if (key.endsWith(".level")) ! { ! String loggerName = key.substring(0, key.length() - 6); ! Logger logger = getLogger(loggerName); ! if (logger == null) ! { ! logger = Logger.getLogger(loggerName); ! addLogger(logger); ! } Level level = null; ! try { level = Level.parse(value); } *************** public class LogManager *** 600,607 **** { logger.setLevel(level); } ! continue; ! } } /* The API specification does not talk about the --- 600,607 ---- { logger.setLevel(level); } ! continue; ! } } /* The API specification does not talk about the *************** public class LogManager *** 640,650 **** { try { ! return Integer.parseInt(getLogManager().getProperty(name)); } catch (Exception ex) { ! return defaultValue; } } --- 640,650 ---- { try { ! return Integer.parseInt(getLogManager().getProperty(name)); } catch (Exception ex) { ! return defaultValue; } } *************** public class LogManager *** 691,701 **** { try { ! return (Boolean.valueOf(getLogManager().getProperty(name))).booleanValue(); } catch (Exception ex) { ! return defaultValue; } } --- 691,701 ---- { try { ! return (Boolean.valueOf(getLogManager().getProperty(name))).booleanValue(); } catch (Exception ex) { ! return defaultValue; } } *************** public class LogManager *** 717,730 **** try { String value = getLogManager().getProperty(propertyName); ! if (value != null) ! return Level.parse(getLogManager().getProperty(propertyName)); else ! return defaultValue; } catch (Exception ex) { ! return defaultValue; } } --- 717,730 ---- try { String value = getLogManager().getProperty(propertyName); ! if (value != null) ! return Level.parse(getLogManager().getProperty(propertyName)); else ! return defaultValue; } catch (Exception ex) { ! return defaultValue; } } *************** public class LogManager *** 784,798 **** try { ! return defaultClass.newInstance(); } catch (java.lang.InstantiationException ex) { ! throw new RuntimeException(ex.getMessage()); } catch (java.lang.IllegalAccessException ex) { ! throw new RuntimeException(ex.getMessage()); } } --- 784,798 ---- try { ! return defaultClass.newInstance(); } catch (java.lang.InstantiationException ex) { ! throw new RuntimeException(ex.getMessage()); } catch (java.lang.IllegalAccessException ex) { ! throw new RuntimeException(ex.getMessage()); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/LogRecord.java gcc-4.6.0/libjava/classpath/java/util/logging/LogRecord.java *** gcc-4.5.2/libjava/classpath/java/util/logging/LogRecord.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/LogRecord.java Tue Jan 11 19:46:05 2011 *************** public class LogRecord *** 140,146 **** * * @param message the message text (which will be used as key * for looking up the localized message text ! * if a resource bundle has been associated). */ public LogRecord(Level level, String message) { --- 140,146 ---- * * @param message the message text (which will be used as key * for looking up the localized message text ! * if a resource bundle has been associated). */ public LogRecord(Level level, String message) { *************** public class LogRecord *** 182,188 **** { parameters = new Object[numParams]; for (int i = 0; i < numParams; i++) ! parameters[i] = in.readObject(); } } --- 182,188 ---- { parameters = new Object[numParams]; for (int i = 0; i < numParams; i++) ! parameters[i] = in.readObject(); } } *************** public class LogRecord *** 220,229 **** out.writeInt(parameters.length); for (int i = 0; i < parameters.length; i++) { ! if (parameters[i] == null) ! out.writeObject(null); ! else ! out.writeObject(parameters[i].toString()); } } } --- 220,229 ---- out.writeInt(parameters.length); for (int i = 0; i < parameters.length; i++) { ! if (parameters[i] == null) ! out.writeObject(null); ! else ! out.writeObject(parameters[i].toString()); } } } *************** public class LogRecord *** 331,341 **** { resourceBundleName = name; bundle = null; ! try { if (resourceBundleName != null) ! bundle = ResourceBundle.getBundle(resourceBundleName); } catch (java.util.MissingResourceException _) { --- 331,341 ---- { resourceBundleName = name; bundle = null; ! try { if (resourceBundleName != null) ! bundle = ResourceBundle.getBundle(resourceBundleName); } catch (java.util.MissingResourceException _) { *************** public class LogRecord *** 427,433 **** * parameter to some logging calls, and in certain cases, the * logging framework tries to determine an approximation * (which may or may not be accurate). ! * * @return the name of the class that issued the logging request, * or null if this information could not * be obtained. --- 427,433 ---- * parameter to some logging calls, and in certain cases, the * logging framework tries to determine an approximation * (which may or may not be accurate). ! * * @return the name of the class that issued the logging request, * or null if this information could not * be obtained. *************** public class LogRecord *** 450,456 **** * to the logging framework, applications should not modify it * anymore. Therefore, this method should only be called on * freshly constructed LogRecords. ! * * @param sourceClassName the name of the class that issued the * logging request, or null to indicate that * this information could not be obtained. --- 450,456 ---- * to the logging framework, applications should not modify it * anymore. Therefore, this method should only be called on * freshly constructed LogRecords. ! * * @param sourceClassName the name of the class that issued the * logging request, or null to indicate that * this information could not be obtained. *************** public class LogRecord *** 467,473 **** * parameter to some logging calls, and in certain cases, the * logging framework tries to determine an approximation * (which may or may not be accurate). ! * * @return the name of the method that issued the logging request, * or null if this information could not * be obtained. --- 467,473 ---- * parameter to some logging calls, and in certain cases, the * logging framework tries to determine an approximation * (which may or may not be accurate). ! * * @return the name of the method that issued the logging request, * or null if this information could not * be obtained. *************** public class LogRecord *** 490,496 **** * to the logging framework, applications should not modify it * anymore. Therefore, this method should only be called on * freshly constructed LogRecords. ! * * @param sourceMethodName the name of the method that issued the * logging request, or null to indicate that * this information could not be obtained. --- 490,496 ---- * to the logging framework, applications should not modify it * anymore. Therefore, this method should only be called on * freshly constructed LogRecords. ! * * @param sourceMethodName the name of the method that issued the * logging request, or null to indicate that * this information could not be obtained. *************** public class LogRecord *** 543,549 **** * * @param message the message text (which will be used as key * for looking up the localized message text ! * if a resource bundle has been associated). */ public void setMessage(String message) { --- 543,549 ---- * * @param message the message text (which will be used as key * for looking up the localized message text ! * if a resource bundle has been associated). */ public void setMessage(String message) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/Logger.java gcc-4.6.0/libjava/classpath/java/util/logging/Logger.java *** gcc-4.5.2/libjava/classpath/java/util/logging/Logger.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/logging/Logger.java Tue Jan 11 19:46:05 2011 *************** import java.security.PrivilegedAction; *** 65,71 **** * to perform any modifications to the logger. *

                            * FIXME: Write more documentation. ! * * @author Sascha Brawer (brawer@acm.org) */ public class Logger --- 65,71 ---- * to perform any modifications to the logger. *

                            * FIXME: Write more documentation. ! * * @author Sascha Brawer (brawer@acm.org) */ public class Logger *************** public class Logger *** 85,91 **** * to avoid deadlocks. Yeah, no kidding, we got them :) */ private static final Object[] lock = new Object[0]; ! static { // Our class might be initialized from an unprivileged context --- 85,91 ---- * to avoid deadlocks. Yeah, no kidding, we got them :) */ private static final Object[] lock = new Object[0]; ! static { // Our class might be initialized from an unprivileged context *************** public class Logger *** 159,165 **** * (with ResourceBundle for localization) or * {@link #getLogger(java.lang.String) getLogger} (without ResourceBundle), * respectively. ! * * @param name the name for the logger, for example "java.awt" or * "com.foo.bar". The name should be based on the name of the * package issuing log records and consist of dot-separated Java --- 159,165 ---- * (with ResourceBundle for localization) or * {@link #getLogger(java.lang.String) getLogger} (without ResourceBundle), * respectively. ! * * @param name the name for the logger, for example "java.awt" or * "com.foo.bar". The name should be based on the name of the * package issuing log records and consist of dot-separated Java *************** public class Logger *** 196,202 **** /** * Finds a registered logger for a subsystem, or creates one in case no logger * has been registered yet. ! * * @param name the name for the logger, for example "java.awt" or * "com.foo.bar". The name should be based on the name of the * package issuing log records and consist of dot-separated Java --- 196,202 ---- /** * Finds a registered logger for a subsystem, or creates one in case no logger * has been registered yet. ! * * @param name the name for the logger, for example "java.awt" or * "com.foo.bar". The name should be based on the name of the * package issuing log records and consist of dot-separated Java *************** public class Logger *** 232,238 **** * a different one than specified by resourceBundleName, an * IllegalArgumentException is thrown. * ! * * @param name the name for the logger, for example "java.awt" or * "org.gnu.foo". The name should be based on the name of the * package issuing log records and consist of dot-separated Java --- 232,238 ---- * a different one than specified by resourceBundleName, an * IllegalArgumentException is thrown. * ! * * @param name the name for the logger, for example "java.awt" or * "org.gnu.foo". The name should be based on the name of the * package issuing log records and consist of dot-separated Java *************** public class Logger *** 351,357 **** *

                            * The parent of the newly created logger will the the root logger, from which * the level threshold and the handlers are inherited. ! * * @param resourceBundleName the name of a resource bundle for localizing * messages, or null to indicate that messages do * not need to be localized. --- 351,357 ---- *

                            * The parent of the newly created logger will the the root logger, from which * the level threshold and the handlers are inherited. ! * * @param resourceBundleName the name of a resource bundle for localizing * messages, or null to indicate that messages do * not need to be localized. *************** public class Logger *** 372,378 **** /** * Returns the name of the resource bundle that is being used for localizing * messages. ! * * @return the name of the resource bundle used for localizing messages, or * null if the parent's resource bundle is used for * this purpose. --- 372,378 ---- /** * Returns the name of the resource bundle that is being used for localizing * messages. ! * * @return the name of the resource bundle used for localizing messages, or * null if the parent's resource bundle is used for * this purpose. *************** public class Logger *** 387,393 **** /** * Returns the resource bundle that is being used for localizing messages. ! * * @return the resource bundle used for localizing messages, or * null if the parent's resource bundle is used for * this purpose. --- 387,393 ---- /** * Returns the resource bundle that is being used for localizing messages. ! * * @return the resource bundle used for localizing messages, or * null if the parent's resource bundle is used for * this purpose. *************** public class Logger *** 405,411 **** * log records with a lower severity level will be discarded; a log record of * the same or a higher level will be published unless an installed * Filter decides to discard it. ! * * @return the severity level below which all log messages will be discarded, * or null if the logger inherits the threshold from * its parent. --- 405,411 ---- * log records with a lower severity level will be discarded; a log record of * the same or a higher level will be published unless an installed * Filter decides to discard it. ! * * @return the severity level below which all log messages will be discarded, * or null if the logger inherits the threshold from * its parent. *************** public class Logger *** 421,427 **** /** * Returns whether or not a message of the specified level would be logged by * this logger. ! * * @throws NullPointerException if level is null. */ public boolean isLoggable(Level level) --- 421,427 ---- /** * Returns whether or not a message of the specified level would be logged by * this logger. ! * * @throws NullPointerException if level is null. */ public boolean isLoggable(Level level) *************** public class Logger *** 443,449 **** * records with a lower severity level will be discarded immediately. A log * record of the same or a higher level will be published unless an installed * Filter decides to discard it. ! * * @param level the severity level below which all log messages will be * discarded, or null to indicate that the logger * should inherit the threshold from its parent. --- 443,449 ---- * records with a lower severity level will be discarded immediately. A log * record of the same or a higher level will be published unless an installed * Filter decides to discard it. ! * * @param level the severity level below which all log messages will be * discarded, or null to indicate that the logger * should inherit the threshold from its parent. *************** public class Logger *** 502,508 **** /** * Returns the name of this logger. ! * * @return the name of this logger, or null if the logger is * anonymous. */ --- 502,508 ---- /** * Returns the name of this logger. ! * * @return the name of this logger, or null if the logger is * anonymous. */ *************** public class Logger *** 528,534 **** * create a new LogRecord and pass it to this method. Therefore, subclasses * usually just need to override this single method for customizing the * logging behavior. ! * * @param record the log record to be inspected and possibly forwarded. */ public void log(LogRecord record) --- 528,534 ---- * create a new LogRecord and pass it to this method. Therefore, subclasses * usually just need to override this single method for customizing the * logging behavior. ! * * @param record the log record to be inspected and possibly forwarded. */ public void log(LogRecord record) *************** public class Logger *** 825,831 **** * understandable to an inexperienced, non-technical end user. Ideally, they * explain in simple words what actions the user can take in order to resolve * the problem. ! * * @see Level#SEVERE * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible --- 825,831 ---- * understandable to an inexperienced, non-technical end user. Ideally, they * explain in simple words what actions the user can take in order to resolve * the problem. ! * * @see Level#SEVERE * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible *************** public class Logger *** 847,853 **** * should be understandable to an inexperienced, non-technical end user. * Ideally, they explain in simple words what actions the user can take in * order to resolve the problem. ! * * @see Level#WARNING * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible --- 847,853 ---- * should be understandable to an inexperienced, non-technical end user. * Ideally, they explain in simple words what actions the user can take in * order to resolve the problem. ! * * @see Level#WARNING * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible *************** public class Logger *** 871,877 **** * used only for messages that are important to end users and system * administrators. Messages at this level should be understandable to an * inexperienced, non-technical user. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a --- 871,877 ---- * used only for messages that are important to end users and system * administrators. Messages at this level should be understandable to an * inexperienced, non-technical user. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a *************** public class Logger *** 890,896 **** * Logs a message with severity level CONFIG. {@link Level#CONFIG} is intended * for static configuration messages, for example about the windowing * environment, the operating system version, etc. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a --- 890,896 ---- * Logs a message with severity level CONFIG. {@link Level#CONFIG} is intended * for static configuration messages, for example about the windowing * environment, the operating system version, etc. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a *************** public class Logger *** 910,916 **** * messages that are relevant for developers using the component generating * log messages. Examples include minor, recoverable failures, or possible * inefficiencies. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a --- 910,916 ---- * messages that are relevant for developers using the component generating * log messages. Examples include minor, recoverable failures, or possible * inefficiencies. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a *************** public class Logger *** 929,935 **** * Logs a message with severity level FINER. {@link Level#FINER} is intended * for rather detailed tracing, for example entering a method, returning from * a method, or throwing an exception. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a --- 929,935 ---- * Logs a message with severity level FINER. {@link Level#FINER} is intended * for rather detailed tracing, for example entering a method, returning from * a method, or throwing an exception. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a *************** public class Logger *** 948,954 **** * Logs a message with severity level FINEST. {@link Level#FINEST} is intended * for highly detailed tracing, for example reaching a certain point inside * the body of a method. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a --- 948,954 ---- * Logs a message with severity level FINEST. {@link Level#FINEST} is intended * for highly detailed tracing, for example reaching a certain point inside * the body of a method. ! * * @param message the message text, also used as look-up key if the logger is * localizing messages with a resource bundle. While it is possible * to pass null, this is not recommended, since a *************** public class Logger *** 966,972 **** /** * Adds a handler to the set of handlers that get notified when a log record * is to be published. ! * * @param handler the handler to be added. * @throws NullPointerException if handler is null. * @throws SecurityException if this logger is not anonymous, a security --- 966,972 ---- /** * Adds a handler to the set of handlers that get notified when a log record * is to be published. ! * * @param handler the handler to be added. * @throws NullPointerException if handler is null. * @throws SecurityException if this logger is not anonymous, a security *************** public class Logger *** 1001,1007 **** /** * Removes a handler from the set of handlers that get notified when a log * record is to be published. ! * * @param handler the handler to be removed. * @throws SecurityException if this logger is not anonymous, a security * manager exists, and the caller is not granted the permission to --- 1001,1007 ---- /** * Removes a handler from the set of handlers that get notified when a log * record is to be published. ! * * @param handler the handler to be removed. * @throws SecurityException if this logger is not anonymous, a security * manager exists, and the caller is not granted the permission to *************** public class Logger *** 1053,1059 **** /** * Returns whether or not this Logger forwards log records to handlers * registered for its parent loggers. ! * * @return false if this Logger sends log records merely to * Handlers registered with itself; true if this Logger * sends log records not only to Handlers registered with itself, but --- 1053,1059 ---- /** * Returns whether or not this Logger forwards log records to handlers * registered for its parent loggers. ! * * @return false if this Logger sends log records merely to * Handlers registered with itself; true if this Logger * sends log records not only to Handlers registered with itself, but *************** public class Logger *** 1070,1076 **** /** * Sets whether or not this Logger forwards log records to handlers registered * for its parent loggers. ! * * @param useParentHandlers false to let this Logger send log * records merely to Handlers registered with itself; * true to let this Logger send log records not only --- 1070,1076 ---- /** * Sets whether or not this Logger forwards log records to handlers registered * for its parent loggers. ! * * @param useParentHandlers false to let this Logger send log * records merely to Handlers registered with itself; * true to let this Logger send log records not only *************** public class Logger *** 1101,1107 **** /** * Returns the parent of this logger. By default, the parent is assigned by * the LogManager by inspecting the logger's name. ! * * @return the parent of this logger (as detemined by the LogManager by * inspecting logger names), the root logger if no other logger has a * name which is a prefix of this logger's name, or null --- 1101,1107 ---- /** * Returns the parent of this logger. By default, the parent is assigned by * the LogManager by inspecting the logger's name. ! * * @return the parent of this logger (as detemined by the LogManager by * inspecting logger names), the root logger if no other logger has a * name which is a prefix of this logger's name, or null *************** public class Logger *** 1121,1127 **** * loggers reflects the hierarchical logger namespace. Basically, this method * should not be public at all, but the GNU implementation follows the API * specification. ! * * @throws NullPointerException if parent is null. * @throws SecurityException if this logger is not anonymous, a security * manager exists, and the caller is not granted the permission to --- 1121,1127 ---- * loggers reflects the hierarchical logger namespace. Basically, this method * should not be public at all, but the GNU implementation follows the API * specification. ! * * @throws NullPointerException if parent is null. * @throws SecurityException if this logger is not anonymous, a security * manager exists, and the caller is not granted the permission to *************** public class Logger *** 1155,1161 **** /** * Gets the StackTraceElement of the first class that is not this class. That * should be the initial caller of a logging method. ! * * @return caller of the initial logging method or null if unknown. */ private StackTraceElement getCallerStackFrame() --- 1155,1161 ---- /** * Gets the StackTraceElement of the first class that is not this class. That * should be the initial caller of a logging method. ! * * @return caller of the initial logging method or null if unknown. */ private StackTraceElement getCallerStackFrame() diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/LoggingMXBean.java gcc-4.6.0/libjava/classpath/java/util/logging/LoggingMXBean.java *** gcc-4.5.2/libjava/classpath/java/util/logging/LoggingMXBean.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/java/util/logging/LoggingMXBean.java Tue Jan 11 19:46:05 2011 *************** import java.util.List; *** 44,50 **** * This interface represents the management interface for logging. * There is a single logging bean per VM instance, which can be * retrieved via {@link LogManager#getLoggingMXBean()}. ! * * @since 1.5 */ public interface LoggingMXBean --- 44,50 ---- * This interface represents the management interface for logging. * There is a single logging bean per VM instance, which can be * retrieved via {@link LogManager#getLoggingMXBean()}. ! * * @since 1.5 */ public interface LoggingMXBean *************** public interface LoggingMXBean *** 73,79 **** /** * Sets the logging level for a particular logger. ! * * @param logger the name of the logger * @param level the name of the new logging level, or null * @throws IllegalArgumentException if the level is not --- 73,79 ---- /** * Sets the logging level for a particular logger. ! * * @param logger the name of the logger * @param level the name of the new logging level, or null * @throws IllegalArgumentException if the level is not diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/LoggingPermission.java gcc-4.6.0/libjava/classpath/java/util/logging/LoggingPermission.java *** gcc-4.5.2/libjava/classpath/java/util/logging/LoggingPermission.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/LoggingPermission.java Tue Jan 11 19:46:05 2011 *************** public final class LoggingPermission *** 59,75 **** public LoggingPermission(String name, String actions) { super("control", ""); ! if (!"control".equals(name)) { throw new IllegalArgumentException( "name of LoggingPermission must be \"control\""); } ! if ((actions != null) && (actions.length() != 0)) { throw new IllegalArgumentException( ! "actions of LoggingPermissions must be null or empty"); ! } } } --- 59,75 ---- public LoggingPermission(String name, String actions) { super("control", ""); ! if (!"control".equals(name)) { throw new IllegalArgumentException( "name of LoggingPermission must be \"control\""); } ! if ((actions != null) && (actions.length() != 0)) { throw new IllegalArgumentException( ! "actions of LoggingPermissions must be null or empty"); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/MemoryHandler.java gcc-4.6.0/libjava/classpath/java/util/logging/MemoryHandler.java *** gcc-4.5.2/libjava/classpath/java/util/logging/MemoryHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/MemoryHandler.java Tue Jan 11 19:46:05 2011 *************** public class MemoryHandler *** 122,140 **** public MemoryHandler() { this((Handler) LogManager.getInstanceProperty( ! "java.util.logging.MemoryHandler.target", ! Handler.class, /* default */ null), ! LogManager.getIntPropertyClamped( ! "java.util.logging.MemoryHandler.size", ! /* default */ 1000, ! /* minimum value */ 1, ! /* maximum value */ Integer.MAX_VALUE), ! LogManager.getLevelProperty( ! "java.util.logging.MemoryHandler.push", ! /* default push level */ Level.SEVERE)); } ! /** * Constructs a MemoryHandler for keeping a circular * buffer of LogRecords, given some parameters. The values of the --- 122,140 ---- public MemoryHandler() { this((Handler) LogManager.getInstanceProperty( ! "java.util.logging.MemoryHandler.target", ! Handler.class, /* default */ null), ! LogManager.getIntPropertyClamped( ! "java.util.logging.MemoryHandler.size", ! /* default */ 1000, ! /* minimum value */ 1, ! /* maximum value */ Integer.MAX_VALUE), ! LogManager.getLevelProperty( ! "java.util.logging.MemoryHandler.push", ! /* default push level */ Level.SEVERE)); } ! /** * Constructs a MemoryHandler for keeping a circular * buffer of LogRecords, given some parameters. The values of the *************** public class MemoryHandler *** 162,168 **** * in those cases. */ public MemoryHandler(Handler target, int size, Level pushLevel) ! { if ((target == null) || (size <= 0) || (pushLevel == null)) throw new IllegalArgumentException(); --- 162,168 ---- * in those cases. */ public MemoryHandler(Handler target, int size, Level pushLevel) ! { if ((target == null) || (size <= 0) || (pushLevel == null)) throw new IllegalArgumentException(); *************** public class MemoryHandler *** 235,243 **** else { for (i = position; i < buffer.length; i++) ! target.publish(buffer[i]); for (i = 0; i < position; i++) ! target.publish(buffer[i]); } numPublished = 0; --- 235,243 ---- else { for (i = position; i < buffer.length; i++) ! target.publish(buffer[i]); for (i = 0; i < position; i++) ! target.publish(buffer[i]); } numPublished = 0; *************** public class MemoryHandler *** 298,304 **** target.close(); } ! /** * Returns the push level threshold for this Handler. --- 298,304 ---- target.close(); } ! /** * Returns the push level threshold for this Handler. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/SocketHandler.java gcc-4.6.0/libjava/classpath/java/util/logging/SocketHandler.java *** gcc-4.5.2/libjava/classpath/java/util/logging/SocketHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/SocketHandler.java Tue Jan 11 19:46:05 2011 *************** public class SocketHandler *** 104,113 **** throws java.io.IOException { this(LogManager.getLogManager().getProperty("java.util.logging.SocketHandler.host"), ! getPortNumber()); } ! /** * Constructs a SocketHandler that publishes log * records to a TCP/IP socket. With the exception of the internet --- 104,113 ---- throws java.io.IOException { this(LogManager.getLogManager().getProperty("java.util.logging.SocketHandler.host"), ! getPortNumber()); } ! /** * Constructs a SocketHandler that publishes log * records to a TCP/IP socket. With the exception of the internet *************** public class SocketHandler *** 131,140 **** throws java.io.IOException { super(createSocket(host, port), ! "java.util.logging.SocketHandler", ! /* default level */ Level.ALL, ! /* formatter */ null, ! /* default formatter */ XMLFormatter.class); } --- 131,140 ---- throws java.io.IOException { super(createSocket(host, port), ! "java.util.logging.SocketHandler", ! /* default level */ Level.ALL, ! /* formatter */ null, ! /* default formatter */ XMLFormatter.class); } *************** public class SocketHandler *** 218,221 **** flush(); } } - --- 218,220 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/StreamHandler.java gcc-4.6.0/libjava/classpath/java/util/logging/StreamHandler.java *** gcc-4.5.2/libjava/classpath/java/util/logging/StreamHandler.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/logging/StreamHandler.java Tue Jan 11 19:46:05 2011 *************** public class StreamHandler *** 114,120 **** public StreamHandler(OutputStream out, Formatter formatter) { this(out, "java.util.logging.StreamHandler", Level.INFO, ! formatter, SimpleFormatter.class); } --- 114,120 ---- public StreamHandler(OutputStream out, Formatter formatter) { this(out, "java.util.logging.StreamHandler", Level.INFO, ! formatter, SimpleFormatter.class); } *************** public class StreamHandler *** 125,131 **** Formatter formatter, Class defaultFormatterClass) { this.level = LogManager.getLevelProperty(propertyPrefix + ".level", ! defaultLevel); this.filter = (Filter) LogManager.getInstanceProperty( propertyPrefix + ".filter", --- 125,131 ---- Formatter formatter, Class defaultFormatterClass) { this.level = LogManager.getLevelProperty(propertyPrefix + ".level", ! defaultLevel); this.filter = (Filter) LogManager.getInstanceProperty( propertyPrefix + ".filter", *************** public class StreamHandler *** 136,149 **** this.formatter = formatter; else this.formatter = (Formatter) LogManager.getInstanceProperty( ! propertyPrefix + ".formatter", /* must be instance of */ Formatter.class, /* default: new instance of */ defaultFormatterClass); try { String enc = LogManager.getLogManager().getProperty(propertyPrefix ! + ".encoding"); /* make sure enc actually is a valid encoding */ if ((enc != null) && (enc.length() > 0)) --- 136,149 ---- this.formatter = formatter; else this.formatter = (Formatter) LogManager.getInstanceProperty( ! propertyPrefix + ".formatter", /* must be instance of */ Formatter.class, /* default: new instance of */ defaultFormatterClass); try { String enc = LogManager.getLogManager().getProperty(propertyPrefix ! + ".encoding"); /* make sure enc actually is a valid encoding */ if ((enc != null) && (enc.length() > 0)) *************** public class StreamHandler *** 163,172 **** } catch (UnsupportedEncodingException uex) { ! /* This should never happen, since the validity of the encoding ! * name has been checked above. ! */ ! throw new RuntimeException(uex.getMessage()); } } } --- 163,172 ---- } catch (UnsupportedEncodingException uex) { ! /* This should never happen, since the validity of the encoding ! * name has been checked above. ! */ ! throw new RuntimeException(uex.getMessage()); } } } *************** public class StreamHandler *** 263,271 **** * null would throw an exception. */ if (encoding == null) ! writer = new OutputStreamWriter(out); else ! writer = new OutputStreamWriter(out, encoding); } } --- 263,271 ---- * null would throw an exception. */ if (encoding == null) ! writer = new OutputStreamWriter(out); else ! writer = new OutputStreamWriter(out, encoding); } } *************** public class StreamHandler *** 330,336 **** * would depend on the exact behavior in this rather obscure, * erroneous case -- especially since the API specification does not * prescribe what is supposed to happen. ! * * @param record the log event to be published. */ public void publish(LogRecord record) --- 330,336 ---- * would depend on the exact behavior in this rather obscure, * erroneous case -- especially since the API specification does not * prescribe what is supposed to happen. ! * * @param record the log event to be published. */ public void publish(LogRecord record) *************** public class StreamHandler *** 348,360 **** } catch (java.io.IOException ex) { ! reportError(null, ex, ErrorManager.WRITE_FAILURE); ! return; } catch (Exception ex) { ! reportError(null, ex, ErrorManager.GENERIC_FAILURE); ! return; } streamState = STATE_PUBLISHED; --- 348,360 ---- } catch (java.io.IOException ex) { ! reportError(null, ex, ErrorManager.WRITE_FAILURE); ! return; } catch (Exception ex) { ! reportError(null, ex, ErrorManager.GENERIC_FAILURE); ! return; } streamState = STATE_PUBLISHED; *************** public class StreamHandler *** 449,455 **** /** * Closes this StreamHandler after having forced any * data that may have been buffered to the underlying output ! * device. * *

                            As soon as close has been called, * a Handler should not be used anymore. Attempts --- 449,455 ---- /** * Closes this StreamHandler after having forced any * data that may have been buffered to the underlying output ! * device. * *

                            As soon as close has been called, * a Handler should not be used anymore. Attempts *************** public class StreamHandler *** 496,515 **** if (writer != null) { ! if (formatter != null) ! { ! /* Even if the StreamHandler has never published a record, ! * it emits head and tail upon closing. An earlier version ! * of the GNU Classpath implementation did not emitted ! * anything. However, this had caused XML log files to be ! * entirely empty instead of containing no log records. ! */ ! if (streamState == STATE_FRESH) writer.write(formatter.getHead(this)); ! if (streamState != STATE_CLOSED) ! writer.write(formatter.getTail(this)); ! } ! streamState = STATE_CLOSED; writer.close(); } } --- 496,515 ---- if (writer != null) { ! if (formatter != null) ! { ! /* Even if the StreamHandler has never published a record, ! * it emits head and tail upon closing. An earlier version ! * of the GNU Classpath implementation did not emitted ! * anything. However, this had caused XML log files to be ! * entirely empty instead of containing no log records. ! */ ! if (streamState == STATE_FRESH) writer.write(formatter.getHead(this)); ! if (streamState != STATE_CLOSED) ! writer.write(formatter.getTail(this)); ! } ! streamState = STATE_CLOSED; writer.close(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/logging/XMLFormatter.java gcc-4.6.0/libjava/classpath/java/util/logging/XMLFormatter.java *** gcc-4.5.2/libjava/classpath/java/util/logging/XMLFormatter.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/logging/XMLFormatter.java Tue Jan 11 19:46:05 2011 *************** public class XMLFormatter *** 75,81 **** */ private static final String lineSep = SimpleFormatter.lineSep; ! /** * A DateFormat for emitting time in the ISO 8601 format. * Since the API specification of SimpleDateFormat does not talk --- 75,81 ---- */ private static final String lineSep = SimpleFormatter.lineSep; ! /** * A DateFormat for emitting time in the ISO 8601 format. * Since the API specification of SimpleDateFormat does not talk *************** public class XMLFormatter *** 129,157 **** switch (c) { case '&': ! buf.append("&"); ! break; case '<': ! buf.append("<"); ! break; case '>': ! buf.append(">"); ! break; default: ! if (((c >= 0x20) && (c <= 0x7e)) ! || (c == /* line feed */ 10) ! || (c == /* carriage return */ 13)) ! buf.append(c); ! else ! { ! buf.append("&#"); ! buf.append((int) c); ! buf.append(';'); ! } ! break; } /* switch (c) */ } /* for i */ --- 129,157 ---- switch (c) { case '&': ! buf.append("&"); ! break; case '<': ! buf.append("<"); ! break; case '>': ! buf.append(">"); ! break; default: ! if (((c >= 0x20) && (c <= 0x7e)) ! || (c == /* line feed */ 10) ! || (c == /* carriage return */ 13)) ! buf.append(c); ! else ! { ! buf.append("&#"); ! buf.append((int) c); ! buf.append(';'); ! } ! break; } /* switch (c) */ } /* for i */ *************** public class XMLFormatter *** 190,200 **** Object[] params = record.getParameters(); ResourceBundle bundle = record.getResourceBundle(); String message; ! buf.append(""); buf.append(lineSep); ! ! appendTag(buf, 1, "date", iso8601.format(new Date(millis))); appendTag(buf, 1, "millis", millis); appendTag(buf, 1, "sequence", record.getSequenceNumber()); --- 190,200 ---- Object[] params = record.getParameters(); ResourceBundle bundle = record.getResourceBundle(); String message; ! buf.append(""); buf.append(lineSep); ! ! appendTag(buf, 1, "date", iso8601.format(new Date(millis))); appendTag(buf, 1, "millis", millis); appendTag(buf, 1, "sequence", record.getSequenceNumber()); *************** public class XMLFormatter *** 346,352 **** */ if (encoding == null) encoding = "UTF-8"; ! /* On Windows XP localized for Swiss German (this is one of * my [Sascha Brawer's] test machines), the default encoding * has the canonical name "windows-1252". The "historical" name --- 346,352 ---- */ if (encoding == null) encoding = "UTF-8"; ! /* On Windows XP localized for Swiss German (this is one of * my [Sascha Brawer's] test machines), the default encoding * has the canonical name "windows-1252". The "historical" name diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/prefs/AbstractPreferences.java gcc-4.6.0/libjava/classpath/java/util/prefs/AbstractPreferences.java *** gcc-4.5.2/libjava/classpath/java/util/prefs/AbstractPreferences.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/prefs/AbstractPreferences.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public abstract class AbstractPreference *** 118,124 **** /** * Creates a new AbstractPreferences node with the given parent and name. ! * * @param parent the parent of this node or null when this is the root node * @param name the name of this node, can not be null, only 80 characters * maximum, must be empty when parent is null and cannot --- 118,124 ---- /** * Creates a new AbstractPreferences node with the given parent and name. ! * * @param parent the parent of this node or null when this is the root node * @param name the name of this node, can not be null, only 80 characters * maximum, must be empty when parent is null and cannot *************** public abstract class AbstractPreference *** 174,182 **** */ public boolean isUserNode() { AbstractPreferences root = this; ! while (root.parent != null) ! root = root.parent; ! return root == Preferences.userRoot(); } /** --- 174,182 ---- */ public boolean isUserNode() { AbstractPreferences root = this; ! while (root.parent != null) ! root = root.parent; ! return root == Preferences.userRoot(); } /** *************** public abstract class AbstractPreference *** 238,244 **** // First get all cached node names childrenNames.addAll(childCache.keySet()); ! // Then add any others String names[] = childrenNamesSpi(); for (int i = 0; i < names.length; i++) { --- 238,244 ---- // First get all cached node names childrenNames.addAll(childCache.keySet()); ! // Then add any others String names[] = childrenNamesSpi(); for (int i = 0; i < names.length; i++) { *************** public abstract class AbstractPreference *** 339,345 **** if (child == null) { if (childName.length() > MAX_NAME_LENGTH) ! throw new IllegalArgumentException(childName); // Not in childCache yet so create a new sub node child = childSpi(childName); --- 339,345 ---- if (child == null) { if (childName.length() > MAX_NAME_LENGTH) ! throw new IllegalArgumentException(childName); // Not in childCache yet so create a new sub node child = childSpi(childName); *************** public abstract class AbstractPreference *** 457,463 **** for (int i=0; i < names.length; i++) if (name.equals(names[i])) return childSpi(name); ! // No child with that name found return null; } --- 457,463 ---- for (int i=0; i < names.length; i++) if (name.equals(names[i])) return childSpi(name); ! // No child with that name found return null; } *************** public abstract class AbstractPreference *** 523,530 **** * This method locks this node and checks if the node has not been * removed, if it has been removed it throws an exception, then it returns * the result of calling keysSpi(). ! * ! * @exception BackingStoreException when the backing store cannot be * reached * @exception IllegalStateException if this node has been removed */ --- 523,530 ---- * This method locks this node and checks if the node has not been * removed, if it has been removed it throws an exception, then it returns * the result of calling keysSpi(). ! * ! * @exception BackingStoreException when the backing store cannot be * reached * @exception IllegalStateException if this node has been removed */ *************** public abstract class AbstractPreference *** 597,603 **** if ("false".equalsIgnoreCase(value)) return false; ! return defaultVal; } --- 597,603 ---- if ("false".equalsIgnoreCase(value)) return false; ! return defaultVal; } *************** public abstract class AbstractPreference *** 625,631 **** else return defaultVal; } ! /** * Helper method for decoding a Base64 string as an byte array. * Returns null on encoding error. This method does not allow any other --- 625,631 ---- else return defaultVal; } ! /** * Helper method for decoding a Base64 string as an byte array. * Returns null on encoding error. This method does not allow any other *************** public abstract class AbstractPreference *** 807,813 **** if (preferenceListeners != null) fire(new PreferenceChangeEvent(this, key, value)); } ! } /** --- 807,813 ---- if (preferenceListeners != null) fire(new PreferenceChangeEvent(this, key, value)); } ! } /** *************** public abstract class AbstractPreference *** 948,954 **** /** * Removes the preferences entry from this preferences node. ! *

                            * The result will be immediately visible in this VM, but may not be * immediately written to the backing store. *

                            --- 948,954 ---- /** * Removes the preferences entry from this preferences node. ! *

                            * The result will be immediately visible in this VM, but may not be * immediately written to the backing store. *

                            *************** public abstract class AbstractPreference *** 1040,1046 **** public void sync() throws BackingStoreException { flushNode(true); } ! /** * Private helper method that locks this node and calls either --- 1040,1046 ---- public void sync() throws BackingStoreException { flushNode(true); } ! /** * Private helper method that locks this node and calls either *************** public abstract class AbstractPreference *** 1247,1253 **** listener.preferenceChange(event); } }; ! Executor executor = Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory()); executor.execute(dispatcher); --- 1247,1253 ---- listener.preferenceChange(event); } }; ! Executor executor = Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory()); executor.execute(dispatcher); *************** public abstract class AbstractPreference *** 1273,1279 **** listener.childRemoved(event); } }; ! Executor executor = Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory()); executor.execute(dispatcher); --- 1273,1279 ---- listener.childRemoved(event); } }; ! Executor executor = Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory()); executor.execute(dispatcher); *************** public abstract class AbstractPreference *** 1316,1326 **** * not been removed. May throw an exception when the backing store cannot * be accessed. * ! * @exception BackingStoreException when the backing store cannot be * reached */ protected abstract String[] keysSpi() throws BackingStoreException; ! /** * Returns the value associated with the key in this preferences node or * null when the key does not exist in this preferences node. --- 1316,1326 ---- * not been removed. May throw an exception when the backing store cannot * be accessed. * ! * @exception BackingStoreException when the backing store cannot be * reached */ protected abstract String[] keysSpi() throws BackingStoreException; ! /** * Returns the value associated with the key in this preferences node or * null when the key does not exist in this preferences node. diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/prefs/NodeChangeEvent.java gcc-4.6.0/libjava/classpath/java/util/prefs/NodeChangeEvent.java *** gcc-4.5.2/libjava/classpath/java/util/prefs/NodeChangeEvent.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/util/prefs/NodeChangeEvent.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.EventObject; *** 58,65 **** public class NodeChangeEvent extends EventObject { // We have this to placate the compiler. ! private static final long serialVersionUID =8068949086596572957L; ! /** * The sub node that was added or removed. * Defined transient just like EventObject.source since --- 58,65 ---- public class NodeChangeEvent extends EventObject { // We have this to placate the compiler. ! private static final long serialVersionUID =8068949086596572957L; ! /** * The sub node that was added or removed. * Defined transient just like EventObject.source since *************** public class NodeChangeEvent extends Eve *** 102,108 **** { throw new NotSerializableException("LineEvent is not serializable"); } ! private void writeObject(ObjectOutputStream oos) throws IOException { --- 102,108 ---- { throw new NotSerializableException("LineEvent is not serializable"); } ! private void writeObject(ObjectOutputStream oos) throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/prefs/NodeChangeListener.java gcc-4.6.0/libjava/classpath/java/util/prefs/NodeChangeListener.java *** gcc-4.5.2/libjava/classpath/java/util/prefs/NodeChangeListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/prefs/NodeChangeListener.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/prefs/PreferenceChangeEvent.java gcc-4.6.0/libjava/classpath/java/util/prefs/PreferenceChangeEvent.java *** gcc-4.5.2/libjava/classpath/java/util/prefs/PreferenceChangeEvent.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/util/prefs/PreferenceChangeEvent.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class PreferenceChangeEvent exten *** 62,68 **** // We have this to placate the compiler. private static final long serialVersionUID = 793724513368024975L; ! /** * The key of the changed entry. */ --- 62,68 ---- // We have this to placate the compiler. private static final long serialVersionUID = 793724513368024975L; ! /** * The key of the changed entry. */ *************** public class PreferenceChangeEvent exten *** 116,122 **** { throw new NotSerializableException("LineEvent is not serializable"); } ! private void writeObject(ObjectOutputStream oos) throws IOException { --- 116,122 ---- { throw new NotSerializableException("LineEvent is not serializable"); } ! private void writeObject(ObjectOutputStream oos) throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/prefs/PreferenceChangeListener.java gcc-4.6.0/libjava/classpath/java/util/prefs/PreferenceChangeListener.java *** gcc-4.5.2/libjava/classpath/java/util/prefs/PreferenceChangeListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/prefs/PreferenceChangeListener.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/prefs/Preferences.java gcc-4.6.0/libjava/classpath/java/util/prefs/Preferences.java *** gcc-4.5.2/libjava/classpath/java/util/prefs/Preferences.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/prefs/Preferences.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public abstract class Preferences { *** 213,240 **** { Iterator iter = ServiceFactory.lookupProviders (PreferencesFactory.class, null); ! if (iter != null && iter.hasNext()) factory = (PreferencesFactory) iter.next(); } ! // Still no factory? Use our default. if (factory == null) ! { try ! { Class cls = Class.forName (defaultFactoryClass); factory = (PreferencesFactory) cls.newInstance(); } ! catch (Exception e) ! { throw new RuntimeException ("Couldn't load default factory" + " '"+ defaultFactoryClass +"'", e); } } } ! return factory; } --- 213,240 ---- { Iterator iter = ServiceFactory.lookupProviders (PreferencesFactory.class, null); ! if (iter != null && iter.hasNext()) factory = (PreferencesFactory) iter.next(); } ! // Still no factory? Use our default. if (factory == null) ! { try ! { Class cls = Class.forName (defaultFactoryClass); factory = (PreferencesFactory) cls.newInstance(); } ! catch (Exception e) ! { throw new RuntimeException ("Couldn't load default factory" + " '"+ defaultFactoryClass +"'", e); } } } ! return factory; } *************** public abstract class Preferences { *** 305,311 **** * @throws InvalidPreferencesFormatException if the XML is not properly * formatted */ ! public static void importPreferences(InputStream is) throws InvalidPreferencesFormatException, IOException { --- 305,311 ---- * @throws InvalidPreferencesFormatException if the XML is not properly * formatted */ ! public static void importPreferences(InputStream is) throws InvalidPreferencesFormatException, IOException { *************** public abstract class Preferences { *** 318,324 **** /** * Returns the absolute path name of this preference node. ! * The absolute path name of a node is the path name of its parent node * plus a '/' plus its own name. If the node is the root node and has no * parent then its name is "" and its absolute path name is "/". */ --- 318,324 ---- /** * Returns the absolute path name of this preference node. ! * The absolute path name of a node is the path name of its parent node * plus a '/' plus its own name. If the node is the root node and has no * parent then its name is "" and its absolute path name is "/". */ *************** public abstract class Preferences { *** 400,407 **** // abstract methods (export) /** ! * Export this node, but not its descendants, as XML to the ! * indicated output stream. The XML will be encoded using UTF-8 * and will use a specified document type:
                            * <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
                            * @param os the output stream to which the XML is sent --- 400,407 ---- // abstract methods (export) /** ! * Export this node, but not its descendants, as XML to the ! * indicated output stream. The XML will be encoded using UTF-8 * and will use a specified document type:
                            * <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
                            * @param os the output stream to which the XML is sent *************** public abstract class Preferences { *** 414,421 **** IOException; /** ! * Export this node and all its descendants as XML to the ! * indicated output stream. The XML will be encoded using UTF-8 * and will use a specified document type:
                            * <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
                            * @param os the output stream to which the XML is sent --- 414,421 ---- IOException; /** ! * Export this node and all its descendants as XML to the ! * indicated output stream. The XML will be encoded using UTF-8 * and will use a specified document type:
                            * <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
                            * @param os the output stream to which the XML is sent *************** public abstract class Preferences { *** 670,676 **** *

                            * Note that according to the specification an implementation may delay * removal of the node from the backing store till the flush() ! * method is called. But the flush() method may throw a * IllegalStateException when the node has been removed. * So most implementations will actually remove the node and any subnodes * from the backing store immediatly. --- 670,676 ---- *

                            * Note that according to the specification an implementation may delay * removal of the node from the backing store till the flush() ! * method is called. But the flush() method may throw a * IllegalStateException when the node has been removed. * So most implementations will actually remove the node and any subnodes * from the backing store immediatly. *************** public abstract class Preferences { *** 694,697 **** public abstract void removePreferenceChangeListener (PreferenceChangeListener listener); } - --- 694,696 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/prefs/PreferencesFactory.java gcc-4.6.0/libjava/classpath/java/util/prefs/PreferencesFactory.java *** gcc-4.5.2/libjava/classpath/java/util/prefs/PreferencesFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/prefs/PreferencesFactory.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/regex/MatchResult.java gcc-4.6.0/libjava/classpath/java/util/regex/MatchResult.java *** gcc-4.5.2/libjava/classpath/java/util/regex/MatchResult.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/util/regex/MatchResult.java Tue Jan 11 19:46:05 2011 *************** public interface MatchResult *** 48,72 **** { /** Returns the index just after the last matched character. */ int end(); ! /** * Returns the index just after the last matched character of the * given sub-match group. * @param group the sub-match group ! */ int end(int group); /** Returns the substring of the input which was matched. */ String group(); ! ! /** * Returns the substring of the input which was matched by the * given sub-match group. * @param group the sub-match group */ String group(int group); ! /** Returns the number of sub-match groups in the matching pattern. */ int groupCount(); /** Returns the index of the first character of the match. */ --- 48,72 ---- { /** Returns the index just after the last matched character. */ int end(); ! /** * Returns the index just after the last matched character of the * given sub-match group. * @param group the sub-match group ! */ int end(int group); /** Returns the substring of the input which was matched. */ String group(); ! ! /** * Returns the substring of the input which was matched by the * given sub-match group. * @param group the sub-match group */ String group(int group); ! /** Returns the number of sub-match groups in the matching pattern. */ int groupCount(); /** Returns the index of the first character of the match. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/regex/Matcher.java gcc-4.6.0/libjava/classpath/java/util/regex/Matcher.java *** gcc-4.5.2/libjava/classpath/java/util/regex/Matcher.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/regex/Matcher.java Tue Oct 12 15:55:12 2010 *************** public final class Matcher implements Ma *** 70,78 **** * The end of the region of the input on which to match. */ private int regionEnd; ! /** ! * True if the match process should look beyond the * region marked by regionStart to regionEnd when * performing lookAhead, lookBehind and boundary * matching. --- 70,78 ---- * The end of the region of the input on which to match. */ private int regionEnd; ! /** ! * True if the match process should look beyond the * region marked by regionStart to regionEnd when * performing lookAhead, lookBehind and boundary * matching. *************** public final class Matcher implements Ma *** 101,107 **** transparentBounds = false; anchoringBounds = 0; } ! /** * @param sb The target string buffer * @param replacement The replacement string --- 101,107 ---- transparentBounds = false; anchoringBounds = 0; } ! /** * @param sb The target string buffer * @param replacement The replacement string *************** public final class Matcher implements Ma *** 116,124 **** { assertMatchOp(); sb.append(input.subSequence(appendPosition, ! match.getStartIndex()).toString()); sb.append(RE.getReplacement(replacement, match, ! RE.REG_REPLACE_USE_BACKSLASHESCAPE)); appendPosition = match.getEndIndex(); return this; } --- 116,124 ---- { assertMatchOp(); sb.append(input.subSequence(appendPosition, ! match.getStartIndex()).toString()); sb.append(RE.getReplacement(replacement, match, ! RE.REG_REPLACE_USE_BACKSLASHESCAPE)); appendPosition = match.getEndIndex(); return this; } *************** public final class Matcher implements Ma *** 131,137 **** sb.append(input.subSequence(appendPosition, input.length()).toString()); return sb; } ! /** * @exception IllegalStateException If no match has yet been attempted, * or if the previous match operation failed --- 131,137 ---- sb.append(input.subSequence(appendPosition, input.length()).toString()); return sb; } ! /** * @exception IllegalStateException If no match has yet been attempted, * or if the previous match operation failed *************** public final class Matcher implements Ma *** 142,148 **** assertMatchOp(); return match.getEndIndex(); } ! /** * @param group The index of a capturing group in this matcher's pattern * --- 142,148 ---- assertMatchOp(); return match.getEndIndex(); } ! /** * @param group The index of a capturing group in this matcher's pattern * *************** public final class Matcher implements Ma *** 157,163 **** assertMatchOp(); return match.getEndIndex(group); } ! public boolean find () { boolean first = (match == null); --- 157,163 ---- assertMatchOp(); return match.getEndIndex(group); } ! public boolean find () { boolean first = (match == null); *************** public final class Matcher implements Ma *** 165,192 **** match = pattern.getRE().getMatch(inputCharIndexed, position, anchoringBounds); else match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), ! position, anchoringBounds); if (match != null) { ! int endIndex = match.getEndIndex(); ! // Are we stuck at the same position? ! if (!first && endIndex == position) ! { ! match = null; ! // Not at the end of the input yet? ! if (position < input.length() - 1) ! { ! position++; ! return find(position); ! } ! else ! return false; ! } ! position = endIndex; ! return true; } return false; ! } /** * @param start The index to start the new pattern matching --- 165,192 ---- match = pattern.getRE().getMatch(inputCharIndexed, position, anchoringBounds); else match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), ! position, anchoringBounds); if (match != null) { ! int endIndex = match.getEndIndex(); ! // Are we stuck at the same position? ! if (!first && endIndex == position) ! { ! match = null; ! // Not at the end of the input yet? ! if (position < input.length() - 1) ! { ! position++; ! return find(position); ! } ! else ! return false; ! } ! position = endIndex; ! return true; } return false; ! } /** * @param start The index to start the new pattern matching *************** public final class Matcher implements Ma *** 200,214 **** match = pattern.getRE().getMatch(inputCharIndexed, start, anchoringBounds); else match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), ! start, anchoringBounds); if (match != null) { ! position = match.getEndIndex(); ! return true; } return false; } ! /** * @exception IllegalStateException If no match has yet been attempted, * or if the previous match operation failed --- 200,214 ---- match = pattern.getRE().getMatch(inputCharIndexed, start, anchoringBounds); else match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), ! start, anchoringBounds); if (match != null) { ! position = match.getEndIndex(); ! return true; } return false; } ! /** * @exception IllegalStateException If no match has yet been attempted, * or if the previous match operation failed *************** public final class Matcher implements Ma *** 218,224 **** assertMatchOp(); return match.toString(); } ! /** * @param group The index of a capturing group in this matcher's pattern * --- 218,224 ---- assertMatchOp(); return match.toString(); } ! /** * @param group The index of a capturing group in this matcher's pattern * *************** public final class Matcher implements Ma *** 242,248 **** reset(); // Semantics might not quite match return pattern.getRE().substitute(input, replacement, position, ! RE.REG_REPLACE_USE_BACKSLASHESCAPE); } /** --- 242,248 ---- reset(); // Semantics might not quite match return pattern.getRE().substitute(input, replacement, position, ! RE.REG_REPLACE_USE_BACKSLASHESCAPE); } /** *************** public final class Matcher implements Ma *** 252,287 **** { reset(); return pattern.getRE().substituteAll(input, replacement, position, ! RE.REG_REPLACE_USE_BACKSLASHESCAPE); } ! public int groupCount () { return pattern.getRE().getNumSubs(); } ! public boolean lookingAt () { if (transparentBounds || (regionStart == 0 && regionEnd == input.length())) match = pattern.getRE().getMatch(inputCharIndexed, regionStart, ! anchoringBounds|RE.REG_FIX_STARTING_POSITION|RE.REG_ANCHORINDEX); else match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), 0, ! anchoringBounds|RE.REG_FIX_STARTING_POSITION); if (match != null) { ! if (match.getStartIndex() == 0) ! { ! position = match.getEndIndex(); ! return true; ! } ! match = null; } return false; } ! /** ! * Attempts to match the entire input sequence against the pattern. * * If the match succeeds then more information can be obtained via the * start, end, and group methods. --- 252,287 ---- { reset(); return pattern.getRE().substituteAll(input, replacement, position, ! RE.REG_REPLACE_USE_BACKSLASHESCAPE); } ! public int groupCount () { return pattern.getRE().getNumSubs(); } ! public boolean lookingAt () { if (transparentBounds || (regionStart == 0 && regionEnd == input.length())) match = pattern.getRE().getMatch(inputCharIndexed, regionStart, ! anchoringBounds|RE.REG_FIX_STARTING_POSITION|RE.REG_ANCHORINDEX); else match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), 0, ! anchoringBounds|RE.REG_FIX_STARTING_POSITION); if (match != null) { ! if (match.getStartIndex() == 0) ! { ! position = match.getEndIndex(); ! return true; ! } ! match = null; } return false; } ! /** ! * Attempts to match the entire input sequence against the pattern. * * If the match succeeds then more information can be obtained via the * start, end, and group methods. *************** public final class Matcher implements Ma *** 294,316 **** { if (transparentBounds || (regionStart == 0 && regionEnd == input.length())) match = pattern.getRE().getMatch(inputCharIndexed, regionStart, ! anchoringBounds|RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION|RE.REG_ANCHORINDEX); else match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), 0, ! anchoringBounds|RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION); if (match != null) { ! if (match.getStartIndex() == 0) ! { ! position = match.getEndIndex(); ! if (position == input.length()) ! return true; ! } ! match = null; } return false; } ! /** * Returns the Pattern that is interpreted by this Matcher */ --- 294,316 ---- { if (transparentBounds || (regionStart == 0 && regionEnd == input.length())) match = pattern.getRE().getMatch(inputCharIndexed, regionStart, ! anchoringBounds|RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION|RE.REG_ANCHORINDEX); else match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), 0, ! anchoringBounds|RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION); if (match != null) { ! if (match.getStartIndex() == 0) ! { ! position = match.getEndIndex(); ! if (position == input.length()) ! return true; ! } ! match = null; } return false; } ! /** * Returns the Pattern that is interpreted by this Matcher */ *************** public final class Matcher implements Ma *** 318,324 **** { return pattern; } ! /** * Resets the internal state of the matcher, including * resetting the region to its default state of encompassing --- 318,324 ---- { return pattern; } ! /** * Resets the internal state of the matcher, including * resetting the region to its default state of encompassing *************** public final class Matcher implements Ma *** 340,346 **** appendPosition = 0; return this; } ! /** * Resets the internal state of the matcher, including * resetting the region to its default state of encompassing --- 340,346 ---- appendPosition = 0; return this; } ! /** * Resets the internal state of the matcher, including * resetting the region to its default state of encompassing *************** public final class Matcher implements Ma *** 360,366 **** this.inputCharIndexed = RE.makeCharIndexed(input, 0); return reset(); } ! /** * @return the index of a capturing group in this matcher's pattern * --- 360,366 ---- this.inputCharIndexed = RE.makeCharIndexed(input, 0); return reset(); } ! /** * @return the index of a capturing group in this matcher's pattern * *************** public final class Matcher implements Ma *** 493,499 **** { return regionStart; } ! /** * The end of the region on which to perform matches (exclusive). * --- 493,499 ---- { return regionStart; } ! /** * The end of the region on which to perform matches (exclusive). * *************** public final class Matcher implements Ma *** 603,609 **** public MatchResult toMatchResult() { Matcher snapshot = new Matcher(pattern, input); ! snapshot.match = (REMatch) match.clone(); return snapshot; } --- 603,610 ---- public MatchResult toMatchResult() { Matcher snapshot = new Matcher(pattern, input); ! if (match != null) ! snapshot.match = (REMatch) match.clone(); return snapshot; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/regex/Pattern.java gcc-4.6.0/libjava/classpath/java/util/regex/Pattern.java *** gcc-4.5.2/libjava/classpath/java/util/regex/Pattern.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/regex/Pattern.java Tue Jan 11 19:46:05 2011 *************** import java.util.ArrayList; *** 46,59 **** /** ! * Compiled regular expression ready to be applied. * * @since 1.4 */ public final class Pattern implements Serializable { private static final long serialVersionUID = 5073258162644648461L; ! public static final int CANON_EQ = 128; public static final int CASE_INSENSITIVE = 2; public static final int COMMENTS = 4; --- 46,59 ---- /** ! * Compiled regular expression ready to be applied. * * @since 1.4 */ public final class Pattern implements Serializable { private static final long serialVersionUID = 5073258162644648461L; ! public static final int CANON_EQ = 128; public static final int CASE_INSENSITIVE = 2; public static final int COMMENTS = 4; *************** public final class Pattern implements Se *** 61,67 **** public static final int MULTILINE = 8; public static final int UNICODE_CASE = 64; public static final int UNIX_LINES = 1; ! private final String regex; private final int flags; --- 61,67 ---- public static final int MULTILINE = 8; public static final int UNICODE_CASE = 64; public static final int UNIX_LINES = 1; ! private final String regex; private final int flags; *************** public final class Pattern implements Se *** 93,122 **** if ((flags & UNIX_LINES) != 0) { ! // Use a syntax set with \n for linefeeds? ! syntax = new RESyntax(syntax); ! syntax.setLineSeparator("\n"); } if ((flags & COMMENTS) != 0) { ! gnuFlags |= RE.REG_X_COMMENTS; } try { ! this.re = new RE(regex, gnuFlags, syntax); } catch (REException e) { ! PatternSyntaxException pse; ! pse = new PatternSyntaxException(e.getMessage(), ! regex, e.getPosition()); ! pse.initCause(e); ! throw pse; } } ! // package private accessor method RE getRE() { --- 93,122 ---- if ((flags & UNIX_LINES) != 0) { ! // Use a syntax set with \n for linefeeds? ! syntax = new RESyntax(syntax); ! syntax.setLineSeparator("\n"); } if ((flags & COMMENTS) != 0) { ! gnuFlags |= RE.REG_X_COMMENTS; } try { ! this.re = new RE(regex, gnuFlags, syntax); } catch (REException e) { ! PatternSyntaxException pse; ! pse = new PatternSyntaxException(e.getMessage(), ! regex, e.getPosition()); ! pse.initCause(e); ! throw pse; } } ! // package private accessor method RE getRE() { *************** public final class Pattern implements Se *** 133,139 **** { return compile(regex, 0); } ! /** * @param regex The regular expression * @param flags The match flags, a bit mask --- 133,139 ---- { return compile(regex, 0); } ! /** * @param regex The regular expression * @param flags The match flags, a bit mask *************** public final class Pattern implements Se *** 148,173 **** // FIXME: check which flags are really accepted if ((flags & ~0xEF) != 0) throw new IllegalArgumentException (); ! ! return new Pattern (regex, flags); } ! public int flags () { return this.flags; } ! /** * @param regex The regular expression * @param input The character sequence to be matched * * @exception PatternSyntaxException If the expression's syntax is invalid */ ! public static boolean matches (String regex, CharSequence input) { return compile(regex).matcher(input).matches(); } ! /** * @param input The character sequence to be matched */ --- 148,173 ---- // FIXME: check which flags are really accepted if ((flags & ~0xEF) != 0) throw new IllegalArgumentException (); ! ! return new Pattern (regex, flags); } ! public int flags () { return this.flags; } ! /** * @param regex The regular expression * @param input The character sequence to be matched * * @exception PatternSyntaxException If the expression's syntax is invalid */ ! public static boolean matches (String regex, CharSequence input) { return compile(regex).matcher(input).matches(); } ! /** * @param input The character sequence to be matched */ *************** public final class Pattern implements Se *** 175,181 **** { return new Matcher(this, input); } ! /** * @param input The character sequence to be matched */ --- 175,181 ---- { return new Matcher(this, input); } ! /** * @param input The character sequence to be matched */ *************** public final class Pattern implements Se *** 183,189 **** { return split(input, 0); } ! /** * @param input The character sequence to be matched * @param limit The result threshold --- 183,189 ---- { return split(input, 0); } ! /** * @param input The character sequence to be matched * @param limit The result threshold *************** public final class Pattern implements Se *** 200,259 **** while (matched && (limit <= 0 || count < limit - 1)) { ! ++count; ! end = matcher.start(); ! if (start == end) ! empties++; ! else ! { ! while (empties > 0) ! { ! list.add(""); ! empties--; ! } ! String text = input.subSequence(start, end).toString(); ! list.add(text); ! } ! start = matcher.end(); ! matched = matcher.find(); } // We matched nothing. if (!matched && count == 0) return new String[] { input.toString() }; ! // Is the last token empty? boolean emptyLast = (start == input.length()); // Can/Must we add empties or an extra last token at the end? if (list.size() < limit || limit < 0 || (limit == 0 && !emptyLast)) { ! if (limit > list.size()) ! { ! int max = limit - list.size(); ! empties = (empties > max) ? max : empties; ! } ! while (empties > 0) ! { ! list.add(""); ! empties--; ! } } // last token at end if (limit != 0 || (limit == 0 && !emptyLast)) { ! String t = input.subSequence(start, input.length()).toString(); ! if ("".equals(t) && limit == 0) ! { /* Don't add. */ } ! else ! list.add(t); } return list.toArray(new String[list.size()]); } ! public String pattern () { return regex; --- 200,259 ---- while (matched && (limit <= 0 || count < limit - 1)) { ! ++count; ! end = matcher.start(); ! if (start == end) ! empties++; ! else ! { ! while (empties > 0) ! { ! list.add(""); ! empties--; ! } ! String text = input.subSequence(start, end).toString(); ! list.add(text); ! } ! start = matcher.end(); ! matched = matcher.find(); } // We matched nothing. if (!matched && count == 0) return new String[] { input.toString() }; ! // Is the last token empty? boolean emptyLast = (start == input.length()); // Can/Must we add empties or an extra last token at the end? if (list.size() < limit || limit < 0 || (limit == 0 && !emptyLast)) { ! if (limit > list.size()) ! { ! int max = limit - list.size(); ! empties = (empties > max) ? max : empties; ! } ! while (empties > 0) ! { ! list.add(""); ! empties--; ! } } // last token at end if (limit != 0 || (limit == 0 && !emptyLast)) { ! String t = input.subSequence(start, input.length()).toString(); ! if ("".equals(t) && limit == 0) ! { /* Don't add. */ } ! else ! list.add(t); } return list.toArray(new String[list.size()]); } ! public String pattern () { return regex; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/regex/PatternSyntaxException.java gcc-4.6.0/libjava/classpath/java/util/regex/PatternSyntaxException.java *** gcc-4.5.2/libjava/classpath/java/util/regex/PatternSyntaxException.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/regex/PatternSyntaxException.java Tue Jan 11 19:46:05 2011 *************** public class PatternSyntaxException exte *** 58,64 **** * The original pattern that contained the syntax error. */ private final String pattern; ! /** * Index of the first character in the String that was probably invalid, * or -1 when unknown. --- 58,64 ---- * The original pattern that contained the syntax error. */ private final String pattern; ! /** * Index of the first character in the String that was probably invalid, * or -1 when unknown. *************** public class PatternSyntaxException exte *** 74,81 **** * probably invalid, or -1 when unknown. */ public PatternSyntaxException(String description, ! String pattern, ! int index) { super(description); this.desc = description; --- 74,81 ---- * probably invalid, or -1 when unknown. */ public PatternSyntaxException(String description, ! String pattern, ! int index) { super(description); this.desc = description; *************** public class PatternSyntaxException exte *** 123,133 **** sb.append(pattern); if (index != -1) { ! sb.append(lineSep); ! sb.append('\t'); ! for (int i=0; i * The specification for Adler32 may be found in RFC 1950. --- 45,52 ---- */ /** ! * Computes Adler32 checksum for a stream of data. An Adler32 ! * checksum is not as reliable as a CRC32 checksum, but a lot faster to * compute. *

                            * The specification for Adler32 may be found in RFC 1950. *************** package java.util.zip; *** 60,66 **** * (excluding any dictionary data) computed according to Adler-32 * algorithm. This algorithm is a 32-bit extension and improvement * of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 ! * standard. *

                            * Adler-32 is composed of two sums accumulated per byte: s1 is * the sum of all bytes, s2 is the sum of all s1 values. Both sums --- 60,66 ---- * (excluding any dictionary data) computed according to Adler-32 * algorithm. This algorithm is a 32-bit extension and improvement * of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 ! * standard. *

                            * Adler-32 is composed of two sums accumulated per byte: s1 is * the sum of all bytes, s2 is the sum of all s1 values. Both sums *************** public class Adler32 implements Checksum *** 103,115 **** private int checksum; //we do all in int. //Note that java doesn't have unsigned integers, ! //so we have to be careful with what arithmetic ! //we do. We return the checksum as a long to //avoid sign confusion. /** ! * Creates a new instance of the Adler32 class. ! * The checksum starts off with a value of 1. */ public Adler32 () { --- 103,115 ---- private int checksum; //we do all in int. //Note that java doesn't have unsigned integers, ! //so we have to be careful with what arithmetic ! //we do. We return the checksum as a long to //avoid sign confusion. /** ! * Creates a new instance of the Adler32 class. ! * The checksum starts off with a value of 1. */ public Adler32 () { *************** public class Adler32 implements Checksum *** 119,131 **** /** * Resets the Adler32 checksum to the initial value. */ ! public void reset () { ! checksum = 1; //Initialize to 1 } /** ! * Updates the checksum with the byte b. * * @param bval the data value to add. The high byte of the int is ignored. */ --- 119,131 ---- /** * Resets the Adler32 checksum to the initial value. */ ! public void reset () { ! checksum = 1; //Initialize to 1 } /** ! * Updates the checksum with the byte b. * * @param bval the data value to add. The high byte of the int is ignored. */ *************** public class Adler32 implements Checksum *** 135,150 **** //would rather not have that overhead int s1 = checksum & 0xffff; int s2 = checksum >>> 16; ! s1 = (s1 + (bval & 0xFF)) % BASE; s2 = (s1 + s2) % BASE; ! checksum = (s2 << 16) + s1; } /** ! * Updates the checksum with the bytes taken from the array. ! * * @param buffer an array of bytes */ public void update (byte[] buffer) --- 135,150 ---- //would rather not have that overhead int s1 = checksum & 0xffff; int s2 = checksum >>> 16; ! s1 = (s1 + (bval & 0xFF)) % BASE; s2 = (s1 + s2) % BASE; ! checksum = (s2 << 16) + s1; } /** ! * Updates the checksum with the bytes taken from the array. ! * * @param buffer an array of bytes */ public void update (byte[] buffer) *************** public class Adler32 implements Checksum *** 153,160 **** } /** ! * Updates the checksum with the bytes taken from the array. ! * * @param buf an array of bytes * @param off the start of the data used for this update * @param len the number of bytes to use for this update --- 153,160 ---- } /** ! * Updates the checksum with the bytes taken from the array. ! * * @param buf an array of bytes * @param off the start of the data used for this update * @param len the number of bytes to use for this update *************** public class Adler32 implements Checksum *** 167,197 **** while (len > 0) { ! // We can defer the modulo operation: ! // s1 maximally grows from 65521 to 65521 + 255 * 3800 ! // s2 maximally grows by 3800 * median(s1) = 2090079800 < 2^31 ! int n = 3800; ! if (n > len) ! n = len; ! len -= n; ! while (--n >= 0) ! { ! s1 = s1 + (buf[off++] & 0xFF); ! s2 = s2 + s1; ! } ! s1 %= BASE; ! s2 %= BASE; } /*Old implementation, borrowed from somewhere: int n; ! while (len-- > 0) { ! s1 = (s1 + (bs[offset++] & 0xff)) % BASE; s2 = (s2 + s1) % BASE; }*/ ! checksum = (s2 << 16) | s1; } --- 167,197 ---- while (len > 0) { ! // We can defer the modulo operation: ! // s1 maximally grows from 65521 to 65521 + 255 * 3800 ! // s2 maximally grows by 3800 * median(s1) = 2090079800 < 2^31 ! int n = 3800; ! if (n > len) ! n = len; ! len -= n; ! while (--n >= 0) ! { ! s1 = s1 + (buf[off++] & 0xFF); ! s2 = s2 + s1; ! } ! s1 %= BASE; ! s2 %= BASE; } /*Old implementation, borrowed from somewhere: int n; ! while (len-- > 0) { ! s1 = (s1 + (bs[offset++] & 0xff)) % BASE; s2 = (s2 + s1) % BASE; }*/ ! checksum = (s2 << 16) | s1; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/CRC32.java gcc-4.6.0/libjava/classpath/java/util/zip/CRC32.java *** gcc-4.5.2/libjava/classpath/java/util/zip/CRC32.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/CRC32.java Tue Jan 11 19:46:05 2011 *************** public class CRC32 implements Checksum *** 71,85 **** int[] crc_table = new int[256]; for (int n = 0; n < 256; n++) { ! int c = n; ! for (int k = 8; --k >= 0; ) ! { ! if ((c & 1) != 0) ! c = 0xedb88320 ^ (c >>> 1); ! else ! c = c >>> 1; ! } ! crc_table[n] = c; } return crc_table; } --- 71,85 ---- int[] crc_table = new int[256]; for (int n = 0; n < 256; n++) { ! int c = n; ! for (int k = 8; --k >= 0; ) ! { ! if ((c & 1) != 0) ! c = 0xedb88320 ^ (c >>> 1); ! else ! c = c >>> 1; ! } ! crc_table[n] = c; } return crc_table; } *************** public class CRC32 implements Checksum *** 98,104 **** public void reset () { crc = 0; } /** ! * Updates the checksum with the int bval. * * @param bval (the byte is taken as the lower 8 bits of bval) */ --- 98,104 ---- public void reset () { crc = 0; } /** ! * Updates the checksum with the int bval. * * @param bval (the byte is taken as the lower 8 bits of bval) */ diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/CheckedInputStream.java gcc-4.6.0/libjava/classpath/java/util/zip/CheckedInputStream.java *** gcc-4.5.2/libjava/classpath/java/util/zip/CheckedInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/CheckedInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class CheckedInputStream extends *** 118,130 **** long s = 0; while (n > 0) { ! int r = in.read(buf, 0, min); ! if (r == -1) ! break; ! n -= r; ! s += r; ! min = (int) Math.min(n, 1024); ! sum.update(buf, 0, r); } return s; --- 118,130 ---- long s = 0; while (n > 0) { ! int r = in.read(buf, 0, min); ! if (r == -1) ! break; ! n -= r; ! s += r; ! min = (int) Math.min(n, 1024); ! sum.update(buf, 0, r); } return s; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/CheckedOutputStream.java gcc-4.6.0/libjava/classpath/java/util/zip/CheckedOutputStream.java *** gcc-4.5.2/libjava/classpath/java/util/zip/CheckedOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/CheckedOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/Deflater.java gcc-4.6.0/libjava/classpath/java/util/zip/Deflater.java *** gcc-4.5.2/libjava/classpath/java/util/zip/Deflater.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/zip/Deflater.java Tue Jan 11 19:46:05 2011 *************** package java.util.zip; *** 41,50 **** * This is the Deflater class. The deflater class compresses input * with the deflate algorithm described in RFC 1951. It has several * compression levels and three different strategies described below. ! * * This class is not thread safe. This is inherent in the API, due * to the split of deflate and setInput. ! * * @author Jochen Hoenicke * @author Tom Tromey */ --- 41,50 ---- * This is the Deflater class. The deflater class compresses input * with the deflate algorithm described in RFC 1951. It has several * compression levels and three different strategies described below. ! * * This class is not thread safe. This is inherent in the API, due * to the split of deflate and setInput. ! * * @author Jochen Hoenicke * @author Tom Tromey */ *************** public class Deflater *** 52,62 **** { /** * The best and slowest compression level. This tries to find very ! * long and distant string repetitions. */ public static final int BEST_COMPRESSION = 9; /** ! * The worst but fastest compression level. */ public static final int BEST_SPEED = 1; /** --- 52,62 ---- { /** * The best and slowest compression level. This tries to find very ! * long and distant string repetitions. */ public static final int BEST_COMPRESSION = 9; /** ! * The worst but fastest compression level. */ public static final int BEST_SPEED = 1; /** *************** public class Deflater *** 78,87 **** */ public static final int FILTERED = 1; ! /** * This strategy will not look for string repetitions at all. It * only encodes with Huffman trees (which means, that more common ! * characters get a smaller encoding. */ public static final int HUFFMAN_ONLY = 2; --- 78,87 ---- */ public static final int FILTERED = 1; ! /** * This strategy will not look for string repetitions at all. It * only encodes with Huffman trees (which means, that more common ! * characters get a smaller encoding. */ public static final int HUFFMAN_ONLY = 2; *************** public class Deflater *** 123,135 **** * (6) FINISHED_STATE is entered, when everything has been flushed to the * internal pending output buffer. * (7) At any time (7) ! * */ private static final int IS_SETDICT = 0x01; private static final int IS_FLUSHING = 0x04; private static final int IS_FINISHING = 0x08; ! private static final int INIT_STATE = 0x00; private static final int SETDICT_STATE = 0x01; private static final int INIT_FINISHING_STATE = 0x08; --- 123,135 ---- * (6) FINISHED_STATE is entered, when everything has been flushed to the * internal pending output buffer. * (7) At any time (7) ! * */ private static final int IS_SETDICT = 0x01; private static final int IS_FLUSHING = 0x04; private static final int IS_FINISHING = 0x08; ! private static final int INIT_STATE = 0x00; private static final int SETDICT_STATE = 0x01; private static final int INIT_FINISHING_STATE = 0x08; *************** public class Deflater *** 151,157 **** /** The total bytes of output written. */ private long totalOut; ! /** The pending output. */ private DeflaterPending pending; --- 151,157 ---- /** The total bytes of output written. */ private long totalOut; ! /** The pending output. */ private DeflaterPending pending; *************** public class Deflater *** 169,175 **** /** * Creates a new deflater with given compression level. * @param lvl the compression level, a value between NO_COMPRESSION ! * and BEST_COMPRESSION, or DEFAULT_COMPRESSION. * @exception IllegalArgumentException if lvl is out of range. */ public Deflater(int lvl) --- 169,175 ---- /** * Creates a new deflater with given compression level. * @param lvl the compression level, a value between NO_COMPRESSION ! * and BEST_COMPRESSION, or DEFAULT_COMPRESSION. * @exception IllegalArgumentException if lvl is out of range. */ public Deflater(int lvl) *************** public class Deflater *** 180,186 **** /** * Creates a new deflater with given compression level. * @param lvl the compression level, a value between NO_COMPRESSION ! * and BEST_COMPRESSION. * @param nowrap true, iff we should suppress the deflate header at the * beginning and the adler checksum at the end of the output. This is * useful for the GZIP format. --- 180,186 ---- /** * Creates a new deflater with given compression level. * @param lvl the compression level, a value between NO_COMPRESSION ! * and BEST_COMPRESSION. * @param nowrap true, iff we should suppress the deflate header at the * beginning and the adler checksum at the end of the output. This is * useful for the GZIP format. *************** public class Deflater *** 201,226 **** reset(); } ! /** * Resets the deflater. The deflater acts afterwards as if it was * just created with the same compression level and strategy as it ! * had before. */ ! public void reset() { state = (noHeader ? BUSY_STATE : INIT_STATE); totalOut = 0; pending.reset(); engine.reset(); } ! /** * Frees all objects allocated by the compressor. There's no * reason to call this, since you can just rely on garbage * collection. Exists only for compatibility against Sun's JDK, * where the compressor allocates native memory. * If you call any method (even reset) afterwards the behaviour is ! * undefined. */ public void end() { --- 201,226 ---- reset(); } ! /** * Resets the deflater. The deflater acts afterwards as if it was * just created with the same compression level and strategy as it ! * had before. */ ! public void reset() { state = (noHeader ? BUSY_STATE : INIT_STATE); totalOut = 0; pending.reset(); engine.reset(); } ! /** * Frees all objects allocated by the compressor. There's no * reason to call this, since you can just rely on garbage * collection. Exists only for compatibility against Sun's JDK, * where the compressor allocates native memory. * If you call any method (even reset) afterwards the behaviour is ! * undefined. */ public void end() { *************** public class Deflater *** 229,235 **** state = CLOSED_STATE; } ! /** * Gets the current adler checksum of the data that was processed so * far. */ --- 229,235 ---- state = CLOSED_STATE; } ! /** * Gets the current adler checksum of the data that was processed so * far. */ *************** public class Deflater *** 238,244 **** return engine.getAdler(); } ! /** * Gets the number of input bytes processed so far. */ public int getTotalIn() --- 238,244 ---- return engine.getAdler(); } ! /** * Gets the number of input bytes processed so far. */ public int getTotalIn() *************** public class Deflater *** 246,252 **** return (int) engine.getTotalIn(); } ! /** * Gets the number of input bytes processed so far. * @since 1.5 */ --- 246,252 ---- return (int) engine.getTotalIn(); } ! /** * Gets the number of input bytes processed so far. * @since 1.5 */ *************** public class Deflater *** 255,261 **** return engine.getTotalIn(); } ! /** * Gets the number of output bytes so far. */ public int getTotalOut() --- 255,261 ---- return engine.getTotalIn(); } ! /** * Gets the number of output bytes so far. */ public int getTotalOut() *************** public class Deflater *** 263,269 **** return (int) totalOut; } ! /** * Gets the number of output bytes so far. * @since 1.5 */ --- 263,269 ---- return (int) totalOut; } ! /** * Gets the number of output bytes so far. * @since 1.5 */ *************** public class Deflater *** 272,278 **** return totalOut; } ! /** * Finalizes this object. */ protected void finalize() --- 272,278 ---- return totalOut; } ! /** * Finalizes this object. */ protected void finalize() *************** public class Deflater *** 280,286 **** /* Exists solely for compatibility. We don't have any native state. */ } ! /** * Flushes the current input block. Further calls to deflate() will * produce enough output to inflate everything in the current input * block. This is not part of Sun's JDK so I have made it package --- 280,286 ---- /* Exists solely for compatibility. We don't have any native state. */ } ! /** * Flushes the current input block. Further calls to deflate() will * produce enough output to inflate everything in the current input * block. This is not part of Sun's JDK so I have made it package *************** public class Deflater *** 291,297 **** state |= IS_FLUSHING; } ! /** * Finishes the deflater with the current input block. It is an error * to give more input after this method was called. This method must * be called to force all bytes to be flushed. --- 291,297 ---- state |= IS_FLUSHING; } ! /** * Finishes the deflater with the current input block. It is an error * to give more input after this method was called. This method must * be called to force all bytes to be flushed. *************** public class Deflater *** 300,306 **** state |= IS_FLUSHING | IS_FINISHING; } ! /** * Returns true iff the stream was finished and no more output bytes * are available. */ --- 300,306 ---- state |= IS_FLUSHING | IS_FINISHING; } ! /** * Returns true iff the stream was finished and no more output bytes * are available. */ *************** public class Deflater *** 314,320 **** * You should then call setInput().
                            * * NOTE: This method can also return true when the stream ! * was finished. */ public boolean needsInput() { --- 314,320 ---- * You should then call setInput().
                            * * NOTE: This method can also return true when the stream ! * was finished. */ public boolean needsInput() { *************** public class Deflater *** 344,350 **** * true again. * @param input the buffer containing the input data. * @param off the start of the data. ! * @param len the length of the data. * @exception IllegalStateException if the buffer was finished() or ended() * or if previous input is still pending. */ --- 344,350 ---- * true again. * @param input the buffer containing the input data. * @param off the start of the data. ! * @param len the length of the data. * @exception IllegalStateException if the buffer was finished() or ended() * or if previous input is still pending. */ *************** public class Deflater *** 355,365 **** engine.setInput(input, off, len); } ! /** * Sets the compression level. There is no guarantee of the exact * position of the change, but if you call this when needsInput is * true the change of compression level will occur somewhere near ! * before the end of the so far given input. * @param lvl the new compression level. */ public void setLevel(int lvl) --- 355,365 ---- engine.setInput(input, off, len); } ! /** * Sets the compression level. There is no guarantee of the exact * position of the change, but if you call this when needsInput is * true the change of compression level will occur somewhere near ! * before the end of the so far given input. * @param lvl the new compression level. */ public void setLevel(int lvl) *************** public class Deflater *** 372,383 **** if (level != lvl) { ! level = lvl; ! engine.setLevel(lvl); } } ! /** * Sets the compression strategy. Strategy is one of * DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact * position where the strategy is changed, the same as for --- 372,383 ---- if (level != lvl) { ! level = lvl; ! engine.setLevel(lvl); } } ! /** * Sets the compression strategy. Strategy is one of * DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact * position where the strategy is changed, the same as for *************** public class Deflater *** 387,400 **** public void setStrategy(int stgy) { if (stgy != DEFAULT_STRATEGY && stgy != FILTERED ! && stgy != HUFFMAN_ONLY) throw new IllegalArgumentException(); engine.setStrategy(stgy); } /** ! * Deflates the current input block to the given array. It returns ! * the number of bytes compressed, or 0 if either * needsInput() or finished() returns true or length is zero. * @param output the buffer where to write the compressed data. */ --- 387,400 ---- public void setStrategy(int stgy) { if (stgy != DEFAULT_STRATEGY && stgy != FILTERED ! && stgy != HUFFMAN_ONLY) throw new IllegalArgumentException(); engine.setStrategy(stgy); } /** ! * Deflates the current input block to the given array. It returns ! * the number of bytes compressed, or 0 if either * needsInput() or finished() returns true or length is zero. * @param output the buffer where to write the compressed data. */ *************** public class Deflater *** 404,418 **** } /** ! * Deflates the current input block to the given array. It returns ! * the number of bytes compressed, or 0 if either * needsInput() or finished() returns true or length is zero. * @param output the buffer where to write the compressed data. * @param offset the offset into the output array. * @param length the maximum number of bytes that may be written. * @exception IllegalStateException if end() was called. * @exception IndexOutOfBoundsException if offset and/or length ! * don't match the array length. */ public int deflate(byte[] output, int offset, int length) { --- 404,418 ---- } /** ! * Deflates the current input block to the given array. It returns ! * the number of bytes compressed, or 0 if either * needsInput() or finished() returns true or length is zero. * @param output the buffer where to write the compressed data. * @param offset the offset into the output array. * @param length the maximum number of bytes that may be written. * @exception IllegalStateException if end() was called. * @exception IndexOutOfBoundsException if offset and/or length ! * don't match the array length. */ public int deflate(byte[] output, int offset, int length) { *************** public class Deflater *** 423,500 **** if (state < BUSY_STATE) { ! /* output header */ ! int header = (DEFLATED + ! ((DeflaterConstants.MAX_WBITS - 8) << 4)) << 8; ! int level_flags = (level - 1) >> 1; ! if (level_flags < 0 || level_flags > 3) ! level_flags = 3; ! header |= level_flags << 6; ! if ((state & IS_SETDICT) != 0) ! /* Dictionary was set */ ! header |= DeflaterConstants.PRESET_DICT; ! header += 31 - (header % 31); ! pending.writeShortMSB(header); ! if ((state & IS_SETDICT) != 0) ! { ! int chksum = engine.getAdler(); ! engine.resetAdler(); ! pending.writeShortMSB(chksum >> 16); ! pending.writeShortMSB(chksum & 0xffff); ! } ! state = BUSY_STATE | (state & (IS_FLUSHING | IS_FINISHING)); } for (;;) { ! int count = pending.flush(output, offset, length); ! offset += count; ! totalOut += count; ! length -= count; ! if (length == 0 || state == FINISHED_STATE) ! break; ! if (!engine.deflate((state & IS_FLUSHING) != 0, ! (state & IS_FINISHING) != 0)) ! { ! if (state == BUSY_STATE) ! /* We need more input now */ ! return origLength - length; ! else if (state == FLUSHING_STATE) ! { ! if (level != NO_COMPRESSION) ! { ! /* We have to supply some lookahead. 8 bit lookahead ! * are needed by the zlib inflater, and we must fill ! * the next byte, so that all bits are flushed. ! */ ! int neededbits = 8 + ((-pending.getBitCount()) & 7); ! while (neededbits > 0) ! { ! /* write a static tree block consisting solely of ! * an EOF: ! */ ! pending.writeBits(2, 10); ! neededbits -= 10; ! } ! } ! state = BUSY_STATE; ! } ! else if (state == FINISHING_STATE) ! { ! pending.alignToByte(); ! /* We have completed the stream */ ! if (!noHeader) ! { ! int adler = engine.getAdler(); ! pending.writeShortMSB(adler >> 16); ! pending.writeShortMSB(adler & 0xffff); ! } ! state = FINISHED_STATE; ! } ! } } return origLength - length; --- 423,500 ---- if (state < BUSY_STATE) { ! /* output header */ ! int header = (DEFLATED + ! ((DeflaterConstants.MAX_WBITS - 8) << 4)) << 8; ! int level_flags = (level - 1) >> 1; ! if (level_flags < 0 || level_flags > 3) ! level_flags = 3; ! header |= level_flags << 6; ! if ((state & IS_SETDICT) != 0) ! /* Dictionary was set */ ! header |= DeflaterConstants.PRESET_DICT; ! header += 31 - (header % 31); ! pending.writeShortMSB(header); ! if ((state & IS_SETDICT) != 0) ! { ! int chksum = engine.getAdler(); ! engine.resetAdler(); ! pending.writeShortMSB(chksum >> 16); ! pending.writeShortMSB(chksum & 0xffff); ! } ! state = BUSY_STATE | (state & (IS_FLUSHING | IS_FINISHING)); } for (;;) { ! int count = pending.flush(output, offset, length); ! offset += count; ! totalOut += count; ! length -= count; ! if (length == 0 || state == FINISHED_STATE) ! break; ! if (!engine.deflate((state & IS_FLUSHING) != 0, ! (state & IS_FINISHING) != 0)) ! { ! if (state == BUSY_STATE) ! /* We need more input now */ ! return origLength - length; ! else if (state == FLUSHING_STATE) ! { ! if (level != NO_COMPRESSION) ! { ! /* We have to supply some lookahead. 8 bit lookahead ! * are needed by the zlib inflater, and we must fill ! * the next byte, so that all bits are flushed. ! */ ! int neededbits = 8 + ((-pending.getBitCount()) & 7); ! while (neededbits > 0) ! { ! /* write a static tree block consisting solely of ! * an EOF: ! */ ! pending.writeBits(2, 10); ! neededbits -= 10; ! } ! } ! state = BUSY_STATE; ! } ! else if (state == FINISHING_STATE) ! { ! pending.alignToByte(); ! /* We have completed the stream */ ! if (!noHeader) ! { ! int adler = engine.getAdler(); ! pending.writeShortMSB(adler >> 16); ! pending.writeShortMSB(adler & 0xffff); ! } ! state = FINISHED_STATE; ! } ! } } return origLength - length; *************** public class Deflater *** 503,512 **** /** * Sets the dictionary which should be used in the deflate process. * This call is equivalent to setDictionary(dict, 0, ! * dict.length). ! * @param dict the dictionary. * @exception IllegalStateException if setInput () or deflate () ! * were already called or another dictionary was already set. */ public void setDictionary(byte[] dict) { --- 503,512 ---- /** * Sets the dictionary which should be used in the deflate process. * This call is equivalent to setDictionary(dict, 0, ! * dict.length). ! * @param dict the dictionary. * @exception IllegalStateException if setInput () or deflate () ! * were already called or another dictionary was already set. */ public void setDictionary(byte[] dict) { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/DeflaterEngine.java gcc-4.6.0/libjava/classpath/java/util/zip/DeflaterEngine.java *** gcc-4.5.2/libjava/classpath/java/util/zip/DeflaterEngine.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/zip/DeflaterEngine.java Tue Jan 11 19:46:05 2011 *************** class DeflaterEngine implements Deflater *** 45,51 **** /** * Hashtable, hashing three characters to an index for window, so ! * that window[index]..window[index+2] have this hash code. * Note that the array should really be unsigned short, so you need * to and the values with 0xffff. */ --- 45,51 ---- /** * Hashtable, hashing three characters to an index for window, so ! * that window[index]..window[index+2] have this hash code. * Note that the array should really be unsigned short, so you need * to and the values with 0xffff. */ *************** class DeflaterEngine implements Deflater *** 53,59 **** /** * prev[index & WMASK] points to the previous index that has the ! * same hash code as the string starting at index. This way * entries with the same hash code are in a linked list. * Note that the array should really be unsigned short, so you need * to and the values with 0xffff. --- 53,59 ---- /** * prev[index & WMASK] points to the previous index that has the ! * same hash code as the string starting at index. This way * entries with the same hash code are in a linked list. * Note that the array should really be unsigned short, so you need * to and the values with 0xffff. *************** class DeflaterEngine implements Deflater *** 78,84 **** private int lookahead; /** ! * This array contains the part of the uncompressed stream that * is of relevance. The current character is indexed by strstart. */ private byte[] window; --- 78,84 ---- private int lookahead; /** ! * This array contains the part of the uncompressed stream that * is of relevance. The current character is indexed by strstart. */ private byte[] window; *************** class DeflaterEngine implements Deflater *** 113,124 **** * second half is copied to the beginning. * * The head array is a hash table. Three characters build a hash value ! * and they the value points to the corresponding index in window of * the last string with this hash. The prev array implements a * linked list of matches with the same hash: prev[index & WMASK] points * to the previous index with the same hash. ! * ! * */ --- 113,124 ---- * second half is copied to the beginning. * * The head array is a hash table. Three characters build a hash value ! * and they the value points to the corresponding index in window of * the last string with this hash. The prev array implements a * linked list of matches with the same hash: prev[index & WMASK] points * to the previous index with the same hash. ! * ! * */ *************** class DeflaterEngine implements Deflater *** 180,223 **** niceLength = DeflaterConstants.NICE_LENGTH[lvl]; max_chain = DeflaterConstants.MAX_CHAIN[lvl]; ! if (DeflaterConstants.COMPR_FUNC[lvl] != comprFunc) { ! if (DeflaterConstants.DEBUGGING) ! System.err.println("Change from "+comprFunc +" to " ! + DeflaterConstants.COMPR_FUNC[lvl]); ! switch (comprFunc) ! { ! case DEFLATE_STORED: ! if (strstart > blockStart) ! { ! huffman.flushStoredBlock(window, blockStart, ! strstart - blockStart, false); ! blockStart = strstart; ! } ! updateHash(); ! break; ! case DEFLATE_FAST: ! if (strstart > blockStart) ! { ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! false); ! blockStart = strstart; ! } ! break; ! case DEFLATE_SLOW: ! if (prevAvailable) ! huffman.tallyLit(window[strstart-1] & 0xff); ! if (strstart > blockStart) ! { ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! false); ! blockStart = strstart; ! } ! prevAvailable = false; ! matchLen = MIN_MATCH - 1; ! break; ! } ! comprFunc = COMPR_FUNC[lvl]; } } --- 180,223 ---- niceLength = DeflaterConstants.NICE_LENGTH[lvl]; max_chain = DeflaterConstants.MAX_CHAIN[lvl]; ! if (DeflaterConstants.COMPR_FUNC[lvl] != comprFunc) { ! if (DeflaterConstants.DEBUGGING) ! System.err.println("Change from "+comprFunc +" to " ! + DeflaterConstants.COMPR_FUNC[lvl]); ! switch (comprFunc) ! { ! case DEFLATE_STORED: ! if (strstart > blockStart) ! { ! huffman.flushStoredBlock(window, blockStart, ! strstart - blockStart, false); ! blockStart = strstart; ! } ! updateHash(); ! break; ! case DEFLATE_FAST: ! if (strstart > blockStart) ! { ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! false); ! blockStart = strstart; ! } ! break; ! case DEFLATE_SLOW: ! if (prevAvailable) ! huffman.tallyLit(window[strstart-1] & 0xff); ! if (strstart > blockStart) ! { ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! false); ! blockStart = strstart; ! } ! prevAvailable = false; ! matchLen = MIN_MATCH - 1; ! break; ! } ! comprFunc = COMPR_FUNC[lvl]; } } *************** class DeflaterEngine implements Deflater *** 225,231 **** if (DEBUGGING) System.err.println("updateHash: "+strstart); ins_h = (window[strstart] << HASH_SHIFT) ^ window[strstart + 1]; ! } /** * Inserts the current string in the head hash and returns the previous --- 225,231 ---- if (DEBUGGING) System.err.println("updateHash: "+strstart); ins_h = (window[strstart] << HASH_SHIFT) ^ window[strstart + 1]; ! } /** * Inserts the current string in the head hash and returns the previous *************** class DeflaterEngine implements Deflater *** 238,250 **** if (DEBUGGING) { ! if (hash != (((window[strstart] << (2*HASH_SHIFT)) ! ^ (window[strstart + 1] << HASH_SHIFT) ! ^ (window[strstart + 2])) & HASH_MASK)) ! throw new InternalError("hash inconsistent: "+hash+"/" ! +window[strstart]+"," ! +window[strstart+1]+"," ! +window[strstart+2]+","+HASH_SHIFT); } prev[strstart & WMASK] = match = head[hash]; --- 238,250 ---- if (DEBUGGING) { ! if (hash != (((window[strstart] << (2*HASH_SHIFT)) ! ^ (window[strstart + 1] << HASH_SHIFT) ! ^ (window[strstart + 2])) & HASH_MASK)) ! throw new InternalError("hash inconsistent: "+hash+"/" ! +window[strstart]+"," ! +window[strstart+1]+"," ! +window[strstart+2]+","+HASH_SHIFT); } prev[strstart & WMASK] = match = head[hash]; *************** class DeflaterEngine implements Deflater *** 259,280 **** matchStart -= WSIZE; strstart -= WSIZE; blockStart -= WSIZE; ! /* Slide the hash table (could be avoided with 32 bit values * at the expense of memory usage). */ ! for (int i = 0; i < HASH_SIZE; i++) { ! int m = head[i] & 0xffff; ! head[i] = m >= WSIZE ? (short) (m - WSIZE) : 0; } /* Slide the prev table. */ ! for (int i = 0; i < WSIZE; i++) { ! int m = prev[i] & 0xffff; ! prev[i] = m >= WSIZE ? (short) (m - WSIZE) : 0; } } --- 259,280 ---- matchStart -= WSIZE; strstart -= WSIZE; blockStart -= WSIZE; ! /* Slide the hash table (could be avoided with 32 bit values * at the expense of memory usage). */ ! for (int i = 0; i < HASH_SIZE; i++) { ! int m = head[i] & 0xffff; ! head[i] = m >= WSIZE ? (short) (m - WSIZE) : 0; } /* Slide the prev table. */ ! for (int i = 0; i < WSIZE; i++) { ! int m = prev[i] & 0xffff; ! prev[i] = m >= WSIZE ? (short) (m - WSIZE) : 0; } } *************** class DeflaterEngine implements Deflater *** 298,327 **** */ while (lookahead < DeflaterConstants.MIN_LOOKAHEAD && inputOff < inputEnd) { ! int more = 2*WSIZE - lookahead - strstart; ! ! if (more > inputEnd - inputOff) ! more = inputEnd - inputOff; ! System.arraycopy(inputBuf, inputOff, ! window, strstart + lookahead, more); ! adler.update(inputBuf, inputOff, more); ! inputOff += more; ! totalIn += more; ! lookahead += more; } ! if (lookahead >= MIN_MATCH) updateHash(); } /** ! * Find the best (longest) string in the window matching the * string starting at strstart. * * Preconditions: * strstart + MAX_MATCH <= window.length. ! * * * @param curMatch */ --- 298,327 ---- */ while (lookahead < DeflaterConstants.MIN_LOOKAHEAD && inputOff < inputEnd) { ! int more = 2*WSIZE - lookahead - strstart; ! if (more > inputEnd - inputOff) ! more = inputEnd - inputOff; ! ! System.arraycopy(inputBuf, inputOff, ! window, strstart + lookahead, more); ! adler.update(inputBuf, inputOff, more); ! inputOff += more; ! totalIn += more; ! lookahead += more; } ! if (lookahead >= MIN_MATCH) updateHash(); } /** ! * Find the best (longest) string in the window matching the * string starting at strstart. * * Preconditions: * strstart + MAX_MATCH <= window.length. ! * * * @param curMatch */ *************** class DeflaterEngine implements Deflater *** 333,339 **** int match; int best_end = this.strstart + matchLen; int best_len = Math.max(matchLen, MIN_MATCH - 1); ! int limit = Math.max(strstart - MAX_DIST, 0); int strend = scan + MAX_MATCH - 1; --- 333,339 ---- int match; int best_end = this.strstart + matchLen; int best_len = Math.max(matchLen, MIN_MATCH - 1); ! int limit = Math.max(strstart - MAX_DIST, 0); int strend = scan + MAX_MATCH - 1; *************** class DeflaterEngine implements Deflater *** 350,400 **** if (niceLength > lookahead) niceLength = lookahead; ! if (DeflaterConstants.DEBUGGING ! && strstart > 2*WSIZE - MIN_LOOKAHEAD) throw new InternalError("need lookahead"); ! do { if (DeflaterConstants.DEBUGGING && curMatch >= strstart) ! throw new InternalError("future match"); if (window[curMatch + best_len] != scan_end ! || window[curMatch + best_len - 1] != scan_end1 ! || window[curMatch] != window[scan] ! || window[curMatch+1] != window[scan + 1]) ! continue; ! match = curMatch + 2; scan += 2; /* We check for insufficient lookahead only every 8th comparison; * the 256th check will be made at strstart+258. */ while (window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && scan < strend) ; if (scan > best_end) { ! // if (DeflaterConstants.DEBUGGING && ins_h == 0) ! // System.err.println("Found match: "+curMatch+"-"+(scan-strstart)); ! matchStart = curMatch; ! best_end = scan; ! best_len = scan - strstart; ! if (best_len >= niceLength) ! break; ! scan_end1 = window[best_end-1]; ! scan_end = window[best_end]; } scan = strstart; } while ((curMatch = (prev[curMatch & WMASK] & 0xffff)) > limit ! && --chainLength != 0); matchLen = Math.min(best_len, lookahead); return matchLen >= MIN_MATCH; --- 350,400 ---- if (niceLength > lookahead) niceLength = lookahead; ! if (DeflaterConstants.DEBUGGING ! && strstart > 2*WSIZE - MIN_LOOKAHEAD) throw new InternalError("need lookahead"); ! do { if (DeflaterConstants.DEBUGGING && curMatch >= strstart) ! throw new InternalError("future match"); if (window[curMatch + best_len] != scan_end ! || window[curMatch + best_len - 1] != scan_end1 ! || window[curMatch] != window[scan] ! || window[curMatch+1] != window[scan + 1]) ! continue; ! match = curMatch + 2; scan += 2; /* We check for insufficient lookahead only every 8th comparison; * the 256th check will be made at strstart+258. */ while (window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && window[++scan] == window[++match] ! && scan < strend) ; if (scan > best_end) { ! // if (DeflaterConstants.DEBUGGING && ins_h == 0) ! // System.err.println("Found match: "+curMatch+"-"+(scan-strstart)); ! matchStart = curMatch; ! best_end = scan; ! best_len = scan - strstart; ! if (best_len >= niceLength) ! break; ! scan_end1 = window[best_end-1]; ! scan_end = window[best_end]; } scan = strstart; } while ((curMatch = (prev[curMatch & WMASK] & 0xffff)) > limit ! && --chainLength != 0); matchLen = Math.min(best_len, lookahead); return matchLen >= MIN_MATCH; *************** class DeflaterEngine implements Deflater *** 417,429 **** length--; while (--length > 0) { ! insertString(); ! strstart++; } strstart += 2; blockStart = strstart; ! } ! private boolean deflateStored(boolean flush, boolean finish) { if (!flush && lookahead == 0) --- 417,429 ---- length--; while (--length > 0) { ! insertString(); ! strstart++; } strstart += 2; blockStart = strstart; ! } ! private boolean deflateStored(boolean flush, boolean finish) { if (!flush && lookahead == 0) *************** class DeflaterEngine implements Deflater *** 434,458 **** int storedLen = strstart - blockStart; ! if ((storedLen >= DeflaterConstants.MAX_BLOCK_SIZE) ! /* Block is full */ ! || (blockStart < WSIZE && storedLen >= MAX_DIST) ! /* Block may move out of window */ ! || flush) { ! boolean lastBlock = finish; ! if (storedLen > DeflaterConstants.MAX_BLOCK_SIZE) ! { ! storedLen = DeflaterConstants.MAX_BLOCK_SIZE; ! lastBlock = false; ! } ! if (DeflaterConstants.DEBUGGING) ! System.err.println("storedBlock["+storedLen+","+lastBlock+"]"); ! huffman.flushStoredBlock(window, blockStart, storedLen, lastBlock); ! blockStart += storedLen; ! return !lastBlock; } return true; } --- 434,458 ---- int storedLen = strstart - blockStart; ! if ((storedLen >= DeflaterConstants.MAX_BLOCK_SIZE) ! /* Block is full */ ! || (blockStart < WSIZE && storedLen >= MAX_DIST) ! /* Block may move out of window */ ! || flush) { ! boolean lastBlock = finish; ! if (storedLen > DeflaterConstants.MAX_BLOCK_SIZE) ! { ! storedLen = DeflaterConstants.MAX_BLOCK_SIZE; ! lastBlock = false; ! } ! if (DeflaterConstants.DEBUGGING) ! System.err.println("storedBlock["+storedLen+","+lastBlock+"]"); ! huffman.flushStoredBlock(window, blockStart, storedLen, lastBlock); ! blockStart += storedLen; ! return !lastBlock; } return true; } *************** class DeflaterEngine implements Deflater *** 464,541 **** while (lookahead >= MIN_LOOKAHEAD || flush) { ! if (lookahead == 0) ! { ! /* We are flushing everything */ ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! finish); ! blockStart = strstart; ! return false; ! } ! if (strstart > 2 * WSIZE - MIN_LOOKAHEAD) ! { ! /* slide window, as findLongestMatch need this. ! * This should only happen when flushing and the window ! * is almost full. ! */ ! slideWindow(); ! } ! int hashHead; ! if (lookahead >= MIN_MATCH ! && (hashHead = insertString()) != 0 ! && strategy != Deflater.HUFFMAN_ONLY ! && strstart - hashHead <= MAX_DIST ! && findLongestMatch(hashHead)) ! { ! /* longestMatch sets matchStart and matchLen */ ! if (DeflaterConstants.DEBUGGING) ! { ! for (int i = 0 ; i < matchLen; i++) ! { ! if (window[strstart+i] != window[matchStart + i]) ! throw new InternalError(); ! } ! } ! boolean full = huffman.tallyDist(strstart - matchStart, matchLen); ! ! lookahead -= matchLen; ! if (matchLen <= max_lazy && lookahead >= MIN_MATCH) ! { ! while (--matchLen > 0) ! { ! strstart++; ! insertString(); ! } ! strstart++; ! } ! else ! { ! strstart += matchLen; ! if (lookahead >= MIN_MATCH - 1) ! updateHash(); ! } ! matchLen = MIN_MATCH - 1; ! if (!full) ! continue; ! } ! else ! { ! /* No match found */ ! huffman.tallyLit(window[strstart] & 0xff); ! strstart++; ! lookahead--; ! } ! if (huffman.isFull()) ! { ! boolean lastBlock = finish && lookahead == 0; ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! lastBlock); ! blockStart = strstart; ! return !lastBlock; ! } } return true; } --- 464,541 ---- while (lookahead >= MIN_LOOKAHEAD || flush) { ! if (lookahead == 0) ! { ! /* We are flushing everything */ ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! finish); ! blockStart = strstart; ! return false; ! } ! if (strstart > 2 * WSIZE - MIN_LOOKAHEAD) ! { ! /* slide window, as findLongestMatch need this. ! * This should only happen when flushing and the window ! * is almost full. ! */ ! slideWindow(); ! } ! int hashHead; ! if (lookahead >= MIN_MATCH ! && (hashHead = insertString()) != 0 ! && strategy != Deflater.HUFFMAN_ONLY ! && strstart - hashHead <= MAX_DIST ! && findLongestMatch(hashHead)) ! { ! /* longestMatch sets matchStart and matchLen */ ! if (DeflaterConstants.DEBUGGING) ! { ! for (int i = 0 ; i < matchLen; i++) ! { ! if (window[strstart+i] != window[matchStart + i]) ! throw new InternalError(); ! } ! } ! boolean full = huffman.tallyDist(strstart - matchStart, matchLen); ! lookahead -= matchLen; ! if (matchLen <= max_lazy && lookahead >= MIN_MATCH) ! { ! while (--matchLen > 0) ! { ! strstart++; ! insertString(); ! } ! strstart++; ! } ! else ! { ! strstart += matchLen; ! if (lookahead >= MIN_MATCH - 1) ! updateHash(); ! } ! matchLen = MIN_MATCH - 1; ! if (!full) ! continue; ! } ! else ! { ! /* No match found */ ! huffman.tallyLit(window[strstart] & 0xff); ! strstart++; ! lookahead--; ! } ! ! if (huffman.isFull()) ! { ! boolean lastBlock = finish && lookahead == 0; ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! lastBlock); ! blockStart = strstart; ! return !lastBlock; ! } } return true; } *************** class DeflaterEngine implements Deflater *** 547,673 **** while (lookahead >= MIN_LOOKAHEAD || flush) { ! if (lookahead == 0) ! { ! if (prevAvailable) ! huffman.tallyLit(window[strstart-1] & 0xff); ! prevAvailable = false; ! /* We are flushing everything */ ! if (DeflaterConstants.DEBUGGING && !flush) ! throw new InternalError("Not flushing, but no lookahead"); ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! finish); ! blockStart = strstart; ! return false; ! } ! if (strstart >= 2 * WSIZE - MIN_LOOKAHEAD) ! { ! /* slide window, as findLongestMatch need this. ! * This should only happen when flushing and the window ! * is almost full. ! */ ! slideWindow(); ! } ! int prevMatch = matchStart; ! int prevLen = matchLen; ! if (lookahead >= MIN_MATCH) ! { ! int hashHead = insertString(); ! if (strategy != Deflater.HUFFMAN_ONLY ! && hashHead != 0 && strstart - hashHead <= MAX_DIST ! && findLongestMatch(hashHead)) ! { ! /* longestMatch sets matchStart and matchLen */ ! ! /* Discard match if too small and too far away */ ! if (matchLen <= 5 ! && (strategy == Deflater.FILTERED ! || (matchLen == MIN_MATCH ! && strstart - matchStart > TOO_FAR))) { ! matchLen = MIN_MATCH - 1; ! } ! } ! } ! ! /* previous match was better */ ! if (prevLen >= MIN_MATCH && matchLen <= prevLen) ! { ! if (DeflaterConstants.DEBUGGING) ! { ! for (int i = 0 ; i < matchLen; i++) ! { ! if (window[strstart-1+i] != window[prevMatch + i]) ! throw new InternalError(); ! } ! } ! huffman.tallyDist(strstart - 1 - prevMatch, prevLen); ! prevLen -= 2; ! do ! { ! strstart++; ! lookahead--; ! if (lookahead >= MIN_MATCH) ! insertString(); ! } ! while (--prevLen > 0); ! strstart ++; ! lookahead--; ! prevAvailable = false; ! matchLen = MIN_MATCH - 1; ! } ! else ! { ! if (prevAvailable) ! huffman.tallyLit(window[strstart-1] & 0xff); ! prevAvailable = true; ! strstart++; ! lookahead--; ! } ! if (huffman.isFull()) ! { ! int len = strstart - blockStart; ! if (prevAvailable) ! len--; ! boolean lastBlock = (finish && lookahead == 0 && !prevAvailable); ! huffman.flushBlock(window, blockStart, len, lastBlock); ! blockStart += len; ! return !lastBlock; ! } } return true; ! } ! public boolean deflate(boolean flush, boolean finish) { boolean progress; do { ! fillWindow(); ! boolean canFlush = flush && inputOff == inputEnd; ! if (DeflaterConstants.DEBUGGING) ! System.err.println("window: ["+blockStart+","+strstart+"," ! +lookahead+"], "+comprFunc+","+canFlush); ! switch (comprFunc) ! { ! case DEFLATE_STORED: ! progress = deflateStored(canFlush, finish); ! break; ! case DEFLATE_FAST: ! progress = deflateFast(canFlush, finish); ! break; ! case DEFLATE_SLOW: ! progress = deflateSlow(canFlush, finish); ! break; ! default: ! throw new InternalError(); ! } } while (pending.isFlushed() /* repeat while we have no pending output */ ! && progress); /* and progress was made */ return progress; } --- 547,673 ---- while (lookahead >= MIN_LOOKAHEAD || flush) { ! if (lookahead == 0) ! { ! if (prevAvailable) ! huffman.tallyLit(window[strstart-1] & 0xff); ! prevAvailable = false; ! /* We are flushing everything */ ! if (DeflaterConstants.DEBUGGING && !flush) ! throw new InternalError("Not flushing, but no lookahead"); ! huffman.flushBlock(window, blockStart, strstart - blockStart, ! finish); ! blockStart = strstart; ! return false; ! } ! if (strstart >= 2 * WSIZE - MIN_LOOKAHEAD) ! { ! /* slide window, as findLongestMatch need this. ! * This should only happen when flushing and the window ! * is almost full. ! */ ! slideWindow(); ! } ! int prevMatch = matchStart; ! int prevLen = matchLen; ! if (lookahead >= MIN_MATCH) ! { ! int hashHead = insertString(); ! if (strategy != Deflater.HUFFMAN_ONLY ! && hashHead != 0 && strstart - hashHead <= MAX_DIST ! && findLongestMatch(hashHead)) ! { ! /* longestMatch sets matchStart and matchLen */ ! /* Discard match if too small and too far away */ ! if (matchLen <= 5 ! && (strategy == Deflater.FILTERED ! || (matchLen == MIN_MATCH ! && strstart - matchStart > TOO_FAR))) { ! matchLen = MIN_MATCH - 1; ! } ! } ! } ! ! /* previous match was better */ ! if (prevLen >= MIN_MATCH && matchLen <= prevLen) ! { ! if (DeflaterConstants.DEBUGGING) ! { ! for (int i = 0 ; i < matchLen; i++) ! { ! if (window[strstart-1+i] != window[prevMatch + i]) ! throw new InternalError(); ! } ! } ! huffman.tallyDist(strstart - 1 - prevMatch, prevLen); ! prevLen -= 2; ! do ! { ! strstart++; ! lookahead--; ! if (lookahead >= MIN_MATCH) ! insertString(); ! } ! while (--prevLen > 0); ! strstart ++; ! lookahead--; ! prevAvailable = false; ! matchLen = MIN_MATCH - 1; ! } ! else ! { ! if (prevAvailable) ! huffman.tallyLit(window[strstart-1] & 0xff); ! prevAvailable = true; ! strstart++; ! lookahead--; ! } ! ! if (huffman.isFull()) ! { ! int len = strstart - blockStart; ! if (prevAvailable) ! len--; ! boolean lastBlock = (finish && lookahead == 0 && !prevAvailable); ! huffman.flushBlock(window, blockStart, len, lastBlock); ! blockStart += len; ! return !lastBlock; ! } } return true; ! } ! public boolean deflate(boolean flush, boolean finish) { boolean progress; do { ! fillWindow(); ! boolean canFlush = flush && inputOff == inputEnd; ! if (DeflaterConstants.DEBUGGING) ! System.err.println("window: ["+blockStart+","+strstart+"," ! +lookahead+"], "+comprFunc+","+canFlush); ! switch (comprFunc) ! { ! case DEFLATE_STORED: ! progress = deflateStored(canFlush, finish); ! break; ! case DEFLATE_FAST: ! progress = deflateFast(canFlush, finish); ! break; ! case DEFLATE_SLOW: ! progress = deflateSlow(canFlush, finish); ! break; ! default: ! throw new InternalError(); ! } } while (pending.isFlushed() /* repeat while we have no pending output */ ! && progress); /* and progress was made */ return progress; } *************** class DeflaterEngine implements Deflater *** 676,687 **** { if (inputOff < inputEnd) throw new IllegalStateException ! ("Old input was not completely processed"); int end = off + len; /* We want to throw an ArrayIndexOutOfBoundsException early. The ! * check is very tricky: it also handles integer wrap around. */ if (0 > off || off > end || end > buf.length) throw new ArrayIndexOutOfBoundsException(); --- 676,687 ---- { if (inputOff < inputEnd) throw new IllegalStateException ! ("Old input was not completely processed"); int end = off + len; /* We want to throw an ArrayIndexOutOfBoundsException early. The ! * check is very tricky: it also handles integer wrap around. */ if (0 > off || off > end || end > buf.length) throw new ArrayIndexOutOfBoundsException(); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/DeflaterHuffman.java gcc-4.6.0/libjava/classpath/java/util/zip/DeflaterHuffman.java *** gcc-4.5.2/libjava/classpath/java/util/zip/DeflaterHuffman.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/DeflaterHuffman.java Tue Jan 11 19:46:05 2011 *************** package java.util.zip; *** 44,50 **** * to the split of deflate and setInput. * * @author Jochen Hoenicke ! * @date Jan 6, 2000 */ class DeflaterHuffman { --- 44,50 ---- * to the split of deflate and setInput. * * @author Jochen Hoenicke ! * @date Jan 6, 2000 */ class DeflaterHuffman { *************** class DeflaterHuffman *** 79,85 **** void reset() { for (int i = 0; i < freqs.length; i++) ! freqs[i] = 0; codes = null; length = null; } --- 79,85 ---- void reset() { for (int i = 0; i < freqs.length; i++) ! freqs[i] = 0; codes = null; length = null; } *************** class DeflaterHuffman *** 87,96 **** final void writeSymbol(int code) { if (DeflaterConstants.DEBUGGING) ! { ! freqs[code]--; ! // System.err.print("writeSymbol("+freqs.length+","+code+"): "); ! } pending.writeBits(codes[code] & 0xffff, length[code]); } --- 87,96 ---- final void writeSymbol(int code) { if (DeflaterConstants.DEBUGGING) ! { ! freqs[code]--; ! // System.err.print("writeSymbol("+freqs.length+","+code+"): "); ! } pending.writeBits(codes[code] & 0xffff, length[code]); } *************** class DeflaterHuffman *** 98,110 **** { boolean empty = true; for (int i = 0; i < freqs.length; i++) ! if (freqs[i] != 0) ! { ! System.err.println("freqs["+i+"] == "+freqs[i]); ! empty = false; ! } if (!empty) ! throw new InternalError(); System.err.println("checkEmpty suceeded!"); } --- 98,110 ---- { boolean empty = true; for (int i = 0; i < freqs.length; i++) ! if (freqs[i] != 0) ! { ! System.err.println("freqs["+i+"] == "+freqs[i]); ! empty = false; ! } if (!empty) ! throw new InternalError(); System.err.println("checkEmpty suceeded!"); } *************** class DeflaterHuffman *** 120,150 **** codes = new short[freqs.length]; if (DeflaterConstants.DEBUGGING) ! System.err.println("buildCodes: "+freqs.length); ! for (int bits = 0; bits < maxLength; bits++) ! { ! nextCode[bits] = code; ! code += bl_counts[bits] << (15 - bits); ! if (DeflaterConstants.DEBUGGING) ! System.err.println("bits: "+(bits+1)+" count: "+bl_counts[bits] ! +" nextCode: "+Integer.toHexString(code)); ! } if (DeflaterConstants.DEBUGGING && code != 65536) ! throw new RuntimeException("Inconsistent bl_counts!"); ! for (int i=0; i < numCodes; i++) ! { ! int bits = length[i]; ! if (bits > 0) ! { ! if (DeflaterConstants.DEBUGGING) ! System.err.println("codes["+i+"] = rev(" ! +Integer.toHexString(nextCode[bits-1])+")," ! +bits); ! codes[i] = bitReverse(nextCode[bits-1]); ! nextCode[bits-1] += 1 << (16 - bits); ! } ! } } private void buildLength(int childs[]) --- 120,150 ---- codes = new short[freqs.length]; if (DeflaterConstants.DEBUGGING) ! System.err.println("buildCodes: "+freqs.length); ! for (int bits = 0; bits < maxLength; bits++) ! { ! nextCode[bits] = code; ! code += bl_counts[bits] << (15 - bits); ! if (DeflaterConstants.DEBUGGING) ! System.err.println("bits: "+(bits+1)+" count: "+bl_counts[bits] ! +" nextCode: "+Integer.toHexString(code)); ! } if (DeflaterConstants.DEBUGGING && code != 65536) ! throw new RuntimeException("Inconsistent bl_counts!"); ! for (int i=0; i < numCodes; i++) ! { ! int bits = length[i]; ! if (bits > 0) ! { ! if (DeflaterConstants.DEBUGGING) ! System.err.println("codes["+i+"] = rev(" ! +Integer.toHexString(nextCode[bits-1])+")," ! +bits); ! codes[i] = bitReverse(nextCode[bits-1]); ! nextCode[bits-1] += 1 << (16 - bits); ! } ! } } private void buildLength(int childs[]) *************** class DeflaterHuffman *** 153,215 **** int numNodes = childs.length / 2; int numLeafs = (numNodes + 1) / 2; int overflow = 0; ! for (int i = 0; i < maxLength; i++) ! bl_counts[i] = 0; /* First calculate optimal bit lengths */ int lengths[] = new int[numNodes]; lengths[numNodes-1] = 0; for (int i = numNodes - 1; i >= 0; i--) ! { ! if (childs[2*i+1] != -1) ! { ! int bitLength = lengths[i] + 1; ! if (bitLength > maxLength) ! { ! bitLength = maxLength; ! overflow++; ! } ! lengths[childs[2*i]] = lengths[childs[2*i+1]] = bitLength; ! } ! else ! { ! /* A leaf node */ ! int bitLength = lengths[i]; ! bl_counts[bitLength - 1]++; ! this.length[childs[2*i]] = (byte) lengths[i]; ! } ! } ! if (DeflaterConstants.DEBUGGING) ! { ! System.err.println("Tree "+freqs.length+" lengths:"); ! for (int i=0; i < numLeafs; i++) ! System.err.println("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]] ! + " len: "+length[childs[2*i]]); ! } ! if (overflow == 0) ! return; ! int incrBitLen = maxLength - 1; do ! { ! /* Find the first bit length which could increase: */ ! while (bl_counts[--incrBitLen] == 0) ! ; ! ! /* Move this node one down and remove a corresponding ! * amount of overflow nodes. ! */ ! do ! { ! bl_counts[incrBitLen]--; ! bl_counts[++incrBitLen]++; ! overflow -= 1 << (maxLength - 1 - incrBitLen); ! } ! while (overflow > 0 && incrBitLen < maxLength - 1); ! } while (overflow > 0); /* We may have overshot above. Move some nodes from maxLength to --- 153,215 ---- int numNodes = childs.length / 2; int numLeafs = (numNodes + 1) / 2; int overflow = 0; ! for (int i = 0; i < maxLength; i++) ! bl_counts[i] = 0; /* First calculate optimal bit lengths */ int lengths[] = new int[numNodes]; lengths[numNodes-1] = 0; for (int i = numNodes - 1; i >= 0; i--) ! { ! if (childs[2*i+1] != -1) ! { ! int bitLength = lengths[i] + 1; ! if (bitLength > maxLength) ! { ! bitLength = maxLength; ! overflow++; ! } ! lengths[childs[2*i]] = lengths[childs[2*i+1]] = bitLength; ! } ! else ! { ! /* A leaf node */ ! int bitLength = lengths[i]; ! bl_counts[bitLength - 1]++; ! this.length[childs[2*i]] = (byte) lengths[i]; ! } ! } ! if (DeflaterConstants.DEBUGGING) ! { ! System.err.println("Tree "+freqs.length+" lengths:"); ! for (int i=0; i < numLeafs; i++) ! System.err.println("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]] ! + " len: "+length[childs[2*i]]); ! } ! if (overflow == 0) ! return; ! int incrBitLen = maxLength - 1; do ! { ! /* Find the first bit length which could increase: */ ! while (bl_counts[--incrBitLen] == 0) ! ; ! ! /* Move this node one down and remove a corresponding ! * amount of overflow nodes. ! */ ! do ! { ! bl_counts[incrBitLen]--; ! bl_counts[++incrBitLen]++; ! overflow -= 1 << (maxLength - 1 - incrBitLen); ! } ! while (overflow > 0 && incrBitLen < maxLength - 1); ! } while (overflow > 0); /* We may have overshot above. Move some nodes from maxLength to *************** class DeflaterHuffman *** 217,223 **** */ bl_counts[maxLength-1] += overflow; bl_counts[maxLength-2] -= overflow; ! /* Now recompute all bit lengths, scanning in increasing * frequency. It is simpler to reconstruct all lengths instead of * fixing only the wrong ones. This idea is taken from 'ar' --- 217,223 ---- */ bl_counts[maxLength-1] += overflow; bl_counts[maxLength-2] -= overflow; ! /* Now recompute all bit lengths, scanning in increasing * frequency. It is simpler to reconstruct all lengths instead of * fixing only the wrong ones. This idea is taken from 'ar' *************** class DeflaterHuffman *** 227,256 **** * array. */ int nodePtr = 2 * numLeafs; ! for (int bits = maxLength; bits != 0; bits--) ! { ! int n = bl_counts[bits-1]; ! while (n > 0) ! { ! int childPtr = 2*childs[nodePtr++]; ! if (childs[childPtr + 1] == -1) ! { ! /* We found another leaf */ ! length[childs[childPtr]] = (byte) bits; ! n--; ! } ! } ! } if (DeflaterConstants.DEBUGGING) ! { ! System.err.println("*** After overflow elimination. ***"); ! for (int i=0; i < numLeafs; i++) ! System.err.println("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]] ! + " len: "+length[childs[2*i]]); ! } } ! ! void buildTree() { int numSymbols = freqs.length; --- 227,256 ---- * array. */ int nodePtr = 2 * numLeafs; ! for (int bits = maxLength; bits != 0; bits--) ! { ! int n = bl_counts[bits-1]; ! while (n > 0) ! { ! int childPtr = 2*childs[nodePtr++]; ! if (childs[childPtr + 1] == -1) ! { ! /* We found another leaf */ ! length[childs[childPtr]] = (byte) bits; ! n--; ! } ! } ! } if (DeflaterConstants.DEBUGGING) ! { ! System.err.println("*** After overflow elimination. ***"); ! for (int i=0; i < numLeafs; i++) ! System.err.println("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]] ! + " len: "+length[childs[2*i]]); ! } } ! ! void buildTree() { int numSymbols = freqs.length; *************** class DeflaterHuffman *** 266,388 **** int heapLen = 0; int maxCode = 0; for (int n = 0; n < numSymbols; n++) ! { ! int freq = freqs[n]; ! if (freq != 0) ! { ! /* Insert n into heap */ ! int pos = heapLen++; ! int ppos; ! while (pos > 0 && ! freqs[heap[ppos = (pos - 1) / 2]] > freq) { ! heap[pos] = heap[ppos]; ! pos = ppos; ! } ! heap[pos] = n; ! maxCode = n; ! } ! } ! /* We could encode a single literal with 0 bits but then we * don't see the literals. Therefore we force at least two * literals to avoid this case. We don't care about order in ! * this case, both literals get a 1 bit code. */ while (heapLen < 2) ! { ! int node = maxCode < 2 ? ++maxCode : 0; ! heap[heapLen++] = node; ! } numCodes = Math.max(maxCode + 1, minNumCodes); ! int numLeafs = heapLen; int[] childs = new int[4*heapLen - 2]; int[] values = new int[2*heapLen - 1]; int numNodes = numLeafs; for (int i = 0; i < heapLen; i++) ! { ! int node = heap[i]; ! childs[2*i] = node; ! childs[2*i+1] = -1; ! values[i] = freqs[node] << 8; ! heap[i] = i; ! } ! /* Construct the Huffman tree by repeatedly combining the least two * frequent nodes. */ do ! { ! int first = heap[0]; ! int last = heap[--heapLen]; ! ! /* Propagate the hole to the leafs of the heap */ ! int ppos = 0; ! int path = 1; ! while (path < heapLen) ! { ! if (path + 1 < heapLen ! && values[heap[path]] > values[heap[path+1]]) ! path++; ! ! heap[ppos] = heap[path]; ! ppos = path; ! path = path * 2 + 1; ! } ! ! /* Now propagate the last element down along path. Normally ! * it shouldn't go too deep. ! */ ! int lastVal = values[last]; ! while ((path = ppos) > 0 ! && values[heap[ppos = (path - 1)/2]] > lastVal) ! heap[path] = heap[ppos]; ! heap[path] = last; ! ! ! int second = heap[0]; ! ! /* Create a new node father of first and second */ ! last = numNodes++; ! childs[2*last] = first; ! childs[2*last+1] = second; ! int mindepth = Math.min(values[first] & 0xff, values[second] & 0xff); ! values[last] = lastVal = values[first] + values[second] - mindepth + 1; ! ! /* Again, propagate the hole to the leafs */ ! ppos = 0; ! path = 1; ! while (path < heapLen) ! { ! if (path + 1 < heapLen ! && values[heap[path]] > values[heap[path+1]]) ! path++; ! ! heap[ppos] = heap[path]; ! ppos = path; ! path = ppos * 2 + 1; ! } ! ! /* Now propagate the new element down along path */ ! while ((path = ppos) > 0 ! && values[heap[ppos = (path - 1)/2]] > lastVal) ! heap[path] = heap[ppos]; ! heap[path] = last; ! } while (heapLen > 1); ! if (heap[0] != childs.length / 2 - 1) ! throw new RuntimeException("Weird!"); ! buildLength(childs); } ! int getEncodedLength() { int len = 0; for (int i = 0; i < freqs.length; i++) ! len += freqs[i] * length[i]; return len; } --- 266,388 ---- int heapLen = 0; int maxCode = 0; for (int n = 0; n < numSymbols; n++) ! { ! int freq = freqs[n]; ! if (freq != 0) ! { ! /* Insert n into heap */ ! int pos = heapLen++; ! int ppos; ! while (pos > 0 && ! freqs[heap[ppos = (pos - 1) / 2]] > freq) { ! heap[pos] = heap[ppos]; ! pos = ppos; ! } ! heap[pos] = n; ! maxCode = n; ! } ! } ! /* We could encode a single literal with 0 bits but then we * don't see the literals. Therefore we force at least two * literals to avoid this case. We don't care about order in ! * this case, both literals get a 1 bit code. */ while (heapLen < 2) ! { ! int node = maxCode < 2 ? ++maxCode : 0; ! heap[heapLen++] = node; ! } numCodes = Math.max(maxCode + 1, minNumCodes); ! int numLeafs = heapLen; int[] childs = new int[4*heapLen - 2]; int[] values = new int[2*heapLen - 1]; int numNodes = numLeafs; for (int i = 0; i < heapLen; i++) ! { ! int node = heap[i]; ! childs[2*i] = node; ! childs[2*i+1] = -1; ! values[i] = freqs[node] << 8; ! heap[i] = i; ! } ! /* Construct the Huffman tree by repeatedly combining the least two * frequent nodes. */ do ! { ! int first = heap[0]; ! int last = heap[--heapLen]; ! ! /* Propagate the hole to the leafs of the heap */ ! int ppos = 0; ! int path = 1; ! while (path < heapLen) ! { ! if (path + 1 < heapLen ! && values[heap[path]] > values[heap[path+1]]) ! path++; ! ! heap[ppos] = heap[path]; ! ppos = path; ! path = path * 2 + 1; ! } ! ! /* Now propagate the last element down along path. Normally ! * it shouldn't go too deep. ! */ ! int lastVal = values[last]; ! while ((path = ppos) > 0 ! && values[heap[ppos = (path - 1)/2]] > lastVal) ! heap[path] = heap[ppos]; ! heap[path] = last; ! ! ! int second = heap[0]; ! ! /* Create a new node father of first and second */ ! last = numNodes++; ! childs[2*last] = first; ! childs[2*last+1] = second; ! int mindepth = Math.min(values[first] & 0xff, values[second] & 0xff); ! values[last] = lastVal = values[first] + values[second] - mindepth + 1; ! ! /* Again, propagate the hole to the leafs */ ! ppos = 0; ! path = 1; ! while (path < heapLen) ! { ! if (path + 1 < heapLen ! && values[heap[path]] > values[heap[path+1]]) ! path++; ! ! heap[ppos] = heap[path]; ! ppos = path; ! path = ppos * 2 + 1; ! } ! ! /* Now propagate the new element down along path */ ! while ((path = ppos) > 0 ! && values[heap[ppos = (path - 1)/2]] > lastVal) ! heap[path] = heap[ppos]; ! heap[path] = last; ! } while (heapLen > 1); ! if (heap[0] != childs.length / 2 - 1) ! throw new RuntimeException("Weird!"); ! buildLength(childs); } ! int getEncodedLength() { int len = 0; for (int i = 0; i < freqs.length; i++) ! len += freqs[i] * length[i]; return len; } *************** class DeflaterHuffman *** 391,436 **** int min_count; /* min repeat count */ int count; /* repeat count of the current code */ int curlen = -1; /* length of current code */ ! int i = 0; while (i < numCodes) ! { ! count = 1; ! int nextlen = length[i]; ! if (nextlen == 0) ! { ! max_count = 138; ! min_count = 3; ! } ! else ! { ! max_count = 6; ! min_count = 3; ! if (curlen != nextlen) ! { ! blTree.freqs[nextlen]++; ! count = 0; ! } ! } ! curlen = nextlen; ! i++; ! while (i < numCodes && curlen == length[i]) ! { ! i++; ! if (++count >= max_count) ! break; ! } ! if (count < min_count) ! blTree.freqs[curlen] += count; ! else if (curlen != 0) ! blTree.freqs[REP_3_6]++; ! else if (count <= 10) ! blTree.freqs[REP_3_10]++; ! else ! blTree.freqs[REP_11_138]++; ! } } void writeTree(Tree blTree) --- 391,436 ---- int min_count; /* min repeat count */ int count; /* repeat count of the current code */ int curlen = -1; /* length of current code */ ! int i = 0; while (i < numCodes) ! { ! count = 1; ! int nextlen = length[i]; ! if (nextlen == 0) ! { ! max_count = 138; ! min_count = 3; ! } ! else ! { ! max_count = 6; ! min_count = 3; ! if (curlen != nextlen) ! { ! blTree.freqs[nextlen]++; ! count = 0; ! } ! } ! curlen = nextlen; ! i++; ! while (i < numCodes && curlen == length[i]) ! { ! i++; ! if (++count >= max_count) ! break; ! } ! if (count < min_count) ! blTree.freqs[curlen] += count; ! else if (curlen != 0) ! blTree.freqs[REP_3_6]++; ! else if (count <= 10) ! blTree.freqs[REP_3_10]++; ! else ! blTree.freqs[REP_11_138]++; ! } } void writeTree(Tree blTree) *************** class DeflaterHuffman *** 439,496 **** int min_count; /* min repeat count */ int count; /* repeat count of the current code */ int curlen = -1; /* length of current code */ ! int i = 0; while (i < numCodes) ! { ! count = 1; ! int nextlen = length[i]; ! if (nextlen == 0) ! { ! max_count = 138; ! min_count = 3; ! } ! else ! { ! max_count = 6; ! min_count = 3; ! if (curlen != nextlen) ! { ! blTree.writeSymbol(nextlen); ! count = 0; ! } ! } ! curlen = nextlen; ! i++; ! while (i < numCodes && curlen == length[i]) ! { ! i++; ! if (++count >= max_count) ! break; ! } ! if (count < min_count) ! { ! while (count-- > 0) ! blTree.writeSymbol(curlen); ! } ! else if (curlen != 0) ! { ! blTree.writeSymbol(REP_3_6); ! pending.writeBits(count - 3, 2); ! } ! else if (count <= 10) ! { ! blTree.writeSymbol(REP_3_10); ! pending.writeBits(count - 3, 3); ! } ! else ! { ! blTree.writeSymbol(REP_11_138); ! pending.writeBits(count - 11, 7); ! } ! } } } --- 439,496 ---- int min_count; /* min repeat count */ int count; /* repeat count of the current code */ int curlen = -1; /* length of current code */ ! int i = 0; while (i < numCodes) ! { ! count = 1; ! int nextlen = length[i]; ! if (nextlen == 0) ! { ! max_count = 138; ! min_count = 3; ! } ! else ! { ! max_count = 6; ! min_count = 3; ! if (curlen != nextlen) ! { ! blTree.writeSymbol(nextlen); ! count = 0; ! } ! } ! curlen = nextlen; ! i++; ! while (i < numCodes && curlen == length[i]) ! { ! i++; ! if (++count >= max_count) ! break; ! } ! if (count < min_count) ! { ! while (count-- > 0) ! blTree.writeSymbol(curlen); ! } ! else if (curlen != 0) ! { ! blTree.writeSymbol(REP_3_6); ! pending.writeBits(count - 3, 2); ! } ! else if (count <= 10) ! { ! blTree.writeSymbol(REP_3_10); ! pending.writeBits(count - 3, 3); ! } ! else ! { ! blTree.writeSymbol(REP_11_138); ! pending.writeBits(count - 11, 7); ! } ! } } } *************** class DeflaterHuffman *** 514,522 **** */ static short bitReverse(int value) { return (short) (bit4Reverse.charAt(value & 0xf) << 12 ! | bit4Reverse.charAt((value >> 4) & 0xf) << 8 ! | bit4Reverse.charAt((value >> 8) & 0xf) << 4 ! | bit4Reverse.charAt(value >> 12)); } static { --- 514,522 ---- */ static short bitReverse(int value) { return (short) (bit4Reverse.charAt(value & 0xf) << 12 ! | bit4Reverse.charAt((value >> 4) & 0xf) << 8 ! | bit4Reverse.charAt((value >> 8) & 0xf) << 4 ! | bit4Reverse.charAt(value >> 12)); } static { *************** class DeflaterHuffman *** 550,557 **** staticDLength[i] = 5; } } ! ! public DeflaterHuffman(DeflaterPending pending) { this.pending = pending; --- 550,557 ---- staticDLength[i] = 5; } } ! ! public DeflaterHuffman(DeflaterPending pending) { this.pending = pending; *************** class DeflaterHuffman *** 578,585 **** int code = 257; while (len >= 8) { ! code += 4; ! len >>= 1; } return code + len; } --- 578,585 ---- int code = 257; while (len >= 8) { ! code += 4; ! len >>= 1; } return code + len; } *************** class DeflaterHuffman *** 588,595 **** int code = 0; while (distance >= 4) { ! code += 2; ! distance >>= 1; } return code + distance; } --- 588,595 ---- int code = 0; while (distance >= 4) { ! code += 2; ! distance >>= 1; } return code + distance; } *************** class DeflaterHuffman *** 610,667 **** } public void compressBlock() { ! for (int i = 0; i < last_lit; i++) { ! int litlen = l_buf[i] & 0xff; ! int dist = d_buf[i]; ! if (dist-- != 0) ! { ! if (DeflaterConstants.DEBUGGING) ! System.err.print("["+(dist+1)+","+(litlen+3)+"]: "); ! int lc = l_code(litlen); ! literalTree.writeSymbol(lc); ! int bits = (lc - 261) / 4; ! if (bits > 0 && bits <= 5) ! pending.writeBits(litlen & ((1 << bits) - 1), bits); ! int dc = d_code(dist); ! distTree.writeSymbol(dc); ! bits = dc / 2 - 1; ! if (bits > 0) ! pending.writeBits(dist & ((1 << bits) - 1), bits); ! } ! else ! { ! if (DeflaterConstants.DEBUGGING) ! { ! if (litlen > 32 && litlen < 127) ! System.err.print("("+(char)litlen+"): "); ! else ! System.err.print("{"+litlen+"}: "); ! } ! literalTree.writeSymbol(litlen); ! } } if (DeflaterConstants.DEBUGGING) System.err.print("EOF: "); literalTree.writeSymbol(EOF_SYMBOL); if (DeflaterConstants.DEBUGGING) { ! literalTree.checkEmpty(); ! distTree.checkEmpty(); } } ! public void flushStoredBlock(byte[] stored, ! int stored_offset, int stored_len, ! boolean lastBlock) { if (DeflaterConstants.DEBUGGING) System.err.println("Flushing stored block "+ stored_len); pending.writeBits((DeflaterConstants.STORED_BLOCK << 1) ! + (lastBlock ? 1 : 0), 3); pending.alignToByte(); pending.writeShort(stored_len); pending.writeShort(~stored_len); --- 610,667 ---- } public void compressBlock() { ! for (int i = 0; i < last_lit; i++) { ! int litlen = l_buf[i] & 0xff; ! int dist = d_buf[i]; ! if (dist-- != 0) ! { ! if (DeflaterConstants.DEBUGGING) ! System.err.print("["+(dist+1)+","+(litlen+3)+"]: "); ! int lc = l_code(litlen); ! literalTree.writeSymbol(lc); ! int bits = (lc - 261) / 4; ! if (bits > 0 && bits <= 5) ! pending.writeBits(litlen & ((1 << bits) - 1), bits); ! int dc = d_code(dist); ! distTree.writeSymbol(dc); ! bits = dc / 2 - 1; ! if (bits > 0) ! pending.writeBits(dist & ((1 << bits) - 1), bits); ! } ! else ! { ! if (DeflaterConstants.DEBUGGING) ! { ! if (litlen > 32 && litlen < 127) ! System.err.print("("+(char)litlen+"): "); ! else ! System.err.print("{"+litlen+"}: "); ! } ! literalTree.writeSymbol(litlen); ! } } if (DeflaterConstants.DEBUGGING) System.err.print("EOF: "); literalTree.writeSymbol(EOF_SYMBOL); if (DeflaterConstants.DEBUGGING) { ! literalTree.checkEmpty(); ! distTree.checkEmpty(); } } ! public void flushStoredBlock(byte[] stored, ! int stored_offset, int stored_len, ! boolean lastBlock) { if (DeflaterConstants.DEBUGGING) System.err.println("Flushing stored block "+ stored_len); pending.writeBits((DeflaterConstants.STORED_BLOCK << 1) ! + (lastBlock ? 1 : 0), 3); pending.alignToByte(); pending.writeShort(stored_len); pending.writeShort(~stored_len); *************** class DeflaterHuffman *** 670,676 **** } public void flushBlock(byte[] stored, int stored_offset, int stored_len, ! boolean lastBlock) { literalTree.freqs[EOF_SYMBOL]++; /* Build trees */ --- 670,676 ---- } public void flushBlock(byte[] stored, int stored_offset, int stored_len, ! boolean lastBlock) { literalTree.freqs[EOF_SYMBOL]++; /* Build trees */ *************** class DeflaterHuffman *** 687,694 **** int blTreeCodes = 4; for (int i = 18; i > blTreeCodes; i--) { ! if (blTree.length[BL_ORDER[i]] > 0) ! blTreeCodes = i+1; } int opt_len = 14 + blTreeCodes * 3 + blTree.getEncodedLength() + literalTree.getEncodedLength() + distTree.getEncodedLength() --- 687,694 ---- int blTreeCodes = 4; for (int i = 18; i > blTreeCodes; i--) { ! if (blTree.length[BL_ORDER[i]] > 0) ! blTreeCodes = i+1; } int opt_len = 14 + blTreeCodes * 3 + blTree.getEncodedLength() + literalTree.getEncodedLength() + distTree.getEncodedLength() *************** class DeflaterHuffman *** 701,736 **** static_len += distTree.freqs[i] * staticDLength[i]; if (opt_len >= static_len) { ! /* Force static trees */ ! opt_len = static_len; } if (stored_offset >= 0 && stored_len+4 < opt_len >> 3) { ! /* Store Block */ ! if (DeflaterConstants.DEBUGGING) ! System.err.println("Storing, since " + stored_len + " < " + opt_len ! + " <= " + static_len); ! flushStoredBlock(stored, stored_offset, stored_len, lastBlock); } else if (opt_len == static_len) { ! /* Encode with static tree */ ! pending.writeBits((DeflaterConstants.STATIC_TREES << 1) ! + (lastBlock ? 1 : 0), 3); ! literalTree.setStaticCodes(staticLCodes, staticLLength); ! distTree.setStaticCodes(staticDCodes, staticDLength); ! compressBlock(); ! reset(); } else { ! /* Encode with dynamic tree */ ! pending.writeBits((DeflaterConstants.DYN_TREES << 1) ! + (lastBlock ? 1 : 0), 3); ! sendAllTrees(blTreeCodes); ! compressBlock(); ! reset(); } } --- 701,736 ---- static_len += distTree.freqs[i] * staticDLength[i]; if (opt_len >= static_len) { ! /* Force static trees */ ! opt_len = static_len; } if (stored_offset >= 0 && stored_len+4 < opt_len >> 3) { ! /* Store Block */ ! if (DeflaterConstants.DEBUGGING) ! System.err.println("Storing, since " + stored_len + " < " + opt_len ! + " <= " + static_len); ! flushStoredBlock(stored, stored_offset, stored_len, lastBlock); } else if (opt_len == static_len) { ! /* Encode with static tree */ ! pending.writeBits((DeflaterConstants.STATIC_TREES << 1) ! + (lastBlock ? 1 : 0), 3); ! literalTree.setStaticCodes(staticLCodes, staticLLength); ! distTree.setStaticCodes(staticDCodes, staticDLength); ! compressBlock(); ! reset(); } else { ! /* Encode with dynamic tree */ ! pending.writeBits((DeflaterConstants.DYN_TREES << 1) ! + (lastBlock ? 1 : 0), 3); ! sendAllTrees(blTreeCodes); ! compressBlock(); ! reset(); } } *************** class DeflaterHuffman *** 739,752 **** return last_lit == BUFSIZE; } ! public final boolean tallyLit(int lit) { if (DeflaterConstants.DEBUGGING) { ! if (lit > 32 && lit < 127) ! System.err.println("("+(char)lit+")"); ! else ! System.err.println("{"+lit+"}"); } d_buf[last_lit] = 0; l_buf[last_lit++] = (byte) lit; --- 739,752 ---- return last_lit == BUFSIZE; } ! public final boolean tallyLit(int lit) { if (DeflaterConstants.DEBUGGING) { ! if (lit > 32 && lit < 127) ! System.err.println("("+(char)lit+")"); ! else ! System.err.println("{"+lit+"}"); } d_buf[last_lit] = 0; l_buf[last_lit++] = (byte) lit; *************** class DeflaterHuffman *** 754,760 **** return last_lit == BUFSIZE; } ! public final boolean tallyDist(int dist, int len) { if (DeflaterConstants.DEBUGGING) System.err.println("["+dist+","+len+"]"); --- 754,760 ---- return last_lit == BUFSIZE; } ! public final boolean tallyDist(int dist, int len) { if (DeflaterConstants.DEBUGGING) System.err.println("["+dist+","+len+"]"); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/DeflaterOutputStream.java gcc-4.6.0/libjava/classpath/java/util/zip/DeflaterOutputStream.java *** gcc-4.5.2/libjava/classpath/java/util/zip/DeflaterOutputStream.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/DeflaterOutputStream.java Tue Jan 11 19:46:05 2011 *************** import java.io.OutputStream; *** 57,77 **** * finishing the stream. * * @author Tom Tromey, Jochen Hoenicke ! * @date Jan 11, 2001 */ public class DeflaterOutputStream extends FilterOutputStream { ! /** * This buffer is used temporarily to retrieve the bytes from the ! * deflater and write them to the underlying output stream. */ protected byte[] buf; ! /** * The deflater which is used to deflate the stream. */ protected Deflater def; ! /** * Deflates everything in the def's input buffers. This will call * def.deflate() until all bytes from the input buffers --- 57,77 ---- * finishing the stream. * * @author Tom Tromey, Jochen Hoenicke ! * @date Jan 11, 2001 */ public class DeflaterOutputStream extends FilterOutputStream { ! /** * This buffer is used temporarily to retrieve the bytes from the ! * deflater and write them to the underlying output stream. */ protected byte[] buf; ! /** * The deflater which is used to deflate the stream. */ protected Deflater def; ! /** * Deflates everything in the def's input buffers. This will call * def.deflate() until all bytes from the input buffers *************** public class DeflaterOutputStream extend *** 81,99 **** { while (! def.needsInput()) { ! int len = def.deflate(buf, 0, buf.length); ! // System.err.println("DOS deflated " + len + " out of " + buf.length); ! if (len <= 0) ! break; ! out.write(buf, 0, len); } if (! def.needsInput()) throw new InternalError("Can't deflate all input?"); } ! /** * Creates a new DeflaterOutputStream with a default Deflater and * default buffer size. * @param out the output stream where deflated output should be written. --- 81,99 ---- { while (! def.needsInput()) { ! int len = def.deflate(buf, 0, buf.length); ! // System.err.println("DOS deflated " + len + " out of " + buf.length); ! if (len <= 0) ! break; ! out.write(buf, 0, len); } if (! def.needsInput()) throw new InternalError("Can't deflate all input?"); } ! /** * Creates a new DeflaterOutputStream with a default Deflater and * default buffer size. * @param out the output stream where deflated output should be written. *************** public class DeflaterOutputStream extend *** 103,109 **** this(out, new Deflater(), 4096); } ! /** * Creates a new DeflaterOutputStream with the given Deflater and * default buffer size. * @param out the output stream where deflated output should be written. --- 103,109 ---- this(out, new Deflater(), 4096); } ! /** * Creates a new DeflaterOutputStream with the given Deflater and * default buffer size. * @param out the output stream where deflated output should be written. *************** public class DeflaterOutputStream extend *** 114,120 **** this(out, defl, 4096); } ! /** * Creates a new DeflaterOutputStream with the given Deflater and * buffer size. * @param out the output stream where deflated output should be written. --- 114,120 ---- this(out, defl, 4096); } ! /** * Creates a new DeflaterOutputStream with the given Deflater and * buffer size. * @param out the output stream where deflated output should be written. *************** public class DeflaterOutputStream extend *** 131,137 **** def = defl; } ! /** * Flushes the stream by calling flush() on the deflater and then * on the underlying stream. This ensures that all bytes are * flushed. This function doesn't work in Sun's JDK, but only in --- 131,137 ---- def = defl; } ! /** * Flushes the stream by calling flush() on the deflater and then * on the underlying stream. This ensures that all bytes are * flushed. This function doesn't work in Sun's JDK, but only in *************** public class DeflaterOutputStream extend *** 147,163 **** /** * Finishes the stream by calling finish() on the deflater. This * was the only way to ensure that all bytes are flushed in Sun's ! * JDK. */ public void finish() throws IOException { def.finish(); while (! def.finished()) { ! int len = def.deflate(buf, 0, buf.length); ! if (len <= 0) ! break; ! out.write(buf, 0, len); } if (! def.finished()) throw new InternalError("Can't deflate all input?"); --- 147,163 ---- /** * Finishes the stream by calling finish() on the deflater. This * was the only way to ensure that all bytes are flushed in Sun's ! * JDK. */ public void finish() throws IOException { def.finish(); while (! def.finished()) { ! int len = def.deflate(buf, 0, buf.length); ! if (len <= 0) ! break; ! out.write(buf, 0, len); } if (! def.finished()) throw new InternalError("Can't deflate all input?"); *************** public class DeflaterOutputStream extend *** 165,171 **** } /** ! * Calls finish() and closes the stream. */ public void close() throws IOException { --- 165,171 ---- } /** ! * Calls finish() and closes the stream. */ public void close() throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/DeflaterPending.java gcc-4.6.0/libjava/classpath/java/util/zip/DeflaterPending.java *** gcc-4.5.2/libjava/classpath/java/util/zip/DeflaterPending.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/DeflaterPending.java Tue Jan 11 19:46:05 2011 *************** package java.util.zip; *** 41,47 **** * This class stores the pending output of the Deflater. * * @author Jochen Hoenicke ! * @date Jan 5, 2000 */ class DeflaterPending extends PendingBuffer --- 41,47 ---- * This class stores the pending output of the Deflater. * * @author Jochen Hoenicke ! * @date Jan 5, 2000 */ class DeflaterPending extends PendingBuffer *************** class DeflaterPending extends PendingBuf *** 51,54 **** super(DeflaterConstants.PENDING_BUF_SIZE); } } - --- 51,53 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/GZIPInputStream.java gcc-4.6.0/libjava/classpath/java/util/zip/GZIPInputStream.java *** gcc-4.5.2/libjava/classpath/java/util/zip/GZIPInputStream.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/util/zip/GZIPInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.IOException; *** 43,49 **** import java.io.InputStream; /** ! * This filter stream is used to decompress a "GZIP" format stream. * The "GZIP" format is described in RFC 1952. * * @author John Leuner --- 43,49 ---- import java.io.InputStream; /** ! * This filter stream is used to decompress a "GZIP" format stream. * The "GZIP" format is described in RFC 1952. * * @author John Leuner *************** public class GZIPInputStream *** 86,96 **** /** * The CRC-32 checksum value for uncompressed data. */ ! protected CRC32 crc; /** * Indicates whether or not the end of the stream has been reached. ! */ protected boolean eos; /** --- 86,96 ---- /** * The CRC-32 checksum value for uncompressed data. */ ! protected CRC32 crc; /** * Indicates whether or not the end of the stream has been reached. ! */ protected boolean eos; /** *************** public class GZIPInputStream *** 101,107 **** /** * Creates a GZIPInputStream with the default buffer size. * ! * @param in The stream to read compressed data from * (in GZIP format). * * @throws IOException if an error occurs during an I/O operation. --- 101,107 ---- /** * Creates a GZIPInputStream with the default buffer size. * ! * @param in The stream to read compressed data from * (in GZIP format). * * @throws IOException if an error occurs during an I/O operation. *************** public class GZIPInputStream *** 115,121 **** /** * Creates a GZIPInputStream with the specified buffer size. * ! * @param in The stream to read compressed data from * (in GZIP format). * @param size The size of the buffer to use. * --- 115,121 ---- /** * Creates a GZIPInputStream with the specified buffer size. * ! * @param in The stream to read compressed data from * (in GZIP format). * @param size The size of the buffer to use. * *************** public class GZIPInputStream *** 204,210 **** throw new IOException("Error in GZIP header, bad magic code"); headCRC.update(magic); headCRC.update(magic2); ! /* 2. Check the compression type (must be 8) */ int CM = in.read(); if (CM != Deflater.DEFLATED) --- 204,210 ---- throw new IOException("Error in GZIP header, bad magic code"); headCRC.update(magic); headCRC.update(magic2); ! /* 2. Check the compression type (must be 8) */ int CM = in.read(); if (CM != Deflater.DEFLATED) *************** public class GZIPInputStream *** 216,247 **** if (flags < 0) throw new EOFException("Early EOF in GZIP header"); headCRC.update(flags); ! /* This flag byte is divided into individual bits as follows: ! ! bit 0 FTEXT ! bit 1 FHCRC ! bit 2 FEXTRA ! bit 3 FNAME ! bit 4 FCOMMENT ! bit 5 reserved ! bit 6 reserved ! bit 7 reserved */ ! ! /* 3.1 Check the reserved bits are zero */ if ((flags & 0xd0) != 0) throw new IOException("Reserved flag bits in GZIP header != 0"); ! /* 4.-6. Skip the modification time, extra flags, and OS type */ for (int i=0; i< 6; i++) { int readByte = in.read(); if (readByte < 0) ! throw new EOFException("Early EOF in GZIP header"); headCRC.update(readByte); } ! /* 7. Read extra field */ if ((flags & FEXTRA) != 0) { --- 216,247 ---- if (flags < 0) throw new EOFException("Early EOF in GZIP header"); headCRC.update(flags); ! /* This flag byte is divided into individual bits as follows: ! ! bit 0 FTEXT ! bit 1 FHCRC ! bit 2 FEXTRA ! bit 3 FNAME ! bit 4 FCOMMENT ! bit 5 reserved ! bit 6 reserved ! bit 7 reserved */ ! ! /* 3.1 Check the reserved bits are zero */ if ((flags & 0xd0) != 0) throw new IOException("Reserved flag bits in GZIP header != 0"); ! /* 4.-6. Skip the modification time, extra flags, and OS type */ for (int i=0; i< 6; i++) { int readByte = in.read(); if (readByte < 0) ! throw new EOFException("Early EOF in GZIP header"); headCRC.update(readByte); } ! /* 7. Read extra field */ if ((flags & FEXTRA) != 0) { *************** public class GZIPInputStream *** 249,287 **** for (int i=0; i< 2; i++) { int readByte = in.read(); ! if (readByte < 0) ! throw new EOFException("Early EOF in GZIP header"); ! headCRC.update(readByte); } if (in.read() < 0 || in.read() < 0) ! throw new EOFException("Early EOF in GZIP header"); ! int len1, len2, extraLen; len1 = in.read(); len2 = in.read(); if ((len1 < 0) || (len2 < 0)) ! throw new EOFException("Early EOF in GZIP header"); headCRC.update(len1); headCRC.update(len2); extraLen = (len1 << 8) | len2; for (int i = 0; i < extraLen;i++) { ! int readByte = in.read(); ! if (readByte < 0) ! throw new EOFException("Early EOF in GZIP header"); ! headCRC.update(readByte); } } ! /* 8. Read file name */ if ((flags & FNAME) != 0) { int readByte; while ( (readByte = in.read()) > 0) ! headCRC.update(readByte); if (readByte < 0) ! throw new EOFException("Early EOF in GZIP file name"); headCRC.update(readByte); } --- 249,287 ---- for (int i=0; i< 2; i++) { int readByte = in.read(); ! if (readByte < 0) ! throw new EOFException("Early EOF in GZIP header"); ! headCRC.update(readByte); } if (in.read() < 0 || in.read() < 0) ! throw new EOFException("Early EOF in GZIP header"); ! int len1, len2, extraLen; len1 = in.read(); len2 = in.read(); if ((len1 < 0) || (len2 < 0)) ! throw new EOFException("Early EOF in GZIP header"); headCRC.update(len1); headCRC.update(len2); extraLen = (len1 << 8) | len2; for (int i = 0; i < extraLen;i++) { ! int readByte = in.read(); ! if (readByte < 0) ! throw new EOFException("Early EOF in GZIP header"); ! headCRC.update(readByte); } } ! /* 8. Read file name */ if ((flags & FNAME) != 0) { int readByte; while ( (readByte = in.read()) > 0) ! headCRC.update(readByte); if (readByte < 0) ! throw new EOFException("Early EOF in GZIP file name"); headCRC.update(readByte); } *************** public class GZIPInputStream *** 296,302 **** throw new EOFException("Early EOF in GZIP comment"); headCRC.update(readByte); } ! /* 10. Read header CRC */ if ((flags & FHCRC) != 0) { --- 296,302 ---- throw new EOFException("Early EOF in GZIP comment"); headCRC.update(readByte); } ! /* 10. Read header CRC */ if ((flags & FHCRC) != 0) { *************** public class GZIPInputStream *** 304,319 **** int crcval = in.read(); if (crcval < 0) throw new EOFException("Early EOF in GZIP header"); ! tempByte = in.read(); if (tempByte < 0) throw new EOFException("Early EOF in GZIP header"); ! crcval = (crcval << 8) | tempByte; if (crcval != ((int) headCRC.getValue() & 0xffff)) throw new IOException("Header CRC value mismatch"); } ! readGZIPHeader = true; //System.err.println("Read GZIP header"); } --- 304,319 ---- int crcval = in.read(); if (crcval < 0) throw new EOFException("Early EOF in GZIP header"); ! tempByte = in.read(); if (tempByte < 0) throw new EOFException("Early EOF in GZIP header"); ! crcval = (crcval << 8) | tempByte; if (crcval != ((int) headCRC.getValue() & 0xffff)) throw new IOException("Header CRC value mismatch"); } ! readGZIPHeader = true; //System.err.println("Read GZIP header"); } *************** public class GZIPInputStream *** 330,336 **** { int count = in.read(footer, 8-needed, needed); if (count <= 0) ! throw new EOFException("Early EOF in GZIP footer"); needed -= count; //Jewel Jan 16 } --- 330,336 ---- { int count = in.read(footer, 8-needed, needed); if (count <= 0) ! throw new EOFException("Early EOF in GZIP footer"); needed -= count; //Jewel Jan 16 } *************** public class GZIPInputStream *** 338,346 **** | ((footer[2] & 0xff) << 16) | (footer[3] << 24); if (crcval != (int) crc.getValue()) throw new IOException("GZIP crc sum mismatch, theirs \"" ! + Integer.toHexString(crcval) ! + "\" and ours \"" ! + Integer.toHexString( (int) crc.getValue())); int total = (footer[4] & 0xff) | ((footer[5] & 0xff) << 8) | ((footer[6] & 0xff) << 16) | (footer[7] << 24); --- 338,346 ---- | ((footer[2] & 0xff) << 16) | (footer[3] << 24); if (crcval != (int) crc.getValue()) throw new IOException("GZIP crc sum mismatch, theirs \"" ! + Integer.toHexString(crcval) ! + "\" and ours \"" ! + Integer.toHexString( (int) crc.getValue())); int total = (footer[4] & 0xff) | ((footer[5] & 0xff) << 8) | ((footer[6] & 0xff) << 16) | (footer[7] << 24); diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/GZIPOutputStream.java gcc-4.6.0/libjava/classpath/java/util/zip/GZIPOutputStream.java *** gcc-4.5.2/libjava/classpath/java/util/zip/GZIPOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/GZIPOutputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.IOException; *** 41,47 **** import java.io.OutputStream; /** ! * This filter stream is used to compress a stream into a "GZIP" stream. * The "GZIP" format is described in RFC 1952. * * @author John Leuner --- 41,47 ---- import java.io.OutputStream; /** ! * This filter stream is used to compress a stream into a "GZIP" stream. * The "GZIP" format is described in RFC 1952. * * @author John Leuner *************** public class GZIPOutputStream extends De *** 64,71 **** /** * Creates a GZIPOutputStream with the default buffer size * ! * @param out The stream to read data (to be compressed) from ! * */ public GZIPOutputStream(OutputStream out) throws IOException { --- 64,71 ---- /** * Creates a GZIPOutputStream with the default buffer size * ! * @param out The stream to read data (to be compressed) from ! * */ public GZIPOutputStream(OutputStream out) throws IOException { *************** public class GZIPOutputStream extends De *** 75,82 **** /** * Creates a GZIPOutputStream with the specified buffer size * ! * @param out The stream to read compressed data from ! * @param size Size of the buffer to use */ public GZIPOutputStream(OutputStream out, int size) throws IOException { --- 75,82 ---- /** * Creates a GZIPOutputStream with the specified buffer size * ! * @param out The stream to read compressed data from ! * @param size Size of the buffer to use */ public GZIPOutputStream(OutputStream out, int size) throws IOException { *************** public class GZIPOutputStream extends De *** 85,109 **** int mod_time = (int) (System.currentTimeMillis() / 1000L); byte[] gzipHeader = { ! /* The two magic bytes */ ! (byte) GZIPInputStream.GZIP_MAGIC, ! (byte) (GZIPInputStream.GZIP_MAGIC >> 8), ! ! /* The compression type */ ! (byte) Deflater.DEFLATED, ! /* The flags (not set) */ ! 0, ! ! /* The modification time */ ! (byte) mod_time, (byte) (mod_time >> 8), ! (byte) (mod_time >> 16), (byte) (mod_time >> 24), ! /* The extra flags */ ! 0, ! ! /* The OS type (unknown) */ ! (byte) 255 }; out.write(gzipHeader); --- 85,109 ---- int mod_time = (int) (System.currentTimeMillis() / 1000L); byte[] gzipHeader = { ! /* The two magic bytes */ ! (byte) GZIPInputStream.GZIP_MAGIC, ! (byte) (GZIPInputStream.GZIP_MAGIC >> 8), ! ! /* The compression type */ ! (byte) Deflater.DEFLATED, ! /* The flags (not set) */ ! 0, ! /* The modification time */ ! (byte) mod_time, (byte) (mod_time >> 8), ! (byte) (mod_time >> 16), (byte) (mod_time >> 24), ! ! /* The extra flags */ ! 0, ! ! /* The OS type (unknown) */ ! (byte) 255 }; out.write(gzipHeader); *************** public class GZIPOutputStream extends De *** 134,151 **** int totalin = def.getTotalIn(); int crcval = (int) (crc.getValue() & 0xffffffff); ! // System.err.println("CRC val is " + Integer.toHexString( crcval ) + " and length " + Integer.toHexString(totalin)); ! ! byte[] gzipFooter = { ! (byte) crcval, (byte) (crcval >> 8), ! (byte) (crcval >> 16), (byte) (crcval >> 24), ! (byte) totalin, (byte) (totalin >> 8), ! (byte) (totalin >> 16), (byte) (totalin >> 24) }; out.write(gzipFooter); ! // System.err.println("wrote GZIP trailer (" + gzipFooter.length + " bytes )"); } } --- 134,151 ---- int totalin = def.getTotalIn(); int crcval = (int) (crc.getValue() & 0xffffffff); ! // System.err.println("CRC val is " + Integer.toHexString( crcval ) + " and length " + Integer.toHexString(totalin)); ! ! byte[] gzipFooter = { ! (byte) crcval, (byte) (crcval >> 8), ! (byte) (crcval >> 16), (byte) (crcval >> 24), ! (byte) totalin, (byte) (totalin >> 8), ! (byte) (totalin >> 16), (byte) (totalin >> 24) }; out.write(gzipFooter); ! // System.err.println("wrote GZIP trailer (" + gzipFooter.length + " bytes )"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/Inflater.java gcc-4.6.0/libjava/classpath/java/util/zip/Inflater.java *** gcc-4.5.2/libjava/classpath/java/util/zip/Inflater.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/zip/Inflater.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package java.util.zip; *** 43,49 **** */ /** ! * Inflater is used to decompress data that has been compressed according * to the "deflate" standard described in rfc1950. * * The usage is as following. First you have to set some input with --- 43,49 ---- */ /** ! * Inflater is used to decompress data that has been compressed according * to the "deflate" standard described in rfc1950. * * The usage is as following. First you have to set some input with *************** package java.util.zip; *** 51,60 **** * inflate any bytes there may be three reasons: *

                              *
                            • needsInput() returns true because the input buffer is empty. ! * You have to provide more input with setInput(). * NOTE: needsInput() also returns true when, the stream is finished. *
                            • ! *
                            • needsDictionary() returns true, you have to provide a preset * dictionary with setDictionary().
                            • *
                            • finished() returns true, the inflater has finished.
                            • *
                            --- 51,60 ---- * inflate any bytes there may be three reasons: *
                              *
                            • needsInput() returns true because the input buffer is empty. ! * You have to provide more input with setInput(). * NOTE: needsInput() also returns true when, the stream is finished. *
                            • ! *
                            • needsDictionary() returns true, you have to provide a preset * dictionary with setDictionary().
                            • *
                            • finished() returns true, the inflater has finished.
                            • *
                            *************** package java.util.zip; *** 69,83 **** public class Inflater { /* Copy lengths for literal codes 257..285 */ ! private static final int CPLENS[] = ! { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 }; ! ! /* Extra bits for literal codes 257..285 */ ! private static final int CPLEXT[] = ! { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 }; --- 69,83 ---- public class Inflater { /* Copy lengths for literal codes 257..285 */ ! private static final int CPLENS[] = ! { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 }; ! ! /* Extra bits for literal codes 257..285 */ ! private static final int CPLEXT[] = ! { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 }; *************** public class Inflater *** 88,98 **** 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 }; ! /* Extra bits for distance codes */ private static final int CPDEXT[] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, ! 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 }; --- 88,98 ---- 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 }; ! /* Extra bits for distance codes */ private static final int CPDEXT[] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, ! 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 }; *************** public class Inflater *** 122,131 **** * Only valid if mode is DECODE_DICT or DECODE_CHKSUM. */ private int readAdler; ! /** * The number of bits needed to complete the current state. This * is valid, if mode is DECODE_DICT, DECODE_CHKSUM, ! * DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. */ private int neededBits; private int repLength, repDist; --- 122,131 ---- * Only valid if mode is DECODE_DICT or DECODE_CHKSUM. */ private int readAdler; ! /** * The number of bits needed to complete the current state. This * is valid, if mode is DECODE_DICT, DECODE_CHKSUM, ! * DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. */ private int neededBits; private int repLength, repDist; *************** public class Inflater *** 133,139 **** /** * True, if the last block flag was set in the last block of the * inflated stream. This means that the stream ends after the ! * current block. */ private boolean isLastBlock; --- 133,139 ---- /** * True, if the last block flag was set in the last block of the * inflated stream. This means that the stream ends after the ! * current block. */ private boolean isLastBlock; *************** public class Inflater *** 143,149 **** private long totalOut; /** * The total number of bytes set with setInput(). This is not the ! * value returned by getTotalIn(), since this also includes the * unprocessed input. */ private long totalIn; --- 143,149 ---- private long totalOut; /** * The total number of bytes set with setInput(). This is not the ! * value returned by getTotalIn(), since this also includes the * unprocessed input. */ private long totalIn; *************** public class Inflater *** 198,204 **** * for the Sun implementation). Exists only for compatibility * with Sun's JDK, where the compressor allocates native memory. * If you call any method (even reset) afterwards the behaviour is ! * undefined. */ public void end () { --- 198,204 ---- * for the Sun implementation). Exists only for compatibility * with Sun's JDK, where the compressor allocates native memory. * If you call any method (even reset) afterwards the behaviour is ! * undefined. */ public void end () { *************** public class Inflater *** 214,220 **** * Returns true, if the inflater has finished. This means, that no * input is needed and no output can be produced. */ ! public boolean finished() { return mode == FINISHED && outputWindow.getAvailable() == 0; } --- 214,220 ---- * Returns true, if the inflater has finished. This means, that no * input is needed and no output can be produced. */ ! public boolean finished() { return mode == FINISHED && outputWindow.getAvailable() == 0; } *************** public class Inflater *** 230,247 **** { return needsDictionary() ? readAdler : (int) adler.getValue(); } ! /** * Gets the number of unprocessed input. Useful, if the end of the * stream is reached and you want to further process the bytes after ! * the deflate stream. * @return the number of bytes of the input which were not processed. */ public int getRemaining() { return input.getAvailableBytes(); } ! /** * Gets the total number of processed compressed input bytes. * @return the total number of bytes of processed input bytes. --- 230,247 ---- { return needsDictionary() ? readAdler : (int) adler.getValue(); } ! /** * Gets the number of unprocessed input. Useful, if the end of the * stream is reached and you want to further process the bytes after ! * the deflate stream. * @return the number of bytes of the input which were not processed. */ public int getRemaining() { return input.getAvailableBytes(); } ! /** * Gets the total number of processed compressed input bytes. * @return the total number of bytes of processed input bytes. *************** public class Inflater *** 283,293 **** /** * Inflates the compressed stream to the output buffer. If this * returns 0, you should check, whether needsDictionary(), ! * needsInput() or finished() returns true, to determine why no * further output is produced. * @param buf the output buffer. * @return the number of bytes written to the buffer, 0 if no further ! * output can be produced. * @exception DataFormatException if deflated stream is invalid. * @exception IllegalArgumentException if buf has length 0. */ --- 283,293 ---- /** * Inflates the compressed stream to the output buffer. If this * returns 0, you should check, whether needsDictionary(), ! * needsInput() or finished() returns true, to determine why no * further output is produced. * @param buf the output buffer. * @return the number of bytes written to the buffer, 0 if no further ! * output can be produced. * @exception DataFormatException if deflated stream is invalid. * @exception IllegalArgumentException if buf has length 0. */ *************** public class Inflater *** 299,347 **** /** * Inflates the compressed stream to the output buffer. If this * returns 0, you should check, whether needsDictionary(), ! * needsInput() or finished() returns true, to determine why no * further output is produced. * @param buf the output buffer. * @param off the offset into buffer where the output should start. * @param len the maximum length of the output. * @return the number of bytes written to the buffer, 0 if no further ! * output can be produced. * @exception DataFormatException if deflated stream is invalid. * @exception IndexOutOfBoundsException if the off and/or len are wrong. */ public int inflate (byte[] buf, int off, int len) throws DataFormatException { - /* Special case: len may be zero */ - if (len == 0) - return 0; /* Check for correct buff, off, len triple */ if (0 > off || off > off + len || off + len > buf.length) throw new ArrayIndexOutOfBoundsException(); int count = 0; ! int more; ! do { ! if (mode != DECODE_CHKSUM) ! { ! /* Don't give away any output, if we are waiting for the ! * checksum in the input stream. ! * ! * With this trick we have always: ! * needsInput() and not finished() ! * implies more output can be produced. ! */ ! more = outputWindow.copyOutput(buf, off, len); ! adler.update(buf, off, more); ! off += more; ! count += more; ! totalOut += more; ! len -= more; ! if (len == 0) ! return count; ! } } - while (decode() || (outputWindow.getAvailable() > 0 - && mode != DECODE_CHKSUM)); return count; } --- 299,339 ---- /** * Inflates the compressed stream to the output buffer. If this * returns 0, you should check, whether needsDictionary(), ! * needsInput() or finished() returns true, to determine why no * further output is produced. * @param buf the output buffer. * @param off the offset into buffer where the output should start. * @param len the maximum length of the output. * @return the number of bytes written to the buffer, 0 if no further ! * output can be produced. * @exception DataFormatException if deflated stream is invalid. * @exception IndexOutOfBoundsException if the off and/or len are wrong. */ public int inflate (byte[] buf, int off, int len) throws DataFormatException { /* Check for correct buff, off, len triple */ if (0 > off || off > off + len || off + len > buf.length) throw new ArrayIndexOutOfBoundsException(); int count = 0; ! for (;;) { ! if (outputWindow.getAvailable() == 0) ! { ! if (!decode()) ! break; ! } ! else if (len > 0) ! { ! int more = outputWindow.copyOutput(buf, off, len); ! adler.update(buf, off, more); ! off += more; ! count += more; ! totalOut += more; ! len -= more; ! } ! else ! break; } return count; } *************** public class Inflater *** 359,365 **** * * NOTE: This method also returns true when the stream is finished. */ ! public boolean needsInput () { return input.needsInput (); } --- 351,357 ---- * * NOTE: This method also returns true when the stream is finished. */ ! public boolean needsInput () { return input.needsInput (); } *************** public class Inflater *** 389,395 **** * @param buffer the dictionary. * @exception IllegalStateException if no dictionary is needed. * @exception IllegalArgumentException if the dictionary checksum is ! * wrong. */ public void setDictionary (byte[] buffer) { --- 381,387 ---- * @param buffer the dictionary. * @exception IllegalStateException if no dictionary is needed. * @exception IllegalArgumentException if the dictionary checksum is ! * wrong. */ public void setDictionary (byte[] buffer) { *************** public class Inflater *** 406,412 **** * @param len the length of the dictionary. * @exception IllegalStateException if no dictionary is needed. * @exception IllegalArgumentException if the dictionary checksum is ! * wrong. * @exception IndexOutOfBoundsException if the off and/or len are wrong. */ public void setDictionary (byte[] buffer, int off, int len) --- 398,404 ---- * @param len the length of the dictionary. * @exception IllegalStateException if no dictionary is needed. * @exception IllegalArgumentException if the dictionary checksum is ! * wrong. * @exception IndexOutOfBoundsException if the off and/or len are wrong. */ public void setDictionary (byte[] buffer, int off, int len) *************** public class Inflater *** 428,434 **** * @param buf the input. * @exception IllegalStateException if no input is needed. */ ! public void setInput (byte[] buf) { setInput (buf, 0, buf.length); } --- 420,426 ---- * @param buf the input. * @exception IllegalStateException if no input is needed. */ ! public void setInput (byte[] buf) { setInput (buf, 0, buf.length); } *************** public class Inflater *** 438,448 **** * returns true. * @param buf the input. * @param off the offset into buffer where the input starts. ! * @param len the length of the input. * @exception IllegalStateException if no input is needed. * @exception IndexOutOfBoundsException if the off and/or len are wrong. */ ! public void setInput (byte[] buf, int off, int len) { input.setInput (buf, off, len); totalIn += len; --- 430,440 ---- * returns true. * @param buf the input. * @param off the offset into buffer where the input starts. ! * @param len the length of the input. * @exception IllegalStateException if no input is needed. * @exception IndexOutOfBoundsException if the off and/or len are wrong. */ ! public void setInput (byte[] buf, int off, int len) { input.setInput (buf, off, len); totalIn += len; *************** public class Inflater *** 450,456 **** /** * Decodes the deflate header. ! * @return false if more input is needed. * @exception DataFormatException if header is invalid. */ private boolean decodeHeader () throws DataFormatException --- 442,448 ---- /** * Decodes the deflate header. ! * @return false if more input is needed. * @exception DataFormatException if header is invalid. */ private boolean decodeHeader () throws DataFormatException *************** public class Inflater *** 459,506 **** if (header < 0) return false; input.dropBits(16); ! /* The header is written in "wrong" byte order */ header = ((header << 8) | (header >> 8)) & 0xffff; if (header % 31 != 0) throw new DataFormatException("Header checksum illegal"); ! if ((header & 0x0f00) != (Deflater.DEFLATED << 8)) throw new DataFormatException("Compression Method unknown"); ! /* Maximum size of the backwards window in bits. * We currently ignore this, but we could use it to make the * inflater window more space efficient. On the other hand the * full window (15 bits) is needed most times, anyway. int max_wbits = ((header & 0x7000) >> 12) + 8; */ ! if ((header & 0x0020) == 0) // Dictionary flag? { ! mode = DECODE_BLOCKS; } else { ! mode = DECODE_DICT; ! neededBits = 32; } return true; } ! /** * Decodes the dictionary checksum after the deflate header. ! * @return false if more input is needed. */ private boolean decodeDict () { while (neededBits > 0) { ! int dictByte = input.peekBits(8); ! if (dictByte < 0) ! return false; ! input.dropBits(8); ! readAdler = (readAdler << 8) | dictByte; ! neededBits -= 8; } return false; } --- 451,498 ---- if (header < 0) return false; input.dropBits(16); ! /* The header is written in "wrong" byte order */ header = ((header << 8) | (header >> 8)) & 0xffff; if (header % 31 != 0) throw new DataFormatException("Header checksum illegal"); ! if ((header & 0x0f00) != (Deflater.DEFLATED << 8)) throw new DataFormatException("Compression Method unknown"); ! /* Maximum size of the backwards window in bits. * We currently ignore this, but we could use it to make the * inflater window more space efficient. On the other hand the * full window (15 bits) is needed most times, anyway. int max_wbits = ((header & 0x7000) >> 12) + 8; */ ! if ((header & 0x0020) == 0) // Dictionary flag? { ! mode = DECODE_BLOCKS; } else { ! mode = DECODE_DICT; ! neededBits = 32; } return true; } ! /** * Decodes the dictionary checksum after the deflate header. ! * @return false if more input is needed. */ private boolean decodeDict () { while (neededBits > 0) { ! int dictByte = input.peekBits(8); ! if (dictByte < 0) ! return false; ! input.dropBits(8); ! readAdler = (readAdler << 8) | dictByte; ! neededBits -= 8; } return false; } *************** public class Inflater *** 509,734 **** * Decodes the huffman encoded symbols in the input stream. * @return false if more input is needed, true if output window is * full or the current block ends. ! * @exception DataFormatException if deflated stream is invalid. */ private boolean decodeHuffman () throws DataFormatException { int free = outputWindow.getFreeSpace(); while (free >= 258) { ! int symbol; ! switch (mode) ! { ! case DECODE_HUFFMAN: ! /* This is the inner loop so it is optimized a bit */ ! while (((symbol = litlenTree.getSymbol(input)) & ~0xff) == 0) ! { ! outputWindow.write(symbol); ! if (--free < 258) ! return true; ! } ! if (symbol < 257) ! { ! if (symbol < 0) ! return false; ! else ! { ! /* symbol == 256: end of block */ ! distTree = null; ! litlenTree = null; ! mode = DECODE_BLOCKS; ! return true; ! } ! } ! ! try ! { ! repLength = CPLENS[symbol - 257]; ! neededBits = CPLEXT[symbol - 257]; ! } ! catch (ArrayIndexOutOfBoundsException ex) ! { ! throw new DataFormatException("Illegal rep length code"); ! } ! /* fall through */ ! case DECODE_HUFFMAN_LENBITS: ! if (neededBits > 0) ! { ! mode = DECODE_HUFFMAN_LENBITS; ! int i = input.peekBits(neededBits); ! if (i < 0) ! return false; ! input.dropBits(neededBits); ! repLength += i; ! } ! mode = DECODE_HUFFMAN_DIST; ! /* fall through */ ! case DECODE_HUFFMAN_DIST: ! symbol = distTree.getSymbol(input); ! if (symbol < 0) ! return false; ! try ! { ! repDist = CPDIST[symbol]; ! neededBits = CPDEXT[symbol]; ! } ! catch (ArrayIndexOutOfBoundsException ex) ! { ! throw new DataFormatException("Illegal rep dist code"); ! } ! /* fall through */ ! case DECODE_HUFFMAN_DISTBITS: ! if (neededBits > 0) ! { ! mode = DECODE_HUFFMAN_DISTBITS; ! int i = input.peekBits(neededBits); ! if (i < 0) ! return false; ! input.dropBits(neededBits); ! repDist += i; ! } ! outputWindow.repeat(repLength, repDist); ! free -= repLength; ! mode = DECODE_HUFFMAN; ! break; ! default: ! throw new IllegalStateException(); ! } } return true; } /** * Decodes the adler checksum after the deflate stream. ! * @return false if more input is needed. * @exception DataFormatException if checksum doesn't match. */ private boolean decodeChksum () throws DataFormatException { while (neededBits > 0) { ! int chkByte = input.peekBits(8); ! if (chkByte < 0) ! return false; ! input.dropBits(8); ! readAdler = (readAdler << 8) | chkByte; ! neededBits -= 8; } if ((int) adler.getValue() != readAdler) throw new DataFormatException("Adler chksum doesn't match: " ! +Integer.toHexString((int)adler.getValue()) ! +" vs. "+Integer.toHexString(readAdler)); mode = FINISHED; return false; } /** * Decodes the deflated stream. ! * @return false if more input is needed, or if finished. * @exception DataFormatException if deflated stream is invalid. */ private boolean decode () throws DataFormatException { ! switch (mode) { case DECODE_HEADER: ! return decodeHeader(); case DECODE_DICT: ! return decodeDict(); case DECODE_CHKSUM: ! return decodeChksum(); case DECODE_BLOCKS: ! if (isLastBlock) ! { ! if (nowrap) ! { ! mode = FINISHED; ! return false; ! } ! else ! { ! input.skipToByteBoundary(); ! neededBits = 32; ! mode = DECODE_CHKSUM; ! return true; ! } ! } ! int type = input.peekBits(3); ! if (type < 0) ! return false; ! input.dropBits(3); ! if ((type & 1) != 0) ! isLastBlock = true; ! switch (type >> 1) ! { ! case DeflaterConstants.STORED_BLOCK: ! input.skipToByteBoundary(); ! mode = DECODE_STORED_LEN1; ! break; ! case DeflaterConstants.STATIC_TREES: ! litlenTree = InflaterHuffmanTree.defLitLenTree; ! distTree = InflaterHuffmanTree.defDistTree; ! mode = DECODE_HUFFMAN; ! break; ! case DeflaterConstants.DYN_TREES: ! dynHeader = new InflaterDynHeader(); ! mode = DECODE_DYN_HEADER; ! break; ! default: ! throw new DataFormatException("Unknown block type "+type); ! } ! return true; case DECODE_STORED_LEN1: ! { ! if ((uncomprLen = input.peekBits(16)) < 0) ! return false; ! input.dropBits(16); ! mode = DECODE_STORED_LEN2; ! } ! /* fall through */ case DECODE_STORED_LEN2: ! { ! int nlen = input.peekBits(16); ! if (nlen < 0) ! return false; ! input.dropBits(16); ! if (nlen != (uncomprLen ^ 0xffff)) ! throw new DataFormatException("broken uncompressed block"); ! mode = DECODE_STORED; ! } ! /* fall through */ case DECODE_STORED: ! { ! int more = outputWindow.copyStored(input, uncomprLen); ! uncomprLen -= more; ! if (uncomprLen == 0) ! { ! mode = DECODE_BLOCKS; ! return true; ! } ! return !input.needsInput(); ! } case DECODE_DYN_HEADER: ! if (!dynHeader.decode(input)) ! return false; ! litlenTree = dynHeader.buildLitLenTree(); ! distTree = dynHeader.buildDistTree(); ! mode = DECODE_HUFFMAN; ! /* fall through */ case DECODE_HUFFMAN: case DECODE_HUFFMAN_LENBITS: case DECODE_HUFFMAN_DIST: case DECODE_HUFFMAN_DISTBITS: ! return decodeHuffman(); case FINISHED: ! return false; default: ! throw new IllegalStateException(); ! } } } --- 501,726 ---- * Decodes the huffman encoded symbols in the input stream. * @return false if more input is needed, true if output window is * full or the current block ends. ! * @exception DataFormatException if deflated stream is invalid. */ private boolean decodeHuffman () throws DataFormatException { int free = outputWindow.getFreeSpace(); while (free >= 258) { ! int symbol; ! switch (mode) ! { ! case DECODE_HUFFMAN: ! /* This is the inner loop so it is optimized a bit */ ! while (((symbol = litlenTree.getSymbol(input)) & ~0xff) == 0) ! { ! outputWindow.write(symbol); ! if (--free < 258) ! return true; ! } ! if (symbol < 257) ! { ! if (symbol < 0) ! return false; ! else ! { ! /* symbol == 256: end of block */ ! distTree = null; ! litlenTree = null; ! mode = DECODE_BLOCKS; ! return true; ! } ! } ! ! try ! { ! repLength = CPLENS[symbol - 257]; ! neededBits = CPLEXT[symbol - 257]; ! } ! catch (ArrayIndexOutOfBoundsException ex) ! { ! throw new DataFormatException("Illegal rep length code"); ! } ! /* fall through */ ! case DECODE_HUFFMAN_LENBITS: ! if (neededBits > 0) ! { ! mode = DECODE_HUFFMAN_LENBITS; ! int i = input.peekBits(neededBits); ! if (i < 0) ! return false; ! input.dropBits(neededBits); ! repLength += i; ! } ! mode = DECODE_HUFFMAN_DIST; ! /* fall through */ ! case DECODE_HUFFMAN_DIST: ! symbol = distTree.getSymbol(input); ! if (symbol < 0) ! return false; ! try ! { ! repDist = CPDIST[symbol]; ! neededBits = CPDEXT[symbol]; ! } ! catch (ArrayIndexOutOfBoundsException ex) ! { ! throw new DataFormatException("Illegal rep dist code"); ! } ! /* fall through */ ! case DECODE_HUFFMAN_DISTBITS: ! if (neededBits > 0) ! { ! mode = DECODE_HUFFMAN_DISTBITS; ! int i = input.peekBits(neededBits); ! if (i < 0) ! return false; ! input.dropBits(neededBits); ! repDist += i; ! } ! outputWindow.repeat(repLength, repDist); ! free -= repLength; ! mode = DECODE_HUFFMAN; ! break; ! default: ! throw new IllegalStateException(); ! } } return true; } /** * Decodes the adler checksum after the deflate stream. ! * @return false if more input is needed. * @exception DataFormatException if checksum doesn't match. */ private boolean decodeChksum () throws DataFormatException { while (neededBits > 0) { ! int chkByte = input.peekBits(8); ! if (chkByte < 0) ! return false; ! input.dropBits(8); ! readAdler = (readAdler << 8) | chkByte; ! neededBits -= 8; } if ((int) adler.getValue() != readAdler) throw new DataFormatException("Adler chksum doesn't match: " ! +Integer.toHexString((int)adler.getValue()) ! +" vs. "+Integer.toHexString(readAdler)); mode = FINISHED; return false; } /** * Decodes the deflated stream. ! * @return false if more input is needed, or if finished. * @exception DataFormatException if deflated stream is invalid. */ private boolean decode () throws DataFormatException { ! switch (mode) { case DECODE_HEADER: ! return decodeHeader(); case DECODE_DICT: ! return decodeDict(); case DECODE_CHKSUM: ! return decodeChksum(); case DECODE_BLOCKS: ! if (isLastBlock) ! { ! if (nowrap) ! { ! mode = FINISHED; ! return false; ! } ! else ! { ! input.skipToByteBoundary(); ! neededBits = 32; ! mode = DECODE_CHKSUM; ! return true; ! } ! } ! int type = input.peekBits(3); ! if (type < 0) ! return false; ! input.dropBits(3); ! if ((type & 1) != 0) ! isLastBlock = true; ! switch (type >> 1) ! { ! case DeflaterConstants.STORED_BLOCK: ! input.skipToByteBoundary(); ! mode = DECODE_STORED_LEN1; ! break; ! case DeflaterConstants.STATIC_TREES: ! litlenTree = InflaterHuffmanTree.defLitLenTree; ! distTree = InflaterHuffmanTree.defDistTree; ! mode = DECODE_HUFFMAN; ! break; ! case DeflaterConstants.DYN_TREES: ! dynHeader = new InflaterDynHeader(); ! mode = DECODE_DYN_HEADER; ! break; ! default: ! throw new DataFormatException("Unknown block type "+type); ! } ! return true; case DECODE_STORED_LEN1: ! { ! if ((uncomprLen = input.peekBits(16)) < 0) ! return false; ! input.dropBits(16); ! mode = DECODE_STORED_LEN2; ! } ! /* fall through */ case DECODE_STORED_LEN2: ! { ! int nlen = input.peekBits(16); ! if (nlen < 0) ! return false; ! input.dropBits(16); ! if (nlen != (uncomprLen ^ 0xffff)) ! throw new DataFormatException("broken uncompressed block"); ! mode = DECODE_STORED; ! } ! /* fall through */ case DECODE_STORED: ! { ! int more = outputWindow.copyStored(input, uncomprLen); ! uncomprLen -= more; ! if (uncomprLen == 0) ! { ! mode = DECODE_BLOCKS; ! return true; ! } ! return !input.needsInput(); ! } case DECODE_DYN_HEADER: ! if (!dynHeader.decode(input)) ! return false; ! litlenTree = dynHeader.buildLitLenTree(); ! distTree = dynHeader.buildDistTree(); ! mode = DECODE_HUFFMAN; ! /* fall through */ case DECODE_HUFFMAN: case DECODE_HUFFMAN_LENBITS: case DECODE_HUFFMAN_DIST: case DECODE_HUFFMAN_DISTBITS: ! return decodeHuffman(); case FINISHED: ! return false; default: ! throw new IllegalStateException(); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/InflaterDynHeader.java gcc-4.6.0/libjava/classpath/java/util/zip/InflaterDynHeader.java *** gcc-4.5.2/libjava/classpath/java/util/zip/InflaterDynHeader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/InflaterDynHeader.java Tue Jan 11 19:46:05 2011 *************** class InflaterDynHeader *** 49,60 **** private static final int repMin[] = { 3, 3, 11 }; private static final int repBits[] = { 2, 3, 7 }; ! private byte[] blLens; private byte[] litdistLens; private InflaterHuffmanTree blTree; ! private int mode; private int lnum, dnum, blnum, num; private int repSymbol; --- 49,60 ---- private static final int repMin[] = { 3, 3, 11 }; private static final int repBits[] = { 2, 3, 7 }; ! private byte[] blLens; private byte[] litdistLens; private InflaterHuffmanTree blTree; ! private int mode; private int lnum, dnum, blnum, num; private int repSymbol; *************** class InflaterDynHeader *** 63,189 **** private static final int[] BL_ORDER = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; ! public InflaterDynHeader() { } ! public boolean decode(StreamManipulator input) throws DataFormatException { decode_loop: for (;;) { ! switch (mode) ! { ! case LNUM: ! lnum = input.peekBits(5); ! if (lnum < 0) ! return false; ! lnum += 257; ! input.dropBits(5); ! // System.err.println("LNUM: "+lnum); ! mode = DNUM; ! /* fall through */ ! case DNUM: ! dnum = input.peekBits(5); ! if (dnum < 0) ! return false; ! dnum++; ! input.dropBits(5); ! // System.err.println("DNUM: "+dnum); ! num = lnum+dnum; ! litdistLens = new byte[num]; ! mode = BLNUM; ! /* fall through */ ! case BLNUM: ! blnum = input.peekBits(4); ! if (blnum < 0) ! return false; ! blnum += 4; ! input.dropBits(4); ! blLens = new byte[19]; ! ptr = 0; ! // System.err.println("BLNUM: "+blnum); ! mode = BLLENS; ! /* fall through */ ! case BLLENS: ! while (ptr < blnum) ! { ! int len = input.peekBits(3); ! if (len < 0) ! return false; ! input.dropBits(3); ! // System.err.println("blLens["+BL_ORDER[ptr]+"]: "+len); ! blLens[BL_ORDER[ptr]] = (byte) len; ! ptr++; ! } ! blTree = new InflaterHuffmanTree(blLens); ! blLens = null; ! ptr = 0; ! mode = LENS; ! /* fall through */ ! case LENS: ! { ! int symbol; ! while (((symbol = blTree.getSymbol(input)) & ~15) == 0) ! { ! /* Normal case: symbol in [0..15] */ ! // System.err.println("litdistLens["+ptr+"]: "+symbol); ! litdistLens[ptr++] = lastLen = (byte) symbol; ! if (ptr == num) ! { ! /* Finished */ ! return true; ! } ! } ! ! /* need more input ? */ ! if (symbol < 0) ! return false; ! /* otherwise repeat code */ ! if (symbol >= 17) ! { ! /* repeat zero */ ! // System.err.println("repeating zero"); ! lastLen = 0; ! } ! else ! { ! if (ptr == 0) ! throw new DataFormatException(); ! } ! repSymbol = symbol-16; ! mode = REPS; ! } ! /* fall through */ ! case REPS: ! { ! int bits = repBits[repSymbol]; ! int count = input.peekBits(bits); ! if (count < 0) ! return false; ! input.dropBits(bits); ! count += repMin[repSymbol]; ! // System.err.println("litdistLens repeated: "+count); ! if (ptr + count > num) ! throw new DataFormatException(); ! while (count-- > 0) ! litdistLens[ptr++] = lastLen; ! if (ptr == num) ! { ! /* Finished */ ! return true; ! } ! } ! mode = LENS; ! continue decode_loop; ! } } } --- 63,189 ---- private static final int[] BL_ORDER = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; ! public InflaterDynHeader() { } ! public boolean decode(StreamManipulator input) throws DataFormatException { decode_loop: for (;;) { ! switch (mode) ! { ! case LNUM: ! lnum = input.peekBits(5); ! if (lnum < 0) ! return false; ! lnum += 257; ! input.dropBits(5); ! // System.err.println("LNUM: "+lnum); ! mode = DNUM; ! /* fall through */ ! case DNUM: ! dnum = input.peekBits(5); ! if (dnum < 0) ! return false; ! dnum++; ! input.dropBits(5); ! // System.err.println("DNUM: "+dnum); ! num = lnum+dnum; ! litdistLens = new byte[num]; ! mode = BLNUM; ! /* fall through */ ! case BLNUM: ! blnum = input.peekBits(4); ! if (blnum < 0) ! return false; ! blnum += 4; ! input.dropBits(4); ! blLens = new byte[19]; ! ptr = 0; ! // System.err.println("BLNUM: "+blnum); ! mode = BLLENS; ! /* fall through */ ! case BLLENS: ! while (ptr < blnum) ! { ! int len = input.peekBits(3); ! if (len < 0) ! return false; ! input.dropBits(3); ! // System.err.println("blLens["+BL_ORDER[ptr]+"]: "+len); ! blLens[BL_ORDER[ptr]] = (byte) len; ! ptr++; ! } ! blTree = new InflaterHuffmanTree(blLens); ! blLens = null; ! ptr = 0; ! mode = LENS; ! /* fall through */ ! case LENS: ! { ! int symbol; ! while (((symbol = blTree.getSymbol(input)) & ~15) == 0) ! { ! /* Normal case: symbol in [0..15] */ ! // System.err.println("litdistLens["+ptr+"]: "+symbol); ! litdistLens[ptr++] = lastLen = (byte) symbol; ! if (ptr == num) ! { ! /* Finished */ ! return true; ! } ! } ! /* need more input ? */ ! if (symbol < 0) ! return false; ! /* otherwise repeat code */ ! if (symbol >= 17) ! { ! /* repeat zero */ ! // System.err.println("repeating zero"); ! lastLen = 0; ! } ! else ! { ! if (ptr == 0) ! throw new DataFormatException(); ! } ! repSymbol = symbol-16; ! mode = REPS; ! } ! /* fall through */ ! case REPS: ! { ! int bits = repBits[repSymbol]; ! int count = input.peekBits(bits); ! if (count < 0) ! return false; ! input.dropBits(bits); ! count += repMin[repSymbol]; ! // System.err.println("litdistLens repeated: "+count); ! if (ptr + count > num) ! throw new DataFormatException(); ! while (count-- > 0) ! litdistLens[ptr++] = lastLen; ! ! if (ptr == num) ! { ! /* Finished */ ! return true; ! } ! } ! mode = LENS; ! continue decode_loop; ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/InflaterHuffmanTree.java gcc-4.6.0/libjava/classpath/java/util/zip/InflaterHuffmanTree.java *** gcc-4.5.2/libjava/classpath/java/util/zip/InflaterHuffmanTree.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/InflaterHuffmanTree.java Tue Jan 11 19:46:05 2011 *************** package java.util.zip; *** 40,76 **** class InflaterHuffmanTree { private static final int MAX_BITLEN = 15; ! private short[] tree; static InflaterHuffmanTree defLitLenTree, defDistTree; static { ! try { ! byte[] codeLengths = new byte[288]; ! int i = 0; ! while (i < 144) ! codeLengths[i++] = 8; ! while (i < 256) ! codeLengths[i++] = 9; ! while (i < 280) ! codeLengths[i++] = 7; ! while (i < 288) ! codeLengths[i++] = 8; ! defLitLenTree = new InflaterHuffmanTree(codeLengths); ! ! codeLengths = new byte[32]; ! i = 0; ! while (i < 32) ! codeLengths[i++] = 5; ! defDistTree = new InflaterHuffmanTree(codeLengths); ! } catch (DataFormatException ex) { ! throw new InternalError ! ("InflaterHuffmanTree: static tree length illegal"); } } --- 40,76 ---- class InflaterHuffmanTree { private static final int MAX_BITLEN = 15; ! private short[] tree; static InflaterHuffmanTree defLitLenTree, defDistTree; static { ! try { ! byte[] codeLengths = new byte[288]; ! int i = 0; ! while (i < 144) ! codeLengths[i++] = 8; ! while (i < 256) ! codeLengths[i++] = 9; ! while (i < 280) ! codeLengths[i++] = 7; ! while (i < 288) ! codeLengths[i++] = 8; ! defLitLenTree = new InflaterHuffmanTree(codeLengths); ! ! codeLengths = new byte[32]; ! i = 0; ! while (i < 32) ! codeLengths[i++] = 5; ! defDistTree = new InflaterHuffmanTree(codeLengths); ! } catch (DataFormatException ex) { ! throw new InternalError ! ("InflaterHuffmanTree: static tree length illegal"); } } *************** class InflaterHuffmanTree *** 83,113 **** { buildTree(codeLengths); } ! private void buildTree(byte[] codeLengths) throws DataFormatException { int[] blCount = new int[MAX_BITLEN+1]; int[] nextCode = new int[MAX_BITLEN+1]; for (int i = 0; i < codeLengths.length; i++) { ! int bits = codeLengths[i]; ! if (bits > 0) ! blCount[bits]++; } int code = 0; int treeSize = 512; for (int bits = 1; bits <= MAX_BITLEN; bits++) { ! nextCode[bits] = code; ! code += blCount[bits] << (16 - bits); ! if (bits >= 10) ! { ! /* We need an extra table for bit lengths >= 10. */ ! int start = nextCode[bits] & 0x1ff80; ! int end = code & 0x1ff80; ! treeSize += (end - start) >> (16 - bits); ! } } if (code != 65536) throw new DataFormatException("Code lengths don't add up properly."); --- 83,113 ---- { buildTree(codeLengths); } ! private void buildTree(byte[] codeLengths) throws DataFormatException { int[] blCount = new int[MAX_BITLEN+1]; int[] nextCode = new int[MAX_BITLEN+1]; for (int i = 0; i < codeLengths.length; i++) { ! int bits = codeLengths[i]; ! if (bits > 0) ! blCount[bits]++; } int code = 0; int treeSize = 512; for (int bits = 1; bits <= MAX_BITLEN; bits++) { ! nextCode[bits] = code; ! code += blCount[bits] << (16 - bits); ! if (bits >= 10) ! { ! /* We need an extra table for bit lengths >= 10. */ ! int start = nextCode[bits] & 0x1ff80; ! int end = code & 0x1ff80; ! treeSize += (end - start) >> (16 - bits); ! } } if (code != 65536) throw new DataFormatException("Code lengths don't add up properly."); *************** class InflaterHuffmanTree *** 119,164 **** int treePtr = 512; for (int bits = MAX_BITLEN; bits >= 10; bits--) { ! int end = code & 0x1ff80; ! code -= blCount[bits] << (16 - bits); ! int start = code & 0x1ff80; ! for (int i = start; i < end; i += 1 << 7) ! { ! tree[DeflaterHuffman.bitReverse(i)] ! = (short) ((-treePtr << 4) | bits); ! treePtr += 1 << (bits-9); ! } } ! for (int i = 0; i < codeLengths.length; i++) { ! int bits = codeLengths[i]; ! if (bits == 0) ! continue; ! code = nextCode[bits]; ! int revcode = DeflaterHuffman.bitReverse(code); ! if (bits <= 9) ! { ! do ! { ! tree[revcode] = (short) ((i << 4) | bits); ! revcode += 1 << bits; ! } ! while (revcode < 512); ! } ! else ! { ! int subTree = tree[revcode & 511]; ! int treeLen = 1 << (subTree & 15); ! subTree = -(subTree >> 4); ! do ! { ! tree[subTree | (revcode >> 9)] = (short) ((i << 4) | bits); ! revcode += 1 << bits; ! } ! while (revcode < treeLen); ! } ! nextCode[bits] = code + (1 << (16 - bits)); } } --- 119,164 ---- int treePtr = 512; for (int bits = MAX_BITLEN; bits >= 10; bits--) { ! int end = code & 0x1ff80; ! code -= blCount[bits] << (16 - bits); ! int start = code & 0x1ff80; ! for (int i = start; i < end; i += 1 << 7) ! { ! tree[DeflaterHuffman.bitReverse(i)] ! = (short) ((-treePtr << 4) | bits); ! treePtr += 1 << (bits-9); ! } } ! for (int i = 0; i < codeLengths.length; i++) { ! int bits = codeLengths[i]; ! if (bits == 0) ! continue; ! code = nextCode[bits]; ! int revcode = DeflaterHuffman.bitReverse(code); ! if (bits <= 9) ! { ! do ! { ! tree[revcode] = (short) ((i << 4) | bits); ! revcode += 1 << bits; ! } ! while (revcode < 512); ! } ! else ! { ! int subTree = tree[revcode & 511]; ! int treeLen = 1 << (subTree & 15); ! subTree = -(subTree >> 4); ! do ! { ! tree[subTree | (revcode >> 9)] = (short) ((i << 4) | bits); ! revcode += 1 << bits; ! } ! while (revcode < treeLen); ! } ! nextCode[bits] = code + (1 << (16 - bits)); } } *************** class InflaterHuffmanTree *** 173,217 **** int lookahead, symbol; if ((lookahead = input.peekBits(9)) >= 0) { ! if ((symbol = tree[lookahead]) >= 0) ! { ! input.dropBits(symbol & 15); ! return symbol >> 4; ! } ! int subtree = -(symbol >> 4); ! int bitlen = symbol & 15; ! if ((lookahead = input.peekBits(bitlen)) >= 0) ! { ! symbol = tree[subtree | (lookahead >> 9)]; ! input.dropBits(symbol & 15); ! return symbol >> 4; ! } ! else ! { ! int bits = input.getAvailableBits(); ! lookahead = input.peekBits(bits); ! symbol = tree[subtree | (lookahead >> 9)]; ! if ((symbol & 15) <= bits) ! { ! input.dropBits(symbol & 15); ! return symbol >> 4; ! } ! else ! return -1; ! } } else { ! int bits = input.getAvailableBits(); ! lookahead = input.peekBits(bits); ! symbol = tree[lookahead]; ! if (symbol >= 0 && (symbol & 15) <= bits) ! { ! input.dropBits(symbol & 15); ! return symbol >> 4; ! } ! else ! return -1; } } } --- 173,217 ---- int lookahead, symbol; if ((lookahead = input.peekBits(9)) >= 0) { ! if ((symbol = tree[lookahead]) >= 0) ! { ! input.dropBits(symbol & 15); ! return symbol >> 4; ! } ! int subtree = -(symbol >> 4); ! int bitlen = symbol & 15; ! if ((lookahead = input.peekBits(bitlen)) >= 0) ! { ! symbol = tree[subtree | (lookahead >> 9)]; ! input.dropBits(symbol & 15); ! return symbol >> 4; ! } ! else ! { ! int bits = input.getAvailableBits(); ! lookahead = input.peekBits(bits); ! symbol = tree[subtree | (lookahead >> 9)]; ! if ((symbol & 15) <= bits) ! { ! input.dropBits(symbol & 15); ! return symbol >> 4; ! } ! else ! return -1; ! } } else { ! int bits = input.getAvailableBits(); ! lookahead = input.peekBits(bits); ! symbol = tree[lookahead]; ! if (symbol >= 0 && (symbol & 15) <= bits) ! { ! input.dropBits(symbol & 15); ! return symbol >> 4; ! } ! else ! return -1; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/InflaterInputStream.java gcc-4.6.0/libjava/classpath/java/util/zip/InflaterInputStream.java *** gcc-4.5.2/libjava/classpath/java/util/zip/InflaterInputStream.java Fri Mar 10 23:09:23 2006 --- gcc-4.6.0/libjava/classpath/java/util/zip/InflaterInputStream.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 8,14 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 8,14 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.io.InputStream; *** 57,73 **** public class InflaterInputStream extends FilterInputStream { /** ! * Decompressor for this filter */ protected Inflater inf; /** ! * Byte array used as a buffer */ protected byte[] buf; /** ! * Size of buffer */ protected int len; --- 57,73 ---- public class InflaterInputStream extends FilterInputStream { /** ! * Decompressor for this filter */ protected Inflater inf; /** ! * Byte array used as a buffer */ protected byte[] buf; /** ! * Size of buffer */ protected int len; *************** public class InflaterInputStream extends *** 81,87 **** * * @param in the InputStream to read bytes from */ ! public InflaterInputStream(InputStream in) { this(in, new Inflater(), 4096); } --- 81,87 ---- * * @param in the InputStream to read bytes from */ ! public InflaterInputStream(InputStream in) { this(in, new Inflater(), 4096); } *************** public class InflaterInputStream extends *** 93,99 **** * @param in the InputStream to read bytes from * @param inf the decompressor used to decompress data read from in */ ! public InflaterInputStream(InputStream in, Inflater inf) { this(in, inf, 4096); } --- 93,99 ---- * @param in the InputStream to read bytes from * @param inf the decompressor used to decompress data read from in */ ! public InflaterInputStream(InputStream in, Inflater inf) { this(in, inf, 4096); } *************** public class InflaterInputStream extends *** 106,112 **** * @param inf the decompressor used to decompress data read from in * @param size size of the buffer to use */ ! public InflaterInputStream(InputStream in, Inflater inf, int size) { super(in); --- 106,112 ---- * @param inf the decompressor used to decompress data read from in * @param size size of the buffer to use */ ! public InflaterInputStream(InputStream in, Inflater inf, int size) { super(in); *************** public class InflaterInputStream extends *** 116,122 **** throw new NullPointerException("inf may not be null"); if (size < 0) throw new IllegalArgumentException("size may not be negative"); ! this.inf = inf; this.buf = new byte [size]; } --- 116,122 ---- throw new NullPointerException("inf may not be null"); if (size < 0) throw new IllegalArgumentException("size may not be negative"); ! this.inf = inf; this.buf = new byte [size]; } *************** public class InflaterInputStream extends *** 151,162 **** { if (in == null) throw new ZipException ("InflaterInputStream is closed"); ! len = in.read(buf, 0, buf.length); if (len < 0) throw new ZipException("Deflated stream ends early."); ! inf.setInput(buf, 0, len); } --- 151,162 ---- { if (in == null) throw new ZipException ("InflaterInputStream is closed"); ! len = in.read(buf, 0, buf.length); if (len < 0) throw new ZipException("Deflated stream ends early."); ! inf.setInput(buf, 0, len); } *************** public class InflaterInputStream extends *** 166,172 **** * The byte is in the lower 8 bits of the int. */ public int read() throws IOException ! { int nread = read(onebytebuffer, 0, 1); if (nread > 0) return onebytebuffer[0] & 0xff; --- 166,172 ---- * The byte is in the lower 8 bits of the int. */ public int read() throws IOException ! { int nread = read(onebytebuffer, 0, 1); if (nread > 0) return onebytebuffer[0] & 0xff; *************** public class InflaterInputStream extends *** 192,218 **** int count = 0; while (count == 0) { ! if (inf.needsInput()) ! fill(); ! ! try ! { ! count = inf.inflate(b, off, len); ! if (count == 0) ! { ! if (this.len == -1) ! { ! // Couldn't get any more data to feed to the Inflater ! return -1; ! } ! if (inf.needsDictionary()) ! throw new ZipException("Inflater needs Dictionary"); ! } ! } ! catch (DataFormatException dfe) ! { ! throw new ZipException(dfe.getMessage()); ! } } return count; } --- 192,218 ---- int count = 0; while (count == 0) { ! if (inf.needsInput()) ! fill(); ! ! try ! { ! count = inf.inflate(b, off, len); ! if (count == 0) ! { ! if (this.len == -1) ! { ! // Couldn't get any more data to feed to the Inflater ! return -1; ! } ! if (inf.needsDictionary()) ! throw new ZipException("Inflater needs Dictionary"); ! } ! } ! catch (DataFormatException dfe) ! { ! throw new ZipException(dfe.getMessage()); ! } } return count; } *************** public class InflaterInputStream extends *** 238,249 **** long skipped = 0L; while (n > 0L) { ! int numread = read(tmpbuf, 0, buflen); ! if (numread <= 0) ! break; ! n -= numread; ! skipped += numread; ! buflen = (int) Math.min(n, 2048); } return skipped; --- 238,249 ---- long skipped = 0L; while (n > 0L) { ! int numread = read(tmpbuf, 0, buflen); ! if (numread <= 0) ! break; ! n -= numread; ! skipped += numread; ! buflen = (int) Math.min(n, 2048); } return skipped; diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/OutputWindow.java gcc-4.6.0/libjava/classpath/java/util/zip/OutputWindow.java *** gcc-4.5.2/libjava/classpath/java/util/zip/OutputWindow.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/OutputWindow.java Tue Jan 11 19:46:05 2011 *************** class OutputWindow *** 67,75 **** { while (len-- > 0) { ! window[window_end++] = window[rep_start++]; ! window_end &= WINDOW_MASK; ! rep_start &= WINDOW_MASK; } } --- 67,75 ---- { while (len-- > 0) { ! window[window_end++] = window[rep_start++]; ! window_end &= WINDOW_MASK; ! rep_start &= WINDOW_MASK; } } *************** class OutputWindow *** 82,99 **** int border = WINDOW_SIZE - len; if (rep_start <= border && window_end < border) { ! if (len <= dist) ! { ! System.arraycopy(window, rep_start, window, window_end, len); ! window_end += len; ! } ! else ! { ! /* We have to copy manually, since the repeat pattern overlaps. ! */ ! while (len-- > 0) ! window[window_end++] = window[rep_start++]; ! } } else slowRepeat(rep_start, len, dist); --- 82,99 ---- int border = WINDOW_SIZE - len; if (rep_start <= border && window_end < border) { ! if (len <= dist) ! { ! System.arraycopy(window, rep_start, window, window_end, len); ! window_end += len; ! } ! else ! { ! /* We have to copy manually, since the repeat pattern overlaps. ! */ ! while (len-- > 0) ! window[window_end++] = window[rep_start++]; ! } } else slowRepeat(rep_start, len, dist); *************** class OutputWindow *** 101,116 **** public int copyStored(StreamManipulator input, int len) { ! len = Math.min(Math.min(len, WINDOW_SIZE - window_filled), ! input.getAvailableBytes()); int copied; int tailLen = WINDOW_SIZE - window_end; if (len > tailLen) { ! copied = input.copyBytes(window, window_end, tailLen); ! if (copied == tailLen) ! copied += input.copyBytes(window, 0, len - tailLen); } else copied = input.copyBytes(window, window_end, len); --- 101,116 ---- public int copyStored(StreamManipulator input, int len) { ! len = Math.min(Math.min(len, WINDOW_SIZE - window_filled), ! input.getAvailableBytes()); int copied; int tailLen = WINDOW_SIZE - window_end; if (len > tailLen) { ! copied = input.copyBytes(window, window_end, tailLen); ! if (copied == tailLen) ! copied += input.copyBytes(window, 0, len - tailLen); } else copied = input.copyBytes(window, window_end, len); *************** class OutputWindow *** 127,134 **** if (len > WINDOW_SIZE) { ! offset += len - WINDOW_SIZE; ! len = WINDOW_SIZE; } System.arraycopy(dict, offset, window, 0, len); window_end = len & WINDOW_MASK; --- 127,134 ---- if (len > WINDOW_SIZE) { ! offset += len - WINDOW_SIZE; ! len = WINDOW_SIZE; } System.arraycopy(dict, offset, window, 0, len); window_end = len & WINDOW_MASK; *************** class OutputWindow *** 157,166 **** if (tailLen > 0) { ! System.arraycopy(window, WINDOW_SIZE - tailLen, ! output, offset, tailLen); ! offset += tailLen; ! len = copy_end; } System.arraycopy(window, copy_end - len, output, offset, len); window_filled -= copied; --- 157,166 ---- if (tailLen > 0) { ! System.arraycopy(window, WINDOW_SIZE - tailLen, ! output, offset, tailLen); ! offset += tailLen; ! len = copy_end; } System.arraycopy(window, copy_end - len, output, offset, len); window_filled -= copied; *************** class OutputWindow *** 173,178 **** window_filled = window_end = 0; } } - - - --- 173,175 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/PendingBuffer.java gcc-4.6.0/libjava/classpath/java/util/zip/PendingBuffer.java *** gcc-4.5.2/libjava/classpath/java/util/zip/PendingBuffer.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/PendingBuffer.java Tue Jan 11 19:46:05 2011 *************** package java.util.zip; *** 40,51 **** /** * This class is general purpose class for writing data to a buffer. * ! * It allows you to write bits as well as bytes * * Based on DeflaterPending.java * * @author Jochen Hoenicke ! * @date Jan 5, 2000 */ class PendingBuffer --- 40,51 ---- /** * This class is general purpose class for writing data to a buffer. * ! * It allows you to write bits as well as bytes * * Based on DeflaterPending.java * * @author Jochen Hoenicke ! * @date Jan 5, 2000 */ class PendingBuffer *************** class PendingBuffer *** 71,84 **** start = end = bitCount = 0; } ! public final void writeByte(int b) { if (DeflaterConstants.DEBUGGING && start != 0) throw new IllegalStateException(); buf[end++] = (byte) b; } ! public final void writeShort(int s) { if (DeflaterConstants.DEBUGGING && start != 0) throw new IllegalStateException(); --- 71,84 ---- start = end = bitCount = 0; } ! public final void writeByte(int b) { if (DeflaterConstants.DEBUGGING && start != 0) throw new IllegalStateException(); buf[end++] = (byte) b; } ! public final void writeShort(int s) { if (DeflaterConstants.DEBUGGING && start != 0) throw new IllegalStateException(); *************** class PendingBuffer *** 86,92 **** buf[end++] = (byte) (s >> 8); } ! public final void writeInt(int s) { if (DeflaterConstants.DEBUGGING && start != 0) throw new IllegalStateException(); --- 86,92 ---- buf[end++] = (byte) (s >> 8); } ! public final void writeInt(int s) { if (DeflaterConstants.DEBUGGING && start != 0) throw new IllegalStateException(); *************** class PendingBuffer *** 96,102 **** buf[end++] = (byte) (s >> 24); } ! public final void writeBlock(byte[] block, int offset, int len) { if (DeflaterConstants.DEBUGGING && start != 0) throw new IllegalStateException(); --- 96,102 ---- buf[end++] = (byte) (s >> 24); } ! public final void writeBlock(byte[] block, int offset, int len) { if (DeflaterConstants.DEBUGGING && start != 0) throw new IllegalStateException(); *************** class PendingBuffer *** 113,121 **** throw new IllegalStateException(); if (bitCount > 0) { ! buf[end++] = (byte) bits; ! if (bitCount > 8) ! buf[end++] = (byte) (bits >>> 8); } bits = 0; bitCount = 0; --- 113,121 ---- throw new IllegalStateException(); if (bitCount > 0) { ! buf[end++] = (byte) bits; ! if (bitCount > 8) ! buf[end++] = (byte) (bits >>> 8); } bits = 0; bitCount = 0; *************** class PendingBuffer *** 161,188 **** public final int flush(byte[] output, int offset, int length) { if (bitCount >= 8) { ! buf[end++] = (byte) bits; ! bits >>>= 8; ! bitCount -= 8; } if (length > end - start) { ! length = end - start; ! System.arraycopy(buf, start, output, offset, length); ! start = 0; ! end = 0; } else { ! System.arraycopy(buf, start, output, offset, length); ! start += length; } return length; } /** * Flushes the pending buffer and returns that data in a new array ! * * @return the output stream */ --- 161,188 ---- public final int flush(byte[] output, int offset, int length) { if (bitCount >= 8) { ! buf[end++] = (byte) bits; ! bits >>>= 8; ! bitCount -= 8; } if (length > end - start) { ! length = end - start; ! System.arraycopy(buf, start, output, offset, length); ! start = 0; ! end = 0; } else { ! System.arraycopy(buf, start, output, offset, length); ! start += length; } return length; } /** * Flushes the pending buffer and returns that data in a new array ! * * @return the output stream */ *************** class PendingBuffer *** 197,200 **** } - --- 197,199 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/StreamManipulator.java gcc-4.6.0/libjava/classpath/java/util/zip/StreamManipulator.java *** gcc-4.5.2/libjava/classpath/java/util/zip/StreamManipulator.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/java/util/zip/StreamManipulator.java Tue Jan 11 19:46:05 2011 *************** package java.util.zip; *** 46,52 **** * but we only need at most 15, so this is all safe. * * There are some optimizations in this class, for example, you must ! * never peek more then 8 bits more than needed, and you must first * peek bits before you may drop them. This is not a general purpose * class but optimized for the behaviour of the Inflater. * --- 46,52 ---- * but we only need at most 15, so this is all safe. * * There are some optimizations in this class, for example, you must ! * never peek more then 8 bits more than needed, and you must first * peek bits before you may drop them. This is not a general purpose * class but optimized for the behaviour of the Inflater. * *************** class StreamManipulator *** 66,82 **** * Get the next n bits but don't increase input pointer. n must be * less or equal 16 and if you if this call succeeds, you must drop * at least n-8 bits in the next call. ! * * @return the value of the bits, or -1 if not enough bits available. */ public final int peekBits(int n) { if (bits_in_buffer < n) { ! if (window_start == window_end) ! return -1; ! buffer |= (window[window_start++] & 0xff ! | (window[window_start++] & 0xff) << 8) << bits_in_buffer; ! bits_in_buffer += 16; } return buffer & ((1 << n) - 1); } --- 66,82 ---- * Get the next n bits but don't increase input pointer. n must be * less or equal 16 and if you if this call succeeds, you must drop * at least n-8 bits in the next call. ! * * @return the value of the bits, or -1 if not enough bits available. */ public final int peekBits(int n) { if (bits_in_buffer < n) { ! if (window_start == window_end) ! return -1; ! buffer |= (window[window_start++] & 0xff ! | (window[window_start++] & 0xff) << 8) << bits_in_buffer; ! bits_in_buffer += 16; } return buffer & ((1 << n) - 1); } *************** class StreamManipulator *** 94,100 **** /** * Gets the next n bits and increases input pointer. This is equivalent * to peekBits followed by dropBits, except for correct error handling. ! * @return the value of the bits, or -1 if not enough bits available. */ public final int getBits(int n) { --- 94,100 ---- /** * Gets the next n bits and increases input pointer. This is equivalent * to peekBits followed by dropBits, except for correct error handling. ! * @return the value of the bits, or -1 if not enough bits available. */ public final int getBits(int n) { *************** class StreamManipulator *** 114,120 **** } /** ! * Gets the number of bytes available. * @return the number of bytes available. */ public final int getAvailableBytes() --- 114,120 ---- } /** ! * Gets the number of bytes available. * @return the number of bytes available. */ public final int getAvailableBytes() *************** class StreamManipulator *** 141,164 **** * byte aligned. If not enough bytes are available, copies fewer * bytes. * @param length the length to copy, 0 is allowed. ! * @return the number of bytes copied, 0 if no byte is available. */ public int copyBytes(byte[] output, int offset, int length) { if (length < 0) throw new IllegalArgumentException("length negative"); ! if ((bits_in_buffer & 7) != 0) /* bits_in_buffer may only be 0 or 8 */ throw new IllegalStateException("Bit buffer is not aligned!"); int count = 0; while (bits_in_buffer > 0 && length > 0) { ! output[offset++] = (byte) buffer; ! buffer >>>= 8; ! bits_in_buffer -= 8; ! length--; ! count++; } if (length == 0) return count; --- 141,164 ---- * byte aligned. If not enough bytes are available, copies fewer * bytes. * @param length the length to copy, 0 is allowed. ! * @return the number of bytes copied, 0 if no byte is available. */ public int copyBytes(byte[] output, int offset, int length) { if (length < 0) throw new IllegalArgumentException("length negative"); ! if ((bits_in_buffer & 7) != 0) /* bits_in_buffer may only be 0 or 8 */ throw new IllegalStateException("Bit buffer is not aligned!"); int count = 0; while (bits_in_buffer > 0 && length > 0) { ! output[offset++] = (byte) buffer; ! buffer >>>= 8; ! bits_in_buffer -= 8; ! length--; ! count++; } if (length == 0) return count; *************** class StreamManipulator *** 171,179 **** if (((window_start - window_end) & 1) != 0) { ! /* We always want an even number of bytes in input, see peekBits */ ! buffer = (window[window_start++] & 0xff); ! bits_in_buffer = 8; } return count + length; } --- 171,179 ---- if (((window_start - window_end) & 1) != 0) { ! /* We always want an even number of bytes in input, see peekBits */ ! buffer = (window[window_start++] & 0xff); ! bits_in_buffer = 8; } return count + length; } *************** class StreamManipulator *** 191,216 **** { if (window_start < window_end) throw new IllegalStateException ! ("Old input was not completely processed"); int end = off + len; /* We want to throw an ArrayIndexOutOfBoundsException early. The ! * check is very tricky: it also handles integer wrap around. */ if (0 > off || off > end || end > buf.length) throw new ArrayIndexOutOfBoundsException(); ! if ((len & 1) != 0) { ! /* We always want an even number of bytes in input, see peekBits */ ! buffer |= (buf[off++] & 0xff) << bits_in_buffer; ! bits_in_buffer += 8; } ! window = buf; window_start = off; window_end = end; } } - --- 191,215 ---- { if (window_start < window_end) throw new IllegalStateException ! ("Old input was not completely processed"); int end = off + len; /* We want to throw an ArrayIndexOutOfBoundsException early. The ! * check is very tricky: it also handles integer wrap around. */ if (0 > off || off > end || end > buf.length) throw new ArrayIndexOutOfBoundsException(); ! if ((len & 1) != 0) { ! /* We always want an even number of bytes in input, see peekBits */ ! buffer |= (buf[off++] & 0xff) << bits_in_buffer; ! bits_in_buffer += 8; } ! window = buf; window_start = off; window_end = end; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/ZipConstants.java gcc-4.6.0/libjava/classpath/java/util/zip/ZipConstants.java *** gcc-4.5.2/libjava/classpath/java/util/zip/ZipConstants.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/java/util/zip/ZipConstants.java Tue Jan 11 19:46:05 2011 *************** interface ZipConstants *** 91,94 **** int ENDOFF = 16; int ENDCOM = 20; } - --- 91,93 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/ZipEntry.java gcc-4.6.0/libjava/classpath/java/util/zip/ZipEntry.java *** gcc-4.5.2/libjava/classpath/java/util/zip/ZipEntry.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/zip/ZipEntry.java Tue Jan 11 19:46:05 2011 *************** import java.util.Calendar; *** 46,52 **** * about the members in an archive. On the other hand ZipOutputStream * needs an instance of this class to create a new member. * ! * @author Jochen Hoenicke */ public class ZipEntry implements ZipConstants, Cloneable { --- 46,52 ---- * about the members in an archive. On the other hand ZipOutputStream * needs an instance of this class to create a new member. * ! * @author Jochen Hoenicke */ public class ZipEntry implements ZipConstants, Cloneable { *************** public class ZipEntry implements ZipCons *** 196,202 **** /** * Returns the entry name. The path components in the entry are ! * always separated by slashes ('/'). */ public String getName() { --- 196,202 ---- /** * Returns the entry name. The path components in the entry are ! * always separated by slashes ('/'). */ public String getName() { *************** public class ZipEntry implements ZipCons *** 241,247 **** time = cal.getTimeInMillis(); known |= KNOWN_TIME; return time; ! } catch (RuntimeException ex) { /* Ignore illegal time stamp */ --- 241,247 ---- time = cal.getTimeInMillis(); known |= KNOWN_TIME; return time; ! } catch (RuntimeException ex) { /* Ignore illegal time stamp */ *************** public class ZipEntry implements ZipCons *** 260,266 **** public void setSize(long size) { if ((size & 0xffffffff00000000L) != 0) ! throw new IllegalArgumentException(); this.size = (int) size; this.known |= KNOWN_SIZE; } --- 260,266 ---- public void setSize(long size) { if ((size & 0xffffffff00000000L) != 0) ! throw new IllegalArgumentException(); this.size = (int) size; this.known |= KNOWN_SIZE; } *************** public class ZipEntry implements ZipCons *** 298,304 **** public void setCrc(long crc) { if ((crc & 0xffffffff00000000L) != 0) ! throw new IllegalArgumentException(); this.crc = (int) crc; this.known |= KNOWN_CRC; } --- 298,304 ---- public void setCrc(long crc) { if ((crc & 0xffffffff00000000L) != 0) ! throw new IllegalArgumentException(); this.crc = (int) crc; this.known |= KNOWN_CRC; } *************** public class ZipEntry implements ZipCons *** 317,334 **** * supported. * @exception IllegalArgumentException if method is not supported. * @see ZipOutputStream#DEFLATED ! * @see ZipOutputStream#STORED */ public void setMethod(int method) { if (method != ZipOutputStream.STORED ! && method != ZipOutputStream.DEFLATED) ! throw new IllegalArgumentException(); this.method = (byte) method; } /** ! * Gets the compression method. * @return the compression method or -1 if unknown. */ public int getMethod() --- 317,334 ---- * supported. * @exception IllegalArgumentException if method is not supported. * @see ZipOutputStream#DEFLATED ! * @see ZipOutputStream#STORED */ public void setMethod(int method) { if (method != ZipOutputStream.STORED ! && method != ZipOutputStream.DEFLATED) ! throw new IllegalArgumentException(); this.method = (byte) method; } /** ! * Gets the compression method. * @return the compression method or -1 if unknown. */ public int getMethod() *************** public class ZipEntry implements ZipCons *** 342,351 **** */ public void setExtra(byte[] extra) { ! if (extra == null) { ! this.extra = null; ! return; } if (extra.length > 0xffff) throw new IllegalArgumentException(); --- 342,351 ---- */ public void setExtra(byte[] extra) { ! if (extra == null) { ! this.extra = null; ! return; } if (extra.length > 0xffff) throw new IllegalArgumentException(); *************** public class ZipEntry implements ZipCons *** 360,397 **** if (extra == null) { ! known |= KNOWN_EXTRA; ! return; } try { ! int pos = 0; ! while (pos < extra.length) ! { ! int sig = (extra[pos++] & 0xff) ! | (extra[pos++] & 0xff) << 8; ! int len = (extra[pos++] & 0xff) ! | (extra[pos++] & 0xff) << 8; ! if (sig == 0x5455) ! { ! /* extended time stamp */ ! int flags = extra[pos]; ! if ((flags & 1) != 0) ! { ! long time = ((extra[pos+1] & 0xff) ! | (extra[pos+2] & 0xff) << 8 ! | (extra[pos+3] & 0xff) << 16 ! | (extra[pos+4] & 0xff) << 24); ! setTime(time*1000); ! } ! } ! pos += len; ! } } catch (ArrayIndexOutOfBoundsException ex) { ! /* be lenient */ } known |= KNOWN_EXTRA; --- 360,397 ---- if (extra == null) { ! known |= KNOWN_EXTRA; ! return; } try { ! int pos = 0; ! while (pos < extra.length) ! { ! int sig = (extra[pos++] & 0xff) ! | (extra[pos++] & 0xff) << 8; ! int len = (extra[pos++] & 0xff) ! | (extra[pos++] & 0xff) << 8; ! if (sig == 0x5455) ! { ! /* extended time stamp */ ! int flags = extra[pos]; ! if ((flags & 1) != 0) ! { ! long time = ((extra[pos+1] & 0xff) ! | (extra[pos+2] & 0xff) << 8 ! | (extra[pos+3] & 0xff) << 16 ! | (extra[pos+4] & 0xff) << 24); ! setTime(time*1000); ! } ! } ! pos += len; ! } } catch (ArrayIndexOutOfBoundsException ex) { ! /* be lenient */ } known |= KNOWN_EXTRA; *************** public class ZipEntry implements ZipCons *** 429,435 **** /** * Gets true, if the entry is a directory. This is solely ! * determined by the name, a trailing slash '/' marks a directory. */ public boolean isDirectory() { --- 429,435 ---- /** * Gets true, if the entry is a directory. This is solely ! * determined by the name, a trailing slash '/' marks a directory. */ public boolean isDirectory() { diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/ZipFile.java gcc-4.6.0/libjava/classpath/java/util/zip/ZipFile.java *** gcc-4.5.2/libjava/classpath/java/util/zip/ZipFile.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/java/util/zip/ZipFile.java Tue Jan 11 19:46:05 2011 *************** public class ZipFile implements ZipConst *** 106,124 **** * * @return the newly open RandomAccessFile, never null */ ! private RandomAccessFile openFile(String name, ! File file) throws ZipException, IOException ! { ! try { ! return (name != null) ? new RandomAccessFile(name, "r") : new RandomAccessFile(file, "r"); } catch (FileNotFoundException f) ! { ZipException ze = new ZipException(f.getMessage()); ze.initCause(f); throw ze; --- 106,124 ---- * * @return the newly open RandomAccessFile, never null */ ! private RandomAccessFile openFile(String name, ! File file) throws ZipException, IOException ! { ! try { ! return (name != null) ? new RandomAccessFile(name, "r") : new RandomAccessFile(file, "r"); } catch (FileNotFoundException f) ! { ZipException ze = new ZipException(f.getMessage()); ze.initCause(f); throw ze; *************** public class ZipFile implements ZipConst *** 130,136 **** * Opens a Zip file with the given name for reading. * @exception IOException if a i/o error occured. * @exception ZipException if the file doesn't contain a valid zip ! * archive. */ public ZipFile(String name) throws ZipException, IOException { --- 130,136 ---- * Opens a Zip file with the given name for reading. * @exception IOException if a i/o error occured. * @exception ZipException if the file doesn't contain a valid zip ! * archive. */ public ZipFile(String name) throws ZipException, IOException { *************** public class ZipFile implements ZipConst *** 143,149 **** * Opens a Zip file reading the given File. * @exception IOException if a i/o error occured. * @exception ZipException if the file doesn't contain a valid zip ! * archive. */ public ZipFile(File file) throws ZipException, IOException { --- 143,149 ---- * Opens a Zip file reading the given File. * @exception IOException if a i/o error occured. * @exception ZipException if the file doesn't contain a valid zip ! * archive. */ public ZipFile(File file) throws ZipException, IOException { *************** public class ZipFile implements ZipConst *** 158,164 **** * If the OPEN_DELETE mode is specified, the zip file will be deleted at * some time moment after it is opened. It will be deleted before the zip * file is closed or the Virtual Machine exits. ! * * The contents of the zip file will be accessible until it is closed. * * @since JDK1.3 --- 158,164 ---- * If the OPEN_DELETE mode is specified, the zip file will be deleted at * some time moment after it is opened. It will be deleted before the zip * file is closed or the Virtual Machine exits. ! * * The contents of the zip file will be accessible until it is closed. * * @since JDK1.3 *************** public class ZipFile implements ZipConst *** 166,172 **** * * @exception IOException if a i/o error occured. * @exception ZipException if the file doesn't contain a valid zip ! * archive. */ public ZipFile(File file, int mode) throws ZipException, IOException { --- 166,172 ---- * * @exception IOException if a i/o error occured. * @exception ZipException if the file doesn't contain a valid zip ! * archive. */ public ZipFile(File file, int mode) throws ZipException, IOException { *************** public class ZipFile implements ZipConst *** 183,189 **** { boolean valid = false; ! try { byte[] buf = new byte[4]; raf.readFully(buf); --- 183,189 ---- { boolean valid = false; ! try { byte[] buf = new byte[4]; raf.readFully(buf); *************** public class ZipFile implements ZipConst *** 195,212 **** } catch (IOException _) { ! } if (!valid) { try { ! raf.close(); } catch (IOException _) { } ! throw new ZipException("Not a valid zip file"); } } --- 195,212 ---- } catch (IOException _) { ! } if (!valid) { try { ! raf.close(); } catch (IOException _) { } ! throw new ZipException("Not a valid zip file"); } } *************** public class ZipFile implements ZipConst *** 225,235 **** * while holding the lock on raf. * * @exception IOException if a i/o error occured. ! * @exception ZipException if the central directory is malformed */ private void readEntries() throws ZipException, IOException { ! /* Search for the End Of Central Directory. When a zip comment is * present the directory may start earlier. * Note that a comment has a maximum length of 64K, so that is the * maximum we search backwards. --- 225,235 ---- * while holding the lock on raf. * * @exception IOException if a i/o error occured. ! * @exception ZipException if the central directory is malformed */ private void readEntries() throws ZipException, IOException { ! /* Search for the End Of Central Directory. When a zip comment is * present the directory may start earlier. * Note that a comment has a maximum length of 64K, so that is the * maximum we search backwards. *************** public class ZipFile implements ZipConst *** 239,251 **** long top = Math.max(0, pos - 65536); do { ! if (pos < top) ! throw new ZipException ! ("central directory not found, probably not a zip file: " + name); ! inp.seek(pos--); } while (inp.readLeInt() != ENDSIG); ! if (inp.skip(ENDTOT - ENDNRD) != ENDTOT - ENDNRD) throw new EOFException(name); int count = inp.readLeShort(); --- 239,251 ---- long top = Math.max(0, pos - 65536); do { ! if (pos < top) ! throw new ZipException ! ("central directory not found, probably not a zip file: " + name); ! inp.seek(pos--); } while (inp.readLeInt() != ENDSIG); ! if (inp.skip(ENDTOT - ENDNRD) != ENDTOT - ENDNRD) throw new EOFException(name); int count = inp.readLeShort(); *************** public class ZipFile implements ZipConst *** 255,297 **** entries = new LinkedHashMap (count+count/2); inp.seek(centralOffset); ! for (int i = 0; i < count; i++) { ! if (inp.readLeInt() != CENSIG) ! throw new ZipException("Wrong Central Directory signature: " + name); inp.skip(6); ! int method = inp.readLeShort(); ! int dostime = inp.readLeInt(); ! int crc = inp.readLeInt(); ! int csize = inp.readLeInt(); ! int size = inp.readLeInt(); ! int nameLen = inp.readLeShort(); ! int extraLen = inp.readLeShort(); ! int commentLen = inp.readLeShort(); inp.skip(8); ! int offset = inp.readLeInt(); ! String name = inp.readString(nameLen); ! ZipEntry entry = new ZipEntry(name); ! entry.setMethod(method); ! entry.setCrc(crc & 0xffffffffL); ! entry.setSize(size & 0xffffffffL); ! entry.setCompressedSize(csize & 0xffffffffL); ! entry.setDOSTime(dostime); ! if (extraLen > 0) ! { ! byte[] extra = new byte[extraLen]; ! inp.readFully(extra); ! entry.setExtra(extra); ! } ! if (commentLen > 0) ! { entry.setComment(inp.readString(commentLen)); ! } ! entry.offset = offset; ! entries.put(name, entry); } } --- 255,297 ---- entries = new LinkedHashMap (count+count/2); inp.seek(centralOffset); ! for (int i = 0; i < count; i++) { ! if (inp.readLeInt() != CENSIG) ! throw new ZipException("Wrong Central Directory signature: " + name); inp.skip(6); ! int method = inp.readLeShort(); ! int dostime = inp.readLeInt(); ! int crc = inp.readLeInt(); ! int csize = inp.readLeInt(); ! int size = inp.readLeInt(); ! int nameLen = inp.readLeShort(); ! int extraLen = inp.readLeShort(); ! int commentLen = inp.readLeShort(); inp.skip(8); ! int offset = inp.readLeInt(); ! String name = inp.readString(nameLen); ! ZipEntry entry = new ZipEntry(name); ! entry.setMethod(method); ! entry.setCrc(crc & 0xffffffffL); ! entry.setSize(size & 0xffffffffL); ! entry.setCompressedSize(csize & 0xffffffffL); ! entry.setDOSTime(dostime); ! if (extraLen > 0) ! { ! byte[] extra = new byte[extraLen]; ! inp.readFully(extra); ! entry.setExtra(extra); ! } ! if (commentLen > 0) ! { entry.setComment(inp.readString(commentLen)); ! } ! entry.offset = offset; ! entries.put(name, entry); } } *************** public class ZipFile implements ZipConst *** 299,305 **** * Closes the ZipFile. This also closes all input streams given by * this class. After this is called, no further method should be * called. ! * * @exception IOException if a i/o error occured. */ public void close() throws IOException --- 299,305 ---- * Closes the ZipFile. This also closes all input streams given by * this class. After this is called, no further method should be * called. ! * * @exception IOException if a i/o error occured. */ public void close() throws IOException *************** public class ZipFile implements ZipConst *** 310,318 **** synchronized (raf) { ! closed = true; ! entries = null; ! raf.close(); } } --- 310,318 ---- synchronized (raf) { ! closed = true; ! entries = null; ! raf.close(); } } *************** public class ZipFile implements ZipConst *** 333,346 **** public Enumeration entries() { checkClosed(); ! try { ! return new ZipEntryEnumeration(getEntries().values().iterator()); } catch (IOException ioe) { ! return new EmptyEnumeration(); } } --- 333,346 ---- public Enumeration entries() { checkClosed(); ! try { ! return new ZipEntryEnumeration(getEntries().values().iterator()); } catch (IOException ioe) { ! return new EmptyEnumeration(); } } *************** public class ZipFile implements ZipConst *** 354,365 **** { synchronized(raf) { ! checkClosed(); ! if (entries == null) ! readEntries(); ! return entries; } } --- 354,365 ---- { synchronized(raf) { ! checkClosed(); ! if (entries == null) ! readEntries(); ! return entries; } } *************** public class ZipFile implements ZipConst *** 378,393 **** try { ! LinkedHashMap entries = getEntries(); ! ZipEntry entry = entries.get(name); // If we didn't find it, maybe it's a directory. if (entry == null && !name.endsWith("/")) ! entry = entries.get(name + '/'); ! return entry != null ? new ZipEntry(entry, name) : null; } catch (IOException ioe) { ! return null; } } --- 378,393 ---- try { ! LinkedHashMap entries = getEntries(); ! ZipEntry entry = entries.get(name); // If we didn't find it, maybe it's a directory. if (entry == null && !name.endsWith("/")) ! entry = entries.get(name + '/'); ! return entry != null ? new ZipEntry(entry, name) : null; } catch (IOException ioe) { ! return null; } } *************** public class ZipFile implements ZipConst *** 411,417 **** * * @exception IllegalStateException when the ZipFile has already been closed * @exception IOException if a i/o error occured. ! * @exception ZipException if the Zip archive is malformed. */ public InputStream getInputStream(ZipEntry entry) throws IOException { --- 411,417 ---- * * @exception IllegalStateException when the ZipFile has already been closed * @exception IOException if a i/o error occured. ! * @exception ZipException if the Zip archive is malformed. */ public InputStream getInputStream(ZipEntry entry) throws IOException { *************** public class ZipFile implements ZipConst *** 446,452 **** switch (method) { case ZipOutputStream.STORED: ! return inp; case ZipOutputStream.DEFLATED: inp.addDummyByte(); final Inflater inf = new Inflater(true); --- 446,452 ---- switch (method) { case ZipOutputStream.STORED: ! return inp; case ZipOutputStream.DEFLATED: inp.addDummyByte(); final Inflater inf = new Inflater(true); *************** public class ZipFile implements ZipConst *** 463,472 **** } }; default: ! throw new ZipException("Unknown compression method " + method); } } ! /** * Returns the (path) name of this zip file. */ --- 463,472 ---- } }; default: ! throw new ZipException("Unknown compression method " + method); } } ! /** * Returns the (path) name of this zip file. */ *************** public class ZipFile implements ZipConst *** 483,499 **** public int size() { checkClosed(); ! try { ! return getEntries().size(); } catch (IOException ioe) { ! return 0; } } ! private static class ZipEntryEnumeration implements Enumeration { private final Iterator elements; --- 483,499 ---- public int size() { checkClosed(); ! try { ! return getEntries().size(); } catch (IOException ioe) { ! return 0; } } ! private static class ZipEntryEnumeration implements Enumeration { private final Iterator elements; *************** public class ZipFile implements ZipConst *** 511,517 **** public ZipEntry nextElement() { /* We return a clone, just to be safe that the user doesn't ! * change the entry. */ return (ZipEntry) (elements.next().clone()); } --- 511,517 ---- public ZipEntry nextElement() { /* We return a clone, just to be safe that the user doesn't ! * change the entry. */ return (ZipEntry) (elements.next().clone()); } *************** public class ZipFile implements ZipConst *** 525,531 **** private static final Charset UTF8CHARSET = Charset.forName("UTF-8"); /** ! * The actual UTF-8 decoder. Created on demand. */ private CharsetDecoder utf8Decoder; --- 525,531 ---- private static final Charset UTF8CHARSET = Charset.forName("UTF-8"); /** ! * The actual UTF-8 decoder. Created on demand. */ private CharsetDecoder utf8Decoder; *************** public class ZipFile implements ZipConst *** 572,608 **** } } } ! public int available() { long amount = end - (bufferOffset + pos); if (amount > Integer.MAX_VALUE) ! return Integer.MAX_VALUE; return (int) amount; } ! public int read() throws IOException { if (bufferOffset + pos >= end + dummyByteCount) ! return -1; if (pos == buffer.length) { bufferOffset += buffer.length; pos = 0; fillBuffer(); } ! return buffer[pos++] & 0xFF; } public int read(byte[] b, int off, int len) throws IOException { if (len > end + dummyByteCount - (bufferOffset + pos)) ! { ! len = (int) (end + dummyByteCount - (bufferOffset + pos)); ! if (len == 0) ! return -1; ! } int totalBytesRead = Math.min(buffer.length - pos, len); System.arraycopy(buffer, pos, b, off, totalBytesRead); --- 572,608 ---- } } } ! public int available() { long amount = end - (bufferOffset + pos); if (amount > Integer.MAX_VALUE) ! return Integer.MAX_VALUE; return (int) amount; } ! public int read() throws IOException { if (bufferOffset + pos >= end + dummyByteCount) ! return -1; if (pos == buffer.length) { bufferOffset += buffer.length; pos = 0; fillBuffer(); } ! return buffer[pos++] & 0xFF; } public int read(byte[] b, int off, int len) throws IOException { if (len > end + dummyByteCount - (bufferOffset + pos)) ! { ! len = (int) (end + dummyByteCount - (bufferOffset + pos)); ! if (len == 0) ! return -1; ! } int totalBytesRead = Math.min(buffer.length - pos, len); System.arraycopy(buffer, pos, b, off, totalBytesRead); *************** public class ZipFile implements ZipConst *** 622,637 **** len -= remain; totalBytesRead += remain; } ! return totalBytesRead; } public long skip(long amount) throws IOException { if (amount < 0) ! return 0; if (amount > end - (bufferOffset + pos)) ! amount = end - (bufferOffset + pos); seek(bufferOffset + pos + amount); return amount; } --- 622,637 ---- len -= remain; totalBytesRead += remain; } ! return totalBytesRead; } public long skip(long amount) throws IOException { if (amount < 0) ! return 0; if (amount > end - (bufferOffset + pos)) ! amount = end - (bufferOffset + pos); seek(bufferOffset + pos + amount); return amount; } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/ZipInputStream.java gcc-4.6.0/libjava/classpath/java/util/zip/ZipInputStream.java *** gcc-4.5.2/libjava/classpath/java/util/zip/ZipInputStream.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/java/util/zip/ZipInputStream.java Tue Jan 11 19:46:05 2011 *************** public class ZipInputStream extends Infl *** 82,90 **** { if (avail <= 0) { ! fillBuf(); ! if (avail <= 0) ! return -1; } if (length > avail) length = avail; --- 82,90 ---- { if (avail <= 0) { ! fillBuf(); ! if (avail <= 0) ! return -1; } if (length > avail) length = avail; *************** public class ZipInputStream extends Infl *** 92,119 **** avail -= length; return length; } ! private void readFully(byte[] out) throws IOException { int off = 0; int len = out.length; while (len > 0) { ! int count = readBuf(out, off, len); ! if (count == -1) ! throw new EOFException(); ! off += count; ! len -= count; } } ! private int readLeByte() throws IOException { if (avail <= 0) { ! fillBuf(); ! if (avail <= 0) ! throw new ZipException("EOF in header"); } return buf[len - avail--] & 0xff; } --- 92,119 ---- avail -= length; return length; } ! private void readFully(byte[] out) throws IOException { int off = 0; int len = out.length; while (len > 0) { ! int count = readBuf(out, off, len); ! if (count == -1) ! throw new EOFException(); ! off += count; ! len -= count; } } ! private int readLeByte() throws IOException { if (avail <= 0) { ! fillBuf(); ! if (avail <= 0) ! throw new ZipException("EOF in header"); } return buf[len - avail--] & 0xff; } *************** public class ZipInputStream extends Infl *** 121,127 **** /** * Read an unsigned short in little endian byte order. */ ! private int readLeShort() throws IOException { return readLeByte() | (readLeByte() << 8); } --- 121,127 ---- /** * Read an unsigned short in little endian byte order. */ ! private int readLeShort() throws IOException { return readLeByte() | (readLeByte() << 8); } *************** public class ZipInputStream extends Infl *** 129,135 **** /** * Read an int in little endian byte order. */ ! private int readLeInt() throws IOException { return readLeShort() | (readLeShort() << 16); } --- 129,135 ---- /** * Read an int in little endian byte order. */ ! private int readLeInt() throws IOException { return readLeShort() | (readLeShort() << 16); } *************** public class ZipInputStream extends Infl *** 148,160 **** int header = readLeInt(); if (header == CENSIG) { ! /* Central Header reached. */ ! close(); ! return null; } if (header != LOCSIG) throw new ZipException("Wrong Local header signature: " ! + Integer.toHexString(header)); /* skip version */ readLeShort(); flags = readLeShort(); --- 148,160 ---- int header = readLeInt(); if (header == CENSIG) { ! /* Central Header reached. */ ! close(); ! return null; } if (header != LOCSIG) throw new ZipException("Wrong Local header signature: " ! + Integer.toHexString(header)); /* skip version */ readLeShort(); flags = readLeShort(); *************** public class ZipInputStream extends Infl *** 175,210 **** String name; try { ! name = new String(buffer, "UTF-8"); } catch (UnsupportedEncodingException uee) { ! throw new AssertionError(uee); } ! entry = createZipEntry(name); entryAtEOF = false; entry.setMethod(method); if ((flags & 8) == 0) { ! entry.setCrc(crc & 0xffffffffL); ! entry.setSize(size & 0xffffffffL); ! entry.setCompressedSize(csize & 0xffffffffL); } entry.setDOSTime(dostime); if (extraLen > 0) { ! byte[] extra = new byte[extraLen]; ! readFully(extra); ! entry.setExtra(extra); } if (method == ZipOutputStream.DEFLATED && avail > 0) { ! System.arraycopy(buf, len - avail, buf, 0, avail); ! len = avail; ! avail = 0; ! inf.setInput(buf, 0, len); } return entry; } --- 175,210 ---- String name; try { ! name = new String(buffer, "UTF-8"); } catch (UnsupportedEncodingException uee) { ! throw new AssertionError(uee); } ! entry = createZipEntry(name); entryAtEOF = false; entry.setMethod(method); if ((flags & 8) == 0) { ! entry.setCrc(crc & 0xffffffffL); ! entry.setSize(size & 0xffffffffL); ! entry.setCompressedSize(csize & 0xffffffffL); } entry.setDOSTime(dostime); if (extraLen > 0) { ! byte[] extra = new byte[extraLen]; ! readFully(extra); ! entry.setExtra(extra); } if (method == ZipOutputStream.DEFLATED && avail > 0) { ! System.arraycopy(buf, len - avail, buf, 0, avail); ! len = avail; ! avail = 0; ! inf.setInput(buf, 0, len); } return entry; } *************** public class ZipInputStream extends Infl *** 232,264 **** if (method == ZipOutputStream.DEFLATED) { ! if ((flags & 8) != 0) ! { ! /* We don't know how much we must skip, read until end. */ ! byte[] tmp = new byte[2048]; ! while (read(tmp) > 0) ! ; ! ! /* read will close this entry */ ! return; ! } ! csize -= inf.getTotalIn(); ! avail = inf.getRemaining(); } if (avail > csize && csize >= 0) avail -= csize; else { ! csize -= avail; ! avail = 0; ! while (csize != 0) ! { ! long skipped = in.skip(csize & 0xffffffffL); ! if (skipped <= 0) ! throw new ZipException("zip archive ends early."); ! csize -= skipped; ! } } size = 0; --- 232,264 ---- if (method == ZipOutputStream.DEFLATED) { ! if ((flags & 8) != 0) ! { ! /* We don't know how much we must skip, read until end. */ ! byte[] tmp = new byte[2048]; ! while (read(tmp) > 0) ! ; ! ! /* read will close this entry */ ! return; ! } ! csize -= inf.getTotalIn(); ! avail = inf.getRemaining(); } if (avail > csize && csize >= 0) avail -= csize; else { ! csize -= avail; ! avail = 0; ! while (csize != 0) ! { ! long skipped = in.skip(csize & 0xffffffffL); ! if (skipped <= 0) ! throw new ZipException("zip archive ends early."); ! csize -= skipped; ! } } size = 0; *************** public class ZipInputStream extends Infl *** 307,346 **** switch (method) { case ZipOutputStream.DEFLATED: ! len = super.read(b, off, len); ! if (len < 0) ! { ! if (!inf.finished()) ! throw new ZipException("Inflater not finished!?"); ! avail = inf.getRemaining(); ! if ((flags & 8) != 0) ! readDataDescr(); - if (inf.getTotalIn() != csize - || inf.getTotalOut() != size) - throw new ZipException("size mismatch: "+csize+";"+size+" <-> "+inf.getTotalIn()+";"+inf.getTotalOut()); - inf.reset(); - finished = true; - } - break; - case ZipOutputStream.STORED: ! if (len > csize && csize >= 0) ! len = csize; ! ! len = readBuf(b, off, len); ! if (len > 0) ! { ! csize -= len; ! size -= len; ! } ! if (csize == 0) ! finished = true; ! else if (len < 0) ! throw new ZipException("EOF in stored block"); ! break; } if (len > 0) --- 307,346 ---- switch (method) { case ZipOutputStream.DEFLATED: ! len = super.read(b, off, len); ! if (len < 0) ! { ! if (!inf.finished()) ! throw new ZipException("Inflater not finished!?"); ! avail = inf.getRemaining(); ! if ((flags & 8) != 0) ! readDataDescr(); ! ! if (inf.getTotalIn() != csize ! || inf.getTotalOut() != size) ! throw new ZipException("size mismatch: "+csize+";"+size+" <-> "+inf.getTotalIn()+";"+inf.getTotalOut()); ! inf.reset(); ! finished = true; ! } ! break; case ZipOutputStream.STORED: ! if (len > csize && csize >= 0) ! len = csize; ! len = readBuf(b, off, len); ! if (len > 0) ! { ! csize -= len; ! size -= len; ! } ! ! if (csize == 0) ! finished = true; ! else if (len < 0) ! throw new ZipException("EOF in stored block"); ! break; } if (len > 0) *************** public class ZipInputStream extends Infl *** 348,358 **** if (finished) { ! if ((crc.getValue() & 0xffffffffL) != entry.getCrc()) ! throw new ZipException("CRC mismatch"); ! crc.reset(); ! entry = null; ! entryAtEOF = true; } return len; } --- 348,358 ---- if (finished) { ! if ((crc.getValue() & 0xffffffffL) != entry.getCrc()) ! throw new ZipException("CRC mismatch"); ! crc.reset(); ! entry = null; ! entryAtEOF = true; } return len; } *************** public class ZipInputStream extends Infl *** 374,380 **** * to new ZipEntry(name). * @param name the name of the zip entry. */ ! protected ZipEntry createZipEntry(String name) { return new ZipEntry(name); } --- 374,380 ---- * to new ZipEntry(name). * @param name the name of the zip entry. */ ! protected ZipEntry createZipEntry(String name) { return new ZipEntry(name); } diff -Nrcpad gcc-4.5.2/libjava/classpath/java/util/zip/ZipOutputStream.java gcc-4.6.0/libjava/classpath/java/util/zip/ZipOutputStream.java *** gcc-4.5.2/libjava/classpath/java/util/zip/ZipOutputStream.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/java/util/zip/ZipOutputStream.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 54,60 **** * * This class is not thread safe. * ! * @author Jochen Hoenicke */ public class ZipOutputStream extends DeflaterOutputStream implements ZipConstants { --- 54,60 ---- * * This class is not thread safe. * ! * @author Jochen Hoenicke */ public class ZipOutputStream extends DeflaterOutputStream implements ZipConstants { *************** public class ZipOutputStream extends Def *** 79,85 **** * Compression method. This method doesn't compress at all. */ public static final int STORED = 0; ! /** * Compression method. This method uses the Deflater. */ --- 79,85 ---- * Compression method. This method doesn't compress at all. */ public static final int STORED = 0; ! /** * Compression method. This method uses the Deflater. */ *************** public class ZipOutputStream extends Def *** 105,121 **** byte[] commentBytes; try { ! commentBytes = comment.getBytes("UTF-8"); } catch (UnsupportedEncodingException uee) { ! throw new AssertionError(uee); } if (commentBytes.length > 0xffff) throw new IllegalArgumentException("Comment too long."); zipComment = commentBytes; } ! /** * Sets default compression method. If the Zip entry specifies * another method its method takes precedence. --- 105,121 ---- byte[] commentBytes; try { ! commentBytes = comment.getBytes("UTF-8"); } catch (UnsupportedEncodingException uee) { ! throw new AssertionError(uee); } if (commentBytes.length > 0xffff) throw new IllegalArgumentException("Comment too long."); zipComment = commentBytes; } ! /** * Sets default compression method. If the Zip entry specifies * another method its method takes precedence. *************** public class ZipOutputStream extends Def *** 133,139 **** /** * Sets default compression level. The new level will be activated ! * immediately. * @exception IllegalArgumentException if level is not supported. * @see Deflater */ --- 133,139 ---- /** * Sets default compression level. The new level will be activated ! * immediately. * @exception IllegalArgumentException if level is not supported. * @see Deflater */ *************** public class ZipOutputStream extends Def *** 141,151 **** { def.setLevel(level); } ! /** * Write an unsigned short in little endian byte order. */ ! private void writeLeShort(int value) throws IOException { out.write(value & 0xff); out.write((value >> 8) & 0xff); --- 141,151 ---- { def.setLevel(level); } ! /** * Write an unsigned short in little endian byte order. */ ! private void writeLeShort(int value) throws IOException { out.write(value & 0xff); out.write((value >> 8) & 0xff); *************** public class ZipOutputStream extends Def *** 154,160 **** /** * Write an int in little endian byte order. */ ! private void writeLeInt(int value) throws IOException { writeLeShort(value); writeLeShort(value >> 16); --- 154,160 ---- /** * Write an int in little endian byte order. */ ! private void writeLeInt(int value) throws IOException { writeLeShort(value); writeLeShort(value >> 16); *************** public class ZipOutputStream extends Def *** 192,218 **** if (method == STORED) { ! if (entry.getCompressedSize() >= 0) ! { ! if (entry.getSize() < 0) ! entry.setSize(entry.getCompressedSize()); ! else if (entry.getSize() != entry.getCompressedSize()) ! throw new ZipException ! ("Method STORED, but compressed size != size"); ! } ! else ! entry.setCompressedSize(entry.getSize()); ! if (entry.getSize() < 0) ! throw new ZipException("Method STORED, but size not set"); ! if (entry.getCrc() < 0) ! throw new ZipException("Method STORED, but crc not set"); } else if (method == DEFLATED) { ! if (entry.getCompressedSize() < 0 ! || entry.getSize() < 0 || entry.getCrc() < 0) ! flags |= 8; } if (curEntry != null) --- 192,218 ---- if (method == STORED) { ! if (entry.getCompressedSize() >= 0) ! { ! if (entry.getSize() < 0) ! entry.setSize(entry.getCompressedSize()); ! else if (entry.getSize() != entry.getCompressedSize()) ! throw new ZipException ! ("Method STORED, but compressed size != size"); ! } ! else ! entry.setCompressedSize(entry.getSize()); ! if (entry.getSize() < 0) ! throw new ZipException("Method STORED, but size not set"); ! if (entry.getCrc() < 0) ! throw new ZipException("Method STORED, but crc not set"); } else if (method == DEFLATED) { ! if (entry.getCompressedSize() < 0 ! || entry.getSize() < 0 || entry.getCrc() < 0) ! flags |= 8; } if (curEntry != null) *************** public class ZipOutputStream extends Def *** 228,257 **** /* Write the local file header */ writeLeInt(LOCSIG); writeLeShort(method == STORED ! ? ZIP_STORED_VERSION : ZIP_DEFLATED_VERSION); writeLeShort(flags); writeLeShort(method); writeLeInt(entry.getDOSTime()); if ((flags & 8) == 0) { ! writeLeInt((int)entry.getCrc()); ! writeLeInt((int)entry.getCompressedSize()); ! writeLeInt((int)entry.getSize()); } else { ! writeLeInt(0); ! writeLeInt(0); ! writeLeInt(0); } byte[] name; try { ! name = entry.getName().getBytes("UTF-8"); } catch (UnsupportedEncodingException uee) { ! throw new AssertionError(uee); } if (name.length > 0xffff) throw new ZipException("Name too long."); --- 228,257 ---- /* Write the local file header */ writeLeInt(LOCSIG); writeLeShort(method == STORED ! ? ZIP_STORED_VERSION : ZIP_DEFLATED_VERSION); writeLeShort(flags); writeLeShort(method); writeLeInt(entry.getDOSTime()); if ((flags & 8) == 0) { ! writeLeInt((int)entry.getCrc()); ! writeLeInt((int)entry.getCompressedSize()); ! writeLeInt((int)entry.getSize()); } else { ! writeLeInt(0); ! writeLeInt(0); ! writeLeInt(0); } byte[] name; try { ! name = entry.getName().getBytes("UTF-8"); } catch (UnsupportedEncodingException uee) { ! throw new AssertionError(uee); } if (name.length > 0xffff) throw new ZipException("Name too long."); *************** public class ZipOutputStream extends Def *** 294,324 **** curEntry.setSize(size); else if (curEntry.getSize() != size) throw new ZipException("size was "+size ! +", but I expected "+curEntry.getSize()); if (curEntry.getCompressedSize() < 0) curEntry.setCompressedSize(csize); else if (curEntry.getCompressedSize() != csize) throw new ZipException("compressed size was "+csize ! +", but I expected "+curEntry.getSize()); if (curEntry.getCrc() < 0) curEntry.setCrc(crc.getValue()); else if (curEntry.getCrc() != crc.getValue()) throw new ZipException("crc was " + Long.toHexString(crc.getValue()) ! + ", but I expected " ! + Long.toHexString(curEntry.getCrc())); offset += csize; /* Now write the data descriptor entry if needed. */ if (curMethod == DEFLATED && (curEntry.flags & 8) != 0) { ! writeLeInt(EXTSIG); ! writeLeInt((int)curEntry.getCrc()); ! writeLeInt((int)curEntry.getCompressedSize()); ! writeLeInt((int)curEntry.getSize()); ! offset += EXTHDR; } entries.addElement(curEntry); --- 294,324 ---- curEntry.setSize(size); else if (curEntry.getSize() != size) throw new ZipException("size was "+size ! +", but I expected "+curEntry.getSize()); if (curEntry.getCompressedSize() < 0) curEntry.setCompressedSize(csize); else if (curEntry.getCompressedSize() != csize) throw new ZipException("compressed size was "+csize ! +", but I expected "+curEntry.getSize()); if (curEntry.getCrc() < 0) curEntry.setCrc(crc.getValue()); else if (curEntry.getCrc() != crc.getValue()) throw new ZipException("crc was " + Long.toHexString(crc.getValue()) ! + ", but I expected " ! + Long.toHexString(curEntry.getCrc())); offset += csize; /* Now write the data descriptor entry if needed. */ if (curMethod == DEFLATED && (curEntry.flags & 8) != 0) { ! writeLeInt(EXTSIG); ! writeLeInt((int)curEntry.getCrc()); ! writeLeInt((int)curEntry.getCompressedSize()); ! writeLeInt((int)curEntry.getSize()); ! offset += EXTHDR; } entries.addElement(curEntry); *************** public class ZipOutputStream extends Def *** 338,349 **** switch (curMethod) { case DEFLATED: ! super.write(b, off, len); ! break; ! case STORED: ! out.write(b, off, len); ! break; } crc.update(b, off, len); --- 338,349 ---- switch (curMethod) { case DEFLATED: ! super.write(b, off, len); ! break; ! case STORED: ! out.write(b, off, len); ! break; } crc.update(b, off, len); *************** public class ZipOutputStream extends Def *** 364,428 **** int numEntries = 0; int sizeEntries = 0; ! Enumeration e = entries.elements(); while (e.hasMoreElements()) { ! ZipEntry entry = (ZipEntry) e.nextElement(); ! ! int method = entry.getMethod(); ! writeLeInt(CENSIG); ! writeLeShort(method == STORED ! ? ZIP_STORED_VERSION : ZIP_DEFLATED_VERSION); ! writeLeShort(method == STORED ! ? ZIP_STORED_VERSION : ZIP_DEFLATED_VERSION); ! writeLeShort(entry.flags); ! writeLeShort(method); ! writeLeInt(entry.getDOSTime()); ! writeLeInt((int)entry.getCrc()); ! writeLeInt((int)entry.getCompressedSize()); ! writeLeInt((int)entry.getSize()); ! byte[] name; ! try ! { ! name = entry.getName().getBytes("UTF-8"); ! } ! catch (UnsupportedEncodingException uee) ! { ! throw new AssertionError(uee); ! } ! if (name.length > 0xffff) ! throw new ZipException("Name too long."); ! byte[] extra = entry.getExtra(); ! if (extra == null) ! extra = new byte[0]; ! String str = entry.getComment(); ! byte[] comment; ! try ! { ! comment = str != null ? str.getBytes("UTF-8") : new byte[0]; ! } ! catch (UnsupportedEncodingException uee) ! { ! throw new AssertionError(uee); ! } ! if (comment.length > 0xffff) ! throw new ZipException("Comment too long."); ! writeLeShort(name.length); ! writeLeShort(extra.length); ! writeLeShort(comment.length); ! writeLeShort(0); /* disk number */ ! writeLeShort(0); /* internal file attr */ ! writeLeInt(0); /* external file attr */ ! writeLeInt(entry.offset); ! out.write(name); ! out.write(extra); ! out.write(comment); ! numEntries++; ! sizeEntries += CENHDR + name.length + extra.length + comment.length; } writeLeInt(ENDSIG); --- 364,428 ---- int numEntries = 0; int sizeEntries = 0; ! Enumeration e = entries.elements(); while (e.hasMoreElements()) { ! ZipEntry entry = (ZipEntry) e.nextElement(); ! int method = entry.getMethod(); ! writeLeInt(CENSIG); ! writeLeShort(method == STORED ! ? ZIP_STORED_VERSION : ZIP_DEFLATED_VERSION); ! writeLeShort(method == STORED ! ? ZIP_STORED_VERSION : ZIP_DEFLATED_VERSION); ! writeLeShort(entry.flags); ! writeLeShort(method); ! writeLeInt(entry.getDOSTime()); ! writeLeInt((int)entry.getCrc()); ! writeLeInt((int)entry.getCompressedSize()); ! writeLeInt((int)entry.getSize()); ! byte[] name; ! try ! { ! name = entry.getName().getBytes("UTF-8"); ! } ! catch (UnsupportedEncodingException uee) ! { ! throw new AssertionError(uee); ! } ! if (name.length > 0xffff) ! throw new ZipException("Name too long."); ! byte[] extra = entry.getExtra(); ! if (extra == null) ! extra = new byte[0]; ! String str = entry.getComment(); ! byte[] comment; ! try ! { ! comment = str != null ? str.getBytes("UTF-8") : new byte[0]; ! } ! catch (UnsupportedEncodingException uee) ! { ! throw new AssertionError(uee); ! } ! if (comment.length > 0xffff) ! throw new ZipException("Comment too long."); ! writeLeShort(name.length); ! writeLeShort(extra.length); ! writeLeShort(comment.length); ! writeLeShort(0); /* disk number */ ! writeLeShort(0); /* internal file attr */ ! writeLeInt(0); /* external file attr */ ! writeLeInt(entry.offset); ! ! out.write(name); ! out.write(extra); ! out.write(comment); ! numEntries++; ! sizeEntries += CENHDR + name.length + extra.length + comment.length; } writeLeInt(ENDSIG); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/accessibility/AccessibleExtendedText.java gcc-4.6.0/libjava/classpath/javax/accessibility/AccessibleExtendedText.java *** gcc-4.5.2/libjava/classpath/javax/accessibility/AccessibleExtendedText.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/accessibility/AccessibleExtendedText.java Tue Jan 11 19:46:05 2011 *************** public interface AccessibleExtendedText *** 56,62 **** /** * This constant indicates that the retrieved text should consist ! * of a run with identical attributes. */ int ATTRIBUTE_RUN = 5; --- 56,62 ---- /** * This constant indicates that the retrieved text should consist ! * of a run with identical attributes. */ int ATTRIBUTE_RUN = 5; *************** public interface AccessibleExtendedText *** 81,87 **** * parameter describes the type of sequence to return; it is one * of the constants from {@link AccessibleText} or from this * class. ! * @param part the type of the sequence to return * @param index start of the sequence */ AccessibleTextSequence getTextSequenceAfter(int part, int index); --- 81,87 ---- * parameter describes the type of sequence to return; it is one * of the constants from {@link AccessibleText} or from this * class. ! * @param part the type of the sequence to return * @param index start of the sequence */ AccessibleTextSequence getTextSequenceAfter(int part, int index); *************** public interface AccessibleExtendedText *** 91,97 **** * parameter describes the type of sequence to return; it is one * of the constants from {@link AccessibleText} or from this * class. ! * @param part the type of the sequence to return * @param index start of the sequence */ AccessibleTextSequence getTextSequenceAt(int part, int index); --- 91,97 ---- * parameter describes the type of sequence to return; it is one * of the constants from {@link AccessibleText} or from this * class. ! * @param part the type of the sequence to return * @param index start of the sequence */ AccessibleTextSequence getTextSequenceAt(int part, int index); *************** public interface AccessibleExtendedText *** 101,107 **** * parameter describes the type of sequence to return; it is one * of the constants from {@link AccessibleText} or from this * class. ! * @param part the type of the sequence to return * @param index end of the sequence */ AccessibleTextSequence getTextSequenceBefore(int part, int index); --- 101,107 ---- * parameter describes the type of sequence to return; it is one * of the constants from {@link AccessibleText} or from this * class. ! * @param part the type of the sequence to return * @param index end of the sequence */ AccessibleTextSequence getTextSequenceBefore(int part, int index); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/accessibility/AccessibleRelation.java gcc-4.6.0/libjava/classpath/javax/accessibility/AccessibleRelation.java *** gcc-4.5.2/libjava/classpath/javax/accessibility/AccessibleRelation.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/accessibility/AccessibleRelation.java Tue Jan 11 19:46:05 2011 *************** import java.util.Locale; *** 45,51 **** * summarizes all relations of the object. This strongly typed "enumeration" * supports localized strings. If the constants of this class are not * adequate, new ones may be added in a similar matter. ! * * @author Eric Blake (ebb9@email.byu.edu) * @since 1.2 * @status updated to 1.4 --- 45,51 ---- * summarizes all relations of the object. This strongly typed "enumeration" * supports localized strings. If the constants of this class are not * adequate, new ones may be added in a similar matter. ! * * @author Eric Blake (ebb9@email.byu.edu) * @since 1.2 * @status updated to 1.4 *************** public class AccessibleRelation extends *** 210,216 **** /** An empty set of targets. */ private static final Object[] EMPTY_TARGETS = { }; ! static { // not constants in JDK --- 210,216 ---- /** An empty set of targets. */ private static final Object[] EMPTY_TARGETS = { }; ! static { // not constants in JDK diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/accessibility/AccessibleRole.java gcc-4.6.0/libjava/classpath/javax/accessibility/AccessibleRole.java *** gcc-4.5.2/libjava/classpath/javax/accessibility/AccessibleRole.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/accessibility/AccessibleRole.java Tue Jan 11 19:46:05 2011 *************** import java.util.Locale; *** 44,50 **** * "table". This strongly typed "enumeration" supports localized strings. If * the constants of this class are not adequate, new ones may be added in a * similar matter, while avoiding a public constructor. ! * * @author Eric Blake (ebb9@email.byu.edu) * @since 1.2 * @status updated to 1.4 --- 44,50 ---- * "table". This strongly typed "enumeration" supports localized strings. If * the constants of this class are not adequate, new ones may be added in a * similar matter, while avoiding a public constructor. ! * * @author Eric Blake (ebb9@email.byu.edu) * @since 1.2 * @status updated to 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/accessibility/AccessibleState.java gcc-4.6.0/libjava/classpath/javax/accessibility/AccessibleState.java *** gcc-4.5.2/libjava/classpath/javax/accessibility/AccessibleState.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/accessibility/AccessibleState.java Tue Jan 11 19:46:05 2011 *************** import java.util.Locale; *** 46,52 **** * be "active" or "selected". This strongly typed "enumeration" supports * localized strings. If the constants of this class are not adequate, new * ones may be added in a similar matter, while avoiding a public constructor. ! * * @author Eric Blake (ebb9@email.byu.edu) * @since 1.2 * @status updated to 1.4 --- 46,52 ---- * be "active" or "selected". This strongly typed "enumeration" supports * localized strings. If the constants of this class are not adequate, new * ones may be added in a similar matter, while avoiding a public constructor. ! * * @author Eric Blake (ebb9@email.byu.edu) * @since 1.2 * @status updated to 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/ActivationDataFlavor.java gcc-4.6.0/libjava/classpath/javax/activation/ActivationDataFlavor.java *** gcc-4.5.2/libjava/classpath/javax/activation/ActivationDataFlavor.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/ActivationDataFlavor.java Tue Jan 11 19:46:05 2011 *************** public class ActivationDataFlavor extend *** 125,131 **** { this.humanPresentableName = humanPresentableName; } ! public boolean equals(DataFlavor dataFlavor) { return (isMimeTypeEqual(dataFlavor) && --- 125,131 ---- { this.humanPresentableName = humanPresentableName; } ! public boolean equals(DataFlavor dataFlavor) { return (isMimeTypeEqual(dataFlavor) && diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/CommandInfo.java gcc-4.6.0/libjava/classpath/javax/activation/CommandInfo.java *** gcc-4.5.2/libjava/classpath/javax/activation/CommandInfo.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/CommandInfo.java Tue Jan 11 19:46:05 2011 *************** public class CommandInfo *** 54,60 **** private final String verb; private final String className; ! /** * Constructor. * @param verb the command verb --- 54,60 ---- private final String verb; private final String className; ! /** * Constructor. * @param verb the command verb *************** public class CommandInfo *** 65,71 **** this.verb = verb; this.className = className; } ! /** * Returns the command verb. */ --- 65,71 ---- this.verb = verb; this.className = className; } ! /** * Returns the command verb. */ *************** public class CommandInfo *** 73,79 **** { return verb; } ! /** * Returns the command class name. */ --- 73,79 ---- { return verb; } ! /** * Returns the command class name. */ *************** public class CommandInfo *** 81,87 **** { return className; } ! /** * Returns the instantiated bean. * If the bean implements CommandObject, its --- 81,87 ---- { return className; } ! /** * Returns the instantiated bean. * If the bean implements CommandObject, its *************** public class CommandInfo *** 112,117 **** } return object; } - - } --- 112,116 ---- } return object; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/CommandMap.java gcc-4.6.0/libjava/classpath/javax/activation/CommandMap.java *** gcc-4.5.2/libjava/classpath/javax/activation/CommandMap.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/CommandMap.java Tue Jan 11 19:46:05 2011 *************** package javax.activation; *** 39,45 **** /** * Registry of command objects available to the system. ! * * @author Chris Burdess * @version 1.1 */ --- 39,45 ---- /** * Registry of command objects available to the system. ! * * @author Chris Burdess * @version 1.1 */ *************** public abstract class CommandMap *** 47,55 **** { /* Class scope */ ! private static CommandMap defaultCommandMap; ! /** * Returns the default command map. * This returns a MailcapCommandMap if no value has been set using --- 47,55 ---- { /* Class scope */ ! private static CommandMap defaultCommandMap; ! /** * Returns the default command map. * This returns a MailcapCommandMap if no value has been set using *************** public abstract class CommandMap *** 63,69 **** } return defaultCommandMap; } ! /** * Sets the default command map. * @param commandMap the new default command map --- 63,69 ---- } return defaultCommandMap; } ! /** * Sets the default command map. * @param commandMap the new default command map *************** public abstract class CommandMap *** 90,108 **** } /* Instance scope */ ! /** * Returns the list of preferred commands for a MIME type. * @param mimeType the MIME type */ public abstract CommandInfo[] getPreferredCommands(String mimeType); ! /** * Returns the complete list of commands for a MIME type. * @param mimeType the MIME type */ public abstract CommandInfo[] getAllCommands(String mimeType); ! /** * Returns the command corresponding to the specified MIME type and * command name. --- 90,108 ---- } /* Instance scope */ ! /** * Returns the list of preferred commands for a MIME type. * @param mimeType the MIME type */ public abstract CommandInfo[] getPreferredCommands(String mimeType); ! /** * Returns the complete list of commands for a MIME type. * @param mimeType the MIME type */ public abstract CommandInfo[] getAllCommands(String mimeType); ! /** * Returns the command corresponding to the specified MIME type and * command name. *************** public abstract class CommandMap *** 110,122 **** * @param cmdName the command name */ public abstract CommandInfo getCommand(String mimeType, String cmdName); ! /** * Returns a DataContentHandler corresponding to the MIME type. * @param mimeType the MIME type */ public abstract DataContentHandler createDataContentHandler(String mimeType); ! /** * Get all the MIME types known to this command map. * If the command map doesn't support this operation, null is returned. --- 110,122 ---- * @param cmdName the command name */ public abstract CommandInfo getCommand(String mimeType, String cmdName); ! /** * Returns a DataContentHandler corresponding to the MIME type. * @param mimeType the MIME type */ public abstract DataContentHandler createDataContentHandler(String mimeType); ! /** * Get all the MIME types known to this command map. * If the command map doesn't support this operation, null is returned. *************** public abstract class CommandMap *** 127,133 **** { return null; } ! /** * Get the preferred command list from a MIME Type. The actual semantics * are determined by the implementation of the CommandMap. --- 127,133 ---- { return null; } ! /** * Get the preferred command list from a MIME Type. The actual semantics * are determined by the implementation of the CommandMap. *************** public abstract class CommandMap *** 147,153 **** { return getPreferredCommands(mimeType); } ! /** * Get all the available commands for this type. This method * should return all the possible commands for this MIME type. --- 147,153 ---- { return getPreferredCommands(mimeType); } ! /** * Get all the available commands for this type. This method * should return all the possible commands for this MIME type. *************** public abstract class CommandMap *** 166,172 **** { return getAllCommands(mimeType); } ! /** * Get the default command corresponding to the MIME type. *

                            --- 166,172 ---- { return getAllCommands(mimeType); } ! /** * Get the default command corresponding to the MIME type. *

                            *************** public abstract class CommandMap *** 186,192 **** { return getCommand(mimeType, cmdName); } ! /** * Locate a DataContentHandler that corresponds to the MIME type. * The mechanism and semantics for determining this are determined --- 186,192 ---- { return getCommand(mimeType, cmdName); } ! /** * Locate a DataContentHandler that corresponds to the MIME type. * The mechanism and semantics for determining this are determined *************** public abstract class CommandMap *** 206,212 **** DataSource ds) { return createDataContentHandler(mimeType); ! } } - --- 206,211 ---- DataSource ds) { return createDataContentHandler(mimeType); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/CommandObject.java gcc-4.6.0/libjava/classpath/javax/activation/CommandObject.java *** gcc-4.5.2/libjava/classpath/javax/activation/CommandObject.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/CommandObject.java Tue Jan 11 19:46:05 2011 *************** public interface CommandObject *** 57,62 **** */ void setCommandContext(String verb, DataHandler dh) throws IOException; - - } --- 57,61 ---- */ void setCommandContext(String verb, DataHandler dh) throws IOException; + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/DataContentHandler.java gcc-4.6.0/libjava/classpath/javax/activation/DataContentHandler.java *** gcc-4.5.2/libjava/classpath/javax/activation/DataContentHandler.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/DataContentHandler.java Tue Jan 11 19:46:05 2011 *************** public interface DataContentHandler *** 56,62 **** * by preference. */ DataFlavor[] getTransferDataFlavors(); ! /** * Returns an object representing the data to be transferred. * @param df the flavor representing the requested type --- 56,62 ---- * by preference. */ DataFlavor[] getTransferDataFlavors(); ! /** * Returns an object representing the data to be transferred. * @param df the flavor representing the requested type *************** public interface DataContentHandler *** 64,77 **** */ Object getTransferData(DataFlavor df, DataSource ds) throws UnsupportedFlavorException, IOException; ! /** * Returns an object representing the data in its most preferred form. * @param ds the data source of the data to be converted */ Object getContent(DataSource ds) throws IOException; ! /** * Writes the object as a stream of bytes. * @param obj the object to convert --- 64,77 ---- */ Object getTransferData(DataFlavor df, DataSource ds) throws UnsupportedFlavorException, IOException; ! /** * Returns an object representing the data in its most preferred form. * @param ds the data source of the data to be converted */ Object getContent(DataSource ds) throws IOException; ! /** * Writes the object as a stream of bytes. * @param obj the object to convert *************** public interface DataContentHandler *** 80,85 **** */ void writeTo(Object obj, String mimeType, OutputStream os) throws IOException; - - } --- 80,84 ---- */ void writeTo(Object obj, String mimeType, OutputStream os) throws IOException; + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/DataContentHandlerFactory.java gcc-4.6.0/libjava/classpath/javax/activation/DataContentHandlerFactory.java *** gcc-4.5.2/libjava/classpath/javax/activation/DataContentHandlerFactory.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/DataContentHandlerFactory.java Tue Jan 11 19:46:05 2011 *************** public interface DataContentHandlerFacto *** 51,56 **** * @param mimeType the MIME type */ DataContentHandler createDataContentHandler(String mimeType); - - } --- 51,55 ---- * @param mimeType the MIME type */ DataContentHandler createDataContentHandler(String mimeType); + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/DataHandler.java gcc-4.6.0/libjava/classpath/javax/activation/DataHandler.java *** gcc-4.5.2/libjava/classpath/javax/activation/DataHandler.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/DataHandler.java Tue Jan 11 19:46:05 2011 *************** public class DataHandler *** 59,65 **** private static final DataFlavor[] NO_FLAVORS = new DataFlavor[0]; private static DataContentHandlerFactory factory = null; ! private final DataSource dataSource; private DataSource objDataSource; private Object object; --- 59,65 ---- private static final DataFlavor[] NO_FLAVORS = new DataFlavor[0]; private static DataContentHandlerFactory factory = null; ! private final DataSource dataSource; private DataSource objDataSource; private Object object; *************** public class DataHandler *** 70,76 **** private DataContentHandler factoryDCH; private DataContentHandlerFactory oldFactory; private String shortType; ! /** * Constructor in which the data is read from a data source. * @param ds the data source --- 70,76 ---- private DataContentHandler factoryDCH; private DataContentHandlerFactory oldFactory; private String shortType; ! /** * Constructor in which the data is read from a data source. * @param ds the data source *************** public class DataHandler *** 80,86 **** dataSource = ds; oldFactory = factory; } ! /** * Constructor using a reified object representation. * @param obj the object representation of the data --- 80,86 ---- dataSource = ds; oldFactory = factory; } ! /** * Constructor using a reified object representation. * @param obj the object representation of the data *************** public class DataHandler *** 93,99 **** objectMimeType = mimeType; oldFactory = factory; } ! /** * Constructor in which the data is read from a URL. * @param url the URL --- 93,99 ---- objectMimeType = mimeType; oldFactory = factory; } ! /** * Constructor in which the data is read from a URL. * @param url the URL *************** public class DataHandler *** 103,109 **** dataSource = new URLDataSource(url); oldFactory = factory; } ! /** * Returns the data source from which data is read. */ --- 103,109 ---- dataSource = new URLDataSource(url); oldFactory = factory; } ! /** * Returns the data source from which data is read. */ *************** public class DataHandler *** 119,125 **** } return objDataSource; } ! /** * Returns the name of the data object if created with a DataSource. */ --- 119,125 ---- } return objDataSource; } ! /** * Returns the name of the data object if created with a DataSource. */ *************** public class DataHandler *** 131,137 **** } return null; } ! /** * Returns the MIME type of the data (with parameters). */ --- 131,137 ---- } return null; } ! /** * Returns the MIME type of the data (with parameters). */ *************** public class DataHandler *** 143,149 **** } return objectMimeType; } ! /** * Returns an input stream from which the data can be read. */ --- 143,149 ---- } return objectMimeType; } ! /** * Returns an input stream from which the data can be read. */ *************** public class DataHandler *** 174,189 **** thread.start(); return new PipedInputStream(pos); } ! static class DataContentHandlerWriter implements Runnable { ! DataContentHandler dch; Object object; String mimeType; OutputStream out; ! DataContentHandlerWriter(DataContentHandler dch, Object object, String mimeType, OutputStream out) { --- 174,189 ---- thread.start(); return new PipedInputStream(pos); } ! static class DataContentHandlerWriter implements Runnable { ! DataContentHandler dch; Object object; String mimeType; OutputStream out; ! DataContentHandlerWriter(DataContentHandler dch, Object object, String mimeType, OutputStream out) { *************** public class DataHandler *** 192,198 **** this.mimeType = mimeType; this.out = out; } ! public void run() { try --- 192,198 ---- this.mimeType = mimeType; this.out = out; } ! public void run() { try *************** public class DataHandler *** 214,220 **** } } } ! /** * Writes the data as a byte stream. * @param os the stream to write to --- 214,220 ---- } } } ! /** * Writes the data as a byte stream. * @param os the stream to write to *************** public class DataHandler *** 238,244 **** dch.writeTo(object, objectMimeType, os); } } ! /** * Returns an output stream that can be used to overwrite the underlying * data, if the DataSource constructor was used. --- 238,244 ---- dch.writeTo(object, objectMimeType, os); } } ! /** * Returns an output stream that can be used to overwrite the underlying * data, if the DataSource constructor was used. *************** public class DataHandler *** 252,258 **** } return null; } ! /** * Returns the data flavors in which this data is available. */ --- 252,258 ---- } return null; } ! /** * Returns the data flavors in which this data is available. */ *************** public class DataHandler *** 265,271 **** } return transferFlavors; } ! /** * Indicates whether the specified data flavor is supported for this * data. --- 265,271 ---- } return transferFlavors; } ! /** * Indicates whether the specified data flavor is supported for this * data. *************** public class DataHandler *** 282,288 **** } return false; } ! /** * Returns an object representing the data to be transferred. * @param flavor the requested data flavor --- 282,288 ---- } return false; } ! /** * Returns an object representing the data to be transferred. * @param flavor the requested data flavor *************** public class DataHandler *** 293,299 **** DataContentHandler dch = getDataContentHandler(); return dch.getTransferData(flavor, dataSource); } ! /** * Sets the command map to be used by this data handler. * Setting to null uses the default command map. --- 293,299 ---- DataContentHandler dch = getDataContentHandler(); return dch.getTransferData(flavor, dataSource); } ! /** * Sets the command map to be used by this data handler. * Setting to null uses the default command map. *************** public class DataHandler *** 308,314 **** currentCommandMap = commandMap; } } ! /** * Returns the preferred commands for this type of data. */ --- 308,314 ---- currentCommandMap = commandMap; } } ! /** * Returns the preferred commands for this type of data. */ *************** public class DataHandler *** 336,342 **** CommandMap commandMap = getCommandMap(); return commandMap.getCommand(getShortType(), cmdName); } ! /** * Returns the data as a reified object. */ --- 336,342 ---- CommandMap commandMap = getCommandMap(); return commandMap.getCommand(getShortType(), cmdName); } ! /** * Returns the data as a reified object. */ *************** public class DataHandler *** 346,352 **** DataContentHandler dch = getDataContentHandler(); return dch.getContent(getDataSource()); } ! /** * Returns the instantiated bean using the specified command. * @param cmdInfo the command to instantiate the bean with --- 346,352 ---- DataContentHandler dch = getDataContentHandler(); return dch.getContent(getDataSource()); } ! /** * Returns the instantiated bean using the specified command. * @param cmdInfo the command to instantiate the bean with *************** public class DataHandler *** 399,405 **** } factory = newFactory; } ! /* * Returns just the base part of the data's content-type, with no * parameters. --- 399,405 ---- } factory = newFactory; } ! /* * Returns just the base part of the data's content-type, with no * parameters. *************** public class DataHandler *** 421,427 **** } return shortType; } ! /* * Returns the command map for this handler. */ --- 421,427 ---- } return shortType; } ! /* * Returns the command map for this handler. */ *************** public class DataHandler *** 433,439 **** } return CommandMap.getDefaultCommandMap(); } ! /* * Returns the DCH for this handler. */ --- 433,439 ---- } return CommandMap.getDefaultCommandMap(); } ! /* * Returns the DCH for this handler. */ *************** public class DataHandler *** 477,482 **** } return dataContentHandler; } - - } --- 477,481 ---- } return dataContentHandler; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/DataHandlerDataSource.java gcc-4.6.0/libjava/classpath/javax/activation/DataHandlerDataSource.java *** gcc-4.5.2/libjava/classpath/javax/activation/DataHandlerDataSource.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/DataHandlerDataSource.java Tue Jan 11 19:46:05 2011 *************** final class DataHandlerDataSource *** 52,79 **** { final DataHandler dh; ! DataHandlerDataSource(DataHandler dh) { this.dh = dh; } ! public String getContentType() { return dh.getContentType(); } ! public InputStream getInputStream() throws IOException { return dh.getInputStream(); } ! public String getName() { return dh.getName(); } ! public OutputStream getOutputStream() throws IOException { --- 52,79 ---- { final DataHandler dh; ! DataHandlerDataSource(DataHandler dh) { this.dh = dh; } ! public String getContentType() { return dh.getContentType(); } ! public InputStream getInputStream() throws IOException { return dh.getInputStream(); } ! public String getName() { return dh.getName(); } ! public OutputStream getOutputStream() throws IOException { *************** final class DataHandlerDataSource *** 81,84 **** } } - --- 81,83 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/DataSource.java gcc-4.6.0/libjava/classpath/javax/activation/DataSource.java *** gcc-4.5.2/libjava/classpath/javax/activation/DataSource.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/DataSource.java Tue Jan 11 19:46:05 2011 *************** import java.io.OutputStream; *** 49,76 **** */ public interface DataSource { ! /** * Returns an input stream from which the data can be read. */ InputStream getInputStream() throws IOException; ! /** * Returns an output stream to which the data can be written. */ OutputStream getOutputStream() throws IOException; ! /** * Returns the MIME content type of the data. */ String getContentType(); ! /** * Returns the underlying name of this object. */ String getName(); - - } --- 49,75 ---- */ public interface DataSource { ! /** * Returns an input stream from which the data can be read. */ InputStream getInputStream() throws IOException; ! /** * Returns an output stream to which the data can be written. */ OutputStream getOutputStream() throws IOException; ! /** * Returns the MIME content type of the data. */ String getContentType(); ! /** * Returns the underlying name of this object. */ String getName(); + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/DataSourceDataContentHandler.java gcc-4.6.0/libjava/classpath/javax/activation/DataSourceDataContentHandler.java *** gcc-4.5.2/libjava/classpath/javax/activation/DataSourceDataContentHandler.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/DataSourceDataContentHandler.java Tue Jan 11 19:46:05 2011 *************** class DataSourceDataContentHandler *** 55,67 **** private DataSource ds; private DataFlavor[] flavors; private DataContentHandler dch; ! public DataSourceDataContentHandler(DataContentHandler dch, DataSource ds) { this.ds = ds; this.dch = dch; } ! public Object getContent(DataSource ds) throws IOException { --- 55,67 ---- private DataSource ds; private DataFlavor[] flavors; private DataContentHandler dch; ! public DataSourceDataContentHandler(DataContentHandler dch, DataSource ds) { this.ds = ds; this.dch = dch; } ! public Object getContent(DataSource ds) throws IOException { *************** class DataSourceDataContentHandler *** 74,80 **** return ds.getInputStream(); } } ! public Object getTransferData(DataFlavor flavor, DataSource ds) throws UnsupportedFlavorException, IOException { --- 74,80 ---- return ds.getInputStream(); } } ! public Object getTransferData(DataFlavor flavor, DataSource ds) throws UnsupportedFlavorException, IOException { *************** class DataSourceDataContentHandler *** 92,98 **** throw new UnsupportedFlavorException(flavor); } } ! public DataFlavor[] getTransferDataFlavors() { if (flavors == null) --- 92,98 ---- throw new UnsupportedFlavorException(flavor); } } ! public DataFlavor[] getTransferDataFlavors() { if (flavors == null) *************** class DataSourceDataContentHandler *** 121,126 **** } dch.writeTo(obj, mimeType, out); } - - } --- 121,125 ---- } dch.writeTo(obj, mimeType, out); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/FileDataSource.java gcc-4.6.0/libjava/classpath/javax/activation/FileDataSource.java *** gcc-4.5.2/libjava/classpath/javax/activation/FileDataSource.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/FileDataSource.java Tue Jan 11 19:46:05 2011 *************** public class FileDataSource *** 56,62 **** private final File file; private FileTypeMap typeMap; ! /** * Constructor. * @param file the underlying file to use --- 56,62 ---- private final File file; private FileTypeMap typeMap; ! /** * Constructor. * @param file the underlying file to use *************** public class FileDataSource *** 65,71 **** { this.file = file; } ! /** * Constructor. * @param name the path to the underlying file to use --- 65,71 ---- { this.file = file; } ! /** * Constructor. * @param name the path to the underlying file to use *************** public class FileDataSource *** 74,80 **** { this(new File(name)); } ! public InputStream getInputStream() throws IOException { --- 74,80 ---- { this(new File(name)); } ! public InputStream getInputStream() throws IOException { *************** public class FileDataSource *** 86,92 **** { return new FileOutputStream(file); } ! public String getContentType() { if (typeMap == null) --- 86,92 ---- { return new FileOutputStream(file); } ! public String getContentType() { if (typeMap == null) *************** public class FileDataSource *** 96,107 **** } return typeMap.getContentType(file); } ! public String getName() { return file.getName(); } ! /** * Returns the underlying file. */ --- 96,107 ---- } return typeMap.getContentType(file); } ! public String getName() { return file.getName(); } ! /** * Returns the underlying file. */ *************** public class FileDataSource *** 118,123 **** { typeMap = map; } - - } --- 118,122 ---- { typeMap = map; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/FileTypeMap.java gcc-4.6.0/libjava/classpath/javax/activation/FileTypeMap.java *** gcc-4.5.2/libjava/classpath/javax/activation/FileTypeMap.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/FileTypeMap.java Tue Jan 11 19:46:05 2011 *************** public abstract class FileTypeMap *** 49,57 **** { /* Class scope */ ! private static FileTypeMap defaultMap; ! /** * Returns the system default file type map. * If one has not been set, this returns a MimetypesFileTypeMap. --- 49,57 ---- { /* Class scope */ ! private static FileTypeMap defaultMap; ! /** * Returns the system default file type map. * If one has not been set, this returns a MimetypesFileTypeMap. *************** public abstract class FileTypeMap *** 64,70 **** } return defaultMap; } ! /** * Sets the default file type map. * @param map the new file type map --- 64,70 ---- } return defaultMap; } ! /** * Sets the default file type map. * @param map the new file type map *************** public abstract class FileTypeMap *** 91,103 **** } /* Instance scope */ ! /** * Returns the content type of the specified file. * @param file the file to classify */ public abstract String getContentType(File file); ! /** * Returns the content type of the specified file path. * @param filename the path of the file to classify --- 91,103 ---- } /* Instance scope */ ! /** * Returns the content type of the specified file. * @param file the file to classify */ public abstract String getContentType(File file); ! /** * Returns the content type of the specified file path. * @param filename the path of the file to classify *************** public abstract class FileTypeMap *** 105,108 **** public abstract String getContentType(String filename); } - --- 105,107 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/MailcapCommandMap.java gcc-4.6.0/libjava/classpath/javax/activation/MailcapCommandMap.java *** gcc-4.5.2/libjava/classpath/javax/activation/MailcapCommandMap.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/MailcapCommandMap.java Tue Jan 11 19:46:05 2011 *************** public class MailcapCommandMap *** 82,89 **** private static boolean debug = false; private static final int NORMAL = 0; private static final int FALLBACK = 1; ! ! static { try { --- 82,89 ---- private static boolean debug = false; private static final int NORMAL = 0; private static final int FALLBACK = 1; ! ! static { try { *************** public class MailcapCommandMap *** 94,102 **** { } } ! private Map>>[][] mailcaps; ! /** * Default constructor. */ --- 94,102 ---- { } } ! private Map>>[][] mailcaps; ! /** * Default constructor. */ *************** public class MailcapCommandMap *** 104,110 **** { init(null); } ! /** * Constructor specifying a filename. * @param fileName the name of the file to read mailcap entries from --- 104,110 ---- { init(null); } ! /** * Constructor specifying a filename. * @param fileName the name of the file to read mailcap entries from *************** public class MailcapCommandMap *** 132,138 **** } } } ! /** * Constructor specifying an input stream. * @param is the input stream to read mailcap entries from --- 132,138 ---- } } } ! /** * Constructor specifying an input stream. * @param is the input stream to read mailcap entries from *************** public class MailcapCommandMap *** 150,156 **** for (int j = 0; j < 2; j++) { mailcaps[i][j] = ! new LinkedHashMap>>(); } } if (in != null) --- 150,156 ---- for (int j = 0; j < 2; j++) { mailcaps[i][j] = ! new LinkedHashMap>>(); } } if (in != null) *************** public class MailcapCommandMap *** 167,173 **** { } } ! if (debug) { System.out.println("MailcapCommandMap: load HOME"); --- 167,173 ---- { } } ! if (debug) { System.out.println("MailcapCommandMap: load HOME"); *************** public class MailcapCommandMap *** 186,202 **** catch (SecurityException e) { } ! if (debug) { System.out.println("MailcapCommandMap: load SYS"); } try { ! parseFile(SYS, new CPStringBuilder(System.getProperty("java.home")) ! .append(File.separatorChar) ! .append("lib") .append(File.separatorChar) .append("mailcap") .toString()); --- 186,202 ---- catch (SecurityException e) { } ! if (debug) { System.out.println("MailcapCommandMap: load SYS"); } try { ! parseFile(SYS, new CPStringBuilder(System.getProperty("java.home")) ! .append(File.separatorChar) ! .append("lib") .append(File.separatorChar) .append("mailcap") .toString()); *************** public class MailcapCommandMap *** 204,210 **** catch (SecurityException e) { } ! if (debug) { System.out.println("MailcapCommandMap: load JAR"); --- 204,210 ---- catch (SecurityException e) { } ! if (debug) { System.out.println("MailcapCommandMap: load JAR"); *************** public class MailcapCommandMap *** 253,266 **** { parseResource(JAR, "/META-INF/mailcap"); } ! if (debug) { System.out.println("MailcapCommandMap: load DEF"); } parseResource(DEF, "/META-INF/mailcap.default"); } ! /** * Returns the list of preferred commands for a given MIME type. * @param mimeType the MIME type --- 253,266 ---- { parseResource(JAR, "/META-INF/mailcap"); } ! if (debug) { System.out.println("MailcapCommandMap: load DEF"); } parseResource(DEF, "/META-INF/mailcap.default"); } ! /** * Returns the list of preferred commands for a given MIME type. * @param mimeType the MIME type *************** public class MailcapCommandMap *** 295,301 **** cmdList.toArray(cmds); return cmds; } ! /** * Returns all commands for the given MIME type. * @param mimeType the MIME type --- 295,301 ---- cmdList.toArray(cmds); return cmds; } ! /** * Returns all commands for the given MIME type. * @param mimeType the MIME type *************** public class MailcapCommandMap *** 343,349 **** for (int j = 0; j < 5; j++) { Map> map = ! getCommands(mailcaps[j][i], mimeType); if (map != null) { List classNames = map.get(cmdName); --- 343,349 ---- for (int j = 0; j < 5; j++) { Map> map = ! getCommands(mailcaps[j][i], mimeType); if (map != null) { List classNames = map.get(cmdName); *************** public class MailcapCommandMap *** 449,455 **** } return null; } ! /** * Get the native commands for the given MIME type. * Returns an array of strings where each string is --- 449,455 ---- } return null; } ! /** * Get the native commands for the given MIME type. * Returns an array of strings where each string is *************** public class MailcapCommandMap *** 479,486 **** } private void addNativeCommands(List acc, ! Map>> mailcap, ! String mimeType) { for (Map.Entry>> mEntry : mailcap.entrySet()) { --- 479,486 ---- } private void addNativeCommands(List acc, ! Map>> mailcap, ! String mimeType) { for (Map.Entry>> mEntry : mailcap.entrySet()) { *************** public class MailcapCommandMap *** 522,528 **** } } } ! private static String nameOf(int mailcap) { switch (mailcap) --- 522,528 ---- } } } ! private static String nameOf(int mailcap) { switch (mailcap) *************** public class MailcapCommandMap *** 539,545 **** return "DEF"; default: return "ERR"; ! } } private void parseFile(int index, String filename) --- 539,545 ---- return "DEF"; default: return "ERR"; ! } } private void parseFile(int index, String filename) *************** public class MailcapCommandMap *** 576,582 **** } } } ! private void parseResource(int index, String name) { Reader in = null; --- 576,582 ---- } } } ! private void parseResource(int index, String name) { Reader in = null; *************** public class MailcapCommandMap *** 615,621 **** } } } ! private void parse(int index, Reader in) throws IOException { --- 615,621 ---- } } } ! private void parse(int index, Reader in) throws IOException { *************** public class MailcapCommandMap *** 649,655 **** } } } ! private void parseEntry(int index, String line) { // Tokenize entry into fields --- 649,655 ---- } } } ! private void parseEntry(int index, String line) { // Tokenize entry into fields *************** public class MailcapCommandMap *** 691,697 **** fallback = true; } fields.add(field); ! len = fields.size(); if (len < 2) { --- 691,697 ---- fallback = true; } fields.add(field); ! len = fields.size(); if (len < 2) { *************** public class MailcapCommandMap *** 701,707 **** } return; } ! Map>> mailcap = fallback ? mailcaps[index][FALLBACK] : mailcaps[index][NORMAL]; String mimeType = fields.get(0); --- 701,707 ---- } return; } ! Map>> mailcap = fallback ? mailcaps[index][FALLBACK] : mailcaps[index][NORMAL]; String mimeType = fields.get(0); *************** public class MailcapCommandMap *** 711,719 **** addField(mailcap, mimeType, null, (String) fields.get(i)); } } ! private void addField(Map>> mailcap, ! String mimeType, String verb, String command) { if (verb == null) { --- 711,719 ---- addField(mailcap, mimeType, null, (String) fields.get(i)); } } ! private void addField(Map>> mailcap, ! String mimeType, String verb, String command) { if (verb == null) { *************** public class MailcapCommandMap *** 728,734 **** { return; // Invalid field or flag } ! Map> commands = mailcap.get(mimeType); if (commands == null) { --- 728,734 ---- { return; // Invalid field or flag } ! Map> commands = mailcap.get(mimeType); if (commands == null) { *************** public class MailcapCommandMap *** 743,752 **** } classNames.add(command); } ! private Map> getCommands(Map>> mailcap, ! String mimeType) { int si = mimeType.indexOf('/'); String genericMimeType = new CPStringBuilder(mimeType.substring(0, si)) --- 743,752 ---- } classNames.add(command); } ! private Map> getCommands(Map>> mailcap, ! String mimeType) { int si = mimeType.indexOf('/'); String genericMimeType = new CPStringBuilder(mimeType.substring(0, si)) *************** public class MailcapCommandMap *** 782,788 **** } // -- Utility methods -- ! private List getSystemResources(String name) { List acc = new ArrayList(); --- 782,788 ---- } // -- Utility methods -- ! private List getSystemResources(String name) { List acc = new ArrayList(); *************** public class MailcapCommandMap *** 799,804 **** } return acc; } - - } --- 799,803 ---- } return acc; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/MimeType.java gcc-4.6.0/libjava/classpath/javax/activation/MimeType.java *** gcc-4.5.2/libjava/classpath/javax/activation/MimeType.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/MimeType.java Tue Jan 11 19:46:05 2011 *************** import java.io.ObjectOutput; *** 53,65 **** public class MimeType implements Externalizable { ! static final String TSPECIALS = "()<>@,;:/[]?=\\\""; ! private String primaryType; private String subType; private MimeTypeParameterList parameters; ! /** * Constructor for an application/* content type. */ --- 53,65 ---- public class MimeType implements Externalizable { ! static final String TSPECIALS = "()<>@,;:/[]?=\\\""; ! private String primaryType; private String subType; private MimeTypeParameterList parameters; ! /** * Constructor for an application/* content type. */ *************** public class MimeType *** 69,75 **** subType = "*"; parameters = new MimeTypeParameterList(); } ! /** * Constructor that parses a raw String. * @param rawdata the MIME type string --- 69,75 ---- subType = "*"; parameters = new MimeTypeParameterList(); } ! /** * Constructor that parses a raw String. * @param rawdata the MIME type string *************** public class MimeType *** 79,85 **** { parse(rawdata); } ! /** * Constructor for a new MIME type with the given primary and sub types * and an empty parameter list. --- 79,85 ---- { parse(rawdata); } ! /** * Constructor for a new MIME type with the given primary and sub types * and an empty parameter list. *************** public class MimeType *** 103,109 **** { return primaryType; } ! /** * Sets the primary type. * @param primary the new primary type --- 103,109 ---- { return primaryType; } ! /** * Sets the primary type. * @param primary the new primary type *************** public class MimeType *** 114,120 **** checkValidity(primary, "Primary type is invalid"); primaryType = primary.toLowerCase(); } ! /** * Returns the subtype. */ --- 114,120 ---- checkValidity(primary, "Primary type is invalid"); primaryType = primary.toLowerCase(); } ! /** * Returns the subtype. */ *************** public class MimeType *** 122,128 **** { return subType; } ! /** * Sets the subtype. * @param sub the new subtype --- 122,128 ---- { return subType; } ! /** * Sets the subtype. * @param sub the new subtype *************** public class MimeType *** 133,139 **** checkValidity(sub, "Sub type is invalid"); subType = sub.toLowerCase(); } ! /** * Returns the MIME parameters. */ --- 133,139 ---- checkValidity(sub, "Sub type is invalid"); subType = sub.toLowerCase(); } ! /** * Returns the MIME parameters. */ *************** public class MimeType *** 141,147 **** { return parameters; } ! /** * Returns the parameter value for the specified name. * @param name the parameter name --- 141,147 ---- { return parameters; } ! /** * Returns the parameter value for the specified name. * @param name the parameter name *************** public class MimeType *** 150,156 **** { return parameters.get(name); } ! /** * Sets the parameter value for the specified name. * @param name the parameter name --- 150,156 ---- { return parameters.get(name); } ! /** * Sets the parameter value for the specified name. * @param name the parameter name *************** public class MimeType *** 160,166 **** { parameters.set(name, value); } ! /** * Removes the parameter value for the specified name. * @param name the parameter name --- 160,166 ---- { parameters.set(name, value); } ! /** * Removes the parameter value for the specified name. * @param name the parameter name *************** public class MimeType *** 169,175 **** { parameters.remove(name); } ! /** * Returns the complete string representation of this MIME type. */ --- 169,175 ---- { parameters.remove(name); } ! /** * Returns the complete string representation of this MIME type. */ *************** public class MimeType *** 181,187 **** .append(parameters.toString()) .toString(); } ! /** * Returns the string representation of this MIME type without * parameters. --- 181,187 ---- .append(parameters.toString()) .toString(); } ! /** * Returns the string representation of this MIME type without * parameters. *************** public class MimeType *** 193,199 **** .append(subType) .toString(); } ! /** * Returns true if the primary and subtype of this MIME type are the * same as in the given MIME type. --- 193,199 ---- .append(subType) .toString(); } ! /** * Returns true if the primary and subtype of this MIME type are the * same as in the given MIME type. *************** public class MimeType *** 206,212 **** "*".equals(subType) || "*".equals(sub2)); } ! /** * Returns true if the primary and subtype of this MIME type are the * same as in the given MIME type string. --- 206,212 ---- "*".equals(subType) || "*".equals(sub2)); } ! /** * Returns true if the primary and subtype of this MIME type are the * same as in the given MIME type string. *************** public class MimeType *** 216,229 **** { return match(new MimeType(rawdata)); } ! public void writeExternal(ObjectOutput out) throws IOException { out.writeUTF(toString()); out.flush(); } ! public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { --- 216,229 ---- { return match(new MimeType(rawdata)); } ! public void writeExternal(ObjectOutput out) throws IOException { out.writeUTF(toString()); out.flush(); } ! public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { *************** public class MimeType *** 236,242 **** throw new IOException(e.getMessage()); } } ! private void parse(String rawdata) throws MimeTypeParseException { --- 236,242 ---- throw new IOException(e.getMessage()); } } ! private void parse(String rawdata) throws MimeTypeParseException { *************** public class MimeType *** 283,293 **** } } } ! static boolean isValidChar(char c) { return c > ' ' && c <= '~' && TSPECIALS.indexOf(c) == -1; } } - --- 283,292 ---- } } } ! static boolean isValidChar(char c) { return c > ' ' && c <= '~' && TSPECIALS.indexOf(c) == -1; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/MimeTypeParameterList.java gcc-4.6.0/libjava/classpath/javax/activation/MimeTypeParameterList.java *** gcc-4.5.2/libjava/classpath/javax/activation/MimeTypeParameterList.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/MimeTypeParameterList.java Tue Jan 11 19:46:05 2011 *************** public class MimeTypeParameterList *** 57,63 **** private final List parameterNames; private final Map parameterValues; ! /** * Constructor for an empty parameter list. */ --- 57,63 ---- private final List parameterNames; private final Map parameterValues; ! /** * Constructor for an empty parameter list. */ *************** public class MimeTypeParameterList *** 122,132 **** { params.add(param); } ! // Tokenize each parameter into name + value for (Iterator i = params.iterator(); i.hasNext();) { ! param = i.next(); int ei = param.indexOf('='); if (ei == -1) { --- 122,132 ---- { params.add(param); } ! // Tokenize each parameter into name + value for (Iterator i = params.iterator(); i.hasNext();) { ! param = i.next(); int ei = param.indexOf('='); if (ei == -1) { *************** public class MimeTypeParameterList *** 147,158 **** { MimeType.checkValidity(name, "Parameter value is invalid"); } ! parameterNames.add(name); parameterValues.put(name.toLowerCase(), value); } } ! /** * Returns the number of parameters. */ --- 147,158 ---- { MimeType.checkValidity(name, "Parameter value is invalid"); } ! parameterNames.add(name); parameterValues.put(name.toLowerCase(), value); } } ! /** * Returns the number of parameters. */ *************** public class MimeTypeParameterList *** 160,166 **** { return parameterNames.size(); } ! /** * Indicates if there are no parameters. */ --- 160,166 ---- { return parameterNames.size(); } ! /** * Indicates if there are no parameters. */ *************** public class MimeTypeParameterList *** 178,184 **** name = name.trim(); return parameterValues.get(name.toLowerCase()); } ! /** * Sets the value for the specified parameter name. * @param name the parameter name --- 178,184 ---- name = name.trim(); return parameterValues.get(name.toLowerCase()); } ! /** * Sets the value for the specified parameter name. * @param name the parameter name *************** public class MimeTypeParameterList *** 201,207 **** } parameterValues.put(name.toLowerCase(), value); } ! /** * Removes the parameter identified by the specified name. * @param name the parameter name --- 201,207 ---- } parameterValues.put(name.toLowerCase(), value); } ! /** * Removes the parameter identified by the specified name. * @param name the parameter name *************** public class MimeTypeParameterList *** 211,217 **** name = name.trim(); for (Iterator i = parameterNames.iterator();i.hasNext();) { ! String pname = i.next(); if (name.equalsIgnoreCase(pname)) { i.remove(); --- 211,217 ---- name = name.trim(); for (Iterator i = parameterNames.iterator();i.hasNext();) { ! String pname = i.next(); if (name.equalsIgnoreCase(pname)) { i.remove(); *************** public class MimeTypeParameterList *** 219,225 **** } parameterValues.remove(name.toLowerCase()); } ! /** * Returns an enumeration of all the parameter names. */ --- 219,225 ---- } parameterValues.remove(name.toLowerCase()); } ! /** * Returns an enumeration of all the parameter names. */ *************** public class MimeTypeParameterList *** 229,235 **** { return new IteratorEnumeration(parameterNames.iterator()); } ! /** * Returns an RFC 2045-compliant string representation of this parameter * list. --- 229,235 ---- { return new IteratorEnumeration(parameterNames.iterator()); } ! /** * Returns an RFC 2045-compliant string representation of this parameter * list. *************** public class MimeTypeParameterList *** 240,246 **** for (String name : parameterNames) { String value = parameterValues.get(name.toLowerCase()); ! buffer.append(';'); buffer.append(' '); buffer.append(name); --- 240,246 ---- for (String name : parameterNames) { String value = parameterValues.get(name.toLowerCase()); ! buffer.append(';'); buffer.append(' '); buffer.append(name); *************** public class MimeTypeParameterList *** 249,255 **** } return buffer.toString(); } ! private static String quote(String value) { boolean needsQuoting = false; --- 249,255 ---- } return buffer.toString(); } ! private static String quote(String value) { boolean needsQuoting = false; *************** public class MimeTypeParameterList *** 262,268 **** break; } } ! if (needsQuoting) { CPStringBuilder buffer = new CPStringBuilder(); --- 262,268 ---- break; } } ! if (needsQuoting) { CPStringBuilder buffer = new CPStringBuilder(); *************** public class MimeTypeParameterList *** 281,287 **** } return value; } ! private static String unquote(String value) { int len = value.length(); --- 281,287 ---- } return value; } ! private static String unquote(String value) { int len = value.length(); *************** public class MimeTypeParameterList *** 305,336 **** } return buffer.toString(); } ! /** * Enumeration proxy for an Iterator. */ static class IteratorEnumeration implements Enumeration { ! final Iterator iterator; ! IteratorEnumeration(Iterator iterator) { this.iterator = iterator; } ! public boolean hasMoreElements() { return iterator.hasNext(); } ! public String nextElement() { return iterator.next(); } ! } - - } --- 305,335 ---- } return buffer.toString(); } ! /** * Enumeration proxy for an Iterator. */ static class IteratorEnumeration implements Enumeration { ! final Iterator iterator; ! IteratorEnumeration(Iterator iterator) { this.iterator = iterator; } ! public boolean hasMoreElements() { return iterator.hasNext(); } ! public String nextElement() { return iterator.next(); } ! } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/MimeTypeParseException.java gcc-4.6.0/libjava/classpath/javax/activation/MimeTypeParseException.java *** gcc-4.5.2/libjava/classpath/javax/activation/MimeTypeParseException.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/MimeTypeParseException.java Tue Jan 11 19:46:05 2011 *************** public class MimeTypeParseException *** 55,61 **** public MimeTypeParseException() { } ! /** * MimeTypeParseException with the specified detail message. * @param message the exception message --- 55,61 ---- public MimeTypeParseException() { } ! /** * MimeTypeParseException with the specified detail message. * @param message the exception message *************** public class MimeTypeParseException *** 79,84 **** .append(token) .toString()); } - - } --- 79,83 ---- .append(token) .toString()); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/MimetypesFileTypeMap.java gcc-4.6.0/libjava/classpath/javax/activation/MimetypesFileTypeMap.java *** gcc-4.5.2/libjava/classpath/javax/activation/MimetypesFileTypeMap.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/MimetypesFileTypeMap.java Tue Jan 11 19:46:05 2011 *************** public class MimetypesFileTypeMap *** 92,100 **** { } } ! private Map[] mimetypes; ! /** * Default constructor. */ --- 92,100 ---- { } } ! private Map[] mimetypes; ! /** * Default constructor. */ *************** public class MimetypesFileTypeMap *** 102,108 **** { init(null); } ! /** * Constructor specifying a filename. * @param mimeTypeFileName the name of the file to read mime.types --- 102,108 ---- { init(null); } ! /** * Constructor specifying a filename. * @param mimeTypeFileName the name of the file to read mime.types *************** public class MimetypesFileTypeMap *** 125,131 **** } } } ! /** * Constructor specifying an input stream. * @param is the input stream to read mime.types entries from --- 125,131 ---- } } } ! /** * Constructor specifying an input stream. * @param is the input stream to read mime.types entries from *************** public class MimetypesFileTypeMap *** 156,162 **** { } } ! if (debug) { System.out.println("MimetypesFileTypeMap: load HOME"); --- 156,162 ---- { } } ! if (debug) { System.out.println("MimetypesFileTypeMap: load HOME"); *************** public class MimetypesFileTypeMap *** 175,181 **** catch (SecurityException e) { } ! if (debug) { System.out.println("MimetypesFileTypeMap: load SYS"); --- 175,181 ---- catch (SecurityException e) { } ! if (debug) { System.out.println("MimetypesFileTypeMap: load SYS"); *************** public class MimetypesFileTypeMap *** 184,191 **** { parseFile(mimetypes[SYS], new CPStringBuilder(System.getProperty("java.home")) ! .append(File.separatorChar) ! .append("lib") .append(File.separatorChar) .append("mime.types") .toString()); --- 184,191 ---- { parseFile(mimetypes[SYS], new CPStringBuilder(System.getProperty("java.home")) ! .append(File.separatorChar) ! .append("lib") .append(File.separatorChar) .append("mime.types") .toString()); *************** public class MimetypesFileTypeMap *** 232,245 **** { parseResource(mimetypes[JAR], "/META-INF/mime.types"); } ! if (debug) { System.out.println("MimetypesFileTypeMap: load DEF"); } parseResource(mimetypes[DEF], "/META-INF/mimetypes.default"); } ! /** * Adds entries prorammatically to the registry. * @param mime_types a mime.types formatted entries string --- 232,245 ---- { parseResource(mimetypes[JAR], "/META-INF/mime.types"); } ! if (debug) { System.out.println("MimetypesFileTypeMap: load DEF"); } parseResource(mimetypes[DEF], "/META-INF/mimetypes.default"); } ! /** * Adds entries prorammatically to the registry. * @param mime_types a mime.types formatted entries string *************** public class MimetypesFileTypeMap *** 268,274 **** { return getContentType(f.getName()); } ! /** * Returns the MIME type based on the given filename. * If no entry is found, returns "application/octet-stream". --- 268,274 ---- { return getContentType(f.getName()); } ! /** * Returns the MIME type based on the given filename. * If no entry is found, returns "application/octet-stream". *************** public class MimetypesFileTypeMap *** 296,302 **** } return DEFAULT_MIME_TYPE; } ! private void parseFile(Map mimetypes, String filename) { Reader in = null; --- 296,302 ---- } return DEFAULT_MIME_TYPE; } ! private void parseFile(Map mimetypes, String filename) { Reader in = null; *************** public class MimetypesFileTypeMap *** 322,328 **** } } } ! private void parseResource(Map mimetypes, String name) { Reader in = null; --- 322,328 ---- } } } ! private void parseResource(Map mimetypes, String name) { Reader in = null; *************** public class MimetypesFileTypeMap *** 352,358 **** } } } ! private void parse(Map mimetypes, Reader in) throws IOException { --- 352,358 ---- } } } ! private void parse(Map mimetypes, Reader in) throws IOException { *************** public class MimetypesFileTypeMap *** 386,394 **** } } } ! private void parseEntry(Map mimetypes, ! String line) { // Tokenize String mimeType = null; --- 386,394 ---- } } } ! private void parseEntry(Map mimetypes, ! String line) { // Tokenize String mimeType = null; *************** public class MimetypesFileTypeMap *** 418,426 **** mimetypes.put(buffer.toString(), mimeType); } } ! // -- Utility methods -- ! private List getSystemResources(String name) { List acc = new ArrayList(); --- 418,426 ---- mimetypes.put(buffer.toString(), mimeType); } } ! // -- Utility methods -- ! private List getSystemResources(String name) { List acc = new ArrayList(); *************** public class MimetypesFileTypeMap *** 435,440 **** } return acc; } - - } --- 435,439 ---- } return acc; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/ObjectDataContentHandler.java gcc-4.6.0/libjava/classpath/javax/activation/ObjectDataContentHandler.java *** gcc-4.5.2/libjava/classpath/javax/activation/ObjectDataContentHandler.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/ObjectDataContentHandler.java Tue Jan 11 19:46:05 2011 *************** class ObjectDataContentHandler *** 56,62 **** private Object object; private String mimeType; private DataFlavor[] flavors; ! public ObjectDataContentHandler(DataContentHandler dch, Object object, String mimeType) { --- 56,62 ---- private Object object; private String mimeType; private DataFlavor[] flavors; ! public ObjectDataContentHandler(DataContentHandler dch, Object object, String mimeType) { *************** class ObjectDataContentHandler *** 64,75 **** this.object = object; this.mimeType = mimeType; } ! public Object getContent(DataSource ds) { return object; } ! public DataContentHandler getDCH() { return dch; --- 64,75 ---- this.object = object; this.mimeType = mimeType; } ! public Object getContent(DataSource ds) { return object; } ! public DataContentHandler getDCH() { return dch; *************** class ObjectDataContentHandler *** 92,98 **** } throw new UnsupportedFlavorException(flavor); } ! public DataFlavor[] getTransferDataFlavors() { if (flavors == null) --- 92,98 ---- } throw new UnsupportedFlavorException(flavor); } ! public DataFlavor[] getTransferDataFlavors() { if (flavors == null) *************** class ObjectDataContentHandler *** 123,128 **** throw new UnsupportedDataTypeException("no object DCH for MIME type " + mimeType); } } - - } --- 123,127 ---- throw new UnsupportedDataTypeException("no object DCH for MIME type " + mimeType); } } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/URLDataSource.java gcc-4.6.0/libjava/classpath/javax/activation/URLDataSource.java *** gcc-4.5.2/libjava/classpath/javax/activation/URLDataSource.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/URLDataSource.java Tue Jan 11 19:46:05 2011 *************** public class URLDataSource *** 55,61 **** private final URL url; private URLConnection connection; ! /** * Constructor. * This will not open the connection to the URL. --- 55,61 ---- private final URL url; private URLConnection connection; ! /** * Constructor. * This will not open the connection to the URL. *************** public class URLDataSource *** 64,70 **** { this.url = url; } ! /** * Returns the Content-Type header for the URL. * In the case of failure or lack of such a header, --- 64,70 ---- { this.url = url; } ! /** * Returns the Content-Type header for the URL. * In the case of failure or lack of such a header, *************** public class URLDataSource *** 93,99 **** } return contentType; } ! /** * Returns the result of getFile of the underlying URL. */ --- 93,99 ---- } return contentType; } ! /** * Returns the result of getFile of the underlying URL. */ *************** public class URLDataSource *** 101,107 **** { return url.getFile(); } ! public InputStream getInputStream() throws IOException { --- 101,107 ---- { return url.getFile(); } ! public InputStream getInputStream() throws IOException { *************** public class URLDataSource *** 125,131 **** } return null; } ! /** * Returns the underlying URL. */ --- 125,131 ---- } return null; } ! /** * Returns the underlying URL. */ *************** public class URLDataSource *** 133,138 **** { return url; } - - } --- 133,137 ---- { return url; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/activation/UnsupportedDataTypeException.java gcc-4.6.0/libjava/classpath/javax/activation/UnsupportedDataTypeException.java *** gcc-4.5.2/libjava/classpath/javax/activation/UnsupportedDataTypeException.java Sun Sep 14 12:33:40 2008 --- gcc-4.6.0/libjava/classpath/javax/activation/UnsupportedDataTypeException.java Tue Jan 11 19:46:05 2011 *************** public class UnsupportedDataTypeExceptio *** 55,61 **** public UnsupportedDataTypeException() { } ! /** * Constructs an UnsupportedDataTypeException with the specified detail * message. --- 55,61 ---- public UnsupportedDataTypeException() { } ! /** * Constructs an UnsupportedDataTypeException with the specified detail * message. *************** public class UnsupportedDataTypeExceptio *** 65,70 **** { super(message); } - - } --- 65,69 ---- { super(message); } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/Cipher.java gcc-4.6.0/libjava/classpath/javax/crypto/Cipher.java *** gcc-4.5.2/libjava/classpath/javax/crypto/Cipher.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/crypto/Cipher.java Tue Jan 11 19:46:05 2011 *************** public class Cipher *** 163,169 **** * The installed providers are tried in order for an implementation, and the * first appropriate instance is returned. If no installed provider can * provide the implementation, an appropriate exception is thrown. ! * * @param transformation The transformation to create. * @return An appropriate cipher for this transformation. * @throws NoSuchAlgorithmException If no installed provider can supply the --- 163,169 ---- * The installed providers are tried in order for an implementation, and the * first appropriate instance is returned. If no installed provider can * provide the implementation, an appropriate exception is thrown. ! * * @param transformation The transformation to create. * @return An appropriate cipher for this transformation. * @throws NoSuchAlgorithmException If no installed provider can supply the *************** public class Cipher *** 201,207 **** /** * Creates a new cipher instance for the given transformation and the named * provider. ! * * @param transformation The transformation to create. * @param provider The name of the provider to use. * @return An appropriate cipher for this transformation. --- 201,207 ---- /** * Creates a new cipher instance for the given transformation and the named * provider. ! * * @param transformation The transformation to create. * @param provider The name of the provider to use. * @return An appropriate cipher for this transformation. *************** public class Cipher *** 228,234 **** /** * Creates a new cipher instance for a given transformation from a given * provider. ! * * @param transformation The transformation to create. * @param provider The provider to use. * @return An appropriate cipher for this transformation. --- 228,234 ---- /** * Creates a new cipher instance for a given transformation from a given * provider. ! * * @param transformation The transformation to create. * @param provider The provider to use. * @return An appropriate cipher for this transformation. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/CipherOutputStream.java gcc-4.6.0/libjava/classpath/javax/crypto/CipherOutputStream.java *** gcc-4.5.2/libjava/classpath/javax/crypto/CipherOutputStream.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/crypto/CipherOutputStream.java Tue Jan 11 19:46:05 2011 *************** import java.io.OutputStream; *** 45,51 **** /** * A filtered output stream that transforms data written to it with a * {@link Cipher} before sending it to the underlying output stream. ! * * @author Casey Marshall (csm@gnu.org) */ public class CipherOutputStream extends FilterOutputStream --- 45,51 ---- /** * A filtered output stream that transforms data written to it with a * {@link Cipher} before sending it to the underlying output stream. ! * * @author Casey Marshall (csm@gnu.org) */ public class CipherOutputStream extends FilterOutputStream *************** public class CipherOutputStream extends *** 56,62 **** /** * Create a new cipher output stream. The cipher argument must have already * been initialized. ! * * @param out The sink for transformed data. * @param cipher The cipher to transform data with. */ --- 56,62 ---- /** * Create a new cipher output stream. The cipher argument must have already * been initialized. ! * * @param out The sink for transformed data. * @param cipher The cipher to transform data with. */ *************** public class CipherOutputStream extends *** 82,88 **** * This method will first invoke the {@link Cipher#doFinal()} method of the * underlying {@link Cipher}, and writes the output of that method to the * sink output stream. ! * * @throws IOException If an I/O error occurs, or if an error is caused by * finalizing the transformation. */ --- 82,88 ---- * This method will first invoke the {@link Cipher#doFinal()} method of the * underlying {@link Cipher}, and writes the output of that method to the * sink output stream. ! * * @throws IOException If an I/O error occurs, or if an error is caused by * finalizing the transformation. */ *************** public class CipherOutputStream extends *** 114,120 **** /** * Write a single byte to the output stream. ! * * @param b The next byte. * @throws IOException If an I/O error occurs, or if the underlying cipher is * not in the correct state to transform data. --- 114,120 ---- /** * Write a single byte to the output stream. ! * * @param b The next byte. * @throws IOException If an I/O error occurs, or if the underlying cipher is * not in the correct state to transform data. *************** public class CipherOutputStream extends *** 126,132 **** /** * Write a byte array to the output stream. ! * * @param buf The next bytes. * @throws IOException If an I/O error occurs, or if the underlying cipher is * not in the correct state to transform data. --- 126,132 ---- /** * Write a byte array to the output stream. ! * * @param buf The next bytes. * @throws IOException If an I/O error occurs, or if the underlying cipher is * not in the correct state to transform data. *************** public class CipherOutputStream extends *** 138,144 **** /** * Write a portion of a byte array to the output stream. ! * * @param buf The next bytes. * @param off The offset in the byte array to start. * @param len The number of bytes to write. --- 138,144 ---- /** * Write a portion of a byte array to the output stream. ! * * @param buf The next bytes. * @param off The offset in the byte array to start. * @param len The number of bytes to write. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/ExemptionMechanism.java gcc-4.6.0/libjava/classpath/javax/crypto/ExemptionMechanism.java *** gcc-4.5.2/libjava/classpath/javax/crypto/ExemptionMechanism.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/crypto/ExemptionMechanism.java Tue Jan 11 19:46:05 2011 *************** public class ExemptionMechanism *** 90,96 **** /** * Create an instance of ExemptionMechanism for a designated * mechanism from the first Security Provider offering it. ! * * @param mechanism the name of the exemption mechanism to create. * @return a newly created instance of ExemptionMechanism. * @throws IllegalArgumentException if the provider is null. --- 90,96 ---- /** * Create an instance of ExemptionMechanism for a designated * mechanism from the first Security Provider offering it. ! * * @param mechanism the name of the exemption mechanism to create. * @return a newly created instance of ExemptionMechanism. * @throws IllegalArgumentException if the provider is null. *************** public class ExemptionMechanism *** 121,127 **** /** * Create an instance of ExemptionMechanism for a designated * mechanism from a named provider. ! * * @param mechanism the name of the exemption mechanism to create. * @param provider the security provider to provide the exemption * mechanism. --- 121,127 ---- /** * Create an instance of ExemptionMechanism for a designated * mechanism from a named provider. ! * * @param mechanism the name of the exemption mechanism to create. * @param provider the security provider to provide the exemption * mechanism. *************** public class ExemptionMechanism *** 149,155 **** /** * Create an instance of ExemptionMechanism for a designated * mechanism from a designated provider. ! * * @param mechanism the name of the exemption mechanism to create. * @param provider the security provider to provide the exemption * mechanism. --- 149,155 ---- /** * Create an instance of ExemptionMechanism for a designated * mechanism from a designated provider. ! * * @param mechanism the name of the exemption mechanism to create. * @param provider the security provider to provide the exemption * mechanism. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/KeyAgreement.java gcc-4.6.0/libjava/classpath/javax/crypto/KeyAgreement.java *** gcc-4.5.2/libjava/classpath/javax/crypto/KeyAgreement.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/crypto/KeyAgreement.java Tue Jan 11 19:46:05 2011 *************** public class KeyAgreement *** 104,110 **** /** * Get an implementation of an algorithm from the first provider that * implements it. ! * * @param algorithm The name of the algorithm to get. * @return The proper KeyAgreement instacne, if found. * @throws NoSuchAlgorithmException If the specified algorithm is not --- 104,110 ---- /** * Get an implementation of an algorithm from the first provider that * implements it. ! * * @param algorithm The name of the algorithm to get. * @return The proper KeyAgreement instacne, if found. * @throws NoSuchAlgorithmException If the specified algorithm is not *************** public class KeyAgreement *** 133,139 **** /** * Return an implementation of an algorithm from a named provider. ! * * @param algorithm The name of the algorithm to create. * @param provider The name of the provider from which to get the * implementation. --- 133,139 ---- /** * Return an implementation of an algorithm from a named provider. ! * * @param algorithm The name of the algorithm to create. * @param provider The name of the provider from which to get the * implementation. *************** public class KeyAgreement *** 158,164 **** /** * Return an implementation of an algorithm from a specific provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The provider from which to get the implementation. * @return The proper KeyAgreement instance, if found. --- 158,164 ---- /** * Return an implementation of an algorithm from a specific provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The provider from which to get the implementation. * @return The proper KeyAgreement instance, if found. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/KeyGenerator.java gcc-4.6.0/libjava/classpath/javax/crypto/KeyGenerator.java *** gcc-4.5.2/libjava/classpath/javax/crypto/KeyGenerator.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/crypto/KeyGenerator.java Tue Jan 11 19:46:05 2011 *************** public class KeyGenerator *** 96,102 **** /** * Create a new key generator, returning the first available implementation. ! * * @param algorithm The generator algorithm name. * @throws NoSuchAlgorithmException If the specified algorithm does not exist. * @throws IllegalArgumentException if algorithm is --- 96,102 ---- /** * Create a new key generator, returning the first available implementation. ! * * @param algorithm The generator algorithm name. * @throws NoSuchAlgorithmException If the specified algorithm does not exist. * @throws IllegalArgumentException if algorithm is *************** public class KeyGenerator *** 123,129 **** /** * Create a new key generator from the named provider. ! * * @param algorithm The generator algorithm name. * @param provider The name of the provider to use. * @return An appropriate key generator, if found. --- 123,129 ---- /** * Create a new key generator from the named provider. ! * * @param algorithm The generator algorithm name. * @param provider The name of the provider to use. * @return An appropriate key generator, if found. *************** public class KeyGenerator *** 147,153 **** /** * Create a new key generator from the supplied provider. ! * * @param algorithm The generator algorithm name. * @param provider The provider to use. * @return An appropriate key generator, if found. --- 147,153 ---- /** * Create a new key generator from the supplied provider. ! * * @param algorithm The generator algorithm name. * @param provider The provider to use. * @return An appropriate key generator, if found. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/Mac.java gcc-4.6.0/libjava/classpath/javax/crypto/Mac.java *** gcc-4.5.2/libjava/classpath/javax/crypto/Mac.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/crypto/Mac.java Tue Jan 11 19:46:05 2011 *************** public class Mac implements Cloneable *** 111,117 **** /** * Create an instance of the named algorithm from the first provider with an * appropriate implementation. ! * * @param algorithm The name of the algorithm. * @return An appropriate Mac instance, if the specified algorithm is * implemented by a provider. --- 111,117 ---- /** * Create an instance of the named algorithm from the first provider with an * appropriate implementation. ! * * @param algorithm The name of the algorithm. * @return An appropriate Mac instance, if the specified algorithm is * implemented by a provider. *************** public class Mac implements Cloneable *** 141,147 **** /** * Create an instance of the named algorithm from the named provider. ! * * @param algorithm The name of the algorithm. * @param provider The name of the provider. * @return An appropriate Mac instance, if the specified algorithm is --- 141,147 ---- /** * Create an instance of the named algorithm from the named provider. ! * * @param algorithm The name of the algorithm. * @param provider The name of the provider. * @return An appropriate Mac instance, if the specified algorithm is *************** public class Mac implements Cloneable *** 166,172 **** /** * Create an instance of the named algorithm from a provider. ! * * @param algorithm The name of the algorithm. * @param provider The provider. * @return An appropriate Mac instance, if the specified algorithm is --- 166,172 ---- /** * Create an instance of the named algorithm from a provider. ! * * @param algorithm The name of the algorithm. * @param provider The provider. * @return An appropriate Mac instance, if the specified algorithm is *************** public class Mac implements Cloneable *** 417,423 **** throw new IllegalStateException ("not initialized"); macSpi.engineUpdate(buffer); } ! /** * Clone this instance, if the underlying implementation supports it. * --- 417,423 ---- throw new IllegalStateException ("not initialized"); macSpi.engineUpdate(buffer); } ! /** * Clone this instance, if the underlying implementation supports it. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/MacSpi.java gcc-4.6.0/libjava/classpath/javax/crypto/MacSpi.java *** gcc-4.5.2/libjava/classpath/javax/crypto/MacSpi.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/crypto/MacSpi.java Tue Jan 11 19:46:05 2011 *************** public abstract class MacSpi *** 143,152 **** * @param length The number of bytes to update. */ protected abstract void engineUpdate(byte[] input, int offset, int length); ! /** * Update this MAC with the remaining bytes of a buffer. ! * * @param buffer The input buffer. * @since 1.5 */ --- 143,152 ---- * @param length The number of bytes to update. */ protected abstract void engineUpdate(byte[] input, int offset, int length); ! /** * Update this MAC with the remaining bytes of a buffer. ! * * @param buffer The input buffer. * @since 1.5 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/SecretKeyFactory.java gcc-4.6.0/libjava/classpath/javax/crypto/SecretKeyFactory.java *** gcc-4.5.2/libjava/classpath/javax/crypto/SecretKeyFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/crypto/SecretKeyFactory.java Tue Jan 11 19:46:05 2011 *************** public class SecretKeyFactory *** 96,102 **** /** * Create a new secret key factory from the first appropriate instance. ! * * @param algorithm The algorithm name. * @return The appropriate key factory, if found. * @throws NoSuchAlgorithmException If no provider implements the specified --- 96,102 ---- /** * Create a new secret key factory from the first appropriate instance. ! * * @param algorithm The algorithm name. * @return The appropriate key factory, if found. * @throws NoSuchAlgorithmException If no provider implements the specified *************** public class SecretKeyFactory *** 125,131 **** /** * Create a new secret key factory from the named provider. ! * * @param algorithm The algorithm name. * @param provider The provider name. * @return The appropriate key factory, if found. --- 125,131 ---- /** * Create a new secret key factory from the named provider. ! * * @param algorithm The algorithm name. * @param provider The provider name. * @return The appropriate key factory, if found. *************** public class SecretKeyFactory *** 150,156 **** /** * Create a new secret key factory from the specified provider. ! * * @param algorithm The algorithm name. * @param provider The provider. * @return The appropriate key factory, if found. --- 150,156 ---- /** * Create a new secret key factory from the specified provider. ! * * @param algorithm The algorithm name. * @param provider The provider. * @return The appropriate key factory, if found. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/crypto/spec/PBEKeySpec.java gcc-4.6.0/libjava/classpath/javax/crypto/spec/PBEKeySpec.java *** gcc-4.5.2/libjava/classpath/javax/crypto/spec/PBEKeySpec.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/crypto/spec/PBEKeySpec.java Tue Jan 11 19:46:05 2011 *************** public class PBEKeySpec implements KeySp *** 78,84 **** /** The password state */ private boolean passwordValid = true; ! // Constructors. // ------------------------------------------------------------------------ --- 78,84 ---- /** The password state */ private boolean passwordValid = true; ! // Constructors. // ------------------------------------------------------------------------ *************** public class PBEKeySpec implements KeySp *** 86,98 **** * Create a new PBE key spec with just a password. *

                            * A copy of the password argument is stored instead of the argument itself. ! * * @param password The password char array. */ public PBEKeySpec(char[] password) { setPassword(password); ! // load the default values for unspecified variables. salt = null; iterationCount = 0; --- 86,98 ---- * Create a new PBE key spec with just a password. *

                            * A copy of the password argument is stored instead of the argument itself. ! * * @param password The password char array. */ public PBEKeySpec(char[] password) { setPassword(password); ! // load the default values for unspecified variables. salt = null; iterationCount = 0; *************** public class PBEKeySpec implements KeySp *** 104,110 **** *

                            * A copy of the password and salt arguments are stored instead of the * arguments themselves. ! * * @param password The password char array. * @param salt The salt bytes. * @param iterationCount The iteration count. --- 104,110 ---- *

                            * A copy of the password and salt arguments are stored instead of the * arguments themselves. ! * * @param password The password char array. * @param salt The salt bytes. * @param iterationCount The iteration count. *************** public class PBEKeySpec implements KeySp *** 128,134 **** *

                            * A copy of the password and salt arguments are stored instead of the * arguments themselves. ! * * @param password The password char array. * @param salt The salt bytes. * @param iterationCount The iteration count. --- 128,134 ---- *

                            * A copy of the password and salt arguments are stored instead of the * arguments themselves. ! * * @param password The password char array. * @param salt The salt bytes. * @param iterationCount The iteration count. *************** public class PBEKeySpec implements KeySp *** 161,167 **** return; for (int i = 0; i < password.length; i++) password[i] = '\u0000'; ! // since the password is cleared, it is no longer valid passwordValid = false; } --- 161,167 ---- return; for (int i = 0; i < password.length; i++) password[i] = '\u0000'; ! // since the password is cleared, it is no longer valid passwordValid = false; } *************** public class PBEKeySpec implements KeySp *** 190,196 **** * Get the password character array copy. *

                            * This returns a copy of the password, not the password itself. ! * * @return a clone of the password. * @throws IllegalStateException If {@link #clearPassword()} has already been * called. --- 190,196 ---- * Get the password character array copy. *

                            * This returns a copy of the password, not the password itself. ! * * @return a clone of the password. * @throws IllegalStateException If {@link #clearPassword()} has already been * called. *************** public class PBEKeySpec implements KeySp *** 207,213 **** * Get the salt bytes array copy. *

                            * This returns a copy of the salt, not the salt itself. ! * * @return The salt. */ public final byte[] getSalt() --- 207,213 ---- * Get the salt bytes array copy. *

                            * This returns a copy of the salt, not the salt itself. ! * * @return The salt. */ public final byte[] getSalt() *************** public class PBEKeySpec implements KeySp *** 221,227 **** * Set the password char array. *

                            * A copy of the password argument is stored instead of the argument itself. ! * * @param password The password to be set */ private void setPassword(char[] password) --- 221,227 ---- * Set the password char array. *

                            * A copy of the password argument is stored instead of the argument itself. ! * * @param password The password to be set */ private void setPassword(char[] password) *************** public class PBEKeySpec implements KeySp *** 238,244 **** * Set the salt byte array. *

                            * A copy of the salt arguments is stored instead of the argument itself. ! * * @param salt The salt to be set. * @throws NullPointerException If the salt is null. * @throws IllegalArgumentException If the salt is an empty array. --- 238,244 ---- * Set the salt byte array. *

                            * A copy of the salt arguments is stored instead of the argument itself. ! * * @param salt The salt to be set. * @throws NullPointerException If the salt is null. * @throws IllegalArgumentException If the salt is an empty array. *************** public class PBEKeySpec implements KeySp *** 253,259 **** /** * Set the iterationCount. ! * * @param iterationCount The iteration count to be set. * @throws IllegalArgumentException If the iterationCount is negative. */ --- 253,259 ---- /** * Set the iterationCount. ! * * @param iterationCount The iteration count to be set. * @throws IllegalArgumentException If the iterationCount is negative. */ *************** public class PBEKeySpec implements KeySp *** 267,273 **** /** * Set the keyLength. ! * * @param keyLength The keyLength to be set. * @throws IllegalArgumentException if the keyLength is negative. */ --- 267,273 ---- /** * Set the keyLength. ! * * @param keyLength The keyLength to be set. * @throws IllegalArgumentException if the keyLength is negative. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/IIOImage.java gcc-4.6.0/libjava/classpath/javax/imageio/IIOImage.java *** gcc-4.5.2/libjava/classpath/javax/imageio/IIOImage.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/imageio/IIOImage.java Tue Jan 11 19:46:05 2011 *************** public class IIOImage *** 96,107 **** { if (raster == null) throw new IllegalArgumentException ("raster may not be null"); ! this.raster = raster; this.thumbnails = thumbnails; this.metadata = metadata; } ! /** * Construct an IIOImage containing rendered image data, thumbnails * and metadata. --- 96,107 ---- { if (raster == null) throw new IllegalArgumentException ("raster may not be null"); ! this.raster = raster; this.thumbnails = thumbnails; this.metadata = metadata; } ! /** * Construct an IIOImage containing rendered image data, thumbnails * and metadata. *************** public class IIOImage *** 117,123 **** { if (image == null) throw new IllegalArgumentException ("image may not be null"); ! this.image = image; this.thumbnails = thumbnails; this.metadata = metadata; --- 117,123 ---- { if (image == null) throw new IllegalArgumentException ("image may not be null"); ! this.image = image; this.thumbnails = thumbnails; this.metadata = metadata; *************** public class IIOImage *** 232,238 **** { if (raster == null) throw new IllegalArgumentException ("raster may not be null"); ! this.image = null; this.raster = raster; } --- 232,238 ---- { if (raster == null) throw new IllegalArgumentException ("raster may not be null"); ! this.image = null; this.raster = raster; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/IIOParam.java gcc-4.6.0/libjava/classpath/javax/imageio/IIOParam.java *** gcc-4.5.2/libjava/classpath/javax/imageio/IIOParam.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/IIOParam.java Tue Jan 11 19:46:05 2011 *************** public abstract class IIOParam *** 158,167 **** { if (controller == null) { ! if (defaultController == null || no_controller) ! return false; ! else ! return defaultController.activate (this); } else return controller.activate(this); --- 158,167 ---- { if (controller == null) { ! if (defaultController == null || no_controller) ! return false; ! else ! return defaultController.activate (this); } else return controller.activate(this); *************** public abstract class IIOParam *** 173,179 **** * set to null. * * @return the currently used controller or null ! */ public IIOParamController getController() { return controller == null ? --- 173,179 ---- * set to null. * * @return the currently used controller or null ! */ public IIOParamController getController() { return controller == null ? *************** public abstract class IIOParam *** 254,260 **** { return sourceXSubsampling; } ! /** * Retrieve the number of pixel rows to advance before taking a * pixel sample. --- 254,260 ---- { return sourceXSubsampling; } ! /** * Retrieve the number of pixel rows to advance before taking a * pixel sample. *************** public abstract class IIOParam *** 313,325 **** { if (controller == defaultController) { ! this.controller = null; ! no_controller = false; } else { ! no_controller = (controller == null); ! this.controller = controller; } } --- 313,325 ---- { if (controller == defaultController) { ! this.controller = null; ! no_controller = false; } else { ! no_controller = (controller == null); ! this.controller = controller; } } *************** public abstract class IIOParam *** 401,424 **** public void setSourceRegion(Rectangle sourceRegion) { if (sourceRegion != null ! && (sourceRegion.x < 0 ! || sourceRegion.y < 0 ! || sourceRegion.width <= 0 ! || sourceRegion.height <= 0)) throw new IllegalArgumentException("illegal source region"); if (sourceRegion != null) { ! int num_rows = ! (sourceRegion.height - subsamplingYOffset + sourceYSubsampling - 1) ! / sourceYSubsampling; ! int num_columns = ! (sourceRegion.width - subsamplingXOffset + sourceXSubsampling - 1) ! / sourceXSubsampling; ! if (num_rows <= 0 || num_columns <= 0) ! throw new IllegalStateException("zero pixels in source region"); } this.sourceRegion = sourceRegion; --- 401,424 ---- public void setSourceRegion(Rectangle sourceRegion) { if (sourceRegion != null ! && (sourceRegion.x < 0 ! || sourceRegion.y < 0 ! || sourceRegion.width <= 0 ! || sourceRegion.height <= 0)) throw new IllegalArgumentException("illegal source region"); if (sourceRegion != null) { ! int num_rows = ! (sourceRegion.height - subsamplingYOffset + sourceYSubsampling - 1) ! / sourceYSubsampling; ! int num_columns = ! (sourceRegion.width - subsamplingXOffset + sourceXSubsampling - 1) ! / sourceXSubsampling; ! if (num_rows <= 0 || num_columns <= 0) ! throw new IllegalStateException("zero pixels in source region"); } this.sourceRegion = sourceRegion; *************** public abstract class IIOParam *** 462,486 **** * zero pixel samples */ public void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, ! int subsamplingXOffset, int subsamplingYOffset) { if (subsamplingXOffset < 0 || subsamplingYOffset < 0) throw new IllegalArgumentException("subsampling offset < 0"); if (sourceRegion != null) { ! int num_rows = ! (sourceRegion.height - subsamplingYOffset + sourceYSubsampling - 1) ! / sourceYSubsampling; ! int num_columns = ! (sourceRegion.width - subsamplingXOffset + sourceXSubsampling - 1) ! / sourceXSubsampling; ! if (num_rows <= 0 || num_columns <= 0) ! throw new IllegalStateException("subsampling parameters would" ! + " produce zero pixel samples" ! + " in source region"); } this.sourceXSubsampling = sourceXSubsampling; --- 462,486 ---- * zero pixel samples */ public void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, ! int subsamplingXOffset, int subsamplingYOffset) { if (subsamplingXOffset < 0 || subsamplingYOffset < 0) throw new IllegalArgumentException("subsampling offset < 0"); if (sourceRegion != null) { ! int num_rows = ! (sourceRegion.height - subsamplingYOffset + sourceYSubsampling - 1) ! / sourceYSubsampling; ! int num_columns = ! (sourceRegion.width - subsamplingXOffset + sourceXSubsampling - 1) ! / sourceXSubsampling; ! if (num_rows <= 0 || num_columns <= 0) ! throw new IllegalStateException("subsampling parameters would" ! + " produce zero pixel samples" ! + " in source region"); } this.sourceXSubsampling = sourceXSubsampling; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/IIOParamController.java gcc-4.6.0/libjava/classpath/javax/imageio/IIOParamController.java *** gcc-4.5.2/libjava/classpath/javax/imageio/IIOParamController.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/IIOParamController.java Tue Jan 11 19:46:05 2011 *************** public interface IIOParamController *** 61,67 **** * * @return true if the IIOParam has been modified, * false otherwise ! * * @exception IllegalArgumentException if param is null or is not an instance * of the correct class */ --- 61,67 ---- * * @return true if the IIOParam has been modified, * false otherwise ! * * @exception IllegalArgumentException if param is null or is not an instance * of the correct class */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/ImageIO.java gcc-4.6.0/libjava/classpath/javax/imageio/ImageIO.java *** gcc-4.5.2/libjava/classpath/javax/imageio/ImageIO.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/ImageIO.java Tue Jan 11 19:46:05 2011 *************** public final class ImageIO *** 125,131 **** return false; } } ! private static final class ReaderObjectFilter implements ServiceRegistry.Filter { private Object object; --- 125,131 ---- return false; } } ! private static final class ReaderObjectFilter implements ServiceRegistry.Filter { private Object object; *************** public final class ImageIO *** 179,185 **** return false; } } ! private static final class WriterFormatFilter implements ServiceRegistry.Filter { private String formatName; --- 179,185 ---- return false; } } ! private static final class WriterFormatFilter implements ServiceRegistry.Filter { private String formatName; *************** public final class ImageIO *** 192,205 **** public boolean filter(Object provider) { if (provider instanceof ImageWriterSpi) ! { ! ImageWriterSpi spi = (ImageWriterSpi) provider; ! String[] formatNames = spi.getFormatNames(); ! ! for (int i = formatNames.length - 1; i >= 0; --i) if (formatName.equals(formatNames[i])) return true; ! } return false; } --- 192,205 ---- public boolean filter(Object provider) { if (provider instanceof ImageWriterSpi) ! { ! ImageWriterSpi spi = (ImageWriterSpi) provider; ! String[] formatNames = spi.getFormatNames(); ! ! for (int i = formatNames.length - 1; i >= 0; --i) if (formatName.equals(formatNames[i])) return true; ! } return false; } *************** public final class ImageIO *** 229,235 **** return false; } } ! private static final class WriterSuffixFilter implements ServiceRegistry.Filter { private String fileSuffix; --- 229,235 ---- return false; } } ! private static final class WriterSuffixFilter implements ServiceRegistry.Filter { private String fileSuffix; *************** public final class ImageIO *** 261,267 **** private String formatName; public WriterObjectFilter(ImageTypeSpecifier type, ! String formatName) { this.type = type; this.formatName = formatName; --- 261,267 ---- private String formatName; public WriterObjectFilter(ImageTypeSpecifier type, ! String formatName) { this.type = type; this.formatName = formatName; *************** public final class ImageIO *** 273,285 **** { ImageWriterSpi spi = (ImageWriterSpi) provider; ! if (spi.canEncodeImage(type)) ! { ! String[] formatNames = spi.getFormatNames(); ! for (int i = formatNames.length - 1; i >= 0; --i) ! if (formatName.equals(formatNames[i])) ! return true; ! } } return false; --- 273,285 ---- { ImageWriterSpi spi = (ImageWriterSpi) provider; ! if (spi.canEncodeImage(type)) ! { ! String[] formatNames = spi.getFormatNames(); ! for (int i = formatNames.length - 1; i >= 0; --i) ! if (formatName.equals(formatNames[i])) ! return true; ! } } return false; *************** public final class ImageIO *** 304,314 **** { ImageTranscoderSpi spi = (ImageTranscoderSpi) provider; ! if (spi.getReaderServiceProviderName().equals ! (reader.getOriginatingProvider().getClass().getName()) ! && spi.getWriterServiceProviderName().equals ! (writer.getOriginatingProvider().getClass().getName())) ! return true; } return false; --- 304,314 ---- { ImageTranscoderSpi spi = (ImageTranscoderSpi) provider; ! if (spi.getReaderServiceProviderName().equals ! (reader.getOriginatingProvider().getClass().getName()) ! && spi.getWriterServiceProviderName().equals ! (writer.getOriginatingProvider().getClass().getName())) ! return true; } return false; *************** public final class ImageIO *** 320,333 **** { Iterator it; Object readerExtension; ! public ImageReaderIterator(Iterator it, Object readerExtension) { this.it = it; this.readerExtension = readerExtension; } ! public ImageReaderIterator(Iterator it) { this.it = it; --- 320,333 ---- { Iterator it; Object readerExtension; ! public ImageReaderIterator(Iterator it, Object readerExtension) { this.it = it; this.readerExtension = readerExtension; } ! public ImageReaderIterator(Iterator it) { this.it = it; *************** public final class ImageIO *** 364,377 **** { Iterator it; Object writerExtension; ! public ImageWriterIterator(Iterator it, Object writerExtension) { this.it = it; this.writerExtension = writerExtension; } ! public ImageWriterIterator(Iterator it) { this.it = it; --- 364,377 ---- { Iterator it; Object writerExtension; ! public ImageWriterIterator(Iterator it, Object writerExtension) { this.it = it; this.writerExtension = writerExtension; } ! public ImageWriterIterator(Iterator it) { this.it = it; *************** public final class ImageIO *** 402,408 **** throw new UnsupportedOperationException(); } } ! private static File cacheDirectory; private static boolean useCache = true; --- 402,408 ---- throw new UnsupportedOperationException(); } } ! private static File cacheDirectory; private static boolean useCache = true; *************** public final class ImageIO *** 421,427 **** return Collections.EMPTY_SET.iterator(); } } ! private static Iterator getWritersByFilter(Class type, ServiceRegistry.Filter filter, Object writerExtension) --- 421,427 ---- return Collections.EMPTY_SET.iterator(); } } ! private static Iterator getWritersByFilter(Class type, ServiceRegistry.Filter filter, Object writerExtension) *************** public final class ImageIO *** 503,509 **** { if (fileSuffix == null) throw new IllegalArgumentException("formatName may not be null"); ! return getReadersByFilter(ImageReaderSpi.class, new ReaderSuffixFilter(fileSuffix), fileSuffix); --- 503,509 ---- { if (fileSuffix == null) throw new IllegalArgumentException("formatName may not be null"); ! return getReadersByFilter(ImageReaderSpi.class, new ReaderSuffixFilter(fileSuffix), fileSuffix); *************** public final class ImageIO *** 523,529 **** { if (formatName == null) throw new IllegalArgumentException("formatName may not be null"); ! return getWritersByFilter(ImageWriterSpi.class, new WriterFormatFilter(formatName), formatName); --- 523,529 ---- { if (formatName == null) throw new IllegalArgumentException("formatName may not be null"); ! return getWritersByFilter(ImageWriterSpi.class, new WriterFormatFilter(formatName), formatName); *************** public final class ImageIO *** 544,550 **** { if (MIMEType == null) throw new IllegalArgumentException("MIMEType may not be null"); ! return getWritersByFilter(ImageWriterSpi.class, new WriterMIMETypeFilter(MIMEType), MIMEType); --- 544,550 ---- { if (MIMEType == null) throw new IllegalArgumentException("MIMEType may not be null"); ! return getWritersByFilter(ImageWriterSpi.class, new WriterMIMETypeFilter(MIMEType), MIMEType); *************** public final class ImageIO *** 564,570 **** { if (fileSuffix == null) throw new IllegalArgumentException("fileSuffix may not be null"); ! return getWritersByFilter(ImageWriterSpi.class, new WriterSuffixFilter(fileSuffix), fileSuffix); --- 564,570 ---- { if (fileSuffix == null) throw new IllegalArgumentException("fileSuffix may not be null"); ! return getWritersByFilter(ImageWriterSpi.class, new WriterSuffixFilter(fileSuffix), fileSuffix); *************** public final class ImageIO *** 581,599 **** try { Iterator it = ! getRegistry().getServiceProviders(ImageReaderSpi.class, true); ! ArrayList result = new ArrayList(); ! while (it.hasNext()) ! { ! ImageReaderSpi spi = (ImageReaderSpi) it.next(); ! String[] names = spi.getFormatNames(); ! for (int i = names.length - 1; i >= 0; --i) ! result.add(names[i]); ! } ! return (String[]) result.toArray(new String[result.size()]); } catch (IllegalArgumentException e) { --- 581,599 ---- try { Iterator it = ! getRegistry().getServiceProviders(ImageReaderSpi.class, true); ! ArrayList result = new ArrayList(); ! while (it.hasNext()) ! { ! ImageReaderSpi spi = (ImageReaderSpi) it.next(); ! String[] names = spi.getFormatNames(); ! for (int i = names.length - 1; i >= 0; --i) ! result.add(names[i]); ! } ! return (String[]) result.toArray(new String[result.size()]); } catch (IllegalArgumentException e) { *************** public final class ImageIO *** 612,630 **** try { Iterator it = ! getRegistry().getServiceProviders(ImageReaderSpi.class, true); ! ArrayList result = new ArrayList(); ! while (it.hasNext()) ! { ! ImageReaderSpi spi = (ImageReaderSpi) it.next(); ! String[] names = spi.getMIMETypes(); ! for (int i = names.length - 1; i >= 0; --i) ! result.add(names[i]); ! } ! return (String[]) result.toArray(new String[result.size()]); } catch (IllegalArgumentException e) { --- 612,630 ---- try { Iterator it = ! getRegistry().getServiceProviders(ImageReaderSpi.class, true); ! ArrayList result = new ArrayList(); ! while (it.hasNext()) ! { ! ImageReaderSpi spi = (ImageReaderSpi) it.next(); ! String[] names = spi.getMIMETypes(); ! for (int i = names.length - 1; i >= 0; --i) ! result.add(names[i]); ! } ! return (String[]) result.toArray(new String[result.size()]); } catch (IllegalArgumentException e) { *************** public final class ImageIO *** 659,677 **** try { Iterator it = ! getRegistry().getServiceProviders(ImageWriterSpi.class, true); ! ArrayList result = new ArrayList(); ! while (it.hasNext()) ! { ! ImageWriterSpi spi = (ImageWriterSpi) it.next(); ! String[] names = spi.getFormatNames(); ! for (int i = names.length - 1; i >= 0; --i) ! result.add(names[i]); ! } ! return (String[]) result.toArray(new String[result.size()]); } catch (IllegalArgumentException e) { --- 659,677 ---- try { Iterator it = ! getRegistry().getServiceProviders(ImageWriterSpi.class, true); ! ArrayList result = new ArrayList(); ! while (it.hasNext()) ! { ! ImageWriterSpi spi = (ImageWriterSpi) it.next(); ! String[] names = spi.getFormatNames(); ! for (int i = names.length - 1; i >= 0; --i) ! result.add(names[i]); ! } ! return (String[]) result.toArray(new String[result.size()]); } catch (IllegalArgumentException e) { *************** public final class ImageIO *** 690,715 **** try { Iterator it = ! getRegistry().getServiceProviders(ImageWriterSpi.class, true); ! ArrayList result = new ArrayList(); ! while (it.hasNext()) ! { ! ImageWriterSpi spi = (ImageWriterSpi) it.next(); ! String[] names = spi.getMIMETypes(); ! for (int i = names.length - 1; i >= 0; --i) ! result.add(names[i]); ! } ! return (String[]) result.toArray(new String[result.size()]); } catch (IllegalArgumentException e) { return new String[0]; } } ! /** * Rescans the application classpath for ImageIO service providers * and registers them. --- 690,715 ---- try { Iterator it = ! getRegistry().getServiceProviders(ImageWriterSpi.class, true); ! ArrayList result = new ArrayList(); ! while (it.hasNext()) ! { ! ImageWriterSpi spi = (ImageWriterSpi) it.next(); ! String[] names = spi.getMIMETypes(); ! for (int i = names.length - 1; i >= 0; --i) ! result.add(names[i]); ! } ! return (String[]) result.toArray(new String[result.size()]); } catch (IllegalArgumentException e) { return new String[0]; } } ! /** * Rescans the application classpath for ImageIO service providers * and registers them. *************** public final class ImageIO *** 740,746 **** cacheDirectory.canWrite(); } ! ImageIO.cacheDirectory = cacheDirectory; } --- 740,746 ---- cacheDirectory.canWrite(); } ! ImageIO.cacheDirectory = cacheDirectory; } *************** public final class ImageIO *** 841,847 **** while (writers.hasNext()) { ImageWriter w = (ImageWriter) writers.next(); ! try { w.setOutput(output); } --- 841,847 ---- while (writers.hasNext()) { ImageWriter w = (ImageWriter) writers.next(); ! try { w.setOutput(output); } *************** public final class ImageIO *** 849,855 **** { continue; } ! w.write(null, img, null); w.dispose(); output.close(); --- 849,855 ---- { continue; } ! w.write(null, img, null); w.dispose(); output.close(); *************** public final class ImageIO *** 1014,1026 **** while(spis.hasNext()) { ! ImageInputStreamSpi spi = (ImageInputStreamSpi) spis.next(); ! if (input.getClass().equals(spi.getInputClass())) ! { ! foundSpi = spi; ! break; ! } } return foundSpi == null ? null : --- 1014,1026 ---- while(spis.hasNext()) { ! ImageInputStreamSpi spi = (ImageInputStreamSpi) spis.next(); ! if (input.getClass().equals(spi.getInputClass())) ! { ! foundSpi = spi; ! break; ! } } return foundSpi == null ? null : *************** public final class ImageIO *** 1060,1072 **** while(spis.hasNext()) { ! ImageOutputStreamSpi spi = (ImageOutputStreamSpi) spis.next(); ! if (output.getClass().equals(spi.getOutputClass())) ! { ! foundSpi = spi; ! break; ! } } return foundSpi == null ? null : --- 1060,1072 ---- while(spis.hasNext()) { ! ImageOutputStreamSpi spi = (ImageOutputStreamSpi) spis.next(); ! if (output.getClass().equals(spi.getOutputClass())) ! { ! foundSpi = spi; ! break; ! } } return foundSpi == null ? null : *************** public final class ImageIO *** 1143,1149 **** * @return an iterator over a collection of image writers */ public static Iterator getImageWriters (ImageTypeSpecifier type, ! String formatName) { if (type == null || formatName == null) throw new IllegalArgumentException ("null argument"); --- 1143,1149 ---- * @return an iterator over a collection of image writers */ public static Iterator getImageWriters (ImageTypeSpecifier type, ! String formatName) { if (type == null || formatName == null) throw new IllegalArgumentException ("null argument"); *************** public final class ImageIO *** 1226,1237 **** { return spiIterator.hasNext(); } ! public ImageTranscoder next() { return spiIterator.next().createTranscoderInstance(); } ! public void remove() { throw new UnsupportedOperationException(); --- 1226,1237 ---- { return spiIterator.hasNext(); } ! public ImageTranscoder next() { return spiIterator.next().createTranscoderInstance(); } ! public void remove() { throw new UnsupportedOperationException(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/ImageReadParam.java gcc-4.6.0/libjava/classpath/javax/imageio/ImageReadParam.java *** gcc-4.5.2/libjava/classpath/javax/imageio/ImageReadParam.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/ImageReadParam.java Tue Jan 11 19:46:05 2011 *************** public class ImageReadParam extends IIOP *** 112,128 **** this.minProgressivePass = minPass; this.numProgressivePasses = numPasses; } ! public void setSourceRenderSize(Dimension size) throws UnsupportedOperationException { if (! canSetSourceRenderSize()) throw new UnsupportedOperationException ! ("setting source render size not supported"); ! if (size.width <= 0 || size.height <= 0) throw new IllegalArgumentException("negative dimension not allowed"); ! sourceRenderSize = size; } } --- 112,128 ---- this.minProgressivePass = minPass; this.numProgressivePasses = numPasses; } ! public void setSourceRenderSize(Dimension size) throws UnsupportedOperationException { if (! canSetSourceRenderSize()) throw new UnsupportedOperationException ! ("setting source render size not supported"); ! if (size.width <= 0 || size.height <= 0) throw new IllegalArgumentException("negative dimension not allowed"); ! sourceRenderSize = size; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/ImageReader.java gcc-4.6.0/libjava/classpath/javax/imageio/ImageReader.java *** gcc-4.5.2/libjava/classpath/javax/imageio/ImageReader.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/ImageReader.java Tue Jan 11 19:46:05 2011 *************** public abstract class ImageReader *** 290,296 **** { if (availableLocales == null) return null; ! return (Locale[]) availableLocales.clone(); } --- 290,296 ---- { if (availableLocales == null) return null; ! return (Locale[]) availableLocales.clone(); } *************** public abstract class ImageReader *** 770,783 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.imageComplete (this); ! } } } --- 770,783 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.imageComplete (this); ! } } } *************** public abstract class ImageReader *** 793,806 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.imageProgress(this, percentageDone); ! } } } /** --- 793,806 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.imageProgress(this, percentageDone); ! } } } /** *************** public abstract class ImageReader *** 815,828 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.imageStarted(this, imageIndex); ! } } } --- 815,828 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.imageStarted(this, imageIndex); ! } } } *************** public abstract class ImageReader *** 842,860 **** * @param bands the affected bands in the destination */ protected void processImageUpdate(BufferedImage image, int minX, int minY, ! int width, int height, int periodX, ! int periodY, int[] bands) { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.imageUpdate(this, image, minX, minY, width, height, ! periodX, periodY, bands); ! } } } --- 842,860 ---- * @param bands the affected bands in the destination */ protected void processImageUpdate(BufferedImage image, int minX, int minY, ! int width, int height, int periodX, ! int periodY, int[] bands) { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.imageUpdate(this, image, minX, minY, width, height, ! periodX, periodY, bands); ! } } } *************** public abstract class ImageReader *** 869,881 **** { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.passComplete(this, image); ! } } } --- 869,881 ---- { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.passComplete(this, image); ! } } } *************** public abstract class ImageReader *** 898,916 **** * @param bands the affected bands in the destination */ protected void processPassStarted(BufferedImage image, int pass, int minPass, ! int maxPass, int minX, int minY, ! int periodX, int periodY, int[] bands) { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.passStarted(this, image, pass, minPass, maxPass, minX, ! minY, periodX, periodY, bands); ! } } } --- 898,916 ---- * @param bands the affected bands in the destination */ protected void processPassStarted(BufferedImage image, int pass, int minPass, ! int maxPass, int minX, int minY, ! int periodX, int periodY, int[] bands) { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.passStarted(this, image, pass, minPass, maxPass, minX, ! minY, periodX, periodY, bands); ! } } } *************** public abstract class ImageReader *** 922,935 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.readAborted(this); ! } } } /** --- 922,935 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.readAborted(this); ! } } } /** *************** public abstract class ImageReader *** 941,954 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.sequenceComplete(this); ! } } } --- 941,954 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.sequenceComplete(this); ! } } } *************** public abstract class ImageReader *** 964,977 **** if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.sequenceStarted(this, minIndex); ! } } } --- 964,977 ---- if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.sequenceStarted(this, minIndex); ! } } } *************** public abstract class ImageReader *** 984,997 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.thumbnailComplete(this); ! } } } --- 984,997 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.thumbnailComplete(this); ! } } } *************** public abstract class ImageReader *** 1006,1018 **** { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.thumbnailPassComplete(this, thumbnail); ! } } } --- 1006,1018 ---- { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.thumbnailPassComplete(this, thumbnail); ! } } } *************** public abstract class ImageReader *** 1035,1055 **** * @param bands the affected bands in the destination */ protected void processThumbnailPassStarted(BufferedImage thumbnail, int pass, ! int minPass, int maxPass, int minX, ! int minY, int periodX, int periodY, ! int[] bands) { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.thumbnailPassStarted(this, thumbnail, pass, minPass, ! maxPass, minX, minY, periodX, ! periodY, bands); ! } } } --- 1035,1055 ---- * @param bands the affected bands in the destination */ protected void processThumbnailPassStarted(BufferedImage thumbnail, int pass, ! int minPass, int maxPass, int minX, ! int minY, int periodX, int periodY, ! int[] bands) { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.thumbnailPassStarted(this, thumbnail, pass, minPass, ! maxPass, minX, minY, periodX, ! periodY, bands); ! } } } *************** public abstract class ImageReader *** 1065,1078 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.thumbnailProgress(this, percentageDone); ! } } } --- 1065,1078 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.thumbnailProgress(this, percentageDone); ! } } } *************** public abstract class ImageReader *** 1090,1103 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.thumbnailStarted(this, imageIndex, thumbnailIndex); ! } } } --- 1090,1103 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadProgressListener listener = ! (IIOReadProgressListener) it.next(); ! listener.thumbnailStarted(this, imageIndex, thumbnailIndex); ! } } } *************** public abstract class ImageReader *** 1117,1135 **** * @param bands the affected bands in the destination */ protected void processThumbnailUpdate(BufferedImage image, int minX, int minY, ! int width, int height, int periodX, ! int periodY, int[] bands) { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.thumbnailUpdate(this, image, minX, minY, width, height, ! periodX, periodY, bands); ! } } } --- 1117,1135 ---- * @param bands the affected bands in the destination */ protected void processThumbnailUpdate(BufferedImage image, int minX, int minY, ! int width, int height, int periodX, ! int periodY, int[] bands) { if (updateListeners != null) { ! Iterator it = updateListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadUpdateListener listener = (IIOReadUpdateListener) it.next(); ! listener.thumbnailUpdate(this, image, minX, minY, width, height, ! periodX, periodY, bands); ! } } } *************** public abstract class ImageReader *** 1147,1160 **** throw new IllegalArgumentException ("null argument"); if (warningListeners != null) { ! Iterator it = warningListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadWarningListener listener = ! (IIOReadWarningListener) it.next(); ! listener.warningOccurred(this, warning); ! } } } --- 1147,1160 ---- throw new IllegalArgumentException ("null argument"); if (warningListeners != null) { ! Iterator it = warningListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadWarningListener listener = ! (IIOReadWarningListener) it.next(); ! listener.warningOccurred(this, warning); ! } } } *************** public abstract class ImageReader *** 1179,1185 **** * not a String */ protected void processWarningOccurred(String baseName, ! String keyword) { if (baseName == null || keyword == null) throw new IllegalArgumentException ("null argument"); --- 1179,1185 ---- * not a String */ protected void processWarningOccurred(String baseName, ! String keyword) { if (baseName == null || keyword == null) throw new IllegalArgumentException ("null argument"); *************** public abstract class ImageReader *** 1188,1209 **** try { ! b = ResourceBundle.getBundle(baseName, getLocale()); } catch (MissingResourceException e) { ! throw new IllegalArgumentException ("no resource bundle found"); } Object str = null; try { ! str = b.getObject(keyword); } catch (MissingResourceException e) { ! throw new IllegalArgumentException ("no results found for keyword"); } if (! (str instanceof String)) --- 1188,1209 ---- try { ! b = ResourceBundle.getBundle(baseName, getLocale()); } catch (MissingResourceException e) { ! throw new IllegalArgumentException ("no resource bundle found"); } Object str = null; try { ! str = b.getObject(keyword); } catch (MissingResourceException e) { ! throw new IllegalArgumentException ("no results found for keyword"); } if (! (str instanceof String)) *************** public abstract class ImageReader *** 1213,1226 **** if (warningListeners != null) { ! Iterator it = warningListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadWarningListener listener = ! (IIOReadWarningListener) it.next(); ! listener.warningOccurred(this, warning); ! } } } --- 1213,1226 ---- if (warningListeners != null) { ! Iterator it = warningListeners.iterator(); ! while (it.hasNext()) ! { ! IIOReadWarningListener listener = ! (IIOReadWarningListener) it.next(); ! listener.warningOccurred(this, warning); ! } } } *************** public abstract class ImageReader *** 1292,1298 **** * @exception IndexOutOfBoundsException if either the frame index or * the thumbnail index is out-of-bounds * @exception IOException if a read error occurs ! * */ public BufferedImage readThumbnail(int imageIndex, int thumbnailIndex) throws IOException --- 1292,1298 ---- * @exception IndexOutOfBoundsException if either the frame index or * the thumbnail index is out-of-bounds * @exception IOException if a read error occurs ! * */ public BufferedImage readThumbnail(int imageIndex, int thumbnailIndex) throws IOException *************** public abstract class ImageReader *** 1329,1341 **** * * @param listener the listener to remove */ ! public void removeIIOReadProgressListener(IIOReadProgressListener listener) { if (listener == null) return; if (progressListeners != null) { ! progressListeners.remove(listener); } } --- 1329,1341 ---- * * @param listener the listener to remove */ ! public void removeIIOReadProgressListener(IIOReadProgressListener listener) { if (listener == null) return; if (progressListeners != null) { ! progressListeners.remove(listener); } } *************** public abstract class ImageReader *** 1344,1357 **** * * @param listener the listener to remove */ ! public void removeIIOReadUpdateListener(IIOReadUpdateListener listener) { if (listener == null) return; if (updateListeners != null) { ! updateListeners.remove(listener); } } --- 1344,1357 ---- * * @param listener the listener to remove */ ! public void removeIIOReadUpdateListener(IIOReadUpdateListener listener) { if (listener == null) return; if (updateListeners != null) { ! updateListeners.remove(listener); } } *************** public abstract class ImageReader *** 1366,1372 **** return; if (warningListeners != null) { ! warningListeners.remove(listener); } } --- 1366,1372 ---- return; if (warningListeners != null) { ! warningListeners.remove(listener); } } *************** public abstract class ImageReader *** 1379,1394 **** { if (locale != null) { ! // Check if its a valid locale. ! boolean found = false; ! if (availableLocales != null) ! for (int i = availableLocales.length - 1; i >= 0; --i) ! if (availableLocales[i].equals(locale)) ! found = true; ! if (! found) ! throw new IllegalArgumentException("looale not available"); } this.locale = locale; --- 1379,1394 ---- { if (locale != null) { ! // Check if its a valid locale. ! boolean found = false; ! if (availableLocales != null) ! for (int i = availableLocales.length - 1; i >= 0; --i) ! if (availableLocales[i].equals(locale)) ! found = true; ! if (! found) ! throw new IllegalArgumentException("looale not available"); } this.locale = locale; *************** public abstract class ImageReader *** 1411,1418 **** * destination band indices are invalid */ protected static void checkReadParamBandSettings(ImageReadParam param, ! int numSrcBands, ! int numDstBands) { int[] srcBands = param.getSourceBands(); int[] dstBands = param.getDestinationBands(); --- 1411,1418 ---- * destination band indices are invalid */ protected static void checkReadParamBandSettings(ImageReadParam param, ! int numSrcBands, ! int numDstBands) { int[] srcBands = param.getSourceBands(); int[] dstBands = param.getDestinationBands(); *************** public abstract class ImageReader *** 1513,1523 **** * regions is empty */ protected static void computeRegions (ImageReadParam param, ! int srcWidth, ! int srcHeight, ! BufferedImage image, ! Rectangle srcRegion, ! Rectangle destRegion) { if (srcRegion == null || destRegion == null) throw new IllegalArgumentException ("null region"); --- 1513,1523 ---- * regions is empty */ protected static void computeRegions (ImageReadParam param, ! int srcWidth, ! int srcHeight, ! BufferedImage image, ! Rectangle srcRegion, ! Rectangle destRegion) { if (srcRegion == null || destRegion == null) throw new IllegalArgumentException ("null region"); *************** public abstract class ImageReader *** 1594,1602 **** * height is greater than Integer.MAX_VALUE */ protected static BufferedImage getDestination (ImageReadParam param, ! Iterator imageTypes, ! int width, ! int height) throws IIOException { if (imageTypes == null || !imageTypes.hasNext()) --- 1594,1602 ---- * height is greater than Integer.MAX_VALUE */ protected static BufferedImage getDestination (ImageReadParam param, ! Iterator imageTypes, ! int width, ! int height) throws IIOException { if (imageTypes == null || !imageTypes.hasNext()) *************** public abstract class ImageReader *** 1751,1758 **** * @return a clipped rectangle */ protected static Rectangle getSourceRegion (ImageReadParam param, ! int srcWidth, ! int srcHeight) { Rectangle clippedRegion = new Rectangle (0, 0, srcWidth, srcHeight); --- 1751,1758 ---- * @return a clipped rectangle */ protected static Rectangle getSourceRegion (ImageReadParam param, ! int srcWidth, ! int srcHeight) { Rectangle clippedRegion = new Rectangle (0, 0, srcWidth, srcHeight); *************** public abstract class ImageReader *** 1870,1876 **** * @exception IOException if a read error occurs */ public IIOImage readAll (int imageIndex, ! ImageReadParam param) throws IOException { checkReadParamBandSettings (param, --- 1870,1876 ---- * @exception IOException if a read error occurs */ public IIOImage readAll (int imageIndex, ! ImageReadParam param) throws IOException { checkReadParamBandSettings (param, *************** public abstract class ImageReader *** 1953,1959 **** * @exception IOException if a read error occurs */ public RenderedImage readAsRenderedImage (int imageIndex, ! ImageReadParam param) throws IOException { return read (imageIndex, param); --- 1953,1959 ---- * @exception IOException if a read error occurs */ public RenderedImage readAsRenderedImage (int imageIndex, ! ImageReadParam param) throws IOException { return read (imageIndex, param); *************** public abstract class ImageReader *** 2033,2036 **** clearAbortRequest (); } } - --- 2033,2035 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/ImageTranscoder.java gcc-4.6.0/libjava/classpath/javax/imageio/ImageTranscoder.java *** gcc-4.5.2/libjava/classpath/javax/imageio/ImageTranscoder.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/ImageTranscoder.java Tue Jan 11 19:46:05 2011 *************** public interface ImageTranscoder *** 78,85 **** * is null */ IIOMetadata convertImageMetadata(IIOMetadata inData, ! ImageTypeSpecifier imageType, ! ImageWriteParam param); /** * Converts IIOMetadata from an input stream format, returning an --- 78,85 ---- * is null */ IIOMetadata convertImageMetadata(IIOMetadata inData, ! ImageTypeSpecifier imageType, ! ImageWriteParam param); /** * Converts IIOMetadata from an input stream format, returning an *************** public interface ImageTranscoder *** 98,102 **** * @exception IllegalArgumentException if inData is null */ IIOMetadata convertStreamMetadata(IIOMetadata inData, ! ImageWriteParam param); } --- 98,102 ---- * @exception IllegalArgumentException if inData is null */ IIOMetadata convertStreamMetadata(IIOMetadata inData, ! ImageWriteParam param); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/ImageTypeSpecifier.java gcc-4.6.0/libjava/classpath/javax/imageio/ImageTypeSpecifier.java *** gcc-4.5.2/libjava/classpath/javax/imageio/ImageTypeSpecifier.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/ImageTypeSpecifier.java Tue Jan 11 19:46:05 2011 *************** public class ImageTypeSpecifier *** 90,96 **** if (!colorModel.isCompatibleSampleModel(sampleModel)) throw new IllegalArgumentException ("sample Model not compatible with colorModel"); ! this.colorModel = colorModel; this.sampleModel = sampleModel; } --- 90,96 ---- if (!colorModel.isCompatibleSampleModel(sampleModel)) throw new IllegalArgumentException ("sample Model not compatible with colorModel"); ! this.colorModel = colorModel; this.sampleModel = sampleModel; } *************** public class ImageTypeSpecifier *** 107,113 **** { if (image == null) throw new IllegalArgumentException("image may not be null"); ! this.colorModel = image.getColorModel(); this.sampleModel = image.getSampleModel(); } --- 107,113 ---- { if (image == null) throw new IllegalArgumentException("image may not be null"); ! this.colorModel = image.getColorModel(); this.sampleModel = image.getSampleModel(); } *************** public class ImageTypeSpecifier *** 324,334 **** * data type */ public static ImageTypeSpecifier createIndexed (byte[] redLUT, ! byte[] greenLUT, ! byte[] blueLUT, ! byte[] alphaLUT, ! int bits, ! int dataType) { if (redLUT == null || greenLUT == null || blueLUT == null) throw new IllegalArgumentException ("null colour table"); --- 324,334 ---- * data type */ public static ImageTypeSpecifier createIndexed (byte[] redLUT, ! byte[] greenLUT, ! byte[] blueLUT, ! byte[] alphaLUT, ! int bits, ! int dataType) { if (redLUT == null || greenLUT == null || blueLUT == null) throw new IllegalArgumentException ("null colour table"); *************** public class ImageTypeSpecifier *** 402,411 **** * one value of the given data type. * * @param colorSpace the color space to use in the color model ! * @param redMask the bitmask for the red bits ! * @param greenMask the bitmask for the green bits ! * @param blueMask the bitmask for the blue bits ! * @param alphaMask the bitmask for the alpha bits * @param transferType the data type used to store pixel values * @param isAlphaPremultiplied true if other colour channels should * be premultiplied by the alpha value, false otherwise --- 402,411 ---- * one value of the given data type. * * @param colorSpace the color space to use in the color model ! * @param redMask the bitmask for the red bits ! * @param greenMask the bitmask for the green bits ! * @param blueMask the bitmask for the blue bits ! * @param alphaMask the bitmask for the alpha bits * @param transferType the data type used to store pixel values * @param isAlphaPremultiplied true if other colour channels should * be premultiplied by the alpha value, false otherwise diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/ImageWriteParam.java gcc-4.6.0/libjava/classpath/javax/imageio/ImageWriteParam.java *** gcc-4.5.2/libjava/classpath/javax/imageio/ImageWriteParam.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/imageio/ImageWriteParam.java Tue Jan 11 19:46:05 2011 *************** import java.util.Locale; *** 46,163 **** */ public class ImageWriteParam extends IIOParam { ! ! /** * Can be passed to setTilingMode, setProgressiveMode and * setCompressionMode to disable feature. */ public static final int MODE_DISABLED = 0; ! ! /** ! * Can be passed to setTilingMode, setProgressiveMode and * setCompressionMode to enable feature. */ public static final int MODE_DEFAULT = 1; ! ! /** * Can be passed to setTilingMode, setCompressionMode to disable feature. */ public static final int MODE_EXPLICIT = 2; ! ! /** ! * Can be passed to setTilingMode, setProgressiveMode and * setCompressionMode to enable feature. */ public static final int MODE_COPY_FROM_METADATA = 3; ! /** * True if tiling grid offset parameters can be set. */ protected boolean canOffsetTiles; ! /** * True if this writer can write images using compression. */ protected boolean canWriteCompressed; ! /** * True if images can be written as a progressive sequence * of increasing quality. */ protected boolean canWriteProgressive; ! /** * True if tile width and height parameters can be set. */ protected boolean canWriteTiles; ! /** * Controls compression settings, which must be set to one of the four * MODE_* values. */ protected int compressionMode = MODE_COPY_FROM_METADATA; ! /** * Contains the current compression quality setting. */ protected float compressionQuality; ! /** * Contains the name of the current compression type. */ protected String compressionType; ! /** * Array of the names of the available compression types. */ protected String[] compressionTypes; ! /** * Localizes compression type names and quality descriptions, * or null to use default Locale. */ protected Locale locale; ! /** * Preferred tile size range pairs. */ protected Dimension[] preferredTileSizes; ! /** * The mode controlling progressive encoding, which must * be set to one of the four MODE_* values, except * MODE_EXPLICIT. */ protected int progressiveMode = MODE_COPY_FROM_METADATA; ! /** * The amount by which the tile grid origin should be offset * horizontally from the image origin if tiling has been set. */ protected int tileGridXOffset; ! /** * The amount by which the tile grid origin should be offset * vertically from the image origin if tiling has been set. */ protected int tileGridYOffset; ! /** * The height of each tile if tiling has been set. */ protected int tileHeight; ! /** * The width of each tile if tiling has been set. */ protected int tileWidth; ! /** * The mode controlling tiling settings, which must be * set to one of the four MODE_* values. */ protected int tilingMode; ! /** * True if the tiling parameters have been specified. */ --- 46,163 ---- */ public class ImageWriteParam extends IIOParam { ! ! /** * Can be passed to setTilingMode, setProgressiveMode and * setCompressionMode to disable feature. */ public static final int MODE_DISABLED = 0; ! ! /** ! * Can be passed to setTilingMode, setProgressiveMode and * setCompressionMode to enable feature. */ public static final int MODE_DEFAULT = 1; ! ! /** * Can be passed to setTilingMode, setCompressionMode to disable feature. */ public static final int MODE_EXPLICIT = 2; ! ! /** ! * Can be passed to setTilingMode, setProgressiveMode and * setCompressionMode to enable feature. */ public static final int MODE_COPY_FROM_METADATA = 3; ! /** * True if tiling grid offset parameters can be set. */ protected boolean canOffsetTiles; ! /** * True if this writer can write images using compression. */ protected boolean canWriteCompressed; ! /** * True if images can be written as a progressive sequence * of increasing quality. */ protected boolean canWriteProgressive; ! /** * True if tile width and height parameters can be set. */ protected boolean canWriteTiles; ! /** * Controls compression settings, which must be set to one of the four * MODE_* values. */ protected int compressionMode = MODE_COPY_FROM_METADATA; ! /** * Contains the current compression quality setting. */ protected float compressionQuality; ! /** * Contains the name of the current compression type. */ protected String compressionType; ! /** * Array of the names of the available compression types. */ protected String[] compressionTypes; ! /** * Localizes compression type names and quality descriptions, * or null to use default Locale. */ protected Locale locale; ! /** * Preferred tile size range pairs. */ protected Dimension[] preferredTileSizes; ! /** * The mode controlling progressive encoding, which must * be set to one of the four MODE_* values, except * MODE_EXPLICIT. */ protected int progressiveMode = MODE_COPY_FROM_METADATA; ! /** * The amount by which the tile grid origin should be offset * horizontally from the image origin if tiling has been set. */ protected int tileGridXOffset; ! /** * The amount by which the tile grid origin should be offset * vertically from the image origin if tiling has been set. */ protected int tileGridYOffset; ! /** * The height of each tile if tiling has been set. */ protected int tileHeight; ! /** * The width of each tile if tiling has been set. */ protected int tileWidth; ! /** * The mode controlling tiling settings, which must be * set to one of the four MODE_* values. */ protected int tilingMode; ! /** * True if the tiling parameters have been specified. */ *************** public class ImageWriteParam extends IIO *** 201,211 **** if (getCompressionMode() != MODE_EXPLICIT) throw new IllegalStateException("compression mode is not MODE_EXPLICIT"); } ! private void checkCompressionTypesSet() { if (getCompressionType() == null ! && getCompressionTypes() != null) throw new IllegalStateException("no compression type set"); } --- 201,211 ---- if (getCompressionMode() != MODE_EXPLICIT) throw new IllegalStateException("compression mode is not MODE_EXPLICIT"); } ! private void checkCompressionTypesSet() { if (getCompressionType() == null ! && getCompressionTypes() != null) throw new IllegalStateException("no compression type set"); } *************** public class ImageWriteParam extends IIO *** 213,221 **** { if (! canWriteProgressive()) throw new UnsupportedOperationException ! ("progressive output not supported"); } ! private void checkSupportsTiling() { if (! canWriteTiles()) --- 213,221 ---- { if (! canWriteProgressive()) throw new UnsupportedOperationException ! ("progressive output not supported"); } ! private void checkSupportsTiling() { if (! canWriteTiles()) *************** public class ImageWriteParam extends IIO *** 279,285 **** { checkNotExplicitCompression(); checkCompressionTypesSet(); ! return null; } --- 279,285 ---- { checkNotExplicitCompression(); checkCompressionTypesSet(); ! return null; } *************** public class ImageWriteParam extends IIO *** 287,293 **** { checkNotExplicitCompression(); checkCompressionTypesSet(); ! return null; } --- 287,293 ---- { checkNotExplicitCompression(); checkCompressionTypesSet(); ! return null; } *************** public class ImageWriteParam extends IIO *** 383,391 **** { checkSupportsCompression(); checkMode(mode); ! compressionMode = mode; ! if (mode == MODE_EXPLICIT) unsetCompression(); } --- 383,391 ---- { checkSupportsCompression(); checkMode(mode); ! compressionMode = mode; ! if (mode == MODE_EXPLICIT) unsetCompression(); } *************** public class ImageWriteParam extends IIO *** 409,425 **** if (types == null) throw new UnsupportedOperationException("no settable compression types"); ! if (compressionType == null) this.compressionType = null; for (int i = types.length - 1; i >= 0; --i) if (types[i].equals(compressionType)) ! { ! this.compressionType = compressionType; ! return; ! } ! throw new IllegalArgumentException("unknown compression type"); } --- 409,425 ---- if (types == null) throw new UnsupportedOperationException("no settable compression types"); ! if (compressionType == null) this.compressionType = null; for (int i = types.length - 1; i >= 0; --i) if (types[i].equals(compressionType)) ! { ! this.compressionType = compressionType; ! return; ! } ! throw new IllegalArgumentException("unknown compression type"); } *************** public class ImageWriteParam extends IIO *** 427,444 **** { checkSupportsProgressiveEncoding(); checkMode(mode); ! progressiveMode = mode; } public void setTiling(int tileWidth, int tileHeight, ! int tileGridXOffset, int tileGridYOffset) { checkNotExplicitTiling(); if (! canOffsetTiles ! && tileGridXOffset != 0 ! && tileGridYOffset != 0) throw new UnsupportedOperationException("tile offsets not supported"); if (tileWidth < 0 || tileHeight < 0) --- 427,444 ---- { checkSupportsProgressiveEncoding(); checkMode(mode); ! progressiveMode = mode; } public void setTiling(int tileWidth, int tileHeight, ! int tileGridXOffset, int tileGridYOffset) { checkNotExplicitTiling(); if (! canOffsetTiles ! && tileGridXOffset != 0 ! && tileGridYOffset != 0) throw new UnsupportedOperationException("tile offsets not supported"); if (tileWidth < 0 || tileHeight < 0) *************** public class ImageWriteParam extends IIO *** 446,463 **** if (preferredTileSizes != null) { ! boolean found = false; ! for (int i = 0; i < preferredTileSizes.length; i += 2) ! { ! if (tileWidth >= preferredTileSizes[i].width ! && tileWidth <= preferredTileSizes[i + 1].width ! && tileHeight >= preferredTileSizes[i].height ! && tileHeight <= preferredTileSizes[i + 1].height) ! found = true; ! } ! if (! found) throw new IllegalArgumentException("illegal tile size"); } --- 446,463 ---- if (preferredTileSizes != null) { ! boolean found = false; ! for (int i = 0; i < preferredTileSizes.length; i += 2) ! { ! if (tileWidth >= preferredTileSizes[i].width ! && tileWidth <= preferredTileSizes[i + 1].width ! && tileHeight >= preferredTileSizes[i].height ! && tileHeight <= preferredTileSizes[i + 1].height) ! found = true; ! } ! if (! found) throw new IllegalArgumentException("illegal tile size"); } *************** public class ImageWriteParam extends IIO *** 478,484 **** public void unsetCompression() { checkNotExplicitCompression(); ! compressionType = null; compressionQuality = 1.0F; } --- 478,484 ---- public void unsetCompression() { checkNotExplicitCompression(); ! compressionType = null; compressionQuality = 1.0F; } *************** public class ImageWriteParam extends IIO *** 486,492 **** public void unsetTiling() { checkNotExplicitTiling(); ! tileWidth = 0; tileHeight = 0; tileGridXOffset = 0; --- 486,492 ---- public void unsetTiling() { checkNotExplicitTiling(); ! tileWidth = 0; tileHeight = 0; tileGridXOffset = 0; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/ImageWriter.java gcc-4.6.0/libjava/classpath/javax/imageio/ImageWriter.java *** gcc-4.5.2/libjava/classpath/javax/imageio/ImageWriter.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/ImageWriter.java Tue Jan 11 19:46:05 2011 *************** public abstract class ImageWriter *** 76,82 **** implements ImageTranscoder { private boolean aborted; ! /** * All locales available for localization of warning messages, or * null if localization is not supported. --- 76,82 ---- implements ImageTranscoder { private boolean aborted; ! /** * All locales available for localization of warning messages, or * null if localization is not supported. *************** public abstract class ImageWriter *** 138,144 **** if (output == null) throw new IllegalStateException("no output set"); } ! /** * Request that writing be aborted. The unwritten portions of the * destination image will be undefined. --- 138,144 ---- if (output == null) throw new IllegalStateException("no output set"); } ! /** * Request that writing be aborted. The unwritten portions of the * destination image will be undefined. *************** public abstract class ImageWriter *** 392,399 **** * is null */ public abstract IIOMetadata convertImageMetadata (IIOMetadata inData, ! ImageTypeSpecifier imageType, ! ImageWriteParam param); /** * Convert IIOMetadata from an input stream format, returning an --- 392,399 ---- * is null */ public abstract IIOMetadata convertImageMetadata (IIOMetadata inData, ! ImageTypeSpecifier imageType, ! ImageWriteParam param); /** * Convert IIOMetadata from an input stream format, returning an *************** public abstract class ImageWriter *** 412,418 **** * @exception IllegalArgumentException if inData is null */ public abstract IIOMetadata convertStreamMetadata (IIOMetadata inData, ! ImageWriteParam param); /** * Releases any resources allocated to this object. Subsequent --- 412,418 ---- * @exception IllegalArgumentException if inData is null */ public abstract IIOMetadata convertStreamMetadata (IIOMetadata inData, ! ImageWriteParam param); /** * Releases any resources allocated to this object. Subsequent *************** public abstract class ImageWriter *** 425,431 **** { // The default implementation is empty. Subclasses have to overwrite it. } ! /** * Retrieve the available locales. Return null if no locales are * available or a clone of availableLocales. --- 425,431 ---- { // The default implementation is empty. Subclasses have to overwrite it. } ! /** * Retrieve the available locales. Return null if no locales are * available or a clone of availableLocales. *************** public abstract class ImageWriter *** 504,510 **** */ public int getNumThumbnailsSupported (ImageTypeSpecifier imageType, ImageWriteParam param, ! IIOMetadata streamMetadata, IIOMetadata imageMetadata) { return 0; --- 504,510 ---- */ public int getNumThumbnailsSupported (ImageTypeSpecifier imageType, ImageWriteParam param, ! IIOMetadata streamMetadata, IIOMetadata imageMetadata) { return 0; *************** public abstract class ImageWriter *** 553,561 **** * if the size is unknown (insufficient information was provided) */ public Dimension[] getPreferredThumbnailSizes (ImageTypeSpecifier imageType, ! ImageWriteParam param, ! IIOMetadata streamMetadata, ! IIOMetadata imageMetadata) { return null; } --- 553,561 ---- * if the size is unknown (insufficient information was provided) */ public Dimension[] getPreferredThumbnailSizes (ImageTypeSpecifier imageType, ! ImageWriteParam param, ! IIOMetadata streamMetadata, ! IIOMetadata imageMetadata) { return null; } *************** public abstract class ImageWriter *** 568,581 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.imageComplete(this); ! } } } --- 568,581 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.imageComplete(this); ! } } } *************** public abstract class ImageWriter *** 591,604 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.imageProgress(this, percentageDone); ! } } } --- 591,604 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.imageProgress(this, percentageDone); ! } } } *************** public abstract class ImageWriter *** 614,627 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.imageStarted(this, imageIndex); ! } } } --- 614,627 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.imageStarted(this, imageIndex); ! } } } *************** public abstract class ImageWriter *** 634,647 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.thumbnailComplete(this); ! } } } --- 634,647 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.thumbnailComplete(this); ! } } } *************** public abstract class ImageWriter *** 657,670 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.thumbnailProgress(this, percentageDone); ! } } } --- 657,670 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.thumbnailProgress(this, percentageDone); ! } } } *************** public abstract class ImageWriter *** 682,695 **** { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.thumbnailStarted(this, imageIndex, thumbnailIndex); ! } } } --- 682,695 ---- { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.thumbnailStarted(this, imageIndex, thumbnailIndex); ! } } } *************** public abstract class ImageWriter *** 707,720 **** { if (warningListeners != null) { ! Iterator it = warningListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteWarningListener listener = ! (IIOWriteWarningListener) it.next(); ! listener.warningOccurred(this, imageIndex, warning); ! } } } --- 707,720 ---- { if (warningListeners != null) { ! Iterator it = warningListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteWarningListener listener = ! (IIOWriteWarningListener) it.next(); ! listener.warningOccurred(this, imageIndex, warning); ! } } } *************** public abstract class ImageWriter *** 741,748 **** * not a String */ protected void processWarningOccurred(int imageIndex, ! String baseName, ! String keyword) { if (baseName == null || keyword == null) throw new IllegalArgumentException ("null argument"); --- 741,748 ---- * not a String */ protected void processWarningOccurred(int imageIndex, ! String baseName, ! String keyword) { if (baseName == null || keyword == null) throw new IllegalArgumentException ("null argument"); *************** public abstract class ImageWriter *** 751,772 **** try { ! b = ResourceBundle.getBundle(baseName, getLocale()); } catch (MissingResourceException e) { ! throw new IllegalArgumentException ("no resource bundle found"); } Object str = null; try { ! str = b.getObject(keyword); } catch (MissingResourceException e) { ! throw new IllegalArgumentException ("no results found for keyword"); } if (! (str instanceof String)) --- 751,772 ---- try { ! b = ResourceBundle.getBundle(baseName, getLocale()); } catch (MissingResourceException e) { ! throw new IllegalArgumentException ("no resource bundle found"); } Object str = null; try { ! str = b.getObject(keyword); } catch (MissingResourceException e) { ! throw new IllegalArgumentException ("no results found for keyword"); } if (! (str instanceof String)) *************** public abstract class ImageWriter *** 776,789 **** if (warningListeners != null) { ! Iterator it = warningListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteWarningListener listener = ! (IIOWriteWarningListener) it.next(); ! listener.warningOccurred(this, imageIndex, warning); ! } } } --- 776,789 ---- if (warningListeners != null) { ! Iterator it = warningListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteWarningListener listener = ! (IIOWriteWarningListener) it.next(); ! listener.warningOccurred(this, imageIndex, warning); ! } } } *************** public abstract class ImageWriter *** 791,808 **** * Notifies all installed write progress listeners that image * loading has been aborted by calling their writeAborted methods. */ ! protected void processWriteAborted() { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.writeAborted(this); ! } } } --- 791,808 ---- * Notifies all installed write progress listeners that image * loading has been aborted by calling their writeAborted methods. */ ! protected void processWriteAborted() { if (progressListeners != null) { ! Iterator it = progressListeners.iterator(); ! while (it.hasNext()) ! { ! IIOWriteProgressListener listener = ! (IIOWriteProgressListener) it.next(); ! listener.writeAborted(this); ! } } } *************** public abstract class ImageWriter *** 813,819 **** { if (progressListeners != null) { ! progressListeners.clear(); } } --- 813,819 ---- { if (progressListeners != null) { ! progressListeners.clear(); } } *************** public abstract class ImageWriter *** 824,830 **** { if (progressListeners != null) { ! progressListeners.clear(); } } --- 824,830 ---- { if (progressListeners != null) { ! progressListeners.clear(); } } *************** public abstract class ImageWriter *** 839,845 **** return; if (progressListeners != null) { ! progressListeners.remove(listener); } } /** --- 839,845 ---- return; if (progressListeners != null) { ! progressListeners.remove(listener); } } /** *************** public abstract class ImageWriter *** 853,859 **** return; if (warningListeners != null) { ! warningListeners.remove(listener); } } /** --- 853,859 ---- return; if (warningListeners != null) { ! warningListeners.remove(listener); } } /** *************** public abstract class ImageWriter *** 867,873 **** removeAllIIOWriteProgressListeners(); clearAbortRequest(); } ! /** * Set the current locale or use the default locale. * --- 867,873 ---- removeAllIIOWriteProgressListeners(); clearAbortRequest(); } ! /** * Set the current locale or use the default locale. * *************** public abstract class ImageWriter *** 877,892 **** { if (locale != null) { ! // Check if its a valid locale. ! boolean found = false; ! if (availableLocales != null) ! for (int i = availableLocales.length - 1; i >= 0; --i) ! if (availableLocales[i].equals(locale)) ! found = true; ! if (! found) ! throw new IllegalArgumentException("looale not available"); } this.locale = locale; --- 877,892 ---- { if (locale != null) { ! // Check if its a valid locale. ! boolean found = false; ! if (availableLocales != null) ! for (int i = availableLocales.length - 1; i >= 0; --i) ! if (availableLocales[i].equals(locale)) ! found = true; ! if (! found) ! throw new IllegalArgumentException("looale not available"); } this.locale = locale; *************** public abstract class ImageWriter *** 908,927 **** { if (output != null) { ! // Check if its a valid output object. ! boolean found = false; ! Class[] types = null; ! if (originatingProvider != null) ! types = originatingProvider.getOutputTypes(); ! ! if (types != null) ! for (int i = types.length - 1; i >= 0; --i) if (types[i].isInstance(output)) found = true; ! if (! found) ! throw new IllegalArgumentException("output type not available"); } this.output = output; --- 908,927 ---- { if (output != null) { ! // Check if its a valid output object. ! boolean found = false; ! Class[] types = null; ! if (originatingProvider != null) ! types = originatingProvider.getOutputTypes(); ! ! if (types != null) ! for (int i = types.length - 1; i >= 0; --i) if (types[i].isInstance(output)) found = true; ! if (! found) ! throw new IllegalArgumentException("output type not available"); } this.output = output; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/event/IIOReadProgressListener.java gcc-4.6.0/libjava/classpath/javax/imageio/event/IIOReadProgressListener.java *** gcc-4.5.2/libjava/classpath/javax/imageio/event/IIOReadProgressListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/event/IIOReadProgressListener.java Tue Jan 11 19:46:05 2011 *************** public interface IIOReadProgressListener *** 46,52 **** { /** * Reports that the current image read operation has completed. ! * * @param source the ImageReader object calling this method */ void imageComplete(ImageReader source); --- 46,52 ---- { /** * Reports that the current image read operation has completed. ! * * @param source the ImageReader object calling this method */ void imageComplete(ImageReader source); *************** public interface IIOReadProgressListener *** 54,60 **** /** * Reports the approximate percentage of completions of this image read * operation. ! * * @param source the ImageReader object calling this method * @param percentageDone the approximate percentage of encoding completed */ --- 54,60 ---- /** * Reports the approximate percentage of completions of this image read * operation. ! * * @param source the ImageReader object calling this method * @param percentageDone the approximate percentage of encoding completed */ *************** public interface IIOReadProgressListener *** 62,68 **** /** * Reports that the current image read operation has started. ! * * @param source the ImageReader object calling this method * @param imageIndex the index of the image to read */ --- 62,68 ---- /** * Reports that the current image read operation has started. ! * * @param source the ImageReader object calling this method * @param imageIndex the index of the image to read */ *************** public interface IIOReadProgressListener *** 70,90 **** /** * Reports that a read operation has been aborted. ! * * @param source the ImageReader object calling this method */ void readAborted(ImageReader source); /** * Reports that a sequence of read operationshas completed. ! * * @param source the ImageReader object calling this method */ void sequenceComplete(ImageReader source); /** * Reports that a sequence of read operations is beginning. ! * * @param source the ImageReader object calling this method * @param minIndex the index of the first image to be read */ --- 70,90 ---- /** * Reports that a read operation has been aborted. ! * * @param source the ImageReader object calling this method */ void readAborted(ImageReader source); /** * Reports that a sequence of read operationshas completed. ! * * @param source the ImageReader object calling this method */ void sequenceComplete(ImageReader source); /** * Reports that a sequence of read operations is beginning. ! * * @param source the ImageReader object calling this method * @param minIndex the index of the first image to be read */ *************** public interface IIOReadProgressListener *** 92,98 **** /** * Reports that a thumbnail read operation has completed. ! * * @param source the ImageReader object calling this method */ void thumbnailComplete(ImageReader source); --- 92,98 ---- /** * Reports that a thumbnail read operation has completed. ! * * @param source the ImageReader object calling this method */ void thumbnailComplete(ImageReader source); *************** public interface IIOReadProgressListener *** 100,106 **** /** * Reports the approximate percentage of completion of a thumbnail read * operation. ! * * @param source the ImageReader object calling this method * @param percentageDone the approximate percentage of encoding completed */ --- 100,106 ---- /** * Reports the approximate percentage of completion of a thumbnail read * operation. ! * * @param source the ImageReader object calling this method * @param percentageDone the approximate percentage of encoding completed */ *************** public interface IIOReadProgressListener *** 108,114 **** /** * Reports that a thumbnail read operation is beginning. ! * * @param source the ImageReader object calling this method * @param imageIndex the index of the image being read * @param thumbnailIndex the index of the thumbnail being read --- 108,114 ---- /** * Reports that a thumbnail read operation is beginning. ! * * @param source the ImageReader object calling this method * @param imageIndex the index of the image being read * @param thumbnailIndex the index of the thumbnail being read diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/event/IIOReadUpdateListener.java gcc-4.6.0/libjava/classpath/javax/imageio/event/IIOReadUpdateListener.java *** gcc-4.5.2/libjava/classpath/javax/imageio/event/IIOReadUpdateListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/event/IIOReadUpdateListener.java Tue Jan 11 19:46:05 2011 *************** public interface IIOReadUpdateListener e *** 47,53 **** { /** * Reports that a given region of the image has been updated. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated * @param minX the X coordinate of the leftmost updated column of pixels --- 47,53 ---- { /** * Reports that a given region of the image has been updated. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated * @param minX the X coordinate of the leftmost updated column of pixels *************** public interface IIOReadUpdateListener e *** 64,70 **** /** * Reports that the current read operation has completed a progressive pass. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated */ --- 64,70 ---- /** * Reports that the current read operation has completed a progressive pass. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated */ *************** public interface IIOReadUpdateListener e *** 72,78 **** /** * Reports that the current read operation is about to begin a progressive pass. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated * @param pass the numer of the pass that is about to begin, starting with 0 --- 72,78 ---- /** * Reports that the current read operation is about to begin a progressive pass. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated * @param pass the numer of the pass that is about to begin, starting with 0 *************** public interface IIOReadUpdateListener e *** 90,96 **** /** * Reports that the current thumbnail read operation has completed a progressive pass. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated */ --- 90,96 ---- /** * Reports that the current thumbnail read operation has completed a progressive pass. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated */ *************** public interface IIOReadUpdateListener e *** 98,104 **** /** * Reports that the current thumbnail read operation is about to begin a progressive pass. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated * @param pass the numer of the pass that is about to begin, starting with 0 --- 98,104 ---- /** * Reports that the current thumbnail read operation is about to begin a progressive pass. ! * * @param source the ImageReader object calling this method * @param image the BufferedImage being updated * @param pass the numer of the pass that is about to begin, starting with 0 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/event/IIOWriteProgressListener.java gcc-4.6.0/libjava/classpath/javax/imageio/event/IIOWriteProgressListener.java *** gcc-4.5.2/libjava/classpath/javax/imageio/event/IIOWriteProgressListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/event/IIOWriteProgressListener.java Tue Jan 11 19:46:05 2011 *************** public interface IIOWriteProgressListene *** 46,52 **** { /** * Reports that an image write operation has completed. ! * * @param source the ImageWriter object calling this method */ void imageComplete(ImageWriter source); --- 46,52 ---- { /** * Reports that an image write operation has completed. ! * * @param source the ImageWriter object calling this method */ void imageComplete(ImageWriter source); *************** public interface IIOWriteProgressListene *** 54,60 **** /** * Reports the approximate percentage of completion of an image write * operation. ! * * @param source the ImageWriter object calling this method * @param percentageDone the approximate percentage of decoding completed */ --- 54,60 ---- /** * Reports the approximate percentage of completion of an image write * operation. ! * * @param source the ImageWriter object calling this method * @param percentageDone the approximate percentage of decoding completed */ *************** public interface IIOWriteProgressListene *** 62,68 **** /** * Reports that a thumbnail write operation has started. ! * * @param source the ImageWriter object calling this method * @param imageIndex the index of the image being written */ --- 62,68 ---- /** * Reports that a thumbnail write operation has started. ! * * @param source the ImageWriter object calling this method * @param imageIndex the index of the image being written */ *************** public interface IIOWriteProgressListene *** 70,76 **** /** * Reports that a thumbnail write operation has completed. ! * * @param source the ImageWriter object calling this method */ void thumbnailComplete(ImageWriter source); --- 70,76 ---- /** * Reports that a thumbnail write operation has completed. ! * * @param source the ImageWriter object calling this method */ void thumbnailComplete(ImageWriter source); *************** public interface IIOWriteProgressListene *** 78,84 **** /** * Reports the approximate percentage of completion of a thumbnail write * operation. ! * * @param source the ImageWriter object calling this method * @param percentageDone the approximate percentage of decoding completed */ --- 78,84 ---- /** * Reports the approximate percentage of completion of a thumbnail write * operation. ! * * @param source the ImageWriter object calling this method * @param percentageDone the approximate percentage of decoding completed */ *************** public interface IIOWriteProgressListene *** 86,92 **** /** * Reports that a thumbnail write operation is beginning. ! * * @param source the ImageWriter object calling this method * @param imageIndex the index of the image being written * @param thumnailIndex the index of the thumbnail being written --- 86,92 ---- /** * Reports that a thumbnail write operation is beginning. ! * * @param source the ImageWriter object calling this method * @param imageIndex the index of the image being written * @param thumnailIndex the index of the thumbnail being written *************** public interface IIOWriteProgressListene *** 95,101 **** /** * Reports that an image write operation is aborted. ! * * @param source the ImageWriter object calling this method */ void writeAborted(ImageWriter source); --- 95,101 ---- /** * Reports that an image write operation is aborted. ! * * @param source the ImageWriter object calling this method */ void writeAborted(ImageWriter source); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/metadata/IIOInvalidTreeException.java gcc-4.6.0/libjava/classpath/javax/imageio/metadata/IIOInvalidTreeException.java *** gcc-4.5.2/libjava/classpath/javax/imageio/metadata/IIOInvalidTreeException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/metadata/IIOInvalidTreeException.java Tue Jan 11 19:46:05 2011 *************** public class IIOInvalidTreeException ext *** 55,61 **** } public IIOInvalidTreeException(String message, Throwable cause, ! Node offendingNode) { super(message, cause); this.offendingNode = offendingNode; --- 55,61 ---- } public IIOInvalidTreeException(String message, Throwable cause, ! Node offendingNode) { super(message, cause); this.offendingNode = offendingNode; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/metadata/IIOMetadata.java gcc-4.6.0/libjava/classpath/javax/imageio/metadata/IIOMetadata.java *** gcc-4.5.2/libjava/classpath/javax/imageio/metadata/IIOMetadata.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/metadata/IIOMetadata.java Tue Jan 11 19:46:05 2011 *************** public abstract class IIOMetadata *** 162,200 **** { if (formatName == null) throw new IllegalArgumentException("formatName may not be null"); ! String formatClassName = null; if (isStandardMetadataFormatSupported() ! && formatName.equals(nativeMetadataFormatName)) formatClassName = nativeMetadataFormatClassName; else { ! String[] extraFormatNames = getExtraMetadataFormatNames(); ! ! for (int i = extraFormatNames.length - 1; i >= 0; --i) ! if (extraFormatNames[i].equals(formatName)) ! { ! formatClassName = extraFormatNames[i]; ! break; ! } } if (formatClassName == null) throw new IllegalArgumentException("unknown format"); IIOMetadataFormat format; ! try { ! format = (IIOMetadataFormat) Class.forName(formatClassName) ! .newInstance(); } catch (Exception e) { ! IllegalStateException ise = new IllegalStateException(); ! ise.initCause(e); ! throw ise; } return format; --- 162,200 ---- { if (formatName == null) throw new IllegalArgumentException("formatName may not be null"); ! String formatClassName = null; if (isStandardMetadataFormatSupported() ! && formatName.equals(nativeMetadataFormatName)) formatClassName = nativeMetadataFormatClassName; else { ! String[] extraFormatNames = getExtraMetadataFormatNames(); ! ! for (int i = extraFormatNames.length - 1; i >= 0; --i) ! if (extraFormatNames[i].equals(formatName)) ! { ! formatClassName = extraFormatNames[i]; ! break; ! } } if (formatClassName == null) throw new IllegalArgumentException("unknown format"); IIOMetadataFormat format; ! try { ! format = (IIOMetadataFormat) Class.forName(formatClassName) ! .newInstance(); } catch (Exception e) { ! IllegalStateException ise = new IllegalStateException(); ! ise.initCause(e); ! throw ise; } return format; *************** public abstract class IIOMetadata *** 203,220 **** public String[] getMetadataFormatNames() { String[] formatNames = getExtraMetadataFormatNames(); ! if (isStandardMetadataFormatSupported()) { // Combine native metadata format name and extra metadata format names ! // into one String array. ! String[] tmp = new String[formatNames.length + 1]; ! tmp[0] = getNativeMetadataFormatName(); ! for (int i = 1; i < tmp.length; ++i) ! tmp[i] = formatNames[i - 1]; ! formatNames = tmp; } return formatNames; --- 203,220 ---- public String[] getMetadataFormatNames() { String[] formatNames = getExtraMetadataFormatNames(); ! if (isStandardMetadataFormatSupported()) { // Combine native metadata format name and extra metadata format names ! // into one String array. ! String[] tmp = new String[formatNames.length + 1]; ! tmp[0] = getNativeMetadataFormatName(); ! for (int i = 1; i < tmp.length; ++i) ! tmp[i] = formatNames[i - 1]; ! formatNames = tmp; } return formatNames; *************** public abstract class IIOMetadata *** 287,293 **** } private void appendChild (IIOMetadataNode node, ! IIOMetadataNode child) { if (child != null) node.appendChild(child); --- 287,293 ---- } private void appendChild (IIOMetadataNode node, ! IIOMetadataNode child) { if (child != null) node.appendChild(child); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java gcc-4.6.0/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java *** gcc-4.5.2/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java Tue Jan 11 19:46:05 2011 *************** public abstract class IIOMetadataFormatI *** 88,105 **** protected String defaultValue; public IIOMetadataNodeAttr (Element owner, ! String name, ! String defaultValue) { this (owner, name, IIOMetadataFormat.DATATYPE_STRING, true, defaultValue); } public IIOMetadataNodeAttr (Element owner, ! String name, ! int dataType, ! boolean required, ! String defaultValue) { this.owner = owner; this.name = name; --- 88,105 ---- protected String defaultValue; public IIOMetadataNodeAttr (Element owner, ! String name, ! String defaultValue) { this (owner, name, IIOMetadataFormat.DATATYPE_STRING, true, defaultValue); } public IIOMetadataNodeAttr (Element owner, ! String name, ! int dataType, ! boolean required, ! String defaultValue) { this.owner = owner; this.name = name; *************** public abstract class IIOMetadataFormatI *** 160,170 **** protected List enumeratedValues; public IIOMetadataNodeAttrEnumerated (Element owner, ! String name, ! int dataType, ! boolean required, ! String defaultValue, ! List enumeratedValues) { super (owner, name, dataType, required, defaultValue); this.enumeratedValues = new ArrayList (enumeratedValues); --- 160,170 ---- protected List enumeratedValues; public IIOMetadataNodeAttrEnumerated (Element owner, ! String name, ! int dataType, ! boolean required, ! String defaultValue, ! List enumeratedValues) { super (owner, name, dataType, required, defaultValue); this.enumeratedValues = new ArrayList (enumeratedValues); *************** public abstract class IIOMetadataFormatI *** 184,197 **** protected boolean maxInclusive; public IIOMetadataNodeAttrBounded (Element owner, ! String name, ! int dataType, ! boolean required, ! String defaultValue, ! String minValue, ! String maxValue, ! boolean minInclusive, ! boolean maxInclusive) { super (owner, name, dataType, required, defaultValue); this.minValue = minValue; --- 184,197 ---- protected boolean maxInclusive; public IIOMetadataNodeAttrBounded (Element owner, ! String name, ! int dataType, ! boolean required, ! String defaultValue, ! String minValue, ! String maxValue, ! boolean minInclusive, ! boolean maxInclusive) { super (owner, name, dataType, required, defaultValue); this.minValue = minValue; *************** public abstract class IIOMetadataFormatI *** 217,227 **** protected int listMaxLength; public IIOMetadataNodeAttrList (Element owner, ! String name, ! int dataType, ! boolean required, ! int listMinLength, ! int listMaxLength) { super (owner, name, dataType, required, null); this.listMinLength = listMinLength; --- 217,227 ---- protected int listMaxLength; public IIOMetadataNodeAttrList (Element owner, ! String name, ! int dataType, ! boolean required, ! int listMinLength, ! int listMaxLength) { super (owner, name, dataType, required, null); this.listMinLength = listMinLength; *************** public abstract class IIOMetadataFormatI *** 398,405 **** throw new IllegalArgumentException ("null argument"); if (childPolicy < IIOMetadataFormat.CHILD_POLICY_ALL ! || childPolicy > IIOMetadataFormat.CHILD_POLICY_SOME ! || childPolicy == IIOMetadataFormat.CHILD_POLICY_REPEAT) throw new IllegalArgumentException ("wrong child policy"); nodes.put (rootName, new IIOMetadataNode (rootName)); --- 398,405 ---- throw new IllegalArgumentException ("null argument"); if (childPolicy < IIOMetadataFormat.CHILD_POLICY_ALL ! || childPolicy > IIOMetadataFormat.CHILD_POLICY_SOME ! || childPolicy == IIOMetadataFormat.CHILD_POLICY_REPEAT) throw new IllegalArgumentException ("wrong child policy"); nodes.put (rootName, new IIOMetadataNode (rootName)); *************** public abstract class IIOMetadataFormatI *** 423,430 **** * zero or greater than maxChildren */ public IIOMetadataFormatImpl (String rootName, ! int minChildren, ! int maxChildren) { if (rootName == null) throw new IllegalArgumentException ("null argument"); --- 423,430 ---- * zero or greater than maxChildren */ public IIOMetadataFormatImpl (String rootName, ! int minChildren, ! int maxChildren) { if (rootName == null) throw new IllegalArgumentException ("null argument"); *************** public abstract class IIOMetadataFormatI *** 446,455 **** { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttr (node, ! attrName, ! dataType, ! required, ! defaultValue)); } protected void addAttribute (String elementName, --- 446,455 ---- { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttr (node, ! attrName, ! dataType, ! required, ! defaultValue)); } protected void addAttribute (String elementName, *************** public abstract class IIOMetadataFormatI *** 461,471 **** { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttrEnumerated (node, ! attrName, ! dataType, ! required, ! defaultValue, ! enumeratedValues)); } protected void addAttribute (String elementName, --- 461,471 ---- { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttrEnumerated (node, ! attrName, ! dataType, ! required, ! defaultValue, ! enumeratedValues)); } protected void addAttribute (String elementName, *************** public abstract class IIOMetadataFormatI *** 480,493 **** { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttrBounded (node, ! attrName, ! dataType, ! required, ! defaultValue, ! minValue, ! maxValue, ! minInclusive, ! maxInclusive)); } protected void addAttribute (String elementName, --- 480,493 ---- { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttrBounded (node, ! attrName, ! dataType, ! required, ! defaultValue, ! minValue, ! maxValue, ! minInclusive, ! maxInclusive)); } protected void addAttribute (String elementName, *************** public abstract class IIOMetadataFormatI *** 499,509 **** { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttrList (node, ! attrName, ! dataType, ! required, ! listMinLength, ! listMaxLength)); } protected void addBooleanAttribute (String elementName, --- 499,509 ---- { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttrList (node, ! attrName, ! dataType, ! required, ! listMinLength, ! listMaxLength)); } protected void addBooleanAttribute (String elementName, *************** public abstract class IIOMetadataFormatI *** 518,528 **** enumeratedValues.add ("FALSE"); node.setAttributeNode (new IIOMetadataNodeAttrEnumerated (node, ! attrName, ! IIOMetadataFormat.DATATYPE_BOOLEAN, ! hasDefaultValue, ! defaultValue ? "TRUE" : "FALSE", ! enumeratedValues)); } protected void addChildElement (String elementName, String parentName) --- 518,528 ---- enumeratedValues.add ("FALSE"); node.setAttributeNode (new IIOMetadataNodeAttrEnumerated (node, ! attrName, ! IIOMetadataFormat.DATATYPE_BOOLEAN, ! hasDefaultValue, ! defaultValue ? "TRUE" : "FALSE", ! enumeratedValues)); } protected void addChildElement (String elementName, String parentName) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java gcc-4.6.0/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java *** gcc-4.5.2/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java Tue Jan 11 19:46:05 2011 *************** public class IIOMetadataNode *** 165,171 **** private class IIONodeList implements NodeList { List children = new ArrayList(); ! /* (non-Javadoc) * @see org.w3c.dom.NodeList#item(int) */ --- 165,171 ---- private class IIONodeList implements NodeList { List children = new ArrayList(); ! /* (non-Javadoc) * @see org.w3c.dom.NodeList#item(int) */ *************** public class IIOMetadataNode *** 187,193 **** { // Do nothing here. } ! public IIOMetadataNode(String nodename) { name = nodename; --- 187,193 ---- { // Do nothing here. } ! public IIOMetadataNode(String nodename) { name = nodename; *************** public class IIOMetadataNode *** 202,208 **** { obj = o; } ! public short compareDocumentPosition(Node other) throws DOMException { --- 202,208 ---- { obj = o; } ! public short compareDocumentPosition(Node other) throws DOMException { *************** public class IIOMetadataNode *** 260,266 **** getElementsRecurse(list, name); } } ! /* (non-Javadoc) * @see org.w3c.dom.Element#getElementsByTagName(java.lang.String) */ --- 260,266 ---- getElementsRecurse(list, name); } } ! /* (non-Javadoc) * @see org.w3c.dom.Element#getElementsByTagName(java.lang.String) */ *************** public class IIOMetadataNode *** 280,286 **** getElementsRecurse(list, name); return list; } ! /* (non-Javadoc) * @see org.w3c.dom.Element#getTagName() */ --- 280,286 ---- getElementsRecurse(list, name); return list; } ! /* (non-Javadoc) * @see org.w3c.dom.Element#getTagName() */ *************** public class IIOMetadataNode *** 288,294 **** { return name; } ! /* (non-Javadoc) * @see org.w3c.dom.Element#hasAttribute(java.lang.String) */ --- 288,294 ---- { return name; } ! /* (non-Javadoc) * @see org.w3c.dom.Element#hasAttribute(java.lang.String) */ *************** public class IIOMetadataNode *** 296,302 **** { return attrs.containsKey(name); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#hasAttributeNS(java.lang.String, java.lang.String) */ --- 296,302 ---- { return attrs.containsKey(name); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#hasAttributeNS(java.lang.String, java.lang.String) */ *************** public class IIOMetadataNode *** 304,310 **** { return attrs.containsKey(localName); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#removeAttribute(java.lang.String) */ --- 304,310 ---- { return attrs.containsKey(localName); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#removeAttribute(java.lang.String) */ *************** public class IIOMetadataNode *** 320,326 **** { return (Attr)attrs.remove(oldAttr.getName()); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#removeAttributeNS(java.lang.String, java.lang.String) */ --- 320,326 ---- { return (Attr)attrs.remove(oldAttr.getName()); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#removeAttributeNS(java.lang.String, java.lang.String) */ *************** public class IIOMetadataNode *** 328,334 **** { removeAttribute(localName); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#setAttribute(java.lang.String, java.lang.String) */ --- 328,334 ---- { removeAttribute(localName); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#setAttribute(java.lang.String, java.lang.String) */ *************** public class IIOMetadataNode *** 340,346 **** else attrs.put(name, new IIOMetadataNodeAttr(this, name, value)); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#setAttributeNode(org.w3c.dom.Attr) */ --- 340,346 ---- else attrs.put(name, new IIOMetadataNodeAttr(this, name, value)); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#setAttributeNode(org.w3c.dom.Attr) */ *************** public class IIOMetadataNode *** 348,354 **** { return (Attr)attrs.put(newAttr.getName(), newAttr); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#setAttributeNodeNS(org.w3c.dom.Attr) */ --- 348,354 ---- { return (Attr)attrs.put(newAttr.getName(), newAttr); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#setAttributeNodeNS(org.w3c.dom.Attr) */ *************** public class IIOMetadataNode *** 356,370 **** { return (Attr)attrs.put(newAttr.getName(), newAttr); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#setAttributeNS(java.lang.String, java.lang.String, java.lang.String) */ public void setAttributeNS(String namespaceURI, String qualifiedName, String value) { ! setAttribute(qualifiedName, value); } ! /* (non-Javadoc) * @see org.w3c.dom.NodeList#getLength() */ --- 356,370 ---- { return (Attr)attrs.put(newAttr.getName(), newAttr); } ! /* (non-Javadoc) * @see org.w3c.dom.Element#setAttributeNS(java.lang.String, java.lang.String, java.lang.String) */ public void setAttributeNS(String namespaceURI, String qualifiedName, String value) { ! setAttribute(qualifiedName, value); } ! /* (non-Javadoc) * @see org.w3c.dom.NodeList#getLength() */ *************** public class IIOMetadataNode *** 372,378 **** { return children.size(); } ! /* (non-Javadoc) * @see org.w3c.dom.NodeList#item(int) */ --- 372,378 ---- { return children.size(); } ! /* (non-Javadoc) * @see org.w3c.dom.NodeList#item(int) */ *************** public class IIOMetadataNode *** 383,389 **** else return null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#appendChild(org.w3c.dom.Node) */ --- 383,389 ---- else return null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#appendChild(org.w3c.dom.Node) */ *************** public class IIOMetadataNode *** 391,399 **** { if (newChild == null) throw new IllegalArgumentException("Child node is null"); ! IIOMetadataNode child = (IIOMetadataNode) newChild; ! children.add(child); child.parent = this; return this; --- 391,399 ---- { if (newChild == null) throw new IllegalArgumentException("Child node is null"); ! IIOMetadataNode child = (IIOMetadataNode) newChild; ! children.add(child); child.parent = this; return this; *************** public class IIOMetadataNode *** 412,418 **** for (int i=0; i < children.size(); i++) newnode.children.add(((Node)children.get(i)).cloneNode(deep)); } ! // clone attrs for (Iterator it = attrs.values().iterator(); it.hasNext();) { --- 412,418 ---- for (int i=0; i < children.size(); i++) newnode.children.add(((Node)children.get(i)).cloneNode(deep)); } ! // clone attrs for (Iterator it = attrs.values().iterator(); it.hasNext();) { *************** public class IIOMetadataNode *** 452,458 **** { return (children.size() > 0) ? (Node)children.get(0) : null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getLastChild() */ --- 452,458 ---- { return (children.size() > 0) ? (Node)children.get(0) : null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getLastChild() */ *************** public class IIOMetadataNode *** 469,475 **** { return name; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getNamespaceURI() */ --- 469,475 ---- { return name; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getNamespaceURI() */ *************** public class IIOMetadataNode *** 477,483 **** { return null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getNextSibling() */ --- 477,483 ---- { return null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getNextSibling() */ *************** public class IIOMetadataNode *** 497,503 **** { return name; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getNodeType() */ --- 497,503 ---- { return name; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getNodeType() */ *************** public class IIOMetadataNode *** 530,536 **** { return parent; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getPrefix() */ --- 530,536 ---- { return parent; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getPrefix() */ *************** public class IIOMetadataNode *** 538,544 **** { return null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getPreviousSibling() */ --- 538,544 ---- { return null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#getPreviousSibling() */ *************** public class IIOMetadataNode *** 566,572 **** { return null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#hasAttributes() */ --- 566,572 ---- { return null; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#hasAttributes() */ *************** public class IIOMetadataNode *** 574,580 **** { return !attrs.isEmpty(); } ! /* (non-Javadoc) * @see org.w3c.dom.Node#hasChildNodes() */ --- 574,580 ---- { return !attrs.isEmpty(); } ! /* (non-Javadoc) * @see org.w3c.dom.Node#hasChildNodes() */ *************** public class IIOMetadataNode *** 590,603 **** { if (newChild == null) throw new IllegalArgumentException(); ! int idx = children.indexOf(refChild); if (idx == -1) children.add(newChild); else children.add(idx, newChild); ((IIOMetadataNode)newChild).parent = this; ! return newChild; } --- 590,603 ---- { if (newChild == null) throw new IllegalArgumentException(); ! int idx = children.indexOf(refChild); if (idx == -1) children.add(newChild); else children.add(idx, newChild); ((IIOMetadataNode)newChild).parent = this; ! return newChild; } *************** public class IIOMetadataNode *** 610,621 **** { return true; } ! public boolean isSameNode(Node other) { return this == other; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#isSupported(java.lang.String, java.lang.String) */ --- 610,621 ---- { return true; } ! public boolean isSameNode(Node other) { return this == other; } ! /* (non-Javadoc) * @see org.w3c.dom.Node#isSupported(java.lang.String, java.lang.String) */ *************** public class IIOMetadataNode *** 624,635 **** // No DOM features are supported return false; } ! public String lookupNamespaceURI(String prefix) { return null; } ! public String lookupPrefix(String namespaceURI) { return null; --- 624,635 ---- // No DOM features are supported return false; } ! public String lookupNamespaceURI(String prefix) { return null; } ! public String lookupPrefix(String namespaceURI) { return null; *************** public class IIOMetadataNode *** 667,673 **** ((IIOMetadataNode)oldChild).parent = null; return oldChild; } ! public void setIdAttribute(String name, boolean isId) throws DOMException { --- 667,673 ---- ((IIOMetadataNode)oldChild).parent = null; return oldChild; } ! public void setIdAttribute(String name, boolean isId) throws DOMException { *************** public class IIOMetadataNode *** 682,695 **** throws DOMException { } ! /* (non-Javadoc) * @see org.w3c.dom.Node#setNodeValue(java.lang.String) */ public void setNodeValue(String nodeValue) throws DOMException { } ! /* (non-Javadoc) * @see org.w3c.dom.Node#setPrefix(java.lang.String) */ --- 682,695 ---- throws DOMException { } ! /* (non-Javadoc) * @see org.w3c.dom.Node#setNodeValue(java.lang.String) */ public void setNodeValue(String nodeValue) throws DOMException { } ! /* (non-Javadoc) * @see org.w3c.dom.Node#setPrefix(java.lang.String) */ *************** public class IIOMetadataNode *** 701,707 **** throws DOMException { } ! public Object setUserData(String key, Object data, UserDataHandler handler) { return null; --- 701,707 ---- throws DOMException { } ! public Object setUserData(String key, Object data, UserDataHandler handler) { return null; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/plugins/bmp/BMPImageWriteParam.java gcc-4.6.0/libjava/classpath/javax/imageio/plugins/bmp/BMPImageWriteParam.java *** gcc-4.5.2/libjava/classpath/javax/imageio/plugins/bmp/BMPImageWriteParam.java Fri Mar 10 13:25:35 2006 --- gcc-4.6.0/libjava/classpath/javax/imageio/plugins/bmp/BMPImageWriteParam.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BMPImageWriteParam.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BMPImageWriteParam.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Locale; *** 43,67 **** import javax.imageio.ImageWriteParam; /** ! * A class to encode images in the BMP format. * By default, the data layout is bottom-up, such that the pixels are stored in ! * bottom-up order. ! * ! * The compression scheme can be specified by using setCompressionType() * appropriate type string. The compression scheme specified will be honored ! * if it is compatible with the type of image being written. If the * compression scheme is not compatible with the type of image being written, ! * then an IOException will be thrown by the BMP image writer. If the * compression type is not set, then getCompressionType() will return null. ! * In this case the BMP image writer will select a compression type that ! * supports encoding of the given image without loss of the color resolution. ! * ! * The compression type strings and the image type each supports are: ! * Uncompressed RLE: BI_RGB, image type: <= 8-bits/sample. ! * 8-bit Run Length Encoding: BI_RLE8, image type: <= 8-bits/sample ! * 4-bit Run Length Encoding: BI_RLE4, image type: <= 4-bits/sample * Packed data: BI_BITFIELDS, image type: 16 or 32 bits/sample ! * * @author Lillian Angel (langel at redhat dot com) */ public class BMPImageWriteParam --- 43,67 ---- import javax.imageio.ImageWriteParam; /** ! * A class to encode images in the BMP format. * By default, the data layout is bottom-up, such that the pixels are stored in ! * bottom-up order. ! * ! * The compression scheme can be specified by using setCompressionType() * appropriate type string. The compression scheme specified will be honored ! * if it is compatible with the type of image being written. If the * compression scheme is not compatible with the type of image being written, ! * then an IOException will be thrown by the BMP image writer. If the * compression type is not set, then getCompressionType() will return null. ! * In this case the BMP image writer will select a compression type that ! * supports encoding of the given image without loss of the color resolution. ! * ! * The compression type strings and the image type each supports are: ! * Uncompressed RLE: BI_RGB, image type: <= 8-bits/sample. ! * 8-bit Run Length Encoding: BI_RLE8, image type: <= 8-bits/sample ! * 4-bit Run Length Encoding: BI_RLE4, image type: <= 4-bits/sample * Packed data: BI_BITFIELDS, image type: 16 or 32 bits/sample ! * * @author Lillian Angel (langel at redhat dot com) */ public class BMPImageWriteParam *************** public class BMPImageWriteParam *** 72,78 **** * This boolean is true if the data will be written in a topdown manner. */ private boolean topDown; ! /** * Compression type strings. */ --- 72,78 ---- * This boolean is true if the data will be written in a topdown manner. */ private boolean topDown; ! /** * Compression type strings. */ *************** public class BMPImageWriteParam *** 80,86 **** String rle8 = "BI_RLE8"; String rle4 = "BI_RLE4"; String bitfields = "BI_BITFIELDS"; ! /** * Constants to represent image types. */ --- 80,86 ---- String rle8 = "BI_RLE8"; String rle4 = "BI_RLE4"; String bitfields = "BI_BITFIELDS"; ! /** * Constants to represent image types. */ *************** public class BMPImageWriteParam *** 88,94 **** static final int BI_RLE8 = 1; static final int BI_RLE4 = 2; static final int BI_BITFIELDS = 3; ! /** * Constructs an BMPImageWriteParam object with default values * and a null Locale. --- 88,94 ---- static final int BI_RLE8 = 1; static final int BI_RLE4 = 2; static final int BI_BITFIELDS = 3; ! /** * Constructs an BMPImageWriteParam object with default values * and a null Locale. *************** public class BMPImageWriteParam *** 101,107 **** /** * Constructs a BMPImageWriteParam set to use a given * Locale and with default values for all parameters. ! * * @param locale - a Locale to be used to localize compression * type names and quality descriptions, or null. */ --- 101,107 ---- /** * Constructs a BMPImageWriteParam set to use a given * Locale and with default values for all parameters. ! * * @param locale - a Locale to be used to localize compression * type names and quality descriptions, or null. */ *************** public class BMPImageWriteParam *** 110,129 **** super(locale); topDown = false; canWriteCompressed = true; ! compressionTypes = new String[4]; compressionTypes[BI_RGB] = rgb; compressionTypes[BI_RLE8] = rle8; compressionTypes[BI_RLE4] = rle4; compressionTypes[BI_BITFIELDS] = bitfields; ! compressionType = compressionTypes[BI_RGB]; } /** * If set, the data will be written out in a top-down manner, the first * scanline being written first. ! * * @param topDown - whether the data are written in top-down order. */ public void setTopDown(boolean topDown) --- 110,129 ---- super(locale); topDown = false; canWriteCompressed = true; ! compressionTypes = new String[4]; compressionTypes[BI_RGB] = rgb; compressionTypes[BI_RLE8] = rle8; compressionTypes[BI_RLE4] = rle4; compressionTypes[BI_BITFIELDS] = bitfields; ! compressionType = compressionTypes[BI_RGB]; } /** * If set, the data will be written out in a top-down manner, the first * scanline being written first. ! * * @param topDown - whether the data are written in top-down order. */ public void setTopDown(boolean topDown) *************** public class BMPImageWriteParam *** 134,140 **** /** * Returns the value of the topDown parameter. The default is * false. ! * * @return whether the data are written in top-down order. */ public boolean isTopDown() --- 134,140 ---- /** * Returns the value of the topDown parameter. The default is * false. ! * * @return whether the data are written in top-down order. */ public boolean isTopDown() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java gcc-4.6.0/libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java *** gcc-4.5.2/libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java Tue Jan 11 19:46:05 2011 *************** public class JPEGHuffmanTable *** 162,168 **** * the array arguments. lengths[index] stores the number of Huffman * values with Huffman codes of length index + 1. The values array * stores the Huffman values in order of increasing code length. ! * * @param lengths an array of Huffman code lengths * @param values a sorted array of Huffman values * @throws IllegalArgumentException if either parameter is null, if --- 162,168 ---- * the array arguments. lengths[index] stores the number of Huffman * values with Huffman codes of length index + 1. The values array * stores the Huffman values in order of increasing code length. ! * * @param lengths an array of Huffman code lengths * @param values a sorted array of Huffman values * @throws IllegalArgumentException if either parameter is null, if *************** public class JPEGHuffmanTable *** 266,282 **** public String toString() { CPStringBuilder buffer = new CPStringBuilder(); ! buffer.append("JPEGHuffmanTable:\nlengths:"); ! for (int i = 0; i < lengths.length; i++) buffer.append(" " + lengths[i]); ! buffer.append("\nvalues:"); ! for (int i = 0; i < values.length; i++) buffer.append(" " + values[i]); ! return buffer.toString(); } } --- 266,282 ---- public String toString() { CPStringBuilder buffer = new CPStringBuilder(); ! buffer.append("JPEGHuffmanTable:\nlengths:"); ! for (int i = 0; i < lengths.length; i++) buffer.append(" " + lengths[i]); ! buffer.append("\nvalues:"); ! for (int i = 0; i < values.length; i++) buffer.append(" " + values[i]); ! return buffer.toString(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/spi/IIORegistry.java gcc-4.6.0/libjava/classpath/javax/imageio/spi/IIORegistry.java *** gcc-4.5.2/libjava/classpath/javax/imageio/spi/IIORegistry.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/imageio/spi/IIORegistry.java Tue Jan 11 19:46:05 2011 *************** import gnu.javax.imageio.png.PNGImageRea *** 54,60 **** public final class IIORegistry extends ServiceRegistry { private static final HashSet defaultCategories = new HashSet(); ! private static HashMap instances = new HashMap(); static --- 54,60 ---- public final class IIORegistry extends ServiceRegistry { private static final HashSet defaultCategories = new HashSet(); ! private static HashMap instances = new HashMap(); static *************** public final class IIORegistry extends S *** 65,83 **** defaultCategories.add(ImageInputStreamSpi.class); defaultCategories.add(ImageOutputStreamSpi.class); } ! public static synchronized IIORegistry getDefaultInstance() { // XXX: This leaks memory if a ThreadGroup isn't available anymore. ThreadGroup group = Thread.currentThread().getThreadGroup(); IIORegistry registry = (IIORegistry) instances.get(group); ! if (registry == null) { registry = new IIORegistry(); instances.put(group, registry); } ! return registry; } --- 65,83 ---- defaultCategories.add(ImageInputStreamSpi.class); defaultCategories.add(ImageOutputStreamSpi.class); } ! public static synchronized IIORegistry getDefaultInstance() { // XXX: This leaks memory if a ThreadGroup isn't available anymore. ThreadGroup group = Thread.currentThread().getThreadGroup(); IIORegistry registry = (IIORegistry) instances.get(group); ! if (registry == null) { registry = new IIORegistry(); instances.put(group, registry); } ! return registry; } *************** public final class IIORegistry extends S *** 94,100 **** Toolkit toolkit = Toolkit.getDefaultToolkit(); if (toolkit instanceof ClasspathToolkit) ((ClasspathToolkit)toolkit).registerImageIOSpis(this); ! registerApplicationClasspathSpis(); } --- 94,100 ---- Toolkit toolkit = Toolkit.getDefaultToolkit(); if (toolkit instanceof ClasspathToolkit) ((ClasspathToolkit)toolkit).registerImageIOSpis(this); ! registerApplicationClasspathSpis(); } *************** public final class IIORegistry extends S *** 109,119 **** while (categories.hasNext()) { ! Class category = (Class) categories.next(); ! Iterator providers = ServiceFactory.lookupProviders(category, loader); ! while (providers.hasNext()) ! registerServiceProvider((IIOServiceProvider) providers.next()); } } } --- 109,119 ---- while (categories.hasNext()) { ! Class category = (Class) categories.next(); ! Iterator providers = ServiceFactory.lookupProviders(category, loader); ! while (providers.hasNext()) ! registerServiceProvider((IIOServiceProvider) providers.next()); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/spi/ImageReaderSpi.java gcc-4.6.0/libjava/classpath/javax/imageio/spi/ImageReaderSpi.java *** gcc-4.5.2/libjava/classpath/javax/imageio/spi/ImageReaderSpi.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/spi/ImageReaderSpi.java Tue Jan 11 19:46:05 2011 *************** public abstract class ImageReaderSpi ext *** 84,90 **** if (inputTypes == null || inputTypes.length == 0) throw new IllegalArgumentException("inputTypes may not be null or empty"); ! this.inputTypes = inputTypes; this.writerSpiNames = writerSpiNames; } --- 84,90 ---- if (inputTypes == null || inputTypes.length == 0) throw new IllegalArgumentException("inputTypes may not be null or empty"); ! this.inputTypes = inputTypes; this.writerSpiNames = writerSpiNames; } *************** public abstract class ImageReaderSpi ext *** 115,121 **** { if (reader == null) throw new IllegalArgumentException("reader may not be null"); ! return pluginClassName.equals(reader.getClass().getName()); } } --- 115,121 ---- { if (reader == null) throw new IllegalArgumentException("reader may not be null"); ! return pluginClassName.equals(reader.getClass().getName()); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/spi/ImageWriterSpi.java gcc-4.6.0/libjava/classpath/javax/imageio/spi/ImageWriterSpi.java *** gcc-4.5.2/libjava/classpath/javax/imageio/spi/ImageWriterSpi.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/spi/ImageWriterSpi.java Tue Jan 11 19:46:05 2011 *************** public abstract class ImageWriterSpi ext *** 89,97 **** if (outputTypes == null || outputTypes.length == 0) throw new IllegalArgumentException("outputTypes may not be null or empty"); ! this.outputTypes = outputTypes; ! this.readerSpiNames = readerSpiNames; } public abstract boolean canEncodeImage(ImageTypeSpecifier type); --- 89,97 ---- if (outputTypes == null || outputTypes.length == 0) throw new IllegalArgumentException("outputTypes may not be null or empty"); ! this.outputTypes = outputTypes; ! this.readerSpiNames = readerSpiNames; } public abstract boolean canEncodeImage(ImageTypeSpecifier type); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/spi/RegisterableService.java gcc-4.6.0/libjava/classpath/javax/imageio/spi/RegisterableService.java *** gcc-4.5.2/libjava/classpath/javax/imageio/spi/RegisterableService.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/imageio/spi/RegisterableService.java Tue Jan 11 19:46:05 2011 *************** public interface RegisterableService *** 80,83 **** */ void onDeregistration(ServiceRegistry registry, Class category); } - --- 80,82 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/spi/ServiceRegistry.java gcc-4.6.0/libjava/classpath/javax/imageio/spi/ServiceRegistry.java *** gcc-4.5.2/libjava/classpath/javax/imageio/spi/ServiceRegistry.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/spi/ServiceRegistry.java Tue Jan 11 19:46:05 2011 *************** public class ServiceRegistry *** 107,117 **** */ private IdentityHashMap[] constraints; ! /** * Constructs a ServiceRegistry for the specified * service categories. ! * * @param categories the categories to support * * @throws IllegalArgumentException if categories is --- 107,117 ---- */ private IdentityHashMap[] constraints; ! /** * Constructs a ServiceRegistry for the specified * service categories. ! * * @param categories the categories to support * * @throws IllegalArgumentException if categories is *************** public class ServiceRegistry *** 475,482 **** return deregisterServiceProvider(provider, i); throw new IllegalArgumentException(); } ! ! /** * De-registers a provider from all service categories it * implements. --- 475,482 ---- return deregisterServiceProvider(provider, i); throw new IllegalArgumentException(); } ! ! /** * De-registers a provider from all service categories it * implements. *************** public class ServiceRegistry *** 704,710 **** provs = providers[catid]; if (provs == null) return Collections.EMPTY_LIST.iterator(); ! result = new ArrayList(provs.size()); for (Iterator iter = provs.iterator(); iter.hasNext();) { --- 704,710 ---- provs = providers[catid]; if (provs == null) return Collections.EMPTY_LIST.iterator(); ! result = new ArrayList(provs.size()); for (Iterator iter = provs.iterator(); iter.hasNext();) { *************** public class ServiceRegistry *** 728,734 **** if (o1 == o2) return 0; ! s = (Set) cons.get(o1); if (s != null && s.contains(o2)) return -1; // o1 < o2 --- 728,734 ---- if (o1 == o2) return 0; ! s = (Set) cons.get(o1); if (s != null && s.contains(o2)) return -1; // o1 < o2 *************** public class ServiceRegistry *** 749,755 **** /** * Returns one of the service providers that is a subclass of the * specified class. ! * * @param providerClass a class to search for. */ public synchronized T getServiceProviderByClass(Class providerClass) --- 749,755 ---- /** * Returns one of the service providers that is a subclass of the * specified class. ! * * @param providerClass a class to search for. */ public synchronized T getServiceProviderByClass(Class providerClass) *************** public class ServiceRegistry *** 764,770 **** { if (!categories[cat].isAssignableFrom(providerClass)) continue; ! LinkedList provs = providers[cat]; if (provs == null) continue; --- 764,770 ---- { if (!categories[cat].isAssignableFrom(providerClass)) continue; ! LinkedList provs = providers[cat]; if (provs == null) continue; *************** public class ServiceRegistry *** 959,962 **** boolean filter(Object provider); } } - --- 959,961 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/FileCacheImageInputStream.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/FileCacheImageInputStream.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/FileCacheImageInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/FileCacheImageInputStream.java Tue Jan 11 19:46:05 2011 *************** public class FileCacheImageInputStream e *** 49,55 **** { private InputStream stream; private File cacheDir; ! public FileCacheImageInputStream(InputStream stream, File cacheDir) throws IOException { --- 49,55 ---- { private InputStream stream; private File cacheDir; ! public FileCacheImageInputStream(InputStream stream, File cacheDir) throws IOException { *************** public class FileCacheImageInputStream e *** 64,71 **** { if (stream != null) { ! stream.close(); ! stream = null; } } --- 64,71 ---- { if (stream != null) { ! stream.close(); ! stream = null; } } *************** public class FileCacheImageInputStream e *** 85,91 **** { return true; } ! public boolean isCachedMemory() { return false; --- 85,91 ---- { return true; } ! public boolean isCachedMemory() { return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/FileCacheImageOutputStream.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/FileCacheImageOutputStream.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/FileCacheImageOutputStream.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/FileCacheImageOutputStream.java Tue Jan 11 19:46:05 2011 *************** public class FileCacheImageOutputStream *** 84,95 **** { return true; } ! public boolean isCachedMemory() { return false; } ! public int read() throws IOException { --- 84,95 ---- { return true; } ! public boolean isCachedMemory() { return false; } ! public int read() throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/FileImageInputStream.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/FileImageInputStream.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/FileImageInputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/FileImageInputStream.java Tue Jan 11 19:46:05 2011 *************** import java.io.RandomAccessFile; *** 49,55 **** public class FileImageInputStream extends ImageInputStreamImpl { private RandomAccessFile file; ! public FileImageInputStream(File file) throws FileNotFoundException, IOException { --- 49,55 ---- public class FileImageInputStream extends ImageInputStreamImpl { private RandomAccessFile file; ! public FileImageInputStream(File file) throws FileNotFoundException, IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/FileImageOutputStream.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/FileImageOutputStream.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/FileImageOutputStream.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/FileImageOutputStream.java Tue Jan 11 19:46:05 2011 *************** import java.io.RandomAccessFile; *** 49,55 **** public class FileImageOutputStream extends ImageOutputStreamImpl { private RandomAccessFile file; ! public FileImageOutputStream(File file) throws FileNotFoundException, IOException { --- 49,55 ---- public class FileImageOutputStream extends ImageOutputStreamImpl { private RandomAccessFile file; ! public FileImageOutputStream(File file) throws FileNotFoundException, IOException { *************** public class FileImageOutputStream exten *** 92,98 **** throws IOException { checkClosed(); ! setBitOffset(0); return file.read(); } --- 92,98 ---- throws IOException { checkClosed(); ! setBitOffset(0); return file.read(); } *************** public class FileImageOutputStream exten *** 101,107 **** throws IOException { checkClosed(); ! setBitOffset(0); return file.read(data, offset, len); } --- 101,107 ---- throws IOException { checkClosed(); ! setBitOffset(0); return file.read(data, offset, len); } *************** public class FileImageOutputStream exten *** 117,123 **** throws IOException { checkClosed(); ! flushBits(); file.write(data, offset, len); } --- 117,123 ---- throws IOException { checkClosed(); ! flushBits(); file.write(data, offset, len); } *************** public class FileImageOutputStream exten *** 126,132 **** throws IOException { checkClosed(); ! // FIXME: Flush pending bits. file.write(value); } --- 126,132 ---- throws IOException { checkClosed(); ! // FIXME: Flush pending bits. file.write(value); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/ImageInputStream.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/ImageInputStream.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/ImageInputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/ImageInputStream.java Tue Jan 11 19:46:05 2011 *************** public interface ImageInputStream *** 58,64 **** void setByteOrder(ByteOrder order); ByteOrder getByteOrder(); ! int read() throws IOException; --- 58,64 ---- void setByteOrder(ByteOrder order); ByteOrder getByteOrder(); ! int read() throws IOException; *************** public interface ImageInputStream *** 156,162 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all two * bytes were read. * --- 156,162 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all two * bytes were read. * *************** public interface ImageInputStream *** 178,184 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * *

                            This method does the same as {@link #readChar()}. * * @throws EOFException if the input stream ends before all two --- 178,184 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * *

                            This method does the same as {@link #readChar()}. * * @throws EOFException if the input stream ends before all two *************** public interface ImageInputStream *** 202,208 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * *

                            This method does the same as {@link #readUnsignedShort()}. * * @throws EOFException if the input stream ends before all two --- 202,208 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * *

                            This method does the same as {@link #readUnsignedShort()}. * * @throws EOFException if the input stream ends before all two *************** public interface ImageInputStream *** 224,230 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all four * bytes were read. * --- 224,230 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all four * bytes were read. * *************** public interface ImageInputStream *** 245,251 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all four * bytes were read. * --- 245,251 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all four * bytes were read. * *************** public interface ImageInputStream *** 266,272 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all eight * bytes were read. * --- 266,272 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all eight * bytes were read. * *************** public interface ImageInputStream *** 286,292 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all four * bytes were read. * --- 286,292 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all four * bytes were read. * *************** public interface ImageInputStream *** 306,312 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all eight * bytes were read. * --- 306,312 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @throws EOFException if the input stream ends before all eight * bytes were read. * *************** public interface ImageInputStream *** 331,337 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param b an array for storing the read values. * * @param offset the index of the first element in b --- 331,337 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param b an array for storing the read values. * * @param offset the index of the first element in b *************** public interface ImageInputStream *** 364,370 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param b an array for storing the read values. * * @throws NullPointerException if b is --- 364,370 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param b an array for storing the read values. * * @throws NullPointerException if b is *************** public interface ImageInputStream *** 391,397 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param s an array for storing the read values. * * @param offset the index of the first element in s --- 391,397 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param s an array for storing the read values. * * @param offset the index of the first element in s *************** public interface ImageInputStream *** 427,433 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param c an array for storing the read values. * * @param offset the index of the first element in c --- 427,433 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param c an array for storing the read values. * * @param offset the index of the first element in c *************** public interface ImageInputStream *** 463,469 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param i an array for storing the read values. * * @param offset the index of the first element in i --- 463,469 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param i an array for storing the read values. * * @param offset the index of the first element in i *************** public interface ImageInputStream *** 499,505 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param l an array for storing the read values. * * @param offset the index of the first element in l --- 499,505 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param l an array for storing the read values. * * @param offset the index of the first element in l *************** public interface ImageInputStream *** 535,541 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param d an array for storing the read values. * * @param offset the index of the first element in d --- 535,541 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param d an array for storing the read values. * * @param offset the index of the first element in d *************** public interface ImageInputStream *** 572,578 **** * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param d an array for storing the read values. * * @param offset the index of the first element in d --- 572,578 ---- * *

                            The {@linkplain #getBitOffset() bit offset} is set to zero * before any data is read. ! * * @param d an array for storing the read values. * * @param offset the index of the first element in d diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java Tue Jan 11 19:46:05 2011 *************** public abstract class ImageInputStreamIm *** 53,61 **** { private boolean closed; private Stack markStack = new Stack(); ! byte[] buffer = new byte[8]; ! protected int bitOffset; protected ByteOrder byteOrder = ByteOrder.BIG_ENDIAN; protected long flushedPos; --- 53,61 ---- { private boolean closed; private Stack markStack = new Stack(); ! byte[] buffer = new byte[8]; ! protected int bitOffset; protected ByteOrder byteOrder = ByteOrder.BIG_ENDIAN; protected long flushedPos; *************** public abstract class ImageInputStreamIm *** 79,85 **** checkClosed(); closed = true; } ! protected void finalize() throws Throwable { --- 79,85 ---- checkClosed(); closed = true; } ! protected void finalize() throws Throwable { *************** public abstract class ImageInputStreamIm *** 153,159 **** { try { ! markStack.push(new Long(getStreamPosition())); } catch (IOException e) { --- 153,159 ---- { try { ! markStack.push(new Long(getStreamPosition())); } catch (IOException e) { *************** public abstract class ImageInputStreamIm *** 193,199 **** seek(getStreamPosition() - 1); data = (byte) (data >> (8 - newOffset)); } ! bitOffset = newOffset; return data & 0x1; } --- 193,199 ---- seek(getStreamPosition() - 1); data = (byte) (data >> (8 - newOffset)); } ! bitOffset = newOffset; return data & 0x1; } *************** public abstract class ImageInputStreamIm *** 210,217 **** for (int i = 0; i < numBits; i++) { ! bits <<= 1; ! bits |= readBit(); } return bits; } --- 210,217 ---- for (int i = 0; i < numBits; i++) { ! bits <<= 1; ! bits |= readBit(); } return bits; } *************** public abstract class ImageInputStreamIm *** 351,359 **** while (!eol) { ! switch(c) ! { ! case '\r': // Check for following '\n'. long oldPosition = getStreamPosition(); c = read(); --- 351,359 ---- while (!eol) { ! switch(c) ! { ! case '\r': // Check for following '\n'. long oldPosition = getStreamPosition(); c = read(); *************** public abstract class ImageInputStreamIm *** 366,379 **** } continue; ! case '\n': ! eol = true; continue; ! default: ! buffer.append((char) c); ! break; ! } c = read(); if (c == -1) eol = true; --- 366,379 ---- } continue; ! case '\n': ! eol = true; continue; ! default: ! buffer.append((char) c); ! break; ! } c = read(); if (c == -1) eol = true; *************** public abstract class ImageInputStreamIm *** 454,466 **** try { ! data = DataInputStream.readUTF(this); } finally { ! setByteOrder(old); } ! return data; } --- 454,466 ---- try { ! data = DataInputStream.readUTF(this); } finally { ! setByteOrder(old); } ! return data; } *************** public abstract class ImageInputStreamIm *** 468,474 **** throws IOException { checkClosed(); ! long mark = ((Long) markStack.pop()).longValue(); seek(mark); } --- 468,474 ---- throws IOException { checkClosed(); ! long mark = ((Long) markStack.pop()).longValue(); seek(mark); } *************** public abstract class ImageInputStreamIm *** 489,495 **** throws IOException { checkClosed(); ! if (bitOffset < 0 || bitOffset > 7) throw new IllegalArgumentException("bitOffset not between 0 and 7 inclusive"); --- 489,495 ---- throws IOException { checkClosed(); ! if (bitOffset < 0 || bitOffset > 7) throw new IllegalArgumentException("bitOffset not between 0 and 7 inclusive"); *************** public abstract class ImageInputStreamIm *** 505,511 **** throws IOException { checkClosed(); ! seek(getStreamPosition() + num); bitOffset = 0; return num; --- 505,511 ---- throws IOException { checkClosed(); ! seek(getStreamPosition() + num); bitOffset = 0; return num; *************** public abstract class ImageInputStreamIm *** 515,521 **** throws IOException { checkClosed(); ! seek(getStreamPosition() + num); bitOffset = 0; return num; --- 515,521 ---- throws IOException { checkClosed(); ! seek(getStreamPosition() + num); bitOffset = 0; return num; *************** public abstract class ImageInputStreamIm *** 530,541 **** while (len > 0) { ! // read will block until some data is available. ! int numread = read (buf, offset, len); ! if (numread < 0) ! throw new EOFException (); ! len -= numread; ! offset += numread; } bitOffset = 0; } --- 530,541 ---- while (len > 0) { ! // read will block until some data is available. ! int numread = read (buf, offset, len); ! if (numread < 0) ! throw new EOFException (); ! len -= numread; ! offset += numread; } bitOffset = 0; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/ImageOutputStreamImpl.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/ImageOutputStreamImpl.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/ImageOutputStreamImpl.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/ImageOutputStreamImpl.java Tue Jan 11 19:46:05 2011 *************** public abstract class ImageOutputStreamI *** 221,240 **** for(int i = 0; i < len; ++len) writeDouble(data[offset + i]); } ! public void writeFloat(float value) throws IOException { writeInt(Float.floatToIntBits(value)); } ! public void writeFloats(float[] data, int offset, int len) throws IOException { for(int i = 0; i < len; ++len) writeFloat(data[offset + i]); } ! public void writeInt(int value) throws IOException { --- 221,240 ---- for(int i = 0; i < len; ++len) writeDouble(data[offset + i]); } ! public void writeFloat(float value) throws IOException { writeInt(Float.floatToIntBits(value)); } ! public void writeFloats(float[] data, int offset, int len) throws IOException { for(int i = 0; i < len; ++len) writeFloat(data[offset + i]); } ! public void writeInt(int value) throws IOException { *************** public abstract class ImageOutputStreamI *** 252,268 **** buffer[2] = ((byte) (value >> 8)); buffer[3] = ((byte) value); } ! write(buffer, 0, 4); } ! public void writeInts(int[] data, int offset, int len) throws IOException { for(int i = 0; i < len; ++len) writeInt(data[offset + i]); } ! public void writeLong(long value) throws IOException { --- 252,268 ---- buffer[2] = ((byte) (value >> 8)); buffer[3] = ((byte) value); } ! write(buffer, 0, 4); } ! public void writeInts(int[] data, int offset, int len) throws IOException { for(int i = 0; i < len; ++len) writeInt(data[offset + i]); } ! public void writeLong(long value) throws IOException { *************** public abstract class ImageOutputStreamI *** 288,304 **** buffer[6] = ((byte) (value >> 8)); buffer[7] = ((byte) value); } ! write(buffer, 0, 8); } ! public void writeLongs(long[] data, int offset, int len) throws IOException { for(int i = 0; i < len; ++len) writeLong(data[offset + i]); } ! public void writeShort(int value) throws IOException { --- 288,304 ---- buffer[6] = ((byte) (value >> 8)); buffer[7] = ((byte) value); } ! write(buffer, 0, 8); } ! public void writeLongs(long[] data, int offset, int len) throws IOException { for(int i = 0; i < len; ++len) writeLong(data[offset + i]); } ! public void writeShort(int value) throws IOException { *************** public abstract class ImageOutputStreamI *** 312,328 **** buffer[0] = ((byte) (value >> 8)); buffer[1] = ((byte) value); } ! write(buffer, 0, 2); } ! public void writeShorts(short[] data, int offset, int len) throws IOException { for(int i = 0; i < len; ++len) writeShort(data[offset + i]); } ! public void writeUTF(String value) throws IOException { --- 312,328 ---- buffer[0] = ((byte) (value >> 8)); buffer[1] = ((byte) value); } ! write(buffer, 0, 2); } ! public void writeShorts(short[] data, int offset, int len) throws IOException { for(int i = 0; i < len; ++len) writeShort(data[offset + i]); } ! public void writeUTF(String value) throws IOException { *************** public abstract class ImageOutputStreamI *** 367,373 **** buf[pos++] = (byte) (0x80 | (0x3f & c)); } } ! writeShort (sum); write(buf, 0, sum); } --- 367,373 ---- buf[pos++] = (byte) (0x80 | (0x3f & c)); } } ! writeShort (sum); write(buf, 0, sum); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java Tue Jan 11 19:46:05 2011 *************** public class MemoryCacheImageInputStream *** 51,57 **** private BufferedInputStream buffer; private int READLIMIT = 2048; ! public MemoryCacheImageInputStream(InputStream stream) { this.stream = stream; --- 51,57 ---- private BufferedInputStream buffer; private int READLIMIT = 2048; ! public MemoryCacheImageInputStream(InputStream stream) { this.stream = stream; *************** public class MemoryCacheImageInputStream *** 85,91 **** { return false; } ! public boolean isCachedMemory() { return true; --- 85,91 ---- { return false; } ! public boolean isCachedMemory() { return true; *************** public class MemoryCacheImageInputStream *** 96,102 **** { setBitOffset(0); int retval = buffer.read(); ! if (retval != -1) streamPos++; --- 96,102 ---- { setBitOffset(0); int retval = buffer.read(); ! if (retval != -1) streamPos++; *************** public class MemoryCacheImageInputStream *** 114,122 **** streamPos += retval; } ! return retval; } ! public void seek(long position) throws IOException { --- 114,122 ---- streamPos += retval; } ! return retval; } ! public void seek(long position) throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/imageio/stream/MemoryCacheImageOutputStream.java gcc-4.6.0/libjava/classpath/javax/imageio/stream/MemoryCacheImageOutputStream.java *** gcc-4.5.2/libjava/classpath/javax/imageio/stream/MemoryCacheImageOutputStream.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/imageio/stream/MemoryCacheImageOutputStream.java Tue Jan 11 19:46:05 2011 *************** public class MemoryCacheImageOutputStrea *** 78,84 **** { return false; } ! public boolean isCachedMemory() { return true; --- 78,84 ---- { return false; } ! public boolean isCachedMemory() { return true; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/Attribute.java gcc-4.6.0/libjava/classpath/javax/management/Attribute.java *** gcc-4.5.2/libjava/classpath/javax/management/Attribute.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/Attribute.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 42,50 **** /** * Represents an MBean attribute, having the name and the assigned value. The * MBean objects use this class to get and set attributes values. ! * * @since 1.5 ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class Attribute --- 42,50 ---- /** * Represents an MBean attribute, having the name and the assigned value. The * MBean objects use this class to get and set attributes values. ! * * @since 1.5 ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class Attribute *************** public class Attribute *** 67,73 **** /** * Create the attribute with the given name and value. ! * * @param name the attribute name * @param value the attribute value */ --- 67,73 ---- /** * Create the attribute with the given name and value. ! * * @param name the attribute name * @param value the attribute value */ *************** public class Attribute *** 79,87 **** /** * Compares the attribute with another attribute. ! * * @param other the other object to compare with ! * * @return true if both value and object are equal, false otherwise. */ public boolean equals(Object other) --- 79,87 ---- /** * Compares the attribute with another attribute. ! * * @param other the other object to compare with ! * * @return true if both value and object are equal, false otherwise. */ public boolean equals(Object other) *************** public class Attribute *** 99,105 **** v = oa.m_value == m_value; else v = oa.m_value.equals(m_value); ! return n && v; } --- 99,105 ---- v = oa.m_value == m_value; else v = oa.m_value.equals(m_value); ! return n && v; } *************** public class Attribute *** 109,115 **** /** * Returns the attribute name. ! * * @return the attribute name */ public String getName() --- 109,115 ---- /** * Returns the attribute name. ! * * @return the attribute name */ public String getName() *************** public class Attribute *** 119,125 **** /** * Returns the attribute value. ! * * @return the attribute value. */ public Object getValue() --- 119,125 ---- /** * Returns the attribute value. ! * * @return the attribute value. */ public Object getValue() *************** public class Attribute *** 129,142 **** /** * Need to override as {@link #equals} is overridden. ! * * @return the expression, dependent of the object and name hashcodes. */ public int hashCode() { int n = m_name == null ? 0 : m_name.hashCode(); int v = m_value == null ? 0 : m_value.hashCode(); ! return n ^ v; } --- 129,142 ---- /** * Need to override as {@link #equals} is overridden. ! * * @return the expression, dependent of the object and name hashcodes. */ public int hashCode() { int n = m_name == null ? 0 : m_name.hashCode(); int v = m_value == null ? 0 : m_value.hashCode(); ! return n ^ v; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/AttributeChangeNotification.java gcc-4.6.0/libjava/classpath/javax/management/AttributeChangeNotification.java *** gcc-4.5.2/libjava/classpath/javax/management/AttributeChangeNotification.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/AttributeChangeNotification.java Tue Jan 11 19:46:05 2011 *************** public class AttributeChangeNotification *** 67,73 **** * notifications. */ public static final String ATTRIBUTE_CHANGE = "jmx.attribute.change"; ! /** * The name of the attribute that changed. */ --- 67,73 ---- * notifications. */ public static final String ATTRIBUTE_CHANGE = "jmx.attribute.change"; ! /** * The name of the attribute that changed. */ *************** public class AttributeChangeNotification *** 107,120 **** * @param newVal the new value of the attribute. */ public AttributeChangeNotification(Object source, ! long sequenceNumber, ! long timeStamp, ! String msg, String name, ! String type, Object oldVal, ! Object newVal) { super(ATTRIBUTE_CHANGE, source, sequenceNumber, ! timeStamp, msg); attributeName = name; attributeType = type; oldValue = oldVal; --- 107,120 ---- * @param newVal the new value of the attribute. */ public AttributeChangeNotification(Object source, ! long sequenceNumber, ! long timeStamp, ! String msg, String name, ! String type, Object oldVal, ! Object newVal) { super(ATTRIBUTE_CHANGE, source, sequenceNumber, ! timeStamp, msg); attributeName = name; attributeType = type; oldValue = oldVal; *************** public class AttributeChangeNotification *** 162,166 **** } } - - --- 162,164 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/AttributeChangeNotificationFilter.java gcc-4.6.0/libjava/classpath/javax/management/AttributeChangeNotificationFilter.java *** gcc-4.5.2/libjava/classpath/javax/management/AttributeChangeNotificationFilter.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/AttributeChangeNotificationFilter.java Tue Jan 11 19:46:05 2011 *************** public class AttributeChangeNotification *** 100,106 **** if (!enabledAttributes.contains(name)) enabledAttributes.add(name); } ! /** * Returns the list of enabled attributes for this * filter. --- 100,106 ---- if (!enabledAttributes.contains(name)) enabledAttributes.add(name); } ! /** * Returns the list of enabled attributes for this * filter. *************** public class AttributeChangeNotification *** 127,135 **** { if (notif instanceof AttributeChangeNotification) { ! AttributeChangeNotification n = ! (AttributeChangeNotification) notif; ! return enabledAttributes.contains(n.getAttributeName()); } return false; } --- 127,135 ---- { if (notif instanceof AttributeChangeNotification) { ! AttributeChangeNotification n = ! (AttributeChangeNotification) notif; ! return enabledAttributes.contains(n.getAttributeName()); } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/AttributeList.java gcc-4.6.0/libjava/classpath/javax/management/AttributeList.java *** gcc-4.5.2/libjava/classpath/javax/management/AttributeList.java Thu Feb 15 16:40:44 2007 --- gcc-4.6.0/libjava/classpath/javax/management/AttributeList.java Tue Jan 11 19:46:05 2011 *************** public class AttributeList *** 119,125 **** * the @link{IndexOutOfBoundsException} from the underlying * array list. *

                            ! * * @param index the index at which to place the new attribute. * @param attribute the new attribute to add. * @throws RuntimeOperationsException if index < 0 --- 119,125 ---- * the @link{IndexOutOfBoundsException} from the underlying * array list. *

                            ! * * @param index the index at which to place the new attribute. * @param attribute the new attribute to add. * @throws RuntimeOperationsException if index < 0 *************** public class AttributeList *** 130,140 **** { try { ! super.add(index, attribute); } catch (IndexOutOfBoundsException e) { ! throw new RuntimeOperationsException(e, "Invalid index."); } } --- 130,140 ---- { try { ! super.add(index, attribute); } catch (IndexOutOfBoundsException e) { ! throw new RuntimeOperationsException(e, "Invalid index."); } } *************** public class AttributeList *** 171,177 **** * the @link{IndexOutOfBoundsException} from the underlying * array list. *

                            ! * * @param index the index at which to place the new attribute. * @param list the list of attributes to add. * @return true if the list changed. --- 171,177 ---- * the @link{IndexOutOfBoundsException} from the underlying * array list. *

                            ! * * @param index the index at which to place the new attribute. * @param list the list of attributes to add. * @return true if the list changed. *************** public class AttributeList *** 183,193 **** { try { ! return super.addAll(index, list); } catch (IndexOutOfBoundsException e) { ! throw new RuntimeOperationsException(e, "Invalid index."); } } --- 183,193 ---- { try { ! return super.addAll(index, list); } catch (IndexOutOfBoundsException e) { ! throw new RuntimeOperationsException(e, "Invalid index."); } } *************** public class AttributeList *** 209,220 **** { try { ! super.set(index, attribute); } catch (IndexOutOfBoundsException e) { ! throw new RuntimeOperationsException(e, "Invalid index."); } } ! } --- 209,220 ---- { try { ! super.set(index, attribute); } catch (IndexOutOfBoundsException e) { ! throw new RuntimeOperationsException(e, "Invalid index."); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/AttributeNotFoundException.java gcc-4.6.0/libjava/classpath/javax/management/AttributeNotFoundException.java *** gcc-4.5.2/libjava/classpath/javax/management/AttributeNotFoundException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/AttributeNotFoundException.java Tue Jan 11 19:46:05 2011 *************** public class AttributeNotFoundException *** 68,71 **** } } - --- 68,70 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/AttributeValueExp.java gcc-4.6.0/libjava/classpath/javax/management/AttributeValueExp.java *** gcc-4.5.2/libjava/classpath/javax/management/AttributeValueExp.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/AttributeValueExp.java Tue Jan 11 19:46:05 2011 *************** public class AttributeValueExp *** 101,107 **** */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { Object val = getAttribute(name); if (val == null || !(val instanceof String)) --- 101,107 ---- */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { Object val = getAttribute(name); if (val == null || !(val instanceof String)) *************** public class AttributeValueExp *** 123,149 **** { try { ! return QueryEval.getMBeanServer().getAttribute(name, attr); } catch (NullPointerException e) { ! return null; } catch (MBeanException e) { ! return null; } catch (AttributeNotFoundException e) { ! return null; } catch (InstanceNotFoundException e) { ! return null; } catch (ReflectionException e) { ! return null; } } --- 123,149 ---- { try { ! return QueryEval.getMBeanServer().getAttribute(name, attr); } catch (NullPointerException e) { ! return null; } catch (MBeanException e) { ! return null; } catch (AttributeNotFoundException e) { ! return null; } catch (InstanceNotFoundException e) { ! return null; } catch (ReflectionException e) { ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/BadAttributeValueExpException.java gcc-4.6.0/libjava/classpath/javax/management/BadAttributeValueExpException.java *** gcc-4.5.2/libjava/classpath/javax/management/BadAttributeValueExpException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/BadAttributeValueExpException.java Tue Jan 11 19:46:05 2011 *************** public class BadAttributeValueExpExcepti *** 83,91 **** public String toString() { return getClass().getName() ! + "[val=" + val + "]"; } } - --- 83,90 ---- public String toString() { return getClass().getName() ! + "[val=" + val + "]"; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/BadBinaryOpValueExpException.java gcc-4.6.0/libjava/classpath/javax/management/BadBinaryOpValueExpException.java *** gcc-4.5.2/libjava/classpath/javax/management/BadBinaryOpValueExpException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/BadBinaryOpValueExpException.java Tue Jan 11 19:46:05 2011 *************** public class BadBinaryOpValueExpExceptio *** 94,102 **** public String toString() { return getClass().getName() ! + "[exp=" + exp + "]"; } } - --- 94,101 ---- public String toString() { return getClass().getName() ! + "[exp=" + exp + "]"; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/BadStringOperationException.java gcc-4.6.0/libjava/classpath/javax/management/BadStringOperationException.java *** gcc-4.5.2/libjava/classpath/javax/management/BadStringOperationException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/BadStringOperationException.java Tue Jan 11 19:46:05 2011 *************** public class BadStringOperationException *** 84,92 **** public String toString() { return getClass().getName() ! + "[op=" + op + "]"; } } - --- 84,91 ---- public String toString() { return getClass().getName() ! + "[op=" + op + "]"; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/DefaultLoaderRepository.java gcc-4.6.0/libjava/classpath/javax/management/DefaultLoaderRepository.java *** gcc-4.5.2/libjava/classpath/javax/management/DefaultLoaderRepository.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/DefaultLoaderRepository.java Tue Jan 11 19:46:05 2011 *************** import java.util.List; *** 85,102 **** List servers = MBeanServerFactory.findMBeanServer(null); for (MBeanServer server : servers) { ! try ! { ! return server.getClassLoaderRepository().loadClass(name); ! } ! catch (ClassNotFoundException e) ! { ! /* Ignored; try the next server. */ ! } } throw new ClassNotFoundException("The class loaders of all registered " + ! "servers failed to load the class, " + ! name); } /** --- 85,102 ---- List servers = MBeanServerFactory.findMBeanServer(null); for (MBeanServer server : servers) { ! try ! { ! return server.getClassLoaderRepository().loadClass(name); ! } ! catch (ClassNotFoundException e) ! { ! /* Ignored; try the next server. */ ! } } throw new ClassNotFoundException("The class loaders of all registered " + ! "servers failed to load the class, " + ! name); } /** *************** import java.util.List; *** 134,152 **** List servers = MBeanServerFactory.findMBeanServer(null); for (MBeanServer server : servers) { ! try ! { ! return server.getClassLoaderRepository().loadClassWithout(exclude, ! name); ! } ! catch (ClassNotFoundException e) ! { ! /* Ignored; try the next server. */ ! } } throw new ClassNotFoundException("The class loaders of all registered " + ! "servers failed to load the class, " + ! name); } } --- 134,152 ---- List servers = MBeanServerFactory.findMBeanServer(null); for (MBeanServer server : servers) { ! try ! { ! return server.getClassLoaderRepository().loadClassWithout(exclude, ! name); ! } ! catch (ClassNotFoundException e) ! { ! /* Ignored; try the next server. */ ! } } throw new ClassNotFoundException("The class loaders of all registered " + ! "servers failed to load the class, " + ! name); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/Descriptor.java gcc-4.6.0/libjava/classpath/javax/management/Descriptor.java *** gcc-4.5.2/libjava/classpath/javax/management/Descriptor.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/Descriptor.java Tue Jan 11 19:46:05 2011 *************** public interface Descriptor *** 197,203 **** * Returns a clone of this descriptor, which can then be modified * independently of this descriptor. If the descriptor is * immutable, it is sufficient to return this instance. ! * * @return a clone of this descriptor. * @throws RuntimeOperationsException if creation of the new * descriptor fails for any --- 197,203 ---- * Returns a clone of this descriptor, which can then be modified * independently of this descriptor. If the descriptor is * immutable, it is sufficient to return this instance. ! * * @return a clone of this descriptor. * @throws RuntimeOperationsException if creation of the new * descriptor fails for any *************** public interface Descriptor *** 224,230 **** * must return true. *
                          • Otherwise, {@link Object#equals(Object)} must return true.
                          • * ! * * @param obj the object to compare according to the above. * @return true if the above holds. * @see Object#equals(Object) --- 224,230 ---- * must return true. *
                          • Otherwise, {@link Object#equals(Object)} must return true.
                          • * ! * * @param obj the object to compare according to the above. * @return true if the above holds. * @see Object#equals(Object) *************** public interface Descriptor *** 265,271 **** /** * Returns the value of the specified field, or null * if no value is present for the given field name. ! * * @param name the field name. * @return the value of the field, or null if there * is no value present. --- 265,271 ---- /** * Returns the value of the specified field, or null * if no value is present for the given field name. ! * * @param name the field name. * @return the value of the field, or null if there * is no value present. *************** public interface Descriptor *** 283,289 **** * being returned if the field is not present. This applies * even if the given field name is null or * the empty string. ! * * @param names an array of field names whose values should * be returned. * @return the values of the specified fields. --- 283,289 ---- * being returned if the field is not present. This applies * even if the given field name is null or * the empty string. ! * * @param names an array of field names whose values should * be returned. * @return the values of the specified fields. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/DynamicMBean.java gcc-4.6.0/libjava/classpath/javax/management/DynamicMBean.java *** gcc-4.5.2/libjava/classpath/javax/management/DynamicMBean.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/DynamicMBean.java Tue Jan 11 19:46:05 2011 *************** package javax.management; *** 49,55 **** */ public interface DynamicMBean { ! /** * Obtains the value of the specified attribute of the * management bean. The management bean should perform --- 49,55 ---- */ public interface DynamicMBean { ! /** * Obtains the value of the specified attribute of the * management bean. The management bean should perform *************** public interface DynamicMBean *** 73,79 **** */ Object getAttribute(String name) throws AttributeNotFoundException, MBeanException, ! ReflectionException; /** * Obtains the values of each of the specified attributes --- 73,79 ---- */ Object getAttribute(String name) throws AttributeNotFoundException, MBeanException, ! ReflectionException; /** * Obtains the values of each of the specified attributes *************** public interface DynamicMBean *** 103,109 **** * corresponding to each parameter. The class loader used to * load these classes is the same as that used for loading the * management bean itself. ! * * @param name the name of the action to invoke. * @param params the parameters used to call the action. * @param signature the signature of the action. --- 103,109 ---- * corresponding to each parameter. The class loader used to * load these classes is the same as that used for loading the * management bean itself. ! * * @param name the name of the action to invoke. * @param params the parameters used to call the action. * @param signature the signature of the action. *************** public interface DynamicMBean *** 145,151 **** */ void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, ! MBeanException, ReflectionException; /** * Sets the value of each of the specified attributes --- 145,151 ---- */ void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, ! MBeanException, ReflectionException; /** * Sets the value of each of the specified attributes diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/InstanceAlreadyExistsException.java gcc-4.6.0/libjava/classpath/javax/management/InstanceAlreadyExistsException.java *** gcc-4.5.2/libjava/classpath/javax/management/InstanceAlreadyExistsException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/InstanceAlreadyExistsException.java Tue Jan 11 19:46:05 2011 *************** public class InstanceAlreadyExistsExcept *** 73,76 **** } } - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/InstanceNotFoundException.java gcc-4.6.0/libjava/classpath/javax/management/InstanceNotFoundException.java *** gcc-4.5.2/libjava/classpath/javax/management/InstanceNotFoundException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/InstanceNotFoundException.java Tue Jan 11 19:46:05 2011 *************** public class InstanceNotFoundException *** 73,76 **** } } - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/IntrospectionException.java gcc-4.6.0/libjava/classpath/javax/management/IntrospectionException.java *** gcc-4.5.2/libjava/classpath/javax/management/IntrospectionException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/IntrospectionException.java Tue Jan 11 19:46:05 2011 *************** public class IntrospectionException *** 75,78 **** } } - --- 75,77 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/InvalidApplicationException.java gcc-4.6.0/libjava/classpath/javax/management/InvalidApplicationException.java *** gcc-4.5.2/libjava/classpath/javax/management/InvalidApplicationException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/InvalidApplicationException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidApplicationException *** 84,92 **** public String toString() { return getClass().getName() ! + "[val=" + val + "]"; } } - --- 84,91 ---- public String toString() { return getClass().getName() ! + "[val=" + val + "]"; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/InvalidAttributeValueException.java gcc-4.6.0/libjava/classpath/javax/management/InvalidAttributeValueException.java *** gcc-4.5.2/libjava/classpath/javax/management/InvalidAttributeValueException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/InvalidAttributeValueException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidAttributeValueExcept *** 68,71 **** } } - --- 68,70 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/JMException.java gcc-4.6.0/libjava/classpath/javax/management/JMException.java *** gcc-4.5.2/libjava/classpath/javax/management/JMException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/JMException.java Tue Jan 11 19:46:05 2011 *************** public class JMException *** 68,71 **** } } - --- 68,70 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/JMRuntimeException.java gcc-4.6.0/libjava/classpath/javax/management/JMRuntimeException.java *** gcc-4.5.2/libjava/classpath/javax/management/JMRuntimeException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/JMRuntimeException.java Tue Jan 11 19:46:05 2011 *************** public class JMRuntimeException *** 68,71 **** } } - --- 68,70 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/JMX.java gcc-4.6.0/libjava/classpath/javax/management/JMX.java *** gcc-4.5.2/libjava/classpath/javax/management/JMX.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/JMX.java Tue Jan 11 19:46:05 2011 *************** public class JMX *** 112,118 **** *
                          • Its name ends in {@code "MXBean"} and it does not * have an {@link MXBean} annotation.
                          • * ! * * @param iface the interface class that is to be checked * for {@link MXBean} status. * @return true if the interface represents an {@link MXBean}. --- 112,118 ---- *
                          • Its name ends in {@code "MXBean"} and it does not * have an {@link MXBean} annotation.
                          • * ! * * @param iface the interface class that is to be checked * for {@link MXBean} status. * @return true if the interface represents an {@link MXBean}. *************** public class JMX *** 181,187 **** * boolean) */ public static T newMBeanProxy(MBeanServerConnection conn, ! ObjectName name, Class iface) { return newMBeanProxy(conn, name, iface, false); } --- 181,187 ---- * boolean) */ public static T newMBeanProxy(MBeanServerConnection conn, ! ObjectName name, Class iface) { return newMBeanProxy(conn, name, iface, false); } *************** public class JMX *** 210,220 **** * @see #newMBeanProxy(MBeanServerConnection, ObjectName, Class) */ public static T newMBeanProxy(MBeanServerConnection conn, ! ObjectName name, Class iface, ! boolean bcast) { return MBeanServerInvocationHandler.newProxyInstance(conn, name, ! iface, bcast); } /** --- 210,220 ---- * @see #newMBeanProxy(MBeanServerConnection, ObjectName, Class) */ public static T newMBeanProxy(MBeanServerConnection conn, ! ObjectName name, Class iface, ! boolean bcast) { return MBeanServerInvocationHandler.newProxyInstance(conn, name, ! iface, bcast); } /** *************** public class JMX *** 296,302 **** * boolean) */ public static T newMXBeanProxy(MBeanServerConnection conn, ! ObjectName name, Class iface) { return newMXBeanProxy(conn, name, iface, false); } --- 296,302 ---- * boolean) */ public static T newMXBeanProxy(MBeanServerConnection conn, ! ObjectName name, Class iface) { return newMXBeanProxy(conn, name, iface, false); } *************** public class JMX *** 327,344 **** // Suppress warnings as we know an instance of T will be returned. @SuppressWarnings("unchecked") public static T newMXBeanProxy(MBeanServerConnection conn, ! ObjectName name, Class iface, ! boolean bcast) { if (bcast) return (T) Proxy.newProxyInstance(iface.getClassLoader(), ! new Class[] { iface, ! NotificationEmitter.class }, ! new MBeanServerInvocationHandler(conn,name,true)); else return (T) Proxy.newProxyInstance(iface.getClassLoader(), ! new Class[] { iface }, ! new MBeanServerInvocationHandler(conn,name,true)); } } --- 327,344 ---- // Suppress warnings as we know an instance of T will be returned. @SuppressWarnings("unchecked") public static T newMXBeanProxy(MBeanServerConnection conn, ! ObjectName name, Class iface, ! boolean bcast) { if (bcast) return (T) Proxy.newProxyInstance(iface.getClassLoader(), ! new Class[] { iface, ! NotificationEmitter.class }, ! new MBeanServerInvocationHandler(conn,name,true)); else return (T) Proxy.newProxyInstance(iface.getClassLoader(), ! new Class[] { iface }, ! new MBeanServerInvocationHandler(conn,name,true)); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/ListenerNotFoundException.java gcc-4.6.0/libjava/classpath/javax/management/ListenerNotFoundException.java *** gcc-4.5.2/libjava/classpath/javax/management/ListenerNotFoundException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/ListenerNotFoundException.java Tue Jan 11 19:46:05 2011 *************** public class ListenerNotFoundException *** 72,75 **** } } - --- 72,74 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanAttributeInfo.java gcc-4.6.0/libjava/classpath/javax/management/MBeanAttributeInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanAttributeInfo.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanAttributeInfo.java Tue Jan 11 19:46:05 2011 *************** public class MBeanAttributeInfo *** 105,137 **** * @throws IntrospectionException if both the accessor and mutator method * are null. */ ! public MBeanAttributeInfo(String name, String desc, ! Method getter, Method setter) throws IntrospectionException { super(name, desc); if (getter == null && setter == null) throw new IntrospectionException("Both the getter and setter methods can " + ! "not be null."); if (getter == null) { ! Type t = setter.getGenericParameterTypes()[0]; ! if (t instanceof Class) ! attributeType = ((Class) t).getName(); ! else ! attributeType = t.toString(); ! isRead = false; ! is = false; } else { ! Type t = getter.getGenericReturnType(); ! if (t instanceof Class) ! attributeType = ((Class) t).getName(); ! else ! attributeType = t.toString(); ! isRead = true; ! is = getter.getName().startsWith("is"); } if (setter != null) isWrite = true; --- 105,137 ---- * @throws IntrospectionException if both the accessor and mutator method * are null. */ ! public MBeanAttributeInfo(String name, String desc, ! Method getter, Method setter) throws IntrospectionException { super(name, desc); if (getter == null && setter == null) throw new IntrospectionException("Both the getter and setter methods can " + ! "not be null."); if (getter == null) { ! Type t = setter.getGenericParameterTypes()[0]; ! if (t instanceof Class) ! attributeType = ((Class) t).getName(); ! else ! attributeType = t.toString(); ! isRead = false; ! is = false; } else { ! Type t = getter.getGenericReturnType(); ! if (t instanceof Class) ! attributeType = ((Class) t).getName(); ! else ! attributeType = t.toString(); ! isRead = true; ! is = getter.getName().startsWith("is"); } if (setter != null) isWrite = true; *************** public class MBeanAttributeInfo *** 140,146 **** /** * Constructs a new {@link MBeanAttributeInfo} using the specified * name, description and type with the given settings for the accessor ! * and mutator methods. * * @param name the name of the attribute. * @param type the type of the attribute, in the form of its class name. --- 140,146 ---- /** * Constructs a new {@link MBeanAttributeInfo} using the specified * name, description and type with the given settings for the accessor ! * and mutator methods. * * @param name the name of the attribute. * @param type the type of the attribute, in the form of its class name. *************** public class MBeanAttributeInfo *** 152,164 **** * and unwritable. */ public MBeanAttributeInfo(String name, String type, String desc, ! boolean isReadable, boolean isWritable, ! boolean isIs) { super(name, desc); if (!isReadable && !isWritable) throw new IllegalArgumentException("The attribute can not be both " + ! "unreadable and unwritable."); attributeType = type; isRead = isReadable; isWrite = isWritable; --- 152,164 ---- * and unwritable. */ public MBeanAttributeInfo(String name, String type, String desc, ! boolean isReadable, boolean isWritable, ! boolean isIs) { super(name, desc); if (!isReadable && !isWritable) throw new IllegalArgumentException("The attribute can not be both " + ! "unreadable and unwritable."); attributeType = type; isRead = isReadable; isWrite = isWritable; *************** public class MBeanAttributeInfo *** 179,191 **** { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } --- 179,191 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } *************** public class MBeanAttributeInfo *** 200,206 **** * * @param obj the object to compare. * @return true if the object is a {@link MBeanAttributeInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()), * attributeType.equals(object.getType()), --- 200,206 ---- * * @param obj the object to compare. * @return true if the object is a {@link MBeanAttributeInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()), * attributeType.equals(object.getType()), *************** public class MBeanAttributeInfo *** 216,224 **** return false; MBeanAttributeInfo o = (MBeanAttributeInfo) obj; return (attributeType.equals(o.getType()) && ! isRead == o.isReadable() && ! isWrite == o.isWritable() && ! is == o.isIs()); } /** --- 216,224 ---- return false; MBeanAttributeInfo o = (MBeanAttributeInfo) obj; return (attributeType.equals(o.getType()) && ! isRead == o.isReadable() && ! isWrite == o.isWritable() && ! is == o.isIs()); } /** *************** public class MBeanAttributeInfo *** 284,291 **** * Returns a textual representation of this instance. This * is constructed using the class name * (javax.management.MBeanAttributeInfo), ! * the name, description and type of the attribute and the ! * current settings of the {@link #isReadable()}, * {@link #isWritable()} and {@link #isIs()} properties. *

                            *

                            --- 284,291 ---- * Returns a textual representation of this instance. This * is constructed using the class name * (javax.management.MBeanAttributeInfo), ! * the name, description and type of the attribute and the ! * current settings of the {@link #isReadable()}, * {@link #isWritable()} and {@link #isIs()} properties. *

                            *

                            *************** public class MBeanAttributeInfo *** 301,313 **** { if (string == null) { ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",type=" + attributeType ! + ",isReadable=" + (isRead ? "yes" : "no") ! + ",isWritable=" + (isWrite ? "yes" : "no") ! + ",isIs=" + (is ? "yes" : "no") ! + "]"; } return string; } --- 301,313 ---- { if (string == null) { ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",type=" + attributeType ! + ",isReadable=" + (isRead ? "yes" : "no") ! + ",isWritable=" + (isWrite ? "yes" : "no") ! + ",isIs=" + (is ? "yes" : "no") ! + "]"; } return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanConstructorInfo.java gcc-4.6.0/libjava/classpath/javax/management/MBeanConstructorInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanConstructorInfo.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanConstructorInfo.java Tue Jan 11 19:46:05 2011 *************** public class MBeanConstructorInfo *** 84,96 **** signature = new MBeanParameterInfo[paramTypes.length]; for (int a = 0; a < paramTypes.length; ++a) { ! Type t = paramTypes[a]; ! if (t instanceof Class) ! signature[a] = new MBeanParameterInfo(null, ! ((Class) t).getName(), ! null); ! else ! signature[a] = new MBeanParameterInfo(null, t.toString(), null); } } --- 84,96 ---- signature = new MBeanParameterInfo[paramTypes.length]; for (int a = 0; a < paramTypes.length; ++a) { ! Type t = paramTypes[a]; ! if (t instanceof Class) ! signature[a] = new MBeanParameterInfo(null, ! ((Class) t).getName(), ! null); ! else ! signature[a] = new MBeanParameterInfo(null, t.toString(), null); } } *************** public class MBeanConstructorInfo *** 108,122 **** * each parameter. */ public MBeanConstructorInfo(String name, String desc, ! MBeanParameterInfo[] sig) { super(name, desc); if (sig == null) signature = new MBeanParameterInfo[0]; else { ! signature = new MBeanParameterInfo[sig.length]; ! System.arraycopy(sig, 0, signature, 0, sig.length); } } --- 108,122 ---- * each parameter. */ public MBeanConstructorInfo(String name, String desc, ! MBeanParameterInfo[] sig) { super(name, desc); if (sig == null) signature = new MBeanParameterInfo[0]; else { ! signature = new MBeanParameterInfo[sig.length]; ! System.arraycopy(sig, 0, signature, 0, sig.length); } } *************** public class MBeanConstructorInfo *** 134,146 **** { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } --- 134,146 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } *************** public class MBeanConstructorInfo *** 155,161 **** * * @param obj the object to compare. * @return true if the object is a {@link MBeanConstructorInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()) * and the corresponding elements of the signature arrays are --- 155,161 ---- * * @param obj the object to compare. * @return true if the object is a {@link MBeanConstructorInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()) * and the corresponding elements of the signature arrays are *************** public class MBeanConstructorInfo *** 171,184 **** MBeanParameterInfo[] sig = o.getSignature(); for (int a = 0; a < signature.length; ++a) { ! if (a == sig.length) ! return true; ! if (!(signature[a].equals(sig[a]))) ! return false; } return true; } ! /** * Returns the constructor's signature, in the form of * information on each parameter. Each parameter is --- 171,184 ---- MBeanParameterInfo[] sig = o.getSignature(); for (int a = 0; a < signature.length; ++a) { ! if (a == sig.length) ! return true; ! if (!(signature[a].equals(sig[a]))) ! return false; } return true; } ! /** * Returns the constructor's signature, in the form of * information on each parameter. Each parameter is *************** public class MBeanConstructorInfo *** 214,220 **** * Returns a textual representation of this instance. This * is constructed using the class name * (javax.management.MBeanConstructorInfo), ! * the name and description of the constructor and the * contents of the array of parameters. *

                            *

                            --- 214,220 ---- * Returns a textual representation of this instance. This * is constructed using the class name * (javax.management.MBeanConstructorInfo), ! * the name and description of the constructor and the * contents of the array of parameters. *

                            *

                            *************** public class MBeanConstructorInfo *** 230,239 **** { if (string == null) { ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",signature=" + Arrays.toString(signature) ! + "]"; } return string; } --- 230,239 ---- { if (string == null) { ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",signature=" + Arrays.toString(signature) ! + "]"; } return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanException.java gcc-4.6.0/libjava/classpath/javax/management/MBeanException.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanException.java Tue Jan 11 19:46:05 2011 *************** public class MBeanException *** 115,118 **** } } - --- 115,117 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanFeatureInfo.java gcc-4.6.0/libjava/classpath/javax/management/MBeanFeatureInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanFeatureInfo.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanFeatureInfo.java Tue Jan 11 19:46:05 2011 *************** public class MBeanFeatureInfo *** 106,112 **** * * @param obj the object to compare. * @return true if the object is a {@link MBeanFeatureInfo} ! * instance, * name.equals(object.getName()) and * description.equals(object.getDescription. */ --- 106,112 ---- * * @param obj the object to compare. * @return true if the object is a {@link MBeanFeatureInfo} ! * instance, * name.equals(object.getName()) and * description.equals(object.getDescription. */ *************** public class MBeanFeatureInfo *** 114,126 **** { if (obj instanceof MBeanFeatureInfo) { ! MBeanFeatureInfo o = (MBeanFeatureInfo) obj; ! return ((name == null ? ! o.getName() == null : ! name.equals(o.getName())) && ! (description == null ? ! o.getDescription() == null : ! description.equals(o.getDescription()))); } else return false; --- 114,126 ---- { if (obj instanceof MBeanFeatureInfo) { ! MBeanFeatureInfo o = (MBeanFeatureInfo) obj; ! return ((name == null ? ! o.getName() == null : ! name.equals(o.getName())) && ! (description == null ? ! o.getDescription() == null : ! description.equals(o.getDescription()))); } else return false; *************** public class MBeanFeatureInfo *** 179,187 **** { if (string == null) string = getClass().getName() ! + "[name=" + name ! + ",desc=" + description ! + "]"; return string; } --- 179,187 ---- { if (string == null) string = getClass().getName() ! + "[name=" + name ! + ",desc=" + description ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanInfo.java gcc-4.6.0/libjava/classpath/javax/management/MBeanInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanInfo.java Fri Feb 16 19:19:11 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanInfo.java Tue Jan 11 19:46:05 2011 *************** import java.util.Arrays; *** 78,84 **** * instance of this class, as part of implementing the * {@link DynamicMBean#getMBeanInfo()} method of {@link DynamicMBean}. *

                            ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 78,84 ---- * instance of this class, as part of implementing the * {@link DynamicMBean#getMBeanInfo()} method of {@link DynamicMBean}. *

                            ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public class MBeanInfo *** 93,99 **** /** * A description of the bean. ! * * @serial The bean's description. */ private String description; --- 93,99 ---- /** * A description of the bean. ! * * @serial The bean's description. */ private String description; *************** public class MBeanInfo *** 155,162 **** * or null. */ public MBeanInfo(String name, String desc, MBeanAttributeInfo[] attribs, ! MBeanConstructorInfo[] cons, MBeanOperationInfo[] ops, ! MBeanNotificationInfo[] notifs) { className = name; description = desc; --- 155,162 ---- * or null. */ public MBeanInfo(String name, String desc, MBeanAttributeInfo[] attribs, ! MBeanConstructorInfo[] cons, MBeanOperationInfo[] ops, ! MBeanNotificationInfo[] notifs) { className = name; description = desc; *************** public class MBeanInfo *** 199,209 **** MBeanInfo clone = null; try { ! clone = (MBeanInfo) super.clone(); } catch (CloneNotSupportedException e) { ! /* This won't happen as we implement Cloneable */ } return clone; } --- 199,209 ---- MBeanInfo clone = null; try { ! clone = (MBeanInfo) super.clone(); } catch (CloneNotSupportedException e) { ! /* This won't happen as we implement Cloneable */ } return clone; } *************** public class MBeanInfo *** 218,224 **** * * @param obj the object to compare. * @return true if the object is a {@link MBeanInfo} ! * instance, * className.equals(object.getClassName()), * description.equals(object.getDescription()) * and the corresponding elements of the arrays are --- 218,224 ---- * * @param obj the object to compare. * @return true if the object is a {@link MBeanInfo} ! * instance, * className.equals(object.getClassName()), * description.equals(object.getDescription()) * and the corresponding elements of the arrays are *************** public class MBeanInfo *** 234,270 **** MBeanAttributeInfo[] attr = o.getAttributes(); for (int a = 0; a < attributes.length; ++a) { ! if (a == attr.length) ! return true; ! if (!(attributes[a].equals(attr[a]))) ! return false; } MBeanConstructorInfo[] cons = o.getConstructors(); for (int a = 0; a < constructors.length; ++a) { ! if (a == cons.length) ! return true; ! if (!(constructors[a].equals(cons[a]))) ! return false; } MBeanOperationInfo[] ops = o.getOperations(); for (int a = 0; a < operations.length; ++a) { ! if (a == ops.length) ! return true; ! if (!(operations[a].equals(ops[a]))) ! return false; } MBeanNotificationInfo[] notifs = o.getNotifications(); for (int a = 0; a < notifications.length; ++a) { ! if (a == notifs.length) ! return true; ! if (!(notifications[a].equals(notifs[a]))) ! return false; } return (className.equals(o.getClassName()) && ! description.equals(o.getDescription())); } /** --- 234,270 ---- MBeanAttributeInfo[] attr = o.getAttributes(); for (int a = 0; a < attributes.length; ++a) { ! if (a == attr.length) ! return true; ! if (!(attributes[a].equals(attr[a]))) ! return false; } MBeanConstructorInfo[] cons = o.getConstructors(); for (int a = 0; a < constructors.length; ++a) { ! if (a == cons.length) ! return true; ! if (!(constructors[a].equals(cons[a]))) ! return false; } MBeanOperationInfo[] ops = o.getOperations(); for (int a = 0; a < operations.length; ++a) { ! if (a == ops.length) ! return true; ! if (!(operations[a].equals(ops[a]))) ! return false; } MBeanNotificationInfo[] notifs = o.getNotifications(); for (int a = 0; a < notifications.length; ++a) { ! if (a == notifs.length) ! return true; ! if (!(notifications[a].equals(notifs[a]))) ! return false; } return (className.equals(o.getClassName()) && ! description.equals(o.getDescription())); } /** *************** public class MBeanInfo *** 389,401 **** { if (string == null) string = getClass().getName() ! + "[name=" + className ! + ",desc=" + description ! + ",attributes=" + Arrays.toString(attributes) ! + ",constructors=" + Arrays.toString(constructors) ! + ",operations=" + Arrays.toString(operations) ! + ",notifications=" + Arrays.toString(notifications) ! + "]"; return string; } --- 389,401 ---- { if (string == null) string = getClass().getName() ! + "[name=" + className ! + ",desc=" + description ! + ",attributes=" + Arrays.toString(attributes) ! + ",constructors=" + Arrays.toString(constructors) ! + ",operations=" + Arrays.toString(operations) ! + ",notifications=" + Arrays.toString(notifications) ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanNotificationInfo.java gcc-4.6.0/libjava/classpath/javax/management/MBeanNotificationInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanNotificationInfo.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanNotificationInfo.java Tue Jan 11 19:46:05 2011 *************** public class MBeanNotificationInfo *** 101,107 **** * @throws IllegalArgumentException for some reason... */ public MBeanNotificationInfo(String[] types, String name, ! String description) { super(name, description); this.types = types; --- 101,107 ---- * @throws IllegalArgumentException for some reason... */ public MBeanNotificationInfo(String[] types, String name, ! String description) { super(name, description); this.types = types; *************** public class MBeanNotificationInfo *** 121,133 **** { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } --- 121,133 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } *************** public class MBeanNotificationInfo *** 142,148 **** * * @param obj the object to compare. * @return true if the object is a {@link MBeanNotificationInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()) * and the corresponding elements of the type arrays are --- 142,148 ---- * * @param obj the object to compare. * @return true if the object is a {@link MBeanNotificationInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()) * and the corresponding elements of the type arrays are *************** public class MBeanNotificationInfo *** 152,169 **** { if (obj instanceof MBeanNotificationInfo) { ! if (!(super.equals(obj))) ! return false; ! MBeanNotificationInfo o = (MBeanNotificationInfo) obj; ! String[] oTypes = o.getNotifTypes(); ! for (int a = 0; a < types.length; ++a) ! { ! if (a == oTypes.length) ! return true; ! if (!(types[a].equals(oTypes[a]))) ! return false; ! } ! return true; } else return false; --- 152,169 ---- { if (obj instanceof MBeanNotificationInfo) { ! if (!(super.equals(obj))) ! return false; ! MBeanNotificationInfo o = (MBeanNotificationInfo) obj; ! String[] oTypes = o.getNotifTypes(); ! for (int a = 0; a < types.length; ++a) ! { ! if (a == oTypes.length) ! return true; ! if (!(types[a].equals(oTypes[a]))) ! return false; ! } ! return true; } else return false; *************** public class MBeanNotificationInfo *** 200,206 **** * Returns a textual representation of this instance. This * is constructed using the class name * (javax.management.MBeanNotificationInfo), ! * the name and description of the notification and the * contents of the array of types. *

                            *

                            --- 200,206 ---- * Returns a textual representation of this instance. This * is constructed using the class name * (javax.management.MBeanNotificationInfo), ! * the name and description of the notification and the * contents of the array of types. *

                            *

                            *************** public class MBeanNotificationInfo *** 216,225 **** { if (string == null) { ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",types=" + Arrays.toString(types) ! + "]"; } return string; } --- 216,225 ---- { if (string == null) { ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",types=" + Arrays.toString(types) ! + "]"; } return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanOperationInfo.java gcc-4.6.0/libjava/classpath/javax/management/MBeanOperationInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanOperationInfo.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanOperationInfo.java Tue Jan 11 19:46:05 2011 *************** public class MBeanOperationInfo *** 118,130 **** signature = new MBeanParameterInfo[paramTypes.length]; for (int a = 0; a < paramTypes.length; ++a) { ! Type t = paramTypes[a]; ! if (t instanceof Class) ! signature[a] = new MBeanParameterInfo(null, ! ((Class) t).getName(), ! null); ! else ! signature[a] = new MBeanParameterInfo(null, t.toString(), null); } Type retType = method.getGenericReturnType(); if (retType instanceof Class) --- 118,130 ---- signature = new MBeanParameterInfo[paramTypes.length]; for (int a = 0; a < paramTypes.length; ++a) { ! Type t = paramTypes[a]; ! if (t instanceof Class) ! signature[a] = new MBeanParameterInfo(null, ! ((Class) t).getName(), ! null); ! else ! signature[a] = new MBeanParameterInfo(null, t.toString(), null); } Type retType = method.getGenericReturnType(); if (retType instanceof Class) *************** public class MBeanOperationInfo *** 133,149 **** type = retType.toString(); if (method.getReturnType() == Void.TYPE) { ! if (paramTypes.length == 0) ! impact = UNKNOWN; ! else ! impact = ACTION; } else { ! if (paramTypes.length == 0) ! impact = INFO; ! else ! impact = ACTION_INFO; } } --- 133,149 ---- type = retType.toString(); if (method.getReturnType() == Void.TYPE) { ! if (paramTypes.length == 0) ! impact = UNKNOWN; ! else ! impact = ACTION; } else { ! if (paramTypes.length == 0) ! impact = INFO; ! else ! impact = ACTION_INFO; } } *************** public class MBeanOperationInfo *** 163,178 **** * @param impact the impact of performing the operation. */ public MBeanOperationInfo(String name, String desc, ! MBeanParameterInfo[] sig, String type, ! int impact) { super(name, desc); if (sig == null) signature = new MBeanParameterInfo[0]; else { ! signature = new MBeanParameterInfo[sig.length]; ! System.arraycopy(sig, 0, signature, 0, sig.length); } this.type = type; this.impact = impact; --- 163,178 ---- * @param impact the impact of performing the operation. */ public MBeanOperationInfo(String name, String desc, ! MBeanParameterInfo[] sig, String type, ! int impact) { super(name, desc); if (sig == null) signature = new MBeanParameterInfo[0]; else { ! signature = new MBeanParameterInfo[sig.length]; ! System.arraycopy(sig, 0, signature, 0, sig.length); } this.type = type; this.impact = impact; *************** public class MBeanOperationInfo *** 192,204 **** { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } --- 192,204 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } *************** public class MBeanOperationInfo *** 214,220 **** * * @param obj the object to compare. * @return true if the object is a {@link MBeanOperationInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()), * type.equals(object.getReturnType()), --- 214,220 ---- * * @param obj the object to compare. * @return true if the object is a {@link MBeanOperationInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()), * type.equals(object.getReturnType()), *************** public class MBeanOperationInfo *** 232,246 **** MBeanParameterInfo[] sig = o.getSignature(); for (int a = 0; a < signature.length; ++a) { ! if (a == sig.length) ! return true; ! if (!(signature[a].equals(sig[a]))) ! return false; } return (type.equals(o.getReturnType()) && ! impact == o.getImpact()); } ! /** *

                            * Returns the impact of performing this operation. --- 232,246 ---- MBeanParameterInfo[] sig = o.getSignature(); for (int a = 0; a < signature.length; ++a) { ! if (a == sig.length) ! return true; ! if (!(signature[a].equals(sig[a]))) ! return false; } return (type.equals(o.getReturnType()) && ! impact == o.getImpact()); } ! /** *

                            * Returns the impact of performing this operation. *************** public class MBeanOperationInfo *** 328,357 **** { if (string == null) { ! String impactString; ! switch (impact) ! { ! case INFO: ! impactString = "INFO"; ! break; ! case ACTION: ! impactString = "ACTION"; ! break; ! case ACTION_INFO: ! impactString = "ACTION_INFO"; ! break; ! case UNKNOWN: ! impactString = "UNKNOWN"; ! break; ! default: ! impactString = "ERRONEOUS VALUE"; ! } ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",returnType=" + type ! + ",impact=" + impactString ! + ",signature=" + Arrays.toString(signature) ! + "]"; } return string; } --- 328,357 ---- { if (string == null) { ! String impactString; ! switch (impact) ! { ! case INFO: ! impactString = "INFO"; ! break; ! case ACTION: ! impactString = "ACTION"; ! break; ! case ACTION_INFO: ! impactString = "ACTION_INFO"; ! break; ! case UNKNOWN: ! impactString = "UNKNOWN"; ! break; ! default: ! impactString = "ERRONEOUS VALUE"; ! } ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",returnType=" + type ! + ",impact=" + impactString ! + ",signature=" + Arrays.toString(signature) ! + "]"; } return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanParameterInfo.java gcc-4.6.0/libjava/classpath/javax/management/MBeanParameterInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanParameterInfo.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanParameterInfo.java Tue Jan 11 19:46:05 2011 *************** public class MBeanParameterInfo *** 63,69 **** /** * Constructs a new {@link MBeanParameterInfo} using the specified ! * name, description and type. * * @param name the name of the attribute. * @param type the type of the attribute, in the form of its class name. --- 63,69 ---- /** * Constructs a new {@link MBeanParameterInfo} using the specified ! * name, description and type. * * @param name the name of the attribute. * @param type the type of the attribute, in the form of its class name. *************** public class MBeanParameterInfo *** 89,101 **** { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } --- 89,101 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! /* This shouldn't happen; we implement Cloneable */ ! throw new IllegalStateException("clone() called on " + ! "non-cloneable object."); } } *************** public class MBeanParameterInfo *** 109,115 **** * * @param obj the object to compare. * @return true if the object is a {@link MBeanParameterInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()), * and type.equals(object.getType()). --- 109,115 ---- * * @param obj the object to compare. * @return true if the object is a {@link MBeanParameterInfo} ! * instance, * name.equals(object.getName()), * description.equals(object.getDescription()), * and type.equals(object.getType()). *************** public class MBeanParameterInfo *** 165,174 **** { if (string == null) { ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",type=" + type ! + "]"; } return string; } --- 165,174 ---- { if (string == null) { ! super.toString(); ! string = string.substring(0, string.length() - 1) ! + ",type=" + type ! + "]"; } return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanPermission.java gcc-4.6.0/libjava/classpath/javax/management/MBeanPermission.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanPermission.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanPermission.java Tue Jan 11 19:46:05 2011 *************** import java.util.TreeSet; *** 113,119 **** * represent null. When this occurs in a * required permission, anything may match it. When this * forms part of a permission held by the user, it only ! * matches another null value. *

                            *

                            The list of valid actions is as follows:

                            *
                              --- 113,119 ---- * represent null. When this occurs in a * required permission, anything may match it. When this * forms part of a permission held by the user, it only ! * matches another null value. *

                              *

                              The list of valid actions is as follows:

                              *
                                *************** public class MBeanPermission *** 152,158 **** * The list of actions associated with this permission. */ private String actions; ! /** * The list of actions as an ordered set. */ --- 152,158 ---- * The list of actions associated with this permission. */ private String actions; ! /** * The list of actions as an ordered set. */ *************** public class MBeanPermission *** 166,172 **** /** * Initialise the set of valid actions. */ ! static { validSet = new HashSet(); validSet.add("addNotificationListener"); --- 166,172 ---- /** * Initialise the set of valid actions. */ ! static { validSet = new HashSet(); validSet.add("addNotificationListener"); *************** public class MBeanPermission *** 232,242 **** * @param actions the actions associated with this permission. */ public MBeanPermission(String className, String member, ! ObjectName name, String actions) { ! this((className == null ? "-" : className) + "#" ! + (member == null ? "-" : member) + "[" ! + (name == null ? "-" : name.toString()) + "]", actions); } /** --- 232,242 ---- * @param actions the actions associated with this permission. */ public MBeanPermission(String className, String member, ! ObjectName name, String actions) { ! this((className == null ? "-" : className) + "#" ! + (member == null ? "-" : member) + "[" ! + (name == null ? "-" : name.toString()) + "]", actions); } /** *************** public class MBeanPermission *** 251,259 **** { if (obj instanceof MBeanPermission) { ! MBeanPermission p = (MBeanPermission) obj; ! return (p.getName().equals(getName()) && ! p.getActions().equals(actions)); } return false; } --- 251,259 ---- { if (obj instanceof MBeanPermission) { ! MBeanPermission p = (MBeanPermission) obj; ! return (p.getName().equals(getName()) && ! p.getActions().equals(actions)); } return false; } *************** public class MBeanPermission *** 269,277 **** CPStringBuilder builder = new CPStringBuilder(); while (it.hasNext()) { ! builder.append(it.next()); ! if (it.hasNext()) ! builder.append(","); } return builder.toString(); } --- 269,277 ---- CPStringBuilder builder = new CPStringBuilder(); while (it.hasNext()) { ! builder.append(it.next()); ! if (it.hasNext()) ! builder.append(","); } return builder.toString(); } *************** public class MBeanPermission *** 312,318 **** * of this permission. If the queryMBeans action is presented, * the queryNames action is implied. *
                              ! * * @param p the permission to check that this permission implies. * @return true if this permission implies p. */ --- 312,318 ---- * of this permission. If the queryMBeans action is presented, * the queryNames action is implied. *
                            ! * * @param p the permission to check that this permission implies. * @return true if this permission implies p. */ *************** public class MBeanPermission *** 320,340 **** { if (p instanceof MBeanPermission) { ! MBeanPermission mp = (MBeanPermission) p; ! NameHolder pName = new NameHolder(mp.getName()); ! NameHolder name = new NameHolder(getName()); ! if (!(name.equals(pName))) ! return false; ! for (String nextAction : mp.actionSet) ! { ! boolean found = actions.contains(nextAction); ! if (!found) ! if (nextAction.equals("queryNames")) ! found = actions.contains("queryMBeans"); ! if (!found) ! return false; ! } ! return true; } return false; } --- 320,340 ---- { if (p instanceof MBeanPermission) { ! MBeanPermission mp = (MBeanPermission) p; ! NameHolder pName = new NameHolder(mp.getName()); ! NameHolder name = new NameHolder(getName()); ! if (!(name.equals(pName))) ! return false; ! for (String nextAction : mp.actionSet) ! { ! boolean found = actions.contains(nextAction); ! if (!found) ! if (nextAction.equals("queryNames")) ! found = actions.contains("queryMBeans"); ! if (!found) ! return false; ! } ! return true; } return false; } *************** public class MBeanPermission *** 373,419 **** int memberIndex = name.indexOf("#"); int onIndex = name.indexOf("["); if (onIndex == -1) ! { ! if (memberIndex == -1) ! className = name; ! else ! { ! className = name.substring(0, memberIndex); ! member = name.substring(memberIndex + 1); ! } ! } else ! { ! if (memberIndex == -1) ! { ! className = name.substring(0, onIndex); ! objectName = name.substring(onIndex + 1, ! name.length() - 1); ! } ! else ! { ! className = name.substring(0, memberIndex); ! member = name.substring(memberIndex + 1, onIndex); ! objectName = name.substring(onIndex + 1, ! name.length() - 1); ! } ! } if (className.equals("-")) ! className = null; if (member.equals("-")) ! member = null; if (objectName == null || objectName.equals("-")) ! this.objectName = null; else ! try ! { ! this.objectName = new ObjectName(objectName); ! } ! catch (MalformedObjectNameException e) ! { ! throw (Error) ! (new InternalError("Invalid object name.").initCause(e)); ! } } /** --- 373,419 ---- int memberIndex = name.indexOf("#"); int onIndex = name.indexOf("["); if (onIndex == -1) ! { ! if (memberIndex == -1) ! className = name; ! else ! { ! className = name.substring(0, memberIndex); ! member = name.substring(memberIndex + 1); ! } ! } else ! { ! if (memberIndex == -1) ! { ! className = name.substring(0, onIndex); ! objectName = name.substring(onIndex + 1, ! name.length() - 1); ! } ! else ! { ! className = name.substring(0, memberIndex); ! member = name.substring(memberIndex + 1, onIndex); ! objectName = name.substring(onIndex + 1, ! name.length() - 1); ! } ! } if (className.equals("-")) ! className = null; if (member.equals("-")) ! member = null; if (objectName == null || objectName.equals("-")) ! this.objectName = null; else ! try ! { ! this.objectName = new ObjectName(objectName); ! } ! catch (MalformedObjectNameException e) ! { ! throw (Error) ! (new InternalError("Invalid object name.").initCause(e)); ! } } /** *************** public class MBeanPermission *** 436,481 **** * object name of this name holder is a pattern, * {@link ObjectName#apply(ObjectName)} may be used as well. * ! * * @param obj the object to compare with this. * @return true if the above holds. */ public boolean equals(Object obj) { if (obj instanceof NameHolder) ! { ! NameHolder nh = (NameHolder) obj; ! boolean cn = false; ! String ocn = nh.getClassName(); ! if (ocn == null || className.equals("*")) ! cn = true; ! else ! { ! int wcIndex = className.indexOf("*"); ! if (wcIndex != -1) ! cn = ocn.startsWith(className.substring(0, wcIndex)); ! else ! cn = ocn.equals(className); ! } ! boolean m = false; ! String om = nh.getMember(); ! if (om == null || member.equals("*")) ! m = true; ! else ! m = om.equals(member); ! boolean on = false; ! ObjectName oon = nh.getObjectName(); ! if (oon == null) ! on = true; ! else if (objectName.isPattern()) ! on = objectName.apply(oon); ! else ! on = oon.equals(objectName); ! return (cn && m && on); ! } return false; } ! /** * Returns the class name. */ --- 436,481 ---- * object name of this name holder is a pattern, * {@link ObjectName#apply(ObjectName)} may be used as well. * ! * * @param obj the object to compare with this. * @return true if the above holds. */ public boolean equals(Object obj) { if (obj instanceof NameHolder) ! { ! NameHolder nh = (NameHolder) obj; ! boolean cn = false; ! String ocn = nh.getClassName(); ! if (ocn == null || className.equals("*")) ! cn = true; ! else ! { ! int wcIndex = className.indexOf("*"); ! if (wcIndex != -1) ! cn = ocn.startsWith(className.substring(0, wcIndex)); ! else ! cn = ocn.equals(className); ! } ! boolean m = false; ! String om = nh.getMember(); ! if (om == null || member.equals("*")) ! m = true; ! else ! m = om.equals(member); ! boolean on = false; ! ObjectName oon = nh.getObjectName(); ! if (oon == null) ! on = true; ! else if (objectName.isPattern()) ! on = objectName.apply(oon); ! else ! on = oon.equals(objectName); ! return (cn && m && on); ! } return false; } ! /** * Returns the class name. */ *************** public class MBeanPermission *** 540,550 **** { for (String action : actionSet) { ! if (!(validSet.contains(action))) ! throw new IllegalArgumentException("Invalid action " ! + action + " found."); } } } - --- 540,549 ---- { for (String action : actionSet) { ! if (!(validSet.contains(action))) ! throw new IllegalArgumentException("Invalid action " ! + action + " found."); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanRegistrationException.java gcc-4.6.0/libjava/classpath/javax/management/MBeanRegistrationException.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanRegistrationException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanRegistrationException.java Tue Jan 11 19:46:05 2011 *************** public class MBeanRegistrationException *** 81,84 **** } - --- 81,83 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanServer.java gcc-4.6.0/libjava/classpath/javax/management/MBeanServer.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanServer.java Tue Feb 20 15:02:38 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanServer.java Tue Jan 11 19:46:05 2011 *************** import javax.management.loading.ClassLoa *** 72,78 **** * is thrown. Note than the class name used in the exception * is that of the bean, and thus, as a result, an * {@link InstanceNotFoundException} ! * precludes these security checks, due to the class name * that would be used in the exception being unavailable. *

                            * --- 72,78 ---- * is thrown. Note than the class name used in the exception * is that of the bean, and thus, as a result, an * {@link InstanceNotFoundException} ! * precludes these security checks, due to the class name * that would be used in the exception being unavailable. *

                            * *************** public interface MBeanServer *** 113,119 **** * Object) */ void addNotificationListener(ObjectName name, NotificationListener listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException; /** --- 113,119 ---- * Object) */ void addNotificationListener(ObjectName name, NotificationListener listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException; /** *************** public interface MBeanServer *** 122,128 **** * bean. Notifications emitted by the management bean are forwarded * to the listener via the server, which will convert any MBean * references in the source to portable {@link ObjectName} ! * instances. The notification is otherwise unchanged. *

                            *

                            * The listener that receives notifications will be the one that is --- 122,128 ---- * bean. Notifications emitted by the management bean are forwarded * to the listener via the server, which will convert any MBean * references in the source to portable {@link ObjectName} ! * instances. The notification is otherwise unchanged. *

                            *

                            * The listener that receives notifications will be the one that is *************** public interface MBeanServer *** 159,165 **** * Object) */ void addNotificationListener(ObjectName name, ObjectName listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException; /** --- 159,165 ---- * Object) */ void addNotificationListener(ObjectName name, ObjectName listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException; /** *************** public interface MBeanServer *** 168,174 **** * using the default constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                            *

                            * If the name supplied is null, then the bean is --- 168,174 ---- * using the default constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                            *

                            * If the name supplied is null, then the bean is *************** public interface MBeanServer *** 177,183 **** * of this interface will be used to obtain the name in this case. *

                            *

                            ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, Object[], String[]) * createMBean(className, name, (Object[]) null, * (String[]) null)} with null parameters --- 177,183 ---- * of this interface will be used to obtain the name in this case. *

                            *

                            ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, Object[], String[]) * createMBean(className, name, (Object[]) null, * (String[]) null)} with null parameters *************** public interface MBeanServer *** 211,218 **** */ ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException; /** *

                            --- 211,218 ---- */ ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException; /** *

                            *************** public interface MBeanServer *** 220,226 **** * using the given constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                            *

                            * If the name supplied is null, then the bean is --- 220,226 ---- * using the given constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                            *

                            * If the name supplied is null, then the bean is *************** public interface MBeanServer *** 228,234 **** * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                            ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. --- 228,234 ---- * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                            ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. *************** public interface MBeanServer *** 256,265 **** * and registerMBean methods. */ ObjectInstance createMBean(String className, ObjectName name, ! Object[] params, String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException; /** *

                            --- 256,265 ---- * and registerMBean methods. */ ObjectInstance createMBean(String className, ObjectName name, ! Object[] params, String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException; /** *

                            *************** public interface MBeanServer *** 277,283 **** * of this interface will be used to obtain the name in this case. *

                            *

                            ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, ObjectName, Object[], String) * createMBean(className, name, loaderName, (Object[]) null, * (String) null)} with null parameters --- 277,283 ---- * of this interface will be used to obtain the name in this case. *

                            *

                            ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, ObjectName, Object[], String) * createMBean(className, name, loaderName, (Object[]) null, * (String) null)} with null parameters *************** public interface MBeanServer *** 312,322 **** * and registerMBean methods. * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) */ ! ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException; /** *

                            --- 312,322 ---- * and registerMBean methods. * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) */ ! ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException; /** *

                            *************** public interface MBeanServer *** 325,331 **** * under the supplied name. The class is loaded using the * given class loader. If this argument is null, * then the same class loader as was used to load the server ! * is used. *

                            *

                            * If the name supplied is null, then the bean is --- 325,331 ---- * under the supplied name. The class is loaded using the * given class loader. If this argument is null, * then the same class loader as was used to load the server ! * is used. *

                            *

                            * If the name supplied is null, then the bean is *************** public interface MBeanServer *** 333,339 **** * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                            ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. --- 333,339 ---- * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                            ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. *************** public interface MBeanServer *** 364,374 **** * and registerMBean methods. */ ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, Object[] params, ! String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException; /** * Deserializes a byte array using the class loader of the specified --- 364,374 ---- * and registerMBean methods. */ ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, Object[] params, ! String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException; /** * Deserializes a byte array using the class loader of the specified *************** public interface MBeanServer *** 449,455 **** */ ObjectInputStream deserialize(String name, ObjectName loader, byte[] data) throws InstanceNotFoundException, ReflectionException, ! OperationsException; /** * Returns the value of the supplied attribute from the specified --- 449,455 ---- */ ObjectInputStream deserialize(String name, ObjectName loader, byte[] data) throws InstanceNotFoundException, ReflectionException, ! OperationsException; /** * Returns the value of the supplied attribute from the specified *************** public interface MBeanServer *** 478,484 **** */ Object getAttribute(ObjectName bean, String name) throws MBeanException, AttributeNotFoundException, ! InstanceNotFoundException, ReflectionException; /** * Returns the values of the named attributes from the specified --- 478,484 ---- */ Object getAttribute(ObjectName bean, String name) throws MBeanException, AttributeNotFoundException, ! InstanceNotFoundException, ReflectionException; /** * Returns the values of the named attributes from the specified *************** public interface MBeanServer *** 505,511 **** * MBeanPermission(className, n, bean, * "getAttribute")} or that attribute will * not be included. ! * * @see DynamicMBean#getAttributes(String[]) */ AttributeList getAttributes(ObjectName bean, String[] names) --- 505,511 ---- * MBeanPermission(className, n, bean, * "getAttribute")} or that attribute will * not be included. ! * * @see DynamicMBean#getAttributes(String[]) */ AttributeList getAttributes(ObjectName bean, String[] names) *************** public interface MBeanServer *** 534,540 **** */ ClassLoader getClassLoader(ObjectName name) throws InstanceNotFoundException; ! /** * Returns the class loader of the specified management bean. If * l is the requested class loader, and r --- 534,540 ---- */ ClassLoader getClassLoader(ObjectName name) throws InstanceNotFoundException; ! /** * Returns the class loader of the specified management bean. If * l is the requested class loader, and r *************** public interface MBeanServer *** 630,636 **** */ MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ! ReflectionException; /** * Returns the {@link ObjectInstance} created for the specified --- 630,636 ---- */ MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ! ReflectionException; /** * Returns the {@link ObjectInstance} created for the specified *************** public interface MBeanServer *** 659,665 **** * but the instance is not yet registered with the server. *

                            *

                            ! * This method is equivalent to calling {@link * #instantiate(String, Object[], String[]) * instantiate(name, (Object[]) null, (String[]) null)} * with null parameters and signature. --- 659,665 ---- * but the instance is not yet registered with the server. *

                            *

                            ! * This method is equivalent to calling {@link * #instantiate(String, Object[], String[]) * instantiate(name, (Object[]) null, (String[]) null)} * with null parameters and signature. *************** public interface MBeanServer *** 723,729 **** * registered with the server. *

                            *

                            ! * This method is equivalent to calling {@link * #instantiate(String, ObjectName, Object[], String[]) * instantiate(name, loaderName, (Object[]) null, * (String[]) null)} with null parameters --- 723,729 ---- * registered with the server. *

                            *

                            ! * This method is equivalent to calling {@link * #instantiate(String, ObjectName, Object[], String[]) * instantiate(name, loaderName, (Object[]) null, * (String[]) null)} with null parameters *************** public interface MBeanServer *** 751,757 **** */ Object instantiate(String name, ObjectName loaderName) throws InstanceNotFoundException, ReflectionException, ! MBeanException; /** * Creates an instance of the specified class using the supplied --- 751,757 ---- */ Object instantiate(String name, ObjectName loaderName) throws InstanceNotFoundException, ReflectionException, ! MBeanException; /** * Creates an instance of the specified class using the supplied *************** public interface MBeanServer *** 782,790 **** * "instantiate")}. */ Object instantiate(String name, ObjectName loaderName, ! Object[] params, String[] sig) throws InstanceNotFoundException, ReflectionException, ! MBeanException; /** * Invokes the supplied operation on the specified management --- 782,790 ---- * "instantiate")}. */ Object instantiate(String name, ObjectName loaderName, ! Object[] params, String[] sig) throws InstanceNotFoundException, ReflectionException, ! MBeanException; /** * Invokes the supplied operation on the specified management *************** public interface MBeanServer *** 809,815 **** */ Object invoke(ObjectName bean, String name, Object[] params, String[] sig) throws InstanceNotFoundException, MBeanException, ! ReflectionException; /** *

                            --- 809,815 ---- */ Object invoke(ObjectName bean, String name, Object[] params, String[] sig) throws InstanceNotFoundException, MBeanException, ! ReflectionException; /** *

                            *************** public interface MBeanServer *** 826,832 **** *

                          • Both the class of B and C were loaded by the same class loader, * and B is assignable to C.
                          • * ! * * @param name the name of the management bean. * @param className the name of the class to test if name is * an instance of. --- 826,832 ---- *
                          • Both the class of B and C were loaded by the same class loader, * and B is assignable to C.
                          • * ! * * @param name the name of the management bean. * @param className the name of the class to test if name is * an instance of. *************** public interface MBeanServer *** 869,875 **** *

                            * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                            * * @param name an {@link ObjectName} to use as a filter. --- 869,875 ---- *

                            * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                            * * @param name an {@link ObjectName} to use as a filter. *************** public interface MBeanServer *** 891,897 **** * case that particular bean will again be excluded. */ Set queryMBeans(ObjectName name, QueryExp query); ! /** *

                            * Returns a set of {@link ObjectName}s matching the specified --- 891,897 ---- * case that particular bean will again be excluded. */ Set queryMBeans(ObjectName name, QueryExp query); ! /** *

                            * Returns a set of {@link ObjectName}s matching the specified *************** public interface MBeanServer *** 906,912 **** *

                            * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                            * * @param name an {@link ObjectName} to use as a filter. --- 906,912 ---- *

                            * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                            * * @param name an {@link ObjectName} to use as a filter. *************** public interface MBeanServer *** 935,941 **** * Registers the supplied instance with the server, using the specified * {@link ObjectName}. If the name given is null, then * the bean supplied is expected to implement the {@link MBeanRegistration} ! * interface and provide the name via the * {@link MBeanRegistration#preRegister preRegister} method * of this interface. * --- 935,941 ---- * Registers the supplied instance with the server, using the specified * {@link ObjectName}. If the name given is null, then * the bean supplied is expected to implement the {@link MBeanRegistration} ! * interface and provide the name via the * {@link MBeanRegistration#preRegister preRegister} method * of this interface. * *************** public interface MBeanServer *** 971,977 **** */ ObjectInstance registerMBean(Object obj, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, ! NotCompliantMBeanException; /** * Removes the specified listener from the list of recipients --- 971,977 ---- */ ObjectInstance registerMBean(Object obj, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, ! NotCompliantMBeanException; /** * Removes the specified listener from the list of recipients *************** public interface MBeanServer *** 997,1003 **** * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) */ void removeNotificationListener(ObjectName name, ! NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException; /** --- 997,1003 ---- * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) */ void removeNotificationListener(ObjectName name, ! NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException; /** *************** public interface MBeanServer *** 1029,1037 **** * Object) */ void removeNotificationListener(ObjectName name, ! NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException; /** --- 1029,1037 ---- * Object) */ void removeNotificationListener(ObjectName name, ! NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException; /** *************** public interface MBeanServer *** 1091,1104 **** * Object) */ void removeNotificationListener(ObjectName name, ! ObjectName listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException; /** * Sets the value of the specified attribute of the supplied ! * management bean. * * @param name the name of the management bean. * @param attribute the attribute to set. --- 1091,1104 ---- * Object) */ void removeNotificationListener(ObjectName name, ! ObjectName listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException; /** * Sets the value of the specified attribute of the supplied ! * management bean. * * @param name the name of the management bean. * @param attribute the attribute to set. *************** public interface MBeanServer *** 1131,1138 **** */ void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, ! InvalidAttributeValueException, MBeanException, ! ReflectionException; /** * Sets the value of each of the specified attributes --- 1131,1138 ---- */ void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, ! InvalidAttributeValueException, MBeanException, ! ReflectionException; /** * Sets the value of each of the specified attributes *************** public interface MBeanServer *** 1192,1198 **** * MBeanPermission(String,String,ObjectName,String) * MBeanPermission(className, null, name, * "unregisterMBean")}. ! */ void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException; --- 1192,1198 ---- * MBeanPermission(String,String,ObjectName,String) * MBeanPermission(className, null, name, * "unregisterMBean")}. ! */ void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanServerBuilder.java gcc-4.6.0/libjava/classpath/javax/management/MBeanServerBuilder.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanServerBuilder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanServerBuilder.java Tue Jan 11 19:46:05 2011 *************** public class MBeanServerBuilder *** 73,79 **** * same as that returned by {@link #newMBeanServerDelegate()} as the factory * can optionally wrap the delegate before calling this method. *

                            ! * * @param defaultDomain the default domain used by the new server. * @param outer the {@link MBeanServer} passed to the {@link MBeanRegistration} * interface of management beans. --- 73,79 ---- * same as that returned by {@link #newMBeanServerDelegate()} as the factory * can optionally wrap the delegate before calling this method. *

                            ! * * @param defaultDomain the default domain used by the new server. * @param outer the {@link MBeanServer} passed to the {@link MBeanRegistration} * interface of management beans. *************** public class MBeanServerBuilder *** 82,88 **** * @return a new instance of a server implementation. */ public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, ! MBeanServerDelegate delegate) { return new Server(defaultDomain, outer, delegate); } --- 82,88 ---- * @return a new instance of a server implementation. */ public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, ! MBeanServerDelegate delegate) { return new Server(defaultDomain, outer, delegate); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanServerConnection.java gcc-4.6.0/libjava/classpath/javax/management/MBeanServerConnection.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanServerConnection.java Tue Feb 20 15:02:38 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanServerConnection.java Tue Jan 11 19:46:05 2011 *************** public interface MBeanServerConnection *** 80,86 **** * Object) */ void addNotificationListener(ObjectName name, NotificationListener listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException, IOException; /** --- 80,86 ---- * Object) */ void addNotificationListener(ObjectName name, NotificationListener listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException, IOException; /** *************** public interface MBeanServerConnection *** 89,95 **** * bean. Notifications emitted by the management bean are forwarded * to the listener via the server, which will convert any MBean * references in the source to portable {@link ObjectName} ! * instances. The notification is otherwise unchanged. *

                            *

                            * The listener that receives notifications will be the one that is --- 89,95 ---- * bean. Notifications emitted by the management bean are forwarded * to the listener via the server, which will convert any MBean * references in the source to portable {@link ObjectName} ! * instances. The notification is otherwise unchanged. *

                            *

                            * The listener that receives notifications will be the one that is *************** public interface MBeanServerConnection *** 123,129 **** * Object) */ void addNotificationListener(ObjectName name, ObjectName listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException, RuntimeOperationsException, IOException; /** --- 123,129 ---- * Object) */ void addNotificationListener(ObjectName name, ObjectName listener, ! NotificationFilter filter, Object passback) throws InstanceNotFoundException, RuntimeOperationsException, IOException; /** *************** public interface MBeanServerConnection *** 132,138 **** * using the default constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                            *

                            * If the name supplied is null, then the bean is --- 132,138 ---- * using the default constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                            *

                            * If the name supplied is null, then the bean is *************** public interface MBeanServerConnection *** 141,147 **** * of this interface will be used to obtain the name in this case. *

                            *

                            ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, Object[], String[]) * createMBean(className, name, (Object[]) null, * (String[]) null)} with null parameters --- 141,147 ---- * of this interface will be used to obtain the name in this case. *

                            *

                            ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, Object[], String[]) * createMBean(className, name, (Object[]) null, * (String[]) null)} with null parameters *************** public interface MBeanServerConnection *** 173,180 **** */ ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, IOException; /** *

                            --- 173,180 ---- */ ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, IOException; /** *

                            *************** public interface MBeanServerConnection *** 182,188 **** * using the given constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                            *

                            * If the name supplied is null, then the bean is --- 182,188 ---- * using the given constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                            *

                            * If the name supplied is null, then the bean is *************** public interface MBeanServerConnection *** 190,196 **** * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                            ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. --- 190,196 ---- * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                            ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. *************** public interface MBeanServerConnection *** 216,225 **** * the bean server. */ ObjectInstance createMBean(String className, ObjectName name, ! Object[] params, String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, IOException; /** *

                            --- 216,225 ---- * the bean server. */ ObjectInstance createMBean(String className, ObjectName name, ! Object[] params, String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, IOException; /** *

                            *************** public interface MBeanServerConnection *** 237,243 **** * of this interface will be used to obtain the name in this case. *

                            *

                            ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, ObjectName, Object[], String) * createMBean(className, name, loaderName, (Object[]) null, * (String) null)} with null parameters --- 237,243 ---- * of this interface will be used to obtain the name in this case. *

                            *

                            ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, ObjectName, Object[], String) * createMBean(className, name, loaderName, (Object[]) null, * (String) null)} with null parameters *************** public interface MBeanServerConnection *** 270,281 **** * the bean server. * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) */ ! ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException, ! IOException; /** *

                            --- 270,281 ---- * the bean server. * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) */ ! ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException, ! IOException; /** *

                            *************** public interface MBeanServerConnection *** 284,290 **** * under the supplied name. The class is loaded using the * given class loader. If this argument is null, * then the same class loader as was used to load the server ! * is used. *

                            *

                            * If the name supplied is null, then the bean is --- 284,290 ---- * under the supplied name. The class is loaded using the * given class loader. If this argument is null, * then the same class loader as was used to load the server ! * is used. *

                            *

                            * If the name supplied is null, then the bean is *************** public interface MBeanServerConnection *** 292,298 **** * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                            ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. --- 292,298 ---- * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                            ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. *************** public interface MBeanServerConnection *** 321,332 **** * the bean server. */ ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, Object[] params, ! String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException, ! IOException; /** * Returns the value of the supplied attribute from the specified --- 321,332 ---- * the bean server. */ ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, Object[] params, ! String[] sig) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException, ! IOException; /** * Returns the value of the supplied attribute from the specified *************** public interface MBeanServerConnection *** 352,359 **** */ Object getAttribute(ObjectName bean, String name) throws MBeanException, AttributeNotFoundException, ! InstanceNotFoundException, ReflectionException, ! IOException; /** * Returns the values of the named attributes from the specified --- 352,359 ---- */ Object getAttribute(ObjectName bean, String name) throws MBeanException, AttributeNotFoundException, ! InstanceNotFoundException, ReflectionException, ! IOException; /** * Returns the values of the named attributes from the specified *************** public interface MBeanServerConnection *** 375,381 **** */ AttributeList getAttributes(ObjectName bean, String[] names) throws InstanceNotFoundException, ReflectionException, ! IOException; /** * Returns the default domain this server applies to beans that have --- 375,381 ---- */ AttributeList getAttributes(ObjectName bean, String[] names) throws InstanceNotFoundException, ReflectionException, ! IOException; /** * Returns the default domain this server applies to beans that have *************** public interface MBeanServerConnection *** 427,433 **** */ MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ! ReflectionException, IOException; /** * Returns the {@link ObjectInstance} created for the specified --- 427,433 ---- */ MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ! ReflectionException, IOException; /** * Returns the {@link ObjectInstance} created for the specified *************** public interface MBeanServerConnection *** 463,469 **** */ Object invoke(ObjectName bean, String name, Object[] params, String[] sig) throws InstanceNotFoundException, MBeanException, ! ReflectionException, IOException; /** *

                            --- 463,469 ---- */ Object invoke(ObjectName bean, String name, Object[] params, String[] sig) throws InstanceNotFoundException, MBeanException, ! ReflectionException, IOException; /** *

                            *************** public interface MBeanServerConnection *** 480,486 **** *

                          • Both the class of B and C were loaded by the same class loader, * and B is assignable to C.
                          • * ! * * @param name the name of the management bean. * @param className the name of the class to test if name is * an instance of. --- 480,486 ---- *
                          • Both the class of B and C were loaded by the same class loader, * and B is assignable to C.
                          • * ! * * @param name the name of the management bean. * @param className the name of the class to test if name is * an instance of. *************** public interface MBeanServerConnection *** 523,529 **** *

                            * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                            * * @param name an {@link ObjectName} to use as a filter. --- 523,529 ---- *

                            * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                            * * @param name an {@link ObjectName} to use as a filter. *************** public interface MBeanServerConnection *** 535,541 **** */ Set queryMBeans(ObjectName name, QueryExp query) throws IOException; ! /** *

                            * Returns a set of {@link ObjectName}s matching the specified --- 535,541 ---- */ Set queryMBeans(ObjectName name, QueryExp query) throws IOException; ! /** *

                            * Returns a set of {@link ObjectName}s matching the specified *************** public interface MBeanServerConnection *** 550,556 **** *

                            * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                            * * @param name an {@link ObjectName} to use as a filter. --- 550,556 ---- *

                            * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                            * * @param name an {@link ObjectName} to use as a filter. *************** public interface MBeanServerConnection *** 584,592 **** * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) */ void removeNotificationListener(ObjectName name, ! NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Removes the specified listener from the list of recipients --- 584,592 ---- * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) */ void removeNotificationListener(ObjectName name, ! NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Removes the specified listener from the list of recipients *************** public interface MBeanServerConnection *** 614,624 **** * Object) */ void removeNotificationListener(ObjectName name, ! NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Removes the specified listener from the list of recipients --- 614,624 ---- * Object) */ void removeNotificationListener(ObjectName name, ! NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Removes the specified listener from the list of recipients *************** public interface MBeanServerConnection *** 643,649 **** */ void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Removes the specified listener from the list of recipients --- 643,649 ---- */ void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Removes the specified listener from the list of recipients *************** public interface MBeanServerConnection *** 672,686 **** * Object) */ void removeNotificationListener(ObjectName name, ! ObjectName listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Sets the value of the specified attribute of the supplied ! * management bean. * * @param name the name of the management bean. * @param attribute the attribute to set. --- 672,686 ---- * Object) */ void removeNotificationListener(ObjectName name, ! ObjectName listener, ! NotificationFilter filter, ! Object passback) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Sets the value of the specified attribute of the supplied ! * management bean. * * @param name the name of the management bean. * @param attribute the attribute to set. *************** public interface MBeanServerConnection *** 710,717 **** */ void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, ! InvalidAttributeValueException, MBeanException, ! ReflectionException, IOException; /** * Sets the value of each of the specified attributes --- 710,717 ---- */ void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, ! InvalidAttributeValueException, MBeanException, ! ReflectionException, IOException; /** * Sets the value of each of the specified attributes *************** public interface MBeanServerConnection *** 739,745 **** */ AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException, ! IOException; /** * Unregisters the specified management bean. Following this operation, --- 739,745 ---- */ AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException, ! IOException; /** * Unregisters the specified management bean. Following this operation, *************** public interface MBeanServerConnection *** 760,768 **** * {@link MBeanServerDelegate} bean. * @throws IOException if an I/O error occurred in communicating with * the bean server. ! */ void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException, ! IOException; } --- 760,768 ---- * {@link MBeanServerDelegate} bean. * @throws IOException if an I/O error occurred in communicating with * the bean server. ! */ void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException, ! IOException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanServerDelegate.java gcc-4.6.0/libjava/classpath/javax/management/MBeanServerDelegate.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanServerDelegate.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanServerDelegate.java Tue Jan 11 19:46:05 2011 *************** public class MBeanServerDelegate *** 115,122 **** * @see #removeNotificationListener(NotificationListener) */ public void addNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws IllegalArgumentException { if (listener == null) --- 115,122 ---- * @see #removeNotificationListener(NotificationListener) */ public void addNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws IllegalArgumentException { if (listener == null) *************** public class MBeanServerDelegate *** 175,189 **** */ public MBeanNotificationInfo[] getNotificationInfo() { ! return new MBeanNotificationInfo[] { ! new MBeanNotificationInfo(new String[] ! { ! MBeanServerNotification.REGISTRATION_NOTIFICATION, ! MBeanServerNotification.UNREGISTRATION_NOTIFICATION, ! }, ! MBeanServerNotification.class.getName(), ! "Server registration notifications") }; } --- 175,189 ---- */ public MBeanNotificationInfo[] getNotificationInfo() { ! return new MBeanNotificationInfo[] { ! new MBeanNotificationInfo(new String[] ! { ! MBeanServerNotification.REGISTRATION_NOTIFICATION, ! MBeanServerNotification.UNREGISTRATION_NOTIFICATION, ! }, ! MBeanServerNotification.class.getName(), ! "Server registration notifications") }; } *************** public class MBeanServerDelegate *** 239,253 **** boolean foundOne = false; while (it.hasNext()) { ! if (it.next().getListener() == listener) ! { ! it.remove(); ! foundOne = true; ! } } if (!foundOne) throw new ListenerNotFoundException("The specified listener, " + listener + ! "is not registered with this bean."); } /** --- 239,253 ---- boolean foundOne = false; while (it.hasNext()) { ! if (it.next().getListener() == listener) ! { ! it.remove(); ! foundOne = true; ! } } if (!foundOne) throw new ListenerNotFoundException("The specified listener, " + listener + ! "is not registered with this bean."); } /** *************** public class MBeanServerDelegate *** 269,284 **** * @see #removeNotificationListener(NotificationListener) */ public void removeNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws ListenerNotFoundException { if (!(listeners.remove(new ListenerData(listener, filter, passback)))) { ! throw new ListenerNotFoundException("The specified listener, " + listener + ! " with filter " + filter + ! "and passback " + passback + ! ", is not registered with this bean."); } } --- 269,284 ---- * @see #removeNotificationListener(NotificationListener) */ public void removeNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws ListenerNotFoundException { if (!(listeners.remove(new ListenerData(listener, filter, passback)))) { ! throw new ListenerNotFoundException("The specified listener, " + listener + ! " with filter " + filter + ! "and passback " + passback + ! ", is not registered with this bean."); } } *************** public class MBeanServerDelegate *** 295,303 **** notification.setSequenceNumber(++seqNo); for (ListenerData ldata : listeners) { ! NotificationFilter filter = ldata.getFilter(); ! if (filter == null || filter.isNotificationEnabled(notification)) ! ldata.getListener().handleNotification(notification, ldata.getPassback()); } } --- 295,303 ---- notification.setSequenceNumber(++seqNo); for (ListenerData ldata : listeners) { ! NotificationFilter filter = ldata.getFilter(); ! if (filter == null || filter.isNotificationEnabled(notification)) ! ldata.getListener().handleNotification(notification, ldata.getPassback()); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanServerFactory.java gcc-4.6.0/libjava/classpath/javax/management/MBeanServerFactory.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanServerFactory.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanServerFactory.java Tue Jan 11 19:46:05 2011 *************** public class MBeanServerFactory *** 134,140 **** * The default domain name is used when the domain name specified by * the user is nullnullserver is null. --- 225,231 ---- * Returns the class loader repository used by the specified server. * This is equivalent to calling {@link MBeanServer#getClassLoaderRepository()} * on the given server. ! * * @param server the server whose class loader repository should be * retrieved. * @throws NullPointerException if server is null. *************** public class MBeanServerFactory *** 246,252 **** * used when the domain name specified by the user is nullnull value. * --- 246,252 ---- * used when the domain name specified by the user is nullnull value. * *************** public class MBeanServerFactory *** 331,372 **** SystemProperties.getProperty("javax.management.builder.initial"); if (builderClass == null) { ! if (builder == null || ! builder.getClass() != MBeanServerBuilder.class) ! builder = new MBeanServerBuilder(); } else if (!(builder != null && ! builderClass.equals(builder.getClass().getName()))) { ! ClassLoader cl = Thread.currentThread().getContextClassLoader(); ! if (cl == null) ! cl = MBeanServerFactory.class.getClassLoader(); ! try ! { ! Class bClass = Class.forName(builderClass, true, cl); ! builder = (MBeanServerBuilder) bClass.newInstance(); ! } ! catch (ClassNotFoundException e) ! { ! throw (JMRuntimeException) (new JMRuntimeException("The builder class, " ! + builderClass + ! ", could not be found.")) ! .initCause(e); ! } ! catch (InstantiationException e) ! { ! throw (JMRuntimeException) (new JMRuntimeException("The builder class, " ! + builderClass + ! ", could not be instantiated.")) ! .initCause(e); ! } ! catch (IllegalAccessException e) ! { ! throw (JMRuntimeException) (new JMRuntimeException("The builder class, " ! + builderClass + ! ", could not be accessed.")) ! .initCause(e); ! } } MBeanServerDelegate delegate = builder.newMBeanServerDelegate(); if (delegate == null) --- 331,372 ---- SystemProperties.getProperty("javax.management.builder.initial"); if (builderClass == null) { ! if (builder == null || ! builder.getClass() != MBeanServerBuilder.class) ! builder = new MBeanServerBuilder(); } else if (!(builder != null && ! builderClass.equals(builder.getClass().getName()))) { ! ClassLoader cl = Thread.currentThread().getContextClassLoader(); ! if (cl == null) ! cl = MBeanServerFactory.class.getClassLoader(); ! try ! { ! Class bClass = Class.forName(builderClass, true, cl); ! builder = (MBeanServerBuilder) bClass.newInstance(); ! } ! catch (ClassNotFoundException e) ! { ! throw (JMRuntimeException) (new JMRuntimeException("The builder class, " ! + builderClass + ! ", could not be found.")) ! .initCause(e); ! } ! catch (InstantiationException e) ! { ! throw (JMRuntimeException) (new JMRuntimeException("The builder class, " ! + builderClass + ! ", could not be instantiated.")) ! .initCause(e); ! } ! catch (IllegalAccessException e) ! { ! throw (JMRuntimeException) (new JMRuntimeException("The builder class, " ! + builderClass + ! ", could not be accessed.")) ! .initCause(e); ! } } MBeanServerDelegate delegate = builder.newMBeanServerDelegate(); if (delegate == null) *************** public class MBeanServerFactory *** 399,410 **** Iterator i = servers.values().iterator(); while (i.hasNext()) { ! MBeanServer s = i.next(); ! if (server == s) ! { ! i.remove(); ! return; ! } } throw new IllegalArgumentException("The server given is not referenced."); } --- 399,410 ---- Iterator i = servers.values().iterator(); while (i.hasNext()) { ! MBeanServer s = i.next(); ! if (server == s) ! { ! i.remove(); ! return; ! } } throw new IllegalArgumentException("The server given is not referenced."); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanServerInvocationHandler.java gcc-4.6.0/libjava/classpath/javax/management/MBeanServerInvocationHandler.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanServerInvocationHandler.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanServerInvocationHandler.java Tue Jan 11 19:46:05 2011 *************** import java.lang.reflect.Proxy; *** 81,87 **** *
                          • toString() returns a textual representation * of the proxy.
                          • * ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 81,87 ---- *
                          • toString() returns a textual representation * of the proxy.
                          • * ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public class MBeanServerInvocationHandle *** 129,135 **** * actual calls. */ public MBeanServerInvocationHandler(MBeanServerConnection conn, ! ObjectName name) { this(conn, name, false); } --- 129,135 ---- * actual calls. */ public MBeanServerInvocationHandler(MBeanServerConnection conn, ! ObjectName name) { this(conn, name, false); } *************** public class MBeanServerInvocationHandle *** 143,149 **** * Class)} if you wish to make your own call to * {@link java.lang.reflect.Proxy#newInstance(ClassLoader, * Class[], java.lang.reflect.InvocationHandler)} with ! * a different {@link ClassLoader}. * * @param conn the connection through which methods will * be forwarded to the bean. --- 143,149 ---- * Class)} if you wish to make your own call to * {@link java.lang.reflect.Proxy#newInstance(ClassLoader, * Class[], java.lang.reflect.InvocationHandler)} with ! * a different {@link ClassLoader}. * * @param conn the connection through which methods will * be forwarded to the bean. *************** public class MBeanServerInvocationHandle *** 154,160 **** * @since 1.6 */ public MBeanServerInvocationHandler(MBeanServerConnection conn, ! ObjectName name, boolean mxBean) { this.conn = conn; this.name = name; --- 154,160 ---- * @since 1.6 */ public MBeanServerInvocationHandler(MBeanServerConnection conn, ! ObjectName name, boolean mxBean) { this.conn = conn; this.name = name; *************** public class MBeanServerInvocationHandle *** 164,170 **** /** * Returns the connection through which the calls to the bean * will be made. ! * * @return the connection being used to forward the calls to * the bean. * @since 1.6 --- 164,170 ---- /** * Returns the connection through which the calls to the bean * will be made. ! * * @return the connection being used to forward the calls to * the bean. * @since 1.6 *************** public class MBeanServerInvocationHandle *** 207,283 **** Class proxyClass = proxy.getClass(); if (mName.equals("toString")) { ! if (inInterface(mName, proxyClass)) ! return conn.invoke(name,mName,null,null); ! else ! return proxyClass.getName() + "[name=" + name ! + ", conn=" + conn + "]"; } if (mName.equals("hashCode")) { ! if (inInterface(mName, proxyClass)) ! return conn.invoke(name,mName,null,null); ! else ! return conn.hashCode() + name.hashCode() ! + (iface == null ? 0 : iface.hashCode()); } if (mName.equals("equals")) { ! if (inInterface(mName, proxyClass, Object.class)) ! return conn.invoke(name,mName,new Object[]{args[0]}, ! new String[]{"java.lang.Object"}); ! else ! { ! if (args[0].getClass() != proxy.getClass()) ! return false; ! InvocationHandler ih = Proxy.getInvocationHandler(args[0]); ! if (ih instanceof MBeanServerInvocationHandler) ! { ! MBeanServerInvocationHandler h = ! (MBeanServerInvocationHandler) ih; ! return conn.equals(h.getMBeanServerConnection()) ! && name.equals(h.getObjectName()) ! && (iface == null ? h.iface == null ! : iface.equals(h.iface)); ! } ! return false; ! } } if (NotificationEmitter.class.isAssignableFrom(proxyClass)) { ! if (mName.equals("addNotificationListener")) ! { ! conn.addNotificationListener(name, ! (NotificationListener) args[0], ! (NotificationFilter) args[1], ! args[2]); ! return null; ! } ! if (mName.equals("getNotificationInfo")) ! return conn.getMBeanInfo(name).getNotifications(); ! if (mName.equals("removeNotificationListener")) ! { ! if (args.length == 1) ! conn.removeNotificationListener(name, ! (NotificationListener) ! args[0]); ! else ! conn.removeNotificationListener(name, ! (NotificationListener) ! args[0], ! (NotificationFilter) ! args[1], args[2]); ! return null; ! } } String[] sigs; if (args == null) sigs = null; else { ! sigs = new String[args.length]; ! for (int a = 0; a < args.length; ++a) ! sigs[a] = args[a].getClass().getName(); } String attrib = null; if (mName.startsWith("get")) --- 207,283 ---- Class proxyClass = proxy.getClass(); if (mName.equals("toString")) { ! if (inInterface(mName, proxyClass)) ! return conn.invoke(name,mName,null,null); ! else ! return proxyClass.getName() + "[name=" + name ! + ", conn=" + conn + "]"; } if (mName.equals("hashCode")) { ! if (inInterface(mName, proxyClass)) ! return conn.invoke(name,mName,null,null); ! else ! return conn.hashCode() + name.hashCode() ! + (iface == null ? 0 : iface.hashCode()); } if (mName.equals("equals")) { ! if (inInterface(mName, proxyClass, Object.class)) ! return conn.invoke(name,mName,new Object[]{args[0]}, ! new String[]{"java.lang.Object"}); ! else ! { ! if (args[0].getClass() != proxy.getClass()) ! return false; ! InvocationHandler ih = Proxy.getInvocationHandler(args[0]); ! if (ih instanceof MBeanServerInvocationHandler) ! { ! MBeanServerInvocationHandler h = ! (MBeanServerInvocationHandler) ih; ! return conn.equals(h.getMBeanServerConnection()) ! && name.equals(h.getObjectName()) ! && (iface == null ? h.iface == null ! : iface.equals(h.iface)); ! } ! return false; ! } } if (NotificationEmitter.class.isAssignableFrom(proxyClass)) { ! if (mName.equals("addNotificationListener")) ! { ! conn.addNotificationListener(name, ! (NotificationListener) args[0], ! (NotificationFilter) args[1], ! args[2]); ! return null; ! } ! if (mName.equals("getNotificationInfo")) ! return conn.getMBeanInfo(name).getNotifications(); ! if (mName.equals("removeNotificationListener")) ! { ! if (args.length == 1) ! conn.removeNotificationListener(name, ! (NotificationListener) ! args[0]); ! else ! conn.removeNotificationListener(name, ! (NotificationListener) ! args[0], ! (NotificationFilter) ! args[1], args[2]); ! return null; ! } } String[] sigs; if (args == null) sigs = null; else { ! sigs = new String[args.length]; ! for (int a = 0; a < args.length; ++a) ! sigs[a] = args[a].getClass().getName(); } String attrib = null; if (mName.startsWith("get")) *************** public class MBeanServerInvocationHandle *** 286,311 **** attrib = mName.substring(2); if (attrib != null) { ! Object val = conn.getAttribute(name, attrib); ! if (mxBean) ! return Translator.toJava(val, method); ! else ! return val; } else if (mName.startsWith("set")) { ! Object arg; ! if (mxBean) ! arg = Translator.fromJava(args, method)[0]; ! else ! arg = args[0]; ! conn.setAttribute(name, new Attribute(mName.substring(3), arg)); ! return null; } if (mxBean) ! return Translator.toJava(conn.invoke(name, mName, ! Translator.fromJava(args,method), ! sigs), method); else return conn.invoke(name, mName, args, sigs); } --- 286,311 ---- attrib = mName.substring(2); if (attrib != null) { ! Object val = conn.getAttribute(name, attrib); ! if (mxBean) ! return Translator.toJava(val, method); ! else ! return val; } else if (mName.startsWith("set")) { ! Object arg; ! if (mxBean) ! arg = Translator.fromJava(args, method)[0]; ! else ! arg = args[0]; ! conn.setAttribute(name, new Attribute(mName.substring(3), arg)); ! return null; } if (mxBean) ! return Translator.toJava(conn.invoke(name, mName, ! Translator.fromJava(args,method), ! sigs), method); else return conn.invoke(name, mName, args, sigs); } *************** public class MBeanServerInvocationHandle *** 332,338 **** * second element of the array if broadcaster is true. * handler refers to the invocation handler which forwards * calls to the connection, which is created by a call to ! * new MBeanServerInvocationHandler(conn, name). *

                            *

                            * Note: use of the proxy may result in --- 332,338 ---- * second element of the array if broadcaster is true. * handler refers to the invocation handler which forwards * calls to the connection, which is created by a call to ! * new MBeanServerInvocationHandler(conn, name). *

                            *

                            * Note: use of the proxy may result in *************** public class MBeanServerInvocationHandle *** 355,372 **** // Suppress warnings as we know an instance of T will be returned. @SuppressWarnings("unchecked") public static T newProxyInstance(MBeanServerConnection conn, ! ObjectName name, Class iface, ! boolean broadcaster) { if (broadcaster) return (T) Proxy.newProxyInstance(iface.getClassLoader(), ! new Class[] { iface, ! NotificationEmitter.class }, ! new MBeanServerInvocationHandler(conn,name)); else return (T) Proxy.newProxyInstance(iface.getClassLoader(), ! new Class[] { iface }, ! new MBeanServerInvocationHandler(conn,name)); } /** --- 355,372 ---- // Suppress warnings as we know an instance of T will be returned. @SuppressWarnings("unchecked") public static T newProxyInstance(MBeanServerConnection conn, ! ObjectName name, Class iface, ! boolean broadcaster) { if (broadcaster) return (T) Proxy.newProxyInstance(iface.getClassLoader(), ! new Class[] { iface, ! NotificationEmitter.class }, ! new MBeanServerInvocationHandler(conn,name)); else return (T) Proxy.newProxyInstance(iface.getClassLoader(), ! new Class[] { iface }, ! new MBeanServerInvocationHandler(conn,name)); } /** *************** public class MBeanServerInvocationHandle *** 380,402 **** * given method. */ private boolean inInterface(String name, Class proxyClass, ! Class... args) { for (Class iface : proxyClass.getInterfaces()) { ! try ! { ! iface.getMethod(name, args); ! return true; ! } ! catch (NoSuchMethodException e) ! { ! /* Ignored; this interface doesn't specify ! the method. */ ! } } return false; } - - } --- 380,401 ---- * given method. */ private boolean inInterface(String name, Class proxyClass, ! Class... args) { for (Class iface : proxyClass.getInterfaces()) { ! try ! { ! iface.getMethod(name, args); ! return true; ! } ! catch (NoSuchMethodException e) ! { ! /* Ignored; this interface doesn't specify ! the method. */ ! } } return false; } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanServerNotification.java gcc-4.6.0/libjava/classpath/javax/management/MBeanServerNotification.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanServerNotification.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanServerNotification.java Tue Jan 11 19:46:05 2011 *************** public class MBeanServerNotification *** 84,90 **** * @param name the name of the bean concerned by this event. */ public MBeanServerNotification(String type, Object source, long seqNo, ! ObjectName name) { super(type, source, seqNo); objectName = name; --- 84,90 ---- * @param name the name of the bean concerned by this event. */ public MBeanServerNotification(String type, Object source, long seqNo, ! ObjectName name) { super(type, source, seqNo); objectName = name; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanServerPermission.java gcc-4.6.0/libjava/classpath/javax/management/MBeanServerPermission.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanServerPermission.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanServerPermission.java Tue Jan 11 19:46:05 2011 *************** public class MBeanServerPermission *** 161,170 **** super(checkName(name), actions); if (actions != null && actions.length() > 0) throw new IllegalArgumentException("The supplied action list " + ! "was not equal to null or the " + ! "empty string."); } ! /** * Returns true if the given object is also an {@link MBeanServerPermission} * with the same name. --- 161,170 ---- super(checkName(name), actions); if (actions != null && actions.length() > 0) throw new IllegalArgumentException("The supplied action list " + ! "was not equal to null or the " + ! "empty string."); } ! /** * Returns true if the given object is also an {@link MBeanServerPermission} * with the same name. *************** public class MBeanServerPermission *** 177,184 **** { if (obj instanceof MBeanServerPermission) { ! MBeanServerPermission o = (MBeanServerPermission) obj; ! return o.getName().equals(getName()); } return false; } --- 177,184 ---- { if (obj instanceof MBeanServerPermission) { ! MBeanServerPermission o = (MBeanServerPermission) obj; ! return o.getName().equals(getName()); } return false; } *************** public class MBeanServerPermission *** 209,236 **** { if (p instanceof MBeanServerPermission) { ! if (getName().equals("*")) ! return true; ! MBeanServerPermission msp = (MBeanServerPermission) p; ! String[] thisCaps = getName().split(","); ! String[] mspCaps = msp.getName().split(","); ! for (int a = 0; a < mspCaps.length; ++a) ! { ! boolean found = false; ! String mc = mspCaps[a].trim(); ! for (int b = 0; b < thisCaps.length; ++b) ! { ! String tc = thisCaps[b].trim(); ! if (tc.equals(mc)) ! found = true; ! if (tc.equals("createMBeanServer") && ! mc.equals("newMBeanServer")) ! found = true; ! } ! if (!found) ! return false; ! } ! return true; } return false; } --- 209,236 ---- { if (p instanceof MBeanServerPermission) { ! if (getName().equals("*")) ! return true; ! MBeanServerPermission msp = (MBeanServerPermission) p; ! String[] thisCaps = getName().split(","); ! String[] mspCaps = msp.getName().split(","); ! for (int a = 0; a < mspCaps.length; ++a) ! { ! boolean found = false; ! String mc = mspCaps[a].trim(); ! for (int b = 0; b < thisCaps.length; ++b) ! { ! String tc = thisCaps[b].trim(); ! if (tc.equals(mc)) ! found = true; ! if (tc.equals("createMBeanServer") && ! mc.equals("newMBeanServer")) ! found = true; ! } ! if (!found) ! return false; ! } ! return true; } return false; } *************** public class MBeanServerPermission *** 246,252 **** { return new MBeanServerPermissionCollection(); } ! /** * A collection of {@link MBeanServerPermission}s, stored * as a single permission with the union of the capabilities --- 246,252 ---- { return new MBeanServerPermissionCollection(); } ! /** * A collection of {@link MBeanServerPermission}s, stored * as a single permission with the union of the capabilities *************** public class MBeanServerPermission *** 284,329 **** public void add(Permission p) { if (isReadOnly()) ! throw new SecurityException("This collection is read only."); if (p instanceof MBeanServerPermission) ! { ! MBeanServerPermission msp = (MBeanServerPermission) p; ! if (collectionPermission == null) ! collectionPermission = msp; ! else ! { ! String finalString = collectionPermission.getName(); ! String[] cp = finalString.split(","); ! String[] np = msp.getName().split(","); ! int createms = finalString.indexOf("createMBeanServer"); ! int newms = finalString.indexOf("newMBeanServer"); ! for (int a = 0; a < np.length; ++a) ! { ! boolean found = false; ! String nps = np[a].trim(); ! for (int b = 0; b < cp.length; ++b) ! { ! String cps = cp[b].trim(); ! if (cps.equals(nps)) ! found = true; ! if (nps.equals("newMBeanServer") ! && createms != -1) ! found = true; ! if (nps.equals("createMBeanServer") ! && newms != -1) ! finalString = ! finalString.replace("newMBeanServer", ! "createMBeanServer"); ! } ! if (!found) ! finalString += "," + nps; ! } ! collectionPermission = ! new MBeanServerPermission(finalString); ! } ! } } ! /** * Returns an enumeration over the single permission. * --- 284,329 ---- public void add(Permission p) { if (isReadOnly()) ! throw new SecurityException("This collection is read only."); if (p instanceof MBeanServerPermission) ! { ! MBeanServerPermission msp = (MBeanServerPermission) p; ! if (collectionPermission == null) ! collectionPermission = msp; ! else ! { ! String finalString = collectionPermission.getName(); ! String[] cp = finalString.split(","); ! String[] np = msp.getName().split(","); ! int createms = finalString.indexOf("createMBeanServer"); ! int newms = finalString.indexOf("newMBeanServer"); ! for (int a = 0; a < np.length; ++a) ! { ! boolean found = false; ! String nps = np[a].trim(); ! for (int b = 0; b < cp.length; ++b) ! { ! String cps = cp[b].trim(); ! if (cps.equals(nps)) ! found = true; ! if (nps.equals("newMBeanServer") ! && createms != -1) ! found = true; ! if (nps.equals("createMBeanServer") ! && newms != -1) ! finalString = ! finalString.replace("newMBeanServer", ! "createMBeanServer"); ! } ! if (!found) ! finalString += "," + nps; ! } ! collectionPermission = ! new MBeanServerPermission(finalString); ! } ! } } ! /** * Returns an enumeration over the single permission. * *************** public class MBeanServerPermission *** 333,339 **** public Enumeration elements() { return new ! MBeanServerPermissionEnumeration(collectionPermission); } /** --- 333,339 ---- public Enumeration elements() { return new ! MBeanServerPermissionEnumeration(collectionPermission); } /** *************** public class MBeanServerPermission *** 365,372 **** */ public MBeanServerPermissionEnumeration(MBeanServerPermission p) { ! this.p = p; ! done = false; } /** --- 365,372 ---- */ public MBeanServerPermissionEnumeration(MBeanServerPermission p) { ! this.p = p; ! done = false; } /** *************** public class MBeanServerPermission *** 376,382 **** */ public boolean hasMoreElements() { ! return !done; } /** --- 376,382 ---- */ public boolean hasMoreElements() { ! return !done; } /** *************** public class MBeanServerPermission *** 386,398 **** */ public Permission nextElement() { ! if (hasMoreElements()) ! { ! done = true; ! return p; ! } ! else ! throw new NoSuchElementException("No more elements are available."); } } --- 386,398 ---- */ public Permission nextElement() { ! if (hasMoreElements()) ! { ! done = true; ! return p; ! } ! else ! throw new NoSuchElementException("No more elements are available."); } } *************** public class MBeanServerPermission *** 433,474 **** { if (!(name.equals("*"))) { ! String[] constraints = name.split(","); ! name = ""; ! boolean seenCreate = false; ! boolean seenNew = false; ! boolean start = true; ! for (int a = 0; a < constraints.length; ++a) ! { ! String next = constraints[a].trim(); ! if (!(next.equals("createMBeanServer") || ! next.equals("findMBeanServer") || ! next.equals("newMBeanServer") || ! next.equals("releaseMBeanServer"))) ! throw new IllegalArgumentException("An invalid constraint, " + ! next + ", was specified."); ! if (next.equals("newMBeanServer")) ! seenNew = true; ! else if (next.equals("createMBeanServer")) ! seenCreate = true; ! else ! { ! if (!start) ! name += ","; ! name += next; ! start = false; ! } ! } ! if (seenNew && !seenCreate) ! name += (start ? "" : ",") + "newMBeanServer"; ! else if (seenCreate) ! name += (start ? "" : ",") + "createMBeanServer"; } return name; } } - - - - --- 433,470 ---- { if (!(name.equals("*"))) { ! String[] constraints = name.split(","); ! name = ""; ! boolean seenCreate = false; ! boolean seenNew = false; ! boolean start = true; ! for (int a = 0; a < constraints.length; ++a) ! { ! String next = constraints[a].trim(); ! if (!(next.equals("createMBeanServer") || ! next.equals("findMBeanServer") || ! next.equals("newMBeanServer") || ! next.equals("releaseMBeanServer"))) ! throw new IllegalArgumentException("An invalid constraint, " + ! next + ", was specified."); ! if (next.equals("newMBeanServer")) ! seenNew = true; ! else if (next.equals("createMBeanServer")) ! seenCreate = true; ! else ! { ! if (!start) ! name += ","; ! name += next; ! start = false; ! } ! } ! if (seenNew && !seenCreate) ! name += (start ? "" : ",") + "newMBeanServer"; ! else if (seenCreate) ! name += (start ? "" : ",") + "createMBeanServer"; } return name; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MBeanTrustPermission.java gcc-4.6.0/libjava/classpath/javax/management/MBeanTrustPermission.java *** gcc-4.5.2/libjava/classpath/javax/management/MBeanTrustPermission.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MBeanTrustPermission.java Tue Jan 11 19:46:05 2011 *************** import java.security.BasicPermission; *** 46,53 **** * It has a target, but no actions. Valid values for the target * are "register" and "*", the latter * representing both the existing "register" target ! * and any future targets. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 46,53 ---- * It has a target, but no actions. Valid values for the target * are "register" and "*", the latter * representing both the existing "register" target ! * and any future targets. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public class MBeanTrustPermission *** 96,105 **** { super(target, actions); if ((!(target.equals("register"))) && ! (!(target.equals("*")))) throw new IllegalArgumentException("The target must be 'register' or '*'"); if (actions != null && !(actions.length() == 0)) ! throw new IllegalArgumentException("The actions must be null or ''"); } ! } --- 96,105 ---- { super(target, actions); if ((!(target.equals("register"))) && ! (!(target.equals("*")))) throw new IllegalArgumentException("The target must be 'register' or '*'"); if (actions != null && !(actions.length() == 0)) ! throw new IllegalArgumentException("The actions must be null or ''"); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/MalformedObjectNameException.java gcc-4.6.0/libjava/classpath/javax/management/MalformedObjectNameException.java *** gcc-4.5.2/libjava/classpath/javax/management/MalformedObjectNameException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/MalformedObjectNameException.java Tue Jan 11 19:46:05 2011 *************** public class MalformedObjectNameExceptio *** 73,76 **** } } - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/NotCompliantMBeanException.java gcc-4.6.0/libjava/classpath/javax/management/NotCompliantMBeanException.java *** gcc-4.5.2/libjava/classpath/javax/management/NotCompliantMBeanException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/NotCompliantMBeanException.java Tue Jan 11 19:46:05 2011 *************** public class NotCompliantMBeanException *** 75,78 **** } } - --- 75,77 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/Notification.java gcc-4.6.0/libjava/classpath/javax/management/Notification.java *** gcc-4.5.2/libjava/classpath/javax/management/Notification.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/Notification.java Tue Jan 11 19:46:05 2011 *************** public class Notification *** 139,145 **** /** * Creates a new {@link Notification} object with the specified type, ! * source, sequence number and timestamp. * * @param type the type of the notification. * @param source the source of the notification. --- 139,145 ---- /** * Creates a new {@link Notification} object with the specified type, ! * source, sequence number and timestamp. * * @param type the type of the notification. * @param source the source of the notification. *************** public class Notification *** 147,160 **** * @param timeStamp the time the notification was emitted. */ public Notification(String type, Object source, long sequenceNumber, ! long timeStamp) { this(type, source, sequenceNumber, timeStamp, ""); } /** * Creates a new {@link Notification} object with the specified type, ! * source, sequence number, timestamp and message. * * @param type the type of the notification. * @param source the source of the notification. --- 147,160 ---- * @param timeStamp the time the notification was emitted. */ public Notification(String type, Object source, long sequenceNumber, ! long timeStamp) { this(type, source, sequenceNumber, timeStamp, ""); } /** * Creates a new {@link Notification} object with the specified type, ! * source, sequence number, timestamp and message. * * @param type the type of the notification. * @param source the source of the notification. *************** public class Notification *** 163,169 **** * @param message the message contained in the notification. */ public Notification(String type, Object source, long sequenceNumber, ! long timeStamp, String message) { super(source); this.type = type; --- 163,169 ---- * @param message the message contained in the notification. */ public Notification(String type, Object source, long sequenceNumber, ! long timeStamp, String message) { super(source); this.type = type; *************** public class Notification *** 184,190 **** * @param message the message contained in the notification. */ public Notification(String type, Object source, long sequenceNumber, ! String message) { this(type, source, sequenceNumber, new Date().getTime(), message); } --- 184,190 ---- * @param message the message contained in the notification. */ public Notification(String type, Object source, long sequenceNumber, ! String message) { this(type, source, sequenceNumber, new Date().getTime(), message); } *************** public class Notification *** 304,318 **** /** * A textual representation of the notification. ! * * @return the notification in {@link java.lang.String} form. */ public String toString() { return getClass().getName() ! + "[message=" + message ! + ", sequenceNumber=" + sequenceNumber ! + ", source=" + source + ", timeStamp=" + timeStamp + ", type=" + type + ", userData=" + userData --- 304,318 ---- /** * A textual representation of the notification. ! * * @return the notification in {@link java.lang.String} form. */ public String toString() { return getClass().getName() ! + "[message=" + message ! + ", sequenceNumber=" + sequenceNumber ! + ", source=" + source + ", timeStamp=" + timeStamp + ", type=" + type + ", userData=" + userData *************** public class Notification *** 332,335 **** } } - --- 332,334 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/NotificationBroadcaster.java gcc-4.6.0/libjava/classpath/javax/management/NotificationBroadcaster.java *** gcc-4.5.2/libjava/classpath/javax/management/NotificationBroadcaster.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/NotificationBroadcaster.java Tue Jan 11 19:46:05 2011 *************** package javax.management; *** 55,61 **** */ public interface NotificationBroadcaster { ! /** * Registers the specified listener as a new recipient of * notifications from this bean. If non-null, the filter --- 55,61 ---- */ public interface NotificationBroadcaster { ! /** * Registers the specified listener as a new recipient of * notifications from this bean. If non-null, the filter *************** public interface NotificationBroadcaster *** 77,84 **** * @see #removeNotificationListener(NotificationListener) */ void addNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws IllegalArgumentException; /** --- 77,84 ---- * @see #removeNotificationListener(NotificationListener) */ void addNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws IllegalArgumentException; /** *************** public interface NotificationBroadcaster *** 109,112 **** throws ListenerNotFoundException; } - --- 109,111 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/NotificationBroadcasterSupport.java gcc-4.6.0/libjava/classpath/javax/management/NotificationBroadcasterSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/NotificationBroadcasterSupport.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/management/NotificationBroadcasterSupport.java Tue Jan 11 19:46:05 2011 *************** public class NotificationBroadcasterSupp *** 117,123 **** * thread; only calls which have successfully passed through the * filter are sent to the executor. This is equivalent to calling * NotificationBroadcasterSupport(executor, null). ! * * @param executor the executor to use for each call to * handleNotification(). * @since 1.6 --- 117,123 ---- * thread; only calls which have successfully passed through the * filter are sent to the executor. This is equivalent to calling * NotificationBroadcasterSupport(executor, null). ! * * @param executor the executor to use for each call to * handleNotification(). * @since 1.6 *************** public class NotificationBroadcasterSupp *** 138,144 **** * calling NotificationBroadcasterSupport(null, info). * * @param info an array of {@link MBeanNotificationInfo} objects ! * describing the notifications delivered by this * broadcaster. This may be null, which * is taken as being equivalent to an empty array. */ --- 138,144 ---- * calling NotificationBroadcasterSupport(null, info). * * @param info an array of {@link MBeanNotificationInfo} objects ! * describing the notifications delivered by this * broadcaster. This may be null, which * is taken as being equivalent to an empty array. */ *************** public class NotificationBroadcasterSupp *** 159,175 **** * information about the notifications on calls to * {@link #getNotificationInfo()}, where a clone will be * returned if the array is non-empty. ! * * @param executor the executor to use for each call to * handleNotification(). * @param info an array of {@link MBeanNotificationInfo} objects ! * describing the notifications delivered by this * broadcaster. This may be null, which * is taken as being equivalent to an empty array. * @since 1.6 */ public NotificationBroadcasterSupport(Executor executor, ! MBeanNotificationInfo... info) { this.executor = executor; this.info = info; --- 159,175 ---- * information about the notifications on calls to * {@link #getNotificationInfo()}, where a clone will be * returned if the array is non-empty. ! * * @param executor the executor to use for each call to * handleNotification(). * @param info an array of {@link MBeanNotificationInfo} objects ! * describing the notifications delivered by this * broadcaster. This may be null, which * is taken as being equivalent to an empty array. * @since 1.6 */ public NotificationBroadcasterSupport(Executor executor, ! MBeanNotificationInfo... info) { this.executor = executor; this.info = info; *************** public class NotificationBroadcasterSupp *** 196,203 **** * @see #removeNotificationListener(NotificationListener) */ public void addNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws IllegalArgumentException { if (listener == null) --- 196,203 ---- * @see #removeNotificationListener(NotificationListener) */ public void addNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws IllegalArgumentException { if (listener == null) *************** public class NotificationBroadcasterSupp *** 234,241 **** * @param passback the passback object of the listener. */ protected void handleNotification(NotificationListener listener, ! Notification notif, ! Object passback) { listener.handleNotification(notif, passback); } --- 234,241 ---- * @param passback the passback object of the listener. */ protected void handleNotification(NotificationListener listener, ! Notification notif, ! Object passback) { listener.handleNotification(notif, passback); } *************** public class NotificationBroadcasterSupp *** 260,274 **** boolean foundOne = false; while (it.hasNext()) { ! if (it.next().getListener() == listener) ! { ! it.remove(); ! foundOne = true; ! } } if (!foundOne) throw new ListenerNotFoundException("The specified listener, " + listener + ! "is not registered with this bean."); } /** --- 260,274 ---- boolean foundOne = false; while (it.hasNext()) { ! if (it.next().getListener() == listener) ! { ! it.remove(); ! foundOne = true; ! } } if (!foundOne) throw new ListenerNotFoundException("The specified listener, " + listener + ! "is not registered with this bean."); } /** *************** public class NotificationBroadcasterSupp *** 289,304 **** * java.lang.Object) */ public void removeNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws ListenerNotFoundException { if (!(listeners.remove(new ListenerData(listener, filter, passback)))) { ! throw new ListenerNotFoundException("The specified listener, " + listener + ! " with filter " + filter + ! "and passback " + passback + ! ", is not registered with this bean."); } } --- 289,304 ---- * java.lang.Object) */ public void removeNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws ListenerNotFoundException { if (!(listeners.remove(new ListenerData(listener, filter, passback)))) { ! throw new ListenerNotFoundException("The specified listener, " + listener + ! " with filter " + filter + ! "and passback " + passback + ! ", is not registered with this bean."); } } *************** public class NotificationBroadcasterSupp *** 326,344 **** { for (ListenerData ldata : listeners) { ! NotificationFilter filter = ldata.getFilter(); ! if (filter == null || filter.isNotificationEnabled(notif)) ! { ! if (executor == null) ! try ! { ! handleNotification(ldata.getListener(), notif, ! ldata.getPassback()); ! } ! catch (Exception e) { /* Ignore */ } ! else ! executor.execute(new DispatchTask(ldata, notif)); ! } } } --- 326,344 ---- { for (ListenerData ldata : listeners) { ! NotificationFilter filter = ldata.getFilter(); ! if (filter == null || filter.isNotificationEnabled(notif)) ! { ! if (executor == null) ! try ! { ! handleNotification(ldata.getListener(), notif, ! ldata.getPassback()); ! } ! catch (Exception e) { /* Ignore */ } ! else ! executor.execute(new DispatchTask(ldata, notif)); ! } } } *************** public class NotificationBroadcasterSupp *** 366,372 **** * @param notif the notification to send. */ public DispatchTask(ListenerData ldata, ! Notification notif) { this.ldata = ldata; this.notif = notif; --- 366,372 ---- * @param notif the notification to send. */ public DispatchTask(ListenerData ldata, ! Notification notif) { this.ldata = ldata; this.notif = notif; *************** public class NotificationBroadcasterSupp *** 378,390 **** public void run() { try ! { ! handleNotification(ldata.getListener(), notif, ! ldata.getPassback()); ! } catch (Exception e) { /* Ignore */ } } } } - --- 378,389 ---- public void run() { try ! { ! handleNotification(ldata.getListener(), notif, ! ldata.getPassback()); ! } catch (Exception e) { /* Ignore */ } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/NotificationEmitter.java gcc-4.6.0/libjava/classpath/javax/management/NotificationEmitter.java *** gcc-4.5.2/libjava/classpath/javax/management/NotificationEmitter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/NotificationEmitter.java Tue Jan 11 19:46:05 2011 *************** package javax.management; *** 49,55 **** public interface NotificationEmitter extends NotificationBroadcaster { ! /** * Removes the specified listener from the list of recipients * of notifications from this bean. Only the first instance with --- 49,55 ---- public interface NotificationEmitter extends NotificationBroadcaster { ! /** * Removes the specified listener from the list of recipients * of notifications from this bean. Only the first instance with *************** public interface NotificationEmitter *** 68,76 **** * java.lang.Object) */ void removeNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws ListenerNotFoundException; } - --- 68,75 ---- * java.lang.Object) */ void removeNotificationListener(NotificationListener listener, ! NotificationFilter filter, ! Object passback) throws ListenerNotFoundException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/NotificationFilter.java gcc-4.6.0/libjava/classpath/javax/management/NotificationFilter.java *** gcc-4.5.2/libjava/classpath/javax/management/NotificationFilter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/NotificationFilter.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 51,57 **** public interface NotificationFilter extends Serializable { ! /** * Returns true if the specified notification should be passed * on to the listener. --- 51,57 ---- public interface NotificationFilter extends Serializable { ! /** * Returns true if the specified notification should be passed * on to the listener. *************** public interface NotificationFilter *** 63,66 **** boolean isNotificationEnabled(Notification notification); } - --- 63,65 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/NotificationFilterSupport.java gcc-4.6.0/libjava/classpath/javax/management/NotificationFilterSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/NotificationFilterSupport.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/NotificationFilterSupport.java Tue Jan 11 19:46:05 2011 *************** public class NotificationFilterSupport *** 108,114 **** if (!enabledTypes.contains(prefix)) enabledTypes.add(prefix); } ! /** * Returns the list of enabled types for this * filter. --- 108,114 ---- if (!enabledTypes.contains(prefix)) enabledTypes.add(prefix); } ! /** * Returns the list of enabled types for this * filter. *************** public class NotificationFilterSupport *** 132,138 **** String nType = notif.getType(); for (String type : enabledTypes) if (nType.startsWith(type)) ! return true; return false; } --- 132,138 ---- String nType = notif.getType(); for (String type : enabledTypes) if (nType.startsWith(type)) ! return true; return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/NotificationListener.java gcc-4.6.0/libjava/classpath/javax/management/NotificationListener.java *** gcc-4.5.2/libjava/classpath/javax/management/NotificationListener.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/NotificationListener.java Tue Jan 11 19:46:05 2011 *************** import java.util.EventListener; *** 49,55 **** public interface NotificationListener extends EventListener { ! /** * Invoked by the notifying bean when a notification is to * be delivered to the recipient. As the transmission of --- 49,55 ---- public interface NotificationListener extends EventListener { ! /** * Invoked by the notifying bean when a notification is to * be delivered to the recipient. As the transmission of *************** public interface NotificationListener *** 67,70 **** void handleNotification(Notification notification, Object passback); } - --- 67,69 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/ObjectInstance.java gcc-4.6.0/libjava/classpath/javax/management/ObjectInstance.java *** gcc-4.5.2/libjava/classpath/javax/management/ObjectInstance.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/ObjectInstance.java Tue Jan 11 19:46:05 2011 *************** public class ObjectInstance *** 110,116 **** return false; ObjectInstance i = (ObjectInstance) obj; return (i.getClassName().equals(className) && ! i.getObjectName().equals(name)); } /** --- 110,116 ---- return false; ObjectInstance i = (ObjectInstance) obj; return (i.getClassName().equals(className) && ! i.getObjectName().equals(name)); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/ObjectName.java gcc-4.6.0/libjava/classpath/javax/management/ObjectName.java *** gcc-4.5.2/libjava/classpath/javax/management/ObjectName.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/ObjectName.java Tue Jan 11 19:46:05 2011 *************** import java.io.ObjectOutputStream; *** 101,107 **** * 'domain: key1 = value1 ' has a key ' key1 ' with value * ' value1 '. Newlines are disallowed, except where escaped in quoted * values. ! *

                            * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 101,107 ---- * 'domain: key1 = value1 ' has a key ' key1 ' with value * ' value1 '. Newlines are disallowed, except where escaped in quoted * values. ! *

                            * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public class ObjectName *** 156,168 **** { try { ! WILDCARD = new ObjectName(""); } catch (MalformedObjectNameException e) { ! throw (InternalError) (new InternalError("A problem occurred " + ! "initializing the ObjectName " + ! "wildcard.").initCause(e)); } } --- 156,168 ---- { try { ! WILDCARD = new ObjectName(""); } catch (MalformedObjectNameException e) { ! throw (InternalError) (new InternalError("A problem occurred " + ! "initializing the ObjectName " + ! "wildcard.").initCause(e)); } } *************** public class ObjectName *** 208,241 **** String[] pairs = rest.split(","); if (pairs.length == 0 && !isPattern()) throw new MalformedObjectNameException("A name that is not a " + ! "pattern must contain at " + ! "least one key-value pair."); propertyListString = ""; for (int a = 0; a < pairs.length; ++a) { ! if (pairs[a].equals("*")) ! { ! if (propertyListPattern) ! throw new MalformedObjectNameException("Multiple wildcards " + ! "in properties."); ! propertyListPattern = true; ! continue; ! } ! int sep = pairs[a].indexOf('='); ! if (sep == -1) ! throw new MalformedObjectNameException("A key must be " + ! "followed by a value."); ! String key = pairs[a].substring(0, sep); ! if (properties.containsKey(key)) ! throw new MalformedObjectNameException("The same key occurs " + ! "more than once."); ! String value = pairs[a].substring(sep+1); ! properties.put(key, value); ! propertyListString += key + "=" + value + ","; } if (propertyListString.length() > 0) propertyListString = ! propertyListString.substring(0, propertyListString.length() - 1); checkComponents(); } --- 208,241 ---- String[] pairs = rest.split(","); if (pairs.length == 0 && !isPattern()) throw new MalformedObjectNameException("A name that is not a " + ! "pattern must contain at " + ! "least one key-value pair."); propertyListString = ""; for (int a = 0; a < pairs.length; ++a) { ! if (pairs[a].equals("*")) ! { ! if (propertyListPattern) ! throw new MalformedObjectNameException("Multiple wildcards " + ! "in properties."); ! propertyListPattern = true; ! continue; ! } ! int sep = pairs[a].indexOf('='); ! if (sep == -1) ! throw new MalformedObjectNameException("A key must be " + ! "followed by a value."); ! String key = pairs[a].substring(0, sep); ! if (properties.containsKey(key)) ! throw new MalformedObjectNameException("The same key occurs " + ! "more than once."); ! String value = pairs[a].substring(sep+1); ! properties.put(key, value); ! propertyListString += key + "=" + value + ","; } if (propertyListString.length() > 0) propertyListString = ! propertyListString.substring(0, propertyListString.length() - 1); checkComponents(); } *************** public class ObjectName *** 300,347 **** { if (domain.indexOf(':') != -1) throw new MalformedObjectNameException("The domain includes a ':' " + ! "character."); if (domain.indexOf('\n') != -1) throw new MalformedObjectNameException("The domain includes a newline " + ! "character."); char[] keychars = new char[] { '\n', ':', ',', '*', '?', '=' }; char[] valchars = new char[] { '\n', ':', ',', '=' }; for (Map.Entry entry : properties.entrySet()) { ! for (int a = 0; a < keychars.length; ++a) ! if (entry.getKey().indexOf(keychars[a]) != -1) ! throw new MalformedObjectNameException("A key contains a '" + ! keychars[a] + "' " + ! "character."); ! String value = entry.getValue(); ! int quote = value.indexOf('"'); ! if (quote == 0) ! { ! try ! { ! unquote(value); ! } ! catch (IllegalArgumentException e) ! { ! throw (MalformedObjectNameException) ! new MalformedObjectNameException("The quoted value is " + ! "invalid.").initCause(e); ! } ! } ! else if (quote != -1) ! throw new MalformedObjectNameException("A value contains " + ! "a '\"' character."); ! else ! { ! for (int a = 0; a < valchars.length; ++a) ! if (value.indexOf(valchars[a]) != -1) ! throw new MalformedObjectNameException("A value contains " + ! "a '" + valchars[a] + "' " + ! "character."); ! ! } ! if (value.indexOf('*') != -1 || value.indexOf('?') != -1) ! propertyValuePattern = true; } } --- 300,347 ---- { if (domain.indexOf(':') != -1) throw new MalformedObjectNameException("The domain includes a ':' " + ! "character."); if (domain.indexOf('\n') != -1) throw new MalformedObjectNameException("The domain includes a newline " + ! "character."); char[] keychars = new char[] { '\n', ':', ',', '*', '?', '=' }; char[] valchars = new char[] { '\n', ':', ',', '=' }; for (Map.Entry entry : properties.entrySet()) { ! for (int a = 0; a < keychars.length; ++a) ! if (entry.getKey().indexOf(keychars[a]) != -1) ! throw new MalformedObjectNameException("A key contains a '" + ! keychars[a] + "' " + ! "character."); ! String value = entry.getValue(); ! int quote = value.indexOf('"'); ! if (quote == 0) ! { ! try ! { ! unquote(value); ! } ! catch (IllegalArgumentException e) ! { ! throw (MalformedObjectNameException) ! new MalformedObjectNameException("The quoted value is " + ! "invalid.").initCause(e); ! } ! } ! else if (quote != -1) ! throw new MalformedObjectNameException("A value contains " + ! "a '\"' character."); ! else ! { ! for (int a = 0; a < valchars.length; ++a) ! if (value.indexOf(valchars[a]) != -1) ! throw new MalformedObjectNameException("A value contains " + ! "a '" + valchars[a] + "' " + ! "character."); ! ! } ! if (value.indexOf('*') != -1 || value.indexOf('?') != -1) ! propertyValuePattern = true; } } *************** public class ObjectName *** 375,407 **** if (isDomainPattern()) { ! if (!domainMatches(domain, 0, name.getDomain(), 0)) ! return false; } else { ! if (!domain.equals(name.getDomain())) ! return false; } if (isPropertyPattern()) { ! Hashtable oProps = name.getKeyPropertyList(); ! for (Map.Entry entry : properties.entrySet()) ! { ! String key = entry.getKey(); ! if (!(oProps.containsKey(key))) ! return false; ! String val = entry.getValue(); ! if (!(val.equals(oProps.get(key)))) ! return false; ! } } else { ! if (!getCanonicalKeyPropertyListString().equals ! (name.getCanonicalKeyPropertyListString())) ! return false; } return true; } --- 375,407 ---- if (isDomainPattern()) { ! if (!domainMatches(domain, 0, name.getDomain(), 0)) ! return false; } else { ! if (!domain.equals(name.getDomain())) ! return false; } if (isPropertyPattern()) { ! Hashtable oProps = name.getKeyPropertyList(); ! for (Map.Entry entry : properties.entrySet()) ! { ! String key = entry.getKey(); ! if (!(oProps.containsKey(key))) ! return false; ! String val = entry.getValue(); ! if (!(val.equals(oProps.get(key)))) ! return false; ! } } else { ! if (!getCanonicalKeyPropertyListString().equals ! (name.getCanonicalKeyPropertyListString())) ! return false; } return true; } *************** public class ObjectName *** 416,444 **** * @return true if the domain matches the pattern. */ private static boolean domainMatches(String pattern, int patternindex, ! String domain, int domainindex) { while (patternindex < pattern.length()) { ! char c = pattern.charAt(patternindex++); ! ! if (c == '*') ! { ! for (int i = domain.length(); i >= domainindex; i--) ! { ! if (domainMatches(pattern, patternindex, domain, i)) ! return true; ! } ! return false; ! } ! if (domainindex >= domain.length()) ! return false; ! ! if (c != '?' && c != domain.charAt(domainindex)) ! return false; ! domainindex++; } return true; } --- 416,444 ---- * @return true if the domain matches the pattern. */ private static boolean domainMatches(String pattern, int patternindex, ! String domain, int domainindex) { while (patternindex < pattern.length()) { ! char c = pattern.charAt(patternindex++); ! if (c == '*') ! { ! for (int i = domain.length(); i >= domainindex; i--) ! { ! if (domainMatches(pattern, patternindex, domain, i)) ! return true; ! } ! return false; ! } ! if (domainindex >= domain.length()) ! return false; ! ! if (c != '?' && c != domain.charAt(domainindex)) ! return false; ! ! domainindex++; } return true; } *************** public class ObjectName *** 457,464 **** { if (obj instanceof ObjectName) { ! ObjectName o = (ObjectName) obj; ! return getCanonicalName().equals(o.getCanonicalName()); } return false; } --- 457,464 ---- { if (obj instanceof ObjectName) { ! ObjectName o = (ObjectName) obj; ! return getCanonicalName().equals(o.getCanonicalName()); } return false; } *************** public class ObjectName *** 467,473 **** * Returns the property list in canonical form. The keys * are ordered using the lexicographic ordering used by * {@link java.lang.String#compareTo(java.lang.Object)}. ! * * @return the property list, with the keys in lexicographic * order. */ --- 467,473 ---- * Returns the property list in canonical form. The keys * are ordered using the lexicographic ordering used by * {@link java.lang.String#compareTo(java.lang.Object)}. ! * * @return the property list, with the keys in lexicographic * order. */ *************** public class ObjectName *** 477,486 **** Iterator> i = properties.entrySet().iterator(); while (i.hasNext()) { ! Map.Entry entry = i.next(); ! builder.append(entry.getKey() + "=" + entry.getValue()); ! if (i.hasNext()) ! builder.append(","); } return builder.toString(); } --- 477,486 ---- Iterator> i = properties.entrySet().iterator(); while (i.hasNext()) { ! Map.Entry entry = i.next(); ! builder.append(entry.getKey() + "=" + entry.getValue()); ! if (i.hasNext()) ! builder.append(","); } return builder.toString(); } *************** public class ObjectName *** 488,494 **** /** *

                            * Returns the name as a string in canonical form. More precisely, ! * this returns a string of the format * <domain>:<properties><wild>. <properties> * is the same value as returned by * {@link #getCanonicalKeyPropertyListString()}. <wild> --- 488,494 ---- /** *

                            * Returns the name as a string in canonical form. More precisely, ! * this returns a string of the format * <domain>:<properties><wild>. <properties> * is the same value as returned by * {@link #getCanonicalKeyPropertyListString()}. <wild> *************** public class ObjectName *** 499,505 **** *

                          • '*' if <properties> is empty.
                          • *
                          • ',*' if there is at least one key-value pair.
                          • * ! * * @return the canonical string form of the object name, as specified * above. */ --- 499,505 ---- *
                          • '*' if <properties> is empty.
                          • *
                          • ',*' if there is at least one key-value pair.
                          • * ! * * @return the canonical string form of the object name, as specified * above. */ *************** public class ObjectName *** 539,551 **** { try { ! return new ObjectName(name.getCanonicalName()); } catch (MalformedObjectNameException e) { ! throw (InternalError) ! (new InternalError("The canonical name of " + ! "the given name is invalid.").initCause(e)); } } --- 539,551 ---- { try { ! return new ObjectName(name.getCanonicalName()); } catch (MalformedObjectNameException e) { ! throw (InternalError) ! (new InternalError("The canonical name of " + ! "the given name is invalid.").initCause(e)); } } *************** public class ObjectName *** 557,563 **** * * @param name the {@link ObjectName} to provide an instance of. * @return a instance for the given name, which may or may not be a subclass ! * of {@link ObjectName}. * @throws MalformedObjectNameException the domain, a key or a value * contains an illegal * character or a value --- 557,563 ---- * * @param name the {@link ObjectName} to provide an instance of. * @return a instance for the given name, which may or may not be a subclass ! * of {@link ObjectName}. * @throws MalformedObjectNameException the domain, a key or a value * contains an illegal * character or a value *************** public class ObjectName *** 582,588 **** * @param key the key of the property. * @param value the value of the property. * @return a instance for the given name, which may or may not be a subclass ! * of {@link ObjectName}. * @throws MalformedObjectNameException the domain, a key or a value * contains an illegal * character or a value --- 582,588 ---- * @param key the key of the property. * @param value the value of the property. * @return a instance for the given name, which may or may not be a subclass ! * of {@link ObjectName}. * @throws MalformedObjectNameException the domain, a key or a value * contains an illegal * character or a value *************** public class ObjectName *** 606,612 **** * @param domain the domain part of the object name. * @param properties the key-value property pairs. * @return a instance for the given name, which may or may not be a subclass ! * of {@link ObjectName}. * @throws MalformedObjectNameException the domain, a key or a value * contains an illegal * character or a value --- 606,612 ---- * @param domain the domain part of the object name. * @param properties the key-value property pairs. * @return a instance for the given name, which may or may not be a subclass ! * of {@link ObjectName}. * @throws MalformedObjectNameException the domain, a key or a value * contains an illegal * character or a value *************** public class ObjectName *** 615,621 **** * @throws NullPointerException if name is null. */ public static ObjectName getInstance(String domain, ! Hashtable properties) throws MalformedObjectNameException { return new ObjectName(domain, properties); --- 615,621 ---- * @throws NullPointerException if name is null. */ public static ObjectName getInstance(String domain, ! Hashtable properties) throws MalformedObjectNameException { return new ObjectName(domain, properties); *************** public class ObjectName *** 654,660 **** * list. If the object name was created using {@link * ObjectName(String)}, then this string will contain the properties * in the same order they were given in at creation. ! * * @return the property list. */ public String getKeyPropertyListString() --- 654,660 ---- * list. If the object name was created using {@link * ObjectName(String)}, then this string will contain the properties * in the same order they were given in at creation. ! * * @return the property list. */ public String getKeyPropertyListString() *************** public class ObjectName *** 784,791 **** *
                          • Otherwise, s is used verbatim. *
                          • *
                          • The string is terminated with a closing quote character, '"'.
                          • ! * ! * * @param string the string to quote. * @return a quoted version of the supplied string. * @throws NullPointerException if string is null. --- 784,791 ---- *
                          • Otherwise, s is used verbatim. *
                          • *
                          • The string is terminated with a closing quote character, '"'.
                          • ! * ! * * @param string the string to quote. * @return a quoted version of the supplied string. * @throws NullPointerException if string is null. *************** public class ObjectName *** 796,822 **** builder.append('"'); for (int a = 0; a < string.length(); ++a) { ! char s = string.charAt(a); ! switch (s) ! { ! case '"': ! builder.append("\\\""); ! break; ! case '*': ! builder.append("\\*"); ! break; ! case '?': ! builder.append("\\?"); ! break; ! case '\\': ! builder.append("\\\\"); ! break; ! case '\n': ! builder.append("\\\n"); ! break; ! default: ! builder.append(s); ! } } builder.append('"'); return builder.toString(); --- 796,822 ---- builder.append('"'); for (int a = 0; a < string.length(); ++a) { ! char s = string.charAt(a); ! switch (s) ! { ! case '"': ! builder.append("\\\""); ! break; ! case '*': ! builder.append("\\*"); ! break; ! case '?': ! builder.append("\\?"); ! break; ! case '\\': ! builder.append("\\\\"); ! break; ! case '\n': ! builder.append("\\\n"); ! break; ! default: ! builder.append(s); ! } } builder.append('"'); return builder.toString(); *************** public class ObjectName *** 881,887 **** * @param in the input stream to read from. * @throws IOException if an I/O error occurs. */ ! private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); --- 881,887 ---- * @param in the input stream to read from. * @throws IOException if an I/O error occurs. */ ! private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); *************** public class ObjectName *** 908,914 **** * @return the unquoted string. * @throws NullPointerException if q is null. * @throws IllegalArgumentException if the string is not a valid ! * quoted string i.e. it is not * surrounded by quotation marks * and/or characters are not properly * escaped. --- 908,914 ---- * @return the unquoted string. * @throws NullPointerException if q is null. * @throws IllegalArgumentException if the string is not a valid ! * quoted string i.e. it is not * surrounded by quotation marks * and/or characters are not properly * escaped. *************** public class ObjectName *** 917,941 **** { if (q.charAt(0) != '"') throw new IllegalArgumentException("The string does " + ! "not start with a quote."); if (q.charAt(q.length() - 1) != '"') throw new IllegalArgumentException("The string does " + ! "not end with a quote."); CPStringBuilder builder = new CPStringBuilder(); for (int a = 1; a < (q.length() - 1); ++a) { ! char n = q.charAt(a); ! if (n == '\\') ! { ! n = q.charAt(++a); ! if (n != '"' && n != '?' && n != '*' && ! n != 'n' && n != '\\') ! throw new IllegalArgumentException("Illegal escaped character: " ! + n); ! } ! else if (n == '"' || n == '\n') ! throw new IllegalArgumentException("Illegal character: " + n); ! builder.append(n); } return builder.toString(); --- 917,941 ---- { if (q.charAt(0) != '"') throw new IllegalArgumentException("The string does " + ! "not start with a quote."); if (q.charAt(q.length() - 1) != '"') throw new IllegalArgumentException("The string does " + ! "not end with a quote."); CPStringBuilder builder = new CPStringBuilder(); for (int a = 1; a < (q.length() - 1); ++a) { ! char n = q.charAt(a); ! if (n == '\\') ! { ! n = q.charAt(++a); ! if (n != '"' && n != '?' && n != '*' && ! n != 'n' && n != '\\') ! throw new IllegalArgumentException("Illegal escaped character: " ! + n); ! } ! else if (n == '"' || n == '\n') ! throw new IllegalArgumentException("Illegal character: " + n); ! builder.append(n); } return builder.toString(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/OperationsException.java gcc-4.6.0/libjava/classpath/javax/management/OperationsException.java *** gcc-4.5.2/libjava/classpath/javax/management/OperationsException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/OperationsException.java Tue Jan 11 19:46:05 2011 *************** public class OperationsException *** 73,76 **** } } - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/PersistentMBean.java gcc-4.6.0/libjava/classpath/javax/management/PersistentMBean.java *** gcc-4.5.2/libjava/classpath/javax/management/PersistentMBean.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/PersistentMBean.java Tue Jan 11 19:46:05 2011 *************** public interface PersistentMBean *** 74,80 **** */ void load() throws MBeanException, RuntimeOperationsException, ! InstanceNotFoundException; /** *

                            --- 74,80 ---- */ void load() throws MBeanException, RuntimeOperationsException, ! InstanceNotFoundException; /** *

                            *************** public interface PersistentMBean *** 121,126 **** */ void store() throws MBeanException, RuntimeOperationsException, ! InstanceNotFoundException; } --- 121,126 ---- */ void store() throws MBeanException, RuntimeOperationsException, ! InstanceNotFoundException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/Query.java gcc-4.6.0/libjava/classpath/javax/management/Query.java *** gcc-4.5.2/libjava/classpath/javax/management/Query.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/Query.java Tue Jan 11 19:46:05 2011 *************** package javax.management; *** 42,48 **** * may be used to list and enumerate management beans, via * the {@link MBeanServer}. By using the methods in this class, * complex queries can be created from their more basic ! * components. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 42,48 ---- * may be used to list and enumerate management beans, via * the {@link MBeanServer}. By using the methods in this class, * complex queries can be created from their more basic ! * components. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public class Query *** 61,67 **** * query to be used in serialization. */ public static final int MINUS = 1; ! /** * A code representing the {@link #times(ValueExp, ValueExp) * query to be used in serialization. --- 61,67 ---- * query to be used in serialization. */ public static final int MINUS = 1; ! /** * A code representing the {@link #times(ValueExp, ValueExp) * query to be used in serialization. *************** public class Query *** 133,139 **** * {@link MatchQueryExp}. */ public static QueryExp anySubString(AttributeValueExp attrib, ! StringValueExp string) { return new MatchQueryExp(attrib, "*" + string.getValue() + "*"); } --- 133,139 ---- * {@link MatchQueryExp}. */ public static QueryExp anySubString(AttributeValueExp attrib, ! StringValueExp string) { return new MatchQueryExp(attrib, "*" + string.getValue() + "*"); } *************** public class Query *** 168,174 **** * {@link QualifiedAttributeValueExp}. */ public static AttributeValueExp attr(String className, ! String name) { return new QualifiedAttributeValueExp(className, name); } --- 168,174 ---- * {@link QualifiedAttributeValueExp}. */ public static AttributeValueExp attr(String className, ! String name) { return new QualifiedAttributeValueExp(className, name); } *************** public class Query *** 189,195 **** * {@link BetweenQueryExp}. */ public static QueryExp between(ValueExp v1, ValueExp v2, ! ValueExp v3) { return new BetweenQueryExp(v1, v2, v3); } --- 189,195 ---- * {@link BetweenQueryExp}. */ public static QueryExp between(ValueExp v1, ValueExp v2, ! ValueExp v3) { return new BetweenQueryExp(v1, v2, v3); } *************** public class Query *** 213,219 **** /** * Returns a value expression which evaluates to the result of ! * dividing v1 by v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 213,219 ---- /** * Returns a value expression which evaluates to the result of ! * dividing v1 by v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 229,235 **** /** * Returns a query expression which evaluates to the result of ! * comparing v1 to v2 for equality. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 229,235 ---- /** * Returns a query expression which evaluates to the result of ! * comparing v1 to v2 for equality. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 257,263 **** * {@link MatchQueryExp}. */ public static QueryExp finalSubString(AttributeValueExp attrib, ! StringValueExp string) { return new MatchQueryExp(attrib, "*" + string.getValue()); } --- 257,263 ---- * {@link MatchQueryExp}. */ public static QueryExp finalSubString(AttributeValueExp attrib, ! StringValueExp string) { return new MatchQueryExp(attrib, "*" + string.getValue()); } *************** public class Query *** 265,271 **** /** * Returns a query expression which evaluates to the result of * comparing v1 to v2 to see if ! * v1 is greater than or equal to v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 265,271 ---- /** * Returns a query expression which evaluates to the result of * comparing v1 to v2 to see if ! * v1 is greater than or equal to v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 282,288 **** /** * Returns a query expression which evaluates to the result of * comparing v1 to v2 to see if ! * v1 is greater than v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 282,288 ---- /** * Returns a query expression which evaluates to the result of * comparing v1 to v2 to see if ! * v1 is greater than v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 327,333 **** * {@link MatchQueryExp}. */ public static QueryExp initialSubString(AttributeValueExp attrib, ! StringValueExp string) { return new MatchQueryExp(attrib, string.getValue() + "*"); } --- 327,333 ---- * {@link MatchQueryExp}. */ public static QueryExp initialSubString(AttributeValueExp attrib, ! StringValueExp string) { return new MatchQueryExp(attrib, string.getValue() + "*"); } *************** public class Query *** 357,363 **** /** * Returns a query expression which evaluates to the result of * comparing v1 to v2 to see if ! * v1 is less than or equal to v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 357,363 ---- /** * Returns a query expression which evaluates to the result of * comparing v1 to v2 to see if ! * v1 is less than or equal to v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 374,380 **** /** * Returns a query expression which evaluates to the result of * comparing v1 to v2 to see if ! * v1 is less than v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 374,380 ---- /** * Returns a query expression which evaluates to the result of * comparing v1 to v2 to see if ! * v1 is less than v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 422,435 **** * as the non-public class {@link MatchQueryExp}. */ public static QueryExp match(AttributeValueExp attrib, ! StringValueExp string) { return new MatchQueryExp(attrib, string.getValue()); } /** * Returns a value expression which evaluates to the result of ! * subtracting v2 from v1. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 422,435 ---- * as the non-public class {@link MatchQueryExp}. */ public static QueryExp match(AttributeValueExp attrib, ! StringValueExp string) { return new MatchQueryExp(attrib, string.getValue()); } /** * Returns a value expression which evaluates to the result of ! * subtracting v2 from v1. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 474,480 **** /** * Returns a value expression which evaluates to the result of ! * adding v1 to v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 474,480 ---- /** * Returns a value expression which evaluates to the result of ! * adding v1 to v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 490,496 **** /** * Returns a value expression which evaluates to the result of ! * multiplying v1 by v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. --- 490,496 ---- /** * Returns a value expression which evaluates to the result of ! * multiplying v1 by v2. * * @param v1 the left-hand operand. * @param v2 the right-hand operand. *************** public class Query *** 505,511 **** } /** ! * Returns a value expression wrapping the specified value. * * @param val the boolean value to wrap. * @return a value expression wrapping val. This --- 505,511 ---- } /** ! * Returns a value expression wrapping the specified value. * * @param val the boolean value to wrap. * @return a value expression wrapping val. This *************** public class Query *** 518,524 **** } /** ! * Returns a value expression wrapping the specified value. * * @param val the double value to wrap. * @return a value expression wrapping val. This --- 518,524 ---- } /** ! * Returns a value expression wrapping the specified value. * * @param val the double value to wrap. * @return a value expression wrapping val. This *************** public class Query *** 531,537 **** } /** ! * Returns a value expression wrapping the specified value. * * @param val the float value to wrap. * @return a value expression wrapping val. This --- 531,537 ---- } /** ! * Returns a value expression wrapping the specified value. * * @param val the float value to wrap. * @return a value expression wrapping val. This *************** public class Query *** 544,550 **** } /** ! * Returns a value expression wrapping the specified value. * * @param val the integer value to wrap. * @return a value expression wrapping val. This --- 544,550 ---- } /** ! * Returns a value expression wrapping the specified value. * * @param val the integer value to wrap. * @return a value expression wrapping val. This *************** public class Query *** 557,563 **** } /** ! * Returns a value expression wrapping the specified value. * * @param val the long value to wrap. * @return a value expression wrapping val. This --- 557,563 ---- } /** ! * Returns a value expression wrapping the specified value. * * @param val the long value to wrap. * @return a value expression wrapping val. This *************** public class Query *** 570,576 **** } /** ! * Returns a value expression wrapping the specified value. * * @param val the {@link Number} value to wrap. * @return a value expression wrapping val. This --- 570,576 ---- } /** ! * Returns a value expression wrapping the specified value. * * @param val the {@link Number} value to wrap. * @return a value expression wrapping val. This *************** public class Query *** 583,589 **** } /** ! * Returns a value expression wrapping the specified string. * * @param val the {@link String} to wrap. * @return a {@link StringValueExp} wrapping val. --- 583,589 ---- } /** ! * Returns a value expression wrapping the specified string. * * @param val the {@link String} to wrap. * @return a {@link StringValueExp} wrapping val. *************** public class Query *** 609,615 **** * Compatible with JDK 1.6 */ private static final long serialVersionUID = -1081892073854801359L; ! /** * The first operand. */ --- 609,615 ---- * Compatible with JDK 1.6 */ private static final long serialVersionUID = -1081892073854801359L; ! /** * The first operand. */ *************** public class Query *** 653,659 **** */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return exp1.apply(name) && exp2.apply(name); } --- 653,659 ---- */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return exp1.apply(name) && exp2.apply(name); } *************** public class Query *** 676,682 **** * Compatible with JDK 1.6 */ private static final long serialVersionUID = -7156603696948215014L; ! /** * The attribute to match against. */ --- 676,682 ---- * Compatible with JDK 1.6 */ private static final long serialVersionUID = -7156603696948215014L; ! /** * The attribute to match against. */ *************** public class Query *** 695,701 **** * @param pattern the pattern. */ public MatchQueryExp(AttributeValueExp exp, ! String pattern) { this.exp = exp; this.pattern = pattern; --- 695,701 ---- * @param pattern the pattern. */ public MatchQueryExp(AttributeValueExp exp, ! String pattern) { this.exp = exp; this.pattern = pattern; *************** public class Query *** 720,726 **** */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { String val = ((StringValueExp) exp.apply(name)).getValue(); int valPos = 0; --- 720,726 ---- */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { String val = ((StringValueExp) exp.apply(name)).getValue(); int valPos = 0; *************** public class Query *** 728,810 **** int fallbackP = -1; boolean backslash = false; for (int a = 0; a < pattern.length(); ++a) ! { ! boolean matched = false; ! int next = pattern.codePointAt(a); ! if (!backslash) ! { ! if (next == '?' && valPos < val.length()) ! { ! ++valPos; ! matched = true; ! } ! else if (next == '*') ! { ! fallback = valPos; ! fallbackP = a; ! matched = true; ! } ! else if (next == '[' && valPos < val.length()) ! { ! boolean negated = false; ! int b = a + 1; ! int classChar = pattern.codePointAt(b); ! do ! { ! if (classChar == '!' && b == a + 1) ! negated = true; ! else if (pattern.codePointAt(b + 1) == '-' && ! pattern.codePointAt(b + 2) != ']') ! { ! if (classChar > pattern.codePointAt(b + 2)) ! throw new BadStringOperationException("Invalid range: " + ! classChar + " to " + ! pattern.codePointAt(b+2)); ! for (int c = classChar; c <= pattern.codePointAt(b+2); ++c) ! if (val.codePointAt(valPos) == c) ! matched = true; ! b = b + 2; ! } ! else if (val.codePointAt(valPos) == classChar) ! matched = true; ! ++b; ! classChar = pattern.codePointAt(b); ! } while (classChar != ']'); ! if (negated) ! matched = !matched; ! ++valPos; ! a = b; ! } ! else if (next == '\\') ! backslash = true; ! else if (valPos < val.length() && next == val.codePointAt(valPos)) ! { ! matched = true; ! ++valPos; ! } ! } ! else ! { ! backslash = false; ! if (valPos < val.length() && next == val.codePointAt(valPos)) ! { ! matched = true; ! ++valPos; ! } ! } ! if (!matched) ! if (fallback != -1) ! { ! ++fallback; ! valPos = fallback; ! a = fallbackP; ! if (valPos == val.length()) ! return false; ! continue; ! } ! else ! return false; ! } return true; } } --- 728,810 ---- int fallbackP = -1; boolean backslash = false; for (int a = 0; a < pattern.length(); ++a) ! { ! boolean matched = false; ! int next = pattern.codePointAt(a); ! if (!backslash) ! { ! if (next == '?' && valPos < val.length()) ! { ! ++valPos; ! matched = true; ! } ! else if (next == '*') ! { ! fallback = valPos; ! fallbackP = a; ! matched = true; ! } ! else if (next == '[' && valPos < val.length()) ! { ! boolean negated = false; ! int b = a + 1; ! int classChar = pattern.codePointAt(b); ! do ! { ! if (classChar == '!' && b == a + 1) ! negated = true; ! else if (pattern.codePointAt(b + 1) == '-' && ! pattern.codePointAt(b + 2) != ']') ! { ! if (classChar > pattern.codePointAt(b + 2)) ! throw new BadStringOperationException("Invalid range: " + ! classChar + " to " + ! pattern.codePointAt(b+2)); ! for (int c = classChar; c <= pattern.codePointAt(b+2); ++c) ! if (val.codePointAt(valPos) == c) ! matched = true; ! b = b + 2; ! } ! else if (val.codePointAt(valPos) == classChar) ! matched = true; ! ++b; ! classChar = pattern.codePointAt(b); ! } while (classChar != ']'); ! if (negated) ! matched = !matched; ! ++valPos; ! a = b; ! } ! else if (next == '\\') ! backslash = true; ! else if (valPos < val.length() && next == val.codePointAt(valPos)) ! { ! matched = true; ! ++valPos; ! } ! } ! else ! { ! backslash = false; ! if (valPos < val.length() && next == val.codePointAt(valPos)) ! { ! matched = true; ! ++valPos; ! } ! } ! if (!matched) ! if (fallback != -1) ! { ! ++fallback; ! valPos = fallback; ! a = fallbackP; ! if (valPos == val.length()) ! return false; ! continue; ! } ! else ! return false; ! } return true; } } *************** public class Query *** 867,888 **** */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { try ! { ! if (!(QueryEval.getMBeanServer().getObjectInstance(name).getClassName().equals(className))) ! throw new BadAttributeValueExpException("The value is not from " + ! "the correct class."); ! } catch (InstanceNotFoundException e) ! { ! throw (BadAttributeValueExpException) ! new BadAttributeValueExpException("The named bean is not registered.").initCause(e); ! } return super.apply(name); } ! } /** --- 867,888 ---- */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { try ! { ! if (!(QueryEval.getMBeanServer().getObjectInstance(name).getClassName().equals(className))) ! throw new BadAttributeValueExpException("The value is not from " + ! "the correct class."); ! } catch (InstanceNotFoundException e) ! { ! throw (BadAttributeValueExpException) ! new BadAttributeValueExpException("The named bean is not registered.").initCause(e); ! } return super.apply(name); } ! } /** *************** public class Query *** 902,908 **** * Compatible with JDK 1.6 */ private static final long serialVersionUID = -2933597532866307444L; ! /** * The value to compare. */ --- 902,908 ---- * Compatible with JDK 1.6 */ private static final long serialVersionUID = -2933597532866307444L; ! /** * The value to compare. */ *************** public class Query *** 928,934 **** * @param exp3 the upper bound. */ public BetweenQueryExp(ValueExp exp1, ValueExp exp2, ! ValueExp exp3) { this.exp1 = exp1; this.exp2 = exp2; --- 928,934 ---- * @param exp3 the upper bound. */ public BetweenQueryExp(ValueExp exp1, ValueExp exp2, ! ValueExp exp3) { this.exp1 = exp1; this.exp2 = exp2; *************** public class Query *** 954,960 **** */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { String v1 = exp1.apply(name).toString(); String v2 = exp2.apply(name).toString(); --- 954,960 ---- */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { String v1 = exp1.apply(name).toString(); String v2 = exp2.apply(name).toString(); *************** public class Query *** 999,1017 **** */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { try ! { ! return new StringValueExp(QueryEval.getMBeanServer().getObjectInstance(name).getClassName()); ! } catch (InstanceNotFoundException e) ! { ! throw (BadAttributeValueExpException) ! new BadAttributeValueExpException("The named bean is not registered.").initCause(e); ! } } ! } /** --- 999,1017 ---- */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { try ! { ! return new StringValueExp(QueryEval.getMBeanServer().getObjectInstance(name).getClassName()); ! } catch (InstanceNotFoundException e) ! { ! throw (BadAttributeValueExpException) ! new BadAttributeValueExpException("The named bean is not registered.").initCause(e); ! } } ! } /** *************** public class Query *** 1032,1038 **** * Compatible with JDK 1.6 */ private static final long serialVersionUID = 1216286847881456786L; ! /** * The operation to perform. */ --- 1032,1038 ---- * Compatible with JDK 1.6 */ private static final long serialVersionUID = 1216286847881456786L; ! /** * The operation to perform. */ *************** public class Query *** 1082,1104 **** */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { NumericValueExp v1 = (NumericValueExp) exp1.apply(name); NumericValueExp v2 = (NumericValueExp) exp2.apply(name); switch (op) ! { ! case PLUS: ! return v1.plus(v2); ! case MINUS: ! return v1.minus(v2); ! case TIMES: ! return v1.times(v2); ! case DIV: ! return v1.div(v2); ! default: ! throw new BadBinaryOpValueExpException(this); ! } } /** --- 1082,1104 ---- */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { NumericValueExp v1 = (NumericValueExp) exp1.apply(name); NumericValueExp v2 = (NumericValueExp) exp2.apply(name); switch (op) ! { ! case PLUS: ! return v1.plus(v2); ! case MINUS: ! return v1.minus(v2); ! case TIMES: ! return v1.times(v2); ! case DIV: ! return v1.div(v2); ! default: ! throw new BadBinaryOpValueExpException(this); ! } } /** *************** public class Query *** 1110,1131 **** { String opS; switch (op) ! { ! case PLUS: ! opS = "+"; ! break; ! case MINUS: ! opS = "-"; ! break; ! case TIMES: ! opS = "x"; ! break; ! case DIV: ! opS = "/"; ! break; ! default: ! opS = "?"; ! } return exp1 + " " + opS + " " + exp2; } } --- 1110,1131 ---- { String opS; switch (op) ! { ! case PLUS: ! opS = "+"; ! break; ! case MINUS: ! opS = "-"; ! break; ! case TIMES: ! opS = "x"; ! break; ! case DIV: ! opS = "/"; ! break; ! default: ! opS = "?"; ! } return exp1 + " " + opS + " " + exp2; } } *************** public class Query *** 1148,1154 **** * Compatible with JDK 1.6 */ private static final long serialVersionUID = -5690656271650491000L; ! /** * The operation to perform. */ --- 1148,1154 ---- * Compatible with JDK 1.6 */ private static final long serialVersionUID = -5690656271650491000L; ! /** * The operation to perform. */ *************** public class Query *** 1198,1222 **** */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { String v1 = exp1.apply(name).toString(); String v2 = exp2.apply(name).toString(); switch (relOp) ! { ! case EQ: ! return v1.equals(v2); ! case GT: ! return v1.compareTo(v2) > 0; ! case GE: ! return v1.compareTo(v2) >= 0; ! case LE: ! return v1.compareTo(v2) <= 0; ! case LT: ! return v1.compareTo(v2) < 0; ! default: ! throw new BadStringOperationException("Invalid operator: " + relOp); ! } } /** --- 1198,1222 ---- */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { String v1 = exp1.apply(name).toString(); String v2 = exp2.apply(name).toString(); switch (relOp) ! { ! case EQ: ! return v1.equals(v2); ! case GT: ! return v1.compareTo(v2) > 0; ! case GE: ! return v1.compareTo(v2) >= 0; ! case LE: ! return v1.compareTo(v2) <= 0; ! case LT: ! return v1.compareTo(v2) < 0; ! default: ! throw new BadStringOperationException("Invalid operator: " + relOp); ! } } /** *************** public class Query *** 1228,1252 **** { String op; switch (relOp) ! { ! case EQ: ! op = "="; ! break; ! case GT: ! op = ">"; ! break; ! case GE: ! op = ">="; ! break; ! case LE: ! op = "<="; ! break; ! case LT: ! op = "<"; ! break; ! default: ! op = "?"; ! } return exp1 + " " + op + " " + exp2; } } --- 1228,1252 ---- { String op; switch (relOp) ! { ! case EQ: ! op = "="; ! break; ! case GT: ! op = ">"; ! break; ! case GE: ! op = ">="; ! break; ! case LE: ! op = "<="; ! break; ! case LT: ! op = "<"; ! break; ! default: ! op = "?"; ! } return exp1 + " " + op + " " + exp2; } } *************** public class Query *** 1268,1274 **** * Compatible with JDK 1.6 */ private static final long serialVersionUID = -5801329450358952434L; ! /** * The value to look for. */ --- 1268,1274 ---- * Compatible with JDK 1.6 */ private static final long serialVersionUID = -5801329450358952434L; ! /** * The value to look for. */ *************** public class Query *** 1312,1323 **** */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { String v = val.apply(name).toString(); for (ValueExp vl : valueList) ! if (v.equals(vl.apply(name).toString())) ! return true; return false; } --- 1312,1323 ---- */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { String v = val.apply(name).toString(); for (ValueExp vl : valueList) ! if (v.equals(vl.apply(name).toString())) ! return true; return false; } *************** public class Query *** 1358,1364 **** /** * Checks that the bean specified by the supplied ! * {@link ObjectName} is of the correct class * using {@link MBeanServer#isInstanceOf(ObjectName,String)}. * where the string is obtained by evaluating * classNameValue. --- 1358,1364 ---- /** * Checks that the bean specified by the supplied ! * {@link ObjectName} is of the correct class * using {@link MBeanServer#isInstanceOf(ObjectName,String)}. * where the string is obtained by evaluating * classNameValue. *************** public class Query *** 1378,1398 **** */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { try ! { ! String className = ((StringValueExp) ! classNameValue.apply(name)).getValue(); ! return QueryEval.getMBeanServer().isInstanceOf(name, className); ! } catch (InstanceNotFoundException e) ! { ! throw (BadAttributeValueExpException) ! new BadAttributeValueExpException("The named bean is not registered.").initCause(e); ! } } ! } /** --- 1378,1398 ---- */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { try ! { ! String className = ((StringValueExp) ! classNameValue.apply(name)).getValue(); ! return QueryEval.getMBeanServer().isInstanceOf(name, className); ! } catch (InstanceNotFoundException e) ! { ! throw (BadAttributeValueExpException) ! new BadAttributeValueExpException("The named bean is not registered.").initCause(e); ! } } ! } /** *************** public class Query *** 1411,1417 **** * Compatible with JDK 1.6 */ private static final long serialVersionUID = 5269643775896723397L; ! /** * The expression to negate. */ --- 1411,1417 ---- * Compatible with JDK 1.6 */ private static final long serialVersionUID = 5269643775896723397L; ! /** * The expression to negate. */ *************** public class Query *** 1446,1452 **** */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return !(exp.apply(name)); } --- 1446,1452 ---- */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return !(exp.apply(name)); } *************** public class Query *** 1469,1475 **** * Compatible with JDK 1.6 */ private static final long serialVersionUID = 2962973084421716523L; ! /** * The first operand. */ --- 1469,1475 ---- * Compatible with JDK 1.6 */ private static final long serialVersionUID = 2962973084421716523L; ! /** * The first operand. */ *************** public class Query *** 1513,1519 **** */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return exp1.apply(name) || exp2.apply(name); } --- 1513,1519 ---- */ public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return exp1.apply(name) || exp2.apply(name); } *************** public class Query *** 1542,1548 **** * The boolean value. */ private boolean val; ! /** * Constructs a new {@link BooleanValueExp} using the * specified value. --- 1542,1548 ---- * The boolean value. */ private boolean val; ! /** * Constructs a new {@link BooleanValueExp} using the * specified value. *************** public class Query *** 1572,1582 **** */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return this; } ! /** * Returns the value as a string. * --- 1572,1582 ---- */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return this; } ! /** * Returns the value as a string. * *************** public class Query *** 1613,1619 **** * The numeric value. */ private Number val; ! /** * Constructs a new {@link NumericValueExp} using the * specified value. --- 1613,1619 ---- * The numeric value. */ private Number val; ! /** * Constructs a new {@link NumericValueExp} using the * specified value. *************** public class Query *** 1643,1653 **** */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return this; } ! /** * Returns the value. */ --- 1643,1653 ---- */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return this; } ! /** * Returns the value. */ *************** public class Query *** 1677,1727 **** { Number v = o.getValue(); if (val instanceof Double) ! { ! double d = val.doubleValue(); ! if (v instanceof Double) ! return new NumericValueExp(d + v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(d + v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(d + v.longValue()); ! else ! return new NumericValueExp(d + v.intValue()); ! } else if (val instanceof Float) ! { ! float f = val.floatValue(); ! if (v instanceof Double) ! return new NumericValueExp(f + v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(f + v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(f + v.longValue()); ! else ! return new NumericValueExp(f + v.intValue()); ! } else if (val instanceof Long) ! { ! long l = val.longValue(); ! if (v instanceof Double) ! return new NumericValueExp(l + v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(l + v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(l + v.longValue()); ! else ! return new NumericValueExp(l + v.intValue()); ! } int i = val.intValue(); if (v instanceof Double) ! return new NumericValueExp(i + v.doubleValue()); else if (v instanceof Float) ! return new NumericValueExp(i + v.floatValue()); else if (v instanceof Long) ! return new NumericValueExp(i + v.longValue()); else ! return new NumericValueExp(i + v.intValue()); ! } /** * Return New NumericValueExp(the result of subtracting the specified --- 1677,1727 ---- { Number v = o.getValue(); if (val instanceof Double) ! { ! double d = val.doubleValue(); ! if (v instanceof Double) ! return new NumericValueExp(d + v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(d + v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(d + v.longValue()); ! else ! return new NumericValueExp(d + v.intValue()); ! } else if (val instanceof Float) ! { ! float f = val.floatValue(); ! if (v instanceof Double) ! return new NumericValueExp(f + v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(f + v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(f + v.longValue()); ! else ! return new NumericValueExp(f + v.intValue()); ! } else if (val instanceof Long) ! { ! long l = val.longValue(); ! if (v instanceof Double) ! return new NumericValueExp(l + v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(l + v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(l + v.longValue()); ! else ! return new NumericValueExp(l + v.intValue()); ! } int i = val.intValue(); if (v instanceof Double) ! return new NumericValueExp(i + v.doubleValue()); else if (v instanceof Float) ! return new NumericValueExp(i + v.floatValue()); else if (v instanceof Long) ! return new NumericValueExp(i + v.longValue()); else ! return new NumericValueExp(i + v.intValue()); ! } /** * Return New NumericValueExp(the result of subtracting the specified *************** public class Query *** 1734,1784 **** { Number v = o.getValue(); if (val instanceof Double) ! { ! double d = val.doubleValue(); ! if (v instanceof Double) ! return new NumericValueExp(d - v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(d - v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(d - v.longValue()); ! else ! return new NumericValueExp(d - v.intValue()); ! } else if (val instanceof Float) ! { ! float f = val.floatValue(); ! if (v instanceof Double) ! return new NumericValueExp(f - v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(f - v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(f - v.longValue()); ! else ! return new NumericValueExp(f - v.intValue()); ! } else if (val instanceof Long) ! { ! long l = val.longValue(); ! if (v instanceof Double) ! return new NumericValueExp(l - v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(l - v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(l - v.longValue()); ! else ! return new NumericValueExp(l - v.intValue()); ! } int i = val.intValue(); if (v instanceof Double) ! return new NumericValueExp(i - v.doubleValue()); else if (v instanceof Float) ! return new NumericValueExp(i - v.floatValue()); else if (v instanceof Long) ! return new NumericValueExp(i - v.longValue()); else ! return new NumericValueExp(i - v.intValue()); ! } /** * Return New NumericValueExp(the result of multiplying the specified --- 1734,1784 ---- { Number v = o.getValue(); if (val instanceof Double) ! { ! double d = val.doubleValue(); ! if (v instanceof Double) ! return new NumericValueExp(d - v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(d - v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(d - v.longValue()); ! else ! return new NumericValueExp(d - v.intValue()); ! } else if (val instanceof Float) ! { ! float f = val.floatValue(); ! if (v instanceof Double) ! return new NumericValueExp(f - v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(f - v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(f - v.longValue()); ! else ! return new NumericValueExp(f - v.intValue()); ! } else if (val instanceof Long) ! { ! long l = val.longValue(); ! if (v instanceof Double) ! return new NumericValueExp(l - v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(l - v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(l - v.longValue()); ! else ! return new NumericValueExp(l - v.intValue()); ! } int i = val.intValue(); if (v instanceof Double) ! return new NumericValueExp(i - v.doubleValue()); else if (v instanceof Float) ! return new NumericValueExp(i - v.floatValue()); else if (v instanceof Long) ! return new NumericValueExp(i - v.longValue()); else ! return new NumericValueExp(i - v.intValue()); ! } /** * Return New NumericValueExp(the result of multiplying the specified *************** public class Query *** 1791,1841 **** { Number v = o.getValue(); if (val instanceof Double) ! { ! double d = val.doubleValue(); ! if (v instanceof Double) ! return new NumericValueExp(d * v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(d * v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(d * v.longValue()); ! else ! return new NumericValueExp(d * v.intValue()); ! } else if (val instanceof Float) ! { ! float f = val.floatValue(); ! if (v instanceof Double) ! return new NumericValueExp(f * v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(f * v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(f * v.longValue()); ! else ! return new NumericValueExp(f * v.intValue()); ! } else if (val instanceof Long) ! { ! long l = val.longValue(); ! if (v instanceof Double) ! return new NumericValueExp(l * v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(l * v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(l * v.longValue()); ! else ! return new NumericValueExp(l * v.intValue()); ! } int i = val.intValue(); if (v instanceof Double) ! return new NumericValueExp(i * v.doubleValue()); else if (v instanceof Float) ! return new NumericValueExp(i * v.floatValue()); else if (v instanceof Long) ! return new NumericValueExp(i * v.longValue()); else ! return new NumericValueExp(i * v.intValue()); ! } /** * Return New NumericValueExp(the result of dividing this --- 1791,1841 ---- { Number v = o.getValue(); if (val instanceof Double) ! { ! double d = val.doubleValue(); ! if (v instanceof Double) ! return new NumericValueExp(d * v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(d * v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(d * v.longValue()); ! else ! return new NumericValueExp(d * v.intValue()); ! } else if (val instanceof Float) ! { ! float f = val.floatValue(); ! if (v instanceof Double) ! return new NumericValueExp(f * v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(f * v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(f * v.longValue()); ! else ! return new NumericValueExp(f * v.intValue()); ! } else if (val instanceof Long) ! { ! long l = val.longValue(); ! if (v instanceof Double) ! return new NumericValueExp(l * v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(l * v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(l * v.longValue()); ! else ! return new NumericValueExp(l * v.intValue()); ! } int i = val.intValue(); if (v instanceof Double) ! return new NumericValueExp(i * v.doubleValue()); else if (v instanceof Float) ! return new NumericValueExp(i * v.floatValue()); else if (v instanceof Long) ! return new NumericValueExp(i * v.longValue()); else ! return new NumericValueExp(i * v.intValue()); ! } /** * Return New NumericValueExp(the result of dividing this *************** public class Query *** 1849,1901 **** { Number v = o.getValue(); if (val instanceof Double) ! { ! double d = val.doubleValue(); ! if (v instanceof Double) ! return new NumericValueExp(d / v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(d / v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(d / v.longValue()); ! else ! return new NumericValueExp(d / v.intValue()); ! } else if (val instanceof Float) ! { ! float f = val.floatValue(); ! if (v instanceof Double) ! return new NumericValueExp(f / v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(f / v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(f / v.longValue()); ! else ! return new NumericValueExp(f / v.intValue()); ! } else if (val instanceof Long) ! { ! long l = val.longValue(); ! if (v instanceof Double) ! return new NumericValueExp(l / v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(l / v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(l / v.longValue()); ! else ! return new NumericValueExp(l / v.intValue()); ! } int i = val.intValue(); if (v instanceof Double) ! return new NumericValueExp(i / v.doubleValue()); else if (v instanceof Float) ! return new NumericValueExp(i / v.floatValue()); else if (v instanceof Long) ! return new NumericValueExp(i / v.longValue()); else ! return new NumericValueExp(i / v.intValue()); ! } } } - --- 1849,1900 ---- { Number v = o.getValue(); if (val instanceof Double) ! { ! double d = val.doubleValue(); ! if (v instanceof Double) ! return new NumericValueExp(d / v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(d / v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(d / v.longValue()); ! else ! return new NumericValueExp(d / v.intValue()); ! } else if (val instanceof Float) ! { ! float f = val.floatValue(); ! if (v instanceof Double) ! return new NumericValueExp(f / v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(f / v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(f / v.longValue()); ! else ! return new NumericValueExp(f / v.intValue()); ! } else if (val instanceof Long) ! { ! long l = val.longValue(); ! if (v instanceof Double) ! return new NumericValueExp(l / v.doubleValue()); ! else if (v instanceof Float) ! return new NumericValueExp(l / v.floatValue()); ! else if (v instanceof Long) ! return new NumericValueExp(l / v.longValue()); ! else ! return new NumericValueExp(l / v.intValue()); ! } int i = val.intValue(); if (v instanceof Double) ! return new NumericValueExp(i / v.doubleValue()); else if (v instanceof Float) ! return new NumericValueExp(i / v.floatValue()); else if (v instanceof Long) ! return new NumericValueExp(i / v.longValue()); else ! return new NumericValueExp(i / v.intValue()); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/QueryEval.java gcc-4.6.0/libjava/classpath/javax/management/QueryEval.java *** gcc-4.5.2/libjava/classpath/javax/management/QueryEval.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/QueryEval.java Tue Jan 11 19:46:05 2011 *************** public class QueryEval *** 57,63 **** private static final long serialVersionUID = 2675899265640874796L; /** ! * Stores the server used, on a * thread-by-thread basis. */ private static InheritableThreadLocal server = --- 57,63 ---- private static final long serialVersionUID = 2675899265640874796L; /** ! * Stores the server used, on a * thread-by-thread basis. */ private static InheritableThreadLocal server = *************** public class QueryEval *** 83,89 **** * Sets the {@link MBeanServer} on which the query will be * performed. This value is inherited automatically by * child threads. This method is only non-static for historical ! * reasons; it makes no use of instance-related values. * * @param svr the server to use. */ --- 83,89 ---- * Sets the {@link MBeanServer} on which the query will be * performed. This value is inherited automatically by * child threads. This method is only non-static for historical ! * reasons; it makes no use of instance-related values. * * @param svr the server to use. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/QueryExp.java gcc-4.6.0/libjava/classpath/javax/management/QueryExp.java *** gcc-4.5.2/libjava/classpath/javax/management/QueryExp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/QueryExp.java Tue Jan 11 19:46:05 2011 *************** public interface QueryExp *** 74,80 **** */ boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException; /** * Changes the {@link MBeanServer} on which this query is performed. --- 74,80 ---- */ boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException; /** * Changes the {@link MBeanServer} on which this query is performed. *************** public interface QueryExp *** 84,87 **** void setMBeanServer(MBeanServer server); } - --- 84,86 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/ReflectionException.java gcc-4.6.0/libjava/classpath/javax/management/ReflectionException.java *** gcc-4.5.2/libjava/classpath/javax/management/ReflectionException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/ReflectionException.java Tue Jan 11 19:46:05 2011 *************** public class ReflectionException *** 115,118 **** } } - --- 115,117 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/RuntimeErrorException.java gcc-4.6.0/libjava/classpath/javax/management/RuntimeErrorException.java *** gcc-4.5.2/libjava/classpath/javax/management/RuntimeErrorException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/RuntimeErrorException.java Tue Jan 11 19:46:05 2011 *************** public class RuntimeErrorException *** 112,115 **** } } - --- 112,114 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/RuntimeMBeanException.java gcc-4.6.0/libjava/classpath/javax/management/RuntimeMBeanException.java *** gcc-4.5.2/libjava/classpath/javax/management/RuntimeMBeanException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/RuntimeMBeanException.java Tue Jan 11 19:46:05 2011 *************** public class RuntimeMBeanException *** 111,114 **** } } - --- 111,113 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/RuntimeOperationsException.java gcc-4.6.0/libjava/classpath/javax/management/RuntimeOperationsException.java *** gcc-4.5.2/libjava/classpath/javax/management/RuntimeOperationsException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/management/RuntimeOperationsException.java Tue Jan 11 19:46:05 2011 *************** package javax.management; *** 52,63 **** public class RuntimeOperationsException extends JMRuntimeException { ! /** * Compatible with JDK 1.5 */ private static final long serialVersionUID = -8408923047489133588L; ! /* Sun re-implemented causality -- don't know why, but serialization demands we do too... */ --- 52,63 ---- public class RuntimeOperationsException extends JMRuntimeException { ! /** * Compatible with JDK 1.5 */ private static final long serialVersionUID = -8408923047489133588L; ! /* Sun re-implemented causality -- don't know why, but serialization demands we do too... */ *************** public class RuntimeOperationsException *** 89,95 **** * @param message the error message to give to the user. */ public RuntimeOperationsException(RuntimeException e, ! String message) { super(message); runtimeException = e; --- 89,95 ---- * @param message the error message to give to the user. */ public RuntimeOperationsException(RuntimeException e, ! String message) { super(message); runtimeException = e; *************** public class RuntimeOperationsException *** 118,121 **** } } - --- 118,120 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/ServiceNotFoundException.java gcc-4.6.0/libjava/classpath/javax/management/ServiceNotFoundException.java *** gcc-4.5.2/libjava/classpath/javax/management/ServiceNotFoundException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/ServiceNotFoundException.java Tue Jan 11 19:46:05 2011 *************** public class ServiceNotFoundException *** 72,75 **** } } - --- 72,74 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/StandardMBean.java gcc-4.6.0/libjava/classpath/javax/management/StandardMBean.java *** gcc-4.5.2/libjava/classpath/javax/management/StandardMBean.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/StandardMBean.java Tue Jan 11 19:46:05 2011 *************** public class StandardMBean *** 85,91 **** * Constructs a new {@link StandardMBean} using the specified * interface and this as the instance. This should * be used to create an instance via subclassing. ! * * @param iface the interface this bean implements, or null * if the interface should be determined using the naming * convention (class X has interface XMBean). --- 85,91 ---- * Constructs a new {@link StandardMBean} using the specified * interface and this as the instance. This should * be used to create an instance via subclassing. ! * * @param iface the interface this bean implements, or null * if the interface should be determined using the naming * convention (class X has interface XMBean). *************** public class StandardMBean *** 99,129 **** { if (iface == null) { ! String className = getClass().getName(); ! try ! { ! iface = Class.forName(className + "MBean"); ! } ! catch (ClassNotFoundException e) ! { ! for (Class nextIface : getClass().getInterfaces()) ! { ! if (JMX.isMXBeanInterface(nextIface)) ! { ! iface = nextIface; ! break; ! } ! } ! if (iface == null) ! throw (NotCompliantMBeanException) ! (new NotCompliantMBeanException("An interface for the class " ! + className + ! " was not found.").initCause(e)); ! } } if (!(iface.isInstance(this))) ! throw new NotCompliantMBeanException("The instance, " + impl + ! ", is not an instance of " + iface); impl = this; this.iface = iface; } --- 99,129 ---- { if (iface == null) { ! String className = getClass().getName(); ! try ! { ! iface = Class.forName(className + "MBean"); ! } ! catch (ClassNotFoundException e) ! { ! for (Class nextIface : getClass().getInterfaces()) ! { ! if (JMX.isMXBeanInterface(nextIface)) ! { ! iface = nextIface; ! break; ! } ! } ! if (iface == null) ! throw (NotCompliantMBeanException) ! (new NotCompliantMBeanException("An interface for the class " ! + className + ! " was not found.").initCause(e)); ! } } if (!(iface.isInstance(this))) ! throw new NotCompliantMBeanException("The instance, " + impl + ! ", is not an instance of " + iface); impl = this; this.iface = iface; } *************** public class StandardMBean *** 131,137 **** /** * Constructs a new {@link StandardMBean} using the specified * interface and the supplied instance as the implementation. ! * * @param impl the implementation. * @param iface the interface the bean implements, or null * if the interface should be determined using the naming --- 131,137 ---- /** * Constructs a new {@link StandardMBean} using the specified * interface and the supplied instance as the implementation. ! * * @param impl the implementation. * @param iface the interface the bean implements, or null * if the interface should be determined using the naming *************** public class StandardMBean *** 149,183 **** throw new IllegalArgumentException("The specified implementation is null."); if (iface == null) { ! Class implClass = impl.getClass(); ! String className = implClass.getName(); ! try ! { ! this.iface = Class.forName(className + "MBean", true, ! implClass.getClassLoader()); ! } ! catch (ClassNotFoundException e) ! { ! for (Class nextIface : implClass.getInterfaces()) ! { ! if (JMX.isMXBeanInterface(nextIface)) ! { ! this.iface = nextIface; ! break; ! } ! } ! if (this.iface == null) ! throw (NotCompliantMBeanException) ! (new NotCompliantMBeanException("An interface for the class " + ! className + ! " was not found.").initCause(e)); ! } } else this.iface = iface; if (!(this.iface.isInstance(impl))) ! throw new NotCompliantMBeanException("The instance, " + impl + ! ", is not an instance of " + iface); this.impl = impl; } --- 149,183 ---- throw new IllegalArgumentException("The specified implementation is null."); if (iface == null) { ! Class implClass = impl.getClass(); ! String className = implClass.getName(); ! try ! { ! this.iface = Class.forName(className + "MBean", true, ! implClass.getClassLoader()); ! } ! catch (ClassNotFoundException e) ! { ! for (Class nextIface : implClass.getInterfaces()) ! { ! if (JMX.isMXBeanInterface(nextIface)) ! { ! this.iface = nextIface; ! break; ! } ! } ! if (this.iface == null) ! throw (NotCompliantMBeanException) ! (new NotCompliantMBeanException("An interface for the class " + ! className + ! " was not found.").initCause(e)); ! } } else this.iface = iface; if (!(this.iface.isInstance(impl))) ! throw new NotCompliantMBeanException("The instance, " + impl + ! ", is not an instance of " + iface); this.impl = impl; } *************** public class StandardMBean *** 223,266 **** */ public Object getAttribute(String name) throws AttributeNotFoundException, MBeanException, ! ReflectionException { Method getter; ! try { ! getter = iface.getMethod("get" + name); } catch (NoSuchMethodException e) { ! try ! { ! getter = iface.getMethod("is" + name); ! } ! catch (NoSuchMethodException ex) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(ex)); ! } } Object result; try { ! result = getter.invoke(impl); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to retrieve " + name); } catch (IllegalArgumentException e) { ! throw new ReflectionException(e, "Failed to retrieve " + name); } catch (InvocationTargetException e) { ! throw new MBeanException((Exception) e.getCause(), ! "The getter of " + name + ! " threw an exception"); } return result; } --- 223,266 ---- */ public Object getAttribute(String name) throws AttributeNotFoundException, MBeanException, ! ReflectionException { Method getter; ! try { ! getter = iface.getMethod("get" + name); } catch (NoSuchMethodException e) { ! try ! { ! getter = iface.getMethod("is" + name); ! } ! catch (NoSuchMethodException ex) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(ex)); ! } } Object result; try { ! result = getter.invoke(impl); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to retrieve " + name); } catch (IllegalArgumentException e) { ! throw new ReflectionException(e, "Failed to retrieve " + name); } catch (InvocationTargetException e) { ! throw new MBeanException((Exception) e.getCause(), ! "The getter of " + name + ! " threw an exception"); } return result; } *************** public class StandardMBean *** 280,302 **** AttributeList list = new AttributeList(names.length); for (int a = 0; a < names.length; ++a) { ! try ! { ! Object value = getAttribute(names[a]); ! list.add(new Attribute(names[a], value)); ! } ! catch (AttributeNotFoundException e) ! { ! /* Ignored */ ! } ! catch (ReflectionException e) ! { ! /* Ignored */ ! } ! catch (MBeanException e) ! { ! /* Ignored */ ! } } return list; } --- 280,302 ---- AttributeList list = new AttributeList(names.length); for (int a = 0; a < names.length; ++a) { ! try ! { ! Object value = getAttribute(names[a]); ! list.add(new Attribute(names[a], value)); ! } ! catch (AttributeNotFoundException e) ! { ! /* Ignored */ ! } ! catch (ReflectionException e) ! { ! /* Ignored */ ! } ! catch (MBeanException e) ! { ! /* Ignored */ ! } } return list; } *************** public class StandardMBean *** 349,355 **** * @return the constructor information to use. */ protected MBeanConstructorInfo[] getConstructors(MBeanConstructorInfo[] ! constructors, Object impl) { if (impl == null || impl == this) return constructors; --- 349,355 ---- * @return the constructor information to use. */ protected MBeanConstructorInfo[] getConstructors(MBeanConstructorInfo[] ! constructors, Object impl) { if (impl == null || impl == this) return constructors; *************** public class StandardMBean *** 406,412 **** * @return the description to use in the instance. */ protected String getDescription(MBeanConstructorInfo info, ! MBeanParameterInfo param, int n) { return param.getDescription(); } --- 406,412 ---- * @return the description to use in the instance. */ protected String getDescription(MBeanConstructorInfo info, ! MBeanParameterInfo param, int n) { return param.getDescription(); } *************** public class StandardMBean *** 477,483 **** * @return the description to use in the instance. */ protected String getDescription(MBeanOperationInfo info, ! MBeanParameterInfo param, int n) { return param.getDescription(); } --- 477,483 ---- * @return the description to use in the instance. */ protected String getDescription(MBeanOperationInfo info, ! MBeanParameterInfo param, int n) { return param.getDescription(); } *************** public class StandardMBean *** 533,539 **** * detailed in this class are called to allow the values used * to be overrided: *

                              ! *
                            • For each attribute, * {@link #getDescription(MBeanAttributeInfo)} is called.
                            • *
                            • For each constructor, * {@link #getDescription(MBeanConstructorInfo)} is called, --- 533,539 ---- * detailed in this class are called to allow the values used * to be overrided: *
                                ! *
                              • For each attribute, * {@link #getDescription(MBeanAttributeInfo)} is called.
                              • *
                              • For each constructor, * {@link #getDescription(MBeanConstructorInfo)} is called, *************** public class StandardMBean *** 573,689 **** List operations = new ArrayList(); for (int a = 0; a < methods.length; ++a) { ! String name = methods[a].getName(); ! if (((name.startsWith("get") && ! methods[a].getReturnType() != Void.TYPE) || ! (name.startsWith("is") && ! methods[a].getReturnType() == Boolean.TYPE)) && ! methods[a].getParameterTypes().length == 0) ! { ! Method[] amethods; ! String attrib; ! if (name.startsWith("is")) ! attrib = name.substring(2); ! else ! attrib = name.substring(3); ! if (attributes.containsKey(attrib)) ! amethods = (Method[]) attributes.get(attrib); ! else ! { ! amethods = new Method[2]; ! attributes.put(attrib, amethods); ! } ! amethods[0] = methods[a]; ! } ! else if (name.startsWith("set") && ! methods[a].getReturnType() == Void.TYPE && ! methods[a].getParameterTypes().length == 1) ! { ! Method[] amethods; ! String attrib = name.substring(3); ! if (attributes.containsKey(attrib)) ! amethods = (Method[]) attributes.get(attrib); ! else ! { ! amethods = new Method[2]; ! attributes.put(attrib, amethods); ! } ! amethods[1] = methods[a]; ! } ! else ! operations.add(new MBeanOperationInfo(methods[a].getName(), ! methods[a])); } List attribs = new ArrayList(attributes.size()); for (Map.Entry entry : attributes.entrySet()) { ! Method[] amethods = entry.getValue(); ! try ! { ! attribs.add(new MBeanAttributeInfo(entry.getKey(), ! entry.getKey(), ! amethods[0], amethods[1])); ! } ! catch (IntrospectionException e) ! { ! /* Shouldn't happen; both shouldn't be null */ ! throw new IllegalStateException("The two methods passed to " + ! "the MBeanAttributeInfo " + ! "constructor for " + entry + ! "were null.", e); ! } } MBeanAttributeInfo[] ainfo = new MBeanAttributeInfo[attribs.size()]; for (int a = 0; a < ainfo.length; ++a) { ! MBeanAttributeInfo oldInfo = (MBeanAttributeInfo) attribs.get(a); ! String desc = getDescription(oldInfo); ! ainfo[a] = new MBeanAttributeInfo(oldInfo.getName(), ! oldInfo.getType(), desc, ! oldInfo.isReadable(), ! oldInfo.isWritable(), ! oldInfo.isIs()); } Constructor[] cons = impl.getClass().getConstructors(); MBeanConstructorInfo[] cinfo = new MBeanConstructorInfo[cons.length]; for (int a = 0; a < cinfo.length; ++a) { ! MBeanConstructorInfo oldInfo = new MBeanConstructorInfo(cons[a].getName(), ! cons[a]); ! String desc = getDescription(oldInfo); ! MBeanParameterInfo[] params = oldInfo.getSignature(); ! MBeanParameterInfo[] pinfo = new MBeanParameterInfo[params.length]; ! for (int b = 0; b < pinfo.length; ++b) ! { ! String pdesc = getDescription(oldInfo, params[b], b); ! String pname = getParameterName(oldInfo, params[b], b); ! pinfo[b] = new MBeanParameterInfo(pname, params[b].getType(), ! pdesc); ! } ! cinfo[a] = new MBeanConstructorInfo(oldInfo.getName(), desc, ! pinfo); } cinfo = getConstructors(cinfo, impl); MBeanOperationInfo[] oinfo = new MBeanOperationInfo[operations.size()]; for (int a = 0; a < oinfo.length; ++a) { ! MBeanOperationInfo oldInfo = (MBeanOperationInfo) operations.get(a); ! String desc = getDescription(oldInfo); ! int impact = getImpact(oldInfo); ! MBeanParameterInfo[] params = oldInfo.getSignature(); ! MBeanParameterInfo[] pinfo = new MBeanParameterInfo[params.length]; ! for (int b = 0; b < pinfo.length; ++b) ! { ! String pdesc = getDescription(oldInfo, params[b], b); ! String pname = getParameterName(oldInfo, params[b], b); ! pinfo[b] = new MBeanParameterInfo(pname, params[b].getType(), ! pdesc); ! } ! oinfo[a] = new MBeanOperationInfo(oldInfo.getName(), desc, pinfo, ! oldInfo.getReturnType(), impact); } info = new MBeanInfo(impl.getClass().getName(), impl.getClass().getName(), ! ainfo, cinfo, oinfo, null); String cname = getClassName(info); String desc = getDescription(info); MBeanNotificationInfo[] ninfo = null; --- 573,689 ---- List operations = new ArrayList(); for (int a = 0; a < methods.length; ++a) { ! String name = methods[a].getName(); ! if (((name.startsWith("get") && ! methods[a].getReturnType() != Void.TYPE) || ! (name.startsWith("is") && ! methods[a].getReturnType() == Boolean.TYPE)) && ! methods[a].getParameterTypes().length == 0) ! { ! Method[] amethods; ! String attrib; ! if (name.startsWith("is")) ! attrib = name.substring(2); ! else ! attrib = name.substring(3); ! if (attributes.containsKey(attrib)) ! amethods = (Method[]) attributes.get(attrib); ! else ! { ! amethods = new Method[2]; ! attributes.put(attrib, amethods); ! } ! amethods[0] = methods[a]; ! } ! else if (name.startsWith("set") && ! methods[a].getReturnType() == Void.TYPE && ! methods[a].getParameterTypes().length == 1) ! { ! Method[] amethods; ! String attrib = name.substring(3); ! if (attributes.containsKey(attrib)) ! amethods = (Method[]) attributes.get(attrib); ! else ! { ! amethods = new Method[2]; ! attributes.put(attrib, amethods); ! } ! amethods[1] = methods[a]; ! } ! else ! operations.add(new MBeanOperationInfo(methods[a].getName(), ! methods[a])); } List attribs = new ArrayList(attributes.size()); for (Map.Entry entry : attributes.entrySet()) { ! Method[] amethods = entry.getValue(); ! try ! { ! attribs.add(new MBeanAttributeInfo(entry.getKey(), ! entry.getKey(), ! amethods[0], amethods[1])); ! } ! catch (IntrospectionException e) ! { ! /* Shouldn't happen; both shouldn't be null */ ! throw new IllegalStateException("The two methods passed to " + ! "the MBeanAttributeInfo " + ! "constructor for " + entry + ! "were null.", e); ! } } MBeanAttributeInfo[] ainfo = new MBeanAttributeInfo[attribs.size()]; for (int a = 0; a < ainfo.length; ++a) { ! MBeanAttributeInfo oldInfo = (MBeanAttributeInfo) attribs.get(a); ! String desc = getDescription(oldInfo); ! ainfo[a] = new MBeanAttributeInfo(oldInfo.getName(), ! oldInfo.getType(), desc, ! oldInfo.isReadable(), ! oldInfo.isWritable(), ! oldInfo.isIs()); } Constructor[] cons = impl.getClass().getConstructors(); MBeanConstructorInfo[] cinfo = new MBeanConstructorInfo[cons.length]; for (int a = 0; a < cinfo.length; ++a) { ! MBeanConstructorInfo oldInfo = new MBeanConstructorInfo(cons[a].getName(), ! cons[a]); ! String desc = getDescription(oldInfo); ! MBeanParameterInfo[] params = oldInfo.getSignature(); ! MBeanParameterInfo[] pinfo = new MBeanParameterInfo[params.length]; ! for (int b = 0; b < pinfo.length; ++b) ! { ! String pdesc = getDescription(oldInfo, params[b], b); ! String pname = getParameterName(oldInfo, params[b], b); ! pinfo[b] = new MBeanParameterInfo(pname, params[b].getType(), ! pdesc); ! } ! cinfo[a] = new MBeanConstructorInfo(oldInfo.getName(), desc, ! pinfo); } cinfo = getConstructors(cinfo, impl); MBeanOperationInfo[] oinfo = new MBeanOperationInfo[operations.size()]; for (int a = 0; a < oinfo.length; ++a) { ! MBeanOperationInfo oldInfo = (MBeanOperationInfo) operations.get(a); ! String desc = getDescription(oldInfo); ! int impact = getImpact(oldInfo); ! MBeanParameterInfo[] params = oldInfo.getSignature(); ! MBeanParameterInfo[] pinfo = new MBeanParameterInfo[params.length]; ! for (int b = 0; b < pinfo.length; ++b) ! { ! String pdesc = getDescription(oldInfo, params[b], b); ! String pname = getParameterName(oldInfo, params[b], b); ! pinfo[b] = new MBeanParameterInfo(pname, params[b].getType(), ! pdesc); ! } ! oinfo[a] = new MBeanOperationInfo(oldInfo.getName(), desc, pinfo, ! oldInfo.getReturnType(), impact); } info = new MBeanInfo(impl.getClass().getName(), impl.getClass().getName(), ! ainfo, cinfo, oinfo, null); String cname = getClassName(info); String desc = getDescription(info); MBeanNotificationInfo[] ninfo = null; *************** public class StandardMBean *** 720,726 **** * @return the name to use in the instance. */ protected String getParameterName(MBeanConstructorInfo info, ! MBeanParameterInfo param, int n) { return param.getName(); } --- 720,726 ---- * @return the name to use in the instance. */ protected String getParameterName(MBeanConstructorInfo info, ! MBeanParameterInfo param, int n) { return param.getName(); } *************** public class StandardMBean *** 741,747 **** * @return the name to use in the instance. */ protected String getParameterName(MBeanOperationInfo info, ! MBeanParameterInfo param, int n) { return param.getName(); } --- 741,747 ---- * @return the name to use in the instance. */ protected String getParameterName(MBeanOperationInfo info, ! MBeanParameterInfo param, int n) { return param.getName(); } *************** public class StandardMBean *** 753,759 **** * corresponding to each parameter. The class loader used to * load these classes is the same as that used for loading the * management bean itself. ! * * @param name the name of the action to invoke. * @param params the parameters used to call the action. * @param signature the signature of the action. --- 753,759 ---- * corresponding to each parameter. The class loader used to * load these classes is the same as that used for loading the * management bean itself. ! * * @param name the name of the action to invoke. * @param params the parameters used to call the action. * @param signature the signature of the action. *************** public class StandardMBean *** 771,826 **** throws MBeanException, ReflectionException { if (name.startsWith("get") || name.startsWith("is") || ! name.startsWith("set")) throw new ReflectionException(new NoSuchMethodException(), ! "Invocation of an attribute " + ! "method is disallowed."); ClassLoader loader = getClass().getClassLoader(); Class[] sigTypes; if (signature != null) { ! sigTypes = new Class[signature.length]; ! for (int a = 0; a < signature.length; ++a) ! try ! { ! sigTypes[a] = Class.forName(signature[a], true, loader); ! } ! catch (ClassNotFoundException e) ! { ! throw new ReflectionException(e, "The class, " + signature[a] + ! ", in the method signature " + ! "could not be loaded."); ! } } else sigTypes = null; Method method; try { ! method = iface.getMethod(name, sigTypes); } catch (NoSuchMethodException e) { ! throw new ReflectionException(e, "The method, " + name + ! ", could not be found."); } Object result; try { ! result = method.invoke(impl, params); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to call " + name); } catch (IllegalArgumentException e) { ! throw new ReflectionException(e, "Failed to call " + name); } catch (InvocationTargetException e) { ! throw new MBeanException((Exception) e.getCause(), "The method " ! + name + " threw an exception"); } return result; } --- 771,826 ---- throws MBeanException, ReflectionException { if (name.startsWith("get") || name.startsWith("is") || ! name.startsWith("set")) throw new ReflectionException(new NoSuchMethodException(), ! "Invocation of an attribute " + ! "method is disallowed."); ClassLoader loader = getClass().getClassLoader(); Class[] sigTypes; if (signature != null) { ! sigTypes = new Class[signature.length]; ! for (int a = 0; a < signature.length; ++a) ! try ! { ! sigTypes[a] = Class.forName(signature[a], true, loader); ! } ! catch (ClassNotFoundException e) ! { ! throw new ReflectionException(e, "The class, " + signature[a] + ! ", in the method signature " + ! "could not be loaded."); ! } } else sigTypes = null; Method method; try { ! method = iface.getMethod(name, sigTypes); } catch (NoSuchMethodException e) { ! throw new ReflectionException(e, "The method, " + name + ! ", could not be found."); } Object result; try { ! result = method.invoke(impl, params); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to call " + name); } catch (IllegalArgumentException e) { ! throw new ReflectionException(e, "Failed to call " + name); } catch (InvocationTargetException e) { ! throw new MBeanException((Exception) e.getCause(), "The method " ! + name + " threw an exception"); } return result; } *************** public class StandardMBean *** 850,879 **** */ public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, ! MBeanException, ReflectionException { String name = attribute.getName(); String attName = name.substring(0, 1).toUpperCase() + name.substring(1); ! Object val = attribute.getValue(); try { ! getMutator(attName, val.getClass()).invoke(impl, new Object[] { val }); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to set " + name); } catch (IllegalArgumentException e) { ! throw ((InvalidAttributeValueException) ! new InvalidAttributeValueException(attribute.getValue() + ! " is an invalid value for " + ! name).initCause(e)); } catch (InvocationTargetException e) { ! throw new MBeanException(e, "The getter of " + name + ! " threw an exception"); } } --- 850,879 ---- */ public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, ! MBeanException, ReflectionException { String name = attribute.getName(); String attName = name.substring(0, 1).toUpperCase() + name.substring(1); ! Object val = attribute.getValue(); try { ! getMutator(attName, val.getClass()).invoke(impl, new Object[] { val }); } catch (IllegalAccessException e) { ! throw new ReflectionException(e, "Failed to set " + name); } catch (IllegalArgumentException e) { ! throw ((InvalidAttributeValueException) ! new InvalidAttributeValueException(attribute.getValue() + ! " is an invalid value for " + ! name).initCause(e)); } catch (InvocationTargetException e) { ! throw new MBeanException(e, "The getter of " + name + ! " threw an exception"); } } *************** public class StandardMBean *** 893,920 **** Iterator it = attributes.iterator(); while (it.hasNext()) { ! try ! { ! Attribute attrib = (Attribute) it.next(); ! setAttribute(attrib); ! list.add(attrib); ! } ! catch (AttributeNotFoundException e) ! { ! /* Ignored */ ! } ! catch (InvalidAttributeValueException e) ! { ! /* Ignored */ ! } ! catch (ReflectionException e) ! { ! /* Ignored */ ! } ! catch (MBeanException e) ! { ! /* Ignored */ ! } } return list; } --- 893,920 ---- Iterator it = attributes.iterator(); while (it.hasNext()) { ! try ! { ! Attribute attrib = (Attribute) it.next(); ! setAttribute(attrib); ! list.add(attrib); ! } ! catch (AttributeNotFoundException e) ! { ! /* Ignored */ ! } ! catch (InvalidAttributeValueException e) ! { ! /* Ignored */ ! } ! catch (ReflectionException e) ! { ! /* Ignored */ ! } ! catch (MBeanException e) ! { ! /* Ignored */ ! } } return list; } *************** public class StandardMBean *** 937,944 **** if (impl == null) throw new IllegalArgumentException("The specified implementation is null."); if (!(iface.isInstance(impl))) ! throw new NotCompliantMBeanException("The instance, " + impl + ! ", is not an instance of " + iface); this.impl = impl; } --- 937,944 ---- if (impl == null) throw new IllegalArgumentException("The specified implementation is null."); if (!(iface.isInstance(impl))) ! throw new NotCompliantMBeanException("The instance, " + impl + ! ", is not an instance of " + iface); this.impl = impl; } *************** public class StandardMBean *** 956,1083 **** { String mutator = "set" + name; Exception ex = null; ! try { ! return iface.getMethod(mutator, type); } catch (NoSuchMethodException e) { ! /* Ignored; we'll try harder instead */ ! ex = e; } /* Special cases */ if (type == Boolean.class) try ! { ! return iface.getMethod(mutator, Boolean.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Byte.class) try ! { ! return iface.getMethod(mutator, Byte.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Character.class) try ! { ! return iface.getMethod(mutator, Character.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Double.class) try ! { ! return iface.getMethod(mutator, Double.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Float.class) try ! { ! return iface.getMethod(mutator, Float.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Integer.class) try ! { ! return iface.getMethod(mutator, Integer.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Long.class) try ! { ! return iface.getMethod(mutator, Long.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Short.class) try ! { ! return iface.getMethod(mutator, Short.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } /* Superclasses and interfaces */ for (Class i : type.getInterfaces()) try ! { ! return getMutator(name, i); ! } catch (AttributeNotFoundException e) ! { ! ex = e; ! } Class sclass = type.getSuperclass(); if (sclass != null && sclass != Object.class) try ! { ! return getMutator(name, sclass); ! } catch (AttributeNotFoundException e) ! { ! ex = e; ! } /* If we get this far, give up */ ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(ex)); } } --- 956,1083 ---- { String mutator = "set" + name; Exception ex = null; ! try { ! return iface.getMethod(mutator, type); } catch (NoSuchMethodException e) { ! /* Ignored; we'll try harder instead */ ! ex = e; } /* Special cases */ if (type == Boolean.class) try ! { ! return iface.getMethod(mutator, Boolean.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Byte.class) try ! { ! return iface.getMethod(mutator, Byte.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Character.class) try ! { ! return iface.getMethod(mutator, Character.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Double.class) try ! { ! return iface.getMethod(mutator, Double.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Float.class) try ! { ! return iface.getMethod(mutator, Float.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Integer.class) try ! { ! return iface.getMethod(mutator, Integer.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Long.class) try ! { ! return iface.getMethod(mutator, Long.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } if (type == Short.class) try ! { ! return iface.getMethod(mutator, Short.TYPE); ! } catch (NoSuchMethodException e) ! { ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(e)); ! } /* Superclasses and interfaces */ for (Class i : type.getInterfaces()) try ! { ! return getMutator(name, i); ! } catch (AttributeNotFoundException e) ! { ! ex = e; ! } Class sclass = type.getSuperclass(); if (sclass != null && sclass != Object.class) try ! { ! return getMutator(name, sclass); ! } catch (AttributeNotFoundException e) ! { ! ex = e; ! } /* If we get this far, give up */ ! throw ((AttributeNotFoundException) ! new AttributeNotFoundException("The attribute, " + name + ! ", was not found.").initCause(ex)); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/StringValueExp.java gcc-4.6.0/libjava/classpath/javax/management/StringValueExp.java *** gcc-4.5.2/libjava/classpath/javax/management/StringValueExp.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/StringValueExp.java Tue Jan 11 19:46:05 2011 *************** public class StringValueExp *** 94,100 **** */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return this; } --- 94,100 ---- */ public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException { return this; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/ValueExp.java gcc-4.6.0/libjava/classpath/javax/management/ValueExp.java *** gcc-4.5.2/libjava/classpath/javax/management/ValueExp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/ValueExp.java Tue Jan 11 19:46:05 2011 *************** public interface ValueExp *** 70,76 **** */ ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException; /** * Changes the {@link MBeanServer} on which this query is performed. --- 70,76 ---- */ ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException, ! BadAttributeValueExpException, InvalidApplicationException; /** * Changes the {@link MBeanServer} on which this query is performed. *************** public interface ValueExp *** 83,86 **** void setMBeanServer(MBeanServer server); } - --- 83,85 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/loading/ClassLoaderRepository.java gcc-4.6.0/libjava/classpath/javax/management/loading/ClassLoaderRepository.java *** gcc-4.5.2/libjava/classpath/javax/management/loading/ClassLoaderRepository.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/loading/ClassLoaderRepository.java Tue Jan 11 19:46:05 2011 *************** public interface ClassLoaderRepository *** 136,139 **** throws ClassNotFoundException; } - --- 136,138 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/ArrayType.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/ArrayType.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/ArrayType.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/ArrayType.java Tue Jan 11 19:46:05 2011 *************** import java.util.Map; *** 44,57 **** /** * The open type descriptor for arrays of open data values. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ public class ArrayType extends OpenType { ! /** * Compatible with JDK 1.5 */ --- 44,57 ---- /** * The open type descriptor for arrays of open data values. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ public class ArrayType extends OpenType { ! /** * Compatible with JDK 1.5 */ *************** public class ArrayType *** 108,115 **** * a loadable class. */ private static final String getArrayClassName(OpenType elementType, ! int dim, ! boolean primitive) throws OpenDataException { Class type; --- 108,115 ---- * a loadable class. */ private static final String getArrayClassName(OpenType elementType, ! int dim, ! boolean primitive) throws OpenDataException { Class type; *************** public class ArrayType *** 117,138 **** type = getPrimitiveTypeClass((SimpleType) elementType); else { ! String className = elementType.getClassName(); ! try ! { ! type = Class.forName(className); ! } ! catch (ClassNotFoundException e) ! { ! throw new OpenDataException("The class name, " + className + ! ", is unavailable."); ! } } while (type.isArray()) type = type.getComponentType(); return Array.newInstance(type, ! new int[getDimensions(elementType, dim)]).getClass().getName(); } /** --- 117,138 ---- type = getPrimitiveTypeClass((SimpleType) elementType); else { ! String className = elementType.getClassName(); ! try ! { ! type = Class.forName(className); ! } ! catch (ClassNotFoundException e) ! { ! throw new OpenDataException("The class name, " + className + ! ", is unavailable."); ! } } while (type.isArray()) type = type.getComponentType(); return Array.newInstance(type, ! new int[getDimensions(elementType, dim)]).getClass().getName(); } /** *************** public class ArrayType *** 146,156 **** * @throws IllegalArgumentException if dim is less than 1. */ private static final int getDimensions(OpenType elementType, ! int dim) { if (dim < 1) throw new IllegalArgumentException("Dimensions must be greater " + ! "than or equal to 1."); if (elementType instanceof ArrayType) return dim + ((ArrayType) elementType).getDimension(); return dim; --- 146,156 ---- * @throws IllegalArgumentException if dim is less than 1. */ private static final int getDimensions(OpenType elementType, ! int dim) { if (dim < 1) throw new IllegalArgumentException("Dimensions must be greater " + ! "than or equal to 1."); if (elementType instanceof ArrayType) return dim + ((ArrayType) elementType).getDimension(); return dim; *************** public class ArrayType *** 184,190 **** if (type.equals(Long.TYPE)) return SimpleType.LONG; if (type.equals(Short.TYPE)) ! return SimpleType.SHORT; if (type.equals(Void.TYPE)) return SimpleType.VOID; throw new OpenDataException(type + " is not a primitive type."); --- 184,190 ---- if (type.equals(Long.TYPE)) return SimpleType.LONG; if (type.equals(Short.TYPE)) ! return SimpleType.SHORT; if (type.equals(Void.TYPE)) return SimpleType.VOID; throw new OpenDataException(type + " is not a primitive type."); *************** public class ArrayType *** 218,224 **** if (type.equals(SimpleType.LONG)) return Long.TYPE; if (type.equals(SimpleType.SHORT)) ! return Short.TYPE; if (type.equals(SimpleType.VOID)) return Void.TYPE; throw new OpenDataException(type + " is not a primitive type."); --- 218,224 ---- if (type.equals(SimpleType.LONG)) return Long.TYPE; if (type.equals(SimpleType.SHORT)) ! return Short.TYPE; if (type.equals(SimpleType.VOID)) return Void.TYPE; throw new OpenDataException(type + " is not a primitive type."); *************** public class ArrayType *** 257,263 **** { OpenType trueElemType = getElementType(elemType); if (elemType instanceof ArrayType && ! ((ArrayType) elemType).isPrimitiveArray()) return getPrimitiveTypeClass((SimpleType) trueElemType).getName(); return trueElemType.getClassName(); } --- 257,263 ---- { OpenType trueElemType = getElementType(elemType); if (elemType instanceof ArrayType && ! ((ArrayType) elemType).isPrimitiveArray()) return getPrimitiveTypeClass((SimpleType) trueElemType).getName(); return trueElemType.getClassName(); } *************** public class ArrayType *** 309,329 **** public ArrayType(int dim, OpenType elementType) throws OpenDataException { ! super(getArrayClassName(elementType, dim, false), ! getArrayClassName(elementType, dim, false), ! getDimensions(elementType, dim) + "-dimension array of " ! + getElementTypeName(elementType)); if (!(elementType instanceof SimpleType || ! elementType instanceof CompositeType || ! elementType instanceof TabularType || ! elementType instanceof ArrayType)) throw new OpenDataException("The element type must be a simple " + ! "type, an array type, a composite type " + ! "or a tabular type."); dimension = getDimensions(elementType, dim); this.elementType = getElementType(elementType); primitiveArray = (elementType instanceof ArrayType && ! ((ArrayType) elementType).isPrimitiveArray()); } /** --- 309,329 ---- public ArrayType(int dim, OpenType elementType) throws OpenDataException { ! super(getArrayClassName(elementType, dim, false), ! getArrayClassName(elementType, dim, false), ! getDimensions(elementType, dim) + "-dimension array of " ! + getElementTypeName(elementType)); if (!(elementType instanceof SimpleType || ! elementType instanceof CompositeType || ! elementType instanceof TabularType || ! elementType instanceof ArrayType)) throw new OpenDataException("The element type must be a simple " + ! "type, an array type, a composite type " + ! "or a tabular type."); dimension = getDimensions(elementType, dim); this.elementType = getElementType(elementType); primitiveArray = (elementType instanceof ArrayType && ! ((ArrayType) elementType).isPrimitiveArray()); } /** *************** public class ArrayType *** 377,386 **** throws OpenDataException { super(getArrayClassName(elementType, 1, primitiveArray), ! getArrayClassName(elementType, 1, primitiveArray), ! "1-dimension array of " + ! (primitiveArray ? getPrimitiveTypeClass(elementType).getName() ! : elementType.getClassName())); dimension = 1; this.elementType = elementType; this.primitiveArray = primitiveArray; --- 377,386 ---- throws OpenDataException { super(getArrayClassName(elementType, 1, primitiveArray), ! getArrayClassName(elementType, 1, primitiveArray), ! "1-dimension array of " + ! (primitiveArray ? getPrimitiveTypeClass(elementType).getName() ! : elementType.getClassName())); dimension = 1; this.elementType = elementType; this.primitiveArray = primitiveArray; *************** public class ArrayType *** 400,406 **** *
                              • The primitive array flag is set the same in both * instances.
                              • * ! * * @param obj the object to compare with. * @return true if the conditions above hold. */ --- 400,406 ---- *
                              • The primitive array flag is set the same in both * instances.
                              • * ! * * @param obj the object to compare with. * @return true if the conditions above hold. */ *************** public class ArrayType *** 410,417 **** return false; ArrayType atype = (ArrayType) obj; return (atype.getDimension() == dimension && ! atype.getElementOpenType().equals(elementType) && ! atype.isPrimitiveArray() == primitiveArray); } /** --- 410,417 ---- return false; ArrayType atype = (ArrayType) obj; return (atype.getDimension() == dimension && ! atype.getElementOpenType().equals(elementType) && ! atype.isPrimitiveArray() == primitiveArray); } /** *************** public class ArrayType *** 438,444 **** * @throws OpenDataException if the class name of {@code elementType} * is not in {@link OpenType#ALLOWED_CLASSNAMES_LIST}. * @since 1.6 ! */ @SuppressWarnings("unchecked") public static ArrayType getArrayType(OpenType elementType) throws OpenDataException --- 438,444 ---- * @throws OpenDataException if the class name of {@code elementType} * is not in {@link OpenType#ALLOWED_CLASSNAMES_LIST}. * @since 1.6 ! */ @SuppressWarnings("unchecked") public static ArrayType getArrayType(OpenType elementType) throws OpenDataException *************** public class ArrayType *** 484,490 **** * @throws IllegalArgumentException if the type is not a primitive * array. * @since 1.6 ! */ @SuppressWarnings("unchecked") public static ArrayType getPrimitiveArrayType(Class type) { --- 484,490 ---- * @throws IllegalArgumentException if the type is not a primitive * array. * @since 1.6 ! */ @SuppressWarnings("unchecked") public static ArrayType getPrimitiveArrayType(Class type) { *************** public class ArrayType *** 495,526 **** int dim = 0; do { ! comType = comType.getComponentType(); ! ++dim; ! if (comType == null) ! throw new IllegalArgumentException("The given class is " + ! "not an array."); } while (comType.isArray()); try { ! arr = new ArrayType(getPrimitiveType(comType), true); } catch (OpenDataException e) { ! throw new IllegalArgumentException("The array is not of a primitive " + ! "type", e); } while (dim > 1) try ! { ! arr = new ArrayType(1, arr); ! --dim; ! } catch (OpenDataException e) ! { ! throw (Error) ! new InternalError("Couldn't generate extra dimensions").initCause(e); ! } primCache.put(type, arr); return arr; } --- 495,526 ---- int dim = 0; do { ! comType = comType.getComponentType(); ! ++dim; ! if (comType == null) ! throw new IllegalArgumentException("The given class is " + ! "not an array."); } while (comType.isArray()); try { ! arr = new ArrayType(getPrimitiveType(comType), true); } catch (OpenDataException e) { ! throw new IllegalArgumentException("The array is not of a primitive " + ! "type", e); } while (dim > 1) try ! { ! arr = new ArrayType(1, arr); ! --dim; ! } catch (OpenDataException e) ! { ! throw (Error) ! new InternalError("Couldn't generate extra dimensions").initCause(e); ! } primCache.put(type, arr); return arr; } *************** public class ArrayType *** 570,577 **** { if (hashCode == null) hashCode = Integer.valueOf(dimension + ! elementType.hashCode() + ! Boolean.valueOf(primitiveArray).hashCode()); return hashCode.intValue(); } --- 570,577 ---- { if (hashCode == null) hashCode = Integer.valueOf(dimension + ! elementType.hashCode() + ! Boolean.valueOf(primitiveArray).hashCode()); return hashCode.intValue(); } *************** public class ArrayType *** 619,639 **** Class elementClass = null; try { ! elementClass = Class.forName(getClassName()); } catch (ClassNotFoundException e) { ! throw new IllegalStateException("The array type's element " + ! "class could not be found.", e); } if (!(elementClass.isAssignableFrom(objClass))) return false; for (int a = 0; a < Array.getLength(obj); ++a) { ! Object elem = Array.get(obj, a); ! if (elem != null && ! (!(elementType.isValue(elem)))) ! return false; } return true; } --- 619,639 ---- Class elementClass = null; try { ! elementClass = Class.forName(getClassName()); } catch (ClassNotFoundException e) { ! throw new IllegalStateException("The array type's element " + ! "class could not be found.", e); } if (!(elementClass.isAssignableFrom(objClass))) return false; for (int a = 0; a < Array.getLength(obj); ++a) { ! Object elem = Array.get(obj, a); ! if (elem != null && ! (!(elementType.isValue(elem)))) ! return false; } return true; } *************** public class ArrayType *** 661,671 **** { if (string == null) string = getClass().getName() ! + "[name=" + getTypeName() ! + ", dimension=" + dimension ! + ", elementType=" + elementType ! + ", primitiveArray=" + primitiveArray ! + "]"; return string; } --- 661,671 ---- { if (string == null) string = getClass().getName() ! + "[name=" + getTypeName() ! + ", dimension=" + dimension ! + ", elementType=" + elementType ! + ", primitiveArray=" + primitiveArray ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/CompositeData.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/CompositeData.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/CompositeData.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/CompositeData.java Tue Jan 11 19:46:05 2011 *************** public interface CompositeData *** 151,154 **** Collection values(); } - --- 151,153 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/CompositeDataInvocationHandler.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/CompositeDataInvocationHandler.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/CompositeDataInvocationHandler.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/CompositeDataInvocationHandler.java Tue Jan 11 19:46:05 2011 *************** import java.lang.reflect.Proxy; *** 49,55 **** * {@link CompositeData} object. An instance of {@link CompositeData} * consists of a series of key-value mappings. This handler assumes * these keys to be the names of attributes, and thus provides ! * accessor methods by returning the associated value. *

                                *

                                * As an example, consider the following interface: --- 49,55 ---- * {@link CompositeData} object. An instance of {@link CompositeData} * consists of a series of key-value mappings. This handler assumes * these keys to be the names of attributes, and thus provides ! * accessor methods by returning the associated value. *

                                *

                                * As an example, consider the following interface: *************** public class CompositeDataInvocationHand *** 110,116 **** { if (data == null) throw new IllegalArgumentException("The CompositeData instance " + ! "must be non-null."); this.data = data; } --- 110,116 ---- { if (data == null) throw new IllegalArgumentException("The CompositeData instance " + ! "must be non-null."); this.data = data; } *************** public class CompositeDataInvocationHand *** 149,166 **** String mName = method.getName(); if (mName.equals("equals")) { ! if (args[0] instanceof Proxy) ! { ! InvocationHandler h = Proxy.getInvocationHandler(args[0]); ! if (h instanceof CompositeDataInvocationHandler) ! return data.equals(((CompositeDataInvocationHandler) ! h).getCompositeData()); ! } ! return false; } if (mName.equals("hashCode")) { ! return data.hashCode(); } String attrib = null; if (mName.startsWith("get")) --- 149,166 ---- String mName = method.getName(); if (mName.equals("equals")) { ! if (args[0] instanceof Proxy) ! { ! InvocationHandler h = Proxy.getInvocationHandler(args[0]); ! if (h instanceof CompositeDataInvocationHandler) ! return data.equals(((CompositeDataInvocationHandler) ! h).getCompositeData()); ! } ! return false; } if (mName.equals("hashCode")) { ! return data.hashCode(); } String attrib = null; if (mName.startsWith("get")) *************** public class CompositeDataInvocationHand *** 171,188 **** throw new NoSuchMethodException(mName + " is not an accessor."); if (!data.containsKey(attrib)) { ! if (Character.isLowerCase(attrib.charAt(0))) ! throw new NoSuchMethodException("The attribute " + ! attrib + " is not available " + ! "in the given CompositeData " + ! "object"); ! attrib = Character.toLowerCase(attrib.charAt(0)) ! + attrib.substring(1); ! if (!data.containsKey(attrib)) ! throw new NoSuchMethodException("The attribute " + ! attrib + " is not available " + ! "in the given CompositeData " + ! "object"); } return data.get(attrib); } --- 171,188 ---- throw new NoSuchMethodException(mName + " is not an accessor."); if (!data.containsKey(attrib)) { ! if (Character.isLowerCase(attrib.charAt(0))) ! throw new NoSuchMethodException("The attribute " + ! attrib + " is not available " + ! "in the given CompositeData " + ! "object"); ! attrib = Character.toLowerCase(attrib.charAt(0)) ! + attrib.substring(1); ! if (!data.containsKey(attrib)) ! throw new NoSuchMethodException("The attribute " + ! attrib + " is not available " + ! "in the given CompositeData " + ! "object"); } return data.get(attrib); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/CompositeDataSupport.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/CompositeDataSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/CompositeDataSupport.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/CompositeDataSupport.java Tue Jan 11 19:46:05 2011 *************** public class CompositeDataSupport *** 109,117 **** public CompositeDataSupport(CompositeType type, Map items) throws OpenDataException { ! this(type, ! items.keySet().toArray(new String[items.size()]), ! items.values().toArray()); } /** --- 109,117 ---- public CompositeDataSupport(CompositeType type, Map items) throws OpenDataException { ! this(type, ! items.keySet().toArray(new String[items.size()]), ! items.values().toArray()); } /** *************** public class CompositeDataSupport *** 157,182 **** Set typeKeys = type.keySet(); if (typeKeys.size() != names.length) throw new OpenDataException("The number of field names does not match " + ! "the type description."); contents = new TreeMap(); for (int a = 0; a < names.length; ++a) { ! if (names[a] == null) ! throw new IllegalArgumentException("Element " + a + " of the names " + ! "array is null."); ! if (names[a].length() == 0) ! throw new IllegalArgumentException("Element " + a + " of the names " + ! "array is an empty string."); ! if (values[a] == null) ! throw new IllegalArgumentException("Element " + a + " of the values " + ! "array is null."); ! if (!(typeKeys.contains(names[a]))) ! throw new OpenDataException("The name, " + names[a] + ", is not a " + ! "field in the given type description."); ! if (!(type.getType(names[a]).isValue(values[a]))) ! throw new OpenDataException("The value, " + values[a] + ", is not a " + ! "valid value for the " + names[a] + " field."); ! contents.put(names[a], values[a]); } } --- 157,182 ---- Set typeKeys = type.keySet(); if (typeKeys.size() != names.length) throw new OpenDataException("The number of field names does not match " + ! "the type description."); contents = new TreeMap(); for (int a = 0; a < names.length; ++a) { ! if (names[a] == null) ! throw new IllegalArgumentException("Element " + a + " of the names " + ! "array is null."); ! if (names[a].length() == 0) ! throw new IllegalArgumentException("Element " + a + " of the names " + ! "array is an empty string."); ! if (values[a] == null) ! throw new IllegalArgumentException("Element " + a + " of the values " + ! "array is null."); ! if (!(typeKeys.contains(names[a]))) ! throw new OpenDataException("The name, " + names[a] + ", is not a " + ! "field in the given type description."); ! if (!(type.getType(names[a]).isValue(values[a]))) ! throw new OpenDataException("The value, " + values[a] + ", is not a " + ! "valid value for the " + names[a] + " field."); ! contents.put(names[a], values[a]); } } *************** public class CompositeDataSupport *** 229,238 **** return false; for (String key : contents.keySet()) { ! if (!(data.containsKey(key))) ! return false; ! if (!(data.get(key).equals(contents.get(key)))) ! return false; } return true; } --- 229,238 ---- return false; for (String key : contents.keySet()) { ! if (!(data.containsKey(key))) ! return false; ! if (!(data.get(key).equals(contents.get(key)))) ! return false; } return true; } *************** public class CompositeDataSupport *** 343,346 **** } } - --- 343,345 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/CompositeType.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/CompositeType.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/CompositeType.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/CompositeType.java Tue Jan 11 19:46:05 2011 *************** import java.util.TreeMap; *** 46,52 **** /** * The open type descriptor for instances of the * {@link CompositeData} class. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 46,52 ---- /** * The open type descriptor for instances of the * {@link CompositeData} class. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public class CompositeType *** 109,142 **** * before comparison. */ public CompositeType(String name, String desc, String[] names, ! String[] descs, OpenType[] types) throws OpenDataException { super(CompositeData.class.getName(), name, desc); ! if (names.length == 0 ! || names.length != descs.length ! || names.length != types.length) throw new IllegalArgumentException("Arrays must be non-empty " + ! "and of equal size."); nameToDescription = new TreeMap(); for (int a = 0; a < names.length; ++a) { ! if (names[a] == null) ! throw new IllegalArgumentException("Name " + a + " is null."); ! if (descs[a] == null) ! throw new IllegalArgumentException("Description " + a + ! " is null."); ! String fieldName = names[a].trim(); ! if (fieldName.length() == 0) ! throw new IllegalArgumentException("Name " + a + " is " + ! "the empty string."); ! if (descs[a].length() == 0) ! throw new IllegalArgumentException("Description " + a + " is " + ! "the empty string."); ! if (nameToDescription.containsKey(fieldName)) ! throw new OpenDataException(fieldName + " appears more " + ! "than once."); ! nameToDescription.put(fieldName, descs[a]); } nameToType = new TreeMap>(); for (int a = 0; a < names.length; ++a) --- 109,142 ---- * before comparison. */ public CompositeType(String name, String desc, String[] names, ! String[] descs, OpenType[] types) throws OpenDataException { super(CompositeData.class.getName(), name, desc); ! if (names.length == 0 ! || names.length != descs.length ! || names.length != types.length) throw new IllegalArgumentException("Arrays must be non-empty " + ! "and of equal size."); nameToDescription = new TreeMap(); for (int a = 0; a < names.length; ++a) { ! if (names[a] == null) ! throw new IllegalArgumentException("Name " + a + " is null."); ! if (descs[a] == null) ! throw new IllegalArgumentException("Description " + a + ! " is null."); ! String fieldName = names[a].trim(); ! if (fieldName.length() == 0) ! throw new IllegalArgumentException("Name " + a + " is " + ! "the empty string."); ! if (descs[a].length() == 0) ! throw new IllegalArgumentException("Description " + a + " is " + ! "the empty string."); ! if (nameToDescription.containsKey(fieldName)) ! throw new OpenDataException(fieldName + " appears more " + ! "than once."); ! nameToDescription.put(fieldName, descs[a]); } nameToType = new TreeMap>(); for (int a = 0; a < names.length; ++a) *************** public class CompositeType *** 167,173 **** *

                              • The type names are equal.
                              • *
                              • The fields and their types match.
                              • * ! * * @param obj the object to compare with. * @return true if the conditions above hold. */ --- 167,173 ---- *
                              • The type names are equal.
                              • *
                              • The fields and their types match.
                              • * ! * * @param obj the object to compare with. * @return true if the conditions above hold. */ *************** public class CompositeType *** 184,190 **** for (String key : keys) { if (!(ctype.getType(key).equals(getType(key)))) ! return false; } return true; } --- 184,190 ---- for (String key : keys) { if (!(ctype.getType(key).equals(getType(key)))) ! return false; } return true; } *************** public class CompositeType *** 222,228 **** /** *

                                * Returns the hash code of the composite data type. ! * This is computed as the sum of the hash codes of * each field name and its type, together with the hash * code of the type name. These are the same elements * of the type that are compared as part of the --- 222,228 ---- /** *

                                * Returns the hash code of the composite data type. ! * This is computed as the sum of the hash codes of * each field name and its type, together with the hash * code of the type name. These are the same elements * of the type that are compared as part of the *************** public class CompositeType *** 242,259 **** { if (hashCode == null) { ! int elementTotal = 0; ! for (Map.Entry> entry : nameToType.entrySet()) ! { ! elementTotal += (entry.getKey().hashCode() + ! entry.getValue().hashCode()); ! } ! hashCode = Integer.valueOf(elementTotal ! + getTypeName().hashCode()); } return hashCode.intValue(); } ! /** * Returns true if the specified object is a member of this * composite type. The object is judged to be so if it is --- 242,259 ---- { if (hashCode == null) { ! int elementTotal = 0; ! for (Map.Entry> entry : nameToType.entrySet()) ! { ! elementTotal += (entry.getKey().hashCode() + ! entry.getValue().hashCode()); ! } ! hashCode = Integer.valueOf(elementTotal ! + getTypeName().hashCode()); } return hashCode.intValue(); } ! /** * Returns true if the specified object is a member of this * composite type. The object is judged to be so if it is *************** public class CompositeType *** 268,282 **** { if (obj instanceof CompositeData) { ! CompositeData data = (CompositeData) obj; ! return equals(data.getCompositeType()); } return false; } /** * Returns an unmodifiable {@link java.util.Set}-based ! * view of the field names that form part of this * {@link CompositeType} instance. The names are stored * in ascending alphanumeric order. * --- 268,282 ---- { if (obj instanceof CompositeData) { ! CompositeData data = (CompositeData) obj; ! return equals(data.getCompositeType()); } return false; } /** * Returns an unmodifiable {@link java.util.Set}-based ! * view of the field names that form part of this * {@link CompositeType} instance. The names are stored * in ascending alphanumeric order. * *************** public class CompositeType *** 311,319 **** { if (string == null) string = getClass().getName() ! + "[name=" + getTypeName() ! + ", fields=" + nameToType ! + "]"; return string; } --- 311,319 ---- { if (string == null) string = getClass().getName() ! + "[name=" + getTypeName() ! + ", fields=" + nameToType ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/InvalidKeyException.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/InvalidKeyException.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/InvalidKeyException.java Sat Jul 29 18:39:18 2006 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/InvalidKeyException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidKeyException *** 74,77 **** } } - --- 74,76 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/InvalidOpenTypeException.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/InvalidOpenTypeException.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/InvalidOpenTypeException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/InvalidOpenTypeException.java Tue Jan 11 19:46:05 2011 *************** public class InvalidOpenTypeException *** 73,76 **** } } - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/KeyAlreadyExistsException.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/KeyAlreadyExistsException.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/KeyAlreadyExistsException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/KeyAlreadyExistsException.java Tue Jan 11 19:46:05 2011 *************** public class KeyAlreadyExistsException *** 74,77 **** } } - --- 74,76 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenDataException.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenDataException.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenDataException.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenDataException.java Tue Jan 11 19:46:05 2011 *************** public class OpenDataException *** 76,79 **** } } - --- 76,78 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java Tue Jan 11 19:46:05 2011 *************** public interface OpenMBeanAttributeInfo *** 59,65 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * openType.equals(object.getOpenType()), * defaultValue.equals(object.getDefaultValue()), --- 59,65 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * openType.equals(object.getOpenType()), * defaultValue.equals(object.getDefaultValue()), diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java Tue Jan 11 19:46:05 2011 *************** import java.util.Set; *** 44,50 **** import javax.management.MBeanAttributeInfo; /** ! * Describes an attribute of an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 44,50 ---- import javax.management.MBeanAttributeInfo; /** ! * Describes an attribute of an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public class OpenMBeanAttributeInfoSuppo *** 113,123 **** * the empty string. */ public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, ! boolean isReadable, boolean isWritable, ! boolean isIs) { super(name, type == null ? null : type.getClassName(), desc, isReadable, ! isWritable, isIs); if (name == null) throw new IllegalArgumentException("The name may not be null."); if (desc == null) --- 113,123 ---- * the empty string. */ public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, ! boolean isReadable, boolean isWritable, ! boolean isIs) { super(name, type == null ? null : type.getClassName(), desc, isReadable, ! isWritable, isIs); if (name == null) throw new IllegalArgumentException("The name may not be null."); if (desc == null) *************** public class OpenMBeanAttributeInfoSuppo *** 128,134 **** throw new IllegalArgumentException("The name may not be the empty string."); if (desc.length() == 0) throw new IllegalArgumentException("The description may not be the " + ! "empty string."); } /** --- 128,134 ---- throw new IllegalArgumentException("The name may not be the empty string."); if (desc.length() == 0) throw new IllegalArgumentException("The description may not be the " + ! "empty string."); } /** *************** public class OpenMBeanAttributeInfoSuppo *** 158,165 **** * of {@link ArrayType} or {@link TabularType}. */ public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, ! boolean isReadable, boolean isWritable, ! boolean isIs, T defaultValue) throws OpenDataException { this(name, desc, type, isReadable, isWritable, isIs, defaultValue, null); --- 158,165 ---- * of {@link ArrayType} or {@link TabularType}. */ public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, ! boolean isReadable, boolean isWritable, ! boolean isIs, T defaultValue) throws OpenDataException { this(name, desc, type, isReadable, isWritable, isIs, defaultValue, null); *************** public class OpenMBeanAttributeInfoSuppo *** 168,174 **** /** *

                                * Constructs a new {@link OpenMBeanAttributeInfo} using the ! * specified name, description, open type, access properties, * default, maximum and minimum values. The name, description * and open type cannot be null and the name and * description may not be equal to the empty string. The --- 168,174 ---- /** *

                                * Constructs a new {@link OpenMBeanAttributeInfo} using the ! * specified name, description, open type, access properties, * default, maximum and minimum values. The name, description * and open type cannot be null and the name and * description may not be equal to the empty string. The *************** public class OpenMBeanAttributeInfoSuppo *** 187,193 **** *

                              • The default value must be smaller than or equal to the maximum value * (literally, defaultValue.compareTo(maxValue) <= 0.
                              • * ! * * @param name the name of the attribute. * @param desc a description of the attribute. * @param type the open type of the attribute. --- 187,193 ---- *
                              • The default value must be smaller than or equal to the maximum value * (literally, defaultValue.compareTo(maxValue) <= 0.
                              • * ! * * @param name the name of the attribute. * @param desc a description of the attribute. * @param type the open type of the attribute. *************** public class OpenMBeanAttributeInfoSuppo *** 205,243 **** */ @SuppressWarnings("unchecked") public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, ! boolean isReadable, boolean isWritable, ! boolean isIs, T defaultValue, ! Comparable minimumValue, ! Comparable maximumValue) throws OpenDataException { this(name, desc, type, isReadable, isWritable, isIs); if (defaultValue != null && !(type.isValue(defaultValue))) throw new OpenDataException("The default value is not a member of the " + ! "open type given."); if (minimumValue != null && !(type.isValue(minimumValue))) throw new OpenDataException("The minimum value is not a member of the " + ! "open type given."); if (maximumValue != null && !(type.isValue(maximumValue))) throw new OpenDataException("The maximum value is not a member of the " + ! "open type given."); ! if (defaultValue != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Default values are not applicable for " + ! "array or tabular types."); ! if (minimumValue != null && maximumValue != null ! && minimumValue.compareTo((T) maximumValue) > 0) throw new OpenDataException("The minimum value is greater than the " + ! "maximum."); ! if (minimumValue != null && defaultValue != null ! && minimumValue.compareTo(defaultValue) > 0) throw new OpenDataException("The minimum value is greater than the " + ! "default."); if (defaultValue != null && maximumValue != null ! && maximumValue.compareTo(defaultValue) < 0) throw new OpenDataException("The default value is greater than the " + ! "maximum."); ! openType = type; this.defaultValue = defaultValue; minValue = minimumValue; --- 205,243 ---- */ @SuppressWarnings("unchecked") public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, ! boolean isReadable, boolean isWritable, ! boolean isIs, T defaultValue, ! Comparable minimumValue, ! Comparable maximumValue) throws OpenDataException { this(name, desc, type, isReadable, isWritable, isIs); if (defaultValue != null && !(type.isValue(defaultValue))) throw new OpenDataException("The default value is not a member of the " + ! "open type given."); if (minimumValue != null && !(type.isValue(minimumValue))) throw new OpenDataException("The minimum value is not a member of the " + ! "open type given."); if (maximumValue != null && !(type.isValue(maximumValue))) throw new OpenDataException("The maximum value is not a member of the " + ! "open type given."); ! if (defaultValue != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Default values are not applicable for " + ! "array or tabular types."); ! if (minimumValue != null && maximumValue != null ! && minimumValue.compareTo((T) maximumValue) > 0) throw new OpenDataException("The minimum value is greater than the " + ! "maximum."); ! if (minimumValue != null && defaultValue != null ! && minimumValue.compareTo(defaultValue) > 0) throw new OpenDataException("The minimum value is greater than the " + ! "default."); if (defaultValue != null && maximumValue != null ! && maximumValue.compareTo(defaultValue) < 0) throw new OpenDataException("The default value is greater than the " + ! "maximum."); ! openType = type; this.defaultValue = defaultValue; minValue = minimumValue; *************** public class OpenMBeanAttributeInfoSuppo *** 282,321 **** * @throws OpenDataException if any condition in the list above is broken. */ public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, ! boolean isReadable, boolean isWritable, ! boolean isIs, T defaultValue, ! T[] legalValues) throws OpenDataException { this(name, desc, type, isReadable, isWritable, isIs); if (defaultValue != null && !(type.isValue(defaultValue))) throw new OpenDataException("The default value is not a member of the " + ! "open type given."); ! if (defaultValue != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Default values are not applicable for " + ! "array or tabular types."); ! if (legalValues != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Legal values are not applicable for " + ! "array or tabular types."); if (legalValues != null && legalValues.length > 0) { ! Set lv = new HashSet(legalValues.length); ! for (int a = 0; a < legalValues.length; ++a) ! { ! if (legalValues[a] != null && ! !(type.isValue(legalValues[a]))) ! throw new OpenDataException("The legal value, " ! + legalValues[a] + ! "is not a member of the " + ! "open type given."); ! lv.add(legalValues[a]); ! } ! if (defaultValue != null && !(lv.contains(defaultValue))) ! throw new OpenDataException("The default value is not in the set " + ! "of legal values."); ! this.legalValues = Collections.unmodifiableSet(lv); } openType = type; this.defaultValue = defaultValue; --- 282,321 ---- * @throws OpenDataException if any condition in the list above is broken. */ public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, ! boolean isReadable, boolean isWritable, ! boolean isIs, T defaultValue, ! T[] legalValues) throws OpenDataException { this(name, desc, type, isReadable, isWritable, isIs); if (defaultValue != null && !(type.isValue(defaultValue))) throw new OpenDataException("The default value is not a member of the " + ! "open type given."); ! if (defaultValue != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Default values are not applicable for " + ! "array or tabular types."); ! if (legalValues != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Legal values are not applicable for " + ! "array or tabular types."); if (legalValues != null && legalValues.length > 0) { ! Set lv = new HashSet(legalValues.length); ! for (int a = 0; a < legalValues.length; ++a) ! { ! if (legalValues[a] != null && ! !(type.isValue(legalValues[a]))) ! throw new OpenDataException("The legal value, " ! + legalValues[a] + ! "is not a member of the " + ! "open type given."); ! lv.add(legalValues[a]); ! } ! if (defaultValue != null && !(lv.contains(defaultValue))) ! throw new OpenDataException("The default value is not in the set " + ! "of legal values."); ! this.legalValues = Collections.unmodifiableSet(lv); } openType = type; this.defaultValue = defaultValue; *************** public class OpenMBeanAttributeInfoSuppo *** 329,335 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanAttributeInfo} ! * instance, * name.equals(object.getName()), * openType.equals(object.getOpenType()), * isRead == object.isReadable(), --- 329,335 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanAttributeInfo} ! * instance, * name.equals(object.getName()), * openType.equals(object.getOpenType()), * isRead == object.isReadable(), *************** public class OpenMBeanAttributeInfoSuppo *** 446,465 **** public int hashCode() { if (hashCode == null) ! hashCode = Integer.valueOf(getName().hashCode() + ! openType.hashCode() + ! Boolean.valueOf(isReadable()).hashCode() + ! (2 * ! Boolean.valueOf(isWritable()).hashCode()) + ! (4 * Boolean.valueOf(isIs()).hashCode()) + ! (defaultValue == null ? 0 : ! defaultValue.hashCode()) + ! (minValue == null ? 0 : ! minValue.hashCode()) + ! (maxValue == null ? 0 : ! maxValue.hashCode()) + ! (legalValues == null ? 0 : ! legalValues.hashCode())); return hashCode.intValue(); } --- 446,465 ---- public int hashCode() { if (hashCode == null) ! hashCode = Integer.valueOf(getName().hashCode() + ! openType.hashCode() + ! Boolean.valueOf(isReadable()).hashCode() + ! (2 * ! Boolean.valueOf(isWritable()).hashCode()) + ! (4 * Boolean.valueOf(isIs()).hashCode()) + ! (defaultValue == null ? 0 : ! defaultValue.hashCode()) + ! (minValue == null ? 0 : ! minValue.hashCode()) + ! (maxValue == null ? 0 : ! maxValue.hashCode()) + ! (legalValues == null ? 0 : ! legalValues.hashCode())); return hashCode.intValue(); } *************** public class OpenMBeanAttributeInfoSuppo *** 531,546 **** { if (string == null) string = getClass().getName() ! + "[name=" + getName() ! + ",openType=" + openType ! + ",isReadable=" + isReadable() ! + ",isWritable=" + isWritable() ! + ",isIs=" + isIs() ! + ",defaultValue=" + defaultValue ! + ",minValue=" + minValue ! + ",maxValue=" + maxValue ! + ",legalValues=" + legalValues ! + "]"; return string; } --- 531,546 ---- { if (string == null) string = getClass().getName() ! + "[name=" + getName() ! + ",openType=" + openType ! + ",isReadable=" + isReadable() ! + ",isWritable=" + isWritable() ! + ",isIs=" + isIs() ! + ",defaultValue=" + defaultValue ! + ",minValue=" + minValue ! + ",maxValue=" + maxValue ! + ",legalValues=" + legalValues ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java Tue Jan 11 19:46:05 2011 *************** public interface OpenMBeanConstructorInf *** 59,65 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * and signature.equals(object.getSignature()). */ --- 59,65 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * and signature.equals(object.getSignature()). */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java Tue Jan 11 19:46:05 2011 *************** import javax.management.MBeanConstructor *** 43,49 **** import javax.management.MBeanParameterInfo; /** ! * Describes a constructor for an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 43,49 ---- import javax.management.MBeanParameterInfo; /** ! * Describes a constructor for an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public class OpenMBeanConstructorInfoSup *** 89,95 **** * {@link javax.management.MBeanParameterInfo} */ public OpenMBeanConstructorInfoSupport(String name, String desc, ! OpenMBeanParameterInfo[] sig) { super(name, desc, (MBeanParameterInfo[]) sig); if (name == null) --- 89,95 ---- * {@link javax.management.MBeanParameterInfo} */ public OpenMBeanConstructorInfoSupport(String name, String desc, ! OpenMBeanParameterInfo[] sig) { super(name, desc, (MBeanParameterInfo[]) sig); if (name == null) *************** public class OpenMBeanConstructorInfoSup *** 100,106 **** throw new IllegalArgumentException("The name may not be the empty string."); if (desc.length() == 0) throw new IllegalArgumentException("The description may not be the " + ! "empty string."); } /** --- 100,106 ---- throw new IllegalArgumentException("The name may not be the empty string."); if (desc.length() == 0) throw new IllegalArgumentException("The description may not be the " + ! "empty string."); } /** *************** public class OpenMBeanConstructorInfoSup *** 110,116 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * and signature.equals(object.getSignature()). */ --- 110,116 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * and signature.equals(object.getSignature()). */ *************** public class OpenMBeanConstructorInfoSup *** 140,147 **** public int hashCode() { if (hashCode == null) ! hashCode = Integer.valueOf(getName().hashCode() + ! Arrays.asList(getSignature()).hashCode()); return hashCode.intValue(); } --- 140,147 ---- public int hashCode() { if (hashCode == null) ! hashCode = Integer.valueOf(getName().hashCode() + ! Arrays.asList(getSignature()).hashCode()); return hashCode.intValue(); } *************** public class OpenMBeanConstructorInfoSup *** 165,173 **** { if (string == null) string = getClass().getName() ! + "[name=" + getName() ! + ",signature=" + Arrays.toString(getSignature()) ! + "]"; return string; } --- 165,173 ---- { if (string == null) string = getClass().getName() ! + "[name=" + getName() ! + ",signature=" + Arrays.toString(getSignature()) ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanInfo.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanInfo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanInfo.java Tue Jan 11 19:46:05 2011 *************** public interface OpenMBeanInfo *** 66,72 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanInfo} ! * instance, * className.equals(object.getClassName()) * and each info class has an equal in the other object. */ --- 66,72 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanInfo} ! * instance, * className.equals(object.getClassName()) * and each info class has an equal in the other object. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java Tue Jan 11 19:46:05 2011 *************** import javax.management.MBeanNotificatio *** 47,53 **** import javax.management.MBeanOperationInfo; /** ! * Describes an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 47,53 ---- import javax.management.MBeanOperationInfo; /** ! * Describes an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public class OpenMBeanInfoSupport *** 97,112 **** * is not assignable to the equivalent * MBeanXXXInfo class. */ ! public OpenMBeanInfoSupport(String name, String desc, ! OpenMBeanAttributeInfo[] attribs, ! OpenMBeanConstructorInfo[] cons, ! OpenMBeanOperationInfo[] ops, ! MBeanNotificationInfo[] notifs) { super(name, desc, (MBeanAttributeInfo[]) attribs, ! (MBeanConstructorInfo[]) cons, ! (MBeanOperationInfo[]) ops, ! notifs); } /** --- 97,112 ---- * is not assignable to the equivalent * MBeanXXXInfo class. */ ! public OpenMBeanInfoSupport(String name, String desc, ! OpenMBeanAttributeInfo[] attribs, ! OpenMBeanConstructorInfo[] cons, ! OpenMBeanOperationInfo[] ops, ! MBeanNotificationInfo[] notifs) { super(name, desc, (MBeanAttributeInfo[]) attribs, ! (MBeanConstructorInfo[]) cons, ! (MBeanOperationInfo[]) ops, ! notifs); } /** *************** public class OpenMBeanInfoSupport *** 116,122 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanInfo} ! * instance, * className.equals(object.getClassName()) * and each info class has an equal in the other object. */ --- 116,122 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanInfo} ! * instance, * className.equals(object.getClassName()) * and each info class has an equal in the other object. */ *************** public class OpenMBeanInfoSupport *** 149,160 **** public int hashCode() { if (hashCode == null) ! hashCode = ! Integer.valueOf(getClassName().hashCode() + ! new HashSet(Arrays.asList(getAttributes())).hashCode() + ! new HashSet(Arrays.asList(getConstructors())).hashCode() + ! new HashSet(Arrays.asList(getNotifications())).hashCode() + ! new HashSet(Arrays.asList(getOperations())).hashCode()); return hashCode.intValue(); } --- 149,160 ---- public int hashCode() { if (hashCode == null) ! hashCode = ! Integer.valueOf(getClassName().hashCode() + ! new HashSet(Arrays.asList(getAttributes())).hashCode() + ! new HashSet(Arrays.asList(getConstructors())).hashCode() + ! new HashSet(Arrays.asList(getNotifications())).hashCode() + ! new HashSet(Arrays.asList(getOperations())).hashCode()); return hashCode.intValue(); } *************** public class OpenMBeanInfoSupport *** 179,190 **** { if (string == null) string = getClass().getName() ! + "[className=" + getClassName() ! + ",attributes=" + Arrays.toString(getAttributes()) ! + ",constructors=" + Arrays.toString(getConstructors()) ! + ",notifications=" + Arrays.toString(getNotifications()) ! + ",operations=" + Arrays.toString(getOperations()) ! + "]"; return string; } --- 179,190 ---- { if (string == null) string = getClass().getName() ! + "[className=" + getClassName() ! + ",attributes=" + Arrays.toString(getAttributes()) ! + ",constructors=" + Arrays.toString(getConstructors()) ! + ",notifications=" + Arrays.toString(getNotifications()) ! + ",operations=" + Arrays.toString(getOperations()) ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfo.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfo.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfo.java Tue Jan 11 19:46:05 2011 *************** public interface OpenMBeanOperationInfo *** 59,65 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * signature.equals(object.getSignature()), * returnOpenType.equals(object.getReturnOpenType()), --- 59,65 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * signature.equals(object.getSignature()), * returnOpenType.equals(object.getReturnOpenType()), diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java Tue Jan 11 19:46:05 2011 *************** import javax.management.MBeanOperationIn *** 43,49 **** import javax.management.MBeanParameterInfo; /** ! * Describes a operation for an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 43,49 ---- import javax.management.MBeanParameterInfo; /** ! * Describes a operation for an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public class OpenMBeanOperationInfoSuppo *** 82,88 **** * description may not be equal to the empty string, and neither * the name, description nor the open return type may be * null. The value of impact must be ! * one of the four valid values * ({@link javax.management.MBeanOperationInfo#INFO}, * {@link javax.management.MBeanOperationInfo#ACTION}, * {@link javax.management.MBeanOperationInfo#ACTION_INFO} and --- 82,88 ---- * description may not be equal to the empty string, and neither * the name, description nor the open return type may be * null. The value of impact must be ! * one of the four valid values * ({@link javax.management.MBeanOperationInfo#INFO}, * {@link javax.management.MBeanOperationInfo#ACTION}, * {@link javax.management.MBeanOperationInfo#ACTION_INFO} and *************** public class OpenMBeanOperationInfoSuppo *** 107,117 **** * {@link javax.management.MBeanParameterInfo} */ public OpenMBeanOperationInfoSupport(String name, String desc, ! OpenMBeanParameterInfo[] sig, ! OpenType type, int impact) { super(name, desc, (MBeanParameterInfo[]) sig, ! type == null ? null : type.getClassName(), impact); if (name == null) throw new IllegalArgumentException("The name may not be null."); if (desc == null) --- 107,117 ---- * {@link javax.management.MBeanParameterInfo} */ public OpenMBeanOperationInfoSupport(String name, String desc, ! OpenMBeanParameterInfo[] sig, ! OpenType type, int impact) { super(name, desc, (MBeanParameterInfo[]) sig, ! type == null ? null : type.getClassName(), impact); if (name == null) throw new IllegalArgumentException("The name may not be null."); if (desc == null) *************** public class OpenMBeanOperationInfoSuppo *** 122,130 **** throw new IllegalArgumentException("The name may not be the empty string."); if (desc.length() == 0) throw new IllegalArgumentException("The description may not be the " + ! "empty string."); ! if (impact != ACTION && impact != INFO && ! impact != ACTION_INFO && impact != UNKNOWN) throw new IllegalArgumentException("The impact factor is an invalid value."); returnOpenType = type; } --- 122,130 ---- throw new IllegalArgumentException("The name may not be the empty string."); if (desc.length() == 0) throw new IllegalArgumentException("The description may not be the " + ! "empty string."); ! if (impact != ACTION && impact != INFO && ! impact != ACTION_INFO && impact != UNKNOWN) throw new IllegalArgumentException("The impact factor is an invalid value."); returnOpenType = type; } *************** public class OpenMBeanOperationInfoSuppo *** 136,142 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * signature.equals(object.getSignature()), * returnOpenType.equals(object.getReturnOpenType()), --- 136,142 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * signature.equals(object.getSignature()), * returnOpenType.equals(object.getReturnOpenType()), *************** public class OpenMBeanOperationInfoSuppo *** 182,191 **** public int hashCode() { if (hashCode == null) ! hashCode = Integer.valueOf(getName().hashCode() + ! returnOpenType.hashCode() + ! Integer.valueOf(getImpact()).hashCode() + ! Arrays.asList(getSignature()).hashCode()); return hashCode.intValue(); } --- 182,191 ---- public int hashCode() { if (hashCode == null) ! hashCode = Integer.valueOf(getName().hashCode() + ! returnOpenType.hashCode() + ! Integer.valueOf(getImpact()).hashCode() + ! Arrays.asList(getSignature()).hashCode()); return hashCode.intValue(); } *************** public class OpenMBeanOperationInfoSuppo *** 209,238 **** { if (string == null) { ! String impactString; ! switch (getImpact()) ! { ! case INFO: ! impactString = "INFO"; ! break; ! case ACTION: ! impactString = "ACTION"; ! break; ! case ACTION_INFO: ! impactString = "ACTION_INFO"; ! break; ! case UNKNOWN: ! impactString = "UNKNOWN"; ! break; ! default: ! impactString = "ERRONEOUS VALUE"; ! } ! string = getClass().getName() ! + "[name=" + getName() ! + ",signature=" + Arrays.toString(getSignature()) ! + ",returnOpenType=" + returnOpenType ! + ",impact=" + impactString ! + "]"; } return string; } --- 209,238 ---- { if (string == null) { ! String impactString; ! switch (getImpact()) ! { ! case INFO: ! impactString = "INFO"; ! break; ! case ACTION: ! impactString = "ACTION"; ! break; ! case ACTION_INFO: ! impactString = "ACTION_INFO"; ! break; ! case UNKNOWN: ! impactString = "UNKNOWN"; ! break; ! default: ! impactString = "ERRONEOUS VALUE"; ! } ! string = getClass().getName() ! + "[name=" + getName() ! + ",signature=" + Arrays.toString(getSignature()) ! + ",returnOpenType=" + returnOpenType ! + ",impact=" + impactString ! + "]"; } return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfo.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfo.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfo.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfo.java Tue Jan 11 19:46:05 2011 *************** public interface OpenMBeanParameterInfo *** 59,65 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * openType.equals(object.getOpenType()), * defaultValue.equals(object.getDefaultValue()), --- 59,65 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * openType.equals(object.getOpenType()), * defaultValue.equals(object.getDefaultValue()), diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java Tue Jan 11 19:46:05 2011 *************** import javax.management.MBeanParameterIn *** 45,51 **** /** * Describes the parameters of a constructor or operation associated ! * with an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 --- 45,51 ---- /** * Describes the parameters of a constructor or operation associated ! * with an open management bean. * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 *************** public class OpenMBeanParameterInfoSuppo *** 122,128 **** throw new IllegalArgumentException("The name may not be the empty string."); if (desc.length() == 0) throw new IllegalArgumentException("The description may not be the " + ! "empty string."); openType = type; } --- 122,128 ---- throw new IllegalArgumentException("The name may not be the empty string."); if (desc.length() == 0) throw new IllegalArgumentException("The description may not be the " + ! "empty string."); openType = type; } *************** public class OpenMBeanParameterInfoSuppo *** 150,156 **** * of {@link ArrayType} or {@link TabularType}. */ public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, ! T defaultValue) throws OpenDataException { this(name, desc, type, defaultValue, null); --- 150,156 ---- * of {@link ArrayType} or {@link TabularType}. */ public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, ! T defaultValue) throws OpenDataException { this(name, desc, type, defaultValue, null); *************** public class OpenMBeanParameterInfoSuppo *** 177,183 **** *
                              • The default value must be smaller than or equal to the maximum value * (literally, defaultValue.compareTo(maxValue) <= 0.
                              • * ! * * @param name the name of the parameter. * @param desc a description of the parameter. * @param type the open type of the parameter. --- 177,183 ---- *
                              • The default value must be smaller than or equal to the maximum value * (literally, defaultValue.compareTo(maxValue) <= 0.
                              • * ! * * @param name the name of the parameter. * @param desc a description of the parameter. * @param type the open type of the parameter. *************** public class OpenMBeanParameterInfoSuppo *** 192,228 **** */ @SuppressWarnings("unchecked") public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, ! T defaultValue, Comparable minimumValue, ! Comparable maximumValue) throws OpenDataException { this(name, desc, type); if (defaultValue != null && !(type.isValue(defaultValue))) throw new OpenDataException("The default value is not a member of the " + ! "open type given."); if (minimumValue != null && !(type.isValue(minimumValue))) throw new OpenDataException("The minimum value is not a member of the " + ! "open type given."); if (maximumValue != null && !(type.isValue(maximumValue))) throw new OpenDataException("The maximum value is not a member of the " + ! "open type given."); ! if (defaultValue != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Default values are not applicable for " + ! "array or tabular types."); ! if (minimumValue != null && maximumValue != null ! && minimumValue.compareTo((T) maximumValue) > 0) throw new OpenDataException("The minimum value is greater than the " + ! "maximum."); ! if (minimumValue != null && defaultValue != null ! && minimumValue.compareTo(defaultValue) > 0) throw new OpenDataException("The minimum value is greater than the " + ! "default."); if (defaultValue != null && maximumValue != null ! && maximumValue.compareTo(defaultValue) < 0) throw new OpenDataException("The default value is greater than the " + ! "maximum."); ! this.defaultValue = defaultValue; minValue = minimumValue; maxValue = maximumValue; --- 192,228 ---- */ @SuppressWarnings("unchecked") public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, ! T defaultValue, Comparable minimumValue, ! Comparable maximumValue) throws OpenDataException { this(name, desc, type); if (defaultValue != null && !(type.isValue(defaultValue))) throw new OpenDataException("The default value is not a member of the " + ! "open type given."); if (minimumValue != null && !(type.isValue(minimumValue))) throw new OpenDataException("The minimum value is not a member of the " + ! "open type given."); if (maximumValue != null && !(type.isValue(maximumValue))) throw new OpenDataException("The maximum value is not a member of the " + ! "open type given."); ! if (defaultValue != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Default values are not applicable for " + ! "array or tabular types."); ! if (minimumValue != null && maximumValue != null ! && minimumValue.compareTo((T) maximumValue) > 0) throw new OpenDataException("The minimum value is greater than the " + ! "maximum."); ! if (minimumValue != null && defaultValue != null ! && minimumValue.compareTo(defaultValue) > 0) throw new OpenDataException("The minimum value is greater than the " + ! "default."); if (defaultValue != null && maximumValue != null ! && maximumValue.compareTo(defaultValue) < 0) throw new OpenDataException("The default value is greater than the " + ! "maximum."); ! this.defaultValue = defaultValue; minValue = minimumValue; maxValue = maximumValue; *************** public class OpenMBeanParameterInfoSuppo *** 263,300 **** * @throws OpenDataException if any condition in the list above is broken. */ public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, ! T defaultValue, T[] legalValues) throws OpenDataException { this(name, desc, type); if (defaultValue != null && !(type.isValue(defaultValue))) throw new OpenDataException("The default value is not a member of the " + ! "open type given."); ! if (defaultValue != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Default values are not applicable for " + ! "array or tabular types."); ! if (legalValues != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Legal values are not applicable for " + ! "array or tabular types."); if (legalValues != null && legalValues.length > 0) { ! Set lv = new HashSet(legalValues.length); ! for (int a = 0; a < legalValues.length; ++a) ! { ! if (legalValues[a] != null && ! !(type.isValue(legalValues[a]))) ! throw new OpenDataException("The legal value, " ! + legalValues[a] + ! "is not a member of the " + ! "open type given."); ! lv.add(legalValues[a]); ! } ! if (defaultValue != null && !(lv.contains(defaultValue))) ! throw new OpenDataException("The default value is not in the set " + ! "of legal values."); ! this.legalValues = Collections.unmodifiableSet(lv); } this.defaultValue = defaultValue; } --- 263,300 ---- * @throws OpenDataException if any condition in the list above is broken. */ public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, ! T defaultValue, T[] legalValues) throws OpenDataException { this(name, desc, type); if (defaultValue != null && !(type.isValue(defaultValue))) throw new OpenDataException("The default value is not a member of the " + ! "open type given."); ! if (defaultValue != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Default values are not applicable for " + ! "array or tabular types."); ! if (legalValues != null && (type instanceof ArrayType || ! type instanceof TabularType)) throw new OpenDataException("Legal values are not applicable for " + ! "array or tabular types."); if (legalValues != null && legalValues.length > 0) { ! Set lv = new HashSet(legalValues.length); ! for (int a = 0; a < legalValues.length; ++a) ! { ! if (legalValues[a] != null && ! !(type.isValue(legalValues[a]))) ! throw new OpenDataException("The legal value, " ! + legalValues[a] + ! "is not a member of the " + ! "open type given."); ! lv.add(legalValues[a]); ! } ! if (defaultValue != null && !(lv.contains(defaultValue))) ! throw new OpenDataException("The default value is not in the set " + ! "of legal values."); ! this.legalValues = Collections.unmodifiableSet(lv); } this.defaultValue = defaultValue; } *************** public class OpenMBeanParameterInfoSuppo *** 307,313 **** * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * openType.equals(object.getOpenType()), * defaultValue.equals(object.getDefaultValue()), --- 307,313 ---- * * @param obj the object to compare. * @return true if the object is a {@link OpenMBeanParameterInfo} ! * instance, * name.equals(object.getName()), * openType.equals(object.getOpenType()), * defaultValue.equals(object.getDefaultValue()), *************** public class OpenMBeanParameterInfoSuppo *** 418,433 **** public int hashCode() { if (hashCode == null) ! hashCode = Integer.valueOf(getName().hashCode() + ! openType.hashCode() + ! (defaultValue == null ? 0 : ! defaultValue.hashCode()) + ! (minValue == null ? 0 : ! minValue.hashCode()) + ! (maxValue == null ? 0 : ! maxValue.hashCode()) + ! (legalValues == null ? 0 : ! legalValues.hashCode())); return hashCode.intValue(); } --- 418,433 ---- public int hashCode() { if (hashCode == null) ! hashCode = Integer.valueOf(getName().hashCode() + ! openType.hashCode() + ! (defaultValue == null ? 0 : ! defaultValue.hashCode()) + ! (minValue == null ? 0 : ! minValue.hashCode()) + ! (maxValue == null ? 0 : ! maxValue.hashCode()) + ! (legalValues == null ? 0 : ! legalValues.hashCode())); return hashCode.intValue(); } *************** public class OpenMBeanParameterInfoSuppo *** 499,511 **** { if (string == null) string = getClass().getName() ! + "[name=" + getName() ! + ",openType=" + openType ! + ",defaultValue=" + defaultValue ! + ",minValue=" + minValue ! + ",maxValue=" + maxValue ! + ",legalValues=" + legalValues ! + "]"; return string; } --- 499,511 ---- { if (string == null) string = getClass().getName() ! + "[name=" + getName() ! + ",openType=" + openType ! + ",defaultValue=" + defaultValue ! + ",minValue=" + minValue ! + ",maxValue=" + maxValue ! + ",legalValues=" + legalValues ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenType.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenType.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/OpenType.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/OpenType.java Tue Jan 11 19:46:05 2011 *************** import java.util.List; *** 47,53 **** * applicable data values for open MBeans. An open type * is defined by its name and description, and the name * of the Java class it maps to. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 47,53 ---- * applicable data values for open MBeans. An open type * is defined by its name and description, and the name * of the Java class it maps to. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public abstract class OpenType *** 99,105 **** "java.util.Date", "javax.management.ObjectName", CompositeData.class.getName(), ! TabularData.class.getName() }; /** --- 99,105 ---- "java.util.Date", "javax.management.ObjectName", CompositeData.class.getName(), ! TabularData.class.getName() }; /** *************** public abstract class OpenType *** 107,114 **** * used as open types. Note that each type is also available * in array form, possibly with multiple dimensions. */ ! public static final List ALLOWED_CLASSNAMES_LIST = ! Arrays.asList(ALLOWED_CLASSNAMES); /** * Constructs a new {@link OpenType} for the specified class --- 107,114 ---- * used as open types. Note that each type is also available * in array form, possibly with multiple dimensions. */ ! public static final List ALLOWED_CLASSNAMES_LIST = ! Arrays.asList(ALLOWED_CLASSNAMES); /** * Constructs a new {@link OpenType} for the specified class *************** public abstract class OpenType *** 136,160 **** { if (name == null || name.equals("")) throw new IllegalArgumentException("The name can not be null " + ! "or the empty string."); if (desc == null || desc.equals("")) throw new IllegalArgumentException("The description can not " + ! "be null or the empty string."); Class type; try { ! type = Class.forName(className); } catch (ClassNotFoundException e) { ! throw (OpenDataException) new OpenDataException("The class name, " + className + ! ", is unavailable.").initCause(e); } while (type.isArray()) type = type.getComponentType(); if (!(type.isPrimitive() || ALLOWED_CLASSNAMES_LIST.contains(type.getName()))) ! throw new OpenDataException("The class name, " + className + ! ", does not specify a valid open type."); this.className = className; typeName = name; description = desc; --- 136,160 ---- { if (name == null || name.equals("")) throw new IllegalArgumentException("The name can not be null " + ! "or the empty string."); if (desc == null || desc.equals("")) throw new IllegalArgumentException("The description can not " + ! "be null or the empty string."); Class type; try { ! type = Class.forName(className); } catch (ClassNotFoundException e) { ! throw (OpenDataException) new OpenDataException("The class name, " + className + ! ", is unavailable.").initCause(e); } while (type.isArray()) type = type.getComponentType(); if (!(type.isPrimitive() || ALLOWED_CLASSNAMES_LIST.contains(type.getName()))) ! throw new OpenDataException("The class name, " + className + ! ", does not specify a valid open type."); this.className = className; typeName = name; description = desc; *************** public abstract class OpenType *** 172,178 **** /** * Returns the name of the Java class this type represents. This must * be one of the {@link ALLOWED_CLASSNAMES} or an array of one of them. ! * The specification of arrays follows the standard set by * {@link java.lang.Class#getName()} i.e. the name is the class name * preceded by n instances of '[' and an 'L', where n is number of * dimensions used by the array. --- 172,178 ---- /** * Returns the name of the Java class this type represents. This must * be one of the {@link ALLOWED_CLASSNAMES} or an array of one of them. ! * The specification of arrays follows the standard set by * {@link java.lang.Class#getName()} i.e. the name is the class name * preceded by n instances of '[' and an 'L', where n is number of * dimensions used by the array. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/SimpleType.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/SimpleType.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/SimpleType.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/SimpleType.java Tue Jan 11 19:46:05 2011 *************** import javax.management.ObjectName; *** 56,62 **** * basic Java types. As a result, the valid instances of this * class are predefined, and no constructor is given for creating * new instances. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 56,62 ---- * basic Java types. As a result, the valid instances of this * class are predefined, and no constructor is given for creating * new instances. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public final class SimpleType *** 80,86 **** * The {@link SimpleType} representation of * java.lang.Boolean. */ ! public static final SimpleType BOOLEAN; /** * The {@link SimpleType} representation of --- 80,86 ---- * The {@link SimpleType} representation of * java.lang.Boolean. */ ! public static final SimpleType BOOLEAN; /** * The {@link SimpleType} representation of *************** public final class SimpleType *** 98,104 **** * The {@link SimpleType} representation of * java.util.Date. */ ! public static final SimpleType DATE; /** * The {@link SimpleType} representation of --- 98,104 ---- * The {@link SimpleType} representation of * java.util.Date. */ ! public static final SimpleType DATE; /** * The {@link SimpleType} representation of *************** public final class SimpleType *** 171,198 **** { try { ! BIGDECIMAL = new SimpleType("java.math.BigDecimal"); ! BIGINTEGER = new SimpleType("java.math.BigInteger"); ! BOOLEAN = new SimpleType("java.lang.Boolean"); ! BYTE = new SimpleType("java.lang.Byte"); ! CHARACTER = new SimpleType("java.lang.Character"); ! DATE = new SimpleType("java.util.Date"); ! DOUBLE = new SimpleType("java.lang.Double"); ! FLOAT = new SimpleType("java.lang.Float"); ! INTEGER = new SimpleType("java.lang.Integer"); ! LONG = new SimpleType("java.lang.Long"); ! OBJECTNAME = ! new SimpleType("javax.management.ObjectName"); ! SHORT = new SimpleType("java.lang.Short"); ! STRING = new SimpleType("java.lang.String"); ! VOID = new SimpleType("java.lang.Void"); } catch (OpenDataException e) { ! /* In normal circumstances, this shouldn't be possible. */ ! throw new IllegalStateException("A invalid class name " + ! "was passed to the SimpleType " + ! "constructor.", e); } } --- 171,198 ---- { try { ! BIGDECIMAL = new SimpleType("java.math.BigDecimal"); ! BIGINTEGER = new SimpleType("java.math.BigInteger"); ! BOOLEAN = new SimpleType("java.lang.Boolean"); ! BYTE = new SimpleType("java.lang.Byte"); ! CHARACTER = new SimpleType("java.lang.Character"); ! DATE = new SimpleType("java.util.Date"); ! DOUBLE = new SimpleType("java.lang.Double"); ! FLOAT = new SimpleType("java.lang.Float"); ! INTEGER = new SimpleType("java.lang.Integer"); ! LONG = new SimpleType("java.lang.Long"); ! OBJECTNAME = ! new SimpleType("javax.management.ObjectName"); ! SHORT = new SimpleType("java.lang.Short"); ! STRING = new SimpleType("java.lang.String"); ! VOID = new SimpleType("java.lang.Void"); } catch (OpenDataException e) { ! /* In normal circumstances, this shouldn't be possible. */ ! throw new IllegalStateException("A invalid class name " + ! "was passed to the SimpleType " + ! "constructor.", e); } } *************** public final class SimpleType *** 200,211 **** * Constructs a new {@link SimpleType} instance for the given * class name. The class name is also used as the type name * and description of the {@link OpenType} instance. ! * * @param name the name of the class this instance should * represent. * @throws OpenDataException if somehow the constructor of the * superclass is passed an invalid ! * class name. */ private SimpleType(String name) throws OpenDataException --- 200,211 ---- * Constructs a new {@link SimpleType} instance for the given * class name. The class name is also used as the type name * and description of the {@link OpenType} instance. ! * * @param name the name of the class this instance should * represent. * @throws OpenDataException if somehow the constructor of the * superclass is passed an invalid ! * class name. */ private SimpleType(String name) throws OpenDataException *************** public final class SimpleType *** 224,230 **** * {@link SimpleType}. *
                              • The class names are equal.
                              • * ! * * @param obj the object to compare with. * @return true if the conditions above hold. */ --- 224,230 ---- * {@link SimpleType}. *
                              • The class names are equal.
                              • * ! * * @param obj the object to compare with. * @return true if the conditions above hold. */ *************** public final class SimpleType *** 319,325 **** if (equals(VOID)) return VOID; throw new InvalidObjectException("Invalid simple type instance " + ! "deserialized."); } /** --- 319,325 ---- if (equals(VOID)) return VOID; throw new InvalidObjectException("Invalid simple type instance " + ! "deserialized."); } /** *************** public final class SimpleType *** 342,349 **** { if (string == null) string = getClass().getName() ! + "[name=" + getClassName() ! + "]"; return string; } --- 342,349 ---- { if (string == null) string = getClass().getName() ! + "[name=" + getClassName() ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/TabularData.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/TabularData.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/TabularData.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/TabularData.java Tue Jan 11 19:46:05 2011 *************** public interface TabularData *** 63,69 **** * this instance's tabular type. The returned indices are the * values of the fields in the supplied {@link CompositeData} * instance that match the names given in the {@link TabularType}. ! * * @param val the {@link CompositeData} value whose index should * be calculated. * @return the index the value would take on, if it were to be added. --- 63,69 ---- * this instance's tabular type. The returned indices are the * values of the fields in the supplied {@link CompositeData} * instance that match the names given in the {@link TabularType}. ! * * @param val the {@link CompositeData} value whose index should * be calculated. * @return the index the value would take on, if it were to be added. *************** public interface TabularData *** 154,167 **** /** * Returns true if this {@link TabularData} instance * contains no {@link CompositeData} values. ! * * @return true if the instance is devoid of rows. */ boolean isEmpty(); /** * Returns a {@link java.util.Set} view of the keys or ! * indices of this {@link TabularData} instance. * * @return a set containing the keys of this instance. */ --- 154,167 ---- /** * Returns true if this {@link TabularData} instance * contains no {@link CompositeData} values. ! * * @return true if the instance is devoid of rows. */ boolean isEmpty(); /** * Returns a {@link java.util.Set} view of the keys or ! * indices of this {@link TabularData} instance. * * @return a set containing the keys of this instance. */ *************** public interface TabularData *** 174,180 **** * the same index as an existing value. The index is * calculated using the index names of the * {@link TabularType} for this instance. ! * * @param val the {@link CompositeData} value to add. * @throws NullPointerException if val is * null. --- 174,180 ---- * the same index as an existing value. The index is * calculated using the index names of the * {@link TabularType} for this instance. ! * * @param val the {@link CompositeData} value to add. * @throws NullPointerException if val is * null. *************** public interface TabularData *** 198,204 **** * value can not be added, then none of the values should * be. If the array is null or empty, the * method simply returns. ! * * @param vals the {@link CompositeData} values to add. * @throws NullPointerException if a value from the array is * null. --- 198,204 ---- * value can not be added, then none of the values should * be. If the array is null or empty, the * method simply returns. ! * * @param vals the {@link CompositeData} values to add. * @throws NullPointerException if a value from the array is * null. *************** public interface TabularData *** 247,253 **** * object. */ String toString(); ! /** * Returns the values associated with this instance. * --- 247,253 ---- * object. */ String toString(); ! /** * Returns the values associated with this instance. * *************** public interface TabularData *** 256,259 **** Collection values(); } - --- 256,258 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/TabularDataSupport.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/TabularDataSupport.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/TabularDataSupport.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/TabularDataSupport.java Tue Jan 11 19:46:05 2011 *************** public class TabularDataSupport *** 115,121 **** tabularType = type; dataMap = new HashMap(cap, lf); } ! /** * Calculates the index the specified {@link CompositeData} value * would have, if it was to be added to this {@link TabularData} --- 115,121 ---- tabularType = type; dataMap = new HashMap(cap, lf); } ! /** * Calculates the index the specified {@link CompositeData} value * would have, if it was to be added to this {@link TabularData} *************** public class TabularDataSupport *** 127,133 **** * this instance's tabular type. The returned indices are the * values of the fields in the supplied {@link CompositeData} * instance that match the names given in the {@link TabularType}. ! * * @param val the {@link CompositeData} value whose index should * be calculated. * @return the index the value would take on, if it were to be added. --- 127,133 ---- * this instance's tabular type. The returned indices are the * values of the fields in the supplied {@link CompositeData} * instance that match the names given in the {@link TabularType}. ! * * @param val the {@link CompositeData} value whose index should * be calculated. * @return the index the value would take on, if it were to be added. *************** public class TabularDataSupport *** 139,146 **** { if (!(val.getCompositeType().equals(tabularType.getRowType()))) throw new InvalidOpenTypeException("The type of the given value " + ! "does not match the row type " + ! "of this instance."); List indexNames = tabularType.getIndexNames(); List matchingIndicies = new ArrayList(indexNames.size()); for (String name : indexNames) --- 139,146 ---- { if (!(val.getCompositeType().equals(tabularType.getRowType()))) throw new InvalidOpenTypeException("The type of the given value " + ! "does not match the row type " + ! "of this instance."); List indexNames = tabularType.getIndexNames(); List matchingIndicies = new ArrayList(indexNames.size()); for (String name : indexNames) *************** public class TabularDataSupport *** 169,180 **** TabularDataSupport clone = null; try { ! clone = (TabularDataSupport) super.clone(); ! clone.setMap((HashMap) dataMap.clone()); } catch (CloneNotSupportedException e) { ! /* This won't happen as we implement Cloneable */ } return clone; } --- 169,180 ---- TabularDataSupport clone = null; try { ! clone = (TabularDataSupport) super.clone(); ! clone.setMap((HashMap) dataMap.clone()); } catch (CloneNotSupportedException e) { ! /* This won't happen as we implement Cloneable */ } return clone; } *************** public class TabularDataSupport *** 336,342 **** { if (!(isKeyValid(key))) throw new InvalidKeyException("The key does not match the " + ! "tabular type of this instance."); return (CompositeData) dataMap.get(key); } --- 336,342 ---- { if (!(isKeyValid(key))) throw new InvalidKeyException("The key does not match the " + ! "tabular type of this instance."); return (CompositeData) dataMap.get(key); } *************** public class TabularDataSupport *** 369,375 **** /** * Returns true if this {@link TabularData} instance * contains no {@link CompositeData} values. ! * * @return true if the instance is devoid of rows. */ public boolean isEmpty() --- 369,375 ---- /** * Returns true if this {@link TabularData} instance * contains no {@link CompositeData} values. ! * * @return true if the instance is devoid of rows. */ public boolean isEmpty() *************** public class TabularDataSupport *** 391,399 **** CompositeType rowType = tabularType.getRowType(); for (int a = 0; it.hasNext(); ++a) { ! OpenType type = rowType.getType(it.next()); ! if (!(type.isValue(key[a]))) ! return false; } return true; } --- 391,399 ---- CompositeType rowType = tabularType.getRowType(); for (int a = 0; it.hasNext(); ++a) { ! OpenType type = rowType.getType(it.next()); ! if (!(type.isValue(key[a]))) ! return false; } return true; } *************** public class TabularDataSupport *** 422,428 **** * the same index as an existing value. The index is * calculated using the index names of the * {@link TabularType} for this instance. ! * * @param val the {@link CompositeData} value to add. * @throws NullPointerException if val is * null. --- 422,428 ---- * the same index as an existing value. The index is * calculated using the index names of the * {@link TabularType} for this instance. ! * * @param val the {@link CompositeData} value to add. * @throws NullPointerException if val is * null. *************** public class TabularDataSupport *** 438,444 **** Object[] key = calculateIndex(val); if (dataMap.containsKey(key)) throw new KeyAlreadyExistsException("A value with this index " + ! "already exists."); dataMap.put(key, val); } --- 438,444 ---- Object[] key = calculateIndex(val); if (dataMap.containsKey(key)) throw new KeyAlreadyExistsException("A value with this index " + ! "already exists."); dataMap.put(key, val); } *************** public class TabularDataSupport *** 476,482 **** * value can not be added, then none of the values should * be. If the array is null or empty, the * method simply returns. ! * * @param vals the {@link CompositeData} values to add. * @throws NullPointerException if a value from the array is * null. --- 476,482 ---- * value can not be added, then none of the values should * be. If the array is null or empty, the * method simply returns. ! * * @param vals the {@link CompositeData} values to add. * @throws NullPointerException if a value from the array is * null. *************** public class TabularDataSupport *** 496,507 **** Map mapToAdd = new HashMap(vals.length); for (int a = 0; a < vals.length; ++a) { ! Object[] key = calculateIndex(vals[a]); ! if (dataMap.containsKey(key)) ! throw new KeyAlreadyExistsException("Element " + a + ": A " + ! "value with this index " + ! "already exists."); ! mapToAdd.put(key, vals[a]); } dataMap.putAll(mapToAdd); } --- 496,507 ---- Map mapToAdd = new HashMap(vals.length); for (int a = 0; a < vals.length; ++a) { ! Object[] key = calculateIndex(vals[a]); ! if (dataMap.containsKey(key)) ! throw new KeyAlreadyExistsException("Element " + a + ": A " + ! "value with this index " + ! "already exists."); ! mapToAdd.put(key, vals[a]); } dataMap.putAll(mapToAdd); } *************** public class TabularDataSupport *** 541,547 **** Iterator it = vals.iterator(); for (int a = 0; it.hasNext(); ++a) { ! data[a] = (CompositeData) it.next(); } putAll(data); } --- 541,547 ---- Iterator it = vals.iterator(); for (int a = 0; it.hasNext(); ++a) { ! data[a] = (CompositeData) it.next(); } putAll(data); } *************** public class TabularDataSupport *** 583,589 **** { if (!(isKeyValid(key))) throw new InvalidKeyException("The key does not match the " + ! "tabular type of this instance."); return (CompositeData) dataMap.remove(key); } --- 583,589 ---- { if (!(isKeyValid(key))) throw new InvalidKeyException("The key does not match the " + ! "tabular type of this instance."); return (CompositeData) dataMap.remove(key); } *************** public class TabularDataSupport *** 622,632 **** public String toString() { return getClass().getName() ! + "[tabularType=" + tabularType + ",dataMap=" + dataMap + "]"; } ! /** * Returns a collection (or bag) view of the values in this Map. The * collection is backed by the map, so that changes in one show up in --- 622,632 ---- public String toString() { return getClass().getName() ! + "[tabularType=" + tabularType + ",dataMap=" + dataMap + "]"; } ! /** * Returns a collection (or bag) view of the values in this Map. The * collection is backed by the map, so that changes in one show up in *************** public class TabularDataSupport *** 646,649 **** } } - --- 646,648 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/openmbean/TabularType.java gcc-4.6.0/libjava/classpath/javax/management/openmbean/TabularType.java *** gcc-4.5.2/libjava/classpath/javax/management/openmbean/TabularType.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/openmbean/TabularType.java Tue Jan 11 19:46:05 2011 *************** import java.util.List; *** 45,51 **** /** * The open type descriptor for instances of the * {@link TabularData} class. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ --- 45,51 ---- /** * The open type descriptor for instances of the * {@link TabularData} class. ! * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ *************** public class TabularType *** 92,98 **** * The result of TabularData.class.getName() is adopted * as the class name (see {@link OpenType}). The ordering of the array * elements is relevant in determining the indicies of the values in the ! * table, and thus in the use of the * {@link TabularData#get(java.lang.Object[])} and * {@link TabularData#remove(java.lang.Object[])} methods of the * {@link TabularData} class. --- 92,98 ---- * The result of TabularData.class.getName() is adopted * as the class name (see {@link OpenType}). The ordering of the array * elements is relevant in determining the indicies of the values in the ! * table, and thus in the use of the * {@link TabularData#get(java.lang.Object[])} and * {@link TabularData#remove(java.lang.Object[])} methods of the * {@link TabularData} class. *************** public class TabularType *** 108,114 **** * name in the given row type. */ public TabularType(String name, String desc, CompositeType rowType, ! String[] indexNames) throws OpenDataException { super(TabularData.class.getName(), name, desc); --- 108,114 ---- * name in the given row type. */ public TabularType(String name, String desc, CompositeType rowType, ! String[] indexNames) throws OpenDataException { super(TabularData.class.getName(), name, desc); *************** public class TabularType *** 116,131 **** throw new IllegalArgumentException("A null row type was given."); for (int a = 0; a < indexNames.length; ++a) { ! if (indexNames[a] == null) ! throw new IllegalArgumentException("Name " + a + ! " is null."); ! if (indexNames[a].length() == 0) ! throw new IllegalArgumentException("Name " + a + ! " is the empty string."); ! if (!(rowType.containsKey(indexNames[a]))) ! throw new OpenDataException("No matching key for " + ! indexNames[a] + " was found in " + ! "the supplied row type."); } this.rowType = rowType; this.indexNames = Collections.unmodifiableList(Arrays.asList(indexNames)); --- 116,131 ---- throw new IllegalArgumentException("A null row type was given."); for (int a = 0; a < indexNames.length; ++a) { ! if (indexNames[a] == null) ! throw new IllegalArgumentException("Name " + a + ! " is null."); ! if (indexNames[a].length() == 0) ! throw new IllegalArgumentException("Name " + a + ! " is the empty string."); ! if (!(rowType.containsKey(indexNames[a]))) ! throw new OpenDataException("No matching key for " + ! indexNames[a] + " was found in " + ! "the supplied row type."); } this.rowType = rowType; this.indexNames = Collections.unmodifiableList(Arrays.asList(indexNames)); *************** public class TabularType *** 144,150 **** *
                              • The row types are equal.
                              • *
                              • The index names are equal and in the same order.
                              • * ! * * @param obj the object to compare with. * @return true if the conditions above hold. */ --- 144,150 ---- *
                              • The row types are equal.
                              • *
                              • The index names are equal and in the same order.
                              • * ! * * @param obj the object to compare with. * @return true if the conditions above hold. */ *************** public class TabularType *** 154,161 **** return false; TabularType ttype = (TabularType) obj; return (ttype.getTypeName().equals(getTypeName()) ! && (ttype.getRowType().equals(getRowType())) ! && (ttype.getIndexNames().equals(getIndexNames()))); } /** --- 154,161 ---- return false; TabularType ttype = (TabularType) obj; return (ttype.getTypeName().equals(getTypeName()) ! && (ttype.getRowType().equals(getRowType())) ! && (ttype.getIndexNames().equals(getIndexNames()))); } /** *************** public class TabularType *** 205,220 **** { if (hashCode == null) { ! int elementTotal = 0; ! for (String s : indexNames) ! elementTotal += s.hashCode(); ! hashCode = Integer.valueOf(elementTotal ! + getTypeName().hashCode() ! + rowType.hashCode()); } return hashCode.intValue(); } ! /** * Returns true if the specified object is a member of this * tabular type. The object is judged to be so if it is --- 205,220 ---- { if (hashCode == null) { ! int elementTotal = 0; ! for (String s : indexNames) ! elementTotal += s.hashCode(); ! hashCode = Integer.valueOf(elementTotal ! + getTypeName().hashCode() ! + rowType.hashCode()); } return hashCode.intValue(); } ! /** * Returns true if the specified object is a member of this * tabular type. The object is judged to be so if it is *************** public class TabularType *** 229,236 **** { if (obj instanceof TabularData) { ! TabularData data = (TabularData) obj; ! return equals(data.getTabularType()); } return false; } --- 229,236 ---- { if (obj instanceof TabularData) { ! TabularData data = (TabularData) obj; ! return equals(data.getTabularType()); } return false; } *************** public class TabularType *** 258,267 **** { if (string == null) string = getClass().getName() ! + "[name=" + getTypeName() ! + ", rowType=" + rowType ! + ", indexNames=" + indexNames ! + "]"; return string; } --- 258,267 ---- { if (string == null) string = getClass().getName() ! + "[name=" + getTypeName() ! + ", rowType=" + rowType ! + ", indexNames=" + indexNames ! + "]"; return string; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/remote/NotificationResult.java gcc-4.6.0/libjava/classpath/javax/management/remote/NotificationResult.java *** gcc-4.5.2/libjava/classpath/javax/management/remote/NotificationResult.java Fri Jun 6 15:33:08 2008 --- gcc-4.6.0/libjava/classpath/javax/management/remote/NotificationResult.java Tue Jan 11 19:46:05 2011 *************** public class NotificationResult *** 101,114 **** * null. */ public NotificationResult(long startSeqNumber, long nextSeqNumber, ! TargetedNotification[] notifications) { if (startSeqNumber < 0) throw new IllegalArgumentException("Starting sequence number is " + ! "less than 0."); if (nextSeqNumber < 0) throw new IllegalArgumentException("Next sequence number is " + ! "less than 0."); if (notifications == null) throw new IllegalArgumentException("The array of notifications is null."); earliestSequenceNumber = startSeqNumber; --- 101,114 ---- * null. */ public NotificationResult(long startSeqNumber, long nextSeqNumber, ! TargetedNotification[] notifications) { if (startSeqNumber < 0) throw new IllegalArgumentException("Starting sequence number is " + ! "less than 0."); if (nextSeqNumber < 0) throw new IllegalArgumentException("Next sequence number is " + ! "less than 0."); if (notifications == null) throw new IllegalArgumentException("The array of notifications is null."); earliestSequenceNumber = startSeqNumber; *************** public class NotificationResult *** 158,164 **** { return getClass().getName() + "[earliestSequenceNumber=" + earliestSequenceNumber + ! ",nextSequenceNumber=" + nextSequenceNumber + ",targetedNotifications=" + targetedNotifications + "]"; } --- 158,164 ---- { return getClass().getName() + "[earliestSequenceNumber=" + earliestSequenceNumber + ! ",nextSequenceNumber=" + nextSequenceNumber + ",targetedNotifications=" + targetedNotifications + "]"; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/remote/TargetedNotification.java gcc-4.6.0/libjava/classpath/javax/management/remote/TargetedNotification.java *** gcc-4.5.2/libjava/classpath/javax/management/remote/TargetedNotification.java Fri Jun 6 15:33:08 2008 --- gcc-4.6.0/libjava/classpath/javax/management/remote/TargetedNotification.java Tue Jan 11 19:46:05 2011 *************** public class TargetedNotification *** 124,127 **** } } - --- 124,126 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/management/remote/rmi/RMIConnection.java gcc-4.6.0/libjava/classpath/javax/management/remote/rmi/RMIConnection.java *** gcc-4.5.2/libjava/classpath/javax/management/remote/rmi/RMIConnection.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/management/remote/rmi/RMIConnection.java Tue Jan 11 19:46:05 2011 *************** public interface RMIConnection *** 154,161 **** */ @SuppressWarnings("unchecked") void addNotificationListener(ObjectName name, ObjectName listener, ! MarshalledObject filter, MarshalledObject passback, ! Subject delegationSubject) throws InstanceNotFoundException, IOException; /** --- 154,161 ---- */ @SuppressWarnings("unchecked") void addNotificationListener(ObjectName name, ObjectName listener, ! MarshalledObject filter, MarshalledObject passback, ! Subject delegationSubject) throws InstanceNotFoundException, IOException; /** *************** public interface RMIConnection *** 226,232 **** */ @SuppressWarnings("unchecked") Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, ! Subject[] delegationSubjects) throws InstanceNotFoundException, IOException; /** --- 226,232 ---- */ @SuppressWarnings("unchecked") Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, ! Subject[] delegationSubjects) throws InstanceNotFoundException, IOException; /** *************** public interface RMIConnection *** 254,260 **** * using the given constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                                *

                                * If the name supplied is null, then the bean is --- 254,260 ---- * using the given constructor and registers it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                                *

                                * If the name supplied is null, then the bean is *************** public interface RMIConnection *** 262,268 **** * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                                ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. This may --- 262,268 ---- * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                                ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. This may *************** public interface RMIConnection *** 297,310 **** * not have permission to invoke this operation. * @throws IOException if an I/O error occurred in communicating with * the bean server. ! */ @SuppressWarnings("unchecked") ObjectInstance createMBean(String className, ObjectName name, ! MarshalledObject params, String[] sig, ! Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, IOException; /** *

                                --- 297,310 ---- * not have permission to invoke this operation. * @throws IOException if an I/O error occurred in communicating with * the bean server. ! */ @SuppressWarnings("unchecked") ObjectInstance createMBean(String className, ObjectName name, ! MarshalledObject params, String[] sig, ! Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, IOException; /** *

                                *************** public interface RMIConnection *** 320,326 **** * under the supplied name. The class is loaded using the * given class loader. If this argument is null, * then the same class loader as was used to load the server ! * is used. *

                                *

                                * If the name supplied is null, then the bean is --- 320,326 ---- * under the supplied name. The class is loaded using the * given class loader. If this argument is null, * then the same class loader as was used to load the server ! * is used. *

                                *

                                * If the name supplied is null, then the bean is *************** public interface RMIConnection *** 328,334 **** * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                                ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. This may --- 328,334 ---- * The {@link MBeanRegistration#preRegister preRegister} method * of this interface will be used to obtain the name in this case. *

                                ! * * @param className the class of the management bean, of which * an instance should be created. * @param name the name to register the new bean with. This may *************** public interface RMIConnection *** 369,380 **** */ @SuppressWarnings("unchecked") ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, MarshalledObject params, ! String[] sig, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException, ! IOException; /** *

                                --- 369,380 ---- */ @SuppressWarnings("unchecked") ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, MarshalledObject params, ! String[] sig, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException, ! IOException; /** *

                                *************** public interface RMIConnection *** 394,400 **** * of this interface will be used to obtain the name in this case. *

                                *

                                ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, ObjectName, Object[], String) * createMBean(className, name, loaderName, (Object[]) null, * (String) null)} with null parameters --- 394,400 ---- * of this interface will be used to obtain the name in this case. *

                                *

                                ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, ObjectName, Object[], String) * createMBean(className, name, loaderName, (Object[]) null, * (String) null)} with null parameters *************** public interface RMIConnection *** 434,445 **** * @see #createMBean(String, ObjectName, ObjectName, MarshalledObject, * String[], Subject) */ ! ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException, ! IOException; /** *

                                --- 434,445 ---- * @see #createMBean(String, ObjectName, ObjectName, MarshalledObject, * String[], Subject) */ ! ObjectInstance createMBean(String className, ObjectName name, ! ObjectName loaderName, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, InstanceNotFoundException, ! IOException; /** *

                                *************** public interface RMIConnection *** 449,455 **** * using the default constructor and registering it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                                *

                                * If the name supplied is null, then the bean is --- 449,455 ---- * using the default constructor and registering it with the server * under the supplied name. The class is loaded using the * {@link javax.management.loading.ClassLoaderRepository default ! * loader repository} of the server. *

                                *

                                * If the name supplied is null, then the bean is *************** public interface RMIConnection *** 458,464 **** * of this interface will be used to obtain the name in this case. *

                                *

                                ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, Object[], String[]) * createMBean(className, name, (Object[]) null, * (String[]) null)} with null parameters --- 458,464 ---- * of this interface will be used to obtain the name in this case. *

                                *

                                ! * This method is equivalent to calling {@link * #createMBean(String, ObjectName, Object[], String[]) * createMBean(className, name, (Object[]) null, * (String[]) null)} with null parameters *************** public interface RMIConnection *** 495,504 **** * @see #createMBean(String, ObjectName, MarshalledObject, String[], Subject) */ ObjectInstance createMBean(String className, ObjectName name, ! Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, IOException; /** *

                                --- 495,504 ---- * @see #createMBean(String, ObjectName, MarshalledObject, String[], Subject) */ ObjectInstance createMBean(String className, ObjectName name, ! Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, ! MBeanRegistrationException, MBeanException, ! NotCompliantMBeanException, IOException; /** *

                                *************** public interface RMIConnection *** 552,559 **** * @throws IOException if an I/O error occurs. */ NotificationResult fetchNotifications(long sequenceNumber, ! int maxNotifications, ! long timeout) throws IOException; /** --- 552,559 ---- * @throws IOException if an I/O error occurs. */ NotificationResult fetchNotifications(long sequenceNumber, ! int maxNotifications, ! long timeout) throws IOException; /** *************** public interface RMIConnection *** 587,594 **** */ Object getAttribute(ObjectName bean, String name, Subject delegationSubject) throws MBeanException, AttributeNotFoundException, ! InstanceNotFoundException, ReflectionException, ! IOException; /** * Handles {@link --- 587,594 ---- */ Object getAttribute(ObjectName bean, String name, Subject delegationSubject) throws MBeanException, AttributeNotFoundException, ! InstanceNotFoundException, ReflectionException, ! IOException; /** * Handles {@link *************** public interface RMIConnection *** 616,628 **** * @see DynamicMBean#getAttributes(String[]) */ AttributeList getAttributes(ObjectName bean, String[] names, ! Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, ! IOException; /** * Returns the unique identifier for this connection to the RMI ! * server. * * @return the connection ID. * @throws IOException if an I/O error occurred. --- 616,628 ---- * @see DynamicMBean#getAttributes(String[]) */ AttributeList getAttributes(ObjectName bean, String[] names, ! Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, ! IOException; /** * Returns the unique identifier for this connection to the RMI ! * server. * * @return the connection ID. * @throws IOException if an I/O error occurred. *************** public interface RMIConnection *** 707,713 **** */ MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IntrospectionException, ! ReflectionException, IOException; /** * Handles {@link --- 707,713 ---- */ MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IntrospectionException, ! ReflectionException, IOException; /** * Handles {@link *************** public interface RMIConnection *** 769,777 **** */ @SuppressWarnings("unchecked") Object invoke(ObjectName bean, String name, MarshalledObject params, ! String[] sig, Subject delegationSubject) throws InstanceNotFoundException, MBeanException, ! ReflectionException, IOException; /** *

                                --- 769,777 ---- */ @SuppressWarnings("unchecked") Object invoke(ObjectName bean, String name, MarshalledObject params, ! String[] sig, Subject delegationSubject) throws InstanceNotFoundException, MBeanException, ! ReflectionException, IOException; /** *

                                *************** public interface RMIConnection *** 790,796 **** *

                              • Both the class of B and C were loaded by the same class loader, * and B is assignable to C.
                              • * ! * * @param name the name of the management bean. * @param className the name of the class to test if name is * an instance of. --- 790,796 ---- *
                              • Both the class of B and C were loaded by the same class loader, * and B is assignable to C.
                              • * ! * * @param name the name of the management bean. * @param className the name of the class to test if name is * an instance of. *************** public interface RMIConnection *** 807,813 **** * the bean server. */ boolean isInstanceOf(ObjectName name, String className, ! Subject delegationSubject) throws InstanceNotFoundException, IOException; /** --- 807,813 ---- * the bean server. */ boolean isInstanceOf(ObjectName name, String className, ! Subject delegationSubject) throws InstanceNotFoundException, IOException; /** *************** public interface RMIConnection *** 852,858 **** *

                                * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                                * * @param name an {@link ObjectName} to use as a filter. --- 852,858 ---- *

                                * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                                * * @param name an {@link ObjectName} to use as a filter. *************** public interface RMIConnection *** 873,881 **** */ @SuppressWarnings("unchecked") Set queryMBeans(ObjectName name, MarshalledObject query, ! Subject delegationSubject) throws IOException; ! /** *

                                * Handles {@link --- 873,881 ---- */ @SuppressWarnings("unchecked") Set queryMBeans(ObjectName name, MarshalledObject query, ! Subject delegationSubject) throws IOException; ! /** *

                                * Handles {@link *************** public interface RMIConnection *** 896,902 **** *

                                * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                                * * @param name an {@link ObjectName} to use as a filter. --- 896,902 ---- *

                                * If both the object name and the query expression are null, * or the object name has no domain and no key properties, ! * no filtering will be performed and all beans are returned. *

                                * * @param name an {@link ObjectName} to use as a filter. *************** public interface RMIConnection *** 916,922 **** */ @SuppressWarnings("unchecked") Set queryNames(ObjectName name, MarshalledObject query, ! Subject delegationSubject) throws IOException; /** --- 916,922 ---- */ @SuppressWarnings("unchecked") Set queryNames(ObjectName name, MarshalledObject query, ! Subject delegationSubject) throws IOException; /** *************** public interface RMIConnection *** 962,973 **** */ @SuppressWarnings("unchecked") void removeNotificationListener(ObjectName name, ! ObjectName listener, ! MarshalledObject filter, ! MarshalledObject passback, ! Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Handles {@link --- 962,973 ---- */ @SuppressWarnings("unchecked") void removeNotificationListener(ObjectName name, ! ObjectName listener, ! MarshalledObject filter, ! MarshalledObject passback, ! Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Handles {@link *************** public interface RMIConnection *** 998,1006 **** * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) */ void removeNotificationListener(ObjectName name, ObjectName listener, ! Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Removes one or more {@link NotificationListener}s from the specified --- 998,1006 ---- * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) */ void removeNotificationListener(ObjectName name, ObjectName listener, ! Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Removes one or more {@link NotificationListener}s from the specified *************** public interface RMIConnection *** 1014,1020 **** * identifiers provided by the * {@link #addNotificationListeners(ObjectName[], MarshalledObject[], * Subject)} method to select the listeners to remove. ! * * @param name the name of the management bean from which the * listeners should be removed. * @param listenerIds the identifiers of the listeners to remove. --- 1014,1020 ---- * identifiers provided by the * {@link #addNotificationListeners(ObjectName[], MarshalledObject[], * Subject)} method to select the listeners to remove. ! * * @param name the name of the management bean from which the * listeners should be removed. * @param listenerIds the identifiers of the listeners to remove. *************** public interface RMIConnection *** 1036,1044 **** * @see #addNotificationListeners(ObjectName[], MarshalledObject[], Subject) */ void removeNotificationListeners(ObjectName name, Integer[] listenerIds, ! Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Handles {@link --- 1036,1044 ---- * @see #addNotificationListeners(ObjectName[], MarshalledObject[], Subject) */ void removeNotificationListeners(ObjectName name, Integer[] listenerIds, ! Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, ! IOException; /** * Handles {@link *************** public interface RMIConnection *** 1082,1091 **** */ @SuppressWarnings("unchecked") void setAttribute(ObjectName name, MarshalledObject attribute, ! Subject delegationSubject) throws InstanceNotFoundException, AttributeNotFoundException, ! InvalidAttributeValueException, MBeanException, ! ReflectionException, IOException; /** * Handles {@link --- 1082,1091 ---- */ @SuppressWarnings("unchecked") void setAttribute(ObjectName name, MarshalledObject attribute, ! Subject delegationSubject) throws InstanceNotFoundException, AttributeNotFoundException, ! InvalidAttributeValueException, MBeanException, ! ReflectionException, IOException; /** * Handles {@link *************** public interface RMIConnection *** 1123,1131 **** */ @SuppressWarnings("unchecked") AttributeList setAttributes(ObjectName name, MarshalledObject attributes, ! Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, ! IOException; /** * Handles {@link --- 1123,1131 ---- */ @SuppressWarnings("unchecked") AttributeList setAttributes(ObjectName name, MarshalledObject attributes, ! Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, ! IOException; /** * Handles {@link *************** public interface RMIConnection *** 1153,1161 **** * not have permission to invoke this operation. * @throws IOException if an I/O error occurred in communicating with * the bean server. ! */ void unregisterMBean(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, MBeanRegistrationException, ! IOException; } --- 1153,1161 ---- * not have permission to invoke this operation. * @throws IOException if an I/O error occurred in communicating with * the bean server. ! */ void unregisterMBean(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, MBeanRegistrationException, ! IOException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/AuthenticationException.java gcc-4.6.0/libjava/classpath/javax/naming/AuthenticationException.java *** gcc-4.5.2/libjava/classpath/javax/naming/AuthenticationException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/AuthenticationException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,44 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class AuthenticationException extends NamingSecurityException { private static final long serialVersionUID = 3678497619904568096L; --- 35,44 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class AuthenticationException extends NamingSecurityException { private static final long serialVersionUID = 3678497619904568096L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/AuthenticationNotSupportedException.java gcc-4.6.0/libjava/classpath/javax/naming/AuthenticationNotSupportedException.java *** gcc-4.5.2/libjava/classpath/javax/naming/AuthenticationNotSupportedException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/AuthenticationNotSupportedException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,44 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class AuthenticationNotSupportedException extends NamingSecurityException { --- 35,44 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class AuthenticationNotSupportedException extends NamingSecurityException { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/BinaryRefAddr.java gcc-4.6.0/libjava/classpath/javax/naming/BinaryRefAddr.java *** gcc-4.5.2/libjava/classpath/javax/naming/BinaryRefAddr.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/naming/BinaryRefAddr.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Arrays; *** 53,59 **** public class BinaryRefAddr extends RefAddr { static final long serialVersionUID = -3415254970957330361L; ! /** * The possibly null content of this RefAddr. * Set by the constructor and returned by getContent. --- 53,59 ---- public class BinaryRefAddr extends RefAddr { static final long serialVersionUID = -3415254970957330361L; ! /** * The possibly null content of this RefAddr. * Set by the constructor and returned by getContent. *************** public class BinaryRefAddr extends RefAd *** 109,115 **** { byte[] c1 = (byte[]) this.getContent(); byte[] c2 = (byte[]) refAddr.getContent(); ! return Arrays.equals(c1, c2); } } return false; --- 109,115 ---- { byte[] c1 = (byte[]) this.getContent(); byte[] c2 = (byte[]) refAddr.getContent(); ! return Arrays.equals(c1, c2); } } return false; *************** public class BinaryRefAddr extends RefAd *** 133,139 **** } private static char[] hex = {'0', '1', '2', '3', '4', '5', '6', '7', ! '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; /** * Returns a String representation of the RefAddr. Only the first 32 bytes * of the content are added as hex encoded characters. --- 133,139 ---- } private static char[] hex = {'0', '1', '2', '3', '4', '5', '6', '7', ! '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; /** * Returns a String representation of the RefAddr. Only the first 32 bytes * of the content are added as hex encoded characters. *************** public class BinaryRefAddr extends RefAd *** 147,154 **** byte[] b = (byte[]) getContent(); for (int i=0; i < b.length && i < 32; i++) { ! sb.append(hex[(b[i]&0xf0)>>4]); ! sb.append(hex[b[i]&0x0f]); } if (b.length > 32) sb.append("..."); --- 147,154 ---- byte[] b = (byte[]) getContent(); for (int i=0; i < b.length && i < 32; i++) { ! sb.append(hex[(b[i]&0xf0)>>4]); ! sb.append(hex[b[i]&0x0f]); } if (b.length > 32) sb.append("..."); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/Binding.java gcc-4.6.0/libjava/classpath/javax/naming/Binding.java *** gcc-4.5.2/libjava/classpath/javax/naming/Binding.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/Binding.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,52 **** package javax.naming; /** ! * Binding represents the name-object mapping of a * binding in a context. *

                                * Bindings are mappings of a name to an object and this class is used to * specify such mappings. The bindings of a context are retrieved by the * Context#listBindings() methods. *

                                ! * * @author Tom Tromey (tromey@redhat.com) * @since 1.3 */ --- 39,52 ---- package javax.naming; /** ! * Binding represents the name-object mapping of a * binding in a context. *

                                * Bindings are mappings of a name to an object and this class is used to * specify such mappings. The bindings of a context are retrieved by the * Context#listBindings() methods. *

                                ! * * @author Tom Tromey (tromey@redhat.com) * @since 1.3 */ *************** public class Binding extends NameClassPa *** 56,62 **** /** * Constructs an instance with the given name and object. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param obj the bound object --- 56,62 ---- /** * Constructs an instance with the given name and object. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param obj the bound object *************** public class Binding extends NameClassPa *** 68,76 **** } /** ! * Constructs an instance with the given name and object and a * flag indicating if the name is relative to the target context. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param obj the bound object --- 68,76 ---- } /** ! * Constructs an instance with the given name and object and a * flag indicating if the name is relative to the target context. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param obj the bound object *************** public class Binding extends NameClassPa *** 84,90 **** /** * Constructs an instance with the given name, classname and object. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param className the classname to set (maybe null) --- 84,90 ---- /** * Constructs an instance with the given name, classname and object. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param className the classname to set (maybe null) *************** public class Binding extends NameClassPa *** 97,105 **** } /** ! * Constructs an instance with the given name, classname, object and a * flag indicating if the name is relative to the target context. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param className the classname to set (maybe null) --- 97,105 ---- } /** ! * Constructs an instance with the given name, classname, object and a * flag indicating if the name is relative to the target context. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param className the classname to set (maybe null) *************** public class Binding extends NameClassPa *** 107,113 **** * @param obj the bound object */ public Binding (String name, String className, Object obj, ! boolean isRelative) { super (name, className, isRelative); boundObj = obj; --- 107,113 ---- * @param obj the bound object */ public Binding (String name, String className, Object obj, ! boolean isRelative) { super (name, className, isRelative); boundObj = obj; *************** public class Binding extends NameClassPa *** 119,125 **** * Returns the classname if set explicitly. If not and the bound object is * not null the classname of the bound object is used. *

                                ! * * @return The fully qualified classname (may be null). */ public String getClassName () --- 119,125 ---- * Returns the classname if set explicitly. If not and the bound object is * not null the classname of the bound object is used. *

                                ! * * @return The fully qualified classname (may be null). */ public String getClassName () *************** public class Binding extends NameClassPa *** 150,156 **** /** * Returns the string representation. ! * @return The string as given by the NameClassPair superclass plus * the bound objects string representation seperated by a colon. */ public String toString () --- 150,156 ---- /** * Returns the string representation. ! * @return The string as given by the NameClassPair superclass plus * the bound objects string representation seperated by a colon. */ public String toString () diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/CannotProceedException.java gcc-4.6.0/libjava/classpath/javax/naming/CannotProceedException.java *** gcc-4.5.2/libjava/classpath/javax/naming/CannotProceedException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/CannotProceedException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,45 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; import java.util.Hashtable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 14, 2001 --- 35,45 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; import java.util.Hashtable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 14, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/CommunicationException.java gcc-4.6.0/libjava/classpath/javax/naming/CommunicationException.java *** gcc-4.5.2/libjava/classpath/javax/naming/CommunicationException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/CommunicationException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class CommunicationException extends NamingException { private static final long serialVersionUID = 3618507780299986611L; --- 38,44 ---- package javax.naming; ! public class CommunicationException extends NamingException { private static final long serialVersionUID = 3618507780299986611L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/CompositeName.java gcc-4.6.0/libjava/classpath/javax/naming/CompositeName.java *** gcc-4.5.2/libjava/classpath/javax/naming/CompositeName.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/naming/CompositeName.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 53,66 **** * the composite name http://www.gnu.org/software/classpath/index.html spans * over three namespaces (the protocol http, the web server location * (www.gnu.org) and the index.html location on the server). ! * * @author Tom Tromey (tromey@redhat.com) */ public class CompositeName implements Name, Cloneable, Serializable { private static final long serialVersionUID = 1667768148915813118L; ! ! private transient Vector elts; public CompositeName () { --- 53,66 ---- * the composite name http://www.gnu.org/software/classpath/index.html spans * over three namespaces (the protocol http, the web server location * (www.gnu.org) and the index.html location on the server). ! * * @author Tom Tromey (tromey@redhat.com) */ public class CompositeName implements Name, Cloneable, Serializable { private static final long serialVersionUID = 1667768148915813118L; ! ! private transient Vector elts; public CompositeName () { *************** public class CompositeName implements Na *** 72,79 **** elts = new Vector (); try { ! while (comps.hasMoreElements ()) ! elts.add (comps.nextElement ()); } catch (NoSuchElementException ignore) { --- 72,79 ---- elts = new Vector (); try { ! while (comps.hasMoreElements ()) ! elts.add (comps.nextElement ()); } catch (NoSuchElementException ignore) { *************** public class CompositeName implements Na *** 84,132 **** { elts = new Vector (); // Parse the string into its components. ! final char no_quote = 'x'; // Use 'x' to mean no quoting. char quote = no_quote; boolean escaped = false; StringBuilder new_element = new StringBuilder (); for (int i = 0; i < n.length (); ++i) { ! char c = n.charAt (i); ! if (escaped) ! escaped = false; ! else if (c == '\\') ! { ! escaped = true; ! continue; ! } ! else if (quote != no_quote) ! { ! if (quote == c) ! { ! // The quotes must surround a complete component. ! if (i + 1 < n.length () && n.charAt (i + 1) != '/') ! throw new InvalidNameException ("close quote before end of component"); ! elts.add (new_element.toString ()); ! new_element.setLength (0); ! quote = no_quote; ! continue; ! } ! // Otherwise, fall through. ! } ! // Quotes are only special at the start of a component. ! else if (new_element.length () == 0 ! && (c == '\'' || c == '"')) ! { ! quote = c; ! continue; ! } ! else if (c == '/') ! { ! elts.add (new_element.toString ()); ! new_element.setLength (0); ! continue; ! } ! new_element.append (c); } if (new_element.length () != 0) --- 84,132 ---- { elts = new Vector (); // Parse the string into its components. ! final char no_quote = 'x'; // Use 'x' to mean no quoting. char quote = no_quote; boolean escaped = false; StringBuilder new_element = new StringBuilder (); for (int i = 0; i < n.length (); ++i) { ! char c = n.charAt (i); ! if (escaped) ! escaped = false; ! else if (c == '\\') ! { ! escaped = true; ! continue; ! } ! else if (quote != no_quote) ! { ! if (quote == c) ! { ! // The quotes must surround a complete component. ! if (i + 1 < n.length () && n.charAt (i + 1) != '/') ! throw new InvalidNameException ("close quote before end of component"); ! elts.add (new_element.toString ()); ! new_element.setLength (0); ! quote = no_quote; ! continue; ! } ! // Otherwise, fall through. ! } ! // Quotes are only special at the start of a component. ! else if (new_element.length () == 0 ! && (c == '\'' || c == '"')) ! { ! quote = c; ! continue; ! } ! else if (c == '/') ! { ! elts.add (new_element.toString ()); ! new_element.setLength (0); ! continue; ! } ! new_element.append (c); } if (new_element.length () != 0) *************** public class CompositeName implements Na *** 156,166 **** Enumeration e = n.getAll (); try { ! while (e.hasMoreElements ()) ! { ! elts.add (posn, e.nextElement ()); ! ++posn; ! } } catch (NoSuchElementException ignore) { --- 156,166 ---- Enumeration e = n.getAll (); try { ! while (e.hasMoreElements ()) ! { ! elts.add (posn, e.nextElement ()); ! ++posn; ! } } catch (NoSuchElementException ignore) { *************** public class CompositeName implements Na *** 173,180 **** Enumeration e = suffix.getAll (); try { ! while (e.hasMoreElements ()) ! elts.add (e.nextElement ()); } catch (NoSuchElementException ignore) { --- 173,180 ---- Enumeration e = suffix.getAll (); try { ! while (e.hasMoreElements ()) ! elts.add (e.nextElement ()); } catch (NoSuchElementException ignore) { *************** public class CompositeName implements Na *** 195,204 **** int last = Math.min (cn.elts.size (), elts.size ()); for (int i = 0; i < last; ++i) { ! String f = elts.get (i); ! int comp = f.compareTo (cn.elts.get (i)); ! if (comp != 0) ! return comp; } return elts.size () - cn.elts.size (); } --- 195,204 ---- int last = Math.min (cn.elts.size (), elts.size ()); for (int i = 0; i < last; ++i) { ! String f = elts.get (i); ! int comp = f.compareTo (cn.elts.get (i)); ! if (comp != 0) ! return comp; } return elts.size () - cn.elts.size (); } *************** public class CompositeName implements Na *** 213,220 **** int delta = elts.size () - cn.elts.size (); for (int i = 0; i < cn.elts.size (); ++i) { ! if (! cn.elts.get (i).equals (elts.get (delta + i))) ! return false; } return true; } --- 213,220 ---- int delta = elts.size () - cn.elts.size (); for (int i = 0; i < cn.elts.size (); ++i) { ! if (! cn.elts.get (i).equals (elts.get (delta + i))) ! return false; } return true; } *************** public class CompositeName implements Na *** 288,295 **** return false; for (int i = 0; i < cn.elts.size (); ++i) { ! if (! cn.elts.get (i).equals (elts.get (i))) ! return false; } return true; } --- 288,295 ---- return false; for (int i = 0; i < cn.elts.size (); ++i) { ! if (! cn.elts.get (i).equals (elts.get (i))) ! return false; } return true; } *************** public class CompositeName implements Na *** 299,331 **** CPStringBuilder result = new CPStringBuilder (); for (int i = 0; i < elts.size (); ++i) { ! // For simplicity we choose to always quote using escapes and ! // never quotes. ! String elt = elts.get (i); ! if (i > 0 ! || (i == elts.size () - 1 && elt.equals (""))) ! result.append ('/'); ! for (int k = 0; k < elt.length (); ++k) ! { ! char c = elt.charAt (k); ! // We must quote ! // ... a leading quote, ! if ((k == 0 && (c == '"' || c == '\'')) ! // ... an escape preceding a meta character, ! // or at the end of a component, ! || (c == '\\' ! && (k == elt.length () - 1 ! || "\\'\"/".indexOf (elt.charAt (k + 1)) != -1)) ! // ... or a component separator. ! || c == '/') ! result.append ('\\'); ! result.append (c); ! } } return result.toString (); } ! ! private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { int size = s.readInt(); --- 299,331 ---- CPStringBuilder result = new CPStringBuilder (); for (int i = 0; i < elts.size (); ++i) { ! // For simplicity we choose to always quote using escapes and ! // never quotes. ! String elt = elts.get (i); ! if (i > 0 ! || (i == elts.size () - 1 && elt.equals (""))) ! result.append ('/'); ! for (int k = 0; k < elt.length (); ++k) ! { ! char c = elt.charAt (k); ! // We must quote ! // ... a leading quote, ! if ((k == 0 && (c == '"' || c == '\'')) ! // ... an escape preceding a meta character, ! // or at the end of a component, ! || (c == '\\' ! && (k == elt.length () - 1 ! || "\\'\"/".indexOf (elt.charAt (k + 1)) != -1)) ! // ... or a component separator. ! || c == '/') ! result.append ('\\'); ! result.append (c); ! } } return result.toString (); } ! ! private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { int size = s.readInt(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/CompoundName.java gcc-4.6.0/libjava/classpath/javax/naming/CompoundName.java *** gcc-4.5.2/libjava/classpath/javax/naming/CompoundName.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/naming/CompoundName.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 52,59 **** /** * Represents hierarchical names from the single namespace. For instance, * the path /home/audriusa/classpath/file.txt is the compound name, using ! * the filesystem namespace. ! * * @author Tom Tromey (tromey@redhat.com) * @date May 16, 2001 * --- 52,59 ---- /** * Represents hierarchical names from the single namespace. For instance, * the path /home/audriusa/classpath/file.txt is the compound name, using ! * the filesystem namespace. ! * * @author Tom Tromey (tromey@redhat.com) * @date May 16, 2001 * *************** public class CompoundName implements Nam *** 82,89 **** initializeSyntax (); try { ! while (comps.hasMoreElements ()) ! elts.add (comps.nextElement ()); } catch (NoSuchElementException ignore) { --- 82,89 ---- initializeSyntax (); try { ! while (comps.hasMoreElements ()) ! elts.add (comps.nextElement ()); } catch (NoSuchElementException ignore) { *************** public class CompoundName implements Nam *** 104,182 **** String quote = null; while (i < n.length ()) { ! String special = isSpecial (n, i); ! if (special == escape && escape != null) ! { ! if (n.length () == i + special.length ()) ! { ! // A trailing escape is treated as itself. ! new_element.append (special); ! i += special.length (); ! } ! else ! { ! String eSpecial = isSpecial (n, i + special.length ()); ! if (eSpecial != null) ! { ! // Treat the escape as an escape. ! new_element.append (eSpecial); ! i += special.length () + eSpecial.length (); ! } ! else ! { ! // Treat the escape as itself. ! new_element.append (special); ! i += special.length (); ! } ! continue; ! } ! } ! else if (quote != null) ! { ! // It is safe to use == here. ! if (quote == special) ! { ! // Quotes must surround a complete component. ! if (i + quote.length () < n.length () ! && ! n.startsWith (separator, i + quote.length ())) ! throw new InvalidNameException ("close quote before end of component"); ! elts.add (new_element.toString ()); ! new_element.setLength (0); ! i += quote.length (); ! quote = null; ! continue; ! } ! // Otherwise, fall through. ! } ! // Quotes are only special at the start of a component. ! else if (new_element.length () == 0 ! && special == beginQuote ! && beginQuote != null) ! { ! quote = endQuote; ! i += special.length (); ! continue; ! } ! else if (new_element.length () == 0 ! && special == beginQuote2 ! && beginQuote2 != null) ! { ! quote = endQuote2; ! i += special.length (); ! continue; ! } ! else if (direction != FLAT && special == separator) ! { ! elts.add (new_element.toString ()); ! new_element.setLength (0); ! i += special.length (); ! continue; ! } ! // Nothing in particular, so try the next character. ! new_element.append (n.charAt (i)); ! ++i; } if (new_element.length () != 0) --- 104,182 ---- String quote = null; while (i < n.length ()) { ! String special = isSpecial (n, i); ! if (special == escape && escape != null) ! { ! if (n.length () == i + special.length ()) ! { ! // A trailing escape is treated as itself. ! new_element.append (special); ! i += special.length (); ! } ! else ! { ! String eSpecial = isSpecial (n, i + special.length ()); ! if (eSpecial != null) ! { ! // Treat the escape as an escape. ! new_element.append (eSpecial); ! i += special.length () + eSpecial.length (); ! } ! else ! { ! // Treat the escape as itself. ! new_element.append (special); ! i += special.length (); ! } ! continue; ! } ! } ! else if (quote != null) ! { ! // It is safe to use == here. ! if (quote == special) ! { ! // Quotes must surround a complete component. ! if (i + quote.length () < n.length () ! && ! n.startsWith (separator, i + quote.length ())) ! throw new InvalidNameException ("close quote before end of component"); ! elts.add (new_element.toString ()); ! new_element.setLength (0); ! i += quote.length (); ! quote = null; ! continue; ! } ! // Otherwise, fall through. ! } ! // Quotes are only special at the start of a component. ! else if (new_element.length () == 0 ! && special == beginQuote ! && beginQuote != null) ! { ! quote = endQuote; ! i += special.length (); ! continue; ! } ! else if (new_element.length () == 0 ! && special == beginQuote2 ! && beginQuote2 != null) ! { ! quote = endQuote2; ! i += special.length (); ! continue; ! } ! else if (direction != FLAT && special == separator) ! { ! elts.add (new_element.toString ()); ! new_element.setLength (0); ! i += special.length (); ! continue; ! } ! // Nothing in particular, so try the next character. ! new_element.append (n.charAt (i)); ! ++i; } if (new_element.length () != 0) *************** public class CompoundName implements Nam *** 184,196 **** if (direction == RIGHT_TO_LEFT) { ! // Reverse the order of the elements. ! int len = elts.size (); ! for (i = 0; i < len / 2; ++i) ! { ! String t = elts.set (i, elts.get (len - i - 1)); ! elts.set (len - i - 1, t); ! } } // Error checking. --- 184,196 ---- if (direction == RIGHT_TO_LEFT) { ! // Reverse the order of the elements. ! int len = elts.size (); ! for (i = 0; i < len / 2; ++i) ! { ! String t = elts.set (i, elts.get (len - i - 1)); ! elts.set (len - i - 1, t); ! } } // Error checking. *************** public class CompoundName implements Nam *** 215,225 **** Enumeration e = n.getAll (); try { ! while (e.hasMoreElements ()) ! { ! elts.add (posn, e.nextElement ()); ! ++posn; ! } } catch (NoSuchElementException ignore) { --- 215,225 ---- Enumeration e = n.getAll (); try { ! while (e.hasMoreElements ()) ! { ! elts.add (posn, e.nextElement ()); ! ++posn; ! } } catch (NoSuchElementException ignore) { *************** public class CompoundName implements Nam *** 232,239 **** Enumeration e = suffix.getAll (); try { ! while (e.hasMoreElements ()) ! elts.add (e.nextElement ()); } catch (NoSuchElementException ignore) { --- 232,239 ---- Enumeration e = suffix.getAll (); try { ! while (e.hasMoreElements ()) ! elts.add (e.nextElement ()); } catch (NoSuchElementException ignore) { *************** public class CompoundName implements Nam *** 254,263 **** int last = Math.min (cn.elts.size (), elts.size ()); for (int i = 0; i < last; ++i) { ! String f = canonicalize (elts.get (i)); ! int comp = f.compareTo (canonicalize (cn.elts.get (i))); ! if (comp != 0) ! return comp; } return elts.size () - cn.elts.size (); } --- 254,263 ---- int last = Math.min (cn.elts.size (), elts.size ()); for (int i = 0; i < last; ++i) { ! String f = canonicalize (elts.get (i)); ! int comp = f.compareTo (canonicalize (cn.elts.get (i))); ! if (comp != 0) ! return comp; } return elts.size () - cn.elts.size (); } *************** public class CompoundName implements Nam *** 272,280 **** int delta = elts.size () - cn.elts.size (); for (int i = 0; i < cn.elts.size (); ++i) { ! String f = canonicalize (elts.get (delta + i)); ! if (! f.equals (canonicalize (cn.elts.get (i)))) ! return false; } return true; } --- 272,280 ---- int delta = elts.size () - cn.elts.size (); for (int i = 0; i < cn.elts.size (); ++i) { ! String f = canonicalize (elts.get (delta + i)); ! if (! f.equals (canonicalize (cn.elts.get (i)))) ! return false; } return true; } *************** public class CompoundName implements Nam *** 346,354 **** return false; for (int i = 0; i < cn.elts.size (); ++i) { ! String f = canonicalize (elts.get (i)); ! if (! f.equals (canonicalize (cn.elts.get (i)))) ! return false; } return true; } --- 346,354 ---- return false; for (int i = 0; i < cn.elts.size (); ++i) { ! String f = canonicalize (elts.get (i)); ! if (! f.equals (canonicalize (cn.elts.get (i)))) ! return false; } return true; } *************** public class CompoundName implements Nam *** 368,374 **** else if (endQuote != null && element.startsWith (endQuote, offset)) special = endQuote; else if (beginQuote2 != null ! && element.startsWith (beginQuote2, offset)) special = beginQuote2; else if (endQuote2 != null && element.startsWith (endQuote2, offset)) special = endQuote2; --- 368,374 ---- else if (endQuote != null && element.startsWith (endQuote, offset)) special = endQuote; else if (beginQuote2 != null ! && element.startsWith (beginQuote2, offset)) special = beginQuote2; else if (endQuote2 != null && element.startsWith (endQuote2, offset)) special = endQuote2; *************** public class CompoundName implements Nam *** 382,411 **** int size = elts.size (); for (int i = 0; i < size; ++i) { ! // Find the appropriate element. FIXME: not clear what FLAT ! // means. ! int offset = (direction == RIGHT_TO_LEFT) ? (size - i - 1) : i; ! String element = elts.get (offset); ! if (i > 0 ! || (i == size - 1 && element.equals (""))) ! result.append (separator); ! int k = 0; ! while (k < element.length ()) ! { ! String special = isSpecial (element, k); ! if (special != null) ! { ! result.append (escape); ! result.append (special); ! k += special.length (); ! } ! else ! { ! result.append (element.charAt (k)); ! ++k; ! } ! } } return result.toString (); --- 382,411 ---- int size = elts.size (); for (int i = 0; i < size; ++i) { ! // Find the appropriate element. FIXME: not clear what FLAT ! // means. ! int offset = (direction == RIGHT_TO_LEFT) ? (size - i - 1) : i; ! String element = elts.get (offset); ! if (i > 0 ! || (i == size - 1 && element.equals (""))) ! result.append (separator); ! int k = 0; ! while (k < element.length ()) ! { ! String special = isSpecial (element, k); ! if (special != null) ! { ! result.append (escape); ! result.append (special); ! k += special.length (); ! } ! else ! { ! result.append (element.charAt (k)); ! ++k; ! } ! } } return result.toString (); *************** public class CompoundName implements Nam *** 422,438 **** if (trimBlanks) { ! int first = 0; ! while (first < ret.length () ! && Character.isWhitespace (ret.charAt (first))) ! ++first; ! int last = ret.length () - 1; ! while (last >= first ! && Character.isWhitespace (ret.charAt (last))) ! --last; ! ret = ret.substring (first, last); } return ret; --- 422,438 ---- if (trimBlanks) { ! int first = 0; ! while (first < ret.length () ! && Character.isWhitespace (ret.charAt (first))) ! ++first; ! int last = ret.length () - 1; ! while (last >= first ! && Character.isWhitespace (ret.charAt (last))) ! --last; ! ret = ret.substring (first, last); } return ret; *************** public class CompoundName implements Nam *** 451,458 **** this.direction = LEFT_TO_RIGHT; else { ! // If we don't recognize it, default to flat. ! this.direction = FLAT; } // This is required unless the direction is FLAT. Unfortunately --- 451,458 ---- this.direction = LEFT_TO_RIGHT; else { ! // If we don't recognize it, default to flat. ! this.direction = FLAT; } // This is required unless the direction is FLAT. Unfortunately *************** public class CompoundName implements Nam *** 461,478 **** this.ignoreCase = Boolean.valueOf (mySyntax.getProperty ("jndi.syntax.ignorecase", ! "false")).booleanValue (); this.escape = mySyntax.getProperty ("jndi.syntax.escape", null); this.beginQuote = mySyntax.getProperty ("jndi.syntax.beginquote", null); this.endQuote = mySyntax.getProperty ("jndi.syntax.endquote", ! this.beginQuote); this.beginQuote2 = mySyntax.getProperty ("jndi.syntax.beginquote2", ! null); this.endQuote2 = mySyntax.getProperty ("jndi.syntax.endquote2", ! this.beginQuote2); this.trimBlanks = Boolean.valueOf (mySyntax.getProperty ("jndi.syntax.trimblanks", ! "false")).booleanValue (); } private void readObject(ObjectInputStream s) --- 461,478 ---- this.ignoreCase = Boolean.valueOf (mySyntax.getProperty ("jndi.syntax.ignorecase", ! "false")).booleanValue (); this.escape = mySyntax.getProperty ("jndi.syntax.escape", null); this.beginQuote = mySyntax.getProperty ("jndi.syntax.beginquote", null); this.endQuote = mySyntax.getProperty ("jndi.syntax.endquote", ! this.beginQuote); this.beginQuote2 = mySyntax.getProperty ("jndi.syntax.beginquote2", ! null); this.endQuote2 = mySyntax.getProperty ("jndi.syntax.endquote2", ! this.beginQuote2); this.trimBlanks = Boolean.valueOf (mySyntax.getProperty ("jndi.syntax.trimblanks", ! "false")).booleanValue (); } private void readObject(ObjectInputStream s) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ConfigurationException.java gcc-4.6.0/libjava/classpath/javax/naming/ConfigurationException.java *** gcc-4.5.2/libjava/classpath/javax/naming/ConfigurationException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/ConfigurationException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class ConfigurationException extends NamingException { private static final long serialVersionUID = - 2535156726228855704L; --- 38,44 ---- package javax.naming; ! public class ConfigurationException extends NamingException { private static final long serialVersionUID = - 2535156726228855704L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/Context.java gcc-4.6.0/libjava/classpath/javax/naming/Context.java *** gcc-4.5.2/libjava/classpath/javax/naming/Context.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/Context.java Tue Jan 11 19:46:05 2011 *************** public interface Context *** 127,133 **** /** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. ! * * @param name the name that will be given to the object (in the scope of this * context). * @param obj the object being named. --- 127,133 ---- /** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. ! * * @param name the name that will be given to the object (in the scope of this * context). * @param obj the object being named. *************** public interface Context *** 143,149 **** /** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. ! * * @param name the name that will be given to the object (in the scope of this * context). * @param obj the object being named. --- 143,149 ---- /** * Give the specified name for the specified object. The passed name must not * be already bound to some other object. ! * * @param name the name that will be given to the object (in the scope of this * context). * @param obj the object being named. *************** public interface Context *** 159,165 **** /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name the name of the object being searched in this context * @return the named object * @throws NamingException if the naming fails. --- 159,165 ---- /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name the name of the object being searched in this context * @return the named object * @throws NamingException if the naming fails. *************** public interface Context *** 169,175 **** /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name the name of the object being searched in this context * @return the named object * @throws NamingException if the naming fails. --- 169,175 ---- /** * Gets the previously named object by name. If the passed name is empty, the * method should return a cloned instance of this naming context. ! * * @param name the name of the object being searched in this context * @return the named object * @throws NamingException if the naming fails. *************** public interface Context *** 179,185 **** /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name the name that will be given to the object (in the scope of this * context). * @param obj the object being named. --- 179,185 ---- /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name the name that will be given to the object (in the scope of this * context). * @param obj the object being named. *************** public interface Context *** 193,199 **** /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name the name that will be given to the object (in the scope of this * context). * @param obj the object being named. --- 193,199 ---- /** * Give the specified name for the specified object. Unlike bind, this method * silently replaces the existing binding for this name, if one exists. ! * * @param name the name that will be given to the object (in the scope of this * context). * @param obj the object being named. *************** public interface Context *** 209,215 **** * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name the name to be removed * @throws NameNotFoundException if one of the intermediate naming contexts * does not exist. Will not be thrown if just the terminal binding --- 209,215 ---- * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name the name to be removed * @throws NameNotFoundException if one of the intermediate naming contexts * does not exist. Will not be thrown if just the terminal binding *************** public interface Context *** 224,230 **** * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name the name to be removed * @throws NameNotFoundException if one of the intermediate naming contexts * does not exist. Will not be thrown if just the terminal binding --- 224,230 ---- * returns without action if the name is not bound to an object in the * terminal context, but throws {@link NameNotFoundException} if one of the * intermadiate contexts does not exist. ! * * @param name the name to be removed * @throws NameNotFoundException if one of the intermediate naming contexts * does not exist. Will not be thrown if just the terminal binding *************** public interface Context *** 237,243 **** /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName the existing name of the known object * @param newName the new name of the same object * @throws NameNotFoundException if the oldName is unknown for this context --- 237,243 ---- /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName the existing name of the known object * @param newName the new name of the same object * @throws NameNotFoundException if the oldName is unknown for this context *************** public interface Context *** 249,255 **** /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName the existing name of the known object * @param newName the new name of the same object * @throws NameNotFoundException if the oldName is unknown for this context --- 249,255 ---- /** * Renames the existing binding, removing the existing and giving the new name * for the same object. ! * * @param oldName the existing name of the known object * @param newName the new name of the same object * @throws NameNotFoundException if the oldName is unknown for this context *************** public interface Context *** 265,271 **** * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name the name of the subcontext * @return the enumeration over the names, known for the given subcontext. * @throws NamingException --- 265,271 ---- * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name the name of the subcontext * @return the enumeration over the names, known for the given subcontext. * @throws NamingException *************** public interface Context *** 279,285 **** * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name the name of the subcontext * @return the enumeration over the names, known for the given subcontext. * @throws NamingException --- 279,285 ---- * bound object. The behaviour in the case if the bindings are added or * removed later is not defined. The contents of the subcontexts are not * included. ! * * @param name the name of the subcontext * @return the enumeration over the names, known for the given subcontext. * @throws NamingException *************** public interface Context *** 292,298 **** * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name the name of the subcontext * @return the enumeration over the names, known for the given subcontext. * @throws NamingException --- 292,298 ---- * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name the name of the subcontext * @return the enumeration over the names, known for the given subcontext. * @throws NamingException *************** public interface Context *** 305,311 **** * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name the name of the subcontext * @return the enumeration over the names, known for the given subcontext. * @throws NamingException --- 305,311 ---- * {@link Binding}, providing also information about the class of the bound * object. The behaviour in the case if the bindings are added or removed * later is not defined. The contents of the subcontexts are not included. ! * * @param name the name of the subcontext * @return the enumeration over the names, known for the given subcontext. * @throws NamingException *************** public interface Context *** 315,321 **** /** * Creates the new naming subcontext and binds it to the current (this) * context. ! * * @param name the name of the new context being created * @return the newly created context, bound to the instance of the context on * that the method has been called --- 315,321 ---- /** * Creates the new naming subcontext and binds it to the current (this) * context. ! * * @param name the name of the new context being created * @return the newly created context, bound to the instance of the context on * that the method has been called *************** public interface Context *** 329,335 **** /** * Creates the new naming subcontext and binds it to the current (this) * context. ! * * @param name the name of the new context being created * @return the newly created context, bound to the instance of the context on * that the method has been called --- 329,335 ---- /** * Creates the new naming subcontext and binds it to the current (this) * context. ! * * @param name the name of the new context being created * @return the newly created context, bound to the instance of the context on * that the method has been called *************** public interface Context *** 344,350 **** * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param name the name of the subcontext beig removed. * @throws ContextNotEmptyException if the named context is not empty. * @throws NamingException --- 344,350 ---- * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param name the name of the subcontext beig removed. * @throws ContextNotEmptyException if the named context is not empty. * @throws NamingException *************** public interface Context *** 355,373 **** * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param name the name of the subcontext beig removed. * @throws ContextNotEmptyException if the named context is not empty. * @throws NamingException */ void destroySubcontext(String name) throws NamingException; ! /** * Retrieves the named object, not following the link of the terminal atomic * component of the name. If the object, named by the passed name, is not a * link, returns that object itself. The intermediate links, if present, are * followed. ! * * @param name the name of the object that may be a link, leading to another * object. * @return the named object, not following the terminal link (if present). --- 355,373 ---- * Removes the naming subcontext from this naming context. Returns without * action if such subcontext does not exist. The context being destroyed must * be empty. ! * * @param name the name of the subcontext beig removed. * @throws ContextNotEmptyException if the named context is not empty. * @throws NamingException */ void destroySubcontext(String name) throws NamingException; ! /** * Retrieves the named object, not following the link of the terminal atomic * component of the name. If the object, named by the passed name, is not a * link, returns that object itself. The intermediate links, if present, are * followed. ! * * @param name the name of the object that may be a link, leading to another * object. * @return the named object, not following the terminal link (if present). *************** public interface Context *** 380,397 **** * component of the name. If the object, named by the passed name, is not a * link, returns that object itself. The intermediate links, if present, are * followed. ! * * @param name the name of the object that may be a link, leading to another * object. * @return the named object, not following the terminal link (if present). * @throws NamingException */ Object lookupLink(String name) throws NamingException; ! /** * Obtains the name parser for parsing the names of the given naming * subcontext. ! * * @param name the name of the subcontext for that the parser must be obtained * @return the parser to parse the names of that context * @throws NamingException --- 380,397 ---- * component of the name. If the object, named by the passed name, is not a * link, returns that object itself. The intermediate links, if present, are * followed. ! * * @param name the name of the object that may be a link, leading to another * object. * @return the named object, not following the terminal link (if present). * @throws NamingException */ Object lookupLink(String name) throws NamingException; ! /** * Obtains the name parser for parsing the names of the given naming * subcontext. ! * * @param name the name of the subcontext for that the parser must be obtained * @return the parser to parse the names of that context * @throws NamingException *************** public interface Context *** 401,417 **** /** * Obtains the name parser for parsing the names of the given naming * subcontext. ! * * @param name the name of the subcontext for that the parser must be obtained * @return the parser to parse the names of that context * @throws NamingException */ NameParser getNameParser(String name) throws NamingException; ! /** * Composes the name of this context together with another name, related to * this context. ! * * @param name a name, defined in the scope of this context * @param prefix a name of this context itself, defined in the scope of some * ancestor --- 401,417 ---- /** * Obtains the name parser for parsing the names of the given naming * subcontext. ! * * @param name the name of the subcontext for that the parser must be obtained * @return the parser to parse the names of that context * @throws NamingException */ NameParser getNameParser(String name) throws NamingException; ! /** * Composes the name of this context together with another name, related to * this context. ! * * @param name a name, defined in the scope of this context * @param prefix a name of this context itself, defined in the scope of some * ancestor *************** public interface Context *** 424,430 **** /** * Composes the name of this context together with another name, related to * this context. ! * * @param name a name, defined in the scope of this context * @param prefix a name of this context itself, defined in the scope of some * ancestor --- 424,430 ---- /** * Composes the name of this context together with another name, related to * this context. ! * * @param name a name, defined in the scope of this context * @param prefix a name of this context itself, defined in the scope of some * ancestor *************** public interface Context *** 433,444 **** * @throws NamingException */ String composeName(String name, String prefix) throws NamingException; ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. ! * * @param propName the name of the new property * @param propVal the value of the new property * @return the previous value of this property or null if the property has not --- 433,444 ---- * @throws NamingException */ String composeName(String name, String prefix) throws NamingException; ! /** * Add new environment property to the environment of this context. Both name * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. ! * * @param propName the name of the new property * @param propVal the value of the new property * @return the previous value of this property or null if the property has not *************** public interface Context *** 447,479 **** */ Object addToEnvironment(String propName, Object propVal) throws NamingException; ! /** * Removes the property with the given name from the environment. Returns * without action if this property is not defined. ! * * @param propName the name of the property being removed. * @return the value of the property that has been removed or null if the * property was not defined. * @throws NamingException */ Object removeFromEnvironment(String propName) throws NamingException; ! /** * Returns the environment, associated with this naming context. The returned * table should never be modified by the caller. Use {@link #addToEnvironment} * and {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ Hashtable getEnvironment() throws NamingException; ! /** * Releases all resources, associated with this context. The close() method * can be called several times, but after it has been once invoked, it is not * allowed to call any other method of this context, ! * * @throws NamingException */ void close() throws NamingException; --- 447,479 ---- */ Object addToEnvironment(String propName, Object propVal) throws NamingException; ! /** * Removes the property with the given name from the environment. Returns * without action if this property is not defined. ! * * @param propName the name of the property being removed. * @return the value of the property that has been removed or null if the * property was not defined. * @throws NamingException */ Object removeFromEnvironment(String propName) throws NamingException; ! /** * Returns the environment, associated with this naming context. The returned * table should never be modified by the caller. Use {@link #addToEnvironment} * and {@link #removeFromEnvironment} to modify the environement, if needed. ! * * @return the table, representing the environment of this context * @throws NamingException */ Hashtable getEnvironment() throws NamingException; ! /** * Releases all resources, associated with this context. The close() method * can be called several times, but after it has been once invoked, it is not * allowed to call any other method of this context, ! * * @throws NamingException */ void close() throws NamingException; *************** public interface Context *** 482,488 **** * Returs the full name of this naming context. The returned string is not a * JNDI composite name and should not be passed directly to the methods of the * naming context. ! * * @return the full name of this naming context, in its own namespace. * @throws OperationNotSupportedException if the naming system, represented by * this context, does not support the notation of the full name. --- 482,488 ---- * Returs the full name of this naming context. The returned string is not a * JNDI composite name and should not be passed directly to the methods of the * naming context. ! * * @return the full name of this naming context, in its own namespace. * @throws OperationNotSupportedException if the naming system, represented by * this context, does not support the notation of the full name. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ContextNotEmptyException.java gcc-4.6.0/libjava/classpath/javax/naming/ContextNotEmptyException.java *** gcc-4.5.2/libjava/classpath/javax/naming/ContextNotEmptyException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/ContextNotEmptyException.java Tue Jan 11 19:46:05 2011 *************** package javax.naming; *** 41,49 **** /** * This exception is thrown in response to the attempt to destroy the non * empty context. Only empty contexts (without bindings) can be destroyed. ! * * @see Context#destroySubcontext ! */ public class ContextNotEmptyException extends NamingException { private static final long serialVersionUID = 1090963683348219877L; --- 41,49 ---- /** * This exception is thrown in response to the attempt to destroy the non * empty context. Only empty contexts (without bindings) can be destroyed. ! * * @see Context#destroySubcontext ! */ public class ContextNotEmptyException extends NamingException { private static final long serialVersionUID = 1090963683348219877L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/InitialContext.java gcc-4.6.0/libjava/classpath/javax/naming/InitialContext.java *** gcc-4.5.2/libjava/classpath/javax/naming/InitialContext.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/InitialContext.java Tue Jan 11 19:46:05 2011 *************** public class InitialContext implements C *** 63,80 **** * this field. */ protected Context defaultInitCtx; ! /** * Indicates if the initial context was obtained by calling ! * {@link NamingManager#getInitialContext}. */ protected boolean gotDefault = false; ! /** * The environment, associated with this initial context. */ protected Hashtable myProps; ! /** * The list of the properties, to that the second alternative value must * be appended after the colon to the first possible value. Used in --- 63,80 ---- * this field. */ protected Context defaultInitCtx; ! /** * Indicates if the initial context was obtained by calling ! * {@link NamingManager#getInitialContext}. */ protected boolean gotDefault = false; ! /** * The environment, associated with this initial context. */ protected Hashtable myProps; ! /** * The list of the properties, to that the second alternative value must * be appended after the colon to the first possible value. Used in *************** public class InitialContext implements C *** 87,99 **** colon_list.add(Context.OBJECT_FACTORIES); colon_list.add(Context.URL_PKG_PREFIXES); colon_list.add(Context.STATE_FACTORIES); ! } ! /** * The properties that are searched in the agreed places in the * {@link #init(Hashtable)} method. */ ! static final String[] use_properties = { Context.DNS_URL, Context.INITIAL_CONTEXT_FACTORY, --- 87,99 ---- colon_list.add(Context.OBJECT_FACTORIES); colon_list.add(Context.URL_PKG_PREFIXES); colon_list.add(Context.STATE_FACTORIES); ! } ! /** * The properties that are searched in the agreed places in the * {@link #init(Hashtable)} method. */ ! static final String[] use_properties = { Context.DNS_URL, Context.INITIAL_CONTEXT_FACTORY, *************** public class InitialContext implements C *** 102,112 **** Context.STATE_FACTORIES, Context.URL_PKG_PREFIXES, }; ! ! /** * Creates the new initial context with the given properties. ! * * @param environment the properties, used by the initial context being * created. * @throws NamingException --- 102,112 ---- Context.STATE_FACTORIES, Context.URL_PKG_PREFIXES, }; ! ! /** * Creates the new initial context with the given properties. ! * * @param environment the properties, used by the initial context being * created. * @throws NamingException *************** public class InitialContext implements C *** 115,125 **** { init(environment); } ! /** * Creates the initial context with the possibility to delay its * initialisation. ! * * @param lazy specified if the initialization should not be performed by this * constructor (true). If the valueis false, it works the same way as * the parameterless constructor. --- 115,125 ---- { init(environment); } ! /** * Creates the initial context with the possibility to delay its * initialisation. ! * * @param lazy specified if the initialization should not be performed by this * constructor (true). If the valueis false, it works the same way as * the parameterless constructor. *************** public class InitialContext implements C *** 130,147 **** if (! lazy) init(null); } ! /** * Creates teh new initial context with no properties. Same as * InitialContext(null). ! * * @throws NamingException */ public InitialContext() throws NamingException { init(null); } ! /** *

                                * Initialises the context, using the properties, specified in the passed --- 130,147 ---- if (! lazy) init(null); } ! /** * Creates teh new initial context with no properties. Same as * InitialContext(null). ! * * @throws NamingException */ public InitialContext() throws NamingException { init(null); } ! /** *

                                * Initialises the context, using the properties, specified in the passed *************** public class InitialContext implements C *** 160,166 **** * specified by the system property "gnu.classpath.home.url". * *

                                ! * * @param environment the table of the properties, may be null. The method * modifies the table and stores the reference to it. The caller must * not later reuse this structure for other purposes. --- 160,166 ---- * specified by the system property "gnu.classpath.home.url". * *

                                ! * * @param environment the table of the properties, may be null. The method * modifies the table and stores the reference to it. The caller must * not later reuse this structure for other purposes. *************** public class InitialContext implements C *** 191,202 **** if (value != null) pApplet.put(key, value); } ! value = System.getProperty(key); if (value != null) pSystem.put(key, value); } ! merge(myProps, pSystem); if (pApplet != null) merge(myProps, pApplet); --- 191,202 ---- if (value != null) pApplet.put(key, value); } ! value = System.getProperty(key); if (value != null) pSystem.put(key, value); } ! merge(myProps, pSystem); if (pApplet != null) merge(myProps, pApplet); *************** public class InitialContext implements C *** 249,255 **** merge(myProps, p); } } ! /** * Merge the content of the two tables. If the second table contains the key * that is missing in the first table, this key - value pair is copied to the --- 249,255 ---- merge(myProps, p); } } ! /** * Merge the content of the two tables. If the second table contains the key * that is missing in the first table, this key - value pair is copied to the *************** public class InitialContext implements C *** 257,272 **** * {@link #colon_list} set also contains this key, the value from the second * table is appended to the value from the first table after semicolon, and * the resulted value replaces the value in the first table. ! * * @param primary the first table to merge. The merged result is also stored * in this table. * @param additional the second table, from where additional values are taken ! */ static void merge (Hashtable primary, Hashtable additional) { Enumeration en = additional.keys(); ! while (en.hasMoreElements()) { String key2 = (String) en.nextElement(); --- 257,272 ---- * {@link #colon_list} set also contains this key, the value from the second * table is appended to the value from the first table after semicolon, and * the resulted value replaces the value in the first table. ! * * @param primary the first table to merge. The merged result is also stored * in this table. * @param additional the second table, from where additional values are taken ! */ static void merge (Hashtable primary, Hashtable additional) { Enumeration en = additional.keys(); ! while (en.hasMoreElements()) { String key2 = (String) en.nextElement(); *************** public class InitialContext implements C *** 280,292 **** } } } ! /** * Get the default initial context. If {@link #gotDefault} == false, this * method obtains the initial context from the naming manager and sets * gotDefault to true. Otherwise the cached value ({@link #defaultInitCtx} is * returned. ! * * @return the default initial context * @throws NamingException */ --- 280,292 ---- } } } ! /** * Get the default initial context. If {@link #gotDefault} == false, this * method obtains the initial context from the naming manager and sets * gotDefault to true. Otherwise the cached value ({@link #defaultInitCtx} is * returned. ! * * @return the default initial context * @throws NamingException */ *************** public class InitialContext implements C *** 305,311 **** * the name is the URL string, this method tries to find the corressponding * URL naming context. If it is not an URL string, or the URL context is not * found, the default initial context is returned. ! * * @param name the name, for that it is required to obtain the context. * @return the context for resolving the name. * @throws NamingException --- 305,311 ---- * the name is the URL string, this method tries to find the corressponding * URL naming context. If it is not an URL string, or the URL context is not * found, the default initial context is returned. ! * * @param name the name, for that it is required to obtain the context. * @return the context for resolving the name. * @throws NamingException *************** public class InitialContext implements C *** 323,329 **** * the name is the URL string, this method tries to find the corressponding * URL naming context. If it is not an URL string, or the URL context is not * found, the default initial context is returned. ! * * @param name the name, for that it is required to obtain the context. * @return the context for resolving the name. * @throws NamingException --- 323,329 ---- * the name is the URL string, this method tries to find the corressponding * URL naming context. If it is not an URL string, or the URL context is not * found, the default initial context is returned. ! * * @param name the name, for that it is required to obtain the context. * @return the context for resolving the name. * @throws NamingException *************** public class InitialContext implements C *** 348,366 **** return getDefaultInitCtx(); } ! /** @inheritDoc */ public void bind (Name name, Object obj) throws NamingException { getURLOrDefaultInitCtx (name).bind (name, obj); } ! /** @inheritDoc */ public void bind (String name, Object obj) throws NamingException { getURLOrDefaultInitCtx (name).bind (name, obj); } ! /** @inheritDoc */ public Object lookup (Name name) throws NamingException { try --- 348,366 ---- return getDefaultInitCtx(); } ! /** @inheritDoc */ public void bind (Name name, Object obj) throws NamingException { getURLOrDefaultInitCtx (name).bind (name, obj); } ! /** @inheritDoc */ public void bind (String name, Object obj) throws NamingException { getURLOrDefaultInitCtx (name).bind (name, obj); } ! /** @inheritDoc */ public Object lookup (Name name) throws NamingException { try *************** public class InitialContext implements C *** 374,380 **** } } ! /** @inheritDoc */ public Object lookup (String name) throws NamingException { try --- 374,380 ---- } } ! /** @inheritDoc */ public Object lookup (String name) throws NamingException { try *************** public class InitialContext implements C *** 388,534 **** } } ! /** @inheritDoc */ public void rebind (Name name, Object obj) throws NamingException { getURLOrDefaultInitCtx (name).rebind (name, obj); } ! /** @inheritDoc */ public void rebind (String name, Object obj) throws NamingException { getURLOrDefaultInitCtx (name).rebind (name, obj); } ! /** @inheritDoc */ public void unbind (Name name) throws NamingException { getURLOrDefaultInitCtx (name).unbind (name); } ! /** @inheritDoc */ public void unbind (String name) throws NamingException { getURLOrDefaultInitCtx (name).unbind (name); } ! /** @inheritDoc */ public void rename (Name oldName, Name newName) throws NamingException { getURLOrDefaultInitCtx (oldName).rename (oldName, newName); } ! /** @inheritDoc */ public void rename (String oldName, String newName) throws NamingException { getURLOrDefaultInitCtx (oldName).rename (oldName, newName); } ! /** @inheritDoc */ public NamingEnumeration list (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).list (name); } ! /** @inheritDoc */ public NamingEnumeration list (String name) throws NamingException { return getURLOrDefaultInitCtx (name).list (name); } ! /** @inheritDoc */ public NamingEnumeration listBindings (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).listBindings (name); } ! /** @inheritDoc */ public NamingEnumeration listBindings (String name) throws NamingException { return getURLOrDefaultInitCtx (name).listBindings (name); } ! /** @inheritDoc */ public void destroySubcontext (Name name) throws NamingException { getURLOrDefaultInitCtx (name).destroySubcontext (name); } ! /** @inheritDoc */ public void destroySubcontext (String name) throws NamingException { getURLOrDefaultInitCtx (name).destroySubcontext (name); } ! /** @inheritDoc */ public Context createSubcontext (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).createSubcontext (name); } ! /** @inheritDoc */ public Context createSubcontext (String name) throws NamingException { return getURLOrDefaultInitCtx (name).createSubcontext (name); } ! /** @inheritDoc */ public Object lookupLink (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).lookupLink (name); } ! /** @inheritDoc */ public Object lookupLink (String name) throws NamingException { return getURLOrDefaultInitCtx (name).lookupLink (name); } ! /** @inheritDoc */ public NameParser getNameParser (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).getNameParser (name); } ! /** @inheritDoc */ public NameParser getNameParser (String name) throws NamingException { return getURLOrDefaultInitCtx (name).getNameParser (name); } ! /** @inheritDoc */ public Name composeName (Name name, Name prefix) throws NamingException { return getURLOrDefaultInitCtx (name).composeName (name, prefix); } ! /** @inheritDoc */ ! public String composeName (String name, String prefix) throws NamingException { return getURLOrDefaultInitCtx (name).composeName (name, prefix); } ! /** @inheritDoc */ ! public Object addToEnvironment (String propName, Object propVal) throws NamingException { return myProps.put (propName, propVal); } ! /** @inheritDoc */ public Object removeFromEnvironment (String propName) throws NamingException { return myProps.remove (propName); } ! /** @inheritDoc */ public Hashtable getEnvironment () throws NamingException { return myProps; } ! /** @inheritDoc */ public void close () throws NamingException { myProps = null; --- 388,534 ---- } } ! /** @inheritDoc */ public void rebind (Name name, Object obj) throws NamingException { getURLOrDefaultInitCtx (name).rebind (name, obj); } ! /** @inheritDoc */ public void rebind (String name, Object obj) throws NamingException { getURLOrDefaultInitCtx (name).rebind (name, obj); } ! /** @inheritDoc */ public void unbind (Name name) throws NamingException { getURLOrDefaultInitCtx (name).unbind (name); } ! /** @inheritDoc */ public void unbind (String name) throws NamingException { getURLOrDefaultInitCtx (name).unbind (name); } ! /** @inheritDoc */ public void rename (Name oldName, Name newName) throws NamingException { getURLOrDefaultInitCtx (oldName).rename (oldName, newName); } ! /** @inheritDoc */ public void rename (String oldName, String newName) throws NamingException { getURLOrDefaultInitCtx (oldName).rename (oldName, newName); } ! /** @inheritDoc */ public NamingEnumeration list (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).list (name); } ! /** @inheritDoc */ public NamingEnumeration list (String name) throws NamingException { return getURLOrDefaultInitCtx (name).list (name); } ! /** @inheritDoc */ public NamingEnumeration listBindings (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).listBindings (name); } ! /** @inheritDoc */ public NamingEnumeration listBindings (String name) throws NamingException { return getURLOrDefaultInitCtx (name).listBindings (name); } ! /** @inheritDoc */ public void destroySubcontext (Name name) throws NamingException { getURLOrDefaultInitCtx (name).destroySubcontext (name); } ! /** @inheritDoc */ public void destroySubcontext (String name) throws NamingException { getURLOrDefaultInitCtx (name).destroySubcontext (name); } ! /** @inheritDoc */ public Context createSubcontext (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).createSubcontext (name); } ! /** @inheritDoc */ public Context createSubcontext (String name) throws NamingException { return getURLOrDefaultInitCtx (name).createSubcontext (name); } ! /** @inheritDoc */ public Object lookupLink (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).lookupLink (name); } ! /** @inheritDoc */ public Object lookupLink (String name) throws NamingException { return getURLOrDefaultInitCtx (name).lookupLink (name); } ! /** @inheritDoc */ public NameParser getNameParser (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).getNameParser (name); } ! /** @inheritDoc */ public NameParser getNameParser (String name) throws NamingException { return getURLOrDefaultInitCtx (name).getNameParser (name); } ! /** @inheritDoc */ public Name composeName (Name name, Name prefix) throws NamingException { return getURLOrDefaultInitCtx (name).composeName (name, prefix); } ! /** @inheritDoc */ ! public String composeName (String name, String prefix) throws NamingException { return getURLOrDefaultInitCtx (name).composeName (name, prefix); } ! /** @inheritDoc */ ! public Object addToEnvironment (String propName, Object propVal) throws NamingException { return myProps.put (propName, propVal); } ! /** @inheritDoc */ public Object removeFromEnvironment (String propName) throws NamingException { return myProps.remove (propName); } ! /** @inheritDoc */ public Hashtable getEnvironment () throws NamingException { return myProps; } ! /** @inheritDoc */ public void close () throws NamingException { myProps = null; *************** public class InitialContext implements C *** 537,543 **** /** * This operation is not supported for the initial naming context. ! * * @throws OperationNotSupportedException always, unless the method is * overridden in the derived class. */ --- 537,543 ---- /** * This operation is not supported for the initial naming context. ! * * @throws OperationNotSupportedException always, unless the method is * overridden in the derived class. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/InsufficientResourcesException.java gcc-4.6.0/libjava/classpath/javax/naming/InsufficientResourcesException.java *** gcc-4.5.2/libjava/classpath/javax/naming/InsufficientResourcesException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/InsufficientResourcesException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,44 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class InsufficientResourcesException extends NamingException { private static final long serialVersionUID = 6227672693037844532L; --- 35,44 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class InsufficientResourcesException extends NamingException { private static final long serialVersionUID = 6227672693037844532L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/InterruptedNamingException.java gcc-4.6.0/libjava/classpath/javax/naming/InterruptedNamingException.java *** gcc-4.5.2/libjava/classpath/javax/naming/InterruptedNamingException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/InterruptedNamingException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class InterruptedNamingException extends NamingException { private static final long serialVersionUID = 6404516648893194728L; --- 38,44 ---- package javax.naming; ! public class InterruptedNamingException extends NamingException { private static final long serialVersionUID = 6404516648893194728L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/InvalidNameException.java gcc-4.6.0/libjava/classpath/javax/naming/InvalidNameException.java *** gcc-4.5.2/libjava/classpath/javax/naming/InvalidNameException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/InvalidNameException.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/LimitExceededException.java gcc-4.6.0/libjava/classpath/javax/naming/LimitExceededException.java *** gcc-4.5.2/libjava/classpath/javax/naming/LimitExceededException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/LimitExceededException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,44 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class LimitExceededException extends NamingException { private static final long serialVersionUID = - 776898738660207856L; --- 35,44 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class LimitExceededException extends NamingException { private static final long serialVersionUID = - 776898738660207856L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/LinkException.java gcc-4.6.0/libjava/classpath/javax/naming/LinkException.java *** gcc-4.5.2/libjava/classpath/javax/naming/LinkException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/LinkException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,44 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 14, 2001 --- 35,44 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 14, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/LinkLoopException.java gcc-4.6.0/libjava/classpath/javax/naming/LinkLoopException.java *** gcc-4.5.2/libjava/classpath/javax/naming/LinkLoopException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/LinkLoopException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,44 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class LinkLoopException extends LinkException { private static final long serialVersionUID = - 3119189944325198009L; --- 35,44 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class LinkLoopException extends LinkException { private static final long serialVersionUID = - 3119189944325198009L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/MalformedLinkException.java gcc-4.6.0/libjava/classpath/javax/naming/MalformedLinkException.java *** gcc-4.5.2/libjava/classpath/javax/naming/MalformedLinkException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/MalformedLinkException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class MalformedLinkException extends LinkException { private static final long serialVersionUID = - 3066740437737830242L; --- 38,44 ---- package javax.naming; ! public class MalformedLinkException extends LinkException { private static final long serialVersionUID = - 3066740437737830242L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/Name.java gcc-4.6.0/libjava/classpath/javax/naming/Name.java *** gcc-4.5.2/libjava/classpath/javax/naming/Name.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/Name.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Enumeration; *** 63,69 **** public interface Name extends Cloneable, Serializable, Comparable { // This class is implemented as gnu.javax.naming.ictxImpl.trans.GnuName ! long serialVersionUID = -3617482732056931635L; /** --- 63,69 ---- public interface Name extends Cloneable, Serializable, Comparable { // This class is implemented as gnu.javax.naming.ictxImpl.trans.GnuName ! long serialVersionUID = -3617482732056931635L; /** *************** public interface Name extends Cloneable, *** 96,102 **** * Returns the components till the given index as a Name. * The returned Name can be modified without changing the * original. ! * * @param posn the ending position, exclusive * * @exception ArrayIndexOutOfBoundsException if the given index is smaller --- 96,102 ---- * Returns the components till the given index as a Name. * The returned Name can be modified without changing the * original. ! * * @param posn the ending position, exclusive * * @exception ArrayIndexOutOfBoundsException if the given index is smaller *************** public interface Name extends Cloneable, *** 109,115 **** * Name. * The returned Name can be modified without changing the * original. ! * * @param posn the starting position, inclusive. If it is equal to the size * of the name, the empty name is returned. * --- 109,115 ---- * Name. * The returned Name can be modified without changing the * original. ! * * @param posn the starting position, inclusive. If it is equal to the size * of the name, the empty name is returned. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NameAlreadyBoundException.java gcc-4.6.0/libjava/classpath/javax/naming/NameAlreadyBoundException.java *** gcc-4.5.2/libjava/classpath/javax/naming/NameAlreadyBoundException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/NameAlreadyBoundException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class NameAlreadyBoundException extends NamingException { private static final long serialVersionUID = - 8491441000356780586L; --- 38,44 ---- package javax.naming; ! public class NameAlreadyBoundException extends NamingException { private static final long serialVersionUID = - 8491441000356780586L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NameClassPair.java gcc-4.6.0/libjava/classpath/javax/naming/NameClassPair.java *** gcc-4.5.2/libjava/classpath/javax/naming/NameClassPair.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/NameClassPair.java Tue Jan 11 19:46:05 2011 *************** package javax.naming; *** 41,54 **** import java.io.Serializable; /** ! * NameClassPair represents the name-classname mapping pair * of a binding in a context. *

                                * Bindings are mappings of a name to an object and this class is used to * specify the mapping of the name to the class type of the bound object. * As classname the fully qualified classname is used. *

                                ! * * @author Tom Tromey (tromey@redhat.com) * @since 1.3 */ --- 41,54 ---- import java.io.Serializable; /** ! * NameClassPair represents the name-classname mapping pair * of a binding in a context. *

                                * Bindings are mappings of a name to an object and this class is used to * specify the mapping of the name to the class type of the bound object. * As classname the fully qualified classname is used. *

                                ! * * @author Tom Tromey (tromey@redhat.com) * @since 1.3 */ *************** public class NameClassPair implements Se *** 58,64 **** /** * Constructs an instance with the given name and classname. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param className the name of the class. If null the bound --- 58,64 ---- /** * Constructs an instance with the given name and classname. ! * * @param name the name of the binding relative to the target context * (may not be null) * @param className the name of the class. If null the bound *************** public class NameClassPair implements Se *** 70,78 **** } /** ! * Constructs an instance with the given name and classname and a * flag indicating if the name is relative to the target context. ! * * @param name the name of the binding (may not be null) * @param className the name of the class. If null the bound * object is also null --- 70,78 ---- } /** ! * Constructs an instance with the given name and classname and a * flag indicating if the name is relative to the target context. ! * * @param name the name of the binding (may not be null) * @param className the name of the class. If null the bound * object is also null *************** public class NameClassPair implements Se *** 87,93 **** /** * Returns the classname of the binding. ! * @return The fully qualified classname or null if the * bound object is null. */ public String getClassName () --- 87,93 ---- /** * Returns the classname of the binding. ! * @return The fully qualified classname or null if the * bound object is null. */ public String getClassName () *************** public class NameClassPair implements Se *** 106,112 **** /** * Checks whether the name is relative to the target context or not. ! * @return true if the name is relative, * false otherwise. */ public boolean isRelative () --- 106,112 ---- /** * Checks whether the name is relative to the target context or not. ! * @return true if the name is relative, * false otherwise. */ public boolean isRelative () *************** public class NameClassPair implements Se *** 140,182 **** { this.isRel = r; } ! /** ! * Sets the full name for this binding. Setting the full name by this ! * method is the only way to initialize full names of bindings if * supported by a specific naming system. ! * ! * @param fullName the full name of this binding. If not set or set to * null the getNameInNamespace() method will * throw an exception ! * * @see #getNameInNamespace() ! * * @since 1.5 */ ! public void setNameInNamespace(String fullName) { this.fullName = fullName; } ! /** * Returns the full name for this binding. The full name of a binding is ! * defined as the absolute name in its own namespace and is not valid * outside. ! * * @return The full name in the bindings namespace. ! * @throws UnsupportedOperationException if no full name is applicable in * the specific naming system. ! * * @see Context#getNameInNamespace() ! * * @since 1.5 */ public String getNameInNamespace() { if (this.fullName == null) throw new UnsupportedOperationException(); ! return this.fullName; } --- 140,182 ---- { this.isRel = r; } ! /** ! * Sets the full name for this binding. Setting the full name by this ! * method is the only way to initialize full names of bindings if * supported by a specific naming system. ! * ! * @param fullName the full name of this binding. If not set or set to * null the getNameInNamespace() method will * throw an exception ! * * @see #getNameInNamespace() ! * * @since 1.5 */ ! public void setNameInNamespace(String fullName) { this.fullName = fullName; } ! /** * Returns the full name for this binding. The full name of a binding is ! * defined as the absolute name in its own namespace and is not valid * outside. ! * * @return The full name in the bindings namespace. ! * @throws UnsupportedOperationException if no full name is applicable in * the specific naming system. ! * * @see Context#getNameInNamespace() ! * * @since 1.5 */ public String getNameInNamespace() { if (this.fullName == null) throw new UnsupportedOperationException(); ! return this.fullName; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NameNotFoundException.java gcc-4.6.0/libjava/classpath/javax/naming/NameNotFoundException.java *** gcc-4.5.2/libjava/classpath/javax/naming/NameNotFoundException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/NameNotFoundException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,44 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class NameNotFoundException extends NamingException { private static final long serialVersionUID = - 8007156725367842053L; --- 35,44 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; ! public class NameNotFoundException extends NamingException { private static final long serialVersionUID = - 8007156725367842053L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NameParser.java gcc-4.6.0/libjava/classpath/javax/naming/NameParser.java *** gcc-4.5.2/libjava/classpath/javax/naming/NameParser.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/NameParser.java Tue Jan 11 19:46:05 2011 *************** package javax.naming; *** 46,55 **** * @see Context#getNameParser(Name) */ public interface NameParser ! { /** * Parser the string name representation into the {@link Name} representation ! * * @param name the string representation of the name * @return the {@link Name} representation of the name. * @throws InvalidNameException if the name violates the syntax, expected by --- 46,55 ---- * @see Context#getNameParser(Name) */ public interface NameParser ! { /** * Parser the string name representation into the {@link Name} representation ! * * @param name the string representation of the name * @return the {@link Name} representation of the name. * @throws InvalidNameException if the name violates the syntax, expected by *************** public interface NameParser *** 58,62 **** */ Name parse (String name) throws NamingException; } - - --- 58,60 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NamingEnumeration.java gcc-4.6.0/libjava/classpath/javax/naming/NamingEnumeration.java *** gcc-4.5.2/libjava/classpath/javax/naming/NamingEnumeration.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/NamingEnumeration.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,41 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; import java.util.Enumeration; --- 35,41 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming; import java.util.Enumeration; *************** public interface NamingEnumeration ex *** 58,73 **** * Returns the next element in this enumeration. The naming - specific * exceptions are only throws after returning all still available elements of * the enumeration. ! * * @return the next element of this enumeration * @throws NamingException */ T next() throws NamingException; ! /** * Checks if there are more unvisited elements in the enumeration, throwing * exceptions if there are some unvisited, but not available elements. ! * * @return true if there are some unvisited elements, false otherwise. * @throws PartialResultException if the enumeration, returned by the * {@link Context#list(Name)} or other similar method contains only --- 58,73 ---- * Returns the next element in this enumeration. The naming - specific * exceptions are only throws after returning all still available elements of * the enumeration. ! * * @return the next element of this enumeration * @throws NamingException */ T next() throws NamingException; ! /** * Checks if there are more unvisited elements in the enumeration, throwing * exceptions if there are some unvisited, but not available elements. ! * * @return true if there are some unvisited elements, false otherwise. * @throws PartialResultException if the enumeration, returned by the * {@link Context#list(Name)} or other similar method contains only *************** public interface NamingEnumeration ex *** 77,89 **** * @throws NamingException */ boolean hasMore() throws NamingException; ! /** * Immediately frees all resources, owned by this enumeration. If invoked, it * must be the last method called for that enumeration. ! * * @throws NamingException ! */ void close() throws NamingException; } --- 77,89 ---- * @throws NamingException */ boolean hasMore() throws NamingException; ! /** * Immediately frees all resources, owned by this enumeration. If invoked, it * must be the last method called for that enumeration. ! * * @throws NamingException ! */ void close() throws NamingException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NamingException.java gcc-4.6.0/libjava/classpath/javax/naming/NamingException.java *** gcc-4.5.2/libjava/classpath/javax/naming/NamingException.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/naming/NamingException.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class NamingException extends Exc *** 199,207 **** { if (name != null) try ! { ! remainingName.addAll(name); ! } catch(InvalidNameException ine) { /* ignored */ } } --- 199,207 ---- { if (name != null) try ! { ! remainingName.addAll(name); ! } catch(InvalidNameException ine) { /* ignored */ } } *************** public class NamingException extends Exc *** 216,224 **** { if (name != null) try ! { ! remainingName.add(name); ! } catch(InvalidNameException ine) { /* ignored */ } } --- 216,224 ---- { if (name != null) try ! { ! remainingName.add(name); ! } catch(InvalidNameException ine) { /* ignored */ } } *************** public class NamingException extends Exc *** 243,266 **** Throwable cause = getRootCause(); if (cause != null) { ! sb.append(" caused by "); ! sb.append(cause); } Name remaining = getRemainingName(); if (remaining != null) { ! sb.append(" [remainingName: "); ! sb.append(remaining); } Object resolved = getResolvedObj(); if (objectInfo && resolved != null) { ! if (remainingName == null) ! sb.append(" ["); ! else ! sb.append(", "); ! sb.append("resolvedObj: "); ! sb.append(resolved); } if ((remaining != null) || (objectInfo && resolved != null)) sb.append(']'); --- 243,266 ---- Throwable cause = getRootCause(); if (cause != null) { ! sb.append(" caused by "); ! sb.append(cause); } Name remaining = getRemainingName(); if (remaining != null) { ! sb.append(" [remainingName: "); ! sb.append(remaining); } Object resolved = getResolvedObj(); if (objectInfo && resolved != null) { ! if (remainingName == null) ! sb.append(" ["); ! else ! sb.append(", "); ! sb.append("resolvedObj: "); ! sb.append(resolved); } if ((remaining != null) || (objectInfo && resolved != null)) sb.append(']'); *************** public class NamingException extends Exc *** 314,317 **** super.printStackTrace(pw); } } - --- 314,316 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NamingSecurityException.java gcc-4.6.0/libjava/classpath/javax/naming/NamingSecurityException.java *** gcc-4.5.2/libjava/classpath/javax/naming/NamingSecurityException.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/NamingSecurityException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,48 **** package javax.naming; ! public abstract class NamingSecurityException extends NamingException { private static final long serialVersionUID = 5855287647294685775L; ! public NamingSecurityException () { super (); --- 38,48 ---- package javax.naming; ! public abstract class NamingSecurityException extends NamingException { private static final long serialVersionUID = 5855287647294685775L; ! public NamingSecurityException () { super (); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NoInitialContextException.java gcc-4.6.0/libjava/classpath/javax/naming/NoInitialContextException.java *** gcc-4.5.2/libjava/classpath/javax/naming/NoInitialContextException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/NoInitialContextException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class NoInitialContextException extends NamingException { private static final long serialVersionUID = - 3413733186901258623L; --- 38,44 ---- package javax.naming; ! public class NoInitialContextException extends NamingException { private static final long serialVersionUID = - 3413733186901258623L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NoPermissionException.java gcc-4.6.0/libjava/classpath/javax/naming/NoPermissionException.java *** gcc-4.5.2/libjava/classpath/javax/naming/NoPermissionException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/NoPermissionException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class NoPermissionException extends NamingSecurityException { private static final long serialVersionUID = 8395332708699751775L; --- 38,44 ---- package javax.naming; ! public class NoPermissionException extends NamingSecurityException { private static final long serialVersionUID = 8395332708699751775L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/NotContextException.java gcc-4.6.0/libjava/classpath/javax/naming/NotContextException.java *** gcc-4.5.2/libjava/classpath/javax/naming/NotContextException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/NotContextException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class NotContextException extends NamingException { private static final long serialVersionUID = 849752551644540417L; --- 38,44 ---- package javax.naming; ! public class NotContextException extends NamingException { private static final long serialVersionUID = 849752551644540417L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/PartialResultException.java gcc-4.6.0/libjava/classpath/javax/naming/PartialResultException.java *** gcc-4.5.2/libjava/classpath/javax/naming/PartialResultException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/PartialResultException.java Tue Jan 11 19:46:05 2011 *************** package javax.naming; *** 42,48 **** * Thrown from the {@link javax.naming.NamingEnumeration}, this exception * indicates that the enumeration represents only part of the existing * elements that would be an answer to the specified request. ! */ public class PartialResultException extends NamingException { private static final long serialVersionUID = 2572144970049426786L; --- 42,48 ---- * Thrown from the {@link javax.naming.NamingEnumeration}, this exception * indicates that the enumeration represents only part of the existing * elements that would be an answer to the specified request. ! */ public class PartialResultException extends NamingException { private static final long serialVersionUID = 2572144970049426786L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/RefAddr.java gcc-4.6.0/libjava/classpath/javax/naming/RefAddr.java *** gcc-4.5.2/libjava/classpath/javax/naming/RefAddr.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/RefAddr.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public abstract class RefAddr implements *** 71,82 **** */ protected RefAddr(String addrType) { ! if (addrType == null) ! throw new NullPointerException("addrType cannot be null"); ! this.addrType = addrType; } ! /** * Returns the non-null address type given to the constructor. */ --- 71,82 ---- */ protected RefAddr(String addrType) { ! if (addrType == null) ! throw new NullPointerException("addrType cannot be null"); ! this.addrType = addrType; } ! /** * Returns the non-null address type given to the constructor. */ *************** public abstract class RefAddr implements *** 84,96 **** { return addrType; } ! /** * Returns the possibly null content of this RefAddr. * The actual value is defined by the non-abstract subclass. */ public abstract Object getContent(); ! /** * Checks if the object is a RefAddr with the same type and content. * --- 84,96 ---- { return addrType; } ! /** * Returns the possibly null content of this RefAddr. * The actual value is defined by the non-abstract subclass. */ public abstract Object getContent(); ! /** * Checks if the object is a RefAddr with the same type and content. * *************** public abstract class RefAddr implements *** 107,116 **** { Object c1 = this.getContent(); Object c2 = refAddr.getContent(); ! if (c1 == null) ! return c2 == null; ! else ! return c1.equals(c2); } } return false; --- 107,116 ---- { Object c1 = this.getContent(); Object c2 = refAddr.getContent(); ! if (c1 == null) ! return c2 == null; ! else ! return c1.equals(c2); } } return false; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/Reference.java gcc-4.6.0/libjava/classpath/javax/naming/Reference.java *** gcc-4.5.2/libjava/classpath/javax/naming/Reference.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/Reference.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 45,81 **** /** * This class represents a reference to an object that is located outside of the * naming/directory system. ! * * @see Referenceable ! * * @author Tom Tromey (tromey@redhat.com) */ public class Reference implements Cloneable, Serializable { private static final long serialVersionUID = - 1673475790065791735L; ! /** ! * The list of addresses, stored in this reference. The object may be * have by several different addresses. */ protected Vector addrs; ! /** * The name of the class factory to create an instance of the object, * referenced by this reference. */ protected String classFactory; ! /** * The location, from where the class factory should be loaded. */ protected String classFactoryLocation; ! /** * The name of the class of the object, to that this reference refers. */ protected String className; ! /** * Create a new reference that is referencting to the object of the * specified class. --- 45,81 ---- /** * This class represents a reference to an object that is located outside of the * naming/directory system. ! * * @see Referenceable ! * * @author Tom Tromey (tromey@redhat.com) */ public class Reference implements Cloneable, Serializable { private static final long serialVersionUID = - 1673475790065791735L; ! /** ! * The list of addresses, stored in this reference. The object may be * have by several different addresses. */ protected Vector addrs; ! /** * The name of the class factory to create an instance of the object, * referenced by this reference. */ protected String classFactory; ! /** * The location, from where the class factory should be loaded. */ protected String classFactoryLocation; ! /** * The name of the class of the object, to that this reference refers. */ protected String className; ! /** * Create a new reference that is referencting to the object of the * specified class. *************** public class Reference implements Clonea *** 85,91 **** this.className = className; addrs = new Vector (); } ! /** * Create a new reference that is referencing to the object of the * specified class with the given address. --- 85,91 ---- this.className = className; addrs = new Vector (); } ! /** * Create a new reference that is referencing to the object of the * specified class with the given address. *************** public class Reference implements Clonea *** 96,112 **** addrs = new Vector (); addrs.add (addr); } ! /** * Create a new reference that is referencing to the object of the * specified class, specifying the class and location of the factory that * produces these objects. ! * * @param className the object class name * @param factoryClassName the object factory class name * @param factoryLocation the object factory location */ ! public Reference (String className, String factoryClassName, String factoryLocation) { this.className = className; --- 96,112 ---- addrs = new Vector (); addrs.add (addr); } ! /** * Create a new reference that is referencing to the object of the * specified class, specifying the class and location of the factory that * produces these objects. ! * * @param className the object class name * @param factoryClassName the object factory class name * @param factoryLocation the object factory location */ ! public Reference (String className, String factoryClassName, String factoryLocation) { this.className = className; *************** public class Reference implements Clonea *** 119,132 **** * Create a new reference that is referencing to the object of the * specified class, specifying the class and location of the factory that * produces these objects and also the address of this object. ! * * @param className the object class name * @param addr the address of the object * @param factoryClassName the object factory class name * @param factoryLocation the object factory location */ public Reference (String className, RefAddr addr, ! String factoryClassName, String factoryLocation) { this.className = className; this.classFactory = factoryClassName; --- 119,132 ---- * Create a new reference that is referencing to the object of the * specified class, specifying the class and location of the factory that * produces these objects and also the address of this object. ! * * @param className the object class name * @param addr the address of the object * @param factoryClassName the object factory class name * @param factoryLocation the object factory location */ public Reference (String className, RefAddr addr, ! String factoryClassName, String factoryLocation) { this.className = className; this.classFactory = factoryClassName; *************** public class Reference implements Clonea *** 136,149 **** } /** ! * Add the new address for this object at the given position of the * address list. */ public void add (int posn, RefAddr addr) { addrs.add (posn, addr); } ! /** * Appends the new object address to the end of the address list. */ --- 136,149 ---- } /** ! * Add the new address for this object at the given position of the * address list. */ public void add (int posn, RefAddr addr) { addrs.add (posn, addr); } ! /** * Appends the new object address to the end of the address list. */ *************** public class Reference implements Clonea *** 151,157 **** { addrs.add (addr); } ! /** * Removes all defined addresses of the object. */ --- 151,157 ---- { addrs.add (addr); } ! /** * Removes all defined addresses of the object. */ *************** public class Reference implements Clonea *** 163,169 **** public Object clone () { Reference r = new Reference (className, classFactory, ! classFactoryLocation); r.addrs = (Vector) addrs.clone (); return r; } --- 163,169 ---- public Object clone () { Reference r = new Reference (className, classFactory, ! classFactoryLocation); r.addrs = (Vector) addrs.clone (); return r; } *************** public class Reference implements Clonea *** 173,179 **** { return (a == null) ? (b == null) : a.equals (b); } ! /** * Compares two addresses for equality, by value. */ --- 173,179 ---- { return (a == null) ? (b == null) : a.equals (b); } ! /** * Compares two addresses for equality, by value. */ *************** public class Reference implements Clonea *** 183,193 **** return false; Reference r = (Reference) obj; return (equals (classFactory, r.classFactory) ! && equals (classFactoryLocation, r.classFactoryLocation) ! && equals (className, r.className) ! && addrs.equals (r.addrs)); } ! /** * Get the address of this object at the given position. */ --- 183,193 ---- return false; Reference r = (Reference) obj; return (equals (classFactory, r.classFactory) ! && equals (classFactoryLocation, r.classFactoryLocation) ! && equals (className, r.className) ! && addrs.equals (r.addrs)); } ! /** * Get the address of this object at the given position. */ *************** public class Reference implements Clonea *** 195,206 **** { return addrs.get (posn); } ! /** * Get the given type of address for this object. ! * * @param addrType the needed type of address ! * * @return the address of this object, having the specified type. If there * is no address of such type, null is returned. */ --- 195,206 ---- { return addrs.get (posn); } ! /** * Get the given type of address for this object. ! * * @param addrType the needed type of address ! * * @return the address of this object, having the specified type. If there * is no address of such type, null is returned. */ *************** public class Reference implements Clonea *** 208,220 **** { for (int i = 0; i < addrs.size (); ++i) { ! RefAddr r = addrs.get (i); ! if (addrType.equals (r.getType ())) ! return r; } return null; } ! /** * Get the enumeration over all defined addresses of the object. */ --- 208,220 ---- { for (int i = 0; i < addrs.size (); ++i) { ! RefAddr r = addrs.get (i); ! if (addrType.equals (r.getType ())) ! return r; } return null; } ! /** * Get the enumeration over all defined addresses of the object. */ *************** public class Reference implements Clonea *** 222,241 **** { return addrs.elements (); } ! /** * Get the name of the class of the referenced object. ! * * @see #className */ public String getClassName () { return className; } ! /** * Get the location of the factory class of the referenced object. ! * * @see #classFactoryLocation */ public String getFactoryClassLocation () --- 222,241 ---- { return addrs.elements (); } ! /** * Get the name of the class of the referenced object. ! * * @see #className */ public String getClassName () { return className; } ! /** * Get the location of the factory class of the referenced object. ! * * @see #classFactoryLocation */ public String getFactoryClassLocation () *************** public class Reference implements Clonea *** 245,262 **** /** * Get the name of the factory class of the referenced object ! * * @see #classFactory */ public String getFactoryClassName () { return classFactory; } ! /** ! * Get the hashcode of this reference. ! * ! * @return the sum of the hash codes of the addresses. */ public int hashCode () { --- 245,262 ---- /** * Get the name of the factory class of the referenced object ! * * @see #classFactory */ public String getFactoryClassName () { return classFactory; } ! /** ! * Get the hashcode of this reference. ! * ! * @return the sum of the hash codes of the addresses. */ public int hashCode () { *************** public class Reference implements Clonea *** 267,285 **** h += addrs.get (i).hashCode (); return h; } ! /** * Remove the address at the given position. ! * * @param posn the position of the address to remove ! * * @return the removed address */ public Object remove (int posn) { return addrs.remove (posn); } ! /** * Return the number of the defined addresses. */ --- 267,285 ---- h += addrs.get (i).hashCode (); return h; } ! /** * Remove the address at the given position. ! * * @param posn the position of the address to remove ! * * @return the removed address */ public Object remove (int posn) { return addrs.remove (posn); } ! /** * Return the number of the defined addresses. */ *************** public class Reference implements Clonea *** 287,293 **** { return addrs.size (); } ! /** * Return the string representation. */ --- 287,293 ---- { return addrs.size (); } ! /** * Return the string representation. */ *************** public class Reference implements Clonea *** 296,304 **** String x = getClass ().toString () + "["; for (int i = 0; i < addrs.size (); ++i) { ! if (i > 0) ! x += ","; ! x += addrs.get (i).toString (); } return x + "]"; } --- 296,304 ---- String x = getClass ().toString () + "["; for (int i = 0; i < addrs.size (); ++i) { ! if (i > 0) ! x += ","; ! x += addrs.get (i).toString (); } return x + "]"; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/Referenceable.java gcc-4.6.0/libjava/classpath/javax/naming/Referenceable.java *** gcc-4.5.2/libjava/classpath/javax/naming/Referenceable.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/Referenceable.java Tue Jan 11 19:46:05 2011 *************** public interface Referenceable *** 46,54 **** { /** * Get the reference about this object. ! * * @return the reference about this object, cannot be null. ! * * @throws NamingException if the naming exception has been raised while * retrieving the reference. */ --- 46,54 ---- { /** * Get the reference about this object. ! * * @return the reference about this object, cannot be null. ! * * @throws NamingException if the naming exception has been raised while * retrieving the reference. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ReferralException.java gcc-4.6.0/libjava/classpath/javax/naming/ReferralException.java *** gcc-4.5.2/libjava/classpath/javax/naming/ReferralException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/ReferralException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming; import java.util.Hashtable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 14, 2001 --- 39,45 ---- package javax.naming; import java.util.Hashtable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 14, 2001 *************** import java.util.Hashtable; *** 48,54 **** public abstract class ReferralException extends NamingException { private static final long serialVersionUID = -2881363844695698876L; ! protected ReferralException () { super (); --- 48,54 ---- public abstract class ReferralException extends NamingException { private static final long serialVersionUID = -2881363844695698876L; ! protected ReferralException () { super (); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ServiceUnavailableException.java gcc-4.6.0/libjava/classpath/javax/naming/ServiceUnavailableException.java *** gcc-4.5.2/libjava/classpath/javax/naming/ServiceUnavailableException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/ServiceUnavailableException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class ServiceUnavailableException extends NamingException { private static final long serialVersionUID = - 4996964726566773444L; --- 38,44 ---- package javax.naming; ! public class ServiceUnavailableException extends NamingException { private static final long serialVersionUID = - 4996964726566773444L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/SizeLimitExceededException.java gcc-4.6.0/libjava/classpath/javax/naming/SizeLimitExceededException.java *** gcc-4.5.2/libjava/classpath/javax/naming/SizeLimitExceededException.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/SizeLimitExceededException.java Tue Jan 11 19:46:05 2011 *************** package javax.naming; *** 43,49 **** * indicates that there are more elements than the previously specified * size limit. Hence the enumeration represents only part of the existing * elements that would be an answer to the specified request. ! */ public class SizeLimitExceededException extends LimitExceededException { private static final long serialVersionUID = 7129289564879168579L; --- 43,49 ---- * indicates that there are more elements than the previously specified * size limit. Hence the enumeration represents only part of the existing * elements that would be an answer to the specified request. ! */ public class SizeLimitExceededException extends LimitExceededException { private static final long serialVersionUID = 7129289564879168579L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/StringRefAddr.java gcc-4.6.0/libjava/classpath/javax/naming/StringRefAddr.java *** gcc-4.5.2/libjava/classpath/javax/naming/StringRefAddr.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/StringRefAddr.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/TimeLimitExceededException.java gcc-4.6.0/libjava/classpath/javax/naming/TimeLimitExceededException.java *** gcc-4.5.2/libjava/classpath/javax/naming/TimeLimitExceededException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/TimeLimitExceededException.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,44 **** package javax.naming; ! public class TimeLimitExceededException extends LimitExceededException { private static final long serialVersionUID = - 3597009011385034696L; --- 38,44 ---- package javax.naming; ! public class TimeLimitExceededException extends LimitExceededException { private static final long serialVersionUID = - 3597009011385034696L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/directory/AttributeInUseException.java gcc-4.6.0/libjava/classpath/javax/naming/directory/AttributeInUseException.java *** gcc-4.5.2/libjava/classpath/javax/naming/directory/AttributeInUseException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/directory/AttributeInUseException.java Tue Jan 11 19:46:05 2011 *************** this exception to your version of the li *** 35,41 **** obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming.directory; import javax.naming.NamingException; --- 35,41 ---- obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ ! package javax.naming.directory; import javax.naming.NamingException; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/directory/Attributes.java gcc-4.6.0/libjava/classpath/javax/naming/directory/Attributes.java *** gcc-4.5.2/libjava/classpath/javax/naming/directory/Attributes.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/directory/Attributes.java Tue Jan 11 19:46:05 2011 *************** public interface Attributes extends Clon *** 59,62 **** Attribute remove(String attrID); Object clone(); } - --- 59,61 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/directory/BasicAttribute.java gcc-4.6.0/libjava/classpath/javax/naming/directory/BasicAttribute.java *** gcc-4.5.2/libjava/classpath/javax/naming/directory/BasicAttribute.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/directory/BasicAttribute.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.OperationNotSupporte *** 56,62 **** public class BasicAttribute implements Attribute { private static final long serialVersionUID = 6743528196119291326L; ! /** The ID of this attribute. */ protected String attrID; /** True if this attribute's values are ordered. */ --- 56,62 ---- public class BasicAttribute implements Attribute { private static final long serialVersionUID = 6743528196119291326L; ! /** The ID of this attribute. */ protected String attrID; /** True if this attribute's values are ordered. */ *************** public class BasicAttribute implements A *** 126,133 **** { for (int i = 0; i < values.size (); ++i) { ! if (equals (val, values.get (i))) ! return true; } return false; --- 126,133 ---- { for (int i = 0; i < values.size (); ++i) { ! if (equals (val, values.get (i))) ! return true; } return false; *************** public class BasicAttribute implements A *** 140,168 **** BasicAttribute b = (BasicAttribute) obj; if (ordered != b.ordered ! || ! attrID.equals (b.attrID) ! || values.size () != b.values.size ()) return false; for (int i = 0; i < values.size (); ++i) { ! boolean ok = false; ! if (ordered) ! ok = equals (values.get (i), b.values.get (i)); ! else ! { ! for (int j = 0; j < b.values.size (); ++j) ! { ! if (equals (values.get (i), b.values.get (j))) ! { ! ok = true; ! break; ! } ! } ! } ! if (! ok) ! return false; } return true; --- 140,168 ---- BasicAttribute b = (BasicAttribute) obj; if (ordered != b.ordered ! || ! attrID.equals (b.attrID) ! || values.size () != b.values.size ()) return false; for (int i = 0; i < values.size (); ++i) { ! boolean ok = false; ! if (ordered) ! ok = equals (values.get (i), b.values.get (i)); ! else ! { ! for (int j = 0; j < b.values.size (); ++j) ! { ! if (equals (values.get (i), b.values.get (j))) ! { ! ok = true; ! break; ! } ! } ! } ! if (! ok) ! return false; } return true; *************** public class BasicAttribute implements A *** 210,228 **** int val = attrID.hashCode (); for (int i = 0; i < values.size (); ++i) { ! Object o = values.get (i); ! if (o == null) ! { ! // Nothing. ! } ! else if (o instanceof Object[]) ! { ! Object[] a = (Object[]) o; ! for (int j = 0; j < a.length; ++j) ! val += a[j].hashCode (); ! } ! else ! val += o.hashCode (); } return val; --- 210,228 ---- int val = attrID.hashCode (); for (int i = 0; i < values.size (); ++i) { ! Object o = values.get (i); ! if (o == null) ! { ! // Nothing. ! } ! else if (o instanceof Object[]) ! { ! Object[] a = (Object[]) o; ! for (int j = 0; j < a.length; ++j) ! val += a[j].hashCode (); ! } ! else ! val += o.hashCode (); } return val; *************** public class BasicAttribute implements A *** 242,252 **** { for (int i = 0; i < values.size (); ++i) { ! if (equals (val, values.get (i))) ! { ! values.remove (i); ! return true; ! } } return false; --- 242,252 ---- { for (int i = 0; i < values.size (); ++i) { ! if (equals (val, values.get (i))) ! { ! values.remove (i); ! return true; ! } } return false; *************** public class BasicAttribute implements A *** 281,307 **** if (one instanceof Object[]) { ! if (! (two instanceof Object[])) ! return false; ! Object[] aone = (Object[]) one; ! Object[] atwo = (Object[]) two; ! if (aone.length != atwo.length) ! return false; ! for (int i = 0; i < aone.length; ++i) ! { ! if (! aone[i].equals (atwo[i])) ! return false; ! } ! return true; } return one.equals (two); } ! private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { --- 281,307 ---- if (one instanceof Object[]) { ! if (! (two instanceof Object[])) ! return false; ! Object[] aone = (Object[]) one; ! Object[] atwo = (Object[]) two; ! if (aone.length != atwo.length) ! return false; ! for (int i = 0; i < aone.length; ++i) ! { ! if (! aone[i].equals (atwo[i])) ! return false; ! } ! return true; } return one.equals (two); } ! private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { *************** public class BasicAttribute implements A *** 317,325 **** s.defaultWriteObject(); s.writeInt(values.size()); for (int i=0; i < values.size(); i++) ! s.writeObject(values.get(i)); } ! // Used when enumerating this attribute. private class BasicAttributeEnumeration implements NamingEnumeration { --- 317,325 ---- s.defaultWriteObject(); s.writeInt(values.size()); for (int i=0; i < values.size(); i++) ! s.writeObject(values.get(i)); } ! // Used when enumerating this attribute. private class BasicAttributeEnumeration implements NamingEnumeration { *************** public class BasicAttribute implements A *** 351,357 **** public Object nextElement () throws NoSuchElementException { if (where == values.size ()) ! throw new NoSuchElementException ("no more elements"); return values.get (where++); } } --- 351,357 ---- public Object nextElement () throws NoSuchElementException { if (where == values.size ()) ! throw new NoSuchElementException ("no more elements"); return values.get (where++); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/directory/BasicAttributes.java gcc-4.6.0/libjava/classpath/javax/naming/directory/BasicAttributes.java *** gcc-4.5.2/libjava/classpath/javax/naming/directory/BasicAttributes.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/directory/BasicAttributes.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.NamingException; *** 54,60 **** public class BasicAttributes implements Attributes { private static final long serialVersionUID = 4980164073184639448L; ! public BasicAttributes () { this (false); --- 54,60 ---- public class BasicAttributes implements Attributes { private static final long serialVersionUID = 4980164073184639448L; ! public BasicAttributes () { this (false); *************** public class BasicAttributes implements *** 98,113 **** Attributes bs = (Attributes) obj; if (ignoreCase != bs.isCaseIgnored() ! || attributes.size () != bs.size ()) return false; NamingEnumeration bas = bs.getAll(); while (bas.hasMoreElements()) { ! Attribute a = (Attribute) bas.nextElement(); ! Attribute b = get(a.getID ()); ! if (! a.equals(b)) ! return false; } return true; --- 98,113 ---- Attributes bs = (Attributes) obj; if (ignoreCase != bs.isCaseIgnored() ! || attributes.size () != bs.size ()) return false; NamingEnumeration bas = bs.getAll(); while (bas.hasMoreElements()) { ! Attribute a = (Attribute) bas.nextElement(); ! Attribute b = get(a.getID ()); ! if (! a.equals(b)) ! return false; } return true; *************** public class BasicAttributes implements *** 117,126 **** { for (int i = 0; i < attributes.size (); ++i) { ! Attribute at = attributes.get (i); ! if ((ignoreCase && attrID.equalsIgnoreCase (at.getID ())) ! || (! ignoreCase && attrID.equals (at.getID ()))) ! return at; } return null; --- 117,126 ---- { for (int i = 0; i < attributes.size (); ++i) { ! Attribute at = attributes.get (i); ! if ((ignoreCase && attrID.equalsIgnoreCase (at.getID ())) ! || (! ignoreCase && attrID.equals (at.getID ()))) ! return at; } return null; *************** public class BasicAttributes implements *** 139,145 **** { return attrs.hasMore(); } ! public boolean hasMoreElements() { return attrs.hasMoreElements(); --- 139,145 ---- { return attrs.hasMore(); } ! public boolean hasMoreElements() { return attrs.hasMoreElements(); *************** public class BasicAttributes implements *** 191,203 **** { for (int i = 0; i < attributes.size (); ++i) { ! Attribute at = (Attribute) attributes.get (i); ! if ((ignoreCase && attrID.equalsIgnoreCase (at.getID ())) ! || (! ignoreCase && attrID.equals (at.getID ()))) ! { ! attributes.remove (i); ! return at; ! } } return null; --- 191,203 ---- { for (int i = 0; i < attributes.size (); ++i) { ! Attribute at = (Attribute) attributes.get (i); ! if ((ignoreCase && attrID.equalsIgnoreCase (at.getID ())) ! || (! ignoreCase && attrID.equals (at.getID ()))) ! { ! attributes.remove (i); ! return at; ! } } return null; *************** public class BasicAttributes implements *** 213,221 **** String r = ""; for (int i = 0; i < attributes.size (); ++i) { ! if (i > 0) ! r += "; "; ! r += attributes.get (i).toString (); } return r; } --- 213,221 ---- String r = ""; for (int i = 0; i < attributes.size (); ++i) { ! if (i > 0) ! r += "; "; ! r += attributes.get (i).toString (); } return r; } *************** public class BasicAttributes implements *** 230,236 **** { s.defaultReadObject(); int size = s.readInt(); ! attributes = new Vector(size); for (int i = 0; i < size; i++) attributes.add((Attribute) s.readObject()); } --- 230,236 ---- { s.defaultReadObject(); int size = s.readInt(); ! attributes = new Vector(size); for (int i = 0; i < size; i++) attributes.add((Attribute) s.readObject()); } *************** public class BasicAttributes implements *** 275,281 **** public Attribute nextElement () throws NoSuchElementException { if (where >= attributes.size ()) ! throw new NoSuchElementException ("no more elements"); Attribute at = attributes.get (where); ++where; return at; --- 275,281 ---- public Attribute nextElement () throws NoSuchElementException { if (where >= attributes.size ()) ! throw new NoSuchElementException ("no more elements"); Attribute at = attributes.get (where); ++where; return at; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/directory/InitialDirContext.java gcc-4.6.0/libjava/classpath/javax/naming/directory/InitialDirContext.java *** gcc-4.5.2/libjava/classpath/javax/naming/directory/InitialDirContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/directory/InitialDirContext.java Tue Jan 11 19:46:05 2011 *************** public class InitialDirContext extends I *** 211,217 **** throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes, ! attributesToReturn); } public NamingEnumeration search(String name, --- 211,217 ---- throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes, ! attributesToReturn); } public NamingEnumeration search(String name, *************** public class InitialDirContext extends I *** 220,226 **** throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes, ! attributesToReturn); } public NamingEnumeration search(Name name, --- 220,226 ---- throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes, ! attributesToReturn); } public NamingEnumeration search(Name name, *************** public class InitialDirContext extends I *** 257,263 **** throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, filterExpr, ! filterArgs, cons); } public NamingEnumeration search(String name, --- 257,263 ---- throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, filterExpr, ! filterArgs, cons); } public NamingEnumeration search(String name, *************** public class InitialDirContext extends I *** 267,272 **** throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, filterExpr, ! filterArgs, cons); } } --- 267,272 ---- throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, filterExpr, ! filterArgs, cons); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/directory/ModificationItem.java gcc-4.6.0/libjava/classpath/javax/naming/directory/ModificationItem.java *** gcc-4.5.2/libjava/classpath/javax/naming/directory/ModificationItem.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/directory/ModificationItem.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.directory; import java.io.Serializable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 13, 2001 --- 39,45 ---- package javax.naming.directory; import java.io.Serializable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 13, 2001 *************** public class ModificationItem implements *** 57,64 **** if (attr == null) throw new IllegalArgumentException("attr is null"); if (mod_op != DirContext.ADD_ATTRIBUTE && ! mod_op != DirContext.REPLACE_ATTRIBUTE && ! mod_op != DirContext.REMOVE_ATTRIBUTE) throw new IllegalArgumentException("mod_op is invalid"); this.mod_op = mod_op; this.attr = attr; --- 57,64 ---- if (attr == null) throw new IllegalArgumentException("attr is null"); if (mod_op != DirContext.ADD_ATTRIBUTE && ! mod_op != DirContext.REPLACE_ATTRIBUTE && ! mod_op != DirContext.REMOVE_ATTRIBUTE) throw new IllegalArgumentException("mod_op is invalid"); this.mod_op = mod_op; this.attr = attr; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/directory/SearchControls.java gcc-4.6.0/libjava/classpath/javax/naming/directory/SearchControls.java *** gcc-4.5.2/libjava/classpath/javax/naming/directory/SearchControls.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/directory/SearchControls.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.directory; import java.io.Serializable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 5, 2001 --- 39,45 ---- package javax.naming.directory; import java.io.Serializable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 5, 2001 *************** public class SearchControls implements S *** 66,72 **** } public SearchControls(int scope, long countlim, int timelim, String[] attrs, ! boolean retobj, boolean deref) { searchScope = scope; timeLimit = timelim; --- 66,72 ---- } public SearchControls(int scope, long countlim, int timelim, String[] attrs, ! boolean retobj, boolean deref) { searchScope = scope; timeLimit = timelim; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/directory/SearchResult.java gcc-4.6.0/libjava/classpath/javax/naming/directory/SearchResult.java *** gcc-4.5.2/libjava/classpath/javax/naming/directory/SearchResult.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/directory/SearchResult.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.directory; import javax.naming.Binding; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 13, 2001 --- 39,45 ---- package javax.naming.directory; import javax.naming.Binding; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 13, 2001 *************** public class SearchResult extends Bindin *** 58,78 **** } public SearchResult(String name, Object obj, Attributes attrs, ! boolean isRelative) { super(name, obj, isRelative); this.attrs = attrs; } public SearchResult(String name, String className, Object obj, ! Attributes attrs) { super(name, className, obj); this.attrs = attrs; } public SearchResult(String name, String className, Object obj, ! Attributes attrs, boolean isRelative) { super(name, className, obj, isRelative); this.attrs = attrs; --- 58,78 ---- } public SearchResult(String name, Object obj, Attributes attrs, ! boolean isRelative) { super(name, obj, isRelative); this.attrs = attrs; } public SearchResult(String name, String className, Object obj, ! Attributes attrs) { super(name, className, obj); this.attrs = attrs; } public SearchResult(String name, String className, Object obj, ! Attributes attrs, boolean isRelative) { super(name, className, obj, isRelative); this.attrs = attrs; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/event/EventContext.java gcc-4.6.0/libjava/classpath/javax/naming/event/EventContext.java *** gcc-4.5.2/libjava/classpath/javax/naming/event/EventContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/event/EventContext.java Tue Jan 11 19:46:05 2011 *************** package javax.naming.event; *** 41,47 **** import javax.naming.Context; import javax.naming.Name; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 41,47 ---- import javax.naming.Context; import javax.naming.Name; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 *************** public interface EventContext extends Co *** 55,65 **** void addNamingListener (Name target, int scope, NamingListener l) throws NamingException; ! void addNamingListener (String target, int scope, NamingListener l) throws NamingException; ! void removeNamingListener (NamingListener l) throws NamingException; ! boolean targetMustExist() throws NamingException; } --- 55,65 ---- void addNamingListener (Name target, int scope, NamingListener l) throws NamingException; ! void addNamingListener (String target, int scope, NamingListener l) throws NamingException; ! void removeNamingListener (NamingListener l) throws NamingException; ! boolean targetMustExist() throws NamingException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/event/NamespaceChangeListener.java gcc-4.6.0/libjava/classpath/javax/naming/event/NamespaceChangeListener.java *** gcc-4.5.2/libjava/classpath/javax/naming/event/NamespaceChangeListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/event/NamespaceChangeListener.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 37,43 **** package javax.naming.event; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 37,43 ---- package javax.naming.event; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/event/NamingEvent.java gcc-4.6.0/libjava/classpath/javax/naming/event/NamingEvent.java *** gcc-4.5.2/libjava/classpath/javax/naming/event/NamingEvent.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/event/NamingEvent.java Tue Jan 11 19:46:05 2011 *************** package javax.naming.event; *** 41,47 **** import java.util.EventObject; import javax.naming.Binding; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 5, 2001 --- 41,47 ---- import java.util.EventObject; import javax.naming.Binding; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 5, 2001 *************** public class NamingEvent extends EventOb *** 62,68 **** protected Binding newBinding; public NamingEvent(EventContext source, int type, Binding newBd, ! Binding oldBd, Object changeInfo) { super(source); this.type = type; --- 62,68 ---- protected Binding newBinding; public NamingEvent(EventContext source, int type, Binding newBd, ! Binding oldBd, Object changeInfo) { super(source); this.type = type; *************** public class NamingEvent extends EventOb *** 106,122 **** switch (type) { case OBJECT_ADDED: ! ((NamespaceChangeListener) listener).objectAdded(this); ! break; case OBJECT_REMOVED: ! ((NamespaceChangeListener) listener).objectRemoved(this); ! break; case OBJECT_RENAMED: ! ((NamespaceChangeListener) listener).objectRenamed(this); ! break; case OBJECT_CHANGED: ! ((ObjectChangeListener) listener).objectChanged(this); ! break; } } } --- 106,122 ---- switch (type) { case OBJECT_ADDED: ! ((NamespaceChangeListener) listener).objectAdded(this); ! break; case OBJECT_REMOVED: ! ((NamespaceChangeListener) listener).objectRemoved(this); ! break; case OBJECT_RENAMED: ! ((NamespaceChangeListener) listener).objectRenamed(this); ! break; case OBJECT_CHANGED: ! ((ObjectChangeListener) listener).objectChanged(this); ! break; } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/event/NamingExceptionEvent.java gcc-4.6.0/libjava/classpath/javax/naming/event/NamingExceptionEvent.java *** gcc-4.5.2/libjava/classpath/javax/naming/event/NamingExceptionEvent.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/event/NamingExceptionEvent.java Tue Jan 11 19:46:05 2011 *************** package javax.naming.event; *** 41,47 **** import java.util.EventObject; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 5, 2001 --- 41,47 ---- import java.util.EventObject; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 5, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/event/NamingListener.java gcc-4.6.0/libjava/classpath/javax/naming/event/NamingListener.java *** gcc-4.5.2/libjava/classpath/javax/naming/event/NamingListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/event/NamingListener.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.event; import java.util.EventListener; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 39,45 ---- package javax.naming.event; import java.util.EventListener; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/event/ObjectChangeListener.java gcc-4.6.0/libjava/classpath/javax/naming/event/ObjectChangeListener.java *** gcc-4.5.2/libjava/classpath/javax/naming/event/ObjectChangeListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/event/ObjectChangeListener.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 37,43 **** package javax.naming.event; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 37,43 ---- package javax.naming.event; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/Control.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/Control.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/Control.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/Control.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.ldap; import java.io.Serializable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 39,45 ---- package javax.naming.ldap; import java.io.Serializable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/ControlFactory.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/ControlFactory.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/ControlFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/ControlFactory.java Tue Jan 11 19:46:05 2011 *************** public abstract class ControlFactory *** 58,65 **** throws NamingException; public static Control getControlInstance (Control control, ! Context ctx, ! Hashtable env) throws NamingException { String path = (String) env.get (LdapContext.CONTROL_FACTORIES); --- 58,65 ---- throws NamingException; public static Control getControlInstance (Control control, ! Context ctx, ! Hashtable env) throws NamingException { String path = (String) env.get (LdapContext.CONTROL_FACTORIES); *************** public abstract class ControlFactory *** 74,105 **** StringTokenizer tokens = new StringTokenizer (path, ":"); while (tokens.hasMoreTokens ()) { ! String name = tokens.nextToken (); ! try ! { ! Class k = Class.forName (name); ! ControlFactory cf = (ControlFactory) k.newInstance (); ! Control ctrl = cf.getControlInstance (control); ! if (ctrl != null) ! return ctrl; ! } ! catch (ClassNotFoundException _1) ! { ! // Ignore it. ! } ! catch (ClassCastException _2) ! { ! // Ignore it. ! } ! catch (InstantiationException _3) ! { ! // If we couldn't instantiate the factory we might get ! // this. ! } ! catch (IllegalAccessException _4) ! { ! // Another possibility when instantiating. ! } } return control; --- 74,105 ---- StringTokenizer tokens = new StringTokenizer (path, ":"); while (tokens.hasMoreTokens ()) { ! String name = tokens.nextToken (); ! try ! { ! Class k = Class.forName (name); ! ControlFactory cf = (ControlFactory) k.newInstance (); ! Control ctrl = cf.getControlInstance (control); ! if (ctrl != null) ! return ctrl; ! } ! catch (ClassNotFoundException _1) ! { ! // Ignore it. ! } ! catch (ClassCastException _2) ! { ! // Ignore it. ! } ! catch (InstantiationException _3) ! { ! // If we couldn't instantiate the factory we might get ! // this. ! } ! catch (IllegalAccessException _4) ! { ! // Another possibility when instantiating. ! } } return control; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/ExtendedRequest.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/ExtendedRequest.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/ExtendedRequest.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/ExtendedRequest.java Tue Jan 11 19:46:05 2011 *************** package javax.naming.ldap; *** 41,47 **** import java.io.Serializable; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 41,47 ---- import java.io.Serializable; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 *************** public interface ExtendedRequest extends *** 51,57 **** String getID(); byte[] getEncodedValue(); ExtendedResponse createExtendedResponse(String id, ! byte[] berValue, int offset, ! int length) ! throws NamingException; } --- 51,57 ---- String getID(); byte[] getEncodedValue(); ExtendedResponse createExtendedResponse(String id, ! byte[] berValue, int offset, ! int length) ! throws NamingException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/ExtendedResponse.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/ExtendedResponse.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/ExtendedResponse.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/ExtendedResponse.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.ldap; import java.io.Serializable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 39,45 ---- package javax.naming.ldap; import java.io.Serializable; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/HasControls.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/HasControls.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/HasControls.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/HasControls.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.ldap; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 39,45 ---- package javax.naming.ldap; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/InitialLdapContext.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/InitialLdapContext.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/InitialLdapContext.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/InitialLdapContext.java Tue Jan 11 19:46:05 2011 *************** public class InitialLdapContext *** 69,80 **** Hashtable myenv = null; if (connControls != null) { ! if (environment == null) ! myenv = new Hashtable (); ! else ! myenv = (Hashtable) environment.clone (); ! myenv.put ("java.naming.ldap.control.connect", ! connControls); } init (myenv); --- 69,80 ---- Hashtable myenv = null; if (connControls != null) { ! if (environment == null) ! myenv = new Hashtable (); ! else ! myenv = (Hashtable) environment.clone (); ! myenv.put ("java.naming.ldap.control.connect", ! connControls); } init (myenv); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/LdapContext.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/LdapContext.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/LdapContext.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/LdapContext.java Tue Jan 11 19:46:05 2011 *************** package javax.naming.ldap; *** 40,46 **** import javax.naming.NamingException; import javax.naming.directory.DirContext; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 40,46 ---- import javax.naming.NamingException; import javax.naming.directory.DirContext; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/LdapReferralException.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/LdapReferralException.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/LdapReferralException.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/LdapReferralException.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 43,49 **** import javax.naming.Context; import javax.naming.NamingException; import javax.naming.ReferralException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 43,49 ---- import javax.naming.Context; import javax.naming.NamingException; import javax.naming.ReferralException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/StartTlsRequest.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/StartTlsRequest.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/StartTlsRequest.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/StartTlsRequest.java Tue Jan 11 19:46:05 2011 *************** public class StartTlsRequest *** 55,61 **** /** * The assigned object identifier for this response. */ ! public static final String OID = "1.3.6.1.4.1.1466.20037"; /** * Create a new instance. --- 55,61 ---- /** * The assigned object identifier for this response. */ ! public static final String OID = "1.3.6.1.4.1.1466.20037"; /** * Create a new instance. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/UnsolicitedNotification.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/UnsolicitedNotification.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/UnsolicitedNotification.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/UnsolicitedNotification.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.ldap; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 39,45 ---- package javax.naming.ldap; import javax.naming.NamingException; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/UnsolicitedNotificationEvent.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/UnsolicitedNotificationEvent.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/UnsolicitedNotificationEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/UnsolicitedNotificationEvent.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.ldap; import java.util.EventObject; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 5, 2001 --- 39,45 ---- package javax.naming.ldap; import java.util.EventObject; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 5, 2001 *************** import java.util.EventObject; *** 47,58 **** public class UnsolicitedNotificationEvent extends EventObject { private static final long serialVersionUID = -2382603380799883705L; ! // Serialized fields. private UnsolicitedNotification notice; public UnsolicitedNotificationEvent(Object src, ! UnsolicitedNotification notice) { super(src); this.notice = notice; --- 47,58 ---- public class UnsolicitedNotificationEvent extends EventObject { private static final long serialVersionUID = -2382603380799883705L; ! // Serialized fields. private UnsolicitedNotification notice; public UnsolicitedNotificationEvent(Object src, ! UnsolicitedNotification notice) { super(src); this.notice = notice; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/ldap/UnsolicitedNotificationListener.java gcc-4.6.0/libjava/classpath/javax/naming/ldap/UnsolicitedNotificationListener.java *** gcc-4.5.2/libjava/classpath/javax/naming/ldap/UnsolicitedNotificationListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/naming/ldap/UnsolicitedNotificationListener.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,45 **** package javax.naming.ldap; import javax.naming.event.NamingListener; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 39,45 ---- package javax.naming.ldap; import javax.naming.event.NamingListener; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/DirObjectFactory.java gcc-4.6.0/libjava/classpath/javax/naming/spi/DirObjectFactory.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/DirObjectFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/DirObjectFactory.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 43,49 **** import javax.naming.Context; import javax.naming.Name; import javax.naming.directory.Attributes; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 43,49 ---- import javax.naming.Context; import javax.naming.Name; import javax.naming.directory.Attributes; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 *************** import javax.naming.directory.Attributes *** 51,56 **** public interface DirObjectFactory extends ObjectFactory { Object getObjectInstance(Object obj, Name name, Context nameCtx, ! Hashtable environment, Attributes attrs) ! throws Exception; } --- 51,56 ---- public interface DirObjectFactory extends ObjectFactory { Object getObjectInstance(Object obj, Name name, Context nameCtx, ! Hashtable environment, Attributes attrs) ! throws Exception; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/DirStateFactory.java gcc-4.6.0/libjava/classpath/javax/naming/spi/DirStateFactory.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/DirStateFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/DirStateFactory.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.Context; *** 44,50 **** import javax.naming.Name; import javax.naming.NamingException; import javax.naming.directory.Attributes; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 --- 44,50 ---- import javax.naming.Name; import javax.naming.NamingException; import javax.naming.directory.Attributes; ! /** * @author Warren Levy (warrenl@redhat.com) * @date June 1, 2001 *************** public interface DirStateFactory extends *** 76,83 **** } DirStateFactory.Result getStateToBind(Object obj, Name name, ! Context nameCtx, ! Hashtable environment, ! Attributes inAttrs) ! throws NamingException; } --- 76,83 ---- } DirStateFactory.Result getStateToBind(Object obj, Name name, ! Context nameCtx, ! Hashtable environment, ! Attributes inAttrs) ! throws NamingException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/DirectoryManager.java gcc-4.6.0/libjava/classpath/javax/naming/spi/DirectoryManager.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/DirectoryManager.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/DirectoryManager.java Tue Jan 11 19:46:05 2011 *************** public class DirectoryManager extends Na *** 73,100 **** // Try to create an object using the factory. Return null on // failure. private static Object tryCreateObject (ObjectFactory factory, ! Object refInfo, ! Name name, ! Context nameCtx, ! Hashtable environment, ! Attributes attrs) throws Exception { if (factory instanceof DirObjectFactory) { ! DirObjectFactory dof = (DirObjectFactory) factory; ! return dof.getObjectInstance (refInfo, name, nameCtx, ! environment, attrs); } else return factory.getObjectInstance (refInfo, name, nameCtx, ! environment); } public static Object getObjectInstance (Object refInfo, Name name, ! Context nameCtx, ! Hashtable environment, ! Attributes attrs) throws Exception { ObjectFactory factory = null; --- 73,100 ---- // Try to create an object using the factory. Return null on // failure. private static Object tryCreateObject (ObjectFactory factory, ! Object refInfo, ! Name name, ! Context nameCtx, ! Hashtable environment, ! Attributes attrs) throws Exception { if (factory instanceof DirObjectFactory) { ! DirObjectFactory dof = (DirObjectFactory) factory; ! return dof.getObjectInstance (refInfo, name, nameCtx, ! environment, attrs); } else return factory.getObjectInstance (refInfo, name, nameCtx, ! environment); } public static Object getObjectInstance (Object refInfo, Name name, ! Context nameCtx, ! Hashtable environment, ! Attributes attrs) throws Exception { ObjectFactory factory = null; *************** public class DirectoryManager extends Na *** 103,241 **** factory = ofb.createObjectFactory (refInfo, environment); else { ! // First see if we have a Reference or a Referenceable. If so ! // we do some special processing. ! Object ref2 = refInfo; ! if (refInfo instanceof Referenceable) ! ref2 = ((Referenceable) refInfo).getReference (); ! if (ref2 instanceof Reference) ! { ! Reference ref = (Reference) ref2; ! // If we have a factory class name then we use that. ! String fClass = ref.getFactoryClassName (); ! if (fClass != null) ! { ! // Exceptions here are passed to the caller. ! Class k = Class.forName (fClass); ! factory = (ObjectFactory) k.newInstance (); ! } ! else ! { ! // There's no factory class name. If the address is a ! // StringRefAddr with address type `URL', then we try ! // the URL's context factory. ! Enumeration e = ref.getAll (); ! while (e.hasMoreElements ()) ! { ! RefAddr ra = (RefAddr) e.nextElement (); ! if (ra instanceof StringRefAddr ! && "URL".equals (ra.getType ())) ! { ! factory ! = (ObjectFactory) getURLContext (refInfo, ! name, ! nameCtx, ! (String) ra.getContent (), ! environment); ! Object obj = tryCreateObject (factory, ! refInfo, ! name, ! nameCtx, ! environment, ! attrs); ! if (obj != null) ! return obj; ! } ! } ! // Have to try the next step. ! factory = null; ! } ! } ! // Now look at OBJECT_FACTORIES to find the factory. ! if (factory == null) ! { ! StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES, ! environment, nameCtx); ! while (tokens.hasMoreTokens ()) ! { ! String klassName = tokens.nextToken (); ! Class k = Class.forName (klassName); ! factory = (ObjectFactory) k.newInstance (); ! Object obj = tryCreateObject (factory, refInfo, name, ! nameCtx, environment, attrs); ! if (obj != null) ! return obj; ! } ! // Failure. ! return refInfo; ! } } if (factory == null) return refInfo; Object obj = tryCreateObject (factory, refInfo, name, ! nameCtx, environment, attrs); return obj == null ? refInfo : obj; } public static DirStateFactory.Result getStateToBind (Object obj, ! Name name, ! Context nameCtx, ! Hashtable environment, ! Attributes attrs) throws NamingException { StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES, ! environment, nameCtx); while (tokens.hasMoreTokens ()) { ! String klassName = tokens.nextToken (); ! try ! { ! Class k = Class.forName (klassName); ! StateFactory factory = (StateFactory) k.newInstance (); ! DirStateFactory.Result result = null; ! if (factory instanceof DirStateFactory) ! { ! DirStateFactory dsf = (DirStateFactory) factory; ! result = dsf.getStateToBind (obj, name, nameCtx, environment, ! attrs); ! } ! else ! { ! Object o = factory.getStateToBind (obj, name, nameCtx, ! environment); ! if (o != null) ! result = new DirStateFactory.Result (o, attrs); ! } ! if (result != null) ! return result; ! } ! catch (ClassNotFoundException _1) ! { ! // Ignore it. ! } ! catch (ClassCastException _2) ! { ! // This means that the class we found was not an ! // ObjectFactory or that the factory returned something ! // which was not a Context. ! } ! catch (InstantiationException _3) ! { ! // If we couldn't instantiate the factory we might get ! // this. ! } ! catch (IllegalAccessException _4) ! { ! // Another possibility when instantiating. ! } } return new DirStateFactory.Result (obj, attrs); --- 103,241 ---- factory = ofb.createObjectFactory (refInfo, environment); else { ! // First see if we have a Reference or a Referenceable. If so ! // we do some special processing. ! Object ref2 = refInfo; ! if (refInfo instanceof Referenceable) ! ref2 = ((Referenceable) refInfo).getReference (); ! if (ref2 instanceof Reference) ! { ! Reference ref = (Reference) ref2; ! // If we have a factory class name then we use that. ! String fClass = ref.getFactoryClassName (); ! if (fClass != null) ! { ! // Exceptions here are passed to the caller. ! Class k = Class.forName (fClass); ! factory = (ObjectFactory) k.newInstance (); ! } ! else ! { ! // There's no factory class name. If the address is a ! // StringRefAddr with address type `URL', then we try ! // the URL's context factory. ! Enumeration e = ref.getAll (); ! while (e.hasMoreElements ()) ! { ! RefAddr ra = (RefAddr) e.nextElement (); ! if (ra instanceof StringRefAddr ! && "URL".equals (ra.getType ())) ! { ! factory ! = (ObjectFactory) getURLContext (refInfo, ! name, ! nameCtx, ! (String) ra.getContent (), ! environment); ! Object obj = tryCreateObject (factory, ! refInfo, ! name, ! nameCtx, ! environment, ! attrs); ! if (obj != null) ! return obj; ! } ! } ! // Have to try the next step. ! factory = null; ! } ! } ! // Now look at OBJECT_FACTORIES to find the factory. ! if (factory == null) ! { ! StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES, ! environment, nameCtx); ! while (tokens.hasMoreTokens ()) ! { ! String klassName = tokens.nextToken (); ! Class k = Class.forName (klassName); ! factory = (ObjectFactory) k.newInstance (); ! Object obj = tryCreateObject (factory, refInfo, name, ! nameCtx, environment, attrs); ! if (obj != null) ! return obj; ! } ! // Failure. ! return refInfo; ! } } if (factory == null) return refInfo; Object obj = tryCreateObject (factory, refInfo, name, ! nameCtx, environment, attrs); return obj == null ? refInfo : obj; } public static DirStateFactory.Result getStateToBind (Object obj, ! Name name, ! Context nameCtx, ! Hashtable environment, ! Attributes attrs) throws NamingException { StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES, ! environment, nameCtx); while (tokens.hasMoreTokens ()) { ! String klassName = tokens.nextToken (); ! try ! { ! Class k = Class.forName (klassName); ! StateFactory factory = (StateFactory) k.newInstance (); ! DirStateFactory.Result result = null; ! if (factory instanceof DirStateFactory) ! { ! DirStateFactory dsf = (DirStateFactory) factory; ! result = dsf.getStateToBind (obj, name, nameCtx, environment, ! attrs); ! } ! else ! { ! Object o = factory.getStateToBind (obj, name, nameCtx, ! environment); ! if (o != null) ! result = new DirStateFactory.Result (o, attrs); ! } ! if (result != null) ! return result; ! } ! catch (ClassNotFoundException _1) ! { ! // Ignore it. ! } ! catch (ClassCastException _2) ! { ! // This means that the class we found was not an ! // ObjectFactory or that the factory returned something ! // which was not a Context. ! } ! catch (InstantiationException _3) ! { ! // If we couldn't instantiate the factory we might get ! // this. ! } ! catch (IllegalAccessException _4) ! { ! // Another possibility when instantiating. ! } } return new DirStateFactory.Result (obj, attrs); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/InitialContextFactory.java gcc-4.6.0/libjava/classpath/javax/naming/spi/InitialContextFactory.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/InitialContextFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/InitialContextFactory.java Tue Jan 11 19:46:05 2011 *************** public interface InitialContextFactory *** 58,64 **** { /** * Create a new initial context ! * * @param environment the properties, used when creating the context. The * implementing class will not modify the table nor keep the * reference to it. After the method returns, the caller can safely --- 58,64 ---- { /** * Create a new initial context ! * * @param environment the properties, used when creating the context. The * implementing class will not modify the table nor keep the * reference to it. After the method returns, the caller can safely diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java gcc-4.6.0/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java Tue Jan 11 19:46:05 2011 *************** import javax.naming.NamingException; *** 47,60 **** * initial naming contexts. JNDI allows to specifiy different initial contexts * at runtime. The user program can install its own initial context factory * builder. ! * * @see NamingManager#setInitialContextFactoryBuilder */ public interface InitialContextFactoryBuilder { /** * Create the new initial context factory ! * * @param environment the properties, used for creation of the initial * context factory. The parameter is owned by the caller: it is safe to reuse * the table for other purposes after the method returns. --- 47,60 ---- * initial naming contexts. JNDI allows to specifiy different initial contexts * at runtime. The user program can install its own initial context factory * builder. ! * * @see NamingManager#setInitialContextFactoryBuilder */ public interface InitialContextFactoryBuilder { /** * Create the new initial context factory ! * * @param environment the properties, used for creation of the initial * context factory. The parameter is owned by the caller: it is safe to reuse * the table for other purposes after the method returns. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/NamingManager.java gcc-4.6.0/libjava/classpath/javax/naming/spi/NamingManager.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/NamingManager.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/NamingManager.java Tue Jan 11 19:46:05 2011 *************** public class NamingManager *** 84,99 **** /** * Checks if the initial context factory builder has been set. ! * * @return true if the builder has been set ! * * @see #setInitialContextFactoryBuilder(InitialContextFactoryBuilder) */ public static boolean hasInitialContextFactoryBuilder () { return icfb != null; } ! /** * Creates the initial context. If the initial object factory builder has * been set with {@link #setObjectFactoryBuilder(ObjectFactoryBuilder)}, --- 84,99 ---- /** * Checks if the initial context factory builder has been set. ! * * @return true if the builder has been set ! * * @see #setInitialContextFactoryBuilder(InitialContextFactoryBuilder) */ public static boolean hasInitialContextFactoryBuilder () { return icfb != null; } ! /** * Creates the initial context. If the initial object factory builder has * been set with {@link #setObjectFactoryBuilder(ObjectFactoryBuilder)}, *************** public class NamingManager *** 101,154 **** * for the property Context.INITIAL_CONTEXT_FACTORY first in the passed * table and then in the system properties. The value of this property is * uses as a class name to install the context factory. The corresponding ! * class must exist, be public and have the public parameterless constructor. ! * * @param environment the properties, used to create the context. ! * * @return the created context ! * * @throws NoInitialContextException if the initial builder is not set, * the property Context.INITIAL_CONTEXT_FACTORY is missing of the ! * class, named by this property, cannot be instantiated. * @throws NamingException if throws by the context factory */ public static Context getInitialContext (Hashtable environment) throws NamingException { InitialContextFactory icf = null; ! if (icfb != null) icf = icfb.createInitialContextFactory(environment); else ! { ! String java_naming_factory_initial = null; ! if (environment != null) ! java_naming_factory_initial ! = (String) environment.get (Context.INITIAL_CONTEXT_FACTORY); ! if (java_naming_factory_initial == null) ! java_naming_factory_initial = ! System.getProperty (Context.INITIAL_CONTEXT_FACTORY); ! if (java_naming_factory_initial == null) ! throw new ! NoInitialContextException ("Can't find property: " ! + Context.INITIAL_CONTEXT_FACTORY); ! try ! { ! icf = (InitialContextFactory)Class.forName ! (java_naming_factory_initial, true, ! Thread.currentThread().getContextClassLoader()) ! .newInstance (); ! } ! catch (Exception exception) ! { ! NoInitialContextException e ! = new NoInitialContextException ! ("Can't load InitialContextFactory class: " ! + java_naming_factory_initial); ! e.setRootCause(exception); ! throw e; ! } } return icf.getInitialContext (environment); --- 101,154 ---- * for the property Context.INITIAL_CONTEXT_FACTORY first in the passed * table and then in the system properties. The value of this property is * uses as a class name to install the context factory. The corresponding ! * class must exist, be public and have the public parameterless constructor. ! * * @param environment the properties, used to create the context. ! * * @return the created context ! * * @throws NoInitialContextException if the initial builder is not set, * the property Context.INITIAL_CONTEXT_FACTORY is missing of the ! * class, named by this property, cannot be instantiated. * @throws NamingException if throws by the context factory */ public static Context getInitialContext (Hashtable environment) throws NamingException { InitialContextFactory icf = null; ! if (icfb != null) icf = icfb.createInitialContextFactory(environment); else ! { ! String java_naming_factory_initial = null; ! if (environment != null) ! java_naming_factory_initial ! = (String) environment.get (Context.INITIAL_CONTEXT_FACTORY); ! if (java_naming_factory_initial == null) ! java_naming_factory_initial = ! System.getProperty (Context.INITIAL_CONTEXT_FACTORY); ! if (java_naming_factory_initial == null) ! throw new ! NoInitialContextException ("Can't find property: " ! + Context.INITIAL_CONTEXT_FACTORY); ! try ! { ! icf = (InitialContextFactory)Class.forName ! (java_naming_factory_initial, true, ! Thread.currentThread().getContextClassLoader()) ! .newInstance (); ! } ! catch (Exception exception) ! { ! NoInitialContextException e ! = new NoInitialContextException ! ("Can't load InitialContextFactory class: " ! + java_naming_factory_initial); ! e.setRootCause(exception); ! throw e; ! } } return icf.getInitialContext (environment); *************** public class NamingManager *** 178,184 **** * After the factory is instantiated, its method * {@link ObjectFactory#getObjectInstance(Object, Name, Context, Hashtable)} * is called to create and return the object instance. ! * * @param refInfo passed to the factory * @param name passed to the factory * @param nameCtx passed to the factory --- 178,184 ---- * After the factory is instantiated, its method * {@link ObjectFactory#getObjectInstance(Object, Name, Context, Hashtable)} * is called to create and return the object instance. ! * * @param refInfo passed to the factory * @param name passed to the factory * @param nameCtx passed to the factory *************** public class NamingManager *** 198,204 **** // The final default location, as specified in the documentation. String finalPrefix = "com.sun.jndi.url"; ! CPStringBuilder allPrefixes = new CPStringBuilder(); String prefixes; --- 198,204 ---- // The final default location, as specified in the documentation. String finalPrefix = "com.sun.jndi.url"; ! CPStringBuilder allPrefixes = new CPStringBuilder(); String prefixes; *************** public class NamingManager *** 208,214 **** if (prefixes != null) allPrefixes.append(prefixes); } ! prefixes = System.getProperty(Context.URL_PKG_PREFIXES); if (prefixes != null) { --- 208,214 ---- if (prefixes != null) allPrefixes.append(prefixes); } ! prefixes = System.getProperty(Context.URL_PKG_PREFIXES); if (prefixes != null) { *************** public class NamingManager *** 224,230 **** allPrefixes.append(finalPrefix); scheme = scheme + "." + scheme + "URLContextFactory"; ! StringTokenizer tokens = new StringTokenizer(allPrefixes.toString(), ":"); while (tokens.hasMoreTokens()) { --- 224,230 ---- allPrefixes.append(finalPrefix); scheme = scheme + "." + scheme + "URLContextFactory"; ! StringTokenizer tokens = new StringTokenizer(allPrefixes.toString(), ":"); while (tokens.hasMoreTokens()) { *************** public class NamingManager *** 279,286 **** { // Anything from getObjectInstance. } ! } ! return null; } --- 279,286 ---- { // Anything from getObjectInstance. } ! } ! return null; } *************** public class NamingManager *** 322,330 **** } } return null; ! } ! ! /** *

                                * Creates the URL context for the given URL scheme id. --- 322,330 ---- } } return null; ! } ! ! /** *

                                * Creates the URL context for the given URL scheme id. *************** public class NamingManager *** 345,351 **** * After the factory is instantiated, its method * {@link ObjectFactory#getObjectInstance(Object, Name, Context, Hashtable)} * is called to create and return the object instance. ! * * @param scheme the url scheme that must be supported by the given context * @param environment the properties for creating the factory and context * (may be null) --- 345,351 ---- * After the factory is instantiated, its method * {@link ObjectFactory#getObjectInstance(Object, Name, Context, Hashtable)} * is called to create and return the object instance. ! * * @param scheme the url scheme that must be supported by the given context * @param environment the properties for creating the factory and context * (may be null) *************** public class NamingManager *** 354,360 **** * context. */ public static Context getURLContext (String scheme, ! Hashtable environment) throws NamingException { return getURLContext (null, null, null, scheme, environment); --- 354,360 ---- * context. */ public static Context getURLContext (String scheme, ! Hashtable environment) throws NamingException { return getURLContext (null, null, null, scheme, environment); *************** public class NamingManager *** 362,373 **** /** * Sets the initial object factory builder. ! * * @param builder the builder to set ! * * @throws SecurityException if the builder cannot be installed due * security restrictions. ! * @throws NamingException if the builder cannot be installed due other * reasons * @throws IllegalStateException if setting the builder repeatedly */ --- 362,373 ---- /** * Sets the initial object factory builder. ! * * @param builder the builder to set ! * * @throws SecurityException if the builder cannot be installed due * security restrictions. ! * @throws NamingException if the builder cannot be installed due other * reasons * @throws IllegalStateException if setting the builder repeatedly */ *************** public class NamingManager *** 385,391 **** } static StringTokenizer getPlusPath (String property, Hashtable env, ! Context nameCtx) throws NamingException { String path = (String) env.get (property); --- 385,391 ---- } static StringTokenizer getPlusPath (String property, Hashtable env, ! Context nameCtx) throws NamingException { String path = (String) env.get (property); *************** public class NamingManager *** 398,409 **** path += ":" + path2; return new StringTokenizer (path != null ? path : "", ":"); } ! /** *

                                Creates an object for the specified name context, environment and * referencing context object.

                                *

                                ! * If the builder factory is set by * {@link #setObjectFactoryBuilder(ObjectFactoryBuilder)}, the call is * delegated to that factory. Otherwise, the object is created using the * following rules: --- 398,409 ---- path += ":" + path2; return new StringTokenizer (path != null ? path : "", ":"); } ! /** *

                                Creates an object for the specified name context, environment and * referencing context object.

                                *

                                ! * If the builder factory is set by * {@link #setObjectFactoryBuilder(ObjectFactoryBuilder)}, the call is * delegated to that factory. Otherwise, the object is created using the * following rules: *************** public class NamingManager *** 415,434 **** * are StringRefAddrs having the address type "URL", the object is * created by the URL context factory. The used factory corresponds the * the naming schema of the each URL. If the attempt to create ! * the object this way is not successful, the subsequent rule is * tried. *

                              • If the refInfo is not an instance of Reference or Referencable * (for example, null), the object is created by the factories, ! * specified in the Context.OBJECT_FACTORIES property of the * environment and the provider resource file, associated with the * nameCtx. The value of this property is the colon separated list * of the possible factories. If none of the factories can be ! * loaded, the refInfo is returned. * *

                                *

                                The object factory must be public and have the public parameterless * constructor.

                                ! * * @param refInfo the referencing object, for which the new object must be * created (can be null). If not null, it is usually an instance of * the {@link Reference} or {@link Referenceable}. --- 415,434 ---- * are StringRefAddrs having the address type "URL", the object is * created by the URL context factory. The used factory corresponds the * the naming schema of the each URL. If the attempt to create ! * the object this way is not successful, the subsequent rule is * tried.
                              • *
                              • If the refInfo is not an instance of Reference or Referencable * (for example, null), the object is created by the factories, ! * specified in the Context.OBJECT_FACTORIES property of the * environment and the provider resource file, associated with the * nameCtx. The value of this property is the colon separated list * of the possible factories. If none of the factories can be ! * loaded, the refInfo is returned. * *

                                *

                                The object factory must be public and have the public parameterless * constructor.

                                ! * * @param refInfo the referencing object, for which the new object must be * created (can be null). If not null, it is usually an instance of * the {@link Reference} or {@link Referenceable}. *************** public class NamingManager *** 441,459 **** * @param environment contains additional information for creating the object. * This paramter can be null if there is no need to provide any * additional information. ! * * @return the created object. If the creation fails, in some cases * the parameter refInfo may be returned. ! * * @throws NamingException if the attempt to name the new object has failed * @throws Exception if the object factory throws it. The object factory * only throws an exception if it does not want other factories * to be used to create the object. */ public static Object getObjectInstance (Object refInfo, ! Name name, ! Context nameCtx, ! Hashtable environment) throws Exception { ObjectFactory factory = null; --- 441,459 ---- * @param environment contains additional information for creating the object. * This paramter can be null if there is no need to provide any * additional information. ! * * @return the created object. If the creation fails, in some cases * the parameter refInfo may be returned. ! * * @throws NamingException if the attempt to name the new object has failed * @throws Exception if the object factory throws it. The object factory * only throws an exception if it does not want other factories * to be used to create the object. */ public static Object getObjectInstance (Object refInfo, ! Name name, ! Context nameCtx, ! Hashtable environment) throws Exception { ObjectFactory factory = null; *************** public class NamingManager *** 462,563 **** factory = ofb.createObjectFactory (refInfo, environment); else { ! // First see if we have a Reference or a Referenceable. If so ! // we do some special processing. ! Object ref2 = refInfo; ! if (refInfo instanceof Referenceable) ! ref2 = ((Referenceable) refInfo).getReference (); ! if (ref2 instanceof Reference) ! { ! Reference ref = (Reference) ref2; ! // If we have a factory class name then we use that. ! String fClass = ref.getFactoryClassName (); ! if (fClass != null) ! { ! // Exceptions here are passed to the caller. ! Class k = Class.forName (fClass, ! true, ! Thread.currentThread().getContextClassLoader()); ! factory = (ObjectFactory) k.newInstance (); ! } ! else ! { ! // There's no factory class name. If the address is a ! // StringRefAddr with address type `URL', then we try ! // the URL's context factory. ! Enumeration e = ref.getAll (); ! while (e.hasMoreElements ()) ! { ! RefAddr ra = (RefAddr) e.nextElement (); ! if (ra instanceof StringRefAddr ! && "URL".equals (ra.getType ())) ! { ! factory ! = (ObjectFactory) getURLContext (refInfo, ! name, ! nameCtx, ! (String) ra.getContent (), ! environment); ! Object obj = factory.getObjectInstance (refInfo, ! name, ! nameCtx, ! environment); ! if (obj != null) ! return obj; ! } ! } ! // Have to try the next step. ! factory = null; ! } ! } ! // Now look at OBJECT_FACTORIES to find the factory. ! if (factory == null) ! { ! StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES, ! environment, nameCtx); ! while (tokens.hasMoreTokens ()) ! { ! String klassName = tokens.nextToken (); ! Class k = Class.forName (klassName, ! true, ! Thread.currentThread().getContextClassLoader()); ! factory = (ObjectFactory) k.newInstance (); ! Object obj = factory.getObjectInstance (refInfo, name, ! nameCtx, environment); ! if (obj != null) ! return obj; ! } ! // Failure. ! return refInfo; ! } } if (factory == null) return refInfo; Object obj = factory.getObjectInstance (refInfo, name, ! nameCtx, environment); return obj == null ? refInfo : obj; } /** * Sets the initial context factory builder. ! * * @param builder the builder to set ! * * @throws SecurityException if the builder cannot be installed due * security restrictions. ! * @throws NamingException if the builder cannot be installed due other * reasons * @throws IllegalStateException if setting the builder repeatedly ! * * @see #hasInitialContextFactoryBuilder() */ ! public static void setInitialContextFactoryBuilder (InitialContextFactoryBuilder builder) throws NamingException { --- 462,563 ---- factory = ofb.createObjectFactory (refInfo, environment); else { ! // First see if we have a Reference or a Referenceable. If so ! // we do some special processing. ! Object ref2 = refInfo; ! if (refInfo instanceof Referenceable) ! ref2 = ((Referenceable) refInfo).getReference (); ! if (ref2 instanceof Reference) ! { ! Reference ref = (Reference) ref2; ! // If we have a factory class name then we use that. ! String fClass = ref.getFactoryClassName (); ! if (fClass != null) ! { ! // Exceptions here are passed to the caller. ! Class k = Class.forName (fClass, ! true, ! Thread.currentThread().getContextClassLoader()); ! factory = (ObjectFactory) k.newInstance (); ! } ! else ! { ! // There's no factory class name. If the address is a ! // StringRefAddr with address type `URL', then we try ! // the URL's context factory. ! Enumeration e = ref.getAll (); ! while (e.hasMoreElements ()) ! { ! RefAddr ra = (RefAddr) e.nextElement (); ! if (ra instanceof StringRefAddr ! && "URL".equals (ra.getType ())) ! { ! factory ! = (ObjectFactory) getURLContext (refInfo, ! name, ! nameCtx, ! (String) ra.getContent (), ! environment); ! Object obj = factory.getObjectInstance (refInfo, ! name, ! nameCtx, ! environment); ! if (obj != null) ! return obj; ! } ! } ! // Have to try the next step. ! factory = null; ! } ! } ! // Now look at OBJECT_FACTORIES to find the factory. ! if (factory == null) ! { ! StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES, ! environment, nameCtx); ! while (tokens.hasMoreTokens ()) ! { ! String klassName = tokens.nextToken (); ! Class k = Class.forName (klassName, ! true, ! Thread.currentThread().getContextClassLoader()); ! factory = (ObjectFactory) k.newInstance (); ! Object obj = factory.getObjectInstance (refInfo, name, ! nameCtx, environment); ! if (obj != null) ! return obj; ! } ! // Failure. ! return refInfo; ! } } if (factory == null) return refInfo; Object obj = factory.getObjectInstance (refInfo, name, ! nameCtx, environment); return obj == null ? refInfo : obj; } /** * Sets the initial context factory builder. ! * * @param builder the builder to set ! * * @throws SecurityException if the builder cannot be installed due * security restrictions. ! * @throws NamingException if the builder cannot be installed due other * reasons * @throws IllegalStateException if setting the builder repeatedly ! * * @see #hasInitialContextFactoryBuilder() */ ! public static void setInitialContextFactoryBuilder (InitialContextFactoryBuilder builder) throws NamingException { *************** public class NamingManager *** 570,586 **** if (builder != null) icfb = builder; } ! /** * Creates a context in which the context operation must be continued. * This method is used by operations on names that span multiple namespaces. ! * * @param cpe the exception that triggered this continuation. This method * obtains the environment ({@link CannotProceedException#getEnvironment()} * and sets the environment property {@link #CPE} = cpe. ! * * @return a non null context for continuing the operation ! * * @throws NamingException if the naming problems have occured */ public static Context getContinuationContext (CannotProceedException cpe) --- 570,586 ---- if (builder != null) icfb = builder; } ! /** * Creates a context in which the context operation must be continued. * This method is used by operations on names that span multiple namespaces. ! * * @param cpe the exception that triggered this continuation. This method * obtains the environment ({@link CannotProceedException#getEnvironment()} * and sets the environment property {@link #CPE} = cpe. ! * * @return a non null context for continuing the operation ! * * @throws NamingException if the naming problems have occured */ public static Context getContinuationContext (CannotProceedException cpe) *************** public class NamingManager *** 593,604 **** // TODO: Check if this implementation matches the API specification try { ! Object obj = getObjectInstance (cpe.getResolvedObj(), ! cpe.getAltName (), ! cpe.getAltNameCtx (), ! env); ! if (obj != null) ! return (Context) obj; } catch (Exception _) { --- 593,604 ---- // TODO: Check if this implementation matches the API specification try { ! Object obj = getObjectInstance (cpe.getResolvedObj(), ! cpe.getAltName (), ! cpe.getAltNameCtx (), ! env); ! if (obj != null) ! return (Context) obj; } catch (Exception _) { *************** public class NamingManager *** 609,618 **** throw cpe; } ! /** * Get the object state for binding. ! * * @param obj the object, for that the binding state must be retrieved. Cannot * be null. * @param name the name of this object, related to the nameCtx. Can be null if --- 609,618 ---- throw cpe; } ! /** * Get the object state for binding. ! * * @param obj the object, for that the binding state must be retrieved. Cannot * be null. * @param name the name of this object, related to the nameCtx. Can be null if *************** public class NamingManager *** 624,669 **** * @return the object state for binding, may be null if no changes are * returned by the factory * @throws NamingException ! */ public static Object getStateToBind (Object obj, Name name, ! Context nameCtx, Hashtable environment) throws NamingException { StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES, ! environment, nameCtx); while (tokens.hasMoreTokens ()) { ! String klassName = tokens.nextToken (); ! try ! { ! Class k = Class.forName (klassName, ! true, ! Thread.currentThread().getContextClassLoader()); ! StateFactory factory = (StateFactory) k.newInstance (); ! Object o = factory.getStateToBind (obj, name, nameCtx, ! environment); ! if (o != null) ! return o; ! } ! catch (ClassNotFoundException _1) ! { ! // Ignore it. ! } ! catch (ClassCastException _2) ! { ! // This means that the class we found was not an ! // ObjectFactory or that the factory returned something ! // which was not a Context. ! } ! catch (InstantiationException _3) ! { ! // If we couldn't instantiate the factory we might get ! // this. ! } ! catch (IllegalAccessException _4) ! { ! // Another possibility when instantiating. ! } } return obj; --- 624,669 ---- * @return the object state for binding, may be null if no changes are * returned by the factory * @throws NamingException ! */ public static Object getStateToBind (Object obj, Name name, ! Context nameCtx, Hashtable environment) throws NamingException { StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES, ! environment, nameCtx); while (tokens.hasMoreTokens ()) { ! String klassName = tokens.nextToken (); ! try ! { ! Class k = Class.forName (klassName, ! true, ! Thread.currentThread().getContextClassLoader()); ! StateFactory factory = (StateFactory) k.newInstance (); ! Object o = factory.getStateToBind (obj, name, nameCtx, ! environment); ! if (o != null) ! return o; ! } ! catch (ClassNotFoundException _1) ! { ! // Ignore it. ! } ! catch (ClassCastException _2) ! { ! // This means that the class we found was not an ! // ObjectFactory or that the factory returned something ! // which was not a Context. ! } ! catch (InstantiationException _3) ! { ! // If we couldn't instantiate the factory we might get ! // this. ! } ! catch (IllegalAccessException _4) ! { ! // Another possibility when instantiating. ! } } return obj; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/ObjectFactory.java gcc-4.6.0/libjava/classpath/javax/naming/spi/ObjectFactory.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/ObjectFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/ObjectFactory.java Tue Jan 11 19:46:05 2011 *************** public interface ObjectFactory *** 54,60 **** /** * Creates the object, using the specified name and location information. The * call of this method must be thread safe. ! * * @param refObj may provide the reference and location information. Can be null. * @param name the name of the new object in the scope of the specified naming * context. Can be null if the name is not specified. --- 54,60 ---- /** * Creates the object, using the specified name and location information. The * call of this method must be thread safe. ! * * @param refObj may provide the reference and location information. Can be null. * @param name the name of the new object in the scope of the specified naming * context. Can be null if the name is not specified. *************** public interface ObjectFactory *** 67,74 **** * @return the newly created object or null if the object cannot be created * @throws Exception if this factory suggest not to try creating of this * object by other alternative factories ! * ! * @see NamingManager#getObjectInstance(Object, Name, Context, Hashtable) */ Object getObjectInstance (Object refObj, Name name, Context nameCtx, Hashtable environment) --- 67,74 ---- * @return the newly created object or null if the object cannot be created * @throws Exception if this factory suggest not to try creating of this * object by other alternative factories ! * ! * @see NamingManager#getObjectInstance(Object, Name, Context, Hashtable) */ Object getObjectInstance (Object refObj, Name name, Context nameCtx, Hashtable environment) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java gcc-4.6.0/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 43,61 **** import javax.naming.NamingException; import javax.naming.Reference; import javax.naming.Referenceable; ! /** * Represents the builder that creates the object factories. ! * * @see NamingManager#setObjectFactoryBuilder(ObjectFactoryBuilder) ! * * @author Warren Levy (warrenl@redhat.com) */ public interface ObjectFactoryBuilder { /** * Create a new object using the supplied environment. ! * * @param refInfo the referencing object, for which the new object must be * created (can be null). If not null, it is usually an instance of * the {@link Reference} or {@link Referenceable}. --- 43,61 ---- import javax.naming.NamingException; import javax.naming.Reference; import javax.naming.Referenceable; ! /** * Represents the builder that creates the object factories. ! * * @see NamingManager#setObjectFactoryBuilder(ObjectFactoryBuilder) ! * * @author Warren Levy (warrenl@redhat.com) */ public interface ObjectFactoryBuilder { /** * Create a new object using the supplied environment. ! * * @param refInfo the referencing object, for which the new object must be * created (can be null). If not null, it is usually an instance of * the {@link Reference} or {@link Referenceable}. *************** public interface ObjectFactoryBuilder *** 65,70 **** * @throws NamingException */ ObjectFactory createObjectFactory(Object refInfo, ! Hashtable environment) ! throws NamingException; } --- 65,70 ---- * @throws NamingException */ ObjectFactory createObjectFactory(Object refInfo, ! Hashtable environment) ! throws NamingException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/ResolveResult.java gcc-4.6.0/libjava/classpath/javax/naming/spi/ResolveResult.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/ResolveResult.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/ResolveResult.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 43,54 **** import javax.naming.CompositeName; import javax.naming.InvalidNameException; import javax.naming.Name; ! /** * Stores the partial resolution of the name. This class contains the * object to which part of the name has been resolved and the remaining, ! * unresolved part of this name. ! * * @author Warren Levy (warrenl@redhat.com) */ --- 43,54 ---- import javax.naming.CompositeName; import javax.naming.InvalidNameException; import javax.naming.Name; ! /** * Stores the partial resolution of the name. This class contains the * object to which part of the name has been resolved and the remaining, ! * unresolved part of this name. ! * * @author Warren Levy (warrenl@redhat.com) */ *************** public class ResolveResult implements Se *** 61,82 **** * The object, to that part of the name has been resolved. */ protected Object resolvedObj; ! /** * The remaining, unresolved part of the name. */ protected Name remainingName; ! /** * Create the unitialised instance with both parts being null. */ protected ResolveResult() { } ! /** * Create the initialised instance ! * * @param resolved the object, to that the name is partially resolved * @param remaining the remaining unresolved part of the name. */ --- 61,82 ---- * The object, to that part of the name has been resolved. */ protected Object resolvedObj; ! /** * The remaining, unresolved part of the name. */ protected Name remainingName; ! /** * Create the unitialised instance with both parts being null. */ protected ResolveResult() { } ! /** * Create the initialised instance ! * * @param resolved the object, to that the name is partially resolved * @param remaining the remaining unresolved part of the name. */ *************** public class ResolveResult implements Se *** 88,94 **** remainingName = new CompositeName (); try { ! remainingName.add (remaining); } catch (InvalidNameException _) { --- 88,94 ---- remainingName = new CompositeName (); try { ! remainingName.add (remaining); } catch (InvalidNameException _) { *************** public class ResolveResult implements Se *** 97,103 **** /** * Create the initialised instance ! * * @param resolved the object, to that the name is partially resolved * @param remaining the remaining unresolved part of the name. */ --- 97,103 ---- /** * Create the initialised instance ! * * @param resolved the object, to that the name is partially resolved * @param remaining the remaining unresolved part of the name. */ *************** public class ResolveResult implements Se *** 109,115 **** /** * Get the remaining unresolved part of the name ! * * @return the remaining unresolved part of the name. */ public Name getRemainingName() --- 109,115 ---- /** * Get the remaining unresolved part of the name ! * * @return the remaining unresolved part of the name. */ public Name getRemainingName() *************** public class ResolveResult implements Se *** 119,135 **** /** * Get the object to that the name was partially resolved ! * * @return the object, to that the name is partially resolved */ public Object getResolvedObj() { return resolvedObj; } ! /** * Set the remaining unresolved name. ! * * @param name the name being set. The passed parameter is cloned, so the * caller can reuse or modify it after the method returns. */ --- 119,135 ---- /** * Get the object to that the name was partially resolved ! * * @return the object, to that the name is partially resolved */ public Object getResolvedObj() { return resolvedObj; } ! /** * Set the remaining unresolved name. ! * * @param name the name being set. The passed parameter is cloned, so the * caller can reuse or modify it after the method returns. */ *************** public class ResolveResult implements Se *** 137,153 **** { remainingName = (Name) name.clone(); } ! /** * Append the name to the end of the resolved name. ! * * @param name the name to append */ public void appendRemainingName(Name name) { try { ! remainingName.addAll(name); } catch (InvalidNameException _) { --- 137,153 ---- { remainingName = (Name) name.clone(); } ! /** * Append the name to the end of the resolved name. ! * * @param name the name to append */ public void appendRemainingName(Name name) { try { ! remainingName.addAll(name); } catch (InvalidNameException _) { *************** public class ResolveResult implements Se *** 156,169 **** /** * Append the name to the end of the resolved name. ! * * @param name the name to append */ public void appendRemainingComponent(String name) { try { ! remainingName.add(name); } catch (InvalidNameException _) { --- 156,169 ---- /** * Append the name to the end of the resolved name. ! * * @param name the name to append */ public void appendRemainingComponent(String name) { try { ! remainingName.add(name); } catch (InvalidNameException _) { *************** public class ResolveResult implements Se *** 172,178 **** /** * Set the object to that the part of the name has been resolved. ! * * @param obj the object, to that the name has been partially resolved. */ public void setResolvedObj(Object obj) --- 172,178 ---- /** * Set the object to that the part of the name has been resolved. ! * * @param obj the object, to that the name has been partially resolved. */ public void setResolvedObj(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/Resolver.java gcc-4.6.0/libjava/classpath/javax/naming/spi/Resolver.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/Resolver.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/Resolver.java Tue Jan 11 19:46:05 2011 *************** package javax.naming.spi; *** 41,59 **** import javax.naming.Context; import javax.naming.Name; import javax.naming.NamingException; ! /** *

                                Represents the object, capable for the at least partial name resolution. * The object is not necessay capable for the complete name resolution and * need not implement the {@link Context}.

                                *

                                * Both passed parameters and returned results are owned by the caller.

                                ! * * @author Warren Levy (warrenl@redhat.com) */ public interface Resolver { ! ResolveResult resolveToClass(Name name, Class contextType) throws NamingException; ResolveResult resolveToClass(String name, --- 41,59 ---- import javax.naming.Context; import javax.naming.Name; import javax.naming.NamingException; ! /** *

                                Represents the object, capable for the at least partial name resolution. * The object is not necessay capable for the complete name resolution and * need not implement the {@link Context}.

                                *

                                * Both passed parameters and returned results are owned by the caller.

                                ! * * @author Warren Levy (warrenl@redhat.com) */ public interface Resolver { ! ResolveResult resolveToClass(Name name, Class contextType) throws NamingException; ResolveResult resolveToClass(String name, diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/naming/spi/StateFactory.java gcc-4.6.0/libjava/classpath/javax/naming/spi/StateFactory.java *** gcc-4.5.2/libjava/classpath/javax/naming/spi/StateFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/naming/spi/StateFactory.java Tue Jan 11 19:46:05 2011 *************** import java.util.Hashtable; *** 43,55 **** import javax.naming.Context; import javax.naming.Name; import javax.naming.NamingException; ! /** * Represents a factory, producing the object states for binding. The operation, * performed by this factory, is the reverse operation with related to the * operation, performed by the {@link ObjectFactory}. Classes, implementing * this interface, must be public and have public parameterless constructor. ! * * @see DirStateFactory * @see ObjectFactory * @author Warren Levy (warrenl@redhat.com) --- 43,55 ---- import javax.naming.Context; import javax.naming.Name; import javax.naming.NamingException; ! /** * Represents a factory, producing the object states for binding. The operation, * performed by this factory, is the reverse operation with related to the * operation, performed by the {@link ObjectFactory}. Classes, implementing * this interface, must be public and have public parameterless constructor. ! * * @see DirStateFactory * @see ObjectFactory * @author Warren Levy (warrenl@redhat.com) *************** public interface StateFactory *** 58,64 **** { /** * Get the object state for binding. ! * * @param obj the object, for that the binding state must be retrieved. Cannot * be null. * @param name the name of this object, related to the nameCtx. Can be null if --- 58,64 ---- { /** * Get the object state for binding. ! * * @param obj the object, for that the binding state must be retrieved. Cannot * be null. * @param name the name of this object, related to the nameCtx. Can be null if *************** public interface StateFactory *** 70,79 **** * @return the object state for binding, may be null if no changes are * returned by the factory * @throws NamingException ! * * @see NamingManager#getStateToBind * @see DirectoryManager#getStateToBind */ Object getStateToBind(Object obj, Name name, Context nameCtx, ! Hashtable environment) throws NamingException; } --- 70,79 ---- * @return the object state for binding, may be null if no changes are * returned by the factory * @throws NamingException ! * * @see NamingManager#getStateToBind * @see DirectoryManager#getStateToBind */ Object getStateToBind(Object obj, Name name, Context nameCtx, ! Hashtable environment) throws NamingException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/CertPathTrustManagerParameters.java gcc-4.6.0/libjava/classpath/javax/net/ssl/CertPathTrustManagerParameters.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/CertPathTrustManagerParameters.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/CertPathTrustManagerParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* CertPathTrustManagerParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* CertPathTrustManagerParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/KeyManagerFactory.java gcc-4.6.0/libjava/classpath/javax/net/ssl/KeyManagerFactory.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/KeyManagerFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/KeyManagerFactory.java Tue Jan 11 19:46:05 2011 *************** public class KeyManagerFactory *** 134,140 **** /** * Create an instance of the named key manager factory, from the first * provider that implements it. ! * * @param algorithm The type of key manager factory to get. * @return An appropriate implementation of that algoritm. * @throws NoSuchAlgorithmException If no provider implements the requested --- 134,140 ---- /** * Create an instance of the named key manager factory, from the first * provider that implements it. ! * * @param algorithm The type of key manager factory to get. * @return An appropriate implementation of that algoritm. * @throws NoSuchAlgorithmException If no provider implements the requested *************** public class KeyManagerFactory *** 164,170 **** /** * Create an instance of the named key manager factory, from the named * provider. ! * * @param algorithm The type of key manager factory to get. * @param provider The name of the provider to get the implementation from. * @return An appropriate implementation of that algorithm. --- 164,170 ---- /** * Create an instance of the named key manager factory, from the named * provider. ! * * @param algorithm The type of key manager factory to get. * @param provider The name of the provider to get the implementation from. * @return An appropriate implementation of that algorithm. *************** public class KeyManagerFactory *** 190,196 **** /** * Create an instance of the named key manager factory, from the given * provider. ! * * @param algorithm The type of key manager factory to get. * @param provider The provider to get the implementation from. * @return An appropriate implementation of that algorithm. --- 190,196 ---- /** * Create an instance of the named key manager factory, from the given * provider. ! * * @param algorithm The type of key manager factory to get. * @param provider The provider to get the implementation from. * @return An appropriate implementation of that algorithm. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/KeyStoreBuilderParameters.java gcc-4.6.0/libjava/classpath/javax/net/ssl/KeyStoreBuilderParameters.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/KeyStoreBuilderParameters.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/KeyStoreBuilderParameters.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* KeyStoreBuilderParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* KeyStoreBuilderParameters.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/SSLContext.java gcc-4.6.0/libjava/classpath/javax/net/ssl/SSLContext.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/SSLContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/SSLContext.java Tue Jan 11 19:46:05 2011 *************** public class SSLContext *** 94,100 **** /** * Get an instance of a context for the specified protocol from the first * provider that implements it. ! * * @param protocol The name of the protocol to get a context for. * @return The new context. * @throws NoSuchAlgorithmException If no provider implements the given --- 94,100 ---- /** * Get an instance of a context for the specified protocol from the first * provider that implements it. ! * * @param protocol The name of the protocol to get a context for. * @return The new context. * @throws NoSuchAlgorithmException If no provider implements the given *************** public class SSLContext *** 124,130 **** /** * Get an instance of a context for the specified protocol from the named * provider. ! * * @param protocol The name of the protocol to get a context for. * @param provider The name of the provider to get the implementation from. * @return The new context. --- 124,130 ---- /** * Get an instance of a context for the specified protocol from the named * provider. ! * * @param protocol The name of the protocol to get a context for. * @param provider The name of the provider to get the implementation from. * @return The new context. *************** public class SSLContext *** 149,155 **** /** * Get an instance of a context for the specified protocol from the specified * provider. ! * * @param protocol The name of the protocol to get a context for. * @param provider The name of the provider to get the implementation from. * @return The new context. --- 149,155 ---- /** * Get an instance of a context for the specified protocol from the specified * provider. ! * * @param protocol The name of the protocol to get a context for. * @param provider The name of the provider to get the implementation from. * @return The new context. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/SSLEngine.java gcc-4.6.0/libjava/classpath/javax/net/ssl/SSLEngine.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/SSLEngine.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/SSLEngine.java Tue Jan 11 19:46:05 2011 *************** public abstract class SSLEngine *** 73,79 **** this.peerPort = peerPort; } ! /** * Begin, or restart, the SSL handshake. --- 73,79 ---- this.peerPort = peerPort; } ! /** * Begin, or restart, the SSL handshake. *************** public abstract class SSLEngine *** 359,366 **** * negative, or if 'length+offset' is greater than 'sinks.length'. */ public abstract SSLEngineResult unwrap (ByteBuffer source, ! ByteBuffer[] sinks, int offset, ! int length) throws javax.net.ssl.SSLException; /** --- 359,366 ---- * negative, or if 'length+offset' is greater than 'sinks.length'. */ public abstract SSLEngineResult unwrap (ByteBuffer source, ! ByteBuffer[] sinks, int offset, ! int length) throws javax.net.ssl.SSLException; /** *************** public abstract class SSLEngine *** 436,442 **** * negative, or if 'length+offset' is greater than 'sources.length'. */ public abstract SSLEngineResult wrap (ByteBuffer[] sources, int offset, ! int length, ByteBuffer sink) throws SSLException; } --- 436,442 ---- * negative, or if 'length+offset' is greater than 'sources.length'. */ public abstract SSLEngineResult wrap (ByteBuffer[] sources, int offset, ! int length, ByteBuffer sink) throws SSLException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/SSLEngineResult.java gcc-4.6.0/libjava/classpath/javax/net/ssl/SSLEngineResult.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/SSLEngineResult.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/SSLEngineResult.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SSLEngineResult.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SSLEngineResult.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SSLEngineResult *** 64,70 **** * null, or if either integer is negative. */ public SSLEngineResult (Status status, HandshakeStatus handshakeStatus, ! int bytesConsumed, int bytesProduced) { if (status == null) throw new IllegalArgumentException ("'status' may not be null"); --- 64,70 ---- * null, or if either integer is negative. */ public SSLEngineResult (Status status, HandshakeStatus handshakeStatus, ! int bytesConsumed, int bytesProduced) { if (status == null) throw new IllegalArgumentException ("'status' may not be null"); *************** public class SSLEngineResult *** 80,86 **** this.bytesProduced = bytesProduced; } ! /** * An enumeration of possible general states. --- 80,86 ---- this.bytesProduced = bytesProduced; } ! /** * An enumeration of possible general states. *************** public class SSLEngineResult *** 143,149 **** NEED_UNWRAP } ! /** * Returns the number of bytes consumed by the previous operation. --- 143,149 ---- NEED_UNWRAP } ! /** * Returns the number of bytes consumed by the previous operation. *************** public class SSLEngineResult *** 188,194 **** public String toString () { return (super.toString () + " [ status: " + status + "; handshakeStatus: " ! + handshakeStatus + "; bytesConsumed: " + bytesConsumed ! + "; bytesProduced: " + bytesProduced + " ]"); } } --- 188,194 ---- public String toString () { return (super.toString () + " [ status: " + status + "; handshakeStatus: " ! + handshakeStatus + "; bytesConsumed: " + bytesConsumed ! + "; bytesProduced: " + bytesProduced + " ]"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/SSLException.java gcc-4.6.0/libjava/classpath/javax/net/ssl/SSLException.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/SSLException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/SSLException.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 45,51 **** * exception is thrown instead of this exception. * * @author Casey Marshall (rsdio@metastatic.org) ! * * @since 1.4 */ public class SSLException extends IOException --- 45,51 ---- * exception is thrown instead of this exception. * * @author Casey Marshall (rsdio@metastatic.org) ! * * @since 1.4 */ public class SSLException extends IOException *************** public class SSLException extends IOExce *** 64,70 **** { super(message); } ! /** * Create a new instance with a descriptive error message and * a cause. --- 64,70 ---- { super(message); } ! /** * Create a new instance with a descriptive error message and * a cause. *************** public class SSLException extends IOExce *** 77,83 **** super(message); initCause(cause); } ! /** * Create a new instance with a cause. * @param cause the cause --- 77,83 ---- super(message); initCause(cause); } ! /** * Create a new instance with a cause. * @param cause the cause diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/TrustManagerFactory.java gcc-4.6.0/libjava/classpath/javax/net/ssl/TrustManagerFactory.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/TrustManagerFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/TrustManagerFactory.java Tue Jan 11 19:46:05 2011 *************** public class TrustManagerFactory *** 96,102 **** /** * Returns an instance of a trust manager factory for the given algorithm from * the first provider that implements it. ! * * @param algorithm The name of the algorithm to get. * @return The instance of the trust manager factory. * @throws NoSuchAlgorithmException If no provider implements the given --- 96,102 ---- /** * Returns an instance of a trust manager factory for the given algorithm from * the first provider that implements it. ! * * @param algorithm The name of the algorithm to get. * @return The instance of the trust manager factory. * @throws NoSuchAlgorithmException If no provider implements the given *************** public class TrustManagerFactory *** 126,132 **** /** * Returns an instance of a trust manager factory for the given algorithm from * the named provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The name of the provider to get the instance from. * @return The instance of the trust manager factory. --- 126,132 ---- /** * Returns an instance of a trust manager factory for the given algorithm from * the named provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The name of the provider to get the instance from. * @return The instance of the trust manager factory. *************** public class TrustManagerFactory *** 152,158 **** /** * Returns an instance of a trust manager factory for the given algorithm from * the specified provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The provider to get the instance from. * @return The instance of the trust manager factory. --- 152,158 ---- /** * Returns an instance of a trust manager factory for the given algorithm from * the specified provider. ! * * @param algorithm The name of the algorithm to get. * @param provider The provider to get the instance from. * @return The instance of the trust manager factory. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/net/ssl/X509ExtendedKeyManager.java gcc-4.6.0/libjava/classpath/javax/net/ssl/X509ExtendedKeyManager.java *** gcc-4.5.2/libjava/classpath/javax/net/ssl/X509ExtendedKeyManager.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/net/ssl/X509ExtendedKeyManager.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* X509ExtendedKeyManager.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. --- 1,4 ---- ! /* X509ExtendedKeyManager.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/AttributeException.java gcc-4.6.0/libjava/classpath/javax/print/AttributeException.java *** gcc-4.5.2/libjava/classpath/javax/print/AttributeException.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/AttributeException.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.Attribute; *** 46,74 **** * provide further information of printing errors if unsupported * attribute classes or values of attributes are involved. *

                                ! * There exists no PrintException class implementing this ! * interface. Providing these extensions in PrintException ! * subclasses is left to the concrete print service implementation. ! *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface AttributeException { /** * Returns the unsupported printing attribute classes for a print service ! * that does not support the attribute category at all. The returned * class instances are sublcasses of the base interface {@link Attribute}. ! * * @return The unsupported attribute classes, or null if there * are no such attribute classes. */ Class[] getUnsupportedAttributes(); ! /** * Returns the unsupported attribute values of printing attributes a specific * print service does support but not the particular provided value. ! * * @return The unsupported attribute values, or null if there * are no such attributes values. */ --- 46,74 ---- * provide further information of printing errors if unsupported * attribute classes or values of attributes are involved. *

                                ! * There exists no PrintException class implementing this ! * interface. Providing these extensions in PrintException ! * subclasses is left to the concrete print service implementation. ! *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface AttributeException { /** * Returns the unsupported printing attribute classes for a print service ! * that does not support the attribute category at all. The returned * class instances are sublcasses of the base interface {@link Attribute}. ! * * @return The unsupported attribute classes, or null if there * are no such attribute classes. */ Class[] getUnsupportedAttributes(); ! /** * Returns the unsupported attribute values of printing attributes a specific * print service does support but not the particular provided value. ! * * @return The unsupported attribute values, or null if there * are no such attributes values. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/CancelablePrintJob.java gcc-4.6.0/libjava/classpath/javax/print/CancelablePrintJob.java *** gcc-4.5.2/libjava/classpath/javax/print/CancelablePrintJob.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/CancelablePrintJob.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,56 **** package javax.print; /** ! * CancelablePrintJob represents a print job which can be * canceled. *

                                ! * It is implemented by DocPrintJobs which support to cancel ! * a print job during processing. Clients need to explicitly test if a given ! * DocPrintJob object from a print service implementes this * interface and therefore supports cancelling. *

                                * Implementor of java print services should implement this interface if * cancelling is supported by the underlying print system. If implemented the ! * corresponding print job event ! * {@link javax.print.event.PrintJobEvent#JOB_CANCELED} should be delivered to * registered clients. Implementations have to be thread-safe. *

                                * --- 39,56 ---- package javax.print; /** ! * CancelablePrintJob represents a print job which can be * canceled. *

                                ! * It is implemented by DocPrintJobs which support to cancel ! * a print job during processing. Clients need to explicitly test if a given ! * DocPrintJob object from a print service implementes this * interface and therefore supports cancelling. *

                                * Implementor of java print services should implement this interface if * cancelling is supported by the underlying print system. If implemented the ! * corresponding print job event ! * {@link javax.print.event.PrintJobEvent#JOB_CANCELED} should be delivered to * registered clients. Implementations have to be thread-safe. *

                                * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/Doc.java gcc-4.6.0/libjava/classpath/javax/print/Doc.java *** gcc-4.5.2/libjava/classpath/javax/print/Doc.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/Doc.java Tue Jan 11 19:46:05 2011 *************** import java.io.Reader; *** 45,73 **** import javax.print.attribute.DocAttributeSet; /** ! * Doc specifies the interface for print services how to obtain ! * the print data and document specific attributes for printing. *

                                ! * The print data is always passed to a {@link javax.print.DocPrintJob} object * as a Doc object which allows the print services to: *

                                  *
                                • Determine the actual document format of the supplied print data. This * is supplied as a {@link javax.print.DocFlavor} object with the MIME type * and the representation class of the print data.
                                • *
                                • Obtain the print data either in its representation class or depending ! * on the document format through convenience methods as a * {@link java.io.Reader} or an {@link java.io.InputStream}.
                                • *
                                • Obtain the document's attribute set specifying the attributes which * apply to this document instance.
                                • ! *
                                *

                                ! * Every method of a Doc implementation has to return always the ! * same object on every method call. Therefore if the print job consumes the ! * print data via a stream or a reader object it can read only once the ! * supplied print data. Implementations of this interface have to be thread ! * safe. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface Doc --- 45,73 ---- import javax.print.attribute.DocAttributeSet; /** ! * Doc specifies the interface for print services how to obtain ! * the print data and document specific attributes for printing. *

                                ! * The print data is always passed to a {@link javax.print.DocPrintJob} object * as a Doc object which allows the print services to: *

                                  *
                                • Determine the actual document format of the supplied print data. This * is supplied as a {@link javax.print.DocFlavor} object with the MIME type * and the representation class of the print data.
                                • *
                                • Obtain the print data either in its representation class or depending ! * on the document format through convenience methods as a * {@link java.io.Reader} or an {@link java.io.InputStream}.
                                • *
                                • Obtain the document's attribute set specifying the attributes which * apply to this document instance.
                                • ! *
                                *

                                ! * Every method of a Doc implementation has to return always the ! * same object on every method call. Therefore if the print job consumes the ! * print data via a stream or a reader object it can read only once the ! * supplied print data. Implementations of this interface have to be thread ! * safe. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface Doc *************** public interface Doc *** 75,94 **** /** * Returns the unmodifiable view of the attributes of this doc object. *

                                ! * The attributes of this doc's attributes set overrides attributes of ! * the same category in the print job's attribute set. If an attribute * is not available in this doc's attributes set or null * is returned the attributes of the same category of the print job are ! * used. *

                                ! * * @return The unmodifiable attributes set, or null. */ DocAttributeSet getAttributes(); /** * Returns the flavor of this doc objects print data. ! * * @return The document flavor. */ DocFlavor getDocFlavor(); --- 75,94 ---- /** * Returns the unmodifiable view of the attributes of this doc object. *

                                ! * The attributes of this doc's attributes set overrides attributes of ! * the same category in the print job's attribute set. If an attribute * is not available in this doc's attributes set or null * is returned the attributes of the same category of the print job are ! * used. *

                                ! * * @return The unmodifiable attributes set, or null. */ DocAttributeSet getAttributes(); /** * Returns the flavor of this doc objects print data. ! * * @return The document flavor. */ DocFlavor getDocFlavor(); *************** public interface Doc *** 100,106 **** * document flavor ({@link DocFlavor#getRepresentationClassName()}) * and can be cast to this representation class. *

                                ! * * @return The print data in the representation class. * @throws IOException if representation class is a stream and I/O * exception occures. --- 100,106 ---- * document flavor ({@link DocFlavor#getRepresentationClassName()}) * and can be cast to this representation class. *

                                ! * * @return The print data in the representation class. * @throws IOException if representation class is a stream and I/O * exception occures. *************** public interface Doc *** 118,127 **** *
                              • java.io.Reader
                              • * * otherwise this method returns null. ! *

                                ! * * @return The Reader object, or null. ! * * @throws IOException if an error occurs. */ Reader getReaderForText() throws IOException; --- 118,127 ---- *
                              • java.io.Reader
                              • * * otherwise this method returns null. ! *

                                ! * * @return The Reader object, or null. ! * * @throws IOException if an error occurs. */ Reader getReaderForText() throws IOException; *************** public interface Doc *** 136,146 **** *
                              • java.io.InputStream
                              • * * otherwise this method returns null. ! *

                                ! * * @return The InputStream object, or null. ! * * @throws IOException if an error occurs. */ InputStream getStreamForBytes() throws IOException; ! } \ No newline at end of file --- 136,146 ---- *
                              • java.io.InputStream
                              • * * otherwise this method returns null. ! *

                                ! * * @return The InputStream object, or null. ! * * @throws IOException if an error occurs. */ InputStream getStreamForBytes() throws IOException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/DocFlavor.java gcc-4.6.0/libjava/classpath/javax/print/DocFlavor.java *** gcc-4.5.2/libjava/classpath/javax/print/DocFlavor.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/DocFlavor.java Tue Jan 11 19:46:05 2011 *************** import java.util.Map; *** 49,119 **** import java.util.TreeMap; /** ! * DocFlavor provides a description of the format in which the * print data will be supplied in a print job to the print service. *

                                * A doc flavor consists of two parts: *

                                  *
                                • ! * The MIME type (Multipurpose Internet Mail Extensions types as described * in RFC 2045/2046) specifying the media format of the print data. *
                                • ! * The representation class name which is the fully qualified name of the ! * class providing the print data to the print job. For example if the print ! * data is supplied as a byte array the representation class name will be * "[B" or for an input stream "java.io.InputStream". *
                                • *
                                ! * The DocFlavor class is therefore used in several places in the ! * Java Print Service API. A print service provides its supported document * flavors as an array of DocFlavor objects and a print job gets the flavor of * its data to print from the Doc object provided as a DocFlavor * instance. *

                                *

                                ! * It has to be differentiated between client formatted and service ! * formatted print data. Client formatted print data is already provided ! * formatted by the client e.g. in an image format or as postscript. For ! * service formatted print data, the Java Print Service instance produces ! * the formatted print data. Here the doc flavor's representation class name ! * does specify an interface instead of the actual print data source. The * print service will call the methods of the given implementation of this * interface with a special Graphics object capable of producing formatted * print data from the graphics routines inside the interface methods. *

                                *

                                *

                                Client formatted print data document flavors

                                ! * The print service uses the representation class of the doc flavor to know ! * how to retrieve the print data. If the representation class is a ! * URL it will open the URL to read the print data from it. If it is ! * a byte[] it will directly use the array and send it to the ! * printer. There are predefined doc flavor as inner class for the most common * representation class types: *
                                  ! *
                                • Character arrays (char[]): The characters of the array * represent the print data.
                                • ! *
                                • Character streams (java.io.Reader): The whole characters * read from the stream represent the print data.
                                • ! *
                                • String (java.lang.String): The characters of the String * represent the print data.
                                • ! *
                                • Byte arrays (byte[]): The bytes of the array represent the * print data. Encoding if text content is given in the mime type.
                                • ! *
                                • Byte streams (java.io.InputStream): The whole bytes read ! * from the stream represent the print data. If text content the encoding is * specified in the mime type.
                                • ! *
                                • Uniform Resource Locator (java.net.URL): The bytes read ! * from the stream through opening of the URL represent the print data. * If text content the encoding is specified in the mime type.
                                • *
                                *

                                *

                                *

                                Service formatted print data document flavors

                                * The print service uses the provided object implementing the interface ! * specified by the representation class to produce the formatted print data. ! * The mime type of service formatted data is always ! * "application/x-java-jvm-local-objectref" to signal the local * reference to the print data object implementing the interface. Predefined ! * doc flavor classes exist as an inner class for the three available interface * to produce print data: *
                                  *
                                • Pageable object (java.awt.print.Pageable): A pageable object --- 49,119 ---- import java.util.TreeMap; /** ! * DocFlavor provides a description of the format in which the * print data will be supplied in a print job to the print service. *

                                  * A doc flavor consists of two parts: *

                                    *
                                  • ! * The MIME type (Multipurpose Internet Mail Extensions types as described * in RFC 2045/2046) specifying the media format of the print data. *
                                  • ! * The representation class name which is the fully qualified name of the ! * class providing the print data to the print job. For example if the print ! * data is supplied as a byte array the representation class name will be * "[B" or for an input stream "java.io.InputStream". *
                                  • *
                                  ! * The DocFlavor class is therefore used in several places in the ! * Java Print Service API. A print service provides its supported document * flavors as an array of DocFlavor objects and a print job gets the flavor of * its data to print from the Doc object provided as a DocFlavor * instance. *

                                  *

                                  ! * It has to be differentiated between client formatted and service ! * formatted print data. Client formatted print data is already provided ! * formatted by the client e.g. in an image format or as postscript. For ! * service formatted print data, the Java Print Service instance produces ! * the formatted print data. Here the doc flavor's representation class name ! * does specify an interface instead of the actual print data source. The * print service will call the methods of the given implementation of this * interface with a special Graphics object capable of producing formatted * print data from the graphics routines inside the interface methods. *

                                  *

                                  *

                                  Client formatted print data document flavors

                                  ! * The print service uses the representation class of the doc flavor to know ! * how to retrieve the print data. If the representation class is a ! * URL it will open the URL to read the print data from it. If it is ! * a byte[] it will directly use the array and send it to the ! * printer. There are predefined doc flavor as inner class for the most common * representation class types: *
                                    ! *
                                  • Character arrays (char[]): The characters of the array * represent the print data.
                                  • ! *
                                  • Character streams (java.io.Reader): The whole characters * read from the stream represent the print data.
                                  • ! *
                                  • String (java.lang.String): The characters of the String * represent the print data.
                                  • ! *
                                  • Byte arrays (byte[]): The bytes of the array represent the * print data. Encoding if text content is given in the mime type.
                                  • ! *
                                  • Byte streams (java.io.InputStream): The whole bytes read ! * from the stream represent the print data. If text content the encoding is * specified in the mime type.
                                  • ! *
                                  • Uniform Resource Locator (java.net.URL): The bytes read ! * from the stream through opening of the URL represent the print data. * If text content the encoding is specified in the mime type.
                                  • *
                                  *

                                  *

                                  *

                                  Service formatted print data document flavors

                                  * The print service uses the provided object implementing the interface ! * specified by the representation class to produce the formatted print data. ! * The mime type of service formatted data is always ! * "application/x-java-jvm-local-objectref" to signal the local * reference to the print data object implementing the interface. Predefined ! * doc flavor classes exist as an inner class for the three available interface * to produce print data: *
                                    *
                                  • Pageable object (java.awt.print.Pageable): A pageable object *************** import java.util.TreeMap; *** 122,134 **** *
                                  • Printable object (java.awt.print.Printable): A printable object * is supplied to the print service. The print service will call the methods of * the interface with a Grahics object to produce the formatted print data.
                                  • ! *
                                  • Renderable Image object * (java.awt.image.renderable.RenderableImage): A renderable image * object is supplied to the print service. The print service calls methods of * this interface to obtain the image to be printed.
                                  • *
                                  *

                                  ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 122,134 ---- *
                                • Printable object (java.awt.print.Printable): A printable object * is supplied to the print service. The print service will call the methods of * the interface with a Grahics object to produce the formatted print data.
                                • ! *
                                • Renderable Image object * (java.awt.image.renderable.RenderableImage): A renderable image * object is supplied to the print service. The print service calls methods of * this interface to obtain the image to be printed.
                                • *
                                *

                                ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class DocFlavor implements Clonea *** 137,145 **** /** * Predefined static DocFlavor objects for document * types which use a byte array for the print data representation. ! *

                                All the defined doc flavors have a print data representation * classname of "[B" (byte array).

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class BYTE_ARRAY --- 137,145 ---- /** * Predefined static DocFlavor objects for document * types which use a byte array for the print data representation. ! *

                                All the defined doc flavors have a print data representation * classname of "[B" (byte array).

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class BYTE_ARRAY *************** public class DocFlavor implements Clonea *** 206,212 **** /** * Byte array doc flavor with a MIME Type of "text/plain; charset=us-ascii". */ ! public static final BYTE_ARRAY TEXT_PLAIN_US_ASCII = new BYTE_ARRAY("text/plain; charset=us-ascii"); /** * Byte array doc flavor with a MIME Type of "text/plain; charset=utf-16". */ --- 206,212 ---- /** * Byte array doc flavor with a MIME Type of "text/plain; charset=us-ascii". */ ! public static final BYTE_ARRAY TEXT_PLAIN_US_ASCII = new BYTE_ARRAY("text/plain; charset=us-ascii"); /** * Byte array doc flavor with a MIME Type of "text/plain; charset=utf-16". */ *************** public class DocFlavor implements Clonea *** 223,235 **** * Byte array doc flavor with a MIME Type of "text/plain; charset=utf-8". */ public static final BYTE_ARRAY TEXT_PLAIN_UTF_8 = new BYTE_ARRAY("text/plain; charset=utf-8"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "[B". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ --- 223,235 ---- * Byte array doc flavor with a MIME Type of "text/plain; charset=utf-8". */ public static final BYTE_ARRAY TEXT_PLAIN_UTF_8 = new BYTE_ARRAY("text/plain; charset=utf-8"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "[B". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ *************** public class DocFlavor implements Clonea *** 238,257 **** super(mimeType, "[B"); } } ! /** * Predefined static DocFlavor objects for document * types which use a char array for the print data representation. ! *

                                All the defined doc flavors have a print data representation * classname of "[C" (char array).

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class CHAR_ARRAY extends DocFlavor { private static final long serialVersionUID = -8720590903724405128L; ! /** * Char array doc flavor with a MIME Type of "text/html; charset=utf-16". */ --- 238,257 ---- super(mimeType, "[B"); } } ! /** * Predefined static DocFlavor objects for document * types which use a char array for the print data representation. ! *

                                All the defined doc flavors have a print data representation * classname of "[C" (char array).

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class CHAR_ARRAY extends DocFlavor { private static final long serialVersionUID = -8720590903724405128L; ! /** * Char array doc flavor with a MIME Type of "text/html; charset=utf-16". */ *************** public class DocFlavor implements Clonea *** 262,272 **** public static final DocFlavor.CHAR_ARRAY TEXT_PLAIN = new CHAR_ARRAY("text/plain; charset=utf-16"); /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "[C". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ --- 262,272 ---- public static final DocFlavor.CHAR_ARRAY TEXT_PLAIN = new CHAR_ARRAY("text/plain; charset=utf-16"); /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "[C". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ *************** public class DocFlavor implements Clonea *** 275,287 **** super(mimeType, "[C"); } } ! /** * Predefined static DocFlavor objects for document * types which use an InputStream to retrieve the print data. ! *

                                All the defined doc flavors have a print data representation * classname of "java.io.InputStream".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class INPUT_STREAM --- 275,287 ---- super(mimeType, "[C"); } } ! /** * Predefined static DocFlavor objects for document * types which use an InputStream to retrieve the print data. ! *

                                All the defined doc flavors have a print data representation * classname of "java.io.InputStream".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class INPUT_STREAM *************** public class DocFlavor implements Clonea *** 365,377 **** * InputStream doc flavor with a MIME Type of "text/plain; charset=utf-8". */ public static final INPUT_STREAM TEXT_PLAIN_UTF_8 = new INPUT_STREAM("text/plain; charset=utf-8"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "java.io.InputStream". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ --- 365,377 ---- * InputStream doc flavor with a MIME Type of "text/plain; charset=utf-8". */ public static final INPUT_STREAM TEXT_PLAIN_UTF_8 = new INPUT_STREAM("text/plain; charset=utf-8"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "java.io.InputStream". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ *************** public class DocFlavor implements Clonea *** 380,392 **** super(mimeType, "java.io.InputStream"); } } ! /** * Predefined static DocFlavor objects for document * types which use an Reader to retrieve the print data. ! *

                                All the defined doc flavors have a print data representation * classname of "java.io.Reader".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class READER --- 380,392 ---- super(mimeType, "java.io.InputStream"); } } ! /** * Predefined static DocFlavor objects for document * types which use an Reader to retrieve the print data. ! *

                                All the defined doc flavors have a print data representation * classname of "java.io.Reader".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class READER *************** public class DocFlavor implements Clonea *** 402,414 **** * Reader doc flavor with a MIME Type of "text/plain; charset=utf-16". */ public static final DocFlavor.READER TEXT_PLAIN = new READER("text/plain; charset=utf-16"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "java.io.Reader". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ --- 402,414 ---- * Reader doc flavor with a MIME Type of "text/plain; charset=utf-16". */ public static final DocFlavor.READER TEXT_PLAIN = new READER("text/plain; charset=utf-16"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "java.io.Reader". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ *************** public class DocFlavor implements Clonea *** 417,429 **** super(mimeType, "java.io.Reader"); } } ! /** * Predefined static DocFlavor objects for document * types which use service formatted print data. ! *

                                All the defined doc flavors have a MIME type of * "application/x-java-jvm-local-objectref".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class SERVICE_FORMATTED --- 417,429 ---- super(mimeType, "java.io.Reader"); } } ! /** * Predefined static DocFlavor objects for document * types which use service formatted print data. ! *

                                All the defined doc flavors have a MIME type of * "application/x-java-jvm-local-objectref".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class SERVICE_FORMATTED *************** public class DocFlavor implements Clonea *** 432,459 **** private static final long serialVersionUID = 6181337766266637256L; /** ! * Service formatted doc flavor with a representation class of * "java.awt.print.Pageable". */ public static final DocFlavor.SERVICE_FORMATTED PAGEABLE = new SERVICE_FORMATTED("java.awt.print.Pageable"); /** ! * Service formatted doc flavor with a representation class of * "java.awt.print.Printable". */ public static final DocFlavor.SERVICE_FORMATTED PRINTABLE = new SERVICE_FORMATTED("java.awt.print.Printable"); /** ! * Service formatted doc flavor with a representation class of * "java.awt.image.renderable.RenderableImage". */ public static final DocFlavor.SERVICE_FORMATTED RENDERABLE_IMAGE = new SERVICE_FORMATTED("java.awt.image.renderable.RenderableImage"); ! /** ! * Constructor for doc flavor objects with a MIME type of * "application/x-java-jvm-local-objectref" and the given * print data representation classname. ! * * @param className the representation classname ! * * @throws NullPointerException if className is null. */ public SERVICE_FORMATTED(String className) --- 432,459 ---- private static final long serialVersionUID = 6181337766266637256L; /** ! * Service formatted doc flavor with a representation class of * "java.awt.print.Pageable". */ public static final DocFlavor.SERVICE_FORMATTED PAGEABLE = new SERVICE_FORMATTED("java.awt.print.Pageable"); /** ! * Service formatted doc flavor with a representation class of * "java.awt.print.Printable". */ public static final DocFlavor.SERVICE_FORMATTED PRINTABLE = new SERVICE_FORMATTED("java.awt.print.Printable"); /** ! * Service formatted doc flavor with a representation class of * "java.awt.image.renderable.RenderableImage". */ public static final DocFlavor.SERVICE_FORMATTED RENDERABLE_IMAGE = new SERVICE_FORMATTED("java.awt.image.renderable.RenderableImage"); ! /** ! * Constructor for doc flavor objects with a MIME type of * "application/x-java-jvm-local-objectref" and the given * print data representation classname. ! * * @param className the representation classname ! * * @throws NullPointerException if className is null. */ public SERVICE_FORMATTED(String className) *************** public class DocFlavor implements Clonea *** 461,473 **** super("application/x-java-jvm-local-objectref", className); } } ! /** * Predefined static DocFlavor objects for document * types which use a String for the print data representation. ! *

                                All the defined doc flavors have a print data representation * classname of "java.lang.String".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class STRING --- 461,473 ---- super("application/x-java-jvm-local-objectref", className); } } ! /** * Predefined static DocFlavor objects for document * types which use a String for the print data representation. ! *

                                All the defined doc flavors have a print data representation * classname of "java.lang.String".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class STRING *************** public class DocFlavor implements Clonea *** 483,495 **** * String doc flavor with a MIME Type of "text/plain; charset=utf-16". */ public static final DocFlavor.STRING TEXT_PLAIN = new STRING("text/plain; charset=utf-16"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "java.lang.String". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ --- 483,495 ---- * String doc flavor with a MIME Type of "text/plain; charset=utf-16". */ public static final DocFlavor.STRING TEXT_PLAIN = new STRING("text/plain; charset=utf-16"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "java.lang.String". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ *************** public class DocFlavor implements Clonea *** 498,510 **** super(mimeType, "java.lang.String"); } } ! /** * Predefined static DocFlavor objects for document * types which have an URL where to retrieve the print data. ! *

                                All the defined doc flavors have a print data representation * classname of "java.net.URL".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class URL --- 498,510 ---- super(mimeType, "java.lang.String"); } } ! /** * Predefined static DocFlavor objects for document * types which have an URL where to retrieve the print data. ! *

                                All the defined doc flavors have a print data representation * classname of "java.net.URL".

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public static class URL *************** public class DocFlavor implements Clonea *** 588,600 **** * URL doc flavor with a MIME Type of "text/plain; charset=utf-8". */ public static final DocFlavor.URL TEXT_PLAIN_UTF_8 = new URL("text/plain; charset=utf-8"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "java.net.URL". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ --- 588,600 ---- * URL doc flavor with a MIME Type of "text/plain; charset=utf-8". */ public static final DocFlavor.URL TEXT_PLAIN_UTF_8 = new URL("text/plain; charset=utf-8"); ! /** ! * Constructor for doc flavor objects with the given MIME type * and a print data representation class name of "java.net.URL". ! * * @param mimeType the mime type string ! * * @throws NullPointerException if mimeType is null. * @throws IllegalArgumentException if mimeType has the wrong syntax. */ *************** public class DocFlavor implements Clonea *** 603,614 **** super(mimeType, "java.net.URL"); } } ! private static final long serialVersionUID = -4512080796965449721L; ! /** * The string representing the host encoding. This is the encoding ! * used in the predefined HOST doc flavors * (e.g. {@link BYTE_ARRAY#TEXT_HTML_HOST}). */ public static final String hostEncoding = Charset.defaultCharset().name(); --- 603,614 ---- super(mimeType, "java.net.URL"); } } ! private static final long serialVersionUID = -4512080796965449721L; ! /** * The string representing the host encoding. This is the encoding ! * used in the predefined HOST doc flavors * (e.g. {@link BYTE_ARRAY#TEXT_HTML_HOST}). */ public static final String hostEncoding = Charset.defaultCharset().name(); *************** public class DocFlavor implements Clonea *** 616,632 **** private transient String mediaSubtype; private transient String mediaType; private transient TreeMap params; ! // name as defined in Serialized Form JDK 1.4 private String myClassName; ! /** ! * Constructs a DocFlavor object with the given MIME type and * representation class name. ! * * @param mimeType the MIME type string. * @param className the fully-qualified name of the representation class. ! * * @throws NullPointerException if mimeType or className are null. * @throws IllegalArgumentException if given mimeType has syntax errors. */ --- 616,632 ---- private transient String mediaSubtype; private transient String mediaType; private transient TreeMap params; ! // name as defined in Serialized Form JDK 1.4 private String myClassName; ! /** ! * Constructs a DocFlavor object with the given MIME type and * representation class name. ! * * @param mimeType the MIME type string. * @param className the fully-qualified name of the representation class. ! * * @throws NullPointerException if mimeType or className are null. * @throws IllegalArgumentException if given mimeType has syntax errors. */ *************** public class DocFlavor implements Clonea *** 637,651 **** params = new TreeMap(); parseMimeType(mimeType); ! myClassName = className; } ! /** * Parses the given string as MIME type. * The mediatype, mediasubtype and all parameter/value * combinations are extracted, comments are dropped. ! * * @param mimeType the string to parse * @throws IllegalArgumentException if not conformant. */ --- 637,651 ---- params = new TreeMap(); parseMimeType(mimeType); ! myClassName = className; } ! /** * Parses the given string as MIME type. * The mediatype, mediasubtype and all parameter/value * combinations are extracted, comments are dropped. ! * * @param mimeType the string to parse * @throws IllegalArgumentException if not conformant. */ *************** public class DocFlavor implements Clonea *** 656,666 **** int PARAM_NAME = 3; int PARAM_VALUE = 4; int COMMENT_START = 5; ! int state = 0; int lastState = 0; // keeps track of state before comment int tok; ! try { String paramName = null; --- 656,666 ---- int PARAM_NAME = 3; int PARAM_VALUE = 4; int COMMENT_START = 5; ! int state = 0; int lastState = 0; // keeps track of state before comment int tok; ! try { String paramName = null; *************** public class DocFlavor implements Clonea *** 778,784 **** throw new InternalError("IOException during parsing String " + mimeType); } } ! /** * Checks if this doc flavor object is equal to the given object. *

                                --- 778,784 ---- throw new InternalError("IOException during parsing String " + mimeType); } } ! /** * Checks if this doc flavor object is equal to the given object. *

                                *************** public class DocFlavor implements Clonea *** 787,793 **** * types has to be equal in their media type, media subtype, their * paramter/value combinations and the representation classname. *

                                ! * * @param obj the object to test. * @return true if equal, false otherwise. */ --- 787,793 ---- * types has to be equal in their media type, media subtype, their * paramter/value combinations and the representation classname. *

                                ! * * @param obj the object to test. * @return true if equal, false otherwise. */ *************** public class DocFlavor implements Clonea *** 799,812 **** DocFlavor tmp = (DocFlavor) obj; return (getMimeType().equals(tmp.getMimeType()) ! && getRepresentationClassName().equals(tmp.getRepresentationClassName())); } /** * Returns the media subtype of this flavor object. * A mimetype of "text/html; charset=us-ascii" will ! * return "html" as the media subtype. ! * * @return The media subtype. */ public String getMediaSubtype() --- 799,812 ---- DocFlavor tmp = (DocFlavor) obj; return (getMimeType().equals(tmp.getMimeType()) ! && getRepresentationClassName().equals(tmp.getRepresentationClassName())); } /** * Returns the media subtype of this flavor object. * A mimetype of "text/html; charset=us-ascii" will ! * return "html" as the media subtype. ! * * @return The media subtype. */ public String getMediaSubtype() *************** public class DocFlavor implements Clonea *** 818,824 **** * Returns the media type of this flavor object. * A mimetype of "text/html; charset=us-ascii" will * return "text" as the media type. ! * * @return The media type. */ public String getMediaType() --- 818,824 ---- * Returns the media type of this flavor object. * A mimetype of "text/html; charset=us-ascii" will * return "text" as the media type. ! * * @return The media type. */ public String getMediaType() *************** public class DocFlavor implements Clonea *** 830,836 **** * Returns the mime type of this flavor object. * The mimetype will have every parameter value * enclosed in quotes. ! * * @return The mime type. */ public String getMimeType() --- 830,836 ---- * Returns the mime type of this flavor object. * The mimetype will have every parameter value * enclosed in quotes. ! * * @return The mime type. */ public String getMimeType() *************** public class DocFlavor implements Clonea *** 840,847 **** while (it.hasNext()) { ! Map.Entry entry = (Map.Entry) it.next(); ! mimeType += "; " + entry.getKey() + "=\"" + entry.getValue() + "\""; } return mimeType; --- 840,847 ---- while (it.hasNext()) { ! Map.Entry entry = (Map.Entry) it.next(); ! mimeType += "; " + entry.getKey() + "=\"" + entry.getValue() + "\""; } return mimeType; *************** public class DocFlavor implements Clonea *** 850,856 **** /** * Returns the value for an optional parameter of the mime type of this * flavor object. ! * * @param paramName the name of the parameter * @return The value for the parameter, or null if none bound. * @throws NullPointerException if paramName is null. --- 850,856 ---- /** * Returns the value for an optional parameter of the mime type of this * flavor object. ! * * @param paramName the name of the parameter * @return The value for the parameter, or null if none bound. * @throws NullPointerException if paramName is null. *************** public class DocFlavor implements Clonea *** 859,871 **** { if (paramName == null) throw new NullPointerException(); ! return (String) params.get(paramName.toLowerCase()); } /** * Returns the name of the representation class of this flavor object. ! * * @return The representation classname. */ public String getRepresentationClassName() --- 859,871 ---- { if (paramName == null) throw new NullPointerException(); ! return (String) params.get(paramName.toLowerCase()); } /** * Returns the name of the representation class of this flavor object. ! * * @return The representation classname. */ public String getRepresentationClassName() *************** public class DocFlavor implements Clonea *** 875,904 **** /** * Returns a hash code for this doc flavor object. ! * * @return The hashcode. */ public int hashCode() { return ((mediaType.hashCode() ! * mediaSubtype.hashCode() ! * myClassName.hashCode()) ^ params.hashCode()); } /** * Returns a string representation of this doc flavor object. * The returned string is of the form * getMimeType() + "; class=\"" + getRepresentationClassName() + "\""; ! * * @return The constructed string representation. */ public String toString() { return getMimeType() + "; class=\"" + getRepresentationClassName() + "\""; } ! // needs special treatment for serialization ! private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { params = new TreeMap(); --- 875,904 ---- /** * Returns a hash code for this doc flavor object. ! * * @return The hashcode. */ public int hashCode() { return ((mediaType.hashCode() ! * mediaSubtype.hashCode() ! * myClassName.hashCode()) ^ params.hashCode()); } /** * Returns a string representation of this doc flavor object. * The returned string is of the form * getMimeType() + "; class=\"" + getRepresentationClassName() + "\""; ! * * @return The constructed string representation. */ public String toString() { return getMimeType() + "; class=\"" + getRepresentationClassName() + "\""; } ! // needs special treatment for serialization ! private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { params = new TreeMap(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/DocPrintJob.java gcc-4.6.0/libjava/classpath/javax/print/DocPrintJob.java *** gcc-4.5.2/libjava/classpath/javax/print/DocPrintJob.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/DocPrintJob.java Tue Jan 11 19:46:05 2011 *************** import javax.print.event.PrintJobAttribu *** 44,57 **** import javax.print.event.PrintJobListener; /** ! * DocPrintJob represents a print job which supports printing ! * of a single document. *

                                ! * An instance can be obtained from every PrintService available ! * by calling the {@link javax.print.PrintService#createPrintJob()} method. * A print job is bound to the print service it is created from. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface DocPrintJob --- 44,57 ---- import javax.print.event.PrintJobListener; /** ! * DocPrintJob represents a print job which supports printing ! * of a single document. *

                                ! * An instance can be obtained from every PrintService available ! * by calling the {@link javax.print.PrintService#createPrintJob()} method. * A print job is bound to the print service it is created from. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface DocPrintJob *************** public interface DocPrintJob *** 63,124 **** * If the given attribute set is empty no changes will be reported. * If the set is null all attributes are monitored. *

                                ! * * @param listener the listener to register. * @param attributes the attributes to observe. ! * * @see #removePrintJobAttributeListener(PrintJobAttributeListener) */ void addPrintJobAttributeListener(PrintJobAttributeListener listener, ! PrintJobAttributeSet attributes); /** * Registers a listener for events occuring during processing * of this print job. ! * * @param listener the listener to add, if null nothing is done. ! * * @see #removePrintJobListener(PrintJobListener) */ void addPrintJobListener(PrintJobListener listener); /** ! * Returns the print job's attributes. *

                                ! * The returned set of attributes is a snapshot at the time of calling this * method and will not be updated if changes to the print job's attributes * happens. To monitor changes register a print job listener. *

                                ! * ! * @return The attributes of this print job, * may be empty but never null. */ PrintJobAttributeSet getAttributes(); /** * Returns the PrintService object this print job is bound to. ! * * @return The print service. */ PrintService getPrintService(); /** * Prints a document with the specified print job attributes. ! * *

                                ! * If the doc flavor provided by the Doc implementation is ! * not supported by this print service a PrintException * implementing the FlavorException interface will be thrown. *

                                ! * * @param doc the document to print ! * @param attributes the job attributes to use. If null the * default attribute values of the print service will be used. ! * ! * @throws PrintException if an error occurs. The thrown exception may ! * implement refining print exception interface to provide more detail of * the error. ! * * @see AttributeException * @see FlavorException */ --- 63,124 ---- * If the given attribute set is empty no changes will be reported. * If the set is null all attributes are monitored. *

                                ! * * @param listener the listener to register. * @param attributes the attributes to observe. ! * * @see #removePrintJobAttributeListener(PrintJobAttributeListener) */ void addPrintJobAttributeListener(PrintJobAttributeListener listener, ! PrintJobAttributeSet attributes); /** * Registers a listener for events occuring during processing * of this print job. ! * * @param listener the listener to add, if null nothing is done. ! * * @see #removePrintJobListener(PrintJobListener) */ void addPrintJobListener(PrintJobListener listener); /** ! * Returns the print job's attributes. *

                                ! * The returned set of attributes is a snapshot at the time of calling this * method and will not be updated if changes to the print job's attributes * happens. To monitor changes register a print job listener. *

                                ! * ! * @return The attributes of this print job, * may be empty but never null. */ PrintJobAttributeSet getAttributes(); /** * Returns the PrintService object this print job is bound to. ! * * @return The print service. */ PrintService getPrintService(); /** * Prints a document with the specified print job attributes. ! * *

                                ! * If the doc flavor provided by the Doc implementation is ! * not supported by this print service a PrintException * implementing the FlavorException interface will be thrown. *

                                ! * * @param doc the document to print ! * @param attributes the job attributes to use. If null the * default attribute values of the print service will be used. ! * ! * @throws PrintException if an error occurs. The thrown exception may ! * implement refining print exception interface to provide more detail of * the error. ! * * @see AttributeException * @see FlavorException */ *************** public interface DocPrintJob *** 127,148 **** /** * Removes the given listener from the listeners registered for changes * in their provided attribute set during processing of this print job. ! * * @param listener the listener to remove, if null or not * registered nothing will be done. ! * * @see #addPrintJobAttributeListener(PrintJobAttributeListener, PrintJobAttributeSet) ! */ void removePrintJobAttributeListener(PrintJobAttributeListener listener); /** ! * Removes the given listener from the listeners registered for events * occuring during processing of this print job. ! * * @param listener the listener to remove, if null or not * registered nothing will be done. ! * * @see #addPrintJobListener(PrintJobListener) */ void removePrintJobListener(PrintJobListener listener); ! } \ No newline at end of file --- 127,148 ---- /** * Removes the given listener from the listeners registered for changes * in their provided attribute set during processing of this print job. ! * * @param listener the listener to remove, if null or not * registered nothing will be done. ! * * @see #addPrintJobAttributeListener(PrintJobAttributeListener, PrintJobAttributeSet) ! */ void removePrintJobAttributeListener(PrintJobAttributeListener listener); /** ! * Removes the given listener from the listeners registered for events * occuring during processing of this print job. ! * * @param listener the listener to remove, if null or not * registered nothing will be done. ! * * @see #addPrintJobListener(PrintJobListener) */ void removePrintJobListener(PrintJobListener listener); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/FlavorException.java gcc-4.6.0/libjava/classpath/javax/print/FlavorException.java *** gcc-4.5.2/libjava/classpath/javax/print/FlavorException.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/FlavorException.java Tue Jan 11 19:46:05 2011 *************** package javax.print; *** 44,62 **** * provide further information of printing errors if unsupported * document flavors are involved. *

                                ! * There exists no PrintException class implementing this ! * interface. Providing this extension in PrintException * subclasses is left to the concrete print service implementation. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface FlavorException { /** * Returns the unsupported document flavors. ! * * @return The unsupported document flavors. */ DocFlavor[] getUnsupportedFlavors(); ! } \ No newline at end of file --- 44,62 ---- * provide further information of printing errors if unsupported * document flavors are involved. *

                                ! * There exists no PrintException class implementing this ! * interface. Providing this extension in PrintException * subclasses is left to the concrete print service implementation. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface FlavorException { /** * Returns the unsupported document flavors. ! * * @return The unsupported document flavors. */ DocFlavor[] getUnsupportedFlavors(); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/MultiDoc.java gcc-4.6.0/libjava/classpath/javax/print/MultiDoc.java *** gcc-4.5.2/libjava/classpath/javax/print/MultiDoc.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/print/MultiDoc.java Tue Jan 11 19:46:05 2011 *************** import java.io.IOException; *** 46,75 **** * documents for use in a print job. *

                                * Implementations of this interface are used to pass multiple documents, to be ! * printed as one print job, to the MultiDocPrintJob instance. *

                                ! * There exists no implementation of this interface in the Java Print Service * API. Implementors may assume the following usage in print jobs and the needed ! * behaviour for implementations: The print job fetches the single documents via ! * iteration by consecutive calls of the {@link #getDoc()} method to obtain the ! * current document follwing calls of the {@link #next()} method to get the next * multidoc object for the next getDoc() method call (if returned ! * multidoc object is not null). The print service will fetch the ! * document object and then retrieve the print data from the document before it * proceeds with the next call for the next MultiDoc object in the sequence. *

                                * Implementations of this interface have to be multiple thread-safe. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface MultiDoc { /** * Returns the current document. ! * * @return The current document. ! * * @throws IOException if an error occurs */ Doc getDoc() throws IOException; --- 46,75 ---- * documents for use in a print job. *

                                * Implementations of this interface are used to pass multiple documents, to be ! * printed as one print job, to the MultiDocPrintJob instance. *

                                ! * There exists no implementation of this interface in the Java Print Service * API. Implementors may assume the following usage in print jobs and the needed ! * behaviour for implementations: The print job fetches the single documents via ! * iteration by consecutive calls of the {@link #getDoc()} method to obtain the ! * current document follwing calls of the {@link #next()} method to get the next * multidoc object for the next getDoc() method call (if returned ! * multidoc object is not null). The print service will fetch the ! * document object and then retrieve the print data from the document before it * proceeds with the next call for the next MultiDoc object in the sequence. *

                                * Implementations of this interface have to be multiple thread-safe. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface MultiDoc { /** * Returns the current document. ! * * @return The current document. ! * * @throws IOException if an error occurs */ Doc getDoc() throws IOException; *************** public interface MultiDoc *** 77,87 **** /** * Returns the next MultiDoc object that contains the * next document for retrieval. ! * * @return The next MultiDoc object, or null * if no more documents are available. ! * * @throws IOException if an error occurs */ MultiDoc next() throws IOException; ! } \ No newline at end of file --- 77,87 ---- /** * Returns the next MultiDoc object that contains the * next document for retrieval. ! * * @return The next MultiDoc object, or null * if no more documents are available. ! * * @throws IOException if an error occurs */ MultiDoc next() throws IOException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/MultiDocPrintJob.java gcc-4.6.0/libjava/classpath/javax/print/MultiDocPrintJob.java *** gcc-4.5.2/libjava/classpath/javax/print/MultiDocPrintJob.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/print/MultiDocPrintJob.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 42,77 **** /** ! * MultiDocPrintJob represents a print job which supports * printing of multiple documents as one print job. *

                                * An instance can be obtained from every MultiDocPrintService ! * available by calling the ! * {@link javax.print.MultiDocPrintService#createMultiDocPrintJob()} method. * A print job is bound to the print service it is created from. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface MultiDocPrintJob extends DocPrintJob { /** ! * Prints the documents supplied in the given MultiDoc object * as one print job with the given printing attributes. ! * ! * @param multiDoc the documents to print. Every document must have a * flavor supported by the bound print service. ! * @param attributes the printing attributes to apply to the print job. If * null the default attribute values will be used. ! * ! * @throws PrintException if an error occurs. The thrown exception may ! * implement refining print exception interface to provide more detail of * the error. ! * * @see FlavorException * @see AttributeException */ void print(MultiDoc multiDoc, PrintRequestAttributeSet attributes) throws PrintException; } - \ No newline at end of file --- 42,76 ---- /** ! * MultiDocPrintJob represents a print job which supports * printing of multiple documents as one print job. *

                                * An instance can be obtained from every MultiDocPrintService ! * available by calling the ! * {@link javax.print.MultiDocPrintService#createMultiDocPrintJob()} method. * A print job is bound to the print service it is created from. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface MultiDocPrintJob extends DocPrintJob { /** ! * Prints the documents supplied in the given MultiDoc object * as one print job with the given printing attributes. ! * ! * @param multiDoc the documents to print. Every document must have a * flavor supported by the bound print service. ! * @param attributes the printing attributes to apply to the print job. If * null the default attribute values will be used. ! * ! * @throws PrintException if an error occurs. The thrown exception may ! * implement refining print exception interface to provide more detail of * the error. ! * * @see FlavorException * @see AttributeException */ void print(MultiDoc multiDoc, PrintRequestAttributeSet attributes) throws PrintException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/MultiDocPrintService.java gcc-4.6.0/libjava/classpath/javax/print/MultiDocPrintService.java *** gcc-4.5.2/libjava/classpath/javax/print/MultiDocPrintService.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/print/MultiDocPrintService.java Tue Jan 11 19:46:05 2011 *************** package javax.print; *** 40,60 **** /** ! * MultiDocPrintService represents print services that are ! * capable of printing multiple documents as one print job. It provides an * additional method for the creation of a print job for multiple documents. ! * * @see javax.print.MultiDoc * @see javax.print.MultiDocPrintJob ! * * @author Michael Koch (konqueror@gmx.de) */ public interface MultiDocPrintService extends PrintService { /** * Create a job that can print a MultiDoc object. ! * * @return The created print job. */ MultiDocPrintJob createMultiDocPrintJob(); ! } \ No newline at end of file --- 40,60 ---- /** ! * MultiDocPrintService represents print services that are ! * capable of printing multiple documents as one print job. It provides an * additional method for the creation of a print job for multiple documents. ! * * @see javax.print.MultiDoc * @see javax.print.MultiDocPrintJob ! * * @author Michael Koch (konqueror@gmx.de) */ public interface MultiDocPrintService extends PrintService { /** * Create a job that can print a MultiDoc object. ! * * @return The created print job. */ MultiDocPrintJob createMultiDocPrintJob(); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/PrintException.java gcc-4.6.0/libjava/classpath/javax/print/PrintException.java *** gcc-4.5.2/libjava/classpath/javax/print/PrintException.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/PrintException.java Tue Jan 11 19:46:05 2011 *************** package javax.print; *** 42,49 **** * PrintException is used to report exceptions during the * usage of a print service implementation. *

                                ! * This base class only provides the possibility to report a message as ! * exception. A concrete print service implementation may provide * specialised subclasses implementing one or more of the following * exception interfaces:
                                *

                                  --- 42,49 ---- * PrintException is used to report exceptions during the * usage of a print service implementation. *

                                  ! * This base class only provides the possibility to report a message as ! * exception. A concrete print service implementation may provide * specialised subclasses implementing one or more of the following * exception interfaces:
                                  *

                                    *************** package javax.print; *** 52,58 **** *
                                  • {@link javax.print.URIException}
                                  • *
                                  *

                                  ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintException extends Exception --- 52,58 ---- *
                                • {@link javax.print.URIException}
                                • *
                                *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintException extends Exception *************** public class PrintException extends Exce *** 67,73 **** /** * Construct a print exception. ! * * @param e chained exception */ public PrintException(Exception e) --- 67,73 ---- /** * Construct a print exception. ! * * @param e chained exception */ public PrintException(Exception e) *************** public class PrintException extends Exce *** 77,83 **** /** * Construct a print exception. ! * * @param s detailed message, or null for no message */ public PrintException(String s) --- 77,83 ---- /** * Construct a print exception. ! * * @param s detailed message, or null for no message */ public PrintException(String s) *************** public class PrintException extends Exce *** 87,93 **** /** * Construct a print exception. ! * * @param s detailed message, or null for no message * @param e chained exception */ --- 87,93 ---- /** * Construct a print exception. ! * * @param s detailed message, or null for no message * @param e chained exception */ *************** public class PrintException extends Exce *** 95,98 **** { super(s, e); } ! } \ No newline at end of file --- 95,98 ---- { super(s, e); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/PrintService.java gcc-4.6.0/libjava/classpath/javax/print/PrintService.java *** gcc-4.5.2/libjava/classpath/javax/print/PrintService.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/PrintService.java Tue Jan 11 19:46:05 2011 *************** import javax.print.event.PrintServiceAtt *** 48,104 **** * A PrintService represents a printer available for printing. *

                                * The print service hereby may be a real physical printer device, a printer ! * group with same capabilities or a logical print service (like for example * a PDF writer). The print service is used to query the capabilities of the * represented printer instance. If a suitable print service is found it is ! * used to create a print job for the actual printing process. *

                                * @see javax.print.DocPrintJob ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintService { /** ! * Creates and returns a new print job which is capable to handle all * the document flavors supported by this print service. ! * * @return The created print job object. */ DocPrintJob createPrintJob(); ! /** * Determines if two services refer to the same underlying service. ! * * @param obj the service to check against ! * * @return true if both services refer to the same underlying * service, false otherwise. */ boolean equals(Object obj); ! /** * Returns the value of the single specified attribute. ! * * @param category the category of a PrintServiceAttribute ! * * @return The value of the attribute, or null if the attribute * category is not supported by this print service implementation. ! * * @throws NullPointerException if category is null. * @throws IllegalArgumentException if category is not a class that * implements PrintServiceAttribute. */ T getAttribute(Class category); ! /** ! * Returns the attributes describing this print service. The returned * attributes set is unmodifiable and represents the current state of ! * the print service. As some print service attributes may change * (depends on the print service implementation) a subsequent call to ! * this method may return a different set. To monitor changes a ! * PrintServiceAttributeListener may be registered. ! * * @return All the description attributes of this print service. * @see #addPrintServiceAttributeListener(PrintServiceAttributeListener) */ --- 48,104 ---- * A PrintService represents a printer available for printing. *

                                * The print service hereby may be a real physical printer device, a printer ! * group with same capabilities or a logical print service (like for example * a PDF writer). The print service is used to query the capabilities of the * represented printer instance. If a suitable print service is found it is ! * used to create a print job for the actual printing process. *

                                * @see javax.print.DocPrintJob ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintService { /** ! * Creates and returns a new print job which is capable to handle all * the document flavors supported by this print service. ! * * @return The created print job object. */ DocPrintJob createPrintJob(); ! /** * Determines if two services refer to the same underlying service. ! * * @param obj the service to check against ! * * @return true if both services refer to the same underlying * service, false otherwise. */ boolean equals(Object obj); ! /** * Returns the value of the single specified attribute. ! * * @param category the category of a PrintServiceAttribute ! * * @return The value of the attribute, or null if the attribute * category is not supported by this print service implementation. ! * * @throws NullPointerException if category is null. * @throws IllegalArgumentException if category is not a class that * implements PrintServiceAttribute. */ T getAttribute(Class category); ! /** ! * Returns the attributes describing this print service. The returned * attributes set is unmodifiable and represents the current state of ! * the print service. As some print service attributes may change * (depends on the print service implementation) a subsequent call to ! * this method may return a different set. To monitor changes a ! * PrintServiceAttributeListener may be registered. ! * * @return All the description attributes of this print service. * @see #addPrintServiceAttributeListener(PrintServiceAttributeListener) */ *************** public interface PrintService *** 111,177 **** * A return value of null means either that the print service * does not support the attribute category or there is no default value * available for this category. To distinguish these two case one can test ! * with {@link #isAttributeCategorySupported(Class)} if the category is * supported. *

                                ! * * @param category the category of the attribute ! * * @return The default value, or null. ! * * @throws NullPointerException if category is null * @throws IllegalArgumentException if category is a class ! * not implementing Attribute */ Object getDefaultAttributeValue(Class category); ! /** * Returns the name of this print service. * This may be the value of the PrinterName attribute. ! * * @return The print service name. */ String getName(); ! /** * Returns a factory for UI components if supported by the print service. ! * * @return A factory for UI components or null. */ ServiceUIFactory getServiceUIFactory(); ! /** * Returns all supported attribute categories. ! * * @return The class array of all supported attribute categories. */ Class[] getSupportedAttributeCategories(); ! /** ! * Determines and returns all supported attribute values of a given ! * attribute category a client can use when setting up a print job ! * for this print service. *

                                * The returned object may be one of the following types: *

                                  ! *
                                • A single instance of the attribute category to indicate that any * value will be supported.
                                • ! *
                                • An array of the same type as the attribute category to test, * containing all the supported values for this category.
                                • ! *
                                • A single object (of any other type than the attribute category) ! * which indicates bounds on the supported values.
                                • ! *
                                *

                                ! * * @param category the attribute category to test * @param flavor the document flavor to use, or null ! * @param attributes set of attributes for a supposed job, * or null ! * ! * @return A object (as defined above) indicating the supported values ! * for the given attribute category, or null if this print * service doesn't support the given attribute category at all. ! * * @throws NullPointerException if category is null * @throws IllegalArgumentException if category is a class not * implementing Attribute, or if flavor is not --- 111,177 ---- * A return value of null means either that the print service * does not support the attribute category or there is no default value * available for this category. To distinguish these two case one can test ! * with {@link #isAttributeCategorySupported(Class)} if the category is * supported. *

                                ! * * @param category the category of the attribute ! * * @return The default value, or null. ! * * @throws NullPointerException if category is null * @throws IllegalArgumentException if category is a class ! * not implementing Attribute */ Object getDefaultAttributeValue(Class category); ! /** * Returns the name of this print service. * This may be the value of the PrinterName attribute. ! * * @return The print service name. */ String getName(); ! /** * Returns a factory for UI components if supported by the print service. ! * * @return A factory for UI components or null. */ ServiceUIFactory getServiceUIFactory(); ! /** * Returns all supported attribute categories. ! * * @return The class array of all supported attribute categories. */ Class[] getSupportedAttributeCategories(); ! /** ! * Determines and returns all supported attribute values of a given ! * attribute category a client can use when setting up a print job ! * for this print service. *

                                * The returned object may be one of the following types: *

                                  ! *
                                • A single instance of the attribute category to indicate that any * value will be supported.
                                • ! *
                                • An array of the same type as the attribute category to test, * containing all the supported values for this category.
                                • ! *
                                • A single object (of any other type than the attribute category) ! * which indicates bounds on the supported values.
                                • ! *
                                *

                                ! * * @param category the attribute category to test * @param flavor the document flavor to use, or null ! * @param attributes set of attributes for a supposed job, * or null ! * ! * @return A object (as defined above) indicating the supported values ! * for the given attribute category, or null if this print * service doesn't support the given attribute category at all. ! * * @throws NullPointerException if category is null * @throws IllegalArgumentException if category is a class not * implementing Attribute, or if flavor is not *************** public interface PrintService *** 180,295 **** Object getSupportedAttributeValues(Class category, DocFlavor flavor, AttributeSet attributes); ! /** * Determines and returns an array of all supported document flavors which ! * can be used to supply print data to this print service. *

                                * The supported attribute categories may differ between the supported * document flavors. To test for supported attributes one can use the * {@link #getUnsupportedAttributes(DocFlavor, AttributeSet)} method with * the specific doc flavor and attributes set. *

                                ! * * @return the supported document flavors */ DocFlavor[] getSupportedDocFlavors(); ! /** * Identifies all the unsupported attributes of the given set of attributes ! * in the context of the specified document flavor. *

                                ! * The given flavor has to be supported by the print service (use ! * {@link #isDocFlavorSupported(DocFlavor)} to verify). The method will * return null if all given attributes are supported. Otherwise * a set of unsupported attributes are returned. The attributes in the * returned set may be completely unsupported or only the specific requested ! * value. If flavor is null the default document flavor of the * print service is used in the identification process. *

                                ! * * @param flavor document flavor to test, or null. * @param attributes set of printing attributes for a supposed job ! * ! * @return null if this print service supports all the given * attributes for the specified doc flavor. Otherwise the set of unsupported * attributes are returned. ! * * @throws IllegalArgumentException if flavor is unsupported */ AttributeSet getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes); ! /** * Returns a hashcode for this print service. ! * * @return The hashcode. */ int hashCode(); ! /** ! * Determines a given attribute category is supported by this * print service implementation. This only tests for the category * not for any specific values of this category nor in the context * of a specific document flavor. ! * * @param category the category to check ! * * @return true if category is supported, * false otherwise. ! * * @throws NullPointerException if category is null * @throws IllegalArgumentException if category is a class not * implementing Attribute. */ boolean isAttributeCategorySupported(Class category); ! /** ! * Determines if a given attribute value is supported when creating a print ! * job for this print service. *

                                ! * If either the document flavor or the provided attributes are ! * null it is determined if the given attribute value is * supported in some combination of the available document flavors and * attributes of the print service. Otherwise it is checked for the * specific context of the given document flavor/attributes set. *

                                ! * * @param attrval the attribute value to check * @param flavor the document flavor to use, or null. * @param attributes set of attributes to use, or null. ! * * @return true if the attribute value is supported in the * requested context, false otherwise. ! * * @throws NullPointerException if attrval is null. * @throws IllegalArgumentException if flavor is not supported * by this print service */ boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes); ! /** * Determines if a given document flavor is supported or not. ! * * @param flavor the document flavor to check ! * * @return true if flavor is supported, * false otherwise. ! * * @throws NullPointerException if flavor is null. */ boolean isDocFlavorSupported(DocFlavor flavor); ! /** * Registers a print service attribute listener to this print service. ! * * @param listener the listener to add */ void addPrintServiceAttributeListener(PrintServiceAttributeListener listener); ! /** * De-registers a print service attribute listener from this print service. ! * * @param listener the listener to remove */ void removePrintServiceAttributeListener(PrintServiceAttributeListener listener); --- 180,295 ---- Object getSupportedAttributeValues(Class category, DocFlavor flavor, AttributeSet attributes); ! /** * Determines and returns an array of all supported document flavors which ! * can be used to supply print data to this print service. *

                                * The supported attribute categories may differ between the supported * document flavors. To test for supported attributes one can use the * {@link #getUnsupportedAttributes(DocFlavor, AttributeSet)} method with * the specific doc flavor and attributes set. *

                                ! * * @return the supported document flavors */ DocFlavor[] getSupportedDocFlavors(); ! /** * Identifies all the unsupported attributes of the given set of attributes ! * in the context of the specified document flavor. *

                                ! * The given flavor has to be supported by the print service (use ! * {@link #isDocFlavorSupported(DocFlavor)} to verify). The method will * return null if all given attributes are supported. Otherwise * a set of unsupported attributes are returned. The attributes in the * returned set may be completely unsupported or only the specific requested ! * value. If flavor is null the default document flavor of the * print service is used in the identification process. *

                                ! * * @param flavor document flavor to test, or null. * @param attributes set of printing attributes for a supposed job ! * ! * @return null if this print service supports all the given * attributes for the specified doc flavor. Otherwise the set of unsupported * attributes are returned. ! * * @throws IllegalArgumentException if flavor is unsupported */ AttributeSet getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes); ! /** * Returns a hashcode for this print service. ! * * @return The hashcode. */ int hashCode(); ! /** ! * Determines a given attribute category is supported by this * print service implementation. This only tests for the category * not for any specific values of this category nor in the context * of a specific document flavor. ! * * @param category the category to check ! * * @return true if category is supported, * false otherwise. ! * * @throws NullPointerException if category is null * @throws IllegalArgumentException if category is a class not * implementing Attribute. */ boolean isAttributeCategorySupported(Class category); ! /** ! * Determines if a given attribute value is supported when creating a print ! * job for this print service. *

                                ! * If either the document flavor or the provided attributes are ! * null it is determined if the given attribute value is * supported in some combination of the available document flavors and * attributes of the print service. Otherwise it is checked for the * specific context of the given document flavor/attributes set. *

                                ! * * @param attrval the attribute value to check * @param flavor the document flavor to use, or null. * @param attributes set of attributes to use, or null. ! * * @return true if the attribute value is supported in the * requested context, false otherwise. ! * * @throws NullPointerException if attrval is null. * @throws IllegalArgumentException if flavor is not supported * by this print service */ boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes); ! /** * Determines if a given document flavor is supported or not. ! * * @param flavor the document flavor to check ! * * @return true if flavor is supported, * false otherwise. ! * * @throws NullPointerException if flavor is null. */ boolean isDocFlavorSupported(DocFlavor flavor); ! /** * Registers a print service attribute listener to this print service. ! * * @param listener the listener to add */ void addPrintServiceAttributeListener(PrintServiceAttributeListener listener); ! /** * De-registers a print service attribute listener from this print service. ! * * @param listener the listener to remove */ void removePrintServiceAttributeListener(PrintServiceAttributeListener listener); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/PrintServiceLookup.java gcc-4.6.0/libjava/classpath/javax/print/PrintServiceLookup.java *** gcc-4.5.2/libjava/classpath/javax/print/PrintServiceLookup.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/print/PrintServiceLookup.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.AttributeSe *** 50,103 **** /** ! * PrintServiceLookup implementations provide a way to lookup * print services based on different constraints. *

                                ! * Implementations are located and loaded automatically through the SPI JAR ! * file specification. Therefore implementation classes must provide a default ! * constructor for instantiation. Furthermore, applications are able to * register further instances directly at runtime. *

                                ! * If an SecurityManager is installed implementors should call ! * checkPrintJobAccess() to disable access for untrusted code. ! * This check is to be made in every lookup service implementation for ! * flexibility. Print services registered by applications through ! * registerService(PrintService) are suppressed in the ! * lookup results if a security manager is installed and disallows access. *

                                ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ public abstract class PrintServiceLookup { ! private static final CupsPrintServiceLookup systemProvider; private static final HashSet printServices; private static final HashSet printServiceLookups; ! static { systemProvider = new CupsPrintServiceLookup(); ! printServices = new HashSet(); printServiceLookups = new HashSet(); ! // check for service providers Iterator it = ServiceFactory.lookupProviders(PrintServiceLookup.class); ! while (it.hasNext()) ! printServiceLookups.add(it.next()); ! } ! /** * Constructs a PrintServiceLookup object. */ public PrintServiceLookup() { ! // nothing to do here } ! /** * Explicitly registers the provided print service lookup implementation. *

                                --- 50,103 ---- /** ! * PrintServiceLookup implementations provide a way to lookup * print services based on different constraints. *

                                ! * Implementations are located and loaded automatically through the SPI JAR ! * file specification. Therefore implementation classes must provide a default ! * constructor for instantiation. Furthermore, applications are able to * register further instances directly at runtime. *

                                ! * If an SecurityManager is installed implementors should call ! * checkPrintJobAccess() to disable access for untrusted code. ! * This check is to be made in every lookup service implementation for ! * flexibility. Print services registered by applications through ! * registerService(PrintService) are suppressed in the ! * lookup results if a security manager is installed and disallows access. *

                                ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ public abstract class PrintServiceLookup { ! private static final CupsPrintServiceLookup systemProvider; private static final HashSet printServices; private static final HashSet printServiceLookups; ! static { systemProvider = new CupsPrintServiceLookup(); ! printServices = new HashSet(); printServiceLookups = new HashSet(); ! // check for service providers Iterator it = ServiceFactory.lookupProviders(PrintServiceLookup.class); ! while (it.hasNext()) ! printServiceLookups.add(it.next()); ! } ! /** * Constructs a PrintServiceLookup object. */ public PrintServiceLookup() { ! // nothing to do here } ! /** * Explicitly registers the provided print service lookup implementation. *

                                *************** public abstract class PrintServiceLookup *** 106,127 **** * else fails. *

                                * ! * @param sp the print service lookup implementation to register. * @return true if registered, false otherwise. */ public static boolean registerServiceProvider(PrintServiceLookup sp) ! { return printServiceLookups.add(sp); } ! /** * Explicitly registers the provided print service instance. *

                                * The registration will silently fail (returning false) if ! * the print service instance is already registered or the registration * somehow else fails. *

                                ! * @param service the single print service to register. * @return true if registered, false otherwise. */ public static boolean registerService(PrintService service) --- 106,127 ---- * else fails. *

                                * ! * @param sp the print service lookup implementation to register. * @return true if registered, false otherwise. */ public static boolean registerServiceProvider(PrintServiceLookup sp) ! { return printServiceLookups.add(sp); } ! /** * Explicitly registers the provided print service instance. *

                                * The registration will silently fail (returning false) if ! * the print service instance is already registered or the registration * somehow else fails. *

                                ! * @param service the single print service to register. * @return true if registered, false otherwise. */ public static boolean registerService(PrintService service) *************** public abstract class PrintServiceLookup *** 143,220 **** return false; } } ! /** * Searches print services capable of printing in the given document flavor * which supports the specified printing attributes. ! * ! * @param flavor the document flavor to support. If null this * constraint is ignored during lookup. ! * @param attributes the printing attributes to support. If * null this constraint is ignored during lookup. ! * @return The resulting available print services, or an array of length 0 ! * if none is found. */ public static final PrintService[] lookupPrintServices(DocFlavor flavor, AttributeSet attributes) ! { ArrayList result = new ArrayList(); ! ! PrintService[] services = ! systemProvider.getPrintServices(flavor, attributes); result.addAll(Arrays.asList(services)); ! for (Iterator it = printServiceLookups.iterator(); it.hasNext(); ) { PrintServiceLookup lookup = (PrintServiceLookup) it.next(); ! services = lookup.getPrintServices(flavor, attributes); result.addAll(Arrays.asList(services)); } ! for (Iterator it = printServices.iterator(); it.hasNext(); ) { PrintService service = (PrintService) it.next(); ! if (systemProvider.checkPrintService(flavor, attributes, service)) result.add(service); } ! return (PrintService[]) result.toArray(new PrintService[result.size()]); } ! /** ! * Searches print services capable of multi document printing in all of the * given document flavors and supporting the specified printing attributes. ! * ! * @param flavors the document flavors to support. If null this * constraint is ignored during lookup. ! * @param attributes the printing attributes to support. If * null this constraint is ignored during lookup. ! * @return The resulting available multi document print services, or an ! * array of length 0 if none is found. */ public static final MultiDocPrintService[] lookupMultiDocPrintServices( DocFlavor[] flavors, AttributeSet attributes) { ArrayList result = new ArrayList(); ! ! MultiDocPrintService[] services = ! systemProvider.getMultiDocPrintServices(flavors, attributes); result.addAll(Arrays.asList(services)); ! for (Iterator it = printServiceLookups.iterator(); it.hasNext(); ) { PrintServiceLookup lookup = (PrintServiceLookup) it.next(); ! services = lookup.getMultiDocPrintServices(flavors, attributes); result.addAll(Arrays.asList(services)); } ! for (Iterator it = printServices.iterator(); it.hasNext(); ) { PrintService service = (PrintService) it.next(); ! if (systemProvider.checkMultiDocPrintService(flavors, attributes, service)) result.add(service); } ! return (MultiDocPrintService[]) result.toArray( new MultiDocPrintService[result.size()]); } --- 143,220 ---- return false; } } ! /** * Searches print services capable of printing in the given document flavor * which supports the specified printing attributes. ! * ! * @param flavor the document flavor to support. If null this * constraint is ignored during lookup. ! * @param attributes the printing attributes to support. If * null this constraint is ignored during lookup. ! * @return The resulting available print services, or an array of length 0 ! * if none is found. */ public static final PrintService[] lookupPrintServices(DocFlavor flavor, AttributeSet attributes) ! { ArrayList result = new ArrayList(); ! ! PrintService[] services = ! systemProvider.getPrintServices(flavor, attributes); result.addAll(Arrays.asList(services)); ! for (Iterator it = printServiceLookups.iterator(); it.hasNext(); ) { PrintServiceLookup lookup = (PrintServiceLookup) it.next(); ! services = lookup.getPrintServices(flavor, attributes); result.addAll(Arrays.asList(services)); } ! for (Iterator it = printServices.iterator(); it.hasNext(); ) { PrintService service = (PrintService) it.next(); ! if (systemProvider.checkPrintService(flavor, attributes, service)) result.add(service); } ! return (PrintService[]) result.toArray(new PrintService[result.size()]); } ! /** ! * Searches print services capable of multi document printing in all of the * given document flavors and supporting the specified printing attributes. ! * ! * @param flavors the document flavors to support. If null this * constraint is ignored during lookup. ! * @param attributes the printing attributes to support. If * null this constraint is ignored during lookup. ! * @return The resulting available multi document print services, or an ! * array of length 0 if none is found. */ public static final MultiDocPrintService[] lookupMultiDocPrintServices( DocFlavor[] flavors, AttributeSet attributes) { ArrayList result = new ArrayList(); ! ! MultiDocPrintService[] services = ! systemProvider.getMultiDocPrintServices(flavors, attributes); result.addAll(Arrays.asList(services)); ! for (Iterator it = printServiceLookups.iterator(); it.hasNext(); ) { PrintServiceLookup lookup = (PrintServiceLookup) it.next(); ! services = lookup.getMultiDocPrintServices(flavors, attributes); result.addAll(Arrays.asList(services)); } ! for (Iterator it = printServices.iterator(); it.hasNext(); ) { PrintService service = (PrintService) it.next(); ! if (systemProvider.checkMultiDocPrintService(flavors, attributes, service)) result.add(service); } ! return (MultiDocPrintService[]) result.toArray( new MultiDocPrintService[result.size()]); } *************** public abstract class PrintServiceLookup *** 224,255 **** * Searches the default print service in the current environment. *

                                * If multiple lookup services are registered and each has a default ! * print service the result is not specified. Usually the default * print service of the native platform lookup service is returned. *

                                * The GNU classpath implementation will return the CUPS default * printing service as the default print service, if available. *

                                * The default print service may be overriden by users through ! * the property javax.print.defaultPrinter. A service * specified must be found to be returned as the default. *

                                ! * * @return The default print service, or null if none found. */ public static final PrintService lookupDefaultPrintService() { // TODO Find out what the property controls and use it // String defaultPrinter = System.getProperty("javax.print.defaultPrinter"); ! // first test for platform specified default services PrintService service = systemProvider.getDefaultPrintService(); ! ! if (service != null) return service; ! // none available by systemDefaultProvider ! // search in other registered ones and take first for (Iterator it = printServiceLookups.iterator(); it.hasNext(); ) { service = ((PrintServiceLookup) it.next()).getDefaultPrintService(); --- 224,255 ---- * Searches the default print service in the current environment. *

                                * If multiple lookup services are registered and each has a default ! * print service the result is not specified. Usually the default * print service of the native platform lookup service is returned. *

                                * The GNU classpath implementation will return the CUPS default * printing service as the default print service, if available. *

                                * The default print service may be overriden by users through ! * the property javax.print.defaultPrinter. A service * specified must be found to be returned as the default. *

                                ! * * @return The default print service, or null if none found. */ public static final PrintService lookupDefaultPrintService() { // TODO Find out what the property controls and use it // String defaultPrinter = System.getProperty("javax.print.defaultPrinter"); ! // first test for platform specified default services PrintService service = systemProvider.getDefaultPrintService(); ! ! if (service != null) return service; ! // none available by systemDefaultProvider ! // search in other registered ones and take first for (Iterator it = printServiceLookups.iterator(); it.hasNext(); ) { service = ((PrintServiceLookup) it.next()).getDefaultPrintService(); *************** public abstract class PrintServiceLookup *** 259,268 **** return null; } ! /** * Not to be called directly by applications. ! * * @return The default lookup service of the implementing lookup service or * null if there is no default one. */ --- 259,268 ---- return null; } ! /** * Not to be called directly by applications. ! * * @return The default lookup service of the implementing lookup service or * null if there is no default one. */ *************** public abstract class PrintServiceLookup *** 270,303 **** /** * Not to be called directly by applications. ! * * @param flavors the document flavors which have to be supported. * @param attributes the attributes which have to be supported. ! * * @return The multidoc print services of the implementing lookup service * for the given parameters, or an array of length 0 if none is available. */ ! public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes); /** * Not to be called directly by applications. ! * * @return All known print services of the implementing lookup service ! * regardless of supported features, or an array of length 0 if none is * available. */ public abstract PrintService[] getPrintServices(); /** * Not to be called directly by applications. ! * * @param flavor the document flavor which has to be supported. * @param attributes the attributes which have to be supported. ! * * @return The print services of the implementing lookup service * for the given parameters, or an array of length 0 if none is available. */ ! public abstract PrintService[] getPrintServices(DocFlavor flavor, AttributeSet attributes); } --- 270,303 ---- /** * Not to be called directly by applications. ! * * @param flavors the document flavors which have to be supported. * @param attributes the attributes which have to be supported. ! * * @return The multidoc print services of the implementing lookup service * for the given parameters, or an array of length 0 if none is available. */ ! public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes); /** * Not to be called directly by applications. ! * * @return All known print services of the implementing lookup service ! * regardless of supported features, or an array of length 0 if none is * available. */ public abstract PrintService[] getPrintServices(); /** * Not to be called directly by applications. ! * * @param flavor the document flavor which has to be supported. * @param attributes the attributes which have to be supported. ! * * @return The print services of the implementing lookup service * for the given parameters, or an array of length 0 if none is available. */ ! public abstract PrintService[] getPrintServices(DocFlavor flavor, AttributeSet attributes); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/ServiceUI.java gcc-4.6.0/libjava/classpath/javax/print/ServiceUI.java *** gcc-4.5.2/libjava/classpath/javax/print/ServiceUI.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/print/ServiceUI.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ServiceUI.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ServiceUI.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Arrays; *** 48,66 **** import javax.print.attribute.PrintRequestAttributeSet; /** ! * ServiceUI provides a method to create a graphical * print dialog. *

                                * The graphical print dialog enables the user to browse the available ! * print services on the system. It provides user interfaces to interact ! * with the most common printing attributes likes specifying the number of * copies to print or the page ranges. *

                                ! * The initial appearance of the print dialog as shown to the user may be ! * specified by providing the default selected print service as well as * initial values for the printing attributes in the user interface. *

                                ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class ServiceUI --- 48,66 ---- import javax.print.attribute.PrintRequestAttributeSet; /** ! * ServiceUI provides a method to create a graphical * print dialog. *

                                * The graphical print dialog enables the user to browse the available ! * print services on the system. It provides user interfaces to interact ! * with the most common printing attributes likes specifying the number of * copies to print or the page ranges. *

                                ! * The initial appearance of the print dialog as shown to the user may be ! * specified by providing the default selected print service as well as * initial values for the printing attributes in the user interface. *

                                ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public class ServiceUI *************** public class ServiceUI *** 73,137 **** { // nothing to do here - only one static method } ! /** ! * Creates a modal graphical printing dialog at the specified location on * the screen. *

                                ! * The dialog will return the user selected print service and the given ! * attributes set will contain the modified printing attributes. If the ! * user cancels the printing dialog null will be returned and * the printing attributes set will be unmodified. *

                                * The values of the given attributes set (if not empty) will be displayed ! * initially unless the are unsupported by the print service. If a print * service does not support a particular value it is substituted with the * default value of the print service. ! *

                                ! * * @param gc the screen to use. null is default screen. ! * @param x the coordinate of the upper left edge of the dialog in screen * coordinates (not relative to the parent frame). ! * @param y the coordinate of the upper left edge of the dialog in screen * coordinates (not relative to the parent frame). * @param services the print services to browse (not null). * @param defaultService the default service. If null * the first of the print services in the services array will be used. * @param flavor the flavours to be printed. ! * @param attributes the attributes requested. Will be updated ! * by selections done by the user in the dialog. ! * * @return The selected print service or null if user * has cancelled the printer dialog. ! * * @throws HeadlessException if GraphicsEnvironment is headless ! * @throws IllegalArgumentException if services is null or an ! * empty array, attributes are null or the given default * PrintService is not part of the print service array. */ ! public static PrintService printDialog(GraphicsConfiguration gc, int x, int y, PrintService[] services, PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes) throws HeadlessException ! { if (GraphicsEnvironment.isHeadless()) throw new HeadlessException("GraphicsEnvironment is headless."); ! if (services == null || services.length == 0 || attributes == null) ! throw new IllegalArgumentException("Given print service array / " + "attributes may not be null"); ! ! if (defaultService != null && ! Arrays.asList(services).contains(defaultService)) ! throw new IllegalArgumentException("defaultService is not contained " + " in the print service array"); ! ! PrinterDialog dialog = new PrinterDialog(gc, services, defaultService, flavor, attributes); ! dialog.setLocation(x, y); dialog.show(); ! return dialog.getSelectedPrintService(); } } --- 73,137 ---- { // nothing to do here - only one static method } ! /** ! * Creates a modal graphical printing dialog at the specified location on * the screen. *

                                ! * The dialog will return the user selected print service and the given ! * attributes set will contain the modified printing attributes. If the ! * user cancels the printing dialog null will be returned and * the printing attributes set will be unmodified. *

                                * The values of the given attributes set (if not empty) will be displayed ! * initially unless the are unsupported by the print service. If a print * service does not support a particular value it is substituted with the * default value of the print service. ! *

                                ! * * @param gc the screen to use. null is default screen. ! * @param x the coordinate of the upper left edge of the dialog in screen * coordinates (not relative to the parent frame). ! * @param y the coordinate of the upper left edge of the dialog in screen * coordinates (not relative to the parent frame). * @param services the print services to browse (not null). * @param defaultService the default service. If null * the first of the print services in the services array will be used. * @param flavor the flavours to be printed. ! * @param attributes the attributes requested. Will be updated ! * by selections done by the user in the dialog. ! * * @return The selected print service or null if user * has cancelled the printer dialog. ! * * @throws HeadlessException if GraphicsEnvironment is headless ! * @throws IllegalArgumentException if services is null or an ! * empty array, attributes are null or the given default * PrintService is not part of the print service array. */ ! public static PrintService printDialog(GraphicsConfiguration gc, int x, int y, PrintService[] services, PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes) throws HeadlessException ! { if (GraphicsEnvironment.isHeadless()) throw new HeadlessException("GraphicsEnvironment is headless."); ! if (services == null || services.length == 0 || attributes == null) ! throw new IllegalArgumentException("Given print service array / " + "attributes may not be null"); ! ! if (defaultService != null && ! Arrays.asList(services).contains(defaultService)) ! throw new IllegalArgumentException("defaultService is not contained " + " in the print service array"); ! ! PrinterDialog dialog = new PrinterDialog(gc, services, defaultService, flavor, attributes); ! dialog.setLocation(x, y); dialog.show(); ! return dialog.getSelectedPrintService(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/ServiceUIFactory.java gcc-4.6.0/libjava/classpath/javax/print/ServiceUIFactory.java *** gcc-4.5.2/libjava/classpath/javax/print/ServiceUIFactory.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/ServiceUIFactory.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,84 **** package javax.print; /** ! * ServiceUIFactory enables print services to provide additional * user interface dialogs. *

                                ! * A print service may provide a ServiceUIFactory implementation * if its getServiceUIFactory() method is called. If a factory ! * object is returned it can be queried for provided user interface dialogs. * Different roles are defined to denote dialogs providing informations about ! * the print service, dialogs for administration of a print service and for * end-user browsing dialogs. *

                                ! * The factory can support providing these UI roles in different dialog types * (AWT, Swing, JComponent, Panel). The support and use of Swing interfaces is * however preferred. *

                                ! * * @author Michael Koch */ public abstract class ServiceUIFactory { /** A user interface providing informations about the print service. */ public static final int ABOUT_UIROLE = 1; ! /** A user interface to administer the print service. */ public static final int ADMIN_UIROLE = 2; ! /** A user interface for end-user browsing of the print service. */ public static final int MAIN_UIROLE = 3; ! /** Role IDs greater than this may be used for other private roles. */ public static final int RESERVED_UIROLE = 99; /** Identifies a UI provided as an AWT dialog. */ public static final String DIALOG_UI = "java.awt.Dialog"; ! /** Identifies a UI provided as a Swing JComponent. */ public static final String JCOMPONENT_UI = "javax.swing.JComponent"; ! /** Identifies a UI provided as a Swing JDialog. */ public static final String JDIALOG_UI = "javax.swing.JDialog"; ! /** Identifies a UI provided as an AWT Panel. */ public static final String PANEL_UI = "java.awt.Panel"; --- 39,84 ---- package javax.print; /** ! * ServiceUIFactory enables print services to provide additional * user interface dialogs. *

                                ! * A print service may provide a ServiceUIFactory implementation * if its getServiceUIFactory() method is called. If a factory ! * object is returned it can be queried for provided user interface dialogs. * Different roles are defined to denote dialogs providing informations about ! * the print service, dialogs for administration of a print service and for * end-user browsing dialogs. *

                                ! * The factory can support providing these UI roles in different dialog types * (AWT, Swing, JComponent, Panel). The support and use of Swing interfaces is * however preferred. *

                                ! * * @author Michael Koch */ public abstract class ServiceUIFactory { /** A user interface providing informations about the print service. */ public static final int ABOUT_UIROLE = 1; ! /** A user interface to administer the print service. */ public static final int ADMIN_UIROLE = 2; ! /** A user interface for end-user browsing of the print service. */ public static final int MAIN_UIROLE = 3; ! /** Role IDs greater than this may be used for other private roles. */ public static final int RESERVED_UIROLE = 99; /** Identifies a UI provided as an AWT dialog. */ public static final String DIALOG_UI = "java.awt.Dialog"; ! /** Identifies a UI provided as a Swing JComponent. */ public static final String JCOMPONENT_UI = "javax.swing.JComponent"; ! /** Identifies a UI provided as a Swing JDialog. */ public static final String JDIALOG_UI = "javax.swing.JDialog"; ! /** Identifies a UI provided as an AWT Panel. */ public static final String PANEL_UI = "java.awt.Panel"; *************** public abstract class ServiceUIFactory *** 87,104 **** */ public ServiceUIFactory() { ! // Do nothing here. } /** * Returns an UI object which may be cast to the requested UI type. ! * * @param role the role requested. Must be one of the standard roles * or a private role supported by this factory * @param ui type in which the role is requested ! * * @return the UI role or null of this role is not supported by this factory ! * * @throws IllegalArgumentException if role is neither one of * the standard ones nor a private one supported by this factory */ --- 87,104 ---- */ public ServiceUIFactory() { ! // Do nothing here. } /** * Returns an UI object which may be cast to the requested UI type. ! * * @param role the role requested. Must be one of the standard roles * or a private role supported by this factory * @param ui type in which the role is requested ! * * @return the UI role or null of this role is not supported by this factory ! * * @throws IllegalArgumentException if role is neither one of * the standard ones nor a private one supported by this factory */ *************** public abstract class ServiceUIFactory *** 106,118 **** /** * Returns the UI types supported by this factory for an UI role. ! * * @param role the role to be looked up ! * * @return an array of UI types ! * * @throws IllegalArgumentException if role is neither one of * the standard ones nor a private one supported by this factory */ public abstract String[] getUIClassNamesForRole(int role); ! } \ No newline at end of file --- 106,118 ---- /** * Returns the UI types supported by this factory for an UI role. ! * * @param role the role to be looked up ! * * @return an array of UI types ! * * @throws IllegalArgumentException if role is neither one of * the standard ones nor a private one supported by this factory */ public abstract String[] getUIClassNamesForRole(int role); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/SimpleDoc.java gcc-4.6.0/libjava/classpath/javax/print/SimpleDoc.java *** gcc-4.5.2/libjava/classpath/javax/print/SimpleDoc.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/SimpleDoc.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SimpleDoc.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SimpleDoc.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.AttributeSe *** 49,71 **** import javax.print.attribute.DocAttributeSet; /** ! * Simple implementation of the Doc interface capable of handling * the predefined document flavors of DocFlavor. *

                                ! * This implementation can construct a reader or stream for the service from * the print data and ensures that always the same object is returned on each ! * method call. It does simple checks that the supplied data matches the * specified flavor of the doc object and supports thread safe access. ! *

                                ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class SimpleDoc implements Doc ! { private final Object printData; private final DocFlavor flavor; private final DocAttributeSet attributes; ! private InputStream stream; private Reader reader; --- 49,71 ---- import javax.print.attribute.DocAttributeSet; /** ! * Simple implementation of the Doc interface capable of handling * the predefined document flavors of DocFlavor. *

                                ! * This implementation can construct a reader or stream for the service from * the print data and ensures that always the same object is returned on each ! * method call. It does simple checks that the supplied data matches the * specified flavor of the doc object and supports thread safe access. ! *

                                ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public final class SimpleDoc implements Doc ! { private final Object printData; private final DocFlavor flavor; private final DocAttributeSet attributes; ! private InputStream stream; private Reader reader; *************** public final class SimpleDoc implements *** 74,90 **** * @param printData the object with the data to print. * @param flavor the document flavor of the print data. * @param attributes the attributes of the doc (may be null). ! * * @throws IllegalArgumentException if either printData or * flavor are null, or the print data is not * supplied in the document format specified by the given flavor object. */ ! public SimpleDoc(Object printData, DocFlavor flavor, DocAttributeSet attributes) { if (printData == null || flavor == null) throw new IllegalArgumentException("printData/flavor may not be null"); ! if (! (printData.getClass().getName().equals( flavor.getRepresentationClassName()) || flavor.getRepresentationClassName().equals("java.io.Reader") --- 74,90 ---- * @param printData the object with the data to print. * @param flavor the document flavor of the print data. * @param attributes the attributes of the doc (may be null). ! * * @throws IllegalArgumentException if either printData or * flavor are null, or the print data is not * supplied in the document format specified by the given flavor object. */ ! public SimpleDoc(Object printData, DocFlavor flavor, DocAttributeSet attributes) { if (printData == null || flavor == null) throw new IllegalArgumentException("printData/flavor may not be null"); ! if (! (printData.getClass().getName().equals( flavor.getRepresentationClassName()) || flavor.getRepresentationClassName().equals("java.io.Reader") *************** public final class SimpleDoc implements *** 93,108 **** && printData instanceof InputStream)) { throw new IllegalArgumentException("data is not of declared flavor type"); ! } ! this.printData = printData; this.flavor = flavor; ! if (attributes != null) this.attributes = AttributeSetUtilities.unmodifiableView(attributes); else this.attributes = null; ! stream = null; reader = null; } --- 93,108 ---- && printData instanceof InputStream)) { throw new IllegalArgumentException("data is not of declared flavor type"); ! } ! this.printData = printData; this.flavor = flavor; ! if (attributes != null) this.attributes = AttributeSetUtilities.unmodifiableView(attributes); else this.attributes = null; ! stream = null; reader = null; } *************** public final class SimpleDoc implements *** 110,122 **** /** * Returns the unmodifiable view of the attributes of this doc object. *

                                ! * The attributes of this doc's attributes set overrides attributes of ! * the same category in the print job's attribute set. If an attribute * is not available in this doc's attributes set or null * is returned the attributes of the same category of the print job are ! * used. *

                                ! * * @return The unmodifiable attributes set, or null. */ public DocAttributeSet getAttributes() --- 110,122 ---- /** * Returns the unmodifiable view of the attributes of this doc object. *

                                ! * The attributes of this doc's attributes set overrides attributes of ! * the same category in the print job's attribute set. If an attribute * is not available in this doc's attributes set or null * is returned the attributes of the same category of the print job are ! * used. *

                                ! * * @return The unmodifiable attributes set, or null. */ public DocAttributeSet getAttributes() *************** public final class SimpleDoc implements *** 126,132 **** /** * Returns the flavor of this doc objects print data. ! * * @return The document flavor. */ public DocFlavor getDocFlavor() --- 126,132 ---- /** * Returns the flavor of this doc objects print data. ! * * @return The document flavor. */ public DocFlavor getDocFlavor() *************** public final class SimpleDoc implements *** 141,147 **** * document flavor ({@link DocFlavor#getRepresentationClassName()}) * and can be cast to this representation class. *

                                ! * * @return The print data in the representation class. * @throws IOException if representation class is a stream and I/O * exception occures. --- 141,147 ---- * document flavor ({@link DocFlavor#getRepresentationClassName()}) * and can be cast to this representation class. *

                                ! * * @return The print data in the representation class. * @throws IOException if representation class is a stream and I/O * exception occures. *************** public final class SimpleDoc implements *** 162,171 **** *
                              • java.io.Reader
                              • * * otherwise this method returns null. ! *

                                ! * * @return The Reader object, or null. ! * * @throws IOException if an error occurs. */ public Reader getReaderForText() throws IOException --- 162,171 ---- *
                              • java.io.Reader
                              • * * otherwise this method returns null. ! *

                                ! * * @return The Reader object, or null. ! * * @throws IOException if an error occurs. */ public Reader getReaderForText() throws IOException *************** public final class SimpleDoc implements *** 182,190 **** else if (flavor instanceof DocFlavor.READER) reader = (Reader) printData; } ! return reader; ! } } /** --- 182,190 ---- else if (flavor instanceof DocFlavor.READER) reader = (Reader) printData; } ! return reader; ! } } /** *************** public final class SimpleDoc implements *** 197,206 **** *
                              • java.io.InputStream
                              • * * otherwise this method returns null. ! *

                                ! * * @return The InputStream object, or null. ! * * @throws IOException if an error occurs. */ public InputStream getStreamForBytes() throws IOException --- 197,206 ---- *
                              • java.io.InputStream
                              • * * otherwise this method returns null. ! *

                                ! * * @return The InputStream object, or null. ! * * @throws IOException if an error occurs. */ public InputStream getStreamForBytes() throws IOException *************** public final class SimpleDoc implements *** 215,223 **** else if (flavor instanceof DocFlavor.INPUT_STREAM) stream = (InputStream) printData; } ! return stream; ! } } } --- 215,223 ---- else if (flavor instanceof DocFlavor.INPUT_STREAM) stream = (InputStream) printData; } ! return stream; ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/StreamPrintService.java gcc-4.6.0/libjava/classpath/javax/print/StreamPrintService.java *** gcc-4.5.2/libjava/classpath/javax/print/StreamPrintService.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/StreamPrintService.java Tue Jan 11 19:46:05 2011 *************** import java.io.OutputStream; *** 46,66 **** * printing into a supplied output stream. *

                                * Beside providing the same functionality as a print service it additionally ! * allows to specify the output stream for the print data. A stream print ! * service is obtained via the {@link javax.print.StreamPrintServiceFactory} * by looking for services supporting a given output format type. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class StreamPrintService implements PrintService { private boolean disposed; private OutputStream out; ! /** * Constructs a StreamPrintService object. ! * * @param out the OutputStream to use */ protected StreamPrintService(OutputStream out) --- 46,66 ---- * printing into a supplied output stream. *

                                * Beside providing the same functionality as a print service it additionally ! * allows to specify the output stream for the print data. A stream print ! * service is obtained via the {@link javax.print.StreamPrintServiceFactory} * by looking for services supporting a given output format type. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class StreamPrintService implements PrintService { private boolean disposed; private OutputStream out; ! /** * Constructs a StreamPrintService object. ! * * @param out the OutputStream to use */ protected StreamPrintService(OutputStream out) *************** public abstract class StreamPrintService *** 78,93 **** /** * Returns the document format emitted by this print service. ! * The returned string is a MIME type compatible with the * {@link DocFlavor} class. ! * * @return The document format of the output. */ public abstract String getOutputFormat(); /** * Returns the OutputStream of this object. ! * * @return The OutputStream */ public OutputStream getOutputStream() --- 78,93 ---- /** * Returns the document format emitted by this print service. ! * The returned string is a MIME type compatible with the * {@link DocFlavor} class. ! * * @return The document format of the output. */ public abstract String getOutputFormat(); /** * Returns the OutputStream of this object. ! * * @return The OutputStream */ public OutputStream getOutputStream() *************** public abstract class StreamPrintService *** 97,103 **** /** * Determines if this StreamPrintService object is disposed. ! * * @return true if disposed already, * otherwise false */ --- 97,103 ---- /** * Determines if this StreamPrintService object is disposed. ! * * @return true if disposed already, * otherwise false */ *************** public abstract class StreamPrintService *** 105,108 **** { return disposed; } ! } \ No newline at end of file --- 105,108 ---- { return disposed; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/StreamPrintServiceFactory.java gcc-4.6.0/libjava/classpath/javax/print/StreamPrintServiceFactory.java *** gcc-4.5.2/libjava/classpath/javax/print/StreamPrintServiceFactory.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/StreamPrintServiceFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* StreamPrintServiceFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* StreamPrintServiceFactory.java -- Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.HashSet; *** 46,128 **** import java.util.Iterator; /** ! * StreamPrintServiceFactory provides a static method to lookup * registered factories to construct StreamPrintService instances. *

                                ! * StreamPrintService are used to print into a provided output ! * stream in the document format provided by the stream print service * implementation. *

                                ! * Implementations are located and loaded automatically through the SPI JAR ! * file specification. Therefore implementation classes must provide a default * constructor for instantiation. *

                                ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public abstract class StreamPrintServiceFactory ! { /** * Default public constructor. ! * Used for automatic loading and instantiation through * the SPI jar file specification. */ public StreamPrintServiceFactory() { // nothing to do } ! /** ! * Searches for matching factories providing stream print services that ! * support the printing of documents with the given document flavor into * the given output mime type. ! * ! * @param flavor the document flavor needed, null doesn't * constrain the lookup result. ! * @param outputMimeType the mime type needed, null doesn't * constrain the lookup result. ! * * @return The matching StreamPrintServiceFactory instances. */ public static StreamPrintServiceFactory[] lookupStreamPrintServiceFactories( DocFlavor flavor, String outputMimeType) { HashSet set = new HashSet(); ! ! Iterator it = ServiceFactory.lookupProviders(StreamPrintServiceFactory.class); ! while (it.hasNext()) { StreamPrintServiceFactory tmp = (StreamPrintServiceFactory) it.next(); if (tmp.getOutputFormat().equals(outputMimeType) && Arrays.asList(tmp.getSupportedDocFlavors()).contains(flavor)) ! set.add(tmp); } ! StreamPrintServiceFactory[] tmp = new StreamPrintServiceFactory[set.size()]; ! return (StreamPrintServiceFactory[]) set.toArray(tmp); ! } ! /** * Returns the output format supported by this factory. ! * * @return The mime type of the output format as string representation. */ public abstract String getOutputFormat(); ! /** * Returns the document flavors this factory supports as flavors * for the input documents. ! * * @return The array of supported document flavors. */ public abstract DocFlavor[] getSupportedDocFlavors(); ! /** * Constructs a StreamPrintService which directs its output * the given output stream. ! * * @param out the output stream for the produced document. * @return The constructed stream print service. */ --- 46,128 ---- import java.util.Iterator; /** ! * StreamPrintServiceFactory provides a static method to lookup * registered factories to construct StreamPrintService instances. *

                                ! * StreamPrintService are used to print into a provided output ! * stream in the document format provided by the stream print service * implementation. *

                                ! * Implementations are located and loaded automatically through the SPI JAR ! * file specification. Therefore implementation classes must provide a default * constructor for instantiation. *

                                ! * * @author Wolfgang Baer (WBaer@gmx.de) */ public abstract class StreamPrintServiceFactory ! { /** * Default public constructor. ! * Used for automatic loading and instantiation through * the SPI jar file specification. */ public StreamPrintServiceFactory() { // nothing to do } ! /** ! * Searches for matching factories providing stream print services that ! * support the printing of documents with the given document flavor into * the given output mime type. ! * ! * @param flavor the document flavor needed, null doesn't * constrain the lookup result. ! * @param outputMimeType the mime type needed, null doesn't * constrain the lookup result. ! * * @return The matching StreamPrintServiceFactory instances. */ public static StreamPrintServiceFactory[] lookupStreamPrintServiceFactories( DocFlavor flavor, String outputMimeType) { HashSet set = new HashSet(); ! ! Iterator it = ServiceFactory.lookupProviders(StreamPrintServiceFactory.class); ! while (it.hasNext()) { StreamPrintServiceFactory tmp = (StreamPrintServiceFactory) it.next(); if (tmp.getOutputFormat().equals(outputMimeType) && Arrays.asList(tmp.getSupportedDocFlavors()).contains(flavor)) ! set.add(tmp); } ! StreamPrintServiceFactory[] tmp = new StreamPrintServiceFactory[set.size()]; ! return (StreamPrintServiceFactory[]) set.toArray(tmp); ! } ! /** * Returns the output format supported by this factory. ! * * @return The mime type of the output format as string representation. */ public abstract String getOutputFormat(); ! /** * Returns the document flavors this factory supports as flavors * for the input documents. ! * * @return The array of supported document flavors. */ public abstract DocFlavor[] getSupportedDocFlavors(); ! /** * Constructs a StreamPrintService which directs its output * the given output stream. ! * * @param out the output stream for the produced document. * @return The constructed stream print service. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/URIException.java gcc-4.6.0/libjava/classpath/javax/print/URIException.java *** gcc-4.5.2/libjava/classpath/javax/print/URIException.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/URIException.java Tue Jan 11 19:46:05 2011 *************** package javax.print; *** 41,55 **** import java.net.URI; /** ! * URIException specifies methods a specific subclass of ! * {@link javax.print.PrintException} may implement to provide further * informations of printing errors if URI problems are involved. *

                                ! * There exists no PrintException class implementing this ! * interface. Providing this extension in PrintException ! * subclasses is left to the concrete print service implementation. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface URIException --- 41,55 ---- import java.net.URI; /** ! * URIException specifies methods a specific subclass of ! * {@link javax.print.PrintException} may implement to provide further * informations of printing errors if URI problems are involved. *

                                ! * There exists no PrintException class implementing this ! * interface. Providing this extension in PrintException ! * subclasses is left to the concrete print service implementation. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface URIException *************** public interface URIException *** 58,87 **** * Indicates that the provided URI is not accessible. */ int URIInaccessible = 1; ! /** * Indicates any other problem which is not defined by * the other reason constants. */ int URIOtherProblem = -1; ! /** * Indicates that the print service does not support a specific * uri scheme (for example the ftp scheme). */ int URISchemeNotSupported = 2; ! /** * Returns the reason for this exception as * predefined constants in this interface. ! * * @return The reason. */ int getReason(); ! /** * Returns the unsupported URI which caused this exception. ! * * @return The unsupported URI. */ URI getUnsupportedURI(); --- 58,87 ---- * Indicates that the provided URI is not accessible. */ int URIInaccessible = 1; ! /** * Indicates any other problem which is not defined by * the other reason constants. */ int URIOtherProblem = -1; ! /** * Indicates that the print service does not support a specific * uri scheme (for example the ftp scheme). */ int URISchemeNotSupported = 2; ! /** * Returns the reason for this exception as * predefined constants in this interface. ! * * @return The reason. */ int getReason(); ! /** * Returns the unsupported URI which caused this exception. ! * * @return The unsupported URI. */ URI getUnsupportedURI(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/Attribute.java gcc-4.6.0/libjava/classpath/javax/print/attribute/Attribute.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/Attribute.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/Attribute.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Attribute.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Attribute.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.io.Serializable; *** 41,47 **** /** * Base interface of every printing attribute of the Java Print Service API. ! * * @author Michael Koch (konqueror@gmx.de) */ public interface Attribute extends Serializable --- 41,47 ---- /** * Base interface of every printing attribute of the Java Print Service API. ! * * @author Michael Koch (konqueror@gmx.de) */ public interface Attribute extends Serializable *************** public interface Attribute extends Seria *** 49,65 **** /** * Returns the category of the printing attribute which is the specific * attribute class implementing this interface. ! * * @return The concrete {@link Class} instance of the attribute class. */ Class< ? extends Attribute> getCategory (); /** * Returns the descriptive name of the attribute category. ! * * Implementations of the Attribute interfaces providing equal * category values have to return equal name values. ! * * @return The name of the attribute category. */ String getName (); --- 49,65 ---- /** * Returns the category of the printing attribute which is the specific * attribute class implementing this interface. ! * * @return The concrete {@link Class} instance of the attribute class. */ Class< ? extends Attribute> getCategory (); /** * Returns the descriptive name of the attribute category. ! * * Implementations of the Attribute interfaces providing equal * category values have to return equal name values. ! * * @return The name of the attribute category. */ String getName (); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/AttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/AttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/AttributeSet.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/AttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AttributeSet.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AttributeSet.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 57,82 **** * *

                                *

                                ! * Attribute sets may be unmodifiable depending on the context of usage. If ! * used as read-only attribute set modifying operations throw an * {@link javax.print.attribute.UnmodifiableSetException}. *

                                *

                                * The Java Print Service API provides implementation classes for the existing * attribute set interfaces but applications may use their own implementations. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute to the set. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. * @throws NullPointerException if the attribute is null. --- 57,82 ---- * *

                                *

                                ! * Attribute sets may be unmodifiable depending on the context of usage. If ! * used as read-only attribute set modifying operations throw an * {@link javax.print.attribute.UnmodifiableSetException}. *

                                *

                                * The Java Print Service API provides implementation classes for the existing * attribute set interfaces but applications may use their own implementations. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute to the set. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. * @throws NullPointerException if the attribute is null. *************** public interface AttributeSet *** 86,158 **** /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); ! /** * Removes all attributes from this attribute set. ! * * @throws UnmodifiableSetException if the set does not support modification. */ void clear (); ! /** ! * Checks if this attributes set contains an attribute with the given * category. ! * * @param category the category to test for. * @return true if an attribute of the category is contained * in the set, false otherwise. */ boolean containsKey (Class category); ! /** * Checks if this attribute set contains the given attribute. ! * * @param attribute the attribute to test for. * @return true if the attribute is contained in the set, * false otherwise. */ boolean containsValue (Attribute attribute); ! /** * Tests this set for equality with the given object. true is * returned, if the given object is also of type AttributeSet * and the contained attributes are the same as in this set. ! * * @param obj the Object to test. * @return true if equal, false otherwise. */ boolean equals (Object obj); ! /** * Returns the attribute object contained in this set for the given attribute ! * category. ! * ! * @param category the category of the attribute. A Class ! * instance of a class implementing the Attribute interface. ! * @return The attribute for this category or null if no ! * attribute is contained for the given category. * @throws NullPointerException if category is null. ! * @throws ClassCastException if category is not implementing * Attribute. */ Attribute get (Class category); ! /** * Returns the hashcode value. The hashcode value is the sum of all hashcodes * of the attributes contained in this set. ! * * @return The hashcode for this attribute set. */ int hashCode (); ! /** * Checks if the attribute set is empty. * --- 86,158 ---- /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); ! /** * Removes all attributes from this attribute set. ! * * @throws UnmodifiableSetException if the set does not support modification. */ void clear (); ! /** ! * Checks if this attributes set contains an attribute with the given * category. ! * * @param category the category to test for. * @return true if an attribute of the category is contained * in the set, false otherwise. */ boolean containsKey (Class category); ! /** * Checks if this attribute set contains the given attribute. ! * * @param attribute the attribute to test for. * @return true if the attribute is contained in the set, * false otherwise. */ boolean containsValue (Attribute attribute); ! /** * Tests this set for equality with the given object. true is * returned, if the given object is also of type AttributeSet * and the contained attributes are the same as in this set. ! * * @param obj the Object to test. * @return true if equal, false otherwise. */ boolean equals (Object obj); ! /** * Returns the attribute object contained in this set for the given attribute ! * category. ! * ! * @param category the category of the attribute. A Class ! * instance of a class implementing the Attribute interface. ! * @return The attribute for this category or null if no ! * attribute is contained for the given category. * @throws NullPointerException if category is null. ! * @throws ClassCastException if category is not implementing * Attribute. */ Attribute get (Class category); ! /** * Returns the hashcode value. The hashcode value is the sum of all hashcodes * of the attributes contained in this set. ! * * @return The hashcode for this attribute set. */ int hashCode (); ! /** * Checks if the attribute set is empty. * *************** public interface AttributeSet *** 163,192 **** /** * Removes the given attribute from the set. If the given attribute is null * nothing is done and false is returned. ! * ! * @param attribute the attribute to remove. ! * @return true if removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ boolean remove (Attribute attribute); ! /** * Removes the attribute entry of the given category from the set. If the given * category is null nothing is done and false is returned. ! * * @param category the category of the entry to be removed. ! * @return true if an attribute is removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ boolean remove (Class category); ! /** * Returns the number of elements in this attribute set. * * @return The number of elements. */ int size (); ! /** * Returns the content of the attribute set as an array * --- 163,192 ---- /** * Removes the given attribute from the set. If the given attribute is null * nothing is done and false is returned. ! * ! * @param attribute the attribute to remove. ! * @return true if removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ boolean remove (Attribute attribute); ! /** * Removes the attribute entry of the given category from the set. If the given * category is null nothing is done and false is returned. ! * * @param category the category of the entry to be removed. ! * @return true if an attribute is removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ boolean remove (Class category); ! /** * Returns the number of elements in this attribute set. * * @return The number of elements. */ int size (); ! /** * Returns the content of the attribute set as an array * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/AttributeSetUtilities.java gcc-4.6.0/libjava/classpath/javax/print/attribute/AttributeSetUtilities.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/AttributeSetUtilities.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/AttributeSetUtilities.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AttributeSetUtilities.java -- Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AttributeSetUtilities.java -- Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.io.Serializable; *** 50,56 **** * if state changing methods are invoked. *

                                *

                                ! * Methods for getting a synchronized view of an attribute set are also * available. This view provides synchronized (thread safe) access to the * underlying wrapped attribute set. *

                                --- 50,56 ---- * if state changing methods are invoked. *

                                *

                                ! * Methods for getting a synchronized view of an attribute set are also * available. This view provides synchronized (thread safe) access to the * underlying wrapped attribute set. *

                                *************** import java.io.Serializable; *** 60,76 **** *
                                  *
                                • the given object is an attribute of the given interface.
                                • *
                                • the category of given attribute is equals to a given category.
                                • ! *
                                • the given object is a Class that implements the given * interface name.
                                • *
                                ! * */ public final class AttributeSetUtilities { /** * This class isn't intended to be instantiated. */ ! private AttributeSetUtilities() { // only static methods } --- 60,76 ---- *
                                  *
                                • the given object is an attribute of the given interface.
                                • *
                                • the category of given attribute is equals to a given category.
                                • ! *
                                • the given object is a Class that implements the given * interface name.
                                • *
                                ! * */ public final class AttributeSetUtilities { /** * This class isn't intended to be instantiated. */ ! private AttributeSetUtilities() { // only static methods } *************** public final class AttributeSetUtilities *** 97,103 **** { throw new UnmodifiableSetException(); } ! public void clear() { throw new UnmodifiableSetException(); --- 97,103 ---- { throw new UnmodifiableSetException(); } ! public void clear() { throw new UnmodifiableSetException(); *************** public final class AttributeSetUtilities *** 117,123 **** { return attrset.equals(obj); } ! public Attribute get(Class interfaceName) { return attrset.get(interfaceName); --- 117,123 ---- { return attrset.equals(obj); } ! public Attribute get(Class interfaceName) { return attrset.get(interfaceName); *************** public final class AttributeSetUtilities *** 127,133 **** { return attrset.hashCode(); } ! public boolean isEmpty() { return attrset.isEmpty(); --- 127,133 ---- { return attrset.hashCode(); } ! public boolean isEmpty() { return attrset.isEmpty(); *************** public final class AttributeSetUtilities *** 216,222 **** { return attrset.addAll(attributes); } ! public synchronized void clear() { attrset.clear(); --- 216,222 ---- { return attrset.addAll(attributes); } ! public synchronized void clear() { attrset.clear(); *************** public final class AttributeSetUtilities *** 236,242 **** { return attrset.equals(obj); } ! public synchronized Attribute get(Class interfaceName) { return attrset.get(interfaceName); --- 236,242 ---- { return attrset.equals(obj); } ! public synchronized Attribute get(Class interfaceName) { return attrset.get(interfaceName); *************** public final class AttributeSetUtilities *** 246,252 **** { return attrset.hashCode(); } ! public synchronized boolean isEmpty() { return attrset.isEmpty(); --- 246,252 ---- { return attrset.hashCode(); } ! public synchronized boolean isEmpty() { return attrset.isEmpty(); *************** public final class AttributeSetUtilities *** 334,340 **** { return new SynchronizedDocAttributeSet(attributeSet); } ! /** * Returns a synchronized view of the given attribute set. * --- 334,340 ---- { return new SynchronizedDocAttributeSet(attributeSet); } ! /** * Returns a synchronized view of the given attribute set. * *************** public final class AttributeSetUtilities *** 345,351 **** { return new SynchronizedPrintJobAttributeSet(attributeSet); } ! /** * Returns a synchronized view of the given attribute set. * --- 345,351 ---- { return new SynchronizedPrintJobAttributeSet(attributeSet); } ! /** * Returns a synchronized view of the given attribute set. * *************** public final class AttributeSetUtilities *** 356,362 **** { return new SynchronizedPrintRequestAttributeSet(attributeSet); } ! /** * Returns a synchronized view of the given attribute set. * --- 356,362 ---- { return new SynchronizedPrintRequestAttributeSet(attributeSet); } ! /** * Returns a synchronized view of the given attribute set. * *************** public final class AttributeSetUtilities *** 367,373 **** { return new SynchronizedPrintServiceAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * --- 367,373 ---- { return new SynchronizedPrintServiceAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * *************** public final class AttributeSetUtilities *** 378,384 **** { return new UnmodifiableAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * --- 378,384 ---- { return new UnmodifiableAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * *************** public final class AttributeSetUtilities *** 389,395 **** { return new UnmodifiableDocAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * --- 389,395 ---- { return new UnmodifiableDocAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * *************** public final class AttributeSetUtilities *** 400,406 **** { return new UnmodifiablePrintJobAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * --- 400,406 ---- { return new UnmodifiablePrintJobAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * *************** public final class AttributeSetUtilities *** 411,417 **** { return new UnmodifiablePrintRequestAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * --- 411,417 ---- { return new UnmodifiablePrintRequestAttributeSet(attributeSet); } ! /** * Returns an unmodifiable view of the given attribute set. * *************** public final class AttributeSetUtilities *** 426,432 **** /** * Verifies that the given object is a Class that * implements the given interface name and returns it casted. ! * * @param object the object to test. * @param interfaceName the Class to verify against. * @return object casted to Class --- 426,432 ---- /** * Verifies that the given object is a Class that * implements the given interface name and returns it casted. ! * * @param object the object to test. * @param interfaceName the Class to verify against. * @return object casted to Class *************** public final class AttributeSetUtilities *** 448,458 **** throw new ClassCastException(); } ! /** * Verifies that the given object is an attribute of the given interface. * and returns it casted to the interface type. ! * * @param object the object to test. * @param interfaceName the Class to verify against. * @return the object casted to Attribute --- 448,458 ---- throw new ClassCastException(); } ! /** * Verifies that the given object is an attribute of the given interface. * and returns it casted to the interface type. ! * * @param object the object to test. * @param interfaceName the Class to verify against. * @return the object casted to Attribute *************** public final class AttributeSetUtilities *** 475,481 **** /** * Verifies that the category of attribute is equals to the given category * class. ! * * @param category the category to test. * @param attribute the attribute to verify. * --- 475,481 ---- /** * Verifies that the category of attribute is equals to the given category * class. ! * * @param category the category to test. * @param attribute the attribute to verify. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/DateTimeSyntax.java gcc-4.6.0/libjava/classpath/javax/print/attribute/DateTimeSyntax.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/DateTimeSyntax.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/DateTimeSyntax.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DateTimeSyntax.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DateTimeSyntax.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.io.Serializable; *** 41,57 **** import java.util.Date; /** ! * DateTimeSyntax is the abstract base class of all attribute * classes having a date and a time as value. ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class DateTimeSyntax implements Cloneable, Serializable { private static final long serialVersionUID = -1400819079791208582L; ! private Date value; ! /** * Creates a DateTimeSyntax with a given value. * --- 41,57 ---- import java.util.Date; /** ! * DateTimeSyntax is the abstract base class of all attribute * classes having a date and a time as value. ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class DateTimeSyntax implements Cloneable, Serializable { private static final long serialVersionUID = -1400819079791208582L; ! private Date value; ! /** * Creates a DateTimeSyntax with a given value. * *************** public abstract class DateTimeSyntax imp *** 79,88 **** /** * Tests if the given object is equal to this one. ! * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 79,88 ---- /** * Tests if the given object is equal to this one. ! * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) *************** public abstract class DateTimeSyntax imp *** 102,115 **** { return value.hashCode(); } ! /** * Returns the string representation for this object. * * @return The string representation. */ ! public String toString() { ! return value.toString(); } } --- 102,115 ---- { return value.hashCode(); } ! /** * Returns the string representation for this object. * * @return The string representation. */ ! public String toString() { ! return value.toString(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/DocAttribute.java gcc-4.6.0/libjava/classpath/javax/print/attribute/DocAttribute.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/DocAttribute.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/DocAttribute.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DocAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DocAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 38,57 **** package javax.print.attribute; /** ! * Marker interface for all attribute classes describing attributes of ! * a {@link javax.print.Doc} object. *

                                ! * Instances of implementing attribute classes may be collected in a ! * {@link javax.print.attribute.DocAttributeSet}. *

                                * Attributes attached to a {@link javax.print.Doc} instance specify how the ! * data should be printed. ! * For example {@link javax.print.attribute.standard.Chromaticity} can be * used to specify that a doc should be printed in color or monochrome. *

                                ! * * @see javax.print.attribute.DocAttributeSet ! * * @author Michael Koch (konqueror@gmx.de) */ public interface DocAttribute extends Attribute --- 38,57 ---- package javax.print.attribute; /** ! * Marker interface for all attribute classes describing attributes of ! * a {@link javax.print.Doc} object. *

                                ! * Instances of implementing attribute classes may be collected in a ! * {@link javax.print.attribute.DocAttributeSet}. *

                                * Attributes attached to a {@link javax.print.Doc} instance specify how the ! * data should be printed. ! * For example {@link javax.print.attribute.standard.Chromaticity} can be * used to specify that a doc should be printed in color or monochrome. *

                                ! * * @see javax.print.attribute.DocAttributeSet ! * * @author Michael Koch (konqueror@gmx.de) */ public interface DocAttribute extends Attribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/DocAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/DocAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/DocAttributeSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/DocAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DocAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DocAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 39,66 **** /** * DocAttributeSet specifies an attribute set which only ! * allows printing attributes of type * {@link javax.print.attribute.DocAttribute}. *

                                * The methods {@link #add(Attribute)} and {@link #addAll(AttributeSet)} are ! * respecified in this interface to indicate that only * DocAttribute instances are allowed in this set. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface DocAttributeSet extends AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if attribute is not of type * DocAttribute. * @throws NullPointerException if the attribute is null. * @throws UnmodifiableSetException if the set does not support modification. --- 39,66 ---- /** * DocAttributeSet specifies an attribute set which only ! * allows printing attributes of type * {@link javax.print.attribute.DocAttribute}. *

                                * The methods {@link #add(Attribute)} and {@link #addAll(AttributeSet)} are ! * respecified in this interface to indicate that only * DocAttribute instances are allowed in this set. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface DocAttributeSet extends AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if attribute is not of type * DocAttribute. * @throws NullPointerException if the attribute is null. * @throws UnmodifiableSetException if the set does not support modification. *************** public interface DocAttributeSet extends *** 69,81 **** /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if one of the attributes is not of type * DocAttribute. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); --- 69,81 ---- /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if one of the attributes is not of type * DocAttribute. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/EnumSyntax.java gcc-4.6.0/libjava/classpath/javax/print/attribute/EnumSyntax.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/EnumSyntax.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/EnumSyntax.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* EnumSyntax.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* EnumSyntax.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.io.Serializable; *** 43,58 **** /** * EnumSyntax is the abstract base class of all enumeration ! * classes in the Java Print Service API. *

                                ! * Every enumeration class which extends from EnumSyntax provides several * enumeration objects as singletons of its class. *

                                *

                                * Notes for implementing subclasses: *

                                  *
                                • ! * The values of all enumeration singelton instances have to be in a * sequence which may start at any value. See: {@link #getOffset()} *
                                • *
                                • --- 43,58 ---- /** * EnumSyntax is the abstract base class of all enumeration ! * classes in the Java Print Service API. *

                                  ! * Every enumeration class which extends from EnumSyntax provides several * enumeration objects as singletons of its class. *

                                  *

                                  * Notes for implementing subclasses: *

                                    *
                                  • ! * The values of all enumeration singelton instances have to be in a * sequence which may start at any value. See: {@link #getOffset()} *
                                  • *
                                  • *************** import java.io.Serializable; *** 61,110 **** *
                                  • *
                                  *

                                  ! * Example: ! *
                                   
                                     * public class PrinterState extends EnumSyntax
                                     * {
                                     *   public static final PrinterState IDLE = new PrinterState(1);
                                     *   public static final PrinterState PROCESSING = new PrinterState(2);
                                     *   public static final PrinterState STOPPED = new PrinterState(3);
                                  !  * 
                                     *   protected PrinterState(int value)
                                     *   {
                                     *     super(value);
                                     *   }
                                  !  * 
                                     *   // Overridden because values start not at zero !
                                     *   protected int getOffset()
                                     *   {
                                     *     return 1;
                                     *   }
                                  !  * 
                                  !  *   private static final String[] stringTable = { "idle", "processing", 
                                     *                                                 "stopped" };
                                  !  * 
                                     *   protected String[] getStringTable()
                                     *   {
                                     *     return stringTable;
                                     *   }
                                  !  * 
                                  !  *   private static final PrinterState[] enumValueTable = { IDLE, 
                                     *                                             PROCESSING, STOPPED};
                                  !  * 
                                     *   protected EnumSyntax[] getEnumValueTable()
                                     *   {
                                     *     return enumValueTable;
                                     *   }
                                     * }
                                     * 
                                  ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ public abstract class EnumSyntax implements Cloneable, Serializable { private static final long serialVersionUID = -2739521845085831642L; ! private int value; /** --- 61,110 ---- *
                                • *
                                *

                                ! * Example: ! *
                                   * public class PrinterState extends EnumSyntax
                                   * {
                                   *   public static final PrinterState IDLE = new PrinterState(1);
                                   *   public static final PrinterState PROCESSING = new PrinterState(2);
                                   *   public static final PrinterState STOPPED = new PrinterState(3);
                                !  *
                                   *   protected PrinterState(int value)
                                   *   {
                                   *     super(value);
                                   *   }
                                !  *
                                   *   // Overridden because values start not at zero !
                                   *   protected int getOffset()
                                   *   {
                                   *     return 1;
                                   *   }
                                !  *
                                !  *   private static final String[] stringTable = { "idle", "processing",
                                   *                                                 "stopped" };
                                !  *
                                   *   protected String[] getStringTable()
                                   *   {
                                   *     return stringTable;
                                   *   }
                                !  *
                                !  *   private static final PrinterState[] enumValueTable = { IDLE,
                                   *                                             PROCESSING, STOPPED};
                                !  *
                                   *   protected EnumSyntax[] getEnumValueTable()
                                   *   {
                                   *     return enumValueTable;
                                   *   }
                                   * }
                                   * 
                                ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ public abstract class EnumSyntax implements Cloneable, Serializable { private static final long serialVersionUID = -2739521845085831642L; ! private int value; /** *************** public abstract class EnumSyntax impleme *** 146,152 **** } /** ! * Returns the hashcode for this object. * The hashcode is the value of this enumeration object. * * @return The hashcode. --- 146,152 ---- } /** ! * Returns the hashcode for this object. * The hashcode is the value of this enumeration object. * * @return The hashcode. *************** public abstract class EnumSyntax impleme *** 173,179 **** && index >= 0 && index < table.length) return table[index]; ! return "" + value; } --- 173,179 ---- && index >= 0 && index < table.length) return table[index]; ! return "" + value; } *************** public abstract class EnumSyntax impleme *** 193,204 **** /** * Needed for singelton semantics during deserialisation. ! * * Subclasses must not override this class. Subclasses have to override ! * getEnumValueTable() and should override * getStringTable() for correct serialization. ! * ! * @return The Object at index value - getOffset() * in getEnumValueTable. * @throws ObjectStreamException if getEnumValueTable() returns null. */ --- 193,204 ---- /** * Needed for singelton semantics during deserialisation. ! * * Subclasses must not override this class. Subclasses have to override ! * getEnumValueTable() and should override * getStringTable() for correct serialization. ! * ! * @return The Object at index value - getOffset() * in getEnumValueTable. * @throws ObjectStreamException if getEnumValueTable() returns null. */ *************** public abstract class EnumSyntax impleme *** 227,236 **** } /** ! * Returns the lowest used value by the enumerations of this class. ! * * The default implementation returns 0. This is enough if enumerations ! * start with a zero value. Otherwise subclasses need to override this * method for serialization and return the lowest value they use. * . * @return The lowest used value used. --- 227,236 ---- } /** ! * Returns the lowest used value by the enumerations of this class. ! * * The default implementation returns 0. This is enough if enumerations ! * start with a zero value. Otherwise subclasses need to override this * method for serialization and return the lowest value they use. * . * @return The lowest used value used. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/HashAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/HashAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/HashAttributeSet.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/HashAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HashAttributeSet.java -- Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* HashAttributeSet.java -- Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Iterator; *** 51,57 **** public class HashAttributeSet implements AttributeSet, Serializable { private static final long serialVersionUID = 5311560590283707917L; ! private Class myInterface; private transient HashMap attributeMap = new HashMap(); --- 51,57 ---- public class HashAttributeSet implements AttributeSet, Serializable { private static final long serialVersionUID = 5311560590283707917L; ! private Class myInterface; private transient HashMap attributeMap = new HashMap(); *************** public class HashAttributeSet implements *** 95,101 **** * Creates a HashAttributeSet object with attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. */ public HashAttributeSet(AttributeSet attributes) --- 95,101 ---- * Creates a HashAttributeSet object with attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. */ public HashAttributeSet(AttributeSet attributes) *************** public class HashAttributeSet implements *** 114,127 **** { if (interfaceName == null) throw new NullPointerException("interfaceName may not be null"); ! myInterface = interfaceName; } ! /** * Creates a HashAttributeSet object with the given * attribute in it. ! * * @param attribute the attribute to put into the set. * @param interfaceName the interface that all members must implement. * --- 114,127 ---- { if (interfaceName == null) throw new NullPointerException("interfaceName may not be null"); ! myInterface = interfaceName; } ! /** * Creates a HashAttributeSet object with the given * attribute in it. ! * * @param attribute the attribute to put into the set. * @param interfaceName the interface that all members must implement. * *************** public class HashAttributeSet implements *** 132,141 **** protected HashAttributeSet(Attribute attribute, Class interfaceName) { this(interfaceName); ! if (attribute == null) throw new NullPointerException(); ! addInternal(attribute, interfaceName); } --- 132,141 ---- protected HashAttributeSet(Attribute attribute, Class interfaceName) { this(interfaceName); ! if (attribute == null) throw new NullPointerException(); ! addInternal(attribute, interfaceName); } *************** public class HashAttributeSet implements *** 154,160 **** protected HashAttributeSet(Attribute[] attributes, Class interfaceName) { this(interfaceName); ! if (attributes != null) { for (int index = 0; index < attributes.length; index++) --- 154,160 ---- protected HashAttributeSet(Attribute[] attributes, Class interfaceName) { this(interfaceName); ! if (attributes != null) { for (int index = 0; index < attributes.length; index++) *************** public class HashAttributeSet implements *** 166,172 **** * Creates a HashAttributeSet object with attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @param interfaceName the interface that all members must implement. * --- 166,172 ---- * Creates a HashAttributeSet object with attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @param interfaceName the interface that all members must implement. * *************** public class HashAttributeSet implements *** 176,193 **** protected HashAttributeSet(AttributeSet attributes, Class interfaceName) { this(interfaceName); ! if (attributes != null) addAllInternal(attributes, interfaceName); } /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute to the set. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. * @throws NullPointerException if the attribute is null. --- 176,193 ---- protected HashAttributeSet(AttributeSet attributes, Class interfaceName) { this(interfaceName); ! if (attributes != null) addAllInternal(attributes, interfaceName); } /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute to the set. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. * @throws NullPointerException if the attribute is null. *************** public class HashAttributeSet implements *** 214,224 **** /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ public boolean addAll(AttributeSet attributes) --- 214,224 ---- /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ public boolean addAll(AttributeSet attributes) *************** public class HashAttributeSet implements *** 240,246 **** /** * Removes all attributes from this attribute set. ! * * @throws UnmodifiableSetException if the set does not support modification. */ public void clear() --- 240,246 ---- /** * Removes all attributes from this attribute set. ! * * @throws UnmodifiableSetException if the set does not support modification. */ public void clear() *************** public class HashAttributeSet implements *** 249,257 **** } /** ! * Checks if this attributes set contains an attribute with the given * category. ! * * @param category the category to test for. * @return true if an attribute of the category is contained * in the set, false otherwise. --- 249,257 ---- } /** ! * Checks if this attributes set contains an attribute with the given * category. ! * * @param category the category to test for. * @return true if an attribute of the category is contained * in the set, false otherwise. *************** public class HashAttributeSet implements *** 263,269 **** /** * Checks if this attribute set contains the given attribute. ! * * @param attribute the attribute to test for. * @return true if the attribute is contained in the set, * false otherwise. --- 263,269 ---- /** * Checks if this attribute set contains the given attribute. ! * * @param attribute the attribute to test for. * @return true if the attribute is contained in the set, * false otherwise. *************** public class HashAttributeSet implements *** 277,283 **** * Tests this set for equality with the given object. true is * returned, if the given object is also of type AttributeSet * and the contained attributes are the same as in this set. ! * * @param obj the Object to test. * @return true if equal, false otherwise. */ --- 277,283 ---- * Tests this set for equality with the given object. true is * returned, if the given object is also of type AttributeSet * and the contained attributes are the same as in this set. ! * * @param obj the Object to test. * @return true if equal, false otherwise. */ *************** public class HashAttributeSet implements *** 291,318 **** /** * Returns the attribute object contained in this set for the given attribute ! * category. ! * ! * @param category the category of the attribute. A Class ! * instance of a class implementing the Attribute interface. ! * @return The attribute for this category or null if no ! * attribute is contained for the given category. * @throws NullPointerException if category is null. ! * @throws ClassCastException if category is not implementing * Attribute. */ public Attribute get(Class category) { if (category == null) throw new NullPointerException("category may not be null"); ! return (Attribute) attributeMap.get(category); } ! /** * Returns the hashcode value. The hashcode value is the sum of all hashcodes * of the attributes contained in this set. ! * * @return The hashcode for this attribute set. */ public int hashCode() --- 291,318 ---- /** * Returns the attribute object contained in this set for the given attribute ! * category. ! * ! * @param category the category of the attribute. A Class ! * instance of a class implementing the Attribute interface. ! * @return The attribute for this category or null if no ! * attribute is contained for the given category. * @throws NullPointerException if category is null. ! * @throws ClassCastException if category is not implementing * Attribute. */ public Attribute get(Class category) { if (category == null) throw new NullPointerException("category may not be null"); ! return (Attribute) attributeMap.get(category); } ! /** * Returns the hashcode value. The hashcode value is the sum of all hashcodes * of the attributes contained in this set. ! * * @return The hashcode for this attribute set. */ public int hashCode() *************** public class HashAttributeSet implements *** 321,327 **** Iterator it = attributeMap.values().iterator(); while (it.hasNext()) hashcode = hashcode + it.next().hashCode(); ! return hashcode; } --- 321,327 ---- Iterator it = attributeMap.values().iterator(); while (it.hasNext()) hashcode = hashcode + it.next().hashCode(); ! return hashcode; } *************** public class HashAttributeSet implements *** 338,346 **** /** * Removes the given attribute from the set. If the given attribute is null * nothing is done and false is returned. ! * ! * @param attribute the attribute to remove. ! * @return true if removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ public boolean remove(Attribute attribute) --- 338,346 ---- /** * Removes the given attribute from the set. If the given attribute is null * nothing is done and false is returned. ! * ! * @param attribute the attribute to remove. ! * @return true if removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ public boolean remove(Attribute attribute) *************** public class HashAttributeSet implements *** 354,362 **** /** * Removes the attribute entry of the given category from the set. If the given * category is null nothing is done and false is returned. ! * * @param category the category of the entry to be removed. ! * @return true if an attribute is removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ public boolean remove(Class category) --- 354,362 ---- /** * Removes the attribute entry of the given category from the set. If the given * category is null nothing is done and false is returned. ! * * @param category the category of the entry to be removed. ! * @return true if an attribute is removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ public boolean remove(Class category) *************** public class HashAttributeSet implements *** 393,402 **** array[index] = (Attribute) it.next(); index++; } ! return array; } ! // Implemented as specified in serialized form private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException --- 393,402 ---- array[index] = (Attribute) it.next(); index++; } ! return array; } ! // Implemented as specified in serialized form private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException *************** public class HashAttributeSet implements *** 407,419 **** for (int i=0; i < size; i++) add((Attribute) s.readObject()); } ! private void writeObject(ObjectOutputStream s) throws IOException { s.writeObject(myInterface); s.writeInt(size()); Iterator it = attributeMap.values().iterator(); while (it.hasNext()) ! s.writeObject(it.next()); } } --- 407,419 ---- for (int i=0; i < size; i++) add((Attribute) s.readObject()); } ! private void writeObject(ObjectOutputStream s) throws IOException { s.writeObject(myInterface); s.writeInt(size()); Iterator it = attributeMap.values().iterator(); while (it.hasNext()) ! s.writeObject(it.next()); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/HashDocAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/HashDocAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/HashDocAttributeSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/HashDocAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HashDocAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* HashDocAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class HashDocAttributeSet extends *** 47,53 **** implements DocAttributeSet, Serializable { private static final long serialVersionUID = -1128534486061432528L; ! /** * Creates an empty HashDocAttributeSet object. */ --- 47,53 ---- implements DocAttributeSet, Serializable { private static final long serialVersionUID = -1128534486061432528L; ! /** * Creates an empty HashDocAttributeSet object. */ *************** public class HashDocAttributeSet extends *** 88,94 **** * Creates a HashDocAttributeSet object with the attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @exception ClassCastException if any element of attributes is not * an instance of DocAttribute --- 88,94 ---- * Creates a HashDocAttributeSet object with the attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @exception ClassCastException if any element of attributes is not * an instance of DocAttribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/HashPrintJobAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/HashPrintJobAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/HashPrintJobAttributeSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/HashPrintJobAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HashPrintJobAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* HashPrintJobAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class HashPrintJobAttributeSet ex *** 47,53 **** implements Serializable, PrintJobAttributeSet { private static final long serialVersionUID = -4204473656070350348L; ! /** * Creates an empty HashPrintJobAttributeSet object. */ --- 47,53 ---- implements Serializable, PrintJobAttributeSet { private static final long serialVersionUID = -4204473656070350348L; ! /** * Creates an empty HashPrintJobAttributeSet object. */ *************** public class HashPrintJobAttributeSet ex *** 55,61 **** { super(PrintJobAttribute.class); } ! /** * Creates a HashPrintJobAttributeSet object with the given * attribute in it. --- 55,61 ---- { super(PrintJobAttribute.class); } ! /** * Creates a HashPrintJobAttributeSet object with the given * attribute in it. *************** public class HashPrintJobAttributeSet ex *** 68,74 **** { super(attribute, PrintJobAttribute.class); } ! /** * Creates a HashPrintJobAttributeSet object with the given * attributes in it. --- 68,74 ---- { super(attribute, PrintJobAttribute.class); } ! /** * Creates a HashPrintJobAttributeSet object with the given * attributes in it. *************** public class HashPrintJobAttributeSet ex *** 83,94 **** { super(attributes, PrintJobAttribute.class); } ! /** * Creates a HashPrintJobAttributeSet object with the attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @exception ClassCastException if any element of attributes is not * an instance of PrintJobAttribute --- 83,94 ---- { super(attributes, PrintJobAttribute.class); } ! /** * Creates a HashPrintJobAttributeSet object with the attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @exception ClassCastException if any element of attributes is not * an instance of PrintJobAttribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/HashPrintRequestAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/HashPrintRequestAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/HashPrintRequestAttributeSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/HashPrintRequestAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HashPrintRequestAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* HashPrintRequestAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class HashPrintRequestAttributeSe *** 47,53 **** implements Serializable, PrintRequestAttributeSet { private static final long serialVersionUID = 2364756266107751933L; ! /** * Creates an empty HashPrintRequestAttributeSet object. */ --- 47,53 ---- implements Serializable, PrintRequestAttributeSet { private static final long serialVersionUID = 2364756266107751933L; ! /** * Creates an empty HashPrintRequestAttributeSet object. */ *************** public class HashPrintRequestAttributeSe *** 55,61 **** { super(PrintRequestAttribute.class); } ! /** * Creates a HashPrintRequestAttributeSet object with the given * attribute in it. --- 55,61 ---- { super(PrintRequestAttribute.class); } ! /** * Creates a HashPrintRequestAttributeSet object with the given * attribute in it. *************** public class HashPrintRequestAttributeSe *** 68,74 **** { super(attribute, PrintRequestAttribute.class); } ! /** * Creates a HashPrintRequestAttributeSet object with the given * attributes in it. --- 68,74 ---- { super(attribute, PrintRequestAttribute.class); } ! /** * Creates a HashPrintRequestAttributeSet object with the given * attributes in it. *************** public class HashPrintRequestAttributeSe *** 83,94 **** { super(attributes, PrintRequestAttribute.class); } ! /** * Creates a HashPrintRequestAttributeSet object with the attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @exception ClassCastException if any element of attributes is not * an instance of PrintRequestAttribute --- 83,94 ---- { super(attributes, PrintRequestAttribute.class); } ! /** * Creates a HashPrintRequestAttributeSet object with the attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @exception ClassCastException if any element of attributes is not * an instance of PrintRequestAttribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/HashPrintServiceAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/HashPrintServiceAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/HashPrintServiceAttributeSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/HashPrintServiceAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* HashPrintServiceAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* HashPrintServiceAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class HashPrintServiceAttributeSe *** 47,53 **** implements Serializable, PrintServiceAttributeSet { private static final long serialVersionUID = 6642904616179203070L; ! /** * Creates an empty HashPrintServiceAttributeSet object. */ --- 47,53 ---- implements Serializable, PrintServiceAttributeSet { private static final long serialVersionUID = 6642904616179203070L; ! /** * Creates an empty HashPrintServiceAttributeSet object. */ *************** public class HashPrintServiceAttributeSe *** 55,61 **** { super(PrintServiceAttribute.class); } ! /** * Creates a HashPrintServiceAttributeSet object with the given * attribute in it. --- 55,61 ---- { super(PrintServiceAttribute.class); } ! /** * Creates a HashPrintServiceAttributeSet object with the given * attribute in it. *************** public class HashPrintServiceAttributeSe *** 68,74 **** { super(attribute, PrintServiceAttribute.class); } ! /** * Creates a HashPrintServiceAttributeSet object with the given * attributes in it. --- 68,74 ---- { super(attribute, PrintServiceAttribute.class); } ! /** * Creates a HashPrintServiceAttributeSet object with the given * attributes in it. *************** public class HashPrintServiceAttributeSe *** 83,94 **** { super(attributes, PrintServiceAttribute.class); } ! /** * Creates a HashPrintServiceAttributeSet object with the attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @exception ClassCastException if any element of attributes is not * an instance of PrintServiceAttribute --- 83,94 ---- { super(attributes, PrintServiceAttribute.class); } ! /** * Creates a HashPrintServiceAttributeSet object with the attributes * of the given attributes set in it. * ! * @param attributes the attributes set to put into the set. If * null an empty set is created. * @exception ClassCastException if any element of attributes is not * an instance of PrintServiceAttribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/IntegerSyntax.java gcc-4.6.0/libjava/classpath/javax/print/attribute/IntegerSyntax.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/IntegerSyntax.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/IntegerSyntax.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* IntegerSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* IntegerSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 40,48 **** import java.io.Serializable; /** ! * IntegerSyntax is the abstract base class of all attribute * classes having an integer as value. ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class IntegerSyntax implements Cloneable, Serializable --- 40,48 ---- import java.io.Serializable; /** ! * IntegerSyntax is the abstract base class of all attribute * classes having an integer as value. ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class IntegerSyntax implements Cloneable, Serializable *************** public abstract class IntegerSyntax impl *** 94,100 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 94,100 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintJobAttribute.java gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintJobAttribute.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintJobAttribute.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintJobAttribute.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintJobAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintJobAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 39,57 **** /** * Marker interface for all attribute classes describing attributes or the ! * status of a ({@link javax.print.DocPrintJob} object. *

                                ! * Instances of implementing attribute classes may be collected in a * {@link javax.print.attribute.PrintJobAttributeSet}. *

                                * A print service uses attributes of this type to inform about the status ! * of a print job. ! * For example {@link javax.print.attribute.standard.DateTimeAtProcessing} ! * is used to report at which date and time a job has started processing. *

                                ! * * @see javax.print.attribute.PrintJobAttributeSet ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintJobAttribute extends Attribute --- 39,57 ---- /** * Marker interface for all attribute classes describing attributes or the ! * status of a ({@link javax.print.DocPrintJob} object. *

                                ! * Instances of implementing attribute classes may be collected in a * {@link javax.print.attribute.PrintJobAttributeSet}. *

                                * A print service uses attributes of this type to inform about the status ! * of a print job. ! * For example {@link javax.print.attribute.standard.DateTimeAtProcessing} ! * is used to report at which date and time a job has started processing. *

                                ! * * @see javax.print.attribute.PrintJobAttributeSet ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintJobAttribute extends Attribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintJobAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintJobAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintJobAttributeSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintJobAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintJobAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintJobAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 39,66 **** /** * PrintJobAttributeSet specifies an attribute set which only ! * allows printing attributes of type * {@link javax.print.attribute.PrintJobAttribute}. *

                                * The methods {@link #add(Attribute)} and {@link #addAll(AttributeSet)} are ! * respecified in this interface to indicate that only * PrintJobAttribute instances are allowed in this set. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintJobAttributeSet extends AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if attribute is not of type * PrintJobAttribute. * @throws NullPointerException if the attribute is null. * @throws UnmodifiableSetException if the set does not support modification. --- 39,66 ---- /** * PrintJobAttributeSet specifies an attribute set which only ! * allows printing attributes of type * {@link javax.print.attribute.PrintJobAttribute}. *

                                * The methods {@link #add(Attribute)} and {@link #addAll(AttributeSet)} are ! * respecified in this interface to indicate that only * PrintJobAttribute instances are allowed in this set. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintJobAttributeSet extends AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if attribute is not of type * PrintJobAttribute. * @throws NullPointerException if the attribute is null. * @throws UnmodifiableSetException if the set does not support modification. *************** public interface PrintJobAttributeSet ex *** 69,81 **** /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if one of the attributes is not of type * PrintJobAttribute. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); --- 69,81 ---- /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if one of the attributes is not of type * PrintJobAttribute. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintRequestAttribute.java gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintRequestAttribute.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintRequestAttribute.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintRequestAttribute.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintRequestAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintRequestAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 39,52 **** /** * Marker interface for all attribute classes which specify a requested ! * attribute of {@link javax.print.DocPrintJob} object. *

                                ! * Instances of implementing attribute classes may be collected in a * {@link javax.print.attribute.PrintRequestAttributeSet}. *

                                ! * * @see javax.print.attribute.PrintRequestAttributeSet ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintRequestAttribute extends Attribute --- 39,52 ---- /** * Marker interface for all attribute classes which specify a requested ! * attribute of {@link javax.print.DocPrintJob} object. *

                                ! * Instances of implementing attribute classes may be collected in a * {@link javax.print.attribute.PrintRequestAttributeSet}. *

                                ! * * @see javax.print.attribute.PrintRequestAttributeSet ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintRequestAttribute extends Attribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintRequestAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintRequestAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintRequestAttributeSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintRequestAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintRequestAttributeSet.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintRequestAttributeSet.java -- Copyright (C) 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 39,66 **** /** * PrintRequestAttributeSet specifies an attribute set which only ! * allows printing attributes of type * {@link javax.print.attribute.PrintRequestAttribute}. *

                                * The methods {@link #add(Attribute)} and {@link #addAll(AttributeSet)} are ! * respecified in this interface to indicate that only * PrintRequestAttribute instances are allowed in this set. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintRequestAttributeSet extends AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if attribute is not of type * PrintRequestAttribute. * @throws NullPointerException if the attribute is null. * @throws UnmodifiableSetException if the set does not support modification. --- 39,66 ---- /** * PrintRequestAttributeSet specifies an attribute set which only ! * allows printing attributes of type * {@link javax.print.attribute.PrintRequestAttribute}. *

                                * The methods {@link #add(Attribute)} and {@link #addAll(AttributeSet)} are ! * respecified in this interface to indicate that only * PrintRequestAttribute instances are allowed in this set. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintRequestAttributeSet extends AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if attribute is not of type * PrintRequestAttribute. * @throws NullPointerException if the attribute is null. * @throws UnmodifiableSetException if the set does not support modification. *************** public interface PrintRequestAttributeSe *** 69,81 **** /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if one of the attributes is not of type * PrintRequestAttribute. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); --- 69,81 ---- /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if one of the attributes is not of type * PrintRequestAttribute. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintServiceAttribute.java gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintServiceAttribute.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintServiceAttribute.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintServiceAttribute.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintServiceAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintServiceAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 39,57 **** /** * Marker interface for all attribute classes describing parameters ! * or the status of a {@link javax.print.PrintService}. *

                                ! * Instances of implementing attribute classes may be collected in a * {@link javax.print.attribute.PrintServiceAttributeSet}. *

                                * A print service uses attributes of this type to inform about the status ! * or the specific capabilities of itself. * For example {@link javax.print.attribute.standard.PagesPerMinute} is used ! * to specify the average printable pages per minute of the print service. *

                                ! * * @see javax.print.attribute.PrintServiceAttributeSet ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintServiceAttribute extends Attribute --- 39,57 ---- /** * Marker interface for all attribute classes describing parameters ! * or the status of a {@link javax.print.PrintService}. *

                                ! * Instances of implementing attribute classes may be collected in a * {@link javax.print.attribute.PrintServiceAttributeSet}. *

                                * A print service uses attributes of this type to inform about the status ! * or the specific capabilities of itself. * For example {@link javax.print.attribute.standard.PagesPerMinute} is used ! * to specify the average printable pages per minute of the print service. *

                                ! * * @see javax.print.attribute.PrintServiceAttributeSet ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintServiceAttribute extends Attribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintServiceAttributeSet.java gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintServiceAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/PrintServiceAttributeSet.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/PrintServiceAttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintServiceAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintServiceAttributeSet.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 39,66 **** /** * PrintServiceAttributeSet specifies an attribute set which only ! * allows printing attributes of type * {@link javax.print.attribute.PrintServiceAttribute}. *

                                * The methods {@link #add(Attribute)} and {@link #addAll(AttributeSet)} are ! * respecified in this interface to indicate that only * PrintServiceAttribute instances are allowed in this set. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintServiceAttributeSet extends AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if attribute is not of type * PrintServiceAttribute. * @throws NullPointerException if the attribute is null. * @throws UnmodifiableSetException if the set does not support modification. --- 39,66 ---- /** * PrintServiceAttributeSet specifies an attribute set which only ! * allows printing attributes of type * {@link javax.print.attribute.PrintServiceAttribute}. *

                                * The methods {@link #add(Attribute)} and {@link #addAll(AttributeSet)} are ! * respecified in this interface to indicate that only * PrintServiceAttribute instances are allowed in this set. *

                                ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintServiceAttributeSet extends AttributeSet { /** ! * Adds the specified attribute value to this attribute set * if it is not already present. ! * ! * This operation removes any existing attribute of the same category ! * before adding the given attribute. ! * * @param attribute the attribute to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if attribute is not of type * PrintServiceAttribute. * @throws NullPointerException if the attribute is null. * @throws UnmodifiableSetException if the set does not support modification. *************** public interface PrintServiceAttributeSe *** 69,81 **** /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if one of the attributes is not of type * PrintServiceAttribute. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); --- 69,81 ---- /** * Adds all of the elements in the specified set to this attribute set. ! * * @param attributes the set of attributes to add. * @return true if the set is changed, false otherwise. ! * @throws ClassCastException if one of the attributes is not of type * PrintServiceAttribute. * @throws UnmodifiableSetException if the set does not support modification. ! * * @see #add(Attribute) */ boolean addAll (AttributeSet attributes); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/ResolutionSyntax.java gcc-4.6.0/libjava/classpath/javax/print/attribute/ResolutionSyntax.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/ResolutionSyntax.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/ResolutionSyntax.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ResolutionSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ResolutionSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 40,50 **** import java.io.Serializable; /** ! * ResolutionSyntax is the abstract base class of all attribute * classes which provide a resolution as value (e.g. printer resolution). *

                                * A ResolutionSyntax instance consists of two integer values ! * describing the resolution in feed and cross feed direction. The units of * the given values is determined by two defined constants: *

                                  *
                                • DPCM - dots per centimeter
                                • --- 40,50 ---- import java.io.Serializable; /** ! * ResolutionSyntax is the abstract base class of all attribute * classes which provide a resolution as value (e.g. printer resolution). *

                                  * A ResolutionSyntax instance consists of two integer values ! * describing the resolution in feed and cross feed direction. The units of * the given values is determined by two defined constants: *

                                    *
                                  • DPCM - dots per centimeter
                                  • *************** import java.io.Serializable; *** 56,80 **** * one of the two constants defining the actual units of the given values. *

                                    *

                                    ! * There are different methods provided to return the resolution values in * either of the both units and to compare if a resolution is less than or * equal to a given other resolution attribute. *

                                    *

                                    * Internal storage:
                                    ! * The resolutions are stored internally as dots per 100 inches (dphi). The * values of the provided constants for dots per inch (value 100) and dots * per centimeter (value 254) are used as conversion factors to the internal * storage units. To get the internal dphi values a multiplication of a given ! * resolution value with its units constant value is needed. Retrieving the ! * resolution for specific units is done by dividing the internal stored ! * value through the units constant value. Clients are therefore able to * provide their own resolution units by supplying other conversion factors. * Subclasses of ResolutionSyntax have access to the internal ! * resolution values through the protected methods * {@link #getCrossFeedResolutionDphi()} and {@link #getFeedResolutionDphi()}. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class ResolutionSyntax --- 56,80 ---- * one of the two constants defining the actual units of the given values. *

                                    *

                                    ! * There are different methods provided to return the resolution values in * either of the both units and to compare if a resolution is less than or * equal to a given other resolution attribute. *

                                    *

                                    * Internal storage:
                                    ! * The resolutions are stored internally as dots per 100 inches (dphi). The * values of the provided constants for dots per inch (value 100) and dots * per centimeter (value 254) are used as conversion factors to the internal * storage units. To get the internal dphi values a multiplication of a given ! * resolution value with its units constant value is needed. Retrieving the ! * resolution for specific units is done by dividing the internal stored ! * value through the units constant value. Clients are therefore able to * provide their own resolution units by supplying other conversion factors. * Subclasses of ResolutionSyntax have access to the internal ! * resolution values through the protected methods * {@link #getCrossFeedResolutionDphi()} and {@link #getFeedResolutionDphi()}. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class ResolutionSyntax *************** public abstract class ResolutionSyntax *** 94,100 **** private int crossFeedResolution; private int feedResolution; ! /** * Creates a ResolutionSyntax object with the given arguments. * --- 94,100 ---- private int crossFeedResolution; private int feedResolution; ! /** * Creates a ResolutionSyntax object with the given arguments. * *************** public abstract class ResolutionSyntax *** 121,127 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 121,127 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) *************** public abstract class ResolutionSyntax *** 130,136 **** return false; ResolutionSyntax tmp = (ResolutionSyntax) obj; ! return (crossFeedResolution == tmp.getCrossFeedResolutionDphi() && feedResolution == tmp.getFeedResolutionDphi()); } --- 130,136 ---- return false; ResolutionSyntax tmp = (ResolutionSyntax) obj; ! return (crossFeedResolution == tmp.getCrossFeedResolutionDphi() && feedResolution == tmp.getFeedResolutionDphi()); } *************** public abstract class ResolutionSyntax *** 186,192 **** { return feedResolution; } ! /** * Returns the resolution as two field array. Index 0 is the cross feed * resolution, index 1 the feed resolution. --- 186,192 ---- { return feedResolution; } ! /** * Returns the resolution as two field array. Index 0 is the cross feed * resolution, index 1 the feed resolution. *************** public abstract class ResolutionSyntax *** 214,220 **** } /** ! * Checks if the given resolution attribute is a lower or equal * to this resolution object. * * @param other the resolution to check against --- 214,220 ---- } /** ! * Checks if the given resolution attribute is a lower or equal * to this resolution object. * * @param other the resolution to check against *************** public abstract class ResolutionSyntax *** 252,258 **** * for the cross feed and F for the feed direction resolution. * U denotes the units name if one is supplied. *

                                    ! * * @param units the units to use * @param unitsName the name of the units. If null * it is ommitted from the string representation. --- 252,258 ---- * for the cross feed and F for the feed direction resolution. * U denotes the units name if one is supplied. *

                                    ! * * @param units the units to use * @param unitsName the name of the units. If null * it is ommitted from the string representation. *************** public abstract class ResolutionSyntax *** 263,269 **** { if (unitsName == null) return getCrossFeedResolution(units) + "x" + getFeedResolution(units); ! return ("" + getCrossFeedResolution(units) + "x" + getFeedResolution(units) + " " + unitsName); --- 263,269 ---- { if (unitsName == null) return getCrossFeedResolution(units) + "x" + getFeedResolution(units); ! return ("" + getCrossFeedResolution(units) + "x" + getFeedResolution(units) + " " + unitsName); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/SetOfIntegerSyntax.java gcc-4.6.0/libjava/classpath/javax/print/attribute/SetOfIntegerSyntax.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/SetOfIntegerSyntax.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/SetOfIntegerSyntax.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SetOfIntegerSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SetOfIntegerSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Arrays; *** 45,58 **** import java.util.Comparator; /** ! * SetOfIntegerSyntax is the abstract base class of all attribute * classes which provide a set of non-negative integers as value (e.g. the * page ranges to print) represented as single values or ranges of values. *

                                    * A SetOfIntegerSyntax instance consists of an integer array of * ranges. Ranges may have the same lower and upper bound representing a single ! * integer value. Ranges with a lower bound greater than the upper bound are ! * null ranges and discarded. Ranges may overlap in their values. In no case * negative integers are allowed. *

                                    *

                                    --- 45,58 ---- import java.util.Comparator; /** ! * SetOfIntegerSyntax is the abstract base class of all attribute * classes which provide a set of non-negative integers as value (e.g. the * page ranges to print) represented as single values or ranges of values. *

                                    * A SetOfIntegerSyntax instance consists of an integer array of * ranges. Ranges may have the same lower and upper bound representing a single ! * integer value. Ranges with a lower bound greater than the upper bound are ! * null ranges and discarded. Ranges may overlap in their values. In no case * negative integers are allowed. *

                                    *

                                    *************** import java.util.Comparator; *** 65,85 **** * Constructor for an instance with one range of integer values. *
                                    *

                                  • SetOfIntegerSyntax(int[][] members)
                                    ! * Flexible constructor for an instance with several single integer values ! * and/or several ranges of integer values. The allowed array form is an ! * array of integer arrays of length one or two. Examples are: * int[0][] for empty set of integers, int[][] {{1}} * , int[][] {{1,5}}, int[][] {{1,5},{7,9}}, * int[][] {{3,7},{19}}. *

                                  • *
                                  • SetOfIntegerSyntax(String s)
                                    ! * Flexible constructor for an instance with several single integer values * and/or several ranges of integer values. The allowed String instance have ! * to be a String with comma separated ranges of integer values or single * values. Ranges are represented by two integer with a hypen (-) or colon (:) * between the lower and upper bound value. Whitespace characters are ignored. ! * Examples are: "" for an empty set of integers, ! * "1", "1-5", "1-5,7-9", * "3-7,19" and "1:2,4". *
                                  • *
                                  --- 65,85 ---- * Constructor for an instance with one range of integer values. *
                                  *
                                • SetOfIntegerSyntax(int[][] members)
                                  ! * Flexible constructor for an instance with several single integer values ! * and/or several ranges of integer values. The allowed array form is an ! * array of integer arrays of length one or two. Examples are: * int[0][] for empty set of integers, int[][] {{1}} * , int[][] {{1,5}}, int[][] {{1,5},{7,9}}, * int[][] {{3,7},{19}}. *

                                • *
                                • SetOfIntegerSyntax(String s)
                                  ! * Flexible constructor for an instance with several single integer values * and/or several ranges of integer values. The allowed String instance have ! * to be a String with comma separated ranges of integer values or single * values. Ranges are represented by two integer with a hypen (-) or colon (:) * between the lower and upper bound value. Whitespace characters are ignored. ! * Examples are: "" for an empty set of integers, ! * "1", "1-5", "1-5,7-9", * "3-7,19" and "1:2,4". *
                                • *
                                *************** import java.util.Comparator; *** 88,96 **** * Internal storage:
                                * The set of integers are stored internally in a normalized array form. * In the normalized array form the set of integer ranges are represented ! * in as few ranges as possible and overlapping ranges are merged. The ranges ! * are always represented as an integer array of length two with ranges ! * stored in {lower bound, upper bound} form. The ranges are stored in * ascending order, without any null ranges. *

                                * @author Michael Koch (konqueror@gmx.de) --- 88,96 ---- * Internal storage:
                                * The set of integers are stored internally in a normalized array form. * In the normalized array form the set of integer ranges are represented ! * in as few ranges as possible and overlapping ranges are merged. The ranges ! * are always represented as an integer array of length two with ranges ! * stored in {lower bound, upper bound} form. The ranges are stored in * ascending order, without any null ranges. *

                                * @author Michael Koch (konqueror@gmx.de) *************** public abstract class SetOfIntegerSyntax *** 132,144 **** } values[outIndex++] = values[save]; } ! int[][] result = new int[outIndex][]; System.arraycopy(values, 0, result, 0, outIndex); ! return result; } ! /** * Creates a SetOfIntegerSyntax object. * --- 132,144 ---- } values[outIndex++] = values[save]; } ! int[][] result = new int[outIndex][]; System.arraycopy(values, 0, result, 0, outIndex); ! return result; } ! /** * Creates a SetOfIntegerSyntax object. * *************** public abstract class SetOfIntegerSyntax *** 203,219 **** } } } ! this.members = normalize(newMembers, outIndex); } ! private boolean skipWhitespace(StringCharacterIterator i) { while (Character.isWhitespace(i.current())) i.next(); return i.current() == CharacterIterator.DONE; } ! private boolean skipNumber(StringCharacterIterator i) { boolean readAny = false; --- 203,219 ---- } } } ! this.members = normalize(newMembers, outIndex); } ! private boolean skipWhitespace(StringCharacterIterator i) { while (Character.isWhitespace(i.current())) i.next(); return i.current() == CharacterIterator.DONE; } ! private boolean skipNumber(StringCharacterIterator i) { boolean readAny = false; *************** public abstract class SetOfIntegerSyntax *** 238,261 **** if (s == null) this.members = normalize(new int[0][], 0); else ! { ArrayList vals = new ArrayList(); ! StringCharacterIterator it = new StringCharacterIterator(s); ! while (true) { // Skip whitespace. if (skipWhitespace(it)) break; ! // Parse integer. int index = it.getIndex(); if (! skipNumber(it)) throw new IllegalArgumentException(); int[] item = new int[2]; item[0] = Integer.parseInt(s.substring(index, it.getIndex())); ! if (! skipWhitespace(it)) { char c = it.current(); --- 238,261 ---- if (s == null) this.members = normalize(new int[0][], 0); else ! { ArrayList vals = new ArrayList(); ! StringCharacterIterator it = new StringCharacterIterator(s); ! while (true) { // Skip whitespace. if (skipWhitespace(it)) break; ! // Parse integer. int index = it.getIndex(); if (! skipNumber(it)) throw new IllegalArgumentException(); int[] item = new int[2]; item[0] = Integer.parseInt(s.substring(index, it.getIndex())); ! if (! skipWhitespace(it)) { char c = it.current(); *************** public abstract class SetOfIntegerSyntax *** 274,290 **** } else item[1] = item[0]; ! ! if (item[0] <= item[1]) vals.add(item); ! if (skipWhitespace(it)) break; if (it.current() != ',') throw new IllegalArgumentException(); it.next(); } ! members = normalize((int[][]) vals.toArray(new int[0][]), vals.size()); } } --- 274,290 ---- } else item[1] = item[0]; ! ! if (item[0] <= item[1]) vals.add(item); ! if (skipWhitespace(it)) break; if (it.current() != ',') throw new IllegalArgumentException(); it.next(); } ! members = normalize((int[][]) vals.toArray(new int[0][]), vals.size()); } } *************** public abstract class SetOfIntegerSyntax *** 393,399 **** * * @param x an integer value * ! * @return The next smallest integer value, or -1 if there * is no greater integer in the set. */ public int next(int x) --- 393,399 ---- * * @param x an integer value * ! * @return The next smallest integer value, or -1 if there * is no greater integer in the set. */ public int next(int x) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/Size2DSyntax.java gcc-4.6.0/libjava/classpath/javax/print/attribute/Size2DSyntax.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/Size2DSyntax.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/Size2DSyntax.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Size2DSyntax.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Size2DSyntax.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 40,51 **** import java.io.Serializable; /** ! * Size2DSyntax is the abstract base class of all attribute * classes which provide a two dimensional size as value (e.g. the size of * a media like Letter or A4). *

                                * A Size2DSyntax instance consists of two integer values ! * describing the size in the x and y dimension. The units of * the given values is determined by two defined constants: *

                                  *
                                • INCH - defines an inch
                                • --- 40,51 ---- import java.io.Serializable; /** ! * Size2DSyntax is the abstract base class of all attribute * classes which provide a two dimensional size as value (e.g. the size of * a media like Letter or A4). *

                                  * A Size2DSyntax instance consists of two integer values ! * describing the size in the x and y dimension. The units of * the given values is determined by two defined constants: *

                                    *
                                  • INCH - defines an inch
                                  • *************** import java.io.Serializable; *** 54,60 **** *

                                    *

                                    * A size 2D attribute is constructed by two values for the size of the x and ! * y dimension and the actual units of the given values as defined by the * constants. *

                                    *

                                    --- 54,60 ---- *

                                    *

                                    * A size 2D attribute is constructed by two values for the size of the x and ! * y dimension and the actual units of the given values as defined by the * constants. *

                                    *

                                    *************** import java.io.Serializable; *** 64,79 **** *

                                    *

                                    * Internal storage:
                                    ! * The size of the x,y dimensions are stored internally in micrometers. The * values of the provided constants for inch (value 25400) and millimeters * (value 1000) are used as conversion factors to the internal storage units. * To get the internal micrometers values a multiplication of a given * size value with its units constant value is done. Retrieving the size value ! * for specific units is done by dividing the internal stored value by the ! * units constant value. Clients are therefore able to provide their own * size units by supplying other conversion factors. * Subclasses of Size2DSyntax have access to the internal ! * size values through the protected methods * {@link #getXMicrometers()} and {@link #getYMicrometers()}. *

                                    * --- 64,79 ---- *

                                    *

                                    * Internal storage:
                                    ! * The size of the x,y dimensions are stored internally in micrometers. The * values of the provided constants for inch (value 25400) and millimeters * (value 1000) are used as conversion factors to the internal storage units. * To get the internal micrometers values a multiplication of a given * size value with its units constant value is done. Retrieving the size value ! * for specific units is done by dividing the internal stored value by the ! * units constant value. Clients are therefore able to provide their own * size units by supplying other conversion factors. * Subclasses of Size2DSyntax have access to the internal ! * size values through the protected methods * {@link #getXMicrometers()} and {@link #getYMicrometers()}. *

                                    * *************** public abstract class Size2DSyntax imple *** 221,227 **** return ((float) y) / ((float) units); } ! /** * Returns the size in y direction in mircometers. * To be used by sublcasses that need access to the internal storage value. --- 221,227 ---- return ((float) y) / ((float) units); } ! /** * Returns the size in y direction in mircometers. * To be used by sublcasses that need access to the internal storage value. *************** public abstract class Size2DSyntax imple *** 247,256 **** * Returns the string representation for this object. *

                                    * The returned string is in the form "XxY um" with X standing ! * for size in x and Y for the size in y direction. The used * micrometers units is indicated by the appended "um" notation. *

                                    ! * * @return The string representation in micrometers. */ public String toString() --- 247,256 ---- * Returns the string representation for this object. *

                                    * The returned string is in the form "XxY um" with X standing ! * for size in x and Y for the size in y direction. The used * micrometers units is indicated by the appended "um" notation. *

                                    ! * * @return The string representation in micrometers. */ public String toString() *************** public abstract class Size2DSyntax imple *** 262,272 **** * Returns the string representation for this object. *

                                    * The returned string is in the form "XxY U" with X standing ! * for size in x and Y for the size in y direction. U denotes * the units name if one is supplied. The values are given as * floating point values. *

                                    ! * * @param units the units to use * @param unitsName the name of the units. If null * it is ommitted from the string representation. --- 262,272 ---- * Returns the string representation for this object. *

                                    * The returned string is in the form "XxY U" with X standing ! * for size in x and Y for the size in y direction. U denotes * the units name if one is supplied. The values are given as * floating point values. *

                                    ! * * @param units the units to use * @param unitsName the name of the units. If null * it is ommitted from the string representation. *************** public abstract class Size2DSyntax imple *** 277,283 **** { if (unitsName == null) return getX(units) + "x" + getY(units); ! return getX(units) + "x" + getY(units) + " " + unitsName; } } --- 277,283 ---- { if (unitsName == null) return getX(units) + "x" + getY(units); ! return getX(units) + "x" + getY(units) + " " + unitsName; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/SupportedValuesAttribute.java gcc-4.6.0/libjava/classpath/javax/print/attribute/SupportedValuesAttribute.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/SupportedValuesAttribute.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/SupportedValuesAttribute.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SupportedValuesAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SupportedValuesAttribute.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** exception statement from your version. * *** 38,44 **** package javax.print.attribute; /** ! * Marker interface for all attribute classes specifying the * supported/allowed values for another printing attribute class. *

                                    * A {@link javax.print.PrintService} instance for example provides --- 38,44 ---- package javax.print.attribute; /** ! * Marker interface for all attribute classes specifying the * supported/allowed values for another printing attribute class. *

                                    * A {@link javax.print.PrintService} instance for example provides *************** package javax.print.attribute; *** 46,56 **** * that a specific attribute type is supported and if the supported values. *

                                    * E.g. a {@link javax.print.attribute.standard.JobPrioritySupported} ! * instance indicates that the attribute class * {@link javax.print.attribute.standard.JobPriority} is supported and * provides the number of the possible priority levels. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public interface SupportedValuesAttribute extends Attribute --- 46,56 ---- * that a specific attribute type is supported and if the supported values. *

                                    * E.g. a {@link javax.print.attribute.standard.JobPrioritySupported} ! * instance indicates that the attribute class * {@link javax.print.attribute.standard.JobPriority} is supported and * provides the number of the possible priority levels. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public interface SupportedValuesAttribute extends Attribute diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/TextSyntax.java gcc-4.6.0/libjava/classpath/javax/print/attribute/TextSyntax.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/TextSyntax.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/TextSyntax.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TextSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TextSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.io.Serializable; *** 41,47 **** import java.util.Locale; /** ! * TextSyntax is the abstract base class of all attribute * classes which provide a string as value (e.g. the location of the printer). *

                                    * A TextSyntax instance consists of a string value and a --- 41,47 ---- import java.util.Locale; /** ! * TextSyntax is the abstract base class of all attribute * classes which provide a string as value (e.g. the location of the printer). *

                                    * A TextSyntax instance consists of a string value and a *************** import java.util.Locale; *** 53,59 **** public abstract class TextSyntax implements Cloneable, Serializable { private static final long serialVersionUID = -8130648736378144102L; ! private String value; private Locale locale; --- 53,59 ---- public abstract class TextSyntax implements Cloneable, Serializable { private static final long serialVersionUID = -8130648736378144102L; ! private String value; private Locale locale; *************** public abstract class TextSyntax impleme *** 71,77 **** { if (value == null) throw new NullPointerException("value may not be null"); ! this.value = value; this.locale = (locale == null ? Locale.getDefault() : locale); } --- 71,77 ---- { if (value == null) throw new NullPointerException("value may not be null"); ! this.value = value; this.locale = (locale == null ? Locale.getDefault() : locale); } *************** public abstract class TextSyntax impleme *** 119,125 **** return false; TextSyntax tmp = (TextSyntax) obj; ! return (value.equals(tmp.getValue()) && locale.equals(tmp.getLocale())); } --- 119,125 ---- return false; TextSyntax tmp = (TextSyntax) obj; ! return (value.equals(tmp.getValue()) && locale.equals(tmp.getLocale())); } *************** public abstract class TextSyntax impleme *** 127,133 **** /** * Returns a string representing the object. The returned * string is the underlying text value of this object. ! * * @return The string representation. */ public String toString() --- 127,133 ---- /** * Returns a string representing the object. The returned * string is the underlying text value of this object. ! * * @return The string representation. */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/URISyntax.java gcc-4.6.0/libjava/classpath/javax/print/attribute/URISyntax.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/URISyntax.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/URISyntax.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* URISyntax.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* URISyntax.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.io.Serializable; *** 41,49 **** import java.net.URI; /** ! * URISyntax is the abstract base class of all attribute * classes having an Uniform Resource Identifier URI as value. ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class URISyntax --- 41,49 ---- import java.net.URI; /** ! * URISyntax is the abstract base class of all attribute * classes having an Uniform Resource Identifier URI as value. ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class URISyntax *************** public abstract class URISyntax *** 73,79 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 73,79 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/UnmodifiableSetException.java gcc-4.6.0/libjava/classpath/javax/print/attribute/UnmodifiableSetException.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/UnmodifiableSetException.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/UnmodifiableSetException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnmodifiableSetException.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnmodifiableSetException.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.attribute; *** 41,47 **** /** * Exception which is thrown if an operation on an unmodifiable set * is invoked. ! * * @author Michael Koch (konqueror@gmx.de) * * @since 1.4 --- 41,47 ---- /** * Exception which is thrown if an operation on an unmodifiable set * is invoked. ! * * @author Michael Koch (konqueror@gmx.de) * * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Chromaticity.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Chromaticity.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Chromaticity.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Chromaticity.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 49,55 **** * should be printed in monochrome or color. *

                                    * The attribute interacts with the document to be printed. If the document ! * to be printed is a monochrome document it will be printed monochrome * regardless of the value of this attribute category. However if it is a * color document supplying the attribute value MONOCHROME * will prepare the document to be printed in monochrome instead of color. --- 49,55 ---- * should be printed in monochrome or color. *

                                    * The attribute interacts with the document to be printed. If the document ! * to be printed is a monochrome document it will be printed monochrome * regardless of the value of this attribute category. However if it is a * color document supplying the attribute value MONOCHROME * will prepare the document to be printed in monochrome instead of color. *************** import javax.print.attribute.PrintReques *** 63,82 **** *

                                    * IPP Compatibility: Chromaticity is not an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class Chromaticity extends EnumSyntax implements DocAttribute, PrintRequestAttribute, PrintJobAttribute { private static final long serialVersionUID = 4660543931355214012L; ! /** Specifies monochrome printing. */ public static final Chromaticity MONOCHROME = new Chromaticity(0); ! /** Specifies color printing. */ public static final Chromaticity COLOR = new Chromaticity(1); ! private static final String[] stringTable = { "monochrome", "color" }; private static final Chromaticity[] enumValueTable = { MONOCHROME, COLOR }; --- 63,82 ---- *

                                    * IPP Compatibility: Chromaticity is not an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class Chromaticity extends EnumSyntax implements DocAttribute, PrintRequestAttribute, PrintJobAttribute { private static final long serialVersionUID = 4660543931355214012L; ! /** Specifies monochrome printing. */ public static final Chromaticity MONOCHROME = new Chromaticity(0); ! /** Specifies color printing. */ public static final Chromaticity COLOR = new Chromaticity(1); ! private static final String[] stringTable = { "monochrome", "color" }; private static final Chromaticity[] enumValueTable = { MONOCHROME, COLOR }; *************** public final class Chromaticity extends *** 109,115 **** { return "chromaticity"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 109,115 ---- { return "chromaticity"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class Chromaticity extends *** 130,134 **** { return enumValueTable; } ! } --- 130,134 ---- { return enumValueTable; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/ColorSupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/ColorSupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/ColorSupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/ColorSupported.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintServic *** 43,49 **** /** ! * The ColorSupported printing attribute specifies if a * printing device is capable of color printing. *

                                    * This attributes just tells if a printer device supports color printing --- 43,49 ---- /** ! * The ColorSupported printing attribute specifies if a * printing device is capable of color printing. *

                                    * This attributes just tells if a printer device supports color printing *************** import javax.print.attribute.PrintServic *** 56,62 **** * in the Java Print Service API. The IPP boolean value true corresponds * to SUPPORTED and "false" to NOT_SUPPORTED. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class ColorSupported extends EnumSyntax --- 56,62 ---- * in the Java Print Service API. The IPP boolean value true corresponds * to SUPPORTED and "false" to NOT_SUPPORTED. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class ColorSupported extends EnumSyntax *************** public final class ColorSupported extend *** 66,82 **** /** The printer does not support printing in color. */ public static final ColorSupported NOT_SUPPORTED = new ColorSupported(0); ! /** The printer supports printing in color. */ public static final ColorSupported SUPPORTED = new ColorSupported(1); private static final String[] stringTable = { "not-supported", "supported" }; private static final ColorSupported[] enumValueTable = { NOT_SUPPORTED, SUPPORTED }; ! /** * Constructs a ColorSupported object. ! * * @param value the enum value */ protected ColorSupported(int value) --- 66,82 ---- /** The printer does not support printing in color. */ public static final ColorSupported NOT_SUPPORTED = new ColorSupported(0); ! /** The printer supports printing in color. */ public static final ColorSupported SUPPORTED = new ColorSupported(1); private static final String[] stringTable = { "not-supported", "supported" }; private static final ColorSupported[] enumValueTable = { NOT_SUPPORTED, SUPPORTED }; ! /** * Constructs a ColorSupported object. ! * * @param value the enum value */ protected ColorSupported(int value) *************** public final class ColorSupported extend *** 103,109 **** { return "color-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 103,109 ---- { return "color-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Compression.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Compression.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Compression.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Compression.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.EnumSyntax; *** 52,58 **** *

                                    * IPP Compatibility: Compression is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public class Compression extends EnumSyntax --- 52,58 ---- *

                                    * IPP Compatibility: Compression is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public class Compression extends EnumSyntax *************** public class Compression extends EnumSyn *** 62,85 **** /** The print data is not compressed. */ public static final Compression NONE = new Compression(0); ! /** The print data is ZIP compressed. */ public static final Compression DEFLATE = new Compression(1); ! /** The print data is GNU Zip compressed. */ public static final Compression GZIP = new Compression(2); ! /** The print data is UNIX compressed. */ public static final Compression COMPRESS = new Compression(3); ! ! private static final String[] stringTable = { "none", "deflate", "gzip", "compress" }; ! private static final Compression[] enumValueTable = { NONE, DEFLATE, GZIP, COMPRESS }; /** * Constructs a Compression object. ! * * @param value the enum value */ protected Compression(int value) --- 62,85 ---- /** The print data is not compressed. */ public static final Compression NONE = new Compression(0); ! /** The print data is ZIP compressed. */ public static final Compression DEFLATE = new Compression(1); ! /** The print data is GNU Zip compressed. */ public static final Compression GZIP = new Compression(2); ! /** The print data is UNIX compressed. */ public static final Compression COMPRESS = new Compression(3); ! ! private static final String[] stringTable = { "none", "deflate", "gzip", "compress" }; ! private static final Compression[] enumValueTable = { NONE, DEFLATE, GZIP, COMPRESS }; /** * Constructs a Compression object. ! * * @param value the enum value */ protected Compression(int value) *************** public class Compression extends EnumSyn *** 106,112 **** { return "compression"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 106,112 ---- { return "compression"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Copies.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Copies.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Copies.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Copies.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copies.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copies.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 46,67 **** * The Copies printing attribute specifies the number * of copies to be printed. *

                                    ! * Note: The effect of this attribute on jobs with multiple documents ! * is controlled by the job attribute * {@link javax.print.attribute.standard.MultipleDocumentHandling}. *

                                    *

                                    * IPP Compatibility: Copies is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.MultipleDocumentHandling ! * * @author Michael Koch (konqueror@gmx.de) */ public final class Copies extends IntegerSyntax implements PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = -6426631521680023833L; ! /** * Creates a Copies object. * --- 46,67 ---- * The Copies printing attribute specifies the number * of copies to be printed. *

                                    ! * Note: The effect of this attribute on jobs with multiple documents ! * is controlled by the job attribute * {@link javax.print.attribute.standard.MultipleDocumentHandling}. *

                                    *

                                    * IPP Compatibility: Copies is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.MultipleDocumentHandling ! * * @author Michael Koch (konqueror@gmx.de) */ public final class Copies extends IntegerSyntax implements PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = -6426631521680023833L; ! /** * Creates a Copies object. * *************** public final class Copies extends Intege *** 76,88 **** if (value < 1) throw new IllegalArgumentException("value may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 76,88 ---- if (value < 1) throw new IllegalArgumentException("value may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/CopiesSupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/CopiesSupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/CopiesSupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/CopiesSupported.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.SupportedVa *** 44,55 **** /** * The CopiesSupported attribute specifies the supported ! * value or range of values for the ! * {@link javax.print.attribute.standard.Copies} attribute. *

                                    * IPP Compatibility: CopiesSupported is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 44,55 ---- /** * The CopiesSupported attribute specifies the supported ! * value or range of values for the ! * {@link javax.print.attribute.standard.Copies} attribute. *

                                    * IPP Compatibility: CopiesSupported is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class CopiesSupported exten *** 60,84 **** /** * Constructs a CopiesSupported object with ! * the given value. This means that only this value is * supported for copies. ! * * @param member the member value * @exception IllegalArgumentException if member is < 1 */ public CopiesSupported(int member) { super(member); ! if (member < 1) throw new IllegalArgumentException("member may not be less than 1"); } /** * Constructs a CopiesSupported object with ! * the given range of values. This means that values for * copies are supported inside the specified range. ! * * @param lowerBound the lower bound value * @param upperBound the upper bound value * --- 60,84 ---- /** * Constructs a CopiesSupported object with ! * the given value. This means that only this value is * supported for copies. ! * * @param member the member value * @exception IllegalArgumentException if member is < 1 */ public CopiesSupported(int member) { super(member); ! if (member < 1) throw new IllegalArgumentException("member may not be less than 1"); } /** * Constructs a CopiesSupported object with ! * the given range of values. This means that values for * copies are supported inside the specified range. ! * * @param lowerBound the lower bound value * @param upperBound the upper bound value * *************** public final class CopiesSupported exten *** 87,103 **** public CopiesSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 87,103 ---- public CopiesSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DateTimeAtCompleted.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DateTimeAtCompleted.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.DateTimeSyn *** 45,58 **** import javax.print.attribute.PrintJobAttribute; /** ! * The DateTimeAtCompleted attribute specifies the date and * the time at which a print job completed (or was canceled or aborted). *

                                    * IPP Compatibility: DateTimeAtCompleted is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.DateTimeAtCreation * @see javax.print.attribute.standard.DateTimeAtProcessing ! * * @author Michael Koch (konqueror@gmx.de) */ public final class DateTimeAtCompleted extends DateTimeSyntax --- 45,58 ---- import javax.print.attribute.PrintJobAttribute; /** ! * The DateTimeAtCompleted attribute specifies the date and * the time at which a print job completed (or was canceled or aborted). *

                                    * IPP Compatibility: DateTimeAtCompleted is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.DateTimeAtCreation * @see javax.print.attribute.standard.DateTimeAtProcessing ! * * @author Michael Koch (konqueror@gmx.de) */ public final class DateTimeAtCompleted extends DateTimeSyntax *************** public final class DateTimeAtCompleted e *** 77,83 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,83 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DateTimeAtCreation.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DateTimeAtCreation.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.DateTimeSyn *** 45,58 **** import javax.print.attribute.PrintJobAttribute; /** ! * The DateTimeAtCreation attribute specifies the * date and the time at which a print job was created. *

                                    * IPP Compatibility: DateTimeAtCreation is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.DateTimeAtCompleted * @see javax.print.attribute.standard.DateTimeAtProcessing ! * * @author Michael Koch (konqueror@gmx.de) */ public final class DateTimeAtCreation extends DateTimeSyntax --- 45,58 ---- import javax.print.attribute.PrintJobAttribute; /** ! * The DateTimeAtCreation attribute specifies the * date and the time at which a print job was created. *

                                    * IPP Compatibility: DateTimeAtCreation is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.DateTimeAtCompleted * @see javax.print.attribute.standard.DateTimeAtProcessing ! * * @author Michael Koch (konqueror@gmx.de) */ public final class DateTimeAtCreation extends DateTimeSyntax *************** public final class DateTimeAtCreation ex *** 77,83 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,83 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DateTimeAtProcessing.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DateTimeAtProcessing.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 52,58 **** *

                                    * @see javax.print.attribute.standard.DateTimeAtCompleted * @see javax.print.attribute.standard.DateTimeAtCreation ! * * @author Michael Koch (konqueror@gmx.de) */ public final class DateTimeAtProcessing extends DateTimeSyntax --- 52,58 ---- *

                                    * @see javax.print.attribute.standard.DateTimeAtCompleted * @see javax.print.attribute.standard.DateTimeAtCreation ! * * @author Michael Koch (konqueror@gmx.de) */ public final class DateTimeAtProcessing extends DateTimeSyntax *************** public final class DateTimeAtProcessing *** 77,83 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,83 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Destination.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Destination.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Destination.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Destination.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.URISyntax; *** 49,70 **** * The Destination attribute provides a URI for an alternate * destination of the printing output. *

                                    ! * As not an IPP attribute many print services will not support this * attribute and only provide the printer device as a destination. * An alternate output destination would be a file on the local harddisk * given as a file scheme URI. *

                                    ! *

                                    ! * If a print service does not support the destination attributes URI it * will throw a PrintException. This exception may further implement the ! * interface {@link javax.print.URIException}. *

                                    *

                                    * IPP Compatibility: Destination is not an IPP 1.1 attribute. *

                                    * @see javax.print.PrintException * @see javax.print.URIException ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 49,70 ---- * The Destination attribute provides a URI for an alternate * destination of the printing output. *

                                    ! * As not an IPP attribute many print services will not support this * attribute and only provide the printer device as a destination. * An alternate output destination would be a file on the local harddisk * given as a file scheme URI. *

                                    ! *

                                    ! * If a print service does not support the destination attributes URI it * will throw a PrintException. This exception may further implement the ! * interface {@link javax.print.URIException}. *

                                    *

                                    * IPP Compatibility: Destination is not an IPP 1.1 attribute. *

                                    * @see javax.print.PrintException * @see javax.print.URIException ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class Destination extends U *** 75,81 **** /** * Constructs a Destination object. ! * * @param uri the URI of the output destination. * @throws NullPointerException if the given uri is null. */ --- 75,81 ---- /** * Constructs a Destination object. ! * * @param uri the URI of the output destination. * @throws NullPointerException if the given uri is null. */ *************** public final class Destination extends U *** 83,95 **** { super(uri); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 83,95 ---- { super(uri); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/DocumentName.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/DocumentName.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/DocumentName.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/DocumentName.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DocumentName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DocumentName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 48,62 **** * The DocumentName printing attribute specifies a document name. *

                                    * The document name may be different than the name of the job. It must not be ! * unique across multiple documents in the same print job. Normally, an ! * application provides the document name for the user by using e.g. the file * name or a name generated automatically by the application. *

                                    *

                                    * IPP Compatibility: DocumentName is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.JobName ! * * @author Michael Koch (konqueror@gmx.de) */ public final class DocumentName extends TextSyntax --- 48,62 ---- * The DocumentName printing attribute specifies a document name. *

                                    * The document name may be different than the name of the job. It must not be ! * unique across multiple documents in the same print job. Normally, an ! * application provides the document name for the user by using e.g. the file * name or a name generated automatically by the application. *

                                    *

                                    * IPP Compatibility: DocumentName is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.JobName ! * * @author Michael Koch (konqueror@gmx.de) */ public final class DocumentName extends TextSyntax *************** public final class DocumentName extends *** 83,89 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 83,89 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Fidelity.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Fidelity.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Fidelity.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Fidelity.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 53,72 **** * through the client by providing this attribute to indicate the wanted * conflict handling mechanism: *
                                      ! *
                                    • {@link #FIDELITY_TRUE}: Reject the job since the job can not be * processed exactly as specified by the attributes of the client.
                                    • ! *
                                    • {@link #FIDELITY_FALSE}: The Printer may make any changes necessary * to proceed with processing the Job as good as possible.
                                    • *
                                    ! *

                                    *

                                    * IPP Compatibility: Fidelity is an IPP 1.1 attribute. The IPP name ! * is "ipp-attribute-fidelity". The IPP specification treats Fidelity as a * boolean type which is not available in the Java Print Service API. The IPP ! * boolean value "true" corresponds to FIDELITY_TRUE and "false" * to FIDELITY_FALSE. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 53,72 ---- * through the client by providing this attribute to indicate the wanted * conflict handling mechanism: *
                                      ! *
                                    • {@link #FIDELITY_TRUE}: Reject the job since the job can not be * processed exactly as specified by the attributes of the client.
                                    • ! *
                                    • {@link #FIDELITY_FALSE}: The Printer may make any changes necessary * to proceed with processing the Job as good as possible.
                                    • *
                                    ! *

                                    *

                                    * IPP Compatibility: Fidelity is an IPP 1.1 attribute. The IPP name ! * is "ipp-attribute-fidelity". The IPP specification treats Fidelity as a * boolean type which is not available in the Java Print Service API. The IPP ! * boolean value "true" corresponds to FIDELITY_TRUE and "false" * to FIDELITY_FALSE. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class Fidelity extends Enum *** 75,101 **** { private static final long serialVersionUID = 6320827847329172308L; ! /** ! * Requests that the job is printed exactly as specified, * or rejected otherwise. */ public static final Fidelity FIDELITY_TRUE = new Fidelity(0); ! ! /** * Requests that the job is printed as exactly as reasonable. This means ! * that the print service may choose to substitute the default value ! * associated with that attribute, or use some other supported value that ! * is similar to the unsupported requested value. */ public static final Fidelity FIDELITY_FALSE = new Fidelity(1); ! private static final String[] stringTable = { "true", "false" }; private static final Fidelity[] enumValueTable = { FIDELITY_TRUE, FIDELITY_FALSE }; /** * Constructs a Fidelity object. ! * * @param value the value */ protected Fidelity(int value) --- 75,101 ---- { private static final long serialVersionUID = 6320827847329172308L; ! /** ! * Requests that the job is printed exactly as specified, * or rejected otherwise. */ public static final Fidelity FIDELITY_TRUE = new Fidelity(0); ! ! /** * Requests that the job is printed as exactly as reasonable. This means ! * that the print service may choose to substitute the default value ! * associated with that attribute, or use some other supported value that ! * is similar to the unsupported requested value. */ public static final Fidelity FIDELITY_FALSE = new Fidelity(1); ! private static final String[] stringTable = { "true", "false" }; private static final Fidelity[] enumValueTable = { FIDELITY_TRUE, FIDELITY_FALSE }; /** * Constructs a Fidelity object. ! * * @param value the value */ protected Fidelity(int value) *************** public final class Fidelity extends Enum *** 122,128 **** { return "ipp-attribute-fidelity"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 122,128 ---- { return "ipp-attribute-fidelity"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Finishings.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Finishings.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Finishings.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Finishings.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 49,78 **** * The Finishings attribute specifies the finishing operations * that the Printer applies to every copy of each printed document in the Job. *

                                    ! * Standard enum values are: NONE, STAPLE, * COVER, BIND, SADDLE_STITCH, * EDGE_STITCH. *

                                    ! * The following values are more specific: ! * STAPLE_TOP_LEFT, STAPLE_BOTTOM_LEFT, ! * STAPLE_TOP_RIGHT, STAPLE_BOTTOM_RIGHT, ! * EDGE_STITCH_LEFT, EDGE_STITCH_TOP, ! * EDGE_STITCH_RIGHT, EDGE_STITCH_BOTTOM, ! * STAPLE_DUAL_LEFT, STAPLE_DUAL_TOP, * STAPLE_DUAL_RIGHT, STAPLE_DUAL_BOTTOM. ! *

                                    *

                                    ! * Note: The effect of this attribute on jobs with multiple documents ! * is controlled by the job attribute * {@link javax.print.attribute.standard.MultipleDocumentHandling}. *

                                    *

                                    ! * IPP Compatibility: Finishings is an IPP 1.1 attribute. Differences ! * to the IPP specification are that in the Java Print Service API only one ! * enum value is supported (in IPP a set of enums). Further the enum * punch is not supported. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 49,78 ---- * The Finishings attribute specifies the finishing operations * that the Printer applies to every copy of each printed document in the Job. *

                                    ! * Standard enum values are: NONE, STAPLE, * COVER, BIND, SADDLE_STITCH, * EDGE_STITCH. *

                                    ! * The following values are more specific: ! * STAPLE_TOP_LEFT, STAPLE_BOTTOM_LEFT, ! * STAPLE_TOP_RIGHT, STAPLE_BOTTOM_RIGHT, ! * EDGE_STITCH_LEFT, EDGE_STITCH_TOP, ! * EDGE_STITCH_RIGHT, EDGE_STITCH_BOTTOM, ! * STAPLE_DUAL_LEFT, STAPLE_DUAL_TOP, * STAPLE_DUAL_RIGHT, STAPLE_DUAL_BOTTOM. ! *

                                    *

                                    ! * Note: The effect of this attribute on jobs with multiple documents ! * is controlled by the job attribute * {@link javax.print.attribute.standard.MultipleDocumentHandling}. *

                                    *

                                    ! * IPP Compatibility: Finishings is an IPP 1.1 attribute. Differences ! * to the IPP specification are that in the Java Print Service API only one ! * enum value is supported (in IPP a set of enums). Further the enum * punch is not supported. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class Finishings extends EnumSynt *** 81,199 **** { private static final long serialVersionUID = -627840419548391754L; ! /** * Perform no finishings of the documents. */ public static final Finishings NONE = new Finishings(3); ! ! /** ! * Selects binding of the documents with one or more staples. */ public static final Finishings STAPLE = new Finishings(4); ! /** ! * Selects the use of a non-printed (or pre-printed) cover for * the document. */ public static final Finishings COVER = new Finishings(6); ! /** * Selects that a binding is to be applied to the document. * The type and placement of the binding is site-defined. */ public static final Finishings BIND = new Finishings(7); ! /** * Selects binding of the documents with one or more staples ! * along the middle fold. */ public static final Finishings SADDLE_STITCH = new Finishings(8); ! /** ! * Selects binding of the documents with one or more staples ! * along one edge. */ public static final Finishings EDGE_STITCH = new Finishings(9); ! ! /** ! * Selects binding of the documents with one or more staples ! * in the top left corner. */ public static final Finishings STAPLE_TOP_LEFT = new Finishings(20); ! ! /** ! * Selects binding of the documents with one or more staples in the bottom ! * left corner. */ public static final Finishings STAPLE_BOTTOM_LEFT = new Finishings(21); ! /** ! * Selects binding of the documents with one or more staples in * the top right corner. */ public static final Finishings STAPLE_TOP_RIGHT = new Finishings(22); ! /** ! * Selects binding of the documents with one or more staples in * the bottom right corner. */ public static final Finishings STAPLE_BOTTOM_RIGHT = new Finishings(23); ! /** * Selects binding of the documents with one or more staples * along the left edge. */ public static final Finishings EDGE_STITCH_LEFT = new Finishings(24); ! /** ! * Selects binding of the documents with one or more staples along * the top edge. */ public static final Finishings EDGE_STITCH_TOP = new Finishings(25); ! /** ! * Selects binding of the documents with one or more staples along * the right edge. */ public static final Finishings EDGE_STITCH_RIGHT = new Finishings(26); ! /** * Selects binding of the documents with one or more staples along ! * the bottom edge. */ public static final Finishings EDGE_STITCH_BOTTOM = new Finishings(27); ! /** ! * Selects binding of the documents with two staples along the * left edge assuming a portrait document. */ public static final Finishings STAPLE_DUAL_LEFT = new Finishings(28); ! /** ! * Selects binding of the documents with two staples along the * top edge assuming a portrait document. */ public static final Finishings STAPLE_DUAL_TOP = new Finishings(29); ! /** ! * Selects binding of the documents with two staples along the * right edge assuming a portrait document. */ public static final Finishings STAPLE_DUAL_RIGHT = new Finishings(30); ! /** ! * Selects binding of the documents with two staples along the * bottom edge assuming a portrait document. */ public static final Finishings STAPLE_DUAL_BOTTOM = new Finishings(31); ! private static final String[] stringTable = { "none", "staple", null, "cover", "bind", "saddle-stitch", "edge-stitch", null, null, null, null, null, null, null, null, null, null, "staple-top-left", ! "staple-bottom-left", ! "staple-top-right", "staple-bottom-right", "edge-stitch-left", "edge-stitch-top", --- 81,199 ---- { private static final long serialVersionUID = -627840419548391754L; ! /** * Perform no finishings of the documents. */ public static final Finishings NONE = new Finishings(3); ! ! /** ! * Selects binding of the documents with one or more staples. */ public static final Finishings STAPLE = new Finishings(4); ! /** ! * Selects the use of a non-printed (or pre-printed) cover for * the document. */ public static final Finishings COVER = new Finishings(6); ! /** * Selects that a binding is to be applied to the document. * The type and placement of the binding is site-defined. */ public static final Finishings BIND = new Finishings(7); ! /** * Selects binding of the documents with one or more staples ! * along the middle fold. */ public static final Finishings SADDLE_STITCH = new Finishings(8); ! /** ! * Selects binding of the documents with one or more staples ! * along one edge. */ public static final Finishings EDGE_STITCH = new Finishings(9); ! ! /** ! * Selects binding of the documents with one or more staples ! * in the top left corner. */ public static final Finishings STAPLE_TOP_LEFT = new Finishings(20); ! ! /** ! * Selects binding of the documents with one or more staples in the bottom ! * left corner. */ public static final Finishings STAPLE_BOTTOM_LEFT = new Finishings(21); ! /** ! * Selects binding of the documents with one or more staples in * the top right corner. */ public static final Finishings STAPLE_TOP_RIGHT = new Finishings(22); ! /** ! * Selects binding of the documents with one or more staples in * the bottom right corner. */ public static final Finishings STAPLE_BOTTOM_RIGHT = new Finishings(23); ! /** * Selects binding of the documents with one or more staples * along the left edge. */ public static final Finishings EDGE_STITCH_LEFT = new Finishings(24); ! /** ! * Selects binding of the documents with one or more staples along * the top edge. */ public static final Finishings EDGE_STITCH_TOP = new Finishings(25); ! /** ! * Selects binding of the documents with one or more staples along * the right edge. */ public static final Finishings EDGE_STITCH_RIGHT = new Finishings(26); ! /** * Selects binding of the documents with one or more staples along ! * the bottom edge. */ public static final Finishings EDGE_STITCH_BOTTOM = new Finishings(27); ! /** ! * Selects binding of the documents with two staples along the * left edge assuming a portrait document. */ public static final Finishings STAPLE_DUAL_LEFT = new Finishings(28); ! /** ! * Selects binding of the documents with two staples along the * top edge assuming a portrait document. */ public static final Finishings STAPLE_DUAL_TOP = new Finishings(29); ! /** ! * Selects binding of the documents with two staples along the * right edge assuming a portrait document. */ public static final Finishings STAPLE_DUAL_RIGHT = new Finishings(30); ! /** ! * Selects binding of the documents with two staples along the * bottom edge assuming a portrait document. */ public static final Finishings STAPLE_DUAL_BOTTOM = new Finishings(31); ! private static final String[] stringTable = { "none", "staple", null, "cover", "bind", "saddle-stitch", "edge-stitch", null, null, null, null, null, null, null, null, null, null, "staple-top-left", ! "staple-bottom-left", ! "staple-top-right", "staple-bottom-right", "edge-stitch-left", "edge-stitch-top", *************** public class Finishings extends EnumSynt *** 203,216 **** "staple-dual-top", "staple-dual-right", "staple-dual-bottom" }; ! ! private static final Finishings[] enumValueTable = { NONE, STAPLE, null, ! COVER, BIND, SADDLE_STITCH, ! EDGE_STITCH, null, ! null, null, null, ! null, null, null, ! null, null, null, STAPLE_TOP_LEFT, STAPLE_BOTTOM_LEFT, STAPLE_TOP_RIGHT, --- 203,216 ---- "staple-dual-top", "staple-dual-right", "staple-dual-bottom" }; ! ! private static final Finishings[] enumValueTable = { NONE, STAPLE, null, ! COVER, BIND, SADDLE_STITCH, ! EDGE_STITCH, null, ! null, null, null, ! null, null, null, ! null, null, null, STAPLE_TOP_LEFT, STAPLE_BOTTOM_LEFT, STAPLE_TOP_RIGHT, *************** public class Finishings extends EnumSynt *** 223,232 **** STAPLE_DUAL_TOP, STAPLE_DUAL_RIGHT, STAPLE_DUAL_BOTTOM }; ! /** * Constructs a Finishings object. ! * * @param value the value */ protected Finishings(int value) --- 223,232 ---- STAPLE_DUAL_TOP, STAPLE_DUAL_RIGHT, STAPLE_DUAL_BOTTOM }; ! /** * Constructs a Finishings object. ! * * @param value the value */ protected Finishings(int value) *************** public class Finishings extends EnumSynt *** 253,259 **** { return "finishings"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 253,259 ---- { return "finishings"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public class Finishings extends EnumSynt *** 283,287 **** protected int getOffset() { return 3; ! } } --- 283,287 ---- protected int getOffset() { return 3; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobHoldUntil.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobHoldUntil.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 48,64 **** /** * The JobHoldUntil attribute specifies the date * and the time at which a print job must become a candidate ! * for printing. *

                                    * IPP Compatibility: JobHoldUntil is an IPP 1.1 attribute. * However the attribute in IPP is based on keywords of named * time periods like day-time or evening. It will depend on the ! * concrete implementation of a print service how a mapping of the * detailed provided date and time of this attribute to the named * keyword or an alternate extension attribute will be done. E.g. * CUPS supports also a HH:MM format as extension to the keywords. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobHoldUntil extends DateTimeSyntax --- 48,64 ---- /** * The JobHoldUntil attribute specifies the date * and the time at which a print job must become a candidate ! * for printing. *

                                    * IPP Compatibility: JobHoldUntil is an IPP 1.1 attribute. * However the attribute in IPP is based on keywords of named * time periods like day-time or evening. It will depend on the ! * concrete implementation of a print service how a mapping of the * detailed provided date and time of this attribute to the named * keyword or an alternate extension attribute will be done. E.g. * CUPS supports also a HH:MM format as extension to the keywords. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobHoldUntil extends DateTimeSyntax *************** public final class JobHoldUntil extends *** 83,89 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 83,89 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobImpressions.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobImpressions.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobImpressions.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobImpressions.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobImpressions.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobImpressions.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 45,60 **** /** * The JobImpressions printing attribute specifies * the total size in number of impressions of the documents ! * of a a print job. *

                                    ! * An impression is specified by the IPP specification as the image ! * (possibly many print-stream pages in different configurations) * imposed onto a single media sheet. This attribute must not include * a multiplication factor from the number of copies which maybe specified * in a Copies attribute. *

                                    *

                                    ! * This attribute belongs to a group of job size attributes which are * describing the size of a job to be printed. The values supplied by * these attributes are intended to be used for routing and scheduling * of jobs on the print service. A client may specify these attributes. --- 45,60 ---- /** * The JobImpressions printing attribute specifies * the total size in number of impressions of the documents ! * of a a print job. *

                                    ! * An impression is specified by the IPP specification as the image ! * (possibly many print-stream pages in different configurations) * imposed onto a single media sheet. This attribute must not include * a multiplication factor from the number of copies which maybe specified * in a Copies attribute. *

                                    *

                                    ! * This attribute belongs to a group of job size attributes which are * describing the size of a job to be printed. The values supplied by * these attributes are intended to be used for routing and scheduling * of jobs on the print service. A client may specify these attributes. *************** import javax.print.attribute.PrintReques *** 67,80 **** *

                                    * @see javax.print.attribute.standard.JobKOctets * @see javax.print.attribute.standard.JobMediaSheets ! * * @author Michael Koch */ public final class JobImpressions extends IntegerSyntax implements PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = 8225537206784322464L; ! /** * Creates a JobImpressions object. * --- 67,80 ---- *

                                    * @see javax.print.attribute.standard.JobKOctets * @see javax.print.attribute.standard.JobMediaSheets ! * * @author Michael Koch */ public final class JobImpressions extends IntegerSyntax implements PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = 8225537206784322464L; ! /** * Creates a JobImpressions object. * *************** public final class JobImpressions extend *** 89,101 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 89,101 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobImpressionsCompleted.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobImpressionsCompleted.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 45,56 **** * The JobImpressionsCompleted printing attribute reports * the number of impressions already processed. *

                                    ! * An impression is specified by the IPP specification as the image imposed ! * onto a single media sheet. This attribute will not include a multiplication * factor from the number of copies. *

                                    *

                                    ! * This attribute belongs to a group of job progress attributes which are * reporting on the progress of a print job. *

                                    *

                                    --- 45,56 ---- * The JobImpressionsCompleted printing attribute reports * the number of impressions already processed. *

                                    ! * An impression is specified by the IPP specification as the image imposed ! * onto a single media sheet. This attribute will not include a multiplication * factor from the number of copies. *

                                    *

                                    ! * This attribute belongs to a group of job progress attributes which are * reporting on the progress of a print job. *

                                    *

                                    *************** import javax.print.attribute.PrintJobAtt *** 58,71 **** *

                                    * @see javax.print.attribute.standard.JobMediaSheetsCompleted * @see javax.print.attribute.standard.JobKOctetsProcessed ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobImpressionsCompleted extends IntegerSyntax implements PrintJobAttribute { private static final long serialVersionUID = 6722648442432393294L; ! /** * Creates a JobImpressionsCompleted object. * --- 58,71 ---- *

                                    * @see javax.print.attribute.standard.JobMediaSheetsCompleted * @see javax.print.attribute.standard.JobKOctetsProcessed ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobImpressionsCompleted extends IntegerSyntax implements PrintJobAttribute { private static final long serialVersionUID = 6722648442432393294L; ! /** * Creates a JobImpressionsCompleted object. * *************** public final class JobImpressionsComplet *** 80,92 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 80,92 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.SupportedVa *** 43,55 **** /** ! * The JobImpressionsSupported printing attribute specifies the ! * supported range of values for the * {@link javax.print.attribute.standard.JobImpressions} attribute. *

                                    * IPP Compatibility: JobImpressionsSupported is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 43,55 ---- /** ! * The JobImpressionsSupported printing attribute specifies the ! * supported range of values for the * {@link javax.print.attribute.standard.JobImpressions} attribute. *

                                    * IPP Compatibility: JobImpressionsSupported is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class JobImpressionsSupport *** 59,65 **** private static final long serialVersionUID = -4887354803843173692L; /** ! * Constructs a JobImpressionsSupported object with the * given range of supported job impressions values. * * @param lowerBound the lower bound value --- 59,65 ---- private static final long serialVersionUID = -4887354803843173692L; /** ! * Constructs a JobImpressionsSupported object with the * given range of supported job impressions values. * * @param lowerBound the lower bound value *************** public final class JobImpressionsSupport *** 71,94 **** public JobImpressionsSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof JobImpressionsSupported)) return false; ! return super.equals(obj); } --- 71,94 ---- public JobImpressionsSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof JobImpressionsSupported)) return false; ! return super.equals(obj); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobKOctets.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobKOctets.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobKOctets.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobKOctets.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobKOctets.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobKOctets.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 48,59 **** *

                                    * The supplied value has to be rounded up, so that a range between * 1 and 1024 octects is specified as 1 and a range between 1025 and ! * 2048 octects as 2, etc. This attribute must not include a multiplication ! * factor from the number of copies which maybe specified in a Copies * attribute. *

                                    *

                                    ! * This attribute belongs to a group of job size attributes which are * describing the size of a job to be printed. The values supplied by * these attributes are intended to be used for routing and scheduling * of jobs on the print service. A client may specify these attributes. --- 48,59 ---- *

                                    * The supplied value has to be rounded up, so that a range between * 1 and 1024 octects is specified as 1 and a range between 1025 and ! * 2048 octects as 2, etc. This attribute must not include a multiplication ! * factor from the number of copies which maybe specified in a Copies * attribute. *

                                    *

                                    ! * This attribute belongs to a group of job size attributes which are * describing the size of a job to be printed. The values supplied by * these attributes are intended to be used for routing and scheduling * of jobs on the print service. A client may specify these attributes. *************** import javax.print.attribute.PrintReques *** 66,82 **** *

                                    * @see javax.print.attribute.standard.JobMediaSheets * @see javax.print.attribute.standard.JobImpressions ! * * @author Michael Koch */ public final class JobKOctets extends IntegerSyntax implements PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = -8959710146498202869L; ! /** * Creates a JobKOctets object. ! * The value is in units of K (1024) octets rounded up to the next highest K. * * @param value the number of K octets * --- 66,82 ---- *

                                    * @see javax.print.attribute.standard.JobMediaSheets * @see javax.print.attribute.standard.JobImpressions ! * * @author Michael Koch */ public final class JobKOctets extends IntegerSyntax implements PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = -8959710146498202869L; ! /** * Creates a JobKOctets object. ! * The value is in units of K (1024) octets rounded up to the next highest K. * * @param value the number of K octets * *************** public final class JobKOctets extends In *** 89,101 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 89,101 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobKOctetsProcessed.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobKOctetsProcessed.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 46,56 **** * the total number of octets already processed in K octets units. *

                                    * The supplied value will be rounded up to the next highest K octets. ! * This attribute will not include a multiplication factor from the number * of copies. *

                                    *

                                    ! * This attribute belongs to a group of job progress attributes which are * reporting on the progress of a print job. *

                                    *

                                    --- 46,56 ---- * the total number of octets already processed in K octets units. *

                                    * The supplied value will be rounded up to the next highest K octets. ! * This attribute will not include a multiplication factor from the number * of copies. *

                                    *

                                    ! * This attribute belongs to a group of job progress attributes which are * reporting on the progress of a print job. *

                                    *

                                    *************** import javax.print.attribute.PrintJobAtt *** 58,74 **** *

                                    * @see javax.print.attribute.standard.JobMediaSheetsCompleted * @see javax.print.attribute.standard.JobImpressionsCompleted ! * * @author Michael Koch */ public final class JobKOctetsProcessed extends IntegerSyntax implements PrintJobAttribute { private static final long serialVersionUID = -6265238509657881806L; ! /** * Creates a JobKOctetsProcessed object. ! * The value is in units of K (1024) octets rounded up to the next highest K. * * @param value the number of processed K octets * --- 58,74 ---- *

                                    * @see javax.print.attribute.standard.JobMediaSheetsCompleted * @see javax.print.attribute.standard.JobImpressionsCompleted ! * * @author Michael Koch */ public final class JobKOctetsProcessed extends IntegerSyntax implements PrintJobAttribute { private static final long serialVersionUID = -6265238509657881806L; ! /** * Creates a JobKOctetsProcessed object. ! * The value is in units of K (1024) octets rounded up to the next highest K. * * @param value the number of processed K octets * *************** public final class JobKOctetsProcessed e *** 81,93 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 81,93 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.SupportedVa *** 43,55 **** /** ! * The JobKOctetsSupported printing attribute specifies the ! * supported range of values for the * {@link javax.print.attribute.standard.JobKOctets} attribute. *

                                    * IPP Compatibility: JobKOctetsSupported is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 43,55 ---- /** ! * The JobKOctetsSupported printing attribute specifies the ! * supported range of values for the * {@link javax.print.attribute.standard.JobKOctets} attribute. *

                                    * IPP Compatibility: JobKOctetsSupported is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class JobKOctetsSupported e *** 71,94 **** public JobKOctetsSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof JobKOctetsSupported)) return false; ! return super.equals(obj); } --- 71,94 ---- public JobKOctetsSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof JobKOctetsSupported)) return false; ! return super.equals(obj); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobMediaSheets.java -- Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobMediaSheets.java -- Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 51,57 **** * was specified for the job. *

                                    *

                                    ! * This attribute belongs to a group of job size attributes which are * describing the size of a job to be printed. The values supplied by * these attributes are intended to be used for routing and scheduling * of jobs on the print service. A client may specify these attributes. --- 51,57 ---- * was specified for the job. *

                                    *

                                    ! * This attribute belongs to a group of job size attributes which are * describing the size of a job to be printed. The values supplied by * these attributes are intended to be used for routing and scheduling * of jobs on the print service. A client may specify these attributes. *************** import javax.print.attribute.PrintReques *** 64,77 **** *

                                    * @see javax.print.attribute.standard.JobKOctets * @see javax.print.attribute.standard.JobImpressions ! * * @author Michael Koch */ public class JobMediaSheets extends IntegerSyntax implements PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = 408871131531979741L; ! /** * Creates a JobMediaSheets object. * --- 64,77 ---- *

                                    * @see javax.print.attribute.standard.JobKOctets * @see javax.print.attribute.standard.JobImpressions ! * * @author Michael Koch */ public class JobMediaSheets extends IntegerSyntax implements PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = 408871131531979741L; ! /** * Creates a JobMediaSheets object. * *************** public class JobMediaSheets extends Inte *** 86,98 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 86,98 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobMediaSheetsCompleted.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobMediaSheetsCompleted.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 43,51 **** /** * The JobMediaSheetsCompleted printing attribute reports ! * the number of media sheets already processed. *

                                    ! * This attribute belongs to a group of job progress attributes which are * reporting on the progress of a print job. *

                                    *

                                    --- 43,51 ---- /** * The JobMediaSheetsCompleted printing attribute reports ! * the number of media sheets already processed. *

                                    ! * This attribute belongs to a group of job progress attributes which are * reporting on the progress of a print job. *

                                    *

                                    *************** import javax.print.attribute.PrintJobAtt *** 53,66 **** *

                                    * @see javax.print.attribute.standard.JobImpressionsCompleted * @see javax.print.attribute.standard.JobKOctetsProcessed ! * * @author Michael Koch */ public final class JobMediaSheetsCompleted extends IntegerSyntax implements PrintJobAttribute { private static final long serialVersionUID = 1739595973810840475L; ! /** * Creates a JobMediaSheetsCompleted object. * --- 53,66 ---- *

                                    * @see javax.print.attribute.standard.JobImpressionsCompleted * @see javax.print.attribute.standard.JobKOctetsProcessed ! * * @author Michael Koch */ public final class JobMediaSheetsCompleted extends IntegerSyntax implements PrintJobAttribute { private static final long serialVersionUID = 1739595973810840475L; ! /** * Creates a JobMediaSheetsCompleted object. * *************** public final class JobMediaSheetsComplet *** 75,87 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 75,87 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.SupportedVa *** 43,55 **** /** ! * The JobMediaSheetsSupported printing attribute specifies the ! * supported range of values for the * {@link javax.print.attribute.standard.JobMediaSheets} attribute. *

                                    * IPP Compatibility: JobMediaSheetsSupported is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 43,55 ---- /** ! * The JobMediaSheetsSupported printing attribute specifies the ! * supported range of values for the * {@link javax.print.attribute.standard.JobMediaSheets} attribute. *

                                    * IPP Compatibility: JobMediaSheetsSupported is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class JobMediaSheetsSupport *** 59,65 **** private static final long serialVersionUID = 2953685470388672940L; /** ! * Constructs a JobMediaSheetsSupported object with the * given range of supported job media sheets values. * * @param lowerBound the lower bound value --- 59,65 ---- private static final long serialVersionUID = 2953685470388672940L; /** ! * Constructs a JobMediaSheetsSupported object with the * given range of supported job media sheets values. * * @param lowerBound the lower bound value *************** public final class JobMediaSheetsSupport *** 71,94 **** public JobMediaSheetsSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof JobMediaSheetsSupported)) return false; ! return super.equals(obj); } --- 71,94 ---- public JobMediaSheetsSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof JobMediaSheetsSupported)) return false; ! return super.equals(obj); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobMessageFromOperator.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobMessageFromOperator.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 45,59 **** import javax.print.attribute.TextSyntax; /** ! * The JobMessageFromOperator printing attribute provides * a message from an operator or a system administrator related to the * print job. This may include information why a certain action has been * taken on the print job like a modification. *

                                    ! * IPP Compatibility: JobMessageFromOperator is an IPP 1.1 * attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobMessageFromOperator extends TextSyntax --- 45,59 ---- import javax.print.attribute.TextSyntax; /** ! * The JobMessageFromOperator printing attribute provides * a message from an operator or a system administrator related to the * print job. This may include information why a certain action has been * taken on the print job like a modification. *

                                    ! * IPP Compatibility: JobMessageFromOperator is an IPP 1.1 * attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobMessageFromOperator extends TextSyntax *************** public final class JobMessageFromOperato *** 80,86 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 80,86 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobName.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobName.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobName.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobName.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 46,57 **** import javax.print.attribute.TextSyntax; /** ! * The JobName printing attribute provides the name of a * print job for identification. *

                                    * IPP Compatibility: JobName is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobName extends TextSyntax --- 46,57 ---- import javax.print.attribute.TextSyntax; /** ! * The JobName printing attribute provides the name of a * print job for identification. *

                                    * IPP Compatibility: JobName is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobName extends TextSyntax *************** public final class JobName extends TextS *** 78,84 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 78,84 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobOriginatingUserName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobOriginatingUserName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 45,56 **** import javax.print.attribute.TextSyntax; /** ! * The JobOriginatingUserName attribute specifies the name of * the user which submitted the print job. *

                                    * IPP Compatibility: JobOriginatingUserName is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobOriginatingUserName extends TextSyntax --- 45,56 ---- import javax.print.attribute.TextSyntax; /** ! * The JobOriginatingUserName attribute specifies the name of * the user which submitted the print job. *

                                    * IPP Compatibility: JobOriginatingUserName is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobOriginatingUserName extends TextSyntax *************** public final class JobOriginatingUserNam *** 77,83 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,83 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobPriority.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobPriority.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobPriority.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobPriority.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobPriority.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobPriority.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 47,60 **** * The JobPriority printing attribute specifies * the priority for scheduling a job on the print service. *

                                    ! * A client may specify any value between 1 (lowest priority) and 100 * (highest priority). A print service prints jobs with a priority * value of n before those with a priority value of n-1. *

                                    *

                                    * IPP Compatibility: JobPriority is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobPriority extends IntegerSyntax --- 47,60 ---- * The JobPriority printing attribute specifies * the priority for scheduling a job on the print service. *

                                    ! * A client may specify any value between 1 (lowest priority) and 100 * (highest priority). A print service prints jobs with a priority * value of n before those with a priority value of n-1. *

                                    *

                                    * IPP Compatibility: JobPriority is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobPriority extends IntegerSyntax *************** public final class JobPriority extends I *** 82,88 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 82,88 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JobPrioritySupported.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JobPrioritySupported.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.SupportedVa *** 48,54 **** *

                                    * A client may specify any JobPriority value between 1 and 100. If a * print service supports fewer priority levels it indicates the maximum ! * levels through this attribute. The print service then automatically * maps the job priority value provided by the client in an even distribution * over the whole range of 1 to 100. *

                                    --- 48,54 ---- *

                                    * A client may specify any JobPriority value between 1 and 100. If a * print service supports fewer priority levels it indicates the maximum ! * levels through this attribute. The print service then automatically * maps the job priority value provided by the client in an even distribution * over the whole range of 1 to 100. *

                                    *************** import javax.print.attribute.SupportedVa *** 56,62 **** * IPP Compatibility: JobPrioritySupported is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.JobPriority ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobPrioritySupported extends IntegerSyntax --- 56,62 ---- * IPP Compatibility: JobPrioritySupported is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.JobPriority ! * * @author Michael Koch (konqueror@gmx.de) */ public final class JobPrioritySupported extends IntegerSyntax *************** public final class JobPrioritySupported *** 84,90 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 84,90 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobSheets.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobSheets.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobSheets.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobSheets.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 45,55 **** /** * The JobSheets printing attribute specifies if a ! * job start/end sheets should be printed. *

                                    * IPP Compatibility: JobSheets is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,55 ---- /** * The JobSheets printing attribute specifies if a ! * job start/end sheets should be printed. *

                                    * IPP Compatibility: JobSheets is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class JobSheets extends EnumSynta *** 59,82 **** private static final long serialVersionUID = -4735258056132519759L; /** ! * No job sheet is printed. */ public static final JobSheets NONE = new JobSheets(0); ! /** ! * The standard job sheet is printed. The sheet and if it * is printed only as start sheet or also as end sheet is * site specific. */ public static final JobSheets STANDARD = new JobSheets(1); private static final String[] stringTable = { "none", "standard" }; ! private static final JobSheets[] enumValueTable = { NONE, STANDARD }; ! /** * Constructs a JobSheets object. ! * * @param value the enum value. */ protected JobSheets(int value) --- 59,82 ---- private static final long serialVersionUID = -4735258056132519759L; /** ! * No job sheet is printed. */ public static final JobSheets NONE = new JobSheets(0); ! /** ! * The standard job sheet is printed. The sheet and if it * is printed only as start sheet or also as end sheet is * site specific. */ public static final JobSheets STANDARD = new JobSheets(1); private static final String[] stringTable = { "none", "standard" }; ! private static final JobSheets[] enumValueTable = { NONE, STANDARD }; ! /** * Constructs a JobSheets object. ! * * @param value the enum value. */ protected JobSheets(int value) *************** public class JobSheets extends EnumSynta *** 103,109 **** { return "job-sheets"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 103,109 ---- { return "job-sheets"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobState.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobState.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobState.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobState.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintJobAtt *** 50,60 **** * attribute provides further detailed information about * the given job state. Detailed information about the job * state and job state reasons can be found in the RFC 2911. ! *

                                    *

                                    * IPP Compatibility: JobState is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 50,60 ---- * attribute provides further detailed information about * the given job state. Detailed information about the job * state and job state reasons can be found in the RFC 2911. ! *

                                    *

                                    * IPP Compatibility: JobState is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class JobState extends EnumSyntax *** 67,78 **** * The job state is currently unknown. */ public static final JobState UNKNOWN = new JobState(0); ! /** * The job is pending processing. */ public static final JobState PENDING = new JobState(3); ! /** * The job is currently not a candidate for printing because * of reasons reported by the job-state-reasons attribute. If --- 67,78 ---- * The job state is currently unknown. */ public static final JobState UNKNOWN = new JobState(0); ! /** * The job is pending processing. */ public static final JobState PENDING = new JobState(3); ! /** * The job is currently not a candidate for printing because * of reasons reported by the job-state-reasons attribute. If *************** public class JobState extends EnumSyntax *** 80,131 **** * pending state. */ public static final JobState PENDING_HELD = new JobState(4); ! /** * The job is currently processed. */ public static final JobState PROCESSING = new JobState(5); ! /** * The job's processing has stopped. The job-state-reasons * attribute may indicate the reason(s). The job will return * to the processing state if the reasons are no longer present. */ public static final JobState PROCESSING_STOPPED = new JobState(6); ! /** * The job has been canceled by the client. */ public static final JobState CANCELED = new JobState(7); ! /** * The job has been aborted by the system. */ public static final JobState ABORTED = new JobState(8); ! /** * The job has completed successfully. */ public static final JobState COMPLETED = new JobState(9); ! private static final String[] stringTable = { "unknown", null, null, "pending", "pending-held", ! "processing", "processing-stopped", ! "canceled", "aborted", "completed"}; ! private static final JobState[] enumValueTable = { UNKNOWN, null, null, PENDING, PENDING_HELD, PROCESSING, PROCESSING_STOPPED, CANCELED, ABORTED, COMPLETED }; ! /** * Constructs a JobState object. ! * * @param value the enum value. */ protected JobState(int value) --- 80,131 ---- * pending state. */ public static final JobState PENDING_HELD = new JobState(4); ! /** * The job is currently processed. */ public static final JobState PROCESSING = new JobState(5); ! /** * The job's processing has stopped. The job-state-reasons * attribute may indicate the reason(s). The job will return * to the processing state if the reasons are no longer present. */ public static final JobState PROCESSING_STOPPED = new JobState(6); ! /** * The job has been canceled by the client. */ public static final JobState CANCELED = new JobState(7); ! /** * The job has been aborted by the system. */ public static final JobState ABORTED = new JobState(8); ! /** * The job has completed successfully. */ public static final JobState COMPLETED = new JobState(9); ! private static final String[] stringTable = { "unknown", null, null, "pending", "pending-held", ! "processing", "processing-stopped", ! "canceled", "aborted", "completed"}; ! private static final JobState[] enumValueTable = { UNKNOWN, null, null, PENDING, PENDING_HELD, PROCESSING, PROCESSING_STOPPED, CANCELED, ABORTED, COMPLETED }; ! /** * Constructs a JobState object. ! * * @param value the enum value. */ protected JobState(int value) *************** public class JobState extends EnumSyntax *** 152,158 **** { return "job-state"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 152,158 ---- { return "job-state"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobStateReason.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobStateReason.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobStateReason.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobStateReason.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.EnumSyntax; *** 45,57 **** * The JobStateReason attribute provides additional * information about the current state of a job. Its always part * of the {@link javax.print.attribute.standard.JobStateReasons} ! * printing attribute. *

                                    ! * IPP Compatibility: JobStateReason is not an IPP 1.1 * attribute itself but used inside the JobStateReasons * attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,57 ---- * The JobStateReason attribute provides additional * information about the current state of a job. Its always part * of the {@link javax.print.attribute.standard.JobStateReasons} ! * printing attribute. *

                                    ! * IPP Compatibility: JobStateReason is not an IPP 1.1 * attribute itself but used inside the JobStateReasons * attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class JobStateReason extends Enum *** 65,243 **** * data for processing. */ public static final JobStateReason JOB_INCOMING = new JobStateReason(0); ! /** * The printer is expecting additional document data before it * can move this job into the processing state. */ public static final JobStateReason JOB_DATA_INSUFFICIENT = new JobStateReason(1); ! /** * The printer is unable to access one or more documents provided * by reference in the print job. */ public static final JobStateReason DOCUMENT_ACCESS_ERROR = new JobStateReason(2); ! /** * The printer has not received the whole job submission. This * indicates no reason for the interruption. */ public static final JobStateReason SUBMISSION_INTERRUPTED = new JobStateReason(3); ! /** * The printer transfers the job to the actual output device. */ public static final JobStateReason JOB_OUTGOING = new JobStateReason(4); ! /** ! * The job was submitted with a JobHoldUntil attribute which ! * specifies a time period still in the future and causes the job to * be on hold. */ public static final JobStateReason JOB_HOLD_UNTIL_SPECIFIED = new JobStateReason(5); ! /** * One or more resources needed by the job are not ready. E.g. needed * media type. */ public static final JobStateReason RESOURCES_ARE_NOT_READY = new JobStateReason(6); ! /** * The printer stopped partly. */ public static final JobStateReason PRINTER_STOPPED_PARTLY = new JobStateReason(7); ! /** * The printer stopped complete. */ public static final JobStateReason PRINTER_STOPPED = new JobStateReason(8); ! /** * The printer is currently interpreting the jobs document data. * Detailed state of the job's processing state. */ public static final JobStateReason JOB_INTERPRETING = new JobStateReason(9); ! /** * The printer has queued the document data. * Detailed state of the job's processing state. */ public static final JobStateReason JOB_QUEUED = new JobStateReason(10); ! /** * The printer is transforming the document data to another representation. * Detailed state of the job's processing state. */ public static final JobStateReason JOB_TRANSFORMING = new JobStateReason(11); ! /** * The job is queued for marking. */ public static final JobStateReason JOB_QUEUED_FOR_MARKER = new JobStateReason(12); ! /** * The job is currently printing. */ public static final JobStateReason JOB_PRINTING = new JobStateReason(13); ! /** * The job was canceled by the user (the owner of the job). */ public static final JobStateReason JOB_CANCELED_BY_USER = new JobStateReason(14); ! /** * The job was canceled by the operator. */ public static final JobStateReason JOB_CANCELED_BY_OPERATOR = new JobStateReason(15); ! /** * The job was canceled by an unidentified local user at the device. */ public static final JobStateReason JOB_CANCELED_AT_DEVICE = new JobStateReason(16); ! /** * The job has been aborted by the system. */ public static final JobStateReason ABORTED_BY_SYSTEM = new JobStateReason(17); ! /** * The printer aborted the job because of an unsupported compression while * trying to decompress the document data. */ public static final JobStateReason UNSUPPORTED_COMPRESSION = new JobStateReason(18); ! /** * The printer aborted the job because of a compression error while * trying to decompress the document data. If this state is given the test * for supported compression has already been passed. */ public static final JobStateReason COMPRESSION_ERROR = new JobStateReason(19); ! /** * The printer aborted the job because of the document format is not supported. ! * This may happen if a job is specified as application/octet-stream format. */ public static final JobStateReason UNSUPPORTED_DOCUMENT_FORMAT = new JobStateReason(20); ! /** ! * The printer aborted the job because of an error in the document data. */ public static final JobStateReason DOCUMENT_FORMAT_ERROR = new JobStateReason(21); ! /** * The client has either canceled the job or the printer aborted the job. ! * However the printer still performs some action on the job e.g. to cleanup. */ public static final JobStateReason PROCESSING_TO_STOP_POINT = new JobStateReason(22); ! /** * The printer is offline and therefore is not accepting jobs. */ public static final JobStateReason SERVICE_OFF_LINE = new JobStateReason(23); ! /** ! * The printer completed the job successfully. */ public static final JobStateReason JOB_COMPLETED_SUCCESSFULLY = new JobStateReason(24); ! /** * The printer completed the job with warnings. */ public static final JobStateReason JOB_COMPLETED_WITH_WARNINGS = new JobStateReason(25); ! /** * The printer completed the job with errors. */ public static final JobStateReason JOB_COMPLETED_WITH_ERRORS = new JobStateReason(26); ! /** ! * The job is retained and is able to be restared. */ public static final JobStateReason JOB_RESTARTABLE = new JobStateReason(27); ! /** * The printer has forwarded the job to the actual output device. This device * is not capable of reporting the state back so that the job state is set ! * to completed by the printer. */ public static final JobStateReason QUEUED_IN_DEVICE = new JobStateReason(28); ! private static final String[] stringTable = ! { "job-incoming", "job-data-insufficient", "document-access-error", "submission-interrupted", "job-outgoing", "job-hold-until-specified", "resources-are-not-ready", "printer-stopped-partly", "printer-stopped", ! "job-interpreting", "job-queued", "job-transforming", "job-queued-for-marker", "job-printing", "job-canceled-by-user", ! "job-canceled-by-operator", "job-canceled-at-device", "aborted-by-system", "unsupported-compression", "compression-error", ! "unsupported-document-format", "document-format-error", ! "processing-to-stop-point", "service-off-line", ! "job-completed-successfully", "job-completed-with-warnings", "job-completed-with-errors", "job-restartable", "queued-in-device" }; ! ! private static final JobStateReason[] enumValueTable = ! { JOB_INCOMING, JOB_DATA_INSUFFICIENT, DOCUMENT_ACCESS_ERROR, ! SUBMISSION_INTERRUPTED, JOB_OUTGOING, JOB_HOLD_UNTIL_SPECIFIED, RESOURCES_ARE_NOT_READY, PRINTER_STOPPED_PARTLY, PRINTER_STOPPED, JOB_INTERPRETING, JOB_QUEUED, JOB_TRANSFORMING, JOB_QUEUED_FOR_MARKER, JOB_PRINTING, JOB_CANCELED_BY_USER, JOB_CANCELED_BY_OPERATOR, --- 65,243 ---- * data for processing. */ public static final JobStateReason JOB_INCOMING = new JobStateReason(0); ! /** * The printer is expecting additional document data before it * can move this job into the processing state. */ public static final JobStateReason JOB_DATA_INSUFFICIENT = new JobStateReason(1); ! /** * The printer is unable to access one or more documents provided * by reference in the print job. */ public static final JobStateReason DOCUMENT_ACCESS_ERROR = new JobStateReason(2); ! /** * The printer has not received the whole job submission. This * indicates no reason for the interruption. */ public static final JobStateReason SUBMISSION_INTERRUPTED = new JobStateReason(3); ! /** * The printer transfers the job to the actual output device. */ public static final JobStateReason JOB_OUTGOING = new JobStateReason(4); ! /** ! * The job was submitted with a JobHoldUntil attribute which ! * specifies a time period still in the future and causes the job to * be on hold. */ public static final JobStateReason JOB_HOLD_UNTIL_SPECIFIED = new JobStateReason(5); ! /** * One or more resources needed by the job are not ready. E.g. needed * media type. */ public static final JobStateReason RESOURCES_ARE_NOT_READY = new JobStateReason(6); ! /** * The printer stopped partly. */ public static final JobStateReason PRINTER_STOPPED_PARTLY = new JobStateReason(7); ! /** * The printer stopped complete. */ public static final JobStateReason PRINTER_STOPPED = new JobStateReason(8); ! /** * The printer is currently interpreting the jobs document data. * Detailed state of the job's processing state. */ public static final JobStateReason JOB_INTERPRETING = new JobStateReason(9); ! /** * The printer has queued the document data. * Detailed state of the job's processing state. */ public static final JobStateReason JOB_QUEUED = new JobStateReason(10); ! /** * The printer is transforming the document data to another representation. * Detailed state of the job's processing state. */ public static final JobStateReason JOB_TRANSFORMING = new JobStateReason(11); ! /** * The job is queued for marking. */ public static final JobStateReason JOB_QUEUED_FOR_MARKER = new JobStateReason(12); ! /** * The job is currently printing. */ public static final JobStateReason JOB_PRINTING = new JobStateReason(13); ! /** * The job was canceled by the user (the owner of the job). */ public static final JobStateReason JOB_CANCELED_BY_USER = new JobStateReason(14); ! /** * The job was canceled by the operator. */ public static final JobStateReason JOB_CANCELED_BY_OPERATOR = new JobStateReason(15); ! /** * The job was canceled by an unidentified local user at the device. */ public static final JobStateReason JOB_CANCELED_AT_DEVICE = new JobStateReason(16); ! /** * The job has been aborted by the system. */ public static final JobStateReason ABORTED_BY_SYSTEM = new JobStateReason(17); ! /** * The printer aborted the job because of an unsupported compression while * trying to decompress the document data. */ public static final JobStateReason UNSUPPORTED_COMPRESSION = new JobStateReason(18); ! /** * The printer aborted the job because of a compression error while * trying to decompress the document data. If this state is given the test * for supported compression has already been passed. */ public static final JobStateReason COMPRESSION_ERROR = new JobStateReason(19); ! /** * The printer aborted the job because of the document format is not supported. ! * This may happen if a job is specified as application/octet-stream format. */ public static final JobStateReason UNSUPPORTED_DOCUMENT_FORMAT = new JobStateReason(20); ! /** ! * The printer aborted the job because of an error in the document data. */ public static final JobStateReason DOCUMENT_FORMAT_ERROR = new JobStateReason(21); ! /** * The client has either canceled the job or the printer aborted the job. ! * However the printer still performs some action on the job e.g. to cleanup. */ public static final JobStateReason PROCESSING_TO_STOP_POINT = new JobStateReason(22); ! /** * The printer is offline and therefore is not accepting jobs. */ public static final JobStateReason SERVICE_OFF_LINE = new JobStateReason(23); ! /** ! * The printer completed the job successfully. */ public static final JobStateReason JOB_COMPLETED_SUCCESSFULLY = new JobStateReason(24); ! /** * The printer completed the job with warnings. */ public static final JobStateReason JOB_COMPLETED_WITH_WARNINGS = new JobStateReason(25); ! /** * The printer completed the job with errors. */ public static final JobStateReason JOB_COMPLETED_WITH_ERRORS = new JobStateReason(26); ! /** ! * The job is retained and is able to be restared. */ public static final JobStateReason JOB_RESTARTABLE = new JobStateReason(27); ! /** * The printer has forwarded the job to the actual output device. This device * is not capable of reporting the state back so that the job state is set ! * to completed by the printer. */ public static final JobStateReason QUEUED_IN_DEVICE = new JobStateReason(28); ! private static final String[] stringTable = ! { "job-incoming", "job-data-insufficient", "document-access-error", "submission-interrupted", "job-outgoing", "job-hold-until-specified", "resources-are-not-ready", "printer-stopped-partly", "printer-stopped", ! "job-interpreting", "job-queued", "job-transforming", "job-queued-for-marker", "job-printing", "job-canceled-by-user", ! "job-canceled-by-operator", "job-canceled-at-device", "aborted-by-system", "unsupported-compression", "compression-error", ! "unsupported-document-format", "document-format-error", ! "processing-to-stop-point", "service-off-line", ! "job-completed-successfully", "job-completed-with-warnings", "job-completed-with-errors", "job-restartable", "queued-in-device" }; ! ! private static final JobStateReason[] enumValueTable = ! { JOB_INCOMING, JOB_DATA_INSUFFICIENT, DOCUMENT_ACCESS_ERROR, ! SUBMISSION_INTERRUPTED, JOB_OUTGOING, JOB_HOLD_UNTIL_SPECIFIED, RESOURCES_ARE_NOT_READY, PRINTER_STOPPED_PARTLY, PRINTER_STOPPED, JOB_INTERPRETING, JOB_QUEUED, JOB_TRANSFORMING, JOB_QUEUED_FOR_MARKER, JOB_PRINTING, JOB_CANCELED_BY_USER, JOB_CANCELED_BY_OPERATOR, *************** public class JobStateReason extends Enum *** 246,255 **** PROCESSING_TO_STOP_POINT, SERVICE_OFF_LINE, JOB_COMPLETED_SUCCESSFULLY, JOB_COMPLETED_WITH_WARNINGS, JOB_COMPLETED_WITH_ERRORS, JOB_RESTARTABLE, QUEUED_IN_DEVICE }; ! /** * Constructs a JobStateReason object. ! * * @param value the enum value. */ protected JobStateReason(int value) --- 246,255 ---- PROCESSING_TO_STOP_POINT, SERVICE_OFF_LINE, JOB_COMPLETED_SUCCESSFULLY, JOB_COMPLETED_WITH_WARNINGS, JOB_COMPLETED_WITH_ERRORS, JOB_RESTARTABLE, QUEUED_IN_DEVICE }; ! /** * Constructs a JobStateReason object. ! * * @param value the enum value. */ protected JobStateReason(int value) *************** public class JobStateReason extends Enum *** 276,282 **** { return "job-state-reason"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 276,282 ---- { return "job-state-reason"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java Mon Aug 2 13:27:43 2010 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.Attribute; *** 44,57 **** import javax.print.attribute.PrintJobAttribute; /** ! * The JobStateReasons attribute provides the set of ! * additional informations available about the current state of a print job. *

                                    * IPP Compatibility: JobStateReasons is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.JobState * @see javax.print.attribute.standard.JobStateReason ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 44,57 ---- import javax.print.attribute.PrintJobAttribute; /** ! * The JobStateReasons attribute provides the set of ! * additional informations available about the current state of a print job. *

                                    * IPP Compatibility: JobStateReasons is an IPP 1.1 attribute. *

                                    * @see javax.print.attribute.standard.JobState * @see javax.print.attribute.standard.JobStateReason ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class JobStateReasons exten *** 62,68 **** /** * Constructs an empty JobStateReasons attribute. ! */ public JobStateReasons() { super(); --- 62,68 ---- /** * Constructs an empty JobStateReasons attribute. ! */ public JobStateReasons() { super(); *************** public final class JobStateReasons exten *** 71,80 **** /** * Constructs an empty JobStateReasons attribute * with the given initial capacity and load factor. ! * * @param initialCapacity the intial capacity. * @param loadFactor the load factor of the underlying HashSet. ! * * @throws IllegalArgumentException if initialCapacity < 0 * @throws IllegalArgumentException if initialCapacity or loadFactor < 0 */ --- 71,80 ---- /** * Constructs an empty JobStateReasons attribute * with the given initial capacity and load factor. ! * * @param initialCapacity the intial capacity. * @param loadFactor the load factor of the underlying HashSet. ! * * @throws IllegalArgumentException if initialCapacity < 0 * @throws IllegalArgumentException if initialCapacity or loadFactor < 0 */ *************** public final class JobStateReasons exten *** 86,94 **** /** * Constructs an empty JobStateReasons attribute * with the given initial capacity and the default load factor. ! * * @param initialCapacity the intial capacity. ! * * @throws IllegalArgumentException if initialCapacity < 0 */ public JobStateReasons(int initialCapacity) --- 86,94 ---- /** * Constructs an empty JobStateReasons attribute * with the given initial capacity and the default load factor. ! * * @param initialCapacity the intial capacity. ! * * @throws IllegalArgumentException if initialCapacity < 0 */ public JobStateReasons(int initialCapacity) *************** public final class JobStateReasons exten *** 99,110 **** /** * Constructs a JobStateReasons attribute * with the content of the given collection. ! * * @param collection the collection for the initial values. ! * ! * @throws NullPointerException if collection or any value is * null. ! * @throws ClassCastException if values of collection are not of type * JobStateReason. */ public JobStateReasons(Collection collection) --- 99,110 ---- /** * Constructs a JobStateReasons attribute * with the content of the given collection. ! * * @param collection the collection for the initial values. ! * ! * @throws NullPointerException if collection or any value is * null. ! * @throws ClassCastException if values of collection are not of type * JobStateReason. */ public JobStateReasons(Collection collection) *************** public final class JobStateReasons exten *** 116,125 **** /** * Adds the given job state reason object to the set. ! * * @param o the reason of type JobStateReason. * @return true if set changed, false otherwise. ! * * @throws NullPointerException if given object is null. * @throws ClassCastException if given object is not an instance of * JobStateReason. --- 116,125 ---- /** * Adds the given job state reason object to the set. ! * * @param o the reason of type JobStateReason. * @return true if set changed, false otherwise. ! * * @throws NullPointerException if given object is null. * @throws ClassCastException if given object is not an instance of * JobStateReason. *************** public final class JobStateReasons exten *** 127,137 **** public boolean add(JobStateReason o) { if (o == null) ! throw new NullPointerException("reason is null"); ! return super.add(o); } ! /** * Returns category of this class. * --- 127,137 ---- public boolean add(JobStateReason o) { if (o == null) ! throw new NullPointerException("reason is null"); ! return super.add(o); } ! /** * Returns category of this class. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Media.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Media.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Media.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Media.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 50,56 **** *

                                    * The media to be used can be specified in three ways represented * by the media subclasses {@link javax.print.attribute.standard.MediaTray}, ! * {@link javax.print.attribute.standard.MediaName} and * {@link javax.print.attribute.standard.MediaSizeName}: *

                                      *
                                    • Selection by paper source - selection of printer tray to be used.
                                    • --- 50,56 ---- *

                                      * The media to be used can be specified in three ways represented * by the media subclasses {@link javax.print.attribute.standard.MediaTray}, ! * {@link javax.print.attribute.standard.MediaName} and * {@link javax.print.attribute.standard.MediaSizeName}: *

                                        *
                                      • Selection by paper source - selection of printer tray to be used.
                                      • *************** import javax.print.attribute.PrintReques *** 59,69 **** *
                                      * Each of the sublcasses represents the IPP attribute media * and provides predefined values to be used. ! *

                                      *

                                      * IPP Compatibility: Media is an IPP 1.1 attribute. *

                                      ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 59,69 ---- *
                                    * Each of the sublcasses represents the IPP attribute media * and provides predefined values to be used. ! *

                                    *

                                    * IPP Compatibility: Media is an IPP 1.1 attribute. *

                                    ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public abstract class Media extends Enum *** 74,87 **** /** * Constructs a Media object. ! * * @param value the enum value. */ protected Media(int value) { super(value); } ! /** * Tests if the given object is equal to this object. * The objects are considered equal if both are of the same --- 74,87 ---- /** * Constructs a Media object. ! * * @param value the enum value. */ protected Media(int value) { super(value); } ! /** * Tests if the given object is equal to this object. * The objects are considered equal if both are of the same *************** public abstract class Media extends Enum *** 89,102 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (obj == null) return false; ! return (obj.getClass() == this.getClass() && ((Media) obj).getValue() == this.getValue()); } --- 89,102 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (obj == null) return false; ! return (obj.getClass() == this.getClass() && ((Media) obj).getValue() == this.getValue()); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaName.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaName.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaName.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaName.java Tue Jan 11 19:46:05 2011 *************** package javax.print.attribute.standard; *** 40,92 **** import javax.print.attribute.EnumSyntax; /** ! * MediaName is a subclass of the Media printing ! * attribute and provides selection of media to be used by the means of ! * defined names. The class pre-defines commonly available media names. ! * This media type enumeration may be used in alternative to * MediaSizeName/MediaTray. *

                                    * IPP Compatibility: MediaName is not an IPP 1.1 attribute on its own. * It provides parts of the media attribute type values. *

                                    ! * * @author Sven de Marothy * @author Wolfgang Baer (WBaer@gmx.de) */ public class MediaName extends Media { private static final long serialVersionUID = 4653117714524155448L; ! /** * The North American letter white medium. */ public static final MediaName NA_LETTER_WHITE = new MediaName(0); ! /** * The North American letter transparent medium. */ public static final MediaName NA_LETTER_TRANSPARENT = new MediaName(1); ! /** * The ISO A4 white medium. */ public static final MediaName ISO_A4_WHITE = new MediaName(2); ! /** ! * The ISO A4 transparent medium. */ public static final MediaName ISO_A4_TRANSPARENT = new MediaName(3); ! private static final String[] stringTable = { "na-letter-white", ! "na-letter-transparent", "iso-a4-white", "iso-a4-transparent" }; ! ! private static final MediaName[] enumValueTable = { NA_LETTER_WHITE, ! NA_LETTER_TRANSPARENT, ! ISO_A4_WHITE, ! ISO_A4_TRANSPARENT }; ! /** * Creates a MediaName object. * --- 40,92 ---- import javax.print.attribute.EnumSyntax; /** ! * MediaName is a subclass of the Media printing ! * attribute and provides selection of media to be used by the means of ! * defined names. The class pre-defines commonly available media names. ! * This media type enumeration may be used in alternative to * MediaSizeName/MediaTray. *

                                    * IPP Compatibility: MediaName is not an IPP 1.1 attribute on its own. * It provides parts of the media attribute type values. *

                                    ! * * @author Sven de Marothy * @author Wolfgang Baer (WBaer@gmx.de) */ public class MediaName extends Media { private static final long serialVersionUID = 4653117714524155448L; ! /** * The North American letter white medium. */ public static final MediaName NA_LETTER_WHITE = new MediaName(0); ! /** * The North American letter transparent medium. */ public static final MediaName NA_LETTER_TRANSPARENT = new MediaName(1); ! /** * The ISO A4 white medium. */ public static final MediaName ISO_A4_WHITE = new MediaName(2); ! /** ! * The ISO A4 transparent medium. */ public static final MediaName ISO_A4_TRANSPARENT = new MediaName(3); ! private static final String[] stringTable = { "na-letter-white", ! "na-letter-transparent", "iso-a4-white", "iso-a4-transparent" }; ! ! private static final MediaName[] enumValueTable = { NA_LETTER_WHITE, ! NA_LETTER_TRANSPARENT, ! ISO_A4_WHITE, ! ISO_A4_TRANSPARENT }; ! /** * Creates a MediaName object. * *************** public class MediaName extends Media *** 96,102 **** { super( i ); } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 96,102 ---- { super( i ); } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public class MediaName extends Media *** 118,121 **** return enumValueTable; } } - --- 118,120 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MediaPrintableArea.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MediaPrintableArea.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 47,56 **** * The MediaPrintableArea attribute specifies the area * of a media sheet which is available for printing. *

                                    ! * Due to hardware limitation its not possible with most printers to use the ! * whole area of a media sheet for printing. This attribute defines the area * for printing through the values of the upper left corner position (x,y) ! * on the sheet and the available width and height of the area. The units of * the values are determined by two defined constants: *

                                      *
                                    • INCH - defines an inch
                                    • --- 47,56 ---- * The MediaPrintableArea attribute specifies the area * of a media sheet which is available for printing. *

                                      ! * Due to hardware limitation its not possible with most printers to use the ! * whole area of a media sheet for printing. This attribute defines the area * for printing through the values of the upper left corner position (x,y) ! * on the sheet and the available width and height of the area. The units of * the values are determined by two defined constants: *

                                        *
                                      • INCH - defines an inch
                                      • *************** import javax.print.attribute.PrintReques *** 59,70 **** *

                                        *

                                        * Internal storage:
                                        ! * The values of x, y, width and height are stored internally in micrometers. * The values of the provided constants for inch (value 25400) and millimeters * (value 1000) are used as conversion factors to the internal storage units. * To get the internal micrometers values a multiplication of a given * size value with its units constant value is done. Retrieving the size value ! * for specific units is done by dividing the internal stored value by the * units constant value. *

                                        *

                                        --- 59,70 ---- *

                                        *

                                        * Internal storage:
                                        ! * The values of x, y, width and height are stored internally in micrometers. * The values of the provided constants for inch (value 25400) and millimeters * (value 1000) are used as conversion factors to the internal storage units. * To get the internal micrometers values a multiplication of a given * size value with its units constant value is done. Retrieving the size value ! * for specific units is done by dividing the internal stored value by the * units constant value. *

                                        *

                                        *************** public final class MediaPrintableArea *** 84,96 **** * The actual value is the conversion factor to micrometers. */ public static final int INCH = 25400; ! /** * Constant for the units of millimeters. * The actual value is the conversion factor to micrometers. */ public static final int MM = 1000; ! /** x in micrometers. */ private int x; /** y in micrometers. */ --- 84,96 ---- * The actual value is the conversion factor to micrometers. */ public static final int INCH = 25400; ! /** * Constant for the units of millimeters. * The actual value is the conversion factor to micrometers. */ public static final int MM = 1000; ! /** x in micrometers. */ private int x; /** y in micrometers. */ *************** public final class MediaPrintableArea *** 99,115 **** private int w; /** height in micrometers. */ private int h; ! /** * Creates a new MediaPrintableArea object with the given * float values for the given units. ! * * @param x start of the printable area on the sheet in x direction. * @param y start of the printable area on the sheet in y direction. * @param w the width of the printable area. * @param h the height of the printable area. * @param units the units of the given values. ! * * @throws IllegalArgumentException if x i< 0 or y i< 0 or w i<= 0 * or h i<= 0 or units i< 1 */ --- 99,115 ---- private int w; /** height in micrometers. */ private int h; ! /** * Creates a new MediaPrintableArea object with the given * float values for the given units. ! * * @param x start of the printable area on the sheet in x direction. * @param y start of the printable area on the sheet in y direction. * @param w the width of the printable area. * @param h the height of the printable area. * @param units the units of the given values. ! * * @throws IllegalArgumentException if x i< 0 or y i< 0 or w i<= 0 * or h i<= 0 or units i< 1 */ *************** public final class MediaPrintableArea *** 127,139 **** /** * Creates a new MediaPrintableArea object with the given * int values for the given units. ! * * @param x start of the printable area on the sheet in x direction. * @param y start of the printable area on the sheet in y direction. * @param w the width of the printable area. * @param h the height of the printable area. * @param units the units of the given values. ! * * @throws IllegalArgumentException if x i< 0 or y i< 0 or w i<= 0 * or h i<= 0 or units i< 1 */ --- 127,139 ---- /** * Creates a new MediaPrintableArea object with the given * int values for the given units. ! * * @param x start of the printable area on the sheet in x direction. * @param y start of the printable area on the sheet in y direction. * @param w the width of the printable area. * @param h the height of the printable area. * @param units the units of the given values. ! * * @throws IllegalArgumentException if x i< 0 or y i< 0 or w i<= 0 * or h i<= 0 or units i< 1 */ *************** public final class MediaPrintableArea *** 170,179 **** /** * Returns the height of the printable area for the given units. ! * * @param units the units conversion factor. * @return The height. ! * * @throws IllegalArgumentException if units is < 1 */ public float getHeight(int units) --- 170,179 ---- /** * Returns the height of the printable area for the given units. ! * * @param units the units conversion factor. * @return The height. ! * * @throws IllegalArgumentException if units is < 1 */ public float getHeight(int units) *************** public final class MediaPrintableArea *** 186,195 **** /** * Returns the width of the printable area for the given units. ! * * @param units the units conversion factor. * @return The width. ! * * @throws IllegalArgumentException if units is < 1 */ public float getWidth(int units) --- 186,195 ---- /** * Returns the width of the printable area for the given units. ! * * @param units the units conversion factor. * @return The width. ! * * @throws IllegalArgumentException if units is < 1 */ public float getWidth(int units) *************** public final class MediaPrintableArea *** 201,212 **** } /** ! * Returns the position in x direction of the printable area * for the given units. ! * * @param units the units conversion factor. * @return The position in x direction. ! * * @throws IllegalArgumentException if units is < 1 */ public float getX(int units) --- 201,212 ---- } /** ! * Returns the position in x direction of the printable area * for the given units. ! * * @param units the units conversion factor. * @return The position in x direction. ! * * @throws IllegalArgumentException if units is < 1 */ public float getX(int units) *************** public final class MediaPrintableArea *** 218,229 **** } /** ! * Returns the position in y direction of the printable area * for the given units. ! * * @param units the units conversion factor. * @return The position in y direction. ! * * @throws IllegalArgumentException if units is < 1 */ public float getY(int units) --- 218,229 ---- } /** ! * Returns the position in y direction of the printable area * for the given units. ! * * @param units the units conversion factor. * @return The position in y direction. ! * * @throws IllegalArgumentException if units is < 1 */ public float getY(int units) *************** public final class MediaPrintableArea *** 233,239 **** return y / ((float)units); } ! /** * Tests if the given object is equal to this object. * --- 233,239 ---- return y / ((float)units); } ! /** * Tests if the given object is equal to this object. * *************** public final class MediaPrintableArea *** 256,262 **** * Returns the string representation for this object in units of millimeters.. *

                                        * The returned string is in the form "(x,y)->(width,height)mm". ! *

                                        * @return The string representation in millimeters. */ public String toString() --- 256,262 ---- * Returns the string representation for this object in units of millimeters.. *

                                        * The returned string is in the form "(x,y)->(width,height)mm". ! *

                                        * @return The string representation in millimeters. */ public String toString() *************** public final class MediaPrintableArea *** 273,279 **** { return x ^ y + w ^ h; } ! /** * Returns the string representation for this object in units of millimeters.. *

                                        --- 273,279 ---- { return x ^ y + w ^ h; } ! /** * Returns the string representation for this object in units of millimeters.. *

                                        *************** public final class MediaPrintableArea *** 283,312 **** * @param unitsName the name of the used units, appended to the resulting * string if not null. * @return The string representation in millimeters. ! * * @throws IllegalArgumentException if units is < 1 */ public String toString(int units, String unitsName) { if (units < 1) throw new IllegalArgumentException("units may not be less than 1"); ! String tmp = "(" + getX(units) + "," + getY(units) + ")->(" + getWidth(units) + "," + getHeight(units) + ")"; ! return unitsName == null ? tmp : tmp + unitsName; } /** ! * Returns the printable area as an float[] with 4 values * (order x, y, width, height) in the given units. ! * * @param units the units to use. * @return The printable area as float array. */ public float[] getPrintableArea(int units) { ! return new float[] { getX(units), getY(units), getWidth(units), getHeight(units) }; ! } } --- 283,312 ---- * @param unitsName the name of the used units, appended to the resulting * string if not null. * @return The string representation in millimeters. ! * * @throws IllegalArgumentException if units is < 1 */ public String toString(int units, String unitsName) { if (units < 1) throw new IllegalArgumentException("units may not be less than 1"); ! String tmp = "(" + getX(units) + "," + getY(units) + ")->(" + getWidth(units) + "," + getHeight(units) + ")"; ! return unitsName == null ? tmp : tmp + unitsName; } /** ! * Returns the printable area as an float[] with 4 values * (order x, y, width, height) in the given units. ! * * @param units the units to use. * @return The printable area as float array. */ public float[] getPrintableArea(int units) { ! return new float[] { getX(units), getY(units), getWidth(units), getHeight(units) }; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaSize.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaSize.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaSize.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaSize.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MediaSize.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MediaSize.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.Size2DSynta *** 45,64 **** /** * The MediaSize printing attribute class specifies the size ! * of a printing media. The size is defined in portrait orientation with * x at the bottom edge and y at the left edge. *

                                        * There are several media sizes predefined through the nested classes. Further * sizes may be provided by the application. MediaSize is not used ! * as a printing attribute currently. It may be used to get the actual sizes * for a named media or to find a suitable MediaSizeName instance * by querying with the needed sizes. ! *

                                        *

                                        * IPP Compatibility: MediaSize is not an IPP 1.1 attribute. *

                                        * @see javax.print.attribute.standard.MediaSizeName ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,64 ---- /** * The MediaSize printing attribute class specifies the size ! * of a printing media. The size is defined in portrait orientation with * x at the bottom edge and y at the left edge. *

                                        * There are several media sizes predefined through the nested classes. Further * sizes may be provided by the application. MediaSize is not used ! * as a printing attribute currently. It may be used to get the actual sizes * for a named media or to find a suitable MediaSizeName instance * by querying with the needed sizes. ! *

                                        *

                                        * IPP Compatibility: MediaSize is not an IPP 1.1 attribute. *

                                        * @see javax.print.attribute.standard.MediaSizeName ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class MediaSize extends Size2DSyn *** 66,74 **** implements Attribute { private static final long serialVersionUID = -1967958664615414771L; ! private static ArrayList mediaCache; ! static { mediaCache = new ArrayList(); --- 66,74 ---- implements Attribute { private static final long serialVersionUID = -1967958664615414771L; ! private static ArrayList mediaCache; ! static { mediaCache = new ArrayList(); *************** public class MediaSize extends Size2DSyn *** 76,85 **** // We call one instance of every container class to make sure it gets // loaded during class initialization and therefore all other static // fields of this container class also. ! // This is needed to put all MediaSize instance into the mediaCache // for use by the static methods in this class. ! MediaSize tmp = MediaSize.ISO.A0; tmp = MediaSize.JIS.B0; tmp = MediaSize.Engineering.A; --- 76,85 ---- // We call one instance of every container class to make sure it gets // loaded during class initialization and therefore all other static // fields of this container class also. ! // This is needed to put all MediaSize instance into the mediaCache // for use by the static methods in this class. ! MediaSize tmp = MediaSize.ISO.A0; tmp = MediaSize.JIS.B0; tmp = MediaSize.Engineering.A; *************** public class MediaSize extends Size2DSyn *** 88,97 **** } private MediaSizeName mediaName; ! /** ! * Creates a MediaSize object. The created object will be added ! * to an internal cache used in the static methods of this class for lookup * of available MediaSize instances. * * @param x the size in x direction --- 88,97 ---- } private MediaSizeName mediaName; ! /** ! * Creates a MediaSize object. The created object will be added ! * to an internal cache used in the static methods of this class for lookup * of available MediaSize instances. * * @param x the size in x direction *************** public class MediaSize extends Size2DSyn *** 99,105 **** * @param units the units to use for the sizes * * @exception IllegalArgumentException if x or y < 0 or units < 1 ! * * @see #findMedia(float, float, int) * @see #getMediaSizeForName(MediaSizeName) */ --- 99,105 ---- * @param units the units to use for the sizes * * @exception IllegalArgumentException if x or y < 0 or units < 1 ! * * @see #findMedia(float, float, int) * @see #getMediaSizeForName(MediaSizeName) */ *************** public class MediaSize extends Size2DSyn *** 108,118 **** super(x, y, units); mediaCache.add(this); } ! /** * Creates a MediaSize object associated with the given ! * media name. The created object will be added to an internal cache used ! * in the static methods of this class for lookup of available * MediaSize instances. * * @param x the size in x direction --- 108,118 ---- super(x, y, units); mediaCache.add(this); } ! /** * Creates a MediaSize object associated with the given ! * media name. The created object will be added to an internal cache used ! * in the static methods of this class for lookup of available * MediaSize instances. * * @param x the size in x direction *************** public class MediaSize extends Size2DSyn *** 121,127 **** * @param media the media name to associate * * @exception IllegalArgumentException if x or y < 0 or units < 1 ! * * @see #findMedia(float, float, int) * @see #getMediaSizeForName(MediaSizeName) */ --- 121,127 ---- * @param media the media name to associate * * @exception IllegalArgumentException if x or y < 0 or units < 1 ! * * @see #findMedia(float, float, int) * @see #getMediaSizeForName(MediaSizeName) */ *************** public class MediaSize extends Size2DSyn *** 131,140 **** mediaName = media; mediaCache.add(this); } ! /** ! * Creates a MediaSize object. The created object will be added ! * to an internal cache used in the static methods of this class for lookup * of available MediaSize instances. * * @param x the size in x direction --- 131,140 ---- mediaName = media; mediaCache.add(this); } ! /** ! * Creates a MediaSize object. The created object will be added ! * to an internal cache used in the static methods of this class for lookup * of available MediaSize instances. * * @param x the size in x direction *************** public class MediaSize extends Size2DSyn *** 142,148 **** * @param units the units to use for the sizes * * @exception IllegalArgumentException if x or y < 0 or units < 1 ! * * @see #findMedia(float, float, int) * @see #getMediaSizeForName(MediaSizeName) */ --- 142,148 ---- * @param units the units to use for the sizes * * @exception IllegalArgumentException if x or y < 0 or units < 1 ! * * @see #findMedia(float, float, int) * @see #getMediaSizeForName(MediaSizeName) */ *************** public class MediaSize extends Size2DSyn *** 151,161 **** super(x, y, units); mediaCache.add(this); } ! /** * Creates a MediaSize object associated with the given ! * media name. The created object will be added to an internal cache used ! * in the static methods of this class for lookup of available * MediaSize instances. * * @param x the size in x direction --- 151,161 ---- super(x, y, units); mediaCache.add(this); } ! /** * Creates a MediaSize object associated with the given ! * media name. The created object will be added to an internal cache used ! * in the static methods of this class for lookup of available * MediaSize instances. * * @param x the size in x direction *************** public class MediaSize extends Size2DSyn *** 164,170 **** * @param media the media name to associate * * @exception IllegalArgumentException if x or y < 0 or units < 1 ! * * @see #findMedia(float, float, int) * @see #getMediaSizeForName(MediaSizeName) */ --- 164,170 ---- * @param media the media name to associate * * @exception IllegalArgumentException if x or y < 0 or units < 1 ! * * @see #findMedia(float, float, int) * @see #getMediaSizeForName(MediaSizeName) */ *************** public class MediaSize extends Size2DSyn *** 174,180 **** mediaName = media; mediaCache.add(this); } ! /** * Returns category of this class. * --- 174,180 ---- mediaName = media; mediaCache.add(this); } ! /** * Returns category of this class. * *************** public class MediaSize extends Size2DSyn *** 185,197 **** return MediaSize.class; } ! /** * Searches for a MediaSize object with the given dimensions. * If none is found with exact dimensions, the closest match is used. ! * Afterwards the MediaSizeName of the found MediaSize object is * returned - which might be null if none is specified. ! * * @param x the dimension for x * @param y the dimension for y * @param units the units to be used for comparison --- 185,197 ---- return MediaSize.class; } ! /** * Searches for a MediaSize object with the given dimensions. * If none is found with exact dimensions, the closest match is used. ! * Afterwards the MediaSizeName of the found MediaSize object is * returned - which might be null if none is specified. ! * * @param x the dimension for x * @param y the dimension for y * @param units the units to be used for comparison *************** public class MediaSize extends Size2DSyn *** 202,208 **** if (x <= 0.0f || y <= 0.0f) throw new IllegalArgumentException( "x and/or y may not be less or equal 0"); ! if (units < 1) throw new IllegalArgumentException("units may not be less then 1"); --- 202,208 ---- if (x <= 0.0f || y <= 0.0f) throw new IllegalArgumentException( "x and/or y may not be less or equal 0"); ! if (units < 1) throw new IllegalArgumentException("units may not be less then 1"); *************** public class MediaSize extends Size2DSyn *** 215,221 **** for (int i = 0; i < mediaCache.size(); i++) { MediaSize size = mediaCache.get(i); ! int dist = (Math.abs(size.getXMicrometers() - xMicro) + Math.abs(size.getYMicrometers() - yMicro)); if (dist < bestDistance) --- 215,221 ---- for (int i = 0; i < mediaCache.size(); i++) { MediaSize size = mediaCache.get(i); ! int dist = (Math.abs(size.getXMicrometers() - xMicro) + Math.abs(size.getYMicrometers() - yMicro)); if (dist < bestDistance) *************** public class MediaSize extends Size2DSyn *** 227,260 **** return bestMatch.getMediaSizeName(); } ! /** ! * Returns the associated MediaSize instance for the * given named media MediaSizeName instance. ! * * @param media the named media to search for. ! * @return The corresponding MediaSize instance or * null if none found. */ public static MediaSize getMediaSizeForName(MediaSizeName media) { for (int i = 0; i < mediaCache.size(); i++) { ! MediaSize size = mediaCache.get(i); ! ! if (size.getMediaSizeName().equals(media)) ! return size; } return null; } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 227,260 ---- return bestMatch.getMediaSizeName(); } ! /** ! * Returns the associated MediaSize instance for the * given named media MediaSizeName instance. ! * * @param media the named media to search for. ! * @return The corresponding MediaSize instance or * null if none found. */ public static MediaSize getMediaSizeForName(MediaSizeName media) { for (int i = 0; i < mediaCache.size(); i++) { ! MediaSize size = mediaCache.get(i); ! ! if (size.getMediaSizeName().equals(media)) ! return size; } return null; } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) *************** public class MediaSize extends Size2DSyn *** 266,275 **** return (tmp.getXMicrometers() == this.getXMicrometers() && tmp.getYMicrometers() == this.getYMicrometers()); } ! /** * Returns the media name of this size. ! * * @return The media name. */ public MediaSizeName getMediaSizeName() --- 266,275 ---- return (tmp.getXMicrometers() == this.getXMicrometers() && tmp.getYMicrometers() == this.getYMicrometers()); } ! /** * Returns the media name of this size. ! * * @return The media name. */ public MediaSizeName getMediaSizeName() *************** public class MediaSize extends Size2DSyn *** 289,316 **** /** * Container class for predefined ISO media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ ! public static final class ISO { private ISO() { // prevent instantiation } ! /** * ISO A0 paper, 841 mm x 1189 mm. */ ! public static final MediaSize A0 = new MediaSize(841, 1189, ! MediaSize.MM, ! MediaSizeName.ISO_A0); /** * ISO A1 paper, 594 mm x 841 mm */ ! public static final MediaSize A1 = new MediaSize(594, 841, MediaSize.MM, ! MediaSizeName.ISO_A1); /** * ISO A2 paper, 420 mm x 594 mm --- 289,316 ---- /** * Container class for predefined ISO media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ ! public static final class ISO { private ISO() { // prevent instantiation } ! /** * ISO A0 paper, 841 mm x 1189 mm. */ ! public static final MediaSize A0 = new MediaSize(841, 1189, ! MediaSize.MM, ! MediaSizeName.ISO_A0); /** * ISO A1 paper, 594 mm x 841 mm */ ! public static final MediaSize A1 = new MediaSize(594, 841, MediaSize.MM, ! MediaSizeName.ISO_A1); /** * ISO A2 paper, 420 mm x 594 mm *************** public class MediaSize extends Size2DSyn *** 412,418 **** * ISO B10 paper, 31 mm x 44 mm */ public static final MediaSize B10 = new MediaSize(31, 44, MediaSize.MM, MediaSizeName.ISO_B10); ! /** * ISO C3 envelope, 324 mm x 458 mm */ --- 412,418 ---- * ISO B10 paper, 31 mm x 44 mm */ public static final MediaSize B10 = new MediaSize(31, 44, MediaSize.MM, MediaSizeName.ISO_B10); ! /** * ISO C3 envelope, 324 mm x 458 mm */ *************** public class MediaSize extends Size2DSyn *** 436,448 **** /** * ISO ISO Designated Long paper, 324 mm x 458 mm */ ! public static final MediaSize DESIGNATED_LONG = new MediaSize(324, 458, MediaSize.MM, MediaSizeName.ISO_DESIGNATED_LONG); ! } /** * Container class for predefined North American media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ public static final class NA --- 436,448 ---- /** * ISO ISO Designated Long paper, 324 mm x 458 mm */ ! public static final MediaSize DESIGNATED_LONG = new MediaSize(324, 458, MediaSize.MM, MediaSizeName.ISO_DESIGNATED_LONG); ! } /** * Container class for predefined North American media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ public static final class NA *************** public class MediaSize extends Size2DSyn *** 451,620 **** { // prevent instantiation } ! /** * US Legal paper size, 8.5 inch x 14 inch */ ! public static final MediaSize LEGAL = new MediaSize(8.5f, 14f, MediaSize.INCH, ! MediaSizeName.NA_LEGAL); /** * US Letter paper size, 8.5 inch x 11 inch */ public static final MediaSize LETTER = new MediaSize(8.5f, 11f, MediaSize.INCH, ! MediaSizeName.NA_LETTER); /** * 5 inch x 7 inch paper size. */ public static final MediaSize NA_5X7 = new MediaSize(5, 7, MediaSize.INCH, ! MediaSizeName.NA_5X7); /** * 8 inch x 10 inch paper size. */ public static final MediaSize NA_8X10 = new MediaSize(8, 10, MediaSize.INCH, ! MediaSizeName.NA_8X10); /** * 6 inch x 9 inch envelope size. */ ! public static final MediaSize NA_6X9_ENVELOPE = new MediaSize(6f, 9f, ! MediaSize.INCH, ! MediaSizeName.NA_6X9_ENVELOPE); /** * 7 inch x 9 inch envelope size. */ ! public static final MediaSize NA_7X9_ENVELOPE = new MediaSize(7f, 9f, ! MediaSize.INCH, ! MediaSizeName.NA_7X9_ENVELOPE); /** * 9 inch x 11 inch envelope size. */ ! public static final MediaSize NA_9x11_ENVELOPE = new MediaSize(9f, 11f, ! MediaSize.INCH, ! MediaSizeName.NA_9X11_ENVELOPE); /** * 9 inch x 12 inch envelope size. */ ! public static final MediaSize NA_9x12_ENVELOPE = new MediaSize(9f, 12f, ! MediaSize.INCH, ! MediaSizeName.NA_9X12_ENVELOPE); /** * 10 inch x 13 inch envelope size. */ ! public static final MediaSize NA_10x13_ENVELOPE = new MediaSize(10f, 13f, ! MediaSize.INCH, ! MediaSizeName.NA_10X13_ENVELOPE); /** * 10 inch x 14 inch envelope size. */ ! public static final MediaSize NA_10x14_ENVELOPE = new MediaSize(10f, 14f, ! MediaSize.INCH, ! MediaSizeName.NA_10X14_ENVELOPE); /** * 10 inch x 15 inch envelope size. */ ! public static final MediaSize NA_10X15_ENVELOPE = new MediaSize(10f, 15f, ! MediaSize.INCH, ! MediaSizeName.NA_10X15_ENVELOPE); /** * Number 9 envelope size. 4.5 inch x 10.375 inch */ public static final MediaSize NA_NUMBER_9_ENVELOPE = new MediaSize(3.875f, 8.875f, ! MediaSize.INCH, ! MediaSizeName.NA_NUMBER_9_ENVELOPE); /** * Number 10 envelope size. 4.125 inch x 9.5 inch */ ! public static final MediaSize NA_NUMBER_10_ENVELOPE = new MediaSize(4.125f, 9.5f, MediaSize.INCH, MediaSizeName.NA_NUMBER_10_ENVELOPE); /** * Number 11 envelope size. 4.5 inch x 10.375 inch */ public static final MediaSize NA_NUMBER_11_ENVELOPE = new MediaSize(4.5f, 10.375f, MediaSize.INCH, ! MediaSizeName.NA_NUMBER_11_ENVELOPE); ! /** * Number 12 envelope size. 4.75 inch x 11 inch */ ! public static final MediaSize NA_NUMBER_12_ENVELOPE = new MediaSize(4.75f, 11f, ! MediaSize.INCH, ! MediaSizeName.NA_NUMBER_12_ENVELOPE); /** * Number 14 envelope size. 5 inch x 11.5 inch */ ! public static final MediaSize NA_NUMBER_14_ENVELOPE = new MediaSize(5f, 11.5f, ! MediaSize.INCH, ! MediaSizeName.NA_NUMBER_14_ENVELOPE); } /** * Container class for predefined US Engineering media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ ! public static final class Engineering { private Engineering() { // prevent instantiation } ! /** * ANSI A paper size. 8.5 inch x 11 inch */ ! public static final MediaSize A = new MediaSize(8.5f, 11f, ! MediaSize.INCH, MediaSizeName.A); /** * ANSI B paper size. 11 inch x 17 inch */ ! public static final MediaSize B = new MediaSize(11f, 17f, ! MediaSize.INCH, MediaSizeName.B); /** * ANSI C paper size. 17 inch x 22 inch */ ! public static final MediaSize C = new MediaSize(17f, 22f, ! MediaSize.INCH, MediaSizeName.C); /** * ANSI D paper size. 22 inch x 34 inch */ ! public static final MediaSize D = new MediaSize(22f, 34f, ! MediaSize.INCH, MediaSizeName.D); /** * ANSI E paper size. 33 inch x 44 inch */ ! public static final MediaSize E = new MediaSize(34f, 44f, ! MediaSize.INCH, MediaSizeName.E); } /** * Container class for predefined Japanese JIS media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ ! public static final class JIS { private JIS() { // prevent instantiation } ! /** * JIS B0 paper. 1030 mm x 1456 mm * Note: The JIS B-series is not identical to the ISO B-series. --- 451,620 ---- { // prevent instantiation } ! /** * US Legal paper size, 8.5 inch x 14 inch */ ! public static final MediaSize LEGAL = new MediaSize(8.5f, 14f, MediaSize.INCH, ! MediaSizeName.NA_LEGAL); /** * US Letter paper size, 8.5 inch x 11 inch */ public static final MediaSize LETTER = new MediaSize(8.5f, 11f, MediaSize.INCH, ! MediaSizeName.NA_LETTER); /** * 5 inch x 7 inch paper size. */ public static final MediaSize NA_5X7 = new MediaSize(5, 7, MediaSize.INCH, ! MediaSizeName.NA_5X7); /** * 8 inch x 10 inch paper size. */ public static final MediaSize NA_8X10 = new MediaSize(8, 10, MediaSize.INCH, ! MediaSizeName.NA_8X10); /** * 6 inch x 9 inch envelope size. */ ! public static final MediaSize NA_6X9_ENVELOPE = new MediaSize(6f, 9f, ! MediaSize.INCH, ! MediaSizeName.NA_6X9_ENVELOPE); /** * 7 inch x 9 inch envelope size. */ ! public static final MediaSize NA_7X9_ENVELOPE = new MediaSize(7f, 9f, ! MediaSize.INCH, ! MediaSizeName.NA_7X9_ENVELOPE); /** * 9 inch x 11 inch envelope size. */ ! public static final MediaSize NA_9x11_ENVELOPE = new MediaSize(9f, 11f, ! MediaSize.INCH, ! MediaSizeName.NA_9X11_ENVELOPE); /** * 9 inch x 12 inch envelope size. */ ! public static final MediaSize NA_9x12_ENVELOPE = new MediaSize(9f, 12f, ! MediaSize.INCH, ! MediaSizeName.NA_9X12_ENVELOPE); /** * 10 inch x 13 inch envelope size. */ ! public static final MediaSize NA_10x13_ENVELOPE = new MediaSize(10f, 13f, ! MediaSize.INCH, ! MediaSizeName.NA_10X13_ENVELOPE); /** * 10 inch x 14 inch envelope size. */ ! public static final MediaSize NA_10x14_ENVELOPE = new MediaSize(10f, 14f, ! MediaSize.INCH, ! MediaSizeName.NA_10X14_ENVELOPE); /** * 10 inch x 15 inch envelope size. */ ! public static final MediaSize NA_10X15_ENVELOPE = new MediaSize(10f, 15f, ! MediaSize.INCH, ! MediaSizeName.NA_10X15_ENVELOPE); /** * Number 9 envelope size. 4.5 inch x 10.375 inch */ public static final MediaSize NA_NUMBER_9_ENVELOPE = new MediaSize(3.875f, 8.875f, ! MediaSize.INCH, ! MediaSizeName.NA_NUMBER_9_ENVELOPE); /** * Number 10 envelope size. 4.125 inch x 9.5 inch */ ! public static final MediaSize NA_NUMBER_10_ENVELOPE = new MediaSize(4.125f, 9.5f, MediaSize.INCH, MediaSizeName.NA_NUMBER_10_ENVELOPE); /** * Number 11 envelope size. 4.5 inch x 10.375 inch */ public static final MediaSize NA_NUMBER_11_ENVELOPE = new MediaSize(4.5f, 10.375f, MediaSize.INCH, ! MediaSizeName.NA_NUMBER_11_ENVELOPE); ! /** * Number 12 envelope size. 4.75 inch x 11 inch */ ! public static final MediaSize NA_NUMBER_12_ENVELOPE = new MediaSize(4.75f, 11f, ! MediaSize.INCH, ! MediaSizeName.NA_NUMBER_12_ENVELOPE); /** * Number 14 envelope size. 5 inch x 11.5 inch */ ! public static final MediaSize NA_NUMBER_14_ENVELOPE = new MediaSize(5f, 11.5f, ! MediaSize.INCH, ! MediaSizeName.NA_NUMBER_14_ENVELOPE); } /** * Container class for predefined US Engineering media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ ! public static final class Engineering { private Engineering() { // prevent instantiation } ! /** * ANSI A paper size. 8.5 inch x 11 inch */ ! public static final MediaSize A = new MediaSize(8.5f, 11f, ! MediaSize.INCH, MediaSizeName.A); /** * ANSI B paper size. 11 inch x 17 inch */ ! public static final MediaSize B = new MediaSize(11f, 17f, ! MediaSize.INCH, MediaSizeName.B); /** * ANSI C paper size. 17 inch x 22 inch */ ! public static final MediaSize C = new MediaSize(17f, 22f, ! MediaSize.INCH, MediaSizeName.C); /** * ANSI D paper size. 22 inch x 34 inch */ ! public static final MediaSize D = new MediaSize(22f, 34f, ! MediaSize.INCH, MediaSizeName.D); /** * ANSI E paper size. 33 inch x 44 inch */ ! public static final MediaSize E = new MediaSize(34f, 44f, ! MediaSize.INCH, MediaSizeName.E); } /** * Container class for predefined Japanese JIS media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ ! public static final class JIS { private JIS() { // prevent instantiation } ! /** * JIS B0 paper. 1030 mm x 1456 mm * Note: The JIS B-series is not identical to the ISO B-series. *************** public class MediaSize extends Size2DSyn *** 804,810 **** /** * Container class for miscellaneous media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ public static final class Other --- 804,810 ---- /** * Container class for miscellaneous media sizes. ! * * @author Sven de Marothy (sven@physto.se) */ public static final class Other *************** public class MediaSize extends Size2DSyn *** 813,824 **** { // prevent instantiation } ! /** * US Executive paper size, 7.25 inch x 10.5 inch */ ! public static final MediaSize EXECUTIVE = new MediaSize(7.25f, 10.5f, ! MediaSize.INCH, MediaSizeName.EXECUTIVE); /** * US Folio paper size, 8.5 inch x 13 inch --- 813,824 ---- { // prevent instantiation } ! /** * US Executive paper size, 7.25 inch x 10.5 inch */ ! public static final MediaSize EXECUTIVE = new MediaSize(7.25f, 10.5f, ! MediaSize.INCH, MediaSizeName.EXECUTIVE); /** * US Folio paper size, 8.5 inch x 13 inch *************** public class MediaSize extends Size2DSyn *** 829,867 **** * US Quarto paper size, 8.5 inches by 10.83 inches. */ public static final MediaSize QUARTO = new MediaSize(8.5f, 10.83f, MediaSize.INCH, ! MediaSizeName.QUARTO); /** * US Invoice size, 5.5 inch x 8.5 inch */ ! public static final MediaSize INVOICE = new MediaSize(5.5f, 8.5f, ! MediaSize.INCH, MediaSizeName.INVOICE); /** * US Ledger size, 11 inch x 17 inch */ ! public static final MediaSize LEDGER = new MediaSize(11, 17, MediaSize.INCH, ! MediaSizeName.LEDGER); /** * Monarch (7 3/4) envelope size, 3.87 inch x 7.5 inch */ ! public static final MediaSize MONARCH_ENVELOPE = new MediaSize(3.87f, 7.5f, ! MediaSize.INCH, ! MediaSizeName.MONARCH_ENVELOPE); /** * Personal envelope size, 3.625 inch x 6.5 inch. */ public static final MediaSize PERSONAL_ENVELOPE = new MediaSize(3.625f, 6.5f, MediaSize.INCH, ! MediaSizeName.PERSONAL_ENVELOPE); /** * Italian envelope size, 110 mm x 230 mm */ ! public static final MediaSize ITALY_ENVELOPE = new MediaSize(110, 230, ! MediaSize.MM, ! MediaSizeName.ITALY_ENVELOPE); /** * Japanese postcard, 100 mm x 148 mm --- 829,867 ---- * US Quarto paper size, 8.5 inches by 10.83 inches. */ public static final MediaSize QUARTO = new MediaSize(8.5f, 10.83f, MediaSize.INCH, ! MediaSizeName.QUARTO); /** * US Invoice size, 5.5 inch x 8.5 inch */ ! public static final MediaSize INVOICE = new MediaSize(5.5f, 8.5f, ! MediaSize.INCH, MediaSizeName.INVOICE); /** * US Ledger size, 11 inch x 17 inch */ ! public static final MediaSize LEDGER = new MediaSize(11, 17, MediaSize.INCH, ! MediaSizeName.LEDGER); /** * Monarch (7 3/4) envelope size, 3.87 inch x 7.5 inch */ ! public static final MediaSize MONARCH_ENVELOPE = new MediaSize(3.87f, 7.5f, ! MediaSize.INCH, ! MediaSizeName.MONARCH_ENVELOPE); /** * Personal envelope size, 3.625 inch x 6.5 inch. */ public static final MediaSize PERSONAL_ENVELOPE = new MediaSize(3.625f, 6.5f, MediaSize.INCH, ! MediaSizeName.PERSONAL_ENVELOPE); /** * Italian envelope size, 110 mm x 230 mm */ ! public static final MediaSize ITALY_ENVELOPE = new MediaSize(110, 230, ! MediaSize.MM, ! MediaSizeName.ITALY_ENVELOPE); /** * Japanese postcard, 100 mm x 148 mm *************** public class MediaSize extends Size2DSyn *** 872,884 **** * Japanese double postcard, 148 mm x 200 mm */ public static final MediaSize JAPANESE_DOUBLE_POSTCARD = new MediaSize(148, 200, MediaSize.MM, MediaSizeName.JAPANESE_DOUBLE_POSTCARD); ! /** * Tabloid size, 11 inch x 17 inch. * @since 1.5 */ ! public static final MediaSize TABLOID = new MediaSize(11, 17, Size2DSyntax.INCH, MediaSizeName.TABLOID); } } - --- 872,883 ---- * Japanese double postcard, 148 mm x 200 mm */ public static final MediaSize JAPANESE_DOUBLE_POSTCARD = new MediaSize(148, 200, MediaSize.MM, MediaSizeName.JAPANESE_DOUBLE_POSTCARD); ! /** * Tabloid size, 11 inch x 17 inch. * @since 1.5 */ ! public static final MediaSize TABLOID = new MediaSize(11, 17, Size2DSyntax.INCH, MediaSizeName.TABLOID); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaSizeName.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaSizeName.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaSizeName.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaSizeName.java Tue Jan 11 19:46:05 2011 *************** package javax.print.attribute.standard; *** 40,55 **** import javax.print.attribute.EnumSyntax; /** ! * MediaSizeName is a subclass of the Media printing ! * attribute and provides selection of media to be used by the means of ! * defined size names. The class pre-defines commonly available media sizes. ! * This media type enumeration may be used in alternative to * MediaName/MediaTray. *

                                        ! * IPP Compatibility: MediaSizeName is not an IPP 1.1 attribute on its * own. It provides parts of the media attribute type values. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 40,55 ---- import javax.print.attribute.EnumSyntax; /** ! * MediaSizeName is a subclass of the Media printing ! * attribute and provides selection of media to be used by the means of ! * defined size names. The class pre-defines commonly available media sizes. ! * This media type enumeration may be used in alternative to * MediaName/MediaTray. *

                                        ! * IPP Compatibility: MediaSizeName is not an IPP 1.1 attribute on its * own. It provides parts of the media attribute type values. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class MediaSizeName extends Media *** 61,472 **** * The ISO A0 size: 841 mm by 1189 mm. */ public static final MediaSizeName ISO_A0 = new MediaSizeName(0); ! /** * The ISO A1 size: 594 mm by 841 mm. */ public static final MediaSizeName ISO_A1 = new MediaSizeName(1); ! /** * The ISO A2 size: 420 mm by 594 mm. */ public static final MediaSizeName ISO_A2 = new MediaSizeName(2); ! /** * The ISO A3 size: 297 mm by 420 mm. */ public static final MediaSizeName ISO_A3 = new MediaSizeName(3); ! /** * The ISO A4 size: 210 mm by 297 mm. */ public static final MediaSizeName ISO_A4 = new MediaSizeName(4); ! /** * The ISO A5 size: 148 mm by 210 mm. */ public static final MediaSizeName ISO_A5 = new MediaSizeName(5); ! /** * The ISO A6 size: 105 mm by 148 mm. */ public static final MediaSizeName ISO_A6 = new MediaSizeName(6); ! /** * The ISO A7 size: 74 mm by 105 mm. */ public static final MediaSizeName ISO_A7 = new MediaSizeName(7); ! /** * The ISO A8 size: 52 mm by 74 mm. */ public static final MediaSizeName ISO_A8 = new MediaSizeName(8); ! /** * The ISO A9 size: 37 mm by 52 mm. */ public static final MediaSizeName ISO_A9 = new MediaSizeName(9); ! /** * The ISO A10 size: 26 mm by 37 mm. */ public static final MediaSizeName ISO_A10 = new MediaSizeName(10); ! /** * The ISO B0 size: 1000 mm by 1414 mm. */ public static final MediaSizeName ISO_B0 = new MediaSizeName(11); ! /** * The ISO B1 size: 707 mm by 1000 mm. */ public static final MediaSizeName ISO_B1 = new MediaSizeName(12); ! /** * The ISO B2 size: 500 mm by 707 mm. */ public static final MediaSizeName ISO_B2 = new MediaSizeName(13); ! /** * The ISO B3 size: 353 mm by 500 mm. */ public static final MediaSizeName ISO_B3 = new MediaSizeName(14); ! /** * The ISO B4 size: 250 mm by 353 mm. */ public static final MediaSizeName ISO_B4 = new MediaSizeName(15); ! /** * The ISO B5 size: 176 mm by 250 mm. */ public static final MediaSizeName ISO_B5 = new MediaSizeName(16); ! /** * The ISO B6 size: 125 mm by 176 mm. */ public static final MediaSizeName ISO_B6 = new MediaSizeName(17); ! /** * The ISO B7 size: 88 mm by 125 mm. */ public static final MediaSizeName ISO_B7 = new MediaSizeName(18); ! /** * The ISO B8 size: 62 mm by 88 mm. */ public static final MediaSizeName ISO_B8 = new MediaSizeName(19); ! /** * The ISO B9 size: 44 mm by 62 mm. */ public static final MediaSizeName ISO_B9 = new MediaSizeName(20); ! /** * The ISO B10 size: 31 mm by 44 mm. */ public static final MediaSizeName ISO_B10 = new MediaSizeName(21); ! /** * The JIS B0 size: 1030mm x 1456mm. */ public static final MediaSizeName JIS_B0 = new MediaSizeName(22); ! /** * The JIS B1 size: 728mm x 1030mm. */ public static final MediaSizeName JIS_B1 = new MediaSizeName(23); ! /** * The JIS B2 size: 515mm x 728mm. */ public static final MediaSizeName JIS_B2 = new MediaSizeName(24); ! /** * The JIS B3 size: 364mm x 515mm. */ public static final MediaSizeName JIS_B3 = new MediaSizeName(25); ! /** * The JIS B4 size: 257mm x 364mm. */ public static final MediaSizeName JIS_B4 = new MediaSizeName(26); ! /** * The JIS B5 size: 182mm x 257mm. */ public static final MediaSizeName JIS_B5 = new MediaSizeName(27); ! /** * The JIS B6 size: 128mm x 182mm. */ public static final MediaSizeName JIS_B6 = new MediaSizeName(28); ! /** * The JIS B7 size: 91mm x 128mm. */ public static final MediaSizeName JIS_B7 = new MediaSizeName(29); ! /** * The JIS B8 size: 64mm x 91mm. */ public static final MediaSizeName JIS_B8 = new MediaSizeName(30); ! /** * The JIS B9 size: 45mm x 64mm. */ public static final MediaSizeName JIS_B9 = new MediaSizeName(31); ! /** * The JIS B10 size: 32mm x 45mm. */ public static final MediaSizeName JIS_B10 = new MediaSizeName(32); ! /** * The ISO C0 size: 917 mm by 1297 mm. */ public static final MediaSizeName ISO_C0 = new MediaSizeName(33); ! /** * The ISO C1 size: 648 mm by 917 mm. */ public static final MediaSizeName ISO_C1 = new MediaSizeName(34); ! /** * The ISO C2 size: 458 mm by 648 mm. */ public static final MediaSizeName ISO_C2 = new MediaSizeName(35); ! /** * The ISO C3 size: 324 mm by 458 mm. */ public static final MediaSizeName ISO_C3 = new MediaSizeName(36); ! /** * The ISO C4 size: 229 mm by 324 mm. */ public static final MediaSizeName ISO_C4 = new MediaSizeName(37); ! /** * The ISO C5 size: 162 mm by 229 mm. */ public static final MediaSizeName ISO_C5 = new MediaSizeName(38); ! /** * The ISO C6 size: 114 mm by 162 mm. */ public static final MediaSizeName ISO_C6 = new MediaSizeName(39); ! /** * The North American letter size: 8.5 inches by 11 inches. */ public static final MediaSizeName NA_LETTER = new MediaSizeName(40); ! /** * The North American legal size: 8.5 inches by 14 inches. */ public static final MediaSizeName NA_LEGAL = new MediaSizeName(41); ! /** * The executive size: 7.25 inches by 10.5 inches. */ public static final MediaSizeName EXECUTIVE = new MediaSizeName(42); ! /** * The ledger size: 11 inches by 17 inches. */ public static final MediaSizeName LEDGER = new MediaSizeName(43); ! /** * The tabloid size: 11 inches by 17 inches. */ public static final MediaSizeName TABLOID = new MediaSizeName(44); ! /** * The invoice size: 5.5 inches by 8.5 inches. */ public static final MediaSizeName INVOICE = new MediaSizeName(45); ! /** * The folio size: 8.5 inches by 13 inches. */ public static final MediaSizeName FOLIO = new MediaSizeName(46); ! /** * The quarto size: 8.5 inches by 10.83 inches. */ public static final MediaSizeName QUARTO = new MediaSizeName(47); ! /** * The Japanese postcard size, 100 mm by 148 mm. */ public static final MediaSizeName JAPANESE_POSTCARD = new MediaSizeName(48); ! /** * The Japanese Double postcard size: 148 mm by 200 mm. */ public static final MediaSizeName JAPANESE_DOUBLE_POSTCARD = new MediaSizeName(49); ! /** * The engineering ANSI A size medium: 8.5 inches x 11 inches. */ public static final MediaSizeName A = new MediaSizeName(50); ! /** * The engineering ANSI B size medium: 11 inches x 17 inches. */ public static final MediaSizeName B = new MediaSizeName(51); ! /** * The engineering ANSI C size medium: 17 inches x 22 inches. */ public static final MediaSizeName C = new MediaSizeName(52); ! /** * The engineering ANSI D size medium: 22 inches x 34 inches. */ public static final MediaSizeName D = new MediaSizeName(53); ! /** * The engineering ANSI E size medium: 34 inches x 44 inches. */ public static final MediaSizeName E = new MediaSizeName(54); ! /** * The ISO Designated Long size: 110 mm by 220 mm. */ public static final MediaSizeName ISO_DESIGNATED_LONG = new MediaSizeName(55); ! /** * The Italy envelope size: 110 mm by 230 mm. */ public static final MediaSizeName ITALY_ENVELOPE = new MediaSizeName(56); ! /** * The Monarch envelope size: 3.87 inch by 7.5 inch. */ public static final MediaSizeName MONARCH_ENVELOPE = new MediaSizeName(57); ! /** * The Personal envelope size: 3.625 inch by 6.5 inch. */ public static final MediaSizeName PERSONAL_ENVELOPE = new MediaSizeName(58); ! /** ! * The North American number 9 business envelope size: * 3.875 inches by 8.875 inches. */ public static final MediaSizeName NA_NUMBER_9_ENVELOPE = new MediaSizeName(59); ! /** ! * The North American number 10 business envelope size: * 4.125 inches by 9.5 inches. */ public static final MediaSizeName NA_NUMBER_10_ENVELOPE = new MediaSizeName(60); ! /** ! * The North American number 11 business envelope size: * 4.5 inches by 10.375 inches. */ public static final MediaSizeName NA_NUMBER_11_ENVELOPE = new MediaSizeName(61); ! /** ! * The North American number 12 business envelope size: * 4.75 inches by 11 inches. */ public static final MediaSizeName NA_NUMBER_12_ENVELOPE = new MediaSizeName(62); ! /** ! * The North American number 14 business envelope size: * 5 inches by 11.5 inches. */ public static final MediaSizeName NA_NUMBER_14_ENVELOPE = new MediaSizeName(63); ! /** * The North American 6x9 inch envelope size. */ public static final MediaSizeName NA_6X9_ENVELOPE = new MediaSizeName(64); ! /** * The North American 7x9 inch envelope size. */ public static final MediaSizeName NA_7X9_ENVELOPE = new MediaSizeName(65); ! /** * The North American 9x11 inch envelope size. */ public static final MediaSizeName NA_9X11_ENVELOPE = new MediaSizeName(66); ! /** * The North American 9x12 inch envelope size. */ public static final MediaSizeName NA_9X12_ENVELOPE = new MediaSizeName(67); ! /** * The North American 10x13 inch envelope size. */ public static final MediaSizeName NA_10X13_ENVELOPE = new MediaSizeName(68); ! /** * The North American 10x14 inch envelope size. */ public static final MediaSizeName NA_10X14_ENVELOPE = new MediaSizeName(69); ! /** * The North American 10x15 inch envelope size. */ public static final MediaSizeName NA_10X15_ENVELOPE = new MediaSizeName(70); ! /** * The North American 5 inches by 7 inches. */ public static final MediaSizeName NA_5X7 = new MediaSizeName(71); ! /** * The North American 8 inches by 10 inches. */ public static final MediaSizeName NA_8X10 = new MediaSizeName(72); ! private static final String[] stringTable = ! { "iso-a0", "iso-a1", "iso-a2", "iso-a3", "iso-a4", "iso-a5", "iso-a6", ! "iso-a7", "iso-a8", "iso-a9", "iso-a10", "iso-b0", "iso-b1", "iso-b2", ! "iso-b3", "iso-b4", "iso-b5", "iso-b6", "iso-b7", "iso-b8", "iso-b9", ! "iso-b10", "jis-b0", "jis-b1", "jis-b2", "jis-b3", "jis-b4", "jis-b5", ! "jis-b6", "jis-b7", "jis-b8", "jis-b9", "jis-b10", "iso-c0", "iso-c1", ! "iso-c2", "iso-c3", "iso-c4", "iso-c5", "iso-c6", "na-letter", ! "na-legal", "executive", "ledger", "tabloid", "invoice", "folio", ! "quarto", "japanese-postcard", "oufuko-postcard", "a", "b", "c", "d", ! "e", "iso-designated-long", "italian-envelope", "monarch-envelope", ! "personal-envelope", "na-number-9-envelope", "na-number-10-envelope", ! "na-number-11-envelope", "na-number-12-envelope", ! "na-number-14-envelope", "na-6x9-envelope", "na-7x9-envelope", ! "na-9x11-envelope", "na-9x12-envelope", "na-10x13-envelope", "na-10x14-envelope", "na-10x15-envelope", "na-5x7", "na-8x10" }; ! ! private static final MediaSizeName[] enumValueTable = ! { ISO_A0, ISO_A1, ISO_A2, ISO_A3, ISO_A4, ISO_A5, ISO_A6, ISO_A7, ISO_A8, ISO_A9, ISO_A10, ISO_B0, ISO_B1, ISO_B2, ISO_B3, ISO_B4, ISO_B5, ISO_B6, ! ISO_B7, ISO_B8, ISO_B9, ISO_B10, JIS_B0, JIS_B1, JIS_B2, JIS_B3, JIS_B4, JIS_B5, JIS_B6, JIS_B7, JIS_B8, JIS_B9, JIS_B10, ISO_C0, ISO_C1, ISO_C2, ! ISO_C3, ISO_C4, ISO_C5, ISO_C6, NA_LETTER, NA_LEGAL, EXECUTIVE, LEDGER, ! TABLOID, INVOICE, FOLIO, QUARTO, JAPANESE_POSTCARD, ! JAPANESE_DOUBLE_POSTCARD, A, B, C, D, E, ISO_DESIGNATED_LONG, ! ITALY_ENVELOPE, MONARCH_ENVELOPE, PERSONAL_ENVELOPE, NA_NUMBER_9_ENVELOPE, NA_NUMBER_10_ENVELOPE, NA_NUMBER_11_ENVELOPE, NA_NUMBER_12_ENVELOPE, NA_NUMBER_14_ENVELOPE, NA_6X9_ENVELOPE, NA_7X9_ENVELOPE, NA_9X11_ENVELOPE, NA_9X12_ENVELOPE, NA_10X13_ENVELOPE, ! NA_10X14_ENVELOPE, NA_10X15_ENVELOPE, NA_5X7, NA_8X10 }; ! /** * Constructs a MediaSizeName object. ! * * @param value the enum value. */ protected MediaSizeName(int value) --- 61,472 ---- * The ISO A0 size: 841 mm by 1189 mm. */ public static final MediaSizeName ISO_A0 = new MediaSizeName(0); ! /** * The ISO A1 size: 594 mm by 841 mm. */ public static final MediaSizeName ISO_A1 = new MediaSizeName(1); ! /** * The ISO A2 size: 420 mm by 594 mm. */ public static final MediaSizeName ISO_A2 = new MediaSizeName(2); ! /** * The ISO A3 size: 297 mm by 420 mm. */ public static final MediaSizeName ISO_A3 = new MediaSizeName(3); ! /** * The ISO A4 size: 210 mm by 297 mm. */ public static final MediaSizeName ISO_A4 = new MediaSizeName(4); ! /** * The ISO A5 size: 148 mm by 210 mm. */ public static final MediaSizeName ISO_A5 = new MediaSizeName(5); ! /** * The ISO A6 size: 105 mm by 148 mm. */ public static final MediaSizeName ISO_A6 = new MediaSizeName(6); ! /** * The ISO A7 size: 74 mm by 105 mm. */ public static final MediaSizeName ISO_A7 = new MediaSizeName(7); ! /** * The ISO A8 size: 52 mm by 74 mm. */ public static final MediaSizeName ISO_A8 = new MediaSizeName(8); ! /** * The ISO A9 size: 37 mm by 52 mm. */ public static final MediaSizeName ISO_A9 = new MediaSizeName(9); ! /** * The ISO A10 size: 26 mm by 37 mm. */ public static final MediaSizeName ISO_A10 = new MediaSizeName(10); ! /** * The ISO B0 size: 1000 mm by 1414 mm. */ public static final MediaSizeName ISO_B0 = new MediaSizeName(11); ! /** * The ISO B1 size: 707 mm by 1000 mm. */ public static final MediaSizeName ISO_B1 = new MediaSizeName(12); ! /** * The ISO B2 size: 500 mm by 707 mm. */ public static final MediaSizeName ISO_B2 = new MediaSizeName(13); ! /** * The ISO B3 size: 353 mm by 500 mm. */ public static final MediaSizeName ISO_B3 = new MediaSizeName(14); ! /** * The ISO B4 size: 250 mm by 353 mm. */ public static final MediaSizeName ISO_B4 = new MediaSizeName(15); ! /** * The ISO B5 size: 176 mm by 250 mm. */ public static final MediaSizeName ISO_B5 = new MediaSizeName(16); ! /** * The ISO B6 size: 125 mm by 176 mm. */ public static final MediaSizeName ISO_B6 = new MediaSizeName(17); ! /** * The ISO B7 size: 88 mm by 125 mm. */ public static final MediaSizeName ISO_B7 = new MediaSizeName(18); ! /** * The ISO B8 size: 62 mm by 88 mm. */ public static final MediaSizeName ISO_B8 = new MediaSizeName(19); ! /** * The ISO B9 size: 44 mm by 62 mm. */ public static final MediaSizeName ISO_B9 = new MediaSizeName(20); ! /** * The ISO B10 size: 31 mm by 44 mm. */ public static final MediaSizeName ISO_B10 = new MediaSizeName(21); ! /** * The JIS B0 size: 1030mm x 1456mm. */ public static final MediaSizeName JIS_B0 = new MediaSizeName(22); ! /** * The JIS B1 size: 728mm x 1030mm. */ public static final MediaSizeName JIS_B1 = new MediaSizeName(23); ! /** * The JIS B2 size: 515mm x 728mm. */ public static final MediaSizeName JIS_B2 = new MediaSizeName(24); ! /** * The JIS B3 size: 364mm x 515mm. */ public static final MediaSizeName JIS_B3 = new MediaSizeName(25); ! /** * The JIS B4 size: 257mm x 364mm. */ public static final MediaSizeName JIS_B4 = new MediaSizeName(26); ! /** * The JIS B5 size: 182mm x 257mm. */ public static final MediaSizeName JIS_B5 = new MediaSizeName(27); ! /** * The JIS B6 size: 128mm x 182mm. */ public static final MediaSizeName JIS_B6 = new MediaSizeName(28); ! /** * The JIS B7 size: 91mm x 128mm. */ public static final MediaSizeName JIS_B7 = new MediaSizeName(29); ! /** * The JIS B8 size: 64mm x 91mm. */ public static final MediaSizeName JIS_B8 = new MediaSizeName(30); ! /** * The JIS B9 size: 45mm x 64mm. */ public static final MediaSizeName JIS_B9 = new MediaSizeName(31); ! /** * The JIS B10 size: 32mm x 45mm. */ public static final MediaSizeName JIS_B10 = new MediaSizeName(32); ! /** * The ISO C0 size: 917 mm by 1297 mm. */ public static final MediaSizeName ISO_C0 = new MediaSizeName(33); ! /** * The ISO C1 size: 648 mm by 917 mm. */ public static final MediaSizeName ISO_C1 = new MediaSizeName(34); ! /** * The ISO C2 size: 458 mm by 648 mm. */ public static final MediaSizeName ISO_C2 = new MediaSizeName(35); ! /** * The ISO C3 size: 324 mm by 458 mm. */ public static final MediaSizeName ISO_C3 = new MediaSizeName(36); ! /** * The ISO C4 size: 229 mm by 324 mm. */ public static final MediaSizeName ISO_C4 = new MediaSizeName(37); ! /** * The ISO C5 size: 162 mm by 229 mm. */ public static final MediaSizeName ISO_C5 = new MediaSizeName(38); ! /** * The ISO C6 size: 114 mm by 162 mm. */ public static final MediaSizeName ISO_C6 = new MediaSizeName(39); ! /** * The North American letter size: 8.5 inches by 11 inches. */ public static final MediaSizeName NA_LETTER = new MediaSizeName(40); ! /** * The North American legal size: 8.5 inches by 14 inches. */ public static final MediaSizeName NA_LEGAL = new MediaSizeName(41); ! /** * The executive size: 7.25 inches by 10.5 inches. */ public static final MediaSizeName EXECUTIVE = new MediaSizeName(42); ! /** * The ledger size: 11 inches by 17 inches. */ public static final MediaSizeName LEDGER = new MediaSizeName(43); ! /** * The tabloid size: 11 inches by 17 inches. */ public static final MediaSizeName TABLOID = new MediaSizeName(44); ! /** * The invoice size: 5.5 inches by 8.5 inches. */ public static final MediaSizeName INVOICE = new MediaSizeName(45); ! /** * The folio size: 8.5 inches by 13 inches. */ public static final MediaSizeName FOLIO = new MediaSizeName(46); ! /** * The quarto size: 8.5 inches by 10.83 inches. */ public static final MediaSizeName QUARTO = new MediaSizeName(47); ! /** * The Japanese postcard size, 100 mm by 148 mm. */ public static final MediaSizeName JAPANESE_POSTCARD = new MediaSizeName(48); ! /** * The Japanese Double postcard size: 148 mm by 200 mm. */ public static final MediaSizeName JAPANESE_DOUBLE_POSTCARD = new MediaSizeName(49); ! /** * The engineering ANSI A size medium: 8.5 inches x 11 inches. */ public static final MediaSizeName A = new MediaSizeName(50); ! /** * The engineering ANSI B size medium: 11 inches x 17 inches. */ public static final MediaSizeName B = new MediaSizeName(51); ! /** * The engineering ANSI C size medium: 17 inches x 22 inches. */ public static final MediaSizeName C = new MediaSizeName(52); ! /** * The engineering ANSI D size medium: 22 inches x 34 inches. */ public static final MediaSizeName D = new MediaSizeName(53); ! /** * The engineering ANSI E size medium: 34 inches x 44 inches. */ public static final MediaSizeName E = new MediaSizeName(54); ! /** * The ISO Designated Long size: 110 mm by 220 mm. */ public static final MediaSizeName ISO_DESIGNATED_LONG = new MediaSizeName(55); ! /** * The Italy envelope size: 110 mm by 230 mm. */ public static final MediaSizeName ITALY_ENVELOPE = new MediaSizeName(56); ! /** * The Monarch envelope size: 3.87 inch by 7.5 inch. */ public static final MediaSizeName MONARCH_ENVELOPE = new MediaSizeName(57); ! /** * The Personal envelope size: 3.625 inch by 6.5 inch. */ public static final MediaSizeName PERSONAL_ENVELOPE = new MediaSizeName(58); ! /** ! * The North American number 9 business envelope size: * 3.875 inches by 8.875 inches. */ public static final MediaSizeName NA_NUMBER_9_ENVELOPE = new MediaSizeName(59); ! /** ! * The North American number 10 business envelope size: * 4.125 inches by 9.5 inches. */ public static final MediaSizeName NA_NUMBER_10_ENVELOPE = new MediaSizeName(60); ! /** ! * The North American number 11 business envelope size: * 4.5 inches by 10.375 inches. */ public static final MediaSizeName NA_NUMBER_11_ENVELOPE = new MediaSizeName(61); ! /** ! * The North American number 12 business envelope size: * 4.75 inches by 11 inches. */ public static final MediaSizeName NA_NUMBER_12_ENVELOPE = new MediaSizeName(62); ! /** ! * The North American number 14 business envelope size: * 5 inches by 11.5 inches. */ public static final MediaSizeName NA_NUMBER_14_ENVELOPE = new MediaSizeName(63); ! /** * The North American 6x9 inch envelope size. */ public static final MediaSizeName NA_6X9_ENVELOPE = new MediaSizeName(64); ! /** * The North American 7x9 inch envelope size. */ public static final MediaSizeName NA_7X9_ENVELOPE = new MediaSizeName(65); ! /** * The North American 9x11 inch envelope size. */ public static final MediaSizeName NA_9X11_ENVELOPE = new MediaSizeName(66); ! /** * The North American 9x12 inch envelope size. */ public static final MediaSizeName NA_9X12_ENVELOPE = new MediaSizeName(67); ! /** * The North American 10x13 inch envelope size. */ public static final MediaSizeName NA_10X13_ENVELOPE = new MediaSizeName(68); ! /** * The North American 10x14 inch envelope size. */ public static final MediaSizeName NA_10X14_ENVELOPE = new MediaSizeName(69); ! /** * The North American 10x15 inch envelope size. */ public static final MediaSizeName NA_10X15_ENVELOPE = new MediaSizeName(70); ! /** * The North American 5 inches by 7 inches. */ public static final MediaSizeName NA_5X7 = new MediaSizeName(71); ! /** * The North American 8 inches by 10 inches. */ public static final MediaSizeName NA_8X10 = new MediaSizeName(72); ! private static final String[] stringTable = ! { "iso-a0", "iso-a1", "iso-a2", "iso-a3", "iso-a4", "iso-a5", "iso-a6", ! "iso-a7", "iso-a8", "iso-a9", "iso-a10", "iso-b0", "iso-b1", "iso-b2", ! "iso-b3", "iso-b4", "iso-b5", "iso-b6", "iso-b7", "iso-b8", "iso-b9", ! "iso-b10", "jis-b0", "jis-b1", "jis-b2", "jis-b3", "jis-b4", "jis-b5", ! "jis-b6", "jis-b7", "jis-b8", "jis-b9", "jis-b10", "iso-c0", "iso-c1", ! "iso-c2", "iso-c3", "iso-c4", "iso-c5", "iso-c6", "na-letter", ! "na-legal", "executive", "ledger", "tabloid", "invoice", "folio", ! "quarto", "japanese-postcard", "oufuko-postcard", "a", "b", "c", "d", ! "e", "iso-designated-long", "italian-envelope", "monarch-envelope", ! "personal-envelope", "na-number-9-envelope", "na-number-10-envelope", ! "na-number-11-envelope", "na-number-12-envelope", ! "na-number-14-envelope", "na-6x9-envelope", "na-7x9-envelope", ! "na-9x11-envelope", "na-9x12-envelope", "na-10x13-envelope", "na-10x14-envelope", "na-10x15-envelope", "na-5x7", "na-8x10" }; ! ! private static final MediaSizeName[] enumValueTable = ! { ISO_A0, ISO_A1, ISO_A2, ISO_A3, ISO_A4, ISO_A5, ISO_A6, ISO_A7, ISO_A8, ISO_A9, ISO_A10, ISO_B0, ISO_B1, ISO_B2, ISO_B3, ISO_B4, ISO_B5, ISO_B6, ! ISO_B7, ISO_B8, ISO_B9, ISO_B10, JIS_B0, JIS_B1, JIS_B2, JIS_B3, JIS_B4, JIS_B5, JIS_B6, JIS_B7, JIS_B8, JIS_B9, JIS_B10, ISO_C0, ISO_C1, ISO_C2, ! ISO_C3, ISO_C4, ISO_C5, ISO_C6, NA_LETTER, NA_LEGAL, EXECUTIVE, LEDGER, ! TABLOID, INVOICE, FOLIO, QUARTO, JAPANESE_POSTCARD, ! JAPANESE_DOUBLE_POSTCARD, A, B, C, D, E, ISO_DESIGNATED_LONG, ! ITALY_ENVELOPE, MONARCH_ENVELOPE, PERSONAL_ENVELOPE, NA_NUMBER_9_ENVELOPE, NA_NUMBER_10_ENVELOPE, NA_NUMBER_11_ENVELOPE, NA_NUMBER_12_ENVELOPE, NA_NUMBER_14_ENVELOPE, NA_6X9_ENVELOPE, NA_7X9_ENVELOPE, NA_9X11_ENVELOPE, NA_9X12_ENVELOPE, NA_10X13_ENVELOPE, ! NA_10X14_ENVELOPE, NA_10X15_ENVELOPE, NA_5X7, NA_8X10 }; ! /** * Constructs a MediaSizeName object. ! * * @param value the enum value. */ protected MediaSizeName(int value) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaTray.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaTray.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MediaTray.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MediaTray.java Tue Jan 11 19:46:05 2011 *************** package javax.print.attribute.standard; *** 40,46 **** import javax.print.attribute.EnumSyntax; /** ! * MediaTray is a subclass of the Media printing * attribute and provides selection of media to be used by the means of the * input tray of the printer. The class pre-defines commonly available types * of input trays in printers. This media type enumeration may be used in --- 40,46 ---- import javax.print.attribute.EnumSyntax; /** ! * MediaTray is a subclass of the Media printing * attribute and provides selection of media to be used by the means of the * input tray of the printer. The class pre-defines commonly available types * of input trays in printers. This media type enumeration may be used in *************** import javax.print.attribute.EnumSyntax; *** 49,73 **** * IPP Compatibility: MediaTray is not an IPP 1.1 attribute on its own. * It provides parts of the media attribute type values. *

                                        ! * * @author Sven de Marothy * @author Wolfgang Baer (WBaer@gmx.de) */ public class MediaTray extends Media { ! private static final long serialVersionUID = -982503611095214703L; ! /** * Top tray */ public static final MediaTray TOP = new MediaTray(0); ! /** * Middle tray */ public static final MediaTray MIDDLE = new MediaTray(1); ! /** * Bottom tray */ --- 49,73 ---- * IPP Compatibility: MediaTray is not an IPP 1.1 attribute on its own. * It provides parts of the media attribute type values. *

                                        ! * * @author Sven de Marothy * @author Wolfgang Baer (WBaer@gmx.de) */ public class MediaTray extends Media { ! private static final long serialVersionUID = -982503611095214703L; ! /** * Top tray */ public static final MediaTray TOP = new MediaTray(0); ! /** * Middle tray */ public static final MediaTray MIDDLE = new MediaTray(1); ! /** * Bottom tray */ *************** public class MediaTray extends Media *** 80,88 **** /** * Manual-feed tray ! */ public static final MediaTray MANUAL = new MediaTray(4); ! /** * Large capacity tray */ --- 80,88 ---- /** * Manual-feed tray ! */ public static final MediaTray MANUAL = new MediaTray(4); ! /** * Large capacity tray */ *************** public class MediaTray extends Media *** 92,113 **** * Main tray */ public static final MediaTray MAIN = new MediaTray(6); ! /** * Side tray */ ! public static final MediaTray SIDE = new MediaTray(7); ! private static final String[] stringTable = { "top", "middle", "bottom", ! "envelope", "manual", ! "large-capacity", "main", "side" }; ! ! private static final MediaTray[] enumValueTable = { TOP, MIDDLE, BOTTOM, ENVELOPE, MANUAL, LARGE_CAPACITY, MAIN, ! SIDE }; ! /** * Creates a MediaTray object. * --- 92,113 ---- * Main tray */ public static final MediaTray MAIN = new MediaTray(6); ! /** * Side tray */ ! public static final MediaTray SIDE = new MediaTray(7); ! private static final String[] stringTable = { "top", "middle", "bottom", ! "envelope", "manual", ! "large-capacity", "main", "side" }; ! ! private static final MediaTray[] enumValueTable = { TOP, MIDDLE, BOTTOM, ENVELOPE, MANUAL, LARGE_CAPACITY, MAIN, ! SIDE }; ! /** * Creates a MediaTray object. * *************** public class MediaTray extends Media *** 117,123 **** { super( i ); } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 117,123 ---- { super( i ); } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public class MediaTray extends Media *** 139,142 **** return enumValueTable; } } - --- 139,141 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 45,57 **** /** * The MultipleDocumentHandling printing attribute controls ! * how certain printing attributes affect printing in case of multiple ! * documents in a print job. This attribute is only relevant if a job * has multiple documents. *

                                        * IPP Compatibility: MultipleDocumentHandling is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,57 ---- /** * The MultipleDocumentHandling printing attribute controls ! * how certain printing attributes affect printing in case of multiple ! * documents in a print job. This attribute is only relevant if a job * has multiple documents. *

                                        * IPP Compatibility: MultipleDocumentHandling is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class MultipleDocumentHandling ex *** 60,102 **** { private static final long serialVersionUID = 8098326460746413466L; ! /** * Multiple documents are treated as a single document. */ public static final MultipleDocumentHandling SINGLE_DOCUMENT = new MultipleDocumentHandling(0); ! ! /** * Multiple documents are treated as uncollated copies. */ public static final MultipleDocumentHandling SEPARATE_DOCUMENTS_UNCOLLATED_COPIES = new MultipleDocumentHandling(1); ! ! /** ! * Multiple documents are treated as collated copies. */ public static final MultipleDocumentHandling SEPARATE_DOCUMENTS_COLLATED_COPIES = new MultipleDocumentHandling(2); ! ! /** * Multiple documents are treated so that every single document starts ! * with a new sheet. */ public static final MultipleDocumentHandling SINGLE_DOCUMENT_NEW_SHEET = new MultipleDocumentHandling(3); ! ! private static final String[] stringTable = { "single-document", "separate-documents-uncollated-copies", "separate-documents-collated-copies", "single-document-new-sheet" }; ! ! private static final MultipleDocumentHandling[] enumValueTable = { SINGLE_DOCUMENT, SEPARATE_DOCUMENTS_UNCOLLATED_COPIES, SEPARATE_DOCUMENTS_COLLATED_COPIES, SINGLE_DOCUMENT_NEW_SHEET}; /** * Constructs a MultipleDocumentHandling object. ! * * @param value the enum value */ protected MultipleDocumentHandling(int value) --- 60,102 ---- { private static final long serialVersionUID = 8098326460746413466L; ! /** * Multiple documents are treated as a single document. */ public static final MultipleDocumentHandling SINGLE_DOCUMENT = new MultipleDocumentHandling(0); ! ! /** * Multiple documents are treated as uncollated copies. */ public static final MultipleDocumentHandling SEPARATE_DOCUMENTS_UNCOLLATED_COPIES = new MultipleDocumentHandling(1); ! ! /** ! * Multiple documents are treated as collated copies. */ public static final MultipleDocumentHandling SEPARATE_DOCUMENTS_COLLATED_COPIES = new MultipleDocumentHandling(2); ! ! /** * Multiple documents are treated so that every single document starts ! * with a new sheet. */ public static final MultipleDocumentHandling SINGLE_DOCUMENT_NEW_SHEET = new MultipleDocumentHandling(3); ! ! private static final String[] stringTable = { "single-document", "separate-documents-uncollated-copies", "separate-documents-collated-copies", "single-document-new-sheet" }; ! ! private static final MultipleDocumentHandling[] enumValueTable = { SINGLE_DOCUMENT, SEPARATE_DOCUMENTS_UNCOLLATED_COPIES, SEPARATE_DOCUMENTS_COLLATED_COPIES, SINGLE_DOCUMENT_NEW_SHEET}; /** * Constructs a MultipleDocumentHandling object. ! * * @param value the enum value */ protected MultipleDocumentHandling(int value) *************** public class MultipleDocumentHandling ex *** 123,129 **** { return "multiple-document-handling"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 123,129 ---- { return "multiple-document-handling"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NumberOfDocuments.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NumberOfDocuments.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.IntegerSynt *** 42,48 **** import javax.print.attribute.PrintJobAttribute; /** ! * The NumberOfDocuments printing attribute specifies * the number of documents in a job. *

                                        * IPP Compatibility: NumberOfDocuments is an IPP 1.1 attribute. --- 42,48 ---- import javax.print.attribute.PrintJobAttribute; /** ! * The NumberOfDocuments printing attribute specifies * the number of documents in a job. *

                                        * IPP Compatibility: NumberOfDocuments is an IPP 1.1 attribute. *************** public final class NumberOfDocuments ext *** 54,60 **** implements PrintJobAttribute { private static final long serialVersionUID = 7891881310684461097L; ! /** * Creates a NumberOfDocuments object. * --- 54,60 ---- implements PrintJobAttribute { private static final long serialVersionUID = 7891881310684461097L; ! /** * Creates a NumberOfDocuments object. * *************** public final class NumberOfDocuments ext *** 69,81 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 69,81 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NumberOfInterveningJobs.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NumberOfInterveningJobs.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 43,61 **** /** * The NumberOfInterveningJobs printing attribute provides ! * the number of jobs ahead in the print service queue before the * requested job. *

                                        * IPP Compatibility: NumberOfInterveningJobs is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch */ public final class NumberOfInterveningJobs extends IntegerSyntax implements PrintJobAttribute { private static final long serialVersionUID = 2568141124844982746L; ! /** * Creates a NumberOfInterveningJobs object. * --- 43,61 ---- /** * The NumberOfInterveningJobs printing attribute provides ! * the number of jobs ahead in the print service queue before the * requested job. *

                                        * IPP Compatibility: NumberOfInterveningJobs is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch */ public final class NumberOfInterveningJobs extends IntegerSyntax implements PrintJobAttribute { private static final long serialVersionUID = 2568141124844982746L; ! /** * Creates a NumberOfInterveningJobs object. * *************** public final class NumberOfInterveningJo *** 70,82 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 70,82 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/NumberUp.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/NumberUp.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/NumberUp.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/NumberUp.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NumberUp.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NumberUp.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 44,67 **** import javax.print.attribute.PrintRequestAttribute; /** ! * The NumberUp printing attribute specifies the number of pages * to be arranged upon a single media sheet. *

                                        ! * Note: The effect of this attribute on jobs with multiple documents ! * is controlled by the job attribute * {@link javax.print.attribute.standard.MultipleDocumentHandling}. *

                                        *

                                        * IPP Compatibility: NumberUp is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch */ public final class NumberUp extends IntegerSyntax implements DocAttribute, PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = -3040436486786527811L; ! /** * Creates a NumberUp object. * --- 44,67 ---- import javax.print.attribute.PrintRequestAttribute; /** ! * The NumberUp printing attribute specifies the number of pages * to be arranged upon a single media sheet. *

                                        ! * Note: The effect of this attribute on jobs with multiple documents ! * is controlled by the job attribute * {@link javax.print.attribute.standard.MultipleDocumentHandling}. *

                                        *

                                        * IPP Compatibility: NumberUp is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch */ public final class NumberUp extends IntegerSyntax implements DocAttribute, PrintJobAttribute, PrintRequestAttribute { private static final long serialVersionUID = -3040436486786527811L; ! /** * Creates a NumberUp object. * *************** public final class NumberUp extends Inte *** 74,86 **** { super(value); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 74,86 ---- { super(value); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.SupportedVa *** 43,55 **** /** ! * The NumberUpSupported printing attribute specifies the ! * supported value or range of values for the * {@link javax.print.attribute.standard.NumberUp} attribute. *

                                        * IPP Compatibility: NumberUpSupported is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 43,55 ---- /** ! * The NumberUpSupported printing attribute specifies the ! * supported value or range of values for the * {@link javax.print.attribute.standard.NumberUp} attribute. *

                                        * IPP Compatibility: NumberUpSupported is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class NumberUpSupported ext *** 68,74 **** public NumberUpSupported(int member) { super(member); ! if (member < 1) throw new IllegalArgumentException("member may not be less than 1"); } --- 68,74 ---- public NumberUpSupported(int member) { super(member); ! if (member < 1) throw new IllegalArgumentException("member may not be less than 1"); } *************** public final class NumberUpSupported ext *** 79,91 **** * @param members the members supported for number up. * * @exception IllegalArgumentException if any element is invalid ! * @exception NullPointerException if members is null or any * element of members is null. */ public NumberUpSupported(int[][] members) { super(members); ! if (members == null) throw new NullPointerException("members may not be null"); } --- 79,91 ---- * @param members the members supported for number up. * * @exception IllegalArgumentException if any element is invalid ! * @exception NullPointerException if members is null or any * element of members is null. */ public NumberUpSupported(int[][] members) { super(members); ! if (members == null) throw new NullPointerException("members may not be null"); } *************** public final class NumberUpSupported ext *** 103,126 **** public NumberUpSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof NumberUpSupported)) return false; ! return super.equals(obj); } --- 103,126 ---- public NumberUpSupported(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerBound may not be less than 1"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof NumberUpSupported)) return false; ! return super.equals(obj); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/OrientationRequested.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/OrientationRequested.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/OrientationRequested.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/OrientationRequested.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 56,62 **** *

                                        * IPP Compatibility: OrientationRequested is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 56,62 ---- *

                                        * IPP Compatibility: OrientationRequested is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class OrientationRequested *** 65,106 **** { private static final long serialVersionUID = -4447437289862822276L; ! /** ! * Orientation as portrait. */ public static final OrientationRequested PORTRAIT = new OrientationRequested(3); ! ! /** ! * Orientation as landscape. */ public static final OrientationRequested LANDSCAPE = new OrientationRequested(4); ! ! /** ! * Orientation as reversed landscape. */ public static final OrientationRequested REVERSE_LANDSCAPE = new OrientationRequested(5); ! ! /** ! * Orientation as reversed portrait. */ public static final OrientationRequested REVERSE_PORTRAIT = new OrientationRequested(6); ! private static final String[] stringTable = { "portrait", "landscape", "reverse-landscape", "reverse-portrait" }; ! ! private static final OrientationRequested[] ! enumValueTable = { PORTRAIT, LANDSCAPE, REVERSE_LANDSCAPE, REVERSE_PORTRAIT }; /** * Constructs a OrientationRequested object. ! * * @param value the value */ protected OrientationRequested(int value) --- 65,106 ---- { private static final long serialVersionUID = -4447437289862822276L; ! /** ! * Orientation as portrait. */ public static final OrientationRequested PORTRAIT = new OrientationRequested(3); ! ! /** ! * Orientation as landscape. */ public static final OrientationRequested LANDSCAPE = new OrientationRequested(4); ! ! /** ! * Orientation as reversed landscape. */ public static final OrientationRequested REVERSE_LANDSCAPE = new OrientationRequested(5); ! ! /** ! * Orientation as reversed portrait. */ public static final OrientationRequested REVERSE_PORTRAIT = new OrientationRequested(6); ! private static final String[] stringTable = { "portrait", "landscape", "reverse-landscape", "reverse-portrait" }; ! ! private static final OrientationRequested[] ! enumValueTable = { PORTRAIT, LANDSCAPE, REVERSE_LANDSCAPE, REVERSE_PORTRAIT }; /** * Constructs a OrientationRequested object. ! * * @param value the value */ protected OrientationRequested(int value) *************** public final class OrientationRequested *** 127,133 **** { return "orientation-requested"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 127,133 ---- { return "orientation-requested"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public final class OrientationRequested *** 148,154 **** { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . --- 148,154 ---- { return enumValueTable; } ! /** * Returns the lowest used value by the enumerations of this class. * . *************** public final class OrientationRequested *** 157,161 **** protected int getOffset() { return 3; ! } } --- 157,161 ---- protected int getOffset() { return 3; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* OutputDeviceAssigned.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* OutputDeviceAssigned.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 46,62 **** /** * The OutputDeviceAssigned printing attribute specifies the ! * output printer device assigned by a print service to a print job. *

                                        * This may be empty if a print service is embedded in a printer, e.g. is the ! * output device. However there exist print services with several physical * output devices (e.g. CUPS classes) where this attribute provides the actual * output device. *

                                        *

                                        * IPP Compatibility: OutputDeviceAssigned is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class OutputDeviceAssigned extends TextSyntax --- 46,62 ---- /** * The OutputDeviceAssigned printing attribute specifies the ! * output printer device assigned by a print service to a print job. *

                                        * This may be empty if a print service is embedded in a printer, e.g. is the ! * output device. However there exist print services with several physical * output devices (e.g. CUPS classes) where this attribute provides the actual * output device. *

                                        *

                                        * IPP Compatibility: OutputDeviceAssigned is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class OutputDeviceAssigned extends TextSyntax *************** public final class OutputDeviceAssigned *** 83,89 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 83,89 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintServic *** 49,55 **** *

                                        * IPP Compatibility: PDLOverrideSupported is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 49,55 ---- *

                                        * IPP Compatibility: PDLOverrideSupported is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class PDLOverrideSupported extend *** 64,85 **** */ public static final PDLOverrideSupported NOT_ATTEMPTED = new PDLOverrideSupported(0); ! /** * Indicates that the print service is capable of * attempting to override document data instructions. */ public static final PDLOverrideSupported ATTEMPTED = new PDLOverrideSupported(1); ! private static final String[] stringTable = { "not-attempted", "attempted" }; ! private static final PDLOverrideSupported[] enumValueTable = { NOT_ATTEMPTED, ATTEMPTED}; /** * Constructs a PDLOverrideSupported object. ! * * @param value the enum value */ protected PDLOverrideSupported(int value) --- 64,85 ---- */ public static final PDLOverrideSupported NOT_ATTEMPTED = new PDLOverrideSupported(0); ! /** * Indicates that the print service is capable of * attempting to override document data instructions. */ public static final PDLOverrideSupported ATTEMPTED = new PDLOverrideSupported(1); ! private static final String[] stringTable = { "not-attempted", "attempted" }; ! private static final PDLOverrideSupported[] enumValueTable = { NOT_ATTEMPTED, ATTEMPTED}; /** * Constructs a PDLOverrideSupported object. ! * * @param value the enum value */ protected PDLOverrideSupported(int value) *************** public class PDLOverrideSupported extend *** 106,112 **** { return "pdl-override-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 106,112 ---- { return "pdl-override-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PageRanges.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PageRanges.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PageRanges.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PageRanges.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 45,61 **** import javax.print.attribute.SetOfIntegerSyntax; /** ! * The PageRanges printing attribute specifies the * range(s) of pages to be printed in a print job. *

                                        ! * Note: The effect of this attribute on jobs with multiple ! * documents is controlled by the job attribute * {@link javax.print.attribute.standard.MultipleDocumentHandling}. *

                                        *

                                        * IPP Compatibility: PageRanges is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,61 ---- import javax.print.attribute.SetOfIntegerSyntax; /** ! * The PageRanges printing attribute specifies the * range(s) of pages to be printed in a print job. *

                                        ! * Note: The effect of this attribute on jobs with multiple ! * documents is controlled by the job attribute * {@link javax.print.attribute.standard.MultipleDocumentHandling}. *

                                        *

                                        * IPP Compatibility: PageRanges is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PageRanges extends Se *** 75,81 **** public PageRanges(int member) { super(member); ! if (member < 1) throw new IllegalArgumentException("member may not be less than 1"); } --- 75,81 ---- public PageRanges(int member) { super(member); ! if (member < 1) throw new IllegalArgumentException("member may not be less than 1"); } *************** public final class PageRanges extends Se *** 87,99 **** * @param members the page ranges to be printed. * * @exception IllegalArgumentException if any element is invalid ! * @exception NullPointerException if members is null or any * element of members is null. */ public PageRanges(int[][] members) { super(members); ! if (members == null) throw new NullPointerException("members may not be null"); } --- 87,99 ---- * @param members the page ranges to be printed. * * @exception IllegalArgumentException if any element is invalid ! * @exception NullPointerException if members is null or any * element of members is null. */ public PageRanges(int[][] members) { super(members); ! if (members == null) throw new NullPointerException("members may not be null"); } *************** public final class PageRanges extends Se *** 111,121 **** public PageRanges(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerbound may not be less than 1"); } ! /** * Constructs a PageRanges object with a set * of ranges to be printed in string array form. --- 111,121 ---- public PageRanges(int lowerBound, int upperBound) { super(lowerBound, upperBound); ! if (lowerBound < 1) throw new IllegalArgumentException("lowerbound may not be less than 1"); } ! /** * Constructs a PageRanges object with a set * of ranges to be printed in string array form. *************** public final class PageRanges extends Se *** 123,152 **** * @param members the page ranges to be printed in string form. * * @exception IllegalArgumentException if any element is invalid. ! * @exception NullPointerException if members is null or any * element of members is null. */ public PageRanges(String members) { super(members); ! if (members == null) throw new NullPointerException("members may not be null"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof PageRanges)) return false; ! return super.equals(obj); } --- 123,152 ---- * @param members the page ranges to be printed in string form. * * @exception IllegalArgumentException if any element is invalid. ! * @exception NullPointerException if members is null or any * element of members is null. */ public PageRanges(String members) { super(members); ! if (members == null) throw new NullPointerException("members may not be null"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if (! (obj instanceof PageRanges)) return false; ! return super.equals(obj); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PagesPerMinute.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PagesPerMinute.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.IntegerSynt *** 43,62 **** import javax.print.attribute.PrintServiceAttribute; /** ! * The PagesPerMinute printing attribute specifies * the nominal number of pages per minute which may be printed ! * by the printer. *

                                        * IPP Compatibility: PagesPerMinute is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PagesPerMinute extends IntegerSyntax implements PrintServiceAttribute { private static final long serialVersionUID = -6366403993072862015L; ! /** * Creates a PagesPerMinute object. * --- 43,62 ---- import javax.print.attribute.PrintServiceAttribute; /** ! * The PagesPerMinute printing attribute specifies * the nominal number of pages per minute which may be printed ! * by the printer. *

                                        * IPP Compatibility: PagesPerMinute is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PagesPerMinute extends IntegerSyntax implements PrintServiceAttribute { private static final long serialVersionUID = -6366403993072862015L; ! /** * Creates a PagesPerMinute object. * *************** public final class PagesPerMinute extend *** 71,83 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 71,83 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PagesPerMinuteColor.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PagesPerMinuteColor.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.IntegerSynt *** 42,61 **** import javax.print.attribute.PrintServiceAttribute; /** ! * The PagesPerMinuteColor printing attribute specifies * the nominal number of pages per minute which may be printed in ! * color by the printer. *

                                        * IPP Compatibility: PagesPerMinuteColor is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch */ public final class PagesPerMinuteColor extends IntegerSyntax implements PrintServiceAttribute { private static final long serialVersionUID = 1684993151687470944L; ! /** * Creates a PagesPerMinuteColor object. * --- 42,61 ---- import javax.print.attribute.PrintServiceAttribute; /** ! * The PagesPerMinuteColor printing attribute specifies * the nominal number of pages per minute which may be printed in ! * color by the printer. *

                                        * IPP Compatibility: PagesPerMinuteColor is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch */ public final class PagesPerMinuteColor extends IntegerSyntax implements PrintServiceAttribute { private static final long serialVersionUID = 1684993151687470944L; ! /** * Creates a PagesPerMinuteColor object. * *************** public final class PagesPerMinuteColor e *** 70,82 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 70,82 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PresentationDirection.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PresentationDirection.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PresentationDirection.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PresentationDirection.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 45,57 **** /** * The PresentationDirection attribute specifies ! * a value to be used together with the NumberUp attribute * to indicate the layout of multiple pages on a single media sheet. *

                                        ! * IPP Compatibility: PresentationDirection is not an IPP 1.1 * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,57 ---- /** * The PresentationDirection attribute specifies ! * a value to be used together with the NumberUp attribute * to indicate the layout of multiple pages on a single media sheet. *

                                        ! * IPP Compatibility: PresentationDirection is not an IPP 1.1 * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PresentationDirection *** 61,132 **** private static final long serialVersionUID = 8294728067230931780L; /** ! * The single pages are arranged on the media in columns starting * at the top left towards the bottom left. */ public static final PresentationDirection TOBOTTOM_TORIGHT = new PresentationDirection(0); ! /** ! * The single pages are arranged on the media in columns starting * at the top right towards the bottom left. */ public static final PresentationDirection TOBOTTOM_TOLEFT = new PresentationDirection(1); ! /** ! * The single pages are arranged on the media in columns starting * at the bottom left towards the top right. */ public static final PresentationDirection TOTOP_TORIGHT = new PresentationDirection(2); ! /** ! * The single pages are arranged on the media in columns starting * at the bottom right towards the top left. */ public static final PresentationDirection TOTOP_TOLEFT = new PresentationDirection(3); ! /** ! * The single pages are arranged on the media in rows starting * at the top left towards the right bottom. */ public static final PresentationDirection TORIGHT_TOBOTTOM = new PresentationDirection(4); ! /** ! * The single pages are arranged on the media in rows starting * at the bottom left towards the right top. */ public static final PresentationDirection TORIGHT_TOTOP = new PresentationDirection(5); ! /** ! * The single pages are arranged on the media in rows starting * at the top right towards the left bottom. */ public static final PresentationDirection TOLEFT_TOBOTTOM = new PresentationDirection(6); ! /** ! * The single pages are arranged on the media in rows starting * at the bottom right towards the left top. */ public static final PresentationDirection TOLEFT_TOTOP = new PresentationDirection(7); ! private static final String[] stringTable = { "tobottom-toright", ! "tobottom-toleft", "totop-toright", "totop-toleft", "toright-tobottom", "toright-totop", "toleft-tobottom", "toleft-totop" }; ! private static final PresentationDirection[] enumValueTable = ! { TOBOTTOM_TORIGHT, TOBOTTOM_TOLEFT, TOTOP_TORIGHT, TOTOP_TOLEFT, TORIGHT_TOBOTTOM, TORIGHT_TOTOP, TOLEFT_TOBOTTOM, TOLEFT_TOTOP }; ! /** * Constructs a PresentationDirection object. ! * * @param value the enum value. */ private PresentationDirection(int value) --- 61,132 ---- private static final long serialVersionUID = 8294728067230931780L; /** ! * The single pages are arranged on the media in columns starting * at the top left towards the bottom left. */ public static final PresentationDirection TOBOTTOM_TORIGHT = new PresentationDirection(0); ! /** ! * The single pages are arranged on the media in columns starting * at the top right towards the bottom left. */ public static final PresentationDirection TOBOTTOM_TOLEFT = new PresentationDirection(1); ! /** ! * The single pages are arranged on the media in columns starting * at the bottom left towards the top right. */ public static final PresentationDirection TOTOP_TORIGHT = new PresentationDirection(2); ! /** ! * The single pages are arranged on the media in columns starting * at the bottom right towards the top left. */ public static final PresentationDirection TOTOP_TOLEFT = new PresentationDirection(3); ! /** ! * The single pages are arranged on the media in rows starting * at the top left towards the right bottom. */ public static final PresentationDirection TORIGHT_TOBOTTOM = new PresentationDirection(4); ! /** ! * The single pages are arranged on the media in rows starting * at the bottom left towards the right top. */ public static final PresentationDirection TORIGHT_TOTOP = new PresentationDirection(5); ! /** ! * The single pages are arranged on the media in rows starting * at the top right towards the left bottom. */ public static final PresentationDirection TOLEFT_TOBOTTOM = new PresentationDirection(6); ! /** ! * The single pages are arranged on the media in rows starting * at the bottom right towards the left top. */ public static final PresentationDirection TOLEFT_TOTOP = new PresentationDirection(7); ! private static final String[] stringTable = { "tobottom-toright", ! "tobottom-toleft", "totop-toright", "totop-toleft", "toright-tobottom", "toright-totop", "toleft-tobottom", "toleft-totop" }; ! private static final PresentationDirection[] enumValueTable = ! { TOBOTTOM_TORIGHT, TOBOTTOM_TOLEFT, TOTOP_TORIGHT, TOTOP_TOLEFT, TORIGHT_TOBOTTOM, TORIGHT_TOTOP, TOLEFT_TOBOTTOM, TOLEFT_TOTOP }; ! /** * Constructs a PresentationDirection object. ! * * @param value the enum value. */ private PresentationDirection(int value) *************** public final class PresentationDirection *** 153,159 **** { return "presentation-direction"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 153,159 ---- { return "presentation-direction"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrintQuality.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrintQuality.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrintQuality.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrintQuality.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 50,56 **** *

                                        * IPP Compatibility: PrintQuality is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 50,56 ---- *

                                        * IPP Compatibility: PrintQuality is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class PrintQuality extends EnumSy *** 59,86 **** { private static final long serialVersionUID = -3072341285225858365L; ! /** ! * Draft quality of the printer. */ public static final PrintQuality DRAFT = new PrintQuality(3); ! ! /** ! * Normal quality of the printer. */ public static final PrintQuality NORMAL = new PrintQuality(4); ! ! /** ! * High quality of the printer. */ public static final PrintQuality HIGH = new PrintQuality(5); private static final String[] stringTable = { "draft", "normal", "high" }; ! private static final PrintQuality[] enumValueTable = { DRAFT, NORMAL, HIGH }; ! /** * Constructs a PrintQuality object. ! * * @param value the value of the enum */ protected PrintQuality(int value) --- 59,86 ---- { private static final long serialVersionUID = -3072341285225858365L; ! /** ! * Draft quality of the printer. */ public static final PrintQuality DRAFT = new PrintQuality(3); ! ! /** ! * Normal quality of the printer. */ public static final PrintQuality NORMAL = new PrintQuality(4); ! ! /** ! * High quality of the printer. */ public static final PrintQuality HIGH = new PrintQuality(5); private static final String[] stringTable = { "draft", "normal", "high" }; ! private static final PrintQuality[] enumValueTable = { DRAFT, NORMAL, HIGH }; ! /** * Constructs a PrintQuality object. ! * * @param value the value of the enum */ protected PrintQuality(int value) *************** public class PrintQuality extends EnumSy *** 107,113 **** { return "print-quality"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 107,113 ---- { return "print-quality"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. *************** public class PrintQuality extends EnumSy *** 127,133 **** protected EnumSyntax[] getEnumValueTable() { return enumValueTable; ! } /** * Returns the lowest used value by the enumerations of this class. --- 127,133 ---- protected EnumSyntax[] getEnumValueTable() { return enumValueTable; ! } /** * Returns the lowest used value by the enumerations of this class. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterInfo.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterInfo.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterInfo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterInfo.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrinterInfo.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterInfo.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintServic *** 45,56 **** import javax.print.attribute.TextSyntax; /** ! * The PrinterInfo printing attribute provides * informations about a printer device. *

                                        * IPP Compatibility: PrinterInfo is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterInfo extends TextSyntax --- 45,56 ---- import javax.print.attribute.TextSyntax; /** ! * The PrinterInfo printing attribute provides * informations about a printer device. *

                                        * IPP Compatibility: PrinterInfo is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterInfo extends TextSyntax *************** public final class PrinterInfo extends T *** 77,83 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,83 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintServic *** 43,58 **** /** ! * The PrinterIsAcceptingJobs printing attribute signals * if a print services is currently accepting jobs. *

                                        * IPP Compatibility: PrinterIsAcceptingJobs is an IPP 1.1 attribute. ! * The IPP specification treats PrinterIsAcceptingJobs as boolean type which ! * is not available in the Java Print Service API. The IPP boolean value "true" ! * corresponds to ACCEPTING_JOBS and "false" * to NOT_ACCEPTING_JOBS. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 43,58 ---- /** ! * The PrinterIsAcceptingJobs printing attribute signals * if a print services is currently accepting jobs. *

                                        * IPP Compatibility: PrinterIsAcceptingJobs is an IPP 1.1 attribute. ! * The IPP specification treats PrinterIsAcceptingJobs as boolean type which ! * is not available in the Java Print Service API. The IPP boolean value "true" ! * corresponds to ACCEPTING_JOBS and "false" * to NOT_ACCEPTING_JOBS. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PrinterIsAcceptingJob *** 66,87 **** */ public static final PrinterIsAcceptingJobs NOT_ACCEPTING_JOBS = new PrinterIsAcceptingJobs(0); ! /** * The printer is accepting jobs. */ public static final PrinterIsAcceptingJobs ACCEPTING_JOBS = new PrinterIsAcceptingJobs(1); ! private static final String[] stringTable = { "not-accepting-jobs", "accepting-jobs" }; ! ! private static final PrinterIsAcceptingJobs[] enumValueTable = { NOT_ACCEPTING_JOBS, ACCEPTING_JOBS }; ! /** * Constructs a PrinterIsAcceptingJobs object. ! * * @param value the enum value. */ protected PrinterIsAcceptingJobs(int value) --- 66,87 ---- */ public static final PrinterIsAcceptingJobs NOT_ACCEPTING_JOBS = new PrinterIsAcceptingJobs(0); ! /** * The printer is accepting jobs. */ public static final PrinterIsAcceptingJobs ACCEPTING_JOBS = new PrinterIsAcceptingJobs(1); ! private static final String[] stringTable = { "not-accepting-jobs", "accepting-jobs" }; ! ! private static final PrinterIsAcceptingJobs[] enumValueTable = { NOT_ACCEPTING_JOBS, ACCEPTING_JOBS }; ! /** * Constructs a PrinterIsAcceptingJobs object. ! * * @param value the enum value. */ protected PrinterIsAcceptingJobs(int value) *************** public final class PrinterIsAcceptingJob *** 108,114 **** { return "printer-is-accepting-jobs"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 108,114 ---- { return "printer-is-accepting-jobs"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterLocation.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterLocation.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterLocation.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterLocation.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrinterLocation.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterLocation.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintServic *** 45,56 **** import javax.print.attribute.TextSyntax; /** ! * The PrinterLocation printing attribute provides the location * of a printer device. This may be a room and building name for example. *

                                        * IPP Compatibility: PrinterLocation is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterLocation extends TextSyntax --- 45,56 ---- import javax.print.attribute.TextSyntax; /** ! * The PrinterLocation printing attribute provides the location * of a printer device. This may be a room and building name for example. *

                                        * IPP Compatibility: PrinterLocation is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterLocation extends TextSyntax *************** public final class PrinterLocation exten *** 77,83 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,83 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrinterMakeAndModel.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterMakeAndModel.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.TextSyntax; *** 50,56 **** *

                                        * IPP Compatibility: PrinterMakeAndModel is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterMakeAndModel extends TextSyntax --- 50,56 ---- *

                                        * IPP Compatibility: PrinterMakeAndModel is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterMakeAndModel extends TextSyntax *************** public final class PrinterMakeAndModel e *** 77,83 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,83 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrinterMessageFromOperator.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterMessageFromOperator.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintServic *** 45,59 **** import javax.print.attribute.TextSyntax; /** ! * The PrinterMessageFromOperator printing attribute provides ! * a message from an operator or a system administrator related to the * printer. This may include informations about the status of the printer * or expected downtimes, etc. *

                                        ! * IPP Compatibility: PrinterMessageFromOperator is an IPP 1.1 * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterMessageFromOperator extends TextSyntax --- 45,59 ---- import javax.print.attribute.TextSyntax; /** ! * The PrinterMessageFromOperator printing attribute provides ! * a message from an operator or a system administrator related to the * printer. This may include informations about the status of the printer * or expected downtimes, etc. *

                                        ! * IPP Compatibility: PrinterMessageFromOperator is an IPP 1.1 * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterMessageFromOperator extends TextSyntax *************** public final class PrinterMessageFromOpe *** 80,86 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 80,86 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.URISyntax; *** 50,60 **** *

                                        * The URI may for example contain a reference to a HTML page with information. * The information is normally intended for end users. ! *

                                        *

                                        * IPP Compatibility: PrinterMoreInfo is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 50,60 ---- *

                                        * The URI may for example contain a reference to a HTML page with information. * The information is normally intended for end users. ! *

                                        *

                                        * IPP Compatibility: PrinterMoreInfo is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PrinterMoreInfo exten *** 65,71 **** /** * Constructs a PrinterMoreInfo object. ! * * @param uri the URI of the information. * @throws NullPointerException if the given uri is null. */ --- 65,71 ---- /** * Constructs a PrinterMoreInfo object. ! * * @param uri the URI of the information. * @throws NullPointerException if the given uri is null. */ *************** public final class PrinterMoreInfo exten *** 73,85 **** { super(uri); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 73,85 ---- { super(uri); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintServic *** 45,64 **** import javax.print.attribute.URISyntax; /** ! * The PrinterMoreInfoManufacturer attribute provides a URI that * can be used to obtain more information about the printer device type and * its manufacturer. *

                                        ! * The URI may for example contain a reference to a website of the ! * manufacturer, containing informations and links to the latest firmware, ! * printer drivers, manual etc. The information is normally intended for * end users. ! *

                                        *

                                        ! * IPP Compatibility: PrinterMoreInfoManufacturer is an IPP 1.1 * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,64 ---- import javax.print.attribute.URISyntax; /** ! * The PrinterMoreInfoManufacturer attribute provides a URI that * can be used to obtain more information about the printer device type and * its manufacturer. *

                                        ! * The URI may for example contain a reference to a website of the ! * manufacturer, containing informations and links to the latest firmware, ! * printer drivers, manual etc. The information is normally intended for * end users. ! *

                                        *

                                        ! * IPP Compatibility: PrinterMoreInfoManufacturer is an IPP 1.1 * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PrinterMoreInfoManufa *** 69,75 **** /** * Constructs a PrinterMoreInfoManufacturer object. ! * * @param uri the URI of the information.. * @throws NullPointerException if the given uri is null. */ --- 69,75 ---- /** * Constructs a PrinterMoreInfoManufacturer object. ! * * @param uri the URI of the information.. * @throws NullPointerException if the given uri is null. */ *************** public final class PrinterMoreInfoManufa *** 77,89 **** { super(uri); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,89 ---- { super(uri); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterName.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterName.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterName.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterName.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrinterName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrinterName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintServic *** 45,58 **** import javax.print.attribute.TextSyntax; /** ! * The PrinterName printing attribute provides the name of a * print service. The name may but must not be related to parts of the * printer URI. *

                                        * IPP Compatibility: PrinterName is an IPP 1.1 attribute. *

                                        * @see javax.print.attribute.standard.PrinterURI ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterName extends TextSyntax --- 45,58 ---- import javax.print.attribute.TextSyntax; /** ! * The PrinterName printing attribute provides the name of a * print service. The name may but must not be related to parts of the * printer URI. *

                                        * IPP Compatibility: PrinterName is an IPP 1.1 attribute. *

                                        * @see javax.print.attribute.standard.PrinterURI ! * * @author Michael Koch (konqueror@gmx.de) */ public final class PrinterName extends TextSyntax *************** public final class PrinterName extends T *** 79,85 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 79,85 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterResolution.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterResolution.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterResolution.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterResolution.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.ResolutionS *** 45,56 **** /** ! * The PrinterResolution printing attribute specifies a ! * resolution supported by a print service or to be used by a print job. *

                                        * IPP Compatibility: PrinterResolution is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,56 ---- /** ! * The PrinterResolution printing attribute specifies a ! * resolution supported by a print service or to be used by a print job. *

                                        * IPP Compatibility: PrinterResolution is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PrinterResolution ext *** 74,93 **** { super(crossFeedResolution, feedResolution, units); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if(! (obj instanceof PrinterResolution)) return false; ! return super.equals(obj); } --- 74,93 ---- { super(crossFeedResolution, feedResolution, units); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) { if(! (obj instanceof PrinterResolution)) return false; ! return super.equals(obj); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterState.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterState.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterState.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterState.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintServic *** 49,61 **** * The {@link javax.print.attribute.standard.PrinterStateReasons} * attribute provides further detailed information about * the given printer state. Detailed information about the printer ! * state and printer state reasons attributes can be found in the * RFC 2911. ! *

                                        *

                                        * IPP Compatibility: PrinterState is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 49,61 ---- * The {@link javax.print.attribute.standard.PrinterStateReasons} * attribute provides further detailed information about * the given printer state. Detailed information about the printer ! * state and printer state reasons attributes can be found in the * RFC 2911. ! *

                                        *

                                        * IPP Compatibility: PrinterState is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PrinterState extends *** 68,102 **** * The state is unknown currently. */ public static final PrinterState UNKNOWN = new PrinterState(0); ! /** * The printer device is in idle state. New jobs can start * processing without waiting. */ public static final PrinterState IDLE = new PrinterState(3); ! /** * The printer device is in processing state. */ public static final PrinterState PROCESSING = new PrinterState(4); ! /** * The printer device has stopped. No jobs can be processed and * normally manual intervention is needed. */ public static final PrinterState STOPPED = new PrinterState(5); ! private static final String[] stringTable = { "unknown", null, null, ! "idle", "processing", "stopped" }; ! private static final PrinterState[] enumValueTable = { UNKNOWN, null, null, ! IDLE, PROCESSING, STOPPED }; ! /** * Constructs a PrinterState object. ! * * @param value the enum value. */ protected PrinterState(int value) --- 68,102 ---- * The state is unknown currently. */ public static final PrinterState UNKNOWN = new PrinterState(0); ! /** * The printer device is in idle state. New jobs can start * processing without waiting. */ public static final PrinterState IDLE = new PrinterState(3); ! /** * The printer device is in processing state. */ public static final PrinterState PROCESSING = new PrinterState(4); ! /** * The printer device has stopped. No jobs can be processed and * normally manual intervention is needed. */ public static final PrinterState STOPPED = new PrinterState(5); ! private static final String[] stringTable = { "unknown", null, null, ! "idle", "processing", "stopped" }; ! private static final PrinterState[] enumValueTable = { UNKNOWN, null, null, ! IDLE, PROCESSING, STOPPED }; ! /** * Constructs a PrinterState object. ! * * @param value the enum value. */ protected PrinterState(int value) *************** public final class PrinterState extends *** 123,129 **** { return "printer-state"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 123,129 ---- { return "printer-state"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.EnumSyntax; *** 45,57 **** * The PrinterStateReason attribute provides additional * information about the current state of the printer device. Its always part * of the {@link javax.print.attribute.standard.PrinterStateReasons} ! * printing attribute. *

                                        ! * IPP Compatibility: PrinterStateReason is not an IPP 1.1 * attribute itself but used inside the PrinterStateReasons * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,57 ---- * The PrinterStateReason attribute provides additional * information about the current state of the printer device. Its always part * of the {@link javax.print.attribute.standard.PrinterStateReasons} ! * printing attribute. *

                                        ! * IPP Compatibility: PrinterStateReason is not an IPP 1.1 * attribute itself but used inside the PrinterStateReasons * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class PrinterStateReason extends *** 64,115 **** * Any state other state not listed here. */ public static final PrinterStateReason OTHER = new PrinterStateReason(0); ! /** * A media tray has run out of media. */ public static final PrinterStateReason MEDIA_NEEDED = new PrinterStateReason(1); ! /** * A media jam occured in the printer device. */ public static final PrinterStateReason MEDIA_JAM = new PrinterStateReason(2); ! /** * Indicates that the printer has been paused by the pause printer * operation and is currently moving to the pause state. */ public static final PrinterStateReason MOVING_TO_PAUSED = new PrinterStateReason(3); ! /** * The printer device has be paused by the pause printer operation. */ public static final PrinterStateReason PAUSED = new PrinterStateReason(4); ! /** * The printer device has been shutdown or removed from service. */ public static final PrinterStateReason SHUTDOWN = new PrinterStateReason(5); ! /** * The printer object is connecting to the device. If a printer ! * device is on the network the printer object may be unable to connect. */ public static final PrinterStateReason CONNECTING_TO_DEVICE = new PrinterStateReason(6); ! /** ! * The connection to the device has timed out. */ public static final PrinterStateReason TIMED_OUT = new PrinterStateReason(7); ! /** * The printer object is stopping the printer device. */ public static final PrinterStateReason STOPPING = new PrinterStateReason(8); ! /** * The printer object has stopped partly. A printer object may control * several physical output devices (e.g. a printer class in CUPS) and --- 64,115 ---- * Any state other state not listed here. */ public static final PrinterStateReason OTHER = new PrinterStateReason(0); ! /** * A media tray has run out of media. */ public static final PrinterStateReason MEDIA_NEEDED = new PrinterStateReason(1); ! /** * A media jam occured in the printer device. */ public static final PrinterStateReason MEDIA_JAM = new PrinterStateReason(2); ! /** * Indicates that the printer has been paused by the pause printer * operation and is currently moving to the pause state. */ public static final PrinterStateReason MOVING_TO_PAUSED = new PrinterStateReason(3); ! /** * The printer device has be paused by the pause printer operation. */ public static final PrinterStateReason PAUSED = new PrinterStateReason(4); ! /** * The printer device has been shutdown or removed from service. */ public static final PrinterStateReason SHUTDOWN = new PrinterStateReason(5); ! /** * The printer object is connecting to the device. If a printer ! * device is on the network the printer object may be unable to connect. */ public static final PrinterStateReason CONNECTING_TO_DEVICE = new PrinterStateReason(6); ! /** ! * The connection to the device has timed out. */ public static final PrinterStateReason TIMED_OUT = new PrinterStateReason(7); ! /** * The printer object is stopping the printer device. */ public static final PrinterStateReason STOPPING = new PrinterStateReason(8); ! /** * The printer object has stopped partly. A printer object may control * several physical output devices (e.g. a printer class in CUPS) and *************** public class PrinterStateReason extends *** 117,286 **** */ public static final PrinterStateReason STOPPED_PARTLY = new PrinterStateReason(9); ! /** * The printer device is low on toner. */ public static final PrinterStateReason TONER_LOW = new PrinterStateReason(10); ! /** * The printer device is out of toner. */ public static final PrinterStateReason TONER_EMPTY = new PrinterStateReason(11); ! /** * The printers spool area is currently full. The printer is * currently not able to accept jobs. */ public static final PrinterStateReason SPOOL_AREA_FULL = new PrinterStateReason(12); ! /** * One or more covers of the printer device are open. */ public static final PrinterStateReason COVER_OPEN = new PrinterStateReason(13); ! /** * One or more interlocks of the printer device are open. */ public static final PrinterStateReason INTERLOCK_OPEN = new PrinterStateReason(14); ! /** * One or more doors of the printer device are open. */ public static final PrinterStateReason DOOR_OPEN = new PrinterStateReason(15); ! /** * One or more input trays are missing in the printer device. */ public static final PrinterStateReason INPUT_TRAY_MISSING = new PrinterStateReason(16); ! /** * The printer device is low on media. */ public static final PrinterStateReason MEDIA_LOW = new PrinterStateReason(17); ! /** * The printer device is out of media. */ public static final PrinterStateReason MEDIA_EMPTY = new PrinterStateReason(18); ! /** * One or more output trays are missing in the printer device. */ public static final PrinterStateReason OUTPUT_TRAY_MISSING = new PrinterStateReason(19); ! /** * One or more output areas of the printer device are almost full. */ public static final PrinterStateReason OUTPUT_AREA_ALMOST_FULL = new PrinterStateReason(20); ! /** * One or more output areas of the printer device are full. */ public static final PrinterStateReason OUTPUT_AREA_FULL = new PrinterStateReason(21); ! /** * The printer device is low on marker supply. */ public static final PrinterStateReason MARKER_SUPPLY_LOW = new PrinterStateReason(22); ! /** * The printer device is out of marker supply. */ public static final PrinterStateReason MARKER_SUPPLY_EMPTY = new PrinterStateReason(23); ! /** * The marker waste bin of the printer device is almost full. */ public static final PrinterStateReason MARKER_WASTE_ALMOST_FULL = new PrinterStateReason(24); ! /** * The marker waste bin of the printer device is full. */ public static final PrinterStateReason MARKER_WASTE_FULL = new PrinterStateReason(25); ! /** * The fuser of the printer device is over temperature. */ public static final PrinterStateReason FUSER_OVER_TEMP = new PrinterStateReason(26); ! /** * The fuser of the printer device is under the needed temperature. */ public static final PrinterStateReason FUSER_UNDER_TEMP = new PrinterStateReason(27); ! /** * The optical photo conductor is near its end of life (EOL). */ public static final PrinterStateReason OPC_NEAR_EOL = new PrinterStateReason(28); ! /** * The optical photo conductor has reached its end of life. */ public static final PrinterStateReason OPC_LIFE_OVER = new PrinterStateReason(29); ! /** * The printer device is low on developer. */ public static final PrinterStateReason DEVELOPER_LOW = new PrinterStateReason(30); ! /** * The printer device is out of developer. */ public static final PrinterStateReason DEVELOPER_EMPTY = new PrinterStateReason(31); ! /** * An interpreter resource (e.g. font) is unavailable. */ public static final PrinterStateReason INTERPRETER_RESOURCE_UNAVAILABLE = new PrinterStateReason(32); ! private static final String[] stringTable = ! { "other", "media-needed", "media-jam", "moving-to-paused", "paused", ! "shutdown", "connecting-to-device", "timed-out", "stopping", ! "stopped-partly", "toner-low", "toner-empty", "spool-area-full", ! "cover-open", "interlock-open", "door-open", "input-tray-missing", "media-low", "media-empty", "output-tray-missing", "output-area-almost-full", ! "output-area-full", "marker-supply-low", "marker-supply-empty", ! "marker-waste-almost-full", "marker-waste-full", "fuser-over-temp", ! "fuser-under-temp", "opc-near-eol", "opc-life-over", "developer-low", "developer-empty", "interpreter-resource-unavailable" }; ! private static final PrinterStateReason[] enumValueTable = { OTHER, MEDIA_NEEDED, MEDIA_JAM, MOVING_TO_PAUSED, PAUSED, SHUTDOWN, CONNECTING_TO_DEVICE, TIMED_OUT, STOPPING, STOPPED_PARTLY, TONER_LOW, TONER_EMPTY, SPOOL_AREA_FULL, COVER_OPEN, INTERLOCK_OPEN, DOOR_OPEN, INPUT_TRAY_MISSING, MEDIA_LOW, MEDIA_EMPTY, OUTPUT_TRAY_MISSING, OUTPUT_AREA_ALMOST_FULL, OUTPUT_AREA_FULL, MARKER_SUPPLY_LOW, MARKER_SUPPLY_EMPTY, MARKER_WASTE_ALMOST_FULL, MARKER_WASTE_FULL, ! FUSER_OVER_TEMP, FUSER_UNDER_TEMP, OPC_NEAR_EOL, OPC_LIFE_OVER, DEVELOPER_LOW, DEVELOPER_EMPTY, INTERPRETER_RESOURCE_UNAVAILABLE }; /** * Constructs a PrinterStateReason object. ! * * @param value the enum value. */ protected PrinterStateReason(int value) --- 117,286 ---- */ public static final PrinterStateReason STOPPED_PARTLY = new PrinterStateReason(9); ! /** * The printer device is low on toner. */ public static final PrinterStateReason TONER_LOW = new PrinterStateReason(10); ! /** * The printer device is out of toner. */ public static final PrinterStateReason TONER_EMPTY = new PrinterStateReason(11); ! /** * The printers spool area is currently full. The printer is * currently not able to accept jobs. */ public static final PrinterStateReason SPOOL_AREA_FULL = new PrinterStateReason(12); ! /** * One or more covers of the printer device are open. */ public static final PrinterStateReason COVER_OPEN = new PrinterStateReason(13); ! /** * One or more interlocks of the printer device are open. */ public static final PrinterStateReason INTERLOCK_OPEN = new PrinterStateReason(14); ! /** * One or more doors of the printer device are open. */ public static final PrinterStateReason DOOR_OPEN = new PrinterStateReason(15); ! /** * One or more input trays are missing in the printer device. */ public static final PrinterStateReason INPUT_TRAY_MISSING = new PrinterStateReason(16); ! /** * The printer device is low on media. */ public static final PrinterStateReason MEDIA_LOW = new PrinterStateReason(17); ! /** * The printer device is out of media. */ public static final PrinterStateReason MEDIA_EMPTY = new PrinterStateReason(18); ! /** * One or more output trays are missing in the printer device. */ public static final PrinterStateReason OUTPUT_TRAY_MISSING = new PrinterStateReason(19); ! /** * One or more output areas of the printer device are almost full. */ public static final PrinterStateReason OUTPUT_AREA_ALMOST_FULL = new PrinterStateReason(20); ! /** * One or more output areas of the printer device are full. */ public static final PrinterStateReason OUTPUT_AREA_FULL = new PrinterStateReason(21); ! /** * The printer device is low on marker supply. */ public static final PrinterStateReason MARKER_SUPPLY_LOW = new PrinterStateReason(22); ! /** * The printer device is out of marker supply. */ public static final PrinterStateReason MARKER_SUPPLY_EMPTY = new PrinterStateReason(23); ! /** * The marker waste bin of the printer device is almost full. */ public static final PrinterStateReason MARKER_WASTE_ALMOST_FULL = new PrinterStateReason(24); ! /** * The marker waste bin of the printer device is full. */ public static final PrinterStateReason MARKER_WASTE_FULL = new PrinterStateReason(25); ! /** * The fuser of the printer device is over temperature. */ public static final PrinterStateReason FUSER_OVER_TEMP = new PrinterStateReason(26); ! /** * The fuser of the printer device is under the needed temperature. */ public static final PrinterStateReason FUSER_UNDER_TEMP = new PrinterStateReason(27); ! /** * The optical photo conductor is near its end of life (EOL). */ public static final PrinterStateReason OPC_NEAR_EOL = new PrinterStateReason(28); ! /** * The optical photo conductor has reached its end of life. */ public static final PrinterStateReason OPC_LIFE_OVER = new PrinterStateReason(29); ! /** * The printer device is low on developer. */ public static final PrinterStateReason DEVELOPER_LOW = new PrinterStateReason(30); ! /** * The printer device is out of developer. */ public static final PrinterStateReason DEVELOPER_EMPTY = new PrinterStateReason(31); ! /** * An interpreter resource (e.g. font) is unavailable. */ public static final PrinterStateReason INTERPRETER_RESOURCE_UNAVAILABLE = new PrinterStateReason(32); ! private static final String[] stringTable = ! { "other", "media-needed", "media-jam", "moving-to-paused", "paused", ! "shutdown", "connecting-to-device", "timed-out", "stopping", ! "stopped-partly", "toner-low", "toner-empty", "spool-area-full", ! "cover-open", "interlock-open", "door-open", "input-tray-missing", "media-low", "media-empty", "output-tray-missing", "output-area-almost-full", ! "output-area-full", "marker-supply-low", "marker-supply-empty", ! "marker-waste-almost-full", "marker-waste-full", "fuser-over-temp", ! "fuser-under-temp", "opc-near-eol", "opc-life-over", "developer-low", "developer-empty", "interpreter-resource-unavailable" }; ! private static final PrinterStateReason[] enumValueTable = { OTHER, MEDIA_NEEDED, MEDIA_JAM, MOVING_TO_PAUSED, PAUSED, SHUTDOWN, CONNECTING_TO_DEVICE, TIMED_OUT, STOPPING, STOPPED_PARTLY, TONER_LOW, TONER_EMPTY, SPOOL_AREA_FULL, COVER_OPEN, INTERLOCK_OPEN, DOOR_OPEN, INPUT_TRAY_MISSING, MEDIA_LOW, MEDIA_EMPTY, OUTPUT_TRAY_MISSING, OUTPUT_AREA_ALMOST_FULL, OUTPUT_AREA_FULL, MARKER_SUPPLY_LOW, MARKER_SUPPLY_EMPTY, MARKER_WASTE_ALMOST_FULL, MARKER_WASTE_FULL, ! FUSER_OVER_TEMP, FUSER_UNDER_TEMP, OPC_NEAR_EOL, OPC_LIFE_OVER, DEVELOPER_LOW, DEVELOPER_EMPTY, INTERPRETER_RESOURCE_UNAVAILABLE }; /** * Constructs a PrinterStateReason object. ! * * @param value the enum value. */ protected PrinterStateReason(int value) *************** public class PrinterStateReason extends *** 307,313 **** { return "printer-state-reason"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 307,313 ---- { return "printer-state-reason"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.Attribute; *** 49,63 **** import javax.print.attribute.PrintServiceAttribute; /** ! * The PrinterStateReasons attribute provides the set of ! * additional informations available about the current state of the printer * device. *

                                        * The attribute is basically a map with PrinterStateReason ! * objects as keys associated with their severity level as ! * Severity instances. The IPP keyword value can be * constructed as follows:
                                        ! * reason.toString() + '-' + severity.toString() *

                                        *

                                        * IPP Compatibility: PrinterStateReasons is an IPP 1.1 attribute. --- 49,63 ---- import javax.print.attribute.PrintServiceAttribute; /** ! * The PrinterStateReasons attribute provides the set of ! * additional informations available about the current state of the printer * device. *

                                        * The attribute is basically a map with PrinterStateReason ! * objects as keys associated with their severity level as ! * Severity instances. The IPP keyword value can be * constructed as follows:
                                        ! * reason.toString() + '-' + severity.toString() *

                                        *

                                        * IPP Compatibility: PrinterStateReasons is an IPP 1.1 attribute. *************** import javax.print.attribute.PrintServic *** 65,71 **** * @see javax.print.attribute.standard.PrinterState * @see javax.print.attribute.standard.PrinterStateReason * @see javax.print.attribute.standard.Severity ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 65,71 ---- * @see javax.print.attribute.standard.PrinterState * @see javax.print.attribute.standard.PrinterStateReason * @see javax.print.attribute.standard.Severity ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PrinterStateReasons *** 77,83 **** /** * Constructs an empty PrinterStateReasons attribute. ! */ public PrinterStateReasons() { super(); --- 77,83 ---- /** * Constructs an empty PrinterStateReasons attribute. ! */ public PrinterStateReasons() { super(); *************** public final class PrinterStateReasons *** 86,95 **** /** * Constructs an empty PrinterStateReasons attribute * with the given initial capacity and load factor. ! * * @param initialCapacity the intial capacity. * @param loadFactor the load factor of the underlying HashMap. ! * * @throws IllegalArgumentException if initialCapacity < 0 * @throws IllegalArgumentException if initialCapacity or loadFactor < 0 */ --- 86,95 ---- /** * Constructs an empty PrinterStateReasons attribute * with the given initial capacity and load factor. ! * * @param initialCapacity the intial capacity. * @param loadFactor the load factor of the underlying HashMap. ! * * @throws IllegalArgumentException if initialCapacity < 0 * @throws IllegalArgumentException if initialCapacity or loadFactor < 0 */ *************** public final class PrinterStateReasons *** 101,109 **** /** * Constructs an empty PrinterStateReasons attribute * with the given initial capacity and the default load factor. ! * * @param initialCapacity the intial capacity. ! * * @throws IllegalArgumentException if initialCapacity < 0 */ public PrinterStateReasons(int initialCapacity) --- 101,109 ---- /** * Constructs an empty PrinterStateReasons attribute * with the given initial capacity and the default load factor. ! * * @param initialCapacity the intial capacity. ! * * @throws IllegalArgumentException if initialCapacity < 0 */ public PrinterStateReasons(int initialCapacity) *************** public final class PrinterStateReasons *** 114,126 **** /** * Constructs a PrinterStateReasons attribute * with the given content of the map. ! * ! * @param map the map for the initial values with the same * PrinterStateReason to Severity mappings. ! * * @throws NullPointerException if map or any key/value is null. ! * @throws ClassCastException if values of map are not of type ! * PrinterStateReason and keys are not of type * Severity. */ public PrinterStateReasons(Map map) --- 114,126 ---- /** * Constructs a PrinterStateReasons attribute * with the given content of the map. ! * ! * @param map the map for the initial values with the same * PrinterStateReason to Severity mappings. ! * * @throws NullPointerException if map or any key/value is null. ! * @throws ClassCastException if values of map are not of type ! * PrinterStateReason and keys are not of type * Severity. */ public PrinterStateReasons(Map map) *************** public final class PrinterStateReasons *** 135,141 **** /** * Constructs an unmodifiable view of the contained printer state reasons * associated with the given severity level. ! * * @param severity the severity level for the constructed set. * @return The set of printer state reasons. */ --- 135,141 ---- /** * Constructs an unmodifiable view of the contained printer state reasons * associated with the given severity level. ! * * @param severity the severity level for the constructed set. * @return The set of printer state reasons. */ *************** public final class PrinterStateReasons *** 143,149 **** { if (severity == null) throw new NullPointerException("severity is null"); ! HashSet set = new HashSet(); Iterator it = entrySet().iterator(); while (it.hasNext()) --- 143,149 ---- { if (severity == null) throw new NullPointerException("severity is null"); ! HashSet set = new HashSet(); Iterator it = entrySet().iterator(); while (it.hasNext()) *************** public final class PrinterStateReasons *** 152,186 **** if (entry.getValue().equals(severity)) set.add(entry.getKey()); } ! return Collections.unmodifiableSet(set); } ! /** * Puts the given reason object associated with the given severity object * into the set. ! * * @param reason the reason of type PrinterStateReason. * @param severity the severity of the reason of type Severity. ! * ! * @return The previously associated severity of the reason or * null if the reason object was not in the map before. ! * * @throws NullPointerException if any of the values is null. ! * @throws ClassCastException if reason is not a ! * PrinterStateReason and severity is not a * Severity instance. */ public Severity put(PrinterStateReason reason,Severity severity) { if (reason == null) ! throw new NullPointerException("reason is null"); if (severity == null) throw new NullPointerException("severity is null"); ! return super.put(reason, severity); ! } ! /** * Returns category of this class. * --- 152,186 ---- if (entry.getValue().equals(severity)) set.add(entry.getKey()); } ! return Collections.unmodifiableSet(set); } ! /** * Puts the given reason object associated with the given severity object * into the set. ! * * @param reason the reason of type PrinterStateReason. * @param severity the severity of the reason of type Severity. ! * ! * @return The previously associated severity of the reason or * null if the reason object was not in the map before. ! * * @throws NullPointerException if any of the values is null. ! * @throws ClassCastException if reason is not a ! * PrinterStateReason and severity is not a * Severity instance. */ public Severity put(PrinterStateReason reason,Severity severity) { if (reason == null) ! throw new NullPointerException("reason is null"); if (severity == null) throw new NullPointerException("severity is null"); ! return super.put(reason, severity); ! } ! /** * Returns category of this class. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterURI.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterURI.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/PrinterURI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/PrinterURI.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintServic *** 45,60 **** import javax.print.attribute.URISyntax; /** ! * The PrinterURI attribute provides the URI of a printer. *

                                        ! * The URI identifies the printer against all the other print services ! * available. This attribute is used to direct a print service request * to this specific printer. ! *

                                        *

                                        * IPP Compatibility: PrinterURI is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,60 ---- import javax.print.attribute.URISyntax; /** ! * The PrinterURI attribute provides the URI of a printer. *

                                        ! * The URI identifies the printer against all the other print services ! * available. This attribute is used to direct a print service request * to this specific printer. ! *

                                        *

                                        * IPP Compatibility: PrinterURI is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class PrinterURI extends UR *** 65,71 **** /** * Constructs a PrinterURI object. ! * * @param uri the URI of the print service. * @throws NullPointerException if the given uri is null. */ --- 65,71 ---- /** * Constructs a PrinterURI object. ! * * @param uri the URI of the print service. * @throws NullPointerException if the given uri is null. */ *************** public final class PrinterURI extends UR *** 73,85 **** { super(uri); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 73,85 ---- { super(uri); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* QueuedJobCount.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* QueuedJobCount.java -- Copyright (C) 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.IntegerSynt *** 42,63 **** import javax.print.attribute.PrintServiceAttribute; /** ! * The QueuedJobCount printing attribute reports * the number of jobs currently in the queue. These are jobs * that are in 'pending', 'processing', 'pending-held' or ! * 'processing-stopped' state. *

                                        * IPP Compatibility: QueuedJobCount is an IPP 1.1 attribute. *

                                        * @see javax.print.attribute.standard.JobState ! * * @author Michael Koch */ public final class QueuedJobCount extends IntegerSyntax implements PrintServiceAttribute { private static final long serialVersionUID = 7499723077864047742L; ! /** * Creates a QueuedJobCount object. * --- 42,63 ---- import javax.print.attribute.PrintServiceAttribute; /** ! * The QueuedJobCount printing attribute reports * the number of jobs currently in the queue. These are jobs * that are in 'pending', 'processing', 'pending-held' or ! * 'processing-stopped' state. *

                                        * IPP Compatibility: QueuedJobCount is an IPP 1.1 attribute. *

                                        * @see javax.print.attribute.standard.JobState ! * * @author Michael Koch */ public final class QueuedJobCount extends IntegerSyntax implements PrintServiceAttribute { private static final long serialVersionUID = 7499723077864047742L; ! /** * Creates a QueuedJobCount object. * *************** public final class QueuedJobCount extend *** 72,84 **** if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 72,84 ---- if (value < 0) throw new IllegalArgumentException("value may not be less than 0"); } ! /** * Tests if the given object is equal to this object. * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.EnumSyntax; *** 42,55 **** /** ! * The ReferenceUriSchemesSupported attribute provides * the supported URI schemes (e.g. ftp) which are supported by the * printer service to be used as uri reference for document data. *

                                        ! * IPP Compatibility: ReferenceUriSchemesSupported is an IPP 1.1 * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 42,55 ---- /** ! * The ReferenceUriSchemesSupported attribute provides * the supported URI schemes (e.g. ftp) which are supported by the * printer service to be used as uri reference for document data. *

                                        ! * IPP Compatibility: ReferenceUriSchemesSupported is an IPP 1.1 * attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public class ReferenceUriSchemesSupporte *** 63,121 **** */ public static final ReferenceUriSchemesSupported FTP = new ReferenceUriSchemesSupported(0); ! /** * The hyper text transfer protocol (HTTP). */ public static final ReferenceUriSchemesSupported HTTP = new ReferenceUriSchemesSupported(1); ! /** * The secure hyper text transfer protocol (HTTPS). */ public static final ReferenceUriSchemesSupported HTTPS = new ReferenceUriSchemesSupported(2); ! /** * The gopher protocol. */ public static final ReferenceUriSchemesSupported GOPHER = new ReferenceUriSchemesSupported(3); ! /** * The USENET news - RFC 1738. */ public static final ReferenceUriSchemesSupported NEWS = new ReferenceUriSchemesSupported(4); ! /** * The network news transfer protocol (NNTP) - RFC 1738. */ public static final ReferenceUriSchemesSupported NNTP = new ReferenceUriSchemesSupported(5); ! /** * The wide area information server protocol (WAIS) - RFC 4156. */ public static final ReferenceUriSchemesSupported WAIS = new ReferenceUriSchemesSupported(6); ! /** * A filename specific to the host. */ public static final ReferenceUriSchemesSupported FILE = new ReferenceUriSchemesSupported(7); ! private static final String[] stringTable = { "ftp", "http", "https", ! "gopher", "news", "nntp", "wais", "file" }; ! private static final ReferenceUriSchemesSupported[] enumValueTable = { FTP, HTTP, HTTPS, GOPHER, NEWS, NNTP, WAIS, FILE }; /** * Constructs a ReferenceUriSchemeSupported object. ! * * @param value the enum value. */ protected ReferenceUriSchemesSupported(int value) --- 63,121 ---- */ public static final ReferenceUriSchemesSupported FTP = new ReferenceUriSchemesSupported(0); ! /** * The hyper text transfer protocol (HTTP). */ public static final ReferenceUriSchemesSupported HTTP = new ReferenceUriSchemesSupported(1); ! /** * The secure hyper text transfer protocol (HTTPS). */ public static final ReferenceUriSchemesSupported HTTPS = new ReferenceUriSchemesSupported(2); ! /** * The gopher protocol. */ public static final ReferenceUriSchemesSupported GOPHER = new ReferenceUriSchemesSupported(3); ! /** * The USENET news - RFC 1738. */ public static final ReferenceUriSchemesSupported NEWS = new ReferenceUriSchemesSupported(4); ! /** * The network news transfer protocol (NNTP) - RFC 1738. */ public static final ReferenceUriSchemesSupported NNTP = new ReferenceUriSchemesSupported(5); ! /** * The wide area information server protocol (WAIS) - RFC 4156. */ public static final ReferenceUriSchemesSupported WAIS = new ReferenceUriSchemesSupported(6); ! /** * A filename specific to the host. */ public static final ReferenceUriSchemesSupported FILE = new ReferenceUriSchemesSupported(7); ! private static final String[] stringTable = { "ftp", "http", "https", ! "gopher", "news", "nntp", "wais", "file" }; ! private static final ReferenceUriSchemesSupported[] enumValueTable = { FTP, HTTP, HTTPS, GOPHER, NEWS, NNTP, WAIS, FILE }; /** * Constructs a ReferenceUriSchemeSupported object. ! * * @param value the enum value. */ protected ReferenceUriSchemesSupported(int value) *************** public class ReferenceUriSchemesSupporte *** 142,148 **** { return "reference-uri-schemes-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 142,148 ---- { return "reference-uri-schemes-supported"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/RequestingUserName.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/RequestingUserName.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/RequestingUserName.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/RequestingUserName.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RequestingUserName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RequestingUserName.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintReques *** 45,56 **** import javax.print.attribute.TextSyntax; /** ! * The RequestingUserName attribute provides the name of * the user which requests the printing of the given job. *

                                        * IPP Compatibility: RequestingUserName is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class RequestingUserName extends TextSyntax --- 45,56 ---- import javax.print.attribute.TextSyntax; /** ! * The RequestingUserName attribute provides the name of * the user which requests the printing of the given job. *

                                        * IPP Compatibility: RequestingUserName is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) */ public final class RequestingUserName extends TextSyntax *************** public final class RequestingUserName ex *** 77,83 **** * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) --- 77,83 ---- * * @param obj the object to test * ! * @return true if both objects are equal, * false otherwise. */ public boolean equals(Object obj) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Severity.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Severity.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Severity.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Severity.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.EnumSyntax; *** 45,60 **** * The Severity printing attribute specifies the severity * for a PrinterStateReason attribute. *

                                        ! * This attribute does not appear in the attribute set of a print service ! * itself. Its used inside the PrinterStateReasons ! * attribute which contains PrinterStateReason objects which * informs about the print service's status. *

                                        *

                                        * IPP Compatibility: Severity is not an IPP attribute on its own * but used in the PrinterStateReason attribute to indicate the severity. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 45,60 ---- * The Severity printing attribute specifies the severity * for a PrinterStateReason attribute. *

                                        ! * This attribute does not appear in the attribute set of a print service ! * itself. Its used inside the PrinterStateReasons ! * attribute which contains PrinterStateReason objects which * informs about the print service's status. *

                                        *

                                        * IPP Compatibility: Severity is not an IPP attribute on its own * but used in the PrinterStateReason attribute to indicate the severity. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class Severity extends Enum *** 67,87 **** * Indicates that the reason is a report. */ public static final Severity REPORT = new Severity(0); ! /** * Indicates that the reason is a warning. */ public static final Severity WARNING = new Severity(1); ! /** * Indicates that the reason is an error. */ public static final Severity ERROR = new Severity(2); private static final String[] stringTable = { "report", "warning", "error" }; ! private static final Severity[] enumValueTable = { REPORT, WARNING, ERROR }; ! /** * Constructs a Severity object. * --- 67,87 ---- * Indicates that the reason is a report. */ public static final Severity REPORT = new Severity(0); ! /** * Indicates that the reason is a warning. */ public static final Severity WARNING = new Severity(1); ! /** * Indicates that the reason is an error. */ public static final Severity ERROR = new Severity(2); private static final String[] stringTable = { "report", "warning", "error" }; ! private static final Severity[] enumValueTable = { REPORT, WARNING, ERROR }; ! /** * Constructs a Severity object. * *************** public final class Severity extends Enum *** 111,117 **** { return "severity"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 111,117 ---- { return "severity"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/SheetCollate.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/SheetCollate.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/SheetCollate.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/SheetCollate.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 45,51 **** /** ! * The SheetCollate printing attribute specifies * whether or not the sheets of each copy in a print job have to be * in sequence. *

                                        --- 45,51 ---- /** ! * The SheetCollate printing attribute specifies * whether or not the sheets of each copy in a print job have to be * in sequence. *

                                        *************** import javax.print.attribute.PrintReques *** 58,64 **** *

                                        * IPP Compatibility: SheetCollate is not an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 58,64 ---- *

                                        * IPP Compatibility: SheetCollate is not an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class SheetCollate extends *** 71,77 **** * The sheets of the different copies are uncollated. */ public static final SheetCollate UNCOLLATED = new SheetCollate(0); ! /** * The sheets of the different copies are collated. */ --- 71,77 ---- * The sheets of the different copies are uncollated. */ public static final SheetCollate UNCOLLATED = new SheetCollate(0); ! /** * The sheets of the different copies are collated. */ *************** public final class SheetCollate extends *** 79,88 **** private static final String[] stringTable = { "uncollated", "collated" }; ! ! private static final SheetCollate[] enumValueTable = { UNCOLLATED, ! COLLATED }; ! /** * Creates a SheetCollate object. * --- 79,88 ---- private static final String[] stringTable = { "uncollated", "collated" }; ! ! private static final SheetCollate[] enumValueTable = { UNCOLLATED, ! COLLATED }; ! /** * Creates a SheetCollate object. * *************** public final class SheetCollate extends *** 112,118 **** { return "sheet-collate"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 112,118 ---- { return "sheet-collate"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Sides.java gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Sides.java *** gcc-4.5.2/libjava/classpath/javax/print/attribute/standard/Sides.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/print/attribute/standard/Sides.java Tue Jan 11 19:46:05 2011 *************** import javax.print.attribute.PrintReques *** 46,56 **** /** * The Sides printing attribute specifies how consecutive ! * printing pages are arranged on the media sheet. *

                                        * IPP Compatibility: Sides is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ --- 46,56 ---- /** * The Sides printing attribute specifies how consecutive ! * printing pages are arranged on the media sheet. *

                                        * IPP Compatibility: Sides is an IPP 1.1 attribute. *

                                        ! * * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ *************** public final class Sides extends EnumSyn *** 59,99 **** { private static final long serialVersionUID = -6890309414893262822L; ! /** ! * Specifies that each page should be printed on one sheet. */ public static final Sides ONE_SIDED = new Sides(0); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the long edge. */ public static final Sides TWO_SIDED_LONG_EDGE = new Sides(1); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the short edge. */ public static final Sides TWO_SIDED_SHORT_EDGE = new Sides(2); ! ! /** ! * An alias constant for "two sided long edge". */ public static final Sides DUPLEX = new Sides(1); ! ! /** ! * An alias constant for "two sided short edge". */ public static final Sides TUMBLE = new Sides(2); ! private static final String[] stringTable = { "one-sided", "two-sided-long-edge", "two-sided-short-edge" }; ! ! private static final Sides[] enumValueTable = { ONE_SIDED, ! TWO_SIDED_LONG_EDGE, ! TWO_SIDED_SHORT_EDGE }; ! /** * Creates a Sides object. * --- 59,99 ---- { private static final long serialVersionUID = -6890309414893262822L; ! /** ! * Specifies that each page should be printed on one sheet. */ public static final Sides ONE_SIDED = new Sides(0); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the long edge. */ public static final Sides TWO_SIDED_LONG_EDGE = new Sides(1); ! ! /** ! * Specifies that two following pages should be printed on the * front and back of one sheet for binding on the short edge. */ public static final Sides TWO_SIDED_SHORT_EDGE = new Sides(2); ! ! /** ! * An alias constant for "two sided long edge". */ public static final Sides DUPLEX = new Sides(1); ! ! /** ! * An alias constant for "two sided short edge". */ public static final Sides TUMBLE = new Sides(2); ! private static final String[] stringTable = { "one-sided", "two-sided-long-edge", "two-sided-short-edge" }; ! ! private static final Sides[] enumValueTable = { ONE_SIDED, ! TWO_SIDED_LONG_EDGE, ! TWO_SIDED_SHORT_EDGE }; ! /** * Creates a Sides object. * *************** public final class Sides extends EnumSyn *** 123,129 **** { return "sides"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. --- 123,129 ---- { return "sides"; } ! /** * Returns a table with the enumeration values represented as strings * for this object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/event/PrintEvent.java gcc-4.6.0/libjava/classpath/javax/print/event/PrintEvent.java *** gcc-4.5.2/libjava/classpath/javax/print/event/PrintEvent.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/event/PrintEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintEvent.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintEvent.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.EventObject; *** 42,55 **** /** * Superclass of all events in the Java Print Service API. ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintEvent extends EventObject { /** * Constructs a PrintEvent object. ! * * @param source the source of this event */ public PrintEvent(Object source) --- 42,55 ---- /** * Superclass of all events in the Java Print Service API. ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintEvent extends EventObject { /** * Constructs a PrintEvent object. ! * * @param source the source of this event */ public PrintEvent(Object source) *************** public class PrintEvent extends EventObj *** 59,65 **** /** * Returns a string representation of this object. ! * * @return The string representation */ public String toString() --- 59,65 ---- /** * Returns a string representation of this object. ! * * @return The string representation */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobAdapter.java gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobAdapter.java *** gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobAdapter.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobAdapter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintJobAdapter.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintJobAdapter.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.event; *** 43,49 **** * classes. The methods in this class do nothing by default. Subclasses may * only implement the methods for the {@link javax.print.event.PrintJobEvent}s * they are interested in. ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class PrintJobAdapter --- 43,49 ---- * classes. The methods in this class do nothing by default. Subclasses may * only implement the methods for the {@link javax.print.event.PrintJobEvent}s * they are interested in. ! * * @author Michael Koch (konqueror@gmx.de) */ public abstract class PrintJobAdapter *************** public abstract class PrintJobAdapter *** 56,68 **** { // Do nothing here. } ! /** * Called to notify the client that all data has been successfully transferred * to the print service. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printDataTransferCompleted(PrintJobEvent event) { --- 56,68 ---- { // Do nothing here. } ! /** * Called to notify the client that all data has been successfully transferred * to the print service. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printDataTransferCompleted(PrintJobEvent event) { *************** public abstract class PrintJobAdapter *** 70,79 **** } /** ! * Called to notify the client that a print job was canceled. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobCanceled(PrintJobEvent event) { --- 70,79 ---- } /** ! * Called to notify the client that a print job was canceled. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobCanceled(PrintJobEvent event) { *************** public abstract class PrintJobAdapter *** 83,90 **** /** * Called to notify the client that a print job was successfully completed. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobCompleted(PrintJobEvent event) { --- 83,90 ---- /** * Called to notify the client that a print job was successfully completed. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobCompleted(PrintJobEvent event) { *************** public abstract class PrintJobAdapter *** 95,102 **** * Called to notify the client that a print job failed to complete * successfully. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobFailed(PrintJobEvent event) { --- 95,102 ---- * Called to notify the client that a print job failed to complete * successfully. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobFailed(PrintJobEvent event) { *************** public abstract class PrintJobAdapter *** 106,113 **** /** * Called to notify the client that no more job events will be send. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobNoMoreEvents(PrintJobEvent event) { --- 106,113 ---- /** * Called to notify the client that no more job events will be send. *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobNoMoreEvents(PrintJobEvent event) { *************** public abstract class PrintJobAdapter *** 116,126 **** /** * Called to notify the client that a problem occured during printing. ! * This event signals problems a user might be able to fix * (e.g. out of paper or paper jam). *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobRequiresAttention(PrintJobEvent event) { --- 116,126 ---- /** * Called to notify the client that a problem occured during printing. ! * This event signals problems a user might be able to fix * (e.g. out of paper or paper jam). *

                                        The default implementation does nothing.

                                        ! * ! * @param event the event. */ public void printJobRequiresAttention(PrintJobEvent event) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobAttributeEvent.java gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobAttributeEvent.java *** gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobAttributeEvent.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobAttributeEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintJobAttributeEvent.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintJobAttributeEvent.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintJobAtt *** 42,62 **** /** ! * PrintJobAttributeEvents are generated by a * PrintService to inform registered listeners that attributes * associated with a {@link javax.print.DocPrintJob} instance have changed. ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintJobAttributeEvent extends PrintEvent { private static final long serialVersionUID = -6534469883874742101L; ! private PrintJobAttributeSet attributes; ! /** * Constructs a PrintJobAttributeEvent object. ! * * @param source the source of this event * @param attributes the attribute changes being reported */ --- 42,62 ---- /** ! * PrintJobAttributeEvents are generated by a * PrintService to inform registered listeners that attributes * associated with a {@link javax.print.DocPrintJob} instance have changed. ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintJobAttributeEvent extends PrintEvent { private static final long serialVersionUID = -6534469883874742101L; ! private PrintJobAttributeSet attributes; ! /** * Constructs a PrintJobAttributeEvent object. ! * * @param source the source of this event * @param attributes the attribute changes being reported */ *************** public class PrintJobAttributeEvent exte *** 69,75 **** /** * Returns the print job generating this event. ! * * @return The print job. */ public DocPrintJob getPrintJob() --- 69,75 ---- /** * Returns the print job generating this event. ! * * @return The print job. */ public DocPrintJob getPrintJob() *************** public class PrintJobAttributeEvent exte *** 79,85 **** /** * Returns the attributes that changed and their new values. ! * * @return The changed attributes. */ public PrintJobAttributeSet getAttributes() --- 79,85 ---- /** * Returns the attributes that changed and their new values. ! * * @return The changed attributes. */ public PrintJobAttributeSet getAttributes() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobAttributeListener.java gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobAttributeListener.java *** gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobAttributeListener.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobAttributeListener.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintJobAttributeListener.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintJobAttributeListener.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.event; *** 40,55 **** /** * Listener interface to receive attribute changes from a print job. ! * Implementations of this interface can be registered with a * {@link javax.print.DocPrintJob} instance. ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintJobAttributeListener { /** * Notifies the listener of an attribute change. ! * * @param event the event */ void attributeUpdate(PrintJobAttributeEvent event); --- 40,55 ---- /** * Listener interface to receive attribute changes from a print job. ! * Implementations of this interface can be registered with a * {@link javax.print.DocPrintJob} instance. ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintJobAttributeListener { /** * Notifies the listener of an attribute change. ! * * @param event the event */ void attributeUpdate(PrintJobAttributeEvent event); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobEvent.java gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobEvent.java *** gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobEvent.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintEvent.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintEvent.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.DocPrintJob; *** 44,83 **** * PrintJobEvents are generated by a print job during * print job processing to inform registered listeners about the state * of processing. ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintJobEvent extends PrintEvent { private static final long serialVersionUID = -1711656903622072997L; ! /** Indicates that the data transfer to the print service has completed. */ public static final int DATA_TRANSFER_COMPLETE = 106; ! /** Indicates that the print job was canceled. */ public static final int JOB_CANCELED = 101; ! /** Indicates that the print job was completed (=printed). */ public static final int JOB_COMPLETE = 102; ! /** Indicates that the print job failed to complete. */ public static final int JOB_FAILED = 103; ! /** Indicates that no more job events will be send.*/ public static final int NO_MORE_EVENTS = 105; ! ! /** * Indicates a situation where human intervention might be needed. * E.g. the printer run out of paper or a paper jam occured. */ public static final int REQUIRES_ATTENTION = 104; ! /** The reason (one of the defined constants). */ private int reason; ! /** * Constructs a PrintJobEvent object. ! * * @param source the source generating this event * @param reason the reason for this event */ --- 44,83 ---- * PrintJobEvents are generated by a print job during * print job processing to inform registered listeners about the state * of processing. ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintJobEvent extends PrintEvent { private static final long serialVersionUID = -1711656903622072997L; ! /** Indicates that the data transfer to the print service has completed. */ public static final int DATA_TRANSFER_COMPLETE = 106; ! /** Indicates that the print job was canceled. */ public static final int JOB_CANCELED = 101; ! /** Indicates that the print job was completed (=printed). */ public static final int JOB_COMPLETE = 102; ! /** Indicates that the print job failed to complete. */ public static final int JOB_FAILED = 103; ! /** Indicates that no more job events will be send.*/ public static final int NO_MORE_EVENTS = 105; ! ! /** * Indicates a situation where human intervention might be needed. * E.g. the printer run out of paper or a paper jam occured. */ public static final int REQUIRES_ATTENTION = 104; ! /** The reason (one of the defined constants). */ private int reason; ! /** * Constructs a PrintJobEvent object. ! * * @param source the source generating this event * @param reason the reason for this event */ *************** public class PrintJobEvent extends Print *** 89,95 **** /** * Returns the reason for this event. ! * * @return The reason. */ public int getPrintEventType() --- 89,95 ---- /** * Returns the reason for this event. ! * * @return The reason. */ public int getPrintEventType() *************** public class PrintJobEvent extends Print *** 99,107 **** /** * Returns the print job that generated this event. ! * * @return The print job. ! */ public DocPrintJob getPrintJob() { return (DocPrintJob) getSource(); --- 99,107 ---- /** * Returns the print job that generated this event. ! * * @return The print job. ! */ public DocPrintJob getPrintJob() { return (DocPrintJob) getSource(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobListener.java gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobListener.java *** gcc-4.5.2/libjava/classpath/javax/print/event/PrintJobListener.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/event/PrintJobListener.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintJobListener.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintJobListener.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.event; *** 40,95 **** /** * Listener interface to receive processing events from a print job. ! * Implementations of this interface can be registered with a * {@link javax.print.DocPrintJob} instance. ! * * @see javax.print.event.PrintJobAdapter ! * ! * @author Michael Koch (konqueror@gmx.de) */ public interface PrintJobListener { /** * Notifies the listener that all data has been successfully transferred * to the print service. ! * * @param event the event */ void printDataTransferCompleted(PrintJobEvent event); ! /** * Notifies the listener that a print job got canceled. ! * * @param event the event */ void printJobCanceled(PrintJobEvent event); ! /** * Notifies the listener that a print job has completed. ! * * @param event the event */ void printJobCompleted(PrintJobEvent event); ! /** * Notifies the listener that a print job has failed to complete. ! * * @param event the event. */ void printJobFailed(PrintJobEvent event); ! /** * Notifies the listener that no more events will be delivered. ! * * @param event the event */ void printJobNoMoreEvents(PrintJobEvent event); ! /** * Notifies the listener that a problem occured during printing. ! * This event signals problems a user might be able to fix * (e.g. out of paper or paper jam). ! * * @param event the event */ void printJobRequiresAttention(PrintJobEvent event); --- 40,95 ---- /** * Listener interface to receive processing events from a print job. ! * Implementations of this interface can be registered with a * {@link javax.print.DocPrintJob} instance. ! * * @see javax.print.event.PrintJobAdapter ! * ! * @author Michael Koch (konqueror@gmx.de) */ public interface PrintJobListener { /** * Notifies the listener that all data has been successfully transferred * to the print service. ! * * @param event the event */ void printDataTransferCompleted(PrintJobEvent event); ! /** * Notifies the listener that a print job got canceled. ! * * @param event the event */ void printJobCanceled(PrintJobEvent event); ! /** * Notifies the listener that a print job has completed. ! * * @param event the event */ void printJobCompleted(PrintJobEvent event); ! /** * Notifies the listener that a print job has failed to complete. ! * * @param event the event. */ void printJobFailed(PrintJobEvent event); ! /** * Notifies the listener that no more events will be delivered. ! * * @param event the event */ void printJobNoMoreEvents(PrintJobEvent event); ! /** * Notifies the listener that a problem occured during printing. ! * This event signals problems a user might be able to fix * (e.g. out of paper or paper jam). ! * * @param event the event */ void printJobRequiresAttention(PrintJobEvent event); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/event/PrintServiceAttributeEvent.java gcc-4.6.0/libjava/classpath/javax/print/event/PrintServiceAttributeEvent.java *** gcc-4.5.2/libjava/classpath/javax/print/event/PrintServiceAttributeEvent.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/event/PrintServiceAttributeEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintServiceAttributeEvent.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintServiceAttributeEvent.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.print.attribute.PrintServic *** 42,60 **** /** ! * PrintServiceAttributeEvents are generated by a * PrintService to inform registered listeners that * its associated attributes have changed. ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintServiceAttributeEvent extends PrintEvent { private PrintServiceAttributeSet attributes; ! /** * Constructs a PrintServiceAttributeEvent object. ! * * @param source the source of this event * @param attributes the attribute changes being reported */ --- 42,60 ---- /** ! * PrintServiceAttributeEvents are generated by a * PrintService to inform registered listeners that * its associated attributes have changed. ! * * @author Michael Koch (konqueror@gmx.de) */ public class PrintServiceAttributeEvent extends PrintEvent { private PrintServiceAttributeSet attributes; ! /** * Constructs a PrintServiceAttributeEvent object. ! * * @param source the source of this event * @param attributes the attribute changes being reported */ *************** public class PrintServiceAttributeEvent *** 67,73 **** /** * Returns the print service that generated this event. ! * * @return The print service. */ public PrintService getPrintService() --- 67,73 ---- /** * Returns the print service that generated this event. ! * * @return The print service. */ public PrintService getPrintService() *************** public class PrintServiceAttributeEvent *** 77,83 **** /** * Returns the changed attributes this event reports. ! * * @return The changed attributes. */ public PrintServiceAttributeSet getAttributes() --- 77,83 ---- /** * Returns the changed attributes this event reports. ! * * @return The changed attributes. */ public PrintServiceAttributeSet getAttributes() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/print/event/PrintServiceAttributeListener.java gcc-4.6.0/libjava/classpath/javax/print/event/PrintServiceAttributeListener.java *** gcc-4.5.2/libjava/classpath/javax/print/event/PrintServiceAttributeListener.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/print/event/PrintServiceAttributeListener.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PrintServiceAttributeListener.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PrintServiceAttributeListener.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.print.event; *** 40,55 **** /** * Listener interface to receive attribute changes from a print service. ! * Implementations of this interface can be registered with a * {@link javax.print.PrintService} instance. ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintServiceAttributeListener { /** * Notifies the listener that some attributes have changed. ! * * @param event the event */ void attributeUpdate(PrintServiceAttributeEvent event); --- 40,55 ---- /** * Listener interface to receive attribute changes from a print service. ! * Implementations of this interface can be registered with a * {@link javax.print.PrintService} instance. ! * * @author Michael Koch (konqueror@gmx.de) */ public interface PrintServiceAttributeListener { /** * Notifies the listener that some attributes have changed. ! * * @param event the event */ void attributeUpdate(PrintServiceAttributeEvent event); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/ClassDesc.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/ClassDesc.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/ClassDesc.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/ClassDesc.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 49,56 **** */ public class ClassDesc implements Serializable { ! /** ! * Use serialVersionUID (V1.4) for interoperability. */ private static final long serialVersionUID = -3477057297839810709L; --- 49,56 ---- */ public class ClassDesc implements Serializable { ! /** ! * Use serialVersionUID (V1.4) for interoperability. */ private static final long serialVersionUID = -3477057297839810709L; *************** public class ClassDesc implements Serial *** 58,64 **** * The class repository Id. */ String repid; ! /** * Space separeted list of URL's from where the code can be downloaded. */ --- 58,64 ---- * The class repository Id. */ String repid; ! /** * Space separeted list of URL's from where the code can be downloaded. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.RemoteException; *** 45,55 **** /** * A delegate, implementing the functionality, provided by the * {@link PortableRemoteObject}. ! * * The default delegate can be altered by setting the system property * "javax.rmi.CORBA.PortableRemoteObjectClass" to the name of the alternative * class that must implement {@link PortableRemoteObjectDelegate}. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface PortableRemoteObjectDelegate --- 45,55 ---- /** * A delegate, implementing the functionality, provided by the * {@link PortableRemoteObject}. ! * * The default delegate can be altered by setting the system property * "javax.rmi.CORBA.PortableRemoteObjectClass" to the name of the alternative * class that must implement {@link PortableRemoteObjectDelegate}. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface PortableRemoteObjectDelegate *************** public interface PortableRemoteObjectDel *** 66,77 **** * {@link Stub#connect} if it is a stub or by associating its tie with an ORB * if it is an implementation object. *

                                        ! * * @param target the target object that may be either an RMI/IDL stub or an * exported RMI/IDL implementation object * @param source the source object may also be either an RMI/IDL stub or an * exported RMI/IDL implementation object. ! * * @throws RemoteException if the target is already connected to another ORB. */ void connect(Remote target, Remote source) --- 66,77 ---- * {@link Stub#connect} if it is a stub or by associating its tie with an ORB * if it is an implementation object. *

                                        ! * * @param target the target object that may be either an RMI/IDL stub or an * exported RMI/IDL implementation object * @param source the source object may also be either an RMI/IDL stub or an * exported RMI/IDL implementation object. ! * * @throws RemoteException if the target is already connected to another ORB. */ void connect(Remote target, Remote source) *************** public interface PortableRemoteObjectDel *** 83,91 **** * non-daemon thread that prevents jre from terminating until all objects are * unexported. Also, such object cannot be collected by garbage collector. * This is usually impemented via {@link Util#unexportObject} ! * * @param obj the object to export. ! * * @throws RemoteException */ void exportObject(Remote obj) --- 83,91 ---- * non-daemon thread that prevents jre from terminating until all objects are * unexported. Also, such object cannot be collected by garbage collector. * This is usually impemented via {@link Util#unexportObject} ! * * @param obj the object to export. ! * * @throws RemoteException */ void exportObject(Remote obj) *************** public interface PortableRemoteObjectDel *** 95,107 **** * Narrows the passed object to conform to the given interface or IDL type. * This method may return different instance and cannot be replaced by the * direct cast. ! * * @param narrowFrom an object to narrow. * @param narrowTo a type to that the object must be narrowed. ! * * @return On success, an object of type narrowTo or null, if narrowFrom = * null. ! * * @throws ClassCastException if no narrowing is possible. */ Object narrow(Object narrowFrom, Class narrowTo) --- 95,107 ---- * Narrows the passed object to conform to the given interface or IDL type. * This method may return different instance and cannot be replaced by the * direct cast. ! * * @param narrowFrom an object to narrow. * @param narrowTo a type to that the object must be narrowed. ! * * @return On success, an object of type narrowTo or null, if narrowFrom = * null. ! * * @throws ClassCastException if no narrowing is possible. */ Object narrow(Object narrowFrom, Class narrowTo) *************** public interface PortableRemoteObjectDel *** 112,121 **** * used to access that server object (target). If the target is connected, the * returned stub is also connected to the same ORB. If the target is * unconnected, the returned stub is unconnected. ! * * @param obj a server side object. * @return a stub object that can be used to access that server object. ! * * @throws NoSuchObjectException if a stub cannot be located for the given * target. */ --- 112,121 ---- * used to access that server object (target). If the target is connected, the * returned stub is also connected to the same ORB. If the target is * unconnected, the returned stub is unconnected. ! * * @param obj a server side object. * @return a stub object that can be used to access that server object. ! * * @throws NoSuchObjectException if a stub cannot be located for the given * target. */ *************** public interface PortableRemoteObjectDel *** 126,134 **** * Deregister a currently exported server object from the ORB runtimes. The * object to becomes available for garbage collection. This is usually * impemented via {@link Util#unexportObject} ! * * @param obj the object to unexport. ! * * @throws NoSuchObjectException if the passed object is not currently * exported. */ --- 126,134 ---- * Deregister a currently exported server object from the ORB runtimes. The * object to becomes available for garbage collection. This is usually * impemented via {@link Util#unexportObject} ! * * @param obj the object to unexport. ! * * @throws NoSuchObjectException if the passed object is not currently * exported. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/Stub.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/Stub.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/Stub.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/Stub.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA_2_3.portable.Object *** 60,69 **** * "javax.rmi.CORBA.StubClass" to the name of the alternative class that must * implement {@link StubDelegate}. Hence Stub contains two delegates, one for * Stub-related operations and another inherited from the ObjectImpl. ! * * @specnote GNU Classpath uses separate delegate per each Stub. The delegate * holds information about the ORB and other data, specific for the each Stub. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public abstract class Stub --- 60,69 ---- * "javax.rmi.CORBA.StubClass" to the name of the alternative class that must * implement {@link StubDelegate}. Hence Stub contains two delegates, one for * Stub-related operations and another inherited from the ObjectImpl. ! * * @specnote GNU Classpath uses separate delegate per each Stub. The delegate * holds information about the ORB and other data, specific for the each Stub. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public abstract class Stub *************** public abstract class Stub *** 118,124 **** /** * Get the string representation of this Stub. ! * * @return the CORBA IOR reference. */ public String toString() --- 118,124 ---- /** * Get the string representation of this Stub. ! * * @return the CORBA IOR reference. */ public String toString() *************** public abstract class Stub *** 149,161 **** * It is frequently easier to call {@link PortableRemoteObject#connect} rather * than this method. *

                                        ! * * @param orb the ORB where the Stub must be connected. ! * * @throws RemoteException if the stub is already connected to some other ORB. * If the stub is already connected to the ORB that was passed as parameter, * the method returns without action. ! * * @throws BAD_PARAM if the name of this stub does not match the stub name * pattern, "_*_Stub" or if the Tie class, "_*Impl_Tie", does not exists or an * instance of this class cannot be instantiated. --- 149,161 ---- * It is frequently easier to call {@link PortableRemoteObject#connect} rather * than this method. *

                                        ! * * @param orb the ORB where the Stub must be connected. ! * * @throws RemoteException if the stub is already connected to some other ORB. * If the stub is already connected to the ORB that was passed as parameter, * the method returns without action. ! * * @throws BAD_PARAM if the name of this stub does not match the stub name * pattern, "_*_Stub" or if the Tie class, "_*Impl_Tie", does not exists or an * instance of this class cannot be instantiated. *************** public abstract class Stub *** 200,203 **** delegate.writeObject(this, output); } ! } \ No newline at end of file --- 200,203 ---- delegate.writeObject(this, output); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/StubDelegate.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/StubDelegate.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/StubDelegate.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/StubDelegate.java Tue Jan 11 19:46:05 2011 *************** import java.rmi.RemoteException; *** 51,57 **** * The default delegate can be altered by setting the system property * "javax.rmi.CORBA.StubClass" to the name of the alternative class that must * implement StubDelegate. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface StubDelegate --- 51,57 ---- * The default delegate can be altered by setting the system property * "javax.rmi.CORBA.StubClass" to the name of the alternative class that must * implement StubDelegate. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface StubDelegate *************** public interface StubDelegate *** 64,72 **** * It is frequently easier to call {@link PortableRemoteObject#connect} rather * than this method. *

                                        ! * * @param orb the ORB where the Stub must be connected. ! * * @throws RemoteException if the stub is already connected to some other ORB. * If the stub is already connected to the ORB that was passed as parameter, * the method returns without action. --- 64,72 ---- * It is frequently easier to call {@link PortableRemoteObject#connect} rather * than this method. *

                                        ! * * @param orb the ORB where the Stub must be connected. ! * * @throws RemoteException if the stub is already connected to some other ORB. * If the stub is already connected to the ORB that was passed as parameter, * the method returns without action. *************** public interface StubDelegate *** 100,103 **** * Get the string representation of this stub. */ String toString(Stub self); ! } \ No newline at end of file --- 100,103 ---- * Get the string representation of this stub. */ String toString(Stub self); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/Tie.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/Tie.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/Tie.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/Tie.java Tue Jan 11 19:46:05 2011 *************** import org.omg.CORBA.portable.InvokeHand *** 61,67 **** * rmic compiler using -poa key. Ties can be also * derived from {@link org.omg.CORBA_2_3.portable.ObjectImpl}. *

                                        ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface Tie --- 61,67 ---- * rmic compiler using -poa key. Ties can be also * derived from {@link org.omg.CORBA_2_3.portable.ObjectImpl}. *

                                        ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface Tie *************** public interface Tie *** 69,75 **** { /** * Get the invocation target, where all method calls should be delegated. ! * * @return the object, implementing methods, defined in the interface being * served by this Tie. */ --- 69,75 ---- { /** * Get the invocation target, where all method calls should be delegated. ! * * @return the object, implementing methods, defined in the interface being * served by this Tie. */ *************** public interface Tie *** 77,88 **** /** * Set the invocation target, where all method calls should be delegated. ! * * @param target the object, implementing methods, defined in the interface * being served by this Tie. The code, produced by a typical rmic compiler * usually requires the target to be an instance of the implementation from * that the Tie was generated. ! * * @throws ClassCastException if the passed parameter is not an instance of * the implementation from that the Tie was generated. */ --- 77,88 ---- /** * Set the invocation target, where all method calls should be delegated. ! * * @param target the object, implementing methods, defined in the interface * being served by this Tie. The code, produced by a typical rmic compiler * usually requires the target to be an instance of the implementation from * that the Tie was generated. ! * * @throws ClassCastException if the passed parameter is not an instance of * the implementation from that the Tie was generated. */ *************** public interface Tie *** 90,96 **** /** * Get the ORB to that this Tie is connected. ! * * @see org.omg.PortableServer.Servant#_orb */ ORB orb(); --- 90,96 ---- /** * Get the ORB to that this Tie is connected. ! * * @see org.omg.PortableServer.Servant#_orb */ ORB orb(); *************** public interface Tie *** 102,108 **** /** * Get the object that delegates calls to this tie. ! * * @see org.omg.PortableServer.Servant#_this_object() */ org.omg.CORBA.Object thisObject(); --- 102,108 ---- /** * Get the object that delegates calls to this tie. ! * * @see org.omg.PortableServer.Servant#_this_object() */ org.omg.CORBA.Object thisObject(); *************** public interface Tie *** 113,125 **** * again. The ties that are not derived from * {@link org.omg.PortableServer.Servant} deactivate themselves by * {@link ORB#disconnect}. ! * * @throws NoSuchObjectException if there are no objects served by this Tie, * or if the these objects are already deactivated. ! * * @see org.omg.PortableServer.POAOperations#deactivate_object */ void deactivate() throws NoSuchObjectException; ! } \ No newline at end of file --- 113,125 ---- * again. The ties that are not derived from * {@link org.omg.PortableServer.Servant} deactivate themselves by * {@link ORB#disconnect}. ! * * @throws NoSuchObjectException if there are no objects served by this Tie, * or if the these objects are already deactivated. ! * * @see org.omg.PortableServer.POAOperations#deactivate_object */ void deactivate() throws NoSuchObjectException; ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/Util.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/Util.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/Util.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/Util.java Tue Jan 11 19:46:05 2011 *************** import javax.transaction.TransactionRoll *** 77,83 **** * The functionality is forwarded to the enclosed UtilDelegate. This delegate * can be altered by setting the system property "javax.rmi.CORBA.UtilClass" to * the name of the alternative class that must implement {@link UtilDelegate}. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class Util --- 77,83 ---- * The functionality is forwarded to the enclosed UtilDelegate. This delegate * can be altered by setting the system property "javax.rmi.CORBA.UtilClass" to * the name of the alternative class that must implement {@link UtilDelegate}. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class Util *************** public class Util *** 119,125 **** /** * Get the value handler that Serializes Java objects to and from CDR (GIOP) * streams. ! * * When using the default Util implementation, the class of the returned * handler can be altered by setting by setting the system property * "javax.rmi.CORBA.ValueHandlerClass" to the name of the alternative class --- 119,125 ---- /** * Get the value handler that Serializes Java objects to and from CDR (GIOP) * streams. ! * * When using the default Util implementation, the class of the returned * handler can be altered by setting by setting the system property * "javax.rmi.CORBA.ValueHandlerClass" to the name of the alternative class *************** public class Util *** 143,149 **** * pair has not been previously registered using {@link #registerTarget}, * this method tries to locate a tie class by the name pattern. If this * succeeds, the tie-target pair is also registered. ! * * @return the Tie. */ public static Tie getTie(Remote target) --- 143,149 ---- * pair has not been previously registered using {@link #registerTarget}, * this method tries to locate a tie class by the name pattern. If this * succeeds, the tie-target pair is also registered. ! * * @return the Tie. */ public static Tie getTie(Remote target) *************** public class Util *** 154,163 **** /** * Checks if the given stub is local. The implementation it delegates call to * {@link ObjectImpl#_is_local(). ! * * @param stub a stub to check. * @return true if the stub is local, false otherwise. ! * * @throws RemoteException if the {@link ObjectImpl#_is_local()} throws a * {@link org.omg.CORBA.SystemException}. */ --- 154,163 ---- /** * Checks if the given stub is local. The implementation it delegates call to * {@link ObjectImpl#_is_local(). ! * * @param stub a stub to check. * @return true if the stub is local, false otherwise. ! * * @throws RemoteException if the {@link ObjectImpl#_is_local()} throws a * {@link org.omg.CORBA.SystemException}. */ *************** public class Util *** 171,177 **** * Load the class. The method uses class loaders from the call stact first. If * this fails, the further behaviour depends on the System Property * "java.rmi.server.useCodebaseOnly" with default value "false". ! * *
                                          *
                                        • If remoteCodebase is non-null and useCodebaseOnly is "false" then call * java.rmi.server.RMIClassLoader.loadClass (remoteCodebase, className)
                                        • --- 171,177 ---- * Load the class. The method uses class loaders from the call stact first. If * this fails, the further behaviour depends on the System Property * "java.rmi.server.useCodebaseOnly" with default value "false". ! * *
                                            *
                                          • If remoteCodebase is non-null and useCodebaseOnly is "false" then call * java.rmi.server.RMIClassLoader.loadClass (remoteCodebase, className)
                                          • *************** public class Util *** 180,191 **** *
                                          • If a class is still not successfully loaded and the loader != null * then try Class.forName(className, false, loader).
                                          • *
                                          ! * * @param className the name of the class. * @param remoteCodebase the codebase. * @param loader the class loader. * @return the loaded class. ! * * @throws ClassNotFoundException of the class cannot be loaded. */ public static Class loadClass(String className, String remoteCodebase, --- 180,191 ---- *
                                        • If a class is still not successfully loaded and the loader != null * then try Class.forName(className, false, loader).
                                        • *
                                        ! * * @param className the name of the class. * @param remoteCodebase the codebase. * @param loader the class loader. * @return the loaded class. ! * * @throws ClassNotFoundException of the class cannot be loaded. */ public static Class loadClass(String className, String remoteCodebase, *************** public class Util *** 331,344 **** * {@link UnexpectedException} * * ! * * @param exception an exception that was thrown on a server side implementation. ! * * @return the corresponding RemoteException unless it is a RuntimeException. ! * * @throws RuntimeException the passed exception if it is an instance of * RuntimeException. ! * * @specnote It is the same behavior, as in Suns implementations 1.4.0-1.5.0. */ public static RemoteException wrapException(Throwable exception) --- 331,344 ---- * {@link UnexpectedException} * * ! * * @param exception an exception that was thrown on a server side implementation. ! * * @return the corresponding RemoteException unless it is a RuntimeException. ! * * @throws RuntimeException the passed exception if it is an instance of * RuntimeException. ! * * @specnote It is the same behavior, as in Suns implementations 1.4.0-1.5.0. */ public static RemoteException wrapException(Throwable exception) *************** public class Util *** 354,363 **** * {@link #writeRemoteObject}. The written data contains discriminator, * defining, that was written. Another method that writes the same content is * {@link org.omg.CORBA_2_3.portable.OutputStream#write_abstract_interface(java.lang.Object)}. ! * * @param output a stream to write to, must be * {@link org.omg.CORBA_2_3.portable.OutputStream}. ! * * @param object an object to write, must be CORBA object, Remote */ public static void writeAbstractObject(OutputStream output, --- 354,363 ---- * {@link #writeRemoteObject}. The written data contains discriminator, * defining, that was written. Another method that writes the same content is * {@link org.omg.CORBA_2_3.portable.OutputStream#write_abstract_interface(java.lang.Object)}. ! * * @param output a stream to write to, must be * {@link org.omg.CORBA_2_3.portable.OutputStream}. ! * * @param object an object to write, must be CORBA object, Remote */ public static void writeAbstractObject(OutputStream output, *************** public class Util *** 375,381 **** * method writes CORBA object, value type or value box. For value types Null * is written with the abstract interface, its typecode having repository id * "IDL:omg.org/CORBA/AbstractBase:1.0" and the empty string name. ! * * @param output the object to write. * @param object the java object that must be written in the form of the CORBA * {@link Any}. --- 375,381 ---- * method writes CORBA object, value type or value box. For value types Null * is written with the abstract interface, its typecode having repository id * "IDL:omg.org/CORBA/AbstractBase:1.0" and the empty string name. ! * * @param output the object to write. * @param object the java object that must be written in the form of the CORBA * {@link Any}. *************** public class Util *** 384,392 **** { delegate.writeAny(output, object); } ! /** ! * Read Any from the input stream. */ public static java.lang.Object readAny(InputStream input) { --- 384,392 ---- { delegate.writeAny(output, object); } ! /** ! * Read Any from the input stream. */ public static java.lang.Object readAny(InputStream input) { *************** public class Util *** 403,409 **** * used in write_value(..) method group in * {@link org.omg.CORBA_2_3.portable.OutputStream} and also may be called * directly from generated Stubs and Ties. ! * * @param output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param object an object to write. --- 403,409 ---- * used in write_value(..) method group in * {@link org.omg.CORBA_2_3.portable.OutputStream} and also may be called * directly from generated Stubs and Ties. ! * * @param output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param object an object to write. *************** public class Util *** 413,416 **** { delegate.writeRemoteObject(output, object); } ! } \ No newline at end of file --- 413,416 ---- { delegate.writeRemoteObject(output, object); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/UtilDelegate.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/UtilDelegate.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/UtilDelegate.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/UtilDelegate.java Tue Jan 11 19:46:05 2011 *************** import javax.transaction.TransactionRoll *** 71,81 **** /** * A delegate, implementing the functionality, provided by the {@link Util}. ! * * The default delegate can be altered by setting the system property * "javax.rmi.CORBA.UtilClass" to the name of the alternative class that must * implement this interface. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface UtilDelegate --- 71,81 ---- /** * A delegate, implementing the functionality, provided by the {@link Util}. ! * * The default delegate can be altered by setting the system property * "javax.rmi.CORBA.UtilClass" to the name of the alternative class that must * implement this interface. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface UtilDelegate *************** public interface UtilDelegate *** 195,201 **** /** * Get the Tie that handles invocations on the given target. The target/Tie * pair must be previously registered using {@link #registerTarget}. ! * * @return the Tie, or null if no such is known. */ Tie getTie(Remote target); --- 195,201 ---- /** * Get the Tie that handles invocations on the given target. The target/Tie * pair must be previously registered using {@link #registerTarget}. ! * * @return the Tie, or null if no such is known. */ Tie getTie(Remote target); *************** public interface UtilDelegate *** 242,255 **** * {@link UnexpectedException} * * ! * * @param e an exception that was thrown on a server side implementation. ! * * @return the corresponding RemoteException unless it is a RuntimeException. ! * * @throws RuntimeException the passed exception if it is an instance of * RuntimeException. ! * * @specnote It is the same behavior, as in Suns implementations 1.4.0-1.5.0. */ RemoteException wrapException(Throwable orig); --- 242,255 ---- * {@link UnexpectedException} * * ! * * @param e an exception that was thrown on a server side implementation. ! * * @return the corresponding RemoteException unless it is a RuntimeException. ! * * @throws RuntimeException the passed exception if it is an instance of * RuntimeException. ! * * @specnote It is the same behavior, as in Suns implementations 1.4.0-1.5.0. */ RemoteException wrapException(Throwable orig); *************** public interface UtilDelegate *** 263,269 **** * possible. This method is used in write_value(..) method group in * {@link org.omg.CORBA_2_3.portable.OutputStream} and also may be called * directly from generated Stubs and Ties. ! * * @param output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param obj an object to write. --- 263,269 ---- * possible. This method is used in write_value(..) method group in * {@link org.omg.CORBA_2_3.portable.OutputStream} and also may be called * directly from generated Stubs and Ties. ! * * @param output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream * @param obj an object to write. *************** public interface UtilDelegate *** 278,287 **** * {@link #writeRemoteObject}. The written data contains discriminator, * defining, that was written. Another method that writes the same content is * {@link org.omg.CORBA_2_3.portable.OutputStream#write_abstract_interface(java.lang.Object)}. ! * * @param output a stream to write to, must be * {@link org.omg.CORBA_2_3.portable.OutputStream}. ! * * @param object an object to write, must be CORBA object, Remote */ void writeAbstractObject(OutputStream output, Object object); --- 278,287 ---- * {@link #writeRemoteObject}. The written data contains discriminator, * defining, that was written. Another method that writes the same content is * {@link org.omg.CORBA_2_3.portable.OutputStream#write_abstract_interface(java.lang.Object)}. ! * * @param output a stream to write to, must be * {@link org.omg.CORBA_2_3.portable.OutputStream}. ! * * @param object an object to write, must be CORBA object, Remote */ void writeAbstractObject(OutputStream output, Object object); *************** public interface UtilDelegate *** 295,301 **** * method writes CORBA object, value type or value box. For value types Null * is written with the abstract interface, its typecode having repository id * "IDL:omg.org/CORBA/AbstractBase:1.0" and the empty string name. ! * * @param output the object to write. * @param object the java object that must be written in the form of the CORBA * {@link Any}. --- 295,301 ---- * method writes CORBA object, value type or value box. For value types Null * is written with the abstract interface, its typecode having repository id * "IDL:omg.org/CORBA/AbstractBase:1.0" and the empty string name. ! * * @param output the object to write. * @param object the java object that must be written in the form of the CORBA * {@link Any}. *************** public interface UtilDelegate *** 303,310 **** void writeAny(OutputStream output, Object object); /** ! * Read Any from the input stream. */ Object readAny(InputStream input); ! } \ No newline at end of file --- 303,310 ---- void writeAny(OutputStream output, Object object); /** ! * Read Any from the input stream. */ Object readAny(InputStream input); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/ValueHandler.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/ValueHandler.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/ValueHandler.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/ValueHandler.java Tue Jan 11 19:46:05 2011 *************** import org.omg.SendingContext.RunTime; *** 51,82 **** * of the value handler is returned by {@link Util#createValueHandler} and can * be altered by setting the system property "javax.rmi.CORBA.ValueHandlerClass" * to the name of the alternative class that must implement ValueHandler. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface ValueHandler { /** * Get CORBA repository Id for the given java class. ! * * The syntax of the repository ID is the initial ?RMI:?, followed by the Java * class name, followed by name, followed by a hash code string, followed * optionally by a serialization version UID string. ! * * For Java identifiers that contain illegal OMG IDL identifier characters * such as ?$?, any such illegal characters are replaced by ?\U? followed by * the 4 hexadecimal characters (in upper case) representing the Unicode * value. ! * * @param clz a class for that the repository Id is required. ! * * @return the class repository id. */ String getRMIRepositoryID(Class clz); /** * Returns the CodeBase for this ValueHandler. ! * * @return the codebase. */ RunTime getRunTimeCodeBase(); --- 51,82 ---- * of the value handler is returned by {@link Util#createValueHandler} and can * be altered by setting the system property "javax.rmi.CORBA.ValueHandlerClass" * to the name of the alternative class that must implement ValueHandler. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public interface ValueHandler { /** * Get CORBA repository Id for the given java class. ! * * The syntax of the repository ID is the initial ?RMI:?, followed by the Java * class name, followed by name, followed by a hash code string, followed * optionally by a serialization version UID string. ! * * For Java identifiers that contain illegal OMG IDL identifier characters * such as ?$?, any such illegal characters are replaced by ?\U? followed by * the 4 hexadecimal characters (in upper case) representing the Unicode * value. ! * * @param clz a class for that the repository Id is required. ! * * @return the class repository id. */ String getRMIRepositoryID(Class clz); /** * Returns the CodeBase for this ValueHandler. ! * * @return the codebase. */ RunTime getRunTimeCodeBase(); *************** public interface ValueHandler *** 86,92 **** * content to the stream. Such classes implement either {@link Streamable} * (default marshalling, generated by IDL-to-java compiler) or * {@link CustomMarshal} (the user-programmed marshalling). ! * * @param clz the class being checked. * @return true if the class supports custom or default marshalling, false * otherwise. --- 86,92 ---- * content to the stream. Such classes implement either {@link Streamable} * (default marshalling, generated by IDL-to-java compiler) or * {@link CustomMarshal} (the user-programmed marshalling). ! * * @param clz the class being checked. * @return true if the class supports custom or default marshalling, false * otherwise. *************** public interface ValueHandler *** 97,110 **** * Read value from the CORBA input stream in the case when the value is not * Streamable or CustomMarshall'ed. The fields of the class being written will * be accessed using reflection. ! * * @param in a CORBA stream to read. * @param offset the current position in the input stream. * @param clz the type of value being read. * @param repositoryID the repository Id of the value being read. * @param sender the sending context that should provide data about the * message originator. ! * * @return the object, extracted from the stream. */ Serializable readValue(InputStream in, int offset, Class clz, --- 97,110 ---- * Read value from the CORBA input stream in the case when the value is not * Streamable or CustomMarshall'ed. The fields of the class being written will * be accessed using reflection. ! * * @param in a CORBA stream to read. * @param offset the current position in the input stream. * @param clz the type of value being read. * @param repositoryID the repository Id of the value being read. * @param sender the sending context that should provide data about the * message originator. ! * * @return the object, extracted from the stream. */ Serializable readValue(InputStream in, int offset, Class clz, *************** public interface ValueHandler *** 113,130 **** /** * When the value provides the writeReplace method, the result of this method * is written. Otherwise, the value itself is written. ! * * @param value the value that should be written to the stream. ! * * @return the value that will be actually written to the stream. */ Serializable writeReplace(Serializable value); /** * Write value to CORBA output stream using java senmatics. ! * * @param out a stream to write into. * @param value a java object to write. */ void writeValue(OutputStream out, Serializable value); ! } \ No newline at end of file --- 113,130 ---- /** * When the value provides the writeReplace method, the result of this method * is written. Otherwise, the value itself is written. ! * * @param value the value that should be written to the stream. ! * * @return the value that will be actually written to the stream. */ Serializable writeReplace(Serializable value); /** * Write value to CORBA output stream using java senmatics. ! * * @param out a stream to write into. * @param value a java object to write. */ void writeValue(OutputStream out, Serializable value); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/ValueHandlerMultiFormat.java gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/ValueHandlerMultiFormat.java *** gcc-4.5.2/libjava/classpath/javax/rmi/CORBA/ValueHandlerMultiFormat.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/rmi/CORBA/ValueHandlerMultiFormat.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 46,54 **** * This interface extends the previous ValueHandler, supporting various stream * format versions. The {@link ValueHandler} can be casted into this interface * to access additional features. ! * * @since 1.5 ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public interface ValueHandlerMultiFormat --- 46,54 ---- * This interface extends the previous ValueHandler, supporting various stream * format versions. The {@link ValueHandler} can be casted into this interface * to access additional features. ! * * @since 1.5 ! * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public interface ValueHandlerMultiFormat *************** public interface ValueHandlerMultiFormat *** 58,64 **** * Get the maximal supported version for the value types, supported by * this value handler. The versions are integer numbers, the currently valid * values being 1 and 2. ! * * These two versions differ in how the additional data, stored by the * writeObject method, are encoded. *
                                          --- 58,64 ---- * Get the maximal supported version for the value types, supported by * this value handler. The versions are integer numbers, the currently valid * values being 1 and 2. ! * * These two versions differ in how the additional data, stored by the * writeObject method, are encoded. *
                                            *************** public interface ValueHandlerMultiFormat *** 72,78 **** *
                                          * As the version number is part of the value type record, there is no need * to the format control during the reading. ! * * @return the maximal supported version. */ byte getMaximumStreamFormatVersion(); --- 72,78 ---- *
                                        * As the version number is part of the value type record, there is no need * to the format control during the reading. ! * * @return the maximal supported version. */ byte getMaximumStreamFormatVersion(); *************** public interface ValueHandlerMultiFormat *** 80,92 **** /** * Write the value type to the output stream using the given format version. * The older method {@link ValueHandler#writeValue} always uses the version 1. ! * * @param output the stream, where the value should be written, must implement * {@link ValueOutputStream}. * @param value the value that should be written. * @param version the version of the format that must be used to write the * value. ! * * @throws BAD_PARAM if the version number is less than 1 or greater than the * maximal supported version. */ --- 80,92 ---- /** * Write the value type to the output stream using the given format version. * The older method {@link ValueHandler#writeValue} always uses the version 1. ! * * @param output the stream, where the value should be written, must implement * {@link ValueOutputStream}. * @param value the value that should be written. * @param version the version of the format that must be used to write the * value. ! * * @throws BAD_PARAM if the version number is less than 1 or greater than the * maximal supported version. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/PortableRemoteObject.java gcc-4.6.0/libjava/classpath/javax/rmi/PortableRemoteObject.java *** gcc-4.5.2/libjava/classpath/javax/rmi/PortableRemoteObject.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/rmi/PortableRemoteObject.java Tue Jan 11 19:46:05 2011 *************** import javax.rmi.CORBA.Util; *** 69,75 **** * the alternative class that must implement * {@link PortableRemoteObjectDelegate}. *

                                        ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class PortableRemoteObject --- 69,75 ---- * the alternative class that must implement * {@link PortableRemoteObjectDelegate}. *

                                        ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ public class PortableRemoteObject *************** public class PortableRemoteObject *** 81,87 **** /** * The protected constructor calls {@link exportObject} (this). ! * * @throws RemoteException if the exportObject(this) throws one. */ protected PortableRemoteObject() --- 81,87 ---- /** * The protected constructor calls {@link exportObject} (this). ! * * @throws RemoteException if the exportObject(this) throws one. */ protected PortableRemoteObject() *************** public class PortableRemoteObject *** 96,109 **** * communication using the same communications runtime as for the passed * a_source parameter. The a_target is connected to the same * ORB (and, if applicable, to the same {@link POA}) as the a_source. ! * * @param target the target to connect to ORB, must be an instance of either * {@link ObjectImpl} (Stubs and old-style ties) or {@link Tie}. ! * * @param source the object, providing the connection information, must be * an instance of either {@link ObjectImpl} (Stubs and old-style ties) or * {@link Servant} (the next-generation Ties supporting {@link POA}). ! * * @throws RemoteException if the target is already connected to another ORB. */ public static void connect(Remote target, Remote source) --- 96,109 ---- * communication using the same communications runtime as for the passed * a_source parameter. The a_target is connected to the same * ORB (and, if applicable, to the same {@link POA}) as the a_source. ! * * @param target the target to connect to ORB, must be an instance of either * {@link ObjectImpl} (Stubs and old-style ties) or {@link Tie}. ! * * @param source the object, providing the connection information, must be * an instance of either {@link ObjectImpl} (Stubs and old-style ties) or * {@link Servant} (the next-generation Ties supporting {@link POA}). ! * * @throws RemoteException if the target is already connected to another ORB. */ public static void connect(Remote target, Remote source) *************** public class PortableRemoteObject *** 122,130 **** * This method only creates a tie object and caches it for future usage. The * created tie does not have a delegate or an ORB associated. *

                                        ! * * @param object the object to export. ! * * @throws RemoteException if export fails due any reason. */ public static void exportObject(Remote object) --- 122,130 ---- * This method only creates a tie object and caches it for future usage. The * created tie does not have a delegate or an ORB associated. *

                                        ! * * @param object the object to export. ! * * @throws RemoteException if export fails due any reason. */ public static void exportObject(Remote object) *************** public class PortableRemoteObject *** 160,175 **** *
                                      • A {@link Tie} can be narrowed into Remote, representing the * implementation for this Tie (if one is set).
                                      • *
                                      ! * * @param object the object like CORBA Object, Stub or Remote that must be * narrowed to the given interface. ! * * @param narrowToInstaceOf the class of the interface to that the object must * be narrowed. ! * * @return On success, an object of type narrowTo or null, if narrowFrom = * null. ! * * @throws ClassCastException if no narrowing is possible. */ public static Object narrow(Object object, Class narrowToInstaceOf) --- 160,175 ---- *
                                    • A {@link Tie} can be narrowed into Remote, representing the * implementation for this Tie (if one is set).
                                    • *
                                    ! * * @param object the object like CORBA Object, Stub or Remote that must be * narrowed to the given interface. ! * * @param narrowToInstaceOf the class of the interface to that the object must * be narrowed. ! * * @return On success, an object of type narrowTo or null, if narrowFrom = * null. ! * * @throws ClassCastException if no narrowing is possible. */ public static Object narrow(Object object, Class narrowToInstaceOf) *************** public class PortableRemoteObject *** 183,189 **** * Takes a server implementation object (name pattern *imp) and returns a stub * object that can be used to access that server object (target), name * (pattern _*_Stub). ! * * The returned stub is not connected to any ORB and must be explicitly * connected using {@link #connect}. *

                                    --- 183,189 ---- * Takes a server implementation object (name pattern *imp) and returns a stub * object that can be used to access that server object (target), name * (pattern _*_Stub). ! * * The returned stub is not connected to any ORB and must be explicitly * connected using {@link #connect}. *

                                    *************** public class PortableRemoteObject *** 191,206 **** * The method signature prevents it from returning stubs that does not * implement Remote (ClassCastException will be thrown). *

                                    ! * * @param target a server side object implementation. * @return a stub object that can be used to access that server object. ! * * @throws NoSuchObjectException if a stub class cannot be located by supposed * name pattern, or an instance of stub fails to be instantiated. ! * * @throws ClassCastException if the stub class can be located, but it does * not inherit from Remote. ! * * @throws BAD_PARAM if the name of the passed class does not match the * implementation name pattern (does not end by 'Impl'). */ --- 191,206 ---- * The method signature prevents it from returning stubs that does not * implement Remote (ClassCastException will be thrown). *

                                    ! * * @param target a server side object implementation. * @return a stub object that can be used to access that server object. ! * * @throws NoSuchObjectException if a stub class cannot be located by supposed * name pattern, or an instance of stub fails to be instantiated. ! * * @throws ClassCastException if the stub class can be located, but it does * not inherit from Remote. ! * * @throws BAD_PARAM if the name of the passed class does not match the * implementation name pattern (does not end by 'Impl'). */ *************** public class PortableRemoteObject *** 214,222 **** * Deregister a currently exported server object from the ORB runtimes. The * object to becomes available for garbage collection. This is usually * impemented via {@link Util#unexportObject} ! * * @param object the object to unexport. ! * * @throws NoSuchObjectException if the passed object is not currently * exported. */ --- 214,222 ---- * Deregister a currently exported server object from the ORB runtimes. The * object to becomes available for garbage collection. This is usually * impemented via {@link Util#unexportObject} ! * * @param object the object to unexport. ! * * @throws NoSuchObjectException if the passed object is not currently * exported. */ *************** public class PortableRemoteObject *** 225,228 **** { delegate.unexportObject(object); } ! } \ No newline at end of file --- 225,228 ---- { delegate.unexportObject(object); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java gcc-4.6.0/libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java *** gcc-4.5.2/libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SslRMIClientSocketFactory.java -- Copyright (C) 2006 Free Software Foundation This file is part of GNU Classpath. --- 1,4 ---- ! /* SslRMIClientSocketFactory.java -- Copyright (C) 2006 Free Software Foundation This file is part of GNU Classpath. *************** import java.rmi.server.RMIClientSocketFa *** 52,70 **** * This class implements an RMIClientSocketFactory for SSL sockets. * it uses the default SSLClientSocketFactory. * ! * This class can optionally use the following system properties, if set: * javax.rmi.ssl.client.enabledCipherSuites * javax.rmi.ssl.client.enabledProtocols * * These properties will specify a list of SSL/TLS cipher suites and protocols, ! * respectively, to enable on the created sockets. * * Both properties should consist of a comma-separated list. * * @author Sven de Marothy * @since 1.5 */ ! public class SslRMIClientSocketFactory implements RMIClientSocketFactory, Serializable { --- 52,70 ---- * This class implements an RMIClientSocketFactory for SSL sockets. * it uses the default SSLClientSocketFactory. * ! * This class can optionally use the following system properties, if set: * javax.rmi.ssl.client.enabledCipherSuites * javax.rmi.ssl.client.enabledProtocols * * These properties will specify a list of SSL/TLS cipher suites and protocols, ! * respectively, to enable on the created sockets. * * Both properties should consist of a comma-separated list. * * @author Sven de Marothy * @since 1.5 */ ! public class SslRMIClientSocketFactory implements RMIClientSocketFactory, Serializable { *************** public class SslRMIClientSocketFactory *** 78,88 **** /** * The SSL Socket factory. */ ! private static SSLSocketFactory socketFactory = (SSLSocketFactory)SSLSocketFactory.getDefault(); /** ! * Creates a new SslRMIClientSocketFactory */ public SslRMIClientSocketFactory() { --- 78,88 ---- /** * The SSL Socket factory. */ ! private static SSLSocketFactory socketFactory = (SSLSocketFactory)SSLSocketFactory.getDefault(); /** ! * Creates a new SslRMIClientSocketFactory */ public SslRMIClientSocketFactory() { *************** public class SslRMIClientSocketFactory *** 95,105 **** String o; try { ! o = System.getProperty(p); } catch(SecurityException se) { ! return null; } if (o == null) --- 95,105 ---- String o; try { ! o = System.getProperty(p); } catch(SecurityException se) { ! return null; } if (o == null) *************** public class SslRMIClientSocketFactory *** 116,122 **** } /** ! * Creates an SSLSocket on a given port * * @throws IOException if an error occurs on socket creation. */ --- 116,122 ---- } /** ! * Creates an SSLSocket on a given port * * @throws IOException if an error occurs on socket creation. */ *************** public class SslRMIClientSocketFactory *** 133,145 **** /** * Compare two SslRMIServerSocketFactor instances ! */ public boolean equals(Object obj) { if( !(obj instanceof SslRMIClientSocketFactory) ) return false; SslRMIClientSocketFactory s = (SslRMIClientSocketFactory)obj; ! if(!SslRMIServerSocketFactory. cmpStrArray(enabledCipherSuites, s.enabledCipherSuites)) return false; --- 133,145 ---- /** * Compare two SslRMIServerSocketFactor instances ! */ public boolean equals(Object obj) { if( !(obj instanceof SslRMIClientSocketFactory) ) return false; SslRMIClientSocketFactory s = (SslRMIClientSocketFactory)obj; ! if(!SslRMIServerSocketFactory. cmpStrArray(enabledCipherSuites, s.enabledCipherSuites)) return false; *************** public class SslRMIClientSocketFactory *** 159,168 **** int hash = 0; if( enabledCipherSuites != null ) for(int i = 0; i < enabledCipherSuites.length; i++ ) ! hash = hash ^ enabledCipherSuites[i].hashCode(); if( enabledProtocols != null ) for(int i = 0; i < enabledProtocols.length; i++ ) ! hash = hash ^ enabledProtocols[i].hashCode(); return hash; } } --- 159,168 ---- int hash = 0; if( enabledCipherSuites != null ) for(int i = 0; i < enabledCipherSuites.length; i++ ) ! hash = hash ^ enabledCipherSuites[i].hashCode(); if( enabledProtocols != null ) for(int i = 0; i < enabledProtocols.length; i++ ) ! hash = hash ^ enabledProtocols[i].hashCode(); return hash; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/rmi/ssl/SslRMIServerSocketFactory.java gcc-4.6.0/libjava/classpath/javax/rmi/ssl/SslRMIServerSocketFactory.java *** gcc-4.5.2/libjava/classpath/javax/rmi/ssl/SslRMIServerSocketFactory.java Wed Jul 19 17:10:12 2006 --- gcc-4.6.0/libjava/classpath/javax/rmi/ssl/SslRMIServerSocketFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SslRMIServerSocketFactory.java -- Copyright (C) 2006 Free Software Foundation This file is part of GNU Classpath. --- 1,4 ---- ! /* SslRMIServerSocketFactory.java -- Copyright (C) 2006 Free Software Foundation This file is part of GNU Classpath. *************** public class SslRMIServerSocketFactory i *** 60,66 **** /** * The SSL ServerSocket factory. */ ! private static SSLServerSocketFactory socketFactory = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault(); /** --- 60,66 ---- /** * The SSL ServerSocket factory. */ ! private static SSLServerSocketFactory socketFactory = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault(); /** *************** public class SslRMIServerSocketFactory i *** 80,112 **** * * @param enabledCipherSuites - the cypher suites to enable * or null for the defauls. ! * @param enabledCipherSuites - the protocols to enable, * or null for the defauls. * @param needClientAuth - specify client authorization requirement. * @throws IllegalArgumentException if any of the ciphers or protocols * specified are not available. */ ! public SslRMIServerSocketFactory(String[] enabledCipherSuites, ! String[] enabledProtocols, ! boolean needClientAuth) { this.enabledCipherSuites = enabledCipherSuites; ! this.enabledProtocols = enabledProtocols; this.needClientAuth = needClientAuth; ! try { ! if( enabledProtocols != null || enabledCipherSuites != null ) ! createServerSocket( 0 ); // stupid way to test the parameters } catch(IOException e) { ! // Can this happen? FIXME. ! throw new IllegalArgumentException(); } } /** ! * Creates an SSLServerSocket on a given port * * @throws IOException if an error occurs on socket creation. */ --- 80,112 ---- * * @param enabledCipherSuites - the cypher suites to enable * or null for the defauls. ! * @param enabledCipherSuites - the protocols to enable, * or null for the defauls. * @param needClientAuth - specify client authorization requirement. * @throws IllegalArgumentException if any of the ciphers or protocols * specified are not available. */ ! public SslRMIServerSocketFactory(String[] enabledCipherSuites, ! String[] enabledProtocols, ! boolean needClientAuth) { this.enabledCipherSuites = enabledCipherSuites; ! this.enabledProtocols = enabledProtocols; this.needClientAuth = needClientAuth; ! try { ! if( enabledProtocols != null || enabledCipherSuites != null ) ! createServerSocket( 0 ); // stupid way to test the parameters } catch(IOException e) { ! // Can this happen? FIXME. ! throw new IllegalArgumentException(); } } /** ! * Creates an SSLServerSocket on a given port * * @throws IOException if an error occurs on socket creation. */ *************** public class SslRMIServerSocketFactory i *** 124,130 **** /** * Compare two SslRMIServerSocketFactor instances ! */ public boolean equals(Object obj) { if( !(obj instanceof SslRMIServerSocketFactory) ) --- 124,130 ---- /** * Compare two SslRMIServerSocketFactor instances ! */ public boolean equals(Object obj) { if( !(obj instanceof SslRMIServerSocketFactory) ) *************** public class SslRMIServerSocketFactory i *** 132,138 **** SslRMIServerSocketFactory s = (SslRMIServerSocketFactory)obj; if( needClientAuth != s.needClientAuth ) return false; ! if(!cmpStrArray(enabledCipherSuites, s.enabledCipherSuites)) return false; --- 132,138 ---- SslRMIServerSocketFactory s = (SslRMIServerSocketFactory)obj; if( needClientAuth != s.needClientAuth ) return false; ! if(!cmpStrArray(enabledCipherSuites, s.enabledCipherSuites)) return false; *************** public class SslRMIServerSocketFactory i *** 152,174 **** if( a != null ) { ! if( a.length != b.length ) ! return false; ! for( int i = 0; i < a.length; i++ ) ! if(!a[i].equals(b[i])) ! return false; } return true; } /** ! * Returns the enabled cipher suites, or null * if the defaults are to be used. * @returns a string array of cipher suite names */ public String[] getEnabledCipherSuites() ! { if( enabledCipherSuites == null ) return null; return (String[])enabledCipherSuites.clone(); --- 152,174 ---- if( a != null ) { ! if( a.length != b.length ) ! return false; ! for( int i = 0; i < a.length; i++ ) ! if(!a[i].equals(b[i])) ! return false; } return true; } /** ! * Returns the enabled cipher suites, or null * if the defaults are to be used. * @returns a string array of cipher suite names */ public String[] getEnabledCipherSuites() ! { if( enabledCipherSuites == null ) return null; return (String[])enabledCipherSuites.clone(); *************** public class SslRMIServerSocketFactory i *** 203,213 **** int hash = 0; if( enabledCipherSuites != null ) for(int i = 0; i < enabledCipherSuites.length; i++ ) ! hash = hash ^ enabledCipherSuites[i].hashCode(); if( enabledProtocols != null ) for(int i = 0; i < enabledProtocols.length; i++ ) ! hash = hash ^ enabledProtocols[i].hashCode(); hash = ( needClientAuth ) ? (hash^0xFFFF) : hash; return hash; } ! } \ No newline at end of file --- 203,213 ---- int hash = 0; if( enabledCipherSuites != null ) for(int i = 0; i < enabledCipherSuites.length; i++ ) ! hash = hash ^ enabledCipherSuites[i].hashCode(); if( enabledProtocols != null ) for(int i = 0; i < enabledProtocols.length; i++ ) ! hash = hash ^ enabledProtocols[i].hashCode(); hash = ( needClientAuth ) ? (hash^0xFFFF) : hash; return hash; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/Subject.java gcc-4.6.0/libjava/classpath/javax/security/auth/Subject.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/Subject.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/security/auth/Subject.java Tue Jan 11 19:46:05 2011 *************** public final class Subject implements Se *** 236,242 **** */ public static Object doAsPrivileged (final Subject subject, final PrivilegedExceptionAction action, ! AccessControlContext acc) throws PrivilegedActionException { final SecurityManager sm = System.getSecurityManager(); --- 236,242 ---- */ public static Object doAsPrivileged (final Subject subject, final PrivilegedExceptionAction action, ! AccessControlContext acc) throws PrivilegedActionException { final SecurityManager sm = System.getSecurityManager(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/callback/ChoiceCallback.java gcc-4.6.0/libjava/classpath/javax/security/auth/callback/ChoiceCallback.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/callback/ChoiceCallback.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/security/auth/callback/ChoiceCallback.java Tue Jan 11 19:46:05 2011 *************** public class ChoiceCallback implements C *** 108,114 **** * choices. */ public ChoiceCallback(String prompt, String[] choices, int defaultChoice, ! boolean multipleSelectionsAllowed) { super(); --- 108,114 ---- * choices. */ public ChoiceCallback(String prompt, String[] choices, int defaultChoice, ! boolean multipleSelectionsAllowed) { super(); *************** public class ChoiceCallback implements C *** 116,122 **** setChoices(choices); if (defaultChoice < 0 || defaultChoice >= this.choices.length) { ! throw new IllegalArgumentException("default choice is out of bounds"); } this.defaultChoice = defaultChoice; this.multipleSelectionsAllowed = multipleSelectionsAllowed; --- 116,122 ---- setChoices(choices); if (defaultChoice < 0 || defaultChoice >= this.choices.length) { ! throw new IllegalArgumentException("default choice is out of bounds"); } this.defaultChoice = defaultChoice; this.multipleSelectionsAllowed = multipleSelectionsAllowed; *************** public class ChoiceCallback implements C *** 192,198 **** { if (!multipleSelectionsAllowed) { ! throw new UnsupportedOperationException("not allowed"); } this.selections = selections; --- 192,198 ---- { if (!multipleSelectionsAllowed) { ! throw new UnsupportedOperationException("not allowed"); } this.selections = selections; *************** public class ChoiceCallback implements C *** 213,219 **** { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("invalid prompt"); } this.prompt = prompt; } --- 213,219 ---- { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("invalid prompt"); } this.prompt = prompt; } *************** public class ChoiceCallback implements C *** 222,235 **** { if (choices == null || choices.length == 0) { ! throw new IllegalArgumentException("invalid choices"); } for (int i = 0; i < choices.length; i++) { ! if (choices[i] == null || choices[i].length() == 0) ! { ! throw new IllegalArgumentException("invalid choice at index #"+i); ! } } this.choices = choices; } --- 222,235 ---- { if (choices == null || choices.length == 0) { ! throw new IllegalArgumentException("invalid choices"); } for (int i = 0; i < choices.length; i++) { ! if (choices[i] == null || choices[i].length() == 0) ! { ! throw new IllegalArgumentException("invalid choice at index #"+i); ! } } this.choices = choices; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/callback/ConfirmationCallback.java gcc-4.6.0/libjava/classpath/javax/security/auth/callback/ConfirmationCallback.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/callback/ConfirmationCallback.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/security/auth/callback/ConfirmationCallback.java Tue Jan 11 19:46:05 2011 *************** public class ConfirmationCallback implem *** 260,266 **** * not correspond to one of the options in optionType. */ public ConfirmationCallback(String prompt, int messageType, int optionType, ! int defaultOption) { super(); --- 260,266 ---- * not correspond to one of the options in optionType. */ public ConfirmationCallback(String prompt, int messageType, int optionType, ! int defaultOption) { super(); *************** public class ConfirmationCallback implem *** 297,303 **** * options. */ public ConfirmationCallback(String prompt, int messageType, String[] options, ! int defaultOption) { super(); --- 297,303 ---- * options. */ public ConfirmationCallback(String prompt, int messageType, String[] options, ! int defaultOption) { super(); *************** public class ConfirmationCallback implem *** 352,358 **** { if (options != null) { ! return UNSPECIFIED_OPTION; } return optionType; } --- 352,358 ---- { if (options != null) { ! return UNSPECIFIED_OPTION; } return optionType; } *************** public class ConfirmationCallback implem *** 399,409 **** { if (options != null) { ! setOptions(options, selection); } else { ! setOptionType(optionType, selection); } } --- 399,409 ---- { if (options != null) { ! setOptions(options, selection); } else { ! setOptionType(optionType, selection); } } *************** public class ConfirmationCallback implem *** 440,474 **** switch (optionType) { case YES_NO_OPTION: ! this.optionType = optionType; ! switch (selectedOption) ! { ! case YES: ! case NO: this.selection = selectedOption; break; ! default: throw new IllegalArgumentException("invalid option"); ! } ! break; case YES_NO_CANCEL_OPTION: ! this.optionType = optionType; ! switch (selectedOption) ! { ! case YES: ! case NO: ! case CANCEL: this.selection = selectedOption; break; ! default: throw new IllegalArgumentException("invalid option"); ! } ! break; case OK_CANCEL_OPTION: ! this.optionType = optionType; ! switch (selectedOption) ! { ! case OK: ! case CANCEL: this.selection = selectedOption; break; ! default: throw new IllegalArgumentException("invalid option"); ! } ! break; default: ! throw new IllegalArgumentException("illegal option type"); } } --- 440,474 ---- switch (optionType) { case YES_NO_OPTION: ! this.optionType = optionType; ! switch (selectedOption) ! { ! case YES: ! case NO: this.selection = selectedOption; break; ! default: throw new IllegalArgumentException("invalid option"); ! } ! break; case YES_NO_CANCEL_OPTION: ! this.optionType = optionType; ! switch (selectedOption) ! { ! case YES: ! case NO: ! case CANCEL: this.selection = selectedOption; break; ! default: throw new IllegalArgumentException("invalid option"); ! } ! break; case OK_CANCEL_OPTION: ! this.optionType = optionType; ! switch (selectedOption) ! { ! case OK: ! case CANCEL: this.selection = selectedOption; break; ! default: throw new IllegalArgumentException("invalid option"); ! } ! break; default: ! throw new IllegalArgumentException("illegal option type"); } } *************** public class ConfirmationCallback implem *** 477,494 **** { if ((selectedOption < 0) || (selectedOption > options.length - 1)) { ! throw new IllegalArgumentException("invalid selection"); } if ((options == null) || (options.length == 0)) { ! throw new IllegalArgumentException("options is null or empty"); } for (int i = 0; i < options.length; i++) { ! if ((options[i] == null) || (options[i].length() == 0)) ! { ! throw new IllegalArgumentException("options[" + i + "] is null or empty"); ! } } this.options = options; this.selection = selectedOption; --- 477,494 ---- { if ((selectedOption < 0) || (selectedOption > options.length - 1)) { ! throw new IllegalArgumentException("invalid selection"); } if ((options == null) || (options.length == 0)) { ! throw new IllegalArgumentException("options is null or empty"); } for (int i = 0; i < options.length; i++) { ! if ((options[i] == null) || (options[i].length() == 0)) ! { ! throw new IllegalArgumentException("options[" + i + "] is null or empty"); ! } } this.options = options; this.selection = selectedOption; *************** public class ConfirmationCallback implem *** 498,504 **** { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("prompt is null or empty"); } this.prompt = prompt; } --- 498,504 ---- { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("prompt is null or empty"); } this.prompt = prompt; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/callback/NameCallback.java gcc-4.6.0/libjava/classpath/javax/security/auth/callback/NameCallback.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/callback/NameCallback.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/security/auth/callback/NameCallback.java Tue Jan 11 19:46:05 2011 *************** public class NameCallback implements Cal *** 162,168 **** { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("invalid prompt"); } this.prompt = prompt; } --- 162,168 ---- { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("invalid prompt"); } this.prompt = prompt; } *************** public class NameCallback implements Cal *** 171,177 **** { if ((defaultName == null) || (defaultName.length() == 0)) { ! throw new IllegalArgumentException("invalid default name"); } this.defaultName = defaultName; } --- 171,177 ---- { if ((defaultName == null) || (defaultName.length() == 0)) { ! throw new IllegalArgumentException("invalid default name"); } this.defaultName = defaultName; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/callback/PasswordCallback.java gcc-4.6.0/libjava/classpath/javax/security/auth/callback/PasswordCallback.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/callback/PasswordCallback.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/security/auth/callback/PasswordCallback.java Tue Jan 11 19:46:05 2011 *************** public class PasswordCallback implements *** 149,159 **** { if (inputPassword != null) { ! for (int i = 0; i < inputPassword.length; i++) ! { ! inputPassword[i] = '\0'; ! } ! inputPassword = null; } } --- 149,159 ---- { if (inputPassword != null) { ! for (int i = 0; i < inputPassword.length; i++) ! { ! inputPassword[i] = '\0'; ! } ! inputPassword = null; } } *************** public class PasswordCallback implements *** 161,167 **** { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("invalid prompt"); } this.prompt = prompt; } --- 161,167 ---- { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("invalid prompt"); } this.prompt = prompt; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/callback/TextInputCallback.java gcc-4.6.0/libjava/classpath/javax/security/auth/callback/TextInputCallback.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/callback/TextInputCallback.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/security/auth/callback/TextInputCallback.java Tue Jan 11 19:46:05 2011 *************** public class TextInputCallback implement *** 161,167 **** { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("invalid prompt"); } this.prompt = prompt; } --- 161,167 ---- { if ((prompt == null) || (prompt.length() == 0)) { ! throw new IllegalArgumentException("invalid prompt"); } this.prompt = prompt; } *************** public class TextInputCallback implement *** 170,176 **** { if ((defaultText == null) || (defaultText.length() == 0)) { ! throw new IllegalArgumentException("invalid default text"); } this.defaultText = defaultText; } --- 170,176 ---- { if ((defaultText == null) || (defaultText.length() == 0)) { ! throw new IllegalArgumentException("invalid default text"); } this.defaultText = defaultText; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/callback/TextOutputCallback.java gcc-4.6.0/libjava/classpath/javax/security/auth/callback/TextOutputCallback.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/callback/TextOutputCallback.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/security/auth/callback/TextOutputCallback.java Tue Jan 11 19:46:05 2011 *************** public class TextOutputCallback implemen *** 133,139 **** { if ((message == null) || (message.length() == 0)) { ! throw new IllegalArgumentException("invalid message"); } this.message = message; } --- 133,139 ---- { if ((message == null) || (message.length() == 0)) { ! throw new IllegalArgumentException("invalid message"); } this.message = message; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/DelegationPermission.java gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/DelegationPermission.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/DelegationPermission.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/DelegationPermission.java Tue Jan 11 19:46:05 2011 *************** public final class DelegationPermission *** 64,75 **** /** * Create a new instance with the given name and actions. ! * * The name consists of two parts: first the subordinate * service principal, then the target service principal. * Each principal is surrounded by quotes; the two are separated * by a space. ! * * @param name the name * @param actions the actions; this is ignored */ --- 64,75 ---- /** * Create a new instance with the given name and actions. ! * * The name consists of two parts: first the subordinate * service principal, then the target service principal. * Each principal is surrounded by quotes; the two are separated * by a space. ! * * @param name the name * @param actions the actions; this is ignored */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/KerberosKey.java gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/KerberosKey.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/KerberosKey.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/KerberosKey.java Tue Jan 11 19:46:05 2011 *************** import javax.security.auth.Destroyable; *** 50,56 **** * This class represents a Kerberos key. See the Kerberos * authentication RFC for more information: * RFC 1510. ! * * @since 1.4 */ public class KerberosKey --- 50,56 ---- * This class represents a Kerberos key. See the Kerberos * authentication RFC for more information: * RFC 1510. ! * * @since 1.4 */ public class KerberosKey diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/KerberosPrincipal.java gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/KerberosPrincipal.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/KerberosPrincipal.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/KerberosPrincipal.java Tue Jan 11 19:46:05 2011 *************** public final class KerberosPrincipal *** 107,113 **** * Create a new instance with the given name and type. The name is * parsed according to the rules in the RFC. If there is no realm, * then the local realm is used instead. ! * * @param name the principal's name * @param type the principal's type */ --- 107,113 ---- * Create a new instance with the given name and type. The name is * parsed according to the rules in the RFC. If there is no realm, * then the local realm is used instead. ! * * @param name the principal's name * @param type the principal's type */ *************** public final class KerberosPrincipal *** 202,207 **** public String toString() { // This is what came to mind. ! return name + ":" + type; } } --- 202,207 ---- public String toString() { // This is what came to mind. ! return name + ":" + type; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/KerberosTicket.java gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/KerberosTicket.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/KerberosTicket.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/KerberosTicket.java Tue Oct 12 15:55:12 2010 *************** import javax.security.auth.Refreshable; *** 54,60 **** * This class represents a Kerberos ticket. See the Kerberos * authentication RFC for more information: * RFC 1510. ! * * @since 1.4 */ public class KerberosTicket --- 54,60 ---- * This class represents a Kerberos ticket. See the Kerberos * authentication RFC for more information: * RFC 1510. ! * * @since 1.4 */ public class KerberosTicket *************** public class KerberosTicket *** 86,101 **** /** * Create a new ticket given all the facts about it. ! * * Note that flags may be null or "short"; any flags not specified * will be taken to be false. ! * * If the key is not renewable, then renewTill may be null. ! * * If authTime is null, then it is taken to be the same as startTime. ! * * If clientAddresses is null, then the ticket can be used anywhere. ! * * @param asn1Encoding the contents of the ticket, as ASN1 * @param client the client principal * @param server the server principal --- 86,101 ---- /** * Create a new ticket given all the facts about it. ! * * Note that flags may be null or "short"; any flags not specified * will be taken to be false. ! * * If the key is not renewable, then renewTill may be null. ! * * If authTime is null, then it is taken to be the same as startTime. ! * * If clientAddresses is null, then the ticket can be used anywhere. ! * * @param asn1Encoding the contents of the ticket, as ASN1 * @param client the client principal * @param server the server principal *************** public class KerberosTicket *** 279,285 **** { return (Date) startTime.clone(); } ! /** * Return the end time for this ticket. */ --- 279,285 ---- { return (Date) startTime.clone(); } ! /** * Return the end time for this ticket. */ *************** public class KerberosTicket *** 287,293 **** { return (Date) endTime.clone(); } ! /** * Return the renewal time for this ticket. For a non-renewable * ticket, this will return null. --- 287,293 ---- { return (Date) endTime.clone(); } ! /** * Return the renewal time for this ticket. For a non-renewable * ticket, this will return null. *************** public class KerberosTicket *** 334,339 **** public String toString() { ! return "FIXME bob"; } } --- 334,372 ---- public String toString() { ! return getClass().getName() + ! "[client=" + client + ! ",server=" + server + ! ",sessionKey=" + sessionKey + ! ",flags=" + flags + ! ",authTime=" + authTime + ! ",startTime= " + startTime + ! ",endTime=" + endTime + ! ",renewTill=" + renewTill + ! ",clientAddresses=" + clientAddresses + ! "]"; } + + /** + *

                                    + * Returns the type of the session key in accordance with + * RFC1510. This usually corresponds to the encryption + * algorithm used by the key, though more than one algorithm + * may use the same key type (e.g. DES with different checksum + * mechanisms and chaining modes). Negative values are reserved + * for local use. Non-negative values are for officially assigned + * type fields. The RFC defines: + *

                                    + *
                                      + *
                                    • 0 — null
                                    • + *
                                    • 1 — DES (in CBC mode with either MD4 or MD5 checksums)
                                    • + *
                                    + * + * @return the type of session key used by this ticket. + */ + public final int getSessionKeyType() + { + return sessionKey.type; + } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/KeyImpl.java gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/KeyImpl.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/KeyImpl.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/KeyImpl.java Tue Oct 12 15:55:12 2010 *************** final class KeyImpl implements Serializa *** 90,93 **** --- 90,102 ---- // FIXME. return null; } + + public String toString() + { + return getClass().getName() + + "[type=" + type + + ",algorithm=" + algorithm + + "]"; + } + } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/ServicePermission.java gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/ServicePermission.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/kerberos/ServicePermission.java Wed May 17 12:49:17 2006 --- gcc-4.6.0/libjava/classpath/javax/security/auth/kerberos/ServicePermission.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 48,54 **** * This represents permission to access to a Kerberos service principal. * See the Kerberos authentication RFC for more information: * RFC 1510. ! * * @since 1.4 */ public final class ServicePermission --- 48,54 ---- * This represents permission to access to a Kerberos service principal. * See the Kerberos authentication RFC for more information: * RFC 1510. ! * * @since 1.4 */ public final class ServicePermission *************** public final class ServicePermission *** 64,78 **** /** * Create a new service permission with the indicated name and actions. ! * * The name is the name of the kerberos principal for the service. ! * * The actions are a comma-separated list of strings. The recognized * actions are "initiate" and "accept". The "initiate" action means * that the holder of the permission can access the service. The * "accept" action means that the holder of the permission can operate * as this service. ! * * @param name the prinicpal's name * @param action the allowed actions */ --- 64,78 ---- /** * Create a new service permission with the indicated name and actions. ! * * The name is the name of the kerberos principal for the service. ! * * The actions are a comma-separated list of strings. The recognized * actions are "initiate" and "accept". The "initiate" action means * that the holder of the permission can access the service. The * "accept" action means that the holder of the permission can operate * as this service. ! * * @param name the prinicpal's name * @param action the allowed actions */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/login/AccountNotFoundException.java gcc-4.6.0/libjava/classpath/javax/security/auth/login/AccountNotFoundException.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/login/AccountNotFoundException.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/security/auth/login/AccountNotFoundException.java Tue Jan 11 19:46:05 2011 *************** package javax.security.auth.login; *** 40,46 **** /** * An exception indicating that an account was not found. ! * @since 1.5 */ public class AccountNotFoundException extends AccountException { --- 40,46 ---- /** * An exception indicating that an account was not found. ! * @since 1.5 */ public class AccountNotFoundException extends AccountException { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/login/AppConfigurationEntry.java gcc-4.6.0/libjava/classpath/javax/security/auth/login/AppConfigurationEntry.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/login/AppConfigurationEntry.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/security/auth/login/AppConfigurationEntry.java Tue Jan 11 19:46:05 2011 *************** public class AppConfigurationEntry *** 97,103 **** public String toString() { ! return loginModuleName + "\t" + String.valueOf(controlFlag) + "\t" + String.valueOf(options); --- 97,103 ---- public String toString() { ! return loginModuleName + "\t" + String.valueOf(controlFlag) + "\t" + String.valueOf(options); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/auth/login/LoginContext.java gcc-4.6.0/libjava/classpath/javax/security/auth/login/LoginContext.java *** gcc-4.5.2/libjava/classpath/javax/security/auth/login/LoginContext.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/security/auth/login/LoginContext.java Tue Jan 11 19:46:05 2011 *************** public class LoginContext *** 230,238 **** Exception cause = null; try { ! ClassLoader cl = Thread.currentThread().getContextClassLoader(); ! Class c = Class.forName(entry.getLoginModuleName(), true, cl); ! module = (LoginModule) c.newInstance(); } catch (ClassNotFoundException cnfe) { --- 230,238 ---- Exception cause = null; try { ! ClassLoader cl = Thread.currentThread().getContextClassLoader(); ! Class c = Class.forName(entry.getLoginModuleName(), true, cl); ! module = (LoginModule) c.newInstance(); } catch (ClassNotFoundException cnfe) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/security/sasl/Sasl.java gcc-4.6.0/libjava/classpath/javax/security/sasl/Sasl.java *** gcc-4.5.2/libjava/classpath/javax/security/sasl/Sasl.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/security/sasl/Sasl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Sasl.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Sasl.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/ControllerEventListener.java gcc-4.6.0/libjava/classpath/javax/sound/midi/ControllerEventListener.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/ControllerEventListener.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/ControllerEventListener.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 41,49 **** import java.util.EventListener; /** ! * The interface defines the methods to be implemented by classes wanting * to be notified on MIDI controller events from a Sequencer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 41,49 ---- import java.util.EventListener; /** ! * The interface defines the methods to be implemented by classes wanting * to be notified on MIDI controller events from a Sequencer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Instrument.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Instrument.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Instrument.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Instrument.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * The abstract base class for all MIDI instruments. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * The abstract base class for all MIDI instruments. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public abstract class Instrument extends *** 49,77 **** { // The instrument patch. private Patch patch; ! /** * Create a new Instrument. ! * * @param soundbank the Soundbank containing the instrument. * @param patch the patch for this instrument * @param name the name of this instrument * @param dataClass the class used to represent sample data for this instrument */ ! protected Instrument(Soundbank soundbank, Patch patch, String name, Class dataClass) { super(soundbank, name, dataClass); ! this.patch = patch; } ! /** * Get the patch for this instrument. ! * * @return the patch for this instrument */ public Patch getPatch() { return patch; ! } } --- 49,77 ---- { // The instrument patch. private Patch patch; ! /** * Create a new Instrument. ! * * @param soundbank the Soundbank containing the instrument. * @param patch the patch for this instrument * @param name the name of this instrument * @param dataClass the class used to represent sample data for this instrument */ ! protected Instrument(Soundbank soundbank, Patch patch, String name, Class dataClass) { super(soundbank, name, dataClass); ! this.patch = patch; } ! /** * Get the patch for this instrument. ! * * @return the patch for this instrument */ public Patch getPatch() { return patch; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/InvalidMidiDataException.java gcc-4.6.0/libjava/classpath/javax/sound/midi/InvalidMidiDataException.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/InvalidMidiDataException.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/InvalidMidiDataException.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * This exception is thrown when we encounter bad MIDI data. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * This exception is thrown when we encounter bad MIDI data. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** package javax.sound.midi; *** 48,54 **** public class InvalidMidiDataException extends Exception { private static final long serialVersionUID = 2780771756789932067L; ! /** * Create an InvalidMidiDataException object. */ --- 48,54 ---- public class InvalidMidiDataException extends Exception { private static final long serialVersionUID = 2780771756789932067L; ! /** * Create an InvalidMidiDataException object. */ *************** public class InvalidMidiDataException ex *** 59,65 **** /** * Create an InvalidMidiDataException object. ! * * @param s the exception message string */ public InvalidMidiDataException(String s) --- 59,65 ---- /** * Create an InvalidMidiDataException object. ! * * @param s the exception message string */ public InvalidMidiDataException(String s) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MetaEventListener.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MetaEventListener.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MetaEventListener.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MetaEventListener.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 41,49 **** import java.util.EventListener; /** ! * The interface defines the methods to be implemented by classes wanting * to be notified on MIDI meta events from a Sequencer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 41,49 ---- import java.util.EventListener; /** ! * The interface defines the methods to be implemented by classes wanting * to be notified on MIDI meta events from a Sequencer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MetaMessage.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MetaMessage.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MetaMessage.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MetaMessage.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * A system exclusive MIDI message. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * A system exclusive MIDI message. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public class MetaMessage extends MidiMes *** 51,65 **** * The META status code. Only valid for MIDI files, not the wire protocol. */ public static final int META = 0xFF; ! // The length of the variable length data length encoding. private int lengthLength = 0; ! /** * Create a default valid meta message. ! * * The official specs don't specify what message is to be ! * created. For now, we create a zero length meta message * with a type code of 0. */ public MetaMessage() --- 51,65 ---- * The META status code. Only valid for MIDI files, not the wire protocol. */ public static final int META = 0xFF; ! // The length of the variable length data length encoding. private int lengthLength = 0; ! /** * Create a default valid meta message. ! * * The official specs don't specify what message is to be ! * created. For now, we create a zero length meta message * with a type code of 0. */ public MetaMessage() *************** public class MetaMessage extends MidiMes *** 71,77 **** data[3] = (byte) 0; // Length lengthLength = 1; } ! /** * Create a MetaMessage object. * @param data a complete system exclusive message --- 71,77 ---- data[3] = (byte) 0; // Length lengthLength = 1; } ! /** * Create a MetaMessage object. * @param data a complete system exclusive message *************** public class MetaMessage extends MidiMes *** 84,93 **** while ((data[index++] & 0x80) > 0) lengthLength++; } ! /** * Set the meta message. ! * * @param type the meta type byte (< 128) * @param data the message data * @param length the length of the message data --- 84,93 ---- while ((data[index++] & 0x80) > 0) lengthLength++; } ! /** * Set the meta message. ! * * @param type the meta type byte (< 128) * @param data the message data * @param length the length of the message data *************** public class MetaMessage extends MidiMes *** 101,109 **** + Integer.toHexString(type) + " must be less than 128"); ! // For a nice description of how variable length values are handled, // see http://www.borg.com/~jglatt/tech/midifile.htm ! // First compute the length of the length value lengthLength = 0; int lengthValue = length; --- 101,109 ---- + Integer.toHexString(type) + " must be less than 128"); ! // For a nice description of how variable length values are handled, // see http://www.borg.com/~jglatt/tech/midifile.htm ! // First compute the length of the length value lengthLength = 0; int lengthValue = length; *************** public class MetaMessage extends MidiMes *** 111,123 **** lengthValue = lengthValue >> 7; lengthLength++; } while (lengthValue > 0); ! // Now allocate our data array this.length = 2 + lengthLength + length; this.data = new byte[this.length]; this.data[0] = (byte) META; this.data[1] = (byte) type; ! // Now compute the length representation long buffer = length & 0x7F; while ((length >>= 7) > 0) --- 111,123 ---- lengthValue = lengthValue >> 7; lengthLength++; } while (lengthValue > 0); ! // Now allocate our data array this.length = 2 + lengthLength + length; this.data = new byte[this.length]; this.data[0] = (byte) META; this.data[1] = (byte) type; ! // Now compute the length representation long buffer = length & 0x7F; while ((length >>= 7) > 0) *************** public class MetaMessage extends MidiMes *** 125,131 **** buffer <<= 8; buffer |= ((length & 0x7F) | 0x80); } ! // Now store the variable length length value int index = 2; do --- 125,131 ---- buffer <<= 8; buffer |= ((length & 0x7F) | 0x80); } ! // Now store the variable length length value int index = 2; do *************** public class MetaMessage extends MidiMes *** 135,159 **** break; buffer >>= 8; } while (true); ! // Now copy the real data. System.arraycopy(data, 0, this.data, index, length); } ! /** * Get the meta message type. ! * * @return the meta message type */ public int getType() { return data[1]; } ! /** * Get the data for this message, not including the status, * type, or length information. ! * * @return the message data, not including status, type or lenght info */ public byte[] getData() --- 135,159 ---- break; buffer >>= 8; } while (true); ! // Now copy the real data. System.arraycopy(data, 0, this.data, index, length); } ! /** * Get the meta message type. ! * * @return the meta message type */ public int getType() { return data[1]; } ! /** * Get the data for this message, not including the status, * type, or length information. ! * * @return the message data, not including status, type or lenght info */ public byte[] getData() *************** public class MetaMessage extends MidiMes *** 163,169 **** System.arraycopy(data, 2 + lengthLength, result, 0, dataLength); return result; } ! /* Create a deep-copy clone of this object. * @see java.lang.Object#clone() */ --- 163,169 ---- System.arraycopy(data, 2 + lengthLength, result, 0, dataLength); return result; } ! /* Create a deep-copy clone of this object. * @see java.lang.Object#clone() */ *************** public class MetaMessage extends MidiMes *** 171,176 **** { byte message[] = new byte[length]; System.arraycopy(data, 0, message, 0, length); ! return new MetaMessage(message); } } --- 171,176 ---- { byte message[] = new byte[length]; System.arraycopy(data, 0, message, 0, length); ! return new MetaMessage(message); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiChannel.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiChannel.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiChannel.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiChannel.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,61 **** /** * A MIDI channel. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * */ public interface MidiChannel { ! /** * Start playing a note. ! * * @param noteNumber the MIDI note number * @param velocity the velocity at which the key was pressed */ public void noteOn(int noteNumber, int velocity); ! /** * Stop playing a note. * --- 40,61 ---- /** * A MIDI channel. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * */ public interface MidiChannel { ! /** * Start playing a note. ! * * @param noteNumber the MIDI note number * @param velocity the velocity at which the key was pressed */ public void noteOn(int noteNumber, int velocity); ! /** * Stop playing a note. * *************** public interface MidiChannel *** 63,235 **** * @param velocity the volcity at which the ket was released */ public void noteOff(int noteNumber, int velocity); ! /** * Stop playing a note. ! * * @param noteNumber the MIDI note number */ public void noteOff(int noteNumber); ! /** * Change in a key pressure for a note. ! * * @param noteNumber the MIDI note number * @param pressure the key pressure */ public void setPolyPressure(int noteNumber, int pressure); ! /** * Get the key pressure for a note. ! * * @param noteNumber the MIDI note number * @return the key pressure */ public int getPolyPressure(int noteNumber); ! /** * Set the key pressure for the channel. ! * * @param pressure the key pressure */ public void setChannelPressure(int pressure); ! /** * Get the key pressure for the channel. ! * * @return the key pressure */ public int getChannelPressure(); ! /** * Set a change in a controller's value. ! * * @param controller the MIDI controller number (0 to 127) * @param value the new value (0 to 127) */ public void controlChange(int controller, int value); ! /** * Get a controller's value. ! * * @param controller the MIDI controller number (0 to 127) * @return the controller's value (0 to 127) */ public int getController(int controller); ! /** * Change the patch for this channel. ! * * @param program the patch number to switch to (0 to 127) */ public void programChange(int program); ! /** * Change the bank and patch for this channel. ! * * @param bank the bank to switch to (0 to 16383) * @param program the patch to switch to (0 to 127) */ public void programChange(int bank, int program); ! /** * Get the current patch for this channel. ! * * @return current patch (0 to 127) */ public int getProgram(); ! /** * Change the pitch bend for this channel using a positive 14-bit value. ! * * @param bend the new pitch bend value */ public void setPitchBend(int bend); ! /** * Get the pitch bend for this channel as a positive 14-bit value. ! * * @return the current patch bend value */ public int getPitchBend(); ! /** * Reset all MIDI controllers to their default values. */ public void resetAllControllers(); ! /** * Stop playing all notes. Sound may not stop. */ public void allNotesOff(); ! /** * Stop all sound. */ public void allSoundOff(); ! /** * Set whether or not local controls are on or off. They are on by * default. ! * * @param on true to enable local controls, false to disable * @return the new value */ public boolean localControl(boolean on); ! /** * Turns mono mode on or off. ! * ! * @param on true to enable mono mode, false to disable */ public void setMono(boolean on); ! /** * Get the current mono mode. ! * * @return true if mono is enabled, false otherwise */ public boolean getMono(); ! /** * Turns omni mode on or off. ! * * @param on true to enable omni mode, false to disable */ public void setOmni(boolean on); ! /** * Get the current omni mode. ! * * @return true if omni is enabled, false otherwise */ public boolean getOmni(); ! /** * Turns mute mode on or off. ! * * @param mute true to enable mute mode, false to disable */ public void setMute(boolean mute); ! /** * Get the current mute mode. ! * * @return true if mute is enabled, false otherwise */ public boolean getMute(); ! /** * Turns solo mode on or off. If any channels are soloed, then only those * channels make sounds, otherwise all channels will make sound. ! * * @param solo true to enable solo mode, false to disable */ public void setSolo(boolean solo); ! /** * Get the current solo mode. ! * * @return true is solo is enabled, false otherwise. */ public boolean getSolo(); --- 63,235 ---- * @param velocity the volcity at which the ket was released */ public void noteOff(int noteNumber, int velocity); ! /** * Stop playing a note. ! * * @param noteNumber the MIDI note number */ public void noteOff(int noteNumber); ! /** * Change in a key pressure for a note. ! * * @param noteNumber the MIDI note number * @param pressure the key pressure */ public void setPolyPressure(int noteNumber, int pressure); ! /** * Get the key pressure for a note. ! * * @param noteNumber the MIDI note number * @return the key pressure */ public int getPolyPressure(int noteNumber); ! /** * Set the key pressure for the channel. ! * * @param pressure the key pressure */ public void setChannelPressure(int pressure); ! /** * Get the key pressure for the channel. ! * * @return the key pressure */ public int getChannelPressure(); ! /** * Set a change in a controller's value. ! * * @param controller the MIDI controller number (0 to 127) * @param value the new value (0 to 127) */ public void controlChange(int controller, int value); ! /** * Get a controller's value. ! * * @param controller the MIDI controller number (0 to 127) * @return the controller's value (0 to 127) */ public int getController(int controller); ! /** * Change the patch for this channel. ! * * @param program the patch number to switch to (0 to 127) */ public void programChange(int program); ! /** * Change the bank and patch for this channel. ! * * @param bank the bank to switch to (0 to 16383) * @param program the patch to switch to (0 to 127) */ public void programChange(int bank, int program); ! /** * Get the current patch for this channel. ! * * @return current patch (0 to 127) */ public int getProgram(); ! /** * Change the pitch bend for this channel using a positive 14-bit value. ! * * @param bend the new pitch bend value */ public void setPitchBend(int bend); ! /** * Get the pitch bend for this channel as a positive 14-bit value. ! * * @return the current patch bend value */ public int getPitchBend(); ! /** * Reset all MIDI controllers to their default values. */ public void resetAllControllers(); ! /** * Stop playing all notes. Sound may not stop. */ public void allNotesOff(); ! /** * Stop all sound. */ public void allSoundOff(); ! /** * Set whether or not local controls are on or off. They are on by * default. ! * * @param on true to enable local controls, false to disable * @return the new value */ public boolean localControl(boolean on); ! /** * Turns mono mode on or off. ! * ! * @param on true to enable mono mode, false to disable */ public void setMono(boolean on); ! /** * Get the current mono mode. ! * * @return true if mono is enabled, false otherwise */ public boolean getMono(); ! /** * Turns omni mode on or off. ! * * @param on true to enable omni mode, false to disable */ public void setOmni(boolean on); ! /** * Get the current omni mode. ! * * @return true if omni is enabled, false otherwise */ public boolean getOmni(); ! /** * Turns mute mode on or off. ! * * @param mute true to enable mute mode, false to disable */ public void setMute(boolean mute); ! /** * Get the current mute mode. ! * * @return true if mute is enabled, false otherwise */ public boolean getMute(); ! /** * Turns solo mode on or off. If any channels are soloed, then only those * channels make sounds, otherwise all channels will make sound. ! * * @param solo true to enable solo mode, false to disable */ public void setSolo(boolean solo); ! /** * Get the current solo mode. ! * * @return true is solo is enabled, false otherwise. */ public boolean getSolo(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiDevice.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiDevice.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiDevice.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiDevice.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * Interface for all MIDI devices. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * Interface for all MIDI devices. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public interface MidiDevice *** 52,120 **** * @return the Info object describing this device */ public Info getDeviceInfo(); ! /** * Open this MIDI device and allocate any system resource we need. ! * * @throws MidiUnavailableException if we're not able to open for some reason */ public void open() throws MidiUnavailableException; ! /** * Close this MIDI device, and release any system resources we're using. */ public void close(); ! /** * Returns true if this MIDI device is open and false otherwise. ! * * @return true if this is open, false otherwise */ public boolean isOpen(); ! /** * If this device supports time-stamps, then it will return the number * of microseconds since this device has been open, and -1 otherwise. ! * * @return -1 or the number of microseconds since this was opened */ public long getMicrosecondPosition(); ! /** * The maximum number of MIDI IN connections we can get as Receivers, * or -1 if there is no maximum. ! * * @return -1 or the maximum number of Receivers we can get */ public int getMaxReceivers(); ! /** * The maximum number of MIDI OUT connections we can get as Transmitters, * or -1 if there is no maximum. ! * * @return -1 or the maximum number of Transmitters we can get */ public int getMaxTransmitters(); ! /** * Get a MIDI IN Receiver for this device. ! * * @return a MIDI IN Receiver for this device * @throws MidiUnavailableException if we can't get a Receiver */ public Receiver getReceiver() throws MidiUnavailableException; ! /** * Get a MIDI OUT Transmitter for this device. ! * * @return a MIDI OUT Transmitter for this device * @throws MidiUnavailableException if we can't get a Transmitter */ public Transmitter getTransmitter() throws MidiUnavailableException; ! /** * A MIDI device descriptor object. ! * * @author green@redhat.com * */ --- 52,120 ---- * @return the Info object describing this device */ public Info getDeviceInfo(); ! /** * Open this MIDI device and allocate any system resource we need. ! * * @throws MidiUnavailableException if we're not able to open for some reason */ public void open() throws MidiUnavailableException; ! /** * Close this MIDI device, and release any system resources we're using. */ public void close(); ! /** * Returns true if this MIDI device is open and false otherwise. ! * * @return true if this is open, false otherwise */ public boolean isOpen(); ! /** * If this device supports time-stamps, then it will return the number * of microseconds since this device has been open, and -1 otherwise. ! * * @return -1 or the number of microseconds since this was opened */ public long getMicrosecondPosition(); ! /** * The maximum number of MIDI IN connections we can get as Receivers, * or -1 if there is no maximum. ! * * @return -1 or the maximum number of Receivers we can get */ public int getMaxReceivers(); ! /** * The maximum number of MIDI OUT connections we can get as Transmitters, * or -1 if there is no maximum. ! * * @return -1 or the maximum number of Transmitters we can get */ public int getMaxTransmitters(); ! /** * Get a MIDI IN Receiver for this device. ! * * @return a MIDI IN Receiver for this device * @throws MidiUnavailableException if we can't get a Receiver */ public Receiver getReceiver() throws MidiUnavailableException; ! /** * Get a MIDI OUT Transmitter for this device. ! * * @return a MIDI OUT Transmitter for this device * @throws MidiUnavailableException if we can't get a Transmitter */ public Transmitter getTransmitter() throws MidiUnavailableException; ! /** * A MIDI device descriptor object. ! * * @author green@redhat.com * */ *************** public interface MidiDevice *** 125,134 **** private String vendor; private String description; private String version; ! /** * Create an Info object for a MIDI device ! * * @param name the device name * @param vendor the vendor name * @param description the device description --- 125,134 ---- private String vendor; private String description; private String version; ! /** * Create an Info object for a MIDI device ! * * @param name the device name * @param vendor the vendor name * @param description the device description *************** public interface MidiDevice *** 141,151 **** this.description = description; this.version = version; } ! /** * This equals method only returns true if this object * is the same as obj. ! * * @param obj the object we're comparing to * @return true if this is the same object * @see java.lang.Object#equals(java.lang.Object) --- 141,151 ---- this.description = description; this.version = version; } ! /** * This equals method only returns true if this object * is the same as obj. ! * * @param obj the object we're comparing to * @return true if this is the same object * @see java.lang.Object#equals(java.lang.Object) *************** public interface MidiDevice *** 154,163 **** { return super.equals(obj); } ! /** * A hash code for this object. ! * * @return the hash code for this object * @see java.lang.Object#hashCode() */ --- 154,163 ---- { return super.equals(obj); } ! /** * A hash code for this object. ! * * @return the hash code for this object * @see java.lang.Object#hashCode() */ *************** public interface MidiDevice *** 165,214 **** { return super.hashCode(); } ! /** * Get the device name. ! * * @return the device name */ public final String getName() { return name; } ! /** * Get the device vendor. ! * * @return the device vendor */ public final String getVendor() { return vendor; } ! /** * Get the device description ! * * @return the device description */ public final String getDescription() { return description; } ! /** * get the device version ! * * @return the device version */ public final String getVersion() { return version; } ! /** * Simple return the name of the device. ! * * @return the device name * @see java.lang.Object#toString() */ --- 165,214 ---- { return super.hashCode(); } ! /** * Get the device name. ! * * @return the device name */ public final String getName() { return name; } ! /** * Get the device vendor. ! * * @return the device vendor */ public final String getVendor() { return vendor; } ! /** * Get the device description ! * * @return the device description */ public final String getDescription() { return description; } ! /** * get the device version ! * * @return the device version */ public final String getVersion() { return version; } ! /** * Simple return the name of the device. ! * * @return the device name * @see java.lang.Object#toString() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiEvent.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiEvent.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiEvent.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiEvent.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 41,47 **** /** * A MIDI event is the combination of a MIDI message and a timestamp specified * in MIDI ticks. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 41,47 ---- /** * A MIDI event is the combination of a MIDI message and a timestamp specified * in MIDI ticks. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public class MidiEvent *** 50,59 **** { private final MidiMessage message; private long tick; ! /** * Create a MIDI event object from the given MIDI message and timestamp. ! * * @param message the MidiMessage for this event * @param tick the timestamp for this event */ --- 50,59 ---- { private final MidiMessage message; private long tick; ! /** * Create a MIDI event object from the given MIDI message and timestamp. ! * * @param message the MidiMessage for this event * @param tick the timestamp for this event */ *************** public class MidiEvent *** 62,91 **** this.message = message; this.tick = tick; } ! /** * Get the MIDI message for this event. ! * * @return the MidiMessage for this event */ public MidiMessage getMessage() { return message; } ! /** * Set the timestemp for this event in MIDI ticks. ! * * @param tick the timestamp */ public void setTick(long tick) { this.tick = tick; } ! /** * Get the timestamp for this event in MIDI ticks. ! * * @return the timestamp for this even in MIDI ticks */ public long getTick() --- 62,91 ---- this.message = message; this.tick = tick; } ! /** * Get the MIDI message for this event. ! * * @return the MidiMessage for this event */ public MidiMessage getMessage() { return message; } ! /** * Set the timestemp for this event in MIDI ticks. ! * * @param tick the timestamp */ public void setTick(long tick) { this.tick = tick; } ! /** * Get the timestamp for this event in MIDI ticks. ! * * @return the timestamp for this even in MIDI ticks */ public long getTick() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiFileFormat.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiFileFormat.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiFileFormat.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiFileFormat.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * Describe a MIDI file, including specifics about its type, length and timing. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * Describe a MIDI file, including specifics about its type, length and timing. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** package javax.sound.midi; *** 48,91 **** public class MidiFileFormat { /** ! * The MIDI file type. This is either 0, 1 or 2. ! * * Type 0 files contain a single track and represents a single song * performance. * Type 1 may contain multiple tracks for a single song performance. * Type 2 may contain multiple tracks, each representing a * separate song performance. ! * * See http://en.wikipedia.org/wiki/MIDI#MIDI_file_formats for more * information. */ protected int type; /** ! * The division type of the MIDI file. */ protected float divisionType; ! /** * The timing resolution of the MIDI file. */ protected int resolution; ! /** ! * The size of the MIDI file in bytes. */ protected int byteLength = UNKNOWN_LENGTH; ! /** ! * The length of the MIDI file in microseconds. */ protected long microsecondLength = UNKNOWN_LENGTH; ! /** * A special value indicating an unknown quantity. */ public static final int UNKNOWN_LENGTH = -1; // FIXME is this really -1? ! /** * Create a MidiFileFormat object from the given parameters. * --- 48,91 ---- public class MidiFileFormat { /** ! * The MIDI file type. This is either 0, 1 or 2. ! * * Type 0 files contain a single track and represents a single song * performance. * Type 1 may contain multiple tracks for a single song performance. * Type 2 may contain multiple tracks, each representing a * separate song performance. ! * * See http://en.wikipedia.org/wiki/MIDI#MIDI_file_formats for more * information. */ protected int type; /** ! * The division type of the MIDI file. */ protected float divisionType; ! /** * The timing resolution of the MIDI file. */ protected int resolution; ! /** ! * The size of the MIDI file in bytes. */ protected int byteLength = UNKNOWN_LENGTH; ! /** ! * The length of the MIDI file in microseconds. */ protected long microsecondLength = UNKNOWN_LENGTH; ! /** * A special value indicating an unknown quantity. */ public static final int UNKNOWN_LENGTH = -1; // FIXME is this really -1? ! /** * Create a MidiFileFormat object from the given parameters. * *************** public class MidiFileFormat *** 95,102 **** * @param bytes the MIDI file size in bytes * @param microseconds the MIDI file length in microseconds */ ! public MidiFileFormat(int type, float divisionType, ! int resolution, int bytes, long microseconds) { this.type = type; this.divisionType = divisionType; --- 95,102 ---- * @param bytes the MIDI file size in bytes * @param microseconds the MIDI file length in microseconds */ ! public MidiFileFormat(int type, float divisionType, ! int resolution, int bytes, long microseconds) { this.type = type; this.divisionType = divisionType; *************** public class MidiFileFormat *** 104,144 **** this.byteLength = bytes; this.microsecondLength = microseconds; } ! /** * Get the MIDI file type (0, 1, or 2). ! * * @return the MIDI file type (0, 1, or 2) */ public int getType() { return type; } ! /** * Get the file division type. ! * * @return the file divison type */ public float getDivisionType() { ! return divisionType; } ! /** * Get the file timing resolution. If the division type is PPQ, then this * is value represents ticks per beat, otherwise it's ticks per frame (SMPTE). ! * * @return the timing resolution in ticks per beat or ticks per frame */ public int getResolution() { return resolution; } ! /** * Get the file length in bytes. ! * * @return the file length in bytes or UNKNOWN_LENGTH */ public int getByteLength() --- 104,144 ---- this.byteLength = bytes; this.microsecondLength = microseconds; } ! /** * Get the MIDI file type (0, 1, or 2). ! * * @return the MIDI file type (0, 1, or 2) */ public int getType() { return type; } ! /** * Get the file division type. ! * * @return the file divison type */ public float getDivisionType() { ! return divisionType; } ! /** * Get the file timing resolution. If the division type is PPQ, then this * is value represents ticks per beat, otherwise it's ticks per frame (SMPTE). ! * * @return the timing resolution in ticks per beat or ticks per frame */ public int getResolution() { return resolution; } ! /** * Get the file length in bytes. ! * * @return the file length in bytes or UNKNOWN_LENGTH */ public int getByteLength() *************** public class MidiFileFormat *** 148,154 **** /** * Get the file length in microseconds. ! * * @return the file length in microseconds or UNKNOWN_LENGTH */ public long getMicrosecondLength() --- 148,154 ---- /** * Get the file length in microseconds. ! * * @return the file length in microseconds or UNKNOWN_LENGTH */ public long getMicrosecondLength() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiMessage.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiMessage.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiMessage.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiMessage.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * The base class for all MIDI messages. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * The base class for all MIDI messages. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public abstract class MidiMessage implem *** 51,65 **** * MIDI message data. */ protected byte data[]; ! /** * The total length of the MIDI message. */ protected int length; ! /** * MidiMessage contructor. ! * * @param data a valid MIDI message */ protected MidiMessage(byte[] data) --- 51,65 ---- * MIDI message data. */ protected byte data[]; ! /** * The total length of the MIDI message. */ protected int length; ! /** * MidiMessage contructor. ! * * @param data a valid MIDI message */ protected MidiMessage(byte[] data) *************** public abstract class MidiMessage implem *** 67,125 **** this.data = data; this.length = data.length; } ! /** * Set the complete MIDI message. ! * * @param data The complete MIDI message. * @param length The length of the MIDI message. * @throws InvalidMidiDataException Thrown when the MIDI message is invalid. */ ! protected void setMessage(byte[] data, int length) throws InvalidMidiDataException { this.data = new byte[length]; System.arraycopy(data, 0, this.data, 0, length); this.length = length; } ! /** * Get the MIDI message data. ! * * @return an array containing the MIDI message data */ public byte[] getMessage() { byte copy[] = new byte[length]; System.arraycopy(data, 0, copy, 0, length); ! return copy; } ! /** * Get the status byte of the MIDI message (as an int) ! * * @return the status byte of the MIDI message (as an int), or zero if the message length is zero. */ public int getStatus() { if (length > 0) return (data[0] & 0xff); ! else return 0; } ! /** * Get the length of the MIDI message. ! * * @return the length of the MIDI messsage */ public int getLength() { return length; } ! /* Create a clone of this object. ! * * @see java.lang.Object#clone() */ public abstract Object clone(); --- 67,125 ---- this.data = data; this.length = data.length; } ! /** * Set the complete MIDI message. ! * * @param data The complete MIDI message. * @param length The length of the MIDI message. * @throws InvalidMidiDataException Thrown when the MIDI message is invalid. */ ! protected void setMessage(byte[] data, int length) throws InvalidMidiDataException { this.data = new byte[length]; System.arraycopy(data, 0, this.data, 0, length); this.length = length; } ! /** * Get the MIDI message data. ! * * @return an array containing the MIDI message data */ public byte[] getMessage() { byte copy[] = new byte[length]; System.arraycopy(data, 0, copy, 0, length); ! return copy; } ! /** * Get the status byte of the MIDI message (as an int) ! * * @return the status byte of the MIDI message (as an int), or zero if the message length is zero. */ public int getStatus() { if (length > 0) return (data[0] & 0xff); ! else return 0; } ! /** * Get the length of the MIDI message. ! * * @return the length of the MIDI messsage */ public int getLength() { return length; } ! /* Create a clone of this object. ! * * @see java.lang.Object#clone() */ public abstract Object clone(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiSystem.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiSystem.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiSystem.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiSystem.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.spi.MidiFileWrit *** 55,63 **** import javax.sound.midi.spi.SoundbankReader; /** ! * MidiSystem provides access to the computer system's MIDI resources, * as well as utility routines for reading MIDI files and more. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 55,63 ---- import javax.sound.midi.spi.SoundbankReader; /** ! * MidiSystem provides access to the computer system's MIDI resources, * as well as utility routines for reading MIDI files and more. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public class MidiSystem *** 71,85 **** /** * Get an array of all available MIDI devices. ! * * @return a possibly empty array of all available MIDI devices */ public static MidiDevice.Info[] getMidiDeviceInfo() { ! Iterator deviceProviders = ! ServiceFactory.lookupProviders(MidiDeviceProvider.class); List infoList = new ArrayList(); ! while (deviceProviders.hasNext()) { MidiDeviceProvider provider = (MidiDeviceProvider) deviceProviders.next(); --- 71,85 ---- /** * Get an array of all available MIDI devices. ! * * @return a possibly empty array of all available MIDI devices */ public static MidiDevice.Info[] getMidiDeviceInfo() { ! Iterator deviceProviders = ! ServiceFactory.lookupProviders(MidiDeviceProvider.class); List infoList = new ArrayList(); ! while (deviceProviders.hasNext()) { MidiDeviceProvider provider = (MidiDeviceProvider) deviceProviders.next(); *************** public class MidiSystem *** 87,130 **** for (int i = infos.length; i > 0; ) infoList.add(infos[--i]); } ! ! return (MidiDevice.Info[]) ! infoList.toArray(new MidiDevice.Info[infoList.size()]); } ! /** * Get the specified MIDI device. ! * * @param info a description of the device we're looking for * @return the requested MIDI device * @throws MidiUnavailableException if no MIDI devices are configured or found * @throws IllegalArgumentException if the device described by info is not found */ ! public static MidiDevice getMidiDevice(MidiDevice.Info info) throws MidiUnavailableException { ! Iterator deviceProviders = ! ServiceFactory.lookupProviders(MidiDeviceProvider.class); ! if (! deviceProviders.hasNext()) throw new MidiUnavailableException("No MIDI device providers available."); ! do { ! MidiDeviceProvider provider = (MidiDeviceProvider) deviceProviders.next(); if (provider.isDeviceSupported(info)) return provider.getDevice(info); } while (deviceProviders.hasNext()); ! ! throw new IllegalArgumentException("MIDI device " ! + info + " not available."); } ! /** * Get the default Receiver instance. This just picks the first one * it finds for now. ! * * @return the default Receiver instance * @throws MidiUnavailableException if no Receiver is found */ --- 87,130 ---- for (int i = infos.length; i > 0; ) infoList.add(infos[--i]); } ! ! return (MidiDevice.Info[]) ! infoList.toArray(new MidiDevice.Info[infoList.size()]); } ! /** * Get the specified MIDI device. ! * * @param info a description of the device we're looking for * @return the requested MIDI device * @throws MidiUnavailableException if no MIDI devices are configured or found * @throws IllegalArgumentException if the device described by info is not found */ ! public static MidiDevice getMidiDevice(MidiDevice.Info info) throws MidiUnavailableException { ! Iterator deviceProviders = ! ServiceFactory.lookupProviders(MidiDeviceProvider.class); ! if (! deviceProviders.hasNext()) throw new MidiUnavailableException("No MIDI device providers available."); ! do { ! MidiDeviceProvider provider = (MidiDeviceProvider) deviceProviders.next(); if (provider.isDeviceSupported(info)) return provider.getDevice(info); } while (deviceProviders.hasNext()); ! ! throw new IllegalArgumentException("MIDI device " ! + info + " not available."); } ! /** * Get the default Receiver instance. This just picks the first one * it finds for now. ! * * @return the default Receiver instance * @throws MidiUnavailableException if no Receiver is found */ *************** public class MidiSystem *** 145,151 **** /** * Get the default Transmitter instance. This just picks the first one * it finds for now. ! * * @return the default Transmitter instance * @throws MidiUnavailableException if no Transmitter is found */ --- 145,151 ---- /** * Get the default Transmitter instance. This just picks the first one * it finds for now. ! * * @return the default Transmitter instance * @throws MidiUnavailableException if no Transmitter is found */ *************** public class MidiSystem *** 166,172 **** /** * Get the default Synthesizer instance. This just picks the first one * it finds for now. ! * * @return the default Synthesizer instance * @throws MidiUnavailableException if no Synthesizer is found */ --- 166,172 ---- /** * Get the default Synthesizer instance. This just picks the first one * it finds for now. ! * * @return the default Synthesizer instance * @throws MidiUnavailableException if no Synthesizer is found */ *************** public class MidiSystem *** 183,193 **** } throw new MidiUnavailableException("No Synthesizer device available"); } ! /** * Get the default Sequencer instance. This just picks the first one * it finds for now. ! * * @return the default Sequencer instance * @throws MidiUnavailableException if no Sequencer is found */ --- 183,193 ---- } throw new MidiUnavailableException("No Synthesizer device available"); } ! /** * Get the default Sequencer instance. This just picks the first one * it finds for now. ! * * @return the default Sequencer instance * @throws MidiUnavailableException if no Sequencer is found */ *************** public class MidiSystem *** 203,213 **** return (Sequencer) device; } throw new MidiUnavailableException("No Sequencer device available"); ! } ! /** * Read a Soundbank object from the given stream. ! * * @param stream the stream from which to read the Soundbank * @return the Soundbank object * @throws InvalidMidiDataException if we were unable to read the soundbank --- 203,213 ---- return (Sequencer) device; } throw new MidiUnavailableException("No Sequencer device available"); ! } ! /** * Read a Soundbank object from the given stream. ! * * @param stream the stream from which to read the Soundbank * @return the Soundbank object * @throws InvalidMidiDataException if we were unable to read the soundbank *************** public class MidiSystem *** 229,235 **** /** * Read a Soundbank object from the given url. ! * * @param url the url from which to read the Soundbank * @return the Soundbank object * @throws InvalidMidiDataException if we were unable to read the soundbank --- 229,235 ---- /** * Read a Soundbank object from the given url. ! * * @param url the url from which to read the Soundbank * @return the Soundbank object * @throws InvalidMidiDataException if we were unable to read the soundbank *************** public class MidiSystem *** 251,257 **** /** * Read a Soundbank object from the given file. ! * * @param file the file from which to read the Soundbank * @return the Soundbank object * @throws InvalidMidiDataException if we were unable to read the soundbank --- 251,257 ---- /** * Read a Soundbank object from the given file. ! * * @param file the file from which to read the Soundbank * @return the Soundbank object * @throws InvalidMidiDataException if we were unable to read the soundbank *************** public class MidiSystem *** 268,280 **** if (sb != null) return sb; } ! throw new InvalidMidiDataException("Cannot read soundbank from file " ! + file); ! } /** * Read a MidiFileFormat object from the given stream. ! * * @param stream the stream from which to read the MidiFileFormat * @return the MidiFileFormat object * @throws InvalidMidiDataException if we were unable to read the MidiFileFormat --- 268,280 ---- if (sb != null) return sb; } ! throw new InvalidMidiDataException("Cannot read soundbank from file " ! + file); ! } /** * Read a MidiFileFormat object from the given stream. ! * * @param stream the stream from which to read the MidiFileFormat * @return the MidiFileFormat object * @throws InvalidMidiDataException if we were unable to read the MidiFileFormat *************** public class MidiSystem *** 296,302 **** /** * Read a MidiFileFormat object from the given url. ! * * @param url the url from which to read the MidiFileFormat * @return the MidiFileFormat object * @throws InvalidMidiDataException if we were unable to read the MidiFileFormat --- 296,302 ---- /** * Read a MidiFileFormat object from the given url. ! * * @param url the url from which to read the MidiFileFormat * @return the MidiFileFormat object * @throws InvalidMidiDataException if we were unable to read the MidiFileFormat *************** public class MidiSystem *** 318,324 **** /** * Read a MidiFileFormat object from the given file. ! * * @param file the file from which to read the MidiFileFormat * @return the MidiFileFormat object * @throws InvalidMidiDataException if we were unable to read the MidiFileFormat --- 318,324 ---- /** * Read a MidiFileFormat object from the given file. ! * * @param file the file from which to read the MidiFileFormat * @return the MidiFileFormat object * @throws InvalidMidiDataException if we were unable to read the MidiFileFormat *************** public class MidiSystem *** 335,347 **** if (sb != null) return sb; } ! throw new InvalidMidiDataException("Can't read MidiFileFormat from file " + file); ! } ! /** * Read a Sequence object from the given stream. ! * * @param stream the stream from which to read the Sequence * @return the Sequence object * @throws InvalidMidiDataException if we were unable to read the Sequence --- 335,347 ---- if (sb != null) return sb; } ! throw new InvalidMidiDataException("Can't read MidiFileFormat from file " + file); ! } ! /** * Read a Sequence object from the given stream. ! * * @param stream the stream from which to read the Sequence * @return the Sequence object * @throws InvalidMidiDataException if we were unable to read the Sequence *************** public class MidiSystem *** 363,369 **** /** * Read a Sequence object from the given url. ! * * @param url the url from which to read the Sequence * @return the Sequence object * @throws InvalidMidiDataException if we were unable to read the Sequence --- 363,369 ---- /** * Read a Sequence object from the given url. ! * * @param url the url from which to read the Sequence * @return the Sequence object * @throws InvalidMidiDataException if we were unable to read the Sequence *************** public class MidiSystem *** 385,391 **** /** * Read a Sequence object from the given file. ! * * @param file the file from which to read the Sequence * @return the Sequence object * @throws InvalidMidiDataException if we were unable to read the Sequence --- 385,391 ---- /** * Read a Sequence object from the given file. ! * * @param file the file from which to read the Sequence * @return the Sequence object * @throws InvalidMidiDataException if we were unable to read the Sequence *************** public class MidiSystem *** 402,414 **** if (sq != null) return sq; } ! throw new InvalidMidiDataException("Can't read Sequence from file " + file); ! } ! /** * Return an array of supported MIDI file types on this system. ! * * @return the array of supported MIDI file types */ public static int[] getMidiFileTypes() --- 402,414 ---- if (sq != null) return sq; } ! throw new InvalidMidiDataException("Can't read Sequence from file " + file); ! } ! /** * Return an array of supported MIDI file types on this system. ! * * @return the array of supported MIDI file types */ public static int[] getMidiFileTypes() *************** public class MidiSystem *** 443,449 **** /** * Return true if the system supports writing files of type fileType. ! * * @param fileType the MIDI file type we want to write * @return true if we can write fileType files, false otherwise */ --- 443,449 ---- /** * Return true if the system supports writing files of type fileType. ! * * @param fileType the MIDI file type we want to write * @return true if we can write fileType files, false otherwise */ *************** public class MidiSystem *** 453,469 **** while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); ! if (fw.isFileTypeSupported(fileType)) return true; } return false; } ! /** * Return an array of supported MIDI file types on this system * for the given sequnce. ! * * @param sequence the sequnce to write * @return the array of supported MIDI file types */ --- 453,469 ---- while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); ! if (fw.isFileTypeSupported(fileType)) return true; } return false; } ! /** * Return an array of supported MIDI file types on this system * for the given sequnce. ! * * @param sequence the sequnce to write * @return the array of supported MIDI file types */ *************** public class MidiSystem *** 496,506 **** } return result; } ! /** * Return true if the system supports writing files of type fileType * for the given sequence. ! * * @param fileType the MIDI file type we want to write * @param sequence the Sequence we want to write * @return true if we can write fileType files for sequence, false otherwise --- 496,506 ---- } return result; } ! /** * Return true if the system supports writing files of type fileType * for the given sequence. ! * * @param fileType the MIDI file type we want to write * @param sequence the Sequence we want to write * @return true if we can write fileType files for sequence, false otherwise *************** public class MidiSystem *** 511,517 **** while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); ! if (fw.isFileTypeSupported(fileType, sequence)) return true; } --- 511,517 ---- while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); ! if (fw.isFileTypeSupported(fileType, sequence)) return true; } *************** public class MidiSystem *** 520,526 **** /** * Write a sequence to an output stream using a specific MIDI file format. ! * * @param in the sequence to write * @param fileType the MIDI file format to use * @param out the output stream to write to --- 520,526 ---- /** * Write a sequence to an output stream using a specific MIDI file format. ! * * @param in the sequence to write * @param fileType the MIDI file format to use * @param out the output stream to write to *************** public class MidiSystem *** 535,551 **** while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); ! if (fw.isFileTypeSupported(fileType, in)) return fw.write(in, fileType, out); } ! throw new IllegalArgumentException("File type " ! + fileType + " is not supported"); } /** * Write a sequence to a file using a specific MIDI file format. ! * * @param in the sequence to write * @param fileType the MIDI file format to use * @param out the file to write to --- 535,551 ---- while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); ! if (fw.isFileTypeSupported(fileType, in)) return fw.write(in, fileType, out); } ! throw new IllegalArgumentException("File type " ! + fileType + " is not supported"); } /** * Write a sequence to a file using a specific MIDI file format. ! * * @param in the sequence to write * @param fileType the MIDI file format to use * @param out the file to write to *************** public class MidiSystem *** 560,571 **** while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); ! if (fw.isFileTypeSupported(fileType, in)) return fw.write(in, fileType, out); } ! throw new IllegalArgumentException("File type " ! + fileType + " is not supported"); } } - --- 560,570 ---- while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); ! if (fw.isFileTypeSupported(fileType, in)) return fw.write(in, fileType, out); } ! throw new IllegalArgumentException("File type " ! + fileType + " is not supported"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiUnavailableException.java gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiUnavailableException.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/MidiUnavailableException.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/MidiUnavailableException.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * This exception is thrown when MIDI resources are not available. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * This exception is thrown when MIDI resources are not available. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** package javax.sound.midi; *** 48,54 **** public class MidiUnavailableException extends Exception { private static final long serialVersionUID = 6093809578628944323L; ! /** * Create a MidiUnavailableException. */ --- 48,54 ---- public class MidiUnavailableException extends Exception { private static final long serialVersionUID = 6093809578628944323L; ! /** * Create a MidiUnavailableException. */ *************** public class MidiUnavailableException ex *** 59,65 **** /** * Create an MidiUnavailableException object. ! * * @param s the exception message string */ public MidiUnavailableException(String s) --- 59,65 ---- /** * Create an MidiUnavailableException object. ! * * @param s the exception message string */ public MidiUnavailableException(String s) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Patch.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Patch.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Patch.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Patch.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * A Patch describes where an Instrument is loaded on a Synthesizer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * A Patch describes where an Instrument is loaded on a Synthesizer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public class Patch *** 50,60 **** // Private data describing the patch private int bank = 0; private int program = 0; ! /** * Create a Patch object, specifying the bank and program in which this Patch * is located. ! * * @param bank the bank in which this Patch is located * @param program the program in which this Patch is located */ --- 50,60 ---- // Private data describing the patch private int bank = 0; private int program = 0; ! /** * Create a Patch object, specifying the bank and program in which this Patch * is located. ! * * @param bank the bank in which this Patch is located * @param program the program in which this Patch is located */ *************** public class Patch *** 63,82 **** this.bank = bank; this.program = program; } ! /** * Get the bank in which this Patch is located. ! * * @return the bank in which this Patch is located */ public int getBank() { return bank; } ! /** * Get the program in which this Patch is located. ! * * @return the program in which this Patch is located */ public int getProgram() --- 63,82 ---- this.bank = bank; this.program = program; } ! /** * Get the bank in which this Patch is located. ! * * @return the bank in which this Patch is located */ public int getBank() { return bank; } ! /** * Get the program in which this Patch is located. ! * * @return the program in which this Patch is located */ public int getProgram() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Receiver.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Receiver.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Receiver.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Receiver.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 41,47 **** /** * This interface describes the methods required by objects receiving MIDI * messages. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 41,47 ---- /** * This interface describes the methods required by objects receiving MIDI * messages. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public interface Receiver *** 51,64 **** /** * Send a MIDI message and timestamp. Some receivers don't support * timestamps, in which case timeStamp should be -1. ! * * @param message the MIDI message to send * @param timeStamp time timestamp for this message in microseconds (or -1) * @throws IllegalStateException if the receiver is closed */ public void send(MidiMessage message, long timeStamp) throws IllegalStateException; ! /** * Close this receiver, possibly freeing system resources. */ --- 51,64 ---- /** * Send a MIDI message and timestamp. Some receivers don't support * timestamps, in which case timeStamp should be -1. ! * * @param message the MIDI message to send * @param timeStamp time timestamp for this message in microseconds (or -1) * @throws IllegalStateException if the receiver is closed */ public void send(MidiMessage message, long timeStamp) throws IllegalStateException; ! /** * Close this receiver, possibly freeing system resources. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Sequence.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Sequence.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Sequence.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Sequence.java Tue Jan 11 19:46:05 2011 *************** import java.util.Iterator; *** 42,50 **** import java.util.Vector; /** ! * Objects of this type represent sequences of MIDI messages that can be * played back by a Sequencer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 42,50 ---- import java.util.Vector; /** ! * Objects of this type represent sequences of MIDI messages that can be * played back by a Sequencer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** import java.util.Vector; *** 52,120 **** public class Sequence { /** ! * The timing division type for this sequence (PPQ or SMPTE*) */ protected float divisionType; ! /** ! * The timing resolution in ticks/beat or ticks/frame, depending on the ! * division type. */ protected int resolution; ! /** ! * The MIDI tracks used by this sequence. */ protected Vector tracks; ! /** * Tempo-based timing. Resolution is specified in ticks per beat. */ public static final float PPQ = 0.0f; ! /** * 24 frames/second timing. Resolution is specific in ticks per frame. */ public static final float SMPTE_24 = 24.0f; ! /** * 25 frames/second timing. Resolution is specific in ticks per frame. */ public static final float SMPTE_25 = 25.0f; ! /** * 30 frames/second timing. Resolution is specific in ticks per frame. */ public static final float SMPTE_30 = 30.0f; ! /** * 29.97 frames/second timing. Resolution is specific in ticks per frame. */ public static final float SMPTE_30DROP = 29.97f; ! // Private helper class private void init(float divisionType, int resolution, int numTracks) throws InvalidMidiDataException { if (divisionType != PPQ ! && divisionType != SMPTE_24 && divisionType != SMPTE_25 && divisionType != SMPTE_30 && divisionType != SMPTE_30DROP) ! throw new InvalidMidiDataException("Invalid division type (" + divisionType + ")"); this.divisionType = divisionType; this.resolution = resolution; ! tracks = new Vector(numTracks); while (numTracks > 0) tracks.set(--numTracks, new Track()); } ! /** * Create a MIDI sequence object with no initial tracks. ! * * @param divisionType the division type (must be one of PPQ or SMPTE_*) * @param resolution the timing resolution * @throws InvalidMidiDataException if the division type is invalid --- 52,120 ---- public class Sequence { /** ! * The timing division type for this sequence (PPQ or SMPTE*) */ protected float divisionType; ! /** ! * The timing resolution in ticks/beat or ticks/frame, depending on the ! * division type. */ protected int resolution; ! /** ! * The MIDI tracks used by this sequence. */ protected Vector tracks; ! /** * Tempo-based timing. Resolution is specified in ticks per beat. */ public static final float PPQ = 0.0f; ! /** * 24 frames/second timing. Resolution is specific in ticks per frame. */ public static final float SMPTE_24 = 24.0f; ! /** * 25 frames/second timing. Resolution is specific in ticks per frame. */ public static final float SMPTE_25 = 25.0f; ! /** * 30 frames/second timing. Resolution is specific in ticks per frame. */ public static final float SMPTE_30 = 30.0f; ! /** * 29.97 frames/second timing. Resolution is specific in ticks per frame. */ public static final float SMPTE_30DROP = 29.97f; ! // Private helper class private void init(float divisionType, int resolution, int numTracks) throws InvalidMidiDataException { if (divisionType != PPQ ! && divisionType != SMPTE_24 && divisionType != SMPTE_25 && divisionType != SMPTE_30 && divisionType != SMPTE_30DROP) ! throw new InvalidMidiDataException("Invalid division type (" + divisionType + ")"); this.divisionType = divisionType; this.resolution = resolution; ! tracks = new Vector(numTracks); while (numTracks > 0) tracks.set(--numTracks, new Track()); } ! /** * Create a MIDI sequence object with no initial tracks. ! * * @param divisionType the division type (must be one of PPQ or SMPTE_*) * @param resolution the timing resolution * @throws InvalidMidiDataException if the division type is invalid *************** public class Sequence *** 127,133 **** /** * Create a MIDI seqence object. ! * * @param divisionType the division type (must be one of PPQ or SMPTE_*) * @param resolution the timing resolution * @param numTracks the number of initial tracks --- 127,133 ---- /** * Create a MIDI seqence object. ! * * @param divisionType the division type (must be one of PPQ or SMPTE_*) * @param resolution the timing resolution * @param numTracks the number of initial tracks *************** public class Sequence *** 138,167 **** { init(divisionType, resolution, 0); } ! /** * The division type of this sequence. ! * * @return division type of this sequence */ public float getDivisionType() { return divisionType; } ! /** * The timing resolution for this sequence, relative to the division type. ! * * @return the timing resolution for this sequence */ public int getResolution() { return resolution; } ! /** * Create a new empty MIDI track and add it to this sequence. ! * * @return the newly create MIDI track */ public Track createTrack() --- 138,167 ---- { init(divisionType, resolution, 0); } ! /** * The division type of this sequence. ! * * @return division type of this sequence */ public float getDivisionType() { return divisionType; } ! /** * The timing resolution for this sequence, relative to the division type. ! * * @return the timing resolution for this sequence */ public int getResolution() { return resolution; } ! /** * Create a new empty MIDI track and add it to this sequence. ! * * @return the newly create MIDI track */ public Track createTrack() *************** public class Sequence *** 170,179 **** tracks.add(track); return track; } ! /** * Remove the specified MIDI track from this sequence. ! * * @param track the track to remove * @return true if track was removed and false othewise */ --- 170,179 ---- tracks.add(track); return track; } ! /** * Remove the specified MIDI track from this sequence. ! * * @param track the track to remove * @return true if track was removed and false othewise */ *************** public class Sequence *** 181,213 **** { return tracks.remove(track); } ! /** * Get an array of MIDI tracks used in this sequence. ! * * @return a possibly empty array of tracks */ public Track[] getTracks() { return tracks.toArray(new Track[tracks.size()]); } ! /** * The length of this sequence in microseconds. ! * * @return the length of this sequence in microseconds */ public long getMicrosecondLength() { long tickLength = getTickLength(); ! if (divisionType == PPQ) { // FIXME // How can this possible be computed? PPQ is pulses per quarter-note, // which is dependent on the tempo of the Sequencer. ! throw new ! UnsupportedOperationException("Can't compute PPQ based lengths yet"); } else { --- 181,213 ---- { return tracks.remove(track); } ! /** * Get an array of MIDI tracks used in this sequence. ! * * @return a possibly empty array of tracks */ public Track[] getTracks() { return tracks.toArray(new Track[tracks.size()]); } ! /** * The length of this sequence in microseconds. ! * * @return the length of this sequence in microseconds */ public long getMicrosecondLength() { long tickLength = getTickLength(); ! if (divisionType == PPQ) { // FIXME // How can this possible be computed? PPQ is pulses per quarter-note, // which is dependent on the tempo of the Sequencer. ! throw new ! UnsupportedOperationException("Can't compute PPQ based lengths yet"); } else { *************** public class Sequence *** 215,224 **** return (long) ((tickLength * 1000000) / (divisionType * resolution)); } } ! /** * The length of this sequence in MIDI ticks. ! * * @return the length of this sequence in MIDI ticks */ public long getTickLength() --- 215,224 ---- return (long) ((tickLength * 1000000) / (divisionType * resolution)); } } ! /** * The length of this sequence in MIDI ticks. ! * * @return the length of this sequence in MIDI ticks */ public long getTickLength() *************** public class Sequence *** 234,248 **** } return length; } ! /** * Get an array of patches used in this sequence. ! * * @return an array of patches used in this sequence */ public Patch[] getPatchList() { ! // FIXE: not quite sure how to do this yet. throw new UnsupportedOperationException("Can't get patch list yet"); } } --- 234,248 ---- } return length; } ! /** * Get an array of patches used in this sequence. ! * * @return an array of patches used in this sequence */ public Patch[] getPatchList() { ! // FIXE: not quite sure how to do this yet. throw new UnsupportedOperationException("Can't get patch list yet"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Sequencer.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Sequencer.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Sequencer.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Sequencer.java Tue Jan 11 19:46:05 2011 *************** import java.io.InputStream; *** 45,51 **** * A Sequencer object plays MIDI sequences described as Sequence objects. * This class provides methods for loading and unloading sequences, as well * as basic transport controls. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 45,51 ---- * A Sequencer object plays MIDI sequences described as Sequence objects. * This class provides methods for loading and unloading sequences, as well * as basic transport controls. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public interface Sequencer extends MidiD *** 54,99 **** { /** * Set the Sequence object for this sequencer. ! * * @param seq the Sequence to process * @throws InvalidMidiDataException if the sequence is invalid for any reason */ public void setSequence(Sequence seq) throws InvalidMidiDataException; ! /** * Set the sequence for this sequencer. istream reads on a valid MIDI file. ! * * @param istream an input stream for a valid MIDI file * @throws IOException if an I/O exception happens * @throws InvalidMidiDataException if the MIDI file contains bad data */ ! public void setSequence(InputStream istream) throws IOException, InvalidMidiDataException; ! /** * Get the current sequence object for this sequencer. ! * * @return the current sequence object. May be null. */ public Sequence getSequence(); ! /** * Start playback of the current sequence. */ public void start(); ! /** * Stop playback of the current sequence. */ public void stop(); ! /** * Returns true if the sequence is playing. ! * * @return true if the sequence is playing and false otherwise */ public boolean isRunning(); ! /** * Start playback and record of MIDI events. * Any tracks enabled for recording will have their events replaced. --- 54,99 ---- { /** * Set the Sequence object for this sequencer. ! * * @param seq the Sequence to process * @throws InvalidMidiDataException if the sequence is invalid for any reason */ public void setSequence(Sequence seq) throws InvalidMidiDataException; ! /** * Set the sequence for this sequencer. istream reads on a valid MIDI file. ! * * @param istream an input stream for a valid MIDI file * @throws IOException if an I/O exception happens * @throws InvalidMidiDataException if the MIDI file contains bad data */ ! public void setSequence(InputStream istream) throws IOException, InvalidMidiDataException; ! /** * Get the current sequence object for this sequencer. ! * * @return the current sequence object. May be null. */ public Sequence getSequence(); ! /** * Start playback of the current sequence. */ public void start(); ! /** * Stop playback of the current sequence. */ public void stop(); ! /** * Returns true if the sequence is playing. ! * * @return true if the sequence is playing and false otherwise */ public boolean isRunning(); ! /** * Start playback and record of MIDI events. * Any tracks enabled for recording will have their events replaced. *************** public interface Sequencer extends MidiD *** 101,214 **** * will be sent to the sequencer's transmitter. */ public void startRecording(); ! /** * Stop recording, although continue playing. */ public void stopRecording(); ! /** * Returns true if sequence is recording. ! * * @return true if the sequence is recording and false otherwise */ public boolean isRecording(); ! /** * Enable recording for a specific track using data from a specific channel. ! * ! * @param track the track to enable for recording * @param channel the channel from which to record */ public void recordEnable(Track track, int channel); ! /** * Disable recording for a specific track. ! * * @param track the track to disable recording for */ public void recordDisable(Track track); ! /** * Get the current tempo in beats per minute. ! * * @return the current tempo in beats per minute */ public float getTempoInBPM(); ! /** * Sets the current tempo in beats per minute. ! * * @param bpm the new tempo in bears per minutes */ public void setTempoInBPM(float bpm); ! /** * Get the current tempo in microseconds per quarter note. ! * * @return the current tempo in microseconds per quarter note. */ public float getTempoInMPQ(); ! /** * Sets the current tempo in microseconds per quarter note. ! * * @param mpq the new tempo in microseconds per quarter note. */ public void setTempoInMPQ(float mpq); ! /** * Set a scaling factor for the playback tempo, which is 1.0 by default. ! * * @param factor the new tempo scaling factor */ public void setTempoFactor(float factor); ! /** * Get the current scaling factor for the playback tempo. ! * ! * @return the current tempo scaling factor */ public float getTempoFactor(); ! /** * Get the length of the current sequence in MIDI ticks. ! * * @return the length of the current sequence in MIDI ticks */ public long getTickLength(); ! /** * Get the current playback position of the sequencer in MIDI ticks. ! * * @return the current playback position of the sequencer in MIDI ticks */ public long getTickPosition(); ! /** * Set the current playback position of the sequencer in MIDI ticks. ! * * @param tick the new playback position of the sequencer in MIDI ticks */ public void setTickPosition(long tick); /** * Get the length of the current sequence in microseconds. ! * * @return the length of the current sequence in microseconds */ public long getMicrosecondLength(); ! /** * Get the current playback position of the sequencer in microseconds. ! * * @return the current playback position of the sequencer in microseconds */ public long getMicrosecondPosition(); ! /** * Set the current playback position of the sequencer in microseconds. ! * * @param microsecond the new playback position of the sequencer in microseconds */ public void setMicrosecondPosition(long microsecond); --- 101,214 ---- * will be sent to the sequencer's transmitter. */ public void startRecording(); ! /** * Stop recording, although continue playing. */ public void stopRecording(); ! /** * Returns true if sequence is recording. ! * * @return true if the sequence is recording and false otherwise */ public boolean isRecording(); ! /** * Enable recording for a specific track using data from a specific channel. ! * ! * @param track the track to enable for recording * @param channel the channel from which to record */ public void recordEnable(Track track, int channel); ! /** * Disable recording for a specific track. ! * * @param track the track to disable recording for */ public void recordDisable(Track track); ! /** * Get the current tempo in beats per minute. ! * * @return the current tempo in beats per minute */ public float getTempoInBPM(); ! /** * Sets the current tempo in beats per minute. ! * * @param bpm the new tempo in bears per minutes */ public void setTempoInBPM(float bpm); ! /** * Get the current tempo in microseconds per quarter note. ! * * @return the current tempo in microseconds per quarter note. */ public float getTempoInMPQ(); ! /** * Sets the current tempo in microseconds per quarter note. ! * * @param mpq the new tempo in microseconds per quarter note. */ public void setTempoInMPQ(float mpq); ! /** * Set a scaling factor for the playback tempo, which is 1.0 by default. ! * * @param factor the new tempo scaling factor */ public void setTempoFactor(float factor); ! /** * Get the current scaling factor for the playback tempo. ! * ! * @return the current tempo scaling factor */ public float getTempoFactor(); ! /** * Get the length of the current sequence in MIDI ticks. ! * * @return the length of the current sequence in MIDI ticks */ public long getTickLength(); ! /** * Get the current playback position of the sequencer in MIDI ticks. ! * * @return the current playback position of the sequencer in MIDI ticks */ public long getTickPosition(); ! /** * Set the current playback position of the sequencer in MIDI ticks. ! * * @param tick the new playback position of the sequencer in MIDI ticks */ public void setTickPosition(long tick); /** * Get the length of the current sequence in microseconds. ! * * @return the length of the current sequence in microseconds */ public long getMicrosecondLength(); ! /** * Get the current playback position of the sequencer in microseconds. ! * * @return the current playback position of the sequencer in microseconds */ public long getMicrosecondPosition(); ! /** * Set the current playback position of the sequencer in microseconds. ! * * @param microsecond the new playback position of the sequencer in microseconds */ public void setMicrosecondPosition(long microsecond); *************** public interface Sequencer extends MidiD *** 217,341 **** * Set the source of timing information. sync must be found in the array * returned by getMasterSyncModes(). * FIXME: What happens if it isn't? ! * * @param sync the new source of timing information */ public void setMasterSyncMode(SyncMode sync); ! /** * Get the source of timing information. ! * * @return the current source of timing information */ public SyncMode getMasterSyncMode(); ! /** * Get an array of timing sources supported by this sequencer. ! * * @return an array of timing sources supported by this sequencer */ public SyncMode[] getMasterSyncModes(); ! /** * Set the slave synchronization mode for this sequencer. sync must be * found in the array returned by getSlaveSyncModes(). * FIXME: What happens if it isn't? ! * * @param sync the new slave sync mode for this sequencer */ public void setSlaveSyncMode(SyncMode sync); ! /** * Get the current slave synchronization mode. ! * * @return the current slave synchronization mode */ public SyncMode getSlaveSyncMode(); ! /** * Get an array of slave sync modes supported by this sequencer. ! * * @return an array of slave sync modes supported by this sequencer */ public SyncMode[] getSlaveSyncModes(); ! /** * Sets the mute state for a specific track. ! * * @param track the track to modify * @param mute the new mute state */ public void setTrackMute(int track, boolean mute); ! /** * Get the mute state of a specific track. ! * * @param track the track to query * @return the mute state for track */ public boolean getTrackMute(int track); ! /** * Sets the solo state for a specific track. ! * * @param track the track to modify * @param solo the new solo state */ public void setTrackSolo(int track, boolean solo); ! /** * Get the solo state for a specific track. ! * * @param track the track to query * @return the solo state for track */ public boolean getTrackSolo(int track); ! /** * Add a meta event listening object to this sequencer. It will receive * notification whenever the sequencer processes a meta event. * A listener may fail to get added if this sequencer doesn't support * meta events. ! * * @param listener the listener to add * @return true if listener was added, false othewise */ public boolean addMetaEventListener(MetaEventListener listener); ! /** * Remove a meta event listener from this sequencer. ! * * @param listener the listener to remove */ public void removeMetaEventListener(MetaEventListener listener); ! /** ! * Add a controller event listening object to this sequencer. It will ! * receive notification whenever the sequencer processes a controller * event for a specified controller number.. ! * * @param listener the listener to add * @param controllers the conroller numbers to listen to * @return the controller numbers being listened to */ ! public int[] addControllerEventListener(ControllerEventListener listener, int controllers[]); ! /** * Remove a controller listener from this sequencer for the specified * controller numbers. ! * * @param listener the listener to remove * @param controllers the controllers to unlisten * @return the controller numbers being unlistened */ public int[] removeControllerEventListener(ControllerEventListener listener, int controllers[]); ! /** * A SyncMode object represents the mechanism by which a MIDI sequencer * synchronizes time with a master or slave device. ! * * @author green@redhat.com * */ --- 217,341 ---- * Set the source of timing information. sync must be found in the array * returned by getMasterSyncModes(). * FIXME: What happens if it isn't? ! * * @param sync the new source of timing information */ public void setMasterSyncMode(SyncMode sync); ! /** * Get the source of timing information. ! * * @return the current source of timing information */ public SyncMode getMasterSyncMode(); ! /** * Get an array of timing sources supported by this sequencer. ! * * @return an array of timing sources supported by this sequencer */ public SyncMode[] getMasterSyncModes(); ! /** * Set the slave synchronization mode for this sequencer. sync must be * found in the array returned by getSlaveSyncModes(). * FIXME: What happens if it isn't? ! * * @param sync the new slave sync mode for this sequencer */ public void setSlaveSyncMode(SyncMode sync); ! /** * Get the current slave synchronization mode. ! * * @return the current slave synchronization mode */ public SyncMode getSlaveSyncMode(); ! /** * Get an array of slave sync modes supported by this sequencer. ! * * @return an array of slave sync modes supported by this sequencer */ public SyncMode[] getSlaveSyncModes(); ! /** * Sets the mute state for a specific track. ! * * @param track the track to modify * @param mute the new mute state */ public void setTrackMute(int track, boolean mute); ! /** * Get the mute state of a specific track. ! * * @param track the track to query * @return the mute state for track */ public boolean getTrackMute(int track); ! /** * Sets the solo state for a specific track. ! * * @param track the track to modify * @param solo the new solo state */ public void setTrackSolo(int track, boolean solo); ! /** * Get the solo state for a specific track. ! * * @param track the track to query * @return the solo state for track */ public boolean getTrackSolo(int track); ! /** * Add a meta event listening object to this sequencer. It will receive * notification whenever the sequencer processes a meta event. * A listener may fail to get added if this sequencer doesn't support * meta events. ! * * @param listener the listener to add * @return true if listener was added, false othewise */ public boolean addMetaEventListener(MetaEventListener listener); ! /** * Remove a meta event listener from this sequencer. ! * * @param listener the listener to remove */ public void removeMetaEventListener(MetaEventListener listener); ! /** ! * Add a controller event listening object to this sequencer. It will ! * receive notification whenever the sequencer processes a controller * event for a specified controller number.. ! * * @param listener the listener to add * @param controllers the conroller numbers to listen to * @return the controller numbers being listened to */ ! public int[] addControllerEventListener(ControllerEventListener listener, int controllers[]); ! /** * Remove a controller listener from this sequencer for the specified * controller numbers. ! * * @param listener the listener to remove * @param controllers the controllers to unlisten * @return the controller numbers being unlistened */ public int[] removeControllerEventListener(ControllerEventListener listener, int controllers[]); ! /** * A SyncMode object represents the mechanism by which a MIDI sequencer * synchronizes time with a master or slave device. ! * * @author green@redhat.com * */ *************** public interface Sequencer extends MidiD *** 345,362 **** * A master sync mode indicating the use of an internal sequencer clock. */ public static final SyncMode INTERNAL_CLOCK = new SyncMode("Internal Clock"); ! /** * A master or slave sync mode indicating the use of MIDI clock messages. */ public static final SyncMode MIDI_SYNC = new SyncMode("MIDI Sync"); ! /** ! * A master or slave sync mode indicating the use of MIDI Time Code * messages. */ public static final SyncMode MIDI_TIME_CODE = new SyncMode("MIDI Time Code"); ! /** * A slave sync mode indicating that no timing info will be transmitted. */ --- 345,362 ---- * A master sync mode indicating the use of an internal sequencer clock. */ public static final SyncMode INTERNAL_CLOCK = new SyncMode("Internal Clock"); ! /** * A master or slave sync mode indicating the use of MIDI clock messages. */ public static final SyncMode MIDI_SYNC = new SyncMode("MIDI Sync"); ! /** ! * A master or slave sync mode indicating the use of MIDI Time Code * messages. */ public static final SyncMode MIDI_TIME_CODE = new SyncMode("MIDI Time Code"); ! /** * A slave sync mode indicating that no timing info will be transmitted. */ *************** public interface Sequencer extends MidiD *** 364,370 **** // The name private String name; ! /** * Create a new SyncMode object * @param name the SyncMode name --- 364,370 ---- // The name private String name; ! /** * Create a new SyncMode object * @param name the SyncMode name *************** public interface Sequencer extends MidiD *** 373,379 **** { this.name = name; } ! /** * SyncMode objects are only equal when identical. */ --- 373,379 ---- { this.name = name; } ! /** * SyncMode objects are only equal when identical. */ *************** public interface Sequencer extends MidiD *** 381,387 **** { return super.equals(o); } ! /** * SyncMode objects use the Object hashCode. */ --- 381,387 ---- { return super.equals(o); } ! /** * SyncMode objects use the Object hashCode. */ *************** public interface Sequencer extends MidiD *** 389,395 **** { return super.hashCode(); } ! /** * Use the SyncMode name as the string representation. * @see java.lang.Object#toString() --- 389,395 ---- { return super.hashCode(); } ! /** * Use the SyncMode name as the string representation. * @see java.lang.Object#toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/ShortMessage.java gcc-4.6.0/libjava/classpath/javax/sound/midi/ShortMessage.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/ShortMessage.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/ShortMessage.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * A short MIDI message that is no longer than 3 bytes long. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * A short MIDI message that is no longer than 3 bytes long. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public class ShortMessage extends MidiMe *** 51,141 **** * Status byte for Time Code message. */ public static final int MIDI_TIME_CODE = 0xF1; ! /** ! * Status byte for Song Position Pointer message. */ public static final int SONG_POSITION_POINTER = 0xF2; ! /** * Status byte for Song Select message. */ public static final int SONG_SELECT = 0xF3; ! /** ! * Status byte for Tune Request message. */ public static final int TUNE_REQUEST = 0xF6; ! /** * Status byte for End Of Exclusive message. */ public static final int END_OF_EXCLUSIVE = 0xF7; ! /** ! * Status byte for Timing Clock message. */ public static final int TIMING_CLOCK = 0xF8; ! /** ! * Status byte for Start message. */ public static final int START = 0xFA; ! /** ! * Status byte for Continue message. */ ! public static final int CONTINUE = 0xFB; ! /** ! * Status byte for Stop message. */ ! public static final int STOP = 0xFC; ! /** * Status byte for Active Sensing message. */ ! public static final int ACTIVE_SENSING = 0xFE; ! /** * Status byte for System Reset message. */ ! public static final int SYSTEM_RESET = 0xFF; ! /** * Status nibble for Note Off message. */ ! public static final int NOTE_OFF = 0x80; ! /** * Status nibble for Note On message. */ ! public static final int NOTE_ON = 0x90; ! /** * Status nibble for Poly Pressure message. */ ! public static final int POLY_PRESSURE = 0xA0; ! /** * Status nibble for Control Change message. */ ! public static final int CONTROL_CHANGE = 0xB0; ! /** * Status nibble for Program Change message. */ ! public static final int PROGRAM_CHANGE = 0xC0; ! /** * Statue nibble for Channel Pressure message. */ public static final int CHANNEL_PRESSURE = 0xD0; ! /** * Status nibble for Pitch Bend message. */ ! public static final int PITCH_BEND = 0xE0; // Create and initialize a default, arbitrary message. private static byte[] defaultMessage; --- 51,141 ---- * Status byte for Time Code message. */ public static final int MIDI_TIME_CODE = 0xF1; ! /** ! * Status byte for Song Position Pointer message. */ public static final int SONG_POSITION_POINTER = 0xF2; ! /** * Status byte for Song Select message. */ public static final int SONG_SELECT = 0xF3; ! /** ! * Status byte for Tune Request message. */ public static final int TUNE_REQUEST = 0xF6; ! /** * Status byte for End Of Exclusive message. */ public static final int END_OF_EXCLUSIVE = 0xF7; ! /** ! * Status byte for Timing Clock message. */ public static final int TIMING_CLOCK = 0xF8; ! /** ! * Status byte for Start message. */ public static final int START = 0xFA; ! /** ! * Status byte for Continue message. */ ! public static final int CONTINUE = 0xFB; ! /** ! * Status byte for Stop message. */ ! public static final int STOP = 0xFC; ! /** * Status byte for Active Sensing message. */ ! public static final int ACTIVE_SENSING = 0xFE; ! /** * Status byte for System Reset message. */ ! public static final int SYSTEM_RESET = 0xFF; ! /** * Status nibble for Note Off message. */ ! public static final int NOTE_OFF = 0x80; ! /** * Status nibble for Note On message. */ ! public static final int NOTE_ON = 0x90; ! /** * Status nibble for Poly Pressure message. */ ! public static final int POLY_PRESSURE = 0xA0; ! /** * Status nibble for Control Change message. */ ! public static final int CONTROL_CHANGE = 0xB0; ! /** * Status nibble for Program Change message. */ ! public static final int PROGRAM_CHANGE = 0xC0; ! /** * Statue nibble for Channel Pressure message. */ public static final int CHANNEL_PRESSURE = 0xD0; ! /** * Status nibble for Pitch Bend message. */ ! public static final int PITCH_BEND = 0xE0; // Create and initialize a default, arbitrary message. private static byte[] defaultMessage; *************** public class ShortMessage extends MidiMe *** 144,168 **** defaultMessage = new byte[1]; defaultMessage[0] = (byte) STOP; } ! /** * Create a short MIDI message. ! * * The spec requires that this represent a valid MIDI message, but doesn't * specify what it should be. We've chosen the STOP message for our * implementation. */ public ShortMessage() { ! this(defaultMessage); } ! /** * Create a short MIDI message. ! * * The data argument should be a valid MIDI message. Unfortunately the spec * does not allow us to throw an InvalidMidiDataException if data is invalid. ! * * @param data the message data */ protected ShortMessage(byte[] data) --- 144,168 ---- defaultMessage = new byte[1]; defaultMessage[0] = (byte) STOP; } ! /** * Create a short MIDI message. ! * * The spec requires that this represent a valid MIDI message, but doesn't * specify what it should be. We've chosen the STOP message for our * implementation. */ public ShortMessage() { ! this(defaultMessage); } ! /** * Create a short MIDI message. ! * * The data argument should be a valid MIDI message. Unfortunately the spec * does not allow us to throw an InvalidMidiDataException if data is invalid. ! * * @param data the message data */ protected ShortMessage(byte[] data) *************** public class ShortMessage extends MidiMe *** 171,178 **** } /** ! * Set the MIDI message. ! * * @param status the status byte for this message * @param data1 the first data byte for this message * @param data2 the second data byte for this message --- 171,178 ---- } /** ! * Set the MIDI message. ! * * @param status the status byte for this message * @param data1 the first data byte for this message * @param data2 the second data byte for this message *************** public class ShortMessage extends MidiMe *** 189,207 **** if (length > 1) { if (data1 < 0 || data1 > 127) ! throw new InvalidMidiDataException("data1 (" + data1 + ") must be between 0 and 127."); data[1] = (byte) data1; if (length > 2) { if (data2 < 0 || data2 > 127) ! throw new InvalidMidiDataException("data2 (" + data2 + ") must be between 0 and 127."); data[2] = (byte) data2; } } } ! public void setMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException { --- 189,207 ---- if (length > 1) { if (data1 < 0 || data1 > 127) ! throw new InvalidMidiDataException("data1 (" + data1 + ") must be between 0 and 127."); data[1] = (byte) data1; if (length > 2) { if (data2 < 0 || data2 > 127) ! throw new InvalidMidiDataException("data2 (" + data2 + ") must be between 0 and 127."); data[2] = (byte) data2; } } } ! public void setMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException { *************** public class ShortMessage extends MidiMe *** 209,218 **** // It currently assumes command and channel are valid values. setMessage(command + channel, data1, data2); } ! /** * Set the MIDI message to one that requires no data bytes. ! * * @param status the status byte for this message * @throws InvalidMidiDataException if status is bad, or requires data */ --- 209,218 ---- // It currently assumes command and channel are valid values. setMessage(command + channel, data1, data2); } ! /** * Set the MIDI message to one that requires no data bytes. ! * * @param status the status byte for this message * @throws InvalidMidiDataException if status is bad, or requires data */ *************** public class ShortMessage extends MidiMe *** 227,236 **** setMessage(status, 0, 0); } ! /** * Return the number of data bytes needed for a given MIDI status byte. ! * * @param status the status byte for a short MIDI message * @return the number of data bytes needed for this status byte * @throws InvalidMidiDataException if status is an invalid status byte --- 227,236 ---- setMessage(status, 0, 0); } ! /** * Return the number of data bytes needed for a given MIDI status byte. ! * * @param status the status byte for a short MIDI message * @return the number of data bytes needed for this status byte * @throws InvalidMidiDataException if status is an invalid status byte *************** public class ShortMessage extends MidiMe *** 238,264 **** protected final int getDataLength(int status) throws InvalidMidiDataException { int originalStatus = status; ! if ((status & 0xF0) != 0xF0) status &= 0xF0; ! switch (status) { ! case NOTE_OFF: ! case NOTE_ON: ! case POLY_PRESSURE: ! case CONTROL_CHANGE: case PITCH_BEND: case SONG_POSITION_POINTER: return 2; ! case PROGRAM_CHANGE: case CHANNEL_PRESSURE: case SONG_SELECT: case 0xF5: // FIXME: unofficial bus select. Not in spec?? return 1; ! ! case TUNE_REQUEST: case END_OF_EXCLUSIVE: case TIMING_CLOCK: case START: --- 238,264 ---- protected final int getDataLength(int status) throws InvalidMidiDataException { int originalStatus = status; ! if ((status & 0xF0) != 0xF0) status &= 0xF0; ! switch (status) { ! case NOTE_OFF: ! case NOTE_ON: ! case POLY_PRESSURE: ! case CONTROL_CHANGE: case PITCH_BEND: case SONG_POSITION_POINTER: return 2; ! case PROGRAM_CHANGE: case CHANNEL_PRESSURE: case SONG_SELECT: case 0xF5: // FIXME: unofficial bus select. Not in spec?? return 1; ! ! case TUNE_REQUEST: case END_OF_EXCLUSIVE: case TIMING_CLOCK: case START: *************** public class ShortMessage extends MidiMe *** 267,305 **** case ACTIVE_SENSING: case SYSTEM_RESET: return 0; ! default: ! throw new InvalidMidiDataException("Invalid status: 0x" + Integer.toHexString(originalStatus)); } } ! /** ! * Get the channel information from this MIDI message, assuming it is a * MIDI channel message. ! * * @return the MIDI channel for this message */ public int getChannel() { return data[0] & 0x0F; } ! /** * Get the command nibble from this MIDI message, assuming it is a MIDI * channel message. ! * * @return the MIDI command for this message */ public int getCommand() { return data[0] & 0xF0; } ! /** ! * Get the first data byte from this message, assuming it exists, and * zero otherwise. ! * * @return the first data byte or zero if none exists. */ public int getData1() --- 267,305 ---- case ACTIVE_SENSING: case SYSTEM_RESET: return 0; ! default: ! throw new InvalidMidiDataException("Invalid status: 0x" + Integer.toHexString(originalStatus)); } } ! /** ! * Get the channel information from this MIDI message, assuming it is a * MIDI channel message. ! * * @return the MIDI channel for this message */ public int getChannel() { return data[0] & 0x0F; } ! /** * Get the command nibble from this MIDI message, assuming it is a MIDI * channel message. ! * * @return the MIDI command for this message */ public int getCommand() { return data[0] & 0xF0; } ! /** ! * Get the first data byte from this message, assuming it exists, and * zero otherwise. ! * * @return the first data byte or zero if none exists. */ public int getData1() *************** public class ShortMessage extends MidiMe *** 309,319 **** else return 0; } ! /** ! * Get the second data byte from this message, assuming it exists, and * zero otherwise. ! * * @return the second date byte or zero if none exists. */ public int getData2() --- 309,319 ---- else return 0; } ! /** ! * Get the second data byte from this message, assuming it exists, and * zero otherwise. ! * * @return the second date byte or zero if none exists. */ public int getData2() *************** public class ShortMessage extends MidiMe *** 323,329 **** else return 0; } ! /* Create a deep-copy clone of this object. * @see java.lang.Object#clone() */ --- 323,329 ---- else return 0; } ! /* Create a deep-copy clone of this object. * @see java.lang.Object#clone() */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Soundbank.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Soundbank.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Soundbank.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Soundbank.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 39,47 **** package javax.sound.midi; /** ! * A Soundbank is a container for instruments which may be loaded into * a Synthesizer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 39,47 ---- package javax.sound.midi; /** ! * A Soundbank is a container for instruments which may be loaded into * a Synthesizer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public interface Soundbank *** 50,99 **** { /** * Get the sound bank name. ! * * @return the sound bank name */ String getName(); ! /** * Get the sound bank version. ! * * @return the sound bank version */ String getVersion(); /** * Get the sound bank vendor. ! * * @return the sound bank vendor */ String getVendor(); ! ! /** * Get the sound bank description. ! * * @return the sound bank description */ String getDescription(); ! /** * Get an array of non-Instrument resources in this sound bank. ! * * @return an array of non-instrument resources in this sound bank */ SoundbankResource[] getResources(); ! /** * Get an array of Instruments in this sound bank. ! * * @return an array of instruments in this sound bank */ Instrument[] getInstruments(); ! /** * Get the Instrument for the given Patch. ! * * @param patch the Patch to search for * @return the Instrument corresponding to patch */ --- 50,99 ---- { /** * Get the sound bank name. ! * * @return the sound bank name */ String getName(); ! /** * Get the sound bank version. ! * * @return the sound bank version */ String getVersion(); /** * Get the sound bank vendor. ! * * @return the sound bank vendor */ String getVendor(); ! ! /** * Get the sound bank description. ! * * @return the sound bank description */ String getDescription(); ! /** * Get an array of non-Instrument resources in this sound bank. ! * * @return an array of non-instrument resources in this sound bank */ SoundbankResource[] getResources(); ! /** * Get an array of Instruments in this sound bank. ! * * @return an array of instruments in this sound bank */ Instrument[] getInstruments(); ! /** * Get the Instrument for the given Patch. ! * * @param patch the Patch to search for * @return the Instrument corresponding to patch */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/SoundbankResource.java gcc-4.6.0/libjava/classpath/javax/sound/midi/SoundbankResource.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/SoundbankResource.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/SoundbankResource.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * SoundbankResource objects represent audio data stored in a sound bank. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * SoundbankResource objects represent audio data stored in a sound bank. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public abstract class SoundbankResource *** 50,103 **** private final Soundbank soundbank; private final String name; private final Class dataClass; ! /** * Create a SoundbankResource object. ! * * @param soundbank the soundbank object containing this resource * @param name the name of the resource * @param dataClass the class used to represent the audio data */ protected SoundbankResource(Soundbank soundbank, String name, Class dataClass) { ! this.soundbank = soundbank; this.name = name; this.dataClass = dataClass; } ! /** * Get the sound bank containing this resource. ! * * @return the sound bank in which this resource resides */ public Soundbank getSoundbank() { return soundbank; } ! /** * Get the name of this resource. ! * * @return the name of this resource */ public String getName() { return name; } ! /** * Get the class used to represent the audio data for this resource. ! * * @return the class used to represent the audio data for this resource */ public Class getDataClass() { return dataClass; } ! /** * Get the audio data for this resource. ! * * @return the audio data object for this resource */ public abstract Object getData(); --- 50,103 ---- private final Soundbank soundbank; private final String name; private final Class dataClass; ! /** * Create a SoundbankResource object. ! * * @param soundbank the soundbank object containing this resource * @param name the name of the resource * @param dataClass the class used to represent the audio data */ protected SoundbankResource(Soundbank soundbank, String name, Class dataClass) { ! this.soundbank = soundbank; this.name = name; this.dataClass = dataClass; } ! /** * Get the sound bank containing this resource. ! * * @return the sound bank in which this resource resides */ public Soundbank getSoundbank() { return soundbank; } ! /** * Get the name of this resource. ! * * @return the name of this resource */ public String getName() { return name; } ! /** * Get the class used to represent the audio data for this resource. ! * * @return the class used to represent the audio data for this resource */ public Class getDataClass() { return dataClass; } ! /** * Get the audio data for this resource. ! * * @return the audio data object for this resource */ public abstract Object getData(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Synthesizer.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Synthesizer.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Synthesizer.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Synthesizer.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * Interface for MIDI audio synthesizer devices. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * Interface for MIDI audio synthesizer devices. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public interface Synthesizer extends Mid *** 49,170 **** { /** * Get the maximum number of notes that the synth can play at once. ! * * @return the maximum number of notes that the synth can play at once */ public int getMaxPolyphony(); ! /** * The processing latency for this synth in microseconds. ! * * @return the processing latency for this synth in microseconds */ public long getLatency(); ! /** * Get the set of MIDI channels controlled by this synth. ! * * @return an array of MIDI channels controlled by this synth */ public MidiChannel[] getChannels(); ! /** * Get the current status for the voices produced by this synth. ! * * @return an array of VoiceStatus objects, getMaxPolyphony() in length */ public VoiceStatus[] getVoiceStatus(); ! /** * Returns true is this synth is capable of loading soundbank. ! * * @param soundbank the Soundbank to examine * @return true if soundbank can be loaded, false otherwise */ public boolean isSoundbankSupported(Soundbank soundbank); ! /** * Load an instrument into this synth. The instrument must be part of a * supported soundbank. ! * * @param instrument the Instrument to load * @return true if the instrument was loaded and false otherwise * @throws IllegalArgumentException if this synth doesn't support instrument */ public boolean loadInstrument(Instrument instrument); ! /** * Unload an instrument from this synth. ! * * @param instrument the Instrument to unload * @throws IllegalArgumentException if this synth doesn't support instrument */ public void unloadInstrument(Instrument instrument); ! /** * Move an intrument from one place to another. The instrument at the * target location is unloaded. ! * * @param from the instrument source * @param to the instrument target * @return if from was remapped * @throws IllegalArgumentException */ public boolean remapInstrument(Instrument from, Instrument to); ! /** * Get the default Soundbank for this synth. Return null if there is no * default. ! * * @return the default Soundbank for this synth, possibly null. */ public Soundbank getDefaultSoundbank(); ! /** * Get an array containing all instruments in this synthesizer. ! * * @return an array containing all instruments in this synthesizer */ public Instrument[] getAvailableInstruments(); ! /** * Get an array containing all instruments loaded in this synthesizer. ! * * @return an array containing all instruments loaded in this synthesizer */ public Instrument[] getLoadedInstruments(); ! /** * Load all soundbank instruments into this synthesizer. ! * * @param soundbank the Soundbank from which to load instruments * @return true if all instruments were loaded, false othewise * @throws IllegalArgumentException if the soundbank isn't supported by this */ public boolean loadAllInstruments(Soundbank soundbank); ! /** * Unload all soundbank instruments from this synthesizer. ! * * @param soundbank the Soundbank containing the instruments to unload * @throws IllegalArgumentException if the soundbank isn't supported by this */ public void unloadAllInstruments(Soundbank soundbank); ! /** ! * Load a subset of soundbank instruments into this synthesizer. The * subset is defined by an array of Patch objects. ! * * @param soundbank the Soundbank from which to load instruments * @param patchList the array of patches identifying instruments to load * @return true if instruments were loaded, false otherwise * @throws IllegalArgumentException if the soundbank isn't supported by this */ public boolean loadInstruments(Soundbank soundbank, Patch[] patchList); ! /** * Unload a subset of soundbank instruments from this synthesizer. ! * * @param soundbank the Soundbank containing the instruments to unload * @param patchList the array of patches identifying instruments to unload * @throws IllegalArgumentException if the soundbank isn't supported by this --- 49,170 ---- { /** * Get the maximum number of notes that the synth can play at once. ! * * @return the maximum number of notes that the synth can play at once */ public int getMaxPolyphony(); ! /** * The processing latency for this synth in microseconds. ! * * @return the processing latency for this synth in microseconds */ public long getLatency(); ! /** * Get the set of MIDI channels controlled by this synth. ! * * @return an array of MIDI channels controlled by this synth */ public MidiChannel[] getChannels(); ! /** * Get the current status for the voices produced by this synth. ! * * @return an array of VoiceStatus objects, getMaxPolyphony() in length */ public VoiceStatus[] getVoiceStatus(); ! /** * Returns true is this synth is capable of loading soundbank. ! * * @param soundbank the Soundbank to examine * @return true if soundbank can be loaded, false otherwise */ public boolean isSoundbankSupported(Soundbank soundbank); ! /** * Load an instrument into this synth. The instrument must be part of a * supported soundbank. ! * * @param instrument the Instrument to load * @return true if the instrument was loaded and false otherwise * @throws IllegalArgumentException if this synth doesn't support instrument */ public boolean loadInstrument(Instrument instrument); ! /** * Unload an instrument from this synth. ! * * @param instrument the Instrument to unload * @throws IllegalArgumentException if this synth doesn't support instrument */ public void unloadInstrument(Instrument instrument); ! /** * Move an intrument from one place to another. The instrument at the * target location is unloaded. ! * * @param from the instrument source * @param to the instrument target * @return if from was remapped * @throws IllegalArgumentException */ public boolean remapInstrument(Instrument from, Instrument to); ! /** * Get the default Soundbank for this synth. Return null if there is no * default. ! * * @return the default Soundbank for this synth, possibly null. */ public Soundbank getDefaultSoundbank(); ! /** * Get an array containing all instruments in this synthesizer. ! * * @return an array containing all instruments in this synthesizer */ public Instrument[] getAvailableInstruments(); ! /** * Get an array containing all instruments loaded in this synthesizer. ! * * @return an array containing all instruments loaded in this synthesizer */ public Instrument[] getLoadedInstruments(); ! /** * Load all soundbank instruments into this synthesizer. ! * * @param soundbank the Soundbank from which to load instruments * @return true if all instruments were loaded, false othewise * @throws IllegalArgumentException if the soundbank isn't supported by this */ public boolean loadAllInstruments(Soundbank soundbank); ! /** * Unload all soundbank instruments from this synthesizer. ! * * @param soundbank the Soundbank containing the instruments to unload * @throws IllegalArgumentException if the soundbank isn't supported by this */ public void unloadAllInstruments(Soundbank soundbank); ! /** ! * Load a subset of soundbank instruments into this synthesizer. The * subset is defined by an array of Patch objects. ! * * @param soundbank the Soundbank from which to load instruments * @param patchList the array of patches identifying instruments to load * @return true if instruments were loaded, false otherwise * @throws IllegalArgumentException if the soundbank isn't supported by this */ public boolean loadInstruments(Soundbank soundbank, Patch[] patchList); ! /** * Unload a subset of soundbank instruments from this synthesizer. ! * * @param soundbank the Soundbank containing the instruments to unload * @param patchList the array of patches identifying instruments to unload * @throws IllegalArgumentException if the soundbank isn't supported by this diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/SysexMessage.java gcc-4.6.0/libjava/classpath/javax/sound/midi/SysexMessage.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/SysexMessage.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/SysexMessage.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * A system exclusive MIDI message. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * A system exclusive MIDI message. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** package javax.sound.midi; *** 48,61 **** public class SysexMessage extends MidiMessage { public static final int SYSTEM_EXCLUSIVE = 0xF0; ! public static final int SPECIAL_SYSTEM_EXCLUSIVE = 0xF7; ! /** * Create a default valid system exclusive message. ! * * The official specs don't specify what message is to be ! * created. Our implementation creates an empty * system exclusive message. */ public SysexMessage() --- 48,61 ---- public class SysexMessage extends MidiMessage { public static final int SYSTEM_EXCLUSIVE = 0xF0; ! public static final int SPECIAL_SYSTEM_EXCLUSIVE = 0xF7; ! /** * Create a default valid system exclusive message. ! * * The official specs don't specify what message is to be ! * created. Our implementation creates an empty * system exclusive message. */ public SysexMessage() *************** public class SysexMessage extends MidiMe *** 64,83 **** data[0] = (byte) SYSTEM_EXCLUSIVE; data[1] = (byte) ShortMessage.END_OF_EXCLUSIVE; } ! /** * Create a SysexMessage object. * @param data a complete system exclusive message */ protected SysexMessage(byte[] data) { ! super(data); } ! /** * Set the sysex message. The first data byte (status) must be * 0xF0 or 0xF7. ! * * @param data the message data * @param length the length of the message data * @throws InvalidMidiDataException if the status byte is not 0xF0 or 0xF7 --- 64,83 ---- data[0] = (byte) SYSTEM_EXCLUSIVE; data[1] = (byte) ShortMessage.END_OF_EXCLUSIVE; } ! /** * Create a SysexMessage object. * @param data a complete system exclusive message */ protected SysexMessage(byte[] data) { ! super(data); } ! /** * Set the sysex message. The first data byte (status) must be * 0xF0 or 0xF7. ! * * @param data the message data * @param length the length of the message data * @throws InvalidMidiDataException if the status byte is not 0xF0 or 0xF7 *************** public class SysexMessage extends MidiMe *** 95,101 **** /** * Set the sysex message. status must be either 0xF0 or 0xF7. ! * * @param status the sysex statys byte (0xF0 or 0xF7) * @param data the message data * @param length the length of the message data --- 95,101 ---- /** * Set the sysex message. status must be either 0xF0 or 0xF7. ! * * @param status the sysex statys byte (0xF0 or 0xF7) * @param data the message data * @param length the length of the message data *************** public class SysexMessage extends MidiMe *** 114,120 **** System.arraycopy(data, 0, this.data, 1, length); this.length = length+1; } ! /** * Get the data for this message, not including the status byte. * @return the message data, not including the status byte --- 114,120 ---- System.arraycopy(data, 0, this.data, 1, length); this.length = length+1; } ! /** * Get the data for this message, not including the status byte. * @return the message data, not including the status byte *************** public class SysexMessage extends MidiMe *** 125,131 **** System.arraycopy(data, 1, result, 0, length - 1); return result; } ! /* Create a deep-copy clone of this object. * @see java.lang.Object#clone() */ --- 125,131 ---- System.arraycopy(data, 1, result, 0, length - 1); return result; } ! /* Create a deep-copy clone of this object. * @see java.lang.Object#clone() */ *************** public class SysexMessage extends MidiMe *** 133,139 **** { byte message[] = new byte[length]; System.arraycopy(data, 0, message, 0, length); ! return new SysexMessage(message); } } - --- 133,138 ---- { byte message[] = new byte[length]; System.arraycopy(data, 0, message, 0, length); ! return new SysexMessage(message); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Track.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Track.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Track.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Track.java Tue Jan 11 19:46:05 2011 *************** import java.util.HashSet; *** 42,50 **** import java.util.Vector; /** ! * A Track contains a list of timecoded MIDI events for processing * by a Sequencer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 42,50 ---- import java.util.Vector; /** ! * A Track contains a list of timecoded MIDI events for processing * by a Sequencer. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** import java.util.Vector; *** 52,61 **** public class Track { /** ! * The list of MidiEvents for this track. */ Vector events = new Vector(); ! // A HashSet to speed processing private HashSet eventSet = new HashSet(); --- 52,61 ---- public class Track { /** ! * The list of MidiEvents for this track. */ Vector events = new Vector(); ! // A HashSet to speed processing private HashSet eventSet = new HashSet(); *************** public class Track *** 68,74 **** * Add a new event to this track. Specific events may only be added once. * The event will be inserted into the appropriate spot in the event list * based on its timecode. ! * * @param event the event to add * @return true if the event was added, false otherwise */ --- 68,74 ---- * Add a new event to this track. Specific events may only be added once. * The event will be inserted into the appropriate spot in the event list * based on its timecode. ! * * @param event the event to add * @return true if the event was added, false otherwise */ *************** public class Track *** 78,84 **** { if (eventSet.contains(event)) return false; ! eventSet.add(event); long targetTick = event.getTick(); --- 78,84 ---- { if (eventSet.contains(event)) return false; ! eventSet.add(event); long targetTick = event.getTick(); *************** public class Track *** 89,98 **** return true; } } ! /** * Remove an event from this track. ! * * @param event the event to remove * @return true if the event was removed, false otherwise */ --- 89,98 ---- return true; } } ! /** * Remove an event from this track. ! * * @param event the event to remove * @return true if the event was removed, false otherwise */ *************** public class Track *** 102,122 **** { if (! eventSet.remove(event)) return false; ! int i = events.indexOf(event); if (i >= 0) { events.remove(i); return true; } ! throw new InternalError("event in set but not list"); } } ! /** * Get an event idetified by its order index ! * * @param index the location of the event to get * @return the event at index * @throws ArrayIndexOutOfBoundsException if index is out of bounds --- 102,122 ---- { if (! eventSet.remove(event)) return false; ! int i = events.indexOf(event); if (i >= 0) { events.remove(i); return true; } ! throw new InternalError("event in set but not list"); } } ! /** * Get an event idetified by its order index ! * * @param index the location of the event to get * @return the event at index * @throws ArrayIndexOutOfBoundsException if index is out of bounds *************** public class Track *** 131,146 **** } catch (IndexOutOfBoundsException e) { ! throw (ArrayIndexOutOfBoundsException) new ArrayIndexOutOfBoundsException().initCause(e); } } } ! ! /** * Get the number events in this track. ! * * @return the number of events in this track */ public int size() --- 131,146 ---- } catch (IndexOutOfBoundsException e) { ! throw (ArrayIndexOutOfBoundsException) new ArrayIndexOutOfBoundsException().initCause(e); } } } ! ! /** * Get the number events in this track. ! * * @return the number of events in this track */ public int size() *************** public class Track *** 150,156 **** /** * Get the length of the track in MIDI ticks. ! * * @return the length of the track in MIDI ticks */ public long ticks() --- 150,156 ---- /** * Get the length of the track in MIDI ticks. ! * * @return the length of the track in MIDI ticks */ public long ticks() *************** public class Track *** 162,165 **** } } } - --- 162,164 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/Transmitter.java gcc-4.6.0/libjava/classpath/javax/sound/midi/Transmitter.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/Transmitter.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/Transmitter.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 41,47 **** /** * This interface specifies the methods required by objects which send * MIDI events to Receivers, including MIDI IN ports and Sequencers. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 41,47 ---- /** * This interface specifies the methods required by objects which send * MIDI events to Receivers, including MIDI IN ports and Sequencers. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public interface Transmitter *** 50,63 **** { /** * Set the Receiver to which MIDI events will be sent. ! * * @param receiver the Receiver to which MIDI events will be sent */ public void setReceiver(Receiver receiver); ! /** * Get the Receiver to which MIDI events will be sent (possibly null) ! * * @return the Receiver to which MIDI events will be sent (possibly null) */ public Receiver getReceiver(); --- 50,63 ---- { /** * Set the Receiver to which MIDI events will be sent. ! * * @param receiver the Receiver to which MIDI events will be sent */ public void setReceiver(Receiver receiver); ! /** * Get the Receiver to which MIDI events will be sent (possibly null) ! * * @return the Receiver to which MIDI events will be sent (possibly null) */ public Receiver getReceiver(); *************** public interface Transmitter *** 66,70 **** * Close this Transmitter, possibly releasing system resources. * FIXME: Does this mean the Receiver is closed? I think it must. */ ! public void close(); } --- 66,70 ---- * Close this Transmitter, possibly releasing system resources. * FIXME: Does this mean the Receiver is closed? I think it must. */ ! public void close(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/VoiceStatus.java gcc-4.6.0/libjava/classpath/javax/sound/midi/VoiceStatus.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/VoiceStatus.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/VoiceStatus.java Tue Jan 11 19:46:05 2011 *************** package javax.sound.midi; *** 40,46 **** /** * Objects of this type define the status of a Synthesizer voice. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 40,46 ---- /** * Objects of this type define the status of a Synthesizer voice. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public class VoiceStatus *** 51,77 **** * True if this voice is processing a MIDI note. */ public boolean active = false; ! /** * The channel for this voice when active. */ public int channel = 0; ! /** * The bank of the voice when active. */ public int bank = 0; ! /** * The program for this voice when active. */ public int program = 0; ! /** * The note for this voice when active. */ public int note = 0; ! /** * The volume for this voice when active. */ --- 51,77 ---- * True if this voice is processing a MIDI note. */ public boolean active = false; ! /** * The channel for this voice when active. */ public int channel = 0; ! /** * The bank of the voice when active. */ public int bank = 0; ! /** * The program for this voice when active. */ public int program = 0; ! /** * The note for this voice when active. */ public int note = 0; ! /** * The volume for this voice when active. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/spi/MidiDeviceProvider.java gcc-4.6.0/libjava/classpath/javax/sound/midi/spi/MidiDeviceProvider.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/spi/MidiDeviceProvider.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/spi/MidiDeviceProvider.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.*; *** 42,48 **** /** * The abstract base class for all MidiDeviceProvider types. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 42,48 ---- /** * The abstract base class for all MidiDeviceProvider types. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public abstract class MidiDeviceProvider *** 51,86 **** { /** * Returns true if this provider supports a specific MIDI device. ! * * @param info the MIDI device descriptor * @return true if this provider supports info */ public boolean isDeviceSupported(MidiDevice.Info info) { MidiDevice.Info infos[] = getDeviceInfo(); ! int i = infos.length; ! while (i > 0) { if (info.equals(infos[--i])) return true; } ! return false; } ! /** * Get the list descriptors for all MIDI devices supported by * this provider. ! * * @return an array of descriptors for all supported MIDI devices. */ public abstract MidiDevice.Info[] getDeviceInfo(); ! /** * Get the MidiDevice for the MIDI device described by info ! * * @param info the descriptor for the MIDI device we want * @return the MidiDevice we're looking for * @throws IllegalArgumentException is this provider doesn't support info --- 51,86 ---- { /** * Returns true if this provider supports a specific MIDI device. ! * * @param info the MIDI device descriptor * @return true if this provider supports info */ public boolean isDeviceSupported(MidiDevice.Info info) { MidiDevice.Info infos[] = getDeviceInfo(); ! int i = infos.length; ! while (i > 0) { if (info.equals(infos[--i])) return true; } ! return false; } ! /** * Get the list descriptors for all MIDI devices supported by * this provider. ! * * @return an array of descriptors for all supported MIDI devices. */ public abstract MidiDevice.Info[] getDeviceInfo(); ! /** * Get the MidiDevice for the MIDI device described by info ! * * @param info the descriptor for the MIDI device we want * @return the MidiDevice we're looking for * @throws IllegalArgumentException is this provider doesn't support info diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/spi/MidiFileReader.java gcc-4.6.0/libjava/classpath/javax/sound/midi/spi/MidiFileReader.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/spi/MidiFileReader.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/spi/MidiFileReader.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.Sequence; *** 50,56 **** /** * The MidiFileReader abstract class defines the methods to be provided * by a MIDI file reader. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 50,56 ---- /** * The MidiFileReader abstract class defines the methods to be provided * by a MIDI file reader. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public abstract class MidiFileReader *** 59,65 **** { /** * Read a MidiFileFormat from the given stream. ! * * @param stream the stream from which to read the MIDI data * @return the MidiFileFormat object * @throws InvalidMidiDataException if the stream refers to invalid data --- 59,65 ---- { /** * Read a MidiFileFormat from the given stream. ! * * @param stream the stream from which to read the MIDI data * @return the MidiFileFormat object * @throws InvalidMidiDataException if the stream refers to invalid data *************** public abstract class MidiFileReader *** 67,98 **** */ public abstract MidiFileFormat getMidiFileFormat(InputStream stream) throws InvalidMidiDataException, IOException; ! /** * Read a MidiFileFormat from the given stream. ! * * @param url the url from which to read the MIDI data * @return the MidiFileFormat object * @throws InvalidMidiDataException if the url refers to invalid data * @throws IOException if an I/O exception occurs while reading */ public abstract MidiFileFormat getMidiFileFormat(URL url) ! throws InvalidMidiDataException, IOException; /** * Read a MidiFileFormat from the given stream. ! * * @param file the file from which to read the MIDI data * @return the MidiFileFormat object * @throws InvalidMidiDataException if the file refers to invalid data * @throws IOException if an I/O exception occurs while reading */ public abstract MidiFileFormat getMidiFileFormat(File file) ! throws InvalidMidiDataException, IOException; ! /** * Read a Sequence from the given stream. ! * * @param stream the stream from which to read the MIDI data * @return the Sequence object * @throws InvalidMidiDataException if the stream refers to invalid data --- 67,98 ---- */ public abstract MidiFileFormat getMidiFileFormat(InputStream stream) throws InvalidMidiDataException, IOException; ! /** * Read a MidiFileFormat from the given stream. ! * * @param url the url from which to read the MIDI data * @return the MidiFileFormat object * @throws InvalidMidiDataException if the url refers to invalid data * @throws IOException if an I/O exception occurs while reading */ public abstract MidiFileFormat getMidiFileFormat(URL url) ! throws InvalidMidiDataException, IOException; /** * Read a MidiFileFormat from the given stream. ! * * @param file the file from which to read the MIDI data * @return the MidiFileFormat object * @throws InvalidMidiDataException if the file refers to invalid data * @throws IOException if an I/O exception occurs while reading */ public abstract MidiFileFormat getMidiFileFormat(File file) ! throws InvalidMidiDataException, IOException; ! /** * Read a Sequence from the given stream. ! * * @param stream the stream from which to read the MIDI data * @return the Sequence object * @throws InvalidMidiDataException if the stream refers to invalid data *************** public abstract class MidiFileReader *** 100,125 **** */ public abstract Sequence getSequence(InputStream stream) throws InvalidMidiDataException, IOException; ! /** * Read a Sequence from the given stream. ! * * @param url the url from which to read the MIDI data * @return the Sequence object * @throws InvalidMidiDataException if the url refers to invalid data * @throws IOException if an I/O exception occurs while reading */ public abstract Sequence getSequence(URL url) ! throws InvalidMidiDataException, IOException; /** * Read a Sequence from the given stream. ! * * @param file the file from which to read the MIDI data * @return the Sequence object * @throws InvalidMidiDataException if the file refers to invalid data * @throws IOException if an I/O exception occurs while reading */ public abstract Sequence getSequence(File file) ! throws InvalidMidiDataException, IOException; } --- 100,125 ---- */ public abstract Sequence getSequence(InputStream stream) throws InvalidMidiDataException, IOException; ! /** * Read a Sequence from the given stream. ! * * @param url the url from which to read the MIDI data * @return the Sequence object * @throws InvalidMidiDataException if the url refers to invalid data * @throws IOException if an I/O exception occurs while reading */ public abstract Sequence getSequence(URL url) ! throws InvalidMidiDataException, IOException; /** * Read a Sequence from the given stream. ! * * @param file the file from which to read the MIDI data * @return the Sequence object * @throws InvalidMidiDataException if the file refers to invalid data * @throws IOException if an I/O exception occurs while reading */ public abstract Sequence getSequence(File file) ! throws InvalidMidiDataException, IOException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/spi/MidiFileWriter.java gcc-4.6.0/libjava/classpath/javax/sound/midi/spi/MidiFileWriter.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/spi/MidiFileWriter.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/spi/MidiFileWriter.java Tue Jan 11 19:46:05 2011 *************** import java.io.OutputStream; *** 45,64 **** import javax.sound.midi.Sequence; /** ! * MidiFileWriter provides MIDI file writing services. ! * ! * There are three types of Standard MIDI File (SMF) formats, * represented by integers 0, 1, and 2. ! * * Type 0 files contain a single track and represents a single song * performance. * Type 1 may contain multiple tracks for a single song performance. * Type 2 may contain multiple tracks, each representing a * separate song performance. ! * * See http://en.wikipedia.org/wiki/MIDI#MIDI_file_formats for more * information. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 45,64 ---- import javax.sound.midi.Sequence; /** ! * MidiFileWriter provides MIDI file writing services. ! * ! * There are three types of Standard MIDI File (SMF) formats, * represented by integers 0, 1, and 2. ! * * Type 0 files contain a single track and represents a single song * performance. * Type 1 may contain multiple tracks for a single song performance. * Type 2 may contain multiple tracks, each representing a * separate song performance. ! * * See http://en.wikipedia.org/wiki/MIDI#MIDI_file_formats for more * information. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public abstract class MidiFileWriter *** 67,89 **** { /** * Return the MIDI file types supported by this writer. ! * * @return the MIDI file types, or an empty array */ public abstract int[] getMidiFileTypes(); ! /** * Return the MIDI file types supported by this writer for the * given sequence. ! * * @param sequence the sequence we'd like to write * @return the MIDI file types, or an empty array */ public abstract int[] getMidiFileTypes(Sequence sequence); ! /** * Returns true if this writer supports the given file type. ! * * @param fileType the file type we're asking about * @return true if this writer supports fileType, false otherwise */ --- 67,89 ---- { /** * Return the MIDI file types supported by this writer. ! * * @return the MIDI file types, or an empty array */ public abstract int[] getMidiFileTypes(); ! /** * Return the MIDI file types supported by this writer for the * given sequence. ! * * @param sequence the sequence we'd like to write * @return the MIDI file types, or an empty array */ public abstract int[] getMidiFileTypes(Sequence sequence); ! /** * Returns true if this writer supports the given file type. ! * * @param fileType the file type we're asking about * @return true if this writer supports fileType, false otherwise */ *************** public abstract class MidiFileWriter *** 101,107 **** /** * Returns true if this writer supports the given file type for the * given sequence. ! * * @param fileType the file type we're asking about * @param sequence the sequence we'd like to write * @return true if this writer supports fileType, false otherwise --- 101,107 ---- /** * Returns true if this writer supports the given file type for the * given sequence. ! * * @param fileType the file type we're asking about * @param sequence the sequence we'd like to write * @return true if this writer supports fileType, false otherwise *************** public abstract class MidiFileWriter *** 119,125 **** /** * Write a sequence to a stream using the specified MIDI file type. ! * * @param in the sequence to write * @param fileType the MIDI file type to use * @param out the output stream to write to --- 119,125 ---- /** * Write a sequence to a stream using the specified MIDI file type. ! * * @param in the sequence to write * @param fileType the MIDI file type to use * @param out the output stream to write to *************** public abstract class MidiFileWriter *** 131,137 **** /** * Write a sequence to a file using the specified MIDI file type. ! * * @param in the sequence to write * @param fileType the MIDI file type to use * @param out the file to write to --- 131,137 ---- /** * Write a sequence to a file using the specified MIDI file type. ! * * @param in the sequence to write * @param fileType the MIDI file type to use * @param out the file to write to diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/midi/spi/SoundbankReader.java gcc-4.6.0/libjava/classpath/javax/sound/midi/spi/SoundbankReader.java *** gcc-4.5.2/libjava/classpath/javax/sound/midi/spi/SoundbankReader.java Tue Nov 15 16:23:41 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/midi/spi/SoundbankReader.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.midi.Soundbank; *** 49,55 **** /** * The SoundbankReader abstract class defines the methods to be provided * by a soundbank file reader. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * --- 49,55 ---- /** * The SoundbankReader abstract class defines the methods to be provided * by a soundbank file reader. ! * * @author Anthony Green (green@redhat.com) * @since 1.3 * *************** public abstract class SoundbankReader *** 58,94 **** { /** * Get a Soundbank from the given URL. ! * * @param url from which to read the Soundbank ! * * @return the Soundbank object ! * * @throws InvalidMidiDataException if the data provided by url cannot be recognized * @throws IOException if the data provided by url cannot be read */ public abstract Soundbank getSoundbank(URL url) throws InvalidMidiDataException, IOException; ! /** * Get a Soundbank from the given InputStream. ! * * @param stream from which to read the Soundbank ! * * @return the Soundbank object ! * * @throws InvalidMidiDataException if the data provided by InputStream cannot be recognized * @throws IOException if the data provided by InputStream cannot be read */ public abstract Soundbank getSoundbank(InputStream stream) throws InvalidMidiDataException, IOException; ! /** * Get a Soundbank from the given File. ! * * @param file from which to read the Soundbank ! * * @return the Soundbank object ! * * @throws InvalidMidiDataException if the data provided by File cannot be recognized * @throws IOException if the data provided by File cannot be read */ --- 58,94 ---- { /** * Get a Soundbank from the given URL. ! * * @param url from which to read the Soundbank ! * * @return the Soundbank object ! * * @throws InvalidMidiDataException if the data provided by url cannot be recognized * @throws IOException if the data provided by url cannot be read */ public abstract Soundbank getSoundbank(URL url) throws InvalidMidiDataException, IOException; ! /** * Get a Soundbank from the given InputStream. ! * * @param stream from which to read the Soundbank ! * * @return the Soundbank object ! * * @throws InvalidMidiDataException if the data provided by InputStream cannot be recognized * @throws IOException if the data provided by InputStream cannot be read */ public abstract Soundbank getSoundbank(InputStream stream) throws InvalidMidiDataException, IOException; ! /** * Get a Soundbank from the given File. ! * * @param file from which to read the Soundbank ! * * @return the Soundbank object ! * * @throws InvalidMidiDataException if the data provided by File cannot be recognized * @throws IOException if the data provided by File cannot be read */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioFileFormat.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioFileFormat.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioFileFormat.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioFileFormat.java Tue Jan 11 19:46:05 2011 *************** public class AudioFileFormat *** 143,149 **** /** * Create a new AudioFileFormat given the type, the format, the ! * frame length, and some properties. The new object will have an * unspecified byte length. A copy of the properties argument will * be made, so changes to the map passed in will not affect the * new AudioFileFormat. --- 143,149 ---- /** * Create a new AudioFileFormat given the type, the format, the ! * frame length, and some properties. The new object will have an * unspecified byte length. A copy of the properties argument will * be made, so changes to the map passed in will not affect the * new AudioFileFormat. *************** public class AudioFileFormat *** 153,159 **** * @param properties the properties */ public AudioFileFormat(Type type, AudioFormat fmt, int frameLen, ! Map properties) { this.byteLength = AudioSystem.NOT_SPECIFIED; this.format = fmt; --- 153,159 ---- * @param properties the properties */ public AudioFileFormat(Type type, AudioFormat fmt, int frameLen, ! Map properties) { this.byteLength = AudioSystem.NOT_SPECIFIED; this.format = fmt; *************** public class AudioFileFormat *** 171,177 **** * @param frameLen the frame length */ protected AudioFileFormat(Type type, int byteLen, AudioFormat fmt, ! int frameLen) { this.byteLength = byteLen; this.format = fmt; --- 171,177 ---- * @param frameLen the frame length */ protected AudioFileFormat(Type type, int byteLen, AudioFormat fmt, ! int frameLen) { this.byteLength = byteLen; this.format = fmt; *************** public class AudioFileFormat *** 237,242 **** public String toString() { return ("byteLength=" + byteLength + "; format=" + format ! + "; type=" + type + "; frameLength=" + frameLength); } } --- 237,242 ---- public String toString() { return ("byteLength=" + byteLength + "; format=" + format ! + "; type=" + type + "; frameLength=" + frameLength); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioFormat.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioFormat.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioFormat.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioFormat.java Tue Jan 11 19:46:05 2011 *************** public class AudioFormat *** 140,146 **** /** * Create a new audio format, given various attributes of it. * The properties map for this format will be empty. ! * * @param encoding the encoding for this format * @param sampleRate the sample rate * @param sampleSizeInBits the sample size, in bits --- 140,146 ---- /** * Create a new audio format, given various attributes of it. * The properties map for this format will be empty. ! * * @param encoding the encoding for this format * @param sampleRate the sample rate * @param sampleSizeInBits the sample size, in bits *************** public class AudioFormat *** 150,157 **** * @param bigEndian true if the data is stored big-endian */ public AudioFormat(Encoding encoding, float sampleRate, int sampleSizeInBits, ! int channels, int frameSize, float frameRate, ! boolean bigEndian) { this.encoding = encoding; this.sampleRate = sampleRate; --- 150,157 ---- * @param bigEndian true if the data is stored big-endian */ public AudioFormat(Encoding encoding, float sampleRate, int sampleSizeInBits, ! int channels, int frameSize, float frameRate, ! boolean bigEndian) { this.encoding = encoding; this.sampleRate = sampleRate; *************** public class AudioFormat *** 178,185 **** * @param properties a map describing properties of this format */ public AudioFormat(Encoding encoding, float sampleRate, int sampleSizeInBits, ! int channels, int frameSize, float frameRate, ! boolean bigEndian, Map properties) { this.encoding = encoding; this.sampleRate = sampleRate; --- 178,185 ---- * @param properties a map describing properties of this format */ public AudioFormat(Encoding encoding, float sampleRate, int sampleSizeInBits, ! int channels, int frameSize, float frameRate, ! boolean bigEndian, Map properties) { this.encoding = encoding; this.sampleRate = sampleRate; *************** public class AudioFormat *** 198,204 **** * bits and the number of channels, unless one of those is * AudioSystem#NOT_SPECIFIED. The frame rate will be the same as the sample * rate, and the properties map will be empty. ! * * @param sampleRate the sample rate * @param sampleSizeInBits the sample size, in bits * @param channels the number of channels --- 198,204 ---- * bits and the number of channels, unless one of those is * AudioSystem#NOT_SPECIFIED. The frame rate will be the same as the sample * rate, and the properties map will be empty. ! * * @param sampleRate the sample rate * @param sampleSizeInBits the sample size, in bits * @param channels the number of channels *************** public class AudioFormat *** 206,212 **** * @param bigEndian true if the data is stored big-endian */ public AudioFormat(float sampleRate, int sampleSizeInBits, ! int channels, boolean signed, boolean bigEndian) { this.encoding = signed ? Encoding.PCM_SIGNED : Encoding.PCM_UNSIGNED; this.sampleRate = sampleRate; --- 206,212 ---- * @param bigEndian true if the data is stored big-endian */ public AudioFormat(float sampleRate, int sampleSizeInBits, ! int channels, boolean signed, boolean bigEndian) { this.encoding = signed ? Encoding.PCM_SIGNED : Encoding.PCM_UNSIGNED; this.sampleRate = sampleRate; *************** public class AudioFormat *** 257,263 **** /** * Given a key, return a property associated with this format; ! * or null if this property is not set. * @param key the name of the property * @return the value of the property, or null if the property is not set */ --- 257,263 ---- /** * Given a key, return a property associated with this format; ! * or null if this property is not set. * @param key the name of the property * @return the value of the property, or null if the property is not set */ *************** public class AudioFormat *** 318,324 **** } /** ! * Return a read-only Map holding the properties associated with * this format. */ public Map properties() --- 318,324 ---- } /** ! * Return a read-only Map holding the properties associated with * this format. */ public Map properties() *************** public class AudioFormat *** 332,355 **** public String toString() { CPStringBuilder result = new CPStringBuilder(); ! // usually at least encoding should be somewhat specified result.append(encoding); ! if (sampleRate != AudioSystem.NOT_SPECIFIED) { result.append(" "); result.append(sampleRate); result.append(" Hz"); } ! if (sampleSizeInBits != AudioSystem.NOT_SPECIFIED) { result.append(" "); result.append(sampleSizeInBits); result.append(" bits"); } ! if (channels != AudioSystem.NOT_SPECIFIED) { result.append(" "); --- 332,355 ---- public String toString() { CPStringBuilder result = new CPStringBuilder(); ! // usually at least encoding should be somewhat specified result.append(encoding); ! if (sampleRate != AudioSystem.NOT_SPECIFIED) { result.append(" "); result.append(sampleRate); result.append(" Hz"); } ! if (sampleSizeInBits != AudioSystem.NOT_SPECIFIED) { result.append(" "); result.append(sampleSizeInBits); result.append(" bits"); } ! if (channels != AudioSystem.NOT_SPECIFIED) { result.append(" "); *************** public class AudioFormat *** 357,366 **** result.append(" channel"); if (channels > 1) result.append("s"); } ! if (sampleSizeInBits > 8) result.append(bigEndian ? " big endian" : " little endian"); ! return result.toString(); } } --- 357,366 ---- result.append(" channel"); if (channels > 1) result.append("s"); } ! if (sampleSizeInBits > 8) result.append(bigEndian ? " big endian" : " little endian"); ! return result.toString(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioInputStream.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioInputStream.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioInputStream.java Tue Nov 15 17:02:35 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioInputStream.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class AudioInputStream extends In *** 55,61 **** /** The length of the audio stream in frames. */ protected long frameLength; ! /** The current frame position, starting from frame zero. */ protected long framePos; /** The size of a frame in bytes. */ --- 55,61 ---- /** The length of the audio stream in frames. */ protected long frameLength; ! /** The current frame position, starting from frame zero. */ protected long framePos; /** The size of a frame in bytes. */ *************** public class AudioInputStream extends In *** 92,98 **** public AudioInputStream(TargetDataLine line) { this(new TargetInputStream(line), line.getFormat(), ! AudioSystem.NOT_SPECIFIED); } /** --- 92,98 ---- public AudioInputStream(TargetDataLine line) { this(new TargetInputStream(line), line.getFormat(), ! AudioSystem.NOT_SPECIFIED); } /** *************** public class AudioInputStream extends In *** 181,210 **** result = -1; else { ! int myFrameSize = (frameSize == AudioSystem.NOT_SPECIFIED ! ? 1 : frameSize); ! // Ensure length is a multiple of frame size. ! length -= length % myFrameSize; ! result = 0; ! while (result == 0 || result % myFrameSize != 0) ! { ! int val = input.read(buf, offset, length); ! if (val < 0) ! { ! // This is a weird situation as we might have read a ! // frame already. It isn't clear at all what to do if ! // we only found a partial frame. For now we just ! // return whatever we did find. ! if (result == 0) ! return -1; ! result -= result % myFrameSize; ! break; ! } ! result += val; ! } ! // assert result % myFrameSize == 0; ! framePos += result / myFrameSize; } return result; } --- 181,210 ---- result = -1; else { ! int myFrameSize = (frameSize == AudioSystem.NOT_SPECIFIED ! ? 1 : frameSize); ! // Ensure length is a multiple of frame size. ! length -= length % myFrameSize; ! result = 0; ! while (result == 0 || result % myFrameSize != 0) ! { ! int val = input.read(buf, offset, length); ! if (val < 0) ! { ! // This is a weird situation as we might have read a ! // frame already. It isn't clear at all what to do if ! // we only found a partial frame. For now we just ! // return whatever we did find. ! if (result == 0) ! return -1; ! result -= result % myFrameSize; ! break; ! } ! result += val; ! } ! // assert result % myFrameSize == 0; ! framePos += result / myFrameSize; } return result; } *************** public class AudioInputStream extends In *** 212,218 **** public void reset() throws IOException { input.reset(); ! framePos = markedFramePos; } public long skip(long n) throws IOException --- 212,218 ---- public void reset() throws IOException { input.reset(); ! framePos = markedFramePos; } public long skip(long n) throws IOException *************** public class AudioInputStream extends In *** 243,252 **** public synchronized int read() throws IOException { if (buf == null) ! buf = new byte[1]; int count = read(buf, 0, 1); if (count < 0) ! return -1; return buf[0]; } --- 243,252 ---- public synchronized int read() throws IOException { if (buf == null) ! buf = new byte[1]; int count = read(buf, 0, 1); if (count < 0) ! return -1; return buf[0]; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioPermission.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioPermission.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioPermission.java Tue Nov 15 17:02:35 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioPermission.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioSystem.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioSystem.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/AudioSystem.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/AudioSystem.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.sampled.spi.MixerProv *** 57,63 **** * This clas is the primary interface to the audio system. It contains * a number of static methods which can be used to access this package's * functionality. ! * * @since 1.3 */ public class AudioSystem --- 57,63 ---- * This clas is the primary interface to the audio system. It contains * a number of static methods which can be used to access this package's * functionality. ! * * @since 1.3 */ public class AudioSystem *************** public class AudioSystem *** 77,83 **** * Return the file format of a given File. * @param f the file to check * @return the format of the file ! * @throws UnsupportedAudioFileException if the file's format is not * recognized * @throws IOException if there is an I/O error reading the file */ --- 77,83 ---- * Return the file format of a given File. * @param f the file to check * @return the format of the file ! * @throws UnsupportedAudioFileException if the file's format is not * recognized * @throws IOException if there is an I/O error reading the file */ *************** public class AudioSystem *** 104,110 **** * Return the file format of a given input stream. * @param is the input stream to check * @return the format of the stream ! * @throws UnsupportedAudioFileException if the stream's format is not * recognized * @throws IOException if there is an I/O error reading the stream */ --- 104,110 ---- * Return the file format of a given input stream. * @param is the input stream to check * @return the format of the stream ! * @throws UnsupportedAudioFileException if the stream's format is not * recognized * @throws IOException if there is an I/O error reading the stream */ *************** public class AudioSystem *** 131,137 **** * Return the file format of a given URL. * @param url the URL to check * @return the format of the URL ! * @throws UnsupportedAudioFileException if the URL's format is not * recognized * @throws IOException if there is an I/O error reading the URL */ --- 131,137 ---- * Return the file format of a given URL. * @param url the URL to check * @return the format of the URL ! * @throws UnsupportedAudioFileException if the URL's format is not * recognized * @throws IOException if there is an I/O error reading the URL */ *************** public class AudioSystem *** 197,210 **** /** * Given an audio input stream, this will try to create a new audio input * stream whose encoding matches the given target encoding. If no provider ! * offers this conversion, an exception is thrown. * @param targ the target encoding * @param ais the original audio stream * @return a new audio stream * @throws IllegalArgumentException if the conversion cannot be made */ public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targ, ! AudioInputStream ais) { Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) --- 197,210 ---- /** * Given an audio input stream, this will try to create a new audio input * stream whose encoding matches the given target encoding. If no provider ! * offers this conversion, an exception is thrown. * @param targ the target encoding * @param ais the original audio stream * @return a new audio stream * @throws IllegalArgumentException if the conversion cannot be made */ public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targ, ! AudioInputStream ais) { Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) *************** public class AudioSystem *** 220,233 **** /** * Given an audio input stream, this will try to create a new audio input * stream whose format matches the given target format. If no provider ! * offers this conversion, an exception is thrown. * @param targ the target format * @param ais the original audio stream * @return a new audio stream * @throws IllegalArgumentException if the conversion cannot be made */ public static AudioInputStream getAudioInputStream(AudioFormat targ, ! AudioInputStream ais) { Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) --- 220,233 ---- /** * Given an audio input stream, this will try to create a new audio input * stream whose format matches the given target format. If no provider ! * offers this conversion, an exception is thrown. * @param targ the target format * @param ais the original audio stream * @return a new audio stream * @throws IllegalArgumentException if the conversion cannot be made */ public static AudioInputStream getAudioInputStream(AudioFormat targ, ! AudioInputStream ais) { Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) *************** public class AudioSystem *** 457,463 **** * @since 1.5 */ public static SourceDataLine getSourceDataLine(AudioFormat fmt, ! Mixer.Info mixer) throws LineUnavailableException { DataLine.Info info = new DataLine.Info(SourceDataLine.class, fmt); --- 457,463 ---- * @since 1.5 */ public static SourceDataLine getSourceDataLine(AudioFormat fmt, ! Mixer.Info mixer) throws LineUnavailableException { DataLine.Info info = new DataLine.Info(SourceDataLine.class, fmt); *************** public class AudioSystem *** 489,495 **** /** * Find and return a target data line matching the given audio format. * @param fmt the format to match ! * @throws LineUnavailableException if no matching line was found * @since 1.5 */ public static TargetDataLine getTargetDataLine(AudioFormat fmt) --- 489,495 ---- /** * Find and return a target data line matching the given audio format. * @param fmt the format to match ! * @throws LineUnavailableException if no matching line was found * @since 1.5 */ public static TargetDataLine getTargetDataLine(AudioFormat fmt) *************** public class AudioSystem *** 517,523 **** * @since 1.5 */ public static TargetDataLine getTargetDataLine(AudioFormat fmt, ! Mixer.Info mixer) throws LineUnavailableException { DataLine.Info info = new DataLine.Info(TargetDataLine.class, fmt); --- 517,523 ---- * @since 1.5 */ public static TargetDataLine getTargetDataLine(AudioFormat fmt, ! Mixer.Info mixer) throws LineUnavailableException { DataLine.Info info = new DataLine.Info(TargetDataLine.class, fmt); *************** public class AudioSystem *** 571,582 **** /** * Given a target encoding and a source audio format, return an array of all ! * matching audio formats to which data in this source format can be converted. * @param encoding the target encoding * @param sourceFmt the source format */ public static AudioFormat[] getTargetFormats(AudioFormat.Encoding encoding, ! AudioFormat sourceFmt) { HashSet result = new HashSet(); Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); --- 571,582 ---- /** * Given a target encoding and a source audio format, return an array of all ! * matching audio formats to which data in this source format can be converted. * @param encoding the target encoding * @param sourceFmt the source format */ public static AudioFormat[] getTargetFormats(AudioFormat.Encoding encoding, ! AudioFormat sourceFmt) { HashSet result = new HashSet(); Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); *************** public class AudioSystem *** 616,624 **** * @param source the source format */ public static boolean isConversionSupported(AudioFormat.Encoding targ, ! AudioFormat source) { ! Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { --- 616,624 ---- * @param source the source format */ public static boolean isConversionSupported(AudioFormat.Encoding targ, ! AudioFormat source) { ! Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { *************** public class AudioSystem *** 636,644 **** * @param source the source format */ public static boolean isConversionSupported(AudioFormat targ, ! AudioFormat source) { ! Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { --- 636,644 ---- * @param source the source format */ public static boolean isConversionSupported(AudioFormat targ, ! AudioFormat source) { ! Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { *************** public class AudioSystem *** 672,691 **** /** * Return true if the given audio file format is supported for the ! * given audio input stream by one of the providers installed on the * system. * @param type the audio file format type * @param ais the audio input stream */ public static boolean isFileTypeSupported(AudioFileFormat.Type type, ! AudioInputStream ais) { return isFileTypeSupported(getAudioFileTypes(ais), type); } /** * Return true if some provider on the system supplies a line ! * matching the argument. * @param info the line to match */ public static boolean isLineSupported(Line.Info info) --- 672,691 ---- /** * Return true if the given audio file format is supported for the ! * given audio input stream by one of the providers installed on the * system. * @param type the audio file format type * @param ais the audio input stream */ public static boolean isFileTypeSupported(AudioFileFormat.Type type, ! AudioInputStream ais) { return isFileTypeSupported(getAudioFileTypes(ais), type); } /** * Return true if some provider on the system supplies a line ! * matching the argument. * @param info the line to match */ public static boolean isLineSupported(Line.Info info) *************** public class AudioSystem *** 711,717 **** * @throws IllegalArgumentException if the file type is not supported */ public static int write(AudioInputStream ais, AudioFileFormat.Type type, ! File out) throws IOException { Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); --- 711,717 ---- * @throws IllegalArgumentException if the file type is not supported */ public static int write(AudioInputStream ais, AudioFileFormat.Type type, ! File out) throws IOException { Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); *************** public class AudioSystem *** 736,742 **** * @throws IllegalArgumentException if the file type is not supported */ public static int write(AudioInputStream ais, AudioFileFormat.Type type, ! OutputStream os) throws IOException { Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); --- 736,742 ---- * @throws IllegalArgumentException if the file type is not supported */ public static int write(AudioInputStream ais, AudioFileFormat.Type type, ! OutputStream os) throws IOException { Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/BooleanControl.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/BooleanControl.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/BooleanControl.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/BooleanControl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class BooleanControl ext *** 99,105 **** * @param falseLabel the label for the false state */ protected BooleanControl(Type type, boolean init, String trueLabel, ! String falseLabel) { super(type); this.value = init; --- 99,105 ---- * @param falseLabel the label for the false state */ protected BooleanControl(Type type, boolean init, String trueLabel, ! String falseLabel) { super(type); this.value = init; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/Clip.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/Clip.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/Clip.java Tue Nov 15 17:02:35 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/Clip.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/CompoundControl.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/CompoundControl.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/CompoundControl.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/CompoundControl.java Tue Jan 11 19:46:05 2011 *************** public abstract class CompoundControl ex *** 95,103 **** result.append(": "); for (int i = 0; i < memberControls.length; ++i) { ! if (i > 0) ! result.append(", "); ! result.append(memberControls[i].toString()); } return result.toString(); } --- 95,103 ---- result.append(": "); for (int i = 0; i < memberControls.length; ++i) { ! if (i > 0) ! result.append(", "); ! result.append(memberControls[i].toString()); } return result.toString(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/DataLine.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/DataLine.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/DataLine.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/DataLine.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005-2007 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005-2007 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import gnu.java.lang.CPStringBuilder; *** 43,49 **** * The DataLine interface adds data-related functionality to the Line * interface. For example, it adds methods to start and stop the data * on the line. ! * @since 1.3 */ public interface DataLine extends Line { --- 43,49 ---- * The DataLine interface adds data-related functionality to the Line * interface. For example, it adds methods to start and stop the data * on the line. ! * @since 1.3 */ public interface DataLine extends Line { *************** public interface DataLine extends Line *** 158,164 **** if (minBufferSize < other.minBufferSize || maxBufferSize > other.maxBufferSize) return false; ! for (int i = 0; i < formats.length; ++i) { boolean ok = false; --- 158,164 ---- if (minBufferSize < other.minBufferSize || maxBufferSize > other.maxBufferSize) return false; ! for (int i = 0; i < formats.length; ++i) { boolean ok = false; *************** public interface DataLine extends Line *** 173,179 **** if (! ok) return false; } ! return true; } --- 173,179 ---- if (! ok) return false; } ! return true; } *************** public interface DataLine extends Line *** 190,203 **** result.append(", "); result.append(formats[i].toString()); } ! result.append("]; minBufferSize: "); result.append(minBufferSize); result.append("; maxBufferSize: "); result.append(maxBufferSize); return result.toString(); } ! } // end class: Info /** --- 190,203 ---- result.append(", "); result.append(formats[i].toString()); } ! result.append("]; minBufferSize: "); result.append(minBufferSize); result.append("; maxBufferSize: "); result.append(maxBufferSize); return result.toString(); } ! } // end class: Info /** *************** public interface DataLine extends Line *** 237,243 **** float getLevel(); /** ! * Return the current frame position. * @since 1.5 */ long getLongFramePosition(); --- 237,243 ---- float getLevel(); /** ! * Return the current frame position. * @since 1.5 */ long getLongFramePosition(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/EnumControl.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/EnumControl.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/EnumControl.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/EnumControl.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.sound.sampled; *** 40,46 **** /** * An EnumControl is a Control which can take one of a specified set of ! * values. * @since 1.3 */ public abstract class EnumControl extends Control --- 40,46 ---- /** * An EnumControl is a Control which can take one of a specified set of ! * values. * @since 1.3 */ public abstract class EnumControl extends Control *************** public abstract class EnumControl extend *** 110,117 **** { for (int i = 0; i < values.length; ++i) { ! if (! values[i].equals(value)) ! throw new IllegalArgumentException("value not supported"); } this.value = value; } --- 110,117 ---- { for (int i = 0; i < values.length; ++i) { ! if (! values[i].equals(value)) ! throw new IllegalArgumentException("value not supported"); } this.value = value; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/FloatControl.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/FloatControl.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/FloatControl.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/FloatControl.java Tue Jan 11 19:46:05 2011 *************** public abstract class FloatControl exten *** 97,103 **** /** * Create a new FloatControl given its type and various parameters. * The minimum, maximum, and midpoint labels will all be the empty string. ! * * @param type the type * @param min the minimum valuee * @param max the maximum value --- 97,103 ---- /** * Create a new FloatControl given its type and various parameters. * The minimum, maximum, and midpoint labels will all be the empty string. ! * * @param type the type * @param min the minimum valuee * @param max the maximum value *************** public abstract class FloatControl exten *** 107,113 **** * @param units the description of the units */ protected FloatControl(Type type, float min, float max, float prec, ! int update, float init, String units) { super(type); this.minimum = min; --- 107,113 ---- * @param units the description of the units */ protected FloatControl(Type type, float min, float max, float prec, ! int update, float init, String units) { super(type); this.minimum = min; *************** public abstract class FloatControl exten *** 123,129 **** /** * Create a new FloatControl given its type and various parameters. ! * * @param type the type * @param min the minimum valuee * @param max the maximum value --- 123,129 ---- /** * Create a new FloatControl given its type and various parameters. ! * * @param type the type * @param min the minimum valuee * @param max the maximum value *************** public abstract class FloatControl exten *** 136,143 **** * @param maxLabel the label for the maximum value */ protected FloatControl(Type type, float min, float max, float prec, ! int update, float init, String units, ! String minLabel, String midLabel, String maxLabel) { super(type); this.minimum = min; --- 136,143 ---- * @param maxLabel the label for the maximum value */ protected FloatControl(Type type, float min, float max, float prec, ! int update, float init, String units, ! String minLabel, String midLabel, String maxLabel) { super(type); this.minimum = min; *************** public abstract class FloatControl exten *** 242,248 **** * over the given time interval, specified in microseconds. * The default implementation does not do this, but instead * simply sets the value to the final value immediately. ! * * @param from the starting value * @param to the final value * @param ms the number of microseconds --- 242,248 ---- * over the given time interval, specified in microseconds. * The default implementation does not do this, but instead * simply sets the value to the final value immediately. ! * * @param from the starting value * @param to the final value * @param ms the number of microseconds diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/Line.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/Line.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/Line.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/Line.java Tue Jan 11 19:46:05 2011 *************** public interface Line *** 94,100 **** * @param listener the listener to notify */ void addLineListener(LineListener listener); ! /** * Close this line. */ --- 94,100 ---- * @param listener the listener to notify */ void addLineListener(LineListener listener); ! /** * Close this line. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/LineEvent.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/LineEvent.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/LineEvent.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/LineEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class LineEvent extends EventObje *** 153,167 **** public String toString() { return ("type=" + type + "; framePosition=" + framePosition ! + "line=" + line); } ! private void readObject(ObjectInputStream ois) throws IOException { throw new NotSerializableException("LineEvent is not serializable"); } ! private void writeObject(ObjectOutputStream oos) throws IOException { --- 153,167 ---- public String toString() { return ("type=" + type + "; framePosition=" + framePosition ! + "line=" + line); } ! private void readObject(ObjectInputStream ois) throws IOException { throw new NotSerializableException("LineEvent is not serializable"); } ! private void writeObject(ObjectOutputStream oos) throws IOException { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/LineUnavailableException.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/LineUnavailableException.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/LineUnavailableException.java Tue Nov 15 17:02:35 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/LineUnavailableException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/Mixer.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/Mixer.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/Mixer.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/Mixer.java Tue Jan 11 19:46:05 2011 *************** public interface Mixer extends Line *** 115,121 **** public final String toString() { return ("name=" + name + "; description=" + description ! + "; vendor=" + vendor + "; version=" + version); } } --- 115,121 ---- public final String toString() { return ("name=" + name + "; description=" + description ! + "; vendor=" + vendor + "; version=" + version); } } *************** public interface Mixer extends Line *** 148,154 **** /** * Return an array of Info objects describing all the source lines * available in this Mixer, which match the provided decsription. ! * @param info the description of the source lines to find */ Line.Info[] getSourceLineInfo(Line.Info info); --- 148,154 ---- /** * Return an array of Info objects describing all the source lines * available in this Mixer, which match the provided decsription. ! * @param info the description of the source lines to find */ Line.Info[] getSourceLineInfo(Line.Info info); *************** public interface Mixer extends Line *** 166,172 **** /** * Return an array of Info objects describing all the target lines * available in this Mixer, which match the provided decsription. ! * @param info the description of the target lines to find */ Line.Info[] getTargetLineInfo(Line.Info info); --- 166,172 ---- /** * Return an array of Info objects describing all the target lines * available in this Mixer, which match the provided decsription. ! * @param info the description of the target lines to find */ Line.Info[] getTargetLineInfo(Line.Info info); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/Port.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/Port.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/Port.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/Port.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.sound.sampled; *** 41,47 **** /** * A Port is a Line which represents an audio device, for instance * a microphone. ! * * @since 1.3 */ public interface Port extends Line --- 41,47 ---- /** * A Port is a Line which represents an audio device, for instance * a microphone. ! * * @since 1.3 */ public interface Port extends Line *************** public interface Port extends Line *** 56,83 **** /** A CD player. */ public static final Info COMPACT_DISC = new Info(Port.class, ! "Compact Disc", ! true); /** Headphones. */ public static final Info HEADPHONE = new Info(Port.class, "Headphone", ! false); /** Generic input line. */ public static final Info LINE_IN = new Info(Port.class, "Line in", ! true); /** Generic output line. */ public static final Info LINE_OUT = new Info(Port.class, "Line out", ! false); /** A microphone. */ public static final Info MICROPHONE = new Info(Port.class, "Microphone", ! true); /** A speaker. */ public static final Info SPEAKER = new Info(Port.class, "Speaker", ! false); private String name; private boolean isSource; --- 56,83 ---- /** A CD player. */ public static final Info COMPACT_DISC = new Info(Port.class, ! "Compact Disc", ! true); /** Headphones. */ public static final Info HEADPHONE = new Info(Port.class, "Headphone", ! false); /** Generic input line. */ public static final Info LINE_IN = new Info(Port.class, "Line in", ! true); /** Generic output line. */ public static final Info LINE_OUT = new Info(Port.class, "Line out", ! false); /** A microphone. */ public static final Info MICROPHONE = new Info(Port.class, "Microphone", ! true); /** A speaker. */ public static final Info SPEAKER = new Info(Port.class, "Speaker", ! false); private String name; private boolean isSource; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/ReverbType.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/ReverbType.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/ReverbType.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/ReverbType.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Reverb attributes Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Reverb attributes Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class ReverbType *** 61,67 **** * @param decay the decay time in microseconds */ protected ReverbType(String name, int earlyDelay, float earlyInten, ! int lateDelay, float lateInten, int decay) { this.name = name; this.earlyReflectionDelay = earlyDelay; --- 61,67 ---- * @param decay the decay time in microseconds */ protected ReverbType(String name, int earlyDelay, float earlyInten, ! int lateDelay, float lateInten, int decay) { this.name = name; this.earlyReflectionDelay = earlyDelay; *************** public class ReverbType *** 136,144 **** public final String toString() { return ("name=" + name + "; earlyReflectionDelay=" + earlyReflectionDelay ! + "; earlyReflectionIntensity=" + earlyReflectionIntensity ! + "; lateReflectionDelay=" + lateReflectionDelay ! + "; lateReflectionIntensity=" + lateReflectionIntensity ! + "; decayTime=" + decayTime); } } --- 136,144 ---- public final String toString() { return ("name=" + name + "; earlyReflectionDelay=" + earlyReflectionDelay ! + "; earlyReflectionIntensity=" + earlyReflectionIntensity ! + "; lateReflectionDelay=" + lateReflectionDelay ! + "; lateReflectionIntensity=" + lateReflectionIntensity ! + "; decayTime=" + decayTime); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/UnsupportedAudioFileException.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/UnsupportedAudioFileException.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/UnsupportedAudioFileException.java Tue Nov 15 17:02:35 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/UnsupportedAudioFileException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/spi/AudioFileReader.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/spi/AudioFileReader.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/spi/AudioFileReader.java Tue Nov 15 17:02:35 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/spi/AudioFileReader.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.sampled.UnsupportedAu *** 51,57 **** * This abstract class defines the interface to audio file readers. * A concrete provider subclass will implement the methods declared * here. These methods can be used to determine the format of ! * files, and to retrieve an AudioInputStream for a file. * @since 1.3 */ public abstract class AudioFileReader --- 51,57 ---- * This abstract class defines the interface to audio file readers. * A concrete provider subclass will implement the methods declared * here. These methods can be used to determine the format of ! * files, and to retrieve an AudioInputStream for a file. * @since 1.3 */ public abstract class AudioFileReader *************** public abstract class AudioFileReader *** 110,145 **** /** * Return an AudioInputStream for the given file. The file is assumed ! * to hold valid audio data. * @param file the file to read * @return an AudioInputStream for the file * @throws UnsupportedAudioFileException if the file's type is not * recognized ! * @throws IOException if there is an error while reading the file */ public abstract AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException; /** * Return an AudioInputStream wrapping the given input stream. The stream ! * is assumed to hold valid audio data. * @param is the input stream to wrap * @return an AudioInputStream for the stream * @throws UnsupportedAudioFileException if the stream's type is not * recognized ! * @throws IOException if there is an error while reading the stream */ public abstract AudioInputStream getAudioInputStream(InputStream is) throws UnsupportedAudioFileException, IOException; /** * Return an AudioInputStream for the given URL. The URL is assumed ! * to hold valid audio data. * @param url the URL to read * @return an AudioInputStream for the URL * @throws UnsupportedAudioFileException if the URL's type is not * recognized ! * @throws IOException if there is an error while reading the URL */ public abstract AudioInputStream getAudioInputStream(URL url) throws UnsupportedAudioFileException, IOException; --- 110,145 ---- /** * Return an AudioInputStream for the given file. The file is assumed ! * to hold valid audio data. * @param file the file to read * @return an AudioInputStream for the file * @throws UnsupportedAudioFileException if the file's type is not * recognized ! * @throws IOException if there is an error while reading the file */ public abstract AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException; /** * Return an AudioInputStream wrapping the given input stream. The stream ! * is assumed to hold valid audio data. * @param is the input stream to wrap * @return an AudioInputStream for the stream * @throws UnsupportedAudioFileException if the stream's type is not * recognized ! * @throws IOException if there is an error while reading the stream */ public abstract AudioInputStream getAudioInputStream(InputStream is) throws UnsupportedAudioFileException, IOException; /** * Return an AudioInputStream for the given URL. The URL is assumed ! * to hold valid audio data. * @param url the URL to read * @return an AudioInputStream for the URL * @throws UnsupportedAudioFileException if the URL's type is not * recognized ! * @throws IOException if there is an error while reading the URL */ public abstract AudioInputStream getAudioInputStream(URL url) throws UnsupportedAudioFileException, IOException; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/spi/AudioFileWriter.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/spi/AudioFileWriter.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/spi/AudioFileWriter.java Tue Nov 15 17:02:35 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/spi/AudioFileWriter.java Tue Jan 11 19:46:05 2011 *************** public abstract class AudioFileWriter *** 94,100 **** * @param ais the audio input stream to write */ public boolean isFileTypeSupported(AudioFileFormat.Type type, ! AudioInputStream ais) { AudioFileFormat.Type[] types = getAudioFileTypes(ais); for (int i = 0; i < types.length; ++i) --- 94,100 ---- * @param ais the audio input stream to write */ public boolean isFileTypeSupported(AudioFileFormat.Type type, ! AudioInputStream ais) { AudioFileFormat.Type[] types = getAudioFileTypes(ais); for (int i = 0; i < types.length; ++i) *************** public abstract class AudioFileWriter *** 114,120 **** * @throws IOException if an I/O error occurs when writing */ public abstract int write(AudioInputStream ais, AudioFileFormat.Type type, ! File out) throws IOException; /** --- 114,120 ---- * @throws IOException if an I/O error occurs when writing */ public abstract int write(AudioInputStream ais, AudioFileFormat.Type type, ! File out) throws IOException; /** *************** public abstract class AudioFileWriter *** 126,131 **** * @throws IOException if an I/O error occurs when writing */ public abstract int write(AudioInputStream ais, AudioFileFormat.Type type, ! OutputStream os) throws IOException; } --- 126,131 ---- * @throws IOException if an I/O error occurs when writing */ public abstract int write(AudioInputStream ais, AudioFileFormat.Type type, ! OutputStream os) throws IOException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sound/sampled/spi/FormatConversionProvider.java gcc-4.6.0/libjava/classpath/javax/sound/sampled/spi/FormatConversionProvider.java *** gcc-4.5.2/libjava/classpath/javax/sound/sampled/spi/FormatConversionProvider.java Tue Nov 15 17:02:35 2005 --- gcc-4.6.0/libjava/classpath/javax/sound/sampled/spi/FormatConversionProvider.java Tue Jan 11 19:46:05 2011 *************** import javax.sound.sampled.AudioFormat; *** 42,48 **** import javax.sound.sampled.AudioInputStream; /** ! * A format conversion provider supplies methods for converting between * different audio formats. This abstract class defines the interface * to this functionality; concrete subclasses will implement the methods * declared here. --- 42,48 ---- import javax.sound.sampled.AudioInputStream; /** ! * A format conversion provider supplies methods for converting between * different audio formats. This abstract class defines the interface * to this functionality; concrete subclasses will implement the methods * declared here. *************** public abstract class FormatConversionPr *** 67,73 **** * @throws IllegalArgumentException if the conversion is not supported */ public abstract AudioInputStream getAudioInputStream(AudioFormat.Encoding encoding, ! AudioInputStream source); /** * Return an audio input stream given the desired target format and --- 67,73 ---- * @throws IllegalArgumentException if the conversion is not supported */ public abstract AudioInputStream getAudioInputStream(AudioFormat.Encoding encoding, ! AudioInputStream source); /** * Return an audio input stream given the desired target format and *************** public abstract class FormatConversionPr *** 79,85 **** * @throws IllegalArgumentException if the conversion is not supported */ public abstract AudioInputStream getAudioInputStream(AudioFormat format, ! AudioInputStream source); /** * Return an array of all the source encodings supported by this conversion --- 79,85 ---- * @throws IllegalArgumentException if the conversion is not supported */ public abstract AudioInputStream getAudioInputStream(AudioFormat format, ! AudioInputStream source); /** * Return an array of all the source encodings supported by this conversion *************** public abstract class FormatConversionPr *** 109,115 **** * @return an array of supported target formats */ public abstract AudioFormat[] getTargetFormats(AudioFormat.Encoding targ, ! AudioFormat src); /** * Return true if this provider supports conversion from the given --- 109,115 ---- * @return an array of supported target formats */ public abstract AudioFormat[] getTargetFormats(AudioFormat.Encoding targ, ! AudioFormat src); /** * Return true if this provider supports conversion from the given *************** public abstract class FormatConversionPr *** 119,131 **** * @return true if the conversion is supported */ public boolean isConversionSupported(AudioFormat.Encoding targ, ! AudioFormat src) { AudioFormat.Encoding[] encodings = getTargetEncodings(src); for (int i = 0; i < encodings.length; ++i) { ! if (targ.equals(encodings[i])) ! return true; } return false; } --- 119,131 ---- * @return true if the conversion is supported */ public boolean isConversionSupported(AudioFormat.Encoding targ, ! AudioFormat src) { AudioFormat.Encoding[] encodings = getTargetEncodings(src); for (int i = 0; i < encodings.length; ++i) { ! if (targ.equals(encodings[i])) ! return true; } return false; } *************** public abstract class FormatConversionPr *** 154,167 **** AudioFormat.Encoding[] srcs = getSourceEncodings(); for (int i = 0; i < srcs.length; ++i) { ! if (src.equals(srcs[i])) ! return true; } return false; } /** ! * Return true if an encoding matching the argument is supported as a * target encoding by this provider. * @param targ the target encoding * @return true if it is supported --- 154,167 ---- AudioFormat.Encoding[] srcs = getSourceEncodings(); for (int i = 0; i < srcs.length; ++i) { ! if (src.equals(srcs[i])) ! return true; } return false; } /** ! * Return true if an encoding matching the argument is supported as a * target encoding by this provider. * @param targ the target encoding * @return true if it is supported *************** public abstract class FormatConversionPr *** 171,178 **** AudioFormat.Encoding[] encodings = getTargetEncodings(); for (int i = 0; i < encodings.length; ++i) { ! if (targ.equals(encodings[i])) ! return true; } return false; } --- 171,178 ---- AudioFormat.Encoding[] encodings = getTargetEncodings(); for (int i = 0; i < encodings.length; ++i) { ! if (targ.equals(encodings[i])) ! return true; } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/ConnectionEvent.java gcc-4.6.0/libjava/classpath/javax/sql/ConnectionEvent.java *** gcc-4.5.2/libjava/classpath/javax/sql/ConnectionEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/ConnectionEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ConnectionEvent.java Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ConnectionEvent.java Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.EventObject; *** 44,50 **** /** * @since 1.4 */ ! public class ConnectionEvent extends EventObject { private static final long serialVersionUID = -4843217645290030002L; --- 44,50 ---- /** * @since 1.4 */ ! public class ConnectionEvent extends EventObject { private static final long serialVersionUID = -4843217645290030002L; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/ConnectionEventListener.java gcc-4.6.0/libjava/classpath/javax/sql/ConnectionEventListener.java *** gcc-4.5.2/libjava/classpath/javax/sql/ConnectionEventListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/ConnectionEventListener.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ConnectionEventListener.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ConnectionEventListener.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.EventListener; *** 43,49 **** /** * @since 1.4 */ ! public interface ConnectionEventListener extends EventListener { /** * @since 1.4 --- 43,49 ---- /** * @since 1.4 */ ! public interface ConnectionEventListener extends EventListener { /** * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/ConnectionPoolDataSource.java gcc-4.6.0/libjava/classpath/javax/sql/ConnectionPoolDataSource.java *** gcc-4.5.2/libjava/classpath/javax/sql/ConnectionPoolDataSource.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/ConnectionPoolDataSource.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ConnectionPoolDataSource.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ConnectionPoolDataSource.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.sql.SQLException; *** 44,50 **** /** * @since 1.4 */ ! public interface ConnectionPoolDataSource { /** * @since 1.4 --- 44,50 ---- /** * @since 1.4 */ ! public interface ConnectionPoolDataSource { /** * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/DataSource.java gcc-4.6.0/libjava/classpath/javax/sql/DataSource.java *** gcc-4.5.2/libjava/classpath/javax/sql/DataSource.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/DataSource.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* DataSource.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* DataSource.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.sql.SQLException; *** 45,51 **** /** * @since 1.4 */ ! public interface DataSource { /** * @since 1.4 --- 45,51 ---- /** * @since 1.4 */ ! public interface DataSource { /** * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/PooledConnection.java gcc-4.6.0/libjava/classpath/javax/sql/PooledConnection.java *** gcc-4.5.2/libjava/classpath/javax/sql/PooledConnection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/PooledConnection.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PooledConnection.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PooledConnection.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.sql.SQLException; *** 44,50 **** /** * @since 1.4 */ ! public interface PooledConnection { /** * @since 1.4 --- 44,50 ---- /** * @since 1.4 */ ! public interface PooledConnection { /** * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/RowSet.java gcc-4.6.0/libjava/classpath/javax/sql/RowSet.java *** gcc-4.5.2/libjava/classpath/javax/sql/RowSet.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/sql/RowSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RowSet.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RowSet.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Map; *** 56,62 **** /** * @since 1.4 */ ! public interface RowSet extends ResultSet { String getUrl() throws SQLException; --- 56,62 ---- /** * @since 1.4 */ ! public interface RowSet extends ResultSet { String getUrl() throws SQLException; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/RowSetEvent.java gcc-4.6.0/libjava/classpath/javax/sql/RowSetEvent.java *** gcc-4.5.2/libjava/classpath/javax/sql/RowSetEvent.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/RowSetEvent.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RowSetEvent.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RowSetEvent.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.EventObject; *** 43,49 **** /** * @since 1.4 */ ! public class RowSetEvent extends EventObject { public RowSetEvent(RowSet source) { --- 43,49 ---- /** * @since 1.4 */ ! public class RowSetEvent extends EventObject { public RowSetEvent(RowSet source) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/RowSetInternal.java gcc-4.6.0/libjava/classpath/javax/sql/RowSetInternal.java *** gcc-4.5.2/libjava/classpath/javax/sql/RowSetInternal.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/RowSetInternal.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RowSetInternal.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RowSetInternal.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.sql.SQLException; *** 45,51 **** /** * @since 1.4 */ ! public interface RowSetInternal { /** * @since 1.4 --- 45,51 ---- /** * @since 1.4 */ ! public interface RowSetInternal { /** * @since 1.4 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/RowSetListener.java gcc-4.6.0/libjava/classpath/javax/sql/RowSetListener.java *** gcc-4.5.2/libjava/classpath/javax/sql/RowSetListener.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/RowSetListener.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RowSetListener.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RowSetListener.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.EventListener; *** 43,49 **** /** * @since 1.4 */ ! public interface RowSetListener extends EventListener { void rowSetChanged(RowSetEvent event); --- 43,49 ---- /** * @since 1.4 */ ! public interface RowSetListener extends EventListener { void rowSetChanged(RowSetEvent event); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/RowSetMetaData.java gcc-4.6.0/libjava/classpath/javax/sql/RowSetMetaData.java *** gcc-4.5.2/libjava/classpath/javax/sql/RowSetMetaData.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/RowSetMetaData.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RowSetMetaData.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RowSetMetaData.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.sql.SQLException; *** 44,50 **** /** * @since 1.4 */ ! public interface RowSetMetaData extends ResultSetMetaData { void setColumnCount(int columnCount) throws SQLException; --- 44,50 ---- /** * @since 1.4 */ ! public interface RowSetMetaData extends ResultSetMetaData { void setColumnCount(int columnCount) throws SQLException; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/RowSetReader.java gcc-4.6.0/libjava/classpath/javax/sql/RowSetReader.java *** gcc-4.5.2/libjava/classpath/javax/sql/RowSetReader.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/RowSetReader.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RowSetReader.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RowSetReader.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.sql.SQLException; *** 43,49 **** /** * @since 1.4 */ ! public interface RowSetReader { void readData(RowSetInternal caller) throws SQLException; } --- 43,49 ---- /** * @since 1.4 */ ! public interface RowSetReader { void readData(RowSetInternal caller) throws SQLException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/RowSetWriter.java gcc-4.6.0/libjava/classpath/javax/sql/RowSetWriter.java *** gcc-4.5.2/libjava/classpath/javax/sql/RowSetWriter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/RowSetWriter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* RowSetWriter.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* RowSetWriter.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.sql.SQLException; *** 43,49 **** /** * @since 1.4 */ ! public interface RowSetWriter { boolean writeData(RowSetInternal caller) throws SQLException; } --- 43,49 ---- /** * @since 1.4 */ ! public interface RowSetWriter { boolean writeData(RowSetInternal caller) throws SQLException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/XAConnection.java gcc-4.6.0/libjava/classpath/javax/sql/XAConnection.java *** gcc-4.5.2/libjava/classpath/javax/sql/XAConnection.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/XAConnection.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import javax.transaction.xa.XAResource; *** 45,51 **** /** * @since 1.4 */ ! public interface XAConnection extends PooledConnection { XAResource getXAResource() throws SQLException; } --- 45,51 ---- /** * @since 1.4 */ ! public interface XAConnection extends PooledConnection { XAResource getXAResource() throws SQLException; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/sql/XADataSource.java gcc-4.6.0/libjava/classpath/javax/sql/XADataSource.java *** gcc-4.5.2/libjava/classpath/javax/sql/XADataSource.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/sql/XADataSource.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* XADataSource.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* XADataSource.java Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.sql.SQLException; *** 44,50 **** /** * @since 1.4 */ ! public interface XADataSource { XAConnection getXAConnection() throws SQLException; --- 44,50 ---- /** * @since 1.4 */ ! public interface XADataSource { XAConnection getXAConnection() throws SQLException; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/AbstractAction.java gcc-4.6.0/libjava/classpath/javax/swing/AbstractAction.java *** gcc-4.5.2/libjava/classpath/javax/swing/AbstractAction.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/AbstractAction.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.SwingPropertyCh *** 47,53 **** /** * A base class for implementing the {@link Action} interface. ! * * @author Andrew Selkirk */ public abstract class AbstractAction --- 47,53 ---- /** * A base class for implementing the {@link Action} interface. ! * * @author Andrew Selkirk */ public abstract class AbstractAction *************** public abstract class AbstractAction *** 59,67 **** * A flag that indicates whether or not the action is enabled. */ protected boolean enabled = true; ! /** ! * Provides support for property change event notification. */ protected SwingPropertyChangeSupport changeSupport = new SwingPropertyChangeSupport(this); --- 59,67 ---- * A flag that indicates whether or not the action is enabled. */ protected boolean enabled = true; ! /** ! * Provides support for property change event notification. */ protected SwingPropertyChangeSupport changeSupport = new SwingPropertyChangeSupport(this); *************** public abstract class AbstractAction *** 80,86 **** } /** ! * Creates a new action with the specified name. The name is stored as a * property with the key {@link Action#NAME}, and no other properties are * initialised. * --- 80,86 ---- } /** ! * Creates a new action with the specified name. The name is stored as a * property with the key {@link Action#NAME}, and no other properties are * initialised. * *************** public abstract class AbstractAction *** 94,100 **** /** * Creates a new action with the specified name and icon. The name is stored * as a property with the key {@link Action#NAME}, the icon is stored as a ! * property with the key {@link Action#SMALL_ICON}, and no other properties * are initialised. * * @param name the name (null permitted). --- 94,100 ---- /** * Creates a new action with the specified name and icon. The name is stored * as a property with the key {@link Action#NAME}, the icon is stored as a ! * property with the key {@link Action#SMALL_ICON}, and no other properties * are initialised. * * @param name the name (null permitted). *************** public abstract class AbstractAction *** 123,134 **** /** * Returns the value associated with the specified key. ! * * @param key the key (not null). ! * ! * @return The value associated with the specified key, or * null if the key is not found. ! * * @see #putValue(String, Object) */ public Object getValue(String key) --- 123,134 ---- /** * Returns the value associated with the specified key. ! * * @param key the key (not null). ! * ! * @return The value associated with the specified key, or * null if the key is not found. ! * * @see #putValue(String, Object) */ public Object getValue(String key) *************** public abstract class AbstractAction *** 137,156 **** } /** ! * Sets the value associated with the specified key and sends a ! * {@link java.beans.PropertyChangeEvent} to all registered listeners. ! * The standard keys are: *
                                      *
                                    • {@link #NAME}
                                    • ! *
                                    • {@link #SHORT_DESCRIPTION}
                                    • *
                                    • {@link #LONG_DESCRIPTION}
                                    • ! *
                                    • {@link #SMALL_ICON}
                                    • *
                                    • {@link #ACTION_COMMAND_KEY}
                                    • ! *
                                    • {@link #ACCELERATOR_KEY}
                                    • *
                                    • {@link #MNEMONIC_KEY}
                                    • *
                                    * Any existing value associated with the key will be overwritten. ! * * @param key the key (not null). * @param value the value (null permitted). */ --- 137,156 ---- } /** ! * Sets the value associated with the specified key and sends a ! * {@link java.beans.PropertyChangeEvent} to all registered listeners. ! * The standard keys are: *
                                      *
                                    • {@link #NAME}
                                    • ! *
                                    • {@link #SHORT_DESCRIPTION}
                                    • *
                                    • {@link #LONG_DESCRIPTION}
                                    • ! *
                                    • {@link #SMALL_ICON}
                                    • *
                                    • {@link #ACTION_COMMAND_KEY}
                                    • ! *
                                    • {@link #ACCELERATOR_KEY}
                                    • *
                                    • {@link #MNEMONIC_KEY}
                                    • *
                                    * Any existing value associated with the key will be overwritten. ! * * @param key the key (not null). * @param value the value (null permitted). */ *************** public abstract class AbstractAction *** 168,174 **** * Returns the flag that indicates whether or not the action is enabled. * * @return The flag. ! * * @see #setEnabled(boolean) */ public boolean isEnabled() --- 168,174 ---- * Returns the flag that indicates whether or not the action is enabled. * * @return The flag. ! * * @see #setEnabled(boolean) */ public boolean isEnabled() *************** public abstract class AbstractAction *** 178,189 **** /** * Sets the flag that indicates whether or not the action is enabled and, if ! * the value of the flag changed from the previous setting, sends a ! * {@link java.beans.PropertyChangeEvent} to all registered listeners (using * the property name 'enabled'). * * @param enabled the new flag value. ! * * @see #isEnabled() */ public void setEnabled(boolean enabled) --- 178,189 ---- /** * Sets the flag that indicates whether or not the action is enabled and, if ! * the value of the flag changed from the previous setting, sends a ! * {@link java.beans.PropertyChangeEvent} to all registered listeners (using * the property name 'enabled'). * * @param enabled the new flag value. ! * * @see #isEnabled() */ public void setEnabled(boolean enabled) *************** public abstract class AbstractAction *** 196,205 **** } /** ! * Returns an array of the keys for the property values that have been * defined via the {@link #putValue(String, Object)} method (or the class * constructor). ! * * @return An array of keys. */ public Object[] getKeys() --- 196,205 ---- } /** ! * Returns an array of the keys for the property values that have been * defined via the {@link #putValue(String, Object)} method (or the class * constructor). ! * * @return An array of keys. */ public Object[] getKeys() *************** public abstract class AbstractAction *** 208,214 **** } /** ! * Sends a {@link PropertyChangeEvent} for the named property to all * registered listeners. * * @param propertyName the property name. --- 208,214 ---- } /** ! * Sends a {@link PropertyChangeEvent} for the named property to all * registered listeners. * * @param propertyName the property name. *************** public abstract class AbstractAction *** 220,236 **** { changeSupport.firePropertyChange(propertyName, oldValue, newValue); } ! /** * Sends a {@link PropertyChangeEvent} for the named property to all ! * registered listeners. This private method is called by the * {@link #setEnabled(boolean)} method. * * @param propertyName the property name. * @param oldValue the old value of the property. * @param newValue the new value of the property. */ ! private void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) { changeSupport.firePropertyChange(propertyName, oldValue, newValue); --- 220,236 ---- { changeSupport.firePropertyChange(propertyName, oldValue, newValue); } ! /** * Sends a {@link PropertyChangeEvent} for the named property to all ! * registered listeners. This private method is called by the * {@link #setEnabled(boolean)} method. * * @param propertyName the property name. * @param oldValue the old value of the property. * @param newValue the new value of the property. */ ! private void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) { changeSupport.firePropertyChange(propertyName, oldValue, newValue); *************** public abstract class AbstractAction *** 241,247 **** * from this action. * * @param listener the listener. ! * * @see #removePropertyChangeListener(PropertyChangeListener) */ public void addPropertyChangeListener(PropertyChangeListener listener) --- 241,247 ---- * from this action. * * @param listener the listener. ! * * @see #removePropertyChangeListener(PropertyChangeListener) */ public void addPropertyChangeListener(PropertyChangeListener listener) *************** public abstract class AbstractAction *** 250,260 **** } /** ! * Deregisters a listener so that it no longer receives * {@link PropertyChangeEvent} notifications from this action. * * @param listener the listener. ! * * @see #addPropertyChangeListener(PropertyChangeListener) */ public void removePropertyChangeListener(PropertyChangeListener listener) --- 250,260 ---- } /** ! * Deregisters a listener so that it no longer receives * {@link PropertyChangeEvent} notifications from this action. * * @param listener the listener. ! * * @see #addPropertyChangeListener(PropertyChangeListener) */ public void removePropertyChangeListener(PropertyChangeListener listener) *************** public abstract class AbstractAction *** 266,272 **** * Returns all registered listeners. * * @return An array of listeners. ! * * @since 1.4 */ public PropertyChangeListener[] getPropertyChangeListeners() --- 266,272 ---- * Returns all registered listeners. * * @return An array of listeners. ! * * @since 1.4 */ public PropertyChangeListener[] getPropertyChangeListeners() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/AbstractButton.java gcc-4.6.0/libjava/classpath/javax/swing/AbstractButton.java *** gcc-4.5.2/libjava/classpath/javax/swing/AbstractButton.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/AbstractButton.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.View; *** 129,139 **** * *

                                    The various behavioral aspects of these properties follows:

                                    * ! *
                                      * *
                                    • When non-bound properties stored in the button change, the button * fires ChangeEvents to its ChangeListeners.
                                    • ! * *
                                    • When bound properties stored in the button change, the button fires * PropertyChangeEvents to its PropertyChangeListeners
                                    • * --- 129,139 ---- * *

                                      The various behavioral aspects of these properties follows:

                                      * ! *
                                        * *
                                      • When non-bound properties stored in the button change, the button * fires ChangeEvents to its ChangeListeners.
                                      • ! * *
                                      • When bound properties stored in the button change, the button fires * PropertyChangeEvents to its PropertyChangeListeners
                                      • * *************** public abstract class AbstractButton ext *** 271,277 **** /** Whether or not the button fills its content area. */ boolean contentAreaFilled; ! /** Whether rollover is enabled. */ boolean rollOverEnabled; --- 271,277 ---- /** Whether or not the button fills its content area. */ boolean contentAreaFilled; ! /** Whether rollover is enabled. */ boolean rollOverEnabled; *************** public abstract class AbstractButton ext *** 302,308 **** /** * Listener the button uses to receive ChangeEvents from its model. ! */ protected ChangeListener changeListener; /** --- 302,308 ---- /** * Listener the button uses to receive ChangeEvents from its model. ! */ protected ChangeListener changeListener; /** *************** public abstract class AbstractButton ext *** 317,332 **** * ActionEvent. */ long multiClickThreshhold; ! /** * Listener the button uses to receive PropertyChangeEvents from its * Action. */ PropertyChangeListener actionPropertyChangeListener; ! ! /** ChangeEvent that is fired to button's ChangeEventListeners */ protected ChangeEvent changeEvent = new ChangeEvent(this); ! /** * Indicates if the borderPainted property has been set by a client * program or by the UI. --- 317,332 ---- * ActionEvent. */ long multiClickThreshhold; ! /** * Listener the button uses to receive PropertyChangeEvents from its * Action. */ PropertyChangeListener actionPropertyChangeListener; ! ! /** ChangeEvent that is fired to button's ChangeEventListeners */ protected ChangeEvent changeEvent = new ChangeEvent(this); ! /** * Indicates if the borderPainted property has been set by a client * program or by the UI. *************** public abstract class AbstractButton ext *** 367,392 **** * Fired in a PropertyChangeEvent when the "borderPainted" property changes. */ public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted"; ! /** * Fired in a PropertyChangeEvent when the "contentAreaFilled" property * changes. */ public static final String CONTENT_AREA_FILLED_CHANGED_PROPERTY = "contentAreaFilled"; ! /** * Fired in a PropertyChangeEvent when the "disabledIcon" property changes. */ public static final String DISABLED_ICON_CHANGED_PROPERTY = "disabledIcon"; ! /** * Fired in a PropertyChangeEvent when the "disabledSelectedIcon" property * changes. */ public static final String DISABLED_SELECTED_ICON_CHANGED_PROPERTY = "disabledSelectedIcon"; ! /** * Fired in a PropertyChangeEvent when the "focusPainted" property changes. */ --- 367,392 ---- * Fired in a PropertyChangeEvent when the "borderPainted" property changes. */ public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted"; ! /** * Fired in a PropertyChangeEvent when the "contentAreaFilled" property * changes. */ public static final String CONTENT_AREA_FILLED_CHANGED_PROPERTY = "contentAreaFilled"; ! /** * Fired in a PropertyChangeEvent when the "disabledIcon" property changes. */ public static final String DISABLED_ICON_CHANGED_PROPERTY = "disabledIcon"; ! /** * Fired in a PropertyChangeEvent when the "disabledSelectedIcon" property * changes. */ public static final String DISABLED_SELECTED_ICON_CHANGED_PROPERTY = "disabledSelectedIcon"; ! /** * Fired in a PropertyChangeEvent when the "focusPainted" property changes. */ *************** public abstract class AbstractButton ext *** 433,446 **** * Fired in a PropertyChangeEvent when the "rolloverIcon" property changes. */ public static final String ROLLOVER_ICON_CHANGED_PROPERTY = "rolloverIcon"; ! /** * Fired in a PropertyChangeEvent when the "rolloverSelectedIcon" property * changes. */ public static final String ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY = "rolloverSelectedIcon"; ! /** * Fired in a PropertyChangeEvent when the "selectedIcon" property changes. */ --- 433,446 ---- * Fired in a PropertyChangeEvent when the "rolloverIcon" property changes. */ public static final String ROLLOVER_ICON_CHANGED_PROPERTY = "rolloverIcon"; ! /** * Fired in a PropertyChangeEvent when the "rolloverSelectedIcon" property * changes. */ public static final String ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY = "rolloverSelectedIcon"; ! /** * Fired in a PropertyChangeEvent when the "selectedIcon" property changes. */ *************** public abstract class AbstractButton ext *** 471,477 **** AccessibleText { private static final long serialVersionUID = -5673062525319836790L; ! protected AccessibleAbstractButton() { // Nothing to do here yet. --- 471,477 ---- AccessibleText { private static final long serialVersionUID = -5673062525319836790L; ! protected AccessibleAbstractButton() { // Nothing to do here yet. *************** public abstract class AbstractButton ext *** 553,559 **** { Object[] target = new Object[group.getButtonCount()]; Enumeration els = group.getElements(); ! for (int index = 0; els.hasMoreElements(); ++index) { target[index] = els.nextElement(); --- 553,559 ---- { Object[] target = new Object[group.getButtonCount()]; Enumeration els = group.getElements(); ! for (int index = 0; els.hasMoreElements(); ++index) { target[index] = els.nextElement(); *************** public abstract class AbstractButton ext *** 663,669 **** } /** ! * Sets the current accessible value as object. If the specified number * is 0 the button will be deselected, otherwise the button will * be selected. * --- 663,669 ---- } /** ! * Sets the current accessible value as object. If the specified number * is 0 the button will be deselected, otherwise the button will * be selected. * *************** public abstract class AbstractButton ext *** 942,948 **** public AttributeSet getCharacterAttribute(int i) { AttributeSet atts = null; ! View view = (View) getClientProperty(BasicHTML.propertyKey); if (view != null) { Document doc = view.getDocument(); --- 942,948 ---- public AttributeSet getCharacterAttribute(int i) { AttributeSet atts = null; ! View view = (View) getClientProperty(BasicHTML.propertyKey); if (view != null) { Document doc = view.getDocument(); *************** public abstract class AbstractButton ext *** 1019,1026 **** setDisplayedMnemonicIndex(-1); setOpaque(true); text = ""; ! // testing on JRE1.5 shows that the iconTextGap default value is ! // hard-coded here and the 'Button.iconTextGap' setting in the // UI defaults is ignored, at least by the MetalLookAndFeel iconTextGap = 4; } --- 1019,1026 ---- setDisplayedMnemonicIndex(-1); setOpaque(true); text = ""; ! // testing on JRE1.5 shows that the iconTextGap default value is ! // hard-coded here and the 'Button.iconTextGap' setting in the // UI defaults is ignored, at least by the MetalLookAndFeel iconTextGap = 4; } *************** public abstract class AbstractButton ext *** 1036,1042 **** } /** ! * Set the model the button is currently using. This un-registers all * listeners associated with the current model, and re-registers them * with the new model. * --- 1036,1042 ---- } /** ! * Set the model the button is currently using. This un-registers all * listeners associated with the current model, and re-registers them * with the new model. * *************** public abstract class AbstractButton ext *** 1072,1078 **** repaint(); } ! protected void init(String text, Icon icon) { // If text is null, we fall back to the empty // string (which is set using AbstractButton's --- 1072,1078 ---- repaint(); } ! protected void init(String text, Icon icon) { // If text is null, we fall back to the empty // string (which is set using AbstractButton's *************** public abstract class AbstractButton ext *** 1083,1092 **** if (icon != null) default_icon = icon; ! updateUI(); } ! /** *

                                        Returns the action command string for this button's model.

                                        * --- 1083,1092 ---- if (icon != null) default_icon = icon; ! updateUI(); } ! /** *

                                        Returns the action command string for this button's model.

                                        * *************** public abstract class AbstractButton ext *** 1140,1148 **** /** * Returns all added ActionListener objects. ! * * @return an array of listeners ! * * @since 1.4 */ public ActionListener[] getActionListeners() --- 1140,1148 ---- /** * Returns all added ActionListener objects. ! * * @return an array of listeners ! * * @since 1.4 */ public ActionListener[] getActionListeners() *************** public abstract class AbstractButton ext *** 1175,1183 **** /** * Returns all added ItemListener objects. ! * * @return an array of listeners ! * * @since 1.4 */ public ItemListener[] getItemListeners() --- 1175,1183 ---- /** * Returns all added ItemListener objects. ! * * @return an array of listeners ! * * @since 1.4 */ public ItemListener[] getItemListeners() *************** public abstract class AbstractButton ext *** 1188,1194 **** /** * Adds a ChangeListener to the button's listener list. When the button's * model changes any of its (non-bound) properties, these listeners will be ! * called. * * @param l The new listener to add */ --- 1188,1194 ---- /** * Adds a ChangeListener to the button's listener list. When the button's * model changes any of its (non-bound) properties, these listeners will be ! * called. * * @param l The new listener to add */ *************** public abstract class AbstractButton ext *** 1209,1217 **** /** * Returns all added ChangeListener objects. ! * * @return an array of listeners ! * * @since 1.4 */ public ChangeListener[] getChangeListeners() --- 1209,1217 ---- /** * Returns all added ChangeListener objects. ! * * @return an array of listeners ! * * @since 1.4 */ public ChangeListener[] getChangeListeners() *************** public abstract class AbstractButton ext *** 1229,1235 **** { e.setSource(this); ItemListener[] listeners = getItemListeners(); ! for (int i = 0; i < listeners.length; i++) listeners[i].itemStateChanged(e); } --- 1229,1235 ---- { e.setSource(this); ItemListener[] listeners = getItemListeners(); ! for (int i = 0; i < listeners.length; i++) listeners[i].itemStateChanged(e); } *************** public abstract class AbstractButton ext *** 1242,1249 **** */ protected void fireActionPerformed(ActionEvent e) { ! // Dispatch a copy of the given ActionEvent in order to ! // set the source and action command correctly. ActionEvent ae = new ActionEvent( this, e.getID(), --- 1242,1249 ---- */ protected void fireActionPerformed(ActionEvent e) { ! // Dispatch a copy of the given ActionEvent in order to ! // set the source and action command correctly. ActionEvent ae = new ActionEvent( this, e.getID(), *************** public abstract class AbstractButton ext *** 1252,1258 **** e.getModifiers()); ActionListener[] listeners = getActionListeners(); ! for (int i = 0; i < listeners.length; i++) listeners[i].actionPerformed(ae); } --- 1252,1258 ---- e.getModifiers()); ActionListener[] listeners = getActionListeners(); ! for (int i = 0; i < listeners.length; i++) listeners[i].actionPerformed(ae); } *************** public abstract class AbstractButton ext *** 1338,1349 **** } } ! /** * Sets the button's mnemonic index. The mnemonic index is a hint to the * look and feel class, suggesting which character in the button's label * should be underlined when drawing the label. If the mnemonic index is ! * -1, no mnemonic will be displayed. ! * * If no mnemonic index is set, the button will choose a mnemonic index * by default, which will be the first occurrence of the mnemonic * character in the button's text. --- 1338,1349 ---- } } ! /** * Sets the button's mnemonic index. The mnemonic index is a hint to the * look and feel class, suggesting which character in the button's label * should be underlined when drawing the label. If the mnemonic index is ! * -1, no mnemonic will be displayed. ! * * If no mnemonic index is set, the button will choose a mnemonic index * by default, which will be the first occurrence of the mnemonic * character in the button's text. *************** public abstract class AbstractButton ext *** 1358,1368 **** { if (index < -1 || (text != null && index >= text.length())) throw new IllegalArgumentException(); ! mnemonicIndex = index; } ! ! /** * Get the button's mnemonic index, which is an offset into the button's * "text" property. The character specified by this offset should be * underlined when the look and feel class draws this button. --- 1358,1368 ---- { if (index < -1 || (text != null && index >= text.length())) throw new IllegalArgumentException(); ! mnemonicIndex = index; } ! ! /** * Get the button's mnemonic index, which is an offset into the button's * "text" property. The character specified by this offset should be * underlined when the look and feel class draws this button. *************** public abstract class AbstractButton ext *** 1373,1379 **** { return mnemonicIndex; } ! /** * Set the "rolloverEnabled" property. When rollover is enabled, and the --- 1373,1379 ---- { return mnemonicIndex; } ! /** * Set the "rolloverEnabled" property. When rollover is enabled, and the *************** public abstract class AbstractButton ext *** 1450,1464 **** mod.setEnabled(b); } ! /** * Set the horizontal alignment of the button's text and icon. The * alignment is a numeric constant from {@link SwingConstants}. It must * be one of: RIGHT, LEFT, CENTER, * LEADING or TRAILING. The default is * CENTER. ! * * @return The current horizontal alignment ! * * @see #setHorizontalAlignment(int) */ public int getHorizontalAlignment() --- 1450,1464 ---- mod.setEnabled(b); } ! /** * Set the horizontal alignment of the button's text and icon. The * alignment is a numeric constant from {@link SwingConstants}. It must * be one of: RIGHT, LEFT, CENTER, * LEADING or TRAILING. The default is * CENTER. ! * * @return The current horizontal alignment ! * * @see #setHorizontalAlignment(int) */ public int getHorizontalAlignment() *************** public abstract class AbstractButton ext *** 1476,1489 **** * @param a The new horizontal alignment * @throws IllegalArgumentException If alignment is not one of the legal * constants. ! * * @see #getHorizontalAlignment() */ public void setHorizontalAlignment(int a) { if (horizontalAlignment == a) return; ! if (a != LEFT && a != CENTER && a != RIGHT && a != LEADING && a != TRAILING) throw new IllegalArgumentException("Invalid alignment."); int old = horizontalAlignment; --- 1476,1489 ---- * @param a The new horizontal alignment * @throws IllegalArgumentException If alignment is not one of the legal * constants. ! * * @see #getHorizontalAlignment() */ public void setHorizontalAlignment(int a) { if (horizontalAlignment == a) return; ! if (a != LEFT && a != CENTER && a != RIGHT && a != LEADING && a != TRAILING) throw new IllegalArgumentException("Invalid alignment."); int old = horizontalAlignment; *************** public abstract class AbstractButton ext *** 1522,1528 **** { if (horizontalTextPosition == t) return; ! if (t != LEFT && t != CENTER && t != RIGHT && t != LEADING && t != TRAILING) throw new IllegalArgumentException("Invalid alignment."); --- 1522,1528 ---- { if (horizontalTextPosition == t) return; ! if (t != LEFT && t != CENTER && t != RIGHT && t != LEADING && t != TRAILING) throw new IllegalArgumentException("Invalid alignment."); *************** public abstract class AbstractButton ext *** 1540,1546 **** * BOTTOM. The default is CENTER. * * @return The current vertical alignment ! * * @see #setVerticalAlignment(int) */ public int getVerticalAlignment() --- 1540,1546 ---- * BOTTOM. The default is CENTER. * * @return The current vertical alignment ! * * @see #setVerticalAlignment(int) */ public int getVerticalAlignment() *************** public abstract class AbstractButton ext *** 1557,1563 **** * @param a The new vertical alignment * @throws IllegalArgumentException If alignment is not one of the legal * constants. ! * * @see #getVerticalAlignment() */ public void setVerticalAlignment(int a) --- 1557,1563 ---- * @param a The new vertical alignment * @throws IllegalArgumentException If alignment is not one of the legal * constants. ! * * @see #getVerticalAlignment() */ public void setVerticalAlignment(int a) *************** public abstract class AbstractButton ext *** 1605,1611 **** return; if (t != TOP && t != CENTER && t != BOTTOM) throw new IllegalArgumentException("Invalid alignment."); ! int old = verticalTextPosition; verticalTextPosition = t; firePropertyChange(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, old, t); --- 1605,1611 ---- return; if (t != TOP && t != CENTER && t != BOTTOM) throw new IllegalArgumentException("Invalid alignment."); ! int old = verticalTextPosition; verticalTextPosition = t; firePropertyChange(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, old, t); *************** public abstract class AbstractButton ext *** 1645,1651 **** } /** ! * Get the value of the "action" property. * * @return The current value of the "action" property */ --- 1645,1651 ---- } /** ! * Get the value of the "action" property. * * @return The current value of the "action" property */ *************** public abstract class AbstractButton ext *** 1664,1670 **** *

                                        This method also configures several of the button's properties from * the Action, by calling {@link #configurePropertiesFromAction}, and * subscribes the button to the Action as a PropertyChangeListener. ! * Subsequent changes to the Action will thus reconfigure the button * automatically.

                                        * * @param a The new value of the "action" property --- 1664,1670 ---- *

                                        This method also configures several of the button's properties from * the Action, by calling {@link #configurePropertiesFromAction}, and * subscribes the button to the Action as a PropertyChangeListener. ! * Subsequent changes to the Action will thus reconfigure the button * automatically.

                                        * * @param a The new value of the "action" property *************** public abstract class AbstractButton ext *** 1687,1693 **** configurePropertiesFromAction(action); if (action != null) { ! actionPropertyChangeListener = createActionPropertyChangeListener(a); action.addPropertyChangeListener(actionPropertyChangeListener); addActionListener(action); } --- 1687,1693 ---- configurePropertiesFromAction(action); if (action != null) { ! actionPropertyChangeListener = createActionPropertyChangeListener(a); action.addPropertyChangeListener(actionPropertyChangeListener); addActionListener(action); } *************** public abstract class AbstractButton ext *** 1713,1721 **** { if (default_icon == i) return; ! ! Icon old = default_icon; ! default_icon = i; firePropertyChange(ICON_CHANGED_PROPERTY, old, i); revalidate(); repaint(); --- 1713,1721 ---- { if (default_icon == i) return; ! ! Icon old = default_icon; ! default_icon = i; firePropertyChange(ICON_CHANGED_PROPERTY, old, i); revalidate(); repaint(); *************** public abstract class AbstractButton ext *** 1768,1774 **** { if (text == t) return; ! String old = text; text = t; firePropertyChange(TEXT_CHANGED_PROPERTY, old, t); --- 1768,1774 ---- { if (text == t) return; ! String old = text; text = t; firePropertyChange(TEXT_CHANGED_PROPERTY, old, t); *************** public abstract class AbstractButton ext *** 1778,1786 **** /** * Set the value of the {@link #iconTextGap} property. ! * * @param i The new value of the property ! * * @since 1.4 */ public void setIconTextGap(int i) --- 1778,1786 ---- /** * Set the value of the {@link #iconTextGap} property. ! * * @param i The new value of the property ! * * @since 1.4 */ public void setIconTextGap(int i) *************** public abstract class AbstractButton ext *** 1788,1794 **** clientIconTextGapSet = true; if (iconTextGap == i) return; ! int old = iconTextGap; iconTextGap = i; firePropertyChange("iconTextGap", new Integer(old), new Integer(i)); --- 1788,1794 ---- clientIconTextGapSet = true; if (iconTextGap == i) return; ! int old = iconTextGap; iconTextGap = i; firePropertyChange("iconTextGap", new Integer(old), new Integer(i)); *************** public abstract class AbstractButton ext *** 1800,1806 **** * Get the value of the {@link #iconTextGap} property. * * @return The current value of the property ! * * @since 1.4 */ public int getIconTextGap() --- 1800,1806 ---- * Get the value of the {@link #iconTextGap} property. * * @return The current value of the property ! * * @since 1.4 */ public int getIconTextGap() *************** public abstract class AbstractButton ext *** 1831,1837 **** { if (margin == m) return; ! Insets old = margin; margin = m; firePropertyChange(MARGIN_CHANGED_PROPERTY, old, m); --- 1831,1837 ---- { if (margin == m) return; ! Insets old = margin; margin = m; firePropertyChange(MARGIN_CHANGED_PROPERTY, old, m); *************** public abstract class AbstractButton ext *** 1864,1870 **** { if (pressed_icon == pressedIcon) return; ! Icon old = pressed_icon; pressed_icon = pressedIcon; firePropertyChange(PRESSED_ICON_CHANGED_PROPERTY, old, pressed_icon); --- 1864,1870 ---- { if (pressed_icon == pressedIcon) return; ! Icon old = pressed_icon; pressed_icon = pressedIcon; firePropertyChange(PRESSED_ICON_CHANGED_PROPERTY, old, pressed_icon); *************** public abstract class AbstractButton ext *** 1889,1895 **** Image grayImage = GrayFilter.createDisabledImage(iconImage); disabledIcon = new ImageIcon(grayImage); } ! return disabledIcon; } --- 1889,1895 ---- Image grayImage = GrayFilter.createDisabledImage(iconImage); disabledIcon = new ImageIcon(grayImage); } ! return disabledIcon; } *************** public abstract class AbstractButton ext *** 1940,1946 **** { if (focusPainted == p) return; ! boolean old = focusPainted; focusPainted = p; firePropertyChange(FOCUS_PAINTED_CHANGED_PROPERTY, old, p); --- 1940,1946 ---- { if (focusPainted == p) return; ! boolean old = focusPainted; focusPainted = p; firePropertyChange(FOCUS_PAINTED_CHANGED_PROPERTY, old, p); *************** public abstract class AbstractButton ext *** 2077,2083 **** * is changed, this listener is unsubscribed from the old model and * subscribed to the new one.

                                        * ! * @return A new ActionListener */ protected ActionListener createActionListener() { --- 2077,2083 ---- * is changed, this listener is unsubscribed from the old model and * subscribed to the new one.

                                        * ! * @return A new ActionListener */ protected ActionListener createActionListener() { *************** public abstract class AbstractButton ext *** 2098,2104 **** * button's action is changed subsequently, the listener is unsubscribed * from the old action and subscribed to the new one.

                                        * ! * @param a The Action which will be listened to, and which should be * the same as the source of any PropertyChangeEvents received by the * new listener returned from this method. * --- 2098,2104 ---- * button's action is changed subsequently, the listener is unsubscribed * from the old action and subscribed to the new one.

                                        * ! * @param a The Action which will be listened to, and which should be * the same as the source of any PropertyChangeEvents received by the * new listener returned from this method. * *************** public abstract class AbstractButton ext *** 2238,2249 **** { if (disabledSelectedIcon == icon) return; ! Icon old = disabledSelectedIcon; disabledSelectedIcon = icon; firePropertyChange(DISABLED_SELECTED_ICON_CHANGED_PROPERTY, old, icon); revalidate(); ! repaint(); } /** --- 2238,2249 ---- { if (disabledSelectedIcon == icon) return; ! Icon old = disabledSelectedIcon; disabledSelectedIcon = icon; firePropertyChange(DISABLED_SELECTED_ICON_CHANGED_PROPERTY, old, icon); revalidate(); ! repaint(); } /** *************** public abstract class AbstractButton ext *** 2270,2276 **** { if (rolloverIcon == r) return; ! Icon old = rolloverIcon; rolloverIcon = r; firePropertyChange(ROLLOVER_ICON_CHANGED_PROPERTY, old, rolloverIcon); --- 2270,2276 ---- { if (rolloverIcon == r) return; ! Icon old = rolloverIcon; rolloverIcon = r; firePropertyChange(ROLLOVER_ICON_CHANGED_PROPERTY, old, rolloverIcon); *************** public abstract class AbstractButton ext *** 2293,2302 **** } /** ! * Set the button's rollover selected icon and sets the ! * rolloverEnabled property to true. The look and ! * feel class should paint this icon when the "rolloverEnabled" property of ! * the button is true, the "selected" property of the button's * model is true, and the mouse rolls over the button. * * @param r The new rollover selected icon. --- 2293,2302 ---- } /** ! * Set the button's rollover selected icon and sets the ! * rolloverEnabled property to true. The look and ! * feel class should paint this icon when the "rolloverEnabled" property of ! * the button is true, the "selected" property of the button's * model is true, and the mouse rolls over the button. * * @param r The new rollover selected icon. *************** public abstract class AbstractButton ext *** 2305,2311 **** { if (rolloverSelectedIcon == r) return; ! Icon old = rolloverSelectedIcon; rolloverSelectedIcon = r; firePropertyChange(ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, old, r); --- 2305,2311 ---- { if (rolloverSelectedIcon == r) return; ! Icon old = rolloverSelectedIcon; rolloverSelectedIcon = r; firePropertyChange(ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, old, r); *************** public abstract class AbstractButton ext *** 2341,2347 **** { if (selectedIcon == s) return; ! Icon old = selectedIcon; selectedIcon = s; firePropertyChange(SELECTED_ICON_CHANGED_PROPERTY, old, s); --- 2341,2347 ---- { if (selectedIcon == s) return; ! Icon old = selectedIcon; selectedIcon = s; firePropertyChange(SELECTED_ICON_CHANGED_PROPERTY, old, s); *************** public abstract class AbstractButton ext *** 2418,2424 **** clientContentAreaFilledSet = true; if (contentAreaFilled == b) return; ! // The JDK sets the opaque property to the value of the contentAreaFilled // property, so should we do. setOpaque(b); --- 2418,2424 ---- clientContentAreaFilledSet = true; if (contentAreaFilled == b) return; ! // The JDK sets the opaque property to the value of the contentAreaFilled // property, so should we do. setOpaque(b); *************** public abstract class AbstractButton ext *** 2492,2498 **** { super.setUI(ui); } ! /** * Set the "UI" property of the button, which is a look and feel class * responsible for handling the button's input events and painting it. --- 2492,2498 ---- { super.setUI(ui); } ! /** * Set the "UI" property of the button, which is a look and feel class * responsible for handling the button's input events and painting it. *************** public abstract class AbstractButton ext *** 2503,2509 **** { return (ButtonUI) ui; } ! /** * Set the "UI" property to a class constructed, via the {@link * UIManager}, from the current look and feel. This should be overridden --- 2503,2509 ---- { return (ButtonUI) ui; } ! /** * Set the "UI" property to a class constructed, via the {@link * UIManager}, from the current look and feel. This should be overridden *************** public abstract class AbstractButton ext *** 2520,2526 **** * into a single ActionEvent. * * @return the time in milliseconds ! * * @since 1.4 */ public long getMultiClickThreshhold() --- 2520,2526 ---- * into a single ActionEvent. * * @return the time in milliseconds ! * * @since 1.4 */ public long getMultiClickThreshhold() *************** public abstract class AbstractButton ext *** 2533,2539 **** * ActionEvent. * * @param threshhold the time in milliseconds ! * * @since 1.4 */ public void setMultiClickThreshhold(long threshhold) --- 2533,2539 ---- * ActionEvent. * * @param threshhold the time in milliseconds ! * * @since 1.4 */ public void setMultiClickThreshhold(long threshhold) *************** public abstract class AbstractButton ext *** 2586,2592 **** /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * --- 2586,2592 ---- /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/AbstractCellEditor.java gcc-4.6.0/libjava/classpath/javax/swing/AbstractCellEditor.java *** gcc-4.5.2/libjava/classpath/javax/swing/AbstractCellEditor.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/AbstractCellEditor.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractCellEditor *** 69,75 **** /** * Creates a new instance of AbstractCellEditor. */ ! public AbstractCellEditor() { listenerList = new EventListenerList(); changeEvent = new ChangeEvent(this); --- 69,75 ---- /** * Creates a new instance of AbstractCellEditor. */ ! public AbstractCellEditor() { listenerList = new EventListenerList(); changeEvent = new ChangeEvent(this); *************** public abstract class AbstractCellEditor *** 85,94 **** * @return true if the cell is editable using * event, false if it's not */ ! public boolean isCellEditable(EventObject event) { return true; ! } /** * Returns true if the editing cell should be selected, --- 85,94 ---- * @return true if the cell is editable using * event, false if it's not */ ! public boolean isCellEditable(EventObject event) { return true; ! } /** * Returns true if the editing cell should be selected, *************** public abstract class AbstractCellEditor *** 101,107 **** * @return true if the editing cell should be selected, * false otherwise */ ! public boolean shouldSelectCell(EventObject event) { return true; } --- 101,107 ---- * @return true if the editing cell should be selected, * false otherwise */ ! public boolean shouldSelectCell(EventObject event) { return true; } *************** public abstract class AbstractCellEditor *** 113,119 **** * @return true if editing has been stopped successfully, * falseotherwise */ ! public boolean stopCellEditing() { fireEditingStopped(); return true; --- 113,119 ---- * @return true if editing has been stopped successfully, * falseotherwise */ ! public boolean stopCellEditing() { fireEditingStopped(); return true; *************** public abstract class AbstractCellEditor *** 123,132 **** * Stop editing the cell and do not accept any partial value that has * been entered into the cell. */ ! public void cancelCellEditing() { fireEditingCanceled(); ! } /** * Adds a CellEditorListener to the list of CellEditorListeners of this --- 123,132 ---- * Stop editing the cell and do not accept any partial value that has * been entered into the cell. */ ! public void cancelCellEditing() { fireEditingCanceled(); ! } /** * Adds a CellEditorListener to the list of CellEditorListeners of this *************** public abstract class AbstractCellEditor *** 149,155 **** { listenerList.remove(CellEditorListener.class, listener); } ! /** * Returns the list of CellEditorListeners that have been registered * in this CellEditor. --- 149,155 ---- { listenerList.remove(CellEditorListener.class, listener); } ! /** * Returns the list of CellEditorListeners that have been registered * in this CellEditor. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/AbstractListModel.java gcc-4.6.0/libjava/classpath/javax/swing/AbstractListModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/AbstractListModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/AbstractListModel.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractListModel *** 125,131 **** { ListDataEvent event = new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED, ! startIndex, endIndex); ListDataListener[] listeners = getListDataListeners(); for (int index = 0; index < listeners.length; index++) --- 125,131 ---- { ListDataEvent event = new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED, ! startIndex, endIndex); ListDataListener[] listeners = getListDataListeners(); for (int index = 0; index < listeners.length; index++) *************** public abstract class AbstractListModel *** 148,154 **** { ListDataEvent event = new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED, ! startIndex, endIndex); ListDataListener[] listeners = getListDataListeners(); for (int index = 0; index < listeners.length; index++) --- 148,154 ---- { ListDataEvent event = new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED, ! startIndex, endIndex); ListDataListener[] listeners = getListDataListeners(); for (int index = 0; index < listeners.length; index++) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/AbstractSpinnerModel.java gcc-4.6.0/libjava/classpath/javax/swing/AbstractSpinnerModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/AbstractSpinnerModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/AbstractSpinnerModel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.EventListenerLi *** 47,53 **** /** * Provides standard implementations for some of the methods in * {@link SpinnerModel}. ! * * @since 1.4 * * @author Ka-Hing Cheung --- 47,53 ---- /** * Provides standard implementations for some of the methods in * {@link SpinnerModel}. ! * * @since 1.4 * * @author Ka-Hing Cheung *************** import javax.swing.event.EventListenerLi *** 55,61 **** public abstract class AbstractSpinnerModel implements SpinnerModel { private ChangeEvent changeEvent = new ChangeEvent(this); ! /** Stores the listeners registered with the model. */ protected EventListenerList listenerList = new EventListenerList(); --- 55,61 ---- public abstract class AbstractSpinnerModel implements SpinnerModel { private ChangeEvent changeEvent = new ChangeEvent(this); ! /** Stores the listeners registered with the model. */ protected EventListenerList listenerList = new EventListenerList(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/Action.java gcc-4.6.0/libjava/classpath/javax/swing/Action.java *** gcc-4.5.2/libjava/classpath/javax/swing/Action.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/Action.java Tue Jan 11 19:46:05 2011 *************** import java.beans.PropertyChangeListener *** 44,52 **** * Provides a convenient central point of control for some task * that can be triggered by more than one control in a Swing user interface * (for example, a menu item and a toolbar button). ! * * @see AbstractButton#setAction(Action) ! * * @author Ronald Veldema (rveldema@cs.vu.nl) * @author Andrew Selkirk */ --- 44,52 ---- * Provides a convenient central point of control for some task * that can be triggered by more than one control in a Swing user interface * (for example, a menu item and a toolbar button). ! * * @see AbstractButton#setAction(Action) ! * * @author Ronald Veldema (rveldema@cs.vu.nl) * @author Andrew Selkirk */ *************** public interface Action extends ActionLi *** 96,118 **** /** * Returns the value associated with the specified key. ! * * @param key the key (not null). ! * ! * @return The value associated with the specified key, or * null if the key is not found. */ Object getValue(String key); /** ! * Sets the value associated with the specified key and sends a ! * {@link java.beans.PropertyChangeEvent} to all registered listeners. ! * The standard keys are defined in this interface: {@link #NAME}, ! * {@link #SHORT_DESCRIPTION}, {@link #LONG_DESCRIPTION}, ! * {@link #SMALL_ICON}, {@link #ACTION_COMMAND_KEY}, ! * {@link #ACCELERATOR_KEY} and {@link #MNEMONIC_KEY}. Any existing value ! * associated with the key will be overwritten. ! * * @param key the key (not null). * @param value the value (null permitted). */ --- 96,118 ---- /** * Returns the value associated with the specified key. ! * * @param key the key (not null). ! * ! * @return The value associated with the specified key, or * null if the key is not found. */ Object getValue(String key); /** ! * Sets the value associated with the specified key and sends a ! * {@link java.beans.PropertyChangeEvent} to all registered listeners. ! * The standard keys are defined in this interface: {@link #NAME}, ! * {@link #SHORT_DESCRIPTION}, {@link #LONG_DESCRIPTION}, ! * {@link #SMALL_ICON}, {@link #ACTION_COMMAND_KEY}, ! * {@link #ACCELERATOR_KEY} and {@link #MNEMONIC_KEY}. Any existing value ! * associated with the key will be overwritten. ! * * @param key the key (not null). * @param value the value (null permitted). */ *************** public interface Action extends ActionLi *** 120,135 **** /** * Returns the flag that indicates whether or not this action is enabled. ! * * @return The flag. */ boolean isEnabled(); /** * Sets the flag that indicates whether or not this action is enabled. If ! * the value changes, a {@link java.beans.PropertyChangeEvent} is sent to * all registered listeners. ! * * @param b the new value of the flag. */ void setEnabled(boolean b); --- 120,135 ---- /** * Returns the flag that indicates whether or not this action is enabled. ! * * @return The flag. */ boolean isEnabled(); /** * Sets the flag that indicates whether or not this action is enabled. If ! * the value changes, a {@link java.beans.PropertyChangeEvent} is sent to * all registered listeners. ! * * @param b the new value of the flag. */ void setEnabled(boolean b); *************** public interface Action extends ActionLi *** 137,151 **** /** * Registers a listener to receive notification whenever one of the * action's properties is modified. ! * * @param listener the listener. */ void addPropertyChangeListener(PropertyChangeListener listener); /** * Deregisters a listener so that it no longer receives notification of ! * changes to the action's properties. ! * * @param listener the listener. */ void removePropertyChangeListener(PropertyChangeListener listener); --- 137,151 ---- /** * Registers a listener to receive notification whenever one of the * action's properties is modified. ! * * @param listener the listener. */ void addPropertyChangeListener(PropertyChangeListener listener); /** * Deregisters a listener so that it no longer receives notification of ! * changes to the action's properties. ! * * @param listener the listener. */ void removePropertyChangeListener(PropertyChangeListener listener); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/BorderFactory.java gcc-4.6.0/libjava/classpath/javax/swing/BorderFactory.java *** gcc-4.5.2/libjava/classpath/javax/swing/BorderFactory.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/BorderFactory.java Tue Jan 11 19:46:05 2011 *************** public class BorderFactory *** 413,419 **** * Create a matte-look border using a solid color. (The difference between * this border and a line border is that you can specify the individual border * dimensions.) ! * * @param top * An int specifying the width of the top in pixels * @param left --- 413,419 ---- * Create a matte-look border using a solid color. (The difference between * this border and a line border is that you can specify the individual border * dimensions.) ! * * @param top * An int specifying the width of the top in pixels * @param left diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/BoundedRangeModel.java gcc-4.6.0/libjava/classpath/javax/swing/BoundedRangeModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/BoundedRangeModel.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/BoundedRangeModel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.ChangeEvent; *** 42,52 **** import javax.swing.event.ChangeListener; /** ! * The data model that represents a range that is constrained to fit ! * within specified bounds. The range is defined as value ! * to value + extent, where both value and * extent are integers, and extent >= 0. The bounds ! * are defined by integers minimum and maximum. *

                                        * This type of model is used in components that display a range of values, * like {@link JProgressBar} and {@link JSlider}. --- 42,52 ---- import javax.swing.event.ChangeListener; /** ! * The data model that represents a range that is constrained to fit ! * within specified bounds. The range is defined as value ! * to value + extent, where both value and * extent are integers, and extent >= 0. The bounds ! * are defined by integers minimum and maximum. *

                                        * This type of model is used in components that display a range of values, * like {@link JProgressBar} and {@link JSlider}. *************** public interface BoundedRangeModel *** 57,63 **** { /** * Returns the current value for the model. ! * * @return The current value for the model. * * @see #setValue(int) --- 57,63 ---- { /** * Returns the current value for the model. ! * * @return The current value for the model. * * @see #setValue(int) *************** public interface BoundedRangeModel *** 68,74 **** * Sets the value for the model and sends a {@link ChangeEvent} to * all registered listeners. The new value must satisfy the constraint * min <= value <= value + extent <= max. ! * * @param value the value * * @see #getValue() --- 68,74 ---- * Sets the value for the model and sends a {@link ChangeEvent} to * all registered listeners. The new value must satisfy the constraint * min <= value <= value + extent <= max. ! * * @param value the value * * @see #getValue() *************** public interface BoundedRangeModel *** 76,84 **** void setValue(int value); /** ! * Returns the lower bound for the model. The start of the model's range * (see {@link #getValue()}) cannot be less than this lower bound. ! * * @return The lower bound for the model. * * @see #setMinimum(int) --- 76,84 ---- void setValue(int value); /** ! * Returns the lower bound for the model. The start of the model's range * (see {@link #getValue()}) cannot be less than this lower bound. ! * * @return The lower bound for the model. * * @see #setMinimum(int) *************** public interface BoundedRangeModel *** 90,96 **** * Sets the lower bound for the model and sends a {@link ChangeEvent} to all * registered listeners. The new minimum must be less than or equal to the * start value of the model's range (as returned by {@link #getValue()}). ! * * @param minimum the minimum value * * @see #getMinimum() --- 90,96 ---- * Sets the lower bound for the model and sends a {@link ChangeEvent} to all * registered listeners. The new minimum must be less than or equal to the * start value of the model's range (as returned by {@link #getValue()}). ! * * @param minimum the minimum value * * @see #getMinimum() *************** public interface BoundedRangeModel *** 99,107 **** /** * Returns the upper bound for the model. This sets an upper limit for the ! * end value of the model's range ({@link #getValue()} + * {@link #getExtent()}). ! * * @return The upper bound for the model. * * @see #setMaximum(int) --- 99,107 ---- /** * Returns the upper bound for the model. This sets an upper limit for the ! * end value of the model's range ({@link #getValue()} + * {@link #getExtent()}). ! * * @return The upper bound for the model. * * @see #setMaximum(int) *************** public interface BoundedRangeModel *** 112,120 **** /** * Sets the upper bound for the model and sends a {@link ChangeEvent} to all * registered listeners. The new maximum must be greater than or equal to the ! * end value of the model's range (as returned by {@link #getValue()} + * {@link #getExtent()}). ! * * @param maximum the maximum value * * @see #getMaximum() --- 112,120 ---- /** * Sets the upper bound for the model and sends a {@link ChangeEvent} to all * registered listeners. The new maximum must be greater than or equal to the ! * end value of the model's range (as returned by {@link #getValue()} + * {@link #getExtent()}). ! * * @param maximum the maximum value * * @see #getMaximum() *************** public interface BoundedRangeModel *** 123,129 **** /** * Returns the value of the valueIsAdjusting property. ! * * @return true if value is adjusting, * otherwise false * --- 123,129 ---- /** * Returns the value of the valueIsAdjusting property. ! * * @return true if value is adjusting, * otherwise false * *************** public interface BoundedRangeModel *** 133,139 **** /** * Sets the valueIsAdjusting property. ! * * @param adjusting true if adjusting, * false otherwise * --- 133,139 ---- /** * Sets the valueIsAdjusting property. ! * * @param adjusting true if adjusting, * false otherwise * *************** public interface BoundedRangeModel *** 153,159 **** /** * Sets the extent, which is the length of the model's range, and sends a * {@link ChangeEvent} to all registered listeners. ! * * @param extent the extent * * @see #getExtent() --- 153,159 ---- /** * Sets the extent, which is the length of the model's range, and sends a * {@link ChangeEvent} to all registered listeners. ! * * @param extent the extent * * @see #getExtent() *************** public interface BoundedRangeModel *** 162,173 **** /** * Sets all the properties for the model in a single call. ! * * @param value the value * @param extent the extent * @param minimum the minimum value * @param maximum the maximum value ! * @param adjusting a flag that indicates the model is being adjusted * continuously. */ void setRangeProperties(int value, int extent, int minimum, int maximum, --- 162,173 ---- /** * Sets all the properties for the model in a single call. ! * * @param value the value * @param extent the extent * @param minimum the minimum value * @param maximum the maximum value ! * @param adjusting a flag that indicates the model is being adjusted * continuously. */ void setRangeProperties(int value, int extent, int minimum, int maximum, *************** public interface BoundedRangeModel *** 175,190 **** /** * Adds a ChangeListener to this object. ! * * @param listener the listener to add ! * * @see #removeChangeListener(ChangeListener) */ void addChangeListener(ChangeListener listener); /** * Removes a ChangeListener from this object. ! * * @param listener the listener to remove * * @see #addChangeListener(ChangeListener) --- 175,190 ---- /** * Adds a ChangeListener to this object. ! * * @param listener the listener to add ! * * @see #removeChangeListener(ChangeListener) */ void addChangeListener(ChangeListener listener); /** * Removes a ChangeListener from this object. ! * * @param listener the listener to remove * * @see #addChangeListener(ChangeListener) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/Box.java gcc-4.6.0/libjava/classpath/javax/swing/Box.java *** gcc-4.5.2/libjava/classpath/javax/swing/Box.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/Box.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleRol *** 60,78 **** public class Box extends JComponent implements Accessible { private static final long serialVersionUID = 1525417495883046342L; ! /** * Provides accessibility support for Boxes. */ protected class AccessibleBox extends Container.AccessibleAWTContainer { private static final long serialVersionUID = -7775079816389931944L; ! protected AccessibleBox() { // Nothing to do here. } ! public AccessibleRole getAccessibleRole() { return null; --- 60,78 ---- public class Box extends JComponent implements Accessible { private static final long serialVersionUID = 1525417495883046342L; ! /** * Provides accessibility support for Boxes. */ protected class AccessibleBox extends Container.AccessibleAWTContainer { private static final long serialVersionUID = -7775079816389931944L; ! protected AccessibleBox() { // Nothing to do here. } ! public AccessibleRole getAccessibleRole() { return null; *************** public class Box extends JComponent impl *** 85,91 **** public static class Filler extends JComponent implements Accessible { private static final long serialVersionUID = -1204263191910183998L; ! /** * Provides accessibility support for Box.Filler. */ --- 85,91 ---- public static class Filler extends JComponent implements Accessible { private static final long serialVersionUID = -1204263191910183998L; ! /** * Provides accessibility support for Box.Filler. */ *************** public class Box extends JComponent impl *** 93,112 **** extends Component.AccessibleAWTComponent { private static final long serialVersionUID = 164963348357479321L; ! protected AccessibleBoxFiller() { // Nothing to do here. } ! public AccessibleRole getAccessibleRole() { return null; } } ! private transient Dimension min, pref, max; ! /** * Creates a new instance of Filler. * --- 93,112 ---- extends Component.AccessibleAWTComponent { private static final long serialVersionUID = 164963348357479321L; ! protected AccessibleBoxFiller() { // Nothing to do here. } ! public AccessibleRole getAccessibleRole() { return null; } } ! private transient Dimension min, pref, max; ! /** * Creates a new instance of Filler. * *************** public class Box extends JComponent impl *** 118,124 **** { changeShape(min, pref, max); } ! /** * Changes the dimensions of this Filler. * --- 118,124 ---- { changeShape(min, pref, max); } ! /** * Changes the dimensions of this Filler. * *************** public class Box extends JComponent impl *** 130,145 **** { this.min = min; this.pref = pref; ! this.max = max; } ! public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleBoxFiller(); return accessibleContext; } ! /** * Returns the maximum size of this Filler. * --- 130,145 ---- { this.min = min; this.pref = pref; ! this.max = max; } ! public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleBoxFiller(); return accessibleContext; } ! /** * Returns the maximum size of this Filler. * *************** public class Box extends JComponent impl *** 149,155 **** { return max; } ! /** * Returns the minimum size of this Filler. * --- 149,155 ---- { return max; } ! /** * Returns the minimum size of this Filler. * *************** public class Box extends JComponent impl *** 159,165 **** { return min; } ! /** * Returns the preferred size of this Filler. * --- 159,165 ---- { return min; } ! /** * Returns the preferred size of this Filler. * *************** public class Box extends JComponent impl *** 170,176 **** return pref; } } ! /** * Creates a new Box component, that lays out its children according * to the axis parameter. --- 170,176 ---- return pref; } } ! /** * Creates a new Box component, that lays out its children according * to the axis parameter. *************** public class Box extends JComponent impl *** 184,192 **** */ public Box(int axis) { ! super.setLayout(new BoxLayout(this, axis)); } ! /** * Creates a filler component which acts as glue between components. * It does not take space unless some extra space is available. If extra --- 184,192 ---- */ public Box(int axis) { ! super.setLayout(new BoxLayout(this, axis)); } ! /** * Creates a filler component which acts as glue between components. * It does not take space unless some extra space is available. If extra *************** public class Box extends JComponent impl *** 200,211 **** new Dimension(Short.MAX_VALUE, Short.MAX_VALUE)); return glue; } ! public static Box createHorizontalBox() { return new Box(BoxLayout.X_AXIS); } ! /** * Creates a filler component which acts as glue between components. * It does not take space unless some extra space is available. If extra --- 200,211 ---- new Dimension(Short.MAX_VALUE, Short.MAX_VALUE)); return glue; } ! public static Box createHorizontalBox() { return new Box(BoxLayout.X_AXIS); } ! /** * Creates a filler component which acts as glue between components. * It does not take space unless some extra space is available. If extra *************** public class Box extends JComponent impl *** 219,225 **** new Dimension(Short.MAX_VALUE, 0)); return glue; } ! /** * Creates a filler component which acts as strut between components. * It will fill exactly the specified horizontal size. --- 219,225 ---- new Dimension(Short.MAX_VALUE, 0)); return glue; } ! /** * Creates a filler component which acts as strut between components. * It will fill exactly the specified horizontal size. *************** public class Box extends JComponent impl *** 235,251 **** new Dimension(width, Integer.MAX_VALUE)); return strut; } ! public static Component createRigidArea(Dimension d) { return new Filler(d, d, d); } ! public static Box createVerticalBox() { return new Box(BoxLayout.Y_AXIS); } ! /** * Creates a filler component which acts as glue between components. * It does not take space unless some extra space is available. If extra --- 235,251 ---- new Dimension(width, Integer.MAX_VALUE)); return strut; } ! public static Component createRigidArea(Dimension d) { return new Filler(d, d, d); } ! public static Box createVerticalBox() { return new Box(BoxLayout.Y_AXIS); } ! /** * Creates a filler component which acts as glue between components. * It does not take space unless some extra space is available. If extra *************** public class Box extends JComponent impl *** 257,263 **** { return createGlue(); } ! /** * Creates a filler component which acts as strut between components. * It will fill exactly the specified vertical size. --- 257,263 ---- { return createGlue(); } ! /** * Creates a filler component which acts as strut between components. * It will fill exactly the specified vertical size. *************** public class Box extends JComponent impl *** 273,290 **** new Dimension(Integer.MAX_VALUE, height)); return strut; } ! public void setLayout(LayoutManager l) { throw new AWTError("Not allowed to set layout managers for boxes."); } ! public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleBox(); return accessibleContext; } ! ! } --- 273,290 ---- new Dimension(Integer.MAX_VALUE, height)); return strut; } ! public void setLayout(LayoutManager l) { throw new AWTError("Not allowed to set layout managers for boxes."); } ! public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleBox(); return accessibleContext; } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/BoxLayout.java gcc-4.6.0/libjava/classpath/javax/swing/BoxLayout.java *** gcc-4.5.2/libjava/classpath/javax/swing/BoxLayout.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/BoxLayout.java Tue Jan 11 19:46:05 2011 *************** public class BoxLayout implements Layout *** 85,91 **** * The container given to the constructor. */ private Container container; ! /** * Current type of component layouting. Defaults to X_AXIS. */ --- 85,91 ---- * The container given to the constructor. */ private Container container; ! /** * Current type of component layouting. Defaults to X_AXIS. */ *************** public class BoxLayout implements Layout *** 174,187 **** private boolean isHorizontalIn(Container parent) { ComponentOrientation orientation = parent.getComponentOrientation(); ! return this.way == X_AXIS ! || (this.way == LINE_AXIS && orientation.isHorizontal()) || (this.way == PAGE_AXIS && (!orientation.isHorizontal())); } ! /** * Returns the preferred size of the layout. --- 174,187 ---- private boolean isHorizontalIn(Container parent) { ComponentOrientation orientation = parent.getComponentOrientation(); ! return this.way == X_AXIS ! || (this.way == LINE_AXIS && orientation.isHorizontal()) || (this.way == PAGE_AXIS && (!orientation.isHorizontal())); } ! /** * Returns the preferred size of the layout. *************** public class BoxLayout implements Layout *** 236,242 **** { if (container != parent) throw new AWTError("BoxLayout can't be shared"); ! checkLayout(); Component[] children = container.getComponents(); Insets in = container.getInsets(); --- 236,242 ---- { if (container != parent) throw new AWTError("BoxLayout can't be shared"); ! checkLayout(); Component[] children = container.getComponents(); Insets in = container.getInsets(); *************** public class BoxLayout implements Layout *** 337,343 **** Insets i = container.getInsets(); int xDim = xTotal.maximum + i.left + i.right; int yDim = yTotal.maximum + i.top + i.bottom; ! // Check for overflow if (xDim < xTotal.maximum) xDim = Integer.MAX_VALUE; --- 337,343 ---- Insets i = container.getInsets(); int xDim = xTotal.maximum + i.left + i.right; int yDim = yTotal.maximum + i.top + i.bottom; ! // Check for overflow if (xDim < xTotal.maximum) xDim = Integer.MAX_VALUE; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ButtonGroup.java gcc-4.6.0/libjava/classpath/javax/swing/ButtonGroup.java *** gcc-4.5.2/libjava/classpath/javax/swing/ButtonGroup.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/ButtonGroup.java Tue Jan 11 19:46:05 2011 *************** public class ButtonGroup implements Seri *** 84,90 **** /** * Adds a button to this group. If the button is in the selected state, then: *

                                          ! *
                                        • if the group has no current selection, the new button becomes the * selected button for the group;
                                        • *
                                        • if the group already has a selected button, the new button is set to * "not selected".
                                        • --- 84,90 ---- /** * Adds a button to this group. If the button is in the selected state, then: *
                                            ! *
                                          • if the group has no current selection, the new button becomes the * selected button for the group;
                                          • *
                                          • if the group already has a selected button, the new button is set to * "not selected".
                                          • *************** public class ButtonGroup implements Seri *** 103,116 **** sel = b.getModel(); else b.setSelected(false); ! } buttons.addElement(b); } /** ! * Removes the specified button from this group. If the button is the ! * selected button, the current selection is set to null. ! * The group for the removed button's model is set to null. * * @param b the button to remove (null is ignored). */ --- 103,116 ---- sel = b.getModel(); else b.setSelected(false); ! } buttons.addElement(b); } /** ! * Removes the specified button from this group. If the button is the ! * selected button, the current selection is set to null. ! * The group for the removed button's model is set to null. * * @param b the button to remove (null is ignored). */ *************** public class ButtonGroup implements Seri *** 180,192 **** { ButtonModel old = sel; sel = m; ! if (old != null) old.setSelected(false); ! if (m != null) sel.setSelected(true); ! AbstractButton button = findButton(old); if (button != null) button.repaint(); --- 180,192 ---- { ButtonModel old = sel; sel = m; ! if (old != null) old.setSelected(false); ! if (m != null) sel.setSelected(true); ! AbstractButton button = findButton(old); if (button != null) button.repaint(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ButtonModel.java gcc-4.6.0/libjava/classpath/javax/swing/ButtonModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/ButtonModel.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/ButtonModel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.ChangeListener; *** 48,54 **** * The data model that is used in all kinds of buttons. */ public interface ButtonModel extends ItemSelectable ! { /** * Returns true if the button is armed, false --- 48,54 ---- * The data model that is used in all kinds of buttons. */ public interface ButtonModel extends ItemSelectable ! { /** * Returns true if the button is armed, false *************** public interface ButtonModel extends Ite *** 56,62 **** * * A button is armed, when the user has pressed the mouse over it, but has * not yet released the mouse. ! * * @return true if the button is armed, false * otherwise * --- 56,62 ---- * * A button is armed, when the user has pressed the mouse over it, but has * not yet released the mouse. ! * * @return true if the button is armed, false * otherwise * *************** public interface ButtonModel extends Ite *** 145,151 **** * * An ActionEvent is usually fired when the user clicks on a * button. ! * * @param l the action listener to add * * @see #removeActionListener(ActionListener) --- 145,151 ---- * * An ActionEvent is usually fired when the user clicks on a * button. ! * * @param l the action listener to add * * @see #removeActionListener(ActionListener) *************** public interface ButtonModel extends Ite *** 225,231 **** /** * Returns the keyboard mnemonic for the button. This specifies a shortcut * or accelerator key that can be used to activate the button. ! * * @return the keyboard mnemonic for the button * * @see #setMnemonic(int) --- 225,231 ---- /** * Returns the keyboard mnemonic for the button. This specifies a shortcut * or accelerator key that can be used to activate the button. ! * * @return the keyboard mnemonic for the button * * @see #setMnemonic(int) *************** public interface ButtonModel extends Ite *** 235,241 **** /** * Sets the keyboard mnemonic for the button. This specifies a shortcut * or accelerator key that can be used to activate the button. ! * * @param key the keyboard mnemonic for the button * * @see #getMnemonic() --- 235,241 ---- /** * Sets the keyboard mnemonic for the button. This specifies a shortcut * or accelerator key that can be used to activate the button. ! * * @param key the keyboard mnemonic for the button * * @see #getMnemonic() *************** public interface ButtonModel extends Ite *** 276,282 **** * Some kinds of buttons (e.g. toggle buttons, check boxes, radio buttons) * can be in one of two states: selected or unselected. The selected state * is usually toggled by clicking on the button. ! * * @param b true if the button is selected, false * otherwise * --- 276,282 ---- * Some kinds of buttons (e.g. toggle buttons, check boxes, radio buttons) * can be in one of two states: selected or unselected. The selected state * is usually toggled by clicking on the button. ! * * @param b true if the button is selected, false * otherwise * *************** public interface ButtonModel extends Ite *** 291,297 **** * Some kinds of buttons (e.g. toggle buttons, check boxes, radio buttons) * can be in one of two states: selected or unselected. The selected state * is usually toggled by clicking on the button. ! * * @return true if the button is selected, false * otherwise * --- 291,297 ---- * Some kinds of buttons (e.g. toggle buttons, check boxes, radio buttons) * can be in one of two states: selected or unselected. The selected state * is usually toggled by clicking on the button. ! * * @return true if the button is selected, false * otherwise * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/CellEditor.java gcc-4.6.0/libjava/classpath/javax/swing/CellEditor.java *** gcc-4.5.2/libjava/classpath/javax/swing/CellEditor.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/CellEditor.java Tue Jan 11 19:46:05 2011 *************** public interface CellEditor *** 53,69 **** { /** * Returns the current value for the CellEditor. ! * * @return The value. */ Object getCellEditorValue(); /** ! * Returns true if the specified event makes the editor * editable, and false otherwise. ! * * @param event the event. ! * * @return A boolean. */ boolean isCellEditable(EventObject event); --- 53,69 ---- { /** * Returns the current value for the CellEditor. ! * * @return The value. */ Object getCellEditorValue(); /** ! * Returns true if the specified event makes the editor * editable, and false otherwise. ! * * @param event the event. ! * * @return A boolean. */ boolean isCellEditable(EventObject event); *************** public interface CellEditor *** 76,85 **** boolean shouldSelectCell(EventObject event); /** ! * Signals to the CellEditor that it should stop editing, * accepting the current cell value, and returns true if the * editor actually stops editing, and false otherwise. ! * * @return A boolean. */ boolean stopCellEditing(); --- 76,85 ---- boolean shouldSelectCell(EventObject event); /** ! * Signals to the CellEditor that it should stop editing, * accepting the current cell value, and returns true if the * editor actually stops editing, and false otherwise. ! * * @return A boolean. */ boolean stopCellEditing(); *************** public interface CellEditor *** 90,106 **** void cancelCellEditing(); /** ! * Registers a listener to receive {@link ChangeEvent} notifications from the * CellEditor. ! * * @param listener the listener. */ void addCellEditorListener(CellEditorListener listener); /** ! * Deregisters a listener so that it no longer receives {@link ChangeEvent} * notifications from the CellEditor. ! * * @param listener the listener. */ void removeCellEditorListener(CellEditorListener listener); --- 90,106 ---- void cancelCellEditing(); /** ! * Registers a listener to receive {@link ChangeEvent} notifications from the * CellEditor. ! * * @param listener the listener. */ void addCellEditorListener(CellEditorListener listener); /** ! * Deregisters a listener so that it no longer receives {@link ChangeEvent} * notifications from the CellEditor. ! * * @param listener the listener. */ void removeCellEditorListener(CellEditorListener listener); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/CellRendererPane.java gcc-4.6.0/libjava/classpath/javax/swing/CellRendererPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/CellRendererPane.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/CellRendererPane.java Tue Jan 11 19:46:05 2011 *************** public class CellRendererPane extends Co *** 162,168 **** * painting */ public void paintComponent(Graphics graphics, Component c, ! Container p, int x, int y, int w, int h, boolean shouldValidate) { // reparent c --- 162,168 ---- * painting */ public void paintComponent(Graphics graphics, Component c, ! Container p, int x, int y, int w, int h, boolean shouldValidate) { // reparent c diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ComboBoxModel.java gcc-4.6.0/libjava/classpath/javax/swing/ComboBoxModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/ComboBoxModel.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/ComboBoxModel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.ListDataEvent; *** 41,49 **** import javax.swing.event.ListDataListener; /** ! * The data model for a {@link JComboBox}. This model keeps track of elements * contained in the JComboBox as well as the current ! * combo box selection. Whenever the selection in the JComboBox * changes, the ComboBoxModel should fire a {@link ListDataEvent} * to the model's {@link ListDataListener}s. * --- 41,49 ---- import javax.swing.event.ListDataListener; /** ! * The data model for a {@link JComboBox}. This model keeps track of elements * contained in the JComboBox as well as the current ! * combo box selection. Whenever the selection in the JComboBox * changes, the ComboBoxModel should fire a {@link ListDataEvent} * to the model's {@link ListDataListener}s. * *************** import javax.swing.event.ListDataListene *** 52,59 **** public interface ComboBoxModel extends ListModel { /** ! * Sets the selected item in the combo box. Classes implementing this ! * interface should fire a {@link ListDataEvent} to all registered * {@link ListDataListener}s to indicate that the selection has changed. * * @param item the selected item (null permitted). --- 52,59 ---- public interface ComboBoxModel extends ListModel { /** ! * Sets the selected item in the combo box. Classes implementing this ! * interface should fire a {@link ListDataEvent} to all registered * {@link ListDataListener}s to indicate that the selection has changed. * * @param item the selected item (null permitted). diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ComponentInputMap.java gcc-4.6.0/libjava/classpath/javax/swing/ComponentInputMap.java *** gcc-4.5.2/libjava/classpath/javax/swing/ComponentInputMap.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/ComponentInputMap.java Tue Jan 11 19:46:05 2011 *************** public class ComponentInputMap extends I *** 64,70 **** { if (comp == null) throw new IllegalArgumentException(); ! this.component = comp; } --- 64,70 ---- { if (comp == null) throw new IllegalArgumentException(); ! this.component = comp; } *************** public class ComponentInputMap extends I *** 117,129 **** if (parentMap != null && !(parentMap instanceof ComponentInputMap)) throw new IllegalArgumentException("ComponentInputMaps can only have " + "ComponentInputMaps for parents"); ! ! if (parentMap != null && ((ComponentInputMap) parentMap).getComponent() != component) ! throw new IllegalArgumentException("ComponentInputMaps' parents must " + "be associated with the same JComponents"); ! super.setParent(parentMap); if (component != null) component.updateComponentInputMap(this); --- 117,129 ---- if (parentMap != null && !(parentMap instanceof ComponentInputMap)) throw new IllegalArgumentException("ComponentInputMaps can only have " + "ComponentInputMaps for parents"); ! ! if (parentMap != null && ((ComponentInputMap) parentMap).getComponent() != component) ! throw new IllegalArgumentException("ComponentInputMaps' parents must " + "be associated with the same JComponents"); ! super.setParent(parentMap); if (component != null) component.updateComponentInputMap(this); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DebugGraphics.java gcc-4.6.0/libjava/classpath/javax/swing/DebugGraphics.java *** gcc-4.5.2/libjava/classpath/javax/swing/DebugGraphics.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/DebugGraphics.java Tue Jan 11 19:46:05 2011 *************** public class DebugGraphics extends Graph *** 153,159 **** /** * Sets the color to draw stuff with. ! * * @param color The color */ public void setColor(Color color) --- 153,159 ---- /** * Sets the color to draw stuff with. ! * * @param color The color */ public void setColor(Color color) *************** public class DebugGraphics extends Graph *** 301,307 **** /** * Returns the color used for drawing. ! * * @return The color. */ public Color getColor() --- 301,307 ---- /** * Returns the color used for drawing. ! * * @return The color. */ public Color getColor() *************** public class DebugGraphics extends Graph *** 454,460 **** // Ignore this. } } ! /** * Draws a rectangle. * --- 454,460 ---- // Ignore this. } } ! /** * Draws a rectangle. * *************** public class DebugGraphics extends Graph *** 552,559 **** * @param arcWidth TODO * @param arcHeight TODO */ ! public void drawRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { if ((debugOptions & LOG_OPTION) != 0) { --- 552,559 ---- * @param arcWidth TODO * @param arcHeight TODO */ ! public void drawRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 576,583 **** * @param arcWidth TODO * @param arcHeight TODO */ ! public void fillRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { if ((debugOptions & LOG_OPTION) != 0) { --- 576,583 ---- * @param arcWidth TODO * @param arcHeight TODO */ ! public void fillRoundRect(int x, int y, int width, int height, ! int arcWidth, int arcHeight) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 593,599 **** /** * drawLine * ! * @param x1 The x-position of the start * @param y1 The y-position of the start * @param x2 The x-position of the end * @param y2 The y-position of the end --- 593,599 ---- /** * drawLine * ! * @param x1 The x-position of the start * @param y1 The y-position of the start * @param x2 The x-position of the end * @param y2 The y-position of the end *************** public class DebugGraphics extends Graph *** 699,706 **** * @param startAngle TODO * @param arcAngle TODO */ ! public void drawArc(int x, int y, int width, int height, ! int startAngle, int arcAngle) { if ((debugOptions & LOG_OPTION) != 0) { --- 699,706 ---- * @param startAngle TODO * @param arcAngle TODO */ ! public void drawArc(int x, int y, int width, int height, ! int startAngle, int arcAngle) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 723,730 **** * @param startAngle TODO * @param arcAngle TODO */ ! public void fillArc(int x, int y, int width, int height, ! int startAngle, int arcAngle) { if ((debugOptions & LOG_OPTION) != 0) { --- 723,730 ---- * @param startAngle TODO * @param arcAngle TODO */ ! public void fillArc(int x, int y, int width, int height, ! int startAngle, int arcAngle) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 817,823 **** * @param y the y coordinate */ public void drawString(AttributedCharacterIterator iterator, ! int x, int y) { if ((debugOptions & LOG_OPTION) != 0) { --- 817,823 ---- * @param y the y coordinate */ public void drawString(AttributedCharacterIterator iterator, ! int x, int y) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 830,836 **** /** * drawBytes ! * * @param data TODO * @param offset TODO * @param length TODO --- 830,836 ---- /** * drawBytes ! * * @param data TODO * @param offset TODO * @param length TODO *************** public class DebugGraphics extends Graph *** 838,844 **** * @param y the y coordinate */ public void drawBytes(byte[] data, int offset, int length, ! int x, int y) { if ((debugOptions & LOG_OPTION) != 0) logStream().println(prefix() + " Drawing bytes at: " + new Point(x, y)); --- 838,844 ---- * @param y the y coordinate */ public void drawBytes(byte[] data, int offset, int length, ! int x, int y) { if ((debugOptions & LOG_OPTION) != 0) logStream().println(prefix() + " Drawing bytes at: " + new Point(x, y)); *************** public class DebugGraphics extends Graph *** 848,862 **** /** * drawChars ! * * @param data array of characters to draw * @param offset offset in array * @param length number of characters in array to draw * @param x x-position * @param y y-position */ ! public void drawChars(char[] data, int offset, int length, ! int x, int y) { if ((debugOptions & LOG_OPTION) != 0) logStream().println(prefix() + " Drawing chars at: " + new Point(x, y)); --- 848,862 ---- /** * drawChars ! * * @param data array of characters to draw * @param offset offset in array * @param length number of characters in array to draw * @param x x-position * @param y y-position */ ! public void drawChars(char[] data, int offset, int length, ! int x, int y) { if ((debugOptions & LOG_OPTION) != 0) logStream().println(prefix() + " Drawing chars at: " + new Point(x, y)); *************** public class DebugGraphics extends Graph *** 889,895 **** * @return boolean */ public boolean drawImage(Image image, int x, int y, ! ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { --- 889,895 ---- * @return boolean */ public boolean drawImage(Image image, int x, int y, ! ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 902,908 **** /** * drawImage ! * * @param image The image to draw * @param x The x position * @param y The y position --- 902,908 ---- /** * drawImage ! * * @param image The image to draw * @param x The x position * @param y The y position *************** public class DebugGraphics extends Graph *** 912,919 **** * * @return boolean */ ! public boolean drawImage(Image image, int x, int y, int width, ! int height, ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { --- 912,919 ---- * * @return boolean */ ! public boolean drawImage(Image image, int x, int y, int width, ! int height, ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 926,932 **** /** * drawImage ! * * @param image The image to draw * @param x The x position * @param y The y position --- 926,932 ---- /** * drawImage ! * * @param image The image to draw * @param x The x position * @param y The y position *************** public class DebugGraphics extends Graph *** 936,943 **** * * @return boolean */ ! public boolean drawImage(Image image, int x, int y, ! Color background, ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { --- 936,943 ---- * * @return boolean */ ! public boolean drawImage(Image image, int x, int y, ! Color background, ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 951,957 **** /** * drawImage ! * * @param image The image to draw * @param x The x position * @param y The y position --- 951,957 ---- /** * drawImage ! * * @param image The image to draw * @param x The x position * @param y The y position *************** public class DebugGraphics extends Graph *** 963,970 **** * * @return boolean */ ! public boolean drawImage(Image image, int x, int y, int width, int height, ! Color background, ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { --- 963,970 ---- * * @return boolean */ ! public boolean drawImage(Image image, int x, int y, int width, int height, ! Color background, ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 978,984 **** /** * drawImage ! * * @param image The image to draw * @param dx1 TODO * @param dy1 TODO --- 978,984 ---- /** * drawImage ! * * @param image The image to draw * @param dx1 TODO * @param dy1 TODO *************** public class DebugGraphics extends Graph *** 989,1000 **** * @param sx2 TODO * @param sy2 TODO * @param observer The image observer ! * * @return boolean */ public boolean drawImage(Image image, int dx1, int dy1, ! int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ! ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { --- 989,1000 ---- * @param sx2 TODO * @param sy2 TODO * @param observer The image observer ! * * @return boolean */ public boolean drawImage(Image image, int dx1, int dy1, ! int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ! ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 1025,1032 **** * @return boolean */ public boolean drawImage(Image image, int dx1, int dy1, ! int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ! Color background, ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { --- 1025,1032 ---- * @return boolean */ public boolean drawImage(Image image, int dx1, int dy1, ! int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ! Color background, ImageObserver observer) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 1049,1056 **** * @param destx The x position of the destination area * @param desty The y posiiton of the destination area */ ! public void copyArea(int x, int y, int width, int height, ! int destx, int desty) { if ((debugOptions & LOG_OPTION) != 0) { --- 1049,1056 ---- * @param destx The x position of the destination area * @param desty The y posiiton of the destination area */ ! public void copyArea(int x, int y, int width, int height, ! int destx, int desty) { if ((debugOptions & LOG_OPTION) != 0) { *************** public class DebugGraphics extends Graph *** 1109,1115 **** /** * Creates and returns the prefix that should be prepended to all logging * messages. The prefix is made up like this: ! * * Graphics(-1) where counter is an integer number * saying how many DebugGraphics objects have been created so far. The second * number always seem to be 1 on Sun's JDK, this has to be investigated a --- 1109,1115 ---- /** * Creates and returns the prefix that should be prepended to all logging * messages. The prefix is made up like this: ! * * Graphics(-1) where counter is an integer number * saying how many DebugGraphics objects have been created so far. The second * number always seem to be 1 on Sun's JDK, this has to be investigated a diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultBoundedRangeModel.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultBoundedRangeModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultBoundedRangeModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultBoundedRangeModel.java Tue Jan 11 19:46:05 2011 *************** public class DefaultBoundedRangeModel *** 371,377 **** this.minimum = minimum; this.maximum = maximum; this.isAdjusting = isAdjusting; ! fireStateChanged(); } --- 371,377 ---- this.minimum = minimum; this.maximum = maximum; this.isAdjusting = isAdjusting; ! fireStateChanged(); } *************** public class DefaultBoundedRangeModel *** 405,411 **** protected void fireStateChanged() { ChangeListener[] listeners = getChangeListeners(); ! if (changeEvent == null) changeEvent = new ChangeEvent(this); --- 405,411 ---- protected void fireStateChanged() { ChangeListener[] listeners = getChangeListeners(); ! if (changeEvent == null) changeEvent = new ChangeEvent(this); *************** public class DefaultBoundedRangeModel *** 443,449 **** { return (ChangeListener[]) getListeners(ChangeListener.class); } ! /** * Provides serialization support. * --- 443,449 ---- { return (ChangeListener[]) getListeners(ChangeListener.class); } ! /** * Provides serialization support. * *************** public class DefaultBoundedRangeModel *** 451,458 **** * * @throws IOException if there is an I/O error. */ ! private void writeObject(ObjectOutputStream stream) ! throws IOException { stream.defaultWriteObject(); } --- 451,458 ---- * * @throws IOException if there is an I/O error. */ ! private void writeObject(ObjectOutputStream stream) ! throws IOException { stream.defaultWriteObject(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultButtonModel.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultButtonModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultButtonModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultButtonModel.java Tue Jan 11 19:46:05 2011 *************** public class DefaultButtonModel implemen *** 331,337 **** // if this call does not represent a CHANGE in state, then return if ((a && isArmed()) || (!a && !isArmed())) return; ! // cannot change ARMED state unless button is enabled if (!isEnabled()) return; --- 331,337 ---- // if this call does not represent a CHANGE in state, then return if ((a && isArmed()) || (!a && !isArmed())) return; ! // cannot change ARMED state unless button is enabled if (!isEnabled()) return; *************** public class DefaultButtonModel implemen *** 427,433 **** // if this call does not represent a CHANGE in state, then return if (r == isRollover()) return; ! // cannot set ROLLOVER property unless button is enabled if (!isEnabled()) return; --- 427,433 ---- // if this call does not represent a CHANGE in state, then return if (r == isRollover()) return; ! // cannot set ROLLOVER property unless button is enabled if (!isEnabled()) return; *************** public class DefaultButtonModel implemen *** 452,458 **** // if this call does not represent a CHANGE in state, then return if ((s && isSelected()) || (!s && !isSelected())) return; ! // make the change if (s) stateMask = stateMask | SELECTED; --- 452,458 ---- // if this call does not represent a CHANGE in state, then return if ((s && isSelected()) || (!s && !isSelected())) return; ! // make the change if (s) stateMask = stateMask | SELECTED; *************** public class DefaultButtonModel implemen *** 556,562 **** * true at a time. * * @param g The new "group" property (null permitted). ! * * @see #getGroup() */ public void setGroup(ButtonGroup g) --- 556,562 ---- * true at a time. * * @param g The new "group" property (null permitted). ! * * @see #getGroup() */ public void setGroup(ButtonGroup g) *************** public class DefaultButtonModel implemen *** 568,574 **** * Returns the current value of the model's "group" property. * * @return The value of the "group" property ! * * @see #setGroup(ButtonGroup) */ public ButtonGroup getGroup() --- 568,574 ---- * Returns the current value of the model's "group" property. * * @return The value of the "group" property ! * * @see #setGroup(ButtonGroup) */ public ButtonGroup getGroup() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultCellEditor.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultCellEditor.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultCellEditor.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultCellEditor.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.tree.TreeCellEditor; *** 57,63 **** * The default implementation of {@link TableCellEditor} and * {@link TreeCellEditor}. It provides editor components for * some standard object types. ! * * @author Andrew Selkirk * @author Audrius Meskauskas */ --- 57,63 ---- * The default implementation of {@link TableCellEditor} and * {@link TreeCellEditor}. It provides editor components for * some standard object types. ! * * @author Andrew Selkirk * @author Audrius Meskauskas */ *************** public class DefaultCellEditor *** 69,80 **** /** * This changeable module access the editor component in the component ! * specific way. For instance, to set the value for JTextField, we need to ! * call setText(String), and for JCheckBox we need to call * setSelected(boolean). Each default editor has the component specific * derivative of this class. These derivatives are private inner classes of * the DefaultCellEditor. ! * * The editor delegate is also set for the editor component as the action * listener. It listens for the events that indicate that editing has stopped. */ --- 69,80 ---- /** * This changeable module access the editor component in the component ! * specific way. For instance, to set the value for JTextField, we need to ! * call setText(String), and for JCheckBox we need to call * setSelected(boolean). Each default editor has the component specific * derivative of this class. These derivatives are private inner classes of * the DefaultCellEditor. ! * * The editor delegate is also set for the editor component as the action * listener. It listens for the events that indicate that editing has stopped. */ *************** public class DefaultCellEditor *** 98,104 **** { // Nothing to do here. } ! /** * Set the value for the editor component. This method is normally * overridden to set the value in the way, specific for the text --- 98,104 ---- { // Nothing to do here. } ! /** * Set the value for the editor component. This method is normally * overridden to set the value in the way, specific for the text *************** public class DefaultCellEditor *** 121,132 **** public Object getCellEditorValue() { return value; ! } /** ! * The default method returns true for the {@link MouseEvent} and false * for any other events. ! * * @param event the event to check * * @return true if the passed event is the mouse event and false otherwise. --- 121,132 ---- public Object getCellEditorValue() { return value; ! } /** ! * The default method returns true for the {@link MouseEvent} and false * for any other events. ! * * @param event the event to check * * @return true if the passed event is the mouse event and false otherwise. *************** public class DefaultCellEditor *** 141,150 **** /** * Returns true to indicate that the editing cell can be selected. ! * * The default method returns true without action but may be overridden * in derived classes for more specific behavior. ! * * @param event unused in default method * * @return true always --- 141,150 ---- /** * Returns true to indicate that the editing cell can be selected. ! * * The default method returns true without action but may be overridden * in derived classes for more specific behavior. ! * * @param event unused in default method * * @return true always *************** public class DefaultCellEditor *** 158,165 **** /** * Finish the cell editing session. This method notifies the registered * cell editor listeners (including the table) that the editing has been ! * stopped. ! * * @return boolean */ public boolean stopCellEditing() --- 158,165 ---- /** * Finish the cell editing session. This method notifies the registered * cell editor listeners (including the table) that the editing has been ! * stopped. ! * * @return boolean */ public boolean stopCellEditing() *************** public class DefaultCellEditor *** 182,190 **** * Start editing session and returns true to indicate the editing has begun. * The default method returns true without action but may be overridden * in derived classes for more specific behavior. ! * * @param event the event. ! * * @return true, always */ public boolean startCellEditing(EventObject event) --- 182,190 ---- * Start editing session and returns true to indicate the editing has begun. * The default method returns true without action but may be overridden * in derived classes for more specific behavior. ! * * @param event the event. ! * * @return true, always */ public boolean startCellEditing(EventObject event) *************** public class DefaultCellEditor *** 196,203 **** /** * This event is fired by the editor component (for instance, by pressing * ENTER in the {@link JTextField}. The default method delegates call to ! * the {@link #stopCellEditing}, finishing the editing session. ! * * @param event unused in default method */ public void actionPerformed(ActionEvent event) --- 196,203 ---- /** * This event is fired by the editor component (for instance, by pressing * ENTER in the {@link JTextField}. The default method delegates call to ! * the {@link #stopCellEditing}, finishing the editing session. ! * * @param event unused in default method */ public void actionPerformed(ActionEvent event) *************** public class DefaultCellEditor *** 207,214 **** /** * This event is fired by the editor component.The default method delegates ! * call to the {@link #stopCellEditing}, finishing the editing session. ! * * @param event unused in default method */ public void itemStateChanged(ItemEvent event) --- 207,214 ---- /** * This event is fired by the editor component.The default method delegates ! * call to the {@link #stopCellEditing}, finishing the editing session. ! * * @param event unused in default method */ public void itemStateChanged(ItemEvent event) *************** public class DefaultCellEditor *** 225,233 **** CellEditorListener[] listeners = getCellEditorListeners(); for (int index = 0; index < listeners.length; index++) listeners[index].editingStopped(changeEvent); ! } ! /** * Notify the registered listeners (including the table) that the editing * has been canceled. --- 225,233 ---- CellEditorListener[] listeners = getCellEditorListeners(); for (int index = 0; index < listeners.length; index++) listeners[index].editingStopped(changeEvent); ! } ! /** * Notify the registered listeners (including the table) that the editing * has been canceled. *************** public class DefaultCellEditor *** 239,248 **** listeners[index].editingCanceled(changeEvent); } } // EditorDelegate ! /** * Provides getter and setter methods to work with the text component. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ private class JTextFieldDelegate extends EditorDelegate --- 239,248 ---- listeners[index].editingCanceled(changeEvent); } } // EditorDelegate ! /** * Provides getter and setter methods to work with the text component. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ private class JTextFieldDelegate extends EditorDelegate *************** public class DefaultCellEditor *** 251,257 **** * Use the serial version UID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Set the value for the editor component. * --- 251,257 ---- * Use the serial version UID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Set the value for the editor component. * *************** public class DefaultCellEditor *** 268,288 **** } /** ! * Get the value for the editor component. * * @return value the value of the component (String) */ public Object getCellEditorValue() { JTextField f = (JTextField) editorComponent; ! return value = f.getText(); ! } } /** * Provides getter and setter methods to work with the combo box. ! * ! * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ private class JComboBoxDelegate extends EditorDelegate { --- 268,288 ---- } /** ! * Get the value for the editor component. * * @return value the value of the component (String) */ public Object getCellEditorValue() { JTextField f = (JTextField) editorComponent; ! return value = f.getText(); ! } } /** * Provides getter and setter methods to work with the combo box. ! * ! * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ private class JComboBoxDelegate extends EditorDelegate { *************** public class DefaultCellEditor *** 290,296 **** * Use the serial version UID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Set the value for the editor component. * --- 290,296 ---- * Use the serial version UID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Set the value for the editor component. * *************** public class DefaultCellEditor *** 298,311 **** */ public void setValue(Object aValue) { ! value = aValue; JComboBox c = (JComboBox) editorComponent; if (value != null) c.setSelectedItem(value); } /** ! * Get the value for the editor component. * * @return value the value of the component (as String) */ --- 298,311 ---- */ public void setValue(Object aValue) { ! value = aValue; JComboBox c = (JComboBox) editorComponent; if (value != null) c.setSelectedItem(value); } /** ! * Get the value for the editor component. * * @return value the value of the component (as String) */ *************** public class DefaultCellEditor *** 313,325 **** { JComboBox c = (JComboBox) editorComponent; return value = c.getSelectedItem(); ! } ! /** * Returns true to indicate that the editing cell can be selected. If the * check box is not editable, expands it. If it is editable, brings * focus to the editor field. ! * * @param event unused in default method * * @return true always --- 313,325 ---- { JComboBox c = (JComboBox) editorComponent; return value = c.getSelectedItem(); ! } ! /** * Returns true to indicate that the editing cell can be selected. If the * check box is not editable, expands it. If it is editable, brings * focus to the editor field. ! * * @param event unused in default method * * @return true always *************** public class DefaultCellEditor *** 330,342 **** if (!c.isEditable) c.showPopup(); return true; ! } } /** * Provides getter and setter methods to work with the check box. ! * ! * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ private class JCheckBoxDelegate extends EditorDelegate { --- 330,342 ---- if (!c.isEditable) c.showPopup(); return true; ! } } /** * Provides getter and setter methods to work with the check box. ! * ! * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ private class JCheckBoxDelegate extends EditorDelegate { *************** public class DefaultCellEditor *** 344,350 **** * Use the serial version UID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Set the value for the editor component. * --- 344,350 ---- * Use the serial version UID for interoperability. */ private static final long serialVersionUID = 1; ! /** * Set the value for the editor component. * *************** public class DefaultCellEditor *** 353,359 **** public void setValue(Object value) { JCheckBox c = (JCheckBox) editorComponent; ! if (value == null) c.setSelected(false); else --- 353,359 ---- public void setValue(Object value) { JCheckBox c = (JCheckBox) editorComponent; ! if (value == null) c.setSelected(false); else *************** public class DefaultCellEditor *** 361,367 **** } /** ! * Get the value for the editor component. * * @return value the value of the component (must be CharSequence) */ --- 361,367 ---- } /** ! * Get the value for the editor component. * * @return value the value of the component (must be CharSequence) */ *************** public class DefaultCellEditor *** 370,378 **** JCheckBox c = (JCheckBox) editorComponent; value = c.isSelected() ? Boolean.TRUE : Boolean.FALSE; return value; ! } } ! /** * The Swing JComponent, performing the editing session. */ --- 370,378 ---- JCheckBox c = (JCheckBox) editorComponent; value = c.isSelected() ? Boolean.TRUE : Boolean.FALSE; return value; ! } } ! /** * The Swing JComponent, performing the editing session. */ *************** public class DefaultCellEditor *** 392,398 **** /** * Create the DefaultCellEditor that uses the text field as its editor * component (appropriate for the text content) ! * * @param textfield the text field as will be used as the editor component */ public DefaultCellEditor(JTextField textfield) --- 392,398 ---- /** * Create the DefaultCellEditor that uses the text field as its editor * component (appropriate for the text content) ! * * @param textfield the text field as will be used as the editor component */ public DefaultCellEditor(JTextField textfield) *************** public class DefaultCellEditor *** 406,412 **** /** * Constructor DefaultCellEditor that uses the checkbox (appropriate * for boolean values) ! * * @param checkbox the checkbox that will be used with this editor. */ public DefaultCellEditor(JCheckBox checkbox) --- 406,412 ---- /** * Constructor DefaultCellEditor that uses the checkbox (appropriate * for boolean values) ! * * @param checkbox the checkbox that will be used with this editor. */ public DefaultCellEditor(JCheckBox checkbox) *************** public class DefaultCellEditor *** 419,425 **** /** * Constructor DefaultCellEditor that uses the combo box. ! * * @param combobox the combo box that will be used with this editor. */ public DefaultCellEditor(JComboBox combobox) --- 419,425 ---- /** * Constructor DefaultCellEditor that uses the combo box. ! * * @param combobox the combo box that will be used with this editor. */ public DefaultCellEditor(JComboBox combobox) *************** public class DefaultCellEditor *** 431,449 **** } // DefaultCellEditor() /** ! * Get the component that performs the editing sessions. It is the same * component that was passed in constructor. ! * ! * @return the component, performing the editing sessions. */ public Component getComponent() { ! return editorComponent; } // getComponent() /** * Get the number of mouse clicks, required to start the editing session. ! * * @return int the number of mouse clicks, required to start the session */ public int getClickCountToStart() --- 431,449 ---- } // DefaultCellEditor() /** ! * Get the component that performs the editing sessions. It is the same * component that was passed in constructor. ! * ! * @return the component, performing the editing sessions. */ public Component getComponent() { ! return editorComponent; } // getComponent() /** * Get the number of mouse clicks, required to start the editing session. ! * * @return int the number of mouse clicks, required to start the session */ public int getClickCountToStart() *************** public class DefaultCellEditor *** 453,459 **** /** * Set the number of mouse clicks, required to start the editing session. ! * * @param count the number of clicks, required to start the session */ public void setClickCountToStart(int count) --- 453,459 ---- /** * Set the number of mouse clicks, required to start the editing session. ! * * @param count the number of clicks, required to start the session */ public void setClickCountToStart(int count) *************** public class DefaultCellEditor *** 462,470 **** } // setClickCountToStart() /** ! * Get the value, currently being displayed by the editor component. The * call is forwarded to the {@link #delegate}. ! * * @return Object the value (class depends on the editor component) */ public Object getCellEditorValue() --- 462,470 ---- } // setClickCountToStart() /** ! * Get the value, currently being displayed by the editor component. The * call is forwarded to the {@link #delegate}. ! * * @return Object the value (class depends on the editor component) */ public Object getCellEditorValue() *************** public class DefaultCellEditor *** 474,480 **** /** * Forwards call to the {@link #delegate}. ! * * @param event forwarded to the delegate. * * @return boolean returned by delegate --- 474,480 ---- /** * Forwards call to the {@link #delegate}. ! * * @param event forwarded to the delegate. * * @return boolean returned by delegate *************** public class DefaultCellEditor *** 486,492 **** /** * Forwards call to the {@link #delegate}. ! * * @param event forwarded to the delegate. * * @return boolean returned by delegate --- 486,492 ---- /** * Forwards call to the {@link #delegate}. ! * * @param event forwarded to the delegate. * * @return boolean returned by delegate *************** public class DefaultCellEditor *** 498,504 **** /** * Forwards call to the {@link #delegate}. ! * * @return boolean returned by delegate */ public boolean stopCellEditing() --- 498,504 ---- /** * Forwards call to the {@link #delegate}. ! * * @return boolean returned by delegate */ public boolean stopCellEditing() *************** public class DefaultCellEditor *** 515,528 **** } // cancelCellEditing() /** ! * Sets an initial value for the editor. ! * This will cause the editor to stopEditing and lose any partially * edited value if the editor is editing when this method is called. ! * Returns the component that should be added to the client's Component ! * hierarchy. Once installed in the client's hierarchy this component will ! * then be able to draw and receive user input. ! * ! * @param tree - the JTree that is asking the editor to edit; this * parameter can be null * @param value - the value of the cell to be edited * @param isSelected - true is the cell is to be renderer with selection --- 515,528 ---- } // cancelCellEditing() /** ! * Sets an initial value for the editor. ! * This will cause the editor to stopEditing and lose any partially * edited value if the editor is editing when this method is called. ! * Returns the component that should be added to the client's Component ! * hierarchy. Once installed in the client's hierarchy this component will ! * then be able to draw and receive user input. ! * ! * @param tree - the JTree that is asking the editor to edit; this * parameter can be null * @param value - the value of the cell to be edited * @param isSelected - true is the cell is to be renderer with selection *************** public class DefaultCellEditor *** 546,566 **** * Get the cell editor component that will perform the editing session. If * returned once, the same component is also returned on the repetetive calls * again (reused). ! * * @param table the table where the editing is performed ! * @param value the current value of the table. It is set as the initial * component value. * @param isSelected if true, the cell is currently selected * @param row the row of the cell being edited * @param column the column of the cell being edited ! * * @return Component the component that will perform the editing session */ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { ! // NOTE: as specified by Sun, we don't call new() everytime, we return // editorComponent on each call to getTableCellEditorComponent or // getTreeCellEditorComponent. delegate.setValue(value); --- 546,566 ---- * Get the cell editor component that will perform the editing session. If * returned once, the same component is also returned on the repetetive calls * again (reused). ! * * @param table the table where the editing is performed ! * @param value the current value of the table. It is set as the initial * component value. * @param isSelected if true, the cell is currently selected * @param row the row of the cell being edited * @param column the column of the cell being edited ! * * @return Component the component that will perform the editing session */ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { ! // NOTE: as specified by Sun, we don't call new() everytime, we return // editorComponent on each call to getTableCellEditorComponent or // getTreeCellEditorComponent. delegate.setValue(value); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultComboBoxModel.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultComboBoxModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultComboBoxModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultComboBoxModel.java Tue Jan 11 19:46:05 2011 *************** public class DefaultComboBoxModel extend *** 78,90 **** } /** ! * Creates a new model and initializes its item list to the values in the ! * given array. The selected item is set to the first item in the array, or * null if the array length is zero. * * @param items an array containing items for the model (null * not permitted). ! * * @throws NullPointerException if items is null. */ public DefaultComboBoxModel(Object[] items) --- 78,90 ---- } /** ! * Creates a new model and initializes its item list to the values in the ! * given array. The selected item is set to the first item in the array, or * null if the array length is zero. * * @param items an array containing items for the model (null * not permitted). ! * * @throws NullPointerException if items is null. */ public DefaultComboBoxModel(Object[] items) *************** public class DefaultComboBoxModel extend *** 95,107 **** } /** ! * Creates a new model and initializes its item list to the values in the ! * given vector. The selected item is set to the first item in the vector, * or null if the vector length is zero. * * @param vector a vector containing items for the model (null * not permitted). ! * * @throws NullPointerException if vector is null. */ public DefaultComboBoxModel(Vector vector) --- 95,107 ---- } /** ! * Creates a new model and initializes its item list to the values in the ! * given vector. The selected item is set to the first item in the vector, * or null if the vector length is zero. * * @param vector a vector containing items for the model (null * not permitted). ! * * @throws NullPointerException if vector is null. */ public DefaultComboBoxModel(Vector vector) *************** public class DefaultComboBoxModel extend *** 114,120 **** /** * Adds an element to the model's item list and sends a {@link ListDataEvent} * to all registered listeners. If the new element is the first item added ! * to the list, and the selected item is null, the new element * is set as the selected item. * * @param object item to add to the model's item list. --- 114,120 ---- /** * Adds an element to the model's item list and sends a {@link ListDataEvent} * to all registered listeners. If the new element is the first item added ! * to the list, and the selected item is null, the new element * is set as the selected item. * * @param object item to add to the model's item list. *************** public class DefaultComboBoxModel extend *** 131,142 **** /** * Removes the element at the specified index from the model's item list * and sends a {@link ListDataEvent} to all registered listeners. If the ! * element removed was the selected item, then the preceding element becomes ! * the new selected item (or the next element, if there is no preceding * element). * * @param index the index of the item to remove. ! * * @throws ArrayIndexOutOfBoundsException if index is out of * bounds. */ --- 131,142 ---- /** * Removes the element at the specified index from the model's item list * and sends a {@link ListDataEvent} to all registered listeners. If the ! * element removed was the selected item, then the preceding element becomes ! * the new selected item (or the next element, if there is no preceding * element). * * @param index the index of the item to remove. ! * * @throws ArrayIndexOutOfBoundsException if index is out of * bounds. */ *************** public class DefaultComboBoxModel extend *** 147,153 **** { if (selected > 0) setSelectedItem(getElementAt(selected - 1)); ! else setSelectedItem(getElementAt(selected + 1)); } list.removeElementAt(index); --- 147,153 ---- { if (selected > 0) setSelectedItem(getElementAt(selected - 1)); ! else setSelectedItem(getElementAt(selected + 1)); } list.removeElementAt(index); *************** public class DefaultComboBoxModel extend *** 161,170 **** * @param object element to insert * @param index index specifing position in the list where given element * should be inserted. ! * ! * @throws ArrayIndexOutOfBoundsException if index is out of * bounds. ! * * @see #addElement(Object) */ public void insertElementAt(Object object, int index) --- 161,170 ---- * @param object element to insert * @param index index specifing position in the list where given element * should be inserted. ! * ! * @throws ArrayIndexOutOfBoundsException if index is out of * bounds. ! * * @see #addElement(Object) */ public void insertElementAt(Object object, int index) *************** public class DefaultComboBoxModel extend *** 174,180 **** } /** ! * Removes an element from the model's item list and sends a * {@link ListDataEvent} to all registered listeners. If the item to be * removed is the current selected item, a new selected item will be set. * If the element is not found in the model's item list, this method does --- 174,180 ---- } /** ! * Removes an element from the model's item list and sends a * {@link ListDataEvent} to all registered listeners. If the item to be * removed is the current selected item, a new selected item will be set. * If the element is not found in the model's item list, this method does *************** public class DefaultComboBoxModel extend *** 191,197 **** /** * Removes all the items from the model's item list, resets and selected item ! * to null, and sends a {@link ListDataEvent} to all registered * listeners. */ public void removeAllElements() --- 191,197 ---- /** * Removes all the items from the model's item list, resets and selected item ! * to null, and sends a {@link ListDataEvent} to all registered * listeners. */ public void removeAllElements() *************** public class DefaultComboBoxModel extend *** 217,223 **** /** * Sets the selected item for the model and sends a {@link ListDataEvent} to ! * all registered listeners. The start and end index of the event is set to * -1 to indicate the model's selection has changed, and not its contents. * * @param object the new selected item (null permitted). --- 217,223 ---- /** * Sets the selected item for the model and sends a {@link ListDataEvent} to ! * all registered listeners. The start and end index of the event is set to * -1 to indicate the model's selection has changed, and not its contents. * * @param object the new selected item (null permitted). diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultDesktopManager.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultDesktopManager.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultDesktopManager.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultDesktopManager.java Tue Jan 11 19:46:05 2011 *************** public class DefaultDesktopManager imple *** 126,136 **** Container c = frame.getParent(); if (c != null) { ! if (frame.isIcon()) ! c.remove(frame.getDesktopIcon()); ! else ! c.remove(frame); ! c.repaint(); } } --- 126,136 ---- Container c = frame.getParent(); if (c != null) { ! if (frame.isIcon()) ! c.remove(frame.getDesktopIcon()); ! else ! c.remove(frame); ! c.repaint(); } } *************** public class DefaultDesktopManager imple *** 151,175 **** Container p = frame.getParent(); if (p != null) { ! Rectangle pBounds = p.getBounds(); ! Insets insets = p.getInsets(); ! pBounds.width -= insets.left + insets.right; ! pBounds.height -= insets.top + insets.bottom; ! setBoundsForFrame(frame, 0, 0, pBounds.width, pBounds.height); } if (p instanceof JDesktopPane) ((JDesktopPane) p).setSelectedFrame(frame); else { ! try ! { ! frame.setSelected(true); ! } ! catch (PropertyVetoException e) ! { ! // Do nothing. ! } } } --- 151,175 ---- Container p = frame.getParent(); if (p != null) { ! Rectangle pBounds = p.getBounds(); ! Insets insets = p.getInsets(); ! pBounds.width -= insets.left + insets.right; ! pBounds.height -= insets.top + insets.bottom; ! setBoundsForFrame(frame, 0, 0, pBounds.width, pBounds.height); } if (p instanceof JDesktopPane) ((JDesktopPane) p).setSelectedFrame(frame); else { ! try ! { ! frame.setSelected(true); ! } ! catch (PropertyVetoException e) ! { ! // Do nothing. ! } } } *************** public class DefaultDesktopManager imple *** 320,326 **** { p.setSelectedFrame(frame); } ! } frame.toFront(); } --- 320,326 ---- { p.setSelectedFrame(frame); } ! } frame.toFront(); } *************** public class DefaultDesktopManager imple *** 414,420 **** dragCache.width, dragCache.height); pane = null; dragCache = null; ! component.repaint(); } } --- 414,420 ---- dragCache.width, dragCache.height); pane = null; dragCache = null; ! component.repaint(); } } *************** public class DefaultDesktopManager imple *** 477,483 **** dragCache.width, dragCache.height); pane = null; dragCache = null; ! component.repaint(); } } --- 477,483 ---- dragCache.width, dragCache.height); pane = null; dragCache = null; ! component.repaint(); } } *************** public class DefaultDesktopManager imple *** 527,535 **** protected Rectangle getBoundsForIconOf(JInternalFrame frame) { // IconRects has no order to it. ! // The icon _must_ be placed in the first free slot (working from // the bottom left corner) ! // The icon also must not be placed where another icon is placed // (regardless whether that frame is an icon currently or not) JDesktopPane desktopPane = frame.getDesktopPane(); --- 527,535 ---- protected Rectangle getBoundsForIconOf(JInternalFrame frame) { // IconRects has no order to it. ! // The icon _must_ be placed in the first free slot (working from // the bottom left corner) ! // The icon also must not be placed where another icon is placed // (regardless whether that frame is an icon currently or not) JDesktopPane desktopPane = frame.getDesktopPane(); *************** public class DefaultDesktopManager imple *** 547,553 **** if (frames[i] instanceof JDesktopIcon || frames[i] instanceof JInternalFrame && ((JInternalFrame) frames[i]).getWasIcon() && frames[i] != frame) ! count++; iconRects = new Rectangle[count]; for (int i = 0, j = 0; i < frames.length; i++) if (frames[i] instanceof JDesktopIcon) --- 547,553 ---- if (frames[i] instanceof JDesktopIcon || frames[i] instanceof JInternalFrame && ((JInternalFrame) frames[i]).getWasIcon() && frames[i] != frame) ! count++; iconRects = new Rectangle[count]; for (int i = 0, j = 0; i < frames.length; i++) if (frames[i] instanceof JDesktopIcon) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultFocusManager.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultFocusManager.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultFocusManager.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultFocusManager.java Tue Jan 11 19:46:05 2011 *************** import java.util.Stack; *** 49,55 **** * * @author Andrew Selkirk */ ! public class DefaultFocusManager extends FocusManager { /** --- 49,55 ---- * * @author Andrew Selkirk */ ! public class DefaultFocusManager extends FocusManager { /** *************** public class DefaultFocusManager extends *** 65,73 **** // TODO } // DefaultFocusManager() ! /** * processKeyEvent ! * * @param component * TODO * @param event --- 65,73 ---- // TODO } // DefaultFocusManager() ! /** * processKeyEvent ! * * @param component * TODO * @param event *************** public class DefaultFocusManager extends *** 80,86 **** /** * focusNextComponent ! * * @param component * TODO */ --- 80,86 ---- /** * focusNextComponent ! * * @param component * TODO */ *************** public class DefaultFocusManager extends *** 91,97 **** /** * focusPreviousComponent ! * * @param component * TODO */ --- 91,97 ---- /** * focusPreviousComponent ! * * @param component * TODO */ *************** public class DefaultFocusManager extends *** 102,108 **** /** * getFirstComponent ! * * @param container * TODO * @return Component --- 102,108 ---- /** * getFirstComponent ! * * @param container * TODO * @return Component *************** public class DefaultFocusManager extends *** 114,120 **** /** * getLastComponent ! * * @param container * TODO * @return Component --- 114,120 ---- /** * getLastComponent ! * * @param container * TODO * @return Component *************** public class DefaultFocusManager extends *** 126,132 **** /** * getComponentBefore ! * * @param container * TODO * @param component --- 126,132 ---- /** * getComponentBefore ! * * @param container * TODO * @param component *************** public class DefaultFocusManager extends *** 140,146 **** /** * getComponentAfter ! * * @param container * TODO * @param component --- 140,146 ---- /** * getComponentAfter ! * * @param container * TODO * @param component *************** public class DefaultFocusManager extends *** 154,160 **** /** * compareTabOrder ! * * @param component1 * TODO * @param component2 --- 154,160 ---- /** * compareTabOrder ! * * @param component1 * TODO * @param component2 diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultListModel.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultListModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultListModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultListModel.java Tue Jan 11 19:46:05 2011 *************** public class DefaultListModel extends Ab *** 166,172 **** /** * Sets the list element at a particular index. * ! * @param index The list index at which to set a value * @param element The value to set at the specified index * * @return The value previously held at the specified index --- 166,172 ---- /** * Sets the list element at a particular index. * ! * @param index The list index at which to set a value * @param element The value to set at the specified index * * @return The value previously held at the specified index *************** public class DefaultListModel extends Ab *** 253,259 **** * least as large as the list. * * @param array The array to copy the list into ! * * @throws IndexOutOfBoundsException if the array is too small to hold the * elements of the list */ --- 253,259 ---- * least as large as the list. * * @param array The array to copy the list into ! * * @throws IndexOutOfBoundsException if the array is too small to hold the * elements of the list */ *************** public class DefaultListModel extends Ab *** 317,323 **** /** * Sets the capacity of the list to be equal to its size. The list's capacity * is the number of elements it can hold before it needs to be reallocated. ! * The list's size is the number of elements it currently holds. */ public void trimToSize() { --- 317,323 ---- /** * Sets the capacity of the list to be equal to its size. The list's capacity * is the number of elements it can hold before it needs to be reallocated. ! * The list's size is the number of elements it currently holds. */ public void trimToSize() { *************** public class DefaultListModel extends Ab *** 360,366 **** /** * Gets the capacity of the list. The list's capacity is the number of ! * elements it can hold before it needs to be reallocated. * * @return The capacity of the list */ --- 360,366 ---- /** * Gets the capacity of the list. The list's capacity is the number of ! * elements it can hold before it needs to be reallocated. * * @return The capacity of the list */ *************** public class DefaultListModel extends Ab *** 393,399 **** * Sets the list element at a particular index. * * @param element The value to set at the specified index ! * @param index The list index at which to set a value * * @throws ArrayIndexOutOfBoundsException If the provided index is * outside the bounds of the list [0, size()) --- 393,399 ---- * Sets the list element at a particular index. * * @param element The value to set at the specified index ! * @param index The list index at which to set a value * * @throws ArrayIndexOutOfBoundsException If the provided index is * outside the bounds of the list [0, size()) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultListSelectionModel.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultListSelectionModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultListSelectionModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultListSelectionModel.java Tue Jan 11 19:46:05 2011 *************** public class DefaultListSelectionModel i *** 69,75 **** protected EventListenerList listenerList = new EventListenerList(); ! /** * The current list selection mode. Must be one of the numeric constants * SINGLE_SELECTION, SINGLE_INTERVAL_SELECTION * or MULTIPLE_INTERVAL_SELECTION from {@link --- 69,75 ---- protected EventListenerList listenerList = new EventListenerList(); ! /** * The current list selection mode. Must be one of the numeric constants * SINGLE_SELECTION, SINGLE_INTERVAL_SELECTION * or MULTIPLE_INTERVAL_SELECTION from {@link *************** public class DefaultListSelectionModel i *** 129,135 **** boolean valueIsAdjusting = false; ! /** * The current set of "intervals", represented simply by a {@link * java.util.BitSet}. A set bit indicates a selected index, whereas a * cleared bit indicates a non-selected index. --- 129,135 ---- boolean valueIsAdjusting = false; ! /** * The current set of "intervals", represented simply by a {@link * java.util.BitSet}. A set bit indicates a selected index, whereas a * cleared bit indicates a non-selected index. *************** public class DefaultListSelectionModel i *** 150,162 **** boolean setLeadCalledFromAdd = false; /** ! * Returns the selection mode, which is one of {@link #SINGLE_SELECTION}, ! * {@link #SINGLE_INTERVAL_SELECTION} and * {@link #MULTIPLE_INTERVAL_SELECTION}. The default value is * {@link #MULTIPLE_INTERVAL_SELECTION}. ! * * @return The selection mode. ! * * @see #setSelectionMode(int) */ public int getSelectionMode() --- 150,162 ---- boolean setLeadCalledFromAdd = false; /** ! * Returns the selection mode, which is one of {@link #SINGLE_SELECTION}, ! * {@link #SINGLE_INTERVAL_SELECTION} and * {@link #MULTIPLE_INTERVAL_SELECTION}. The default value is * {@link #MULTIPLE_INTERVAL_SELECTION}. ! * * @return The selection mode. ! * * @see #setSelectionMode(int) */ public int getSelectionMode() *************** public class DefaultListSelectionModel i *** 171,177 **** */ public void setSelectionMode(int mode) { ! if (mode < ListSelectionModel.SINGLE_SELECTION || mode > ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) throw new IllegalArgumentException("Unrecognised mode: " + mode); selectionMode = mode; --- 171,177 ---- */ public void setSelectionMode(int mode) { ! if (mode < ListSelectionModel.SINGLE_SELECTION || mode > ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) throw new IllegalArgumentException("Unrecognised mode: " + mode); selectionMode = mode; *************** public class DefaultListSelectionModel i *** 179,185 **** /** * Gets the value of the {@link #anchorSelectionIndex} property. ! * * @return The current property value * * @see #setAnchorSelectionIndex --- 179,185 ---- /** * Gets the value of the {@link #anchorSelectionIndex} property. ! * * @return The current property value * * @see #setAnchorSelectionIndex *************** public class DefaultListSelectionModel i *** 191,197 **** /** * Sets the value of the {@link #anchorSelectionIndex} property. ! * * @param index The new property value * * @see #getAnchorSelectionIndex --- 191,197 ---- /** * Sets the value of the {@link #anchorSelectionIndex} property. ! * * @param index The new property value * * @see #getAnchorSelectionIndex *************** public class DefaultListSelectionModel i *** 206,215 **** fireValueChanged(index, old); } } ! /** * Gets the value of the {@link #leadSelectionIndex} property. ! * * @return The current property value * * @see #setLeadSelectionIndex --- 206,215 ---- fireValueChanged(index, old); } } ! /** * Gets the value of the {@link #leadSelectionIndex} property. ! * * @return The current property value * * @see #setLeadSelectionIndex *************** public class DefaultListSelectionModel i *** 245,251 **** * {@link ListSelectionEvent} includes only the minimum range of values * which changed selection status between the beginning and end of the * method.

                                            ! * * @param leadIndex The new property value * * @see #getAnchorSelectionIndex --- 245,251 ---- * {@link ListSelectionEvent} includes only the minimum range of values * which changed selection status between the beginning and end of the * method.

                                            ! * * @param leadIndex The new property value * * @see #getAnchorSelectionIndex *************** public class DefaultListSelectionModel i *** 267,273 **** if (selectionMode == SINGLE_SELECTION) setSelectionInterval (leadIndex, leadIndex); ! int oldLeadIndex = leadSelectionIndex; if (oldLeadIndex == -1) oldLeadIndex = leadIndex; --- 267,273 ---- if (selectionMode == SINGLE_SELECTION) setSelectionInterval (leadIndex, leadIndex); ! int oldLeadIndex = leadSelectionIndex; if (oldLeadIndex == -1) oldLeadIndex = leadIndex; *************** public class DefaultListSelectionModel i *** 276,283 **** leadSelectionIndex = leadIndex; if (anchorSelectionIndex == -1) ! return; ! int R1 = Math.min(anchorSelectionIndex, oldLeadIndex); int R2 = Math.max(anchorSelectionIndex, oldLeadIndex); int S1 = Math.min(anchorSelectionIndex, leadIndex); --- 276,283 ---- leadSelectionIndex = leadIndex; if (anchorSelectionIndex == -1) ! return; ! int R1 = Math.min(anchorSelectionIndex, oldLeadIndex); int R2 = Math.max(anchorSelectionIndex, oldLeadIndex); int S1 = Math.min(anchorSelectionIndex, leadIndex); *************** public class DefaultListSelectionModel i *** 295,322 **** { sel.set(R1, R2+1); sel.clear(S1, S2+1); ! } int beg = sel.nextSetBit(0), end = -1; ! for(int i=beg; i >= 0; i=sel.nextSetBit(i+1)) end = i; ! BitSet old = (BitSet) oldSel; ! // The new and previous lead location requires repainting. old.set(oldLeadIndex, !sel.get(oldLeadIndex)); old.set(leadSelectionIndex, !sel.get(leadSelectionIndex)); ! fireDifference(sel, old); } /** ! * Moves the lead selection index to leadIndex without * changing the selection values. ! * * If leadAnchorNotificationEnabled is true, send a notification covering the * old and new lead cells. ! * * @param leadIndex the new lead selection index * @since 1.5 */ --- 295,322 ---- { sel.set(R1, R2+1); sel.clear(S1, S2+1); ! } int beg = sel.nextSetBit(0), end = -1; ! for(int i=beg; i >= 0; i=sel.nextSetBit(i+1)) end = i; ! BitSet old = (BitSet) oldSel; ! // The new and previous lead location requires repainting. old.set(oldLeadIndex, !sel.get(oldLeadIndex)); old.set(leadSelectionIndex, !sel.get(leadSelectionIndex)); ! fireDifference(sel, old); } /** ! * Moves the lead selection index to leadIndex without * changing the selection values. ! * * If leadAnchorNotificationEnabled is true, send a notification covering the * old and new lead cells. ! * * @param leadIndex the new lead selection index * @since 1.5 */ *************** public class DefaultListSelectionModel i *** 324,339 **** { if (leadSelectionIndex == leadIndex) return; ! leadSelectionIndex = leadIndex; if (isLeadAnchorNotificationEnabled()) fireValueChanged(Math.min(leadSelectionIndex, leadIndex), Math.max(leadSelectionIndex, leadIndex)); } ! /** * Gets the value of the {@link #leadAnchorNotificationEnabled} property. ! * * @return The current property value * * @see #setLeadAnchorNotificationEnabled --- 324,339 ---- { if (leadSelectionIndex == leadIndex) return; ! leadSelectionIndex = leadIndex; if (isLeadAnchorNotificationEnabled()) fireValueChanged(Math.min(leadSelectionIndex, leadIndex), Math.max(leadSelectionIndex, leadIndex)); } ! /** * Gets the value of the {@link #leadAnchorNotificationEnabled} property. ! * * @return The current property value * * @see #setLeadAnchorNotificationEnabled *************** public class DefaultListSelectionModel i *** 345,351 **** /** * Sets the value of the {@link #leadAnchorNotificationEnabled} property. ! * * @param l The new property value * * @see #isLeadAnchorNotificationEnabled --- 345,351 ---- /** * Sets the value of the {@link #leadAnchorNotificationEnabled} property. ! * * @param l The new property value * * @see #isLeadAnchorNotificationEnabled *************** public class DefaultListSelectionModel i *** 404,410 **** { if (isSelectionEmpty()) return -1; ! return sel.nextSetBit(0); } --- 404,410 ---- { if (isSelectionEmpty()) return -1; ! return sel.nextSetBit(0); } *************** public class DefaultListSelectionModel i *** 424,431 **** return -1; int mx = -1; ! for(int i=sel.nextSetBit(0); i >= 0; i=sel.nextSetBit(i+1)) ! { mx = i; } return mx; --- 424,431 ---- return -1; int mx = -1; ! for(int i=sel.nextSetBit(0); i >= 0; i=sel.nextSetBit(i+1)) ! { mx = i; } return mx; *************** public class DefaultListSelectionModel i *** 451,462 **** /** * If the {@link #selectionMode} property is equal to * SINGLE_SELECTION equivalent to calling ! * setSelectionInterval(index1, index2); ! * If the {@link #selectionMode} property is equal to * SINGLE_INTERVAL_SELECTION and the interval being * added is not adjacent to an already selected interval, * equivalent to setSelectionInterval(index1, index2). ! * Otherwise adds the range [index0, index1] * to the selection interval set. * * @param index0 The beginning of the range of indices to select --- 451,462 ---- /** * If the {@link #selectionMode} property is equal to * SINGLE_SELECTION equivalent to calling ! * setSelectionInterval(index1, index2); ! * If the {@link #selectionMode} property is equal to * SINGLE_INTERVAL_SELECTION and the interval being * added is not adjacent to an already selected interval, * equivalent to setSelectionInterval(index1, index2). ! * Otherwise adds the range [index0, index1] * to the selection interval set. * * @param index0 The beginning of the range of indices to select *************** public class DefaultListSelectionModel i *** 465,475 **** * @see #setSelectionInterval * @see #removeSelectionInterval */ ! public void addSelectionInterval(int index0, int index1) { if (index0 == -1 || index1 == -1) return; ! if (selectionMode == SINGLE_SELECTION) setSelectionInterval(index0, index1); else --- 465,475 ---- * @see #setSelectionInterval * @see #removeSelectionInterval */ ! public void addSelectionInterval(int index0, int index1) { if (index0 == -1 || index1 == -1) return; ! if (selectionMode == SINGLE_SELECTION) setSelectionInterval(index0, index1); else *************** public class DefaultListSelectionModel i *** 479,505 **** oldSel = sel.clone(); ! // COMPAT: Like Sun (but not like IBM), we allow calls to // addSelectionInterval when selectionMode is // SINGLE_SELECTION_INTERVAL iff the interval being added // is adjacent to an already selected interval if (selectionMode == SINGLE_INTERVAL_SELECTION) ! if (!(isSelectedIndex(index0) || ! isSelectedIndex(index1) || ! isSelectedIndex(Math.max(lo-1,0)) || isSelectedIndex(Math.min(hi+1,sel.size())))) ! sel.clear(); // We have to update the anchorSelectionIndex and leadSelectionIndex // variables ! // The next if statements breaks down to "if this selection is adjacent // to the previous selection and going in the same direction" ! if ((isSelectedIndex(leadSelectionIndex)) ! && ((index0 - 1 == leadSelectionIndex ! && (index1 >= index0) && (leadSelectionIndex >= anchorSelectionIndex)) ! || (index0 + 1 == leadSelectionIndex && (index1 <= index0) && (leadSelectionIndex <= anchorSelectionIndex))) && (anchorSelectionIndex != -1 || leadSelectionIndex != -1)) { --- 479,505 ---- oldSel = sel.clone(); ! // COMPAT: Like Sun (but not like IBM), we allow calls to // addSelectionInterval when selectionMode is // SINGLE_SELECTION_INTERVAL iff the interval being added // is adjacent to an already selected interval if (selectionMode == SINGLE_INTERVAL_SELECTION) ! if (!(isSelectedIndex(index0) || ! isSelectedIndex(index1) || ! isSelectedIndex(Math.max(lo-1,0)) || isSelectedIndex(Math.min(hi+1,sel.size())))) ! sel.clear(); // We have to update the anchorSelectionIndex and leadSelectionIndex // variables ! // The next if statements breaks down to "if this selection is adjacent // to the previous selection and going in the same direction" ! if ((isSelectedIndex(leadSelectionIndex)) ! && ((index0 - 1 == leadSelectionIndex ! && (index1 >= index0) && (leadSelectionIndex >= anchorSelectionIndex)) ! || (index0 + 1 == leadSelectionIndex && (index1 <= index0) && (leadSelectionIndex <= anchorSelectionIndex))) && (anchorSelectionIndex != -1 || leadSelectionIndex != -1)) { *************** public class DefaultListSelectionModel i *** 535,558 **** { if (index0 == -1 || index1 == -1) return; ! oldSel = sel.clone(); int lo = Math.min(index0, index1); int hi = Math.max(index0, index1); ! // if selectionMode is SINGLE_INTERVAL_SELECTION and removing the interval // (index0,index1) would leave two disjoint selection intervals, remove all // selected indices from lo to the last selected index ! if (getMinSelectionIndex() > 0 && getMinSelectionIndex() < lo && selectionMode == SINGLE_INTERVAL_SELECTION) hi = sel.size() - 1; ! sel.clear(lo, hi+1); //update anchorSelectionIndex and leadSelectionIndex variables //TODO: will probably need MouseDragged to test properly and know if this works setAnchorSelectionIndex(index0); leadSelectionIndex = index1; ! fireDifference(sel, (BitSet) oldSel); } --- 535,558 ---- { if (index0 == -1 || index1 == -1) return; ! oldSel = sel.clone(); int lo = Math.min(index0, index1); int hi = Math.max(index0, index1); ! // if selectionMode is SINGLE_INTERVAL_SELECTION and removing the interval // (index0,index1) would leave two disjoint selection intervals, remove all // selected indices from lo to the last selected index ! if (getMinSelectionIndex() > 0 && getMinSelectionIndex() < lo && selectionMode == SINGLE_INTERVAL_SELECTION) hi = sel.size() - 1; ! sel.clear(lo, hi+1); //update anchorSelectionIndex and leadSelectionIndex variables //TODO: will probably need MouseDragged to test properly and know if this works setAnchorSelectionIndex(index0); leadSelectionIndex = index1; ! fireDifference(sel, (BitSet) oldSel); } *************** public class DefaultListSelectionModel i *** 566,584 **** if (from < 0) return; // Empty selection - nothing to do. int to = from; ! int i; for (i = from; i>=0; i=sel.nextSetBit(i+1)) to = i; ! sel.clear(); fireValueChanged(from, to, valueIsAdjusting); } ! /** * Fire the change event, covering the difference between the two sets. ! * * @param current the current set * @param x the previous set, the object will be reused. */ --- 566,584 ---- if (from < 0) return; // Empty selection - nothing to do. int to = from; ! int i; for (i = from; i>=0; i=sel.nextSetBit(i+1)) to = i; ! sel.clear(); fireValueChanged(from, to, valueIsAdjusting); } ! /** * Fire the change event, covering the difference between the two sets. ! * * @param current the current set * @param x the previous set, the object will be reused. */ *************** public class DefaultListSelectionModel i *** 596,607 **** fireValueChanged(from, to, valueIsAdjusting); } ! /** * Clears the current selection and marks a given interval as "selected". If * the current selection mode is SINGLE_SELECTION only the * index index2 is selected. ! * * @param anchor the anchor selection index. * @param lead the lead selection index. */ --- 596,607 ---- fireValueChanged(from, to, valueIsAdjusting); } ! /** * Clears the current selection and marks a given interval as "selected". If * the current selection mode is SINGLE_SELECTION only the * index index2 is selected. ! * * @param anchor the anchor selection index. * @param lead the lead selection index. */ *************** public class DefaultListSelectionModel i *** 639,645 **** int last = first; if (first >= 0) last += (sel.cardinality() - 1); ! // update the selection int lo = Math.min(anchor, lead); int hi = Math.max(anchor, lead); --- 639,645 ---- int last = first; if (first >= 0) last += (sel.cardinality() - 1); ! // update the selection int lo = Math.min(anchor, lead); int hi = Math.max(anchor, lead); *************** public class DefaultListSelectionModel i *** 647,653 **** return; // selected interval is not being changed sel.clear(); sel.set(lo, hi + 1); ! // include the old selection in the event range if (first >= 0) lo = Math.min(lo, first); --- 647,653 ---- return; // selected interval is not being changed sel.clear(); sel.set(lo, hi + 1); ! // include the old selection in the event range if (first >= 0) lo = Math.min(lo, first); *************** public class DefaultListSelectionModel i *** 661,667 **** anchorSelectionIndex = anchor; leadSelectionIndex = lead; fireValueChanged(lo, hi); ! } else { BitSet oldSel = (BitSet) sel.clone(); --- 661,667 ---- anchorSelectionIndex = anchor; leadSelectionIndex = lead; fireValueChanged(lo, hi); ! } else { BitSet oldSel = (BitSet) sel.clone(); *************** public class DefaultListSelectionModel i *** 675,681 **** // update the anchorSelectionIndex and leadSelectionIndex variables setAnchorSelectionIndex(anchor); leadSelectionIndex = lead; ! fireDifference(sel, oldSel); } } --- 675,681 ---- // update the anchorSelectionIndex and leadSelectionIndex variables setAnchorSelectionIndex(anchor); leadSelectionIndex = lead; ! fireDifference(sel, oldSel); } } *************** public class DefaultListSelectionModel i *** 697,703 **** boolean before) { if (!before) ! { index++; length--; } --- 697,703 ---- boolean before) { if (!before) ! { index++; length--; } *************** public class DefaultListSelectionModel i *** 759,765 **** { fireValueChanged(firstIndex, lastIndex, getValueIsAdjusting()); } ! /** * Fires a {@link ListSelectionEvent} to all the listeners of type {@link * ListSelectionListener} registered with this selection model. --- 759,765 ---- { fireValueChanged(firstIndex, lastIndex, getValueIsAdjusting()); } ! /** * Fires a {@link ListSelectionEvent} to all the listeners of type {@link * ListSelectionListener} registered with this selection model. *************** public class DefaultListSelectionModel i *** 770,776 **** * made to the selection, such as during interactive scrolling */ protected void fireValueChanged(int firstIndex, int lastIndex, ! boolean isAdjusting) { ListSelectionEvent evt = new ListSelectionEvent(this, firstIndex, lastIndex, isAdjusting); --- 770,776 ---- * made to the selection, such as during interactive scrolling */ protected void fireValueChanged(int firstIndex, int lastIndex, ! boolean isAdjusting) { ListSelectionEvent evt = new ListSelectionEvent(this, firstIndex, lastIndex, isAdjusting); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/DefaultSingleSelectionModel.java gcc-4.6.0/libjava/classpath/javax/swing/DefaultSingleSelectionModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/DefaultSingleSelectionModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/DefaultSingleSelectionModel.java Tue Jan 11 19:46:05 2011 *************** public class DefaultSingleSelectionModel *** 82,90 **** /** * Returns the selected index or -1 if there is no selection. ! * * @return The selected index. ! * * @see #setSelectedIndex(int) */ public int getSelectedIndex() --- 82,90 ---- /** * Returns the selected index or -1 if there is no selection. ! * * @return The selected index. ! * * @see #setSelectedIndex(int) */ public int getSelectedIndex() *************** public class DefaultSingleSelectionModel *** 93,103 **** } /** ! * Sets the selected index and, if this is different to the previous * selection, sends a {@link ChangeEvent} to all registered listeners. ! * * @param index the index (use -1 to represent no selection). ! * * @see #getSelectedIndex() * @see #clearSelection */ --- 93,103 ---- } /** ! * Sets the selected index and, if this is different to the previous * selection, sends a {@link ChangeEvent} to all registered listeners. ! * * @param index the index (use -1 to represent no selection). ! * * @see #getSelectedIndex() * @see #clearSelection */ *************** public class DefaultSingleSelectionModel *** 113,119 **** /** * Clears the selection by setting the selected index to -1 and * sends a {@link ChangeEvent} to all registered listeners. If the selected ! * index is already -1, this method does nothing. */ public void clearSelection() { --- 113,119 ---- /** * Clears the selection by setting the selected index to -1 and * sends a {@link ChangeEvent} to all registered listeners. If the selected ! * index is already -1, this method does nothing. */ public void clearSelection() { *************** public class DefaultSingleSelectionModel *** 122,129 **** /** * Returns true if there is a selection, and false ! * otherwise. ! * * @return A boolean. */ public boolean isSelected() --- 122,129 ---- /** * Returns true if there is a selection, and false ! * otherwise. ! * * @return A boolean. */ public boolean isSelected() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/FocusManager.java gcc-4.6.0/libjava/classpath/javax/swing/FocusManager.java *** gcc-4.5.2/libjava/classpath/javax/swing/FocusManager.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/FocusManager.java Tue Jan 11 19:46:05 2011 *************** public abstract class FocusManager *** 199,205 **** { wrapped.addKeyEventPostProcessor(p); } ! /** * Wraps {@link KeyboardFocusManager#addPropertyChangeListener(PropertyChangeListener)}. * --- 199,205 ---- { wrapped.addKeyEventPostProcessor(p); } ! /** * Wraps {@link KeyboardFocusManager#addPropertyChangeListener(PropertyChangeListener)}. * *************** public abstract class FocusManager *** 366,372 **** return wrapped.getVetoableChangeListeners(n); } ! /** * Wraps * {@link KeyboardFocusManager#removeKeyEventDispatcher(KeyEventDispatcher)}. --- 366,372 ---- return wrapped.getVetoableChangeListeners(n); } ! /** * Wraps * {@link KeyboardFocusManager#removeKeyEventDispatcher(KeyEventDispatcher)}. *************** public abstract class FocusManager *** 490,496 **** public static FocusManager getCurrentManager() { KeyboardFocusManager m = ! KeyboardFocusManager.getCurrentKeyboardFocusManager(); return new WrappingFocusManager(m); } --- 490,496 ---- public static FocusManager getCurrentManager() { KeyboardFocusManager m = ! KeyboardFocusManager.getCurrentKeyboardFocusManager(); return new WrappingFocusManager(m); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/GrayFilter.java gcc-4.6.0/libjava/classpath/javax/swing/GrayFilter.java *** gcc-4.5.2/libjava/classpath/javax/swing/GrayFilter.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/GrayFilter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class GrayFilter extends RGBImage *** 57,63 **** /** * Create a GrayFilter. If b is true then brighten. Also, indicate how much * gray. ! * * @param b if brighten * @param p percent of gray, 0 - 100 */ --- 57,63 ---- /** * Create a GrayFilter. If b is true then brighten. Also, indicate how much * gray. ! * * @param b if brighten * @param p percent of gray, 0 - 100 */ *************** public class GrayFilter extends RGBImage *** 79,85 **** return (Toolkit.getDefaultToolkit().createImage(new FilteredImageSource( src.getSource(), new GrayFilter(true, 0)))); } ! /** * Filter RGB to gray */ --- 79,85 ---- return (Toolkit.getDefaultToolkit().createImage(new FilteredImageSource( src.getSource(), new GrayFilter(true, 0)))); } ! /** * Filter RGB to gray */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/Icon.java gcc-4.6.0/libjava/classpath/javax/swing/Icon.java *** gcc-4.5.2/libjava/classpath/javax/swing/Icon.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/Icon.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Icon.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Icon.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public interface Icon *** 48,68 **** { /** * Returns the height of the icon. ! * * @return The height of the icon. */ int getIconHeight(); ! /** * Returns the width of the icon. ! * * @return The width of the icon. */ int getIconWidth(); ! /** * Draws the icon at the location (x, y) on the specified graphics device. ! * * @param c a component related to the icon in some way (can be ignored by some implementing classes). * @param g the graphics device. --- 48,68 ---- { /** * Returns the height of the icon. ! * * @return The height of the icon. */ int getIconHeight(); ! /** * Returns the width of the icon. ! * * @return The width of the icon. */ int getIconWidth(); ! /** * Draws the icon at the location (x, y) on the specified graphics device. ! * * @param c a component related to the icon in some way (can be ignored by some implementing classes). * @param g the graphics device. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ImageIcon.java gcc-4.6.0/libjava/classpath/javax/swing/ImageIcon.java *** gcc-4.5.2/libjava/classpath/javax/swing/ImageIcon.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/ImageIcon.java Tue Jan 11 19:46:05 2011 *************** public class ImageIcon *** 90,96 **** /** * Returns the accessible state for the ImageIcon. To ! * match the reference implementation, this method always returns * null. * * @return null. --- 90,96 ---- /** * Returns the accessible state for the ImageIcon. To ! * match the reference implementation, this method always returns * null. * * @return null. *************** public class ImageIcon *** 138,144 **** /** * Returns the accessible child at index i, which is ! * null in this case because an {@link ImageIcon} has no * children. * * @param i the index of the child to be fetched --- 138,144 ---- /** * Returns the accessible child at index i, which is ! * null in this case because an {@link ImageIcon} has no * children. * * @param i the index of the child to be fetched *************** public class ImageIcon *** 151,162 **** } /** ! * Returns the locale of this object. To match the reference * implementation, this method always returns null. * * @return null. */ ! public Locale getLocale() throws IllegalComponentStateException { // refer to Sun's bug report 4269253 --- 151,162 ---- } /** ! * Returns the locale of this object. To match the reference * implementation, this method always returns null. * * @return null. */ ! public Locale getLocale() throws IllegalComponentStateException { // refer to Sun's bug report 4269253 *************** public class ImageIcon *** 168,174 **** * description property of the underlying {@link ImageIcon}. * * @return The description (possibly null). ! * * @see #setAccessibleIconDescription(String) */ public String getAccessibleIconDescription() --- 168,174 ---- * description property of the underlying {@link ImageIcon}. * * @return The description (possibly null). ! * * @see #setAccessibleIconDescription(String) */ public String getAccessibleIconDescription() *************** public class ImageIcon *** 177,187 **** } /** ! * Sets the accessible icon description. This sets the * description property of the underlying {@link ImageIcon}. * * @param newDescr the description (null permitted). ! * * @see #getAccessibleIconDescription() */ public void setAccessibleIconDescription(String newDescr) --- 177,187 ---- } /** ! * Sets the accessible icon description. This sets the * description property of the underlying {@link ImageIcon}. * * @param newDescr the description (null permitted). ! * * @see #getAccessibleIconDescription() */ public void setAccessibleIconDescription(String newDescr) *************** public class ImageIcon *** 190,196 **** } /** ! * Returns the icon height. This returns the iconHeight * property of the underlying {@link ImageIcon}. * * @return The icon height. --- 190,196 ---- } /** ! * Returns the icon height. This returns the iconHeight * property of the underlying {@link ImageIcon}. * * @return The icon height. *************** public class ImageIcon *** 199,207 **** { return getIconHeight(); } ! /** ! * Returns the icon width. This returns the iconWidth property * of the underlying {@link ImageIcon}. * * @return The icon width. --- 199,207 ---- { return getIconHeight(); } ! /** ! * Returns the icon width. This returns the iconWidth property * of the underlying {@link ImageIcon}. * * @return The icon width. *************** public class ImageIcon *** 217,223 **** /** A dummy Component that is used in the MediaTracker. */ protected static final Component component = new Component() { ! // No need to implement this. }; /** The MediaTracker used to monitor the loading of images. */ --- 217,223 ---- /** A dummy Component that is used in the MediaTracker. */ protected static final Component component = new Component() { ! // No need to implement this. }; /** The MediaTracker used to monitor the loading of images. */ *************** public class ImageIcon *** 243,249 **** { // Nothing to do here. } ! /** * Constructs an ImageIcon given a filename. The icon's description * is initially set to the filename itself. A filename of "" means --- 243,249 ---- { // Nothing to do here. } ! /** * Constructs an ImageIcon given a filename. The icon's description * is initially set to the filename itself. A filename of "" means *************** public class ImageIcon *** 277,283 **** { this(imageData, null); } ! /** * Creates an ImageIcon from the given byte array and sets the given * description. --- 277,283 ---- { this(imageData, null); } ! /** * Creates an ImageIcon from the given byte array and sets the given * description. *************** public class ImageIcon *** 332,338 **** { return observer; } ! /** * Sets the ImageObserver that will be used for all Image * operations. Can be set to null (the default) when no observer is --- 332,338 ---- { return observer; } ! /** * Sets the ImageObserver that will be used for all Image * operations. Can be set to null (the default) when no observer is *************** public class ImageIcon *** 459,465 **** * Returns the object that provides accessibility features for this * ImageIcon instance. * ! * @return The accessible context (an instance of * {@link AccessibleImageIcon}). */ public AccessibleContext getAccessibleContext() --- 459,465 ---- * Returns the object that provides accessibility features for this * ImageIcon instance. * ! * @return The accessible context (an instance of * {@link AccessibleImageIcon}). */ public AccessibleContext getAccessibleContext() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/InputMap.java gcc-4.6.0/libjava/classpath/javax/swing/InputMap.java *** gcc-4.5.2/libjava/classpath/javax/swing/InputMap.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/InputMap.java Tue Jan 11 19:46:05 2011 *************** public class InputMap *** 87,93 **** * * @param keystroke the key of the entry (null is ignored). * ! * @return The binding associated with the specified keystroke (or * null). */ public Object get(KeyStroke keystroke) --- 87,93 ---- * * @param keystroke the key of the entry (null is ignored). * ! * @return The binding associated with the specified keystroke (or * null). */ public Object get(KeyStroke keystroke) *************** public class InputMap *** 102,112 **** } /** ! * Puts a new entry into the InputMap. If ! * actionMapKey is null any existing entry will be * removed. * ! * @param keystroke the keystroke for the entry (null is * ignored). * @param actionMapKey the action (null permitted). */ --- 102,112 ---- } /** ! * Puts a new entry into the InputMap. If ! * actionMapKey is null any existing entry will be * removed. * ! * @param keystroke the keystroke for the entry (null is * ignored). * @param actionMapKey the action (null permitted). */ *************** public class InputMap *** 126,132 **** * Removes an entry from this InputMap. Note that this will * not remove any entry from the parent map, if there is one. * ! * @param keystroke the key of the entry to remove (null is * ignored). */ public void remove(KeyStroke keystroke) --- 126,132 ---- * Removes an entry from this InputMap. Note that this will * not remove any entry from the parent map, if there is one. * ! * @param keystroke the key of the entry to remove (null is * ignored). */ public void remove(KeyStroke keystroke) *************** public class InputMap *** 140,146 **** * is null. * * @return The parent map (possibly null). ! * * @see #setParent(InputMap) */ public InputMap getParent() --- 140,146 ---- * is null. * * @return The parent map (possibly null). ! * * @see #setParent(InputMap) */ public InputMap getParent() *************** public class InputMap *** 154,160 **** * find an entry in this map. * * @param parentMap the new parent (null permitted). ! * * @see #getParent() */ public void setParent(InputMap parentMap) --- 154,160 ---- * find an entry in this map. * * @param parentMap the new parent (null permitted). ! * * @see #getParent() */ public void setParent(InputMap parentMap) *************** public class InputMap *** 163,169 **** } /** ! * Returns the number of entries in this InputMap. This count * does not include any entries from the parent map, if there is one. * * @return The number of entries. --- 163,169 ---- } /** ! * Returns the number of entries in this InputMap. This count * does not include any entries from the parent map, if there is one. * * @return The number of entries. *************** public class InputMap *** 188,199 **** /** * Returns all keys of entries in this InputMap. This does not ! * include keys defined in the parent, if there is one (use the * {@link #allKeys()} method for that case). *

                                            * Following the behaviour of the reference implementation, this method will ! * return null when no entries have been added to the map, ! * and a zero length array if entries have been added but subsequently * removed (or cleared) from the map. * * @return An array of keys (may be null or have zero length). --- 188,199 ---- /** * Returns all keys of entries in this InputMap. This does not ! * include keys defined in the parent, if there is one (use the * {@link #allKeys()} method for that case). *

                                            * Following the behaviour of the reference implementation, this method will ! * return null when no entries have been added to the map, ! * and a zero length array if entries have been added but subsequently * removed (or cleared) from the map. * * @return An array of keys (may be null or have zero length). *************** public class InputMap *** 209,215 **** } /** ! * Returns all keys of entries in this InputMap and all its * parents. * * @return An array of keys (may be null or have zero length). --- 209,215 ---- } /** ! * Returns all keys of entries in this InputMap and all its * parents. * * @return An array of keys (may be null or have zero length). *************** public class InputMap *** 227,233 **** if (inputMap != null) set.addAll(inputMap.keySet()); if (set.size() == 0) ! return null; KeyStroke[] array = new KeyStroke[set.size()]; return (KeyStroke[]) set.toArray(array); } --- 227,233 ---- if (inputMap != null) set.addAll(inputMap.keySet()); if (set.size() == 0) ! return null; KeyStroke[] array = new KeyStroke[set.size()]; return (KeyStroke[]) set.toArray(array); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/InternalFrameFocusTraversalPolicy.java gcc-4.6.0/libjava/classpath/javax/swing/InternalFrameFocusTraversalPolicy.java *** gcc-4.5.2/libjava/classpath/javax/swing/InternalFrameFocusTraversalPolicy.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/InternalFrameFocusTraversalPolicy.java Tue Jan 11 19:46:05 2011 *************** import java.awt.FocusTraversalPolicy; *** 47,53 **** * when it is selected. * * @author Michael Koch ! * * @since 1.4 */ public abstract class InternalFrameFocusTraversalPolicy --- 47,53 ---- * when it is selected. * * @author Michael Koch ! * * @since 1.4 */ public abstract class InternalFrameFocusTraversalPolicy diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JApplet.java gcc-4.6.0/libjava/classpath/javax/swing/JApplet.java *** gcc-4.5.2/libjava/classpath/javax/swing/JApplet.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JApplet.java Tue Jan 11 19:46:05 2011 *************** public class JApplet extends Applet *** 79,85 **** protected AccessibleContext accessibleContext; private static final long serialVersionUID = 7269359214497372587L; ! protected JRootPane rootPane; /** --- 79,85 ---- protected AccessibleContext accessibleContext; private static final long serialVersionUID = 7269359214497372587L; ! protected JRootPane rootPane; /** *************** public class JApplet extends Applet *** 196,202 **** { super.processKeyEvent(e); } ! public void remove(Component comp) { // If we're removing the root pane, use super.remove. Otherwise --- 196,202 ---- { super.processKeyEvent(e); } ! public void remove(Component comp) { // If we're removing the root pane, use super.remove. Otherwise diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JButton.java gcc-4.6.0/libjava/classpath/javax/swing/JButton.java *** gcc-4.5.2/libjava/classpath/javax/swing/JButton.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JButton.java Tue Jan 11 19:46:05 2011 *************** public class JButton extends AbstractBut *** 91,99 **** /** * Creates a new button from the specified action. ! * * @param a the action (null permitted). ! * * @see AbstractButton#setAction(Action) */ public JButton(Action a) --- 91,99 ---- /** * Creates a new button from the specified action. ! * * @param a the action (null permitted). ! * * @see AbstractButton#setAction(Action) */ public JButton(Action a) *************** public class JButton extends AbstractBut *** 105,111 **** /** * Creates a new button with the specified icon (and an empty string for * the button text). ! * * @param icon the icon (null permitted). */ public JButton(Icon icon) --- 105,111 ---- /** * Creates a new button with the specified icon (and an empty string for * the button text). ! * * @param icon the icon (null permitted). */ public JButton(Icon icon) *************** public class JButton extends AbstractBut *** 115,121 **** /** * Creates a new button with the specified text and no icon. ! * * @param text the button text (null permitted, will be * substituted by an empty string). */ --- 115,121 ---- /** * Creates a new button with the specified text and no icon. ! * * @param text the button text (null permitted, will be * substituted by an empty string). */ *************** public class JButton extends AbstractBut *** 126,132 **** /** * Creates a new button with the specified text and icon. ! * * @param text the button text (null permitted, will be * substituted by an empty string). * @param icon the icon (null permitted). --- 126,132 ---- /** * Creates a new button with the specified text and icon. ! * * @param text the button text (null permitted, will be * substituted by an empty string). * @param icon the icon (null permitted). *************** public class JButton extends AbstractBut *** 140,146 **** } protected void configurePropertiesFromAction(Action a) ! { super.configurePropertiesFromAction(a); } --- 140,146 ---- } protected void configurePropertiesFromAction(Action a) ! { super.configurePropertiesFromAction(a); } *************** public class JButton extends AbstractBut *** 158,165 **** } /** ! * Returns the suffix ("ButtonUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JButton. * * @return "ButtonUI". --- 158,165 ---- } /** ! * Returns the suffix ("ButtonUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JButton. * * @return "ButtonUI". *************** public class JButton extends AbstractBut *** 167,173 **** public String getUIClassID() { // Returns a string that specifies the name of the L&F class that renders ! // this component. return "ButtonUI"; } --- 167,173 ---- public String getUIClassID() { // Returns a string that specifies the name of the L&F class that renders ! // this component. return "ButtonUI"; } *************** public class JButton extends AbstractBut *** 211,217 **** public boolean isDefaultCapable() { // Returns whether or not this button is capable of being the default ! // button on the RootPane. return defaultCapable; } --- 211,217 ---- public boolean isDefaultCapable() { // Returns whether or not this button is capable of being the default ! // button on the RootPane. return defaultCapable; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JCheckBox.java gcc-4.6.0/libjava/classpath/javax/swing/JCheckBox.java *** gcc-4.5.2/libjava/classpath/javax/swing/JCheckBox.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JCheckBox.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JCheckBox.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JCheckBox.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class JCheckBox extends JToggleBu *** 74,80 **** /** * Returns the accessble role of JCheckBox, ! * {@link AccessibleRole#CHECK_BOX}. */ public AccessibleRole getAccessibleRole() { --- 74,80 ---- /** * Returns the accessble role of JCheckBox, ! * {@link AccessibleRole#CHECK_BOX}. */ public AccessibleRole getAccessibleRole() { *************** public class JCheckBox extends JToggleBu *** 86,92 **** public static final String BORDER_PAINTED_FLAT_CHANGED_PROPERTY = "borderPaintedFlat"; ! private boolean borderPaintedFlat; private void init() --- 86,92 ---- public static final String BORDER_PAINTED_FLAT_CHANGED_PROPERTY = "borderPaintedFlat"; ! private boolean borderPaintedFlat; private void init() *************** public class JCheckBox extends JToggleBu *** 94,100 **** borderPainted = false; contentAreaFilled = false; } ! public JCheckBox() { this(null, null, false); --- 94,100 ---- borderPainted = false; contentAreaFilled = false; } ! public JCheckBox() { this(null, null, false); *************** public class JCheckBox extends JToggleBu *** 106,130 **** } public JCheckBox(Icon icon) ! { this(null, icon, false); ! } ! public JCheckBox(Icon icon, boolean selected) ! { this(null, icon, selected); ! } ! public JCheckBox(String text) { this(text, null, false); } ! public JCheckBox(String text, boolean selected) { this(text, null, selected); } ! public JCheckBox(String text, Icon icon) { this(text, icon, false); --- 106,130 ---- } public JCheckBox(Icon icon) ! { this(null, icon, false); ! } ! public JCheckBox(Icon icon, boolean selected) ! { this(null, icon, selected); ! } ! public JCheckBox(String text) { this(text, null, false); } ! public JCheckBox(String text, boolean selected) { this(text, null, selected); } ! public JCheckBox(String text, Icon icon) { this(text, icon, false); *************** public class JCheckBox extends JToggleBu *** 145,151 **** { return "CheckBoxUI"; } ! protected String paramString() { return super.paramString() + ",borderPaintedFlat=" + borderPaintedFlat; --- 145,151 ---- { return "CheckBoxUI"; } ! protected String paramString() { return super.paramString() + ",borderPaintedFlat=" + borderPaintedFlat; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JCheckBoxMenuItem.java gcc-4.6.0/libjava/classpath/javax/swing/JCheckBoxMenuItem.java *** gcc-4.5.2/libjava/classpath/javax/swing/JCheckBoxMenuItem.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JCheckBoxMenuItem.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleRol *** 49,55 **** * {@link AbstractButton#setSelected} and {@link #setState} can be use used for * the same purpose. JCheckBoxMenuItem uses * ToggleButtonModel to keep track of its selection. ! * * @author original author unknown */ public class JCheckBoxMenuItem --- 49,55 ---- * {@link AbstractButton#setSelected} and {@link #setState} can be use used for * the same purpose. JCheckBoxMenuItem uses * ToggleButtonModel to keep track of its selection. ! * * @author original author unknown */ public class JCheckBoxMenuItem *************** public class JCheckBoxMenuItem *** 80,86 **** /** * Creates a new JCheckBoxMenuItem with given icon ! * * @param icon Icon for this menu item */ public JCheckBoxMenuItem(Icon icon) --- 80,86 ---- /** * Creates a new JCheckBoxMenuItem with given icon ! * * @param icon Icon for this menu item */ public JCheckBoxMenuItem(Icon icon) *************** public class JCheckBoxMenuItem *** 90,96 **** /** * Creates a new JCheckBoxMenuItem with given label ! * * @param text Label for this menu item */ public JCheckBoxMenuItem(String text) --- 90,96 ---- /** * Creates a new JCheckBoxMenuItem with given label ! * * @param text Label for this menu item */ public JCheckBoxMenuItem(String text) *************** public class JCheckBoxMenuItem *** 100,106 **** /** * Creates a new JCheckBoxMenuItem using given action ! * * @param action Action for this menu item. */ public JCheckBoxMenuItem(Action action) --- 100,106 ---- /** * Creates a new JCheckBoxMenuItem using given action ! * * @param action Action for this menu item. */ public JCheckBoxMenuItem(Action action) *************** public class JCheckBoxMenuItem *** 111,117 **** /** * Creates a new JCheckBoxMenuItem object with given label and icon ! * * @param text Label for this menu item * @param icon Icon for this menu item */ --- 111,117 ---- /** * Creates a new JCheckBoxMenuItem object with given label and icon ! * * @param text Label for this menu item * @param icon Icon for this menu item */ *************** public class JCheckBoxMenuItem *** 123,129 **** /** * Creates a new JCheckBoxMenuItem object using specified label and marked as * checked if given 'state' is true. ! * * @param text Label for this menu item * @param state true if this item should be in checked state * and false otherwise --- 123,129 ---- /** * Creates a new JCheckBoxMenuItem object using specified label and marked as * checked if given 'state' is true. ! * * @param text Label for this menu item * @param state true if this item should be in checked state * and false otherwise *************** public class JCheckBoxMenuItem *** 136,142 **** /** * Creates a new JCheckBoxMenuItem object with given label, icon, and marked * as checked if given 'state' is true. ! * * @param text Label for this menu item * @param icon icon for this menu item * @param state true if this item should be in checked state --- 136,142 ---- /** * Creates a new JCheckBoxMenuItem object with given label, icon, and marked * as checked if given 'state' is true. ! * * @param text Label for this menu item * @param icon icon for this menu item * @param state true if this item should be in checked state *************** public class JCheckBoxMenuItem *** 155,161 **** /** * This method returns a name to identify which look and feel class will be * the UI delegate for the menuItem. ! * * @return The Look and Feel classID. "JCheckBoxMenuItemUI" */ public String getUIClassID() --- 155,161 ---- /** * This method returns a name to identify which look and feel class will be * the UI delegate for the menuItem. ! * * @return The Look and Feel classID. "JCheckBoxMenuItemUI" */ public String getUIClassID() *************** public class JCheckBoxMenuItem *** 165,171 **** /** * Returns checked state for this check box menu item. ! * * @return Returns true if this menu item is in checked state and false * otherwise. */ --- 165,171 ---- /** * Returns checked state for this check box menu item. ! * * @return Returns true if this menu item is in checked state and false * otherwise. */ *************** public class JCheckBoxMenuItem *** 177,183 **** /** * Sets state for this check box menu item. If given 'state' is true, then * mark menu item as checked, and uncheck this menu item otherwise. ! * * @param state new state for this menu item */ public synchronized void setState(boolean state) --- 177,183 ---- /** * Sets state for this check box menu item. If given 'state' is true, then * mark menu item as checked, and uncheck this menu item otherwise. ! * * @param state new state for this menu item */ public synchronized void setState(boolean state) *************** public class JCheckBoxMenuItem *** 188,194 **** /** * This method returns array containing label of this menu item if it is * selected and null otherwise. ! * * @return Array containing label of this menu item if this menu item is * selected or null otherwise. */ --- 188,194 ---- /** * This method returns array containing label of this menu item if it is * selected and null otherwise. ! * * @return Array containing label of this menu item if this menu item is * selected or null otherwise. */ *************** public class JCheckBoxMenuItem *** 216,222 **** * JCheckBoxMenuItem component, for use in debugging. The * return value is guaranteed to be non-null, but the format * of the string may vary between implementations. ! * * @return A string describing the attributes of the * JCheckBoxMenuItem. */ --- 216,222 ---- * JCheckBoxMenuItem component, for use in debugging. The * return value is guaranteed to be non-null, but the format * of the string may vary between implementations. ! * * @return A string describing the attributes of the * JCheckBoxMenuItem. */ *************** public class JCheckBoxMenuItem *** 230,236 **** /** * Returns the object that provides accessibility features for this * JCheckBoxMenuItem component. ! * * @return The accessible context (an instance of * {@link AccessibleJCheckBoxMenuItem}). */ --- 230,236 ---- /** * Returns the object that provides accessibility features for this * JCheckBoxMenuItem component. ! * * @return The accessible context (an instance of * {@link AccessibleJCheckBoxMenuItem}). */ *************** public class JCheckBoxMenuItem *** 245,251 **** /** * Provides the accessibility features for the JCheckBoxMenuItem * component. ! * * @see JCheckBoxMenuItem#getAccessibleContext() */ protected class AccessibleJCheckBoxMenuItem --- 245,251 ---- /** * Provides the accessibility features for the JCheckBoxMenuItem * component. ! * * @see JCheckBoxMenuItem#getAccessibleContext() */ protected class AccessibleJCheckBoxMenuItem *************** public class JCheckBoxMenuItem *** 264,270 **** /** * Returns the accessible role for the JCheckBoxMenuItem * component. ! * * @return {@link AccessibleRole#CHECK_BOX}. */ public AccessibleRole getAccessibleRole() --- 264,270 ---- /** * Returns the accessible role for the JCheckBoxMenuItem * component. ! * * @return {@link AccessibleRole#CHECK_BOX}. */ public AccessibleRole getAccessibleRole() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JComboBox.java gcc-4.6.0/libjava/classpath/javax/swing/JComboBox.java *** gcc-4.5.2/libjava/classpath/javax/swing/JComboBox.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JComboBox.java Tue Jan 11 19:46:05 2011 *************** public class JComboBox extends JComponen *** 188,195 **** public JComboBox(Object[] itemArray) { this(new DefaultComboBoxModel(itemArray)); ! ! if (itemArray.length > 0) setSelectedIndex(0); } --- 188,195 ---- public JComboBox(Object[] itemArray) { this(new DefaultComboBoxModel(itemArray)); ! ! if (itemArray.length > 0) setSelectedIndex(0); } *************** public class JComboBox extends JComponen *** 298,304 **** // Removes itself (as DataListener) from the to-be-replaced model. dataModel.removeListDataListener(this); } ! /* Adds itself as a DataListener to the new model. * It is intentioned that this operation will fail with a NullPointerException if the * caller delivered a null argument. --- 298,304 ---- // Removes itself (as DataListener) from the to-be-replaced model. dataModel.removeListDataListener(this); } ! /* Adds itself as a DataListener to the new model. * It is intentioned that this operation will fail with a NullPointerException if the * caller delivered a null argument. *************** public class JComboBox extends JComponen *** 309,315 **** ComboBoxModel oldDataModel = dataModel; dataModel = newDataModel; selectedItemReminder = newDataModel.getSelectedItem(); ! // Notifies the listeners of the model change. firePropertyChange("model", oldDataModel, dataModel); } --- 309,315 ---- ComboBoxModel oldDataModel = dataModel; dataModel = newDataModel; selectedItemReminder = newDataModel.getSelectedItem(); ! // Notifies the listeners of the model change. firePropertyChange("model", oldDataModel, dataModel); } *************** public class JComboBox extends JComponen *** 500,506 **** */ public void setSelectedIndex(int index) { ! if (index < -1 || index >= dataModel.getSize()) // Fails because index is out of bounds. throw new IllegalArgumentException("illegal index: " + index); else --- 500,506 ---- */ public void setSelectedIndex(int index) { ! if (index < -1 || index >= dataModel.getSize()) // Fails because index is out of bounds. throw new IllegalArgumentException("illegal index: " + index); else *************** public class JComboBox extends JComponen *** 518,524 **** * DefaultComboBoxModel the complexity is O(n) where n is the * number of elements in the combo box. *

                                            ! * * @return int Index specifying location of the currently selected item in the * combo box or -1 if nothing is selected in the combo box. */ --- 518,524 ---- * DefaultComboBoxModel the complexity is O(n) where n is the * number of elements in the combo box. *

                                            ! * * @return int Index specifying location of the currently selected item in the * combo box or -1 if nothing is selected in the combo box. */ *************** public class JComboBox extends JComponen *** 552,563 **** } /** ! * Returns an object that is used as the display value when calculating the ! * preferred size for the combo box. This value is, of course, never * displayed anywhere. ! * * @return The prototype display value (possibly null). ! * * @since 1.4 * @see #setPrototypeDisplayValue(Object) */ --- 552,563 ---- } /** ! * Returns an object that is used as the display value when calculating the ! * preferred size for the combo box. This value is, of course, never * displayed anywhere. ! * * @return The prototype display value (possibly null). ! * * @since 1.4 * @see #setPrototypeDisplayValue(Object) */ *************** public class JComboBox extends JComponen *** 569,579 **** /** * Sets the object that is assumed to be the displayed item when calculating * the preferred size for the combo box. A {@link PropertyChangeEvent} (with ! * the name prototypeDisplayValue) is sent to all registered ! * listeners. ! * * @param value the new value (null permitted). ! * * @since 1.4 * @see #getPrototypeDisplayValue() */ --- 569,579 ---- /** * Sets the object that is assumed to be the displayed item when calculating * the preferred size for the combo box. A {@link PropertyChangeEvent} (with ! * the name prototypeDisplayValue) is sent to all registered ! * listeners. ! * * @param value the new value (null permitted). ! * * @since 1.4 * @see #getPrototypeDisplayValue() */ *************** public class JComboBox extends JComponen *** 593,599 **** */ public void addItem(Object element) { ! if (dataModel instanceof MutableComboBoxModel) ((MutableComboBoxModel) dataModel).addElement(element); else throw new RuntimeException("Unable to add the item because the data " --- 593,599 ---- */ public void addItem(Object element) { ! if (dataModel instanceof MutableComboBoxModel) ((MutableComboBoxModel) dataModel).addElement(element); else throw new RuntimeException("Unable to add the item because the data " *************** public class JComboBox extends JComponen *** 611,617 **** */ public void insertItemAt(Object element, int index) { ! if (dataModel instanceof MutableComboBoxModel) ((MutableComboBoxModel) dataModel).insertElementAt(element, index); else throw new RuntimeException("Unable to insert the item because the data " --- 611,617 ---- */ public void insertItemAt(Object element, int index) { ! if (dataModel instanceof MutableComboBoxModel) ((MutableComboBoxModel) dataModel).insertElementAt(element, index); else throw new RuntimeException("Unable to insert the item because the data " *************** public class JComboBox extends JComponen *** 628,634 **** */ public void removeItem(Object element) { ! if (dataModel instanceof MutableComboBoxModel) ((MutableComboBoxModel) dataModel).removeElement(element); else throw new RuntimeException("Unable to remove the item because the data " --- 628,634 ---- */ public void removeItem(Object element) { ! if (dataModel instanceof MutableComboBoxModel) ((MutableComboBoxModel) dataModel).removeElement(element); else throw new RuntimeException("Unable to remove the item because the data " *************** public class JComboBox extends JComponen *** 753,759 **** action = a; configurePropertiesFromAction(action); if (action != null) ! // FIXME: remove from old action and add to new action // PropertyChangeListener to listen to changes in the action addActionListener(action); } --- 753,759 ---- action = a; configurePropertiesFromAction(action); if (action != null) ! // FIXME: remove from old action and add to new action // PropertyChangeListener to listen to changes in the action addActionListener(action); } *************** public class JComboBox extends JComponen *** 856,862 **** } /** ! * Fires a popupMenuWillBecomeInvisible() event to all * PopupMenuListeners. * * Note: This method is intended for use by plaf classes only. --- 856,862 ---- } /** ! * Fires a popupMenuWillBecomeInvisible() event to all * PopupMenuListeners. * * Note: This method is intended for use by plaf classes only. *************** public class JComboBox extends JComponen *** 870,876 **** } /** ! * Fires a popupMenuWillBecomeVisible() event to all * PopupMenuListeners. * * Note: This method is intended for use by plaf classes only. --- 870,876 ---- } /** ! * Fires a popupMenuWillBecomeVisible() event to all * PopupMenuListeners. * * Note: This method is intended for use by plaf classes only. *************** public class JComboBox extends JComponen *** 892,910 **** protected void selectedItemChanged() { // Fire ItemEvent to indicated that previously selected item is now ! // deselected if (selectedItemReminder != null) fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, selectedItemReminder, ItemEvent.DESELECTED)); ! // Fire ItemEvent to indicate that new item is selected Object newSelection = getSelectedItem(); if (newSelection != null) fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, newSelection, ItemEvent.SELECTED)); ! // Fire Action Event to JComboBox's registered listeners fireActionEvent(); selectedItemReminder = newSelection; --- 892,910 ---- protected void selectedItemChanged() { // Fire ItemEvent to indicated that previously selected item is now ! // deselected if (selectedItemReminder != null) fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, selectedItemReminder, ItemEvent.DESELECTED)); ! // Fire ItemEvent to indicate that new item is selected Object newSelection = getSelectedItem(); if (newSelection != null) fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, newSelection, ItemEvent.SELECTED)); ! // Fire Action Event to JComboBox's registered listeners fireActionEvent(); selectedItemReminder = newSelection; *************** public class JComboBox extends JComponen *** 997,1003 **** { // if first and last index of the given ListDataEvent are both -1, // then it indicates that selected item in the combo box data model ! // have changed. if (event.getIndex0() == -1 && event.getIndex1() == -1) selectedItemChanged(); } --- 997,1003 ---- { // if first and last index of the given ListDataEvent are both -1, // then it indicates that selected item in the combo box data model ! // have changed. if (event.getIndex0() == -1 && event.getIndex1() == -1) selectedItemChanged(); } *************** public class JComboBox extends JComponen *** 1110,1116 **** sb.append(",isEditable=").append(isEditable()); sb.append(",lightWeightPopupEnabled=").append(isLightWeightPopupEnabled()); sb.append(",maximumRowCount=").append(getMaximumRowCount()); ! sb.append(",selectedItemReminder="); if (selectedItemReminder != null) sb.append(selectedItemReminder); --- 1110,1116 ---- sb.append(",isEditable=").append(isEditable()); sb.append(",lightWeightPopupEnabled=").append(isLightWeightPopupEnabled()); sb.append(",maximumRowCount=").append(getMaximumRowCount()); ! sb.append(",selectedItemReminder="); if (selectedItemReminder != null) sb.append(selectedItemReminder); *************** public class JComboBox extends JComponen *** 1121,1127 **** * Returns the object that provides accessibility features for this * JComboBox component. * ! * @return The accessible context (an instance of * {@link AccessibleJComboBox}). */ public AccessibleContext getAccessibleContext() --- 1121,1127 ---- * Returns the object that provides accessibility features for this * JComboBox component. * ! * @return The accessible context (an instance of * {@link AccessibleJComboBox}). */ public AccessibleContext getAccessibleContext() *************** public class JComboBox extends JComponen *** 1466,1472 **** // Nothing to do here. } } ! private class DefaultKeySelectionManager implements KeySelectionManager { --- 1466,1472 ---- // Nothing to do here. } } ! private class DefaultKeySelectionManager implements KeySelectionManager { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JComponent.java gcc-4.6.0/libjava/classpath/javax/swing/JComponent.java *** gcc-4.5.2/libjava/classpath/javax/swing/JComponent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JComponent.java Tue Jan 11 19:46:05 2011 *************** public abstract class JComponent extends *** 105,111 **** { private static final long serialVersionUID = -7908749299918704233L; ! /** * The accessible context of this JComponent. */ protected AccessibleContext accessibleContext; --- 105,111 ---- { private static final long serialVersionUID = -7908749299918704233L; ! /** * The accessible context of this JComponent. */ protected AccessibleContext accessibleContext; *************** public abstract class JComponent extends *** 114,120 **** * Basic accessibility support for JComponent derived * widgets. */ ! public abstract class AccessibleJComponent extends AccessibleAWTContainer implements AccessibleExtendedComponent { --- 114,120 ---- * Basic accessibility support for JComponent derived * widgets. */ ! public abstract class AccessibleJComponent extends AccessibleAWTContainer implements AccessibleExtendedComponent { *************** public abstract class JComponent extends *** 123,129 **** * fires appropriate PropertyChangeEvents to listeners registered with * the AccessibleJComponent. */ ! protected class AccessibleFocusHandler implements FocusListener { /** --- 123,129 ---- * fires appropriate PropertyChangeEvents to listeners registered with * the AccessibleJComponent. */ ! protected class AccessibleFocusHandler implements FocusListener { /** *************** public abstract class JComponent extends *** 168,174 **** * from the JComponent and fires appropriate PropertyChangeEvents to * interested listeners on the AccessibleJComponent. */ ! protected class AccessibleContainerHandler implements ContainerListener { /** --- 168,174 ---- * from the JComponent and fires appropriate PropertyChangeEvents to * interested listeners on the AccessibleJComponent. */ ! protected class AccessibleContainerHandler implements ContainerListener { /** *************** public abstract class JComponent extends *** 464,470 **** else if (border instanceof TitledBorder) { TitledBorder titled = (TitledBorder) border; ! title = titled.getTitle(); } return title; } --- 464,470 ---- else if (border instanceof TitledBorder) { TitledBorder titled = (TitledBorder) border; ! title = titled.getTitle(); } return title; } *************** public abstract class JComponent extends *** 489,495 **** */ public String getTitledBorderText() { ! return getBorderTitle(getBorder()); } /** --- 489,495 ---- */ public String getTitledBorderText() { ! return getBorderTitle(getBorder()); } /** *************** public abstract class JComponent extends *** 536,564 **** */ float alignmentY = -1.0F; ! /** * The border painted around this component. ! * * @see #paintBorder */ Border border; /** * The popup menu for the component. ! * * @see #getComponentPopupMenu() * @see #setComponentPopupMenu(JPopupMenu) */ JPopupMenu componentPopupMenu; ! /** * A flag that controls whether the {@link #getComponentPopupMenu()} method * looks to the component's parent when the componentPopupMenu * field is null. */ boolean inheritsPopupMenu; ! ! /** *

                                            Whether to double buffer this component when painting. This flag * should generally be true, to ensure good painting * performance.

                                            --- 536,564 ---- */ float alignmentY = -1.0F; ! /** * The border painted around this component. ! * * @see #paintBorder */ Border border; /** * The popup menu for the component. ! * * @see #getComponentPopupMenu() * @see #setComponentPopupMenu(JPopupMenu) */ JPopupMenu componentPopupMenu; ! /** * A flag that controls whether the {@link #getComponentPopupMenu()} method * looks to the component's parent when the componentPopupMenu * field is null. */ boolean inheritsPopupMenu; ! ! /** *

                                            Whether to double buffer this component when painting. This flag * should generally be true, to ensure good painting * performance.

                                            *************** public abstract class JComponent extends *** 587,593 **** */ int debugGraphicsOptions; ! /** *

                                            This property controls two independent behaviors simultaneously.

                                            * *

                                            First, it controls whether to fill the background of this widget --- 587,593 ---- */ int debugGraphicsOptions; ! /** *

                                            This property controls two independent behaviors simultaneously.

                                            * *

                                            First, it controls whether to fill the background of this widget *************** public abstract class JComponent extends *** 616,624 **** */ boolean opaque = false; ! /** * The user interface delegate for this component. Event delivery and ! * repainting of the component are usually delegated to this object. * * @see #setUI * @see #getUIClassID --- 616,624 ---- */ boolean opaque = false; ! /** * The user interface delegate for this component. Event delivery and ! * repainting of the component are usually delegated to this object. * * @see #setUI * @see #getUIClassID *************** public abstract class JComponent extends *** 630,636 **** * A hint to the focus system that this component should or should not * get focus. If this is false, swing will not try to * request focus on this component; if true, swing might ! * try to request focus, but the request might fail. Thus it is only * a hint guiding swing's behavior. * * @see #requestFocus() --- 630,636 ---- * A hint to the focus system that this component should or should not * get focus. If this is false, swing will not try to * request focus on this component; if true, swing might ! * try to request focus, but the request might fail. Thus it is only * a hint guiding swing's behavior. * * @see #requestFocus() *************** public abstract class JComponent extends *** 653,659 **** /** * Indicates whether the current paint call is already double buffered or ! * not. */ static boolean paintingDoubleBuffered = false; --- 653,659 ---- /** * Indicates whether the current paint call is already double buffered or ! * not. */ static boolean paintingDoubleBuffered = false; *************** public abstract class JComponent extends *** 675,688 **** */ private VetoableChangeSupport vetoableChangeSupport; ! /** * Storage for "client properties", which are key/value pairs associated * with this component by a "client", such as a user application or a * layout manager. This is lazily constructed when the component gets its * first client property. */ private Hashtable clientProperties; ! private InputMap inputMap_whenFocused; private InputMap inputMap_whenAncestorOfFocused; private ComponentInputMap inputMap_whenInFocusedWindow; --- 675,688 ---- */ private VetoableChangeSupport vetoableChangeSupport; ! /** * Storage for "client properties", which are key/value pairs associated * with this component by a "client", such as a user application or a * layout manager. This is lazily constructed when the component gets its * first client property. */ private Hashtable clientProperties; ! private InputMap inputMap_whenFocused; private InputMap inputMap_whenAncestorOfFocused; private ComponentInputMap inputMap_whenInFocusedWindow; *************** public abstract class JComponent extends *** 717,728 **** /** * The default locale of the component. ! * * @see #getDefaultLocale * @see #setDefaultLocale */ private static Locale defaultLocale; ! public static final String TOOL_TIP_TEXT_KEY = "ToolTipText"; /** --- 717,728 ---- /** * The default locale of the component. ! * * @see #getDefaultLocale * @see #setDefaultLocale */ private static Locale defaultLocale; ! public static final String TOOL_TIP_TEXT_KEY = "ToolTipText"; /** *************** public abstract class JComponent extends *** 734,740 **** public static final int UNDEFINED_CONDITION = -1; /** ! * Constant used to indicate that an action should be performed only when * the component has focus. * * @see #registerKeyboardAction(ActionListener, KeyStroke, int) --- 734,740 ---- public static final int UNDEFINED_CONDITION = -1; /** ! * Constant used to indicate that an action should be performed only when * the component has focus. * * @see #registerKeyboardAction(ActionListener, KeyStroke, int) *************** public abstract class JComponent extends *** 742,748 **** public static final int WHEN_FOCUSED = 0; /** ! * Constant used to indicate that an action should be performed only when * the component is an ancestor of the component which has focus. * * @see #registerKeyboardAction(ActionListener, KeyStroke, int) --- 742,748 ---- public static final int WHEN_FOCUSED = 0; /** ! * Constant used to indicate that an action should be performed only when * the component is an ancestor of the component which has focus. * * @see #registerKeyboardAction(ActionListener, KeyStroke, int) *************** public abstract class JComponent extends *** 750,756 **** public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1; /** ! * Constant used to indicate that an action should be performed only when * the component is in the window which has focus. * * @see #registerKeyboardAction(ActionListener, KeyStroke, int) --- 750,756 ---- public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1; /** ! * Constant used to indicate that an action should be performed only when * the component is in the window which has focus. * * @see #registerKeyboardAction(ActionListener, KeyStroke, int) *************** public abstract class JComponent extends *** 796,802 **** /** * Helper to lazily construct and return the client properties table. ! * * @return The current client properties table * * @see #clientProperties --- 796,802 ---- /** * Helper to lazily construct and return the client properties table. ! * * @return The current client properties table * * @see #clientProperties *************** public abstract class JComponent extends *** 861,867 **** * Unregister an AncestorListener. * * @param listener The listener to unregister ! * * @see #addAncestorListener */ public void removeAncestorListener(AncestorListener listener) --- 861,867 ---- * Unregister an AncestorListener. * * @param listener The listener to unregister ! * * @see #addAncestorListener */ public void removeAncestorListener(AncestorListener listener) *************** public abstract class JComponent extends *** 911,932 **** } /** ! * Returns all registered {@link EventListener}s of the given * listenerType. * ! * @param listenerType the class of listeners to filter (null * not permitted). ! * * @return An array of registered listeners. ! * * @throws ClassCastException if listenerType does not implement * the {@link EventListener} interface. ! * @throws NullPointerException if listenerType is * null. ! * * @see #getAncestorListeners() * @see #listenerList ! * * @since 1.3 */ public T[] getListeners(Class listenerType) --- 911,932 ---- } /** ! * Returns all registered {@link EventListener}s of the given * listenerType. * ! * @param listenerType the class of listeners to filter (null * not permitted). ! * * @return An array of registered listeners. ! * * @throws ClassCastException if listenerType does not implement * the {@link EventListener} interface. ! * @throws NullPointerException if listenerType is * null. ! * * @see #getAncestorListeners() * @see #listenerList ! * * @since 1.3 */ public T[] getListeners(Class listenerType) *************** public abstract class JComponent extends *** 953,966 **** /** * Return all registered VetoableChangeListener objects. * ! * @return An array of the VetoableChangeListener objects ! * registered with this component (possibly empty but never * null). ! * * @since 1.4 */ public VetoableChangeListener[] getVetoableChangeListeners() ! { return vetoableChangeSupport == null ? new VetoableChangeListener[0] : vetoableChangeSupport.getVetoableChangeListeners(); } --- 953,966 ---- /** * Return all registered VetoableChangeListener objects. * ! * @return An array of the VetoableChangeListener objects ! * registered with this component (possibly empty but never * null). ! * * @since 1.4 */ public VetoableChangeListener[] getVetoableChangeListeners() ! { return vetoableChangeSupport == null ? new VetoableChangeListener[0] : vetoableChangeSupport.getVetoableChangeListeners(); } *************** public abstract class JComponent extends *** 1004,1010 **** { super.firePropertyChange(property, oldValue, newValue); } ! /** * Fires a property change for a primitive boolean property. * --- 1004,1010 ---- { super.firePropertyChange(property, oldValue, newValue); } ! /** * Fires a property change for a primitive boolean property. * *************** public abstract class JComponent extends *** 1081,1087 **** /** * Set the value of the {@link #border} property. ! * * @param newBorder The new value of the property * * @see #getBorder --- 1081,1087 ---- /** * Set the value of the {@link #border} property. ! * * @param newBorder The new value of the property * * @see #getBorder *************** public abstract class JComponent extends *** 1257,1263 **** */ public Dimension getMaximumSize() { ! Dimension size = null; if (isMaximumSizeSet()) size = super.getMaximumSize(); else --- 1257,1263 ---- */ public Dimension getMaximumSize() { ! Dimension size = null; if (isMaximumSizeSet()) size = super.getMaximumSize(); else *************** public abstract class JComponent extends *** 1287,1293 **** */ public Dimension getMinimumSize() { ! Dimension size = null; if (isMinimumSizeSet()) size = super.getMinimumSize(); else --- 1287,1293 ---- */ public Dimension getMinimumSize() { ! Dimension size = null; if (isMinimumSizeSet()) size = super.getMinimumSize(); else *************** public abstract class JComponent extends *** 1317,1323 **** */ public Dimension getPreferredSize() { ! Dimension size = null; if (isPreferredSizeSet()) size = super.getPreferredSize(); else --- 1317,1323 ---- */ public Dimension getPreferredSize() { ! Dimension size = null; if (isPreferredSizeSet()) size = super.getPreferredSize(); else *************** public abstract class JComponent extends *** 1335,1341 **** * * @return The current value of the property, or null * if none has been set. ! * * @deprecated See {@link java.awt.FocusTraversalPolicy} */ public Component getNextFocusableComponent() --- 1335,1341 ---- * * @return The current value of the property, or null * if none has been set. ! * * @deprecated See {@link java.awt.FocusTraversalPolicy} */ public Component getNextFocusableComponent() *************** public abstract class JComponent extends *** 1362,1372 **** KeyStroke[] ks2; if (inputMap_whenFocused != null) ks0 = inputMap_whenFocused.keys(); ! else ks0 = new KeyStroke[0]; if (inputMap_whenAncestorOfFocused != null) ks1 = inputMap_whenAncestorOfFocused.keys(); ! else ks1 = new KeyStroke[0]; if (inputMap_whenInFocusedWindow != null) ks2 = inputMap_whenInFocusedWindow.keys(); --- 1362,1372 ---- KeyStroke[] ks2; if (inputMap_whenFocused != null) ks0 = inputMap_whenFocused.keys(); ! else ks0 = new KeyStroke[0]; if (inputMap_whenAncestorOfFocused != null) ks1 = inputMap_whenAncestorOfFocused.keys(); ! else ks1 = new KeyStroke[0]; if (inputMap_whenInFocusedWindow != null) ks2 = inputMap_whenInFocusedWindow.keys(); *************** public abstract class JComponent extends *** 1428,1434 **** /** * Return the location at which the toolTipText property should ! * be displayed, when triggered by a particular mouse event. * * @param event The event the tooltip is being presented in response to * --- 1428,1434 ---- /** * Return the location at which the toolTipText property should ! * be displayed, when triggered by a particular mouse event. * * @param event The event the tooltip is being presented in response to * *************** public abstract class JComponent extends *** 1496,1526 **** { return getToolTipText(); } ! /** * Returns the flag that controls whether or not the component inherits its * parent's popup menu when no popup menu is specified for this component. ! * * @return A boolean. ! * * @since 1.5 ! * * @see #setInheritsPopupMenu(boolean) */ public boolean getInheritsPopupMenu() { ! return inheritsPopupMenu; } ! /** * Sets the flag that controls whether or not the component inherits its * parent's popup menu when no popup menu is specified for this component. * This is a bound property with the property name 'inheritsPopupMenu'. ! * * @param inherit the new flag value. ! * * @since 1.5 ! * * @see #getInheritsPopupMenu() */ public void setInheritsPopupMenu(boolean inherit) --- 1496,1526 ---- { return getToolTipText(); } ! /** * Returns the flag that controls whether or not the component inherits its * parent's popup menu when no popup menu is specified for this component. ! * * @return A boolean. ! * * @since 1.5 ! * * @see #setInheritsPopupMenu(boolean) */ public boolean getInheritsPopupMenu() { ! return inheritsPopupMenu; } ! /** * Sets the flag that controls whether or not the component inherits its * parent's popup menu when no popup menu is specified for this component. * This is a bound property with the property name 'inheritsPopupMenu'. ! * * @param inherit the new flag value. ! * * @since 1.5 ! * * @see #getInheritsPopupMenu() */ public void setInheritsPopupMenu(boolean inherit) *************** public abstract class JComponent extends *** 1531,1547 **** this.firePropertyChange("inheritsPopupMenu", ! inherit, inherit); } } ! /** ! * Returns the popup menu for this component. If the popup menu is * null AND the {@link #getInheritsPopupMenu()} method returns * true, this method will return the parent's popup menu (if it * has one). ! * * @return The popup menu (possibly null. ! * * @since 1.5 ! * * @see #setComponentPopupMenu(JPopupMenu) * @see #getInheritsPopupMenu() */ --- 1531,1547 ---- this.firePropertyChange("inheritsPopupMenu", ! inherit, inherit); } } ! /** ! * Returns the popup menu for this component. If the popup menu is * null AND the {@link #getInheritsPopupMenu()} method returns * true, this method will return the parent's popup menu (if it * has one). ! * * @return The popup menu (possibly null. ! * * @since 1.5 ! * * @see #setComponentPopupMenu(JPopupMenu) * @see #getInheritsPopupMenu() */ *************** public abstract class JComponent extends *** 1549,1555 **** { if (componentPopupMenu == null && getInheritsPopupMenu()) { ! Container parent = getParent(); if (parent instanceof JComponent) return ((JComponent) parent).getComponentPopupMenu(); else --- 1549,1555 ---- { if (componentPopupMenu == null && getInheritsPopupMenu()) { ! Container parent = getParent(); if (parent instanceof JComponent) return ((JComponent) parent).getComponentPopupMenu(); else *************** public abstract class JComponent extends *** 1560,1572 **** } /** ! * Sets the popup menu for this component (this is a bound property with * the property name 'componentPopupMenu'). ! * * @param popup the popup menu (null permitted). * * @since 1.5 ! * * @see #getComponentPopupMenu() */ public void setComponentPopupMenu(JPopupMenu popup) --- 1560,1572 ---- } /** ! * Sets the popup menu for this component (this is a bound property with * the property name 'componentPopupMenu'). ! * * @param popup the popup menu (null permitted). * * @since 1.5 ! * * @see #getComponentPopupMenu() */ public void setComponentPopupMenu(JPopupMenu popup) *************** public abstract class JComponent extends *** 1578,1584 **** firePropertyChange("componentPopupMenu", old, popup); } } ! /** * Return the top level ancestral container (usually a {@link * java.awt.Window} or {@link java.applet.Applet}) which this component is --- 1578,1584 ---- firePropertyChange("componentPopupMenu", old, popup); } } ! /** * Return the top level ancestral container (usually a {@link * java.awt.Window} or {@link java.applet.Applet}) which this component is *************** public abstract class JComponent extends *** 1689,1695 **** } /** ! * Return the current value of the {@link #opaque} property. * * @return The current property value */ --- 1689,1695 ---- } /** ! * Return the current value of the {@link #opaque} property. * * @return The current property value */ *************** public abstract class JComponent extends *** 2149,2155 **** // The component that is finally triggered for painting. JComponent paintRoot = this; ! // Stores the component and all its parents. This will be used to limit // the actually painted components in paintChildren by setting // the field paintChild. --- 2149,2155 ---- // The component that is finally triggered for painting. JComponent paintRoot = this; ! // Stores the component and all its parents. This will be used to limit // the actually painted components in paintChildren by setting // the field paintChild. *************** public abstract class JComponent extends *** 2200,2206 **** else if (jc.isPartiallyObscured(i, paintX, paintY, paintW, paintH)) updatePaintRoot = true; ! } } if (updatePaintRoot) --- 2200,2206 ---- else if (jc.isPartiallyObscured(i, paintX, paintY, paintW, paintH)) updatePaintRoot = true; ! } } if (updatePaintRoot) *************** public abstract class JComponent extends *** 2430,2456 **** * A variant of {@link * #registerKeyboardAction(ActionListener,String,KeyStroke,int)} which * provides null for the command name. ! * * @param act the action listener to notify when the keystroke occurs. * @param stroke the key stroke. ! * @param cond the condition (one of {@link #WHEN_FOCUSED}, ! * {@link #WHEN_IN_FOCUSED_WINDOW} and * {@link #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}). */ public void registerKeyboardAction(ActionListener act, ! KeyStroke stroke, int cond) { registerKeyboardAction(act, null, stroke, cond); } ! /* * There is some charmingly undocumented behavior sun seems to be using * to simulate the old register/unregister keyboard binding API. It's not * clear to me why this matters, but we shall endeavour to follow suit. * * Two main thing seem to be happening when you do registerKeyboardAction(): ! * * - no actionMap() entry gets created, just an entry in inputMap() * * - the inputMap() entry is a proxy class which invokes the the --- 2430,2456 ---- * A variant of {@link * #registerKeyboardAction(ActionListener,String,KeyStroke,int)} which * provides null for the command name. ! * * @param act the action listener to notify when the keystroke occurs. * @param stroke the key stroke. ! * @param cond the condition (one of {@link #WHEN_FOCUSED}, ! * {@link #WHEN_IN_FOCUSED_WINDOW} and * {@link #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}). */ public void registerKeyboardAction(ActionListener act, ! KeyStroke stroke, int cond) { registerKeyboardAction(act, null, stroke, cond); } ! /* * There is some charmingly undocumented behavior sun seems to be using * to simulate the old register/unregister keyboard binding API. It's not * clear to me why this matters, but we shall endeavour to follow suit. * * Two main thing seem to be happening when you do registerKeyboardAction(): ! * * - no actionMap() entry gets created, just an entry in inputMap() * * - the inputMap() entry is a proxy class which invokes the the *************** public abstract class JComponent extends *** 2470,2476 **** ActionListener target; String bindingCommandName; ! public ActionListenerProxy(ActionListener li, String cmd) { target = li; --- 2470,2476 ---- ActionListener target; String bindingCommandName; ! public ActionListenerProxy(ActionListener li, String cmd) { target = li; *************** public abstract class JComponent extends *** 2487,2493 **** } } ! /** * An obsolete method to register a keyboard action on this component. * You should use getInputMap and getActionMap --- 2487,2493 ---- } } ! /** * An obsolete method to register a keyboard action on this component. * You should use getInputMap and getActionMap *************** public abstract class JComponent extends *** 2507,2515 **** * @see #getConditionForKeyStroke * @see #resetKeyboardActions */ ! public void registerKeyboardAction(ActionListener act, String cmd, ! KeyStroke stroke, int cond) { ActionListenerProxy proxy = new ActionListenerProxy(act, cmd); --- 2507,2515 ---- * @see #getConditionForKeyStroke * @see #resetKeyboardActions */ ! public void registerKeyboardAction(ActionListener act, String cmd, ! KeyStroke stroke, int cond) { ActionListenerProxy proxy = new ActionListenerProxy(act, cmd); *************** public abstract class JComponent extends *** 2519,2530 **** /** * Sets the input map for the given condition. ! * ! * @param condition the condition (one of {@link #WHEN_FOCUSED}, ! * {@link #WHEN_IN_FOCUSED_WINDOW} and * {@link #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}). * @param map the map. ! * * @throws IllegalArgumentException if condition is not one of * the specified values. */ --- 2519,2530 ---- /** * Sets the input map for the given condition. ! * ! * @param condition the condition (one of {@link #WHEN_FOCUSED}, ! * {@link #WHEN_IN_FOCUSED_WINDOW} and * {@link #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}). * @param map the map. ! * * @throws IllegalArgumentException if condition is not one of * the specified values. */ *************** public abstract class JComponent extends *** 2543,2554 **** case WHEN_IN_FOCUSED_WINDOW: if (map != null && !(map instanceof ComponentInputMap)) ! throw new ! IllegalArgumentException("WHEN_IN_FOCUSED_WINDOW " + "InputMap must be a ComponentInputMap"); inputMap_whenInFocusedWindow = (ComponentInputMap)map; break; ! case UNDEFINED_CONDITION: default: throw new IllegalArgumentException(); --- 2543,2554 ---- case WHEN_IN_FOCUSED_WINDOW: if (map != null && !(map instanceof ComponentInputMap)) ! throw new ! IllegalArgumentException("WHEN_IN_FOCUSED_WINDOW " + "InputMap must be a ComponentInputMap"); inputMap_whenInFocusedWindow = (ComponentInputMap)map; break; ! case UNDEFINED_CONDITION: default: throw new IllegalArgumentException(); *************** public abstract class JComponent extends *** 2558,2570 **** /** * Returns the input map associated with this component for the given * state/condition. ! * ! * @param condition the state (one of {@link #WHEN_FOCUSED}, ! * {@link #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT} and * {@link #WHEN_IN_FOCUSED_WINDOW}). ! * * @return The input map. ! * @throws IllegalArgumentException if condition is not one of * the specified values. * @since 1.3 */ --- 2558,2570 ---- /** * Returns the input map associated with this component for the given * state/condition. ! * ! * @param condition the state (one of {@link #WHEN_FOCUSED}, ! * {@link #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT} and * {@link #WHEN_IN_FOCUSED_WINDOW}). ! * * @return The input map. ! * @throws IllegalArgumentException if condition is not one of * the specified values. * @since 1.3 */ *************** public abstract class JComponent extends *** 2590,2606 **** case UNDEFINED_CONDITION: default: ! throw new IllegalArgumentException("Invalid 'condition' argument: " + condition); } } /** ! * Returns the input map associated with this component for the * {@link #WHEN_FOCUSED} state. ! * * @return The input map. ! * * @since 1.3 * @see #getInputMap(int) */ --- 2590,2606 ---- case UNDEFINED_CONDITION: default: ! throw new IllegalArgumentException("Invalid 'condition' argument: " + condition); } } /** ! * Returns the input map associated with this component for the * {@link #WHEN_FOCUSED} state. ! * * @return The input map. ! * * @since 1.3 * @see #getInputMap(int) */ *************** public abstract class JComponent extends *** 2634,2652 **** * #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}, {@link #WHEN_FOCUSED}, or {@link * #WHEN_IN_FOCUSED_WINDOW} * ! * @see #registerKeyboardAction(ActionListener, KeyStroke, int) ! * @see #unregisterKeyboardAction * @see #resetKeyboardActions */ public int getConditionForKeyStroke(KeyStroke ks) { ! if (inputMap_whenFocused != null && inputMap_whenFocused.get(ks) != null) return WHEN_FOCUSED; ! else if (inputMap_whenAncestorOfFocused != null && inputMap_whenAncestorOfFocused.get(ks) != null) return WHEN_ANCESTOR_OF_FOCUSED_COMPONENT; ! else if (inputMap_whenInFocusedWindow != null && inputMap_whenInFocusedWindow.get(ks) != null) return WHEN_IN_FOCUSED_WINDOW; else --- 2634,2652 ---- * #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}, {@link #WHEN_FOCUSED}, or {@link * #WHEN_IN_FOCUSED_WINDOW} * ! * @see #registerKeyboardAction(ActionListener, KeyStroke, int) ! * @see #unregisterKeyboardAction * @see #resetKeyboardActions */ public int getConditionForKeyStroke(KeyStroke ks) { ! if (inputMap_whenFocused != null && inputMap_whenFocused.get(ks) != null) return WHEN_FOCUSED; ! else if (inputMap_whenAncestorOfFocused != null && inputMap_whenAncestorOfFocused.get(ks) != null) return WHEN_ANCESTOR_OF_FOCUSED_COMPONENT; ! else if (inputMap_whenInFocusedWindow != null && inputMap_whenInFocusedWindow.get(ks) != null) return WHEN_IN_FOCUSED_WINDOW; else *************** public abstract class JComponent extends *** 2655,2661 **** /** * Get the ActionListener (typically an {@link Action} object) which is ! * associated with a particular keystroke. * * @param ks The keystroke to retrieve the action of * --- 2655,2661 ---- /** * Get the ActionListener (typically an {@link Action} object) which is ! * associated with a particular keystroke. * * @param ks The keystroke to retrieve the action of * *************** public abstract class JComponent extends *** 2711,2720 **** // Note: Input maps for disabled components are skipped. // 4. The WHEN_IN_FOCUSED_WINDOW maps of all the enabled components in // the focused window are searched. ! KeyStroke keyStroke = KeyStroke.getKeyStrokeForEvent(e); boolean pressed = e.getID() == KeyEvent.KEY_PRESSED; ! if (processKeyBinding(keyStroke, e, WHEN_FOCUSED, pressed)) { // This is step 1 from above comment. --- 2711,2720 ---- // Note: Input maps for disabled components are skipped. // 4. The WHEN_IN_FOCUSED_WINDOW maps of all the enabled components in // the focused window are searched. ! KeyStroke keyStroke = KeyStroke.getKeyStrokeForEvent(e); boolean pressed = e.getID() == KeyEvent.KEY_PRESSED; ! if (processKeyBinding(keyStroke, e, WHEN_FOCUSED, pressed)) { // This is step 1 from above comment. *************** public abstract class JComponent extends *** 2728,2764 **** e.consume(); return; } ! // This is step 3 from above comment. ! Container current = getParent(); while (current != null) ! { // If current is a JComponent, see if it handles the event in its // WHEN_ANCESTOR_OF_FOCUSED_COMPONENT maps. ! if ((current instanceof JComponent) && ! ((JComponent)current).processKeyBinding (keyStroke, e,WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, pressed)) { e.consume(); return; ! } ! // Stop when we've tried a top-level container and it didn't handle it if (current instanceof Window || current instanceof Applet) ! break; ! // Move up the hierarchy current = current.getParent(); } ! // Current being null means the JComponent does not currently have a ! // top-level ancestor, in which case we don't need to check // WHEN_IN_FOCUSED_WINDOW bindings. if (current == null || e.isConsumed()) return; ! // This is step 4 from above comment. KeyboardManager maintains mappings ! // related to WHEN_IN_FOCUSED_WINDOW bindings so that we don't have to // traverse the containment hierarchy each time. if (KeyboardManager.getManager().processKeyStroke(current, keyStroke, e)) e.consume(); --- 2728,2764 ---- e.consume(); return; } ! // This is step 3 from above comment. ! Container current = getParent(); while (current != null) ! { // If current is a JComponent, see if it handles the event in its // WHEN_ANCESTOR_OF_FOCUSED_COMPONENT maps. ! if ((current instanceof JComponent) && ! ((JComponent)current).processKeyBinding (keyStroke, e,WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, pressed)) { e.consume(); return; ! } ! // Stop when we've tried a top-level container and it didn't handle it if (current instanceof Window || current instanceof Applet) ! break; ! // Move up the hierarchy current = current.getParent(); } ! // Current being null means the JComponent does not currently have a ! // top-level ancestor, in which case we don't need to check // WHEN_IN_FOCUSED_WINDOW bindings. if (current == null || e.isConsumed()) return; ! // This is step 4 from above comment. KeyboardManager maintains mappings ! // related to WHEN_IN_FOCUSED_WINDOW bindings so that we don't have to // traverse the containment hierarchy each time. if (KeyboardManager.getManager().processKeyStroke(current, keyStroke, e)) e.consume(); *************** public abstract class JComponent extends *** 2781,2787 **** { if (cmd instanceof ActionListenerProxy) act = (Action) cmd; ! else act = getActionMap().get(cmd); } } --- 2781,2787 ---- { if (cmd instanceof ActionListenerProxy) act = (Action) cmd; ! else act = getActionMap().get(cmd); } } *************** public abstract class JComponent extends *** 2806,2812 **** } return false; } ! /** * Remove a keyboard action registry. * --- 2806,2812 ---- } return false; } ! /** * Remove a keyboard action registry. * *************** public abstract class JComponent extends *** 2899,2905 **** } /** ! * Queue a an invalidation and revalidation of this component, using * {@link RepaintManager#addInvalidComponent}. */ public void revalidate() --- 2899,2905 ---- } /** ! * Queue a an invalidation and revalidation of this component, using * {@link RepaintManager#addInvalidComponent}. */ public void revalidate() *************** public abstract class JComponent extends *** 2925,2931 **** } /** ! * Calls scrollRectToVisible on the component's parent. * Components which can service this call should override. * * @param r The rectangle to make visible --- 2925,2931 ---- } /** ! * Calls scrollRectToVisible on the component's parent. * Components which can service this call should override. * * @param r The rectangle to make visible *************** public abstract class JComponent extends *** 3069,3075 **** } /** ! * Set the specified component to be the next component in the * focus cycle, overriding the {@link FocusTraversalPolicy} for * this component. * --- 3069,3075 ---- } /** ! * Set the specified component to be the next component in the * focus cycle, overriding the {@link FocusTraversalPolicy} for * this component. * *************** public abstract class JComponent extends *** 3151,3157 **** * background. * * @param isOpaque if true, paint all pixels. If false, expect the clean ! * background. * * @see ComponentUI#update */ --- 3151,3157 ---- * background. * * @param isOpaque if true, paint all pixels. If false, expect the clean ! * background. * * @see ComponentUI#update */ *************** public abstract class JComponent extends *** 3192,3199 **** } /** ! * Call {@link #paint}. ! * * @param g The graphics context to paint into */ public void update(Graphics g) --- 3192,3199 ---- } /** ! * Call {@link #paint}. ! * * @param g The graphics context to paint into */ public void update(Graphics g) *************** public abstract class JComponent extends *** 3258,3269 **** } /** ! * Returns the locale used as the default for all new components. The * default value is {@link Locale#getDefault()} (that is, the platform * default locale). ! * * @return The locale (never null). ! * * @see #setDefaultLocale(Locale) */ public static Locale getDefaultLocale() --- 3258,3269 ---- } /** ! * Returns the locale used as the default for all new components. The * default value is {@link Locale#getDefault()} (that is, the platform * default locale). ! * * @return The locale (never null). ! * * @see #setDefaultLocale(Locale) */ public static Locale getDefaultLocale() *************** public abstract class JComponent extends *** 3272,3290 **** defaultLocale = Locale.getDefault(); return defaultLocale; } ! /** * Sets the locale to be used as the default for all new components. If this * is set to null, the {@link #getDefaultLocale()} method will * return the platform default locale. ! * * @param l the locale (null permitted). */ public static void setDefaultLocale(Locale l) { defaultLocale = l; } ! /** * Returns the currently set input verifier for this component. * --- 3272,3290 ---- defaultLocale = Locale.getDefault(); return defaultLocale; } ! /** * Sets the locale to be used as the default for all new components. If this * is set to null, the {@link #getDefaultLocale()} method will * return the platform default locale. ! * * @param l the locale (null permitted). */ public static void setDefaultLocale(Locale l) { defaultLocale = l; } ! /** * Returns the currently set input verifier for this component. * *************** public abstract class JComponent extends *** 3357,3363 **** * by look and feel implementations. * * You should not use this method directly. Instead you are strongly ! * encouraged to call {@link #requestFocus()} or * {@link #requestFocusInWindow()} instead. * * @param temporary if the focus change is temporary --- 3357,3363 ---- * by look and feel implementations. * * You should not use this method directly. Instead you are strongly ! * encouraged to call {@link #requestFocus()} or * {@link #requestFocusInWindow()} instead. * * @param temporary if the focus change is temporary *************** public abstract class JComponent extends *** 3406,3412 **** * by look and feel implementations. * * You should not use this method directly. Instead you are strongly ! * encouraged to call {@link #requestFocus()} or * {@link #requestFocusInWindow()} instead. * * @param temporary if the focus change is temporary --- 3406,3412 ---- * by look and feel implementations. * * You should not use this method directly. Instead you are strongly ! * encouraged to call {@link #requestFocus()} or * {@link #requestFocusInWindow()} instead. * * @param temporary if the focus change is temporary *************** public abstract class JComponent extends *** 3470,3476 **** * has changed. * * This method is called before the component is actually removed from ! * its parent, so the parent is still visible through * {@link Component#getParent}. */ public void removeNotify() --- 3470,3476 ---- * has changed. * * This method is called before the component is actually removed from ! * its parent, so the parent is still visible through * {@link Component#getParent}. */ public void removeNotify() *************** public abstract class JComponent extends *** 3478,3484 **** super.removeNotify(); KeyboardManager.getManager().clearBindingsForComp(this); ! // Notify ancestor listeners. fireAncestorEvent(this, AncestorEvent.ANCESTOR_REMOVED); --- 3478,3484 ---- super.removeNotify(); KeyboardManager.getManager().clearBindingsForComp(this); ! // Notify ancestor listeners. fireAncestorEvent(this, AncestorEvent.ANCESTOR_REMOVED); *************** public abstract class JComponent extends *** 3727,3733 **** jc.fireAncestorEvent(ancestor, id); } } ! /** * This is the method that gets called when the WHEN_IN_FOCUSED_WINDOW map * is changed. --- 3727,3733 ---- jc.fireAncestorEvent(ancestor, id); } } ! /** * This is the method that gets called when the WHEN_IN_FOCUSED_WINDOW map * is changed. *************** public abstract class JComponent extends *** 3743,3768 **** InputMap curr = getInputMap(WHEN_IN_FOCUSED_WINDOW); while (curr != null && curr != changed) curr = curr.getParent(); ! // If curr is null then changed is not in the hierarchy if (curr == null) return; ! // Now we have to update the keyboard manager's hashtable KeyboardManager km = KeyboardManager.getManager(); ! ! // This is a poor strategy, should be improved. We currently // delete all the old bindings for the component and then register // the current bindings. km.clearBindingsForComp(changed.getComponent()); ! km.registerEntireMap((ComponentInputMap) getInputMap(WHEN_IN_FOCUSED_WINDOW)); } /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * --- 3743,3768 ---- InputMap curr = getInputMap(WHEN_IN_FOCUSED_WINDOW); while (curr != null && curr != changed) curr = curr.getParent(); ! // If curr is null then changed is not in the hierarchy if (curr == null) return; ! // Now we have to update the keyboard manager's hashtable KeyboardManager km = KeyboardManager.getManager(); ! ! // This is a poor strategy, should be improved. We currently // delete all the old bindings for the component and then register // the current bindings. km.clearBindingsForComp(changed.getComponent()); ! km.registerEntireMap((ComponentInputMap) getInputMap(WHEN_IN_FOCUSED_WINDOW)); } /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JDesktopPane.java gcc-4.6.0/libjava/classpath/javax/swing/JDesktopPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JDesktopPane.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JDesktopPane.java Tue Jan 11 19:46:05 2011 *************** public class JDesktopPane extends JLayer *** 329,341 **** int count = 0; for (int i = 0; i < components.length; i++) ! if (components[i] instanceof JInternalFrame) ! count++; ! JInternalFrame[] value = new JInternalFrame[count]; for (int i = 0, j = 0; i < components.length && j != count; i++) if (components[i] instanceof JInternalFrame) ! value[j++] = (JInternalFrame) components[i]; return value; } --- 329,341 ---- int count = 0; for (int i = 0; i < components.length; i++) ! if (components[i] instanceof JInternalFrame) ! count++; ! JInternalFrame[] value = new JInternalFrame[count]; for (int i = 0, j = 0; i < components.length && j != count; i++) if (components[i] instanceof JInternalFrame) ! value[j++] = (JInternalFrame) components[i]; return value; } *************** public class JDesktopPane extends JLayer *** 343,349 **** * Returns the object that provides accessibility features for this * JDesktopPane component. * ! * @return The accessible context (an instance of * {@link AccessibleJDesktopPane}). */ public AccessibleContext getAccessibleContext() --- 343,349 ---- * Returns the object that provides accessibility features for this * JDesktopPane component. * ! * @return The accessible context (an instance of * {@link AccessibleJDesktopPane}). */ public AccessibleContext getAccessibleContext() *************** public class JDesktopPane extends JLayer *** 357,363 **** /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * --- 357,363 ---- /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JDialog.java gcc-4.6.0/libjava/classpath/javax/swing/JDialog.java *** gcc-4.5.2/libjava/classpath/javax/swing/JDialog.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JDialog.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleCon *** 61,67 **** * * Also, unlike java.awt.Dialogs, JDialogs support the * Swing Pluggable Look & Feel architecture. ! * * @author Ronald Veldema (rveldema@cs.vu.nl) */ public class JDialog extends Dialog implements Accessible, WindowConstants, --- 61,67 ---- * * Also, unlike java.awt.Dialogs, JDialogs support the * Swing Pluggable Look & Feel architecture. ! * * @author Ronald Veldema (rveldema@cs.vu.nl) */ public class JDialog extends Dialog implements Accessible, WindowConstants, *************** public class JDialog extends Dialog impl *** 94,109 **** * Whether checking is enabled on the RootPane. * * @specnote Should be false to comply with J2SE 5.0 ! */ protected boolean rootPaneCheckingEnabled = false; /** The default action taken when closed. */ private int closeAction = HIDE_ON_CLOSE; ! /** Whether JDialogs are decorated by the Look and Feel. */ private static boolean decorated; ! /* Creates a new non-modal JDialog with no title * using a shared Frame as the owner. */ public JDialog() --- 94,109 ---- * Whether checking is enabled on the RootPane. * * @specnote Should be false to comply with J2SE 5.0 ! */ protected boolean rootPaneCheckingEnabled = false; /** The default action taken when closed. */ private int closeAction = HIDE_ON_CLOSE; ! /** Whether JDialogs are decorated by the Look and Feel. */ private static boolean decorated; ! /* Creates a new non-modal JDialog with no title * using a shared Frame as the owner. */ public JDialog() *************** public class JDialog extends Dialog impl *** 135,141 **** } /** ! * Creates a new non-modal JDialog using the * given title and owner. * * @param owner The owner of the JDialog. --- 135,141 ---- } /** ! * Creates a new non-modal JDialog using the * given title and owner. * * @param owner The owner of the JDialog. *************** public class JDialog extends Dialog impl *** 147,153 **** } /** ! * Creates a new JDialog using the given modal * settings, title, and owner. * * @param owner The owner of the JDialog. --- 147,153 ---- } /** ! * Creates a new JDialog using the given modal * settings, title, and owner. * * @param owner The owner of the JDialog. *************** public class JDialog extends Dialog impl *** 160,166 **** } /** ! * Creates a new JDialog using the given modal * settings, title, owner and graphics configuration. * * @param owner The owner of the JDialog. --- 160,166 ---- } /** ! * Creates a new JDialog using the given modal * settings, title, owner and graphics configuration. * * @param owner The owner of the JDialog. *************** public class JDialog extends Dialog impl *** 199,205 **** } /** ! * Creates a new non-modal JDialog using the * given title and owner. * * @param owner The owner of the JDialog. --- 199,205 ---- } /** ! * Creates a new non-modal JDialog using the * given title and owner. * * @param owner The owner of the JDialog. *************** public class JDialog extends Dialog impl *** 211,217 **** } /** ! * Creates a new JDialog using the given modal * settings, title, and owner. * * @param owner The owner of the JDialog. --- 211,217 ---- } /** ! * Creates a new JDialog using the given modal * settings, title, and owner. * * @param owner The owner of the JDialog. *************** public class JDialog extends Dialog impl *** 224,230 **** } /** ! * Creates a new JDialog using the given modal * settings, title, owner and graphics configuration. * * @param owner The owner of the JDialog. --- 224,230 ---- } /** ! * Creates a new JDialog using the given modal * settings, title, owner and graphics configuration. * * @param owner The owner of the JDialog. *************** public class JDialog extends Dialog impl *** 240,247 **** } /** ! * This method is called to initialize the ! * JDialog. It sets the layout used, the locale, * and creates the RootPane. */ protected void dialogInit() --- 240,247 ---- } /** ! * This method is called to initialize the ! * JDialog. It sets the layout used, the locale, * and creates the RootPane. */ protected void dialogInit() *************** public class JDialog extends Dialog impl *** 283,289 **** } /** ! * This method returns the preferred size of * the JDialog. * * @return The preferred size. --- 283,289 ---- } /** ! * This method returns the preferred size of * the JDialog. * * @return The preferred size. *************** public class JDialog extends Dialog impl *** 306,312 **** } /** ! * This method sets the JMenuBar used * in this JDialog. * * @param menubar The JMenuBar to use. --- 306,312 ---- } /** ! * This method sets the JMenuBar used * in this JDialog. * * @param menubar The JMenuBar to use. *************** public class JDialog extends Dialog impl *** 318,324 **** /** * This method sets the LayoutManager used in the JDialog. ! * This method will throw an Error if rootPaneChecking is * enabled. * * @param manager The LayoutManager to use. --- 318,324 ---- /** * This method sets the LayoutManager used in the JDialog. ! * This method will throw an Error if rootPaneChecking is * enabled. * * @param manager The LayoutManager to use. *************** public class JDialog extends Dialog impl *** 440,446 **** } /** ! * This method is called when a component is added to the * the JDialog. Calling this method with rootPaneCheckingEnabled * will cause an Error to be thrown. * --- 440,446 ---- } /** ! * This method is called when a component is added to the * the JDialog. Calling this method with rootPaneCheckingEnabled * will cause an Error to be thrown. * *************** public class JDialog extends Dialog impl *** 469,475 **** // pass it on to the content pane instead. if (comp == rootPane) super.remove(rootPane); ! else getContentPane().remove(comp); } --- 469,475 ---- // pass it on to the content pane instead. if (comp == rootPane) super.remove(rootPane); ! else getContentPane().remove(comp); } *************** public class JDialog extends Dialog impl *** 502,509 **** { paint(g); } ! ! /** * This method handles window events. This allows the JDialog * to honour its default close operation. --- 502,509 ---- { paint(g); } ! ! /** * This method handles window events. This allows the JDialog * to honour its default close operation. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JEditorPane.java gcc-4.6.0/libjava/classpath/javax/swing/JEditorPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JEditorPane.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JEditorPane.java Tue Jan 11 19:46:05 2011 *************** public class JEditorPane extends JTextCo *** 125,131 **** */ public String getAccessibleDescription() { ! String descr = super.getAccessibleDescription(); if (descr == null) return getContentType(); else --- 125,131 ---- */ public String getAccessibleDescription() { ! String descr = super.getAccessibleDescription(); if (descr == null) return getContentType(); else *************** public class JEditorPane extends JTextCo *** 183,191 **** { super(); } ! /** ! * The accessible representation of a HTML link. * * @author Roman Kennke (kennke@aicas.com) */ --- 183,191 ---- { super(); } ! /** ! * The accessible representation of a HTML link. * * @author Roman Kennke (kennke@aicas.com) */ *************** public class JEditorPane extends JTextCo *** 230,236 **** * general, link have 1 AccessibleAction associated with them. There are * special cases where links can have multiple actions associated, like * in image maps. ! * * @return the number of AccessibleActions in this link object */ public int getAccessibleActionCount() --- 230,236 ---- * general, link have 1 AccessibleAction associated with them. There are * special cases where links can have multiple actions associated, like * in image maps. ! * * @return the number of AccessibleActions in this link object */ public int getAccessibleActionCount() *************** public class JEditorPane extends JTextCo *** 352,358 **** { return element.getEndOffset(); } ! } /** --- 352,358 ---- { return element.getEndOffset(); } ! } /** *************** public class JEditorPane extends JTextCo *** 503,509 **** /** * Creates a new EditorKitMapping object. ! * * @param cn the classname * @param cl the classloader */ --- 503,509 ---- /** * Creates a new EditorKitMapping object. ! * * @param cn the classname * @param cl the classloader */ *************** public class JEditorPane extends JTextCo *** 655,665 **** } private static final long serialVersionUID = 3140472492599046285L; ! private EditorKit editorKit; ! boolean focus_root; ! /** * Maps content-types to editor kit instances. */ --- 655,665 ---- } private static final long serialVersionUID = 3140472492599046285L; ! private EditorKit editorKit; ! boolean focus_root; ! /** * Maps content-types to editor kit instances. */ *************** public class JEditorPane extends JTextCo *** 684,690 **** } // A mapping between content types and used EditorKits ! HashMap editorMap; /** * The currently loading stream, if any. --- 684,690 ---- } // A mapping between content types and used EditorKits ! HashMap editorMap; /** * The currently loading stream, if any. *************** public class JEditorPane extends JTextCo *** 715,723 **** setEditorKit(createEditorKitForContentType("text/html")); setPage(url); } ! /** ! * Called by the constructors to set up the default bindings for content * types and EditorKits. */ void init() --- 715,723 ---- setEditorKit(createEditorKitForContentType("text/html")); setPage(url); } ! /** ! * Called by the constructors to set up the default bindings for content * types and EditorKits. */ void init() *************** public class JEditorPane extends JTextCo *** 731,740 **** } /** ! * Creates and returns an EditorKit that is appropriate for the given * content type. This is created using the default recognized types * plus any EditorKit types that have been registered. ! * * @see #registerEditorKitForContentType(String, String) * @see #registerEditorKitForContentType(String, String, ClassLoader) * @param type the content type --- 731,740 ---- } /** ! * Creates and returns an EditorKit that is appropriate for the given * content type. This is created using the default recognized types * plus any EditorKit types that have been registered. ! * * @see #registerEditorKitForContentType(String, String) * @see #registerEditorKitForContentType(String, String, ClassLoader) * @param type the content type *************** public class JEditorPane extends JTextCo *** 756,762 **** e = (EditorKit) loader.loadClass(className).newInstance(); } catch (Exception e2) ! { // The reference implementation returns null when class is not // loadable or instantiatable. } --- 756,762 ---- e = (EditorKit) loader.loadClass(className).newInstance(); } catch (Exception e2) ! { // The reference implementation returns null when class is not // loadable or instantiatable. } *************** public class JEditorPane extends JTextCo *** 817,823 **** /** * Returns the class name of the EditorKit associated with the given * content type. ! * * @since 1.3 * @param type the content type * @return the class name of the EditorKit associated with this content type --- 817,823 ---- /** * Returns the class name of the EditorKit associated with the given * content type. ! * * @since 1.3 * @param type the content type * @return the class name of the EditorKit associated with this content type *************** public class JEditorPane extends JTextCo *** 831,843 **** /** * Returns the EditorKit to use for the given content type. If an ! * EditorKit has been explicitly set via * setEditorKitForContentType * then it will be returned. Otherwise an attempt will be made to create * an EditorKit from the default recognzied content types or any * EditorKits that have been registered. If none can be created, a * PlainEditorKit is created. ! * * @see #registerEditorKitForContentType(String, String) * @see #registerEditorKitForContentType(String, String, ClassLoader) * @param type the content type --- 831,843 ---- /** * Returns the EditorKit to use for the given content type. If an ! * EditorKit has been explicitly set via * setEditorKitForContentType * then it will be returned. Otherwise an attempt will be made to create * an EditorKit from the default recognzied content types or any * EditorKits that have been registered. If none can be created, a * PlainEditorKit is created. ! * * @see #registerEditorKitForContentType(String, String) * @see #registerEditorKitForContentType(String, String, ClassLoader) * @param type the content type *************** public class JEditorPane extends JTextCo *** 975,981 **** } /** ! * This method initializes from a stream. */ public void read(InputStream in, Object desc) throws IOException { --- 975,981 ---- } /** ! * This method initializes from a stream. */ public void read(InputStream in, Object desc) throws IOException { *************** public class JEditorPane extends JTextCo *** 1004,1012 **** /** * Establishes a binding between type and classname. This enables * us to create an EditorKit later for the given content type. ! * * @param type the content type ! * @param classname the name of the class that is associated with this * content type */ public static void registerEditorKitForContentType(String type, --- 1004,1012 ---- /** * Establishes a binding between type and classname. This enables * us to create an EditorKit later for the given content type. ! * * @param type the content type ! * @param classname the name of the class that is associated with this * content type */ public static void registerEditorKitForContentType(String type, *************** public class JEditorPane extends JTextCo *** 1055,1065 **** type = type.substring(0, paramIndex).trim(); } if (editorKit != null ! && editorKit.getContentType().equals(type)) return; ! EditorKit kit = getEditorKitForContentType(type); ! if (kit != null) setEditorKit(kit); } --- 1055,1065 ---- type = type.substring(0, paramIndex).trim(); } if (editorKit != null ! && editorKit.getContentType().equals(type)) return; ! EditorKit kit = getEditorKitForContentType(type); ! if (kit != null) setEditorKit(kit); } *************** public class JEditorPane extends JTextCo *** 1068,1086 **** { if (editorKit == newValue) return; ! if (editorKit != null) editorKit.deinstall(this); ! EditorKit oldValue = editorKit; editorKit = newValue; ! if (editorKit != null) { ! editorKit.install(this); ! setDocument(editorKit.createDefaultDocument()); } ! firePropertyChange("editorKit", oldValue, newValue); invalidate(); repaint(); --- 1068,1086 ---- { if (editorKit == newValue) return; ! if (editorKit != null) editorKit.deinstall(this); ! EditorKit oldValue = editorKit; editorKit = newValue; ! if (editorKit != null) { ! editorKit.install(this); ! setDocument(editorKit.createDefaultDocument()); } ! firePropertyChange("editorKit", oldValue, newValue); invalidate(); repaint(); *************** public class JEditorPane extends JTextCo *** 1099,1105 **** } /** ! * Sets the current URL being displayed. */ public void setPage(String url) throws IOException { --- 1099,1105 ---- } /** ! * Sets the current URL being displayed. */ public void setPage(String url) throws IOException { *************** public class JEditorPane extends JTextCo *** 1107,1113 **** } /** ! * Sets the current URL being displayed. */ public void setPage(URL page) throws IOException { --- 1107,1113 ---- } /** ! * Sets the current URL being displayed. */ public void setPage(URL page) throws IOException { *************** public class JEditorPane extends JTextCo *** 1162,1168 **** * the content of the current document and uses the EditorKit to read in the * new text. This allows the EditorKit to handle the String rather than just * inserting in plain text. ! * * @param t the text to display in this JEditorPane */ public void setText(String t) --- 1162,1168 ---- * the content of the current document and uses the EditorKit to read in the * new text. This allows the EditorKit to handle the String rather than just * inserting in plain text. ! * * @param t the text to display in this JEditorPane */ public void setText(String t) *************** public class JEditorPane extends JTextCo *** 1174,1180 **** doc.remove(0, doc.getLength()); if (t == null || t.equals("")) return; ! // Let the EditorKit read the text into the Document. getEditorKit().read(new StringReader(t), doc, 0); } --- 1174,1180 ---- doc.remove(0, doc.getLength()); if (t == null || t.equals("")) return; ! // Let the EditorKit read the text into the Document. getEditorKit().read(new StringReader(t), doc, 0); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JFileChooser.java gcc-4.6.0/libjava/classpath/javax/swing/JFileChooser.java *** gcc-4.5.2/libjava/classpath/javax/swing/JFileChooser.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JFileChooser.java Tue Jan 11 19:46:05 2011 *************** public class JFileChooser extends JCompo *** 77,148 **** { private static final long serialVersionUID = 3162921138695327837L; ! /** ! * A dialog type for selecting a file to open. * @see #setDialogType(int) */ public static final int OPEN_DIALOG = 0; ! /** ! * A dialog type for selecting a file to save. * @see #setDialogType(int) */ public static final int SAVE_DIALOG = 1; ! /** * A dialog type for some custom purpose. * @see #setDialogType(int) */ public static final int CUSTOM_DIALOG = 2; ! /** * A return value indicating the file chooser has been closed by cancelling. ! * * @see #showOpenDialog(Component) ! * @see #showSaveDialog(Component) */ public static final int CANCEL_OPTION = 1; ! /** * A return value indicating the file chooser has been closed by approving * the selection. * @see #showOpenDialog(Component) ! * @see #showSaveDialog(Component) */ public static final int APPROVE_OPTION = 0; ! /** * A return value indicating the file chooser has been closed by some error. * @see #showOpenDialog(Component) ! * @see #showSaveDialog(Component) */ public static final int ERROR_OPTION = -1; ! /** * A selection mode constant indicating acceptance of files only. * @see #setFileSelectionMode(int) */ public static final int FILES_ONLY = 0; ! /** ! * A selection mode constant indicating acceptance of directories only. * @see #setFileSelectionMode(int) */ public static final int DIRECTORIES_ONLY = 1; ! /** * A selection mode constant indicating acceptance of files and directories. * @see #setFileSelectionMode(int) */ public static final int FILES_AND_DIRECTORIES = 2; ! /** * Action command string for cancelling the current selection. * @see #cancelSelection() */ public static final String CANCEL_SELECTION = "CancelSelection"; ! /** * Action command string for approving the current selection. * @see #cancelSelection() */ --- 77,148 ---- { private static final long serialVersionUID = 3162921138695327837L; ! /** ! * A dialog type for selecting a file to open. * @see #setDialogType(int) */ public static final int OPEN_DIALOG = 0; ! /** ! * A dialog type for selecting a file to save. * @see #setDialogType(int) */ public static final int SAVE_DIALOG = 1; ! /** * A dialog type for some custom purpose. * @see #setDialogType(int) */ public static final int CUSTOM_DIALOG = 2; ! /** * A return value indicating the file chooser has been closed by cancelling. ! * * @see #showOpenDialog(Component) ! * @see #showSaveDialog(Component) */ public static final int CANCEL_OPTION = 1; ! /** * A return value indicating the file chooser has been closed by approving * the selection. * @see #showOpenDialog(Component) ! * @see #showSaveDialog(Component) */ public static final int APPROVE_OPTION = 0; ! /** * A return value indicating the file chooser has been closed by some error. * @see #showOpenDialog(Component) ! * @see #showSaveDialog(Component) */ public static final int ERROR_OPTION = -1; ! /** * A selection mode constant indicating acceptance of files only. * @see #setFileSelectionMode(int) */ public static final int FILES_ONLY = 0; ! /** ! * A selection mode constant indicating acceptance of directories only. * @see #setFileSelectionMode(int) */ public static final int DIRECTORIES_ONLY = 1; ! /** * A selection mode constant indicating acceptance of files and directories. * @see #setFileSelectionMode(int) */ public static final int FILES_AND_DIRECTORIES = 2; ! /** * Action command string for cancelling the current selection. * @see #cancelSelection() */ public static final String CANCEL_SELECTION = "CancelSelection"; ! /** * Action command string for approving the current selection. * @see #cancelSelection() */ *************** public class JFileChooser extends JCompo *** 150,156 **** /** * The name of the property for the approve button text. ! * @see #setApproveButtonText(String) */ public static final String APPROVE_BUTTON_TEXT_CHANGED_PROPERTY = "ApproveButtonTextChangedProperty"; --- 150,156 ---- /** * The name of the property for the approve button text. ! * @see #setApproveButtonText(String) */ public static final String APPROVE_BUTTON_TEXT_CHANGED_PROPERTY = "ApproveButtonTextChangedProperty"; *************** public class JFileChooser extends JCompo *** 178,184 **** /** * The name of the property for the current directory. ! * @see #setCurrentDirectory(File) */ public static final String DIRECTORY_CHANGED_PROPERTY = "directoryChanged"; --- 178,184 ---- /** * The name of the property for the current directory. ! * @see #setCurrentDirectory(File) */ public static final String DIRECTORY_CHANGED_PROPERTY = "directoryChanged"; *************** public class JFileChooser extends JCompo *** 196,218 **** public static final String SELECTED_FILES_CHANGED_PROPERTY = "SelectedFilesChangedProperty"; ! /** * The name of the property for multi-selection. ! * @see #setMultiSelectionEnabled(boolean) */ public static final String MULTI_SELECTION_ENABLED_CHANGED_PROPERTY = "MultiSelectionEnabledChangedProperty"; /** * The name of the 'file system view' property. ! * @see #setFileSystemView(FileSystemView) */ public static final String FILE_SYSTEM_VIEW_CHANGED_PROPERTY = "FileSystemViewChanged"; /** * The name of the 'file view' property. ! * @see #setFileView(FileView) */ public static final String FILE_VIEW_CHANGED_PROPERTY = "fileViewChanged"; --- 196,218 ---- public static final String SELECTED_FILES_CHANGED_PROPERTY = "SelectedFilesChangedProperty"; ! /** * The name of the property for multi-selection. ! * @see #setMultiSelectionEnabled(boolean) */ public static final String MULTI_SELECTION_ENABLED_CHANGED_PROPERTY = "MultiSelectionEnabledChangedProperty"; /** * The name of the 'file system view' property. ! * @see #setFileSystemView(FileSystemView) */ public static final String FILE_SYSTEM_VIEW_CHANGED_PROPERTY = "FileSystemViewChanged"; /** * The name of the 'file view' property. ! * @see #setFileView(FileView) */ public static final String FILE_VIEW_CHANGED_PROPERTY = "fileViewChanged"; *************** public class JFileChooser extends JCompo *** 272,284 **** public static final String CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY = "ChoosableFileFilterChangedProperty"; ! /** ! * The accessible context. * @see #getAccessibleContext() */ protected AccessibleContext accessibleContext; ! /** * The file system view. * @see #setFileSystemView(FileSystemView) */ --- 272,284 ---- public static final String CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY = "ChoosableFileFilterChangedProperty"; ! /** ! * The accessible context. * @see #getAccessibleContext() */ protected AccessibleContext accessibleContext; ! /** * The file system view. * @see #setFileSystemView(FileSystemView) */ *************** public class JFileChooser extends JCompo *** 353,398 **** /** * The file selection mode. ! * @see #setFileSelectionMode(int) */ private int fileSelectionMode = FILES_ONLY; ! /** * The file view. * @see #setFileView(FileView) */ private FileView fv = null; ! /** ! * A flag controlling whether or not the control buttons are visible. ! * @see #setControlButtonsAreShown(boolean) */ private boolean controlButtonsShown = true; ! /** ! * The current directory. * @see #setCurrentDirectory(File) */ private File currentDir = null; ! /** * The current file filter. * @see #setFileFilter(FileFilter) */ private FileFilter currentFilter = null; ! /** * An array of selected files. ! * @see #setSelectedFiles(File[]) */ private File[] selectedFiles; ! /** ! * The selected file. * @see #setSelectedFile(File) */ private File selectedFile; ! /** * The drag enabled property. * @see #setDragEnabled(boolean) --- 353,398 ---- /** * The file selection mode. ! * @see #setFileSelectionMode(int) */ private int fileSelectionMode = FILES_ONLY; ! /** * The file view. * @see #setFileView(FileView) */ private FileView fv = null; ! /** ! * A flag controlling whether or not the control buttons are visible. ! * @see #setControlButtonsAreShown(boolean) */ private boolean controlButtonsShown = true; ! /** ! * The current directory. * @see #setCurrentDirectory(File) */ private File currentDir = null; ! /** * The current file filter. * @see #setFileFilter(FileFilter) */ private FileFilter currentFilter = null; ! /** * An array of selected files. ! * @see #setSelectedFiles(File[]) */ private File[] selectedFiles; ! /** ! * The selected file. * @see #setSelectedFile(File) */ private File selectedFile; ! /** * The drag enabled property. * @see #setDragEnabled(boolean) *************** public class JFileChooser extends JCompo *** 413,419 **** * Creates a new JFileChooser object. * * @param currentDirectoryPath the directory that should initially be ! * shown in the filechooser (if null, the user's home * directory is used). */ public JFileChooser(String currentDirectoryPath) --- 413,419 ---- * Creates a new JFileChooser object. * * @param currentDirectoryPath the directory that should initially be ! * shown in the filechooser (if null, the user's home * directory is used). */ public JFileChooser(String currentDirectoryPath) *************** public class JFileChooser extends JCompo *** 422,432 **** } /** ! * Creates a new JFileChooser object with the specified * directory and {@link FileSystemView}. * * @param currentDirectoryPath the directory that should initially be ! * shown in the filechooser (if null, the user's home * directory is used). * @param fsv the file system view (if null, the default file * system view is used). --- 422,432 ---- } /** ! * Creates a new JFileChooser object with the specified * directory and {@link FileSystemView}. * * @param currentDirectoryPath the directory that should initially be ! * shown in the filechooser (if null, the user's home * directory is used). * @param fsv the file system view (if null, the default file * system view is used). *************** public class JFileChooser extends JCompo *** 444,450 **** * Creates a new JFileChooser object. * * @param currentDirectory the directory that should initially be ! * shown in the filechooser (if null, the user's home * directory is used). */ public JFileChooser(File currentDirectory) --- 444,450 ---- * Creates a new JFileChooser object. * * @param currentDirectory the directory that should initially be ! * shown in the filechooser (if null, the user's home * directory is used). */ public JFileChooser(File currentDirectory) *************** public class JFileChooser extends JCompo *** 469,475 **** * Creates a new JFileChooser object. * * @param currentDirectory the directory that should initially be ! * shown in the filechooser (if null, the user's home * directory is used). * @param fsv the file system view (if null, the default file * system view is used). --- 469,475 ---- * Creates a new JFileChooser object. * * @param currentDirectory the directory that should initially be ! * shown in the filechooser (if null, the user's home * directory is used). * @param fsv the file system view (if null, the default file * system view is used). *************** public class JFileChooser extends JCompo *** 485,491 **** * * @param view the file system view (if null, the default file * system view is used). ! * * @see FileSystemView#getFileSystemView() */ protected void setup(FileSystemView view) --- 485,491 ---- * * @param view the file system view (if null, the default file * system view is used). ! * * @see FileSystemView#getFileSystemView() */ protected void setup(FileSystemView view) *************** public class JFileChooser extends JCompo *** 499,516 **** /** * Sets the dragEnabled property, this disables/enables automatic drag * handling (drag and drop) on this component. The default value of the ! * dragEnabled property is false. ! * * Some look and feels might not support automatic drag and drop; they * will ignore this property. ! * * @param b - the new dragEnabled value */ public void setDragEnabled(boolean b) { if (b && GraphicsEnvironment.isHeadless()) throw new HeadlessException(); ! dragEnabled = b; } --- 499,516 ---- /** * Sets the dragEnabled property, this disables/enables automatic drag * handling (drag and drop) on this component. The default value of the ! * dragEnabled property is false. ! * * Some look and feels might not support automatic drag and drop; they * will ignore this property. ! * * @param b - the new dragEnabled value */ public void setDragEnabled(boolean b) { if (b && GraphicsEnvironment.isHeadless()) throw new HeadlessException(); ! dragEnabled = b; } *************** public class JFileChooser extends JCompo *** 528,534 **** * Returns the selected file, if there is one. * * @return The selected file (possibly null). ! * * @see #setSelectedFile(File) */ public File getSelectedFile() --- 528,534 ---- * Returns the selected file, if there is one. * * @return The selected file (possibly null). ! * * @see #setSelectedFile(File) */ public File getSelectedFile() *************** public class JFileChooser extends JCompo *** 538,544 **** /** * Sets the selected file and sends a {@link PropertyChangeEvent} to all ! * registered listeners. The property name is * {@link #SELECTED_FILE_CHANGED_PROPERTY}. * * @param file the file (null permitted). --- 538,544 ---- /** * Sets the selected file and sends a {@link PropertyChangeEvent} to all ! * registered listeners. The property name is * {@link #SELECTED_FILE_CHANGED_PROPERTY}. * * @param file the file (null permitted). *************** public class JFileChooser extends JCompo *** 547,555 **** { if (selectedFile == null || !selectedFile.equals(file)) { ! File old = selectedFile; ! selectedFile = file; ! firePropertyChange(SELECTED_FILE_CHANGED_PROPERTY, old, selectedFile); } } --- 547,555 ---- { if (selectedFile == null || !selectedFile.equals(file)) { ! File old = selectedFile; ! selectedFile = file; ! firePropertyChange(SELECTED_FILE_CHANGED_PROPERTY, old, selectedFile); } } *************** public class JFileChooser extends JCompo *** 569,577 **** } /** ! * Sets the selected files and sends a {@link PropertyChangeEvent} (with the ! * name {@link #SELECTED_FILES_CHANGED_PROPERTY}) to all registered ! * listeners. * * @param selectedFiles the selected files (null permitted). */ --- 569,577 ---- } /** ! * Sets the selected files and sends a {@link PropertyChangeEvent} (with the ! * name {@link #SELECTED_FILES_CHANGED_PROPERTY}) to all registered ! * listeners. * * @param selectedFiles the selected files (null permitted). */ *************** public class JFileChooser extends JCompo *** 585,593 **** setSelectedFile(null); if (this.selectedFiles != selectedFiles) { ! File[] old = this.selectedFiles; ! this.selectedFiles = selectedFiles; ! firePropertyChange(SELECTED_FILES_CHANGED_PROPERTY, old, selectedFiles); } } --- 585,593 ---- setSelectedFile(null); if (this.selectedFiles != selectedFiles) { ! File[] old = this.selectedFiles; ! this.selectedFiles = selectedFiles; ! firePropertyChange(SELECTED_FILES_CHANGED_PROPERTY, old, selectedFiles); } } *************** public class JFileChooser extends JCompo *** 603,628 **** } /** ! * Sets the current directory and fires a {@link PropertyChangeEvent} (with ! * the property name {@link #DIRECTORY_CHANGED_PROPERTY}) to all registered ! * listeners. If dir is null, the current * directory is set to the default directory returned by the file system * view. * * @param dir the new directory (null permitted). ! * * @see FileSystemView#getDefaultDirectory() */ public void setCurrentDirectory(File dir) { if (currentDir != dir || dir == null) { ! if (dir == null) ! dir = fsv.getDefaultDirectory(); ! File old = currentDir; ! currentDir = dir; ! firePropertyChange(DIRECTORY_CHANGED_PROPERTY, old, currentDir); } } --- 603,628 ---- } /** ! * Sets the current directory and fires a {@link PropertyChangeEvent} (with ! * the property name {@link #DIRECTORY_CHANGED_PROPERTY}) to all registered ! * listeners. If dir is null, the current * directory is set to the default directory returned by the file system * view. * * @param dir the new directory (null permitted). ! * * @see FileSystemView#getDefaultDirectory() */ public void setCurrentDirectory(File dir) { if (currentDir != dir || dir == null) { ! if (dir == null) ! dir = fsv.getDefaultDirectory(); ! File old = currentDir; ! currentDir = dir; ! firePropertyChange(DIRECTORY_CHANGED_PROPERTY, old, currentDir); } } *************** public class JFileChooser extends JCompo *** 643,649 **** } /** ! * Ensures the the specified file is visible (this is handled by the * UI delegate). * * @param f the file. --- 643,649 ---- } /** ! * Ensures the the specified file is visible (this is handled by the * UI delegate). * * @param f the file. *************** public class JFileChooser extends JCompo *** 654,666 **** } /** ! * Displays the file chooser in a modal dialog using the * {@link #OPEN_DIALOG} type. * * @param parent the parent component. * ! * @return A return value indicating how the dialog was closed (one of ! * {@link #APPROVE_OPTION}, {@link #CANCEL_OPTION} and * {@link #ERROR_OPTION}). * * @throws HeadlessException DOCUMENT ME! --- 654,666 ---- } /** ! * Displays the file chooser in a modal dialog using the * {@link #OPEN_DIALOG} type. * * @param parent the parent component. * ! * @return A return value indicating how the dialog was closed (one of ! * {@link #APPROVE_OPTION}, {@link #CANCEL_OPTION} and * {@link #ERROR_OPTION}). * * @throws HeadlessException DOCUMENT ME! *************** public class JFileChooser extends JCompo *** 681,693 **** } /** ! * Displays the file chooser in a modal dialog using the * {@link #SAVE_DIALOG} type. * * @param parent the parent component. * ! * @return A return value indicating how the dialog was closed (one of ! * {@link #APPROVE_OPTION}, {@link #CANCEL_OPTION} and * {@link #ERROR_OPTION}). * * @throws HeadlessException DOCUMENT ME! --- 681,693 ---- } /** ! * Displays the file chooser in a modal dialog using the * {@link #SAVE_DIALOG} type. * * @param parent the parent component. * ! * @return A return value indicating how the dialog was closed (one of ! * {@link #APPROVE_OPTION}, {@link #CANCEL_OPTION} and * {@link #ERROR_OPTION}). * * @throws HeadlessException DOCUMENT ME! *************** public class JFileChooser extends JCompo *** 705,717 **** } /** ! * Displays the file chooser in a modal dialog using the * {@link #CUSTOM_DIALOG} type. * * @param parent the parent component. * ! * @return A return value indicating how the dialog was closed (one of ! * {@link #APPROVE_OPTION}, {@link #CANCEL_OPTION} and * {@link #ERROR_OPTION}). * * @throws HeadlessException DOCUMENT ME! --- 705,717 ---- } /** ! * Displays the file chooser in a modal dialog using the * {@link #CUSTOM_DIALOG} type. * * @param parent the parent component. * ! * @return A return value indicating how the dialog was closed (one of ! * {@link #APPROVE_OPTION}, {@link #CANCEL_OPTION} and * {@link #ERROR_OPTION}). * * @throws HeadlessException DOCUMENT ME! *************** public class JFileChooser extends JCompo *** 750,759 **** dialog.getContentPane().add(this); dialog.addWindowListener( new WindowAdapter() { ! public void windowClosing(WindowEvent e) ! { ! cancelSelection(); ! } }); dialog.setModal(true); dialog.invalidate(); --- 750,759 ---- dialog.getContentPane().add(this); dialog.addWindowListener( new WindowAdapter() { ! public void windowClosing(WindowEvent e) ! { ! cancelSelection(); ! } }); dialog.setModal(true); dialog.invalidate(); *************** public class JFileChooser extends JCompo *** 766,772 **** * shown on the file chooser. * * @return A boolean. ! * * @see #setControlButtonsAreShown(boolean) */ public boolean getControlButtonsAreShown() --- 766,772 ---- * shown on the file chooser. * * @return A boolean. ! * * @see #setControlButtonsAreShown(boolean) */ public boolean getControlButtonsAreShown() *************** public class JFileChooser extends JCompo *** 786,803 **** { if (controlButtonsShown != b) { ! controlButtonsShown = b; ! firePropertyChange(CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY, ! ! controlButtonsShown, controlButtonsShown); } } /** * Returns the type of file chooser. * ! * @return {@link #OPEN_DIALOG}, {@link #SAVE_DIALOG} or * {@link #CUSTOM_DIALOG}. ! * * @see #setDialogType(int) */ public int getDialogType() --- 786,803 ---- { if (controlButtonsShown != b) { ! controlButtonsShown = b; ! firePropertyChange(CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY, ! ! controlButtonsShown, controlButtonsShown); } } /** * Returns the type of file chooser. * ! * @return {@link #OPEN_DIALOG}, {@link #SAVE_DIALOG} or * {@link #CUSTOM_DIALOG}. ! * * @see #setDialogType(int) */ public int getDialogType() *************** public class JFileChooser extends JCompo *** 807,818 **** /** * Sets the dialog type and fires a {@link PropertyChangeEvent} (with the ! * property name {@link #DIALOG_TYPE_CHANGED_PROPERTY}) to all * registered listeners. * * @param dialogType the dialog type (one of: {@link #OPEN_DIALOG}, * {@link #SAVE_DIALOG}, {@link #CUSTOM_DIALOG}). ! * * @throws IllegalArgumentException if dialogType is not valid. */ public void setDialogType(int dialogType) --- 807,818 ---- /** * Sets the dialog type and fires a {@link PropertyChangeEvent} (with the ! * property name {@link #DIALOG_TYPE_CHANGED_PROPERTY}) to all * registered listeners. * * @param dialogType the dialog type (one of: {@link #OPEN_DIALOG}, * {@link #SAVE_DIALOG}, {@link #CUSTOM_DIALOG}). ! * * @throws IllegalArgumentException if dialogType is not valid. */ public void setDialogType(int dialogType) *************** public class JFileChooser extends JCompo *** 823,850 **** if (this.dialogType != dialogType) { ! int old = this.dialogType; ! this.dialogType = dialogType; ! firePropertyChange(DIALOG_TYPE_CHANGED_PROPERTY, old, this.dialogType); } } /** ! * Sets the dialog title and sends a {@link PropertyChangeEvent} (with the ! * property name {@link #DIALOG_TITLE_CHANGED_PROPERTY}) to all * registered listeners. * * @param dialogTitle the dialog title (null permitted). ! * * @see #getDialogTitle() */ public void setDialogTitle(String dialogTitle) { if (this.dialogTitle != dialogTitle) { ! String old = this.dialogTitle; ! this.dialogTitle = dialogTitle; ! firePropertyChange(DIALOG_TITLE_CHANGED_PROPERTY, old, this.dialogTitle); } } --- 823,850 ---- if (this.dialogType != dialogType) { ! int old = this.dialogType; ! this.dialogType = dialogType; ! firePropertyChange(DIALOG_TYPE_CHANGED_PROPERTY, old, this.dialogType); } } /** ! * Sets the dialog title and sends a {@link PropertyChangeEvent} (with the ! * property name {@link #DIALOG_TITLE_CHANGED_PROPERTY}) to all * registered listeners. * * @param dialogTitle the dialog title (null permitted). ! * * @see #getDialogTitle() */ public void setDialogTitle(String dialogTitle) { if (this.dialogTitle != dialogTitle) { ! String old = this.dialogTitle; ! this.dialogTitle = dialogTitle; ! firePropertyChange(DIALOG_TITLE_CHANGED_PROPERTY, old, this.dialogTitle); } } *************** public class JFileChooser extends JCompo *** 852,858 **** * Returns the dialog title. * * @return The dialog title (possibly null). ! * * @see #setDialogTitle(String) */ public String getDialogTitle() --- 852,858 ---- * Returns the dialog title. * * @return The dialog title (possibly null). ! * * @see #setDialogTitle(String) */ public String getDialogTitle() *************** public class JFileChooser extends JCompo *** 861,869 **** } /** ! * Sets the tool tip text for the approve button and sends a * {@link PropertyChangeEvent} (with the property name ! * {@link #APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY}) to all * registered listeners. * * @param toolTipText the text. --- 861,869 ---- } /** ! * Sets the tool tip text for the approve button and sends a * {@link PropertyChangeEvent} (with the property name ! * {@link #APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY}) to all * registered listeners. * * @param toolTipText the text. *************** public class JFileChooser extends JCompo *** 872,881 **** { if (approveButtonToolTipText != toolTipText) { ! String oldText = approveButtonToolTipText; ! approveButtonToolTipText = toolTipText; ! firePropertyChange(APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY, ! oldText, approveButtonToolTipText); } } --- 872,881 ---- { if (approveButtonToolTipText != toolTipText) { ! String oldText = approveButtonToolTipText; ! approveButtonToolTipText = toolTipText; ! firePropertyChange(APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY, ! oldText, approveButtonToolTipText); } } *************** public class JFileChooser extends JCompo *** 883,889 **** * Returns the tool tip text for the approve button. * * @return The tool tip text for the approve button. ! * * @see #setApproveButtonToolTipText(String) */ public String getApproveButtonToolTipText() --- 883,889 ---- * Returns the tool tip text for the approve button. * * @return The tool tip text for the approve button. ! * * @see #setApproveButtonToolTipText(String) */ public String getApproveButtonToolTipText() *************** public class JFileChooser extends JCompo *** 895,901 **** * Returns the approve button mnemonic, or zero if no mnemonic has been set. * * @return The approve button mnemonic. ! * * @see #setApproveButtonMnemonic(int) */ public int getApproveButtonMnemonic() --- 895,901 ---- * Returns the approve button mnemonic, or zero if no mnemonic has been set. * * @return The approve button mnemonic. ! * * @see #setApproveButtonMnemonic(int) */ public int getApproveButtonMnemonic() *************** public class JFileChooser extends JCompo *** 904,937 **** } /** ! * Sets the mnemonic for the approve button and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY}) to all registered * listeners. * * @param mnemonic the mnemonic. ! * * @see #setApproveButtonMnemonic(char) */ public void setApproveButtonMnemonic(int mnemonic) { if (approveButtonMnemonic != mnemonic) { ! int oldMnemonic = approveButtonMnemonic; ! approveButtonMnemonic = mnemonic; ! firePropertyChange(APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY, ! oldMnemonic, approveButtonMnemonic); } } /** ! * Sets the mnemonic for the approve button and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY}) to all registered * listeners. * * @param mnemonic the mnemonic. ! * * @see #setApproveButtonMnemonic(int) */ public void setApproveButtonMnemonic(char mnemonic) --- 904,937 ---- } /** ! * Sets the mnemonic for the approve button and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY}) to all registered * listeners. * * @param mnemonic the mnemonic. ! * * @see #setApproveButtonMnemonic(char) */ public void setApproveButtonMnemonic(int mnemonic) { if (approveButtonMnemonic != mnemonic) { ! int oldMnemonic = approveButtonMnemonic; ! approveButtonMnemonic = mnemonic; ! firePropertyChange(APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY, ! oldMnemonic, approveButtonMnemonic); } } /** ! * Sets the mnemonic for the approve button and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY}) to all registered * listeners. * * @param mnemonic the mnemonic. ! * * @see #setApproveButtonMnemonic(int) */ public void setApproveButtonMnemonic(char mnemonic) *************** public class JFileChooser extends JCompo *** 940,961 **** } /** ! * Sets the approve button text and fires a {@link PropertyChangeEvent} ! * (with the property name {@link #APPROVE_BUTTON_TEXT_CHANGED_PROPERTY}) to * all registered listeners. * * @param approveButtonText the text (null permitted). ! * * @see #getApproveButtonText() */ public void setApproveButtonText(String approveButtonText) { if (this.approveButtonText != approveButtonText) { ! String oldText = this.approveButtonText; ! this.approveButtonText = approveButtonText; ! firePropertyChange(APPROVE_BUTTON_TEXT_CHANGED_PROPERTY, oldText, ! this.approveButtonText); } } --- 940,961 ---- } /** ! * Sets the approve button text and fires a {@link PropertyChangeEvent} ! * (with the property name {@link #APPROVE_BUTTON_TEXT_CHANGED_PROPERTY}) to * all registered listeners. * * @param approveButtonText the text (null permitted). ! * * @see #getApproveButtonText() */ public void setApproveButtonText(String approveButtonText) { if (this.approveButtonText != approveButtonText) { ! String oldText = this.approveButtonText; ! this.approveButtonText = approveButtonText; ! firePropertyChange(APPROVE_BUTTON_TEXT_CHANGED_PROPERTY, oldText, ! this.approveButtonText); } } *************** public class JFileChooser extends JCompo *** 963,969 **** * Returns the approve button text. * * @return The approve button text (possibly null). ! * * @see #setApproveButtonText(String) */ public String getApproveButtonText() --- 963,969 ---- * Returns the approve button text. * * @return The approve button text (possibly null). ! * * @see #setApproveButtonText(String) */ public String getApproveButtonText() *************** public class JFileChooser extends JCompo *** 982,990 **** } /** ! * Adds a file filter to the list of available filters and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY}) to all registered * listeners. * * @param filter the filter (null permitted). --- 982,990 ---- } /** ! * Adds a file filter to the list of available filters and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY}) to all registered * listeners. * * @param filter the filter (null permitted). *************** public class JFileChooser extends JCompo *** 996,1016 **** FileFilter[] old = getChoosableFileFilters(); choosableFilters.add(filter); FileFilter[] newFilters = getChoosableFileFilters(); ! firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, old, newFilters); } setFileFilter(filter); } /** ! * Removes a file filter from the list of available filters and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY}) to all registered * listeners. * * @param f the file filter. * ! * @return true if the filter was removed and * false otherwise. */ public boolean removeChoosableFileFilter(FileFilter f) --- 996,1016 ---- FileFilter[] old = getChoosableFileFilters(); choosableFilters.add(filter); FileFilter[] newFilters = getChoosableFileFilters(); ! firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, old, newFilters); } setFileFilter(filter); } /** ! * Removes a file filter from the list of available filters and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY}) to all registered * listeners. * * @param f the file filter. * ! * @return true if the filter was removed and * false otherwise. */ public boolean removeChoosableFileFilter(FileFilter f) *************** public class JFileChooser extends JCompo *** 1047,1057 **** } /** ! * Returns the flag that controls whether or not the 'accept all' file * filter is included in the list of filters. * * @return A boolean. ! * * @see #setAcceptAllFileFilterUsed(boolean) */ public boolean isAcceptAllFileFilterUsed() --- 1047,1057 ---- } /** ! * Returns the flag that controls whether or not the 'accept all' file * filter is included in the list of filters. * * @return A boolean. ! * * @see #setAcceptAllFileFilterUsed(boolean) */ public boolean isAcceptAllFileFilterUsed() *************** public class JFileChooser extends JCompo *** 1061,1069 **** /** * Sets the flag that controls whether or not the 'accept all' file filter ! * is included in the list of filters, and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY}) to all registered * listeners. * * @param b the new value of the flag. --- 1061,1069 ---- /** * Sets the flag that controls whether or not the 'accept all' file filter ! * is included in the list of filters, and sends a ! * {@link PropertyChangeEvent} (with the property name ! * {@link #ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY}) to all registered * listeners. * * @param b the new value of the flag. *************** public class JFileChooser extends JCompo *** 1072,1084 **** { if (isAcceptAll != b) { ! isAcceptAll = b; if (b) addChoosableFileFilter(getAcceptAllFileFilter()); ! else removeChoosableFileFilter(getAcceptAllFileFilter()); ! firePropertyChange(ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY, ! ! isAcceptAll, isAcceptAll); } } --- 1072,1084 ---- { if (isAcceptAll != b) { ! isAcceptAll = b; if (b) addChoosableFileFilter(getAcceptAllFileFilter()); ! else removeChoosableFileFilter(getAcceptAllFileFilter()); ! firePropertyChange(ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY, ! ! isAcceptAll, isAcceptAll); } } *************** public class JFileChooser extends JCompo *** 1087,1093 **** * value is null. * * @return The accessory component (possibly null). ! * * @see #setAccessory(JComponent) */ public JComponent getAccessory() --- 1087,1093 ---- * value is null. * * @return The accessory component (possibly null). ! * * @see #setAccessory(JComponent) */ public JComponent getAccessory() *************** public class JFileChooser extends JCompo *** 1096,1102 **** } /** ! * Sets the accessory component for the file chooser and sends a * {@link PropertyChangeEvent} to all registered listeners. The property * name is {@link #ACCESSORY_CHANGED_PROPERTY}. * --- 1096,1102 ---- } /** ! * Sets the accessory component for the file chooser and sends a * {@link PropertyChangeEvent} to all registered listeners. The property * name is {@link #ACCESSORY_CHANGED_PROPERTY}. * *************** public class JFileChooser extends JCompo *** 1106,1125 **** { if (accessory != newAccessory) { ! JComponent old = accessory; ! accessory = newAccessory; ! firePropertyChange(ACCESSORY_CHANGED_PROPERTY, old, accessory); } } /** * Sets the file selection mode and sends a {@link PropertyChangeEvent} ! * to all registered listeners. The property name is * {@link #FILE_SELECTION_MODE_CHANGED_PROPERTY}. * * @param mode the mode ({@link #FILES_ONLY}, {@link #DIRECTORIES_ONLY} or * {@link #FILES_AND_DIRECTORIES}). ! * * @throws IllegalArgumentException if the mode is invalid. */ public void setFileSelectionMode(int mode) --- 1106,1125 ---- { if (accessory != newAccessory) { ! JComponent old = accessory; ! accessory = newAccessory; ! firePropertyChange(ACCESSORY_CHANGED_PROPERTY, old, accessory); } } /** * Sets the file selection mode and sends a {@link PropertyChangeEvent} ! * to all registered listeners. The property name is * {@link #FILE_SELECTION_MODE_CHANGED_PROPERTY}. * * @param mode the mode ({@link #FILES_ONLY}, {@link #DIRECTORIES_ONLY} or * {@link #FILES_AND_DIRECTORIES}). ! * * @throws IllegalArgumentException if the mode is invalid. */ public void setFileSelectionMode(int mode) *************** public class JFileChooser extends JCompo *** 1129,1148 **** throw new IllegalArgumentException("Choose a correct file selection mode."); if (fileSelectionMode != mode) { ! int old = fileSelectionMode; ! fileSelectionMode = mode; ! firePropertyChange(FILE_SELECTION_MODE_CHANGED_PROPERTY, old, ! fileSelectionMode); } } /** ! * Returns the file selection mode, one of: {@link #FILES_ONLY}, * {@link #DIRECTORIES_ONLY} or {@link #FILES_AND_DIRECTORIES}. The * default is {@link #FILES_ONLY}. * * @return The file selection mode. ! * * @see #setFileSelectionMode(int) */ public int getFileSelectionMode() --- 1129,1148 ---- throw new IllegalArgumentException("Choose a correct file selection mode."); if (fileSelectionMode != mode) { ! int old = fileSelectionMode; ! fileSelectionMode = mode; ! firePropertyChange(FILE_SELECTION_MODE_CHANGED_PROPERTY, old, ! fileSelectionMode); } } /** ! * Returns the file selection mode, one of: {@link #FILES_ONLY}, * {@link #DIRECTORIES_ONLY} or {@link #FILES_AND_DIRECTORIES}. The * default is {@link #FILES_ONLY}. * * @return The file selection mode. ! * * @see #setFileSelectionMode(int) */ public int getFileSelectionMode() *************** public class JFileChooser extends JCompo *** 1151,1163 **** } /** ! * Returns true if file selection is enabled, and * false otherwise. File selection is enabled when the ! * file selection mode is {@link #FILES_ONLY} or * {@link #FILES_AND_DIRECTORIES}. * * @return true if file selection is enabled. ! * * @see #getFileSelectionMode() */ public boolean isFileSelectionEnabled() --- 1151,1163 ---- } /** ! * Returns true if file selection is enabled, and * false otherwise. File selection is enabled when the ! * file selection mode is {@link #FILES_ONLY} or * {@link #FILES_AND_DIRECTORIES}. * * @return true if file selection is enabled. ! * * @see #getFileSelectionMode() */ public boolean isFileSelectionEnabled() *************** public class JFileChooser extends JCompo *** 1167,1179 **** } /** ! * Returns true if directory selection is enabled, and * false otherwise. Directory selection is enabled when the ! * file selection mode is {@link #DIRECTORIES_ONLY} or * {@link #FILES_AND_DIRECTORIES}. * * @return true if file selection is enabled. ! * * @see #getFileSelectionMode() */ public boolean isDirectorySelectionEnabled() --- 1167,1179 ---- } /** ! * Returns true if directory selection is enabled, and * false otherwise. Directory selection is enabled when the ! * file selection mode is {@link #DIRECTORIES_ONLY} or * {@link #FILES_AND_DIRECTORIES}. * * @return true if file selection is enabled. ! * * @see #getFileSelectionMode() */ public boolean isDirectorySelectionEnabled() *************** public class JFileChooser extends JCompo *** 1183,1191 **** } /** ! * Sets the flag that controls whether multiple selections are allowed in ! * this filechooser and sends a {@link PropertyChangeEvent} (with the ! * property name {@link #MULTI_SELECTION_ENABLED_CHANGED_PROPERTY}) to all * registered listeners. * * @param b the new value of the flag. --- 1183,1191 ---- } /** ! * Sets the flag that controls whether multiple selections are allowed in ! * this filechooser and sends a {@link PropertyChangeEvent} (with the ! * property name {@link #MULTI_SELECTION_ENABLED_CHANGED_PROPERTY}) to all * registered listeners. * * @param b the new value of the flag. *************** public class JFileChooser extends JCompo *** 1194,1202 **** { if (multiSelection != b) { ! multiSelection = b; ! firePropertyChange(MULTI_SELECTION_ENABLED_CHANGED_PROPERTY, ! ! multiSelection, multiSelection); } } --- 1194,1202 ---- { if (multiSelection != b) { ! multiSelection = b; ! firePropertyChange(MULTI_SELECTION_ENABLED_CHANGED_PROPERTY, ! ! multiSelection, multiSelection); } } *************** public class JFileChooser extends JCompo *** 1205,1211 **** * file chooser, and false otherwise. * * @return A boolean. ! * * @see #setMultiSelectionEnabled(boolean) */ public boolean isMultiSelectionEnabled() --- 1205,1211 ---- * file chooser, and false otherwise. * * @return A boolean. ! * * @see #setMultiSelectionEnabled(boolean) */ public boolean isMultiSelectionEnabled() *************** public class JFileChooser extends JCompo *** 1214,1224 **** } /** ! * Returns true if hidden files are to be hidden, and * false otherwise. * * @return A boolean. ! * * @see #setFileHidingEnabled(boolean) */ public boolean isFileHidingEnabled() --- 1214,1224 ---- } /** ! * Returns true if hidden files are to be hidden, and * false otherwise. * * @return A boolean. ! * * @see #setFileHidingEnabled(boolean) */ public boolean isFileHidingEnabled() *************** public class JFileChooser extends JCompo *** 1237,1251 **** { if (fileHiding != b) { ! fileHiding = b; ! firePropertyChange(FILE_HIDING_CHANGED_PROPERTY, ! fileHiding, ! fileHiding); } } /** * Sets the file filter and sends a {@link PropertyChangeEvent} (with the ! * property name {@link #FILE_FILTER_CHANGED_PROPERTY}) to all registered * listeners. * * @param filter the filter (null permitted). --- 1237,1251 ---- { if (fileHiding != b) { ! fileHiding = b; ! firePropertyChange(FILE_HIDING_CHANGED_PROPERTY, ! fileHiding, ! fileHiding); } } /** * Sets the file filter and sends a {@link PropertyChangeEvent} (with the ! * property name {@link #FILE_FILTER_CHANGED_PROPERTY}) to all registered * listeners. * * @param filter the filter (null permitted). *************** public class JFileChooser extends JCompo *** 1266,1272 **** * Returns the file filter. * * @return The file filter. ! * * @see #setFileFilter(FileFilter) */ public FileFilter getFileFilter() --- 1266,1272 ---- * Returns the file filter. * * @return The file filter. ! * * @see #setFileFilter(FileFilter) */ public FileFilter getFileFilter() *************** public class JFileChooser extends JCompo *** 1275,1281 **** } /** ! * Sets a custom {@link FileView} for the file chooser and sends a * {@link PropertyChangeEvent} to all registered listeners. The property * name is {@link #FILE_VIEW_CHANGED_PROPERTY}. * --- 1275,1281 ---- } /** ! * Sets a custom {@link FileView} for the file chooser and sends a * {@link PropertyChangeEvent} to all registered listeners. The property * name is {@link #FILE_VIEW_CHANGED_PROPERTY}. * *************** public class JFileChooser extends JCompo *** 1287,1295 **** { if (fv != fileView) { ! FileView old = fv; ! fv = fileView; ! firePropertyChange(FILE_VIEW_CHANGED_PROPERTY, old, fv); } } --- 1287,1295 ---- { if (fv != fileView) { ! FileView old = fv; ! fv = fileView; ! firePropertyChange(FILE_VIEW_CHANGED_PROPERTY, old, fv); } } *************** public class JFileChooser extends JCompo *** 1340,1346 **** } /** ! * Returns the type description for the file, generated by the current (or * default) {@link FileView}. * * @param f the file. --- 1340,1346 ---- } /** ! * Returns the type description for the file, generated by the current (or * default) {@link FileView}. * * @param f the file. *************** public class JFileChooser extends JCompo *** 1375,1381 **** } /** ! * Returns true if the file is traversable, and * false otherwise. * * @param f the file or directory. --- 1375,1381 ---- } /** ! * Returns true if the file is traversable, and * false otherwise. * * @param f the file or directory. *************** public class JFileChooser extends JCompo *** 1400,1413 **** if (f == null) return true; FileFilter ff = getFileFilter(); ! if (ff != null) return ff.accept(f); else return true; } /** ! * Sets the file system view for the file chooser and sends a * {@link PropertyChangeEvent} to all registered listeners. * * @param fsv the file system view. --- 1400,1413 ---- if (f == null) return true; FileFilter ff = getFileFilter(); ! if (ff != null) return ff.accept(f); else return true; } /** ! * Sets the file system view for the file chooser and sends a * {@link PropertyChangeEvent} to all registered listeners. * * @param fsv the file system view. *************** public class JFileChooser extends JCompo *** 1416,1424 **** { if (this.fsv != fsv) { ! FileSystemView old = this.fsv; ! this.fsv = fsv; ! firePropertyChange(FILE_SYSTEM_VIEW_CHANGED_PROPERTY, old, this.fsv); } } --- 1416,1424 ---- { if (this.fsv != fsv) { ! FileSystemView old = this.fsv; ! this.fsv = fsv; ! firePropertyChange(FILE_SYSTEM_VIEW_CHANGED_PROPERTY, old, this.fsv); } } *************** public class JFileChooser extends JCompo *** 1426,1432 **** * Returns the file system view being used by this file chooser. * * @return The file system view. ! * * @see #setFileSystemView(FileSystemView) */ public FileSystemView getFileSystemView() --- 1426,1432 ---- * Returns the file system view being used by this file chooser. * * @return The file system view. ! * * @see #setFileSystemView(FileSystemView) */ public FileSystemView getFileSystemView() *************** public class JFileChooser extends JCompo *** 1473,1483 **** { try { ! listenerList.remove(ActionListener.class, l); } catch (IllegalArgumentException e) { ! e.printStackTrace(); } } --- 1473,1483 ---- { try { ! listenerList.remove(ActionListener.class, l); } catch (IllegalArgumentException e) { ! e.printStackTrace(); } } *************** public class JFileChooser extends JCompo *** 1535,1546 **** } /** ! * Returns a string describing the attributes for the ! * JFileChooser component, for use in debugging. The return ! * value is guaranteed to be non-null, but the format of the * string may vary between implementations. * ! * @return A string describing the attributes of the * JFileChooser. */ protected String paramString() --- 1535,1546 ---- } /** ! * Returns a string describing the attributes for the ! * JFileChooser component, for use in debugging. The return ! * value is guaranteed to be non-null, but the format of the * string may vary between implementations. * ! * @return A string describing the attributes of the * JFileChooser. */ protected String paramString() *************** public class JFileChooser extends JCompo *** 1587,1593 **** * Returns the object that provides accessibility features for this * JFileChooser component. * ! * @return The accessible context (an instance of * {@link AccessibleJFileChooser}). */ public AccessibleContext getAccessibleContext() --- 1587,1593 ---- * Returns the object that provides accessibility features for this * JFileChooser component. * ! * @return The accessible context (an instance of * {@link AccessibleJFileChooser}). */ public AccessibleContext getAccessibleContext() *************** public class JFileChooser extends JCompo *** 1601,1607 **** * Provides the accessibility features for the JFileChooser * component. */ ! protected class AccessibleJFileChooser extends JComponent.AccessibleJComponent { /** --- 1601,1607 ---- * Provides the accessibility features for the JFileChooser * component. */ ! protected class AccessibleJFileChooser extends JComponent.AccessibleJComponent { /** *************** public class JFileChooser extends JCompo *** 1611,1619 **** { // Nothing to do here. } ! /** ! * Returns the accessible role for the JFileChooser * component. * * @return {@link AccessibleRole#FILE_CHOOSER}. --- 1611,1619 ---- { // Nothing to do here. } ! /** ! * Returns the accessible role for the JFileChooser * component. * * @return {@link AccessibleRole#FILE_CHOOSER}. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JFormattedTextField.java gcc-4.6.0/libjava/classpath/javax/swing/JFormattedTextField.java *** gcc-4.5.2/libjava/classpath/javax/swing/JFormattedTextField.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JFormattedTextField.java Tue Jan 11 19:46:05 2011 *************** public class JFormattedTextField extends *** 84,101 **** public abstract static class AbstractFormatter implements Serializable { private static final long serialVersionUID = -5193212041738979680L; ! private JFormattedTextField textField; ! public AbstractFormatter () { //Do nothing here. } /** ! * Clones the AbstractFormatter and removes the association to any * particular JFormattedTextField. ! * * @return a clone of this formatter with no association to any particular * JFormattedTextField * @throws CloneNotSupportedException if the Object's class doesn't support --- 84,101 ---- public abstract static class AbstractFormatter implements Serializable { private static final long serialVersionUID = -5193212041738979680L; ! private JFormattedTextField textField; ! public AbstractFormatter () { //Do nothing here. } /** ! * Clones the AbstractFormatter and removes the association to any * particular JFormattedTextField. ! * * @return a clone of this formatter with no association to any particular * JFormattedTextField * @throws CloneNotSupportedException if the Object's class doesn't support *************** public class JFormattedTextField extends *** 106,112 **** { // Clone this formatter. AbstractFormatter newFormatter = (AbstractFormatter) super.clone(); ! // And remove the association to the JFormattedTextField. newFormatter.textField = null; return newFormatter; --- 106,112 ---- { // Clone this formatter. AbstractFormatter newFormatter = (AbstractFormatter) super.clone(); ! // And remove the association to the JFormattedTextField. newFormatter.textField = null; return newFormatter; *************** public class JFormattedTextField extends *** 115,121 **** /** * Returns a custom set of Actions that this formatter supports. Should * be subclassed by formatters that have a custom set of Actions. ! * * @return null. Should be subclassed by formatters that want * to install custom Actions on the JFormattedTextField. */ --- 115,121 ---- /** * Returns a custom set of Actions that this formatter supports. Should * be subclassed by formatters that have a custom set of Actions. ! * * @return null. Should be subclassed by formatters that want * to install custom Actions on the JFormattedTextField. */ *************** public class JFormattedTextField extends *** 128,140 **** * Gets the DocumentFilter for this formatter. Should be subclassed * by formatters wishing to install a filter that oversees Document * mutations. ! * * @return null. Should be subclassed by formatters * that want to restrict Document mutations. */ protected DocumentFilter getDocumentFilter() { ! // Subclasses should override this if they want to install a // DocumentFilter. return null; } --- 128,140 ---- * Gets the DocumentFilter for this formatter. Should be subclassed * by formatters wishing to install a filter that oversees Document * mutations. ! * * @return null. Should be subclassed by formatters * that want to restrict Document mutations. */ protected DocumentFilter getDocumentFilter() { ! // Subclasses should override this if they want to install a // DocumentFilter. return null; } *************** public class JFormattedTextField extends *** 142,148 **** /** * Returns the JFormattedTextField on which this formatter is * currently installed. ! * * @return the JFormattedTextField on which this formatter is currently * installed */ --- 142,148 ---- /** * Returns the JFormattedTextField on which this formatter is * currently installed. ! * * @return the JFormattedTextField on which this formatter is currently * installed */ *************** public class JFormattedTextField extends *** 153,181 **** /** * Gets the NavigationFilter for this formatter. Should be subclassed ! * by formatters (such as {@link DefaultFormatter}) that wish to * restrict where the cursor can be placed within the text field. ! * * @return null. Subclassed by formatters that want to restrict * cursor location within the JFormattedTextField. */ protected NavigationFilter getNavigationFilter() { ! // This should be subclassed if the formatter wants to install // a NavigationFilter on the JFormattedTextField. return null; } /** ! * Installs this formatter on the specified JFormattedTextField. This ! * converts the current value to a displayable String and displays it, * and installs formatter specific Actions from getActions. ! * It also installs a DocumentFilter and NavigationFilter on the ! * JFormattedTextField. *

                                            ! * If there is a ParseException this sets the text to an * empty String and marks the text field in an invalid state. ! * * @param textField the JFormattedTextField on which to install this * formatter */ --- 153,181 ---- /** * Gets the NavigationFilter for this formatter. Should be subclassed ! * by formatters (such as {@link DefaultFormatter}) that wish to * restrict where the cursor can be placed within the text field. ! * * @return null. Subclassed by formatters that want to restrict * cursor location within the JFormattedTextField. */ protected NavigationFilter getNavigationFilter() { ! // This should be subclassed if the formatter wants to install // a NavigationFilter on the JFormattedTextField. return null; } /** ! * Installs this formatter on the specified JFormattedTextField. This ! * converts the current value to a displayable String and displays it, * and installs formatter specific Actions from getActions. ! * It also installs a DocumentFilter and NavigationFilter on the ! * JFormattedTextField. *

                                            ! * If there is a ParseException this sets the text to an * empty String and marks the text field in an invalid state. ! * * @param textField the JFormattedTextField on which to install this * formatter */ *************** public class JFormattedTextField extends *** 184,193 **** // Uninstall the current textfield. if (this.textField != null) uninstall(); ! this.textField = textField; ! ! // Install some state on the text field, including display text, // DocumentFilter, NavigationFilter, and formatter specific Actions. if (textField != null) { --- 184,193 ---- // Uninstall the current textfield. if (this.textField != null) uninstall(); ! this.textField = textField; ! ! // Install some state on the text field, including display text, // DocumentFilter, NavigationFilter, and formatter specific Actions. if (textField != null) { *************** public class JFormattedTextField extends *** 196,211 **** // Set the text of the field. textField.setText(valueToString(textField.getValue())); Document doc = textField.getDocument(); ! // Set the DocumentFilter for the field's Document. if (doc instanceof AbstractDocument) ((AbstractDocument) doc).setDocumentFilter(getDocumentFilter()); ! // Set the NavigationFilter. textField.setNavigationFilter(getNavigationFilter()); ! // Set the Formatter Actions ! // FIXME: Have to add the actions from getActions() } catch (ParseException pe) { --- 196,211 ---- // Set the text of the field. textField.setText(valueToString(textField.getValue())); Document doc = textField.getDocument(); ! // Set the DocumentFilter for the field's Document. if (doc instanceof AbstractDocument) ((AbstractDocument) doc).setDocumentFilter(getDocumentFilter()); ! // Set the NavigationFilter. textField.setNavigationFilter(getNavigationFilter()); ! // Set the Formatter Actions ! // FIXME: Have to add the actions from getActions() } catch (ParseException pe) { *************** public class JFormattedTextField extends *** 218,225 **** /** * Clears the state installed on the JFormattedTextField by the formatter. ! * This resets the DocumentFilter, NavigationFilter, and any additional ! * Actions (returned by getActions()). */ public void uninstall() { --- 218,225 ---- /** * Clears the state installed on the JFormattedTextField by the formatter. ! * This resets the DocumentFilter, NavigationFilter, and any additional ! * Actions (returned by getActions()). */ public void uninstall() { *************** public class JFormattedTextField extends *** 234,240 **** /** * Invoke this method when invalid values are entered. This forwards the ! * call to the JFormattedTextField. */ protected void invalidEdit() { --- 234,240 ---- /** * Invoke this method when invalid values are entered. This forwards the ! * call to the JFormattedTextField. */ protected void invalidEdit() { *************** public class JFormattedTextField extends *** 242,250 **** } /** ! * This method updates the editValid property of * JFormattedTextField. ! * * @param valid the new state for the editValid property */ protected void setEditValid(boolean valid) --- 242,250 ---- } /** ! * This method updates the editValid property of * JFormattedTextField. ! * * @param valid the new state for the editValid property */ protected void setEditValid(boolean valid) *************** public class JFormattedTextField extends *** 254,260 **** /** * Parses text to return a corresponding Object. ! * * @param text the String to parse * @return an Object that text represented * @throws ParseException if there is an error in the conversion --- 254,260 ---- /** * Parses text to return a corresponding Object. ! * * @param text the String to parse * @return an Object that text represented * @throws ParseException if there is an error in the conversion *************** public class JFormattedTextField extends *** 265,271 **** /** * Returns a String to be displayed, based on the Object * value. ! * * @param value the Object from which to generate a String * @return a String to be displayed * @throws ParseException if there is an error in the conversion --- 265,271 ---- /** * Returns a String to be displayed, based on the Object * value. ! * * @param value the Object from which to generate a String * @return a String to be displayed * @throws ParseException if there is an error in the conversion *************** public class JFormattedTextField extends *** 276,282 **** /** * Delivers instances of an {@link AbstractFormatter} for ! * a specific value type for a JFormattedTextField. */ public abstract static class AbstractFormatterFactory { --- 276,282 ---- /** * Delivers instances of an {@link AbstractFormatter} for ! * a specific value type for a JFormattedTextField. */ public abstract static class AbstractFormatterFactory { *************** public class JFormattedTextField extends *** 296,317 **** /** The most recent valid and committed value **/ private Object value; ! /** The behaviour for when this text field loses focus **/ private int focusLostBehavior = COMMIT_OR_REVERT; ! /** The formatter factory currently being used **/ private AbstractFormatterFactory formatterFactory; ! /** The formatter currently being used **/ private AbstractFormatter formatter; ! // Package-private to avoid an accessor method. boolean editValid = true; ! /** ! * Creates a JFormattedTextField with no formatter factory. ! * setValue or setFormatterFactory will * properly configure this text field to edit a particular type * of value. */ --- 296,317 ---- /** The most recent valid and committed value **/ private Object value; ! /** The behaviour for when this text field loses focus **/ private int focusLostBehavior = COMMIT_OR_REVERT; ! /** The formatter factory currently being used **/ private AbstractFormatterFactory formatterFactory; ! /** The formatter currently being used **/ private AbstractFormatter formatter; ! // Package-private to avoid an accessor method. boolean editValid = true; ! /** ! * Creates a JFormattedTextField with no formatter factory. ! * setValue or setFormatterFactory will * properly configure this text field to edit a particular type * of value. */ *************** public class JFormattedTextField extends *** 321,330 **** } /** ! * Creates a JFormattedTextField that can handle the specified Format. ! * An appopriate AbstractFormatter and AbstractFormatterFactory will * be created for the specified Format. ! * * @param format the Format that this JFormattedTextField should be able * to handle */ --- 321,330 ---- } /** ! * Creates a JFormattedTextField that can handle the specified Format. ! * An appopriate AbstractFormatter and AbstractFormatterFactory will * be created for the specified Format. ! * * @param format the Format that this JFormattedTextField should be able * to handle */ *************** public class JFormattedTextField extends *** 335,344 **** } /** ! * Creates a JFormattedTextField with the specified formatter. This will * create a {@link DefaultFormatterFactory} with this formatter as the default * formatter. ! * * @param formatter the formatter to use for this JFormattedTextField */ public JFormattedTextField(AbstractFormatter formatter) --- 335,344 ---- } /** ! * Creates a JFormattedTextField with the specified formatter. This will * create a {@link DefaultFormatterFactory} with this formatter as the default * formatter. ! * * @param formatter the formatter to use for this JFormattedTextField */ public JFormattedTextField(AbstractFormatter formatter) *************** public class JFormattedTextField extends *** 348,354 **** /** * Creates a JFormattedTextField with the specified formatter factory. ! * * @param factory the formatter factory to use for this JFormattedTextField */ public JFormattedTextField(AbstractFormatterFactory factory) --- 348,354 ---- /** * Creates a JFormattedTextField with the specified formatter factory. ! * * @param factory the formatter factory to use for this JFormattedTextField */ public JFormattedTextField(AbstractFormatterFactory factory) *************** public class JFormattedTextField extends *** 359,370 **** /** * Creates a JFormattedTextField with the specified formatter factory and * initial value. ! * * @param factory the initial formatter factory for this JFormattedTextField * @param value the initial value for the text field */ public JFormattedTextField(AbstractFormatterFactory factory, Object value) ! { setFormatterFactory(factory); setValue(value); } --- 359,370 ---- /** * Creates a JFormattedTextField with the specified formatter factory and * initial value. ! * * @param factory the initial formatter factory for this JFormattedTextField * @param value the initial value for the text field */ public JFormattedTextField(AbstractFormatterFactory factory, Object value) ! { setFormatterFactory(factory); setValue(value); } *************** public class JFormattedTextField extends *** 372,385 **** /** * Creates a JFormattedTextField with the specified value. This creates a * formatter and formatterFactory that are appropriate for the value. ! * * @param value the initial value for this JFormattedTextField */ public JFormattedTextField(Object value) { setValue(value); } ! /** * Returns an AbstractFormatterFactory that will give an appropriate * AbstractFormatter for the given Format. --- 372,385 ---- /** * Creates a JFormattedTextField with the specified value. This creates a * formatter and formatterFactory that are appropriate for the value. ! * * @param value the initial value for this JFormattedTextField */ public JFormattedTextField(Object value) { setValue(value); } ! /** * Returns an AbstractFormatterFactory that will give an appropriate * AbstractFormatter for the given Format. *************** public class JFormattedTextField extends *** 396,409 **** newFormatter = new NumberFormatter ((NumberFormat) format); else newFormatter = new InternationalFormatter(format); ! return new DefaultFormatterFactory(newFormatter); } /** * Forces the current value from the editor to be set as the current * value. If there is no current formatted this has no effect. ! * * @throws ParseException if the formatter cannot format the current value */ public void commitEdit() --- 396,409 ---- newFormatter = new NumberFormatter ((NumberFormat) format); else newFormatter = new InternationalFormatter(format); ! return new DefaultFormatterFactory(newFormatter); } /** * Forces the current value from the editor to be set as the current * value. If there is no current formatted this has no effect. ! * * @throws ParseException if the formatter cannot format the current value */ public void commitEdit() *************** public class JFormattedTextField extends *** 414,430 **** // Note: this code is a lot like setValue except that we don't want // to create a new formatter. Object oldValue = this.value; ! this.value = formatter.stringToValue(getText()); editValid = true; ! ! firePropertyChange("value", oldValue, this.value); } /** * Gets the command list supplied by the UI augmented by the specific * Actions for JFormattedTextField. ! * * @return an array of Actions that this text field supports */ public Action[] getActions() --- 414,430 ---- // Note: this code is a lot like setValue except that we don't want // to create a new formatter. Object oldValue = this.value; ! this.value = formatter.stringToValue(getText()); editValid = true; ! ! firePropertyChange("value", oldValue, this.value); } /** * Gets the command list supplied by the UI augmented by the specific * Actions for JFormattedTextField. ! * * @return an array of Actions that this text field supports */ public Action[] getActions() *************** public class JFormattedTextField extends *** 436,443 **** /** * Returns the behaviour of this JFormattedTextField upon losing focus. This ! * is one of COMMIT, COMMIT_OR_REVERT, ! * PERSIST, or REVERT. * @return the behaviour upon losing focus */ public int getFocusLostBehavior() --- 436,443 ---- /** * Returns the behaviour of this JFormattedTextField upon losing focus. This ! * is one of COMMIT, COMMIT_OR_REVERT, ! * PERSIST, or REVERT. * @return the behaviour upon losing focus */ public int getFocusLostBehavior() *************** public class JFormattedTextField extends *** 453,459 **** { return formatter; } ! /** * Returns the factory currently used to generate formatters for this * JFormattedTextField. --- 453,459 ---- { return formatter; } ! /** * Returns the factory currently used to generate formatters for this * JFormattedTextField. *************** public class JFormattedTextField extends *** 470,478 **** } /** ! * Returns the last valid value. This may not be the value currently shown ! * in the text field depending on whether or not the formatter commits on ! * valid edits and allows invalid input to be temporarily displayed. * @return the last committed valid value */ public Object getValue() --- 470,478 ---- } /** ! * Returns the last valid value. This may not be the value currently shown ! * in the text field depending on whether or not the formatter commits on ! * valid edits and allows invalid input to be temporarily displayed. * @return the last committed valid value */ public Object getValue() *************** public class JFormattedTextField extends *** 482,488 **** /** * This method is used to provide feedback to the user when an invalid value ! * is input during editing. */ protected void invalidEdit() { --- 482,488 ---- /** * This method is used to provide feedback to the user when an invalid value ! * is input during editing. */ protected void invalidEdit() { *************** public class JFormattedTextField extends *** 500,509 **** } /** ! * Processes focus events. This is overridden because we may want to ! * change the formatted depending on whether or not this field has * focus. ! * * @param evt the FocusEvent */ protected void processFocusEvent(FocusEvent evt) --- 500,509 ---- } /** ! * Processes focus events. This is overridden because we may want to ! * change the formatted depending on whether or not this field has * focus. ! * * @param evt the FocusEvent */ protected void processFocusEvent(FocusEvent evt) *************** public class JFormattedTextField extends *** 513,523 **** // based on whether or not it has focus. setFormatter (formatterFactory.getFormatter(this)); } ! /** * Associates this JFormattedTextField with a Document and propagates * a PropertyChange event to each listener. ! * * @param newDocument the Document to associate with this text field */ public void setDocument(Document newDocument) --- 513,523 ---- // based on whether or not it has focus. setFormatter (formatterFactory.getFormatter(this)); } ! /** * Associates this JFormattedTextField with a Document and propagates * a PropertyChange event to each listener. ! * * @param newDocument the Document to associate with this text field */ public void setDocument(Document newDocument) *************** public class JFormattedTextField extends *** 528,553 **** if (oldDocument == newDocument) return; ! super.setDocument(newDocument); } /** * Sets the behaviour of this JFormattedTextField upon losing focus. ! * This must be COMMIT, COMMIT_OR_REVERT, ! * PERSIST, or REVERT or an * IllegalArgumentException will be thrown. ! * * @param behavior ! * @throws IllegalArgumentException if behaviour is not * one of the above */ public void setFocusLostBehavior(int behavior) { if (behavior != COMMIT ! && behavior != COMMIT_OR_REVERT ! && behavior != PERSIST ! && behavior != REVERT) throw new IllegalArgumentException("invalid behavior"); this.focusLostBehavior = behavior; --- 528,553 ---- if (oldDocument == newDocument) return; ! super.setDocument(newDocument); } /** * Sets the behaviour of this JFormattedTextField upon losing focus. ! * This must be COMMIT, COMMIT_OR_REVERT, ! * PERSIST, or REVERT or an * IllegalArgumentException will be thrown. ! * * @param behavior ! * @throws IllegalArgumentException if behaviour is not * one of the above */ public void setFocusLostBehavior(int behavior) { if (behavior != COMMIT ! && behavior != COMMIT_OR_REVERT ! && behavior != PERSIST ! && behavior != REVERT) throw new IllegalArgumentException("invalid behavior"); this.focusLostBehavior = behavior; *************** public class JFormattedTextField extends *** 556,577 **** /** * Sets the formatter for this JFormattedTextField. Normally the formatter * factory will take care of this, or calls to setValue will also make sure ! * that the formatter is set appropriately. ! * * @param formatter the AbstractFormatter to use for formatting the value for * this JFormattedTextField */ protected void setFormatter(AbstractFormatter formatter) { AbstractFormatter oldFormatter = null; ! oldFormatter = this.formatter; if (oldFormatter != null) oldFormatter.uninstall(); ! this.formatter = formatter; ! if (formatter != null) formatter.install(this); --- 556,577 ---- /** * Sets the formatter for this JFormattedTextField. Normally the formatter * factory will take care of this, or calls to setValue will also make sure ! * that the formatter is set appropriately. ! * * @param formatter the AbstractFormatter to use for formatting the value for * this JFormattedTextField */ protected void setFormatter(AbstractFormatter formatter) { AbstractFormatter oldFormatter = null; ! oldFormatter = this.formatter; if (oldFormatter != null) oldFormatter.uninstall(); ! this.formatter = formatter; ! if (formatter != null) formatter.install(this); *************** public class JFormattedTextField extends *** 579,587 **** } /** ! * Sets the factory from which this JFormattedTextField should obtain ! * its formatters. ! * * @param factory the AbstractFormatterFactory that will be used to generate * formatters for this JFormattedTextField */ --- 579,587 ---- } /** ! * Sets the factory from which this JFormattedTextField should obtain ! * its formatters. ! * * @param factory the AbstractFormatterFactory that will be used to generate * formatters for this JFormattedTextField */ *************** public class JFormattedTextField extends *** 589,599 **** { if (formatterFactory == factory) return; ! AbstractFormatterFactory oldFactory = formatterFactory; formatterFactory = factory; firePropertyChange("formatterFactory", oldFactory, factory); ! // Now set the formatter according to our new factory. if (formatterFactory != null) setFormatter(formatterFactory.getFormatter(this)); --- 589,599 ---- { if (formatterFactory == factory) return; ! AbstractFormatterFactory oldFactory = formatterFactory; formatterFactory = factory; firePropertyChange("formatterFactory", oldFactory, factory); ! // Now set the formatter according to our new factory. if (formatterFactory != null) setFormatter(formatterFactory.getFormatter(this)); *************** public class JFormattedTextField extends *** 603,609 **** /** * Sets the value that will be formatted and displayed. ! * * @param newValue the value to be formatted and displayed */ public void setValue(Object newValue) --- 603,609 ---- /** * Sets the value that will be formatted and displayed. ! * * @param newValue the value to be formatted and displayed */ public void setValue(Object newValue) *************** public class JFormattedTextField extends *** 613,623 **** Object oldValue = value; value = newValue; ! // If there is no formatterFactory then make one. if (formatterFactory == null) setFormatterFactory(createFormatterFactory(newValue)); ! // Set the formatter appropriately. This is because there may be a new // formatterFactory from the line above, or we may want a new formatter // depending on the type of newValue (or if newValue is null). --- 613,623 ---- Object oldValue = value; value = newValue; ! // If there is no formatterFactory then make one. if (formatterFactory == null) setFormatterFactory(createFormatterFactory(newValue)); ! // Set the formatter appropriately. This is because there may be a new // formatterFactory from the line above, or we may want a new formatter // depending on the type of newValue (or if newValue is null). *************** public class JFormattedTextField extends *** 626,632 **** } /** ! * A helper method that attempts to create a formatter factory that is * suitable to format objects of the type like value. * * @param value an object which should be formatted by the formatter factory. --- 626,632 ---- } /** ! * A helper method that attempts to create a formatter factory that is * suitable to format objects of the type like value. * * @param value an object which should be formatted by the formatter factory. *************** public class JFormattedTextField extends *** 642,648 **** else if (value instanceof Number) formatter = new NumberFormatter(); else ! formatter = new DefaultFormatter(); return new DefaultFormatterFactory(formatter); } } --- 642,648 ---- else if (value instanceof Number) formatter = new NumberFormatter(); else ! formatter = new DefaultFormatter(); return new DefaultFormatterFactory(formatter); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JFrame.java gcc-4.6.0/libjava/classpath/javax/swing/JFrame.java *** gcc-4.5.2/libjava/classpath/javax/swing/JFrame.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JFrame.java Tue Jan 11 19:46:05 2011 *************** import javax.accessibility.AccessibleCon *** 64,70 **** * * Also, unlike java.awt.Frames, JFrames support the * Swing Pluggable Look & Feel architecture. ! * * @author Ronald Veldema (rveldema@cs.vu.nl) */ public class JFrame extends Frame --- 64,70 ---- * * Also, unlike java.awt.Frames, JFrames support the * Swing Pluggable Look & Feel architecture. ! * * @author Ronald Veldema (rveldema@cs.vu.nl) */ public class JFrame extends Frame *************** public class JFrame extends Frame *** 100,106 **** private int closeAction = HIDE_ON_CLOSE; protected AccessibleContext accessibleContext; protected JRootPane rootPane; ! /** * @specnote rootPaneCheckingEnabled is false to comply with J2SE 5.0 */ --- 100,106 ---- private int closeAction = HIDE_ON_CLOSE; protected AccessibleContext accessibleContext; protected JRootPane rootPane; ! /** * @specnote rootPaneCheckingEnabled is false to comply with J2SE 5.0 */ *************** public class JFrame extends Frame *** 117,123 **** /** * Creates a new JFrame with the specified title. ! * * @param title the frame title (null permitted). */ public JFrame(String title) --- 117,123 ---- /** * Creates a new JFrame with the specified title. ! * * @param title the frame title (null permitted). */ public JFrame(String title) *************** public class JFrame extends Frame *** 307,313 **** } /** ! * Returns the object that provides accessibility features for this * JFrame. * * @return The accessible context (an instance of {@link AccessibleJFrame}). --- 307,313 ---- } /** ! * Returns the object that provides accessibility features for this * JFrame. * * @return The accessible context (an instance of {@link AccessibleJFrame}). *************** public class JFrame extends Frame *** 322,332 **** /** * Returns a code for the default operation when the frame is closed. The * default value is {@link WindowConstants#HIDE_ON_CLOSE}. ! * * @return One of: {@link WindowConstants#DO_NOTHING_ON_CLOSE}, ! * {@link WindowConstants#HIDE_ON_CLOSE}, * {@link WindowConstants#DISPOSE_ON_CLOSE}, {@link #EXIT_ON_CLOSE}. ! * * @see #setDefaultCloseOperation(int) */ public int getDefaultCloseOperation() --- 322,332 ---- /** * Returns a code for the default operation when the frame is closed. The * default value is {@link WindowConstants#HIDE_ON_CLOSE}. ! * * @return One of: {@link WindowConstants#DO_NOTHING_ON_CLOSE}, ! * {@link WindowConstants#HIDE_ON_CLOSE}, * {@link WindowConstants#DISPOSE_ON_CLOSE}, {@link #EXIT_ON_CLOSE}. ! * * @see #setDefaultCloseOperation(int) */ public int getDefaultCloseOperation() *************** public class JFrame extends Frame *** 336,344 **** /** * Returns a string describing the attributes for the JFrame, ! * for use in debugging. The return value is guaranteed to be * non-null, but the format may vary between implementations. ! * * @return A string describing the attributes of the JFrame. */ protected String paramString() --- 336,344 ---- /** * Returns a string describing the attributes for the JFrame, ! * for use in debugging. The return value is guaranteed to be * non-null, but the format may vary between implementations. ! * * @return A string describing the attributes of the JFrame. */ protected String paramString() *************** public class JFrame extends Frame *** 360,397 **** if (e.getID() == WindowEvent.WINDOW_CLOSING) { switch (closeAction) ! { ! case EXIT_ON_CLOSE: ! System.exit(0); ! break; ! case DISPOSE_ON_CLOSE: ! dispose(); ! break; ! case HIDE_ON_CLOSE: ! setVisible(false); ! break; ! case DO_NOTHING_ON_CLOSE: ! break; ! } } } /** * Sets the default operation that is performed when this frame is closed. ! * The default is HIDE_ON_CLOSE. When * EXIT_ON_CLOSE is specified this method calls * SecurityManager.checkExit(0) which might throw a * SecurityException. ! * ! * @param operation a code for the operation (one of: ! * {@link WindowConstants#DO_NOTHING_ON_CLOSE}, ! * {@link WindowConstants#HIDE_ON_CLOSE}, ! * {@link WindowConstants#DISPOSE_ON_CLOSE} and * {@link WindowConstants#EXIT_ON_CLOSE}). ! * * @throws IllegalArgumentException if operation is not one of * the specified codes. ! * * @see #getDefaultCloseOperation() */ public void setDefaultCloseOperation(int operation) --- 360,397 ---- if (e.getID() == WindowEvent.WINDOW_CLOSING) { switch (closeAction) ! { ! case EXIT_ON_CLOSE: ! System.exit(0); ! break; ! case DISPOSE_ON_CLOSE: ! dispose(); ! break; ! case HIDE_ON_CLOSE: ! setVisible(false); ! break; ! case DO_NOTHING_ON_CLOSE: ! break; ! } } } /** * Sets the default operation that is performed when this frame is closed. ! * The default is HIDE_ON_CLOSE. When * EXIT_ON_CLOSE is specified this method calls * SecurityManager.checkExit(0) which might throw a * SecurityException. ! * ! * @param operation a code for the operation (one of: ! * {@link WindowConstants#DO_NOTHING_ON_CLOSE}, ! * {@link WindowConstants#HIDE_ON_CLOSE}, ! * {@link WindowConstants#DISPOSE_ON_CLOSE} and * {@link WindowConstants#EXIT_ON_CLOSE}). ! * * @throws IllegalArgumentException if operation is not one of * the specified codes. ! * * @see #getDefaultCloseOperation() */ public void setDefaultCloseOperation(int operation) *************** public class JFrame extends Frame *** 402,408 **** if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE && operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE) ! throw new IllegalArgumentException("operation must be EXIT_ON_CLOSE, " + "HIDE_ON_CLOSE, DISPOSE_ON_CLOSE, or DO_NOTHING_ON_CLOSE"); closeAction = operation; --- 402,408 ---- if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE && operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE) ! throw new IllegalArgumentException("operation must be EXIT_ON_CLOSE, " + "HIDE_ON_CLOSE, DISPOSE_ON_CLOSE, or DO_NOTHING_ON_CLOSE"); closeAction = operation; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JInternalFrame.java gcc-4.6.0/libjava/classpath/javax/swing/JInternalFrame.java *** gcc-4.5.2/libjava/classpath/javax/swing/JInternalFrame.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JInternalFrame.java Tue Jan 11 19:46:05 2011 *************** public class JInternalFrame extends JCom *** 101,107 **** } /** ! * Returns the accessible role for the JInternalFrame * component. * * @return {@link AccessibleRole#INTERNAL_FRAME}. --- 101,107 ---- } /** ! * Returns the accessible role for the JInternalFrame * component. * * @return {@link AccessibleRole#INTERNAL_FRAME}. *************** public class JInternalFrame extends JCom *** 112,119 **** } /** ! * Returns an object that provides access to the current, minimum and ! * maximum values for the {@link JInternalFrame}. Since this class * implements {@link AccessibleValue}, it returns itself. * * @return The accessible value. --- 112,119 ---- } /** ! * Returns an object that provides access to the current, minimum and ! * maximum values for the {@link JInternalFrame}. Since this class * implements {@link AccessibleValue}, it returns itself. * * @return The accessible value. *************** public class JInternalFrame extends JCom *** 124,130 **** } /** ! * Returns the current layer for the {@link JInternalFrame} component, * as an {@link Integer}. * * @return The layer for the {@link JInternalFrame} component. --- 124,130 ---- } /** ! * Returns the current layer for the {@link JInternalFrame} component, * as an {@link Integer}. * * @return The layer for the {@link JInternalFrame} component. *************** public class JInternalFrame extends JCom *** 194,200 **** } /** ! * Returns the accessible role for the JDesktopIcon * component. * * @return {@link AccessibleRole#DESKTOP_ICON}. --- 194,200 ---- } /** ! * Returns the accessible role for the JDesktopIcon * component. * * @return {@link AccessibleRole#DESKTOP_ICON}. *************** public class JInternalFrame extends JCom *** 205,212 **** } /** ! * Returns an object that provides access to the current, minimum and ! * maximum values for the {@link JDesktopIcon}. Since this class * implements {@link AccessibleValue}, it returns itself. * * @return The accessible value. --- 205,212 ---- } /** ! * Returns an object that provides access to the current, minimum and ! * maximum values for the {@link JDesktopIcon}. Since this class * implements {@link AccessibleValue}, it returns itself. * * @return The accessible value. *************** public class JInternalFrame extends JCom *** 248,257 **** } /** ! * Sets the layer for the internal frame represented by this * JDesktopIcon component. * ! * @param n the layer (see the constants defined in * {@link JLayeredPane}). * * @return true if the value is set, and false --- 248,257 ---- } /** ! * Sets the layer for the internal frame represented by this * JDesktopIcon component. * ! * @param n the layer (see the constants defined in * {@link JLayeredPane}). * * @return true if the value is set, and false *************** public class JInternalFrame extends JCom *** 286,292 **** * Returns the object that provides accessibility features for this * JDesktopIcon component. * ! * @return The accessible context (an instance of * {@link AccessibleJDesktopIcon}). */ public AccessibleContext getAccessibleContext() --- 286,292 ---- * Returns the object that provides accessibility features for this * JDesktopIcon component. * ! * @return The accessible context (an instance of * {@link AccessibleJDesktopIcon}). */ public AccessibleContext getAccessibleContext() *************** public class JInternalFrame extends JCom *** 496,503 **** private transient boolean wasIcon = false; /** ! * Creates a new JInternalFrame object that has an empty string for its ! * title, and is non-resizable, non-maximizable, non-iconifiable, and * non-closable. */ public JInternalFrame() --- 496,503 ---- private transient boolean wasIcon = false; /** ! * Creates a new JInternalFrame object that has an empty string for its ! * title, and is non-resizable, non-maximizable, non-iconifiable, and * non-closable. */ public JInternalFrame() *************** public class JInternalFrame extends JCom *** 672,682 **** switch (getDefaultCloseOperation()) { case HIDE_ON_CLOSE: ! setVisible(false); ! break; case DISPOSE_ON_CLOSE: ! dispose(); ! break; } } --- 672,682 ---- switch (getDefaultCloseOperation()) { case HIDE_ON_CLOSE: ! setVisible(false); ! break; case DISPOSE_ON_CLOSE: ! dispose(); ! break; } } *************** public class JInternalFrame extends JCom *** 692,750 **** switch (id) { case InternalFrameEvent.INTERNAL_FRAME_CLOSING: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameClosing(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_ACTIVATED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameActivated(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_CLOSED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]).internalFrameClosed(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_DEACTIVATED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameDeactivated(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_DEICONIFIED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameDeiconified(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_ICONIFIED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameIconified(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_OPENED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]).internalFrameOpened(evt); ! } ! break; } } --- 692,750 ---- switch (id) { case InternalFrameEvent.INTERNAL_FRAME_CLOSING: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameClosing(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_ACTIVATED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameActivated(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_CLOSED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]).internalFrameClosed(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_DEACTIVATED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameDeactivated(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_DEICONIFIED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameDeiconified(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_ICONIFIED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]) ! .internalFrameIconified(evt); ! } ! break; case InternalFrameEvent.INTERNAL_FRAME_OPENED: ! for (int i = ifListeners.length - 2; i >= 0; i -= 2) ! { ! if (ifListeners[i] == InternalFrameListener.class) ! ((InternalFrameListener) ifListeners[i + 1]).internalFrameOpened(evt); ! } ! break; } } *************** public class JInternalFrame extends JCom *** 752,758 **** * Returns the object that provides accessibility features for this * JInternalFrame component. * ! * @return The accessible context (an instance of * {@link AccessibleJInternalFrame}). */ public AccessibleContext getAccessibleContext() --- 752,758 ---- * Returns the object that provides accessibility features for this * JInternalFrame component. * ! * @return The accessible context (an instance of * {@link AccessibleJInternalFrame}). */ public AccessibleContext getAccessibleContext() *************** public class JInternalFrame extends JCom *** 773,786 **** } /** ! * Returns a code for the default action taken when this * JInternalFrame is closed. * ! * @return The action code (usually one of ! * {@link WindowConstants#DO_NOTHING_ON_CLOSE}, ! * {@link WindowConstants#HIDE_ON_CLOSE}, or * {@link WindowConstants#DISPOSE_ON_CLOSE}). ! * * @see #setDefaultCloseOperation(int) * @see #doDefaultCloseAction() */ --- 773,786 ---- } /** ! * Returns a code for the default action taken when this * JInternalFrame is closed. * ! * @return The action code (usually one of ! * {@link WindowConstants#DO_NOTHING_ON_CLOSE}, ! * {@link WindowConstants#HIDE_ON_CLOSE}, or * {@link WindowConstants#DISPOSE_ON_CLOSE}). ! * * @see #setDefaultCloseOperation(int) * @see #doDefaultCloseAction() */ *************** public class JInternalFrame extends JCom *** 790,796 **** } /** ! * Returns the JDesktopIcon that represents this * JInternalFrame while it is iconified. * * @return The desktop icon component. --- 790,796 ---- } /** ! * Returns the JDesktopIcon that represents this * JInternalFrame while it is iconified. * * @return The desktop icon component. *************** public class JInternalFrame extends JCom *** 840,851 **** { if (isSelected()) { ! Component focus = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); ! if (SwingUtilities.isDescendingFrom(focus, this)) ! { ! defaultFocus = focus; ! return focus; ! } } return null; } --- 840,851 ---- { if (isSelected()) { ! Component focus = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); ! if (SwingUtilities.isDescendingFrom(focus, this)) ! { ! defaultFocus = focus; ! return focus; ! } } return null; } *************** public class JInternalFrame extends JCom *** 975,981 **** * Returns the frame's title. * * @return The frame's title (can be null). ! * * @see #setTitle(String) */ public String getTitle() --- 975,981 ---- * Returns the frame's title. * * @return The frame's title (can be null). ! * * @see #setTitle(String) */ public String getTitle() *************** public class JInternalFrame extends JCom *** 1161,1174 **** { try { ! if (isIcon()) ! setIcon(false); ! else if (isMaximum()) ! setMaximum(false); } catch (PropertyVetoException e) { ! // Do nothing if they don't want to be restored first. } setSize(getPreferredSize()); validate(); --- 1161,1174 ---- { try { ! if (isIcon()) ! setIcon(false); ! else if (isMaximum()) ! setMaximum(false); } catch (PropertyVetoException e) { ! // Do nothing if they don't want to be restored first. } setSize(getPreferredSize()); validate(); *************** public class JInternalFrame extends JCom *** 1186,1195 **** } /** ! * An implementation dependent string describing the current state of this * JInternalFrame instance. * ! * @return A string describing the current state of this * JInternalFrame instance. */ protected String paramString() --- 1186,1195 ---- } /** ! * An implementation dependent string describing the current state of this * JInternalFrame instance. * ! * @return A string describing the current state of this * JInternalFrame instance. */ protected String paramString() *************** public class JInternalFrame extends JCom *** 1300,1321 **** { if (c != getContentPane()) { ! Container old = getContentPane(); ! getRootPane().setContentPane(c); ! firePropertyChange(CONTENT_PANE_PROPERTY, old, c); } } /** ! * Sets a code for the action to be taken when this ! * JInternalFrame is closed. Note that no validation is ! * performed on the operation code, any integer will be * accepted (nevertheless, you should pass in one of the listed values). * ! * @param operation one of {@link WindowConstants#DO_NOTHING_ON_CLOSE}, ! * {@link WindowConstants#HIDE_ON_CLOSE} or * {@link WindowConstants#DISPOSE_ON_CLOSE}. ! * * @see #getDefaultCloseOperation() * @see #doDefaultCloseAction() */ --- 1300,1321 ---- { if (c != getContentPane()) { ! Container old = getContentPane(); ! getRootPane().setContentPane(c); ! firePropertyChange(CONTENT_PANE_PROPERTY, old, c); } } /** ! * Sets a code for the action to be taken when this ! * JInternalFrame is closed. Note that no validation is ! * performed on the operation code, any integer will be * accepted (nevertheless, you should pass in one of the listed values). * ! * @param operation one of {@link WindowConstants#DO_NOTHING_ON_CLOSE}, ! * {@link WindowConstants#HIDE_ON_CLOSE} or * {@link WindowConstants#DISPOSE_ON_CLOSE}. ! * * @see #getDefaultCloseOperation() * @see #doDefaultCloseAction() */ *************** public class JInternalFrame extends JCom *** 1329,1342 **** } /** ! * Sets the JDesktopIcon instance that represents this * JInternalFrame while it is iconified and, if the new icon is ! * not the same instance as the existing icon, sends a ! * {@link PropertyChangeEvent} (with the property name * "desktopIcon") to all registered listeners.. * * @param d the icon. ! * * @see #getDesktopIcon() */ public void setDesktopIcon(JDesktopIcon d) --- 1329,1342 ---- } /** ! * Sets the JDesktopIcon instance that represents this * JInternalFrame while it is iconified and, if the new icon is ! * not the same instance as the existing icon, sends a ! * {@link PropertyChangeEvent} (with the property name * "desktopIcon") to all registered listeners.. * * @param d the icon. ! * * @see #getDesktopIcon() */ public void setDesktopIcon(JDesktopIcon d) *************** public class JInternalFrame extends JCom *** 1374,1382 **** { if (icon != frameIcon) { ! Icon old = frameIcon; ! frameIcon = icon; ! firePropertyChange(FRAME_ICON_PROPERTY, old, frameIcon); } } --- 1374,1382 ---- { if (icon != frameIcon) { ! Icon old = frameIcon; ! frameIcon = icon; ! firePropertyChange(FRAME_ICON_PROPERTY, old, frameIcon); } } *************** public class JInternalFrame extends JCom *** 1389,1397 **** { if (glass != getGlassPane()) { ! Component old = getGlassPane(); ! getRootPane().setGlassPane(glass); ! firePropertyChange(GLASS_PANE_PROPERTY, old, glass); } } --- 1389,1397 ---- { if (glass != getGlassPane()) { ! Component old = getGlassPane(); ! getRootPane().setGlassPane(glass); ! firePropertyChange(GLASS_PANE_PROPERTY, old, glass); } } *************** public class JInternalFrame extends JCom *** 1409,1423 **** { if (b != isIcon()) { ! fireVetoableChange(IS_ICON_PROPERTY, b, isIcon); ! isIcon = b; ! firePropertyChange(IS_ICON_PROPERTY, ! isIcon, isIcon); ! if (b) ! fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_ICONIFIED); ! else ! fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_DEICONIFIED); } } --- 1409,1423 ---- { if (b != isIcon()) { ! fireVetoableChange(IS_ICON_PROPERTY, b, isIcon); ! isIcon = b; ! firePropertyChange(IS_ICON_PROPERTY, ! isIcon, isIcon); ! if (b) ! fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_ICONIFIED); ! else ! fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_DEICONIFIED); } } *************** public class JInternalFrame extends JCom *** 1496,1504 **** if (layered != getLayeredPane()) { ! JLayeredPane old = getLayeredPane(); ! getRootPane().setLayeredPane(layered); ! firePropertyChange(LAYERED_PANE_PROPERTY, old, layered); } } --- 1496,1504 ---- if (layered != getLayeredPane()) { ! JLayeredPane old = getLayeredPane(); ! getRootPane().setLayeredPane(layered); ! firePropertyChange(LAYERED_PANE_PROPERTY, old, layered); } } *************** public class JInternalFrame extends JCom *** 1549,1557 **** { if (b != isMaximum) { ! fireVetoableChange(IS_MAXIMUM_PROPERTY, isMaximum, b); ! isMaximum = b; ! firePropertyChange(IS_MAXIMUM_PROPERTY, ! isMaximum, isMaximum); } } --- 1549,1557 ---- { if (b != isMaximum) { ! fireVetoableChange(IS_MAXIMUM_PROPERTY, isMaximum, b); ! isMaximum = b; ! firePropertyChange(IS_MAXIMUM_PROPERTY, ! isMaximum, isMaximum); } } *************** public class JInternalFrame extends JCom *** 1673,1684 **** } /** ! * Sets the title for the JInternalFrame and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link #TITLE_PROPERTY}) to all registered listeners. * * @param title the new title (null permitted). ! * * @see #getTitle() */ public void setTitle(String title) --- 1673,1684 ---- } /** ! * Sets the title for the JInternalFrame and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link #TITLE_PROPERTY}) to all registered listeners. * * @param title the new title (null permitted). ! * * @see #getTitle() */ public void setTitle(String title) *************** public class JInternalFrame extends JCom *** 1767,1773 **** // We must go into the init stage when updating the UI, so the UI can // set layout and components directly on the internal frame, not its // content pane. ! boolean old = isRootPaneCheckingEnabled(); setRootPaneCheckingEnabled(false); setUI((InternalFrameUI) UIManager.getUI(this)); setRootPaneCheckingEnabled(old); --- 1767,1773 ---- // We must go into the init stage when updating the UI, so the UI can // set layout and components directly on the internal frame, not its // content pane. ! boolean old = isRootPaneCheckingEnabled(); setRootPaneCheckingEnabled(false); setUI((InternalFrameUI) UIManager.getUI(this)); setRootPaneCheckingEnabled(old); *************** public class JInternalFrame extends JCom *** 1785,1792 **** { if (b && ! wasIcon) { ! wasIcon = b; ! firePropertyChange(ID, ! b, b); } } --- 1785,1792 ---- { if (b && ! wasIcon) { ! wasIcon = b; ! firePropertyChange(ID, ! b, b); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JLabel.java gcc-4.6.0/libjava/classpath/javax/swing/JLabel.java *** gcc-4.5.2/libjava/classpath/javax/swing/JLabel.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JLabel.java Tue Jan 11 19:46:05 2011 *************** public class JLabel extends JComponent i *** 78,87 **** extends JComponent.AccessibleJComponent implements AccessibleText, AccessibleExtendedComponent { ! /** * Returns the accessible name. ! * * @return The accessible name. */ public String getAccessibleName() --- 78,87 ---- extends JComponent.AccessibleJComponent implements AccessibleText, AccessibleExtendedComponent { ! /** * Returns the accessible name. ! * * @return The accessible name. */ public String getAccessibleName() *************** public class JLabel extends JComponent i *** 93,99 **** else return super.getAccessibleName(); } ! /** * Returns the accessible role for the JLabel component. * --- 93,99 ---- else return super.getAccessibleName(); } ! /** * Returns the accessible role for the JLabel component. * *************** public class JLabel extends JComponent i *** 103,109 **** { return AccessibleRole.LABEL; } ! /** * Returns the selected text. This is null since JLabels * are not selectable. --- 103,109 ---- { return AccessibleRole.LABEL; } ! /** * Returns the selected text. This is null since JLabels * are not selectable. *************** public class JLabel extends JComponent i *** 456,462 **** } /** ! * Creates a new horizontally leading and vertically centered JLabel * object with no icon and the given text. * * @param text The text to use with the label, null permitted. --- 456,462 ---- } /** ! * Creates a new horizontally leading and vertically centered JLabel * object with no icon and the given text. * * @param text The text to use with the label, null permitted. *************** public class JLabel extends JComponent i *** 492,504 **** */ public JLabel(String text, Icon icon, int horizontalAlignment) { ! if (horizontalAlignment != SwingConstants.LEFT ! && horizontalAlignment != SwingConstants.RIGHT ! && horizontalAlignment != SwingConstants.CENTER ! && horizontalAlignment != SwingConstants.LEADING && horizontalAlignment != SwingConstants.TRAILING) throw new IllegalArgumentException(); ! this.text = text; this.icon = icon; this.horizontalAlignment = horizontalAlignment; --- 492,504 ---- */ public JLabel(String text, Icon icon, int horizontalAlignment) { ! if (horizontalAlignment != SwingConstants.LEFT ! && horizontalAlignment != SwingConstants.RIGHT ! && horizontalAlignment != SwingConstants.CENTER ! && horizontalAlignment != SwingConstants.LEADING && horizontalAlignment != SwingConstants.TRAILING) throw new IllegalArgumentException(); ! this.text = text; this.icon = icon; this.horizontalAlignment = horizontalAlignment; *************** public class JLabel extends JComponent i *** 528,534 **** } /** ! * Resets the label's UI delegate to the default UI for the current look and * feel. */ public void updateUI() --- 528,534 ---- } /** ! * Resets the label's UI delegate to the default UI for the current look and * feel. */ public void updateUI() *************** public class JLabel extends JComponent i *** 549,555 **** /** * Returns a string describing the attributes for the JLabel ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * --- 549,555 ---- /** * Returns a string describing the attributes for the JLabel ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * *************** public class JLabel extends JComponent i *** 590,596 **** * Returns the text displayed by the label. * * @return The label text (possibly null). ! * * @see #setText(String) */ public String getText() --- 590,596 ---- * Returns the text displayed by the label. * * @return The label text (possibly null). ! * * @see #setText(String) */ public String getText() *************** public class JLabel extends JComponent i *** 600,610 **** /** * Sets the text for the label and sends a {@link PropertyChangeEvent} (with ! * the name 'text') to all registered listeners. This method will also * update the displayedMnemonicIndex, if necessary. * * @param newText The text (null permitted). ! * * @see #getText() * @see #getDisplayedMnemonicIndex() */ --- 600,610 ---- /** * Sets the text for the label and sends a {@link PropertyChangeEvent} (with ! * the name 'text') to all registered listeners. This method will also * update the displayedMnemonicIndex, if necessary. * * @param newText The text (null permitted). ! * * @see #getText() * @see #getDisplayedMnemonicIndex() */ *************** public class JLabel extends JComponent i *** 628,638 **** } /** ! * Returns the active icon. The active icon is painted when the label is * enabled. * * @return The active icon. ! * * @see #setIcon(Icon) * @see #getDisabledIcon() */ --- 628,638 ---- } /** ! * Returns the active icon. The active icon is painted when the label is * enabled. * * @return The active icon. ! * * @see #setIcon(Icon) * @see #getDisabledIcon() */ *************** public class JLabel extends JComponent i *** 642,652 **** } /** ! * Sets the icon for the label (this is a bound property with the name * 'icon'). This icon will be displayed when the label is enabled. * * @param newIcon The icon (null permitted). ! * * @see #getIcon() * @see #setDisabledIcon(Icon) */ --- 642,652 ---- } /** ! * Sets the icon for the label (this is a bound property with the name * 'icon'). This icon will be displayed when the label is enabled. * * @param newIcon The icon (null permitted). ! * * @see #getIcon() * @see #setDisabledIcon(Icon) */ *************** public class JLabel extends JComponent i *** 662,674 **** } /** ! * Returns the disabled icon. The disabled icon is painted when the label is * disabled. If the disabled icon is null and the active icon ! * is an {@link ImageIcon}, this method returns a grayed version of the icon. * The grayed version of the icon becomes the disabledIcon. * * @return The disabled icon. ! * * @see #setDisabledIcon(Icon) */ public Icon getDisabledIcon() --- 662,674 ---- } /** ! * Returns the disabled icon. The disabled icon is painted when the label is * disabled. If the disabled icon is null and the active icon ! * is an {@link ImageIcon}, this method returns a grayed version of the icon. * The grayed version of the icon becomes the disabledIcon. * * @return The disabled icon. ! * * @see #setDisabledIcon(Icon) */ public Icon getDisabledIcon() *************** public class JLabel extends JComponent i *** 685,691 **** * property with the name 'disabledIcon'). * * @param newIcon The disabled icon (null permitted). ! * * @see #getDisabledIcon() */ public void setDisabledIcon(Icon newIcon) --- 685,691 ---- * property with the name 'disabledIcon'). * * @param newIcon The disabled icon (null permitted). ! * * @see #getDisabledIcon() */ public void setDisabledIcon(Icon newIcon) *************** public class JLabel extends JComponent i *** 700,711 **** /** * Sets the keycode that will be the label's mnemonic (this is a bound ! * property with the name 'displayedMnemonic'). If the label is used as a ! * label for another component, the label will give focus to that component * when the mnemonic is activated. * * @param mnemonic The keycode to use for the mnemonic. ! * * @see #getDisplayedMnemonic() */ public void setDisplayedMnemonic(int mnemonic) --- 700,711 ---- /** * Sets the keycode that will be the label's mnemonic (this is a bound ! * property with the name 'displayedMnemonic'). If the label is used as a ! * label for another component, the label will give focus to that component * when the mnemonic is activated. * * @param mnemonic The keycode to use for the mnemonic. ! * * @see #getDisplayedMnemonic() */ public void setDisplayedMnemonic(int mnemonic) *************** public class JLabel extends JComponent i *** 727,733 **** * * @param mnemonic The character to use for the mnemonic (this will be * converted to the equivalent upper case character). ! * * @see #getDisplayedMnemonic() */ public void setDisplayedMnemonic(char mnemonic) --- 727,733 ---- * * @param mnemonic The character to use for the mnemonic (this will be * converted to the equivalent upper case character). ! * * @see #getDisplayedMnemonic() */ public void setDisplayedMnemonic(char mnemonic) *************** public class JLabel extends JComponent i *** 739,745 **** * Returns the keycode that is used for the label's mnemonic. * * @return The keycode that is used for the label's mnemonic. ! * * @see #setDisplayedMnemonic(int) */ public int getDisplayedMnemonic() --- 739,745 ---- * Returns the keycode that is used for the label's mnemonic. * * @return The keycode that is used for the label's mnemonic. ! * * @see #setDisplayedMnemonic(int) */ public int getDisplayedMnemonic() *************** public class JLabel extends JComponent i *** 755,761 **** * character 'n', you might wish to underline the second occurrence of 'n' * rather than the first (which is the default). *

                                            ! * Note that this method does not validate the character at the specified * index to ensure that it matches the key code returned by * {@link #getDisplayedMnemonic()}. * --- 755,761 ---- * character 'n', you might wish to underline the second occurrence of 'n' * rather than the first (which is the default). *

                                            ! * Note that this method does not validate the character at the specified * index to ensure that it matches the key code returned by * {@link #getDisplayedMnemonic()}. * *************** public class JLabel extends JComponent i *** 763,769 **** * * @throws IllegalArgumentException If index less than -1 or index is greater * than or equal to the label length. ! * * @see #getDisplayedMnemonicIndex() * @since 1.4 */ --- 763,769 ---- * * @throws IllegalArgumentException If index less than -1 or index is greater * than or equal to the label length. ! * * @see #getDisplayedMnemonicIndex() * @since 1.4 */ *************** public class JLabel extends JComponent i *** 790,796 **** * character is to be underlined. * * @return The index of the character that will be underlined. ! * * @see #setDisplayedMnemonicIndex(int) * @since 1.4 */ --- 790,796 ---- * character is to be underlined. * * @return The index of the character that will be underlined. ! * * @see #setDisplayedMnemonicIndex(int) * @since 1.4 */ *************** public class JLabel extends JComponent i *** 800,808 **** } /** ! * Checks the specified key to ensure that it is valid as a horizontal * alignment, throwing an {@link IllegalArgumentException} if the key is ! * invalid. Valid keys are {@link #LEFT}, {@link #CENTER}, {@link #RIGHT}, * {@link #LEADING} and {@link #TRAILING}. * * @param key The key to check. --- 800,808 ---- } /** ! * Checks the specified key to ensure that it is valid as a horizontal * alignment, throwing an {@link IllegalArgumentException} if the key is ! * invalid. Valid keys are {@link #LEFT}, {@link #CENTER}, {@link #RIGHT}, * {@link #LEADING} and {@link #TRAILING}. * * @param key The key to check. *************** public class JLabel extends JComponent i *** 823,829 **** } /** ! * Checks the specified key to ensure that it is valid as a vertical * alignment, throwing an {@link IllegalArgumentException} if the key is * invalid. Valid keys are {@link #TOP}, {@link #CENTER} and {@link #BOTTOM}. * --- 823,829 ---- } /** ! * Checks the specified key to ensure that it is valid as a vertical * alignment, throwing an {@link IllegalArgumentException} if the key is * invalid. Valid keys are {@link #TOP}, {@link #CENTER} and {@link #BOTTOM}. * *************** public class JLabel extends JComponent i *** 847,853 **** * Returns the gap between the icon and the text. * * @return The gap between the icon and the text. ! * * @see #setIconTextGap(int) */ public int getIconTextGap() --- 847,853 ---- * Returns the gap between the icon and the text. * * @return The gap between the icon and the text. ! * * @see #setIconTextGap(int) */ public int getIconTextGap() *************** public class JLabel extends JComponent i *** 856,874 **** } /** ! * Sets the gap between the icon and the text, in the case that both are ! * visible (this is a bound property with the name 'iconTextGap'). * * @param newGap The gap (in pixels). ! * * @see #getIconTextGap() */ public void setIconTextGap(int newGap) { if (iconTextGap != newGap) { ! firePropertyChange("iconTextGap", iconTextGap, newGap); ! iconTextGap = newGap; } } --- 856,874 ---- } /** ! * Sets the gap between the icon and the text, in the case that both are ! * visible (this is a bound property with the name 'iconTextGap'). * * @param newGap The gap (in pixels). ! * * @see #getIconTextGap() */ public void setIconTextGap(int newGap) { if (iconTextGap != newGap) { ! firePropertyChange("iconTextGap", iconTextGap, newGap); ! iconTextGap = newGap; } } *************** public class JLabel extends JComponent i *** 878,884 **** * depends on the installed look and feel, but is usually {@link #CENTER}. * * @return The vertical alignment. ! * * @see #setVerticalAlignment(int) */ public int getVerticalAlignment() --- 878,884 ---- * depends on the installed look and feel, but is usually {@link #CENTER}. * * @return The vertical alignment. ! * * @see #setVerticalAlignment(int) */ public int getVerticalAlignment() *************** public class JLabel extends JComponent i *** 888,903 **** /** * Sets the vertical alignment for the label (this is a bound property with ! * the name 'verticalAlignment'). The vertical alignment determines where ! * the label (icon and text) will be placed vertically within the component ! * bounds. Valid alignment codes are {@link #TOP}, {@link #CENTER} and * {@link #BOTTOM}. * * @param alignment The vertical alignment of the label. ! * ! * @throws IllegalArgumentException if alignment is not one of * the specified values. ! * * @see #getVerticalAlignment() */ public void setVerticalAlignment(int alignment) --- 888,903 ---- /** * Sets the vertical alignment for the label (this is a bound property with ! * the name 'verticalAlignment'). The vertical alignment determines where ! * the label (icon and text) will be placed vertically within the component ! * bounds. Valid alignment codes are {@link #TOP}, {@link #CENTER} and * {@link #BOTTOM}. * * @param alignment The vertical alignment of the label. ! * ! * @throws IllegalArgumentException if alignment is not one of * the specified values. ! * * @see #getVerticalAlignment() */ public void setVerticalAlignment(int alignment) *************** public class JLabel extends JComponent i *** 911,923 **** } /** ! * Returns the horizontal alignment of the label (one of {@link #LEFT}, * {@link #CENTER}, {@link #RIGHT}, {@link #LEADING} and {@link #TRAILING}). ! * The default value depends on the installed look and feel, but is usually * {@link #LEFT}. * * @return The horizontal alignment. ! * * @see #setHorizontalAlignment(int) */ public int getHorizontalAlignment() --- 911,923 ---- } /** ! * Returns the horizontal alignment of the label (one of {@link #LEFT}, * {@link #CENTER}, {@link #RIGHT}, {@link #LEADING} and {@link #TRAILING}). ! * The default value depends on the installed look and feel, but is usually * {@link #LEFT}. * * @return The horizontal alignment. ! * * @see #setHorizontalAlignment(int) */ public int getHorizontalAlignment() *************** public class JLabel extends JComponent i *** 927,949 **** /** * Sets the horizontal alignment for the label (this is a bound property with ! * the name 'horizontalAlignment'). The horizontal alignment determines where ! * the label (icon and text) will be placed horizontally within the ! * component bounds. Valid alignment codes are {@link #LEFT}, * {@link #CENTER}, {@link #RIGHT}, {@link #LEADING} and {@link #TRAILING}. * * @param alignment The horizontal alignment of the label. ! * ! * @throws IllegalArgumentException if alignment is not one of * the specified values. ! * * @see #getHorizontalAlignment() */ public void setHorizontalAlignment(int alignment) { if (horizontalAlignment == alignment) return; ! int oldAlignment = horizontalAlignment; horizontalAlignment = checkHorizontalKey(alignment, "horizontalAlignment"); firePropertyChange("horizontalAlignment", oldAlignment, --- 927,949 ---- /** * Sets the horizontal alignment for the label (this is a bound property with ! * the name 'horizontalAlignment'). The horizontal alignment determines where ! * the label (icon and text) will be placed horizontally within the ! * component bounds. Valid alignment codes are {@link #LEFT}, * {@link #CENTER}, {@link #RIGHT}, {@link #LEADING} and {@link #TRAILING}. * * @param alignment The horizontal alignment of the label. ! * ! * @throws IllegalArgumentException if alignment is not one of * the specified values. ! * * @see #getHorizontalAlignment() */ public void setHorizontalAlignment(int alignment) { if (horizontalAlignment == alignment) return; ! int oldAlignment = horizontalAlignment; horizontalAlignment = checkHorizontalKey(alignment, "horizontalAlignment"); firePropertyChange("horizontalAlignment", oldAlignment, *************** public class JLabel extends JComponent i *** 951,961 **** } /** ! * Returns the vertical position of the label's text relative to the icon. * This will be one of {@link #TOP}, {@link #CENTER} and {@link #BOTTOM}. ! * * @return The vertical position of the label's text relative to the icon. ! * * @see #setVerticalTextPosition(int) */ public int getVerticalTextPosition() --- 951,961 ---- } /** ! * Returns the vertical position of the label's text relative to the icon. * This will be one of {@link #TOP}, {@link #CENTER} and {@link #BOTTOM}. ! * * @return The vertical position of the label's text relative to the icon. ! * * @see #setVerticalTextPosition(int) */ public int getVerticalTextPosition() *************** public class JLabel extends JComponent i *** 965,975 **** /** * Sets the vertical position of the label's text relative to the icon (this ! * is a bound property with the name 'verticalTextPosition'). Valid * positions are {@link #TOP}, {@link #CENTER} and {@link #BOTTOM}. * * @param textPosition The vertical text position. ! * * @throws IllegalArgumentException if textPosition is not one * of the specified values. */ --- 965,975 ---- /** * Sets the vertical position of the label's text relative to the icon (this ! * is a bound property with the name 'verticalTextPosition'). Valid * positions are {@link #TOP}, {@link #CENTER} and {@link #BOTTOM}. * * @param textPosition The vertical text position. ! * * @throws IllegalArgumentException if textPosition is not one * of the specified values. */ *************** public class JLabel extends JComponent i *** 979,997 **** { int oldPos = verticalTextPosition; verticalTextPosition = checkVerticalKey(textPosition, ! "verticalTextPosition"); ! firePropertyChange("verticalTextPosition", oldPos, verticalTextPosition); } } /** ! * Returns the horizontal position of the label's text relative to the icon. ! * This will be one of {@link #LEFT}, {@link #CENTER}, {@link #RIGHT}, * {@link #LEADING} and {@link #TRAILING}. ! * * @return The horizontal position of the label's text relative to the icon. ! * * @see #setHorizontalTextPosition(int) */ public int getHorizontalTextPosition() --- 979,997 ---- { int oldPos = verticalTextPosition; verticalTextPosition = checkVerticalKey(textPosition, ! "verticalTextPosition"); ! firePropertyChange("verticalTextPosition", oldPos, verticalTextPosition); } } /** ! * Returns the horizontal position of the label's text relative to the icon. ! * This will be one of {@link #LEFT}, {@link #CENTER}, {@link #RIGHT}, * {@link #LEADING} and {@link #TRAILING}. ! * * @return The horizontal position of the label's text relative to the icon. ! * * @see #setHorizontalTextPosition(int) */ public int getHorizontalTextPosition() *************** public class JLabel extends JComponent i *** 1001,1012 **** /** * Sets the horizontal position of the label's text relative to the icon (this ! * is a bound property with the name 'horizontalTextPosition'). Valid ! * positions are {@link #LEFT}, {@link #CENTER}, {@link #RIGHT}, * {@link #LEADING} and {@link #TRAILING}. * * @param textPosition The horizontal text position. ! * * @throws IllegalArgumentException if textPosition is not one * of the specified values. */ --- 1001,1012 ---- /** * Sets the horizontal position of the label's text relative to the icon (this ! * is a bound property with the name 'horizontalTextPosition'). Valid ! * positions are {@link #LEFT}, {@link #CENTER}, {@link #RIGHT}, * {@link #LEADING} and {@link #TRAILING}. * * @param textPosition The horizontal text position. ! * * @throws IllegalArgumentException if textPosition is not one * of the specified values. */ *************** public class JLabel extends JComponent i *** 1017,1029 **** int oldPos = horizontalTextPosition; horizontalTextPosition = checkHorizontalKey(textPosition, "horizontalTextPosition"); ! firePropertyChange("horizontalTextPosition", oldPos, horizontalTextPosition); } } /** ! * Returns false if the current icon image (current icon will depend on * whether the label is enabled) is not equal to the passed in image. * * @param img The image to check. --- 1017,1029 ---- int oldPos = horizontalTextPosition; horizontalTextPosition = checkHorizontalKey(textPosition, "horizontalTextPosition"); ! firePropertyChange("horizontalTextPosition", oldPos, horizontalTextPosition); } } /** ! * Returns false if the current icon image (current icon will depend on * whether the label is enabled) is not equal to the passed in image. * * @param img The image to check. *************** public class JLabel extends JComponent i *** 1050,1056 **** /** * Returns the component that this JLabel is providing the label ! * for. This component will typically receive the focus when the label's * mnemonic key is activated via the keyboard. * * @return The component (possibly null). --- 1050,1056 ---- /** * Returns the component that this JLabel is providing the label ! * for. This component will typically receive the focus when the label's * mnemonic key is activated via the keyboard. * * @return The component (possibly null). *************** public class JLabel extends JComponent i *** 1063,1073 **** /** * Sets the component that this JLabel is providing the label * for (this is a bound property with the name 'labelFor'). This component ! * will typically receive the focus when the label's mnemonic key is * activated via the keyboard. * * @param c the component (null permitted). ! * * @see #getLabelFor() */ public void setLabelFor(Component c) --- 1063,1073 ---- /** * Sets the component that this JLabel is providing the label * for (this is a bound property with the name 'labelFor'). This component ! * will typically receive the focus when the label's mnemonic key is * activated via the keyboard. * * @param c the component (null permitted). ! * * @see #getLabelFor() */ public void setLabelFor(Component c) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JLayeredPane.java gcc-4.6.0/libjava/classpath/javax/swing/JLayeredPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JLayeredPane.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JLayeredPane.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JLayeredPane.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JLayeredPane.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.accessibility.AccessibleRol *** 85,91 **** *

                                            * *

                                            To change the layer of a component that is already a child of ! * a JLayeredPane, use the {@link #setLayer(Component, int)} * method.

                                            * *

                                            The purpose of this class is to translate this view of "layers" into a --- 85,91 ---- *

                                            * *

                                            To change the layer of a component that is already a child of ! * a JLayeredPane, use the {@link #setLayer(Component, int)} * method.

                                            * *

                                            The purpose of this class is to translate this view of "layers" into a *************** import javax.accessibility.AccessibleRol *** 94,102 **** * *

                                            There is a precise set of words we will use to refer to numbers within * this class:

                                            ! * *
                                            ! *
                                            Component Index:
                                            *
                                            An offset into the component array held in our ancestor, * {@link java.awt.Container}, from [0 .. component.length). The drawing * rule with indices is that 0 is drawn last.
                                            --- 94,102 ---- * *

                                            There is a precise set of words we will use to refer to numbers within * this class:

                                            ! * *
                                            ! *
                                            Component Index:
                                            *
                                            An offset into the component array held in our ancestor, * {@link java.awt.Container}, from [0 .. component.length). The drawing * rule with indices is that 0 is drawn last.
                                            *************** import javax.accessibility.AccessibleRol *** 106,112 **** * numbers are drawn first, then layer 0, then positive numbered layers, in * ascending order. * ! *
                                            Position:
                                            *
                                            An offset into a layer's "logical drawing order". Layer position 0 * is drawn last. Layer position -1 is a synonym for the first layer * position (the logical "bottom").
                                            --- 106,112 ---- * numbers are drawn first, then layer 0, then positive numbered layers, in * ascending order. * ! *
                                            Position:
                                            *
                                            An offset into a layer's "logical drawing order". Layer position 0 * is drawn last. Layer position -1 is a synonym for the first layer * position (the logical "bottom").
                                            *************** import javax.accessibility.AccessibleRol *** 120,126 **** */ public class JLayeredPane extends JComponent implements Accessible { ! /** * Provides accessibility support for JLayeredPane. */ --- 120,126 ---- */ public class JLayeredPane extends JComponent implements Accessible { ! /** * Provides accessibility support for JLayeredPane. */ *************** public class JLayeredPane extends JCompo *** 136,142 **** /** * Returns the accessble role of JLayeredPane, ! * {@link AccessibleRole#LAYERED_PANE}. */ public AccessibleRole getAccessibleRole() { --- 136,142 ---- /** * Returns the accessble role of JLayeredPane, ! * {@link AccessibleRole#LAYERED_PANE}. */ public AccessibleRole getAccessibleRole() { *************** public class JLayeredPane extends JCompo *** 145,151 **** } private static final long serialVersionUID = 5534920399324590459L; ! public static final String LAYER_PROPERTY = "layeredContainerLayer"; public static final Integer FRAME_CONTENT_LAYER = new Integer(-30000); --- 145,151 ---- } private static final long serialVersionUID = 5534920399324590459L; ! public static final String LAYER_PROPERTY = "layeredContainerLayer"; public static final Integer FRAME_CONTENT_LAYER = new Integer(-30000); *************** public class JLayeredPane extends JCompo *** 164,170 **** setLayout(null); } ! /** * Looks up the layer a child component is currently assigned to. * * If c is an instance of {@link JComponent}, then the layer --- 164,170 ---- setLayout(null); } ! /** * Looks up the layer a child component is currently assigned to. * * If c is an instance of {@link JComponent}, then the layer *************** public class JLayeredPane extends JCompo *** 199,205 **** * Looks up the layer in the client property with the key * {@link #LAYER_PROPERTY} of comp. If no such property can be * found, we return 0 ({@link #DEFAULT_LAYER}). ! * * @param comp the component for which the layer is looked up * * @return the layer of comp as stored in the corresponding --- 199,205 ---- * Looks up the layer in the client property with the key * {@link #LAYER_PROPERTY} of comp. If no such property can be * found, we return 0 ({@link #DEFAULT_LAYER}). ! * * @param comp the component for which the layer is looked up * * @return the layer of comp as stored in the corresponding *************** public class JLayeredPane extends JCompo *** 313,319 **** /** * Return the position of a component within its layer. Positions are assigned ! * from the "front" (position 0) to the "back" (position N-1), and drawn from * the back towards the front. * * @param c the component to get the position of --- 313,319 ---- /** * Return the position of a component within its layer. Positions are assigned ! * from the "front" (position 0) to the "back" (position N-1), and drawn from * the back towards the front. * * @param c the component to get the position of *************** public class JLayeredPane extends JCompo *** 344,350 **** /** * Change the position of a component within its layer. Positions are assigned ! * from the "front" (position 0) to the "back" (position N-1), and drawn from * the back towards the front. * * @param c the component to change the position of --- 344,350 ---- /** * Change the position of a component within its layer. Positions are assigned ! * from the "front" (position 0) to the "back" (position N-1), and drawn from * the back towards the front. * * @param c the component to change the position of *************** public class JLayeredPane extends JCompo *** 356,362 **** { setLayer(c, getLayer(c), position); } ! /** * Return an array of all components within a layer of this * container. Components are ordered front-to-back, with the "front" --- 356,362 ---- { setLayer(c, getLayer(c), position); } ! /** * Return an array of all components within a layer of this * container. Components are ordered front-to-back, with the "front" *************** public class JLayeredPane extends JCompo *** 420,428 **** * @param c the component to look up. * * @return the external index of the component or -1 if ! * c is not a child of this layered pane */ ! public int getIndexOf(Component c) { return getComponentZOrder(c); } --- 420,428 ---- * @param c the component to look up. * * @return the external index of the component or -1 if ! * c is not a child of this layered pane */ ! public int getIndexOf(Component c) { return getComponentZOrder(c); } *************** public class JLayeredPane extends JCompo *** 439,466 **** protected Integer getObjectForLayer(int layer) { switch (layer) ! { ! case -30000: return FRAME_CONTENT_LAYER; ! case 0: return DEFAULT_LAYER; ! case 100: return PALETTE_LAYER; ! case 200: return MODAL_LAYER; ! case 300: return POPUP_LAYER; ! case 400: return DRAG_LAYER; ! default: break; ! } return new Integer(layer); } --- 439,466 ---- protected Integer getObjectForLayer(int layer) { switch (layer) ! { ! case -30000: return FRAME_CONTENT_LAYER; ! case 0: return DEFAULT_LAYER; ! case 100: return PALETTE_LAYER; ! case 200: return MODAL_LAYER; ! case 300: return POPUP_LAYER; ! case 400: return DRAG_LAYER; ! default: break; ! } return new Integer(layer); } *************** public class JLayeredPane extends JCompo *** 579,586 **** */ public void removeAll() { ! componentToLayer.clear(); ! super.removeAll(); } /** --- 579,586 ---- */ public void removeAll() { ! componentToLayer.clear(); ! super.removeAll(); } /** *************** public class JLayeredPane extends JCompo *** 650,656 **** * component to * @param index the position within the layer */ ! protected void addImpl(Component comp, Object layerConstraint, int index) { int layer; if (layerConstraint != null && layerConstraint instanceof Integer) --- 650,656 ---- * component to * @param index the position within the layer */ ! protected void addImpl(Component comp, Object layerConstraint, int index) { int layer; if (layerConstraint != null && layerConstraint instanceof Integer) *************** public class JLayeredPane extends JCompo *** 726,739 **** boolean result = true; for (int i = 0; i < numChildren; ++i) { ! Component c1 = getComponent(i); ! if (! c1.isVisible()) continue; ! Rectangle r1 = c1.getBounds(); ! if (r1.isEmpty()) continue; ! for (int j = i + 1; j < numChildren; ++j) { Component c2 = getComponent(j); if (! c2.isVisible()) --- 726,739 ---- boolean result = true; for (int i = 0; i < numChildren; ++i) { ! Component c1 = getComponent(i); ! if (! c1.isVisible()) continue; ! Rectangle r1 = c1.getBounds(); ! if (r1.isEmpty()) continue; ! for (int j = i + 1; j < numChildren; ++j) { Component c2 = getComponent(j); if (! c2.isVisible()) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JList.java gcc-4.6.0/libjava/classpath/javax/swing/JList.java *** gcc-4.5.2/libjava/classpath/javax/swing/JList.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JList.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.Position; *** 115,121 **** * UIClassID list no * valueIsAdjusting list no * visibleRowCount list no ! * * * @author Graydon Hoare (graydon@redhat.com) */ --- 115,121 ---- * UIClassID list no * valueIsAdjusting list no * visibleRowCount list no ! * * * @author Graydon Hoare (graydon@redhat.com) */ *************** public class JList extends JComponent im *** 277,283 **** /** * Returns the font metrics for the specified font. This method forwards ! * to the parent JList. * * @param font the font for which the font metrics is queried * --- 277,283 ---- /** * Returns the font metrics for the specified font. This method forwards ! * to the parent JList. * * @param font the font for which the font metrics is queried * *************** public class JList extends JComponent im *** 539,545 **** // selectable. Is there a way to disable single children? if (parent.isEnabled()) states.add(AccessibleState.SELECTABLE); ! if (parent.isSelectedIndex(listIndex)) states.add(AccessibleState.SELECTED); --- 539,545 ---- // selectable. Is there a way to disable single children? if (parent.isEnabled()) states.add(AccessibleState.SELECTABLE); ! if (parent.isSelectedIndex(listIndex)) states.add(AccessibleState.SELECTED); *************** public class JList extends JComponent im *** 613,622 **** { // Do nothing here. } ! // TODO: Implement the remaining methods of this class. } ! /** * Create a new AccessibleJList. */ --- 613,622 ---- { // Do nothing here. } ! // TODO: Implement the remaining methods of this class. } ! /** * Create a new AccessibleJList. */ *************** public class JList extends JComponent im *** 854,876 **** private static final long serialVersionUID = 4406629526391098046L; ! /** * Constant value used in "layoutOrientation" property. This value means ! * that cells are laid out in a single vertical column. This is the default. */ public static final int VERTICAL = 0; ! /** * Constant value used in "layoutOrientation" property. This value means * that cells are laid out in multiple columns "newspaper style", filling ! * vertically first, then horizontally. */ public static final int VERTICAL_WRAP = 1; ! ! /** * Constant value used in "layoutOrientation" property. This value means * that cells are laid out in multiple columns "newspaper style", ! * filling horizontally first, then vertically. */ public static final int HORIZONTAL_WRAP = 2; --- 854,876 ---- private static final long serialVersionUID = 4406629526391098046L; ! /** * Constant value used in "layoutOrientation" property. This value means ! * that cells are laid out in a single vertical column. This is the default. */ public static final int VERTICAL = 0; ! /** * Constant value used in "layoutOrientation" property. This value means * that cells are laid out in multiple columns "newspaper style", filling ! * vertically first, then horizontally. */ public static final int VERTICAL_WRAP = 1; ! ! /** * Constant value used in "layoutOrientation" property. This value means * that cells are laid out in multiple columns "newspaper style", ! * filling horizontally first, then vertically. */ public static final int HORIZONTAL_WRAP = 2; *************** public class JList extends JComponent im *** 890,896 **** * the {@link #prototypeCellValue} property. */ int fixedCellWidth; ! /** * This property indicates an fixed height to assign to all cells in the * list. If its value is -1, no height has been --- 890,896 ---- * the {@link #prototypeCellValue} property. */ int fixedCellWidth; ! /** * This property indicates an fixed height to assign to all cells in the * list. If its value is -1, no height has been *************** public class JList extends JComponent im *** 899,911 **** */ int fixedCellHeight; ! /** * This property holds the current layout orientation of the list, which * is one of the integer constants {@link #VERTICAL}, {@link ! * #VERTICAL_WRAP}, or {@link #HORIZONTAL_WRAP}. */ int layoutOrientation; ! /** This property holds the data elements displayed by the list. */ ListModel model; --- 899,911 ---- */ int fixedCellHeight; ! /** * This property holds the current layout orientation of the list, which * is one of the integer constants {@link #VERTICAL}, {@link ! * #VERTICAL_WRAP}, or {@link #HORIZONTAL_WRAP}. */ int layoutOrientation; ! /** This property holds the data elements displayed by the list. */ ListModel model; *************** public class JList extends JComponent im *** 923,929 **** */ Object prototypeCellValue; ! /** * This property specifies a foreground color for the selected cells in * the list. When {@link ListCellRenderer#getListCellRendererComponent} * is called with a selected cell object, the component returned will --- 923,929 ---- */ Object prototypeCellValue; ! /** * This property specifies a foreground color for the selected cells in * the list. When {@link ListCellRenderer#getListCellRendererComponent} * is called with a selected cell object, the component returned will *************** public class JList extends JComponent im *** 931,937 **** */ Color selectionBackground; ! /** * This property specifies a background color for the selected cells in * the list. When {@link ListCellRenderer#getListCellRendererComponent} * is called with a selected cell object, the component returned will --- 931,937 ---- */ Color selectionBackground; ! /** * This property specifies a background color for the selected cells in * the list. When {@link ListCellRenderer#getListCellRendererComponent} * is called with a selected cell object, the component returned will *************** public class JList extends JComponent im *** 939,952 **** */ Color selectionForeground; ! /** * This property holds a description of which data elements in the {@link * #model} property should be considered "selected", when displaying and * interacting with the list. */ ListSelectionModel selectionModel; ! /** * This property indicates a preference for the number of rows * displayed in the list, and will scale the * {@link #getPreferredScrollableViewportSize} property accordingly. The actual --- 939,952 ---- */ Color selectionForeground; ! /** * This property holds a description of which data elements in the {@link * #model} property should be considered "selected", when displaying and * interacting with the list. */ ListSelectionModel selectionModel; ! /** * This property indicates a preference for the number of rows * displayed in the list, and will scale the * {@link #getPreferredScrollableViewportSize} property accordingly. The actual *************** public class JList extends JComponent im *** 956,973 **** int visibleRowCount; /** ! * Fire a {@link ListSelectionEvent} to all the registered * ListSelectionListeners. ! * * @param firstIndex the lowest index covering the selection change. * @param lastIndex the highest index covering the selection change. * @param isAdjusting a flag indicating if this event is one in a series * of events updating the selection. */ ! protected void fireSelectionValueChanged(int firstIndex, int lastIndex, ! boolean isAdjusting) { ! ListSelectionEvent evt = new ListSelectionEvent(this, firstIndex, lastIndex, isAdjusting); ListSelectionListener listeners[] = getListSelectionListeners(); for (int i = 0; i < listeners.length; ++i) --- 956,973 ---- int visibleRowCount; /** ! * Fire a {@link ListSelectionEvent} to all the registered * ListSelectionListeners. ! * * @param firstIndex the lowest index covering the selection change. * @param lastIndex the highest index covering the selection change. * @param isAdjusting a flag indicating if this event is one in a series * of events updating the selection. */ ! protected void fireSelectionValueChanged(int firstIndex, int lastIndex, ! boolean isAdjusting) { ! ListSelectionEvent evt = new ListSelectionEvent(this, firstIndex, lastIndex, isAdjusting); ListSelectionListener listeners[] = getListSelectionListeners(); for (int i = 0; i < listeners.length; ++i) *************** public class JList extends JComponent im *** 984,990 **** * class receives either type of event, it triggers repainting of the * list. */ ! private class ListListener implements ListSelectionListener, ListDataListener { // ListDataListener events --- 984,990 ---- * class receives either type of event, it triggers repainting of the * list. */ ! private class ListListener implements ListSelectionListener, ListDataListener { // ListDataListener events *************** public class JList extends JComponent im *** 1013,1019 **** } } ! /** * Shared ListListener instance, subscribed to both the current {@link * #model} and {@link #selectionModel} properties of the list. */ --- 1013,1019 ---- } } ! /** * Shared ListListener instance, subscribed to both the current {@link * #model} and {@link #selectionModel} properties of the list. */ *************** public class JList extends JComponent im *** 1053,1060 **** * * @param model a model containing the list items (null not * permitted). ! * ! * @throws IllegalArgumentException if model is * null. */ public JList(ListModel model) --- 1053,1060 ---- * * @param model a model containing the list items (null not * permitted). ! * ! * @throws IllegalArgumentException if model is * null. */ public JList(ListModel model) *************** public class JList extends JComponent im *** 1093,1099 **** (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); } setLayout(null); ! updateUI(); } --- 1093,1099 ---- (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); } setLayout(null); ! updateUI(); } *************** public class JList extends JComponent im *** 1106,1120 **** { return new DefaultListSelectionModel(); } ! /** * Gets the value of the {@link #fixedCellHeight} property. This property * may be -1 to indicate that no cell height has been * set. This property is also set implicitly when the * {@link #prototypeCellValue} property is set. * ! * @return The current value of the property ! * * @see #fixedCellHeight * @see #setFixedCellHeight * @see #setPrototypeCellValue --- 1106,1120 ---- { return new DefaultListSelectionModel(); } ! /** * Gets the value of the {@link #fixedCellHeight} property. This property * may be -1 to indicate that no cell height has been * set. This property is also set implicitly when the * {@link #prototypeCellValue} property is set. * ! * @return The current value of the property ! * * @see #fixedCellHeight * @see #setFixedCellHeight * @see #setPrototypeCellValue *************** public class JList extends JComponent im *** 1132,1138 **** * overrides the height computed from {@link #prototypeCellValue}. * * @param h the height. ! * * @see #getFixedCellHeight * @see #getPrototypeCellValue */ --- 1132,1138 ---- * overrides the height computed from {@link #prototypeCellValue}. * * @param h the height. ! * * @see #getFixedCellHeight * @see #getPrototypeCellValue */ *************** public class JList extends JComponent im *** 1153,1160 **** * set. This property is also set implicitly when the {@link * #prototypeCellValue} property is set. * ! * @return The current value of the property ! * * @see #setFixedCellWidth * @see #setPrototypeCellValue */ --- 1153,1160 ---- * set. This property is also set implicitly when the {@link * #prototypeCellValue} property is set. * ! * @return The current value of the property ! * * @see #setFixedCellWidth * @see #setPrototypeCellValue */ *************** public class JList extends JComponent im *** 1171,1177 **** * overrides the width computed from {@link #prototypeCellValue}. * * @param w the width. ! * * @see #getFixedCellHeight * @see #getPrototypeCellValue */ --- 1171,1177 ---- * overrides the width computed from {@link #prototypeCellValue}. * * @param w the width. ! * * @see #getFixedCellHeight * @see #getPrototypeCellValue */ *************** public class JList extends JComponent im *** 1179,1196 **** { if (fixedCellWidth == w) return; ! int old = fixedCellWidth; fixedCellWidth = w; firePropertyChange("fixedCellWidth", old, w); } ! /** ! * Gets the value of the {@link #visibleRowCount} property. The default * value is 8. * * @return the current value of the property. ! * * @see #setVisibleRowCount(int) */ public int getVisibleRowCount() --- 1179,1196 ---- { if (fixedCellWidth == w) return; ! int old = fixedCellWidth; fixedCellWidth = w; firePropertyChange("fixedCellWidth", old, w); } ! /** ! * Gets the value of the {@link #visibleRowCount} property. The default * value is 8. * * @return the current value of the property. ! * * @see #setVisibleRowCount(int) */ public int getVisibleRowCount() *************** public class JList extends JComponent im *** 1199,1208 **** } /** ! * Sets the value of the {@link #visibleRowCount} property. * * @param vc The new property value ! * * @see #getVisibleRowCount() */ public void setVisibleRowCount(int vc) --- 1199,1208 ---- } /** ! * Sets the value of the {@link #visibleRowCount} property. * * @param vc The new property value ! * * @see #getVisibleRowCount() */ public void setVisibleRowCount(int vc) *************** public class JList extends JComponent im *** 1245,1251 **** /** * Returns an array of all ListSelectionListeners subscribed to this ! * list. * * @return The current subscribed listeners * --- 1245,1251 ---- /** * Returns an array of all ListSelectionListeners subscribed to this ! * list. * * @return The current subscribed listeners * *************** public class JList extends JComponent im *** 1257,1276 **** } /** ! * Returns the selection mode for the list (one of: ! * {@link ListSelectionModel#SINGLE_SELECTION}, ! * {@link ListSelectionModel#SINGLE_INTERVAL_SELECTION} and * {@link ListSelectionModel#MULTIPLE_INTERVAL_SELECTION}). ! * * @return The selection mode. ! * * @see #setSelectionMode(int) */ public int getSelectionMode() { return selectionModel.getSelectionMode(); } ! /** * Sets the list's "selectionMode" property, which simply mirrors the * same property on the list's {@link #selectionModel} property. This --- 1257,1276 ---- } /** ! * Returns the selection mode for the list (one of: ! * {@link ListSelectionModel#SINGLE_SELECTION}, ! * {@link ListSelectionModel#SINGLE_INTERVAL_SELECTION} and * {@link ListSelectionModel#MULTIPLE_INTERVAL_SELECTION}). ! * * @return The selection mode. ! * * @see #setSelectionMode(int) */ public int getSelectionMode() { return selectionModel.getSelectionMode(); } ! /** * Sets the list's "selectionMode" property, which simply mirrors the * same property on the list's {@link #selectionModel} property. This *************** public class JList extends JComponent im *** 1290,1296 **** * Adds the interval [a,a] to the set of selections managed * by this list's {@link #selectionModel} property. Depending on the * selection mode, this may cause existing selections to become invalid, ! * or may simply expand the set of selections. * * @param a A number in the half-open range [0, x) where * x = getModel.getSize(), indicating the index of an --- 1290,1296 ---- * Adds the interval [a,a] to the set of selections managed * by this list's {@link #selectionModel} property. Depending on the * selection mode, this may cause existing selections to become invalid, ! * or may simply expand the set of selections. * * @param a A number in the half-open range [0, x) where * x = getModel.getSize(), indicating the index of an *************** public class JList extends JComponent im *** 1312,1318 **** * a, calls {@link #setSelectedIndex} on a[i]. * * @param a an array of selected indices (null not permitted). ! * * @throws NullPointerException if a is null. * @see #setSelectionMode * @see #selectionModel --- 1312,1318 ---- * a, calls {@link #setSelectedIndex} on a[i]. * * @param a an array of selected indices (null not permitted). ! * * @throws NullPointerException if a is null. * @see #setSelectionMode * @see #selectionModel *************** public class JList extends JComponent im *** 1339,1345 **** /** * Returns true if the model's selection is empty, otherwise ! * false. * * @return The return value of {@link ListSelectionModel#isSelectionEmpty} */ --- 1339,1345 ---- /** * Returns true if the model's selection is empty, otherwise ! * false. * * @return The return value of {@link ListSelectionModel#isSelectionEmpty} */ *************** public class JList extends JComponent im *** 1362,1368 **** Rectangle r = getVisibleRect(); if (or == ComponentOrientation.RIGHT_TO_LEFT) r.translate((int) r.getWidth() - 1, 0); ! return getUI().locationToIndex(this, r.getLocation()); } --- 1362,1368 ---- Rectangle r = getVisibleRect(); if (or == ComponentOrientation.RIGHT_TO_LEFT) r.translate((int) r.getWidth() - 1, 0); ! return getUI().locationToIndex(this, r.getLocation()); } *************** public class JList extends JComponent im *** 1373,1390 **** * -1 is returned. * * @param location for which to look for in the list ! * * @return index of the cell to which specified location is closest to. */ public int locationToIndex(Point location) { ! return getUI().locationToIndex(this, location); } /** * Returns location of the cell located at the specified index in the list. * @param index of the cell for which location will be determined ! * * @return location of the cell located at the specified index in the list. */ public Point indexToLocation(int index) --- 1373,1390 ---- * -1 is returned. * * @param location for which to look for in the list ! * * @return index of the cell to which specified location is closest to. */ public int locationToIndex(Point location) { ! return getUI().locationToIndex(this, location); } /** * Returns location of the cell located at the specified index in the list. * @param index of the cell for which location will be determined ! * * @return location of the cell located at the specified index in the list. */ public Point indexToLocation(int index) *************** public class JList extends JComponent im *** 1443,1449 **** * Indicates whether the list element at a given index value is * currently selected. * ! * @param a The index to check * @return true if a is the index of a selected * list element */ --- 1443,1449 ---- * Indicates whether the list element at a given index value is * currently selected. * ! * @param a The index to check * @return true if a is the index of a selected * list element */ *************** public class JList extends JComponent im *** 1476,1482 **** /** * Returns all the values in the list's {@link #model} property which are * selected, according to the list's {@link #selectionModel} property. ! * * @return An array containing all the selected values * @see #setSelectedValue */ --- 1476,1482 ---- /** * Returns all the values in the list's {@link #model} property which are * selected, according to the list's {@link #selectionModel} property. ! * * @return An array containing all the selected values * @see #setSelectedValue */ *************** public class JList extends JComponent im *** 1524,1530 **** { return selectionForeground; } ! /** * Sets the value of the {@link #selectionForeground} property. * --- 1524,1530 ---- { return selectionForeground; } ! /** * Sets the value of the {@link #selectionForeground} property. * *************** public class JList extends JComponent im *** 1542,1548 **** /** * Sets the selection to cover only the specified value, if it ! * exists in the model. * * @param obj The object to select * @param scroll Whether to scroll the list to make the newly selected --- 1542,1548 ---- /** * Sets the selection to cover only the specified value, if it ! * exists in the model. * * @param obj The object to select * @param scroll Whether to scroll the list to make the newly selected *************** public class JList extends JComponent im *** 1595,1603 **** /** * Returns a {@link ListModel} backed by the specified array. ! * * @param items the list items (don't use null). ! * * @return A list model containing the specified items. */ private ListModel createListModel(final Object[] items) --- 1595,1603 ---- /** * Returns a {@link ListModel} backed by the specified array. ! * * @param items the list items (don't use null). ! * * @return A list model containing the specified items. */ private ListModel createListModel(final Object[] items) *************** public class JList extends JComponent im *** 1614,1625 **** } }; } ! /** * Returns a {@link ListModel} backed by the specified vector. ! * * @param items the list items (don't use null). ! * * @return A list model containing the specified items. */ private ListModel createListModel(final Vector items) --- 1614,1625 ---- } }; } ! /** * Returns a {@link ListModel} backed by the specified vector. ! * * @param items the list items (don't use null). ! * * @return A list model containing the specified items. */ private ListModel createListModel(final Vector items) *************** public class JList extends JComponent im *** 1649,1668 **** { setModel(new AbstractListModel() { ! public int getSize() ! { ! return listData.size(); ! } ! ! public Object getElementAt(int i) ! { ! return listData.elementAt(i); ! } }); } /** ! * Gets the value of the {@link #cellRenderer} property. * * @return The current value of the property */ --- 1649,1668 ---- { setModel(new AbstractListModel() { ! public int getSize() ! { ! return listData.size(); ! } ! ! public Object getElementAt(int i) ! { ! return listData.elementAt(i); ! } }); } /** ! * Gets the value of the {@link #cellRenderer} property. * * @return The current value of the property */ *************** public class JList extends JComponent im *** 1680,1686 **** { if (cellRenderer == renderer) return; ! ListCellRenderer old = cellRenderer; cellRenderer = renderer; firePropertyChange("cellRenderer", old, renderer); --- 1680,1686 ---- { if (cellRenderer == renderer) return; ! ListCellRenderer old = cellRenderer; cellRenderer = renderer; firePropertyChange("cellRenderer", old, renderer); *************** public class JList extends JComponent im *** 1689,1695 **** } /** ! * Gets the value of the {@link #model} property. * * @return The current value of the property */ --- 1689,1695 ---- } /** ! * Gets the value of the {@link #model} property. * * @return The current value of the property */ *************** public class JList extends JComponent im *** 1704,1729 **** * and re-subscribed to the new model. * * @param model the new model (null not permitted). ! * ! * @throws IllegalArgumentException if model is * null. */ public void setModel(ListModel model) { ! if (model == null) throw new IllegalArgumentException("Null 'model' argument."); if (this.model == model) return; ! if (this.model != null) this.model.removeListDataListener(listListener); ! ListModel old = this.model; this.model = model; ! if (this.model != null) this.model.addListDataListener(listListener); ! firePropertyChange("model", old, model); revalidate(); repaint(); --- 1704,1729 ---- * and re-subscribed to the new model. * * @param model the new model (null not permitted). ! * ! * @throws IllegalArgumentException if model is * null. */ public void setModel(ListModel model) { ! if (model == null) throw new IllegalArgumentException("Null 'model' argument."); if (this.model == model) return; ! if (this.model != null) this.model.removeListDataListener(listListener); ! ListModel old = this.model; this.model = model; ! if (this.model != null) this.model.addListDataListener(listListener); ! firePropertyChange("model", old, model); revalidate(); repaint(); *************** public class JList extends JComponent im *** 1741,1747 **** *
                                          • {@link #setSelectedIndices(int[])};
                                          • *
                                          • {@link #setSelectionInterval(int, int)}.
                                          • *
                                          ! * * @return The selection model. */ public ListSelectionModel getSelectionModel() --- 1741,1747 ---- *
                                        • {@link #setSelectedIndices(int[])};
                                        • *
                                        • {@link #setSelectionInterval(int, int)}.
                                        • *
                                        ! * * @return The selection model. */ public ListSelectionModel getSelectionModel() *************** public class JList extends JComponent im *** 1760,1775 **** { if (selectionModel == model) return; ! if (selectionModel != null) selectionModel.removeListSelectionListener(listListener); ! ListSelectionModel old = selectionModel; selectionModel = model; ! if (selectionModel != null) selectionModel.addListSelectionListener(listListener); ! firePropertyChange("selectionModel", old, model); revalidate(); repaint(); --- 1760,1775 ---- { if (selectionModel == model) return; ! if (selectionModel != null) selectionModel.removeListSelectionListener(listListener); ! ListSelectionModel old = selectionModel; selectionModel = model; ! if (selectionModel != null) selectionModel.addListSelectionListener(listListener); ! firePropertyChange("selectionModel", old, model); revalidate(); repaint(); *************** public class JList extends JComponent im *** 1855,1861 **** Object old = prototypeCellValue; Component comp = getCellRenderer() ! .getListCellRendererComponent(this, obj, 0, false, false); Dimension d = comp.getPreferredSize(); fixedCellWidth = d.width; fixedCellHeight = d.height; --- 1855,1861 ---- Object old = prototypeCellValue; Component comp = getCellRenderer() ! .getListCellRendererComponent(this, obj, 0, false, false); Dimension d = comp.getPreferredSize(); fixedCellWidth = d.width; fixedCellHeight = d.height; *************** public class JList extends JComponent im *** 1878,1896 **** */ public Dimension getPreferredScrollableViewportSize() { ! //If the layout orientation is not VERTICAL, then this will ! //return the value from getPreferredSize. The current ListUI is //expected to override getPreferredSize to return an appropriate value. if (getLayoutOrientation() != VERTICAL) ! return getPreferredSize(); int size = getModel().getSize(); ! ! // Trivial case: if fixedCellWidth and fixedCellHeight were set // just use them if (fixedCellHeight != -1 && fixedCellWidth != -1) return new Dimension(fixedCellWidth, size * fixedCellHeight); ! // If the model is empty we use 16 * the number of visible rows // for the height and either fixedCellWidth (if set) or 256 // for the width --- 1878,1896 ---- */ public Dimension getPreferredScrollableViewportSize() { ! //If the layout orientation is not VERTICAL, then this will ! //return the value from getPreferredSize. The current ListUI is //expected to override getPreferredSize to return an appropriate value. if (getLayoutOrientation() != VERTICAL) ! return getPreferredSize(); int size = getModel().getSize(); ! ! // Trivial case: if fixedCellWidth and fixedCellHeight were set // just use them if (fixedCellHeight != -1 && fixedCellWidth != -1) return new Dimension(fixedCellWidth, size * fixedCellHeight); ! // If the model is empty we use 16 * the number of visible rows // for the height and either fixedCellWidth (if set) or 256 // for the width *************** public class JList extends JComponent im *** 1935,1941 **** *

                                        If the provided orientation is HORIZONTAL, the above * comments refer to "rightwards" for positive direction, and "leftwards" * for negative.

                                        ! * * * @param visibleRect The rectangle to scroll an element into * @param orientation One of the numeric consants VERTICAL --- 1935,1941 ---- *

                                        If the provided orientation is HORIZONTAL, the above * comments refer to "rightwards" for positive direction, and "leftwards" * for negative.

                                        ! * * * @param visibleRect The rectangle to scroll an element into * @param orientation One of the numeric consants VERTICAL *************** public class JList extends JComponent im *** 2031,2037 **** *

                                        If the provided orientation is HORIZONTAL, the above * comments refer to "rightwards" for positive direction, and "leftwards" * for negative.

                                        ! * * * @param visibleRect The rectangle to scroll an element into * @param orientation One of the numeric consants VERTICAL --- 2031,2037 ---- *

                                        If the provided orientation is HORIZONTAL, the above * comments refer to "rightwards" for positive direction, and "leftwards" * for negative.

                                        ! * * * @param visibleRect The rectangle to scroll an element into * @param orientation One of the numeric consants VERTICAL *************** public class JList extends JComponent im *** 2213,2219 **** /** * Returns the index of the anchor item in the current selection, or * -1 if there is no anchor item. ! * * @return The item index. */ public int getAnchorSelectionIndex() --- 2213,2219 ---- /** * Returns the index of the anchor item in the current selection, or * -1 if there is no anchor item. ! * * @return The item index. */ public int getAnchorSelectionIndex() *************** public class JList extends JComponent im *** 2224,2230 **** /** * Returns the index of the lead item in the current selection, or * -1 if there is no lead item. ! * * @return The item index. */ public int getLeadSelectionIndex() --- 2224,2230 ---- /** * Returns the index of the lead item in the current selection, or * -1 if there is no lead item. ! * * @return The item index. */ public int getLeadSelectionIndex() *************** public class JList extends JComponent im *** 2235,2243 **** /** * Returns the lowest item index in the current selection, or -1 * if there is no selection. ! * * @return The index. ! * * @see #getMaxSelectionIndex() */ public int getMinSelectionIndex() --- 2235,2243 ---- /** * Returns the lowest item index in the current selection, or -1 * if there is no selection. ! * * @return The index. ! * * @see #getMaxSelectionIndex() */ public int getMinSelectionIndex() *************** public class JList extends JComponent im *** 2246,2256 **** } /** ! * Returns the highest item index in the current selection, or * -1 if there is no selection. ! * * @return The index. ! * * @see #getMinSelectionIndex() */ public int getMaxSelectionIndex() --- 2246,2256 ---- } /** ! * Returns the highest item index in the current selection, or * -1 if there is no selection. ! * * @return The index. ! * * @see #getMinSelectionIndex() */ public int getMaxSelectionIndex() *************** public class JList extends JComponent im *** 2268,2276 **** /** * Sets the current selection to the items in the specified range (inclusive). ! * Note that anchor can be less than, equal to, or greater than * lead. ! * * @param anchor the index of the anchor item. * @param lead the index of the anchor item. */ --- 2268,2276 ---- /** * Sets the current selection to the items in the specified range (inclusive). ! * Note that anchor can be less than, equal to, or greater than * lead. ! * * @param anchor the index of the anchor item. * @param lead the index of the anchor item. */ *************** public class JList extends JComponent im *** 2280,2289 **** } /** ! * Adds the specified interval to the current selection. Note that ! * anchor can be less than, equal to, or greater than * lead. ! * * @param anchor the index of the anchor item. * @param lead the index of the lead item. */ --- 2280,2289 ---- } /** ! * Adds the specified interval to the current selection. Note that ! * anchor can be less than, equal to, or greater than * lead. ! * * @param anchor the index of the anchor item. * @param lead the index of the lead item. */ *************** public class JList extends JComponent im *** 2293,2302 **** } /** ! * Removes the specified interval from the current selection. Note that ! * index0 can be less than, equal to, or greater than * index1. ! * * @param index0 an index for one end of the range. * @param index1 an index for the other end of the range. */ --- 2293,2302 ---- } /** ! * Removes the specified interval from the current selection. Note that ! * index0 can be less than, equal to, or greater than * index1. ! * * @param index0 an index for one end of the range. * @param index1 an index for the other end of the range. */ *************** public class JList extends JComponent im *** 2317,2323 **** } /** ! * Sets the valueIsAdjusting flag in the list's selection * model. * * @param isAdjusting the new value --- 2317,2323 ---- } /** ! * Sets the valueIsAdjusting flag in the list's selection * model. * * @param isAdjusting the new value *************** public class JList extends JComponent im *** 2331,2337 **** * Return the value of the dragEnabled property. * * @return the value ! * * @since 1.4 */ public boolean getDragEnabled() --- 2331,2337 ---- * Return the value of the dragEnabled property. * * @return the value ! * * @since 1.4 */ public boolean getDragEnabled() *************** public class JList extends JComponent im *** 2343,2349 **** * Set the dragEnabled property. * * @param enabled new value ! * * @since 1.4 */ public void setDragEnabled(boolean enabled) --- 2343,2349 ---- * Set the dragEnabled property. * * @param enabled new value ! * * @since 1.4 */ public void setDragEnabled(boolean enabled) *************** public class JList extends JComponent im *** 2352,2358 **** } /** ! * Returns the layout orientation, which will be one of {@link #VERTICAL}, * {@link #VERTICAL_WRAP} and {@link #HORIZONTAL_WRAP}. The default value * is {@link #VERTICAL}. * --- 2352,2358 ---- } /** ! * Returns the layout orientation, which will be one of {@link #VERTICAL}, * {@link #VERTICAL_WRAP} and {@link #HORIZONTAL_WRAP}. The default value * is {@link #VERTICAL}. * *************** public class JList extends JComponent im *** 2368,2374 **** /** * Sets the layout orientation (this is a bound property with the name ! * 'layoutOrientation'). Valid orientations are {@link #VERTICAL}, * {@link #VERTICAL_WRAP} and {@link #HORIZONTAL_WRAP}. * * @param orientation the orientation. --- 2368,2374 ---- /** * Sets the layout orientation (this is a bound property with the name ! * 'layoutOrientation'). Valid orientations are {@link #VERTICAL}, * {@link #VERTICAL_WRAP} and {@link #HORIZONTAL_WRAP}. * * @param orientation the orientation. *************** public class JList extends JComponent im *** 2414,2420 **** } /** ! * Returns the index of the next list element (beginning at * startIndex and moving in the specified direction through the * list, looping around if necessary) that starts with prefix * (ignoring case). --- 2414,2420 ---- } /** ! * Returns the index of the next list element (beginning at * startIndex and moving in the specified direction through the * list, looping around if necessary) that starts with prefix * (ignoring case). *************** public class JList extends JComponent im *** 2433,2439 **** * * @since 1.4 */ ! public int getNextMatch(String prefix, int startIndex, Position.Bias direction) { if (prefix == null) --- 2433,2439 ---- * * @since 1.4 */ ! public int getNextMatch(String prefix, int startIndex, Position.Bias direction) { if (prefix == null) *************** public class JList extends JComponent im *** 2455,2461 **** int itemCount = model.getSize(); boolean finished = false; prefix = prefix.toUpperCase(); ! if (direction == Position.Bias.Forward) delta = 1; while (!finished) --- 2455,2461 ---- int itemCount = model.getSize(); boolean finished = false; prefix = prefix.toUpperCase(); ! if (direction == Position.Bias.Forward) delta = 1; while (!finished) *************** public class JList extends JComponent im *** 2467,2481 **** if (current == -1) current += itemCount; else ! current = current % itemCount; finished = current == startIndex; } return result; } ! /** * Returns a string describing the attributes for the JList ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * --- 2467,2481 ---- if (current == -1) current += itemCount; else ! current = current % itemCount; finished = current == startIndex; } return result; } ! /** * Returns a string describing the attributes for the JList ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JMenu.java gcc-4.6.0/libjava/classpath/javax/swing/JMenu.java *** gcc-4.5.2/libjava/classpath/javax/swing/JMenu.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JMenu.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.MenuItemUI; *** 74,80 **** *

                                        * JMenu's fires MenuEvents when this menu's selection changes. If this menu * is selected, then fireMenuSelectedEvent() is invoked. In case when menu is ! * deselected or cancelled, then fireMenuDeselectedEvent() or * fireMenuCancelledEvent() is invoked, respectivelly. *

                                        */ --- 74,80 ---- *

                                        * JMenu's fires MenuEvents when this menu's selection changes. If this menu * is selected, then fireMenuSelectedEvent() is invoked. In case when menu is ! * deselected or cancelled, then fireMenuDeselectedEvent() or * fireMenuCancelledEvent() is invoked, respectivelly. *

                                        */ *************** public class JMenu extends JMenuItem imp *** 156,162 **** public JMenu(String text) { super(text); ! popupMenu = new JPopupMenu(); popupMenu.setInvoker(this); setOpaque(false); } --- 156,162 ---- public JMenu(String text) { super(text); ! popupMenu = new JPopupMenu(); popupMenu.setInvoker(this); setOpaque(false); } *************** public class JMenu extends JMenuItem imp *** 274,280 **** { if (index < 0 || (index > 0 && getMenuComponentCount() == 0)) throw new IllegalArgumentException(); ! if (getMenuComponentCount() > 0) popupMenu.remove(index); } --- 274,280 ---- { if (index < 0 || (index > 0 && getMenuComponentCount() == 0)) throw new IllegalArgumentException(); ! if (getMenuComponentCount() > 0) popupMenu.remove(index); } *************** public class JMenu extends JMenuItem imp *** 445,451 **** /** * Returns origin point of the popup menu. This takes the screen bounds ! * into account and places the popup where it fits best. * * @return the origin of the popup menu */ --- 445,451 ---- /** * Returns origin point of the popup menu. This takes the screen bounds ! * into account and places the popup where it fits best. * * @return the origin of the popup menu */ *************** public class JMenu extends JMenuItem imp *** 459,465 **** JPopupMenu popup = getPopupMenu(); Dimension popupSize = popup.getSize(); if (popupSize.width == 0 || popupSize.height == 0) ! popupSize = popup.getPreferredSize(); // Determine screen bounds. Toolkit tk = Toolkit.getDefaultToolkit(); --- 459,465 ---- JPopupMenu popup = getPopupMenu(); Dimension popupSize = popup.getSize(); if (popupSize.width == 0 || popupSize.height == 0) ! popupSize = popup.getPreferredSize(); // Determine screen bounds. Toolkit tk = Toolkit.getDefaultToolkit(); *************** public class JMenu extends JMenuItem imp *** 652,658 **** if (getItemCount() == 0) return null; ! Component c = popupMenu.getComponentAtIndex(index); if (c instanceof JMenuItem) --- 652,658 ---- if (getItemCount() == 0) return null; ! Component c = popupMenu.getComponentAtIndex(index); if (c instanceof JMenuItem) *************** public class JMenu extends JMenuItem imp *** 680,686 **** */ public boolean isTearOff() { ! // NOT YET IMPLEMENTED throw new Error("The method isTearOff() has not yet been implemented."); } --- 680,686 ---- */ public boolean isTearOff() { ! // NOT YET IMPLEMENTED throw new Error("The method isTearOff() has not yet been implemented."); } *************** public class JMenu extends JMenuItem imp *** 706,712 **** { if (getPopupMenu() == null || getMenuComponentCount() == 0) return null; ! return popupMenu.getComponentAtIndex(index); } --- 706,712 ---- { if (getPopupMenu() == null || getMenuComponentCount() == 0) return null; ! return popupMenu.getComponentAtIndex(index); } *************** public class JMenu extends JMenuItem imp *** 784,790 **** * Returns all registered MenuListener objects. * * @return an array of listeners ! * * @since 1.4 */ public MenuListener[] getMenuListeners() --- 784,790 ---- * Returns all registered MenuListener objects. * * @return an array of listeners ! * * @since 1.4 */ public MenuListener[] getMenuListeners() *************** public class JMenu extends JMenuItem imp *** 853,859 **** */ public void menuSelectionChanged(boolean changed) { ! // if this menu selection is true, then activate this menu and // display popup associated with this menu setSelected(changed); } --- 853,859 ---- */ public void menuSelectionChanged(boolean changed) { ! // if this menu selection is true, then activate this menu and // display popup associated with this menu setSelected(changed); } *************** public class JMenu extends JMenuItem imp *** 910,920 **** getModel().setPressed(true); try { ! java.lang.Thread.sleep(time); } catch (java.lang.InterruptedException e) { ! // probably harmless } getModel().setPressed(false); --- 910,920 ---- getModel().setPressed(true); try { ! java.lang.Thread.sleep(time); } catch (java.lang.InterruptedException e) { ! // probably harmless } getModel().setPressed(false); *************** public class JMenu extends JMenuItem imp *** 1237,1243 **** Action a = menuItem.getAction(); if (a != null) ! a.addPropertyChangeListener(this); } /**This method is invoked when some change occures in menuItem's action*/ --- 1237,1243 ---- Action a = menuItem.getAction(); if (a != null) ! a.addPropertyChangeListener(this); } /**This method is invoked when some change occures in menuItem's action*/ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JMenuBar.java gcc-4.6.0/libjava/classpath/javax/swing/JMenuBar.java *** gcc-4.5.2/libjava/classpath/javax/swing/JMenuBar.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JMenuBar.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.border.Border; *** 61,74 **** * components to container, one can use add() to add menu's to the menu bar. * Menu's will be displayed in the menu bar in the order they were added. * The JMenuBar uses selectionModel to keep track of selected menu index. ! * JMenuBar's selectionModel will fire ChangeEvents to its registered * listeners when the selected index changes. */ public class JMenuBar extends JComponent implements Accessible, MenuElement { /** * Provides accessibility support for JMenuBar. ! * * @author Roman Kennke (kennke@aicas.com) */ protected class AccessibleJMenuBar extends AccessibleJComponent --- 61,74 ---- * components to container, one can use add() to add menu's to the menu bar. * Menu's will be displayed in the menu bar in the order they were added. * The JMenuBar uses selectionModel to keep track of selected menu index. ! * JMenuBar's selectionModel will fire ChangeEvents to its registered * listeners when the selected index changes. */ public class JMenuBar extends JComponent implements Accessible, MenuElement { /** * Provides accessibility support for JMenuBar. ! * * @author Roman Kennke (kennke@aicas.com) */ protected class AccessibleJMenuBar extends AccessibleJComponent *************** public class JMenuBar extends JComponent *** 289,299 **** for (int i = 0; i < comps.length; i++) { ! if (comps[i].equals(c)) ! { ! index = i; ! break; ! } } return index; --- 289,299 ---- for (int i = 0; i < comps.length; i++) { ! if (comps[i].equals(c)) ! { ! index = i; ! break; ! } } return index; *************** public class JMenuBar extends JComponent *** 306,323 **** */ public JMenu getHelpMenu() { ! // the following error matches the behaviour of the reference // implementation... throw new Error("getHelpMenu() is not implemented"); } /** * Returns the margin between the menu bar's border and its menus. If the ! * margin is null, this method returns * new Insets(0, 0, 0, 0). * * @return The margin (never null). ! * * @see #setMargin(Insets) */ public Insets getMargin() --- 306,323 ---- */ public JMenu getHelpMenu() { ! // the following error matches the behaviour of the reference // implementation... throw new Error("getHelpMenu() is not implemented"); } /** * Returns the margin between the menu bar's border and its menus. If the ! * margin is null, this method returns * new Insets(0, 0, 0, 0). * * @return The margin (never null). ! * * @see #setMargin(Insets) */ public Insets getMargin() *************** public class JMenuBar extends JComponent *** 508,521 **** } /** ! * This method overrides JComponent.processKeyBinding to allow the ! * JMenuBar to check all the child components (recursiveley) to see * if they'll consume the event. ! * * @param ks the KeyStroke for the event * @param e the KeyEvent for the event * @param condition the focus condition for the binding ! * @param pressed true if the key is pressed */ protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) --- 508,521 ---- } /** ! * This method overrides JComponent.processKeyBinding to allow the ! * JMenuBar to check all the child components (recursiveley) to see * if they'll consume the event. ! * * @param ks the KeyStroke for the event * @param e the KeyEvent for the event * @param condition the focus condition for the binding ! * @param pressed true if the key is pressed */ protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) *************** public class JMenuBar extends JComponent *** 523,541 **** // See if the regular JComponent behavior consumes the event if (super.processKeyBinding(ks, e, condition, pressed)) return true; ! ! // If not, have to recursively check all the child menu elements to see ! // if they want it MenuElement[] children = getSubElements(); for (int i = 0; i < children.length; i++) if (processKeyBindingHelper(children[i], ks, e, condition, pressed)) return true; return false; } ! /** * This is a helper method to recursively check the children of this ! * JMenuBar to see if they will consume a key event via key bindings. * This is used for menu accelerators. * @param menuElement the menuElement to check (and check all its children) * @param ks the KeyStroke for the event --- 523,541 ---- // See if the regular JComponent behavior consumes the event if (super.processKeyBinding(ks, e, condition, pressed)) return true; ! ! // If not, have to recursively check all the child menu elements to see ! // if they want it MenuElement[] children = getSubElements(); for (int i = 0; i < children.length; i++) if (processKeyBindingHelper(children[i], ks, e, condition, pressed)) return true; return false; } ! /** * This is a helper method to recursively check the children of this ! * JMenuBar to see if they will consume a key event via key bindings. * This is used for menu accelerators. * @param menuElement the menuElement to check (and check all its children) * @param ks the KeyStroke for the event *************** public class JMenuBar extends JComponent *** 558,564 **** && ((JComponent) menuElement).processKeyBinding(ks, e, condition, pressed)) return true; ! // If that didn't consume it, check all the children recursively MenuElement[] children = menuElement.getSubElements(); for (int i = 0; i < children.length; i++) --- 558,564 ---- && ((JComponent) menuElement).processKeyBinding(ks, e, condition, pressed)) return true; ! // If that didn't consume it, check all the children recursively MenuElement[] children = menuElement.getSubElements(); for (int i = 0; i < children.length; i++) *************** public class JMenuBar extends JComponent *** 566,572 **** return true; return false; } ! /** * Process mouse events forwarded from MenuSelectionManager. This method * doesn't do anything. It is here to conform to the MenuElement interface. --- 566,572 ---- return true; return false; } ! /** * Process mouse events forwarded from MenuSelectionManager. This method * doesn't do anything. It is here to conform to the MenuElement interface. *************** public class JMenuBar extends JComponent *** 602,612 **** { if (b != borderPainted) { ! boolean old = borderPainted; ! borderPainted = b; ! firePropertyChange("borderPainted", old, b); ! revalidate(); ! repaint(); } } --- 602,612 ---- { if (b != borderPainted) { ! boolean old = borderPainted; ! borderPainted = b; ! firePropertyChange("borderPainted", old, b); ! revalidate(); ! repaint(); } } *************** public class JMenuBar extends JComponent *** 629,635 **** * bound property with the name 'margin'). * * @param m the margin (null permitted). ! * * @see #getMargin() */ public void setMargin(Insets m) --- 629,635 ---- * bound property with the name 'margin'). * * @param m the margin (null permitted). ! * * @see #getMargin() */ public void setMargin(Insets m) *************** public class JMenuBar extends JComponent *** 664,672 **** { if (selectionModel != model) { ! SingleSelectionModel oldModel = selectionModel; ! selectionModel = model; ! firePropertyChange("model", oldModel, selectionModel); } } --- 664,672 ---- { if (selectionModel != model) { ! SingleSelectionModel oldModel = selectionModel; ! selectionModel = model; ! firePropertyChange("model", oldModel, selectionModel); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JMenuItem.java gcc-4.6.0/libjava/classpath/javax/swing/JMenuItem.java *** gcc-4.5.2/libjava/classpath/javax/swing/JMenuItem.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JMenuItem.java Tue Jan 11 19:46:05 2011 *************** public class JMenuItem extends AbstractB *** 123,142 **** init(null, null); if (action != null) { ! String name = (String) action.getValue(Action.NAME); ! if (name != null) setName(name); ! KeyStroke accel = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY); ! if (accel != null) setAccelerator(accel); ! Integer mnemonic = (Integer) action.getValue(Action.MNEMONIC_KEY); ! if (mnemonic != null) setMnemonic(mnemonic.intValue()); ! String command = (String) action.getValue(Action.ACTION_COMMAND_KEY); ! if (command != null) setActionCommand(command); } } --- 123,142 ---- init(null, null); if (action != null) { ! String name = (String) action.getValue(Action.NAME); ! if (name != null) setName(name); ! KeyStroke accel = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY); ! if (accel != null) setAccelerator(accel); ! Integer mnemonic = (Integer) action.getValue(Action.MNEMONIC_KEY); ! if (mnemonic != null) setMnemonic(mnemonic.intValue()); ! String command = (String) action.getValue(Action.ACTION_COMMAND_KEY); ! if (command != null) setActionCommand(command); } } *************** public class JMenuItem extends AbstractB *** 180,186 **** super.init(text, icon); // Initializes properties for this menu item, that are different ! // from Abstract button properties. /* NOTE: According to java specifications paint_border should be set to false, since menu item should not have a border. However running few java programs it seems that menu items and menues can have a border. Commenting --- 180,186 ---- super.init(text, icon); // Initializes properties for this menu item, that are different ! // from Abstract button properties. /* NOTE: According to java specifications paint_border should be set to false, since menu item should not have a border. However running few java programs it seems that menu items and menues can have a border. Commenting *************** public class JMenuItem extends AbstractB *** 201,207 **** { super.setUI(ui); } ! /** * This method sets this menuItem's UI to the UIManager's default for the * current look and feel. --- 201,207 ---- { super.setUI(ui); } ! /** * This method sets this menuItem's UI to the UIManager's default for the * current look and feel. *************** public class JMenuItem extends AbstractB *** 265,275 **** } /** ! * Sets the key combination which invokes the menu item's action ! * listeners without navigating the menu hierarchy. Note that when the ! * keyboard accelerator is typed, it will work whether or not the * menu is currently displayed. ! * * @param keystroke accelerator for this menu item. */ public void setAccelerator(KeyStroke keystroke) --- 265,275 ---- } /** ! * Sets the key combination which invokes the menu item's action ! * listeners without navigating the menu hierarchy. Note that when the ! * keyboard accelerator is typed, it will work whether or not the * menu is currently displayed. ! * * @param keystroke accelerator for this menu item. */ public void setAccelerator(KeyStroke keystroke) *************** public class JMenuItem extends AbstractB *** 294,300 **** { setAccelerator((KeyStroke) (action.getValue(Action.ACCELERATOR_KEY))); if (accelerator != null) ! super.registerKeyboardAction(action, accelerator, JComponent.WHEN_IN_FOCUSED_WINDOW); } } --- 294,300 ---- { setAccelerator((KeyStroke) (action.getValue(Action.ACCELERATOR_KEY))); if (accelerator != null) ! super.registerKeyboardAction(action, accelerator, JComponent.WHEN_IN_FOCUSED_WINDOW); } } *************** public class JMenuItem extends AbstractB *** 312,322 **** { return new PropertyChangeListener() { ! public void propertyChange(PropertyChangeEvent e) ! { ! Action act = (Action) (e.getSource()); ! configurePropertiesFromAction(act); ! } }; } --- 312,322 ---- { return new PropertyChangeListener() { ! public void propertyChange(PropertyChangeEvent e) ! { ! Action act = (Action) (e.getSource()); ! configurePropertiesFromAction(act); ! } }; } *************** public class JMenuItem extends AbstractB *** 374,393 **** { case MouseEvent.MOUSE_ENTERED: isDragging = false; ! fireMenuDragMouseEntered(event); ! break; case MouseEvent.MOUSE_EXITED: isDragging = false; ! fireMenuDragMouseExited(event); ! break; case MouseEvent.MOUSE_DRAGGED: isDragging = true; ! fireMenuDragMouseDragged(event); ! break; case MouseEvent.MOUSE_RELEASED: if (isDragging) fireMenuDragMouseReleased(event); ! break; } } --- 374,393 ---- { case MouseEvent.MOUSE_ENTERED: isDragging = false; ! fireMenuDragMouseEntered(event); ! break; case MouseEvent.MOUSE_EXITED: isDragging = false; ! fireMenuDragMouseExited(event); ! break; case MouseEvent.MOUSE_DRAGGED: isDragging = true; ! fireMenuDragMouseDragged(event); ! break; case MouseEvent.MOUSE_RELEASED: if (isDragging) fireMenuDragMouseReleased(event); ! break; } } *************** public class JMenuItem extends AbstractB *** 524,540 **** Component parent = this.getParent(); if (changed) { ! model.setArmed(true); ! if (parent != null && parent instanceof JPopupMenu) ! ((JPopupMenu) parent).setSelected(this); } else { ! model.setArmed(false); ! if (parent != null && parent instanceof JPopupMenu) ! ((JPopupMenu) parent).getSelectionModel().clearSelection(); } } --- 524,540 ---- Component parent = this.getParent(); if (changed) { ! model.setArmed(true); ! if (parent != null && parent instanceof JPopupMenu) ! ((JPopupMenu) parent).setSelected(this); } else { ! model.setArmed(false); ! if (parent != null && parent instanceof JPopupMenu) ! ((JPopupMenu) parent).getSelectionModel().clearSelection(); } } *************** public class JMenuItem extends AbstractB *** 630,636 **** /** * Returns a string describing the attributes for the JMenuItem ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * --- 630,636 ---- /** * Returns a string describing the attributes for the JMenuItem ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * *************** public class JMenuItem extends AbstractB *** 646,659 **** * Returns the object that provides accessibility features for this * JMenuItem component. * ! * @return The accessible context (an instance of * {@link AccessibleJMenuItem}). */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) { ! AccessibleJMenuItem ctx = new AccessibleJMenuItem(); addChangeListener(ctx); accessibleContext = ctx; } --- 646,659 ---- * Returns the object that provides accessibility features for this * JMenuItem component. * ! * @return The accessible context (an instance of * {@link AccessibleJMenuItem}). */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) { ! AccessibleJMenuItem ctx = new AccessibleJMenuItem(); addChangeListener(ctx); accessibleContext = ctx; } *************** public class JMenuItem extends AbstractB *** 662,670 **** } /** ! * Provides the accessibility features for the JMenuItem * component. ! * * @see JMenuItem#getAccessibleContext() */ protected class AccessibleJMenuItem extends AccessibleAbstractButton --- 662,670 ---- } /** ! * Provides the accessibility features for the JMenuItem * component. ! * * @see JMenuItem#getAccessibleContext() */ protected class AccessibleJMenuItem extends AccessibleAbstractButton diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JOptionPane.java gcc-4.6.0/libjava/classpath/javax/swing/JOptionPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JOptionPane.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JOptionPane.java Tue Jan 11 19:46:05 2011 *************** public class JOptionPane extends JCompon *** 71,77 **** protected class AccessibleJOptionPane extends JComponent.AccessibleJComponent { private static final long serialVersionUID = 686071432213084821L; ! /** * Creates a new AccessibleJOptionPane instance. */ --- 71,77 ---- protected class AccessibleJOptionPane extends JComponent.AccessibleJComponent { private static final long serialVersionUID = 686071432213084821L; ! /** * Creates a new AccessibleJOptionPane instance. */ *************** public class JOptionPane extends JCompon *** 477,483 **** * Returns the object that provides accessibility features for this * JOptionPane component. * ! * @return The accessible context (an instance of * {@link AccessibleJOptionPane}). */ public AccessibleContext getAccessibleContext() --- 477,483 ---- * Returns the object that provides accessibility features for this * JOptionPane component. * ! * @return The accessible context (an instance of * {@link AccessibleJOptionPane}). */ public AccessibleContext getAccessibleContext() *************** public class JOptionPane extends JCompon *** 700,708 **** { if (icon != newIcon) { ! Icon old = icon; ! icon = newIcon; ! firePropertyChange(ICON_PROPERTY, old, icon); } } --- 700,708 ---- { if (icon != newIcon) { ! Icon old = icon; ! icon = newIcon; ! firePropertyChange(ICON_PROPERTY, old, icon); } } *************** public class JOptionPane extends JCompon *** 715,724 **** { if (initialSelectionValue != newValue) { ! Object old = initialSelectionValue; ! initialSelectionValue = newValue; ! firePropertyChange(INITIAL_SELECTION_VALUE_PROPERTY, old, ! initialSelectionValue); } } --- 715,724 ---- { if (initialSelectionValue != newValue) { ! Object old = initialSelectionValue; ! initialSelectionValue = newValue; ! firePropertyChange(INITIAL_SELECTION_VALUE_PROPERTY, old, ! initialSelectionValue); } } *************** public class JOptionPane extends JCompon *** 731,739 **** { if (initialValue != newValue) { ! Object old = initialValue; ! initialValue = newValue; ! firePropertyChange(INITIAL_VALUE_PROPERTY, old, initialValue); } } --- 731,739 ---- { if (initialValue != newValue) { ! Object old = initialValue; ! initialValue = newValue; ! firePropertyChange(INITIAL_VALUE_PROPERTY, old, initialValue); } } *************** public class JOptionPane extends JCompon *** 746,754 **** { if (inputValue != newValue) { ! Object old = inputValue; ! inputValue = newValue; ! firePropertyChange(INPUT_VALUE_PROPERTY, old, inputValue); } } --- 746,754 ---- { if (inputValue != newValue) { ! Object old = inputValue; ! inputValue = newValue; ! firePropertyChange(INPUT_VALUE_PROPERTY, old, inputValue); } } *************** public class JOptionPane extends JCompon *** 761,769 **** { if (message != newMessage) { ! Object old = message; ! message = newMessage; ! firePropertyChange(MESSAGE_PROPERTY, old, message); } } --- 761,769 ---- { if (message != newMessage) { ! Object old = message; ! message = newMessage; ! firePropertyChange(MESSAGE_PROPERTY, old, message); } } *************** public class JOptionPane extends JCompon *** 780,788 **** throw new IllegalArgumentException("Message Type not legal value."); if (newType != messageType) { ! int old = messageType; ! messageType = newType; ! firePropertyChange(MESSAGE_TYPE_PROPERTY, old, messageType); } } --- 780,788 ---- throw new IllegalArgumentException("Message Type not legal value."); if (newType != messageType) { ! int old = messageType; ! messageType = newType; ! firePropertyChange(MESSAGE_TYPE_PROPERTY, old, messageType); } } *************** public class JOptionPane extends JCompon *** 795,803 **** { if (options != newOptions) { ! Object[] old = options; ! options = newOptions; ! firePropertyChange(OPTIONS_PROPERTY, old, options); } } --- 795,803 ---- { if (options != newOptions) { ! Object[] old = options; ! options = newOptions; ! firePropertyChange(OPTIONS_PROPERTY, old, options); } } *************** public class JOptionPane extends JCompon *** 814,822 **** throw new IllegalArgumentException("Option Type not legal value."); if (newType != optionType) { ! int old = optionType; ! optionType = newType; ! firePropertyChange(OPTION_TYPE_PROPERTY, old, optionType); } } --- 814,822 ---- throw new IllegalArgumentException("Option Type not legal value."); if (newType != optionType) { ! int old = optionType; ! optionType = newType; ! firePropertyChange(OPTION_TYPE_PROPERTY, old, optionType); } } *************** public class JOptionPane extends JCompon *** 840,850 **** { if (newValues != selectionValues) { ! if (newValues != null) ! wantsInput = true; ! Object[] old = selectionValues; ! selectionValues = newValues; ! firePropertyChange(SELECTION_VALUES_PROPERTY, old, selectionValues); } } --- 840,850 ---- { if (newValues != selectionValues) { ! if (newValues != null) ! wantsInput = true; ! Object[] old = selectionValues; ! selectionValues = newValues; ! firePropertyChange(SELECTION_VALUES_PROPERTY, old, selectionValues); } } *************** public class JOptionPane extends JCompon *** 867,875 **** { if (value != newValue) { ! Object old = value; ! value = newValue; ! firePropertyChange(VALUE_PROPERTY, old, value); } } --- 867,875 ---- { if (value != newValue) { ! Object old = value; ! value = newValue; ! firePropertyChange(VALUE_PROPERTY, old, value); } } *************** public class JOptionPane extends JCompon *** 882,890 **** { if (wantsInput != newValue) { ! boolean old = wantsInput; ! wantsInput = newValue; ! firePropertyChange(WANTS_INPUT_PROPERTY, old, wantsInput); } } --- 882,890 ---- { if (wantsInput != newValue) { ! boolean old = wantsInput; ! wantsInput = newValue; ! firePropertyChange(WANTS_INPUT_PROPERTY, old, wantsInput); } } *************** public class JOptionPane extends JCompon *** 904,910 **** JOptionPane pane = new JOptionPane(message, QUESTION_MESSAGE); JDialog dialog = pane.createDialog(parentComponent, "Select an Option"); dialog.show(); ! if (pane.getValue() instanceof Integer) return ((Integer) pane.getValue()).intValue(); return -1; --- 904,910 ---- JOptionPane pane = new JOptionPane(message, QUESTION_MESSAGE); JDialog dialog = pane.createDialog(parentComponent, "Select an Option"); dialog.show(); ! if (pane.getValue() instanceof Integer) return ((Integer) pane.getValue()).intValue(); return -1; *************** public class JOptionPane extends JCompon *** 1011,1017 **** pane.setWantsInput(true); JDialog dialog = pane.createDialog(parentComponent, null); dialog.show(); ! return (String) pane.getInputValue(); } --- 1011,1017 ---- pane.setWantsInput(true); JDialog dialog = pane.createDialog(parentComponent, null); dialog.show(); ! return (String) pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1037,1043 **** pane.setWantsInput(true); JDialog dialog = pane.createDialog(parentComponent, null); dialog.show(); ! return (String) pane.getInputValue(); } --- 1037,1043 ---- pane.setWantsInput(true); JDialog dialog = pane.createDialog(parentComponent, null); dialog.show(); ! return (String) pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1062,1068 **** pane.setWantsInput(true); JDialog dialog = pane.createDialog(parentComponent, title); dialog.show(); ! return (String) pane.getInputValue(); } --- 1062,1068 ---- pane.setWantsInput(true); JDialog dialog = pane.createDialog(parentComponent, title); dialog.show(); ! return (String) pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1094,1100 **** pane.setInitialSelectionValue(initialSelectionValue); JDialog dialog = pane.createDialog(parentComponent, title); dialog.show(); ! return pane.getInputValue(); } --- 1094,1100 ---- pane.setInitialSelectionValue(initialSelectionValue); JDialog dialog = pane.createDialog(parentComponent, title); dialog.show(); ! return pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1114,1120 **** pane.setWantsInput(true); JDialog dialog = pane.createDialog(null, null); dialog.show(); ! return (String) pane.getInputValue(); } --- 1114,1120 ---- pane.setWantsInput(true); JDialog dialog = pane.createDialog(null, null); dialog.show(); ! return (String) pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1138,1144 **** pane.setInitialSelectionValue(initialSelectionValue); JDialog dialog = pane.createDialog(null, null); dialog.show(); ! return (String) pane.getInputValue(); } --- 1138,1144 ---- pane.setInitialSelectionValue(initialSelectionValue); JDialog dialog = pane.createDialog(null, null); dialog.show(); ! return (String) pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1160,1166 **** JInternalFrame frame = pane.createInternalFrame(parentComponent, null); startModal(frame); ! if (pane.getValue() instanceof Integer) return ((Integer) pane.getValue()).intValue(); return -1; --- 1160,1166 ---- JInternalFrame frame = pane.createInternalFrame(parentComponent, null); startModal(frame); ! if (pane.getValue() instanceof Integer) return ((Integer) pane.getValue()).intValue(); return -1; *************** public class JOptionPane extends JCompon *** 1270,1276 **** JInternalFrame frame = pane.createInternalFrame(parentComponent, null); startModal(frame); ! return (String) pane.getInputValue(); } --- 1270,1276 ---- JInternalFrame frame = pane.createInternalFrame(parentComponent, null); startModal(frame); ! return (String) pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1296,1302 **** JInternalFrame frame = pane.createInternalFrame(parentComponent, title); startModal(frame); ! return (String) pane.getInputValue(); } --- 1296,1302 ---- JInternalFrame frame = pane.createInternalFrame(parentComponent, title); startModal(frame); ! return (String) pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1331,1337 **** JInternalFrame frame = pane.createInternalFrame(parentComponent, title); startModal(frame); ! return pane.getInputValue(); } --- 1331,1337 ---- JInternalFrame frame = pane.createInternalFrame(parentComponent, title); startModal(frame); ! return pane.getInputValue(); } *************** public class JOptionPane extends JCompon *** 1424,1430 **** JInternalFrame frame = pane.createInternalFrame(parentComponent, title); startModal(frame); ! if (pane.getValue() instanceof Integer) return ((Integer) pane.getValue()).intValue(); return -1; --- 1424,1430 ---- JInternalFrame frame = pane.createInternalFrame(parentComponent, title); startModal(frame); ! if (pane.getValue() instanceof Integer) return ((Integer) pane.getValue()).intValue(); return -1; *************** public class JOptionPane extends JCompon *** 1441,1447 **** { JOptionPane pane = new JOptionPane(message, INFORMATION_MESSAGE); JDialog dialog = pane.createDialog(parentComponent, null); ! dialog.show(); } /** --- 1441,1447 ---- { JOptionPane pane = new JOptionPane(message, INFORMATION_MESSAGE); JDialog dialog = pane.createDialog(parentComponent, null); ! dialog.show(); } /** *************** public class JOptionPane extends JCompon *** 1539,1545 **** case PLAIN_MESSAGE: case QUESTION_MESSAGE: case WARNING_MESSAGE: ! return true; } return false; } --- 1539,1545 ---- case PLAIN_MESSAGE: case QUESTION_MESSAGE: case WARNING_MESSAGE: ! return true; } return false; } *************** public class JOptionPane extends JCompon *** 1559,1565 **** case OK_CANCEL_OPTION: case YES_NO_CANCEL_OPTION: case YES_NO_OPTION: ! return true; } return false; } --- 1559,1565 ---- case OK_CANCEL_OPTION: case YES_NO_CANCEL_OPTION: case YES_NO_OPTION: ! return true; } return false; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JPanel.java gcc-4.6.0/libjava/classpath/javax/swing/JPanel.java *** gcc-4.5.2/libjava/classpath/javax/swing/JPanel.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JPanel.java Tue Jan 11 19:46:05 2011 *************** public class JPanel extends JComponent i *** 91,100 **** /** * Creates a new panel with double-buffering enabled or disabled as ! * specified. The default layout manager is an instance of * {@link FlowLayout}. ! * ! * @param isDoubleBuffered a flag that controls whether or not * double-buffering is enabled. */ public JPanel(boolean isDoubleBuffered) --- 91,100 ---- /** * Creates a new panel with double-buffering enabled or disabled as ! * specified. The default layout manager is an instance of * {@link FlowLayout}. ! * ! * @param isDoubleBuffered a flag that controls whether or not * double-buffering is enabled. */ public JPanel(boolean isDoubleBuffered) *************** public class JPanel extends JComponent i *** 105,111 **** /** * Creates a new panel with the specified layout manager. Double-buffering * is enabled by default. ! * * @param layout the layout manager (null permitted). */ public JPanel(LayoutManager layout) --- 105,111 ---- /** * Creates a new panel with the specified layout manager. Double-buffering * is enabled by default. ! * * @param layout the layout manager (null permitted). */ public JPanel(LayoutManager layout) *************** public class JPanel extends JComponent i *** 114,137 **** } /** ! * Creates a new panel with the specified layout manager and * double-buffering. ! * * @param layout the layout manager (null permitted). ! * @param isDoubleBuffered a flag that controls whether or not * double-buffering is enabled. */ public JPanel(LayoutManager layout, boolean isDoubleBuffered) { ! setLayout(layout); setOpaque(true); setDoubleBuffered(isDoubleBuffered); ! updateUI(); ! } /** ! * Returns the suffix ("PanelUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JPanel. * * @return "PanelUI". --- 114,137 ---- } /** ! * Creates a new panel with the specified layout manager and * double-buffering. ! * * @param layout the layout manager (null permitted). ! * @param isDoubleBuffered a flag that controls whether or not * double-buffering is enabled. */ public JPanel(LayoutManager layout, boolean isDoubleBuffered) { ! setLayout(layout); setOpaque(true); setDoubleBuffered(isDoubleBuffered); ! updateUI(); ! } /** ! * Returns the suffix ("PanelUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JPanel. * * @return "PanelUI". *************** public class JPanel extends JComponent i *** 143,151 **** /** * Sets the UI delegate for the JPanel component. ! * * @param ui the UI delegate. ! * * @since 1.4 * @see #getUI() */ --- 143,151 ---- /** * Sets the UI delegate for the JPanel component. ! * * @param ui the UI delegate. ! * * @since 1.4 * @see #getUI() */ *************** public class JPanel extends JComponent i *** 156,164 **** /** * Returns the UI delegate for the JPanel component. ! * * @return The UI delegate. ! * * @since 1.4 * @see #setUI(PanelUI) */ --- 156,164 ---- /** * Returns the UI delegate for the JPanel component. ! * * @return The UI delegate. ! * * @since 1.4 * @see #setUI(PanelUI) */ *************** public class JPanel extends JComponent i *** 188,194 **** accessibleContext = new AccessibleJPanel(); return accessibleContext; } ! /** * Returns an implementation-dependent string describing the attributes of * this JPanel. --- 188,194 ---- accessibleContext = new AccessibleJPanel(); return accessibleContext; } ! /** * Returns an implementation-dependent string describing the attributes of * this JPanel. *************** public class JPanel extends JComponent i *** 198,203 **** */ protected String paramString() { ! return super.paramString(); } } --- 198,203 ---- */ protected String paramString() { ! return super.paramString(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JPasswordField.java gcc-4.6.0/libjava/classpath/javax/swing/JPasswordField.java *** gcc-4.5.2/libjava/classpath/javax/swing/JPasswordField.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/JPasswordField.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.Document; *** 48,54 **** /** * class JPasswordField ! * * @author Andrew Selkirk * @author Lillian Angel * @version 1.0 --- 48,54 ---- /** * class JPasswordField ! * * @author Andrew Selkirk * @author Lillian Angel * @version 1.0 *************** public class JPasswordField extends JTex *** 72,78 **** /** * getAccessibleRole ! * * @return AccessibleRole */ public AccessibleRole getAccessibleRole() --- 72,78 ---- /** * getAccessibleRole ! * * @return AccessibleRole */ public AccessibleRole getAccessibleRole() *************** public class JPasswordField extends JTex *** 96,102 **** /** * Creates a JPasswordField object. ! * * @param text the initial text */ public JPasswordField(String text) --- 96,102 ---- /** * Creates a JPasswordField object. ! * * @param text the initial text */ public JPasswordField(String text) *************** public class JPasswordField extends JTex *** 106,112 **** /** * Creates a JPasswordField object. ! * * @param columns the number of columns */ public JPasswordField(int columns) --- 106,112 ---- /** * Creates a JPasswordField object. ! * * @param columns the number of columns */ public JPasswordField(int columns) *************** public class JPasswordField extends JTex *** 116,122 **** /** * Creates a JPasswordField object. ! * * @param text the initial text * @param columns the number of columns */ --- 116,122 ---- /** * Creates a JPasswordField object. ! * * @param text the initial text * @param columns the number of columns */ *************** public class JPasswordField extends JTex *** 127,133 **** /** * Creates a JPasswordField object. ! * * @param document the document to use * @param text the initial text * @param columns the number of columns --- 127,133 ---- /** * Creates a JPasswordField object. ! * * @param document the document to use * @param text the initial text * @param columns the number of columns *************** public class JPasswordField extends JTex *** 139,147 **** /** * writeObject ! * * @param stream the stream to write to ! * * @exception IOException if an error occurs */ private void writeObject(ObjectOutputStream stream) throws IOException --- 139,147 ---- /** * writeObject ! * * @param stream the stream to write to ! * * @exception IOException if an error occurs */ private void writeObject(ObjectOutputStream stream) throws IOException *************** public class JPasswordField extends JTex *** 151,157 **** /** * Returns the UIClassID ! * * @return the string "PasswordFieldUI" */ public String getUIClassID() --- 151,157 ---- /** * Returns the UIClassID ! * * @return the string "PasswordFieldUI" */ public String getUIClassID() *************** public class JPasswordField extends JTex *** 161,167 **** /** * getEchoChar ! * * @return the echo char */ public char getEchoChar() --- 161,167 ---- /** * getEchoChar ! * * @return the echo char */ public char getEchoChar() *************** public class JPasswordField extends JTex *** 171,177 **** /** * setEchoChar ! * * @param echo the echo char */ public void setEchoChar(char echo) --- 171,177 ---- /** * setEchoChar ! * * @param echo the echo char */ public void setEchoChar(char echo) *************** public class JPasswordField extends JTex *** 180,188 **** } /** ! * Returns true if this JPasswordField has a character set for echoing. * A character is considered to be set if the echo character is not 0. ! * * @return true if the echo char is set, * false otherwise. */ --- 180,188 ---- } /** ! * Returns true if this JPasswordField has a character set for echoing. * A character is considered to be set if the echo character is not 0. ! * * @return true if the echo char is set, * false otherwise. */ *************** public class JPasswordField extends JTex *** 210,220 **** } /** ! * Returns the text contained in this TextComponent. If the * underlying document is null, will give a NullPointerException. ! * * @return String ! * * @deprecated */ public String getText() --- 210,220 ---- } /** ! * Returns the text contained in this TextComponent. If the * underlying document is null, will give a NullPointerException. ! * * @return String ! * * @deprecated */ public String getText() *************** public class JPasswordField extends JTex *** 231,245 **** } /** ! * Fetches a portion of the text represented by the component. ! * Returns an empty string if length is 0. If the * underlying document is null, will give a NullPointerException. ! * * @param offset TODO * @param length TODO ! * * @return String ! * * @exception BadLocationException TODO * * @deprecated --- 231,245 ---- } /** ! * Fetches a portion of the text represented by the component. ! * Returns an empty string if length is 0. If the * underlying document is null, will give a NullPointerException. ! * * @param offset TODO * @param length TODO ! * * @return String ! * * @exception BadLocationException TODO * * @deprecated *************** public class JPasswordField extends JTex *** 250,260 **** } /** ! * Returns the text contained in this TextComponent. If the underlying ! * document is null, will give a NullPointerException. ! * For stronger security, it is recommended that the returned character * array be cleared after use by setting each character to zero. ! * * @return char[] */ public char[] getPassword() --- 250,260 ---- } /** ! * Returns the text contained in this TextComponent. If the underlying ! * document is null, will give a NullPointerException. ! * For stronger security, it is recommended that the returned character * array be cleared after use by setting each character to zero. ! * * @return char[] */ public char[] getPassword() *************** public class JPasswordField extends JTex *** 263,273 **** } /** ! * Returns a string representation of this JPasswordField. This method is ! * intended to be used only for debugging purposes, ! * and the content and format of the returned string may vary between * implementations. The returned string may be empty but may not be null. ! * * @return String */ protected String paramString() --- 263,273 ---- } /** ! * Returns a string representation of this JPasswordField. This method is ! * intended to be used only for debugging purposes, ! * and the content and format of the returned string may vary between * implementations. The returned string may be empty but may not be null. ! * * @return String */ protected String paramString() *************** public class JPasswordField extends JTex *** 284,290 **** /** * getAccessibleContext ! * * @return the AccessibleContext object */ public AccessibleContext getAccessibleContext() --- 284,290 ---- /** * getAccessibleContext ! * * @return the AccessibleContext object */ public AccessibleContext getAccessibleContext() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JPopupMenu.java gcc-4.6.0/libjava/classpath/javax/swing/JPopupMenu.java *** gcc-4.5.2/libjava/classpath/javax/swing/JPopupMenu.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JPopupMenu.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.PopupMenuUI; *** 79,88 **** * popupMenuBecomeInvisible() or popupMenuCancelled() methods of * PopupMenuListeners will be invoked. * ! * JPopupMenu also fires PropertyChangeEvents when its bound properties ! * change.In addittion to inheritted bound properties, JPopupMenu has * 'visible' bound property. When JPopupMenu becomes visible/invisible on ! * the screen it fires PropertyChangeEvents to its registered * PropertyChangeListeners. */ public class JPopupMenu extends JComponent implements Accessible, MenuElement --- 79,88 ---- * popupMenuBecomeInvisible() or popupMenuCancelled() methods of * PopupMenuListeners will be invoked. * ! * JPopupMenu also fires PropertyChangeEvents when its bound properties ! * change.In addittion to inheritted bound properties, JPopupMenu has * 'visible' bound property. When JPopupMenu becomes visible/invisible on ! * the screen it fires PropertyChangeEvents to its registered * PropertyChangeListeners. */ public class JPopupMenu extends JComponent implements Accessible, MenuElement *************** public class JPopupMenu extends JCompone *** 139,145 **** /* Field indicating if popup menu is visible or not */ private boolean visible = false; ! /** * Creates a new JPopupMenu object. */ --- 139,145 ---- /* Field indicating if popup menu is visible or not */ private boolean visible = false; ! /** * Creates a new JPopupMenu object. */ *************** public class JPopupMenu extends JCompone *** 326,332 **** */ public void setSelectionModel(SingleSelectionModel model) { ! selectionModel = model; } /** --- 326,332 ---- */ public void setSelectionModel(SingleSelectionModel model) { ! selectionModel = model; } /** *************** public class JPopupMenu extends JCompone *** 397,405 **** { if (label != this.label) { ! String oldLabel = this.label; ! this.label = label; ! firePropertyChange("label", oldLabel, label); } } --- 397,405 ---- { if (label != this.label) { ! String oldLabel = this.label; ! this.label = label; ! firePropertyChange("label", oldLabel, label); } } *************** public class JPopupMenu extends JCompone *** 408,447 **** */ public void addSeparator() { ! // insert separator at the end of the list of menu items this.insert(new Separator(), -1); } /** * Adds a MenuKeyListener to the popup. ! * * @param l - the listener to add. */ public void addMenuKeyListener(MenuKeyListener l) { listenerList.add(MenuKeyListener.class, l); } ! /** * Removes a MenuKeyListener from the popup. ! * * @param l - the listener to remove. */ public void removeMenuKeyListener(MenuKeyListener l) { listenerList.remove(MenuKeyListener.class, l); } ! /** * Returns array of getMenuKeyListeners that are listening to JPopupMenu. ! * * @return array of getMenuKeyListeners that are listening to JPopupMenu */ public MenuKeyListener[] getMenuKeyListeners() { return ((MenuKeyListener[]) listenerList.getListeners(MenuKeyListener.class)); } ! /** * Adds popupMenuListener to listen for PopupMenuEvents fired * by the JPopupMenu --- 408,447 ---- */ public void addSeparator() { ! // insert separator at the end of the list of menu items this.insert(new Separator(), -1); } /** * Adds a MenuKeyListener to the popup. ! * * @param l - the listener to add. */ public void addMenuKeyListener(MenuKeyListener l) { listenerList.add(MenuKeyListener.class, l); } ! /** * Removes a MenuKeyListener from the popup. ! * * @param l - the listener to remove. */ public void removeMenuKeyListener(MenuKeyListener l) { listenerList.remove(MenuKeyListener.class, l); } ! /** * Returns array of getMenuKeyListeners that are listening to JPopupMenu. ! * * @return array of getMenuKeyListeners that are listening to JPopupMenu */ public MenuKeyListener[] getMenuKeyListeners() { return ((MenuKeyListener[]) listenerList.getListeners(MenuKeyListener.class)); } ! /** * Adds popupMenuListener to listen for PopupMenuEvents fired * by the JPopupMenu *************** public class JPopupMenu extends JCompone *** 691,698 **** for (int i = 0; i < items.length; i++) { ! if (items[i].equals(component)) ! return i; } return -1; --- 691,698 ---- for (int i = 0; i < items.length; i++) { ! if (items[i].equals(component)) ! return i; } return -1; *************** public class JPopupMenu extends JCompone *** 783,789 **** } /** ! * Process mouse events forwarded from MenuSelectionManager. This method * doesn't do anything. It is here to conform to the MenuElement interface. * * @param event event forwarded from MenuSelectionManager --- 783,789 ---- } /** ! * Process mouse events forwarded from MenuSelectionManager. This method * doesn't do anything. It is here to conform to the MenuElement interface. * * @param event event forwarded from MenuSelectionManager *************** public class JPopupMenu extends JCompone *** 846,852 **** for (int i = 0; i < items.length; i++) if (items[i] instanceof MenuElement) ! subElements.add(items[i]); return (MenuElement[]) subElements.toArray(new MenuElement[subElements.size()]); --- 846,852 ---- for (int i = 0; i < items.length; i++) if (items[i] instanceof MenuElement) ! subElements.add(items[i]); return (MenuElement[]) subElements.toArray(new MenuElement[subElements.size()]); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JProgressBar.java gcc-4.6.0/libjava/classpath/javax/swing/JProgressBar.java *** gcc-4.5.2/libjava/classpath/javax/swing/JProgressBar.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JProgressBar.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ProgressBarUI; *** 57,64 **** /** * A component that displays a visual indicator of the progress of a task. The * component has two modes: determinate and indeterminate. In determinate mode, ! * the JProgressBar fills a percentage of its bar based on its ! * current value. In indeterminate mode, it creates box and bounces it between * its bounds. *

                                        * This component has the following properties: --- 57,64 ---- /** * A component that displays a visual indicator of the progress of a task. The * component has two modes: determinate and indeterminate. In determinate mode, ! * the JProgressBar fills a percentage of its bar based on its ! * current value. In indeterminate mode, it creates box and bounces it between * its bounds. *

                                        * This component has the following properties: *************** import javax.swing.plaf.ProgressBarUI; *** 67,76 **** * Property Stored in Bound? * borderPainted progressBar yes * changeListeners progressBar no ! * indeterminate progressBar yes * maximum model no * minimum model no ! * model progressBar no * orientation progressBar yes * percentComplete progressBar no * string progressBar yes --- 67,76 ---- * Property Stored in Bound? * borderPainted progressBar yes * changeListeners progressBar no ! * indeterminate progressBar yes * maximum model no * minimum model no ! * model progressBar no * orientation progressBar yes * percentComplete progressBar no * string progressBar yes *************** public class JProgressBar extends JCompo *** 89,105 **** implements AccessibleValue { private static final long serialVersionUID = -2938130009392721813L; ! /** * Creates a new AccessibleJProgressBar instance. */ protected AccessibleJProgressBar() { // Nothing to do here. ! } /** ! * Returns a set containing the current state of the {@link JProgressBar} * component. * * @return The accessible state set. --- 89,105 ---- implements AccessibleValue { private static final long serialVersionUID = -2938130009392721813L; ! /** * Creates a new AccessibleJProgressBar instance. */ protected AccessibleJProgressBar() { // Nothing to do here. ! } /** ! * Returns a set containing the current state of the {@link JProgressBar} * component. * * @return The accessible state set. *************** public class JProgressBar extends JCompo *** 112,118 **** else if (orientation == JProgressBar.VERTICAL) result.add(AccessibleState.VERTICAL); return result; ! } /** * Returns the accessible role for the JProgressBar component. --- 112,118 ---- else if (orientation == JProgressBar.VERTICAL) result.add(AccessibleState.VERTICAL); return result; ! } /** * Returns the accessible role for the JProgressBar component. *************** public class JProgressBar extends JCompo *** 122,131 **** public AccessibleRole getAccessibleRole() { return AccessibleRole.PROGRESS_BAR; ! } /** ! * Returns an object that provides access to the current, minimum and * maximum values. * * @return The accessible value. --- 122,131 ---- public AccessibleRole getAccessibleRole() { return AccessibleRole.PROGRESS_BAR; ! } /** ! * Returns an object that provides access to the current, minimum and * maximum values. * * @return The accessible value. *************** public class JProgressBar extends JCompo *** 133,139 **** public AccessibleValue getAccessibleValue() { return this; ! } /** * Returns the current value of the {@link JProgressBar} component, as an --- 133,139 ---- public AccessibleValue getAccessibleValue() { return this; ! } /** * Returns the current value of the {@link JProgressBar} component, as an *************** public class JProgressBar extends JCompo *** 148,161 **** /** * Sets the current value of the {@link JProgressBar} component and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered ! * listeners. If the supplied value is null, this method * does nothing and returns false. * * @param value the new progress bar value (null permitted). * ! * @return true if the slider value is updated, and * false otherwise. */ public boolean setCurrentAccessibleValue(Number value) --- 148,161 ---- /** * Sets the current value of the {@link JProgressBar} component and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered ! * listeners. If the supplied value is null, this method * does nothing and returns false. * * @param value the new progress bar value (null permitted). * ! * @return true if the slider value is updated, and * false otherwise. */ public boolean setCurrentAccessibleValue(Number value) *************** public class JProgressBar extends JCompo *** 164,170 **** return false; Number oldValue = getCurrentAccessibleValue(); setValue(value.intValue()); ! firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue, new Integer(getValue())); return true; } --- 164,170 ---- return false; Number oldValue = getCurrentAccessibleValue(); setValue(value.intValue()); ! firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue, new Integer(getValue())); return true; } *************** public class JProgressBar extends JCompo *** 190,252 **** { return new Integer(getMaximum()); } ! } private static final long serialVersionUID = 1980046021813598781L; ! ! /** ! * A flag that determines the mode (true for indeterminate, * false for determinate). */ private transient boolean indeterminate = false; ! /** ! * The orientation of the JProgressBar ! * ({@link SwingConstants#HORIZONTAL} or {@link SwingConstants#VERTICAL}). * Defaults to {@link SwingConstants#HORIZONTAL}. * @see #setOrientation(int) */ protected int orientation; ! /** * A flag the controls whether or not the component's border is painted. ! * The default is true. * @see #setBorderPainted(boolean) */ protected boolean paintBorder = true; ! /** * The model defining the bounds and current value for the progress bar. ! * @see #setModel(BoundedRangeModel) */ protected BoundedRangeModel model; ! /** ! * A custom string for display in the progress bar. If this is ! * null, a default string will be generated. * @see #setString(String) */ protected String progressString; ! /** ! * A flag that controls whether a string is displayed within the progress ! * bar. * @see #setStringPainted(boolean) */ protected boolean paintString = false; ! /** * A single change event reused for all events. ! * @see #fireStateChanged() */ protected transient ChangeEvent changeEvent; ! /** * The listener that is registered with the model. */ protected ChangeListener changeListener; /** ! * Creates a new JProgressBar with default attributes. The * following defaults are used: *

                                        *

                                          --- 190,252 ---- { return new Integer(getMaximum()); } ! } private static final long serialVersionUID = 1980046021813598781L; ! ! /** ! * A flag that determines the mode (true for indeterminate, * false for determinate). */ private transient boolean indeterminate = false; ! /** ! * The orientation of the JProgressBar ! * ({@link SwingConstants#HORIZONTAL} or {@link SwingConstants#VERTICAL}). * Defaults to {@link SwingConstants#HORIZONTAL}. * @see #setOrientation(int) */ protected int orientation; ! /** * A flag the controls whether or not the component's border is painted. ! * The default is true. * @see #setBorderPainted(boolean) */ protected boolean paintBorder = true; ! /** * The model defining the bounds and current value for the progress bar. ! * @see #setModel(BoundedRangeModel) */ protected BoundedRangeModel model; ! /** ! * A custom string for display in the progress bar. If this is ! * null, a default string will be generated. * @see #setString(String) */ protected String progressString; ! /** ! * A flag that controls whether a string is displayed within the progress ! * bar. * @see #setStringPainted(boolean) */ protected boolean paintString = false; ! /** * A single change event reused for all events. ! * @see #fireStateChanged() */ protected transient ChangeEvent changeEvent; ! /** * The listener that is registered with the model. */ protected ChangeListener changeListener; /** ! * Creates a new JProgressBar with default attributes. The * following defaults are used: *

                                          *

                                            *************** public class JProgressBar extends JCompo *** 254,260 **** *
                                          • minimum: 0;
                                          • *
                                          • maximum: 100;
                                          • *
                                          • orientation: {@link SwingConstants#HORIZONTAL}.
                                          • ! *
                                          */ public JProgressBar() { --- 254,260 ---- *
                                        • minimum: 0;
                                        • *
                                        • maximum: 100;
                                        • *
                                        • orientation: {@link SwingConstants#HORIZONTAL}.
                                        • ! *
                                        */ public JProgressBar() { *************** public class JProgressBar extends JCompo *** 262,279 **** } /** ! * Creates a new JProgressBar with the specified * orientation. The following defaults are used: *

                                        *

                                          *
                                        • value: 0;
                                        • *
                                        • minimum: 0;
                                        • *
                                        • maximum: 100;
                                        • ! *
                                        ! * ! * @param orientation the orientation ({@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not one of * the specified values. */ --- 262,279 ---- } /** ! * Creates a new JProgressBar with the specified * orientation. The following defaults are used: *

                                        *

                                          *
                                        • value: 0;
                                        • *
                                        • minimum: 0;
                                        • *
                                        • maximum: 100;
                                        • ! *
                                        ! * ! * @param orientation the orientation ({@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not one of * the specified values. */ *************** public class JProgressBar extends JCompo *** 289,296 **** *
                                          *
                                        • value: minimum;
                                        • *
                                        • orientation: {@link SwingConstants#HORIZONTAL}.
                                        • ! *
                                        ! * * @param minimum the lower bound of the value range. * @param maximum the upper bound of the value range. */ --- 289,296 ---- *
                                          *
                                        • value: minimum;
                                        • *
                                        • orientation: {@link SwingConstants#HORIZONTAL}.
                                        • ! *
                                        ! * * @param minimum the lower bound of the value range. * @param maximum the upper bound of the value range. */ *************** public class JProgressBar extends JCompo *** 305,317 **** *

                                        *

                                          *
                                        • value: minimum;
                                        • ! *
                                        ! * * @param minimum the lower bound of the value range. * @param maximum the upper bound of the value range. ! * @param orientation the orientation ({@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not one of * the specified values. */ --- 305,317 ---- *

                                        *

                                          *
                                        • value: minimum;
                                        • ! *
                                        ! * * @param minimum the lower bound of the value range. * @param maximum the upper bound of the value range. ! * @param orientation the orientation ({@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not one of * the specified values. */ *************** public class JProgressBar extends JCompo *** 320,326 **** model = new DefaultBoundedRangeModel(minimum, 0, minimum, maximum); if (orientation != HORIZONTAL && orientation != VERTICAL) throw new IllegalArgumentException(orientation ! + " is not a legal orientation"); this.orientation = orientation; changeListener = createChangeListener(); model.addChangeListener(changeListener); --- 320,326 ---- model = new DefaultBoundedRangeModel(minimum, 0, minimum, maximum); if (orientation != HORIZONTAL && orientation != VERTICAL) throw new IllegalArgumentException(orientation ! + " is not a legal orientation"); this.orientation = orientation; changeListener = createChangeListener(); model.addChangeListener(changeListener); *************** public class JProgressBar extends JCompo *** 333,340 **** *

                                        *

                                          *
                                        • orientation: {@link SwingConstants#HORIZONTAL}.
                                        • ! *
                                        ! * * @param model the model (null not permitted). */ public JProgressBar(BoundedRangeModel model) --- 333,340 ---- *

                                        *

                                          *
                                        • orientation: {@link SwingConstants#HORIZONTAL}.
                                        • ! *
                                        ! * * @param model the model (null not permitted). */ public JProgressBar(BoundedRangeModel model) *************** public class JProgressBar extends JCompo *** 343,357 **** changeListener = createChangeListener(); if (model != null) model.addChangeListener(changeListener); ! updateUI(); } /** ! * Returns the current value for the JProgressBar. This value * is fetched from the model. * * @return The current value. ! * * @see #setValue(int) */ public int getValue() --- 343,357 ---- changeListener = createChangeListener(); if (model != null) model.addChangeListener(changeListener); ! updateUI(); } /** ! * Returns the current value for the JProgressBar. This value * is fetched from the model. * * @return The current value. ! * * @see #setValue(int) */ public int getValue() *************** public class JProgressBar extends JCompo *** 361,378 **** /** * Sets the current value for the JProgressBar. The value is ! * stored in the component's model (see {@link #getModel()}). ! * If the new value is different to the old value, a {@link ChangeEvent} is ! * sent to the model's registered listeners. In turn, this triggers a call ! * to {@link #fireStateChanged()} which will send a ChangeEvent * to this component's registered listeners. *

                                        ! * If value is outside the range minimum to ! * maximum, it will be set to the nearest of those boundary * values. * * @param value the new value. ! * * @see #getValue() */ public void setValue(int value) --- 361,378 ---- /** * Sets the current value for the JProgressBar. The value is ! * stored in the component's model (see {@link #getModel()}). ! * If the new value is different to the old value, a {@link ChangeEvent} is ! * sent to the model's registered listeners. In turn, this triggers a call ! * to {@link #fireStateChanged()} which will send a ChangeEvent * to this component's registered listeners. *

                                        ! * If value is outside the range minimum to ! * maximum, it will be set to the nearest of those boundary * values. * * @param value the new value. ! * * @see #getValue() */ public void setValue(int value) *************** public class JProgressBar extends JCompo *** 385,391 **** * returns true. * * @param graphics the graphics object to paint with. ! * * @see #setBorderPainted(boolean) */ protected void paintBorder(Graphics graphics) --- 385,391 ---- * returns true. * * @param graphics the graphics object to paint with. ! * * @see #setBorderPainted(boolean) */ protected void paintBorder(Graphics graphics) *************** public class JProgressBar extends JCompo *** 397,408 **** /** * Returns the orientation of the JProgressBar component, which ! * is either {@link SwingConstants#HORIZONTAL} or ! * {@link SwingConstants#VERTICAL}. The default orientation is * HORIZONTAL. * * @return The orientation. ! * * @see #setOrientation(int) */ public int getOrientation() --- 397,408 ---- /** * Returns the orientation of the JProgressBar component, which ! * is either {@link SwingConstants#HORIZONTAL} or ! * {@link SwingConstants#VERTICAL}. The default orientation is * HORIZONTAL. * * @return The orientation. ! * * @see #setOrientation(int) */ public int getOrientation() *************** public class JProgressBar extends JCompo *** 412,433 **** /** * Sets the orientation for this JProgressBar component and, ! * if the value changes, sends a {@link PropertyChangeEvent} (with the * property name "orientation") to all registered listeners. * ! * @param orientation the orientation ({@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not * one of the listed values. ! * * @see #getOrientation() */ public void setOrientation(int orientation) { if (orientation != VERTICAL && orientation != HORIZONTAL) throw new IllegalArgumentException(orientation ! + " is not a legal orientation"); if (this.orientation != orientation) { int oldOrientation = this.orientation; --- 412,433 ---- /** * Sets the orientation for this JProgressBar component and, ! * if the value changes, sends a {@link PropertyChangeEvent} (with the * property name "orientation") to all registered listeners. * ! * @param orientation the orientation ({@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not * one of the listed values. ! * * @see #getOrientation() */ public void setOrientation(int orientation) { if (orientation != VERTICAL && orientation != HORIZONTAL) throw new IllegalArgumentException(orientation ! + " is not a legal orientation"); if (this.orientation != orientation) { int oldOrientation = this.orientation; *************** public class JProgressBar extends JCompo *** 438,449 **** /** * Returns the flag that controls whether or not the string returned by ! * {@link #getString()} is displayed by the JProgressBar * component. * ! * @return true if the string should be displayed, and * false otherwise. ! * * @see #setStringPainted(boolean) */ public boolean isStringPainted() --- 438,449 ---- /** * Returns the flag that controls whether or not the string returned by ! * {@link #getString()} is displayed by the JProgressBar * component. * ! * @return true if the string should be displayed, and * false otherwise. ! * * @see #setStringPainted(boolean) */ public boolean isStringPainted() *************** public class JProgressBar extends JCompo *** 453,465 **** /** * Sets the flag that controls whether or not the string returned by ! * {@link #getString()} is displayed by the JProgressBar ! * component. If the flag value changes, a {@link PropertyChangeEvent} (with ! * the property name "stringPainted") is sent to all registered * listeners. * * @param painted the new flag value. ! * * @see #isStringPainted() * @see #setString(String) */ --- 453,465 ---- /** * Sets the flag that controls whether or not the string returned by ! * {@link #getString()} is displayed by the JProgressBar ! * component. If the flag value changes, a {@link PropertyChangeEvent} (with ! * the property name "stringPainted") is sent to all registered * listeners. * * @param painted the new flag value. ! * * @see #isStringPainted() * @see #setString(String) */ *************** public class JProgressBar extends JCompo *** 474,486 **** } /** ! * Returns the string that is painted on the JProgressBar if ! * {@link #isStringPainted()} returns true. If no string has ! * been explicitly set, this method will return a string displaying the * value of {@link #getPercentComplete()}. * * @return The string. ! * * @see #setString(String) * @see #setStringPainted(boolean) */ --- 474,486 ---- } /** ! * Returns the string that is painted on the JProgressBar if ! * {@link #isStringPainted()} returns true. If no string has ! * been explicitly set, this method will return a string displaying the * value of {@link #getPercentComplete()}. * * @return The string. ! * * @see #setString(String) * @see #setStringPainted(boolean) */ *************** public class JProgressBar extends JCompo *** 494,506 **** /** * Sets the string to display within the progress bar and, if the new value ! * is different to the old value, sends a {@link PropertyChangeEvent} (with ! * the property name "string") to all registered listeners. If * the string is set to null, {@link #getString()} will return * a default string. * * @param string the string (null permitted). ! * * @see #getString() * @see #setStringPainted(boolean) */ --- 494,506 ---- /** * Sets the string to display within the progress bar and, if the new value ! * is different to the old value, sends a {@link PropertyChangeEvent} (with ! * the property name "string") to all registered listeners. If * the string is set to null, {@link #getString()} will return * a default string. * * @param string the string (null permitted). ! * * @see #getString() * @see #setStringPainted(boolean) */ *************** public class JProgressBar extends JCompo *** 508,514 **** { if (((string == null || progressString == null) && string != progressString) || (string != null && ! ! string.equals(progressString))) { String oldString = progressString; progressString = string; --- 508,514 ---- { if (((string == null || progressString == null) && string != progressString) || (string != null && ! ! string.equals(progressString))) { String oldString = progressString; progressString = string; *************** public class JProgressBar extends JCompo *** 517,523 **** } /** ! * Returns the current value expressed as a percentage. This is calculated * as (value - min) / (max - min). * * @return The percentage (a value in the range 0.0 to 1.0). --- 517,523 ---- } /** ! * Returns the current value expressed as a percentage. This is calculated * as (value - min) / (max - min). * * @return The percentage (a value in the range 0.0 to 1.0). *************** public class JProgressBar extends JCompo *** 527,533 **** if (getMaximum() == getMinimum()) return 1.0; else ! return (double) (model.getValue() - model.getMinimum()) / (model.getMaximum() - model.getMinimum()); } --- 527,533 ---- if (getMaximum() == getMinimum()) return 1.0; else ! return (double) (model.getValue() - model.getMinimum()) / (model.getMaximum() - model.getMinimum()); } *************** public class JProgressBar extends JCompo *** 537,543 **** * * @return true if the component's border should be painted, * and false otherwise. ! * * @see #setBorderPainted(boolean) */ public boolean isBorderPainted() --- 537,543 ---- * * @return true if the component's border should be painted, * and false otherwise. ! * * @see #setBorderPainted(boolean) */ public boolean isBorderPainted() *************** public class JProgressBar extends JCompo *** 547,558 **** /** * Sets the flag that controls whether or not the component's border is ! * painted. If the flag value is changed, this method sends a ! * {@link PropertyChangeEvent} (with the property name "borderPainted") to * all registered listeners. * * @param painted the new flag value. ! * * @see #isBorderPainted() * @see #paintBorder */ --- 547,558 ---- /** * Sets the flag that controls whether or not the component's border is ! * painted. If the flag value is changed, this method sends a ! * {@link PropertyChangeEvent} (with the property name "borderPainted") to * all registered listeners. * * @param painted the new flag value. ! * * @see #isBorderPainted() * @see #paintBorder */ *************** public class JProgressBar extends JCompo *** 587,593 **** } /** ! * Sets this JProgressBar's UI delegate to the default * (obtained from the {@link UIManager}) for the current look and feel. */ public void updateUI() --- 587,593 ---- } /** ! * Sets this JProgressBar's UI delegate to the default * (obtained from the {@link UIManager}) for the current look and feel. */ public void updateUI() *************** public class JProgressBar extends JCompo *** 596,603 **** } /** ! * Returns the suffix ("ProgressBarUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JProgressBar. * * @return "ProgressBarUI". --- 596,603 ---- } /** ! * Returns the suffix ("ProgressBarUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JProgressBar. * * @return "ProgressBarUI". *************** public class JProgressBar extends JCompo *** 608,618 **** } /** ! * Creates a new {@link ChangeListener} that calls * {@link #fireStateChanged()} whenever it receives a {@link ChangeEvent} ! * (typically from the component's model). This listener is ! * registered with the progress bar's model, so that changes made to the ! * model directly will automatically result in the progress bar's listeners * being notified also. * * @return A new listener. --- 608,618 ---- } /** ! * Creates a new {@link ChangeListener} that calls * {@link #fireStateChanged()} whenever it receives a {@link ChangeEvent} ! * (typically from the component's model). This listener is ! * registered with the progress bar's model, so that changes made to the ! * model directly will automatically result in the progress bar's listeners * being notified also. * * @return A new listener. *************** public class JProgressBar extends JCompo *** 624,639 **** public void stateChanged(ChangeEvent ce) { fireStateChanged(); ! } }; } /** ! * Registers a listener with this component so that it will receive * notification of component state changes. * * @param listener the listener. ! * * @see #removeChangeListener(ChangeListener) */ public void addChangeListener(ChangeListener listener) --- 624,639 ---- public void stateChanged(ChangeEvent ce) { fireStateChanged(); ! } }; } /** ! * Registers a listener with this component so that it will receive * notification of component state changes. * * @param listener the listener. ! * * @see #removeChangeListener(ChangeListener) */ public void addChangeListener(ChangeListener listener) *************** public class JProgressBar extends JCompo *** 646,676 **** * component state changes. * * @param listener the listener. ! * * @see #addChangeListener(ChangeListener) */ public void removeChangeListener(ChangeListener listener) { listenerList.remove(ChangeListener.class, listener); } ! /** * Returns an array of the listeners that are registered with this component. * The array may be empty, but is never null. * * @return An array of listeners. ! * * @since 1.4 */ public ChangeListener[] getChangeListeners() { return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ! } /** * Sends a {@link ChangeEvent} to all registered listeners to indicate that ! * the state of the JProgressBar has changed. ! * * @see #createChangeListener() */ protected void fireStateChanged() --- 646,676 ---- * component state changes. * * @param listener the listener. ! * * @see #addChangeListener(ChangeListener) */ public void removeChangeListener(ChangeListener listener) { listenerList.remove(ChangeListener.class, listener); } ! /** * Returns an array of the listeners that are registered with this component. * The array may be empty, but is never null. * * @return An array of listeners. ! * * @since 1.4 */ public ChangeListener[] getChangeListeners() { return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ! } /** * Sends a {@link ChangeEvent} to all registered listeners to indicate that ! * the state of the JProgressBar has changed. ! * * @see #createChangeListener() */ protected void fireStateChanged() *************** public class JProgressBar extends JCompo *** 689,695 **** * Returns the model for the JProgressBar. * * @return The model (never null). ! * * @see #setModel(BoundedRangeModel) */ public BoundedRangeModel getModel() --- 689,695 ---- * Returns the model for the JProgressBar. * * @return The model (never null). ! * * @see #setModel(BoundedRangeModel) */ public BoundedRangeModel getModel() *************** public class JProgressBar extends JCompo *** 698,708 **** } /** ! * Sets the model for the JProgressBar and sends a * {@link ChangeEvent} to all registered listeners. * * @param model the model (null not permitted). ! * * @see #getModel() */ public void setModel(BoundedRangeModel model) --- 698,708 ---- } /** ! * Sets the model for the JProgressBar and sends a * {@link ChangeEvent} to all registered listeners. * * @param model the model (null not permitted). ! * * @see #getModel() */ public void setModel(BoundedRangeModel model) *************** public class JProgressBar extends JCompo *** 717,728 **** } /** ! * Returns the minimum value for the JProgressBar. This defines ! * the lower bound for the current value, and is stored in the component's * model. * * @return The minimum value. ! * * @see #setMinimum(int) */ public int getMinimum() --- 717,728 ---- } /** ! * Returns the minimum value for the JProgressBar. This defines ! * the lower bound for the current value, and is stored in the component's * model. * * @return The minimum value. ! * * @see #setMinimum(int) */ public int getMinimum() *************** public class JProgressBar extends JCompo *** 732,745 **** /** * Sets the minimum value for the JProgressBar. The value is ! * stored in the component's model (see {@link #getModel()}). ! * If the new value is different to the old value, a {@link ChangeEvent} is ! * sent to the model's registered listeners. In turn, this triggers a call ! * to {@link #fireStateChanged()} which will send a ChangeEvent * to this component's registered listeners. ! * * @param minimum the minimum value. ! * * @see #getMinimum() */ public void setMinimum(int minimum) --- 732,745 ---- /** * Sets the minimum value for the JProgressBar. The value is ! * stored in the component's model (see {@link #getModel()}). ! * If the new value is different to the old value, a {@link ChangeEvent} is ! * sent to the model's registered listeners. In turn, this triggers a call ! * to {@link #fireStateChanged()} which will send a ChangeEvent * to this component's registered listeners. ! * * @param minimum the minimum value. ! * * @see #getMinimum() */ public void setMinimum(int minimum) *************** public class JProgressBar extends JCompo *** 748,759 **** } /** ! * Returns the maximum value for the JProgressBar. This defines ! * the upper bound for the current value, and is stored in the component's * model. * * @return The maximum value. ! * * @see #setMaximum(int) */ public int getMaximum() --- 748,759 ---- } /** ! * Returns the maximum value for the JProgressBar. This defines ! * the upper bound for the current value, and is stored in the component's * model. * * @return The maximum value. ! * * @see #setMaximum(int) */ public int getMaximum() *************** public class JProgressBar extends JCompo *** 763,776 **** /** * Sets the maximum value for the JProgressBar. The value is ! * stored in the component's model (see {@link #getModel()}). ! * If the new value is different to the old value, a {@link ChangeEvent} is ! * sent to the model's registered listeners. In turn, this triggers a call ! * to {@link #fireStateChanged()} which will send a ChangeEvent * to this component's registered listeners. * * @param maximum the maximum value. ! * * @see #getMaximum() */ public void setMaximum(int maximum) --- 763,776 ---- /** * Sets the maximum value for the JProgressBar. The value is ! * stored in the component's model (see {@link #getModel()}). ! * If the new value is different to the old value, a {@link ChangeEvent} is ! * sent to the model's registered listeners. In turn, this triggers a call ! * to {@link #fireStateChanged()} which will send a ChangeEvent * to this component's registered listeners. * * @param maximum the maximum value. ! * * @see #getMaximum() */ public void setMaximum(int maximum) *************** public class JProgressBar extends JCompo *** 782,788 **** * Returns an implementation-dependent string describing the attributes of * this JProgressBar. * ! * @return A string describing the attributes of this * JProgressBar (never null). */ protected String paramString() --- 782,788 ---- * Returns an implementation-dependent string describing the attributes of * this JProgressBar. * ! * @return A string describing the attributes of this * JProgressBar (never null). */ protected String paramString() *************** public class JProgressBar extends JCompo *** 806,822 **** /** * Sets the flag that controls the mode for this JProgressBar * (true for indeterminate mode, and false for ! * determinate mode). If the flag value changes, this method sends a ! * {@link PropertyChangeEvent} (with the property name * "indeterminate") to all registered listeners. *

                                        * If the JProgressBar is determinate, it paints a percentage ! * of the bar described by its value. If it is indeterminate, it simply ! * bounces a box between the ends of the bar; the value of the * JProgressBar is ignored. * * @param flag the new flag value. ! * * @see #isIndeterminate() * @since 1.4 */ --- 806,822 ---- /** * Sets the flag that controls the mode for this JProgressBar * (true for indeterminate mode, and false for ! * determinate mode). If the flag value changes, this method sends a ! * {@link PropertyChangeEvent} (with the property name * "indeterminate") to all registered listeners. *

                                        * If the JProgressBar is determinate, it paints a percentage ! * of the bar described by its value. If it is indeterminate, it simply ! * bounces a box between the ends of the bar; the value of the * JProgressBar is ignored. * * @param flag the new flag value. ! * * @see #isIndeterminate() * @since 1.4 */ *************** public class JProgressBar extends JCompo *** 831,841 **** /** * Returns a flag that indicates the mode for this JProgressBar ! * (true for indeterminate mode, and false for ! * determinate mode). * * @return A flag indicating the mode for the JProgressBar. ! * * @see #setIndeterminate(boolean) * @since 1.4 */ --- 831,841 ---- /** * Returns a flag that indicates the mode for this JProgressBar ! * (true for indeterminate mode, and false for ! * determinate mode). * * @return A flag indicating the mode for the JProgressBar. ! * * @see #setIndeterminate(boolean) * @since 1.4 */ *************** public class JProgressBar extends JCompo *** 848,861 **** * Returns the object that provides accessibility features for this * JProgressBar component. * ! * @return The accessible context (an instance of * {@link AccessibleJProgressBar}). */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleJProgressBar(); ! return accessibleContext; ! } } --- 848,861 ---- * Returns the object that provides accessibility features for this * JProgressBar component. * ! * @return The accessible context (an instance of * {@link AccessibleJProgressBar}). */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleJProgressBar(); ! return accessibleContext; ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JRadioButton.java gcc-4.6.0/libjava/classpath/javax/swing/JRadioButton.java *** gcc-4.5.2/libjava/classpath/javax/swing/JRadioButton.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/JRadioButton.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JRadioButton.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JRadioButton.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class JRadioButton extends JToggl *** 105,116 **** /** * Constructs an unselected radio button with no text or icon. ! */ public JRadioButton() { this(null, null, false); } ! /** * Constructs a radio button using the labelling, state * and icon specified by the supplied action. --- 105,116 ---- /** * Constructs an unselected radio button with no text or icon. ! */ public JRadioButton() { this(null, null, false); } ! /** * Constructs a radio button using the labelling, state * and icon specified by the supplied action. *************** public class JRadioButton extends JToggl *** 130,139 **** * @param icon the icon to use. */ public JRadioButton(Icon icon) ! { this(null, icon, false); ! } ! /** * Constructs a radio button with the supplied icon and state. * --- 130,139 ---- * @param icon the icon to use. */ public JRadioButton(Icon icon) ! { this(null, icon, false); ! } ! /** * Constructs a radio button with the supplied icon and state. * *************** public class JRadioButton extends JToggl *** 142,151 **** * selected state. Otherwise, the button is unselected. */ public JRadioButton(Icon icon, boolean selected) ! { this(null, icon, selected); ! } ! /** * Constructs an unselected radio button using the supplied text * and no icon. --- 142,151 ---- * selected state. Otherwise, the button is unselected. */ public JRadioButton(Icon icon, boolean selected) ! { this(null, icon, selected); ! } ! /** * Constructs an unselected radio button using the supplied text * and no icon. *************** public class JRadioButton extends JToggl *** 168,174 **** { this(text, null, selected); } ! /** * Constructs an unselected radio button with the supplied text * and icon. --- 168,174 ---- { this(text, null, selected); } ! /** * Constructs an unselected radio button with the supplied text * and icon. *************** public class JRadioButton extends JToggl *** 180,186 **** { this(text, icon, false); } ! /** * Constructs a radio button with the supplied text, icon and state. * --- 180,186 ---- { this(text, icon, false); } ! /** * Constructs a radio button with the supplied text, icon and state. * *************** public class JRadioButton extends JToggl *** 195,201 **** setBorderPainted(false); setHorizontalAlignment(LEADING); } ! /** * Returns the accessible context for this JRadioButton, * in the form of an instance of AccessibleJRadioButton. --- 195,201 ---- setBorderPainted(false); setHorizontalAlignment(LEADING); } ! /** * Returns the accessible context for this JRadioButton, * in the form of an instance of AccessibleJRadioButton. *************** public class JRadioButton extends JToggl *** 209,231 **** if (accessibleContext == null) { /* Create the context */ ! accessibleContext = new AccessibleJRadioButton(); } return accessibleContext; } ! /** * Returns a string specifying the name of the Look and Feel UI class * that renders this component. * * @return the Look and Feel UI class for JRadioButtons * as a String. ! */ public String getUIClassID() { return "RadioButtonUI"; } ! /** * Returns a string representation of this component for debugging use. * Users should not depend on anything as regards the content or formatting --- 209,231 ---- if (accessibleContext == null) { /* Create the context */ ! accessibleContext = new AccessibleJRadioButton(); } return accessibleContext; } ! /** * Returns a string specifying the name of the Look and Feel UI class * that renders this component. * * @return the Look and Feel UI class for JRadioButtons * as a String. ! */ public String getUIClassID() { return "RadioButtonUI"; } ! /** * Returns a string representation of this component for debugging use. * Users should not depend on anything as regards the content or formatting *************** public class JRadioButton extends JToggl *** 233,251 **** * null (only empty). * * @return the component in String form for debugging. ! */ protected String paramString() { return super.paramString(); } ! /** * This method resets the radio button's UI delegate to the default UI for * the current look and feel. */ public void updateUI() { ! /* I can't see any difference between this and the superclass one, but Sun reimplements it... there is no RadioButtonUI class for it to be cast to. --- 233,251 ---- * null (only empty). * * @return the component in String form for debugging. ! */ protected String paramString() { return super.paramString(); } ! /** * This method resets the radio button's UI delegate to the default UI for * the current look and feel. */ public void updateUI() { ! /* I can't see any difference between this and the superclass one, but Sun reimplements it... there is no RadioButtonUI class for it to be cast to. *************** public class JRadioButton extends JToggl *** 254,259 **** } } - - - --- 254,256 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JRadioButtonMenuItem.java gcc-4.6.0/libjava/classpath/javax/swing/JRadioButtonMenuItem.java *** gcc-4.5.2/libjava/classpath/javax/swing/JRadioButtonMenuItem.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JRadioButtonMenuItem.java Tue Jan 11 19:46:05 2011 *************** public class JRadioButtonMenuItem extend *** 169,180 **** } /** ! * Returns a string describing the attributes for the ! * JRadioButtonMenuItem component, for use in debugging. The ! * return value is guaranteed to be non-null, but the format of * the string may vary between implementations. * ! * @return A string describing the attributes of the * JRadioButtonMenuItem. */ protected String paramString() --- 169,180 ---- } /** ! * Returns a string describing the attributes for the ! * JRadioButtonMenuItem component, for use in debugging. The ! * return value is guaranteed to be non-null, but the format of * the string may vary between implementations. * ! * @return A string describing the attributes of the * JRadioButtonMenuItem. */ protected String paramString() *************** public class JRadioButtonMenuItem extend *** 187,193 **** * Returns the object that provides accessibility features for this * JRadioButtonMenuItem component. * ! * @return The accessible context (an instance of * {@link AccessibleJRadioButtonMenuItem}). */ public AccessibleContext getAccessibleContext() --- 187,193 ---- * Returns the object that provides accessibility features for this * JRadioButtonMenuItem component. * ! * @return The accessible context (an instance of * {@link AccessibleJRadioButtonMenuItem}). */ public AccessibleContext getAccessibleContext() *************** public class JRadioButtonMenuItem extend *** 199,207 **** } /** ! * Provides the accessibility features for the * JRadioButtonMenuItem component. ! * * @see JRadioButtonMenuItem#getAccessibleContext() */ protected class AccessibleJRadioButtonMenuItem extends AccessibleJMenuItem --- 199,207 ---- } /** ! * Provides the accessibility features for the * JRadioButtonMenuItem component. ! * * @see JRadioButtonMenuItem#getAccessibleContext() */ protected class AccessibleJRadioButtonMenuItem extends AccessibleJMenuItem *************** public class JRadioButtonMenuItem extend *** 217,223 **** } /** ! * Returns the accessible role for the JRadioButtonMenuItem * component. * * @return {@link AccessibleRole#RADIO_BUTTON}. --- 217,223 ---- } /** ! * Returns the accessible role for the JRadioButtonMenuItem * component. * * @return {@link AccessibleRole#RADIO_BUTTON}. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JRootPane.java gcc-4.6.0/libjava/classpath/javax/swing/JRootPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JRootPane.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JRootPane.java Tue Jan 11 19:46:05 2011 *************** public class JRootPane extends JComponen *** 93,99 **** } } ! // Custom Layout Manager for JRootPane. It positions contentPane and // menuBar withing its layeredPane. protected class RootLayout implements LayoutManager2, Serializable { --- 93,99 ---- } } ! // Custom Layout Manager for JRootPane. It positions contentPane and // menuBar withing its layeredPane. protected class RootLayout implements LayoutManager2, Serializable { *************** public class JRootPane extends JComponen *** 125,131 **** */ protected RootLayout() { ! // Nothing to do here. } /** --- 125,131 ---- */ protected RootLayout() { ! // Nothing to do here. } /** *************** public class JRootPane extends JComponen *** 208,214 **** // 2. the layeredPane filles entire viewable region. // 3. the menuBar is positioned at the upper edge of layeredPane. // 4. the contentPane fills viewable region minus menuBar, if present. ! // +-------------------------------+ // | JLayeredPane | --- 208,214 ---- // 2. the layeredPane filles entire viewable region. // 3. the menuBar is positioned at the upper edge of layeredPane. // 4. the contentPane fills viewable region minus menuBar, if present. ! // +-------------------------------+ // | JLayeredPane | *************** public class JRootPane extends JComponen *** 237,243 **** else contentPaneBounds = new Rectangle(0, 0, containerWidth, containerHeight); ! glassPaneBounds = new Rectangle(i.left, i.top, containerWidth, containerHeight); layeredPaneBounds = new Rectangle(i.left, i.top, containerWidth, containerHeight); } --- 237,243 ---- else contentPaneBounds = new Rectangle(0, 0, containerWidth, containerHeight); ! glassPaneBounds = new Rectangle(i.left, i.top, containerWidth, containerHeight); layeredPaneBounds = new Rectangle(i.left, i.top, containerWidth, containerHeight); } *************** public class JRootPane extends JComponen *** 321,327 **** public static final int FILE_CHOOSER_DIALOG = 6; public static final int QUESTION_DIALOG = 7; public static final int WARNING_DIALOG = 8; ! /** DOCUMENT ME! */ protected Component glassPane; --- 321,327 ---- public static final int FILE_CHOOSER_DIALOG = 6; public static final int QUESTION_DIALOG = 7; public static final int WARNING_DIALOG = 8; ! /** DOCUMENT ME! */ protected Component glassPane; *************** public class JRootPane extends JComponen *** 366,372 **** * @since 1.4 */ private int windowDecorationStyle = NONE; ! /** * DOCUMENT ME! * --- 366,372 ---- * @since 1.4 */ private int windowDecorationStyle = NONE; ! /** * DOCUMENT ME! * *************** public class JRootPane extends JComponen *** 432,438 **** /** * Sets the JRootPane's content pane. The content pane should typically be ! * opaque for painting to work properly. This method also * removes the old content pane from the layered pane. * * @param p the Container that will be the content pane --- 432,438 ---- /** * Sets the JRootPane's content pane. The content pane should typically be ! * opaque for painting to work properly. This method also * removes the old content pane from the layered pane. * * @param p the Container that will be the content pane *************** public class JRootPane extends JComponen *** 505,514 **** } /** ! * Set the layered pane for the root pane. * * @param f The JLayeredPane to be used. ! * * @throws IllegalComponentStateException if JLayeredPane * parameter is null. */ --- 505,514 ---- } /** ! * Set the layered pane for the root pane. * * @param f The JLayeredPane to be used. ! * * @throws IllegalComponentStateException if JLayeredPane * parameter is null. */ *************** public class JRootPane extends JComponen *** 516,525 **** { if (f == null) throw new IllegalComponentStateException(); ! if (layeredPane != null) remove(layeredPane); ! layeredPane = f; add(f, -1); } --- 516,525 ---- { if (f == null) throw new IllegalComponentStateException(); ! if (layeredPane != null) remove(layeredPane); ! layeredPane = f; add(f, -1); } *************** public class JRootPane extends JComponen *** 628,634 **** { return defaultButton; } ! public void setDefaultButton(JButton newButton) { // We only change the default button if the new button is defaultCapable --- 628,634 ---- { return defaultButton; } ! public void setDefaultButton(JButton newButton) { // We only change the default button if the new button is defaultCapable *************** public class JRootPane extends JComponen *** 665,671 **** && style != WARNING_DIALOG && style != PLAIN_DIALOG) throw new IllegalArgumentException("invalid style"); ! int oldStyle = windowDecorationStyle; windowDecorationStyle = style; firePropertyChange("windowDecorationStyle", oldStyle, style); --- 665,671 ---- && style != WARNING_DIALOG && style != PLAIN_DIALOG) throw new IllegalArgumentException("invalid style"); ! int oldStyle = windowDecorationStyle; windowDecorationStyle = style; firePropertyChange("windowDecorationStyle", oldStyle, style); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JScrollBar.java gcc-4.6.0/libjava/classpath/javax/swing/JScrollBar.java *** gcc-4.5.2/libjava/classpath/javax/swing/JScrollBar.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JScrollBar.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.ChangeListener; *** 57,63 **** import javax.swing.plaf.ScrollBarUI; /** ! * The JScrollBar. Two buttons control how the values that the * scroll bar can take. You can also drag the thumb or click the track * to move the scroll bar. Typically, the JScrollBar is used with * other components to translate the value of the bar to the viewable --- 57,63 ---- import javax.swing.plaf.ScrollBarUI; /** ! * The JScrollBar. Two buttons control how the values that the * scroll bar can take. You can also drag the thumb or click the track * to move the scroll bar. Typically, the JScrollBar is used with * other components to translate the value of the bar to the viewable *************** public class JScrollBar extends JCompone *** 73,79 **** implements AccessibleValue { private static final long serialVersionUID = -7758162392045586663L; ! /** * Creates a new AccessibleJScrollBar instance. */ --- 73,79 ---- implements AccessibleValue { private static final long serialVersionUID = -7758162392045586663L; ! /** * Creates a new AccessibleJScrollBar instance. */ *************** public class JScrollBar extends JCompone *** 83,89 **** } /** ! * Returns a set containing the current state of the {@link JScrollBar} * component. * * @return The accessible state set. --- 83,89 ---- } /** ! * Returns a set containing the current state of the {@link JScrollBar} * component. * * @return The accessible state set. *************** public class JScrollBar extends JCompone *** 109,115 **** } /** ! * Returns an object that provides access to the current, minimum and * maximum values. * * @return The accessible value. --- 109,115 ---- } /** ! * Returns an object that provides access to the current, minimum and * maximum values. * * @return The accessible value. *************** public class JScrollBar extends JCompone *** 132,145 **** /** * Sets the current value of the {@link JScrollBar} component and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered ! * listeners. If the supplied value is null, this method * does nothing and returns false. * * @param value the new slider value (null permitted). * ! * @return true if the slider value is updated, and * false otherwise. */ public boolean setCurrentAccessibleValue(Number value) --- 132,145 ---- /** * Sets the current value of the {@link JScrollBar} component and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered ! * listeners. If the supplied value is null, this method * does nothing and returns false. * * @param value the new slider value (null permitted). * ! * @return true if the slider value is updated, and * false otherwise. */ public boolean setCurrentAccessibleValue(Number value) *************** public class JScrollBar extends JCompone *** 148,154 **** return false; Number oldValue = getCurrentAccessibleValue(); setValue(value.intValue()); ! firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue, new Integer(getValue())); return true; } --- 148,154 ---- return false; Number oldValue = getCurrentAccessibleValue(); setValue(value.intValue()); ! firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue, new Integer(getValue())); return true; } *************** public class JScrollBar extends JCompone *** 195,205 **** m.getValueIsAdjusting()); } } ! } private static final long serialVersionUID = -8195169869225066566L; ! /** How much the thumb moves when moving in a block. */ protected int blockIncrement = 10; --- 195,205 ---- m.getValueIsAdjusting()); } } ! } private static final long serialVersionUID = -8195169869225066566L; ! /** How much the thumb moves when moving in a block. */ protected int blockIncrement = 10; *************** public class JScrollBar extends JCompone *** 218,224 **** */ private ChangeListener sbChangeListener; ! /** * Creates a new horizontal JScrollBar object with a minimum * of 0, a maxmium of 100, a value of 0 and an extent of 10. */ --- 218,224 ---- */ private ChangeListener sbChangeListener; ! /** * Creates a new horizontal JScrollBar object with a minimum * of 0, a maxmium of 100, a value of 0 and an extent of 10. */ *************** public class JScrollBar extends JCompone *** 228,234 **** } /** ! * Creates a new JScrollBar object with a minimum of 0, a * maximum of 100, a value of 0, an extent of 10 and the given * orientation. * --- 228,234 ---- } /** ! * Creates a new JScrollBar object with a minimum of 0, a * maximum of 100, a value of 0, an extent of 10 and the given * orientation. * *************** public class JScrollBar extends JCompone *** 240,246 **** } /** ! * Creates a new JScrollBar object with the given orientation, * value, min, max, and extent. * * @param orientation The orientation to use. --- 240,246 ---- } /** ! * Creates a new JScrollBar object with the given orientation, * value, min, max, and extent. * * @param orientation The orientation to use. *************** public class JScrollBar extends JCompone *** 294,300 **** } /** ! * This method returns an identifier to * choose the correct UI delegate for the * scrollbar. * --- 294,300 ---- } /** ! * This method returns an identifier to * choose the correct UI delegate for the * scrollbar. * *************** public class JScrollBar extends JCompone *** 327,341 **** throw new IllegalArgumentException("orientation must be one of HORIZONTAL or VERTICAL"); if (orientation != this.orientation) { ! int oldOrientation = this.orientation; ! this.orientation = orientation; ! firePropertyChange("orientation", oldOrientation, ! this.orientation); } } /** ! * This method returns the model being used with * the scrollbar. * * @return The scrollbar's model. --- 327,341 ---- throw new IllegalArgumentException("orientation must be one of HORIZONTAL or VERTICAL"); if (orientation != this.orientation) { ! int oldOrientation = this.orientation; ! this.orientation = orientation; ! firePropertyChange("orientation", oldOrientation, ! this.orientation); } } /** ! * This method returns the model being used with * the scrollbar. * * @return The scrollbar's model. *************** public class JScrollBar extends JCompone *** 364,370 **** /** * This method returns how much the scrollbar's value ! * should change for a unit increment depending on the * given direction. * * @param direction The direction to scroll in. --- 364,370 ---- /** * This method returns how much the scrollbar's value ! * should change for a unit increment depending on the * given direction. * * @param direction The direction to scroll in. *************** public class JScrollBar extends JCompone *** 385,394 **** { if (unitIncrement != this.unitIncrement) { ! int oldInc = this.unitIncrement; ! this.unitIncrement = unitIncrement; ! firePropertyChange("unitIncrement", oldInc, ! this.unitIncrement); } } --- 385,394 ---- { if (unitIncrement != this.unitIncrement) { ! int oldInc = this.unitIncrement; ! this.unitIncrement = unitIncrement; ! firePropertyChange("unitIncrement", oldInc, ! this.unitIncrement); } } *************** public class JScrollBar extends JCompone *** 415,424 **** { if (blockIncrement != this.blockIncrement) { ! int oldInc = this.blockIncrement; ! this.blockIncrement = blockIncrement; ! firePropertyChange("blockIncrement", oldInc, ! this.blockIncrement); } } --- 415,424 ---- { if (blockIncrement != this.blockIncrement) { ! int oldInc = this.blockIncrement; ! this.blockIncrement = blockIncrement; ! firePropertyChange("blockIncrement", oldInc, ! this.blockIncrement); } } *************** public class JScrollBar extends JCompone *** 463,470 **** } /** ! * This method returns the visible amount (AKA extent). ! * The visible amount can be used by UI delegates to * determine the size of the thumb. * * @return The visible amount (AKA extent). --- 463,470 ---- } /** ! * This method returns the visible amount (AKA extent). ! * The visible amount can be used by UI delegates to * determine the size of the thumb. * * @return The visible amount (AKA extent). *************** public class JScrollBar extends JCompone *** 545,551 **** } /** ! * This method sets the value, extent, minimum and * maximum. * * @param newValue The new value. --- 545,551 ---- } /** ! * This method sets the value, extent, minimum and * maximum. * * @param newValue The new value. *************** public class JScrollBar extends JCompone *** 570,576 **** } /** ! * This method removes an AdjustmentListener from the scroll bar. * * @param listener The listener to remove. */ --- 570,576 ---- } /** ! * This method removes an AdjustmentListener from the scroll bar. * * @param listener The listener to remove. */ *************** public class JScrollBar extends JCompone *** 580,586 **** } /** ! * This method returns an arry of all AdjustmentListeners listening to * this scroll bar. * * @return An array of AdjustmentListeners listening to this scroll bar. --- 580,586 ---- } /** ! * This method returns an arry of all AdjustmentListeners listening to * this scroll bar. * * @return An array of AdjustmentListeners listening to this scroll bar. *************** public class JScrollBar extends JCompone *** 594,600 **** * This method is called to fired AdjustmentEvents to the listeners * of this scroll bar. All AdjustmentEvents that are fired * will have an ID of ADJUSTMENT_VALUE_CHANGED and a type of ! * TRACK. * * @param id The ID of the adjustment event. * @param type The Type of change. --- 594,600 ---- * This method is called to fired AdjustmentEvents to the listeners * of this scroll bar. All AdjustmentEvents that are fired * will have an ID of ADJUSTMENT_VALUE_CHANGED and a type of ! * TRACK. * * @param id The ID of the adjustment event. * @param type The Type of change. *************** public class JScrollBar extends JCompone *** 658,671 **** */ public void setEnabled(boolean x) { ! // nothing special needs to be done here since we // just check the enabled setting before changing the value. super.setEnabled(x); } /** * Returns a string describing the attributes for the JScrollBar ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * --- 658,671 ---- */ public void setEnabled(boolean x) { ! // nothing special needs to be done here since we // just check the enabled setting before changing the value. super.setEnabled(x); } /** * Returns a string describing the attributes for the JScrollBar ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * *************** public class JScrollBar extends JCompone *** 678,684 **** sb.append(",orientation="); if (this.orientation == JScrollBar.HORIZONTAL) sb.append("HORIZONTAL"); ! else sb.append("VERTICAL"); sb.append(",unitIncrement=").append(unitIncrement); return sb.toString(); --- 678,684 ---- sb.append(",orientation="); if (this.orientation == JScrollBar.HORIZONTAL) sb.append("HORIZONTAL"); ! else sb.append("VERTICAL"); sb.append(",unitIncrement=").append(unitIncrement); return sb.toString(); *************** public class JScrollBar extends JCompone *** 688,694 **** * Returns the object that provides accessibility features for this * JScrollBar component. * ! * @return The accessible context (an instance of * {@link AccessibleJScrollBar}). */ public AccessibleContext getAccessibleContext() --- 688,694 ---- * Returns the object that provides accessibility features for this * JScrollBar component. * ! * @return The accessible context (an instance of * {@link AccessibleJScrollBar}). */ public AccessibleContext getAccessibleContext() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JScrollPane.java gcc-4.6.0/libjava/classpath/javax/swing/JScrollPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JScrollPane.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JScrollPane.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JScrollPane.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JScrollPane.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class JScrollPane extends JCompon *** 146,152 **** } private static final long serialVersionUID = 5203525440012340014L; ! protected JViewport columnHeader; protected JViewport rowHeader; --- 146,152 ---- } private static final long serialVersionUID = 5203525440012340014L; ! protected JViewport columnHeader; protected JViewport rowHeader; *************** public class JScrollPane extends JCompon *** 171,179 **** return columnHeader; } ! public Component getCorner(String key) { ! if (getComponentOrientation() == ComponentOrientation.LEFT_TO_RIGHT) { if (key == LOWER_LEADING_CORNER) --- 171,179 ---- return columnHeader; } ! public Component getCorner(String key) { ! if (getComponentOrientation() == ComponentOrientation.LEFT_TO_RIGHT) { if (key == LOWER_LEADING_CORNER) *************** public class JScrollPane extends JCompon *** 185,191 **** else if (key == UPPER_TRAILING_CORNER) key = UPPER_RIGHT_CORNER; } ! else if (getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) { if (key == LOWER_LEADING_CORNER) --- 185,191 ---- else if (key == UPPER_TRAILING_CORNER) key = UPPER_RIGHT_CORNER; } ! else if (getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) { if (key == LOWER_LEADING_CORNER) *************** public class JScrollPane extends JCompon *** 261,274 **** else { Rectangle b = getViewport().getBounds(); ! return new Rectangle(b.x - i.left, b.y - i.top, ! b.width + i.left + i.right, b.height + i.top + i.bottom); } } } ! public boolean isWheelScrollingEnabled() { return wheelScrollingEnabled; --- 261,274 ---- else { Rectangle b = getViewport().getBounds(); ! return new Rectangle(b.x - i.left, b.y - i.top, ! b.width + i.left + i.right, b.height + i.top + i.bottom); } } } ! public boolean isWheelScrollingEnabled() { return wheelScrollingEnabled; *************** public class JScrollPane extends JCompon *** 310,316 **** { if (columnHeader == h) return; ! JViewport old = columnHeader; removeNonNull(old); columnHeader = h; --- 310,316 ---- { if (columnHeader == h) return; ! JViewport old = columnHeader; removeNonNull(old); columnHeader = h; *************** public class JScrollPane extends JCompon *** 329,335 **** public void setCorner(String key, Component c) { ! if (getComponentOrientation() == ComponentOrientation.LEFT_TO_RIGHT) { if (key == LOWER_LEADING_CORNER) --- 329,335 ---- public void setCorner(String key, Component c) { ! if (getComponentOrientation() == ComponentOrientation.LEFT_TO_RIGHT) { if (key == LOWER_LEADING_CORNER) *************** public class JScrollPane extends JCompon *** 341,347 **** else if (key == UPPER_TRAILING_CORNER) key = UPPER_RIGHT_CORNER; } ! else if (getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) { if (key == LOWER_LEADING_CORNER) --- 341,347 ---- else if (key == UPPER_TRAILING_CORNER) key = UPPER_RIGHT_CORNER; } ! else if (getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) { if (key == LOWER_LEADING_CORNER) *************** public class JScrollPane extends JCompon *** 401,411 **** { if (horizontalScrollBarPolicy == h) return; ! if (h != HORIZONTAL_SCROLLBAR_AS_NEEDED && h != HORIZONTAL_SCROLLBAR_NEVER && h != HORIZONTAL_SCROLLBAR_ALWAYS) ! throw new IllegalArgumentException("unknown horizontal scrollbar policy"); int old = horizontalScrollBarPolicy; horizontalScrollBarPolicy = h; --- 401,411 ---- { if (horizontalScrollBarPolicy == h) return; ! if (h != HORIZONTAL_SCROLLBAR_AS_NEEDED && h != HORIZONTAL_SCROLLBAR_NEVER && h != HORIZONTAL_SCROLLBAR_ALWAYS) ! throw new IllegalArgumentException("unknown horizontal scrollbar policy"); int old = horizontalScrollBarPolicy; horizontalScrollBarPolicy = h; *************** public class JScrollPane extends JCompon *** 428,434 **** { if (rowHeader == v) return; ! JViewport old = rowHeader; removeNonNull(old); rowHeader = v; --- 428,434 ---- { if (rowHeader == v) return; ! JViewport old = rowHeader; removeNonNull(old); rowHeader = v; *************** public class JScrollPane extends JCompon *** 449,455 **** { if (verticalScrollBar == v) return; ! JScrollBar old = verticalScrollBar; removeNonNull(old); verticalScrollBar = v; --- 449,455 ---- { if (verticalScrollBar == v) return; ! JScrollBar old = verticalScrollBar; removeNonNull(old); verticalScrollBar = v; *************** public class JScrollPane extends JCompon *** 462,473 **** { if (verticalScrollBarPolicy == v) return; ! if (v != VERTICAL_SCROLLBAR_AS_NEEDED && v != VERTICAL_SCROLLBAR_NEVER && v != VERTICAL_SCROLLBAR_ALWAYS) ! throw new IllegalArgumentException("unknown vertical scrollbar policy"); ! int old = verticalScrollBarPolicy; verticalScrollBarPolicy = v; firePropertyChange("verticalScrollBarPolicy", old, v); --- 462,473 ---- { if (verticalScrollBarPolicy == v) return; ! if (v != VERTICAL_SCROLLBAR_AS_NEEDED && v != VERTICAL_SCROLLBAR_NEVER && v != VERTICAL_SCROLLBAR_ALWAYS) ! throw new IllegalArgumentException("unknown vertical scrollbar policy"); ! int old = verticalScrollBarPolicy; verticalScrollBarPolicy = v; firePropertyChange("verticalScrollBarPolicy", old, v); *************** public class JScrollPane extends JCompon *** 479,485 **** { if (wheelScrollingEnabled == b) return; ! boolean old = wheelScrollingEnabled; wheelScrollingEnabled = b; firePropertyChange("wheelScrollingEnabled", old, b); --- 479,485 ---- { if (wheelScrollingEnabled == b) return; ! boolean old = wheelScrollingEnabled; wheelScrollingEnabled = b; firePropertyChange("wheelScrollingEnabled", old, b); *************** public class JScrollPane extends JCompon *** 490,496 **** { if (viewport == v) return; ! JViewport old = viewport; removeNonNull(old); viewport = v; --- 490,496 ---- { if (viewport == v) return; ! JViewport old = viewport; removeNonNull(old); viewport = v; *************** public class JScrollPane extends JCompon *** 510,529 **** { if (viewportBorder == b) return; ! Border old = viewportBorder; viewportBorder = b; firePropertyChange("viewportBorder", old, b); sync(); } ! public void setViewportView(Component view) { if (getViewport() == null) { setViewport(createViewport()); } ! if (view != null) { getViewport().setView(view); --- 510,529 ---- { if (viewportBorder == b) return; ! Border old = viewportBorder; viewportBorder = b; firePropertyChange("viewportBorder", old, b); sync(); } ! public void setViewportView(Component view) { if (getViewport() == null) { setViewport(createViewport()); } ! if (view != null) { getViewport().setView(view); *************** public class JScrollPane extends JCompon *** 541,547 **** * policy is set to {@link #VERTICAL_SCROLLBAR_AS_NEEDED} and * {@link #HORIZONTAL_SCROLLBAR_AS_NEEDED}. */ ! public JScrollPane() { this(null); } --- 541,547 ---- * policy is set to {@link #VERTICAL_SCROLLBAR_AS_NEEDED} and * {@link #HORIZONTAL_SCROLLBAR_AS_NEEDED}. */ ! public JScrollPane() { this(null); } *************** public class JScrollPane extends JCompon *** 553,562 **** * * @param view the component that is embedded inside the JScrollPane */ ! public JScrollPane(Component view) { ! this(view, ! VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_AS_NEEDED); } --- 553,562 ---- * * @param view the component that is embedded inside the JScrollPane */ ! public JScrollPane(Component view) { ! this(view, ! VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_AS_NEEDED); } *************** public class JScrollPane extends JCompon *** 574,580 **** * @see ScrollPaneConstants#VERTICAL_SCROLLBAR_AS_NEEDED * @see ScrollPaneConstants#VERTICAL_SCROLLBAR_NEVER */ ! public JScrollPane(int vsbPolicy, int hsbPolicy) { this(null, vsbPolicy, hsbPolicy); } --- 574,580 ---- * @see ScrollPaneConstants#VERTICAL_SCROLLBAR_AS_NEEDED * @see ScrollPaneConstants#VERTICAL_SCROLLBAR_NEVER */ ! public JScrollPane(int vsbPolicy, int hsbPolicy) { this(null, vsbPolicy, hsbPolicy); } *************** public class JScrollPane extends JCompon *** 594,600 **** * @see ScrollPaneConstants#VERTICAL_SCROLLBAR_AS_NEEDED * @see ScrollPaneConstants#VERTICAL_SCROLLBAR_NEVER */ ! public JScrollPane(Component view, int vsbPolicy, int hsbPolicy) { wheelScrollingEnabled = true; setVerticalScrollBarPolicy(vsbPolicy); --- 594,600 ---- * @see ScrollPaneConstants#VERTICAL_SCROLLBAR_AS_NEEDED * @see ScrollPaneConstants#VERTICAL_SCROLLBAR_NEVER */ ! public JScrollPane(Component view, int vsbPolicy, int hsbPolicy) { wheelScrollingEnabled = true; setVerticalScrollBarPolicy(vsbPolicy); *************** public class JScrollPane extends JCompon *** 610,616 **** updateUI(); } ! public JScrollBar createHorizontalScrollBar() { return new ScrollBar(SwingConstants.HORIZONTAL); --- 610,616 ---- updateUI(); } ! public JScrollBar createHorizontalScrollBar() { return new ScrollBar(SwingConstants.HORIZONTAL); *************** public class JScrollPane extends JCompon *** 620,626 **** { return new ScrollBar(SwingConstants.VERTICAL); } ! protected JViewport createViewport() { return new JViewport(); --- 620,626 ---- { return new ScrollBar(SwingConstants.VERTICAL); } ! protected JViewport createViewport() { return new JViewport(); *************** public class JScrollPane extends JCompon *** 630,640 **** { return "ScrollPaneUI"; } ! public void updateUI() { setUI((ScrollPaneUI) UIManager.getUI(this)); ! } /** * This method returns the scrollpane's UI delegate. --- 630,640 ---- { return "ScrollPaneUI"; } ! public void updateUI() { setUI((ScrollPaneUI) UIManager.getUI(this)); ! } /** * This method returns the scrollpane's UI delegate. *************** public class JScrollPane extends JCompon *** 656,662 **** super.setUI(ui); } ! protected class ScrollBar extends JScrollBar implements UIResource { --- 656,662 ---- super.setUI(ui); } ! protected class ScrollBar extends JScrollBar implements UIResource { *************** public class JScrollPane extends JCompon *** 675,681 **** else { Scrollable s = (Scrollable) view; ! return s.getScrollableBlockIncrement(JScrollPane.this.getViewport().getViewRect(), this.getOrientation(), direction); } --- 675,681 ---- else { Scrollable s = (Scrollable) view; ! return s.getScrollableBlockIncrement(JScrollPane.this.getViewport().getViewRect(), this.getOrientation(), direction); } *************** public class JScrollPane extends JCompon *** 689,695 **** else { Scrollable s = (Scrollable) view; ! return s.getScrollableUnitIncrement(JScrollPane.this.getViewport().getViewRect(), this.getOrientation(), direction); } --- 689,695 ---- else { Scrollable s = (Scrollable) view; ! return s.getScrollableUnitIncrement(JScrollPane.this.getViewport().getViewRect(), this.getOrientation(), direction); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JSeparator.java gcc-4.6.0/libjava/classpath/javax/swing/JSeparator.java *** gcc-4.5.2/libjava/classpath/javax/swing/JSeparator.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JSeparator.java Tue Jan 11 19:46:05 2011 *************** public class JSeparator extends JCompone *** 58,64 **** protected class AccessibleJSeparator extends AccessibleJComponent { private static final long serialVersionUID = 916332890553201095L; ! /** * Creates a new AccessibleJSeparator instance. */ --- 58,64 ---- protected class AccessibleJSeparator extends AccessibleJComponent { private static final long serialVersionUID = 916332890553201095L; ! /** * Creates a new AccessibleJSeparator instance. */ *************** public class JSeparator extends JCompone *** 79,85 **** } private static final long serialVersionUID = 125301223445282357L; ! /** The orientation of the JSeparator. */ private transient int orientation = HORIZONTAL; --- 79,85 ---- } private static final long serialVersionUID = 125301223445282357L; ! /** The orientation of the JSeparator. */ private transient int orientation = HORIZONTAL; *************** public class JSeparator extends JCompone *** 94,102 **** /** * Creates a new JSeparator object with the given orientation. * ! * @param orientation the orientation (either {@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not * one of the specified values. */ --- 94,102 ---- /** * Creates a new JSeparator object with the given orientation. * ! * @param orientation the orientation (either {@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not * one of the specified values. */ *************** public class JSeparator extends JCompone *** 139,146 **** } /** ! * Returns the suffix ("SeparatorUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JSeparator. * * @return "SeparatorUI". --- 139,146 ---- } /** ! * Returns the suffix ("SeparatorUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JSeparator. * * @return "SeparatorUI". *************** public class JSeparator extends JCompone *** 154,160 **** * Returns the orientation of the JSeparator. * * @return The orientation (one of {@link #HORIZONTAL} and {@link #VERTICAL}). ! * * @see #setOrientation(int) */ public int getOrientation() --- 154,160 ---- * Returns the orientation of the JSeparator. * * @return The orientation (one of {@link #HORIZONTAL} and {@link #VERTICAL}). ! * * @see #setOrientation(int) */ public int getOrientation() *************** public class JSeparator extends JCompone *** 163,178 **** } /** ! * Sets the orientation for the JSeparator and sends a ! * {@link PropertyChangeEvent} (with the property name * orientation) to all registered listeners. * ! * @param orientation the orientation (either {@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not * one of the specified values. ! * * @see #getOrientation() */ public void setOrientation(int orientation) --- 163,178 ---- } /** ! * Sets the orientation for the JSeparator and sends a ! * {@link PropertyChangeEvent} (with the property name * orientation) to all registered listeners. * ! * @param orientation the orientation (either {@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not * one of the specified values. ! * * @see #getOrientation() */ public void setOrientation(int orientation) *************** public class JSeparator extends JCompone *** 205,218 **** * Returns the object that provides accessibility features for this * JSeparator component. * ! * @return The accessible context (an instance of * {@link AccessibleJSeparator}). */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleJSeparator(); ! return accessibleContext; } } --- 205,218 ---- * Returns the object that provides accessibility features for this * JSeparator component. * ! * @return The accessible context (an instance of * {@link AccessibleJSeparator}). */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleJSeparator(); ! return accessibleContext; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JSlider.java gcc-4.6.0/libjava/classpath/javax/swing/JSlider.java *** gcc-4.5.2/libjava/classpath/javax/swing/JSlider.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JSlider.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.UIResource; *** 67,83 **** *

                                        * A JSlider component has the following properties: *

                                        ! * * * * * * ! * * * * ! * * * * --- 67,83 ---- *

                                        * A JSlider component has the following properties: *

                                        ! * *
                                        Property Stored in Bound?
                                        extent model no
                                        inverted slider yes
                                        labelTable slider yes
                                        majorTickSpacing slider yes
                                        maximum model yes
                                        minimum model yes
                                        minorTickSpacing slider yes
                                        model slider yes
                                        orientation slider yes
                                        paintLabels slider yes
                                        paintTicks slider yes
                                        * * * * ! * * * * ! * * * * *************** import javax.swing.plaf.UIResource; *** 85,95 **** * * *
                                        Property Stored in Bound?
                                        extent model no
                                        inverted slider yes
                                        labelTable slider yes
                                        majorTickSpacing slider yes
                                        maximum model yes
                                        minimum model yes
                                        minorTickSpacing slider yes
                                        model slider yes
                                        orientation slider yes
                                        paintLabels slider yes
                                        paintTicks slider yes
                                        value model no
                                        valueIsAdjusting model no
                                        ! * *

                                        * The various behavioural aspects of these properties follows: *

                                        ! * *
                                          *
                                        • * When a non-bound property stored in the slider changes, the slider fires --- 85,95 ---- * value model no * valueIsAdjusting model no * ! * *

                                          * The various behavioural aspects of these properties follows: *

                                          ! * *
                                            *
                                          • * When a non-bound property stored in the slider changes, the slider fires *************** import javax.swing.plaf.UIResource; *** 100,110 **** * {@link PropertyChangeEvent} to its property change listeners. *
                                          • *
                                          • ! * If any of the model's properties change, it fires a {@link ChangeEvent} to * its listeners, which include the slider. *
                                          • *
                                          • ! * If the slider receives a {@link ChangeEvent} from its model, it will * propagate the event to its own change listeners, with the event's "source" * property set to refer to the slider, rather than the model. *
                                          • --- 100,110 ---- * {@link PropertyChangeEvent} to its property change listeners. * *
                                          • ! * If any of the model's properties change, it fires a {@link ChangeEvent} to * its listeners, which include the slider. *
                                          • *
                                          • ! * If the slider receives a {@link ChangeEvent} from its model, it will * propagate the event to its own change listeners, with the event's "source" * property set to refer to the slider, rather than the model. *
                                          • *************** public class JSlider extends JComponent *** 140,146 **** implements AccessibleValue { private static final long serialVersionUID = -6301740148041106789L; ! /** * Creates a new AccessibleJSlider instance. */ --- 140,146 ---- implements AccessibleValue { private static final long serialVersionUID = -6301740148041106789L; ! /** * Creates a new AccessibleJSlider instance. */ *************** public class JSlider extends JComponent *** 150,156 **** } /** ! * Returns a set containing the current state of the {@link JSlider} * component. * * @return The accessible state set. --- 150,156 ---- } /** ! * Returns a set containing the current state of the {@link JSlider} * component. * * @return The accessible state set. *************** public class JSlider extends JComponent *** 176,183 **** } /** ! * Returns an object that provides access to the current, minimum and ! * maximum values for the {@link JSlider}. Since this class implements * {@link AccessibleValue}, it returns itself. * * @return The accessible value. --- 176,183 ---- } /** ! * Returns an object that provides access to the current, minimum and ! * maximum values for the {@link JSlider}. Since this class implements * {@link AccessibleValue}, it returns itself. * * @return The accessible value. *************** public class JSlider extends JComponent *** 200,213 **** /** * Sets the current value of the {@link JSlider} component and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered ! * listeners. If the supplied value is null, this method * does nothing and returns false. * * @param value the new slider value (null permitted). * ! * @return true if the slider value is updated, and * false otherwise. */ public boolean setCurrentAccessibleValue(Number value) --- 200,213 ---- /** * Sets the current value of the {@link JSlider} component and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered ! * listeners. If the supplied value is null, this method * does nothing and returns false. * * @param value the new slider value (null permitted). * ! * @return true if the slider value is updated, and * false otherwise. */ public boolean setCurrentAccessibleValue(Number value) *************** public class JSlider extends JComponent *** 216,222 **** return false; Number oldValue = getCurrentAccessibleValue(); setValue(value.intValue()); ! firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue, new Integer(getValue())); return true; } --- 216,222 ---- return false; Number oldValue = getCurrentAccessibleValue(); setValue(value.intValue()); ! firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue, new Integer(getValue())); return true; } *************** public class JSlider extends JComponent *** 277,285 **** /** Whether the slider is inverted. */ private transient boolean isInverted; ! /** * The listener that monitors the slider's model and forwards events to the ! * slider's listeners (see createChangeListener()). */ protected ChangeListener changeListener; --- 277,285 ---- /** Whether the slider is inverted. */ private transient boolean isInverted; ! /** * The listener that monitors the slider's model and forwards events to the ! * slider's listeners (see createChangeListener()). */ protected ChangeListener changeListener; *************** public class JSlider extends JComponent *** 287,293 **** protected transient ChangeEvent changeEvent; /** ! * Creates a new horizontal JSlider instance with a minimum of * 0, a maximum of 100, and a value of 50. */ public JSlider() --- 287,293 ---- protected transient ChangeEvent changeEvent; /** ! * Creates a new horizontal JSlider instance with a minimum of * 0, a maximum of 100, and a value of 50. */ public JSlider() *************** public class JSlider extends JComponent *** 296,307 **** } /** ! * Creates a new JSlider instance with the given orientation * and a minimum of 0, a maximum of 100, and a value of 50. * * @param orientation The orientation of the slider ({@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not one of * the specified values. */ --- 296,307 ---- } /** ! * Creates a new JSlider instance with the given orientation * and a minimum of 0, a maximum of 100, and a value of 50. * * @param orientation The orientation of the slider ({@link #HORIZONTAL} or * {@link #VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not one of * the specified values. */ *************** public class JSlider extends JComponent *** 311,323 **** } /** ! * Creates a new horizontal JSlider instance with the given * maximum and minimum and a value that is halfway between the minimum and the * maximum. * * @param minimum The minimum value. * @param maximum The maximum value. ! * * @throws IllegalArgumentException if minimum is greater than * maximum. */ --- 311,323 ---- } /** ! * Creates a new horizontal JSlider instance with the given * maximum and minimum and a value that is halfway between the minimum and the * maximum. * * @param minimum The minimum value. * @param maximum The maximum value. ! * * @throws IllegalArgumentException if minimum is greater than * maximum. */ *************** public class JSlider extends JComponent *** 327,340 **** } /** ! * Creates a new horizontal JSlider instance with the given * minimum, maximum, and value. * * @param minimum The minimum value. * @param maximum The maximum value. * @param value The initial value. ! * ! * @throws IllegalArgumentException if value is not in the * specified range. * @throws IllegalArgumentException if minimum is greater than * maximum. --- 327,340 ---- } /** ! * Creates a new horizontal JSlider instance with the given * minimum, maximum, and value. * * @param minimum The minimum value. * @param maximum The maximum value. * @param value The initial value. ! * ! * @throws IllegalArgumentException if value is not in the * specified range. * @throws IllegalArgumentException if minimum is greater than * maximum. *************** public class JSlider extends JComponent *** 345,351 **** } /** ! * Creates a new JSlider instance with the given orientation, * minimum, maximum, and value. * * @param orientation The orientation of the slider ({@link #HORIZONTAL} or --- 345,351 ---- } /** ! * Creates a new JSlider instance with the given orientation, * minimum, maximum, and value. * * @param orientation The orientation of the slider ({@link #HORIZONTAL} or *************** public class JSlider extends JComponent *** 353,362 **** * @param minimum The minimum value of the JSlider. * @param maximum The maximum value of the JSlider. * @param value The initial value of the JSlider. ! * * @throws IllegalArgumentException if orientation is not one of * the specified values. ! * @throws IllegalArgumentException if value is not in the * specified range. * @throws IllegalArgumentException if minimum is greater than * maximum. --- 353,362 ---- * @param minimum The minimum value of the JSlider. * @param maximum The maximum value of the JSlider. * @param value The initial value of the JSlider. ! * * @throws IllegalArgumentException if orientation is not one of * the specified values. ! * @throws IllegalArgumentException if value is not in the * specified range. * @throws IllegalArgumentException if minimum is greater than * maximum. *************** public class JSlider extends JComponent *** 365,371 **** { sliderModel = new DefaultBoundedRangeModel(value, 0, minimum, maximum); if (orientation != HORIZONTAL && orientation != VERTICAL) ! throw new IllegalArgumentException(orientation + " is not a legal orientation"); this.orientation = orientation; changeListener = createChangeListener(); --- 365,371 ---- { sliderModel = new DefaultBoundedRangeModel(value, 0, minimum, maximum); if (orientation != HORIZONTAL && orientation != VERTICAL) ! throw new IllegalArgumentException(orientation + " is not a legal orientation"); this.orientation = orientation; changeListener = createChangeListener(); *************** public class JSlider extends JComponent *** 374,384 **** } /** ! * Creates a new horizontal JSlider instance with the given * model. * * @param model The model (null not permitted). ! * * @throws NullPointerException if model is null. */ public JSlider(BoundedRangeModel model) --- 374,384 ---- } /** ! * Creates a new horizontal JSlider instance with the given * model. * * @param model The model (null not permitted). ! * * @throws NullPointerException if model is null. */ public JSlider(BoundedRangeModel model) *************** public class JSlider extends JComponent *** 393,399 **** * Returns the slider's value (from the slider's model). * * @return The value of the slider. ! * * @see #setValue(int) */ public int getValue() --- 393,399 ---- * Returns the slider's value (from the slider's model). * * @return The value of the slider. ! * * @see #setValue(int) */ public int getValue() *************** public class JSlider extends JComponent *** 402,415 **** } /** ! * Sets the slider's value and sends a {@link ChangeEvent} to all * registered listeners. Note that the model will fire a change event to all * of its registered listeners first (with the model as the event source) and * then the slider will fire another change event to all of its registered * listeners (this time with the slider as the event source). * * @param value the new value. ! * * @see #getValue() */ public void setValue(int value) --- 402,415 ---- } /** ! * Sets the slider's value and sends a {@link ChangeEvent} to all * registered listeners. Note that the model will fire a change event to all * of its registered listeners first (with the model as the event source) and * then the slider will fire another change event to all of its registered * listeners (this time with the slider as the event source). * * @param value the new value. ! * * @see #getValue() */ public void setValue(int value) *************** public class JSlider extends JComponent *** 448,455 **** } /** ! * Returns the suffix ("SliderUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JSlider. * * @return "SliderUI". --- 448,455 ---- } /** ! * Returns the suffix ("SliderUI" in this case) used to ! * determine the class name for a UI delegate that can provide the look and * feel for a JSlider. * * @return "SliderUI". *************** public class JSlider extends JComponent *** 462,468 **** /** * Creates a {@link ChangeListener} that is added to the slider's model and * forwards change events generated by the model to the listeners that are ! * registered with the JSlider (by calling the * {@link #fireStateChanged} method). * * @return A new listener. --- 462,468 ---- /** * Creates a {@link ChangeListener} that is added to the slider's model and * forwards change events generated by the model to the listeners that are ! * registered with the JSlider (by calling the * {@link #fireStateChanged} method). * * @return A new listener. *************** public class JSlider extends JComponent *** 474,480 **** public void stateChanged(ChangeEvent ce) { // No need to trigger a repaint since the UI listens to the model ! // as well. All we need to do is pass on the stateChanged event // to our listeners. fireStateChanged(); } --- 474,480 ---- public void stateChanged(ChangeEvent ce) { // No need to trigger a repaint since the UI listens to the model ! // as well. All we need to do is pass on the stateChanged event // to our listeners. fireStateChanged(); } *************** public class JSlider extends JComponent *** 482,494 **** } /** ! * Registers a listener with the slider so that it will receive * {@link ChangeEvent} notifications. Note that change events generated * by the slider's model will be forwarded automatically to the slider's * listeners. * * @param listener the listener to register. ! * * @see #removeChangeListener(ChangeListener) */ public void addChangeListener(ChangeListener listener) --- 482,494 ---- } /** ! * Registers a listener with the slider so that it will receive * {@link ChangeEvent} notifications. Note that change events generated * by the slider's model will be forwarded automatically to the slider's * listeners. * * @param listener the listener to register. ! * * @see #removeChangeListener(ChangeListener) */ public void addChangeListener(ChangeListener listener) *************** public class JSlider extends JComponent *** 501,507 **** * {@link ChangeEvent} notifications from the slider. * * @param listener The listener to remove. ! * * @see #addChangeListener(ChangeListener) */ public void removeChangeListener(ChangeListener listener) --- 501,507 ---- * {@link ChangeEvent} notifications from the slider. * * @param listener The listener to remove. ! * * @see #addChangeListener(ChangeListener) */ public void removeChangeListener(ChangeListener listener) *************** public class JSlider extends JComponent *** 510,516 **** } /** ! * Sends a {@link ChangeEvent} to all registered listeners, with this slider * as the source. */ protected void fireStateChanged() --- 510,516 ---- } /** ! * Sends a {@link ChangeEvent} to all registered listeners, with this slider * as the source. */ protected void fireStateChanged() *************** public class JSlider extends JComponent *** 526,537 **** } /** ! * Returns an array containing all the {@link ChangeListener} instances * registered with this slider. If no listeners are registered, this method * returns an empty array. * ! * @return An array array containing all the {@link ChangeListener} instances ! * registered with this slider (possibly empty, but never * null). */ public ChangeListener[] getChangeListeners() --- 526,537 ---- } /** ! * Returns an array containing all the {@link ChangeListener} instances * registered with this slider. If no listeners are registered, this method * returns an empty array. * ! * @return An array array containing all the {@link ChangeListener} instances ! * registered with this slider (possibly empty, but never * null). */ public ChangeListener[] getChangeListeners() *************** public class JSlider extends JComponent *** 540,550 **** } /** ! * Returns the slider's model, which stores the minimum, maximum and current * values. * * @return The slider's model. ! * * @see #setModel(BoundedRangeModel) */ public BoundedRangeModel getModel() --- 540,550 ---- } /** ! * Returns the slider's model, which stores the minimum, maximum and current * values. * * @return The slider's model. ! * * @see #setModel(BoundedRangeModel) */ public BoundedRangeModel getModel() *************** public class JSlider extends JComponent *** 556,567 **** * Sets the slider's model and sends a {@link PropertyChangeEvent} (with the * property name "model") to all registered listeners. The change listener * that the slider registered with the original model is removed and added ! * to the new model (this ensures that {@link ChangeEvent} notifications * generated by the model are automatically forwarded to listeners that are * registered with the slider). * * @param model The model to use with the slider. ! * * @see #getModel() */ public void setModel(BoundedRangeModel model) --- 556,567 ---- * Sets the slider's model and sends a {@link PropertyChangeEvent} (with the * property name "model") to all registered listeners. The change listener * that the slider registered with the original model is removed and added ! * to the new model (this ensures that {@link ChangeEvent} notifications * generated by the model are automatically forwarded to listeners that are * registered with the slider). * * @param model The model to use with the slider. ! * * @see #getModel() */ public void setModel(BoundedRangeModel model) *************** public class JSlider extends JComponent *** 583,589 **** * Returns the minimum value of the slider (from the slider's model). * * @return The minimum value of the slider. ! * * @see #setMinimum(int) */ public int getMinimum() --- 583,589 ---- * Returns the minimum value of the slider (from the slider's model). * * @return The minimum value of the slider. ! * * @see #setMinimum(int) */ public int getMinimum() *************** public class JSlider extends JComponent *** 592,610 **** } /** ! * Sets the minimum value of the slider and fires a * {@link PropertyChangeEvent} (with the property name "minimum") to all * registered listeners. Note that: *

                                            *

                                              ! *
                                            • the minimum value is stored in the slider's model (see * {@link #getModel()});
                                            • ! *
                                            • in addition to the property change event, the slider also fires a * {@link ChangeEvent}.
                                            • *
                                            ! * * @param minimum The minimum value of the slider. ! * * @see #getMinimum() */ public void setMinimum(int minimum) --- 592,610 ---- } /** ! * Sets the minimum value of the slider and fires a * {@link PropertyChangeEvent} (with the property name "minimum") to all * registered listeners. Note that: *

                                            *

                                              ! *
                                            • the minimum value is stored in the slider's model (see * {@link #getModel()});
                                            • ! *
                                            • in addition to the property change event, the slider also fires a * {@link ChangeEvent}.
                                            • *
                                            ! * * @param minimum The minimum value of the slider. ! * * @see #getMinimum() */ public void setMinimum(int minimum) *************** public class JSlider extends JComponent *** 619,625 **** * Returns the slider's maximum value (obtained from the slider's model). * * @return The maximum value of the slider. ! * * @see #setMaximum(int) */ public int getMaximum() --- 619,625 ---- * Returns the slider's maximum value (obtained from the slider's model). * * @return The maximum value of the slider. ! * * @see #setMaximum(int) */ public int getMaximum() *************** public class JSlider extends JComponent *** 628,646 **** } /** ! * Sets the maximum value of the slider and fires a * {@link PropertyChangeEvent} (with the property name "maximum") to all * registered listeners. Note that: *

                                            *

                                              ! *
                                            • the maximum value is stored in the slider's model (see * {@link #getModel()});
                                            • ! *
                                            • in addition to the property change event, the slider also fires a * {@link ChangeEvent}.
                                            • *
                                            * * @param maximum The maximum value of the slider. ! * * @see #getMaximum() */ public void setMaximum(int maximum) --- 628,646 ---- } /** ! * Sets the maximum value of the slider and fires a * {@link PropertyChangeEvent} (with the property name "maximum") to all * registered listeners. Note that: *

                                            *

                                              ! *
                                            • the maximum value is stored in the slider's model (see * {@link #getModel()});
                                            • ! *
                                            • in addition to the property change event, the slider also fires a * {@link ChangeEvent}.
                                            • *
                                            * * @param maximum The maximum value of the slider. ! * * @see #getMaximum() */ public void setMaximum(int maximum) *************** public class JSlider extends JComponent *** 655,661 **** * Returns the valueIsAdjusting flag from the slider's model. * * @return The valueIsAdjusting flag from the slider's model. ! * * @see #setValueIsAdjusting(boolean) */ public boolean getValueIsAdjusting() --- 655,661 ---- * Returns the valueIsAdjusting flag from the slider's model. * * @return The valueIsAdjusting flag from the slider's model. ! * * @see #setValueIsAdjusting(boolean) */ public boolean getValueIsAdjusting() *************** public class JSlider extends JComponent *** 664,674 **** } /** ! * Sets the valueIsAdjusting flag in the slider's model, and * sends a {@link ChangeEvent} to all registered listeners. * * @param adjusting the new flag value. ! * * @see #getValueIsAdjusting() */ public void setValueIsAdjusting(boolean adjusting) --- 664,674 ---- } /** ! * Sets the valueIsAdjusting flag in the slider's model, and * sends a {@link ChangeEvent} to all registered listeners. * * @param adjusting the new flag value. ! * * @see #getValueIsAdjusting() */ public void setValueIsAdjusting(boolean adjusting) *************** public class JSlider extends JComponent *** 680,686 **** * Returns the slider's extent value, obtained from the slider's model. * * @return The extent value. ! * * @see #setExtent(int) */ public int getExtent() --- 680,686 ---- * Returns the slider's extent value, obtained from the slider's model. * * @return The extent value. ! * * @see #setExtent(int) */ public int getExtent() *************** public class JSlider extends JComponent *** 689,702 **** } /** ! * Sets the slider's extent value and sends a {@link ChangeEvent} to all * registered listeners. Note that the model will fire a change event to all * of its registered listeners first (with the model as the event source) and * then the slider will fire another change event to all of its registered * listeners (this time with the slider as the event source). * * @param extent The extent value for this slider. ! * * @see #getExtent() */ public void setExtent(int extent) --- 689,702 ---- } /** ! * Sets the slider's extent value and sends a {@link ChangeEvent} to all * registered listeners. Note that the model will fire a change event to all * of its registered listeners first (with the model as the event source) and * then the slider will fire another change event to all of its registered * listeners (this time with the slider as the event source). * * @param extent The extent value for this slider. ! * * @see #getExtent() */ public void setExtent(int extent) *************** public class JSlider extends JComponent *** 709,715 **** * or {@link JSlider#VERTICAL}. * * @return The orientation of the slider. ! * * @see #setOrientation(int) */ public int getOrientation() --- 709,715 ---- * or {@link JSlider#VERTICAL}. * * @return The orientation of the slider. ! * * @see #setOrientation(int) */ public int getOrientation() *************** public class JSlider extends JComponent *** 718,733 **** } /** ! * Sets the orientation for the slider and sends a * {@link PropertyChangeEvent} (with the property name "orientation") to all * registered listeners. * * @param orientation the orientation (one of {@link JSlider#HORIZONTAL} or * {@link JSlider#VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not one of * the permitted values. ! * * @see #getOrientation() */ public void setOrientation(int orientation) --- 718,733 ---- } /** ! * Sets the orientation for the slider and sends a * {@link PropertyChangeEvent} (with the property name "orientation") to all * registered listeners. * * @param orientation the orientation (one of {@link JSlider#HORIZONTAL} or * {@link JSlider#VERTICAL}). ! * * @throws IllegalArgumentException if orientation is not one of * the permitted values. ! * * @see #getOrientation() */ public void setOrientation(int orientation) *************** public class JSlider extends JComponent *** 748,754 **** * Returns the label table for the slider. * * @return The label table for the slider (possibly null). ! * * @see #setLabelTable(Dictionary) */ public Dictionary getLabelTable() --- 748,754 ---- * Returns the label table for the slider. * * @return The label table for the slider (possibly null). ! * * @see #setLabelTable(Dictionary) */ public Dictionary getLabelTable() *************** public class JSlider extends JComponent *** 757,768 **** } /** ! * Sets the table of labels for the slider and sends a ! * {@link PropertyChangeEvent} (with the property name "labelTable") to all * registered listeners. * * @param table the table of labels (null permitted). ! * * @see #getLabelTable() */ public void setLabelTable(Dictionary table) --- 757,768 ---- } /** ! * Sets the table of labels for the slider and sends a ! * {@link PropertyChangeEvent} (with the property name "labelTable") to all * registered listeners. * * @param table the table of labels (null permitted). ! * * @see #getLabelTable() */ public void setLabelTable(Dictionary table) *************** public class JSlider extends JComponent *** 779,785 **** } /** ! * Resets the UI delegates for the labels in the labelTable to * the default for the current look and feel. */ protected void updateLabelUIs() --- 779,785 ---- } /** ! * Resets the UI delegates for the labels in the labelTable to * the default for the current look and feel. */ protected void updateLabelUIs() *************** public class JSlider extends JComponent *** 800,807 **** } /** ! * Creates a hashtable of (Integer, JLabel) pairs that can be ! * used as a label table for this slider. The labels will start from the * slider's minimum and increase by the increment. Each label will have a text * string indicating its integer value. * --- 800,807 ---- } /** ! * Creates a hashtable of (Integer, JLabel) pairs that can be ! * used as a label table for this slider. The labels will start from the * slider's minimum and increase by the increment. Each label will have a text * string indicating its integer value. * *************** public class JSlider extends JComponent *** 818,826 **** } /** ! * Creates a hashtable of (Integer, JLabel) pairs that can be ! * used as a label table for this slider. The labels will start from the ! * given start value and increase by the increment. Each label will have a * text string indicating its integer value. * * @param increment The increment between labels (must be > 0). --- 818,826 ---- } /** ! * Creates a hashtable of (Integer, JLabel) pairs that can be ! * used as a label table for this slider. The labels will start from the ! * given start value and increase by the increment. Each label will have a * text string indicating its integer value. * * @param increment The increment between labels (must be > 0). *************** public class JSlider extends JComponent *** 834,840 **** */ public Hashtable createStandardLabels(int increment, int start) { ! if (increment <= 0) throw new IllegalArgumentException("Requires 'increment' > 0."); if (start < getMinimum() || start > getMaximum()) throw new IllegalArgumentException("The 'start' value is out of range."); --- 834,840 ---- */ public Hashtable createStandardLabels(int increment, int start) { ! if (increment <= 0) throw new IllegalArgumentException("Requires 'increment' > 0."); if (start < getMinimum() || start > getMaximum()) throw new IllegalArgumentException("The 'start' value is out of range."); *************** public class JSlider extends JComponent *** 855,861 **** * * @return The flag that controls whether or not the value scale for the * slider is inverted. ! * * @see #setInverted(boolean) */ public boolean getInverted() --- 855,861 ---- * * @return The flag that controls whether or not the value scale for the * slider is inverted. ! * * @see #setInverted(boolean) */ public boolean getInverted() *************** public class JSlider extends JComponent *** 867,880 **** * Sets the flag that controls whether or not the value scale for the * slider is inverted and, if the new flag value is different to the old flag * value, sends a {@link PropertyChangeEvent} to all registered listeners. ! * Typically, a horizontal slider will display a scale that increases from ! * left to right, but this is reversed if the 'inverted' flag is set to * true. Similarly, a vertical slider will display a scale that * increases from bottom to top, and this is reversed if the 'inverted' flag * is set to true. * * @param inverted the new flag value. ! * * @see #getInverted() */ public void setInverted(boolean inverted) --- 867,880 ---- * Sets the flag that controls whether or not the value scale for the * slider is inverted and, if the new flag value is different to the old flag * value, sends a {@link PropertyChangeEvent} to all registered listeners. ! * Typically, a horizontal slider will display a scale that increases from ! * left to right, but this is reversed if the 'inverted' flag is set to * true. Similarly, a vertical slider will display a scale that * increases from bottom to top, and this is reversed if the 'inverted' flag * is set to true. * * @param inverted the new flag value. ! * * @see #getInverted() */ public void setInverted(boolean inverted) *************** public class JSlider extends JComponent *** 889,899 **** } /** ! * Returns the distance between major tick marks along the slider's value * scale. * * @return The amount of units between each major tick mark. ! * * @see #setMajorTickSpacing(int) */ public int getMajorTickSpacing() --- 889,899 ---- } /** ! * Returns the distance between major tick marks along the slider's value * scale. * * @return The amount of units between each major tick mark. ! * * @see #setMajorTickSpacing(int) */ public int getMajorTickSpacing() *************** public class JSlider extends JComponent *** 902,913 **** } /** ! * Sets the distance between major tick marks along the slider's value scale, ! * and sends a {@link PropertyChangeEvent} (with the property name * "majorTickSpacing") to all registered listeners. * * @param spacing the distance between major tick marks. ! * * @see #getMajorTickSpacing() */ public void setMajorTickSpacing(int spacing) --- 902,913 ---- } /** ! * Sets the distance between major tick marks along the slider's value scale, ! * and sends a {@link PropertyChangeEvent} (with the property name * "majorTickSpacing") to all registered listeners. * * @param spacing the distance between major tick marks. ! * * @see #getMajorTickSpacing() */ public void setMajorTickSpacing(int spacing) *************** public class JSlider extends JComponent *** 925,936 **** } /** ! * Returns the distance between minor tick marks along the slider's value * scale. * ! * @return The distance between minor tick marks along the slider's value * scale. ! * * @see #setMinorTickSpacing(int) */ public int getMinorTickSpacing() --- 925,936 ---- } /** ! * Returns the distance between minor tick marks along the slider's value * scale. * ! * @return The distance between minor tick marks along the slider's value * scale. ! * * @see #setMinorTickSpacing(int) */ public int getMinorTickSpacing() *************** public class JSlider extends JComponent *** 939,950 **** } /** ! * Sets the distance between minor tick marks along the slider's value scale, ! * and sends a {@link PropertyChangeEvent} (with the property name * "minorTickSpacing") to all registered listeners. * * @param spacing the distance between minor tick marks. ! * * @see #getMinorTickSpacing() */ public void setMinorTickSpacing(int spacing) --- 939,950 ---- } /** ! * Sets the distance between minor tick marks along the slider's value scale, ! * and sends a {@link PropertyChangeEvent} (with the property name * "minorTickSpacing") to all registered listeners. * * @param spacing the distance between minor tick marks. ! * * @see #getMinorTickSpacing() */ public void setMinorTickSpacing(int spacing) *************** public class JSlider extends JComponent *** 961,971 **** /** * Returns the flag that controls whether the slider thumb will snap to ticks. ! * Sliders that snap to ticks will automatically move the thumb to the * nearest tick mark. * * @return true if the slider thumb automatically. ! * * @see #setSnapToTicks(boolean) */ public boolean getSnapToTicks() --- 961,971 ---- /** * Returns the flag that controls whether the slider thumb will snap to ticks. ! * Sliders that snap to ticks will automatically move the thumb to the * nearest tick mark. * * @return true if the slider thumb automatically. ! * * @see #setSnapToTicks(boolean) */ public boolean getSnapToTicks() *************** public class JSlider extends JComponent *** 974,986 **** } /** ! * Sets the flag that controls whether the slider thumb will snap to ticks ! * and sends a {@link PropertyChangeEvent} (with the property name ! * 'snapToTicks') to all registered listeners. Sliders that snap to ticks * will automatically move the thumb to the nearest tick mark. * * @param snap the new flag value. ! * * @see #getSnapToTicks() */ public void setSnapToTicks(boolean snap) --- 974,986 ---- } /** ! * Sets the flag that controls whether the slider thumb will snap to ticks ! * and sends a {@link PropertyChangeEvent} (with the property name ! * 'snapToTicks') to all registered listeners. Sliders that snap to ticks * will automatically move the thumb to the nearest tick mark. * * @param snap the new flag value. ! * * @see #getSnapToTicks() */ public void setSnapToTicks(boolean snap) *************** public class JSlider extends JComponent *** 996,1004 **** * Returns the flag that controls whether or not tick marks are painted along * the slider's value scale. * ! * @return true if tick marks should be painted, and * false if tick marks should not be painted. ! * * @see #setPaintTicks(boolean) */ public boolean getPaintTicks() --- 996,1004 ---- * Returns the flag that controls whether or not tick marks are painted along * the slider's value scale. * ! * @return true if tick marks should be painted, and * false if tick marks should not be painted. ! * * @see #setPaintTicks(boolean) */ public boolean getPaintTicks() *************** public class JSlider extends JComponent *** 1008,1021 **** /** * Sets the flag that controls whether or not tick marks are painted along ! * the slider's value scale, and sends a {@link PropertyChangeEvent} (with * the property name "paintTicks") to all registered listeners. In * addition to setting this property to true, one or both of the ! * minor tick spacing and major tick spacing attributes must be set to a * value greater than 0 in order for ticks to be painted. * * @param paint Whether ticks will be painted. ! * * @see #getPaintTicks() */ public void setPaintTicks(boolean paint) --- 1008,1021 ---- /** * Sets the flag that controls whether or not tick marks are painted along ! * the slider's value scale, and sends a {@link PropertyChangeEvent} (with * the property name "paintTicks") to all registered listeners. In * addition to setting this property to true, one or both of the ! * minor tick spacing and major tick spacing attributes must be set to a * value greater than 0 in order for ticks to be painted. * * @param paint Whether ticks will be painted. ! * * @see #getPaintTicks() */ public void setPaintTicks(boolean paint) *************** public class JSlider extends JComponent *** 1034,1040 **** * Returns the flag that controls whether or not the track is painted. * * @return Whether the track will be painted. ! * * @see #setPaintTrack(boolean) */ public boolean getPaintTrack() --- 1034,1040 ---- * Returns the flag that controls whether or not the track is painted. * * @return Whether the track will be painted. ! * * @see #setPaintTrack(boolean) */ public boolean getPaintTrack() *************** public class JSlider extends JComponent *** 1048,1054 **** * registered listeners. * * @param paint Whether the track will be painted. ! * * @see #getPaintTrack() */ public void setPaintTrack(boolean paint) --- 1048,1054 ---- * registered listeners. * * @param paint Whether the track will be painted. ! * * @see #getPaintTrack() */ public void setPaintTrack(boolean paint) *************** public class JSlider extends JComponent *** 1066,1072 **** * tick marks along the slider. * * @return Whether labels will be painted. ! * * @see #setPaintLabels(boolean) */ public boolean getPaintLabels() --- 1066,1072 ---- * tick marks along the slider. * * @return Whether labels will be painted. ! * * @see #setPaintLabels(boolean) */ public boolean getPaintLabels() *************** public class JSlider extends JComponent *** 1076,1086 **** /** * Sets the flag that controls whether or not labels are painted for the ! * tick marks along the slider and sends a {@link PropertyChangeEvent} (with * the property name "paintLabels") to all registered listeners. * * @param paint Whether labels will be painted. ! * * @see #getPaintLabels() */ public void setPaintLabels(boolean paint) --- 1076,1086 ---- /** * Sets the flag that controls whether or not labels are painted for the ! * tick marks along the slider and sends a {@link PropertyChangeEvent} (with * the property name "paintLabels") to all registered listeners. * * @param paint Whether labels will be painted. ! * * @see #getPaintLabels() */ public void setPaintLabels(boolean paint) *************** public class JSlider extends JComponent *** 1119,1125 **** sb.append(",paintTicks=").append(getPaintTicks()); sb.append(",paintTrack=").append(getPaintTrack()); sb.append(",snapToTicks=").append(getSnapToTicks()); ! // the following is output by the reference implementation. We don't // strictly need to replicate this. Perhaps it has some meaning, but // I couldn't determine it yet... --- 1119,1125 ---- sb.append(",paintTicks=").append(getPaintTicks()); sb.append(",paintTrack=").append(getPaintTrack()); sb.append(",snapToTicks=").append(getSnapToTicks()); ! // the following is output by the reference implementation. We don't // strictly need to replicate this. Perhaps it has some meaning, but // I couldn't determine it yet... *************** public class JSlider extends JComponent *** 1138,1144 **** { if (accessibleContext == null) accessibleContext = new AccessibleJSlider(); ! return accessibleContext; } } --- 1138,1144 ---- { if (accessibleContext == null) accessibleContext = new AccessibleJSlider(); ! return accessibleContext; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JSpinner.java gcc-4.6.0/libjava/classpath/javax/swing/JSpinner.java *** gcc-4.5.2/libjava/classpath/javax/swing/JSpinner.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JSpinner.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.NumberFormatter; *** 66,83 **** * from a list. * * @author Ka-Hing Cheung ! * * @since 1.4 */ public class JSpinner extends JComponent { /** ! * The base class for the editor used by the {@link JSpinner} component. * The editor is in fact a panel containing a {@link JFormattedTextField} * component. */ ! public static class DefaultEditor ! extends JPanel implements ChangeListener, PropertyChangeListener, LayoutManager { /** The spinner that the editor is allocated to. */ --- 66,83 ---- * from a list. * * @author Ka-Hing Cheung ! * * @since 1.4 */ public class JSpinner extends JComponent { /** ! * The base class for the editor used by the {@link JSpinner} component. * The editor is in fact a panel containing a {@link JFormattedTextField} * component. */ ! public static class DefaultEditor ! extends JPanel implements ChangeListener, PropertyChangeListener, LayoutManager { /** The spinner that the editor is allocated to. */ *************** public class JSpinner extends JComponent *** 92,98 **** private static final long serialVersionUID = -5317788736173368172L; /** ! * Creates a new DefaultEditor object. The editor is * registered with the spinner as a {@link ChangeListener} here. * * @param spinner the JSpinner associated with this editor --- 92,98 ---- private static final long serialVersionUID = -5317788736173368172L; /** ! * Creates a new DefaultEditor object. The editor is * registered with the spinner as a {@link ChangeListener} here. * * @param spinner the JSpinner associated with this editor *************** public class JSpinner extends JComponent *** 107,129 **** ftf.setValue(spinner.getValue()); ftf.addPropertyChangeListener(this); if (getComponentOrientation().isLeftToRight()) ! ftf.setHorizontalAlignment(JTextField.RIGHT); else ! ftf.setHorizontalAlignment(JTextField.LEFT); spinner.addChangeListener(this); } /** * Returns the JSpinner component that the editor is assigned * to. ! * * @return The spinner that the editor is assigned to. */ public JSpinner getSpinner() { return spinner; } ! /** * DOCUMENT ME! */ --- 107,129 ---- ftf.setValue(spinner.getValue()); ftf.addPropertyChangeListener(this); if (getComponentOrientation().isLeftToRight()) ! ftf.setHorizontalAlignment(JTextField.RIGHT); else ! ftf.setHorizontalAlignment(JTextField.LEFT); spinner.addChangeListener(this); } /** * Returns the JSpinner component that the editor is assigned * to. ! * * @return The spinner that the editor is assigned to. */ public JSpinner getSpinner() { return spinner; } ! /** * DOCUMENT ME! */ *************** public class JSpinner extends JComponent *** 144,150 **** } /** ! * Returns the text field used to display and edit the current value in * the spinner. * * @return The text field. --- 144,150 ---- } /** ! * Returns the text field used to display and edit the current value in * the spinner. * * @return The text field. *************** public class JSpinner extends JComponent *** 153,159 **** { return ftf; } ! /** * Sets the bounds for the child components in this container. In this * case, the text field is the only component to be laid out. --- 153,159 ---- { return ftf; } ! /** * Sets the bounds for the child components in this container. In this * case, the text field is the only component to be laid out. *************** public class JSpinner extends JComponent *** 168,174 **** size.width - insets.left - insets.right, size.height - insets.top - insets.bottom); } ! /** * Calculates the minimum size for this component. In this case, the * text field is the only subcomponent, so the return value is the minimum --- 168,174 ---- size.width - insets.left - insets.right, size.height - insets.top - insets.bottom); } ! /** * Calculates the minimum size for this component. In this case, the * text field is the only subcomponent, so the return value is the minimum *************** public class JSpinner extends JComponent *** 185,194 **** return new Dimension(minSize.width + insets.left + insets.right, minSize.height + insets.top + insets.bottom); } ! /** * Calculates the preferred size for this component. In this case, the ! * text field is the only subcomponent, so the return value is the * preferred size of the text field plus the insets of this component. * * @param parent the parent container. --- 185,194 ---- return new Dimension(minSize.width + insets.left + insets.right, minSize.height + insets.top + insets.bottom); } ! /** * Calculates the preferred size for this component. In this case, the ! * text field is the only subcomponent, so the return value is the * preferred size of the text field plus the insets of this component. * * @param parent the parent container. *************** public class JSpinner extends JComponent *** 202,227 **** return new Dimension(prefSize.width + insets.left + insets.right, prefSize.height + insets.top + insets.bottom); } ! /** ! * Receives notification of property changes. If the text field's 'value' * property changes, the spinner's model is updated accordingly. * * @param event the event. */ public void propertyChange(PropertyChangeEvent event) { ! if (event.getSource() == ftf) { if (event.getPropertyName().equals("value")) spinner.getModel().setValue(event.getNewValue()); } } ! /** * Receives notification of changes in the state of the {@link JSpinner} * that the editor belongs to - the content of the text field is updated ! * accordingly. * * @param event the change event. */ --- 202,227 ---- return new Dimension(prefSize.width + insets.left + insets.right, prefSize.height + insets.top + insets.bottom); } ! /** ! * Receives notification of property changes. If the text field's 'value' * property changes, the spinner's model is updated accordingly. * * @param event the event. */ public void propertyChange(PropertyChangeEvent event) { ! if (event.getSource() == ftf) { if (event.getPropertyName().equals("value")) spinner.getModel().setValue(event.getNewValue()); } } ! /** * Receives notification of changes in the state of the {@link JSpinner} * that the editor belongs to - the content of the text field is updated ! * accordingly. * * @param event the change event. */ *************** public class JSpinner extends JComponent *** 229,240 **** { ftf.setValue(spinner.getValue()); } ! /** * This method does nothing. It is required by the {@link LayoutManager} * interface, but since this component has a single child, there is no * need to use this method. ! * * @param child the child component to remove. */ public void removeLayoutComponent(Component child) --- 229,240 ---- { ftf.setValue(spinner.getValue()); } ! /** * This method does nothing. It is required by the {@link LayoutManager} * interface, but since this component has a single child, there is no * need to use this method. ! * * @param child the child component to remove. */ public void removeLayoutComponent(Component child) *************** public class JSpinner extends JComponent *** 246,252 **** * This method does nothing. It is required by the {@link LayoutManager} * interface, but since this component has a single child, there is no * need to use this method. ! * * @param name the name. * @param child the child component to add. */ --- 246,252 ---- * This method does nothing. It is required by the {@link LayoutManager} * interface, but since this component has a single child, there is no * need to use this method. ! * * @param name the name. * @param child the child component to add. */ *************** public class JSpinner extends JComponent *** 260,266 **** * A panel containing a {@link JFormattedTextField} that is configured for * displaying and editing numbers. The panel is used as a subcomponent of * a {@link JSpinner}. ! * * @see JSpinner#createEditor(SpinnerModel) */ public static class NumberEditor extends DefaultEditor --- 260,266 ---- * A panel containing a {@link JFormattedTextField} that is configured for * displaying and editing numbers. The panel is used as a subcomponent of * a {@link JSpinner}. ! * * @see JSpinner#createEditor(SpinnerModel) */ public static class NumberEditor extends DefaultEditor *************** public class JSpinner extends JComponent *** 271,278 **** private static final long serialVersionUID = 3791956183098282942L; /** ! * Creates a new NumberEditor object for the specified ! * spinner. The editor is registered with the spinner as a * {@link ChangeListener}. * * @param spinner the component the editor will be used with. --- 271,278 ---- private static final long serialVersionUID = 3791956183098282942L; /** ! * Creates a new NumberEditor object for the specified ! * spinner. The editor is registered with the spinner as a * {@link ChangeListener}. * * @param spinner the component the editor will be used with. *************** public class JSpinner extends JComponent *** 295,301 **** public NumberEditor(JSpinner spinner, String decimalFormatPattern) { super(spinner); ! NumberEditorFormatter nef = new NumberEditorFormatter(decimalFormatPattern); nef.setMinimum(getModel().getMinimum()); nef.setMaximum(getModel().getMaximum()); --- 295,301 ---- public NumberEditor(JSpinner spinner, String decimalFormatPattern) { super(spinner); ! NumberEditorFormatter nef = new NumberEditorFormatter(decimalFormatPattern); nef.setMinimum(getModel().getMinimum()); nef.setMaximum(getModel().getMaximum()); *************** public class JSpinner extends JComponent *** 316,322 **** /** * Returns the model used by the editor's {@link JSpinner} component, * cast to a {@link SpinnerNumberModel}. ! * * @return The model. */ public SpinnerNumberModel getModel() --- 316,322 ---- /** * Returns the model used by the editor's {@link JSpinner} component, * cast to a {@link SpinnerNumberModel}. ! * * @return The model. */ public SpinnerNumberModel getModel() *************** public class JSpinner extends JComponent *** 324,334 **** return (SpinnerNumberModel) getSpinner().getModel(); } } ! ! static class NumberEditorFormatter extends NumberFormatter { ! public NumberEditorFormatter() { super(NumberFormat.getInstance()); } --- 324,334 ---- return (SpinnerNumberModel) getSpinner().getModel(); } } ! ! static class NumberEditorFormatter extends NumberFormatter { ! public NumberEditorFormatter() { super(NumberFormat.getInstance()); } *************** public class JSpinner extends JComponent *** 359,365 **** /** * Returns the spinner's model cast as a {@link SpinnerListModel}. ! * * @return The spinner's model. */ public SpinnerListModel getModel() --- 359,365 ---- /** * Returns the spinner's model cast as a {@link SpinnerListModel}. ! * * @return The spinner's model. */ public SpinnerListModel getModel() *************** public class JSpinner extends JComponent *** 442,451 **** } } ! static class DateEditorFormatter extends DateFormatter { ! public DateEditorFormatter() { super(DateFormat.getInstance()); } --- 442,451 ---- } } ! static class DateEditorFormatter extends DateFormatter { ! public DateEditorFormatter() { super(DateFormat.getInstance()); } *************** public class JSpinner extends JComponent *** 455,463 **** } } ! /** * A listener that forwards {@link ChangeEvent} notifications from the model ! * to the {@link JSpinner}'s listeners. */ class ModelListener implements ChangeListener { --- 455,463 ---- } } ! /** * A listener that forwards {@link ChangeEvent} notifications from the model ! * to the {@link JSpinner}'s listeners. */ class ModelListener implements ChangeListener { *************** public class JSpinner extends JComponent *** 468,477 **** { // nothing to do here } ! /** * Receives notification from the model that its state has changed. ! * * @param event the event (ignored). */ public void stateChanged(ChangeEvent event) --- 468,477 ---- { // nothing to do here } ! /** * Receives notification from the model that its state has changed. ! * * @param event the event (ignored). */ public void stateChanged(ChangeEvent event) *************** public class JSpinner extends JComponent *** 480,488 **** } } ! /** ! * The model that defines the current value and permitted values for the ! * spinner. */ private SpinnerModel model; --- 480,488 ---- } } ! /** ! * The model that defines the current value and permitted values for the ! * spinner. */ private SpinnerModel model; *************** public class JSpinner extends JComponent *** 492,499 **** private static final long serialVersionUID = 3412663575706551720L; /** ! * Creates a new JSpinner with default instance of ! * {@link SpinnerNumberModel} (that is, a model with value 0, step size 1, * and no upper or lower limit). * * @see javax.swing.SpinnerNumberModel --- 492,499 ---- private static final long serialVersionUID = 3412663575706551720L; /** ! * Creates a new JSpinner with default instance of ! * {@link SpinnerNumberModel} (that is, a model with value 0, step size 1, * and no upper or lower limit). * * @see javax.swing.SpinnerNumberModel *************** public class JSpinner extends JComponent *** 504,515 **** } /** ! * Creates a new JSpinner with the specified model. The * {@link #createEditor(SpinnerModel)} method is used to create an editor * that is suitable for the model. * * @param model the model (null not permitted). ! * * @throws NullPointerException if model is null. */ public JSpinner(SpinnerModel model) --- 504,515 ---- } /** ! * Creates a new JSpinner with the specified model. The * {@link #createEditor(SpinnerModel)} method is used to create an editor * that is suitable for the model. * * @param model the model (null not permitted). ! * * @throws NullPointerException if model is null. */ public JSpinner(SpinnerModel model) *************** public class JSpinner extends JComponent *** 550,556 **** * * @param editor the new editor (null not permitted. * ! * @throws IllegalArgumentException if editor is * null. * * @see #getEditor --- 550,556 ---- * * @param editor the new editor (null not permitted. * ! * @throws IllegalArgumentException if editor is * null. * * @see #getEditor *************** public class JSpinner extends JComponent *** 565,571 **** ((DefaultEditor) oldEditor).dismiss(this); else if (oldEditor instanceof ChangeListener) removeChangeListener((ChangeListener) oldEditor); ! this.editor = editor; firePropertyChange("editor", oldEditor, editor); } --- 565,571 ---- ((DefaultEditor) oldEditor).dismiss(this); else if (oldEditor instanceof ChangeListener) removeChangeListener((ChangeListener) oldEditor); ! this.editor = editor; firePropertyChange("editor", oldEditor, editor); } *************** public class JSpinner extends JComponent *** 574,580 **** * Returns the model used by the {@link JSpinner} component. * * @return The model. ! * * @see #setModel(SpinnerModel) */ public SpinnerModel getModel() --- 574,580 ---- * Returns the model used by the {@link JSpinner} component. * * @return The model. ! * * @see #setModel(SpinnerModel) */ public SpinnerModel getModel() *************** public class JSpinner extends JComponent *** 593,599 **** { if (newModel == null) throw new IllegalArgumentException(); ! if (model == newModel) return; --- 593,599 ---- { if (newModel == null) throw new IllegalArgumentException(); ! if (model == newModel) return; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JSplitPane.java gcc-4.6.0/libjava/classpath/javax/swing/JSplitPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JSplitPane.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JSplitPane.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JSplitPane.java -- Copyright (C) 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JSplitPane.java -- Copyright (C) 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class JSplitPane extends JCompone *** 69,75 **** implements AccessibleValue { private static final long serialVersionUID = -1788116871416305366L; ! /** * Creates a new AccessibleJSplitPane instance. */ --- 69,75 ---- implements AccessibleValue { private static final long serialVersionUID = -1788116871416305366L; ! /** * Creates a new AccessibleJSplitPane instance. */ *************** public class JSplitPane extends JCompone *** 79,85 **** } /** ! * Returns a set containing the current state of the {@link JSplitPane} * component. * * @return The accessible state set. --- 79,85 ---- } /** ! * Returns a set containing the current state of the {@link JSplitPane} * component. * * @return The accessible state set. *************** public class JSplitPane extends JCompone *** 109,116 **** } /** ! * Returns an object that provides access to the current, minimum and ! * maximum values for the {@link JSplitPane}. Since this class implements * {@link AccessibleValue}, it returns itself. * * @return The accessible value. --- 109,116 ---- } /** ! * Returns an object that provides access to the current, minimum and ! * maximum values for the {@link JSplitPane}. Since this class implements * {@link AccessibleValue}, it returns itself. * * @return The accessible value. *************** public class JSplitPane extends JCompone *** 121,127 **** } /** ! * Returns the current divider location for the {@link JSplitPane} * component, as an {@link Integer}. * * @return The current divider location. --- 121,127 ---- } /** ! * Returns the current divider location for the {@link JSplitPane} * component, as an {@link Integer}. * * @return The current divider location. *************** public class JSplitPane extends JCompone *** 132,146 **** } /** ! * Sets the divider location for the {@link JSplitPane} component and sends ! * a {@link PropertyChangeEvent} (with the property name * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered ! * listeners. If the supplied value is null, this method * does nothing and returns false. * * @param value the new divider location (null permitted). * ! * @return true if the divider location value is updated, and * false otherwise. */ public boolean setCurrentAccessibleValue(Number value) --- 132,146 ---- } /** ! * Sets the divider location for the {@link JSplitPane} component and sends ! * a {@link PropertyChangeEvent} (with the property name * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered ! * listeners. If the supplied value is null, this method * does nothing and returns false. * * @param value the new divider location (null permitted). * ! * @return true if the divider location value is updated, and * false otherwise. */ public boolean setCurrentAccessibleValue(Number value) *************** public class JSplitPane extends JCompone *** 149,161 **** return false; Number oldValue = getCurrentAccessibleValue(); setDividerLocation(value.intValue()); ! firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue, new Integer(value.intValue())); return true; } /** ! * Returns the minimum divider location for the {@link JSplitPane} * component, as an {@link Integer}. * * @return The minimum divider location. --- 149,161 ---- return false; Number oldValue = getCurrentAccessibleValue(); setDividerLocation(value.intValue()); ! firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue, new Integer(value.intValue())); return true; } /** ! * Returns the minimum divider location for the {@link JSplitPane} * component, as an {@link Integer}. * * @return The minimum divider location. *************** public class JSplitPane extends JCompone *** 166,172 **** } /** ! * Returns the maximum divider location for the {@link JSplitPane} * component, as an {@link Integer}. * * @return The maximum divider location. --- 166,172 ---- } /** ! * Returns the maximum divider location for the {@link JSplitPane} * component, as an {@link Integer}. * * @return The maximum divider location. *************** public class JSplitPane extends JCompone *** 178,184 **** } private static final long serialVersionUID = -5634142046175988380L; ! /** The constraints string used to add components to the bottom. */ public static final String BOTTOM = "bottom"; --- 178,184 ---- } private static final long serialVersionUID = -5634142046175988380L; ! /** The constraints string used to add components to the bottom. */ public static final String BOTTOM = "bottom"; *************** public class JSplitPane extends JCompone *** 200,213 **** public static final int HORIZONTAL_SPLIT = 1; /** The property fired when the last divider location property changes. */ ! public static final String LAST_DIVIDER_LOCATION_PROPERTY = "lastDividerLocation"; /** The constraints string used to add components to the left. */ public static final String LEFT = "left"; /** The property fired when the one touch expandable property changes. */ ! public static final String ONE_TOUCH_EXPANDABLE_PROPERTY = "oneTouchExpandable"; /** The property fired when the orientation property changes. */ --- 200,213 ---- public static final int HORIZONTAL_SPLIT = 1; /** The property fired when the last divider location property changes. */ ! public static final String LAST_DIVIDER_LOCATION_PROPERTY = "lastDividerLocation"; /** The constraints string used to add components to the left. */ public static final String LEFT = "left"; /** The property fired when the one touch expandable property changes. */ ! public static final String ONE_TOUCH_EXPANDABLE_PROPERTY = "oneTouchExpandable"; /** The property fired when the orientation property changes. */ *************** public class JSplitPane extends JCompone *** 231,237 **** /** Whether the JSplitPane uses one touch expandable buttons. */ protected boolean oneTouchExpandable = false; ! // This is the master dividerSize variable and sets the // BasicSplitPaneDivider one accordingly /** The size of the divider. */ --- 231,237 ---- /** Whether the JSplitPane uses one touch expandable buttons. */ protected boolean oneTouchExpandable = false; ! // This is the master dividerSize variable and sets the // BasicSplitPaneDivider one accordingly /** The size of the divider. */ *************** public class JSplitPane extends JCompone *** 357,363 **** * @param constraints The constraints string to use. * @param index Where to place to component in the list of components. * ! * @throws IllegalArgumentException When the constraints is not a known * identifier. */ protected void addImpl(Component comp, Object constraints, int index) --- 357,363 ---- * @param constraints The constraints string to use. * @param index Where to place to component in the list of components. * ! * @throws IllegalArgumentException When the constraints is not a known * identifier. */ protected void addImpl(Component comp, Object constraints, int index) *************** public class JSplitPane extends JCompone *** 389,395 **** else if (placement.equals(DIVIDER)) constraints = null; else ! throw new IllegalArgumentException("Constraints is not a known identifier."); // If no dividerLocation has been set, then we need to trigger an --- 389,395 ---- else if (placement.equals(DIVIDER)) constraints = null; else ! throw new IllegalArgumentException("Constraints is not a known identifier."); // If no dividerLocation has been set, then we need to trigger an *************** public class JSplitPane extends JCompone *** 405,418 **** * Returns the object that provides accessibility features for this * JSplitPane component. * ! * @return The accessible context (an instance of * {@link AccessibleJSplitPane}). */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleJSplitPane(); ! return accessibleContext; } --- 405,418 ---- * Returns the object that provides accessibility features for this * JSplitPane component. * ! * @return The accessible context (an instance of * {@link AccessibleJSplitPane}). */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) accessibleContext = new AccessibleJSplitPane(); ! return accessibleContext; } *************** public class JSplitPane extends JCompone *** 715,721 **** /** * This method sets the location of the divider. ! * * @param location The location of the divider. The negative value forces to * compute the new location from the preferred sizes of the split * pane components. --- 715,721 ---- /** * This method sets the location of the divider. ! * * @param location The location of the divider. The negative value forces to * compute the new location from the preferred sizes of the split * pane components. *************** public class JSplitPane extends JCompone *** 727,733 **** SplitPaneUI ui = getUI(); if (ui != null) ui.setDividerLocation(this, location); ! firePropertyChange(DIVIDER_LOCATION_PROPERTY, oldLocation, location); } --- 727,733 ---- SplitPaneUI ui = getUI(); if (ui != null) ui.setDividerLocation(this, location); ! firePropertyChange(DIVIDER_LOCATION_PROPERTY, oldLocation, location); } *************** public class JSplitPane extends JCompone *** 773,779 **** * @param comp The left component. */ public void setLeftComponent(Component comp) ! { if (comp != null) add(comp, LEFT); else --- 773,779 ---- * @param comp The left component. */ public void setLeftComponent(Component comp) ! { if (comp != null) add(comp, LEFT); else *************** public class JSplitPane extends JCompone *** 801,808 **** } /** ! * Sets the orientation for the JSplitPane and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link #ORIENTATION_PROPERTY}) to all registered listeners. * * @param orientation the orientation (either {@link #HORIZONTAL_SPLIT} --- 801,808 ---- } /** ! * Sets the orientation for the JSplitPane and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link #ORIENTATION_PROPERTY}) to all registered listeners. * * @param orientation the orientation (either {@link #HORIZONTAL_SPLIT} *************** public class JSplitPane extends JCompone *** 839,845 **** if (value < 0.0 || value > 1.0) throw new IllegalArgumentException("Value outside permitted range."); if (this.resizeWeight != value) ! { double old = resizeWeight; resizeWeight = value; firePropertyChange(RESIZE_WEIGHT_PROPERTY, old, value); --- 839,845 ---- if (value < 0.0 || value > 1.0) throw new IllegalArgumentException("Value outside permitted range."); if (this.resizeWeight != value) ! { double old = resizeWeight; resizeWeight = value; firePropertyChange(RESIZE_WEIGHT_PROPERTY, old, value); *************** public class JSplitPane extends JCompone *** 905,911 **** /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * --- 905,911 ---- /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JTabbedPane.java gcc-4.6.0/libjava/classpath/javax/swing/JTabbedPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JTabbedPane.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JTabbedPane.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.UIResource; *** 64,70 **** * This is a container for components where only one component is displayed at * a given time and the displayed component can be switched by clicking on * tabs. ! * *

                                            * Tabs can be oriented in several ways. They can be above, below, left and * right of the component. Tabs can either wrap around (by creating multiple --- 64,70 ---- * This is a container for components where only one component is displayed at * a given time and the displayed component can be switched by clicking on * tabs. ! * *

                                            * Tabs can be oriented in several ways. They can be above, below, left and * right of the component. Tabs can either wrap around (by creating multiple *************** public class JTabbedPane extends JCompon *** 185,191 **** /** * Returns the number of selected child components of the * JTabbedPane. The reference implementation appears ! * to return 1 always and we do the same. * * @return 1 */ --- 185,191 ---- /** * Returns the number of selected child components of the * JTabbedPane. The reference implementation appears ! * to return 1 always and we do the same. * * @return 1 */ *************** public class JTabbedPane extends JCompon *** 195,201 **** } /** ! * Returns the selected tab, or null if there is no * selection. * * @param i the selection index (ignored here). --- 195,201 ---- } /** ! * Returns the selected tab, or null if there is no * selection. * * @param i the selection index (ignored here). *************** public class JTabbedPane extends JCompon *** 239,245 **** * tabbed pane, since one tab must always be selected. * * @param i the item index. ! * * @see #addAccessibleSelection(int) */ public void removeAccessibleSelection(int i) --- 239,245 ---- * tabbed pane, since one tab must always be selected. * * @param i the item index. ! * * @see #addAccessibleSelection(int) */ public void removeAccessibleSelection(int i) *************** public class JTabbedPane extends JCompon *** 250,256 **** /** * Does nothing - it makes no sense to clear the selection for * a tabbed pane, since one tab must always be selected. ! * * @see #addAccessibleSelection(int) */ public void clearAccessibleSelection() --- 250,256 ---- /** * Does nothing - it makes no sense to clear the selection for * a tabbed pane, since one tab must always be selected. ! * * @see #addAccessibleSelection(int) */ public void clearAccessibleSelection() *************** public class JTabbedPane extends JCompon *** 261,267 **** /** * Does nothing - it makes no sense to select all for a tabbed * pane, since only one tab can be selected at a time. ! * * @see #addAccessibleSelection(int) */ public void selectAllAccessibleSelection() --- 261,267 ---- /** * Does nothing - it makes no sense to select all for a tabbed * pane, since only one tab can be selected at a time. ! * * @see #addAccessibleSelection(int) */ public void selectAllAccessibleSelection() *************** public class JTabbedPane extends JCompon *** 464,470 **** { title = text; if (title != null && title.length() <= underlinedChar) ! setDisplayedMnemonicIndex(title.length() - 1); } /** --- 464,470 ---- { title = text; if (title != null && title.length() <= underlinedChar) ! setDisplayedMnemonicIndex(title.length() - 1); } /** *************** public class JTabbedPane extends JCompon *** 495,501 **** public Icon getDisabledIcon() { if (disabledIcon == null && icon instanceof ImageIcon) ! setDisabledIcon(icon); return disabledIcon; } --- 495,501 ---- public Icon getDisabledIcon() { if (disabledIcon == null && icon instanceof ImageIcon) ! setDisabledIcon(icon); return disabledIcon; } *************** public class JTabbedPane extends JCompon *** 560,566 **** { mnemonicKey = aChar; if (title != null) ! setDisplayedMnemonicIndex(title.indexOf(mnemonicKey)); } /** --- 560,566 ---- { mnemonicKey = aChar; if (title != null) ! setDisplayedMnemonicIndex(title.indexOf(mnemonicKey)); } /** *************** public class JTabbedPane extends JCompon *** 585,594 **** throws IllegalArgumentException { if (index < -1 || title != null && index >= title.length()) ! throw new IllegalArgumentException(); if (title == null || mnemonicKey == 0 || (index > -1 && title.charAt(index) != mnemonicKey)) ! index = -1; underlinedChar = index; } --- 585,594 ---- throws IllegalArgumentException { if (index < -1 || title != null && index >= title.length()) ! throw new IllegalArgumentException(); if (title == null || mnemonicKey == 0 || (index > -1 && title.charAt(index) != mnemonicKey)) ! index = -1; underlinedChar = index; } *************** public class JTabbedPane extends JCompon *** 605,611 **** /** * Returns the accessible name for this tab. ! * * @return The accessible name. */ public String getAccessibleName() --- 605,611 ---- /** * Returns the accessible name for this tab. ! * * @return The accessible name. */ public String getAccessibleName() *************** public class JTabbedPane extends JCompon *** 615,621 **** else return title; } ! /** * Returns the accessible role of this tab, which is always * {@link AccessibleRole#PAGE_TAB}. --- 615,621 ---- else return title; } ! /** * Returns the accessible role of this tab, which is always * {@link AccessibleRole#PAGE_TAB}. *************** public class JTabbedPane extends JCompon *** 634,640 **** */ public AccessibleStateSet getAccessibleStateSet() { ! AccessibleContext parentCtx = JTabbedPane.this.getAccessibleContext(); AccessibleStateSet state = parentCtx.getAccessibleStateSet(); state.add(AccessibleState.SELECTABLE); if (component == getSelectedComponent()) --- 634,640 ---- */ public AccessibleStateSet getAccessibleStateSet() { ! AccessibleContext parentCtx = JTabbedPane.this.getAccessibleContext(); AccessibleStateSet state = parentCtx.getAccessibleStateSet(); state.add(AccessibleState.SELECTABLE); if (component == getSelectedComponent()) *************** public class JTabbedPane extends JCompon *** 761,767 **** throw new IllegalArgumentException("tabLayoutPolicy is not valid."); this.tabPlacement = tabPlacement; layoutPolicy = tabLayoutPolicy; ! setModel(new DefaultSingleSelectionModel()); updateUI(); --- 761,767 ---- throw new IllegalArgumentException("tabLayoutPolicy is not valid."); this.tabPlacement = tabPlacement; layoutPolicy = tabLayoutPolicy; ! setModel(new DefaultSingleSelectionModel()); updateUI(); *************** public class JTabbedPane extends JCompon *** 847,854 **** changeEvent = new ChangeEvent(this); for (int i = changeListeners.length - 2; i >= 0; i -= 2) { ! if (changeListeners[i] == ChangeListener.class) ! ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent); } } --- 847,854 ---- changeEvent = new ChangeEvent(this); for (int i = changeListeners.length - 2; i >= 0; i -= 2) { ! if (changeListeners[i] == ChangeListener.class) ! ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent); } } *************** public class JTabbedPane extends JCompon *** 881,891 **** { if (m != model) { ! SingleSelectionModel oldModel = this.model; if (oldModel != null && changeListener != null) oldModel.removeChangeListener(changeListener); ! model = m; if (model != null) { --- 881,891 ---- { if (m != model) { ! SingleSelectionModel oldModel = this.model; if (oldModel != null && changeListener != null) oldModel.removeChangeListener(changeListener); ! model = m; if (model != null) { *************** public class JTabbedPane extends JCompon *** 893,899 **** changeListener = createChangeListener(); model.addChangeListener(changeListener); } ! firePropertyChange("model", oldModel, this.model); } } --- 893,899 ---- changeListener = createChangeListener(); model.addChangeListener(changeListener); } ! firePropertyChange("model", oldModel, this.model); } } *************** public class JTabbedPane extends JCompon *** 922,930 **** throw new IllegalArgumentException("tabPlacement is not valid."); if (tabPlacement != this.tabPlacement) { ! int oldPlacement = this.tabPlacement; ! this.tabPlacement = tabPlacement; ! firePropertyChange("tabPlacement", oldPlacement, this.tabPlacement); } } --- 922,930 ---- throw new IllegalArgumentException("tabPlacement is not valid."); if (tabPlacement != this.tabPlacement) { ! int oldPlacement = this.tabPlacement; ! this.tabPlacement = tabPlacement; ! firePropertyChange("tabPlacement", oldPlacement, this.tabPlacement); } } *************** public class JTabbedPane extends JCompon *** 953,961 **** throw new IllegalArgumentException("tabLayoutPolicy is not valid."); if (tabLayoutPolicy != layoutPolicy) { ! int oldPolicy = layoutPolicy; ! layoutPolicy = tabLayoutPolicy; ! firePropertyChange("tabLayoutPolicy", oldPolicy, layoutPolicy); } } --- 953,961 ---- throw new IllegalArgumentException("tabLayoutPolicy is not valid."); if (tabLayoutPolicy != layoutPolicy) { ! int oldPolicy = layoutPolicy; ! layoutPolicy = tabLayoutPolicy; ! firePropertyChange("tabLayoutPolicy", oldPolicy, layoutPolicy); } } *************** public class JTabbedPane extends JCompon *** 998,1004 **** { // Hiding and showing the involved components // is done by the JTabbedPane's UI. ! model.setSelectedIndex(index); } } --- 998,1004 ---- { // Hiding and showing the involved components // is done by the JTabbedPane's UI. ! model.setSelectedIndex(index); } } *************** public class JTabbedPane extends JCompon *** 1051,1058 **** // so we don't trigger a repaint. if (component != null) { ! component.hide(); ! super.add(component); } if (getSelectedIndex() == -1) --- 1051,1058 ---- // so we don't trigger a repaint. if (component != null) { ! component.hide(); ! super.add(component); } if (getSelectedIndex() == -1) *************** public class JTabbedPane extends JCompon *** 1117,1123 **** super.add(component); else insertTab(component.getName(), null, component, null, tabs.size()); ! return component; } --- 1117,1123 ---- super.add(component); else insertTab(component.getName(), null, component, null, tabs.size()); ! return component; } *************** public class JTabbedPane extends JCompon *** 1191,1208 **** super.add(component); else { ! if (constraints instanceof String) ! insertTab((String) constraints, null, component, null, index); ! else ! insertTab(component.getName(), ! (constraints instanceof Icon) ? (Icon) constraints : null, ! component, null, index); } } /** ! * Removes the tab at index. After the component associated with ! * index is removed, its visibility is reset to true to ensure it * will be visible if added to other containers. * * @param index The index of the tab to remove. --- 1191,1208 ---- super.add(component); else { ! if (constraints instanceof String) ! insertTab((String) constraints, null, component, null, index); ! else ! insertTab(component.getName(), ! (constraints instanceof Icon) ? (Icon) constraints : null, ! component, null, index); } } /** ! * Removes the tab at index. After the component associated with ! * index is removed, its visibility is reset to true to ensure it * will be visible if added to other containers. * * @param index The index of the tab to remove. *************** public class JTabbedPane extends JCompon *** 1261,1267 **** // Since components implementing UIResource // are not added as regular tabs by the add() // methods we have to take special care when ! // removing these object. Especially // Container.remove(Component) cannot be used // because it will call JTabbedPane.remove(int) // later which is overridden and can only --- 1261,1267 ---- // Since components implementing UIResource // are not added as regular tabs by the add() // methods we have to take special care when ! // removing these object. Especially // Container.remove(Component) cannot be used // because it will call JTabbedPane.remove(int) // later which is overridden and can only *************** public class JTabbedPane extends JCompon *** 1270,1276 **** // situation that someone called insertTab() // with a component that implements UIResource. int index = indexOfComponent(component); ! // If the component is not a tab component // find out its Container-given index // and call that class' implementation --- 1270,1276 ---- // situation that someone called insertTab() // with a component that implements UIResource. int index = indexOfComponent(component); ! // If the component is not a tab component // find out its Container-given index // and call that class' implementation *************** public class JTabbedPane extends JCompon *** 1603,1613 **** int index = -1; for (int i = 0; i < tabs.size(); i++) { ! if (((Page) tabs.elementAt(i)).getTitle().equals(title)) ! { ! index = i; ! break; ! } } return index; } --- 1603,1613 ---- int index = -1; for (int i = 0; i < tabs.size(); i++) { ! if (((Page) tabs.elementAt(i)).getTitle().equals(title)) ! { ! index = i; ! break; ! } } return index; } *************** public class JTabbedPane extends JCompon *** 1624,1634 **** int index = -1; for (int i = 0; i < tabs.size(); i++) { ! if (((Page) tabs.elementAt(i)).getIcon() == icon) ! { ! index = i; ! break; ! } } return index; } --- 1624,1634 ---- int index = -1; for (int i = 0; i < tabs.size(); i++) { ! if (((Page) tabs.elementAt(i)).getIcon() == icon) ! { ! index = i; ! break; ! } } return index; } *************** public class JTabbedPane extends JCompon *** 1645,1655 **** int index = -1; for (int i = 0; i < tabs.size(); i++) { ! if (((Page) tabs.elementAt(i)).getComponent() == component) ! { ! index = i; ! break; ! } } return index; } --- 1645,1655 ---- int index = -1; for (int i = 0; i < tabs.size(); i++) { ! if (((Page) tabs.elementAt(i)).getComponent() == component) ! { ! index = i; ! break; ! } } return index; } *************** public class JTabbedPane extends JCompon *** 1684,1695 **** } /** ! * Returns a string describing the attributes for the ! * JTabbedPane component, for use in debugging. The return ! * value is guaranteed to be non-null, but the format of the * string may vary between implementations. * ! * @return A string describing the attributes of the * JTabbedPane. */ protected String paramString() --- 1684,1695 ---- } /** ! * Returns a string describing the attributes for the ! * JTabbedPane component, for use in debugging. The return ! * value is guaranteed to be non-null, but the format of the * string may vary between implementations. * ! * @return A string describing the attributes of the * JTabbedPane. */ protected String paramString() *************** public class JTabbedPane extends JCompon *** 1711,1717 **** * Returns the object that provides accessibility features for this * JTabbedPane component. * ! * @return The accessible context (an instance of * {@link AccessibleJTabbedPane}). */ public AccessibleContext getAccessibleContext() --- 1711,1717 ---- * Returns the object that provides accessibility features for this * JTabbedPane component. * ! * @return The accessible context (an instance of * {@link AccessibleJTabbedPane}). */ public AccessibleContext getAccessibleContext() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JTable.java gcc-4.6.0/libjava/classpath/javax/swing/JTable.java *** gcc-4.5.2/libjava/classpath/javax/swing/JTable.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JTable.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JTable.java -- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JTable.java -- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.swing.table.TableModel; *** 90,98 **** * The table component, displaying information, organized in rows and columns. * The table can be placed in the scroll bar and have the optional header * that is always visible. Cell values may be editable after double clicking ! * on the cell. Cell columns may have various data types, that are * displayed and edited by the different renderers and editors. It is possible ! * to set different column width. The columns are also resizeable by * dragging the column boundary in the header. */ public class JTable --- 90,98 ---- * The table component, displaying information, organized in rows and columns. * The table can be placed in the scroll bar and have the optional header * that is always visible. Cell values may be editable after double clicking ! * on the cell. Cell columns may have various data types, that are * displayed and edited by the different renderers and editors. It is possible ! * to set different column width. The columns are also resizeable by * dragging the column boundary in the header. */ public class JTable *************** public class JTable *** 271,277 **** * Sets the background of the cell. Since table cells cannot have * individual background colors, this method does nothing. Set the * background directly on the table instead. ! * * @param color not used */ public void setBackground(Color color) --- 271,277 ---- * Sets the background of the cell. Since table cells cannot have * individual background colors, this method does nothing. Set the * background directly on the table instead. ! * * @param color not used */ public void setBackground(Color color) *************** public class JTable *** 293,299 **** * Sets the foreground of the cell. Since table cells cannot have * individual foreground colors, this method does nothing. Set the * foreground directly on the table instead. ! * * @param color not used */ public void setForeground(Color color) --- 293,299 ---- * Sets the foreground of the cell. Since table cells cannot have * individual foreground colors, this method does nothing. Set the * foreground directly on the table instead. ! * * @param color not used */ public void setForeground(Color color) *************** public class JTable *** 315,321 **** * Sets the cursor of the cell. Since table cells cannot have * individual cursors, this method does nothing. Set the * cursor directly on the table instead. ! * * @param cursor not used */ public void setCursor(Cursor cursor) --- 315,321 ---- * Sets the cursor of the cell. Since table cells cannot have * individual cursors, this method does nothing. Set the * cursor directly on the table instead. ! * * @param cursor not used */ public void setCursor(Cursor cursor) *************** public class JTable *** 337,343 **** * Sets the font of the cell. Since table cells cannot have * individual fonts, this method does nothing. Set the * font directly on the table instead. ! * * @param font not used */ public void setFont(Font font) --- 337,343 ---- * Sets the font of the cell. Since table cells cannot have * individual fonts, this method does nothing. Set the * font directly on the table instead. ! * * @param font not used */ public void setFont(Font font) *************** public class JTable *** 568,574 **** { table.removeFocusListener(listener); } ! } protected class AccessibleJTableModelChange --- 568,574 ---- { table.removeFocusListener(listener); } ! } protected class AccessibleJTableModelChange *************** public class JTable *** 748,754 **** public void setAccessibleRowHeader(AccessibleTable header) { // TODO Auto-generated method stub ! } public AccessibleTable getAccessibleColumnHeader() --- 748,754 ---- public void setAccessibleRowHeader(AccessibleTable header) { // TODO Auto-generated method stub ! } public AccessibleTable getAccessibleColumnHeader() *************** public class JTable *** 760,766 **** public void setAccessibleColumnHeader(AccessibleTable header) { // TODO Auto-generated method stub ! } public Accessible getAccessibleRowDescription(int r) --- 760,766 ---- public void setAccessibleColumnHeader(AccessibleTable header) { // TODO Auto-generated method stub ! } public Accessible getAccessibleRowDescription(int r) *************** public class JTable *** 772,778 **** public void setAccessibleRowDescription(int r, Accessible description) { // TODO Auto-generated method stub ! } public Accessible getAccessibleColumnDescription(int c) --- 772,778 ---- public void setAccessibleRowDescription(int r, Accessible description) { // TODO Auto-generated method stub ! } public Accessible getAccessibleColumnDescription(int c) *************** public class JTable *** 784,790 **** public void setAccessibleColumnDescription(int c, Accessible description) { // TODO Auto-generated method stub ! } public boolean isAccessibleSelected(int r, int c) --- 784,790 ---- public void setAccessibleColumnDescription(int c, Accessible description) { // TODO Auto-generated method stub ! } public boolean isAccessibleSelected(int r, int c) *************** public class JTable *** 816,822 **** // TODO Auto-generated method stub return null; } ! } /** --- 816,822 ---- // TODO Auto-generated method stub return null; } ! } /** *************** public class JTable *** 830,840 **** { JTableHeader header; ! int columnIndex; ! /** ! * * @param h the table header. * @param comp * @param r --- 830,840 ---- { JTableHeader header; ! int columnIndex; ! /** ! * * @param h the table header. * @param comp * @param r *************** public class JTable *** 849,855 **** /** * Returns the header renderer. ! * * @return The header renderer. */ Component getColumnHeaderRenderer() --- 849,855 ---- /** * Returns the header renderer. ! * * @return The header renderer. */ Component getColumnHeaderRenderer() *************** public class JTable *** 858,870 **** TableCellRenderer r = tc.getHeaderRenderer(); if (r == null) r = header.getDefaultRenderer(); ! return r.getTableCellRendererComponent(header.getTable(), tc.getHeaderValue(), false, false, -1, columnIndex); } ! /** * Returns the accessible role for the table header cell. ! * * @return The accessible role. */ public AccessibleRole getAccessibleRole() --- 858,870 ---- TableCellRenderer r = tc.getHeaderRenderer(); if (r == null) r = header.getDefaultRenderer(); ! return r.getTableCellRendererComponent(header.getTable(), tc.getHeaderValue(), false, false, -1, columnIndex); } ! /** * Returns the accessible role for the table header cell. ! * * @return The accessible role. */ public AccessibleRole getAccessibleRole() *************** public class JTable *** 910,916 **** /** * Returns the accessible context. ! * * @return this. */ public AccessibleContext getAccessibleContext() --- 910,916 ---- /** * Returns the accessible context. ! * * @return this. */ public AccessibleContext getAccessibleContext() *************** public class JTable *** 927,933 **** public void setBackground(Color color) { // TODO Auto-generated method stub ! } public Color getForeground() --- 927,933 ---- public void setBackground(Color color) { // TODO Auto-generated method stub ! } public Color getForeground() *************** public class JTable *** 939,945 **** public void setForeground(Color color) { // TODO Auto-generated method stub ! } public Cursor getCursor() --- 939,945 ---- public void setForeground(Color color) { // TODO Auto-generated method stub ! } public Cursor getCursor() *************** public class JTable *** 951,957 **** public void setCursor(Cursor cursor) { // TODO Auto-generated method stub ! } public Font getFont() --- 951,957 ---- public void setCursor(Cursor cursor) { // TODO Auto-generated method stub ! } public Font getFont() *************** public class JTable *** 963,969 **** public void setFont(Font font) { // TODO Auto-generated method stub ! } public FontMetrics getFontMetrics(Font font) --- 963,969 ---- public void setFont(Font font) { // TODO Auto-generated method stub ! } public FontMetrics getFontMetrics(Font font) *************** public class JTable *** 981,987 **** public void setEnabled(boolean b) { // TODO Auto-generated method stub ! } public boolean isVisible() --- 981,987 ---- public void setEnabled(boolean b) { // TODO Auto-generated method stub ! } public boolean isVisible() *************** public class JTable *** 993,999 **** public void setVisible(boolean b) { // TODO Auto-generated method stub ! } public boolean isShowing() --- 993,999 ---- public void setVisible(boolean b) { // TODO Auto-generated method stub ! } public boolean isShowing() *************** public class JTable *** 1023,1029 **** public void setLocation(Point point) { // TODO Auto-generated method stub ! } public Rectangle getBounds() --- 1023,1029 ---- public void setLocation(Point point) { // TODO Auto-generated method stub ! } public Rectangle getBounds() *************** public class JTable *** 1035,1041 **** public void setBounds(Rectangle rectangle) { // TODO Auto-generated method stub ! } public Dimension getSize() --- 1035,1041 ---- public void setBounds(Rectangle rectangle) { // TODO Auto-generated method stub ! } public Dimension getSize() *************** public class JTable *** 1047,1053 **** public void setSize(Dimension dimension) { // TODO Auto-generated method stub ! } public Accessible getAccessibleAt(Point point) --- 1047,1053 ---- public void setSize(Dimension dimension) { // TODO Auto-generated method stub ! } public Accessible getAccessibleAt(Point point) *************** public class JTable *** 1065,1085 **** public void requestFocus() { // TODO Auto-generated method stub ! } public void addFocusListener(FocusListener listener) { // TODO Auto-generated method stub ! } public void removeFocusListener(FocusListener listener) { // TODO Auto-generated method stub ! } ! } /** --- 1065,1085 ---- public void requestFocus() { // TODO Auto-generated method stub ! } public void addFocusListener(FocusListener listener) { // TODO Auto-generated method stub ! } public void removeFocusListener(FocusListener listener) { // TODO Auto-generated method stub ! } ! } /** *************** public class JTable *** 1140,1156 **** { return AccessibleRole.TABLE; } ! /** * Returns the accessible table. ! * * @return this. */ public AccessibleTable getAccessibleTable() { return this; } ! /** * Returns the number of selected items in this table. */ --- 1140,1156 ---- { return AccessibleRole.TABLE; } ! /** * Returns the accessible table. ! * * @return this. */ public AccessibleTable getAccessibleTable() { return this; } ! /** * Returns the number of selected items in this table. */ *************** public class JTable *** 1489,1495 **** */ public void propertyChange(PropertyChangeEvent e) { ! String propName = e.getPropertyName(); if (propName.equals("tableModel")) { TableModel oldModel = (TableModel) e.getOldValue(); --- 1489,1495 ---- */ public void propertyChange(PropertyChangeEvent e) { ! String propName = e.getPropertyName(); if (propName.equals("tableModel")) { TableModel oldModel = (TableModel) e.getOldValue(); *************** public class JTable *** 1525,1533 **** * index. * * @param index the index of the cell of which the row number is queried ! * * @return the row number of an accessible child (cell) with the specified ! * index */ public int getAccessibleRow(int index) { --- 1525,1533 ---- * index. * * @param index the index of the cell of which the row number is queried ! * * @return the row number of an accessible child (cell) with the specified ! * index */ public int getAccessibleRow(int index) { *************** public class JTable *** 1539,1547 **** * specified index. * * @param index the index of the cell of which the column number is queried ! * * @return the column number of an accessible child (cell) with the ! * specified index */ public int getAccessibleColumn(int index) { --- 1539,1547 ---- * specified index. * * @param index the index of the cell of which the column number is queried ! * * @return the column number of an accessible child (cell) with the ! * specified index */ public int getAccessibleColumn(int index) { *************** public class JTable *** 1629,1644 **** * Returns the accessible child at the given index. * * @param index the child index. ! * * @return The accessible child. */ public Accessible getAccessibleChild(int index) { int r = getAccessibleRow(index); int c = getAccessibleColumn(index); ! return getAccessibleAt(r, c); } ! /** * Returns the accessible child (table cell) at the specified row and * column. --- 1629,1644 ---- * Returns the accessible child at the given index. * * @param index the child index. ! * * @return The accessible child. */ public Accessible getAccessibleChild(int index) { int r = getAccessibleRow(index); int c = getAccessibleColumn(index); ! return getAccessibleAt(r, c); } ! /** * Returns the accessible child (table cell) at the specified row and * column. *************** public class JTable *** 1707,1713 **** */ public void setAccessibleRowHeader(AccessibleTable header) { ! // In the RI this seems to be a no-op. } /** --- 1707,1713 ---- */ public void setAccessibleRowHeader(AccessibleTable header) { ! // In the RI this seems to be a no-op. } /** *************** public class JTable *** 1912,1918 **** /** * Receives notification that a property of the observed TableColumns has * changed. ! * * @param ev the property change event */ public void propertyChange(PropertyChangeEvent ev) --- 1912,1918 ---- /** * Receives notification that a property of the observed TableColumns has * changed. ! * * @param ev the property change event */ public void propertyChange(PropertyChangeEvent ev) *************** public class JTable *** 1943,1949 **** * The CheckBox that is used for rendering. */ private final JCheckBox checkBox; ! /** * Creates a new checkbox based boolean cell renderer. The checkbox is * centered by default. --- 1943,1949 ---- * The CheckBox that is used for rendering. */ private final JCheckBox checkBox; ! /** * Creates a new checkbox based boolean cell renderer. The checkbox is * centered by default. *************** public class JTable *** 1953,1959 **** checkBox = new JCheckBox(); checkBox.setHorizontalAlignment(SwingConstants.CENTER); } ! /** * Get the check box. */ --- 1953,1959 ---- checkBox = new JCheckBox(); checkBox.setHorizontalAlignment(SwingConstants.CENTER); } ! /** * Get the check box. */ *************** public class JTable *** 1964,1970 **** /** * Returns the component that is used for rendering the value. ! * * @param table the JTable * @param value the value of the object * @param isSelected is the cell selected? --- 1964,1970 ---- /** * Returns the component that is used for rendering the value. ! * * @param table the JTable * @param value the value of the object * @param isSelected is the cell selected? *************** public class JTable *** 2031,2037 **** * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, --- 2031,2037 ---- * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, *************** public class JTable *** 2074,2080 **** * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, --- 2074,2080 ---- * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, *************** public class JTable *** 2117,2123 **** * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, --- 2117,2123 ---- * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, *************** public class JTable *** 2162,2169 **** { setHorizontalAlignment(SwingConstants.CENTER); } ! ! /** * Returns the component that is used for rendering the value. * --- 2162,2169 ---- { setHorizontalAlignment(SwingConstants.CENTER); } ! ! /** * Returns the component that is used for rendering the value. * *************** public class JTable *** 2173,2179 **** * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, --- 2173,2179 ---- * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, *************** public class JTable *** 2196,2202 **** return this; } } ! /** * The JTable text component (used in editing) always has the table * as its parent. The scrollRectToVisible must be adjusted taking the --- 2196,2202 ---- return this; } } ! /** * The JTable text component (used in editing) always has the table * as its parent. The scrollRectToVisible must be adjusted taking the *************** public class JTable *** 2213,2223 **** { setBorder(BorderFactory.createLineBorder(getGridColor(), 2)); } ! } ! private static final long serialVersionUID = 3876025080382781659L; ! /** * This table, for referring identically name methods from inner classes. */ --- 2213,2223 ---- { setBorder(BorderFactory.createLineBorder(getGridColor(), 2)); } ! } ! private static final long serialVersionUID = 3876025080382781659L; ! /** * This table, for referring identically name methods from inner classes. */ *************** public class JTable *** 2244,2250 **** * n), uniformly, to provide or absorb excess space requirements. */ public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2; ! /** * When resizing column i in a table of n * columns, automatically change all columns in the range [0, --- 2244,2250 ---- * n), uniformly, to provide or absorb excess space requirements. */ public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2; ! /** * When resizing column i in a table of n * columns, automatically change all columns in the range [0, *************** public class JTable *** 2261,2275 **** public static final int AUTO_RESIZE_LAST_COLUMN = 3; /** ! * A table mapping {@link java.lang.Class} objects to ! * {@link TableCellEditor} objects. This table is consulted by the * FIXME */ protected Hashtable defaultEditorsByColumnClass = new Hashtable(); /** ! * A table mapping {@link java.lang.Class} objects to ! * {@link TableCellEditor} objects. This table is consulted by the * FIXME */ protected Hashtable defaultRenderersByColumnClass = new Hashtable(); --- 2261,2275 ---- public static final int AUTO_RESIZE_LAST_COLUMN = 3; /** ! * A table mapping {@link java.lang.Class} objects to ! * {@link TableCellEditor} objects. This table is consulted by the * FIXME */ protected Hashtable defaultEditorsByColumnClass = new Hashtable(); /** ! * A table mapping {@link java.lang.Class} objects to ! * {@link TableCellEditor} objects. This table is consulted by the * FIXME */ protected Hashtable defaultRenderersByColumnClass = new Hashtable(); *************** public class JTable *** 2295,2301 **** /** * Whether or not the table should automatically compute a matching * {@link TableColumnModel} and assign it to the {@link #columnModel} ! * property when the {@link #dataModel} property is changed. * * @see #setModel(TableModel) * @see #createDefaultColumnsFromModel() --- 2295,2301 ---- /** * Whether or not the table should automatically compute a matching * {@link TableColumnModel} and assign it to the {@link #columnModel} ! * property when the {@link #dataModel} property is changed. * * @see #setModel(TableModel) * @see #createDefaultColumnsFromModel() *************** public class JTable *** 2310,2316 **** * one of {@link #AUTO_RESIZE_ALL_COLUMNS} (the default), {@link * #AUTO_RESIZE_LAST_COLUMN}, {@link #AUTO_RESIZE_NEXT_COLUMN}, {@link * #AUTO_RESIZE_SUBSEQUENT_COLUMNS}, or {@link #AUTO_RESIZE_OFF}. ! * * @see #doLayout() * @see #setAutoResizeMode(int) * @see #getAutoResizeMode() --- 2310,2316 ---- * one of {@link #AUTO_RESIZE_ALL_COLUMNS} (the default), {@link * #AUTO_RESIZE_LAST_COLUMN}, {@link #AUTO_RESIZE_NEXT_COLUMN}, {@link * #AUTO_RESIZE_SUBSEQUENT_COLUMNS}, or {@link #AUTO_RESIZE_OFF}. ! * * @see #doLayout() * @see #setAutoResizeMode(int) * @see #getAutoResizeMode() *************** public class JTable *** 2322,2328 **** * of uniform height. This differs from column width, which varies on a * per-column basis, and is stored in the individual columns of the * {@link #columnModel}. ! * * @see #getRowHeight() * @see #setRowHeight(int) * @see TableColumn#getWidth() --- 2322,2328 ---- * of uniform height. This differs from column width, which varies on a * per-column basis, and is stored in the individual columns of the * {@link #columnModel}. ! * * @see #getRowHeight() * @see #setRowHeight(int) * @see TableColumn#getWidth() *************** public class JTable *** 2331,2338 **** protected int rowHeight; /** ! * The height in pixels of the gap left between any two rows of the table. ! * * @see #setRowMargin(int) * @see #getRowHeight() * @see #getIntercellSpacing() --- 2331,2338 ---- protected int rowHeight; /** ! * The height in pixels of the gap left between any two rows of the table. ! * * @see #setRowMargin(int) * @see #getRowHeight() * @see #getIntercellSpacing() *************** public class JTable *** 2358,2369 **** protected boolean rowSelectionAllowed; /** ! * Obsolete. Use {@link #rowSelectionAllowed}, {@link * #getColumnSelectionAllowed}, or the combined methods {@link * #getCellSelectionEnabled} and {@link #setCellSelectionEnabled(boolean)}. */ protected boolean cellSelectionEnabled; ! /** * The model for data stored in the table. Confusingly, the published API * requires that this field be called dataModel, despite its --- 2358,2369 ---- protected boolean rowSelectionAllowed; /** ! * Obsolete. Use {@link #rowSelectionAllowed}, {@link * #getColumnSelectionAllowed}, or the combined methods {@link * #getCellSelectionEnabled} and {@link #setCellSelectionEnabled(boolean)}. */ protected boolean cellSelectionEnabled; ! /** * The model for data stored in the table. Confusingly, the published API * requires that this field be called dataModel, despite its *************** public class JTable *** 2393,2399 **** * at all: setting {@link #autoCreateColumnsFromModel} will construct the * columnModel automatically, and the table acts as a facade for most of * the interesting properties of the columnModel anyways.

                                            ! * * @see #setColumnModel(TableColumnModel) * @see #getColumnModel() */ --- 2393,2399 ---- * at all: setting {@link #autoCreateColumnsFromModel} will construct the * columnModel automatically, and the table acts as a facade for most of * the interesting properties of the columnModel anyways.

                                            ! * * @see #setColumnModel(TableColumnModel) * @see #getColumnModel() */ *************** public class JTable *** 2409,2420 **** * @see #setSelectionModel(ListSelectionModel) * @see #getSelectionModel() * @see TableColumnModel#getSelectionModel() ! * @see ListSelectionModel#addListSelectionListener(ListSelectionListener) */ protected ListSelectionModel selectionModel; /** ! * The current cell editor. */ protected TableCellEditor cellEditor; --- 2409,2420 ---- * @see #setSelectionModel(ListSelectionModel) * @see #getSelectionModel() * @see TableColumnModel#getSelectionModel() ! * @see ListSelectionModel#addListSelectionListener(ListSelectionListener) */ protected ListSelectionModel selectionModel; /** ! * The current cell editor. */ protected TableCellEditor cellEditor; *************** public class JTable *** 2504,2510 **** private boolean surrendersFocusOnKeystroke = false; /** ! * A Rectangle object to be reused in {@link #getCellRect}. */ private Rectangle rectCache = new Rectangle(); --- 2504,2510 ---- private boolean surrendersFocusOnKeystroke = false; /** ! * A Rectangle object to be reused in {@link #getCellRect}. */ private Rectangle rectCache = new Rectangle(); *************** public class JTable *** 2531,2543 **** * @see #setRowHeight(int, int) */ private SizeSequence rowHeights; ! /** * This editor serves just a marker that the value must be simply changed to * the opposite one instead of starting the editing session. */ ! private transient TableCellEditor booleanInvertingEditor; ! /** * Creates a new JTable instance. */ --- 2531,2543 ---- * @see #setRowHeight(int, int) */ private SizeSequence rowHeights; ! /** * This editor serves just a marker that the value must be simply changed to * the opposite one instead of starting the editing session. */ ! private transient TableCellEditor booleanInvertingEditor; ! /** * Creates a new JTable instance. */ *************** public class JTable *** 2559,2565 **** } /** ! * Creates a new JTable instance, storing the given data * array and heaving the given column names. To see the column names, * you must place the JTable into the {@link JScrollPane}. * --- 2559,2565 ---- } /** ! * Creates a new JTable instance, storing the given data * array and heaving the given column names. To see the column names, * you must place the JTable into the {@link JScrollPane}. * *************** public class JTable *** 2576,2582 **** * object that provides information about the table content. The table model * object is asked for the table size, other features and also receives * notifications in the case when the table has been edited by the user. ! * * @param model * the table model. */ --- 2576,2582 ---- * object that provides information about the table content. The table model * object is asked for the table size, other features and also receives * notifications in the case when the table has been edited by the user. ! * * @param model * the table model. */ *************** public class JTable *** 2592,2598 **** * notifications in the case when the table has been edited by the user. The * table column model provides more detailed control on the table column * related features. ! * * @param dm * the table data mode * @param cm --- 2592,2598 ---- * notifications in the case when the table has been edited by the user. The * table column model provides more detailed control on the table column * related features. ! * * @param dm * the table data mode * @param cm *************** public class JTable *** 2618,2641 **** TableColumnModel columnModel; if (cm != null) columnModel = cm; ! else { columnModel = createDefaultColumnModel(); autoCreate = true; } ! // Initialise the intercelar spacing before setting the column model to // avoid firing unnecessary events. ! // The initial incellar spacing is new Dimenstion(1,1). rowMargin = 1; columnModel.setColumnMargin(1); setColumnModel(columnModel); ! setSelectionModel(sm == null ? createDefaultSelectionModel() : sm); setModel(dm == null ? createDefaultDataModel() : dm); setAutoCreateColumnsFromModel(autoCreate); initializeLocalVars(); ! // The following four lines properly set the lead selection indices. // After this, the UI will handle the lead selection indices. // FIXME: this should probably not be necessary, if the UI is installed --- 2618,2641 ---- TableColumnModel columnModel; if (cm != null) columnModel = cm; ! else { columnModel = createDefaultColumnModel(); autoCreate = true; } ! // Initialise the intercelar spacing before setting the column model to // avoid firing unnecessary events. ! // The initial incellar spacing is new Dimenstion(1,1). rowMargin = 1; columnModel.setColumnMargin(1); setColumnModel(columnModel); ! setSelectionModel(sm == null ? createDefaultSelectionModel() : sm); setModel(dm == null ? createDefaultDataModel() : dm); setAutoCreateColumnsFromModel(autoCreate); initializeLocalVars(); ! // The following four lines properly set the lead selection indices. // After this, the UI will handle the lead selection indices. // FIXME: this should probably not be necessary, if the UI is installed *************** public class JTable *** 2649,2657 **** // selectionModel.setLeadSelectionIndex(-1); // columnModel.getSelectionModel().setAnchorSelectionIndex(-1); // columnModel.getSelectionModel().setLeadSelectionIndex(-1); ! updateUI(); } ! /** * Creates a new JTable instance that uses data and column * names, stored in {@link Vector}s. --- 2649,2657 ---- // selectionModel.setLeadSelectionIndex(-1); // columnModel.getSelectionModel().setAnchorSelectionIndex(-1); // columnModel.getSelectionModel().setLeadSelectionIndex(-1); ! updateUI(); } ! /** * Creates a new JTable instance that uses data and column * names, stored in {@link Vector}s. *************** public class JTable *** 2662,2669 **** public JTable(Vector data, Vector columnNames) { this(new DefaultTableModel(data, columnNames)); ! } ! /** * Initialize local variables to default values. */ --- 2662,2669 ---- public JTable(Vector data, Vector columnNames) { this(new DefaultTableModel(data, columnNames)); ! } ! /** * Initialize local variables to default values. */ *************** public class JTable *** 2678,2687 **** setRowHeight(16); this.rowMargin = 1; this.rowSelectionAllowed = true; ! // this.accessibleContext = new AccessibleJTable(); this.cellEditor = null; ! // COMPAT: Both Sun and IBM have drag enabled this.dragEnabled = false; this.preferredViewportSize = new Dimension(450,400); --- 2678,2687 ---- setRowHeight(16); this.rowMargin = 1; this.rowSelectionAllowed = true; ! // this.accessibleContext = new AccessibleJTable(); this.cellEditor = null; ! // COMPAT: Both Sun and IBM have drag enabled this.dragEnabled = false; this.preferredViewportSize = new Dimension(450,400); *************** public class JTable *** 2690,2704 **** this.editingColumn = -1; this.editingRow = -1; } ! /** * Add the new table column. The table column class allows to specify column * features more precisely, setting the preferred width, column data type * (column class) and table headers. ! * ! * There is no need the add columns to the table if the default column * handling is sufficient. ! * * @param column * the new column to add. */ --- 2690,2704 ---- this.editingColumn = -1; this.editingRow = -1; } ! /** * Add the new table column. The table column class allows to specify column * features more precisely, setting the preferred width, column data type * (column class) and table headers. ! * ! * There is no need the add columns to the table if the default column * handling is sufficient. ! * * @param column * the new column to add. */ *************** public class JTable *** 2709,2723 **** String name = dataModel.getColumnName(column.getModelIndex()); column.setHeaderValue(name); } ! columnModel.addColumn(column); column.addPropertyChangeListener(tableColumnPropertyChangeHandler); } ! /** * Create the default editors for this table. The default method creates * the editor for Booleans. ! * * Other fields are edited as strings at the moment. */ protected void createDefaultEditors() --- 2709,2723 ---- String name = dataModel.getColumnName(column.getModelIndex()); column.setHeaderValue(name); } ! columnModel.addColumn(column); column.addPropertyChangeListener(tableColumnPropertyChangeHandler); } ! /** * Create the default editors for this table. The default method creates * the editor for Booleans. ! * * Other fields are edited as strings at the moment. */ protected void createDefaultEditors() *************** public class JTable *** 2725,2734 **** JCheckBox box = new BooleanCellRenderer().getCheckBox(); box.setBorder(BorderFactory.createLineBorder(getGridColor(), 2)); box.setBorderPainted(true); ! booleanInvertingEditor = new DefaultCellEditor(box); setDefaultEditor(Boolean.class, booleanInvertingEditor); } ! /** * Create the default renderers for this table. The default method creates * renderers for Boolean, Number, Double, Date, Icon and ImageIcon. --- 2725,2734 ---- JCheckBox box = new BooleanCellRenderer().getCheckBox(); box.setBorder(BorderFactory.createLineBorder(getGridColor(), 2)); box.setBorderPainted(true); ! booleanInvertingEditor = new DefaultCellEditor(box); setDefaultEditor(Boolean.class, booleanInvertingEditor); } ! /** * Create the default renderers for this table. The default method creates * renderers for Boolean, Number, Double, Date, Icon and ImageIcon. *************** public class JTable *** 2742,2750 **** setDefaultRenderer(Double.class, new FloatCellRenderer()); setDefaultRenderer(Date.class, new DateCellRenderer()); setDefaultRenderer(Icon.class, new IconCellRenderer()); ! setDefaultRenderer(ImageIcon.class, new IconCellRenderer()); } ! /** * @deprecated 1.0.2, replaced by new JScrollPane(JTable) */ --- 2742,2750 ---- setDefaultRenderer(Double.class, new FloatCellRenderer()); setDefaultRenderer(Date.class, new DateCellRenderer()); setDefaultRenderer(Icon.class, new IconCellRenderer()); ! setDefaultRenderer(ImageIcon.class, new IconCellRenderer()); } ! /** * @deprecated 1.0.2, replaced by new JScrollPane(JTable) */ *************** public class JTable *** 2752,2763 **** { return new JScrollPane(table); } ! /** * Create the default table column model that is used if the user-defined * column model is not provided. The default method creates * {@link DefaultTableColumnModel}. ! * * @return the created table column model. */ protected TableColumnModel createDefaultColumnModel() --- 2752,2763 ---- { return new JScrollPane(table); } ! /** * Create the default table column model that is used if the user-defined * column model is not provided. The default method creates * {@link DefaultTableColumnModel}. ! * * @return the created table column model. */ protected TableColumnModel createDefaultColumnModel() *************** public class JTable *** 2769,2775 **** * Create the default table data model that is used if the user-defined * data model is not provided. The default method creates * {@link DefaultTableModel}. ! * * @return the created table data model. */ protected TableModel createDefaultDataModel() --- 2769,2775 ---- * Create the default table data model that is used if the user-defined * data model is not provided. The default method creates * {@link DefaultTableModel}. ! * * @return the created table data model. */ protected TableModel createDefaultDataModel() *************** public class JTable *** 2781,2805 **** * Create the default table selection model that is used if the user-defined * selection model is not provided. The default method creates * {@link DefaultListSelectionModel}. ! * * @return the created table data model. */ protected ListSelectionModel createDefaultSelectionModel() { return new DefaultListSelectionModel(); } ! /** * Create the default table header, if the user - defined table header is not * provided. ! * * @return the default table header. */ protected JTableHeader createDefaultTableHeader() { return new JTableHeader(columnModel); } ! /** * Invoked when the column is added. Revalidates and repains the table. */ --- 2781,2805 ---- * Create the default table selection model that is used if the user-defined * selection model is not provided. The default method creates * {@link DefaultListSelectionModel}. ! * * @return the created table data model. */ protected ListSelectionModel createDefaultSelectionModel() { return new DefaultListSelectionModel(); } ! /** * Create the default table header, if the user - defined table header is not * provided. ! * * @return the default table header. */ protected JTableHeader createDefaultTableHeader() { return new JTableHeader(columnModel); } ! /** * Invoked when the column is added. Revalidates and repains the table. */ *************** public class JTable *** 2810,2816 **** } /** ! * Invoked when the column margin is changed. * Revalidates and repains the table. */ public void columnMarginChanged (ChangeEvent event) --- 2810,2816 ---- } /** ! * Invoked when the column margin is changed. * Revalidates and repains the table. */ public void columnMarginChanged (ChangeEvent event) *************** public class JTable *** 2838,2844 **** revalidate(); repaint(); } ! /** * Invoked when the the column selection changes, repaints the changed * columns. It is not recommended to override this method, register the --- 2838,2844 ---- revalidate(); repaint(); } ! /** * Invoked when the the column selection changes, repaints the changed * columns. It is not recommended to override this method, register the *************** public class JTable *** 2887,2893 **** repaint(dirty); } } ! /** * Invoked when the editing is cancelled. */ --- 2887,2893 ---- repaint(dirty); } } ! /** * Invoked when the editing is cancelled. */ *************** public class JTable *** 2896,2918 **** if (editorComp!=null) { remove(editorComp); ! repaint(editorComp.getBounds()); editorComp = null; } } ! /** * Finish the current editing session and update the table with the * new value by calling {@link #setValueAt}. ! * * @param event the change event */ public void editingStopped (ChangeEvent event) { if (editorComp!=null) { ! remove(editorComp); ! setValueAt(cellEditor.getCellEditorValue(), editingRow, editingColumn); repaint(editorComp.getBounds()); editorComp = null; } --- 2896,2918 ---- if (editorComp!=null) { remove(editorComp); ! repaint(editorComp.getBounds()); editorComp = null; } } ! /** * Finish the current editing session and update the table with the * new value by calling {@link #setValueAt}. ! * * @param event the change event */ public void editingStopped (ChangeEvent event) { if (editorComp!=null) { ! remove(editorComp); ! setValueAt(cellEditor.getCellEditorValue(), editingRow, editingColumn); repaint(editorComp.getBounds()); editorComp = null; } *************** public class JTable *** 3051,3057 **** Rectangle dirty; if (col == TableModelEvent.ALL_COLUMNS) { ! // All columns changed. dirty = new Rectangle(0, firstRow * getRowHeight(), getColumnModel().getTotalColumnWidth(), 0); } --- 3051,3057 ---- Rectangle dirty; if (col == TableModelEvent.ALL_COLUMNS) { ! // All columns changed. dirty = new Rectangle(0, firstRow * getRowHeight(), getColumnModel().getTotalColumnWidth(), 0); } *************** public class JTable *** 3121,3127 **** // If we are in the editing process, end the editing session. if (isEditing()) editingStopped(null); ! // Repaint the changed region. int first = Math.max(0, Math.min(getRowCount() - 1, event.getFirstIndex())); int last = Math.max(0, Math.min(getRowCount() - 1, event.getLastIndex())); --- 3121,3127 ---- // If we are in the editing process, end the editing session. if (isEditing()) editingStopped(null); ! // Repaint the changed region. int first = Math.max(0, Math.min(getRowCount() - 1, event.getFirstIndex())); int last = Math.max(0, Math.min(getRowCount() - 1, event.getLastIndex())); *************** public class JTable *** 3134,3144 **** } /** ! * Returns index of the column that contains specified point * or -1 if this table doesn't contain this point. * * @param point point to identify the column ! * @return index of the column that contains specified point or * -1 if this table doesn't contain this point. */ public int columnAtPoint(Point point) --- 3134,3144 ---- } /** ! * Returns index of the column that contains specified point * or -1 if this table doesn't contain this point. * * @param point point to identify the column ! * @return index of the column that contains specified point or * -1 if this table doesn't contain this point. */ public int columnAtPoint(Point point) *************** public class JTable *** 3162,3168 **** /** * Returns index of the row that contains specified point or -1 if this table * doesn't contain this point. ! * * @param point point to identify the row * @return index of the row that contains specified point or -1 if this table * doesn't contain this point. --- 3162,3168 ---- /** * Returns index of the row that contains specified point or -1 if this table * doesn't contain this point. ! * * @param point point to identify the row * @return index of the row that contains specified point or -1 if this table * doesn't contain this point. *************** public class JTable *** 3191,3197 **** return -1; } ! /** * Calculate the visible rectangle for a particular row and column. The * row and column are specified in visual terms; the column may not match * the {@link #dataModel} column. --- 3191,3197 ---- return -1; } ! /** * Calculate the visible rectangle for a particular row and column. The * row and column are specified in visual terms; the column may not match * the {@link #dataModel} column. *************** public class JTable *** 3272,3278 **** cellRect.x += cMargin / 2; cellRect.width -= cMargin; } ! } return cellRect; } --- 3272,3278 ---- cellRect.x += cMargin / 2; cellRect.width -= cMargin; } ! } return cellRect; } *************** public class JTable *** 3291,3300 **** * @return The current value of the selectedRow property */ public int getSelectedRow () ! { return selectionModel.getMinSelectionIndex(); } ! /** * Get the value of the {@link #selectionModel} property. * --- 3291,3300 ---- * @return The current value of the selectedRow property */ public int getSelectedRow () ! { return selectionModel.getMinSelectionIndex(); } ! /** * Get the value of the {@link #selectionModel} property. * *************** public class JTable *** 3305,3311 **** //Neither Sun nor IBM returns null if rowSelection not allowed return selectionModel; } ! public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { int block; --- 3305,3311 ---- //Neither Sun nor IBM returns null if rowSelection not allowed return selectionModel; } ! public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { int block; *************** public class JTable *** 3334,3340 **** { return false; } ! /** * Get the value of the scrollableTracksViewportWidth property. * --- 3334,3340 ---- { return false; } ! /** * Get the value of the scrollableTracksViewportWidth property. * *************** public class JTable *** 3348,3367 **** else return true; } ! /** * Return the preferred scrolling amount (in pixels) for the given scrolling * direction and orientation. This method handles a partially exposed row by * returning the distance required to completely expose the item. When * scrolling the top item is completely exposed. ! * * @param visibleRect the currently visible part of the component. * @param orientation the scrolling orientation * @param direction the scrolling direction (negative - up, positive -down). * The values greater than one means that more mouse wheel or similar * events were generated, and hence it is better to scroll the longer * distance. ! * * @author Roman Kennke (kennke@aicas.com) */ public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, --- 3348,3367 ---- else return true; } ! /** * Return the preferred scrolling amount (in pixels) for the given scrolling * direction and orientation. This method handles a partially exposed row by * returning the distance required to completely expose the item. When * scrolling the top item is completely exposed. ! * * @param visibleRect the currently visible part of the component. * @param orientation the scrolling orientation * @param direction the scrolling direction (negative - up, positive -down). * The values greater than one means that more mouse wheel or similar * events were generated, and hence it is better to scroll the longer * distance. ! * * @author Roman Kennke (kennke@aicas.com) */ public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, *************** public class JTable *** 3403,3409 **** * not provide the editor, the call is forwarded to the * {@link #getDefaultEditor(Class)} with the parameter, obtained from * {@link TableModel#getColumnClass(int)}. ! * * @param row the cell row * @param column the cell column * @return the editor to edit that cell --- 3403,3409 ---- * not provide the editor, the call is forwarded to the * {@link #getDefaultEditor(Class)} with the parameter, obtained from * {@link TableModel#getColumnClass(int)}. ! * * @param row the cell row * @param column the cell column * @return the editor to edit that cell *************** public class JTable *** 3420,3432 **** return editor; } ! /** * Get the default editor for editing values of the given type * (String, Boolean and so on). ! * * @param columnClass the class of the value that will be edited. ! * * @return the editor, suitable for editing this data type */ public TableCellEditor getDefaultEditor(Class columnClass) --- 3420,3432 ---- return editor; } ! /** * Get the default editor for editing values of the given type * (String, Boolean and so on). ! * * @param columnClass the class of the value that will be edited. ! * * @return the editor, suitable for editing this data type */ public TableCellEditor getDefaultEditor(Class columnClass) *************** public class JTable *** 3435,3441 **** return (TableCellEditor) defaultEditorsByColumnClass.get(columnClass); else { ! JTextField t = new TableTextField(); TableCellEditor r = new DefaultCellEditor(t); defaultEditorsByColumnClass.put(columnClass, r); return r; --- 3435,3441 ---- return (TableCellEditor) defaultEditorsByColumnClass.get(columnClass); else { ! JTextField t = new TableTextField(); TableCellEditor r = new DefaultCellEditor(t); defaultEditorsByColumnClass.put(columnClass, r); return r; *************** public class JTable *** 3444,3450 **** /** * Get the cell renderer for rendering the given cell. ! * * @param row the cell row * @param column the cell column * @return the cell renderer to render that cell. --- 3444,3450 ---- /** * Get the cell renderer for rendering the given cell. ! * * @param row the cell row * @param column the cell column * @return the cell renderer to render that cell. *************** public class JTable *** 3464,3470 **** /** * Set default renderer for rendering the given data type. ! * * @param columnClass the data type (String, Boolean and so on) that must be * rendered. * @param rend the renderer that will rend this data type --- 3464,3470 ---- /** * Set default renderer for rendering the given data type. ! * * @param columnClass the data type (String, Boolean and so on) that must be * rendered. * @param rend the renderer that will rend this data type *************** public class JTable *** 3476,3484 **** /** * Get the default renderer for rendering the given data type. ! * * @param columnClass the data that must be rendered ! * * @return the appropriate defauld renderer for rendering that data type. */ public TableCellRenderer getDefaultRenderer(Class columnClass) --- 3476,3484 ---- /** * Get the default renderer for rendering the given data type. ! * * @param columnClass the data that must be rendered ! * * @return the appropriate defauld renderer for rendering that data type. */ public TableCellRenderer getDefaultRenderer(Class columnClass) *************** public class JTable *** 3492,3498 **** return r; } } ! /** * Convert the table model index into the table column number. * The model number need not match the real column position. The columns --- 3492,3498 ---- return r; } } ! /** * Convert the table model index into the table column number. * The model number need not match the real column position. The columns *************** public class JTable *** 3500,3508 **** * column headers. * * @param vc the column number (0=first). ! * * @return the table column model index of this column. ! * * @see TableColumn#getModelIndex() */ public int convertColumnIndexToModel(int vc) --- 3500,3508 ---- * column headers. * * @param vc the column number (0=first). ! * * @return the table column model index of this column. ! * * @see TableColumn#getModelIndex() */ public int convertColumnIndexToModel(int vc) *************** public class JTable *** 3512,3529 **** else return columnModel.getColumn(vc).getModelIndex(); } ! /** * Convert the table column number to the table column model index. * The model number need not match the real column position. The columns * may be rearranged by the user with mouse at any time by dragging the * column headers. ! * * @param mc the table column index (0=first). ! * * @return the table column number in the model ! * ! * @see TableColumn#getModelIndex() */ public int convertColumnIndexToView(int mc) { --- 3512,3529 ---- else return columnModel.getColumn(vc).getModelIndex(); } ! /** * Convert the table column number to the table column model index. * The model number need not match the real column position. The columns * may be rearranged by the user with mouse at any time by dragging the * column headers. ! * * @param mc the table column index (0=first). ! * * @return the table column number in the model ! * ! * @see TableColumn#getModelIndex() */ public int convertColumnIndexToView(int mc) { *************** public class JTable *** 3537,3550 **** } return -1; } ! /** * Prepare the renderer for rendering the given cell. ! * * @param renderer the renderer being prepared * @param row the row of the cell being rendered * @param column the column of the cell being rendered ! * * @return the component which .paint() method will paint the cell. */ public Component prepareRenderer(TableCellRenderer renderer, --- 3537,3550 ---- } return -1; } ! /** * Prepare the renderer for rendering the given cell. ! * * @param renderer the renderer being prepared * @param row the row of the cell being rendered * @param column the column of the cell being rendered ! * * @return the component which .paint() method will paint the cell. */ public Component prepareRenderer(TableCellRenderer renderer, *************** public class JTable *** 3569,3575 **** && colSel.getLeadSelectionIndex() == column; return renderer.getTableCellRendererComponent(this, ! dataModel.getValueAt(row, convertColumnIndexToModel(column)), isSel, hasFocus, --- 3569,3575 ---- && colSel.getLeadSelectionIndex() == column; return renderer.getTableCellRendererComponent(this, ! dataModel.getValueAt(row, convertColumnIndexToModel(column)), isSel, hasFocus, *************** public class JTable *** 3635,3641 **** * Get the value of the {@link #rowSelectionAllowed} property. * * @return The current value of the property ! * * @see #setRowSelectionAllowed(boolean) */ public boolean getRowSelectionAllowed() --- 3635,3641 ---- * Get the value of the {@link #rowSelectionAllowed} property. * * @return The current value of the property ! * * @see #setRowSelectionAllowed(boolean) */ public boolean getRowSelectionAllowed() *************** public class JTable *** 3671,3677 **** */ public int getColumnCount() { ! return columnModel.getColumnCount(); } /** --- 3671,3677 ---- */ public int getColumnCount() { ! return columnModel.getColumnCount(); } /** *************** public class JTable *** 3718,3731 **** case ListSelectionModel.SINGLE_SELECTION: sum = 1; break; ! case ListSelectionModel.SINGLE_INTERVAL_SELECTION: sum = hi - lo + 1; break; ! ! case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ! if (lsm.isSelectedIndex(i)) ++sum; break; } --- 3718,3731 ---- case ListSelectionModel.SINGLE_SELECTION: sum = 1; break; ! case ListSelectionModel.SINGLE_INTERVAL_SELECTION: sum = hi - lo + 1; break; ! ! case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ! if (lsm.isSelectedIndex(i)) ++sum; break; } *************** public class JTable *** 3747,3762 **** { case ListSelectionModel.SINGLE_SELECTION: ret[0] = lo; ! break; ! ! case ListSelectionModel.SINGLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ret[j++] = i; break; ! ! case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ! if (lsm.isSelectedIndex(i)) ret[j++] = i; break; } --- 3747,3762 ---- { case ListSelectionModel.SINGLE_SELECTION: ret[0] = lo; ! break; ! ! case ListSelectionModel.SINGLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ret[j++] = i; break; ! ! case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ! if (lsm.isSelectedIndex(i)) ret[j++] = i; break; } *************** public class JTable *** 3769,3775 **** * delegation to the {@link #columnModel} field. * * @return The current value of the selectedColumnCount property ! */ public int getSelectedColumnCount() { return countSelections(columnModel.getSelectionModel()); --- 3769,3775 ---- * delegation to the {@link #columnModel} field. * * @return The current value of the selectedColumnCount property ! */ public int getSelectedColumnCount() { return countSelections(columnModel.getSelectionModel()); *************** public class JTable *** 3790,3796 **** * Get the value of the columnSelectionAllowed property. * * @return The current value of the columnSelectionAllowed property ! * * @see #setColumnSelectionAllowed(boolean) */ public boolean getColumnSelectionAllowed() --- 3790,3796 ---- * Get the value of the columnSelectionAllowed property. * * @return The current value of the columnSelectionAllowed property ! * * @see #setColumnSelectionAllowed(boolean) */ public boolean getColumnSelectionAllowed() *************** public class JTable *** 3835,3841 **** tcm.addColumnModelListener(ctx); tcm.getSelectionModel().addListSelectionListener(ctx); getSelectionModel().addListSelectionListener(ctx); ! accessibleContext = ctx; } return accessibleContext; --- 3835,3841 ---- tcm.addColumnModelListener(ctx); tcm.getSelectionModel().addListSelectionListener(ctx); getSelectionModel().addListSelectionListener(ctx); ! accessibleContext = ctx; } return accessibleContext; *************** public class JTable *** 3947,3953 **** * @param column column to removed */ public void removeColumn(TableColumn column) ! { columnModel.removeColumn(column); } --- 3947,3953 ---- * @param column column to removed */ public void removeColumn(TableColumn column) ! { columnModel.removeColumn(column); } *************** public class JTable *** 3956,3963 **** * * @param column index of the column to move * @param targetColumn index specifying new location of the column ! */ ! public void moveColumn(int column,int targetColumn) { columnModel.moveColumn(column, targetColumn); } --- 3956,3963 ---- * * @param column index of the column to move * @param targetColumn index specifying new location of the column ! */ ! public void moveColumn(int column,int targetColumn) { columnModel.moveColumn(column, targetColumn); } *************** public class JTable *** 3968,3974 **** * {@link #createDefaultColumnsFromModel()} method is called. * * @param autoCreate the new value of the flag. ! */ public void setAutoCreateColumnsFromModel(boolean autoCreate) { if (autoCreateColumnsFromModel != autoCreate) --- 3968,3974 ---- * {@link #createDefaultColumnsFromModel()} method is called. * * @param autoCreate the new value of the flag. ! */ public void setAutoCreateColumnsFromModel(boolean autoCreate) { if (autoCreateColumnsFromModel != autoCreate) *************** public class JTable *** 3983,3989 **** * Set the value of the {@link #autoResizeMode} property. * * @param a The new value of the autoResizeMode property ! */ public void setAutoResizeMode(int a) { autoResizeMode = a; --- 3983,3989 ---- * Set the value of the {@link #autoResizeMode} property. * * @param a The new value of the autoResizeMode property ! */ public void setAutoResizeMode(int a) { autoResizeMode = a; *************** public class JTable *** 4000,4006 **** * @see #getRowHeight() * @see #setRowHeight(int, int) * @see #getRowHeight(int) ! */ public void setRowHeight(int r) { if (r < 1) --- 4000,4006 ---- * @see #getRowHeight() * @see #setRowHeight(int, int) * @see #getRowHeight(int) ! */ public void setRowHeight(int r) { if (r < 1) *************** public class JTable *** 4013,4022 **** revalidate(); repaint(); } ! /** * Sets the height of a single row in the table. ! * * @param rh the new row height * @param row the row to change the height of */ --- 4013,4022 ---- revalidate(); repaint(); } ! /** * Sets the height of a single row in the table. ! * * @param rh the new row height * @param row the row to change the height of */ *************** public class JTable *** 4028,4039 **** } rowHeights.setSize(row, rh); } ! /** * Set the value of the {@link #rowMargin} property. * * @param r The new value of the rowMargin property ! */ public void setRowMargin(int r) { rowMargin = r; --- 4028,4039 ---- } rowHeights.setSize(row, rh); } ! /** * Set the value of the {@link #rowMargin} property. * * @param r The new value of the rowMargin property ! */ public void setRowMargin(int r) { rowMargin = r; *************** public class JTable *** 4045,4056 **** * Set the value of the {@link #rowSelectionAllowed} property. * * @param r The new value of the rowSelectionAllowed property ! * * @see #getRowSelectionAllowed() ! */ public void setRowSelectionAllowed(boolean r) { ! if (rowSelectionAllowed != r) { rowSelectionAllowed = r; firePropertyChange("rowSelectionAllowed", !r, r); --- 4045,4056 ---- * Set the value of the {@link #rowSelectionAllowed} property. * * @param r The new value of the rowSelectionAllowed property ! * * @see #getRowSelectionAllowed() ! */ public void setRowSelectionAllowed(boolean r) { ! if (rowSelectionAllowed != r) { rowSelectionAllowed = r; firePropertyChange("rowSelectionAllowed", !r, r); *************** public class JTable *** 4062,4068 **** * Set the value of the {@link #cellSelectionEnabled} property. * * @param c The new value of the cellSelectionEnabled property ! */ public void setCellSelectionEnabled(boolean c) { setColumnSelectionAllowed(c); --- 4062,4068 ---- * Set the value of the {@link #cellSelectionEnabled} property. * * @param c The new value of the cellSelectionEnabled property ! */ public void setCellSelectionEnabled(boolean c) { setColumnSelectionAllowed(c); *************** public class JTable *** 4079,4091 **** * m.

                                            * * @param m The new value of the model property ! */ public void setModel(TableModel m) { // Throw exception is m is null. if (m == null) throw new IllegalArgumentException(); ! // Don't do anything if setting the current model again. if (dataModel == m) return; --- 4079,4091 ---- * m.

                                            * * @param m The new value of the model property ! */ public void setModel(TableModel m) { // Throw exception is m is null. if (m == null) throw new IllegalArgumentException(); ! // Don't do anything if setting the current model again. if (dataModel == m) return; *************** public class JTable *** 4095,4101 **** // Remove table as TableModelListener from old model. if (dataModel != null) dataModel.removeTableModelListener(this); ! if (m != null) { // Set property. --- 4095,4101 ---- // Remove table as TableModelListener from old model. if (dataModel != null) dataModel.removeTableModelListener(this); ! if (m != null) { // Set property. *************** public class JTable *** 4129,4135 **** * c.

                                            * * @param c The new value of the columnModel property ! */ public void setColumnModel(TableColumnModel c) { if (c == null) --- 4129,4135 ---- * c.

                                            * * @param c The new value of the columnModel property ! */ public void setColumnModel(TableColumnModel c) { if (c == null) *************** public class JTable *** 4146,4152 **** TableColumn column; for (int i = 0; i < ncols; ++i) { ! column = columnModel.getColumn(i); if (column.getHeaderValue()==null) column.setHeaderValue(dataModel.getColumnName(i)); } --- 4146,4152 ---- TableColumn column; for (int i = 0; i < ncols; ++i) { ! column = columnModel.getColumn(i); if (column.getHeaderValue()==null) column.setHeaderValue(dataModel.getColumnName(i)); } *************** public class JTable *** 4165,4173 **** * Set the value of the columnSelectionAllowed property. * * @param c The new value of the property ! * * @see #getColumnSelectionAllowed() ! */ public void setColumnSelectionAllowed(boolean c) { if (columnModel.getColumnSelectionAllowed() != c) --- 4165,4173 ---- * Set the value of the columnSelectionAllowed property. * * @param c The new value of the property ! * * @see #getColumnSelectionAllowed() ! */ public void setColumnSelectionAllowed(boolean c) { if (columnModel.getColumnSelectionAllowed() != c) *************** public class JTable *** 4186,4192 **** * parameter s.

                                            * * @param s The new value of the selectionModel property ! */ public void setSelectionModel(ListSelectionModel s) { if (s == null) --- 4186,4192 ---- * parameter s.

                                            * * @param s The new value of the selectionModel property ! */ public void setSelectionModel(ListSelectionModel s) { if (s == null) *************** public class JTable *** 4206,4217 **** * mode is set for row and column selection models. * * @param s The new value of the property ! */ public void setSelectionMode(int s) ! { ! selectionModel.setSelectionMode(s); columnModel.getSelectionModel().setSelectionMode(s); ! repaint(); } --- 4206,4217 ---- * mode is set for row and column selection models. * * @param s The new value of the property ! */ public void setSelectionMode(int s) ! { ! selectionModel.setSelectionMode(s); columnModel.getSelectionModel().setSelectionMode(s); ! repaint(); } *************** public class JTable *** 4223,4229 **** * c.

                                            * * @param c The new value of the cellEditor property ! */ public void setCellEditor(TableCellEditor c) { TableCellEditor tmp = cellEditor; --- 4223,4229 ---- * c.

                                            * * @param c The new value of the cellEditor property ! */ public void setCellEditor(TableCellEditor c) { TableCellEditor tmp = cellEditor; *************** public class JTable *** 4238,4244 **** * Set the value of the {@link #dragEnabled} property. * * @param d The new value of the dragEnabled property ! */ public void setDragEnabled(boolean d) { dragEnabled = d; --- 4238,4244 ---- * Set the value of the {@link #dragEnabled} property. * * @param d The new value of the dragEnabled property ! */ public void setDragEnabled(boolean d) { dragEnabled = d; *************** public class JTable *** 4248,4254 **** * Set the value of the {@link #gridColor} property. * * @param g The new value of the gridColor property ! */ public void setGridColor(Color g) { gridColor = g; --- 4248,4254 ---- * Set the value of the {@link #gridColor} property. * * @param g The new value of the gridColor property ! */ public void setGridColor(Color g) { gridColor = g; *************** public class JTable *** 4259,4265 **** * Set the value of the intercellSpacing property. * * @param i The new value of the intercellSpacing property ! */ public void setIntercellSpacing(Dimension i) { rowMargin = i.height; --- 4259,4265 ---- * Set the value of the intercellSpacing property. * * @param i The new value of the intercellSpacing property ! */ public void setIntercellSpacing(Dimension i) { rowMargin = i.height; *************** public class JTable *** 4271,4277 **** * Set the value of the {@link #preferredViewportSize} property. * * @param p The new value of the preferredViewportSize property ! */ public void setPreferredScrollableViewportSize(Dimension p) { preferredViewportSize = p; --- 4271,4277 ---- * Set the value of the {@link #preferredViewportSize} property. * * @param p The new value of the preferredViewportSize property ! */ public void setPreferredScrollableViewportSize(Dimension p) { preferredViewportSize = p; *************** public class JTable *** 4287,4293 **** * selectionBackground changed.

                                            * * @param s The new value of the selectionBackground property ! */ public void setSelectionBackground(Color s) { Color tmp = selectionBackground; --- 4287,4293 ---- * selectionBackground changed.

                                            * * @param s The new value of the selectionBackground property ! */ public void setSelectionBackground(Color s) { Color tmp = selectionBackground; *************** public class JTable *** 4307,4313 **** * selectionForeground changed.

                                            * * @param s The new value of the selectionForeground property ! */ public void setSelectionForeground(Color s) { Color tmp = selectionForeground; --- 4307,4313 ---- * selectionForeground changed.

                                            * * @param s The new value of the selectionForeground property ! */ public void setSelectionForeground(Color s) { Color tmp = selectionForeground; *************** public class JTable *** 4323,4329 **** * Set the value of the showGrid property. * * @param s The new value of the showGrid property ! */ public void setShowGrid(boolean s) { setShowVerticalLines(s); --- 4323,4329 ---- * Set the value of the showGrid property. * * @param s The new value of the showGrid property ! */ public void setShowGrid(boolean s) { setShowVerticalLines(s); *************** public class JTable *** 4334,4340 **** * Set the value of the {@link #showHorizontalLines} property. * * @param s The new value of the showHorizontalLines property ! */ public void setShowHorizontalLines(boolean s) { showHorizontalLines = s; --- 4334,4340 ---- * Set the value of the {@link #showHorizontalLines} property. * * @param s The new value of the showHorizontalLines property ! */ public void setShowHorizontalLines(boolean s) { showHorizontalLines = s; *************** public class JTable *** 4345,4351 **** * Set the value of the {@link #showVerticalLines} property. * * @param s The new value of the showVerticalLines property ! */ public void setShowVerticalLines(boolean s) { showVerticalLines = s; --- 4345,4351 ---- * Set the value of the {@link #showVerticalLines} property. * * @param s The new value of the showVerticalLines property ! */ public void setShowVerticalLines(boolean s) { showVerticalLines = s; *************** public class JTable *** 4356,4362 **** * Set the value of the {@link #tableHeader} property. * * @param t The new value of the tableHeader property ! */ public void setTableHeader(JTableHeader t) { if (tableHeader != null) --- 4356,4362 ---- * Set the value of the {@link #tableHeader} property. * * @param t The new value of the tableHeader property ! */ public void setTableHeader(JTableHeader t) { if (tableHeader != null) *************** public class JTable *** 4383,4389 **** if (jsp != null) { jsp.setColumnHeaderView(null); ! } } --- 4383,4389 ---- if (jsp != null) { jsp.setColumnHeaderView(null); ! } } *************** public class JTable *** 4417,4423 **** cols[i].setWidth(cols[i].getPreferredWidth() + average); } } ! /** * This distributes the superfluous width in a table, setting the width of the * column being resized strictly to its preferred width. --- 4417,4423 ---- cols[i].setWidth(cols[i].getPreferredWidth() + average); } } ! /** * This distributes the superfluous width in a table, setting the width of the * column being resized strictly to its preferred width. *************** public class JTable *** 4434,4453 **** cols[i].setWidth(cols[i].getPreferredWidth() + average); } resizeIt.setWidth(resizeIt.getPreferredWidth()); ! } ! /** * Set the widths of all columns, taking they preferred widths into * consideration. The excess space, if any, will be distrubuted between * all columns. This method also handles special cases when one of the * collumns is currently being resized. ! * * @see TableColumn#setPreferredWidth(int) */ public void doLayout() { TableColumn resizingColumn = null; ! int ncols = columnModel.getColumnCount(); if (ncols < 1) return; --- 4434,4453 ---- cols[i].setWidth(cols[i].getPreferredWidth() + average); } resizeIt.setWidth(resizeIt.getPreferredWidth()); ! } ! /** * Set the widths of all columns, taking they preferred widths into * consideration. The excess space, if any, will be distrubuted between * all columns. This method also handles special cases when one of the * collumns is currently being resized. ! * * @see TableColumn#setPreferredWidth(int) */ public void doLayout() { TableColumn resizingColumn = null; ! int ncols = columnModel.getColumnCount(); if (ncols < 1) return; *************** public class JTable *** 4457,4463 **** if (tableHeader != null) resizingColumn = tableHeader.getResizingColumn(); ! for (int i = 0; i < ncols; ++i) { TableColumn col = columnModel.getColumn(i); --- 4457,4463 ---- if (tableHeader != null) resizingColumn = tableHeader.getResizingColumn(); ! for (int i = 0; i < ncols; ++i) { TableColumn col = columnModel.getColumn(i); *************** public class JTable *** 4466,4486 **** if (resizingColumn == col) rCol = i; } ! int spill = getWidth() - prefSum; if (resizingColumn != null) { TableColumn col; TableColumn [] cols; ! switch (getAutoResizeMode()) { case AUTO_RESIZE_LAST_COLUMN: col = columnModel.getColumn(ncols-1); col.setWidth(col.getPreferredWidth() + spill); break; ! case AUTO_RESIZE_NEXT_COLUMN: col = columnModel.getColumn(ncols-1); col.setWidth(col.getPreferredWidth() + spill); --- 4466,4486 ---- if (resizingColumn == col) rCol = i; } ! int spill = getWidth() - prefSum; if (resizingColumn != null) { TableColumn col; TableColumn [] cols; ! switch (getAutoResizeMode()) { case AUTO_RESIZE_LAST_COLUMN: col = columnModel.getColumn(ncols-1); col.setWidth(col.getPreferredWidth() + spill); break; ! case AUTO_RESIZE_NEXT_COLUMN: col = columnModel.getColumn(ncols-1); col.setWidth(col.getPreferredWidth() + spill); *************** public class JTable *** 4494,4500 **** break; case AUTO_RESIZE_SUBSEQUENT_COLUMNS: ! // Subtract the width of the non-resized columns from the spill. int w = 0; int wp = 0; --- 4494,4500 ---- break; case AUTO_RESIZE_SUBSEQUENT_COLUMNS: ! // Subtract the width of the non-resized columns from the spill. int w = 0; int wp = 0; *************** public class JTable *** 4513,4519 **** // If there are any columns on the right sied to resize. spill = (getWidth()-w) - (prefSum-wp); int average = spill / n; ! // For all columns right from the column being resized: for (int i = rCol+1; i < ncols; i++) { --- 4513,4519 ---- // If there are any columns on the right sied to resize. spill = (getWidth()-w) - (prefSum-wp); int average = spill / n; ! // For all columns right from the column being resized: for (int i = rCol+1; i < ncols; i++) { *************** public class JTable *** 4539,4555 **** distributeSpill(cols, spill); } ! if (editorComp!=null) moveToCellBeingEdited(editorComp); ! int leftBoundary = getLeftResizingBoundary(); int width = getWidth() - leftBoundary; repaint(leftBoundary, 0, width, getHeight()); if (tableHeader != null) tableHeader.repaint(leftBoundary, 0, width, tableHeader.getHeight()); } ! /** * Get the left boundary of the rectangle which changes during the column * resizing. --- 4539,4555 ---- distributeSpill(cols, spill); } ! if (editorComp!=null) moveToCellBeingEdited(editorComp); ! int leftBoundary = getLeftResizingBoundary(); int width = getWidth() - leftBoundary; repaint(leftBoundary, 0, width, getHeight()); if (tableHeader != null) tableHeader.repaint(leftBoundary, 0, width, tableHeader.getHeight()); } ! /** * Get the left boundary of the rectangle which changes during the column * resizing. *************** public class JTable *** 4569,4580 **** for (int i = 0; i < rc; i++) p += columnModel.getColumn(i).getWidth(); ! return p; } } ! ! /** * @deprecated Replaced by doLayout() */ --- 4569,4580 ---- for (int i = 0; i < rc; i++) p += columnModel.getColumn(i).getWidth(); ! return p; } } ! ! /** * @deprecated Replaced by doLayout() */ *************** public class JTable *** 4582,4588 **** { doLayout(); } ! /** * Obsolete since JDK 1.4. Please use doLayout(). */ --- 4582,4588 ---- { doLayout(); } ! /** * Obsolete since JDK 1.4. Please use doLayout(). */ *************** public class JTable *** 4628,4636 **** /** * Get the class (datatype) of the column. The cells are rendered and edited * differently, depending from they data type. ! * * @param column the column (not the model index). ! * * @return the class, defining data type of that column (String.class for * String, Boolean.class for boolean and so on). */ --- 4628,4636 ---- /** * Get the class (datatype) of the column. The cells are rendered and edited * differently, depending from they data type. ! * * @param column the column (not the model index). ! * * @return the class, defining data type of that column (String.class for * String, Boolean.class for boolean and so on). */ *************** public class JTable *** 4638,4653 **** { return getModel().getColumnClass(convertColumnIndexToModel(column)); } ! /** * Get the name of the column. If the column has the column identifier set, * the return value is the result of the .toString() method call on that * identifier. If the identifier is not explicitly set, the returned value ! * is calculated by * {@link javax.swing.table.AbstractTableModel#getColumnName(int)}. ! * * @param column the column ! * * @return the name of that column. */ public String getColumnName(int column) --- 4638,4653 ---- { return getModel().getColumnClass(convertColumnIndexToModel(column)); } ! /** * Get the name of the column. If the column has the column identifier set, * the return value is the result of the .toString() method call on that * identifier. If the identifier is not explicitly set, the returned value ! * is calculated by * {@link javax.swing.table.AbstractTableModel#getColumnName(int)}. ! * * @param column the column ! * * @return the name of that column. */ public String getColumnName(int column) *************** public class JTable *** 4658,4664 **** /** * Get the column, currently being edited ! * * @return the column, currently being edited. */ public int getEditingColumn() --- 4658,4664 ---- /** * Get the column, currently being edited ! * * @return the column, currently being edited. */ public int getEditingColumn() *************** public class JTable *** 4668,4684 **** /** * Set the column, currently being edited ! * * @param column the column, currently being edited. */ public void setEditingColumn(int column) { editingColumn = column; } ! /** * Get the row currently being edited. ! * * @return the row, currently being edited. */ public int getEditingRow() --- 4668,4684 ---- /** * Set the column, currently being edited ! * * @param column the column, currently being edited. */ public void setEditingColumn(int column) { editingColumn = column; } ! /** * Get the row currently being edited. ! * * @return the row, currently being edited. */ public int getEditingRow() *************** public class JTable *** 4688,4704 **** /** * Set the row currently being edited. ! * * @param row the row, that will be edited */ public void setEditingRow(int row) { editingRow = row; } ! /** * Get the editor component that is currently editing one of the cells ! * * @return the editor component or null, if none of the cells is being * edited. */ --- 4688,4704 ---- /** * Set the row currently being edited. ! * * @param row the row, that will be edited */ public void setEditingRow(int row) { editingRow = row; } ! /** * Get the editor component that is currently editing one of the cells ! * * @return the editor component or null, if none of the cells is being * edited. */ *************** public class JTable *** 4706,4715 **** { return editorComp; } ! /** * Check if one of the table cells is currently being edited. ! * * @return true if there is a cell being edited. */ public boolean isEditing() --- 4706,4715 ---- { return editorComp; } ! /** * Check if one of the table cells is currently being edited. ! * * @return true if there is a cell being edited. */ public boolean isEditing() *************** public class JTable *** 4721,4730 **** * Set the default editor for the given column class (column data type). * By default, String is handled by text field and Boolean is handled by * the check box. ! * * @param columnClass the column data type * @param editor the editor that will edit this data type ! * * @see TableModel#getColumnClass(int) */ public void setDefaultEditor(Class columnClass, TableCellEditor editor) --- 4721,4730 ---- * Set the default editor for the given column class (column data type). * By default, String is handled by text field and Boolean is handled by * the check box. ! * * @param columnClass the column data type * @param editor the editor that will edit this data type ! * * @see TableModel#getColumnClass(int) */ public void setDefaultEditor(Class columnClass, TableCellEditor editor) *************** public class JTable *** 4734,4758 **** else defaultEditorsByColumnClass.remove(columnClass); } ! public void addColumnSelectionInterval(int index0, int index1) { if ((index0 < 0 || index0 > (getColumnCount()-1) || index1 < 0 || index1 > (getColumnCount()-1))) throw new IllegalArgumentException("Column index out of range."); ! getColumnModel().getSelectionModel().addSelectionInterval(index0, index1); } ! public void addRowSelectionInterval(int index0, int index1) ! { if ((index0 < 0 || index0 > (getRowCount()-1) || index1 < 0 || index1 > (getRowCount()-1))) throw new IllegalArgumentException("Row index out of range."); ! getSelectionModel().addSelectionInterval(index0, index1); } ! public void setColumnSelectionInterval(int index0, int index1) { if ((index0 < 0 || index0 > (getColumnCount()-1) --- 4734,4758 ---- else defaultEditorsByColumnClass.remove(columnClass); } ! public void addColumnSelectionInterval(int index0, int index1) { if ((index0 < 0 || index0 > (getColumnCount()-1) || index1 < 0 || index1 > (getColumnCount()-1))) throw new IllegalArgumentException("Column index out of range."); ! getColumnModel().getSelectionModel().addSelectionInterval(index0, index1); } ! public void addRowSelectionInterval(int index0, int index1) ! { if ((index0 < 0 || index0 > (getRowCount()-1) || index1 < 0 || index1 > (getRowCount()-1))) throw new IllegalArgumentException("Row index out of range."); ! getSelectionModel().addSelectionInterval(index0, index1); } ! public void setColumnSelectionInterval(int index0, int index1) { if ((index0 < 0 || index0 > (getColumnCount()-1) *************** public class JTable *** 4761,4777 **** getColumnModel().getSelectionModel().setSelectionInterval(index0, index1); } ! public void setRowSelectionInterval(int index0, int index1) ! { if ((index0 < 0 || index0 > (getRowCount()-1) || index1 < 0 || index1 > (getRowCount()-1))) throw new IllegalArgumentException("Row index out of range."); getSelectionModel().setSelectionInterval(index0, index1); } ! ! public void removeColumnSelectionInterval(int index0, int index1) { if ((index0 < 0 || index0 > (getColumnCount()-1) || index1 < 0 || index1 > (getColumnCount()-1))) --- 4761,4777 ---- getColumnModel().getSelectionModel().setSelectionInterval(index0, index1); } ! public void setRowSelectionInterval(int index0, int index1) ! { if ((index0 < 0 || index0 > (getRowCount()-1) || index1 < 0 || index1 > (getRowCount()-1))) throw new IllegalArgumentException("Row index out of range."); getSelectionModel().setSelectionInterval(index0, index1); } ! ! public void removeColumnSelectionInterval(int index0, int index1) { if ((index0 < 0 || index0 > (getColumnCount()-1) || index1 < 0 || index1 > (getColumnCount()-1))) *************** public class JTable *** 4779,4785 **** getColumnModel().getSelectionModel().removeSelectionInterval(index0, index1); } ! public void removeRowSelectionInterval(int index0, int index1) { if ((index0 < 0 || index0 > (getRowCount()-1) --- 4779,4785 ---- getColumnModel().getSelectionModel().removeSelectionInterval(index0, index1); } ! public void removeRowSelectionInterval(int index0, int index1) { if ((index0 < 0 || index0 > (getRowCount()-1) *************** public class JTable *** 4788,4799 **** getSelectionModel().removeSelectionInterval(index0, index1); } ! /** * Checks if the given column is selected. ! * * @param column the column ! * * @return true if the column is selected (as reported by the selection * model, associated with the column model), false otherwise. */ --- 4788,4799 ---- getSelectionModel().removeSelectionInterval(index0, index1); } ! /** * Checks if the given column is selected. ! * * @param column the column ! * * @return true if the column is selected (as reported by the selection * model, associated with the column model), false otherwise. */ *************** public class JTable *** 4801,4812 **** { return getColumnModel().getSelectionModel().isSelectedIndex(column); } ! /** * Checks if the given row is selected. ! * * @param row the row ! * * @return true if the row is selected (as reported by the selection model), * false otherwise. */ --- 4801,4812 ---- { return getColumnModel().getSelectionModel().isSelectedIndex(column); } ! /** * Checks if the given row is selected. ! * * @param row the row ! * * @return true if the row is selected (as reported by the selection model), * false otherwise. */ *************** public class JTable *** 4814,4834 **** { return getSelectionModel().isSelectedIndex(row); } ! /** * Checks if the given cell is selected. The cell is selected if both * the cell row and the cell column are selected. ! * * @param row the cell row * @param column the cell column ! * * @return true if the cell is selected, false otherwise */ public boolean isCellSelected(int row, int column) { return isRowSelected(row) && isColumnSelected(column); } ! /** * Select all table. */ --- 4814,4834 ---- { return getSelectionModel().isSelectedIndex(row); } ! /** * Checks if the given cell is selected. The cell is selected if both * the cell row and the cell column are selected. ! * * @param row the cell row * @param column the cell column ! * * @return true if the cell is selected, false otherwise */ public boolean isCellSelected(int row, int column) { return isRowSelected(row) && isColumnSelected(column); } ! /** * Select all table. */ *************** public class JTable *** 4837,4843 **** // The table is empty - nothing to do! if (getRowCount() == 0 || getColumnCount() == 0) return; ! // rowLead and colLead store the current lead selection indices int rowLead = selectionModel.getLeadSelectionIndex(); int colLead = getColumnModel().getSelectionModel().getLeadSelectionIndex(); --- 4837,4843 ---- // The table is empty - nothing to do! if (getRowCount() == 0 || getColumnCount() == 0) return; ! // rowLead and colLead store the current lead selection indices int rowLead = selectionModel.getLeadSelectionIndex(); int colLead = getColumnModel().getSelectionModel().getLeadSelectionIndex(); *************** public class JTable *** 4850,4874 **** addColumnSelectionInterval(colLead,colLead); addRowSelectionInterval(rowLead, rowLead); } ! /** * Get the cell value at the given position. ! * * @param row the row to get the value ! * @param column the actual column number (not the model index) * to get the value. ! * * @return the cell value, as returned by model. */ public Object getValueAt(int row, int column) { return dataModel.getValueAt(row, convertColumnIndexToModel(column)); } ! /** * Set value for the cell at the given position. The modified cell is * repainted. ! * * @param value the value to set * @param row the row of the cell being modified * @param column the column of the cell being modified --- 4850,4874 ---- addColumnSelectionInterval(colLead,colLead); addRowSelectionInterval(rowLead, rowLead); } ! /** * Get the cell value at the given position. ! * * @param row the row to get the value ! * @param column the actual column number (not the model index) * to get the value. ! * * @return the cell value, as returned by model. */ public Object getValueAt(int row, int column) { return dataModel.getValueAt(row, convertColumnIndexToModel(column)); } ! /** * Set value for the cell at the given position. The modified cell is * repainted. ! * * @param value the value to set * @param row the row of the cell being modified * @param column the column of the cell being modified *************** public class JTable *** 4876,4895 **** public void setValueAt(Object value, int row, int column) { dataModel.setValueAt(value, row, convertColumnIndexToModel(column)); ! repaint(getCellRect(row, column, true)); } ! /** * Get table column with the given identified. ! * * @param identifier the column identifier ! * * @return the table column with this identifier ! * ! * @throws IllegalArgumentException if identifier is * null or there is no column with that identifier. ! * * @see TableColumn#setIdentifier(Object) */ public TableColumn getColumn(Object identifier) --- 4876,4895 ---- public void setValueAt(Object value, int row, int column) { dataModel.setValueAt(value, row, convertColumnIndexToModel(column)); ! repaint(getCellRect(row, column, true)); } ! /** * Get table column with the given identified. ! * * @param identifier the column identifier ! * * @return the table column with this identifier ! * ! * @throws IllegalArgumentException if identifier is * null or there is no column with that identifier. ! * * @see TableColumn#setIdentifier(Object) */ public TableColumn getColumn(Object identifier) *************** public class JTable *** 4929,4935 **** columnModel.removeColumn(columnModel.getColumn(columnIndex)); columnIndex--; } ! // add new columns to match the TableModel int columnCount = dataModel.getColumnCount(); for (int c = 0; c < columnCount; c++) --- 4929,4935 ---- columnModel.removeColumn(columnModel.getColumn(columnIndex)); columnIndex--; } ! // add new columns to match the TableModel int columnCount = dataModel.getColumnCount(); for (int c = 0; c < columnCount; c++) *************** public class JTable *** 4967,4973 **** } else if (extend) { ! // Extend the previous selection from the anchor to the // specified cell, clearing all other selections selectionModel.setLeadSelectionIndex(rowIndex); getColumnModel().getSelectionModel().setLeadSelectionIndex(columnIndex); --- 4967,4973 ---- } else if (extend) { ! // Extend the previous selection from the anchor to the // specified cell, clearing all other selections selectionModel.setLeadSelectionIndex(rowIndex); getColumnModel().getSelectionModel().setLeadSelectionIndex(columnIndex); *************** public class JTable *** 4980,4993 **** selectionModel.setSelectionInterval(rowIndex,rowIndex); getColumnModel().getSelectionModel().clearSelection(); getColumnModel().getSelectionModel().setSelectionInterval(columnIndex, columnIndex); ! ! } } /** * Programmatically starts editing the specified cell. ! * * @param row the row of the cell to edit. * @param column the column of the cell to edit. */ --- 4980,4993 ---- selectionModel.setSelectionInterval(rowIndex,rowIndex); getColumnModel().getSelectionModel().clearSelection(); getColumnModel().getSelectionModel().setSelectionInterval(columnIndex, columnIndex); ! ! } } /** * Programmatically starts editing the specified cell. ! * * @param row the row of the cell to edit. * @param column the column of the cell to edit. */ *************** public class JTable *** 4998,5004 **** editingStopped(new ChangeEvent("editingStopped")); TableCellEditor editor = getCellEditor(row, column); ! // The boolean values are inverted by the single click without the // real editing session. if (editor == booleanInvertingEditor && isCellEditable(row, column)) --- 4998,5004 ---- editingStopped(new ChangeEvent("editingStopped")); TableCellEditor editor = getCellEditor(row, column); ! // The boolean values are inverted by the single click without the // real editing session. if (editor == booleanInvertingEditor && isCellEditable(row, column)) *************** public class JTable *** 5024,5039 **** moveToCellBeingEdited(editorComp); scrollRectToVisible(editorComp.getBounds()); editorComp.requestFocusInWindow(); ! // Deliver the should select event. ! return editor.shouldSelectCell(null); } } /** ! * Move the given component under the cell being edited. * The table must be in the editing mode. ! * * @param component the component to move. */ private void moveToCellBeingEdited(Component component) --- 5024,5039 ---- moveToCellBeingEdited(editorComp); scrollRectToVisible(editorComp.getBounds()); editorComp.requestFocusInWindow(); ! // Deliver the should select event. ! return editor.shouldSelectCell(null); } } /** ! * Move the given component under the cell being edited. * The table must be in the editing mode. ! * * @param component the component to move. */ private void moveToCellBeingEdited(Component component) *************** public class JTable *** 5107,5113 **** // TODO: Implement functionality of this property (in UI impl). surrendersFocusOnKeystroke = value; } ! /** * Returns whether cell editors of this table should receive keyboard focus * when the editor is activated by a keystroke. The default setting is --- 5107,5113 ---- // TODO: Implement functionality of this property (in UI impl). surrendersFocusOnKeystroke = value; } ! /** * Returns whether cell editors of this table should receive keyboard focus * when the editor is activated by a keystroke. The default setting is *************** public class JTable *** 5128,5134 **** /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * --- 5128,5134 ---- /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JTextArea.java gcc-4.6.0/libjava/classpath/javax/swing/JTextArea.java *** gcc-4.5.2/libjava/classpath/javax/swing/JTextArea.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/JTextArea.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JTextArea.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JTextArea.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class JTextArea extends JTextComp *** 126,132 **** * Compatible with Sun's JDK */ private static final long serialVersionUID = -6141680179310439825L; ! /** * The number of rows used by the component. */ --- 126,132 ---- * Compatible with Sun's JDK */ private static final long serialVersionUID = -6141680179310439825L; ! /** * The number of rows used by the component. */ *************** public class JTextArea extends JTextComp *** 235,248 **** public void append(String toAppend) { try ! { ! getDocument().insertString(getText().length(), toAppend, null); ! } catch (BadLocationException exception) ! { ! /* This shouldn't happen in theory -- but, if it does... */ ! throw new RuntimeException("Unexpected exception occurred.", exception); ! } if (toAppend != null && toAppend.length() > 0) revalidate(); } --- 235,248 ---- public void append(String toAppend) { try ! { ! getDocument().insertString(getText().length(), toAppend, null); ! } catch (BadLocationException exception) ! { ! /* This shouldn't happen in theory -- but, if it does... */ ! throw new RuntimeException("Unexpected exception occurred.", exception); ! } if (toAppend != null && toAppend.length() > 0) revalidate(); } *************** public class JTextArea extends JTextComp *** 337,343 **** { return columns; } ! /** * Sets the number of rows. * --- 337,343 ---- { return columns; } ! /** * Sets the number of rows. * *************** public class JTextArea extends JTextComp *** 349,355 **** { if (columns < 0) throw new IllegalArgumentException(); ! if (columns != this.columns) { this.columns = columns; --- 349,355 ---- { if (columns < 0) throw new IllegalArgumentException(); ! if (columns != this.columns) { this.columns = columns; *************** public class JTextArea extends JTextComp *** 378,384 **** { if (rows < 0) throw new IllegalArgumentException(); ! if (rows != this.rows) { this.rows = rows; --- 378,384 ---- { if (rows < 0) throw new IllegalArgumentException(); ! if (rows != this.rows) { this.rows = rows; *************** public class JTextArea extends JTextComp *** 423,429 **** { return wrapStyleWord; } ! /** * Enables/Disables word style wrapping. * --- 423,429 ---- { return wrapStyleWord; } ! /** * Enables/Disables word style wrapping. * *************** public class JTextArea extends JTextComp *** 434,445 **** { if (wrapStyleWord == flag) return; ! boolean oldValue = wrapStyleWord; wrapStyleWord = flag; firePropertyChange("wrapStyleWord", oldValue, wrapStyleWord); } ! /** * Returns the number of characters used for a tab. * This defaults to 8. --- 434,445 ---- { if (wrapStyleWord == flag) return; ! boolean oldValue = wrapStyleWord; wrapStyleWord = flag; firePropertyChange("wrapStyleWord", oldValue, wrapStyleWord); } ! /** * Returns the number of characters used for a tab. * This defaults to 8. *************** public class JTextArea extends JTextComp *** 456,469 **** * supplied value. If a change to the tab size property * occurs (i.e. newSize != tabSize), a property change event * is fired. ! * * @param newSize The new number of characters to use for a tab. */ public void setTabSize(int newSize) { if (tabSize == newSize) return; ! int oldValue = tabSize; tabSize = newSize; firePropertyChange("tabSize", oldValue, tabSize); --- 456,469 ---- * supplied value. If a change to the tab size property * occurs (i.e. newSize != tabSize), a property change event * is fired. ! * * @param newSize The new number of characters to use for a tab. */ public void setTabSize(int newSize) { if (tabSize == newSize) return; ! int oldValue = tabSize; tabSize = newSize; firePropertyChange("tabSize", oldValue, tabSize); *************** public class JTextArea extends JTextComp *** 484,490 **** throws BadLocationException { int lineCount = getLineCount(); ! if (line < 0 || line > lineCount) throw new BadLocationException("Non-existing line number", line); --- 484,490 ---- throws BadLocationException { int lineCount = getLineCount(); ! if (line < 0 || line > lineCount) throw new BadLocationException("Non-existing line number", line); *************** public class JTextArea extends JTextComp *** 496,502 **** throws BadLocationException { int lineCount = getLineCount(); ! if (line < 0 || line > lineCount) throw new BadLocationException("Non-existing line number", line); --- 496,502 ---- throws BadLocationException { int lineCount = getLineCount(); ! if (line < 0 || line > lineCount) throw new BadLocationException("Non-existing line number", line); *************** public class JTextArea extends JTextComp *** 510,516 **** Document doc = getDocument(); if (offset < doc.getStartPosition().getOffset() ! || offset >= doc.getEndPosition().getOffset()) throw new BadLocationException("offset outside of document", offset); return doc.getDefaultRootElement().getElementIndex(offset); --- 510,516 ---- Document doc = getDocument(); if (offset < doc.getStartPosition().getOffset() ! || offset >= doc.getEndPosition().getOffset()) throw new BadLocationException("offset outside of document", offset); return doc.getDefaultRootElement().getElementIndex(offset); *************** public class JTextArea extends JTextComp *** 536,567 **** { // Retrieve the document model. Document doc = getDocument(); ! // Check the model and string for validity. if (doc == null ! || string == null ! || string.length() == 0) return; // Insert the text into the model. try { ! doc.insertString(position, string, null); } catch (BadLocationException e) { ! throw new IllegalArgumentException("The supplied position, " ! + position + ", was invalid."); } } public void replaceRange(String text, int start, int end) { Document doc = getDocument(); ! if (start > end ! || start < doc.getStartPosition().getOffset() ! || end >= doc.getEndPosition().getOffset()) throw new IllegalArgumentException(); try --- 536,567 ---- { // Retrieve the document model. Document doc = getDocument(); ! // Check the model and string for validity. if (doc == null ! || string == null ! || string.length() == 0) return; // Insert the text into the model. try { ! doc.insertString(position, string, null); } catch (BadLocationException e) { ! throw new IllegalArgumentException("The supplied position, " ! + position + ", was invalid."); } } public void replaceRange(String text, int start, int end) { Document doc = getDocument(); ! if (start > end ! || start < doc.getStartPosition().getOffset() ! || end >= doc.getEndPosition().getOffset()) throw new IllegalArgumentException(); try *************** public class JTextArea extends JTextComp *** 571,577 **** } catch (BadLocationException e) { ! // This cannot happen as we check offset above. } } --- 571,577 ---- } catch (BadLocationException e) { ! // This cannot happen as we check offset above. } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JTextField.java gcc-4.6.0/libjava/classpath/javax/swing/JTextField.java *** gcc-4.5.2/libjava/classpath/javax/swing/JTextField.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JTextField.java Tue Jan 11 19:46:05 2011 *************** public class JTextField extends JTextCom *** 95,101 **** * gets accepted. */ public static final String notifyAction = "notify-field-accept"; ! static { actions = new Action[1]; --- 95,101 ---- * gets accepted. */ public static final String notifyAction = "notify-field-accept"; ! static { actions = new Action[1]; *************** public class JTextField extends JTextCom *** 108,123 **** } }; } ! private int columns; private int align; ! /** @since 1.3 */ private Action action; /** @since 1.3 */ private String actionCommand; ! private PropertyChangeListener actionPropertyChangeListener; /** --- 108,123 ---- } }; } ! private int columns; private int align; ! /** @since 1.3 */ private Action action; /** @since 1.3 */ private String actionCommand; ! private PropertyChangeListener actionPropertyChangeListener; /** *************** public class JTextField extends JTextCom *** 142,148 **** { this(null, text, 0); } ! /** * Creates a new instance of JTextField. * --- 142,148 ---- { this(null, text, 0); } ! /** * Creates a new instance of JTextField. * *************** public class JTextField extends JTextCom *** 270,276 **** */ protected void fireActionPerformed() { ! ActionEvent event = new ActionEvent(this, 0, actionCommand == null ? getText() : actionCommand); ActionListener[] listeners = getActionListeners(); --- 270,276 ---- */ protected void fireActionPerformed() { ! ActionEvent event = new ActionEvent(this, 0, actionCommand == null ? getText() : actionCommand); ActionListener[] listeners = getActionListeners(); *************** public class JTextField extends JTextCom *** 305,312 **** } /** ! * Returns the horizontal alignment, which is one of: JTextField.LEFT, ! * JTextField.CENTER, JTextField.RIGHT, JTextField.LEADING, * JTextField.TRAILING. * @return the horizontal alignment */ --- 305,312 ---- } /** ! * Returns the horizontal alignment, which is one of: JTextField.LEFT, ! * JTextField.CENTER, JTextField.RIGHT, JTextField.LEADING, * JTextField.TRAILING. * @return the horizontal alignment */ *************** public class JTextField extends JTextCom *** 345,351 **** } /** ! * Returns the preferred size. If there is a non-zero number of columns, * this is the number of columns multiplied by the column width, otherwise * it returns super.getPreferredSize(). */ --- 345,351 ---- } /** ! * Returns the preferred size. If there is a non-zero number of columns, * this is the number of columns multiplied by the column width, otherwise * it returns super.getPreferredSize(). */ *************** public class JTextField extends JTextCom *** 374,380 **** /** * Sets the scroll offset in pixels. ! * * @param offset the scroll offset */ public void setScrollOffset(int offset) --- 374,380 ---- /** * Sets the scroll offset in pixels. ! * * @param offset the scroll offset */ public void setScrollOffset(int offset) *************** public class JTextField extends JTextCom *** 385,391 **** Math.min(horizontalVisibility.getMaximum() - horizontalVisibility.getExtent(), offset)); ! } /** --- 385,391 ---- Math.min(horizontalVisibility.getMaximum() - horizontalVisibility.getExtent(), offset)); ! } /** *************** public class JTextField extends JTextCom *** 407,413 **** for (int index = 0; index < listeners.length; ++index) listeners[index].actionPerformed(event); } ! /** * @since 1.3 */ --- 407,413 ---- for (int index = 0; index < listeners.length; ++index) listeners[index].actionPerformed(event); } ! /** * @since 1.3 */ *************** public class JTextField extends JTextCom *** 480,486 **** } /** ! * * @since 1.3 */ protected void configurePropertiesFromAction(Action action) --- 480,486 ---- } /** ! * * @since 1.3 */ protected void configurePropertiesFromAction(Action action) *************** public class JTextField extends JTextCom *** 546,560 **** { return ! (getParent() instanceof JViewport); } ! public void scrollRectToVisible(Rectangle r) { int v = horizontalVisibility.getValue(); ! // The extent value is the inner width of the text field. int e = horizontalVisibility.getExtent(); Insets i = getInsets(); ! // The x value in the rectangle (usually) denotes the new location // of the caret. We check whether the location lies inside the left or // right border and scroll into the appropriate direction. --- 546,560 ---- { return ! (getParent() instanceof JViewport); } ! public void scrollRectToVisible(Rectangle r) { int v = horizontalVisibility.getValue(); ! // The extent value is the inner width of the text field. int e = horizontalVisibility.getExtent(); Insets i = getInsets(); ! // The x value in the rectangle (usually) denotes the new location // of the caret. We check whether the location lies inside the left or // right border and scroll into the appropriate direction. *************** public class JTextField extends JTextCom *** 566,570 **** else if (r.x > e + i.left) setScrollOffset(r.x + v - e - i.left); } ! } --- 566,570 ---- else if (r.x > e + i.left) setScrollOffset(r.x + v - e - i.left); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JTextPane.java gcc-4.6.0/libjava/classpath/javax/swing/JTextPane.java *** gcc-4.5.2/libjava/classpath/javax/swing/JTextPane.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JTextPane.java Tue Jan 11 19:46:05 2011 *************** public class JTextPane *** 179,185 **** catch (BadLocationException e) { throw new AssertionError ! ("No BadLocationException should be thrown here"); } } --- 179,185 ---- catch (BadLocationException e) { throw new AssertionError ! ("No BadLocationException should be thrown here"); } } *************** public class JTextPane *** 326,332 **** } else getStyledDocument().setCharacterAttributes(start, end - start, attribute, ! replace); } /** --- 326,332 ---- } else getStyledDocument().setCharacterAttributes(start, end - start, attribute, ! replace); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JToggleButton.java gcc-4.6.0/libjava/classpath/javax/swing/JToggleButton.java *** gcc-4.5.2/libjava/classpath/javax/swing/JToggleButton.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JToggleButton.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JToggleButton.java -- Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JToggleButton.java -- Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class JToggleButton extends Abstr *** 92,98 **** { return AccessibleRole.TOGGLE_BUTTON; } ! /** * Monitors the toggle button for state changes and fires accessible * property change events when they occur. --- 92,98 ---- { return AccessibleRole.TOGGLE_BUTTON; } ! /** * Monitors the toggle button for state changes and fires accessible * property change events when they occur. *************** public class JToggleButton extends Abstr *** 106,119 **** { /* State has changed from unselected (null) to selected */ firePropertyChange(ACCESSIBLE_STATE_PROPERTY, null, AccessibleState.SELECTED); ! } else { /* State has changed from selected to unselected (null) */ firePropertyChange(ACCESSIBLE_STATE_PROPERTY, AccessibleState.ENABLED, null); } } ! } /** --- 106,119 ---- { /* State has changed from unselected (null) to selected */ firePropertyChange(ACCESSIBLE_STATE_PROPERTY, null, AccessibleState.SELECTED); ! } else { /* State has changed from selected to unselected (null) */ firePropertyChange(ACCESSIBLE_STATE_PROPERTY, AccessibleState.ENABLED, null); } } ! } /** *************** public class JToggleButton extends Abstr *** 129,147 **** * Compatible with Sun's JDK. */ private static final long serialVersionUID = -1589950750899943974L; ! /** * Sets the pressed state of the button. The selected state * of the button also changes follwing the button being pressed. * * @param p true if the button is pressed down. */ ! public void setPressed(boolean p) { // cannot change PRESSED state unless button is enabled if (! isEnabled()) return; ! // if this call does not represent a CHANGE in state, then return if ((p && isPressed()) || (!p && !isPressed())) return; --- 129,147 ---- * Compatible with Sun's JDK. */ private static final long serialVersionUID = -1589950750899943974L; ! /** * Sets the pressed state of the button. The selected state * of the button also changes follwing the button being pressed. * * @param p true if the button is pressed down. */ ! public void setPressed(boolean p) { // cannot change PRESSED state unless button is enabled if (! isEnabled()) return; ! // if this call does not represent a CHANGE in state, then return if ((p && isPressed()) || (!p && !isPressed())) return; *************** public class JToggleButton extends Abstr *** 164,170 **** stateMask = stateMask | PRESSED; else stateMask = stateMask & (~PRESSED); ! // notify interested ChangeListeners fireStateChanged(); --- 164,170 ---- stateMask = stateMask | PRESSED; else stateMask = stateMask & (~PRESSED); ! // notify interested ChangeListeners fireStateChanged(); *************** public class JToggleButton extends Abstr *** 175,210 **** actionCommand)); } } ! /** * Checks if the button is selected. ! * * @return true if the button is selected. */ public boolean isSelected() { return super.isSelected(); } ! /** * Sets the selected state of the button. ! * * @param b true if button is selected */ public void setSelected(boolean b) { super.setSelected(b); ! } } /** * Compatible with Sun's JDK. */ private static final long serialVersionUID = -3128248873429850443L; ! /** * Constructs an unselected toggle button with no text or icon. ! */ public JToggleButton() { this(null, null, false); --- 175,210 ---- actionCommand)); } } ! /** * Checks if the button is selected. ! * * @return true if the button is selected. */ public boolean isSelected() { return super.isSelected(); } ! /** * Sets the selected state of the button. ! * * @param b true if button is selected */ public void setSelected(boolean b) { super.setSelected(b); ! } } /** * Compatible with Sun's JDK. */ private static final long serialVersionUID = -3128248873429850443L; ! /** * Constructs an unselected toggle button with no text or icon. ! */ public JToggleButton() { this(null, null, false); *************** public class JToggleButton extends Abstr *** 229,238 **** * @param icon the icon to use. */ public JToggleButton(Icon icon) ! { this(null, icon, false); ! } ! /** * Constructs a toggle button with the supplied icon and state. * --- 229,238 ---- * @param icon the icon to use. */ public JToggleButton(Icon icon) ! { this(null, icon, false); ! } ! /** * Constructs a toggle button with the supplied icon and state. * *************** public class JToggleButton extends Abstr *** 240,261 **** * @param selected if true, the toggle button is initially in the * selected state. Otherwise, the button is unselected. */ ! public JToggleButton(Icon icon, boolean selected) { this(null, icon, selected); } ! /** * Constructs an unselected toggle button using the supplied text * and no icon. * * @param text the text to use. ! */ public JToggleButton(String text) { this(text, null, false); } ! /** * Constructs a toggle button with the supplied text and state. * --- 240,261 ---- * @param selected if true, the toggle button is initially in the * selected state. Otherwise, the button is unselected. */ ! public JToggleButton(Icon icon, boolean selected) { this(null, icon, selected); } ! /** * Constructs an unselected toggle button using the supplied text * and no icon. * * @param text the text to use. ! */ public JToggleButton(String text) { this(text, null, false); } ! /** * Constructs a toggle button with the supplied text and state. * *************** public class JToggleButton extends Abstr *** 288,297 **** * @param selected if true, the toggle button is initially in the * selected state. Otherwise, the button is unselected. */ ! public JToggleButton (String text, Icon icon, boolean selected) { super(); ! setModel(new ToggleButtonModel()); init(text, icon); model.setSelected(selected); setAlignmentX(LEFT_ALIGNMENT); --- 288,297 ---- * @param selected if true, the toggle button is initially in the * selected state. Otherwise, the button is unselected. */ ! public JToggleButton (String text, Icon icon, boolean selected) { super(); ! setModel(new ToggleButtonModel()); init(text, icon); model.setSelected(selected); setAlignmentX(LEFT_ALIGNMENT); *************** public class JToggleButton extends Abstr *** 309,319 **** if (accessibleContext == null) { /* Create the context */ ! accessibleContext = new AccessibleJToggleButton(); } return accessibleContext; } ! /** * Returns a string that specifies the name of the Look and Feel * class that renders this component. --- 309,319 ---- if (accessibleContext == null) { /* Create the context */ ! accessibleContext = new AccessibleJToggleButton(); } return accessibleContext; } ! /** * Returns a string that specifies the name of the Look and Feel * class that renders this component. *************** public class JToggleButton extends Abstr *** 324,330 **** { return "ToggleButtonUI"; } ! /** * Returns a textual representation of this component for debugging. * Users should not depend on anything as regards the content or formatting --- 324,330 ---- { return "ToggleButtonUI"; } ! /** * Returns a textual representation of this component for debugging. * Users should not depend on anything as regards the content or formatting *************** public class JToggleButton extends Abstr *** 337,353 **** { return super.paramString(); } ! /** * This method resets the toggle button's UI delegate to the default UI for * the current look and feel. */ public void updateUI() ! { setUI((ButtonUI)UIManager.getUI(this)); } } - - - --- 337,350 ---- { return super.paramString(); } ! /** * This method resets the toggle button's UI delegate to the default UI for * the current look and feel. */ public void updateUI() ! { setUI((ButtonUI)UIManager.getUI(this)); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JToolBar.java gcc-4.6.0/libjava/classpath/javax/swing/JToolBar.java *** gcc-4.5.2/libjava/classpath/javax/swing/JToolBar.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JToolBar.java Tue Jan 11 19:46:05 2011 *************** public class JToolBar extends JComponent *** 83,89 **** } /** ! * Returns a set containing the current state of the {@link JToolBar} * component. The current implementation simply calls the superclass. * * @return The accessible state set. --- 83,89 ---- } /** ! * Returns a set containing the current state of the {@link JToolBar} * component. The current implementation simply calls the superclass. * * @return The accessible state set. *************** public class JToolBar extends JComponent *** 134,149 **** public void layoutContainer(Container c) { if (! (c instanceof JToolBar)) ! throw new Error("DefaultToolBarLayout can only be used on JToolBars."); Insets insets = getInsets(); Insets margin = getMargin(); int middle; if (margin != null) { ! insets.left += margin.left; ! insets.top += margin.top; ! insets.bottom += margin.bottom; ! insets.right += margin.right; } Component[] components = c.getComponents(); Dimension tdims = c.getSize(); --- 134,149 ---- public void layoutContainer(Container c) { if (! (c instanceof JToolBar)) ! throw new Error("DefaultToolBarLayout can only be used on JToolBars."); Insets insets = getInsets(); Insets margin = getMargin(); int middle; if (margin != null) { ! insets.left += margin.left; ! insets.top += margin.top; ! insets.bottom += margin.bottom; ! insets.right += margin.right; } Component[] components = c.getComponents(); Dimension tdims = c.getSize(); *************** public class JToolBar extends JComponent *** 152,190 **** if (getOrientation() == SwingUtilities.HORIZONTAL) { ! start += insets.left; ! for (int i = 0; i < components.length; i++) ! { ! if (components[i] != null && components[i].isVisible()) ! { ! pref = components[i].getPreferredSize(); ! if (pref != null) ! { ! middle = (tdims.height - pref.height) / 2; ! components[i].setBounds(start, middle, pref.width, ! pref.height); ! start += pref.width; ! } ! } ! } } else { ! start += insets.top; ! for (int i = 0; i < components.length; i++) ! { ! if (components[i] != null && components[i].isVisible()) ! { ! pref = components[i].getPreferredSize(); ! if (pref != null) ! { ! middle = (tdims.width - pref.width) / 2; ! components[i].setBounds(middle, start, pref.width, ! pref.height); ! start += pref.height; ! } ! } ! } } } --- 152,190 ---- if (getOrientation() == SwingUtilities.HORIZONTAL) { ! start += insets.left; ! for (int i = 0; i < components.length; i++) ! { ! if (components[i] != null && components[i].isVisible()) ! { ! pref = components[i].getPreferredSize(); ! if (pref != null) ! { ! middle = (tdims.height - pref.height) / 2; ! components[i].setBounds(start, middle, pref.width, ! pref.height); ! start += pref.width; ! } ! } ! } } else { ! start += insets.top; ! for (int i = 0; i < components.length; i++) ! { ! if (components[i] != null && components[i].isVisible()) ! { ! pref = components[i].getPreferredSize(); ! if (pref != null) ! { ! middle = (tdims.width - pref.width) / 2; ! components[i].setBounds(middle, start, pref.width, ! pref.height); ! start += pref.height; ! } ! } ! } } } *************** public class JToolBar extends JComponent *** 223,255 **** if (orientation == SwingConstants.HORIZONTAL) { ! for (int i = 0; i < components.length; i++) ! { ! dims = components[i].getPreferredSize(); ! if (dims != null) ! { ! if (dims.height > limit) ! limit = dims.height; ! total += dims.width; ! } ! } ! w = total; ! h = limit; } else { ! for (int i = 0; i < components.length; i++) ! { ! dims = components[i].getPreferredSize(); ! if (dims != null) ! { ! if (dims.width > limit) ! limit = dims.width; ! total += dims.height; ! } ! } ! w = limit; ! h = total; } Insets insets = getInsets(); --- 223,255 ---- if (orientation == SwingConstants.HORIZONTAL) { ! for (int i = 0; i < components.length; i++) ! { ! dims = components[i].getPreferredSize(); ! if (dims != null) ! { ! if (dims.height > limit) ! limit = dims.height; ! total += dims.width; ! } ! } ! w = total; ! h = limit; } else { ! for (int i = 0; i < components.length; i++) ! { ! dims = components[i].getPreferredSize(); ! if (dims != null) ! { ! if (dims.width > limit) ! limit = dims.width; ! total += dims.height; ! } ! } ! w = limit; ! h = total; } Insets insets = getInsets(); *************** public class JToolBar extends JComponent *** 259,266 **** Insets margin = getMargin(); if (margin != null) { ! w += margin.left + margin.right; ! h += margin.top + margin.bottom; } return new Dimension(w, h); --- 259,266 ---- Insets margin = getMargin(); if (margin != null) { ! w += margin.left + margin.right; ! h += margin.top + margin.bottom; } return new Dimension(w, h); *************** public class JToolBar extends JComponent *** 509,518 **** { if (b != rollover) { ! rollover = b; ! firePropertyChange("rollover", ! rollover, rollover); ! revalidate(); ! repaint(); } } --- 509,518 ---- { if (b != rollover) { ! rollover = b; ! firePropertyChange("rollover", ! rollover, rollover); ! revalidate(); ! repaint(); } } *************** public class JToolBar extends JComponent *** 541,547 **** for (int i = 0; i < components.length; i++) if (components[i] == component) ! return i; return -1; } // getComponentIndex() --- 541,547 ---- for (int i = 0; i < components.length; i++) if (components[i] == component) ! return i; return -1; } // getComponentIndex() *************** public class JToolBar extends JComponent *** 584,594 **** || margin.right != this.margin.right || margin.top != this.margin.top || margin.bottom != this.margin.bottom))) { ! Insets oldMargin = this.margin; ! this.margin = margin; ! firePropertyChange("margin", oldMargin, this.margin); ! revalidate(); ! repaint(); } } // setMargin() --- 584,594 ---- || margin.right != this.margin.right || margin.top != this.margin.top || margin.bottom != this.margin.bottom))) { ! Insets oldMargin = this.margin; ! this.margin = margin; ! firePropertyChange("margin", oldMargin, this.margin); ! revalidate(); ! repaint(); } } // setMargin() *************** public class JToolBar extends JComponent *** 612,621 **** { if (painted != paintBorder) { ! paintBorder = painted; ! firePropertyChange("borderPainted", ! paintBorder, ! paintBorder); ! repaint(); } } // setBorderPainted() --- 612,621 ---- { if (painted != paintBorder) { ! paintBorder = painted; ! firePropertyChange("borderPainted", ! paintBorder, ! paintBorder); ! repaint(); } } // setBorderPainted() *************** public class JToolBar extends JComponent *** 639,646 **** { if (floatable != this.floatable) { ! this.floatable = floatable; ! firePropertyChange("floatable", ! floatable, floatable); } } // setFloatable() --- 639,646 ---- { if (floatable != this.floatable) { ! this.floatable = floatable; ! firePropertyChange("floatable", ! floatable, floatable); } } // setFloatable() *************** public class JToolBar extends JComponent *** 681,691 **** + " is not a legal orientation"); if (orientation != this.orientation) { ! int oldOrientation = this.orientation; ! this.orientation = orientation; ! firePropertyChange("orientation", oldOrientation, this.orientation); ! revalidate(); ! repaint(); } } // setOrientation() --- 681,691 ---- + " is not a legal orientation"); if (orientation != this.orientation) { ! int oldOrientation = this.orientation; ! this.orientation = orientation; ! firePropertyChange("orientation", oldOrientation, this.orientation); ! revalidate(); ! repaint(); } } // setOrientation() *************** public class JToolBar extends JComponent *** 760,766 **** /** * Returns a string describing the attributes for the JToolBar ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * --- 760,766 ---- /** * Returns a string describing the attributes for the JToolBar ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JToolTip.java gcc-4.6.0/libjava/classpath/javax/swing/JToolTip.java *** gcc-4.5.2/libjava/classpath/javax/swing/JToolTip.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JToolTip.java Tue Jan 11 19:46:05 2011 *************** public class JToolTip extends JComponent *** 117,123 **** * Returns the text displayed by the tool tip. * * @return The text (possibly null). ! * * @see #setTipText(String) */ public String getTipText() --- 117,123 ---- * Returns the text displayed by the tool tip. * * @return The text (possibly null). ! * * @see #setTipText(String) */ public String getTipText() *************** public class JToolTip extends JComponent *** 142,148 **** * Returns the component that the tool tip is associated with. * * @return The component (possibly null). ! * * @see #setComponent(JComponent) */ public JComponent getComponent() --- 142,148 ---- * Returns the component that the tool tip is associated with. * * @return The component (possibly null). ! * * @see #setComponent(JComponent) */ public JComponent getComponent() *************** public class JToolTip extends JComponent *** 173,179 **** /** * Returns a string describing the attributes for the JToolTip ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * --- 173,179 ---- /** * Returns a string describing the attributes for the JToolTip ! * component, for use in debugging. The return value is guaranteed to be * non-null, but the format of the string may vary between * implementations. * *************** public class JToolTip extends JComponent *** 189,200 **** } /** ! * Sets the component that the tool tip is associated with and sends a ! * {@link PropertyChangeEvent} (with the property name 'component') to all * registered listeners. * * @param c the component (null permitted). ! * * @see #getComponent() */ public void setComponent(JComponent c) --- 189,200 ---- } /** ! * Sets the component that the tool tip is associated with and sends a ! * {@link PropertyChangeEvent} (with the property name 'component') to all * registered listeners. * * @param c the component (null permitted). ! * * @see #getComponent() */ public void setComponent(JComponent c) *************** public class JToolTip extends JComponent *** 205,216 **** } /** ! * Sets the text to be displayed by the tool tip and sends a ! * {@link PropertyChangeEvent} (with the property name 'tiptext') to all * registered listeners. * * @param tipText the text (null permitted). ! * * @see #getTipText() */ public void setTipText(String tipText) --- 205,216 ---- } /** ! * Sets the text to be displayed by the tool tip and sends a ! * {@link PropertyChangeEvent} (with the property name 'tiptext') to all * registered listeners. * * @param tipText the text (null permitted). ! * * @see #getTipText() */ public void setTipText(String tipText) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JTree.java gcc-4.6.0/libjava/classpath/javax/swing/JTree.java *** gcc-4.5.2/libjava/classpath/javax/swing/JTree.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/JTree.java Tue Jan 11 19:46:05 2011 *************** *** 1,6 **** ! /* JTree.java Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify --- 1,6 ---- ! /* JTree.java Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. ! This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify *************** public class JTree extends JComponent im *** 87,110 **** { /** ! * This class implements accessibility support for the JTree class. It ! * provides an implementation of the Java Accessibility API appropriate * to tree user-interface elements. */ protected class AccessibleJTree extends JComponent.AccessibleJComponent implements AccessibleSelection, TreeSelectionListener, TreeModelListener, TreeExpansionListener { ! /** ! * This class implements accessibility support for the JTree child. It provides * an implementation of the Java Accessibility API appropriate to tree nodes. */ ! protected class AccessibleJTreeNode extends AccessibleContext ! implements Accessible, AccessibleComponent, AccessibleSelection, AccessibleAction { ! private JTree tree; private TreePath tp; private Accessible acc; --- 87,110 ---- { /** ! * This class implements accessibility support for the JTree class. It ! * provides an implementation of the Java Accessibility API appropriate * to tree user-interface elements. */ protected class AccessibleJTree extends JComponent.AccessibleJComponent implements AccessibleSelection, TreeSelectionListener, TreeModelListener, TreeExpansionListener { ! /** ! * This class implements accessibility support for the JTree child. It provides * an implementation of the Java Accessibility API appropriate to tree nodes. */ ! protected class AccessibleJTreeNode extends AccessibleContext ! implements Accessible, AccessibleComponent, AccessibleSelection, AccessibleAction { ! private JTree tree; private TreePath tp; private Accessible acc; *************** public class JTree extends JComponent im *** 113,122 **** private Vector actionList; private TreeModel mod; private Cursor cursor; ! /** * Constructs an AccessibleJTreeNode ! * * @param t - the current tree * @param p - the current path to be dealt with * @param ap - the accessible object to use --- 113,122 ---- private Vector actionList; private TreeModel mod; private Cursor cursor; ! /** * Constructs an AccessibleJTreeNode ! * * @param t - the current tree * @param p - the current path to be dealt with * @param ap - the accessible object to use *************** public class JTree extends JComponent im *** 128,138 **** actionList = new Vector(); mod = tree.getModel(); cursor = JTree.this.getCursor(); ! tree = t; tp = p; acc = ap; ! // Add all the children of this path that may already be // selected to the selection list. TreePath[] selected = tree.getSelectionPaths(); --- 128,138 ---- actionList = new Vector(); mod = tree.getModel(); cursor = JTree.this.getCursor(); ! tree = t; tp = p; acc = ap; ! // Add all the children of this path that may already be // selected to the selection list. TreePath[] selected = tree.getSelectionPaths(); *************** public class JTree extends JComponent im *** 142,161 **** if ((sel.getParentPath()).equals(tp)) selectionList.add(sel); } ! ! // Add all the actions available for a node to // the action list. actionList.add("EXPAND"); actionList.add("COLLAPSE"); actionList.add("EDIT"); actionList.add("SELECT"); actionList.add("DESELECT"); ! } ! /** * Adds the specified selected item in the object to the object's * selection. ! * * @param i - the i-th child of this node. */ public void addAccessibleSelection(int i) --- 142,161 ---- if ((sel.getParentPath()).equals(tp)) selectionList.add(sel); } ! ! // Add all the actions available for a node to // the action list. actionList.add("EXPAND"); actionList.add("COLLAPSE"); actionList.add("EDIT"); actionList.add("SELECT"); actionList.add("DESELECT"); ! } ! /** * Adds the specified selected item in the object to the object's * selection. ! * * @param i - the i-th child of this node. */ public void addAccessibleSelection(int i) *************** public class JTree extends JComponent im *** 167,213 **** { if (!states.contains(AccessibleState.MULTISELECTABLE)) clearAccessibleSelection(); ! selectionList.add(child); tree.addSelectionPath(tp.pathByAddingChild(child)); } } } ! /** ! * Adds the specified focus listener to receive focus events * from this component. ! * * @param l - the new focus listener */ public void addFocusListener(FocusListener l) { tree.addFocusListener(l); } ! /** * Add a PropertyChangeListener to the listener list. ! * * @param l - the new property change listener */ public void addPropertyChangeListener(PropertyChangeListener l) { // Nothing to do here. } ! /** ! * Clears the selection in the object, so that nothing in the * object is selected. */ public void clearAccessibleSelection() { selectionList.clear(); } ! /** ! * Checks whether the specified point is within this object's ! * bounds, where the point's x and y coordinates are defined to be ! * relative to the coordinate system of the object. ! * * @param p - the point to check * @return true if p is in the bounds */ --- 167,213 ---- { if (!states.contains(AccessibleState.MULTISELECTABLE)) clearAccessibleSelection(); ! selectionList.add(child); tree.addSelectionPath(tp.pathByAddingChild(child)); } } } ! /** ! * Adds the specified focus listener to receive focus events * from this component. ! * * @param l - the new focus listener */ public void addFocusListener(FocusListener l) { tree.addFocusListener(l); } ! /** * Add a PropertyChangeListener to the listener list. ! * * @param l - the new property change listener */ public void addPropertyChangeListener(PropertyChangeListener l) { // Nothing to do here. } ! /** ! * Clears the selection in the object, so that nothing in the * object is selected. */ public void clearAccessibleSelection() { selectionList.clear(); } ! /** ! * Checks whether the specified point is within this object's ! * bounds, where the point's x and y coordinates are defined to be ! * relative to the coordinate system of the object. ! * * @param p - the point to check * @return true if p is in the bounds */ *************** public class JTree extends JComponent im *** 215,224 **** { return getBounds().contains(p); } ! /** * Perform the specified Action on the tree node. ! * * @param i - the i-th action to perform * @return true if the the action was performed; else false. */ --- 215,224 ---- { return getBounds().contains(p); } ! /** * Perform the specified Action on the tree node. ! * * @param i - the i-th action to perform * @return true if the the action was performed; else false. */ *************** public class JTree extends JComponent im *** 226,232 **** { if (i >= actionList.size() || i < 0) return false; ! if (actionList.get(i).equals("EXPAND")) tree.expandPath(tp); else if (actionList.get(i).equals("COLLAPSE")) --- 226,232 ---- { if (i >= actionList.size() || i < 0) return false; ! if (actionList.get(i).equals("EXPAND")) tree.expandPath(tp); else if (actionList.get(i).equals("COLLAPSE")) *************** public class JTree extends JComponent im *** 241,270 **** return false; return true; } ! /** * Get the AccessibleAction associated with this object. ! * * @return the action */ public AccessibleAction getAccessibleAction() { return this; } ! /** * Returns the number of accessible actions available in this tree node. ! * * @return the number of actions */ public int getAccessibleActionCount() { return actionList.size(); } ! /** * Return a description of the specified action of the tree node. ! * * @param i - the i-th action's description * @return a description of the action */ --- 241,270 ---- return false; return true; } ! /** * Get the AccessibleAction associated with this object. ! * * @return the action */ public AccessibleAction getAccessibleAction() { return this; } ! /** * Returns the number of accessible actions available in this tree node. ! * * @return the number of actions */ public int getAccessibleActionCount() { return actionList.size(); } ! /** * Return a description of the specified action of the tree node. ! * * @param i - the i-th action's description * @return a description of the action */ *************** public class JTree extends JComponent im *** 274,284 **** return (actionList.get(i)).toString(); return super.getAccessibleDescription(); } ! /** ! * Returns the Accessible child, if one exists, contained at the * local coordinate Point. ! * * @param p - the point of the accessible * @return the accessible at point p if it exists */ --- 274,284 ---- return (actionList.get(i)).toString(); return super.getAccessibleDescription(); } ! /** ! * Returns the Accessible child, if one exists, contained at the * local coordinate Point. ! * * @param p - the point of the accessible * @return the accessible at point p if it exists */ *************** public class JTree extends JComponent im *** 289,298 **** return new AccessibleJTreeNode(tree, acc, this); return null; } ! /** * Return the specified Accessible child of the object. ! * * @param i - the i-th child of the current path * @return the child if it exists */ --- 289,298 ---- return new AccessibleJTreeNode(tree, acc, this); return null; } ! /** * Return the specified Accessible child of the object. ! * * @param i - the i-th child of the current path * @return the child if it exists */ *************** public class JTree extends JComponent im *** 307,316 **** } return null; } ! /** * Returns the number of accessible children in the object. ! * * @return the number of children the current node has */ public int getAccessibleChildrenCount() --- 307,316 ---- } return null; } ! /** * Returns the number of accessible children in the object. ! * * @return the number of children the current node has */ public int getAccessibleChildrenCount() *************** public class JTree extends JComponent im *** 320,359 **** return mod.getChildCount(tp.getLastPathComponent()); return 0; } ! /** * Get the AccessibleComponent associated with this object. ! * * @return the accessible component if it is supported. */ public AccessibleComponent getAccessibleComponent() { return this; } ! /** * Get the AccessibleContext associated with this tree node. ! * * @return an instance of this class */ public AccessibleContext getAccessibleContext() { return this; } ! /** * Get the accessible description of this object. ! * * @return the accessible description */ public String getAccessibleDescription() { return super.getAccessibleDescription(); } ! /** * Get the index of this object in its accessible parent. ! * * @return the index of this in the parent. */ public int getAccessibleIndexInParent() --- 320,359 ---- return mod.getChildCount(tp.getLastPathComponent()); return 0; } ! /** * Get the AccessibleComponent associated with this object. ! * * @return the accessible component if it is supported. */ public AccessibleComponent getAccessibleComponent() { return this; } ! /** * Get the AccessibleContext associated with this tree node. ! * * @return an instance of this class */ public AccessibleContext getAccessibleContext() { return this; } ! /** * Get the accessible description of this object. ! * * @return the accessible description */ public String getAccessibleDescription() { return super.getAccessibleDescription(); } ! /** * Get the index of this object in its accessible parent. ! * * @return the index of this in the parent. */ public int getAccessibleIndexInParent() *************** public class JTree extends JComponent im *** 367,440 **** } return -1; } ! /** * Get the accessible name of this object. ! * * @return the accessible name */ public String getAccessibleName() { return super.getAccessibleName(); } ! /** * Get the Accessible parent of this object. ! * * @return the accessible parent if it exists. */ public Accessible getAccessibleParent() { return super.getAccessibleParent(); } ! /** * Get the role of this object. ! * * @return the accessible role */ public AccessibleRole getAccessibleRole() { return AccessibleJTree.this.getAccessibleRole(); } ! /** * Get the AccessibleSelection associated with this object if one exists. ! * * @return the accessible selection for this. */ public AccessibleSelection getAccessibleSelection() { return this; } ! /** ! * Returns an Accessible representing the specified selected item * in the object. ! * * @return the accessible representing a certain selected item. */ public Accessible getAccessibleSelection(int i) { if (i > 0 && i < getAccessibleSelectionCount()) ! return new AccessibleJTreeNode(tree, tp.pathByAddingChild(selectionList.get(i)), acc); return null; } ! /** * Returns the number of items currently selected. ! * * @return the number of items selected. */ public int getAccessibleSelectionCount() { return selectionList.size(); } ! /** * Get the state set of this object. ! * * @return the state set for this object */ public AccessibleStateSet getAccessibleStateSet() --- 367,440 ---- } return -1; } ! /** * Get the accessible name of this object. ! * * @return the accessible name */ public String getAccessibleName() { return super.getAccessibleName(); } ! /** * Get the Accessible parent of this object. ! * * @return the accessible parent if it exists. */ public Accessible getAccessibleParent() { return super.getAccessibleParent(); } ! /** * Get the role of this object. ! * * @return the accessible role */ public AccessibleRole getAccessibleRole() { return AccessibleJTree.this.getAccessibleRole(); } ! /** * Get the AccessibleSelection associated with this object if one exists. ! * * @return the accessible selection for this. */ public AccessibleSelection getAccessibleSelection() { return this; } ! /** ! * Returns an Accessible representing the specified selected item * in the object. ! * * @return the accessible representing a certain selected item. */ public Accessible getAccessibleSelection(int i) { if (i > 0 && i < getAccessibleSelectionCount()) ! return new AccessibleJTreeNode(tree, tp.pathByAddingChild(selectionList.get(i)), acc); return null; } ! /** * Returns the number of items currently selected. ! * * @return the number of items selected. */ public int getAccessibleSelectionCount() { return selectionList.size(); } ! /** * Get the state set of this object. ! * * @return the state set for this object */ public AccessibleStateSet getAccessibleStateSet() *************** public class JTree extends JComponent im *** 445,451 **** states.add(AccessibleState.COLLAPSED); if (tree.isEditable()) states.add(AccessibleState.EDITABLE); ! if (mod != null && !mod.isLeaf(tp.getLastPathComponent())) states.add(AccessibleState.EXPANDABLE); if (tree.isExpanded(tp)) --- 445,451 ---- states.add(AccessibleState.COLLAPSED); if (tree.isEditable()) states.add(AccessibleState.EDITABLE); ! if (mod != null && !mod.isLeaf(tp.getLastPathComponent())) states.add(AccessibleState.EXPANDABLE); if (tree.isExpanded(tp)) *************** public class JTree extends JComponent im *** 454,460 **** states.add(AccessibleState.FOCUSABLE); if (hasFocus()) states.add(AccessibleState.FOCUSED); ! if (tree.getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) states.add(AccessibleState.MULTISELECTABLE); if (tree.isOpaque()) --- 454,460 ---- states.add(AccessibleState.FOCUSABLE); if (hasFocus()) states.add(AccessibleState.FOCUSED); ! if (tree.getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) states.add(AccessibleState.MULTISELECTABLE); if (tree.isOpaque()) *************** public class JTree extends JComponent im *** 467,536 **** states.add(AccessibleState.SELECTABLE); return states; } ! /** * Get the AccessibleText associated with this object if one exists. ! * * @return the accessible text */ public AccessibleText getAccessibleText() { return super.getAccessibleText(); } ! /** * Get the AccessibleValue associated with this object if one exists. ! * * @return the accessible value if it exists */ public AccessibleValue getAccessibleValue() { return super.getAccessibleValue(); } ! /** * Get the background color of this object. ! * * @return the color of the background. */ public Color getBackground() { return tree.getBackground(); } ! /** * Gets the bounds of this object in the form of a Rectangle object. ! * * @return the bounds of the current node. */ public Rectangle getBounds() { return tree.getPathBounds(tp); } ! /** * Gets the Cursor of this object. ! * * @return the cursor for the current node */ public Cursor getCursor() { return cursor; } ! /** * Gets the Font of this object. ! * * @return the font for the current node */ public Font getFont() { return tree.getFont(); } ! /** * Gets the FontMetrics of this object. ! * * @param f - the current font. * @return the font metrics for the given font. */ --- 467,536 ---- states.add(AccessibleState.SELECTABLE); return states; } ! /** * Get the AccessibleText associated with this object if one exists. ! * * @return the accessible text */ public AccessibleText getAccessibleText() { return super.getAccessibleText(); } ! /** * Get the AccessibleValue associated with this object if one exists. ! * * @return the accessible value if it exists */ public AccessibleValue getAccessibleValue() { return super.getAccessibleValue(); } ! /** * Get the background color of this object. ! * * @return the color of the background. */ public Color getBackground() { return tree.getBackground(); } ! /** * Gets the bounds of this object in the form of a Rectangle object. ! * * @return the bounds of the current node. */ public Rectangle getBounds() { return tree.getPathBounds(tp); } ! /** * Gets the Cursor of this object. ! * * @return the cursor for the current node */ public Cursor getCursor() { return cursor; } ! /** * Gets the Font of this object. ! * * @return the font for the current node */ public Font getFont() { return tree.getFont(); } ! /** * Gets the FontMetrics of this object. ! * * @param f - the current font. * @return the font metrics for the given font. */ *************** public class JTree extends JComponent im *** 538,579 **** { return tree.getFontMetrics(f); } ! /** * Get the foreground color of this object. ! * * @return the foreground for this object. */ public Color getForeground() { return tree.getForeground(); } ! /** * Gets the locale of the component. ! * * @return the locale of the component. */ public Locale getLocale() { return tree.getLocale(); } ! /** ! * Gets the location of the object relative to the ! * parent in the form of a point specifying the object's ! * top-left corner in the screen's coordinate space. ! * * @return the location of the current node. */ public Point getLocation() { return getLocationInJTree(); } ! /** * Returns the location in the tree. ! * * @return the location in the JTree. */ protected Point getLocationInJTree() --- 538,579 ---- { return tree.getFontMetrics(f); } ! /** * Get the foreground color of this object. ! * * @return the foreground for this object. */ public Color getForeground() { return tree.getForeground(); } ! /** * Gets the locale of the component. ! * * @return the locale of the component. */ public Locale getLocale() { return tree.getLocale(); } ! /** ! * Gets the location of the object relative to the ! * parent in the form of a point specifying the object's ! * top-left corner in the screen's coordinate space. ! * * @return the location of the current node. */ public Point getLocation() { return getLocationInJTree(); } ! /** * Returns the location in the tree. ! * * @return the location in the JTree. */ protected Point getLocationInJTree() *************** public class JTree extends JComponent im *** 581,590 **** Rectangle bounds = tree.getPathBounds(tp); return new Point(bounds.x, bounds.y); } ! /** * Returns the location of the object on the screen. ! * * @return the location of the object on the screen. */ public Point getLocationOnScreen() --- 581,590 ---- Rectangle bounds = tree.getPathBounds(tp); return new Point(bounds.x, bounds.y); } ! /** * Returns the location of the object on the screen. ! * * @return the location of the object on the screen. */ public Point getLocationOnScreen() *************** public class JTree extends JComponent im *** 593,602 **** SwingUtilities.convertPointToScreen(loc, tree); return loc; } ! /** * Returns the size of this object in the form of a Dimension object. ! * * @return the size of the object */ public Dimension getSize() --- 593,602 ---- SwingUtilities.convertPointToScreen(loc, tree); return loc; } ! /** * Returns the size of this object in the form of a Dimension object. ! * * @return the size of the object */ public Dimension getSize() *************** public class JTree extends JComponent im *** 604,613 **** Rectangle b = getBounds(); return b.getSize(); } ! /** * Returns true if the current child of this object is selected. ! * * @param i - the child of the current node * @return true if the child is selected. */ --- 604,613 ---- Rectangle b = getBounds(); return b.getSize(); } ! /** * Returns true if the current child of this object is selected. ! * * @param i - the child of the current node * @return true if the child is selected. */ *************** public class JTree extends JComponent im *** 618,647 **** return tree.isPathSelected(tp.pathByAddingChild(child)); return false; } ! /** * Determines if the object is enabled. ! * * @return true if the tree is enabled */ public boolean isEnabled() { return tree.isEnabled(); } ! /** * Returns whether this object can accept focus or not. ! * * @return true, it is always focus traversable */ public boolean isFocusTraversable() { return true; } ! /** * Determines if the object is showing. ! * * @return true if the object is visible and the * parent is visible. */ --- 618,647 ---- return tree.isPathSelected(tp.pathByAddingChild(child)); return false; } ! /** * Determines if the object is enabled. ! * * @return true if the tree is enabled */ public boolean isEnabled() { return tree.isEnabled(); } ! /** * Returns whether this object can accept focus or not. ! * * @return true, it is always focus traversable */ public boolean isFocusTraversable() { return true; } ! /** * Determines if the object is showing. ! * * @return true if the object is visible and the * parent is visible. */ *************** public class JTree extends JComponent im *** 649,669 **** { return isVisible() && tree.isShowing(); } ! /** * Determines if the object is visible. ! * * @return true if the object is visible. */ public boolean isVisible() { return tree.isVisible(tp); } ! /** * Removes the specified selected item in the object from the * object's selection. ! * * @param i - the specified item to remove */ public void removeAccessibleSelection(int i) --- 649,669 ---- { return isVisible() && tree.isShowing(); } ! /** * Determines if the object is visible. ! * * @return true if the object is visible. */ public boolean isVisible() { return tree.isVisible(tp); } ! /** * Removes the specified selected item in the object from the * object's selection. ! * * @param i - the specified item to remove */ public void removeAccessibleSelection(int i) *************** public class JTree extends JComponent im *** 677,710 **** clearAccessibleSelection(); if (selectionList.contains(child)) { ! selectionList.remove(child); tree.removeSelectionPath(tp.pathByAddingChild(child)); } } } } ! /** ! * Removes the specified focus listener so it no longer receives focus * events from this component. ! * * @param l - the focus listener to remove */ public void removeFocusListener(FocusListener l) { tree.removeFocusListener(l); } ! /** * Remove a PropertyChangeListener from the listener list. ! * * @param l - the property change listener to remove. */ public void removePropertyChangeListener(PropertyChangeListener l) { // Nothing to do here. } ! /** * Requests focus for this object. */ --- 677,710 ---- clearAccessibleSelection(); if (selectionList.contains(child)) { ! selectionList.remove(child); tree.removeSelectionPath(tp.pathByAddingChild(child)); } } } } ! /** ! * Removes the specified focus listener so it no longer receives focus * events from this component. ! * * @param l - the focus listener to remove */ public void removeFocusListener(FocusListener l) { tree.removeFocusListener(l); } ! /** * Remove a PropertyChangeListener from the listener list. ! * * @param l - the property change listener to remove. */ public void removePropertyChangeListener(PropertyChangeListener l) { // Nothing to do here. } ! /** * Requests focus for this object. */ *************** public class JTree extends JComponent im *** 712,720 **** { tree.requestFocus(); } ! /** ! * Causes every selected item in the object to be selected if the object * supports multiple selections. */ public void selectAllAccessibleSelection() --- 712,720 ---- { tree.requestFocus(); } ! /** ! * Causes every selected item in the object to be selected if the object * supports multiple selections. */ public void selectAllAccessibleSelection() *************** public class JTree extends JComponent im *** 738,847 **** } } } ! /** * Set the accessible description of this object. ! * * @param s - the string to set the accessible description to. */ public void setAccessibleDescription(String s) { super.setAccessibleDescription(s); } ! /** * Set the localized accessible name of this object. ! * * @param s - the string to set the accessible name to. */ public void setAccessibleName(String s) { super.setAccessibleName(s); } ! /** * Set the background color of this object. ! * * @param c - the color to set the background to. */ public void setBackground(Color c) { // Nothing to do here. } ! /** * Sets the bounds of this object in the form of a Rectangle object. ! * * @param r - the bounds to set the object o */ public void setBounds(Rectangle r) { // Nothing to do here. } ! /** * Sets the Cursor of this object. ! * * @param c - the new cursor */ public void setCursor(Cursor c) { cursor = c; } ! /** * Sets the enabled state of the object. ! * * @param b - boolean to enable or disable object */ public void setEnabled(boolean b) { // Nothing to do here. } ! /** * Sets the Font of this object. ! * * @param f - the new font. */ public void setFont(Font f) { // Nothing to do here. } ! /** * Sets the foreground color of this object. ! * * @param c - the new foreground color. */ public void setForeground(Color c) { // Nothing to do here. } ! /** * Sets the location of the object relative to the parent. ! * * @param p - the new location for the object. */ public void setLocation(Point p) { // Nothing to do here. } ! /** * Resizes this object so that it has width and height. ! * * @param d - the new size for the object. */ public void setSize(Dimension d) { // Nothing to do here. } ! /** * Sets the visible state of the object. ! * * @param b - sets the objects visibility. */ public void setVisible(boolean b) --- 738,847 ---- } } } ! /** * Set the accessible description of this object. ! * * @param s - the string to set the accessible description to. */ public void setAccessibleDescription(String s) { super.setAccessibleDescription(s); } ! /** * Set the localized accessible name of this object. ! * * @param s - the string to set the accessible name to. */ public void setAccessibleName(String s) { super.setAccessibleName(s); } ! /** * Set the background color of this object. ! * * @param c - the color to set the background to. */ public void setBackground(Color c) { // Nothing to do here. } ! /** * Sets the bounds of this object in the form of a Rectangle object. ! * * @param r - the bounds to set the object o */ public void setBounds(Rectangle r) { // Nothing to do here. } ! /** * Sets the Cursor of this object. ! * * @param c - the new cursor */ public void setCursor(Cursor c) { cursor = c; } ! /** * Sets the enabled state of the object. ! * * @param b - boolean to enable or disable object */ public void setEnabled(boolean b) { // Nothing to do here. } ! /** * Sets the Font of this object. ! * * @param f - the new font. */ public void setFont(Font f) { // Nothing to do here. } ! /** * Sets the foreground color of this object. ! * * @param c - the new foreground color. */ public void setForeground(Color c) { // Nothing to do here. } ! /** * Sets the location of the object relative to the parent. ! * * @param p - the new location for the object. */ public void setLocation(Point p) { // Nothing to do here. } ! /** * Resizes this object so that it has width and height. ! * * @param d - the new size for the object. */ public void setSize(Dimension d) { // Nothing to do here. } ! /** * Sets the visible state of the object. ! * * @param b - sets the objects visibility. */ public void setVisible(boolean b) *************** public class JTree extends JComponent im *** 849,855 **** // Nothing to do here. } } ! /** * Constructor */ --- 849,855 ---- // Nothing to do here. } } ! /** * Constructor */ *************** public class JTree extends JComponent im *** 857,873 **** { // Nothing to do here. } ! /** * Adds the specified selected item in the object to the object's selection. ! * * @param i - the row to add to the tree's selection */ public void addAccessibleSelection(int i) { addSelectionInterval(i, i); } ! /** * Clears the selection in the object, so that nothing in the object is selected. */ --- 857,873 ---- { // Nothing to do here. } ! /** * Adds the specified selected item in the object to the object's selection. ! * * @param i - the row to add to the tree's selection */ public void addAccessibleSelection(int i) { addSelectionInterval(i, i); } ! /** * Clears the selection in the object, so that nothing in the object is selected. */ *************** public class JTree extends JComponent im *** 875,881 **** { clearSelection(); } ! /** * Fire a visible data property change notification. */ --- 875,881 ---- { clearSelection(); } ! /** * Fire a visible data property change notification. */ *************** public class JTree extends JComponent im *** 883,893 **** { treeDidChange(); } ! /** ! * Returns the Accessible child, if one exists, contained at the local * coordinate Point. ! * * @param p - the point of the accessible to get. * @return the accessible at point p. */ --- 883,893 ---- { treeDidChange(); } ! /** ! * Returns the Accessible child, if one exists, contained at the local * coordinate Point. ! * * @param p - the point of the accessible to get. * @return the accessible at point p. */ *************** public class JTree extends JComponent im *** 898,907 **** return new AccessibleJTreeNode(JTree.this, tp, null); return null; } ! /** * Return the nth Accessible child of the object. ! * * @param i - the accessible child to get * @return the i-th child */ --- 898,907 ---- return new AccessibleJTreeNode(JTree.this, tp, null); return null; } ! /** * Return the nth Accessible child of the object. ! * * @param i - the accessible child to get * @return the i-th child */ *************** public class JTree extends JComponent im *** 909,918 **** { return null; } ! /** * Returns the number of top-level children nodes of this JTree. ! * * @return the number of top-level children */ public int getAccessibleChildrenCount() --- 909,918 ---- { return null; } ! /** * Returns the number of top-level children nodes of this JTree. ! * * @return the number of top-level children */ public int getAccessibleChildrenCount() *************** public class JTree extends JComponent im *** 922,989 **** return model.getChildCount(model.getRoot()); return 0; } ! /** * Get the index of this object in its accessible parent. ! * * @return the index of this object. */ public int getAccessibleIndexInParent() { return 0; } ! /** * Get the role of this object. ! * * @return the role of this object */ public AccessibleRole getAccessibleRole() { return AccessibleRole.TREE; } ! /** * Get the AccessibleSelection associated with this object. ! * * @return the accessible selection of the tree */ public AccessibleSelection getAccessibleSelection() { TreeModel mod = getModel(); if (mod != null) ! return (new AccessibleJTreeNode(JTree.this, new TreePath(mod.getRoot()), null)).getAccessibleSelection(); return null; } ! /** * Returns an Accessible representing the specified selected item in the object. ! * * @return the i-th accessible in the selection */ public Accessible getAccessibleSelection(int i) { TreeModel mod = getModel(); if (mod != null) ! return (new AccessibleJTreeNode(JTree.this, new TreePath(mod.getRoot()), null)).getAccessibleSelection(i); return null; } ! /** * Returns the number of items currently selected. ! * * @return the number of selected accessibles. */ public int getAccessibleSelectionCount() { return getSelectionCount(); } ! /** * Returns true if the current child of this object is selected. ! * * @param i - the child of this object * @return true if the i-th child is selected. */ --- 922,989 ---- return model.getChildCount(model.getRoot()); return 0; } ! /** * Get the index of this object in its accessible parent. ! * * @return the index of this object. */ public int getAccessibleIndexInParent() { return 0; } ! /** * Get the role of this object. ! * * @return the role of this object */ public AccessibleRole getAccessibleRole() { return AccessibleRole.TREE; } ! /** * Get the AccessibleSelection associated with this object. ! * * @return the accessible selection of the tree */ public AccessibleSelection getAccessibleSelection() { TreeModel mod = getModel(); if (mod != null) ! return (new AccessibleJTreeNode(JTree.this, new TreePath(mod.getRoot()), null)).getAccessibleSelection(); return null; } ! /** * Returns an Accessible representing the specified selected item in the object. ! * * @return the i-th accessible in the selection */ public Accessible getAccessibleSelection(int i) { TreeModel mod = getModel(); if (mod != null) ! return (new AccessibleJTreeNode(JTree.this, new TreePath(mod.getRoot()), null)).getAccessibleSelection(i); return null; } ! /** * Returns the number of items currently selected. ! * * @return the number of selected accessibles. */ public int getAccessibleSelectionCount() { return getSelectionCount(); } ! /** * Returns true if the current child of this object is selected. ! * * @param i - the child of this object * @return true if the i-th child is selected. */ *************** public class JTree extends JComponent im *** 992,1083 **** // Nothing to do here. return false; } ! /** * Removes the specified selected item in the object from the object's * selection. ! * * @param i - the i-th selected item to remove */ public void removeAccessibleSelection(int i) { removeSelectionInterval(i, i); } ! /** * Causes every selected item in the object to be selected if the object * supports multiple selections. */ public void selectAllAccessibleSelection() { ! if (getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) addSelectionInterval(0, getVisibleRowCount()); } ! /** * Tree Collapsed notification ! * * @param e - the event */ public void treeCollapsed(TreeExpansionEvent e) { fireTreeCollapsed(e.getPath()); } ! /** * Tree Model Expansion notification. ! * * @param e - the event */ public void treeExpanded(TreeExpansionEvent e) { fireTreeExpanded(e.getPath()); } ! /** * Tree Model Node change notification. ! * * @param e - the event */ public void treeNodesChanged(TreeModelEvent e) { // Nothing to do here. } ! /** * Tree Model Node change notification. ! * * @param e - the event */ public void treeNodesInserted(TreeModelEvent e) { // Nothing to do here. } ! /** * Tree Model Node change notification. ! * * @param e - the event */ public void treeNodesRemoved(TreeModelEvent e) { // Nothing to do here. } ! /** * Tree Model structure change change notification. ! * * @param e - the event */ public void treeStructureChanged(TreeModelEvent e) { // Nothing to do here. } ! /** * Tree Selection Listener value change method. ! * * @param e - the event */ public void valueChanged(TreeSelectionEvent e) --- 992,1083 ---- // Nothing to do here. return false; } ! /** * Removes the specified selected item in the object from the object's * selection. ! * * @param i - the i-th selected item to remove */ public void removeAccessibleSelection(int i) { removeSelectionInterval(i, i); } ! /** * Causes every selected item in the object to be selected if the object * supports multiple selections. */ public void selectAllAccessibleSelection() { ! if (getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) addSelectionInterval(0, getVisibleRowCount()); } ! /** * Tree Collapsed notification ! * * @param e - the event */ public void treeCollapsed(TreeExpansionEvent e) { fireTreeCollapsed(e.getPath()); } ! /** * Tree Model Expansion notification. ! * * @param e - the event */ public void treeExpanded(TreeExpansionEvent e) { fireTreeExpanded(e.getPath()); } ! /** * Tree Model Node change notification. ! * * @param e - the event */ public void treeNodesChanged(TreeModelEvent e) { // Nothing to do here. } ! /** * Tree Model Node change notification. ! * * @param e - the event */ public void treeNodesInserted(TreeModelEvent e) { // Nothing to do here. } ! /** * Tree Model Node change notification. ! * * @param e - the event */ public void treeNodesRemoved(TreeModelEvent e) { // Nothing to do here. } ! /** * Tree Model structure change change notification. ! * * @param e - the event */ public void treeStructureChanged(TreeModelEvent e) { // Nothing to do here. } ! /** * Tree Selection Listener value change method. ! * * @param e - the event */ public void valueChanged(TreeSelectionEvent e) *************** public class JTree extends JComponent im *** 1085,1091 **** fireValueChanged(e); } } ! public static class DynamicUtilTreeNode extends DefaultMutableTreeNode { protected Object childValue; --- 1085,1091 ---- fireValueChanged(e); } } ! public static class DynamicUtilTreeNode extends DefaultMutableTreeNode { protected Object childValue; *************** public class JTree extends JComponent im *** 1129,1137 **** /** * Returns the child node at position pos. Subclassed * here to load the children if necessary. ! * * @param pos the position of the child node to fetch ! * * @return the childnode at the specified position */ public TreeNode getChildAt(int pos) --- 1129,1137 ---- /** * Returns the child node at position pos. Subclassed * here to load the children if necessary. ! * * @param pos the position of the child node to fetch ! * * @return the childnode at the specified position */ public TreeNode getChildAt(int pos) *************** public class JTree extends JComponent im *** 1143,1149 **** public boolean isLeaf() { return childValue == null || !(childValue instanceof Hashtable ! || childValue instanceof Vector || childValue.getClass().isArray()); } --- 1143,1149 ---- public boolean isLeaf() { return childValue == null || !(childValue instanceof Hashtable ! || childValue instanceof Vector || childValue.getClass().isArray()); } *************** public class JTree extends JComponent im *** 1180,1186 **** } /** ! * Listens to the model of the JTree and updates the property * expandedState if nodes are removed or changed. */ protected class TreeModelHandler implements TreeModelListener --- 1180,1186 ---- } /** ! * Listens to the model of the JTree and updates the property * expandedState if nodes are removed or changed. */ protected class TreeModelHandler implements TreeModelListener *************** public class JTree extends JComponent im *** 1199,1207 **** * that a node has changed its location or changed it's children. It * only means that some attributes of the node have changed that might * affect its presentation. ! * * This method is called after the actual change occured. ! * * @param ev the TreeModelEvent describing the change */ public void treeNodesChanged(TreeModelEvent ev) --- 1199,1207 ---- * that a node has changed its location or changed it's children. It * only means that some attributes of the node have changed that might * affect its presentation. ! * * This method is called after the actual change occured. ! * * @param ev the TreeModelEvent describing the change */ public void treeNodesChanged(TreeModelEvent ev) *************** public class JTree extends JComponent im *** 1211,1219 **** /** * Notifies when a node is inserted into the tree. ! * * This method is called after the actual change occured. ! * * @param ev the TreeModelEvent describing the change */ public void treeNodesInserted(TreeModelEvent ev) --- 1211,1219 ---- /** * Notifies when a node is inserted into the tree. ! * * This method is called after the actual change occured. ! * * @param ev the TreeModelEvent describing the change */ public void treeNodesInserted(TreeModelEvent ev) *************** public class JTree extends JComponent im *** 1223,1233 **** /** * Notifies when a node is removed from the tree. ! * * This method is called after the actual change occured. * * @param ev the TreeModelEvent describing the change ! */ public void treeNodesRemoved(TreeModelEvent ev) { if (ev != null) --- 1223,1233 ---- /** * Notifies when a node is removed from the tree. ! * * This method is called after the actual change occured. * * @param ev the TreeModelEvent describing the change ! */ public void treeNodesRemoved(TreeModelEvent ev) { if (ev != null) *************** public class JTree extends JComponent im *** 1260,1268 **** /** * Notifies when the structure of the tree is changed. ! * * This method is called after the actual change occured. ! * * @param ev the TreeModelEvent describing the change */ public void treeStructureChanged(TreeModelEvent ev) --- 1260,1268 ---- /** * Notifies when the structure of the tree is changed. ! * * This method is called after the actual change occured. ! * * @param ev the TreeModelEvent describing the change */ public void treeStructureChanged(TreeModelEvent ev) *************** public class JTree extends JComponent im *** 1324,1335 **** /** * Notifies when the tree selection changes. ! * * @param ev the TreeSelectionEvent that describes the change */ public void valueChanged(TreeSelectionEvent ev) { ! TreeSelectionEvent rewritten = (TreeSelectionEvent) ev.cloneWithSource(JTree.this); fireValueChanged(rewritten); } --- 1324,1335 ---- /** * Notifies when the tree selection changes. ! * * @param ev the TreeSelectionEvent that describes the change */ public void valueChanged(TreeSelectionEvent ev) { ! TreeSelectionEvent rewritten = (TreeSelectionEvent) ev.cloneWithSource(JTree.this); fireValueChanged(rewritten); } *************** public class JTree extends JComponent im *** 1359,1365 **** /** * Returns the shared instance of EmptySelectionModel. ! * * @return the shared instance of EmptySelectionModel */ public static EmptySelectionModel sharedInstance() --- 1359,1365 ---- /** * Returns the shared instance of EmptySelectionModel. ! * * @return the shared instance of EmptySelectionModel */ public static EmptySelectionModel sharedInstance() *************** public class JTree extends JComponent im *** 1369,1375 **** /** * This catches attempts to set a selection and sets nothing instead. ! * * @param paths not used here */ public void setSelectionPaths(TreePath[] paths) --- 1369,1375 ---- /** * This catches attempts to set a selection and sets nothing instead. ! * * @param paths not used here */ public void setSelectionPaths(TreePath[] paths) *************** public class JTree extends JComponent im *** 1379,1385 **** /** * This catches attempts to add something to the selection. ! * * @param paths not used here */ public void addSelectionPaths(TreePath[] paths) --- 1379,1385 ---- /** * This catches attempts to add something to the selection. ! * * @param paths not used here */ public void addSelectionPaths(TreePath[] paths) *************** public class JTree extends JComponent im *** 1389,1395 **** /** * This catches attempts to remove something from the selection. ! * * @param paths not used here */ public void removeSelectionPaths(TreePath[] paths) --- 1389,1395 ---- /** * This catches attempts to remove something from the selection. ! * * @param paths not used here */ public void removeSelectionPaths(TreePath[] paths) *************** public class JTree extends JComponent im *** 1431,1437 **** public static final String ANCHOR_SELECTION_PATH_PROPERTY = "anchorSelectionPath"; ! /** @since 1.3 */ public static final String LEAD_SELECTION_PATH_PROPERTY = "leadSelectionPath"; /** @since 1.3 */ --- 1431,1437 ---- public static final String ANCHOR_SELECTION_PATH_PROPERTY = "anchorSelectionPath"; ! /** @since 1.3 */ public static final String LEAD_SELECTION_PATH_PROPERTY = "leadSelectionPath"; /** @since 1.3 */ *************** public class JTree extends JComponent im *** 1531,1537 **** /** * Creates a new JTree object. ! * * @param value the initial nodes in the tree */ public JTree(Hashtable value) --- 1531,1537 ---- /** * Creates a new JTree object. ! * * @param value the initial nodes in the tree */ public JTree(Hashtable value) *************** public class JTree extends JComponent im *** 1541,1547 **** /** * Creates a new JTree object. ! * * @param value the initial nodes in the tree */ public JTree(Object[] value) --- 1541,1547 ---- /** * Creates a new JTree object. ! * * @param value the initial nodes in the tree */ public JTree(Object[] value) *************** public class JTree extends JComponent im *** 1551,1564 **** /** * Creates a new JTree object. ! * * @param model the model to use */ public JTree(TreeModel model) { setRootVisible(true); setSelectionModel( new DefaultTreeSelectionModel() ); ! // The root node appears expanded by default. nodeStates = new Hashtable(); --- 1551,1564 ---- /** * Creates a new JTree object. ! * * @param model the model to use */ public JTree(TreeModel model) { setRootVisible(true); setSelectionModel( new DefaultTreeSelectionModel() ); ! // The root node appears expanded by default. nodeStates = new Hashtable(); *************** public class JTree extends JComponent im *** 1575,1581 **** /** * Creates a new JTree object. ! * * @param root the root node */ public JTree(TreeNode root) --- 1575,1581 ---- /** * Creates a new JTree object. ! * * @param root the root node */ public JTree(TreeNode root) *************** public class JTree extends JComponent im *** 1585,1591 **** /** * Creates a new JTree object. ! * * @param root the root node * @param asksAllowChildren if false, all nodes without children are leaf * nodes. If true, only nodes that do not allow children are leaf --- 1585,1591 ---- /** * Creates a new JTree object. ! * * @param root the root node * @param asksAllowChildren if false, all nodes without children are leaf * nodes. If true, only nodes that do not allow children are leaf *************** public class JTree extends JComponent im *** 1598,1604 **** /** * Creates a new JTree object. ! * * @param value the initial nodes in the tree */ public JTree(Vector value) --- 1598,1604 ---- /** * Creates a new JTree object. ! * * @param value the initial nodes in the tree */ public JTree(Vector value) *************** public class JTree extends JComponent im *** 1621,1633 **** TreeUI ui = getUI(); return ui != null ? ui.getPathForRow(this, row) : null; } ! /** * Get the pathes that are displayes between the two given rows. ! * * @param index0 the starting row, inclusive * @param index1 the ending row, inclusive ! * * @return the array of the tree pathes */ protected TreePath[] getPathBetweenRows(int index0, int index1) --- 1621,1633 ---- TreeUI ui = getUI(); return ui != null ? ui.getPathForRow(this, row) : null; } ! /** * Get the pathes that are displayes between the two given rows. ! * * @param index0 the starting row, inclusive * @param index1 the ending row, inclusive ! * * @return the array of the tree pathes */ protected TreePath[] getPathBetweenRows(int index0, int index1) *************** public class JTree extends JComponent im *** 1649,1655 **** /** * Creates a new TreeModel object. ! * * @param value the values stored in the model */ protected static TreeModel createTreeModel(Object value) --- 1649,1655 ---- /** * Creates a new TreeModel object. ! * * @param value the values stored in the model */ protected static TreeModel createTreeModel(Object value) *************** public class JTree extends JComponent im *** 1659,1665 **** /** * Return the UI associated with this JTree object. ! * * @return the associated TreeUI object */ public TreeUI getUI() --- 1659,1665 ---- /** * Return the UI associated with this JTree object. ! * * @return the associated TreeUI object */ public TreeUI getUI() *************** public class JTree extends JComponent im *** 1669,1675 **** /** * Sets the UI associated with this JTree object. ! * * @param ui the TreeUI to associate */ public void setUI(TreeUI ui) --- 1669,1675 ---- /** * Sets the UI associated with this JTree object. ! * * @param ui the TreeUI to associate */ public void setUI(TreeUI ui) *************** public class JTree extends JComponent im *** 1687,1693 **** /** * This method returns the String ID of the UI class of Separator. ! * * @return The UI class' String ID. */ public String getUIClassID() --- 1687,1693 ---- /** * This method returns the String ID of the UI class of Separator. ! * * @return The UI class' String ID. */ public String getUIClassID() *************** public class JTree extends JComponent im *** 1698,1704 **** /** * Gets the AccessibleContext associated with this * JTree. ! * * @return the associated context */ public AccessibleContext getAccessibleContext() --- 1698,1704 ---- /** * Gets the AccessibleContext associated with this * JTree. ! * * @return the associated context */ public AccessibleContext getAccessibleContext() *************** public class JTree extends JComponent im *** 1708,1726 **** /** * Returns the preferred viewport size. ! * * @return the preferred size */ public Dimension getPreferredScrollableViewportSize() { return getPreferredSize(); } ! /** * Return the preferred scrolling amount (in pixels) for the given scrolling * direction and orientation. This method handles a partially exposed row by * returning the distance required to completely expose the item. ! * * @param visibleRect the currently visible part of the component. * @param orientation the scrolling orientation * @param direction the scrolling direction (negative - up, positive -down). --- 1708,1726 ---- /** * Returns the preferred viewport size. ! * * @return the preferred size */ public Dimension getPreferredScrollableViewportSize() { return getPreferredSize(); } ! /** * Return the preferred scrolling amount (in pixels) for the given scrolling * direction and orientation. This method handles a partially exposed row by * returning the distance required to completely expose the item. ! * * @param visibleRect the currently visible part of the component. * @param orientation the scrolling orientation * @param direction the scrolling direction (negative - up, positive -down). *************** public class JTree extends JComponent im *** 1796,1802 **** /** * Adds a TreeExpansionListener object to the tree. ! * * @param listener the listener to add */ public void addTreeExpansionListener(TreeExpansionListener listener) --- 1796,1802 ---- /** * Adds a TreeExpansionListener object to the tree. ! * * @param listener the listener to add */ public void addTreeExpansionListener(TreeExpansionListener listener) *************** public class JTree extends JComponent im *** 1806,1812 **** /** * Removes a TreeExpansionListener object from the tree. ! * * @param listener the listener to remove */ public void removeTreeExpansionListener(TreeExpansionListener listener) --- 1806,1812 ---- /** * Removes a TreeExpansionListener object from the tree. ! * * @param listener the listener to remove */ public void removeTreeExpansionListener(TreeExpansionListener listener) *************** public class JTree extends JComponent im *** 1816,1822 **** /** * Returns all added TreeExpansionListener objects. ! * * @return an array of listeners */ public TreeExpansionListener[] getTreeExpansionListeners() --- 1816,1822 ---- /** * Returns all added TreeExpansionListener objects. ! * * @return an array of listeners */ public TreeExpansionListener[] getTreeExpansionListeners() *************** public class JTree extends JComponent im *** 1826,1832 **** /** * Notifies all listeners that the tree was collapsed. ! * * @param path the path to the node that was collapsed */ public void fireTreeCollapsed(TreePath path) --- 1826,1832 ---- /** * Notifies all listeners that the tree was collapsed. ! * * @param path the path to the node that was collapsed */ public void fireTreeCollapsed(TreePath path) *************** public class JTree extends JComponent im *** 1840,1846 **** /** * Notifies all listeners that the tree was expanded. ! * * @param path the path to the node that was expanded */ public void fireTreeExpanded(TreePath path) --- 1840,1846 ---- /** * Notifies all listeners that the tree was expanded. ! * * @param path the path to the node that was expanded */ public void fireTreeExpanded(TreePath path) *************** public class JTree extends JComponent im *** 1854,1860 **** /** * Adds a TreeSelctionListener object to the tree. ! * * @param listener the listener to add */ public void addTreeSelectionListener(TreeSelectionListener listener) --- 1854,1860 ---- /** * Adds a TreeSelctionListener object to the tree. ! * * @param listener the listener to add */ public void addTreeSelectionListener(TreeSelectionListener listener) *************** public class JTree extends JComponent im *** 1864,1870 **** /** * Removes a TreeSelectionListener object from the tree. ! * * @param listener the listener to remove */ public void removeTreeSelectionListener(TreeSelectionListener listener) --- 1864,1870 ---- /** * Removes a TreeSelectionListener object from the tree. ! * * @param listener the listener to remove */ public void removeTreeSelectionListener(TreeSelectionListener listener) *************** public class JTree extends JComponent im *** 1874,1891 **** /** * Returns all added TreeSelectionListener objects. ! * * @return an array of listeners */ public TreeSelectionListener[] getTreeSelectionListeners() { ! return (TreeSelectionListener[]) getListeners(TreeSelectionListener.class); } /** * Notifies all listeners when the selection of the tree changed. ! * * @param event the event to send */ protected void fireValueChanged(TreeSelectionEvent event) --- 1874,1891 ---- /** * Returns all added TreeSelectionListener objects. ! * * @return an array of listeners */ public TreeSelectionListener[] getTreeSelectionListeners() { ! return (TreeSelectionListener[]) getListeners(TreeSelectionListener.class); } /** * Notifies all listeners when the selection of the tree changed. ! * * @param event the event to send */ protected void fireValueChanged(TreeSelectionEvent event) *************** public class JTree extends JComponent im *** 1898,1904 **** /** * Adds a TreeWillExpandListener object to the tree. ! * * @param listener the listener to add */ public void addTreeWillExpandListener(TreeWillExpandListener listener) --- 1898,1904 ---- /** * Adds a TreeWillExpandListener object to the tree. ! * * @param listener the listener to add */ public void addTreeWillExpandListener(TreeWillExpandListener listener) *************** public class JTree extends JComponent im *** 1908,1914 **** /** * Removes a TreeWillExpandListener object from the tree. ! * * @param listener the listener to remove */ public void removeTreeWillExpandListener(TreeWillExpandListener listener) --- 1908,1914 ---- /** * Removes a TreeWillExpandListener object from the tree. ! * * @param listener the listener to remove */ public void removeTreeWillExpandListener(TreeWillExpandListener listener) *************** public class JTree extends JComponent im *** 1918,1935 **** /** * Returns all added TreeWillExpandListener objects. ! * * @return an array of listeners */ public TreeWillExpandListener[] getTreeWillExpandListeners() { ! return (TreeWillExpandListener[]) getListeners(TreeWillExpandListener.class); } /** * Notifies all listeners that the tree will collapse. ! * * @param path the path to the node that will collapse */ public void fireTreeWillCollapse(TreePath path) throws ExpandVetoException --- 1918,1935 ---- /** * Returns all added TreeWillExpandListener objects. ! * * @return an array of listeners */ public TreeWillExpandListener[] getTreeWillExpandListeners() { ! return (TreeWillExpandListener[]) getListeners(TreeWillExpandListener.class); } /** * Notifies all listeners that the tree will collapse. ! * * @param path the path to the node that will collapse */ public void fireTreeWillCollapse(TreePath path) throws ExpandVetoException *************** public class JTree extends JComponent im *** 1943,1949 **** /** * Notifies all listeners that the tree will expand. ! * * @param path the path to the node that will expand */ public void fireTreeWillExpand(TreePath path) throws ExpandVetoException --- 1943,1949 ---- /** * Notifies all listeners that the tree will expand. ! * * @param path the path to the node that will expand */ public void fireTreeWillExpand(TreePath path) throws ExpandVetoException *************** public class JTree extends JComponent im *** 1957,1963 **** /** * Returns the model of this JTree object. ! * * @return the associated TreeModel */ public TreeModel getModel() --- 1957,1963 ---- /** * Returns the model of this JTree object. ! * * @return the associated TreeModel */ public TreeModel getModel() *************** public class JTree extends JComponent im *** 1967,1973 **** /** * Sets the model to use in JTree. ! * * @param model the TreeModel to use */ public void setModel(TreeModel model) --- 1967,1973 ---- /** * Sets the model to use in JTree. ! * * @param model the TreeModel to use */ public void setModel(TreeModel model) *************** public class JTree extends JComponent im *** 2007,2013 **** /** * Checks if this JTree object is editable. ! * * @return true if this tree object is editable, * false otherwise */ --- 2007,2013 ---- /** * Checks if this JTree object is editable. ! * * @return true if this tree object is editable, * false otherwise */ *************** public class JTree extends JComponent im *** 2018,2024 **** /** * Sets the editable property. ! * * @param flag true to make this tree object editable, * false otherwise */ --- 2018,2024 ---- /** * Sets the editable property. ! * * @param flag true to make this tree object editable, * false otherwise */ *************** public class JTree extends JComponent im *** 2034,2040 **** /** * Checks if the root element is visible. ! * * @return true if the root element is visible, * false otherwise */ --- 2034,2040 ---- /** * Checks if the root element is visible. ! * * @return true if the root element is visible, * false otherwise */ *************** public class JTree extends JComponent im *** 2056,2066 **** TreePath rootPath = getPathForRow(0); model.removeSelectionPath(rootPath); } ! boolean oldValue = rootVisible; rootVisible = flag; firePropertyChange(ROOT_VISIBLE_PROPERTY, oldValue, flag); ! } public boolean getShowsRootHandles() --- 2056,2066 ---- TreePath rootPath = getPathForRow(0); model.removeSelectionPath(rootPath); } ! boolean oldValue = rootVisible; rootVisible = flag; firePropertyChange(ROOT_VISIBLE_PROPERTY, oldValue, flag); ! } public boolean getShowsRootHandles() *************** public class JTree extends JComponent im *** 2074,2080 **** if (showsRootHandles == flag) return; ! boolean oldValue = showsRootHandles; showsRootHandles = flag; firePropertyChange(SHOWS_ROOT_HANDLES_PROPERTY, oldValue, flag); --- 2074,2080 ---- if (showsRootHandles == flag) return; ! boolean oldValue = showsRootHandles; showsRootHandles = flag; firePropertyChange(SHOWS_ROOT_HANDLES_PROPERTY, oldValue, flag); *************** public class JTree extends JComponent im *** 2200,2206 **** boolean oldValue = invokesStopCellEditing; invokesStopCellEditing = invoke; ! firePropertyChange(INVOKES_STOP_CELL_EDITING_PROPERTY, oldValue, invoke); } --- 2200,2206 ---- boolean oldValue = invokesStopCellEditing; invokesStopCellEditing = invoke; ! firePropertyChange(INVOKES_STOP_CELL_EDITING_PROPERTY, oldValue, invoke); } *************** public class JTree extends JComponent im *** 2265,2275 **** clearSelectionPathStates(); selectionModel.setSelectionPaths(paths); } ! /** * This method, and all calls to it, should be removed once the * DefaultTreeModel fires events properly. Maintenance of the nodeStates ! * table should really be done in the TreeModelHandler. */ private void clearSelectionPathStates() { --- 2265,2275 ---- clearSelectionPathStates(); selectionModel.setSelectionPaths(paths); } ! /** * This method, and all calls to it, should be removed once the * DefaultTreeModel fires events properly. Maintenance of the nodeStates ! * table should really be done in the TreeModelHandler. */ private void clearSelectionPathStates() { *************** public class JTree extends JComponent im *** 2340,2351 **** addSelectionPaths(paths); } ! /** * Select all rows between the two given indexes, inclusive. The method * will not select the inner leaves and braches of the currently collapsed * nodes in this interval. ! * * @param index0 the starting row, inclusive * @param index1 the ending row, inclusive */ --- 2340,2351 ---- addSelectionPaths(paths); } ! /** * Select all rows between the two given indexes, inclusive. The method * will not select the inner leaves and braches of the currently collapsed * nodes in this interval. ! * * @param index0 the starting row, inclusive * @param index1 the ending row, inclusive */ *************** public class JTree extends JComponent im *** 2422,2438 **** TreePath oldValue = selectionModel.getLeadSelectionPath(); if (path == oldValue || path != null && path.equals(oldValue)) return; ! // Repaint the previous and current rows with the lead selection path. if (path != null) { repaint(getPathBounds(path)); selectionModel.addSelectionPath(path); } ! if (oldValue != null) repaint(getPathBounds(oldValue)); ! firePropertyChange(LEAD_SELECTION_PATH_PROPERTY, oldValue, path); } } --- 2422,2438 ---- TreePath oldValue = selectionModel.getLeadSelectionPath(); if (path == oldValue || path != null && path.equals(oldValue)) return; ! // Repaint the previous and current rows with the lead selection path. if (path != null) { repaint(getPathBounds(path)); selectionModel.addSelectionPath(path); } ! if (oldValue != null) repaint(getPathBounds(oldValue)); ! firePropertyChange(LEAD_SELECTION_PATH_PROPERTY, oldValue, path); } } *************** public class JTree extends JComponent im *** 2520,2528 **** /** * Return the value of the dragEnabled property. ! * * @return the value ! * * @since 1.4 */ public boolean getDragEnabled() --- 2520,2528 ---- /** * Return the value of the dragEnabled property. ! * * @return the value ! * * @since 1.4 */ public boolean getDragEnabled() *************** public class JTree extends JComponent im *** 2532,2540 **** /** * Set the dragEnabled property. ! * * @param enabled new value ! * * @since 1.4 */ public void setDragEnabled(boolean enabled) --- 2532,2540 ---- /** * Set the dragEnabled property. ! * * @param enabled new value ! * * @since 1.4 */ public void setDragEnabled(boolean enabled) *************** public class JTree extends JComponent im *** 2722,2728 **** public void cancelEditing() { TreeUI ui = getUI(); ! if (isEditing()) if (ui != null) ui.cancelEditing(this); --- 2722,2728 ---- public void cancelEditing() { TreeUI ui = getUI(); ! if (isEditing()) if (ui != null) ui.cancelEditing(this); *************** public class JTree extends JComponent im *** 2803,2813 **** private void doExpandParents(TreePath path, boolean state) { ! TreePath parent = path.getParentPath(); if (!isExpanded(parent) && parent != null) doExpandParents(parent, false); ! nodeStates.put(path, state ? EXPANDED : COLLAPSED); } --- 2803,2813 ---- private void doExpandParents(TreePath path, boolean state) { ! TreePath parent = path.getParentPath(); if (!isExpanded(parent) && parent != null) doExpandParents(parent, false); ! nodeStates.put(path, state ? EXPANDED : COLLAPSED); } *************** public class JTree extends JComponent im *** 2868,2874 **** { if (path == null) return; ! expandPath(path.getParentPath()); } --- 2868,2874 ---- { if (path == null) return; ! expandPath(path.getParentPath()); } *************** public class JTree extends JComponent im *** 2879,2885 **** /** * Creates and returns an instance of {@link TreeModelHandler}. ! * * @return an instance of {@link TreeModelHandler} */ protected TreeModelListener createTreeModelListener() --- 2879,2885 ---- /** * Creates and returns an instance of {@link TreeModelHandler}. ! * * @return an instance of {@link TreeModelHandler} */ protected TreeModelListener createTreeModelListener() *************** public class JTree extends JComponent im *** 2890,2896 **** /** * Returns a sample TreeModel that can be used in a JTree. This can be used * in Bean- or GUI-Builders to show something interesting. ! * * @return a sample TreeModel that can be used in a JTree */ protected static TreeModel getDefaultTreeModel() --- 2890,2896 ---- /** * Returns a sample TreeModel that can be used in a JTree. This can be used * in Bean- or GUI-Builders to show something interesting. ! * * @return a sample TreeModel that can be used in a JTree */ protected static TreeModel getDefaultTreeModel() *************** public class JTree extends JComponent im *** 2930,2940 **** /** * Converts the specified value to a String. This is used by the renderers * of this JTree and its nodes. ! * * This implementation simply returns value.toString() and * ignores all other parameters. Subclass this method to control the * conversion. ! * * @param value the value that is converted to a String * @param selected indicates if that value is selected or not * @param expanded indicates if that value is expanded or not --- 2930,2940 ---- /** * Converts the specified value to a String. This is used by the renderers * of this JTree and its nodes. ! * * This implementation simply returns value.toString() and * ignores all other parameters. Subclass this method to control the * conversion. ! * * @param value the value that is converted to a String * @param selected indicates if that value is selected or not * @param expanded indicates if that value is expanded or not *************** public class JTree extends JComponent im *** 2952,2958 **** * A String representation of this JTree. This is intended to be used for * debugging. The returned string may be empty but may not be * null. ! * * @return a String representation of this JTree */ protected String paramString() --- 2952,2958 ---- * A String representation of this JTree. This is intended to be used for * debugging. The returned string may be empty but may not be * null. ! * * @return a String representation of this JTree */ protected String paramString() *************** public class JTree extends JComponent im *** 2968,2974 **** * and are exapanded at the moment of the execution of this method. If the * state of any node is beeing toggled while this method is executing this * change may be left unaccounted. ! * * @param path The parent of this request * * @return An Enumeration containing TreePath objects --- 2968,2974 ---- * and are exapanded at the moment of the execution of this method. If the * state of any node is beeing toggled while this method is executing this * change may be left unaccounted. ! * * @param path The parent of this request * * @return An Enumeration containing TreePath objects *************** public class JTree extends JComponent im *** 2993,3010 **** * Returns the next table element (beginning from the row * startingRow that starts with prefix. * Searching is done in the direction specified by bias. ! * * @param prefix the prefix to search for in the cell values * @param startingRow the index of the row where to start searching from * @param bias the search direction, either {@link Position.Bias#Forward} or * {@link Position.Bias#Backward} ! * * @return the path to the found element or -1 if no such element has been * found ! * * @throws IllegalArgumentException if prefix is null or * startingRow is not valid ! * * @since 1.4 */ public TreePath getNextMatch(String prefix, int startingRow, --- 2993,3010 ---- * Returns the next table element (beginning from the row * startingRow that starts with prefix. * Searching is done in the direction specified by bias. ! * * @param prefix the prefix to search for in the cell values * @param startingRow the index of the row where to start searching from * @param bias the search direction, either {@link Position.Bias#Forward} or * {@link Position.Bias#Backward} ! * * @return the path to the found element or -1 if no such element has been * found ! * * @throws IllegalArgumentException if prefix is null or * startingRow is not valid ! * * @since 1.4 */ public TreePath getNextMatch(String prefix, int startingRow, *************** public class JTree extends JComponent im *** 3067,3080 **** * descendants of path. If includePath is set * to true and path itself is selected, then * it will be removed too. ! * * @param path the path from which selected descendants are to be removed * @param includeSelected if true then path itself * will also be remove if it's selected ! * * @return true if something has been removed, * false otherwise ! * * @since 1.3 */ protected boolean removeDescendantSelectedPaths(TreePath path, --- 3067,3080 ---- * descendants of path. If includePath is set * to true and path itself is selected, then * it will be removed too. ! * * @param path the path from which selected descendants are to be removed * @param includeSelected if true then path itself * will also be remove if it's selected ! * * @return true if something has been removed, * false otherwise ! * * @since 1.3 */ protected boolean removeDescendantSelectedPaths(TreePath path, *************** public class JTree extends JComponent im *** 3093,3103 **** } return removedSomething; } ! /** ! * Removes any descendants of the TreePaths in toRemove that have been * expanded. ! * * @param toRemove - Enumeration of TreePaths that need to be removed from * cache of toggled tree paths. */ --- 3093,3103 ---- } return removedSomething; } ! /** ! * Removes any descendants of the TreePaths in toRemove that have been * expanded. ! * * @param toRemove - Enumeration of TreePaths that need to be removed from * cache of toggled tree paths. */ *************** public class JTree extends JComponent im *** 3107,3113 **** { TreePath current = toRemove.nextElement(); Enumeration descendants = getDescendantToggledPaths(current); ! while (descendants.hasMoreElements()) { TreePath currentDes = (TreePath) descendants.nextElement(); --- 3107,3113 ---- { TreePath current = toRemove.nextElement(); Enumeration descendants = getDescendantToggledPaths(current); ! while (descendants.hasMoreElements()) { TreePath currentDes = (TreePath) descendants.nextElement(); *************** public class JTree extends JComponent im *** 3130,3136 **** * {@link DefaultTreeModel#reload()} after adding or removing nodes. Following * the official Java 1.5 API standard, just calling treeDidChange, repaint() * or revalidate() does not update the tree appearance properly. ! * * @see DefaultTreeModel#reload() */ public void treeDidChange() --- 3130,3136 ---- * {@link DefaultTreeModel#reload()} after adding or removing nodes. Following * the official Java 1.5 API standard, just calling treeDidChange, repaint() * or revalidate() does not update the tree appearance properly. ! * * @see DefaultTreeModel#reload() */ public void treeDidChange() *************** public class JTree extends JComponent im *** 3141,3147 **** /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * --- 3141,3147 ---- /** * Helper method for * {@link LookAndFeel#installProperty(JComponent, String, Object)}. ! * * @param propertyName the name of the property * @param value the value of the property * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JViewport.java gcc-4.6.0/libjava/classpath/javax/swing/JViewport.java *** gcc-4.5.2/libjava/classpath/javax/swing/JViewport.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JViewport.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* JViewport.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* JViewport.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.swing.event.ChangeListener; *** 62,68 **** import javax.swing.plaf.ViewportUI; /** ! * *
                                               *                                                     _
                                               *   +-------------------------------+    ...........Y1 \
                                            --- 62,68 ----
                                              import javax.swing.plaf.ViewportUI;
                                              
                                              /**
                                            !  *
                                               * 
                                               *                                                     _
                                               *   +-------------------------------+    ...........Y1 \
                                            *************** import javax.swing.plaf.ViewportUI;
                                            *** 89,95 ****
                                               *        \/
                                               *        VX = X2-X1
                                               *
                                            ! * *

                                            A viewport is, like all swing components, located at some position in * the swing component tree; that location is exactly the same as any other * components: the viewport's "bounds".

                                            --- 89,95 ---- * \/ * VX = X2-X1 *
                                            ! * *

                                            A viewport is, like all swing components, located at some position in * the swing component tree; that location is exactly the same as any other * components: the viewport's "bounds".

                                            *************** public class JViewport extends JComponen *** 226,232 **** /** * Stores the bounds of the area that needs to be repainted. This is a cached ! * Rectangle object used in blitting calculations. */ Rectangle cachedBlitPaint; --- 226,232 ---- /** * Stores the bounds of the area that needs to be repainted. This is a cached ! * Rectangle object used in blitting calculations. */ Rectangle cachedBlitPaint; *************** public class JViewport extends JComponen *** 308,321 **** */ public Dimension getViewSize() { ! Dimension size; Component view = getView(); if (view != null) { if (isViewSizeSet) size = view.getSize(); else ! size = view.getPreferredSize(); } else size = new Dimension(0, 0); --- 308,321 ---- */ public Dimension getViewSize() { ! Dimension size; Component view = getView(); if (view != null) { if (isViewSizeSet) size = view.getSize(); else ! size = view.getPreferredSize(); } else size = new Dimension(0, 0); *************** public class JViewport extends JComponen *** 409,415 **** { if (getComponentCount() == 0) return null; ! return getComponents()[0]; } --- 409,415 ---- { if (getComponentCount() == 0) return null; ! return getComponents()[0]; } *************** public class JViewport extends JComponen *** 458,464 **** insets.right = 0; return insets; } ! /** * Overridden to return false, so the JViewport's paint method --- 458,464 ---- insets.right = 0; return insets; } ! /** * Overridden to return false, so the JViewport's paint method *************** public class JViewport extends JComponen *** 482,488 **** Rectangle viewBounds = view.getBounds(); Rectangle portBounds = getBounds(); ! if (viewBounds.width == 0 || viewBounds.height == 0 || portBounds.width == 0 || portBounds.height == 0) --- 482,488 ---- Rectangle viewBounds = view.getBounds(); Rectangle portBounds = getBounds(); ! if (viewBounds.width == 0 || viewBounds.height == 0 || portBounds.width == 0 || portBounds.height == 0) *************** public class JViewport extends JComponen *** 515,521 **** listenerList.remove(ChangeListener.class, listener); } ! public ChangeListener[] getChangeListeners() { return (ChangeListener[]) getListeners(ChangeListener.class); } --- 515,521 ---- listenerList.remove(ChangeListener.class, listener); } ! public ChangeListener[] getChangeListeners() { return (ChangeListener[]) getListeners(ChangeListener.class); } *************** public class JViewport extends JComponen *** 536,542 **** public void updateUI() { setUI((ViewportUI) UIManager.getUI(this)); ! } /** * This method returns the viewport's UI delegate. --- 536,542 ---- public void updateUI() { setUI((ViewportUI) UIManager.getUI(this)); ! } /** * This method returns the viewport's UI delegate. *************** public class JViewport extends JComponen *** 573,579 **** { Component view = getView(); if (view == null) ! return; Point pos = getViewPosition(); // We get the contentRect in the viewport coordinates. But we want to --- 573,579 ---- { Component view = getView(); if (view == null) ! return; Point pos = getViewPosition(); // We get the contentRect in the viewport coordinates. But we want to *************** public class JViewport extends JComponen *** 582,588 **** int contentY = contentRect.y + pos.y; Rectangle viewBounds = getView().getBounds(); Rectangle portBounds = getBounds(); ! if (isShowing()) getView().validate(); --- 582,588 ---- int contentY = contentRect.y + pos.y; Rectangle viewBounds = getView().getBounds(); Rectangle portBounds = getBounds(); ! if (isShowing()) getView().validate(); *************** public class JViewport extends JComponen *** 641,647 **** { if (getComponentCount() > 0) remove(getComponents()[0]); ! super.addImpl(comp, constraints, index); } --- 641,647 ---- { if (getComponentCount() > 0) remove(getComponents()[0]); ! super.addImpl(comp, constraints, index); } *************** public class JViewport extends JComponen *** 796,802 **** g.translate(-pos.x, -pos.y); translated = true; view.paint(g); ! } finally { if (translated) --- 796,802 ---- g.translate(-pos.x, -pos.y); translated = true; view.paint(g); ! } finally { if (translated) *************** public class JViewport extends JComponen *** 861,867 **** // clip must be updated in the buffer. if (dx == 0 && dy == 0) g2.setClip(g.getClip()); ! paintSimple(g2); } g2.dispose(); --- 861,867 ---- // clip must be updated in the buffer. if (dx == 0 && dy == 0) g2.setClip(g.getClip()); ! paintSimple(g2); } g2.dispose(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/JWindow.java gcc-4.6.0/libjava/classpath/javax/swing/JWindow.java *** gcc-4.5.2/libjava/classpath/javax/swing/JWindow.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/JWindow.java Tue Jan 11 19:46:05 2011 *************** public class JWindow extends Window impl *** 77,83 **** } private static final long serialVersionUID = 5420698392125238833L; ! protected JRootPane rootPane; /** --- 77,83 ---- } private static final long serialVersionUID = 5420698392125238833L; ! protected JRootPane rootPane; /** diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/KeyStroke.java gcc-4.6.0/libjava/classpath/javax/swing/KeyStroke.java *** gcc-4.5.2/libjava/classpath/javax/swing/KeyStroke.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/KeyStroke.java Tue Jan 11 19:46:05 2011 *************** import java.awt.AWTKeyStroke; *** 42,59 **** import java.awt.event.KeyEvent; import java.io.Serializable; ! public class KeyStroke extends AWTKeyStroke implements Serializable { private static final long serialVersionUID = -9060180771037902530L; ! // Called by java.awt.AWTKeyStroke.registerSubclass via reflection. private KeyStroke() { // Nothing to do here. } ! private KeyStroke(char keyChar, int keyCode, int modifiers, boolean onKeyRelease) { --- 42,59 ---- import java.awt.event.KeyEvent; import java.io.Serializable; ! public class KeyStroke extends AWTKeyStroke implements Serializable { private static final long serialVersionUID = -9060180771037902530L; ! // Called by java.awt.AWTKeyStroke.registerSubclass via reflection. private KeyStroke() { // Nothing to do here. } ! private KeyStroke(char keyChar, int keyCode, int modifiers, boolean onKeyRelease) { *************** public class KeyStroke *** 65,98 **** AWTKeyStroke.registerSubclass(KeyStroke.class); } ! public static KeyStroke getKeyStroke(char keyChar) { return (KeyStroke) getAWTKeyStroke(keyChar); } ! /** * @deprecated Use {@link #getKeyStroke(char)} * * This method, unlike all the other factory methods on this object, * returns a non-cached, non-shared object. New code should not use it. */ ! public static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease) { return new KeyStroke(keyChar, KeyEvent.VK_UNDEFINED, 0, onKeyRelease); } ! public static KeyStroke getKeyStroke(Character keyChar, int modifiers) { return (KeyStroke) getAWTKeyStroke(keyChar, modifiers); } ! public static KeyStroke getKeyStroke(int keyCode, int modifiers, ! boolean onKeyRelease) { return (KeyStroke) getAWTKeyStroke(keyCode, modifiers, onKeyRelease); } ! public static KeyStroke getKeyStroke(int keyCode, int modifiers) { return (KeyStroke) getAWTKeyStroke(keyCode, modifiers); } --- 65,98 ---- AWTKeyStroke.registerSubclass(KeyStroke.class); } ! public static KeyStroke getKeyStroke(char keyChar) { return (KeyStroke) getAWTKeyStroke(keyChar); } ! /** * @deprecated Use {@link #getKeyStroke(char)} * * This method, unlike all the other factory methods on this object, * returns a non-cached, non-shared object. New code should not use it. */ ! public static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease) { return new KeyStroke(keyChar, KeyEvent.VK_UNDEFINED, 0, onKeyRelease); } ! public static KeyStroke getKeyStroke(Character keyChar, int modifiers) { return (KeyStroke) getAWTKeyStroke(keyChar, modifiers); } ! public static KeyStroke getKeyStroke(int keyCode, int modifiers, ! boolean onKeyRelease) { return (KeyStroke) getAWTKeyStroke(keyCode, modifiers, onKeyRelease); } ! public static KeyStroke getKeyStroke(int keyCode, int modifiers) { return (KeyStroke) getAWTKeyStroke(keyCode, modifiers); } *************** public class KeyStroke *** 103,121 **** * IllegalArugmentException when * the keystoke sequence cannot be parsed from the given string. */ ! public static KeyStroke getKeyStroke(String str) { try { ! return (KeyStroke) getAWTKeyStroke(str); } catch (IllegalArgumentException iae) { ! return null; } } ! public static KeyStroke getKeyStrokeForEvent(KeyEvent event) { return (KeyStroke) getAWTKeyStrokeForEvent(event); } --- 103,121 ---- * IllegalArugmentException when * the keystoke sequence cannot be parsed from the given string. */ ! public static KeyStroke getKeyStroke(String str) { try { ! return (KeyStroke) getAWTKeyStroke(str); } catch (IllegalArgumentException iae) { ! return null; } } ! public static KeyStroke getKeyStrokeForEvent(KeyEvent event) { return (KeyStroke) getAWTKeyStrokeForEvent(event); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/KeyboardManager.java gcc-4.6.0/libjava/classpath/javax/swing/KeyboardManager.java *** gcc-4.5.2/libjava/classpath/javax/swing/KeyboardManager.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/KeyboardManager.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* KeyboardManager.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* KeyboardManager.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Vector; *** 49,59 **** import java.util.WeakHashMap; /** ! * This class maintains a mapping from top-level containers to a ! * Hashtable. The Hashtable maps KeyStrokes to Components to be used when * Components register keyboard actions with the condition * JComponent.WHEN_IN_FOCUSED_WINDOW. ! * * @author Anthony Balkissoon abalkiss at redhat dot com * */ --- 49,59 ---- import java.util.WeakHashMap; /** ! * This class maintains a mapping from top-level containers to a ! * Hashtable. The Hashtable maps KeyStrokes to Components to be used when * Components register keyboard actions with the condition * JComponent.WHEN_IN_FOCUSED_WINDOW. ! * * @author Anthony Balkissoon abalkiss at redhat dot com * */ *************** class KeyboardManager *** 61,73 **** { /** Shared instance of KeyboardManager **/ static KeyboardManager manager = new KeyboardManager(); ! ! /** ! * A mapping between top level containers and Hashtables that * map KeyStrokes to Components. */ ! WeakHashMap topLevelLookup = new WeakHashMap(); ! /** * A mapping between top level containers and Vectors of JMenuBars * used to allow all the JMenuBars within a top level container --- 61,73 ---- { /** Shared instance of KeyboardManager **/ static KeyboardManager manager = new KeyboardManager(); ! ! /** ! * A mapping between top level containers and Hashtables that * map KeyStrokes to Components. */ ! WeakHashMap topLevelLookup = new WeakHashMap(); ! /** * A mapping between top level containers and Vectors of JMenuBars * used to allow all the JMenuBars within a top level container *************** class KeyboardManager *** 91,112 **** { Container topLevel = (c instanceof Container) ? (Container) c : c.getParent(); ! while (topLevel != null && ! !(topLevel instanceof Window) && ! !(topLevel instanceof Applet) && !(topLevel instanceof JInternalFrame)) topLevel = topLevel.getParent(); return topLevel; } ! /** ! * Returns the Hashtable that maps KeyStrokes to Components, for * the specified top-level container c. If no Hashtable exists * we create and register it here and return the newly created * Hashtable. ! * * @param c the top-level container whose Hashtable we want ! * @return the Hashtable mapping KeyStrokes to Components for the * specified top-level container */ Hashtable getHashtableForTopLevel (Container c) --- 91,112 ---- { Container topLevel = (c instanceof Container) ? (Container) c : c.getParent(); ! while (topLevel != null && ! !(topLevel instanceof Window) && ! !(topLevel instanceof Applet) && !(topLevel instanceof JInternalFrame)) topLevel = topLevel.getParent(); return topLevel; } ! /** ! * Returns the Hashtable that maps KeyStrokes to Components, for * the specified top-level container c. If no Hashtable exists * we create and register it here and return the newly created * Hashtable. ! * * @param c the top-level container whose Hashtable we want ! * @return the Hashtable mapping KeyStrokes to Components for the * specified top-level container */ Hashtable getHashtableForTopLevel (Container c) *************** class KeyboardManager *** 119,131 **** } return keyToComponent; } ! /** * Registers a KeyStroke with a Component. This does not register ! * the KeyStroke to a specific Action. When searching for a * WHEN_IN_FOCUSED_WINDOW binding we will first go up to the focused ! * top-level Container, then get the Hashtable that maps KeyStrokes ! * to components for that particular top-level Container, then * call processKeyBindings on that component with the condition * JComponent.WHEN_IN_FOCUSED_WINDOW. * @param comp the JComponent associated with the KeyStroke --- 119,131 ---- } return keyToComponent; } ! /** * Registers a KeyStroke with a Component. This does not register ! * the KeyStroke to a specific Action. When searching for a * WHEN_IN_FOCUSED_WINDOW binding we will first go up to the focused ! * top-level Container, then get the Hashtable that maps KeyStrokes ! * to components for that particular top-level Container, then * call processKeyBindings on that component with the condition * JComponent.WHEN_IN_FOCUSED_WINDOW. * @param comp the JComponent associated with the KeyStroke *************** class KeyboardManager *** 135,141 **** { // This method associates a KeyStroke with a particular JComponent // When the KeyStroke occurs, if this component's top-level ancestor ! // has focus (one of its children is the focused Component) then // comp.processKeyBindings will be called with condition // JComponent.WHEN_IN_FOCUSED_WINDOW. --- 135,141 ---- { // This method associates a KeyStroke with a particular JComponent // When the KeyStroke occurs, if this component's top-level ancestor ! // has focus (one of its children is the focused Component) then // comp.processKeyBindings will be called with condition // JComponent.WHEN_IN_FOCUSED_WINDOW. *************** class KeyboardManager *** 143,158 **** Container topLevel = findTopLevel(comp); if (topLevel == null) return; ! // Now get the Hashtable for this top-level container ! Hashtable keyToComponent = getHashtableForTopLevel(topLevel); ! // And add the new binding to this Hashtable // FIXME: should allow more than one JComponent to be associated // with a KeyStroke, in case one of them is disabled keyToComponent.put(key, comp); } ! public void clearBindingsForComp(JComponent comp) { // This method clears all the WHEN_IN_FOCUSED_WINDOW bindings associated --- 143,158 ---- Container topLevel = findTopLevel(comp); if (topLevel == null) return; ! // Now get the Hashtable for this top-level container ! Hashtable keyToComponent = getHashtableForTopLevel(topLevel); ! // And add the new binding to this Hashtable // FIXME: should allow more than one JComponent to be associated // with a KeyStroke, in case one of them is disabled keyToComponent.put(key, comp); } ! public void clearBindingsForComp(JComponent comp) { // This method clears all the WHEN_IN_FOCUSED_WINDOW bindings associated *************** class KeyboardManager *** 162,170 **** // bindings from the updated ComponentInputMap. This is only a preliminary // strategy and should be improved upon once the WHEN_IN_FOCUSED_WINDOW // bindings work. ! // Find the top-level ancestor ! Container topLevel = findTopLevel(comp); if (topLevel == null) return; --- 162,170 ---- // bindings from the updated ComponentInputMap. This is only a preliminary // strategy and should be improved upon once the WHEN_IN_FOCUSED_WINDOW // bindings work. ! // Find the top-level ancestor ! Container topLevel = findTopLevel(comp); if (topLevel == null) return; *************** class KeyboardManager *** 179,200 **** { temp = keys.nextElement(); if (comp == (JComponent)keyToComponent.get(temp)) ! keyToComponent.remove(temp); } } ! /** * This method registers all the bindings in the given ComponentInputMap. * Rather than call registerBinding on all the keys, we do the work here ! * so that we don't duplicate finding the top-level container and * getting its Hashtable. ! * * @param map the ComponentInputMap whose bindings we want to register */ public void registerEntireMap (ComponentInputMap map) { if (map == null) ! return; JComponent comp = map.getComponent(); KeyStroke[] keys = map.allKeys(); if (keys == null) --- 179,200 ---- { temp = keys.nextElement(); if (comp == (JComponent)keyToComponent.get(temp)) ! keyToComponent.remove(temp); } } ! /** * This method registers all the bindings in the given ComponentInputMap. * Rather than call registerBinding on all the keys, we do the work here ! * so that we don't duplicate finding the top-level container and * getting its Hashtable. ! * * @param map the ComponentInputMap whose bindings we want to register */ public void registerEntireMap (ComponentInputMap map) { if (map == null) ! return; JComponent comp = map.getComponent(); KeyStroke[] keys = map.allKeys(); if (keys == null) *************** class KeyboardManager *** 203,215 **** Container topLevel = findTopLevel(comp); if (topLevel == null) return; ! // Register the KeyStrokes in the top-level container's Hashtable Hashtable keyToComponent = getHashtableForTopLevel(topLevel); for (int i = 0; i < keys.length; i++) keyToComponent.put(keys[i], comp); } ! public boolean processKeyStroke (Component comp, KeyStroke key, KeyEvent e) { boolean pressed = e.getID() == KeyEvent.KEY_PRESSED; --- 203,215 ---- Container topLevel = findTopLevel(comp); if (topLevel == null) return; ! // Register the KeyStrokes in the top-level container's Hashtable Hashtable keyToComponent = getHashtableForTopLevel(topLevel); for (int i = 0; i < keys.length; i++) keyToComponent.put(keys[i], comp); } ! public boolean processKeyStroke (Component comp, KeyStroke key, KeyEvent e) { boolean pressed = e.getID() == KeyEvent.KEY_PRESSED; *************** class KeyboardManager *** 217,231 **** // Look for the top-level ancestor Container topLevel = findTopLevel(comp); if (topLevel == null) ! return false; // Now get the Hashtable for that top-level container Hashtable keyToComponent = getHashtableForTopLevel(topLevel); Enumeration keys = keyToComponent.keys(); ! JComponent target = (JComponent)keyToComponent.get(key); if (target != null && target.processKeyBinding (key, e, JComponent.WHEN_IN_FOCUSED_WINDOW, pressed)) return true; ! // Have to give all the JMenuBars a chance to consume the event Vector menuBars = getVectorForTopLevel(topLevel); for (int i = 0; i < menuBars.size(); i++) --- 217,231 ---- // Look for the top-level ancestor Container topLevel = findTopLevel(comp); if (topLevel == null) ! return false; // Now get the Hashtable for that top-level container Hashtable keyToComponent = getHashtableForTopLevel(topLevel); Enumeration keys = keyToComponent.keys(); ! JComponent target = (JComponent)keyToComponent.get(key); if (target != null && target.processKeyBinding (key, e, JComponent.WHEN_IN_FOCUSED_WINDOW, pressed)) return true; ! // Have to give all the JMenuBars a chance to consume the event Vector menuBars = getVectorForTopLevel(topLevel); for (int i = 0; i < menuBars.size(); i++) *************** class KeyboardManager *** 233,239 **** return true; return false; } ! /** * Returns the Vector of JMenuBars associated with the top-level * @param c the top-level container whose JMenuBar Vector we want --- 233,239 ---- return true; return false; } ! /** * Returns the Vector of JMenuBars associated with the top-level * @param c the top-level container whose JMenuBar Vector we want *************** class KeyboardManager *** 249,259 **** } return result; } ! /** ! * In processKeyStroke, KeyManager must give all JMenuBars in the ! * focused top-level container a chance to process the event. So, ! * JMenuBars must be registered in KeyManager and associated with a * top-level container. That's what this method is for. * @param menuBar the JMenuBar to register */ --- 249,259 ---- } return result; } ! /** ! * In processKeyStroke, KeyManager must give all JMenuBars in the ! * focused top-level container a chance to process the event. So, ! * JMenuBars must be registered in KeyManager and associated with a * top-level container. That's what this method is for. * @param menuBar the JMenuBar to register */ *************** class KeyboardManager *** 264,272 **** if (!menuBars.contains(menuBar)) menuBars.add(menuBar); } ! /** ! * Unregisters a JMenuBar from its top-level container. This is * called before the JMenuBar is actually removed from the container * so findTopLevel will still find us the correct top-level container. * @param menuBar the JMenuBar to unregister. --- 264,272 ---- if (!menuBars.contains(menuBar)) menuBars.add(menuBar); } ! /** ! * Unregisters a JMenuBar from its top-level container. This is * called before the JMenuBar is actually removed from the container * so findTopLevel will still find us the correct top-level container. * @param menuBar the JMenuBar to unregister. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/LayoutFocusTraversalPolicy.java gcc-4.6.0/libjava/classpath/javax/swing/LayoutFocusTraversalPolicy.java *** gcc-4.5.2/libjava/classpath/javax/swing/LayoutFocusTraversalPolicy.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/LayoutFocusTraversalPolicy.java Tue Jan 11 19:46:05 2011 *************** import java.util.Comparator; *** 45,54 **** /** * @author Graydon Hoare * @author Michael Koch ! * * @since 1.4 */ ! public class LayoutFocusTraversalPolicy extends SortingFocusTraversalPolicy implements Serializable { --- 45,54 ---- /** * @author Graydon Hoare * @author Michael Koch ! * * @since 1.4 */ ! public class LayoutFocusTraversalPolicy extends SortingFocusTraversalPolicy implements Serializable { *************** public class LayoutFocusTraversalPolicy *** 59,65 **** { // Do nothing here. } ! public int compare(Object o1, Object o2) { Component comp1 = (Component) o1; --- 59,65 ---- { // Do nothing here. } ! public int compare(Object o1, Object o2) { Component comp1 = (Component) o1; *************** public class LayoutFocusTraversalPolicy *** 69,87 **** int y1 = comp1.getY(); int x2 = comp2.getX(); int y2 = comp2.getY(); ! if (x1 == x2 && y1 == y2) ! return 0; ! if ((y1 < y2) || ((y1 == y2) && (x1 < x2))) ! return -1; return 1; } } private static final long serialVersionUID = 4312146927238881442L; ! public LayoutFocusTraversalPolicy() { super(new LayoutComparator()); --- 69,87 ---- int y1 = comp1.getY(); int x2 = comp2.getX(); int y2 = comp2.getY(); ! if (x1 == x2 && y1 == y2) ! return 0; ! if ((y1 < y2) || ((y1 == y2) && (x1 < x2))) ! return -1; return 1; } } private static final long serialVersionUID = 4312146927238881442L; ! public LayoutFocusTraversalPolicy() { super(new LayoutComparator()); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ListCellRenderer.java gcc-4.6.0/libjava/classpath/javax/swing/ListCellRenderer.java *** gcc-4.5.2/libjava/classpath/javax/swing/ListCellRenderer.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/ListCellRenderer.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ListCellRenderer.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ListCellRenderer.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ListSelectionModel.java gcc-4.6.0/libjava/classpath/javax/swing/ListSelectionModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/ListSelectionModel.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/ListSelectionModel.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ListSelectionModel.java -- Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ListSelectionModel.java -- Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.swing.event.ListSelectionEv *** 42,60 **** import javax.swing.event.ListSelectionListener; /** ! * A model that tracks the selection status of a list of items. Each item in * the list is identified by a zero-based index only, so the model can be used ! * to track the selection status of any type of list. The model * supports three modes: *
                                              ! *
                                            • SINGLE_SELECTION - only one item in the list may be * selected;
                                            • ! *
                                            • SINGLE_INTERVAL_SELECTION - only one interval in the list * may be selected;
                                            • ! *
                                            • MULTIPLE_INTERVAL_SELECTION - any combination of items in * the list may be selected.
                                            • *
                                            ! * The model uses an event notification mechanism to notify listeners (see * {@link ListSelectionListener}) about updates to the selection model. *

                                            * This model is used to track row selections in the {@link JList} component, --- 42,60 ---- import javax.swing.event.ListSelectionListener; /** ! * A model that tracks the selection status of a list of items. Each item in * the list is identified by a zero-based index only, so the model can be used ! * to track the selection status of any type of list. The model * supports three modes: *

                                              ! *
                                            • SINGLE_SELECTION - only one item in the list may be * selected;
                                            • ! *
                                            • SINGLE_INTERVAL_SELECTION - only one interval in the list * may be selected;
                                            • ! *
                                            • MULTIPLE_INTERVAL_SELECTION - any combination of items in * the list may be selected.
                                            • *
                                            ! * The model uses an event notification mechanism to notify listeners (see * {@link ListSelectionListener}) about updates to the selection model. *

                                            * This model is used to track row selections in the {@link JList} component, *************** import javax.swing.event.ListSelectionLi *** 62,71 **** */ public interface ListSelectionModel { ! /** * A selection mode in which only one item can be selected. ! * * @see #setSelectionMode(int) */ int SINGLE_SELECTION = 0; --- 62,71 ---- */ public interface ListSelectionModel { ! /** * A selection mode in which only one item can be selected. ! * * @see #setSelectionMode(int) */ int SINGLE_SELECTION = 0; *************** public interface ListSelectionModel *** 73,86 **** /** * A selection mode in which a single interval can be selected (an interval * is a range containing one or more contiguous items). ! * * @see #setSelectionMode(int) */ int SINGLE_INTERVAL_SELECTION = 1; /** * A selection mode in which any combination of items can be selected. ! * * @see #setSelectionMode(int) */ int MULTIPLE_INTERVAL_SELECTION = 2; --- 73,86 ---- /** * A selection mode in which a single interval can be selected (an interval * is a range containing one or more contiguous items). ! * * @see #setSelectionMode(int) */ int SINGLE_INTERVAL_SELECTION = 1; /** * A selection mode in which any combination of items can be selected. ! * * @see #setSelectionMode(int) */ int MULTIPLE_INTERVAL_SELECTION = 2; *************** public interface ListSelectionModel *** 90,121 **** *

                                            * FIXME: The spec is silent about what happens to existing selections, for * example when changing from an interval selection to single selection. ! * ! * @param mode one of {@link #SINGLE_SELECTION}, ! * {@link #SINGLE_INTERVAL_SELECTION} and * {@link #MULTIPLE_INTERVAL_SELECTION}. ! * * @see #getSelectionMode() ! * * @throws IllegalArgumentException if mode is not one of the * specified values. */ void setSelectionMode(int mode); /** ! * Returns the selection mode, which is one of {@link #SINGLE_SELECTION}, ! * {@link #SINGLE_INTERVAL_SELECTION} and * {@link #MULTIPLE_INTERVAL_SELECTION}. ! * * @return The selection mode. ! * * @see #setSelectionMode(int) */ int getSelectionMode(); /** ! * Clears the current selection from the model. If the selection state ! * changes (that is, the existing selection is non-empty) a * {@link ListSelectionEvent} should be sent to all registered listeners. *

                                            * FIXME: what happens to the anchor and lead selection indices (the spec --- 90,121 ---- *

                                            * FIXME: The spec is silent about what happens to existing selections, for * example when changing from an interval selection to single selection. ! * ! * @param mode one of {@link #SINGLE_SELECTION}, ! * {@link #SINGLE_INTERVAL_SELECTION} and * {@link #MULTIPLE_INTERVAL_SELECTION}. ! * * @see #getSelectionMode() ! * * @throws IllegalArgumentException if mode is not one of the * specified values. */ void setSelectionMode(int mode); /** ! * Returns the selection mode, which is one of {@link #SINGLE_SELECTION}, ! * {@link #SINGLE_INTERVAL_SELECTION} and * {@link #MULTIPLE_INTERVAL_SELECTION}. ! * * @return The selection mode. ! * * @see #setSelectionMode(int) */ int getSelectionMode(); /** ! * Clears the current selection from the model. If the selection state ! * changes (that is, the existing selection is non-empty) a * {@link ListSelectionEvent} should be sent to all registered listeners. *

                                            * FIXME: what happens to the anchor and lead selection indices (the spec *************** public interface ListSelectionModel *** 126,136 **** void clearSelection(); /** ! * Returns the lowest selected index, or -1 if there is no * selection. ! * * @return The lowest selected index. ! * * @see #getMaxSelectionIndex() */ int getMinSelectionIndex(); --- 126,136 ---- void clearSelection(); /** ! * Returns the lowest selected index, or -1 if there is no * selection. ! * * @return The lowest selected index. ! * * @see #getMaxSelectionIndex() */ int getMinSelectionIndex(); *************** public interface ListSelectionModel *** 138,159 **** /** * Returns the highest selected index, or -1 if there is no * selection. ! * * @return The highest selected index. ! * * @see #getMinSelectionIndex() */ int getMaxSelectionIndex(); /** ! * Returns true if the specified item is selected, and ! * false otherwise. Special note: if index is ! * negative, this method should return false (no exception * should be thrown). ! * * @param index the item index (zero-based). ! * ! * @return true if the specified item is selected, and * false otherwise. */ boolean isSelectedIndex(int index); --- 138,159 ---- /** * Returns the highest selected index, or -1 if there is no * selection. ! * * @return The highest selected index. ! * * @see #getMinSelectionIndex() */ int getMaxSelectionIndex(); /** ! * Returns true if the specified item is selected, and ! * false otherwise. Special note: if index is ! * negative, this method should return false (no exception * should be thrown). ! * * @param index the item index (zero-based). ! * ! * @return true if the specified item is selected, and * false otherwise. */ boolean isSelectedIndex(int index); *************** public interface ListSelectionModel *** 161,216 **** /** * Returns true if there is no selection, and false * otherwise. ! * ! * @return true if there is no selection, and * false otherwise. */ boolean isSelectionEmpty(); /** ! * Sets the selection interval to the specified range (note that ! * anchor can be less than, equal to, or greater than ! * lead). If this results in the selection being changed, * a {@link ListSelectionEvent} is sent to all registered listeners. *

                                            ! * If the selection mode is {@link #SINGLE_SELECTION}, only the * lead item is selected. ! * * @param anchor the anchor index. * @param lead the lead index. */ void setSelectionInterval(int anchor, int lead); /** ! * Marks the items in the specified interval as selected. The behaviour of * this method depends on the selection mode: *

                                              ! *
                                            • SINGLE_SELECTION - only the lead item is * selected;
                                            • ! *
                                            • SINGLE_INTERVAL_SELECTION - the existing selection * interval is replaced by the specified interval;
                                            • ! *
                                            • MULTIPLE_INTERVAL_SELECTION - the specified interval is * merged into the currently selected intervals.
                                            • *
                                            ! * Note that anchor can be less than, equal to, or greater than * lead. ! * * @param anchor the index of the anchor item * @param lead the index of the lead item. */ void addSelectionInterval(int anchor, int lead); /** ! * Marks the items in the specified interval as not selected. The behaviour * of this method depends on the selection mode: *
                                              *
                                            • SINGLE_SELECTION - XXX;
                                            • *
                                            • SINGLE_INTERVAL_SELECTION - XXX;
                                            • *
                                            • MULTIPLE_INTERVAL_SELECTION - XXX.
                                            • *
                                            ! * Note that anchor can be less than, equal to, or greater than * lead. ! * * @param anchor the index of the anchor item * @param lead the index of the lead item. */ --- 161,216 ---- /** * Returns true if there is no selection, and false * otherwise. ! * ! * @return true if there is no selection, and * false otherwise. */ boolean isSelectionEmpty(); /** ! * Sets the selection interval to the specified range (note that ! * anchor can be less than, equal to, or greater than ! * lead). If this results in the selection being changed, * a {@link ListSelectionEvent} is sent to all registered listeners. *

                                            ! * If the selection mode is {@link #SINGLE_SELECTION}, only the * lead item is selected. ! * * @param anchor the anchor index. * @param lead the lead index. */ void setSelectionInterval(int anchor, int lead); /** ! * Marks the items in the specified interval as selected. The behaviour of * this method depends on the selection mode: *

                                              ! *
                                            • SINGLE_SELECTION - only the lead item is * selected;
                                            • ! *
                                            • SINGLE_INTERVAL_SELECTION - the existing selection * interval is replaced by the specified interval;
                                            • ! *
                                            • MULTIPLE_INTERVAL_SELECTION - the specified interval is * merged into the currently selected intervals.
                                            • *
                                            ! * Note that anchor can be less than, equal to, or greater than * lead. ! * * @param anchor the index of the anchor item * @param lead the index of the lead item. */ void addSelectionInterval(int anchor, int lead); /** ! * Marks the items in the specified interval as not selected. The behaviour * of this method depends on the selection mode: *
                                              *
                                            • SINGLE_SELECTION - XXX;
                                            • *
                                            • SINGLE_INTERVAL_SELECTION - XXX;
                                            • *
                                            • MULTIPLE_INTERVAL_SELECTION - XXX.
                                            • *
                                            ! * Note that anchor can be less than, equal to, or greater than * lead. ! * * @param anchor the index of the anchor item * @param lead the index of the lead item. */ *************** public interface ListSelectionModel *** 221,287 **** * specified index (the before flag indicates * whether the range is inserted before or after the existing item at * index). ! * * FIXME: What is the selection status of the new items? Bug 4870694. * FIXME: What event is generated? ! * ! * @param index the index of the item. * @param length the number of items in the interval to be inserted. ! * @param before if true, the interval should be inserted * before index, otherwise it is inserted after. ! * * @see #removeIndexInterval(int, int) */ void insertIndexInterval(int index, int length, boolean before); /** * Removes the items in the specified range (inclusive) from the selection ! * model. This method should be called when an interval is deleted from * the underlying list. ! * ! * FIXME: what happens to the lead and anchor indices if they are part of ! * the range that is removed? * FIXME: what event is generated ! * * @param index0 XXX * @param index1 XXX ! * * @see #insertIndexInterval(int, int, boolean) */ void removeIndexInterval(int index0, int index1); /** ! * Returns the index of the anchor item. ! * * @return The index of the anchor item. ! * * @see #setAnchorSelectionIndex(int) */ int getAnchorSelectionIndex(); /** * Sets the index of the anchor item. ! * * @param index the item index. ! * * @see #getAnchorSelectionIndex() */ void setAnchorSelectionIndex(int index); /** * Returns the index of the lead item. ! * * @return The index of the lead item. ! * * @see #setLeadSelectionIndex(int) */ int getLeadSelectionIndex(); /** * Sets the index of the lead item. ! * * @param index the item index. ! * * @see #getLeadSelectionIndex() */ void setLeadSelectionIndex(int index); --- 221,287 ---- * specified index (the before flag indicates * whether the range is inserted before or after the existing item at * index). ! * * FIXME: What is the selection status of the new items? Bug 4870694. * FIXME: What event is generated? ! * ! * @param index the index of the item. * @param length the number of items in the interval to be inserted. ! * @param before if true, the interval should be inserted * before index, otherwise it is inserted after. ! * * @see #removeIndexInterval(int, int) */ void insertIndexInterval(int index, int length, boolean before); /** * Removes the items in the specified range (inclusive) from the selection ! * model. This method should be called when an interval is deleted from * the underlying list. ! * ! * FIXME: what happens to the lead and anchor indices if they are part of ! * the range that is removed? * FIXME: what event is generated ! * * @param index0 XXX * @param index1 XXX ! * * @see #insertIndexInterval(int, int, boolean) */ void removeIndexInterval(int index0, int index1); /** ! * Returns the index of the anchor item. ! * * @return The index of the anchor item. ! * * @see #setAnchorSelectionIndex(int) */ int getAnchorSelectionIndex(); /** * Sets the index of the anchor item. ! * * @param index the item index. ! * * @see #getAnchorSelectionIndex() */ void setAnchorSelectionIndex(int index); /** * Returns the index of the lead item. ! * * @return The index of the lead item. ! * * @see #setLeadSelectionIndex(int) */ int getLeadSelectionIndex(); /** * Sets the index of the lead item. ! * * @param index the item index. ! * * @see #getLeadSelectionIndex() */ void setLeadSelectionIndex(int index); *************** public interface ListSelectionModel *** 289,309 **** /** * Sets the flag that is passed to listeners for each change notification. * If a sequence of changes is made to the selection model, this flag should ! * be set to true at the start of the sequence, and * false for the last change - this gives listeners the option * to ignore interim changes if that is more efficient. ! * * @param valueIsAdjusting the flag value. ! * * @see #getValueIsAdjusting() */ void setValueIsAdjusting(boolean valueIsAdjusting); /** * Returns a flag that is passed to registered listeners when changes are ! * made to the model. See the description for * {@link #setValueIsAdjusting(boolean)} for more information. ! * * @return The flag. */ boolean getValueIsAdjusting(); --- 289,309 ---- /** * Sets the flag that is passed to listeners for each change notification. * If a sequence of changes is made to the selection model, this flag should ! * be set to true at the start of the sequence, and * false for the last change - this gives listeners the option * to ignore interim changes if that is more efficient. ! * * @param valueIsAdjusting the flag value. ! * * @see #getValueIsAdjusting() */ void setValueIsAdjusting(boolean valueIsAdjusting); /** * Returns a flag that is passed to registered listeners when changes are ! * made to the model. See the description for * {@link #setValueIsAdjusting(boolean)} for more information. ! * * @return The flag. */ boolean getValueIsAdjusting(); *************** public interface ListSelectionModel *** 311,319 **** /** * Registers a listener with the model so that it receives notification * of changes to the model. ! * * @param listener the listener (null ignored). ! * * @see #removeListSelectionListener(ListSelectionListener) */ void addListSelectionListener(ListSelectionListener listener); --- 311,319 ---- /** * Registers a listener with the model so that it receives notification * of changes to the model. ! * * @param listener the listener (null ignored). ! * * @see #removeListSelectionListener(ListSelectionListener) */ void addListSelectionListener(ListSelectionListener listener); *************** public interface ListSelectionModel *** 322,330 **** * Deregisters a listener so that it no longer receives notification of * changes to the model. If the specified listener is not registered with * the model, or is null, this method does nothing. ! * * @param listener the listener (null ignored). ! * * @see #addListSelectionListener(ListSelectionListener) */ void removeListSelectionListener(ListSelectionListener listener); --- 322,330 ---- * Deregisters a listener so that it no longer receives notification of * changes to the model. If the specified listener is not registered with * the model, or is null, this method does nothing. ! * * @param listener the listener (null ignored). ! * * @see #addListSelectionListener(ListSelectionListener) */ void removeListSelectionListener(ListSelectionListener listener); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/LookAndFeel.java gcc-4.6.0/libjava/classpath/javax/swing/LookAndFeel.java *** gcc-4.5.2/libjava/classpath/javax/swing/LookAndFeel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/LookAndFeel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.metal.MetalLookA *** 53,70 **** import javax.swing.text.JTextComponent; /** ! * A look-and-feel controls most aspects of the appearance and ! * operation of user interface components in javax.swing. A * cross-platform look-and-feel (the {@link MetalLookAndFeel}) is provided. ! * * @see UIManager#getInstalledLookAndFeels() * @see UIManager#setLookAndFeel(LookAndFeel) */ public abstract class LookAndFeel { /** ! * Creates and returns a look-and-feel specific defaults table. This method ! * is called once by {@link UIManager#setLookAndFeel(LookAndFeel)} and * shouldn't be called again (as it creates a large table of defaults). * * @return The UI defaults. --- 53,70 ---- import javax.swing.text.JTextComponent; /** ! * A look-and-feel controls most aspects of the appearance and ! * operation of user interface components in javax.swing. A * cross-platform look-and-feel (the {@link MetalLookAndFeel}) is provided. ! * * @see UIManager#getInstalledLookAndFeels() * @see UIManager#setLookAndFeel(LookAndFeel) */ public abstract class LookAndFeel { /** ! * Creates and returns a look-and-feel specific defaults table. This method ! * is called once by {@link UIManager#setLookAndFeel(LookAndFeel)} and * shouldn't be called again (as it creates a large table of defaults). * * @return The UI defaults. *************** public abstract class LookAndFeel *** 76,122 **** /** * Returns a description of the look and feel. ! * * @return A description of the look and feel. */ public abstract String getDescription(); /** * Returns the value of Toolkit.getDefaultToolkit() ! * .getDesktopProperty(systemPropertyName), or * fallbackValue if no such property is defined. ! * * @param systemPropertyName the system property name. * @param fallbackValue the fallback value. ! * * @return The property value or fallbackValue. */ ! public static Object getDesktopPropertyValue(String systemPropertyName, Object fallbackValue) { Object value = Toolkit.getDefaultToolkit().getDesktopProperty( systemPropertyName); return value != null ? value : fallbackValue; } ! /** * Returns an identifier for the look and feel. ! * * @return An identifier for the look and feel. */ public abstract String getID(); /** * Returns the name for the look and feel. ! * * @return The name for the look and feel. */ public abstract String getName(); /** ! * Returns true when the look-and-feel supports window * decorations, and false otherwise. This default implementation ! * always returns false and needs to be overridden when the * derived look-and-feel supports this. * * @return false. --- 76,122 ---- /** * Returns a description of the look and feel. ! * * @return A description of the look and feel. */ public abstract String getDescription(); /** * Returns the value of Toolkit.getDefaultToolkit() ! * .getDesktopProperty(systemPropertyName), or * fallbackValue if no such property is defined. ! * * @param systemPropertyName the system property name. * @param fallbackValue the fallback value. ! * * @return The property value or fallbackValue. */ ! public static Object getDesktopPropertyValue(String systemPropertyName, Object fallbackValue) { Object value = Toolkit.getDefaultToolkit().getDesktopProperty( systemPropertyName); return value != null ? value : fallbackValue; } ! /** * Returns an identifier for the look and feel. ! * * @return An identifier for the look and feel. */ public abstract String getID(); /** * Returns the name for the look and feel. ! * * @return The name for the look and feel. */ public abstract String getName(); /** ! * Returns true when the look-and-feel supports window * decorations, and false otherwise. This default implementation ! * always returns false and needs to be overridden when the * derived look-and-feel supports this. * * @return false. *************** public abstract class LookAndFeel *** 127,139 **** { return false; } ! /** ! * Initializes the look-and-feel. The ! * {@link UIManager#setLookAndFeel(LookAndFeel)} method calls this method ! * before the first call (and typically the only call) to * {@link #getDefaults()}. This default implementation does nothing, but ! * subclasses can override this behaviour. */ public void initialize() { --- 127,139 ---- { return false; } ! /** ! * Initializes the look-and-feel. The ! * {@link UIManager#setLookAndFeel(LookAndFeel)} method calls this method ! * before the first call (and typically the only call) to * {@link #getDefaults()}. This default implementation does nothing, but ! * subclasses can override this behaviour. */ public void initialize() { *************** public abstract class LookAndFeel *** 142,153 **** } /** ! * Convenience method for installing a component's default {@link Border} ! * object on the specified component if either the border is currently ! * null or already an instance of {@link UIResource}. ! * * @param c the component (null not permitted). ! * @param defaultBorderName the border name (for lookup in the UIDefaults * table). */ public static void installBorder(JComponent c, String defaultBorderName) --- 142,153 ---- } /** ! * Convenience method for installing a component's default {@link Border} ! * object on the specified component if either the border is currently ! * null or already an instance of {@link UIResource}. ! * * @param c the component (null not permitted). ! * @param defaultBorderName the border name (for lookup in the UIDefaults * table). */ public static void installBorder(JComponent c, String defaultBorderName) *************** public abstract class LookAndFeel *** 160,168 **** /** * Convenience method for initializing a component's foreground and * background color properties with values from the current defaults table. ! * * @param c the component (null not permitted). ! * @param defaultBgName the key for the background color in the UIDefaults * table. * @param defaultFgName the key for the foreground color in the UIDefaults * table. --- 160,168 ---- /** * Convenience method for initializing a component's foreground and * background color properties with values from the current defaults table. ! * * @param c the component (null not permitted). ! * @param defaultBgName the key for the background color in the UIDefaults * table. * @param defaultFgName the key for the foreground color in the UIDefaults * table. *************** public abstract class LookAndFeel *** 184,192 **** /** * Convenience method for initializing a component's foreground, background * and font properties with values from the current defaults table. ! * * @param component the component (null not permitted). ! * @param defaultBgName the key for the background color in the UIDefaults * table. * @param defaultFgName the key for the foreground color in the UIDefaults * table. --- 184,192 ---- /** * Convenience method for initializing a component's foreground, background * and font properties with values from the current defaults table. ! * * @param component the component (null not permitted). ! * @param defaultBgName the key for the background color in the UIDefaults * table. * @param defaultFgName the key for the foreground color in the UIDefaults * table. *************** public abstract class LookAndFeel *** 206,228 **** } /** ! * Returns true if the look-and-feel is the "native" * look-and-feel for the current platform, and false otherwise. ! * A native look-and-feel emulates the appearance and behaviour of the * default windowing system on the host operating system. ! * * @return A flag indicating whether or not this is the native look and feel * for the current platform. */ public abstract boolean isNativeLookAndFeel(); /** ! * Returns true if the look-and-feel is supported on the ! * current operating system, and false otherwise. This * mechanism is provided so that it is possible to prevent a look-and-feel * from being used on some operating systems (usually for legal, not * technical, reasons). ! * * @return A flag indicating whether or not the look-and-feel is supported * on the current platform. */ --- 206,228 ---- } /** ! * Returns true if the look-and-feel is the "native" * look-and-feel for the current platform, and false otherwise. ! * A native look-and-feel emulates the appearance and behaviour of the * default windowing system on the host operating system. ! * * @return A flag indicating whether or not this is the native look and feel * for the current platform. */ public abstract boolean isNativeLookAndFeel(); /** ! * Returns true if the look-and-feel is supported on the ! * current operating system, and false otherwise. This * mechanism is provided so that it is possible to prevent a look-and-feel * from being used on some operating systems (usually for legal, not * technical, reasons). ! * * @return A flag indicating whether or not the look-and-feel is supported * on the current platform. */ *************** public abstract class LookAndFeel *** 232,240 **** * Loads the bindings in keys into retMap. Does not remove existing entries * from retMap. keys describes the InputMap, every even indexed * item is either a KeyStroke or a String representing a KeyStroke and every ! * odd indexed item is the Object associated with that KeyStroke in an * ActionMap. ! * * @param retMap the InputMap into which we load bindings * @param keys the Object array describing the InputMap as above */ --- 232,240 ---- * Loads the bindings in keys into retMap. Does not remove existing entries * from retMap. keys describes the InputMap, every even indexed * item is either a KeyStroke or a String representing a KeyStroke and every ! * odd indexed item is the Object associated with that KeyStroke in an * ActionMap. ! * * @param retMap the InputMap into which we load bindings * @param keys the Object array describing the InputMap as above */ *************** public abstract class LookAndFeel *** 255,273 **** } /** ! * Creates a ComponentInputMap from keys. * keys describes the InputMap, every even indexed * item is either a KeyStroke or a String representing a KeyStroke and every ! * odd indexed item is the Object associated with that KeyStroke in an * ActionMap. ! * * @param c the JComponent associated with the ComponentInputMap * @param keys the Object array describing the InputMap as above ! * * @return A new input map. */ public static ComponentInputMap makeComponentInputMap(JComponent c, ! Object[] keys) { ComponentInputMap retMap = new ComponentInputMapUIResource(c); loadKeyBindings(retMap, keys); --- 255,273 ---- } /** ! * Creates a ComponentInputMap from keys. * keys describes the InputMap, every even indexed * item is either a KeyStroke or a String representing a KeyStroke and every ! * odd indexed item is the Object associated with that KeyStroke in an * ActionMap. ! * * @param c the JComponent associated with the ComponentInputMap * @param keys the Object array describing the InputMap as above ! * * @return A new input map. */ public static ComponentInputMap makeComponentInputMap(JComponent c, ! Object[] keys) { ComponentInputMap retMap = new ComponentInputMapUIResource(c); loadKeyBindings(retMap, keys); *************** public abstract class LookAndFeel *** 277,293 **** /** * Utility method that creates a UIDefaults.LazyValue that creates an * ImageIcon UIResource for the specified gifFile filename. ! * * @param baseClass the base class for accessing the icon resource. * @param gifFile the file name. ! * ! * @return A {@link UIDefaults.LazyValue} that serves up an * {@link IconUIResource}. */ public static Object makeIcon(Class baseClass, String gifFile) { final URL file = baseClass.getResource(gifFile); ! return new UIDefaults.LazyValue() { public Object createValue(UIDefaults table) { --- 277,293 ---- /** * Utility method that creates a UIDefaults.LazyValue that creates an * ImageIcon UIResource for the specified gifFile filename. ! * * @param baseClass the base class for accessing the icon resource. * @param gifFile the file name. ! * ! * @return A {@link UIDefaults.LazyValue} that serves up an * {@link IconUIResource}. */ public static Object makeIcon(Class baseClass, String gifFile) { final URL file = baseClass.getResource(gifFile); ! return new UIDefaults.LazyValue() { public Object createValue(UIDefaults table) { *************** public abstract class LookAndFeel *** 297,310 **** } /** ! * Creates a InputMap from keys. * keys describes the InputMap, every even indexed * item is either a KeyStroke or a String representing a KeyStroke and every ! * odd indexed item is the Object associated with that KeyStroke in an * ActionMap. ! * * @param keys the Object array describing the InputMap as above ! * * @return A new input map. */ public static InputMap makeInputMap(Object[] keys) --- 297,310 ---- } /** ! * Creates a InputMap from keys. * keys describes the InputMap, every even indexed * item is either a KeyStroke or a String representing a KeyStroke and every ! * odd indexed item is the Object associated with that KeyStroke in an * ActionMap. ! * * @param keys the Object array describing the InputMap as above ! * * @return A new input map. */ public static InputMap makeInputMap(Object[] keys) *************** public abstract class LookAndFeel *** 319,332 **** * keyBindingList is an array of KeyStroke-Action pairs where * even indexed elements are KeyStrokes or Strings representing KeyStrokes * and odd indexed elements are the associated Actions. ! * * @param keyBindingList the array of KeyStroke-Action pairs * @return a JTextComponent.KeyBinding array */ public static JTextComponent.KeyBinding[] makeKeyBindings( Object[] keyBindingList) { ! JTextComponent.KeyBinding[] retBindings = new JTextComponent.KeyBinding[keyBindingList.length / 2]; for (int i = 0; i < keyBindingList.length - 1; i += 2) { --- 319,332 ---- * keyBindingList is an array of KeyStroke-Action pairs where * even indexed elements are KeyStrokes or Strings representing KeyStrokes * and odd indexed elements are the associated Actions. ! * * @param keyBindingList the array of KeyStroke-Action pairs * @return a JTextComponent.KeyBinding array */ public static JTextComponent.KeyBinding[] makeKeyBindings( Object[] keyBindingList) { ! JTextComponent.KeyBinding[] retBindings = new JTextComponent.KeyBinding[keyBindingList.length / 2]; for (int i = 0; i < keyBindingList.length - 1; i += 2) { *************** public abstract class LookAndFeel *** 335,349 **** stroke = (KeyStroke) keyBindingList[i]; else stroke = KeyStroke.getKeyStroke((String) keyBindingList[i]); ! retBindings[i / 2] = new JTextComponent.KeyBinding(stroke, (String) keyBindingList[i + 1]); } return retBindings; } /** ! * Invoked when the user attempts an invalid operation. The default ! * implementation just beeps. Subclasses that wish to change this need to * override this method. * * @param component the component the error occured in --- 335,349 ---- stroke = (KeyStroke) keyBindingList[i]; else stroke = KeyStroke.getKeyStroke((String) keyBindingList[i]); ! retBindings[i / 2] = new JTextComponent.KeyBinding(stroke, (String) keyBindingList[i + 1]); } return retBindings; } /** ! * Invoked when the user attempts an invalid operation. The default ! * implementation just beeps. Subclasses that wish to change this need to * override this method. * * @param component the component the error occured in *************** public abstract class LookAndFeel *** 365,371 **** /** * UIManager.setLookAndFeel calls this method just before we're replaced by ! * a new default look and feel. */ public void uninitialize() { --- 365,371 ---- /** * UIManager.setLookAndFeel calls this method just before we're replaced by ! * a new default look and feel. */ public void uninitialize() { *************** public abstract class LookAndFeel *** 376,382 **** /** * Convenience method for un-installing a component's default border on the * specified component if the border is currently an instance of UIResource. ! * * @param c the component (null not permitted). */ public static void uninstallBorder(JComponent c) --- 376,382 ---- /** * Convenience method for un-installing a component's default border on the * specified component if the border is currently an instance of UIResource. ! * * @param c the component (null not permitted). */ public static void uninstallBorder(JComponent c) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/MenuSelectionManager.java gcc-4.6.0/libjava/classpath/javax/swing/MenuSelectionManager.java *** gcc-4.5.2/libjava/classpath/javax/swing/MenuSelectionManager.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/MenuSelectionManager.java Tue Jan 11 19:46:05 2011 *************** public class MenuSelectionManager *** 127,133 **** // clear selected path selectedPath.clear(); ! // notify all listeners that the selected path was changed fireStateChanged(); } --- 127,133 ---- // clear selected path selectedPath.clear(); ! // notify all listeners that the selected path was changed fireStateChanged(); } *************** public class MenuSelectionManager *** 146,182 **** { // Convert sourcePoint to screen coordinates. Point sourcePointOnScreen = sourcePoint; ! if (source.isShowing()) SwingUtilities.convertPointToScreen(sourcePointOnScreen, source); Point compPointOnScreen; Component resultComp = null; ! // For each menu element on the selected path, express its location ! // in terms of screen coordinates and check if there is any // menu element on the selected path that contains given source point. for (int i = 0; i < selectedPath.size(); i++) { ! Component comp = ((Component) selectedPath.get(i)); ! Dimension size = comp.getSize(); ! // convert location of this menu item to screen coordinates ! compPointOnScreen = comp.getLocationOnScreen(); - if (compPointOnScreen.x <= sourcePointOnScreen.x - && sourcePointOnScreen.x < compPointOnScreen.x + size.width - && compPointOnScreen.y <= sourcePointOnScreen.y - && sourcePointOnScreen.y < compPointOnScreen.y + size.height) - { - Point p = sourcePointOnScreen; - if (comp.isShowing()) SwingUtilities.convertPointFromScreen(p, comp); ! ! resultComp = SwingUtilities.getDeepestComponentAt(comp, p.x, p.y); ! break; ! } } return resultComp; } --- 146,182 ---- { // Convert sourcePoint to screen coordinates. Point sourcePointOnScreen = sourcePoint; ! if (source.isShowing()) SwingUtilities.convertPointToScreen(sourcePointOnScreen, source); Point compPointOnScreen; Component resultComp = null; ! // For each menu element on the selected path, express its location ! // in terms of screen coordinates and check if there is any // menu element on the selected path that contains given source point. for (int i = 0; i < selectedPath.size(); i++) { ! Component comp = ((Component) selectedPath.get(i)); ! Dimension size = comp.getSize(); ! // convert location of this menu item to screen coordinates ! compPointOnScreen = comp.getLocationOnScreen(); ! ! if (compPointOnScreen.x <= sourcePointOnScreen.x ! && sourcePointOnScreen.x < compPointOnScreen.x + size.width ! && compPointOnScreen.y <= sourcePointOnScreen.y ! && sourcePointOnScreen.y < compPointOnScreen.y + size.height) ! { ! Point p = sourcePointOnScreen; if (comp.isShowing()) SwingUtilities.convertPointFromScreen(p, comp); ! ! resultComp = SwingUtilities.getDeepestComponentAt(comp, p.x, p.y); ! break; ! } } return resultComp; } *************** public class MenuSelectionManager *** 232,238 **** subElements = first.getSubElements(); for (int j = 0; j < subElements.length; j++) { ! MenuElement me = subElements[j]; if (me != null && (SwingUtilities.isDescendingFrom(c, me.getComponent()))) { --- 232,238 ---- subElements = first.getSubElements(); for (int j = 0; j < subElements.length; j++) { ! MenuElement me = subElements[j]; if (me != null && (SwingUtilities.isDescendingFrom(c, me.getComponent()))) { *************** public class MenuSelectionManager *** 315,323 **** Component source = ((Component) event.getSource()); // In the case of drag event, event.getSource() returns component ! // where drag event originated. However menu element processing this ! // event should be the one over which mouse is currently located, ! // which is not necessary the source of the drag event. Component mouseOverMenuComp; // find over which menu element the mouse is currently located --- 315,323 ---- Component source = ((Component) event.getSource()); // In the case of drag event, event.getSource() returns component ! // where drag event originated. However menu element processing this ! // event should be the one over which mouse is currently located, ! // which is not necessary the source of the drag event. Component mouseOverMenuComp; // find over which menu element the mouse is currently located *************** public class MenuSelectionManager *** 330,357 **** // Process this event only if mouse is located over some menu element if (mouseOverMenuComp != null && (mouseOverMenuComp instanceof MenuElement)) { ! MenuElement[] path = getPath(mouseOverMenuComp); ! ((MenuElement) mouseOverMenuComp).processMouseEvent(event, path, ! manager); ! // FIXME: Java specification says that mouse events should be ! // forwarded to subcomponents. The code below does it, but ! // menu's work fine without it. This code is commented for now. ! /* ! MenuElement[] subComponents = ((MenuElement) mouseOverMenuComp) ! .getSubElements(); ! for (int i = 0; i < subComponents.length; i++) ! { ! subComponents[i].processMouseEvent(event, path, manager); ! } ! */ } else { ! if (event.getID() == MouseEvent.MOUSE_RELEASED) ! clearSelectedPath(); } } --- 330,357 ---- // Process this event only if mouse is located over some menu element if (mouseOverMenuComp != null && (mouseOverMenuComp instanceof MenuElement)) { ! MenuElement[] path = getPath(mouseOverMenuComp); ! ((MenuElement) mouseOverMenuComp).processMouseEvent(event, path, ! manager); ! // FIXME: Java specification says that mouse events should be ! // forwarded to subcomponents. The code below does it, but ! // menu's work fine without it. This code is commented for now. ! /* ! MenuElement[] subComponents = ((MenuElement) mouseOverMenuComp) ! .getSubElements(); ! for (int i = 0; i < subComponents.length; i++) ! { ! subComponents[i].processMouseEvent(event, path, manager); ! } ! */ } else { ! if (event.getID() == MouseEvent.MOUSE_RELEASED) ! clearSelectedPath(); } } *************** public class MenuSelectionManager *** 364,371 **** { if (path == null) { ! clearSelectedPath(); ! return; } int minSize = path.length; // size of the smaller path. --- 364,371 ---- { if (path == null) { ! clearSelectedPath(); ! return; } int minSize = path.length; // size of the smaller path. *************** public class MenuSelectionManager *** 412,436 **** private MenuElement[] getPath(Component c) { // FIXME: There is the same method in BasicMenuItemUI. However I ! // cannot use it here instead of this method, since I cannot assume that // all the menu elements on the selected path are JMenuItem or JMenu. ! // For now I've just duplicated it here. Please ! // fix me or delete me if another better approach will be found, and // this method will not be necessary. ArrayList path = new ArrayList(); ! // if given component is JMenu, we also need to include ! // it's popup menu in the path if (c instanceof JMenu) path.add(((JMenu) c).getPopupMenu()); while (c instanceof MenuElement) { ! path.add(0, (MenuElement) c); ! if (c instanceof JPopupMenu) ! c = ((JPopupMenu) c).getInvoker(); ! else ! c = c.getParent(); } MenuElement[] pathArray = new MenuElement[path.size()]; --- 412,436 ---- private MenuElement[] getPath(Component c) { // FIXME: There is the same method in BasicMenuItemUI. However I ! // cannot use it here instead of this method, since I cannot assume that // all the menu elements on the selected path are JMenuItem or JMenu. ! // For now I've just duplicated it here. Please ! // fix me or delete me if another better approach will be found, and // this method will not be necessary. ArrayList path = new ArrayList(); ! // if given component is JMenu, we also need to include ! // it's popup menu in the path if (c instanceof JMenu) path.add(((JMenu) c).getPopupMenu()); while (c instanceof MenuElement) { ! path.add(0, (MenuElement) c); ! if (c instanceof JPopupMenu) ! c = ((JPopupMenu) c).getInvoker(); ! else ! c = c.getParent(); } MenuElement[] pathArray = new MenuElement[path.size()]; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/OverlayLayout.java gcc-4.6.0/libjava/classpath/javax/swing/OverlayLayout.java *** gcc-4.5.2/libjava/classpath/javax/swing/OverlayLayout.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/OverlayLayout.java Tue Jan 11 19:46:05 2011 *************** import java.io.Serializable; *** 62,68 **** * point is in the middle, an X alignment of 1.0 means, the aligment point is * at the right edge. So if you have three components, the first with 0.0, the * second with 0.5 and the third with 1.0, then they are laid out like this: ! * *
                                               *          +-------+
                                               *          |   1   |
                                            --- 62,68 ----
                                               * point is in the middle, an X alignment of 1.0 means, the aligment point is
                                               * at the right edge. So if you have three components, the first with 0.0, the
                                               * second with 0.5 and the third with 1.0, then they are laid out like this:
                                            !  *
                                               * 
                                               *          +-------+
                                               *          |   1   |
                                            *************** public class OverlayLayout implements La
                                            *** 300,306 ****
                                                 * at the right edge. So if you have three components, the first with 0.0,
                                                 * the second with 0.5 and the third with 1.0, then they are laid out like
                                                 * this:
                                            !    * 
                                                 * 
                                                 *          +-------+
                                                 *          |   1   |
                                            --- 300,306 ----
                                                 * at the right edge. So if you have three components, the first with 0.0,
                                                 * the second with 0.5 and the third with 1.0, then they are laid out like
                                                 * this:
                                            !    *
                                                 * 
                                                 *          +-------+
                                                 *          |   1   |
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/Popup.java gcc-4.6.0/libjava/classpath/javax/swing/Popup.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/Popup.java	Tue Jan  9 19:58:05 2007
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/Popup.java	Tue Jan 11 19:46:05 2011
                                            *************** public class Popup
                                            *** 85,92 ****
                                                  // The real stuff happens in the implementation of subclasses,
                                                  // for instance JWindowPopup.
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Constructs a new Popup.
                                                 */
                                            --- 85,92 ----
                                                  // The real stuff happens in the implementation of subclasses,
                                                  // for instance JWindowPopup.
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Constructs a new Popup.
                                                 */
                                            *************** public class Popup
                                            *** 177,184 ****
                                                    window.setSize(contents.getSize());
                                                    window.show();
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Removes the popup's JWindow from the
                                                   * screen.  Nothing happens if it is currently not visible.
                                            --- 177,184 ----
                                                    window.setSize(contents.getSize());
                                                    window.show();
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Removes the popup's JWindow from the
                                                   * screen.  Nothing happens if it is currently not visible.
                                            *************** public class Popup
                                            *** 226,237 ****
                                                   * The panel that holds the content.
                                                   */
                                                  private JPanel panel;
                                            !     
                                                  /**
                                                   * The layered pane of the owner.
                                                   */
                                                  private JLayeredPane layeredPane;
                                            !     
                                                  /**
                                                   * Constructs a new LightweightPopup given its owner,
                                                   * contents and the screen position where the popup
                                            --- 226,237 ----
                                                   * The panel that holds the content.
                                                   */
                                                  private JPanel panel;
                                            ! 
                                                  /**
                                                   * The layered pane of the owner.
                                                   */
                                                  private JLayeredPane layeredPane;
                                            ! 
                                                  /**
                                                   * Constructs a new LightweightPopup given its owner,
                                                   * contents and the screen position where the popup
                                            *************** public class Popup
                                            *** 259,265 ****
                                                    this.contents = contents;
                                                    this.x = x;
                                                    this.y = y;
                                            !       
                                                    JRootPane rootPane = SwingUtilities.getRootPane(owner);
                                                    JLayeredPane layeredPane = rootPane.getLayeredPane();
                                                    this.layeredPane = layeredPane;
                                            --- 259,265 ----
                                                    this.contents = contents;
                                                    this.x = x;
                                                    this.y = y;
                                            ! 
                                                    JRootPane rootPane = SwingUtilities.getRootPane(owner);
                                                    JLayeredPane layeredPane = rootPane.getLayeredPane();
                                                    this.layeredPane = layeredPane;
                                            *************** public class Popup
                                            *** 279,285 ****
                                                        panel = new JPanel();
                                                        panel.setLayout(new FlowLayout(0, 0, 0));
                                                      }
                                            !       
                                                    panel.add(contents);
                                                    panel.setSize(contents.getSize());
                                                    Point layeredPaneLoc = layeredPane.getLocationOnScreen();
                                            --- 279,285 ----
                                                        panel = new JPanel();
                                                        panel.setLayout(new FlowLayout(0, 0, 0));
                                                      }
                                            ! 
                                                    panel.add(contents);
                                                    panel.setSize(contents.getSize());
                                                    Point layeredPaneLoc = layeredPane.getLocationOnScreen();
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/PopupFactory.java gcc-4.6.0/libjava/classpath/javax/swing/PopupFactory.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/PopupFactory.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/PopupFactory.java	Tue Jan 11 19:46:05 2011
                                            *************** public class PopupFactory
                                            *** 159,165 ****
                                                      Dimension rootSize = root.getSize();
                                                      if (x >= rootLoc.x && y > rootLoc.y
                                                          && (x - rootLoc.x) + contentsSize.width < rootSize.width
                                            !             && (y - rootLoc.y) + contentsSize.height < rootSize.height)      
                                                        popup = new Popup.LightweightPopup(owner, contents, x, y);
                                                      else
                                                        popup = new Popup.JWindowPopup(owner, contents, x, y);
                                            --- 159,165 ----
                                                      Dimension rootSize = root.getSize();
                                                      if (x >= rootLoc.x && y > rootLoc.y
                                                          && (x - rootLoc.x) + contentsSize.width < rootSize.width
                                            !             && (y - rootLoc.y) + contentsSize.height < rootSize.height)
                                                        popup = new Popup.LightweightPopup(owner, contents, x, y);
                                                      else
                                                        popup = new Popup.JWindowPopup(owner, contents, x, y);
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ProgressMonitor.java gcc-4.6.0/libjava/classpath/javax/swing/ProgressMonitor.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/ProgressMonitor.java	Mon Aug 14 23:12:35 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/ProgressMonitor.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.accessibility.AccessibleCon
                                            *** 64,75 ****
                                               */
                                              public class ProgressMonitor
                                              {
                                            !   
                                                /**
                                                 * The accessible content for this component
                                                 */
                                                protected AccessibleContext accessibleContext;
                                            !   
                                                /**
                                                 * parentComponent
                                                 */
                                            --- 64,75 ----
                                               */
                                              public class ProgressMonitor
                                              {
                                            ! 
                                                /**
                                                 * The accessible content for this component
                                                 */
                                                protected AccessibleContext accessibleContext;
                                            ! 
                                                /**
                                                 * parentComponent
                                                 */
                                            *************** public class ProgressMonitor
                                            *** 108,120 ****
                                                boolean canceled;
                                              
                                                /**
                                            !    * Creates a new ProgressMonitor instance.  This is used to 
                                            !    * monitor a task and pops up a dialog if the task is taking a long time to 
                                                 * run.
                                            !    * 
                                            !    * @param component The parent component of the progress dialog or 
                                                 *                  null.
                                            !    * @param message A constant message object which works in the way it does 
                                                 *                in {@link JOptionPane}.
                                                 * @param note A string message which can be changed while the operation goes
                                                 *             on.
                                            --- 108,120 ----
                                                boolean canceled;
                                              
                                                /**
                                            !    * Creates a new ProgressMonitor instance.  This is used to
                                            !    * monitor a task and pops up a dialog if the task is taking a long time to
                                                 * run.
                                            !    *
                                            !    * @param component The parent component of the progress dialog or
                                                 *                  null.
                                            !    * @param message A constant message object which works in the way it does
                                                 *                in {@link JOptionPane}.
                                                 * @param note A string message which can be changed while the operation goes
                                                 *             on.
                                            *************** public class ProgressMonitor
                                            *** 192,198 ****
                                              
                                                }
                                              
                                            !   /** 
                                                 * Returns the minimum or start value of the operation.
                                                 *
                                                 * @return Minimum or start value of the operation.
                                            --- 192,198 ----
                                              
                                                }
                                              
                                            !   /**
                                                 * Returns the minimum or start value of the operation.
                                                 *
                                                 * @return Minimum or start value of the operation.
                                            *************** public class ProgressMonitor
                                            *** 283,291 ****
                                                /**
                                                 * Returns the number of milliseconds to wait before displaying the progress
                                                 * dialog.  The default value is 2000.
                                            !    * 
                                                 * @return The number of milliseconds.
                                            !    * 
                                                 * @see #setMillisToPopup(int)
                                                 */
                                                public int getMillisToPopup()
                                            --- 283,291 ----
                                                /**
                                                 * Returns the number of milliseconds to wait before displaying the progress
                                                 * dialog.  The default value is 2000.
                                            !    *
                                                 * @return The number of milliseconds.
                                            !    *
                                                 * @see #setMillisToPopup(int)
                                                 */
                                                public int getMillisToPopup()
                                            *************** public class ProgressMonitor
                                            *** 296,304 ****
                                                /**
                                                 * Sets the number of milliseconds to wait before displaying the progress
                                                 * dialog.
                                            !    * 
                                                 * @param time  the number of milliseconds.
                                            !    * 
                                                 * @see #getMillisToPopup()
                                                 */
                                                public void setMillisToPopup(int time)
                                            --- 296,304 ----
                                                /**
                                                 * Sets the number of milliseconds to wait before displaying the progress
                                                 * dialog.
                                            !    *
                                                 * @param time  the number of milliseconds.
                                            !    *
                                                 * @see #getMillisToPopup()
                                                 */
                                                public void setMillisToPopup(int time)
                                            *************** public class ProgressMonitor
                                            *** 336,342 ****
                                                    }
                                                }
                                              
                                            !   /** 
                                                 * Internal method that creates the progress dialog.
                                                 */
                                                void createDialog()
                                            --- 336,342 ----
                                                    }
                                                }
                                              
                                            !   /**
                                                 * Internal method that creates the progress dialog.
                                                 */
                                                void createDialog()
                                            *************** public class ProgressMonitor
                                            *** 408,416 ****
                                                         first = false;
                                              
                                              
                                            !            long expected = (progress - min == 0) ? 
                                            ! 	     (now - timestamp) * (max - min) : 
                                            ! 	     (now - timestamp) * (max - min) / (progress - min);
                                              
                                                         if (expected > millisToPopup)
                                                         {
                                            --- 408,416 ----
                                                         first = false;
                                              
                                              
                                            !            long expected = (progress - min == 0) ?
                                            !              (now - timestamp) * (max - min) :
                                            !              (now - timestamp) * (max - min) / (progress - min);
                                              
                                                         if (expected > millisToPopup)
                                                         {
                                            *************** public class ProgressMonitor
                                            *** 428,434 ****
                                                     {
                                                       // The progress dialog is being displayed. We now calculate
                                                       // whether setting the progress bar to the current progress
                                            !          // value would result in a visual difference. 
                                                       int delta = progress - progressBar.getValue();
                                              
                                                       if ((delta * progressBar.getWidth() / (max - min)) > 0)
                                            --- 428,434 ----
                                                     {
                                                       // The progress dialog is being displayed. We now calculate
                                                       // whether setting the progress bar to the current progress
                                            !          // value would result in a visual difference.
                                                       int delta = progress - progressBar.getValue();
                                              
                                                       if ((delta * progressBar.getWidth() / (max - min)) > 0)
                                            *************** public class ProgressMonitor
                                            *** 447,456 ****
                                                    timestamp = now;
                                                  }
                                                }
                                            !   
                                                /**
                                                 * Gets the accessible context.
                                            !    * 
                                                 * @return the accessible context.
                                                 */
                                                public AccessibleContext getAccessibleContext()
                                            --- 447,456 ----
                                                    timestamp = now;
                                                  }
                                                }
                                            ! 
                                                /**
                                                 * Gets the accessible context.
                                            !    *
                                                 * @return the accessible context.
                                                 */
                                                public AccessibleContext getAccessibleContext()
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ProgressMonitorInputStream.java gcc-4.6.0/libjava/classpath/javax/swing/ProgressMonitorInputStream.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/ProgressMonitorInputStream.java	Mon Aug 14 23:12:35 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/ProgressMonitorInputStream.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.io.IOException;
                                            *** 47,54 ****
                                              
                                              /**
                                               * An input stream with a {@link ProgressMonitor}.
                                            !  * 
                                            !  * @author	Andrew Selkirk
                                               * @author  Robert Schuster (robertschuster@fsfe.org)
                                               * @status updated to 1.2
                                               * @since 1.2
                                            --- 47,54 ----
                                              
                                              /**
                                               * An input stream with a {@link ProgressMonitor}.
                                            !  *
                                            !  * @author      Andrew Selkirk
                                               * @author  Robert Schuster (robertschuster@fsfe.org)
                                               * @status updated to 1.2
                                               * @since 1.2
                                            *************** public class ProgressMonitorInputStream 
                                            *** 68,74 ****
                                              
                                                /**
                                                 * Creates a new ProgressMonitorInputStream.
                                            !    * 
                                                 * @param component  the parent component for the progress monitor dialog.
                                                 * @param message  the task description.
                                                 * @param stream  the underlying input stream.
                                            --- 68,74 ----
                                              
                                                /**
                                                 * Creates a new ProgressMonitorInputStream.
                                            !    *
                                                 * @param component  the parent component for the progress monitor dialog.
                                                 * @param message  the task description.
                                                 * @param stream  the underlying input stream.
                                            *************** public class ProgressMonitorInputStream 
                                            *** 79,85 ****
                                                  super(stream);
                                              
                                                  int max = 0;
                                            ! 	
                                                  try
                                                    {
                                                      max = stream.available();
                                            --- 79,85 ----
                                                  super(stream);
                                              
                                                  int max = 0;
                                            ! 
                                                  try
                                                    {
                                                      max = stream.available();
                                            *************** public class ProgressMonitorInputStream 
                                            *** 94,100 ****
                                              
                                                /**
                                                 * Resets the input stream to the point where {@link #mark(int)} was called.
                                            !    * 
                                                 * @exception IOException TODO
                                                 */
                                                public void reset() throws IOException
                                            --- 94,100 ----
                                              
                                                /**
                                                 * Resets the input stream to the point where {@link #mark(int)} was called.
                                            !    *
                                                 * @exception IOException TODO
                                                 */
                                                public void reset() throws IOException
                                            *************** public class ProgressMonitorInputStream 
                                            *** 108,119 ****
                                                }
                                              
                                                /**
                                            !    * Reads an unsigned byte from the input stream and returns it as an 
                                            !    * int in the range of 0-255.  Returns -1 if the end of the 
                                                 * stream has been reached.  The progress monitor is updated.
                                            !    * 
                                                 * @return int
                                            !    * 
                                                 * @exception IOException if there is a problem reading the stream.
                                                 */
                                                public int read() throws IOException
                                            --- 108,119 ----
                                                }
                                              
                                                /**
                                            !    * Reads an unsigned byte from the input stream and returns it as an
                                            !    * int in the range of 0-255.  Returns -1 if the end of the
                                                 * stream has been reached.  The progress monitor is updated.
                                            !    *
                                                 * @return int
                                            !    *
                                                 * @exception IOException if there is a problem reading the stream.
                                                 */
                                                public int read() throws IOException
                                            *************** public class ProgressMonitorInputStream 
                                            *** 129,142 ****
                                              
                                                /**
                                                 * Reads bytes from the input stream and stores them in the supplied array,
                                            !    * and updates the progress monitor (or closes it if the end of the stream 
                                                 * is reached).
                                            !    * 
                                                 * @param data  the data array for returning bytes read from the stream.
                                            !    * 
                                                 * @return The number of bytes read, or -1 if there are no more bytes in the
                                                 *         stream.
                                            !    *         
                                                 * @throws IOException if there is a problem reading bytes from the stream.
                                                 */
                                                public int read(byte[] data) throws IOException
                                            --- 129,142 ----
                                              
                                                /**
                                                 * Reads bytes from the input stream and stores them in the supplied array,
                                            !    * and updates the progress monitor (or closes it if the end of the stream
                                                 * is reached).
                                            !    *
                                                 * @param data  the data array for returning bytes read from the stream.
                                            !    *
                                                 * @return The number of bytes read, or -1 if there are no more bytes in the
                                                 *         stream.
                                            !    *
                                                 * @throws IOException if there is a problem reading bytes from the stream.
                                                 */
                                                public int read(byte[] data) throws IOException
                                            *************** public class ProgressMonitorInputStream 
                                            *** 159,175 ****
                                                }
                                              
                                                /**
                                            !    * Reads up to length bytes from the input stream and stores 
                                            !    * them in the supplied array at the given index, and updates the progress 
                                                 * monitor (or closes it if the end of the stream is reached).
                                                 *
                                                 * @param data  the data array for returning bytes read from the stream.
                                            !    * @param offset  the offset into the array where the bytes should be written. 
                                                 * @param length  the maximum number of bytes to read from the stream.
                                            !    * 
                                                 * @return The number of bytes read, or -1 if there are no more bytes in the
                                                 *         stream.
                                            !    *         
                                                 * @throws IOException if there is a problem reading bytes from the stream.
                                                 */
                                                public int read(byte[] data, int offset, int length) throws IOException
                                            --- 159,175 ----
                                                }
                                              
                                                /**
                                            !    * Reads up to length bytes from the input stream and stores
                                            !    * them in the supplied array at the given index, and updates the progress
                                                 * monitor (or closes it if the end of the stream is reached).
                                                 *
                                                 * @param data  the data array for returning bytes read from the stream.
                                            !    * @param offset  the offset into the array where the bytes should be written.
                                                 * @param length  the maximum number of bytes to read from the stream.
                                            !    *
                                                 * @return The number of bytes read, or -1 if there are no more bytes in the
                                                 *         stream.
                                            !    *
                                                 * @throws IOException if there is a problem reading bytes from the stream.
                                                 */
                                                public int read(byte[] data, int offset, int length) throws IOException
                                            *************** public class ProgressMonitorInputStream 
                                            *** 192,204 ****
                                                }
                                              
                                                /**
                                            !    * Skips the specified number of bytes and updates the 
                                                 * {@link ProgressMonitor}.
                                            !    * 
                                                 * @param length the number of bytes to skip.
                                                 *
                                                 * @return The actual number of bytes skipped.
                                            !    * 
                                                 * @throws IOException if there is a problem skipping bytes in the stream.
                                                 */
                                                public long skip(long length) throws IOException
                                            --- 192,204 ----
                                                }
                                              
                                                /**
                                            !    * Skips the specified number of bytes and updates the
                                                 * {@link ProgressMonitor}.
                                            !    *
                                                 * @param length the number of bytes to skip.
                                                 *
                                                 * @return The actual number of bytes skipped.
                                            !    *
                                                 * @throws IOException if there is a problem skipping bytes in the stream.
                                                 */
                                                public long skip(long length) throws IOException
                                            *************** public class ProgressMonitorInputStream 
                                            *** 219,225 ****
                                              
                                                /**
                                                 * Closes the input stream and the associated {@link ProgressMonitor}.
                                            !    * 
                                                 * @throws IOException if there is a problem closing the input stream.
                                                 */
                                                public void close() throws IOException
                                            --- 219,225 ----
                                              
                                                /**
                                                 * Closes the input stream and the associated {@link ProgressMonitor}.
                                            !    *
                                                 * @throws IOException if there is a problem closing the input stream.
                                                 */
                                                public void close() throws IOException
                                            *************** public class ProgressMonitorInputStream 
                                            *** 230,236 ****
                                              
                                                /**
                                                 * Returns the {@link ProgressMonitor} used by this input stream.
                                            !    * 
                                                 * @return The progress monitor.
                                                 */
                                                public ProgressMonitor getProgressMonitor()
                                            --- 230,236 ----
                                              
                                                /**
                                                 * Returns the {@link ProgressMonitor} used by this input stream.
                                            !    *
                                                 * @return The progress monitor.
                                                 */
                                                public ProgressMonitor getProgressMonitor()
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/Renderer.java gcc-4.6.0/libjava/classpath/javax/swing/Renderer.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/Renderer.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/Renderer.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.awt.Component;
                                            *** 46,52 ****
                                               * javax.swing.tree.TreeCellRenderer}.
                                               *
                                               * @specnote This interface is not used and exists only for compatibility.
                                            !  *           
                                               * @author Andrew Selkirk
                                               */
                                              public interface Renderer
                                            --- 46,52 ----
                                               * javax.swing.tree.TreeCellRenderer}.
                                               *
                                               * @specnote This interface is not used and exists only for compatibility.
                                            !  *
                                               * @author Andrew Selkirk
                                               */
                                              public interface Renderer
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/RepaintManager.java gcc-4.6.0/libjava/classpath/javax/swing/RepaintManager.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/RepaintManager.java	Sat Jun 28 13:29:13 2008
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/RepaintManager.java	Tue Jan 11 19:46:05 2011
                                            *************** public class RepaintManager
                                            *** 115,121 ****
                                                    super.dispatch();
                                                  }
                                                }
                                            !   
                                                /**
                                                 * The current repaint managers, indexed by their ThreadGroups.
                                                 */
                                            --- 115,121 ----
                                                    super.dispatch();
                                                  }
                                                }
                                            ! 
                                                /**
                                                 * The current repaint managers, indexed by their ThreadGroups.
                                                 */
                                            *************** public class RepaintManager
                                            *** 150,156 ****
                                                    live = false;
                                                  }
                                              
                                            !     public synchronized void setLive(boolean b) 
                                                  {
                                                    live = b;
                                                  }
                                            --- 150,156 ----
                                                    live = false;
                                                  }
                                              
                                            !     public synchronized void setLive(boolean b)
                                                  {
                                                    live = b;
                                                  }
                                            *************** public class RepaintManager
                                            *** 178,184 ****
                                              
                                                }
                                              
                                            !   /** 
                                                 * A table storing the dirty regions of components.  The keys of this
                                                 * table are components, the values are rectangles. Each component maps
                                                 * to exactly one rectangle.  When more regions are marked as dirty on a
                                            --- 178,184 ----
                                              
                                                }
                                              
                                            !   /**
                                                 * A table storing the dirty regions of components.  The keys of this
                                                 * table are components, the values are rectangles. Each component maps
                                                 * to exactly one rectangle.  When more regions are marked as dirty on a
                                            *************** public class RepaintManager
                                            *** 212,218 ****
                                                 */
                                                private RepaintWorker repaintWorker;
                                              
                                            !   /** 
                                                 * The set of components which need revalidation, in the "layout" sense.
                                                 * There is no additional information about "what kind of layout" they
                                                 * need (as there is with dirty regions), so it is just a vector rather
                                            --- 212,218 ----
                                                 */
                                                private RepaintWorker repaintWorker;
                                              
                                            !   /**
                                                 * The set of components which need revalidation, in the "layout" sense.
                                                 * There is no additional information about "what kind of layout" they
                                                 * need (as there is with dirty regions), so it is just a vector rather
                                            *************** public class RepaintManager
                                            *** 224,234 ****
                                                 */
                                                private ArrayList invalidComponents;
                                              
                                            !   /** 
                                                 * Whether or not double buffering is enabled on this repaint
                                                 * manager. This is merely a hint to clients; the RepaintManager will
                                                 * always return an offscreen buffer when one is requested.
                                            !    * 
                                                 * @see #isDoubleBufferingEnabled
                                                 * @see #setDoubleBufferingEnabled
                                                 */
                                            --- 224,234 ----
                                                 */
                                                private ArrayList invalidComponents;
                                              
                                            !   /**
                                                 * Whether or not double buffering is enabled on this repaint
                                                 * manager. This is merely a hint to clients; the RepaintManager will
                                                 * always return an offscreen buffer when one is requested.
                                            !    *
                                                 * @see #isDoubleBufferingEnabled
                                                 * @see #setDoubleBufferingEnabled
                                                 */
                                            *************** public class RepaintManager
                                            *** 478,484 ****
                                                    dirty = new Rectangle();
                                                  return dirty;
                                                }
                                            !   
                                                /**
                                                 * Mark a component as dirty over its entire bounds.
                                                 *
                                            --- 478,484 ----
                                                    dirty = new Rectangle();
                                                  return dirty;
                                                }
                                            ! 
                                                /**
                                                 * Mark a component as dirty over its entire bounds.
                                                 *
                                            *************** public class RepaintManager
                                            *** 605,611 ****
                                                 * hierarchy of dirty to find the highest parent that is also
                                                 * marked dirty and merges the dirty regions.
                                                 *
                                            !    * @param dirtyRegions the dirty regions 
                                                 * @param dirty the component for which to find the repaint root
                                                 * @param roots the list to which new repaint roots get appended
                                                 */
                                            --- 605,611 ----
                                                 * hierarchy of dirty to find the highest parent that is also
                                                 * marked dirty and merges the dirty regions.
                                                 *
                                            !    * @param dirtyRegions the dirty regions
                                                 * @param dirty the component for which to find the repaint root
                                                 * @param roots the list to which new repaint roots get appended
                                                 */
                                            *************** public class RepaintManager
                                            *** 617,623 ****
                                              
                                                  // This will contain the dirty region in the root coordinate system,
                                                  // possibly clipped by ancestor's bounds.
                                            !     Rectangle originalDirtyRect = (Rectangle) dirtyRegions.get(dirty); 
                                                  rectCache.setBounds(originalDirtyRect);
                                              
                                                  // The bounds of the current component.
                                            --- 617,623 ----
                                              
                                                  // This will contain the dirty region in the root coordinate system,
                                                  // possibly clipped by ancestor's bounds.
                                            !     Rectangle originalDirtyRect = (Rectangle) dirtyRegions.get(dirty);
                                                  rectCache.setBounds(originalDirtyRect);
                                              
                                                  // The bounds of the current component.
                                            *************** public class RepaintManager
                                            *** 631,637 ****
                                                  if (rectCache.isEmpty())
                                                    return;
                                              
                                            !     // The cumulated offsets. 
                                                  int dx = 0;
                                                  int dy = 0;
                                                  // The actual offset for the found root.
                                            --- 631,637 ----
                                                  if (rectCache.isEmpty())
                                                    return;
                                              
                                            !     // The cumulated offsets.
                                                  int dx = 0;
                                                  int dy = 0;
                                                  // The actual offset for the found root.
                                            *************** public class RepaintManager
                                            *** 652,658 ****
                                                      dy += y;
                                                      rectCache.x += x;
                                                      rectCache.y += y;
                                            !         
                                                      x = current.getX();
                                                      y = current.getY();
                                                      w = current.getWidth();
                                            --- 652,658 ----
                                                      dy += y;
                                                      rectCache.x += x;
                                                      rectCache.y += y;
                                            ! 
                                                      x = current.getX();
                                                      y = current.getY();
                                                      w = current.getWidth();
                                            *************** public class RepaintManager
                                            *** 705,712 ****
                                                {
                                                  Component root = SwingUtilities.getWindowAncestor(component);
                                                  Image buffer = (Image) offscreenBuffers.get(root);
                                            !     if (buffer == null 
                                            !         || buffer.getWidth(null) < proposedWidth 
                                                      || buffer.getHeight(null) < proposedHeight)
                                                    {
                                                      int width = Math.max(proposedWidth, root.getWidth());
                                            --- 705,712 ----
                                                {
                                                  Component root = SwingUtilities.getWindowAncestor(component);
                                                  Image buffer = (Image) offscreenBuffers.get(root);
                                            !     if (buffer == null
                                            !         || buffer.getWidth(null) < proposedWidth
                                                      || buffer.getHeight(null) < proposedHeight)
                                                    {
                                                      int width = Math.max(proposedWidth, root.getWidth());
                                            *************** public class RepaintManager
                                            *** 733,743 ****
                                                {
                                                  Component root = comp;
                                                  while (root != null
                                            ! 	   && ! (root instanceof Window || root instanceof Applet))
                                                    {
                                            ! 	x += root.getX();
                                            ! 	y += root.getY();
                                            ! 	root = root.getParent();
                                                    }
                                              
                                                  if (root != null)
                                            --- 733,743 ----
                                                {
                                                  Component root = comp;
                                                  while (root != null
                                            !            && ! (root instanceof Window || root instanceof Applet))
                                                    {
                                            !         x += root.getX();
                                            !         y += root.getY();
                                            !         root = root.getParent();
                                                    }
                                              
                                                  if (root != null)
                                            *************** public class RepaintManager
                                            *** 774,781 ****
                                                {
                                                  Component root = SwingUtilities.getWindowAncestor(comp);
                                                  Image buffer = (Image) offscreenBuffers.get(root);
                                            !     if (buffer == null 
                                            !         || buffer.getWidth(null) < proposedWidth 
                                                      || buffer.getHeight(null) < proposedHeight
                                                      || !(buffer instanceof VolatileImage))
                                                    {
                                            --- 774,781 ----
                                                {
                                                  Component root = SwingUtilities.getWindowAncestor(comp);
                                                  Image buffer = (Image) offscreenBuffers.get(root);
                                            !     if (buffer == null
                                            !         || buffer.getWidth(null) < proposedWidth
                                                      || buffer.getHeight(null) < proposedHeight
                                                      || !(buffer instanceof VolatileImage))
                                                    {
                                            *************** public class RepaintManager
                                            *** 789,795 ****
                                                    }
                                                  return buffer;
                                                }
                                            !   
                                              
                                                /**
                                                 * Get the value of the {@link #doubleBufferMaximumSize} property.
                                            --- 789,795 ----
                                                    }
                                                  return buffer;
                                                }
                                            ! 
                                              
                                                /**
                                                 * Get the value of the {@link #doubleBufferMaximumSize} property.
                                            *************** public class RepaintManager
                                            *** 838,844 ****
                                                {
                                                  return doubleBufferingEnabled;
                                                }
                                            !   
                                                public String toString()
                                                {
                                                  return "RepaintManager";
                                            --- 838,844 ----
                                                {
                                                  return doubleBufferingEnabled;
                                                }
                                            ! 
                                                public String toString()
                                                {
                                                  return "RepaintManager";
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ScrollPaneLayout.java gcc-4.6.0/libjava/classpath/javax/swing/ScrollPaneLayout.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/ScrollPaneLayout.java	Tue Jan  9 19:58:05 2007
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/ScrollPaneLayout.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.border.Border;
                                            *** 50,64 ****
                                              
                                              /**
                                               * ScrollPaneLayout
                                            !  * @author	Andrew Selkirk
                                            !  * @version	1.0
                                               */
                                              public class ScrollPaneLayout
                                                implements LayoutManager, ScrollPaneConstants, Serializable
                                              {
                                                private static final long serialVersionUID = -4480022884523193743L;
                                              
                                            !   public static class UIResource extends ScrollPaneLayout 
                                                  implements javax.swing.plaf.UIResource
                                                {
                                                  public UIResource()
                                            --- 50,64 ----
                                              
                                              /**
                                               * ScrollPaneLayout
                                            !  * @author      Andrew Selkirk
                                            !  * @version     1.0
                                               */
                                              public class ScrollPaneLayout
                                                implements LayoutManager, ScrollPaneConstants, Serializable
                                              {
                                                private static final long serialVersionUID = -4480022884523193743L;
                                              
                                            !   public static class UIResource extends ScrollPaneLayout
                                                  implements javax.swing.plaf.UIResource
                                                {
                                                  public UIResource()
                                            *************** public class ScrollPaneLayout
                                            *** 81,90 ****
                                              
                                                public ScrollPaneLayout()
                                                {
                                            ! 	// Nothing to do here.
                                                }
                                              
                                            !   public void syncWithScrollPane(JScrollPane scrollPane) 
                                                {
                                                  viewport = scrollPane.getViewport();
                                                  rowHead = scrollPane.getRowHeader();
                                            --- 81,90 ----
                                              
                                                public ScrollPaneLayout()
                                                {
                                            !         // Nothing to do here.
                                                }
                                              
                                            !   public void syncWithScrollPane(JScrollPane scrollPane)
                                                {
                                                  viewport = scrollPane.getViewport();
                                                  rowHead = scrollPane.getRowHeader();
                                            *************** public class ScrollPaneLayout
                                            *** 96,102 ****
                                                  lowerLeft = scrollPane.getCorner(LOWER_LEFT_CORNER);
                                                  lowerRight = scrollPane.getCorner(LOWER_RIGHT_CORNER);
                                                  upperLeft = scrollPane.getCorner(UPPER_LEFT_CORNER);
                                            !     upperRight = scrollPane.getCorner(UPPER_RIGHT_CORNER);    
                                                }
                                              
                                                /**
                                            --- 96,102 ----
                                                  lowerLeft = scrollPane.getCorner(LOWER_LEFT_CORNER);
                                                  lowerRight = scrollPane.getCorner(LOWER_RIGHT_CORNER);
                                                  upperLeft = scrollPane.getCorner(UPPER_LEFT_CORNER);
                                            !     upperRight = scrollPane.getCorner(UPPER_RIGHT_CORNER);
                                                }
                                              
                                                /**
                                            *************** public class ScrollPaneLayout
                                            *** 108,114 ****
                                                 * @return the newComponent
                                                 */
                                                protected Component addSingletonComponent(Component oldComponent,
                                            !                                             Component newComponent) 
                                                {
                                                  if (oldComponent != null && oldComponent != newComponent)
                                                    oldComponent.getParent().remove(oldComponent);
                                            --- 108,114 ----
                                                 * @return the newComponent
                                                 */
                                                protected Component addSingletonComponent(Component oldComponent,
                                            !                                             Component newComponent)
                                                {
                                                  if (oldComponent != null && oldComponent != newComponent)
                                                    oldComponent.getParent().remove(oldComponent);
                                            *************** public class ScrollPaneLayout
                                            *** 116,122 ****
                                                }
                                              
                                                /**
                                            !    * Add the specified component to the layout. 
                                                 * @param key must be one of VIEWPORT, VERTICAL_SCROLLBAR,
                                                 * HORIZONTAL_SCROLLBAR, ROW_HEADER, COLUMN_HEADER,
                                                 * LOWER_RIGHT_CORNER, LOWER_LEFT_CORNER, UPPER_RIGHT_CORNER,
                                            --- 116,122 ----
                                                }
                                              
                                                /**
                                            !    * Add the specified component to the layout.
                                                 * @param key must be one of VIEWPORT, VERTICAL_SCROLLBAR,
                                                 * HORIZONTAL_SCROLLBAR, ROW_HEADER, COLUMN_HEADER,
                                                 * LOWER_RIGHT_CORNER, LOWER_LEFT_CORNER, UPPER_RIGHT_CORNER,
                                            *************** public class ScrollPaneLayout
                                            *** 124,130 ****
                                                 * @param component the Component to add
                                                 * @throws IllegalArgumentException if key is not as above
                                                 */
                                            !   public void addLayoutComponent(String key, Component component) 
                                                {
                                                  if (key == VIEWPORT)
                                                    viewport = (JViewport) component;
                                            --- 124,130 ----
                                                 * @param component the Component to add
                                                 * @throws IllegalArgumentException if key is not as above
                                                 */
                                            !   public void addLayoutComponent(String key, Component component)
                                                {
                                                  if (key == VIEWPORT)
                                                    viewport = (JViewport) component;
                                            *************** public class ScrollPaneLayout
                                            *** 148,154 ****
                                                    throw new IllegalArgumentException();
                                                }
                                              
                                            !   public void removeLayoutComponent(Component component) 
                                                {
                                                  if (component == viewport)
                                                    viewport = null;
                                            --- 148,154 ----
                                                    throw new IllegalArgumentException();
                                                }
                                              
                                            !   public void removeLayoutComponent(Component component)
                                                {
                                                  if (component == viewport)
                                                    viewport = null;
                                            *************** public class ScrollPaneLayout
                                            *** 174,180 ****
                                                {
                                                  return vsbPolicy;
                                                }
                                            !   
                                                /**
                                                 * Sets the vertical scrollbar policy.
                                                 * @param policy must be one of VERTICAL_SCROLLBAR_AS_NEEDED,
                                            --- 174,180 ----
                                                {
                                                  return vsbPolicy;
                                                }
                                            ! 
                                                /**
                                                 * Sets the vertical scrollbar policy.
                                                 * @param policy must be one of VERTICAL_SCROLLBAR_AS_NEEDED,
                                            *************** public class ScrollPaneLayout
                                            *** 184,190 ****
                                                 */
                                                public void setVerticalScrollBarPolicy(int policy)
                                                {
                                            !     if (policy != VERTICAL_SCROLLBAR_AS_NEEDED && 
                                                      policy != VERTICAL_SCROLLBAR_NEVER &&
                                                      policy != VERTICAL_SCROLLBAR_ALWAYS)
                                                    throw new IllegalArgumentException("Illegal Scrollbar Policy");
                                            --- 184,190 ----
                                                 */
                                                public void setVerticalScrollBarPolicy(int policy)
                                                {
                                            !     if (policy != VERTICAL_SCROLLBAR_AS_NEEDED &&
                                                      policy != VERTICAL_SCROLLBAR_NEVER &&
                                                      policy != VERTICAL_SCROLLBAR_ALWAYS)
                                                    throw new IllegalArgumentException("Illegal Scrollbar Policy");
                                            *************** public class ScrollPaneLayout
                                            *** 200,211 ****
                                                 * Sets the horizontal scrollbar policy.
                                                 * @param policy must be one of HORIZONTAL_SCROLLBAR_AS_NEEDED,
                                                 * HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_ALWAYS.
                                            !    * @throws IllegalArgumentException if policy is not one of the valid 
                                                 * JScrollbar policies.
                                                 */
                                                public void setHorizontalScrollBarPolicy(int policy)
                                                {
                                            !     if (policy != HORIZONTAL_SCROLLBAR_AS_NEEDED && 
                                                      policy != HORIZONTAL_SCROLLBAR_NEVER &&
                                                      policy != HORIZONTAL_SCROLLBAR_ALWAYS)
                                                    throw new IllegalArgumentException("Illegal Scrollbar Policy");
                                            --- 200,211 ----
                                                 * Sets the horizontal scrollbar policy.
                                                 * @param policy must be one of HORIZONTAL_SCROLLBAR_AS_NEEDED,
                                                 * HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_ALWAYS.
                                            !    * @throws IllegalArgumentException if policy is not one of the valid
                                                 * JScrollbar policies.
                                                 */
                                                public void setHorizontalScrollBarPolicy(int policy)
                                                {
                                            !     if (policy != HORIZONTAL_SCROLLBAR_AS_NEEDED &&
                                                      policy != HORIZONTAL_SCROLLBAR_NEVER &&
                                                      policy != HORIZONTAL_SCROLLBAR_ALWAYS)
                                                    throw new IllegalArgumentException("Illegal Scrollbar Policy");
                                            *************** public class ScrollPaneLayout
                                            *** 256,262 ****
                                                  return null;
                                                }
                                              
                                            !   public Dimension preferredLayoutSize(Container parent) 
                                                {
                                                  // Sun's implementation simply throws a ClassCastException if
                                                  // parent is no JScrollPane, so do we.
                                            --- 256,262 ----
                                                  return null;
                                                }
                                              
                                            !   public Dimension preferredLayoutSize(Container parent)
                                                {
                                                  // Sun's implementation simply throws a ClassCastException if
                                                  // parent is no JScrollPane, so do we.
                                            *************** public class ScrollPaneLayout
                                            *** 343,349 ****
                                                 *     | c3 |    h scrollbar     | c4 |
                                                 *     +----+--------------------+----+ y4
                                                 *    x1   x2                   x3   x4
                                            !    *   
                                                 */
                                                public void layoutContainer(Container parent)
                                                {
                                            --- 343,349 ----
                                                 *     | c3 |    h scrollbar     | c4 |
                                                 *     +----+--------------------+----+ y4
                                                 *    x1   x2                   x3   x4
                                            !    *
                                                 */
                                                public void layoutContainer(Container parent)
                                                {
                                            *************** public class ScrollPaneLayout
                                            *** 352,362 ****
                                                  JScrollPane sc = (JScrollPane) parent;
                                                  JViewport viewport = sc.getViewport();
                                                  Component view = viewport.getView();
                                            !     
                                                  // If there is no view in the viewport, there is no work to be done.
                                                  if (view == null)
                                                    return;
                                            !     
                                                  Dimension viewSize = viewport.getView().getPreferredSize();
                                              
                                                  int x1 = 0, x2 = 0, x3 = 0, x4 = 0;
                                            --- 352,362 ----
                                                  JScrollPane sc = (JScrollPane) parent;
                                                  JViewport viewport = sc.getViewport();
                                                  Component view = viewport.getView();
                                            ! 
                                                  // If there is no view in the viewport, there is no work to be done.
                                                  if (view == null)
                                                    return;
                                            ! 
                                                  Dimension viewSize = viewport.getView().getPreferredSize();
                                              
                                                  int x1 = 0, x2 = 0, x3 = 0, x4 = 0;
                                            *************** public class ScrollPaneLayout
                                            *** 388,430 ****
                                              
                                                  int vsbPolicy = sc.getVerticalScrollBarPolicy();
                                                  int hsbPolicy = sc.getHorizontalScrollBarPolicy();
                                            !     
                                                  int vsWidth = 0;
                                                  int hsHeight = 0;
                                              
                                            !     boolean showVsb = 
                                                    (vsb != null)
                                                    && ((vsbPolicy == VERTICAL_SCROLLBAR_ALWAYS)
                                            !           || (vsbPolicy == VERTICAL_SCROLLBAR_AS_NEEDED 
                                                            && viewSize.height > (y4 - y2)));
                                            !     
                                                  if (showVsb)
                                                    vsWidth = vsb.getPreferredSize().width;
                                            !     
                                                  // The horizontal scroll bar may become necessary if the vertical scroll
                                                  // bar appears, reducing the space, left for the component.
                                            !     
                                            !     boolean showHsb = 
                                                    (hsb != null)
                                                    && ((hsbPolicy == HORIZONTAL_SCROLLBAR_ALWAYS)
                                            !           || (hsbPolicy == HORIZONTAL_SCROLLBAR_AS_NEEDED 
                                                            && viewSize.width > (x4 - x2 - vsWidth)));
                                            !     
                                                  if (showHsb)
                                                    hsHeight = hsb.getPreferredSize().height;
                                            !     
                                                  // If the horizontal scroll bar appears, and the vertical scroll bar
                                                  // was not necessary assuming that there is no horizontal scroll bar,
                                                  // the vertical scroll bar may become necessary because the horizontal
                                                  // scroll bar reduces the vertical space for the component.
                                                  if (!showVsb)
                                                    {
                                            !         showVsb = 
                                                        (vsb != null)
                                                        && ((vsbPolicy == VERTICAL_SCROLLBAR_ALWAYS)
                                            !               || (vsbPolicy == VERTICAL_SCROLLBAR_AS_NEEDED 
                                                                && viewSize.height > (y4 - y2)));
                                            !     
                                                      if (showVsb)
                                                        vsWidth = vsb.getPreferredSize().width;
                                                    }
                                            --- 388,430 ----
                                              
                                                  int vsbPolicy = sc.getVerticalScrollBarPolicy();
                                                  int hsbPolicy = sc.getHorizontalScrollBarPolicy();
                                            ! 
                                                  int vsWidth = 0;
                                                  int hsHeight = 0;
                                              
                                            !     boolean showVsb =
                                                    (vsb != null)
                                                    && ((vsbPolicy == VERTICAL_SCROLLBAR_ALWAYS)
                                            !           || (vsbPolicy == VERTICAL_SCROLLBAR_AS_NEEDED
                                                            && viewSize.height > (y4 - y2)));
                                            ! 
                                                  if (showVsb)
                                                    vsWidth = vsb.getPreferredSize().width;
                                            ! 
                                                  // The horizontal scroll bar may become necessary if the vertical scroll
                                                  // bar appears, reducing the space, left for the component.
                                            ! 
                                            !     boolean showHsb =
                                                    (hsb != null)
                                                    && ((hsbPolicy == HORIZONTAL_SCROLLBAR_ALWAYS)
                                            !           || (hsbPolicy == HORIZONTAL_SCROLLBAR_AS_NEEDED
                                                            && viewSize.width > (x4 - x2 - vsWidth)));
                                            ! 
                                                  if (showHsb)
                                                    hsHeight = hsb.getPreferredSize().height;
                                            ! 
                                                  // If the horizontal scroll bar appears, and the vertical scroll bar
                                                  // was not necessary assuming that there is no horizontal scroll bar,
                                                  // the vertical scroll bar may become necessary because the horizontal
                                                  // scroll bar reduces the vertical space for the component.
                                                  if (!showVsb)
                                                    {
                                            !         showVsb =
                                                        (vsb != null)
                                                        && ((vsbPolicy == VERTICAL_SCROLLBAR_ALWAYS)
                                            !               || (vsbPolicy == VERTICAL_SCROLLBAR_AS_NEEDED
                                                                && viewSize.height > (y4 - y2)));
                                            ! 
                                                      if (showVsb)
                                                        vsWidth = vsb.getPreferredSize().width;
                                                    }
                                            *************** public class ScrollPaneLayout
                                            *** 482,488 ****
                                                 * @deprecated As of Swing 1.1 replaced by
                                                 *     {@link javax.swing.JScrollPane#getViewportBorderBounds}.
                                                 */
                                            !   public Rectangle getViewportBorderBounds(JScrollPane scrollPane) 
                                                {
                                                  return null;
                                                }
                                            --- 482,488 ----
                                                 * @deprecated As of Swing 1.1 replaced by
                                                 *     {@link javax.swing.JScrollPane#getViewportBorderBounds}.
                                                 */
                                            !   public Rectangle getViewportBorderBounds(JScrollPane scrollPane)
                                                {
                                                  return null;
                                                }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/Scrollable.java gcc-4.6.0/libjava/classpath/javax/swing/Scrollable.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/Scrollable.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/Scrollable.java	Tue Jan 11 19:46:05 2011
                                            ***************
                                            *** 1,4 ****
                                            ! /* Scrollable.java -- 
                                                 Copyright (C) 2002, 2004 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            --- 1,4 ----
                                            ! /* Scrollable.java --
                                                 Copyright (C) 2002, 2004 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            *************** public interface Scrollable
                                            *** 54,67 ****
                                                 * Return the preferred scrolling amount (in pixels) for the given
                                                 * scrolling direction and orientation when scrolling in small amounts
                                                 * like table lines.
                                            !    * 
                                            !    * @param visibleRect the currently visible part of the component. 
                                                 * @param orientation the scrolling orientation
                                                 * @param direction the scrolling direction (negative - up, positive -down).
                                            !    * The values greater than one means that more mouse wheel or similar 
                                                 * events were generated, and hence it is better to scroll the longer
                                                 * distance.
                                            !    * 
                                                 * @return the preferred scrolling distance, negative if up or left.
                                                 */
                                                int getScrollableUnitIncrement(Rectangle visibleRect, int orientation,
                                            --- 54,67 ----
                                                 * Return the preferred scrolling amount (in pixels) for the given
                                                 * scrolling direction and orientation when scrolling in small amounts
                                                 * like table lines.
                                            !    *
                                            !    * @param visibleRect the currently visible part of the component.
                                                 * @param orientation the scrolling orientation
                                                 * @param direction the scrolling direction (negative - up, positive -down).
                                            !    * The values greater than one means that more mouse wheel or similar
                                                 * events were generated, and hence it is better to scroll the longer
                                                 * distance.
                                            !    *
                                                 * @return the preferred scrolling distance, negative if up or left.
                                                 */
                                                int getScrollableUnitIncrement(Rectangle visibleRect, int orientation,
                                            *************** public interface Scrollable
                                            *** 71,85 ****
                                                 * Return the preferred scrolling amount (in pixels) for the given
                                                 * scrolling direction and orientation when scrolling in large amounts
                                                 * (pages).
                                            !    * 
                                            !    * @param visibleRect the currently visible part of the component. 
                                                 * @param orientation the scrolling orientation
                                                 * @param direction the scrolling direction (negative - up, positive -down).
                                            !    * The values greater than one means that more mouse wheel or similar 
                                                 * events were generated, and hence it is better to scroll the longer
                                                 * distance.
                                            !    * 
                                            !    * @return the preferred scrolling distance, negative if up or left. 
                                                 */
                                                int getScrollableBlockIncrement(Rectangle visibleRect, int orientation,
                                                                                int direction);
                                            --- 71,85 ----
                                                 * Return the preferred scrolling amount (in pixels) for the given
                                                 * scrolling direction and orientation when scrolling in large amounts
                                                 * (pages).
                                            !    *
                                            !    * @param visibleRect the currently visible part of the component.
                                                 * @param orientation the scrolling orientation
                                                 * @param direction the scrolling direction (negative - up, positive -down).
                                            !    * The values greater than one means that more mouse wheel or similar
                                                 * events were generated, and hence it is better to scroll the longer
                                                 * distance.
                                            !    *
                                            !    * @return the preferred scrolling distance, negative if up or left.
                                                 */
                                                int getScrollableBlockIncrement(Rectangle visibleRect, int orientation,
                                                                                int direction);
                                            *************** public interface Scrollable
                                            *** 89,95 ****
                                                 * view, where it is displayed, width (for instance, the text area with
                                                 * the word wrap). In such case, the horizontal scrolling should not be
                                                 * performed.
                                            !    * 
                                                 * @return true is no horizontal scrolling is assumed, faster otherwise.
                                                 */
                                                boolean getScrollableTracksViewportWidth();
                                            --- 89,95 ----
                                                 * view, where it is displayed, width (for instance, the text area with
                                                 * the word wrap). In such case, the horizontal scrolling should not be
                                                 * performed.
                                            !    *
                                                 * @return true is no horizontal scrolling is assumed, faster otherwise.
                                                 */
                                                boolean getScrollableTracksViewportWidth();
                                            *************** public interface Scrollable
                                            *** 98,104 ****
                                                 * Return true if the height of the scrollable is always equal to the view,
                                                 * where it is displayed, height.In such case, the vertical scrolling should
                                                 * not be performed.
                                            !    * 
                                                 * @return true is no horizontal scrolling is assumed, faster otherwise.
                                                 */
                                                boolean getScrollableTracksViewportHeight();
                                            --- 98,104 ----
                                                 * Return true if the height of the scrollable is always equal to the view,
                                                 * where it is displayed, height.In such case, the vertical scrolling should
                                                 * not be performed.
                                            !    *
                                                 * @return true is no horizontal scrolling is assumed, faster otherwise.
                                                 */
                                                boolean getScrollableTracksViewportHeight();
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SingleSelectionModel.java gcc-4.6.0/libjava/classpath/javax/swing/SingleSelectionModel.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/SingleSelectionModel.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/SingleSelectionModel.java	Tue Jan 11 19:46:05 2011
                                            *************** public interface SingleSelectionModel
                                            *** 51,69 ****
                                              {
                                                /**
                                                 * Returns the selected index or -1 if there is no selection.
                                            !    * 
                                                 * @return The selected index.
                                            !    * 
                                                 * @see #setSelectedIndex(int)
                                                 */
                                                int getSelectedIndex();
                                              
                                                /**
                                            !    * Sets the selected index and, if this is different to the previous 
                                                 * selection, sends a {@link ChangeEvent} to all registered listeners.
                                            !    * 
                                                 * @param index  the index (use -1 to represent no selection).
                                            !    * 
                                                 * @see #getSelectedIndex()
                                                 * @see #clearSelection
                                                 */
                                            --- 51,69 ----
                                              {
                                                /**
                                                 * Returns the selected index or -1 if there is no selection.
                                            !    *
                                                 * @return The selected index.
                                            !    *
                                                 * @see #setSelectedIndex(int)
                                                 */
                                                int getSelectedIndex();
                                              
                                                /**
                                            !    * Sets the selected index and, if this is different to the previous
                                                 * selection, sends a {@link ChangeEvent} to all registered listeners.
                                            !    *
                                                 * @param index  the index (use -1 to represent no selection).
                                            !    *
                                                 * @see #getSelectedIndex()
                                                 * @see #clearSelection
                                                 */
                                            *************** public interface SingleSelectionModel
                                            *** 72,85 ****
                                                /**
                                                 * Clears the selection by setting the selected index to -1 and
                                                 * sends a {@link ChangeEvent} to all registered listeners.  If the selected
                                            !    * index is already -1, this method does nothing.  
                                                 */
                                                void clearSelection();
                                              
                                                /**
                                                 * Returns true if there is a selection, and false
                                            !    * otherwise.  
                                            !    * 
                                                 * @return A boolean.
                                                 */
                                                boolean isSelected();
                                            --- 72,85 ----
                                                /**
                                                 * Clears the selection by setting the selected index to -1 and
                                                 * sends a {@link ChangeEvent} to all registered listeners.  If the selected
                                            !    * index is already -1, this method does nothing.
                                                 */
                                                void clearSelection();
                                              
                                                /**
                                                 * Returns true if there is a selection, and false
                                            !    * otherwise.
                                            !    *
                                                 * @return A boolean.
                                                 */
                                                boolean isSelected();
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SizeRequirements.java gcc-4.6.0/libjava/classpath/javax/swing/SizeRequirements.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/SizeRequirements.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/SizeRequirements.java	Tue Jan 11 19:46:05 2011
                                            *************** public class SizeRequirements implements
                                            *** 386,392 ****
                                                 *
                                                 * The components are tiled in the forward direction, beginning with
                                                 * an offset of 0.
                                            !    * 
                                                 * @param allocated the amount of allocated space
                                                 * @param total the total size requirements of the components
                                                 * @param children the size requirement of each component
                                            --- 386,392 ----
                                                 *
                                                 * The components are tiled in the forward direction, beginning with
                                                 * an offset of 0.
                                            !    *
                                                 * @param allocated the amount of allocated space
                                                 * @param total the total size requirements of the components
                                                 * @param children the size requirement of each component
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SizeSequence.java gcc-4.6.0/libjava/classpath/javax/swing/SizeSequence.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/SizeSequence.java	Tue Jan  9 19:58:05 2007
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/SizeSequence.java	Tue Jan 11 19:46:05 2011
                                            *************** package javax.swing;
                                            *** 40,56 ****
                                              import java.util.Arrays;
                                              
                                              /**
                                            !  * A sequence of values that represent the dimensions (widths or heights) of 
                                               * some collection of items (for example, the widths of the columns in a table).
                                            !  * 
                                            !  * @author	Andrew Selkirk
                                               */
                                              public class SizeSequence
                                              {
                                                // TODO: Sun's API specification for this class contains an implementation
                                                // note regarding the encoding for the element sizes.  We currently use the
                                                // simple size encoding but we should look at improving this.
                                            !   
                                                /** Storage for the element sizes. */
                                                private int[] sizes;
                                              
                                            --- 40,56 ----
                                              import java.util.Arrays;
                                              
                                              /**
                                            !  * A sequence of values that represent the dimensions (widths or heights) of
                                               * some collection of items (for example, the widths of the columns in a table).
                                            !  *
                                            !  * @author      Andrew Selkirk
                                               */
                                              public class SizeSequence
                                              {
                                                // TODO: Sun's API specification for this class contains an implementation
                                                // note regarding the encoding for the element sizes.  We currently use the
                                                // simple size encoding but we should look at improving this.
                                            ! 
                                                /** Storage for the element sizes. */
                                                private int[] sizes;
                                              
                                            *************** public class SizeSequence
                                            *** 63,71 ****
                                                }
                                              
                                                /**
                                            !    * Creates a new SizeSequence instance with the specified number 
                                                 * of elements, each having a size of 0.
                                            !    * 
                                                 * @param numEntries  the number of elements.
                                                 */
                                                public SizeSequence(int numEntries)
                                            --- 63,71 ----
                                                }
                                              
                                                /**
                                            !    * Creates a new SizeSequence instance with the specified number
                                                 * of elements, each having a size of 0.
                                            !    *
                                                 * @param numEntries  the number of elements.
                                                 */
                                                public SizeSequence(int numEntries)
                                            *************** public class SizeSequence
                                            *** 76,82 ****
                                                /**
                                                 * Creates a new SizeSequence instance with the specified number
                                                 * of elements all having the same size (value).
                                            !    * 
                                                 * @param numEntries  the number of elements.
                                                 * @param value  the value for each element.
                                                 */
                                            --- 76,82 ----
                                                /**
                                                 * Creates a new SizeSequence instance with the specified number
                                                 * of elements all having the same size (value).
                                            !    *
                                                 * @param numEntries  the number of elements.
                                                 * @param value  the value for each element.
                                                 */
                                            *************** public class SizeSequence
                                            *** 87,95 ****
                                                }
                                              
                                                /**
                                            !    * Creates a new SizeSequence instance using the specified 
                                                 * element sizes.
                                            !    * 
                                                 * @param sizes  the element sizes (null not permitted).
                                                 */
                                                public SizeSequence(int[] sizes)
                                            --- 87,95 ----
                                                }
                                              
                                                /**
                                            !    * Creates a new SizeSequence instance using the specified
                                                 * element sizes.
                                            !    *
                                                 * @param sizes  the element sizes (null not permitted).
                                                 */
                                                public SizeSequence(int[] sizes)
                                            *************** public class SizeSequence
                                            *** 99,105 ****
                                              
                                                /**
                                                 * Sets the size of the element at the specified index.
                                            !    * 
                                                 * @param index  the index.
                                                 * @param size  the size.
                                                 */
                                            --- 99,105 ----
                                              
                                                /**
                                                 * Sets the size of the element at the specified index.
                                            !    *
                                                 * @param index  the index.
                                                 * @param size  the size.
                                                 */
                                            *************** public class SizeSequence
                                            *** 111,126 ****
                                              
                                                /**
                                                 * Returns the index of the element that contains the specified position.
                                            !    * 
                                                 * @param position  the position.
                                            !    * 
                                                 * @return The index of the element that contains the specified position.
                                                 */
                                                public int getIndex(int position)
                                                {
                                                  int i = 0;
                                            !     int runningTotal = 0;  
                                            !     while (i < sizes.length && position >= runningTotal + sizes[i]) 
                                                    {
                                                      runningTotal += sizes[i];
                                                      i++;
                                            --- 111,126 ----
                                              
                                                /**
                                                 * Returns the index of the element that contains the specified position.
                                            !    *
                                                 * @param position  the position.
                                            !    *
                                                 * @return The index of the element that contains the specified position.
                                                 */
                                                public int getIndex(int position)
                                                {
                                                  int i = 0;
                                            !     int runningTotal = 0;
                                            !     while (i < sizes.length && position >= runningTotal + sizes[i])
                                                    {
                                                      runningTotal += sizes[i];
                                                      i++;
                                            *************** public class SizeSequence
                                            *** 131,139 ****
                                                /**
                                                 * Returns the size of the specified element, or 0 if the element index is
                                                 * outside the defined range.
                                            !    * 
                                                 * @param index  the element index.
                                            !    * 
                                                 * @return The size of the specified element, or 0 if the element index is
                                                 *     outside the defined range.
                                                 */
                                            --- 131,139 ----
                                                /**
                                                 * Returns the size of the specified element, or 0 if the element index is
                                                 * outside the defined range.
                                            !    *
                                                 * @param index  the element index.
                                            !    *
                                                 * @return The size of the specified element, or 0 if the element index is
                                                 *     outside the defined range.
                                                 */
                                            *************** public class SizeSequence
                                            *** 146,152 ****
                                              
                                                /**
                                                 * Sets the sizes for the elements in the sequence.
                                            !    * 
                                                 * @param sizes  the element sizes (null not permitted).
                                                 */
                                                public void setSizes(int[] sizes)
                                            --- 146,152 ----
                                              
                                                /**
                                                 * Sets the sizes for the elements in the sequence.
                                            !    *
                                                 * @param sizes  the element sizes (null not permitted).
                                                 */
                                                public void setSizes(int[] sizes)
                                            *************** public class SizeSequence
                                            *** 156,162 ****
                                              
                                                /**
                                                 * Returns an array containing the sizes for all the elements in the sequence.
                                            !    * 
                                                 * @return The element sizes.
                                                 */
                                                public int[] getSizes()
                                            --- 156,162 ----
                                              
                                                /**
                                                 * Returns an array containing the sizes for all the elements in the sequence.
                                            !    *
                                                 * @return The element sizes.
                                                 */
                                                public int[] getSizes()
                                            *************** public class SizeSequence
                                            *** 166,174 ****
                                              
                                                /**
                                                 * Returns the position of the specified element.
                                            !    * 
                                                 * @param index  the element index.
                                            !    * 
                                                 * @return The position.
                                                 */
                                                public int getPosition(int index)
                                            --- 166,174 ----
                                              
                                                /**
                                                 * Returns the position of the specified element.
                                            !    *
                                                 * @param index  the element index.
                                            !    *
                                                 * @return The position.
                                                 */
                                                public int getPosition(int index)
                                            *************** public class SizeSequence
                                            *** 186,192 ****
                                                 * Inserts new entries into the sequence at the start position.
                                                 * There are length new entries each having the specified
                                                 * value.
                                            !    * 
                                                 * @param start  the start element.
                                                 * @param length  the number of elements to insert.
                                                 * @param value  the size for each of the new elements.
                                            --- 186,192 ----
                                                 * Inserts new entries into the sequence at the start position.
                                                 * There are length new entries each having the specified
                                                 * value.
                                            !    *
                                                 * @param start  the start element.
                                                 * @param length  the number of elements to insert.
                                                 * @param value  the size for each of the new elements.
                                            *************** public class SizeSequence
                                            *** 197,203 ****
                                                  System.arraycopy(sizes, 0, newSizes, 0, start);
                                                  for (int i = start; i < start + length; i++)
                                                    newSizes[i] = value;
                                            !     System.arraycopy(sizes, start, newSizes, start + length, 
                                                                   sizes.length - start);
                                                  sizes = newSizes;
                                                }
                                            --- 197,203 ----
                                                  System.arraycopy(sizes, 0, newSizes, 0, start);
                                                  for (int i = start; i < start + length; i++)
                                                    newSizes[i] = value;
                                            !     System.arraycopy(sizes, start, newSizes, start + length,
                                                                   sizes.length - start);
                                                  sizes = newSizes;
                                                }
                                            *************** public class SizeSequence
                                            *** 205,211 ****
                                                /**
                                                 * Removes the element(s) at index start (the number of elements
                                                 * removed is length).
                                            !    * 
                                                 * @param start  the index of the first element to remove.
                                                 * @param length  the number of elements to remove.
                                                 */
                                            --- 205,211 ----
                                                /**
                                                 * Removes the element(s) at index start (the number of elements
                                                 * removed is length).
                                            !    *
                                                 * @param start  the index of the first element to remove.
                                                 * @param length  the number of elements to remove.
                                                 */
                                            *************** public class SizeSequence
                                            *** 218,224 ****
                                              
                                                  int[] newSizes = new int[sizes.length - length];
                                                  System.arraycopy(sizes, 0, newSizes, 0, start);
                                            !     System.arraycopy(sizes, start + length, newSizes, start, 
                                                                   sizes.length - start - length);
                                                  sizes = newSizes;
                                                }
                                            --- 218,224 ----
                                              
                                                  int[] newSizes = new int[sizes.length - length];
                                                  System.arraycopy(sizes, 0, newSizes, 0, start);
                                            !     System.arraycopy(sizes, start + length, newSizes, start,
                                                                   sizes.length - start - length);
                                                  sizes = newSizes;
                                                }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SortingFocusTraversalPolicy.java gcc-4.6.0/libjava/classpath/javax/swing/SortingFocusTraversalPolicy.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/SortingFocusTraversalPolicy.java	Tue Jan  9 19:58:05 2007
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/SortingFocusTraversalPolicy.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.TreeSet;
                                            *** 47,56 ****
                                              /**
                                               * @author Graydon Hoare
                                               * @author Michael Koch
                                            !  * 
                                               * @since 1.4
                                               */
                                            ! public class SortingFocusTraversalPolicy 
                                                extends InternalFrameFocusTraversalPolicy
                                              {
                                                /**
                                            --- 47,56 ----
                                              /**
                                               * @author Graydon Hoare
                                               * @author Michael Koch
                                            !  *
                                               * @since 1.4
                                               */
                                            ! public class SortingFocusTraversalPolicy
                                                extends InternalFrameFocusTraversalPolicy
                                              {
                                                /**
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 75,81 ****
                                                 * @see #getImplicitDownCycleTraversal()
                                                 */
                                                boolean implicitDownCycleTraversal = true;
                                            !   
                                                /**
                                                 * Creates a new SortingFocusTraversalPolicy with no
                                                 * comparator set.
                                            --- 75,81 ----
                                                 * @see #getImplicitDownCycleTraversal()
                                                 */
                                                boolean implicitDownCycleTraversal = true;
                                            ! 
                                                /**
                                                 * Creates a new SortingFocusTraversalPolicy with no
                                                 * comparator set.
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 97,103 ****
                                                }
                                              
                                                /**
                                            !    * Decide whether a component is an acceptable focus owner. 
                                                 *
                                                 * @param comp The component which is a candidate for focus ownership.
                                                 *
                                            --- 97,103 ----
                                                }
                                              
                                                /**
                                            !    * Decide whether a component is an acceptable focus owner.
                                                 *
                                                 * @param comp The component which is a candidate for focus ownership.
                                                 *
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 107,122 ****
                                                protected boolean accept(Component comp)
                                                {
                                                  return (comp.isVisible()
                                            ! 	    && comp.isDisplayable()
                                            ! 	    && comp.isEnabled()
                                            ! 	    && comp.isFocusable());
                                                }
                                              
                                                /**
                                                 * Get the current value of the {@link #comparator} property.
                                                 *
                                                 * @return the current value of the property
                                            !    * 
                                                 * @see #setComparator
                                                 */
                                                protected Comparator getComparator()
                                            --- 107,122 ----
                                                protected boolean accept(Component comp)
                                                {
                                                  return (comp.isVisible()
                                            !             && comp.isDisplayable()
                                            !             && comp.isEnabled()
                                            !             && comp.isFocusable());
                                                }
                                              
                                                /**
                                                 * Get the current value of the {@link #comparator} property.
                                                 *
                                                 * @return the current value of the property
                                            !    *
                                                 * @see #setComparator
                                                 */
                                                protected Comparator getComparator()
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 128,134 ****
                                                 * Set the current value of the {@link #comparator} property.
                                                 *
                                                 * @param comparator the new value of the property
                                            !    * 
                                                 * @see #getComparator
                                                 */
                                                protected void setComparator(Comparator comparator)
                                            --- 128,134 ----
                                                 * Set the current value of the {@link #comparator} property.
                                                 *
                                                 * @param comparator the new value of the property
                                            !    *
                                                 * @see #getComparator
                                                 */
                                                protected void setComparator(Comparator comparator)
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 139,149 ****
                                                private TreeSet getSortedCycle(Container root, TreeSet set)
                                                {
                                                  if (set == null)
                                            !       set = (getComparator() == null 
                                                           ? new TreeSet()
                                                           : new TreeSet(getComparator()));
                                            !     
                                            !     if (root != null) 
                                                    {
                                                      Component[] comps = root.getComponents();
                                                      for (int i = 0; i < comps.length; ++i)
                                            --- 139,149 ----
                                                private TreeSet getSortedCycle(Container root, TreeSet set)
                                                {
                                                  if (set == null)
                                            !       set = (getComparator() == null
                                                           ? new TreeSet()
                                                           : new TreeSet(getComparator()));
                                            ! 
                                            !     if (root != null)
                                                    {
                                                      Component[] comps = root.getComponents();
                                                      for (int i = 0; i < comps.length; ++i)
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 168,190 ****
                                                 * comp is a focus cycle root, an "implicit DownCycle"
                                                 * occurs and the method returns the
                                                 * getDefaultComponent(comp).
                                            !    * 
                                                 * @param root the focus cycle root to search for a successor within
                                                 * @param comp the component to search for the successor of
                                                 *
                                                 * @return the component following the specified component under
                                                 * the specified root, or null if no such component is found
                                            !    * 
                                                 * @throws IllegalArgumentException if either argument is null, or
                                                 * if the root is not a focus cycle root of the component
                                                 */
                                            !   public Component getComponentAfter(Container root, 
                                                                                   Component comp)
                                                {
                                                  if (comp == null || root == null || !comp.isFocusCycleRoot(root))
                                                    throw new IllegalArgumentException();
                                              
                                            !     if (getImplicitDownCycleTraversal() 
                                                      && comp instanceof Container
                                                      && ((Container)comp).isFocusCycleRoot())
                                                    {
                                            --- 168,190 ----
                                                 * comp is a focus cycle root, an "implicit DownCycle"
                                                 * occurs and the method returns the
                                                 * getDefaultComponent(comp).
                                            !    *
                                                 * @param root the focus cycle root to search for a successor within
                                                 * @param comp the component to search for the successor of
                                                 *
                                                 * @return the component following the specified component under
                                                 * the specified root, or null if no such component is found
                                            !    *
                                                 * @throws IllegalArgumentException if either argument is null, or
                                                 * if the root is not a focus cycle root of the component
                                                 */
                                            !   public Component getComponentAfter(Container root,
                                                                                   Component comp)
                                                {
                                                  if (comp == null || root == null || !comp.isFocusCycleRoot(root))
                                                    throw new IllegalArgumentException();
                                              
                                            !     if (getImplicitDownCycleTraversal()
                                                      && comp instanceof Container
                                                      && ((Container)comp).isFocusCycleRoot())
                                                    {
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 212,228 ****
                                                 * focus cycle, relative to the order imposed by {@link
                                                 * #comparator}. Candidate components are only considered if they are
                                                 * accepted by the {@link #accept} method.
                                            !    * 
                                                 * @param root the focus cycle root to search for a predecessor within
                                                 * @param comp the component to search for the predecessor of
                                                 *
                                                 * @return the component preceding the specified component under the
                                                 * specified root, or null if no such component is found
                                            !    * 
                                                 * @throws IllegalArgumentException if either argument is null, or
                                                 * if the root is not a focus cycle root of the component
                                                 */
                                            !   public Component getComponentBefore(Container root, 
                                                                                    Component comp)
                                                {
                                                  if (comp == null || root == null || !comp.isFocusCycleRoot(root))
                                            --- 212,228 ----
                                                 * focus cycle, relative to the order imposed by {@link
                                                 * #comparator}. Candidate components are only considered if they are
                                                 * accepted by the {@link #accept} method.
                                            !    *
                                                 * @param root the focus cycle root to search for a predecessor within
                                                 * @param comp the component to search for the predecessor of
                                                 *
                                                 * @return the component preceding the specified component under the
                                                 * specified root, or null if no such component is found
                                            !    *
                                                 * @throws IllegalArgumentException if either argument is null, or
                                                 * if the root is not a focus cycle root of the component
                                                 */
                                            !   public Component getComponentBefore(Container root,
                                                                                    Component comp)
                                                {
                                                  if (comp == null || root == null || !comp.isFocusCycleRoot(root))
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 256,262 ****
                                                  return getFirstComponent(root);
                                                }
                                              
                                            !   /** 
                                                 * Return the first focusable component of the focus cycle root
                                                 * comp under the ordering imposed by the {@link
                                                 * #comparator} property. Candidate components are only considered if
                                            --- 256,262 ----
                                                  return getFirstComponent(root);
                                                }
                                              
                                            !   /**
                                                 * Return the first focusable component of the focus cycle root
                                                 * comp under the ordering imposed by the {@link
                                                 * #comparator} property. Candidate components are only considered if
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 279,286 ****
                                                    return (Component) i.next();
                                                  return null;
                                                }
                                            !   
                                            !   /** 
                                                 * Return the last focusable component of the focus cycle root
                                                 * comp under the ordering imposed by the {@link
                                                 * #comparator} property. Candidate components are only considered if
                                            --- 279,286 ----
                                                    return (Component) i.next();
                                                  return null;
                                                }
                                            ! 
                                            !   /**
                                                 * Return the last focusable component of the focus cycle root
                                                 * comp under the ordering imposed by the {@link
                                                 * #comparator} property. Candidate components are only considered if
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 310,316 ****
                                                 * property.
                                                 *
                                                 * @return the current value of the property
                                            !    * 
                                                 * @see #setImplicitDownCycleTraversal
                                                 */
                                                public boolean getImplicitDownCycleTraversal()
                                            --- 310,316 ----
                                                 * property.
                                                 *
                                                 * @return the current value of the property
                                            !    *
                                                 * @see #setImplicitDownCycleTraversal
                                                 */
                                                public boolean getImplicitDownCycleTraversal()
                                            *************** public class SortingFocusTraversalPolicy
                                            *** 323,329 ****
                                                 * property.
                                                 *
                                                 * @param down the new value of the property
                                            !    * 
                                                 * @see #getImplicitDownCycleTraversal
                                                 */
                                                public void setImplicitDownCycleTraversal(boolean down)
                                            --- 323,329 ----
                                                 * property.
                                                 *
                                                 * @param down the new value of the property
                                            !    *
                                                 * @see #getImplicitDownCycleTraversal
                                                 */
                                                public void setImplicitDownCycleTraversal(boolean down)
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SpinnerDateModel.java gcc-4.6.0/libjava/classpath/javax/swing/SpinnerDateModel.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/SpinnerDateModel.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/SpinnerDateModel.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.Date;
                                            *** 45,52 ****
                                              import javax.swing.event.ChangeEvent;
                                              
                                              /**
                                            !  * A date model used by the {@link JSpinner} component.  This implements a 
                                            !  * spinner model for dates, rotating a calendar field such as  month, year, 
                                               * day, week, hour, minute.
                                               *
                                               * @author Sven de Marothy
                                            --- 45,52 ----
                                              import javax.swing.event.ChangeEvent;
                                              
                                              /**
                                            !  * A date model used by the {@link JSpinner} component.  This implements a
                                            !  * spinner model for dates, rotating a calendar field such as  month, year,
                                               * day, week, hour, minute.
                                               *
                                               * @author Sven de Marothy
                                            *************** public class SpinnerDateModel extends Ab
                                            *** 57,77 ****
                                              {
                                                /** The current date. */
                                                private Calendar date;
                                            !   
                                            !   /** 
                                            !    * A constraint on the start or earliest permitted date (null 
                                            !    * for no minimum). 
                                                 */
                                                private Comparable start;
                                              
                                            !   /** 
                                            !    * A constraint on the end or latest permitted date (null for no 
                                            !    * maximum). 
                                                 */
                                                private Comparable end;
                                            !   
                                                /**
                                            !    * The calendar field used to calculate the previous or next date. 
                                                 */
                                                private int calendarField;
                                              
                                            --- 57,77 ----
                                              {
                                                /** The current date. */
                                                private Calendar date;
                                            ! 
                                            !   /**
                                            !    * A constraint on the start or earliest permitted date (null
                                            !    * for no minimum).
                                                 */
                                                private Comparable start;
                                              
                                            !   /**
                                            !    * A constraint on the end or latest permitted date (null for no
                                            !    * maximum).
                                                 */
                                                private Comparable end;
                                            ! 
                                                /**
                                            !    * The calendar field used to calculate the previous or next date.
                                                 */
                                                private int calendarField;
                                              
                                            *************** public class SpinnerDateModel extends Ab
                                            *** 82,88 ****
                                              
                                                /**
                                                 * Constructs a SpinnerDateModel using the current date,
                                            !    * no start or end limit, and {@link Calendar#DAY_OF_MONTH} as the calendar 
                                                 * field.
                                                 */
                                                public SpinnerDateModel()
                                            --- 82,88 ----
                                              
                                                /**
                                                 * Constructs a SpinnerDateModel using the current date,
                                            !    * no start or end limit, and {@link Calendar#DAY_OF_MONTH} as the calendar
                                                 * field.
                                                 */
                                                public SpinnerDateModel()
                                            *************** public class SpinnerDateModel extends Ab
                                            *** 92,106 ****
                                              
                                                /**
                                                 * Constructs a SpinnerDateModel with the specified value, lower
                                            !    * and upper bounds, and which spins the specified calendar field. 
                                                 * 

                                            * The start and end limits must have a * compareTo method that supports instances of {@link Date}, but * do not themselves need to be instances of {@link Date} (although typically * they are). ! * * @param value the initial value/date (null not permitted). ! * @param start a constraint that specifies the earliest permitted date * value, or null for no lower limit. * @param end a constraint that specifies the latest permitted date value, * or null for no upper limit. --- 92,106 ---- /** * Constructs a SpinnerDateModel with the specified value, lower ! * and upper bounds, and which spins the specified calendar field. *

                                            * The start and end limits must have a * compareTo method that supports instances of {@link Date}, but * do not themselves need to be instances of {@link Date} (although typically * they are). ! * * @param value the initial value/date (null not permitted). ! * @param start a constraint that specifies the earliest permitted date * value, or null for no lower limit. * @param end a constraint that specifies the latest permitted date value, * or null for no upper limit. *************** public class SpinnerDateModel extends Ab *** 110,116 **** public SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField) { ! if (value == null) throw new IllegalArgumentException("Null 'value' argument."); if (start != null && start.compareTo(value) > 0) throw new IllegalArgumentException("Require value on or after start."); --- 110,116 ---- public SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField) { ! if (value == null) throw new IllegalArgumentException("Null 'value' argument."); if (start != null && start.compareTo(value) > 0) throw new IllegalArgumentException("Require value on or after start."); *************** public class SpinnerDateModel extends Ab *** 124,132 **** } /** ! * Returns the {@link Calendar} field used to calculate the previous and * next dates in the sequence. ! * * @return The date field code. */ public int getCalendarField() --- 124,132 ---- } /** ! * Returns the {@link Calendar} field used to calculate the previous and * next dates in the sequence. ! * * @return The date field code. */ public int getCalendarField() *************** public class SpinnerDateModel extends Ab *** 136,144 **** /** * Returns the current date/time. ! * * @return The current date/time (never null). ! * * @see #getValue() */ public Date getDate() --- 136,144 ---- /** * Returns the current date/time. ! * * @return The current date/time (never null). ! * * @see #getValue() */ public Date getDate() *************** public class SpinnerDateModel extends Ab *** 147,157 **** } /** ! * Returns the lower limit on the date/time value, or null if * there is no minimum date/time. ! * * @return The lower limit. ! * * @see #setStart(Comparable) */ public Comparable getStart() --- 147,157 ---- } /** ! * Returns the lower limit on the date/time value, or null if * there is no minimum date/time. ! * * @return The lower limit. ! * * @see #setStart(Comparable) */ public Comparable getStart() *************** public class SpinnerDateModel extends Ab *** 160,170 **** } /** ! * Returns the upper limit on the date/time value, or null if * there is no maximum date/time. ! * * @return The upper limit. ! * * @see #setEnd(Comparable) */ public Comparable getEnd() --- 160,170 ---- } /** ! * Returns the upper limit on the date/time value, or null if * there is no maximum date/time. ! * * @return The upper limit. ! * * @see #setEnd(Comparable) */ public Comparable getEnd() *************** public class SpinnerDateModel extends Ab *** 173,181 **** } /** ! * Returns the current date in the sequence (this method returns the same as * {@link #getDate()}). ! * * @return The current date (never null). */ public Object getValue() --- 173,181 ---- } /** ! * Returns the current date in the sequence (this method returns the same as * {@link #getDate()}). ! * * @return The current date (never null). */ public Object getValue() *************** public class SpinnerDateModel extends Ab *** 185,196 **** /** * Returns the next date in the sequence, or null if the ! * next date is past the upper limit (if one is specified). The current date * is not changed. ! * * @return The next date, or null if the current value is * the latest date represented by the model. ! * * @see #getEnd() */ public Object getNextValue() --- 185,196 ---- /** * Returns the next date in the sequence, or null if the ! * next date is past the upper limit (if one is specified). The current date * is not changed. ! * * @return The next date, or null if the current value is * the latest date represented by the model. ! * * @see #getEnd() */ public Object getNextValue() *************** public class SpinnerDateModel extends Ab *** 207,218 **** /** * Returns the previous date in the sequence, or null if the ! * previous date is prior to the lower limit (if one is specified). The * current date is not changed. ! * * @return The previous date, or null if the current value is * the earliest date represented by the model. ! * * @see #getStart() */ public Object getPreviousValue() --- 207,218 ---- /** * Returns the previous date in the sequence, or null if the ! * previous date is prior to the lower limit (if one is specified). The * current date is not changed. ! * * @return The previous date, or null if the current value is * the earliest date represented by the model. ! * * @see #getStart() */ public Object getPreviousValue() *************** public class SpinnerDateModel extends Ab *** 228,240 **** } /** ! * Sets the date field to change when calculating the next and previous ! * values. It must be a valid {@link Calendar} field, excluding * {@link Calendar#ZONE_OFFSET} and {@link Calendar#DST_OFFSET}. ! * * @param calendarField the calendar field to set. ! * ! * @throws IllegalArgumentException if calendarField is not * a valid code. */ public void setCalendarField(int calendarField) --- 228,240 ---- } /** ! * Sets the date field to change when calculating the next and previous ! * values. It must be a valid {@link Calendar} field, excluding * {@link Calendar#ZONE_OFFSET} and {@link Calendar#DST_OFFSET}. ! * * @param calendarField the calendar field to set. ! * ! * @throws IllegalArgumentException if calendarField is not * a valid code. */ public void setCalendarField(int calendarField) *************** public class SpinnerDateModel extends Ab *** 252,266 **** } /** ! * Sets the lower limit for the date/time value and, if the new limit is ! * different to the old limit, sends a {@link ChangeEvent} to all registered ! * listeners. A null value is interpreted as "no lower limit". ! * No check is made to ensure that the current date/time is on or after the ! * new lower limit - the caller is responsible for ensuring that this * relationship holds. In addition, the caller should ensure that * start is {@link Serializable}. ! * ! * @param start the new lower limit for the date/time value * (null permitted). */ public void setStart(Comparable start) --- 252,266 ---- } /** ! * Sets the lower limit for the date/time value and, if the new limit is ! * different to the old limit, sends a {@link ChangeEvent} to all registered ! * listeners. A null value is interpreted as "no lower limit". ! * No check is made to ensure that the current date/time is on or after the ! * new lower limit - the caller is responsible for ensuring that this * relationship holds. In addition, the caller should ensure that * start is {@link Serializable}. ! * ! * @param start the new lower limit for the date/time value * (null permitted). */ public void setStart(Comparable start) *************** public class SpinnerDateModel extends Ab *** 273,286 **** } /** ! * Sets the upper limit for the date/time value and, if the new limit is ! * different to the old limit, sends a {@link ChangeEvent} to all registered ! * listeners. A null value is interpreted as "no upper limit". ! * No check is made to ensure that the current date/time is on or before the ! * new upper limit - the caller is responsible for ensuring that this * relationship holds. In addition, the caller should ensure that * end is {@link Serializable}. ! * * @param end the new upper limit for the date/time value (null * permitted). */ --- 273,286 ---- } /** ! * Sets the upper limit for the date/time value and, if the new limit is ! * different to the old limit, sends a {@link ChangeEvent} to all registered ! * listeners. A null value is interpreted as "no upper limit". ! * No check is made to ensure that the current date/time is on or before the ! * new upper limit - the caller is responsible for ensuring that this * relationship holds. In addition, the caller should ensure that * end is {@link Serializable}. ! * * @param end the new upper limit for the date/time value (null * permitted). */ *************** public class SpinnerDateModel extends Ab *** 297,314 **** * Sets the current date and, if the new value is different to the old * value, sends a {@link ChangeEvent} to all registered listeners. * ! * @param value the new date (null not permitted, must be an * instance of Date). ! * ! * @throws IllegalArgumentException if value is not an instance * of Date. */ public void setValue(Object value) { if (! (value instanceof Date) || value == null) throw new IllegalArgumentException("Value not a date."); ! ! if (!date.getTime().equals(value)) { date.setTime((Date) value); fireStateChanged(); --- 297,314 ---- * Sets the current date and, if the new value is different to the old * value, sends a {@link ChangeEvent} to all registered listeners. * ! * @param value the new date (null not permitted, must be an * instance of Date). ! * ! * @throws IllegalArgumentException if value is not an instance * of Date. */ public void setValue(Object value) { if (! (value instanceof Date) || value == null) throw new IllegalArgumentException("Value not a date."); ! ! if (!date.getTime().equals(value)) { date.setTime((Date) value); fireStateChanged(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SpinnerListModel.java gcc-4.6.0/libjava/classpath/javax/swing/SpinnerListModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/SpinnerListModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/SpinnerListModel.java Tue Jan 11 19:46:05 2011 *************** public class SpinnerListModel extends Ab *** 111,123 **** * to getValue() returns the same as list.get(0). * * @param list The list to use for this model. ! * * @throws IllegalArgumentException if the list is null or contains no * elements. * * @see SpinnerListModel#getNextValue() * @see SpinnerListModel#getValue() ! */ public SpinnerListModel(List list) { // Retain a reference to the valid list. --- 111,123 ---- * to getValue() returns the same as list.get(0). * * @param list The list to use for this model. ! * * @throws IllegalArgumentException if the list is null or contains no * elements. * * @see SpinnerListModel#getNextValue() * @see SpinnerListModel#getValue() ! */ public SpinnerListModel(List list) { // Retain a reference to the valid list. *************** public class SpinnerListModel extends Ab *** 151,159 **** throw new IllegalArgumentException("The supplied array was invalid."); } ! // Retain a reference to a wrapper around the valid array. ! // The array, in list form, will be tested again here, but we can't really ! // avoid this -- a null value to Arrays.asList will throw a // NullPointerException. setList(Arrays.asList(array)); } --- 151,159 ---- throw new IllegalArgumentException("The supplied array was invalid."); } ! // Retain a reference to a wrapper around the valid array. ! // The array, in list form, will be tested again here, but we can't really ! // avoid this -- a null value to Arrays.asList will throw a // NullPointerException. setList(Arrays.asList(array)); } *************** public class SpinnerListModel extends Ab *** 167,173 **** { return list; } ! /** * Returns the next value from the list, which is the same as the element * stored at the current index + 1. Null is returned if there are no more --- 167,173 ---- { return list; } ! /** * Returns the next value from the list, which is the same as the element * stored at the current index + 1. Null is returned if there are no more *************** public class SpinnerListModel extends Ab *** 200,209 **** public Object getPreviousValue() { // Check for a previous value. ! if (index > 0) // Return the element at the previous position. return list.get(index - 1); ! else // Return null as this is the start of the list. return null; } --- 200,209 ---- public Object getPreviousValue() { // Check for a previous value. ! if (index > 0) // Return the element at the previous position. return list.get(index - 1); ! else // Return null as this is the start of the list. return null; } *************** public class SpinnerListModel extends Ab *** 266,272 **** * the backing list. Listeners are notified of this change. * Following the change, getNextValue() and * getPreviousValue() return the objects following ! * and prior to the supplied value, respectively. * * @param value The requested new value of the list. * --- 266,272 ---- * the backing list. Listeners are notified of this change. * Following the change, getNextValue() and * getPreviousValue() return the objects following ! * and prior to the supplied value, respectively. * * @param value The requested new value of the list. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SpinnerModel.java gcc-4.6.0/libjava/classpath/javax/swing/SpinnerModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/SpinnerModel.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/SpinnerModel.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SpinnerModel.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SpinnerModel.java -- Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public interface SpinnerModel *** 107,111 **** * @param listener The listener to remove. */ void removeChangeListener(ChangeListener listener); ! } --- 107,111 ---- * @param listener The listener to remove. */ void removeChangeListener(ChangeListener listener); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SpinnerNumberModel.java gcc-4.6.0/libjava/classpath/javax/swing/SpinnerNumberModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/SpinnerNumberModel.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/SpinnerNumberModel.java Tue Jan 11 19:46:05 2011 *************** public class SpinnerNumberModel extends *** 83,89 **** * @param minimum the minimum value * @param maximum the maximum value * @param stepSize the step size ! * @throws IllegalArgumentException if minimum <= value <= maximum does * not hold. */ public SpinnerNumberModel(double value, double minimum, double maximum, --- 83,89 ---- * @param minimum the minimum value * @param maximum the maximum value * @param stepSize the step size ! * @throws IllegalArgumentException if minimum <= value <= maximum does * not hold. */ public SpinnerNumberModel(double value, double minimum, double maximum, *************** public class SpinnerNumberModel extends *** 100,106 **** * @param minimum the minimum value * @param maximum the maximum value * @param stepSize the step size ! * @throws IllegalArgumentException if minimum <= value <= maximum does * not hold. */ public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize) --- 100,106 ---- * @param minimum the minimum value * @param maximum the maximum value * @param stepSize the step size ! * @throws IllegalArgumentException if minimum <= value <= maximum does * not hold. */ public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize) *************** public class SpinnerNumberModel extends *** 111,117 **** /** * Creates a SpinnerNumberModel with the given attributes. The ! * caller should ensure that both minimum and * maximum are serializable. * * @param value the initial value (null not permitted). --- 111,117 ---- /** * Creates a SpinnerNumberModel with the given attributes. The ! * caller should ensure that both minimum and * maximum are serializable. * * @param value the initial value (null not permitted). *************** public class SpinnerNumberModel extends *** 121,129 **** * * @throws IllegalArgumentException if minimum <= value <= maximum * does not hold ! * @throws IllegalArgumentException if value is * null. ! * @throws IllegalArgumentException if stepSize is * null. */ public SpinnerNumberModel(Number value, Comparable minimum, --- 121,129 ---- * * @throws IllegalArgumentException if minimum <= value <= maximum * does not hold ! * @throws IllegalArgumentException if value is * null. ! * @throws IllegalArgumentException if stepSize is * null. */ public SpinnerNumberModel(Number value, Comparable minimum, *************** public class SpinnerNumberModel extends *** 165,171 **** if (! (value instanceof Number)) throw new IllegalArgumentException("value must be a Number"); ! if (!this.value.equals(value)) { this.value = (Number) value; fireStateChanged(); --- 165,171 ---- if (! (value instanceof Number)) throw new IllegalArgumentException("value must be a Number"); ! if (!this.value.equals(value)) { this.value = (Number) value; fireStateChanged(); *************** public class SpinnerNumberModel extends *** 177,183 **** * {@link Number}. * * @return The current value. ! * * @see #getNumber() */ public Object getValue() --- 177,183 ---- * {@link Number}. * * @return The current value. ! * * @see #getNumber() */ public Object getValue() *************** public class SpinnerNumberModel extends *** 187,196 **** /** * Returns the next value, or null if adding the step size to ! * the current value results in a value greater than the maximum value. * The current value is not changed. * ! * @return The next value, or null if the current value is the * maximum value represented by this model. */ public Object getNextValue() --- 187,196 ---- /** * Returns the next value, or null if adding the step size to ! * the current value results in a value greater than the maximum value. * The current value is not changed. * ! * @return The next value, or null if the current value is the * maximum value represented by this model. */ public Object getNextValue() *************** public class SpinnerNumberModel extends *** 209,219 **** num = new Short((short) (value.shortValue() + stepSize.shortValue())); else num = new Byte((byte) (value.byteValue() + stepSize.byteValue())); ! // check upper bound if set if ((maximum != null) && maximum.compareTo(num) < 0) num = null; ! return num; } --- 209,219 ---- num = new Short((short) (value.shortValue() + stepSize.shortValue())); else num = new Byte((byte) (value.byteValue() + stepSize.byteValue())); ! // check upper bound if set if ((maximum != null) && maximum.compareTo(num) < 0) num = null; ! return num; } *************** public class SpinnerNumberModel extends *** 241,247 **** num = new Short((short) (value.shortValue() - stepSize.shortValue())); else num = new Byte((byte) (value.byteValue() - stepSize.byteValue())); ! // check lower bound if set if ((minimum != null) && minimum.compareTo(num) > 0) num = null; --- 241,247 ---- num = new Short((short) (value.shortValue() - stepSize.shortValue())); else num = new Byte((byte) (value.byteValue() - stepSize.byteValue())); ! // check lower bound if set if ((minimum != null) && minimum.compareTo(num) > 0) num = null; *************** public class SpinnerNumberModel extends *** 261,269 **** /** * Returns the minimum value, or null if there is no minimum. ! * * @return The minimum value. ! * * @see #setMinimum(Comparable) */ public Comparable getMinimum() --- 261,269 ---- /** * Returns the minimum value, or null if there is no minimum. ! * * @return The minimum value. ! * * @see #setMinimum(Comparable) */ public Comparable getMinimum() *************** public class SpinnerNumberModel extends *** 273,287 **** /** * Sets the minimum value and, if the new value is different to the old ! * value, sends a {@link ChangeEvent} to all registered listeners. A * null value is interpreted as "no minimum value". No check ! * is made to ensure that the new minimum is less than or equal to the ! * current value, the caller is responsible for ensuring that this * relationship holds. In addition, the caller should ensure that * newMinimum is {@link Serializable}. ! * * @param newMinimum the new minimum value (null permitted). ! * * @see #getMinimum() */ public void setMinimum(Comparable newMinimum) --- 273,287 ---- /** * Sets the minimum value and, if the new value is different to the old ! * value, sends a {@link ChangeEvent} to all registered listeners. A * null value is interpreted as "no minimum value". No check ! * is made to ensure that the new minimum is less than or equal to the ! * current value, the caller is responsible for ensuring that this * relationship holds. In addition, the caller should ensure that * newMinimum is {@link Serializable}. ! * * @param newMinimum the new minimum value (null permitted). ! * * @see #getMinimum() */ public void setMinimum(Comparable newMinimum) *************** public class SpinnerNumberModel extends *** 295,303 **** /** * Returns the maximum value, or null if there is no maximum. ! * * @return The maximum value. ! * * @see #getMinimum() * @see #setMaximum(Comparable) */ --- 295,303 ---- /** * Returns the maximum value, or null if there is no maximum. ! * * @return The maximum value. ! * * @see #getMinimum() * @see #setMaximum(Comparable) */ *************** public class SpinnerNumberModel extends *** 308,322 **** /** * Sets the maximum value and, if the new value is different to the old ! * value, sends a {@link ChangeEvent} to all registered listeners. A * null value is interpreted as "no maximum value". No check ! * is made to ensure that the new maximum is greater than or equal to the ! * current value, the caller is responsible for ensuring that this * relationship holds. In addition, the caller should ensure that * newMaximum is {@link Serializable}. ! * * @param newMaximum the new maximum (null permitted). ! * * @see #getMaximum() */ public void setMaximum(Comparable newMaximum) --- 308,322 ---- /** * Sets the maximum value and, if the new value is different to the old ! * value, sends a {@link ChangeEvent} to all registered listeners. A * null value is interpreted as "no maximum value". No check ! * is made to ensure that the new maximum is greater than or equal to the ! * current value, the caller is responsible for ensuring that this * relationship holds. In addition, the caller should ensure that * newMaximum is {@link Serializable}. ! * * @param newMaximum the new maximum (null permitted). ! * * @see #getMaximum() */ public void setMaximum(Comparable newMaximum) *************** public class SpinnerNumberModel extends *** 330,336 **** /** * Returns the step size. ! * * @return The step size (never null). */ public Number getStepSize() --- 330,336 ---- /** * Returns the step size. ! * * @return The step size (never null). */ public Number getStepSize() *************** public class SpinnerNumberModel extends *** 341,350 **** /** * Sets the step size and, if the new step size is different to the old * step size, sends a {@link ChangeEvent} to all registered listeners. ! * * @param newStepSize the new step size (null not permitted). ! * ! * @throws IllegalArgumentException if newStepSize is * null. */ public void setStepSize(Number newStepSize) --- 341,350 ---- /** * Sets the step size and, if the new step size is different to the old * step size, sends a {@link ChangeEvent} to all registered listeners. ! * * @param newStepSize the new step size (null not permitted). ! * ! * @throws IllegalArgumentException if newStepSize is * null. */ public void setStepSize(Number newStepSize) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/Spring.java gcc-4.6.0/libjava/classpath/javax/swing/Spring.java *** gcc-4.5.2/libjava/classpath/javax/swing/Spring.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/Spring.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Spring.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Spring.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class Spring *** 156,167 **** */ public abstract void setValue(int value); ! private int getShrinkRange() { return (getPreferredValue() - getMinimumValue()); } ! private int getExpandRange() { return (getMaximumValue() - getPreferredValue()); } --- 156,167 ---- */ public abstract void setValue(int value); ! private int getShrinkRange() { return (getPreferredValue() - getMinimumValue()); } ! private int getExpandRange() { return (getMaximumValue() - getPreferredValue()); } *************** public abstract class Spring *** 176,182 **** return (double)(v - p) / r; } ! void setStrain(double strain) { int r = (strain < 0) ? getShrinkRange() : getExpandRange(); int v = (getPreferredValue() + (int)(strain * r)); --- 176,182 ---- return (double)(v - p) / r; } ! void setStrain(double strain) { int r = (strain < 0) ? getShrinkRange() : getExpandRange(); int v = (getPreferredValue() + (int)(strain * r)); *************** public abstract class Spring *** 411,417 **** return pref; return value; } ! /** * Sets the current value. * --- 411,417 ---- return pref; return value; } ! /** * Sets the current value. * *************** public abstract class Spring *** 536,542 **** int remainder = val - s1.getValue(); s2.setValue(remainder); } ! } --- 536,542 ---- int remainder = val - s1.getValue(); s2.setValue(remainder); } ! } *************** public abstract class Spring *** 735,741 **** s1.setValue(Math.min(val, p1)); s2.setValue(val); } ! else { s1.setValue(val); s2.setValue(Math.min(val, p2)); --- 735,741 ---- s1.setValue(Math.min(val, p1)); s2.setValue(val); } ! else { s1.setValue(val); s2.setValue(Math.min(val, p2)); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SpringLayout.java gcc-4.6.0/libjava/classpath/javax/swing/SpringLayout.java *** gcc-4.5.2/libjava/classpath/javax/swing/SpringLayout.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/SpringLayout.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SpringLayout.java -- Copyright (C) 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SpringLayout.java -- Copyright (C) 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SpringLayout implements Lay *** 110,119 **** /** The Spring for the bottom edge. */ private Spring south; ! /** In each axis the user can set three values, i.e. x, width, east, if all ! three are set, then there's no room for manoeuvre so in those cases the ! third will be described by the below spring which is calculated in terms of the other two */ private Spring v; --- 110,119 ---- /** The Spring for the bottom edge. */ private Spring south; ! /** In each axis the user can set three values, i.e. x, width, east, if all ! three are set, then there's no room for manoeuvre so in those cases the ! third will be described by the below spring which is calculated in terms of the other two */ private Spring v; *************** public class SpringLayout implements Lay *** 189,195 **** { Spring retVal = null; if (edgeName.equals(SpringLayout.NORTH)) ! retVal = getY(); else if (edgeName.equals(SpringLayout.WEST)) retVal = getX(); else if (edgeName.equals(SpringLayout.SOUTH)) --- 189,195 ---- { Spring retVal = null; if (edgeName.equals(SpringLayout.NORTH)) ! retVal = getY(); else if (edgeName.equals(SpringLayout.WEST)) retVal = getX(); else if (edgeName.equals(SpringLayout.SOUTH)) *************** public class SpringLayout implements Lay *** 202,208 **** /** * Returns the constraint for the height of the component. * ! * @return the height constraint. */ public Spring getHeight() { --- 202,208 ---- /** * Returns the constraint for the height of the component. * ! * @return the height constraint. */ public Spring getHeight() { *************** public class SpringLayout implements Lay *** 294,300 **** */ public void setConstraint(String edgeName, Spring s) { ! if (edgeName.equals(SpringLayout.WEST)) setX(s); else if (edgeName.equals(SpringLayout.NORTH)) --- 294,300 ---- */ public void setConstraint(String edgeName, Spring s) { ! if (edgeName.equals(SpringLayout.WEST)) setX(s); else if (edgeName.equals(SpringLayout.NORTH)) *************** public class SpringLayout implements Lay *** 394,400 **** width.setValue(Spring.UNSET); if (height != null) height.setValue(Spring.UNSET); ! if (east != null) east.setValue(Spring.UNSET); if (south != null) south.setValue(Spring.UNSET); --- 394,400 ---- width.setValue(Spring.UNSET); if (height != null) height.setValue(Spring.UNSET); ! if (east != null) east.setValue(Spring.UNSET); if (south != null) south.setValue(Spring.UNSET); *************** public class SpringLayout implements Lay *** 444,459 **** * The trick to SpringLayout is that the network of Springs needs to * completely created before the positioning results are generated. * ! * Using the springs directly during network creation will set their values ! * before the network is completed, Using Deferred Springs during creation of ! * the network allows all the edges to be connected together and the network ! * to be created without resolving the Springs until their results need to be ! * known, at which point the network is complete and the spring addition and * and substitution calculations will work on a complete and valid network. * * @author Caolan McNamara (caolanm@redhat.com) */ ! private static class DeferredSpring extends Spring { private SpringLayout sl; private String edgeName; --- 444,459 ---- * The trick to SpringLayout is that the network of Springs needs to * completely created before the positioning results are generated. * ! * Using the springs directly during network creation will set their values ! * before the network is completed, Using Deferred Springs during creation of ! * the network allows all the edges to be connected together and the network ! * to be created without resolving the Springs until their results need to be ! * known, at which point the network is complete and the spring addition and * and substitution calculations will work on a complete and valid network. * * @author Caolan McNamara (caolanm@redhat.com) */ ! private static class DeferredSpring extends Spring { private SpringLayout sl; private String edgeName; *************** public class SpringLayout implements Lay *** 471,497 **** c = component; } ! private Spring resolveSpring() { return sl.getConstraints(c).getConstraint(edgeName); } ! public int getMaximumValue() { return resolveSpring().getMaximumValue(); } ! public int getMinimumValue() { return resolveSpring().getMinimumValue(); } ! public int getPreferredValue() { return resolveSpring().getPreferredValue(); } ! public int getValue() { int nRet = resolveSpring().getValue(); if (nRet == Spring.UNSET) --- 471,497 ---- c = component; } ! private Spring resolveSpring() { return sl.getConstraints(c).getConstraint(edgeName); } ! public int getMaximumValue() { return resolveSpring().getMaximumValue(); } ! public int getMinimumValue() { return resolveSpring().getMinimumValue(); } ! public int getPreferredValue() { return resolveSpring().getPreferredValue(); } ! public int getValue() { int nRet = resolveSpring().getValue(); if (nRet == Spring.UNSET) *************** public class SpringLayout implements Lay *** 499,505 **** return nRet; } ! public void setValue(int size) { resolveSpring().setValue(size); } --- 499,505 ---- return nRet; } ! public void setValue(int size) { resolveSpring().setValue(size); } *************** public class SpringLayout implements Lay *** 543,560 **** } //clip max to a value we can do meaningful calculation with ! public int getMaximumValue() { int widget_width = c.getMaximumSize().width; return Math.min(Short.MAX_VALUE, widget_width); } ! public int getMinimumValue() { return c.getMinimumSize().width; } ! public int getPreferredValue() { return c.getPreferredSize().width; } --- 543,560 ---- } //clip max to a value we can do meaningful calculation with ! public int getMaximumValue() { int widget_width = c.getMaximumSize().width; return Math.min(Short.MAX_VALUE, widget_width); } ! public int getMinimumValue() { return c.getMinimumSize().width; } ! public int getPreferredValue() { return c.getPreferredSize().width; } *************** public class SpringLayout implements Lay *** 575,592 **** } //clip max to a value we can do meaningful calculations with it ! public int getMaximumValue() { int widget_height = c.getMaximumSize().height; return Math.min(Short.MAX_VALUE, widget_height); } ! public int getMinimumValue() { return c.getMinimumSize().height; } ! public int getPreferredValue() { return c.getPreferredSize().height; } --- 575,592 ---- } //clip max to a value we can do meaningful calculations with it ! public int getMaximumValue() { int widget_height = c.getMaximumSize().height; return Math.min(Short.MAX_VALUE, widget_height); } ! public int getMinimumValue() { return c.getMinimumSize().height; } ! public int getPreferredValue() { return c.getPreferredSize().height; } *************** public class SpringLayout implements Lay *** 635,641 **** /** * Returns the X alignment of the Container p. ! * * @param p * the {@link java.awt.Container} for which to determine the X * alignment. --- 635,641 ---- /** * Returns the X alignment of the Container p. ! * * @param p * the {@link java.awt.Container} for which to determine the X * alignment. *************** public class SpringLayout implements Lay *** 676,682 **** c.setHeight(null); if (c.getEast() == null) c.setEast(Spring.constant(0, 0, Integer.MAX_VALUE)); ! if (c.getSouth() == null) c.setSouth(Spring.constant(0, 0, Integer.MAX_VALUE)); return c; --- 676,682 ---- c.setHeight(null); if (c.getEast() == null) c.setEast(Spring.constant(0, 0, Integer.MAX_VALUE)); ! if (c.getSouth() == null) c.setSouth(Spring.constant(0, 0, Integer.MAX_VALUE)); return c; *************** public class SpringLayout implements Lay *** 715,726 **** Component c = components[index]; Constraints constraints = getConstraints(c); ! int x = constraints.getX().getValue(); int y = constraints.getY().getValue(); int width = constraints.getWidth().getValue(); int height = constraints.getHeight().getValue(); ! c.setBounds(x + offsetX, y + offsetY, width, height); } } --- 715,726 ---- Component c = components[index]; Constraints constraints = getConstraints(c); ! int x = constraints.getX().getValue(); int y = constraints.getY().getValue(); int width = constraints.getWidth().getValue(); int height = constraints.getHeight().getValue(); ! c.setBounds(x + offsetX, y + offsetY, width, height); } } *************** public class SpringLayout implements Lay *** 794,800 **** * @param e2 the edge of component 2. * @param c2 the component 2. */ ! public void putConstraint(String e1, Component c1, int pad, String e2, Component c2) { putConstraint(e1, c1, Spring.constant(pad), e2, c2); --- 794,800 ---- * @param e2 the edge of component 2. * @param c2 the component 2. */ ! public void putConstraint(String e1, Component c1, int pad, String e2, Component c2) { putConstraint(e1, c1, Spring.constant(pad), e2, c2); *************** public class SpringLayout implements Lay *** 811,817 **** * @param e2 the edge of component 2. * @param c2 the component 2. */ ! public void putConstraint(String e1, Component c1, Spring s, String e2, Component c2) { Constraints constraints1 = getConstraints(c1); --- 811,817 ---- * @param e2 the edge of component 2. * @param c2 the component 2. */ ! public void putConstraint(String e1, Component c1, Spring s, String e2, Component c2) { Constraints constraints1 = getConstraints(c1); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SwingConstants.java gcc-4.6.0/libjava/classpath/javax/swing/SwingConstants.java *** gcc-4.5.2/libjava/classpath/javax/swing/SwingConstants.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/SwingConstants.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SwingConstants.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SwingConstants.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public interface SwingConstants *** 48,54 **** int LEFT = 2; int BOTTOM = 3; int RIGHT = 4; ! int NORTH = 1; int NORTH_EAST = 2; int EAST = 3; --- 48,54 ---- int LEFT = 2; int BOTTOM = 3; int RIGHT = 4; ! int NORTH = 1; int NORTH_EAST = 2; int EAST = 3; *************** public interface SwingConstants *** 57,66 **** int SOUTH_WEST = 6; int WEST = 7; int NORTH_WEST = 8; ! int HORIZONTAL = 0; ! int VERTICAL = 1; ! int LEADING = 10; int TRAILING = 11; --- 57,66 ---- int SOUTH_WEST = 6; int WEST = 7; int NORTH_WEST = 8; ! int HORIZONTAL = 0; ! int VERTICAL = 1; ! int LEADING = 10; int TRAILING = 11; *************** public interface SwingConstants *** 74,77 **** */ int PREVIOUS = 13; } - --- 74,76 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/SwingUtilities.java gcc-4.6.0/libjava/classpath/javax/swing/SwingUtilities.java *** gcc-4.5.2/libjava/classpath/javax/swing/SwingUtilities.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/SwingUtilities.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.View; *** 74,81 **** public class SwingUtilities implements SwingConstants { ! /** ! * This frame should be used as parent for JWindow or JDialog * that doesn't an owner */ private static OwnerFrame ownerFrame; --- 74,81 ---- public class SwingUtilities implements SwingConstants { ! /** ! * This frame should be used as parent for JWindow or JDialog * that doesn't an owner */ private static OwnerFrame ownerFrame; *************** public class SwingUtilities *** 92,98 **** * of the component's coordinate system, where (0,0) is the * upper left corner of the component's bounds. * ! * @param c the component to measure the bounds of (if null, * this method returns null). * @param r a carrier to store the return value in (if null, a * new Rectangle instance is created). --- 92,98 ---- * of the component's coordinate system, where (0,0) is the * upper left corner of the component's bounds. * ! * @param c the component to measure the bounds of (if null, * this method returns null). * @param r a carrier to store the return value in (if null, a * new Rectangle instance is created). *************** public class SwingUtilities *** 115,125 **** /** * Returns the focus owner or null if comp is not * the focus owner or a parent of it. ! * * @param comp the focus owner or a parent of it ! * * @return the focus owner, or null ! * * @deprecated 1.4 Replaced by * KeyboardFocusManager.getFocusOwner(). */ --- 115,125 ---- /** * Returns the focus owner or null if comp is not * the focus owner or a parent of it. ! * * @param comp the focus owner or a parent of it ! * * @return the focus owner, or null ! * * @deprecated 1.4 Replaced by * KeyboardFocusManager.getFocusOwner(). */ *************** public class SwingUtilities *** 127,148 **** { // Get real focus owner. Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager() ! .getFocusOwner(); // Check if comp is the focus owner or a parent of it. Component tmp = focusOwner; ! while (tmp != null) { ! if (tmp == comp) ! return focusOwner; ! tmp = tmp.getParent(); } ! return null; } ! /** * Returns the Accessible child of the specified component * which appears at the supplied Point. If there is no --- 127,148 ---- { // Get real focus owner. Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager() ! .getFocusOwner(); // Check if comp is the focus owner or a parent of it. Component tmp = focusOwner; ! while (tmp != null) { ! if (tmp == comp) ! return focusOwner; ! tmp = tmp.getParent(); } ! return null; } ! /** * Returns the Accessible child of the specified component * which appears at the supplied Point. If there is no *************** public class SwingUtilities *** 280,286 **** * @param comp The component to get the JRootPane of * * @return a suitable JRootPane for comp, or null ! * * @see javax.swing.RootPaneContainer#getRootPane * @see #getAncestorOfClass */ --- 280,286 ---- * @param comp The component to get the JRootPane of * * @return a suitable JRootPane for comp, or null ! * * @see javax.swing.RootPaneContainer#getRootPane * @see #getAncestorOfClass */ *************** public class SwingUtilities *** 354,360 **** /** * Equivalent to calling getAncestorOfClass(Window, comp). * ! * @param comp The component to search for an ancestor window * * @return An ancestral window, or null if none exists */ --- 354,360 ---- /** * Equivalent to calling getAncestorOfClass(Window, comp). * ! * @param comp The component to search for an ancestor window * * @return An ancestral window, or null if none exists */ *************** public class SwingUtilities *** 387,393 **** app = (Applet) comp; comp = comp.getParent(); } ! if (win != null) return win; return app; --- 387,393 ---- app = (Applet) comp; comp = comp.getParent(); } ! if (win != null) return win; return app; *************** public class SwingUtilities *** 395,401 **** /** * Return true if a descends from b, in other words if b is an ancestor of a. ! * * @param a The child to search the ancestry of * @param b The potential ancestor to search for * @return true if a is a descendent of b, false otherwise --- 395,401 ---- /** * Return true if a descends from b, in other words if b is an ancestor of a. ! * * @param a The child to search the ancestry of * @param b The potential ancestor to search for * @return true if a is a descendent of b, false otherwise *************** public class SwingUtilities *** 419,425 **** * (x,y). Returns null when either * (x,y) is outside the bounds of parent, or parent is * null. ! * * @param parent The component to search the descendents of * @param x Horizontal coordinate to search for * @param y Vertical coordinate to search for --- 419,425 ---- * (x,y). Returns null when either * (x,y) is outside the bounds of parent, or parent is * null. ! * * @param parent The component to search the descendents of * @param x Horizontal coordinate to search for * @param y Vertical coordinate to search for *************** public class SwingUtilities *** 520,526 **** return pt; } ! public static Point convertPoint(Component source, Point aPoint, Component destination) { return convertPoint(source, aPoint.x, aPoint.y, destination); --- 520,526 ---- return pt; } ! public static Point convertPoint(Component source, Point aPoint, Component destination) { return convertPoint(source, aPoint.x, aPoint.y, destination); *************** public class SwingUtilities *** 704,720 **** * which is laid out in this label */ ! public static String layoutCompoundLabel(JComponent c, FontMetrics fm, ! String text, ! Icon icon, int verticalAlignment, ! int horizontalAlignment, int verticalTextPosition, ! int horizontalTextPosition, Rectangle viewR, ! Rectangle iconR, ! Rectangle textR, int textIconGap) { --- 704,720 ---- * which is laid out in this label */ ! public static String layoutCompoundLabel(JComponent c, FontMetrics fm, ! String text, ! Icon icon, int verticalAlignment, ! int horizontalAlignment, int verticalTextPosition, ! int horizontalTextPosition, Rectangle viewR, ! Rectangle iconR, ! Rectangle textR, int textIconGap) { *************** public class SwingUtilities *** 921,928 **** if (text == null || text.equals("")) { textIconGap = 0; ! textR.width = 0; ! textR.height = 0; text = ""; } else --- 921,928 ---- if (text == null || text.equals("")) { textIconGap = 0; ! textR.width = 0; ! textR.height = 0; text = ""; } else *************** public class SwingUtilities *** 1070,1087 **** return clipped; } ! /** * Calls {@link java.awt.EventQueue#invokeLater} with the ! * specified {@link Runnable}. */ public static void invokeLater(Runnable doRun) { java.awt.EventQueue.invokeLater(doRun); } ! /** * Calls {@link java.awt.EventQueue#invokeAndWait} with the ! * specified {@link Runnable}. */ public static void invokeAndWait(Runnable doRun) throws InterruptedException, --- 1070,1087 ---- return clipped; } ! /** * Calls {@link java.awt.EventQueue#invokeLater} with the ! * specified {@link Runnable}. */ public static void invokeLater(Runnable doRun) { java.awt.EventQueue.invokeLater(doRun); } ! /** * Calls {@link java.awt.EventQueue#invokeAndWait} with the ! * specified {@link Runnable}. */ public static void invokeAndWait(Runnable doRun) throws InterruptedException, *************** public class SwingUtilities *** 1090,1110 **** java.awt.EventQueue.invokeAndWait(doRun); } ! /** * Calls {@link java.awt.EventQueue#isDispatchThread()}. ! * ! * @return true if the current thread is the current AWT event * dispatch thread. */ public static boolean isEventDispatchThread() { return java.awt.EventQueue.isDispatchThread(); } ! /** * This method paints the given component at the given position and size. * The component will be reparented to the container given. ! * * @param g The Graphics object to draw with. * @param c The Component to draw * @param p The Container to reparent to. --- 1090,1110 ---- java.awt.EventQueue.invokeAndWait(doRun); } ! /** * Calls {@link java.awt.EventQueue#isDispatchThread()}. ! * ! * @return true if the current thread is the current AWT event * dispatch thread. */ public static boolean isEventDispatchThread() { return java.awt.EventQueue.isDispatchThread(); } ! /** * This method paints the given component at the given position and size. * The component will be reparented to the container given. ! * * @param g The Graphics object to draw with. * @param c The Component to draw * @param p The Container to reparent to. *************** public class SwingUtilities *** 1113,1134 **** * @param w The width of the drawing area. * @param h The height of the drawing area. */ ! public static void paintComponent(Graphics g, Component c, Container p, int x, int y, int w, int h) ! { Container parent = c.getParent(); if (parent != null) parent.remove(c); if (p != null) p.add(c); ! Shape savedClip = g.getClip(); ! g.setClip(x, y, w, h); g.translate(x, y); c.paint(g); ! g.translate(-x, -y); g.setClip(savedClip); } --- 1113,1134 ---- * @param w The width of the drawing area. * @param h The height of the drawing area. */ ! public static void paintComponent(Graphics g, Component c, Container p, int x, int y, int w, int h) ! { Container parent = c.getParent(); if (parent != null) parent.remove(c); if (p != null) p.add(c); ! Shape savedClip = g.getClip(); ! g.setClip(x, y, w, h); g.translate(x, y); c.paint(g); ! g.translate(-x, -y); g.setClip(savedClip); } *************** public class SwingUtilities *** 1136,1158 **** /** * This method paints the given component in the given rectangle. * The component will be reparented to the container given. ! * * @param g The Graphics object to draw with. * @param c The Component to draw * @param p The Container to reparent to. * @param r The rectangle that describes the drawing area. ! */ ! public static void paintComponent(Graphics g, Component c, Container p, Rectangle r) { paintComponent(g, c, p, r.x, r.y, r.width, r.height); } ! /** * This method returns the common Frame owner used in JDialogs or * JWindow when no owner is provided. * ! * @return The common Frame */ static Window getOwnerFrame(Window owner) { --- 1136,1158 ---- /** * This method paints the given component in the given rectangle. * The component will be reparented to the container given. ! * * @param g The Graphics object to draw with. * @param c The Component to draw * @param p The Container to reparent to. * @param r The rectangle that describes the drawing area. ! */ ! public static void paintComponent(Graphics g, Component c, Container p, Rectangle r) { paintComponent(g, c, p, r.x, r.y, r.width, r.height); } ! /** * This method returns the common Frame owner used in JDialogs or * JWindow when no owner is provided. * ! * @return The common Frame */ static Window getOwnerFrame(Window owner) { *************** public class SwingUtilities *** 1188,1194 **** public static boolean isMiddleMouseButton(MouseEvent event) { return ((event.getModifiersEx() & InputEvent.BUTTON2_DOWN_MASK) ! == InputEvent.BUTTON2_DOWN_MASK); } /** --- 1188,1194 ---- public static boolean isMiddleMouseButton(MouseEvent event) { return ((event.getModifiersEx() & InputEvent.BUTTON2_DOWN_MASK) ! == InputEvent.BUTTON2_DOWN_MASK); } /** *************** public class SwingUtilities *** 1201,1209 **** public static boolean isRightMouseButton(MouseEvent event) { return ((event.getModifiersEx() & InputEvent.BUTTON3_DOWN_MASK) ! == InputEvent.BUTTON3_DOWN_MASK); } ! /** * This frame should be used when constructing a Window/JDialog without * a parent. In this case, we are forced to use this frame as a window's --- 1201,1209 ---- public static boolean isRightMouseButton(MouseEvent event) { return ((event.getModifiersEx() & InputEvent.BUTTON3_DOWN_MASK) ! == InputEvent.BUTTON3_DOWN_MASK); } ! /** * This frame should be used when constructing a Window/JDialog without * a parent. In this case, we are forced to use this frame as a window's *************** public class SwingUtilities *** 1214,1222 **** { public void setVisible(boolean b) { ! // Do nothing here. } ! public boolean isShowing() { return true; --- 1214,1222 ---- { public void setVisible(boolean b) { ! // Do nothing here. } ! public boolean isShowing() { return true; *************** public class SwingUtilities *** 1251,1259 **** * parent-pointer chain, as illustrated:

                                            * *
                                            !    *  [{@link javax.swing.JComponent#getActionMap()}] 
                                            !    *          --> [{@link javax.swing.ActionMap}] 
                                            !    *     parent --> [{@link javax.swing.text.JTextComponent.KeymapActionMap}] 
                                                 *       parent --> [{@link javax.swing.plaf.ActionMapUIResource}]
                                                 * 
                                            * --- 1251,1259 ---- * parent-pointer chain, as illustrated:

                                            * *
                                            !    *  [{@link javax.swing.JComponent#getActionMap()}]
                                            !    *          --> [{@link javax.swing.ActionMap}]
                                            !    *     parent --> [{@link javax.swing.text.JTextComponent.KeymapActionMap}]
                                                 *       parent --> [{@link javax.swing.plaf.ActionMapUIResource}]
                                                 * 
                                            * *************** public class SwingUtilities *** 1266,1272 **** * call as a request to remove the UI-managed ActionMap from the * component's ActionMap parent chain.

                                            */ ! public static void replaceUIActionMap(JComponent component, ActionMap uiActionMap) { ActionMap child = component.getActionMap(); --- 1266,1272 ---- * call as a request to remove the UI-managed ActionMap from the * component's ActionMap parent chain.

                                            */ ! public static void replaceUIActionMap(JComponent component, ActionMap uiActionMap) { ActionMap child = component.getActionMap(); *************** public class SwingUtilities *** 1294,1302 **** * end of the parent-pointer chain, as illustrated:

                                            * *
                                            !    *  [{@link javax.swing.JComponent#getInputMap()}] 
                                            !    *          --> [{@link javax.swing.InputMap}] 
                                            !    *     parent --> [{@link javax.swing.text.JTextComponent.KeymapWrapper}] 
                                                 *       parent --> [{@link javax.swing.plaf.InputMapUIResource}]
                                                 * 
                                            * --- 1294,1302 ---- * end of the parent-pointer chain, as illustrated:

                                            * *
                                            !    *  [{@link javax.swing.JComponent#getInputMap()}]
                                            !    *          --> [{@link javax.swing.InputMap}]
                                            !    *     parent --> [{@link javax.swing.text.JTextComponent.KeymapWrapper}]
                                                 *       parent --> [{@link javax.swing.plaf.InputMapUIResource}]
                                                 * 
                                            * *************** public class SwingUtilities *** 1309,1316 **** * call as a request to remove the UI-managed InputMap from the * component's InputMap parent chain.

                                            */ ! public static void replaceUIInputMap(JComponent component, ! int condition, InputMap uiInputMap) { InputMap child = component.getInputMap(condition); --- 1309,1316 ---- * call as a request to remove the UI-managed InputMap from the * component's InputMap parent chain.

                                            */ ! public static void replaceUIInputMap(JComponent component, ! int condition, InputMap uiInputMap) { InputMap child = component.getInputMap(condition); *************** public class SwingUtilities *** 1357,1363 **** int h2 = rectB.height; // (outer box = rectA) ! // ------------- // |_____0_____| // | |rectB| | // |_1|_____|_2| --- 1357,1363 ---- int h2 = rectB.height; // (outer box = rectA) ! // ------------- // |_____0_____| // | |rectB| | // |_1|_____|_2| *************** public class SwingUtilities *** 1393,1403 **** int n = 0; for (int i = 0; i < 4; i++) if (r[i] != null) ! n++; Rectangle[] out = new Rectangle[n]; for (int i = 3; i >= 0; i--) if (r[i] != null) ! out[--n] = r[i]; return out; } --- 1393,1403 ---- int n = 0; for (int i = 0; i < 4; i++) if (r[i] != null) ! n++; Rectangle[] out = new Rectangle[n]; for (int i = 3; i >= 0; i--) if (r[i] != null) ! out[--n] = r[i]; return out; } *************** public class SwingUtilities *** 1441,1453 **** return rect; } ! /** * Calculates the width of a given string. * * @param fm the FontMetrics object to use * @param str the string ! * * @return the width of the the string. */ public static int computeStringWidth(FontMetrics fm, String str) --- 1441,1453 ---- return rect; } ! /** * Calculates the width of a given string. * * @param fm the FontMetrics object to use * @param str the string ! * * @return the width of the the string. */ public static int computeStringWidth(FontMetrics fm, String str) *************** public class SwingUtilities *** 1551,1557 **** } /** ! * Processes key bindings for the component that is associated with the * key event. Note that this method does not make sense for * JComponent-derived components, except when * {@link JComponent#processKeyEvent(KeyEvent)} is overridden and super is --- 1551,1557 ---- } /** ! * Processes key bindings for the component that is associated with the * key event. Note that this method does not make sense for * JComponent-derived components, except when * {@link JComponent#processKeyEvent(KeyEvent)} is overridden and super is *************** public class SwingUtilities *** 1575,1581 **** KeyboardManager km = KeyboardManager.getManager(); return km.processKeyStroke(c, s, ev); } ! /** * Returns a string representing one of the horizontal alignment codes * defined in the {@link SwingConstants} interface. The following table --- 1575,1581 ---- KeyboardManager km = KeyboardManager.getManager(); return km.processKeyStroke(c, s, ev); } ! /** * Returns a string representing one of the horizontal alignment codes * defined in the {@link SwingConstants} interface. The following table *************** public class SwingUtilities *** 1609,1624 **** *

                                            * If the supplied code is not one of those listed, this methods will throw * an {@link IllegalArgumentException}. ! * * @param code the code. ! * * @return A string representing the given code. */ static String convertHorizontalAlignmentCodeToString(int code) { ! switch (code) { ! case SwingConstants.CENTER: return "CENTER"; case SwingConstants.LEFT: return "LEFT"; --- 1609,1624 ---- *

                                            * If the supplied code is not one of those listed, this methods will throw * an {@link IllegalArgumentException}. ! * * @param code the code. ! * * @return A string representing the given code. */ static String convertHorizontalAlignmentCodeToString(int code) { ! switch (code) { ! case SwingConstants.CENTER: return "CENTER"; case SwingConstants.LEFT: return "LEFT"; *************** public class SwingUtilities *** 1632,1638 **** throw new IllegalArgumentException("Unrecognised code: " + code); } } ! /** * Returns a string representing one of the vertical alignment codes * defined in the {@link SwingConstants} interface. The following table --- 1632,1638 ---- throw new IllegalArgumentException("Unrecognised code: " + code); } } ! /** * Returns a string representing one of the vertical alignment codes * defined in the {@link SwingConstants} interface. The following table *************** public class SwingUtilities *** 1658,1666 **** *

                                            * If the supplied code is not one of those listed, this methods will throw * an {@link IllegalArgumentException}. ! * * @param code the code. ! * * @return A string representing the given code. */ static String convertVerticalAlignmentCodeToString(int code) --- 1658,1666 ---- *

                                            * If the supplied code is not one of those listed, this methods will throw * an {@link IllegalArgumentException}. ! * * @param code the code. ! * * @return A string representing the given code. */ static String convertVerticalAlignmentCodeToString(int code) *************** public class SwingUtilities *** 1677,1683 **** throw new IllegalArgumentException("Unrecognised code: " + code); } } ! /** * Returns a string representing one of the default operation codes * defined in the {@link WindowConstants} interface. The following table --- 1677,1683 ---- throw new IllegalArgumentException("Unrecognised code: " + code); } } ! /** * Returns a string representing one of the default operation codes * defined in the {@link WindowConstants} interface. The following table *************** public class SwingUtilities *** 1707,1718 **** *

                                            * If the supplied code is not one of those listed, this method will throw * an {@link IllegalArgumentException}. ! * * @param code the code. ! * * @return A string representing the given code. */ ! static String convertWindowConstantToString(int code) { switch (code) { --- 1707,1718 ---- *

                                            * If the supplied code is not one of those listed, this method will throw * an {@link IllegalArgumentException}. ! * * @param code the code. ! * * @return A string representing the given code. */ ! static String convertWindowConstantToString(int code) { switch (code) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/Timer.java gcc-4.6.0/libjava/classpath/javax/swing/Timer.java *** gcc-4.5.2/libjava/classpath/javax/swing/Timer.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/Timer.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.EventListenerLi *** 51,57 **** * firing ActionEvents. All Timers share one (daemon) * Thread (or java.util.Timer). All events are fired from the event * queue. ! * * @author Ronald Veldema * @author Audrius Meskauskas (audriusa@Bionformatics.org) - bug fixes * and documentation comments --- 51,57 ---- * firing ActionEvents. All Timers share one (daemon) * Thread (or java.util.Timer). All events are fired from the event * queue. ! * * @author Ronald Veldema * @author Audrius Meskauskas (audriusa@Bionformatics.org) - bug fixes * and documentation comments *************** public class Timer *** 99,105 **** * running, even if there's no task scheduled in it. */ private static java.util.Timer timer = new java.util.Timer("swing.Timer", ! true); /** * If true, the timer prints a message to --- 99,105 ---- * running, even if there's no task scheduled in it. */ private static java.util.Timer timer = new java.util.Timer("swing.Timer", ! true); /** * If true, the timer prints a message to *************** public class Timer *** 264,275 **** * firing the first event. * * @param d The time gap between the subsequent events, in milliseconds ! * * @throws IllegalArgumentException if d is less than zero. */ public void setDelay(int d) { ! if (d < 0) throw new IllegalArgumentException("Invalid delay: " + d); delay = d; } --- 264,275 ---- * firing the first event. * * @param d The time gap between the subsequent events, in milliseconds ! * * @throws IllegalArgumentException if d is less than zero. */ public void setDelay(int d) { ! if (d < 0) throw new IllegalArgumentException("Invalid delay: " + d); delay = d; } *************** public class Timer *** 291,297 **** * subsequent events. * * @param i the initial delay, in milliseconds ! * * @throws IllegalArgumentException if i is less than zero. */ public void setInitialDelay(int i) --- 291,297 ---- * subsequent events. * * @param i the initial delay, in milliseconds ! * * @throws IllegalArgumentException if i is less than zero. */ public void setInitialDelay(int i) *************** public class Timer *** 387,398 **** Task t = task; if (t == null) { ! t = new Task(); ! if (isRepeats()) ! timer.schedule(t, getInitialDelay(), getDelay()); ! else ! timer.schedule(t, getInitialDelay()); ! task = t; } } --- 387,398 ---- Task t = task; if (t == null) { ! t = new Task(); ! if (isRepeats()) ! timer.schedule(t, getInitialDelay(), getDelay()); ! else ! timer.schedule(t, getInitialDelay()); ! task = t; } } *************** public class Timer *** 404,411 **** Task t = task; if (t != null) { ! t.cancel(); ! task = null; } } --- 404,411 ---- Task t = task; if (t != null) { ! t.cancel(); ! task = null; } } *************** public class Timer *** 468,476 **** { synchronized(queueLock) { ! queue++; ! if (queue == 1) ! SwingUtilities.invokeLater(drainer); } } } --- 468,476 ---- { synchronized(queueLock) { ! queue++; ! if (queue == 1) ! SwingUtilities.invokeLater(drainer); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ToolTipManager.java gcc-4.6.0/libjava/classpath/javax/swing/ToolTipManager.java *** gcc-4.5.2/libjava/classpath/javax/swing/ToolTipManager.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/ToolTipManager.java Tue Jan 11 19:46:05 2011 *************** public class ToolTipManager extends Mous *** 219,227 **** { if (! enabled) { ! enterTimer.stop(); ! exitTimer.stop(); ! insideTimer.stop(); } this.enabled = enabled; --- 219,227 ---- { if (! enabled) { ! enterTimer.stop(); ! exitTimer.stop(); ! insideTimer.stop(); } this.enabled = enabled; *************** public class ToolTipManager extends Mous *** 276,282 **** * mouse enters a Component. * * @param delay The initial delay before the ToolTip is shown. ! * * @throws IllegalArgumentException if delay is less than zero. */ public void setInitialDelay(int delay) --- 276,282 ---- * mouse enters a Component. * * @param delay The initial delay before the ToolTip is shown. ! * * @throws IllegalArgumentException if delay is less than zero. */ public void setInitialDelay(int delay) *************** public class ToolTipManager extends Mous *** 299,305 **** * Sets the time the ToolTip will be shown before being hidden. * * @param delay the delay (in milliseconds) before tool tips are hidden. ! * * @throws IllegalArgumentException if delay is less than zero. */ public void setDismissDelay(int delay) --- 299,305 ---- * Sets the time the ToolTip will be shown before being hidden. * * @param delay the delay (in milliseconds) before tool tips are hidden. ! * * @throws IllegalArgumentException if delay is less than zero. */ public void setDismissDelay(int delay) *************** public class ToolTipManager extends Mous *** 323,329 **** * Component, the tooltip will be shown immediately. * * @param delay The reshow delay (in milliseconds). ! * * @throws IllegalArgumentException if delay is less than zero. */ public void setReshowDelay(int delay) --- 323,329 ---- * Component, the tooltip will be shown immediately. * * @param delay The reshow delay (in milliseconds). ! * * @throws IllegalArgumentException if delay is less than zero. */ public void setReshowDelay(int delay) *************** public class ToolTipManager extends Mous *** 386,392 **** * This method is called when the mouse exits a JComponent registered with the * ToolTipManager. When the mouse exits, the tooltip should be hidden * immediately. ! * * @param event * The MouseEvent. */ --- 386,392 ---- * This method is called when the mouse exits a JComponent registered with the * ToolTipManager. When the mouse exits, the tooltip should be hidden * immediately. ! * * @param event * The MouseEvent. */ *************** public class ToolTipManager extends Mous *** 421,428 **** enterTimer.restart(); else if (insideTimer.isRunning()) { ! insideTimer.stop(); ! hideTip(); } } --- 421,428 ---- enterTimer.restart(); else if (insideTimer.isRunning()) { ! insideTimer.stop(); ! hideTip(); } } *************** public class ToolTipManager extends Mous *** 517,523 **** Point p = currentPoint; Point cP = currentComponent.getLocationOnScreen(); Dimension dims = currentTip.getPreferredSize(); ! JLayeredPane pane = null; JRootPane r = ((JRootPane) SwingUtilities.getAncestorOfClass(JRootPane.class, currentComponent)); --- 517,523 ---- Point p = currentPoint; Point cP = currentComponent.getLocationOnScreen(); Dimension dims = currentTip.getPreferredSize(); ! JLayeredPane pane = null; JRootPane r = ((JRootPane) SwingUtilities.getAncestorOfClass(JRootPane.class, currentComponent)); *************** public class ToolTipManager extends Mous *** 525,536 **** pane = r.getLayeredPane(); if (pane == null) return; ! p.translate(cP.x, cP.y); adjustLocation(p, pane, dims); ! currentTip.setBounds(0, 0, dims.width, dims.height); ! PopupFactory factory = PopupFactory.getSharedInstance(); popup = factory.getPopup(currentComponent, currentTip, p.x, p.y); popup.show(); --- 525,536 ---- pane = r.getLayeredPane(); if (pane == null) return; ! p.translate(cP.x, cP.y); adjustLocation(p, pane, dims); ! currentTip.setBounds(0, 0, dims.width, dims.height); ! PopupFactory factory = PopupFactory.getSharedInstance(); popup = factory.getPopup(currentComponent, currentTip, p.x, p.y); popup.show(); *************** public class ToolTipManager extends Mous *** 539,545 **** /** * Adjusts the point to a new location on the component, * using the currentTip's dimensions. ! * * @param p - the point to convert. * @param c - the component the point is on. * @param d - the dimensions of the currentTip. --- 539,545 ---- /** * Adjusts the point to a new location on the component, * using the currentTip's dimensions. ! * * @param p - the point to convert. * @param c - the component the point is on. * @param d - the dimensions of the currentTip. *************** public class ToolTipManager extends Mous *** 554,563 **** p.y += d.height; if (p.y + d.height > c.getHeight()) p.y -= d.height; ! return p; } ! /** * This method hides the ToolTip. * This is package-private to avoid an accessor method. --- 554,563 ---- p.y += d.height; if (p.y + d.height > c.getHeight()) p.y -= d.height; ! return p; } ! /** * This method hides the ToolTip. * This is package-private to avoid an accessor method. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/TransferHandler.java gcc-4.6.0/libjava/classpath/javax/swing/TransferHandler.java *** gcc-4.5.2/libjava/classpath/javax/swing/TransferHandler.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/TransferHandler.java Tue Jan 11 19:46:05 2011 *************** public class TransferHandler implements *** 172,178 **** super(command); this.command = command; } ! public void actionPerformed(ActionEvent event) { JComponent component = (JComponent) event.getSource(); --- 172,178 ---- super(command); this.command = command; } ! public void actionPerformed(ActionEvent event) { JComponent component = (JComponent) event.getSource(); *************** public class TransferHandler implements *** 180,221 **** Clipboard clipboard = getClipboard(component); if (clipboard == null) ! { ! // Access denied! ! Toolkit.getDefaultToolkit().beep(); ! return; ! } if (command.equals(COMMAND_COPY)) ! transferHandler.exportToClipboard(component, clipboard, COPY); else if (command.equals(COMMAND_CUT)) ! transferHandler.exportToClipboard(component, clipboard, MOVE); else if (command.equals(COMMAND_PASTE)) ! { ! Transferable transferable = clipboard.getContents(null); ! if (transferable != null) ! transferHandler.importData(component, transferable); ! } } ! /** * Get the system cliboard or null if the caller isn't allowed to * access the system clipboard. ! * * @param component a component, used to get the toolkit. * @return the clipboard */ private static Clipboard getClipboard(JComponent component) { try ! { ! return component.getToolkit().getSystemClipboard(); ! } catch (SecurityException se) ! { ! return null; ! } } } --- 180,221 ---- Clipboard clipboard = getClipboard(component); if (clipboard == null) ! { ! // Access denied! ! Toolkit.getDefaultToolkit().beep(); ! return; ! } if (command.equals(COMMAND_COPY)) ! transferHandler.exportToClipboard(component, clipboard, COPY); else if (command.equals(COMMAND_CUT)) ! transferHandler.exportToClipboard(component, clipboard, MOVE); else if (command.equals(COMMAND_PASTE)) ! { ! Transferable transferable = clipboard.getContents(null); ! if (transferable != null) ! transferHandler.importData(component, transferable); ! } } ! /** * Get the system cliboard or null if the caller isn't allowed to * access the system clipboard. ! * * @param component a component, used to get the toolkit. * @return the clipboard */ private static Clipboard getClipboard(JComponent component) { try ! { ! return component.getToolkit().getSystemClipboard(); ! } catch (SecurityException se) ! { ! return null; ! } } } *************** public class TransferHandler implements *** 244,250 **** { // Nothing to do here. } ! } private static class SwingDragHandler --- 244,250 ---- { // Nothing to do here. } ! } private static class SwingDragHandler *************** public class TransferHandler implements *** 310,316 **** { // Nothing to do here. } ! } private static final long serialVersionUID = -967749805571669910L; --- 310,316 ---- { // Nothing to do here. } ! } private static final long serialVersionUID = -967749805571669910L; *************** public class TransferHandler implements *** 318,324 **** private static final String COMMAND_COPY = "copy"; private static final String COMMAND_CUT = "cut"; private static final String COMMAND_PASTE = "paste"; ! public static final int NONE = 0; public static final int COPY = 1; public static final int MOVE = 2; --- 318,324 ---- private static final String COMMAND_COPY = "copy"; private static final String COMMAND_CUT = "cut"; private static final String COMMAND_PASTE = "paste"; ! public static final int NONE = 0; public static final int COPY = 1; public static final int MOVE = 2; *************** public class TransferHandler implements *** 327,339 **** private static Action copyAction = new TransferAction(COMMAND_COPY); private static Action cutAction = new TransferAction(COMMAND_CUT); private static Action pasteAction = new TransferAction(COMMAND_PASTE); ! private int sourceActions; private Icon visualRepresentation; /** * The name of the property into/from which this TransferHandler ! * imports/exports. */ private String propertyName; --- 327,339 ---- private static Action copyAction = new TransferAction(COMMAND_COPY); private static Action cutAction = new TransferAction(COMMAND_CUT); private static Action pasteAction = new TransferAction(COMMAND_PASTE); ! private int sourceActions; private Icon visualRepresentation; /** * The name of the property into/from which this TransferHandler ! * imports/exports. */ private String propertyName; *************** public class TransferHandler implements *** 426,432 **** * from the specified component, or null if the component doesn't * have a readable property like the transfer handler */ ! protected Transferable createTransferable(JComponent c) { Transferable transferable = null; if (propertyName != null) --- 426,432 ---- * from the specified component, or null if the component doesn't * have a readable property like the transfer handler */ ! protected Transferable createTransferable(JComponent c) { Transferable transferable = null; if (propertyName != null) *************** public class TransferHandler implements *** 499,505 **** * * @throws IllegalStateException when the clipboard is not available */ ! public void exportToClipboard(JComponent c, Clipboard clip, int action) throws IllegalStateException { action &= getSourceActions(c); --- 499,505 ---- * * @throws IllegalStateException when the clipboard is not available */ ! public void exportToClipboard(JComponent c, Clipboard clip, int action) throws IllegalStateException { action &= getSourceActions(c); *************** public class TransferHandler implements *** 519,525 **** } else exportDone(c, null, NONE); ! } public int getSourceActions(JComponent c) { --- 519,525 ---- } else exportDone(c, null, NONE); ! } public int getSourceActions(JComponent c) { *************** public class TransferHandler implements *** 536,542 **** * component c by setting the property of this TransferHandler * on that component. If this succeeds, this method returns * true, otherwise false. ! * * * @param c the component to import into * @param t the transfer data to import --- 536,542 ---- * component c by setting the property of this TransferHandler * on that component. If this succeeds, this method returns * true, otherwise false. ! * * * @param c the component to import into * @param t the transfer data to import *************** public class TransferHandler implements *** 544,550 **** * @return true if the transfer succeeds, false * otherwise */ ! public boolean importData(JComponent c, Transferable t) { boolean ok = false; PropertyDescriptor prop = getPropertyDescriptor(c); --- 544,550 ---- * @return true if the transfer succeeds, false * otherwise */ ! public boolean importData(JComponent c, Transferable t) { boolean ok = false; PropertyDescriptor prop = getPropertyDescriptor(c); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/UIDefaults.java gcc-4.6.0/libjava/classpath/javax/swing/UIDefaults.java *** gcc-4.5.2/libjava/classpath/javax/swing/UIDefaults.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/UIDefaults.java Tue Jan 11 19:46:05 2011 *************** public class UIDefaults extends Hashtabl *** 129,136 **** { final String className = s; inner = new LazyValue() ! { ! public Object createValue(UIDefaults table) { try { --- 129,136 ---- { final String className = s; inner = new LazyValue() ! { ! public Object createValue(UIDefaults table) { try { *************** public class UIDefaults extends Hashtabl *** 152,162 **** final String className = c; final String methodName = m; inner = new LazyValue() ! { ! public Object createValue(UIDefaults table) { ! try ! { return Class .forName(className) .getMethod(methodName, new Class[] {}) --- 152,162 ---- final String className = c; final String methodName = m; inner = new LazyValue() ! { ! public Object createValue(UIDefaults table) { ! try ! { return Class .forName(className) .getMethod(methodName, new Class[] {}) *************** public class UIDefaults extends Hashtabl *** 169,175 **** } }; } ! public ProxyLazyValue(String c, Object[] os) { final String className = c; --- 169,175 ---- } }; } ! public ProxyLazyValue(String c, Object[] os) { final String className = c; *************** public class UIDefaults extends Hashtabl *** 178,197 **** for (int i = 0; i < objs.length; ++i) { clss[i] = objs[i].getClass(); ! } inner = new LazyValue() ! { ! public Object createValue(UIDefaults table) ! { try { return Class .forName(className) .getConstructor(clss) .newInstance(objs); ! } catch (Exception e) ! { return null; } } --- 178,197 ---- for (int i = 0; i < objs.length; ++i) { clss[i] = objs[i].getClass(); ! } inner = new LazyValue() ! { ! public Object createValue(UIDefaults table) ! { try { return Class .forName(className) .getConstructor(clss) .newInstance(objs); ! } catch (Exception e) ! { return null; } } *************** public class UIDefaults extends Hashtabl *** 205,218 **** final Object[] objs = os; final Class[] clss = new Class[objs.length]; for (int i = 0; i < objs.length; ++i) ! { clss[i] = objs[i].getClass(); ! } inner = new LazyValue() ! { ! public Object createValue(UIDefaults table) ! { ! try { return Class .forName(className) --- 205,218 ---- final Object[] objs = os; final Class[] clss = new Class[objs.length]; for (int i = 0; i < objs.length; ++i) ! { clss[i] = objs[i].getClass(); ! } inner = new LazyValue() ! { ! public Object createValue(UIDefaults table) ! { ! try { return Class .forName(className) *************** public class UIDefaults extends Hashtabl *** 226,232 **** } }; } ! public Object createValue(UIDefaults table) { return inner.createValue(table); --- 226,232 ---- } }; } ! public Object createValue(UIDefaults table) { return inner.createValue(table); *************** public class UIDefaults extends Hashtabl *** 257,263 **** public UIDefaults(Object[] entries) { this(); ! for (int i = 0; (2 * i + 1) < entries.length; ++i) put(entries[2 * i], entries[2 * i + 1]); } --- 257,263 ---- public UIDefaults(Object[] entries) { this(); ! for (int i = 0; (2 * i + 1) < entries.length; ++i) put(entries[2 * i], entries[2 * i + 1]); } *************** public class UIDefaults extends Hashtabl *** 293,306 **** String keyString = (String) key; ListIterator i = bundles.listIterator(0); while (i.hasNext()) ! { String bundle_name = (String) i.next(); ResourceBundle res = ResourceBundle.getBundle(bundle_name, loc); if (res != null) { ! try ! { obj = res.getObject(keyString); break; } --- 293,306 ---- String keyString = (String) key; ListIterator i = bundles.listIterator(0); while (i.hasNext()) ! { String bundle_name = (String) i.next(); ResourceBundle res = ResourceBundle.getBundle(bundle_name, loc); if (res != null) { ! try ! { obj = res.getObject(keyString); break; } *************** public class UIDefaults extends Hashtabl *** 329,335 **** else if (obj instanceof ActiveValue) { return ((ActiveValue) obj).createValue(this); ! } return obj; } --- 329,335 ---- else if (obj instanceof ActiveValue) { return ((ActiveValue) obj).createValue(this); ! } return obj; } *************** public class UIDefaults extends Hashtabl *** 582,588 **** * * @param key the key to the requested entry * ! * @return The boolean entry for key or false if no * such entry exists. */ public boolean getBoolean(Object key) --- 582,588 ---- * * @param key the key to the requested entry * ! * @return The boolean entry for key or false if no * such entry exists. */ public boolean getBoolean(Object key) *************** public class UIDefaults extends Hashtabl *** 612,618 **** * @return the insets entry for key or null if no such entry * exists */ ! public Insets getInsets(Object key) { Object o = get(key); return o instanceof Insets ? (Insets) o : null; --- 612,618 ---- * @return the insets entry for key or null if no such entry * exists */ ! public Insets getInsets(Object key) { Object o = get(key); return o instanceof Insets ? (Insets) o : null; *************** public class UIDefaults extends Hashtabl *** 627,633 **** * @return the boolean entry for key or null if no such entry * exists */ ! public Insets getInsets(Object key, Locale locale) { Object o = get(key, locale); return o instanceof Insets ? (Insets) o : null; --- 627,633 ---- * @return the boolean entry for key or null if no such entry * exists */ ! public Insets getInsets(Object key, Locale locale) { Object o = get(key, locale); return o instanceof Insets ? (Insets) o : null; *************** public class UIDefaults extends Hashtabl *** 641,647 **** * @return the dimension entry for key or null if no such entry * exists */ ! public Dimension getDimension(Object key) { Object o = get(key); return o instanceof Dimension ? (Dimension) o : null; --- 641,647 ---- * @return the dimension entry for key or null if no such entry * exists */ ! public Dimension getDimension(Object key) { Object o = get(key); return o instanceof Dimension ? (Dimension) o : null; *************** public class UIDefaults extends Hashtabl *** 656,662 **** * @return the boolean entry for key or null if no such entry * exists */ ! public Dimension getDimension(Object key, Locale locale) { Object o = get(key, locale); return o instanceof Dimension ? (Dimension) o : null; --- 656,662 ---- * @return the boolean entry for key or null if no such entry * exists */ ! public Dimension getDimension(Object key, Locale locale) { Object o = get(key, locale); return o instanceof Dimension ? (Dimension) o : null; *************** public class UIDefaults extends Hashtabl *** 677,683 **** String className = (String) get(id); if (className == null) return null; ! try { if (loader == null) loader = ClassLoader.getSystemClassLoader(); --- 677,683 ---- String className = (String) get(id); if (className == null) return null; ! try { if (loader == null) loader = ClassLoader.getSystemClassLoader(); *************** public class UIDefaults extends Hashtabl *** 733,739 **** Method factory; ! try { factory = cls.getMethod ("createUI", new Class[] { JComponent.class } ); } --- 733,739 ---- Method factory; ! try { factory = cls.getMethod ("createUI", new Class[] { JComponent.class } ); } *************** public class UIDefaults extends Hashtabl *** 749,762 **** } catch (java.lang.reflect.InvocationTargetException ite) { ! getUIError ("InvocationTargetException ("+ ite.getTargetException() ! +") calling createUI(...) on " + cls.toString ()); ! return null; } catch (Exception e) { getUIError ("exception calling createUI(...) on " + cls.toString ()); ! return null; } } --- 749,762 ---- } catch (java.lang.reflect.InvocationTargetException ite) { ! getUIError ("InvocationTargetException ("+ ite.getTargetException() ! +") calling createUI(...) on " + cls.toString ()); ! return null; } catch (Exception e) { getUIError ("exception calling createUI(...) on " + cls.toString ()); ! return null; } } *************** public class UIDefaults extends Hashtabl *** 800,806 **** * @param newValue the new value */ protected void firePropertyChange(String property, ! Object oldValue, Object newValue) { propertyChangeSupport.firePropertyChange(property, oldValue, newValue); } --- 800,806 ---- * @param newValue the new value */ protected void firePropertyChange(String property, ! Object oldValue, Object newValue) { propertyChangeSupport.firePropertyChange(property, oldValue, newValue); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/UIManager.java gcc-4.6.0/libjava/classpath/javax/swing/UIManager.java *** gcc-4.5.2/libjava/classpath/javax/swing/UIManager.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/UIManager.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UIManager.java -- Copyright (C) 2002, 2003, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UIManager.java -- Copyright (C) 2002, 2003, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.swing.plaf.metal.MetalLookA *** 61,82 **** public class UIManager implements Serializable { /** ! * Represents the basic information about a {@link LookAndFeel} (LAF), so ! * that a list of installed LAFs can be presented without actually loading * the LAF class(es). */ public static class LookAndFeelInfo { String name, clazz; ! /** * Creates a new instance. ! * * @param name the look and feel name. * @param clazz the look and feel class name. */ ! public LookAndFeelInfo(String name, ! String clazz) { this.name = name; this.clazz = clazz; --- 61,82 ---- public class UIManager implements Serializable { /** ! * Represents the basic information about a {@link LookAndFeel} (LAF), so ! * that a list of installed LAFs can be presented without actually loading * the LAF class(es). */ public static class LookAndFeelInfo { String name, clazz; ! /** * Creates a new instance. ! * * @param name the look and feel name. * @param clazz the look and feel class name. */ ! public LookAndFeelInfo(String name, ! String clazz) { this.name = name; this.clazz = clazz; *************** public class UIManager implements Serial *** 84,100 **** /** * Returns the name of the look and feel. ! * * @return The name of the look and feel. */ public String getName() { return name; } ! /** * Returns the fully qualified class name for the {@link LookAndFeel}. ! * * @return The fully qualified class name for the {@link LookAndFeel}. */ public String getClassName() --- 84,100 ---- /** * Returns the name of the look and feel. ! * * @return The name of the look and feel. */ public String getName() { return name; } ! /** * Returns the fully qualified class name for the {@link LookAndFeel}. ! * * @return The fully qualified class name for the {@link LookAndFeel}. */ public String getClassName() *************** public class UIManager implements Serial *** 151,170 **** i++; return val; } ! } UIDefaults fallback; /** ! * Creates a new MultiplexUIDefaults instance with * d as the fallback defaults. ! * * @param d the fallback defaults (null not permitted). */ MultiplexUIDefaults(UIDefaults d) { ! if (d == null) throw new NullPointerException(); fallback = d; } --- 151,170 ---- i++; return val; } ! } UIDefaults fallback; /** ! * Creates a new MultiplexUIDefaults instance with * d as the fallback defaults. ! * * @param d the fallback defaults (null not permitted). */ MultiplexUIDefaults(UIDefaults d) { ! if (d == null) throw new NullPointerException(); fallback = d; } *************** public class UIManager implements Serial *** 219,228 **** /** The installed auxiliary look and feels. */ static LookAndFeel[] auxLookAndFeels; ! /** The current look and feel. */ static LookAndFeel currentLookAndFeel; ! static MultiplexUIDefaults currentUIDefaults; static UIDefaults lookAndFeelDefaults; --- 219,228 ---- /** The installed auxiliary look and feels. */ static LookAndFeel[] auxLookAndFeels; ! /** The current look and feel. */ static LookAndFeel currentLookAndFeel; ! static MultiplexUIDefaults currentUIDefaults; static UIDefaults lookAndFeelDefaults; *************** public class UIManager implements Serial *** 234,240 **** static { String defaultlaf = System.getProperty("swing.defaultlaf"); ! try { if (defaultlaf != null) { --- 234,240 ---- static { String defaultlaf = System.getProperty("swing.defaultlaf"); ! try { if (defaultlaf != null) { *************** public class UIManager implements Serial *** 288,294 **** * * @param listener the listener to remove */ ! public static void removePropertyChangeListener(PropertyChangeListener listener) { listeners.removePropertyChangeListener(listener); --- 288,294 ---- * * @param listener the listener to remove */ ! public static void removePropertyChangeListener(PropertyChangeListener listener) { listeners.removePropertyChangeListener(listener); *************** public class UIManager implements Serial *** 308,318 **** /** * Add a {@link LookAndFeel} to the list of auxiliary look and feels. ! * * @param laf the auxiliary look and feel (null not permitted). ! * * @throws NullPointerException if laf is null. ! * * @see #getAuxiliaryLookAndFeels() */ public static void addAuxiliaryLookAndFeel(LookAndFeel laf) --- 308,318 ---- /** * Add a {@link LookAndFeel} to the list of auxiliary look and feels. ! * * @param laf the auxiliary look and feel (null not permitted). ! * * @throws NullPointerException if laf is null. ! * * @see #getAuxiliaryLookAndFeels() */ public static void addAuxiliaryLookAndFeel(LookAndFeel laf) *************** public class UIManager implements Serial *** 325,342 **** auxLookAndFeels[0] = laf; return; } ! LookAndFeel[] temp = new LookAndFeel[auxLookAndFeels.length + 1]; ! System.arraycopy(auxLookAndFeels, 0, temp, 0, auxLookAndFeels.length); auxLookAndFeels = temp; auxLookAndFeels[auxLookAndFeels.length - 1] = laf; } ! /** * Removes a {@link LookAndFeel} (LAF) from the list of auxiliary LAFs. ! * * @param laf the LAF to remove. ! * * @return true if the LAF was removed, and false * otherwise. */ --- 325,342 ---- auxLookAndFeels[0] = laf; return; } ! LookAndFeel[] temp = new LookAndFeel[auxLookAndFeels.length + 1]; ! System.arraycopy(auxLookAndFeels, 0, temp, 0, auxLookAndFeels.length); auxLookAndFeels = temp; auxLookAndFeels[auxLookAndFeels.length - 1] = laf; } ! /** * Removes a {@link LookAndFeel} (LAF) from the list of auxiliary LAFs. ! * * @param laf the LAF to remove. ! * * @return true if the LAF was removed, and false * otherwise. */ *************** public class UIManager implements Serial *** 357,388 **** LookAndFeel[] temp = new LookAndFeel[auxLookAndFeels.length - 1]; if (i == 0) { ! System.arraycopy(auxLookAndFeels, 1, temp, 0, count - 1); } else if (i == count - 1) { System.arraycopy(auxLookAndFeels, 0, temp, 0, count - 1); } ! else { System.arraycopy(auxLookAndFeels, 0, temp, 0, i); ! System.arraycopy(auxLookAndFeels, i + 1, temp, i, count - i - 1); } auxLookAndFeels = temp; return true; ! } } return false; } /** * Returns an array (possibly null) containing the auxiliary ! * {@link LookAndFeel}s that are in use. These are used by the * {@link javax.swing.plaf.multi.MultiLookAndFeel} class. ! * * @return The auxiliary look and feels (possibly null). ! * * @see #addAuxiliaryLookAndFeel(LookAndFeel) */ public static LookAndFeel[] getAuxiliaryLookAndFeels() --- 357,388 ---- LookAndFeel[] temp = new LookAndFeel[auxLookAndFeels.length - 1]; if (i == 0) { ! System.arraycopy(auxLookAndFeels, 1, temp, 0, count - 1); } else if (i == count - 1) { System.arraycopy(auxLookAndFeels, 0, temp, 0, count - 1); } ! else { System.arraycopy(auxLookAndFeels, 0, temp, 0, i); ! System.arraycopy(auxLookAndFeels, i + 1, temp, i, count - i - 1); } auxLookAndFeels = temp; return true; ! } } return false; } /** * Returns an array (possibly null) containing the auxiliary ! * {@link LookAndFeel}s that are in use. These are used by the * {@link javax.swing.plaf.multi.MultiLookAndFeel} class. ! * * @return The auxiliary look and feels (possibly null). ! * * @see #addAuxiliaryLookAndFeel(LookAndFeel) */ public static LookAndFeel[] getAuxiliaryLookAndFeels() *************** public class UIManager implements Serial *** 393,401 **** /** * Returns an object from the {@link UIDefaults} table for the current * {@link LookAndFeel}. ! * * @param key the key. ! * * @return The object. */ public static Object get(Object key) --- 393,401 ---- /** * Returns an object from the {@link UIDefaults} table for the current * {@link LookAndFeel}. ! * * @param key the key. ! * * @return The object. */ public static Object get(Object key) *************** public class UIManager implements Serial *** 406,416 **** /** * Returns an object from the {@link UIDefaults} table for the current * {@link LookAndFeel}. ! * * @param key the key. ! * * @return The object. ! * * @since 1.4 */ public static Object get(Object key, Locale locale) --- 406,416 ---- /** * Returns an object from the {@link UIDefaults} table for the current * {@link LookAndFeel}. ! * * @param key the key. ! * * @return The object. ! * * @since 1.4 */ public static Object get(Object key, Locale locale) *************** public class UIManager implements Serial *** 422,491 **** * Returns a boolean value from the defaults table. If there is no value * for the specified key, or the value is not an instance of {@link Boolean}, * this method returns false. ! * * @param key the key (null not permitted). * * @return The boolean value associated with the specified key. ! * * @throws NullPointerException if key is null. ! * * @since 1.4 */ public static boolean getBoolean(Object key) { Object value = get(key); ! if (value instanceof Boolean) return ((Boolean) value).booleanValue(); return false; } ! /** * Returns a boolean value from the defaults table. If there is no value * for the specified key, or the value is not an instance of {@link Boolean}, * this method returns false. ! * * @param key the key (null not permitted). * @param locale the locale. * * @return The boolean value associated with the specified key. ! * * @throws NullPointerException if key is null. ! * * @since 1.4 */ public static boolean getBoolean(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Boolean) return ((Boolean) value).booleanValue(); return false; } ! /** ! * Returns a border from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The border associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Border getBorder(Object key) { Object value = get(key); ! if (value instanceof Border) return (Border) value; return null; } ! /** ! * Returns a border from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The border associated with the given key, or null. ! * * @throws NullPointerException if key is null. * * @since 1.4 --- 422,491 ---- * Returns a boolean value from the defaults table. If there is no value * for the specified key, or the value is not an instance of {@link Boolean}, * this method returns false. ! * * @param key the key (null not permitted). * * @return The boolean value associated with the specified key. ! * * @throws NullPointerException if key is null. ! * * @since 1.4 */ public static boolean getBoolean(Object key) { Object value = get(key); ! if (value instanceof Boolean) return ((Boolean) value).booleanValue(); return false; } ! /** * Returns a boolean value from the defaults table. If there is no value * for the specified key, or the value is not an instance of {@link Boolean}, * this method returns false. ! * * @param key the key (null not permitted). * @param locale the locale. * * @return The boolean value associated with the specified key. ! * * @throws NullPointerException if key is null. ! * * @since 1.4 */ public static boolean getBoolean(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Boolean) return ((Boolean) value).booleanValue(); return false; } ! /** ! * Returns a border from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The border associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Border getBorder(Object key) { Object value = get(key); ! if (value instanceof Border) return (Border) value; return null; } ! /** ! * Returns a border from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The border associated with the given key, or null. ! * * @throws NullPointerException if key is null. * * @since 1.4 *************** public class UIManager implements Serial *** 493,536 **** public static Border getBorder(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Border) return (Border) value; return null; } ! /** ! * Returns a drawing color from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The color associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Color getColor(Object key) { Object value = get(key); ! if (value instanceof Color) return (Color) value; return null; } /** ! * Returns a drawing color from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The color associated with the given key, or null. ! * * @throws NullPointerException if key is null. ! * * @since 1.4 */ public static Color getColor(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Color) return (Color) value; return null; } --- 493,536 ---- public static Border getBorder(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Border) return (Border) value; return null; } ! /** ! * Returns a drawing color from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The color associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Color getColor(Object key) { Object value = get(key); ! if (value instanceof Color) return (Color) value; return null; } /** ! * Returns a drawing color from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The color associated with the given key, or null. ! * * @throws NullPointerException if key is null. ! * * @since 1.4 */ public static Color getColor(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Color) return (Color) value; return null; } *************** public class UIManager implements Serial *** 538,554 **** /** * The fully qualified class name of the cross platform (Metal) look and feel. * This string can be passed to Class.forName() ! * * @return "javax.swing.plaf.metal.MetalLookAndFeel" */ public static String getCrossPlatformLookAndFeelClassName() ! { return "javax.swing.plaf.metal.MetalLookAndFeel"; } /** ! * Returns the default values for this look and feel. ! * * @return The {@link UIDefaults} for the current {@link LookAndFeel}. */ public static UIDefaults getDefaults() --- 538,554 ---- /** * The fully qualified class name of the cross platform (Metal) look and feel. * This string can be passed to Class.forName() ! * * @return "javax.swing.plaf.metal.MetalLookAndFeel" */ public static String getCrossPlatformLookAndFeelClassName() ! { return "javax.swing.plaf.metal.MetalLookAndFeel"; } /** ! * Returns the default values for this look and feel. ! * * @return The {@link UIDefaults} for the current {@link LookAndFeel}. */ public static UIDefaults getDefaults() *************** public class UIManager implements Serial *** 559,595 **** } /** ! * Returns a dimension from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The color associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Dimension getDimension(Object key) { Object value = get(key); ! if (value instanceof Dimension) return (Dimension) value; return null; } /** ! * Returns a dimension from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The color associated with the given key, or null. ! * * @throws NullPointerException if key is null. * @since 1.4 */ public static Dimension getDimension(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Dimension) return (Dimension) value; return null; } --- 559,595 ---- } /** ! * Returns a dimension from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The color associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Dimension getDimension(Object key) { Object value = get(key); ! if (value instanceof Dimension) return (Dimension) value; return null; } /** ! * Returns a dimension from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The color associated with the given key, or null. ! * * @throws NullPointerException if key is null. * @since 1.4 */ public static Dimension getDimension(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Dimension) return (Dimension) value; return null; } *************** public class UIManager implements Serial *** 601,615 **** * @param key an Object that specifies the font. Typically, * this is a String such as * TitledBorder.font. ! * * @return The font associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Font getFont(Object key) { Object value = get(key); ! if (value instanceof Font) return (Font) value; return null; } --- 601,615 ---- * @param key an Object that specifies the font. Typically, * this is a String such as * TitledBorder.font. ! * * @return The font associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Font getFont(Object key) { Object value = get(key); ! if (value instanceof Font) return (Font) value; return null; } *************** public class UIManager implements Serial *** 622,686 **** * this is a String such as * TitledBorder.font. * @param locale the locale. ! * * @return The font associated with the given key, or null. ! * * @throws NullPointerException if key is null. ! * * @since 1.4 */ public static Font getFont(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Font) return (Font) value; return null; } /** ! * Returns an icon from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The icon associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Icon getIcon(Object key) { Object value = get(key); ! if (value instanceof Icon) return (Icon) value; return null; } ! /** ! * Returns an icon from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The icon associated with the given key, or null. ! * * @throws NullPointerException if key is null. * @since 1.4 */ public static Icon getIcon(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Icon) return (Icon) value; return null; } ! /** * Returns an Insets object from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The insets associated with the given key, or null. ! * ! * @throws NullPointerException if key is null. */ public static Insets getInsets(Object key) { --- 622,686 ---- * this is a String such as * TitledBorder.font. * @param locale the locale. ! * * @return The font associated with the given key, or null. ! * * @throws NullPointerException if key is null. ! * * @since 1.4 */ public static Font getFont(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Font) return (Font) value; return null; } /** ! * Returns an icon from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The icon associated with the given key, or null. ! * * @throws NullPointerException if key is null. */ public static Icon getIcon(Object key) { Object value = get(key); ! if (value instanceof Icon) return (Icon) value; return null; } ! /** ! * Returns an icon from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The icon associated with the given key, or null. ! * * @throws NullPointerException if key is null. * @since 1.4 */ public static Icon getIcon(Object key, Locale locale) { Object value = get(key, locale); ! if (value instanceof Icon) return (Icon) value; return null; } ! /** * Returns an Insets object from the defaults table. ! * * @param key the key (null not permitted). ! * * @return The insets associated with the given key, or null. ! * ! * @throws NullPointerException if key is null. */ public static Insets getInsets(Object key) { *************** public class UIManager implements Serial *** 693,705 **** /** * Returns an Insets object from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The insets associated with the given key, or null. ! * ! * @throws NullPointerException if key is null. * @since 1.4 */ public static Insets getInsets(Object key, Locale locale) --- 693,705 ---- /** * Returns an Insets object from the defaults table. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The insets associated with the given key, or null. ! * ! * @throws NullPointerException if key is null. * @since 1.4 */ public static Insets getInsets(Object key, Locale locale) *************** public class UIManager implements Serial *** 714,720 **** /** * Returns an array containing information about the {@link LookAndFeel}s * that are installed. ! * * @return A list of the look and feels that are available (installed). */ public static LookAndFeelInfo[] getInstalledLookAndFeels() --- 714,720 ---- /** * Returns an array containing information about the {@link LookAndFeel}s * that are installed. ! * * @return A list of the look and feels that are available (installed). */ public static LookAndFeelInfo[] getInstalledLookAndFeels() *************** public class UIManager implements Serial *** 726,734 **** * Returns the integer value of the {@link Integer} associated with the * given key. If there is no value, or the value is not an instance of * {@link Integer}, this method returns 0. ! * * @param key the key (null not permitted). ! * * @return The integer value associated with the given key, or 0. */ public static int getInt(Object key) --- 726,734 ---- * Returns the integer value of the {@link Integer} associated with the * given key. If there is no value, or the value is not an instance of * {@link Integer}, this method returns 0. ! * * @param key the key (null not permitted). ! * * @return The integer value associated with the given key, or 0. */ public static int getInt(Object key) *************** public class UIManager implements Serial *** 743,754 **** * Returns the integer value of the {@link Integer} associated with the * given key. If there is no value, or the value is not an instance of * {@link Integer}, this method returns 0. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The integer value associated with the given key, or 0. ! * * @since 1.4 */ public static int getInt(Object key, Locale locale) --- 743,754 ---- * Returns the integer value of the {@link Integer} associated with the * given key. If there is no value, or the value is not an instance of * {@link Integer}, this method returns 0. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The integer value associated with the given key, or 0. ! * * @since 1.4 */ public static int getInt(Object key, Locale locale) *************** public class UIManager implements Serial *** 761,769 **** /** * Returns the current look and feel (which may be null). ! * * @return The current look and feel. ! * * @see #setLookAndFeel(LookAndFeel) */ public static LookAndFeel getLookAndFeel() --- 761,769 ---- /** * Returns the current look and feel (which may be null). ! * * @return The current look and feel. ! * * @see #setLookAndFeel(LookAndFeel) */ public static LookAndFeel getLookAndFeel() *************** public class UIManager implements Serial *** 774,780 **** /** * Returns the UIDefaults table of the currently active * look and feel. ! * * @return The {@link UIDefaults} for the current {@link LookAndFeel}. */ public static UIDefaults getLookAndFeelDefaults() --- 774,780 ---- /** * Returns the UIDefaults table of the currently active * look and feel. ! * * @return The {@link UIDefaults} for the current {@link LookAndFeel}. */ public static UIDefaults getLookAndFeelDefaults() *************** public class UIManager implements Serial *** 783,793 **** } /** ! * Returns the {@link String} associated with the given key. If the value * is not a {@link String}, this method returns null. ! * * @param key the key (null not permitted). ! * * @return The string associated with the given key, or null. */ public static String getString(Object key) --- 783,793 ---- } /** ! * Returns the {@link String} associated with the given key. If the value * is not a {@link String}, this method returns null. ! * * @param key the key (null not permitted). ! * * @return The string associated with the given key, or null. */ public static String getString(Object key) *************** public class UIManager implements Serial *** 797,812 **** return (String) s; return null; } ! /** ! * Returns the {@link String} associated with the given key. If the value * is not a {@link String}, this method returns null. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The string associated with the given key, or null. ! * * @since 1.4 */ public static String getString(Object key, Locale locale) --- 797,812 ---- return (String) s; return null; } ! /** ! * Returns the {@link String} associated with the given key. If the value * is not a {@link String}, this method returns null. ! * * @param key the key (null not permitted). * @param locale the locale. ! * * @return The string associated with the given key, or null. ! * * @since 1.4 */ public static String getString(Object key, Locale locale) *************** public class UIManager implements Serial *** 816,829 **** return (String) s; return null; } ! /** * Returns the name of the {@link LookAndFeel} class that implements the * native systems look and feel if there is one, otherwise the name * of the default cross platform LookAndFeel class. ! * * @return The fully qualified class name for the system look and feel. ! * * @see #getCrossPlatformLookAndFeelClassName() */ public static String getSystemLookAndFeelClassName() --- 816,829 ---- return (String) s; return null; } ! /** * Returns the name of the {@link LookAndFeel} class that implements the * native systems look and feel if there is one, otherwise the name * of the default cross platform LookAndFeel class. ! * * @return The fully qualified class name for the system look and feel. ! * * @see #getCrossPlatformLookAndFeelClassName() */ public static String getSystemLookAndFeelClassName() *************** public class UIManager implements Serial *** 832,840 **** } /** ! * Returns UI delegate from the current {@link LookAndFeel} that renders the * target component. ! * * @param target the target component. */ public static ComponentUI getUI(JComponent target) --- 832,840 ---- } /** ! * Returns UI delegate from the current {@link LookAndFeel} that renders the * target component. ! * * @param target the target component. */ public static ComponentUI getUI(JComponent target) *************** public class UIManager implements Serial *** 844,850 **** /** * Creates a new look and feel and adds it to the current array. ! * * @param name the look and feel name. * @param className the fully qualified name of the class that implements the * look and feel. --- 844,850 ---- /** * Creates a new look and feel and adds it to the current array. ! * * @param name the look and feel name. * @param className the fully qualified name of the class that implements the * look and feel. *************** public class UIManager implements Serial *** 868,874 **** /** * Stores an object in the defaults table. ! * * @param key the key. * @param value the value. */ --- 868,874 ---- /** * Stores an object in the defaults table. ! * * @param key the key. * @param value the value. */ *************** public class UIManager implements Serial *** 884,898 **** { installed = infos; } ! /** * Sets the current {@link LookAndFeel}. ! * * @param newLookAndFeel the new look and feel (null permitted). ! * ! * @throws UnsupportedLookAndFeelException if the look and feel is not * supported on the current platform. ! * * @see LookAndFeel#isSupportedLookAndFeel() */ public static void setLookAndFeel(LookAndFeel newLookAndFeel) --- 884,898 ---- { installed = infos; } ! /** * Sets the current {@link LookAndFeel}. ! * * @param newLookAndFeel the new look and feel (null permitted). ! * ! * @throws UnsupportedLookAndFeelException if the look and feel is not * supported on the current platform. ! * * @see LookAndFeel#isSupportedLookAndFeel() */ public static void setLookAndFeel(LookAndFeel newLookAndFeel) *************** public class UIManager implements Serial *** 905,911 **** if (oldLookAndFeel != null) oldLookAndFeel.uninitialize(); ! // Set the current default look and feel using a LookAndFeel object. currentLookAndFeel = newLookAndFeel; if (newLookAndFeel != null) { --- 905,911 ---- if (oldLookAndFeel != null) oldLookAndFeel.uninitialize(); ! // Set the current default look and feel using a LookAndFeel object. currentLookAndFeel = newLookAndFeel; if (newLookAndFeel != null) { *************** public class UIManager implements Serial *** 919,925 **** } else { ! currentUIDefaults = null; } listeners.firePropertyChange("lookAndFeel", oldLookAndFeel, newLookAndFeel); //revalidate(); --- 919,925 ---- } else { ! currentUIDefaults = null; } listeners.firePropertyChange("lookAndFeel", oldLookAndFeel, newLookAndFeel); //revalidate(); *************** public class UIManager implements Serial *** 928,939 **** /** * Set the current default look and feel using a class name. ! * * @param className the look and feel class name. ! * ! * @throws UnsupportedLookAndFeelException if the look and feel is not * supported on the current platform. ! * * @see LookAndFeel#isSupportedLookAndFeel() */ public static void setLookAndFeel(String className) --- 928,939 ---- /** * Set the current default look and feel using a class name. ! * * @param className the look and feel class name. ! * ! * @throws UnsupportedLookAndFeelException if the look and feel is not * supported on the current platform. ! * * @see LookAndFeel#isSupportedLookAndFeel() */ public static void setLookAndFeel(String className) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/UnsupportedLookAndFeelException.java gcc-4.6.0/libjava/classpath/javax/swing/UnsupportedLookAndFeelException.java *** gcc-4.5.2/libjava/classpath/javax/swing/UnsupportedLookAndFeelException.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/UnsupportedLookAndFeelException.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UnsupportedLookAndFeelException.java -- Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UnsupportedLookAndFeelException.java -- Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** package javax.swing; *** 40,53 **** /** * Thrown by the {@link UIManager#setLookAndFeel(LookAndFeel)} method when the * specified look and feel is not supported on the current platform. ! * * @see LookAndFeel#isSupportedLookAndFeel() */ public class UnsupportedLookAndFeelException extends Exception { /** * Creates a new exception instance with the specified message. ! * * @param s the exception message. */ public UnsupportedLookAndFeelException(String s) --- 40,53 ---- /** * Thrown by the {@link UIManager#setLookAndFeel(LookAndFeel)} method when the * specified look and feel is not supported on the current platform. ! * * @see LookAndFeel#isSupportedLookAndFeel() */ public class UnsupportedLookAndFeelException extends Exception { /** * Creates a new exception instance with the specified message. ! * * @param s the exception message. */ public UnsupportedLookAndFeelException(String s) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/ViewportLayout.java gcc-4.6.0/libjava/classpath/javax/swing/ViewportLayout.java *** gcc-4.5.2/libjava/classpath/javax/swing/ViewportLayout.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/ViewportLayout.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Rectangle; *** 46,58 **** import java.io.Serializable; /** ! * The default layout for {@link JViewport}. The viewport makes its view the ! * same size as itself, but not smaller than its minimum size. ! * * If the port extends extends into space past the edge of the view, * this layout manager moves the port up or to the left, in view space, by the * amount of empty space (keep the lower and right edges lined up). ! * * @author Andrew Selkirk * @author Graydon Hoare * @author Audrius Meskauskas (audriusa@Bioinformatics.org) --- 46,58 ---- import java.io.Serializable; /** ! * The default layout for {@link JViewport}. The viewport makes its view the ! * same size as itself, but not smaller than its minimum size. ! * * If the port extends extends into space past the edge of the view, * this layout manager moves the port up or to the left, in view space, by the * amount of empty space (keep the lower and right edges lined up). ! * * @author Andrew Selkirk * @author Graydon Hoare * @author Audrius Meskauskas (audriusa@Bioinformatics.org) *************** public class ViewportLayout implements L *** 61,75 **** { private static final long serialVersionUID = -788225906076097229L; ! public ViewportLayout() { // Nothing to do here. } ! /** * The method is not used with this manager. */ ! public void addLayoutComponent(String name, Component c) { // Nothing to do here. } --- 61,75 ---- { private static final long serialVersionUID = -788225906076097229L; ! public ViewportLayout() { // Nothing to do here. } ! /** * The method is not used with this manager. */ ! public void addLayoutComponent(String name, Component c) { // Nothing to do here. } *************** public class ViewportLayout implements L *** 77,96 **** /** * The method is not used with this manager. */ ! public void removeLayoutComponent(Component c) { // Nothing to do here. } ! /** * Get the preferred layout size. If the view implements ! * {@link Scrollable}, this method returns * {@link Scrollable#getPreferredScrollableViewportSize}. * Otherwise, it returns {@link Component#getPreferredSize()}. ! * * @return the preferred layout size, as described about. */ ! public Dimension preferredLayoutSize(Container parent) { JViewport vp = (JViewport)parent; Component view = vp.getView(); --- 77,96 ---- /** * The method is not used with this manager. */ ! public void removeLayoutComponent(Component c) { // Nothing to do here. } ! /** * Get the preferred layout size. If the view implements ! * {@link Scrollable}, this method returns * {@link Scrollable#getPreferredScrollableViewportSize}. * Otherwise, it returns {@link Component#getPreferredSize()}. ! * * @return the preferred layout size, as described about. */ ! public Dimension preferredLayoutSize(Container parent) { JViewport vp = (JViewport)parent; Component view = vp.getView(); *************** public class ViewportLayout implements L *** 107,119 **** /** * Get the minimum layout size. Normally this method returns the value, * returned by the view method {@link Component#getMinimumSize()}. ! * ! * If the view is not set, the zero size is returned. * * @param parent the viewport * @return the minimum layout size. */ ! public Dimension minimumLayoutSize(Container parent) { // These values have been determined by the Mauve test for this method. return new Dimension(4, 4); --- 107,119 ---- /** * Get the minimum layout size. Normally this method returns the value, * returned by the view method {@link Component#getMinimumSize()}. ! * ! * If the view is not set, the zero size is returned. * * @param parent the viewport * @return the minimum layout size. */ ! public Dimension minimumLayoutSize(Container parent) { // These values have been determined by the Mauve test for this method. return new Dimension(4, 4); *************** public class ViewportLayout implements L *** 132,138 **** *
                                          • In {@link JViewport#setViewSize(Dimension)}, the view size is never * set smaller that its minimum size.
                                          • * ! * * @see JViewport#getViewSize * @see JViewport#setViewSize * @see JViewport#getViewPosition --- 132,138 ---- *
                                          • In {@link JViewport#setViewSize(Dimension)}, the view size is never * set smaller that its minimum size.
                                          • * ! * * @see JViewport#getViewSize * @see JViewport#setViewSize * @see JViewport#getViewPosition diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/WindowConstants.java gcc-4.6.0/libjava/classpath/javax/swing/WindowConstants.java *** gcc-4.5.2/libjava/classpath/javax/swing/WindowConstants.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/WindowConstants.java Tue Jan 11 19:46:05 2011 *************** exception statement from your version. * *** 38,51 **** package javax.swing; /** ! * Defines some constants that are used in Swing's top-level containers. See * the following methods: *
                                              *
                                            • {@link JFrame#setDefaultCloseOperation(int)};
                                            • *
                                            • {@link JInternalFrame#setDefaultCloseOperation(int)};
                                            • *
                                            • {@link JDialog#setDefaultCloseOperation(int)};
                                            • *
                                            ! * * @author Andrew Selkirk */ public interface WindowConstants --- 38,51 ---- package javax.swing; /** ! * Defines some constants that are used in Swing's top-level containers. See * the following methods: *
                                              *
                                            • {@link JFrame#setDefaultCloseOperation(int)};
                                            • *
                                            • {@link JInternalFrame#setDefaultCloseOperation(int)};
                                            • *
                                            • {@link JDialog#setDefaultCloseOperation(int)};
                                            • *
                                            ! * * @author Andrew Selkirk */ public interface WindowConstants *************** public interface WindowConstants *** 62,77 **** /** * Dispose the container when it is closed. ! * * @see Window#dispose() */ int DISPOSE_ON_CLOSE = 2; /** * Exit the application when the container is closed. ! * * @see System#exit(int) ! * * @since 1.4 */ int EXIT_ON_CLOSE = 3; --- 62,77 ---- /** * Dispose the container when it is closed. ! * * @see Window#dispose() */ int DISPOSE_ON_CLOSE = 2; /** * Exit the application when the container is closed. ! * * @see System#exit(int) ! * * @since 1.4 */ int EXIT_ON_CLOSE = 3; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/AbstractBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/AbstractBorder.java *** gcc-4.5.2/libjava/classpath/javax/swing/border/AbstractBorder.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/border/AbstractBorder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AbstractBorder.java -- Copyright (C) 2003, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AbstractBorder.java -- Copyright (C) 2003, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class AbstractBorder imp *** 87,96 **** } /** ! * Returns the insets required for drawing this border around the specified * component. * ! * @param c the component that the border applies to (ignored here, * subclasses may use it). * * @return an Insets object whose left, right, --- 87,96 ---- } /** ! * Returns the insets required for drawing this border around the specified * component. * ! * @param c the component that the border applies to (ignored here, * subclasses may use it). * * @return an Insets object whose left, right, *************** public abstract class AbstractBorder imp *** 106,130 **** } /** ! * Returns the insets required for drawing this border around the specified ! * component. The default implementation provided here sets the ! * left, right, top and ! * bottom fields of the passed insets parameter to * zero. * ! * @param c the component that the border applies to (ignored here, * subclasses may use it). ! * @param insets an instance that will be overwritten and returned as the ! * result (null not permitted). * ! * @return The border insets (the same object that was passed as the * insets argument). * * @see #getBorderInsets(Component) ! * * @throws NullPointerException if insets is null. */ ! public Insets getBorderInsets(Component c, Insets insets) { insets.left = insets.right = insets.top = insets.bottom = 0; return insets; --- 106,130 ---- } /** ! * Returns the insets required for drawing this border around the specified ! * component. The default implementation provided here sets the ! * left, right, top and ! * bottom fields of the passed insets parameter to * zero. * ! * @param c the component that the border applies to (ignored here, * subclasses may use it). ! * @param insets an instance that will be overwritten and returned as the ! * result (null not permitted). * ! * @return The border insets (the same object that was passed as the * insets argument). * * @see #getBorderInsets(Component) ! * * @throws NullPointerException if insets is null. */ ! public Insets getBorderInsets(Component c, Insets insets) { insets.left = insets.right = insets.top = insets.bottom = 0; return insets; *************** public abstract class AbstractBorder imp *** 139,152 **** * * @return false. */ ! public boolean isBorderOpaque() { return false; } /** ! * Returns a rectangle that covers the specified area minus the insets ! * required to draw this border. Components that wish to determine an area * into which they can safely draw without intersecting with a border might * want to use this helper method. * --- 139,152 ---- * * @return false. */ ! public boolean isBorderOpaque() { return false; } /** ! * Returns a rectangle that covers the specified area minus the insets ! * required to draw this border. Components that wish to determine an area * into which they can safely draw without intersecting with a border might * want to use this helper method. * *************** public abstract class AbstractBorder imp *** 155,161 **** * @param y the vertical position of the border. * @param width the width of the available area for the border. * @param height the height of the available area for the border. ! * * @return The interior rectangle. */ public Rectangle getInteriorRectangle(Component c, int x, int y, int width, --- 155,161 ---- * @param y the vertical position of the border. * @param width the width of the available area for the border. * @param height the height of the available area for the border. ! * * @return The interior rectangle. */ public Rectangle getInteriorRectangle(Component c, int x, int y, int width, *************** public abstract class AbstractBorder imp *** 163,174 **** { return getInteriorRectangle(c, this, x, y, width, height); } ! /** ! * Returns a rectangle that covers the specified area minus the insets * required to draw the specified border (if the border is null, ! * zero insets are assumed). Components that wish to determine an area into ! * which they can safely draw without intersecting with a border might want * to use this helper method. * * @param c the component in the center of this border. --- 163,174 ---- { return getInteriorRectangle(c, this, x, y, width, height); } ! /** ! * Returns a rectangle that covers the specified area minus the insets * required to draw the specified border (if the border is null, ! * zero insets are assumed). Components that wish to determine an area into ! * which they can safely draw without intersecting with a border might want * to use this helper method. * * @param c the component in the center of this border. *************** public abstract class AbstractBorder imp *** 177,183 **** * @param y the vertical position of the border. * @param width the width of the available area for the border. * @param height the height of the available area for the border. ! * * @return The interior rectangle. */ public static Rectangle getInteriorRectangle(Component c, Border b, int x, --- 177,183 ---- * @param y the vertical position of the border. * @param width the width of the available area for the border. * @param height the height of the available area for the border. ! * * @return The interior rectangle. */ public static Rectangle getInteriorRectangle(Component c, Border b, int x, diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/BevelBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/BevelBorder.java *** gcc-4.5.2/libjava/classpath/javax/swing/border/BevelBorder.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/border/BevelBorder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BevelBorder.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BevelBorder.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class BevelBorder extends Abstrac *** 76,87 **** * pressed into the screen. */ public static final int LOWERED = 1; ! /** * The type of this BevelBorder, which is either {@link #RAISED} * or {@link #LOWERED}. ! */ protected int bevelType; --- 76,87 ---- * pressed into the screen. */ public static final int LOWERED = 1; ! /** * The type of this BevelBorder, which is either {@link #RAISED} * or {@link #LOWERED}. ! */ protected int bevelType; *************** public class BevelBorder extends Abstrac *** 296,302 **** return insets; } ! /** * Determines the color that will be used for the outer side of * highlighted edges when painting the border. If a highlight color --- 296,302 ---- return insets; } ! /** * Determines the color that will be used for the outer side of * highlighted edges when painting the border. If a highlight color *************** public class BevelBorder extends Abstrac *** 306,312 **** * @param c the component enclosed by this border. * * @return The color. ! * * @see #getHighlightInnerColor(java.awt.Component) * @see java.awt.Color#brighter() */ --- 306,312 ---- * @param c the component enclosed by this border. * * @return The color. ! * * @see #getHighlightInnerColor(java.awt.Component) * @see java.awt.Color#brighter() */ *************** public class BevelBorder extends Abstrac *** 329,335 **** * @param c the component enclosed by this border. * * @return The color. ! * * @see java.awt.Component#getBackground() * @see java.awt.Color#brighter() */ --- 329,335 ---- * @param c the component enclosed by this border. * * @return The color. ! * * @see java.awt.Component#getBackground() * @see java.awt.Color#brighter() */ *************** public class BevelBorder extends Abstrac *** 352,358 **** * @param c the component enclosed by this border. * * @return The color. ! * * @see java.awt.Component#getBackground() * @see java.awt.Color#darker() */ --- 352,358 ---- * @param c the component enclosed by this border. * * @return The color. ! * * @see java.awt.Component#getBackground() * @see java.awt.Color#darker() */ *************** public class BevelBorder extends Abstrac *** 374,380 **** * @param c the component enclosed by this border. * * @return The color. ! * * @see #getShadowInnerColor(java.awt.Component) * @see java.awt.Color#darker() */ --- 374,380 ---- * @param c the component enclosed by this border. * * @return The color. ! * * @see #getShadowInnerColor(java.awt.Component) * @see java.awt.Color#darker() */ *************** public class BevelBorder extends Abstrac *** 392,398 **** * highlighted edges when painting the border, or null * if that color will be derived from the background of the enclosed * Component. ! * * @return The color (possibly null). */ public Color getHighlightOuterColor() --- 392,398 ---- * highlighted edges when painting the border, or null * if that color will be derived from the background of the enclosed * Component. ! * * @return The color (possibly null). */ public Color getHighlightOuterColor() *************** public class BevelBorder extends Abstrac *** 406,412 **** * highlighted edges when painting the border, or null * if that color will be derived from the background of the enclosed * Component. ! * * @return The color (possibly null). */ public Color getHighlightInnerColor() --- 406,412 ---- * highlighted edges when painting the border, or null * if that color will be derived from the background of the enclosed * Component. ! * * @return The color (possibly null). */ public Color getHighlightInnerColor() *************** public class BevelBorder extends Abstrac *** 420,426 **** * shadowed edges when painting the border, or null if * that color will be derived from the background of the enclosed * Component. ! * * @return The color (possibly null). */ public Color getShadowInnerColor() --- 420,426 ---- * shadowed edges when painting the border, or null if * that color will be derived from the background of the enclosed * Component. ! * * @return The color (possibly null). */ public Color getShadowInnerColor() *************** public class BevelBorder extends Abstrac *** 434,452 **** * shadowed edges when painting the border, or null if * that color will be derived from the background of the enclosed * Component. ! * * @return The color (possibly null). */ public Color getShadowOuterColor() { return shadowOuter; } ! ! /** * Returns the appearance of this border, which is either {@link * #RAISED} or {@link #LOWERED}. ! * * @return The bevel type ({@link #RAISED} or {@link #LOWERED}). */ public int getBevelType() --- 434,452 ---- * shadowed edges when painting the border, or null if * that color will be derived from the background of the enclosed * Component. ! * * @return The color (possibly null). */ public Color getShadowOuterColor() { return shadowOuter; } ! ! /** * Returns the appearance of this border, which is either {@link * #RAISED} or {@link #LOWERED}. ! * * @return The bevel type ({@link #RAISED} or {@link #LOWERED}). */ public int getBevelType() *************** public class BevelBorder extends Abstrac *** 475,481 **** * because Color.brighten() and Color.darken() always return an * opaque color. */ ! return ((highlightOuter == null) || (highlightOuter.getAlpha() == 255)) && ((highlightInner == null) || (highlightInner.getAlpha() == 255)) && ((shadowInner == null) || (shadowInner.getAlpha() == 255)) --- 475,481 ---- * because Color.brighten() and Color.darken() always return an * opaque color. */ ! return ((highlightOuter == null) || (highlightOuter.getAlpha() == 255)) && ((highlightInner == null) || (highlightInner.getAlpha() == 255)) && ((shadowInner == null) || (shadowInner.getAlpha() == 255)) *************** public class BevelBorder extends Abstrac *** 523,529 **** /** * Paints a two-pixel bevel in four colors. ! * *
                                                 * ++++++++++++
                                                 * +..........#    + = color a
                                            --- 523,529 ----
                                              
                                                /**
                                                 * Paints a two-pixel bevel in four colors.
                                            !    *
                                                 * 
                                                 * ++++++++++++
                                                 * +..........#    + = color a
                                            *************** public class BevelBorder extends Abstrac
                                            *** 582,585 ****
                                                  }
                                                }
                                              }
                                            - 
                                            --- 582,584 ----
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/Border.java gcc-4.6.0/libjava/classpath/javax/swing/border/Border.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/border/Border.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/border/Border.java	Tue Jan 11 19:46:05 2011
                                            ***************
                                            *** 1,4 ****
                                            ! /* Border.java -- 
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            --- 1,4 ----
                                            ! /* Border.java --
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            *************** public interface Border
                                            *** 79,85 ****
                                                 */
                                                void paintBorder(Component c, Graphics g, int x, int y, int width,
                                                                 int height);
                                            !   
                                                /**
                                                 * Measures the width of this border.
                                                 *
                                            --- 79,85 ----
                                                 */
                                                void paintBorder(Component c, Graphics g, int x, int y, int width,
                                                                 int height);
                                            ! 
                                                /**
                                                 * Measures the width of this border.
                                                 *
                                            *************** public interface Border
                                            *** 90,96 ****
                                                 *         width of the border at the respective edge.
                                                 */
                                                Insets getBorderInsets(Component c);
                                            !   
                                                /**
                                                 * Determines whether this border fills every pixel in its area
                                                 * when painting.
                                            --- 90,96 ----
                                                 *         width of the border at the respective edge.
                                                 */
                                                Insets getBorderInsets(Component c);
                                            ! 
                                                /**
                                                 * Determines whether this border fills every pixel in its area
                                                 * when painting.
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/CompoundBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/CompoundBorder.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/border/CompoundBorder.java	Tue Jan  9 19:58:05 2007
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/border/CompoundBorder.java	Tue Jan 11 19:46:05 2011
                                            ***************
                                            *** 1,4 ****
                                            ! /* CompoundBorder.java -- 
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            --- 1,4 ----
                                            ! /* CompoundBorder.java --
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            *************** public class CompoundBorder extends Abst
                                            *** 115,121 ****
                                                 */
                                                public boolean isBorderOpaque()
                                                {
                                            !     // Although the API specification states that this method 
                                                  // returns true if both the inside and outside borders are non-null
                                                  // and opaque, and false otherwise, a mauve test shows that if both
                                                  // the inside or outside borders are null, then true is returned.
                                            --- 115,121 ----
                                                 */
                                                public boolean isBorderOpaque()
                                                {
                                            !     // Although the API specification states that this method
                                                  // returns true if both the inside and outside borders are non-null
                                                  // and opaque, and false otherwise, a mauve test shows that if both
                                                  // the inside or outside borders are null, then true is returned.
                                            *************** public class CompoundBorder extends Abst
                                            *** 137,143 ****
                                              
                                                /**
                                                 * Paints the compound border by first painting the outside border,
                                            !    * then painting the inside border tightly nested into the outside. 
                                                 *
                                                 * @param c the component whose border is to be painted.
                                                 * @param g the graphics for painting.
                                            --- 137,143 ----
                                              
                                                /**
                                                 * Paints the compound border by first painting the outside border,
                                            !    * then painting the inside border tightly nested into the outside.
                                                 *
                                                 * @param c the component whose border is to be painted.
                                                 * @param g the graphics for painting.
                                            *************** public class CompoundBorder extends Abst
                                            *** 233,239 ****
                                                 * Returns the outside border, which is painted outside both the
                                                 * bordered Component and the inside border. It is valid for the
                                                 * result to be null.
                                            !    * 
                                                 * @return The outside border (possibly null).
                                                 */
                                                public Border getOutsideBorder()
                                            --- 233,239 ----
                                                 * Returns the outside border, which is painted outside both the
                                                 * bordered Component and the inside border. It is valid for the
                                                 * result to be null.
                                            !    *
                                                 * @return The outside border (possibly null).
                                                 */
                                                public Border getOutsideBorder()
                                            *************** public class CompoundBorder extends Abst
                                            *** 245,251 ****
                                                 * Returns the inside border, which is painted between the bordered
                                                 * Component and the outside border. It is valid for the result to
                                                 * be null.
                                            !    * 
                                                 * @return The inside border (possibly null).
                                                 */
                                                public Border getInsideBorder()
                                            --- 245,251 ----
                                                 * Returns the inside border, which is painted between the bordered
                                                 * Component and the outside border. It is valid for the result to
                                                 * be null.
                                            !    *
                                                 * @return The inside border (possibly null).
                                                 */
                                                public Border getInsideBorder()
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/EmptyBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/EmptyBorder.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/border/EmptyBorder.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/border/EmptyBorder.java	Tue Jan 11 19:46:05 2011
                                            ***************
                                            *** 1,4 ****
                                            ! /* EmptyBorder.java -- 
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            --- 1,4 ----
                                            ! /* EmptyBorder.java --
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            *************** public class EmptyBorder extends Abstrac
                                            *** 202,209 ****
                                                {
                                                  return getBorderInsets(null, null);
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Determines whether this border fills every pixel in its area
                                                 * when painting. Since an empty border does not paint any pixels
                                            --- 202,209 ----
                                                {
                                                  return getBorderInsets(null, null);
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Determines whether this border fills every pixel in its area
                                                 * when painting. Since an empty border does not paint any pixels
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/EtchedBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/EtchedBorder.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/border/EtchedBorder.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/border/EtchedBorder.java	Tue Jan 11 19:46:05 2011
                                            ***************
                                            *** 1,4 ****
                                            ! /* EtchedBorder.java -- 
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            --- 1,4 ----
                                            ! /* EtchedBorder.java --
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            *************** public class EtchedBorder extends Abstra
                                            *** 63,70 ****
                                                 * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5.
                                                 */
                                                static final long serialVersionUID = 4001244046866360638L;
                                            !   
                                            !   
                                                /**
                                                 * Indicates that the border appears as coming out of the
                                                 * background.
                                            --- 63,70 ----
                                                 * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5.
                                                 */
                                                static final long serialVersionUID = 4001244046866360638L;
                                            ! 
                                            ! 
                                                /**
                                                 * Indicates that the border appears as coming out of the
                                                 * background.
                                            *************** public class EtchedBorder extends Abstra
                                            *** 78,90 ****
                                                 */
                                                public static final int LOWERED = 1;
                                              
                                            !   
                                                /**
                                                 * The type of this EtchedBorder, which is either {@link #RAISED}
                                                 * or {@link #LOWERED}.
                                                 */
                                                protected int etchType;
                                            !   
                                              
                                                /**
                                                 * The highlight color, or null to indicate that the
                                            --- 78,90 ----
                                                 */
                                                public static final int LOWERED = 1;
                                              
                                            ! 
                                                /**
                                                 * The type of this EtchedBorder, which is either {@link #RAISED}
                                                 * or {@link #LOWERED}.
                                                 */
                                                protected int etchType;
                                            ! 
                                              
                                                /**
                                                 * The highlight color, or null to indicate that the
                                            *************** public class EtchedBorder extends Abstra
                                            *** 139,146 ****
                                                   * assign a value here.
                                                   */
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Constructs a lowered EtchedBorder, explicitly selecting the
                                                 * colors that will be used for highlight and shadow.
                                            --- 139,146 ----
                                                   * assign a value here.
                                                   */
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Constructs a lowered EtchedBorder, explicitly selecting the
                                                 * colors that will be used for highlight and shadow.
                                            *************** public class EtchedBorder extends Abstra
                                            *** 157,164 ****
                                                {
                                                  this(LOWERED, highlight, shadow);
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Constructs an EtchedBorder with the specified appearance,
                                                 * explicitly selecting the colors that will be used for
                                            --- 157,164 ----
                                                {
                                                  this(LOWERED, highlight, shadow);
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Constructs an EtchedBorder with the specified appearance,
                                                 * explicitly selecting the colors that will be used for
                                            *************** public class EtchedBorder extends Abstra
                                            *** 186,193 ****
                                                  this.highlight = highlight;
                                                  this.shadow = shadow;
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Paints the border for a given component.
                                                 *
                                            --- 186,193 ----
                                                  this.highlight = highlight;
                                                  this.shadow = shadow;
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Paints the border for a given component.
                                                 *
                                            *************** public class EtchedBorder extends Abstra
                                            *** 214,221 ****
                                                    break;
                                                  }
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Measures the width of this border.
                                                 *
                                            --- 214,221 ----
                                                    break;
                                                  }
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Measures the width of this border.
                                                 *
                                            *************** public class EtchedBorder extends Abstra
                                            *** 277,287 ****
                                                    ((highlight == null) || (highlight.getAlpha() == 255))
                                                    && ((shadow == null) || (shadow.getAlpha() == 255));
                                                }
                                            !   
                                                /**
                                                 * Returns the appearance of this EtchedBorder, which is either
                                                 * {@link #RAISED} or {@link #LOWERED}.
                                            !    * 
                                                 * @return The type ({@link #RAISED} or {@link #LOWERED}).
                                                 */
                                                public int getEtchType()
                                            --- 277,287 ----
                                                    ((highlight == null) || (highlight.getAlpha() == 255))
                                                    && ((shadow == null) || (shadow.getAlpha() == 255));
                                                }
                                            ! 
                                                /**
                                                 * Returns the appearance of this EtchedBorder, which is either
                                                 * {@link #RAISED} or {@link #LOWERED}.
                                            !    *
                                                 * @return The type ({@link #RAISED} or {@link #LOWERED}).
                                                 */
                                                public int getEtchType()
                                            *************** public class EtchedBorder extends Abstra
                                            *** 300,306 ****
                                                 * @param c the component enclosed by this border.
                                                 *
                                                 * @return The color.
                                            !    * 
                                                 * @see java.awt.Component#getBackground()
                                                 * @see java.awt.Color#brighter()
                                                 */
                                            --- 300,306 ----
                                                 * @param c the component enclosed by this border.
                                                 *
                                                 * @return The color.
                                            !    *
                                                 * @see java.awt.Component#getBackground()
                                                 * @see java.awt.Color#brighter()
                                                 */
                                            *************** public class EtchedBorder extends Abstra
                                            *** 316,322 ****
                                                 * Returns the color that will be used for highlighted parts when
                                                 * painting the border, or null if that color will be
                                                 * derived from the background of the enclosed Component.
                                            !    * 
                                                 * @return The highlight color (possibly null).
                                                 */
                                                public Color getHighlightColor()
                                            --- 316,322 ----
                                                 * Returns the color that will be used for highlighted parts when
                                                 * painting the border, or null if that color will be
                                                 * derived from the background of the enclosed Component.
                                            !    *
                                                 * @return The highlight color (possibly null).
                                                 */
                                                public Color getHighlightColor()
                                            *************** public class EtchedBorder extends Abstra
                                            *** 335,341 ****
                                                 * @param c the component enclosed by this border.
                                                 *
                                                 * @return The shadow color.
                                            !    * 
                                                 * @see java.awt.Component#getBackground()
                                                 * @see java.awt.Color#darker()
                                                 */
                                            --- 335,341 ----
                                                 * @param c the component enclosed by this border.
                                                 *
                                                 * @return The shadow color.
                                            !    *
                                                 * @see java.awt.Component#getBackground()
                                                 * @see java.awt.Color#darker()
                                                 */
                                            *************** public class EtchedBorder extends Abstra
                                            *** 346,358 ****
                                                  else
                                                    return c.getBackground().darker();
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Returns the color that will be used for shadowed parts when
                                                 * painting the border, or null if that color will be
                                                 * derived from the background of the enclosed Component.
                                            !    * 
                                                 * @return The shadow color (possibly null).
                                                 */
                                                public Color getShadowColor()
                                            --- 346,358 ----
                                                  else
                                                    return c.getBackground().darker();
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Returns the color that will be used for shadowed parts when
                                                 * painting the border, or null if that color will be
                                                 * derived from the background of the enclosed Component.
                                            !    *
                                                 * @return The shadow color (possibly null).
                                                 */
                                                public Color getShadowColor()
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/LineBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/LineBorder.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/border/LineBorder.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/border/LineBorder.java	Tue Jan 11 19:46:05 2011
                                            ***************
                                            *** 1,4 ****
                                            ! /* LineBorder.java -- 
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            --- 1,4 ----
                                            ! /* LineBorder.java --
                                                 Copyright (C) 2003 Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            *************** public class LineBorder extends Abstract
                                            *** 121,132 ****
                                                {
                                                  this (color, thickness, /* roundedCorners */ false);
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Constructs a LineBorder given its color, thickness, and whether
                                                 * it has rounded corners.
                                            !    * 
                                                 * 

                                            [An illustration of two LineBorders] * --- 121,132 ---- { this (color, thickness, /* roundedCorners */ false); } ! ! /** * Constructs a LineBorder given its color, thickness, and whether * it has rounded corners. ! * *

                                            [An illustration of two LineBorders] * *************** public class LineBorder extends Abstract *** 159,170 **** this.thickness = thickness; this.roundedCorners = roundedCorners; } ! ! /** * Returns a black, one pixel thick, plain {@link LineBorder}. The method * may always return the same (singleton) {@link LineBorder} instance. ! * * @return The border. */ public static Border createBlackLineBorder() --- 159,170 ---- this.thickness = thickness; this.roundedCorners = roundedCorners; } ! ! /** * Returns a black, one pixel thick, plain {@link LineBorder}. The method * may always return the same (singleton) {@link LineBorder} instance. ! * * @return The border. */ public static Border createBlackLineBorder() *************** public class LineBorder extends Abstract *** 174,188 **** */ if (blackLineBorder == null) blackLineBorder = new LineBorder(Color.black); ! return blackLineBorder; } ! ! /** * Returns a gray, one pixel thick, plain {@link LineBorder}. The method * may always return the same (singleton) {@link LineBorder} instance. ! * * @return The border. */ public static Border createGrayLineBorder() --- 174,188 ---- */ if (blackLineBorder == null) blackLineBorder = new LineBorder(Color.black); ! return blackLineBorder; } ! ! /** * Returns a gray, one pixel thick, plain {@link LineBorder}. The method * may always return the same (singleton) {@link LineBorder} instance. ! * * @return The border. */ public static Border createGrayLineBorder() *************** public class LineBorder extends Abstract *** 192,202 **** */ if (grayLineBorder == null) grayLineBorder = new LineBorder(Color.gray); ! return grayLineBorder; } ! ! /** * Paints the line border around a given Component. * --- 192,202 ---- */ if (grayLineBorder == null) grayLineBorder = new LineBorder(Color.gray); ! return grayLineBorder; } ! ! /** * Paints the line border around a given Component. * *************** public class LineBorder extends Abstract *** 255,262 **** g.setColor(oldColor); } } ! ! /** * Measures the width of this border. * --- 255,262 ---- g.setColor(oldColor); } } ! ! /** * Measures the width of this border. * *************** public class LineBorder extends Abstract *** 273,280 **** { return new Insets(thickness, thickness, thickness, thickness); } ! ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. --- 273,280 ---- { return new Insets(thickness, thickness, thickness, thickness); } ! ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. *************** public class LineBorder extends Abstract *** 295,324 **** insets.left = insets.right = insets.top = insets.bottom = thickness; return insets; } ! ! /** * Returns the color of the line. ! * * @return The line color (never null). */ public Color getLineColor() { return lineColor; } ! ! /** * Returns the thickness of the line in pixels. ! * * @return The line thickness (in pixels). */ public int getThickness() { return thickness; } ! ! /** * Returns whether this LineBorder os drawm with rounded * or with plain corners. --- 295,324 ---- insets.left = insets.right = insets.top = insets.bottom = thickness; return insets; } ! ! /** * Returns the color of the line. ! * * @return The line color (never null). */ public Color getLineColor() { return lineColor; } ! ! /** * Returns the thickness of the line in pixels. ! * * @return The line thickness (in pixels). */ public int getThickness() { return thickness; } ! ! /** * Returns whether this LineBorder os drawm with rounded * or with plain corners. *************** public class LineBorder extends Abstract *** 330,337 **** { return roundedCorners; } ! ! /** * Determines whether this border fills every pixel in its area * when painting. --- 330,337 ---- { return roundedCorners; } ! ! /** * Determines whether this border fills every pixel in its area * when painting. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/MatteBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/MatteBorder.java *** gcc-4.5.2/libjava/classpath/javax/swing/border/MatteBorder.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/border/MatteBorder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MatteBorder.java -- Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MatteBorder.java -- Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class MatteBorder extends EmptyBo *** 61,68 **** * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. */ static final long serialVersionUID = 4422248989617298224L; ! ! /** * The color that is used for filling the border, or * null if the border is filled with repetitions of a --- 61,68 ---- * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. */ static final long serialVersionUID = 4422248989617298224L; ! ! /** * The color that is used for filling the border, or * null if the border is filled with repetitions of a *************** public class MatteBorder extends EmptyBo *** 71,78 **** * @see #tileIcon */ protected Color color; ! ! /** * The icon is used for filling the border with a tile, or * null if the border is filled with a solid --- 71,78 ---- * @see #tileIcon */ protected Color color; ! ! /** * The icon is used for filling the border with a tile, or * null if the border is filled with a solid *************** public class MatteBorder extends EmptyBo *** 81,88 **** * @see #color */ protected Icon tileIcon; ! ! /** * Constructs a MatteBorder given the width on each side * and a fill color. --- 81,88 ---- * @see #color */ protected Icon tileIcon; ! ! /** * Constructs a MatteBorder given the width on each side * and a fill color. *************** public class MatteBorder extends EmptyBo *** 171,178 **** borderInsets.bottom, borderInsets.right, tileIcon); } ! ! /** * Constructs a MatteBorder given an icon for tiling the * border area. The icon width is used for the border insets --- 171,178 ---- borderInsets.bottom, borderInsets.right, tileIcon); } ! ! /** * Constructs a MatteBorder given an icon for tiling the * border area. The icon width is used for the border insets *************** public class MatteBorder extends EmptyBo *** 188,195 **** { this(-1, -1, -1, -1, tileIcon); } ! ! /** * Paints the border for a given component. * --- 188,195 ---- { this(-1, -1, -1, -1, tileIcon); } ! ! /** * Paints the border for a given component. * *************** public class MatteBorder extends EmptyBo *** 215,222 **** i.right, height - i.bottom, width - i.right, i.top); } ! ! /** * Measures the width of this border. * --- 215,222 ---- i.right, height - i.bottom, width - i.right, i.top); } ! ! /** * Measures the width of this border. * *************** public class MatteBorder extends EmptyBo *** 236,243 **** */ return this.getBorderInsets(c, null); } ! ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. --- 236,243 ---- */ return this.getBorderInsets(c, null); } ! ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. *************** public class MatteBorder extends EmptyBo *** 271,278 **** */ return super.getBorderInsets(c, insets); } ! ! /** * Measures the width of this border. * --- 271,278 ---- */ return super.getBorderInsets(c, insets); } ! ! /** * Measures the width of this border. * *************** public class MatteBorder extends EmptyBo *** 290,323 **** */ return this.getBorderInsets(null, null); } ! ! /** * Returns the color that is used for filling the border, or * null if the border is filled with repetitions of a * tile icon. ! * * @return The color (possibly null). */ public Color getMatteColor() { return color; } ! ! /** * Returns the icon is used for tiling the border, or * null if the border is filled with a color instead of * an icon. ! * * @return The icon (possibly null). */ public Icon getTileIcon() { return tileIcon; } ! ! /** * Determines whether this border fills every pixel in its area * when painting. --- 290,323 ---- */ return this.getBorderInsets(null, null); } ! ! /** * Returns the color that is used for filling the border, or * null if the border is filled with repetitions of a * tile icon. ! * * @return The color (possibly null). */ public Color getMatteColor() { return color; } ! ! /** * Returns the icon is used for tiling the border, or * null if the border is filled with a color instead of * an icon. ! * * @return The icon (possibly null). */ public Icon getTileIcon() { return tileIcon; } ! ! /** * Determines whether this border fills every pixel in its area * when painting. *************** public class MatteBorder extends EmptyBo *** 330,336 **** { return (color != null) && (color.getAlpha() == 255); } ! /** * Paints a rectangular area of the border. This private helper --- 330,336 ---- { return (color != null) && (color.getAlpha() == 255); } ! /** * Paints a rectangular area of the border. This private helper *************** public class MatteBorder extends EmptyBo *** 372,378 **** } return; } ! // If this border has no icon end painting here. if (tileIcon == null) return; --- 372,378 ---- } return; } ! // If this border has no icon end painting here. if (tileIcon == null) return; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/SoftBevelBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/SoftBevelBorder.java *** gcc-4.5.2/libjava/classpath/javax/swing/border/SoftBevelBorder.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/border/SoftBevelBorder.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* SoftBevelBorder.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* SoftBevelBorder.java -- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class SoftBevelBorder extends Bev *** 242,248 **** return insets; } ! /** * Determines whether this border fills every pixel in its area * when painting. --- 242,248 ---- return insets; } ! /** * Determines whether this border fills every pixel in its area * when painting. *************** public class SoftBevelBorder extends Bev *** 261,267 **** /** * Paints a soft bevel in four colors. ! * *

                                                 * +++++++++++.
                                                 * ++.........#    + = color a
                                            --- 261,267 ----
                                              
                                                /**
                                                 * Paints a soft bevel in four colors.
                                            !    *
                                                 * 
                                                 * +++++++++++.
                                                 * ++.........#    + = color a
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/border/TitledBorder.java gcc-4.6.0/libjava/classpath/javax/swing/border/TitledBorder.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/border/TitledBorder.java	Mon Aug 14 23:12:35 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/border/TitledBorder.java	Tue Jan 11 19:46:05 2011
                                            ***************
                                            *** 1,4 ****
                                            ! /* TitledBorder.java -- 
                                                 Copyright (C) 2003, 2004, 2005, 2006,  Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            --- 1,4 ----
                                            ! /* TitledBorder.java --
                                                 Copyright (C) 2003, 2004, 2005, 2006,  Free Software Foundation, Inc.
                                              
                                              This file is part of GNU Classpath.
                                            *************** public class TitledBorder extends Abstra
                                            *** 241,247 ****
                                                 * on MacOS X 10.1.5.
                                                 */
                                                static final long serialVersionUID = 8012999415147721601L;
                                            !   
                                              
                                                /**
                                                 * The title, or null to display no title.
                                            --- 241,247 ----
                                                 * on MacOS X 10.1.5.
                                                 */
                                                static final long serialVersionUID = 8012999415147721601L;
                                            ! 
                                              
                                                /**
                                                 * The title, or null to display no title.
                                            *************** public class TitledBorder extends Abstra
                                            *** 257,263 ****
                                                 */
                                                protected Border border;
                                              
                                            !   
                                                /**
                                                 * The vertical position of the title text relative to the border,
                                                 * which is one of {@link #ABOVE_TOP}, {@link #TOP}, {@link
                                            --- 257,263 ----
                                                 */
                                                protected Border border;
                                              
                                            ! 
                                                /**
                                                 * The vertical position of the title text relative to the border,
                                                 * which is one of {@link #ABOVE_TOP}, {@link #TOP}, {@link
                                            *************** public class TitledBorder extends Abstra
                                            *** 318,324 ****
                                                  this(border, /* title */ "", LEADING, TOP,
                                                       /* titleFont */ null, /* titleColor */ null);
                                                }
                                            !   
                                              
                                                /**
                                                 * Constructs a TitledBorder given its border and title text.
                                            --- 318,324 ----
                                                  this(border, /* title */ "", LEADING, TOP,
                                                       /* titleFont */ null, /* titleColor */ null);
                                                }
                                            ! 
                                              
                                                /**
                                                 * Constructs a TitledBorder given its border and title text.
                                            *************** public class TitledBorder extends Abstra
                                            *** 334,340 ****
                                                  this(border, title, LEADING, TOP,
                                                       /* titleFont */ null, /* titleColor */ null);
                                                }
                                            !   
                                              
                                                /**
                                                 * Constructs a TitledBorder given its border, title text, horizontal
                                            --- 334,340 ----
                                                  this(border, title, LEADING, TOP,
                                                       /* titleFont */ null, /* titleColor */ null);
                                                }
                                            ! 
                                              
                                                /**
                                                 * Constructs a TitledBorder given its border, title text, horizontal
                                            *************** public class TitledBorder extends Abstra
                                            *** 350,356 ****
                                                 *        text in relation to the border. The value must be one of
                                                 *        {@link #LEFT}, {@link #CENTER}, {@link #RIGHT}, {@link #LEADING},
                                                 *        {@link #TRAILING}, or {@link #DEFAULT_JUSTIFICATION}.
                                            !    
                                                 * @param titlePosition the vertical position of the title text
                                                 *        in relation to the border. The value must be one of
                                                 *        {@link #ABOVE_TOP}, {@link #TOP}, {@link #BELOW_TOP},
                                            --- 350,356 ----
                                                 *        text in relation to the border. The value must be one of
                                                 *        {@link #LEFT}, {@link #CENTER}, {@link #RIGHT}, {@link #LEADING},
                                                 *        {@link #TRAILING}, or {@link #DEFAULT_JUSTIFICATION}.
                                            ! 
                                                 * @param titlePosition the vertical position of the title text
                                                 *        in relation to the border. The value must be one of
                                                 *        {@link #ABOVE_TOP}, {@link #TOP}, {@link #BELOW_TOP},
                                            *************** public class TitledBorder extends Abstra
                                            *** 366,372 ****
                                                  this(border, title, titleJustification, titlePosition,
                                                       /* titleFont */ null, /* titleColor */ null);
                                                }
                                            !   
                                              
                                                /**
                                                 * Constructs a TitledBorder given its border, title text, horizontal
                                            --- 366,372 ----
                                                  this(border, title, titleJustification, titlePosition,
                                                       /* titleFont */ null, /* titleColor */ null);
                                                }
                                            ! 
                                              
                                                /**
                                                 * Constructs a TitledBorder given its border, title text, horizontal
                                            *************** public class TitledBorder extends Abstra
                                            *** 401,407 ****
                                                  this(border, title, titleJustification, titlePosition, titleFont,
                                                       /* titleColor */ null);
                                                }
                                            !   
                                              
                                                /**
                                                 * Constructs a TitledBorder given its border, title text, horizontal
                                            --- 401,407 ----
                                                  this(border, title, titleJustification, titlePosition, titleFont,
                                                       /* titleColor */ null);
                                                }
                                            ! 
                                              
                                                /**
                                                 * Constructs a TitledBorder given its border, title text, horizontal
                                            *************** public class TitledBorder extends Abstra
                                            *** 448,455 ****
                                                  this.titleFont = titleFont;
                                                  this.titleColor = titleColor;
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Paints the border and the title text.
                                                 *
                                            --- 448,455 ----
                                                  this.titleFont = titleFont;
                                                  this.titleColor = titleColor;
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Paints the border and the title text.
                                                 *
                                            *************** public class TitledBorder extends Abstra
                                            *** 460,466 ****
                                                 * @param width the width of the available area for painting the border.
                                                 * @param height the height of the available area for painting the border.
                                                 */
                                            !   public void paintBorder(Component c, Graphics  g, 
                                                                        int x, int y, int width, int height)
                                                {
                                                  Rectangle borderRect = new Rectangle(x + EDGE_SPACING, y + EDGE_SPACING,
                                            --- 460,466 ----
                                                 * @param width the width of the available area for painting the border.
                                                 * @param height the height of the available area for painting the border.
                                                 */
                                            !   public void paintBorder(Component c, Graphics  g,
                                                                        int x, int y, int width, int height)
                                                {
                                                  Rectangle borderRect = new Rectangle(x + EDGE_SPACING, y + EDGE_SPACING,
                                            *************** public class TitledBorder extends Abstra
                                            *** 666,672 ****
                                                                                borderRect.width,
                                                                                borderRect.height);
                                                                }
                                            ! 	                
                                                            }
                                                          else
                                                            {
                                            --- 666,672 ----
                                                                                borderRect.width,
                                                                                borderRect.height);
                                                                }
                                            ! 
                                                            }
                                                          else
                                                            {
                                            *************** public class TitledBorder extends Abstra
                                            *** 683,689 ****
                                                                                borderRect.width,
                                                                                borderRect.height);
                                                                }
                                            ! 	                
                                                            }
                                                          g.setClip(saved);
                                                        }
                                            --- 683,689 ----
                                                                                borderRect.width,
                                                                                borderRect.height);
                                                                }
                                            ! 
                                                            }
                                                          g.setClip(saved);
                                                        }
                                            *************** public class TitledBorder extends Abstra
                                            *** 710,716 ****
                                                {
                                                  return getBorderInsets(c, new Insets(0, 0, 0, 0));
                                                }
                                            !   
                                              
                                                /**
                                                 * Measures the width of this border, storing the results into a
                                            --- 710,716 ----
                                                {
                                                  return getBorderInsets(c, new Insets(0, 0, 0, 0));
                                                }
                                            ! 
                                              
                                                /**
                                                 * Measures the width of this border, storing the results into a
                                            *************** public class TitledBorder extends Abstra
                                            *** 795,802 ****
                                                    }
                                                  return insets;
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Returns false, indicating that there are pixels inside
                                                 * the area of this border where the background shines through.
                                            --- 795,802 ----
                                                    }
                                                  return insets;
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Returns false, indicating that there are pixels inside
                                                 * the area of this border where the background shines through.
                                            *************** public class TitledBorder extends Abstra
                                            *** 961,967 ****
                                                public void setTitlePosition(int titlePosition)
                                                {
                                                  if ((titlePosition < DEFAULT_POSITION) || (titlePosition > BELOW_BOTTOM))
                                            !       throw new IllegalArgumentException(titlePosition 
                                                        + " is not a valid title position.");
                                              
                                                  // Swing borders are not JavaBeans, thus no need to fire an event.
                                            --- 961,967 ----
                                                public void setTitlePosition(int titlePosition)
                                                {
                                                  if ((titlePosition < DEFAULT_POSITION) || (titlePosition > BELOW_BOTTOM))
                                            !       throw new IllegalArgumentException(titlePosition
                                                        + " is not a valid title position.");
                                              
                                                  // Swing borders are not JavaBeans, thus no need to fire an event.
                                            *************** public class TitledBorder extends Abstra
                                            *** 983,989 ****
                                                {
                                                  if ((titleJustification < DEFAULT_JUSTIFICATION)
                                                      || (titleJustification > TRAILING))
                                            !       throw new IllegalArgumentException(titleJustification 
                                                        + " is not a valid title justification.");
                                              
                                                  // Swing borders are not JavaBeans, thus no need to fire an event.
                                            --- 983,989 ----
                                                {
                                                  if ((titleJustification < DEFAULT_JUSTIFICATION)
                                                      || (titleJustification > TRAILING))
                                            !       throw new IllegalArgumentException(titleJustification
                                                        + " is not a valid title justification.");
                                              
                                                  // Swing borders are not JavaBeans, thus no need to fire an event.
                                            *************** public class TitledBorder extends Abstra
                                            *** 1027,1033 ****
                                                 *
                                                 * @param c the Component for which this TitledBorder constitutes
                                                 *        a border.
                                            !    *        
                                                 * @return The minimum size.
                                                 */
                                                public Dimension getMinimumSize(Component c)
                                            --- 1027,1033 ----
                                                 *
                                                 * @param c the Component for which this TitledBorder constitutes
                                                 *        a border.
                                            !    *
                                                 * @return The minimum size.
                                                 */
                                                public Dimension getMinimumSize(Component c)
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/AbstractColorChooserPanel.java gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/AbstractColorChooserPanel.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/AbstractColorChooserPanel.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/AbstractColorChooserPanel.java	Tue Jan 11 19:46:05 2011
                                            *************** public abstract class AbstractColorChoos
                                            *** 77,85 ****
                                                /**
                                                 * Returns the key code for the mnemonic for this panel.  This method returns
                                                 * zero to indicate no mnemonic, subclasses can override this.
                                            !    * 
                                                 * @return 0, to indicate no mnemonic key code.
                                            !    * 
                                                 * @see #getDisplayedMnemonicIndex()
                                                 * @since 1.4
                                                 */
                                            --- 77,85 ----
                                                /**
                                                 * Returns the key code for the mnemonic for this panel.  This method returns
                                                 * zero to indicate no mnemonic, subclasses can override this.
                                            !    *
                                                 * @return 0, to indicate no mnemonic key code.
                                            !    *
                                                 * @see #getDisplayedMnemonicIndex()
                                                 * @since 1.4
                                                 */
                                            *************** public abstract class AbstractColorChoos
                                            *** 87,100 ****
                                                {
                                                  return 0;
                                                }
                                            !   
                                                /**
                                            !    * Returns the index of the character in the display name that is the 
                                                 * mnemonic.  This method returns -1 to indicate no mnemonic,
                                                 * subclasses can override.
                                            !    * 
                                                 * @return -1, to indicate no mnemonic.
                                            !    * 
                                                 * @see #getDisplayName()
                                                 * @see #getMnemonic()
                                                 * @since 1.4
                                            --- 87,100 ----
                                                {
                                                  return 0;
                                                }
                                            ! 
                                                /**
                                            !    * Returns the index of the character in the display name that is the
                                                 * mnemonic.  This method returns -1 to indicate no mnemonic,
                                                 * subclasses can override.
                                            !    *
                                                 * @return -1, to indicate no mnemonic.
                                            !    *
                                                 * @see #getDisplayName()
                                                 * @see #getMnemonic()
                                                 * @since 1.4
                                            *************** public abstract class AbstractColorChoos
                                            *** 103,109 ****
                                                {
                                                  return -1;
                                                }
                                            !   
                                                /**
                                                 * This method updates the chooser panel when the JColorChooser's color has
                                                 * changed.
                                            --- 103,109 ----
                                                {
                                                  return -1;
                                                }
                                            ! 
                                                /**
                                                 * This method updates the chooser panel when the JColorChooser's color has
                                                 * changed.
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/ColorChooserComponentFactory.java gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/ColorChooserComponentFactory.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/ColorChooserComponentFactory.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/ColorChooserComponentFactory.java	Tue Jan 11 19:46:05 2011
                                            *************** public class ColorChooserComponentFactor
                                            *** 64,70 ****
                                                 */
                                                public static AbstractColorChooserPanel[] getDefaultChooserPanels()
                                                {
                                            !     AbstractColorChooserPanel[] values = 
                                                                                       {
                                                                                         new DefaultSwatchChooserPanel(),
                                                                                         new DefaultHSBChooserPanel(),
                                            --- 64,70 ----
                                                 */
                                                public static AbstractColorChooserPanel[] getDefaultChooserPanels()
                                                {
                                            !     AbstractColorChooserPanel[] values =
                                                                                       {
                                                                                         new DefaultSwatchChooserPanel(),
                                                                                         new DefaultHSBChooserPanel(),
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/ColorSelectionModel.java gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/ColorSelectionModel.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/ColorSelectionModel.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/ColorSelectionModel.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.event.ChangeListener;
                                            *** 47,68 ****
                                              /**
                                               * A model that is used by the {@link JColorChooser} component to represent the
                                               * selected color.
                                            !  * 
                                            !  * @author	Andrew Selkirk
                                               */
                                            ! public interface ColorSelectionModel 
                                              {
                                              
                                                /**
                                                 * Returns the selected color.
                                            !    * 
                                                 * @return The selected color.
                                                 */
                                                Color getSelectedColor();
                                              
                                                /**
                                                 * Sets the selected color.
                                            !    * 
                                                 * @param color  the selected color.
                                                 */
                                                void setSelectedColor(Color color);
                                            --- 47,68 ----
                                              /**
                                               * A model that is used by the {@link JColorChooser} component to represent the
                                               * selected color.
                                            !  *
                                            !  * @author      Andrew Selkirk
                                               */
                                            ! public interface ColorSelectionModel
                                              {
                                              
                                                /**
                                                 * Returns the selected color.
                                            !    *
                                                 * @return The selected color.
                                                 */
                                                Color getSelectedColor();
                                              
                                                /**
                                                 * Sets the selected color.
                                            !    *
                                                 * @param color  the selected color.
                                                 */
                                                void setSelectedColor(Color color);
                                            *************** public interface ColorSelectionModel 
                                            *** 70,82 ****
                                                /**
                                                 * Registers a listener to receive {@link ChangeEvent} notifications
                                                 * from this model.
                                            !    * 
                                                 * @param listener  the listener.
                                                 */
                                                void addChangeListener(ChangeListener listener);
                                              
                                                /**
                                            !    * Deregisters a listener so that it no longer receives {@link ChangeEvent} 
                                                 * notifications from this action.
                                                 *
                                                 * @param listener  the listener.
                                            --- 70,82 ----
                                                /**
                                                 * Registers a listener to receive {@link ChangeEvent} notifications
                                                 * from this model.
                                            !    *
                                                 * @param listener  the listener.
                                                 */
                                                void addChangeListener(ChangeListener listener);
                                              
                                                /**
                                            !    * Deregisters a listener so that it no longer receives {@link ChangeEvent}
                                                 * notifications from this action.
                                                 *
                                                 * @param listener  the listener.
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/DefaultColorSelectionModel.java gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/DefaultColorSelectionModel.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/DefaultColorSelectionModel.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/DefaultColorSelectionModel.java	Tue Jan 11 19:46:05 2011
                                            *************** public class DefaultColorSelectionModel 
                                            *** 113,120 ****
                                                    throw new Error("ColorSelectionModel cannot be set to have null color.");
                                                  if (color != selectedColor)
                                                    {
                                            ! 	this.selectedColor = color;
                                            ! 	fireStateChanged();
                                                    }
                                                }
                                              
                                            --- 113,120 ----
                                                    throw new Error("ColorSelectionModel cannot be set to have null color.");
                                                  if (color != selectedColor)
                                                    {
                                            !         this.selectedColor = color;
                                            !         fireStateChanged();
                                                    }
                                                }
                                              
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/DefaultHSBChooserPanel.java gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/DefaultHSBChooserPanel.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/DefaultHSBChooserPanel.java	Sun Jun  3 23:18:43 2007
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/DefaultHSBChooserPanel.java	Tue Jan 11 19:46:05 2011
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 206,212 ****
                                                  {
                                                    Point p = e.getPoint();
                                                    if (p.x < 0 || p.y < 0 || p.y > imgHeight || p.x > imgWidth)
                                            ! 	return;
                                              
                                                    gradientPoint = p;
                                                    update(p);
                                            --- 206,212 ----
                                                  {
                                                    Point p = e.getPoint();
                                                    if (p.x < 0 || p.y < 0 || p.y > imgHeight || p.x > imgWidth)
                                            !         return;
                                              
                                                    gradientPoint = p;
                                                    update(p);
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 231,241 ****
                                                  {
                                                    handlingMouse = true;
                                                    if (hSpinner.isEnabled())
                                            ! 	updateH(p);
                                                    else if (sSpinner.isEnabled())
                                            ! 	updateS(p);
                                                    else
                                            ! 	updateB(p);
                                                    handlingMouse = false;
                                                  }
                                              
                                            --- 231,241 ----
                                                  {
                                                    handlingMouse = true;
                                                    if (hSpinner.isEnabled())
                                            !         updateH(p);
                                                    else if (sSpinner.isEnabled())
                                            !         updateS(p);
                                                    else
                                            !         updateB(p);
                                                    handlingMouse = false;
                                                  }
                                              
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 309,329 ****
                                                  public void stateChanged(ChangeEvent e)
                                                  {
                                                    if (internalChange)
                                            ! 	return;
                                              
                                                    Integer value = new Integer(slider.getValue());
                                              
                                                    switch (locked)
                                                      {
                                            ! 	case HLOCKED:
                                            ! 	  hSpinner.setValue(value);
                                            ! 	  break;
                                            ! 	case SLOCKED:
                                            ! 	  sSpinner.setValue(value);
                                            ! 	  break;
                                            ! 	case BLOCKED:
                                            ! 	  bSpinner.setValue(value);
                                            ! 	  break;
                                                      }
                                                  }
                                                }
                                            --- 309,329 ----
                                                  public void stateChanged(ChangeEvent e)
                                                  {
                                                    if (internalChange)
                                            !         return;
                                              
                                                    Integer value = new Integer(slider.getValue());
                                              
                                                    switch (locked)
                                                      {
                                            !         case HLOCKED:
                                            !           hSpinner.setValue(value);
                                            !           break;
                                            !         case SLOCKED:
                                            !           sSpinner.setValue(value);
                                            !           break;
                                            !         case BLOCKED:
                                            !           bSpinner.setValue(value);
                                            !           break;
                                                      }
                                                  }
                                                }
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 344,361 ****
                                                    JSpinner change;
                                                    if (e.getSource() == hRadio)
                                                      {
                                            ! 	  locked = HLOCKED;
                                            ! 	  change = hSpinner;
                                                      }
                                                    else if (e.getSource() == sRadio)
                                                      {
                                            ! 	  locked = SLOCKED;
                                            ! 	  change = sSpinner;
                                                      }
                                                    else
                                                      {
                                            ! 	  locked = BLOCKED;
                                            ! 	  change = bSpinner;
                                                      }
                                              
                                                    change.setEnabled(((AbstractButton) e.getSource()).isSelected());
                                            --- 344,361 ----
                                                    JSpinner change;
                                                    if (e.getSource() == hRadio)
                                                      {
                                            !           locked = HLOCKED;
                                            !           change = hSpinner;
                                                      }
                                                    else if (e.getSource() == sRadio)
                                                      {
                                            !           locked = SLOCKED;
                                            !           change = sSpinner;
                                                      }
                                                    else
                                                      {
                                            !           locked = BLOCKED;
                                            !           change = bSpinner;
                                                      }
                                              
                                                    change.setEnabled(((AbstractButton) e.getSource()).isSelected());
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 380,386 ****
                                                  public void stateChanged(ChangeEvent e)
                                                  {
                                                    if (internalChange)
                                            ! 	return;
                                              
                                                    float h = ((Number) hSpinner.getValue()).intValue() / 360f;
                                                    float s = ((Number) sSpinner.getValue()).intValue() / 100f;
                                            --- 380,386 ----
                                                  public void stateChanged(ChangeEvent e)
                                                  {
                                                    if (internalChange)
                                            !         return;
                                              
                                                    float h = ((Number) hSpinner.getValue()).intValue() / 360f;
                                                    float s = ((Number) sSpinner.getValue()).intValue() / 100f;
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 393,400 ****
                                              
                                                    if (! handlingMouse && slider != null && ! slider.getValueIsAdjusting())
                                                      {
                                            ! 	  updateImage();
                                            ! 	  updateTrack();
                                                      }
                                                    repaint();
                                                  }
                                            --- 393,400 ----
                                              
                                                    if (! handlingMouse && slider != null && ! slider.getValueIsAdjusting())
                                                      {
                                            !           updateImage();
                                            !           updateTrack();
                                                      }
                                                    repaint();
                                                  }
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 435,478 ****
                                              
                                                  if (! spinnerTrigger)
                                                    {
                                            ! 	hSpinner.setValue(new Integer((int) (hsbVals[0] * 360)));
                                            ! 	sSpinner.setValue(new Integer((int) (hsbVals[1] * 100)));
                                            ! 	bSpinner.setValue(new Integer((int) (hsbVals[2] * 100)));
                                                    }
                                              
                                                  switch (locked)
                                                    {
                                                    case HLOCKED:
                                            ! 	if (slider != null)
                                            ! 	  slider.setValue(((Number) hSpinner.getValue()).intValue());
                                            ! 	if (! handlingMouse)
                                            ! 	  {
                                            ! 	    gradientPoint.x = (int) ((1
                                            ! 	                      - ((Number) sSpinner.getValue()).intValue() / 100f) * imgWidth);
                                            ! 	    gradientPoint.y = (int) ((1
                                            ! 	                      - ((Number) bSpinner.getValue()).intValue() / 100f) * imgHeight);
                                            ! 	  }
                                            ! 	break;
                                                    case SLOCKED:
                                            ! 	if (slider != null)
                                            ! 	  slider.setValue(((Number) sSpinner.getValue()).intValue());
                                            ! 	if (! handlingMouse)
                                            ! 	  {
                                            ! 	    gradientPoint.x = (int) (((Number) hSpinner.getValue()).intValue() / 360f * imgWidth);
                                            ! 	    gradientPoint.y = (int) ((1
                                            ! 	                      - ((Number) bSpinner.getValue()).intValue() / 100f) * imgHeight);
                                            ! 	  }
                                            ! 	break;
                                                    case BLOCKED:
                                            ! 	if (slider != null)
                                            ! 	  slider.setValue(((Number) bSpinner.getValue()).intValue());
                                            ! 	if (! handlingMouse)
                                            ! 	  {
                                            ! 	    gradientPoint.x = (int) (((Number) hSpinner.getValue()).intValue() / 360f * imgWidth);
                                            ! 	    gradientPoint.y = (int) ((1
                                            ! 	                      - ((Number) sSpinner.getValue()).intValue() / 100f) * imgHeight);
                                            ! 	  }
                                            ! 	break;
                                                    }
                                                  internalChange = false;
                                              
                                            --- 435,478 ----
                                              
                                                  if (! spinnerTrigger)
                                                    {
                                            !         hSpinner.setValue(new Integer((int) (hsbVals[0] * 360)));
                                            !         sSpinner.setValue(new Integer((int) (hsbVals[1] * 100)));
                                            !         bSpinner.setValue(new Integer((int) (hsbVals[2] * 100)));
                                                    }
                                              
                                                  switch (locked)
                                                    {
                                                    case HLOCKED:
                                            !         if (slider != null)
                                            !           slider.setValue(((Number) hSpinner.getValue()).intValue());
                                            !         if (! handlingMouse)
                                            !           {
                                            !             gradientPoint.x = (int) ((1
                                            !                               - ((Number) sSpinner.getValue()).intValue() / 100f) * imgWidth);
                                            !             gradientPoint.y = (int) ((1
                                            !                               - ((Number) bSpinner.getValue()).intValue() / 100f) * imgHeight);
                                            !           }
                                            !         break;
                                                    case SLOCKED:
                                            !         if (slider != null)
                                            !           slider.setValue(((Number) sSpinner.getValue()).intValue());
                                            !         if (! handlingMouse)
                                            !           {
                                            !             gradientPoint.x = (int) (((Number) hSpinner.getValue()).intValue() / 360f * imgWidth);
                                            !             gradientPoint.y = (int) ((1
                                            !                               - ((Number) bSpinner.getValue()).intValue() / 100f) * imgHeight);
                                            !           }
                                            !         break;
                                                    case BLOCKED:
                                            !         if (slider != null)
                                            !           slider.setValue(((Number) bSpinner.getValue()).intValue());
                                            !         if (! handlingMouse)
                                            !           {
                                            !             gradientPoint.x = (int) (((Number) hSpinner.getValue()).intValue() / 360f * imgWidth);
                                            !             gradientPoint.y = (int) ((1
                                            !                               - ((Number) sSpinner.getValue()).intValue() / 100f) * imgHeight);
                                            !           }
                                            !         break;
                                                    }
                                                  internalChange = false;
                                              
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 498,518 ****
                                              
                                                  gradientPanel = new JPanel()
                                                      {
                                            ! 	  public Dimension getPreferredSize()
                                            ! 	  {
                                            ! 	    return new Dimension(imgWidth, imgHeight);
                                            ! 	  }
                                              
                                            ! 	  public void paint(Graphics g)
                                            ! 	  {
                                            ! 	    if (gradientImage != null)
                                            ! 	      g.drawImage(gradientImage, 0, 0, this);
                                              
                                            ! 	    Color saved = g.getColor();
                                            ! 	    g.setColor(Color.WHITE);
                                            ! 	    g.drawOval(gradientPoint.x - 3, gradientPoint.y - 3, 6, 6);
                                            ! 	    g.setColor(saved);
                                            ! 	  }
                                                      };
                                              
                                                  MouseAdapter ml = new MainGradientMouseListener();
                                            --- 498,518 ----
                                              
                                                  gradientPanel = new JPanel()
                                                      {
                                            !           public Dimension getPreferredSize()
                                            !           {
                                            !             return new Dimension(imgWidth, imgHeight);
                                            !           }
                                              
                                            !           public void paint(Graphics g)
                                            !           {
                                            !             if (gradientImage != null)
                                            !               g.drawImage(gradientImage, 0, 0, this);
                                              
                                            !             Color saved = g.getColor();
                                            !             g.setColor(Color.WHITE);
                                            !             g.drawOval(gradientPoint.x - 3, gradientPoint.y - 3, 6, 6);
                                            !             g.setColor(saved);
                                            !           }
                                                      };
                                              
                                                  MouseAdapter ml = new MainGradientMouseListener();
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 521,536 ****
                                              
                                                  trackPanel = new JPanel()
                                                      {
                                            ! 	  public Dimension getPreferredSize()
                                            ! 	  {
                                            ! 	    return new Dimension(trackWidth, imgHeight);
                                            ! 	  }
                                              
                                            ! 	  public void paint(Graphics g)
                                            ! 	  {
                                            ! 	    if (trackImage != null)
                                            ! 	      g.drawImage(trackImage, 0, 0, this);
                                            ! 	  }
                                                      };
                                              
                                                  slider = new JSlider();
                                            --- 521,536 ----
                                              
                                                  trackPanel = new JPanel()
                                                      {
                                            !           public Dimension getPreferredSize()
                                            !           {
                                            !             return new Dimension(trackWidth, imgHeight);
                                            !           }
                                              
                                            !           public void paint(Graphics g)
                                            !           {
                                            !             if (trackImage != null)
                                            !               g.drawImage(trackImage, 0, 0, this);
                                            !           }
                                                      };
                                              
                                                  slider = new JSlider();
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 682,690 ****
                                              
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < imgWidth; i++)
                                            ! 	pix[index++] = Color.HSBtoRGB(hValue, (imgWidth - i * 1f) / imgWidth,
                                            ! 	                              (imgHeight - j * 1f) / imgHeight)
                                            ! 	               | (255 << 24);
                                              
                                                  gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight,
                                                                                                    pix, 0, imgWidth));
                                            --- 682,690 ----
                                              
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < imgWidth; i++)
                                            !         pix[index++] = Color.HSBtoRGB(hValue, (imgWidth - i * 1f) / imgWidth,
                                            !                                       (imgHeight - j * 1f) / imgHeight)
                                            !                        | (255 << 24);
                                              
                                                  gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight,
                                                                                                    pix, 0, imgWidth));
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 702,710 ****
                                                  int index = 0;
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < imgWidth; i++)
                                            ! 	pix[index++] = Color.HSBtoRGB(i * 1f / imgWidth,
                                            ! 	                              (imgHeight - j * 1f) / imgHeight, bValue)
                                            ! 	               | (255 << 24);
                                              
                                                  gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight,
                                                                                                    pix, 0, imgWidth));
                                            --- 702,710 ----
                                                  int index = 0;
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < imgWidth; i++)
                                            !         pix[index++] = Color.HSBtoRGB(i * 1f / imgWidth,
                                            !                                       (imgHeight - j * 1f) / imgHeight, bValue)
                                            !                        | (255 << 24);
                                              
                                                  gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight,
                                                                                                    pix, 0, imgWidth));
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 722,730 ****
                                                  int index = 0;
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < imgWidth; i++)
                                            ! 	pix[index++] = Color.HSBtoRGB(i * 1f / imgWidth, sValue,
                                            ! 	                              (imgHeight - j * 1f) / imgHeight)
                                            ! 	               | (255 << 24);
                                                  gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight,
                                                                                                    pix, 0, imgWidth));
                                                }
                                            --- 722,730 ----
                                                  int index = 0;
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < imgWidth; i++)
                                            !         pix[index++] = Color.HSBtoRGB(i * 1f / imgWidth, sValue,
                                            !                                       (imgHeight - j * 1f) / imgHeight)
                                            !                        | (255 << 24);
                                                  gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight,
                                                                                                    pix, 0, imgWidth));
                                                }
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 739,752 ****
                                                  switch (locked)
                                                    {
                                                    case HLOCKED:
                                            ! 	updateHLockImage();
                                            ! 	break;
                                                    case SLOCKED:
                                            ! 	updateSLockImage();
                                            ! 	break;
                                                    case BLOCKED:
                                            ! 	updateBLockImage();
                                            ! 	break;
                                                    }
                                                }
                                              
                                            --- 739,752 ----
                                                  switch (locked)
                                                    {
                                                    case HLOCKED:
                                            !         updateHLockImage();
                                            !         break;
                                                    case SLOCKED:
                                            !         updateSLockImage();
                                            !         break;
                                                    case BLOCKED:
                                            !         updateBLockImage();
                                            !         break;
                                                    }
                                                }
                                              
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 777,794 ****
                                                  slider.setMinimum(0);
                                                  if (locked == HLOCKED)
                                                    {
                                            ! 	slider.setMaximum(359);
                                            ! 	slider.setValue(((Number) hSpinner.getValue()).intValue());
                                            ! 	slider.setInverted(true);
                                                    }
                                                  else
                                                    {
                                            ! 	slider.setMaximum(100);
                                            ! 	slider.setInverted(false);
                                            ! 	if (sRadio.isSelected())
                                            ! 	  slider.setValue(((Number) sSpinner.getValue()).intValue());
                                            ! 	else
                                            ! 	  slider.setValue(((Number) bSpinner.getValue()).intValue());
                                                    }
                                                  repaint();
                                                }
                                            --- 777,794 ----
                                                  slider.setMinimum(0);
                                                  if (locked == HLOCKED)
                                                    {
                                            !         slider.setMaximum(359);
                                            !         slider.setValue(((Number) hSpinner.getValue()).intValue());
                                            !         slider.setInverted(true);
                                                    }
                                                  else
                                                    {
                                            !         slider.setMaximum(100);
                                            !         slider.setInverted(false);
                                            !         if (sRadio.isSelected())
                                            !           slider.setValue(((Number) sSpinner.getValue()).intValue());
                                            !         else
                                            !           slider.setValue(((Number) bSpinner.getValue()).intValue());
                                                    }
                                                  repaint();
                                                }
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 803,816 ****
                                                  switch (locked)
                                                    {
                                                    case HLOCKED:
                                            ! 	updateHTrack();
                                            ! 	break;
                                                    case SLOCKED:
                                            ! 	updateSTrack();
                                            ! 	break;
                                                    case BLOCKED:
                                            ! 	updateBTrack();
                                            ! 	break;
                                                    }
                                                }
                                              
                                            --- 803,816 ----
                                                  switch (locked)
                                                    {
                                                    case HLOCKED:
                                            !         updateHTrack();
                                            !         break;
                                                    case SLOCKED:
                                            !         updateSTrack();
                                            !         break;
                                                    case BLOCKED:
                                            !         updateBTrack();
                                            !         break;
                                                    }
                                                }
                                              
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 825,832 ****
                                              
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < trackWidth; i++)
                                            ! 	trackPix[trackIndex++] = Color.HSBtoRGB(j * 1f / imgHeight, 1f, 1f)
                                            ! 	                         | (255 << 24);
                                              
                                                  trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight,
                                                                                                 trackPix, 0, trackWidth));
                                            --- 825,832 ----
                                              
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < trackWidth; i++)
                                            !         trackPix[trackIndex++] = Color.HSBtoRGB(j * 1f / imgHeight, 1f, 1f)
                                            !                                  | (255 << 24);
                                              
                                                  trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight,
                                                                                                 trackPix, 0, trackWidth));
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 846,854 ****
                                                  int trackIndex = 0;
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < trackWidth; i++)
                                            ! 	trackPix[trackIndex++] = Color.HSBtoRGB(hValue,
                                            ! 	                                        (imgHeight - j * 1f) / imgHeight,
                                            ! 	                                        bValue) | (255 << 24);
                                              
                                                  trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight,
                                                                                                 trackPix, 0, trackWidth));
                                            --- 846,854 ----
                                                  int trackIndex = 0;
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < trackWidth; i++)
                                            !         trackPix[trackIndex++] = Color.HSBtoRGB(hValue,
                                            !                                                 (imgHeight - j * 1f) / imgHeight,
                                            !                                                 bValue) | (255 << 24);
                                              
                                                  trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight,
                                                                                                 trackPix, 0, trackWidth));
                                            *************** class DefaultHSBChooserPanel extends Abs
                                            *** 868,876 ****
                                                  int trackIndex = 0;
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < trackWidth; i++)
                                            ! 	trackPix[trackIndex++] = Color.HSBtoRGB(hValue, sValue,
                                            ! 	                                        (imgHeight - j * 1f) / imgHeight)
                                            ! 	                         | (255 << 24);
                                              
                                                  trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight,
                                                                                                 trackPix, 0, trackWidth));
                                            --- 868,876 ----
                                                  int trackIndex = 0;
                                                  for (int j = 0; j < imgHeight; j++)
                                                    for (int i = 0; i < trackWidth; i++)
                                            !         trackPix[trackIndex++] = Color.HSBtoRGB(hValue, sValue,
                                            !                                                 (imgHeight - j * 1f) / imgHeight)
                                            !                                  | (255 << 24);
                                              
                                                  trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight,
                                                                                                 trackPix, 0, trackWidth));
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/DefaultRGBChooserPanel.java gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/DefaultRGBChooserPanel.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/DefaultRGBChooserPanel.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/DefaultRGBChooserPanel.java	Tue Jan 11 19:46:05 2011
                                            *************** class DefaultRGBChooserPanel extends Abs
                                            *** 72,78 ****
                                                  public void stateChanged(ChangeEvent e)
                                                  {
                                                    if (updateChange)
                                            ! 	return;
                                              
                                                    int color = R.getValue() << 16 | G.getValue() << 8 | B.getValue();
                                              
                                            --- 72,78 ----
                                                  public void stateChanged(ChangeEvent e)
                                                  {
                                                    if (updateChange)
                                            !         return;
                                              
                                                    int color = R.getValue() << 16 | G.getValue() << 8 | B.getValue();
                                              
                                            *************** class DefaultRGBChooserPanel extends Abs
                                            *** 95,101 ****
                                                  public void stateChanged(ChangeEvent e)
                                                  {
                                                    if (updateChange)
                                            ! 	return;
                                              
                                                    int red = ((Number) RSpinner.getValue()).intValue();
                                                    int green = ((Number) GSpinner.getValue()).intValue();
                                            --- 95,101 ----
                                                  public void stateChanged(ChangeEvent e)
                                                  {
                                                    if (updateChange)
                                            !         return;
                                              
                                                    int red = ((Number) RSpinner.getValue()).intValue();
                                                    int green = ((Number) GSpinner.getValue()).intValue();
                                            *************** class DefaultRGBChooserPanel extends Abs
                                            *** 198,218 ****
                                              
                                                  if (! sliderChange)
                                                    {
                                            ! 	if (R != null)
                                            ! 	  R.setValue(red);
                                            ! 	if (G != null)
                                            ! 	  G.setValue(green);
                                            ! 	if (B != null)
                                            ! 	  B.setValue(blue);
                                                    }
                                                  if (! spinnerChange)
                                                    {
                                            ! 	if (GSpinner != null)
                                            ! 	  GSpinner.setValue(new Integer(green));
                                            ! 	if (RSpinner != null)
                                            ! 	  RSpinner.setValue(new Integer(red));
                                            ! 	if (BSpinner != null)
                                            ! 	  BSpinner.setValue(new Integer(blue));
                                                    }
                                              
                                                  updateChange = false;
                                            --- 198,218 ----
                                              
                                                  if (! sliderChange)
                                                    {
                                            !         if (R != null)
                                            !           R.setValue(red);
                                            !         if (G != null)
                                            !           G.setValue(green);
                                            !         if (B != null)
                                            !           B.setValue(blue);
                                                    }
                                                  if (! spinnerChange)
                                                    {
                                            !         if (GSpinner != null)
                                            !           GSpinner.setValue(new Integer(green));
                                            !         if (RSpinner != null)
                                            !           RSpinner.setValue(new Integer(red));
                                            !         if (BSpinner != null)
                                            !           BSpinner.setValue(new Integer(blue));
                                                    }
                                              
                                                  updateChange = false;
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/DefaultSwatchChooserPanel.java gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/colorchooser/DefaultSwatchChooserPanel.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/colorchooser/DefaultSwatchChooserPanel.java	Tue Jan 11 19:46:05 2011
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 213,219 ****
                                              
                                                  /** The color (255, 153, 153). */
                                                  public static final Color C255153153 = new Color(255, 153, 153);
                                            !     static Color[] colors = 
                                                                          {
                                                                            // Row 1
                                                  Color.WHITE, new Color(204, 255, 255), C204255255, C204255255, C204255255,
                                            --- 213,219 ----
                                              
                                                  /** The color (255, 153, 153). */
                                                  public static final Color C255153153 = new Color(255, 153, 153);
                                            !     static Color[] colors =
                                                                          {
                                                                            // Row 1
                                                  Color.WHITE, new Color(204, 255, 255), C204255255, C204255255, C204255255,
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 224,230 ****
                                                                            C255204204, new Color(255, 255, 204), C204255204,
                                                                            C204255204, C204255204, C204255204, C204255204,
                                                                            C204255204, C204255204, C204255204, C204255204,
                                            !                               
                                                  // Row 2
                                                  C204204204, new Color(153, 255, 255), new Color(153, 204, 255), C153153255,
                                                                            C153153255, C153153255, C153153255, C153153255,
                                            --- 224,230 ----
                                                                            C255204204, new Color(255, 255, 204), C204255204,
                                                                            C204255204, C204255204, C204255204, C204255204,
                                                                            C204255204, C204255204, C204255204, C204255204,
                                            ! 
                                                  // Row 2
                                                  C204204204, new Color(153, 255, 255), new Color(153, 204, 255), C153153255,
                                                                            C153153255, C153153255, C153153255, C153153255,
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 237,243 ****
                                                                            new Color(204, 255, 153), C153255153, C153255153,
                                                                            C153255153, C153255153, C153255153, C153255153,
                                                                            C153255153, new Color(153, 255, 204),
                                            !                               
                                                  // Row 3
                                                  C204204204, new Color(102, 255, 255), new Color(102, 204, 255),
                                                                            new Color(102, 153, 255), C102102255, C102102255,
                                            --- 237,243 ----
                                                                            new Color(204, 255, 153), C153255153, C153255153,
                                                                            C153255153, C153255153, C153255153, C153255153,
                                                                            C153255153, new Color(153, 255, 204),
                                            ! 
                                                  // Row 3
                                                  C204204204, new Color(102, 255, 255), new Color(102, 204, 255),
                                                                            new Color(102, 153, 255), C102102255, C102102255,
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 256,262 ****
                                                                            C102255102, C102255102, C102255102,
                                                                            new Color(102, 255, 153),
                                                                            new Color(102, 255, 204),
                                            !                               
                                                  // Row 4
                                                  new Color(153, 153, 153), new Color(51, 255, 255), new Color(51, 204, 255),
                                                                            new Color(51, 153, 255), new Color(51, 102, 255),
                                            --- 256,262 ----
                                                                            C102255102, C102255102, C102255102,
                                                                            new Color(102, 255, 153),
                                                                            new Color(102, 255, 204),
                                            ! 
                                                  // Row 4
                                                  new Color(153, 153, 153), new Color(51, 255, 255), new Color(51, 204, 255),
                                                                            new Color(51, 153, 255), new Color(51, 102, 255),
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 272,278 ****
                                                                            C051255051, C051255051, C051255051,
                                                                            new Color(51, 255, 102), new Color(51, 255, 153),
                                                                            new Color(51, 255, 204),
                                            !                               
                                                  // Row 5
                                                  new Color(153, 153, 153), new Color(0, 255, 255), new Color(0, 204, 255),
                                                                            new Color(0, 153, 255), new Color(0, 102, 255),
                                            --- 272,278 ----
                                                                            C051255051, C051255051, C051255051,
                                                                            new Color(51, 255, 102), new Color(51, 255, 153),
                                                                            new Color(51, 255, 204),
                                            ! 
                                                  // Row 5
                                                  new Color(153, 153, 153), new Color(0, 255, 255), new Color(0, 204, 255),
                                                                            new Color(0, 153, 255), new Color(0, 102, 255),
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 289,295 ****
                                                                            new Color(51, 255, 0), new Color(0, 255, 0),
                                                                            new Color(0, 255, 51), new Color(0, 255, 102),
                                                                            new Color(0, 255, 153), new Color(0, 255, 204),
                                            !                               
                                                  // Row 6
                                                  new Color(102, 102, 102), C000204204, C000204204, new Color(0, 153, 204),
                                                                            new Color(0, 102, 204), new Color(0, 51, 204),
                                            --- 289,295 ----
                                                                            new Color(51, 255, 0), new Color(0, 255, 0),
                                                                            new Color(0, 255, 51), new Color(0, 255, 102),
                                                                            new Color(0, 255, 153), new Color(0, 255, 204),
                                            ! 
                                                  // Row 6
                                                  new Color(102, 102, 102), C000204204, C000204204, new Color(0, 153, 204),
                                                                            new Color(0, 102, 204), new Color(0, 51, 204),
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 305,311 ****
                                                                            new Color(0, 204, 0), new Color(0, 204, 51),
                                                                            new Color(0, 204, 102), new Color(0, 204, 153),
                                                                            new Color(0, 204, 204),
                                            !                               
                                                  // Row 7
                                                  new Color(102, 102, 102), C000153153, C000153153, C000153153,
                                                                            new Color(0, 102, 153), new Color(0, 51, 153),
                                            --- 305,311 ----
                                                                            new Color(0, 204, 0), new Color(0, 204, 51),
                                                                            new Color(0, 204, 102), new Color(0, 204, 153),
                                                                            new Color(0, 204, 204),
                                            ! 
                                                  // Row 7
                                                  new Color(102, 102, 102), C000153153, C000153153, C000153153,
                                                                            new Color(0, 102, 153), new Color(0, 51, 153),
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 319,325 ****
                                                                            new Color(102, 153, 0), new Color(51, 153, 0),
                                                                            new Color(0, 153, 0), new Color(0, 153, 51),
                                                                            new Color(0, 153, 102), C000153153, C000153153,
                                            !                               
                                                  // Row 8
                                                  new Color(51, 51, 51), C000102102, C000102102, C000102102, C000102102,
                                                                            new Color(0, 51, 102), new Color(0, 0, 102),
                                            --- 319,325 ----
                                                                            new Color(102, 153, 0), new Color(51, 153, 0),
                                                                            new Color(0, 153, 0), new Color(0, 153, 51),
                                                                            new Color(0, 153, 102), C000153153, C000153153,
                                            ! 
                                                  // Row 8
                                                  new Color(51, 51, 51), C000102102, C000102102, C000102102, C000102102,
                                                                            new Color(0, 51, 102), new Color(0, 0, 102),
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 332,338 ****
                                                                            new Color(51, 102, 0), new Color(0, 102, 0),
                                                                            new Color(0, 102, 51), C000102102, C000102102,
                                                                            C000102102,
                                            !                               
                                                  // Row 9.
                                                  Color.BLACK, C000051051, C000051051, C000051051, C000051051, C000051051,
                                                                            new Color(0, 0, 51), C051000051, C051000051,
                                            --- 332,338 ----
                                                                            new Color(51, 102, 0), new Color(0, 102, 0),
                                                                            new Color(0, 102, 51), C000102102, C000102102,
                                                                            C000102102,
                                            ! 
                                                  // Row 9.
                                                  Color.BLACK, C000051051, C000051051, C000051051, C000051051, C000051051,
                                                                            new Color(0, 0, 51), C051000051, C051000051,
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 369,376 ****
                                                  {
                                                    if (x % (cellWidth + gap) > cellWidth
                                                        || y % (cellHeight + gap) > cellHeight)
                                            ! 	// position is located in gap.
                                            ! 	return null;
                                              
                                                    int row = y / (cellHeight + gap);
                                                    int col = x / (cellWidth + gap);
                                            --- 369,376 ----
                                                  {
                                                    if (x % (cellWidth + gap) > cellWidth
                                                        || y % (cellHeight + gap) > cellHeight)
                                            !         // position is located in gap.
                                            !         return null;
                                              
                                                    int row = y / (cellHeight + gap);
                                                    int col = x / (cellWidth + gap);
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 401,414 ****
                                              
                                                    for (int i = 0; i < numRows; i++)
                                                      {
                                            ! 	  for (int j = 0; j < numCols; j++)
                                            ! 	    {
                                            ! 	      graphics.setColor(colors[index++]);
                                            ! 	      graphics.fill3DRect(currX, currY, cellWidth, cellHeight, true);
                                            ! 	      currX += gap + cellWidth;
                                            ! 	    }
                                            ! 	  currX = insets.left;
                                            ! 	  currY += gap + cellHeight;
                                                      }
                                                    graphics.setColor(saved);
                                                  }
                                            --- 401,414 ----
                                              
                                                    for (int i = 0; i < numRows; i++)
                                                      {
                                            !           for (int j = 0; j < numCols; j++)
                                            !             {
                                            !               graphics.setColor(colors[index++]);
                                            !               graphics.fill3DRect(currX, currY, cellWidth, cellHeight, true);
                                            !               currX += gap + cellWidth;
                                            !             }
                                            !           currX = insets.left;
                                            !           currY += gap + cellHeight;
                                                      }
                                                    graphics.setColor(saved);
                                                  }
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 424,430 ****
                                                  {
                                                    Color c = getColorForPosition(e.getX(), e.getY());
                                                    if (c == null)
                                            ! 	return null;
                                                    return (c.getRed() + "," + c.getGreen() + "," + c.getBlue());
                                                  }
                                                }
                                            --- 424,430 ----
                                                  {
                                                    Color c = getColorForPosition(e.getX(), e.getY());
                                                    if (c == null)
                                            !         return null;
                                                    return (c.getRed() + "," + c.getGreen() + "," + c.getBlue());
                                                  }
                                                }
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 467,474 ****
                                                  {
                                                    if (x % (cellWidth + gap) > cellWidth
                                                        || y % (cellHeight + gap) > cellHeight)
                                            ! 	// position is located in gap.
                                            ! 	return null;
                                              
                                                    int row = y / (cellHeight + gap);
                                                    int col = x / (cellWidth + gap);
                                            --- 467,474 ----
                                                  {
                                                    if (x % (cellWidth + gap) > cellWidth
                                                        || y % (cellHeight + gap) > cellHeight)
                                            !         // position is located in gap.
                                            !         return null;
                                              
                                                    int row = y / (cellHeight + gap);
                                                    int col = x / (cellWidth + gap);
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 483,489 ****
                                                  {
                                                    colors = new Color[numRows * numCols];
                                                    for (int i = 0; i < colors.length; i++)
                                            ! 	colors[i] = defaultColor;
                                                  }
                                              
                                                  /**
                                            --- 483,489 ----
                                                  {
                                                    colors = new Color[numRows * numCols];
                                                    for (int i = 0; i < colors.length; i++)
                                            !         colors[i] = defaultColor;
                                                  }
                                              
                                                  /**
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 508,514 ****
                                                  void addColorToQueue(Color c)
                                                  {
                                                    if (--start == -1)
                                            ! 	start = numRows * numCols - 1;
                                              
                                                    colors[start] = c;
                                                  }
                                            --- 508,514 ----
                                                  void addColorToQueue(Color c)
                                                  {
                                                    if (--start == -1)
                                            !         start = numRows * numCols - 1;
                                              
                                                    colors[start] = c;
                                                  }
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 527,540 ****
                                              
                                                    for (int i = 0; i < numRows; i++)
                                                      {
                                            ! 	  for (int j = 0; j < numCols; j++)
                                            ! 	    {
                                            ! 	      g.setColor(colors[getIndexForCell(i, j)]);
                                            ! 	      g.fill3DRect(currX, currY, cellWidth, cellHeight, true);
                                            ! 	      currX += cellWidth + gap;
                                            ! 	    }
                                            ! 	  currX = insets.left;
                                            ! 	  currY += cellWidth + gap;
                                                      }
                                                  }
                                              
                                            --- 527,540 ----
                                              
                                                    for (int i = 0; i < numRows; i++)
                                                      {
                                            !           for (int j = 0; j < numCols; j++)
                                            !             {
                                            !               g.setColor(colors[getIndexForCell(i, j)]);
                                            !               g.fill3DRect(currX, currY, cellWidth, cellHeight, true);
                                            !               currX += cellWidth + gap;
                                            !             }
                                            !           currX = insets.left;
                                            !           currY += cellWidth + gap;
                                                      }
                                                  }
                                              
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 549,555 ****
                                                  {
                                                    Color c = getColorForPosition(e.getX(), e.getY());
                                                    if (c == null)
                                            ! 	return null;
                                                    return c.getRed() + "," + c.getGreen() + "," + c.getBlue();
                                                  }
                                                }
                                            --- 549,555 ----
                                                  {
                                                    Color c = getColorForPosition(e.getX(), e.getY());
                                                    if (c == null)
                                            !         return null;
                                                    return c.getRed() + "," + c.getGreen() + "," + c.getBlue();
                                                  }
                                                }
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 609,619 ****
                                              
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            ! 	  pref[i] = comps[i].getPreferredSize();
                                            ! 	  if (pref[i] == null)
                                            ! 	    return;
                                            ! 	  maxHeight = Math.max(maxHeight, pref[i].height);
                                            ! 	  totalWidth += pref[i].width;
                                                      }
                                              
                                                    ypos = (parent.getSize().height - maxHeight) / 2 + insets.top;
                                            --- 609,619 ----
                                              
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            !           pref[i] = comps[i].getPreferredSize();
                                            !           if (pref[i] == null)
                                            !             return;
                                            !           maxHeight = Math.max(maxHeight, pref[i].height);
                                            !           totalWidth += pref[i].width;
                                                      }
                                              
                                                    ypos = (parent.getSize().height - maxHeight) / 2 + insets.top;
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 621,630 ****
                                              
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            ! 	  if (pref[i] == null)
                                            ! 	    continue;
                                            ! 	  comps[i].setBounds(xpos, ypos, pref[i].width, pref[i].height);
                                            ! 	  xpos += pref[i].width;
                                                      }
                                                  }
                                              
                                            --- 621,630 ----
                                              
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            !           if (pref[i] == null)
                                            !             continue;
                                            !           comps[i].setBounds(xpos, ypos, pref[i].width, pref[i].height);
                                            !           xpos += pref[i].width;
                                                      }
                                                  }
                                              
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 667,677 ****
                                              
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            ! 	  pref = comps[i].getPreferredSize();
                                            ! 	  if (pref == null)
                                            ! 	    continue;
                                            ! 	  xmax += pref.width;
                                            ! 	  ymax = Math.max(ymax, pref.height);
                                                      }
                                              
                                                    Insets insets = parent.getInsets();
                                            --- 667,677 ----
                                              
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            !           pref = comps[i].getPreferredSize();
                                            !           if (pref == null)
                                            !             continue;
                                            !           xmax += pref.width;
                                            !           ymax = Math.max(ymax, pref.height);
                                                      }
                                              
                                                    Insets insets = parent.getInsets();
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 713,723 ****
                                              
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            ! 	  pref = comps[i].getPreferredSize();
                                            ! 	  if (pref == null)
                                            ! 	    continue;
                                            ! 	  comps[i].setBounds(insets.left, currY, pref.width, pref.height);
                                            ! 	  currY += pref.height;
                                                      }
                                                  }
                                              
                                            --- 713,723 ----
                                              
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            !           pref = comps[i].getPreferredSize();
                                            !           if (pref == null)
                                            !             continue;
                                            !           comps[i].setBounds(insets.left, currY, pref.width, pref.height);
                                            !           currY += pref.height;
                                                      }
                                                  }
                                              
                                            *************** class DefaultSwatchChooserPanel extends 
                                            *** 750,761 ****
                                                    Dimension pref;
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            ! 	  pref = comps[i].getPreferredSize();
                                            ! 	  if (pref != null)
                                            ! 	    {
                                            ! 	      width = Math.max(width, pref.width);
                                            ! 	      height += pref.height;
                                            ! 	    }
                                                      }
                                              
                                                    return new Dimension(width + insets.left + insets.right,
                                            --- 750,761 ----
                                                    Dimension pref;
                                                    for (int i = 0; i < comps.length; i++)
                                                      {
                                            !           pref = comps[i].getPreferredSize();
                                            !           if (pref != null)
                                            !             {
                                            !               width = Math.max(width, pref.width);
                                            !               height += pref.height;
                                            !             }
                                                      }
                                              
                                                    return new Dimension(width + insets.left + insets.right,
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/AncestorEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/AncestorEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/AncestorEvent.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/AncestorEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.JComponent;
                                            *** 50,56 ****
                                              public class AncestorEvent extends AWTEvent
                                              {
                                                private static final long serialVersionUID = -8079801679695605002L;
                                            !   
                                                public static final int ANCESTOR_ADDED = 1;
                                                public static final int ANCESTOR_REMOVED = 2;
                                                public static final int ANCESTOR_MOVED = 3;
                                            --- 50,56 ----
                                              public class AncestorEvent extends AWTEvent
                                              {
                                                private static final long serialVersionUID = -8079801679695605002L;
                                            ! 
                                                public static final int ANCESTOR_ADDED = 1;
                                                public static final int ANCESTOR_REMOVED = 2;
                                                public static final int ANCESTOR_MOVED = 3;
                                            *************** public class AncestorEvent extends AWTEv
                                            *** 66,72 ****
                                                 * @param ancestorParent parent ancestor
                                                 */
                                                public AncestorEvent(JComponent source, int id, Container ancestor,
                                            ! 		       Container ancestorParent)
                                                {
                                                  super(source, id);
                                                  this.sourceComponent = source;
                                            --- 66,72 ----
                                                 * @param ancestorParent parent ancestor
                                                 */
                                                public AncestorEvent(JComponent source, int id, Container ancestor,
                                            !                        Container ancestorParent)
                                                {
                                                  super(source, id);
                                                  this.sourceComponent = source;
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/AncestorListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/AncestorListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/AncestorListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/AncestorListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 47,69 ****
                                               */
                                              public interface AncestorListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Ancestor Added
                                            ! 	 * @param event Ancestor Event
                                            ! 	 */
                                            ! 	void ancestorAdded(AncestorEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Ancestor Removed
                                            ! 	 * @param event Ancestor Event
                                            ! 	 */
                                            ! 	void ancestorRemoved(AncestorEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Ancestor Moved
                                            ! 	 * @param event Ancestor Event
                                            ! 	 */
                                            ! 	void ancestorMoved(AncestorEvent event);
                                              
                                              
                                              } // AncestorListener
                                            --- 47,69 ----
                                               */
                                              public interface AncestorListener extends EventListener {
                                              
                                            !         /**
                                            !          * Ancestor Added
                                            !          * @param event Ancestor Event
                                            !          */
                                            !         void ancestorAdded(AncestorEvent event);
                                              
                                            !         /**
                                            !          * Ancestor Removed
                                            !          * @param event Ancestor Event
                                            !          */
                                            !         void ancestorRemoved(AncestorEvent event);
                                              
                                            !         /**
                                            !          * Ancestor Moved
                                            !          * @param event Ancestor Event
                                            !          */
                                            !         void ancestorMoved(AncestorEvent event);
                                              
                                              
                                              } // AncestorListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/CaretEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/CaretEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/CaretEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/CaretEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventObject;
                                            *** 43,56 ****
                                               * CaretEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public abstract class CaretEvent extends EventObject 
                                              {
                                              
                                                /**
                                                 * CaretEvent constructor
                                                 * @param source Source object
                                                 */
                                            !   public CaretEvent(Object source) 
                                                {
                                                  super(source);
                                                }
                                            --- 43,56 ----
                                               * CaretEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public abstract class CaretEvent extends EventObject
                                              {
                                              
                                                /**
                                                 * CaretEvent constructor
                                                 * @param source Source object
                                                 */
                                            !   public CaretEvent(Object source)
                                                {
                                                  super(source);
                                                }
                                            *************** public abstract class CaretEvent extends
                                            *** 67,70 ****
                                                 */
                                                public abstract int getMark();
                                              
                                            ! } 
                                            --- 67,70 ----
                                                 */
                                                public abstract int getMark();
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/CaretListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/CaretListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/CaretListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/CaretListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,56 ****
                                               */
                                              public interface CaretListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Caret position has been updated
                                            ! 	 * @param event Caret Event
                                            ! 	 */
                                            ! 	void caretUpdate(CaretEvent event);
                                              
                                              
                                              } // CaretListener
                                            --- 46,56 ----
                                               */
                                              public interface CaretListener extends EventListener {
                                              
                                            !         /**
                                            !          * Caret position has been updated
                                            !          * @param event Caret Event
                                            !          */
                                            !         void caretUpdate(CaretEvent event);
                                              
                                              
                                              } // CaretListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/CellEditorListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/CellEditorListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/CellEditorListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/CellEditorListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,62 ****
                                               */
                                              public interface CellEditorListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Editing has been canceled
                                            ! 	 * @param event Change Event
                                            ! 	 */
                                            ! 	void editingCanceled(ChangeEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Editing has been stopped
                                            ! 	 * @param event Change Event
                                            ! 	 */
                                            ! 	void editingStopped(ChangeEvent event);
                                              
                                              
                                              } // CellEditorListener
                                            --- 46,62 ----
                                               */
                                              public interface CellEditorListener extends EventListener {
                                              
                                            !         /**
                                            !          * Editing has been canceled
                                            !          * @param event Change Event
                                            !          */
                                            !         void editingCanceled(ChangeEvent event);
                                              
                                            !         /**
                                            !          * Editing has been stopped
                                            !          * @param event Change Event
                                            !          */
                                            !         void editingStopped(ChangeEvent event);
                                              
                                              
                                              } // CellEditorListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/ChangeEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/ChangeEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/ChangeEvent.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/ChangeEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventObject;
                                            *** 41,64 ****
                                              
                                              /**
                                               * An event used to signal a state change for an object.
                                            !  * 
                                               * @see ChangeListener
                                               * @see CellEditorListener
                                               * @see TableColumnModelListener
                                            !  * 
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public class ChangeEvent 
                                            !   extends EventObject 
                                              {
                                              
                                                /**
                                                 * Creates a new ChangeEvent instance for the specified source.
                                            !    * 
                                                 * @param source  the source for the event (null not permitted).
                                                 */
                                            !   public ChangeEvent(Object source) 
                                                {
                                                  super(source);
                                                }
                                            --- 41,64 ----
                                              
                                              /**
                                               * An event used to signal a state change for an object.
                                            !  *
                                               * @see ChangeListener
                                               * @see CellEditorListener
                                               * @see TableColumnModelListener
                                            !  *
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public class ChangeEvent
                                            !   extends EventObject
                                              {
                                              
                                                /**
                                                 * Creates a new ChangeEvent instance for the specified source.
                                            !    *
                                                 * @param source  the source for the event (null not permitted).
                                                 */
                                            !   public ChangeEvent(Object source)
                                                {
                                                  super(source);
                                                }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/ChangeListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/ChangeListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/ChangeListener.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/ChangeListener.java	Tue Jan 11 19:46:05 2011
                                            *************** package javax.swing.event;
                                            *** 40,61 ****
                                              import java.util.EventListener;
                                              
                                              /**
                                            !  * A ChangeListener can register with an object to receive 
                                               * notification of state changes (for objects that support this mechanism).
                                            !  * 
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public interface ChangeListener 
                                            !   extends EventListener 
                                              {
                                              
                                                /**
                                                 * Called by an object to notify the listener that the object's state has
                                            !    * changed.  The incoming event identifies the 
                                                 * source of the event, allowing the listener to differentiate
                                                 * when it is listening for changes in multiple sources.
                                            !    * 
                                                 * @param event  the change event.
                                                 */
                                                void stateChanged(ChangeEvent event);
                                            --- 40,61 ----
                                              import java.util.EventListener;
                                              
                                              /**
                                            !  * A ChangeListener can register with an object to receive
                                               * notification of state changes (for objects that support this mechanism).
                                            !  *
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public interface ChangeListener
                                            !   extends EventListener
                                              {
                                              
                                                /**
                                                 * Called by an object to notify the listener that the object's state has
                                            !    * changed.  The incoming event identifies the
                                                 * source of the event, allowing the listener to differentiate
                                                 * when it is listening for changes in multiple sources.
                                            !    *
                                                 * @param event  the change event.
                                                 */
                                                void stateChanged(ChangeEvent event);
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/DocumentEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/DocumentEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/DocumentEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/DocumentEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** public interface DocumentEvent
                                            *** 75,81 ****
                                                   * @return Element[]
                                                   */
                                                  Element[] getChildrenAdded();
                                            !     
                                                }
                                              
                                                /**
                                            --- 75,81 ----
                                                   * @return Element[]
                                                   */
                                                  Element[] getChildrenAdded();
                                            ! 
                                                }
                                              
                                                /**
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/DocumentListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/DocumentListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/DocumentListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/DocumentListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,68 ****
                                               */
                                              public interface DocumentListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Changed update
                                            ! 	 * @param event Document Event
                                            ! 	 */
                                            ! 	void changedUpdate(DocumentEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Insert update
                                            ! 	 * @param event Document Event
                                            ! 	 */
                                            ! 	void insertUpdate(DocumentEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Remove update
                                            ! 	 * @param event Document Event
                                            ! 	 */
                                            ! 	void removeUpdate(DocumentEvent event);
                                              
                                              
                                              } // DocumentListener
                                            --- 46,68 ----
                                               */
                                              public interface DocumentListener extends EventListener {
                                              
                                            !         /**
                                            !          * Changed update
                                            !          * @param event Document Event
                                            !          */
                                            !         void changedUpdate(DocumentEvent event);
                                              
                                            !         /**
                                            !          * Insert update
                                            !          * @param event Document Event
                                            !          */
                                            !         void insertUpdate(DocumentEvent event);
                                              
                                            !         /**
                                            !          * Remove update
                                            !          * @param event Document Event
                                            !          */
                                            !         void removeUpdate(DocumentEvent event);
                                              
                                              
                                              } // DocumentListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/EventListenerList.java gcc-4.6.0/libjava/classpath/javax/swing/event/EventListenerList.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/EventListenerList.java	Tue Oct 21 17:55:01 2008
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/EventListenerList.java	Tue Jan 11 19:46:05 2011
                                            *************** public class EventListenerList
                                            *** 107,114 ****
                                                 * have no listeners.
                                                 */
                                                private static final Object[] NO_LISTENERS = new Object[0];
                                            !   
                                            !   
                                                /**
                                                 * An array with all currently registered listeners.  The array has
                                                 * twice as many elements as there are listeners.  For an even
                                            --- 107,114 ----
                                                 * have no listeners.
                                                 */
                                                private static final Object[] NO_LISTENERS = new Object[0];
                                            ! 
                                            ! 
                                                /**
                                                 * An array with all currently registered listeners.  The array has
                                                 * twice as many elements as there are listeners.  For an even
                                            *************** public class EventListenerList
                                            *** 118,124 ****
                                                 */
                                                protected transient Object[] listenerList = NO_LISTENERS;
                                              
                                            !   
                                                /**
                                                 * EventListenerList constructor
                                                 */
                                            --- 118,124 ----
                                                 */
                                                protected transient Object[] listenerList = NO_LISTENERS;
                                              
                                            ! 
                                                /**
                                                 * EventListenerList constructor
                                                 */
                                            *************** public class EventListenerList
                                            *** 194,200 ****
                                                /**
                                                 * Returns an array containing a sequence of listenerType/listener pairs, one
                                                 * for each listener.
                                            !    * 
                                                 * @return An array containing the listener types and references.
                                                 */
                                                public Object[] getListenerList()
                                            --- 194,200 ----
                                                /**
                                                 * Returns an array containing a sequence of listenerType/listener pairs, one
                                                 * for each listener.
                                            !    *
                                                 * @return An array containing the listener types and references.
                                                 */
                                                public Object[] getListenerList()
                                            *************** public class EventListenerList
                                            *** 240,246 ****
                                                  for (int i = listenerList.length - 2; i >= 0; i -= 2)
                                                    if (listenerList[i] == c)
                                                      result[f++] = (EventListener) listenerList[i + 1];
                                            !     
                                                  return (T[]) result;
                                                }
                                              
                                            --- 240,246 ----
                                                  for (int i = listenerList.length - 2; i >= 0; i -= 2)
                                                    if (listenerList[i] == c)
                                                      result[f++] = (EventListener) listenerList[i + 1];
                                            ! 
                                                  return (T[]) result;
                                                }
                                              
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/HyperlinkEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/HyperlinkEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/HyperlinkEvent.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/HyperlinkEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** public class HyperlinkEvent extends Even
                                            *** 54,65 ****
                                                  public static final EventType ENTERED = new EventType("ENTERED"); // TODO
                                                  public static final EventType EXITED = new EventType("EXITED"); // TODO
                                                  public static final EventType ACTIVATED = new EventType("ACTIVATED"); // TODO
                                            !     
                                                  private String type;
                                              
                                                  /**
                                                   * Creates a new Event type.
                                            !      * 
                                                   * @param type String representing the event type.
                                                   */
                                                  private EventType(String type)
                                            --- 54,65 ----
                                                  public static final EventType ENTERED = new EventType("ENTERED"); // TODO
                                                  public static final EventType EXITED = new EventType("EXITED"); // TODO
                                                  public static final EventType ACTIVATED = new EventType("ACTIVATED"); // TODO
                                            ! 
                                                  private String type;
                                              
                                                  /**
                                                   * Creates a new Event type.
                                            !      *
                                                   * @param type String representing the event type.
                                                   */
                                                  private EventType(String type)
                                            *************** public class HyperlinkEvent extends Even
                                            *** 77,83 ****
                                                }
                                              
                                                private static final long serialVersionUID = -2054640811732867012L;
                                            !   
                                                private EventType type;
                                                private URL url;
                                                private String description;
                                            --- 77,83 ----
                                                }
                                              
                                                private static final long serialVersionUID = -2054640811732867012L;
                                            ! 
                                                private EventType type;
                                                private URL url;
                                                private String description;
                                            *************** public class HyperlinkEvent extends Even
                                            *** 85,91 ****
                                              
                                                /**
                                                 * Creates a new HyperlinkEvent with the given arguments.
                                            !    * 
                                                 * @param source The object this link is associated to.
                                                 * @param type The type of event.
                                                 * @param url The URL this link pointing too.
                                            --- 85,91 ----
                                              
                                                /**
                                                 * Creates a new HyperlinkEvent with the given arguments.
                                            !    *
                                                 * @param source The object this link is associated to.
                                                 * @param type The type of event.
                                                 * @param url The URL this link pointing too.
                                            *************** public class HyperlinkEvent extends Even
                                            *** 97,117 ****
                                              
                                                /**
                                                 * Creates a new HyperlinkEvent with the given arguments.
                                            !    * 
                                                 * @param source The object this link is associated to.
                                                 * @param type The type of event.
                                                 * @param url The URL this link pointing too.
                                                 * @param description The description for this link.
                                                 */
                                                public HyperlinkEvent(Object source, EventType type, URL url,
                                            ! 			String description)
                                                {
                                                  this (source, type, url, description, null);
                                                }
                                            !   
                                                /**
                                                 * Creates a new HyperlinkEvent with the given arguments.
                                            !    * 
                                                 * @param source The object this link is associated to.
                                                 * @param type The type of event.
                                                 * @param url The URL this link pointing too.
                                            --- 97,117 ----
                                              
                                                /**
                                                 * Creates a new HyperlinkEvent with the given arguments.
                                            !    *
                                                 * @param source The object this link is associated to.
                                                 * @param type The type of event.
                                                 * @param url The URL this link pointing too.
                                                 * @param description The description for this link.
                                                 */
                                                public HyperlinkEvent(Object source, EventType type, URL url,
                                            !                         String description)
                                                {
                                                  this (source, type, url, description, null);
                                                }
                                            ! 
                                                /**
                                                 * Creates a new HyperlinkEvent with the given arguments.
                                            !    *
                                                 * @param source The object this link is associated to.
                                                 * @param type The type of event.
                                                 * @param url The URL this link pointing too.
                                            *************** public class HyperlinkEvent extends Even
                                            *** 119,125 ****
                                                 * @param element The element in the document representing the anchor.
                                                 */
                                                public HyperlinkEvent(Object source, EventType type, URL url,
                                            ! 			String description, Element element)
                                                {
                                                  super(source);
                                                  this.type = type;
                                            --- 119,125 ----
                                                 * @param element The element in the document representing the anchor.
                                                 */
                                                public HyperlinkEvent(Object source, EventType type, URL url,
                                            !                         String description, Element element)
                                                {
                                                  super(source);
                                                  this.type = type;
                                            *************** public class HyperlinkEvent extends Even
                                            *** 135,141 ****
                                                {
                                                  return element;
                                                }
                                            !   
                                                /**
                                                 * Returns the URL of this event.
                                                 */
                                            --- 135,141 ----
                                                {
                                                  return element;
                                                }
                                            ! 
                                                /**
                                                 * Returns the URL of this event.
                                                 */
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/HyperlinkListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/HyperlinkListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/HyperlinkListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/HyperlinkListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 47,57 ****
                                               */
                                              public interface HyperlinkListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Hyperlink updated
                                            ! 	 * @param event Hyperlink Event
                                            ! 	 */
                                            ! 	void hyperlinkUpdate(HyperlinkEvent event);
                                              
                                              
                                              } // HyperlinkListener
                                            --- 47,57 ----
                                               */
                                              public interface HyperlinkListener extends EventListener {
                                              
                                            !         /**
                                            !          * Hyperlink updated
                                            !          * @param event Hyperlink Event
                                            !          */
                                            !         void hyperlinkUpdate(HyperlinkEvent event);
                                              
                                              
                                              } // HyperlinkListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/InternalFrameAdapter.java gcc-4.6.0/libjava/classpath/javax/swing/event/InternalFrameAdapter.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/InternalFrameAdapter.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/InternalFrameAdapter.java	Tue Jan 11 19:46:05 2011
                                            *************** public abstract class InternalFrameAdapt
                                            *** 52,58 ****
                                                {
                                                  // Nothing to do here.
                                                }
                                            ! 	
                                                /**
                                                 * Internal frame activated.
                                                 *
                                            --- 52,58 ----
                                                {
                                                  // Nothing to do here.
                                                }
                                            ! 
                                                /**
                                                 * Internal frame activated.
                                                 *
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/InternalFrameEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/InternalFrameEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/InternalFrameEvent.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/InternalFrameEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.JInternalFrame;
                                            *** 44,50 ****
                                              
                                              /**
                                               * An event that indicates a change to a {@link JInternalFrame} component.
                                            !  * 
                                               * @author Andrew Selkirk
                                               */
                                              public class InternalFrameEvent extends AWTEvent
                                            --- 44,50 ----
                                              
                                              /**
                                               * An event that indicates a change to a {@link JInternalFrame} component.
                                            !  *
                                               * @author Andrew Selkirk
                                               */
                                              public class InternalFrameEvent extends AWTEvent
                                            *************** public class InternalFrameEvent extends 
                                            *** 98,109 ****
                                              
                                                /**
                                                 * Creates a new JInternalFrameEvent instance.
                                            !    * 
                                                 * @param source  the source of this event (null not permitted).
                                                 * @param id  the event ID of this event (see the constants defined by this
                                                 *     class).
                                            !    *     
                                            !    * @throws IllegalArgumentException if source is 
                                                 *     null.
                                                 */
                                                public InternalFrameEvent(JInternalFrame source, int id)
                                            --- 98,109 ----
                                              
                                                /**
                                                 * Creates a new JInternalFrameEvent instance.
                                            !    *
                                                 * @param source  the source of this event (null not permitted).
                                                 * @param id  the event ID of this event (see the constants defined by this
                                                 *     class).
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                                 *     null.
                                                 */
                                                public InternalFrameEvent(JInternalFrame source, int id)
                                            *************** public class InternalFrameEvent extends 
                                            *** 114,136 ****
                                                /**
                                                 * Returns the JInternalFrame component that is the source for
                                                 * this event.
                                            !    * 
                                                 * @return The source.
                                            !    * 
                                                 * @since 1.3
                                                 */
                                                public JInternalFrame getInternalFrame()
                                                {
                                                  return (JInternalFrame) source;
                                                }
                                            !   
                                                /**
                                            !    * Returns a string that indicates the event id.  This is used by the 
                                                 * {@link #toString()} method.
                                            !    * 
                                                 * @return A string that indicates the event id.
                                                 */
                                            !   public String paramString() 
                                                {
                                                  switch (id) {
                                                    case INTERNAL_FRAME_ACTIVATED:
                                            --- 114,136 ----
                                                /**
                                                 * Returns the JInternalFrame component that is the source for
                                                 * this event.
                                            !    *
                                                 * @return The source.
                                            !    *
                                                 * @since 1.3
                                                 */
                                                public JInternalFrame getInternalFrame()
                                                {
                                                  return (JInternalFrame) source;
                                                }
                                            ! 
                                                /**
                                            !    * Returns a string that indicates the event id.  This is used by the
                                                 * {@link #toString()} method.
                                            !    *
                                                 * @return A string that indicates the event id.
                                                 */
                                            !   public String paramString()
                                                {
                                                  switch (id) {
                                                    case INTERNAL_FRAME_ACTIVATED:
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/InternalFrameListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/InternalFrameListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/InternalFrameListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/InternalFrameListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,92 ****
                                               */
                                              public interface InternalFrameListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Internal frame activated
                                            ! 	 * @param event Internal Frame Event
                                            ! 	 */
                                            ! 	void internalFrameActivated(InternalFrameEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Internal frame closed
                                            ! 	 * @param event Internal Frame Event
                                            ! 	 */
                                            ! 	void internalFrameClosed(InternalFrameEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Internal frame closing
                                            ! 	 * @param event Internal Frame Event
                                            ! 	 */
                                            ! 	void internalFrameClosing(InternalFrameEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Internal frame deactivated
                                            ! 	 * @param event Internal Frame Event
                                            ! 	 */
                                            ! 	void internalFrameDeactivated(InternalFrameEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Internal frame deiconified
                                            ! 	 * @param event Internal Frame Event
                                            ! 	 */
                                            ! 	void internalFrameDeiconified(InternalFrameEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Internal frame iconified
                                            ! 	 * @param event Internal Frame Event
                                            ! 	 */
                                            ! 	void internalFrameIconified(InternalFrameEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Internal frame opened
                                            ! 	 * @param event Internal Frame Event
                                            ! 	 */
                                            ! 	void internalFrameOpened(InternalFrameEvent event);
                                              
                                              
                                              } // InternalFrameListener
                                            --- 46,92 ----
                                               */
                                              public interface InternalFrameListener extends EventListener {
                                              
                                            !         /**
                                            !          * Internal frame activated
                                            !          * @param event Internal Frame Event
                                            !          */
                                            !         void internalFrameActivated(InternalFrameEvent event);
                                              
                                            !         /**
                                            !          * Internal frame closed
                                            !          * @param event Internal Frame Event
                                            !          */
                                            !         void internalFrameClosed(InternalFrameEvent event);
                                              
                                            !         /**
                                            !          * Internal frame closing
                                            !          * @param event Internal Frame Event
                                            !          */
                                            !         void internalFrameClosing(InternalFrameEvent event);
                                              
                                            !         /**
                                            !          * Internal frame deactivated
                                            !          * @param event Internal Frame Event
                                            !          */
                                            !         void internalFrameDeactivated(InternalFrameEvent event);
                                              
                                            !         /**
                                            !          * Internal frame deiconified
                                            !          * @param event Internal Frame Event
                                            !          */
                                            !         void internalFrameDeiconified(InternalFrameEvent event);
                                              
                                            !         /**
                                            !          * Internal frame iconified
                                            !          * @param event Internal Frame Event
                                            !          */
                                            !         void internalFrameIconified(InternalFrameEvent event);
                                              
                                            !         /**
                                            !          * Internal frame opened
                                            !          * @param event Internal Frame Event
                                            !          */
                                            !         void internalFrameOpened(InternalFrameEvent event);
                                              
                                              
                                              } // InternalFrameListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/ListDataEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/ListDataEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/ListDataEvent.java	Mon Aug 14 23:12:35 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/ListDataEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventObject;
                                            *** 43,82 ****
                                              /**
                                               * An event that contains information about a modification to the content of
                                               * a list.
                                            !  * 
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                              public class ListDataEvent extends EventObject
                                              {
                                                private static final long serialVersionUID = 2510353260071004774L;
                                            !   
                                                /** An event type indicating that the list content has been modified. */
                                                public static final int CONTENTS_CHANGED = 0;
                                            !   
                                                /** An event type indicating that an interval has been added to the list. */
                                                public static final int INTERVAL_ADDED = 1;
                                            !   
                                            !   /** 
                                            !    * An event type indicating that an interval has been removed from the 
                                            !    * list. 
                                                 */
                                                public static final int INTERVAL_REMOVED = 2;
                                              
                                                private int type;
                                                private int index0;
                                                private int index1;
                                            ! 	
                                                /**
                                                 * Creates a ListDataEvent object.
                                            !    * 
                                                 * @param source  the source of the event (null not permitted).
                                            !    * @param type  the type of the event (should be one of 
                                            !    *     {@link #CONTENTS_CHANGED}, {@link #INTERVAL_ADDED} or 
                                                 *     {@link #INTERVAL_REMOVED}, although this is not enforced).
                                            !    * @param index0  the index for one end of the modified range of list 
                                                 *     elements.
                                            !    * @param index1  the index for the other end of the modified range of list 
                                                 *     elements.
                                                 */
                                                public ListDataEvent(Object source, int type, int index0, int index1)
                                            --- 43,82 ----
                                              /**
                                               * An event that contains information about a modification to the content of
                                               * a list.
                                            !  *
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                              public class ListDataEvent extends EventObject
                                              {
                                                private static final long serialVersionUID = 2510353260071004774L;
                                            ! 
                                                /** An event type indicating that the list content has been modified. */
                                                public static final int CONTENTS_CHANGED = 0;
                                            ! 
                                                /** An event type indicating that an interval has been added to the list. */
                                                public static final int INTERVAL_ADDED = 1;
                                            ! 
                                            !   /**
                                            !    * An event type indicating that an interval has been removed from the
                                            !    * list.
                                                 */
                                                public static final int INTERVAL_REMOVED = 2;
                                              
                                                private int type;
                                                private int index0;
                                                private int index1;
                                            ! 
                                                /**
                                                 * Creates a ListDataEvent object.
                                            !    *
                                                 * @param source  the source of the event (null not permitted).
                                            !    * @param type  the type of the event (should be one of
                                            !    *     {@link #CONTENTS_CHANGED}, {@link #INTERVAL_ADDED} or
                                                 *     {@link #INTERVAL_REMOVED}, although this is not enforced).
                                            !    * @param index0  the index for one end of the modified range of list
                                                 *     elements.
                                            !    * @param index1  the index for the other end of the modified range of list
                                                 *     elements.
                                                 */
                                                public ListDataEvent(Object source, int type, int index0, int index1)
                                            *************** public class ListDataEvent extends Event
                                            *** 86,95 ****
                                                  this.index0 = Math.min(index0, index1);
                                                  this.index1 = Math.max(index0, index1);
                                                }
                                            ! 	
                                                /**
                                                 * Returns the index of the first item in the range of modified list items.
                                            !    * 
                                                 * @return The index of the first item in the range of modified list items.
                                                 */
                                                public int getIndex0()
                                            --- 86,95 ----
                                                  this.index0 = Math.min(index0, index1);
                                                  this.index1 = Math.max(index0, index1);
                                                }
                                            ! 
                                                /**
                                                 * Returns the index of the first item in the range of modified list items.
                                            !    *
                                                 * @return The index of the first item in the range of modified list items.
                                                 */
                                                public int getIndex0()
                                            *************** public class ListDataEvent extends Event
                                            *** 99,105 ****
                                              
                                                /**
                                                 * Returns the index of the last item in the range of modified list items.
                                            !    * 
                                                 * @return The index of the last item in the range of modified list items.
                                                 */
                                                public int getIndex1()
                                            --- 99,105 ----
                                              
                                                /**
                                                 * Returns the index of the last item in the range of modified list items.
                                            !    *
                                                 * @return The index of the last item in the range of modified list items.
                                                 */
                                                public int getIndex1()
                                            *************** public class ListDataEvent extends Event
                                            *** 109,132 ****
                                              
                                                /**
                                                 * Returns a code representing the type of this event, which is usually one
                                            !    * of {@link #CONTENTS_CHANGED}, {@link #INTERVAL_ADDED} or 
                                                 * {@link #INTERVAL_REMOVED}.
                                            !    * 
                                                 * @return The event type.
                                                 */
                                                public int getType()
                                                {
                                                  return type;
                                                }
                                            !   
                                                /**
                                                 * Returns a string representing the state of this event.
                                            !    * 
                                                 * @return A string.
                                                 */
                                                public String toString()
                                                {
                                            !     return getClass().getName() + "[type=" + type + ",index0=" + index0 
                                                      + ",index1=" + index1 + "]";
                                                }
                                              }
                                            --- 109,132 ----
                                              
                                                /**
                                                 * Returns a code representing the type of this event, which is usually one
                                            !    * of {@link #CONTENTS_CHANGED}, {@link #INTERVAL_ADDED} or
                                                 * {@link #INTERVAL_REMOVED}.
                                            !    *
                                                 * @return The event type.
                                                 */
                                                public int getType()
                                                {
                                                  return type;
                                                }
                                            ! 
                                                /**
                                                 * Returns a string representing the state of this event.
                                            !    *
                                                 * @return A string.
                                                 */
                                                public String toString()
                                                {
                                            !     return getClass().getName() + "[type=" + type + ",index0=" + index0
                                                      + ",index1=" + index1 + "]";
                                                }
                                              }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/ListDataListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/ListDataListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/ListDataListener.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/ListDataListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.ListModel;
                                            *** 44,54 ****
                                              /**
                                               * A ListDataListener can register with a {@link ListModel} and
                                               * receive notification of updates to the model.
                                            !  * 
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public interface ListDataListener extends EventListener 
                                              {
                                              
                                                /**
                                            --- 44,54 ----
                                              /**
                                               * A ListDataListener can register with a {@link ListModel} and
                                               * receive notification of updates to the model.
                                            !  *
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public interface ListDataListener extends EventListener
                                              {
                                              
                                                /**
                                            *************** public interface ListDataListener extend
                                            *** 56,62 ****
                                                 * in some way.  This method will be called if the change cannot be
                                                 * notified via the {@link #intervalAdded(ListDataEvent)} or the
                                                 * {@link #intervalRemoved(ListDataEvent)} methods.
                                            !    * 
                                                 * @param event  the event.
                                                 */
                                                void contentsChanged(ListDataEvent event);
                                            --- 56,62 ----
                                                 * in some way.  This method will be called if the change cannot be
                                                 * notified via the {@link #intervalAdded(ListDataEvent)} or the
                                                 * {@link #intervalRemoved(ListDataEvent)} methods.
                                            !    *
                                                 * @param event  the event.
                                                 */
                                                void contentsChanged(ListDataEvent event);
                                            *************** public interface ListDataListener extend
                                            *** 65,80 ****
                                                 * Notifies the listener that one or more items have been added to the
                                                 * list.  The event argument can supply the indices for the
                                                 * range of items added.
                                            !    * 
                                                 * @param event  the event.
                                                 */
                                                void intervalAdded(ListDataEvent event);
                                              
                                                /**
                                                 * Notifies the listener that one or more items have been removed from
                                            !    * the list.  The event argument can supply the indices for 
                                                 * the range of items removed.
                                            !    * 
                                                 * @param event  the event.
                                                 */
                                                void intervalRemoved(ListDataEvent event);
                                            --- 65,80 ----
                                                 * Notifies the listener that one or more items have been added to the
                                                 * list.  The event argument can supply the indices for the
                                                 * range of items added.
                                            !    *
                                                 * @param event  the event.
                                                 */
                                                void intervalAdded(ListDataEvent event);
                                              
                                                /**
                                                 * Notifies the listener that one or more items have been removed from
                                            !    * the list.  The event argument can supply the indices for
                                                 * the range of items removed.
                                            !    *
                                                 * @param event  the event.
                                                 */
                                                void intervalRemoved(ListDataEvent event);
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/ListSelectionEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/ListSelectionEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/ListSelectionEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/ListSelectionEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.ListSelectionModel;
                                            *** 45,66 ****
                                               * An event that indicates a change to a list selection, including the source
                                               * of the change (a {@link ListSelectionModel}) and the range of items in the
                                               * list that have potentially changed their selection status.
                                            !  * 
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public class ListSelectionEvent extends EventObject 
                                              {
                                              
                                            !   /** 
                                            !    * The index of the first list item in the range of items that has 
                                            !    * potentially had its selection status modified. 
                                                 */
                                                private int firstIndex = 0;
                                              
                                            !   /** 
                                            !    * The index of the last list item in the range of items that has 
                                            !    * potentially had its selection status modified. 
                                                 */
                                                private int lastIndex = 0;
                                              
                                            --- 45,66 ----
                                               * An event that indicates a change to a list selection, including the source
                                               * of the change (a {@link ListSelectionModel}) and the range of items in the
                                               * list that have potentially changed their selection status.
                                            !  *
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public class ListSelectionEvent extends EventObject
                                              {
                                              
                                            !   /**
                                            !    * The index of the first list item in the range of items that has
                                            !    * potentially had its selection status modified.
                                                 */
                                                private int firstIndex = 0;
                                              
                                            !   /**
                                            !    * The index of the last list item in the range of items that has
                                            !    * potentially had its selection status modified.
                                                 */
                                                private int lastIndex = 0;
                                              
                                            *************** public class ListSelectionEvent extends 
                                            *** 69,120 ****
                                              
                                                /**
                                                 * Creates a new ListSelectionEvent.
                                            !    * 
                                                 * @param source  the event source (null not permitted).
                                                 * @param firstIndex  the first index.
                                                 * @param lastIndex  the last index.
                                            !    * @param isAdjusting  a flag indicating that this event is one in a series 
                                                 *                     of events updating a selection.
                                            !    * 
                                            !    * @throws IllegalArgumentException if source is 
                                                 *         null.
                                                 */
                                                public ListSelectionEvent(Object source, int firstIndex,
                                            !       int lastIndex, boolean isAdjusting) 
                                                {
                                                  super(source);
                                                  this.firstIndex = firstIndex;
                                                  this.lastIndex = lastIndex;
                                                  this.isAdjusting = isAdjusting;
                                                }
                                            !  
                                                /**
                                                 * Returns the first index.
                                            !    * 
                                                 * @return The first index.
                                                 */
                                            !   public int getFirstIndex() 
                                                {
                                                  return firstIndex;
                                                }
                                              
                                                /**
                                                 * Returns the last index.
                                            !    * 
                                                 * @return The last index.
                                                 */
                                            !   public int getLastIndex() 
                                                {
                                                  return lastIndex;
                                                }
                                              
                                                /**
                                            !    * Returns the flag that indicates that this event is one in a series of 
                                                 * events updating a selection.
                                            !    * 
                                                 * @return A boolean.
                                                 */
                                            !   public boolean getValueIsAdjusting() 
                                                {
                                                  return isAdjusting;
                                                }
                                            --- 69,120 ----
                                              
                                                /**
                                                 * Creates a new ListSelectionEvent.
                                            !    *
                                                 * @param source  the event source (null not permitted).
                                                 * @param firstIndex  the first index.
                                                 * @param lastIndex  the last index.
                                            !    * @param isAdjusting  a flag indicating that this event is one in a series
                                                 *                     of events updating a selection.
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                                 *         null.
                                                 */
                                                public ListSelectionEvent(Object source, int firstIndex,
                                            !       int lastIndex, boolean isAdjusting)
                                                {
                                                  super(source);
                                                  this.firstIndex = firstIndex;
                                                  this.lastIndex = lastIndex;
                                                  this.isAdjusting = isAdjusting;
                                                }
                                            ! 
                                                /**
                                                 * Returns the first index.
                                            !    *
                                                 * @return The first index.
                                                 */
                                            !   public int getFirstIndex()
                                                {
                                                  return firstIndex;
                                                }
                                              
                                                /**
                                                 * Returns the last index.
                                            !    *
                                                 * @return The last index.
                                                 */
                                            !   public int getLastIndex()
                                                {
                                                  return lastIndex;
                                                }
                                              
                                                /**
                                            !    * Returns the flag that indicates that this event is one in a series of
                                                 * events updating a selection.
                                            !    *
                                                 * @return A boolean.
                                                 */
                                            !   public boolean getValueIsAdjusting()
                                                {
                                                  return isAdjusting;
                                                }
                                            *************** public class ListSelectionEvent extends 
                                            *** 122,134 ****
                                                /**
                                                 * Returns a string representation of the event, typically used for debugging
                                                 * purposes.
                                            !    * 
                                                 * @return A string representation of the event.
                                                 */
                                            !   public String toString() 
                                                {
                                            !     return this.getClass().toString() + "[ source=" + source.toString() 
                                            !         + " firstIndex= " + firstIndex + " lastIndex= " + lastIndex 
                                                      + " isAdjusting= " + isAdjusting + " ]";
                                                }
                                              
                                            --- 122,134 ----
                                                /**
                                                 * Returns a string representation of the event, typically used for debugging
                                                 * purposes.
                                            !    *
                                                 * @return A string representation of the event.
                                                 */
                                            !   public String toString()
                                                {
                                            !     return this.getClass().toString() + "[ source=" + source.toString()
                                            !         + " firstIndex= " + firstIndex + " lastIndex= " + lastIndex
                                                      + " isAdjusting= " + isAdjusting + " ]";
                                                }
                                              
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/ListSelectionListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/ListSelectionListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/ListSelectionListener.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/ListSelectionListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 42,61 ****
                                              import javax.swing.ListSelectionModel;
                                              
                                              /**
                                            !  * A listener that receives {@link ListSelectionEvent} notifications, 
                                               * typically from a {@link ListSelectionModel} when it is modified.
                                               *
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public interface ListSelectionListener extends EventListener 
                                              {
                                              
                                                /**
                                                 * Receives notification of a {@link ListSelectionEvent}.
                                            !    * 
                                                 * @param event  the event.
                                                 */
                                                void valueChanged(ListSelectionEvent event);
                                              
                                            ! }
                                            \ No newline at end of file
                                            --- 42,61 ----
                                              import javax.swing.ListSelectionModel;
                                              
                                              /**
                                            !  * A listener that receives {@link ListSelectionEvent} notifications,
                                               * typically from a {@link ListSelectionModel} when it is modified.
                                               *
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public interface ListSelectionListener extends EventListener
                                              {
                                              
                                                /**
                                                 * Receives notification of a {@link ListSelectionEvent}.
                                            !    *
                                                 * @param event  the event.
                                                 */
                                                void valueChanged(ListSelectionEvent event);
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/MenuDragMouseEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/MenuDragMouseEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/MenuDragMouseEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/MenuDragMouseEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.MenuSelectionManager;
                                            *** 48,61 ****
                                               * MenuDragMouseEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class MenuDragMouseEvent extends MouseEvent 
                                              {
                                              
                                                /**
                                                 * path
                                                 */
                                                private MenuElement[] path = null;
                                            ! 	
                                                /**
                                                 * manager
                                                 */
                                            --- 48,61 ----
                                               * MenuDragMouseEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class MenuDragMouseEvent extends MouseEvent
                                              {
                                              
                                                /**
                                                 * path
                                                 */
                                                private MenuElement[] path = null;
                                            ! 
                                                /**
                                                 * manager
                                                 */
                                            *************** public class MenuDragMouseEvent extends 
                                            *** 76,104 ****
                                                 */
                                                public MenuDragMouseEvent(Component source, int id, long when, int modifiers,
                                                    int x, int y, int clickCount, boolean popupTrigger,
                                            !       MenuElement[] path, MenuSelectionManager manager) 
                                                {
                                                  super(source, id, when, modifiers, x, y, clickCount, popupTrigger);
                                                  this.path = path;
                                                  this.manager = manager;
                                            !   } 
                                              
                                                /**
                                                 * Get path
                                                 * @return path
                                                 */
                                            !   public MenuElement[] getPath() 
                                                {
                                                  return path;
                                            !   } 
                                              
                                                /**
                                                 * Get menu selection manager
                                                 * @return manager
                                                 */
                                            !   public MenuSelectionManager getMenuSelectionManager() 
                                                {
                                                  return manager;
                                                }
                                              
                                            ! } 
                                            --- 76,104 ----
                                                 */
                                                public MenuDragMouseEvent(Component source, int id, long when, int modifiers,
                                                    int x, int y, int clickCount, boolean popupTrigger,
                                            !       MenuElement[] path, MenuSelectionManager manager)
                                                {
                                                  super(source, id, when, modifiers, x, y, clickCount, popupTrigger);
                                                  this.path = path;
                                                  this.manager = manager;
                                            !   }
                                              
                                                /**
                                                 * Get path
                                                 * @return path
                                                 */
                                            !   public MenuElement[] getPath()
                                                {
                                                  return path;
                                            !   }
                                              
                                                /**
                                                 * Get menu selection manager
                                                 * @return manager
                                                 */
                                            !   public MenuSelectionManager getMenuSelectionManager()
                                                {
                                                  return manager;
                                                }
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/MenuDragMouseListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/MenuDragMouseListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/MenuDragMouseListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/MenuDragMouseListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,74 ****
                                               */
                                              public interface MenuDragMouseListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Menu drag mouse dragged
                                            ! 	 * @param event Menu Drag Mouse Event
                                            ! 	 */
                                            ! 	void menuDragMouseDragged(MenuDragMouseEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Menu drag mouse entered
                                            ! 	 * @param event Menu Drag Mouse Event
                                            ! 	 */
                                            ! 	void menuDragMouseEntered(MenuDragMouseEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Menu drag mouse exited
                                            ! 	 * @param event Menu Drag Mouse Event
                                            ! 	 */
                                            ! 	void menuDragMouseExited(MenuDragMouseEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Menu drag mouse released
                                            ! 	 * @param event Menu Drag Mouse Event
                                            ! 	 */
                                            ! 	void menuDragMouseReleased(MenuDragMouseEvent event);
                                              
                                              
                                              } // MenuDragMouseListener
                                            --- 46,74 ----
                                               */
                                              public interface MenuDragMouseListener extends EventListener {
                                              
                                            !         /**
                                            !          * Menu drag mouse dragged
                                            !          * @param event Menu Drag Mouse Event
                                            !          */
                                            !         void menuDragMouseDragged(MenuDragMouseEvent event);
                                              
                                            !         /**
                                            !          * Menu drag mouse entered
                                            !          * @param event Menu Drag Mouse Event
                                            !          */
                                            !         void menuDragMouseEntered(MenuDragMouseEvent event);
                                              
                                            !         /**
                                            !          * Menu drag mouse exited
                                            !          * @param event Menu Drag Mouse Event
                                            !          */
                                            !         void menuDragMouseExited(MenuDragMouseEvent event);
                                              
                                            !         /**
                                            !          * Menu drag mouse released
                                            !          * @param event Menu Drag Mouse Event
                                            !          */
                                            !         void menuDragMouseReleased(MenuDragMouseEvent event);
                                              
                                              
                                              } // MenuDragMouseListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/MenuEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/MenuEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/MenuEvent.java	Mon Aug 14 23:12:35 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/MenuEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventObject;
                                            *** 44,57 ****
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public class MenuEvent extends EventObject 
                                              {
                                              
                                                /**
                                                 * Constructor MenuEvent
                                                 * @param source Source object
                                                 */
                                            !   public MenuEvent(Object source) 
                                                {
                                                  super(source);
                                                }
                                            --- 44,57 ----
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public class MenuEvent extends EventObject
                                              {
                                              
                                                /**
                                                 * Constructor MenuEvent
                                                 * @param source Source object
                                                 */
                                            !   public MenuEvent(Object source)
                                                {
                                                  super(source);
                                                }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/MenuKeyEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/MenuKeyEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/MenuKeyEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/MenuKeyEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.MenuSelectionManager;
                                            *** 48,61 ****
                                               * MenuKeyEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class MenuKeyEvent extends KeyEvent 
                                              {
                                              
                                                /**
                                                 * path
                                                 */
                                                private MenuElement[] path = null;
                                            ! 	
                                                /**
                                                 * manager
                                                 */
                                            --- 48,61 ----
                                               * MenuKeyEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class MenuKeyEvent extends KeyEvent
                                              {
                                              
                                                /**
                                                 * path
                                                 */
                                                private MenuElement[] path = null;
                                            ! 
                                                /**
                                                 * manager
                                                 */
                                            *************** public class MenuKeyEvent extends KeyEve
                                            *** 74,91 ****
                                                 */
                                                public MenuKeyEvent(Component source, int id, long when, int modifiers,
                                                    int keyCode, char keyChar, MenuElement[] path,
                                            !       MenuSelectionManager manager) 
                                                {
                                                  super(source, id, when, modifiers, keyCode, keyChar);
                                                  this.path = path;
                                                  this.manager = manager;
                                            !   } 
                                              
                                                /**
                                                 * getPath
                                                 * @return path
                                                 */
                                            !   public MenuElement[] getPath() 
                                                {
                                                  return path;
                                                }
                                            --- 74,91 ----
                                                 */
                                                public MenuKeyEvent(Component source, int id, long when, int modifiers,
                                                    int keyCode, char keyChar, MenuElement[] path,
                                            !       MenuSelectionManager manager)
                                                {
                                                  super(source, id, when, modifiers, keyCode, keyChar);
                                                  this.path = path;
                                                  this.manager = manager;
                                            !   }
                                              
                                                /**
                                                 * getPath
                                                 * @return path
                                                 */
                                            !   public MenuElement[] getPath()
                                                {
                                                  return path;
                                                }
                                            *************** public class MenuKeyEvent extends KeyEve
                                            *** 94,102 ****
                                                 * getMenuSelectionManager
                                                 * @return MenuSelectionManager
                                                 */
                                            !   public MenuSelectionManager getMenuSelectionManager() 
                                                {
                                                  return manager;
                                                }
                                              
                                            ! } 
                                            --- 94,102 ----
                                                 * getMenuSelectionManager
                                                 * @return MenuSelectionManager
                                                 */
                                            !   public MenuSelectionManager getMenuSelectionManager()
                                                {
                                                  return manager;
                                                }
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/MenuKeyListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/MenuKeyListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/MenuKeyListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/MenuKeyListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,68 ****
                                               */
                                              public interface MenuKeyListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Menu key pressed
                                            ! 	 * @param event Menu Key Event
                                            ! 	 */
                                            ! 	void menuKeyPressed(MenuKeyEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Menu key released
                                            ! 	 * @param event Menu Key Event
                                            ! 	 */
                                            ! 	void menuKeyReleased(MenuKeyEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Menu key typed
                                            ! 	 * @param event Menu Key Event
                                            ! 	 */
                                            ! 	void menuKeyTyped(MenuKeyEvent event);
                                              
                                              
                                              } // MenuKeyListener
                                            --- 46,68 ----
                                               */
                                              public interface MenuKeyListener extends EventListener {
                                              
                                            !         /**
                                            !          * Menu key pressed
                                            !          * @param event Menu Key Event
                                            !          */
                                            !         void menuKeyPressed(MenuKeyEvent event);
                                              
                                            !         /**
                                            !          * Menu key released
                                            !          * @param event Menu Key Event
                                            !          */
                                            !         void menuKeyReleased(MenuKeyEvent event);
                                              
                                            !         /**
                                            !          * Menu key typed
                                            !          * @param event Menu Key Event
                                            !          */
                                            !         void menuKeyTyped(MenuKeyEvent event);
                                              
                                              
                                              } // MenuKeyListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/MenuListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/MenuListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/MenuListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/MenuListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,68 ****
                                               */
                                              public interface MenuListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Menu canceled
                                            ! 	 * @param event Menu Event
                                            ! 	 */
                                            ! 	void menuCanceled(MenuEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Menu deselected
                                            ! 	 * @param event Menu Event
                                            ! 	 */
                                            ! 	void menuDeselected(MenuEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Menu selected
                                            ! 	 * @param event Menu Event
                                            ! 	 */
                                            ! 	void menuSelected(MenuEvent event);
                                              
                                              
                                              } // MenuListener
                                            --- 46,68 ----
                                               */
                                              public interface MenuListener extends EventListener {
                                              
                                            !         /**
                                            !          * Menu canceled
                                            !          * @param event Menu Event
                                            !          */
                                            !         void menuCanceled(MenuEvent event);
                                              
                                            !         /**
                                            !          * Menu deselected
                                            !          * @param event Menu Event
                                            !          */
                                            !         void menuDeselected(MenuEvent event);
                                              
                                            !         /**
                                            !          * Menu selected
                                            !          * @param event Menu Event
                                            !          */
                                            !         void menuSelected(MenuEvent event);
                                              
                                              
                                              } // MenuListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/MouseInputListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/MouseInputListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/MouseInputListener.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/MouseInputListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.awt.event.MouseMotionListene
                                            *** 46,52 ****
                                               * @author Andrew Selkirk
                                               */
                                              public interface MouseInputListener extends MouseListener,
                                            ! 											MouseMotionListener
                                              {
                                                // This interface only pulls together MouseListener and MouseMotionListener
                                                // without adding any methods on its own.
                                            --- 46,52 ----
                                               * @author Andrew Selkirk
                                               */
                                              public interface MouseInputListener extends MouseListener,
                                            !                                                                                         MouseMotionListener
                                              {
                                                // This interface only pulls together MouseListener and MouseMotionListener
                                                // without adding any methods on its own.
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/PopupMenuEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/PopupMenuEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/PopupMenuEvent.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/PopupMenuEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventObject;
                                            *** 46,58 ****
                                               */
                                              public class PopupMenuEvent extends EventObject {
                                              
                                            ! 	/**
                                            ! 	 * Constructor PopupMenuEvent
                                            ! 	 * @param source Source
                                            ! 	 */
                                            ! 	public PopupMenuEvent(Object source) {
                                            ! 		super(source);
                                            ! 	} // PopupMenuEvent()
                                              
                                              
                                              } // PopupMenuEvent
                                            --- 46,58 ----
                                               */
                                              public class PopupMenuEvent extends EventObject {
                                              
                                            !         /**
                                            !          * Constructor PopupMenuEvent
                                            !          * @param source Source
                                            !          */
                                            !         public PopupMenuEvent(Object source) {
                                            !                 super(source);
                                            !         } // PopupMenuEvent()
                                              
                                              
                                              } // PopupMenuEvent
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/PopupMenuListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/PopupMenuListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/PopupMenuListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/PopupMenuListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,68 ****
                                               */
                                              public interface PopupMenuListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Popup Menu Canceled
                                            ! 	 * @param event Popup Menu Event
                                            ! 	 */
                                            ! 	void popupMenuCanceled(PopupMenuEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Popup Menu will become invisible
                                            ! 	 * @param event Popup Menu Event
                                            ! 	 */
                                            ! 	void popupMenuWillBecomeInvisible(PopupMenuEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Popup Menu will become visible
                                            ! 	 * @param event Popup Menu Event
                                            ! 	 */
                                            ! 	void popupMenuWillBecomeVisible(PopupMenuEvent event);
                                              
                                              
                                              } // PopupMenuListener
                                            --- 46,68 ----
                                               */
                                              public interface PopupMenuListener extends EventListener {
                                              
                                            !         /**
                                            !          * Popup Menu Canceled
                                            !          * @param event Popup Menu Event
                                            !          */
                                            !         void popupMenuCanceled(PopupMenuEvent event);
                                              
                                            !         /**
                                            !          * Popup Menu will become invisible
                                            !          * @param event Popup Menu Event
                                            !          */
                                            !         void popupMenuWillBecomeInvisible(PopupMenuEvent event);
                                              
                                            !         /**
                                            !          * Popup Menu will become visible
                                            !          * @param event Popup Menu Event
                                            !          */
                                            !         void popupMenuWillBecomeVisible(PopupMenuEvent event);
                                              
                                              
                                              } // PopupMenuListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/SwingPropertyChangeSupport.java gcc-4.6.0/libjava/classpath/javax/swing/event/SwingPropertyChangeSupport.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/SwingPropertyChangeSupport.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/SwingPropertyChangeSupport.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.beans.PropertyChangeSupport;
                                            *** 51,69 ****
                                               * @author Andrew Selkirk
                                               */
                                              public final class SwingPropertyChangeSupport
                                            !   extends PropertyChangeSupport 
                                              {
                                              
                                                private static final long serialVersionUID = 7162625831330845068L;
                                              
                                                /**
                                                 * Creates a new instance.
                                            !    * 
                                                 * @param source  the source (null not permitted).
                                            !    * 
                                                 * @throws NullPointerException if source is null.
                                                 */
                                            !   public SwingPropertyChangeSupport(Object source) 
                                                {
                                                  super(source);
                                                }
                                            --- 51,69 ----
                                               * @author Andrew Selkirk
                                               */
                                              public final class SwingPropertyChangeSupport
                                            !   extends PropertyChangeSupport
                                              {
                                              
                                                private static final long serialVersionUID = 7162625831330845068L;
                                              
                                                /**
                                                 * Creates a new instance.
                                            !    *
                                                 * @param source  the source (null not permitted).
                                            !    *
                                                 * @throws NullPointerException if source is null.
                                                 */
                                            !   public SwingPropertyChangeSupport(Object source)
                                                {
                                                  super(source);
                                                }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TableColumnModelEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/TableColumnModelEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TableColumnModelEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TableColumnModelEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.table.TableColumnMode
                                            *** 46,52 ****
                                               * TableColumnModelEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class TableColumnModelEvent extends EventObject 
                                              {
                                              
                                                /**
                                            --- 46,52 ----
                                               * TableColumnModelEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class TableColumnModelEvent extends EventObject
                                              {
                                              
                                                /**
                                            *************** public class TableColumnModelEvent exten
                                            *** 65,71 ****
                                                 * @param from From index
                                                 * @param to To index
                                                 */
                                            !   public TableColumnModelEvent(TableColumnModel source, int from, int to) 
                                                {
                                                  super(source);
                                                  fromIndex = from;
                                            --- 65,71 ----
                                                 * @param from From index
                                                 * @param to To index
                                                 */
                                            !   public TableColumnModelEvent(TableColumnModel source, int from, int to)
                                                {
                                                  super(source);
                                                  fromIndex = from;
                                            *************** public class TableColumnModelEvent exten
                                            *** 76,93 ****
                                                 * getFromIndex.
                                                 * @return From index
                                                 */
                                            !   public int getFromIndex() 
                                                {
                                                  return fromIndex;
                                            !   } 
                                              
                                                /**
                                            !    * getToIndex. 
                                                 * @return To index
                                                 */
                                            !   public int getToIndex() 
                                                {
                                                  return toIndex;
                                                }
                                              
                                            ! }
                                            \ No newline at end of file
                                            --- 76,93 ----
                                                 * getFromIndex.
                                                 * @return From index
                                                 */
                                            !   public int getFromIndex()
                                                {
                                                  return fromIndex;
                                            !   }
                                              
                                                /**
                                            !    * getToIndex.
                                                 * @return To index
                                                 */
                                            !   public int getToIndex()
                                                {
                                                  return toIndex;
                                                }
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TableColumnModelListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/TableColumnModelListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TableColumnModelListener.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TableColumnModelListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.table.TableColumnMode
                                            *** 44,68 ****
                                              /**
                                               * A TableColumnModelListener can register with a
                                               * {@link TableColumnModel} to receive notification of changes to the model.
                                            !  * 
                                               * @author Andrew Selkirk
                                               */
                                            ! public interface TableColumnModelListener 
                                            !   extends EventListener 
                                              {
                                              
                                                /**
                                                 * Called by the {@link TableColumnModel} to indicate that a column has been
                                                 * added to the model.
                                            !    * 
                                                 * @param event  information about the column addition.
                                                 */
                                                void columnAdded(TableColumnModelEvent event);
                                              
                                                /**
                                            !    * Called by the {@link TableColumnModel} to indicate that the model's 
                                                 * column margin has changed.
                                            !    * 
                                                 * @param event  the event (identifies the source).
                                                 */
                                                void columnMarginChanged(ChangeEvent event);
                                            --- 44,68 ----
                                              /**
                                               * A TableColumnModelListener can register with a
                                               * {@link TableColumnModel} to receive notification of changes to the model.
                                            !  *
                                               * @author Andrew Selkirk
                                               */
                                            ! public interface TableColumnModelListener
                                            !   extends EventListener
                                              {
                                              
                                                /**
                                                 * Called by the {@link TableColumnModel} to indicate that a column has been
                                                 * added to the model.
                                            !    *
                                                 * @param event  information about the column addition.
                                                 */
                                                void columnAdded(TableColumnModelEvent event);
                                              
                                                /**
                                            !    * Called by the {@link TableColumnModel} to indicate that the model's
                                                 * column margin has changed.
                                            !    *
                                                 * @param event  the event (identifies the source).
                                                 */
                                                void columnMarginChanged(ChangeEvent event);
                                            *************** public interface TableColumnModelListene
                                            *** 70,76 ****
                                                /**
                                                 * Called by the {@link TableColumnModel} to indicate that a column has been
                                                 * moved.
                                            !    * 
                                                 * @param event  information about the column move.
                                                 */
                                                void columnMoved(TableColumnModelEvent event);
                                            --- 70,76 ----
                                                /**
                                                 * Called by the {@link TableColumnModel} to indicate that a column has been
                                                 * moved.
                                            !    *
                                                 * @param event  information about the column move.
                                                 */
                                                void columnMoved(TableColumnModelEvent event);
                                            *************** public interface TableColumnModelListene
                                            *** 78,92 ****
                                                /**
                                                 * Called by the {@link TableColumnModel} to indicate that a column has been
                                                 * removed from the model.
                                            !    * 
                                                 * @param event  information about the column removal.
                                                 */
                                                void columnRemoved(TableColumnModelEvent event);
                                              
                                                /**
                                            !    * Called by the {@link TableColumnModel} to indicate that the column 
                                                 * selection state has changed.
                                            !    * 
                                                 * @param event  information about the column selection state.
                                                 */
                                                void columnSelectionChanged(ListSelectionEvent event);
                                            --- 78,92 ----
                                                /**
                                                 * Called by the {@link TableColumnModel} to indicate that a column has been
                                                 * removed from the model.
                                            !    *
                                                 * @param event  information about the column removal.
                                                 */
                                                void columnRemoved(TableColumnModelEvent event);
                                              
                                                /**
                                            !    * Called by the {@link TableColumnModel} to indicate that the column
                                                 * selection state has changed.
                                            !    *
                                                 * @param event  information about the column selection state.
                                                 */
                                                void columnSelectionChanged(ListSelectionEvent event);
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TableModelEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/TableModelEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TableModelEvent.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TableModelEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.table.TableModel;
                                            *** 44,101 ****
                                              
                                              /**
                                               * An event that describes changes to a {@link TableModel}.
                                            !  * 
                                               * @see javax.swing.event.TableModelListener
                                            !  * 
                                               * @author Andrew Selkirk
                                               */
                                              public class TableModelEvent extends EventObject
                                              {
                                                private static final long serialVersionUID = -7849342674552212824L;
                                            !   
                                                /** A column index representing all columns. */
                                                public static final int ALL_COLUMNS = -1;
                                            !   
                                            !   /** 
                                            !    * An event type indicating that one or more rows have been deleted from the 
                                            !    * model. 
                                                 */
                                                public static final int DELETE = -1;
                                            !   
                                                /** A row index representing the header row. */
                                                public static final int HEADER_ROW = -1;
                                            !   
                                            !   /** 
                                            !    * An event type indicating that one or more rows have been inserted into the 
                                            !    * model. 
                                                 */
                                                public static final int INSERT = 1;
                                            !   
                                                /** An event type indicating that data has been updated in the model. */
                                                public static final int UPDATE = 0;
                                              
                                                /** The column in the table model that the event relates to. */
                                                protected int column = 0;
                                            !   
                                                /** The first row in the table model that the event relates to. */
                                                protected int firstRow = 0;
                                            !   
                                                /** The last row in the table model that the event relates to. */
                                                protected int lastRow = 0;
                                            !   
                                            !   /** 
                                            !    * The event type (one of {@link #UPDATE}, {@link #INSERT}, {@link #DELETE}). 
                                                 */
                                                protected int type = 0;
                                              
                                                /**
                                            !    * Creates a new TableModelEvent indicating an {@link #UPDATE} 
                                                 * to the data in all columns and rows.
                                            !    * 
                                                 * @param source  the source object (null not permitted).
                                            !    * 
                                            !    * @throws IllegalArgumentException if source is 
                                            !    *         null. 
                                                 */
                                                public TableModelEvent(TableModel source)
                                                {
                                            --- 44,101 ----
                                              
                                              /**
                                               * An event that describes changes to a {@link TableModel}.
                                            !  *
                                               * @see javax.swing.event.TableModelListener
                                            !  *
                                               * @author Andrew Selkirk
                                               */
                                              public class TableModelEvent extends EventObject
                                              {
                                                private static final long serialVersionUID = -7849342674552212824L;
                                            ! 
                                                /** A column index representing all columns. */
                                                public static final int ALL_COLUMNS = -1;
                                            ! 
                                            !   /**
                                            !    * An event type indicating that one or more rows have been deleted from the
                                            !    * model.
                                                 */
                                                public static final int DELETE = -1;
                                            ! 
                                                /** A row index representing the header row. */
                                                public static final int HEADER_ROW = -1;
                                            ! 
                                            !   /**
                                            !    * An event type indicating that one or more rows have been inserted into the
                                            !    * model.
                                                 */
                                                public static final int INSERT = 1;
                                            ! 
                                                /** An event type indicating that data has been updated in the model. */
                                                public static final int UPDATE = 0;
                                              
                                                /** The column in the table model that the event relates to. */
                                                protected int column = 0;
                                            ! 
                                                /** The first row in the table model that the event relates to. */
                                                protected int firstRow = 0;
                                            ! 
                                                /** The last row in the table model that the event relates to. */
                                                protected int lastRow = 0;
                                            ! 
                                            !   /**
                                            !    * The event type (one of {@link #UPDATE}, {@link #INSERT}, {@link #DELETE}).
                                                 */
                                                protected int type = 0;
                                              
                                                /**
                                            !    * Creates a new TableModelEvent indicating an {@link #UPDATE}
                                                 * to the data in all columns and rows.
                                            !    *
                                                 * @param source  the source object (null not permitted).
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                            !    *         null.
                                                 */
                                                public TableModelEvent(TableModel source)
                                                {
                                            *************** public class TableModelEvent extends Eve
                                            *** 105,115 ****
                                                /**
                                                 * Creates a new TableModelEvent indicating an {@link #UPDATE}
                                                 * to the data in a single row across all columns.
                                            !    * 
                                                 * @param source  the source object (null not permitted).
                                                 * @param row  the updated row.
                                            !    * 
                                            !    * @throws IllegalArgumentException if source is 
                                                 *         null.
                                                 */
                                                public TableModelEvent(TableModel source, int row)
                                            --- 105,115 ----
                                                /**
                                                 * Creates a new TableModelEvent indicating an {@link #UPDATE}
                                                 * to the data in a single row across all columns.
                                            !    *
                                                 * @param source  the source object (null not permitted).
                                                 * @param row  the updated row.
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                                 *         null.
                                                 */
                                                public TableModelEvent(TableModel source, int row)
                                            *************** public class TableModelEvent extends Eve
                                            *** 120,131 ****
                                                /**
                                                 * Creates a new TableModelEvent indicating an {@link #UPDATE}
                                                 * to the data in the specified rows across all columns.
                                            !    * 
                                                 * @param source  the source object (null not permitted).
                                                 * @param firstRow  the first row of update.
                                                 * @param lastRow  the last row of update.
                                            !    * 
                                            !    * @throws IllegalArgumentException if source is 
                                                 *         null.
                                                 */
                                                public TableModelEvent(TableModel source, int firstRow, int lastRow)
                                            --- 120,131 ----
                                                /**
                                                 * Creates a new TableModelEvent indicating an {@link #UPDATE}
                                                 * to the data in the specified rows across all columns.
                                            !    *
                                                 * @param source  the source object (null not permitted).
                                                 * @param firstRow  the first row of update.
                                                 * @param lastRow  the last row of update.
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                                 *         null.
                                                 */
                                                public TableModelEvent(TableModel source, int firstRow, int lastRow)
                                            *************** public class TableModelEvent extends Eve
                                            *** 135,152 ****
                                              
                                                /**
                                                 * Creates a new TableModelEvent indicating an {@link #UPDATE}
                                            !    * to the data in the specified rows and column.  Use {@link #ALL_COLUMNS} 
                                                 * for the column argument to indicate all columns.
                                            !    * 
                                                 * @param source  the source object (null not permitted).
                                                 * @param firstRow  the first row of update.
                                                 * @param lastRow  the last row of update.
                                                 * @param column  the affected column.
                                            !    *    
                                            !    * @throws IllegalArgumentException if source is 
                                                 *         null.
                                                 */
                                            !   public TableModelEvent(TableModel source, int firstRow, int lastRow, 
                                                                       int column)
                                                {
                                                  this(source, firstRow, lastRow, column, UPDATE);
                                            --- 135,152 ----
                                              
                                                /**
                                                 * Creates a new TableModelEvent indicating an {@link #UPDATE}
                                            !    * to the data in the specified rows and column.  Use {@link #ALL_COLUMNS}
                                                 * for the column argument to indicate all columns.
                                            !    *
                                                 * @param source  the source object (null not permitted).
                                                 * @param firstRow  the first row of update.
                                                 * @param lastRow  the last row of update.
                                                 * @param column  the affected column.
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                                 *         null.
                                                 */
                                            !   public TableModelEvent(TableModel source, int firstRow, int lastRow,
                                                                       int column)
                                                {
                                                  this(source, firstRow, lastRow, column, UPDATE);
                                            *************** public class TableModelEvent extends Eve
                                            *** 157,173 ****
                                                 * the specified type on the data in the specified rows and
                                                 * column.  The event type is usually one of {@link #UPDATE}, {@link #INSERT},
                                                 * and {@link #DELETE}.
                                            !    * 
                                                 * @param source  the source object (null not permitted).
                                                 * @param firstRow  the first row of update.
                                                 * @param lastRow  the last row of update.
                                                 * @param column  the affected column.
                                                 * @param type  the type of change.
                                            !    * 
                                            !    * @throws IllegalArgumentException if source is 
                                                 *         null.
                                                 */
                                            !   public TableModelEvent(TableModel source, int firstRow, int lastRow, 
                                                                       int column, int type)
                                                {
                                                  super(source);
                                            --- 157,173 ----
                                                 * the specified type on the data in the specified rows and
                                                 * column.  The event type is usually one of {@link #UPDATE}, {@link #INSERT},
                                                 * and {@link #DELETE}.
                                            !    *
                                                 * @param source  the source object (null not permitted).
                                                 * @param firstRow  the first row of update.
                                                 * @param lastRow  the last row of update.
                                                 * @param column  the affected column.
                                                 * @param type  the type of change.
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                                 *         null.
                                                 */
                                            !   public TableModelEvent(TableModel source, int firstRow, int lastRow,
                                                                       int column, int type)
                                                {
                                                  super(source);
                                            *************** public class TableModelEvent extends Eve
                                            *** 179,185 ****
                                              
                                                /**
                                                 * Returns the affected column of this event.
                                            !    * 
                                                 * @return The column index.
                                                 */
                                                public int getColumn()
                                            --- 179,185 ----
                                              
                                                /**
                                                 * Returns the affected column of this event.
                                            !    *
                                                 * @return The column index.
                                                 */
                                                public int getColumn()
                                            *************** public class TableModelEvent extends Eve
                                            *** 189,195 ****
                                              
                                                /**
                                                 * Returns the first affected row of this event.
                                            !    * 
                                                 * @return The row index.
                                                 */
                                                public int getFirstRow()
                                            --- 189,195 ----
                                              
                                                /**
                                                 * Returns the first affected row of this event.
                                            !    *
                                                 * @return The row index.
                                                 */
                                                public int getFirstRow()
                                            *************** public class TableModelEvent extends Eve
                                            *** 199,205 ****
                                              
                                                /**
                                                 * Returns the last affected row of this event.
                                            !    * 
                                                 * @return The row index.
                                                 */
                                                public int getLastRow()
                                            --- 199,205 ----
                                              
                                                /**
                                                 * Returns the last affected row of this event.
                                            !    *
                                                 * @return The row index.
                                                 */
                                                public int getLastRow()
                                            *************** public class TableModelEvent extends Eve
                                            *** 208,216 ****
                                                }
                                              
                                                /**
                                            !    * Returns the type of change indicated by this event (usually one of 
                                                 * {@link #UPDATE}, {@link #INSERT}, {@link #DELETE}).
                                            !    * 
                                                 * @return The type.
                                                 */
                                                public int getType()
                                            --- 208,216 ----
                                                }
                                              
                                                /**
                                            !    * Returns the type of change indicated by this event (usually one of
                                                 * {@link #UPDATE}, {@link #INSERT}, {@link #DELETE}).
                                            !    *
                                                 * @return The type.
                                                 */
                                                public int getType()
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TableModelListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/TableModelListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TableModelListener.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TableModelListener.java	Tue Jan 11 19:46:05 2011
                                            *************** package javax.swing.event;
                                            *** 40,60 ****
                                              import java.util.EventListener;
                                              
                                              /**
                                            !  * A TableModelListener can register with a 
                                               * {@link javax.swing.table.TableModel} and receive notification of updates to
                                               * the model.
                                            !  * 
                                               * @author Andrew Selkirk
                                               */
                                            ! public interface TableModelListener extends EventListener 
                                              {
                                              
                                                /**
                                            !    * Called to notify the listener that the 
                                                 * {@link javax.swing.table.TableModel} has been updated.
                                            !    * 
                                                 * @param event  contains details of the update.
                                                 */
                                                void tableChanged(TableModelEvent event);
                                              
                                            ! } 
                                            --- 40,60 ----
                                              import java.util.EventListener;
                                              
                                              /**
                                            !  * A TableModelListener can register with a
                                               * {@link javax.swing.table.TableModel} and receive notification of updates to
                                               * the model.
                                            !  *
                                               * @author Andrew Selkirk
                                               */
                                            ! public interface TableModelListener extends EventListener
                                              {
                                              
                                                /**
                                            !    * Called to notify the listener that the
                                                 * {@link javax.swing.table.TableModel} has been updated.
                                            !    *
                                                 * @param event  contains details of the update.
                                                 */
                                                void tableChanged(TableModelEvent event);
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TreeExpansionEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/TreeExpansionEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TreeExpansionEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TreeExpansionEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.tree.TreePath;
                                            *** 46,52 ****
                                               * TreeExpansionEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class TreeExpansionEvent extends EventObject 
                                              {
                                              
                                                /**
                                            --- 46,52 ----
                                               * TreeExpansionEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class TreeExpansionEvent extends EventObject
                                              {
                                              
                                                /**
                                            *************** public class TreeExpansionEvent extends 
                                            *** 59,65 ****
                                                 * @param source Source object
                                                 * @param path Path
                                                 */
                                            !   public TreeExpansionEvent(Object source, TreePath path) 
                                                {
                                                  super(source);
                                                  this.path = path;
                                            --- 59,65 ----
                                                 * @param source Source object
                                                 * @param path Path
                                                 */
                                            !   public TreeExpansionEvent(Object source, TreePath path)
                                                {
                                                  super(source);
                                                  this.path = path;
                                            *************** public class TreeExpansionEvent extends 
                                            *** 69,77 ****
                                                 * getPath
                                                 * @return Tree path
                                                 */
                                            !   public TreePath getPath() 
                                                {
                                                  return path;
                                            !   } 
                                              
                                            ! } 
                                            --- 69,77 ----
                                                 * getPath
                                                 * @return Tree path
                                                 */
                                            !   public TreePath getPath()
                                                {
                                                  return path;
                                            !   }
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TreeExpansionListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/TreeExpansionListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TreeExpansionListener.java	Mon Aug 14 23:12:35 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TreeExpansionListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 43,49 ****
                                               * TreeExpansionListener public interface
                                               * @author Andrew Selkirk
                                               */
                                            ! public interface TreeExpansionListener extends EventListener 
                                              {
                                              
                                                /**
                                            --- 43,49 ----
                                               * TreeExpansionListener public interface
                                               * @author Andrew Selkirk
                                               */
                                            ! public interface TreeExpansionListener extends EventListener
                                              {
                                              
                                                /**
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TreeModelEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/TreeModelEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TreeModelEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TreeModelEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.tree.TreePath;
                                            *** 46,52 ****
                                               * TreeModelEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class TreeModelEvent extends EventObject 
                                              {
                                              
                                                /**
                                            --- 46,52 ----
                                               * TreeModelEvent
                                               * @author Andrew Selkirk
                                               */
                                            ! public class TreeModelEvent extends EventObject
                                              {
                                              
                                                /**
                                            *************** public class TreeModelEvent extends Even
                                            *** 63,79 ****
                                                 * path
                                                 */
                                                protected TreePath path = null;
                                            ! 	
                                                /**
                                                 * Constructor TreeModelEvent
                                                 * @param source Source object
                                                 * @param path
                                                 */
                                            !   public TreeModelEvent(Object source, Object[] path) 
                                                {
                                                  super(source);
                                                  this.path = new TreePath(path);
                                            !   } 
                                              
                                                /**
                                                 * Constructor TreeModelEvent
                                            --- 63,79 ----
                                                 * path
                                                 */
                                                protected TreePath path = null;
                                            ! 
                                                /**
                                                 * Constructor TreeModelEvent
                                                 * @param source Source object
                                                 * @param path
                                                 */
                                            !   public TreeModelEvent(Object source, Object[] path)
                                                {
                                                  super(source);
                                                  this.path = new TreePath(path);
                                            !   }
                                              
                                                /**
                                                 * Constructor TreeModelEvent
                                            *************** public class TreeModelEvent extends Even
                                            *** 83,106 ****
                                                 * @param children Children
                                                 */
                                                public TreeModelEvent(Object source, Object[] path,
                                            !       int[] childIndices, Object[] children) 
                                                {
                                                  super(source);
                                                  this.path = new TreePath(path);
                                                  this.childIndices = childIndices;
                                                  this.children = children;
                                            !   } 
                                              
                                                /**
                                                 * Constructor TreeModelEvent
                                                 * @param source Source object
                                                 * @param path Path
                                                 */
                                            !   public TreeModelEvent(Object source, TreePath path) 
                                                {
                                                  super(source);
                                                  this.path = path;
                                            !   } 
                                              
                                                /**
                                                 * Constructor TreeModelEvent
                                            --- 83,106 ----
                                                 * @param children Children
                                                 */
                                                public TreeModelEvent(Object source, Object[] path,
                                            !       int[] childIndices, Object[] children)
                                                {
                                                  super(source);
                                                  this.path = new TreePath(path);
                                                  this.childIndices = childIndices;
                                                  this.children = children;
                                            !   }
                                              
                                                /**
                                                 * Constructor TreeModelEvent
                                                 * @param source Source object
                                                 * @param path Path
                                                 */
                                            !   public TreeModelEvent(Object source, TreePath path)
                                                {
                                                  super(source);
                                                  this.path = path;
                                            !   }
                                              
                                                /**
                                                 * Constructor TreeModelEvent
                                            *************** public class TreeModelEvent extends Even
                                            *** 110,168 ****
                                                 * @param children Children
                                                 */
                                                public TreeModelEvent(Object source, TreePath path,
                                            !       int[] childIndices, Object[] children) 
                                                {
                                                  super(source);
                                                  this.path = path;
                                                  this.childIndices = childIndices;
                                                  this.children = children;
                                            !   } 
                                              
                                                /**
                                                 * getChildIndices
                                                 * @return child indices
                                                 */
                                            !   public int[] getChildIndices()  
                                                {
                                                  return childIndices;
                                            !   } 
                                              
                                                /**
                                                 * getChildren
                                                 * @return children
                                                 */
                                            !   public Object[] getChildren()  
                                                {
                                                  return children;
                                            !   } 
                                              
                                                /**
                                                 * getPath
                                                 * @return path
                                                 */
                                            !   public Object[] getPath() 
                                                {
                                                  return path.getPath();
                                            !   } 
                                              
                                                /**
                                                 * getTreePath
                                                 * @return TreePath
                                                 */
                                            !   public TreePath getTreePath() 
                                                {
                                                  return path;
                                            !   } 
                                              
                                            !   /**  
                                                 * String representation
                                                 * @return String representation
                                                 */
                                            !   public String toString() 
                                                {
                                            !     return getClass() + " [Source: " + getSource() + ", TreePath: " 
                                            !         + getTreePath() + ", Child Indicies: " + getChildIndices() 
                                                      + ", Children: " + getChildren() + ", Path: " + getPath() +"]";
                                            !   } 
                                              
                                            ! } 
                                            --- 110,168 ----
                                                 * @param children Children
                                                 */
                                                public TreeModelEvent(Object source, TreePath path,
                                            !       int[] childIndices, Object[] children)
                                                {
                                                  super(source);
                                                  this.path = path;
                                                  this.childIndices = childIndices;
                                                  this.children = children;
                                            !   }
                                              
                                                /**
                                                 * getChildIndices
                                                 * @return child indices
                                                 */
                                            !   public int[] getChildIndices()
                                                {
                                                  return childIndices;
                                            !   }
                                              
                                                /**
                                                 * getChildren
                                                 * @return children
                                                 */
                                            !   public Object[] getChildren()
                                                {
                                                  return children;
                                            !   }
                                              
                                                /**
                                                 * getPath
                                                 * @return path
                                                 */
                                            !   public Object[] getPath()
                                                {
                                                  return path.getPath();
                                            !   }
                                              
                                                /**
                                                 * getTreePath
                                                 * @return TreePath
                                                 */
                                            !   public TreePath getTreePath()
                                                {
                                                  return path;
                                            !   }
                                              
                                            !   /**
                                                 * String representation
                                                 * @return String representation
                                                 */
                                            !   public String toString()
                                                {
                                            !     return getClass() + " [Source: " + getSource() + ", TreePath: "
                                            !         + getTreePath() + ", Child Indicies: " + getChildIndices()
                                                      + ", Children: " + getChildren() + ", Path: " + getPath() +"]";
                                            !   }
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TreeModelListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/TreeModelListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TreeModelListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TreeModelListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.util.EventListener;
                                            *** 46,74 ****
                                               */
                                              public interface TreeModelListener extends EventListener {
                                              
                                            ! 	/**
                                            ! 	 * Tree nodes changed
                                            ! 	 * @param event Tree Model Event
                                            ! 	 */
                                            ! 	void treeNodesChanged(TreeModelEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Tree nodes inserted
                                            ! 	 * @param event Tree Model Event
                                            ! 	 */
                                            ! 	void treeNodesInserted(TreeModelEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Tree nodes removed
                                            ! 	 * @param event Tree Model Event
                                            ! 	 */
                                            ! 	void treeNodesRemoved(TreeModelEvent event);
                                              
                                            ! 	/**
                                            ! 	 * Tree structured changed
                                            ! 	 * @param event Tree Model Event
                                            ! 	 */
                                            ! 	void treeStructureChanged(TreeModelEvent event);
                                              
                                              
                                              } // TreeModelListener
                                            --- 46,74 ----
                                               */
                                              public interface TreeModelListener extends EventListener {
                                              
                                            !         /**
                                            !          * Tree nodes changed
                                            !          * @param event Tree Model Event
                                            !          */
                                            !         void treeNodesChanged(TreeModelEvent event);
                                              
                                            !         /**
                                            !          * Tree nodes inserted
                                            !          * @param event Tree Model Event
                                            !          */
                                            !         void treeNodesInserted(TreeModelEvent event);
                                              
                                            !         /**
                                            !          * Tree nodes removed
                                            !          * @param event Tree Model Event
                                            !          */
                                            !         void treeNodesRemoved(TreeModelEvent event);
                                              
                                            !         /**
                                            !          * Tree structured changed
                                            !          * @param event Tree Model Event
                                            !          */
                                            !         void treeStructureChanged(TreeModelEvent event);
                                              
                                              
                                              } // TreeModelListener
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TreeSelectionEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/TreeSelectionEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TreeSelectionEvent.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TreeSelectionEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.tree.TreePath;
                                            *** 44,57 ****
                                              import javax.swing.tree.TreeSelectionModel;
                                              
                                              /**
                                            !  * An event that carries information about a change to a 
                                               * {@link TreeSelectionModel}.
                                            !  * 
                                               * @see TreeSelectionListener
                                            !  * 
                                               * @author Andrew Selkirk
                                               */
                                            ! public class TreeSelectionEvent extends EventObject 
                                              {
                                              
                                                /**
                                            --- 44,57 ----
                                              import javax.swing.tree.TreeSelectionModel;
                                              
                                              /**
                                            !  * An event that carries information about a change to a
                                               * {@link TreeSelectionModel}.
                                            !  *
                                               * @see TreeSelectionListener
                                            !  *
                                               * @author Andrew Selkirk
                                               */
                                            ! public class TreeSelectionEvent extends EventObject
                                              {
                                              
                                                /**
                                            *************** public class TreeSelectionEvent extends 
                                            *** 77,188 ****
                                              
                                                /**
                                                 * Creates a new TreeSelectionEvent.
                                            !    * 
                                            !    * @param source  the source (usually a {@link TreeSelectionModel}, 
                                                 *                null not permitted).
                                            !    * @param paths  an array of the paths that have been added to or removed 
                                                 *     from the selection.
                                                 * @param areNew  a flag for each path where true indicates the
                                            !    *     corresponding path has been added to the selection and 
                                                 *     false indicates the path has been removed.
                                                 * @param oldLeadSelectionPath  the old lead selection path (null
                                                 *     permitted).
                                                 * @param newLeadSelectionPath  the new lead selection path (null
                                                 *     permitted).
                                                 *
                                            !    * @throws IllegalArgumentException if source is 
                                                 *     null.
                                                 */
                                                public TreeSelectionEvent(Object source, TreePath[] paths,
                                            ! 			    boolean[] areNew, TreePath oldLeadSelectionPath,
                                            ! 			    TreePath newLeadSelectionPath)
                                                {
                                                  super(source);
                                            !     this.paths					= paths;
                                            !     this.areNew					= areNew;
                                            !     this.oldLeadSelectionPath	= oldLeadSelectionPath;
                                            !     this.newLeadSelectionPath	= newLeadSelectionPath;
                                                }
                                              
                                                /**
                                                 * Creates a new TreeSelectionEvent.
                                            !    * 
                                                 * @param source  the event source (usually a {@link TreeSelectionModel},
                                                 *     null not permitted).
                                                 * @param path  the path.
                                            !    * @param isNew true indicates that path has been 
                                            !    *     added to the selection, and false indicates that it has 
                                                 *     been removed.
                                                 * @param oldLeadSelectionPath  the old lead selection path (null
                                                 *     permitted).
                                                 * @param newLeadSelectionPath  the new lead selection path (null
                                                 *     permitted).
                                            !    *                              
                                            !    * @throws IllegalArgumentException if source is 
                                                 *     null.
                                                 */
                                                public TreeSelectionEvent(Object source, TreePath path,
                                            ! 			    boolean isNew, TreePath oldLeadSelectionPath,
                                            ! 			    TreePath newLeadSelectionPath)
                                                {
                                                  super(source);
                                                  this.paths = new TreePath[]{path};
                                                  this.areNew = new boolean[]{isNew};
                                            !     this.oldLeadSelectionPath	= oldLeadSelectionPath;
                                            !     this.newLeadSelectionPath	= newLeadSelectionPath;
                                                }
                                              
                                                /**
                                                 * Returns the first path element.
                                            !    * 
                                                 * @return The first path element.
                                            !    * 
                                                 * @see #getPaths()
                                                 */
                                                public TreePath getPath()
                                                {
                                                  return paths[0];
                                            !   } 
                                              
                                                /**
                                                 * Returns an array of the paths that changed in the selection.
                                            !    * 
                                                 * @return The paths that changed in the selection.
                                            !    * 
                                                 * @see #isAddedPath(TreePath)
                                                 */
                                                public TreePath[] getPaths()
                                                {
                                                  return (TreePath[]) paths.clone();
                                            !   } 
                                              
                                                /**
                                                 * Returns true if the path returned by {@link #getPath()} has
                                                 * been added to the selection, and false if it has been
                                                 * removed.
                                            !    * 
                                                 * @return A boolean.
                                            !    * 
                                                 * @see #isAddedPath(int)
                                                 */
                                                public boolean isAddedPath()
                                                {
                                                  return areNew[0];
                                            !   } 
                                              
                                                /**
                                            !    * Returns true if path has been added to the 
                                                 * selection, and false if the path has been removed from the
                                                 * selection.
                                            !    * 
                                                 * @param path  the path to check.
                                            !    * 
                                                 * @return A flag indicating whether the path has been added to, or removed
                                                 *     from, the selection.
                                            !    *     
                                                 * @throw IllegalArgumentException if path is not one of the
                                                 *     paths in {@link #getPaths()}.
                                            !    *     
                                                 * @see #isAddedPath(int)
                                                 */
                                                public boolean isAddedPath(TreePath path)
                                            --- 77,188 ----
                                              
                                                /**
                                                 * Creates a new TreeSelectionEvent.
                                            !    *
                                            !    * @param source  the source (usually a {@link TreeSelectionModel},
                                                 *                null not permitted).
                                            !    * @param paths  an array of the paths that have been added to or removed
                                                 *     from the selection.
                                                 * @param areNew  a flag for each path where true indicates the
                                            !    *     corresponding path has been added to the selection and
                                                 *     false indicates the path has been removed.
                                                 * @param oldLeadSelectionPath  the old lead selection path (null
                                                 *     permitted).
                                                 * @param newLeadSelectionPath  the new lead selection path (null
                                                 *     permitted).
                                                 *
                                            !    * @throws IllegalArgumentException if source is
                                                 *     null.
                                                 */
                                                public TreeSelectionEvent(Object source, TreePath[] paths,
                                            !                             boolean[] areNew, TreePath oldLeadSelectionPath,
                                            !                             TreePath newLeadSelectionPath)
                                                {
                                                  super(source);
                                            !     this.paths                                  = paths;
                                            !     this.areNew                                 = areNew;
                                            !     this.oldLeadSelectionPath   = oldLeadSelectionPath;
                                            !     this.newLeadSelectionPath   = newLeadSelectionPath;
                                                }
                                              
                                                /**
                                                 * Creates a new TreeSelectionEvent.
                                            !    *
                                                 * @param source  the event source (usually a {@link TreeSelectionModel},
                                                 *     null not permitted).
                                                 * @param path  the path.
                                            !    * @param isNew true indicates that path has been
                                            !    *     added to the selection, and false indicates that it has
                                                 *     been removed.
                                                 * @param oldLeadSelectionPath  the old lead selection path (null
                                                 *     permitted).
                                                 * @param newLeadSelectionPath  the new lead selection path (null
                                                 *     permitted).
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                                 *     null.
                                                 */
                                                public TreeSelectionEvent(Object source, TreePath path,
                                            !                             boolean isNew, TreePath oldLeadSelectionPath,
                                            !                             TreePath newLeadSelectionPath)
                                                {
                                                  super(source);
                                                  this.paths = new TreePath[]{path};
                                                  this.areNew = new boolean[]{isNew};
                                            !     this.oldLeadSelectionPath   = oldLeadSelectionPath;
                                            !     this.newLeadSelectionPath   = newLeadSelectionPath;
                                                }
                                              
                                                /**
                                                 * Returns the first path element.
                                            !    *
                                                 * @return The first path element.
                                            !    *
                                                 * @see #getPaths()
                                                 */
                                                public TreePath getPath()
                                                {
                                                  return paths[0];
                                            !   }
                                              
                                                /**
                                                 * Returns an array of the paths that changed in the selection.
                                            !    *
                                                 * @return The paths that changed in the selection.
                                            !    *
                                                 * @see #isAddedPath(TreePath)
                                                 */
                                                public TreePath[] getPaths()
                                                {
                                                  return (TreePath[]) paths.clone();
                                            !   }
                                              
                                                /**
                                                 * Returns true if the path returned by {@link #getPath()} has
                                                 * been added to the selection, and false if it has been
                                                 * removed.
                                            !    *
                                                 * @return A boolean.
                                            !    *
                                                 * @see #isAddedPath(int)
                                                 */
                                                public boolean isAddedPath()
                                                {
                                                  return areNew[0];
                                            !   }
                                              
                                                /**
                                            !    * Returns true if path has been added to the
                                                 * selection, and false if the path has been removed from the
                                                 * selection.
                                            !    *
                                                 * @param path  the path to check.
                                            !    *
                                                 * @return A flag indicating whether the path has been added to, or removed
                                                 *     from, the selection.
                                            !    *
                                                 * @throw IllegalArgumentException if path is not one of the
                                                 *     paths in {@link #getPaths()}.
                                            !    *
                                                 * @see #isAddedPath(int)
                                                 */
                                                public boolean isAddedPath(TreePath path)
                                            *************** public class TreeSelectionEvent extends 
                                            *** 192,211 ****
                                                      return areNew[i];
                                              
                                                  throw new IllegalArgumentException("Unknown 'path' argument.");
                                            !   } 
                                              
                                                /**
                                            !    * Returns true if the path at the specified index has been 
                                            !    * added to the selection, and false if the path has been 
                                                 * removed from the selection.
                                            !    * 
                                                 * @param index  the path index.
                                            !    * 
                                                 * @return A flag indicating whether the path has been added to, or removed
                                                 *     from, the selection.
                                            !    *     
                                                 * @since 1.3
                                            !    * 
                                                 * @see #isAddedPath(TreePath)
                                                 */
                                                public boolean isAddedPath(int index)
                                            --- 192,211 ----
                                                      return areNew[i];
                                              
                                                  throw new IllegalArgumentException("Unknown 'path' argument.");
                                            !   }
                                              
                                                /**
                                            !    * Returns true if the path at the specified index has been
                                            !    * added to the selection, and false if the path has been
                                                 * removed from the selection.
                                            !    *
                                                 * @param index  the path index.
                                            !    *
                                                 * @return A flag indicating whether the path has been added to, or removed
                                                 *     from, the selection.
                                            !    *
                                                 * @since 1.3
                                            !    *
                                                 * @see #isAddedPath(TreePath)
                                                 */
                                                public boolean isAddedPath(int index)
                                            *************** public class TreeSelectionEvent extends 
                                            *** 215,235 ****
                                              
                                                /**
                                                 * Returns the old lead selection path.
                                            !    * 
                                                 * @return The old lead selection path (possibly null).
                                            !    * 
                                                 * @see #getNewLeadSelectionPath()
                                                 */
                                                public TreePath getOldLeadSelectionPath()
                                                {
                                                  return oldLeadSelectionPath;
                                            !   } 
                                              
                                                /**
                                                 * Returns the new lead selection path.
                                            !    * 
                                                 * @return The new lead selection path (possibly null).
                                            !    * 
                                                 * @see #getOldLeadSelectionPath()
                                                 */
                                                public TreePath getNewLeadSelectionPath()
                                            --- 215,235 ----
                                              
                                                /**
                                                 * Returns the old lead selection path.
                                            !    *
                                                 * @return The old lead selection path (possibly null).
                                            !    *
                                                 * @see #getNewLeadSelectionPath()
                                                 */
                                                public TreePath getOldLeadSelectionPath()
                                                {
                                                  return oldLeadSelectionPath;
                                            !   }
                                              
                                                /**
                                                 * Returns the new lead selection path.
                                            !    *
                                                 * @return The new lead selection path (possibly null).
                                            !    *
                                                 * @see #getOldLeadSelectionPath()
                                                 */
                                                public TreePath getNewLeadSelectionPath()
                                            *************** public class TreeSelectionEvent extends 
                                            *** 240,257 ****
                                                /**
                                                 * Creates a shallow copy of this TreeSelectionEvent, replacing
                                                 * the source with source.
                                            !    * 
                                                 * @param source  the new event source (null not permitted).
                                            !    * 
                                                 * @return A cloned event with another event source.
                                            !    * 
                                            !    * @throws IllegalArgumentException if source is 
                                                 *     null.
                                                 */
                                                public Object cloneWithSource(Object source)
                                                {
                                                  return new TreeSelectionEvent (source, paths, areNew, oldLeadSelectionPath,
                                                      newLeadSelectionPath);
                                            !   } 
                                              
                                            ! } 
                                            --- 240,257 ----
                                                /**
                                                 * Creates a shallow copy of this TreeSelectionEvent, replacing
                                                 * the source with source.
                                            !    *
                                                 * @param source  the new event source (null not permitted).
                                            !    *
                                                 * @return A cloned event with another event source.
                                            !    *
                                            !    * @throws IllegalArgumentException if source is
                                                 *     null.
                                                 */
                                                public Object cloneWithSource(Object source)
                                                {
                                                  return new TreeSelectionEvent (source, paths, areNew, oldLeadSelectionPath,
                                                      newLeadSelectionPath);
                                            !   }
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TreeSelectionListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/TreeSelectionListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TreeSelectionListener.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TreeSelectionListener.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.tree.TreeSelectionMod
                                            *** 44,60 ****
                                              /**
                                               * A listener that receives {@link TreeSelectionEvent} notifications from a
                                               * source (such as a {@link TreeSelectionModel}).
                                            !  * 
                                               * @author Andrew Selkirk
                                               */
                                            ! public interface TreeSelectionListener extends EventListener 
                                              {
                                              
                                                /**
                                                 * Receives notification of a change to a tree selection model.
                                            !    * 
                                                 * @param event  information about the event.
                                                 */
                                                void valueChanged(TreeSelectionEvent event);
                                              
                                            ! } 
                                            --- 44,60 ----
                                              /**
                                               * A listener that receives {@link TreeSelectionEvent} notifications from a
                                               * source (such as a {@link TreeSelectionModel}).
                                            !  *
                                               * @author Andrew Selkirk
                                               */
                                            ! public interface TreeSelectionListener extends EventListener
                                              {
                                              
                                                /**
                                                 * Receives notification of a change to a tree selection model.
                                            !    *
                                                 * @param event  information about the event.
                                                 */
                                                void valueChanged(TreeSelectionEvent event);
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/TreeWillExpandListener.java gcc-4.6.0/libjava/classpath/javax/swing/event/TreeWillExpandListener.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/TreeWillExpandListener.java	Fri Sep 23 17:31:48 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/TreeWillExpandListener.java	Tue Jan 11 19:46:05 2011
                                            *************** public interface TreeWillExpandListener 
                                            *** 49,55 ****
                                              {
                                                /**
                                                 * Invoked whenever a node in the tree is about to be collapsed.
                                            !    * 
                                                 * @param event The tree expansion Event
                                                 */
                                                void treeWillCollapse(TreeExpansionEvent event)
                                            --- 49,55 ----
                                              {
                                                /**
                                                 * Invoked whenever a node in the tree is about to be collapsed.
                                            !    *
                                                 * @param event The tree expansion Event
                                                 */
                                                void treeWillCollapse(TreeExpansionEvent event)
                                            *************** public interface TreeWillExpandListener 
                                            *** 57,65 ****
                                              
                                                /**
                                                 * Invoked whenever a node in the tree is about to be expanded.
                                            !    * 
                                                 * @param event The tree expansion Event
                                                 */
                                                void treeWillExpand(TreeExpansionEvent event)
                                                  throws ExpandVetoException;
                                            ! }  
                                            --- 57,65 ----
                                              
                                                /**
                                                 * Invoked whenever a node in the tree is about to be expanded.
                                            !    *
                                                 * @param event The tree expansion Event
                                                 */
                                                void treeWillExpand(TreeExpansionEvent event)
                                                  throws ExpandVetoException;
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/event/UndoableEditEvent.java gcc-4.6.0/libjava/classpath/javax/swing/event/UndoableEditEvent.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/event/UndoableEditEvent.java	Fri Mar 10 21:46:48 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/event/UndoableEditEvent.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.undo.UndoableEdit;
                                            *** 47,53 ****
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public class UndoableEditEvent extends EventObject 
                                              {
                                              
                                                private static final long serialVersionUID = 4418044561759134484L;
                                            --- 47,53 ----
                                               * @author Andrew Selkirk
                                               * @author Ronald Veldema
                                               */
                                            ! public class UndoableEditEvent extends EventObject
                                              {
                                              
                                                private static final long serialVersionUID = 4418044561759134484L;
                                            *************** public class UndoableEditEvent extends E
                                            *** 62,80 ****
                                                 * @param source TODO
                                                 * @param edit TODO
                                                 */
                                            !   public UndoableEditEvent(Object source, UndoableEdit edit) 
                                                {
                                                  super(source);
                                                  this.edit = edit;
                                            !   } 
                                              
                                                /**
                                                 * getEdit
                                                 * @return UndoableEdit
                                                 */
                                            !   public UndoableEdit getEdit() 
                                                {
                                                  return edit;
                                                }
                                              
                                            ! } 
                                            --- 62,80 ----
                                                 * @param source TODO
                                                 * @param edit TODO
                                                 */
                                            !   public UndoableEditEvent(Object source, UndoableEdit edit)
                                                {
                                                  super(source);
                                                  this.edit = edit;
                                            !   }
                                              
                                                /**
                                                 * getEdit
                                                 * @return UndoableEdit
                                                 */
                                            !   public UndoableEdit getEdit()
                                                {
                                                  return edit;
                                                }
                                              
                                            ! }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/filechooser/FileFilter.java gcc-4.6.0/libjava/classpath/javax/swing/filechooser/FileFilter.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/filechooser/FileFilter.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/filechooser/FileFilter.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.JFileChooser;
                                            *** 45,56 ****
                                              /**
                                               * The base class for filters that control the visibility of files in the
                                               * {@link JFileChooser} component.
                                            !  * 
                                               * @see JFileChooser#addChoosableFileFilter(FileFilter)
                                            !  * 
                                            !  * @author	Andrew Selkirk
                                               */
                                            ! public abstract class FileFilter 
                                              {
                                              
                                                /**
                                            --- 45,56 ----
                                              /**
                                               * The base class for filters that control the visibility of files in the
                                               * {@link JFileChooser} component.
                                            !  *
                                               * @see JFileChooser#addChoosableFileFilter(FileFilter)
                                            !  *
                                            !  * @author      Andrew Selkirk
                                               */
                                            ! public abstract class FileFilter
                                              {
                                              
                                                /**
                                            *************** public abstract class FileFilter 
                                            *** 64,83 ****
                                                /**
                                                 * Returns true if the specified file matches the filter, and
                                                 * false otherwise.
                                            !    * 
                                                 * @param file  the file.
                                            !    * 
                                                 * @return A boolean.
                                                 */
                                                public abstract boolean accept(File file);
                                              
                                                /**
                                            !    * Returns a description of the files that will be selected by the filter 
                                            !    * (for example, "Java source files").  This description will usually be 
                                                 * displayed on the {@link JFileChooser} component, often in a combo box that
                                                 * is used to select the appropriate filter (in cases where more than one
                                                 * filter is available).
                                            !    * 
                                                 * @return A description of the filter.
                                                 */
                                                public abstract String getDescription();
                                            --- 64,83 ----
                                                /**
                                                 * Returns true if the specified file matches the filter, and
                                                 * false otherwise.
                                            !    *
                                                 * @param file  the file.
                                            !    *
                                                 * @return A boolean.
                                                 */
                                                public abstract boolean accept(File file);
                                              
                                                /**
                                            !    * Returns a description of the files that will be selected by the filter
                                            !    * (for example, "Java source files").  This description will usually be
                                                 * displayed on the {@link JFileChooser} component, often in a combo box that
                                                 * is used to select the appropriate filter (in cases where more than one
                                                 * filter is available).
                                            !    *
                                                 * @return A description of the filter.
                                                 */
                                                public abstract String getDescription();
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/filechooser/FileSystemView.java gcc-4.6.0/libjava/classpath/javax/swing/filechooser/FileSystemView.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/filechooser/FileSystemView.java	Tue Jan  9 19:58:05 2007
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/filechooser/FileSystemView.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.JFileChooser;
                                            *** 46,59 ****
                                              
                                              
                                              /**
                                            !  * The base class providing a view of the file system for use by the 
                                               * {@link JFileChooser} component.
                                               */
                                              public abstract class FileSystemView
                                              {
                                                /** The instance returned by {@link #getFileSystemView()}. */
                                                private static FileSystemView defaultFileSystemView;
                                            !   
                                                /**
                                                 * Creates a new file object with the given name in the specified directory.
                                                 *
                                            --- 46,59 ----
                                              
                                              
                                              /**
                                            !  * The base class providing a view of the file system for use by the
                                               * {@link JFileChooser} component.
                                               */
                                              public abstract class FileSystemView
                                              {
                                                /** The instance returned by {@link #getFileSystemView()}. */
                                                private static FileSystemView defaultFileSystemView;
                                            ! 
                                                /**
                                                 * Creates a new file object with the given name in the specified directory.
                                                 *
                                            *************** public abstract class FileSystemView
                                            *** 101,112 ****
                                                 * Creates a new folder with a unique name in the specified directory and
                                                 * returns a {@link File} object representing the new directory.
                                                 *
                                            !    * @param containingDir  the directory to contain the new folder 
                                                 *                       (null not permitted).
                                                 *
                                                 * @return A {@link File} object representing the new directory.
                                                 *
                                            !    * @throws IOException if an exception occurs while creating the new 
                                                 *                     directory.
                                                 */
                                                public abstract File createNewFolder(File containingDir)
                                            --- 101,112 ----
                                                 * Creates a new folder with a unique name in the specified directory and
                                                 * returns a {@link File} object representing the new directory.
                                                 *
                                            !    * @param containingDir  the directory to contain the new folder
                                                 *                       (null not permitted).
                                                 *
                                                 * @return A {@link File} object representing the new directory.
                                                 *
                                            !    * @throws IOException if an exception occurs while creating the new
                                                 *                     directory.
                                                 */
                                                public abstract File createNewFolder(File containingDir)
                                            *************** public abstract class FileSystemView
                                            *** 137,144 ****
                                                }
                                              
                                                /**
                                            !    * Returns an array containing the files in the given directory.  The 
                                            !    * useFileHiding controls whether or not hidden files are 
                                                 * included in the result.
                                                 *
                                                 * @param dir  the directory (if null
                                            --- 137,144 ----
                                                }
                                              
                                                /**
                                            !    * Returns an array containing the files in the given directory.  The
                                            !    * useFileHiding controls whether or not hidden files are
                                                 * included in the result.
                                                 *
                                                 * @param dir  the directory (if null
                                            *************** public abstract class FileSystemView
                                            *** 158,164 ****
                                                  ArrayList trim = new ArrayList();
                                                  for (int i = 0; i < files.length; i++)
                                                    if (! files[i].isHidden())
                                            ! 	trim.add(files[i]);
                                                  File[] value = (File[]) trim.toArray(new File[trim.size()]);
                                                  return value;
                                                }
                                            --- 158,164 ----
                                                  ArrayList trim = new ArrayList();
                                                  for (int i = 0; i < files.length; i++)
                                                    if (! files[i].isHidden())
                                            !         trim.add(files[i]);
                                                  File[] value = (File[]) trim.toArray(new File[trim.size()]);
                                                  return value;
                                                }
                                            *************** public abstract class FileSystemView
                                            *** 220,231 ****
                                                }
                                              
                                                /**
                                            !    * Returns the name of a file as it would be displayed by the underlying 
                                                 * system.
                                                 *
                                                 * @param f  the file.
                                                 *
                                            !    * @return the name of a file as it would be displayed by the underlying 
                                                 *         system
                                                 *
                                                 * @specnote The specification suggests that the information here is
                                            --- 220,231 ----
                                                }
                                              
                                                /**
                                            !    * Returns the name of a file as it would be displayed by the underlying
                                                 * system.
                                                 *
                                                 * @param f  the file.
                                                 *
                                            !    * @return the name of a file as it would be displayed by the underlying
                                                 *         system
                                                 *
                                                 * @specnote The specification suggests that the information here is
                                            *************** public abstract class FileSystemView
                                            *** 242,249 ****
                                                }
                                              
                                                /**
                                            !    * Returns the icon that would be displayed for the given file by the 
                                            !    * underlying system.  This implementation returns null, 
                                                 * subclasses must override.
                                                 *
                                                 * @param f  the file.
                                            --- 242,249 ----
                                                }
                                              
                                                /**
                                            !    * Returns the icon that would be displayed for the given file by the
                                            !    * underlying system.  This implementation returns null,
                                                 * subclasses must override.
                                                 *
                                                 * @param f  the file.
                                            *************** public abstract class FileSystemView
                                            *** 256,263 ****
                                                }
                                              
                                                /**
                                            !    * Returns the type description of a file that would be displayed by the 
                                            !    * underlying system.  This implementation returns null, 
                                                 * subclasses must override.
                                                 *
                                                 * @param f  the file.
                                            --- 256,263 ----
                                                }
                                              
                                                /**
                                            !    * Returns the type description of a file that would be displayed by the
                                            !    * underlying system.  This implementation returns null,
                                                 * subclasses must override.
                                                 *
                                                 * @param f  the file.
                                            *************** public abstract class FileSystemView
                                            *** 282,288 ****
                                                }
                                              
                                                /**
                                            !    * Returns true if the given directory represents a disk 
                                                 * drive, and false otherwise.  This default implementation
                                                 * always returns false.
                                                 *
                                            --- 282,288 ----
                                                }
                                              
                                                /**
                                            !    * Returns true if the given directory represents a disk
                                                 * drive, and false otherwise.  This default implementation
                                                 * always returns false.
                                                 *
                                            *************** public abstract class FileSystemView
                                            *** 326,337 ****
                                                  String filename = dir.getAbsolutePath();
                                                  for (int i = 0; i < roots.length; i++)
                                                    if (roots[i].getAbsolutePath().equals(filename))
                                            ! 	return true;
                                                  return false;
                                                }
                                              
                                                /**
                                            !    * Returns true if the given directory represents a floppy 
                                                 * drive, and false otherwise.  This default implementation
                                                 * always returns false.
                                                 *
                                            --- 326,337 ----
                                                  String filename = dir.getAbsolutePath();
                                                  for (int i = 0; i < roots.length; i++)
                                                    if (roots[i].getAbsolutePath().equals(filename))
                                            !         return true;
                                                  return false;
                                                }
                                              
                                                /**
                                            !    * Returns true if the given directory represents a floppy
                                                 * drive, and false otherwise.  This default implementation
                                                 * always returns false.
                                                 *
                                            *************** public abstract class FileSystemView
                                            *** 345,356 ****
                                                }
                                              
                                                /**
                                            !    * Returns true if the given file is hidden, and 
                                                 * false otherwise.
                                                 *
                                                 * @param f  the file.
                                                 *
                                            !    * @return true if the given file is hidden, and 
                                                 *         false otherwise.
                                                 */
                                                public boolean isHiddenFile(File f)
                                            --- 345,356 ----
                                                }
                                              
                                                /**
                                            !    * Returns true if the given file is hidden, and
                                                 * false otherwise.
                                                 *
                                                 * @param f  the file.
                                                 *
                                            !    * @return true if the given file is hidden, and
                                                 *         false otherwise.
                                                 */
                                                public boolean isHiddenFile(File f)
                                            *************** public abstract class FileSystemView
                                            *** 359,371 ****
                                                }
                                              
                                                /**
                                            !    * Returns true if folder is the parent of 
                                                 * file, and false otherwise.
                                                 *
                                                 * @param folder  the folder (null not permitted).
                                                 * @param file  the file (null not permitted).
                                                 *
                                            !    * @return true if folder is the parent of 
                                                 *         file, and false otherwise.
                                                 */
                                                public boolean isParent(File folder, File file)
                                            --- 359,371 ----
                                                }
                                              
                                                /**
                                            !    * Returns true if folder is the parent of
                                                 * file, and false otherwise.
                                                 *
                                                 * @param folder  the folder (null not permitted).
                                                 * @param file  the file (null not permitted).
                                                 *
                                            !    * @return true if folder is the parent of
                                                 *         file, and false otherwise.
                                                 */
                                                public boolean isParent(File folder, File file)
                                            *************** public abstract class FileSystemView
                                            *** 390,402 ****
                                                }
                                              
                                                /**
                                            !    * Returns true if the file is traversable, and 
                                                 * false otherwise.  Here, all directories are considered
                                            !    * traversable, and files are considered non-traversable. 
                                                 *
                                                 * @param f  the file or directory (null not permitted).
                                                 *
                                            !    * @return true if the file is traversable, and 
                                                 *         false otherwise.
                                                 */
                                                public Boolean isTraversable(File f)
                                            --- 390,402 ----
                                                }
                                              
                                                /**
                                            !    * Returns true if the file is traversable, and
                                                 * false otherwise.  Here, all directories are considered
                                            !    * traversable, and files are considered non-traversable.
                                                 *
                                                 * @param f  the file or directory (null not permitted).
                                                 *
                                            !    * @return true if the file is traversable, and
                                                 *         false otherwise.
                                                 */
                                                public Boolean isTraversable(File f)
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/filechooser/FileView.java gcc-4.6.0/libjava/classpath/javax/swing/filechooser/FileView.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/filechooser/FileView.java	Thu May 18 17:29:21 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/filechooser/FileView.java	Tue Jan 11 19:46:05 2011
                                            *************** import java.io.File;
                                            *** 43,128 ****
                                              import javax.swing.Icon;
                                              
                                              /**
                                            !  * An abstract class that provides presentation information about files and 
                                               * directories.  .
                                            !  * 
                                               * @author  Andrew Selkirk
                                               */
                                            ! public abstract class FileView 
                                              {
                                              
                                                /**
                                                 * Creates a new FileView instance.
                                                 */
                                            !   public FileView() 
                                                {
                                                  // Nothing to do here.
                                            !   } 
                                              
                                                /**
                                                 * Returns the name for the specified file.  This method always returns
                                                 * null and should be overridden by subclasses.
                                            !    * 
                                                 * @param file  the file.
                                            !    * 
                                                 * @return Always null.
                                                 */
                                            !   public String getName(File file) 
                                                {
                                                  return null;
                                            !   } 
                                              
                                                /**
                                                 * Returns a description for the specified file.  This method always returns
                                                 * null and should be overridden by subclasses.
                                            !    * 
                                                 * @param file  the file.
                                            !    * 
                                                 * @return Always null.
                                                 */
                                            !   public String getDescription(File file) 
                                                {
                                                  return null;
                                            !   } 
                                              
                                                /**
                                            !    * Returns a description for the type of the specified file.  This method 
                                                 * always returns null and should be overridden by subclasses.
                                            !    * 
                                                 * @param file  the file.
                                            !    * 
                                                 * @return Always null.
                                                 */
                                            !   public String getTypeDescription(File file) 
                                                {
                                                  return null;
                                            !   } 
                                              
                                                /**
                                            !    * Returns an {@link Icon} to represent the specified file.  This method 
                                                 * always returns null and should be overridden by subclasses.
                                            !    * 
                                                 * @param file  the file.
                                            !    * 
                                                 * @return Always null.
                                                 */
                                            !   public Icon getIcon(File file) 
                                                {
                                                  return null;
                                            !   } 
                                              
                                                /**
                                                 * Returns {@link Boolean#TRUE} if the given directory is traversable, and
                                            !    * {@link Boolean#FALSE} if it is not.  This method always returns 
                                                 * null and should be overridden by subclasses.
                                            !    * 
                                                 * @param directory  the directory.
                                            !    * 
                                                 * @return Always null.
                                                 */
                                            !   public Boolean isTraversable(File directory) 
                                                {
                                                  return null;
                                            !   } 
                                              
                                              }
                                            --- 43,128 ----
                                              import javax.swing.Icon;
                                              
                                              /**
                                            !  * An abstract class that provides presentation information about files and
                                               * directories.  .
                                            !  *
                                               * @author  Andrew Selkirk
                                               */
                                            ! public abstract class FileView
                                              {
                                              
                                                /**
                                                 * Creates a new FileView instance.
                                                 */
                                            !   public FileView()
                                                {
                                                  // Nothing to do here.
                                            !   }
                                              
                                                /**
                                                 * Returns the name for the specified file.  This method always returns
                                                 * null and should be overridden by subclasses.
                                            !    *
                                                 * @param file  the file.
                                            !    *
                                                 * @return Always null.
                                                 */
                                            !   public String getName(File file)
                                                {
                                                  return null;
                                            !   }
                                              
                                                /**
                                                 * Returns a description for the specified file.  This method always returns
                                                 * null and should be overridden by subclasses.
                                            !    *
                                                 * @param file  the file.
                                            !    *
                                                 * @return Always null.
                                                 */
                                            !   public String getDescription(File file)
                                                {
                                                  return null;
                                            !   }
                                              
                                                /**
                                            !    * Returns a description for the type of the specified file.  This method
                                                 * always returns null and should be overridden by subclasses.
                                            !    *
                                                 * @param file  the file.
                                            !    *
                                                 * @return Always null.
                                                 */
                                            !   public String getTypeDescription(File file)
                                                {
                                                  return null;
                                            !   }
                                              
                                                /**
                                            !    * Returns an {@link Icon} to represent the specified file.  This method
                                                 * always returns null and should be overridden by subclasses.
                                            !    *
                                                 * @param file  the file.
                                            !    *
                                                 * @return Always null.
                                                 */
                                            !   public Icon getIcon(File file)
                                                {
                                                  return null;
                                            !   }
                                              
                                                /**
                                                 * Returns {@link Boolean#TRUE} if the given directory is traversable, and
                                            !    * {@link Boolean#FALSE} if it is not.  This method always returns
                                                 * null and should be overridden by subclasses.
                                            !    *
                                                 * @param directory  the directory.
                                            !    *
                                                 * @return Always null.
                                                 */
                                            !   public Boolean isTraversable(File directory)
                                                {
                                                  return null;
                                            !   }
                                              
                                              }
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/filechooser/UnixFileSystemView.java gcc-4.6.0/libjava/classpath/javax/swing/filechooser/UnixFileSystemView.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/filechooser/UnixFileSystemView.java	Mon Aug 14 23:12:35 2006
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/filechooser/UnixFileSystemView.java	Tue Jan 11 19:46:05 2011
                                            *************** import javax.swing.Icon;
                                            *** 48,54 ****
                                              /**
                                               * A concrete implementation of {@link FileSystemView} that is appropriate for
                                               * Unix-like systems.
                                            !  * 
                                               * @see FileSystemView#getFileSystemView()
                                               */
                                              class UnixFileSystemView extends FileSystemView
                                            --- 48,54 ----
                                              /**
                                               * A concrete implementation of {@link FileSystemView} that is appropriate for
                                               * Unix-like systems.
                                            !  *
                                               * @see FileSystemView#getFileSystemView()
                                               */
                                              class UnixFileSystemView extends FileSystemView
                                            *************** class UnixFileSystemView extends FileSys
                                            *** 58,75 ****
                                              
                                                /**
                                                 * Creates a new folder with a unique name in the specified directory and
                                            !    * returns a {@link File} object representing the new directory.  The name 
                                            !    * of the new folder is NewFolder or, if a directory or file 
                                            !    * with that name already exists, NewFolder.n where 
                                            !    * n is the lowest integer greater than zero that results in 
                                                 * a unique directory name.
                                                 *
                                            !    * @param containingDir  the directory to contain the new folder 
                                                 *                       (null not permitted).
                                                 *
                                                 * @return A {@link File} object representing the new directory.
                                                 *
                                            !    * @throws IOException if an exception occurs while creating the new 
                                                 *                     directory.
                                                 */
                                                public File createNewFolder(File containingDir) throws IOException
                                            --- 58,75 ----
                                              
                                                /**
                                                 * Creates a new folder with a unique name in the specified directory and
                                            !    * returns a {@link File} object representing the new directory.  The name
                                            !    * of the new folder is NewFolder or, if a directory or file
                                            !    * with that name already exists, NewFolder.n where
                                            !    * n is the lowest integer greater than zero that results in
                                                 * a unique directory name.
                                                 *
                                            !    * @param containingDir  the directory to contain the new folder
                                                 *                       (null not permitted).
                                                 *
                                                 * @return A {@link File} object representing the new directory.
                                                 *
                                            !    * @throws IOException if an exception occurs while creating the new
                                                 *                     directory.
                                                 */
                                                public File createNewFolder(File containingDir) throws IOException
                                            *************** class UnixFileSystemView extends FileSys
                                            *** 80,101 ****
                                                                    + NEW_FOLDER_NAME;
                                                  while (f == null)
                                                    {
                                            ! 	String full = filename;
                                            ! 	if (count > 0)
                                            ! 	  full += "." + (count++);
                                            ! 	f = new File(full);
                                            ! 	if (f.isDirectory() || f.isFile())
                                            ! 	  {
                                            ! 	    count++;
                                            ! 	    f = null;
                                            ! 	  }
                                                    }
                                                  f.mkdir();
                                                  return f;
                                                }
                                              
                                                /**
                                            !    * Returns an array containing the file system root. 
                                                 *
                                                 * @return An array containing the file system root.
                                                 */
                                            --- 80,101 ----
                                                                    + NEW_FOLDER_NAME;
                                                  while (f == null)
                                                    {
                                            !         String full = filename;
                                            !         if (count > 0)
                                            !           full += "." + (count++);
                                            !         f = new File(full);
                                            !         if (f.isDirectory() || f.isFile())
                                            !           {
                                            !             count++;
                                            !             f = null;
                                            !           }
                                                    }
                                                  f.mkdir();
                                                  return f;
                                                }
                                              
                                                /**
                                            !    * Returns an array containing the file system root.
                                                 *
                                                 * @return An array containing the file system root.
                                                 */
                                            *************** class UnixFileSystemView extends FileSys
                                            *** 105,116 ****
                                                }
                                              
                                                /**
                                            !    * Returns the name of a file as it would be displayed by the underlying 
                                                 * system.
                                                 *
                                                 * @param f  the file.
                                                 *
                                            !    * @return the name of a file as it would be displayed by the underlying 
                                                 *         system
                                                 */
                                                public String getSystemDisplayName(File f)
                                            --- 105,116 ----
                                                }
                                              
                                                /**
                                            !    * Returns the name of a file as it would be displayed by the underlying
                                                 * system.
                                                 *
                                                 * @param f  the file.
                                                 *
                                            !    * @return the name of a file as it would be displayed by the underlying
                                                 *         system
                                                 */
                                                public String getSystemDisplayName(File f)
                                            *************** class UnixFileSystemView extends FileSys
                                            *** 137,143 ****
                                                }
                                              
                                                /**
                                            !    * Returns the icon that would be displayed for the given file by the 
                                                 * underlying system.  This method is NOT YET IMPLEMENTED.
                                                 *
                                                 * @param f  the file.
                                            --- 137,143 ----
                                                }
                                              
                                                /**
                                            !    * Returns the icon that would be displayed for the given file by the
                                                 * underlying system.  This method is NOT YET IMPLEMENTED.
                                                 *
                                                 * @param f  the file.
                                            *************** class UnixFileSystemView extends FileSys
                                            *** 152,158 ****
                                                }
                                              
                                                /**
                                            !    * Returns the description of a file that would be displayed by the 
                                                 * underlying system.  This method is NOT YET IMPLEMENTED.
                                                 *
                                                 * @param f  the file.
                                            --- 152,158 ----
                                                }
                                              
                                                /**
                                            !    * Returns the description of a file that would be displayed by the
                                                 * underlying system.  This method is NOT YET IMPLEMENTED.
                                                 *
                                                 * @param f  the file.
                                            diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/BorderUIResource.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/BorderUIResource.java
                                            *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/BorderUIResource.java	Tue Nov 15 23:20:01 2005
                                            --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/BorderUIResource.java	Tue Jan 11 19:46:05 2011
                                            *************** GNU Classpath is free software; you can 
                                            *** 7,13 ****
                                              it under the terms of the GNU General Public License as published by
                                              the Free Software Foundation; either version 2, or (at your option)
                                              any later version.
                                            !  
                                              GNU Classpath 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
                                            --- 7,13 ----
                                              it under the terms of the GNU General Public License as published by
                                              the Free Software Foundation; either version 2, or (at your option)
                                              any later version.
                                            ! 
                                              GNU Classpath 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
                                            *************** public class BorderUIResource implements
                                            *** 96,103 ****
                                                 * called.
                                                 */
                                                private static Border loweredBevelBorderUIResource;
                                            !   
                                            !   
                                                /**
                                                 * A shared instance of a {@link BevelBorderUIResource} whose
                                                 * bevelType is {@link
                                            --- 96,103 ----
                                                 * called.
                                                 */
                                                private static Border loweredBevelBorderUIResource;
                                            ! 
                                            ! 
                                                /**
                                                 * A shared instance of a {@link BevelBorderUIResource} whose
                                                 * bevelType is {@link
                                            *************** public class BorderUIResource implements
                                            *** 106,113 ****
                                                 * called.
                                                 */
                                                private static Border raisedBevelBorderUIResource;
                                            !   
                                            !   
                                                /**
                                                 * A shared instance of a {@link LineBorderUIResource} for
                                                 * a one-pixel thick black line, or null if
                                            --- 106,113 ----
                                                 * called.
                                                 */
                                                private static Border raisedBevelBorderUIResource;
                                            ! 
                                            ! 
                                                /**
                                                 * A shared instance of a {@link LineBorderUIResource} for
                                                 * a one-pixel thick black line, or null if
                                            *************** public class BorderUIResource implements
                                            *** 132,138 ****
                                                    etchedBorderUIResource = new EtchedBorderUIResource();
                                                  return etchedBorderUIResource;
                                                }
                                            !   
                                              
                                                /**
                                                 * Returns a shared instance of {@link BevelBorderUIResource} whose
                                            --- 132,138 ----
                                                    etchedBorderUIResource = new EtchedBorderUIResource();
                                                  return etchedBorderUIResource;
                                                }
                                            ! 
                                              
                                                /**
                                                 * Returns a shared instance of {@link BevelBorderUIResource} whose
                                            *************** public class BorderUIResource implements
                                            *** 170,177 ****
                                                      BevelBorder.RAISED);
                                                  return raisedBevelBorderUIResource;
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Returns a shared instance of {@link LineBorderUIResource} for
                                                 * a black, one-pixel width border.
                                            --- 170,177 ----
                                                      BevelBorder.RAISED);
                                                  return raisedBevelBorderUIResource;
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Returns a shared instance of {@link LineBorderUIResource} for
                                                 * a black, one-pixel width border.
                                            *************** public class BorderUIResource implements
                                            *** 193,215 ****
                                                 * The wrapped border.
                                                 */
                                                private Border delegate;
                                            !   
                                            !   
                                                /**
                                                 * Constructs a BorderUIResource for wrapping
                                                 * a Border object.
                                            !    * 
                                                 * @param delegate the border to be wrapped.
                                                 */
                                                public BorderUIResource(Border delegate)
                                                {
                                                  if (delegate == null)
                                                    throw new IllegalArgumentException();
                                            !     
                                                  this.delegate = delegate;
                                                }
                                              
                                            !   
                                                /**
                                                 * Paints the border around an enclosed component by calling
                                                 * the paintBorder method of the wrapped delegate.
                                            --- 193,215 ----
                                                 * The wrapped border.
                                                 */
                                                private Border delegate;
                                            ! 
                                            ! 
                                                /**
                                                 * Constructs a BorderUIResource for wrapping
                                                 * a Border object.
                                            !    *
                                                 * @param delegate the border to be wrapped.
                                                 */
                                                public BorderUIResource(Border delegate)
                                                {
                                                  if (delegate == null)
                                                    throw new IllegalArgumentException();
                                            ! 
                                                  this.delegate = delegate;
                                                }
                                              
                                            ! 
                                                /**
                                                 * Paints the border around an enclosed component by calling
                                                 * the paintBorder method of the wrapped delegate.
                                            *************** public class BorderUIResource implements
                                            *** 226,233 ****
                                                {
                                                  delegate.paintBorder(c, g, x, y, width, height);
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Measures the width of this border by calling the
                                                 * getBorderInsets method of the wrapped
                                            --- 226,233 ----
                                                {
                                                  delegate.paintBorder(c, g, x, y, width, height);
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Measures the width of this border by calling the
                                                 * getBorderInsets method of the wrapped
                                            *************** public class BorderUIResource implements
                                            *** 240,250 ****
                                                 *         width of the border at the respective edge.
                                                 */
                                                public Insets getBorderInsets(Component c)
                                            !   { 
                                                  return delegate.getBorderInsets(c);
                                                }
                                            !   
                                            !   
                                                /**
                                                 * Determines whether this border fills every pixel in its area
                                                 * when painting by calling the isBorderOpaque
                                            --- 240,250 ----
                                                 *         width of the border at the respective edge.
                                                 */
                                                public Insets getBorderInsets(Component c)
                                            !   {
                                                  return delegate.getBorderInsets(c);
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * Determines whether this border fills every pixel in its area
                                                 * when painting by calling the isBorderOpaque
                                            *************** public class BorderUIResource implements
                                            *** 255,261 ****
                                                 *         can shine through the border.
                                                 */
                                                public boolean isBorderOpaque()
                                            !   { 
                                                  return delegate.isBorderOpaque();
                                                }
                                              
                                            --- 255,261 ----
                                                 *         can shine through the border.
                                                 */
                                                public boolean isBorderOpaque()
                                            !   {
                                                  return delegate.isBorderOpaque();
                                                }
                                              
                                            *************** public class BorderUIResource implements
                                            *** 272,283 ****
                                                 * @author Brian Jones (cbj@gnu.org)
                                                 * @author Sascha Brawer (brawer@dandelis.ch)
                                                 */
                                            !   public static class BevelBorderUIResource 
                                                  extends BevelBorder
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -1275542891108351642L;
                                            !     
                                                  /**
                                                   * Constructs a BevelBorderUIResource whose colors will be derived
                                                   * from the background of the enclosed component. The background
                                            --- 272,283 ----
                                                 * @author Brian Jones (cbj@gnu.org)
                                                 * @author Sascha Brawer (brawer@dandelis.ch)
                                                 */
                                            !   public static class BevelBorderUIResource
                                                  extends BevelBorder
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -1275542891108351642L;
                                            ! 
                                                  /**
                                                   * Constructs a BevelBorderUIResource whose colors will be derived
                                                   * from the background of the enclosed component. The background
                                            *************** public class BorderUIResource implements
                                            *** 296,307 ****
                                                   * @throws IllegalArgumentException if bevelType has
                                                   *         an unsupported value.
                                                   */
                                            !     public BevelBorderUIResource(int bevelType) 
                                            !     { 
                                                    super(bevelType);
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Constructs a BevelBorderUIResource given its appearance type
                                                   * and two colors for its highlight and shadow.
                                            --- 296,307 ----
                                                   * @throws IllegalArgumentException if bevelType has
                                                   *         an unsupported value.
                                                   */
                                            !     public BevelBorderUIResource(int bevelType)
                                            !     {
                                                    super(bevelType);
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Constructs a BevelBorderUIResource given its appearance type
                                                   * and two colors for its highlight and shadow.
                                            *************** public class BorderUIResource implements
                                            *** 334,342 ****
                                                   * @throws NullPointerException if highlight or
                                                   *         shadow is null.
                                                   */
                                            !     public BevelBorderUIResource(int bevelType, 
                                            !                                  Color highlight, 
                                            !                                  Color shadow) 
                                                  {
                                                    super(bevelType, highlight, shadow);
                                                  }
                                            --- 334,342 ----
                                                   * @throws NullPointerException if highlight or
                                                   *         shadow is null.
                                                   */
                                            !     public BevelBorderUIResource(int bevelType,
                                            !                                  Color highlight,
                                            !                                  Color shadow)
                                                  {
                                                    super(bevelType, highlight, shadow);
                                                  }
                                            *************** public class BorderUIResource implements
                                            *** 382,396 ****
                                                                               Color highlightOuter,
                                                                               Color highlightInner,
                                                                               Color shadowOuter,
                                            !                                  Color shadowInner) 
                                                  {
                                                    super(bevelType,
                                                          highlightOuter, highlightInner,
                                                          shadowOuter, shadowInner);
                                                  }
                                                }
                                            !   
                                            !   
                                                /**
                                                 * A {@link javax.swing.border.CompoundBorder} that also implements the
                                                 * {@link UIResource} marker interface.  This is useful for
                                            --- 382,396 ----
                                                                               Color highlightOuter,
                                                                               Color highlightInner,
                                                                               Color shadowOuter,
                                            !                                  Color shadowInner)
                                                  {
                                                    super(bevelType,
                                                          highlightOuter, highlightInner,
                                                          shadowOuter, shadowInner);
                                                  }
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * A {@link javax.swing.border.CompoundBorder} that also implements the
                                                 * {@link UIResource} marker interface.  This is useful for
                                            *************** public class BorderUIResource implements
                                            *** 408,414 ****
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = 7550017084975167341L;
                                            !     
                                                  /**
                                                   * Constructs a CompoundBorderUIResource with the specified inside
                                                   * and outside borders.
                                            --- 408,414 ----
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = 7550017084975167341L;
                                            ! 
                                                  /**
                                                   * Constructs a CompoundBorderUIResource with the specified inside
                                                   * and outside borders.
                                            *************** public class BorderUIResource implements
                                            *** 429,436 ****
                                                    super(outsideBorder, insideBorder);
                                                  }
                                                }
                                            !   
                                            !   
                                                /**
                                                 * An {@link javax.swing.border.EmptyBorder} that also implements the
                                                 * {@link UIResource} marker interface.  This is useful for
                                            --- 429,436 ----
                                                    super(outsideBorder, insideBorder);
                                                  }
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * An {@link javax.swing.border.EmptyBorder} that also implements the
                                                 * {@link UIResource} marker interface.  This is useful for
                                            *************** public class BorderUIResource implements
                                            *** 447,458 ****
                                                 * @author Brian Jones (cbj@gnu.org)
                                                 * @author Sascha Brawer (brawer@dandelis.ch)
                                                 */
                                            !   public static class EmptyBorderUIResource 
                                                  extends EmptyBorder
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -4914187529340071708L;
                                            !     
                                                  /**
                                                   * Constructs an empty border given the number of pixels required
                                                   * on each side.
                                            --- 447,458 ----
                                                 * @author Brian Jones (cbj@gnu.org)
                                                 * @author Sascha Brawer (brawer@dandelis.ch)
                                                 */
                                            !   public static class EmptyBorderUIResource
                                                  extends EmptyBorder
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -4914187529340071708L;
                                            ! 
                                                  /**
                                                   * Constructs an empty border given the number of pixels required
                                                   * on each side.
                                            *************** public class BorderUIResource implements
                                            *** 473,480 ****
                                                  {
                                                    super(top, left, bottom, right);
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Constructs an empty border given the number of pixels required
                                                   * on each side, passed in an Insets object.
                                            --- 473,480 ----
                                                  {
                                                    super(top, left, bottom, right);
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Constructs an empty border given the number of pixels required
                                                   * on each side, passed in an Insets object.
                                            *************** public class BorderUIResource implements
                                            *** 486,493 ****
                                                    super(insets);
                                                  }
                                                }
                                            !   
                                            !   
                                                /**
                                                 * An {@link javax.swing.border.EtchedBorder} that also implements the
                                                 * {@link UIResource} marker interface.  This is useful for
                                            --- 486,493 ----
                                                    super(insets);
                                                  }
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * An {@link javax.swing.border.EtchedBorder} that also implements the
                                                 * {@link UIResource} marker interface.  This is useful for
                                            *************** public class BorderUIResource implements
                                            *** 509,515 ****
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -8186391754165296656L;
                                            !     
                                                  /**
                                                   * Constructs an EtchedBorderUIResource that appears lowered into
                                                   * the surface. The colors will be derived from the background
                                            --- 509,515 ----
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -8186391754165296656L;
                                            ! 
                                                  /**
                                                   * Constructs an EtchedBorderUIResource that appears lowered into
                                                   * the surface. The colors will be derived from the background
                                            *************** public class BorderUIResource implements
                                            *** 519,526 ****
                                                  {
                                                    super();
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Constructs an EtchedBorderUIResource with the specified
                                                   * appearance. The colors will be derived from the background
                                            --- 519,526 ----
                                                  {
                                                    super();
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Constructs an EtchedBorderUIResource with the specified
                                                   * appearance. The colors will be derived from the background
                                            *************** public class BorderUIResource implements
                                            *** 537,548 ****
                                                   * @throws IllegalArgumentException if etchType has
                                                   *         an unsupported value.
                                                   */
                                            !     public EtchedBorderUIResource(int etchType) 
                                                  {
                                                    super(etchType);
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Constructs a lowered EtchedBorderUIResource, explicitly
                                                   * selecting the colors that will be used for highlight and
                                            --- 537,548 ----
                                                   * @throws IllegalArgumentException if etchType has
                                                   *         an unsupported value.
                                                   */
                                            !     public EtchedBorderUIResource(int etchType)
                                                  {
                                                    super(etchType);
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Constructs a lowered EtchedBorderUIResource, explicitly
                                                   * selecting the colors that will be used for highlight and
                                            *************** public class BorderUIResource implements
                                            *** 560,567 ****
                                                  {
                                                    super(highlight, shadow);
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Constructs an EtchedBorderUIResource with the specified
                                                   * appearance, explicitly selecting the colors that will be used
                                            --- 560,567 ----
                                                  {
                                                    super(highlight, shadow);
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Constructs an EtchedBorderUIResource with the specified
                                                   * appearance, explicitly selecting the colors that will be used
                                            *************** public class BorderUIResource implements
                                            *** 590,597 ****
                                                    super(etchType, highlight, shadow);
                                                  }
                                                }
                                            !   
                                            !   
                                                /**
                                                 * A {@link javax.swing.border.LineBorder} that also implements the
                                                 * {@link UIResource} marker interface.  This is useful for
                                            --- 590,597 ----
                                                    super(etchType, highlight, shadow);
                                                  }
                                                }
                                            ! 
                                            ! 
                                                /**
                                                 * A {@link javax.swing.border.LineBorder} that also implements the
                                                 * {@link UIResource} marker interface.  This is useful for
                                            *************** public class BorderUIResource implements
                                            *** 612,618 ****
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -6171232338180172310L;
                                            !     
                                                  /**
                                                   * Constructs a LineBorderUIResource given its color.  The border
                                                   * will be one pixel thick and have plain corners.
                                            --- 612,618 ----
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -6171232338180172310L;
                                            ! 
                                                  /**
                                                   * Constructs a LineBorderUIResource given its color.  The border
                                                   * will be one pixel thick and have plain corners.
                                            *************** public class BorderUIResource implements
                                            *** 621,630 ****
                                                   */
                                                  public LineBorderUIResource(Color color)
                                                  {
                                            !       super(color); 
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Constructs a LineBorder given its color and thickness.  The
                                                   * border will have plain corners.
                                            --- 621,630 ----
                                                   */
                                                  public LineBorderUIResource(Color color)
                                                  {
                                            !       super(color);
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Constructs a LineBorder given its color and thickness.  The
                                                   * border will have plain corners.
                                            *************** public class BorderUIResource implements
                                            *** 636,648 ****
                                                  {
                                                    super(color, thickness);
                                                  }
                                            !     
                                            !     
                                                  /* Note: Since JDK1.3, javax.swing.border.LineBorder also has a
                                                   * constructor which accepts a value for the roundedCorners
                                                   * property. However, as of JDK1.4.1, the LineBorderUIResource
                                                   * subclass does not have a corresponding constructor.
                                            !      * 
                                                   * A request for enhancing the Swing API has been filed with Sun:
                                                   * http://developer.java.sun.com/developer/bugParade/bugs/4879999.html
                                                   */
                                            --- 636,648 ----
                                                  {
                                                    super(color, thickness);
                                                  }
                                            ! 
                                            ! 
                                                  /* Note: Since JDK1.3, javax.swing.border.LineBorder also has a
                                                   * constructor which accepts a value for the roundedCorners
                                                   * property. However, as of JDK1.4.1, the LineBorderUIResource
                                                   * subclass does not have a corresponding constructor.
                                            !      *
                                                   * A request for enhancing the Swing API has been filed with Sun:
                                                   * http://developer.java.sun.com/developer/bugParade/bugs/4879999.html
                                                   */
                                            *************** public class BorderUIResource implements
                                            *** 669,675 ****
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -8107923147541851122L;
                                            !     
                                                  /**
                                                   * Constructs a MatteBorderUIResource given the width on each side
                                                   * and a fill color.
                                            --- 669,675 ----
                                                  implements UIResource, Serializable
                                                {
                                                  private static final long serialVersionUID = -8107923147541851122L;
                                            ! 
                                                  /**
                                                   * Constructs a MatteBorderUIResource given the width on each side
                                                   * and a fill color.
                                            *************** public class BorderUIResource implements
                                            *** 690,697 ****
                                                  {
                                                    super(top, left, bottom, right, color);
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Constructs a MatteBorderUIResource given the width on each side
                                                   * and an icon for tiling the border area.
                                            --- 690,697 ----
                                                  {
                                                    super(top, left, bottom, right, color);
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Constructs a MatteBorderUIResource given the width on each side
                                                   * and an icon for tiling the border area.
                                            *************** public class BorderUIResource implements
                                            *** 712,719 ****
                                                  {
                                                    super(top, left, bottom, right, tileIcon);
                                                  }
                                            !     
                                            !     
                                                  /**
                                                   * Constructs a MatteBorderUIResource given an icon for tiling the
                                                   * border area. The icon width is used for the border insets at
                                            --- 712,719 ----
                                                  {
                                                    super(top, left, bottom, right, tileIcon);
                                                  }
                                            ! 
                                            ! 
                                                  /**
                                                   * Constructs a MatteBorderUIResource given an icon for tiling the
                                                   * border area. The icon width is used for the border insets at
                                            *************** public class BorderUIResource implements
                                            *** 724,738 ****
                                                   * height="150" alt="[A picture of a MatteBorder made by this
                                                   * constructor]" />

                                            * ! * @param tileIcon an icon for tiling the border area. */ public MatteBorderUIResource(Icon tileIcon) { super(tileIcon); } } ! ! /** * A {@link javax.swing.border.TitledBorder} that also implements the * {@link UIResource} marker interface. This is useful for --- 724,738 ---- * height="150" alt="[A picture of a MatteBorder made by this * constructor]" />

                                            * ! * @param tileIcon an icon for tiling the border area. */ public MatteBorderUIResource(Icon tileIcon) { super(tileIcon); } } ! ! /** * A {@link javax.swing.border.TitledBorder} that also implements the * {@link UIResource} marker interface. This is useful for *************** public class BorderUIResource implements *** 750,756 **** implements UIResource, Serializable { private static final long serialVersionUID = 7667113547406407427L; ! /** * Constructs a TitledBorderUIResource given the text of its title. * --- 750,756 ---- implements UIResource, Serializable { private static final long serialVersionUID = 7667113547406407427L; ! /** * Constructs a TitledBorderUIResource given the text of its title. * *************** public class BorderUIResource implements *** 761,768 **** { super(title); } ! ! /** * Constructs an initially untitled TitledBorderUIResource * given another border. --- 761,768 ---- { super(title); } ! ! /** * Constructs an initially untitled TitledBorderUIResource * given another border. *************** public class BorderUIResource implements *** 775,782 **** { super(border); } ! ! /** * Constructs a TitledBorder given its border and title text. * --- 775,782 ---- { super(border); } ! ! /** * Constructs a TitledBorder given its border and title text. * *************** public class BorderUIResource implements *** 878,885 **** super(border, title, titleJustification, titlePosition, titleFont); } ! ! /** * Constructs a TitledBorder given its border, title text, * horizontal alignment, vertical position, font, and color. --- 878,885 ---- super(border, title, titleJustification, titlePosition, titleFont); } ! ! /** * Constructs a TitledBorder given its border, title text, * horizontal alignment, vertical position, font, and color. *************** public class BorderUIResource implements *** 928,931 **** } } } - --- 928,930 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/ColorChooserUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/ColorChooserUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/ColorChooserUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/ColorChooserUI.java Tue Jan 11 19:46:05 2011 *************** public abstract class ColorChooserUI ext *** 56,59 **** /* The constructor does not do anything. */ } } - --- 56,58 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/ColorUIResource.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/ColorUIResource.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/ColorUIResource.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/ColorUIResource.java Tue Jan 11 19:46:05 2011 *************** public class ColorUIResource extends Col *** 62,68 **** * @param g the green intensity, which must be in the range [0 .. 255]. * @param b the blue intensity, which must be in the range [0 .. 255]. * ! * @throws IllegalArgumentException if any of the values is outside the * specified range. */ public ColorUIResource(int r, int g, int b) --- 62,68 ---- * @param g the green intensity, which must be in the range [0 .. 255]. * @param b the blue intensity, which must be in the range [0 .. 255]. * ! * @throws IllegalArgumentException if any of the values is outside the * specified range. */ public ColorUIResource(int r, int g, int b) *************** public class ColorUIResource extends Col *** 95,101 **** * @param g the green intensity, which must be in the range [0.0 .. 1.0]. * @param b the blue intensity, which must be in the range [0.0 .. 1.0]. * ! * @throws IllegalArgumentException if any of the values is outside the * specified range. */ public ColorUIResource(float r, float g, float b) --- 95,101 ---- * @param g the green intensity, which must be in the range [0.0 .. 1.0]. * @param b the blue intensity, which must be in the range [0.0 .. 1.0]. * ! * @throws IllegalArgumentException if any of the values is outside the * specified range. */ public ColorUIResource(float r, float g, float b) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/ComboBoxUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/ComboBoxUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/ComboBoxUI.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/ComboBoxUI.java Tue Jan 11 19:46:05 2011 *************** public abstract class ComboBoxUI extends *** 55,61 **** { // Nothing to do here. } ! /** * Sets the visibility of the popup button. * --- 55,61 ---- { // Nothing to do here. } ! /** * Sets the visibility of the popup button. * *************** public abstract class ComboBoxUI extends *** 77,83 **** * visible, false otherwise. */ public abstract boolean isPopupVisible(JComboBox c); ! /** * Determines whether the combo box can receive input focus. * --- 77,83 ---- * visible, false otherwise. */ public abstract boolean isPopupVisible(JComboBox c); ! /** * Determines whether the combo box can receive input focus. * *************** public abstract class ComboBoxUI extends *** 88,92 **** * input focus, false otherwise. */ public abstract boolean isFocusTraversable(JComboBox c); ! } --- 88,92 ---- * input focus, false otherwise. */ public abstract boolean isFocusTraversable(JComboBox c); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/ComponentInputMapUIResource.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/ComponentInputMapUIResource.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/ComponentInputMapUIResource.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/ComponentInputMapUIResource.java Tue Jan 11 19:46:05 2011 *************** public class ComponentInputMapUIResource *** 66,69 **** super(component); } } - --- 66,68 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/ComponentUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/ComponentUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/ComponentUI.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/ComponentUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.JComponent; *** 80,86 **** * * @author Sascha Brawer (brawer@dandelis.ch) */ ! public abstract class ComponentUI { /** * Constructs a new UI delegate. --- 80,86 ---- * * @author Sascha Brawer (brawer@dandelis.ch) */ ! public abstract class ComponentUI { /** * Constructs a new UI delegate. *************** public abstract class ComponentUI *** 89,96 **** { // Nothing to do here. } ! ! /** * Sets up the specified component so it conforms the the design * guidelines of the implemented look and feel. When the look and --- 89,96 ---- { // Nothing to do here. } ! ! /** * Sets up the specified component so it conforms the the design * guidelines of the implemented look and feel. When the look and *************** public abstract class ComponentUI *** 145,152 **** { // The default implementation does not change any properties. } ! ! /** * Paints the component according to the design guidelines * of the look and feel. Most subclasses will want to override --- 145,152 ---- { // The default implementation does not change any properties. } ! ! /** * Paints the component according to the design guidelines * of the look and feel. Most subclasses will want to override *************** public abstract class ComponentUI *** 162,169 **** // Nothing is done here. This method is meant to be overridden by // subclasses. } ! ! /** * Fills the specified component with its background color * (unless the opaque property is false) --- 162,169 ---- // Nothing is done here. This method is meant to be overridden by // subclasses. } ! ! /** * Fills the specified component with its background color * (unless the opaque property is false) *************** public abstract class ComponentUI *** 192,198 **** } paint(g, c); } ! /** * Determines the preferred size of a component. The default * implementation returns null, which means that --- 192,198 ---- } paint(g, c); } ! /** * Determines the preferred size of a component. The default * implementation returns null, which means that *************** public abstract class ComponentUI *** 209,216 **** { return null; } ! ! /** * Determines the minimum size of a component. The default * implementation calls {@link #getPreferredSize}, but subclasses --- 209,216 ---- { return null; } ! ! /** * Determines the minimum size of a component. The default * implementation calls {@link #getPreferredSize}, but subclasses *************** public abstract class ComponentUI *** 265,271 **** * inside its parent. */ public boolean contains(JComponent c, int x, int y) ! { /* JComponent.contains calls the ui delegate for hit * testing. Therefore, endless mutual recursion would result if we * called c.contains(x, y) here. --- 265,271 ---- * inside its parent. */ public boolean contains(JComponent c, int x, int y) ! { /* JComponent.contains calls the ui delegate for hit * testing. Therefore, endless mutual recursion would result if we * called c.contains(x, y) here. *************** public abstract class ComponentUI *** 282,289 **** return (x >= 0) && (x < c.getWidth()) && (y >= 0) && (y < c.getHeight()); } ! ! /** * Creates a delegate object for the specified component. Users * should use the createUI method of a suitable --- 282,289 ---- return (x >= 0) && (x < c.getWidth()) && (y >= 0) && (y < c.getHeight()); } ! ! /** * Creates a delegate object for the specified component. Users * should use the createUI method of a suitable *************** public abstract class ComponentUI *** 298,304 **** "javax.swing.plaf.ComponentUI does not implement createUI; call " + "createUI on a subclass."); } ! /** * Counts the number of accessible children in the component. The --- 298,304 ---- "javax.swing.plaf.ComponentUI does not implement createUI; call " + "createUI on a subclass."); } ! /** * Counts the number of accessible children in the component. The diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/FileChooserUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/FileChooserUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/FileChooserUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/FileChooserUI.java Tue Jan 11 19:46:05 2011 *************** public abstract class FileChooserUI exte *** 63,69 **** // Nothing to do here. } ! /** * Returns a FileFilter that accepts every file. While * the filtering itself is not specific to any look and feel, the --- 63,69 ---- // Nothing to do here. } ! /** * Returns a FileFilter that accepts every file. While * the filtering itself is not specific to any look and feel, the diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/IconUIResource.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/IconUIResource.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/IconUIResource.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/IconUIResource.java Tue Jan 11 19:46:05 2011 *************** public class IconUIResource implements I *** 63,69 **** /** ! * The icon that is wrapped by this IconUIResource (never * null). */ private Icon delegate; --- 63,69 ---- /** ! * The icon that is wrapped by this IconUIResource (never * null). */ private Icon delegate; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/SplitPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/SplitPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/SplitPaneUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/SplitPaneUI.java Tue Jan 11 19:46:05 2011 *************** public abstract class SplitPaneUI extend *** 93,100 **** * @return the current location of the divider. */ public abstract int getDividerLocation(JSplitPane pane); ! ! /** * Determines the minimum location of the divider. * --- 93,100 ---- * @return the current location of the divider. */ public abstract int getDividerLocation(JSplitPane pane); ! ! /** * Determines the minimum location of the divider. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/TabbedPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/TabbedPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/TabbedPaneUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/TabbedPaneUI.java Tue Jan 11 19:46:05 2011 *************** public abstract class TabbedPaneUI exten *** 60,67 **** { // Nothing to do here. } ! ! /** * Determines which tab lies at a given position. * --- 60,67 ---- { // Nothing to do here. } ! ! /** * Determines which tab lies at a given position. * *************** public abstract class TabbedPaneUI exten *** 79,85 **** */ public abstract int tabForCoordinate(JTabbedPane pane, int x, int y); ! /** * Calculates the bounding box of a tab. --- 79,85 ---- */ public abstract int tabForCoordinate(JTabbedPane pane, int x, int y); ! /** * Calculates the bounding box of a tab. *************** public abstract class TabbedPaneUI exten *** 108,111 **** */ public abstract int getTabRunCount(JTabbedPane pane); } - --- 108,110 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/TextUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/TextUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/TextUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/TextUI.java Tue Jan 11 19:46:05 2011 *************** public abstract class TextUI extends Com *** 61,67 **** { /** * Constructs a new TextUI. ! */ public TextUI() { // Nothing to do here. --- 61,67 ---- { /** * Constructs a new TextUI. ! */ public TextUI() { // Nothing to do here. *************** public abstract class TextUI extends Com *** 155,161 **** */ public abstract int viewToModel(JTextComponent tc, Point loc, Position.Bias[] outBias); ! /** --- 155,161 ---- */ public abstract int viewToModel(JTextComponent tc, Point loc, Position.Bias[] outBias); ! /** *************** public abstract class TextUI extends Com *** 235,241 **** Position.Bias startBias, Position.Bias endBias); ! /** * Retrieves the EditorKit managing policies and * persistent state. --- 235,241 ---- Position.Bias startBias, Position.Bias endBias); ! /** * Retrieves the EditorKit managing policies and * persistent state. *************** public abstract class TextUI extends Com *** 246,253 **** * @return the EditorKit used by tc. */ public abstract EditorKit getEditorKit(JTextComponent tc); ! ! /** * Retrieves the root of the view tree that visually presents * the text. --- 246,253 ---- * @return the EditorKit used by tc. */ public abstract EditorKit getEditorKit(JTextComponent tc); ! ! /** * Retrieves the root of the view tree that visually presents * the text. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/UIResource.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/UIResource.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/UIResource.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/UIResource.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* UIResource.java Copyright (C) 1999 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* UIResource.java Copyright (C) 1999 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** package javax.swing.plaf; *** 44,57 **** * renderer with ComponentUI.uninstallUI() the renderer * property is set to null. *
                                            ! * A comparison against null can be used with all properties except for ! * the java.awt.Component properties font, foreground, and * background. The container can provide the value of the properties if * they are initialized or set to null. ! * * @author Brian Jones * ! * @see ComponentUI */ public interface UIResource { --- 44,57 ---- * renderer with ComponentUI.uninstallUI() the renderer * property is set to null. *
                                            ! * A comparison against null can be used with all properties except for ! * the java.awt.Component properties font, foreground, and * background. The container can provide the value of the properties if * they are initialized or set to null. ! * * @author Brian Jones * ! * @see ComponentUI */ public interface UIResource { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicArrowButton.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicArrowButton.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicArrowButton.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicArrowButton.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.SwingConstants; *** 51,65 **** * A button that displays an arrow (triangle) that points {@link #NORTH}, * {@link #SOUTH}, {@link #EAST} or {@link #WEST}. This button is used by * the {@link BasicComboBoxUI} class. ! * * @see BasicComboBoxUI#createArrowButton */ public class BasicArrowButton extends JButton implements SwingConstants { ! /** ! * The direction that the arrow points. ! * * @see #getDirection() */ protected int direction; --- 51,65 ---- * A button that displays an arrow (triangle) that points {@link #NORTH}, * {@link #SOUTH}, {@link #EAST} or {@link #WEST}. This button is used by * the {@link BasicComboBoxUI} class. ! * * @see BasicComboBoxUI#createArrowButton */ public class BasicArrowButton extends JButton implements SwingConstants { ! /** ! * The direction that the arrow points. ! * * @see #getDirection() */ protected int direction; *************** public class BasicArrowButton extends JB *** 89,95 **** * in the specified direction. If the direction is not one of * the specified constants, no arrow is drawn. * ! * @param direction The direction the arrow points in (one of: * {@link #NORTH}, {@link #SOUTH}, {@link #EAST} and {@link #WEST}). */ public BasicArrowButton(int direction) --- 89,95 ---- * in the specified direction. If the direction is not one of * the specified constants, no arrow is drawn. * ! * @param direction The direction the arrow points in (one of: * {@link #NORTH}, {@link #SOUTH}, {@link #EAST} and {@link #WEST}). */ public BasicArrowButton(int direction) *************** public class BasicArrowButton extends JB *** 103,109 **** * Creates a new BasicArrowButton object with the given colors and * direction. * ! * @param direction The direction to point in (one of: * {@link #NORTH}, {@link #SOUTH}, {@link #EAST} and {@link #WEST}). * @param background The background color. * @param shadow The shadow color. --- 103,109 ---- * Creates a new BasicArrowButton object with the given colors and * direction. * ! * @param direction The direction to point in (one of: * {@link #NORTH}, {@link #SOUTH}, {@link #EAST} and {@link #WEST}). * @param background The background color. * @param shadow The shadow color. *************** public class BasicArrowButton extends JB *** 133,139 **** } /** ! * Returns the direction of the arrow (one of: {@link #NORTH}, * {@link #SOUTH}, {@link #EAST} and {@link #WEST}). * * @return The direction of the arrow. --- 133,139 ---- } /** ! * Returns the direction of the arrow (one of: {@link #NORTH}, * {@link #SOUTH}, {@link #EAST} and {@link #WEST}). * * @return The direction of the arrow. *************** public class BasicArrowButton extends JB *** 146,152 **** /** * Sets the direction of the arrow. * ! * @param dir The new direction of the arrow (one of: {@link #NORTH}, * {@link #SOUTH}, {@link #EAST} and {@link #WEST}). */ public void setDirection(int dir) --- 146,152 ---- /** * Sets the direction of the arrow. * ! * @param dir The new direction of the arrow (one of: {@link #NORTH}, * {@link #SOUTH}, {@link #EAST} and {@link #WEST}). */ public void setDirection(int dir) *************** public class BasicArrowButton extends JB *** 163,185 **** public void paint(Graphics g) { super.paint(g); ! int height = getHeight(); int size = height / 4; ! int x = (getWidth() - size) / 2; int y = (height - size) / 2; ! ButtonModel m = getModel(); if (m.isArmed()) { x++; y++; } ! paintTriangle(g, x, y, size, direction, isEnabled()); } ! /** * Returns the preferred size of the arrow button. * --- 163,185 ---- public void paint(Graphics g) { super.paint(g); ! int height = getHeight(); int size = height / 4; ! int x = (getWidth() - size) / 2; int y = (height - size) / 2; ! ButtonModel m = getModel(); if (m.isArmed()) { x++; y++; } ! paintTriangle(g, x, y, size, direction, isEnabled()); } ! /** * Returns the preferred size of the arrow button. * *************** public class BasicArrowButton extends JB *** 220,236 **** } /** ! * Paints a triangle with the given size, location and direction. It is * difficult to explain the rationale behind the positioning of the triangle ! * relative to the given (x, y) position - by trial and error we seem to ! * match the behaviour of the reference implementation (which is missing a * specification for this method). * * @param g the graphics device. * @param x the x-coordinate for the triangle's location. * @param y the y-coordinate for the triangle's location. * @param size the arrow size (depth). ! * @param direction the direction of the arrow (one of: {@link #NORTH}, * {@link #SOUTH}, {@link #EAST} and {@link #WEST}). * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. --- 220,236 ---- } /** ! * Paints a triangle with the given size, location and direction. It is * difficult to explain the rationale behind the positioning of the triangle ! * relative to the given (x, y) position - by trial and error we seem to ! * match the behaviour of the reference implementation (which is missing a * specification for this method). * * @param g the graphics device. * @param x the x-coordinate for the triangle's location. * @param y the y-coordinate for the triangle's location. * @param size the arrow size (depth). ! * @param direction the direction of the arrow (one of: {@link #NORTH}, * {@link #SOUTH}, {@link #EAST} and {@link #WEST}). * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. *************** public class BasicArrowButton extends JB *** 258,268 **** } g.setColor(savedColor); } ! /** ! * Paints an upward-pointing triangle. This method is called by the * {@link #paintTriangle(Graphics, int, int, int, int, boolean)} method. ! * * @param g the graphics device. * @param x the x-coordinate for the anchor point. * @param y the y-coordinate for the anchor point. --- 258,268 ---- } g.setColor(savedColor); } ! /** ! * Paints an upward-pointing triangle. This method is called by the * {@link #paintTriangle(Graphics, int, int, int, int, boolean)} method. ! * * @param g the graphics device. * @param x the x-coordinate for the anchor point. * @param y the y-coordinate for the anchor point. *************** public class BasicArrowButton extends JB *** 270,276 **** * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. */ ! private void paintTriangleNorth(Graphics g, int x, int y, int size, boolean isEnabled) { int tipX = x + (size - 2) / 2; --- 270,276 ---- * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. */ ! private void paintTriangleNorth(Graphics g, int x, int y, int size, boolean isEnabled) { int tipX = x + (size - 2) / 2; *************** public class BasicArrowButton extends JB *** 297,307 **** g.drawLine(baseX1 + 1, baseY + 1, baseX2 + 1, baseY + 1); } } ! /** ! * Paints an downward-pointing triangle. This method is called by the * {@link #paintTriangle(Graphics, int, int, int, int, boolean)} method. ! * * @param g the graphics device. * @param x the x-coordinate for the anchor point. * @param y the y-coordinate for the anchor point. --- 297,307 ---- g.drawLine(baseX1 + 1, baseY + 1, baseX2 + 1, baseY + 1); } } ! /** ! * Paints an downward-pointing triangle. This method is called by the * {@link #paintTriangle(Graphics, int, int, int, int, boolean)} method. ! * * @param g the graphics device. * @param x the x-coordinate for the anchor point. * @param y the y-coordinate for the anchor point. *************** public class BasicArrowButton extends JB *** 309,315 **** * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. */ ! private void paintTriangleSouth(Graphics g, int x, int y, int size, boolean isEnabled) { int tipX = x + (size - 2) / 2; --- 309,315 ---- * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. */ ! private void paintTriangleSouth(Graphics g, int x, int y, int size, boolean isEnabled) { int tipX = x + (size - 2) / 2; *************** public class BasicArrowButton extends JB *** 337,347 **** g.drawLine(tipX + 1, tipY + 1, baseX2 + 1, baseY + 1); } } ! /** ! * Paints a right-pointing triangle. This method is called by the * {@link #paintTriangle(Graphics, int, int, int, int, boolean)} method. ! * * @param g the graphics device. * @param x the x-coordinate for the anchor point. * @param y the y-coordinate for the anchor point. --- 337,347 ---- g.drawLine(tipX + 1, tipY + 1, baseX2 + 1, baseY + 1); } } ! /** ! * Paints a right-pointing triangle. This method is called by the * {@link #paintTriangle(Graphics, int, int, int, int, boolean)} method. ! * * @param g the graphics device. * @param x the x-coordinate for the anchor point. * @param y the y-coordinate for the anchor point. *************** public class BasicArrowButton extends JB *** 349,355 **** * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. */ ! private void paintTriangleEast(Graphics g, int x, int y, int size, boolean isEnabled) { int tipX = x + (size - 1); --- 349,355 ---- * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. */ ! private void paintTriangleEast(Graphics g, int x, int y, int size, boolean isEnabled) { int tipX = x + (size - 1); *************** public class BasicArrowButton extends JB *** 357,363 **** int baseX = x; int baseY1 = tipY - (size - 1); int baseY2 = tipY + (size - 1); ! Polygon triangle = new Polygon(); triangle.addPoint(tipX, tipY); triangle.addPoint(baseX, baseY1); --- 357,363 ---- int baseX = x; int baseY1 = tipY - (size - 1); int baseY2 = tipY + (size - 1); ! Polygon triangle = new Polygon(); triangle.addPoint(tipX, tipY); triangle.addPoint(baseX, baseY1); *************** public class BasicArrowButton extends JB *** 378,388 **** g.drawLine(baseX + 1, baseY2 + 1, tipX + 1, tipY + 1); } } ! /** ! * Paints a left-pointing triangle. This method is called by the * {@link #paintTriangle(Graphics, int, int, int, int, boolean)} method. ! * * @param g the graphics device. * @param x the x-coordinate for the anchor point. * @param y the y-coordinate for the anchor point. --- 378,388 ---- g.drawLine(baseX + 1, baseY2 + 1, tipX + 1, tipY + 1); } } ! /** ! * Paints a left-pointing triangle. This method is called by the * {@link #paintTriangle(Graphics, int, int, int, int, boolean)} method. ! * * @param g the graphics device. * @param x the x-coordinate for the anchor point. * @param y the y-coordinate for the anchor point. *************** public class BasicArrowButton extends JB *** 390,396 **** * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. */ ! private void paintTriangleWest(Graphics g, int x, int y, int size, boolean isEnabled) { int tipX = x; --- 390,396 ---- * @param isEnabled if true the arrow is drawn in the enabled * state, otherwise it is drawn in the disabled state. */ ! private void paintTriangleWest(Graphics g, int x, int y, int size, boolean isEnabled) { int tipX = x; *************** public class BasicArrowButton extends JB *** 398,404 **** int baseX = x + (size - 1); int baseY1 = tipY - (size - 1); int baseY2 = tipY + (size - 1); ! Polygon triangle = new Polygon(); triangle.addPoint(tipX, tipY); triangle.addPoint(baseX, baseY1); --- 398,404 ---- int baseX = x + (size - 1); int baseY1 = tipY - (size - 1); int baseY2 = tipY + (size - 1); ! Polygon triangle = new Polygon(); triangle.addPoint(tipX, tipY); triangle.addPoint(baseX, baseY1); *************** public class BasicArrowButton extends JB *** 418,422 **** g.drawLine(baseX + 1, baseY1 + 1, baseX + 1, baseY2 + 1); } } ! } --- 418,422 ---- g.drawLine(baseX + 1, baseY1 + 1, baseX + 1, baseY2 + 1); } } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicBorders.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicBorders.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicBorders.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicBorders.java Tue Jan 11 19:46:05 2011 *************** public class BasicBorders *** 252,258 **** * UIDefaults of the currently active look and feel * using the keys “SplitPane.darkShadow” and * “SplitPane.highlight”. ! * *

                                            [A screen shot for JSplitPane.HORIZONTAL_SPLIT] * --- 252,258 ---- * UIDefaults of the currently active look and feel * using the keys “SplitPane.darkShadow” and * “SplitPane.highlight”. ! * *

                                            [A screen shot for JSplitPane.HORIZONTAL_SPLIT] * *************** public class BasicBorders *** 284,290 **** * other two edges is the background color of the divider. * *

                                            * * * @return an instance of SplitPaneDividerBorder, which is --- 284,290 ---- * other two edges is the background color of the divider. * *

                                            * * * @return an instance of SplitPaneDividerBorder, which is *************** public class BasicBorders *** 332,338 **** UIManager.getColor("TextField.light"), UIManager.getColor("TextField.highlight")); } ! /** * Returns a two-pixel thick, green --- 332,338 ---- UIManager.getColor("TextField.light"), UIManager.getColor("TextField.highlight")); } ! /** * Returns a two-pixel thick, green *************** public class BasicBorders *** 407,414 **** return sharedMarginBorder; } ! ! /** * A border whose appearance depends on the state of * the enclosed button. --- 407,414 ---- return sharedMarginBorder; } ! ! /** * A border whose appearance depends on the state of * the enclosed button. *************** public class BasicBorders *** 429,464 **** * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. */ static final long serialVersionUID = -157053874580739687L; ! ! /** * The color for drawing the shaded parts of the border. * @see javax.swing.plaf.basic.BasicGraphicsUtils#drawBezel */ protected Color shadow; ! ! /** * The color for drawing the dark shaded parts of the border. * @see javax.swing.plaf.basic.BasicGraphicsUtils#drawBezel */ protected Color darkShadow; ! ! /** * The color for drawing the highlighted parts of the border. * @see javax.swing.plaf.basic.BasicGraphicsUtils#drawBezel */ protected Color highlight; ! ! /** * The color for drawing the bright highlighted parts of the border. * @see javax.swing.plaf.basic.BasicGraphicsUtils#drawBezel */ protected Color lightHighlight; ! ! /** * Constructs a new border for drawing a button in the Basic * look and feel. --- 429,464 ---- * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. */ static final long serialVersionUID = -157053874580739687L; ! ! /** * The color for drawing the shaded parts of the border. * @see javax.swing.plaf.basic.BasicGraphicsUtils#drawBezel */ protected Color shadow; ! ! /** * The color for drawing the dark shaded parts of the border. * @see javax.swing.plaf.basic.BasicGraphicsUtils#drawBezel */ protected Color darkShadow; ! ! /** * The color for drawing the highlighted parts of the border. * @see javax.swing.plaf.basic.BasicGraphicsUtils#drawBezel */ protected Color highlight; ! ! /** * The color for drawing the bright highlighted parts of the border. * @see javax.swing.plaf.basic.BasicGraphicsUtils#drawBezel */ protected Color lightHighlight; ! ! /** * Constructs a new border for drawing a button in the Basic * look and feel. *************** public class BasicBorders *** 485,491 **** ? lightHighlight : Color.white; } ! /** * Paints the ButtonBorder around a given component. --- 485,491 ---- ? lightHighlight : Color.white; } ! /** * Paints the ButtonBorder around a given component. *************** public class BasicBorders *** 503,512 **** int x, int y, int width, int height) { ButtonModel bmodel = null; ! if (c instanceof AbstractButton) bmodel = ((AbstractButton) c).getModel(); ! BasicGraphicsUtils.drawBezel( g, x, y, width, height, /* pressed */ (bmodel != null) --- 503,512 ---- int x, int y, int width, int height) { ButtonModel bmodel = null; ! if (c instanceof AbstractButton) bmodel = ((AbstractButton) c).getModel(); ! BasicGraphicsUtils.drawBezel( g, x, y, width, height, /* pressed */ (bmodel != null) *************** public class BasicBorders *** 516,523 **** && ((JButton) c).isDefaultButton(), shadow, darkShadow, highlight, lightHighlight); } ! ! /** * Measures the width of this border. * --- 516,523 ---- && ((JButton) c).isDefaultButton(), shadow, darkShadow, highlight, lightHighlight); } ! ! /** * Measures the width of this border. * *************** public class BasicBorders *** 534,540 **** * bottom fields indicate the width of the * border at the respective edge. * ! * @see #getBorderInsets(java.awt.Component, java.awt.Insets) */ public Insets getBorderInsets(Component c) { --- 534,540 ---- * bottom fields indicate the width of the * border at the respective edge. * ! * @see #getBorderInsets(java.awt.Component, java.awt.Insets) */ public Insets getBorderInsets(Component c) { *************** public class BasicBorders *** 545,551 **** return getBorderInsets(c, null); } ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. --- 545,551 ---- return getBorderInsets(c, null); } ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. *************** public class BasicBorders *** 583,590 **** return insets; } } ! ! /** * A border that makes its enclosed component appear as lowered * into the surface. Typically used for text fields. --- 583,590 ---- return insets; } } ! ! /** * A border that makes its enclosed component appear as lowered * into the surface. Typically used for text fields. *************** public class BasicBorders *** 668,674 **** ? lightHighlight : Color.white; } ! /** * Paints the FieldBorder around a given component. * --- 668,674 ---- ? lightHighlight : Color.white; } ! /** * Paints the FieldBorder around a given component. * *************** public class BasicBorders *** 688,695 **** shadow, darkShadow, highlight, lightHighlight); } ! ! /** * Measures the width of this border. * --- 688,695 ---- shadow, darkShadow, highlight, lightHighlight); } ! ! /** * Measures the width of this border. * *************** public class BasicBorders *** 749,756 **** return insets; } } ! ! /** * An invisible, but spacing border whose margin is determined * by calling the getMargin() method of the enclosed --- 749,756 ---- return insets; } } ! ! /** * An invisible, but spacing border whose margin is determined * by calling the getMargin() method of the enclosed *************** public class BasicBorders *** 772,779 **** * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. */ static final long serialVersionUID = -3035848353448896090L; ! ! /** * Constructs a new MarginBorder. */ --- 772,779 ---- * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. */ static final long serialVersionUID = -3035848353448896090L; ! ! /** * Constructs a new MarginBorder. */ *************** public class BasicBorders *** 781,787 **** { // Nothing to do here. } ! /** * Measures the width of this border. * --- 781,787 ---- { // Nothing to do here. } ! /** * Measures the width of this border. * *************** public class BasicBorders *** 797,804 **** { return getBorderInsets(c, new Insets(0, 0, 0, 0)); } ! ! /** * Determines the insets of this border by calling the * getMargin() method of the enclosed component. The --- 797,804 ---- { return getBorderInsets(c, new Insets(0, 0, 0, 0)); } ! ! /** * Determines the insets of this border by calling the * getMargin() method of the enclosed component. The *************** public class BasicBorders *** 839,845 **** margin = ((JToolBar) c).getMargin(); else if (c instanceof JTextComponent) margin = ((JTextComponent) c).getMargin(); ! if (margin == null) insets.top = insets.left = insets.bottom = insets.right = 0; else --- 839,845 ---- margin = ((JToolBar) c).getMargin(); else if (c instanceof JTextComponent) margin = ((JTextComponent) c).getMargin(); ! if (margin == null) insets.top = insets.left = insets.bottom = insets.right = 0; else *************** public class BasicBorders *** 853,859 **** return insets; } } ! /** * A border for drawing a separator line below JMenuBar. --- 853,859 ---- return insets; } } ! /** * A border for drawing a separator line below JMenuBar. *************** public class BasicBorders *** 872,879 **** * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. */ static final long serialVersionUID = -6909056571935227506L; ! ! /** * The shadow color, which is used for the upper line of the * two-pixel thick bottom edge. --- 872,879 ---- * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. */ static final long serialVersionUID = -6909056571935227506L; ! ! /** * The shadow color, which is used for the upper line of the * two-pixel thick bottom edge. *************** public class BasicBorders *** 949,955 **** g.setColor(highlight); g.drawLine(x + 1, y + 1, x + width - 3, y + 1); ! g.drawLine(x + width - 1, y, x + width - 1, y + 1); } finally { --- 949,955 ---- g.setColor(highlight); g.drawLine(x + 1, y + 1, x + width - 3, y + 1); ! g.drawLine(x + width - 1, y, x + width - 1, y + 1); } finally { *************** public class BasicBorders *** 1098,1104 **** { lowered = button.isSelected() || (/* mouse inside */ bmodel.isArmed() && bmodel.isPressed()); ! focused = button.hasFocus() && button.isFocusPainted(); } if (lowered) --- 1098,1104 ---- { lowered = button.isSelected() || (/* mouse inside */ bmodel.isArmed() && bmodel.isPressed()); ! focused = button.hasFocus() && button.isFocusPainted(); } if (lowered) *************** public class BasicBorders *** 1112,1119 **** shadow, darkShadow, highlight, lightHighlight); } ! ! /** * Measures the width of this border. * --- 1112,1119 ---- shadow, darkShadow, highlight, lightHighlight); } ! ! /** * Measures the width of this border. * *************** public class BasicBorders *** 1124,1130 **** * bottom fields indicate the width of the * border at the respective edge. * ! * @see #getBorderInsets(java.awt.Component, java.awt.Insets) */ public Insets getBorderInsets(Component c) { --- 1124,1130 ---- * bottom fields indicate the width of the * border at the respective edge. * ! * @see #getBorderInsets(java.awt.Component, java.awt.Insets) */ public Insets getBorderInsets(Component c) { *************** public class BasicBorders *** 1135,1141 **** return getBorderInsets(c, null); } ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. --- 1135,1141 ---- return getBorderInsets(c, null); } ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. *************** public class BasicBorders *** 1439,1445 **** y += rect.y - 1; int right = x + rect.width + 1; int bottom = y + rect.height + 1; ! Color oldColor = g.getColor(); try { --- 1439,1445 ---- y += rect.y - 1; int right = x + rect.width + 1; int bottom = y + rect.height + 1; ! Color oldColor = g.getColor(); try { *************** public class BasicBorders *** 1466,1472 **** } } ! /** * Measures the width of this border. * --- 1466,1472 ---- } } ! /** * Measures the width of this border. * *************** public class BasicBorders *** 1616,1622 **** return true; } ! /** * Determines the JSplitPane whose divider is being painted. * --- 1616,1622 ---- return true; } ! /** * Determines the JSplitPane whose divider is being painted. * *************** public class BasicBorders *** 1661,1667 **** */ static final long serialVersionUID = -3528666548001058394L; ! /** * Constructs a new border for drawing a JToggleButton in * the Basic look and feel. --- 1661,1667 ---- */ static final long serialVersionUID = -3528666548001058394L; ! /** * Constructs a new border for drawing a JToggleButton in * the Basic look and feel. *************** public class BasicBorders *** 1708,1714 **** * is selected or not. */ BasicGraphicsUtils.drawBezel(g, x, y, width, height, ! /* pressed */ false, /* default */ false, shadow, darkShadow, highlight, lightHighlight); --- 1708,1714 ---- * is selected or not. */ BasicGraphicsUtils.drawBezel(g, x, y, width, height, ! /* pressed */ false, /* default */ false, shadow, darkShadow, highlight, lightHighlight); *************** public class BasicBorders *** 1725,1731 **** * bottom fields indicate the width of the * border at the respective edge. * ! * @see #getBorderInsets(java.awt.Component, java.awt.Insets) */ public Insets getBorderInsets(Component c) { --- 1725,1731 ---- * bottom fields indicate the width of the * border at the respective edge. * ! * @see #getBorderInsets(java.awt.Component, java.awt.Insets) */ public Insets getBorderInsets(Component c) { *************** public class BasicBorders *** 1736,1742 **** return getBorderInsets(c, null); } ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. --- 1736,1742 ---- return getBorderInsets(c, null); } ! /** * Measures the width of this border, storing the results into a * pre-existing Insets object. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicButtonListener.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicButtonListener.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicButtonListener.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicButtonListener.java Tue Jan 11 19:46:05 2011 *************** public class BasicButtonListener *** 131,137 **** { // Do nothing here. } ! public void propertyChange(PropertyChangeEvent e) { // Store the TextLayout for this in a client property for speed-up --- 131,137 ---- { // Do nothing here. } ! public void propertyChange(PropertyChangeEvent e) { // Store the TextLayout for this in a client property for speed-up *************** public class BasicButtonListener *** 166,196 **** * * @param b the button to check */ ! protected void checkOpacity(AbstractButton b) ! { b.setOpaque(b.isContentAreaFilled()); } ! ! public void focusGained(FocusEvent e) ! { if (e.getSource() instanceof AbstractButton) { AbstractButton button = (AbstractButton) e.getSource(); if (button.isFocusPainted()) ! button.repaint(); } } ! public void focusLost(FocusEvent e) { if (e.getSource() instanceof AbstractButton) { AbstractButton button = (AbstractButton) e.getSource(); if (button.isFocusPainted()) ! button.repaint(); } } ! public void installKeyboardActions(JComponent c) { ButtonUI ui = ((AbstractButton) c).getUI(); --- 166,196 ---- * * @param b the button to check */ ! protected void checkOpacity(AbstractButton b) ! { b.setOpaque(b.isContentAreaFilled()); } ! ! public void focusGained(FocusEvent e) ! { if (e.getSource() instanceof AbstractButton) { AbstractButton button = (AbstractButton) e.getSource(); if (button.isFocusPainted()) ! button.repaint(); } } ! public void focusLost(FocusEvent e) { if (e.getSource() instanceof AbstractButton) { AbstractButton button = (AbstractButton) e.getSource(); if (button.isFocusPainted()) ! button.repaint(); } } ! public void installKeyboardActions(JComponent c) { ButtonUI ui = ((AbstractButton) c).getUI(); *************** public class BasicButtonListener *** 198,204 **** { // Install InputMap. BasicButtonUI basicUI = (BasicButtonUI) ui; ! String prefix = basicUI.getPropertyPrefix(); InputMap focusInputMap = (InputMap) UIManager.get(prefix + "focusInputMap"); SwingUtilities.replaceUIInputMap(c, JComponent.WHEN_FOCUSED, --- 198,204 ---- { // Install InputMap. BasicButtonUI basicUI = (BasicButtonUI) ui; ! String prefix = basicUI.getPropertyPrefix(); InputMap focusInputMap = (InputMap) UIManager.get(prefix + "focusInputMap"); SwingUtilities.replaceUIInputMap(c, JComponent.WHEN_FOCUSED, *************** public class BasicButtonListener *** 212,222 **** } SwingUtilities.replaceUIActionMap(c, am); } ! ! c.getActionMap().put("pressed", ! new AbstractAction() { ! public void actionPerformed(ActionEvent e) { AbstractButton button = (AbstractButton) e.getSource(); ButtonModel model = button.getModel(); --- 212,222 ---- } SwingUtilities.replaceUIActionMap(c, am); } ! ! c.getActionMap().put("pressed", ! new AbstractAction() { ! public void actionPerformed(ActionEvent e) { AbstractButton button = (AbstractButton) e.getSource(); ButtonModel model = button.getModel(); *************** public class BasicButtonListener *** 225,235 **** model.setPressed(true); } }); ! ! c.getActionMap().put("released", ! new AbstractAction() { ! public void actionPerformed(ActionEvent e) { AbstractButton button = (AbstractButton) e.getSource(); ButtonModel model = button.getModel(); --- 225,235 ---- model.setPressed(true); } }); ! ! c.getActionMap().put("released", ! new AbstractAction() { ! public void actionPerformed(ActionEvent e) { AbstractButton button = (AbstractButton) e.getSource(); ButtonModel model = button.getModel(); *************** public class BasicButtonListener *** 237,243 **** model.setPressed(false); model.setArmed(false); } ! }); } /** --- 237,243 ---- model.setPressed(false); model.setArmed(false); } ! }); } /** *************** public class BasicButtonListener *** 259,281 **** SwingUtilities.replaceUIActionMap(c, null); SwingUtilities.replaceUIInputMap(c, JComponent.WHEN_FOCUSED, null); } ! public void stateChanged(ChangeEvent e) { // Need to repaint when the button state changes. ((AbstractButton) e.getSource()).repaint(); } ! public void mouseMoved(MouseEvent e) { // Nothing to do here. } ! public void mouseDragged(MouseEvent e) { // Nothing to do here. } ! public void mouseClicked(MouseEvent e) { // Nothing to do here. --- 259,281 ---- SwingUtilities.replaceUIActionMap(c, null); SwingUtilities.replaceUIInputMap(c, JComponent.WHEN_FOCUSED, null); } ! public void stateChanged(ChangeEvent e) { // Need to repaint when the button state changes. ((AbstractButton) e.getSource()).repaint(); } ! public void mouseMoved(MouseEvent e) { // Nothing to do here. } ! public void mouseDragged(MouseEvent e) { // Nothing to do here. } ! public void mouseClicked(MouseEvent e) { // Nothing to do here. *************** public class BasicButtonListener *** 305,311 **** } /** ! * Accept a mouse release event and set the button's * "pressed" property to true, if the model * is armed. If the model is not armed, ignore the event. * --- 305,311 ---- } /** ! * Accept a mouse release event and set the button's * "pressed" property to true, if the model * is armed. If the model is not armed, ignore the event. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicButtonUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicButtonUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicButtonUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicButtonUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicButtonUI extends Butto *** 120,126 **** * * @return A new UI capable of drawing the component */ ! public static ComponentUI createUI(final JComponent c) { if (sharedUI == null) sharedUI = new BasicButtonUI(); --- 120,126 ---- * * @return A new UI capable of drawing the component */ ! public static ComponentUI createUI(final JComponent c) { if (sharedUI == null) sharedUI = new BasicButtonUI(); *************** public class BasicButtonUI extends Butto *** 129,137 **** /** * Returns the default gap between the button's text and icon (in pixels). ! * * @param b the button (ignored). ! * * @return The gap. */ public int getDefaultTextIconGap(AbstractButton b) --- 129,137 ---- /** * Returns the default gap between the button's text and icon (in pixels). ! * * @param b the button (ignored). ! * * @return The gap. */ public int getDefaultTextIconGap(AbstractButton b) *************** public class BasicButtonUI extends Butto *** 141,159 **** /** * Sets the text shift offset to zero. ! * * @see #setTextShiftOffset() */ protected void clearTextShiftOffset() { textShiftOffset = 0; } ! /** * Returns the text shift offset. ! * * @return The text shift offset. ! * * @see #clearTextShiftOffset() * @see #setTextShiftOffset() */ --- 141,159 ---- /** * Sets the text shift offset to zero. ! * * @see #setTextShiftOffset() */ protected void clearTextShiftOffset() { textShiftOffset = 0; } ! /** * Returns the text shift offset. ! * * @return The text shift offset. ! * * @see #clearTextShiftOffset() * @see #setTextShiftOffset() */ *************** public class BasicButtonUI extends Butto *** 164,170 **** /** * Sets the text shift offset to the value in {@link #defaultTextShiftOffset}. ! * * @see #clearTextShiftOffset() */ protected void setTextShiftOffset() --- 164,170 ---- /** * Sets the text shift offset to the value in {@link #defaultTextShiftOffset}. ! * * @see #clearTextShiftOffset() */ protected void setTextShiftOffset() *************** public class BasicButtonUI extends Butto *** 185,191 **** /** * Installs the default settings. ! * * @param b the button (null not permitted). */ protected void installDefaults(AbstractButton b) --- 185,191 ---- /** * Installs the default settings. ! * * @param b the button (null not permitted). */ protected void installDefaults(AbstractButton b) *************** public class BasicButtonUI extends Butto *** 218,224 **** /** * Removes the defaults added by {@link #installDefaults(AbstractButton)}. ! * * @param b the button (null not permitted). */ protected void uninstallDefaults(AbstractButton b) --- 218,224 ---- /** * Removes the defaults added by {@link #installDefaults(AbstractButton)}. ! * * @param b the button (null not permitted). */ protected void uninstallDefaults(AbstractButton b) *************** public class BasicButtonUI extends Butto *** 229,239 **** /** * Creates and returns a new instance of {@link BasicButtonListener}. This ! * method provides a hook to make it easy for subclasses to install a * different listener. ! * * @param b the button. ! * * @return A new listener. */ protected BasicButtonListener createButtonListener(AbstractButton b) --- 229,239 ---- /** * Creates and returns a new instance of {@link BasicButtonListener}. This ! * method provides a hook to make it easy for subclasses to install a * different listener. ! * * @param b the button. ! * * @return A new listener. */ protected BasicButtonListener createButtonListener(AbstractButton b) *************** public class BasicButtonUI extends Butto *** 249,255 **** /** * Installs listeners for the button. ! * * @param b the button (null not permitted). */ protected void installListeners(AbstractButton b) --- 249,255 ---- /** * Installs listeners for the button. ! * * @param b the button (null not permitted). */ protected void installListeners(AbstractButton b) *************** public class BasicButtonUI extends Butto *** 259,265 **** { b.addChangeListener(listener); b.addPropertyChangeListener(listener); ! b.addFocusListener(listener); b.addMouseListener(listener); b.addMouseMotionListener(listener); } --- 259,265 ---- { b.addChangeListener(listener); b.addPropertyChangeListener(listener); ! b.addFocusListener(listener); b.addMouseListener(listener); b.addMouseMotionListener(listener); } *************** public class BasicButtonUI extends Butto *** 271,277 **** /** * Uninstalls listeners for the button. ! * * @param b the button (null not permitted). */ protected void uninstallListeners(AbstractButton b) --- 271,277 ---- /** * Uninstalls listeners for the button. ! * * @param b the button (null not permitted). */ protected void uninstallListeners(AbstractButton b) *************** public class BasicButtonUI extends Butto *** 281,287 **** { b.removeChangeListener(listener); b.removePropertyChangeListener(listener); ! b.removeFocusListener(listener); b.removeMouseListener(listener); b.removeMouseMotionListener(listener); } --- 281,287 ---- { b.removeChangeListener(listener); b.removePropertyChangeListener(listener); ! b.removeFocusListener(listener); b.removeMouseListener(listener); b.removeMouseMotionListener(listener); } *************** public class BasicButtonUI extends Butto *** 304,315 **** /** * Install the BasicButtonUI as the UI for a particular component. * This means registering all the UI's listeners with the component, ! * and setting any properties of the button which are particular to * this look and feel. * * @param c The component to install the UI into */ ! public void installUI(final JComponent c) { super.installUI(c); if (c instanceof AbstractButton) --- 304,315 ---- /** * Install the BasicButtonUI as the UI for a particular component. * This means registering all the UI's listeners with the component, ! * and setting any properties of the button which are particular to * this look and feel. * * @param c The component to install the UI into */ ! public void installUI(final JComponent c) { super.installUI(c); if (c instanceof AbstractButton) *************** public class BasicButtonUI extends Butto *** 395,401 **** * * @return The preferred dimensions of the component */ ! public Dimension getPreferredSize(JComponent c) { AbstractButton b = (AbstractButton) c; Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, --- 395,401 ---- * * @return The preferred dimensions of the component */ ! public Dimension getPreferredSize(JComponent c) { AbstractButton b = (AbstractButton) c; Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, *************** public class BasicButtonUI extends Butto *** 417,423 **** i = b.getRolloverSelectedIcon(); else if (b.getRolloverIcon() != null) i = b.getRolloverIcon(); ! } else if (b.isSelected() && b.isEnabled()) { --- 417,423 ---- i = b.getRolloverSelectedIcon(); else if (b.getRolloverIcon() != null) i = b.getRolloverIcon(); ! } else if (b.isSelected() && b.isEnabled()) { *************** public class BasicButtonUI extends Butto *** 434,440 **** } /** ! * Paint the component, which is an {@link AbstractButton}, according to * its current state. * * @param g The graphics context to paint with --- 434,440 ---- } /** ! * Paint the component, which is an {@link AbstractButton}, according to * its current state. * * @param g The graphics context to paint with *************** public class BasicButtonUI extends Butto *** 462,474 **** g.setFont(f); Icon icon = b.getIcon(); String text = b.getText(); ! text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), text, icon, ! b.getVerticalAlignment(), b.getHorizontalAlignment(), ! b.getVerticalTextPosition(), b.getHorizontalTextPosition(), ! viewR, iconR, textR, text == null ? 0 : b.getIconTextGap()); --- 462,474 ---- g.setFont(f); Icon icon = b.getIcon(); String text = b.getText(); ! text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), text, icon, ! b.getVerticalAlignment(), b.getHorizontalAlignment(), ! b.getVerticalTextPosition(), b.getHorizontalTextPosition(), ! viewR, iconR, textR, text == null ? 0 : b.getIconTextGap()); *************** public class BasicButtonUI extends Butto *** 541,547 **** /** * Paints the background area of an {@link AbstractButton} in the pressed ! * state. This means filling the supplied area with a darker than normal * background. * * @param g The graphics context to paint with --- 541,547 ---- /** * Paints the background area of an {@link AbstractButton} in the pressed ! * state. This means filling the supplied area with a darker than normal * background. * * @param g The graphics context to paint with *************** public class BasicButtonUI extends Butto *** 557,563 **** g.fillRect(area.x, area.y, area.width, area.height); } } ! /** * Paints the "text" property of an {@link AbstractButton}. * --- 557,563 ---- g.fillRect(area.x, area.y, area.width, area.height); } } ! /** * Paints the "text" property of an {@link AbstractButton}. * *************** public class BasicButtonUI extends Butto *** 567,574 **** * @param text The text to paint */ protected void paintText(Graphics g, JComponent c, Rectangle textRect, ! String text) ! { AbstractButton b = (AbstractButton) c; Font f = b.getFont(); g.setFont(f); --- 567,574 ---- * @param text The text to paint */ protected void paintText(Graphics g, JComponent c, Rectangle textRect, ! String text) ! { AbstractButton b = (AbstractButton) c; Font f = b.getFont(); g.setFont(f); *************** public class BasicButtonUI extends Butto *** 602,611 **** * @since 1.4 */ protected void paintText(Graphics g, AbstractButton b, Rectangle textRect, ! String text) { paintText(g, (JComponent) b, textRect, text); ! } /** * A helper method that finds the BasicButtonListener for the specified --- 602,611 ---- * @since 1.4 */ protected void paintText(Graphics g, AbstractButton b, Rectangle textRect, ! String text) { paintText(g, (JComponent) b, textRect, text); ! } /** * A helper method that finds the BasicButtonListener for the specified diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 52,58 **** */ public class BasicCheckBoxMenuItemUI extends BasicMenuItemUI { ! /** * Creates a new BasicCheckBoxMenuItemUI object. */ --- 52,58 ---- */ public class BasicCheckBoxMenuItemUI extends BasicMenuItemUI { ! /** * Creates a new BasicCheckBoxMenuItemUI object. */ *************** public class BasicCheckBoxMenuItemUI ext *** 60,66 **** { super(); } ! /** * Factory method to create a BasicCheckBoxMenuItemUI for the given {@link * JComponent}, which should be a JCheckBoxMenuItem --- 60,66 ---- { super(); } ! /** * Factory method to create a BasicCheckBoxMenuItemUI for the given {@link * JComponent}, which should be a JCheckBoxMenuItem diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicCheckBoxUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicCheckBoxUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicCheckBoxUI.java Wed Jun 14 03:38:34 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicCheckBoxUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 47,60 **** * A UI delegate for the {@link JCheckBox} component. */ public class BasicCheckBoxUI extends BasicRadioButtonUI ! { ! /** ! * Returns a UI delegate (that is, an instance of this class) for the * specified component. ! * * @param c the component (this should be a {@link JCheckBox}). ! * * @return A new instance of BasicCheckBoxUI. */ public static ComponentUI createUI(JComponent c) --- 47,60 ---- * A UI delegate for the {@link JCheckBox} component. */ public class BasicCheckBoxUI extends BasicRadioButtonUI ! { ! /** ! * Returns a UI delegate (that is, an instance of this class) for the * specified component. ! * * @param c the component (this should be a {@link JCheckBox}). ! * * @return A new instance of BasicCheckBoxUI. */ public static ComponentUI createUI(JComponent c) *************** public class BasicCheckBoxUI extends Bas *** 63,69 **** } /** ! * Returns the prefix for entries in the {@link UIManager} defaults table * ("CheckBox." in this case). * * @return "CheckBox." --- 63,69 ---- } /** ! * Returns the prefix for entries in the {@link UIManager} defaults table * ("CheckBox." in this case). * * @return "CheckBox." *************** public class BasicCheckBoxUI extends Bas *** 73,79 **** return "CheckBox."; } } - - - - --- 73,75 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicColorChooserUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicColorChooserUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicColorChooserUI.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicColorChooserUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicColorChooserUI extends *** 74,85 **** public void propertyChange(PropertyChangeEvent e) { if (e.getPropertyName() == JColorChooser.CHOOSER_PANELS_PROPERTY) ! makeTabs(chooser.getChooserPanels()); else if (e.getPropertyName() == JColorChooser.PREVIEW_PANEL_PROPERTY) ! updatePreviewPanel(chooser.getPreviewPanel()); else if (e.getPropertyName() == JColorChooser.SELECTION_MODEL_PROPERTY) ! ((AbstractColorChooserPanel) pane.getSelectedComponent()) ! .updateChooser(); chooser.repaint(); } --- 74,85 ---- public void propertyChange(PropertyChangeEvent e) { if (e.getPropertyName() == JColorChooser.CHOOSER_PANELS_PROPERTY) ! makeTabs(chooser.getChooserPanels()); else if (e.getPropertyName() == JColorChooser.PREVIEW_PANEL_PROPERTY) ! updatePreviewPanel(chooser.getPreviewPanel()); else if (e.getPropertyName() == JColorChooser.SELECTION_MODEL_PROPERTY) ! ((AbstractColorChooserPanel) pane.getSelectedComponent()) ! .updateChooser(); chooser.repaint(); } *************** public class BasicColorChooserUI extends *** 100,109 **** { if (pane != null) { ! AbstractColorChooserPanel panel = (AbstractColorChooserPanel) pane ! .getSelectedComponent(); ! if (panel != null) ! panel.updateChooser(); } chooser.repaint(); } --- 100,109 ---- { if (pane != null) { ! AbstractColorChooserPanel panel = (AbstractColorChooserPanel) pane ! .getSelectedComponent(); ! if (panel != null) ! panel.updateChooser(); } chooser.repaint(); } *************** public class BasicColorChooserUI extends *** 190,219 **** { if (c instanceof JColorChooser) { ! chooser = (JColorChooser) c; ! chooser.setLayout(new BorderLayout()); ! // Do this first, so we avoid doing work for property change events. ! defaultChoosers = createDefaultChoosers(); ! chooser.setChooserPanels(defaultChoosers); ! pane = new JTabbedPane(); ! pane.addChangeListener(new ChangeListener() ! { ! public void stateChanged(ChangeEvent e) ! { ! pane.repaint(); ! } ! }); ! makeTabs(defaultChoosers); ! chooser.add(pane, BorderLayout.NORTH); ! installPreviewPanel(); ! installDefaults(); ! installListeners(); } } --- 190,219 ---- { if (c instanceof JColorChooser) { ! chooser = (JColorChooser) c; ! chooser.setLayout(new BorderLayout()); ! // Do this first, so we avoid doing work for property change events. ! defaultChoosers = createDefaultChoosers(); ! chooser.setChooserPanels(defaultChoosers); ! pane = new JTabbedPane(); ! pane.addChangeListener(new ChangeListener() ! { ! public void stateChanged(ChangeEvent e) ! { ! pane.repaint(); ! } ! }); ! makeTabs(defaultChoosers); ! chooser.add(pane, BorderLayout.NORTH); ! installPreviewPanel(); ! installDefaults(); ! installListeners(); } } *************** public class BasicColorChooserUI extends *** 274,282 **** { if (prevContainer == null) { ! prevContainer = new JPanel(); ! prevContainer.setLayout(new BorderLayout()); ! chooser.add(prevContainer, BorderLayout.CENTER); } prevContainer.removeAll(); prevContainer.add(preview, BorderLayout.CENTER); --- 274,282 ---- { if (prevContainer == null) { ! prevContainer = new JPanel(); ! prevContainer.setLayout(new BorderLayout()); ! chooser.add(prevContainer, BorderLayout.CENTER); } prevContainer.removeAll(); prevContainer.add(preview, BorderLayout.CENTER); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxEditor.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxEditor.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxEditor.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxEditor.java Tue Jan 11 19:46:05 2011 *************** public class BasicComboBoxEditor extends *** 69,75 **** } /** ! * Returns the component that will be used by the combo box to display and * edit the currently selected item in the combo box. * * @return The editor component, which is a {@link JTextField} in this case. --- 69,75 ---- } /** ! * Returns the component that will be used by the combo box to display and * edit the currently selected item in the combo box. * * @return The editor component, which is a {@link JTextField} in this case. *************** public class BasicComboBoxEditor extends *** 138,144 **** } /** ! * Adds an {@link ActionListener} to the editor component. If the user will * edit currently selected item in the textfield and pressEnter, then action * will be performed. The actionPerformed of this ActionListener should * change the selected item of the comboBox to the newly editted selected --- 138,144 ---- } /** ! * Adds an {@link ActionListener} to the editor component. If the user will * edit currently selected item in the textfield and pressEnter, then action * will be performed. The actionPerformed of this ActionListener should * change the selected item of the comboBox to the newly editted selected *************** public class BasicComboBoxEditor extends *** 163,169 **** } /** ! * A subclass of {@link BasicComboBoxEditor} that implements the * {@link UIResource} interface. */ public static class UIResource extends BasicComboBoxEditor --- 163,169 ---- } /** ! * A subclass of {@link BasicComboBoxEditor} that implements the * {@link UIResource} interface. */ public static class UIResource extends BasicComboBoxEditor diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxRenderer.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxRenderer.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxRenderer.java Wed Jun 14 03:38:34 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxRenderer.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.border.Border; *** 51,62 **** import javax.swing.border.EmptyBorder; /** ! * A renderer for a {@link JComboBox}. * * @author Olga Rodimina */ ! public class BasicComboBoxRenderer ! extends JLabel implements ListCellRenderer, Serializable { /** --- 51,62 ---- import javax.swing.border.EmptyBorder; /** ! * A renderer for a {@link JComboBox}. * * @author Olga Rodimina */ ! public class BasicComboBoxRenderer ! extends JLabel implements ListCellRenderer, Serializable { /** *************** public class BasicComboBoxRenderer *** 75,81 **** /** * Returns preferredSize of the renderer ! * * @return preferredSize of the renderer */ public Dimension getPreferredSize() --- 75,81 ---- /** * Returns preferredSize of the renderer ! * * @return preferredSize of the renderer */ public Dimension getPreferredSize() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxUI.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicComboBoxUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicComboBoxUI extends Com *** 100,108 **** protected JComboBox comboBox; /** ! * The component that is responsible for displaying/editing the selected ! * item of the combo box. ! * * @see BasicComboBoxEditor#getEditorComponent() */ protected Component editor; --- 100,108 ---- protected JComboBox comboBox; /** ! * The component that is responsible for displaying/editing the selected ! * item of the combo box. ! * * @see BasicComboBoxEditor#getEditorComponent() */ protected Component editor; *************** public class BasicComboBoxUI extends Com *** 144,154 **** * Popup list containing the combo box's menu items. */ protected ComboPopup popup; ! protected KeyListener popupKeyListener; ! protected MouseListener popupMouseListener; ! protected MouseMotionListener popupMouseMotionListener; /** --- 144,154 ---- * Popup list containing the combo box's menu items. */ protected ComboPopup popup; ! protected KeyListener popupKeyListener; ! protected MouseListener popupMouseListener; ! protected MouseMotionListener popupMouseMotionListener; /** *************** public class BasicComboBoxUI extends Com *** 187,193 **** } /** ! * A factory method to create a UI delegate for the given * {@link JComponent}, which should be a {@link JComboBox}. * * @param c The {@link JComponent} a UI is being created for. --- 187,193 ---- } /** ! * A factory method to create a UI delegate for the given * {@link JComponent}, which should be a {@link JComboBox}. * * @param c The {@link JComponent} a UI is being created for. *************** public class BasicComboBoxUI extends Com *** 203,209 **** * Installs the UI for the given {@link JComponent}. * * @param c the JComponent to install a UI for. ! * * @see #uninstallUI(JComponent) */ public void installUI(JComponent c) --- 203,209 ---- * Installs the UI for the given {@link JComponent}. * * @param c the JComponent to install a UI for. ! * * @see #uninstallUI(JComponent) */ public void installUI(JComponent c) *************** public class BasicComboBoxUI extends Com *** 230,236 **** { currentEditor = createEditor(); comboBox.setEditor(currentEditor); ! } installComponents(); installListeners(); --- 230,236 ---- { currentEditor = createEditor(); comboBox.setEditor(currentEditor); ! } installComponents(); installListeners(); *************** public class BasicComboBoxUI extends Com *** 246,252 **** * Uninstalls the UI for the given {@link JComponent}. * * @param c The JComponent that is having this UI removed. ! * * @see #installUI(JComponent) */ public void uninstallUI(JComponent c) --- 246,252 ---- * Uninstalls the UI for the given {@link JComponent}. * * @param c The JComponent that is having this UI removed. ! * * @see #installUI(JComponent) */ public void uninstallUI(JComponent c) *************** public class BasicComboBoxUI extends Com *** 262,270 **** } /** ! * Installs the defaults that are defined in the {@link BasicLookAndFeel} * for this {@link JComboBox}. ! * * @see #uninstallDefaults() */ protected void installDefaults() --- 262,270 ---- } /** ! * Installs the defaults that are defined in the {@link BasicLookAndFeel} * for this {@link JComboBox}. ! * * @see #uninstallDefaults() */ protected void installDefaults() *************** public class BasicComboBoxUI extends Com *** 276,282 **** /** * Creates and installs the listeners for this UI. ! * * @see #uninstallListeners() */ protected void installListeners() --- 276,282 ---- /** * Creates and installs the listeners for this UI. ! * * @see #uninstallListeners() */ protected void installListeners() *************** public class BasicComboBoxUI extends Com *** 312,318 **** /** * Uninstalls the defaults and sets any objects created during * install to null. ! * * @see #installDefaults() */ protected void uninstallDefaults() --- 312,318 ---- /** * Uninstalls the defaults and sets any objects created during * install to null. ! * * @see #installDefaults() */ protected void uninstallDefaults() *************** public class BasicComboBoxUI extends Com *** 322,328 **** if (comboBox.getForeground() instanceof UIResource) comboBox.setForeground(null); ! if (comboBox.getBackground() instanceof UIResource) comboBox.setBackground(null); --- 322,328 ---- if (comboBox.getForeground() instanceof UIResource) comboBox.setForeground(null); ! if (comboBox.getBackground() instanceof UIResource) comboBox.setBackground(null); *************** public class BasicComboBoxUI extends Com *** 331,337 **** /** * Detaches all the listeners we attached in {@link #installListeners}. ! * * @see #installListeners() */ protected void uninstallListeners() --- 331,337 ---- /** * Detaches all the listeners we attached in {@link #installListeners}. ! * * @see #installListeners() */ protected void uninstallListeners() *************** public class BasicComboBoxUI extends Com *** 429,435 **** } /** ! * Creates and returns a layout manager for the combo box. Subclasses can * override this method to provide a different layout. * * @return a layout manager for the combo box. --- 429,435 ---- } /** ! * Creates and returns a layout manager for the combo box. Subclasses can * override this method to provide a different layout. * * @return a layout manager for the combo box. *************** public class BasicComboBoxUI extends Com *** 452,458 **** /** * Creates the component that will be responsible for displaying/editing ! * the selected item in the combo box. This editor is used only when combo * box is editable. * * @return A new component that will be responsible for displaying/editing --- 452,458 ---- /** * Creates the component that will be responsible for displaying/editing ! * the selected item in the combo box. This editor is used only when combo * box is editable. * * @return A new component that will be responsible for displaying/editing *************** public class BasicComboBoxUI extends Com *** 484,490 **** /** * Uninstalls components from this {@link JComboBox}. ! * * @see #installComponents() */ protected void uninstallComponents() --- 484,490 ---- /** * Uninstalls components from this {@link JComboBox}. ! * * @see #installComponents() */ protected void uninstallComponents() *************** public class BasicComboBoxUI extends Com *** 546,552 **** } /** ! * Unconfigures the editor for this combo box. */ protected void unconfigureEditor() { --- 546,552 ---- } /** ! * Unconfigures the editor for this combo box. */ protected void unconfigureEditor() { *************** public class BasicComboBoxUI extends Com *** 558,564 **** /** * Configures the arrow button. ! * * @see #configureArrowButton() */ public void configureArrowButton() --- 558,564 ---- /** * Configures the arrow button. ! * * @see #configureArrowButton() */ public void configureArrowButton() *************** public class BasicComboBoxUI extends Com *** 569,575 **** arrowButton.setFocusable(false); arrowButton.addMouseListener(popup.getMouseListener()); arrowButton.addMouseMotionListener(popup.getMouseMotionListener()); ! // Mark the button as not closing the popup, we handle this ourselves. arrowButton.putClientProperty(BasicLookAndFeel.DONT_CANCEL_POPUP, Boolean.TRUE); --- 569,575 ---- arrowButton.setFocusable(false); arrowButton.addMouseListener(popup.getMouseListener()); arrowButton.addMouseMotionListener(popup.getMouseMotionListener()); ! // Mark the button as not closing the popup, we handle this ourselves. arrowButton.putClientProperty(BasicLookAndFeel.DONT_CANCEL_POPUP, Boolean.TRUE); *************** public class BasicComboBoxUI extends Com *** 578,584 **** /** * Unconfigures the arrow button. ! * * @see #configureArrowButton() * * @specnote The specification says this method is implementation specific --- 578,584 ---- /** * Unconfigures the arrow button. ! * * @see #configureArrowButton() * * @specnote The specification says this method is implementation specific *************** public class BasicComboBoxUI extends Com *** 613,619 **** * * @param c The JComboBox to check * ! * @return true if popup part of the JComboBox is visible and * false otherwise. */ public boolean isPopupVisible(JComboBox c) --- 613,619 ---- * * @param c The JComboBox to check * ! * @return true if popup part of the JComboBox is visible and * false otherwise. */ public boolean isPopupVisible(JComboBox c) *************** public class BasicComboBoxUI extends Com *** 917,928 **** = new DefaultListCellRenderer(); /** ! * Returns the default size for the display area of a combo box that does * not contain any elements. This method returns the width and height of ! * a single space in the current font, plus a margin of 1 pixel. * * @return The default display size. ! * * @see #getDisplaySize() */ protected Dimension getDefaultSize() --- 917,928 ---- = new DefaultListCellRenderer(); /** ! * Returns the default size for the display area of a combo box that does * not contain any elements. This method returns the width and height of ! * a single space in the current font, plus a margin of 1 pixel. * * @return The default display size. ! * * @see #getDisplaySize() */ protected Dimension getDefaultSize() *************** public class BasicComboBoxUI extends Com *** 937,943 **** } /** ! * Returns the size of the display area for the combo box. This size will be * the size of the combo box, not including the arrowButton. * * @return The size of the display area for the combo box. --- 937,943 ---- } /** ! * Returns the size of the display area for the combo box. This size will be * the size of the combo box, not including the arrowButton. * * @return The size of the display area for the combo box. *************** public class BasicComboBoxUI extends Com *** 950,960 **** { renderer = DEFAULT_RENDERER; } ! Object prototype = comboBox.getPrototypeDisplayValue(); if (prototype != null) { ! Component comp = renderer.getListCellRendererComponent(listBox, prototype, -1, false, false); currentValuePane.add(comp); comp.setFont(comboBox.getFont()); --- 950,960 ---- { renderer = DEFAULT_RENDERER; } ! Object prototype = comboBox.getPrototypeDisplayValue(); if (prototype != null) { ! Component comp = renderer.getListCellRendererComponent(listBox, prototype, -1, false, false); currentValuePane.add(comp); comp.setFont(comboBox.getFont()); *************** public class BasicComboBoxUI extends Com *** 971,977 **** { for (int i = 0; i < size; ++i) { ! Component comp = renderer.getListCellRendererComponent(listBox, model.getElementAt(i), -1, false, false); currentValuePane.add(comp); comp.setFont(comboBox.getFont()); --- 971,977 ---- { for (int i = 0; i < size; ++i) { ! Component comp = renderer.getListCellRendererComponent(listBox, model.getElementAt(i), -1, false, false); currentValuePane.add(comp); comp.setFont(comboBox.getFont()); *************** public class BasicComboBoxUI extends Com *** 1009,1015 **** (InputMap) UIManager.get("ComboBox.ancestorInputMap")); // Install any action maps here. } ! /** * Uninstalls the keyboard actions for the {@link JComboBox} there were * installed by in {@link #installListeners}. --- 1009,1015 ---- (InputMap) UIManager.get("ComboBox.ancestorInputMap")); // Install any action maps here. } ! /** * Uninstalls the keyboard actions for the {@link JComboBox} there were * installed by in {@link #installListeners}. *************** public class BasicComboBoxUI extends Com *** 1024,1030 **** /** * A {@link LayoutManager} used to position the sub-components of the * {@link JComboBox}. ! * * @see BasicComboBoxUI#createLayoutManager() */ public class ComboBoxLayoutManager implements LayoutManager --- 1024,1030 ---- /** * A {@link LayoutManager} used to position the sub-components of the * {@link JComboBox}. ! * * @see BasicComboBoxUI#createLayoutManager() */ public class ComboBoxLayoutManager implements LayoutManager *************** public class BasicComboBoxUI extends Com *** 1040,1046 **** /** * Adds a component to the layout. This method does nothing, since the * layout manager doesn't need to track the components. ! * * @param name the name to associate the component with (ignored). * @param comp the component (ignored). */ --- 1040,1046 ---- /** * Adds a component to the layout. This method does nothing, since the * layout manager doesn't need to track the components. ! * * @param name the name to associate the component with (ignored). * @param comp the component (ignored). */ *************** public class BasicComboBoxUI extends Com *** 1052,1058 **** /** * Removes a component from the layout. This method does nothing, since * the layout manager doesn't need to track the components. ! * * @param comp the component. */ public void removeLayoutComponent(Component comp) --- 1052,1058 ---- /** * Removes a component from the layout. This method does nothing, since * the layout manager doesn't need to track the components. ! * * @param comp the component. */ public void removeLayoutComponent(Component comp) *************** public class BasicComboBoxUI extends Com *** 1063,1069 **** /** * Returns preferred layout size of the JComboBox. * ! * @param parent the Container for which the preferred size should be * calculated. * * @return The preferred size for the given container --- 1063,1069 ---- /** * Returns preferred layout size of the JComboBox. * ! * @param parent the Container for which the preferred size should be * calculated. * * @return The preferred size for the given container *************** public class BasicComboBoxUI extends Com *** 1075,1083 **** /** * Returns the minimum layout size. ! * * @param parent the container. ! * * @return The minimum size. */ public Dimension minimumLayoutSize(Container parent) --- 1075,1083 ---- /** * Returns the minimum layout size. ! * * @param parent the container. ! * * @return The minimum size. */ public Dimension minimumLayoutSize(Container parent) *************** public class BasicComboBoxUI extends Com *** 1095,1101 **** */ public void layoutContainer(Container parent) { ! // Position editor component to the left of arrow button if combo box is // editable Insets i = getInsets(); int arrowSize = comboBox.getHeight() - (i.top + i.bottom); --- 1095,1101 ---- */ public void layoutContainer(Container parent) { ! // Position editor component to the left of arrow button if combo box is // editable Insets i = getInsets(); int arrowSize = comboBox.getHeight() - (i.top + i.bottom); *************** public class BasicComboBoxUI extends Com *** 1152,1158 **** } /** ! * Handles {@link ItemEvent}s fired by the {@link JComboBox} when its * selected item changes. */ public class ItemHandler extends Object implements ItemListener --- 1152,1158 ---- } /** ! * Handles {@link ItemEvent}s fired by the {@link JComboBox} when its * selected item changes. */ public class ItemHandler extends Object implements ItemListener *************** public class BasicComboBoxUI extends Com *** 1297,1303 **** } } } ! } /** --- 1297,1303 ---- } } } ! } /** *************** public class BasicComboBoxUI extends Com *** 1328,1334 **** /** * Invoked whenever bound property of JComboBox changes. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) --- 1328,1334 ---- /** * Invoked whenever bound property of JComboBox changes. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) *************** public class BasicComboBoxUI extends Com *** 1404,1410 **** isMinimumSizeDirty = true; comboBox.revalidate(); } ! // FIXME: Need to handle changes in other bound properties. } } } --- 1404,1410 ---- isMinimumSizeDirty = true; comboBox.revalidate(); } ! // FIXME: Need to handle changes in other bound properties. } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicComboPopup.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicComboPopup.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicComboPopup.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicComboPopup.java Tue Jan 11 19:46:05 2011 *************** public class BasicComboPopup extends JPo *** 483,489 **** */ protected void installListListeners() { ! // mouse listener listening to mouse events occuring in the // combo box's list of items. listMouseListener = createListMouseListener(); list.addMouseListener(listMouseListener); --- 483,489 ---- */ protected void installListListeners() { ! // mouse listener listening to mouse events occuring in the // combo box's list of items. listMouseListener = createListMouseListener(); list.addMouseListener(listMouseListener); *************** public class BasicComboPopup extends JPo *** 613,619 **** */ protected void autoScrollUp() { ! // scroll up the scroll bar to make the item above visible JScrollBar scrollbar = scroller.getVerticalScrollBar(); int scrollToNext = list.getScrollableUnitIncrement(super.getBounds(), SwingConstants.VERTICAL, --- 613,619 ---- */ protected void autoScrollUp() { ! // scroll up the scroll bar to make the item above visible JScrollBar scrollbar = scroller.getVerticalScrollBar(); int scrollToNext = list.getScrollableUnitIncrement(super.getBounds(), SwingConstants.VERTICAL, *************** public class BasicComboPopup extends JPo *** 621,628 **** scrollbar.setValue(scrollbar.getValue() - scrollToNext); ! // If we haven't reached the begging of the combo box's list of items, ! // then highlight next element above currently highlighted element if (list.getSelectedIndex() != 0) list.setSelectedIndex(list.getSelectedIndex() - 1); } --- 621,628 ---- scrollbar.setValue(scrollbar.getValue() - scrollToNext); ! // If we haven't reached the begging of the combo box's list of items, ! // then highlight next element above currently highlighted element if (list.getSelectedIndex() != 0) list.setSelectedIndex(list.getSelectedIndex() - 1); } *************** public class BasicComboPopup extends JPo *** 633,639 **** */ protected void autoScrollDown() { ! // scroll scrollbar down to make next item visible JScrollBar scrollbar = scroller.getVerticalScrollBar(); int scrollToNext = list.getScrollableUnitIncrement(super.getBounds(), SwingConstants.VERTICAL, --- 633,639 ---- */ protected void autoScrollDown() { ! // scroll scrollbar down to make next item visible JScrollBar scrollbar = scroller.getVerticalScrollBar(); int scrollToNext = list.getScrollableUnitIncrement(super.getBounds(), SwingConstants.VERTICAL, *************** public class BasicComboPopup extends JPo *** 713,724 **** for (int i = 0; i < maxRowCount; i++) { ! Component comp = rend.getListCellRendererComponent(list, ! comboBox.getModel() ! .getElementAt(i), ! -1, false, false); ! Dimension dim = comp.getPreferredSize(); ! totalHeight += dim.height; } return totalHeight == 0 ? 100 : totalHeight; --- 713,724 ---- for (int i = 0; i < maxRowCount; i++) { ! Component comp = rend.getListCellRendererComponent(list, ! comboBox.getModel() ! .getElementAt(i), ! -1, false, false); ! Dimension dim = comp.getPreferredSize(); ! totalHeight += dim.height; } return totalHeight == 0 ? 100 : totalHeight; *************** public class BasicComboPopup extends JPo *** 995,1003 **** { if (e.getPropertyName().equals("renderer")) { ! list.setCellRenderer(comboBox.getRenderer()); ! if (isVisible()) ! hide(); } if (e.getPropertyName().equals("model")) { --- 995,1003 ---- { if (e.getPropertyName().equals("renderer")) { ! list.setCellRenderer(comboBox.getRenderer()); ! if (isVisible()) ! hide(); } if (e.getPropertyName().equals("model")) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicDesktopIconUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicDesktopIconUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicDesktopIconUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicDesktopIconUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicDesktopIconUI extends *** 118,124 **** yOffset = e.getY(); pane = frame.getDesktopPane(); if (pane != null) ! pane.getDesktopManager().beginDraggingFrame(desktopIcon); } /** --- 118,124 ---- yOffset = e.getY(); pane = frame.getDesktopPane(); if (pane != null) ! pane.getDesktopManager().beginDraggingFrame(desktopIcon); } /** *************** public class BasicDesktopIconUI extends *** 129,135 **** public void mouseReleased(MouseEvent e) { if (pane != null) ! pane.getDesktopManager().endDraggingFrame(desktopIcon); xOffset = 0; yOffset = 0; } --- 129,135 ---- public void mouseReleased(MouseEvent e) { if (pane != null) ! pane.getDesktopManager().endDraggingFrame(desktopIcon); xOffset = 0; yOffset = 0; } *************** public class BasicDesktopIconUI extends *** 147,155 **** int newHeight) { if (pane != null) ! pane.getDesktopManager().dragFrame(f, newX, newY); else ! desktopIcon.setBounds(newX, newY, newWidth, newHeight); } } --- 147,155 ---- int newHeight) { if (pane != null) ! pane.getDesktopManager().dragFrame(f, newX, newY); else ! desktopIcon.setBounds(newX, newY, newWidth, newHeight); } } *************** public class BasicDesktopIconUI extends *** 308,314 **** /** The PropertyChangeListener listening to the JDesktopIcon. */ private transient PropertyChangeListener propertyHandler; ! /** The default icon used when no frame icon is given by the JInternalFrame. */ static Icon defaultIcon = new InternalFrameDefaultMenuIcon(); --- 308,314 ---- /** The PropertyChangeListener listening to the JDesktopIcon. */ private transient PropertyChangeListener propertyHandler; ! /** The default icon used when no frame icon is given by the JInternalFrame. */ static Icon defaultIcon = new InternalFrameDefaultMenuIcon(); *************** public class BasicDesktopIconUI extends *** 389,403 **** { if (c instanceof JDesktopIcon) { ! desktopIcon = (JDesktopIcon) c; ! desktopIcon.setLayout(new BorderLayout()); ! frame = desktopIcon.getInternalFrame(); ! installDefaults(); ! installComponents(); ! installListeners(); ! desktopIcon.setOpaque(true); } } --- 389,403 ---- { if (c instanceof JDesktopIcon) { ! desktopIcon = (JDesktopIcon) c; ! desktopIcon.setLayout(new BorderLayout()); ! frame = desktopIcon.getInternalFrame(); ! installDefaults(); ! installComponents(); ! installListeners(); ! desktopIcon.setOpaque(true); } } *************** public class BasicDesktopIconUI extends *** 409,419 **** public void uninstallUI(JComponent c) { desktopIcon.setOpaque(false); ! uninstallListeners(); uninstallComponents(); uninstallDefaults(); ! frame = null; desktopIcon.setLayout(null); desktopIcon = null; --- 409,419 ---- public void uninstallUI(JComponent c) { desktopIcon.setOpaque(false); ! uninstallListeners(); uninstallComponents(); uninstallDefaults(); ! frame = null; desktopIcon.setLayout(null); desktopIcon = null; *************** public class BasicDesktopIconUI extends *** 444,450 **** protected void uninstallComponents() { desktopIcon.remove(button); ! button = null; } --- 444,450 ---- protected void uninstallComponents() { desktopIcon.remove(button); ! button = null; } *************** public class BasicDesktopIconUI extends *** 460,488 **** propertyHandler = new PropertyChangeListener() { ! public void propertyChange(PropertyChangeEvent e) ! { ! if (e.getPropertyName().equals(JInternalFrame.TITLE_PROPERTY)) ! button.setText(desktopIcon.getInternalFrame().getTitle()); ! else if (e.getPropertyName().equals(JInternalFrame.FRAME_ICON_PROPERTY)) ! { ! Icon use = desktopIcon.getInternalFrame().getFrameIcon(); ! if (use == null) ! use = defaultIcon; ! button.setIcon(use); ! } ! desktopIcon.revalidate(); ! desktopIcon.repaint(); ! } }; frame.addPropertyChangeListener(propertyHandler); button.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent e) ! { deiconize(); ! } }); } --- 460,488 ---- propertyHandler = new PropertyChangeListener() { ! public void propertyChange(PropertyChangeEvent e) ! { ! if (e.getPropertyName().equals(JInternalFrame.TITLE_PROPERTY)) ! button.setText(desktopIcon.getInternalFrame().getTitle()); ! else if (e.getPropertyName().equals(JInternalFrame.FRAME_ICON_PROPERTY)) ! { ! Icon use = desktopIcon.getInternalFrame().getFrameIcon(); ! if (use == null) ! use = defaultIcon; ! button.setIcon(use); ! } ! desktopIcon.revalidate(); ! desktopIcon.repaint(); ! } }; frame.addPropertyChangeListener(propertyHandler); button.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent e) ! { deiconize(); ! } }); } *************** public class BasicDesktopIconUI extends *** 492,501 **** protected void uninstallListeners() { // button is nulled so no need to remove it. ! frame.removePropertyChangeListener(propertyHandler); propertyHandler = null; ! desktopIcon.removeMouseMotionListener(mouseHandler); desktopIcon.removeMouseListener(mouseHandler); } --- 492,501 ---- protected void uninstallListeners() { // button is nulled so no need to remove it. ! frame.removePropertyChangeListener(propertyHandler); propertyHandler = null; ! desktopIcon.removeMouseMotionListener(mouseHandler); desktopIcon.removeMouseListener(mouseHandler); } *************** public class BasicDesktopIconUI extends *** 506,512 **** protected void installDefaults() { // FIXME: Move border to defaults. ! desktopIcon.setBorder(new DesktopIconBorder()); } /** --- 506,512 ---- protected void installDefaults() { // FIXME: Move border to defaults. ! desktopIcon.setBorder(new DesktopIconBorder()); } /** *************** public class BasicDesktopIconUI extends *** 578,584 **** /** * This method deiconizes the JInternalFrame associated with the JDesktopIcon. */ ! public void deiconize() { try { --- 578,584 ---- /** * This method deiconizes the JInternalFrame associated with the JDesktopIcon. */ ! public void deiconize() { try { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicDesktopPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicDesktopPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicDesktopPaneUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicDesktopPaneUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicDesktopPaneUI extends *** 94,100 **** public boolean isEnabled() { if (desktop.getSelectedFrame() != null) ! return desktop.getSelectedFrame().isClosable(); return false; } } --- 94,100 ---- public boolean isEnabled() { if (desktop.getSelectedFrame() != null) ! return desktop.getSelectedFrame().isClosable(); return false; } } *************** public class BasicDesktopPaneUI extends *** 133,139 **** public boolean isEnabled() { if (desktop.getSelectedFrame() != null) ! return desktop.getSelectedFrame().isMaximizable(); return false; } } --- 133,139 ---- public boolean isEnabled() { if (desktop.getSelectedFrame() != null) ! return desktop.getSelectedFrame().isMaximizable(); return false; } } *************** public class BasicDesktopPaneUI extends *** 172,178 **** public boolean isEnabled() { if (desktop.getSelectedFrame() != null) ! return desktop.getSelectedFrame().isIconifiable(); return false; } } --- 172,178 ---- public boolean isEnabled() { if (desktop.getSelectedFrame() != null) ! return desktop.getSelectedFrame().isIconifiable(); return false; } } *************** public class BasicDesktopPaneUI extends *** 191,213 **** */ public void actionPerformed(ActionEvent e) { ! // This is supposed to set the next selected frame. JInternalFrame[] frames = desktop.getAllFrames(); if (frames.length == 0) ! return; JInternalFrame sFrame = frames[0]; if (desktop.getSelectedFrame() != null) ! sFrame = desktop.getSelectedFrame(); int i = 0; for (; i < frames.length; i++) ! if (frames[i] == sFrame) ! break; ! // FIXME: Navigate actions go reverse too. if (i == frames.length) ! i = 0; desktop.setSelectedFrame(frames[i]); } --- 191,213 ---- */ public void actionPerformed(ActionEvent e) { ! // This is supposed to set the next selected frame. JInternalFrame[] frames = desktop.getAllFrames(); if (frames.length == 0) ! return; JInternalFrame sFrame = frames[0]; if (desktop.getSelectedFrame() != null) ! sFrame = desktop.getSelectedFrame(); int i = 0; for (; i < frames.length; i++) ! if (frames[i] == sFrame) ! break; ! // FIXME: Navigate actions go reverse too. if (i == frames.length) ! i = 0; desktop.setSelectedFrame(frames[i]); } *************** public class BasicDesktopPaneUI extends *** 399,409 **** { if (c instanceof JDesktopPane) { ! desktop = (JDesktopPane) c; ! installDefaults(); ! installDesktopManager(); ! installKeyboardActions(); } } --- 399,409 ---- { if (c instanceof JDesktopPane) { ! desktop = (JDesktopPane) c; ! installDefaults(); ! installDesktopManager(); ! installKeyboardActions(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.filechooser.FileSyste *** 54,60 **** /** * Implements an AbstractListModel for directories where the source ! * of the files is a JFileChooser object. * * This class is used for sorting and ordering the file list in * a JFileChooser L&F object. --- 54,60 ---- /** * Implements an AbstractListModel for directories where the source ! * of the files is a JFileChooser object. * * This class is used for sorting and ordering the file list in * a JFileChooser L&F object. *************** public class BasicDirectoryModel extends *** 188,194 **** if (filechooser.accept(files[i])) accepted.add(files[i]); } ! // Occasional check if we have been interrupted. if (isInterrupted()) return; --- 188,194 ---- if (filechooser.accept(files[i])) accepted.add(files[i]); } ! // Occasional check if we have been interrupted. if (isInterrupted()) return; *************** public class BasicDirectoryModel extends *** 286,292 **** List added = newCache.subList(start, end); UpdateSwingRequest r = new UpdateSwingRequest(added, start, ! null, 0); invokeLater(r); newCache = null; } --- 286,292 ---- List added = newCache.subList(start, end); UpdateSwingRequest r = new UpdateSwingRequest(added, start, ! null, 0); invokeLater(r); newCache = null; } *************** public class BasicDirectoryModel extends *** 332,341 **** { public int compare(Object o1, Object o2) { ! if (lt((File) o1, (File) o2)) ! return -1; ! else ! return 1; } }; --- 332,341 ---- { public int compare(Object o1, Object o2) { ! if (lt((File) o1, (File) o2)) ! return -1; ! else ! return 1; } }; *************** public class BasicDirectoryModel extends *** 366,372 **** } /** ! * Fires a content change event. */ public void fireContentsChanged() { --- 366,372 ---- } /** ! * Fires a content change event. */ public void fireContentsChanged() { *************** public class BasicDirectoryModel extends *** 397,403 **** } /** ! * Returns the (java.io.File) object at * an index in the list. * * @param index The list index --- 397,403 ---- } /** ! * Returns the (java.io.File) object at * an index in the list. * * @param index The list index *************** public class BasicDirectoryModel extends *** 441,447 **** } /** ! * Returns the size of the list, which only includes directories * if the JFileChooser is set to DIRECTORIES_ONLY. * * Otherwise, both directories and files are included in the count. --- 441,447 ---- } /** ! * Returns the size of the list, which only includes directories * if the JFileChooser is set to DIRECTORIES_ONLY. * * Otherwise, both directories and files are included in the count. *************** public class BasicDirectoryModel extends *** 537,548 **** || property.equals(JFileChooser.FILE_VIEW_CHANGED_PROPERTY) ) { ! validateFileCache(); } } /** ! * Renames a file - However, does not re-sort the list * or replace the old file with the new one in the list. * * @param oldFile The old file --- 537,548 ---- || property.equals(JFileChooser.FILE_VIEW_CHANGED_PROPERTY) ) { ! validateFileCache(); } } /** ! * Renames a file - However, does not re-sort the list * or replace the old file with the new one in the list. * * @param oldFile The old file *************** public class BasicDirectoryModel extends *** 584,587 **** } } } - --- 584,586 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicEditorPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicEditorPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicEditorPaneUI.java Fri Nov 18 00:59:33 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicEditorPaneUI.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BasicEditorPaneUI.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BasicEditorPaneUI.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.metal.MetalIconF *** 72,78 **** /** ! * A UI delegate for the {@link JFileChooser} component under the * {@link BasicLookAndFeel}. */ public class BasicFileChooserUI extends FileChooserUI --- 72,78 ---- /** ! * A UI delegate for the {@link JFileChooser} component under the * {@link BasicLookAndFeel}. */ public class BasicFileChooserUI extends FileChooserUI *************** public class BasicFileChooserUI extends *** 89,95 **** { // Nothing to do here. } ! /** * Returns true always, as all files are accepted by this * filter. --- 89,95 ---- { // Nothing to do here. } ! /** * Returns true always, as all files are accepted by this * filter. *************** public class BasicFileChooserUI extends *** 116,122 **** /** * Handles a user action to approve the dialog selection. ! * * @see BasicFileChooserUI#getApproveSelectionAction() */ protected class ApproveSelectionAction extends AbstractAction --- 116,122 ---- /** * Handles a user action to approve the dialog selection. ! * * @see BasicFileChooserUI#getApproveSelectionAction() */ protected class ApproveSelectionAction extends AbstractAction *************** public class BasicFileChooserUI extends *** 131,137 **** /** * Sets the current selection and closes the dialog. ! * * @param e the action event. */ public void actionPerformed(ActionEvent e) --- 131,137 ---- /** * Sets the current selection and closes the dialog. ! * * @param e the action event. */ public void actionPerformed(ActionEvent e) *************** public class BasicFileChooserUI extends *** 159,166 **** else { File f = new File(filechooser.getCurrentDirectory(), getFileName()); ! if ( selectedDir != null ) ! f = selectedDir; if (filechooser.isTraversable(f)) { filechooser.setCurrentDirectory(f); --- 159,166 ---- else { File f = new File(filechooser.getCurrentDirectory(), getFileName()); ! if ( selectedDir != null ) ! f = selectedDir; if (filechooser.isTraversable(f)) { filechooser.setCurrentDirectory(f); *************** public class BasicFileChooserUI extends *** 212,218 **** } /** ! * Retrieves the icon associated with the specified file/directory, if * there is one. * * @param f the file/directory. --- 212,218 ---- } /** ! * Retrieves the icon associated with the specified file/directory, if * there is one. * * @param f the file/directory. *************** public class BasicFileChooserUI extends *** 225,232 **** } /** ! * Returns a description of the given file/directory. In this ! * implementation, the description is the same as the name returned by * {@link #getName(File)}. * * @param f the file/directory. --- 225,232 ---- } /** ! * Returns a description of the given file/directory. In this ! * implementation, the description is the same as the name returned by * {@link #getName(File)}. * * @param f the file/directory. *************** public class BasicFileChooserUI extends *** 249,259 **** { Icon val = getCachedIcon(f); if (val != null) ! return val; if (filechooser.isTraversable(f)) ! val = directoryIcon; else ! val = fileIcon; cacheIcon(f, val); return val; } --- 249,259 ---- { Icon val = getCachedIcon(f); if (val != null) ! return val; if (filechooser.isTraversable(f)) ! val = directoryIcon; else ! val = fileIcon; cacheIcon(f, val); return val; } *************** public class BasicFileChooserUI extends *** 287,295 **** public String getTypeDescription(File f) { if (filechooser.isTraversable(f)) ! return dirDescText; else ! return fileDescText; } /** --- 287,295 ---- public String getTypeDescription(File f) { if (filechooser.isTraversable(f)) ! return dirDescText; else ! return fileDescText; } /** *************** public class BasicFileChooserUI extends *** 308,314 **** /** * Handles an action to cancel the file chooser. ! * * @see BasicFileChooserUI#getCancelSelectionAction() */ protected class CancelSelectionAction extends AbstractAction --- 308,314 ---- /** * Handles an action to cancel the file chooser. ! * * @see BasicFileChooserUI#getCancelSelectionAction() */ protected class CancelSelectionAction extends AbstractAction *************** public class BasicFileChooserUI extends *** 338,344 **** /** * An action to handle changes to the parent directory (for example, via * a click on the "up folder" button). ! * * @see BasicFileChooserUI#getChangeToParentDirectoryAction() */ protected class ChangeToParentDirectoryAction extends AbstractAction --- 338,344 ---- /** * An action to handle changes to the parent directory (for example, via * a click on the "up folder" button). ! * * @see BasicFileChooserUI#getChangeToParentDirectoryAction() */ protected class ChangeToParentDirectoryAction extends AbstractAction *************** public class BasicFileChooserUI extends *** 366,372 **** /** * A mouse listener that handles double-click events. ! * * @see BasicFileChooserUI#createDoubleClickListener(JFileChooser, JList) */ protected class DoubleClickListener extends MouseAdapter --- 366,372 ---- /** * A mouse listener that handles double-click events. ! * * @see BasicFileChooserUI#createDoubleClickListener(JFileChooser, JList) */ protected class DoubleClickListener extends MouseAdapter *************** public class BasicFileChooserUI extends *** 392,398 **** /** * Handles a mouse click event. ! * * @param e the event. */ public void mouseClicked(MouseEvent e) --- 392,398 ---- /** * Handles a mouse click event. ! * * @param e the event. */ public void mouseClicked(MouseEvent e) *************** public class BasicFileChooserUI extends *** 422,428 **** String path = p.toString(); File f = fsv.createFileObject(path); filechooser.setSelectedFile(f); ! if (filechooser.isMultiSelectionEnabled()) { int[] inds = list.getSelectedIndices(); --- 422,428 ---- String path = p.toString(); File f = fsv.createFileObject(path); filechooser.setSelectedFile(f); ! if (filechooser.isMultiSelectionEnabled()) { int[] inds = list.getSelectedIndices(); *************** public class BasicFileChooserUI extends *** 431,437 **** allFiles[i] = (File) list.getModel().getElementAt(inds[i]); filechooser.setSelectedFiles(allFiles); } ! if (filechooser.isTraversable(f)) { setDirectorySelected(true); --- 431,437 ---- allFiles[i] = (File) list.getModel().getElementAt(inds[i]); filechooser.setSelectedFiles(allFiles); } ! if (filechooser.isTraversable(f)) { setDirectorySelected(true); *************** public class BasicFileChooserUI extends *** 444,461 **** } lastSelected = path; parentPath = f.getParent(); ! if (f.isFile()) setFileName(f.getName()); ! else if (filechooser.getFileSelectionMode() != ! JFileChooser.FILES_ONLY) setFileName(path); } } /** * Handles a mouse entered event (NOT IMPLEMENTED). ! * * @param e the mouse event. */ public void mouseEntered(MouseEvent e) --- 444,461 ---- } lastSelected = path; parentPath = f.getParent(); ! if (f.isFile()) setFileName(f.getName()); ! else if (filechooser.getFileSelectionMode() != ! JFileChooser.FILES_ONLY) setFileName(path); } } /** * Handles a mouse entered event (NOT IMPLEMENTED). ! * * @param e the mouse event. */ public void mouseEntered(MouseEvent e) *************** public class BasicFileChooserUI extends *** 465,473 **** } /** ! * An action that changes the file chooser to display the user's home ! * directory. ! * * @see BasicFileChooserUI#getGoHomeAction() */ protected class GoHomeAction extends AbstractAction --- 465,473 ---- } /** ! * An action that changes the file chooser to display the user's home ! * directory. ! * * @see BasicFileChooserUI#getGoHomeAction() */ protected class GoHomeAction extends AbstractAction *************** public class BasicFileChooserUI extends *** 497,503 **** /** * An action that handles the creation of a new folder/directory. ! * * @see BasicFileChooserUI#getNewFolderAction() */ protected class NewFolderAction extends AbstractAction --- 497,503 ---- /** * An action that handles the creation of a new folder/directory. ! * * @see BasicFileChooserUI#getNewFolderAction() */ protected class NewFolderAction extends AbstractAction *************** public class BasicFileChooserUI extends *** 519,530 **** { try { ! filechooser.getFileSystemView().createNewFolder(filechooser ! .getCurrentDirectory()); } catch (IOException ioe) { ! return; } filechooser.rescanCurrentDirectory(); filechooser.repaint(); --- 519,530 ---- { try { ! filechooser.getFileSystemView().createNewFolder(filechooser ! .getCurrentDirectory()); } catch (IOException ioe) { ! return; } filechooser.rescanCurrentDirectory(); filechooser.repaint(); *************** public class BasicFileChooserUI extends *** 533,539 **** /** * A listener for selection events in the file list. ! * * @see BasicFileChooserUI#createListSelectionListener(JFileChooser) */ protected class SelectionListener implements ListSelectionListener --- 533,539 ---- /** * A listener for selection events in the file list. ! * * @see BasicFileChooserUI#createListSelectionListener(JFileChooser) */ protected class SelectionListener implements ListSelectionListener *************** public class BasicFileChooserUI extends *** 556,579 **** JList list = (JList) e.getSource(); Object f = list.getSelectedValue(); if (f == null) ! return; File file = filechooser.getFileSystemView().createFileObject(f.toString()); if (! filechooser.isTraversable(file)) ! { ! selectedDir = null; ! filechooser.setSelectedFile(file); ! } else ! { ! selectedDir = file; ! filechooser.setSelectedFile(null); ! } } } /** * DOCUMENT ME! ! * * @see BasicFileChooserUI#getUpdateAction() */ protected class UpdateAction extends AbstractAction --- 556,579 ---- JList list = (JList) e.getSource(); Object f = list.getSelectedValue(); if (f == null) ! return; File file = filechooser.getFileSystemView().createFileObject(f.toString()); if (! filechooser.isTraversable(file)) ! { ! selectedDir = null; ! filechooser.setSelectedFile(file); ! } else ! { ! selectedDir = file; ! filechooser.setSelectedFile(null); ! } } } /** * DOCUMENT ME! ! * * @see BasicFileChooserUI#getUpdateAction() */ protected class UpdateAction extends AbstractAction *************** public class BasicFileChooserUI extends *** 722,767 **** // FIXME: describe what is contained in the bottom panel /** The bottom panel. */ JPanel bottomPanel; ! /** The close panel. */ JPanel closePanel; /** Text box that displays file name */ JTextField entry; ! /** Current parent path */ String parentPath; ! /** * The action for the 'approve' button. * @see #getApproveSelectionAction() */ private ApproveSelectionAction approveSelectionAction; ! /** * The action for the 'cancel' button. * @see #getCancelSelectionAction() */ private CancelSelectionAction cancelSelectionAction; ! /** * The action for the 'go home' control button. * @see #getGoHomeAction() */ private GoHomeAction goHomeAction; ! /** * The action for the 'up folder' control button. * @see #getChangeToParentDirectoryAction() */ private ChangeToParentDirectoryAction changeToParentDirectoryAction; ! /** * The action for the 'new folder' control button. * @see #getNewFolderAction() */ private NewFolderAction newFolderAction; ! /** * The action for ???. // FIXME: what is this? * @see #getUpdateAction() --- 722,767 ---- // FIXME: describe what is contained in the bottom panel /** The bottom panel. */ JPanel bottomPanel; ! /** The close panel. */ JPanel closePanel; /** Text box that displays file name */ JTextField entry; ! /** Current parent path */ String parentPath; ! /** * The action for the 'approve' button. * @see #getApproveSelectionAction() */ private ApproveSelectionAction approveSelectionAction; ! /** * The action for the 'cancel' button. * @see #getCancelSelectionAction() */ private CancelSelectionAction cancelSelectionAction; ! /** * The action for the 'go home' control button. * @see #getGoHomeAction() */ private GoHomeAction goHomeAction; ! /** * The action for the 'up folder' control button. * @see #getChangeToParentDirectoryAction() */ private ChangeToParentDirectoryAction changeToParentDirectoryAction; ! /** * The action for the 'new folder' control button. * @see #getNewFolderAction() */ private NewFolderAction newFolderAction; ! /** * The action for ???. // FIXME: what is this? * @see #getUpdateAction() *************** public class BasicFileChooserUI extends *** 774,780 **** * the directory on "Open" when in that mode. */ private File selectedDir; ! // -- end private -- /** --- 774,780 ---- * the directory on "Open" when in that mode. */ private File selectedDir; ! // -- end private -- /** *************** public class BasicFileChooserUI extends *** 810,816 **** /** * Installs the UI for the specified component. ! * * @param c the component (should be a {@link JFileChooser}). */ public void installUI(JComponent c) --- 810,816 ---- /** * Installs the UI for the specified component. ! * * @param c the component (should be a {@link JFileChooser}). */ public void installUI(JComponent c) *************** public class BasicFileChooserUI extends *** 825,831 **** installDefaults(fc); installComponents(fc); installListeners(fc); ! File path = filechooser.getCurrentDirectory(); if (path != null) parentPath = path.getParent(); --- 825,831 ---- installDefaults(fc); installComponents(fc); installListeners(fc); ! File path = filechooser.getCurrentDirectory(); if (path != null) parentPath = path.getParent(); *************** public class BasicFileChooserUI extends *** 834,840 **** /** * Uninstalls this UI from the given component. ! * * @param c the component (should be a {@link JFileChooser}). */ public void uninstallUI(JComponent c) --- 834,840 ---- /** * Uninstalls this UI from the given component. ! * * @param c the component (should be a {@link JFileChooser}). */ public void uninstallUI(JComponent c) *************** public class BasicFileChooserUI extends *** 868,874 **** if (parentFiles.size() == 0) return; ! } /** * Creates and install the subcomponents for the file chooser. --- 868,874 ---- if (parentFiles.size() == 0) return; ! } /** * Creates and install the subcomponents for the file chooser. *************** public class BasicFileChooserUI extends *** 996,1004 **** directoryOpenButtonText = "Open"; directoryOpenButtonToolTipText = "Open selected directory"; ! directoryOpenButtonMnemonic = new Integer((String) UIManager.get("FileChooser.directoryOpenButtonMnemonic")).intValue(); ! helpButtonText = "Help"; helpButtonToolTipText = "FileChooser help"; helpButtonMnemonic = new Integer((String) UIManager.get("FileChooser.helpButtonMnemonic")).intValue(); --- 996,1004 ---- directoryOpenButtonText = "Open"; directoryOpenButtonToolTipText = "Open selected directory"; ! directoryOpenButtonMnemonic = new Integer((String) UIManager.get("FileChooser.directoryOpenButtonMnemonic")).intValue(); ! helpButtonText = "Help"; helpButtonToolTipText = "FileChooser help"; helpButtonMnemonic = new Integer((String) UIManager.get("FileChooser.helpButtonMnemonic")).intValue(); *************** public class BasicFileChooserUI extends *** 1010,1016 **** saveButtonText = "Save"; saveButtonToolTipText = "Save selected file"; saveButtonMnemonic = new Integer((String) UIManager.get("FileChooser.saveButtonMnemonic")).intValue(); ! updateButtonText = "Update"; updateButtonToolTipText = "Update directory listing"; updateButtonMnemonic = new Integer((String) UIManager.get("FileChooser.updateButtonMnemonic")).intValue(); --- 1010,1016 ---- saveButtonText = "Save"; saveButtonToolTipText = "Save selected file"; saveButtonMnemonic = new Integer((String) UIManager.get("FileChooser.saveButtonMnemonic")).intValue(); ! updateButtonText = "Update"; updateButtonToolTipText = "Update directory listing"; updateButtonMnemonic = new Integer((String) UIManager.get("FileChooser.updateButtonMnemonic")).intValue(); *************** public class BasicFileChooserUI extends *** 1041,1047 **** saveButtonText = null; saveButtonToolTipText = null; ! updateButtonText = null; updateButtonToolTipText = null; } --- 1041,1047 ---- saveButtonText = null; saveButtonToolTipText = null; ! updateButtonText = null; updateButtonToolTipText = null; } *************** public class BasicFileChooserUI extends *** 1067,1075 **** /** * Creates a listener to handle changes to the properties of the given * file chooser component. ! * * @param fc the file chooser component. ! * * @return A new listener. */ public PropertyChangeListener createPropertyChangeListener(JFileChooser fc) --- 1067,1075 ---- /** * Creates a listener to handle changes to the properties of the given * file chooser component. ! * * @param fc the file chooser component. ! * * @return A new listener. */ public PropertyChangeListener createPropertyChangeListener(JFileChooser fc) *************** public class BasicFileChooserUI extends *** 1080,1086 **** /** * Returns the current file name. ! * * @return The current file name. */ public String getFileName() --- 1080,1086 ---- /** * Returns the current file name. ! * * @return The current file name. */ public String getFileName() *************** public class BasicFileChooserUI extends *** 1092,1098 **** * Returns the current directory name. * * @return The directory name. ! * * @see #setDirectoryName(String) */ public String getDirectoryName() --- 1092,1098 ---- * Returns the current directory name. * * @return The directory name. ! * * @see #setDirectoryName(String) */ public String getDirectoryName() *************** public class BasicFileChooserUI extends *** 1105,1116 **** * Sets the file name. * * @param filename the file name. ! * * @see #getFileName() */ public void setFileName(String filename) { ! // FIXME: it might be the case that this method provides an access // point for the JTextField (or whatever) a subclass is using... //this.filename = filename; } --- 1105,1116 ---- * Sets the file name. * * @param filename the file name. ! * * @see #getFileName() */ public void setFileName(String filename) { ! // FIXME: it might be the case that this method provides an access // point for the JTextField (or whatever) a subclass is using... //this.filename = filename; } *************** public class BasicFileChooserUI extends *** 1119,1125 **** * Sets the directory name (NOT IMPLEMENTED). * * @param dirname the directory name. ! * * @see #getDirectoryName() */ public void setDirectoryName(String dirname) --- 1119,1125 ---- * Sets the directory name (NOT IMPLEMENTED). * * @param dirname the directory name. ! * * @see #getDirectoryName() */ public void setDirectoryName(String dirname) *************** public class BasicFileChooserUI extends *** 1149,1155 **** } /** ! * Returns the {@link JFileChooser} component that this UI delegate * represents. * * @return The component represented by this UI delegate. --- 1149,1155 ---- } /** ! * Returns the {@link JFileChooser} component that this UI delegate * represents. * * @return The component represented by this UI delegate. *************** public class BasicFileChooserUI extends *** 1184,1190 **** /** * Returns the tool tip text for the approve (open/save) button. This first * checks the file chooser to see if a value has been explicitly set - if ! * not, a default value appropriate for the type of file chooser is * returned. * * @param fc the file chooser. --- 1184,1190 ---- /** * Returns the tool tip text for the approve (open/save) button. This first * checks the file chooser to see if a value has been explicitly set - if ! * not, a default value appropriate for the type of file chooser is * returned. * * @param fc the file chooser. *************** public class BasicFileChooserUI extends *** 1236,1242 **** } /** ! * Returns true if a directory is selected, and * false otherwise. * * @return A boolean. --- 1236,1242 ---- } /** ! * Returns true if a directory is selected, and * false otherwise. * * @return A boolean. *************** public class BasicFileChooserUI extends *** 1295,1301 **** * @param fc the file chooser component. * * @return The file view. ! * * @see JFileChooser#getFileView() */ public FileView getFileView(JFileChooser fc) --- 1295,1301 ---- * @param fc the file chooser component. * * @return The file view. ! * * @see JFileChooser#getFileView() */ public FileView getFileView(JFileChooser fc) *************** public class BasicFileChooserUI extends *** 1309,1315 **** * @param fc the file chooser (null not permitted). * * @return The dialog title. ! * * @see JFileChooser#getDialogTitle() */ public String getDialogTitle(JFileChooser fc) --- 1309,1315 ---- * @param fc the file chooser (null not permitted). * * @return The dialog title. ! * * @see JFileChooser#getDialogTitle() */ public String getDialogTitle(JFileChooser fc) *************** public class BasicFileChooserUI extends *** 1326,1332 **** * @param fc the file chooser (null not permitted). * * @return The approve button mnemonic. ! * * @see JFileChooser#getApproveButtonMnemonic() */ public int getApproveButtonMnemonic(JFileChooser fc) --- 1326,1332 ---- * @param fc the file chooser (null not permitted). * * @return The approve button mnemonic. ! * * @see JFileChooser#getApproveButtonMnemonic() */ public int getApproveButtonMnemonic(JFileChooser fc) *************** public class BasicFileChooserUI extends *** 1345,1351 **** * @param fc the file chooser (null not permitted). * * @return The approve button text. ! * * @see JFileChooser#getApproveButtonText() */ public String getApproveButtonText(JFileChooser fc) --- 1345,1351 ---- * @param fc the file chooser (null not permitted). * * @return The approve button text. ! * * @see JFileChooser#getApproveButtonText() */ public String getApproveButtonText(JFileChooser fc) *************** public class BasicFileChooserUI extends *** 1362,1368 **** } /** ! * Creates and returns a new action that will be used with the "new folder" * button. * * @return A new instance of {@link NewFolderAction}. --- 1362,1368 ---- } /** ! * Creates and returns a new action that will be used with the "new folder" * button. * * @return A new instance of {@link NewFolderAction}. *************** public class BasicFileChooserUI extends *** 1375,1381 **** } /** ! * Creates and returns a new action that will be used with the "home folder" * button. * * @return A new instance of {@link GoHomeAction}. --- 1375,1381 ---- } /** ! * Creates and returns a new action that will be used with the "home folder" * button. * * @return A new instance of {@link GoHomeAction}. *************** public class BasicFileChooserUI extends *** 1426,1432 **** /** * Returns the update action (an instance of {@link UpdateAction}). * ! * @return An action. */ public Action getUpdateAction() { --- 1426,1432 ---- /** * Returns the update action (an instance of {@link UpdateAction}). * ! * @return An action. */ public Action getUpdateAction() { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicFormattedTextFieldUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicFormattedTextFieldUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicFormattedTextFieldUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicFormattedTextFieldUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicFormattedTextFieldUI e *** 66,69 **** { return "FormattedTextField"; } ! } \ No newline at end of file --- 66,69 ---- { return "FormattedTextField"; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java Tue Jan 11 19:46:05 2011 *************** public class BasicGraphicsUtils *** 142,148 **** g.setColor(darkShadow); g.drawLine(x + 1, y + 1, x2 - 2, y + 1); // top, inner g.drawLine(x + 1, y + 2, x + 1, y2 - 2); // left, inner ! g.setColor(highlight); g.drawLine(x + 1, y2 - 1, x2 - 1, y2 - 1); // bottom, inner g.drawLine(x2 - 1, y + 1, x2 - 1, y2 - 2); // right, inner --- 142,148 ---- g.setColor(darkShadow); g.drawLine(x + 1, y + 1, x2 - 2, y + 1); // top, inner g.drawLine(x + 1, y + 2, x + 1, y2 - 2); // left, inner ! g.setColor(highlight); g.drawLine(x + 1, y2 - 1, x2 - 1, y2 - 1); // bottom, inner g.drawLine(x2 - 1, y + 1, x2 - 1, y2 - 2); // right, inner *************** public class BasicGraphicsUtils *** 156,163 **** g.setColor(oldColor); } } ! ! /** * Determines the width of the border that gets painted by * {@link #drawEtchedRect}. --- 156,163 ---- g.setColor(oldColor); } } ! ! /** * Determines the width of the border that gets painted by * {@link #drawEtchedRect}. *************** public class BasicGraphicsUtils *** 229,235 **** { return new Insets(2, 2, 2, 2); } ! /** * Draws a border that is suitable for buttons of the Basic look and --- 229,235 ---- { return new Insets(2, 2, 2, 2); } ! /** * Draws a border that is suitable for buttons of the Basic look and *************** public class BasicGraphicsUtils *** 310,317 **** g.setColor(oldColor); } } ! ! /** * Draws a rectangle that appears lowered into the surface, given * four colors that are used for drawing. --- 310,317 ---- g.setColor(oldColor); } } ! ! /** * Draws a rectangle that appears lowered into the surface, given * four colors that are used for drawing. *************** public class BasicGraphicsUtils *** 363,370 **** darkShadow, shadow, highlight, lightHighlight); } ! ! /** * Draws a String at the given location, underlining the first * occurence of a specified character. The algorithm for determining --- 363,370 ---- darkShadow, shadow, highlight, lightHighlight); } ! ! /** * Draws a String at the given location, underlining the first * occurence of a specified character. The algorithm for determining *************** public class BasicGraphicsUtils *** 390,396 **** * the GNU Classpath implementation does not underline * anything if underlinedChar is outside * the range of char. ! * * @param x the x coordinate of the text, as it would be passed to * {@link java.awt.Graphics#drawString(java.lang.String, * int, int)}. --- 390,396 ---- * the GNU Classpath implementation does not underline * anything if underlinedChar is outside * the range of char. ! * * @param x the x coordinate of the text, as it would be passed to * {@link java.awt.Graphics#drawString(java.lang.String, * int, int)}. *************** public class BasicGraphicsUtils *** 436,442 **** * text. If underlinedIndex falls * outside the range [0, text.length() - 1], the * text will be drawn without underlining anything. ! * * @param x the x coordinate of the text, as it would be passed to * {@link java.awt.Graphics#drawString(java.lang.String, * int, int)}. --- 436,442 ---- * text. If underlinedIndex falls * outside the range [0, text.length() - 1], the * text will be drawn without underlining anything. ! * * @param x the x coordinate of the text, as it would be passed to * {@link java.awt.Graphics#drawString(java.lang.String, * int, int)}. *************** public class BasicGraphicsUtils *** 518,524 **** underline.width = underlineX1 - underlineX2; } ! underline.height = lineMetrics.getUnderlineThickness(); underline.y = lineMetrics.getUnderlineOffset(); if (underline.y == 0) --- 518,524 ---- underline.width = underlineX1 - underlineX2; } ! underline.height = lineMetrics.getUnderlineThickness(); underline.y = lineMetrics.getUnderlineOffset(); if (underline.y == 0) *************** public class BasicGraphicsUtils *** 597,603 **** * text. If underlinedIndex falls * outside the range [0, text.length() - 1], the * text will be drawn without underlining anything. ! * * @param x the x coordinate of the text, as it would be passed to * {@link java.awt.Graphics#drawString(java.lang.String, * int, int)}. --- 597,603 ---- * text. If underlinedIndex falls * outside the range [0, text.length() - 1], the * text will be drawn without underlining anything. ! * * @param x the x coordinate of the text, as it would be passed to * {@link java.awt.Graphics#drawString(java.lang.String, * int, int)}. *************** public class BasicGraphicsUtils *** 683,689 **** underline.width = underlineX1 - underlineX2; } ! underline.height = lineMetrics.getUnderlineThickness(); underline.y = lineMetrics.getUnderlineOffset(); if (underline.y == 0) --- 683,689 ---- underline.width = underlineX1 - underlineX2; } ! underline.height = lineMetrics.getUnderlineThickness(); underline.y = lineMetrics.getUnderlineOffset(); if (underline.y == 0) *************** public class BasicGraphicsUtils *** 761,768 **** * and height fields indicate the preferred * extent in pixels. * ! * @see javax.swing.SwingUtilities#layoutCompoundLabel(JComponent, ! * FontMetrics, String, Icon, int, int, int, int, Rectangle, Rectangle, * Rectangle, int) */ public static Dimension getPreferredButtonSize(AbstractButton b, --- 761,768 ---- * and height fields indicate the preferred * extent in pixels. * ! * @see javax.swing.SwingUtilities#layoutCompoundLabel(JComponent, ! * FontMetrics, String, Icon, int, int, int, int, Rectangle, Rectangle, * Rectangle, int) */ public static Dimension getPreferredButtonSize(AbstractButton b, *************** public class BasicGraphicsUtils *** 795,801 **** b.getFontMetrics(b.getFont()), // see comment above b.getText(), b.getIcon(), ! b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), --- 795,801 ---- b.getFontMetrics(b.getFont()), // see comment above b.getText(), b.getIcon(), ! b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java Tue Jan 11 19:46:05 2011 *************** public class BasicHTML *** 145,151 **** { if (view != null) view.setParent(null); ! if (v != null) v.setParent(this); --- 145,151 ---- { if (view != null) view.setParent(null); ! if (v != null) v.setParent(this); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicIconFactory.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicIconFactory.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicIconFactory.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicIconFactory.java Tue Jan 11 19:46:05 2011 *************** public class BasicIconFactory implements *** 53,68 **** { static final long serialVersionUID = 5605588811185324383L; ! private static class DummyIcon implements Icon ! { ! public int getIconHeight() ! { ! return 10; } ! public int getIconWidth() ! { ! return 10; } public void paintIcon(Component c, Graphics g, int x, int y) { --- 53,68 ---- { static final long serialVersionUID = 5605588811185324383L; ! private static class DummyIcon implements Icon ! { ! public int getIconHeight() ! { ! return 10; } ! public int getIconWidth() ! { ! return 10; } public void paintIcon(Component c, Graphics g, int x, int y) { *************** public class BasicIconFactory implements *** 118,124 **** } /** ! * The icon used for {@link JCheckBoxMenuItem}s in the * {@link BasicLookAndFeel}. This icon has a size of 9x9 pixels. */ static class CheckBoxMenuItemIcon --- 118,124 ---- } /** ! * The icon used for {@link JCheckBoxMenuItem}s in the * {@link BasicLookAndFeel}. This icon has a size of 9x9 pixels. */ static class CheckBoxMenuItemIcon *************** public class BasicIconFactory implements *** 155,168 **** public void paintIcon(Component c, Graphics g, int x, int y) { JCheckBoxMenuItem item = (JCheckBoxMenuItem) c; ! if (item.isSelected()) { // paint the check... g.setColor(Color.black); g.drawLine(x + 1, y + 3, x + 1, y + 4); g.drawLine(x + 2, y + 4, x + 2, y + 5); for (int i = 0; i < 5; i++) ! g.drawLine(x + 3 + i, y + 5 - i, x + 3 + i, y + 6 - i); } } } --- 155,168 ---- public void paintIcon(Component c, Graphics g, int x, int y) { JCheckBoxMenuItem item = (JCheckBoxMenuItem) c; ! if (item.isSelected()) { // paint the check... g.setColor(Color.black); g.drawLine(x + 1, y + 3, x + 1, y + 4); g.drawLine(x + 2, y + 4, x + 2, y + 5); for (int i = 0; i < 5; i++) ! g.drawLine(x + 3 + i, y + 5 - i, x + 3 + i, y + 6 - i); } } } *************** public class BasicIconFactory implements *** 212,218 **** } /** The cached CheckBoxIcon instance. */ private static CheckBoxIcon checkBoxIcon; ! /** The cached RadioButtonIcon instance. */ private static RadioButtonIcon radioButtonIcon; --- 212,218 ---- } /** The cached CheckBoxIcon instance. */ private static CheckBoxIcon checkBoxIcon; ! /** The cached RadioButtonIcon instance. */ private static RadioButtonIcon radioButtonIcon; *************** public class BasicIconFactory implements *** 246,279 **** { return new DummyIcon(); } ! /** * Returns a new instance of a 4 x 8 icon showing a small black triangle that ! * points to the right. This is displayed in menu items that have a * sub menu. ! * * @return The icon. */ public static Icon getMenuArrowIcon() { return new Icon() { ! public int getIconHeight() ! { ! return 8; ! } ! public int getIconWidth() ! { ! return 4; ! } ! public void paintIcon(Component c, Graphics g, int x, int y) ! { ! Color saved = g.getColor(); ! g.setColor(Color.BLACK); for (int i = 0; i < 4; i++) g.drawLine(x + i, y + i, x + i, y + 7 - i); ! g.setColor(saved); ! } }; } --- 246,279 ---- { return new DummyIcon(); } ! /** * Returns a new instance of a 4 x 8 icon showing a small black triangle that ! * points to the right. This is displayed in menu items that have a * sub menu. ! * * @return The icon. */ public static Icon getMenuArrowIcon() { return new Icon() { ! public int getIconHeight() ! { ! return 8; ! } ! public int getIconWidth() ! { ! return 4; ! } ! public void paintIcon(Component c, Graphics g, int x, int y) ! { ! Color saved = g.getColor(); ! g.setColor(Color.BLACK); for (int i = 0; i < 4; i++) g.drawLine(x + i, y + i, x + i, y + 7 - i); ! g.setColor(saved); ! } }; } *************** public class BasicIconFactory implements *** 308,326 **** /** * Creates and returns an icon used when rendering {@link JCheckBoxMenuItem} * components. ! * * @return An icon. */ public static Icon getCheckBoxMenuItemIcon() { return new CheckBoxMenuItemIcon(); } ! public static Icon getRadioButtonMenuItemIcon() { return getRadioButtonIcon(); } ! public static Icon createEmptyFrameIcon() { return new DummyIcon(); --- 308,326 ---- /** * Creates and returns an icon used when rendering {@link JCheckBoxMenuItem} * components. ! * * @return An icon. */ public static Icon getCheckBoxMenuItemIcon() { return new CheckBoxMenuItemIcon(); } ! public static Icon getRadioButtonMenuItemIcon() { return getRadioButtonIcon(); } ! public static Icon createEmptyFrameIcon() { return new DummyIcon(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java Tue Jan 11 19:46:05 2011 *************** public class BasicInternalFrameTitlePane *** 89,95 **** { super("Close"); } ! /** * This method is called when something closes the JInternalFrame. * --- 89,95 ---- { super("Close"); } ! /** * This method is called when something closes the JInternalFrame. * *************** public class BasicInternalFrameTitlePane *** 371,377 **** { Icon frameIcon = frame.getFrameIcon(); if (frameIcon == null) ! frameIcon = BasicDesktopIconUI.defaultIcon; frameIcon.paintIcon(this, g, 0, 0); } --- 371,377 ---- { Icon frameIcon = frame.getFrameIcon(); if (frameIcon == null) ! frameIcon = BasicDesktopIconUI.defaultIcon; frameIcon.paintIcon(this, g, 0, 0); } *************** public class BasicInternalFrameTitlePane *** 453,460 **** } if (title != null) ! title.setBounds(insets.left + menupref.width, insets.top, ! loc - menupref.width - insets.left, height); } /** --- 453,460 ---- } if (title != null) ! title.setBounds(insets.left + menupref.width, insets.top, ! loc - menupref.width - insets.left, height); } /** *************** public class BasicInternalFrameTitlePane *** 581,587 **** /** The icon displayed in the close button. */ protected Icon closeIcon; ! /** The JInternalFrame that this TitlePane is used in. */ protected JInternalFrame frame; --- 581,587 ---- /** The icon displayed in the close button. */ protected Icon closeIcon; ! /** The JInternalFrame that this TitlePane is used in. */ protected JInternalFrame frame; *************** public class BasicInternalFrameTitlePane *** 620,626 **** * This is package-private to avoid an accessor method. */ transient JLabel title; ! static { // not constants in JDK --- 620,626 ---- * This is package-private to avoid an accessor method. */ transient JLabel title; ! static { // not constants in JDK *************** public class BasicInternalFrameTitlePane *** 739,745 **** selectedTitleColor = UIManager.getColor("InternalFrame.activeTitleBackground"); notSelectedTextColor = UIManager.getColor("InternalFrame.inactiveTitleForeground"); notSelectedTitleColor = UIManager.getColor("InternalFrame.inactiveTitleBackground"); ! closeIcon = UIManager.getIcon("InternalFrame.closeIcon"); iconIcon = UIManager.getIcon("InternalFrame.iconifyIcon"); maxIcon = UIManager.getIcon("InternalFrame.maximizeIcon"); --- 739,745 ---- selectedTitleColor = UIManager.getColor("InternalFrame.activeTitleBackground"); notSelectedTextColor = UIManager.getColor("InternalFrame.inactiveTitleForeground"); notSelectedTitleColor = UIManager.getColor("InternalFrame.inactiveTitleBackground"); ! closeIcon = UIManager.getIcon("InternalFrame.closeIcon"); iconIcon = UIManager.getIcon("InternalFrame.iconifyIcon"); maxIcon = UIManager.getIcon("InternalFrame.maximizeIcon"); *************** public class BasicInternalFrameTitlePane *** 755,761 **** selectedTitleColor = null; notSelectedTextColor = null; notSelectedTitleColor = null; ! closeIcon = null; iconIcon = null; maxIcon = null; --- 755,761 ---- selectedTitleColor = null; notSelectedTextColor = null; notSelectedTitleColor = null; ! closeIcon = null; iconIcon = null; maxIcon = null; *************** public class BasicInternalFrameTitlePane *** 894,910 **** paintTitleBackground(g); if (frame.getTitle() != null && title != null) { ! Color saved = g.getColor(); Font f = title.getFont(); g.setFont(f); FontMetrics fm = g.getFontMetrics(f); ! if (frame.isSelected()) ! g.setColor(selectedTextColor); ! else ! g.setColor(notSelectedTextColor); ! title.setText(getTitle(frame.getTitle(), fm, title.getBounds().width)); ! SwingUtilities.paintComponent(g, title, null, title.getBounds()); ! g.setColor(saved); } } --- 894,910 ---- paintTitleBackground(g); if (frame.getTitle() != null && title != null) { ! Color saved = g.getColor(); Font f = title.getFont(); g.setFont(f); FontMetrics fm = g.getFontMetrics(f); ! if (frame.isSelected()) ! g.setColor(selectedTextColor); ! else ! g.setColor(notSelectedTextColor); ! title.setText(getTitle(frame.getTitle(), fm, title.getBounds().width)); ! SwingUtilities.paintComponent(g, title, null, title.getBounds()); ! g.setColor(saved); } } *************** public class BasicInternalFrameTitlePane *** 964,970 **** { // FIXME: Implement postClosingEvent when I figure out what // it's supposed to do. ! // It says that this fires an WINDOW_CLOSING like event. // So the closest thing is some kind of InternalFrameEvent. // But none is fired. // Can't see it called or anything. --- 964,970 ---- { // FIXME: Implement postClosingEvent when I figure out what // it's supposed to do. ! // It says that this fires an WINDOW_CLOSING like event. // So the closest thing is some kind of InternalFrameEvent. // But none is fired. // Can't see it called or anything. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicInternalFrameUI extend *** 170,179 **** implements SwingConstants { /** ! * The current shape of the cursor. */ transient int showingCursor; ! /** FIXME: Use for something. */ protected final int RESIZE_NONE = 0; --- 170,179 ---- implements SwingConstants { /** ! * The current shape of the cursor. */ transient int showingCursor; ! /** FIXME: Use for something. */ protected final int RESIZE_NONE = 0; *************** public class BasicInternalFrameUI extend *** 188,194 **** /** Cache rectangle that can be reused. */ private transient Rectangle cacheRect = new Rectangle(); ! /** * This method is called when the mouse is clicked. * --- 188,194 ---- /** Cache rectangle that can be reused. */ private transient Rectangle cacheRect = new Rectangle(); ! /** * This method is called when the mouse is clicked. * *************** public class BasicInternalFrameUI extend *** 209,215 **** { // We do nothing if the attempt has been vetoed. } ! // There is nothing to do when the mouse is clicked // on the border. } --- 209,215 ---- { // We do nothing if the attempt has been vetoed. } ! // There is nothing to do when the mouse is clicked // on the border. } *************** public class BasicInternalFrameUI extend *** 288,294 **** /** * This method is called when the mouse exits the JInternalFrame. ! * * @param e The MouseEvent. */ public void mouseExited(MouseEvent e) --- 288,294 ---- /** * This method is called when the mouse exits the JInternalFrame. ! * * @param e The MouseEvent. */ public void mouseExited(MouseEvent e) *************** public class BasicInternalFrameUI extend *** 302,308 **** /** * This method is called when the mouse is moved inside the JInternalFrame. ! * * @param e The MouseEvent. */ public void mouseMoved(MouseEvent e) --- 302,308 ---- /** * This method is called when the mouse is moved inside the JInternalFrame. ! * * @param e The MouseEvent. */ public void mouseMoved(MouseEvent e) *************** public class BasicInternalFrameUI extend *** 318,327 **** setCursor(e); } } ! /** * Set the mouse cursor, how applicable. ! * * @param e the current mouse event. */ void setCursor(MouseEvent e) --- 318,327 ---- setCursor(e); } } ! /** * Set the mouse cursor, how applicable. ! * * @param e the current mouse event. */ void setCursor(MouseEvent e) *************** public class BasicInternalFrameUI extend *** 337,343 **** /** * This method is called when the mouse is pressed. ! * * @param e The MouseEvent. */ public void mousePressed(MouseEvent e) --- 337,343 ---- /** * This method is called when the mouse is pressed. ! * * @param e The MouseEvent. */ public void mousePressed(MouseEvent e) *************** public class BasicInternalFrameUI extend *** 381,387 **** dm.endDraggingFrame(frame); frame.putClientProperty("bufferedDragging", null); } ! setCursor(e); } --- 381,387 ---- dm.endDraggingFrame(frame); frame.putClientProperty("bufferedDragging", null); } ! setCursor(e); } *************** public class BasicInternalFrameUI extend *** 398,404 **** { Rectangle b = frame.getBounds(); int corner = InternalFrameBorder.cornerSize; ! if (x < corner && y < corner) return Cursor.NW_RESIZE_CURSOR; else if (x > b.width - corner && y < corner) --- 398,404 ---- { Rectangle b = frame.getBounds(); int corner = InternalFrameBorder.cornerSize; ! if (x < corner && y < corner) return Cursor.NW_RESIZE_CURSOR; else if (x > b.width - corner && y < corner) *************** public class BasicInternalFrameUI extend *** 429,435 **** { /** * This method is called when the JDesktopPane is hidden. ! * * @param e * The ComponentEvent fired. */ --- 429,435 ---- { /** * This method is called when the JDesktopPane is hidden. ! * * @param e * The ComponentEvent fired. */ *************** public class BasicInternalFrameUI extend *** 440,446 **** /** * This method is called when the JDesktopPane is moved. ! * * @param e * The ComponentEvent fired. */ --- 440,446 ---- /** * This method is called when the JDesktopPane is moved. ! * * @param e * The ComponentEvent fired. */ *************** public class BasicInternalFrameUI extend *** 451,457 **** /** * This method is called when the JDesktopPane is resized. ! * * @param e * The ComponentEvent fired. */ --- 451,457 ---- /** * This method is called when the JDesktopPane is resized. ! * * @param e * The ComponentEvent fired. */ *************** public class BasicInternalFrameUI extend *** 469,475 **** /** * This method is called when the JDesktopPane is shown. ! * * @param e * The ComponentEvent fired. */ --- 469,475 ---- /** * This method is called when the JDesktopPane is shown. ! * * @param e * The ComponentEvent fired. */ *************** public class BasicInternalFrameUI extend *** 487,493 **** /** * This method is called when the given Component is added to the * JInternalFrame. ! * * @param name * The name of the Component. * @param c --- 487,493 ---- /** * This method is called when the given Component is added to the * JInternalFrame. ! * * @param name * The name of the Component. * @param c *************** public class BasicInternalFrameUI extend *** 501,507 **** /** * This method is used to set the bounds of the children of the * JInternalFrame. ! * * @param c * The Container to lay out. */ --- 501,507 ---- /** * This method is used to set the bounds of the children of the * JInternalFrame. ! * * @param c * The Container to lay out. */ *************** public class BasicInternalFrameUI extend *** 562,568 **** /** * This method returns the minimum layout size. ! * * @param c * The Container to find a minimum layout size for. * @return The minimum dimensions for the JInternalFrame. --- 562,568 ---- /** * This method returns the minimum layout size. ! * * @param c * The Container to find a minimum layout size for. * @return The minimum dimensions for the JInternalFrame. *************** public class BasicInternalFrameUI extend *** 574,580 **** /** * Th8is method returns the preferred layout size. ! * * @param c * The Container to find a preferred layout size for. * @return The preferred dimensions for the JInternalFrame. --- 574,580 ---- /** * Th8is method returns the preferred layout size. ! * * @param c * The Container to find a preferred layout size for. * @return The preferred dimensions for the JInternalFrame. *************** public class BasicInternalFrameUI extend *** 586,592 **** /** * DOCUMENT ME! ! * * @param c * DOCUMENT ME! * @param min --- 586,592 ---- /** * DOCUMENT ME! ! * * @param c * DOCUMENT ME! * @param min *************** public class BasicInternalFrameUI extend *** 694,700 **** /** * This method is called when the mouse enters the glass pane. ! * * @param e * The MouseEvent. */ --- 694,700 ---- /** * This method is called when the mouse enters the glass pane. ! * * @param e * The MouseEvent. */ *************** public class BasicInternalFrameUI extend *** 705,711 **** /** * This method is called when the mouse is clicked on the glass pane. ! * * @param e * The MouseEvent. */ --- 705,711 ---- /** * This method is called when the mouse is clicked on the glass pane. ! * * @param e * The MouseEvent. */ *************** public class BasicInternalFrameUI extend *** 716,722 **** /** * This method is called when the mouse is dragged in the glass pane. ! * * @param e * The MouseEvent. */ --- 716,722 ---- /** * This method is called when the mouse is dragged in the glass pane. ! * * @param e * The MouseEvent. */ *************** public class BasicInternalFrameUI extend *** 727,733 **** /** * This method is called when the mouse exits the glass pane. ! * * @param e * The MouseEvent. */ --- 727,733 ---- /** * This method is called when the mouse exits the glass pane. ! * * @param e * The MouseEvent. */ *************** public class BasicInternalFrameUI extend *** 738,744 **** /** * This method is called when the mouse is moved in the glass pane. ! * * @param e * The MouseEvent. */ --- 738,744 ---- /** * This method is called when the mouse is moved in the glass pane. ! * * @param e * The MouseEvent. */ *************** public class BasicInternalFrameUI extend *** 749,755 **** /** * This method is called when the mouse is pressed in the glass pane. ! * * @param e * The MouseEvent. */ --- 749,755 ---- /** * This method is called when the mouse is pressed in the glass pane. ! * * @param e * The MouseEvent. */ *************** public class BasicInternalFrameUI extend *** 764,770 **** /** * This method is called when the mouse is released in the glass pane. ! * * @param e * The MouseEvent. */ --- 764,770 ---- /** * This method is called when the mouse is released in the glass pane. ! * * @param e * The MouseEvent. */ *************** public class BasicInternalFrameUI extend *** 776,782 **** /** * This is a helper method that dispatches the GlassPane MouseEvents to the * proper component. ! * * @param e the mouse event to be dispatched */ private void handleEvent(MouseEvent e) --- 776,782 ---- /** * This is a helper method that dispatches the GlassPane MouseEvents to the * proper component. ! * * @param e the mouse event to be dispatched */ private void handleEvent(MouseEvent e) *************** public class BasicInternalFrameUI extend *** 885,891 **** /** * This method is called when one of the JInternalFrame's properties change. ! * * @param evt * The PropertyChangeEvent. */ --- 885,891 ---- /** * This method is called when one of the JInternalFrame's properties change. ! * * @param evt * The PropertyChangeEvent. */ *************** public class BasicInternalFrameUI extend *** 971,978 **** class InternalFrameBorder extends AbstractBorder implements UIResource { ! /** ! * The width of the border. */ static final int bSize = 5; --- 971,978 ---- class InternalFrameBorder extends AbstractBorder implements UIResource { ! /** ! * The width of the border. */ static final int bSize = 5; *************** public class BasicInternalFrameUI extend *** 983,989 **** /** * This method returns whether the border is opaque. ! * * @return Whether the border is opaque. */ public boolean isBorderOpaque() --- 983,989 ---- /** * This method returns whether the border is opaque. ! * * @return Whether the border is opaque. */ public boolean isBorderOpaque() *************** public class BasicInternalFrameUI extend *** 993,999 **** /** * This method returns the insets of the border. ! * * @param c * The Component to find border insets for. * @return The border insets. --- 993,999 ---- /** * This method returns the insets of the border. ! * * @param c * The Component to find border insets for. * @return The border insets. *************** public class BasicInternalFrameUI extend *** 1005,1011 **** /** * This method paints the border. ! * * @param c * The Component that owns the border. * @param g --- 1005,1011 ---- /** * This method paints the border. ! * * @param c * The Component that owns the border. * @param g *************** public class BasicInternalFrameUI extend *** 1051,1059 **** g.fill3DRect(0, cornerSize, bSize, b.height - 2 * cornerSize, false); g.fill3DRect(cornerSize, 0, b.width - 2 * cornerSize, bSize, false); ! g.fill3DRect(cornerSize, b.height - bSize, b.width - 2 * cornerSize, bSize, false); ! g.fill3DRect(b.width - bSize, cornerSize, bSize, b.height - 2 * cornerSize, false); g.translate(-x, -y); --- 1051,1059 ---- g.fill3DRect(0, cornerSize, bSize, b.height - 2 * cornerSize, false); g.fill3DRect(cornerSize, 0, b.width - 2 * cornerSize, bSize, false); ! g.fill3DRect(cornerSize, b.height - bSize, b.width - 2 * cornerSize, bSize, false); ! g.fill3DRect(b.width - bSize, cornerSize, bSize, b.height - 2 * cornerSize, false); g.translate(-x, -y); *************** public class BasicInternalFrameUI extend *** 1595,1601 **** replacePane(northPane, c); northPane = c; // the following is needed to make internal frames draggable when using ! // the JGoodies PlasticLookAndFeel, because it overrides the // createNorthPane() method and doesn't assign anything to the titlePane // field. It is possible there is another way to make this work, but // I didn't find it... --- 1595,1601 ---- replacePane(northPane, c); northPane = c; // the following is needed to make internal frames draggable when using ! // the JGoodies PlasticLookAndFeel, because it overrides the // createNorthPane() method and doesn't assign anything to the titlePane // field. It is possible there is another way to make this work, but // I didn't find it... diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicLabelUI extends LabelU *** 114,120 **** /** * Returns the preferred size of this component as calculated by the ! * {@link #layoutCL(JLabel, FontMetrics, String, Icon, Rectangle, Rectangle, * Rectangle)} method. * * @param c This {@link JComponent} to get a preferred size for. --- 114,120 ---- /** * Returns the preferred size of this component as calculated by the ! * {@link #layoutCL(JLabel, FontMetrics, String, Icon, Rectangle, Rectangle, * Rectangle)} method. * * @param c This {@link JComponent} to get a preferred size for. *************** public class BasicLabelUI extends LabelU *** 188,194 **** /** * The method that paints the label according to its current state. ! * * @param g The {@link Graphics} object to paint with. * @param c The {@link JComponent} to paint. */ --- 188,194 ---- /** * The method that paints the label according to its current state. ! * * @param g The {@link Graphics} object to paint with. * @param c The {@link JComponent} to paint. */ *************** public class BasicLabelUI extends LabelU *** 217,223 **** text = layoutCL(b, fm, text, icon, vr, ir, tr); if (icon != null) ! icon.paintIcon(b, g, ir.x, ir.y); if (text != null && ! text.equals("")) { --- 217,223 ---- text = layoutCL(b, fm, text, icon, vr, ir, tr); if (icon != null) ! icon.paintIcon(b, g, ir.x, ir.y); if (text != null && ! text.equals("")) { *************** public class BasicLabelUI extends LabelU *** 239,245 **** /** * This method is simply calls SwingUtilities's layoutCompoundLabel. ! * * @param label The label to lay out. * @param fontMetrics The FontMetrics for the font used. * @param text The text to paint. --- 239,245 ---- /** * This method is simply calls SwingUtilities's layoutCompoundLabel. ! * * @param label The label to lay out. * @param fontMetrics The FontMetrics for the font used. * @param text The text to paint. *************** public class BasicLabelUI extends LabelU *** 247,253 **** * @param viewR The entire viewable rectangle. * @param iconR The icon bounds rectangle. * @param textR The text bounds rectangle. ! * * @return A possibly clipped version of the text. */ protected String layoutCL(JLabel label, FontMetrics fontMetrics, String text, --- 247,253 ---- * @param viewR The entire viewable rectangle. * @param iconR The icon bounds rectangle. * @param textR The text bounds rectangle. ! * * @return A possibly clipped version of the text. */ protected String layoutCL(JLabel label, FontMetrics fontMetrics, String text, *************** public class BasicLabelUI extends LabelU *** 421,431 **** { // add a keystroke for the given mnemonic mapping to 'press'; InputMap keyMap = new InputMap(); ! keyMap.put(KeyStroke.getKeyStroke(mnemonic, KeyEvent.VK_ALT), "press"); ! SwingUtilities.replaceUIInputMap(l, JComponent.WHEN_IN_FOCUSED_WINDOW, keyMap); ! // add an action to focus the component when 'press' happens ActionMap map = new ActionMap(); map.put("press", new AbstractAction() { --- 421,431 ---- { // add a keystroke for the given mnemonic mapping to 'press'; InputMap keyMap = new InputMap(); ! keyMap.put(KeyStroke.getKeyStroke(mnemonic, KeyEvent.VK_ALT), "press"); ! SwingUtilities.replaceUIInputMap(l, JComponent.WHEN_IN_FOCUSED_WINDOW, keyMap); ! // add an action to focus the component when 'press' happens ActionMap map = new ActionMap(); map.put("press", new AbstractAction() { *************** public class BasicLabelUI extends LabelU *** 439,445 **** }); SwingUtilities.replaceUIActionMap(l, map); } ! } } /** --- 439,445 ---- }); SwingUtilities.replaceUIActionMap(l, map); } ! } } /** *************** public class BasicLabelUI extends LabelU *** 450,456 **** protected void uninstallKeyboardActions(JLabel l) { SwingUtilities.replaceUIActionMap(l, null); ! SwingUtilities.replaceUIInputMap(l, JComponent.WHEN_IN_FOCUSED_WINDOW, null); } --- 450,456 ---- protected void uninstallKeyboardActions(JLabel l) { SwingUtilities.replaceUIActionMap(l, null); ! SwingUtilities.replaceUIInputMap(l, JComponent.WHEN_IN_FOCUSED_WINDOW, null); } *************** public class BasicLabelUI extends LabelU *** 500,508 **** int newMnemonic = ((Integer) e.getNewValue()).intValue(); InputMap keyMap = label.getInputMap( JComponent.WHEN_IN_FOCUSED_WINDOW); ! keyMap.put(KeyStroke.getKeyStroke(oldMnemonic, KeyEvent.ALT_DOWN_MASK), null); ! keyMap.put(KeyStroke.getKeyStroke(newMnemonic, KeyEvent.ALT_DOWN_MASK), "press"); } } --- 500,508 ---- int newMnemonic = ((Integer) e.getNewValue()).intValue(); InputMap keyMap = label.getInputMap( JComponent.WHEN_IN_FOCUSED_WINDOW); ! keyMap.put(KeyStroke.getKeyStroke(oldMnemonic, KeyEvent.ALT_DOWN_MASK), null); ! keyMap.put(KeyStroke.getKeyStroke(newMnemonic, KeyEvent.ALT_DOWN_MASK), "press"); } } *************** public class BasicLabelUI extends LabelU *** 512,519 **** InputMap keyMap = label.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); int mnemonic = label.getDisplayedMnemonic(); if (mnemonic > 0) ! keyMap.put(KeyStroke.getKeyStroke(mnemonic, KeyEvent.ALT_DOWN_MASK), ! "press"); } } --- 512,519 ---- InputMap keyMap = label.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); int mnemonic = label.getDisplayedMnemonic(); if (mnemonic > 0) ! keyMap.put(KeyStroke.getKeyStroke(mnemonic, KeyEvent.ALT_DOWN_MASK), ! "press"); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicListUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicListUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicListUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicListUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ListUI; *** 78,84 **** import javax.swing.plaf.UIResource; /** ! * The Basic Look and Feel UI delegate for the * JList. */ public class BasicListUI extends ListUI --- 78,84 ---- import javax.swing.plaf.UIResource; /** ! * The Basic Look and Feel UI delegate for the * JList. */ public class BasicListUI extends ListUI *************** public class BasicListUI extends ListUI *** 111,117 **** } /** ! * Helper method to repaint the focused cell's * lost or acquired focus state. */ protected void repaintCellFocus() --- 111,117 ---- } /** ! * Helper method to repaint the focused cell's * lost or acquired focus state. */ protected void repaintCellFocus() *************** public class BasicListUI extends ListUI *** 170,176 **** public class ListSelectionHandler implements ListSelectionListener { /** ! * Called when the list selection changes. * * @param e The event representing the change */ --- 170,176 ---- public class ListSelectionHandler implements ListSelectionListener { /** ! * Called when the list selection changes. * * @param e The event representing the change */ *************** public class BasicListUI extends ListUI *** 197,203 **** ActionListener target; String bindingCommandName; ! public ActionListenerProxy(ActionListener li, String cmd) { target = li; --- 197,203 ---- ActionListener target; String bindingCommandName; ! public ActionListenerProxy(ActionListener li, String cmd) { target = li; *************** public class BasicListUI extends ListUI *** 237,249 **** { int lead = list.getLeadSelectionIndex(); int max = list.getModel().getSize() - 1; ! DefaultListSelectionModel selModel = (DefaultListSelectionModel) list.getSelectionModel(); String command = e.getActionCommand(); // Do nothing if list is empty if (max == -1) return; ! if (command.equals("selectNextRow")) { selectNextIndex(); --- 237,249 ---- { int lead = list.getLeadSelectionIndex(); int max = list.getModel().getSize() - 1; ! DefaultListSelectionModel selModel = (DefaultListSelectionModel) list.getSelectionModel(); String command = e.getActionCommand(); // Do nothing if list is empty if (max == -1) return; ! if (command.equals("selectNextRow")) { selectNextIndex(); *************** public class BasicListUI extends ListUI *** 265,271 **** } else if (command.equals("selectLastRow")) { ! list.setSelectedIndex(list.getModel().getSize() - 1); } else if (command.equals("selectLastRowChangeLead")) { --- 265,271 ---- } else if (command.equals("selectLastRow")) { ! list.setSelectedIndex(list.getModel().getSize() - 1); } else if (command.equals("selectLastRowChangeLead")) { *************** public class BasicListUI extends ListUI *** 276,282 **** int target; if (lead == list.getLastVisibleIndex()) { ! target = Math.min(max, lead + (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else --- 276,282 ---- int target; if (lead == list.getLastVisibleIndex()) { ! target = Math.min(max, lead + (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else *************** public class BasicListUI extends ListUI *** 288,294 **** int target; if (lead == list.getLastVisibleIndex()) { ! target = Math.min(max, lead + (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else --- 288,294 ---- int target; if (lead == list.getLastVisibleIndex()) { ! target = Math.min(max, lead + (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else *************** public class BasicListUI extends ListUI *** 300,306 **** int target; if (lead == list.getFirstVisibleIndex()) { ! target = Math.max(0, lead - (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else --- 300,306 ---- int target; if (lead == list.getFirstVisibleIndex()) { ! target = Math.max(0, lead - (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else *************** public class BasicListUI extends ListUI *** 312,318 **** int target; if (lead == list.getFirstVisibleIndex()) { ! target = Math.max(0, lead - (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else --- 312,318 ---- int target; if (lead == list.getFirstVisibleIndex()) { ! target = Math.max(0, lead - (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else *************** public class BasicListUI extends ListUI *** 344,355 **** int target; if (lead == list.getFirstVisibleIndex()) { ! target = Math.max(0, lead - (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else target = list.getFirstVisibleIndex(); ! list.setSelectedIndex(target); } else if (command.equals("selectLastRowExtendSelection")) { --- 344,355 ---- int target; if (lead == list.getFirstVisibleIndex()) { ! target = Math.max(0, lead - (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else target = list.getFirstVisibleIndex(); ! list.setSelectedIndex(target); } else if (command.equals("selectLastRowExtendSelection")) { *************** public class BasicListUI extends ListUI *** 360,366 **** int target; if (lead == list.getLastVisibleIndex()) { ! target = Math.min(max, lead + (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else --- 360,366 ---- int target; if (lead == list.getLastVisibleIndex()) { ! target = Math.min(max, lead + (list.getLastVisibleIndex() - list.getFirstVisibleIndex() + 1)); } else *************** public class BasicListUI extends ListUI *** 384,390 **** { selModel.moveLeadSelectionIndex(Math.max(0, lead - 1)); } ! } else if (command.equals("addToSelection")) { list.addSelectionInterval(lead, lead); --- 384,390 ---- { selModel.moveLeadSelectionIndex(Math.max(0, lead - 1)); } ! } else if (command.equals("addToSelection")) { list.addSelectionInterval(lead, lead); *************** public class BasicListUI extends ListUI *** 402,421 **** list.removeSelectionInterval(lead, lead); selModel.setAnchorSelectionIndex(lead); } ! else { ! // DEBUG: uncomment the following line to print out // key bindings that aren't implemented yet ! // System.out.println ("not implemented: "+e.getActionCommand()); } ! list.ensureIndexIsVisible(list.getLeadSelectionIndex()); } } /** ! * A helper class which listens for {@link MouseEvent}s * from the {@link JList}. */ public class MouseInputHandler implements MouseInputListener --- 402,421 ---- list.removeSelectionInterval(lead, lead); selModel.setAnchorSelectionIndex(lead); } ! else { ! // DEBUG: uncomment the following line to print out // key bindings that aren't implemented yet ! // System.out.println ("not implemented: "+e.getActionCommand()); } ! list.ensureIndexIsVisible(list.getLeadSelectionIndex()); } } /** ! * A helper class which listens for {@link MouseEvent}s * from the {@link JList}. */ public class MouseInputHandler implements MouseInputListener *************** public class BasicListUI extends ListUI *** 436,455 **** { if (list.getSelectionMode() == ListSelectionModel.SINGLE_SELECTION) list.setSelectedIndex(index); ! else if (list.getSelectionMode() == ListSelectionModel.SINGLE_INTERVAL_SELECTION) // COMPAT: the IBM VM is compatible with the following line of code. ! // However, compliance with Sun's VM would correspond to replacing ! // getAnchorSelectionIndex() with getLeadSelectionIndex().This is ! // both unnatural and contradictory to the way they handle other // similar UI interactions. list.setSelectionInterval(list.getAnchorSelectionIndex(), index); else // COMPAT: both Sun and IBM are compatible instead with: // list.setSelectionInterval // (list.getLeadSelectionIndex(),index); ! // Note that for IBM this is contradictory to what they did in ! // the above situation for SINGLE_INTERVAL_SELECTION. // The most natural thing to do is the following: if (list.isSelectedIndex(list.getAnchorSelectionIndex())) list.getSelectionModel().setLeadSelectionIndex(index); --- 436,455 ---- { if (list.getSelectionMode() == ListSelectionModel.SINGLE_SELECTION) list.setSelectedIndex(index); ! else if (list.getSelectionMode() == ListSelectionModel.SINGLE_INTERVAL_SELECTION) // COMPAT: the IBM VM is compatible with the following line of code. ! // However, compliance with Sun's VM would correspond to replacing ! // getAnchorSelectionIndex() with getLeadSelectionIndex().This is ! // both unnatural and contradictory to the way they handle other // similar UI interactions. list.setSelectionInterval(list.getAnchorSelectionIndex(), index); else // COMPAT: both Sun and IBM are compatible instead with: // list.setSelectionInterval // (list.getLeadSelectionIndex(),index); ! // Note that for IBM this is contradictory to what they did in ! // the above situation for SINGLE_INTERVAL_SELECTION. // The most natural thing to do is the following: if (list.isSelectedIndex(list.getAnchorSelectionIndex())) list.getSelectionModel().setLeadSelectionIndex(index); *************** public class BasicListUI extends ListUI *** 467,473 **** } else list.setSelectedIndex(index); ! list.ensureIndexIsVisible(list.getLeadSelectionIndex()); } --- 467,473 ---- } else list.setSelectedIndex(index); ! list.ensureIndexIsVisible(list.getLeadSelectionIndex()); } *************** public class BasicListUI extends ListUI *** 530,536 **** return; if (!event.isShiftDown() && !event.isControlDown()) list.setSelectedIndex(index); ! list.ensureIndexIsVisible(list.getLeadSelectionIndex()); } --- 530,536 ---- return; if (!event.isShiftDown() && !event.isControlDown()) list.setSelectedIndex(index); ! list.ensureIndexIsVisible(list.getLeadSelectionIndex()); } *************** public class BasicListUI extends ListUI *** 664,670 **** /** The width of a single cell in the list. */ protected int cellWidth; ! /** * An array of varying heights of cells in the list, in cases where each * cell might have a different height. This field is used when the * fixedCellHeight property of the list is not set. Otherwise --- 664,670 ---- /** The width of a single cell in the list. */ protected int cellWidth; ! /** * An array of varying heights of cells in the list, in cases where each * cell might have a different height. This field is used when the * fixedCellHeight property of the list is not set. Otherwise *************** public class BasicListUI extends ListUI *** 692,698 **** * The {@link CellRendererPane} that is used for painting. */ protected CellRendererPane rendererPane; ! /** The action bound to KeyStrokes. */ ListAction action; --- 692,698 ---- * The {@link CellRendererPane} that is used for painting. */ protected CellRendererPane rendererPane; ! /** The action bound to KeyStrokes. */ ListAction action; *************** public class BasicListUI extends ListUI *** 729,735 **** * @param index1 The first row to include in the bounds * @param index2 The last row to incude in the bounds * ! * @return A rectangle encompassing the range of rows between * index1 and index2 inclusive, or null * such a rectangle couldn't be calculated for the given indexes. */ --- 729,735 ---- * @param index1 The first row to include in the bounds * @param index2 The last row to incude in the bounds * ! * @return A rectangle encompassing the range of rows between * index1 and index2 inclusive, or null * such a rectangle couldn't be calculated for the given indexes. */ *************** public class BasicListUI extends ListUI *** 953,959 **** } /** ! * Resets to null those defaults which were installed in * {@link #installDefaults} */ protected void uninstallDefaults() --- 953,959 ---- } /** ! * Resets to null those defaults which were installed in * {@link #installDefaults} */ protected void uninstallDefaults() *************** public class BasicListUI extends ListUI *** 1002,1008 **** list.removeMouseMotionListener(mouseInputListener); list.removePropertyChangeListener(propertyChangeListener); } ! /** * Installs keyboard actions for this UI in the {@link JList}. */ --- 1002,1008 ---- list.removeMouseMotionListener(mouseInputListener); list.removePropertyChangeListener(propertyChangeListener); } ! /** * Installs keyboard actions for this UI in the {@link JList}. */ *************** public class BasicListUI extends ListUI *** 1125,1131 **** * Gets the size this list would prefer to assume. This is calculated by * calling {@link #getCellBounds} over the entire list. * ! * @param c Ignored; uses the saved {@link JList} reference * * @return DOCUMENT ME! */ --- 1125,1131 ---- * Gets the size this list would prefer to assume. This is calculated by * calling {@link #getCellBounds} over the entire list. * ! * @param c Ignored; uses the saved {@link JList} reference * * @return DOCUMENT ME! */ *************** public class BasicListUI extends ListUI *** 1150,1156 **** { // We cast to double here to force double divisions. double modelSize = size; ! int neededColumns = (int) Math.ceil(modelSize / visibleRows); int adjustedRows = (int) Math.ceil(modelSize / neededColumns); h = maxCellHeight * adjustedRows; w = cellWidth * neededColumns; --- 1150,1156 ---- { // We cast to double here to force double divisions. double modelSize = size; ! int neededColumns = (int) Math.ceil(modelSize / visibleRows); int adjustedRows = (int) Math.ceil(modelSize / neededColumns); h = maxCellHeight * adjustedRows; w = cellWidth * neededColumns; *************** public class BasicListUI extends ListUI *** 1220,1226 **** * cell in the list. * * @param g The graphics context to paint with ! * @param c Ignored; uses the saved {@link JList} reference */ public void paint(Graphics g, JComponent c) { --- 1220,1226 ---- * cell in the list. * * @param g The graphics context to paint with ! * @param c Ignored; uses the saved {@link JList} reference */ public void paint(Graphics g, JComponent c) { *************** public class BasicListUI extends ListUI *** 1238,1244 **** int startIndex = locationToIndex(list, new Point(clip.x, clip.y)); int endIndex = locationToIndex(list, new Point(clip.x + clip.width, clip.y + clip.height)); ! for (int row = startIndex; row <= endIndex; ++row) { Rectangle bounds = getCellBounds(list, row, row); --- 1238,1244 ---- int startIndex = locationToIndex(list, new Point(clip.x, clip.y)); int endIndex = locationToIndex(list, new Point(clip.x + clip.width, clip.y + clip.height)); ! for (int row = startIndex; row <= endIndex; ++row) { Rectangle bounds = getCellBounds(list, row, row); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java Tue Jan 11 19:46:05 2011 *************** public abstract class BasicLookAndFeel e *** 96,102 **** * are targetted at a menu/submenu/menubar or not. If not, * the MenuSelectionManager is messaged to close the currently opened menus, * if any. ! * * @author Roman Kennke (kennke@aicas.com) */ private class PopupHelper implements AWTEventListener --- 96,102 ---- * are targetted at a menu/submenu/menubar or not. If not, * the MenuSelectionManager is messaged to close the currently opened menus, * if any. ! * * @author Roman Kennke (kennke@aicas.com) */ private class PopupHelper implements AWTEventListener *************** public abstract class BasicLookAndFeel e *** 227,235 **** } /** ! * Creates and returns a new instance of the default resources for this look * and feel. ! * * @return The UI defaults. */ public UIDefaults getDefaults() --- 227,235 ---- } /** ! * Creates and returns a new instance of the default resources for this look * and feel. ! * * @return The UI defaults. */ public UIDefaults getDefaults() *************** public abstract class BasicLookAndFeel e *** 247,255 **** } /** ! * Populates the defaults table with mappings between class IDs * and fully qualified class names for the UI delegates. ! * * @param defaults the defaults table (null not permitted). */ protected void initClassDefaults(UIDefaults defaults) --- 247,255 ---- } /** ! * Populates the defaults table with mappings between class IDs * and fully qualified class names for the UI delegates. ! * * @param defaults the defaults table (null not permitted). */ protected void initClassDefaults(UIDefaults defaults) *************** public abstract class BasicLookAndFeel e *** 314,320 **** * {@link #loadSystemColors(UIDefaults, String[], boolean)}. If the * look and feel is a native look and feel, these defaults may be overridden * by the corresponding SystemColor constants. ! * * @param defaults the defaults table (null not permitted). */ protected void initSystemColorDefaults(UIDefaults defaults) --- 314,320 ---- * {@link #loadSystemColors(UIDefaults, String[], boolean)}. If the * look and feel is a native look and feel, these defaults may be overridden * by the corresponding SystemColor constants. ! * * @param defaults the defaults table (null not permitted). */ protected void initSystemColorDefaults(UIDefaults defaults) *************** public abstract class BasicLookAndFeel e *** 365,371 **** * false * @param useNative when true, installs the values of the * SystemColor constants, when false, install the values ! * from systemColors */ protected void loadSystemColors(UIDefaults defaults, String[] systemColors, boolean useNative) --- 365,371 ---- * false * @param useNative when true, installs the values of the * SystemColor constants, when false, install the values ! * from systemColors */ protected void loadSystemColors(UIDefaults defaults, String[] systemColors, boolean useNative) *************** public abstract class BasicLookAndFeel e *** 479,497 **** protected void initComponentDefaults(UIDefaults defaults) { Object[] uiDefaults; ! Color highLight = new Color(249, 247, 246); Color light = new Color(239, 235, 231); Color shadow = new Color(139, 136, 134); Color darkShadow = new Color(16, 16, 16); ! uiDefaults = new Object[] { "AbstractUndoableEdit.undoText", "Undo", "AbstractUndoableEdit.redoText", "Redo", "Button.background", new ColorUIResource(Color.LIGHT_GRAY), "Button.border", ! new UIDefaults.LazyValue() { public Object createValue(UIDefaults table) { --- 479,497 ---- protected void initComponentDefaults(UIDefaults defaults) { Object[] uiDefaults; ! Color highLight = new Color(249, 247, 246); Color light = new Color(239, 235, 231); Color shadow = new Color(139, 136, 134); Color darkShadow = new Color(16, 16, 16); ! uiDefaults = new Object[] { "AbstractUndoableEdit.undoText", "Undo", "AbstractUndoableEdit.redoText", "Redo", "Button.background", new ColorUIResource(Color.LIGHT_GRAY), "Button.border", ! new UIDefaults.LazyValue() { public Object createValue(UIDefaults table) { *************** public abstract class BasicLookAndFeel e *** 528,534 **** return BasicIconFactory.getCheckBoxIcon(); } }, ! "CheckBox.checkIcon", new UIDefaults.LazyValue() { public Object createValue(UIDefaults def) --- 528,534 ---- return BasicIconFactory.getCheckBoxIcon(); } }, ! "CheckBox.checkIcon", new UIDefaults.LazyValue() { public Object createValue(UIDefaults def) *************** public abstract class BasicLookAndFeel e *** 549,555 **** "CheckBoxMenuItem.background", new ColorUIResource(light), "CheckBoxMenuItem.border", new BasicBorders.MarginBorder(), "CheckBoxMenuItem.borderPainted", Boolean.FALSE, ! "CheckBoxMenuItem.checkIcon", new UIDefaults.LazyValue() { public Object createValue(UIDefaults def) --- 549,555 ---- "CheckBoxMenuItem.background", new ColorUIResource(light), "CheckBoxMenuItem.border", new BasicBorders.MarginBorder(), "CheckBoxMenuItem.borderPainted", Boolean.FALSE, ! "CheckBoxMenuItem.checkIcon", new UIDefaults.LazyValue() { public Object createValue(UIDefaults def) *************** public abstract class BasicLookAndFeel e *** 637,643 **** "EditorPane.font", new FontUIResource("Serif", Font.PLAIN, 12), "EditorPane.foreground", new ColorUIResource(Color.black), "EditorPane.inactiveForeground", new ColorUIResource(Color.gray), ! "EditorPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { KeyStroke.getKeyStroke("shift UP"), "selection-up", KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word", KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word", --- 637,643 ---- "EditorPane.font", new FontUIResource("Serif", Font.PLAIN, 12), "EditorPane.foreground", new ColorUIResource(Color.black), "EditorPane.inactiveForeground", new ColorUIResource(Color.gray), ! "EditorPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { KeyStroke.getKeyStroke("shift UP"), "selection-up", KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word", KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word", *************** public abstract class BasicLookAndFeel e *** 782,802 **** "InternalFrame.border", new UIDefaults.LazyValue() { ! public Object createValue(UIDefaults table) ! { ! Color lineColor = new Color(238, 238, 238); ! Border inner = BorderFactory.createLineBorder(lineColor, 1); ! Color shadowInner = new Color(184, 207, 229); ! Color shadowOuter = new Color(122, 138, 153); ! Border outer = BorderFactory.createBevelBorder(BevelBorder.RAISED, ! Color.WHITE, ! Color.WHITE, ! shadowOuter, ! shadowInner); ! Border border = new BorderUIResource.CompoundBorderUIResource(outer, ! inner); ! return border; ! } }, "InternalFrame.borderColor", new ColorUIResource(light), "InternalFrame.borderDarkShadow", new ColorUIResource(Color.BLACK), --- 782,802 ---- "InternalFrame.border", new UIDefaults.LazyValue() { ! public Object createValue(UIDefaults table) ! { ! Color lineColor = new Color(238, 238, 238); ! Border inner = BorderFactory.createLineBorder(lineColor, 1); ! Color shadowInner = new Color(184, 207, 229); ! Color shadowOuter = new Color(122, 138, 153); ! Border outer = BorderFactory.createBevelBorder(BevelBorder.RAISED, ! Color.WHITE, ! Color.WHITE, ! shadowOuter, ! shadowInner); ! Border border = new BorderUIResource.CompoundBorderUIResource(outer, ! inner); ! return border; ! } }, "InternalFrame.borderColor", new ColorUIResource(light), "InternalFrame.borderDarkShadow", new ColorUIResource(Color.BLACK), *************** public abstract class BasicLookAndFeel e *** 1459,1518 **** "TextPane.foreground", new ColorUIResource(Color.black), "TextPane.inactiveForeground", new ColorUIResource(Color.gray), "TextPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { ! KeyStroke.getKeyStroke("shift UP"), "selection-up", ! KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word", ! KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word", ! KeyStroke.getKeyStroke("shift KP_UP"), "selection-up", ! KeyStroke.getKeyStroke("DOWN"), "caret-down", ! KeyStroke.getKeyStroke("shift ctrl T"), "previous-link-action", ! KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word", ! KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard", ! KeyStroke.getKeyStroke("END"), "caret-end-line", ! KeyStroke.getKeyStroke("shift PAGE_UP"), "selection-page-up", ! KeyStroke.getKeyStroke("KP_UP"), "caret-up", ! KeyStroke.getKeyStroke("DELETE"), "delete-next", ! KeyStroke.getKeyStroke("ctrl HOME"), "caret-begin", ! KeyStroke.getKeyStroke("shift LEFT"), "selection-backward", ! KeyStroke.getKeyStroke("ctrl END"), "caret-end", ! KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous", ! KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word", ! KeyStroke.getKeyStroke("LEFT"), "caret-backward", ! KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward", ! KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward", ! KeyStroke.getKeyStroke("ctrl SPACE"), "activate-link-action", ! KeyStroke.getKeyStroke("ctrl H"), "delete-previous", ! KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect", ! KeyStroke.getKeyStroke("ENTER"), "insert-break", ! KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line", ! KeyStroke.getKeyStroke("RIGHT"), "caret-forward", ! KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "selection-page-left", ! KeyStroke.getKeyStroke("shift DOWN"), "selection-down", ! KeyStroke.getKeyStroke("PAGE_DOWN"), "page-down", ! KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward", ! KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation", ! KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard", ! KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "selection-page-right", ! KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard", ! KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word", ! KeyStroke.getKeyStroke("shift END"), "selection-end-line", ! KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word", ! KeyStroke.getKeyStroke("HOME"), "caret-begin-line", ! KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard", ! KeyStroke.getKeyStroke("KP_DOWN"), "caret-down", ! KeyStroke.getKeyStroke("ctrl A"), "select-all", ! KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward", ! KeyStroke.getKeyStroke("shift ctrl END"), "selection-end", ! KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard", ! KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word", ! KeyStroke.getKeyStroke("ctrl T"), "next-link-action", ! KeyStroke.getKeyStroke("shift KP_DOWN"), "selection-down", ! KeyStroke.getKeyStroke("TAB"), "insert-tab", ! KeyStroke.getKeyStroke("UP"), "caret-up", ! KeyStroke.getKeyStroke("shift ctrl HOME"), "selection-begin", ! KeyStroke.getKeyStroke("shift PAGE_DOWN"), "selection-page-down", ! KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward", ! KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word", ! KeyStroke.getKeyStroke("PAGE_UP"), "page-up", KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard" }), "TextPane.margin", new InsetsUIResource(3, 3, 3, 3), --- 1459,1518 ---- "TextPane.foreground", new ColorUIResource(Color.black), "TextPane.inactiveForeground", new ColorUIResource(Color.gray), "TextPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { ! KeyStroke.getKeyStroke("shift UP"), "selection-up", ! KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word", ! KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word", ! KeyStroke.getKeyStroke("shift KP_UP"), "selection-up", ! KeyStroke.getKeyStroke("DOWN"), "caret-down", ! KeyStroke.getKeyStroke("shift ctrl T"), "previous-link-action", ! KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word", ! KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard", ! KeyStroke.getKeyStroke("END"), "caret-end-line", ! KeyStroke.getKeyStroke("shift PAGE_UP"), "selection-page-up", ! KeyStroke.getKeyStroke("KP_UP"), "caret-up", ! KeyStroke.getKeyStroke("DELETE"), "delete-next", ! KeyStroke.getKeyStroke("ctrl HOME"), "caret-begin", ! KeyStroke.getKeyStroke("shift LEFT"), "selection-backward", ! KeyStroke.getKeyStroke("ctrl END"), "caret-end", ! KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous", ! KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word", ! KeyStroke.getKeyStroke("LEFT"), "caret-backward", ! KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward", ! KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward", ! KeyStroke.getKeyStroke("ctrl SPACE"), "activate-link-action", ! KeyStroke.getKeyStroke("ctrl H"), "delete-previous", ! KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect", ! KeyStroke.getKeyStroke("ENTER"), "insert-break", ! KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line", ! KeyStroke.getKeyStroke("RIGHT"), "caret-forward", ! KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "selection-page-left", ! KeyStroke.getKeyStroke("shift DOWN"), "selection-down", ! KeyStroke.getKeyStroke("PAGE_DOWN"), "page-down", ! KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward", ! KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation", ! KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard", ! KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "selection-page-right", ! KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard", ! KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word", ! KeyStroke.getKeyStroke("shift END"), "selection-end-line", ! KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word", ! KeyStroke.getKeyStroke("HOME"), "caret-begin-line", ! KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard", ! KeyStroke.getKeyStroke("KP_DOWN"), "caret-down", ! KeyStroke.getKeyStroke("ctrl A"), "select-all", ! KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward", ! KeyStroke.getKeyStroke("shift ctrl END"), "selection-end", ! KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard", ! KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word", ! KeyStroke.getKeyStroke("ctrl T"), "next-link-action", ! KeyStroke.getKeyStroke("shift KP_DOWN"), "selection-down", ! KeyStroke.getKeyStroke("TAB"), "insert-tab", ! KeyStroke.getKeyStroke("UP"), "caret-up", ! KeyStroke.getKeyStroke("shift ctrl HOME"), "selection-begin", ! KeyStroke.getKeyStroke("shift PAGE_DOWN"), "selection-page-down", ! KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward", ! KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word", ! KeyStroke.getKeyStroke("PAGE_UP"), "page-up", KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard" }), "TextPane.margin", new InsetsUIResource(3, 3, 3, 3), diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicMenuBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicMenuBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicMenuBarUI.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicMenuBarUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicMenuBarUI extends Menu *** 109,128 **** defaultManager.setSelectedPath(me); } } ! } protected ChangeListener changeListener; /*ContainerListener that listens to the ContainerEvents fired from menu bar*/ protected ContainerListener containerListener; ! /*Property change listeners that listener to PropertyChangeEvent from menu bar*/ private PropertyChangeListener propertyChangeListener; /* menu bar for which this UI delegate is for*/ protected JMenuBar menuBar; ! /* MouseListener that listens to the mouseEvents fired from menu bar*/ private MouseInputListener mouseListener; --- 109,128 ---- defaultManager.setSelectedPath(me); } } ! } protected ChangeListener changeListener; /*ContainerListener that listens to the ContainerEvents fired from menu bar*/ protected ContainerListener containerListener; ! /*Property change listeners that listener to PropertyChangeEvent from menu bar*/ private PropertyChangeListener propertyChangeListener; /* menu bar for which this UI delegate is for*/ protected JMenuBar menuBar; ! /* MouseListener that listens to the mouseEvents fired from menu bar*/ private MouseInputListener mouseListener; *************** public class BasicMenuBarUI extends Menu *** 398,404 **** menuBar.repaint(); } } ! private class MouseInputHandler implements MouseInputListener { /** --- 398,404 ---- menuBar.repaint(); } } ! private class MouseInputHandler implements MouseInputListener { /** *************** public class BasicMenuBarUI extends Menu *** 409,415 **** public void mouseClicked(MouseEvent e) { MenuElement[] me = menuBar.getSubElements(); ! for (int i = 0; i < me.length; i++) { JMenu menu = menuBar.getMenu(i); --- 409,415 ---- public void mouseClicked(MouseEvent e) { MenuElement[] me = menuBar.getSubElements(); ! for (int i = 0; i < me.length; i++) { JMenu menu = menuBar.getMenu(i); *************** public class BasicMenuBarUI extends Menu *** 417,423 **** menu.setSelected(false); } } ! /** * Handles mouse pressed event * --- 417,423 ---- menu.setSelected(false); } } ! /** * Handles mouse pressed event * *************** public class BasicMenuBarUI extends Menu *** 427,433 **** { // TODO: What should be done here, if anything? } ! /** * Handles mouse released event * --- 427,433 ---- { // TODO: What should be done here, if anything? } ! /** * Handles mouse released event * *************** public class BasicMenuBarUI extends Menu *** 437,443 **** { // TODO: What should be done here, if anything? } ! /** * Handles mouse exited event * --- 437,443 ---- { // TODO: What should be done here, if anything? } ! /** * Handles mouse exited event * *************** public class BasicMenuBarUI extends Menu *** 447,453 **** { // TODO: What should be done here, if anything? } ! /** * Handles mouse dragged event * --- 447,453 ---- { // TODO: What should be done here, if anything? } ! /** * Handles mouse dragged event * *************** public class BasicMenuBarUI extends Menu *** 457,463 **** { // TODO: What should be done here, if anything? } ! /** * Handles mouse moved event * --- 457,463 ---- { // TODO: What should be done here, if anything? } ! /** * Handles mouse moved event * *************** public class BasicMenuBarUI extends Menu *** 467,473 **** { // TODO: What should be done here, if anything? } ! /** * Handles mouse entered event * --- 467,473 ---- { // TODO: What should be done here, if anything? } ! /** * Handles mouse entered event * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public class BasicMenuItemUI extends Men *** 128,134 **** * Number of spaces between icon and text. */ protected int defaultTextIconGap = 4; ! /** * Color of the text when menu item is disabled */ --- 128,134 ---- * Number of spaces between icon and text. */ protected int defaultTextIconGap = 4; ! /** * Color of the text when menu item is disabled */ *************** public class BasicMenuItemUI extends Men *** 222,235 **** /** * A class to handle PropertChangeEvents for the JMenuItem ! * @author Anthony Balkissoon abalkiss at redhat dot com. */ class PropertyChangeHandler implements PropertyChangeListener { /** * This method is called when a property of the menuItem is changed. * Currently it is only used to update the accelerator key bindings. ! * * @param e * the PropertyChangeEvent */ --- 222,235 ---- /** * A class to handle PropertChangeEvents for the JMenuItem ! * @author Anthony Balkissoon abalkiss at redhat dot com. */ class PropertyChangeHandler implements PropertyChangeListener { /** * This method is called when a property of the menuItem is changed. * Currently it is only used to update the accelerator key bindings. ! * * @param e * the PropertyChangeEvent */ *************** public class BasicMenuItemUI extends Men *** 238,244 **** String property = e.getPropertyName(); if (property.equals("accelerator")) { ! InputMap map = SwingUtilities.getUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW); if (map != null) map.remove((KeyStroke) e.getOldValue()); --- 238,244 ---- String property = e.getPropertyName(); if (property.equals("accelerator")) { ! InputMap map = SwingUtilities.getUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW); if (map != null) map.remove((KeyStroke) e.getOldValue()); *************** public class BasicMenuItemUI extends Men *** 266,272 **** } } } ! /** * A class to handle accelerator keys. This is the Action we will * perform when the accelerator key for this JMenuItem is pressed. --- 266,272 ---- } } } ! /** * A class to handle accelerator keys. This is the Action we will * perform when the accelerator key for this JMenuItem is pressed. *************** public class BasicMenuItemUI extends Men *** 282,290 **** public void actionPerformed(ActionEvent event) { doClick(MenuSelectionManager.defaultManager()); ! } } ! /** * Creates a new BasicMenuItemUI object. */ --- 282,290 ---- public void actionPerformed(ActionEvent event) { doClick(MenuSelectionManager.defaultManager()); ! } } ! /** * Creates a new BasicMenuItemUI object. */ *************** public class BasicMenuItemUI extends Men *** 308,314 **** /** * Create MenuDragMouseListener to listen for mouse dragged events. ! * * @param c * menu item to listen to * @return The MenuDragMouseListener --- 308,314 ---- /** * Create MenuDragMouseListener to listen for mouse dragged events. ! * * @param c * menu item to listen to * @return The MenuDragMouseListener *************** public class BasicMenuItemUI extends Men *** 321,327 **** /** * Creates MenuKeyListener to listen to key events occuring when menu item is * visible on the screen. ! * * @param c * menu item to listen to * @return The MenuKeyListener --- 321,327 ---- /** * Creates MenuKeyListener to listen to key events occuring when menu item is * visible on the screen. ! * * @param c * menu item to listen to * @return The MenuKeyListener *************** public class BasicMenuItemUI extends Men *** 333,339 **** /** * Handles mouse input events occuring for this menu item ! * * @param c * menu item to listen to * @return The MouseInputListener --- 333,339 ---- /** * Handles mouse input events occuring for this menu item ! * * @param c * menu item to listen to * @return The MouseInputListener *************** public class BasicMenuItemUI extends Men *** 346,352 **** /** * Factory method to create a BasicMenuItemUI for the given {@link * JComponent}, which should be a {@link JMenuItem}. ! * * @param c * The {@link JComponent} a UI is being created for. * @return A BasicMenuItemUI for the {@link JComponent}. --- 346,352 ---- /** * Factory method to create a BasicMenuItemUI for the given {@link * JComponent}, which should be a {@link JMenuItem}. ! * * @param c * The {@link JComponent} a UI is being created for. * @return A BasicMenuItemUI for the {@link JComponent}. *************** public class BasicMenuItemUI extends Men *** 358,364 **** /** * Programatically clicks menu item. ! * * @param msm * MenuSelectionManager for the menu hierarchy */ --- 358,364 ---- /** * Programatically clicks menu item. ! * * @param msm * MenuSelectionManager for the menu hierarchy */ *************** public class BasicMenuItemUI extends Men *** 370,376 **** /** * Returns maximum size for the specified menu item ! * * @param c * component for which to get maximum size * @return Maximum size for the specified menu item. --- 370,376 ---- /** * Returns maximum size for the specified menu item ! * * @param c * component for which to get maximum size * @return Maximum size for the specified menu item. *************** public class BasicMenuItemUI extends Men *** 382,388 **** /** * Returns minimum size for the specified menu item ! * * @param c * component for which to get minimum size * @return Minimum size for the specified menu item. --- 382,388 ---- /** * Returns minimum size for the specified menu item ! * * @param c * component for which to get minimum size * @return Minimum size for the specified menu item. *************** public class BasicMenuItemUI extends Men *** 394,400 **** /** * Returns path to this menu item. ! * * @return $MenuElement[]$ Returns array of menu elements that constitute a * path to this menu item. */ --- 394,400 ---- /** * Returns path to this menu item. ! * * @return $MenuElement[]$ Returns array of menu elements that constitute a * path to this menu item. */ *************** public class BasicMenuItemUI extends Men *** 420,426 **** /** * Returns preferred size for the given menu item. ! * * @param c * menu item for which to get preferred size * @param checkIcon --- 420,426 ---- /** * Returns preferred size for the given menu item. ! * * @param c * menu item for which to get preferred size * @param checkIcon *************** public class BasicMenuItemUI extends Men *** 504,523 **** /** * Returns preferred size of the given component ! * * @param c * component for which to return preferred size * @return $Dimension$ preferred size for the given component */ public Dimension getPreferredSize(JComponent c) { ! return getPreferredMenuItemSize(c, checkIcon, arrowIcon, defaultTextIconGap); } /** * Returns the prefix for entries in the {@link UIDefaults} table. ! * * @return "MenuItem" */ protected String getPropertyPrefix() --- 504,523 ---- /** * Returns preferred size of the given component ! * * @param c * component for which to return preferred size * @return $Dimension$ preferred size for the given component */ public Dimension getPreferredSize(JComponent c) { ! return getPreferredMenuItemSize(c, checkIcon, arrowIcon, defaultTextIconGap); } /** * Returns the prefix for entries in the {@link UIDefaults} table. ! * * @return "MenuItem" */ protected String getPropertyPrefix() *************** public class BasicMenuItemUI extends Men *** 527,533 **** /** * This method installs the components for this {@link JMenuItem}. ! * * @param menuItem * The {@link JMenuItem} to install components for. */ --- 527,533 ---- /** * This method installs the components for this {@link JMenuItem}. ! * * @param menuItem * The {@link JMenuItem} to install components for. */ *************** public class BasicMenuItemUI extends Men *** 548,562 **** prefix + ".foreground", prefix + ".font"); menuItem.setMargin(UIManager.getInsets(prefix + ".margin")); acceleratorFont = UIManager.getFont(prefix + ".acceleratorFont"); ! acceleratorForeground = UIManager.getColor(prefix + ".acceleratorForeground"); ! acceleratorSelectionForeground = UIManager.getColor(prefix + ".acceleratorSelectionForeground"); selectionBackground = UIManager.getColor(prefix + ".selectionBackground"); selectionForeground = UIManager.getColor(prefix + ".selectionForeground"); acceleratorDelimiter = UIManager.getString(prefix + ".acceleratorDelimiter"); checkIcon = UIManager.getIcon(prefix + ".checkIcon"); ! menuItem.setHorizontalTextPosition(SwingConstants.TRAILING); menuItem.setHorizontalAlignment(SwingConstants.LEADING); } --- 548,562 ---- prefix + ".foreground", prefix + ".font"); menuItem.setMargin(UIManager.getInsets(prefix + ".margin")); acceleratorFont = UIManager.getFont(prefix + ".acceleratorFont"); ! acceleratorForeground = UIManager.getColor(prefix + ".acceleratorForeground"); ! acceleratorSelectionForeground = UIManager.getColor(prefix + ".acceleratorSelectionForeground"); selectionBackground = UIManager.getColor(prefix + ".selectionBackground"); selectionForeground = UIManager.getColor(prefix + ".selectionForeground"); acceleratorDelimiter = UIManager.getString(prefix + ".acceleratorDelimiter"); checkIcon = UIManager.getIcon(prefix + ".checkIcon"); ! menuItem.setHorizontalTextPosition(SwingConstants.TRAILING); menuItem.setHorizontalAlignment(SwingConstants.LEADING); } *************** public class BasicMenuItemUI extends Men *** 566,581 **** */ protected void installKeyboardActions() { ! InputMap focusedWindowMap = SwingUtilities.getUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW); if (focusedWindowMap == null) focusedWindowMap = new ComponentInputMapUIResource(menuItem); KeyStroke accelerator = menuItem.getAccelerator(); if (accelerator != null) focusedWindowMap.put(accelerator, "doClick"); ! SwingUtilities.replaceUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW, focusedWindowMap); ! ActionMap UIActionMap = SwingUtilities.getUIActionMap(menuItem); if (UIActionMap == null) UIActionMap = new ActionMapUIResource(); --- 566,581 ---- */ protected void installKeyboardActions() { ! InputMap focusedWindowMap = SwingUtilities.getUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW); if (focusedWindowMap == null) focusedWindowMap = new ComponentInputMapUIResource(menuItem); KeyStroke accelerator = menuItem.getAccelerator(); if (accelerator != null) focusedWindowMap.put(accelerator, "doClick"); ! SwingUtilities.replaceUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW, focusedWindowMap); ! ActionMap UIActionMap = SwingUtilities.getUIActionMap(menuItem); if (UIActionMap == null) UIActionMap = new ActionMapUIResource(); *************** public class BasicMenuItemUI extends Men *** 605,611 **** * Installs and initializes all fields for this UI delegate. Any properties of * the UI that need to be initialized and/or set to defaults will be done now. * It will also install any listeners necessary. ! * * @param c * The {@link JComponent} that is having this UI installed. */ --- 605,611 ---- * Installs and initializes all fields for this UI delegate. Any properties of * the UI that need to be initialized and/or set to defaults will be done now. * It will also install any listeners necessary. ! * * @param c * The {@link JComponent} that is having this UI installed. */ *************** public class BasicMenuItemUI extends Men *** 621,627 **** /** * Paints given menu item using specified graphics context ! * * @param g * The graphics context used to paint this menu item * @param c --- 621,627 ---- /** * Paints given menu item using specified graphics context ! * * @param g * The graphics context used to paint this menu item * @param c *************** public class BasicMenuItemUI extends Men *** 635,641 **** /** * Paints background of the menu item ! * * @param g * The graphics context used to paint this menu item * @param menuItem --- 635,641 ---- /** * Paints background of the menu item ! * * @param g * The graphics context used to paint this menu item * @param menuItem *************** public class BasicMenuItemUI extends Men *** 664,670 **** /** * Paints specified menu item ! * * @param g * The graphics context used to paint this menu item * @param c --- 664,670 ---- /** * Paints specified menu item ! * * @param g * The graphics context used to paint this menu item * @param c *************** public class BasicMenuItemUI extends Men *** 808,814 **** /** * Paints label for the given menu item ! * * @param g * The graphics context used to paint this menu item * @param menuItem --- 808,814 ---- /** * Paints label for the given menu item ! * * @param g * The graphics context used to paint this menu item * @param menuItem *************** public class BasicMenuItemUI extends Men *** 864,870 **** /** * This method uninstalls the components for this {@link JMenuItem}. ! * * @param menuItem * The {@link JMenuItem} to uninstall components for. */ --- 864,870 ---- /** * This method uninstalls the components for this {@link JMenuItem}. ! * * @param menuItem * The {@link JMenuItem} to uninstall components for. */ *************** public class BasicMenuItemUI extends Men *** 901,907 **** * Uninstalls any keyboard actions. */ protected void uninstallKeyboardActions() ! { SwingUtilities.replaceUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW, null); } --- 901,907 ---- * Uninstalls any keyboard actions. */ protected void uninstallKeyboardActions() ! { SwingUtilities.replaceUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW, null); } *************** public class BasicMenuItemUI extends Men *** 922,928 **** * Performs the opposite of installUI. Any properties or resources that need * to be cleaned up will be done now. It will also uninstall any listeners it * has. In addition, any properties of this UI will be nulled. ! * * @param c * The {@link JComponent} that is having this UI uninstalled. */ --- 922,928 ---- * Performs the opposite of installUI. Any properties or resources that need * to be cleaned up will be done now. It will also uninstall any listeners it * has. In addition, any properties of this UI will be nulled. ! * * @param c * The {@link JComponent} that is having this UI uninstalled. */ *************** public class BasicMenuItemUI extends Men *** 937,943 **** /** * This method calls paint. ! * * @param g * The graphics context used to paint this menu item * @param c --- 937,943 ---- /** * This method calls paint. ! * * @param g * The graphics context used to paint this menu item * @param c *************** public class BasicMenuItemUI extends Men *** 966,972 **** /** * This method is called when mouse is clicked on the menu item. It forwards * this event to MenuSelectionManager. ! * * @param e * A {@link MouseEvent}. */ --- 966,972 ---- /** * This method is called when mouse is clicked on the menu item. It forwards * this event to MenuSelectionManager. ! * * @param e * A {@link MouseEvent}. */ *************** public class BasicMenuItemUI extends Men *** 979,985 **** /** * This method is called when mouse is dragged inside the menu item. It * forwards this event to MenuSelectionManager. ! * * @param e * A {@link MouseEvent}. */ --- 979,985 ---- /** * This method is called when mouse is dragged inside the menu item. It * forwards this event to MenuSelectionManager. ! * * @param e * A {@link MouseEvent}. */ *************** public class BasicMenuItemUI extends Men *** 994,1000 **** * item is considered to be selected and selection path in * MenuSelectionManager is set. This event is also forwarded to * MenuSelection Manager for further processing. ! * * @param e * A {@link MouseEvent}. */ --- 994,1000 ---- * item is considered to be selected and selection path in * MenuSelectionManager is set. This event is also forwarded to * MenuSelection Manager for further processing. ! * * @param e * A {@link MouseEvent}. */ *************** public class BasicMenuItemUI extends Men *** 1012,1018 **** /** * This method is called when mouse exits menu item. The event is forwarded * to MenuSelectionManager for processing. ! * * @param e * A {@link MouseEvent}. */ --- 1012,1018 ---- /** * This method is called when mouse exits menu item. The event is forwarded * to MenuSelectionManager for processing. ! * * @param e * A {@link MouseEvent}. */ *************** public class BasicMenuItemUI extends Men *** 1025,1031 **** /** * This method is called when mouse is inside the menu item. This event is * forwarder to MenuSelectionManager for further processing. ! * * @param e * A {@link MouseEvent}. */ --- 1025,1031 ---- /** * This method is called when mouse is inside the menu item. This event is * forwarder to MenuSelectionManager for further processing. ! * * @param e * A {@link MouseEvent}. */ *************** public class BasicMenuItemUI extends Men *** 1038,1044 **** /** * This method is called when mouse is pressed. This event is forwarded to * MenuSelectionManager for further processing. ! * * @param e * A {@link MouseEvent}. */ --- 1038,1044 ---- /** * This method is called when mouse is pressed. This event is forwarded to * MenuSelectionManager for further processing. ! * * @param e * A {@link MouseEvent}. */ *************** public class BasicMenuItemUI extends Men *** 1052,1058 **** * This method is called when mouse is released. If the mouse is released * inside this menuItem, then this menu item is considered to be chosen and * the menu hierarchy should be closed. ! * * @param e * A {@link MouseEvent}. */ --- 1052,1058 ---- * This method is called when mouse is released. If the mouse is released * inside this menuItem, then this menu item is considered to be chosen and * the menu hierarchy should be closed. ! * * @param e * A {@link MouseEvent}. */ *************** public class BasicMenuItemUI extends Men *** 1078,1084 **** { /** * Tbis method is invoked when mouse is dragged over the menu item. ! * * @param e * The MenuDragMouseEvent */ --- 1078,1084 ---- { /** * Tbis method is invoked when mouse is dragged over the menu item. ! * * @param e * The MenuDragMouseEvent */ *************** public class BasicMenuItemUI extends Men *** 1091,1097 **** /** * Tbis method is invoked when mouse enters the menu item while it is being * dragged. ! * * @param e * The MenuDragMouseEvent */ --- 1091,1097 ---- /** * Tbis method is invoked when mouse enters the menu item while it is being * dragged. ! * * @param e * The MenuDragMouseEvent */ *************** public class BasicMenuItemUI extends Men *** 1104,1110 **** /** * Tbis method is invoked when mouse exits the menu item while it is being * dragged ! * * @param e the MenuDragMouseEvent */ public void menuDragMouseExited(MenuDragMouseEvent e) --- 1104,1110 ---- /** * Tbis method is invoked when mouse exits the menu item while it is being * dragged ! * * @param e the MenuDragMouseEvent */ public void menuDragMouseExited(MenuDragMouseEvent e) *************** public class BasicMenuItemUI extends Men *** 1115,1121 **** /** * Tbis method is invoked when mouse was dragged and released inside the * menu item. ! * * @param e * The MenuDragMouseEvent */ --- 1115,1121 ---- /** * Tbis method is invoked when mouse was dragged and released inside the * menu item. ! * * @param e * The MenuDragMouseEvent */ *************** public class BasicMenuItemUI extends Men *** 1140,1146 **** { /** * This method is invoked when key has been pressed ! * * @param e * A {@link MenuKeyEvent}. */ --- 1140,1146 ---- { /** * This method is invoked when key has been pressed ! * * @param e * A {@link MenuKeyEvent}. */ *************** public class BasicMenuItemUI extends Men *** 1151,1157 **** /** * This method is invoked when key has been pressed ! * * @param e * A {@link MenuKeyEvent}. */ --- 1151,1157 ---- /** * This method is invoked when key has been pressed ! * * @param e * A {@link MenuKeyEvent}. */ *************** public class BasicMenuItemUI extends Men *** 1163,1169 **** /** * This method is invoked when key has been typed It handles the mnemonic * key for the menu item. ! * * @param e * A {@link MenuKeyEvent}. */ --- 1163,1169 ---- /** * This method is invoked when key has been typed It handles the mnemonic * key for the menu item. ! * * @param e * A {@link MenuKeyEvent}. */ *************** public class BasicMenuItemUI extends Men *** 1172,1178 **** // TODO: What should be done here, if anything? } } ! /** * Helper class that listens for item changes to the properties of the {@link * JMenuItem}. --- 1172,1178 ---- // TODO: What should be done here, if anything? } } ! /** * Helper class that listens for item changes to the properties of the {@link * JMenuItem}. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicMenuUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicMenuUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicMenuUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicMenuUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicMenuUI extends BasicMe *** 98,104 **** defaultManager.setSelectedPath(newPath); } } ! } protected ChangeListener changeListener; --- 98,104 ---- defaultManager.setSelectedPath(newPath); } } ! } protected ChangeListener changeListener; *************** public class BasicMenuUI extends BasicMe *** 233,239 **** */ protected void installDefaults() { ! LookAndFeel.installBorder(menuItem, "Menu.border"); LookAndFeel.installColorsAndFont(menuItem, "Menu.background", "Menu.foreground", "Menu.font"); --- 233,239 ---- */ protected void installDefaults() { ! LookAndFeel.installBorder(menuItem, "Menu.border"); LookAndFeel.installColorsAndFont(menuItem, "Menu.background", "Menu.foreground", "Menu.font"); *************** public class BasicMenuUI extends BasicMe *** 502,510 **** { JMenu menu = (JMenu) menuItem; if (menu.isTopLevelMenu()) ! ((JMenuBar) menu.getParent()).setSelected(menu); else ! ((JPopupMenu) menu.getParent()).setSelected(menu); } } --- 502,510 ---- { JMenu menu = (JMenu) menuItem; if (menu.isTopLevelMenu()) ! ((JMenuBar) menu.getParent()).setSelected(menu); else ! ((JPopupMenu) menu.getParent()).setSelected(menu); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicOptionPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicOptionPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicOptionPaneUI.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicOptionPaneUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicOptionPaneUI extends O *** 100,106 **** JOptionPane op = (JOptionPane) event.getSource(); op.setValue(new Integer(JOptionPane.CLOSED_OPTION)); } ! } /** --- 100,106 ---- JOptionPane op = (JOptionPane) event.getSource(); op.setValue(new Integer(JOptionPane.CLOSED_OPTION)); } ! } /** *************** public class BasicOptionPaneUI extends O *** 136,153 **** Object value = new Integer(JOptionPane.CLOSED_OPTION); Object[] options = optionPane.getOptions(); if (options != null) ! value = new Integer(buttonIndex); else { ! String text = ((JButton) e.getSource()).getText(); ! if (text.equals(OK_STRING)) ! value = new Integer(JOptionPane.OK_OPTION); ! if (text.equals(CANCEL_STRING)) ! value = new Integer(JOptionPane.CANCEL_OPTION); ! if (text.equals(YES_STRING)) ! value = new Integer(JOptionPane.YES_OPTION); ! if (text.equals(NO_STRING)) ! value = new Integer(JOptionPane.NO_OPTION); } optionPane.setValue(value); resetInputValue(); --- 136,153 ---- Object value = new Integer(JOptionPane.CLOSED_OPTION); Object[] options = optionPane.getOptions(); if (options != null) ! value = new Integer(buttonIndex); else { ! String text = ((JButton) e.getSource()).getText(); ! if (text.equals(OK_STRING)) ! value = new Integer(JOptionPane.OK_OPTION); ! if (text.equals(CANCEL_STRING)) ! value = new Integer(JOptionPane.CANCEL_OPTION); ! if (text.equals(YES_STRING)) ! value = new Integer(JOptionPane.YES_OPTION); ! if (text.equals(NO_STRING)) ! value = new Integer(JOptionPane.NO_OPTION); } optionPane.setValue(value); resetInputValue(); *************** public class BasicOptionPaneUI extends O *** 155,161 **** Window owner = SwingUtilities.windowForComponent(optionPane); if (owner instanceof JDialog) ! ((JDialog) owner).dispose(); //else we probably have some kind of internal frame. JInternalFrame inf = (JInternalFrame) SwingUtilities.getAncestorOfClass( --- 155,161 ---- Window owner = SwingUtilities.windowForComponent(optionPane); if (owner instanceof JDialog) ! ((JDialog) owner).dispose(); //else we probably have some kind of internal frame. JInternalFrame inf = (JInternalFrame) SwingUtilities.getAncestorOfClass( *************** public class BasicOptionPaneUI extends O *** 265,285 **** Component[] buttonList = container.getComponents(); int x = container.getInsets().left; if (getCentersChildren()) ! x += (int) ((double) (container.getSize().width) / 2 ! - (double) (buttonRowLength(container)) / 2); for (int i = 0; i < buttonList.length; i++) { ! Dimension dims = buttonList[i].getPreferredSize(); ! if (syncAllWidths) ! { ! buttonList[i].setBounds(x, 0, widthOfWidestButton, dims.height); ! x += widthOfWidestButton + getPadding(); ! } ! else ! { ! buttonList[i].setBounds(x, 0, dims.width, dims.height); ! x += dims.width + getPadding(); ! } } } --- 265,285 ---- Component[] buttonList = container.getComponents(); int x = container.getInsets().left; if (getCentersChildren()) ! x += (int) ((double) (container.getSize().width) / 2 ! - (double) (buttonRowLength(container)) / 2); for (int i = 0; i < buttonList.length; i++) { ! Dimension dims = buttonList[i].getPreferredSize(); ! if (syncAllWidths) ! { ! buttonList[i].setBounds(x, 0, widthOfWidestButton, dims.height); ! x += widthOfWidestButton + getPadding(); ! } ! else ! { ! buttonList[i].setBounds(x, 0, dims.width, dims.height); ! x += dims.width + getPadding(); ! } } } *************** public class BasicOptionPaneUI extends O *** 301,310 **** for (int i = 0; i < buttonList.length; i++) { ! Dimension dims = buttonList[i].getPreferredSize(); ! buttonLength += dims.width + getPadding(); ! widest = Math.max(widest, dims.width); ! tallest = Math.max(tallest, dims.height); } widthOfWidestButton = widest; --- 301,310 ---- for (int i = 0; i < buttonList.length; i++) { ! Dimension dims = buttonList[i].getPreferredSize(); ! buttonLength += dims.width + getPadding(); ! widest = Math.max(widest, dims.width); ! tallest = Math.max(tallest, dims.height); } widthOfWidestButton = widest; *************** public class BasicOptionPaneUI extends O *** 312,321 **** int width; if (getSyncAllWidths()) ! width = widest * buttonList.length ! + getPadding() * (buttonList.length - 1); else ! width = buttonLength; Insets insets = c.getInsets(); width += insets.left + insets.right; --- 312,321 ---- int width; if (getSyncAllWidths()) ! width = widest * buttonList.length ! + getPadding() * (buttonList.length - 1); else ! width = buttonLength; Insets insets = c.getInsets(); width += insets.left + insets.right; *************** public class BasicOptionPaneUI extends O *** 438,447 **** /** Whether the JOptionPane contains custom components. */ protected boolean hasCustomComponents; ! // The initialFocusComponent seems to always be set to a button (even if ! // I try to set initialSelectionValue). This is different from what the ! // javadocs state (which should switch this reference to the input component ! // if one is present since that is what's going to get focus). /** * The button that will receive focus based on initialValue when no input --- 438,447 ---- /** Whether the JOptionPane contains custom components. */ protected boolean hasCustomComponents; ! // The initialFocusComponent seems to always be set to a button (even if ! // I try to set initialSelectionValue). This is different from what the ! // javadocs state (which should switch this reference to the input component ! // if one is present since that is what's going to get focus). /** * The button that will receive focus based on initialValue when no input *************** public class BasicOptionPaneUI extends O *** 531,550 **** { public void paintIcon(Component c, Graphics g, int x, int y) { ! Polygon oct = new Polygon(new int[] { 0, 0, 9, 27, 36, 36, 27, 9 }, ! new int[] { 9, 27, 36, 36, 27, 9, 0, 0 }, 8); ! g.translate(x, y); ! Color saved = g.getColor(); ! g.setColor(Color.RED); ! g.fillPolygon(oct); ! g.setColor(Color.BLACK); ! g.drawRect(13, 16, 10, 4); ! g.setColor(saved); ! g.translate(-x, -y); } }; --- 531,550 ---- { public void paintIcon(Component c, Graphics g, int x, int y) { ! Polygon oct = new Polygon(new int[] { 0, 0, 9, 27, 36, 36, 27, 9 }, ! new int[] { 9, 27, 36, 36, 27, 9, 0, 0 }, 8); ! g.translate(x, y); ! Color saved = g.getColor(); ! g.setColor(Color.RED); ! g.fillPolygon(oct); ! g.setColor(Color.BLACK); ! g.drawRect(13, 16, 10, 4); ! g.setColor(saved); ! g.translate(-x, -y); } }; *************** public class BasicOptionPaneUI extends O *** 553,576 **** { public void paintIcon(Component c, Graphics g, int x, int y) { ! g.translate(x, y); ! Color saved = g.getColor(); ! // Should be purple. ! g.setColor(Color.RED); ! g.fillOval(0, 0, ICON_SIZE, ICON_SIZE); ! g.setColor(Color.BLACK); ! g.drawOval(16, 6, 4, 4); ! Polygon bottomI = new Polygon(new int[] { 15, 15, 13, 13, 23, 23, 21, 21 }, ! new int[] { 12, 28, 28, 30, 30, 28, 28, 12 }, ! 8); ! g.drawPolygon(bottomI); ! g.setColor(saved); ! g.translate(-x, -y); } }; --- 553,576 ---- { public void paintIcon(Component c, Graphics g, int x, int y) { ! g.translate(x, y); ! Color saved = g.getColor(); ! // Should be purple. ! g.setColor(Color.RED); ! g.fillOval(0, 0, ICON_SIZE, ICON_SIZE); ! g.setColor(Color.BLACK); ! g.drawOval(16, 6, 4, 4); ! Polygon bottomI = new Polygon(new int[] { 15, 15, 13, 13, 23, 23, 21, 21 }, ! new int[] { 12, 28, 28, 30, 30, 28, 28, 12 }, ! 8); ! g.drawPolygon(bottomI); ! g.setColor(saved); ! g.translate(-x, -y); } }; *************** public class BasicOptionPaneUI extends O *** 579,601 **** { public void paintIcon(Component c, Graphics g, int x, int y) { ! g.translate(x, y); ! Color saved = g.getColor(); ! g.setColor(Color.YELLOW); ! Polygon triangle = new Polygon(new int[] { 0, 18, 36 }, ! new int[] { 36, 0, 36 }, 3); ! g.fillPolygon(triangle); ! g.setColor(Color.BLACK); ! Polygon excl = new Polygon(new int[] { 15, 16, 20, 21 }, ! new int[] { 8, 26, 26, 8 }, 4); ! g.drawPolygon(excl); ! g.drawOval(16, 30, 4, 4); ! g.setColor(saved); ! g.translate(-x, -y); } }; --- 579,601 ---- { public void paintIcon(Component c, Graphics g, int x, int y) { ! g.translate(x, y); ! Color saved = g.getColor(); ! g.setColor(Color.YELLOW); ! Polygon triangle = new Polygon(new int[] { 0, 18, 36 }, ! new int[] { 36, 0, 36 }, 3); ! g.fillPolygon(triangle); ! g.setColor(Color.BLACK); ! Polygon excl = new Polygon(new int[] { 15, 16, 20, 21 }, ! new int[] { 8, 26, 26, 8 }, 4); ! g.drawPolygon(excl); ! g.drawOval(16, 30, 4, 4); ! g.setColor(saved); ! g.translate(-x, -y); } }; *************** public class BasicOptionPaneUI extends O *** 604,635 **** { public void paintIcon(Component c, Graphics g, int x, int y) { ! g.translate(x, y); ! Color saved = g.getColor(); ! g.setColor(Color.GREEN); ! g.fillRect(0, 0, ICON_SIZE, ICON_SIZE); ! g.setColor(Color.BLACK); ! g.drawOval(11, 2, 16, 16); ! g.drawOval(14, 5, 10, 10); ! g.setColor(Color.GREEN); ! g.fillRect(0, 10, ICON_SIZE, ICON_SIZE - 10); ! g.setColor(Color.BLACK); ! g.drawLine(11, 10, 14, 10); ! g.drawLine(24, 10, 17, 22); ! g.drawLine(27, 10, 20, 22); ! g.drawLine(17, 22, 20, 22); ! g.drawOval(17, 25, 3, 3); ! g.setColor(saved); ! g.translate(-x, -y); } }; --- 604,635 ---- { public void paintIcon(Component c, Graphics g, int x, int y) { ! g.translate(x, y); ! Color saved = g.getColor(); ! g.setColor(Color.GREEN); ! g.fillRect(0, 0, ICON_SIZE, ICON_SIZE); ! g.setColor(Color.BLACK); ! g.drawOval(11, 2, 16, 16); ! g.drawOval(14, 5, 10, 10); ! g.setColor(Color.GREEN); ! g.fillRect(0, 10, ICON_SIZE, ICON_SIZE - 10); ! g.setColor(Color.BLACK); ! g.drawLine(11, 10, 14, 10); ! g.drawLine(24, 10, 17, 22); ! g.drawLine(27, 10, 20, 22); ! g.drawLine(17, 22, 20, 22); ! g.drawOval(17, 25, 3, 3); ! g.setColor(saved); ! g.translate(-x, -y); } }; *************** public class BasicOptionPaneUI extends O *** 659,683 **** return; for (int i = 0; i < buttons.length; i++) { ! if (buttons[i] != null) ! { ! Component toAdd; ! if (buttons[i] instanceof Component) ! toAdd = (Component) buttons[i]; ! else ! { ! if (buttons[i] instanceof Icon) ! toAdd = new JButton((Icon) buttons[i]); ! else ! toAdd = new JButton(buttons[i].toString()); ! hasCustomComponents = true; ! } ! if (toAdd instanceof JButton) ! ((JButton) toAdd).addActionListener(createButtonActionListener(i)); ! if (i == initialIndex) ! initialFocusComponent = toAdd; ! container.add(toAdd); ! } } selectInitialValue(optionPane); } --- 659,683 ---- return; for (int i = 0; i < buttons.length; i++) { ! if (buttons[i] != null) ! { ! Component toAdd; ! if (buttons[i] instanceof Component) ! toAdd = (Component) buttons[i]; ! else ! { ! if (buttons[i] instanceof Icon) ! toAdd = new JButton((Icon) buttons[i]); ! else ! toAdd = new JButton(buttons[i].toString()); ! hasCustomComponents = true; ! } ! if (toAdd instanceof JButton) ! ((JButton) toAdd).addActionListener(createButtonActionListener(i)); ! if (i == initialIndex) ! initialFocusComponent = toAdd; ! container.add(toAdd); ! } } selectInitialValue(optionPane); } *************** public class BasicOptionPaneUI extends O *** 693,701 **** Icon icon = getIcon(); if (icon != null) { ! iconLabel = new JLabel(icon); configureLabel(iconLabel); ! top.add(iconLabel, BorderLayout.WEST); } } --- 693,701 ---- Icon icon = getIcon(); if (icon != null) { ! iconLabel = new JLabel(icon); configureLabel(iconLabel); ! top.add(iconLabel, BorderLayout.WEST); } } *************** public class BasicOptionPaneUI extends O *** 743,780 **** hasCustomComponents = internallyCreated; if (msg instanceof Object[]) { ! Object[] arr = (Object[]) msg; ! for (int i = 0; i < arr.length; i++) ! addMessageComponents(container, cons, arr[i], maxll, ! internallyCreated); ! return; } else if (msg instanceof Component) { ! container.add((Component) msg, cons); ! cons.gridy++; } else if (msg instanceof Icon) { JLabel label = new JLabel((Icon) msg); configureLabel(label); ! container.add(label, cons); ! cons.gridy++; } else { ! // Undocumented behaviour. ! // if msg.toString().length greater than maxll ! // it will create a box and burst the string. ! // otherwise, it will just create a label and re-call ! // this method with the label o.O ! if (msg.toString().length() > maxll || msg.toString().contains("\n")) ! { ! Box tmp = new Box(BoxLayout.Y_AXIS); ! burstStringInto(tmp, msg.toString(), maxll); ! addMessageComponents(container, cons, tmp, maxll, true); ! } ! else { JLabel label = new JLabel(msg.toString()); configureLabel(label); --- 743,780 ---- hasCustomComponents = internallyCreated; if (msg instanceof Object[]) { ! Object[] arr = (Object[]) msg; ! for (int i = 0; i < arr.length; i++) ! addMessageComponents(container, cons, arr[i], maxll, ! internallyCreated); ! return; } else if (msg instanceof Component) { ! container.add((Component) msg, cons); ! cons.gridy++; } else if (msg instanceof Icon) { JLabel label = new JLabel((Icon) msg); configureLabel(label); ! container.add(label, cons); ! cons.gridy++; } else { ! // Undocumented behaviour. ! // if msg.toString().length greater than maxll ! // it will create a box and burst the string. ! // otherwise, it will just create a label and re-call ! // this method with the label o.O ! if (msg.toString().length() > maxll || msg.toString().contains("\n")) ! { ! Box tmp = new Box(BoxLayout.Y_AXIS); ! burstStringInto(tmp, msg.toString(), maxll); ! addMessageComponents(container, cons, tmp, maxll, true); ! } ! else { JLabel label = new JLabel(msg.toString()); configureLabel(label); *************** public class BasicOptionPaneUI extends O *** 817,823 **** if (remainder.length() == 0) return; ! // Recursively call ourselves to burst the remainder of the string, if (remainder.length() > maxll || remainder.contains("\n")) burstStringInto(c, remainder, maxll); else --- 817,823 ---- if (remainder.length() == 0) return; ! // Recursively call ourselves to burst the remainder of the string, if (remainder.length() > maxll || remainder.contains("\n")) burstStringInto(c, remainder, maxll); else *************** public class BasicOptionPaneUI extends O *** 901,927 **** rightSide.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); rightSide.setLayout(new GridBagLayout()); GridBagConstraints con = createConstraints(); ! addMessageComponents(rightSide, con, getMessage(), getMaxCharactersPerLineCount(), false); if (optionPane.getWantsInput()) { ! Object[] selection = optionPane.getSelectionValues(); ! if (selection == null) inputComponent = new JTextField(15); ! else if (selection.length < 20) inputComponent = new JComboBox(selection); ! else ! inputComponent = new JList(selection); ! if (inputComponent != null) ! { ! addMessageComponents(rightSide, con, inputComponent, getMaxCharactersPerLineCount(), false); ! resetSelectedValue(); ! selectInitialValue(optionPane); ! } } messageArea.add(rightSide, BorderLayout.CENTER); --- 901,927 ---- rightSide.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); rightSide.setLayout(new GridBagLayout()); GridBagConstraints con = createConstraints(); ! addMessageComponents(rightSide, con, getMessage(), getMaxCharactersPerLineCount(), false); if (optionPane.getWantsInput()) { ! Object[] selection = optionPane.getSelectionValues(); ! if (selection == null) inputComponent = new JTextField(15); ! else if (selection.length < 20) inputComponent = new JComboBox(selection); ! else ! inputComponent = new JList(selection); ! if (inputComponent != null) ! { ! addMessageComponents(rightSide, con, inputComponent, getMaxCharactersPerLineCount(), false); ! resetSelectedValue(); ! selectInitialValue(optionPane); ! } } messageArea.add(rightSide, BorderLayout.CENTER); *************** public class BasicOptionPaneUI extends O *** 979,989 **** switch (optionPane.getOptionType()) { case JOptionPane.YES_NO_OPTION: ! return new Object[] { YES_STRING, NO_STRING }; case JOptionPane.YES_NO_CANCEL_OPTION: ! return new Object[] { YES_STRING, NO_STRING, CANCEL_STRING }; case JOptionPane.OK_CANCEL_OPTION: ! return new Object[] { OK_STRING, CANCEL_STRING }; case JOptionPane.DEFAULT_OPTION: return (optionPane.getWantsInput()) ? new Object[] { OK_STRING, CANCEL_STRING } : --- 979,989 ---- switch (optionPane.getOptionType()) { case JOptionPane.YES_NO_OPTION: ! return new Object[] { YES_STRING, NO_STRING }; case JOptionPane.YES_NO_CANCEL_OPTION: ! return new Object[] { YES_STRING, NO_STRING, CANCEL_STRING }; case JOptionPane.OK_CANCEL_OPTION: ! return new Object[] { OK_STRING, CANCEL_STRING }; case JOptionPane.DEFAULT_OPTION: return (optionPane.getWantsInput()) ? new Object[] { OK_STRING, CANCEL_STRING } : *************** public class BasicOptionPaneUI extends O *** 1022,1038 **** switch (messageType) { case JOptionPane.ERROR_MESSAGE: ! tmp = errorIcon; ! break; case JOptionPane.INFORMATION_MESSAGE: ! tmp = infoIcon; ! break; case JOptionPane.WARNING_MESSAGE: ! tmp = warningIcon; ! break; case JOptionPane.QUESTION_MESSAGE: ! tmp = questionIcon; ! break; } return tmp; // FIXME: Don't cast till the default icons are in. --- 1022,1038 ---- switch (messageType) { case JOptionPane.ERROR_MESSAGE: ! tmp = errorIcon; ! break; case JOptionPane.INFORMATION_MESSAGE: ! tmp = infoIcon; ! break; case JOptionPane.WARNING_MESSAGE: ! tmp = warningIcon; ! break; case JOptionPane.QUESTION_MESSAGE: ! tmp = questionIcon; ! break; } return tmp; // FIXME: Don't cast till the default icons are in. *************** public class BasicOptionPaneUI extends O *** 1055,1062 **** for (int i = 0; i < buttons.length; i++) { ! if (select == buttons[i]) ! return i; } return 0; } --- 1055,1062 ---- for (int i = 0; i < buttons.length; i++) { ! if (select == buttons[i]) ! return i; } return 0; } *************** public class BasicOptionPaneUI extends O *** 1251,1262 **** { if (c instanceof JOptionPane) { ! optionPane = (JOptionPane) c; ! installDefaults(); ! installComponents(); ! installListeners(); ! installKeyboardActions(); } } --- 1251,1262 ---- { if (c instanceof JOptionPane) { ! optionPane = (JOptionPane) c; ! installDefaults(); ! installComponents(); ! installListeners(); ! installKeyboardActions(); } } *************** public class BasicOptionPaneUI extends O *** 1268,1283 **** { if (optionPane.getWantsInput() && inputComponent != null) { ! Object output = null; ! if (inputComponent instanceof JTextField) ! output = ((JTextField) inputComponent).getText(); ! else if (inputComponent instanceof JComboBox) ! output = ((JComboBox) inputComponent).getSelectedItem(); ! else if (inputComponent instanceof JList) ! output = ((JList) inputComponent).getSelectedValue(); ! if (output != null) ! optionPane.setInputValue(output); } } --- 1268,1283 ---- { if (optionPane.getWantsInput() && inputComponent != null) { ! Object output = null; ! if (inputComponent instanceof JTextField) ! output = ((JTextField) inputComponent).getText(); ! else if (inputComponent instanceof JComboBox) ! output = ((JComboBox) inputComponent).getSelectedItem(); ! else if (inputComponent instanceof JList) ! output = ((JList) inputComponent).getSelectedValue(); ! if (output != null) ! optionPane.setInputValue(output); } } *************** public class BasicOptionPaneUI extends O *** 1291,1298 **** { if (inputComponent != null) { ! inputComponent.requestFocus(); ! return; } if (initialFocusComponent != null) initialFocusComponent.requestFocus(); --- 1291,1298 ---- { if (inputComponent != null) { ! inputComponent.requestFocus(); ! return; } if (initialFocusComponent != null) initialFocusComponent.requestFocus(); *************** public class BasicOptionPaneUI extends O *** 1307,1323 **** { if (inputComponent != null) { ! Object init = optionPane.getInitialSelectionValue(); ! if (init == null) ! return; ! if (inputComponent instanceof JTextField) ! ((JTextField) inputComponent).setText((String) init); ! else if (inputComponent instanceof JComboBox) ! ((JComboBox) inputComponent).setSelectedItem(init); ! else if (inputComponent instanceof JList) ! { ! // ((JList) inputComponent).setSelectedValue(init, true); ! } } } --- 1307,1323 ---- { if (inputComponent != null) { ! Object init = optionPane.getInitialSelectionValue(); ! if (init == null) ! return; ! if (inputComponent instanceof JTextField) ! ((JTextField) inputComponent).setText((String) init); ! else if (inputComponent instanceof JComboBox) ! ((JComboBox) inputComponent).setSelectedItem(init); ! else if (inputComponent instanceof JList) ! { ! // ((JList) inputComponent).setSelectedValue(init, true); ! } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicPanelUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicPanelUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicPanelUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicPanelUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicPanelUI extends PanelU *** 54,66 **** * stateless). */ static BasicPanelUI sharedUI; ! /** * Returns a UI delegate for the specified component. ! * * @param panel the panel. */ ! public static ComponentUI createUI(JComponent panel) { if (sharedUI == null) sharedUI = new BasicPanelUI(); --- 54,66 ---- * stateless). */ static BasicPanelUI sharedUI; ! /** * Returns a UI delegate for the specified component. ! * * @param panel the panel. */ ! public static ComponentUI createUI(JComponent panel) { if (sharedUI == null) sharedUI = new BasicPanelUI(); *************** public class BasicPanelUI extends PanelU *** 69,75 **** /** * Installs this UI delegate in the specified component. ! * * @param c the component (should be a {@link JPanel}, null not * permitted). */ --- 69,75 ---- /** * Installs this UI delegate in the specified component. ! * * @param c the component (should be a {@link JPanel}, null not * permitted). */ *************** public class BasicPanelUI extends PanelU *** 85,103 **** /** * Installs the defaults for this UI delegate in the specified panel. ! * * @param p the panel (null not permitted). */ protected void installDefaults(JPanel p) { LookAndFeel.installColorsAndFont(p, "Panel.background", "Panel.foreground", "Panel.font"); ! // A test against the reference implementation shows that this method will // install a border if one is defined in the UIDefaults table (even though // the BasicLookAndFeel doesn't actually define a "Panel.border"). This ! // test was written after discovering that a null argument to ! // uninstallDefaults throws a NullPointerException in // LookAndFeel.uninstallBorder()... LookAndFeel.installBorder(p, "Panel.border"); } --- 85,103 ---- /** * Installs the defaults for this UI delegate in the specified panel. ! * * @param p the panel (null not permitted). */ protected void installDefaults(JPanel p) { LookAndFeel.installColorsAndFont(p, "Panel.background", "Panel.foreground", "Panel.font"); ! // A test against the reference implementation shows that this method will // install a border if one is defined in the UIDefaults table (even though // the BasicLookAndFeel doesn't actually define a "Panel.border"). This ! // test was written after discovering that a null argument to ! // uninstallDefaults throws a NullPointerException in // LookAndFeel.uninstallBorder()... LookAndFeel.installBorder(p, "Panel.border"); } *************** public class BasicPanelUI extends PanelU *** 123,132 **** // (1) doesn't actually remove the installed colors and font installed // by installDefaults(), it isn't necessary; // (2) throws a NullPointerException in LookAndFeel.uninstallBorder() if ! // p is null. Strangely, no border is installed by the // BasicLookAndFeel - perhaps this is needed by another LAF? ! LookAndFeel.uninstallBorder(p); } ! } --- 123,132 ---- // (1) doesn't actually remove the installed colors and font installed // by installDefaults(), it isn't necessary; // (2) throws a NullPointerException in LookAndFeel.uninstallBorder() if ! // p is null. Strangely, no border is installed by the // BasicLookAndFeel - perhaps this is needed by another LAF? ! LookAndFeel.uninstallBorder(p); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicPasswordFieldUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicPasswordFieldUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicPasswordFieldUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicPasswordFieldUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicPasswordFieldUI extend *** 56,62 **** { return new PasswordView(elem); } ! public static ComponentUI createUI(JComponent c) { return new BasicPasswordFieldUI(); --- 56,62 ---- { return new PasswordView(elem); } ! public static ComponentUI createUI(JComponent c) { return new BasicPasswordFieldUI(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicPopupMenuUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicPopupMenuUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicPopupMenuUI.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicPopupMenuUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicPopupMenuUI extends Po *** 255,261 **** /** * Finds the next child element that is enabled and visible. ! * * @param children the children to search through * @param start the start index * @param end the end index --- 255,261 ---- /** * Finds the next child element that is enabled and visible. ! * * @param children the children to search through * @param start the start index * @param end the end index *************** public class BasicPopupMenuUI extends Po *** 282,288 **** /** * Finds the previous child element that is enabled and visible. ! * * @param children the children to search through * @param start the start index * @param end the end index --- 282,288 ---- /** * Finds the previous child element that is enabled and visible. ! * * @param children the children to search through * @param start the start index * @param end the end index *************** public class BasicPopupMenuUI extends Po *** 349,355 **** else { int popupIndex = len-1; ! if (len > 2 && (path[popupIndex] instanceof JPopupMenu || path[--popupIndex] instanceof JPopupMenu) && ! ((JMenu) path[popupIndex - 1]).isTopLevelMenu()) --- 349,355 ---- else { int popupIndex = len-1; ! if (len > 2 && (path[popupIndex] instanceof JPopupMenu || path[--popupIndex] instanceof JPopupMenu) && ! ((JMenu) path[popupIndex - 1]).isTopLevelMenu()) *************** public class BasicPopupMenuUI extends Po *** 773,779 **** am.put(action.getValue(Action.NAME), action); action = new NavigateAction("cancel"); am.put(action.getValue(Action.NAME), action); ! return am; } --- 773,779 ---- am.put(action.getValue(Action.NAME), action); action = new NavigateAction("cancel"); am.put(action.getValue(Action.NAME), action); ! return am; } *************** public class BasicPopupMenuUI extends Po *** 916,922 **** */ public void popupMenuWillBecomeInvisible(PopupMenuEvent event) { ! // remove listener that listens to component events fired // by the top - level window that this popup belongs to. Component invoker = popupMenu.getInvoker(); Component rootContainer = SwingUtilities.getRoot(invoker); --- 916,922 ---- */ public void popupMenuWillBecomeInvisible(PopupMenuEvent event) { ! // remove listener that listens to component events fired // by the top - level window that this popup belongs to. Component invoker = popupMenu.getInvoker(); Component rootContainer = SwingUtilities.getRoot(invoker); *************** public class BasicPopupMenuUI extends Po *** 931,960 **** */ public void popupMenuWillBecomeVisible(PopupMenuEvent event) { ! // Adds topWindowListener to top-level window to listener to // ComponentEvents fired by it. We need to cancel this popup menu // if topWindow to which this popup belongs was resized or moved. ! Component invoker = popupMenu.getInvoker(); Component rootContainer = SwingUtilities.getRoot(invoker); if (rootContainer != null) rootContainer.addComponentListener(topWindowListener); // if this popup menu is a free floating popup menu, // then by default its first element should be always selected when ! // this popup menu becomes visible. MenuSelectionManager manager = MenuSelectionManager.defaultManager(); if (manager.getSelectedPath().length == 0) { ! // Set selected path to point to the first item in the popup menu ! MenuElement[] path = new MenuElement[2]; ! path[0] = popupMenu; ! Component[] comps = popupMenu.getComponents(); ! if (comps.length != 0 && comps[0] instanceof MenuElement) ! { ! path[1] = (MenuElement) comps[0]; ! manager.setSelectedPath(path); ! } } } } --- 931,960 ---- */ public void popupMenuWillBecomeVisible(PopupMenuEvent event) { ! // Adds topWindowListener to top-level window to listener to // ComponentEvents fired by it. We need to cancel this popup menu // if topWindow to which this popup belongs was resized or moved. ! Component invoker = popupMenu.getInvoker(); Component rootContainer = SwingUtilities.getRoot(invoker); if (rootContainer != null) rootContainer.addComponentListener(topWindowListener); // if this popup menu is a free floating popup menu, // then by default its first element should be always selected when ! // this popup menu becomes visible. MenuSelectionManager manager = MenuSelectionManager.defaultManager(); if (manager.getSelectedPath().length == 0) { ! // Set selected path to point to the first item in the popup menu ! MenuElement[] path = new MenuElement[2]; ! path[0] = popupMenu; ! Component[] comps = popupMenu.getComponents(); ! if (comps.length != 0 && comps[0] instanceof MenuElement) ! { ! path[1] = (MenuElement) comps[0]; ! manager.setSelectedPath(path); ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java Sat Aug 4 10:53:49 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 71,83 **** import javax.swing.plaf.ProgressBarUI; /** ! * The Basic Look and Feel UI delegate for the * JProgressBar. */ public class BasicProgressBarUI extends ProgressBarUI { /** ! * A helper class that listens for ChangeEvents * from the progressBar's model. * * @specnote Apparently this class was intended to be protected, --- 71,83 ---- import javax.swing.plaf.ProgressBarUI; /** ! * The Basic Look and Feel UI delegate for the * JProgressBar. */ public class BasicProgressBarUI extends ProgressBarUI { /** ! * A helper class that listens for ChangeEvents * from the progressBar's model. * * @specnote Apparently this class was intended to be protected, *************** public class BasicProgressBarUI extends *** 99,111 **** } /** ! * This helper class is used to listen for * PropertyChangeEvents from the progressBar. */ private class PropertyChangeHandler implements PropertyChangeListener { /** ! * Called every time the properties of the * progressBar change. * * @param e The PropertyChangeEvent given by the progressBar. --- 99,111 ---- } /** ! * This helper class is used to listen for * PropertyChangeEvents from the progressBar. */ private class PropertyChangeHandler implements PropertyChangeListener { /** ! * Called every time the properties of the * progressBar change. * * @param e The PropertyChangeEvent given by the progressBar. *************** public class BasicProgressBarUI extends *** 163,173 **** { // Nothing to do here. } ! } /** ! * This helper class is used to listen for * the animationTimer's intervals. On every interval, * the bouncing box should move. */ --- 163,173 ---- { // Nothing to do here. } ! } /** ! * This helper class is used to listen for * the animationTimer's intervals. On every interval, * the bouncing box should move. */ *************** public class BasicProgressBarUI extends *** 215,221 **** * Holds the value of the bouncing box that is returned by {@link #getBox}. * * @since 1.5 ! */ protected Rectangle boxRect; /** The timer used to move the bouncing box. */ --- 215,221 ---- * Holds the value of the bouncing box that is returned by {@link #getBox}. * * @since 1.5 ! */ protected Rectangle boxRect; /** The timer used to move the bouncing box. */ *************** public class BasicProgressBarUI extends *** 230,236 **** // | frame0 | frame1 | frame2 | frame 3 | frame 4 | // | | frame7 | frame6 | frame 5 | | // +-----------------------------------------------+ ! /** The current animation index. */ private transient int animationIndex; --- 230,236 ---- // | frame0 | frame1 | frame2 | frame 3 | frame 4 | // | | frame7 | frame6 | frame 5 | | // +-----------------------------------------------+ ! /** The current animation index. */ private transient int animationIndex; *************** public class BasicProgressBarUI extends *** 260,266 **** /** * The size of the box returned by {@link #getBox} against the orientation * direction of the progress bar. This is package private to avoid accessor ! * method. */ transient int boxIndependent = - 1; --- 260,266 ---- /** * The size of the box returned by {@link #getBox} against the orientation * direction of the progress bar. This is package private to avoid accessor ! * method. */ transient int boxIndependent = - 1; *************** public class BasicProgressBarUI extends *** 346,352 **** /** * This method returns the size and position of the bouncing box ! * for the current animation index. It stores the values in the * given rectangle and returns it. It returns null if no box should * be drawn. * --- 346,352 ---- /** * This method returns the size and position of the bouncing box ! * for the current animation index. It stores the values in the * given rectangle and returns it. It returns null if no box should * be drawn. * *************** public class BasicProgressBarUI extends *** 487,493 **** * rectangle (the bounds without the insets) if the * progressBar is horizontal. * ! * @return The preferred size of the progressBar minus * insets if it's horizontal. */ protected Dimension getPreferredInnerHorizontal() --- 487,493 ---- * rectangle (the bounds without the insets) if the * progressBar is horizontal. * ! * @return The preferred size of the progressBar minus * insets if it's horizontal. */ protected Dimension getPreferredInnerHorizontal() *************** public class BasicProgressBarUI extends *** 512,518 **** /** * This method returns the preferred size of the inner ! * rectangle (the bounds without insets) if the * progressBar is vertical. * * @return The preferred size of the progressBar minus --- 512,518 ---- /** * This method returns the preferred size of the inner ! * rectangle (the bounds without insets) if the * progressBar is vertical. * * @return The preferred size of the progressBar minus *************** public class BasicProgressBarUI extends *** 539,545 **** } /** ! * This method returns the preferred size of the * given JComponent. If it returns null, then it * is up to the LayoutManager to give it a size. * --- 539,545 ---- } /** ! * This method returns the preferred size of the * given JComponent. If it returns null, then it * is up to the LayoutManager to give it a size. * *************** public class BasicProgressBarUI extends *** 585,591 **** /** * This method returns the point (the top left of the bounding box) ! * where the text should be painted. * * @param g The Graphics object to measure FontMetrics with. * @param progressString The string to paint. --- 585,591 ---- /** * This method returns the point (the top left of the bounding box) ! * where the text should be painted. * * @param g The Graphics object to measure FontMetrics with. * @param progressString The string to paint. *************** public class BasicProgressBarUI extends *** 602,608 **** Rectangle tr = new Rectangle(); Rectangle vr = new Rectangle(); Rectangle ir = new Rectangle(); ! if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) vr.setBounds(x, y, width, height); else --- 602,608 ---- Rectangle tr = new Rectangle(); Rectangle vr = new Rectangle(); Rectangle ir = new Rectangle(); ! if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) vr.setBounds(x, y, width, height); else *************** public class BasicProgressBarUI extends *** 616,622 **** SwingConstants.CENTER, SwingConstants.CENTER, SwingConstants.CENTER, vr, ir, tr, 0); ! if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) return new Point(tr.x, tr.y); else --- 616,622 ---- SwingConstants.CENTER, SwingConstants.CENTER, SwingConstants.CENTER, vr, ir, tr, 0); ! if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) return new Point(tr.x, tr.y); else *************** public class BasicProgressBarUI extends *** 651,657 **** } /** ! * This method is called if the painting to be done is * for a determinate progressBar. * * @param g The Graphics object to paint with. --- 651,657 ---- } /** ! * This method is called if the painting to be done is * for a determinate progressBar. * * @param g The Graphics object to paint with. *************** public class BasicProgressBarUI extends *** 672,688 **** int amountFull = getAmountFull(insets, or.width, or.height); ! if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) ! { ! g.setColor(c.getForeground()); ! g.fillRect(vr.x, vr.y, amountFull, vr.height); ! } ! else ! { ! g.setColor(c.getForeground()); ! g.fillRect(vr.x, vr.y + vr.height - amountFull, vr.width, amountFull); ! } if (progressBar.isStringPainted() && !progressBar.getString().equals("")) paintString(g, 0, 0, or.width, or.height, amountFull, insets); --- 672,688 ---- int amountFull = getAmountFull(insets, or.width, or.height); ! if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) ! { ! g.setColor(c.getForeground()); ! g.fillRect(vr.x, vr.y, amountFull, vr.height); ! } ! else ! { ! g.setColor(c.getForeground()); ! g.fillRect(vr.x, vr.y + vr.height - amountFull, vr.width, amountFull); ! } if (progressBar.isStringPainted() && !progressBar.getString().equals("")) paintString(g, 0, 0, or.width, or.height, amountFull, insets); *************** public class BasicProgressBarUI extends *** 739,751 **** String str = progressBar.getString(); int full = getAmountFull(b, width, height); Point placement = getStringPlacement(g, progressBar.getString(), ! x + b.left, y + b.top, width - b.left - b.right, height - b.top - b.bottom); Color savedColor = g.getColor(); Shape savedClip = g.getClip(); FontMetrics fm = g.getFontMetrics(progressBar.getFont()); ! if (progressBar.getOrientation() == JProgressBar.VERTICAL) { AffineTransform rotate = AffineTransform.getRotateInstance(Math.PI / 2); --- 739,751 ---- String str = progressBar.getString(); int full = getAmountFull(b, width, height); Point placement = getStringPlacement(g, progressBar.getString(), ! x + b.left, y + b.top, width - b.left - b.right, height - b.top - b.bottom); Color savedColor = g.getColor(); Shape savedClip = g.getClip(); FontMetrics fm = g.getFontMetrics(progressBar.getFont()); ! if (progressBar.getOrientation() == JProgressBar.VERTICAL) { AffineTransform rotate = AffineTransform.getRotateInstance(Math.PI / 2); *************** public class BasicProgressBarUI extends *** 756,762 **** { placement.y += fm.getAscent(); } ! g.setColor(getSelectionForeground()); g.setClip(0, 0, full + b.left, height); g.drawString(str, placement.x, placement.y); --- 756,762 ---- { placement.y += fm.getAscent(); } ! g.setColor(getSelectionForeground()); g.setClip(0, 0, full + b.left, height); g.drawString(str, placement.x, placement.y); *************** public class BasicProgressBarUI extends *** 770,776 **** /** * This method sets the current animation index. If the index is greater than * the number of frames, it resets to 0. ! * * @param newValue The new animation index. */ protected void setAnimationIndex(int newValue) --- 770,776 ---- /** * This method sets the current animation index. If the index is greater than * the number of frames, it resets to 0. ! * * @param newValue The new animation index. */ protected void setAnimationIndex(int newValue) *************** public class BasicProgressBarUI extends *** 849,858 **** if (cycleTime % repaintInterval != 0 && (cycleTime / repaintInterval) % 2 != 0) { ! int div = (cycleTime / repaintInterval) + 2; ! div /= 2; ! div *= 2; ! cycleTime = div * repaintInterval; } setAnimationIndex(0); numFrames = cycleTime / repaintInterval; --- 849,858 ---- if (cycleTime % repaintInterval != 0 && (cycleTime / repaintInterval) % 2 != 0) { ! int div = (cycleTime / repaintInterval) + 2; ! div /= 2; ! div *= 2; ! cycleTime = div * repaintInterval; } setAnimationIndex(0); numFrames = cycleTime / repaintInterval; *************** public class BasicProgressBarUI extends *** 874,880 **** } /** ! * This method registers listeners to all the * components that this UI delegate needs to listen to. */ protected void installListeners() --- 874,880 ---- } /** ! * This method registers listeners to all the * components that this UI delegate needs to listen to. */ protected void installListeners() *************** public class BasicProgressBarUI extends *** 895,901 **** } /** ! * This method unregisters listeners to all the * components that were listened to. */ protected void uninstallListeners() --- 895,901 ---- } /** ! * This method unregisters listeners to all the * components that were listened to. */ protected void uninstallListeners() *************** public class BasicProgressBarUI extends *** 930,942 **** super.installUI(c); if (c instanceof JProgressBar) { ! progressBar = (JProgressBar) c; ! animationTimer = new Timer(200, null); ! animationTimer.setRepeats(true); ! installDefaults(); ! installListeners(); } if (progressBar.isIndeterminate()) startAnimationTimer(); --- 930,942 ---- super.installUI(c); if (c instanceof JProgressBar) { ! progressBar = (JProgressBar) c; ! animationTimer = new Timer(200, null); ! animationTimer.setRepeats(true); ! installDefaults(); ! installListeners(); } if (progressBar.isIndeterminate()) startAnimationTimer(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicRadioButtonUI extends *** 72,78 **** * * @return a new instance of BasicRadioButtonUI */ ! public static ComponentUI createUI(final JComponent c) { return new BasicRadioButtonUI(); } --- 72,78 ---- * * @return a new instance of BasicRadioButtonUI */ ! public static ComponentUI createUI(final JComponent c) { return new BasicRadioButtonUI(); } *************** public class BasicRadioButtonUI extends *** 158,164 **** Icon currentIcon = getCurrentIcon(b); // Do the layout. ! String text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), b.getText(), currentIcon == null ? getDefaultIcon() : currentIcon, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), --- 158,164 ---- Icon currentIcon = getCurrentIcon(b); // Do the layout. ! String text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), b.getText(), currentIcon == null ? getDefaultIcon() : currentIcon, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), *************** public class BasicRadioButtonUI extends *** 184,196 **** paintFocus(g, textR, size); } } ! ! /** ! * Determines the icon to be displayed for the specified radio button. ! * ! * @param b the radio button ! * ! * @return the icon */ private Icon getCurrentIcon(AbstractButton b) { --- 184,196 ---- paintFocus(g, textR, size); } } ! ! /** ! * Determines the icon to be displayed for the specified radio button. ! * ! * @param b the radio button ! * ! * @return the icon */ private Icon getCurrentIcon(AbstractButton b) { *************** public class BasicRadioButtonUI extends *** 246,259 **** // one will be used for layout calculations and painting instead. // The other icon properties are ignored. AbstractButton b = (AbstractButton) c; ! Insets insets = b.getInsets(); String text = b.getText(); Icon i = b.getIcon(); if (i == null) ! i = getDefaultIcon(); ! textR.x = 0; textR.y = 0; textR.width = 0; --- 246,259 ---- // one will be used for layout calculations and painting instead. // The other icon properties are ignored. AbstractButton b = (AbstractButton) c; ! Insets insets = b.getInsets(); String text = b.getText(); Icon i = b.getIcon(); if (i == null) ! i = getDefaultIcon(); ! textR.x = 0; textR.y = 0; textR.width = 0; *************** public class BasicRadioButtonUI extends *** 269,275 **** SwingUtilities.layoutCompoundLabel(b, // for the component orientation b.getFontMetrics(b.getFont()), ! text, i, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), --- 269,275 ---- SwingUtilities.layoutCompoundLabel(b, // for the component orientation b.getFontMetrics(b.getFont()), ! text, i, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicRootPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicRootPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicRootPaneUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicRootPaneUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicRootPaneUI extends Roo *** 130,136 **** } } ! public static ComponentUI createUI(JComponent x) { return new BasicRootPaneUI(); } --- 130,136 ---- } } ! public static ComponentUI createUI(JComponent x) { return new BasicRootPaneUI(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicScrollBarUI extends Sc *** 85,91 **** */ protected class ArrowButtonListener extends MouseAdapter { ! /** * Move the thumb in the direction specified by the button's arrow. If * this button is held down, then it should keep moving the thumb. --- 85,91 ---- */ protected class ArrowButtonListener extends MouseAdapter { ! /** * Move the thumb in the direction specified by the button's arrow. If * this button is held down, then it should keep moving the thumb. *************** public class BasicScrollBarUI extends Sc *** 285,297 **** currentMouseY = e.getY(); if (scrollbar.getValueIsAdjusting()) { ! int value; ! if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ! value = valueForXPosition(currentMouseX) - offset; ! else ! value = valueForYPosition(currentMouseY) - offset; ! scrollbar.setValue(value); } } --- 285,297 ---- currentMouseY = e.getY(); if (scrollbar.getValueIsAdjusting()) { ! int value; ! if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ! value = valueForXPosition(currentMouseX) - offset; ! else ! value = valueForYPosition(currentMouseY) - offset; ! scrollbar.setValue(value); } } *************** public class BasicScrollBarUI extends Sc *** 321,358 **** int value; if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ! value = valueForXPosition(currentMouseX); else ! value = valueForYPosition(currentMouseY); if (! thumbRect.contains(e.getPoint())) { ! scrollTimer.stop(); ! scrollListener.setScrollByBlock(true); ! if (value > scrollbar.getValue()) ! { ! trackHighlight = INCREASE_HIGHLIGHT; ! scrollListener.setDirection(POSITIVE_SCROLL); ! } ! else ! { ! trackHighlight = DECREASE_HIGHLIGHT; ! scrollListener.setDirection(NEGATIVE_SCROLL); ! } scrollTimer.setDelay(100); ! scrollTimer.start(); } else { ! // We'd like to keep track of where the cursor ! // is inside the thumb. ! // This works because the scrollbar's value represents ! // "lower" edge of the thumb. The value at which ! // the cursor is at must be greater or equal ! // to that value. scrollListener.setScrollByBlock(false); ! scrollbar.setValueIsAdjusting(true); offset = value - scrollbar.getValue(); } scrollbar.repaint(); --- 321,358 ---- int value; if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ! value = valueForXPosition(currentMouseX); else ! value = valueForYPosition(currentMouseY); if (! thumbRect.contains(e.getPoint())) { ! scrollTimer.stop(); ! scrollListener.setScrollByBlock(true); ! if (value > scrollbar.getValue()) ! { ! trackHighlight = INCREASE_HIGHLIGHT; ! scrollListener.setDirection(POSITIVE_SCROLL); ! } ! else ! { ! trackHighlight = DECREASE_HIGHLIGHT; ! scrollListener.setDirection(NEGATIVE_SCROLL); ! } scrollTimer.setDelay(100); ! scrollTimer.start(); } else { ! // We'd like to keep track of where the cursor ! // is inside the thumb. ! // This works because the scrollbar's value represents ! // "lower" edge of the thumb. The value at which ! // the cursor is at must be greater or equal ! // to that value. scrollListener.setScrollByBlock(false); ! scrollbar.setValueIsAdjusting(true); offset = value - scrollbar.getValue(); } scrollbar.repaint(); *************** public class BasicScrollBarUI extends Sc *** 394,410 **** { int value; if (scrollbar.getOrientation() == HORIZONTAL) ! value = valueForXPosition(currentMouseX); else ! value = valueForYPosition(currentMouseY); if (thumbRect.contains(currentMouseX, currentMouseY)) return false; ! if (direction == POSITIVE_SCROLL) ! return value > scrollbar.getValue(); else ! return value < scrollbar.getValue(); } } --- 394,410 ---- { int value; if (scrollbar.getOrientation() == HORIZONTAL) ! value = valueForXPosition(currentMouseX); else ! value = valueForYPosition(currentMouseY); if (thumbRect.contains(currentMouseX, currentMouseY)) return false; ! if (direction == POSITIVE_SCROLL) ! return value > scrollbar.getValue(); else ! return value < scrollbar.getValue(); } } *************** public class BasicScrollBarUI extends Sc *** 488,494 **** /** The scrollbar this UI is acting for. */ protected JScrollBar scrollbar; ! /** True if the mouse is over the thumb. */ boolean thumbRollover; --- 488,494 ---- /** The scrollbar this UI is acting for. */ protected JScrollBar scrollbar; ! /** True if the mouse is over the thumb. */ boolean thumbRollover; *************** public class BasicScrollBarUI extends Sc *** 767,773 **** } /** ! * Installs the input map from the look and feel defaults, and a * corresponding action map. Note the the keyboard bindings will only * work when the {@link JScrollBar} component has the focus, which is rare. */ --- 767,773 ---- } /** ! * Installs the input map from the look and feel defaults, and a * corresponding action map. Note the the keyboard bindings will only * work when the {@link JScrollBar} component has the focus, which is rare. */ *************** public class BasicScrollBarUI extends Sc *** 775,781 **** { InputMap keyMap = getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); ! SwingUtilities.replaceUIInputMap(scrollbar, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, keyMap); ActionMap map = getActionMap(); SwingUtilities.replaceUIActionMap(scrollbar, map); --- 775,781 ---- { InputMap keyMap = getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); ! SwingUtilities.replaceUIInputMap(scrollbar, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, keyMap); ActionMap map = getActionMap(); SwingUtilities.replaceUIActionMap(scrollbar, map); *************** public class BasicScrollBarUI extends Sc *** 788,812 **** protected void uninstallKeyboardActions() { SwingUtilities.replaceUIActionMap(scrollbar, null); ! SwingUtilities.replaceUIInputMap(scrollbar, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null); } ! InputMap getInputMap(int condition) { if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) return (InputMap) UIManager.get("ScrollBar.focusInputMap"); return null; } ! /** ! * Returns the action map for the {@link JScrollBar}. All scroll bars ! * share a single action map which is created the first time this method is * called, then stored in the UIDefaults table for subsequent access. ! * * @return The shared action map. */ ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("ScrollBar.actionMap"); --- 788,812 ---- protected void uninstallKeyboardActions() { SwingUtilities.replaceUIActionMap(scrollbar, null); ! SwingUtilities.replaceUIInputMap(scrollbar, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null); } ! InputMap getInputMap(int condition) { if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) return (InputMap) UIManager.get("ScrollBar.focusInputMap"); return null; } ! /** ! * Returns the action map for the {@link JScrollBar}. All scroll bars ! * share a single action map which is created the first time this method is * called, then stored in the UIDefaults table for subsequent access. ! * * @return The shared action map. */ ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("ScrollBar.actionMap"); *************** public class BasicScrollBarUI extends Sc *** 821,843 **** /** * Creates the action map shared by all {@link JSlider} instances. ! * This method is called once by {@link #getActionMap()} when it ! * finds no action map in the UIDefaults table...after the map is ! * created, it gets added to the defaults table so that subsequent ! * calls to {@link #getActionMap()} will return the same shared * instance. ! * * @return The action map. */ ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("positiveUnitIncrement", new AbstractAction("positiveUnitIncrement") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(1); sb.setValue(sb.getValue() + delta); --- 821,843 ---- /** * Creates the action map shared by all {@link JSlider} instances. ! * This method is called once by {@link #getActionMap()} when it ! * finds no action map in the UIDefaults table...after the map is ! * created, it gets added to the defaults table so that subsequent ! * calls to {@link #getActionMap()} will return the same shared * instance. ! * * @return The action map. */ ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("positiveUnitIncrement", new AbstractAction("positiveUnitIncrement") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollBarUI extends Sc *** 845,856 **** } } ); ! map.put("positiveBlockIncrement", new AbstractAction("positiveBlockIncrement") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(1); sb.setValue(sb.getValue() + delta); --- 845,856 ---- } } ); ! map.put("positiveBlockIncrement", new AbstractAction("positiveBlockIncrement") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollBarUI extends Sc *** 858,869 **** } } ); ! map.put("negativeUnitIncrement", new AbstractAction("negativeUnitIncrement") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(-1); sb.setValue(sb.getValue() + delta); --- 858,869 ---- } } ); ! map.put("negativeUnitIncrement", new AbstractAction("negativeUnitIncrement") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(-1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollBarUI extends Sc *** 871,882 **** } } ); ! map.put("negativeBlockIncrement", new AbstractAction("negativeBlockIncrement") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(-1); sb.setValue(sb.getValue() + delta); --- 871,882 ---- } } ); ! map.put("negativeBlockIncrement", new AbstractAction("negativeBlockIncrement") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(-1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollBarUI extends Sc *** 884,907 **** } } ); ! map.put("minScroll", new AbstractAction("minScroll") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { sb.setValue(sb.getMinimum()); } } } ); ! map.put("maxScroll", new AbstractAction("maxScroll") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { sb.setValue(sb.getMaximum()); } --- 884,907 ---- } } ); ! map.put("minScroll", new AbstractAction("minScroll") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { sb.setValue(sb.getMinimum()); } } } ); ! map.put("maxScroll", new AbstractAction("maxScroll") { public void actionPerformed(ActionEvent event) { JScrollBar sb = (JScrollBar) event.getSource(); ! if (sb.isVisible()) { sb.setValue(sb.getMaximum()); } *************** public class BasicScrollBarUI extends Sc *** 910,916 **** ); return map; } ! /** * This method installs any listeners for the scrollbar. This method also * installs listeners for things such as the JButtons and the timer. --- 910,916 ---- ); return map; } ! /** * This method installs any listeners for the scrollbar. This method also * installs listeners for things such as the JButtons and the timer. *************** public class BasicScrollBarUI extends Sc *** 973,982 **** { if (scrollbarContainer instanceof JScrollBar) { ! if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ! layoutHScrollbar((JScrollBar) scrollbarContainer); ! else ! layoutVScrollbar((JScrollBar) scrollbarContainer); } } --- 973,982 ---- { if (scrollbarContainer instanceof JScrollBar) { ! if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ! layoutHScrollbar((JScrollBar) scrollbarContainer); ! else ! layoutVScrollbar((JScrollBar) scrollbarContainer); } } *************** public class BasicScrollBarUI extends Sc *** 992,998 **** Dimension incrDims = incrButton.getPreferredSize(); Dimension decrDims = decrButton.getPreferredSize(); ! // calculate and update the track bounds SwingUtilities.calculateInnerArea(scrollbar, trackRect); trackRect.width -= incrDims.getWidth(); --- 992,998 ---- Dimension incrDims = incrButton.getPreferredSize(); Dimension decrDims = decrButton.getPreferredSize(); ! // calculate and update the track bounds SwingUtilities.calculateInnerArea(scrollbar, trackRect); trackRect.width -= incrDims.getWidth(); *************** public class BasicScrollBarUI extends Sc *** 1000,1006 **** trackRect.x += decrDims.getWidth(); updateThumbRect(); ! decrButton.setBounds(vr.x, vr.y, decrDims.width, trackRect.height); incrButton.setBounds(trackRect.x + trackRect.width, vr.y, incrDims.width, trackRect.height); --- 1000,1006 ---- trackRect.x += decrDims.getWidth(); updateThumbRect(); ! decrButton.setBounds(vr.x, vr.y, decrDims.width, trackRect.height); incrButton.setBounds(trackRect.x + trackRect.width, vr.y, incrDims.width, trackRect.height); *************** public class BasicScrollBarUI extends Sc *** 1018,1030 **** Dimension incrDims = incrButton.getPreferredSize(); Dimension decrDims = decrButton.getPreferredSize(); ! // Update rectangles SwingUtilities.calculateInnerArea(scrollbar, trackRect); trackRect.height -= incrDims.getHeight(); trackRect.height -= decrDims.getHeight(); trackRect.y += decrDims.getHeight(); ! updateThumbRect(); decrButton.setBounds(vr.x, vr.y, trackRect.width, decrDims.height); --- 1018,1030 ---- Dimension incrDims = incrButton.getPreferredSize(); Dimension decrDims = decrButton.getPreferredSize(); ! // Update rectangles SwingUtilities.calculateInnerArea(scrollbar, trackRect); trackRect.height -= incrDims.getHeight(); trackRect.height -= decrDims.getHeight(); trackRect.y += decrDims.getHeight(); ! updateThumbRect(); decrButton.setBounds(vr.x, vr.y, trackRect.width, decrDims.height); *************** public class BasicScrollBarUI extends Sc *** 1076,1089 **** thumbRect.height = Math.max(extent * trackRect.height / (max - min), getMinimumThumbSize().height); int availableHeight = trackRect.height - thumbRect.height; ! thumbRect.y = trackRect.y + (value - min) * availableHeight / (max - min - extent); thumbRect.width = trackRect.width; } } } ! /** * This method returns the minimum size required for the layout. * --- 1076,1089 ---- thumbRect.height = Math.max(extent * trackRect.height / (max - min), getMinimumThumbSize().height); int availableHeight = trackRect.height - thumbRect.height; ! thumbRect.y = trackRect.y + (value - min) * availableHeight / (max - min - extent); thumbRect.width = trackRect.width; } } } ! /** * This method returns the minimum size required for the layout. * *************** public class BasicScrollBarUI extends Sc *** 1367,1373 **** decrButton.removeMouseListener(buttonListener); if (incrButton != null) incrButton.removeMouseListener(buttonListener); ! propertyChangeListener = null; modelListener = null; buttonListener = null; --- 1367,1373 ---- decrButton.removeMouseListener(buttonListener); if (incrButton != null) incrButton.removeMouseListener(buttonListener); ! propertyChangeListener = null; modelListener = null; buttonListener = null; *************** public class BasicScrollBarUI extends Sc *** 1469,1507 **** value = min; return value; } ! /** * Returns true if the mouse is over the thumb. ! * * @return true if the mouse is over the thumb. ! * * @since 1.5 */ public boolean isThumbRollover() { ! return thumbRollover; } ! /** * Set thumbRollover to active. This indicates * whether or not the mouse is over the thumb. ! * * @param active - true if the mouse is over the thumb. ! * * @since 1.5 */ protected void setThumbRollover(boolean active) { thumbRollover = active; } ! /** ! * Indicates whether the user can position the thumb with * a mouse click (i.e. middle button). ! * * @return true if the user can position the thumb with a mouse * click. ! * * @since 1.5 */ public boolean getSupportsAbsolutePositioning() --- 1469,1507 ---- value = min; return value; } ! /** * Returns true if the mouse is over the thumb. ! * * @return true if the mouse is over the thumb. ! * * @since 1.5 */ public boolean isThumbRollover() { ! return thumbRollover; } ! /** * Set thumbRollover to active. This indicates * whether or not the mouse is over the thumb. ! * * @param active - true if the mouse is over the thumb. ! * * @since 1.5 */ protected void setThumbRollover(boolean active) { thumbRollover = active; } ! /** ! * Indicates whether the user can position the thumb with * a mouse click (i.e. middle button). ! * * @return true if the user can position the thumb with a mouse * click. ! * * @since 1.5 */ public boolean getSupportsAbsolutePositioning() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicScrollPaneUI extends S *** 127,133 **** viewPosition.y = vsb.getValue(); vp.setViewPosition(viewPosition); } ! } /** --- 127,133 ---- viewPosition.y = vsb.getValue(); vp.setViewPosition(viewPosition); } ! } /** *************** public class BasicScrollPaneUI extends S *** 144,150 **** * changes. When the extents size has changed, this method calls * {@link BasicScrollPaneUI#syncScrollPaneWithViewport()} to adjust the * scrollbars extents as well. ! * * @param event the change event */ public void stateChanged(ChangeEvent event) --- 144,150 ---- * changes. When the extents size has changed, this method calls * {@link BasicScrollPaneUI#syncScrollPaneWithViewport()} to adjust the * scrollbars extents as well. ! * * @param event the change event */ public void stateChanged(ChangeEvent event) *************** public class BasicScrollPaneUI extends S *** 221,227 **** /** * Scroll with the mouse wheel. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public void mouseWheelMoved(MouseWheelEvent e) --- 221,227 ---- /** * Scroll with the mouse wheel. ! * * @author Audrius Meskauskas (audriusa@Bioinformatics.org) */ public void mouseWheelMoved(MouseWheelEvent e) *************** public class BasicScrollPaneUI extends S *** 245,255 **** } } } ! /** * Adds/removes the mouse wheel listener when the component is added/removed * to/from the scroll pane view port. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ class ViewportContainerListener implements ContainerListener --- 245,255 ---- } } } ! /** * Adds/removes the mouse wheel listener when the component is added/removed * to/from the scroll pane view port. ! * * @author Audrius Meskauskas (audriusa@bioinformatics.org) */ class ViewportContainerListener implements ContainerListener *************** public class BasicScrollPaneUI extends S *** 261,267 **** { e.getChild().addMouseWheelListener(mouseWheelListener); } ! /** * Remove the mouse wheel listener. */ --- 261,267 ---- { e.getChild().addMouseWheelListener(mouseWheelListener); } ! /** * Remove the mouse wheel listener. */ *************** public class BasicScrollPaneUI extends S *** 270,287 **** e.getChild().removeMouseWheelListener(mouseWheelListener); } } ! /** * The number of pixels by that we should scroll the content that does * not implement Scrollable. */ static int SCROLL_NON_SCROLLABLES = 10; ! /** * The number of rows to scroll per mouse wheel click. From impression, * Sun seems using the value 3. */ ! static int ROWS_PER_WHEEL_CLICK = 3; /** The Scrollpane for which the UI is provided by this class. */ protected JScrollPane scrollpane; --- 270,287 ---- e.getChild().removeMouseWheelListener(mouseWheelListener); } } ! /** * The number of pixels by that we should scroll the content that does * not implement Scrollable. */ static int SCROLL_NON_SCROLLABLES = 10; ! /** * The number of rows to scroll per mouse wheel click. From impression, * Sun seems using the value 3. */ ! static int ROWS_PER_WHEEL_CLICK = 3; /** The Scrollpane for which the UI is provided by this class. */ protected JScrollPane scrollpane; *************** public class BasicScrollPaneUI extends S *** 310,323 **** * The mousewheel listener for the scrollpane. */ MouseWheelListener mouseWheelListener; ! /** * The listener to add and remove the mouse wheel listener to/from * the component container. */ ContainerListener containerListener; ! public static ComponentUI createUI(final JComponent c) { return new BasicScrollPaneUI(); } --- 310,323 ---- * The mousewheel listener for the scrollpane. */ MouseWheelListener mouseWheelListener; ! /** * The listener to add and remove the mouse wheel listener to/from * the component container. */ ContainerListener containerListener; ! public static ComponentUI createUI(final JComponent c) { return new BasicScrollPaneUI(); } *************** public class BasicScrollPaneUI extends S *** 348,355 **** if (vpBorder != null && vpBorder instanceof UIResource) p.setViewportBorder(null); } ! ! public void installUI(final JComponent c) { super.installUI(c); installDefaults((JScrollPane) c); --- 348,355 ---- if (vpBorder != null && vpBorder instanceof UIResource) p.setViewportBorder(null); } ! ! public void installUI(final JComponent c) { super.installUI(c); installDefaults((JScrollPane) c); *************** public class BasicScrollPaneUI extends S *** 371,401 **** if (hsbChangeListener == null) hsbChangeListener = createHSBChangeListener(); sp.getHorizontalScrollBar().getModel().addChangeListener(hsbChangeListener); ! if (vsbChangeListener == null) vsbChangeListener = createVSBChangeListener(); sp.getVerticalScrollBar().getModel().addChangeListener(vsbChangeListener); if (viewportChangeListener == null) viewportChangeListener = createViewportChangeListener(); ! if (mouseWheelListener == null) mouseWheelListener = createMouseWheelListener(); ! if (containerListener == null) containerListener = new ViewportContainerListener(); ! JViewport v = sp.getViewport(); v.addChangeListener(viewportChangeListener); v.addContainerListener(containerListener); ! // Add mouse wheel listeners to the componets that are probably already // in the view port. for (int i = 0; i < v.getComponentCount(); i++) v.getComponent(i).addMouseWheelListener(mouseWheelListener); } ! InputMap getInputMap(int condition) { if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) return (InputMap) UIManager.get("ScrollPane.ancestorInputMap"); --- 371,401 ---- if (hsbChangeListener == null) hsbChangeListener = createHSBChangeListener(); sp.getHorizontalScrollBar().getModel().addChangeListener(hsbChangeListener); ! if (vsbChangeListener == null) vsbChangeListener = createVSBChangeListener(); sp.getVerticalScrollBar().getModel().addChangeListener(vsbChangeListener); if (viewportChangeListener == null) viewportChangeListener = createViewportChangeListener(); ! if (mouseWheelListener == null) mouseWheelListener = createMouseWheelListener(); ! if (containerListener == null) containerListener = new ViewportContainerListener(); ! JViewport v = sp.getViewport(); v.addChangeListener(viewportChangeListener); v.addContainerListener(containerListener); ! // Add mouse wheel listeners to the componets that are probably already // in the view port. for (int i = 0; i < v.getComponentCount(); i++) v.getComponent(i).addMouseWheelListener(mouseWheelListener); } ! InputMap getInputMap(int condition) { if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) return (InputMap) UIManager.get("ScrollPane.ancestorInputMap"); *************** public class BasicScrollPaneUI extends S *** 403,415 **** } /** ! * Returns the action map for the {@link JScrollPane}. All scroll panes ! * share a single action map which is created the first time this method is * called, then stored in the UIDefaults table for subsequent access. ! * * @return The shared action map. */ ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("ScrollPane.actionMap"); --- 403,415 ---- } /** ! * Returns the action map for the {@link JScrollPane}. All scroll panes ! * share a single action map which is created the first time this method is * called, then stored in the UIDefaults table for subsequent access. ! * * @return The shared action map. */ ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("ScrollPane.actionMap"); *************** public class BasicScrollPaneUI extends S *** 424,447 **** /** * Creates the action map shared by all {@link JSlider} instances. ! * This method is called once by {@link #getActionMap()} when it ! * finds no action map in the UIDefaults table...after the map is ! * created, it gets added to the defaults table so that subsequent ! * calls to {@link #getActionMap()} will return the same shared * instance. ! * * @return The action map. */ ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("scrollLeft", new AbstractAction("scrollLeft") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getHorizontalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(-1); sb.setValue(sb.getValue() + delta); --- 424,447 ---- /** * Creates the action map shared by all {@link JSlider} instances. ! * This method is called once by {@link #getActionMap()} when it ! * finds no action map in the UIDefaults table...after the map is ! * created, it gets added to the defaults table so that subsequent ! * calls to {@link #getActionMap()} will return the same shared * instance. ! * * @return The action map. */ ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("scrollLeft", new AbstractAction("scrollLeft") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getHorizontalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(-1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollPaneUI extends S *** 449,479 **** } } ); ! map.put("scrollEnd", new AbstractAction("scrollEnd") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb1 = sp.getHorizontalScrollBar(); ! if (sb1.isVisible()) { sb1.setValue(sb1.getMaximum()); } JScrollBar sb2 = sp.getVerticalScrollBar(); ! if (sb2.isVisible()) { sb2.setValue(sb2.getMaximum()); } } } ); ! map.put("unitScrollUp", new AbstractAction("unitScrollUp") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getVerticalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(-1); sb.setValue(sb.getValue() + delta); --- 449,479 ---- } } ); ! map.put("scrollEnd", new AbstractAction("scrollEnd") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb1 = sp.getHorizontalScrollBar(); ! if (sb1.isVisible()) { sb1.setValue(sb1.getMaximum()); } JScrollBar sb2 = sp.getVerticalScrollBar(); ! if (sb2.isVisible()) { sb2.setValue(sb2.getMaximum()); } } } ); ! map.put("unitScrollUp", new AbstractAction("unitScrollUp") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getVerticalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(-1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollPaneUI extends S *** 481,493 **** } } ); ! map.put("unitScrollLeft", new AbstractAction("unitScrollLeft") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getHorizontalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(-1); sb.setValue(sb.getValue() + delta); --- 481,493 ---- } } ); ! map.put("unitScrollLeft", new AbstractAction("unitScrollLeft") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getHorizontalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(-1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollPaneUI extends S *** 495,507 **** } } ); ! map.put("scrollUp", new AbstractAction("scrollUp") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getVerticalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(-1); sb.setValue(sb.getValue() + delta); --- 495,507 ---- } } ); ! map.put("scrollUp", new AbstractAction("scrollUp") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getVerticalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(-1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollPaneUI extends S *** 509,521 **** } } ); ! map.put("scrollRight", new AbstractAction("scrollRight") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getHorizontalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(1); sb.setValue(sb.getValue() + delta); --- 509,521 ---- } } ); ! map.put("scrollRight", new AbstractAction("scrollRight") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getHorizontalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollPaneUI extends S *** 523,553 **** } } ); ! map.put("scrollHome", new AbstractAction("scrollHome") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb1 = sp.getHorizontalScrollBar(); ! if (sb1.isVisible()) { sb1.setValue(sb1.getMinimum()); } JScrollBar sb2 = sp.getVerticalScrollBar(); ! if (sb2.isVisible()) { sb2.setValue(sb2.getMinimum()); } } } ); ! map.put("scrollDown", new AbstractAction("scrollDown") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getVerticalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(1); sb.setValue(sb.getValue() + delta); --- 523,553 ---- } } ); ! map.put("scrollHome", new AbstractAction("scrollHome") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb1 = sp.getHorizontalScrollBar(); ! if (sb1.isVisible()) { sb1.setValue(sb1.getMinimum()); } JScrollBar sb2 = sp.getVerticalScrollBar(); ! if (sb2.isVisible()) { sb2.setValue(sb2.getMinimum()); } } } ); ! map.put("scrollDown", new AbstractAction("scrollDown") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getVerticalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getBlockIncrement(1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollPaneUI extends S *** 555,567 **** } } ); ! map.put("unitScrollDown", new AbstractAction("unitScrollDown") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getVerticalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(1); sb.setValue(sb.getValue() + delta); --- 555,567 ---- } } ); ! map.put("unitScrollDown", new AbstractAction("unitScrollDown") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getVerticalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollPaneUI extends S *** 569,581 **** } } ); ! map.put("unitScrollRight", new AbstractAction("unitScrollRight") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getHorizontalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(1); sb.setValue(sb.getValue() + delta); --- 569,581 ---- } } ); ! map.put("unitScrollRight", new AbstractAction("unitScrollRight") { public void actionPerformed(ActionEvent event) { JScrollPane sp = (JScrollPane) event.getSource(); JScrollBar sb = sp.getHorizontalScrollBar(); ! if (sb.isVisible()) { int delta = sb.getUnitIncrement(1); sb.setValue(sb.getValue() + delta); *************** public class BasicScrollPaneUI extends S *** 585,591 **** ); return map; } ! /** * Installs additional keyboard actions on the scrollpane. This is a hook * method provided to subclasses in order to install their own keyboard --- 585,591 ---- ); return map; } ! /** * Installs additional keyboard actions on the scrollpane. This is a hook * method provided to subclasses in order to install their own keyboard *************** public class BasicScrollPaneUI extends S *** 597,603 **** { InputMap keyMap = getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); ! SwingUtilities.replaceUIInputMap(sp, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, keyMap); ActionMap map = getActionMap(); SwingUtilities.replaceUIActionMap(sp, map); --- 597,603 ---- { InputMap keyMap = getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); ! SwingUtilities.replaceUIInputMap(sp, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, keyMap); ActionMap map = getActionMap(); SwingUtilities.replaceUIActionMap(sp, map); *************** public class BasicScrollPaneUI extends S *** 613,622 **** protected void uninstallKeyboardActions(JScrollPane sp) { SwingUtilities.replaceUIActionMap(sp, null); ! SwingUtilities.replaceUIInputMap(sp, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null); } ! /** * Creates and returns the change listener for the horizontal scrollbar. * --- 613,622 ---- protected void uninstallKeyboardActions(JScrollPane sp) { SwingUtilities.replaceUIActionMap(sp, null); ! SwingUtilities.replaceUIInputMap(sp, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null); } ! /** * Creates and returns the change listener for the horizontal scrollbar. * *************** public class BasicScrollPaneUI extends S *** 661,667 **** * Creates and returns the mouse wheel listener for the scrollpane. * * @return the mouse wheel listener for the scrollpane ! * * @since 1.4 */ protected MouseWheelListener createMouseWheelListener() --- 661,667 ---- * Creates and returns the mouse wheel listener for the scrollpane. * * @return the mouse wheel listener for the scrollpane ! * * @since 1.4 */ protected MouseWheelListener createMouseWheelListener() *************** public class BasicScrollPaneUI extends S *** 669,675 **** return new MouseWheelHandler(); } ! public void uninstallUI(final JComponent c) { uninstallDefaults((JScrollPane) c); uninstallListeners(c); --- 669,675 ---- return new MouseWheelHandler(); } ! public void uninstallUI(final JComponent c) { uninstallDefaults((JScrollPane) c); uninstallListeners(c); *************** public class BasicScrollPaneUI extends S *** 680,686 **** * Uninstalls all the listeners that have been installed in * {@link #installListeners(JScrollPane)}. * ! * @param c the scrollpane from which to uninstall the listeners */ protected void uninstallListeners(JComponent c) { --- 680,686 ---- * Uninstalls all the listeners that have been installed in * {@link #installListeners(JScrollPane)}. * ! * @param c the scrollpane from which to uninstall the listeners */ protected void uninstallListeners(JComponent c) { *************** public class BasicScrollPaneUI extends S *** 690,706 **** .removeChangeListener(hsbChangeListener); sp.getVerticalScrollBar().getModel() .removeChangeListener(vsbChangeListener); ! JViewport v = sp.getViewport(); v.removeChangeListener(viewportChangeListener); v.removeContainerListener(containerListener); ! for (int i = 0; i < v.getComponentCount(); i++) v.getComponent(i).removeMouseWheelListener(mouseWheelListener); } ! public Dimension getMinimumSize(JComponent c) { JScrollPane p = (JScrollPane) c; ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout(); --- 690,706 ---- .removeChangeListener(hsbChangeListener); sp.getVerticalScrollBar().getModel() .removeChangeListener(vsbChangeListener); ! JViewport v = sp.getViewport(); v.removeChangeListener(viewportChangeListener); v.removeContainerListener(containerListener); ! for (int i = 0; i < v.getComponentCount(); i++) v.getComponent(i).removeMouseWheelListener(mouseWheelListener); } ! public Dimension getMinimumSize(JComponent c) { JScrollPane p = (JScrollPane) c; ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout(); *************** public class BasicScrollPaneUI extends S *** 821,835 **** syncScrollPaneWithViewport(); } } - - - - - - - - - - - - --- 821,823 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSeparatorUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSeparatorUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSeparatorUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSeparatorUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicSeparatorUI extends Se *** 86,95 **** if (c instanceof JSeparator) { ! JSeparator s = (JSeparator) c; ! installDefaults(s); ! installListeners(s); } } --- 86,95 ---- if (c instanceof JSeparator) { ! JSeparator s = (JSeparator) c; ! installDefaults(s); ! installListeners(s); } } *************** public class BasicSeparatorUI extends Se *** 104,113 **** { if (c instanceof JSeparator) { ! JSeparator s = (JSeparator) c; ! uninstallListeners(s); ! uninstallDefaults(s); } } --- 104,113 ---- { if (c instanceof JSeparator) { ! JSeparator s = (JSeparator) c; ! uninstallListeners(s); ! uninstallDefaults(s); } } *************** public class BasicSeparatorUI extends Se *** 138,144 **** /** * This method installs any listeners that need ! * to be attached to the JSeparator or any of its * components. * * @param s The JSeparator that is being installed. --- 138,144 ---- /** * This method installs any listeners that need ! * to be attached to the JSeparator or any of its * components. * * @param s The JSeparator that is being installed. *************** public class BasicSeparatorUI extends Se *** 156,170 **** */ protected void uninstallListeners(JSeparator s) { ! // Separators don't receive events. } /** ! * The separator is made of two lines. The top line will be ! * the shadow color (or left line if it's vertical). The bottom ! * or right line will be the highlight color. The two lines will ! * be centered inside the bounds box. If the separator is horizontal, ! * then it will be vertically centered, or if it's vertical, it will * be horizontally centered. * * @param g The Graphics object to paint with --- 156,170 ---- */ protected void uninstallListeners(JSeparator s) { ! // Separators don't receive events. } /** ! * The separator is made of two lines. The top line will be ! * the shadow color (or left line if it's vertical). The bottom ! * or right line will be the highlight color. The two lines will ! * be centered inside the bounds box. If the separator is horizontal, ! * then it will be vertically centered, or if it's vertical, it will * be horizontally centered. * * @param g The Graphics object to paint with *************** public class BasicSeparatorUI extends Se *** 175,189 **** Rectangle r = new Rectangle(); SwingUtilities.calculateInnerArea(c, r); Color saved = g.getColor(); ! JSeparator s; if (c instanceof JSeparator) s = (JSeparator) c; else return; ! if (s.getOrientation() == JSeparator.HORIZONTAL) ! { int midAB = r.height / 2; g.setColor(shadow); g.drawLine(r.x, r.y + midAB - 1, r.x + r.width, r.y + midAB - 1); --- 175,189 ---- Rectangle r = new Rectangle(); SwingUtilities.calculateInnerArea(c, r); Color saved = g.getColor(); ! JSeparator s; if (c instanceof JSeparator) s = (JSeparator) c; else return; ! if (s.getOrientation() == JSeparator.HORIZONTAL) ! { int midAB = r.height / 2; g.setColor(shadow); g.drawLine(r.x, r.y + midAB - 1, r.x + r.width, r.y + midAB - 1); *************** public class BasicSeparatorUI extends Se *** 204,210 **** } /** ! * This method returns the preferred size of the * JComponent. * * @param c The JComponent to measure. --- 204,210 ---- } /** ! * This method returns the preferred size of the * JComponent. * * @param c The JComponent to measure. *************** public class BasicSeparatorUI extends Se *** 216,223 **** Dimension pref = new Dimension(2, 0); if (c instanceof JSeparator) { ! JSeparator s = (JSeparator) c; ! if (s.getOrientation() == JSeparator.HORIZONTAL) pref = new Dimension(0, 2); } return pref; --- 216,223 ---- Dimension pref = new Dimension(2, 0); if (c instanceof JSeparator) { ! JSeparator s = (JSeparator) c; ! if (s.getOrientation() == JSeparator.HORIZONTAL) pref = new Dimension(0, 2); } return pref; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSliderUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSliderUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSliderUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSliderUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.SliderUI; *** 81,92 **** * BasicSliderUI.java This is the UI delegate in the Basic look and feel that * paints JSliders. *

                                            ! * *

                                            * The UI delegate keeps track of 6 rectangles that place the various parts of * the JSlider inside the component. *

                                            ! * *

                                            * The rectangles are organized as follows: *

                                            --- 81,92 ---- * BasicSliderUI.java This is the UI delegate in the Basic look and feel that * paints JSliders. *

                                            ! * *

                                            * The UI delegate keeps track of 6 rectangles that place the various parts of * the JSlider inside the component. *

                                            ! * *

                                            * The rectangles are organized as follows: *

                                            *************** import javax.swing.plaf.SliderUI; *** 110,136 **** * | | | | | | * | | | | | *
                                            ! * *

                                            * The space between the contentRect and the focusRect are the FocusInsets. *

                                            ! * *

                                            * The space between the focusRect and the component bounds is the insetCache * which are the component's insets. *

                                            ! * *

                                            * The top of the thumb is the top of the contentRect. The trackRect has to be * as tall as the thumb. *

                                            ! * *

                                            * The trackRect and tickRect do not start from the left edge of the * focusRect. They are trackBuffer away from each side of the focusRect. This * is so that the thumb has room to move. *

                                            ! * *

                                            * The labelRect does start right against the contentRect's left and right * edges and it gets all remaining space. --- 110,136 ---- * | | | | | | * | | | | | *

                                            ! * *

                                            * The space between the contentRect and the focusRect are the FocusInsets. *

                                            ! * *

                                            * The space between the focusRect and the component bounds is the insetCache * which are the component's insets. *

                                            ! * *

                                            * The top of the thumb is the top of the contentRect. The trackRect has to be * as tall as the thumb. *

                                            ! * *

                                            * The trackRect and tickRect do not start from the left edge of the * focusRect. They are trackBuffer away from each side of the focusRect. This * is so that the thumb has room to move. *

                                            ! * *

                                            * The labelRect does start right against the contentRect's left and right * edges and it gets all remaining space. *************** public class BasicSliderUI extends Slide *** 420,427 **** if (slider.getSnapToTicks()) value = findClosestTick(value); ! // If the thumb is hit, then we don't need to set the timers to ! // move it. if (! thumbRect.contains(e.getPoint())) { // The mouse has hit some other part of the slider. --- 420,427 ---- if (slider.getSnapToTicks()) value = findClosestTick(value); ! // If the thumb is hit, then we don't need to set the timers to ! // move it. if (! thumbRect.contains(e.getPoint())) { // The mouse has hit some other part of the slider. *************** public class BasicSliderUI extends Slide *** 605,620 **** /** * Returns true if the user is dragging the slider. ! * * @return true if the slider is being dragged. ! * * @since 1.5 */ protected boolean isDragging() { return dragging; } ! /** * Gets the shadow color to be used for this slider. The shadow color is the * color used for drawing the top and left edges of the track. --- 605,620 ---- /** * Returns true if the user is dragging the slider. ! * * @return true if the slider is being dragged. ! * * @since 1.5 */ protected boolean isDragging() { return dragging; } ! /** * Gets the shadow color to be used for this slider. The shadow color is the * color used for drawing the top and left edges of the track. *************** public class BasicSliderUI extends Slide *** 1099,1113 **** } /** ! * Updates the contentRect field to an area inside the ! * focusRect. This method does not need to be called if the * orientation changes. */ protected void calculateContentRect() { contentRect.x = focusRect.x + focusInsets.left; contentRect.y = focusRect.y + focusInsets.top; ! contentRect.width = focusRect.width - focusInsets.left - focusInsets.right; contentRect.height = focusRect.height - focusInsets.top - focusInsets.bottom; --- 1099,1113 ---- } /** ! * Updates the contentRect field to an area inside the ! * focusRect. This method does not need to be called if the * orientation changes. */ protected void calculateContentRect() { contentRect.x = focusRect.x + focusInsets.left; contentRect.y = focusRect.y + focusInsets.top; ! contentRect.width = focusRect.width - focusInsets.left - focusInsets.right; contentRect.height = focusRect.height - focusInsets.top - focusInsets.bottom; *************** public class BasicSliderUI extends Slide *** 1134,1142 **** } /** ! * Calculates the gap size between the edge of the contentRect * and the edge of the trackRect, storing the result in the ! * trackBuffer field. Sufficient space needs to be reserved * for the slider thumb and/or the labels at each end of the slider track. */ protected void calculateTrackBuffer() --- 1134,1142 ---- } /** ! * Calculates the gap size between the edge of the contentRect * and the edge of the trackRect, storing the result in the ! * trackBuffer field. Sufficient space needs to be reserved * for the slider thumb and/or the labels at each end of the slider track. */ protected void calculateTrackBuffer() *************** public class BasicSliderUI extends Slide *** 1145,1155 **** { int w = Math.max(getWidthOfLowValueLabel(), getWidthOfHighValueLabel()); trackBuffer = Math.max(thumbRect.width / 2, w / 2); ! } else { ! int h = Math.max(getHeightOfLowValueLabel(), getHeightOfHighValueLabel()); trackBuffer = Math.max(thumbRect.height / 2, h / 2); } --- 1145,1155 ---- { int w = Math.max(getWidthOfLowValueLabel(), getWidthOfHighValueLabel()); trackBuffer = Math.max(thumbRect.width / 2, w / 2); ! } else { ! int h = Math.max(getHeightOfLowValueLabel(), getHeightOfHighValueLabel()); trackBuffer = Math.max(thumbRect.height / 2, h / 2); } *************** public class BasicSliderUI extends Slide *** 1157,1166 **** /** * Returns the size of the slider's thumb. The size is hard coded to ! * 11 x 20 for horizontal sliders, and 20 x 11 for ! * vertical sliders. Note that a new instance of {@link Dimension} is ! * returned for every call to this method (this seems wasteful, but ! * {@link Dimension} instances are not immutable, so this is probably * unavoidable). * * @return The size of the slider's thumb. --- 1157,1166 ---- /** * Returns the size of the slider's thumb. The size is hard coded to ! * 11 x 20 for horizontal sliders, and 20 x 11 for ! * vertical sliders. Note that a new instance of {@link Dimension} is ! * returned for every call to this method (this seems wasteful, but ! * {@link Dimension} instances are not immutable, so this is probably * unavoidable). * * @return The size of the slider's thumb. *************** public class BasicSliderUI extends Slide *** 1232,1238 **** tickRect.y = trackRect.y + trackRect.height; tickRect.width = trackRect.width; tickRect.height = getTickLength(); ! // this makes our Mauve tests pass...can't explain it! if (!slider.getPaintTicks()) { --- 1232,1238 ---- tickRect.y = trackRect.y + trackRect.height; tickRect.width = trackRect.width; tickRect.height = getTickLength(); ! // this makes our Mauve tests pass...can't explain it! if (!slider.getPaintTicks()) { *************** public class BasicSliderUI extends Slide *** 1257,1263 **** } /** ! * Calculates the labelRect field, taking into account the * orientation of the slider. */ protected void calculateLabelRect() --- 1257,1263 ---- } /** ! * Calculates the labelRect field, taking into account the * orientation of the slider. */ protected void calculateLabelRect() *************** public class BasicSliderUI extends Slide *** 1353,1359 **** * there are no labels. * * @return The width of the label whose key has the highest value. ! * * @see #getHighestValueLabel() */ protected int getWidthOfHighValueLabel() --- 1353,1359 ---- * there are no labels. * * @return The width of the label whose key has the highest value. ! * * @see #getHighestValueLabel() */ protected int getWidthOfHighValueLabel() *************** public class BasicSliderUI extends Slide *** 1370,1376 **** * there are no labels. * * @return The width of the label whose key has the lowest value. ! * * @see #getLowestValueLabel() */ protected int getWidthOfLowValueLabel() --- 1370,1376 ---- * there are no labels. * * @return The width of the label whose key has the lowest value. ! * * @see #getLowestValueLabel() */ protected int getWidthOfLowValueLabel() *************** public class BasicSliderUI extends Slide *** 1455,1461 **** /** * Returns the label whose key has the highest value. * ! * @return The label whose key has the highest value or null if * no label table exists. */ protected Component getHighestValueLabel() --- 1455,1461 ---- /** * Returns the label whose key has the highest value. * ! * @return The label whose key has the highest value or null if * no label table exists. */ protected Component getHighestValueLabel() *************** public class BasicSliderUI extends Slide *** 1527,1533 **** protected void recalculateIfOrientationChanged() { // Examining a test program shows that either Sun calls private ! // methods that we don't know about, or these don't do anything. calculateThumbSize(); calculateTrackBuffer(); calculateTrackRect(); --- 1527,1533 ---- protected void recalculateIfOrientationChanged() { // Examining a test program shows that either Sun calls private ! // methods that we don't know about, or these don't do anything. calculateThumbSize(); calculateTrackBuffer(); calculateTrackRect(); *************** public class BasicSliderUI extends Slide *** 1549,1555 **** Color saved_color = g.getColor(); g.setColor(getFocusColor()); ! g.drawRect(focusRect.x, focusRect.y, focusRect.width, focusRect.height); g.setColor(saved_color); --- 1549,1555 ---- Color saved_color = g.getColor(); g.setColor(getFocusColor()); ! g.drawRect(focusRect.x, focusRect.y, focusRect.width, focusRect.height); g.setColor(saved_color); *************** public class BasicSliderUI extends Slide *** 1564,1579 **** * with the highlight color. *

                                            *
                                            !    *    a---d   
                                            !    *    |   |   
                                                 *    |   |   a------------------------d
                                                 *    |   |   |                        |
                                                 *    |   |   b------------------------c
                                                 *    |   |
                                            !    *    |   |   
                                                 *    b---c
                                                 * 
                                            ! * *

                                            * The b-a-d path needs to be drawn with the shadow color and the b-c-d path * needs to be drawn with the highlight color. --- 1564,1579 ---- * with the highlight color. *

                                            *
                                            !    *    a---d
                                            !    *    |   |
                                                 *    |   |   a------------------------d
                                                 *    |   |   |                        |
                                                 *    |   |   b------------------------c
                                                 *    |   |
                                            !    *    |   |
                                                 *    b---c
                                                 * 
                                            ! * *

                                            * The b-a-d path needs to be drawn with the shadow color and the b-c-d path * needs to be drawn with the highlight color. *************** public class BasicSliderUI extends Slide *** 1676,1682 **** } } ! /* Minor ticks start at 1/4 of the height (or width) of the tickRect and extend to 1/2 of the tickRect. Major ticks start at 1/4 of the height and extend to 3/4. --- 1676,1682 ---- } } ! /* Minor ticks start at 1/4 of the height (or width) of the tickRect and extend to 1/2 of the tickRect. Major ticks start at 1/4 of the height and extend to 3/4. *************** public class BasicSliderUI extends Slide *** 1849,1855 **** * \ / | / * d e-----d *

                                            ! * *

                                            * In the case of vertical thumbs, we highlight the path b-a-e-d and shadow * the path b-c-d. In the case of horizontal thumbs, we highlight the path --- 1849,1855 ---- * \ / | / * d e-----d *

                                            ! * *

                                            * In the case of vertical thumbs, we highlight the path b-a-e-d and shadow * the path b-c-d. In the case of horizontal thumbs, we highlight the path *************** public class BasicSliderUI extends Slide *** 1958,1967 **** /** * Moves the thumb one block in the direction specified (a block is 1/10th ! * of the slider range). If the slider snaps to ticks, this method is * responsible for snapping it to a tick after the thumb has been moved. * ! * @param direction the direction (positive values increment the thumb * position by one block, zero/negative values decrement the thumb position * by one block). */ --- 1958,1967 ---- /** * Moves the thumb one block in the direction specified (a block is 1/10th ! * of the slider range). If the slider snaps to ticks, this method is * responsible for snapping it to a tick after the thumb has been moved. * ! * @param direction the direction (positive values increment the thumb * position by one block, zero/negative values decrement the thumb position * by one block). */ *************** public class BasicSliderUI extends Slide *** 1981,1991 **** } /** ! * Moves the thumb one unit in the specified direction. If the slider snaps ! * to ticks, this method is responsible for snapping it to a tick after the * thumb has been moved. * ! * @param direction the direction (positive values increment the thumb * position by one, zero/negative values decrement the thumb position by * one). */ --- 1981,1991 ---- } /** ! * Moves the thumb one unit in the specified direction. If the slider snaps ! * to ticks, this method is responsible for snapping it to a tick after the * thumb has been moved. * ! * @param direction the direction (positive values increment the thumb * position by one, zero/negative values decrement the thumb position by * one). */ *************** public class BasicSliderUI extends Slide *** 2021,2027 **** } /** ! * Returns the x-coordinate (relative to the component) for the given slider * value. This method assumes that the trackRect field is * set up. * --- 2021,2027 ---- } /** ! * Returns the x-coordinate (relative to the component) for the given slider * value. This method assumes that the trackRect field is * set up. * *************** public class BasicSliderUI extends Slide *** 2049,2056 **** } /** ! * Returns the y-coordinate (relative to the component) for the given slider ! * value. This method assumes that the trackRect field is * set up. * * @param value the slider value. --- 2049,2056 ---- } /** ! * Returns the y-coordinate (relative to the component) for the given slider ! * value. This method assumes that the trackRect field is * set up. * * @param value the slider value. *************** public class BasicSliderUI extends Slide *** 2093,2100 **** int value; ! // If the length is 0, you shouldn't be able to even see where the slider ! // is. This really shouldn't ever happen, but just in case, we'll return // the middle. if (len == 0) return (max - min) / 2; --- 2093,2100 ---- int value; ! // If the length is 0, you shouldn't be able to even see where the slider ! // is. This really shouldn't ever happen, but just in case, we'll return // the middle. if (len == 0) return (max - min) / 2; *************** public class BasicSliderUI extends Slide *** 2129,2136 **** int value; ! // If the length is 0, you shouldn't be able to even see where the slider ! // is. This really shouldn't ever happen, but just in case, we'll return // the middle. if (len == 0) return (max - min) / 2; --- 2129,2136 ---- int value; ! // If the length is 0, you shouldn't be able to even see where the slider ! // is. This really shouldn't ever happen, but just in case, we'll return // the middle. if (len == 0) return (max - min) / 2; *************** public class BasicSliderUI extends Slide *** 2164,2177 **** int minorSpace = slider.getMinorTickSpacing(); // The default value to return is value + minor or ! // value + major. // Initializing at min - value leaves us with a default // return value of min, which always has tick marks // (if ticks are painted). int minor = min - value; int major = min - value; ! // If there are no major tick marks or minor tick marks // e.g. snap is set to true but no ticks are set, then // we can just return the value. if (majorSpace <= 0 && minorSpace <= 0) --- 2164,2177 ---- int minorSpace = slider.getMinorTickSpacing(); // The default value to return is value + minor or ! // value + major. // Initializing at min - value leaves us with a default // return value of min, which always has tick marks // (if ticks are painted). int minor = min - value; int major = min - value; ! // If there are no major tick marks or minor tick marks // e.g. snap is set to true but no ticks are set, then // we can just return the value. if (majorSpace <= 0 && minorSpace <= 0) *************** public class BasicSliderUI extends Slide *** 2208,2215 **** else return value + minor; } ! ! InputMap getInputMap(int condition) { if (condition == JComponent.WHEN_FOCUSED) return (InputMap) UIManager.get("Slider.focusInputMap"); --- 2208,2215 ---- else return value + minor; } ! ! InputMap getInputMap(int condition) { if (condition == JComponent.WHEN_FOCUSED) return (InputMap) UIManager.get("Slider.focusInputMap"); *************** public class BasicSliderUI extends Slide *** 2218,2229 **** /** * Returns the action map for the {@link JSlider}. All sliders share ! * a single action map which is created the first time this method is * called, then stored in the UIDefaults table for subsequent access. ! * * @return The shared action map. */ ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("Slider.actionMap"); --- 2218,2229 ---- /** * Returns the action map for the {@link JSlider}. All sliders share ! * a single action map which is created the first time this method is * called, then stored in the UIDefaults table for subsequent access. ! * * @return The shared action map. */ ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("Slider.actionMap"); *************** public class BasicSliderUI extends Slide *** 2238,2255 **** /** * Creates the action map shared by all {@link JSlider} instances. ! * This method is called once by {@link #getActionMap()} when it ! * finds no action map in the UIDefaults table...after the map is ! * created, it gets added to the defaults table so that subsequent ! * calls to {@link #getActionMap()} will return the same shared * instance. ! * * @return The action map. */ ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("positiveUnitIncrement", new AbstractAction("positiveUnitIncrement") { public void actionPerformed(ActionEvent event) { --- 2238,2255 ---- /** * Creates the action map shared by all {@link JSlider} instances. ! * This method is called once by {@link #getActionMap()} when it ! * finds no action map in the UIDefaults table...after the map is ! * created, it gets added to the defaults table so that subsequent ! * calls to {@link #getActionMap()} will return the same shared * instance. ! * * @return The action map. */ ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("positiveUnitIncrement", new AbstractAction("positiveUnitIncrement") { public void actionPerformed(ActionEvent event) { *************** public class BasicSliderUI extends Slide *** 2262,2268 **** } } ); ! map.put("negativeUnitIncrement", new AbstractAction("negativeUnitIncrement") { public void actionPerformed(ActionEvent event) { --- 2262,2268 ---- } } ); ! map.put("negativeUnitIncrement", new AbstractAction("negativeUnitIncrement") { public void actionPerformed(ActionEvent event) { *************** public class BasicSliderUI extends Slide *** 2275,2281 **** } } ); ! map.put("positiveBlockIncrement", new AbstractAction("positiveBlockIncrement") { public void actionPerformed(ActionEvent event) { --- 2275,2281 ---- } } ); ! map.put("positiveBlockIncrement", new AbstractAction("positiveBlockIncrement") { public void actionPerformed(ActionEvent event) { *************** public class BasicSliderUI extends Slide *** 2288,2294 **** } } ); ! map.put("negativeBlockIncrement", new AbstractAction("negativeBlockIncrement") { public void actionPerformed(ActionEvent event) { --- 2288,2294 ---- } } ); ! map.put("negativeBlockIncrement", new AbstractAction("negativeBlockIncrement") { public void actionPerformed(ActionEvent event) { *************** public class BasicSliderUI extends Slide *** 2301,2307 **** } } ); ! map.put("minScroll", new AbstractAction("minScroll") { public void actionPerformed(ActionEvent event) { --- 2301,2307 ---- } } ); ! map.put("minScroll", new AbstractAction("minScroll") { public void actionPerformed(ActionEvent event) { *************** public class BasicSliderUI extends Slide *** 2309,2319 **** if (slider.getInverted()) slider.setValue(slider.getMaximum()); else ! slider.setValue(slider.getMinimum()); } } ); ! map.put("maxScroll", new AbstractAction("maxScroll") { public void actionPerformed(ActionEvent event) { --- 2309,2319 ---- if (slider.getInverted()) slider.setValue(slider.getMaximum()); else ! slider.setValue(slider.getMinimum()); } } ); ! map.put("maxScroll", new AbstractAction("maxScroll") { public void actionPerformed(ActionEvent event) { *************** public class BasicSliderUI extends Slide *** 2321,2327 **** if (slider.getInverted()) slider.setValue(slider.getMinimum()); else ! slider.setValue(slider.getMaximum()); } } ); --- 2321,2327 ---- if (slider.getInverted()) slider.setValue(slider.getMinimum()); else ! slider.setValue(slider.getMaximum()); } } ); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSpinnerUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSpinnerUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSpinnerUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSpinnerUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicSpinnerUI extends Spin *** 173,179 **** if (e instanceof JSpinner.DefaultEditor) { JSpinner.DefaultEditor de = (JSpinner.DefaultEditor) e; ! de.getTextField().setBorder(null); } spinner.setLayout(createLayout()); spinner.setOpaque(true); --- 173,179 ---- if (e instanceof JSpinner.DefaultEditor) { JSpinner.DefaultEditor de = (JSpinner.DefaultEditor) e; ! de.getTextField().setBorder(null); } spinner.setLayout(createLayout()); spinner.setOpaque(true); *************** public class BasicSpinnerUI extends Spin *** 199,234 **** { c.addMouseListener(new MouseAdapter() { ! public void mousePressed(MouseEvent evt) ! { ! if (! spinner.isEnabled()) ! return; ! increment(); ! timer.setInitialDelay(500); ! timer.start(); ! } ! public void mouseReleased(MouseEvent evt) ! { ! timer.stop(); ! } ! void increment() ! { ! Object next = BasicSpinnerUI.this.spinner.getNextValue(); ! if (next != null) ! BasicSpinnerUI.this.spinner.getModel().setValue(next); ! } ! volatile boolean mouseDown; ! Timer timer = new Timer(50, ! new ActionListener() ! { ! public void actionPerformed(ActionEvent event) ! { ! increment(); ! } ! }); }); } --- 199,234 ---- { c.addMouseListener(new MouseAdapter() { ! public void mousePressed(MouseEvent evt) ! { ! if (! spinner.isEnabled()) ! return; ! increment(); ! timer.setInitialDelay(500); ! timer.start(); ! } ! public void mouseReleased(MouseEvent evt) ! { ! timer.stop(); ! } ! void increment() ! { ! Object next = BasicSpinnerUI.this.spinner.getNextValue(); ! if (next != null) ! BasicSpinnerUI.this.spinner.getModel().setValue(next); ! } ! volatile boolean mouseDown; ! Timer timer = new Timer(50, ! new ActionListener() ! { ! public void actionPerformed(ActionEvent event) ! { ! increment(); ! } ! }); }); } *************** public class BasicSpinnerUI extends Spin *** 239,274 **** { c.addMouseListener(new MouseAdapter() { ! public void mousePressed(MouseEvent evt) ! { ! if (! spinner.isEnabled()) ! return; ! decrement(); ! timer.setInitialDelay(500); ! timer.start(); ! } ! public void mouseReleased(MouseEvent evt) ! { ! timer.stop(); ! } ! void decrement() ! { ! Object prev = BasicSpinnerUI.this.spinner.getPreviousValue(); ! if (prev != null) ! BasicSpinnerUI.this.spinner.getModel().setValue(prev); ! } ! volatile boolean mouseDown; ! Timer timer = new Timer(50, ! new ActionListener() ! { ! public void actionPerformed(ActionEvent event) ! { ! decrement(); ! } ! }); }); } --- 239,274 ---- { c.addMouseListener(new MouseAdapter() { ! public void mousePressed(MouseEvent evt) ! { ! if (! spinner.isEnabled()) ! return; ! decrement(); ! timer.setInitialDelay(500); ! timer.start(); ! } ! public void mouseReleased(MouseEvent evt) ! { ! timer.stop(); ! } ! void decrement() ! { ! Object prev = BasicSpinnerUI.this.spinner.getPreviousValue(); ! if (prev != null) ! BasicSpinnerUI.this.spinner.getModel().setValue(prev); ! } ! volatile boolean mouseDown; ! Timer timer = new Timer(50, ! new ActionListener() ! { ! public void actionPerformed(ActionEvent event) ! { ! decrement(); ! } ! }); }); } *************** public class BasicSpinnerUI extends Spin *** 384,390 **** Dimension e = prefSize(editor); Dimension n = prefSize(next); Dimension p = prefSize(previous); ! Dimension s = parent.getSize(); int x = l2r ? i.left : i.right; int y = i.top; --- 384,390 ---- Dimension e = prefSize(editor); Dimension n = prefSize(next); Dimension p = prefSize(previous); ! Dimension s = parent.getSize(); int x = l2r ? i.left : i.right; int y = i.top; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.border.Border; *** 61,67 **** /** * The divider that separates the two parts of a JSplitPane in the Basic look * and feel. ! * *

                                            * Implementation status: We do not have a real implementation yet. Currently, * it is mostly a stub to allow compiling other parts of the --- 61,67 ---- /** * The divider that separates the two parts of a JSplitPane in the Basic look * and feel. ! * *

                                            * Implementation status: We do not have a real implementation yet. Currently, * it is mostly a stub to allow compiling other parts of the *************** public class BasicSplitPaneDivider exten *** 138,199 **** public void paint(Graphics g) { if (splitPane != null) ! { ! // Fill background. ! g.setColor(splitPane.getBackground()); ! g.fillRect(0, 0, getWidth(), getHeight()); ! // Draw arrow. ! int size; ! if (direction == LEFT) ! { ! if (orientation == JSplitPane.VERTICAL_SPLIT) ! { ! size = Math.min(getHeight(), ONE_TOUCH_SIZE); ! xpoints[0] = 0; ! xpoints[1] = size / 2; ! xpoints[2] = size; ! ypoints[0] = size; ! ypoints[1] = 0; ! ypoints[2] = size; ! } ! else ! { ! size = Math.min(getWidth(), ONE_TOUCH_SIZE); ! xpoints[0] = size; ! xpoints[1] = 0; ! xpoints[2] = size; ! ypoints[0] = 0; ! ypoints[1] = size / 2; ! ypoints[2] = size; ! } ! } ! else ! { ! if (orientation == JSplitPane.VERTICAL_SPLIT) ! { ! size = Math.min(getHeight(), ONE_TOUCH_SIZE); ! xpoints[0] = 0; ! xpoints[1] = size / 2; ! xpoints[2] = size; ! ypoints[0] = 0; ! ypoints[1] = size; ! ypoints[2] = 0; ! } ! else ! { ! size = Math.min(getWidth(), ONE_TOUCH_SIZE); ! xpoints[0] = 0; ! xpoints[1] = size; ! xpoints[2] = 0; ! ypoints[0] = 0; ! ypoints[1] = size / 2; ! ypoints[2] = size; ! } ! } ! g.setColor(Color.BLACK); ! g.fillPolygon(xpoints, ypoints, 3); ! } } } --- 138,199 ---- public void paint(Graphics g) { if (splitPane != null) ! { ! // Fill background. ! g.setColor(splitPane.getBackground()); ! g.fillRect(0, 0, getWidth(), getHeight()); ! // Draw arrow. ! int size; ! if (direction == LEFT) ! { ! if (orientation == JSplitPane.VERTICAL_SPLIT) ! { ! size = Math.min(getHeight(), ONE_TOUCH_SIZE); ! xpoints[0] = 0; ! xpoints[1] = size / 2; ! xpoints[2] = size; ! ypoints[0] = size; ! ypoints[1] = 0; ! ypoints[2] = size; ! } ! else ! { ! size = Math.min(getWidth(), ONE_TOUCH_SIZE); ! xpoints[0] = size; ! xpoints[1] = 0; ! xpoints[2] = size; ! ypoints[0] = 0; ! ypoints[1] = size / 2; ! ypoints[2] = size; ! } ! } ! else ! { ! if (orientation == JSplitPane.VERTICAL_SPLIT) ! { ! size = Math.min(getHeight(), ONE_TOUCH_SIZE); ! xpoints[0] = 0; ! xpoints[1] = size / 2; ! xpoints[2] = size; ! ypoints[0] = 0; ! ypoints[1] = size; ! ypoints[2] = 0; ! } ! else ! { ! size = Math.min(getWidth(), ONE_TOUCH_SIZE); ! xpoints[0] = 0; ! xpoints[1] = size; ! xpoints[2] = 0; ! ypoints[0] = 0; ! ypoints[1] = size / 2; ! ypoints[2] = size; ! } ! } ! g.setColor(Color.BLACK); ! g.fillPolygon(xpoints, ypoints, 3); ! } } } *************** public class BasicSplitPaneDivider exten *** 212,277 **** int newLoc; if (ev.getSource() == leftButton) ! { ! if (orientation == JSplitPane.VERTICAL_SPLIT) ! { ! if (currentLoc ! >= splitPane.getHeight() - insets.bottom - getHeight()) ! { ! newLoc = Math.min(splitPane.getMaximumDividerLocation(), ! lastLoc); ! } ! else ! { ! newLoc = insets.top; ! } ! } ! else ! { ! if (currentLoc ! >= splitPane.getWidth() - insets.right - getWidth()) ! { ! newLoc = Math.min(splitPane.getMaximumDividerLocation(), ! lastLoc); ! } ! else ! { ! newLoc = insets.left; ! } ! } ! } else ! { ! if (orientation == JSplitPane.VERTICAL_SPLIT) ! { ! if (currentLoc == insets.top) ! { ! newLoc = Math.min(splitPane.getMaximumDividerLocation(), ! lastLoc); ! } ! else ! { ! newLoc = splitPane.getHeight() - insets.top - getHeight(); ! } ! } ! else ! { ! if (currentLoc == insets.left) ! { ! newLoc = Math.min(splitPane.getMaximumDividerLocation(), ! lastLoc); ! } ! else ! { ! newLoc = splitPane.getWidth() - insets.left - getWidth(); ! } ! } ! } if (currentLoc != newLoc) ! { ! splitPane.setDividerLocation(newLoc); ! splitPane.setLastDividerLocation(currentLoc); ! } } } --- 212,277 ---- int newLoc; if (ev.getSource() == leftButton) ! { ! if (orientation == JSplitPane.VERTICAL_SPLIT) ! { ! if (currentLoc ! >= splitPane.getHeight() - insets.bottom - getHeight()) ! { ! newLoc = Math.min(splitPane.getMaximumDividerLocation(), ! lastLoc); ! } ! else ! { ! newLoc = insets.top; ! } ! } ! else ! { ! if (currentLoc ! >= splitPane.getWidth() - insets.right - getWidth()) ! { ! newLoc = Math.min(splitPane.getMaximumDividerLocation(), ! lastLoc); ! } ! else ! { ! newLoc = insets.left; ! } ! } ! } else ! { ! if (orientation == JSplitPane.VERTICAL_SPLIT) ! { ! if (currentLoc == insets.top) ! { ! newLoc = Math.min(splitPane.getMaximumDividerLocation(), ! lastLoc); ! } ! else ! { ! newLoc = splitPane.getHeight() - insets.top - getHeight(); ! } ! } ! else ! { ! if (currentLoc == insets.left) ! { ! newLoc = Math.min(splitPane.getMaximumDividerLocation(), ! lastLoc); ! } ! else ! { ! newLoc = splitPane.getWidth() - insets.left - getWidth(); ! } ! } ! } if (currentLoc != newLoc) ! { ! splitPane.setDividerLocation(newLoc); ! splitPane.setLastDividerLocation(currentLoc); ! } } } *************** public class BasicSplitPaneDivider exten *** 315,321 **** /** * The listener for handling mouse events from both the divider and the * containing JSplitPane. ! * *

                                            * The reason for also handling MouseEvents from the containing * JSplitPane is that users should be able to start a drag --- 315,321 ---- /** * The listener for handling mouse events from both the divider and the * containing JSplitPane. ! * *

                                            * The reason for also handling MouseEvents from the containing * JSplitPane is that users should be able to start a drag *************** public class BasicSplitPaneDivider exten *** 398,408 **** /* Remove the connection to the existing JSplitPane. */ if (splitPane != null) { ! splitPane.removePropertyChangeListener(this); ! removeMouseListener(mouseHandler); ! removeMouseMotionListener(mouseHandler); ! splitPane = null; ! hiddenDivider = null; } /* Establish the connection to the new JSplitPane. */ --- 398,408 ---- /* Remove the connection to the existing JSplitPane. */ if (splitPane != null) { ! splitPane.removePropertyChangeListener(this); ! removeMouseListener(mouseHandler); ! removeMouseMotionListener(mouseHandler); ! splitPane = null; ! hiddenDivider = null; } /* Establish the connection to the new JSplitPane. */ *************** public class BasicSplitPaneDivider exten *** 411,421 **** splitPane = newUI.getSplitPane(); if (splitPane != null) { ! splitPane.addPropertyChangeListener(this); ! addMouseListener(mouseHandler); ! addMouseMotionListener(mouseHandler); ! hiddenDivider = splitPaneUI.getNonContinuousLayoutDivider(); ! orientation = splitPane.getOrientation(); if (splitPane.isOneTouchExpandable()) oneTouchExpandableChanged(); } --- 411,421 ---- splitPane = newUI.getSplitPane(); if (splitPane != null) { ! splitPane.addPropertyChangeListener(this); ! addMouseListener(mouseHandler); ! addMouseMotionListener(mouseHandler); ! hiddenDivider = splitPaneUI.getNonContinuousLayoutDivider(); ! orientation = splitPane.getOrientation(); if (splitPane.isOneTouchExpandable()) oneTouchExpandableChanged(); } *************** public class BasicSplitPaneDivider exten *** 465,473 **** { if (border != this.border) { ! Border oldValue = this.border; ! this.border = border; ! firePropertyChange("border", oldValue, border); } } --- 465,473 ---- { if (border != this.border) { ! Border oldValue = this.border; ! this.border = border; ! firePropertyChange("border", oldValue, border); } } *************** public class BasicSplitPaneDivider exten *** 539,545 **** oneTouchExpandableChanged(); else if (e.getPropertyName().equals(JSplitPane.ORIENTATION_PROPERTY)) { ! orientation = splitPane.getOrientation(); invalidate(); if (splitPane != null) splitPane.revalidate(); --- 539,545 ---- oneTouchExpandableChanged(); else if (e.getPropertyName().equals(JSplitPane.ORIENTATION_PROPERTY)) { ! orientation = splitPane.getOrientation(); invalidate(); if (splitPane != null) splitPane.revalidate(); *************** public class BasicSplitPaneDivider exten *** 560,567 **** super.paint(g); if (border != null) { ! dividerSize = getSize(); ! border.paintBorder(this, g, 0, 0, dividerSize.width, dividerSize.height); } } --- 560,567 ---- super.paint(g); if (border != null) { ! dividerSize = getSize(); ! border.paintBorder(this, g, 0, 0, dividerSize.width, dividerSize.height); } } *************** public class BasicSplitPaneDivider exten *** 573,592 **** { if (splitPane.isOneTouchExpandable()) { ! leftButton = createLeftOneTouchButton(); ! if (leftButton != null) ! leftButton.addActionListener(new OneTouchAction()); ! rightButton = createRightOneTouchButton(); ! if (rightButton != null) ! rightButton.addActionListener(new OneTouchAction()); ! // Only add them when both are non-null. ! if (leftButton != null && rightButton != null) { add(leftButton); add(rightButton); ! } } invalidate(); if (splitPane != null) --- 573,592 ---- { if (splitPane.isOneTouchExpandable()) { ! leftButton = createLeftOneTouchButton(); ! if (leftButton != null) ! leftButton.addActionListener(new OneTouchAction()); ! rightButton = createRightOneTouchButton(); ! if (rightButton != null) ! rightButton.addActionListener(new OneTouchAction()); ! // Only add them when both are non-null. ! if (leftButton != null && rightButton != null) { add(leftButton); add(rightButton); ! } } invalidate(); if (splitPane != null) *************** public class BasicSplitPaneDivider exten *** 678,705 **** switch (locationIndex) { case 1: ! splitPane.setDividerLocation(splitPane.getLastDividerLocation()); ! break; case 0: ! int top = (orientation == JSplitPane.HORIZONTAL_SPLIT) ? insets.left ! : insets.top; ! splitPane.setDividerLocation(top); ! break; case 2: ! int bottom; ! if (orientation == JSplitPane.HORIZONTAL_SPLIT) ! bottom = splitPane.getBounds().width - insets.right - dividerSize; ! else ! bottom = splitPane.getBounds().height - insets.bottom - dividerSize; ! splitPane.setDividerLocation(bottom); ! break; } } /** * The listener for handling mouse events from both the divider and the * containing JSplitPane. ! * *

                                            * The reason for also handling MouseEvents from the containing * JSplitPane is that users should be able to start a drag --- 678,705 ---- switch (locationIndex) { case 1: ! splitPane.setDividerLocation(splitPane.getLastDividerLocation()); ! break; case 0: ! int top = (orientation == JSplitPane.HORIZONTAL_SPLIT) ? insets.left ! : insets.top; ! splitPane.setDividerLocation(top); ! break; case 2: ! int bottom; ! if (orientation == JSplitPane.HORIZONTAL_SPLIT) ! bottom = splitPane.getBounds().width - insets.right - dividerSize; ! else ! bottom = splitPane.getBounds().height - insets.bottom - dividerSize; ! splitPane.setDividerLocation(bottom); ! break; } } /** * The listener for handling mouse events from both the divider and the * containing JSplitPane. ! * *

                                            * The reason for also handling MouseEvents from the containing * JSplitPane is that users should be able to start a drag *************** public class BasicSplitPaneDivider exten *** 724,732 **** isDragging = true; currentDividerLocation = 1; if (orientation == JSplitPane.HORIZONTAL_SPLIT) ! dragger = new DragController(e); else ! dragger = new VerticalDragController(e); prepareForDragging(); } --- 724,732 ---- isDragging = true; currentDividerLocation = 1; if (orientation == JSplitPane.HORIZONTAL_SPLIT) ! dragger = new DragController(e); else ! dragger = new VerticalDragController(e); prepareForDragging(); } *************** public class BasicSplitPaneDivider exten *** 836,842 **** protected void continueDrag(int newX, int newY) { if (isValid()) ! dragDividerTo(adjust(newX, newY)); } /** --- 836,842 ---- protected void continueDrag(int newX, int newY) { if (isValid()) ! dragDividerTo(adjust(newX, newY)); } /** *************** public class BasicSplitPaneDivider exten *** 848,854 **** protected void continueDrag(MouseEvent e) { if (isValid()) ! dragDividerTo(positionForMouseEvent(e)); } /** --- 848,854 ---- protected void continueDrag(MouseEvent e) { if (isValid()) ! dragDividerTo(positionForMouseEvent(e)); } /** *************** public class BasicSplitPaneDivider exten *** 1000,1006 **** x = insets.left; y = 0; } ! leftButton.setBounds(x, y + ONE_TOUCH_OFFSET, size, size * 2); rightButton.setBounds(x, y + ONE_TOUCH_OFFSET --- 1000,1006 ---- x = insets.left; y = 0; } ! leftButton.setBounds(x, y + ONE_TOUCH_OFFSET, size, size * 2); rightButton.setBounds(x, y + ONE_TOUCH_OFFSET diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicSplitPaneUI extends Sp *** 89,95 **** // 3 components at a time. // LEFT/TOP = 0 // RIGHT/BOTTOM = 1 ! // DIVIDER = 2 /** * This array contains the components in the JSplitPane. The left/top --- 89,95 ---- // 3 components at a time. // LEFT/TOP = 0 // RIGHT/BOTTOM = 1 ! // DIVIDER = 2 /** * This array contains the components in the JSplitPane. The left/top *************** public class BasicSplitPaneUI extends Sp *** 338,344 **** // Layout divider. loc += sizes[0]; setComponentToSize(components[2], sizes[2], loc, insets, dims); ! // Layout component#2. loc += sizes[2]; setComponentToSize(components[1], sizes[1], loc, insets, dims); } --- 338,344 ---- // Layout divider. loc += sizes[0]; setComponentToSize(components[2], sizes[2], loc, insets, dims); ! // Layout component#2. loc += sizes[2]; setComponentToSize(components[1], sizes[1], loc, insets, dims); } *************** public class BasicSplitPaneUI extends Sp *** 483,489 **** */ protected void setComponentToSize(Component c, int size, int location, Insets insets, Dimension containerSize) ! { if (insets != null) { if (axis == SwingConstants.HORIZONTAL) --- 483,489 ---- */ protected void setComponentToSize(Component c, int size, int location, Insets insets, Dimension containerSize) ! { if (insets != null) { if (axis == SwingConstants.HORIZONTAL) *************** public class BasicSplitPaneUI extends Sp *** 752,758 **** tmpSizes[0] += newSpace / 2; tmpSizes[1] += newSpace / 2; ! layoutManager.setSizes(tmpSizes); } else if (e.getPropertyName().equals(JSplitPane.ORIENTATION_PROPERTY)) --- 752,758 ---- tmpSizes[0] += newSpace / 2; tmpSizes[1] += newSpace / 2; ! layoutManager.setSizes(tmpSizes); } else if (e.getPropertyName().equals(JSplitPane.ORIENTATION_PROPERTY)) *************** public class BasicSplitPaneUI extends Sp *** 986,997 **** /** * Returns the input map for the specified condition. ! * * @param condition the condition. ! * * @return The input map. */ ! InputMap getInputMap(int condition) { if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) return (InputMap) UIManager.get("SplitPane.ancestorInputMap"); --- 986,997 ---- /** * Returns the input map for the specified condition. ! * * @param condition the condition. ! * * @return The input map. */ ! InputMap getInputMap(int condition) { if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) return (InputMap) UIManager.get("SplitPane.ancestorInputMap"); *************** public class BasicSplitPaneUI extends Sp *** 1000,1011 **** /** * Returns the action map for the {@link JSplitPane}. All sliders share ! * a single action map which is created the first time this method is * called, then stored in the UIDefaults table for subsequent access. ! * * @return The shared action map. */ ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("SplitPane.actionMap"); --- 1000,1011 ---- /** * Returns the action map for the {@link JSplitPane}. All sliders share ! * a single action map which is created the first time this method is * called, then stored in the UIDefaults table for subsequent access. ! * * @return The shared action map. */ ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("SplitPane.actionMap"); *************** public class BasicSplitPaneUI extends Sp *** 1020,1037 **** /** * Creates the action map shared by all {@link JSlider} instances. ! * This method is called once by {@link #getActionMap()} when it ! * finds no action map in the UIDefaults table...after the map is ! * created, it gets added to the defaults table so that subsequent ! * calls to {@link #getActionMap()} will return the same shared * instance. ! * * @return The action map. */ ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("toggleFocus", new AbstractAction("toggleFocus") { public void actionPerformed(ActionEvent event) { --- 1020,1037 ---- /** * Creates the action map shared by all {@link JSlider} instances. ! * This method is called once by {@link #getActionMap()} when it ! * finds no action map in the UIDefaults table...after the map is ! * created, it gets added to the defaults table so that subsequent ! * calls to {@link #getActionMap()} will return the same shared * instance. ! * * @return The action map. */ ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("toggleFocus", new AbstractAction("toggleFocus") { public void actionPerformed(ActionEvent event) { *************** public class BasicSplitPaneUI extends Sp *** 1039,1045 **** } } ); ! map.put("startResize", new AbstractAction("startResize") { public void actionPerformed(ActionEvent event) { --- 1039,1045 ---- } } ); ! map.put("startResize", new AbstractAction("startResize") { public void actionPerformed(ActionEvent event) { *************** public class BasicSplitPaneUI extends Sp *** 1047,1053 **** } } ); ! map.put("selectMax", new AbstractAction("selectMax") { public void actionPerformed(ActionEvent event) { --- 1047,1053 ---- } } ); ! map.put("selectMax", new AbstractAction("selectMax") { public void actionPerformed(ActionEvent event) { *************** public class BasicSplitPaneUI extends Sp *** 1055,1061 **** } } ); ! map.put("selectMin", new AbstractAction("selectMin") { public void actionPerformed(ActionEvent event) { --- 1055,1061 ---- } } ); ! map.put("selectMin", new AbstractAction("selectMin") { public void actionPerformed(ActionEvent event) { *************** public class BasicSplitPaneUI extends Sp *** 1063,1069 **** } } ); ! map.put("negativeIncrement", new AbstractAction("negativeIncrement") { public void actionPerformed(ActionEvent event) { --- 1063,1069 ---- } } ); ! map.put("negativeIncrement", new AbstractAction("negativeIncrement") { public void actionPerformed(ActionEvent event) { *************** public class BasicSplitPaneUI extends Sp *** 1074,1080 **** } } ); ! map.put("positiveIncrement", new AbstractAction("positiveIncrement") { public void actionPerformed(ActionEvent event) { --- 1074,1080 ---- } } ); ! map.put("positiveIncrement", new AbstractAction("positiveIncrement") { public void actionPerformed(ActionEvent event) { *************** public class BasicSplitPaneUI extends Sp *** 1092,1098 **** // FIXME: implement this } } ! ); map.put("focusOutForward", new AbstractAction("focusOutForward") { public void actionPerformed(ActionEvent event) --- 1092,1098 ---- // FIXME: implement this } } ! ); map.put("focusOutForward", new AbstractAction("focusOutForward") { public void actionPerformed(ActionEvent event) *************** public class BasicSplitPaneUI extends Sp *** 1100,1106 **** // FIXME: implement this } } ! ); return map; } --- 1100,1106 ---- // FIXME: implement this } } ! ); return map; } *************** public class BasicSplitPaneUI extends Sp *** 1112,1118 **** { InputMap keyMap = getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); ! SwingUtilities.replaceUIInputMap(splitPane, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, keyMap); ActionMap map = getActionMap(); SwingUtilities.replaceUIActionMap(splitPane, map); --- 1112,1118 ---- { InputMap keyMap = getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); ! SwingUtilities.replaceUIInputMap(splitPane, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, keyMap); ActionMap map = getActionMap(); SwingUtilities.replaceUIActionMap(splitPane, map); *************** public class BasicSplitPaneUI extends Sp *** 1124,1130 **** protected void uninstallKeyboardActions() { SwingUtilities.replaceUIActionMap(splitPane, null); ! SwingUtilities.replaceUIInputMap(splitPane, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null); } --- 1124,1130 ---- protected void uninstallKeyboardActions() { SwingUtilities.replaceUIActionMap(splitPane, null); ! SwingUtilities.replaceUIInputMap(splitPane, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.View; *** 82,88 **** /** * This is the Basic Look and Feel's UI delegate for JTabbedPane. ! * * @author Lillian Angel (langel@redhat.com) * @author Kim Ho (kho@redhat.com) * @author Roman Kennke (kennke@aicas.com) --- 82,88 ---- /** * This is the Basic Look and Feel's UI delegate for JTabbedPane. ! * * @author Lillian Angel (langel@redhat.com) * @author Kim Ho (kho@redhat.com) * @author Roman Kennke (kennke@aicas.com) *************** import javax.swing.text.View; *** 90,100 **** */ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants { ! static class NavigateAction extends AbstractAction { int direction; ! NavigateAction(String name, int dir) { super(name); --- 90,100 ---- */ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants { ! static class NavigateAction extends AbstractAction { int direction; ! NavigateAction(String name, int dir) { super(name); *************** public class BasicTabbedPaneUI extends T *** 108,116 **** ui.navigateSelectedTab(direction); } ! } ! static class NavigatePageDownAction extends AbstractAction { --- 108,116 ---- ui.navigateSelectedTab(direction); } ! } ! static class NavigatePageDownAction extends AbstractAction { *************** public class BasicTabbedPaneUI extends T *** 123,139 **** { JTabbedPane tp = (JTabbedPane) event.getSource(); BasicTabbedPaneUI ui = (BasicTabbedPaneUI) tp.getUI(); ! int i = tp.getSelectedIndex(); ! if (i < 0) i = 0; ! ui.selectNextTabInRun(i); } ! } ! static class NavigatePageUpAction extends AbstractAction { --- 123,139 ---- { JTabbedPane tp = (JTabbedPane) event.getSource(); BasicTabbedPaneUI ui = (BasicTabbedPaneUI) tp.getUI(); ! int i = tp.getSelectedIndex(); ! if (i < 0) i = 0; ! ui.selectNextTabInRun(i); } ! } ! static class NavigatePageUpAction extends AbstractAction { *************** public class BasicTabbedPaneUI extends T *** 146,162 **** { JTabbedPane tp = (JTabbedPane) event.getSource(); BasicTabbedPaneUI ui = (BasicTabbedPaneUI) tp.getUI(); ! int i = tp.getSelectedIndex(); ! if (i < 0) i = 0; ! ui.selectPreviousTabInRun(i); ! } } ! static class RequestFocusAction extends AbstractAction { --- 146,162 ---- { JTabbedPane tp = (JTabbedPane) event.getSource(); BasicTabbedPaneUI ui = (BasicTabbedPaneUI) tp.getUI(); ! int i = tp.getSelectedIndex(); ! if (i < 0) i = 0; ! ui.selectPreviousTabInRun(i); ! } } ! static class RequestFocusAction extends AbstractAction { *************** public class BasicTabbedPaneUI extends T *** 169,175 **** { ((JTabbedPane) event.getSource()).requestFocus(); } ! } static class RequestFocusForVisibleComponentAction extends AbstractAction --- 169,175 ---- { ((JTabbedPane) event.getSource()).requestFocus(); } ! } static class RequestFocusForVisibleComponentAction extends AbstractAction *************** public class BasicTabbedPaneUI extends T *** 183,200 **** public void actionPerformed(ActionEvent event) { JTabbedPane tp = (JTabbedPane) event.getSource(); ! // FIXME: This should select a suitable component within // the tab content. However I dont know whether we have // to search for this component or wether the called is // supposed to do that. tp.getSelectedComponent().requestFocus(); } ! } /** ! * A helper class that handles focus. *

                                            The purpose of this class is to implement a more flexible focus * handling for the tabbed pane, which is used to determine whether the * focus indicator should be painted or not. When in scrolling layout --- 183,200 ---- public void actionPerformed(ActionEvent event) { JTabbedPane tp = (JTabbedPane) event.getSource(); ! // FIXME: This should select a suitable component within // the tab content. However I dont know whether we have // to search for this component or wether the called is // supposed to do that. tp.getSelectedComponent().requestFocus(); } ! } /** ! * A helper class that handles focus. *

                                            The purpose of this class is to implement a more flexible focus * handling for the tabbed pane, which is used to determine whether the * focus indicator should be painted or not. When in scrolling layout *************** public class BasicTabbedPaneUI extends T *** 262,268 **** e.setSource(s); } } ! /** * This method is called when the mouse is pressed. The index cannot * change to a tab that is not enabled. --- 262,268 ---- e.setSource(s); } } ! /** * This method is called when the mouse is pressed. The index cannot * change to a tab that is not enabled. *************** public class BasicTabbedPaneUI extends T *** 281,289 **** redispatchEvent(e); e.setSource(s); } ! int placement = tabPane.getTabPlacement(); ! if (s == incrButton) { if(!incrButton.isEnabled()) --- 281,289 ---- redispatchEvent(e); e.setSource(s); } ! int placement = tabPane.getTabPlacement(); ! if (s == incrButton) { if(!incrButton.isEnabled()) *************** public class BasicTabbedPaneUI extends T *** 294,300 **** switch (placement) { case JTabbedPane.TOP: ! case JTabbedPane.BOTTOM: currentScrollOffset = getTabAreaInsets(placement).left; for (int i = 0; i < currentScrollLocation; i++) currentScrollOffset += rects[i].width; --- 294,300 ---- switch (placement) { case JTabbedPane.TOP: ! case JTabbedPane.BOTTOM: currentScrollOffset = getTabAreaInsets(placement).left; for (int i = 0; i < currentScrollLocation; i++) currentScrollOffset += rects[i].width; *************** public class BasicTabbedPaneUI extends T *** 305,334 **** currentScrollOffset += rects[i].height; break; } ! updateViewPosition(); updateButtons(); ! tabPane.repaint(); } else if (s == decrButton) { if(!decrButton.isEnabled()) return; ! // The scroll location may be zero but the offset // greater than zero because of an adjustement to // make a partially visible tab completely visible. if (currentScrollLocation > 0) currentScrollLocation--; ! // Set the offset back to 0 and recompute it. currentScrollOffset = 0; switch (placement) { case JTabbedPane.TOP: ! case JTabbedPane.BOTTOM: // Take the tab area inset into account. if (currentScrollLocation > 0) currentScrollOffset = getTabAreaInsets(placement).left; --- 305,334 ---- currentScrollOffset += rects[i].height; break; } ! updateViewPosition(); updateButtons(); ! tabPane.repaint(); } else if (s == decrButton) { if(!decrButton.isEnabled()) return; ! // The scroll location may be zero but the offset // greater than zero because of an adjustement to // make a partially visible tab completely visible. if (currentScrollLocation > 0) currentScrollLocation--; ! // Set the offset back to 0 and recompute it. currentScrollOffset = 0; switch (placement) { case JTabbedPane.TOP: ! case JTabbedPane.BOTTOM: // Take the tab area inset into account. if (currentScrollLocation > 0) currentScrollOffset = getTabAreaInsets(placement).left; *************** public class BasicTabbedPaneUI extends T *** 340,353 **** // Take the tab area inset into account. if (currentScrollLocation > 0) currentScrollOffset = getTabAreaInsets(placement).top; ! for (int i = 0; i < currentScrollLocation; i++) currentScrollOffset += rects[i].height; ! } ! updateViewPosition(); updateButtons(); ! tabPane.repaint(); } else if (tabPane.isEnabled()) --- 340,353 ---- // Take the tab area inset into account. if (currentScrollLocation > 0) currentScrollOffset = getTabAreaInsets(placement).top; ! for (int i = 0; i < currentScrollLocation; i++) currentScrollOffset += rects[i].height; ! } ! updateViewPosition(); updateButtons(); ! tabPane.repaint(); } else if (tabPane.isEnabled()) *************** public class BasicTabbedPaneUI extends T *** 355,366 **** int index = tabForCoordinate(tabPane, e.getX(), e.getY()); if (!tabPane.isEnabledAt(index)) return; ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT && s == panel) { scrollTab(index, placement); ! tabPane.setSelectedIndex(index); tabPane.repaint(); } --- 355,366 ---- int index = tabForCoordinate(tabPane, e.getX(), e.getY()); if (!tabPane.isEnabledAt(index)) return; ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT && s == panel) { scrollTab(index, placement); ! tabPane.setSelectedIndex(index); tabPane.repaint(); } *************** public class BasicTabbedPaneUI extends T *** 370,378 **** tabPane.revalidate(); tabPane.repaint(); } ! } ! } /** --- 370,378 ---- tabPane.revalidate(); tabPane.repaint(); } ! } ! } /** *************** public class BasicTabbedPaneUI extends T *** 393,399 **** redispatchEvent(e); e.setSource(s); } ! int tabIndex = tabForCoordinate(tabPane, e.getX(), e.getY()); setRolloverTab(tabIndex); } --- 393,399 ---- redispatchEvent(e); e.setSource(s); } ! int tabIndex = tabForCoordinate(tabPane, e.getX(), e.getY()); setRolloverTab(tabIndex); } *************** public class BasicTabbedPaneUI extends T *** 416,422 **** redispatchEvent(e); e.setSource(s); } ! setRolloverTab(-1); } --- 416,422 ---- redispatchEvent(e); e.setSource(s); } ! setRolloverTab(-1); } *************** public class BasicTabbedPaneUI extends T *** 434,450 **** { ev.setSource(tabPane); tabPane.dispatchEvent(ev); ! ev.setSource(s); } int tabIndex = tabForCoordinate(tabPane, ev.getX(), ev.getY()); setRolloverTab(tabIndex); } ! ! /** Modifies the mouse event to originate from * the tabbed pane and redispatches it. ! * * @param me */ void redispatchEvent(MouseEvent me) --- 434,450 ---- { ev.setSource(tabPane); tabPane.dispatchEvent(ev); ! ev.setSource(s); } int tabIndex = tabForCoordinate(tabPane, ev.getX(), ev.getY()); setRolloverTab(tabIndex); } ! ! /** Modifies the mouse event to originate from * the tabbed pane and redispatches it. ! * * @param me */ void redispatchEvent(MouseEvent me) *************** public class BasicTabbedPaneUI extends T *** 455,464 **** viewPos.y -= viewport.getY(); me.translatePoint(-viewPos.x, -viewPos.y); tabPane.dispatchEvent(me); ! me.translatePoint(viewPos.x, viewPos.y); } ! } /** --- 455,464 ---- viewPos.y -= viewport.getY(); me.translatePoint(-viewPos.x, -viewPos.y); tabPane.dispatchEvent(me); ! me.translatePoint(viewPos.x, viewPos.y); } ! } /** *************** public class BasicTabbedPaneUI extends T *** 483,500 **** if (e.getPropertyName().equals("tabLayoutPolicy")) { currentScrollLocation = currentScrollOffset = 0; ! layoutManager = createLayoutManager(); ! tabPane.setLayout(layoutManager); } else if (e.getPropertyName().equals("tabPlacement") ! && tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) { incrButton = createIncreaseButton(); decrButton = createDecreaseButton(); ! // If the tab placement value was changed of a tabbed pane // in SCROLL_TAB_LAYOUT mode we investigate the change to // implement the following behavior which was observed in --- 483,500 ---- if (e.getPropertyName().equals("tabLayoutPolicy")) { currentScrollLocation = currentScrollOffset = 0; ! layoutManager = createLayoutManager(); ! tabPane.setLayout(layoutManager); } else if (e.getPropertyName().equals("tabPlacement") ! && tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) { incrButton = createIncreaseButton(); decrButton = createDecreaseButton(); ! // If the tab placement value was changed of a tabbed pane // in SCROLL_TAB_LAYOUT mode we investigate the change to // implement the following behavior which was observed in *************** public class BasicTabbedPaneUI extends T *** 502,508 **** // The scrolling offset will be reset if we change to // a direction which is orthogonal to the current // direction and stays the same if it is parallel. ! int oldPlacement = ((Integer) e.getOldValue()).intValue(); int newPlacement = ((Integer) e.getNewValue()).intValue(); switch (newPlacement) --- 502,508 ---- // The scrolling offset will be reset if we change to // a direction which is orthogonal to the current // direction and stays the same if it is parallel. ! int oldPlacement = ((Integer) e.getOldValue()).intValue(); int newPlacement = ((Integer) e.getNewValue()).intValue(); switch (newPlacement) *************** public class BasicTabbedPaneUI extends T *** 512,533 **** if (oldPlacement == JTabbedPane.TOP || oldPlacement == JTabbedPane.BOTTOM) break out; ! currentScrollOffset = getTabAreaInsets(newPlacement).left; break; default: if (oldPlacement == JTabbedPane.LEFT || oldPlacement == JTabbedPane.RIGHT) break out; ! currentScrollOffset = getTabAreaInsets(newPlacement).top; } ! updateViewPosition(); updateButtons(); } } ! tabPane.revalidate(); tabPane.repaint(); } --- 512,533 ---- if (oldPlacement == JTabbedPane.TOP || oldPlacement == JTabbedPane.BOTTOM) break out; ! currentScrollOffset = getTabAreaInsets(newPlacement).left; break; default: if (oldPlacement == JTabbedPane.LEFT || oldPlacement == JTabbedPane.RIGHT) break out; ! currentScrollOffset = getTabAreaInsets(newPlacement).top; } ! updateViewPosition(); updateButtons(); } } ! tabPane.revalidate(); tabPane.repaint(); } *************** public class BasicTabbedPaneUI extends T *** 592,598 **** c = tabPane.getComponentAt(i); if (c == null) continue; ! dims = minimum ? c.getMinimumSize() : c.getPreferredSize(); if (dims != null) { height = Math.max(height, dims.height); --- 592,598 ---- c = tabPane.getComponentAt(i); if (c == null) continue; ! dims = minimum ? c.getMinimumSize() : c.getPreferredSize(); if (dims != null) { height = Math.max(height, dims.height); *************** public class BasicTabbedPaneUI extends T *** 605,611 **** || tabPlacement == SwingConstants.BOTTOM) { width = Math.max(calculateMaxTabWidth(tabPlacement), width); ! height += preferredTabAreaHeight(tabPlacement, width - tabAreaInsets.left - tabAreaInsets.right); --- 605,611 ---- || tabPlacement == SwingConstants.BOTTOM) { width = Math.max(calculateMaxTabWidth(tabPlacement), width); ! height += preferredTabAreaHeight(tabPlacement, width - tabAreaInsets.left - tabAreaInsets.right); *************** public class BasicTabbedPaneUI extends T *** 613,619 **** else { height = Math.max(calculateMaxTabHeight(tabPlacement), height); ! width += preferredTabAreaWidth(tabPlacement, height - tabAreaInsets.top - tabAreaInsets.bottom); --- 613,619 ---- else { height = Math.max(calculateMaxTabHeight(tabPlacement), height); ! width += preferredTabAreaWidth(tabPlacement, height - tabAreaInsets.top - tabAreaInsets.bottom); *************** public class BasicTabbedPaneUI extends T *** 648,654 **** Insets insets = tabPane.getInsets(); Insets tabAreaInsets = getTabAreaInsets(tabPlacement); Dimension size = tabPane.getSize(); ! // The coordinates of the upper left corner of the tab area. int x; int y; --- 648,654 ---- Insets insets = tabPane.getInsets(); Insets tabAreaInsets = getTabAreaInsets(tabPlacement); Dimension size = tabPane.getSize(); ! // The coordinates of the upper left corner of the tab area. int x; int y; *************** public class BasicTabbedPaneUI extends T *** 787,797 **** rotateTabRuns(tabPlacement, selectedRun); } } ! // Suppress padding if we have only one tab run. if (runCount == 1) return; ! // Pad the runs. int tabRunOverlay = getTabRunOverlay(tabPlacement); for (int i = runCount - 1; i >= 0; --i) --- 787,797 ---- rotateTabRuns(tabPlacement, selectedRun); } } ! // Suppress padding if we have only one tab run. if (runCount == 1) return; ! // Pad the runs. int tabRunOverlay = getTabRunOverlay(tabPlacement); for (int i = runCount - 1; i >= 0; --i) *************** public class BasicTabbedPaneUI extends T *** 838,844 **** x -= maxTabWidth - tabRunOverlay; else x += maxTabWidth - tabRunOverlay; ! } } padSelectedTab(tabPlacement, selectedIndex); --- 838,844 ---- x -= maxTabWidth - tabRunOverlay; else x += maxTabWidth - tabRunOverlay; ! } } padSelectedTab(tabPlacement, selectedIndex); *************** public class BasicTabbedPaneUI extends T *** 859,871 **** Insets insets = tabPane.getInsets(); int selectedIndex = tabPane.getSelectedIndex(); ! Component selectedComponent = null; if (selectedIndex >= 0) selectedComponent = tabPane.getComponentAt(selectedIndex); // The RI doesn't seem to change the component if the new selected // component == null. This is probably so that applications can add ! // one single component for every tab. if (selectedComponent != null) { setVisibleComponent(selectedComponent); --- 859,871 ---- Insets insets = tabPane.getInsets(); int selectedIndex = tabPane.getSelectedIndex(); ! Component selectedComponent = null; if (selectedIndex >= 0) selectedComponent = tabPane.getComponentAt(selectedIndex); // The RI doesn't seem to change the component if the new selected // component == null. This is probably so that applications can add ! // one single component for every tab. if (selectedComponent != null) { setVisibleComponent(selectedComponent); *************** public class BasicTabbedPaneUI extends T *** 892,898 **** compX = insets.left + contentBorderInsets.left; compY = insets.top + contentBorderInsets.top; break; ! case BOTTOM: tabAreaHeight = calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); compX = insets.left + contentBorderInsets.left; --- 892,898 ---- compX = insets.left + contentBorderInsets.left; compY = insets.top + contentBorderInsets.top; break; ! case BOTTOM: tabAreaHeight = calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); compX = insets.left + contentBorderInsets.left; *************** public class BasicTabbedPaneUI extends T *** 902,908 **** default: tabAreaHeight = calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); ! compX = insets.left + contentBorderInsets.left; compY = tabAreaHeight + insets.top + contentBorderInsets.top; } --- 902,908 ---- default: tabAreaHeight = calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); ! compX = insets.left + contentBorderInsets.left; compY = tabAreaHeight + insets.top + contentBorderInsets.top; } *************** public class BasicTabbedPaneUI extends T *** 938,946 **** // If there is more free space in an adjacent run AND the tab // in the run can fit in the adjacent run, move it. This method // is not perfect, it is merely an approximation. ! // If you play around with Sun's JTabbedPane, you'll see that ! // it does do some pretty strange things with regards to not moving tabs ! // that should be moved. // start = the x position where the tabs will begin // max = the maximum position of where the tabs can go to // (tabAreaInsets.left + the width of the tab area) --- 938,946 ---- // If there is more free space in an adjacent run AND the tab // in the run can fit in the adjacent run, move it. This method // is not perfect, it is merely an approximation. ! // If you play around with Sun's JTabbedPane, you'll see that ! // it does do some pretty strange things with regards to not moving tabs ! // that should be moved. // start = the x position where the tabs will begin // max = the maximum position of where the tabs can go to // (tabAreaInsets.left + the width of the tab area) *************** public class BasicTabbedPaneUI extends T *** 1046,1052 **** int runWidth = rects[end].x + rects[end].width; int spaceRemaining = max - runWidth; int numTabs = end - start + 1; ! // now divvy up the space. int spaceAllocated = spaceRemaining / numTabs; int currX = rects[start].x; --- 1046,1052 ---- int runWidth = rects[end].x + rects[end].width; int spaceRemaining = max - runWidth; int numTabs = end - start + 1; ! // now divvy up the space. int spaceAllocated = spaceRemaining / numTabs; int currX = rects[start].x; *************** public class BasicTabbedPaneUI extends T *** 1054,1066 **** { rects[i].x = currX; rects[i].width += spaceAllocated; ! currX += rects[i].width; ! // This is used because since the spaceAllocated // variable is an int, it rounds down. Sometimes, // we don't fill an entire row, so we make it do // so now. ! if (i == end && rects[i].x + rects[i].width != max) rects[i].width = max - rects[i].x; } --- 1054,1066 ---- { rects[i].x = currX; rects[i].width += spaceAllocated; ! currX += rects[i].width; ! // This is used because since the spaceAllocated // variable is an int, it rounds down. Sometimes, // we don't fill an entire row, so we make it do // so now. ! if (i == end && rects[i].x + rects[i].width != max) rects[i].width = max - rects[i].x; } *************** public class BasicTabbedPaneUI extends T *** 1332,1342 **** for (int i = 0; i < tabCount; i++) { width = calculateTabWidth(tabPlacement, i, fm); ! // The proper instances should exists because // assureRectsCreated() was being run already. rects[i].setBounds(runWidth, top, width, maxHeight); ! runWidth += width; } tabAreaRect.width = tabPane.getWidth() - insets.left - insets.right; --- 1332,1342 ---- for (int i = 0; i < tabCount; i++) { width = calculateTabWidth(tabPlacement, i, fm); ! // The proper instances should exists because // assureRectsCreated() was being run already. rects[i].setBounds(runWidth, top, width, maxHeight); ! runWidth += width; } tabAreaRect.width = tabPane.getWidth() - insets.left - insets.right; *************** public class BasicTabbedPaneUI extends T *** 1396,1402 **** tabAreaRect.x = contentRect.x + contentRect.width; } } ! // Unlike the behavior in the WRAP_TAB_LAYOUT the selected // tab is not padded specially. } --- 1396,1402 ---- tabAreaRect.x = contentRect.x + contentRect.width; } } ! // Unlike the behavior in the WRAP_TAB_LAYOUT the selected // tab is not padded specially. } *************** public class BasicTabbedPaneUI extends T *** 1415,1421 **** if (tabCount == 0) return; int tabPlacement = tabPane.getTabPlacement(); ! if (tabPlacement == SwingConstants.TOP || tabPlacement == SwingConstants.BOTTOM) { --- 1415,1421 ---- if (tabCount == 0) return; int tabPlacement = tabPane.getTabPlacement(); ! if (tabPlacement == SwingConstants.TOP || tabPlacement == SwingConstants.BOTTOM) { *************** public class BasicTabbedPaneUI extends T *** 1452,1462 **** - incrDims.height, incrDims.width, incrDims.height); } ! tabAreaRect.width -= decrDims.width + incrDims.width; ! updateButtons(); ! incrButton.setVisible(true); decrButton.setVisible(true); } --- 1452,1462 ---- - incrDims.height, incrDims.width, incrDims.height); } ! tabAreaRect.width -= decrDims.width + incrDims.width; ! updateButtons(); ! incrButton.setVisible(true); decrButton.setVisible(true); } *************** public class BasicTabbedPaneUI extends T *** 1464,1470 **** { incrButton.setVisible(false); decrButton.setVisible(false); ! currentScrollOffset = 0; currentScrollLocation = 0; } --- 1464,1470 ---- { incrButton.setVisible(false); decrButton.setVisible(false); ! currentScrollOffset = 0; currentScrollLocation = 0; } *************** public class BasicTabbedPaneUI extends T *** 1524,1532 **** } viewport.setBounds(tabAreaRect.x, tabAreaRect.y, tabAreaRect.width, tabAreaRect.height); ! updateViewPosition(); ! viewport.repaint(); } } --- 1524,1532 ---- } viewport.setBounds(tabAreaRect.x, tabAreaRect.y, tabAreaRect.width, tabAreaRect.height); ! updateViewPosition(); ! viewport.repaint(); } } *************** public class BasicTabbedPaneUI extends T *** 1550,1556 **** { selectedRun = getRunForTab(tabPane.getTabCount(), tabPane.getSelectedIndex()); ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.WRAP_TAB_LAYOUT) tabPane.revalidate(); tabPane.repaint(); --- 1550,1556 ---- { selectedRun = getRunForTab(tabPane.getTabCount(), tabPane.getSelectedIndex()); ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.WRAP_TAB_LAYOUT) tabPane.revalidate(); tabPane.repaint(); *************** public class BasicTabbedPaneUI extends T *** 1587,1593 **** else g.fillRect(0, currentScrollOffset, tabAreaRect.width, tabAreaRect.height); ! paintTabArea(g, placement, tabPane.getSelectedIndex()); } } --- 1587,1593 ---- else g.fillRect(0, currentScrollOffset, tabAreaRect.width, tabAreaRect.height); ! paintTabArea(g, placement, tabPane.getSelectedIndex()); } } *************** public class BasicTabbedPaneUI extends T *** 1649,1655 **** /** The starting visible tab in the run in SCROLL_TAB_MODE. * This is package-private to avoid an accessor method. */ transient int currentScrollLocation; ! transient int currentScrollOffset; /** A reusable rectangle. */ --- 1649,1655 ---- /** The starting visible tab in the run in SCROLL_TAB_MODE. * This is package-private to avoid an accessor method. */ transient int currentScrollLocation; ! transient int currentScrollOffset; /** A reusable rectangle. */ *************** public class BasicTabbedPaneUI extends T *** 1789,1801 **** * The currently visible component. */ private Component visibleComponent; ! private Color selectedColor; ! private Rectangle tempTextRect = new Rectangle(); ! private Rectangle tempIconRect = new Rectangle(); ! /** * Creates a new BasicTabbedPaneUI object. */ --- 1789,1801 ---- * The currently visible component. */ private Component visibleComponent; ! private Color selectedColor; ! private Rectangle tempTextRect = new Rectangle(); ! private Rectangle tempIconRect = new Rectangle(); ! /** * Creates a new BasicTabbedPaneUI object. */ *************** public class BasicTabbedPaneUI extends T *** 1884,1893 **** Point p = new Point(w, h); return p; } ! /** TabbedPanes in scrolling mode should use this method to * scroll properly to the tab given by the index argument. ! * * @param index The tab to scroll to. * @param placement The tab's placement. */ --- 1884,1893 ---- Point p = new Point(w, h); return p; } ! /** TabbedPanes in scrolling mode should use this method to * scroll properly to the tab given by the index argument. ! * * @param index The tab to scroll to. * @param placement The tab's placement. */ *************** public class BasicTabbedPaneUI extends T *** 1902,1908 **** switch (placement) { case JTabbedPane.TOP: ! case JTabbedPane.BOTTOM: if ((diff = rects[index].x + rects[index].width - decrButton.getX() - currentScrollOffset) > 0) --- 1902,1908 ---- switch (placement) { case JTabbedPane.TOP: ! case JTabbedPane.BOTTOM: if ((diff = rects[index].x + rects[index].width - decrButton.getX() - currentScrollOffset) > 0) *************** public class BasicTabbedPaneUI extends T *** 1930,1946 **** else currentScrollOffset += diff; } ! currentScrollLocation = tabForCoordinate(tabPane, rects[index].x, currentScrollOffset); } ! updateViewPosition(); updateButtons(); } } ! /** Sets the enabled state of the increase and decrease button * according to the current scrolling offset and tab pane width * (or height in TOP/BOTTOM placement). --- 1930,1946 ---- else currentScrollOffset += diff; } ! currentScrollLocation = tabForCoordinate(tabPane, rects[index].x, currentScrollOffset); } ! updateViewPosition(); updateButtons(); } } ! /** Sets the enabled state of the increase and decrease button * according to the current scrolling offset and tab pane width * (or height in TOP/BOTTOM placement). *************** public class BasicTabbedPaneUI extends T *** 1948,1954 **** final void updateButtons() { int tc = tabPane.getTabCount(); ! // The increase button should be enabled as long as the // right/bottom border of the last tab is under the left/top // border of the decrease button. --- 1948,1954 ---- final void updateButtons() { int tc = tabPane.getTabCount(); ! // The increase button should be enabled as long as the // right/bottom border of the last tab is under the left/top // border of the decrease button. *************** public class BasicTabbedPaneUI extends T *** 1978,1984 **** final void updateViewPosition() { Point p = viewport.getViewPosition(); ! // The unneeded coordinate must be set to zero // in order to correctly handle placement changes. switch (tabPane.getTabPlacement()) --- 1978,1984 ---- final void updateViewPosition() { Point p = viewport.getViewPosition(); ! // The unneeded coordinate must be set to zero // in order to correctly handle placement changes. switch (tabPane.getTabPlacement()) *************** public class BasicTabbedPaneUI extends T *** 1992,2001 **** p.x = currentScrollOffset; p.y = 0; } ! viewport.setViewPosition(p); } ! /** * This method creates a new BasicTabbedPaneUI. * --- 1992,2001 ---- p.x = currentScrollOffset; p.y = 0; } ! viewport.setViewPosition(p); } ! /** * This method creates a new BasicTabbedPaneUI. * *************** public class BasicTabbedPaneUI extends T *** 2019,2030 **** if (c instanceof JTabbedPane) { tabPane = (JTabbedPane) c; ! installComponents(); installDefaults(); installListeners(); installKeyboardActions(); ! layoutManager = createLayoutManager(); tabPane.setLayout(layoutManager); } --- 2019,2030 ---- if (c instanceof JTabbedPane) { tabPane = (JTabbedPane) c; ! installComponents(); installDefaults(); installListeners(); installKeyboardActions(); ! layoutManager = createLayoutManager(); tabPane.setLayout(layoutManager); } *************** public class BasicTabbedPaneUI extends T *** 2063,2069 **** { runCount = 1; tabRuns[0] = 0; ! incrButton = createIncreaseButton(); incrButton.addMouseListener(mouseListener); --- 2063,2069 ---- { runCount = 1; tabRuns[0] = 0; ! incrButton = createIncreaseButton(); incrButton.addMouseListener(mouseListener); *************** public class BasicTabbedPaneUI extends T *** 2075,2090 **** panel.setSize(Integer.MAX_VALUE, Integer.MAX_VALUE); panel.addMouseListener(mouseListener); panel.addFocusListener(focusListener); ! viewport = new ScrollingViewport(); viewport.setBackground(Color.LIGHT_GRAY); viewport.setView(panel); viewport.setLayout(null); ! tabPane.add(incrButton); tabPane.add(decrButton); tabPane.add(viewport); ! return new TabbedPaneScrollLayout(); } } --- 2075,2090 ---- panel.setSize(Integer.MAX_VALUE, Integer.MAX_VALUE); panel.addMouseListener(mouseListener); panel.addFocusListener(focusListener); ! viewport = new ScrollingViewport(); viewport.setBackground(Color.LIGHT_GRAY); viewport.setView(panel); viewport.setLayout(null); ! tabPane.add(incrButton); tabPane.add(decrButton); tabPane.add(viewport); ! return new TabbedPaneScrollLayout(); } } *************** public class BasicTabbedPaneUI extends T *** 2104,2110 **** { if (incrButton != null) tabPane.remove(incrButton); ! if (decrButton != null) tabPane.remove(decrButton); --- 2104,2110 ---- { if (incrButton != null) tabPane.remove(incrButton); ! if (decrButton != null) tabPane.remove(decrButton); *************** public class BasicTabbedPaneUI extends T *** 2140,2146 **** contentBorderInsets = UIManager.getInsets("TabbedPane.contentBorderInsets"); tabsOpaque = UIManager.getBoolean("TabbedPane.tabsOpaque"); ! // Although 'TabbedPane.contentAreaColor' is not defined in the defaults // of BasicLookAndFeel it is used by this class. selectedColor = UIManager.getColor("TabbedPane.contentAreaColor"); --- 2140,2146 ---- contentBorderInsets = UIManager.getInsets("TabbedPane.contentBorderInsets"); tabsOpaque = UIManager.getBoolean("TabbedPane.tabsOpaque"); ! // Although 'TabbedPane.contentAreaColor' is not defined in the defaults // of BasicLookAndFeel it is used by this class. selectedColor = UIManager.getColor("TabbedPane.contentAreaColor"); *************** public class BasicTabbedPaneUI extends T *** 2162,2168 **** tabAreaRect = null; contentRect = null; tabRuns = null; ! tempIconRect = null; tempTextRect = null; --- 2162,2168 ---- tabAreaRect = null; contentRect = null; tabRuns = null; ! tempIconRect = null; tempTextRect = null; *************** public class BasicTabbedPaneUI extends T *** 2176,2182 **** shadow = null; lightHighlight = null; highlight = null; ! selectedColor = null; } --- 2176,2182 ---- shadow = null; lightHighlight = null; highlight = null; ! selectedColor = null; } *************** public class BasicTabbedPaneUI extends T *** 2205,2217 **** tabPane.removePropertyChangeListener(propertyChangeListener); tabPane.removeChangeListener(tabChangeListener); tabPane.removeMouseListener(mouseListener); ! if (incrButton != null) incrButton.removeMouseListener(mouseListener); ! if (decrButton != null) decrButton.removeMouseListener(mouseListener); ! if (panel != null) { panel.removeMouseListener(mouseListener); --- 2205,2217 ---- tabPane.removePropertyChangeListener(propertyChangeListener); tabPane.removeChangeListener(tabChangeListener); tabPane.removeMouseListener(mouseListener); ! if (incrButton != null) incrButton.removeMouseListener(mouseListener); ! if (decrButton != null) decrButton.removeMouseListener(mouseListener); ! if (panel != null) { panel.removeMouseListener(mouseListener); *************** public class BasicTabbedPaneUI extends T *** 2277,2283 **** .replaceUIInputMap(tabPane, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, keyMap); ! ActionMap map = getActionMap(); SwingUtilities.replaceUIActionMap(tabPane, map); } --- 2277,2283 ---- .replaceUIInputMap(tabPane, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, keyMap); ! ActionMap map = getActionMap(); SwingUtilities.replaceUIActionMap(tabPane, map); } *************** public class BasicTabbedPaneUI extends T *** 2332,2342 **** if (tabPane.getTabCount() == 0) return; ! int index = tabPane.getSelectedIndex(); if (index < 0) index = 0; ! int tabPlacement = tabPane.getTabPlacement(); // Paint the tab area only in WRAP_TAB_LAYOUT Mode from this method --- 2332,2342 ---- if (tabPane.getTabCount() == 0) return; ! int index = tabPane.getSelectedIndex(); if (index < 0) index = 0; ! int tabPlacement = tabPane.getTabPlacement(); // Paint the tab area only in WRAP_TAB_LAYOUT Mode from this method *************** public class BasicTabbedPaneUI extends T *** 2349,2355 **** tabAreaRect.width, tabAreaRect.height); paintTabArea(g, tabPlacement, index); } ! paintContentBorder(g, tabPlacement, index); } --- 2349,2355 ---- tabAreaRect.width, tabAreaRect.height); paintTabArea(g, tabPlacement, index); } ! paintContentBorder(g, tabPlacement, index); } *************** public class BasicTabbedPaneUI extends T *** 2363,2371 **** */ protected void paintTabArea(Graphics g, int tabPlacement, int selectedIndex) { ! // Please note: the ordering of the painting is important. // we WANT to paint the outermost run first and then work our way in. ! // The following drawing code works for both tab layouts. int tabCount = tabPane.getTabCount(); --- 2363,2371 ---- */ protected void paintTabArea(Graphics g, int tabPlacement, int selectedIndex) { ! // Please note: the ordering of the painting is important. // we WANT to paint the outermost run first and then work our way in. ! // The following drawing code works for both tab layouts. int tabCount = tabPane.getTabCount(); *************** public class BasicTabbedPaneUI extends T *** 2387,2393 **** } } } ! // Paint selected tab in front of every other tab. if (selectedIndex >= 0) paintTab(g, tabPlacement, rects, selectedIndex, --- 2387,2393 ---- } } } ! // Paint selected tab in front of every other tab. if (selectedIndex >= 0) paintTab(g, tabPlacement, rects, selectedIndex, *************** public class BasicTabbedPaneUI extends T *** 2430,2439 **** // Paint the text. paintText(g, tabPlacement, tabPane.getFont(), fm, tabIndex, title, textRect, isSelected); ! // Paint icon if necessary. paintIcon(g, tabPlacement, tabIndex, icon, iconRect, isSelected); ! // Paint focus indicator. paintFocusIndicator(g, tabPlacement, rects, tabIndex, iconRect, textRect, isSelected); --- 2430,2439 ---- // Paint the text. paintText(g, tabPlacement, tabPane.getFont(), fm, tabIndex, title, textRect, isSelected); ! // Paint icon if necessary. paintIcon(g, tabPlacement, tabIndex, icon, iconRect, isSelected); ! // Paint focus indicator. paintFocusIndicator(g, tabPlacement, rects, tabIndex, iconRect, textRect, isSelected); *************** public class BasicTabbedPaneUI extends T *** 2675,2681 **** w = rect.width - 6; h = rect.height - 5; } ! BasicGraphicsUtils.drawDashedRect(g, x, y, w, h); } } --- 2675,2681 ---- w = rect.width - 6; h = rect.height - 5; } ! BasicGraphicsUtils.drawDashedRect(g, x, y, w, h); } } *************** public class BasicTabbedPaneUI extends T *** 2707,2750 **** g.setColor(darkShadow); // Outer right line. g.drawLine(x + w - 1, y + 2, x + w - 1, y + h); ! // Upper right corner. g.drawLine(x + w - 2, y + 1, x + w - 1, y + 2); ! g.setColor(lightHighlight); ! // Left line. g.drawLine(x, y + 3, x, y + h); ! // Upper line. g.drawLine(x + 3, y, x + w - 3, y); ! // Upper left corner. g.drawLine(x, y + 2, x + 2, y); ! break; case SwingConstants.LEFT: g.setColor(lightHighlight); // Top line. g.drawLine(x + 3, y, x + w - 1, y); ! // Top left border. g.drawLine(x + 2, y, x, y + 2); ! // Left line. g.drawLine(x, y + 3, x, y + h - 4); ! // Bottom left corner. g.drawLine(x, y + h - 3, x + 1, y + h - 2); ! g.setColor(darkShadow); // Outer bottom line. g.drawLine(x + 2, y + h - 1, x + w - 1, y + h - 1); ! g.setColor(shadow); // Inner bottom line. g.drawLine(x + 2, y + h - 2, x + w - 1, y + h - 2); ! break; case SwingConstants.BOTTOM: g.setColor(shadow); --- 2707,2750 ---- g.setColor(darkShadow); // Outer right line. g.drawLine(x + w - 1, y + 2, x + w - 1, y + h); ! // Upper right corner. g.drawLine(x + w - 2, y + 1, x + w - 1, y + 2); ! g.setColor(lightHighlight); ! // Left line. g.drawLine(x, y + 3, x, y + h); ! // Upper line. g.drawLine(x + 3, y, x + w - 3, y); ! // Upper left corner. g.drawLine(x, y + 2, x + 2, y); ! break; case SwingConstants.LEFT: g.setColor(lightHighlight); // Top line. g.drawLine(x + 3, y, x + w - 1, y); ! // Top left border. g.drawLine(x + 2, y, x, y + 2); ! // Left line. g.drawLine(x, y + 3, x, y + h - 4); ! // Bottom left corner. g.drawLine(x, y + h - 3, x + 1, y + h - 2); ! g.setColor(darkShadow); // Outer bottom line. g.drawLine(x + 2, y + h - 1, x + w - 1, y + h - 1); ! g.setColor(shadow); // Inner bottom line. g.drawLine(x + 2, y + h - 2, x + w - 1, y + h - 2); ! break; case SwingConstants.BOTTOM: g.setColor(shadow); *************** public class BasicTabbedPaneUI extends T *** 2757,2773 **** g.setColor(darkShadow); // Outer right line. g.drawLine(x + w - 1, y, x + w - 1, y + h - 3); ! // Bottom right corner. g.drawLine(x + w - 1, y + h - 2, x + w - 3, y + h); ! // Bottom line. g.drawLine(x + 2, y + h, x + w - 4, y + h); ! g.setColor(lightHighlight); // Left line. g.drawLine(x, y, x, y + h - 3); ! // Bottom left corner. g.drawLine(x, y + h - 2, x + 1, y + h - 1); break; --- 2757,2773 ---- g.setColor(darkShadow); // Outer right line. g.drawLine(x + w - 1, y, x + w - 1, y + h - 3); ! // Bottom right corner. g.drawLine(x + w - 1, y + h - 2, x + w - 3, y + h); ! // Bottom line. g.drawLine(x + 2, y + h, x + w - 4, y + h); ! g.setColor(lightHighlight); // Left line. g.drawLine(x, y, x, y + h - 3); ! // Bottom left corner. g.drawLine(x, y + h - 2, x + 1, y + h - 1); break; *************** public class BasicTabbedPaneUI extends T *** 2775,2805 **** g.setColor(lightHighlight); // Top line. g.drawLine(x, y, x + w - 3, y); ! g.setColor(darkShadow); // Top right corner. g.drawLine(x + w - 2, y + 1, x + w - 1, y + 2); ! // Outer right line. g.drawLine(x + w - 1, y + 3, x + w - 1, y + h - 3); ! // Bottom right corner. g.drawLine(x + w - 2, y + h - 2, x + w - 3, y + h - 1); ! // Bottom line. g.drawLine(x, y + h - 1, x + w - 4, y + h - 1); ! g.setColor(shadow); ! // Inner right line. g.drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); ! // Inner bottom line. g.drawLine(x, y + h - 2, x + w - 3, y + h - 2); ! break; } ! g.setColor(saved); } --- 2775,2805 ---- g.setColor(lightHighlight); // Top line. g.drawLine(x, y, x + w - 3, y); ! g.setColor(darkShadow); // Top right corner. g.drawLine(x + w - 2, y + 1, x + w - 1, y + 2); ! // Outer right line. g.drawLine(x + w - 1, y + 3, x + w - 1, y + h - 3); ! // Bottom right corner. g.drawLine(x + w - 2, y + h - 2, x + w - 3, y + h - 1); ! // Bottom line. g.drawLine(x, y + h - 1, x + w - 4, y + h - 1); ! g.setColor(shadow); ! // Inner right line. g.drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); ! // Inner bottom line. g.drawLine(x, y + h - 2, x + w - 3, y + h - 2); ! break; } ! g.setColor(saved); } *************** public class BasicTabbedPaneUI extends T *** 2820,2826 **** boolean isSelected) { Color saved = g.getColor(); ! if (isSelected) g.setColor(selectedColor); else --- 2820,2826 ---- boolean isSelected) { Color saved = g.getColor(); ! if (isSelected) g.setColor(selectedColor); else *************** public class BasicTabbedPaneUI extends T *** 2931,2947 **** { g.drawLine(x, y, startgap, y); g.drawLine(endgap, y, x + w - 1, y); ! g.setColor(selectedColor); g.drawLine(startgap, y, endgap - 1, y); } else g.drawLine(x, y, x + w, y); ! g.setColor(selectedColor); g.drawLine(x, y + 1, x + w - 1, y + 1); g.drawLine(x, y + 2, x + w - 1, y + 2); ! g.setColor(saved); } --- 2931,2947 ---- { g.drawLine(x, y, startgap, y); g.drawLine(endgap, y, x + w - 1, y); ! g.setColor(selectedColor); g.drawLine(startgap, y, endgap - 1, y); } else g.drawLine(x, y, x + w, y); ! g.setColor(selectedColor); g.drawLine(x, y + 1, x + w - 1, y + 1); g.drawLine(x, y + 2, x + w - 1, y + 2); ! g.setColor(saved); } *************** public class BasicTabbedPaneUI extends T *** 2971,2983 **** { g.drawLine(x, y, x, startgap); g.drawLine(x, endgap, x, y + h - 1); ! g.setColor(selectedColor); g.drawLine(x, startgap, x, endgap - 1); } else g.drawLine(x, y, x, y + h - 1); ! g.setColor(selectedColor); g.drawLine(x + 1, y + 1, x + 1, y + h - 4); --- 2971,2983 ---- { g.drawLine(x, y, x, startgap); g.drawLine(x, endgap, x, y + h - 1); ! g.setColor(selectedColor); g.drawLine(x, startgap, x, endgap - 1); } else g.drawLine(x, y, x, y + h - 1); ! g.setColor(selectedColor); g.drawLine(x + 1, y + 1, x + 1, y + h - 4); *************** public class BasicTabbedPaneUI extends T *** 3014,3020 **** g.setColor(darkShadow); g.drawLine(x, y + h - 1, startgap , y + h - 1); g.drawLine(endgap, y + h - 1, x + w - 1, y + h - 1); ! g.setColor(selectedColor); g.drawLine(startgap, y + h - 1, endgap - 1, y + h - 1); g.drawLine(startgap, y + h - 2, endgap - 1, y + h - 2); --- 3014,3020 ---- g.setColor(darkShadow); g.drawLine(x, y + h - 1, startgap , y + h - 1); g.drawLine(endgap, y + h - 1, x + w - 1, y + h - 1); ! g.setColor(selectedColor); g.drawLine(startgap, y + h - 1, endgap - 1, y + h - 1); g.drawLine(startgap, y + h - 2, endgap - 1, y + h - 2); *************** public class BasicTabbedPaneUI extends T *** 3026,3032 **** g.setColor(darkShadow); g.drawLine(x, y + h - 1, x + w - 1, y + h - 1); } ! g.setColor(selectedColor); g.drawLine(x + 1, y + h - 3, x + w - 2, y + h - 3); --- 3026,3032 ---- g.setColor(darkShadow); g.drawLine(x, y + h - 1, x + w - 1, y + h - 1); } ! g.setColor(selectedColor); g.drawLine(x + 1, y + h - 3, x + w - 2, y + h - 3); *************** public class BasicTabbedPaneUI extends T *** 3062,3068 **** g.setColor(darkShadow); g.drawLine(x + w - 1, y, x + w - 1, startgap); g.drawLine(x + w - 1, endgap, x + w - 1, y + h - 2); ! g.setColor(selectedColor); g.drawLine(x + w - 2, startgap, x + w - 2, endgap - 1); g.drawLine(x + w - 1, startgap, x + w - 1, endgap - 1); --- 3062,3068 ---- g.setColor(darkShadow); g.drawLine(x + w - 1, y, x + w - 1, startgap); g.drawLine(x + w - 1, endgap, x + w - 1, y + h - 2); ! g.setColor(selectedColor); g.drawLine(x + w - 2, startgap, x + w - 2, endgap - 1); g.drawLine(x + w - 1, startgap, x + w - 1, endgap - 1); *************** public class BasicTabbedPaneUI extends T *** 3074,3080 **** g.setColor(darkShadow); g.drawLine(x + w - 1, y, x + w - 1, y + h - 2); } ! g.setColor(selectedColor); g.drawLine(x + w - 3, y + 1, x + w - 3, y + h - 4); --- 3074,3080 ---- g.setColor(darkShadow); g.drawLine(x + w - 1, y, x + w - 1, y + h - 2); } ! g.setColor(selectedColor); g.drawLine(x + w - 3, y + 1, x + w - 3, y + h - 4); *************** public class BasicTabbedPaneUI extends T *** 3085,3094 **** *

                                            This method returns the bounds of a tab for the given index * and shifts it by the current scrolling offset if the tabbed * pane is in scrolling tab layout mode.

                                            ! * *

                                            Subclassses should retrievs a tab's bounds by this method * if they want to find out whether the tab is currently visible.

                                            ! * * @param pane The JTabbedPane. * @param i The index to look for. * --- 3085,3094 ---- *

                                            This method returns the bounds of a tab for the given index * and shifts it by the current scrolling offset if the tabbed * pane is in scrolling tab layout mode.

                                            ! * *

                                            Subclassses should retrievs a tab's bounds by this method * if they want to find out whether the tab is currently visible.

                                            ! * * @param pane The JTabbedPane. * @param i The index to look for. * *************** public class BasicTabbedPaneUI extends T *** 3099,3111 **** // Need to re-layout container if tab does not exist. if (i >= rects.length) layoutManager.layoutContainer(pane); ! // Properly shift coordinates if scrolling has taken // place. if (pane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) { Rectangle r = new Rectangle(rects[i]); ! switch(pane.getTabPlacement()) { case SwingConstants.TOP: --- 3099,3111 ---- // Need to re-layout container if tab does not exist. if (i >= rects.length) layoutManager.layoutContainer(pane); ! // Properly shift coordinates if scrolling has taken // place. if (pane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) { Rectangle r = new Rectangle(rects[i]); ! switch(pane.getTabPlacement()) { case SwingConstants.TOP: *************** public class BasicTabbedPaneUI extends T *** 3115,3124 **** default: r.y -= currentScrollOffset; } ! return r; } ! return rects[i]; } --- 3115,3124 ---- default: r.y -= currentScrollOffset; } ! return r; } ! return rects[i]; } *************** public class BasicTabbedPaneUI extends T *** 3148,3156 **** // Note: This code is tab layout mode agnostic. if (! tabPane.isValid()) tabPane.validate(); ! int tabCount = tabPane.getTabCount(); ! // If the user clicked outside of any tab rect the // selection should not change. int index = tabPane.getSelectedIndex(); --- 3148,3156 ---- // Note: This code is tab layout mode agnostic. if (! tabPane.isValid()) tabPane.validate(); ! int tabCount = tabPane.getTabCount(); ! // If the user clicked outside of any tab rect the // selection should not change. int index = tabPane.getSelectedIndex(); *************** public class BasicTabbedPaneUI extends T *** 3168,3174 **** /** *

                                            This method returns the tab bounds in the given rectangle.

                                            ! * *

                                            The returned rectangle will be shifted by the current scroll * offset if the tabbed pane is in scrolling tab layout mode.

                                            . * --- 3168,3174 ---- /** *

                                            This method returns the tab bounds in the given rectangle.

                                            ! * *

                                            The returned rectangle will be shifted by the current scroll * offset if the tabbed pane is in scrolling tab layout mode.

                                            . * *************** public class BasicTabbedPaneUI extends T *** 3652,3658 **** { current = getNextTabIndexInRun(tabPane.getTabCount(), current); ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) scrollTab(current, tabPane.getTabPlacement()); --- 3652,3658 ---- { current = getNextTabIndexInRun(tabPane.getTabCount(), current); ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) scrollTab(current, tabPane.getTabPlacement()); *************** public class BasicTabbedPaneUI extends T *** 3668,3674 **** { current = getPreviousTabIndexInRun(tabPane.getTabCount(), current); ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) scrollTab(current, tabPane.getTabPlacement()); --- 3668,3674 ---- { current = getPreviousTabIndexInRun(tabPane.getTabCount(), current); ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) scrollTab(current, tabPane.getTabPlacement()); *************** public class BasicTabbedPaneUI extends T *** 3698,3704 **** protected void selectPreviousTab(int current) { current = getPreviousTabIndex(current); ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) scrollTab(current, tabPane.getTabPlacement()); --- 3698,3704 ---- protected void selectPreviousTab(int current) { current = getPreviousTabIndex(current); ! if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) scrollTab(current, tabPane.getTabPlacement()); *************** public class BasicTabbedPaneUI extends T *** 3825,3834 **** int index = getNextTabIndex(base); int run = getRunForTab(tabCount, base); if (base == lastTabInRun(tabCount, run)) ! index = (run > 0) ? lastTabInRun(tabCount, getPreviousTabRun(run)) + 1 : 0; ! return index; } --- 3825,3834 ---- int index = getNextTabIndex(base); int run = getRunForTab(tabCount, base); if (base == lastTabInRun(tabCount, run)) ! index = (run > 0) ? lastTabInRun(tabCount, getPreviousTabRun(run)) + 1 : 0; ! return index; } *************** public class BasicTabbedPaneUI extends T *** 3847,3853 **** int run = getRunForTab(tabCount, base); if (index == lastTabInRun(tabCount, getPreviousTabRun(run))) index = lastTabInRun(tabCount, run); ! return index; } --- 3847,3853 ---- int run = getRunForTab(tabCount, base); if (index == lastTabInRun(tabCount, getPreviousTabRun(run))) index = lastTabInRun(tabCount, run); ! return index; } *************** public class BasicTabbedPaneUI extends T *** 3933,3940 **** break; } } ! ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("TabbedPane.actionMap"); --- 3933,3940 ---- break; } } ! ! ActionMap getActionMap() { ActionMap map = (ActionMap) UIManager.get("TabbedPane.actionMap"); *************** public class BasicTabbedPaneUI extends T *** 3950,3974 **** ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("navigatePageDown", new NavigatePageDownAction()); map.put("navigatePageUp", new NavigatePageUpAction()); map.put("navigateDown", new NavigateAction("navigateDown", SwingConstants.SOUTH)); ! map.put("navigateUp", new NavigateAction("navigateUp", SwingConstants.NORTH)); ! map.put("navigateLeft", new NavigateAction("navigateLeft", SwingConstants.WEST)); ! map.put("navigateRight", new NavigateAction("navigateRight", SwingConstants.EAST)); ! map.put("requestFocusForVisibleComponent", new RequestFocusForVisibleComponentAction()); map.put("requestFocus", new RequestFocusAction()); ! return map; } --- 3950,3974 ---- ActionMap createActionMap() { ActionMap map = new ActionMapUIResource(); ! map.put("navigatePageDown", new NavigatePageDownAction()); map.put("navigatePageUp", new NavigatePageUpAction()); map.put("navigateDown", new NavigateAction("navigateDown", SwingConstants.SOUTH)); ! map.put("navigateUp", new NavigateAction("navigateUp", SwingConstants.NORTH)); ! map.put("navigateLeft", new NavigateAction("navigateLeft", SwingConstants.WEST)); ! map.put("navigateRight", new NavigateAction("navigateRight", SwingConstants.EAST)); ! map.put("requestFocusForVisibleComponent", new RequestFocusForVisibleComponentAction()); map.put("requestFocus", new RequestFocusAction()); ! return map; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicTableHeaderUI extends *** 71,98 **** * where mouse cursor changes shape into "resize" */ static int COLUMN_BOUNDARY_TOLERANCE = 3; ! public static ComponentUI createUI(JComponent h) { return new BasicTableHeaderUI(); } ! /** * The table header that is using this interface. */ protected JTableHeader header; ! /** * The mouse input listener, responsible for mouse manipulations with * the table header. */ protected MouseInputListener mouseInputListener; ! /** * Paint the header cell. */ protected CellRendererPane rendererPane; ! /** * The header cell border. */ --- 71,98 ---- * where mouse cursor changes shape into "resize" */ static int COLUMN_BOUNDARY_TOLERANCE = 3; ! public static ComponentUI createUI(JComponent h) { return new BasicTableHeaderUI(); } ! /** * The table header that is using this interface. */ protected JTableHeader header; ! /** * The mouse input listener, responsible for mouse manipulations with * the table header. */ protected MouseInputListener mouseInputListener; ! /** * Paint the header cell. */ protected CellRendererPane rendererPane; ! /** * The header cell border. */ *************** public class BasicTableHeaderUI extends *** 102,113 **** * Original mouse cursor prior to resizing. */ private Cursor originalCursor; ! /** * If not null, one of the columns is currently being dragged. */ Rectangle draggingHeaderRect; ! /** * Handles column movement and rearrangement by mouse. The same instance works * both as mouse listener and the mouse motion listner. --- 102,113 ---- * Original mouse cursor prior to resizing. */ private Cursor originalCursor; ! /** * If not null, one of the columns is currently being dragged. */ Rectangle draggingHeaderRect; ! /** * Handles column movement and rearrangement by mouse. The same instance works * both as mouse listener and the mouse motion listner. *************** public class BasicTableHeaderUI extends *** 117,123 **** { /** * If true, the cursor is being already shown in the alternative "resize" ! * shape. */ boolean showingResizeCursor; --- 117,123 ---- { /** * If true, the cursor is being already shown in the alternative "resize" ! * shape. */ boolean showingResizeCursor; *************** public class BasicTableHeaderUI extends *** 127,137 **** * column dragging). */ int draggingFrom = - 1; ! /** * The number of the column being dragged. */ ! int draggingColumnNumber; /** * The previous preferred width of the column. --- 127,137 ---- * column dragging). */ int draggingFrom = - 1; ! /** * The number of the column being dragged. */ ! int draggingColumnNumber; /** * The previous preferred width of the column. *************** public class BasicTableHeaderUI extends *** 245,251 **** if (onBoundary) { ! originalCursor = header.getCursor(); if (p < x) header.setCursor(Cursor.getPredefinedCursor( Cursor.W_RESIZE_CURSOR)); --- 245,251 ---- if (onBoundary) { ! originalCursor = header.getCursor(); if (p < x) header.setCursor(Cursor.getPredefinedCursor( Cursor.W_RESIZE_CURSOR)); *************** public class BasicTableHeaderUI extends *** 351,357 **** /** * Stop the dragging session. ! * * @param e the "mouse release" mouse event, needed to determing the final * location for the dragged column. */ --- 351,357 ---- /** * Stop the dragging session. ! * * @param e the "mouse release" mouse event, needed to determing the final * location for the dragged column. */ *************** public class BasicTableHeaderUI extends *** 365,375 **** // Find where have we dragged the column. int x = e.getX(); int p = 0; ! int col = model.getColumnCount() - 1; int n = model.getColumnCount(); ! // This loop does not find the column if the mouse if out of the // right boundary of the table header. Then we make this column the // rightmost column. Scan: for (int i = 0; i < n; i++) --- 365,375 ---- // Find where have we dragged the column. int x = e.getX(); int p = 0; ! int col = model.getColumnCount() - 1; int n = model.getColumnCount(); ! // This loop does not find the column if the mouse if out of the // right boundary of the table header. Then we make this column the // rightmost column. Scan: for (int i = 0; i < n; i++) *************** public class BasicTableHeaderUI extends *** 385,401 **** header.getTable().moveColumn(draggingColumnNumber, col); } } ! /** * Create and return the mouse input listener. ! * * @return the mouse listener ({@link MouseInputHandler}, if not overridden. */ protected MouseInputListener createMouseInputListener() { return new MouseInputHandler(); } ! /** * Construct a new BasicTableHeaderUI, create mouse listeners. */ --- 385,401 ---- header.getTable().moveColumn(draggingColumnNumber, col); } } ! /** * Create and return the mouse input listener. ! * * @return the mouse listener ({@link MouseInputHandler}, if not overridden. */ protected MouseInputListener createMouseInputListener() { return new MouseInputHandler(); } ! /** * Construct a new BasicTableHeaderUI, create mouse listeners. */ *************** public class BasicTableHeaderUI extends *** 448,454 **** { // AFAICS, the RI does nothing here. } ! /** * Remove the previously installed listeners. */ --- 448,454 ---- { // AFAICS, the RI does nothing here. } ! /** * Remove the previously installed listeners. */ *************** public class BasicTableHeaderUI extends *** 464,472 **** uninstallKeyboardActions(); uninstallDefaults(); } ! /** ! * Repaint the table header. */ public void paint(Graphics gfx, JComponent c) { --- 464,472 ---- uninstallKeyboardActions(); uninstallDefaults(); } ! /** ! * Repaint the table header. */ public void paint(Graphics gfx, JComponent c) { *************** public class BasicTableHeaderUI extends *** 474,480 **** int ncols = cmod.getColumnCount(); if (ncols == 0) return; ! Rectangle clip = gfx.getClipBounds(); TableCellRenderer defaultRend = header.getDefaultRenderer(); --- 474,480 ---- int ncols = cmod.getColumnCount(); if (ncols == 0) return; ! Rectangle clip = gfx.getClipBounds(); TableCellRenderer defaultRend = header.getDefaultRenderer(); *************** public class BasicTableHeaderUI extends *** 505,542 **** bounds.width, bounds.height); } } ! // This displays a running rectangle that is much simplier than the total // animation, as it is seen in Sun's application. // TODO animate the collumn dragging like in Sun's jre. if (draggingHeaderRect != null) { ! gfx.setColor(header.getForeground()); gfx.drawRect(draggingHeaderRect.x, draggingHeaderRect.y + 2, draggingHeaderRect.width - 1, draggingHeaderRect.height - 6); } } ! /** * Get the preferred header size. ! * * @param ignored unused ! * * @return the preferred size of the associated header. */ public Dimension getPreferredSize(JComponent ignored) { TableColumnModel cmod = header.getColumnModel(); TableCellRenderer defaultRend = header.getDefaultRenderer(); ! int ncols = cmod.getColumnCount(); Dimension ret = new Dimension(0, 0); int spacing = 0; ! if (header.getTable() != null && header.getTable().getIntercellSpacing() != null) spacing = header.getTable().getIntercellSpacing().width; ! ! for (int i = 0; i < ncols; ++i) { TableColumn col = cmod.getColumn(i); TableCellRenderer rend = col.getHeaderRenderer(); --- 505,542 ---- bounds.width, bounds.height); } } ! // This displays a running rectangle that is much simplier than the total // animation, as it is seen in Sun's application. // TODO animate the collumn dragging like in Sun's jre. if (draggingHeaderRect != null) { ! gfx.setColor(header.getForeground()); gfx.drawRect(draggingHeaderRect.x, draggingHeaderRect.y + 2, draggingHeaderRect.width - 1, draggingHeaderRect.height - 6); } } ! /** * Get the preferred header size. ! * * @param ignored unused ! * * @return the preferred size of the associated header. */ public Dimension getPreferredSize(JComponent ignored) { TableColumnModel cmod = header.getColumnModel(); TableCellRenderer defaultRend = header.getDefaultRenderer(); ! int ncols = cmod.getColumnCount(); Dimension ret = new Dimension(0, 0); int spacing = 0; ! if (header.getTable() != null && header.getTable().getIntercellSpacing() != null) spacing = header.getTable().getIntercellSpacing().width; ! ! for (int i = 0; i < ncols; ++i) { TableColumn col = cmod.getColumn(i); TableCellRenderer rend = col.getHeaderRenderer(); *************** public class BasicTableHeaderUI extends *** 556,566 **** Dimension d = comp.getPreferredSize(); ret.width += spacing; ! ret.height = Math.max(d.height, ret.height); } ret.width = cmod.getTotalColumnWidth(); return ret; } ! ! } --- 556,566 ---- Dimension d = comp.getPreferredSize(); ret.width += spacing; ! ret.height = Math.max(d.height, ret.height); } ret.width = cmod.getTotalColumnWidth(); return ret; } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.table.TableModel; *** 82,96 **** public class BasicTableUI extends TableUI { ! public static ComponentUI createUI(JComponent comp) { return new BasicTableUI(); } ! protected FocusListener focusListener; ! protected KeyListener keyListener; ! protected MouseInputListener mouseInputListener; ! protected CellRendererPane rendererPane; protected JTable table; /** The normal cell border. */ --- 82,96 ---- public class BasicTableUI extends TableUI { ! public static ComponentUI createUI(JComponent comp) { return new BasicTableUI(); } ! protected FocusListener focusListener; ! protected KeyListener keyListener; ! protected MouseInputListener mouseInputListener; ! protected CellRendererPane rendererPane; protected JTable table; /** The normal cell border. */ *************** public class BasicTableUI extends TableU *** 108,114 **** * Handles key events for the JTable. Key events should be handled through * the InputMap/ActionMap mechanism since JDK1.3. This class is only there * for backwards compatibility. ! * * @author Roman Kennke (kennke@aicas.com) */ public class KeyHandler implements KeyListener --- 108,114 ---- * Handles key events for the JTable. Key events should be handled through * the InputMap/ActionMap mechanism since JDK1.3. This class is only there * for backwards compatibility. ! * * @author Roman Kennke (kennke@aicas.com) */ public class KeyHandler implements KeyListener *************** public class BasicTableUI extends TableU *** 125,131 **** { // Key events should be handled through the InputMap/ActionMap mechanism // since JDK1.3. This class is only there for backwards compatibility. ! // Editor activation is a specific kind of response to ''any'' // character key. Hence it is handled here. if (!table.isEditing() && table.isEnabled()) --- 125,131 ---- { // Key events should be handled through the InputMap/ActionMap mechanism // since JDK1.3. This class is only there for backwards compatibility. ! // Editor activation is a specific kind of response to ''any'' // character key. Hence it is handled here. if (!table.isEditing() && table.isEnabled()) *************** public class BasicTableUI extends TableU *** 208,220 **** ListSelectionModel rowModel = table.getSelectionModel(); if (lo_row != -1 && hi_row != -1) { ! if (controlPressed && rowModel.getSelectionMode() != ListSelectionModel.SINGLE_SELECTION) rowModel.addSelectionInterval(lo_row, hi_row); else rowModel.setSelectionInterval(lo_row, hi_row); } ! // Update the columns int lo_col = table.columnAtPoint(begin); int hi_col = table.columnAtPoint(curr); --- 208,220 ---- ListSelectionModel rowModel = table.getSelectionModel(); if (lo_row != -1 && hi_row != -1) { ! if (controlPressed && rowModel.getSelectionMode() != ListSelectionModel.SINGLE_SELECTION) rowModel.addSelectionInterval(lo_row, hi_row); else rowModel.setSelectionInterval(lo_row, hi_row); } ! // Update the columns int lo_col = table.columnAtPoint(begin); int hi_col = table.columnAtPoint(curr); *************** public class BasicTableUI extends TableU *** 222,235 **** getSelectionModel(); if (lo_col != -1 && hi_col != -1) { ! if (controlPressed && colModel.getSelectionMode() != ListSelectionModel.SINGLE_SELECTION) colModel.addSelectionInterval(lo_col, hi_col); else colModel.setSelectionInterval(lo_col, hi_col); } } ! /** * For the double click, start the cell editor. */ --- 222,235 ---- getSelectionModel(); if (lo_col != -1 && hi_col != -1) { ! if (controlPressed && colModel.getSelectionMode() != ListSelectionModel.SINGLE_SELECTION) colModel.addSelectionInterval(lo_col, hi_col); else colModel.setSelectionInterval(lo_col, hi_col); } } ! /** * For the double click, start the cell editor. */ *************** public class BasicTableUI extends TableU *** 254,260 **** } } ! public void mouseDragged(MouseEvent e) { if (table.isEnabled()) { --- 254,260 ---- } } ! public void mouseDragged(MouseEvent e) { if (table.isEnabled()) { *************** public class BasicTableUI extends TableU *** 278,284 **** // Nothing to do here. } ! public void mousePressed(MouseEvent e) { if (table.isEnabled()) { --- 278,284 ---- // Nothing to do here. } ! public void mousePressed(MouseEvent e) { if (table.isEnabled()) { *************** public class BasicTableUI extends TableU *** 292,303 **** //if control is pressed and the cell is already selected, deselect it if (e.isControlDown() && table.isCellSelected( table.rowAtPoint(begin), table.columnAtPoint(begin))) ! { table.getSelectionModel(). ! removeSelectionInterval(table.rowAtPoint(begin), table.rowAtPoint(begin)); table.getColumnModel().getSelectionModel(). ! removeSelectionInterval(table.columnAtPoint(begin), table.columnAtPoint(begin)); } else --- 292,303 ---- //if control is pressed and the cell is already selected, deselect it if (e.isControlDown() && table.isCellSelected( table.rowAtPoint(begin), table.columnAtPoint(begin))) ! { table.getSelectionModel(). ! removeSelectionInterval(table.rowAtPoint(begin), table.rowAtPoint(begin)); table.getColumnModel().getSelectionModel(). ! removeSelectionInterval(table.columnAtPoint(begin), table.columnAtPoint(begin)); } else *************** public class BasicTableUI extends TableU *** 314,320 **** } } ! public void mouseReleased(MouseEvent e) { if (table.isEnabled()) { --- 314,320 ---- } } ! public void mouseReleased(MouseEvent e) { if (table.isEnabled()) { *************** public class BasicTableUI extends TableU *** 374,385 **** } } ! protected FocusListener createFocusListener() { return new FocusHandler(); } ! protected MouseInputListener createMouseInputListener() { return new MouseInputHandler(); } --- 374,385 ---- } } ! protected FocusListener createFocusListener() { return new FocusHandler(); } ! protected MouseInputListener createMouseInputListener() { return new MouseInputHandler(); } *************** public class BasicTableUI extends TableU *** 396,411 **** } /** ! * Return the maximum size of the table. The maximum height is the row ! * height times the number of rows. The maximum width is the sum of * the maximum widths of each column. ! * * @param comp the component whose maximum size is being queried, * this is ignored. * @return a Dimension object representing the maximum size of the table, * or null if the table has no elements. */ ! public Dimension getMaximumSize(JComponent comp) { int maxTotalColumnWidth = 0; for (int i = 0; i < table.getColumnCount(); i++) --- 396,411 ---- } /** ! * Return the maximum size of the table. The maximum height is the row ! * height times the number of rows. The maximum width is the sum of * the maximum widths of each column. ! * * @param comp the component whose maximum size is being queried, * this is ignored. * @return a Dimension object representing the maximum size of the table, * or null if the table has no elements. */ ! public Dimension getMaximumSize(JComponent comp) { int maxTotalColumnWidth = 0; for (int i = 0; i < table.getColumnCount(); i++) *************** public class BasicTableUI extends TableU *** 415,430 **** } /** ! * Return the minimum size of the table. The minimum height is the row ! * height times the number of rows. The minimum width is the sum of * the minimum widths of each column. ! * * @param comp the component whose minimum size is being queried, * this is ignored. * @return a Dimension object representing the minimum size of the table, * or null if the table has no elements. */ ! public Dimension getMinimumSize(JComponent comp) { int minTotalColumnWidth = 0; for (int i = 0; i < table.getColumnCount(); i++) --- 415,430 ---- } /** ! * Return the minimum size of the table. The minimum height is the row ! * height times the number of rows. The minimum width is the sum of * the minimum widths of each column. ! * * @param comp the component whose minimum size is being queried, * this is ignored. * @return a Dimension object representing the minimum size of the table, * or null if the table has no elements. */ ! public Dimension getMinimumSize(JComponent comp) { int minTotalColumnWidth = 0; for (int i = 0; i < table.getColumnCount(); i++) *************** public class BasicTableUI extends TableU *** 440,446 **** * * @return the preferred size for the table of that UI */ ! public Dimension getPreferredSize(JComponent comp) { int prefTotalColumnWidth = 0; TableColumnModel tcm = table.getColumnModel(); --- 440,446 ---- * * @return the preferred size for the table of that UI */ ! public Dimension getPreferredSize(JComponent comp) { int prefTotalColumnWidth = 0; TableColumnModel tcm = table.getColumnModel(); *************** public class BasicTableUI extends TableU *** 458,470 **** * Returns the table height. This helper method is used by * {@link #getMinimumSize(JComponent)}, {@link #getPreferredSize(JComponent)} * and {@link #getMaximumSize(JComponent)} to determine the table height. ! * * @return the table height */ private int getHeight() { int height = 0; ! int rowCount = table.getRowCount(); if (rowCount > 0 && table.getColumnCount() > 0) { Rectangle r = table.getCellRect(rowCount - 1, 0, true); --- 458,470 ---- * Returns the table height. This helper method is used by * {@link #getMinimumSize(JComponent)}, {@link #getPreferredSize(JComponent)} * and {@link #getMaximumSize(JComponent)} to determine the table height. ! * * @return the table height */ private int getHeight() { int height = 0; ! int rowCount = table.getRowCount(); if (rowCount > 0 && table.getColumnCount() > 0) { Rectangle r = table.getCellRect(rowCount - 1, 0, true); *************** public class BasicTableUI extends TableU *** 473,479 **** return height; } ! protected void installDefaults() { LookAndFeel.installColorsAndFont(table, "Table.background", "Table.foreground", "Table.font"); --- 473,479 ---- return height; } ! protected void installDefaults() { LookAndFeel.installColorsAndFont(table, "Table.background", "Table.foreground", "Table.font"); *************** public class BasicTableUI extends TableU *** 486,492 **** /** * Installs keyboard actions on the table. */ ! protected void installKeyboardActions() { // Install the input map. InputMap inputMap = --- 486,492 ---- /** * Installs keyboard actions on the table. */ ! protected void installKeyboardActions() { // Install the input map. InputMap inputMap = *************** public class BasicTableUI extends TableU *** 597,610 **** { JTable table = (JTable) e.getSource(); ! DefaultListSelectionModel rowModel = (DefaultListSelectionModel) table.getSelectionModel(); ! DefaultListSelectionModel colModel = (DefaultListSelectionModel) table.getColumnModel().getSelectionModel(); int rowLead = rowModel.getLeadSelectionIndex(); int rowMax = table.getModel().getRowCount() - 1; ! int colLead = colModel.getLeadSelectionIndex(); int colMax = table.getModel().getColumnCount() - 1; --- 597,610 ---- { JTable table = (JTable) e.getSource(); ! DefaultListSelectionModel rowModel = (DefaultListSelectionModel) table.getSelectionModel(); ! DefaultListSelectionModel colModel = (DefaultListSelectionModel) table.getColumnModel().getSelectionModel(); int rowLead = rowModel.getLeadSelectionIndex(); int rowMax = table.getModel().getRowCount() - 1; ! int colLead = colModel.getLeadSelectionIndex(); int colMax = table.getModel().getColumnCount() - 1; *************** public class BasicTableUI extends TableU *** 626,632 **** table.editCellAt(rowLead, colLead); } else if (command.equals("selectFirstRowExtendSelection")) ! { rowModel.setLeadSelectionIndex(0); } else if (command.equals("selectFirstColumn")) --- 626,632 ---- table.editCellAt(rowLead, colLead); } else if (command.equals("selectFirstRowExtendSelection")) ! { rowModel.setLeadSelectionIndex(0); } else if (command.equals("selectFirstColumn")) *************** public class BasicTableUI extends TableU *** 636,642 **** else if (command.equals("selectFirstColumnExtendSelection")) { colModel.setLeadSelectionIndex(0); ! } else if (command.equals("selectLastRow")) { rowModel.setSelectionInterval(rowMax, rowMax); --- 636,642 ---- else if (command.equals("selectFirstColumnExtendSelection")) { colModel.setLeadSelectionIndex(0); ! } else if (command.equals("selectLastRow")) { rowModel.setSelectionInterval(rowMax, rowMax); *************** public class BasicTableUI extends TableU *** 670,680 **** { int target; if (rowLead == getFirstVisibleRowIndex(table)) ! target = Math.max(0, rowLead - (getLastVisibleRowIndex(table) - getFirstVisibleRowIndex(table) + 1)); else target = getFirstVisibleRowIndex(table); ! rowModel.setLeadSelectionIndex(target); colModel.setLeadSelectionIndex(colLead); } --- 670,680 ---- { int target; if (rowLead == getFirstVisibleRowIndex(table)) ! target = Math.max(0, rowLead - (getLastVisibleRowIndex(table) - getFirstVisibleRowIndex(table) + 1)); else target = getFirstVisibleRowIndex(table); ! rowModel.setLeadSelectionIndex(target); colModel.setLeadSelectionIndex(colLead); } *************** public class BasicTableUI extends TableU *** 692,698 **** - getFirstVisibleColumnIndex(table) + 1)); else target = getLastVisibleColumnIndex(table); ! colModel.setSelectionInterval(target, target); rowModel.setSelectionInterval(rowLead, rowLead); } --- 692,698 ---- - getFirstVisibleColumnIndex(table) + 1)); else target = getLastVisibleColumnIndex(table); ! colModel.setSelectionInterval(target, target); rowModel.setSelectionInterval(rowLead, rowLead); } *************** public class BasicTableUI extends TableU *** 705,715 **** { int target; if (colLead == getFirstVisibleColumnIndex(table)) ! target = Math.max(0, colLead - (getLastVisibleColumnIndex(table) - getFirstVisibleColumnIndex(table) + 1)); else target = getFirstVisibleColumnIndex(table); ! colModel.setSelectionInterval(target, target); rowModel.setSelectionInterval(rowLead, rowLead); } --- 705,715 ---- { int target; if (colLead == getFirstVisibleColumnIndex(table)) ! target = Math.max(0, colLead - (getLastVisibleColumnIndex(table) - getFirstVisibleColumnIndex(table) + 1)); else target = getFirstVisibleColumnIndex(table); ! colModel.setSelectionInterval(target, target); rowModel.setSelectionInterval(rowLead, rowLead); } *************** public class BasicTableUI extends TableU *** 731,801 **** || command.equals("selectPreviousColumnCell")) { // If nothing is selected, select the first cell in the table ! if (table.getSelectedRowCount() == 0 && table.getSelectedColumnCount() == 0) { rowModel.setSelectionInterval(0, 0); colModel.setSelectionInterval(0, 0); return; } ! // If the lead selection index isn't selected (ie a remove operation // happened, then set the lead to the first selected cell in the // table if (!table.isCellSelected(rowLead, colLead)) { ! rowModel.addSelectionInterval(rowModel.getMinSelectionIndex(), rowModel.getMinSelectionIndex()); ! colModel.addSelectionInterval(colModel.getMinSelectionIndex(), colModel.getMinSelectionIndex()); return; } ! // multRowsSelected and multColsSelected tell us if multiple rows or // columns are selected, respectively boolean multRowsSelected, multColsSelected; multRowsSelected = table.getSelectedRowCount() > 1 && table.getRowSelectionAllowed(); ! multColsSelected = table.getSelectedColumnCount() > 1 && table.getColumnSelectionAllowed(); ! // If there is just one selection, select the next cell, and wrap // when you get to the edges of the table. if (!multColsSelected && !multRowsSelected) { ! if (command.indexOf("Column") != -1) ! advanceSingleSelection(colModel, colMax, rowModel, rowMax, command.equals("selectPreviousColumnCell")); else ! advanceSingleSelection(rowModel, rowMax, colModel, colMax, command.equals("selectPreviousRowCell")); return; } ! ! // rowMinSelected and rowMaxSelected are the minimum and maximum // values respectively of selected cells in the row selection model // Similarly for colMinSelected and colMaxSelected. ! int rowMaxSelected = table.getRowSelectionAllowed() ? rowModel.getMaxSelectionIndex() : table.getModel().getRowCount() - 1; ! int rowMinSelected = table.getRowSelectionAllowed() ? ! rowModel.getMinSelectionIndex() : 0; ! int colMaxSelected = table.getColumnSelectionAllowed() ? ! colModel.getMaxSelectionIndex() : table.getModel().getColumnCount() - 1; ! int colMinSelected = table.getColumnSelectionAllowed() ? colModel.getMinSelectionIndex() : 0; ! // If there are multiple rows and columns selected, select the next ! // cell and wrap at the edges of the selection. ! if (command.indexOf("Column") != -1) advanceMultipleSelection(table, colModel, colMinSelected, colMaxSelected, rowModel, rowMinSelected, rowMaxSelected, command.equals("selectPreviousColumnCell"), true); ! else advanceMultipleSelection(table, rowModel, rowMinSelected, rowMaxSelected, colModel, colMinSelected, --- 731,801 ---- || command.equals("selectPreviousColumnCell")) { // If nothing is selected, select the first cell in the table ! if (table.getSelectedRowCount() == 0 && table.getSelectedColumnCount() == 0) { rowModel.setSelectionInterval(0, 0); colModel.setSelectionInterval(0, 0); return; } ! // If the lead selection index isn't selected (ie a remove operation // happened, then set the lead to the first selected cell in the // table if (!table.isCellSelected(rowLead, colLead)) { ! rowModel.addSelectionInterval(rowModel.getMinSelectionIndex(), rowModel.getMinSelectionIndex()); ! colModel.addSelectionInterval(colModel.getMinSelectionIndex(), colModel.getMinSelectionIndex()); return; } ! // multRowsSelected and multColsSelected tell us if multiple rows or // columns are selected, respectively boolean multRowsSelected, multColsSelected; multRowsSelected = table.getSelectedRowCount() > 1 && table.getRowSelectionAllowed(); ! multColsSelected = table.getSelectedColumnCount() > 1 && table.getColumnSelectionAllowed(); ! // If there is just one selection, select the next cell, and wrap // when you get to the edges of the table. if (!multColsSelected && !multRowsSelected) { ! if (command.indexOf("Column") != -1) ! advanceSingleSelection(colModel, colMax, rowModel, rowMax, command.equals("selectPreviousColumnCell")); else ! advanceSingleSelection(rowModel, rowMax, colModel, colMax, command.equals("selectPreviousRowCell")); return; } ! ! // rowMinSelected and rowMaxSelected are the minimum and maximum // values respectively of selected cells in the row selection model // Similarly for colMinSelected and colMaxSelected. ! int rowMaxSelected = table.getRowSelectionAllowed() ? rowModel.getMaxSelectionIndex() : table.getModel().getRowCount() - 1; ! int rowMinSelected = table.getRowSelectionAllowed() ? ! rowModel.getMinSelectionIndex() : 0; ! int colMaxSelected = table.getColumnSelectionAllowed() ? ! colModel.getMaxSelectionIndex() : table.getModel().getColumnCount() - 1; ! int colMinSelected = table.getColumnSelectionAllowed() ? colModel.getMinSelectionIndex() : 0; ! // If there are multiple rows and columns selected, select the next ! // cell and wrap at the edges of the selection. ! if (command.indexOf("Column") != -1) advanceMultipleSelection(table, colModel, colMinSelected, colMaxSelected, rowModel, rowMinSelected, rowMaxSelected, command.equals("selectPreviousColumnCell"), true); ! else advanceMultipleSelection(table, rowModel, rowMinSelected, rowMaxSelected, colModel, colMinSelected, *************** public class BasicTableUI extends TableU *** 812,822 **** { int target; if (colLead == getFirstVisibleColumnIndex(table)) ! target = Math.max(0, colLead - (getLastVisibleColumnIndex(table) - getFirstVisibleColumnIndex(table) + 1)); else target = getFirstVisibleColumnIndex(table); ! colModel.setLeadSelectionIndex(target); rowModel.setLeadSelectionIndex(rowLead); } --- 812,822 ---- { int target; if (colLead == getFirstVisibleColumnIndex(table)) ! target = Math.max(0, colLead - (getLastVisibleColumnIndex(table) - getFirstVisibleColumnIndex(table) + 1)); else target = getFirstVisibleColumnIndex(table); ! colModel.setLeadSelectionIndex(target); rowModel.setLeadSelectionIndex(rowLead); } *************** public class BasicTableUI extends TableU *** 828,834 **** - getFirstVisibleRowIndex(table) + 1)); else target = getLastVisibleRowIndex(table); ! rowModel.setSelectionInterval(target, target); colModel.setSelectionInterval(colLead, colLead); } --- 828,834 ---- - getFirstVisibleRowIndex(table) + 1)); else target = getLastVisibleRowIndex(table); ! rowModel.setSelectionInterval(target, target); colModel.setSelectionInterval(colLead, colLead); } *************** public class BasicTableUI extends TableU *** 836,846 **** { int target; if (colLead == getLastVisibleColumnIndex(table)) ! target = Math.min(colMax, colLead + (getLastVisibleColumnIndex(table) - getFirstVisibleColumnIndex(table) + 1)); else target = getLastVisibleColumnIndex(table); ! colModel.setLeadSelectionIndex(target); rowModel.setLeadSelectionIndex(rowLead); } --- 836,846 ---- { int target; if (colLead == getLastVisibleColumnIndex(table)) ! target = Math.min(colMax, colLead + (getLastVisibleColumnIndex(table) - getFirstVisibleColumnIndex(table) + 1)); else target = getLastVisibleColumnIndex(table); ! colModel.setLeadSelectionIndex(target); rowModel.setLeadSelectionIndex(rowLead); } *************** public class BasicTableUI extends TableU *** 857,885 **** { int target; if (rowLead == getLastVisibleRowIndex(table)) ! target = Math.min(rowMax, rowLead + (getLastVisibleRowIndex(table) - getFirstVisibleRowIndex(table) + 1)); else target = getLastVisibleRowIndex(table); ! rowModel.setLeadSelectionIndex(target); colModel.setLeadSelectionIndex(colLead); ! } else if (command.equals("scrollUpChangeSelection")) { int target; if (rowLead == getFirstVisibleRowIndex(table)) ! target = Math.max(0, rowLead - (getLastVisibleRowIndex(table) - getFirstVisibleRowIndex(table) + 1)); else target = getFirstVisibleRowIndex(table); ! rowModel.setSelectionInterval(target, target); colModel.setSelectionInterval(colLead, colLead); } else if (command.equals("selectNextRowChangeLead")) { ! if (rowModel.getSelectionMode() != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) { // just "selectNextRow" --- 857,885 ---- { int target; if (rowLead == getLastVisibleRowIndex(table)) ! target = Math.min(rowMax, rowLead + (getLastVisibleRowIndex(table) - getFirstVisibleRowIndex(table) + 1)); else target = getLastVisibleRowIndex(table); ! rowModel.setLeadSelectionIndex(target); colModel.setLeadSelectionIndex(colLead); ! } else if (command.equals("scrollUpChangeSelection")) { int target; if (rowLead == getFirstVisibleRowIndex(table)) ! target = Math.max(0, rowLead - (getLastVisibleRowIndex(table) - getFirstVisibleRowIndex(table) + 1)); else target = getFirstVisibleRowIndex(table); ! rowModel.setSelectionInterval(target, target); colModel.setSelectionInterval(colLead, colLead); } else if (command.equals("selectNextRowChangeLead")) { ! if (rowModel.getSelectionMode() != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) { // just "selectNextRow" *************** public class BasicTableUI extends TableU *** 892,898 **** } else if (command.equals("selectPreviousRowChangeLead")) { ! if (rowModel.getSelectionMode() != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) { // just selectPreviousRow --- 892,898 ---- } else if (command.equals("selectPreviousRowChangeLead")) { ! if (rowModel.getSelectionMode() != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) { // just selectPreviousRow *************** public class BasicTableUI extends TableU *** 905,912 **** } else if (command.equals("selectNextColumnChangeLead")) { ! if (colModel.getSelectionMode() ! != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) { // just selectNextColumn rowModel.setSelectionInterval(rowLead, rowLead); --- 905,912 ---- } else if (command.equals("selectNextColumnChangeLead")) { ! if (colModel.getSelectionMode() ! != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) { // just selectNextColumn rowModel.setSelectionInterval(rowLead, rowLead); *************** public class BasicTableUI extends TableU *** 918,931 **** } else if (command.equals("selectPreviousColumnChangeLead")) { ! if (colModel.getSelectionMode() ! != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) { // just selectPreviousColumn rowModel.setSelectionInterval(rowLead, rowLead); colModel.setSelectionInterval(Math.max(colLead - 1, 0), Math.max(colLead - 1, 0)); ! } else colModel.moveLeadSelectionIndex(Math.max(colLead - 1, 0)); --- 918,931 ---- } else if (command.equals("selectPreviousColumnChangeLead")) { ! if (colModel.getSelectionMode() ! != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) { // just selectPreviousColumn rowModel.setSelectionInterval(rowLead, rowLead); colModel.setSelectionInterval(Math.max(colLead - 1, 0), Math.max(colLead - 1, 0)); ! } else colModel.moveLeadSelectionIndex(Math.max(colLead - 1, 0)); *************** public class BasicTableUI extends TableU *** 955,966 **** rowModel.removeSelectionInterval(rowLead, rowLead); else rowModel.addSelectionInterval(rowLead, rowLead); ! if (colModel.isSelectedIndex(colLead)) colModel.removeSelectionInterval(colLead, colLead); else colModel.addSelectionInterval(colLead, colLead); ! rowModel.setAnchorSelectionIndex(rowLead); colModel.setAnchorSelectionIndex(colLead); } --- 955,966 ---- rowModel.removeSelectionInterval(rowLead, rowLead); else rowModel.addSelectionInterval(rowLead, rowLead); ! if (colModel.isSelectedIndex(colLead)) colModel.removeSelectionInterval(colLead, colLead); else colModel.addSelectionInterval(colLead, colLead); ! rowModel.setAnchorSelectionIndex(rowLead); colModel.setAnchorSelectionIndex(colLead); } *************** public class BasicTableUI extends TableU *** 968,998 **** { table.editingStopped(new ChangeEvent(command)); } ! else { // If we're here that means we bound this TableAction class // to a keyboard input but we either want to ignore that input // or we just haven't implemented its action yet. ! // Uncomment the following line to print the names of unused bindings // when their keys are pressed ! // System.out.println ("not implemented: "+e.getActionCommand()); } // Any commands whose keyStrokes should be used by the Editor should not ! // cause editing to be stopped: ie, the SPACE sends "addToSelection" but // if the table is in editing mode, the space should not cause us to stop // editing because it should be used by the Editor. if (table.isEditing() && command != "startEditing" && command != "addToSelection") table.editingStopped(new ChangeEvent("update")); ! table.scrollRectToVisible(table.getCellRect( ! rowModel.getLeadSelectionIndex(), colModel.getLeadSelectionIndex(), false)); } ! /** * Returns the column index of the first visible column. * @return the column index of the first visible column. --- 968,998 ---- { table.editingStopped(new ChangeEvent(command)); } ! else { // If we're here that means we bound this TableAction class // to a keyboard input but we either want to ignore that input // or we just haven't implemented its action yet. ! // Uncomment the following line to print the names of unused bindings // when their keys are pressed ! // System.out.println ("not implemented: "+e.getActionCommand()); } // Any commands whose keyStrokes should be used by the Editor should not ! // cause editing to be stopped: ie, the SPACE sends "addToSelection" but // if the table is in editing mode, the space should not cause us to stop // editing because it should be used by the Editor. if (table.isEditing() && command != "startEditing" && command != "addToSelection") table.editingStopped(new ChangeEvent("update")); ! table.scrollRectToVisible(table.getCellRect( ! rowModel.getLeadSelectionIndex(), colModel.getLeadSelectionIndex(), false)); } ! /** * Returns the column index of the first visible column. * @return the column index of the first visible column. *************** public class BasicTableUI extends TableU *** 1005,1011 **** r.translate((int) r.getWidth() - 1, 0); return table.columnAtPoint(r.getLocation()); } ! /** * Returns the column index of the last visible column. * --- 1005,1011 ---- r.translate((int) r.getWidth() - 1, 0); return table.columnAtPoint(r.getLocation()); } ! /** * Returns the column index of the last visible column. * *************** public class BasicTableUI extends TableU *** 1016,1024 **** Rectangle r = table.getVisibleRect(); if (or.isLeftToRight()) r.translate((int) r.getWidth() - 1, 0); ! return table.columnAtPoint(r.getLocation()); } ! /** * Returns the row index of the first visible row. * --- 1016,1024 ---- Rectangle r = table.getVisibleRect(); if (or.isLeftToRight()) r.translate((int) r.getWidth() - 1, 0); ! return table.columnAtPoint(r.getLocation()); } ! /** * Returns the row index of the first visible row. * *************** public class BasicTableUI extends TableU *** 1031,1037 **** r.translate((int) r.getWidth() - 1, 0); return table.rowAtPoint(r.getLocation()); } ! /** * Returns the row index of the last visible row. * --- 1031,1037 ---- r.translate((int) r.getWidth() - 1, 0); return table.rowAtPoint(r.getLocation()); } ! /** * Returns the row index of the last visible row. * *************** public class BasicTableUI extends TableU *** 1067,1073 **** * rows (ENTER) * @param firstMin the first selected index in firstModel * @param firstMax the last selected index in firstModel ! * @param secondModel the ListSelectionModel for rows (TAB) or * columns (ENTER) * @param secondMin the first selected index in secondModel * @param secondMax the last selected index in secondModel --- 1067,1073 ---- * rows (ENTER) * @param firstMin the first selected index in firstModel * @param firstMax the last selected index in firstModel ! * @param secondModel the ListSelectionModel for rows (TAB) or * columns (ENTER) * @param secondMin the first selected index in secondModel * @param secondMax the last selected index in secondModel *************** public class BasicTableUI extends TableU *** 1076,1116 **** */ void advanceMultipleSelection(JTable table, ListSelectionModel firstModel, int firstMin, ! int firstMax, ListSelectionModel secondModel, int secondMin, int secondMax, boolean reverse, boolean eventIsTab) { ! // If eventIsTab, all the "firsts" correspond to columns, otherwise, to // rows "seconds" correspond to the opposite int firstLead = firstModel.getLeadSelectionIndex(); int secondLead = secondModel.getLeadSelectionIndex(); ! int numFirsts = eventIsTab ? table.getModel().getColumnCount() : table.getModel().getRowCount(); ! int numSeconds = eventIsTab ? table.getModel().getRowCount() : table.getModel().getColumnCount(); // check if we have to wrap the "firsts" around, going to the other side ! if ((firstLead == firstMax && !reverse) || (reverse && firstLead == firstMin)) { ! firstModel.addSelectionInterval(reverse ? firstMax : firstMin, reverse ? firstMax : firstMin); ! // check if we have to wrap the "seconds" ! if ((secondLead == secondMax && !reverse) || (reverse && secondLead == secondMin)) ! secondModel.addSelectionInterval(reverse ? secondMax : secondMin, reverse ? secondMax : secondMin); // if we're not wrapping the seconds, we have to find out where we ! // are within the secondModel and advance to the next cell (or // go back to the previous cell if reverse == true) else { int[] secondsSelected; ! if (eventIsTab && table.getRowSelectionAllowed() || !eventIsTab && table.getColumnSelectionAllowed()) ! secondsSelected = eventIsTab ? table.getSelectedRows() : table.getSelectedColumns(); else { --- 1076,1116 ---- */ void advanceMultipleSelection(JTable table, ListSelectionModel firstModel, int firstMin, ! int firstMax, ListSelectionModel secondModel, int secondMin, int secondMax, boolean reverse, boolean eventIsTab) { ! // If eventIsTab, all the "firsts" correspond to columns, otherwise, to // rows "seconds" correspond to the opposite int firstLead = firstModel.getLeadSelectionIndex(); int secondLead = secondModel.getLeadSelectionIndex(); ! int numFirsts = eventIsTab ? table.getModel().getColumnCount() : table.getModel().getRowCount(); ! int numSeconds = eventIsTab ? table.getModel().getRowCount() : table.getModel().getColumnCount(); // check if we have to wrap the "firsts" around, going to the other side ! if ((firstLead == firstMax && !reverse) || (reverse && firstLead == firstMin)) { ! firstModel.addSelectionInterval(reverse ? firstMax : firstMin, reverse ? firstMax : firstMin); ! // check if we have to wrap the "seconds" ! if ((secondLead == secondMax && !reverse) || (reverse && secondLead == secondMin)) ! secondModel.addSelectionInterval(reverse ? secondMax : secondMin, reverse ? secondMax : secondMin); // if we're not wrapping the seconds, we have to find out where we ! // are within the secondModel and advance to the next cell (or // go back to the previous cell if reverse == true) else { int[] secondsSelected; ! if (eventIsTab && table.getRowSelectionAllowed() || !eventIsTab && table.getColumnSelectionAllowed()) ! secondsSelected = eventIsTab ? table.getSelectedRows() : table.getSelectedColumns(); else { *************** public class BasicTableUI extends TableU *** 1129,1137 **** else while (secondsSelected[secondIndex] >= secondLead) secondIndex--; ! // and select it - updating the lead selection index ! secondModel.addSelectionInterval(secondsSelected[secondIndex], secondsSelected[secondIndex]); } } --- 1129,1137 ---- else while (secondsSelected[secondIndex] >= secondLead) secondIndex--; ! // and select it - updating the lead selection index ! secondModel.addSelectionInterval(secondsSelected[secondIndex], secondsSelected[secondIndex]); } } *************** public class BasicTableUI extends TableU *** 1140,1148 **** else { int[] firstsSelected; ! if (eventIsTab && table.getColumnSelectionAllowed() || !eventIsTab && table.getRowSelectionAllowed()) ! firstsSelected = eventIsTab ? table.getSelectedColumns() : table.getSelectedRows(); else { --- 1140,1148 ---- else { int[] firstsSelected; ! if (eventIsTab && table.getColumnSelectionAllowed() || !eventIsTab && table.getRowSelectionAllowed()) ! firstsSelected = eventIsTab ? table.getSelectedColumns() : table.getSelectedRows(); else { *************** public class BasicTableUI extends TableU *** 1155,1170 **** if (!reverse) while (firstsSelected[firstIndex] <= firstLead) firstIndex++; ! else while (firstsSelected[firstIndex] >= firstLead) firstIndex--; ! firstModel.addSelectionInterval(firstsSelected[firstIndex], firstsSelected[firstIndex]); secondModel.addSelectionInterval(secondLead, secondLead); } } ! ! /** * A helper method for the key bindings. Used because the actions * for TAB, SHIFT-TAB, ENTER, and SHIFT-ENTER are very similar. * --- 1155,1170 ---- if (!reverse) while (firstsSelected[firstIndex] <= firstLead) firstIndex++; ! else while (firstsSelected[firstIndex] >= firstLead) firstIndex--; ! firstModel.addSelectionInterval(firstsSelected[firstIndex], firstsSelected[firstIndex]); secondModel.addSelectionInterval(secondLead, secondLead); } } ! ! /** * A helper method for the key bindings. Used because the actions * for TAB, SHIFT-TAB, ENTER, and SHIFT-ENTER are very similar. * *************** public class BasicTableUI extends TableU *** 1180,1194 **** * @param reverse true if SHIFT was pressed for the event */ ! void advanceSingleSelection(ListSelectionModel firstModel, int firstMax, ! ListSelectionModel secondModel, int secondMax, boolean reverse) { // for TABs, "first" corresponds to columns and "seconds" to rows. // the opposite is true for ENTERs int firstLead = firstModel.getLeadSelectionIndex(); int secondLead = secondModel.getLeadSelectionIndex(); ! // if we are going backwards subtract 2 because we later add 1 // for a net change of -1 if (reverse && (firstLead == 0)) --- 1180,1194 ---- * @param reverse true if SHIFT was pressed for the event */ ! void advanceSingleSelection(ListSelectionModel firstModel, int firstMax, ! ListSelectionModel secondModel, int secondMax, boolean reverse) { // for TABs, "first" corresponds to columns and "seconds" to rows. // the opposite is true for ENTERs int firstLead = firstModel.getLeadSelectionIndex(); int secondLead = secondModel.getLeadSelectionIndex(); ! // if we are going backwards subtract 2 because we later add 1 // for a net change of -1 if (reverse && (firstLead == 0)) *************** public class BasicTableUI extends TableU *** 1198,1212 **** secondLead += secondMax + 1; secondLead -= 2; } ! // do we have to wrap the "seconds"? if (reverse && (firstLead == 0) || !reverse && (firstLead == firstMax)) ! secondModel.setSelectionInterval((secondLead + 1) % (secondMax + 1), (secondLead + 1) % (secondMax + 1)); // if not, just reselect the current lead else secondModel.setSelectionInterval(secondLead, secondLead); ! // if we are going backwards, subtract 2 because we add 1 later // for net change of -1 if (reverse) --- 1198,1212 ---- secondLead += secondMax + 1; secondLead -= 2; } ! // do we have to wrap the "seconds"? if (reverse && (firstLead == 0) || !reverse && (firstLead == firstMax)) ! secondModel.setSelectionInterval((secondLead + 1) % (secondMax + 1), (secondLead + 1) % (secondMax + 1)); // if not, just reselect the current lead else secondModel.setSelectionInterval(secondLead, secondLead); ! // if we are going backwards, subtract 2 because we add 1 later // for net change of -1 if (reverse) *************** public class BasicTableUI extends TableU *** 1217,1228 **** firstLead -= 2; } // select the next "first" ! firstModel.setSelectionInterval((firstLead + 1) % (firstMax + 1), (firstLead + 1) % (firstMax + 1)); } } ! protected void installListeners() { if (focusListener == null) focusListener = createFocusListener(); --- 1217,1228 ---- firstLead -= 2; } // select the next "first" ! firstModel.setSelectionInterval((firstLead + 1) % (firstMax + 1), (firstLead + 1) % (firstMax + 1)); } } ! protected void installListeners() { if (focusListener == null) focusListener = createFocusListener(); *************** public class BasicTableUI extends TableU *** 1232,1238 **** table.addKeyListener(keyListener); if (mouseInputListener == null) mouseInputListener = createMouseInputListener(); ! table.addMouseListener(mouseInputListener); table.addMouseMotionListener(mouseInputListener); if (propertyChangeListener == null) propertyChangeListener = new PropertyChangeHandler(); --- 1232,1238 ---- table.addKeyListener(keyListener); if (mouseInputListener == null) mouseInputListener = createMouseInputListener(); ! table.addMouseListener(mouseInputListener); table.addMouseMotionListener(mouseInputListener); if (propertyChangeListener == null) propertyChangeListener = new PropertyChangeHandler(); *************** public class BasicTableUI extends TableU *** 1259,1275 **** SwingUtilities.replaceUIActionMap(table, null); } ! protected void uninstallListeners() { ! table.removeFocusListener(focusListener); table.removeKeyListener(keyListener); ! table.removeMouseListener(mouseInputListener); table.removeMouseMotionListener(mouseInputListener); table.removePropertyChangeListener(propertyChangeListener); propertyChangeListener = null; } ! public void installUI(JComponent comp) { table = (JTable) comp; rendererPane = new CellRendererPane(); --- 1259,1275 ---- SwingUtilities.replaceUIActionMap(table, null); } ! protected void uninstallListeners() { ! table.removeFocusListener(focusListener); table.removeKeyListener(keyListener); ! table.removeMouseListener(mouseInputListener); table.removeMouseMotionListener(mouseInputListener); table.removePropertyChangeListener(propertyChangeListener); propertyChangeListener = null; } ! public void installUI(JComponent comp) { table = (JTable) comp; rendererPane = new CellRendererPane(); *************** public class BasicTableUI extends TableU *** 1280,1290 **** installListeners(); } ! public void uninstallUI(JComponent c) { uninstallListeners(); uninstallKeyboardActions(); ! uninstallDefaults(); table.remove(rendererPane); rendererPane = null; --- 1280,1290 ---- installListeners(); } ! public void uninstallUI(JComponent c) { uninstallListeners(); uninstallKeyboardActions(); ! uninstallDefaults(); table.remove(rendererPane); rendererPane = null; *************** public class BasicTableUI extends TableU *** 1308,1318 **** Component comp = table.prepareRenderer(rend, row, col); rendererPane.paintComponent(g, comp, table, bounds); } ! /** * Paint the associated table. */ ! public void paint(Graphics gfx, JComponent ignored) { int ncols = table.getColumnCount(); int nrows = table.getRowCount(); --- 1308,1318 ---- Component comp = table.prepareRenderer(rend, row, col); rendererPane.paintComponent(g, comp, table, bounds); } ! /** * Paint the associated table. */ ! public void paint(Graphics gfx, JComponent ignored) { int ncols = table.getColumnCount(); int nrows = table.getRowCount(); *************** public class BasicTableUI extends TableU *** 1346,1364 **** { widths[i] = cmodel.getColumn(i).getWidth() - columnMargin; } ! Rectangle bounds = table.getCellRect(r0, c0, false); // The left boundary of the area being repainted. int left = bounds.x; ! // The top boundary of the area being repainted. int top = bounds.y; ! // The bottom boundary of the area being repainted. int bottom; ! // paint the cell contents ! Color grid = table.getGridColor(); for (int r = r0; r <= rn; ++r) { for (int c = c0; c <= cn; ++c) --- 1346,1364 ---- { widths[i] = cmodel.getColumn(i).getWidth() - columnMargin; } ! Rectangle bounds = table.getCellRect(r0, c0, false); // The left boundary of the area being repainted. int left = bounds.x; ! // The top boundary of the area being repainted. int top = bounds.y; ! // The bottom boundary of the area being repainted. int bottom; ! // paint the cell contents ! Color grid = table.getGridColor(); for (int r = r0; r <= rn; ++r) { for (int c = c0; c <= cn; ++c) *************** public class BasicTableUI extends TableU *** 1372,1389 **** // Update row height for tables with custom heights. bounds.height = table.getRowHeight(r + 1) - rowMargin; } ! bottom = bounds.y - rowMargin; // paint vertical grid lines if (grid != null && table.getShowVerticalLines()) ! { Color save = gfx.getColor(); gfx.setColor(grid); int x = left - columnMargin; for (int c = c0; c <= cn; ++c) { ! // The vertical grid is draw right from the cells, so we // add before drawing. x += widths[c] + columnMargin; gfx.drawLine(x, top, x, bottom); --- 1372,1389 ---- // Update row height for tables with custom heights. bounds.height = table.getRowHeight(r + 1) - rowMargin; } ! bottom = bounds.y - rowMargin; // paint vertical grid lines if (grid != null && table.getShowVerticalLines()) ! { Color save = gfx.getColor(); gfx.setColor(grid); int x = left - columnMargin; for (int c = c0; c <= cn; ++c) { ! // The vertical grid is draw right from the cells, so we // add before drawing. x += widths[c] + columnMargin; gfx.drawLine(x, top, x, bottom); *************** public class BasicTableUI extends TableU *** 1391,1405 **** gfx.setColor(save); } ! // paint horizontal grid lines if (grid != null && table.getShowHorizontalLines()) ! { Color save = gfx.getColor(); gfx.setColor(grid); int y = top - rowMargin; for (int r = r0; r <= rn; ++r) { ! // The horizontal grid is draw below the cells, so we // add before drawing. y += table.getRowHeight(r); gfx.drawLine(left, y, p2.x, y); --- 1391,1405 ---- gfx.setColor(save); } ! // paint horizontal grid lines if (grid != null && table.getShowHorizontalLines()) ! { Color save = gfx.getColor(); gfx.setColor(grid); int y = top - rowMargin; for (int r = r0; r <= rn; ++r) { ! // The horizontal grid is draw below the cells, so we // add before drawing. y += table.getRowHeight(r); gfx.drawLine(left, y, p2.x, y); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTextAreaUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTextAreaUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTextAreaUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTextAreaUI.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BasicTextAreaUI.java -- Copyright (C) 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BasicTextAreaUI.java -- Copyright (C) 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class BasicTextAreaUI extends Bas *** 65,73 **** /** * Create the view. Returns a WrappedPlainView if the text area * has lineWrap set to true, otherwise returns a PlainView. If ! * lineWrap is true has to check whether the wrap style is word * or character and return an appropriate WrappedPlainView. ! * * @param elem the element to create a View for * @return an appropriate View for the element */ --- 65,73 ---- /** * Create the view. Returns a WrappedPlainView if the text area * has lineWrap set to true, otherwise returns a PlainView. If ! * lineWrap is true has to check whether the wrap style is word * or character and return an appropriate WrappedPlainView. ! * * @param elem the element to create a View for * @return an appropriate View for the element */ *************** public class BasicTextAreaUI extends Bas *** 94,104 **** { return "TextArea"; } ! /** * Receives notification whenever one of the text component's bound * properties changes. This changes the view to WrappedPlainView ! * if setLineWrap(true) is called, and back to PlainView if * setLineWrap(false) is called. * * @param ev the property change event --- 94,104 ---- { return "TextArea"; } ! /** * Receives notification whenever one of the text component's bound * properties changes. This changes the view to WrappedPlainView ! * if setLineWrap(true) is called, and back to PlainView if * setLineWrap(false) is called. * * @param ev the property change event diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTextFieldUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTextFieldUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTextFieldUI.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTextFieldUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicTextFieldUI extends Ba *** 60,66 **** { return new FieldView(elem); } ! public static ComponentUI createUI(JComponent c) { return new BasicTextFieldUI(); --- 60,66 ---- { return new FieldView(elem); } ! public static ComponentUI createUI(JComponent c) { return new BasicTextFieldUI(); *************** public class BasicTextFieldUI extends Ba *** 85,91 **** * Receives notification whenever one of the text component's bound * properties changes. Here we check for the editable and enabled * properties and adjust the background color accordingly. ! * *

                                            The colors are only changed if they are not a * ColorUIResource.

                                            * --- 85,91 ---- * Receives notification whenever one of the text component's bound * properties changes. Here we check for the editable and enabled * properties and adjust the background color accordingly. ! * *

                                            The colors are only changed if they are not a * ColorUIResource.

                                            * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTextPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTextPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTextPaneUI.java Fri Nov 18 00:59:33 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTextPaneUI.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BasicTextPaneUI.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BasicTextPaneUI.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java Tue Jan 11 19:46:05 2011 *************** public abstract class BasicTextUI extend *** 126,132 **** private static class FocusHandler implements FocusListener { ! public void focusGained(FocusEvent e) { // Nothing to do here. } --- 126,132 ---- private static class FocusHandler implements FocusListener { ! public void focusGained(FocusEvent e) { // Nothing to do here. } *************** public abstract class BasicTextUI extend *** 147,153 **** { if (sm != null) sm.checkSystemClipboardAccess(); ! Clipboard cb = Toolkit.getDefaultToolkit().getSystemSelection(); if (cb != null) { --- 147,153 ---- { if (sm != null) sm.checkSystemClipboardAccess(); ! Clipboard cb = Toolkit.getDefaultToolkit().getSystemSelection(); if (cb != null) { *************** public abstract class BasicTextUI extend *** 291,297 **** EditorKit editorKit = BasicTextUI.this.getEditorKit(getComponent()); factory = editorKit.getViewFactory(); if (factory == null) ! factory = BasicTextUI.this; return factory; } --- 291,297 ---- EditorKit editorKit = BasicTextUI.this.getEditorKit(getComponent()); factory = editorKit.getViewFactory(); if (factory == null) ! factory = BasicTextUI.this; return factory; } *************** public abstract class BasicTextUI extend *** 317,323 **** { if (view != null) view.setParent(null); ! if (v != null) v.setParent(this); --- 317,323 ---- { if (view != null) view.setParent(null); ! if (v != null) v.setParent(this); *************** public abstract class BasicTextUI extend *** 718,724 **** if (color == null || color instanceof UIResource) { color = UIManager.getColor(prefix + ".selectionBackground"); ! textComponent.setSelectionColor(color); } Insets margin = textComponent.getMargin(); --- 718,724 ---- if (color == null || color instanceof UIResource) { color = UIManager.getColor(prefix + ".selectionBackground"); ! textComponent.setSelectionColor(color); } Insets margin = textComponent.getMargin(); *************** public abstract class BasicTextUI extend *** 756,762 **** */ protected void installListeners() { ! // if (SystemProperties.getProperty("gnu.swing.text.no-xlike-clipboard") == null) { --- 756,762 ---- */ protected void installListeners() { ! // if (SystemProperties.getProperty("gnu.swing.text.no-xlike-clipboard") == null) { *************** public abstract class BasicTextUI extend *** 768,778 **** /** * Returns the name of the keymap for this type of TextUI. ! * * This is implemented so that the classname of this TextUI * without the package prefix is returned. This way subclasses * don't have to override this method. ! * * @return the name of the keymap for this TextUI */ protected String getKeymapName() --- 768,778 ---- /** * Returns the name of the keymap for this type of TextUI. ! * * This is implemented so that the classname of this TextUI * without the package prefix is returned. This way subclasses * don't have to override this method. ! * * @return the name of the keymap for this TextUI */ protected String getKeymapName() *************** public abstract class BasicTextUI extend *** 822,831 **** getInputMap()); SwingUtilities.replaceUIActionMap(textComponent, getActionMap()); } ! /** * Creates an ActionMap to be installed on the text component. ! * * @return an ActionMap to be installed on the text component */ private ActionMap getActionMap() --- 822,831 ---- getInputMap()); SwingUtilities.replaceUIActionMap(textComponent, getActionMap()); } ! /** * Creates an ActionMap to be installed on the text component. ! * * @return an ActionMap to be installed on the text component */ private ActionMap getActionMap() *************** public abstract class BasicTextUI extend *** 963,969 **** */ protected void uninstallKeyboardActions() { ! SwingUtilities.replaceUIInputMap(textComponent, JComponent.WHEN_FOCUSED, null); SwingUtilities.replaceUIActionMap(textComponent, null); } --- 963,969 ---- */ protected void uninstallKeyboardActions() { ! SwingUtilities.replaceUIInputMap(textComponent, JComponent.WHEN_FOCUSED, null); SwingUtilities.replaceUIActionMap(textComponent, null); } *************** public abstract class BasicTextUI extend *** 1150,1156 **** highlighter.paint(g); g.setColor(oldColor); } ! rootView.paint(g, getVisibleEditorRect()); if (caret != null && textComponent.hasFocus()) --- 1150,1156 ---- highlighter.paint(g); g.setColor(oldColor); } ! rootView.paint(g, getVisibleEditorRect()); if (caret != null && textComponent.hasFocus()) *************** public abstract class BasicTextUI extend *** 1482,1492 **** // Return null if the component has no valid size. if (width <= 0 || height <= 0) return null; ! Insets insets = textComponent.getInsets(cachedInsets); return new Rectangle(insets.left, insets.top, ! width - insets.left - insets.right, ! height - insets.top - insets.bottom); } /** --- 1482,1492 ---- // Return null if the component has no valid size. if (width <= 0 || height <= 0) return null; ! Insets insets = textComponent.getInsets(cachedInsets); return new Rectangle(insets.left, insets.top, ! width - insets.left - insets.right, ! height - insets.top - insets.bottom); } /** *************** public abstract class BasicTextUI extend *** 1507,1516 **** */ protected void modelChanged() { ! if (textComponent == null || rootView == null) return; ViewFactory factory = rootView.getViewFactory(); ! if (factory == null) return; Document doc = textComponent.getDocument(); if (doc == null) --- 1507,1516 ---- */ protected void modelChanged() { ! if (textComponent == null || rootView == null) return; ViewFactory factory = rootView.getViewFactory(); ! if (factory == null) return; Document doc = textComponent.getDocument(); if (doc == null) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicToggleButtonUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicToggleButtonUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicToggleButtonUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicToggleButtonUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 54,75 **** */ public class BasicToggleButtonUI extends BasicButtonUI { ! /** * Returns a UI delegate for the specified component. ! * ! * @param component the component (should be an instance of * {@link JToggleButton}). ! * * @return An instance of BasicToggleButtonUI. */ public static ComponentUI createUI(JComponent component) { return new BasicToggleButtonUI(); ! } /** ! * Returns the prefix for entries in the {@link UIManager} defaults table * ("ToggleButton." in this case). * * @return "ToggleButton." --- 54,75 ---- */ public class BasicToggleButtonUI extends BasicButtonUI { ! /** * Returns a UI delegate for the specified component. ! * ! * @param component the component (should be an instance of * {@link JToggleButton}). ! * * @return An instance of BasicToggleButtonUI. */ public static ComponentUI createUI(JComponent component) { return new BasicToggleButtonUI(); ! } /** ! * Returns the prefix for entries in the {@link UIManager} defaults table * ("ToggleButton." in this case). * * @return "ToggleButton." *************** public class BasicToggleButtonUI extends *** 80,93 **** } /** ! * Paint the component, which is an {@link AbstractButton}, according to * its current state. * * @param g The graphics context to paint with * @param c The component to paint the state of */ public void paint(Graphics g, JComponent c) ! { AbstractButton b = (AbstractButton) c; Rectangle tr = new Rectangle(); --- 80,93 ---- } /** ! * Paint the component, which is an {@link AbstractButton}, according to * its current state. * * @param g The graphics context to paint with * @param c The component to paint the state of */ public void paint(Graphics g, JComponent c) ! { AbstractButton b = (AbstractButton) c; Rectangle tr = new Rectangle(); *************** public class BasicToggleButtonUI extends *** 102,114 **** SwingUtilities.calculateInnerArea(b, vr); else vr = SwingUtilities.getLocalBounds(b); ! String text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), ! b.getText(), currentIcon(b), b.getVerticalAlignment(), ! b.getHorizontalAlignment(), b.getVerticalTextPosition(), ! b.getHorizontalTextPosition(), vr, ir, tr, b.getIconTextGap() + defaultTextShiftOffset); ! if ((b.getModel().isArmed() && b.getModel().isPressed()) || b.isSelected()) paintButtonPressed(g, b); --- 102,114 ---- SwingUtilities.calculateInnerArea(b, vr); else vr = SwingUtilities.getLocalBounds(b); ! String text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), ! b.getText(), currentIcon(b), b.getVerticalAlignment(), ! b.getHorizontalAlignment(), b.getVerticalTextPosition(), ! b.getHorizontalTextPosition(), vr, ir, tr, b.getIconTextGap() + defaultTextShiftOffset); ! if ((b.getModel().isArmed() && b.getModel().isPressed()) || b.isSelected()) paintButtonPressed(g, b); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicToolBarUI extends Tool *** 345,351 **** protected Border createNonRolloverBorder() { Border b = UIManager.getBorder("ToolBar.nonrolloverBorder"); ! if (b == null) { b = new CompoundBorder( --- 345,351 ---- protected Border createNonRolloverBorder() { Border b = UIManager.getBorder("ToolBar.nonrolloverBorder"); ! if (b == null) { b = new CompoundBorder( *************** public class BasicToolBarUI extends Tool *** 355,361 **** UIManager.getColor("Button.highlight")), BasicBorders.getMarginBorder()); } ! return b; } /** --- 355,361 ---- UIManager.getColor("Button.highlight")), BasicBorders.getMarginBorder()); } ! return b; } /** *************** public class BasicToolBarUI extends Tool *** 377,383 **** protected Border createRolloverBorder() { Border b = UIManager.getBorder("ToolBar.rolloverBorder"); ! if (b == null) { b = new CompoundBorder( --- 377,383 ---- protected Border createRolloverBorder() { Border b = UIManager.getBorder("ToolBar.rolloverBorder"); ! if (b == null) { b = new CompoundBorder( *************** public class BasicToolBarUI extends Tool *** 387,393 **** UIManager.getColor("Button.highlight")), BasicBorders.getMarginBorder()); } ! return b; } --- 387,393 ---- UIManager.getColor("Button.highlight")), BasicBorders.getMarginBorder()); } ! return b; } *************** public class BasicToolBarUI extends Tool *** 438,450 **** if (loc != -1) { ! dragWindow.setBorderColor(dockingBorderColor); ! dragWindow.setBackground(dockingColor); } else { ! dragWindow.setBorderColor(floatingBorderColor); ! dragWindow.setBackground(floatingColor); } int w = 0; --- 438,450 ---- if (loc != -1) { ! dragWindow.setBorderColor(dockingBorderColor); ! dragWindow.setBackground(dockingColor); } else { ! dragWindow.setBorderColor(floatingBorderColor); ! dragWindow.setBackground(floatingColor); } int w = 0; *************** public class BasicToolBarUI extends Tool *** 458,470 **** if (((cachedOrientation == SwingConstants.HORIZONTAL) && tmp) || ((cachedOrientation == VERTICAL) && ! tmp)) { ! w = cachedBounds.width; ! h = cachedBounds.height; } else { ! w = cachedBounds.height; ! h = cachedBounds.width; } Point p = dragWindow.getOffset(); --- 458,470 ---- if (((cachedOrientation == SwingConstants.HORIZONTAL) && tmp) || ((cachedOrientation == VERTICAL) && ! tmp)) { ! w = cachedBounds.width; ! h = cachedBounds.height; } else { ! w = cachedBounds.height; ! h = cachedBounds.width; } Point p = dragWindow.getOffset(); *************** public class BasicToolBarUI extends Tool *** 507,534 **** newParent = ((RootPaneContainer) floatFrame).getContentPane(); else { ! floatFrame.hide(); ! newParent = origParent; } String constraint; switch (aoc) { case SwingConstants.EAST: ! constraint = BorderLayout.EAST; ! break; case SwingConstants.NORTH: ! constraint = BorderLayout.NORTH; ! break; case SwingConstants.SOUTH: ! constraint = BorderLayout.SOUTH; ! break; case SwingConstants.WEST: ! constraint = BorderLayout.WEST; ! break; default: ! constraint = BorderLayout.CENTER; ! break; } int newOrientation = SwingConstants.HORIZONTAL; --- 507,534 ---- newParent = ((RootPaneContainer) floatFrame).getContentPane(); else { ! floatFrame.hide(); ! newParent = origParent; } String constraint; switch (aoc) { case SwingConstants.EAST: ! constraint = BorderLayout.EAST; ! break; case SwingConstants.NORTH: ! constraint = BorderLayout.NORTH; ! break; case SwingConstants.SOUTH: ! constraint = BorderLayout.SOUTH; ! break; case SwingConstants.WEST: ! constraint = BorderLayout.WEST; ! break; default: ! constraint = BorderLayout.CENTER; ! break; } int newOrientation = SwingConstants.HORIZONTAL; *************** public class BasicToolBarUI extends Tool *** 538,545 **** if (aoc != -1) { ! constraintBeforeFloating = constraint; ! lastGoodOrientation = newOrientation; } newParent.add(toolBar, constraint); --- 538,545 ---- if (aoc != -1) { ! constraintBeforeFloating = constraint; ! lastGoodOrientation = newOrientation; } newParent.add(toolBar, constraint); *************** public class BasicToolBarUI extends Tool *** 557,566 **** if (aoc == -1) { ! floatFrame.pack(); ! floatFrame.setSize(dims.width + insets.left + insets.right, ! dims.height + insets.top + insets.bottom); ! floatFrame.show(); } newParent.invalidate(); --- 557,566 ---- if (aoc == -1) { ! floatFrame.pack(); ! floatFrame.setSize(dims.width + insets.left + insets.right, ! dims.height + insets.top + insets.bottom); ! floatFrame.show(); } newParent.invalidate(); *************** public class BasicToolBarUI extends Tool *** 776,789 **** for (int i = 0; i < c.length; i++) { ! if (c[i] instanceof JButton) ! { ! // Don't really care about anything other than JButtons ! JButton b = (JButton) c[i]; ! if (b.getBorder() != null) ! borders.put(b, b.getBorder()); ! } } } --- 776,789 ---- for (int i = 0; i < c.length; i++) { ! if (c[i] instanceof JButton) ! { ! // Don't really care about anything other than JButtons ! JButton b = (JButton) c[i]; ! if (b.getBorder() != null) ! borders.put(b, b.getBorder()); ! } } } *************** public class BasicToolBarUI extends Tool *** 798,808 **** if (c instanceof JToolBar) { ! toolBar = (JToolBar) c; installDefaults(); installComponents(); ! installListeners(); ! installKeyboardActions(); } } --- 798,808 ---- if (c instanceof JToolBar) { ! toolBar = (JToolBar) c; installDefaults(); installComponents(); ! installListeners(); ! installKeyboardActions(); } } *************** public class BasicToolBarUI extends Tool *** 894,907 **** { if (c instanceof AbstractButton) { ! AbstractButton b = (AbstractButton) c; ! b.setRolloverEnabled(false); // Save old border in hashtable. ! if (b.getBorder() != null) borders.put(b, b.getBorder()); ! ! b.setBorder(nonRolloverBorder); } } --- 894,907 ---- { if (c instanceof AbstractButton) { ! AbstractButton b = (AbstractButton) c; ! b.setRolloverEnabled(false); // Save old border in hashtable. ! if (b.getBorder() != null) borders.put(b, b.getBorder()); ! ! b.setBorder(nonRolloverBorder); } } *************** public class BasicToolBarUI extends Tool *** 931,941 **** { AbstractButton b = (AbstractButton) c; b.setRolloverEnabled(false); ! // Save old border in hashtable. if (b.getBorder() != null) ! borders.put(b, b.getBorder()); ! b.setBorder(rolloverBorder); } } --- 931,941 ---- { AbstractButton b = (AbstractButton) c; b.setRolloverEnabled(false); ! // Save old border in hashtable. if (b.getBorder() != null) ! borders.put(b, b.getBorder()); ! b.setBorder(rolloverBorder); } } *************** public class BasicToolBarUI extends Tool *** 1139,1145 **** public void mouseDragged(MouseEvent e) { if (isDragging) ! dragTo(e.getPoint(), origin); } /** --- 1139,1145 ---- public void mouseDragged(MouseEvent e) { if (isDragging) ! dragTo(e.getPoint(), origin); } /** *************** public class BasicToolBarUI extends Tool *** 1182,1188 **** public void mousePressed(MouseEvent e) { if (! toolBar.isFloatable()) ! return; Point ssd = e.getPoint(); Insets insets = toolBar.getInsets(); --- 1182,1188 ---- public void mousePressed(MouseEvent e) { if (! toolBar.isFloatable()) ! return; Point ssd = e.getPoint(); Insets insets = toolBar.getInsets(); *************** public class BasicToolBarUI extends Tool *** 1190,1202 **** // Verify that this click occurs in the top inset. if (toolBar.getOrientation() == SwingConstants.HORIZONTAL) { ! if (e.getX() > insets.left) ! return; } else { ! if (e.getY() > insets.top) ! return; } origin = new Point(0, 0); --- 1190,1202 ---- // Verify that this click occurs in the top inset. if (toolBar.getOrientation() == SwingConstants.HORIZONTAL) { ! if (e.getX() > insets.left) ! return; } else { ! if (e.getY() > insets.top) ! return; } origin = new Point(0, 0); *************** public class BasicToolBarUI extends Tool *** 1204,1219 **** SwingUtilities.convertPointToScreen(ssd, toolBar); if (! (SwingUtilities.getAncestorOfClass(Window.class, toolBar) instanceof UIResource)) ! // Need to know who keeps the toolBar if it gets dragged back into it. ! origParent = toolBar.getParent(); ! if (toolBar.isShowing()) SwingUtilities.convertPointToScreen(origin, toolBar); isDragging = true; if (dragWindow != null) ! dragWindow.setOffset(new Point(cachedBounds.width / 2, cachedBounds.height / 2)); dragTo(e.getPoint(), origin); --- 1204,1219 ---- SwingUtilities.convertPointToScreen(ssd, toolBar); if (! (SwingUtilities.getAncestorOfClass(Window.class, toolBar) instanceof UIResource)) ! // Need to know who keeps the toolBar if it gets dragged back into it. ! origParent = toolBar.getParent(); ! if (toolBar.isShowing()) SwingUtilities.convertPointToScreen(origin, toolBar); isDragging = true; if (dragWindow != null) ! dragWindow.setOffset(new Point(cachedBounds.width / 2, cachedBounds.height / 2)); dragTo(e.getPoint(), origin); *************** public class BasicToolBarUI extends Tool *** 1227,1233 **** public void mouseReleased(MouseEvent e) { if (! isDragging || ! toolBar.isFloatable()) ! return; isDragging = false; floatAt(e.getPoint(), origin); --- 1227,1233 ---- public void mouseReleased(MouseEvent e) { if (! isDragging || ! toolBar.isFloatable()) ! return; isDragging = false; floatAt(e.getPoint(), origin); *************** public class BasicToolBarUI extends Tool *** 1267,1273 **** public Color getBorderColor() { if (borderColor == null) ! return Color.BLACK; return borderColor; } --- 1267,1273 ---- public Color getBorderColor() { if (borderColor == null) ! return Color.BLACK; return borderColor; } *************** public class BasicToolBarUI extends Tool *** 1341,1347 **** public void setOrientation(int o) { toolBar.setOrientation(o); ! if (dragWindow != null) dragWindow.setOrientation(o); } } --- 1341,1347 ---- public void setOrientation(int o) { toolBar.setOrientation(o); ! if (dragWindow != null) dragWindow.setOrientation(o); } } *************** public class BasicToolBarUI extends Tool *** 1364,1373 **** if (origParent != null) { ! origParent.add(toolBar, ! (constraintBeforeFloating != null) ! ? constraintBeforeFloating : BorderLayout.NORTH); ! toolBar.setOrientation(lastGoodOrientation); } origParent.invalidate(); --- 1364,1373 ---- if (origParent != null) { ! origParent.add(toolBar, ! (constraintBeforeFloating != null) ! ? constraintBeforeFloating : BorderLayout.NORTH); ! toolBar.setOrientation(lastGoodOrientation); } origParent.invalidate(); *************** public class BasicToolBarUI extends Tool *** 1410,1425 **** { if (e.getChild() instanceof JButton) { ! JButton b = (JButton) e.getChild(); ! if (b.getBorder() != null) ! borders.put(b, b.getBorder()); } if (isRolloverBorders()) ! setBorderToRollover(e.getChild()); else ! setBorderToNonRollover(e.getChild()); cachedBounds = toolBar.getPreferredSize(); cachedOrientation = toolBar.getOrientation(); --- 1410,1425 ---- { if (e.getChild() instanceof JButton) { ! JButton b = (JButton) e.getChild(); ! if (b.getBorder() != null) ! borders.put(b, b.getBorder()); } if (isRolloverBorders()) ! setBorderToRollover(e.getChild()); else ! setBorderToNonRollover(e.getChild()); cachedBounds = toolBar.getPreferredSize(); cachedOrientation = toolBar.getOrientation(); *************** public class BasicToolBarUI extends Tool *** 1479,1485 **** /** * Receives notification when the toolbar or one of it's component * receives the keyboard input focus. ! * * @param e the focus event */ public void focusGained(FocusEvent e) --- 1479,1485 ---- /** * Receives notification when the toolbar or one of it's component * receives the keyboard input focus. ! * * @param e the focus event */ public void focusGained(FocusEvent e) *************** public class BasicToolBarUI extends Tool *** 1491,1497 **** /** * Receives notification when the toolbar or one of it's component * looses the keyboard input focus. ! * * @param e the focus event */ public void focusLost(FocusEvent e) --- 1491,1497 ---- /** * Receives notification when the toolbar or one of it's component * looses the keyboard input focus. ! * * @param e the focus event */ public void focusLost(FocusEvent e) *************** public class BasicToolBarUI extends Tool *** 1522,1536 **** { if (c instanceof JToolBar) { ! JToolBar tb = (JToolBar) c; ! int orientation = tb.getOrientation(); ! if (! tb.isFloatable()) ! return new Insets(regular, regular, regular, regular); ! else if (orientation == SwingConstants.HORIZONTAL) ! return new Insets(regular, offset, regular, regular); ! else ! return new Insets(offset, regular, regular, regular); } return new Insets(0, 0, 0, 0); --- 1522,1536 ---- { if (c instanceof JToolBar) { ! JToolBar tb = (JToolBar) c; ! int orientation = tb.getOrientation(); ! if (! tb.isFloatable()) ! return new Insets(regular, regular, regular, regular); ! else if (orientation == SwingConstants.HORIZONTAL) ! return new Insets(regular, offset, regular, regular); ! else ! return new Insets(offset, regular, regular, regular); } return new Insets(0, 0, 0, 0); *************** public class BasicToolBarUI extends Tool *** 1568,1576 **** int count = 0; for (int i = x; i < (w + x); i += hgap) ! for (int j = ((count++ % 2) == 0) ? y : (y + (2 * size)); j < (h + y); ! j += vgap) ! g.fillRect(i, j, size, size); g.setColor(saved); } --- 1568,1576 ---- int count = 0; for (int i = x; i < (w + x); i += hgap) ! for (int j = ((count++ % 2) == 0) ? y : (y + (2 * size)); j < (h + y); ! j += vgap) ! g.fillRect(i, j, size, size); g.setColor(saved); } *************** public class BasicToolBarUI extends Tool *** 1590,1609 **** { if (c instanceof JToolBar) { ! JToolBar tb = (JToolBar) c; ! int orientation = tb.getOrientation(); ! if (orientation == SwingConstants.HORIZONTAL) ! { ! paintBumps(g, x, y, offset, height, 1, Color.WHITE); ! paintBumps(g, x + 1, y + 1, offset - 1, height - 1, 1, Color.GRAY); ! } ! else ! { ! paintBumps(g, x, y, width, offset, 1, Color.WHITE); ! paintBumps(g, x + 1, y + 1, width - 1, offset - 1, 1, Color.GRAY); ! } } } } --- 1590,1609 ---- { if (c instanceof JToolBar) { ! JToolBar tb = (JToolBar) c; ! int orientation = tb.getOrientation(); ! if (orientation == SwingConstants.HORIZONTAL) ! { ! paintBumps(g, x, y, offset, height, 1, Color.WHITE); ! paintBumps(g, x + 1, y + 1, offset - 1, height - 1, 1, Color.GRAY); ! } ! else ! { ! paintBumps(g, x, y, width, offset, 1, Color.WHITE); ! paintBumps(g, x + 1, y + 1, width - 1, offset - 1, 1, Color.GRAY); ! } } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicToolTipUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicToolTipUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicToolTipUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicToolTipUI.java Tue Jan 11 19:46:05 2011 *************** public class BasicToolTipUI extends Tool *** 80,86 **** BasicHTML.updateRenderer(tip, text); } } ! } /** The shared instance of BasicToolTipUI used for all ToolTips. */ --- 80,86 ---- BasicHTML.updateRenderer(tip, text); } } ! } /** The shared instance of BasicToolTipUI used for all ToolTips. */ *************** public class BasicToolTipUI extends Tool *** 103,109 **** } /** ! * This method creates a new BasicToolTip UI for the given * JComponent. * * @param c The JComponent to create a UI for. --- 103,109 ---- } /** ! * This method creates a new BasicToolTip UI for the given * JComponent. * * @param c The JComponent to create a UI for. *************** public class BasicToolTipUI extends Tool *** 245,254 **** if (view != null) view.paint(g, paintR); else ! g.drawString(text, paintR.x + 3, paintR.y + ascent); g.setFont(oldFont); ! g.setColor(saved); } /** --- 245,254 ---- if (view != null) view.paint(g, paintR); else ! g.drawString(text, paintR.x + 3, paintR.y + ascent); g.setFont(oldFont); ! g.setColor(saved); } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.tree.VariableHeightLa *** 109,115 **** /** * A delegate providing the user interface for JTree according to * the Basic look and feel. ! * * @see javax.swing.JTree * @author Lillian Angel (langel@redhat.com) * @author Sascha Brawer (brawer@dandelis.ch) --- 109,115 ---- /** * A delegate providing the user interface for JTree according to * the Basic look and feel. ! * * @see javax.swing.JTree * @author Lillian Angel (langel@redhat.com) * @author Sascha Brawer (brawer@dandelis.ch) *************** public class BasicTreeUI *** 174,180 **** * Set to false when editing and shouldSelectCall() returns true meaning the * node should be selected before editing, used in completeEditing. * GNU Classpath editing is implemented differently, so this value is not ! * actually read anywhere. However it is always set correctly to maintain * interoperability with the derived classes that read this field. */ protected boolean stopEditingInCompleteEditing; --- 174,180 ---- * Set to false when editing and shouldSelectCall() returns true meaning the * node should be selected before editing, used in completeEditing. * GNU Classpath editing is implemented differently, so this value is not ! * actually read anywhere. However it is always set correctly to maintain * interoperability with the derived classes that read this field. */ protected boolean stopEditingInCompleteEditing; *************** public class BasicTreeUI *** 248,254 **** /** The max height of the nodes in the tree. */ int maxHeight; ! /** The hash color. */ Color hashColor; --- 248,254 ---- /** The max height of the nodes in the tree. */ int maxHeight; ! /** The hash color. */ Color hashColor; *************** public class BasicTreeUI *** 294,300 **** /** * Returns an instance of the UI delegate for the specified component. ! * * @param c the JComponent for which we need a UI delegate for. * @return the ComponentUI for c. */ --- 294,300 ---- /** * Returns an instance of the UI delegate for the specified component. ! * * @param c the JComponent for which we need a UI delegate for. * @return the ComponentUI for c. */ *************** public class BasicTreeUI *** 305,311 **** /** * Returns the Hash color. ! * * @return the Color of the Hash. */ protected Color getHashColor() --- 305,311 ---- /** * Returns the Hash color. ! * * @return the Color of the Hash. */ protected Color getHashColor() *************** public class BasicTreeUI *** 315,321 **** /** * Sets the Hash color. ! * * @param color the Color to set the Hash to. */ protected void setHashColor(Color color) --- 315,321 ---- /** * Sets the Hash color. ! * * @param color the Color to set the Hash to. */ protected void setHashColor(Color color) *************** public class BasicTreeUI *** 325,331 **** /** * Sets the left child's indent value. ! * * @param newAmount is the new indent value for the left child. */ public void setLeftChildIndent(int newAmount) --- 325,331 ---- /** * Sets the left child's indent value. ! * * @param newAmount is the new indent value for the left child. */ public void setLeftChildIndent(int newAmount) *************** public class BasicTreeUI *** 335,341 **** /** * Returns the indent value for the left child. ! * * @return the indent value for the left child. */ public int getLeftChildIndent() --- 335,341 ---- /** * Returns the indent value for the left child. ! * * @return the indent value for the left child. */ public int getLeftChildIndent() *************** public class BasicTreeUI *** 345,351 **** /** * Sets the right child's indent value. ! * * @param newAmount is the new indent value for the right child. */ public void setRightChildIndent(int newAmount) --- 345,351 ---- /** * Sets the right child's indent value. ! * * @param newAmount is the new indent value for the right child. */ public void setRightChildIndent(int newAmount) *************** public class BasicTreeUI *** 355,361 **** /** * Returns the indent value for the right child. ! * * @return the indent value for the right child. */ public int getRightChildIndent() --- 355,361 ---- /** * Returns the indent value for the right child. ! * * @return the indent value for the right child. */ public int getRightChildIndent() *************** public class BasicTreeUI *** 365,371 **** /** * Sets the expanded icon. ! * * @param newG is the new expanded icon. */ public void setExpandedIcon(Icon newG) --- 365,371 ---- /** * Sets the expanded icon. ! * * @param newG is the new expanded icon. */ public void setExpandedIcon(Icon newG) *************** public class BasicTreeUI *** 375,381 **** /** * Returns the current expanded icon. ! * * @return the current expanded icon. */ public Icon getExpandedIcon() --- 375,381 ---- /** * Returns the current expanded icon. ! * * @return the current expanded icon. */ public Icon getExpandedIcon() *************** public class BasicTreeUI *** 385,391 **** /** * Sets the collapsed icon. ! * * @param newG is the new collapsed icon. */ public void setCollapsedIcon(Icon newG) --- 385,391 ---- /** * Sets the collapsed icon. ! * * @param newG is the new collapsed icon. */ public void setCollapsedIcon(Icon newG) *************** public class BasicTreeUI *** 395,401 **** /** * Returns the current collapsed icon. ! * * @return the current collapsed icon. */ public Icon getCollapsedIcon() --- 395,401 ---- /** * Returns the current collapsed icon. ! * * @return the current collapsed icon. */ public Icon getCollapsedIcon() *************** public class BasicTreeUI *** 405,411 **** /** * Updates the componentListener, if necessary. ! * * @param largeModel sets this.largeModel to it. */ protected void setLargeModel(boolean largeModel) --- 405,411 ---- /** * Updates the componentListener, if necessary. ! * * @param largeModel sets this.largeModel to it. */ protected void setLargeModel(boolean largeModel) *************** public class BasicTreeUI *** 421,427 **** /** * Returns true if largeModel is set ! * * @return true if largeModel is set, otherwise false. */ protected boolean isLargeModel() --- 421,427 ---- /** * Returns true if largeModel is set ! * * @return true if largeModel is set, otherwise false. */ protected boolean isLargeModel() *************** public class BasicTreeUI *** 431,437 **** /** * Sets the row height. ! * * @param rowHeight is the height to set this.rowHeight to. */ protected void setRowHeight(int rowHeight) --- 431,437 ---- /** * Sets the row height. ! * * @param rowHeight is the height to set this.rowHeight to. */ protected void setRowHeight(int rowHeight) *************** public class BasicTreeUI *** 444,450 **** /** * Returns the current row height. ! * * @return current row height. */ protected int getRowHeight() --- 444,450 ---- /** * Returns the current row height. ! * * @return current row height. */ protected int getRowHeight() *************** public class BasicTreeUI *** 455,461 **** /** * Sets the TreeCellRenderer to tcr. This invokes * updateRenderer. ! * * @param tcr is the new TreeCellRenderer. */ protected void setCellRenderer(TreeCellRenderer tcr) --- 455,461 ---- /** * Sets the TreeCellRenderer to tcr. This invokes * updateRenderer. ! * * @param tcr is the new TreeCellRenderer. */ protected void setCellRenderer(TreeCellRenderer tcr) *************** public class BasicTreeUI *** 469,483 **** // Refresh the layout if necessary. if (treeState != null) { ! treeState.invalidateSizes(); ! updateSize(); } } /** * Return currentCellRenderer, which will either be the trees renderer, or * defaultCellRenderer, which ever was not null. ! * * @return the current Cell Renderer */ protected TreeCellRenderer getCellRenderer() --- 469,483 ---- // Refresh the layout if necessary. if (treeState != null) { ! treeState.invalidateSizes(); ! updateSize(); } } /** * Return currentCellRenderer, which will either be the trees renderer, or * defaultCellRenderer, which ever was not null. ! * * @return the current Cell Renderer */ protected TreeCellRenderer getCellRenderer() *************** public class BasicTreeUI *** 490,496 **** /** * Sets the tree's model. ! * * @param model to set the treeModel to. */ protected void setModel(TreeModel model) --- 490,496 ---- /** * Sets the tree's model. ! * * @param model to set the treeModel to. */ protected void setModel(TreeModel model) *************** public class BasicTreeUI *** 515,521 **** /** * Returns the tree's model ! * * @return treeModel */ protected TreeModel getModel() --- 515,521 ---- /** * Returns the tree's model ! * * @return treeModel */ protected TreeModel getModel() *************** public class BasicTreeUI *** 525,531 **** /** * Sets the root to being visible. ! * * @param newValue sets the visibility of the root */ protected void setRootVisible(boolean newValue) --- 525,531 ---- /** * Sets the root to being visible. ! * * @param newValue sets the visibility of the root */ protected void setRootVisible(boolean newValue) *************** public class BasicTreeUI *** 536,542 **** /** * Returns true if the root is visible. ! * * @return true if the root is visible. */ protected boolean isRootVisible() --- 536,542 ---- /** * Returns true if the root is visible. ! * * @return true if the root is visible. */ protected boolean isRootVisible() *************** public class BasicTreeUI *** 546,552 **** /** * Determines whether the node handles are to be displayed. ! * * @param newValue sets whether or not node handles should be displayed. */ protected void setShowsRootHandles(boolean newValue) --- 546,552 ---- /** * Determines whether the node handles are to be displayed. ! * * @param newValue sets whether or not node handles should be displayed. */ protected void setShowsRootHandles(boolean newValue) *************** public class BasicTreeUI *** 562,568 **** /** * Returns true if the node handles are to be displayed. ! * * @return true if the node handles are to be displayed. */ protected boolean getShowsRootHandles() --- 562,568 ---- /** * Returns true if the node handles are to be displayed. ! * * @return true if the node handles are to be displayed. */ protected boolean getShowsRootHandles() *************** public class BasicTreeUI *** 572,578 **** /** * Sets the cell editor. ! * * @param editor to set the cellEditor to. */ protected void setCellEditor(TreeCellEditor editor) --- 572,578 ---- /** * Sets the cell editor. ! * * @param editor to set the cellEditor to. */ protected void setCellEditor(TreeCellEditor editor) *************** public class BasicTreeUI *** 582,588 **** /** * Returns the TreeCellEditor for this tree. ! * * @return the cellEditor for this tree. */ protected TreeCellEditor getCellEditor() --- 582,588 ---- /** * Returns the TreeCellEditor for this tree. ! * * @return the cellEditor for this tree. */ protected TreeCellEditor getCellEditor() *************** public class BasicTreeUI *** 592,598 **** /** * Configures the receiver to allow, or not allow, editing. ! * * @param newValue sets the receiver to allow editing if true. */ protected void setEditable(boolean newValue) --- 592,598 ---- /** * Configures the receiver to allow, or not allow, editing. ! * * @param newValue sets the receiver to allow editing if true. */ protected void setEditable(boolean newValue) *************** public class BasicTreeUI *** 602,608 **** /** * Returns true if the receiver allows editing. ! * * @return true if the receiver allows editing. */ protected boolean isEditable() --- 602,608 ---- /** * Returns true if the receiver allows editing. ! * * @return true if the receiver allows editing. */ protected boolean isEditable() *************** public class BasicTreeUI *** 613,619 **** /** * Resets the selection model. The appropriate listeners are installed on the * model. ! * * @param newLSM resets the selection model. */ protected void setSelectionModel(TreeSelectionModel newLSM) --- 613,619 ---- /** * Resets the selection model. The appropriate listeners are installed on the * model. ! * * @param newLSM resets the selection model. */ protected void setSelectionModel(TreeSelectionModel newLSM) *************** public class BasicTreeUI *** 628,634 **** /** * Returns the current selection model. ! * * @return the current selection model. */ protected TreeSelectionModel getSelectionModel() --- 628,634 ---- /** * Returns the current selection model. ! * * @return the current selection model. */ protected TreeSelectionModel getSelectionModel() *************** public class BasicTreeUI *** 640,646 **** * Returns the Rectangle enclosing the label portion that the last item in * path will be drawn to. Will return null if any component in path is * currently valid. ! * * @param tree is the current tree the path will be drawn to. * @param path is the current path the tree to draw to. * @return the Rectangle enclosing the label portion that the last item in the --- 640,646 ---- * Returns the Rectangle enclosing the label portion that the last item in * path will be drawn to. Will return null if any component in path is * currently valid. ! * * @param tree is the current tree the path will be drawn to. * @param path is the current path the tree to draw to. * @return the Rectangle enclosing the label portion that the last item in the *************** public class BasicTreeUI *** 664,670 **** /** * Returns the max height of all the nodes in the tree. ! * * @param tree - the current tree * @return the max height. */ --- 664,670 ---- /** * Returns the max height of all the nodes in the tree. ! * * @param tree - the current tree * @return the max height. */ *************** public class BasicTreeUI *** 690,700 **** maxHeight = Math.max(maxHeight, iconHeight + gap); } ! treeState.setRowHeight(maxHeight); return maxHeight; } ! /** * Get the tree node icon. */ --- 690,700 ---- maxHeight = Math.max(maxHeight, iconHeight + gap); } ! treeState.setRowHeight(maxHeight); return maxHeight; } ! /** * Get the tree node icon. */ *************** public class BasicTreeUI *** 711,717 **** /** * Returns the path for passed in row. If row is not visible null is returned. ! * * @param tree is the current tree to return path for. * @param row is the row number of the row to return. * @return the path for passed in row. If row is not visible null is returned. --- 711,717 ---- /** * Returns the path for passed in row. If row is not visible null is returned. ! * * @param tree is the current tree to return path for. * @param row is the row number of the row to return. * @return the path for passed in row. If row is not visible null is returned. *************** public class BasicTreeUI *** 724,730 **** /** * Returns the row that the last item identified in path is visible at. Will * return -1 if any of the elments in the path are not currently visible. ! * * @param tree is the current tree to return the row for. * @param path is the path used to find the row. * @return the row that the last item identified in path is visible at. Will --- 724,730 ---- /** * Returns the row that the last item identified in path is visible at. Will * return -1 if any of the elments in the path are not currently visible. ! * * @param tree is the current tree to return the row for. * @param path is the path used to find the row. * @return the row that the last item identified in path is visible at. Will *************** public class BasicTreeUI *** 738,744 **** /** * Returns the number of rows that are being displayed. ! * * @param tree is the current tree to return the number of rows for. * @return the number of rows being displayed. */ --- 738,744 ---- /** * Returns the number of rows that are being displayed. ! * * @param tree is the current tree to return the number of rows for. * @return the number of rows being displayed. */ *************** public class BasicTreeUI *** 752,758 **** * currently visible this will return null, otherwise it'll always return a * valid path. If you need to test if the returned object is exactly at x,y * you should get the bounds for the returned path and test x,y against that. ! * * @param tree the tree to search for the closest path * @param x is the x coordinate of the location to search * @param y is the y coordinate of the location to search --- 752,758 ---- * currently visible this will return null, otherwise it'll always return a * valid path. If you need to test if the returned object is exactly at x,y * you should get the bounds for the returned path and test x,y against that. ! * * @param tree the tree to search for the closest path * @param x is the x coordinate of the location to search * @param y is the y coordinate of the location to search *************** public class BasicTreeUI *** 766,772 **** /** * Returns true if the tree is being edited. The item that is being edited can * be returned by getEditingPath(). ! * * @param tree is the tree to check for editing. * @return true if the tree is being edited. */ --- 766,772 ---- /** * Returns true if the tree is being edited. The item that is being edited can * be returned by getEditingPath(). ! * * @param tree is the tree to check for editing. * @return true if the tree is being edited. */ *************** public class BasicTreeUI *** 779,785 **** * Stops the current editing session. This has no effect if the tree is not * being edited. Returns true if the editor allows the editing session to * stop. ! * * @param tree is the tree to stop the editing on * @return true if the editor allows the editing session to stop. */ --- 779,785 ---- * Stops the current editing session. This has no effect if the tree is not * being edited. Returns true if the editor allows the editing session to * stop. ! * * @param tree is the tree to stop the editing on * @return true if the editor allows the editing session to stop. */ *************** public class BasicTreeUI *** 796,802 **** /** * Cancels the current editing session. ! * * @param tree is the tree to cancel the editing session on. */ public void cancelEditing(JTree tree) --- 796,802 ---- /** * Cancels the current editing session. ! * * @param tree is the tree to cancel the editing session on. */ public void cancelEditing(JTree tree) *************** public class BasicTreeUI *** 811,817 **** /** * Selects the last item in path and tries to edit it. Editing will fail if * the CellEditor won't allow it for the selected item. ! * * @param tree is the tree to edit on. * @param path is the path in tree to edit on. */ --- 811,817 ---- /** * Selects the last item in path and tries to edit it. Editing will fail if * the CellEditor won't allow it for the selected item. ! * * @param tree is the tree to edit on. * @param path is the path in tree to edit on. */ *************** public class BasicTreeUI *** 824,830 **** /** * Returns the path to the element that is being editted. ! * * @param tree is the tree to get the editing path from. * @return the path that is being edited. */ --- 824,830 ---- /** * Returns the path to the element that is being editted. ! * * @param tree is the tree to get the editing path from. * @return the path that is being edited. */ *************** public class BasicTreeUI *** 858,864 **** updateDepthOffset(); setSelectionModel(tree.getSelectionModel()); configureLayoutCache(); ! treeState.setRootVisible(tree.isRootVisible()); treeSelectionModel.setRowMapper(treeState); updateSize(); } --- 858,864 ---- updateDepthOffset(); setSelectionModel(tree.getSelectionModel()); configureLayoutCache(); ! treeState.setRootVisible(tree.isRootVisible()); treeSelectionModel.setRowMapper(treeState); updateSize(); } *************** public class BasicTreeUI *** 887,893 **** * Creates an instance of NodeDimensions that is able to determine the size of * a given node in the tree. The node dimensions must be created before * configuring the layout cache. ! * * @return the NodeDimensions of a given node in the tree */ protected AbstractLayoutCache.NodeDimensions createNodeDimensions() --- 887,893 ---- * Creates an instance of NodeDimensions that is able to determine the size of * a given node in the tree. The node dimensions must be created before * configuring the layout cache. ! * * @return the NodeDimensions of a given node in the tree */ protected AbstractLayoutCache.NodeDimensions createNodeDimensions() *************** public class BasicTreeUI *** 898,904 **** /** * Creates a listener that is reponsible for the updates the UI based on how * the tree changes. ! * * @return the PropertyChangeListener that is reposnsible for the updates */ protected PropertyChangeListener createPropertyChangeListener() --- 898,904 ---- /** * Creates a listener that is reponsible for the updates the UI based on how * the tree changes. ! * * @return the PropertyChangeListener that is reposnsible for the updates */ protected PropertyChangeListener createPropertyChangeListener() *************** public class BasicTreeUI *** 909,915 **** /** * Creates the listener responsible for updating the selection based on mouse * events. ! * * @return the MouseListener responsible for updating. */ protected MouseListener createMouseListener() --- 909,915 ---- /** * Creates the listener responsible for updating the selection based on mouse * events. ! * * @return the MouseListener responsible for updating. */ protected MouseListener createMouseListener() *************** public class BasicTreeUI *** 920,926 **** /** * Creates the listener that is responsible for updating the display when * focus is lost/grained. ! * * @return the FocusListener responsible for updating. */ protected FocusListener createFocusListener() --- 920,926 ---- /** * Creates the listener that is responsible for updating the display when * focus is lost/grained. ! * * @return the FocusListener responsible for updating. */ protected FocusListener createFocusListener() *************** public class BasicTreeUI *** 930,936 **** /** * Creates the listener reponsible for getting key events from the tree. ! * * @return the KeyListener responsible for getting key events. */ protected KeyListener createKeyListener() --- 930,936 ---- /** * Creates the listener reponsible for getting key events from the tree. ! * * @return the KeyListener responsible for getting key events. */ protected KeyListener createKeyListener() *************** public class BasicTreeUI *** 941,947 **** /** * Creates the listener responsible for getting property change events from * the selection model. ! * * @returns the PropertyChangeListener reponsible for getting property change * events from the selection model. */ --- 941,947 ---- /** * Creates the listener responsible for getting property change events from * the selection model. ! * * @returns the PropertyChangeListener reponsible for getting property change * events from the selection model. */ *************** public class BasicTreeUI *** 953,959 **** /** * Creates the listener that updates the display based on selection change * methods. ! * * @return the TreeSelectionListener responsible for updating. */ protected TreeSelectionListener createTreeSelectionListener() --- 953,959 ---- /** * Creates the listener that updates the display based on selection change * methods. ! * * @return the TreeSelectionListener responsible for updating. */ protected TreeSelectionListener createTreeSelectionListener() *************** public class BasicTreeUI *** 963,969 **** /** * Creates a listener to handle events from the current editor ! * * @return the CellEditorListener that handles events from the current editor */ protected CellEditorListener createCellEditorListener() --- 963,969 ---- /** * Creates a listener to handle events from the current editor ! * * @return the CellEditorListener that handles events from the current editor */ protected CellEditorListener createCellEditorListener() *************** public class BasicTreeUI *** 975,981 **** * Creates and returns a new ComponentHandler. This is used for the large * model to mark the validCachedPreferredSize as invalid when the component * moves. ! * * @return a new ComponentHandler. */ protected ComponentListener createComponentListener() --- 975,981 ---- * Creates and returns a new ComponentHandler. This is used for the large * model to mark the validCachedPreferredSize as invalid when the component * moves. ! * * @return a new ComponentHandler. */ protected ComponentListener createComponentListener() *************** public class BasicTreeUI *** 986,992 **** /** * Creates and returns the object responsible for updating the treestate when * a nodes expanded state changes. ! * * @return the TreeExpansionListener responsible for updating the treestate */ protected TreeExpansionListener createTreeExpansionListener() --- 986,992 ---- /** * Creates and returns the object responsible for updating the treestate when * a nodes expanded state changes. ! * * @return the TreeExpansionListener responsible for updating the treestate */ protected TreeExpansionListener createTreeExpansionListener() *************** public class BasicTreeUI *** 997,1003 **** /** * Creates the object responsible for managing what is expanded, as well as * the size of nodes. ! * * @return the object responsible for managing what is expanded. */ protected AbstractLayoutCache createLayoutCache() --- 997,1003 ---- /** * Creates the object responsible for managing what is expanded, as well as * the size of nodes. ! * * @return the object responsible for managing what is expanded. */ protected AbstractLayoutCache createLayoutCache() *************** public class BasicTreeUI *** 1007,1013 **** /** * Returns the renderer pane that renderer components are placed in. ! * * @return the rendererpane that render components are placed in. */ protected CellRendererPane createCellRendererPane() --- 1007,1013 ---- /** * Returns the renderer pane that renderer components are placed in. ! * * @return the rendererpane that render components are placed in. */ protected CellRendererPane createCellRendererPane() *************** public class BasicTreeUI *** 1017,1023 **** /** * Creates a default cell editor. ! * * @return the default cell editor. */ protected TreeCellEditor createDefaultCellEditor() --- 1017,1023 ---- /** * Creates a default cell editor. ! * * @return the default cell editor. */ protected TreeCellEditor createDefaultCellEditor() *************** public class BasicTreeUI *** 1035,1041 **** /** * Returns the default cell renderer that is used to do the stamping of each * node. ! * * @return the default cell renderer that is used to do the stamping of each * node. */ --- 1035,1041 ---- /** * Returns the default cell renderer that is used to do the stamping of each * node. ! * * @return the default cell renderer that is used to do the stamping of each * node. */ *************** public class BasicTreeUI *** 1046,1052 **** /** * Returns a listener that can update the tree when the model changes. ! * * @return a listener that can update the tree when the model changes. */ protected TreeModelListener createTreeModelListener() --- 1046,1052 ---- /** * Returns a listener that can update the tree when the model changes. ! * * @return a listener that can update the tree when the model changes. */ protected TreeModelListener createTreeModelListener() *************** public class BasicTreeUI *** 1099,1105 **** /** * The vertical element of legs between nodes starts at the bottom of the * parent node by default. This method makes the leg start below that. ! * * @return the vertical leg buffer */ protected int getVerticalLegBuffer() --- 1099,1105 ---- /** * The vertical element of legs between nodes starts at the bottom of the * parent node by default. This method makes the leg start below that. ! * * @return the vertical leg buffer */ protected int getVerticalLegBuffer() *************** public class BasicTreeUI *** 1111,1117 **** * The horizontal element of legs between nodes starts at the right of the * left-hand side of the child node by default. This method makes the leg end * before that. ! * * @return the horizontal leg buffer */ protected int getHorizontalLegBuffer() --- 1111,1117 ---- * The horizontal element of legs between nodes starts at the right of the * left-hand side of the child node by default. This method makes the leg end * before that. ! * * @return the horizontal leg buffer */ protected int getHorizontalLegBuffer() *************** public class BasicTreeUI *** 1133,1139 **** * Updates the expanded state of all the descendants of the path * by getting the expanded descendants from the tree and forwarding to the * tree state. ! * * @param path the path used to update the expanded states */ protected void updateExpandedDescendants(TreePath path) --- 1133,1139 ---- * Updates the expanded state of all the descendants of the path * by getting the expanded descendants from the tree and forwarding to the * tree state. ! * * @param path the path used to update the expanded states */ protected void updateExpandedDescendants(TreePath path) *************** public class BasicTreeUI *** 1146,1152 **** /** * Returns a path to the last child of parent ! * * @param parent is the topmost path to specified * @return a path to the last child of parent */ --- 1146,1152 ---- /** * Returns a path to the last child of parent ! * * @param parent is the topmost path to specified * @return a path to the last child of parent */ *************** public class BasicTreeUI *** 1206,1229 **** { if (tree != null) { ! TreeCellRenderer rend = tree.getCellRenderer(); ! if (rend != null) ! { ! createdRenderer = false; ! currentCellRenderer = rend; ! if (createdCellEditor) ! tree.setCellEditor(null); ! } ! else ! { ! tree.setCellRenderer(createDefaultCellRenderer()); ! createdRenderer = true; ! } } else { ! currentCellRenderer = null; ! createdRenderer = false; } updateCellEditor(); --- 1206,1229 ---- { if (tree != null) { ! TreeCellRenderer rend = tree.getCellRenderer(); ! if (rend != null) ! { ! createdRenderer = false; ! currentCellRenderer = rend; ! if (createdCellEditor) ! tree.setCellEditor(null); ! } ! else ! { ! tree.setCellRenderer(createDefaultCellRenderer()); ! createdRenderer = true; ! } } else { ! currentCellRenderer = null; ! createdRenderer = false; } updateCellEditor(); *************** public class BasicTreeUI *** 1262,1268 **** /** * Messaged from the VisibleTreeNode after it has been expanded. ! * * @param path is the path that has been expanded. */ protected void pathWasExpanded(TreePath path) --- 1262,1268 ---- /** * Messaged from the VisibleTreeNode after it has been expanded. ! * * @param path is the path that has been expanded. */ protected void pathWasExpanded(TreePath path) *************** public class BasicTreeUI *** 1289,1299 **** { LookAndFeel.installColorsAndFont(tree, "Tree.background", "Tree.foreground", "Tree.font"); ! hashColor = UIManager.getColor("Tree.hash"); if (hashColor == null) hashColor = Color.black; ! tree.setOpaque(true); rightChildIndent = UIManager.getInt("Tree.rightChildIndent"); --- 1289,1299 ---- { LookAndFeel.installColorsAndFont(tree, "Tree.background", "Tree.foreground", "Tree.font"); ! hashColor = UIManager.getColor("Tree.hash"); if (hashColor == null) hashColor = Color.black; ! tree.setOpaque(true); rightChildIndent = UIManager.getInt("Tree.rightChildIndent"); *************** public class BasicTreeUI *** 1383,1389 **** am.put(action.getValue(Action.NAME), action); action = new TreeTraverseAction(1, "selectChild"); am.put(action.getValue(Action.NAME), action); ! // TreeToggleAction. action = new TreeToggleAction("toggleAndAnchor"); am.put(action.getValue(Action.NAME), action); --- 1383,1389 ---- am.put(action.getValue(Action.NAME), action); action = new TreeTraverseAction(1, "selectChild"); am.put(action.getValue(Action.NAME), action); ! // TreeToggleAction. action = new TreeToggleAction("toggleAndAnchor"); am.put(action.getValue(Action.NAME), action); *************** public class BasicTreeUI *** 1401,1420 **** am.put(action.getValue(Action.NAME), action); action = new TreePageAction(1, "scrollDownChangeLead"); am.put(action.getValue(Action.NAME), action); ! // Tree editing actions action = new TreeStartEditingAction("startEditing"); am.put(action.getValue(Action.NAME), action); action = new TreeCancelEditingAction("cancel"); am.put(action.getValue(Action.NAME), action); ! return am; } /** * Converts the modifiers. ! * * @param mod - modifier to convert * @returns the new modifier */ --- 1401,1420 ---- am.put(action.getValue(Action.NAME), action); action = new TreePageAction(1, "scrollDownChangeLead"); am.put(action.getValue(Action.NAME), action); ! // Tree editing actions action = new TreeStartEditingAction("startEditing"); am.put(action.getValue(Action.NAME), action); action = new TreeCancelEditingAction("cancel"); am.put(action.getValue(Action.NAME), action); ! return am; } /** * Converts the modifiers. ! * * @param mod - modifier to convert * @returns the new modifier */ *************** public class BasicTreeUI *** 1492,1498 **** /** * Install the UI for the component ! * * @param c the component to install UI for */ public void installUI(JComponent c) --- 1492,1498 ---- /** * Install the UI for the component ! * * @param c the component to install UI for */ public void installUI(JComponent c) *************** public class BasicTreeUI *** 1506,1512 **** installListeners(); completeUIInstall(); } ! /** * Uninstall the defaults for the tree */ --- 1506,1512 ---- installListeners(); completeUIInstall(); } ! /** * Uninstall the defaults for the tree */ *************** public class BasicTreeUI *** 1519,1525 **** /** * Uninstall the UI for the component ! * * @param c the component to uninstall UI for */ public void uninstallUI(JComponent c) --- 1519,1525 ---- /** * Uninstall the UI for the component ! * * @param c the component to uninstall UI for */ public void uninstallUI(JComponent c) *************** public class BasicTreeUI *** 1539,1545 **** * method is invoked from the ComponentUI.update method when the specified * component is being painted. Subclasses should override this method and use * the specified Graphics object to render the content of the component. ! * * @param g the Graphics context in which to paint * @param c the component being painted; this argument is often ignored, but * might be used if the UI object is stateless and shared by multiple --- 1539,1545 ---- * method is invoked from the ComponentUI.update method when the specified * component is being painted. Subclasses should override this method and use * the specified Graphics object to render the content of the component. ! * * @param g the Graphics context in which to paint * @param c the component being painted; this argument is often ignored, but * might be used if the UI object is stateless and shared by multiple *************** public class BasicTreeUI *** 1548,1556 **** public void paint(Graphics g, JComponent c) { JTree tree = (JTree) c; ! int rows = treeState.getRowCount(); ! if (rows == 0) // There is nothing to do if the tree is empty. return; --- 1548,1556 ---- public void paint(Graphics g, JComponent c) { JTree tree = (JTree) c; ! int rows = treeState.getRowCount(); ! if (rows == 0) // There is nothing to do if the tree is empty. return; *************** public class BasicTreeUI *** 1639,1645 **** /** * Ensures that the rows identified by beginRow through endRow are visible. ! * * @param beginRow is the first row * @param endRow is the last row */ --- 1639,1645 ---- /** * Ensures that the rows identified by beginRow through endRow are visible. ! * * @param beginRow is the first row * @param endRow is the last row */ *************** public class BasicTreeUI *** 1662,1668 **** /** * Sets the preferred minimum size. ! * * @param newSize is the new preferred minimum size. */ public void setPreferredMinSize(Dimension newSize) --- 1662,1668 ---- /** * Sets the preferred minimum size. ! * * @param newSize is the new preferred minimum size. */ public void setPreferredMinSize(Dimension newSize) *************** public class BasicTreeUI *** 1672,1678 **** /** * Gets the preferred minimum size. ! * * @returns the preferred minimum size. */ public Dimension getPreferredMinSize() --- 1672,1678 ---- /** * Gets the preferred minimum size. ! * * @returns the preferred minimum size. */ public Dimension getPreferredMinSize() *************** public class BasicTreeUI *** 1686,1692 **** /** * Returns the preferred size to properly display the tree, this is a cover * method for getPreferredSize(c, false). ! * * @param c the component whose preferred size is being queried; this argument * is often ignored but might be used if the UI object is stateless * and shared by multiple components --- 1686,1692 ---- /** * Returns the preferred size to properly display the tree, this is a cover * method for getPreferredSize(c, false). ! * * @param c the component whose preferred size is being queried; this argument * is often ignored but might be used if the UI object is stateless * and shared by multiple components *************** public class BasicTreeUI *** 1700,1706 **** /** * Returns the preferred size to represent the tree in c. If checkConsistancy * is true, checkConsistancy is messaged first. ! * * @param c the component whose preferred size is being queried. * @param checkConsistancy if true must check consistancy * @return the preferred size --- 1700,1706 ---- /** * Returns the preferred size to represent the tree in c. If checkConsistancy * is true, checkConsistancy is messaged first. ! * * @param c the component whose preferred size is being queried. * @param checkConsistancy if true must check consistancy * @return the preferred size *************** public class BasicTreeUI *** 1721,1727 **** /** * Returns the minimum size for this component. Which will be the min * preferred size or (0,0). ! * * @param c the component whose min size is being queried. * @returns the preferred size or null */ --- 1721,1727 ---- /** * Returns the minimum size for this component. Which will be the min * preferred size or (0,0). ! * * @param c the component whose min size is being queried. * @returns the preferred size or null */ *************** public class BasicTreeUI *** 1733,1739 **** /** * Returns the maximum size for the component, which will be the preferred * size if the instance is currently in JTree or (0,0). ! * * @param c the component whose preferred size is being queried * @return the max size or null */ --- 1733,1739 ---- /** * Returns the maximum size for the component, which will be the preferred * size if the instance is currently in JTree or (0,0). ! * * @param c the component whose preferred size is being queried * @return the max size or null */ *************** public class BasicTreeUI *** 1763,1769 **** * with stopEditing, if messageCancel is true the editor is messaged with * cancelEditing. If messageTree is true, the treeModel is messaged with * valueForPathChanged. ! * * @param messageStop message to stop editing * @param messageCancel message to cancel editing * @param messageTree message to treeModel --- 1763,1769 ---- * with stopEditing, if messageCancel is true the editor is messaged with * cancelEditing. If messageTree is true, the treeModel is messaged with * valueForPathChanged. ! * * @param messageStop message to stop editing * @param messageCancel message to cancel editing * @param messageTree message to treeModel *************** public class BasicTreeUI *** 1808,1814 **** /** * Will start editing for node if there is a cellEditor and shouldSelectCall * returns true. This assumes that path is valid and visible. ! * * @param path is the path to start editing * @param event is the MouseEvent performed on the path * @return true if successful --- 1808,1814 ---- /** * Will start editing for node if there is a cellEditor and shouldSelectCall * returns true. This assumes that path is valid and visible. ! * * @param path is the path to start editing * @param event is the MouseEvent performed on the path * @return true if successful *************** public class BasicTreeUI *** 1826,1832 **** { if (ed.isCellEditable(event)) { ! editingRow = getRowForPath(tree, path); Object value = path.getLastPathComponent(); boolean isSelected = tree.isPathSelected(path); boolean isExpanded = tree.isExpanded(editingPath); --- 1826,1832 ---- { if (ed.isCellEditable(event)) { ! editingRow = getRowForPath(tree, path); Object value = path.getLastPathComponent(); boolean isSelected = tree.isPathSelected(path); boolean isExpanded = tree.isExpanded(editingPath); *************** public class BasicTreeUI *** 1852,1858 **** } else editorHasDifferentSize = false; ! // The editing component must be added to its container. We add the // container, not the editing component itself. tree.add(editingComponent); --- 1852,1858 ---- } else editorHasDifferentSize = false; ! // The editing component must be added to its container. We add the // container, not the editing component itself. tree.add(editingComponent); *************** public class BasicTreeUI *** 1880,1886 **** if (active != null) { MouseInputHandler ih = new MouseInputHandler(tree, active, event); ! } } --- 1880,1886 ---- if (active != null) { MouseInputHandler ih = new MouseInputHandler(tree, active, event); ! } } *************** public class BasicTreeUI *** 1910,1922 **** } else if (c.isFocusable()) c.requestFocus(); ! } /** * If the mouseX and mouseY are in the expand or * collapse region of the row, this will toggle the row. ! * * @param path the path we are concerned with * @param mouseX is the cursor's x position * @param mouseY is the cursor's y position --- 1910,1922 ---- } else if (c.isFocusable()) c.requestFocus(); ! } /** * If the mouseX and mouseY are in the expand or * collapse region of the row, this will toggle the row. ! * * @param path the path we are concerned with * @param mouseX is the cursor's x position * @param mouseY is the cursor's y position *************** public class BasicTreeUI *** 1932,1938 **** * Returns true if the mouseX and mouseY fall in * the area of row that is used to expand/collpse the node and the node at row * does not represent a leaf. ! * * @param path the path we are concerned with * @param mouseX is the cursor's x position * @param mouseY is the cursor's y position --- 1932,1938 ---- * Returns true if the mouseX and mouseY fall in * the area of row that is used to expand/collpse the node and the node at row * does not represent a leaf. ! * * @param path the path we are concerned with * @param mouseX is the cursor's x position * @param mouseY is the cursor's y position *************** public class BasicTreeUI *** 1956,1968 **** width = 18; Insets i = tree.getInsets(); ! int depth; if (isRootVisible()) depth = path.getPathCount()-1; else depth = path.getPathCount()-2; ! int left = getRowX(tree.getRowForPath(path), depth) - width + i.left; cntlClick = mouseX >= left && mouseX <= left + width; --- 1956,1968 ---- width = 18; Insets i = tree.getInsets(); ! int depth; if (isRootVisible()) depth = path.getPathCount()-1; else depth = path.getPathCount()-2; ! int left = getRowX(tree.getRowForPath(path), depth) - width + i.left; cntlClick = mouseX >= left && mouseX <= left + width; *************** public class BasicTreeUI *** 1973,1979 **** /** * Messaged when the user clicks the particular row, this invokes * toggleExpandState. ! * * @param path the path we are concerned with * @param mouseX is the cursor's x position * @param mouseY is the cursor's y position --- 1973,1979 ---- /** * Messaged when the user clicks the particular row, this invokes * toggleExpandState. ! * * @param path the path we are concerned with * @param mouseX is the cursor's x position * @param mouseY is the cursor's y position *************** public class BasicTreeUI *** 1988,1994 **** * expanding a path and JTree scroll on expand, ensureRowsAreVisible is * invoked to scroll as many of the children to visible as possible (tries to * scroll to last visible descendant of path). ! * * @param path the path we are concerned with */ protected void toggleExpandState(TreePath path) --- 1988,1994 ---- * expanding a path and JTree scroll on expand, ensureRowsAreVisible is * invoked to scroll as many of the children to visible as possible (tries to * scroll to last visible descendant of path). ! * * @param path the path we are concerned with */ protected void toggleExpandState(TreePath path) *************** public class BasicTreeUI *** 2006,2022 **** * event as "toggle selection event" if the CTRL button was pressed while * clicking. The event is not counted as toggle event if the associated * tree does not support the multiple selection. ! * * @param event is the MouseEvent performed on the row. * @return true signifies a mouse event on the node should toggle the * selection of only the row under the mouse. */ protected boolean isToggleSelectionEvent(MouseEvent event) { ! return ! (tree.getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) && ! ((event.getModifiersEx() & InputEvent.CTRL_DOWN_MASK) != 0); } /** --- 2006,2022 ---- * event as "toggle selection event" if the CTRL button was pressed while * clicking. The event is not counted as toggle event if the associated * tree does not support the multiple selection. ! * * @param event is the MouseEvent performed on the row. * @return true signifies a mouse event on the node should toggle the * selection of only the row under the mouse. */ protected boolean isToggleSelectionEvent(MouseEvent event) { ! return ! (tree.getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) && ! ((event.getModifiersEx() & InputEvent.CTRL_DOWN_MASK) != 0); } /** *************** public class BasicTreeUI *** 2025,2048 **** * event" if the SHIFT button was pressed while clicking. The event is not * counted as multiple selection event if the associated tree does not support * the multiple selection. ! * * @param event is the MouseEvent performed on the node. * @return true signifies a mouse event on the node should select from the * anchor point. */ protected boolean isMultiSelectEvent(MouseEvent event) { ! return ! (tree.getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) && ! ((event.getModifiersEx() & InputEvent.SHIFT_DOWN_MASK) != 0); } /** * Returning true indicates the row under the mouse should be toggled based on * the event. This is invoked after checkForClickInExpandControl, implying the * location is not in the expand (toggle) control. ! * * @param event is the MouseEvent performed on the row. * @return true indicates the row under the mouse should be toggled based on * the event. --- 2025,2048 ---- * event" if the SHIFT button was pressed while clicking. The event is not * counted as multiple selection event if the associated tree does not support * the multiple selection. ! * * @param event is the MouseEvent performed on the node. * @return true signifies a mouse event on the node should select from the * anchor point. */ protected boolean isMultiSelectEvent(MouseEvent event) { ! return ! (tree.getSelectionModel().getSelectionMode() != TreeSelectionModel.SINGLE_TREE_SELECTION) && ! ((event.getModifiersEx() & InputEvent.SHIFT_DOWN_MASK) != 0); } /** * Returning true indicates the row under the mouse should be toggled based on * the event. This is invoked after checkForClickInExpandControl, implying the * location is not in the expand (toggle) control. ! * * @param event is the MouseEvent performed on the row. * @return true indicates the row under the mouse should be toggled based on * the event. *************** public class BasicTreeUI *** 2065,2074 **** * or deselected. If the event identifies a multi selection event, the * selection is updated from the anchor point. Otherwise, the row is selected, * and the previous selection is cleared.

                                            ! * * @param path is the path selected for an event * @param event is the MouseEvent performed on the path. ! * * @see #isToggleSelectionEvent(MouseEvent) * @see #isMultiSelectEvent(MouseEvent) */ --- 2065,2074 ---- * or deselected. If the event identifies a multi selection event, the * selection is updated from the anchor point. Otherwise, the row is selected, * and the previous selection is cleared.

                                            ! * * @param path is the path selected for an event * @param event is the MouseEvent performed on the path. ! * * @see #isToggleSelectionEvent(MouseEvent) * @see #isMultiSelectEvent(MouseEvent) */ *************** public class BasicTreeUI *** 2108,2114 **** /** * Returns true if the node at row is a leaf. ! * * @param row is the row we are concerned with. * @return true if the node at row is a leaf. */ --- 2108,2114 ---- /** * Returns true if the node at row is a leaf. ! * * @param row is the row we are concerned with. * @return true if the node at row is a leaf. */ *************** public class BasicTreeUI *** 2121,2127 **** Object node = pathForRow.getLastPathComponent(); return treeModel.isLeaf(node); } ! /** * The action to start editing at the current lead selection path. */ --- 2121,2127 ---- Object node = pathForRow.getLastPathComponent(); return treeModel.isLeaf(node); } ! /** * The action to start editing at the current lead selection path. */ *************** public class BasicTreeUI *** 2130,2155 **** { /** * Creates the new tree cancel editing action. ! * * @param name the name of the action (used in toString). */ public TreeStartEditingAction(String name) { super(name); ! } ! /** * Start editing at the current lead selection path. ! * * @param e the ActionEvent that caused this action. */ public void actionPerformed(ActionEvent e) { TreePath lead = tree.getLeadSelectionPath(); ! if (!tree.isEditing()) tree.startEditingAtPath(lead); } ! } /** * Updates the preferred size when scrolling, if necessary. --- 2130,2155 ---- { /** * Creates the new tree cancel editing action. ! * * @param name the name of the action (used in toString). */ public TreeStartEditingAction(String name) { super(name); ! } ! /** * Start editing at the current lead selection path. ! * * @param e the ActionEvent that caused this action. */ public void actionPerformed(ActionEvent e) { TreePath lead = tree.getLeadSelectionPath(); ! if (!tree.isEditing()) tree.startEditingAtPath(lead); } ! } /** * Updates the preferred size when scrolling, if necessary. *************** public class BasicTreeUI *** 2176,2182 **** /** * Invoked when the component's position changes. ! * * @param e the event that occurs when moving the component */ public void componentMoved(ComponentEvent e) --- 2176,2182 ---- /** * Invoked when the component's position changes. ! * * @param e the event that occurs when moving the component */ public void componentMoved(ComponentEvent e) *************** public class BasicTreeUI *** 2225,2231 **** /** * Returns the JScrollPane housing the JTree, or null if one isn't found. ! * * @return JScrollPane housing the JTree, or null if one isn't found. */ protected JScrollPane getScrollPane() --- 2225,2231 ---- /** * Returns the JScrollPane housing the JTree, or null if one isn't found. ! * * @return JScrollPane housing the JTree, or null if one isn't found. */ protected JScrollPane getScrollPane() *************** public class BasicTreeUI *** 2242,2248 **** /** * Public as a result of Timer. If the scrollBar is null, or not adjusting, * this stops the timer and updates the sizing. ! * * @param ae is the action performed */ public void actionPerformed(ActionEvent ae) --- 2242,2248 ---- /** * Public as a result of Timer. If the scrollBar is null, or not adjusting, * this stops the timer and updates the sizing. ! * * @param ae is the action performed */ public void actionPerformed(ActionEvent ae) *************** public class BasicTreeUI *** 2276,2282 **** /** * Messaged when editing has stopped in the tree. Tells the listeners * editing has stopped. ! * * @param e is the notification event */ public void editingStopped(ChangeEvent e) --- 2276,2282 ---- /** * Messaged when editing has stopped in the tree. Tells the listeners * editing has stopped. ! * * @param e is the notification event */ public void editingStopped(ChangeEvent e) *************** public class BasicTreeUI *** 2287,2293 **** /** * Messaged when editing has been canceled in the tree. This tells the * listeners the editor has canceled editing. ! * * @param e is the notification event */ public void editingCanceled(ChangeEvent e) --- 2287,2293 ---- /** * Messaged when editing has been canceled in the tree. This tells the * listeners the editor has canceled editing. ! * * @param e is the notification event */ public void editingCanceled(ChangeEvent e) *************** public class BasicTreeUI *** 2315,2321 **** * row. Invoked when a component gains the keyboard focus. The method * repaints the lead row that is shown differently when the tree is in * focus. ! * * @param e is the focus event that is activated */ public void focusGained(FocusEvent e) --- 2315,2321 ---- * row. Invoked when a component gains the keyboard focus. The method * repaints the lead row that is shown differently when the tree is in * focus. ! * * @param e is the focus event that is activated */ public void focusGained(FocusEvent e) *************** public class BasicTreeUI *** 2328,2334 **** * row. Invoked when a component loses the keyboard focus. The method * repaints the lead row that is shown differently when the tree is in * focus. ! * * @param e is the focus event that is deactivated */ public void focusLost(FocusEvent e) --- 2328,2334 ---- * row. Invoked when a component loses the keyboard focus. The method * repaints the lead row that is shown differently when the tree is in * focus. ! * * @param e is the focus event that is deactivated */ public void focusLost(FocusEvent e) *************** public class BasicTreeUI *** 2373,2379 **** * element whose first letter matches the alphanumeric key pressed by the * user. Subsequent same key presses move the keyboard focus to the next * object that starts with the same letter. ! * * @param e the key typed */ public void keyTyped(KeyEvent e) --- 2373,2379 ---- * element whose first letter matches the alphanumeric key pressed by the * user. Subsequent same key presses move the keyboard focus to the next * object that starts with the same letter. ! * * @param e the key typed */ public void keyTyped(KeyEvent e) *************** public class BasicTreeUI *** 2389,2410 **** return; } } ! // Not found below, search above: for (int row = 0; row < tree.getLeadSelectionRow(); row++) { if (checkMatch(row, typed)) { tree.setSelectionRow(row); ! tree.scrollRowToVisible(row); return; } } } ! /** * Check if the given tree row starts with this character ! * * @param row the tree row * @param typed the typed char, must be converted to lowercase * @return true if the given tree row starts with this character --- 2389,2410 ---- return; } } ! // Not found below, search above: for (int row = 0; row < tree.getLeadSelectionRow(); row++) { if (checkMatch(row, typed)) { tree.setSelectionRow(row); ! tree.scrollRowToVisible(row); return; } } } ! /** * Check if the given tree row starts with this character ! * * @param row the tree row * @param typed the typed char, must be converted to lowercase * @return true if the given tree row starts with this character *************** public class BasicTreeUI *** 2424,2430 **** /** * Invoked when a key has been pressed. ! * * @param e the key pressed */ public void keyPressed(KeyEvent e) --- 2424,2430 ---- /** * Invoked when a key has been pressed. ! * * @param e the key pressed */ public void keyPressed(KeyEvent e) *************** public class BasicTreeUI *** 2434,2440 **** /** * Invoked when a key has been released ! * * @param e the key released */ public void keyReleased(KeyEvent e) --- 2434,2440 ---- /** * Invoked when a key has been released ! * * @param e the key released */ public void keyReleased(KeyEvent e) *************** public class BasicTreeUI *** 2451,2457 **** extends MouseAdapter implements MouseMotionListener { ! /** * If the cell has been selected on mouse press. */ --- 2451,2457 ---- extends MouseAdapter implements MouseMotionListener { ! /** * If the cell has been selected on mouse press. */ *************** public class BasicTreeUI *** 2467,2473 **** /** * Invoked when a mouse button has been pressed on a component. ! * * @param e is the mouse event that occured */ public void mousePressed(MouseEvent e) --- 2467,2473 ---- /** * Invoked when a mouse button has been pressed on a component. ! * * @param e is the mouse event that occured */ public void mousePressed(MouseEvent e) *************** public class BasicTreeUI *** 2488,2494 **** * MOUSE_DRAGGED events will continue to be delivered to the component where * the drag originated until the mouse button is released (regardless of * whether the mouse position is within the bounds of the component). ! * * @param e is the mouse event that occured */ public void mouseDragged(MouseEvent e) --- 2488,2494 ---- * MOUSE_DRAGGED events will continue to be delivered to the component where * the drag originated until the mouse button is released (regardless of * whether the mouse position is within the bounds of the component). ! * * @param e is the mouse event that occured */ public void mouseDragged(MouseEvent e) *************** public class BasicTreeUI *** 2499,2505 **** /** * Invoked when the mouse button has been moved on a component (with no * buttons no down). ! * * @param e the mouse event that occured */ public void mouseMoved(MouseEvent e) --- 2499,2505 ---- /** * Invoked when the mouse button has been moved on a component (with no * buttons no down). ! * * @param e the mouse event that occured */ public void mouseMoved(MouseEvent e) *************** public class BasicTreeUI *** 2509,2515 **** /** * Invoked when a mouse button has been released on a component. ! * * @param e is the mouse event that occured */ public void mouseReleased(MouseEvent e) --- 2509,2515 ---- /** * Invoked when a mouse button has been released on a component. ! * * @param e is the mouse event that occured */ public void mouseReleased(MouseEvent e) *************** public class BasicTreeUI *** 2572,2578 **** /** * Constructor ! * * @param source that events are coming from * @param destination that receives all events * @param e is the event received --- 2572,2578 ---- /** * Constructor ! * * @param source that events are coming from * @param destination that receives all events * @param e is the event received *************** public class BasicTreeUI *** 2590,2596 **** /** * Invoked when the mouse button has been clicked (pressed and released) on * a component. ! * * @param e mouse event that occured */ public void mouseClicked(MouseEvent e) --- 2590,2596 ---- /** * Invoked when the mouse button has been clicked (pressed and released) on * a component. ! * * @param e mouse event that occured */ public void mouseClicked(MouseEvent e) *************** public class BasicTreeUI *** 2600,2606 **** /** * Invoked when a mouse button has been pressed on a component. ! * * @param e mouse event that occured */ public void mousePressed(MouseEvent e) --- 2600,2606 ---- /** * Invoked when a mouse button has been pressed on a component. ! * * @param e mouse event that occured */ public void mousePressed(MouseEvent e) *************** public class BasicTreeUI *** 2610,2616 **** /** * Invoked when a mouse button has been released on a component. ! * * @param e mouse event that occured */ public void mouseReleased(MouseEvent e) --- 2610,2616 ---- /** * Invoked when a mouse button has been released on a component. ! * * @param e mouse event that occured */ public void mouseReleased(MouseEvent e) *************** public class BasicTreeUI *** 2621,2627 **** /** * Invoked when the mouse enters a component. ! * * @param e mouse event that occured */ public void mouseEntered(MouseEvent e) --- 2621,2627 ---- /** * Invoked when the mouse enters a component. ! * * @param e mouse event that occured */ public void mouseEntered(MouseEvent e) *************** public class BasicTreeUI *** 2632,2638 **** /** * Invoked when the mouse exits a component. ! * * @param e mouse event that occured */ public void mouseExited(MouseEvent e) --- 2632,2638 ---- /** * Invoked when the mouse exits a component. ! * * @param e mouse event that occured */ public void mouseExited(MouseEvent e) *************** public class BasicTreeUI *** 2646,2652 **** * MOUSE_DRAGGED events will continue to be delivered to the component where * the drag originated until the mouse button is released (regardless of * whether the mouse position is within the bounds of the component). ! * * @param e mouse event that occured */ public void mouseDragged(MouseEvent e) --- 2646,2652 ---- * MOUSE_DRAGGED events will continue to be delivered to the component where * the drag originated until the mouse button is released (regardless of * whether the mouse position is within the bounds of the component). ! * * @param e mouse event that occured */ public void mouseDragged(MouseEvent e) *************** public class BasicTreeUI *** 2657,2663 **** /** * Invoked when the mouse cursor has been moved onto a component but no * buttons have been pushed. ! * * @param e mouse event that occured */ public void mouseMoved(MouseEvent e) --- 2657,2663 ---- /** * Invoked when the mouse cursor has been moved onto a component but no * buttons have been pushed. ! * * @param e mouse event that occured */ public void mouseMoved(MouseEvent e) *************** public class BasicTreeUI *** 2716,2722 **** * The calling method is responsible for determining the Y location. If * bounds is null, a newly created Rectangle should be returned, otherwise * the value should be placed in bounds and returned. ! * * @param cell the value to be represented * @param row row being queried * @param depth the depth of the row --- 2716,2722 ---- * The calling method is responsible for determining the Y location. If * bounds is null, a newly created Rectangle should be returned, otherwise * the value should be placed in bounds and returned. ! * * @param cell the value to be represented * @param row row being queried * @param depth the depth of the row *************** public class BasicTreeUI *** 2762,2774 **** // FIXME: The y should be handled by the layout cache. size = new Rectangle(getRowX(row, depth), prefSize.height * row, prefSize.width, prefSize.height); ! return size; } /** * Returns the amount to indent the given row ! * * @return amount to indent the given row. */ protected int getRowX(int row, int depth) --- 2762,2774 ---- // FIXME: The y should be handled by the layout cache. size = new Rectangle(getRowX(row, depth), prefSize.height * row, prefSize.width, prefSize.height); ! return size; } /** * Returns the amount to indent the given row ! * * @return amount to indent the given row. */ protected int getRowX(int row, int depth) *************** public class BasicTreeUI *** 2795,2801 **** /** * This method gets called when a bound property is changed. ! * * @param event A PropertyChangeEvent object describing the event source and * the property that has changed. */ --- 2795,2801 ---- /** * This method gets called when a bound property is changed. ! * * @param event A PropertyChangeEvent object describing the event source and * the property that has changed. */ *************** public class BasicTreeUI *** 2826,2832 **** } else if (property.equals(JTree.EDITABLE_PROPERTY)) setEditable(((Boolean) event.getNewValue()).booleanValue()); ! } } --- 2826,2832 ---- } else if (property.equals(JTree.EDITABLE_PROPERTY)) setEditable(((Boolean) event.getNewValue()).booleanValue()); ! } } *************** public class BasicTreeUI *** 2848,2854 **** /** * This method gets called when a bound property is changed. ! * * @param event A PropertyChangeEvent object describing the event source and * the property that has changed. */ --- 2848,2854 ---- /** * This method gets called when a bound property is changed. ! * * @param event A PropertyChangeEvent object describing the event source and * the property that has changed. */ *************** public class BasicTreeUI *** 2866,2872 **** { /** * Creates the new tree cancel editing action. ! * * @param name the name of the action (used in toString). */ public TreeCancelEditingAction(String name) --- 2866,2872 ---- { /** * Creates the new tree cancel editing action. ! * * @param name the name of the action (used in toString). */ public TreeCancelEditingAction(String name) *************** public class BasicTreeUI *** 2876,2883 **** /** * Invoked when an action occurs, cancels the cell editing (if the ! * tree cell is being edited). ! * * @param e event that occured */ public void actionPerformed(ActionEvent e) --- 2876,2883 ---- /** * Invoked when an action occurs, cancels the cell editing (if the ! * tree cell is being edited). ! * * @param e event that occured */ public void actionPerformed(ActionEvent e) *************** public class BasicTreeUI *** 2904,2910 **** /** * Called whenever an item in the tree has been expanded. ! * * @param event is the event that occured */ public void treeExpanded(TreeExpansionEvent event) --- 2904,2910 ---- /** * Called whenever an item in the tree has been expanded. ! * * @param event is the event that occured */ public void treeExpanded(TreeExpansionEvent event) *************** public class BasicTreeUI *** 2919,2925 **** /** * Called whenever an item in the tree has been collapsed. ! * * @param event is the event that occured */ public void treeCollapsed(TreeExpansionEvent event) --- 2919,2925 ---- /** * Called whenever an item in the tree has been collapsed. ! * * @param event is the event that occured */ public void treeCollapsed(TreeExpansionEvent event) *************** public class BasicTreeUI *** 2947,2953 **** /** * Creates a new TreeHomeAction instance. ! * * @param dir the direction to go to, -1 for home, * 1 for end * @param name the name of the action --- 2947,2953 ---- /** * Creates a new TreeHomeAction instance. ! * * @param dir the direction to go to, -1 for home, * 1 for end * @param name the name of the action *************** public class BasicTreeUI *** 2960,2966 **** /** * Invoked when an action occurs. ! * * @param e is the event that occured */ public void actionPerformed(ActionEvent e) --- 2960,2966 ---- /** * Invoked when an action occurs. ! * * @param e is the event that occured */ public void actionPerformed(ActionEvent e) *************** public class BasicTreeUI *** 3027,3033 **** /** * Returns true if the action is enabled. ! * * @return true if the action is enabled. */ public boolean isEnabled() --- 3027,3033 ---- /** * Returns true if the action is enabled. ! * * @return true if the action is enabled. */ public boolean isEnabled() *************** public class BasicTreeUI *** 3051,3057 **** /** * Creates a new TreeIncrementAction. ! * * @param dir up or down, -1 for up, 1 for down * @param name is the name of the direction */ --- 3051,3057 ---- /** * Creates a new TreeIncrementAction. ! * * @param dir up or down, -1 for up, 1 for down * @param name is the name of the direction */ *************** public class BasicTreeUI *** 3063,3069 **** /** * Invoked when an action occurs. ! * * @param e is the event that occured */ public void actionPerformed(ActionEvent e) --- 3063,3069 ---- /** * Invoked when an action occurs. ! * * @param e is the event that occured */ public void actionPerformed(ActionEvent e) *************** public class BasicTreeUI *** 3138,3151 **** tree.setAnchorSelectionPath(newPath); tree.setLeadSelectionPath(newPath); } ! // Ensure that the lead path is visible after the increment action. tree.scrollPathToVisible(tree.getLeadSelectionPath()); } /** * Returns true if the action is enabled. ! * * @return true if the action is enabled. */ public boolean isEnabled() --- 3138,3151 ---- tree.setAnchorSelectionPath(newPath); tree.setLeadSelectionPath(newPath); } ! // Ensure that the lead path is visible after the increment action. tree.scrollPathToVisible(tree.getLeadSelectionPath()); } /** * Returns true if the action is enabled. ! * * @return true if the action is enabled. */ public boolean isEnabled() *************** public class BasicTreeUI *** 3177,3183 **** * children will be null. Use e.getPath() to get the parent of the changed * node(s). e.getChildIndices() returns the index(es) of the changed * node(s). ! * * @param e is the event that occured */ public void treeNodesChanged(TreeModelEvent e) --- 3177,3183 ---- * children will be null. Use e.getPath() to get the parent of the changed * node(s). e.getChildIndices() returns the index(es) of the changed * node(s). ! * * @param e is the event that occured */ public void treeNodesChanged(TreeModelEvent e) *************** public class BasicTreeUI *** 3191,3197 **** * Invoked after nodes have been inserted into the tree. Use e.getPath() to * get the parent of the new node(s). e.getChildIndices() returns the * index(es) of the new node(s) in ascending order. ! * * @param e is the event that occured */ public void treeNodesInserted(TreeModelEvent e) --- 3191,3197 ---- * Invoked after nodes have been inserted into the tree. Use e.getPath() to * get the parent of the new node(s). e.getChildIndices() returns the * index(es) of the new node(s) in ascending order. ! * * @param e is the event that occured */ public void treeNodesInserted(TreeModelEvent e) *************** public class BasicTreeUI *** 3208,3214 **** * siblings removed. Use e.getPath() to get the former parent of the deleted * node(s). e.getChildIndices() returns, in ascending order, the index(es) * the node(s) had before being deleted. ! * * @param e is the event that occured */ public void treeNodesRemoved(TreeModelEvent e) --- 3208,3214 ---- * siblings removed. Use e.getPath() to get the former parent of the deleted * node(s). e.getChildIndices() returns, in ascending order, the index(es) * the node(s) had before being deleted. ! * * @param e is the event that occured */ public void treeNodesRemoved(TreeModelEvent e) *************** public class BasicTreeUI *** 3224,3230 **** * first element does not identify the current root node the first element * should become the new root of the tree. Use e.getPath() to get the path * to the node. e.getChildIndices() returns null. ! * * @param e is the event that occured */ public void treeStructureChanged(TreeModelEvent e) --- 3224,3230 ---- * first element does not identify the current root node the first element * should become the new root of the tree. Use e.getPath() to get the path * to the node. e.getChildIndices() returns null. ! * * @param e is the event that occured */ public void treeStructureChanged(TreeModelEvent e) *************** public class BasicTreeUI *** 3249,3255 **** /** * Constructor ! * * @param direction up or down * @param name is the name of the direction */ --- 3249,3255 ---- /** * Constructor ! * * @param direction up or down * @param name is the name of the direction */ *************** public class BasicTreeUI *** 3261,3267 **** /** * Invoked when an action occurs. ! * * @param e is the event that occured */ public void actionPerformed(ActionEvent e) --- 3261,3267 ---- /** * Invoked when an action occurs. ! * * @param e is the event that occured */ public void actionPerformed(ActionEvent e) *************** public class BasicTreeUI *** 3358,3364 **** /** * Returns true if the action is enabled. ! * * @return true if the action is enabled. */ public boolean isEnabled() --- 3358,3364 ---- /** * Returns true if the action is enabled. ! * * @return true if the action is enabled. */ public boolean isEnabled() *************** public class BasicTreeUI *** 3385,3391 **** /** * Messaged when the selection changes in the tree we're displaying for. * Stops editing, messages super and displays the changed paths. ! * * @param event the event that characterizes the change. */ public void valueChanged(TreeSelectionEvent event) --- 3385,3391 ---- /** * Messaged when the selection changes in the tree we're displaying for. * Stops editing, messages super and displays the changed paths. ! * * @param event the event that characterizes the change. */ public void valueChanged(TreeSelectionEvent event) *************** public class BasicTreeUI *** 3394,3408 **** TreePath op = event.getOldLeadSelectionPath(); TreePath np = event.getNewLeadSelectionPath(); ! // Repaint of the changed lead selection path. if (op != np) { ! Rectangle o = treeState.getBounds(event.getOldLeadSelectionPath(), new Rectangle()); ! Rectangle n = treeState.getBounds(event.getNewLeadSelectionPath(), new Rectangle()); ! if (o != null) tree.repaint(o); if (n != null) --- 3394,3408 ---- TreePath op = event.getOldLeadSelectionPath(); TreePath np = event.getNewLeadSelectionPath(); ! // Repaint of the changed lead selection path. if (op != np) { ! Rectangle o = treeState.getBounds(event.getOldLeadSelectionPath(), new Rectangle()); ! Rectangle n = treeState.getBounds(event.getNewLeadSelectionPath(), new Rectangle()); ! if (o != null) tree.repaint(o); if (n != null) *************** public class BasicTreeUI *** 3419,3425 **** { /** * Creates a new TreeToggleAction. ! * * @param name is the name of Action field */ public TreeToggleAction(String name) --- 3419,3425 ---- { /** * Creates a new TreeToggleAction. ! * * @param name is the name of Action field */ public TreeToggleAction(String name) *************** public class BasicTreeUI *** 3429,3435 **** /** * Invoked when an action occurs. ! * * @param e the event that occured */ public void actionPerformed(ActionEvent e) --- 3429,3435 ---- /** * Invoked when an action occurs. ! * * @param e the event that occured */ public void actionPerformed(ActionEvent e) *************** public class BasicTreeUI *** 3452,3458 **** /** * Returns true if the action is enabled. ! * * @return true if the action is enabled, false otherwise */ public boolean isEnabled() --- 3452,3458 ---- /** * Returns true if the action is enabled. ! * * @return true if the action is enabled, false otherwise */ public boolean isEnabled() *************** public class BasicTreeUI *** 3475,3481 **** /** * Constructor ! * * @param direction to traverse * @param name is the name of the direction */ --- 3475,3481 ---- /** * Constructor ! * * @param direction to traverse * @param name is the name of the direction */ *************** public class BasicTreeUI *** 3487,3493 **** /** * Invoked when an action occurs. ! * * @param e the event that occured */ public void actionPerformed(ActionEvent e) --- 3487,3493 ---- /** * Invoked when an action occurs. ! * * @param e the event that occured */ public void actionPerformed(ActionEvent e) *************** public class BasicTreeUI *** 3512,3518 **** // we just select the parent. We do not select the root if it // is not visible. TreePath parent = current.getParentPath(); ! if (parent != null && ! (parent.getPathCount() == 1 && ! tree.isRootVisible())) tree.setSelectionPath(parent); } --- 3512,3518 ---- // we just select the parent. We do not select the root if it // is not visible. TreePath parent = current.getParentPath(); ! if (parent != null && ! (parent.getPathCount() == 1 && ! tree.isRootVisible())) tree.setSelectionPath(parent); } *************** public class BasicTreeUI *** 3534,3547 **** tree.expandPath(current); } } ! // Ensure that the lead path is visible after the increment action. tree.scrollPathToVisible(tree.getLeadSelectionPath()); } /** * Returns true if the action is enabled. ! * * @return true if the action is enabled, false otherwise */ public boolean isEnabled() --- 3534,3547 ---- tree.expandPath(current); } } ! // Ensure that the lead path is visible after the increment action. tree.scrollPathToVisible(tree.getLeadSelectionPath()); } /** * Returns true if the action is enabled. ! * * @return true if the action is enabled, false otherwise */ public boolean isEnabled() *************** public class BasicTreeUI *** 3553,3559 **** /** * Returns true if the LookAndFeel implements the control icons. Package * private for use in inner classes. ! * * @returns true if there are control icons */ boolean hasControlIcons() --- 3553,3559 ---- /** * Returns true if the LookAndFeel implements the control icons. Package * private for use in inner classes. ! * * @returns true if there are control icons */ boolean hasControlIcons() *************** public class BasicTreeUI *** 3566,3572 **** /** * Returns control icon. It is null if the LookAndFeel does not implements the * control icons. Package private for use in inner classes. ! * * @return control icon if it exists. */ Icon getCurrentControlIcon(TreePath path) --- 3566,3572 ---- /** * Returns control icon. It is null if the LookAndFeel does not implements the * control icons. Package private for use in inner classes. ! * * @return control icon if it exists. */ Icon getCurrentControlIcon(TreePath path) *************** public class BasicTreeUI *** 3604,3610 **** /** * Returns the parent of the current node ! * * @param root is the root of the tree * @param node is the current node * @return is the parent of the current node --- 3604,3610 ---- /** * Returns the parent of the current node ! * * @param root is the root of the tree * @param node is the current node * @return is the parent of the current node *************** public class BasicTreeUI *** 3621,3627 **** /** * Recursively checks the tree for the specified node, starting at the root. ! * * @param root is starting node to start searching at. * @param node is the node to search for * @return the parent node of node --- 3621,3627 ---- /** * Recursively checks the tree for the specified node, starting at the root. ! * * @param root is starting node to start searching at. * @param node is the node to search for * @return the parent node of node *************** public class BasicTreeUI *** 3648,3654 **** /** * Selects the specified path in the tree depending on modes. Package private * for use in inner classes. ! * * @param tree is the tree we are selecting the path in * @param path is the path we are selecting */ --- 3648,3654 ---- /** * Selects the specified path in the tree depending on modes. Package private * for use in inner classes. ! * * @param tree is the tree we are selecting the path in * @param path is the path we are selecting */ *************** public class BasicTreeUI *** 3657,3663 **** if (path != null) { tree.setSelectionPath(path); ! tree.setLeadSelectionPath(path); tree.makeVisible(path); tree.scrollPathToVisible(path); } --- 3657,3663 ---- if (path != null) { tree.setSelectionPath(path); ! tree.setLeadSelectionPath(path); tree.makeVisible(path); tree.scrollPathToVisible(path); } *************** public class BasicTreeUI *** 3666,3672 **** /** * Returns the path from node to the root. Package private for use in inner * classes. ! * * @param node the node to get the path to * @param depth the depth of the tree to return a path for * @return an array of tree nodes that represent the path to node. --- 3666,3672 ---- /** * Returns the path from node to the root. Package private for use in inner * classes. ! * * @param node the node to get the path to * @param depth the depth of the tree to return a path for * @return an array of tree nodes that represent the path to node. *************** public class BasicTreeUI *** 3689,3695 **** /** * Draws a vertical line using the given graphic context ! * * @param g is the graphic context * @param c is the component the new line will belong to * @param x is the horizonal position --- 3689,3695 ---- /** * Draws a vertical line using the given graphic context ! * * @param g is the graphic context * @param c is the component the new line will belong to * @param x is the horizonal position *************** public class BasicTreeUI *** 3706,3712 **** /** * Draws a horizontal line using the given graphic context ! * * @param g is the graphic context * @param c is the component the new line will belong to * @param y is the vertical position --- 3706,3712 ---- /** * Draws a horizontal line using the given graphic context ! * * @param g is the graphic context * @param c is the component the new line will belong to * @param y is the vertical position *************** public class BasicTreeUI *** 3723,3729 **** /** * Draws an icon at around a specific position ! * * @param c is the component the new line will belong to * @param g is the graphic context * @param icon is the icon which will be drawn --- 3723,3729 ---- /** * Draws an icon at around a specific position ! * * @param c is the component the new line will belong to * @param g is the graphic context * @param icon is the icon which will be drawn *************** public class BasicTreeUI *** 3745,3751 **** /** * Draws a dashed horizontal line. ! * * @param g - the graphics configuration. * @param y - the y location to start drawing at * @param x1 - the x location to start drawing at --- 3745,3751 ---- /** * Draws a dashed horizontal line. ! * * @param g - the graphics configuration. * @param y - the y location to start drawing at * @param x1 - the x location to start drawing at *************** public class BasicTreeUI *** 3760,3766 **** /** * Draws a dashed vertical line. ! * * @param g - the graphics configuration. * @param x - the x location to start drawing at * @param y1 - the y location to start drawing at --- 3760,3766 ---- /** * Draws a dashed vertical line. ! * * @param g - the graphics configuration. * @param x - the x location to start drawing at * @param y1 - the y location to start drawing at *************** public class BasicTreeUI *** 3776,3782 **** /** * Paints the expand (toggle) part of a row. The receiver should NOT modify * clipBounds, or insets. ! * * @param g - the graphics configuration * @param clipBounds - * @param insets - --- 3776,3782 ---- /** * Paints the expand (toggle) part of a row. The receiver should NOT modify * clipBounds, or insets. ! * * @param g - the graphics configuration * @param clipBounds - * @param insets - *************** public class BasicTreeUI *** 3806,3812 **** * Paints the horizontal part of the leg. The receiver should NOT modify * clipBounds, or insets. NOTE: parentRow can be -1 if the root is not * visible. ! * * @param g - the graphics configuration * @param clipBounds - * @param insets - --- 3806,3812 ---- * Paints the horizontal part of the leg. The receiver should NOT modify * clipBounds, or insets. NOTE: parentRow can be -1 if the root is not * visible. ! * * @param g - the graphics configuration * @param clipBounds - * @param insets - *************** public class BasicTreeUI *** 3834,3840 **** /** * Paints the vertical part of the leg. The receiver should NOT modify * clipBounds, insets. ! * * @param g - the graphics configuration. * @param clipBounds - * @param insets - --- 3834,3840 ---- /** * Paints the vertical part of the leg. The receiver should NOT modify * clipBounds, insets. ! * * @param g - the graphics configuration. * @param clipBounds - * @param insets - *************** public class BasicTreeUI *** 3845,3851 **** { Rectangle bounds = getPathBounds(tree, path); TreePath parent = path.getParentPath(); ! boolean paintLine; if (isRootVisible()) paintLine = parent != null; --- 3845,3851 ---- { Rectangle bounds = getPathBounds(tree, path); TreePath parent = path.getParentPath(); ! boolean paintLine; if (isRootVisible()) paintLine = parent != null; *************** public class BasicTreeUI *** 3854,3860 **** if (paintLine) { Rectangle parentBounds = getPathBounds(tree, parent); ! paintVerticalLine(g, tree, parentBounds.x + 2 * gap, parentBounds.y + parentBounds.height / 2, bounds.y + bounds.height / 2); } --- 3854,3860 ---- if (paintLine) { Rectangle parentBounds = getPathBounds(tree, parent); ! paintVerticalLine(g, tree, parentBounds.x + 2 * gap, parentBounds.y + parentBounds.height / 2, bounds.y + bounds.height / 2); } *************** public class BasicTreeUI *** 3863,3869 **** /** * Paints the renderer part of a row. The receiver should NOT modify * clipBounds, or insets. ! * * @param g - the graphics configuration * @param clipBounds - * @param insets - --- 3863,3869 ---- /** * Paints the renderer part of a row. The receiver should NOT modify * clipBounds, or insets. ! * * @param g - the graphics configuration * @param clipBounds - * @param insets - *************** public class BasicTreeUI *** 3911,3917 **** /** * Returns true if the expand (toggle) control should be drawn for the * specified row. ! * * @param path - current path to check for. * @param row - current row to check for. * @param isExpanded - true if the path is expanded --- 3911,3917 ---- /** * Returns true if the expand (toggle) control should be drawn for the * specified row. ! * * @param path - current path to check for. * @param row - current row to check for. * @param isExpanded - true if the path is expanded *************** public class BasicTreeUI *** 3929,3935 **** /** * Returns the amount to indent the given row ! * * @return amount to indent the given row. */ protected int getRowX(int row, int depth) --- 3929,3935 ---- /** * Returns the amount to indent the given row ! * * @return amount to indent the given row. */ protected int getRowX(int row, int depth) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicViewportUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicViewportUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/basic/BasicViewportUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/basic/BasicViewportUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.LookAndFeel; *** 43,49 **** import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ViewportUI; ! public class BasicViewportUI extends ViewportUI { protected void installDefaults(JComponent c) { --- 43,49 ---- import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ViewportUI; ! public class BasicViewportUI extends ViewportUI { protected void installDefaults(JComponent c) { *************** public class BasicViewportUI extends Vie *** 61,73 **** return new BasicViewportUI(); } ! public void installUI(JComponent c) { super.installUI(c); installDefaults(c); } ! public void uninstallUI(JComponent c) { super.uninstallUI(c); uninstallDefaults(c); --- 61,73 ---- return new BasicViewportUI(); } ! public void installUI(JComponent c) { super.installUI(c); installDefaults(c); } ! public void uninstallUI(JComponent c) { super.uninstallUI(c); uninstallDefaults(c); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/DefaultMetalTheme.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/DefaultMetalTheme.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/DefaultMetalTheme.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/DefaultMetalTheme.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.FontUIResource; *** 48,54 **** /** * The default theme for the {@link MetalLookAndFeel}. ! * * @see MetalLookAndFeel#setCurrentTheme(MetalTheme) */ public class DefaultMetalTheme extends MetalTheme --- 48,54 ---- /** * The default theme for the {@link MetalLookAndFeel}. ! * * @see MetalLookAndFeel#setCurrentTheme(MetalTheme) */ public class DefaultMetalTheme extends MetalTheme *************** public class DefaultMetalTheme extends M *** 57,71 **** new ColorUIResource(102, 102, 153); private static final ColorUIResource PRIMARY2 = new ColorUIResource(153, 153, 204); ! private static final ColorUIResource PRIMARY3 = new ColorUIResource(204, 204, 255); ! private static final ColorUIResource SECONDARY1 = new ColorUIResource(102, 102, 102); ! private static final ColorUIResource SECONDARY2 = new ColorUIResource(153, 153, 153); ! private static final ColorUIResource SECONDARY3 = new ColorUIResource(204, 204, 204); ! private static final FontUIResource SUB_TEXT_FONT = new FontUIResource("Dialog", Font.PLAIN, 10); private static final FontUIResource SYSTEM_TEXT_FONT = --- 57,71 ---- new ColorUIResource(102, 102, 153); private static final ColorUIResource PRIMARY2 = new ColorUIResource(153, 153, 204); ! private static final ColorUIResource PRIMARY3 = new ColorUIResource(204, 204, 255); ! private static final ColorUIResource SECONDARY1 = new ColorUIResource(102, 102, 102); ! private static final ColorUIResource SECONDARY2 = new ColorUIResource(153, 153, 153); ! private static final ColorUIResource SECONDARY3 = new ColorUIResource(204, 204, 204); ! private static final FontUIResource SUB_TEXT_FONT = new FontUIResource("Dialog", Font.PLAIN, 10); private static final FontUIResource SYSTEM_TEXT_FONT = *************** public class DefaultMetalTheme extends M *** 74,80 **** new FontUIResource("Dialog", Font.PLAIN, 12); private static final FontUIResource WINDOW_TITLE_FONT = new FontUIResource("Dialog", Font.BOLD, 12); ! /** * The control text font for swing.boldMetal=false. */ --- 74,80 ---- new FontUIResource("Dialog", Font.PLAIN, 12); private static final FontUIResource WINDOW_TITLE_FONT = new FontUIResource("Dialog", Font.BOLD, 12); ! /** * The control text font for swing.boldMetal=false. */ *************** public class DefaultMetalTheme extends M *** 108,114 **** * Indicates the menu text font. */ static final int MENU_TEXT_FONT = 2; ! /** * Creates a new instance of this theme. */ --- 108,114 ---- * Indicates the menu text font. */ static final int MENU_TEXT_FONT = 2; ! /** * Creates a new instance of this theme. */ *************** public class DefaultMetalTheme extends M *** 119,125 **** /** * Returns the name of the theme. ! * * @return "Steel". */ public String getName() --- 119,125 ---- /** * Returns the name of the theme. ! * * @return "Steel". */ public String getName() *************** public class DefaultMetalTheme extends M *** 129,135 **** /** * Returns the first primary color for this theme. ! * * @return The first primary color. */ protected ColorUIResource getPrimary1() --- 129,135 ---- /** * Returns the first primary color for this theme. ! * * @return The first primary color. */ protected ColorUIResource getPrimary1() *************** public class DefaultMetalTheme extends M *** 139,145 **** /** * Returns the second primary color for this theme. ! * * @return The second primary color. */ protected ColorUIResource getPrimary2() --- 139,145 ---- /** * Returns the second primary color for this theme. ! * * @return The second primary color. */ protected ColorUIResource getPrimary2() *************** public class DefaultMetalTheme extends M *** 149,155 **** /** * Returns the third primary color for this theme. ! * * @return The third primary color. */ protected ColorUIResource getPrimary3() --- 149,155 ---- /** * Returns the third primary color for this theme. ! * * @return The third primary color. */ protected ColorUIResource getPrimary3() *************** public class DefaultMetalTheme extends M *** 159,165 **** /** * Returns the first secondary color for this theme. ! * * @return The first secondary color. */ protected ColorUIResource getSecondary1() --- 159,165 ---- /** * Returns the first secondary color for this theme. ! * * @return The first secondary color. */ protected ColorUIResource getSecondary1() *************** public class DefaultMetalTheme extends M *** 169,175 **** /** * Returns the second secondary color for this theme. ! * * @return The second secondary color. */ protected ColorUIResource getSecondary2() --- 169,175 ---- /** * Returns the second secondary color for this theme. ! * * @return The second secondary color. */ protected ColorUIResource getSecondary2() *************** public class DefaultMetalTheme extends M *** 179,185 **** /** * Returns the third secondary color for this theme. ! * * @return The third secondary color. */ protected ColorUIResource getSecondary3() --- 179,185 ---- /** * Returns the third secondary color for this theme. ! * * @return The third secondary color. */ protected ColorUIResource getSecondary3() *************** public class DefaultMetalTheme extends M *** 190,255 **** /** * Returns the font used for text on controls. In this case, the font is * FontUIResource("Dialog", Font.BOLD, 12), unless the ! * swing.boldMetal UI default is set to {@link Boolean#FALSE} * in which case it is FontUIResource("Dialog", Font.PLAIN, 12). ! * * @return The font. */ public FontUIResource getControlTextFont() { return getFont(CONTROL_TEXT_FONT); } ! /** * Returns the font used for text in menus. In this case, the font is * FontUIResource("Dialog", Font.BOLD, 12), unless the ! * swing.boldMetal UI default is set to {@link Boolean#FALSE} * in which case it is FontUIResource("Dialog", Font.PLAIN, 12). ! * * @return The font used for text in menus. */ public FontUIResource getMenuTextFont() { return getFont(MENU_TEXT_FONT); } ! /** * Returns the font used for sub text. In this case, the font is * FontUIResource("Dialog", Font.PLAIN, 10). ! * * @return The font used for sub text. */ public FontUIResource getSubTextFont() { return SUB_TEXT_FONT; } ! /** * Returns the font used for system text. In this case, the font is * FontUIResource("Dialog", Font.PLAIN, 12). ! * * @return The font used for system text. */ public FontUIResource getSystemTextFont() { return SYSTEM_TEXT_FONT; } ! /** * Returns the font used for user text. In this case, the font is * FontUIResource("Dialog", Font.PLAIN, 12). ! * ! * @return The font used for user text. */ public FontUIResource getUserTextFont() { return USER_TEXT_FONT; } ! /** ! * Returns the font used for window titles. In this case, the font is * FontUIResource("Dialog", Font.BOLD, 12). ! * * @return The font used for window titles. */ public FontUIResource getWindowTitleFont() --- 190,255 ---- /** * Returns the font used for text on controls. In this case, the font is * FontUIResource("Dialog", Font.BOLD, 12), unless the ! * swing.boldMetal UI default is set to {@link Boolean#FALSE} * in which case it is FontUIResource("Dialog", Font.PLAIN, 12). ! * * @return The font. */ public FontUIResource getControlTextFont() { return getFont(CONTROL_TEXT_FONT); } ! /** * Returns the font used for text in menus. In this case, the font is * FontUIResource("Dialog", Font.BOLD, 12), unless the ! * swing.boldMetal UI default is set to {@link Boolean#FALSE} * in which case it is FontUIResource("Dialog", Font.PLAIN, 12). ! * * @return The font used for text in menus. */ public FontUIResource getMenuTextFont() { return getFont(MENU_TEXT_FONT); } ! /** * Returns the font used for sub text. In this case, the font is * FontUIResource("Dialog", Font.PLAIN, 10). ! * * @return The font used for sub text. */ public FontUIResource getSubTextFont() { return SUB_TEXT_FONT; } ! /** * Returns the font used for system text. In this case, the font is * FontUIResource("Dialog", Font.PLAIN, 12). ! * * @return The font used for system text. */ public FontUIResource getSystemTextFont() { return SYSTEM_TEXT_FONT; } ! /** * Returns the font used for user text. In this case, the font is * FontUIResource("Dialog", Font.PLAIN, 12). ! * ! * @return The font used for user text. */ public FontUIResource getUserTextFont() { return USER_TEXT_FONT; } ! /** ! * Returns the font used for window titles. In this case, the font is * FontUIResource("Dialog", Font.BOLD, 12). ! * * @return The font used for window titles. */ public FontUIResource getWindowTitleFont() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalBorders.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalBorders.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalBorders.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalBorders.java Tue Jan 11 19:46:05 2011 *************** public class MetalBorders *** 104,118 **** /** *

                                            A border used for {@link JButton} components.

                                            ! * *

                                            This {@link Border} implementation can handle only instances of * {@link AbstractButton} and their subclasses.

                                            ! * *

                                            If the Metal Look and Feel's current theme is 'Ocean' the border * will be painted with a special highlight when the mouse cursor if * over the button (ie. the property rollover of the * button's model is true) and is not a direct ! * child of a {@link JToolBar}.

                                            */ public static class ButtonBorder extends AbstractBorder implements UIResource { --- 104,118 ---- /** *

                                            A border used for {@link JButton} components.

                                            ! * *

                                            This {@link Border} implementation can handle only instances of * {@link AbstractButton} and their subclasses.

                                            ! * *

                                            If the Metal Look and Feel's current theme is 'Ocean' the border * will be painted with a special highlight when the mouse cursor if * over the button (ie. the property rollover of the * button's model is true) and is not a direct ! * child of a {@link JToolBar}.

                                            */ public static class ButtonBorder extends AbstractBorder implements UIResource { *************** public class MetalBorders *** 230,236 **** g.setColor(middle); g.drawLine(x + 1, y + 1, x + w - 2, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 2); ! // draw crossing pixels of both borders g.setColor(shadow); g.drawRect(x + 1, y + h - 2, 0, 0); --- 230,236 ---- g.setColor(middle); g.drawLine(x + 1, y + 1, x + w - 2, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 2); ! // draw crossing pixels of both borders g.setColor(shadow); g.drawRect(x + 1, y + h - 2, 0, 0); *************** public class MetalBorders *** 238,248 **** } } } ! else { // draw disabled border g.setColor(MetalLookAndFeel.getInactiveControlTextColor()); ! g.drawRect(x, y, w - 2, h - 2); } } --- 238,248 ---- } } } ! else { // draw disabled border g.setColor(MetalLookAndFeel.getInactiveControlTextColor()); ! g.drawRect(x, y, w - 2, h - 2); } } *************** public class MetalBorders *** 260,266 **** int y, int w, int h) { ButtonModel bmodel = null; ! // The RI will fail with a ClassCastException in such a situation. // This code tries to be more helpful. if (c instanceof AbstractButton) --- 260,266 ---- int y, int w, int h) { ButtonModel bmodel = null; ! // The RI will fail with a ClassCastException in such a situation. // This code tries to be more helpful. if (c instanceof AbstractButton) *************** public class MetalBorders *** 304,314 **** g.drawRect(x, y, w - 1, h - 1); } } ! else { // draw disabled border g.setColor(MetalLookAndFeel.getInactiveControlTextColor()); ! g.drawRect(x, y, w - 2, h - 2); } } --- 304,314 ---- g.drawRect(x, y, w - 1, h - 1); } } ! else { // draw disabled border g.setColor(MetalLookAndFeel.getInactiveControlTextColor()); ! g.drawRect(x, y, w - 2, h - 2); } } *************** public class MetalBorders *** 325,331 **** } /** ! * Returns the insets of the ButtonBorder in the specified * newInsets object. * * @param c the component for which the border is used (ignored). --- 325,331 ---- } /** ! * Returns the insets of the ButtonBorder in the specified * newInsets object. * * @param c the component for which the border is used (ignored). *************** public class MetalBorders *** 357,378 **** { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return getBorderInsets(c, null); } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @return The border insets. */ --- 357,378 ---- { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return getBorderInsets(c, null); } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @return The border insets. */ *************** public class MetalBorders *** 387,398 **** newInsets.bottom = 2; newInsets.right = 3; } ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. --- 387,398 ---- newInsets.bottom = 2; newInsets.right = 3; } ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalBorders *** 400,412 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { ! g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! g.drawRect(x, y, w - 1, h - 1); } ! } /** --- 400,412 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { ! g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! g.drawRect(x, y, w - 1, h - 1); } ! } /** *************** public class MetalBorders *** 416,422 **** implements UIResource { private static final Insets borderInsets = new Insets(2, 2, 2, 2); ! /** * Creates a new border instance. */ --- 416,422 ---- implements UIResource { private static final Insets borderInsets = new Insets(2, 2, 2, 2); ! /** * Creates a new border instance. */ *************** public class MetalBorders *** 424,450 **** { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return borderInsets; } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @param newInsets an existing insets instance, that will be populated * with the border insets and returned as the result * (null not permitted). ! * * @return The newInsets reference. */ public Insets getBorderInsets(Component c, Insets newInsets) --- 424,450 ---- { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return borderInsets; } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @param newInsets an existing insets instance, that will be populated * with the border insets and returned as the result * (null not permitted). ! * * @return The newInsets reference. */ public Insets getBorderInsets(Component c, Insets newInsets) *************** public class MetalBorders *** 453,464 **** newInsets.left = borderInsets.left; newInsets.bottom = borderInsets.bottom; newInsets.right = borderInsets.right; ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate. --- 453,464 ---- newInsets.left = borderInsets.left; newInsets.bottom = borderInsets.bottom; newInsets.right = borderInsets.right; ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalBorders *** 466,474 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) ! { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawRect(x, y, w - 2, h - 2); --- 466,474 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) ! { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawRect(x, y, w - 2, h - 2); *************** public class MetalBorders *** 479,491 **** g.drawLine(x + w - 2, y + 1, x + w - 2, y + 1); g.setColor(savedColor); } ! } ! /** ! * A border used for a {@link JInternalFrame} when it is being used as a * palette. ! * * @since 1.3 */ public static class PaletteBorder extends AbstractBorder --- 479,491 ---- g.drawLine(x + w - 2, y + 1, x + w - 2, y + 1); g.setColor(savedColor); } ! } ! /** ! * A border used for a {@link JInternalFrame} when it is being used as a * palette. ! * * @since 1.3 */ public static class PaletteBorder extends AbstractBorder *************** public class MetalBorders *** 500,511 **** { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) --- 500,511 ---- { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) *************** public class MetalBorders *** 515,540 **** /** * Returns the border insets. ! * * @param c the component (ignored). * @param newInsets an existing insets instance, that will be populated * with the border insets and returned as the result * (null not permitted). ! * * @return The newInsets reference. */ public Insets getBorderInsets(Component c, Insets newInsets) ! { newInsets.top = borderInsets.top; newInsets.left = borderInsets.left; newInsets.bottom = borderInsets.bottom; newInsets.right = borderInsets.right; ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate. --- 515,540 ---- /** * Returns the border insets. ! * * @param c the component (ignored). * @param newInsets an existing insets instance, that will be populated * with the border insets and returned as the result * (null not permitted). ! * * @return The newInsets reference. */ public Insets getBorderInsets(Component c, Insets newInsets) ! { newInsets.top = borderInsets.top; newInsets.left = borderInsets.left; newInsets.bottom = borderInsets.bottom; newInsets.right = borderInsets.right; ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalBorders *** 542,567 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { Color savedColor = g.getColor(); ! // draw the outline g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawRect(x, y, w - 1, h - 1); ! // put a dot in each corner g.setColor(MetalLookAndFeel.getControl()); g.fillRect(x, y, 1, 1); g.fillRect(x + w - 1, y, 1, 1); g.fillRect(x + w - 1, y + h - 1, 1, 1); ! g.fillRect(x, y + h - 1, 1, 1); g.setColor(savedColor); } } ! /** * A border used for the {@link JTextField} component. */ --- 542,567 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { Color savedColor = g.getColor(); ! // draw the outline g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawRect(x, y, w - 1, h - 1); ! // put a dot in each corner g.setColor(MetalLookAndFeel.getControl()); g.fillRect(x, y, 1, 1); g.fillRect(x + w - 1, y, 1, 1); g.fillRect(x + w - 1, y + h - 1, 1, 1); ! g.fillRect(x, y + h - 1, 1, 1); g.setColor(savedColor); } } ! /** * A border used for the {@link JTextField} component. */ *************** public class MetalBorders *** 575,584 **** { // Nothing to do here. } ! /** * Paints the border for the specified component. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate. --- 575,584 ---- { // Nothing to do here. } ! /** * Paints the border for the specified component. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalBorders *** 586,592 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { boolean enabledTextBorder; --- 586,592 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { boolean enabledTextBorder; *************** public class MetalBorders *** 608,614 **** g.setColor(savedColor); } } ! } /** --- 608,614 ---- g.setColor(savedColor); } } ! } /** *************** public class MetalBorders *** 626,652 **** { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return borderInsets; } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @param newInsets an existing insets instance, that will be populated * with the border insets and returned as the result * (null not permitted). ! * * @return The newInsets reference. */ public Insets getBorderInsets(Component c, Insets newInsets) --- 626,652 ---- { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return borderInsets; } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @param newInsets an existing insets instance, that will be populated * with the border insets and returned as the result * (null not permitted). ! * * @return The newInsets reference. */ public Insets getBorderInsets(Component c, Insets newInsets) *************** public class MetalBorders *** 655,666 **** newInsets.left = borderInsets.left; newInsets.bottom = borderInsets.bottom; newInsets.right = borderInsets.right; ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. --- 655,666 ---- newInsets.left = borderInsets.left; newInsets.bottom = borderInsets.bottom; newInsets.right = borderInsets.right; ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalBorders *** 668,714 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { ! JInternalFrame f = (JInternalFrame) c; if (f.isSelected()) g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // fill the border background g.fillRect(x, y, w, 5); g.fillRect(x, y, 5, h); g.fillRect(x + w - 5, y, 5, h); g.fillRect(x, y + h - 5, w, 5); ! // draw a dot in each corner g.setColor(MetalLookAndFeel.getControl()); g.fillRect(x, y, 1, 1); g.fillRect(x + w - 1, y, 1, 1); g.fillRect(x + w - 1, y + h - 1, 1, 1); g.fillRect(x, y + h - 1, 1, 1); ! // draw the lines g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 14, y + 2, x + w - 15, y + 2); g.drawLine(x + 14, y + h - 3, x + w - 15, y + h - 3); g.drawLine(x + 2, y + 14, x + 2, y + h - 15); g.drawLine(x + w - 3, y + 14, x + w - 3, y + h - 15); ! // draw the line highlights if (f.isSelected()) g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); ! else g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x + 15, y + 3, x + w - 14, y + 3); g.drawLine(x + 15, y + h - 2, x + w - 14, y + h - 2); g.drawLine(x + 3, y + 15, x + 3, y + h - 14); g.drawLine(x + w - 2, y + 15, x + w - 2, y + h - 14); } ! } /** --- 668,714 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { ! JInternalFrame f = (JInternalFrame) c; if (f.isSelected()) g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // fill the border background g.fillRect(x, y, w, 5); g.fillRect(x, y, 5, h); g.fillRect(x + w - 5, y, 5, h); g.fillRect(x, y + h - 5, w, 5); ! // draw a dot in each corner g.setColor(MetalLookAndFeel.getControl()); g.fillRect(x, y, 1, 1); g.fillRect(x + w - 1, y, 1, 1); g.fillRect(x + w - 1, y + h - 1, 1, 1); g.fillRect(x, y + h - 1, 1, 1); ! // draw the lines g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 14, y + 2, x + w - 15, y + 2); g.drawLine(x + 14, y + h - 3, x + w - 15, y + h - 3); g.drawLine(x + 2, y + 14, x + 2, y + h - 15); g.drawLine(x + w - 3, y + 14, x + w - 3, y + h - 15); ! // draw the line highlights if (f.isSelected()) g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); ! else g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x + 15, y + 3, x + w - 14, y + 3); g.drawLine(x + 15, y + h - 2, x + w - 14, y + h - 2); g.drawLine(x + 3, y + 15, x + 3, y + h - 14); g.drawLine(x + w - 2, y + 15, x + w - 2, y + h - 14); } ! } /** *************** public class MetalBorders *** 718,724 **** public static class OptionDialogBorder extends AbstractBorder implements UIResource { ! /** * Creates a new border instance. */ --- 718,724 ---- public static class OptionDialogBorder extends AbstractBorder implements UIResource { ! /** * Creates a new border instance. */ *************** public class MetalBorders *** 726,747 **** { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return getBorderInsets(c, null); } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @return The border insets. */ --- 726,747 ---- { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return getBorderInsets(c, null); } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @return The border insets. */ *************** public class MetalBorders *** 756,767 **** newInsets.bottom = 3; newInsets.right = 3; } ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. --- 756,767 ---- newInsets.bottom = 3; newInsets.right = 3; } ! return newInsets; } ! /** * Paints the border for the specified component. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalBorders *** 769,778 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { ! JInternalFrame f = (JInternalFrame) c; g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); if (f.getContentPane() instanceof JOptionPane) --- 769,778 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { ! JInternalFrame f = (JInternalFrame) c; g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); if (f.getContentPane() instanceof JOptionPane) *************** public class MetalBorders *** 791,822 **** Color bc = UIManager.getColor( "OptionPane.warningDialog.border.background"); if (bc != null) ! g.setColor(bc); } else if (type == JOptionPane.ERROR_MESSAGE) { Color bc = UIManager.getColor( "OptionPane.errorDialog.border.background"); if (bc != null) ! g.setColor(bc); } } ! // fill the border background g.fillRect(x, y, w, 3); g.fillRect(x, y, 3, h); g.fillRect(x + w - 3, y, 3, h); g.fillRect(x, y + h - 3, w, 3); ! // draw a dot in each corner g.setColor(MetalLookAndFeel.getControl()); g.fillRect(x, y, 1, 1); g.fillRect(x + w - 1, y, 1, 1); g.fillRect(x + w - 1, y + h - 1, 1, 1); g.fillRect(x, y + h - 1, 1, 1); ! } ! } /** --- 791,822 ---- Color bc = UIManager.getColor( "OptionPane.warningDialog.border.background"); if (bc != null) ! g.setColor(bc); } else if (type == JOptionPane.ERROR_MESSAGE) { Color bc = UIManager.getColor( "OptionPane.errorDialog.border.background"); if (bc != null) ! g.setColor(bc); } } ! // fill the border background g.fillRect(x, y, w, 3); g.fillRect(x, y, 3, h); g.fillRect(x + w - 3, y, 3, h); g.fillRect(x, y + h - 3, w, 3); ! // draw a dot in each corner g.setColor(MetalLookAndFeel.getControl()); g.fillRect(x, y, 1, 1); g.fillRect(x + w - 1, y, 1, 1); g.fillRect(x + w - 1, y + h - 1, 1, 1); g.fillRect(x, y + h - 1, 1, 1); ! } ! } /** *************** public class MetalBorders *** 827,833 **** { /** The border insets. */ protected static Insets borderInsets = new Insets(2, 2, 2, 2); ! /** * Creates a new border instance. */ --- 827,833 ---- { /** The border insets. */ protected static Insets borderInsets = new Insets(2, 2, 2, 2); ! /** * Creates a new border instance. */ *************** public class MetalBorders *** 835,845 **** { // Nothing to do here. } ! /** * Paints the border for the component. A border is painted only if the * component is a selected {@link JMenu} or an armed {@link JMenuItem}. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate of the border area. --- 835,845 ---- { // Nothing to do here. } ! /** * Paints the border for the component. A border is painted only if the * component is a selected {@link JMenu} or an armed {@link JMenuItem}. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate of the border area. *************** public class MetalBorders *** 852,858 **** { Color dark = MetalLookAndFeel.getPrimaryControlDarkShadow(); Color light = MetalLookAndFeel.getPrimaryControlHighlight(); ! if (c instanceof JMenu) { JMenu menu = (JMenu) c; if (menu.isSelected()) --- 852,858 ---- { Color dark = MetalLookAndFeel.getPrimaryControlDarkShadow(); Color light = MetalLookAndFeel.getPrimaryControlHighlight(); ! if (c instanceof JMenu) { JMenu menu = (JMenu) c; if (menu.isSelected()) *************** public class MetalBorders *** 868,874 **** else if (c instanceof JMenuItem) { JMenuItem item = (JMenuItem) c; ! if (item.isArmed()) { g.setColor(dark); g.drawLine(x, y, x + w, y); --- 868,874 ---- else if (c instanceof JMenuItem) { JMenuItem item = (JMenuItem) c; ! if (item.isArmed()) { g.setColor(dark); g.drawLine(x, y, x + w, y); *************** public class MetalBorders *** 883,909 **** } } } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return borderInsets; } ! /** * Populates insets with the border insets, then returns it. ! * * @param c the component (ignored). * @param insets the object to populate with the border insets. ! * * @return The border insets. ! * * @throws NullPointerException if insets is null. */ public Insets getBorderInsets(Component c, Insets insets) --- 883,909 ---- } } } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return borderInsets; } ! /** * Populates insets with the border insets, then returns it. ! * * @param c the component (ignored). * @param insets the object to populate with the border insets. ! * * @return The border insets. ! * * @throws NullPointerException if insets is null. */ public Insets getBorderInsets(Component c, Insets insets) *************** public class MetalBorders *** 925,942 **** { /** The border insets. */ protected static Insets borderInsets = new Insets(1, 0, 1, 0); ! /** * Creates a new border instance. */ public MenuBarBorder() { } ! /** * Paints the border for the component. A border is painted only if the * component is a selected {@link JMenu} or an armed {@link JMenuItem}. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate of the border area. --- 925,942 ---- { /** The border insets. */ protected static Insets borderInsets = new Insets(1, 0, 1, 0); ! /** * Creates a new border instance. */ public MenuBarBorder() { } ! /** * Paints the border for the component. A border is painted only if the * component is a selected {@link JMenu} or an armed {@link JMenuItem}. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate of the border area. *************** public class MetalBorders *** 957,986 **** g.setColor(UIManager.getColor("MenuBar.borderColor")); else g.setColor(MetalLookAndFeel.getControlShadow()); ! g.drawLine(x, y + h - 1, x + w, y + h - 1); } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return borderInsets; } ! /** * Populates insets with the border insets, then returns it. ! * * @param c the component (ignored). * @param insets the object to populate with the border insets. ! * * @return The border insets. ! * * @throws NullPointerException if insets is null. */ public Insets getBorderInsets(Component c, Insets insets) --- 957,986 ---- g.setColor(UIManager.getColor("MenuBar.borderColor")); else g.setColor(MetalLookAndFeel.getControlShadow()); ! g.drawLine(x, y + h - 1, x + w, y + h - 1); } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return borderInsets; } ! /** * Populates insets with the border insets, then returns it. ! * * @param c the component (ignored). * @param insets the object to populate with the border insets. ! * * @return The border insets. ! * * @throws NullPointerException if insets is null. */ public Insets getBorderInsets(Component c, Insets insets) *************** public class MetalBorders *** 1002,1008 **** { /** The border insets. */ private static Insets insets = new Insets(1, 1, 2, 2); ! /** * Constructs a new ScrollPaneBorder. */ --- 1002,1008 ---- { /** The border insets. */ private static Insets insets = new Insets(1, 1, 2, 2); ! /** * Constructs a new ScrollPaneBorder. */ *************** public class MetalBorders *** 1010,1016 **** { // Nothing to do here. } ! /** * Returns the insets of the border for the Component c. * --- 1010,1016 ---- { // Nothing to do here. } ! /** * Returns the insets of the border for the Component c. * *************** public class MetalBorders *** 1045,1051 **** // paint left border line g.drawLine(x, y, x, y + h - 2); ! // paint right inner border line g.drawLine(x + w - 2, y, x + w - 2, y + h + 1); --- 1045,1051 ---- // paint left border line g.drawLine(x, y, x, y + h - 2); ! // paint right inner border line g.drawLine(x + w - 2, y, x + w - 2, y + h + 1); *************** public class MetalBorders *** 1067,1077 **** g.drawLine(x + 1, y + h - 2, x + 1, y + h - 2); } ! } ! /** ! * A button border that is only visible when the mouse pointer is within * the button's bounds. */ public static class RolloverButtonBorder --- 1067,1077 ---- g.drawLine(x + 1, y + h - 2, x + 1, y + h - 2); } ! } ! /** ! * A button border that is only visible when the mouse pointer is within * the button's bounds. */ public static class RolloverButtonBorder *************** public class MetalBorders *** 1084,1093 **** { // Nothing to do here. } ! /** * Paints the border. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. --- 1084,1093 ---- { // Nothing to do here. } ! /** * Paints the border. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalBorders *** 1095,1101 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { // TODO: What should be done here? Obviously the ButtonBorder already --- 1095,1101 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { // TODO: What should be done here? Obviously the ButtonBorder already *************** public class MetalBorders *** 1104,1110 **** super.paintBorder(c, g, x, y, w, h); } } ! /** * This border is used in Toolbar buttons as inner border. */ --- 1104,1110 ---- super.paintBorder(c, g, x, y, w, h); } } ! /** * This border is used in Toolbar buttons as inner border. */ *************** public class MetalBorders *** 1120,1126 **** { // Nothing to do here. } ! /** * Returns the insets of the RolloverBorder. * --- 1120,1126 ---- { // Nothing to do here. } ! /** * Returns the insets of the RolloverBorder. * *************** public class MetalBorders *** 1175,1181 **** { // Nothing to do here. } ! /** * Returns the insets of the border, creating a new Insets instance * with each call. --- 1175,1181 ---- { // Nothing to do here. } ! /** * Returns the insets of the border, creating a new Insets instance * with each call. *************** public class MetalBorders *** 1187,1193 **** { return getBorderInsets(c, null); } ! /** * Returns the insets of the border, using the supplied Insets instance. * --- 1187,1193 ---- { return getBorderInsets(c, null); } ! /** * Returns the insets of the border, using the supplied Insets instance. * *************** public class MetalBorders *** 1209,1215 **** insets.bottom = borderInsets.bottom; insets.right = borderInsets.right; } ! return insets; } --- 1209,1215 ---- insets.bottom = borderInsets.bottom; insets.right = borderInsets.right; } ! return insets; } *************** public class MetalBorders *** 1234,1254 **** // draw dark outer border g.setColor(darkShadow); g.drawRect(x, y, w - 1, h - 1); ! // draw highlighted inner border (only top and left) g.setColor(light); g.drawLine(x + 1, y + 1, x + w - 2, y + 1); } ! } /** * A border used for the {@link JToggleButton} component. ! * * @since 1.3 */ public static class ToggleButtonBorder ! extends ButtonBorder { /** * Creates a new border instance. --- 1234,1254 ---- // draw dark outer border g.setColor(darkShadow); g.drawRect(x, y, w - 1, h - 1); ! // draw highlighted inner border (only top and left) g.setColor(light); g.drawLine(x + 1, y + 1, x + w - 2, y + 1); } ! } /** * A border used for the {@link JToggleButton} component. ! * * @since 1.3 */ public static class ToggleButtonBorder ! extends ButtonBorder { /** * Creates a new border instance. *************** public class MetalBorders *** 1257,1263 **** { // Nothing to do here. } ! /** * Paints the toggle button border. * --- 1257,1263 ---- { // Nothing to do here. } ! /** * Paints the toggle button border. * *************** public class MetalBorders *** 1272,1278 **** int h) { ButtonModel bmodel = null; ! if (c instanceof AbstractButton) bmodel = ((AbstractButton) c).getModel(); --- 1272,1278 ---- int h) { ButtonModel bmodel = null; ! if (c instanceof AbstractButton) bmodel = ((AbstractButton) c).getModel(); *************** public class MetalBorders *** 1314,1336 **** g.setColor(shadow); g.drawLine(x + 1, y + 1, x + w - 2, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 2); ! // draw crossing pixels of both borders g.setColor(shadow); g.drawLine(x + 1, y + h - 2, x + 1, y + h - 2); g.drawLine(x + w - 2, y + 1, x + w - 2, y + 1); ! } // draw corners g.setColor(middle); g.drawLine(x, y + h - 1, x, y + h - 1); g.drawLine(x + w - 1, y, x + w - 1, y); } ! else { // draw disabled border g.setColor(MetalLookAndFeel.getControlDisabled()); ! g.drawRect(x, y, w - 2, h - 2); } } } --- 1314,1336 ---- g.setColor(shadow); g.drawLine(x + 1, y + 1, x + w - 2, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 2); ! // draw crossing pixels of both borders g.setColor(shadow); g.drawLine(x + 1, y + h - 2, x + 1, y + h - 2); g.drawLine(x + w - 2, y + 1, x + w - 2, y + 1); ! } // draw corners g.setColor(middle); g.drawLine(x, y + h - 1, x, y + h - 1); g.drawLine(x + w - 1, y, x + w - 1, y); } ! else { // draw disabled border g.setColor(MetalLookAndFeel.getControlDisabled()); ! g.drawRect(x, y, w - 2, h - 2); } } } *************** public class MetalBorders *** 1348,1369 **** { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return getBorderInsets(c, null); } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @return The border insets. */ --- 1348,1369 ---- { // Nothing to do here. } ! /** * Returns the border insets. ! * * @param c the component (ignored). ! * * @return The border insets. */ public Insets getBorderInsets(Component c) { return getBorderInsets(c, null); } ! /** * Returns the border insets. ! * * @param c the component (ignored). * @return The border insets. */ *************** public class MetalBorders *** 1371,1377 **** { JToolBar tb = (JToolBar) c; if (tb.getOrientation() == JToolBar.HORIZONTAL) ! { if (newInsets == null) newInsets = new Insets(2, 16, 2, 2); else --- 1371,1377 ---- { JToolBar tb = (JToolBar) c; if (tb.getOrientation() == JToolBar.HORIZONTAL) ! { if (newInsets == null) newInsets = new Insets(2, 16, 2, 2); else *************** public class MetalBorders *** 1381,1390 **** newInsets.bottom = 2; newInsets.right = 2; } ! return newInsets; } else // assume JToolBar.VERTICAL ! { if (newInsets == null) newInsets = new Insets(16, 2, 2, 2); else --- 1381,1390 ---- newInsets.bottom = 2; newInsets.right = 2; } ! return newInsets; } else // assume JToolBar.VERTICAL ! { if (newInsets == null) newInsets = new Insets(16, 2, 2, 2); else *************** public class MetalBorders *** 1394,1407 **** newInsets.bottom = 2; newInsets.right = 2; } ! return newInsets; } } ! /** * Paints the border for the specified component. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. --- 1394,1407 ---- newInsets.bottom = 2; newInsets.right = 2; } ! return newInsets; } } ! /** * Paints the border for the specified component. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalBorders *** 1409,1435 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { ! JToolBar tb = (JToolBar) c; if (tb.getOrientation() == JToolBar.HORIZONTAL) { ! MetalUtils.fillMetalPattern(tb, g, x + 2, y + 2, x + 11, y + h - 5, ! MetalLookAndFeel.getControlHighlight(), MetalLookAndFeel.getControlDarkShadow()); } else ! { ! MetalUtils.fillMetalPattern(tb, g, x + 2, y + 2, x + w - 5, y + 11, ! MetalLookAndFeel.getControlHighlight(), MetalLookAndFeel.getControlDarkShadow()); } } ! } ! /** * A border for table header cells. * --- 1409,1435 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { ! JToolBar tb = (JToolBar) c; if (tb.getOrientation() == JToolBar.HORIZONTAL) { ! MetalUtils.fillMetalPattern(tb, g, x + 2, y + 2, x + 11, y + h - 5, ! MetalLookAndFeel.getControlHighlight(), MetalLookAndFeel.getControlDarkShadow()); } else ! { ! MetalUtils.fillMetalPattern(tb, g, x + 2, y + 2, x + w - 5, y + 11, ! MetalLookAndFeel.getControlHighlight(), MetalLookAndFeel.getControlDarkShadow()); } } ! } ! /** * A border for table header cells. * *************** public class MetalBorders *** 1499,1515 **** { Border outer = new ButtonBorder(); Border inner = getMarginBorder(); ! buttonBorder = new BorderUIResource.CompoundBorderUIResource(outer, inner); } return buttonBorder; } ! /** * Returns a border for use with {@link JToggleButton} components. * * @return A border. ! * * @since 1.3 */ public static Border getToggleButtonBorder() --- 1499,1515 ---- { Border outer = new ButtonBorder(); Border inner = getMarginBorder(); ! buttonBorder = new BorderUIResource.CompoundBorderUIResource(outer, inner); } return buttonBorder; } ! /** * Returns a border for use with {@link JToggleButton} components. * * @return A border. ! * * @since 1.3 */ public static Border getToggleButtonBorder() *************** public class MetalBorders *** 1527,1549 **** /** * Returns a border instance that is used with a {@link JInternalFrame} when * it is in the iconified state. ! * * @return A border. ! * * @since 1.3 */ public static Border getDesktopIconBorder() { if (desktopIconBorder == null) desktopIconBorder = new DesktopIconBorder(); ! return desktopIconBorder; } /** * Returns a border for use by the {@link JTextField} component. ! * * @return A border. ! * * @since 1.3 */ public static Border getTextFieldBorder() --- 1527,1549 ---- /** * Returns a border instance that is used with a {@link JInternalFrame} when * it is in the iconified state. ! * * @return A border. ! * * @since 1.3 */ public static Border getDesktopIconBorder() { if (desktopIconBorder == null) desktopIconBorder = new DesktopIconBorder(); ! return desktopIconBorder; } /** * Returns a border for use by the {@link JTextField} component. ! * * @return A border. ! * * @since 1.3 */ public static Border getTextFieldBorder() *************** public class MetalBorders *** 1608,1614 **** /** * Returns a shared instance of a compound border for rollover buttons. ! * * @return A shared border instance. */ static Border getRolloverBorder() --- 1608,1614 ---- /** * Returns a shared instance of a compound border for rollover buttons. ! * * @return A shared border instance. */ static Border getRolloverBorder() *************** public class MetalBorders *** 1617,1623 **** { Border outer = new MetalBorders.RolloverButtonBorder(); Border inner = MetalBorders.getMarginBorder(); ! rolloverBorder = new BorderUIResource.CompoundBorderUIResource(outer, inner); } return rolloverBorder; --- 1617,1623 ---- { Border outer = new MetalBorders.RolloverButtonBorder(); Border inner = MetalBorders.getMarginBorder(); ! rolloverBorder = new BorderUIResource.CompoundBorderUIResource(outer, inner); } return rolloverBorder; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalButtonListener.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalButtonListener.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalButtonListener.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalButtonListener.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicButto *** 45,69 **** /** * A listener for buttons under the {@link MetalLookAndFeel}. ! * * @see MetalButtonUI#createButtonListener */ ! class MetalButtonListener extends BasicButtonListener { ! /** * Creates a new instance. ! * * @param button the button. */ public MetalButtonListener(AbstractButton button) { super(button); } ! /** * Handles property change events. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) --- 45,69 ---- /** * A listener for buttons under the {@link MetalLookAndFeel}. ! * * @see MetalButtonUI#createButtonListener */ ! class MetalButtonListener extends BasicButtonListener { ! /** * Creates a new instance. ! * * @param button the button. */ public MetalButtonListener(AbstractButton button) { super(button); } ! /** * Handles property change events. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalButtonUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalButtonUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalButtonUI.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalButtonUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalButtonUI *** 74,80 **** * The color used to draw the focus rectangle around the text and/or icon. */ protected Color focusColor; ! /** * The background color for the button when it is pressed. */ --- 74,80 ---- * The color used to draw the focus rectangle around the text and/or icon. */ protected Color focusColor; ! /** * The background color for the button when it is pressed. */ *************** public class MetalButtonUI *** 87,98 **** /** * Returns a UI delegate for the specified component. ! * * @param c the component (should be a subclass of {@link AbstractButton}). ! * * @return A new instance of MetalButtonUI. */ ! public static ComponentUI createUI(JComponent c) { if (sharedUI == null) sharedUI = new MetalButtonUI(); --- 87,98 ---- /** * Returns a UI delegate for the specified component. ! * * @param c the component (should be a subclass of {@link AbstractButton}). ! * * @return A new instance of MetalButtonUI. */ ! public static ComponentUI createUI(JComponent c) { if (sharedUI == null) sharedUI = new MetalButtonUI(); *************** public class MetalButtonUI *** 143,151 **** /** * Installs the default settings for the specified button. ! * * @param button the button. ! * * @see #uninstallDefaults(AbstractButton) */ public void installDefaults(AbstractButton button) --- 143,151 ---- /** * Installs the default settings for the specified button. ! * * @param button the button. ! * * @see #uninstallDefaults(AbstractButton) */ public void installDefaults(AbstractButton button) *************** public class MetalButtonUI *** 157,163 **** /** * Removes the defaults added by {@link #installDefaults(AbstractButton)}. */ ! public void uninstallDefaults(AbstractButton button) { // This is overridden to be public, for whatever reason. super.uninstallDefaults(button); --- 157,163 ---- /** * Removes the defaults added by {@link #installDefaults(AbstractButton)}. */ ! public void uninstallDefaults(AbstractButton button) { // This is overridden to be public, for whatever reason. super.uninstallDefaults(button); *************** public class MetalButtonUI *** 166,187 **** /** * Paints the background of the button to indicate that it is in the * "pressed" state. ! * * @param g the graphics context. * @param b the button. */ ! protected void paintButtonPressed(Graphics g, AbstractButton b) ! { if (b.isContentAreaFilled()) { g.setColor(getSelectColor()); g.fillRect(0, 0, b.getWidth(), b.getHeight()); } } ! ! /** * Paints the focus rectangle around the button text and/or icon. ! * * @param g the graphics context. * @param b the button. * @param viewRect the button bounds. --- 166,187 ---- /** * Paints the background of the button to indicate that it is in the * "pressed" state. ! * * @param g the graphics context. * @param b the button. */ ! protected void paintButtonPressed(Graphics g, AbstractButton b) ! { if (b.isContentAreaFilled()) { g.setColor(getSelectColor()); g.fillRect(0, 0, b.getWidth(), b.getHeight()); } } ! ! /** * Paints the focus rectangle around the button text and/or icon. ! * * @param g the graphics context. * @param b the button. * @param viewRect the button bounds. *************** public class MetalButtonUI *** 189,195 **** * @param iconRect the icon bounds. */ protected void paintFocus(Graphics g, AbstractButton b, Rectangle viewRect, ! Rectangle textRect, Rectangle iconRect) { if (b.isEnabled() && b.hasFocus() && b.isFocusPainted()) { --- 189,195 ---- * @param iconRect the icon bounds. */ protected void paintFocus(Graphics g, AbstractButton b, Rectangle viewRect, ! Rectangle textRect, Rectangle iconRect) { if (b.isEnabled() && b.hasFocus() && b.isFocusPainted()) { *************** public class MetalButtonUI *** 201,217 **** g.setColor(savedColor); } } ! /** * Paints the button text. ! * * @param g the graphics context. * @param c the button. * @param textRect the text bounds. * @param text the text to display. */ protected void paintText(Graphics g, JComponent c, Rectangle textRect, ! String text) { AbstractButton b = (AbstractButton) c; Font f = b.getFont(); --- 201,217 ---- g.setColor(savedColor); } } ! /** * Paints the button text. ! * * @param g the graphics context. * @param c the button. * @param textRect the text bounds. * @param text the text to display. */ protected void paintText(Graphics g, JComponent c, Rectangle textRect, ! String text) { AbstractButton b = (AbstractButton) c; Font f = b.getFont(); *************** public class MetalButtonUI *** 227,233 **** { g.setColor(getDisabledTextColor()); g.drawString(text, textRect.x, textRect.y + fm.getAscent()); ! } } /** --- 227,233 ---- { g.setColor(getDisabledTextColor()); g.drawString(text, textRect.x, textRect.y + fm.getAscent()); ! } } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxIcon.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxIcon.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxIcon.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxIcon.java Tue Jan 11 19:46:05 2011 *************** public class MetalCheckBoxIcon *** 134,140 **** MetalUtils.paintGradient(g, x, y, getIconWidth(), getIconHeight(), SwingConstants.VERTICAL, "CheckBox.gradient"); border.paintBorder(c, g, x, y, getIconWidth(), getIconHeight()); ! AbstractButton b = (AbstractButton) c; if (b.isSelected()) drawCheck(b, g, x, y); --- 134,140 ---- MetalUtils.paintGradient(g, x, y, getIconWidth(), getIconHeight(), SwingConstants.VERTICAL, "CheckBox.gradient"); border.paintBorder(c, g, x, y, getIconWidth(), getIconHeight()); ! AbstractButton b = (AbstractButton) c; if (b.isSelected()) drawCheck(b, g, x, y); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalCheckBoxUI *** 75,84 **** instance = new MetalCheckBoxUI(); return instance; } ! /** * Returns the prefix for properties defined in the {@link UIDefaults} table. ! * * @return The property prefix ("CheckBox."). */ public String getPropertyPrefix() --- 75,84 ---- instance = new MetalCheckBoxUI(); return instance; } ! /** * Returns the prefix for properties defined in the {@link UIDefaults} table. ! * * @return The property prefix ("CheckBox."). */ public String getPropertyPrefix() *************** public class MetalCheckBoxUI *** 86,89 **** return "CheckBox."; } } - --- 86,88 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxButton.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxButton.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxButton.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxButton.java Tue Jan 11 19:46:05 2011 *************** public class MetalComboBoxButton *** 63,84 **** /** A reference to the JList. */ protected JList listBox; ! /** * Used for rendering the selected item. */ protected CellRendererPane rendererPane; ! /** The button icon. */ protected Icon comboIcon; ! /** Display just the icon, or the icon plus the label. */ protected boolean iconOnly; ! /** * Creates a new button. ! * ! * @param cb the combo that the button is used for (null not * permitted). * @param i the icon displayed on the button. * @param pane the rendering pane. --- 63,84 ---- /** A reference to the JList. */ protected JList listBox; ! /** * Used for rendering the selected item. */ protected CellRendererPane rendererPane; ! /** The button icon. */ protected Icon comboIcon; ! /** Display just the icon, or the icon plus the label. */ protected boolean iconOnly; ! /** * Creates a new button. ! * ! * @param cb the combo that the button is used for (null not * permitted). * @param i the icon displayed on the button. * @param pane the rendering pane. *************** public class MetalComboBoxButton *** 87,99 **** public MetalComboBoxButton(JComboBox cb, Icon i, CellRendererPane pane, JList list) { ! this(cb, i, cb.isEditable(), pane, list); } ! /** * Creates a new button. ! * ! * @param cb the combo that the button is used for (null not * permitted). * @param i the icon displayed on the button. * @param onlyIcon a flag that specifies whether the button displays only an --- 87,99 ---- public MetalComboBoxButton(JComboBox cb, Icon i, CellRendererPane pane, JList list) { ! this(cb, i, cb.isEditable(), pane, list); } ! /** * Creates a new button. ! * ! * @param cb the combo that the button is used for (null not * permitted). * @param i the icon displayed on the button. * @param onlyIcon a flag that specifies whether the button displays only an *************** public class MetalComboBoxButton *** 116,199 **** setEnabled(comboBox.isEnabled()); setFocusable(comboBox.isEnabled()); } ! /** * Returns the combo box that the button is used with. ! * * @return The combo box. */ public final JComboBox getComboBox() { return comboBox; } ! /** * Sets the combo box that the button is used with. ! * * @param cb the combo box. */ public final void setComboBox(JComboBox cb) { comboBox = cb; } ! /** * Returns the icon displayed by the button. By default, this will be an * instance of {@link MetalComboBoxIcon}. ! * * @return The icon displayed by the button. */ public final Icon getComboIcon() { return comboIcon; } ! /** * Sets the icon displayed by the button. ! * * @param i the icon. */ public final void setComboIcon(Icon i) { comboIcon = i; } ! /** * Returns a flag that controls whether the button displays an icon only, * or text as well. ! * * @return A boolean. */ public final boolean isIconOnly() { return iconOnly; } ! /** * Sets the flag that controls whether the button displays an icon only, * or text as well. ! * * @param isIconOnly the flag. */ public final void setIconOnly(boolean isIconOnly) { iconOnly = isIconOnly; } ! /** * Returns false, to indicate that this component is not part * of the focus traversal group. ! * * @return false */ public boolean isFocusTraversable() { return false; } ! /** * Enables or disables the button. ! * * @param enabled the new status. */ public void setEnabled(boolean enabled) --- 116,199 ---- setEnabled(comboBox.isEnabled()); setFocusable(comboBox.isEnabled()); } ! /** * Returns the combo box that the button is used with. ! * * @return The combo box. */ public final JComboBox getComboBox() { return comboBox; } ! /** * Sets the combo box that the button is used with. ! * * @param cb the combo box. */ public final void setComboBox(JComboBox cb) { comboBox = cb; } ! /** * Returns the icon displayed by the button. By default, this will be an * instance of {@link MetalComboBoxIcon}. ! * * @return The icon displayed by the button. */ public final Icon getComboIcon() { return comboIcon; } ! /** * Sets the icon displayed by the button. ! * * @param i the icon. */ public final void setComboIcon(Icon i) { comboIcon = i; } ! /** * Returns a flag that controls whether the button displays an icon only, * or text as well. ! * * @return A boolean. */ public final boolean isIconOnly() { return iconOnly; } ! /** * Sets the flag that controls whether the button displays an icon only, * or text as well. ! * * @param isIconOnly the flag. */ public final void setIconOnly(boolean isIconOnly) { iconOnly = isIconOnly; } ! /** * Returns false, to indicate that this component is not part * of the focus traversal group. ! * * @return false */ public boolean isFocusTraversable() { return false; } ! /** * Enables or disables the button. ! * * @param enabled the new status. */ public void setEnabled(boolean enabled) *************** public class MetalComboBoxButton *** 210,219 **** setForeground(UIManager.getColor("ComboBox.disabledForeground")); } } ! /** * Paints the component. ! * * @param g the graphics device. */ public void paintComponent(Graphics g) --- 210,219 ---- setForeground(UIManager.getColor("ComboBox.disabledForeground")); } } ! /** * Paints the component. ! * * @param g the graphics device. */ public void paintComponent(Graphics g) *************** public class MetalComboBoxButton *** 259,265 **** Component comp = renderer.getListCellRendererComponent(listBox, comboBox.getSelectedItem(), -1, false, false); comp.setFont(rendererPane.getFont()); ! if ((model.isArmed() && model.isPressed()) || (comboBox.isFocusOwner() && !comboBox.isPopupVisible())) { --- 259,265 ---- Component comp = renderer.getListCellRendererComponent(listBox, comboBox.getSelectedItem(), -1, false, false); comp.setFont(rendererPane.getFont()); ! if ((model.isArmed() && model.isPressed()) || (comboBox.isFocusOwner() && !comboBox.isPopupVisible())) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxEditor.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxEditor.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxEditor.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxEditor.java Tue Jan 11 19:46:05 2011 *************** public class MetalComboBoxEditor extends *** 65,74 **** { // Nothing to do here. } ! /** * Paints the border for the specified component. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate. --- 65,74 ---- { // Nothing to do here. } ! /** * Paints the border for the specified component. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate. *************** public class MetalComboBoxEditor extends *** 76,82 **** * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); --- 76,82 ---- * @param w the width. * @param h the height. */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); *************** public class MetalComboBoxEditor extends *** 123,133 **** public Insets getBorderInsets(Component c) { return editorBorderInsets; ! } } ! /** ! * A subclass of {@link MetalComboBoxEditor} that implements the * {@link javax.swing.plaf.UIResource} interface. */ public static class UIResource extends MetalComboBoxEditor --- 123,133 ---- public Insets getBorderInsets(Component c) { return editorBorderInsets; ! } } ! /** ! * A subclass of {@link MetalComboBoxEditor} that implements the * {@link javax.swing.plaf.UIResource} interface. */ public static class UIResource extends MetalComboBoxEditor *************** public class MetalComboBoxEditor extends *** 177,183 **** /** The editor's border insets. */ protected static Insets editorBorderInsets = new Insets(2, 2, 2, 0); ! /** * Creates a new editor. */ --- 177,183 ---- /** The editor's border insets. */ protected static Insets editorBorderInsets = new Insets(2, 2, 2, 0); ! /** * Creates a new editor. */ *************** public class MetalComboBoxEditor extends *** 186,190 **** editor = new EditorTextField("", 9); editor.setBorder(new MetalComboBoxEditorBorder()); } ! } --- 186,190 ---- editor = new EditorTextField("", 9); editor.setBorder(new MetalComboBoxEditorBorder()); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxIcon.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxIcon.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxIcon.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxIcon.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.Icon; *** 48,67 **** /** * An icon used by the {@link MetalComboBoxUI} class. */ ! public class MetalComboBoxIcon implements Icon, Serializable { ! /** * Creates a new icon. */ ! public MetalComboBoxIcon() { // nothing required. } ! /** * Returns the icon width, which for this icon is 10 pixels. ! * * @return 10. */ public int getIconWidth() --- 48,67 ---- /** * An icon used by the {@link MetalComboBoxUI} class. */ ! public class MetalComboBoxIcon implements Icon, Serializable { ! /** * Creates a new icon. */ ! public MetalComboBoxIcon() { // nothing required. } ! /** * Returns the icon width, which for this icon is 10 pixels. ! * * @return 10. */ public int getIconWidth() *************** public class MetalComboBoxIcon implement *** 71,77 **** /** * Returns the icon height, which for this icon is 5 pixels. ! * * @return 5. */ public int getIconHeight() --- 71,77 ---- /** * Returns the icon height, which for this icon is 5 pixels. ! * * @return 5. */ public int getIconHeight() *************** public class MetalComboBoxIcon implement *** 81,87 **** /** * Paints the icon at the location (x, y). ! * * @param c the combo box (ignored here). * @param g the graphics device. * @param x the x coordinate. --- 81,87 ---- /** * Paints the icon at the location (x, y). ! * * @param c the combo box (ignored here). * @param g the graphics device. * @param x the x coordinate. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxUI.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalComboBoxUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalComboBoxUI extends Bas *** 78,99 **** { // Nothing to do here. } ! /** * Arranges the editor (if visible) and button that comprise the combo * box. ! * * @param parent the parent. */ public void layoutContainer(Container parent) { layoutComboBox(parent, this); } ! /** ! * Calls the layoutContainer(Container) method in the super * class. ! * * @param parent the container. */ public void superLayout(Container parent) --- 78,99 ---- { // Nothing to do here. } ! /** * Arranges the editor (if visible) and button that comprise the combo * box. ! * * @param parent the parent. */ public void layoutContainer(Container parent) { layoutComboBox(parent, this); } ! /** ! * Calls the layoutContainer(Container) method in the super * class. ! * * @param parent the container. */ public void superLayout(Container parent) *************** public class MetalComboBoxUI extends Bas *** 101,109 **** super.layoutContainer(parent); } } ! /** ! * A listener used to handle property changes in the {@link JComboBox} * component, to ensure that the UI delegate accurately reflects the current * state in the rendering onscreen. */ --- 101,109 ---- super.layoutContainer(parent); } } ! /** ! * A listener used to handle property changes in the {@link JComboBox} * component, to ensure that the UI delegate accurately reflects the current * state in the rendering onscreen. */ *************** public class MetalComboBoxUI extends Bas *** 117,127 **** { // Nothing to do here. } ! /** * Handles a property change event, updating the UI components as * appropriate. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) --- 117,127 ---- { // Nothing to do here. } ! /** * Handles a property change event, updating the UI components as * appropriate. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) *************** public class MetalComboBoxUI extends Bas *** 156,162 **** /** * A popup menu for the combo-box. ! * * @see #createPopup() * * @deprecated 1.4 --- 156,162 ---- /** * A popup menu for the combo-box. ! * * @see #createPopup() * * @deprecated 1.4 *************** public class MetalComboBoxUI extends Bas *** 165,184 **** { /** * Creates a new popup. ! * * @param cBox the combo box. */ public MetalComboPopup(JComboBox cBox) { ! super(cBox); } ! public void delegateFocus(MouseEvent e) { super.delegateFocus(e); } } ! /** * Constructs a new instance of MetalComboBoxUI. */ --- 165,184 ---- { /** * Creates a new popup. ! * * @param cBox the combo box. */ public MetalComboPopup(JComboBox cBox) { ! super(cBox); } ! public void delegateFocus(MouseEvent e) { super.delegateFocus(e); } } ! /** * Constructs a new instance of MetalComboBoxUI. */ *************** public class MetalComboBoxUI extends Bas *** 198,258 **** { return new MetalComboBoxUI(); } ! /** * Creates an editor for the combo box. ! * * @return An editor. */ protected ComboBoxEditor createEditor() { ! return new MetalComboBoxEditor.UIResource(); } ! /** * Creates a popup for the combo box. ! * * @return A popup. */ protected ComboPopup createPopup() { return super.createPopup(); } ! /** * Creates a new button for use in rendering the JComboBox. ! * * @return A button. */ protected JButton createArrowButton() { ! JButton button = new MetalComboBoxButton(comboBox, new MetalComboBoxIcon(), ! currentValuePane, listBox); button.setMargin(new Insets(0, 1, 1, 3)); return button; } ! /** * Creates a new property change listener. ! * * @return A new property change listener. */ public PropertyChangeListener createPropertyChangeListener() { return new MetalPropertyChangeListener(); } ! public void paint(Graphics g, JComponent c) { // do nothing, the button and text field are painted elsewhere } ! /** * Updates the button and text field to reflect a change in the 'editable' * property. ! * * @param e the event. ! * * @deprecated 1.4 */ protected void editablePropertyChanged(PropertyChangeEvent e) --- 198,258 ---- { return new MetalComboBoxUI(); } ! /** * Creates an editor for the combo box. ! * * @return An editor. */ protected ComboBoxEditor createEditor() { ! return new MetalComboBoxEditor.UIResource(); } ! /** * Creates a popup for the combo box. ! * * @return A popup. */ protected ComboPopup createPopup() { return super.createPopup(); } ! /** * Creates a new button for use in rendering the JComboBox. ! * * @return A button. */ protected JButton createArrowButton() { ! JButton button = new MetalComboBoxButton(comboBox, new MetalComboBoxIcon(), ! currentValuePane, listBox); button.setMargin(new Insets(0, 1, 1, 3)); return button; } ! /** * Creates a new property change listener. ! * * @return A new property change listener. */ public PropertyChangeListener createPropertyChangeListener() { return new MetalPropertyChangeListener(); } ! public void paint(Graphics g, JComponent c) { // do nothing, the button and text field are painted elsewhere } ! /** * Updates the button and text field to reflect a change in the 'editable' * property. ! * * @param e the event. ! * * @deprecated 1.4 */ protected void editablePropertyChanged(PropertyChangeEvent e) *************** public class MetalComboBoxUI extends Bas *** 265,296 **** comboBox.repaint(); } } ! /** * Creates a new layout manager for the UI delegate. ! * * @return A new layout manager. */ protected LayoutManager createLayoutManager() { return new MetalComboBoxLayoutManager(); } ! /** * Not used in Classpath. ! * * @deprecated 1.4 */ protected void removeListeners() { ! // no longer used in JDK 1.4 } ! /** * Returns the minimum size for the combo. ! * * @param c the component ! * * @return The minimum size for the combo box. */ public Dimension getMinimumSize(JComponent c) --- 265,296 ---- comboBox.repaint(); } } ! /** * Creates a new layout manager for the UI delegate. ! * * @return A new layout manager. */ protected LayoutManager createLayoutManager() { return new MetalComboBoxLayoutManager(); } ! /** * Not used in Classpath. ! * * @deprecated 1.4 */ protected void removeListeners() { ! // no longer used in JDK 1.4 } ! /** * Returns the minimum size for the combo. ! * * @param c the component ! * * @return The minimum size for the combo box. */ public Dimension getMinimumSize(JComponent c) *************** public class MetalComboBoxUI extends Bas *** 328,334 **** isMinimumSizeDirty = false; return new Dimension(cachedMinimumSize); } ! /** * Configures the editor for this combo box. */ --- 328,334 ---- isMinimumSizeDirty = false; return new Dimension(cachedMinimumSize); } ! /** * Configures the editor for this combo box. */ *************** public class MetalComboBoxUI extends Bas *** 350,357 **** if (focusListener != null) editor.removeFocusListener(focusListener); } ! ! /** * Lays out the ComboBox */ public void layoutComboBox(Container parent, --- 350,357 ---- if (focusListener != null) editor.removeFocusListener(focusListener); } ! ! /** * Lays out the ComboBox */ public void layoutComboBox(Container parent, diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalFileChooserUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalFileChooserUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalFileChooserUI.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalFileChooserUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.table.DefaultTableMod *** 100,116 **** * A UI delegate for the {@link JFileChooser} component. This class is only * partially implemented and is not usable yet. */ ! public class MetalFileChooserUI extends BasicFileChooserUI { ! /** * A renderer for the files and directories in the file chooser table. */ class TableFileRenderer extends DefaultTableCellRenderer { ! /** * Creates a new renderer. */ --- 100,116 ---- * A UI delegate for the {@link JFileChooser} component. This class is only * partially implemented and is not usable yet. */ ! public class MetalFileChooserUI extends BasicFileChooserUI { ! /** * A renderer for the files and directories in the file chooser table. */ class TableFileRenderer extends DefaultTableCellRenderer { ! /** * Creates a new renderer. */ *************** public class MetalFileChooserUI *** 118,134 **** { super(); } ! /** * Returns a component that can render the specified value. ! * * @param table the table * @param value the string value of the cell * @param isSelected is the item selected? * @param hasFocus does the item have the focus? * @param row the row * @param column the column ! * * @return The renderer. */ public Component getTableCellRendererComponent(JTable table, Object value, --- 118,134 ---- { super(); } ! /** * Returns a component that can render the specified value. ! * * @param table the table * @param value the string value of the cell * @param isSelected is the item selected? * @param hasFocus does the item have the focus? * @param row the row * @param column the column ! * * @return The renderer. */ public Component getTableCellRendererComponent(JTable table, Object value, *************** public class MetalFileChooserUI *** 143,154 **** } else setIcon(null); ! setText(value.toString()); setOpaque(true); setEnabled(table.isEnabled()); setFont(fileList.getFont()); ! if (startEditing && column == 0 || !isSelected) { setBackground(table.getBackground()); --- 143,154 ---- } else setIcon(null); ! setText(value.toString()); setOpaque(true); setEnabled(table.isEnabled()); setFont(fileList.getFont()); ! if (startEditing && column == 0 || !isSelected) { setBackground(table.getBackground()); *************** public class MetalFileChooserUI *** 164,183 **** setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); else setBorder(noFocusBorder); ! return this; } } ! /** * ActionListener for the list view. */ class ListViewActionListener implements ActionListener { ! /** * This method is invoked when an action occurs. ! * * @param e - * the ActionEvent that occurred */ --- 164,183 ---- setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); else setBorder(noFocusBorder); ! return this; } } ! /** * ActionListener for the list view. */ class ListViewActionListener implements ActionListener { ! /** * This method is invoked when an action occurs. ! * * @param e - * the ActionEvent that occurred */ *************** public class MetalFileChooserUI *** 195,217 **** if (index.length > 0) for (int i = 0; i < index.length; i++) fileList.getSelectionModel().addSelectionInterval(index[i], index[i]); ! fc.add(fileListPanel, BorderLayout.CENTER); fc.revalidate(); fc.repaint(); } } } ! /** * ActionListener for the details view. */ class DetailViewActionListener implements ActionListener { ! /** * This method is invoked when an action occurs. ! * * @param e - * the ActionEvent that occurred */ --- 195,217 ---- if (index.length > 0) for (int i = 0; i < index.length; i++) fileList.getSelectionModel().addSelectionInterval(index[i], index[i]); ! fc.add(fileListPanel, BorderLayout.CENTER); fc.revalidate(); fc.repaint(); } } } ! /** * ActionListener for the details view. */ class DetailViewActionListener implements ActionListener { ! /** * This method is invoked when an action occurs. ! * * @param e - * the ActionEvent that occurred */ *************** public class MetalFileChooserUI *** 223,229 **** JFileChooser fc = getFileChooser(); listView = false; fc.remove(fileListPanel); ! if (fileTable == null) createDetailsView(fc); else --- 223,229 ---- JFileChooser fc = getFileChooser(); listView = false; fc.remove(fileListPanel); ! if (fileTable == null) createDetailsView(fc); else *************** public class MetalFileChooserUI *** 235,252 **** for (int i = 0; i < index.length; i++) fileTable.getSelectionModel().addSelectionInterval(index[i], index[i]); } ! fc.add(fileTablePanel, BorderLayout.CENTER); fc.revalidate(); fc.repaint(); } } } ! /** * A property change listener. */ ! class MetalFileChooserPropertyChangeListener implements PropertyChangeListener { /** --- 235,252 ---- for (int i = 0; i < index.length; i++) fileTable.getSelectionModel().addSelectionInterval(index[i], index[i]); } ! fc.add(fileTablePanel, BorderLayout.CENTER); fc.revalidate(); fc.repaint(); } } } ! /** * A property change listener. */ ! class MetalFileChooserPropertyChangeListener implements PropertyChangeListener { /** *************** public class MetalFileChooserUI *** 255,279 **** public MetalFileChooserPropertyChangeListener() { } ! /** * Handles a property change event. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) { JFileChooser filechooser = getFileChooser(); ! String n = e.getPropertyName(); if (n.equals(JFileChooser.MULTI_SELECTION_ENABLED_CHANGED_PROPERTY)) { ! int mode = -1; if (filechooser.isMultiSelectionEnabled()) mode = ListSelectionModel.MULTIPLE_INTERVAL_SELECTION; else mode = ListSelectionModel.SINGLE_SELECTION; ! if (listView) fileList.setSelectionMode(mode); else --- 255,279 ---- public MetalFileChooserPropertyChangeListener() { } ! /** * Handles a property change event. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) { JFileChooser filechooser = getFileChooser(); ! String n = e.getPropertyName(); if (n.equals(JFileChooser.MULTI_SELECTION_ENABLED_CHANGED_PROPERTY)) { ! int mode = -1; if (filechooser.isMultiSelectionEnabled()) mode = ListSelectionModel.MULTIPLE_INTERVAL_SELECTION; else mode = ListSelectionModel.SINGLE_SELECTION; ! if (listView) fileList.setSelectionMode(mode); else *************** public class MetalFileChooserUI *** 282,288 **** else if (n.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) { File file = filechooser.getSelectedFile(); ! if (file != null && filechooser.getDialogType() == JFileChooser.SAVE_DIALOG) { --- 282,288 ---- else if (n.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) { File file = filechooser.getSelectedFile(); ! if (file != null && filechooser.getDialogType() == JFileChooser.SAVE_DIALOG) { *************** public class MetalFileChooserUI *** 301,312 **** filechooser.setApproveButtonToolTipText(saveButtonToolTipText); } } ! if (file == null) setFileName(null); ! else if (file.isFile() || filechooser.getFileSelectionMode() ! != JFileChooser.FILES_ONLY) ! setFileName(file.getName()); int index = -1; index = getModel().indexOf(file); if (index >= 0) --- 301,312 ---- filechooser.setApproveButtonToolTipText(saveButtonToolTipText); } } ! if (file == null) setFileName(null); ! else if (file.isFile() || filechooser.getFileSelectionMode() ! != JFileChooser.FILES_ONLY) ! setFileName(file.getName()); int index = -1; index = getModel().indexOf(file); if (index >= 0) *************** public class MetalFileChooserUI *** 327,333 **** } } } ! else if (n.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) { if (listView) --- 327,333 ---- } } } ! else if (n.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) { if (listView) *************** public class MetalFileChooserUI *** 349,355 **** boolean hasParent = currentDirectory.getParentFile() != null; getChangeToParentDirectoryAction().setEnabled(hasParent); } ! else if (n.equals(JFileChooser.CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY)) { filterModel.propertyChange(e); --- 349,355 ---- boolean hasParent = currentDirectory.getParentFile() != null; getChangeToParentDirectoryAction().setEnabled(hasParent); } ! else if (n.equals(JFileChooser.CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY)) { filterModel.propertyChange(e); *************** public class MetalFileChooserUI *** 369,382 **** getApproveButtonToolTipText(filechooser)); approveButton.setMnemonic(getApproveButtonMnemonic(filechooser)); } ! else if (n.equals(JFileChooser.APPROVE_BUTTON_TEXT_CHANGED_PROPERTY)) approveButton.setText(getApproveButtonText(filechooser)); ! else if (n.equals( JFileChooser.APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY)) approveButton.setToolTipText(getApproveButtonToolTipText(filechooser)); ! else if (n.equals(JFileChooser.APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY)) approveButton.setMnemonic(getApproveButtonMnemonic(filechooser)); --- 369,382 ---- getApproveButtonToolTipText(filechooser)); approveButton.setMnemonic(getApproveButtonMnemonic(filechooser)); } ! else if (n.equals(JFileChooser.APPROVE_BUTTON_TEXT_CHANGED_PROPERTY)) approveButton.setText(getApproveButtonText(filechooser)); ! else if (n.equals( JFileChooser.APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY)) approveButton.setToolTipText(getApproveButtonToolTipText(filechooser)); ! else if (n.equals(JFileChooser.APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY)) approveButton.setMnemonic(getApproveButtonMnemonic(filechooser)); *************** public class MetalFileChooserUI *** 393,399 **** topPanel.repaint(); topPanel.doLayout(); } ! else if (n.equals( JFileChooser.ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY)) { --- 393,399 ---- topPanel.repaint(); topPanel.doLayout(); } ! else if (n.equals( JFileChooser.ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY)) { *************** public class MetalFileChooserUI *** 404,410 **** filechooser.removeChoosableFileFilter( getAcceptAllFileFilter(filechooser)); } ! else if (n.equals(JFileChooser.ACCESSORY_CHANGED_PROPERTY)) { JComponent old = (JComponent) e.getOldValue(); --- 404,410 ---- filechooser.removeChoosableFileFilter( getAcceptAllFileFilter(filechooser)); } ! else if (n.equals(JFileChooser.ACCESSORY_CHANGED_PROPERTY)) { JComponent old = (JComponent) e.getOldValue(); *************** public class MetalFileChooserUI *** 414,420 **** if (newval != null) getAccessoryPanel().add(newval); } ! if (n.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY) || n.equals(JFileChooser.FILE_FILTER_CHANGED_PROPERTY) || n.equals(JFileChooser.FILE_HIDING_CHANGED_PROPERTY)) --- 414,420 ---- if (newval != null) getAccessoryPanel().add(newval); } ! if (n.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY) || n.equals(JFileChooser.FILE_FILTER_CHANGED_PROPERTY) || n.equals(JFileChooser.FILE_HIDING_CHANGED_PROPERTY)) *************** public class MetalFileChooserUI *** 425,431 **** if (fileList != null) fileList.removeAll(); startEditing = false; ! // Set text on button back to original. if (filechooser.getDialogType() == JFileChooser.SAVE_DIALOG) { --- 425,431 ---- if (fileList != null) fileList.removeAll(); startEditing = false; ! // Set text on button back to original. if (filechooser.getDialogType() == JFileChooser.SAVE_DIALOG) { *************** public class MetalFileChooserUI *** 434,449 **** filechooser.setApproveButtonText(saveButtonText); filechooser.setApproveButtonToolTipText(saveButtonToolTipText); } ! rescanCurrentDirectory(filechooser); } ! filechooser.revalidate(); filechooser.repaint(); } } ! ! /** * A combo box model containing the selected directory and all its parent * directories. */ --- 434,449 ---- filechooser.setApproveButtonText(saveButtonText); filechooser.setApproveButtonToolTipText(saveButtonToolTipText); } ! rescanCurrentDirectory(filechooser); } ! filechooser.revalidate(); filechooser.repaint(); } } ! ! /** * A combo box model containing the selected directory and all its parent * directories. */ *************** public class MetalFileChooserUI *** 453,498 **** { /** Storage for the items in the model. */ private List items; ! /** The index of the selected item. */ private int selectedIndex; ! /** * Creates a new model. */ ! public DirectoryComboBoxModel() { items = new java.util.ArrayList(); selectedIndex = -1; } ! /** * Returns the number of items in the model. ! * * @return The number of items in the model. */ public int getSize() { return items.size(); } ! /** * Returns the item at the specified index. ! * * @param index the item index. ! * * @return The item. */ public Object getElementAt(int index) { return items.get(index); } ! /** * Returns the depth of the item at the given index. ! * * @param index the item index. ! * * @return The depth. */ public int getDepth(int index) --- 453,498 ---- { /** Storage for the items in the model. */ private List items; ! /** The index of the selected item. */ private int selectedIndex; ! /** * Creates a new model. */ ! public DirectoryComboBoxModel() { items = new java.util.ArrayList(); selectedIndex = -1; } ! /** * Returns the number of items in the model. ! * * @return The number of items in the model. */ public int getSize() { return items.size(); } ! /** * Returns the item at the specified index. ! * * @param index the item index. ! * * @return The item. */ public Object getElementAt(int index) { return items.get(index); } ! /** * Returns the depth of the item at the given index. ! * * @param index the item index. ! * * @return The depth. */ public int getDepth(int index) *************** public class MetalFileChooserUI *** 502,523 **** /** * Returns the selected item, or null if no item is selected. ! * * @return The selected item, or null. */ public Object getSelectedItem() { ! if (selectedIndex >= 0) return items.get(selectedIndex); else return null; } ! /** * Sets the selected item. This clears all the directories from the * existing list, and repopulates it with the new selected directory * and all its parent directories. ! * * @param selectedDirectory the selected directory. */ public void setSelectedItem(Object selectedDirectory) --- 502,523 ---- /** * Returns the selected item, or null if no item is selected. ! * * @return The selected item, or null. */ public Object getSelectedItem() { ! if (selectedIndex >= 0) return items.get(selectedIndex); else return null; } ! /** * Sets the selected item. This clears all the directories from the * existing list, and repopulates it with the new selected directory * and all its parent directories. ! * * @param selectedDirectory the selected directory. */ public void setSelectedItem(Object selectedDirectory) *************** public class MetalFileChooserUI *** 533,539 **** selectedIndex = items.indexOf(selectedDirectory); fireContentsChanged(this, 0, items.size() - 1); } ! } /** --- 533,539 ---- selectedIndex = items.indexOf(selectedDirectory); fireContentsChanged(this, 0, items.size() - 1); } ! } /** *************** public class MetalFileChooserUI *** 549,558 **** { // Nothing to do here. } ! /** * Handles the action event. ! * * @param e the event. */ public void actionPerformed(ActionEvent e) --- 549,558 ---- { // Nothing to do here. } ! /** * Handles the action event. ! * * @param e the event. */ public void actionPerformed(ActionEvent e) *************** public class MetalFileChooserUI *** 581,597 **** { indentIcon = new IndentIcon(); } ! /** ! * Returns a component that can be used to paint the given value within * the list. ! * * @param list the list. * @param value the value (a {@link File}). * @param index the item index. * @param isSelected is the item selected? * @param cellHasFocus does the list cell have focus? ! * * @return The list cell renderer. */ public Component getListCellRendererComponent(JList list, Object value, --- 581,597 ---- { indentIcon = new IndentIcon(); } ! /** ! * Returns a component that can be used to paint the given value within * the list. ! * * @param list the list. * @param value the value (a {@link File}). * @param index the item index. * @param isSelected is the item selected? * @param cellHasFocus does the list cell have focus? ! * * @return The list cell renderer. */ public Component getListCellRendererComponent(JList list, Object value, *************** public class MetalFileChooserUI *** 671,677 **** { icon.paintIcon(c, g, x + depth * INDENT, y); } ! } /** --- 671,677 ---- { icon.paintIcon(c, g, x + depth * INDENT, y); } ! } /** *************** public class MetalFileChooserUI *** 680,686 **** protected class FileRenderer extends DefaultListCellRenderer { ! /** * Creates a new renderer. */ --- 680,686 ---- protected class FileRenderer extends DefaultListCellRenderer { ! /** * Creates a new renderer. */ *************** public class MetalFileChooserUI *** 688,703 **** { // Nothing to do here. } ! /** * Returns a component that can render the specified value. ! * * @param list the list. * @param value the value (a {@link File}). * @param index the index. * @param isSelected is the item selected? * @param cellHasFocus does the item have the focus? ! * * @return The renderer. */ public Component getListCellRendererComponent(JList list, Object value, --- 688,703 ---- { // Nothing to do here. } ! /** * Returns a component that can render the specified value. ! * * @param list the list. * @param value the value (a {@link File}). * @param index the index. * @param isSelected is the item selected? * @param cellHasFocus does the item have the focus? ! * * @return The renderer. */ public Component getListCellRendererComponent(JList list, Object value, *************** public class MetalFileChooserUI *** 751,757 **** /** The index of the selected file filter. */ private Object selected; ! /** * Creates a new model. */ --- 751,757 ---- /** The index of the selected file filter. */ private Object selected; ! /** * Creates a new model. */ *************** public class MetalFileChooserUI *** 761,770 **** filters[0] = getAcceptAllFileFilter(getFileChooser()); selected = filters[0]; } ! /** * Handles property changes. ! * * @param e the property change event. */ public void propertyChange(PropertyChangeEvent e) --- 761,770 ---- filters[0] = getAcceptAllFileFilter(getFileChooser()); selected = filters[0]; } ! /** * Handles property changes. ! * * @param e the property change event. */ public void propertyChange(PropertyChangeEvent e) *************** public class MetalFileChooserUI *** 788,797 **** fireContentsChanged(this, 0, filters.length); } } ! /** * Sets the selected filter. ! * * @param filter the filter (null ignored). */ public void setSelectedItem(Object filter) --- 788,797 ---- fireContentsChanged(this, 0, filters.length); } } ! /** * Sets the selected filter. ! * * @param filter the filter (null ignored). */ public void setSelectedItem(Object filter) *************** public class MetalFileChooserUI *** 802,840 **** fireContentsChanged(this, -1, -1); } } ! /** * Returns the selected file filter. ! * * @return The selected file filter. */ public Object getSelectedItem() { return selected; } ! /** * Returns the number of items in the model. ! * * @return The number of items in the model. */ public int getSize() { return filters.length; } ! /** * Returns the item at the specified index. ! * * @param index the item index. ! * * @return The item at the specified index. */ public Object getElementAt(int index) { return filters[index]; } ! } /** --- 802,840 ---- fireContentsChanged(this, -1, -1); } } ! /** * Returns the selected file filter. ! * * @return The selected file filter. */ public Object getSelectedItem() { return selected; } ! /** * Returns the number of items in the model. ! * * @return The number of items in the model. */ public int getSize() { return filters.length; } ! /** * Returns the item at the specified index. ! * * @param index the item index. ! * * @return The item at the specified index. */ public Object getElementAt(int index) { return filters[index]; } ! } /** *************** public class MetalFileChooserUI *** 850,872 **** { // Nothing to do here. } ! /** ! * Returns a component that can be used to paint the given value within * the list. ! * * @param list the list. * @param value the value (a {@link FileFilter}). * @param index the item index. * @param isSelected is the item selected? * @param cellHasFocus does the list cell have focus? ! * * @return This component as the renderer. */ public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { ! super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); FileFilter filter = (FileFilter) value; setText(filter.getDescription()); --- 850,872 ---- { // Nothing to do here. } ! /** ! * Returns a component that can be used to paint the given value within * the list. ! * * @param list the list. * @param value the value (a {@link FileFilter}). * @param index the item index. * @param isSelected is the item selected? * @param cellHasFocus does the list cell have focus? ! * * @return This component as the renderer. */ public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { ! super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); FileFilter filter = (FileFilter) value; setText(filter.getDescription()); *************** public class MetalFileChooserUI *** 876,885 **** /** * A listener for selection events in the file list. ! * * @see #createListSelectionListener(JFileChooser) */ ! class MetalFileChooserSelectionListener implements ListSelectionListener { /** --- 876,885 ---- /** * A listener for selection events in the file list. ! * * @see #createListSelectionListener(JFileChooser) */ ! class MetalFileChooserSelectionListener implements ListSelectionListener { /** *************** public class MetalFileChooserUI *** 916,943 **** protected class SingleClickListener extends MouseAdapter { ! /** Stores instance of the list */ JList list; ! ! /** * Stores the current file that is being edited. * It is null if nothing is currently being edited. */ File editFile; ! /** The current file chooser. */ JFileChooser fc; ! /** The last file selected. */ Object lastSelected; ! /** The textfield used for editing. */ JTextField editField; ! /** * Creates a new listener. ! * * @param list the directory/file list. */ public SingleClickListener(JList list) --- 916,943 ---- protected class SingleClickListener extends MouseAdapter { ! /** Stores instance of the list */ JList list; ! ! /** * Stores the current file that is being edited. * It is null if nothing is currently being edited. */ File editFile; ! /** The current file chooser. */ JFileChooser fc; ! /** The last file selected. */ Object lastSelected; ! /** The textfield used for editing. */ JTextField editField; ! /** * Creates a new listener. ! * * @param list the directory/file list. */ public SingleClickListener(JList list) *************** public class MetalFileChooserUI *** 948,957 **** lastSelected = null; startEditing = false; } ! /** * Receives notification of a mouse click event. ! * * @param e the event. */ public void mouseClicked(MouseEvent e) --- 948,957 ---- lastSelected = null; startEditing = false; } ! /** * Receives notification of a mouse click event. ! * * @param e the event. */ public void mouseClicked(MouseEvent e) *************** public class MetalFileChooserUI *** 974,983 **** else completeEditing(); } ! /** * Sets up the text editor for the current file. ! * * @param index - * the current index of the item in the list to be edited. */ --- 974,983 ---- else completeEditing(); } ! /** * Sets up the text editor for the current file. ! * * @param index - * the current index of the item in the list to be edited. */ *************** public class MetalFileChooserUI *** 991,997 **** startEditing = true; editField = new JTextField(editFile.getName()); editField.addActionListener(new EditingActionListener()); ! Icon icon = getFileView(fc).getIcon(editFile); if (icon != null) { --- 991,997 ---- startEditing = true; editField = new JTextField(editFile.getName()); editField.addActionListener(new EditingActionListener()); ! Icon icon = getFileView(fc).getIcon(editFile); if (icon != null) { *************** public class MetalFileChooserUI *** 1000,1008 **** bounds.width -= padding; } editField.setBounds(bounds); ! list.add(editField); ! editField.requestFocus(); editField.selectAll(); } --- 1000,1008 ---- bounds.width -= padding; } editField.setBounds(bounds); ! list.add(editField); ! editField.requestFocus(); editField.selectAll(); } *************** public class MetalFileChooserUI *** 1010,1017 **** completeEditing(); list.repaint(); } ! ! /** * Completes the editing. */ void completeEditing() --- 1010,1017 ---- completeEditing(); list.repaint(); } ! ! /** * Completes the editing. */ void completeEditing() *************** public class MetalFileChooserUI *** 1020,1031 **** { String text = editField.getText(); if (text != null && text != "" && !text.equals(fc.getName(editFile))) ! { ! File f = fc.getFileSystemView(). ! createFileObject(fc.getCurrentDirectory(), text); if ( editFile.renameTo(f) ) rescanCurrentDirectory(fc); ! } list.remove(editField); } startEditing = false; --- 1020,1031 ---- { String text = editField.getText(); if (text != null && text != "" && !text.equals(fc.getName(editFile))) ! { ! File f = fc.getFileSystemView(). ! createFileObject(fc.getCurrentDirectory(), text); if ( editFile.renameTo(f) ) rescanCurrentDirectory(fc); ! } list.remove(editField); } startEditing = false; *************** public class MetalFileChooserUI *** 1034,1055 **** editField = null; list.repaint(); } ! /** * ActionListener for the editing text field. */ class EditingActionListener implements ActionListener { ! /** * This method is invoked when an action occurs. ! * * @param e - * the ActionEvent that occurred */ public void actionPerformed(ActionEvent e) { ! if (editField != null) completeEditing(); } } --- 1034,1055 ---- editField = null; list.repaint(); } ! /** * ActionListener for the editing text field. */ class EditingActionListener implements ActionListener { ! /** * This method is invoked when an action occurs. ! * * @param e - * the ActionEvent that occurred */ public void actionPerformed(ActionEvent e) { ! if (editField != null) completeEditing(); } } *************** public class MetalFileChooserUI *** 1070,1088 **** /** The last selected file. */ Object lastSelected; ! ! /** * Stores the current file that is being edited. * It is null if nothing is currently being edited. */ File editFile; ! /** The textfield used for editing. */ JTextField editField; /** * Creates a new listener. ! * * @param table the directory/file table * @param fc the JFileChooser */ --- 1070,1088 ---- /** The last selected file. */ Object lastSelected; ! ! /** * Stores the current file that is being edited. * It is null if nothing is currently being edited. */ File editFile; ! /** The textfield used for editing. */ JTextField editField; /** * Creates a new listener. ! * * @param table the directory/file table * @param fc the JFileChooser */ *************** public class MetalFileChooserUI *** 1099,1105 **** /** * Receives notification of a mouse click event. ! * * @param e the event. */ public void mouseClicked(MouseEvent e) --- 1099,1105 ---- /** * Receives notification of a mouse click event. ! * * @param e the event. */ public void mouseClicked(MouseEvent e) *************** public class MetalFileChooserUI *** 1167,1173 **** /** * Sets up the text editor for the current file. ! * * @param row - * the current row of the item in the list to be edited. */ --- 1167,1173 ---- /** * Sets up the text editor for the current file. ! * * @param row - * the current row of the item in the list to be edited. */ *************** public class MetalFileChooserUI *** 1184,1192 **** // Need to adjust y pos bounds.y = row * table.getRowHeight(); editField.setBounds(bounds); ! table.add(editField); ! editField.requestFocus(); editField.selectAll(); } --- 1184,1192 ---- // Need to adjust y pos bounds.y = row * table.getRowHeight(); editField.setBounds(bounds); ! table.add(editField); ! editField.requestFocus(); editField.selectAll(); } *************** public class MetalFileChooserUI *** 1194,1201 **** completeEditing(); table.repaint(); } ! ! /** * Completes the editing. */ void completeEditing() --- 1194,1201 ---- completeEditing(); table.repaint(); } ! ! /** * Completes the editing. */ void completeEditing() *************** public class MetalFileChooserUI *** 1214,1239 **** editField = null; table.repaint(); } ! /** * ActionListener for the editing text field. */ class EditingActionListener implements ActionListener { ! /** * This method is invoked when an action occurs. ! * * @param e - * the ActionEvent that occurred */ public void actionPerformed(ActionEvent e) { ! if (editField != null) completeEditing(); } } ! /** * Closes the dialog. */ --- 1214,1239 ---- editField = null; table.repaint(); } ! /** * ActionListener for the editing text field. */ class EditingActionListener implements ActionListener { ! /** * This method is invoked when an action occurs. ! * * @param e - * the ActionEvent that occurred */ public void actionPerformed(ActionEvent e) { ! if (editField != null) completeEditing(); } } ! /** * Closes the dialog. */ *************** public class MetalFileChooserUI *** 1243,1333 **** if (owner instanceof JDialog) ((JDialog) owner).dispose(); } ! } ! /** The text for a label describing the directory combo box. */ private String directoryLabel; ! private JComboBox directoryComboBox; ! /** The model for the directory combo box. */ DirectoryComboBoxModel directoryModel; ! /** The text for a label describing the file text field. */ private String fileLabel; ! /** The file name text field. */ private JTextField fileTextField; ! /** The text for a label describing the filter combo box. */ private String filterLabel; ! /** ! * The top panel (contains the directory combo box and the control buttons). */ private JPanel topPanel; ! /** A panel containing the control buttons ('up', 'home' etc.). */ private JPanel controls; ! /** ! * The panel that contains the filename field and the filter combobox. */ private JPanel bottomPanel; ! /** ! * The panel that contains the 'Open' (or 'Save') and 'Cancel' buttons. */ private JPanel buttonPanel; ! private JButton approveButton; ! /** The file list. */ JList fileList; ! /** The file table. */ JTable fileTable; ! /** The panel containing the file list. */ JPanel fileListPanel; ! /** The panel containing the file table. */ JPanel fileTablePanel; ! /** The filter combo box model. */ private FilterComboBoxModel filterModel; /** The action map. */ private ActionMap actionMap; ! /** True if currently in list view. */ boolean listView; ! /** True if we can or have started editing a cell. */ boolean startEditing; ! /** The scrollpane used for the table and list. */ JScrollPane scrollPane; ! /** The text for the label when saving. */ String save; ! /** The text for the label when opening a directory. */ String look; ! /** The label for the file combo box. */ JLabel dirLabel; ! /** Listeners. */ ListSelectionListener listSelList; MouseListener doubleClickList; SingleClickListener singleClickList; TableClickListener tableClickList; ! /** * A factory method that returns a UI delegate for the specified * component. ! * * @param c the component (which should be a {@link JFileChooser}). */ public static ComponentUI createUI(JComponent c) --- 1243,1333 ---- if (owner instanceof JDialog) ((JDialog) owner).dispose(); } ! } ! /** The text for a label describing the directory combo box. */ private String directoryLabel; ! private JComboBox directoryComboBox; ! /** The model for the directory combo box. */ DirectoryComboBoxModel directoryModel; ! /** The text for a label describing the file text field. */ private String fileLabel; ! /** The file name text field. */ private JTextField fileTextField; ! /** The text for a label describing the filter combo box. */ private String filterLabel; ! /** ! * The top panel (contains the directory combo box and the control buttons). */ private JPanel topPanel; ! /** A panel containing the control buttons ('up', 'home' etc.). */ private JPanel controls; ! /** ! * The panel that contains the filename field and the filter combobox. */ private JPanel bottomPanel; ! /** ! * The panel that contains the 'Open' (or 'Save') and 'Cancel' buttons. */ private JPanel buttonPanel; ! private JButton approveButton; ! /** The file list. */ JList fileList; ! /** The file table. */ JTable fileTable; ! /** The panel containing the file list. */ JPanel fileListPanel; ! /** The panel containing the file table. */ JPanel fileTablePanel; ! /** The filter combo box model. */ private FilterComboBoxModel filterModel; /** The action map. */ private ActionMap actionMap; ! /** True if currently in list view. */ boolean listView; ! /** True if we can or have started editing a cell. */ boolean startEditing; ! /** The scrollpane used for the table and list. */ JScrollPane scrollPane; ! /** The text for the label when saving. */ String save; ! /** The text for the label when opening a directory. */ String look; ! /** The label for the file combo box. */ JLabel dirLabel; ! /** Listeners. */ ListSelectionListener listSelList; MouseListener doubleClickList; SingleClickListener singleClickList; TableClickListener tableClickList; ! /** * A factory method that returns a UI delegate for the specified * component. ! * * @param c the component (which should be a {@link JFileChooser}). */ public static ComponentUI createUI(JComponent c) *************** public class MetalFileChooserUI *** 1338,1344 **** /** * Creates a new instance of this UI delegate. ! * * @param filechooser the file chooser component. */ public MetalFileChooserUI(JFileChooser filechooser) --- 1338,1344 ---- /** * Creates a new instance of this UI delegate. ! * * @param filechooser the file chooser component. */ public MetalFileChooserUI(JFileChooser filechooser) *************** public class MetalFileChooserUI *** 1353,1368 **** super.installUI(c); actionMap = createActionMap(); } ! public void uninstallUI(JComponent c) { super.uninstallUI(c); actionMap = null; } ! /** * Installs the sub-components of the file chooser. ! * * @param fc the file chooser component. */ public void installComponents(JFileChooser fc) --- 1353,1368 ---- super.installUI(c); actionMap = createActionMap(); } ! public void uninstallUI(JComponent c) { super.uninstallUI(c); actionMap = null; } ! /** * Installs the sub-components of the file chooser. ! * * @param fc the file chooser component. */ public void installComponents(JFileChooser fc) *************** public class MetalFileChooserUI *** 1373,1379 **** topPanel.add(dirLabel, BorderLayout.WEST); this.controls = new JPanel(); addControlButtons(); ! JPanel dirPanel = new JPanel(new VerticalMidLayout()); directoryModel = createDirectoryComboBoxModel(fc); directoryComboBox = new JComboBox(directoryModel); --- 1373,1379 ---- topPanel.add(dirLabel, BorderLayout.WEST); this.controls = new JPanel(); addControlButtons(); ! JPanel dirPanel = new JPanel(new VerticalMidLayout()); directoryModel = createDirectoryComboBoxModel(fc); directoryComboBox = new JComboBox(directoryModel); *************** public class MetalFileChooserUI *** 1383,1398 **** topPanel.add(controls, BorderLayout.EAST); topPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8)); fc.add(topPanel, BorderLayout.NORTH); ! JPanel list = createList(fc); list.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); fc.add(list, BorderLayout.CENTER); ! JPanel bottomPanel = getBottomPanel(); filterModel = createFilterComboBoxModel(); JComboBox fileFilterCombo = new JComboBox(filterModel); fileFilterCombo.setRenderer(createFilterComboBoxRenderer()); ! fileTextField = new JTextField(); JPanel fileNamePanel = new JPanel(new VerticalMidLayout()); fileNamePanel.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 5)); --- 1383,1398 ---- topPanel.add(controls, BorderLayout.EAST); topPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8)); fc.add(topPanel, BorderLayout.NORTH); ! JPanel list = createList(fc); list.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); fc.add(list, BorderLayout.CENTER); ! JPanel bottomPanel = getBottomPanel(); filterModel = createFilterComboBoxModel(); JComboBox fileFilterCombo = new JComboBox(filterModel); fileFilterCombo.setRenderer(createFilterComboBoxRenderer()); ! fileTextField = new JTextField(); JPanel fileNamePanel = new JPanel(new VerticalMidLayout()); fileNamePanel.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 5)); *************** public class MetalFileChooserUI *** 1401,1421 **** row1.add(new JLabel(this.fileLabel), BorderLayout.WEST); row1.add(fileNamePanel); bottomPanel.add(row1); ! JPanel row2 = new JPanel(new BorderLayout()); row2.add(new JLabel(this.filterLabel), BorderLayout.WEST); row2.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5)); row2.add(fileFilterCombo); bottomPanel.add(row2); JPanel buttonPanel = new JPanel(new ButtonLayout()); ! approveButton = new JButton(getApproveSelectionAction()); approveButton.setText(getApproveButtonText(fc)); approveButton.setToolTipText(getApproveButtonToolTipText(fc)); approveButton.setMnemonic(getApproveButtonMnemonic(fc)); buttonPanel.add(approveButton); buttonPanel.setBorder(BorderFactory.createEmptyBorder(8, 0, 0, 0)); ! JButton cancelButton = new JButton(getCancelSelectionAction()); cancelButton.setText(cancelButtonText); cancelButton.setToolTipText(cancelButtonToolTipText); --- 1401,1421 ---- row1.add(new JLabel(this.fileLabel), BorderLayout.WEST); row1.add(fileNamePanel); bottomPanel.add(row1); ! JPanel row2 = new JPanel(new BorderLayout()); row2.add(new JLabel(this.filterLabel), BorderLayout.WEST); row2.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5)); row2.add(fileFilterCombo); bottomPanel.add(row2); JPanel buttonPanel = new JPanel(new ButtonLayout()); ! approveButton = new JButton(getApproveSelectionAction()); approveButton.setText(getApproveButtonText(fc)); approveButton.setToolTipText(getApproveButtonToolTipText(fc)); approveButton.setMnemonic(getApproveButtonMnemonic(fc)); buttonPanel.add(approveButton); buttonPanel.setBorder(BorderFactory.createEmptyBorder(8, 0, 0, 0)); ! JButton cancelButton = new JButton(getCancelSelectionAction()); cancelButton.setText(cancelButtonText); cancelButton.setToolTipText(cancelButtonToolTipText); *************** public class MetalFileChooserUI *** 1424,1437 **** bottomPanel.add(buttonPanel, BorderLayout.SOUTH); bottomPanel.setBorder(BorderFactory.createEmptyBorder(0, 8, 8, 8)); fc.add(bottomPanel, BorderLayout.SOUTH); ! fc.add(getAccessoryPanel(), BorderLayout.EAST); } ! /** ! * Uninstalls the components added by * {@link #installComponents(JFileChooser)}. ! * * @param fc the file chooser. */ public void uninstallComponents(JFileChooser fc) --- 1424,1437 ---- bottomPanel.add(buttonPanel, BorderLayout.SOUTH); bottomPanel.setBorder(BorderFactory.createEmptyBorder(0, 8, 8, 8)); fc.add(bottomPanel, BorderLayout.SOUTH); ! fc.add(getAccessoryPanel(), BorderLayout.EAST); } ! /** ! * Uninstalls the components added by * {@link #installComponents(JFileChooser)}. ! * * @param fc the file chooser. */ public void uninstallComponents(JFileChooser fc) *************** public class MetalFileChooserUI *** 1444,1470 **** fileListPanel = null; fc.remove(topPanel); topPanel = null; ! directoryModel = null; fileTextField = null; directoryComboBox = null; } ! /** ! * Returns the panel that contains the 'Open' (or 'Save') and 'Cancel' * buttons. ! * * @return The panel. */ protected JPanel getButtonPanel() { ! return buttonPanel; } ! /** * Creates and returns a new panel that will be used for the controls at * the bottom of the file chooser. ! * * @return A new panel. */ protected JPanel getBottomPanel() --- 1444,1470 ---- fileListPanel = null; fc.remove(topPanel); topPanel = null; ! directoryModel = null; fileTextField = null; directoryComboBox = null; } ! /** ! * Returns the panel that contains the 'Open' (or 'Save') and 'Cancel' * buttons. ! * * @return The panel. */ protected JPanel getButtonPanel() { ! return buttonPanel; } ! /** * Creates and returns a new panel that will be used for the controls at * the bottom of the file chooser. ! * * @return A new panel. */ protected JPanel getBottomPanel() *************** public class MetalFileChooserUI *** 1473,1487 **** bottomPanel = new JPanel(new GridLayout(3, 2)); return bottomPanel; } ! /** * Fetches localised strings for use by the labels and buttons on the * file chooser. ! * * @param fc the file chooser. */ protected void installStrings(JFileChooser fc) ! { super.installStrings(fc); look = "Look In: "; save = "Save In: "; --- 1473,1487 ---- bottomPanel = new JPanel(new GridLayout(3, 2)); return bottomPanel; } ! /** * Fetches localised strings for use by the labels and buttons on the * file chooser. ! * * @param fc the file chooser. */ protected void installStrings(JFileChooser fc) ! { super.installStrings(fc); look = "Look In: "; save = "Save In: "; *************** public class MetalFileChooserUI *** 1489,1526 **** directoryLabel = save; else directoryLabel = look; ! fileLabel = "File Name: "; filterLabel = "Files of Type: "; ! this.cancelButtonMnemonic = 0; this.cancelButtonText = "Cancel"; this.cancelButtonToolTipText = "Abort file chooser dialog"; ! this.directoryOpenButtonMnemonic = 0; this.directoryOpenButtonText = "Open"; this.directoryOpenButtonToolTipText = "Open selected directory"; ! this.helpButtonMnemonic = 0; this.helpButtonText = "Help"; this.helpButtonToolTipText = "Filechooser help"; ! this.openButtonMnemonic = 0; this.openButtonText = "Open"; this.openButtonToolTipText = "Open selected file"; ! this.saveButtonMnemonic = 0; this.saveButtonText = "Save"; this.saveButtonToolTipText = "Save selected file"; ! this.updateButtonMnemonic = 0; this.updateButtonText = "Update"; ! this.updateButtonToolTipText = "Update directory listing"; } ! /** * Installs the listeners required. ! * * @param fc the file chooser. */ protected void installListeners(JFileChooser fc) --- 1489,1526 ---- directoryLabel = save; else directoryLabel = look; ! fileLabel = "File Name: "; filterLabel = "Files of Type: "; ! this.cancelButtonMnemonic = 0; this.cancelButtonText = "Cancel"; this.cancelButtonToolTipText = "Abort file chooser dialog"; ! this.directoryOpenButtonMnemonic = 0; this.directoryOpenButtonText = "Open"; this.directoryOpenButtonToolTipText = "Open selected directory"; ! this.helpButtonMnemonic = 0; this.helpButtonText = "Help"; this.helpButtonToolTipText = "Filechooser help"; ! this.openButtonMnemonic = 0; this.openButtonText = "Open"; this.openButtonToolTipText = "Open selected file"; ! this.saveButtonMnemonic = 0; this.saveButtonText = "Save"; this.saveButtonToolTipText = "Save selected file"; ! this.updateButtonMnemonic = 0; this.updateButtonText = "Update"; ! this.updateButtonToolTipText = "Update directory listing"; } ! /** * Installs the listeners required. ! * * @param fc the file chooser. */ protected void installListeners(JFileChooser fc) *************** public class MetalFileChooserUI *** 1535,1542 **** fileList.addMouseListener(singleClickList); super.installListeners(fc); } ! ! protected void uninstallListeners(JFileChooser fc) { super.uninstallListeners(fc); fc.removePropertyChangeListener(filterModel); --- 1535,1542 ---- fileList.addMouseListener(singleClickList); super.installListeners(fc); } ! ! protected void uninstallListeners(JFileChooser fc) { super.uninstallListeners(fc); fc.removePropertyChangeListener(filterModel); *************** public class MetalFileChooserUI *** 1544,1564 **** fileList.removeListSelectionListener(listSelList); fileList.removeMouseListener(doubleClickList); fileList.removeMouseListener(singleClickList); ! if (fileTable != null) fileTable.removeMouseListener(tableClickList); } ! protected ActionMap getActionMap() { if (actionMap == null) actionMap = createActionMap(); return actionMap; } ! /** * Creates and returns an action map. ! * * @return The action map. */ protected ActionMap createActionMap() --- 1544,1564 ---- fileList.removeListSelectionListener(listSelList); fileList.removeMouseListener(doubleClickList); fileList.removeMouseListener(singleClickList); ! if (fileTable != null) fileTable.removeMouseListener(tableClickList); } ! protected ActionMap getActionMap() { if (actionMap == null) actionMap = createActionMap(); return actionMap; } ! /** * Creates and returns an action map. ! * * @return The action map. */ protected ActionMap createActionMap() *************** public class MetalFileChooserUI *** 1572,1580 **** /** * Creates a panel containing a list of files. ! * * @param fc the file chooser. ! * * @return A panel. */ protected JPanel createList(JFileChooser fc) --- 1572,1580 ---- /** * Creates a panel containing a list of files. ! * * @param fc the file chooser. ! * * @return A panel. */ protected JPanel createList(JFileChooser fc) *************** public class MetalFileChooserUI *** 1600,1640 **** fileListPanel.setPreferredSize(new Dimension(405, 135)); return fileListPanel; } ! /** * Creates a panel containing a table within a scroll pane. ! * * @param fc the file chooser. ! * * @return The details view. */ protected JPanel createDetailsView(JFileChooser fc) { fileTablePanel = new JPanel(new BorderLayout()); ! Object[] cols = new Object[] {"Name", "Size", "Modified"}; Object[][] rows = new Object[fileList.getModel().getSize()][3]; ! fileTable = new JTable(new DefaultTableModel(rows, cols)); ! if (fc.isMultiSelectionEnabled()) fileTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); else fileTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ! fileTable.setShowGrid(false); fileTable.setColumnSelectionAllowed(false); fileTable.setDefaultRenderer(Object.class, new TableFileRenderer()); tableClickList = new TableClickListener(fileTable, fc); fileTable.addMouseListener(tableClickList); ! ! return updateTable(); } ! /** * Sets the values in the table, and puts it in the panel. ! * * @return the panel containing the table. */ JPanel updateTable() --- 1600,1640 ---- fileListPanel.setPreferredSize(new Dimension(405, 135)); return fileListPanel; } ! /** * Creates a panel containing a table within a scroll pane. ! * * @param fc the file chooser. ! * * @return The details view. */ protected JPanel createDetailsView(JFileChooser fc) { fileTablePanel = new JPanel(new BorderLayout()); ! Object[] cols = new Object[] {"Name", "Size", "Modified"}; Object[][] rows = new Object[fileList.getModel().getSize()][3]; ! fileTable = new JTable(new DefaultTableModel(rows, cols)); ! if (fc.isMultiSelectionEnabled()) fileTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); else fileTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ! fileTable.setShowGrid(false); fileTable.setColumnSelectionAllowed(false); fileTable.setDefaultRenderer(Object.class, new TableFileRenderer()); tableClickList = new TableClickListener(fileTable, fc); fileTable.addMouseListener(tableClickList); ! ! return updateTable(); } ! /** * Sets the values in the table, and puts it in the panel. ! * * @return the panel containing the table. */ JPanel updateTable() *************** public class MetalFileChooserUI *** 1671,1680 **** return fileTablePanel; } ! /** * Formats bytes into the appropriate size. ! * * @param bytes the number of bytes to convert * @return a string representation of the size */ --- 1671,1680 ---- return fileTablePanel; } ! /** * Formats bytes into the appropriate size. ! * * @param bytes the number of bytes to convert * @return a string representation of the size */ *************** public class MetalFileChooserUI *** 1686,1692 **** long gb = (long) Math.pow(2, 30); double size = 0; String id = ""; ! if ((bytes / gb) >= 1) { size = (double) bytes / (double) gb; --- 1686,1692 ---- long gb = (long) Math.pow(2, 30); double size = 0; String id = ""; ! if ((bytes / gb) >= 1) { size = (double) bytes / (double) gb; *************** public class MetalFileChooserUI *** 1707,1733 **** size = bytes; id = "Bytes"; } ! return nf.format(size) + " " + id; } /** * Creates a listener that monitors selections in the directory/file list * and keeps the {@link JFileChooser} component up to date. ! * * @param fc the file chooser. ! * * @return The listener. ! * * @see #installListeners(JFileChooser) */ public ListSelectionListener createListSelectionListener(JFileChooser fc) { return new MetalFileChooserSelectionListener(); } ! /** * Returns the preferred size for the file chooser component. ! * * @return The preferred size. */ public Dimension getPreferredSize(JComponent c) --- 1707,1733 ---- size = bytes; id = "Bytes"; } ! return nf.format(size) + " " + id; } /** * Creates a listener that monitors selections in the directory/file list * and keeps the {@link JFileChooser} component up to date. ! * * @param fc the file chooser. ! * * @return The listener. ! * * @see #installListeners(JFileChooser) */ public ListSelectionListener createListSelectionListener(JFileChooser fc) { return new MetalFileChooserSelectionListener(); } ! /** * Returns the preferred size for the file chooser component. ! * * @return The preferred size. */ public Dimension getPreferredSize(JComponent c) *************** public class MetalFileChooserUI *** 1740,1746 **** /** * Returns the minimum size for the file chooser component. ! * * @return The minimum size. */ public Dimension getMinimumSize(JComponent c) --- 1740,1746 ---- /** * Returns the minimum size for the file chooser component. ! * * @return The minimum size. */ public Dimension getMinimumSize(JComponent c) *************** public class MetalFileChooserUI *** 1750,1774 **** Dimension fl = fileListPanel.getMinimumSize(); return new Dimension(fl.width, tp.height + bp.height + fl.height); } ! /** * Returns the maximum size for the file chooser component. ! * * @return The maximum size. */ public Dimension getMaximumSize(JComponent c) { return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); } ! /** * Creates a property change listener that monitors the {@link JFileChooser} * for property change events and updates the component display accordingly. ! * * @param fc the file chooser. ! * * @return The property change listener. ! * * @see #installListeners(JFileChooser) */ public PropertyChangeListener createPropertyChangeListener(JFileChooser fc) --- 1750,1774 ---- Dimension fl = fileListPanel.getMinimumSize(); return new Dimension(fl.width, tp.height + bp.height + fl.height); } ! /** * Returns the maximum size for the file chooser component. ! * * @return The maximum size. */ public Dimension getMaximumSize(JComponent c) { return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); } ! /** * Creates a property change listener that monitors the {@link JFileChooser} * for property change events and updates the component display accordingly. ! * * @param fc the file chooser. ! * * @return The property change listener. ! * * @see #installListeners(JFileChooser) */ public PropertyChangeListener createPropertyChangeListener(JFileChooser fc) *************** public class MetalFileChooserUI *** 1778,1787 **** /** * Creates and returns a new instance of {@link DirectoryComboBoxModel}. ! * * @return A new instance of {@link DirectoryComboBoxModel}. */ ! protected MetalFileChooserUI.DirectoryComboBoxModel createDirectoryComboBoxModel(JFileChooser fc) { return new DirectoryComboBoxModel(); --- 1778,1787 ---- /** * Creates and returns a new instance of {@link DirectoryComboBoxModel}. ! * * @return A new instance of {@link DirectoryComboBoxModel}. */ ! protected MetalFileChooserUI.DirectoryComboBoxModel createDirectoryComboBoxModel(JFileChooser fc) { return new DirectoryComboBoxModel(); *************** public class MetalFileChooserUI *** 1790,1798 **** /** * Creates a new instance of the renderer used in the directory * combo box. ! * * @param fc the file chooser. ! * * @return The renderer. */ protected DirectoryComboBoxRenderer createDirectoryComboBoxRenderer( --- 1790,1798 ---- /** * Creates a new instance of the renderer used in the directory * combo box. ! * * @param fc the file chooser. ! * * @return The renderer. */ protected DirectoryComboBoxRenderer createDirectoryComboBoxRenderer( *************** public class MetalFileChooserUI *** 1803,1825 **** /** * Creates and returns a new instance of {@link FilterComboBoxModel}. ! * * @return A new instance of {@link FilterComboBoxModel}. */ protected FilterComboBoxModel createFilterComboBoxModel() { ! return new FilterComboBoxModel(); } /** * Creates and returns a new instance of {@link FilterComboBoxRenderer}. ! * * @return A new instance of {@link FilterComboBoxRenderer}. */ ! protected MetalFileChooserUI.FilterComboBoxRenderer createFilterComboBoxRenderer() { ! return new FilterComboBoxRenderer(); } /** --- 1803,1825 ---- /** * Creates and returns a new instance of {@link FilterComboBoxModel}. ! * * @return A new instance of {@link FilterComboBoxModel}. */ protected FilterComboBoxModel createFilterComboBoxModel() { ! return new FilterComboBoxModel(); } /** * Creates and returns a new instance of {@link FilterComboBoxRenderer}. ! * * @return A new instance of {@link FilterComboBoxRenderer}. */ ! protected MetalFileChooserUI.FilterComboBoxRenderer createFilterComboBoxRenderer() { ! return new FilterComboBoxRenderer(); } /** *************** public class MetalFileChooserUI *** 1832,1857 **** upButton.setIcon(this.upFolderIcon); upButton.setMargin(new Insets(0, 0, 0, 0)); controls.add(upButton); ! JButton homeButton = new JButton(getGoHomeAction()); homeButton.setText(null); homeButton.setIcon(this.homeFolderIcon); homeButton.setMargin(new Insets(0, 0, 0, 0)); controls.add(homeButton); ! JButton newFolderButton = new JButton(getNewFolderAction()); newFolderButton.setText(null); newFolderButton.setIcon(this.newFolderIcon); newFolderButton.setMargin(new Insets(0, 0, 0, 0)); controls.add(newFolderButton); ! JToggleButton listButton = new JToggleButton(this.listViewIcon); listButton.setMargin(new Insets(0, 0, 0, 0)); listButton.addActionListener(new ListViewActionListener()); listButton.setSelected(true); ! listView = true; controls.add(listButton); ! JToggleButton detailButton = new JToggleButton(this.detailsViewIcon); detailButton.setMargin(new Insets(0, 0, 0, 0)); detailButton.addActionListener(new DetailViewActionListener()); --- 1832,1857 ---- upButton.setIcon(this.upFolderIcon); upButton.setMargin(new Insets(0, 0, 0, 0)); controls.add(upButton); ! JButton homeButton = new JButton(getGoHomeAction()); homeButton.setText(null); homeButton.setIcon(this.homeFolderIcon); homeButton.setMargin(new Insets(0, 0, 0, 0)); controls.add(homeButton); ! JButton newFolderButton = new JButton(getNewFolderAction()); newFolderButton.setText(null); newFolderButton.setIcon(this.newFolderIcon); newFolderButton.setMargin(new Insets(0, 0, 0, 0)); controls.add(newFolderButton); ! JToggleButton listButton = new JToggleButton(this.listViewIcon); listButton.setMargin(new Insets(0, 0, 0, 0)); listButton.addActionListener(new ListViewActionListener()); listButton.setSelected(true); ! listView = true; controls.add(listButton); ! JToggleButton detailButton = new JToggleButton(this.detailsViewIcon); detailButton.setMargin(new Insets(0, 0, 0, 0)); detailButton.addActionListener(new DetailViewActionListener()); *************** public class MetalFileChooserUI *** 1862,1868 **** buttonGroup.add(listButton); buttonGroup.add(detailButton); } ! /** * Removes all the buttons from the control panel. */ --- 1862,1868 ---- buttonGroup.add(listButton); buttonGroup.add(detailButton); } ! /** * Removes all the buttons from the control panel. */ *************** public class MetalFileChooserUI *** 1872,1881 **** controls.revalidate(); controls.repaint(); } ! /** * Updates the current directory. ! * * @param fc the file chooser to update. */ public void rescanCurrentDirectory(JFileChooser fc) --- 1872,1881 ---- controls.revalidate(); controls.repaint(); } ! /** * Updates the current directory. ! * * @param fc the file chooser to update. */ public void rescanCurrentDirectory(JFileChooser fc) *************** public class MetalFileChooserUI *** 1887,1929 **** else createList(fc); } ! /** * Returns the file name in the text field. ! * * @return The file name. */ public String getFileName() { String result = null; ! if (fileTextField != null) result = fileTextField.getText(); return result; } ! /** * Sets the file name in the text field. ! * * @param filename the file name. */ public void setFileName(String filename) { fileTextField.setText(filename); } ! /** * DOCUMENT ME!! ! * * @param e - DOCUMENT ME! */ public void valueChanged(ListSelectionEvent e) { // FIXME: Not sure what we should be doing here, if anything. } ! /** * Returns the approve button. ! * * @return The approve button. */ protected JButton getApproveButton(JFileChooser fc) --- 1887,1929 ---- else createList(fc); } ! /** * Returns the file name in the text field. ! * * @return The file name. */ public String getFileName() { String result = null; ! if (fileTextField != null) result = fileTextField.getText(); return result; } ! /** * Sets the file name in the text field. ! * * @param filename the file name. */ public void setFileName(String filename) { fileTextField.setText(filename); } ! /** * DOCUMENT ME!! ! * * @param e - DOCUMENT ME! */ public void valueChanged(ListSelectionEvent e) { // FIXME: Not sure what we should be doing here, if anything. } ! /** * Returns the approve button. ! * * @return The approve button. */ protected JButton getApproveButton(JFileChooser fc) *************** public class MetalFileChooserUI *** 1939,1948 **** { /** * Performs the layout. ! * * @param parent the container. */ ! public void layoutContainer(Container parent) { int count = parent.getComponentCount(); if (count > 0) --- 1939,1948 ---- { /** * Performs the layout. ! * * @param parent the container. */ ! public void layoutContainer(Container parent) { int count = parent.getComponentCount(); if (count > 0) *************** public class MetalFileChooserUI *** 1952,1983 **** Dimension prefSize = c.getPreferredSize(); int h = parent.getHeight() - insets.top - insets.bottom; int adj = Math.max(0, (h - prefSize.height) / 2); ! c.setBounds(insets.left, insets.top + adj, parent.getWidth() ! - insets.left - insets.right, (int) Math.min(prefSize.getHeight(), h)); } } ! /** * Returns the minimum layout size. ! * * @param parent the container. ! * * @return The minimum layout size. */ ! public Dimension minimumLayoutSize(Container parent) { return preferredLayoutSize(parent); } ! /** * Returns the preferred layout size. ! * * @param parent the container. ! * * @return The preferred layout size. */ ! public Dimension preferredLayoutSize(Container parent) { if (parent.getComponentCount() > 0) { --- 1952,1983 ---- Dimension prefSize = c.getPreferredSize(); int h = parent.getHeight() - insets.top - insets.bottom; int adj = Math.max(0, (h - prefSize.height) / 2); ! c.setBounds(insets.left, insets.top + adj, parent.getWidth() ! - insets.left - insets.right, (int) Math.min(prefSize.getHeight(), h)); } } ! /** * Returns the minimum layout size. ! * * @param parent the container. ! * * @return The minimum layout size. */ ! public Dimension minimumLayoutSize(Container parent) { return preferredLayoutSize(parent); } ! /** * Returns the preferred layout size. ! * * @param parent the container. ! * * @return The preferred layout size. */ ! public Dimension preferredLayoutSize(Container parent) { if (parent.getComponentCount() > 0) { *************** public class MetalFileChooserUI *** 1985,2010 **** } else return null; } ! /** ! * This layout manager does not need to track components, so this * method does nothing. ! * * @param name the name the component is associated with. * @param component the component. */ ! public void addLayoutComponent(String name, Component component) { // do nothing } ! /** ! * This layout manager does not need to track components, so this * method does nothing. ! * * @param component the component. */ ! public void removeLayoutComponent(Component component) { // do nothing } --- 1985,2010 ---- } else return null; } ! /** ! * This layout manager does not need to track components, so this * method does nothing. ! * * @param name the name the component is associated with. * @param component the component. */ ! public void addLayoutComponent(String name, Component component) { // do nothing } ! /** ! * This layout manager does not need to track components, so this * method does nothing. ! * * @param component the component. */ ! public void removeLayoutComponent(Component component) { // do nothing } *************** public class MetalFileChooserUI *** 2017,2029 **** class ButtonLayout implements LayoutManager { static final int GAP = 4; ! /** * Performs the layout. ! * * @param parent the container. */ ! public void layoutContainer(Container parent) { int count = parent.getComponentCount(); if (count > 0) --- 2017,2029 ---- class ButtonLayout implements LayoutManager { static final int GAP = 4; ! /** * Performs the layout. ! * * @param parent the container. */ ! public void layoutContainer(Container parent) { int count = parent.getComponentCount(); if (count > 0) *************** public class MetalFileChooserUI *** 2036,2042 **** Dimension prefSize = c.getPreferredSize(); maxW = Math.max(prefSize.width, maxW); } ! // then position the buttons Insets insets = parent.getInsets(); int availableH = parent.getHeight() - insets.top - insets.bottom; --- 2036,2042 ---- Dimension prefSize = c.getPreferredSize(); maxW = Math.max(prefSize.width, maxW); } ! // then position the buttons Insets insets = parent.getInsets(); int availableH = parent.getHeight() - insets.top - insets.bottom; *************** public class MetalFileChooserUI *** 2044,2085 **** for (int i = count - 1; i >= 0; i--) { Component c = parent.getComponent(i); ! Dimension prefSize = c.getPreferredSize(); int adj = Math.max(0, (availableH - prefSize.height) / 2); currentX = currentX - prefSize.width; ! c.setBounds(currentX, insets.top + adj, prefSize.width, (int) Math.min(prefSize.getHeight(), availableH)); currentX = currentX - GAP; } } } ! /** * Returns the minimum layout size. ! * * @param parent the container. ! * * @return The minimum layout size. */ ! public Dimension minimumLayoutSize(Container parent) { return preferredLayoutSize(parent); } ! /** * Returns the preferred layout size. ! * * @param parent the container. ! * * @return The preferred layout size. */ ! public Dimension preferredLayoutSize(Container parent) { Insets insets = parent.getInsets(); int maxW = 0; int maxH = 0; int count = parent.getComponentCount(); ! if (count > 0) { for (int i = 0; i < count; i++) { --- 2044,2085 ---- for (int i = count - 1; i >= 0; i--) { Component c = parent.getComponent(i); ! Dimension prefSize = c.getPreferredSize(); int adj = Math.max(0, (availableH - prefSize.height) / 2); currentX = currentX - prefSize.width; ! c.setBounds(currentX, insets.top + adj, prefSize.width, (int) Math.min(prefSize.getHeight(), availableH)); currentX = currentX - GAP; } } } ! /** * Returns the minimum layout size. ! * * @param parent the container. ! * * @return The minimum layout size. */ ! public Dimension minimumLayoutSize(Container parent) { return preferredLayoutSize(parent); } ! /** * Returns the preferred layout size. ! * * @param parent the container. ! * * @return The preferred layout size. */ ! public Dimension preferredLayoutSize(Container parent) { Insets insets = parent.getInsets(); int maxW = 0; int maxH = 0; int count = parent.getComponentCount(); ! if (count > 0) { for (int i = 0; i < count; i++) { *************** public class MetalFileChooserUI *** 2089,2117 **** maxH = Math.max(d.height, maxH); } } ! return new Dimension(maxW * count + GAP * (count - 1) + insets.left + insets.right, maxH + insets.top + insets.bottom); } ! /** ! * This layout manager does not need to track components, so this * method does nothing. ! * * @param name the name the component is associated with. * @param component the component. */ ! public void addLayoutComponent(String name, Component component) { // do nothing } ! /** ! * This layout manager does not need to track components, so this * method does nothing. ! * * @param component the component. */ ! public void removeLayoutComponent(Component component) { // do nothing } --- 2089,2117 ---- maxH = Math.max(d.height, maxH); } } ! return new Dimension(maxW * count + GAP * (count - 1) + insets.left + insets.right, maxH + insets.top + insets.bottom); } ! /** ! * This layout manager does not need to track components, so this * method does nothing. ! * * @param name the name the component is associated with. * @param component the component. */ ! public void addLayoutComponent(String name, Component component) { // do nothing } ! /** ! * This layout manager does not need to track components, so this * method does nothing. ! * * @param component the component. */ ! public void removeLayoutComponent(Component component) { // do nothing } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.UIResource; *** 60,126 **** /** * Creates icons for the {@link MetalLookAndFeel}. */ ! public class MetalIconFactory implements Serializable { /** A constant representing "dark". */ public static final boolean DARK = false; ! /** A constant representing "light". */ public static final boolean LIGHT = true; ! /** A shared instance of the MenuArrowIcon. */ private static Icon menuArrow; ! /** A shared instance of the MenuItemArrowIcon. */ private static Icon menuItemArrow; ! /** * An icon displayed for {@link JCheckBoxMenuItem} components. */ ! private static class CheckBoxMenuItemIcon ! implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public CheckBoxMenuItemIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon (10 pixels). */ ! public int getIconWidth() { return 10; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon (10 pixels). */ ! public int getIconHeight() { return 10; } ! /** * Paints the icon. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { JCheckBoxMenuItem item = (JCheckBoxMenuItem) c; ! if (item.isArmed()) g.setColor(MetalLookAndFeel.getBlack()); else --- 60,126 ---- /** * Creates icons for the {@link MetalLookAndFeel}. */ ! public class MetalIconFactory implements Serializable { /** A constant representing "dark". */ public static final boolean DARK = false; ! /** A constant representing "light". */ public static final boolean LIGHT = true; ! /** A shared instance of the MenuArrowIcon. */ private static Icon menuArrow; ! /** A shared instance of the MenuItemArrowIcon. */ private static Icon menuItemArrow; ! /** * An icon displayed for {@link JCheckBoxMenuItem} components. */ ! private static class CheckBoxMenuItemIcon ! implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public CheckBoxMenuItemIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon (10 pixels). */ ! public int getIconWidth() { return 10; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon (10 pixels). */ ! public int getIconHeight() { return 10; } ! /** * Paints the icon. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { JCheckBoxMenuItem item = (JCheckBoxMenuItem) c; ! if (item.isArmed()) g.setColor(MetalLookAndFeel.getBlack()); else *************** public class MetalIconFactory implements *** 129,135 **** g.drawLine(x, y + 1, x, y + 8); g.drawLine(x + 2, y + 8, x + 8, y + 8); g.drawLine(x + 8, y + 2, x + 8, y + 7); ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 1, y + 1, x + 7, y + 1); g.drawLine(x + 1, y + 2, x + 1, y + 7); --- 129,135 ---- g.drawLine(x, y + 1, x, y + 8); g.drawLine(x + 2, y + 8, x + 8, y + 8); g.drawLine(x + 8, y + 2, x + 8, y + 7); ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 1, y + 1, x + 7, y + 1); g.drawLine(x + 1, y + 2, x + 1, y + 7); *************** public class MetalIconFactory implements *** 145,200 **** g.drawLine(x + 8 - i, y + i, x + 9 - i, y + i); } ! } } /** * An icon used for the "detail view" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserDetailViewIcon() */ ! private static class FileChooserDetailViewIcon implements Icon, UIResource, Serializable { /** * Creates a new icon. */ ! public FileChooserDetailViewIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); --- 145,200 ---- g.drawLine(x + 8 - i, y + i, x + 9 - i, y + i); } ! } } /** * An icon used for the "detail view" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserDetailViewIcon() */ ! private static class FileChooserDetailViewIcon implements Icon, UIResource, Serializable { /** * Creates a new icon. */ ! public FileChooserDetailViewIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); *************** public class MetalIconFactory implements *** 204,210 **** g.drawLine(x + 6, y + 3, x + 6, y + 7); g.drawLine(x + 2, y + 7, x + 6, y + 7); g.drawLine(x + 2, y + 2, x + 2, y + 7); ! // file 2 outline g.drawLine(x + 2, y + 10, x + 5, y + 10); g.drawLine(x + 6, y + 11, x + 6, y + 15); --- 204,210 ---- g.drawLine(x + 6, y + 3, x + 6, y + 7); g.drawLine(x + 2, y + 7, x + 6, y + 7); g.drawLine(x + 2, y + 2, x + 2, y + 7); ! // file 2 outline g.drawLine(x + 2, y + 10, x + 5, y + 10); g.drawLine(x + 6, y + 11, x + 6, y + 15); *************** public class MetalIconFactory implements *** 214,370 **** // detail lines g.drawLine(x + 8, y + 5, x + 15, y + 5); g.drawLine(x + 8, y + 13, x + 15, y + 13); ! // fill files g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 3, y + 3, 3, 4); g.fillRect(x + 3, y + 11, 3, 4); ! // highlight files g.setColor(MetalLookAndFeel.getPrimaryControlHighlight()); g.drawLine(x + 4, y + 4, x + 4, y + 5); g.drawLine(x + 4, y + 12, x + 4, y + 13); ! g.setColor(savedColor); ! } } /** * An icon used for the "home folder" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserHomeFolderIcon() */ ! private static class FileChooserHomeFolderIcon implements Icon, UIResource, Serializable { /** * Creates a new icon. */ ! public FileChooserHomeFolderIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) ! { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); ! // roof g.drawLine(x + 1, y + 8, x + 8, y + 1); g.drawLine(x + 8, y + 1, x + 15, y + 8); ! // base of house g.drawLine(x + 3, y + 6, x + 3, y + 15); g.drawLine(x + 3, y + 15, x + 13, y + 15); g.drawLine(x + 13, y + 6, x + 13, y + 15); ! // door frame g.drawLine(x + 6, y + 9, x + 6, y + 15); g.drawLine(x + 6, y + 9, x + 10, y + 9); g.drawLine(x + 10, y + 9, x + 10, y + 15); ! // chimney g.drawLine(x + 11, y + 2, x + 11, y + 4); g.drawLine(x + 12, y + 2, x + 12, y + 5); ! g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // roof paint int xx = x + 8; for (int i = 0; i < 4; i++) g.drawLine(xx - i, y + 2 + i, xx + i, y + 2 + i); g.fillRect(x + 4, y + 6, 9, 2); ! // door knob g.drawLine(x + 9, y + 12, x + 9, y + 12); ! // house paint g.setColor(MetalLookAndFeel.getPrimaryControl()); g.drawLine(x + 4, y + 8, x + 12, y + 8); g.fillRect(x + 4, y + 9, 2, 6); g.fillRect(x + 11, y + 9, 2, 6); ! g.setColor(savedColor); ! } } ! /** * An icon used for the "list view" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserListViewIcon() */ ! private static class FileChooserListViewIcon ! implements Icon, UIResource, Serializable { /** * Creates a new icon. */ ! public FileChooserListViewIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); --- 214,370 ---- // detail lines g.drawLine(x + 8, y + 5, x + 15, y + 5); g.drawLine(x + 8, y + 13, x + 15, y + 13); ! // fill files g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 3, y + 3, 3, 4); g.fillRect(x + 3, y + 11, 3, 4); ! // highlight files g.setColor(MetalLookAndFeel.getPrimaryControlHighlight()); g.drawLine(x + 4, y + 4, x + 4, y + 5); g.drawLine(x + 4, y + 12, x + 4, y + 13); ! g.setColor(savedColor); ! } } /** * An icon used for the "home folder" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserHomeFolderIcon() */ ! private static class FileChooserHomeFolderIcon implements Icon, UIResource, Serializable { /** * Creates a new icon. */ ! public FileChooserHomeFolderIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) ! { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); ! // roof g.drawLine(x + 1, y + 8, x + 8, y + 1); g.drawLine(x + 8, y + 1, x + 15, y + 8); ! // base of house g.drawLine(x + 3, y + 6, x + 3, y + 15); g.drawLine(x + 3, y + 15, x + 13, y + 15); g.drawLine(x + 13, y + 6, x + 13, y + 15); ! // door frame g.drawLine(x + 6, y + 9, x + 6, y + 15); g.drawLine(x + 6, y + 9, x + 10, y + 9); g.drawLine(x + 10, y + 9, x + 10, y + 15); ! // chimney g.drawLine(x + 11, y + 2, x + 11, y + 4); g.drawLine(x + 12, y + 2, x + 12, y + 5); ! g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // roof paint int xx = x + 8; for (int i = 0; i < 4; i++) g.drawLine(xx - i, y + 2 + i, xx + i, y + 2 + i); g.fillRect(x + 4, y + 6, 9, 2); ! // door knob g.drawLine(x + 9, y + 12, x + 9, y + 12); ! // house paint g.setColor(MetalLookAndFeel.getPrimaryControl()); g.drawLine(x + 4, y + 8, x + 12, y + 8); g.fillRect(x + 4, y + 9, 2, 6); g.fillRect(x + 11, y + 9, 2, 6); ! g.setColor(savedColor); ! } } ! /** * An icon used for the "list view" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserListViewIcon() */ ! private static class FileChooserListViewIcon ! implements Icon, UIResource, Serializable { /** * Creates a new icon. */ ! public FileChooserListViewIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); *************** public class MetalIconFactory implements *** 374,410 **** g.drawLine(x + 6, y + 3, x + 6, y + 7); g.drawLine(x + 2, y + 7, x + 6, y + 7); g.drawLine(x + 2, y + 2, x + 2, y + 7); ! // file 2 outline g.drawLine(x + 2, y + 10, x + 5, y + 10); g.drawLine(x + 6, y + 11, x + 6, y + 15); g.drawLine(x + 2, y + 15, x + 6, y + 15); g.drawLine(x + 2, y + 10, x + 2, y + 15); ! // file 3 outline g.drawLine(x + 10, y + 2, x + 13, y + 2); g.drawLine(x + 14, y + 3, x + 14, y + 7); g.drawLine(x + 10, y + 7, x + 14, y + 7); g.drawLine(x + 10, y + 2, x + 10, y + 7); ! // file 4 outline g.drawLine(x + 10, y + 10, x + 13, y + 10); g.drawLine(x + 14, y + 11, x + 14, y + 15); g.drawLine(x + 10, y + 15, x + 14, y + 15); g.drawLine(x + 10, y + 10, x + 10, y + 15); ! g.drawLine(x + 8, y + 5, x + 8, y + 5); g.drawLine(x + 8, y + 13, x + 8, y + 13); g.drawLine(x + 16, y + 5, x + 16, y + 5); g.drawLine(x + 16, y + 13, x + 16, y + 13); ! // fill files g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 3, y + 3, 3, 4); g.fillRect(x + 3, y + 11, 3, 4); g.fillRect(x + 11, y + 3, 3, 4); g.fillRect(x + 11, y + 11, 3, 4); ! // highlight files g.setColor(MetalLookAndFeel.getPrimaryControlHighlight()); g.drawLine(x + 4, y + 4, x + 4, y + 5); --- 374,410 ---- g.drawLine(x + 6, y + 3, x + 6, y + 7); g.drawLine(x + 2, y + 7, x + 6, y + 7); g.drawLine(x + 2, y + 2, x + 2, y + 7); ! // file 2 outline g.drawLine(x + 2, y + 10, x + 5, y + 10); g.drawLine(x + 6, y + 11, x + 6, y + 15); g.drawLine(x + 2, y + 15, x + 6, y + 15); g.drawLine(x + 2, y + 10, x + 2, y + 15); ! // file 3 outline g.drawLine(x + 10, y + 2, x + 13, y + 2); g.drawLine(x + 14, y + 3, x + 14, y + 7); g.drawLine(x + 10, y + 7, x + 14, y + 7); g.drawLine(x + 10, y + 2, x + 10, y + 7); ! // file 4 outline g.drawLine(x + 10, y + 10, x + 13, y + 10); g.drawLine(x + 14, y + 11, x + 14, y + 15); g.drawLine(x + 10, y + 15, x + 14, y + 15); g.drawLine(x + 10, y + 10, x + 10, y + 15); ! g.drawLine(x + 8, y + 5, x + 8, y + 5); g.drawLine(x + 8, y + 13, x + 8, y + 13); g.drawLine(x + 16, y + 5, x + 16, y + 5); g.drawLine(x + 16, y + 13, x + 16, y + 13); ! // fill files g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 3, y + 3, 3, 4); g.fillRect(x + 3, y + 11, 3, 4); g.fillRect(x + 11, y + 3, 3, 4); g.fillRect(x + 11, y + 11, 3, 4); ! // highlight files g.setColor(MetalLookAndFeel.getPrimaryControlHighlight()); g.drawLine(x + 4, y + 4, x + 4, y + 5); *************** public class MetalIconFactory implements *** 413,525 **** g.drawLine(x + 12, y + 12, x + 12, y + 13); g.setColor(savedColor); ! } } ! /** * An icon used for the "new folder" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserNewFolderIcon() */ ! private static class FileChooserNewFolderIcon implements Icon, UIResource, Serializable { ! /** * Creates a new icon. */ ! public FileChooserNewFolderIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) ! { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); ! g.drawLine(x + 2, y + 5, x + 9, y + 5); g.drawLine(x + 10, y + 6, x + 15, y + 6); g.drawLine(x + 15, y + 5, x + 15, y + 14); g.drawLine(x + 2, y + 14, x + 15, y + 14); g.drawLine(x + 1, y + 6, x + 1, y + 14); ! g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawLine(x + 11, y + 3, x + 15, y + 3); g.drawLine(x + 10, y + 4, x + 15, y + 4); ! g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 3, y + 7, 7, 7); g.fillRect(x + 10, y + 8, 5, 6); g.drawLine(x + 10, y + 5, x + 14, y + 5); ! g.setColor(MetalLookAndFeel.getPrimaryControlHighlight()); g.drawLine(x + 10, y + 7, x + 14, y + 7); g.drawLine(x + 2, y + 6, x + 9, y + 6); g.drawLine(x + 2, y + 6, x + 2, y + 13); g.setColor(savedColor); ! } } /** * An icon used for the "up folder" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserNewFolderIcon() */ ! private static class FileChooserUpFolderIcon extends FileChooserNewFolderIcon { /** * Creates a new icon. */ ! public FileChooserUpFolderIcon() { // Nothing to do here. } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); // draw the folder super.paintIcon(c, g, x, y); ! // now draw the up arrow g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 8, y + 9, x + 8, y + 16); --- 413,525 ---- g.drawLine(x + 12, y + 12, x + 12, y + 13); g.setColor(savedColor); ! } } ! /** * An icon used for the "new folder" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserNewFolderIcon() */ ! private static class FileChooserNewFolderIcon implements Icon, UIResource, Serializable { ! /** * Creates a new icon. */ ! public FileChooserNewFolderIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) ! { Color savedColor = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); ! g.drawLine(x + 2, y + 5, x + 9, y + 5); g.drawLine(x + 10, y + 6, x + 15, y + 6); g.drawLine(x + 15, y + 5, x + 15, y + 14); g.drawLine(x + 2, y + 14, x + 15, y + 14); g.drawLine(x + 1, y + 6, x + 1, y + 14); ! g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawLine(x + 11, y + 3, x + 15, y + 3); g.drawLine(x + 10, y + 4, x + 15, y + 4); ! g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 3, y + 7, 7, 7); g.fillRect(x + 10, y + 8, 5, 6); g.drawLine(x + 10, y + 5, x + 14, y + 5); ! g.setColor(MetalLookAndFeel.getPrimaryControlHighlight()); g.drawLine(x + 10, y + 7, x + 14, y + 7); g.drawLine(x + 2, y + 6, x + 9, y + 6); g.drawLine(x + 2, y + 6, x + 2, y + 13); g.setColor(savedColor); ! } } /** * An icon used for the "up folder" button on a {@link JFileChooser} under * the {@link MetalLookAndFeel}. ! * * @see MetalIconFactory#getFileChooserNewFolderIcon() */ ! private static class FileChooserUpFolderIcon extends FileChooserNewFolderIcon { /** * Creates a new icon. */ ! public FileChooserUpFolderIcon() { // Nothing to do here. } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); // draw the folder super.paintIcon(c, g, x, y); ! // now draw the up arrow g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 8, y + 9, x + 8, y + 16); *************** public class MetalIconFactory implements *** 527,654 **** for (int i = 0; i < 4; i++) g.drawLine(xx - i, y + 9 + i, xx + i, y + 9 + i); g.setColor(savedColor); ! } } /** * An icon representing a file (drawn as a piece of paper with the top-right * corner turned down). */ ! public static class FileIcon16 implements Icon, Serializable { /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } /** ! * Returns the height of the icon, in pixels. The height returned is ! * 16 plus the value returned by * {@link #getAdditionalHeight()}. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16 + getAdditionalHeight(); } ! /** * Paints the icon at the location (x, y). ! * * @param c the component. * @param g the graphics context. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { y = y + getShift(); g.setColor(MetalLookAndFeel.getBlack()); ! g.drawLine(x, y, x + 9, y); ! g.drawLine(x, y + 1, x, y + 15); ! g.drawLine(x, y + 15, x + 12, y + 15); ! g.drawLine(x + 12, y + 15, x + 12, y + 6); ! g.drawLine(x + 12, y + 6, x + 9, y); g.drawLine(x + 7, y + 2, x + 11, y + 6); g.drawLine(x + 8, y + 1, x + 9, y + 1); g.setColor(MetalLookAndFeel.getPrimaryControl()); ! g.drawLine(x + 1, y + 1, x + 7, y + 1); ! g.drawLine(x + 1, y + 1, x + 1, y + 14); ! g.drawLine(x + 1, y + 14, x + 11, y + 14); ! g.drawLine(x + 11, y + 14, x + 11, y + 7); g.drawLine(x + 8, y + 2, x + 10, y + 4); } ! /** ! * Returns the additional height for the icon. The * {@link #getIconHeight()} method adds this value to the icon height it * returns. Subclasses can override this method to adjust the icon height. ! * * @return The additional height (0 unless overridden). */ ! public int getAdditionalHeight() { return 0; } ! /** ! * Returns the vertical shift, in pixels, applied when painting the icon. ! * The default value is zero, but subclasses may override this (for * example, see {@link TreeLeafIcon}). ! * * @return The shift. */ ! public int getShift() { return 0; } ! } ! /** * An icon representing a folder. */ ! public static class FolderIcon16 implements Icon, Serializable { /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** ! * Returns the height of the icon, in pixels. The height returned is ! * 16 plus the value returned by * {@link #getAdditionalHeight()}. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16 + getAdditionalHeight(); } /** * Paints the icon at the location (x, y). ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { y = y + getShift(); g.setColor(MetalLookAndFeel.getBlack()); --- 527,654 ---- for (int i = 0; i < 4; i++) g.drawLine(xx - i, y + 9 + i, xx + i, y + 9 + i); g.setColor(savedColor); ! } } /** * An icon representing a file (drawn as a piece of paper with the top-right * corner turned down). */ ! public static class FileIcon16 implements Icon, Serializable { /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } /** ! * Returns the height of the icon, in pixels. The height returned is ! * 16 plus the value returned by * {@link #getAdditionalHeight()}. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16 + getAdditionalHeight(); } ! /** * Paints the icon at the location (x, y). ! * * @param c the component. * @param g the graphics context. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { y = y + getShift(); g.setColor(MetalLookAndFeel.getBlack()); ! g.drawLine(x, y, x + 9, y); ! g.drawLine(x, y + 1, x, y + 15); ! g.drawLine(x, y + 15, x + 12, y + 15); ! g.drawLine(x + 12, y + 15, x + 12, y + 6); ! g.drawLine(x + 12, y + 6, x + 9, y); g.drawLine(x + 7, y + 2, x + 11, y + 6); g.drawLine(x + 8, y + 1, x + 9, y + 1); g.setColor(MetalLookAndFeel.getPrimaryControl()); ! g.drawLine(x + 1, y + 1, x + 7, y + 1); ! g.drawLine(x + 1, y + 1, x + 1, y + 14); ! g.drawLine(x + 1, y + 14, x + 11, y + 14); ! g.drawLine(x + 11, y + 14, x + 11, y + 7); g.drawLine(x + 8, y + 2, x + 10, y + 4); } ! /** ! * Returns the additional height for the icon. The * {@link #getIconHeight()} method adds this value to the icon height it * returns. Subclasses can override this method to adjust the icon height. ! * * @return The additional height (0 unless overridden). */ ! public int getAdditionalHeight() { return 0; } ! /** ! * Returns the vertical shift, in pixels, applied when painting the icon. ! * The default value is zero, but subclasses may override this (for * example, see {@link TreeLeafIcon}). ! * * @return The shift. */ ! public int getShift() { return 0; } ! } ! /** * An icon representing a folder. */ ! public static class FolderIcon16 implements Icon, Serializable { /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** ! * Returns the height of the icon, in pixels. The height returned is ! * 16 plus the value returned by * {@link #getAdditionalHeight()}. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16 + getAdditionalHeight(); } /** * Paints the icon at the location (x, y). ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { y = y + getShift(); g.setColor(MetalLookAndFeel.getBlack()); *************** public class MetalIconFactory implements *** 666,702 **** g.drawLine(x + 9, y + 4, x + 15, y + 4); g.drawLine(x + 10, y + 3, x + 15, y + 3); } ! /** ! * Returns the additional height for the icon. The * {@link #getIconHeight()} method adds this value to the icon height it * returns. Subclasses can override this method to adjust the icon height. ! * * @return The additional height (0 unless overridden). */ ! public int getAdditionalHeight() { return 0; } ! /** ! * Returns the vertical shift, in pixels, applied when painting the icon. ! * The default value is zero, but subclasses may override this (for * example, see {@link TreeFolderIcon}). ! * * @return The shift. */ ! public int getShift() { return 0; } ! } /** * An icon used by the {@link MetalInternalFrameUI} class when the frame * is displayed as a palette. ! * * @since 1.3 */ public static class PaletteCloseIcon --- 666,702 ---- g.drawLine(x + 9, y + 4, x + 15, y + 4); g.drawLine(x + 10, y + 3, x + 15, y + 3); } ! /** ! * Returns the additional height for the icon. The * {@link #getIconHeight()} method adds this value to the icon height it * returns. Subclasses can override this method to adjust the icon height. ! * * @return The additional height (0 unless overridden). */ ! public int getAdditionalHeight() { return 0; } ! /** ! * Returns the vertical shift, in pixels, applied when painting the icon. ! * The default value is zero, but subclasses may override this (for * example, see {@link TreeFolderIcon}). ! * * @return The shift. */ ! public int getShift() { return 0; } ! } /** * An icon used by the {@link MetalInternalFrameUI} class when the frame * is displayed as a palette. ! * * @since 1.3 */ public static class PaletteCloseIcon *************** public class MetalIconFactory implements *** 704,736 **** { /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 7; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 7; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); AbstractButton button = (AbstractButton) c; --- 704,736 ---- { /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 7; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 7; } ! /** * Paints the icon using colors from the {@link MetalLookAndFeel}. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); AbstractButton button = (AbstractButton) c; *************** public class MetalIconFactory implements *** 752,760 **** g.drawLine(x + 5, y + 3, x + 6, y + 2); g.drawLine(x + 6, y + 6, x + 6, y + 6); g.setColor(savedColor); ! } } ! /** * An {@link Icon} implementation for {@link JCheckBox}es in the * Metal Look & Feel. --- 752,760 ---- g.drawLine(x + 5, y + 3, x + 6, y + 2); g.drawLine(x + 6, y + 6, x + 6, y + 6); g.setColor(savedColor); ! } } ! /** * An {@link Icon} implementation for {@link JCheckBox}es in the * Metal Look & Feel. *************** public class MetalIconFactory implements *** 799,811 **** * Paints the icon, taking into account whether or not the component is * enabled, selected and/or armed. * ! * @param c the Component to draw on (must be an instance of * {@link JRadioButton}) * @param g the Graphics context to draw with * @param x the X position * @param y the Y position */ ! public void paintIcon(Component c, Graphics g, int x, int y) { if (UIManager.get("RadioButton.gradient") != null) MetalUtils.paintGradient(g, x + 2, y + 2, 8, 8, --- 799,811 ---- * Paints the icon, taking into account whether or not the component is * enabled, selected and/or armed. * ! * @param c the Component to draw on (must be an instance of * {@link JRadioButton}) * @param g the Graphics context to draw with * @param x the X position * @param y the Y position */ ! public void paintIcon(Component c, Graphics g, int x, int y) { if (UIManager.get("RadioButton.gradient") != null) MetalUtils.paintGradient(g, x + 2, y + 2, 8, 8, *************** public class MetalIconFactory implements *** 842,854 **** g.drawLine(x + 10, y + 4, x + 10, y + 7); g.fillRect(x + 2, y + 2, 8, 8); } ! else { // only draw inner highlight if not filled if (b.isEnabled()) { g.setColor(MetalLookAndFeel.getWhite()); ! g.drawLine(x + 2, y + 8, x + 2, y + 9); g.drawLine(x + 1, y + 4, x + 1, y + 7); g.drawLine(x + 2, y + 2, x + 2, y + 3); --- 842,854 ---- g.drawLine(x + 10, y + 4, x + 10, y + 7); g.fillRect(x + 2, y + 2, 8, 8); } ! else { // only draw inner highlight if not filled if (b.isEnabled()) { g.setColor(MetalLookAndFeel.getWhite()); ! g.drawLine(x + 2, y + 8, x + 2, y + 9); g.drawLine(x + 1, y + 4, x + 1, y + 7); g.drawLine(x + 2, y + 2, x + 2, y + 3); *************** public class MetalIconFactory implements *** 862,868 **** if (b.isEnabled()) { g.setColor(MetalLookAndFeel.getWhite()); ! // outer g.drawLine(x + 10, y + 1, x + 10, y + 1); g.drawLine(x + 11, y + 2, x + 11, y + 3); --- 862,868 ---- if (b.isEnabled()) { g.setColor(MetalLookAndFeel.getWhite()); ! // outer g.drawLine(x + 10, y + 1, x + 10, y + 1); g.drawLine(x + 11, y + 2, x + 11, y + 3); *************** public class MetalIconFactory implements *** 873,879 **** g.drawLine(x + 4, y + 12, x + 7, y + 12); g.drawLine(x + 2, y + 11, x + 3, y + 11); } ! if (b.isSelected()) { if (b.isEnabled()) --- 873,879 ---- g.drawLine(x + 4, y + 12, x + 7, y + 12); g.drawLine(x + 2, y + 11, x + 3, y + 11); } ! if (b.isSelected()) { if (b.isEnabled()) *************** public class MetalIconFactory implements *** 885,936 **** g.drawLine(x + 4, y + 8, x + 7, y + 8); } g.setColor(savedColor); ! } } /** * An icon displayed for {@link JRadioButtonMenuItem} components. */ ! private static class RadioButtonMenuItemIcon ! implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public RadioButtonMenuItemIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 10; } /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 10; } /** * Paints the icon. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); JRadioButtonMenuItem item = (JRadioButtonMenuItem) c; --- 885,936 ---- g.drawLine(x + 4, y + 8, x + 7, y + 8); } g.setColor(savedColor); ! } } /** * An icon displayed for {@link JRadioButtonMenuItem} components. */ ! private static class RadioButtonMenuItemIcon ! implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public RadioButtonMenuItemIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 10; } /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 10; } /** * Paints the icon. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); JRadioButtonMenuItem item = (JRadioButtonMenuItem) c; *************** public class MetalIconFactory implements *** 943,949 **** g.drawLine(x + 1, y + 7, x + 1, y + 7); g.drawLine(x, y + 2, x, y + 6); g.drawLine(x + 1, y + 1, x + 1, y + 1); ! if (item.isSelected()) { g.drawLine(x + 3, y + 2, x + 5, y + 2); --- 943,949 ---- g.drawLine(x + 1, y + 7, x + 1, y + 7); g.drawLine(x, y + 2, x, y + 6); g.drawLine(x + 1, y + 1, x + 1, y + 1); ! if (item.isSelected()) { g.drawLine(x + 3, y + 2, x + 5, y + 2); *************** public class MetalIconFactory implements *** 962,975 **** g.drawLine(x + 1, y + 3, x + 1, y + 6); g.drawLine(x + 2, y + 2, x + 2, y + 2); g.setColor(savedColor); ! } } /** * The icon used to display the thumb control on a horizontally oriented * {@link JSlider} component. */ ! private static class HorizontalSliderThumbIcon implements Icon, UIResource, Serializable { --- 962,975 ---- g.drawLine(x + 1, y + 3, x + 1, y + 6); g.drawLine(x + 2, y + 2, x + 2, y + 2); g.setColor(savedColor); ! } } /** * The icon used to display the thumb control on a horizontally oriented * {@link JSlider} component. */ ! private static class HorizontalSliderThumbIcon implements Icon, UIResource, Serializable { *************** public class MetalIconFactory implements *** 984,1035 **** /** * Creates a new instance. */ ! public HorizontalSliderThumbIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 15; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16; } ! /** ! * Paints the icon, taking into account whether or not the component has * the focus. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { boolean enabled = false; boolean focus = false; if (c != null) { enabled = c.isEnabled(); ! focus = c.hasFocus(); } ! // draw the outline ! if (enabled) g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); --- 984,1035 ---- /** * Creates a new instance. */ ! public HorizontalSliderThumbIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 15; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16; } ! /** ! * Paints the icon, taking into account whether or not the component has * the focus. ! * * @param c the component. * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { boolean enabled = false; boolean focus = false; if (c != null) { enabled = c.isEnabled(); ! focus = c.hasFocus(); } ! // draw the outline ! if (enabled) g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); *************** public class MetalIconFactory implements *** 1038,1045 **** g.drawLine(x + 14, y + 8, x + 7, y + 15); g.drawLine(x + 6, y + 14, x, y + 8); g.drawLine(x, y + 7, x, y + 1); ! ! // The following is commented out until the masking for the gradient painting // is working correctly // // Fill the icon. // if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme --- 1038,1045 ---- g.drawLine(x + 14, y + 8, x + 7, y + 15); g.drawLine(x + 6, y + 14, x, y + 8); g.drawLine(x, y + 7, x, y + 1); ! ! // The following is commented out until the masking for the gradient painting // is working correctly // // Fill the icon. // if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme *************** public class MetalIconFactory implements *** 1098,1104 **** g.drawLine(x + 2, y + 2, x + 2, y + 2); g.drawLine(x + 6, y + 2, x + 6, y + 2); g.drawLine(x + 10, y + 2, x + 10, y + 2); ! g.drawLine(x + 4, y + 4, x + 4, y + 4); g.drawLine(x + 8, y + 4, x + 8, y + 4); --- 1098,1104 ---- g.drawLine(x + 2, y + 2, x + 2, y + 2); g.drawLine(x + 6, y + 2, x + 6, y + 2); g.drawLine(x + 10, y + 2, x + 10, y + 2); ! g.drawLine(x + 4, y + 4, x + 4, y + 4); g.drawLine(x + 8, y + 4, x + 8, y + 4); *************** public class MetalIconFactory implements *** 1107,1168 **** g.drawLine(x + 10, y + 6, x + 10, y + 6); } ! } } ! /** ! * An icon used for the 'close' button in the title frame of a * {@link JInternalFrame}. */ ! private static class InternalFrameCloseIcon implements Icon, UIResource, Serializable { /** The icon size in pixels. */ private int size; ! /** * Creates a new icon. ! * * @param size the icon size (width and height) in pixels. */ ! public InternalFrameCloseIcon(int size) { this.size = size; } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return size; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return size; } ! /** * Paints the icon. ! * * @param c the component (an {@link JInternalFrame} is expected). * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); AbstractButton b = (AbstractButton) c; ! // fill the interior if (b.getModel().isPressed()) // FIXME: also need to take into account whether the internal frame is --- 1107,1168 ---- g.drawLine(x + 10, y + 6, x + 10, y + 6); } ! } } ! /** ! * An icon used for the 'close' button in the title frame of a * {@link JInternalFrame}. */ ! private static class InternalFrameCloseIcon implements Icon, UIResource, Serializable { /** The icon size in pixels. */ private int size; ! /** * Creates a new icon. ! * * @param size the icon size (width and height) in pixels. */ ! public InternalFrameCloseIcon(int size) { this.size = size; } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return size; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return size; } ! /** * Paints the icon. ! * * @param c the component (an {@link JInternalFrame} is expected). * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); AbstractButton b = (AbstractButton) c; ! // fill the interior if (b.getModel().isPressed()) // FIXME: also need to take into account whether the internal frame is *************** public class MetalIconFactory implements *** 1171,1177 **** else g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 2, 10, 10); ! // draw the outline box and the cross if (b.getModel().isPressed()) g.setColor(MetalLookAndFeel.getBlack()); --- 1171,1177 ---- else g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 2, 10, 10); ! // draw the outline box and the cross if (b.getModel().isPressed()) g.setColor(MetalLookAndFeel.getBlack()); *************** public class MetalIconFactory implements *** 1191,1197 **** g.drawLine(x + 13, y + 2, x + 13, y + 12); g.drawLine(x + 2, y + 12, x + 2, y + 12); g.drawLine(x + 12, y + 2, x + 12, y + 2); ! g.fillRect(x + 4, y + 4, 2, 2); g.fillRect(x + 5, y + 5, 4, 4); g.drawLine(x + 9, y + 4, x + 10, y + 4); --- 1191,1197 ---- g.drawLine(x + 13, y + 2, x + 13, y + 12); g.drawLine(x + 2, y + 12, x + 2, y + 12); g.drawLine(x + 12, y + 2, x + 12, y + 2); ! g.fillRect(x + 4, y + 4, 2, 2); g.fillRect(x + 5, y + 5, 4, 4); g.drawLine(x + 9, y + 4, x + 10, y + 4); *************** public class MetalIconFactory implements *** 1200,1220 **** g.drawLine(x + 4, y + 9, x + 5, y + 9); g.drawLine(x + 9, y + 8, x + 9, y + 10); g.drawLine(x + 8, y + 9, x + 10, y + 9); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x, y, x + 13, y); g.drawLine(x, y + 1, x, y + 13); g.drawLine(x + 3, y + 4, x + 4, y + 3); g.drawLine(x + 3, y + 9, x + 5, y + 7); g.drawLine(x + 7, y + 5, x + 9, y + 3); ! g.drawLine(x + 12, y + 3, x + 12, y + 11); g.drawLine(x + 3, y + 12, x + 12, y + 12); ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 1, y + 14, x + 14, y + 14); g.drawLine(x + 14, y + 1, x + 14, y + 14); ! if (!b.getModel().isPressed()) { g.drawLine(x + 5, y + 10, x + 5, y + 10); --- 1200,1220 ---- g.drawLine(x + 4, y + 9, x + 5, y + 9); g.drawLine(x + 9, y + 8, x + 9, y + 10); g.drawLine(x + 8, y + 9, x + 10, y + 9); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x, y, x + 13, y); g.drawLine(x, y + 1, x, y + 13); g.drawLine(x + 3, y + 4, x + 4, y + 3); g.drawLine(x + 3, y + 9, x + 5, y + 7); g.drawLine(x + 7, y + 5, x + 9, y + 3); ! g.drawLine(x + 12, y + 3, x + 12, y + 11); g.drawLine(x + 3, y + 12, x + 12, y + 12); ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 1, y + 14, x + 14, y + 14); g.drawLine(x + 14, y + 1, x + 14, y + 14); ! if (!b.getModel().isPressed()) { g.drawLine(x + 5, y + 10, x + 5, y + 10); *************** public class MetalIconFactory implements *** 1225,1277 **** g.drawLine(x + 10, y + 11, x + 10, y + 11); } g.setColor(savedColor); ! } } /** * The icon displayed at the top-left corner of a {@link JInternalFrame}. */ private static class InternalFrameDefaultMenuIcon ! implements Icon, UIResource, Serializable { ! /** * Creates a new instance. */ ! public InternalFrameDefaultMenuIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16; } ! /** * Paints the icon at the specified location. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.fillRect(x + 1, y, 14, 2); --- 1225,1277 ---- g.drawLine(x + 10, y + 11, x + 10, y + 11); } g.setColor(savedColor); ! } } /** * The icon displayed at the top-left corner of a {@link JInternalFrame}. */ private static class InternalFrameDefaultMenuIcon ! implements Icon, UIResource, Serializable { ! /** * Creates a new instance. */ ! public InternalFrameDefaultMenuIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16; } ! /** * Paints the icon at the specified location. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.fillRect(x + 1, y, 14, 2); *************** public class MetalIconFactory implements *** 1279,1288 **** g.fillRect(x + 1, y + 14, 14, 2); g.fillRect(x + 14, y + 1, 2, 14); g.drawLine(x + 2, y + 5, x + 14, y + 5); ! g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 2, 12, 3); ! g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawLine(x + 3, y + 3, x + 3, y + 3); g.drawLine(x + 6, y + 3, x + 6, y + 3); --- 1279,1288 ---- g.fillRect(x + 1, y + 14, 14, 2); g.fillRect(x + 14, y + 1, 2, 14); g.drawLine(x + 2, y + 5, x + 14, y + 5); ! g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 2, 12, 3); ! g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawLine(x + 3, y + 3, x + 3, y + 3); g.drawLine(x + 6, y + 3, x + 6, y + 3); *************** public class MetalIconFactory implements *** 1295,1353 **** g.drawLine(x + 5, y + 2, x + 5, y + 2); g.drawLine(x + 8, y + 2, x + 8, y + 2); g.drawLine(x + 11, y + 2, x + 11, y + 2); ! } } /** ! * An icon used in the title frame of a {@link JInternalFrame}. When you * maximise an internal frame, this icon will replace the 'maximise' icon to * provide a 'restore' option. */ private static class InternalFrameAltMaximizeIcon ! implements Icon, UIResource, Serializable { /** The icon size in pixels. */ private int size; ! /** * Creates a new icon. ! * * @param size the icon size in pixels. */ ! public InternalFrameAltMaximizeIcon(int size) { this.size = size; } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return size; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return size; } ! /** * Paints the icon at the specified location. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); --- 1295,1353 ---- g.drawLine(x + 5, y + 2, x + 5, y + 2); g.drawLine(x + 8, y + 2, x + 8, y + 2); g.drawLine(x + 11, y + 2, x + 11, y + 2); ! } } /** ! * An icon used in the title frame of a {@link JInternalFrame}. When you * maximise an internal frame, this icon will replace the 'maximise' icon to * provide a 'restore' option. */ private static class InternalFrameAltMaximizeIcon ! implements Icon, UIResource, Serializable { /** The icon size in pixels. */ private int size; ! /** * Creates a new icon. ! * * @param size the icon size in pixels. */ ! public InternalFrameAltMaximizeIcon(int size) { this.size = size; } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return size; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return size; } ! /** * Paints the icon at the specified location. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); *************** public class MetalIconFactory implements *** 1359,1385 **** else g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 6, 7, 7); ! ! if (b.getModel().isPressed()) g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); ! g.drawLine(x + 12, y + 1, x + 13, y + 1); g.drawLine(x + 11, y + 2, x + 12, y + 2); g.drawLine(x + 10, y + 3, x + 11, y + 3); g.drawLine(x + 8, y + 2, x + 8, y + 3); g.fillRect(x + 8, y + 4, 3, 3); g.drawLine(x + 11, y + 6, x + 12, y + 6); ! g.drawLine(x + 1, y + 5, x + 5, y + 5); g.drawLine(x + 1, y + 6, x + 1, y + 12); g.drawLine(x + 9, y + 9, x + 9, y + 12); g.drawLine(x + 1, y + 13, x + 9, y + 13); ! g.drawLine(x + 2, y + 12, x + 2, y + 12); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 12, y, x + 9, y + 3); g.drawLine(x + 7, y + 1, x + 8, y + 1); --- 1359,1385 ---- else g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 6, 7, 7); ! ! if (b.getModel().isPressed()) g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); ! g.drawLine(x + 12, y + 1, x + 13, y + 1); g.drawLine(x + 11, y + 2, x + 12, y + 2); g.drawLine(x + 10, y + 3, x + 11, y + 3); g.drawLine(x + 8, y + 2, x + 8, y + 3); g.fillRect(x + 8, y + 4, 3, 3); g.drawLine(x + 11, y + 6, x + 12, y + 6); ! g.drawLine(x + 1, y + 5, x + 5, y + 5); g.drawLine(x + 1, y + 6, x + 1, y + 12); g.drawLine(x + 9, y + 9, x + 9, y + 12); g.drawLine(x + 1, y + 13, x + 9, y + 13); ! g.drawLine(x + 2, y + 12, x + 2, y + 12); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 12, y, x + 9, y + 3); g.drawLine(x + 7, y + 1, x + 8, y + 1); *************** public class MetalIconFactory implements *** 1390,1396 **** g.drawLine(x + 3, y + 12, x + 8, y + 12); g.drawLine(x + 8, y + 8, x + 8, y + 11); g.drawLine(x + 9, y + 8, x + 9, y + 8); ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 9, y + 2, x + 9, y + 2); g.drawLine(x + 11, y + 4, x + 13, y + 2); --- 1390,1396 ---- g.drawLine(x + 3, y + 12, x + 8, y + 12); g.drawLine(x + 8, y + 8, x + 8, y + 11); g.drawLine(x + 9, y + 8, x + 9, y + 8); ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 9, y + 2, x + 9, y + 2); g.drawLine(x + 11, y + 4, x + 13, y + 2); *************** public class MetalIconFactory implements *** 1399,1465 **** g.drawLine(x + 6, y + 5, x + 6, y + 5); g.drawLine(x + 10, y + 8, x + 10, y + 13); g.drawLine(x + 1, y + 14, x + 10, y + 14); ! if (!b.getModel().isPressed()) { g.drawLine(x + 2, y + 6, x + 6, y + 6); g.drawLine(x + 2, y + 6, x + 2, y + 11); } ! g.setColor(savedColor); ! } } ! /** ! * An icon used for the 'maximize' button in the title frame of a * {@link JInternalFrame}. */ ! private static class InternalFrameMaximizeIcon implements Icon, UIResource, Serializable { ! /** * Creates a new instance. */ ! public InternalFrameMaximizeIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16; } ! /** * Paints the icon at the specified location. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); ! AbstractButton b = (AbstractButton) c; ! // fill the interior if (b.getModel().isPressed()) g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); --- 1399,1465 ---- g.drawLine(x + 6, y + 5, x + 6, y + 5); g.drawLine(x + 10, y + 8, x + 10, y + 13); g.drawLine(x + 1, y + 14, x + 10, y + 14); ! if (!b.getModel().isPressed()) { g.drawLine(x + 2, y + 6, x + 6, y + 6); g.drawLine(x + 2, y + 6, x + 2, y + 11); } ! g.setColor(savedColor); ! } } ! /** ! * An icon used for the 'maximize' button in the title frame of a * {@link JInternalFrame}. */ ! private static class InternalFrameMaximizeIcon implements Icon, UIResource, Serializable { ! /** * Creates a new instance. */ ! public InternalFrameMaximizeIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16; } ! /** * Paints the icon at the specified location. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); ! AbstractButton b = (AbstractButton) c; ! // fill the interior if (b.getModel().isPressed()) g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); *************** public class MetalIconFactory implements *** 1471,1477 **** g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); ! g.drawLine(x + 9, y + 1, x + 10, y + 1); g.fillRect(x + 11, y + 1, 3, 3); g.fillRect(x + 12, y + 4, 2, 2); --- 1471,1477 ---- g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); ! g.drawLine(x + 9, y + 1, x + 10, y + 1); g.fillRect(x + 11, y + 1, 3, 3); g.fillRect(x + 12, y + 4, 2, 2); *************** public class MetalIconFactory implements *** 1481,1487 **** g.drawLine(x + 1, y + 6, x + 1, y + 12); g.drawLine(x + 9, y + 6, x + 9, y + 12); g.drawLine(x + 1, y + 13, x + 9, y + 13); ! // fill g.drawLine(x + 7, y + 6, x + 8, y + 6); g.drawLine(x + 6, y + 7, x + 8, y + 7); --- 1481,1487 ---- g.drawLine(x + 1, y + 6, x + 1, y + 12); g.drawLine(x + 9, y + 6, x + 9, y + 12); g.drawLine(x + 1, y + 13, x + 9, y + 13); ! // fill g.drawLine(x + 7, y + 6, x + 8, y + 6); g.drawLine(x + 6, y + 7, x + 8, y + 7); *************** public class MetalIconFactory implements *** 1491,1497 **** g.drawLine(x + 2, y + 11, x + 3, y + 11); g.drawLine(x + 2, y + 12, x + 4, y + 12); g.drawLine(x + 8, y + 8, x + 8, y + 8); ! // draw black g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 8, y, x + 13, y); --- 1491,1497 ---- g.drawLine(x + 2, y + 11, x + 3, y + 11); g.drawLine(x + 2, y + 12, x + 4, y + 12); g.drawLine(x + 8, y + 8, x + 8, y + 8); ! // draw black g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 8, y, x + 13, y); *************** public class MetalIconFactory implements *** 1499,1509 **** g.drawLine(x + 10, y + 2, x + 9, y + 3); g.drawLine(x, y + 4, x + 8, y + 4); g.drawLine(x, y + 5, x, y + 13); ! g.drawLine(x + 2, y + 10, x + 6, y + 6); g.drawLine(x + 8, y + 9, x + 8, y + 11); g.drawLine(x + 5, y + 12, x + 8, y + 12); ! // draw white g.setColor(MetalLookAndFeel.getWhite()); if (!b.getModel().isPressed()) --- 1499,1509 ---- g.drawLine(x + 10, y + 2, x + 9, y + 3); g.drawLine(x, y + 4, x + 8, y + 4); g.drawLine(x, y + 5, x, y + 13); ! g.drawLine(x + 2, y + 10, x + 6, y + 6); g.drawLine(x + 8, y + 9, x + 8, y + 11); g.drawLine(x + 5, y + 12, x + 8, y + 12); ! // draw white g.setColor(MetalLookAndFeel.getWhite()); if (!b.getModel().isPressed()) *************** public class MetalIconFactory implements *** 1512,1600 **** g.drawLine(x + 2, y + 7, x + 2, y + 9); g.drawLine(x + 4, y + 11, x + 7, y + 8); } ! g.drawLine(x + 1, y + 14, x + 10, y + 14); g.drawLine(x + 10, y + 5, x + 10, y + 13); ! g.drawLine(x + 9, y + 2, x + 9, y + 2); g.drawLine(x + 11, y + 4, x + 11, y + 5); g.drawLine(x + 13, y + 6, x + 14, y + 6); g.drawLine(x + 14, y + 1, x + 14, y + 5); g.setColor(savedColor); ! } } /** * An icon used in the title frame of a {@link JInternalFrame}. */ ! private static class InternalFrameMinimizeIcon implements Icon, UIResource, Serializable { ! /** * Creates a new instance. */ ! public InternalFrameMinimizeIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16; } ! /** * Paints the icon at the specified location. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); ! AbstractButton b = (AbstractButton) c; ! if (b.getModel().isPressed()) g.setColor(MetalLookAndFeel.getBlack()); else ! // FIXME: here the color depends on whether or not the internal frame ! // is selected g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); ! g.drawLine(x + 12, y + 1, x + 13, y + 1); g.drawLine(x + 11, y + 2, x + 12, y + 2); g.drawLine(x + 10, y + 3, x + 11, y + 3); g.drawLine(x + 8, y + 2, x + 8, y + 3); g.fillRect(x + 8, y + 4, 3, 3); g.drawLine(x + 11, y + 6, x + 12, y + 6); ! g.drawLine(x + 1, y + 8, x + 6, y + 8); g.drawLine(x + 1, y + 9, x + 1, y + 12); g.drawLine(x + 6, y + 9, x + 6, y + 12); g.drawLine(x + 1, y + 13, x + 6, y + 13); ! g.drawLine(x + 5, y + 9, x + 5, y + 9); g.drawLine(x + 2, y + 12, x + 2, y + 12); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 12, y, x + 9, y + 3); g.drawLine(x + 7, y + 1, x + 8, y + 1); --- 1512,1600 ---- g.drawLine(x + 2, y + 7, x + 2, y + 9); g.drawLine(x + 4, y + 11, x + 7, y + 8); } ! g.drawLine(x + 1, y + 14, x + 10, y + 14); g.drawLine(x + 10, y + 5, x + 10, y + 13); ! g.drawLine(x + 9, y + 2, x + 9, y + 2); g.drawLine(x + 11, y + 4, x + 11, y + 5); g.drawLine(x + 13, y + 6, x + 14, y + 6); g.drawLine(x + 14, y + 1, x + 14, y + 5); g.setColor(savedColor); ! } } /** * An icon used in the title frame of a {@link JInternalFrame}. */ ! private static class InternalFrameMinimizeIcon implements Icon, UIResource, Serializable { ! /** * Creates a new instance. */ ! public InternalFrameMinimizeIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 16; } ! /** * Paints the icon at the specified location. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color savedColor = g.getColor(); ! AbstractButton b = (AbstractButton) c; ! if (b.getModel().isPressed()) g.setColor(MetalLookAndFeel.getBlack()); else ! // FIXME: here the color depends on whether or not the internal frame ! // is selected g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); ! g.drawLine(x + 12, y + 1, x + 13, y + 1); g.drawLine(x + 11, y + 2, x + 12, y + 2); g.drawLine(x + 10, y + 3, x + 11, y + 3); g.drawLine(x + 8, y + 2, x + 8, y + 3); g.fillRect(x + 8, y + 4, 3, 3); g.drawLine(x + 11, y + 6, x + 12, y + 6); ! g.drawLine(x + 1, y + 8, x + 6, y + 8); g.drawLine(x + 1, y + 9, x + 1, y + 12); g.drawLine(x + 6, y + 9, x + 6, y + 12); g.drawLine(x + 1, y + 13, x + 6, y + 13); ! g.drawLine(x + 5, y + 9, x + 5, y + 9); g.drawLine(x + 2, y + 12, x + 2, y + 12); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 12, y, x + 9, y + 3); g.drawLine(x + 7, y + 1, x + 8, y + 1); *************** public class MetalIconFactory implements *** 1604,1610 **** g.drawLine(x + 3, y + 12, x + 5, y + 12); g.drawLine(x + 5, y + 10, x + 5, y + 11); g.drawLine(x + 11, y + 5, x + 12, y + 5); ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 9, y + 2, x + 9, y + 2); g.drawLine(x + 11, y + 4, x + 13, y + 2); --- 1604,1610 ---- g.drawLine(x + 3, y + 12, x + 5, y + 12); g.drawLine(x + 5, y + 10, x + 5, y + 11); g.drawLine(x + 11, y + 5, x + 12, y + 5); ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 9, y + 2, x + 9, y + 2); g.drawLine(x + 11, y + 4, x + 13, y + 2); *************** public class MetalIconFactory implements *** 1625,1638 **** } g.setColor(savedColor); ! } } /** * The icon used to display the thumb control on a horizontally oriented * {@link JSlider} component. */ ! private static class VerticalSliderThumbIcon implements Icon, UIResource, Serializable { /** --- 1625,1638 ---- } g.setColor(savedColor); ! } } /** * The icon used to display the thumb control on a horizontally oriented * {@link JSlider} component. */ ! private static class VerticalSliderThumbIcon implements Icon, UIResource, Serializable { /** *************** public class MetalIconFactory implements *** 1646,1698 **** /** * Creates a new instance. */ ! public VerticalSliderThumbIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 15; } ! /** * Paints the icon taking into account whether the slider control has the * focus or not. ! * * @param c the slider (must be a non-null instance of * {@link JSlider}. * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { boolean enabled = false; boolean focus = false; if (c != null) { enabled = c.isEnabled(); ! focus = c.hasFocus(); } ! // draw the outline ! if (enabled) g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); --- 1646,1698 ---- /** * Creates a new instance. */ ! public VerticalSliderThumbIcon() { // Nothing to do here. } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 16; } ! /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 15; } ! /** * Paints the icon taking into account whether the slider control has the * focus or not. ! * * @param c the slider (must be a non-null instance of * {@link JSlider}. * @param g the graphics device. * @param x the x-coordinate. * @param y the y-coordinate. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { boolean enabled = false; boolean focus = false; if (c != null) { enabled = c.isEnabled(); ! focus = c.hasFocus(); } ! // draw the outline ! if (enabled) g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); *************** public class MetalIconFactory implements *** 1701,1708 **** g.drawLine(x + 14, y + 8, x + 8, y + 14); g.drawLine(x + 8, y + 14, x + 1, y + 14); g.drawLine(x, y + 13, x, y + 1); ! ! // The following is commented out until the masking for the gradient painting // is working correctly // // Fill the icon. // if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme --- 1701,1708 ---- g.drawLine(x + 14, y + 8, x + 8, y + 14); g.drawLine(x + 8, y + 14, x + 1, y + 14); g.drawLine(x, y + 13, x, y + 1); ! ! // The following is commented out until the masking for the gradient painting // is working correctly // // Fill the icon. // if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme *************** public class MetalIconFactory implements *** 1768,1824 **** g.drawLine(x + 6, y + 2, x + 6, y + 2); g.drawLine(x + 6, y + 6, x + 6, y + 6); g.drawLine(x + 6, y + 10, x + 6, y + 10); ! } ! } } ! /** * A tree control icon. This icon can be in one of two states: expanded and * collapsed. */ public static class TreeControlIcon implements Icon, Serializable { ! /** ???. */ protected boolean isLight; ! /** A flag that controls whether or not the icon is collapsed. */ private boolean collapsed; ! /** * Creates a new icon. ! * * @param isCollapsed a flag that controls whether the icon is in the * collapsed state or the expanded state. */ ! public TreeControlIcon(boolean isCollapsed) { collapsed = isCollapsed; } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon at the location (x, y). ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. --- 1768,1824 ---- g.drawLine(x + 6, y + 2, x + 6, y + 2); g.drawLine(x + 6, y + 6, x + 6, y + 6); g.drawLine(x + 6, y + 10, x + 6, y + 10); ! } ! } } ! /** * A tree control icon. This icon can be in one of two states: expanded and * collapsed. */ public static class TreeControlIcon implements Icon, Serializable { ! /** ???. */ protected boolean isLight; ! /** A flag that controls whether or not the icon is collapsed. */ private boolean collapsed; ! /** * Creates a new icon. ! * * @param isCollapsed a flag that controls whether the icon is in the * collapsed state or the expanded state. */ ! public TreeControlIcon(boolean isCollapsed) { collapsed = isCollapsed; } ! /** * Returns the width of the icon, in pixels. ! * * @return The width of the icon. */ ! public int getIconWidth() { return 18; } /** * Returns the height of the icon, in pixels. ! * * @return The height of the icon. */ ! public int getIconHeight() { return 18; } ! /** * Paints the icon at the location (x, y). ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. *************** public class MetalIconFactory implements *** 1840,1870 **** g.drawOval(x, y, w, w); g.setColor(dark); g.fillOval(x + 1, y + 1, w - 1, w - 1); ! if (collapsed) g.fillRect(x + w, y + wHalf + 1, w, 2); else g.fillRect(x + wHalf + 1, y + w, 2, w); ! g.setColor(white); g.fillRect(x + wHalf + 1, y + wHalf + 1, 2, 2); ! } ! /** * Simply calls {@link #paintIcon(Component, Graphics, int, int)}. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintMe(Component c, Graphics g, int x, int y) { ! paintIcon(c, g, x, y); } } ! /** * A tree folder icon. */ --- 1840,1870 ---- g.drawOval(x, y, w, w); g.setColor(dark); g.fillOval(x + 1, y + 1, w - 1, w - 1); ! if (collapsed) g.fillRect(x + w, y + wHalf + 1, w, 2); else g.fillRect(x + wHalf + 1, y + w, 2, w); ! g.setColor(white); g.fillRect(x + wHalf + 1, y + wHalf + 1, 2, 2); ! } ! /** * Simply calls {@link #paintIcon(Component, Graphics, int, int)}. ! * * @param c the component. * @param g the graphics device. * @param x the x coordinate. * @param y the y coordinate. */ ! public void paintMe(Component c, Graphics g, int x, int y) { ! paintIcon(c, g, x, y); } } ! /** * A tree folder icon. */ *************** public class MetalIconFactory implements *** 1873,1906 **** /** * Creates a new instance. */ ! public TreeFolderIcon() { // Nothing to do here. } ! /** * Returns the additional height for this icon, in this case 2 * pixels. ! * * @return 2. */ ! public int getAdditionalHeight() { return 2; } ! /** ! * Returns the vertical shift, in pixels, applied when painting the icon. * This overridden method returns -1. ! * * @return The shift. */ ! public int getShift() { return -1; } } ! /** * A tree leaf icon. */ --- 1873,1906 ---- /** * Creates a new instance. */ ! public TreeFolderIcon() { // Nothing to do here. } ! /** * Returns the additional height for this icon, in this case 2 * pixels. ! * * @return 2. */ ! public int getAdditionalHeight() { return 2; } ! /** ! * Returns the vertical shift, in pixels, applied when painting the icon. * This overridden method returns -1. ! * * @return The shift. */ ! public int getShift() { return -1; } } ! /** * A tree leaf icon. */ *************** public class MetalIconFactory implements *** 1909,1937 **** /** * Creates a new instance. */ ! public TreeLeafIcon() { // Nothing to do here. } ! /** * Returns the additional height for this icon, in this case 4 * pixels. ! * * @return 4. */ ! public int getAdditionalHeight() { return 4; } ! /** ! * Returns the vertical shift, in pixels, applied when painting the icon. * This overridden method returns 2. ! * * @return The shift. */ ! public int getShift() { return 2; } --- 1909,1937 ---- /** * Creates a new instance. */ ! public TreeLeafIcon() { // Nothing to do here. } ! /** * Returns the additional height for this icon, in this case 4 * pixels. ! * * @return 4. */ ! public int getAdditionalHeight() { return 4; } ! /** ! * Returns the vertical shift, in pixels, applied when painting the icon. * This overridden method returns 2. ! * * @return The shift. */ ! public int getShift() { return 2; } *************** public class MetalIconFactory implements *** 1939,1989 **** /** * An icon representing a hard disk. ! * * @see MetalIconFactory#getTreeHardDriveIcon() */ ! private static class TreeHardDriveIcon implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public TreeHardDriveIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return 16. */ ! public int getIconWidth() ! { return 16; } /** * Returns the height of the icon, in pixels. ! * * @return 16. */ ! public int getIconHeight() { return 16; } /** ! * Paints the icon at the specified location, using colors from the * current theme. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color saved = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); --- 1939,1989 ---- /** * An icon representing a hard disk. ! * * @see MetalIconFactory#getTreeHardDriveIcon() */ ! private static class TreeHardDriveIcon implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public TreeHardDriveIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return 16. */ ! public int getIconWidth() ! { return 16; } /** * Returns the height of the icon, in pixels. ! * * @return 16. */ ! public int getIconHeight() { return 16; } /** ! * Paints the icon at the specified location, using colors from the * current theme. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color saved = g.getColor(); g.setColor(MetalLookAndFeel.getBlack()); *************** public class MetalIconFactory implements *** 1993,1999 **** g.drawLine(x + 14, y + 7, x + 14, y + 8); g.drawLine(x + 1, y + 10, x + 1, y + 11); g.drawLine(x + 14, y + 10, x + 14, y + 11); ! g.drawLine(x + 2, y + 3, x + 3, y + 3); g.drawLine(x + 12, y + 3, x + 13, y + 3); g.drawLine(x + 2, y + 6, x + 3, y + 6); --- 1993,1999 ---- g.drawLine(x + 14, y + 7, x + 14, y + 8); g.drawLine(x + 1, y + 10, x + 1, y + 11); g.drawLine(x + 14, y + 10, x + 14, y + 11); ! g.drawLine(x + 2, y + 3, x + 3, y + 3); g.drawLine(x + 12, y + 3, x + 13, y + 3); g.drawLine(x + 2, y + 6, x + 3, y + 6); *************** public class MetalIconFactory implements *** 2002,2026 **** g.drawLine(x + 12, y + 9, x + 13, y + 9); g.drawLine(x + 2, y + 12, x + 3, y + 12); g.drawLine(x + 12, y + 12, x + 13, y + 12); ! g.drawLine(x + 4, y + 2, x + 11, y + 2); g.drawLine(x + 4, y + 7, x + 11, y + 7); g.drawLine(x + 4, y + 10, x + 11, y + 10); g.drawLine(x + 4, y + 13, x + 11, y + 13); ! g.setColor(MetalLookAndFeel.getWhite()); g.fillRect(x + 4, y + 3, 2, 2); g.drawLine(x + 6, y + 4, x + 6, y + 4); g.drawLine(x + 7, y + 3, x + 9, y + 3); g.drawLine(x + 8, y + 4, x + 8, y + 4); g.drawLine(x + 11, y + 3, x + 11, y + 3); ! g.fillRect(x + 2, y + 4, 2, 2); ! g.fillRect(x + 2, y + 7, 2, 2); ! g.fillRect(x + 2, y + 10, 2, 2); g.drawLine(x + 4, y + 6, x + 4, y + 6); g.drawLine(x + 4, y + 9, x + 4, y + 9); g.drawLine(x + 4, y + 12, x + 4, y + 12); ! g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x + 13, y + 4, x + 13, y + 4); g.drawLine(x + 12, y + 5, x + 13, y + 5); --- 2002,2026 ---- g.drawLine(x + 12, y + 9, x + 13, y + 9); g.drawLine(x + 2, y + 12, x + 3, y + 12); g.drawLine(x + 12, y + 12, x + 13, y + 12); ! g.drawLine(x + 4, y + 2, x + 11, y + 2); g.drawLine(x + 4, y + 7, x + 11, y + 7); g.drawLine(x + 4, y + 10, x + 11, y + 10); g.drawLine(x + 4, y + 13, x + 11, y + 13); ! g.setColor(MetalLookAndFeel.getWhite()); g.fillRect(x + 4, y + 3, 2, 2); g.drawLine(x + 6, y + 4, x + 6, y + 4); g.drawLine(x + 7, y + 3, x + 9, y + 3); g.drawLine(x + 8, y + 4, x + 8, y + 4); g.drawLine(x + 11, y + 3, x + 11, y + 3); ! g.fillRect(x + 2, y + 4, 2, 2); ! g.fillRect(x + 2, y + 7, 2, 2); ! g.fillRect(x + 2, y + 10, 2, 2); g.drawLine(x + 4, y + 6, x + 4, y + 6); g.drawLine(x + 4, y + 9, x + 4, y + 9); g.drawLine(x + 4, y + 12, x + 4, y + 12); ! g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x + 13, y + 4, x + 13, y + 4); g.drawLine(x + 12, y + 5, x + 13, y + 5); *************** public class MetalIconFactory implements *** 2028,2034 **** g.drawLine(x + 12, y + 8, x + 13, y + 8); g.drawLine(x + 13, y + 10, x + 13, y + 10); g.drawLine(x + 12, y + 11, x + 13, y + 11); ! g.drawLine(x + 10, y + 5, x + 10, y + 5); g.drawLine(x + 7, y + 6, x + 7, y + 6); g.drawLine(x + 9, y + 6, x + 9, y + 6); --- 2028,2034 ---- g.drawLine(x + 12, y + 8, x + 13, y + 8); g.drawLine(x + 13, y + 10, x + 13, y + 10); g.drawLine(x + 12, y + 11, x + 13, y + 11); ! g.drawLine(x + 10, y + 5, x + 10, y + 5); g.drawLine(x + 7, y + 6, x + 7, y + 6); g.drawLine(x + 9, y + 6, x + 9, y + 6); *************** public class MetalIconFactory implements *** 2045,2180 **** g.drawLine(x + 11, y + 12, x + 11, y + 12); g.setColor(saved); ! } ! } ! /** * An icon representing a floppy disk. ! * * @see MetalIconFactory#getTreeFloppyDriveIcon() */ ! private static class TreeFloppyDriveIcon implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public TreeFloppyDriveIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return 16. */ ! public int getIconWidth() ! { return 16; } /** * Returns the height of the icon, in pixels. ! * * @return 16. */ ! public int getIconHeight() { return 16; } /** ! * Paints the icon at the specified location, using colors from the * current theme. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color saved = g.getColor(); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 1, y + 1, x + 13, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + 14); g.drawLine(x + 1, y + 14, x + 14, y + 14); g.drawLine(x + 14, y + 2, x + 14, y + 14); ! g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 2, 12, 12); ! g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(x + 5, y + 2, 6, 5); g.drawLine(x + 4, y + 8, x + 11, y + 8); g.drawLine(x + 3, y + 9, x + 3, y + 13); g.drawLine(x + 12, y + 9, x + 12, y + 13); ! g.setColor(MetalLookAndFeel.getWhite()); g.fillRect(x + 8, y + 3, 2, 3); g.fillRect(x + 4, y + 9, 8, 5); ! g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); g.drawLine(x + 5, y + 10, x + 9, y + 10); g.drawLine(x + 5, y + 12, x + 8, y + 12); g.setColor(saved); ! } ! } /** * An icon representing a computer. ! * * @see MetalIconFactory#getTreeComputerIcon() */ ! private static class TreeComputerIcon implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public TreeComputerIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return 16. */ ! public int getIconWidth() ! { return 16; } /** * Returns the height of the icon, in pixels. ! * * @return 16. */ ! public int getIconHeight() { return 16; } /** ! * Paints the icon at the specified location, using colors from the * current theme. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color saved = g.getColor(); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 3, y + 1, x + 12, y + 1); g.drawLine(x + 2, y + 2, x + 2, y + 8); --- 2045,2180 ---- g.drawLine(x + 11, y + 12, x + 11, y + 12); g.setColor(saved); ! } ! } ! /** * An icon representing a floppy disk. ! * * @see MetalIconFactory#getTreeFloppyDriveIcon() */ ! private static class TreeFloppyDriveIcon implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public TreeFloppyDriveIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return 16. */ ! public int getIconWidth() ! { return 16; } /** * Returns the height of the icon, in pixels. ! * * @return 16. */ ! public int getIconHeight() { return 16; } /** ! * Paints the icon at the specified location, using colors from the * current theme. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color saved = g.getColor(); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 1, y + 1, x + 13, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + 14); g.drawLine(x + 1, y + 14, x + 14, y + 14); g.drawLine(x + 14, y + 2, x + 14, y + 14); ! g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 2, 12, 12); ! g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(x + 5, y + 2, 6, 5); g.drawLine(x + 4, y + 8, x + 11, y + 8); g.drawLine(x + 3, y + 9, x + 3, y + 13); g.drawLine(x + 12, y + 9, x + 12, y + 13); ! g.setColor(MetalLookAndFeel.getWhite()); g.fillRect(x + 8, y + 3, 2, 3); g.fillRect(x + 4, y + 9, 8, 5); ! g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); g.drawLine(x + 5, y + 10, x + 9, y + 10); g.drawLine(x + 5, y + 12, x + 8, y + 12); g.setColor(saved); ! } ! } /** * An icon representing a computer. ! * * @see MetalIconFactory#getTreeComputerIcon() */ ! private static class TreeComputerIcon implements Icon, UIResource, Serializable { /** * Creates a new icon instance. */ ! public TreeComputerIcon() { // Nothing to do here. } /** * Returns the width of the icon, in pixels. ! * * @return 16. */ ! public int getIconWidth() ! { return 16; } /** * Returns the height of the icon, in pixels. ! * * @return 16. */ ! public int getIconHeight() { return 16; } /** ! * Paints the icon at the specified location, using colors from the * current theme. ! * * @param c the component (ignored). * @param g the graphics device. * @param x the x-coordinate for the top-left of the icon. * @param y the y-coordinate for the top-left of the icon. */ ! public void paintIcon(Component c, Graphics g, int x, int y) { Color saved = g.getColor(); ! g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 3, y + 1, x + 12, y + 1); g.drawLine(x + 2, y + 2, x + 2, y + 8); *************** public class MetalIconFactory implements *** 2189,2208 **** g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 5, y + 4, 6, 4); ! g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x + 6, y + 12, x + 8, y + 12); g.drawLine(x + 10, y + 12, x + 12, y + 12); g.setColor(saved); ! } ! } ! /** The icon returned by {@link #getCheckBoxIcon()}. */ private static Icon checkBoxIcon; ! /** The icon returned by {@link #getCheckBoxMenuItemIcon()}. */ private static Icon checkBoxMenuItemIcon; ! /** The icon returned by {@link #getFileChooserDetailViewIcon()}. */ private static Icon fileChooserDetailViewIcon; --- 2189,2208 ---- g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 5, y + 4, 6, 4); ! g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x + 6, y + 12, x + 8, y + 12); g.drawLine(x + 10, y + 12, x + 12, y + 12); g.setColor(saved); ! } ! } ! /** The icon returned by {@link #getCheckBoxIcon()}. */ private static Icon checkBoxIcon; ! /** The icon returned by {@link #getCheckBoxMenuItemIcon()}. */ private static Icon checkBoxMenuItemIcon; ! /** The icon returned by {@link #getFileChooserDetailViewIcon()}. */ private static Icon fileChooserDetailViewIcon; *************** public class MetalIconFactory implements *** 2229,2277 **** /** The icon returned by {@link #getTreeComputerIcon()}. */ private static Icon treeComputerIcon; ! /** The icon instance returned by {@link #getTreeFloppyDriveIcon()}. */ private static Icon treeFloppyDriveIcon; ! /** The icon instance returned by {@link #getTreeHardDriveIcon()}. */ private static Icon treeHardDriveIcon; ! /** The icon instance returned by {@link #getHorizontalSliderThumbIcon()}. */ private static Icon horizontalSliderThumbIcon; /** The icon instance returned by {@link #getVerticalSliderThumbIcon()}. */ private static Icon verticalSliderThumbIcon; ! /** ! * Creates a new instance. All the methods are static, so creating an * instance isn't necessary. */ ! public MetalIconFactory() { // Nothing to do here. } /** * Returns an icon for use when rendering the {@link JCheckBox} component. ! * * @return A check box icon. ! * * @since 1.3 */ ! public static Icon getCheckBoxIcon() { if (checkBoxIcon == null) checkBoxIcon = new MetalCheckBoxIcon(); return checkBoxIcon; } ! /** ! * Returns an icon for use when rendering the {@link JCheckBoxMenuItem} * component. ! * * @return An icon. */ ! public static Icon getCheckBoxMenuItemIcon() { if (checkBoxMenuItemIcon == null) checkBoxMenuItemIcon = new CheckBoxMenuItemIcon(); --- 2229,2277 ---- /** The icon returned by {@link #getTreeComputerIcon()}. */ private static Icon treeComputerIcon; ! /** The icon instance returned by {@link #getTreeFloppyDriveIcon()}. */ private static Icon treeFloppyDriveIcon; ! /** The icon instance returned by {@link #getTreeHardDriveIcon()}. */ private static Icon treeHardDriveIcon; ! /** The icon instance returned by {@link #getHorizontalSliderThumbIcon()}. */ private static Icon horizontalSliderThumbIcon; /** The icon instance returned by {@link #getVerticalSliderThumbIcon()}. */ private static Icon verticalSliderThumbIcon; ! /** ! * Creates a new instance. All the methods are static, so creating an * instance isn't necessary. */ ! public MetalIconFactory() { // Nothing to do here. } /** * Returns an icon for use when rendering the {@link JCheckBox} component. ! * * @return A check box icon. ! * * @since 1.3 */ ! public static Icon getCheckBoxIcon() { if (checkBoxIcon == null) checkBoxIcon = new MetalCheckBoxIcon(); return checkBoxIcon; } ! /** ! * Returns an icon for use when rendering the {@link JCheckBoxMenuItem} * component. ! * * @return An icon. */ ! public static Icon getCheckBoxMenuItemIcon() { if (checkBoxMenuItemIcon == null) checkBoxMenuItemIcon = new CheckBoxMenuItemIcon(); *************** public class MetalIconFactory implements *** 2280,2337 **** /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserDetailViewIcon() { if (fileChooserDetailViewIcon == null) fileChooserDetailViewIcon = new FileChooserDetailViewIcon(); return fileChooserDetailViewIcon; } ! /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserHomeFolderIcon() { if (fileChooserHomeFolderIcon == null) fileChooserHomeFolderIcon = new FileChooserHomeFolderIcon(); ! return fileChooserHomeFolderIcon; } ! /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserListViewIcon() { if (fileChooserListViewIcon == null) fileChooserListViewIcon = new FileChooserListViewIcon(); return fileChooserListViewIcon; } ! /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserNewFolderIcon() { if (fileChooserNewFolderIcon == null) fileChooserNewFolderIcon = new FileChooserNewFolderIcon(); return fileChooserNewFolderIcon; } ! /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserUpFolderIcon() { if (fileChooserUpFolderIcon == null) fileChooserUpFolderIcon = new FileChooserUpFolderIcon(); --- 2280,2337 ---- /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserDetailViewIcon() { if (fileChooserDetailViewIcon == null) fileChooserDetailViewIcon = new FileChooserDetailViewIcon(); return fileChooserDetailViewIcon; } ! /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserHomeFolderIcon() { if (fileChooserHomeFolderIcon == null) fileChooserHomeFolderIcon = new FileChooserHomeFolderIcon(); ! return fileChooserHomeFolderIcon; } ! /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserListViewIcon() { if (fileChooserListViewIcon == null) fileChooserListViewIcon = new FileChooserListViewIcon(); return fileChooserListViewIcon; } ! /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserNewFolderIcon() { if (fileChooserNewFolderIcon == null) fileChooserNewFolderIcon = new FileChooserNewFolderIcon(); return fileChooserNewFolderIcon; } ! /** * Returns an icon for use by the {@link JFileChooser} component. ! * * @return An icon. */ ! public static Icon getFileChooserUpFolderIcon() { if (fileChooserUpFolderIcon == null) fileChooserUpFolderIcon = new FileChooserUpFolderIcon(); *************** public class MetalIconFactory implements *** 2352,2361 **** /** * Creates a new instance of the icon used in a {@link JRadioButtonMenuItem}. ! * * @return A new icon instance. */ ! public static Icon getRadioButtonMenuItemIcon() { if (radioButtonMenuItemIcon == null) radioButtonMenuItemIcon = new RadioButtonMenuItemIcon(); --- 2352,2361 ---- /** * Creates a new instance of the icon used in a {@link JRadioButtonMenuItem}. ! * * @return A new icon instance. */ ! public static Icon getRadioButtonMenuItemIcon() { if (radioButtonMenuItemIcon == null) radioButtonMenuItemIcon = new RadioButtonMenuItemIcon(); *************** public class MetalIconFactory implements *** 2365,2389 **** /** * Returns the icon used to display the thumb for a horizontally oriented * {@link JSlider}. ! * * @return The icon. */ ! public static Icon getHorizontalSliderThumbIcon() { if (horizontalSliderThumbIcon == null) horizontalSliderThumbIcon = new HorizontalSliderThumbIcon(); return horizontalSliderThumbIcon; } ! /** * Creates a new icon used to represent the 'close' button in the title * pane of a {@link JInternalFrame}. ! * * @param size the icon size. ! * * @return A close icon. */ ! public static Icon getInternalFrameCloseIcon(int size) { return new InternalFrameCloseIcon(size); } --- 2365,2389 ---- /** * Returns the icon used to display the thumb for a horizontally oriented * {@link JSlider}. ! * * @return The icon. */ ! public static Icon getHorizontalSliderThumbIcon() { if (horizontalSliderThumbIcon == null) horizontalSliderThumbIcon = new HorizontalSliderThumbIcon(); return horizontalSliderThumbIcon; } ! /** * Creates a new icon used to represent the 'close' button in the title * pane of a {@link JInternalFrame}. ! * * @param size the icon size. ! * * @return A close icon. */ ! public static Icon getInternalFrameCloseIcon(int size) { return new InternalFrameCloseIcon(size); } *************** public class MetalIconFactory implements *** 2391,2429 **** /** * Creates a new icon for the menu in a {@link JInternalFrame}. This is the * icon displayed at the top left of the frame. ! * * @return A menu icon. */ ! public static Icon getInternalFrameDefaultMenuIcon() { if (internalFrameDefaultMenuIcon == null) internalFrameDefaultMenuIcon = new InternalFrameDefaultMenuIcon(); return internalFrameDefaultMenuIcon; } ! /** * Creates a new icon for the 'maximize' button in a {@link JInternalFrame}. ! * * @param size the icon size in pixels. ! * * @return The icon. ! * * @see #getInternalFrameAltMaximizeIcon(int) */ ! public static Icon getInternalFrameMaximizeIcon(int size) { return new InternalFrameMaximizeIcon(); } ! /** * Returns the icon used for the minimize button in the frame title for a * {@link JInternalFrame}. ! * * @param size the icon size in pixels (ignored by this implementation). ! * * @return The icon. */ ! public static Icon getInternalFrameMinimizeIcon(int size) { return new InternalFrameMinimizeIcon(); } --- 2391,2429 ---- /** * Creates a new icon for the menu in a {@link JInternalFrame}. This is the * icon displayed at the top left of the frame. ! * * @return A menu icon. */ ! public static Icon getInternalFrameDefaultMenuIcon() { if (internalFrameDefaultMenuIcon == null) internalFrameDefaultMenuIcon = new InternalFrameDefaultMenuIcon(); return internalFrameDefaultMenuIcon; } ! /** * Creates a new icon for the 'maximize' button in a {@link JInternalFrame}. ! * * @param size the icon size in pixels. ! * * @return The icon. ! * * @see #getInternalFrameAltMaximizeIcon(int) */ ! public static Icon getInternalFrameMaximizeIcon(int size) { return new InternalFrameMaximizeIcon(); } ! /** * Returns the icon used for the minimize button in the frame title for a * {@link JInternalFrame}. ! * * @param size the icon size in pixels (ignored by this implementation). ! * * @return The icon. */ ! public static Icon getInternalFrameMinimizeIcon(int size) { return new InternalFrameMinimizeIcon(); } *************** public class MetalIconFactory implements *** 2431,2524 **** /** * Creates a new icon for the 'restore' button in a {@link JInternalFrame} * that has been maximised. ! * * @param size the icon size in pixels. ! * * @return The icon. ! * * @see #getInternalFrameMaximizeIcon(int) */ ! public static Icon getInternalFrameAltMaximizeIcon(int size) { return new InternalFrameAltMaximizeIcon(size); } ! /** * Returns the icon used to display the thumb for a vertically oriented * {@link JSlider}. ! * * @return The icon. */ ! public static Icon getVerticalSliderThumbIcon() { if (verticalSliderThumbIcon == null) verticalSliderThumbIcon = new VerticalSliderThumbIcon(); return verticalSliderThumbIcon; } ! /** * Creates and returns a new tree folder icon. ! * * @return A new tree folder icon. ! */ ! public static Icon getTreeFolderIcon() { return new TreeFolderIcon(); } ! /** * Creates and returns a new tree leaf icon. ! * * @return A new tree leaf icon. */ ! public static Icon getTreeLeafIcon() { return new TreeLeafIcon(); } ! /** * Creates and returns a tree control icon. ! * ! * @param isCollapsed a flag that controls whether the icon is in the * collapsed or expanded state. ! * * @return A tree control icon. */ ! public static Icon getTreeControlIcon(boolean isCollapsed) { return new TreeControlIcon(isCollapsed); } /** * Returns a 16x16 icon representing a computer. ! * * @return The icon. */ ! public static Icon getTreeComputerIcon() { if (treeComputerIcon == null) treeComputerIcon = new TreeComputerIcon(); ! return treeComputerIcon; } ! /** * Returns a 16x16 icon representing a floppy disk. ! * * @return The icon. */ ! public static Icon getTreeFloppyDriveIcon() { if (treeFloppyDriveIcon == null) treeFloppyDriveIcon = new TreeFloppyDriveIcon(); return treeFloppyDriveIcon; } ! /** * Returns a 16x16 icon representing a hard disk. ! * * @return The icon. */ ! public static Icon getTreeHardDriveIcon() { if (treeHardDriveIcon == null) treeHardDriveIcon = new TreeHardDriveIcon(); --- 2431,2524 ---- /** * Creates a new icon for the 'restore' button in a {@link JInternalFrame} * that has been maximised. ! * * @param size the icon size in pixels. ! * * @return The icon. ! * * @see #getInternalFrameMaximizeIcon(int) */ ! public static Icon getInternalFrameAltMaximizeIcon(int size) { return new InternalFrameAltMaximizeIcon(size); } ! /** * Returns the icon used to display the thumb for a vertically oriented * {@link JSlider}. ! * * @return The icon. */ ! public static Icon getVerticalSliderThumbIcon() { if (verticalSliderThumbIcon == null) verticalSliderThumbIcon = new VerticalSliderThumbIcon(); return verticalSliderThumbIcon; } ! /** * Creates and returns a new tree folder icon. ! * * @return A new tree folder icon. ! */ ! public static Icon getTreeFolderIcon() { return new TreeFolderIcon(); } ! /** * Creates and returns a new tree leaf icon. ! * * @return A new tree leaf icon. */ ! public static Icon getTreeLeafIcon() { return new TreeLeafIcon(); } ! /** * Creates and returns a tree control icon. ! * ! * @param isCollapsed a flag that controls whether the icon is in the * collapsed or expanded state. ! * * @return A tree control icon. */ ! public static Icon getTreeControlIcon(boolean isCollapsed) { return new TreeControlIcon(isCollapsed); } /** * Returns a 16x16 icon representing a computer. ! * * @return The icon. */ ! public static Icon getTreeComputerIcon() { if (treeComputerIcon == null) treeComputerIcon = new TreeComputerIcon(); ! return treeComputerIcon; } ! /** * Returns a 16x16 icon representing a floppy disk. ! * * @return The icon. */ ! public static Icon getTreeFloppyDriveIcon() { if (treeFloppyDriveIcon == null) treeFloppyDriveIcon = new TreeFloppyDriveIcon(); return treeFloppyDriveIcon; } ! /** * Returns a 16x16 icon representing a hard disk. ! * * @return The icon. */ ! public static Icon getTreeHardDriveIcon() { if (treeHardDriveIcon == null) treeHardDriveIcon = new TreeHardDriveIcon(); *************** public class MetalIconFactory implements *** 2527,2535 **** /** * Returns a new instance of a 4 x 8 icon showing a small black triangle that ! * points to the right. This is displayed in menu items that have a * sub menu. ! * * @return The icon. */ public static Icon getMenuArrowIcon() --- 2527,2535 ---- /** * Returns a new instance of a 4 x 8 icon showing a small black triangle that ! * points to the right. This is displayed in menu items that have a * sub menu. ! * * @return The icon. */ public static Icon getMenuArrowIcon() *************** public class MetalIconFactory implements *** 2558,2568 **** }; return menuArrow; } ! /** * Returns a new instance of a 4 x 8 icon showing a small black triangle that * points to the right. This is displayed in menu items that have a sub menu. ! * * @return The icon. */ public static Icon getMenuItemArrowIcon() --- 2558,2568 ---- }; return menuArrow; } ! /** * Returns a new instance of a 4 x 8 icon showing a small black triangle that * points to the right. This is displayed in menu items that have a sub menu. ! * * @return The icon. */ public static Icon getMenuItemArrowIcon() *************** public class MetalIconFactory implements *** 2591,2600 **** }; return menuItemArrow; } ! /** * Returns a new instance of a 13 x 13 icon showing a small black check mark. ! * * @return The icon. */ public static Icon getMenuItemCheckIcon() --- 2591,2600 ---- }; return menuItemArrow; } ! /** * Returns a new instance of a 13 x 13 icon showing a small black check mark. ! * * @return The icon. */ public static Icon getMenuItemCheckIcon() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicInter *** 60,75 **** /** ! * The title pane for a {@link JInternalFrame} (see ! * {@link MetalInternalFrameUI#createNorthPane(JInternalFrame)}). This can ! * be displayed in two styles: one for regular internal frames, and the other * for "palette" style internal frames. */ ! public class MetalInternalFrameTitlePane extends BasicInternalFrameTitlePane { ! /** ! * A property change handler that listens for changes to the * JInternalFrame.isPalette property and updates the title * pane as appropriate. */ --- 60,75 ---- /** ! * The title pane for a {@link JInternalFrame} (see ! * {@link MetalInternalFrameUI#createNorthPane(JInternalFrame)}). This can ! * be displayed in two styles: one for regular internal frames, and the other * for "palette" style internal frames. */ ! public class MetalInternalFrameTitlePane extends BasicInternalFrameTitlePane { ! /** ! * A property change handler that listens for changes to the * JInternalFrame.isPalette property and updates the title * pane as appropriate. */ *************** public class MetalInternalFrameTitlePane *** 83,93 **** { super(); } ! /** * Handles JInternalFrame.isPalette property changes, with all * other property changes being passed to the superclass. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) --- 83,93 ---- { super(); } ! /** * Handles JInternalFrame.isPalette property changes, with all * other property changes being passed to the superclass. ! * * @param e the event. */ public void propertyChange(PropertyChangeEvent e) *************** public class MetalInternalFrameTitlePane *** 111,117 **** /** * A layout manager for the title pane. ! * * @see #createLayout() */ private class MetalTitlePaneLayout implements LayoutManager --- 111,117 ---- /** * A layout manager for the title pane. ! * * @see #createLayout() */ private class MetalTitlePaneLayout implements LayoutManager *************** public class MetalInternalFrameTitlePane *** 176,183 **** } Dimension titlePreferredSize = title.getPreferredSize(); ! title.setBounds(insets.left + 5, insets.top, ! Math.min(titlePreferredSize.width, loc - insets.left - 10), height); } --- 176,183 ---- } Dimension titlePreferredSize = title.getPreferredSize(); ! title.setBounds(insets.left + 5, insets.top, ! Math.min(titlePreferredSize.width, loc - insets.left - 10), height); } *************** public class MetalInternalFrameTitlePane *** 224,249 **** /** A flag indicating whether the title pane uses the palette style. */ protected boolean isPalette; ! ! /** * The icon used for the close button - this is fetched from the look and ! * feel defaults using the key InternalFrame.paletteCloseIcon. */ protected Icon paletteCloseIcon; ! /** ! * The height of the title pane when isPalette is ! * true. This value is fetched from the look and feel defaults * using the key InternalFrame.paletteTitleHeight. */ protected int paletteTitleHeight; ! /** The label used to display the title for the internal frame. */ JLabel title; ! /** * Creates a new title pane for the specified frame. ! * * @param f the internal frame. */ public MetalInternalFrameTitlePane(JInternalFrame f) --- 224,249 ---- /** A flag indicating whether the title pane uses the palette style. */ protected boolean isPalette; ! ! /** * The icon used for the close button - this is fetched from the look and ! * feel defaults using the key InternalFrame.paletteCloseIcon. */ protected Icon paletteCloseIcon; ! /** ! * The height of the title pane when isPalette is ! * true. This value is fetched from the look and feel defaults * using the key InternalFrame.paletteTitleHeight. */ protected int paletteTitleHeight; ! /** The label used to display the title for the internal frame. */ JLabel title; ! /** * Creates a new title pane for the specified frame. ! * * @param f the internal frame. */ public MetalInternalFrameTitlePane(JInternalFrame f) *************** public class MetalInternalFrameTitlePane *** 251,257 **** super(f); isPalette = false; } ! /** * Fetches the colors used in the title pane. */ --- 251,257 ---- super(f); isPalette = false; } ! /** * Fetches the colors used in the title pane. */ *************** public class MetalInternalFrameTitlePane *** 262,282 **** selectedTitleColor = MetalLookAndFeel.getWindowTitleBackground(); notSelectedTextColor = MetalLookAndFeel.getInactiveControlTextColor(); notSelectedTitleColor = MetalLookAndFeel.getWindowTitleInactiveBackground(); ! paletteTitleHeight = UIManager.getInt("InternalFrame.paletteTitleHeight"); paletteCloseIcon = UIManager.getIcon("InternalFrame.paletteCloseIcon"); minIcon = MetalIconFactory.getInternalFrameAltMaximizeIcon(16); ! title = new JLabel(frame.getTitle(), ! MetalIconFactory.getInternalFrameDefaultMenuIcon(), SwingConstants.LEFT); } ! /** * Clears the colors used for the title pane. */ protected void uninstallDefaults() ! { super.uninstallDefaults(); selectedTextColor = null; selectedTitleColor = null; --- 262,282 ---- selectedTitleColor = MetalLookAndFeel.getWindowTitleBackground(); notSelectedTextColor = MetalLookAndFeel.getInactiveControlTextColor(); notSelectedTitleColor = MetalLookAndFeel.getWindowTitleInactiveBackground(); ! paletteTitleHeight = UIManager.getInt("InternalFrame.paletteTitleHeight"); paletteCloseIcon = UIManager.getIcon("InternalFrame.paletteCloseIcon"); minIcon = MetalIconFactory.getInternalFrameAltMaximizeIcon(16); ! title = new JLabel(frame.getTitle(), ! MetalIconFactory.getInternalFrameDefaultMenuIcon(), SwingConstants.LEFT); } ! /** * Clears the colors used for the title pane. */ protected void uninstallDefaults() ! { super.uninstallDefaults(); selectedTextColor = null; selectedTitleColor = null; *************** public class MetalInternalFrameTitlePane *** 286,299 **** minIcon = null; title = null; } ! /** * Calls the super class to create the buttons, then calls ! * setBorderPainted(false) and * setContentAreaFilled(false) for each button. */ protected void createButtons() ! { super.createButtons(); closeButton.setBorderPainted(false); closeButton.setContentAreaFilled(false); --- 286,299 ---- minIcon = null; title = null; } ! /** * Calls the super class to create the buttons, then calls ! * setBorderPainted(false) and * setContentAreaFilled(false) for each button. */ protected void createButtons() ! { super.createButtons(); closeButton.setBorderPainted(false); closeButton.setContentAreaFilled(false); *************** public class MetalInternalFrameTitlePane *** 302,308 **** maxButton.setBorderPainted(false); maxButton.setContentAreaFilled(false); } ! /** * Overridden to do nothing. */ --- 302,308 ---- maxButton.setBorderPainted(false); maxButton.setContentAreaFilled(false); } ! /** * Overridden to do nothing. */ *************** public class MetalInternalFrameTitlePane *** 310,330 **** { // do nothing } ! /** * Overridden to do nothing. */ protected void showSystemMenu() { ! // do nothing } ! /** * Adds the sub components of the title pane. */ protected void addSubComponents() { ! // FIXME: this method is probably overridden to only add the required // buttons add(title); add(closeButton); --- 310,330 ---- { // do nothing } ! /** * Overridden to do nothing. */ protected void showSystemMenu() { ! // do nothing } ! /** * Adds the sub components of the title pane. */ protected void addSubComponents() { ! // FIXME: this method is probably overridden to only add the required // buttons add(title); add(closeButton); *************** public class MetalInternalFrameTitlePane *** 335,353 **** /** * Creates a new instance of MetalTitlePaneLayout (not part of * the public API). ! * * @return A new instance of MetalTitlePaneLayout. */ protected LayoutManager createLayout() { return new MetalTitlePaneLayout(); } ! /** * Draws the title pane in the palette style. ! * * @param g the graphics device. ! * * @see #paintComponent(Graphics) */ public void paintPalette(Graphics g) --- 335,353 ---- /** * Creates a new instance of MetalTitlePaneLayout (not part of * the public API). ! * * @return A new instance of MetalTitlePaneLayout. */ protected LayoutManager createLayout() { return new MetalTitlePaneLayout(); } ! /** * Draws the title pane in the palette style. ! * * @param g the graphics device. ! * * @see #paintComponent(Graphics) */ public void paintPalette(Graphics g) *************** public class MetalInternalFrameTitlePane *** 362,383 **** SwingConstants.VERTICAL, "InternalFrame.activeTitleGradient"); } ! MetalUtils.fillMetalPattern(this, g, b.x + 4, b.y + 2, b.width - paletteCloseIcon.getIconWidth() - 13, b.height - 5, ! MetalLookAndFeel.getPrimaryControlHighlight(), MetalLookAndFeel.getBlack()); ! // draw a line separating the title pane from the frame content Dimension d = getSize(); g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawLine(0, d.height - 1, d.width - 1, d.height - 1); ! g.setColor(savedColor); } /** * Paints a representation of the current state of the internal frame. ! * * @param g the graphics device. */ public void paintComponent(Graphics g) --- 362,383 ---- SwingConstants.VERTICAL, "InternalFrame.activeTitleGradient"); } ! MetalUtils.fillMetalPattern(this, g, b.x + 4, b.y + 2, b.width - paletteCloseIcon.getIconWidth() - 13, b.height - 5, ! MetalLookAndFeel.getPrimaryControlHighlight(), MetalLookAndFeel.getBlack()); ! // draw a line separating the title pane from the frame content Dimension d = getSize(); g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawLine(0, d.height - 1, d.width - 1, d.height - 1); ! g.setColor(savedColor); } /** * Paints a representation of the current state of the internal frame. ! * * @param g the graphics device. */ public void paintComponent(Graphics g) *************** public class MetalInternalFrameTitlePane *** 394,406 **** g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // put a dot in each of the top corners g.drawLine(0, 0, 0, 0); g.drawLine(d.width - 1, 0, d.width - 1, 0); ! g.drawLine(0, d.height - 1, d.width - 1, d.height - 1); ! // draw the metal pattern if (UIManager.get("InternalFrame.activeTitleGradient") != null && frame.isSelected()) --- 394,406 ---- g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // put a dot in each of the top corners g.drawLine(0, 0, 0, 0); g.drawLine(d.width - 1, 0, d.width - 1, 0); ! g.drawLine(0, d.height - 1, d.width - 1, d.height - 1); ! // draw the metal pattern if (UIManager.get("InternalFrame.activeTitleGradient") != null && frame.isSelected()) *************** public class MetalInternalFrameTitlePane *** 415,436 **** int endX = startX; if (iconButton.isVisible()) endX = Math.max(iconButton.getX(), endX); ! else if (maxButton.isVisible()) endX = Math.max(maxButton.getX(), endX); else if (closeButton.isVisible()) endX = Math.max(closeButton.getX(), endX); endX -= 7; if (endX > startX) ! MetalUtils.fillMetalPattern(this, g, startX, 3, endX - startX, getHeight() - 6, Color.white, Color.gray); } g.setColor(savedColor); } ! /** ! * Sets the flag that controls whether the title pane is drawn in the * palette style or the regular style. ! * * @param b the new value of the flag. */ public void setPalette(boolean b) --- 415,436 ---- int endX = startX; if (iconButton.isVisible()) endX = Math.max(iconButton.getX(), endX); ! else if (maxButton.isVisible()) endX = Math.max(maxButton.getX(), endX); else if (closeButton.isVisible()) endX = Math.max(closeButton.getX(), endX); endX -= 7; if (endX > startX) ! MetalUtils.fillMetalPattern(this, g, startX, 3, endX - startX, getHeight() - 6, Color.white, Color.gray); } g.setColor(savedColor); } ! /** ! * Sets the flag that controls whether the title pane is drawn in the * palette style or the regular style. ! * * @param b the new value of the flag. */ public void setPalette(boolean b) *************** public class MetalInternalFrameTitlePane *** 444,458 **** else closeButton.setIcon(closeIcon); } ! /** * Creates and returns a property change handler for the title pane. ! * * @return The property change handler. */ protected PropertyChangeListener createPropertyChangeListener() { ! return new MetalInternalFrameTitlePanePropertyChangeHandler(); } } - --- 444,457 ---- else closeButton.setIcon(closeIcon); } ! /** * Creates and returns a property change handler for the title pane. ! * * @return The property change handler. */ protected PropertyChangeListener createPropertyChangeListener() { ! return new MetalInternalFrameTitlePanePropertyChangeHandler(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalInternalFrameUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalInternalFrameUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalInternalFrameUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalInternalFrameUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicInter *** 54,69 **** public class MetalInternalFrameUI extends BasicInternalFrameUI { ! /** ! * The key (JInternalFrame.isPalette) for the client property ! * that controls whether the internal frame is displayed using the palette ! * style. */ protected static String IS_PALETTE = "JInternalFrame.isPalette"; /** * Constructs a new instance of MetalInternalFrameUI. ! * * @param frame the frame. */ public MetalInternalFrameUI(JInternalFrame frame) --- 54,69 ---- public class MetalInternalFrameUI extends BasicInternalFrameUI { ! /** ! * The key (JInternalFrame.isPalette) for the client property ! * that controls whether the internal frame is displayed using the palette ! * style. */ protected static String IS_PALETTE = "JInternalFrame.isPalette"; /** * Constructs a new instance of MetalInternalFrameUI. ! * * @param frame the frame. */ public MetalInternalFrameUI(JInternalFrame frame) *************** public class MetalInternalFrameUI *** 82,91 **** { return new MetalInternalFrameUI((JInternalFrame) component); } ! /** * Sets the fields and properties for the component. ! * * @param c the component. */ public void installUI(JComponent c) --- 82,91 ---- { return new MetalInternalFrameUI((JInternalFrame) component); } ! /** * Sets the fields and properties for the component. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MetalInternalFrameUI *** 101,123 **** /** * Creates and returns the component that will be used for the north pane ! * of the {@link JInternalFrame}. ! * * @param w the internal frame. ! * * @return A new instance of {@link MetalInternalFrameTitlePane}. */ protected JComponent createNorthPane(JInternalFrame w) { titlePane = new MetalInternalFrameTitlePane(w); ! return titlePane; } ! /** * Sets the state of the {@link JInternalFrame} to reflect whether or not * it is using the palette style. When a frame is displayed as a palette, * it uses a different border and the title pane is drawn differently. ! * * @param isPalette use the palette style? */ public void setPalette(boolean isPalette) --- 101,123 ---- /** * Creates and returns the component that will be used for the north pane ! * of the {@link JInternalFrame}. ! * * @param w the internal frame. ! * * @return A new instance of {@link MetalInternalFrameTitlePane}. */ protected JComponent createNorthPane(JInternalFrame w) { titlePane = new MetalInternalFrameTitlePane(w); ! return titlePane; } ! /** * Sets the state of the {@link JInternalFrame} to reflect whether or not * it is using the palette style. When a frame is displayed as a palette, * it uses a different border and the title pane is drawn differently. ! * * @param isPalette use the palette style? */ public void setPalette(boolean isPalette) *************** public class MetalInternalFrameUI *** 129,145 **** else frame.setBorder(new MetalBorders.InternalFrameBorder()); } ! /** A listener that is used to handle IS_PALETTE property changes. */ private PropertyChangeListener paletteListener; ! /** * Adds the required listeners. */ protected void installListeners() { ! super.installListeners(); ! paletteListener = new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { --- 129,145 ---- else frame.setBorder(new MetalBorders.InternalFrameBorder()); } ! /** A listener that is used to handle IS_PALETTE property changes. */ private PropertyChangeListener paletteListener; ! /** * Adds the required listeners. */ protected void installListeners() { ! super.installListeners(); ! paletteListener = new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { *************** public class MetalInternalFrameUI *** 154,160 **** }; frame.addPropertyChangeListener(paletteListener); } ! /** * Removes the listeners used. */ --- 154,160 ---- }; frame.addPropertyChangeListener(paletteListener); } ! /** * Removes the listeners used. */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalLabelUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalLabelUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalLabelUI.java Fri Nov 18 00:59:33 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalLabelUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalLabelUI *** 79,90 **** metalLabelUI = new MetalLabelUI(); return metalLabelUI; } ! /** ! * Draws the text for a disabled label, using the color defined in the * {@link UIManager} defaults with the key * Label.disabledForeground. ! * * @param l the label. * @param g the graphics device. * @param s the label text. --- 79,90 ---- metalLabelUI = new MetalLabelUI(); return metalLabelUI; } ! /** ! * Draws the text for a disabled label, using the color defined in the * {@link UIManager} defaults with the key * Label.disabledForeground. ! * * @param l the label. * @param g the graphics device. * @param s the label text. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicLookA *** 56,62 **** /** * A custom look and feel that is designed to look similar across different ! * operating systems. To install this look and feel, add the following code * (or something similar) near the start of your application:

                                            *
                                               * try
                                            --- 56,62 ----
                                              
                                              /**
                                               * A custom look and feel that is designed to look similar across different
                                            !  * operating systems.  To install this look and feel, add the following code
                                               * (or something similar) near the start of your application:

                                            *
                                               * try
                                            *************** import javax.swing.plaf.basic.BasicLookA
                                            *** 69,80 ****
                                               * }
                                            */ public class MetalLookAndFeel extends BasicLookAndFeel ! { private static final long serialVersionUID = 6680646159193457980L; ! /** The current theme. */ private static MetalTheme theme; ! /** * Creates a new instance of the Metal look and feel. */ --- 69,80 ---- * }
                                            */ public class MetalLookAndFeel extends BasicLookAndFeel ! { private static final long serialVersionUID = 6680646159193457980L; ! /** The current theme. */ private static MetalTheme theme; ! /** * Creates a new instance of the Metal look and feel. */ *************** public class MetalLookAndFeel extends Ba *** 95,101 **** * Returns false to indicate that this look and feel does not * attempt to emulate the look and feel of native applications on the host * platform. ! * * @return false. */ public boolean isNativeLookAndFeel() --- 95,101 ---- * Returns false to indicate that this look and feel does not * attempt to emulate the look and feel of native applications on the host * platform. ! * * @return false. */ public boolean isNativeLookAndFeel() *************** public class MetalLookAndFeel extends Ba *** 106,112 **** /** * Returns true to indicate that this look and feel is supported * on all platforms. ! * * @return true. */ public boolean isSupportedLookAndFeel() --- 106,112 ---- /** * Returns true to indicate that this look and feel is supported * on all platforms. ! * * @return true. */ public boolean isSupportedLookAndFeel() *************** public class MetalLookAndFeel extends Ba *** 117,123 **** /** * Returns a string describing the look and feel. In this case, the method * returns "Metal look and feel". ! * * @return A string describing the look and feel. */ public String getDescription() --- 117,123 ---- /** * Returns a string describing the look and feel. In this case, the method * returns "Metal look and feel". ! * * @return A string describing the look and feel. */ public String getDescription() *************** public class MetalLookAndFeel extends Ba *** 127,133 **** /** * Returns the look and feel identifier. ! * * @return "MetalLookAndFeel". */ public String getID() --- 127,133 ---- /** * Returns the look and feel identifier. ! * * @return "MetalLookAndFeel". */ public String getID() *************** public class MetalLookAndFeel extends Ba *** 137,143 **** /** * Returns the look and feel name. ! * * @return "MetalLookAndFeel". */ public String getName() --- 137,143 ---- /** * Returns the look and feel name. ! * * @return "MetalLookAndFeel". */ public String getName() *************** public class MetalLookAndFeel extends Ba *** 156,162 **** /** * Returns the accelerator foreground color from the installed theme. ! * * @return The accelerator foreground color. */ public static ColorUIResource getAcceleratorForeground() --- 156,162 ---- /** * Returns the accelerator foreground color from the installed theme. ! * * @return The accelerator foreground color. */ public static ColorUIResource getAcceleratorForeground() *************** public class MetalLookAndFeel extends Ba *** 167,175 **** } /** ! * Returns the accelerator selected foreground color from the installed * theme. ! * * @return The accelerator selected foreground color. */ public static ColorUIResource getAcceleratorSelectedForeground() --- 167,175 ---- } /** ! * Returns the accelerator selected foreground color from the installed * theme. ! * * @return The accelerator selected foreground color. */ public static ColorUIResource getAcceleratorSelectedForeground() *************** public class MetalLookAndFeel extends Ba *** 181,187 **** /** * Returns the color black from the installed theme. ! * * @return The color black. */ public static ColorUIResource getBlack() --- 181,187 ---- /** * Returns the color black from the installed theme. ! * * @return The color black. */ public static ColorUIResource getBlack() *************** public class MetalLookAndFeel extends Ba *** 193,199 **** /** * Returns the control color from the installed theme. ! * * @return The control color. */ public static ColorUIResource getControl() --- 193,199 ---- /** * Returns the control color from the installed theme. ! * * @return The control color. */ public static ColorUIResource getControl() *************** public class MetalLookAndFeel extends Ba *** 206,212 **** /** * Returns the color used for dark shadows on controls, from the installed * theme. ! * * @return The color used for dark shadows on controls. */ public static ColorUIResource getControlDarkShadow() --- 206,212 ---- /** * Returns the color used for dark shadows on controls, from the installed * theme. ! * * @return The color used for dark shadows on controls. */ public static ColorUIResource getControlDarkShadow() *************** public class MetalLookAndFeel extends Ba *** 218,224 **** /** * Returns the color used for disabled controls, from the installed theme. ! * * @return The color used for disabled controls. */ public static ColorUIResource getControlDisabled() --- 218,224 ---- /** * Returns the color used for disabled controls, from the installed theme. ! * * @return The color used for disabled controls. */ public static ColorUIResource getControlDisabled() *************** public class MetalLookAndFeel extends Ba *** 231,237 **** /** * Returns the color used to draw highlights for controls, from the installed * theme. ! * * @return The color used to draw highlights for controls. */ public static ColorUIResource getControlHighlight() --- 231,237 ---- /** * Returns the color used to draw highlights for controls, from the installed * theme. ! * * @return The color used to draw highlights for controls. */ public static ColorUIResource getControlHighlight() *************** public class MetalLookAndFeel extends Ba *** 242,250 **** } /** ! * Returns the color used to display control info, from the installed * theme. ! * * @return The color used to display control info. */ public static ColorUIResource getControlInfo() --- 242,250 ---- } /** ! * Returns the color used to display control info, from the installed * theme. ! * * @return The color used to display control info. */ public static ColorUIResource getControlInfo() *************** public class MetalLookAndFeel extends Ba *** 257,263 **** /** * Returns the color used to draw shadows for controls, from the installed * theme. ! * * @return The color used to draw shadows for controls. */ public static ColorUIResource getControlShadow() --- 257,263 ---- /** * Returns the color used to draw shadows for controls, from the installed * theme. ! * * @return The color used to draw shadows for controls. */ public static ColorUIResource getControlShadow() *************** public class MetalLookAndFeel extends Ba *** 269,275 **** /** * Returns the color used for text on controls, from the installed theme. ! * * @return The color used for text on controls. */ public static ColorUIResource getControlTextColor() --- 269,275 ---- /** * Returns the color used for text on controls, from the installed theme. ! * * @return The color used for text on controls. */ public static ColorUIResource getControlTextColor() *************** public class MetalLookAndFeel extends Ba *** 281,287 **** /** * Returns the font used for text on controls, from the installed theme. ! * * @return The font used for text on controls. */ public static FontUIResource getControlTextFont() --- 281,287 ---- /** * Returns the font used for text on controls, from the installed theme. ! * * @return The font used for text on controls. */ public static FontUIResource getControlTextFont() *************** public class MetalLookAndFeel extends Ba *** 292,300 **** } /** ! * Returns the color used for the desktop background, from the installed * theme. ! * * @return The color used for the desktop background. */ public static ColorUIResource getDesktopColor() --- 292,300 ---- } /** ! * Returns the color used for the desktop background, from the installed * theme. ! * * @return The color used for the desktop background. */ public static ColorUIResource getDesktopColor() *************** public class MetalLookAndFeel extends Ba *** 305,313 **** } /** ! * Returns the color used to draw focus highlights, from the installed * theme. ! * * @return The color used to draw focus highlights. */ public static ColorUIResource getFocusColor() --- 305,313 ---- } /** ! * Returns the color used to draw focus highlights, from the installed * theme. ! * * @return The color used to draw focus highlights. */ public static ColorUIResource getFocusColor() *************** public class MetalLookAndFeel extends Ba *** 320,326 **** /** * Returns the color used to draw highlighted text, from the installed * theme. ! * * @return The color used to draw highlighted text. */ public static ColorUIResource getHighlightedTextColor() --- 320,326 ---- /** * Returns the color used to draw highlighted text, from the installed * theme. ! * * @return The color used to draw highlighted text. */ public static ColorUIResource getHighlightedTextColor() *************** public class MetalLookAndFeel extends Ba *** 333,339 **** /** * Returns the color used to draw text on inactive controls, from the * installed theme. ! * * @return The color used to draw text on inactive controls. */ public static ColorUIResource getInactiveControlTextColor() --- 333,339 ---- /** * Returns the color used to draw text on inactive controls, from the * installed theme. ! * * @return The color used to draw text on inactive controls. */ public static ColorUIResource getInactiveControlTextColor() *************** public class MetalLookAndFeel extends Ba *** 346,352 **** /** * Returns the color used to draw inactive system text, from the installed * theme. ! * * @return The color used to draw inactive system text. */ public static ColorUIResource getInactiveSystemTextColor() --- 346,352 ---- /** * Returns the color used to draw inactive system text, from the installed * theme. ! * * @return The color used to draw inactive system text. */ public static ColorUIResource getInactiveSystemTextColor() *************** public class MetalLookAndFeel extends Ba *** 358,366 **** /** * Returns the background color for menu items, from the installed theme. ! * * @return The background color for menu items. ! * * @see #getMenuSelectedBackground() */ public static ColorUIResource getMenuBackground() --- 358,366 ---- /** * Returns the background color for menu items, from the installed theme. ! * * @return The background color for menu items. ! * * @see #getMenuSelectedBackground() */ public static ColorUIResource getMenuBackground() *************** public class MetalLookAndFeel extends Ba *** 373,381 **** /** * Returns the foreground color for disabled menu items, from the installed * theme. ! * * @return The foreground color for disabled menu items. ! * * @see #getMenuForeground() */ public static ColorUIResource getMenuDisabledForeground() --- 373,381 ---- /** * Returns the foreground color for disabled menu items, from the installed * theme. ! * * @return The foreground color for disabled menu items. ! * * @see #getMenuForeground() */ public static ColorUIResource getMenuDisabledForeground() *************** public class MetalLookAndFeel extends Ba *** 387,395 **** /** * Returns the foreground color for menu items, from the installed theme. ! * * @return The foreground color for menu items. ! * * @see #getMenuDisabledForeground() * @see #getMenuSelectedForeground() */ --- 387,395 ---- /** * Returns the foreground color for menu items, from the installed theme. ! * * @return The foreground color for menu items. ! * * @see #getMenuDisabledForeground() * @see #getMenuSelectedForeground() */ *************** public class MetalLookAndFeel extends Ba *** 403,411 **** /** * Returns the background color for selected menu items, from the installed * theme. ! * * @return The background color for selected menu items. ! * * @see #getMenuBackground() */ public static ColorUIResource getMenuSelectedBackground() --- 403,411 ---- /** * Returns the background color for selected menu items, from the installed * theme. ! * * @return The background color for selected menu items. ! * * @see #getMenuBackground() */ public static ColorUIResource getMenuSelectedBackground() *************** public class MetalLookAndFeel extends Ba *** 418,426 **** /** * Returns the foreground color for selected menu items, from the installed * theme. ! * * @return The foreground color for selected menu items. ! * * @see #getMenuForeground() */ public static ColorUIResource getMenuSelectedForeground() --- 418,426 ---- /** * Returns the foreground color for selected menu items, from the installed * theme. ! * * @return The foreground color for selected menu items. ! * * @see #getMenuForeground() */ public static ColorUIResource getMenuSelectedForeground() *************** public class MetalLookAndFeel extends Ba *** 432,438 **** /** * Returns the font used for text in menus, from the installed theme. ! * * @return The font used for text in menus. */ public static FontUIResource getMenuTextFont() --- 432,438 ---- /** * Returns the font used for text in menus, from the installed theme. ! * * @return The font used for text in menus. */ public static FontUIResource getMenuTextFont() *************** public class MetalLookAndFeel extends Ba *** 444,450 **** /** * Returns the primary color for controls, from the installed theme. ! * * @return The primary color for controls. */ public static ColorUIResource getPrimaryControl() --- 444,450 ---- /** * Returns the primary color for controls, from the installed theme. ! * * @return The primary color for controls. */ public static ColorUIResource getPrimaryControl() *************** public class MetalLookAndFeel extends Ba *** 455,463 **** } /** ! * Returns the primary color for the dark shadow on controls, from the * installed theme. ! * * @return The primary color for the dark shadow on controls. */ public static ColorUIResource getPrimaryControlDarkShadow() --- 455,463 ---- } /** ! * Returns the primary color for the dark shadow on controls, from the * installed theme. ! * * @return The primary color for the dark shadow on controls. */ public static ColorUIResource getPrimaryControlDarkShadow() *************** public class MetalLookAndFeel extends Ba *** 468,476 **** } /** ! * Returns the primary color for the highlight on controls, from the * installed theme. ! * * @return The primary color for the highlight on controls. */ public static ColorUIResource getPrimaryControlHighlight() --- 468,476 ---- } /** ! * Returns the primary color for the highlight on controls, from the * installed theme. ! * * @return The primary color for the highlight on controls. */ public static ColorUIResource getPrimaryControlHighlight() *************** public class MetalLookAndFeel extends Ba *** 481,489 **** } /** ! * Returns the primary color for the information on controls, from the * installed theme. ! * * @return The primary color for the information on controls. */ public static ColorUIResource getPrimaryControlInfo() --- 481,489 ---- } /** ! * Returns the primary color for the information on controls, from the * installed theme. ! * * @return The primary color for the information on controls. */ public static ColorUIResource getPrimaryControlInfo() *************** public class MetalLookAndFeel extends Ba *** 496,502 **** /** * Returns the primary color for the shadow on controls, from the installed * theme. ! * * @return The primary color for the shadow on controls. */ public static ColorUIResource getPrimaryControlShadow() --- 496,502 ---- /** * Returns the primary color for the shadow on controls, from the installed * theme. ! * * @return The primary color for the shadow on controls. */ public static ColorUIResource getPrimaryControlShadow() *************** public class MetalLookAndFeel extends Ba *** 508,514 **** /** * Returns the background color for separators, from the installed theme. ! * * @return The background color for separators. */ public static ColorUIResource getSeparatorBackground() --- 508,514 ---- /** * Returns the background color for separators, from the installed theme. ! * * @return The background color for separators. */ public static ColorUIResource getSeparatorBackground() *************** public class MetalLookAndFeel extends Ba *** 520,526 **** /** * Returns the foreground color for separators, from the installed theme. ! * * @return The foreground color for separators. */ public static ColorUIResource getSeparatorForeground() --- 520,526 ---- /** * Returns the foreground color for separators, from the installed theme. ! * * @return The foreground color for separators. */ public static ColorUIResource getSeparatorForeground() *************** public class MetalLookAndFeel extends Ba *** 532,538 **** /** * Returns the font used for sub text, from the installed theme. ! * * @return The font used for sub text. */ public static FontUIResource getSubTextFont() --- 532,538 ---- /** * Returns the font used for sub text, from the installed theme. ! * * @return The font used for sub text. */ public static FontUIResource getSubTextFont() *************** public class MetalLookAndFeel extends Ba *** 544,550 **** /** * Returns the color used for system text, from the installed theme. ! * * @return The color used for system text. */ public static ColorUIResource getSystemTextColor() --- 544,550 ---- /** * Returns the color used for system text, from the installed theme. ! * * @return The color used for system text. */ public static ColorUIResource getSystemTextColor() *************** public class MetalLookAndFeel extends Ba *** 556,562 **** /** * Returns the font used for system text, from the installed theme. ! * * @return The font used for system text. */ public static FontUIResource getSystemTextFont() --- 556,562 ---- /** * Returns the font used for system text, from the installed theme. ! * * @return The font used for system text. */ public static FontUIResource getSystemTextFont() *************** public class MetalLookAndFeel extends Ba *** 568,574 **** /** * Returns the color used to highlight text, from the installed theme. ! * * @return The color used to highlight text. */ public static ColorUIResource getTextHighlightColor() --- 568,574 ---- /** * Returns the color used to highlight text, from the installed theme. ! * * @return The color used to highlight text. */ public static ColorUIResource getTextHighlightColor() *************** public class MetalLookAndFeel extends Ba *** 580,586 **** /** * Returns the color used to display user text, from the installed theme. ! * * @return The color used to display user text. */ public static ColorUIResource getUserTextColor() --- 580,586 ---- /** * Returns the color used to display user text, from the installed theme. ! * * @return The color used to display user text. */ public static ColorUIResource getUserTextColor() *************** public class MetalLookAndFeel extends Ba *** 592,598 **** /** * Returns the font used for user text, obtained from the current theme. ! * * @return The font used for user text. */ public static FontUIResource getUserTextFont() --- 592,598 ---- /** * Returns the font used for user text, obtained from the current theme. ! * * @return The font used for user text. */ public static FontUIResource getUserTextFont() *************** public class MetalLookAndFeel extends Ba *** 604,610 **** /** * Returns the color used for white, from the installed theme. ! * * @return The color used for white. */ public static ColorUIResource getWhite() --- 604,610 ---- /** * Returns the color used for white, from the installed theme. ! * * @return The color used for white. */ public static ColorUIResource getWhite() *************** public class MetalLookAndFeel extends Ba *** 616,622 **** /** * Returns the window background color, from the installed theme. ! * * @return The window background color. */ public static ColorUIResource getWindowBackground() --- 616,622 ---- /** * Returns the window background color, from the installed theme. ! * * @return The window background color. */ public static ColorUIResource getWindowBackground() *************** public class MetalLookAndFeel extends Ba *** 628,634 **** /** * Returns the window title background color, from the installed theme. ! * * @return The window title background color. */ public static ColorUIResource getWindowTitleBackground() --- 628,634 ---- /** * Returns the window title background color, from the installed theme. ! * * @return The window title background color. */ public static ColorUIResource getWindowTitleBackground() *************** public class MetalLookAndFeel extends Ba *** 640,648 **** /** * Returns the window title font from the current theme. ! * * @return The window title font. ! * * @see MetalTheme */ public static FontUIResource getWindowTitleFont() --- 640,648 ---- /** * Returns the window title font from the current theme. ! * * @return The window title font. ! * * @see MetalTheme */ public static FontUIResource getWindowTitleFont() *************** public class MetalLookAndFeel extends Ba *** 654,660 **** /** * Returns the window title foreground color, from the installed theme. ! * * @return The window title foreground color. */ public static ColorUIResource getWindowTitleForeground() --- 654,660 ---- /** * Returns the window title foreground color, from the installed theme. ! * * @return The window title foreground color. */ public static ColorUIResource getWindowTitleForeground() *************** public class MetalLookAndFeel extends Ba *** 665,673 **** } /** ! * Returns the background color for an inactive window title, from the * installed theme. ! * * @return The background color for an inactive window title. */ public static ColorUIResource getWindowTitleInactiveBackground() --- 665,673 ---- } /** ! * Returns the background color for an inactive window title, from the * installed theme. ! * * @return The background color for an inactive window title. */ public static ColorUIResource getWindowTitleInactiveBackground() *************** public class MetalLookAndFeel extends Ba *** 678,686 **** } /** ! * Returns the foreground color for an inactive window title, from the * installed theme. ! * * @return The foreground color for an inactive window title. */ public static ColorUIResource getWindowTitleInactiveForeground() --- 678,686 ---- } /** ! * Returns the foreground color for an inactive window title, from the * installed theme. ! * * @return The foreground color for an inactive window title. */ public static ColorUIResource getWindowTitleInactiveForeground() *************** public class MetalLookAndFeel extends Ba *** 691,707 **** } /** ! * Sets the current theme for the look and feel. Note that the theme must be ! * set before the look and feel is installed. To change the theme ! * for an already running application that is using the ! * {@link MetalLookAndFeel}, first set the theme with this method, then ! * create a new instance of {@link MetalLookAndFeel} and install it in the * usual way (see {@link UIManager#setLookAndFeel(LookAndFeel)}). ! * * @param theme the theme (null not permitted). ! * * @throws NullPointerException if theme is null. ! * * @see #getCurrentTheme() */ public static void setCurrentTheme(MetalTheme theme) --- 691,707 ---- } /** ! * Sets the current theme for the look and feel. Note that the theme must be ! * set before the look and feel is installed. To change the theme ! * for an already running application that is using the ! * {@link MetalLookAndFeel}, first set the theme with this method, then ! * create a new instance of {@link MetalLookAndFeel} and install it in the * usual way (see {@link UIManager#setLookAndFeel(LookAndFeel)}). ! * * @param theme the theme (null not permitted). ! * * @throws NullPointerException if theme is null. ! * * @see #getCurrentTheme() */ public static void setCurrentTheme(MetalTheme theme) *************** public class MetalLookAndFeel extends Ba *** 934,940 **** "EditorPane.inactiveForeground", getInactiveSystemTextColor(), "EditorPane.selectionBackground", getTextHighlightColor(), "EditorPane.selectionForeground", getHighlightedTextColor(), ! "FormattedTextField.background", getWindowBackground(), "FormattedTextField.border", new BorderUIResource(MetalBorders.getTextFieldBorder()), --- 934,940 ---- "EditorPane.inactiveForeground", getInactiveSystemTextColor(), "EditorPane.selectionBackground", getTextHighlightColor(), "EditorPane.selectionForeground", getHighlightedTextColor(), ! "FormattedTextField.background", getWindowBackground(), "FormattedTextField.border", new BorderUIResource(MetalBorders.getTextFieldBorder()), *************** public class MetalLookAndFeel extends Ba *** 946,960 **** "FormattedTextField.selectionBackground", getTextHighlightColor(), "FormattedTextField.selectionForeground", getHighlightedTextColor(), ! "FileChooser.upFolderIcon", MetalIconFactory.getFileChooserUpFolderIcon(), ! "FileChooser.listViewIcon", MetalIconFactory.getFileChooserListViewIcon(), ! "FileChooser.newFolderIcon", MetalIconFactory.getFileChooserNewFolderIcon(), ! "FileChooser.homeFolderIcon", MetalIconFactory.getFileChooserHomeFolderIcon(), ! "FileChooser.detailsViewIcon", MetalIconFactory.getFileChooserDetailViewIcon(), "FileChooser.fileNameLabelMnemonic", new Integer(78), "FileChooser.filesOfTypeLabelMnemonic", new Integer(84), --- 946,960 ---- "FormattedTextField.selectionBackground", getTextHighlightColor(), "FormattedTextField.selectionForeground", getHighlightedTextColor(), ! "FileChooser.upFolderIcon", MetalIconFactory.getFileChooserUpFolderIcon(), ! "FileChooser.listViewIcon", MetalIconFactory.getFileChooserListViewIcon(), ! "FileChooser.newFolderIcon", MetalIconFactory.getFileChooserNewFolderIcon(), ! "FileChooser.homeFolderIcon", MetalIconFactory.getFileChooserHomeFolderIcon(), ! "FileChooser.detailsViewIcon", MetalIconFactory.getFileChooserDetailViewIcon(), "FileChooser.fileNameLabelMnemonic", new Integer(78), "FileChooser.filesOfTypeLabelMnemonic", new Integer(84), *************** public class MetalLookAndFeel extends Ba *** 974,988 **** "InternalFrame.borderLight", getControlHighlight(), "InternalFrame.borderShadow", getControlShadow(), "InternalFrame.icon", MetalIconFactory.getInternalFrameDefaultMenuIcon(), ! "InternalFrame.closeIcon", MetalIconFactory.getInternalFrameCloseIcon(16), "InternalFrame.closeSound", "sounds/FrameClose.wav", "InternalFrame.inactiveTitleBackground", getWindowTitleInactiveBackground(), "InternalFrame.inactiveTitleForeground", getWindowTitleInactiveForeground(), ! "InternalFrame.maximizeIcon", MetalIconFactory.getInternalFrameMaximizeIcon(16), "InternalFrame.maximizeSound", "sounds/FrameMaximize.wav", ! "InternalFrame.iconifyIcon", MetalIconFactory.getInternalFrameMinimizeIcon(16), "InternalFrame.minimizeSound", "sounds/FrameMinimize.wav", "InternalFrame.paletteBorder", new MetalBorders.PaletteBorder(), --- 974,988 ---- "InternalFrame.borderLight", getControlHighlight(), "InternalFrame.borderShadow", getControlShadow(), "InternalFrame.icon", MetalIconFactory.getInternalFrameDefaultMenuIcon(), ! "InternalFrame.closeIcon", MetalIconFactory.getInternalFrameCloseIcon(16), "InternalFrame.closeSound", "sounds/FrameClose.wav", "InternalFrame.inactiveTitleBackground", getWindowTitleInactiveBackground(), "InternalFrame.inactiveTitleForeground", getWindowTitleInactiveForeground(), ! "InternalFrame.maximizeIcon", MetalIconFactory.getInternalFrameMaximizeIcon(16), "InternalFrame.maximizeSound", "sounds/FrameMaximize.wav", ! "InternalFrame.iconifyIcon", MetalIconFactory.getInternalFrameMinimizeIcon(16), "InternalFrame.minimizeSound", "sounds/FrameMinimize.wav", "InternalFrame.paletteBorder", new MetalBorders.PaletteBorder(), *************** public class MetalLookAndFeel extends Ba *** 1002,1008 **** "List.foreground", getUserTextColor(), "List.selectionBackground", getTextHighlightColor(), "List.selectionForeground", getHighlightedTextColor(), ! "List.focusCellHighlightBorder", new LineBorderUIResource(MetalLookAndFeel.getFocusColor()), "Menu.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 10), --- 1002,1008 ---- "List.foreground", getUserTextColor(), "List.selectionBackground", getTextHighlightColor(), "List.selectionForeground", getHighlightedTextColor(), ! "List.focusCellHighlightBorder", new LineBorderUIResource(MetalLookAndFeel.getFocusColor()), "Menu.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 10), *************** public class MetalLookAndFeel extends Ba *** 1047,1053 **** "OptionPane.informationSound", "sounds/OptionPaneInformation.wav", "OptionPane.questionSound", "sounds/OptionPaneQuestion.wav", "OptionPane.warningSound", "sounds/OptionPaneWarning.wav", ! "OptionPane.errorDialog.border.background", new ColorUIResource(153, 51, 51), "OptionPane.errorDialog.titlePane.background", new ColorUIResource(255, 153, 153), "OptionPane.errorDialog.titlePane.foreground", new ColorUIResource(51, 0, 0), "OptionPane.errorDialog.titlePane.shadow", new ColorUIResource(204, 102, 102), --- 1047,1053 ---- "OptionPane.informationSound", "sounds/OptionPaneInformation.wav", "OptionPane.questionSound", "sounds/OptionPaneQuestion.wav", "OptionPane.warningSound", "sounds/OptionPaneWarning.wav", ! "OptionPane.errorDialog.border.background", new ColorUIResource(153, 51, 51), "OptionPane.errorDialog.titlePane.background", new ColorUIResource(255, 153, 153), "OptionPane.errorDialog.titlePane.foreground", new ColorUIResource(51, 0, 0), "OptionPane.errorDialog.titlePane.shadow", new ColorUIResource(204, 102, 102), *************** public class MetalLookAndFeel extends Ba *** 1114,1129 **** "RadioButtonMenuItem.background", getMenuBackground(), "RadioButtonMenuItem.border", new MetalBorders.MenuItemBorder(), "RadioButtonMenuItem.borderPainted", Boolean.TRUE, ! "RadioButtonMenuItem.checkIcon", MetalIconFactory.getRadioButtonMenuItemIcon(), "RadioButtonMenuItem.commandSound", "sounds/MenuItemCommand.wav", "RadioButtonMenuItem.disabledForeground", getMenuDisabledForeground(), "RadioButtonMenuItem.font", getMenuTextFont(), "RadioButtonMenuItem.foreground", getMenuForeground(), "RadioButtonMenuItem.margin", new InsetsUIResource(2, 2, 2, 2), ! "RadioButtonMenuItem.selectionBackground", MetalLookAndFeel.getMenuSelectedBackground(), ! "RadioButtonMenuItem.selectionForeground", MetalLookAndFeel.getMenuSelectedForeground(), "ScrollBar.allowsAbsolutePositioning", Boolean.TRUE, --- 1114,1129 ---- "RadioButtonMenuItem.background", getMenuBackground(), "RadioButtonMenuItem.border", new MetalBorders.MenuItemBorder(), "RadioButtonMenuItem.borderPainted", Boolean.TRUE, ! "RadioButtonMenuItem.checkIcon", MetalIconFactory.getRadioButtonMenuItemIcon(), "RadioButtonMenuItem.commandSound", "sounds/MenuItemCommand.wav", "RadioButtonMenuItem.disabledForeground", getMenuDisabledForeground(), "RadioButtonMenuItem.font", getMenuTextFont(), "RadioButtonMenuItem.foreground", getMenuForeground(), "RadioButtonMenuItem.margin", new InsetsUIResource(2, 2, 2, 2), ! "RadioButtonMenuItem.selectionBackground", MetalLookAndFeel.getMenuSelectedBackground(), ! "RadioButtonMenuItem.selectionForeground", MetalLookAndFeel.getMenuSelectedForeground(), "ScrollBar.allowsAbsolutePositioning", Boolean.TRUE, *************** public class MetalLookAndFeel extends Ba *** 1154,1165 **** "Slider.focusInsets", new InsetsUIResource(0, 0, 0, 0), "Slider.foreground", getPrimaryControlShadow(), "Slider.highlight", getControlHighlight(), ! "Slider.horizontalThumbIcon", MetalIconFactory.getHorizontalSliderThumbIcon(), "Slider.majorTickLength", new Integer(6), "Slider.shadow", getControlShadow(), "Slider.trackWidth", new Integer(7), ! "Slider.verticalThumbIcon", MetalIconFactory.getVerticalSliderThumbIcon(), "Spinner.arrowButtonInsets", new InsetsUIResource(0, 0, 0, 0), --- 1154,1165 ---- "Slider.focusInsets", new InsetsUIResource(0, 0, 0, 0), "Slider.foreground", getPrimaryControlShadow(), "Slider.highlight", getControlHighlight(), ! "Slider.horizontalThumbIcon", MetalIconFactory.getHorizontalSliderThumbIcon(), "Slider.majorTickLength", new Integer(6), "Slider.shadow", getControlShadow(), "Slider.trackWidth", new Integer(7), ! "Slider.verticalThumbIcon", MetalIconFactory.getVerticalSliderThumbIcon(), "Spinner.arrowButtonInsets", new InsetsUIResource(0, 0, 0, 0), *************** public class MetalLookAndFeel extends Ba *** 1197,1203 **** // new properties in OceanTheme: // TabbedPane.contentAreaColor // TabbedPane.unselectedBackground ! "Table.background", getWindowBackground(), "Table.focusCellBackground", getWindowBackground(), "Table.focusCellForeground", getControlTextColor(), --- 1197,1203 ---- // new properties in OceanTheme: // TabbedPane.contentAreaColor // TabbedPane.unselectedBackground ! "Table.background", getWindowBackground(), "Table.focusCellBackground", getWindowBackground(), "Table.focusCellForeground", getControlTextColor(), *************** public class MetalLookAndFeel extends Ba *** 1235,1241 **** "TextField.selectionBackground", getTextHighlightColor(), "TextField.selectionForeground", getHighlightedTextColor(), "TextField.shadow", getControlShadow(), ! "TextPane.background", getWindowBackground(), "TextPane.caretForeground", getUserTextColor(), "TextPane.font", new FontUIResource("Dialog", Font.PLAIN, 12), --- 1235,1241 ---- "TextField.selectionBackground", getTextHighlightColor(), "TextField.selectionForeground", getHighlightedTextColor(), "TextField.shadow", getControlShadow(), ! "TextPane.background", getWindowBackground(), "TextPane.caretForeground", getUserTextColor(), "TextPane.font", new FontUIResource("Dialog", Font.PLAIN, 12), *************** public class MetalLookAndFeel extends Ba *** 1341,1347 **** * an instance of {@link OceanTheme}. * * @return The current theme (never null). ! * * @see #setCurrentTheme(MetalTheme) */ public static MetalTheme getCurrentTheme() --- 1341,1347 ---- * an instance of {@link OceanTheme}. * * @return The current theme (never null). ! * * @see #setCurrentTheme(MetalTheme) */ public static MetalTheme getCurrentTheme() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalMenuBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalMenuBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalMenuBarUI.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalMenuBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicMenuB *** 49,55 **** /** * A UI implementation for MenuBar in the Metal Look & Feel. ! * * @author Roman Kennke (kennke@aicas.com) * * @since 1.5 --- 49,55 ---- /** * A UI implementation for MenuBar in the Metal Look & Feel. ! * * @author Roman Kennke (kennke@aicas.com) * * @since 1.5 *************** public class MetalMenuBarUI extends Basi *** 84,90 **** { MetalUtils.paintGradient(g, 0, 0, c.getWidth(), height, SwingConstants.VERTICAL, "MenuBar.gradient"); ! paint(g, c); } else --- 84,90 ---- { MetalUtils.paintGradient(g, 0, 0, c.getWidth(), height, SwingConstants.VERTICAL, "MenuBar.gradient"); ! paint(g, c); } else diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalProgressBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalProgressBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalProgressBarUI.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalProgressBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicProgr *** 51,57 **** * A UI delegate for the {@link JProgressBar} component. */ public class MetalProgressBarUI extends BasicProgressBarUI ! { /** * Constructs a new instance of MetalProgressBarUI. */ --- 51,57 ---- * A UI delegate for the {@link JProgressBar} component. */ public class MetalProgressBarUI extends BasicProgressBarUI ! { /** * Constructs a new instance of MetalProgressBarUI. */ *************** public class MetalProgressBarUI extends *** 88,94 **** int w = progressBar.getWidth(); int h = progressBar.getHeight(); int orientation = progressBar.getOrientation(); ! Color shadow = MetalLookAndFeel.getControlShadow(); g.setColor(shadow); --- 88,94 ---- int w = progressBar.getWidth(); int h = progressBar.getHeight(); int orientation = progressBar.getOrientation(); ! Color shadow = MetalLookAndFeel.getControlShadow(); g.setColor(shadow); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalRadioButtonUI *** 60,72 **** /** Used to draw the focus rectangle. */ protected Color focusColor; ! /** Used to fill the icon when the button is pressed. */ protected Color selectColor; ! /** Used to draw disabled text. */ protected Color disabledTextColor; ! /** * Constructs a new instance of MetalRadioButtonUI. */ --- 60,72 ---- /** Used to draw the focus rectangle. */ protected Color focusColor; ! /** Used to fill the icon when the button is pressed. */ protected Color selectColor; ! /** Used to draw disabled text. */ protected Color disabledTextColor; ! /** * Constructs a new instance of MetalRadioButtonUI. */ *************** public class MetalRadioButtonUI *** 86,95 **** { return new MetalRadioButtonUI(); } ! /** * Sets the default values for the specified button. ! * * @param b the button. */ public void installDefaults(AbstractButton b) --- 86,95 ---- { return new MetalRadioButtonUI(); } ! /** * Sets the default values for the specified button. ! * * @param b the button. */ public void installDefaults(AbstractButton b) *************** public class MetalRadioButtonUI *** 100,109 **** focusColor = UIManager.getColor(prefix + "focus"); selectColor = UIManager.getColor(prefix + "select"); } ! /** * Clears any defaults set in the installDefaults() method. ! * * @param b the {@link JRadioButton}. */ protected void uninstallDefaults(AbstractButton b) --- 100,109 ---- focusColor = UIManager.getColor(prefix + "focus"); selectColor = UIManager.getColor(prefix + "select"); } ! /** * Clears any defaults set in the installDefaults() method. ! * * @param b the {@link JRadioButton}. */ protected void uninstallDefaults(AbstractButton b) *************** public class MetalRadioButtonUI *** 113,162 **** focusColor = null; selectColor = null; } ! /** * Returns the color used to fill the {@link JRadioButton}'s icon when the ! * button is pressed. The default color is obtained from the ! * {@link UIManager} defaults via an entry with the key * RadioButton.select. ! * * @return The select color. */ protected Color getSelectColor() { ! return selectColor; } ! /** * Returns the color for the {@link JRadioButton}'s text when the button is * disabled. The default color is obtained from the {@link UIManager} * defaults via an entry with the key RadioButton.disabledText. ! * * @return The disabled text color. */ protected Color getDisabledTextColor() { return disabledTextColor; } ! /** ! * Returns the color used to draw the focus rectangle when the ! * {@link JRadioButton} has the focus. The default color is obtained from ! * the {@link UIManager} defaults via an entry with the key * RadioButton.focus. ! * * @return The color used to draw the focus rectangle. ! * * @see #paintFocus(Graphics, Rectangle, Dimension) */ protected Color getFocusColor() { return focusColor; } ! /** * Paints the {@link JRadioButton}. ! * * @param g the graphics device. * @param c the component (an instance of {@link JRadioButton}). */ --- 113,162 ---- focusColor = null; selectColor = null; } ! /** * Returns the color used to fill the {@link JRadioButton}'s icon when the ! * button is pressed. The default color is obtained from the ! * {@link UIManager} defaults via an entry with the key * RadioButton.select. ! * * @return The select color. */ protected Color getSelectColor() { ! return selectColor; } ! /** * Returns the color for the {@link JRadioButton}'s text when the button is * disabled. The default color is obtained from the {@link UIManager} * defaults via an entry with the key RadioButton.disabledText. ! * * @return The disabled text color. */ protected Color getDisabledTextColor() { return disabledTextColor; } ! /** ! * Returns the color used to draw the focus rectangle when the ! * {@link JRadioButton} has the focus. The default color is obtained from ! * the {@link UIManager} defaults via an entry with the key * RadioButton.focus. ! * * @return The color used to draw the focus rectangle. ! * * @see #paintFocus(Graphics, Rectangle, Dimension) */ protected Color getFocusColor() { return focusColor; } ! /** * Paints the {@link JRadioButton}. ! * * @param g the graphics device. * @param c the component (an instance of {@link JRadioButton}). */ *************** public class MetalRadioButtonUI *** 166,175 **** // FIXME: disabled text isn't being drawn correctly, it's possible that // it could be done here... } ! /** * Paints the focus rectangle for the {@link JRadioButton}. ! * * @param g the graphics device. * @param t the bounding rectangle for the text. * @param d ??? --- 166,175 ---- // FIXME: disabled text isn't being drawn correctly, it's possible that // it could be done here... } ! /** * Paints the focus rectangle for the {@link JRadioButton}. ! * * @param g the graphics device. * @param t the bounding rectangle for the text. * @param d ??? *************** public class MetalRadioButtonUI *** 179,183 **** g.setColor(focusColor); g.drawRect(t.x - 1, t.y - 1, t.width + 1, t.height + 1); } ! } --- 179,183 ---- g.setColor(focusColor); g.drawRect(t.x - 1, t.y - 1, t.width + 1, t.height + 1); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalRootPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalRootPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalRootPaneUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalRootPaneUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicRootP *** 76,83 **** /** * A UI delegate for the {@link JRootPane} component. This implementation ! * supports the JRootPane windowDecorationStyle property. ! * * @author Roman Kennke (kennke@aicas.com) * * @since 1.4 --- 76,83 ---- /** * A UI delegate for the {@link JRootPane} component. This implementation ! * supports the JRootPane windowDecorationStyle property. ! * * @author Roman Kennke (kennke@aicas.com) * * @since 1.4 *************** public class MetalRootPaneUI *** 115,121 **** newInsets.bottom = 5; newInsets.right = 5; } ! return newInsets; } /** --- 115,121 ---- newInsets.bottom = 5; newInsets.right = 5; } ! return newInsets; } /** *************** public class MetalRootPaneUI *** 132,138 **** /** * Paints the border for the specified component. ! * * @param c the component * @param g the graphics device * @param x the x-coordinate --- 132,138 ---- /** * Paints the border for the specified component. ! * * @param c the component * @param g the graphics device * @param x the x-coordinate *************** public class MetalRootPaneUI *** 140,146 **** * @param w the width * @param h the height */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { JRootPane f = (JRootPane) c; --- 140,146 ---- * @param w the width * @param h the height */ ! public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { JRootPane f = (JRootPane) c; *************** public class MetalRootPaneUI *** 149,179 **** g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // Fill the border background. g.fillRect(x, y, w, 5); g.fillRect(x, y, 5, h); g.fillRect(x + w - 5, y, 5, h); g.fillRect(x, y + h - 5, w, 5); ! // Draw a dot in each corner. g.setColor(MetalLookAndFeel.getControl()); g.fillRect(x, y, 1, 1); g.fillRect(x + w - 1, y, 1, 1); g.fillRect(x + w - 1, y + h - 1, 1, 1); g.fillRect(x, y + h - 1, 1, 1); ! // Draw the lines. g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 14, y + 2, x + w - 15, y + 2); g.drawLine(x + 14, y + h - 3, x + w - 15, y + h - 3); g.drawLine(x + 2, y + 14, x + 2, y + h - 15); g.drawLine(x + w - 3, y + 14, x + w - 3, y + h - 15); ! // Draw the line highlights. if (frame.isActive()) g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); ! else g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x + 15, y + 3, x + w - 14, y + 3); g.drawLine(x + 15, y + h - 2, x + w - 14, y + h - 2); --- 149,179 ---- g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // Fill the border background. g.fillRect(x, y, w, 5); g.fillRect(x, y, 5, h); g.fillRect(x + w - 5, y, 5, h); g.fillRect(x, y + h - 5, w, 5); ! // Draw a dot in each corner. g.setColor(MetalLookAndFeel.getControl()); g.fillRect(x, y, 1, 1); g.fillRect(x + w - 1, y, 1, 1); g.fillRect(x + w - 1, y + h - 1, 1, 1); g.fillRect(x, y + h - 1, 1, 1); ! // Draw the lines. g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x + 14, y + 2, x + w - 15, y + 2); g.drawLine(x + 14, y + h - 3, x + w - 15, y + h - 3); g.drawLine(x + 2, y + 14, x + 2, y + h - 15); g.drawLine(x + w - 3, y + 14, x + w - 3, y + h - 15); ! // Draw the line highlights. if (frame.isActive()) g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); ! else g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x + 15, y + 3, x + w - 14, y + 3); g.drawLine(x + 15, y + h - 2, x + w - 14, y + h - 2); *************** public class MetalRootPaneUI *** 248,254 **** { super("Close"); } ! /** * This method is called when something closes the frame. * --- 248,254 ---- { super("Close"); } ! /** * This method is called when something closes the frame. * *************** public class MetalRootPaneUI *** 316,322 **** f.setExtendedState(Frame.ICONIFIED); } } ! } /** --- 316,322 ---- f.setExtendedState(Frame.ICONIFIED); } } ! } /** *************** public class MetalRootPaneUI *** 437,444 **** } Dimension titlePreferredSize = title.getPreferredSize(); ! title.setBounds(insets.left + 5, insets.top, ! Math.min(titlePreferredSize.width, loc - insets.left - 10), height); } --- 437,444 ---- } Dimension titlePreferredSize = title.getPreferredSize(); ! title.setBounds(insets.left + 5, insets.top, ! Math.min(titlePreferredSize.width, loc - insets.left - 10), height); } *************** public class MetalRootPaneUI *** 501,507 **** /** The icon displayed in the close button. */ Icon closeIcon; ! /** * The background color of the TitlePane when the JInternalFrame is not * selected. --- 501,507 ---- /** The icon displayed in the close button. */ Icon closeIcon; ! /** * The background color of the TitlePane when the JInternalFrame is not * selected. *************** public class MetalRootPaneUI *** 653,659 **** /** * Paints a representation of the current state of the internal frame. ! * * @param g the graphics device. */ public void paintComponent(Graphics g) --- 653,659 ---- /** * Paints a representation of the current state of the internal frame. ! * * @param g the graphics device. */ public void paintComponent(Graphics g) *************** public class MetalRootPaneUI *** 667,679 **** g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // put a dot in each of the top corners g.drawLine(0, 0, 0, 0); g.drawLine(d.width - 1, 0, d.width - 1, 0); ! g.drawLine(0, d.height - 1, d.width - 1, d.height - 1); ! // draw the metal pattern if (UIManager.get("InternalFrame.activeTitleGradient") != null && frame.isActive()) --- 667,679 ---- g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); else g.setColor(MetalLookAndFeel.getControlDarkShadow()); ! // put a dot in each of the top corners g.drawLine(0, 0, 0, 0); g.drawLine(d.width - 1, 0, d.width - 1, 0); ! g.drawLine(0, d.height - 1, d.width - 1, d.height - 1); ! // draw the metal pattern if (UIManager.get("InternalFrame.activeTitleGradient") != null && frame.isActive()) *************** public class MetalRootPaneUI *** 688,694 **** int endX = startX; if (iconButton.isVisible()) endX = Math.max(iconButton.getX(), endX); ! else if (maxButton.isVisible()) endX = Math.max(maxButton.getX(), endX); else if (closeButton.isVisible()) endX = Math.max(closeButton.getX(), endX); --- 688,694 ---- int endX = startX; if (iconButton.isVisible()) endX = Math.max(iconButton.getX(), endX); ! else if (maxButton.isVisible()) endX = Math.max(maxButton.getX(), endX); else if (closeButton.isVisible()) endX = Math.max(closeButton.getX(), endX); *************** public class MetalRootPaneUI *** 709,718 **** if (!isOpaque()) return; ! Color saved = g.getColor(); Dimension dims = getSize(); ! Color bg = getBackground(); if (frame.isActive()) bg = selectedTitleColor; --- 709,718 ---- if (!isOpaque()) return; ! Color saved = g.getColor(); Dimension dims = getSize(); ! Color bg = getBackground(); if (frame.isActive()) bg = selectedTitleColor; *************** public class MetalRootPaneUI *** 736,743 **** maxIcon = UIManager.getIcon("InternalFrame.maximizeIcon"); minIcon = MetalIconFactory.getInternalFrameAltMaximizeIcon(16); Frame frame = (Frame) SwingUtilities.getWindowAncestor(rootPane); ! title = new JLabel(frame.getTitle(), ! MetalIconFactory.getInternalFrameDefaultMenuIcon(), SwingConstants.LEFT); } } --- 736,743 ---- maxIcon = UIManager.getIcon("InternalFrame.maximizeIcon"); minIcon = MetalIconFactory.getInternalFrameAltMaximizeIcon(16); Frame frame = (Frame) SwingUtilities.getWindowAncestor(rootPane); ! title = new JLabel(frame.getTitle(), ! MetalIconFactory.getInternalFrameDefaultMenuIcon(), SwingConstants.LEFT); } } *************** public class MetalRootPaneUI *** 770,776 **** * The cached layout info for the title pane. */ private Rectangle titlePaneBounds; ! /** * The cached preferred size. */ --- 770,776 ---- * The cached layout info for the title pane. */ private Rectangle titlePaneBounds; ! /** * The cached preferred size. */ *************** public class MetalRootPaneUI *** 832,838 **** public void removeLayoutComponent(Component component) { // TODO Auto-generated method stub ! } public Dimension preferredLayoutSize(Container parent) --- 832,838 ---- public void removeLayoutComponent(Component component) { // TODO Auto-generated method stub ! } public Dimension preferredLayoutSize(Container parent) *************** public class MetalRootPaneUI *** 894,900 **** // 4. The menuBar is positioned at the upper edge of layeredPane. // 5. The contentPane fills viewable region minus menuBar minus // titlePane, if present. ! // +-------------------------------+ // | JLayeredPane | // | +--------------------------+ | --- 894,900 ---- // 4. The menuBar is positioned at the upper edge of layeredPane. // 5. The contentPane fills viewable region minus menuBar minus // titlePane, if present. ! // +-------------------------------+ // | JLayeredPane | // | +--------------------------+ | *************** public class MetalRootPaneUI *** 952,958 **** contentPane.setBounds(contentPaneBounds); titlePane.setBounds(titlePaneBounds); } ! } /** --- 952,958 ---- contentPane.setBounds(contentPaneBounds); titlePane.setBounds(titlePaneBounds); } ! } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalScrollBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalScrollBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalScrollBarUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalScrollBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicScrol *** 59,88 **** */ public class MetalScrollBarUI extends BasicScrollBarUI { ! /** * A property change handler for the UI delegate that monitors for * changes to the "JScrollBar.isFreeStanding" property, and updates * the buttons and track rendering as appropriate. */ ! class MetalScrollBarPropertyChangeHandler extends BasicScrollBarUI.PropertyChangeHandler { /** * Creates a new handler. ! * * @see #createPropertyChangeListener() */ public MetalScrollBarPropertyChangeHandler() { // Nothing to do here. } ! /** * Handles a property change event. If the event name is ! * JSlider.isFreeStanding, this method updates the * delegate, otherwise the event is passed up to the super class. ! * * @param e the property change event. */ public void propertyChange(PropertyChangeEvent e) --- 59,88 ---- */ public class MetalScrollBarUI extends BasicScrollBarUI { ! /** * A property change handler for the UI delegate that monitors for * changes to the "JScrollBar.isFreeStanding" property, and updates * the buttons and track rendering as appropriate. */ ! class MetalScrollBarPropertyChangeHandler extends BasicScrollBarUI.PropertyChangeHandler { /** * Creates a new handler. ! * * @see #createPropertyChangeListener() */ public MetalScrollBarPropertyChangeHandler() { // Nothing to do here. } ! /** * Handles a property change event. If the event name is ! * JSlider.isFreeStanding, this method updates the * delegate, otherwise the event is passed up to the super class. ! * * @param e the property change event. */ public void propertyChange(PropertyChangeEvent e) *************** public class MetalScrollBarUI extends Ba *** 100,106 **** super.propertyChange(e); } } ! /** The name for the 'free standing' property. */ public static final String FREE_STANDING_PROP = "JScrollBar.isFreeStanding"; --- 100,106 ---- super.propertyChange(e); } } ! /** The name for the 'free standing' property. */ public static final String FREE_STANDING_PROP = "JScrollBar.isFreeStanding"; *************** public class MetalScrollBarUI extends Ba *** 108,141 **** private static final Dimension MIN_THUMB_SIZE = new Dimension(15, 15); /** The minimum thumb size for a scroll bar that is free standing. */ ! private static final Dimension MIN_THUMB_SIZE_FREE_STANDING = new Dimension(17, 17); ! /** The button that increases the value in the scroll bar. */ protected MetalScrollButton increaseButton; ! /** The button that decreases the value in the scroll bar. */ protected MetalScrollButton decreaseButton; ! ! /** ! * The scroll bar width. */ protected int scrollBarWidth; ! ! /** ! * A flag that indicates whether the scroll bar is "free standing", which ! * means it has complete borders and can be used anywhere in the UI. A * scroll bar which is not free standing has borders missing from one * side, and relies on being part of another container with its own borders * to look right visually. */ protected boolean isFreeStanding = true; ! ! /** ! * The color for the scroll bar shadow (this is read from the UIDefaults in * the installDefaults() method). */ Color scrollBarShadowColor; ! /** * Constructs a new instance of MetalScrollBarUI, with no * specific initialisation. --- 108,141 ---- private static final Dimension MIN_THUMB_SIZE = new Dimension(15, 15); /** The minimum thumb size for a scroll bar that is free standing. */ ! private static final Dimension MIN_THUMB_SIZE_FREE_STANDING = new Dimension(17, 17); ! /** The button that increases the value in the scroll bar. */ protected MetalScrollButton increaseButton; ! /** The button that decreases the value in the scroll bar. */ protected MetalScrollButton decreaseButton; ! ! /** ! * The scroll bar width. */ protected int scrollBarWidth; ! ! /** ! * A flag that indicates whether the scroll bar is "free standing", which ! * means it has complete borders and can be used anywhere in the UI. A * scroll bar which is not free standing has borders missing from one * side, and relies on being part of another container with its own borders * to look right visually. */ protected boolean isFreeStanding = true; ! ! /** ! * The color for the scroll bar shadow (this is read from the UIDefaults in * the installDefaults() method). */ Color scrollBarShadowColor; ! /** * Constructs a new instance of MetalScrollBarUI, with no * specific initialisation. *************** public class MetalScrollBarUI extends Ba *** 161,169 **** * Installs the defaults. */ protected void installDefaults() ! { ! // need to initialise isFreeStanding before calling the super class, ! // so that the value is set when createIncreaseButton() and // createDecreaseButton() are called (unless there is somewhere earlier // that we can do this). Boolean prop = (Boolean) scrollbar.getClientProperty(FREE_STANDING_PROP); --- 161,169 ---- * Installs the defaults. */ protected void installDefaults() ! { ! // need to initialise isFreeStanding before calling the super class, ! // so that the value is set when createIncreaseButton() and // createDecreaseButton() are called (unless there is somewhere earlier // that we can do this). Boolean prop = (Boolean) scrollbar.getClientProperty(FREE_STANDING_PROP); *************** public class MetalScrollBarUI extends Ba *** 172,206 **** scrollBarWidth = UIManager.getInt("ScrollBar.width"); super.installDefaults(); } ! /** * Creates a property change listener for the delegate to use. This ! * overrides the method to provide a custom listener for the ! * {@link MetalLookAndFeel} that can handle the * JScrollBar.isFreeStanding property. ! * * @return A property change listener. */ protected PropertyChangeListener createPropertyChangeListener() { return new MetalScrollBarPropertyChangeHandler(); } ! /** * Creates a new button to use as the control at the lower end of the * {@link JScrollBar}. This method assigns the new button (an instance of ! * {@link MetalScrollButton} to the {@link #decreaseButton} field, and also ! * returns the button. The button width is determined by the * ScrollBar.width setting in the UI defaults. ! * * @param orientation the orientation of the button ({@link #NORTH}, * {@link #SOUTH}, {@link #EAST} or {@link #WEST}). ! * * @return The button. */ protected JButton createDecreaseButton(int orientation) { ! decreaseButton = new MetalScrollButton(orientation, scrollBarWidth, isFreeStanding); return decreaseButton; } --- 172,206 ---- scrollBarWidth = UIManager.getInt("ScrollBar.width"); super.installDefaults(); } ! /** * Creates a property change listener for the delegate to use. This ! * overrides the method to provide a custom listener for the ! * {@link MetalLookAndFeel} that can handle the * JScrollBar.isFreeStanding property. ! * * @return A property change listener. */ protected PropertyChangeListener createPropertyChangeListener() { return new MetalScrollBarPropertyChangeHandler(); } ! /** * Creates a new button to use as the control at the lower end of the * {@link JScrollBar}. This method assigns the new button (an instance of ! * {@link MetalScrollButton} to the {@link #decreaseButton} field, and also ! * returns the button. The button width is determined by the * ScrollBar.width setting in the UI defaults. ! * * @param orientation the orientation of the button ({@link #NORTH}, * {@link #SOUTH}, {@link #EAST} or {@link #WEST}). ! * * @return The button. */ protected JButton createDecreaseButton(int orientation) { ! decreaseButton = new MetalScrollButton(orientation, scrollBarWidth, isFreeStanding); return decreaseButton; } *************** public class MetalScrollBarUI extends Ba *** 208,232 **** /** * Creates a new button to use as the control at the upper end of the * {@link JScrollBar}. This method assigns the new button (an instance of ! * {@link MetalScrollButton} to the {@link #increaseButton} field, and also ! * returns the button. The button width is determined by the * ScrollBar.width setting in the UI defaults. ! * * @param orientation the orientation of the button ({@link #NORTH}, * {@link #SOUTH}, {@link #EAST} or {@link #WEST}). ! * * @return The button. */ protected JButton createIncreaseButton(int orientation) { ! increaseButton = new MetalScrollButton(orientation, scrollBarWidth, isFreeStanding); return increaseButton; } ! /** * Paints the track for the scrollbar. ! * * @param g the graphics device. * @param c the component. * @param trackBounds the track bounds. --- 208,232 ---- /** * Creates a new button to use as the control at the upper end of the * {@link JScrollBar}. This method assigns the new button (an instance of ! * {@link MetalScrollButton} to the {@link #increaseButton} field, and also ! * returns the button. The button width is determined by the * ScrollBar.width setting in the UI defaults. ! * * @param orientation the orientation of the button ({@link #NORTH}, * {@link #SOUTH}, {@link #EAST} or {@link #WEST}). ! * * @return The button. */ protected JButton createIncreaseButton(int orientation) { ! increaseButton = new MetalScrollButton(orientation, scrollBarWidth, isFreeStanding); return increaseButton; } ! /** * Paints the track for the scrollbar. ! * * @param g the graphics device. * @param c the component. * @param trackBounds the track bounds. *************** public class MetalScrollBarUI extends Ba *** 234,253 **** protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { g.setColor(MetalLookAndFeel.getControl()); ! g.fillRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); ! if (scrollbar.getOrientation() == HORIZONTAL) ! paintTrackHorizontal(g, c, trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); ! else ! paintTrackVertical(g, c, trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); ! } ! /** * Paints the track for a horizontal scrollbar. ! * * @param g the graphics device. * @param c the component. * @param x the x-coordinate for the track bounds. --- 234,253 ---- protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { g.setColor(MetalLookAndFeel.getControl()); ! g.fillRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); ! if (scrollbar.getOrientation() == HORIZONTAL) ! paintTrackHorizontal(g, c, trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); ! else ! paintTrackVertical(g, c, trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); ! } ! /** * Paints the track for a horizontal scrollbar. ! * * @param g the graphics device. * @param c the component. * @param x the x-coordinate for the track bounds. *************** public class MetalScrollBarUI extends Ba *** 255,261 **** * @param w the width for the track bounds. * @param h the height for the track bounds. */ ! private void paintTrackHorizontal(Graphics g, JComponent c, int x, int y, int w, int h) { if (c.isEnabled()) --- 255,261 ---- * @param w the width for the track bounds. * @param h the height for the track bounds. */ ! private void paintTrackHorizontal(Graphics g, JComponent c, int x, int y, int w, int h) { if (c.isEnabled()) *************** public class MetalScrollBarUI extends Ba *** 264,275 **** g.drawLine(x, y, x, y + h - 1); g.drawLine(x, y, x + w - 1, y); g.drawLine(x + w - 1, y, x + w - 1, y + h - 1); ! g.setColor(scrollBarShadowColor); g.drawLine(x + 1, y + 1, x + 1, y + h - 1); g.drawLine(x + 1, y + 1, x + w - 2, y + 1); ! ! if (isFreeStanding) { g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawLine(x, y + h - 2, x + w - 1, y + h - 2); --- 264,275 ---- g.drawLine(x, y, x, y + h - 1); g.drawLine(x, y, x + w - 1, y); g.drawLine(x + w - 1, y, x + w - 1, y + h - 1); ! g.setColor(scrollBarShadowColor); g.drawLine(x + 1, y + 1, x + 1, y + h - 1); g.drawLine(x + 1, y + 1, x + w - 2, y + 1); ! ! if (isFreeStanding) { g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawLine(x, y + h - 2, x + w - 1, y + h - 2); *************** public class MetalScrollBarUI extends Ba *** 290,299 **** } } } ! /** * Paints the track for a vertical scrollbar. ! * * @param g the graphics device. * @param c the component. * @param x the x-coordinate for the track bounds. --- 290,299 ---- } } } ! /** * Paints the track for a vertical scrollbar. ! * * @param g the graphics device. * @param c the component. * @param x the x-coordinate for the track bounds. *************** public class MetalScrollBarUI extends Ba *** 301,307 **** * @param w the width for the track bounds. * @param h the height for the track bounds. */ ! private void paintTrackVertical(Graphics g, JComponent c, int x, int y, int w, int h) { if (c.isEnabled()) --- 301,307 ---- * @param w the width for the track bounds. * @param h the height for the track bounds. */ ! private void paintTrackVertical(Graphics g, JComponent c, int x, int y, int w, int h) { if (c.isEnabled()) *************** public class MetalScrollBarUI extends Ba *** 310,321 **** g.drawLine(x, y, x, y + h - 1); g.drawLine(x, y, x + w - 1, y); g.drawLine(x, y + h - 1, x + w - 1, y + h - 1); ! g.setColor(scrollBarShadowColor); g.drawLine(x + 1, y + 1, x + w - 1, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 2); ! ! if (isFreeStanding) { g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawLine(x + w - 2, y, x + w - 2, y + h - 1); --- 310,321 ---- g.drawLine(x, y, x, y + h - 1); g.drawLine(x, y, x + w - 1, y); g.drawLine(x, y + h - 1, x + w - 1, y + h - 1); ! g.setColor(scrollBarShadowColor); g.drawLine(x + 1, y + 1, x + w - 1, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 2); ! ! if (isFreeStanding) { g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawLine(x + w - 2, y, x + w - 2, y + h - 1); *************** public class MetalScrollBarUI extends Ba *** 351,357 **** return; if (scrollbar.getOrientation() == HORIZONTAL) paintThumbHorizontal(g, c, thumbBounds); ! else paintThumbVertical(g, c, thumbBounds); // Draw the pattern when the theme is not Ocean. --- 351,357 ---- return; if (scrollbar.getOrientation() == HORIZONTAL) paintThumbHorizontal(g, c, thumbBounds); ! else paintThumbVertical(g, c, thumbBounds); // Draw the pattern when the theme is not Ocean. *************** public class MetalScrollBarUI extends Ba *** 367,385 **** /** * Paints the thumb for a horizontal scroll bar. ! * * @param g the graphics device. * @param c the scroll bar component. * @param thumbBounds the thumb bounds. */ ! private void paintThumbHorizontal(Graphics g, JComponent c, ! Rectangle thumbBounds) { int x = thumbBounds.x; int y = thumbBounds.y; int w = thumbBounds.width; int h = thumbBounds.height; ! // First we fill the background. MetalTheme theme = MetalLookAndFeel.getCurrentTheme(); if (theme instanceof OceanTheme --- 367,385 ---- /** * Paints the thumb for a horizontal scroll bar. ! * * @param g the graphics device. * @param c the scroll bar component. * @param thumbBounds the thumb bounds. */ ! private void paintThumbHorizontal(Graphics g, JComponent c, ! Rectangle thumbBounds) { int x = thumbBounds.x; int y = thumbBounds.y; int w = thumbBounds.width; int h = thumbBounds.height; ! // First we fill the background. MetalTheme theme = MetalLookAndFeel.getCurrentTheme(); if (theme instanceof OceanTheme *************** public class MetalScrollBarUI extends Ba *** 408,414 **** g.drawLine(x, y, x, y + h - 1); g.drawLine(x + w - 1, y, x + w - 1, y + h - 1); } ! // then the highlight g.setColor(thumbHighlightColor); if (isFreeStanding) --- 408,414 ---- g.drawLine(x, y, x, y + h - 1); g.drawLine(x + w - 1, y, x + w - 1, y + h - 1); } ! // then the highlight g.setColor(thumbHighlightColor); if (isFreeStanding) *************** public class MetalScrollBarUI extends Ba *** 421,427 **** g.drawLine(x + 1, y + 1, x + w - 3, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 1); } ! // draw the shadow line g.setColor(UIManager.getColor("ScrollBar.shadow")); g.drawLine(x + w, y + 1, x + w, y + h - 1); --- 421,427 ---- g.drawLine(x + 1, y + 1, x + w - 3, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 1); } ! // draw the shadow line g.setColor(UIManager.getColor("ScrollBar.shadow")); g.drawLine(x + w, y + 1, x + w, y + h - 1); *************** public class MetalScrollBarUI extends Ba *** 440,461 **** g.drawLine(middle + 3, y + 5, middle + 3, y + h - 4); } } ! /** * Paints the thumb for a vertical scroll bar. ! * * @param g the graphics device. * @param c the scroll bar component. * @param thumbBounds the thumb bounds. */ ! private void paintThumbVertical(Graphics g, JComponent c, Rectangle thumbBounds) { int x = thumbBounds.x; int y = thumbBounds.y; int w = thumbBounds.width; int h = thumbBounds.height; ! // First we fill the background. MetalTheme theme = MetalLookAndFeel.getCurrentTheme(); if (theme instanceof OceanTheme --- 440,461 ---- g.drawLine(middle + 3, y + 5, middle + 3, y + h - 4); } } ! /** * Paints the thumb for a vertical scroll bar. ! * * @param g the graphics device. * @param c the scroll bar component. * @param thumbBounds the thumb bounds. */ ! private void paintThumbVertical(Graphics g, JComponent c, Rectangle thumbBounds) { int x = thumbBounds.x; int y = thumbBounds.y; int w = thumbBounds.width; int h = thumbBounds.height; ! // First we fill the background. MetalTheme theme = MetalLookAndFeel.getCurrentTheme(); if (theme instanceof OceanTheme *************** public class MetalScrollBarUI extends Ba *** 484,490 **** g.drawLine(x, y, x, y + h - 1); g.drawLine(x, y + h - 1, x + w - 1, y + h - 1); } ! // then the highlight g.setColor(thumbHighlightColor); if (isFreeStanding) --- 484,490 ---- g.drawLine(x, y, x, y + h - 1); g.drawLine(x, y + h - 1, x + w - 1, y + h - 1); } ! // then the highlight g.setColor(thumbHighlightColor); if (isFreeStanding) *************** public class MetalScrollBarUI extends Ba *** 497,503 **** g.drawLine(x + 1, y + 1, x + w - 1, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 3); } ! // draw the shadow line g.setColor(UIManager.getColor("ScrollBar.shadow")); g.drawLine(x + 1, y + h, x + w - 2, y + h); --- 497,503 ---- g.drawLine(x + 1, y + 1, x + w - 1, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + h - 3); } ! // draw the shadow line g.setColor(UIManager.getColor("ScrollBar.shadow")); g.drawLine(x + 1, y + h, x + w - 2, y + h); *************** public class MetalScrollBarUI extends Ba *** 516,525 **** g.drawLine(x + 5, middle + 3, x + w - 4, middle + 3); } } ! /** ! * Returns the minimum thumb size. For a free standing scroll bar the ! * minimum size is 17 x 17 pixels, whereas for a non free * standing scroll bar the minimum size is 15 x 15 pixels. * * @return The minimum thumb size. --- 516,525 ---- g.drawLine(x + 5, middle + 3, x + w - 4, middle + 3); } } ! /** ! * Returns the minimum thumb size. For a free standing scroll bar the ! * minimum size is 17 x 17 pixels, whereas for a non free * standing scroll bar the minimum size is 15 x 15 pixels. * * @return The minimum thumb size. *************** public class MetalScrollBarUI extends Ba *** 580,585 **** width += insets.left + insets.right; return new Dimension(width, height); ! } } - --- 580,584 ---- width += insets.left + insets.right; return new Dimension(width, height); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicArrow *** 47,78 **** /** * A button used by the {@link MetalScrollBarUI}. The button appearance ! * varies according to the button direction, whether or not it is part of a ! * "free standing" scroll bar, and the current state of the button. */ ! public class MetalScrollButton extends BasicArrowButton { ! ! /** * The maximum size for buttons. * @see #getMaximumSize() */ ! private static Dimension maximumSize; ! /** The width of the button. */ private int buttonWidth; ! ! /** ! * A flag that indicates whether the button is part of a free standing * scroll bar. This affects how the border is drawn. */ private boolean freeStanding; ! /** * Creates a new button. ! * ! * @param direction the direction (this should be one of {@link #NORTH}, ! * {@link #SOUTH}, {@link #EAST} and {@link #WEST}, but * this is not enforced). * @param width the button width. * @param freeStanding a flag indicating whether the scroll button is free --- 47,78 ---- /** * A button used by the {@link MetalScrollBarUI}. The button appearance ! * varies according to the button direction, whether or not it is part of a ! * "free standing" scroll bar, and the current state of the button. */ ! public class MetalScrollButton extends BasicArrowButton { ! ! /** * The maximum size for buttons. * @see #getMaximumSize() */ ! private static Dimension maximumSize; ! /** The width of the button. */ private int buttonWidth; ! ! /** ! * A flag that indicates whether the button is part of a free standing * scroll bar. This affects how the border is drawn. */ private boolean freeStanding; ! /** * Creates a new button. ! * ! * @param direction the direction (this should be one of {@link #NORTH}, ! * {@link #SOUTH}, {@link #EAST} and {@link #WEST}, but * this is not enforced). * @param width the button width. * @param freeStanding a flag indicating whether the scroll button is free *************** public class MetalScrollButton extends B *** 85,115 **** this.freeStanding = freeStanding; setFocusable(false); } ! /** * Returns the button width. ! * * @return The button width. */ public int getButtonWidth() { ! return buttonWidth; } /** * Sets the free standing flag. This controls how the button border is * drawn. ! * * @param freeStanding the new value of the flag. */ public void setFreeStanding(boolean freeStanding) { this.freeStanding = freeStanding; } ! /** * Paints the button. ! * * @param g the graphics device. */ public void paint(Graphics g) --- 85,115 ---- this.freeStanding = freeStanding; setFocusable(false); } ! /** * Returns the button width. ! * * @return The button width. */ public int getButtonWidth() { ! return buttonWidth; } /** * Sets the free standing flag. This controls how the button border is * drawn. ! * * @param freeStanding the new value of the flag. */ public void setFreeStanding(boolean freeStanding) { this.freeStanding = freeStanding; } ! /** * Paints the button. ! * * @param g the graphics device. */ public void paint(Graphics g) *************** public class MetalScrollButton extends B *** 122,137 **** else g.setColor(MetalLookAndFeel.getControl()); g.fillRect(0, 0, bounds.width, bounds.height); ! paintArrow(g, bounds.width, bounds.height); ! // paint a border manually - I tried using a real (custom) Border ! // but couldn't get it to stay set for the button, something was // overwriting it... ! if (freeStanding) { if (direction == WEST) ! paintWestBorderFreeStanding(g, bounds.width, bounds.height); else if (direction == EAST) paintEastBorderFreeStanding(g, bounds.width, bounds.height); else if (direction == SOUTH) --- 122,137 ---- else g.setColor(MetalLookAndFeel.getControl()); g.fillRect(0, 0, bounds.width, bounds.height); ! paintArrow(g, bounds.width, bounds.height); ! // paint a border manually - I tried using a real (custom) Border ! // but couldn't get it to stay set for the button, something was // overwriting it... ! if (freeStanding) { if (direction == WEST) ! paintWestBorderFreeStanding(g, bounds.width, bounds.height); else if (direction == EAST) paintEastBorderFreeStanding(g, bounds.width, bounds.height); else if (direction == SOUTH) *************** public class MetalScrollButton extends B *** 142,148 **** else { if (direction == WEST) ! paintWestBorder(g, bounds.width, bounds.height); else if (direction == EAST) paintEastBorder(g, bounds.width, bounds.height); else if (direction == SOUTH) --- 142,148 ---- else { if (direction == WEST) ! paintWestBorder(g, bounds.width, bounds.height); else if (direction == EAST) paintEastBorder(g, bounds.width, bounds.height); else if (direction == SOUTH) *************** public class MetalScrollButton extends B *** 151,164 **** paintNorthBorder(g, bounds.width, bounds.height); } } ! private void paintArrow(Graphics g, int w, int h) { if (isEnabled()) g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getControlDisabled()); ! if (direction == SOUTH) { int x = w / 2; --- 151,164 ---- paintNorthBorder(g, bounds.width, bounds.height); } } ! private void paintArrow(Graphics g, int w, int h) { if (isEnabled()) g.setColor(MetalLookAndFeel.getBlack()); else g.setColor(MetalLookAndFeel.getControlDisabled()); ! if (direction == SOUTH) { int x = w / 2; *************** public class MetalScrollButton extends B *** 178,184 **** int x = w / 2 - 3; int y = h / 2; for (int i = 1; i < 5; i++) ! g.drawLine(x + i, y - i, x + i, y + i - 1); } else // assume NORTH { --- 178,184 ---- int x = w / 2 - 3; int y = h / 2; for (int i = 1; i < 5; i++) ! g.drawLine(x + i, y - i, x + i, y + i - 1); } else // assume NORTH { *************** public class MetalScrollButton extends B *** 191,202 **** /** * Paints the border for a button with a {@link #NORTH} direction that * belongs to a free standing scroll bar. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. */ ! private void paintNorthBorderFreeStanding(Graphics g, int w, int h) { if (isEnabled()) { --- 191,202 ---- /** * Paints the border for a button with a {@link #NORTH} direction that * belongs to a free standing scroll bar. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. */ ! private void paintNorthBorderFreeStanding(Graphics g, int w, int h) { if (isEnabled()) { *************** public class MetalScrollButton extends B *** 205,216 **** g.drawLine(0, 0, 0, h - 1); g.drawLine(2, h - 1, w - 2, h - 1); g.drawLine(w - 2, 2, w - 2, h - 1); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 1, 1, h - 2); g.drawLine(1, 1, w - 3, 1); g.drawLine(w - 1, 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(1, h - 1, 1, h - 1); g.drawLine(w - 2, 1, w - 2, 1); --- 205,216 ---- g.drawLine(0, 0, 0, h - 1); g.drawLine(2, h - 1, w - 2, h - 1); g.drawLine(w - 2, 2, w - 2, h - 1); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 1, 1, h - 2); g.drawLine(1, 1, w - 3, 1); g.drawLine(w - 1, 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(1, h - 1, 1, h - 1); g.drawLine(w - 2, 1, w - 2, 1); *************** public class MetalScrollButton extends B *** 223,233 **** g.drawLine(0, 0, 0, h - 1); } } ! /** * Paints the border for a button with a {@link #SOUTH} direction that * belongs to a free standing scroll bar. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. --- 223,233 ---- g.drawLine(0, 0, 0, h - 1); } } ! /** * Paints the border for a button with a {@link #SOUTH} direction that * belongs to a free standing scroll bar. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. *************** public class MetalScrollButton extends B *** 241,252 **** g.drawLine(0, 0, 0, h - 1); g.drawLine(2, h - 1, w - 2, h - 1); g.drawLine(w - 2, 2, w - 2, h - 1); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 1, 1, h - 1); g.drawLine(1, 1, w - 1, 1); g.drawLine(w - 1, 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(1, h - 1, 1, h - 1); g.drawLine(w - 1, 1, w - 1, 1); --- 241,252 ---- g.drawLine(0, 0, 0, h - 1); g.drawLine(2, h - 1, w - 2, h - 1); g.drawLine(w - 2, 2, w - 2, h - 1); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 1, 1, h - 1); g.drawLine(1, 1, w - 1, 1); g.drawLine(w - 1, 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(1, h - 1, 1, h - 1); g.drawLine(w - 1, 1, w - 1, 1); *************** public class MetalScrollButton extends B *** 259,269 **** g.drawLine(0, 0, 0, h - 1); } } ! /** * Paints the border for a button with an {@link #EAST} direction that * belongs to a free standing scroll bar. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. --- 259,269 ---- g.drawLine(0, 0, 0, h - 1); } } ! /** * Paints the border for a button with an {@link #EAST} direction that * belongs to a free standing scroll bar. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. *************** public class MetalScrollButton extends B *** 276,287 **** g.drawLine(0, 0, w - 2, 0); g.drawLine(w - 2, 0, w - 2, h - 2); g.drawLine(0, h - 2, w - 2, h - 2); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(0, 1, w - 1, 1); g.drawLine(w - 1, 1, w - 1, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(w - 2, 1, w - 2, 1); } --- 276,287 ---- g.drawLine(0, 0, w - 2, 0); g.drawLine(w - 2, 0, w - 2, h - 2); g.drawLine(0, h - 2, w - 2, h - 2); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(0, 1, w - 1, 1); g.drawLine(w - 1, 1, w - 1, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(w - 2, 1, w - 2, 1); } *************** public class MetalScrollButton extends B *** 293,303 **** g.drawLine(0, h - 1, w - 1, h - 1); } } ! /** * Paints the border for a button with a {@link #WEST} direction that * belongs to a free standing scroll bar. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. --- 293,303 ---- g.drawLine(0, h - 1, w - 1, h - 1); } } ! /** * Paints the border for a button with a {@link #WEST} direction that * belongs to a free standing scroll bar. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. *************** public class MetalScrollButton extends B *** 310,321 **** g.drawLine(0, 0, w - 1, 0); g.drawLine(0, 0, 0, h - 2); g.drawLine(0, h - 2, w - 1, h - 2); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 1, w - 1, 1); g.drawLine(1, 1, 1, h - 1); g.drawLine(1, h - 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(1, h - 2, 1, h - 2); } --- 310,321 ---- g.drawLine(0, 0, w - 1, 0); g.drawLine(0, 0, 0, h - 2); g.drawLine(0, h - 2, w - 1, h - 2); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 1, w - 1, 1); g.drawLine(1, 1, 1, h - 1); g.drawLine(1, h - 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(1, h - 2, 1, h - 2); } *************** public class MetalScrollButton extends B *** 327,348 **** g.drawLine(0, h - 1, w - 1, h - 1); } } ! /** * Paints the border for a button with a {@link #NORTH} direction that * belongs to a scroll bar that is not free standing. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. */ ! private void paintNorthBorder(Graphics g, int w, int h) { if (isEnabled()) { g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawLine(0, 0, 0, h - 1); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 0, 1, h - 1); g.drawLine(1, 0, w - 1, 0); --- 327,348 ---- g.drawLine(0, h - 1, w - 1, h - 1); } } ! /** * Paints the border for a button with a {@link #NORTH} direction that * belongs to a scroll bar that is not free standing. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. */ ! private void paintNorthBorder(Graphics g, int w, int h) { if (isEnabled()) { g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawLine(0, 0, 0, h - 1); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 0, 1, h - 1); g.drawLine(1, 0, w - 1, 0); *************** public class MetalScrollButton extends B *** 353,363 **** g.drawLine(0, 0, 0, h - 1); } } ! /** * Paints the border for a button with a {@link #SOUTH} direction that * belongs to a scroll bar that is not free standing. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. --- 353,363 ---- g.drawLine(0, 0, 0, h - 1); } } ! /** * Paints the border for a button with a {@link #SOUTH} direction that * belongs to a scroll bar that is not free standing. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. *************** public class MetalScrollButton extends B *** 369,379 **** g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawLine(0, 0, 0, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 0, 1, h - 1); g.drawLine(1, 0, w - 1, 0); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(1, h - 1, 1, h - 1); } --- 369,379 ---- g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawLine(0, 0, 0, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); ! g.setColor(MetalLookAndFeel.getControlHighlight()); g.drawLine(1, 0, 1, h - 1); g.drawLine(1, 0, w - 1, 0); ! g.setColor(MetalLookAndFeel.getControl()); g.drawLine(1, h - 1, 1, h - 1); } *************** public class MetalScrollButton extends B *** 387,393 **** /** * Paints the border for a button with an {@link #EAST} direction that * belongs to a scroll bar that is not free standing. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. --- 387,393 ---- /** * Paints the border for a button with an {@link #EAST} direction that * belongs to a scroll bar that is not free standing. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. *************** public class MetalScrollButton extends B *** 409,419 **** g.drawLine(0, 0, w - 1, 0); } } ! /** * Paints the border for a button with a {@link #WEST} direction that * belongs to a scroll bar that is not free standing. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. --- 409,419 ---- g.drawLine(0, 0, w - 1, 0); } } ! /** * Paints the border for a button with a {@link #WEST} direction that * belongs to a scroll bar that is not free standing. ! * * @param g the graphics device. * @param w the button width. * @param h the button height. *************** public class MetalScrollButton extends B *** 435,445 **** g.drawLine(0, 0, bounds.width - 1, 0); } } ! /** ! * Returns the preferred size for the button, which varies depending on * the direction of the button and whether or not it is free standing. ! * * @return The preferred size. */ public Dimension getPreferredSize() --- 435,445 ---- g.drawLine(0, 0, bounds.width - 1, 0); } } ! /** ! * Returns the preferred size for the button, which varies depending on * the direction of the button and whether or not it is free standing. ! * * @return The preferred size. */ public Dimension getPreferredSize() *************** public class MetalScrollButton extends B *** 447,455 **** int adj = 1; if (!freeStanding) adj = 2; ! if (direction == EAST) ! return new Dimension(buttonWidth - adj, buttonWidth); else if (direction == WEST) return new Dimension(buttonWidth - 2, buttonWidth); else if (direction == SOUTH) --- 447,455 ---- int adj = 1; if (!freeStanding) adj = 2; ! if (direction == EAST) ! return new Dimension(buttonWidth - adj, buttonWidth); else if (direction == WEST) return new Dimension(buttonWidth - 2, buttonWidth); else if (direction == SOUTH) *************** public class MetalScrollButton extends B *** 457,483 **** else // assume NORTH return new Dimension(buttonWidth, buttonWidth - 2); } ! /** * Returns the minimum size for the button. ! * * @return The minimum size for the button. */ public Dimension getMinimumSize() { return getPreferredSize(); } ! /** * Returns the maximum size for the button. ! * * @return Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE). */ public Dimension getMaximumSize() { if (maximumSize == null) maximumSize = new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); ! return maximumSize; } ! } --- 457,483 ---- else // assume NORTH return new Dimension(buttonWidth, buttonWidth - 2); } ! /** * Returns the minimum size for the button. ! * * @return The minimum size for the button. */ public Dimension getMinimumSize() { return getPreferredSize(); } ! /** * Returns the maximum size for the button. ! * * @return Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE). */ public Dimension getMaximumSize() { if (maximumSize == null) maximumSize = new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); ! return maximumSize; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalScrollPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalScrollPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalScrollPaneUI.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalScrollPaneUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalScrollPaneUI *** 71,82 **** { return new MetalScrollPaneUI(); } ! /** ! * Configures the specified component appropriate for the look and feel. ! * This method is invoked when the ComponentUI instance is being installed ! * as the UI delegate on the specified component. This method should ! * completely configure the component for the look and feel, * including the following: * 1. Install any default property values for color, fonts, borders, * icons, opacity, etc. on the component. Whenever possible, property --- 71,82 ---- { return new MetalScrollPaneUI(); } ! /** ! * Configures the specified component appropriate for the look and feel. ! * This method is invoked when the ComponentUI instance is being installed ! * as the UI delegate on the specified component. This method should ! * completely configure the component for the look and feel, * including the following: * 1. Install any default property values for color, fonts, borders, * icons, opacity, etc. on the component. Whenever possible, property *************** public class MetalScrollPaneUI *** 87,94 **** * 5. Create/install a PropertyChangeListener on the component in order * to detect and respond to component property changes appropriately. * 6. Install keyboard UI (mnemonics, traversal, etc.) on the component. ! * 7. Initialize any appropriate instance data. ! * * @param c - the component to install the ui on */ public void installUI(JComponent c) --- 87,94 ---- * 5. Create/install a PropertyChangeListener on the component in order * to detect and respond to component property changes appropriately. * 6. Install keyboard UI (mnemonics, traversal, etc.) on the component. ! * 7. Initialize any appropriate instance data. ! * * @param c - the component to install the ui on */ public void installUI(JComponent c) *************** public class MetalScrollPaneUI *** 101,111 **** } /** ! * Reverses configuration which was done on the specified component ! * during installUI. This method is invoked when this UIComponent ! * instance is being removed as the UI delegate for the specified ! * component. This method should undo the configuration performed in ! * installUI, being careful to leave the JComponent instance in a * clean state (no extraneous listeners, look-and-feel-specific property * objects, etc.). This should include the following: * 1. Remove any UI-set borders from the component. --- 101,111 ---- } /** ! * Reverses configuration which was done on the specified component ! * during installUI. This method is invoked when this UIComponent ! * instance is being removed as the UI delegate for the specified ! * component. This method should undo the configuration performed in ! * installUI, being careful to leave the JComponent instance in a * clean state (no extraneous listeners, look-and-feel-specific property * objects, etc.). This should include the following: * 1. Remove any UI-set borders from the component. *************** public class MetalScrollPaneUI *** 113,120 **** * 3. Remove any UI-added sub-components from the component. * 4. Remove any UI-added event/property listeners from the component. * 5. Remove any UI-installed keyboard UI from the component. ! * 6. Nullify any allocated instance data objects to allow for GC. ! * * @param c - the component to uninstall the ui on */ public void uninstallUI(JComponent c) --- 113,120 ---- * 3. Remove any UI-added sub-components from the component. * 4. Remove any UI-added event/property listeners from the component. * 5. Remove any UI-installed keyboard UI from the component. ! * 6. Nullify any allocated instance data objects to allow for GC. ! * * @param c - the component to uninstall the ui on */ public void uninstallUI(JComponent c) *************** public class MetalScrollPaneUI *** 128,144 **** /** * Installs listeners on scrollPane ! * * @param scrollPane - the component to install the listeners on */ public void installListeners(JScrollPane scrollPane) { super.installListeners(scrollPane); } ! /** * Uninstalls listeners on scrollPane ! * * @param scrollPane - the component to uninstall the listeners on */ public void uninstallListeners(JScrollPane scrollPane) --- 128,144 ---- /** * Installs listeners on scrollPane ! * * @param scrollPane - the component to install the listeners on */ public void installListeners(JScrollPane scrollPane) { super.installListeners(scrollPane); } ! /** * Uninstalls listeners on scrollPane ! * * @param scrollPane - the component to uninstall the listeners on */ public void uninstallListeners(JScrollPane scrollPane) *************** public class MetalScrollPaneUI *** 148,154 **** /** * TODO ! * * @return TODO */ protected PropertyChangeListener createScrollBarSwapListener() --- 148,154 ---- /** * TODO ! * * @return TODO */ protected PropertyChangeListener createScrollBarSwapListener() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalSeparatorUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalSeparatorUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalSeparatorUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalSeparatorUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalSeparatorUI *** 83,95 **** } /** ! * The separator is made of two lines. The top line will be * the Metal theme color separatorForeground (or left line if it's vertical). * The bottom or right line will be the Metal theme color * separatorBackground. ! * The two lines will ! * be centered inside the bounds box. If the separator is horizontal, ! * then it will be vertically centered, or if it's vertical, it will * be horizontally centered. * * @param g The Graphics object to paint with --- 83,95 ---- } /** ! * The separator is made of two lines. The top line will be * the Metal theme color separatorForeground (or left line if it's vertical). * The bottom or right line will be the Metal theme color * separatorBackground. ! * The two lines will ! * be centered inside the bounds box. If the separator is horizontal, ! * then it will be vertically centered, or if it's vertical, it will * be horizontally centered. * * @param g The Graphics object to paint with *************** public class MetalSeparatorUI *** 107,115 **** s = (JSeparator) c; else return; ! if (s.getOrientation() == JSeparator.HORIZONTAL) ! { int midAB = r.height / 2; g.setColor(c1); g.drawLine(r.x, r.y + midAB - 1, r.x + r.width, r.y + midAB - 1); --- 107,115 ---- s = (JSeparator) c; else return; ! if (s.getOrientation() == JSeparator.HORIZONTAL) ! { int midAB = r.height / 2; g.setColor(c1); g.drawLine(r.x, r.y + midAB - 1, r.x + r.width, r.y + midAB - 1); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalSliderUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalSliderUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalSliderUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalSliderUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalSliderUI extends Basic *** 74,84 **** { // Nothing to do here. } ! /** * Handles property change events. Events with the name "JSlider.isFilled" * are handled here, and other events are passed to the superclass. ! * * @param e the property change event. */ public void propertyChange(PropertyChangeEvent e) --- 74,84 ---- { // Nothing to do here. } ! /** * Handles property change events. Events with the name "JSlider.isFilled" * are handled here, and other events are passed to the superclass. ! * * @param e the property change event. */ public void propertyChange(PropertyChangeEvent e) *************** public class MetalSliderUI extends Basic *** 89,126 **** if (b == null) filledSlider = false; else ! filledSlider = b.booleanValue(); } else super.propertyChange(e); } } ! /** The thumb color (unused, because an icon is used to draw the thumb). */ protected static Color thumbColor; ! ! /** * The highlight color used for drawing the track rect when the slider is * enabled. */ protected static Color highlightColor; ! /** * The shadow color used for drawing the track rect when the slider is * enabled. */ protected static Color darkShadowColor; ! /** The track width. */ protected static int trackWidth = UIManager.getInt("Slider.trackWidth"); ! /** The length of the major tick marks. */ protected static int tickLength = UIManager.getInt("Slider.majorTickLength"); ! /** The icon used for the thumb control of horizontally oriented sliders. */ protected static Icon horizThumbIcon = UIManager.getIcon( "Slider.horizontalThumbIcon"); ! /** The icon used for the thumb control of vertically oriented sliders. */ protected static Icon vertThumbIcon = UIManager.getIcon( "Slider.verticalThumbIcon"); --- 89,126 ---- if (b == null) filledSlider = false; else ! filledSlider = b.booleanValue(); } else super.propertyChange(e); } } ! /** The thumb color (unused, because an icon is used to draw the thumb). */ protected static Color thumbColor; ! ! /** * The highlight color used for drawing the track rect when the slider is * enabled. */ protected static Color highlightColor; ! /** * The shadow color used for drawing the track rect when the slider is * enabled. */ protected static Color darkShadowColor; ! /** The track width. */ protected static int trackWidth = UIManager.getInt("Slider.trackWidth"); ! /** The length of the major tick marks. */ protected static int tickLength = UIManager.getInt("Slider.majorTickLength"); ! /** The icon used for the thumb control of horizontally oriented sliders. */ protected static Icon horizThumbIcon = UIManager.getIcon( "Slider.horizontalThumbIcon"); ! /** The icon used for the thumb control of vertically oriented sliders. */ protected static Icon vertThumbIcon = UIManager.getIcon( "Slider.verticalThumbIcon"); *************** public class MetalSliderUI extends Basic *** 130,137 **** /** A key to look up the filledSlider setting in the {@link UIManager}. */ protected final String SLIDER_FILL = "JSlider.isFilled"; ! ! /** * A flag that controls whether or not the track is filled up to the value * of the slider. */ --- 130,137 ---- /** A key to look up the filledSlider setting in the {@link UIManager}. */ protected final String SLIDER_FILL = "JSlider.isFilled"; ! ! /** * A flag that controls whether or not the track is filled up to the value * of the slider. */ *************** public class MetalSliderUI extends Basic *** 159,196 **** { return new MetalSliderUI(); } ! /** * Installs the default for this UI delegate in the supplied component. ! * * @param c the component. */ public void installUI(JComponent c) { super.installUI(c); Boolean b = (Boolean) c.getClientProperty(SLIDER_FILL); ! if (b != null) filledSlider = b.booleanValue(); } /** ! * Creates a property change listener for the slider. ! * * @param slider the slider. ! * * @return A new instance of {@link MetalPropertyListener}. */ protected PropertyChangeListener createPropertyChangeListener(JSlider slider) { ! return new MetalPropertyListener(); } ! /** * Paints the thumb icon for the slider. ! * * @param g the graphics device. */ ! public void paintThumb(Graphics g) { Color save = g.getColor(); g.setColor(thumbColor); --- 159,196 ---- { return new MetalSliderUI(); } ! /** * Installs the default for this UI delegate in the supplied component. ! * * @param c the component. */ public void installUI(JComponent c) { super.installUI(c); Boolean b = (Boolean) c.getClientProperty(SLIDER_FILL); ! if (b != null) filledSlider = b.booleanValue(); } /** ! * Creates a property change listener for the slider. ! * * @param slider the slider. ! * * @return A new instance of {@link MetalPropertyListener}. */ protected PropertyChangeListener createPropertyChangeListener(JSlider slider) { ! return new MetalPropertyListener(); } ! /** * Paints the thumb icon for the slider. ! * * @param g the graphics device. */ ! public void paintThumb(Graphics g) { Color save = g.getColor(); g.setColor(thumbColor); *************** public class MetalSliderUI extends Basic *** 200,209 **** vertThumbIcon.paintIcon(slider, g, thumbRect.x, thumbRect.y); g.setColor(save); } ! /** * Paints the track along which the thumb control moves. ! * * @param g the graphics device. */ public void paintTrack(Graphics g) --- 200,209 ---- vertThumbIcon.paintIcon(slider, g, thumbRect.x, thumbRect.y); g.setColor(save); } ! /** * Paints the track along which the thumb control moves. ! * * @param g the graphics device. */ public void paintTrack(Graphics g) *************** public class MetalSliderUI extends Basic *** 215,224 **** int trackY = trackRect.y + (trackRect.height - getTrackWidth()) / 2; int trackW = trackRect.width; int trackH = getTrackWidth(); ! // draw border if (slider.isEnabled()) ! BasicGraphicsUtils.drawEtchedRect(g, trackX, trackY, trackW, trackH, darkShadowColor, shadowColor, darkShadowColor, highlightColor); else { --- 215,224 ---- int trackY = trackRect.y + (trackRect.height - getTrackWidth()) / 2; int trackW = trackRect.width; int trackH = getTrackWidth(); ! // draw border if (slider.isEnabled()) ! BasicGraphicsUtils.drawEtchedRect(g, trackX, trackY, trackW, trackH, darkShadowColor, shadowColor, darkShadowColor, highlightColor); else { *************** public class MetalSliderUI extends Basic *** 233,239 **** { int xPos = xPositionForValue(slider.getValue()); int x = slider.getInverted() ? xPos : trackRect.x; ! int w = slider.getInverted() ? trackX + trackW - xPos : xPos - trackRect.x; g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 1, trackY + 1, x + w - 3, trackY + 1); --- 233,239 ---- { int xPos = xPositionForValue(slider.getValue()); int x = slider.getInverted() ? xPos : trackRect.x; ! int w = slider.getInverted() ? trackX + trackW - xPos : xPos - trackRect.x; g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x + 1, trackY + 1, x + w - 3, trackY + 1); *************** public class MetalSliderUI extends Basic *** 245,255 **** g.drawLine(x + 1, trackY + 4, x + w - 3, trackY + 4); } } ! else if (filledSlider) { int xPos = xPositionForValue(slider.getValue()); int x = slider.getInverted() ? xPos : trackRect.x; ! int w = slider.getInverted() ? trackX + trackW - xPos : xPos - trackRect.x; g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(x + 1, trackY + 1, w - 3, getTrackWidth() - 3); --- 245,255 ---- g.drawLine(x + 1, trackY + 4, x + w - 3, trackY + 4); } } ! else if (filledSlider) { int xPos = xPositionForValue(slider.getValue()); int x = slider.getInverted() ? xPos : trackRect.x; ! int w = slider.getInverted() ? trackX + trackW - xPos : xPos - trackRect.x; g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(x + 1, trackY + 1, w - 3, getTrackWidth() - 3); *************** public class MetalSliderUI extends Basic *** 257,263 **** { g.setColor(MetalLookAndFeel.getControl()); g.drawLine(x + 1, trackY + 1, x + w - 3, trackY + 1); ! g.drawLine(x + 1, trackY + 1, x + 1, trackY + getTrackWidth() - 3); } } --- 257,263 ---- { g.setColor(MetalLookAndFeel.getControl()); g.drawLine(x + 1, trackY + 1, x + w - 3, trackY + 1); ! g.drawLine(x + 1, trackY + 1, x + 1, trackY + getTrackWidth() - 3); } } *************** public class MetalSliderUI extends Basic *** 269,275 **** int trackW = getTrackWidth(); int trackH = trackRect.height; if (slider.isEnabled()) ! BasicGraphicsUtils.drawEtchedRect(g, trackX, trackY, trackW, trackH, darkShadowColor, shadowColor, darkShadowColor, highlightColor); else { --- 269,275 ---- int trackW = getTrackWidth(); int trackH = trackRect.height; if (slider.isEnabled()) ! BasicGraphicsUtils.drawEtchedRect(g, trackX, trackY, trackW, trackH, darkShadowColor, shadowColor, darkShadowColor, highlightColor); else { *************** public class MetalSliderUI extends Basic *** 284,292 **** { int yPos = yPositionForValue(slider.getValue()); int y = slider.getInverted() ? trackY : yPos; ! int h = slider.getInverted() ? yPos - trackY : trackY + trackH - yPos; ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(trackX + 1, y + 1, trackX + 1, y + h - 3); g.setColor(UIManager.getColor("Slider.altTrackColor")); --- 284,292 ---- { int yPos = yPositionForValue(slider.getValue()); int y = slider.getInverted() ? trackY : yPos; ! int h = slider.getInverted() ? yPos - trackY : trackY + trackH - yPos; ! g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(trackX + 1, y + 1, trackX + 1, y + h - 3); g.setColor(UIManager.getColor("Slider.altTrackColor")); *************** public class MetalSliderUI extends Basic *** 297,307 **** g.drawLine(trackX + 4, y + 1, trackX + 4, y + h - 3); } } ! else if (filledSlider) { int yPos = yPositionForValue(slider.getValue()); int y = slider.getInverted() ? trackY : yPos; ! int h = slider.getInverted() ? yPos - trackY : trackY + trackH - yPos; g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(trackX + 1, y + 1, getTrackWidth() - 3, h - 3); --- 297,307 ---- g.drawLine(trackX + 4, y + 1, trackX + 4, y + h - 3); } } ! else if (filledSlider) { int yPos = yPositionForValue(slider.getValue()); int y = slider.getInverted() ? trackY : yPos; ! int h = slider.getInverted() ? yPos - trackY : trackY + trackH - yPos; g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(trackX + 1, y + 1, getTrackWidth() - 3, h - 3); *************** public class MetalSliderUI extends Basic *** 314,327 **** } } } ! /** ! * Draws the focus rectangle for the slider. The Metal look and feel ! * indicates that the {@link JSlider} has the focus by changing the color of ! * the thumb control - this is handled elsewhere and so this method is empty * (it overrides the method in the {@link BasicSliderUI} class to prevent * a default focus highlight from being drawn). ! * * @param g the graphics device. */ public void paintFocus(Graphics g) --- 314,327 ---- } } } ! /** ! * Draws the focus rectangle for the slider. The Metal look and feel ! * indicates that the {@link JSlider} has the focus by changing the color of ! * the thumb control - this is handled elsewhere and so this method is empty * (it overrides the method in the {@link BasicSliderUI} class to prevent * a default focus highlight from being drawn). ! * * @param g the graphics device. */ public void paintFocus(Graphics g) *************** public class MetalSliderUI extends Basic *** 329,353 **** thumbColor = getFocusColor(); paintThumb(g); } ! /** * Returns the size of the thumb icon. ! * * @return The size of the thumb icon. */ protected Dimension getThumbSize() { if (slider.getOrientation() == JSlider.HORIZONTAL) ! return new Dimension(horizThumbIcon.getIconWidth(), horizThumbIcon.getIconHeight()); else ! return new Dimension(vertThumbIcon.getIconWidth(), vertThumbIcon.getIconHeight()); } ! /** * Returns the length of the major tick marks. ! * * @return The length of the major tick marks. */ public int getTickLength() --- 329,353 ---- thumbColor = getFocusColor(); paintThumb(g); } ! /** * Returns the size of the thumb icon. ! * * @return The size of the thumb icon. */ protected Dimension getThumbSize() { if (slider.getOrientation() == JSlider.HORIZONTAL) ! return new Dimension(horizThumbIcon.getIconWidth(), horizThumbIcon.getIconHeight()); else ! return new Dimension(vertThumbIcon.getIconWidth(), vertThumbIcon.getIconHeight()); } ! /** * Returns the length of the major tick marks. ! * * @return The length of the major tick marks. */ public int getTickLength() *************** public class MetalSliderUI extends Basic *** 357,387 **** len += 2; return len; } ! /** * Returns the track width. ! * * @return The track width. */ protected int getTrackWidth() { return trackWidth; } ! /** * Returns the track length. ! * * @return The track length. */ protected int getTrackLength() { ! return slider.getOrientation() == JSlider.HORIZONTAL ? tickRect.width : tickRect.height; } ! /** * Returns the thumb overhang. ! * * @return The thumb overhang. */ protected int getThumbOverhang() --- 357,387 ---- len += 2; return len; } ! /** * Returns the track width. ! * * @return The track width. */ protected int getTrackWidth() { return trackWidth; } ! /** * Returns the track length. ! * * @return The track length. */ protected int getTrackLength() { ! return slider.getOrientation() == JSlider.HORIZONTAL ? tickRect.width : tickRect.height; } ! /** * Returns the thumb overhang. ! * * @return The thumb overhang. */ protected int getThumbOverhang() *************** public class MetalSliderUI extends Basic *** 389,404 **** // FIXME: for what might this method be used? return 0; } ! protected void scrollDueToClickInTrack(int dir) { // FIXME: for what might this method be overridden? super.scrollDueToClickInTrack(dir); } ! /** * Paints the minor ticks for a slider with a horizontal orientation. ! * * @param g the graphics device. * @param tickBounds the tick bounds. * @param x the x value for the tick. --- 389,404 ---- // FIXME: for what might this method be used? return 0; } ! protected void scrollDueToClickInTrack(int dir) { // FIXME: for what might this method be overridden? super.scrollDueToClickInTrack(dir); } ! /** * Paints the minor ticks for a slider with a horizontal orientation. ! * * @param g the graphics device. * @param tickBounds the tick bounds. * @param x the x value for the tick. *************** public class MetalSliderUI extends Basic *** 406,412 **** protected void paintMinorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x) { ! // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) g.setColor(slider.getForeground()); --- 406,412 ---- protected void paintMinorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x) { ! // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) g.setColor(slider.getForeground()); *************** public class MetalSliderUI extends Basic *** 414,423 **** g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x, TICK_BUFFER, x, TICK_BUFFER + tickLength / 2); } ! /** * Paints the major ticks for a slider with a horizontal orientation. ! * * @param g the graphics device. * @param tickBounds the tick bounds. * @param x the x value for the tick. --- 414,423 ---- g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x, TICK_BUFFER, x, TICK_BUFFER + tickLength / 2); } ! /** * Paints the major ticks for a slider with a horizontal orientation. ! * * @param g the graphics device. * @param tickBounds the tick bounds. * @param x the x value for the tick. *************** public class MetalSliderUI extends Basic *** 425,431 **** protected void paintMajorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x) { ! // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) g.setColor(slider.getForeground()); --- 425,431 ---- protected void paintMajorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x) { ! // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) g.setColor(slider.getForeground()); *************** public class MetalSliderUI extends Basic *** 433,442 **** g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x, TICK_BUFFER, x, TICK_BUFFER + tickLength - 1); } ! /** * Paints the minor ticks for a slider with a vertical orientation. ! * * @param g the graphics device. * @param tickBounds the tick bounds. * @param y the y value for the tick. --- 433,442 ---- g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x, TICK_BUFFER, x, TICK_BUFFER + tickLength - 1); } ! /** * Paints the minor ticks for a slider with a vertical orientation. ! * * @param g the graphics device. * @param tickBounds the tick bounds. * @param y the y value for the tick. *************** public class MetalSliderUI extends Basic *** 444,450 **** protected void paintMinorTickForVertSlider(Graphics g, Rectangle tickBounds, int y) { ! // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) g.setColor(slider.getForeground()); --- 444,450 ---- protected void paintMinorTickForVertSlider(Graphics g, Rectangle tickBounds, int y) { ! // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) g.setColor(slider.getForeground()); *************** public class MetalSliderUI extends Basic *** 452,461 **** g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(TICK_BUFFER, y, TICK_BUFFER + tickLength / 2, y); } ! /** * Paints the major ticks for a slider with a vertical orientation. ! * * @param g the graphics device. * @param tickBounds the tick bounds. * @param y the y value for the tick. --- 452,461 ---- g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(TICK_BUFFER, y, TICK_BUFFER + tickLength / 2, y); } ! /** * Paints the major ticks for a slider with a vertical orientation. ! * * @param g the graphics device. * @param tickBounds the tick bounds. * @param y the y value for the tick. *************** public class MetalSliderUI extends Basic *** 463,469 **** protected void paintMajorTickForVertSlider(Graphics g, Rectangle tickBounds, int y) { ! // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) g.setColor(slider.getForeground()); --- 463,469 ---- protected void paintMajorTickForVertSlider(Graphics g, Rectangle tickBounds, int y) { ! // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) g.setColor(slider.getForeground()); *************** public class MetalSliderUI extends Basic *** 471,475 **** g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(TICK_BUFFER, y, TICK_BUFFER + tickLength, y); } ! } --- 471,475 ---- g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(TICK_BUFFER, y, TICK_BUFFER + tickLength, y); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java Tue Jan 11 19:46:05 2011 *************** class MetalSplitPaneDivider extends Basi *** 197,209 **** /** The light color in the pattern. */ Color light; ! /** The JSplitPane the divider is on. */ JSplitPane splitPane; /** The split pane orientation. */ int orientation; ! /** * Creates a new instance of MetalSplitPaneDivider. * --- 197,209 ---- /** The light color in the pattern. */ Color light; ! /** The JSplitPane the divider is on. */ JSplitPane splitPane; /** The split pane orientation. */ int orientation; ! /** * Creates a new instance of MetalSplitPaneDivider. * *************** class MetalSplitPaneDivider extends Basi *** 232,238 **** g.setColor(UIManager.getColor("SplitPane.dividerFocusColor")); g.fillRect(0, 0, s.width, s.height); } ! // Paint border if one exists. Border border = getBorder(); if (border != null) --- 232,238 ---- g.setColor(UIManager.getColor("SplitPane.dividerFocusColor")); g.fillRect(0, 0, s.width, s.height); } ! // Paint border if one exists. Border border = getBorder(); if (border != null) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneUI.java Fri Nov 18 00:59:33 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalSplitPaneUI extends Ba *** 78,84 **** * The divider returned by this method is a {@link BasicSplitPaneDivider} * that is drawn using the Metal look. * ! * @return the default divider to use for JSplitPanes. */ public BasicSplitPaneDivider createDefaultDivider() { --- 78,84 ---- * The divider returned by this method is a {@link BasicSplitPaneDivider} * that is drawn using the Metal look. * ! * @return the default divider to use for JSplitPanes. */ public BasicSplitPaneDivider createDefaultDivider() { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalTabbedPaneUI extends B *** 57,71 **** { /** ! * A {@link LayoutManager} responsible for placing all the tabs and the ! * visible component inside the {@link JTabbedPane}. This class is only used * for {@link JTabbedPane#WRAP_TAB_LAYOUT}. * * @specnote Apparently this class was intended to be protected, * but was made public by a compiler bug and is now * public for compatibility. */ ! public class TabbedPaneLayout extends BasicTabbedPaneUI.TabbedPaneLayout { /** --- 57,71 ---- { /** ! * A {@link LayoutManager} responsible for placing all the tabs and the ! * visible component inside the {@link JTabbedPane}. This class is only used * for {@link JTabbedPane#WRAP_TAB_LAYOUT}. * * @specnote Apparently this class was intended to be protected, * but was made public by a compiler bug and is now * public for compatibility. */ ! public class TabbedPaneLayout extends BasicTabbedPaneUI.TabbedPaneLayout { /** *************** public class MetalTabbedPaneUI extends B *** 75,86 **** { // Nothing to do here. } ! /** ! * Overridden to do nothing, because tab runs are not rotated in the * {@link MetalLookAndFeel}. ! * ! * @param tabPlacement the tab placement (one of {@link #TOP}, * {@link #BOTTOM}, {@link #LEFT} or {@link #RIGHT}). * @param selectedRun the index of the selected run. */ --- 75,86 ---- { // Nothing to do here. } ! /** ! * Overridden to do nothing, because tab runs are not rotated in the * {@link MetalLookAndFeel}. ! * ! * @param tabPlacement the tab placement (one of {@link #TOP}, * {@link #BOTTOM}, {@link #LEFT} or {@link #RIGHT}). * @param selectedRun the index of the selected run. */ *************** public class MetalTabbedPaneUI extends B *** 88,105 **** { // do nothing, because tab runs are not rotated in the MetalLookAndFeel } ! /** * Overridden to do nothing, because the selected tab does not have extra * padding in the {@link MetalLookAndFeel}. ! * ! * @param tabPlacement the tab placement (one of {@link #TOP}, * {@link #BOTTOM}, {@link #LEFT} or {@link #RIGHT}). * @param selectedIndex the index of the selected tab. */ protected void padSelectedTab(int tabPlacement, int selectedIndex) { ! // do nothing, because the selected tab does not have extra padding in // the MetalLookAndFeel } --- 88,105 ---- { // do nothing, because tab runs are not rotated in the MetalLookAndFeel } ! /** * Overridden to do nothing, because the selected tab does not have extra * padding in the {@link MetalLookAndFeel}. ! * ! * @param tabPlacement the tab placement (one of {@link #TOP}, * {@link #BOTTOM}, {@link #LEFT} or {@link #RIGHT}). * @param selectedIndex the index of the selected tab. */ protected void padSelectedTab(int tabPlacement, int selectedIndex) { ! // do nothing, because the selected tab does not have extra padding in // the MetalLookAndFeel } *************** public class MetalTabbedPaneUI extends B *** 162,171 **** { return new MetalTabbedPaneUI(); } ! /** * Creates and returns an instance of {@link TabbedPaneLayout}. ! * * @return A layout manager used by this UI delegate. */ protected LayoutManager createLayoutManager() --- 162,171 ---- { return new MetalTabbedPaneUI(); } ! /** * Creates and returns an instance of {@link TabbedPaneLayout}. ! * * @return A layout manager used by this UI delegate. */ protected LayoutManager createLayoutManager() *************** public class MetalTabbedPaneUI extends B *** 174,185 **** ? new MetalTabbedPaneUI.TabbedPaneLayout() : super.createLayoutManager(); } ! /** * Paints the border for a single tab. ! * * @param g the graphics device. ! * @param tabPlacement the tab placement ({@link #TOP}, {@link #LEFT}, * {@link #BOTTOM} or {@link #RIGHT}). * @param tabIndex the index of the tab to draw the border for. * @param x the x-coordinate for the tab's bounding rectangle. --- 174,185 ---- ? new MetalTabbedPaneUI.TabbedPaneLayout() : super.createLayoutManager(); } ! /** * Paints the border for a single tab. ! * * @param g the graphics device. ! * @param tabPlacement the tab placement ({@link #TOP}, {@link #LEFT}, * {@link #BOTTOM} or {@link #RIGHT}). * @param tabIndex the index of the tab to draw the border for. * @param x the x-coordinate for the tab's bounding rectangle. *************** public class MetalTabbedPaneUI extends B *** 188,202 **** * @param h the height for the tab's bounding rectangle. * @param isSelected indicates whether or not the tab is selected. */ ! protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, ! int x, int y, int w, int h, boolean isSelected) { int bottom = y + h - 1; int right = x + w - 1; switch (tabPlacement) { ! case LEFT: paintLeftTabBorder(tabIndex, g, x, y, w, h, bottom, right, isSelected); break; case BOTTOM: --- 188,202 ---- * @param h the height for the tab's bounding rectangle. * @param isSelected indicates whether or not the tab is selected. */ ! protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, ! int x, int y, int w, int h, boolean isSelected) { int bottom = y + h - 1; int right = x + w - 1; switch (tabPlacement) { ! case LEFT: paintLeftTabBorder(tabIndex, g, x, y, w, h, bottom, right, isSelected); break; case BOTTOM: *************** public class MetalTabbedPaneUI extends B *** 206,212 **** paintRightTabBorder(tabIndex, g, x, y, w, h, bottom, right, isSelected); break; case TOP: ! default: paintTopTabBorder(tabIndex, g, x, y, w, h, bottom, right, isSelected); } } --- 206,212 ---- paintRightTabBorder(tabIndex, g, x, y, w, h, bottom, right, isSelected); break; case TOP: ! default: paintTopTabBorder(tabIndex, g, x, y, w, h, bottom, right, isSelected); } } *************** public class MetalTabbedPaneUI extends B *** 214,220 **** /** * Paints the border for a tab assuming that the tab position is at the top * ({@link #TOP}). ! * * @param tabIndex the tab index. * @param g the graphics device. * @param x the x-coordinate for the tab's bounding rectangle. --- 214,220 ---- /** * Paints the border for a tab assuming that the tab position is at the top * ({@link #TOP}). ! * * @param tabIndex the tab index. * @param g the graphics device. * @param x the x-coordinate for the tab's bounding rectangle. *************** public class MetalTabbedPaneUI extends B *** 306,316 **** g.translate(-x, -y); } ! /** * Paints the border for a tab assuming that the tab position is at the left * ({@link #LEFT}). ! * * @param tabIndex the tab index. * @param g the graphics device. * @param x the x-coordinate for the tab's bounding rectangle. --- 306,316 ---- g.translate(-x, -y); } ! /** * Paints the border for a tab assuming that the tab position is at the left * ({@link #LEFT}). ! * * @param tabIndex the tab index. * @param g the graphics device. * @param x the x-coordinate for the tab's bounding rectangle. *************** public class MetalTabbedPaneUI extends B *** 436,446 **** g.translate(-x, -y); } ! /** * Paints the border for a tab assuming that the tab position is at the right * ({@link #RIGHT}). ! * * @param tabIndex the tab index. * @param g the graphics device. * @param x the x-coordinate for the tab's bounding rectangle. --- 436,446 ---- g.translate(-x, -y); } ! /** * Paints the border for a tab assuming that the tab position is at the right * ({@link #RIGHT}). ! * * @param tabIndex the tab index. * @param g the graphics device. * @param x the x-coordinate for the tab's bounding rectangle. *************** public class MetalTabbedPaneUI extends B *** 545,555 **** } g.translate(-x, -y); } ! /** * Paints the border for a tab assuming that the tab position is at the bottom * ({@link #BOTTOM}). ! * * @param tabIndex the tab index. * @param g the graphics device. * @param x the x-coordinate for the tab's bounding rectangle. --- 545,555 ---- } g.translate(-x, -y); } ! /** * Paints the border for a tab assuming that the tab position is at the bottom * ({@link #BOTTOM}). ! * * @param tabIndex the tab index. * @param g the graphics device. * @param x the x-coordinate for the tab's bounding rectangle. *************** public class MetalTabbedPaneUI extends B *** 606,612 **** if (isOcean && isSelected) { g.drawLine(0, 0, 0, bottom - 5); ! // Paint a connecting line to the tab below for all // but the first tab in the last run. if (tabIndex != tabRuns[runCount-1]) --- 606,612 ---- if (isOcean && isSelected) { g.drawLine(0, 0, 0, bottom - 5); ! // Paint a connecting line to the tab below for all // but the first tab in the last run. if (tabIndex != tabRuns[runCount-1]) *************** public class MetalTabbedPaneUI extends B *** 657,665 **** /** * Paints the background for a tab. ! * * @param g the graphics device. ! * @param tabPlacement the tab placement ({@link #TOP}, {@link #LEFT}, * {@link #BOTTOM} or {@link #RIGHT}). * @param tabIndex the index of the tab to draw the border for. * @param x the x-coordinate for the tab's bounding rectangle. --- 657,665 ---- /** * Paints the background for a tab. ! * * @param g the graphics device. ! * @param tabPlacement the tab placement ({@link #TOP}, {@link #LEFT}, * {@link #BOTTOM} or {@link #RIGHT}). * @param tabIndex the index of the tab to draw the border for. * @param x the x-coordinate for the tab's bounding rectangle. *************** public class MetalTabbedPaneUI extends B *** 696,702 **** g.fillRect(x + 2, y + 5, 2, h - 5); } } ! /** * This method paints the focus rectangle around the selected tab. * --- 696,702 ---- g.fillRect(x + 2, y + 5, 2, h - 5); } } ! /** * This method paints the focus rectangle around the selected tab. * *************** public class MetalTabbedPaneUI extends B *** 719,737 **** g.setColor(focus); g.translate(rect.x, rect.y); ! switch (tabPlacement) { case LEFT: // Top line g.drawLine(7, 2, rect.width-2, 2); ! // Right line g.drawLine(rect.width-1, 2, rect.width-1, rect.height-3); ! // Bottom line g.drawLine(rect.width-2, rect.height-2, 3, rect.height-2); ! // Left line g.drawLine(2, rect.height-3, 2, 7); --- 719,737 ---- g.setColor(focus); g.translate(rect.x, rect.y); ! switch (tabPlacement) { case LEFT: // Top line g.drawLine(7, 2, rect.width-2, 2); ! // Right line g.drawLine(rect.width-1, 2, rect.width-1, rect.height-3); ! // Bottom line g.drawLine(rect.width-2, rect.height-2, 3, rect.height-2); ! // Left line g.drawLine(2, rect.height-3, 2, 7); *************** public class MetalTabbedPaneUI extends B *** 741,753 **** case RIGHT: // Top line g.drawLine(1, 2, rect.width-8, 2); ! // Slant g.drawLine(rect.width-7, 2, rect.width-3, 6); ! // Right line g.drawLine(rect.width-3, 7, rect.width-3, rect.height-3); ! // Bottom line g.drawLine(rect.width-3, rect.height-2, 2, rect.height-2); --- 741,753 ---- case RIGHT: // Top line g.drawLine(1, 2, rect.width-8, 2); ! // Slant g.drawLine(rect.width-7, 2, rect.width-3, 6); ! // Right line g.drawLine(rect.width-3, 7, rect.width-3, rect.height-3); ! // Bottom line g.drawLine(rect.width-3, rect.height-2, 2, rect.height-2); *************** public class MetalTabbedPaneUI extends B *** 757,807 **** case BOTTOM: // Top line g.drawLine(2, 1, rect.width-2, 1); ! // Right line g.drawLine(rect.width-1, 2, rect.width-1, rect.height-3); ! // Bottom line g.drawLine(7, rect.height-3, rect.width-2, rect.height-3); ! // Slant g.drawLine(6, rect.height-3, 2, rect.height-7); ! // Left line g.drawLine(2, rect.height-8, 2, 2); ! break; case TOP: default: // Top line g.drawLine(6, 2, rect.width-2, 2); ! // Right line g.drawLine(rect.width-1, 2, rect.width-1, rect.height-3); ! // Bottom line g.drawLine(3, rect.height-3, rect.width-2, rect.height-3); ! // Left line g.drawLine(2, rect.height-3, 2, 7); ! // Slant g.drawLine(2, 6, 6, 2); ! } ! g.translate(-rect.x, -rect.y); } } ! /** ! * Returns true if the tabs in the specified run should be * padded to make the run fill the width/height of the {@link JTabbedPane}. ! * * @param tabPlacement the tab placement for the {@link JTabbedPane} (one of * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT} and {@link #RIGHT}). * @param run the run index. ! * * @return A boolean. */ protected boolean shouldPadTabRun(int tabPlacement, int run) --- 757,807 ---- case BOTTOM: // Top line g.drawLine(2, 1, rect.width-2, 1); ! // Right line g.drawLine(rect.width-1, 2, rect.width-1, rect.height-3); ! // Bottom line g.drawLine(7, rect.height-3, rect.width-2, rect.height-3); ! // Slant g.drawLine(6, rect.height-3, 2, rect.height-7); ! // Left line g.drawLine(2, rect.height-8, 2, 2); ! break; case TOP: default: // Top line g.drawLine(6, 2, rect.width-2, 2); ! // Right line g.drawLine(rect.width-1, 2, rect.width-1, rect.height-3); ! // Bottom line g.drawLine(3, rect.height-3, rect.width-2, rect.height-3); ! // Left line g.drawLine(2, rect.height-3, 2, 7); ! // Slant g.drawLine(2, 6, 6, 2); ! } ! g.translate(-rect.x, -rect.y); } } ! /** ! * Returns true if the tabs in the specified run should be * padded to make the run fill the width/height of the {@link JTabbedPane}. ! * * @param tabPlacement the tab placement for the {@link JTabbedPane} (one of * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT} and {@link #RIGHT}). * @param run the run index. ! * * @return A boolean. */ protected boolean shouldPadTabRun(int tabPlacement, int run) *************** public class MetalTabbedPaneUI extends B *** 824,837 **** tabsOpaque = UIManager.getBoolean("TabbedPane.tabsOpaque"); minTabWidth = 0; } ! /** * Returns the color for the gap. ! * * @param currentRun - The current run to return the color for * @param x - The x position of the current run * @param y - The y position of the current run ! * * @return the color for the gap in the current run. */ protected Color getColorForGap(int currentRun, int x, int y) --- 824,837 ---- tabsOpaque = UIManager.getBoolean("TabbedPane.tabsOpaque"); minTabWidth = 0; } ! /** * Returns the color for the gap. ! * * @param currentRun - The current run to return the color for * @param x - The x position of the current run * @param y - The y position of the current run ! * * @return the color for the gap in the current run. */ protected Color getColorForGap(int currentRun, int x, int y) *************** public class MetalTabbedPaneUI extends B *** 842,864 **** return selectColor; return tabAreaBackground; } ! /** * Returns true if the gap should be filled in. ! * * @param currentRun - The current run * @param tabIndex - The current tab * @param x - The x position of the tab * @param y - The y position of the tab ! * ! * @return true if the gap at the current run should be filled */ protected boolean shouldFillGap(int currentRun, int tabIndex, int x, int y) { // As far as I can tell, the gap is never filled in. return false; } ! /** * Paints the highlight below the tab, if there is one. */ --- 842,864 ---- return selectColor; return tabAreaBackground; } ! /** * Returns true if the gap should be filled in. ! * * @param currentRun - The current run * @param tabIndex - The current tab * @param x - The x position of the tab * @param y - The y position of the tab ! * ! * @return true if the gap at the current run should be filled */ protected boolean shouldFillGap(int currentRun, int tabIndex, int x, int y) { // As far as I can tell, the gap is never filled in. return false; } ! /** * Paints the highlight below the tab, if there is one. */ *************** public class MetalTabbedPaneUI extends B *** 867,880 **** int selected = tabPane.getSelectedIndex(); int tabPlacement = tabPane.getTabPlacement(); Rectangle bounds = getTabBounds(tabPane, selected); ! hg.setColor(selectColor); int x = bounds.x; int y = bounds.y; int w = bounds.width; int h = bounds.height; ! if (tabPlacement == TOP) hg.fillRect(x, y + h - 2, w, 30); else if (tabPlacement == LEFT) hg.fillRect(x + w - 1, y, 20, h); --- 867,880 ---- int selected = tabPane.getSelectedIndex(); int tabPlacement = tabPane.getTabPlacement(); Rectangle bounds = getTabBounds(tabPane, selected); ! hg.setColor(selectColor); int x = bounds.x; int y = bounds.y; int w = bounds.width; int h = bounds.height; ! if (tabPlacement == TOP) hg.fillRect(x, y + h - 2, w, 30); else if (tabPlacement == LEFT) hg.fillRect(x + w - 1, y, 20, h); *************** public class MetalTabbedPaneUI extends B *** 882,898 **** hg.fillRect(x, y - h + 2, w, 30); else if (tabPlacement == RIGHT) hg.fillRect(x - 18, y, 20, h); ! else throw new AssertionError("Unrecognised 'tabPlacement' argument."); hg = null; } ! /** ! * Returns true if we should rotate the tab runs. ! * * @param tabPlacement - The current tab placement. * @param selectedRun - The selected run. ! * * @return true if the tab runs should be rotated. */ protected boolean shouldRotateTabRuns(int tabPlacement, --- 882,898 ---- hg.fillRect(x, y - h + 2, w, 30); else if (tabPlacement == RIGHT) hg.fillRect(x - 18, y, 20, h); ! else throw new AssertionError("Unrecognised 'tabPlacement' argument."); hg = null; } ! /** ! * Returns true if we should rotate the tab runs. ! * * @param tabPlacement - The current tab placement. * @param selectedRun - The selected run. ! * * @return true if the tab runs should be rotated. */ protected boolean shouldRotateTabRuns(int tabPlacement, *************** public class MetalTabbedPaneUI extends B *** 1052,1058 **** int w, int h) { g.setColor(darkShadow); ! // If tabs are not placed on BOTTOM, or if the selected tab is not in the // run directly below the content or the selected tab is not visible, // then we draw an unbroken line. --- 1052,1058 ---- int w, int h) { g.setColor(darkShadow); ! // If tabs are not placed on BOTTOM, or if the selected tab is not in the // run directly below the content or the selected tab is not visible, // then we draw an unbroken line. *************** public class MetalTabbedPaneUI extends B *** 1144,1150 **** { g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x, y + 1, x, y + h - 2); ! } } else { --- 1144,1150 ---- { g.setColor(MetalLookAndFeel.getWhite()); g.drawLine(x, y + 1, x, y + h - 2); ! } } else { *************** public class MetalTabbedPaneUI extends B *** 1163,1169 **** } } } ! } /** --- 1163,1169 ---- } } } ! } /** *************** public class MetalTabbedPaneUI extends B *** 1251,1257 **** bg = unselectedBackground; return bg; } ! protected int getTabLabelShiftX(int tabPlacement, int index, boolean isSelected) --- 1251,1257 ---- bg = unselectedBackground; return bg; } ! protected int getTabLabelShiftX(int tabPlacement, int index, boolean isSelected) *************** public class MetalTabbedPaneUI extends B *** 1265,1269 **** { return 0; } ! } --- 1265,1269 ---- { return 0; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalTextFieldUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalTextFieldUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalTextFieldUI.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalTextFieldUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalTextFieldUI extends Ba *** 69,78 **** { return new MetalTextFieldUI(); } ! /** * This method gets called when a bound property is changed on the associated ! * JTextComponent. This is a hook which UI implementations may change to * reflect how the UI displays bound properties of JTextComponent subclasses. */ public void propertyChange(PropertyChangeEvent evt) --- 69,78 ---- { return new MetalTextFieldUI(); } ! /** * This method gets called when a bound property is changed on the associated ! * JTextComponent. This is a hook which UI implementations may change to * reflect how the UI displays bound properties of JTextComponent subclasses. */ public void propertyChange(PropertyChangeEvent evt) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalTheme.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalTheme.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalTheme.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalTheme.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.FontUIResource; *** 49,55 **** * The base class for themes used by the {@link MetalLookAndFeel}. A default * theme ({@link DefaultMetalTheme}) is provided, or you can create and use * your own. ! * * @see MetalLookAndFeel#setCurrentTheme(MetalTheme) */ public abstract class MetalTheme --- 49,55 ---- * The base class for themes used by the {@link MetalLookAndFeel}. A default * theme ({@link DefaultMetalTheme}) is provided, or you can create and use * your own. ! * * @see MetalLookAndFeel#setCurrentTheme(MetalTheme) */ public abstract class MetalTheme *************** public abstract class MetalTheme *** 67,80 **** /** * Returns the name of the theme. ! * * @return The name of the theme. */ public abstract String getName(); /** * Adds custom entries to the UI defaults table. This method is empty. ! * * @param table the table. */ public void addCustomEntriesToTable(UIDefaults table) --- 67,80 ---- /** * Returns the name of the theme. ! * * @return The name of the theme. */ public abstract String getName(); /** * Adds custom entries to the UI defaults table. This method is empty. ! * * @param table the table. */ public void addCustomEntriesToTable(UIDefaults table) *************** public abstract class MetalTheme *** 87,93 **** /** * Returns the accelerator foreground color. The default implementation * returns the color from {@link #getPrimary1()}. ! * * @return The accelerator foreground color. */ public ColorUIResource getAcceleratorForeground() --- 87,93 ---- /** * Returns the accelerator foreground color. The default implementation * returns the color from {@link #getPrimary1()}. ! * * @return The accelerator foreground color. */ public ColorUIResource getAcceleratorForeground() *************** public abstract class MetalTheme *** 96,115 **** } /** ! * Returns the accelerator selected foreground color. The default * implementation returns the color from {@link #getBlack()}. ! * * @return The accelerator selected foreground color. */ public ColorUIResource getAcceleratorSelectedForeground() { return getBlack(); } ! /** ! * Returns the control color. The default implementation returns the color * from {@link #getSecondary3()}. ! * * @return The control color. */ public ColorUIResource getControl() --- 96,115 ---- } /** ! * Returns the accelerator selected foreground color. The default * implementation returns the color from {@link #getBlack()}. ! * * @return The accelerator selected foreground color. */ public ColorUIResource getAcceleratorSelectedForeground() { return getBlack(); } ! /** ! * Returns the control color. The default implementation returns the color * from {@link #getSecondary3()}. ! * * @return The control color. */ public ColorUIResource getControl() *************** public abstract class MetalTheme *** 118,126 **** } /** ! * Returns the color used for dark shadows on controls. The default * implementation returns the color from {@link #getSecondary1()}. ! * * @return The color used for dark shadows on controls. */ public ColorUIResource getControlDarkShadow() --- 118,126 ---- } /** ! * Returns the color used for dark shadows on controls. The default * implementation returns the color from {@link #getSecondary1()}. ! * * @return The color used for dark shadows on controls. */ public ColorUIResource getControlDarkShadow() *************** public abstract class MetalTheme *** 131,137 **** /** * Returns the color used for disabled controls. The default implementation * returns the color from {@link #getSecondary1()}. ! * * @return The color used for disabled controls. */ public ColorUIResource getControlDisabled() --- 131,137 ---- /** * Returns the color used for disabled controls. The default implementation * returns the color from {@link #getSecondary1()}. ! * * @return The color used for disabled controls. */ public ColorUIResource getControlDisabled() *************** public abstract class MetalTheme *** 140,148 **** } /** ! * Returns the color used to draw highlights for controls. The default * implementation returns the color from {@link #getWhite()}. ! * * @return The color used to draw highlights for controls. */ public ColorUIResource getControlHighlight() --- 140,148 ---- } /** ! * Returns the color used to draw highlights for controls. The default * implementation returns the color from {@link #getWhite()}. ! * * @return The color used to draw highlights for controls. */ public ColorUIResource getControlHighlight() *************** public abstract class MetalTheme *** 151,159 **** } /** ! * Returns the color used to display control info. The default * implementation returns the color from {@link #getBlack()}. ! * * @return The color used to display control info. */ public ColorUIResource getControlInfo() --- 151,159 ---- } /** ! * Returns the color used to display control info. The default * implementation returns the color from {@link #getBlack()}. ! * * @return The color used to display control info. */ public ColorUIResource getControlInfo() *************** public abstract class MetalTheme *** 162,170 **** } /** ! * Returns the color used to draw shadows for controls. The default * implementation returns the color from {@link #getSecondary2()}. ! * * @return The color used to draw shadows for controls. */ public ColorUIResource getControlShadow() --- 162,170 ---- } /** ! * Returns the color used to draw shadows for controls. The default * implementation returns the color from {@link #getSecondary2()}. ! * * @return The color used to draw shadows for controls. */ public ColorUIResource getControlShadow() *************** public abstract class MetalTheme *** 175,181 **** /** * Returns the color used for text on controls. The default implementation * returns the color from {@link #getControlInfo()}. ! * * @return The color used for text on controls. */ public ColorUIResource getControlTextColor() --- 175,181 ---- /** * Returns the color used for text on controls. The default implementation * returns the color from {@link #getControlInfo()}. ! * * @return The color used for text on controls. */ public ColorUIResource getControlTextColor() *************** public abstract class MetalTheme *** 184,192 **** } /** ! * Returns the color used for the desktop background. The default * implementation returns the color from {@link #getPrimary2()}. ! * * @return The color used for the desktop background. */ public ColorUIResource getDesktopColor() --- 184,192 ---- } /** ! * Returns the color used for the desktop background. The default * implementation returns the color from {@link #getPrimary2()}. ! * * @return The color used for the desktop background. */ public ColorUIResource getDesktopColor() *************** public abstract class MetalTheme *** 195,203 **** } /** ! * Returns the color used to draw focus highlights. The default * implementation returns the color from {@link #getPrimary2()}. ! * * @return The color used to draw focus highlights. */ public ColorUIResource getFocusColor() --- 195,203 ---- } /** ! * Returns the color used to draw focus highlights. The default * implementation returns the color from {@link #getPrimary2()}. ! * * @return The color used to draw focus highlights. */ public ColorUIResource getFocusColor() *************** public abstract class MetalTheme *** 208,214 **** /** * Returns the color used to draw highlighted text. The default * implementation returns the color from {@link #getHighlightedTextColor()}. ! * * @return The color used to draw highlighted text. */ public ColorUIResource getHighlightedTextColor() --- 208,214 ---- /** * Returns the color used to draw highlighted text. The default * implementation returns the color from {@link #getHighlightedTextColor()}. ! * * @return The color used to draw highlighted text. */ public ColorUIResource getHighlightedTextColor() *************** public abstract class MetalTheme *** 219,225 **** /** * Returns the color used to draw text on inactive controls. The default * implementation returns the color from {@link #getControlDisabled()}. ! * * @return The color used to draw text on inactive controls. */ public ColorUIResource getInactiveControlTextColor() --- 219,225 ---- /** * Returns the color used to draw text on inactive controls. The default * implementation returns the color from {@link #getControlDisabled()}. ! * * @return The color used to draw text on inactive controls. */ public ColorUIResource getInactiveControlTextColor() *************** public abstract class MetalTheme *** 230,236 **** /** * Returns the color used to draw inactive system text. The default * implementation returns the color from {@link #getSecondary2()}. ! * * @return The color used to draw inactive system text. */ public ColorUIResource getInactiveSystemTextColor() --- 230,236 ---- /** * Returns the color used to draw inactive system text. The default * implementation returns the color from {@link #getSecondary2()}. ! * * @return The color used to draw inactive system text. */ public ColorUIResource getInactiveSystemTextColor() *************** public abstract class MetalTheme *** 241,249 **** /** * Returns the background color for menu items. The default implementation * returns the color from {@link #getSecondary3()}. ! * * @return The background color for menu items. ! * * @see #getMenuSelectedBackground() */ public ColorUIResource getMenuBackground() --- 241,249 ---- /** * Returns the background color for menu items. The default implementation * returns the color from {@link #getSecondary3()}. ! * * @return The background color for menu items. ! * * @see #getMenuSelectedBackground() */ public ColorUIResource getMenuBackground() *************** public abstract class MetalTheme *** 252,262 **** } /** ! * Returns the foreground color for disabled menu items. The default * implementation returns the color from {@link #getSecondary2()}. ! * * @return The foreground color for disabled menu items. ! * * @see #getMenuForeground() */ public ColorUIResource getMenuDisabledForeground() --- 252,262 ---- } /** ! * Returns the foreground color for disabled menu items. The default * implementation returns the color from {@link #getSecondary2()}. ! * * @return The foreground color for disabled menu items. ! * * @see #getMenuForeground() */ public ColorUIResource getMenuDisabledForeground() *************** public abstract class MetalTheme *** 267,275 **** /** * Returns the foreground color for menu items. The default implementation * returns the color from {@link #getBlack()}. ! * * @return The foreground color for menu items. ! * * @see #getMenuDisabledForeground() * @see #getMenuSelectedForeground() */ --- 267,275 ---- /** * Returns the foreground color for menu items. The default implementation * returns the color from {@link #getBlack()}. ! * * @return The foreground color for menu items. ! * * @see #getMenuDisabledForeground() * @see #getMenuSelectedForeground() */ *************** public abstract class MetalTheme *** 279,289 **** } /** ! * Returns the background color for selected menu items. The default * implementation returns the color from {@link #getPrimary2()}. ! * * @return The background color for selected menu items. ! * * @see #getMenuBackground() */ public ColorUIResource getMenuSelectedBackground() --- 279,289 ---- } /** ! * Returns the background color for selected menu items. The default * implementation returns the color from {@link #getPrimary2()}. ! * * @return The background color for selected menu items. ! * * @see #getMenuBackground() */ public ColorUIResource getMenuSelectedBackground() *************** public abstract class MetalTheme *** 292,302 **** } /** ! * Returns the foreground color for selected menu items. The default * implementation returns the value from {@link #getBlack()}. ! * * @return The foreground color for selected menu items. ! * * @see #getMenuForeground() */ public ColorUIResource getMenuSelectedForeground() --- 292,302 ---- } /** ! * Returns the foreground color for selected menu items. The default * implementation returns the value from {@link #getBlack()}. ! * * @return The foreground color for selected menu items. ! * * @see #getMenuForeground() */ public ColorUIResource getMenuSelectedForeground() *************** public abstract class MetalTheme *** 307,313 **** /** * Returns the primary color for controls. The default implementation * returns the color from {@link #getPrimary3()}. ! * * @return The primary color for controls. */ public ColorUIResource getPrimaryControl() --- 307,313 ---- /** * Returns the primary color for controls. The default implementation * returns the color from {@link #getPrimary3()}. ! * * @return The primary color for controls. */ public ColorUIResource getPrimaryControl() *************** public abstract class MetalTheme *** 316,324 **** } /** ! * Returns the primary color for the dark shadow on controls. The default * implementation returns the color from {@link #getPrimary1()}. ! * * @return The primary color for the dark shadow on controls. */ public ColorUIResource getPrimaryControlDarkShadow() --- 316,324 ---- } /** ! * Returns the primary color for the dark shadow on controls. The default * implementation returns the color from {@link #getPrimary1()}. ! * * @return The primary color for the dark shadow on controls. */ public ColorUIResource getPrimaryControlDarkShadow() *************** public abstract class MetalTheme *** 327,335 **** } /** ! * Returns the primary color for the highlight on controls. The default * implementation returns the color from {@link #getWhite()}. ! * * @return The primary color for the highlight on controls. */ public ColorUIResource getPrimaryControlHighlight() --- 327,335 ---- } /** ! * Returns the primary color for the highlight on controls. The default * implementation returns the color from {@link #getWhite()}. ! * * @return The primary color for the highlight on controls. */ public ColorUIResource getPrimaryControlHighlight() *************** public abstract class MetalTheme *** 338,346 **** } /** ! * Returns the primary color for the information on controls. The default * implementation returns the color from {@link #getBlack()}. ! * * @return The primary color for the information on controls. */ public ColorUIResource getPrimaryControlInfo() --- 338,346 ---- } /** ! * Returns the primary color for the information on controls. The default * implementation returns the color from {@link #getBlack()}. ! * * @return The primary color for the information on controls. */ public ColorUIResource getPrimaryControlInfo() *************** public abstract class MetalTheme *** 349,357 **** } /** ! * Returns the primary color for the shadow on controls. The default * implementation returns the color from {@link #getPrimary2()}. ! * * @return The primary color for the shadow on controls. */ public ColorUIResource getPrimaryControlShadow() --- 349,357 ---- } /** ! * Returns the primary color for the shadow on controls. The default * implementation returns the color from {@link #getPrimary2()}. ! * * @return The primary color for the shadow on controls. */ public ColorUIResource getPrimaryControlShadow() *************** public abstract class MetalTheme *** 362,368 **** /** * Returns the background color for separators. The default implementation * returns the color from {@link #getWhite()}. ! * * @return The background color for separators. */ public ColorUIResource getSeparatorBackground() --- 362,368 ---- /** * Returns the background color for separators. The default implementation * returns the color from {@link #getWhite()}. ! * * @return The background color for separators. */ public ColorUIResource getSeparatorBackground() *************** public abstract class MetalTheme *** 373,379 **** /** * Returns the foreground color for separators. The default implementation * returns the value from {@link #getPrimary1()}. ! * * @return The foreground color for separators. */ public ColorUIResource getSeparatorForeground() --- 373,379 ---- /** * Returns the foreground color for separators. The default implementation * returns the value from {@link #getPrimary1()}. ! * * @return The foreground color for separators. */ public ColorUIResource getSeparatorForeground() *************** public abstract class MetalTheme *** 382,390 **** } /** ! * Returns the color used for system text. The default implementation * returns the color from {@link #getBlack()}. ! * * @return The color used for system text. */ public ColorUIResource getSystemTextColor() --- 382,390 ---- } /** ! * Returns the color used for system text. The default implementation * returns the color from {@link #getBlack()}. ! * * @return The color used for system text. */ public ColorUIResource getSystemTextColor() *************** public abstract class MetalTheme *** 395,401 **** /** * Returns the color used to highlight text. The default implementation * returns the color from {@link #getPrimary3()}. ! * * @return The color used to highlight text. */ public ColorUIResource getTextHighlightColor() --- 395,401 ---- /** * Returns the color used to highlight text. The default implementation * returns the color from {@link #getPrimary3()}. ! * * @return The color used to highlight text. */ public ColorUIResource getTextHighlightColor() *************** public abstract class MetalTheme *** 406,423 **** /** * Returns the color used to display user text. The default implementation * returns the color from {@link #getBlack()}. ! * * @return The color used to display user text. */ public ColorUIResource getUserTextColor() { return getBlack(); } ! /** * Returns the window background color. The default implementation returns * the color from {@link #getWhite()}. ! * * @return The window background color. */ public ColorUIResource getWindowBackground() --- 406,423 ---- /** * Returns the color used to display user text. The default implementation * returns the color from {@link #getBlack()}. ! * * @return The color used to display user text. */ public ColorUIResource getUserTextColor() { return getBlack(); } ! /** * Returns the window background color. The default implementation returns * the color from {@link #getWhite()}. ! * * @return The window background color. */ public ColorUIResource getWindowBackground() *************** public abstract class MetalTheme *** 428,434 **** /** * Returns the window title background color. The default implementation * returns the color from {@link #getPrimary3()}. ! * * @return The window title background color. */ public ColorUIResource getWindowTitleBackground() --- 428,434 ---- /** * Returns the window title background color. The default implementation * returns the color from {@link #getPrimary3()}. ! * * @return The window title background color. */ public ColorUIResource getWindowTitleBackground() *************** public abstract class MetalTheme *** 439,445 **** /** * Returns the window title foreground color. The default implementation * returns the color from {@link #getBlack()}. ! * * @return The window title foreground color. */ public ColorUIResource getWindowTitleForeground() --- 439,445 ---- /** * Returns the window title foreground color. The default implementation * returns the color from {@link #getBlack()}. ! * * @return The window title foreground color. */ public ColorUIResource getWindowTitleForeground() *************** public abstract class MetalTheme *** 450,456 **** /** * Returns the background color for an inactive window title. The default * implementation returns the color from {@link #getSecondary3()}. ! * * @return The background color for an inactive window title. */ public ColorUIResource getWindowTitleInactiveBackground() --- 450,456 ---- /** * Returns the background color for an inactive window title. The default * implementation returns the color from {@link #getSecondary3()}. ! * * @return The background color for an inactive window title. */ public ColorUIResource getWindowTitleInactiveBackground() *************** public abstract class MetalTheme *** 461,467 **** /** * Returns the foreground color for an inactive window title. The default * implementation returns the color from {@link #getBlack()}. ! * * @return The foreground color for an inactive window title. */ public ColorUIResource getWindowTitleInactiveForeground() --- 461,467 ---- /** * Returns the foreground color for an inactive window title. The default * implementation returns the color from {@link #getBlack()}. ! * * @return The foreground color for an inactive window title. */ public ColorUIResource getWindowTitleInactiveForeground() *************** public abstract class MetalTheme *** 471,477 **** /** * Returns the color used for black. ! * * @return The color used for black. */ protected ColorUIResource getBlack() --- 471,477 ---- /** * Returns the color used for black. ! * * @return The color used for black. */ protected ColorUIResource getBlack() *************** public abstract class MetalTheme *** 481,487 **** /** * Returns the color used for white. ! * * @return The color used for white. */ protected ColorUIResource getWhite() --- 481,487 ---- /** * Returns the color used for white. ! * * @return The color used for white. */ protected ColorUIResource getWhite() *************** public abstract class MetalTheme *** 491,576 **** /** * Returns the first primary color for this theme. ! * * @return The first primary color. */ protected abstract ColorUIResource getPrimary1(); ! /** * Returns the second primary color for this theme. ! * * @return The second primary color. */ protected abstract ColorUIResource getPrimary2(); /** * Returns the third primary color for this theme. ! * * @return The third primary color. */ protected abstract ColorUIResource getPrimary3(); ! /** * Returns the first secondary color for this theme. ! * * @return The first secondary color. */ protected abstract ColorUIResource getSecondary1(); /** * Returns the second secondary color for this theme. ! * * @return The second secondary color. */ protected abstract ColorUIResource getSecondary2(); /** * Returns the third secondary color for this theme. ! * * @return The third secondary color. */ protected abstract ColorUIResource getSecondary3(); /** * Returns the font used for text on controls. ! * * @return The font used for text on controls. */ public abstract FontUIResource getControlTextFont(); /** * Returns the font used for text in menus. ! * * @return The font used for text in menus. */ public abstract FontUIResource getMenuTextFont(); /** * Returns the font used for sub text. ! * * @return The font used for sub text. */ public abstract FontUIResource getSubTextFont(); ! /** * Returns the font used for system text. ! * * @return The font used for system text. */ public abstract FontUIResource getSystemTextFont(); ! /** * Returns the font used for user text. ! * * @return The font used for user text. */ public abstract FontUIResource getUserTextFont(); /** * Returns the font used for window titles. ! * * @return The font used for window titles. */ public abstract FontUIResource getWindowTitleFont(); ! } --- 491,576 ---- /** * Returns the first primary color for this theme. ! * * @return The first primary color. */ protected abstract ColorUIResource getPrimary1(); ! /** * Returns the second primary color for this theme. ! * * @return The second primary color. */ protected abstract ColorUIResource getPrimary2(); /** * Returns the third primary color for this theme. ! * * @return The third primary color. */ protected abstract ColorUIResource getPrimary3(); ! /** * Returns the first secondary color for this theme. ! * * @return The first secondary color. */ protected abstract ColorUIResource getSecondary1(); /** * Returns the second secondary color for this theme. ! * * @return The second secondary color. */ protected abstract ColorUIResource getSecondary2(); /** * Returns the third secondary color for this theme. ! * * @return The third secondary color. */ protected abstract ColorUIResource getSecondary3(); /** * Returns the font used for text on controls. ! * * @return The font used for text on controls. */ public abstract FontUIResource getControlTextFont(); /** * Returns the font used for text in menus. ! * * @return The font used for text in menus. */ public abstract FontUIResource getMenuTextFont(); /** * Returns the font used for sub text. ! * * @return The font used for sub text. */ public abstract FontUIResource getSubTextFont(); ! /** * Returns the font used for system text. ! * * @return The font used for system text. */ public abstract FontUIResource getSystemTextFont(); ! /** * Returns the font used for user text. ! * * @return The font used for user text. */ public abstract FontUIResource getUserTextFont(); /** * Returns the font used for window titles. ! * * @return The font used for window titles. */ public abstract FontUIResource getWindowTitleFont(); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalToggleButtonUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalToggleButtonUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalToggleButtonUI.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalToggleButtonUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalToggleButtonUI *** 113,121 **** } /** ! * Returns the color for the text label of disabled buttons. The value * is initialised in the {@link #installDefaults(AbstractButton)} method ! * by reading the ToggleButton.disabledText item from the UI * defaults. * * @return The color for the text label of disabled buttons. --- 113,121 ---- } /** ! * Returns the color for the text label of disabled buttons. The value * is initialised in the {@link #installDefaults(AbstractButton)} method ! * by reading the ToggleButton.disabledText item from the UI * defaults. * * @return The color for the text label of disabled buttons. *************** public class MetalToggleButtonUI *** 127,133 **** /** * Updates the button with the defaults for this look and feel. ! * * @param b the button. */ public void installDefaults(AbstractButton b) --- 127,133 ---- /** * Updates the button with the defaults for this look and feel. ! * * @param b the button. */ public void installDefaults(AbstractButton b) *************** public class MetalToggleButtonUI *** 137,146 **** selectColor = UIManager.getColor(getPropertyPrefix() + "select"); disabledTextColor = UIManager.getColor(getPropertyPrefix() + "disabledText"); } ! /** ! * Paints the button background when it is pressed/selected. ! * * @param g the graphics device. * @param b the button. */ --- 137,146 ---- selectColor = UIManager.getColor(getPropertyPrefix() + "select"); disabledTextColor = UIManager.getColor(getPropertyPrefix() + "disabledText"); } ! /** ! * Paints the button background when it is pressed/selected. ! * * @param g the graphics device. * @param b the button. */ *************** public class MetalToggleButtonUI *** 155,173 **** g.setColor(saved); } } ! /** * Paints the text for the button. ! * * As of JDK 1.4 this method is obsolete. ! * Use {@link BasicButtonUI#paintText(java.awt.Graphics, * javax.swing.AbstractButton, java.awt.Rectangle, java.lang.String)}. * * @param g the graphics device. * @param c the component. * @param textRect the bounds for the text. * @param text the text. ! * */ protected void paintText(Graphics g, JComponent c, Rectangle textRect, String text) --- 155,173 ---- g.setColor(saved); } } ! /** * Paints the text for the button. ! * * As of JDK 1.4 this method is obsolete. ! * Use {@link BasicButtonUI#paintText(java.awt.Graphics, * javax.swing.AbstractButton, java.awt.Rectangle, java.lang.String)}. * * @param g the graphics device. * @param c the component. * @param textRect the bounds for the text. * @param text the text. ! * */ protected void paintText(Graphics g, JComponent c, Rectangle textRect, String text) *************** public class MetalToggleButtonUI *** 185,194 **** g.setFont(savedFont); g.setColor(savedColor); } ! /** * Draws the focus highlight around the text and icon. ! * * @param g the graphics device. * @param b the button. */ --- 185,194 ---- g.setFont(savedFont); g.setColor(savedColor); } ! /** * Draws the focus highlight around the text and icon. ! * * @param g the graphics device. * @param b the button. */ *************** public class MetalToggleButtonUI *** 201,207 **** g.setColor(focusColor); Rectangle fr = iconRect.union(textRect); g.drawRect(fr.x - 1, fr.y - 1, fr.width + 1, fr.height + 1); ! g.setColor(saved); } /** --- 201,207 ---- g.setColor(focusColor); Rectangle fr = iconRect.union(textRect); g.drawRect(fr.x - 1, fr.y - 1, fr.width + 1, fr.height + 1); ! g.setColor(saved); } /** *************** public class MetalToggleButtonUI *** 226,230 **** else super.update(g, c); } ! } --- 226,230 ---- else super.update(g, c); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalToolBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalToolBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalToolBarUI.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalToolBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicToolB *** 59,70 **** */ public class MetalToolBarUI extends BasicToolBarUI { ! /** ! * A listener (no longer used) that responds when components are added to or * removed from the {@link JToolBar}. The required behaviour is now ! * handled in the super class. ! * * @see MetalToolBarUI#createContainerListener() */ protected class MetalContainerListener --- 59,70 ---- */ public class MetalToolBarUI extends BasicToolBarUI { ! /** ! * A listener (no longer used) that responds when components are added to or * removed from the {@link JToolBar}. The required behaviour is now ! * handled in the super class. ! * * @see MetalToolBarUI#createContainerListener() */ protected class MetalContainerListener *************** public class MetalToolBarUI extends Basi *** 81,89 **** /** * A listener (no longer used) that responds to property change events in a ! * {@link JToolBar} component. The required behaviour is now handled in the ! * super class. ! * * @see MetalToolBarUI#createRolloverListener() */ protected class MetalRolloverListener --- 81,89 ---- /** * A listener (no longer used) that responds to property change events in a ! * {@link JToolBar} component. The required behaviour is now handled in the ! * super class. ! * * @see MetalToolBarUI#createRolloverListener() */ protected class MetalRolloverListener *************** public class MetalToolBarUI extends Basi *** 97,112 **** // Nothing to do here. } } ! ! /** * The container listener (an implementation specific field, according to the * spec, and not used in GNU Classpath). */ protected ContainerListener contListener; ! ! /** * The rollover listener (an implementation specific field, according to the ! * spec, and not used in GNU Classpath). */ protected PropertyChangeListener rolloverListener; --- 97,112 ---- // Nothing to do here. } } ! ! /** * The container listener (an implementation specific field, according to the * spec, and not used in GNU Classpath). */ protected ContainerListener contListener; ! ! /** * The rollover listener (an implementation specific field, according to the ! * spec, and not used in GNU Classpath). */ protected PropertyChangeListener rolloverListener; *************** public class MetalToolBarUI extends Basi *** 129,171 **** { return new MetalToolBarUI(); } ! /** * Returns null as permitted by recent versions of the API ! * specification. Originally it seems this method returned a new instance of * {@link MetalRolloverListener}, but this is now redundant. ! * * @return null. */ protected PropertyChangeListener createRolloverListener() { return null; } ! /** * Returns null as permitted by recent versions of the API ! * specification. Originally it seems this method returned a new instance of * {@link MetalContainerListener}, but this is now redundant. ! * * @return null. */ protected ContainerListener createContainerListener() { return null; } ! /** * Returns a border with no rollover effect for buttons in the tool bar. ! * * @return A border. ! * * @see MetalBorders#getToolbarButtonBorder() */ protected Border createNonRolloverBorder() { ! return MetalBorders.getToolbarButtonBorder(); } ! /** * Sets the offset for the window used for dragging the toolbar. * It is set as long as the window is not null (it has been installed). --- 129,171 ---- { return new MetalToolBarUI(); } ! /** * Returns null as permitted by recent versions of the API ! * specification. Originally it seems this method returned a new instance of * {@link MetalRolloverListener}, but this is now redundant. ! * * @return null. */ protected PropertyChangeListener createRolloverListener() { return null; } ! /** * Returns null as permitted by recent versions of the API ! * specification. Originally it seems this method returned a new instance of * {@link MetalContainerListener}, but this is now redundant. ! * * @return null. */ protected ContainerListener createContainerListener() { return null; } ! /** * Returns a border with no rollover effect for buttons in the tool bar. ! * * @return A border. ! * * @see MetalBorders#getToolbarButtonBorder() */ protected Border createNonRolloverBorder() { ! return MetalBorders.getToolbarButtonBorder(); } ! /** * Sets the offset for the window used for dragging the toolbar. * It is set as long as the window is not null (it has been installed). *************** public class MetalToolBarUI extends Basi *** 175,197 **** if (dragWindow != null) dragWindow.setOffset(p); } ! ! /** * Creates and returns an instance of MetalDockingListener. ! * * @return an instance of MetalDockingListener. */ protected MouseInputListener createDockingListener() { return new MetalDockingListener(toolBar); } ! /** * This is the MouseHandler class that allows the user to drag the JToolBar * in and out of the parent and dock it if it can. */ protected class MetalDockingListener extends BasicToolBarUI.DockingListener ! { /** * Creates a new DockingListener object. * --- 175,197 ---- if (dragWindow != null) dragWindow.setOffset(p); } ! ! /** * Creates and returns an instance of MetalDockingListener. ! * * @return an instance of MetalDockingListener. */ protected MouseInputListener createDockingListener() { return new MetalDockingListener(toolBar); } ! /** * This is the MouseHandler class that allows the user to drag the JToolBar * in and out of the parent and dock it if it can. */ protected class MetalDockingListener extends BasicToolBarUI.DockingListener ! { /** * Creates a new DockingListener object. * *************** public class MetalToolBarUI extends Basi *** 201,207 **** { super(t); } ! /** * This method is called when the mouse is pressed in the JToolBar. If the * press doesn't occur in a place where it causes the JToolBar to be --- 201,207 ---- { super(t); } ! /** * This method is called when the mouse is pressed in the JToolBar. If the * press doesn't occur in a place where it causes the JToolBar to be *************** public class MetalToolBarUI extends Basi *** 214,220 **** super.mousePressed(e); setDragOffset(new Point(e.getX(), e.getY())); } ! /** * This method is called when the mouse is dragged. It delegates the drag * painting to the dragTo method. --- 214,220 ---- super.mousePressed(e); setDragOffset(new Point(e.getX(), e.getY())); } ! /** * This method is called when the mouse is dragged. It delegates the drag * painting to the dragTo method. *************** public class MetalToolBarUI extends Basi *** 223,229 **** */ public void mouseDragged(MouseEvent e) { ! // Does not do anything differently than dragging // BasicToolBarUI.DockingListener super.mouseDragged(e); } --- 223,229 ---- */ public void mouseDragged(MouseEvent e) { ! // Does not do anything differently than dragging // BasicToolBarUI.DockingListener super.mouseDragged(e); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalToolTipUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalToolTipUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalToolTipUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalToolTipUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.basic.BasicToolT *** 63,100 **** public class MetalToolTipUI extends BasicToolTipUI { ! /** ! * The amount of space between the tool tip text and the accelerator ! * description (if visible). */ public static final int padSpaceBetweenStrings = 12; /** The shared UI instance. */ private static MetalToolTipUI instance; ! /** A flag controlling the visibility of the accelerator (if there is one). */ private boolean isAcceleratorHidden; ! /** A string representing the accelerator key for the component. */ private String acceleratorString; ! ! /** * The delimiter for the accelerator string. */ private String acceleratorDelimiter; ! /** The font for the accelerator string. */ private Font acceleratorFont; ! /** The color for the accelerator string. */ private Color acceleratorForeground; ! /** The active border. */ private Border activeBorder; ! /** The inactive border. */ private Border inactiveBorder; ! /** * Constructs a new instance of MetalToolTipUI. */ --- 63,100 ---- public class MetalToolTipUI extends BasicToolTipUI { ! /** ! * The amount of space between the tool tip text and the accelerator ! * description (if visible). */ public static final int padSpaceBetweenStrings = 12; /** The shared UI instance. */ private static MetalToolTipUI instance; ! /** A flag controlling the visibility of the accelerator (if there is one). */ private boolean isAcceleratorHidden; ! /** A string representing the accelerator key for the component. */ private String acceleratorString; ! ! /** * The delimiter for the accelerator string. */ private String acceleratorDelimiter; ! /** The font for the accelerator string. */ private Font acceleratorFont; ! /** The color for the accelerator string. */ private Color acceleratorForeground; ! /** The active border. */ private Border activeBorder; ! /** The inactive border. */ private Border inactiveBorder; ! /** * Constructs a new instance of MetalToolTipUI. */ *************** public class MetalToolTipUI *** 124,144 **** instance = new MetalToolTipUI(); return instance; } ! /** ! * Returns a string representing the accelerator key (if there is one) for * the component that the tool tip belongs to. ! * * @return A string representing the accelerator key. */ public String getAcceleratorString() { ! return acceleratorString; } ! /** * Installs the UI for the specified component (a {@link JToolTip}). ! * * @param c the {@link JToolTip} component. */ public void installUI(JComponent c) --- 124,144 ---- instance = new MetalToolTipUI(); return instance; } ! /** ! * Returns a string representing the accelerator key (if there is one) for * the component that the tool tip belongs to. ! * * @return A string representing the accelerator key. */ public String getAcceleratorString() { ! return acceleratorString; } ! /** * Installs the UI for the specified component (a {@link JToolTip}). ! * * @param c the {@link JToolTip} component. */ public void installUI(JComponent c) *************** public class MetalToolTipUI *** 151,162 **** c.setBorder(activeBorder); else c.setBorder(inactiveBorder); ! } } ! /** * Clears the defaults set in {@link #installUI(JComponent)}. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 151,162 ---- c.setBorder(activeBorder); else c.setBorder(inactiveBorder); ! } } ! /** * Clears the defaults set in {@link #installUI(JComponent)}. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MetalToolTipUI *** 165,171 **** if (c.getBorder() instanceof UIResource) c.setBorder(null); } ! /** * Returns true if the accelerator string is hidden, and * false otherwise. This setting is controlled by the --- 165,171 ---- if (c.getBorder() instanceof UIResource) c.setBorder(null); } ! /** * Returns true if the accelerator string is hidden, and * false otherwise. This setting is controlled by the *************** public class MetalToolTipUI *** 177,188 **** { return isAcceleratorHidden; } ! /** * Returns the preferred size for the {@link JToolTip} component. ! * * @param c the component (a {@link JToolTip}). ! * * @return The preferred size. */ public Dimension getPreferredSize(JComponent c) --- 177,188 ---- { return isAcceleratorHidden; } ! /** * Returns the preferred size for the {@link JToolTip} component. ! * * @param c the component (a {@link JToolTip}). ! * * @return The preferred size. */ public Dimension getPreferredSize(JComponent c) *************** public class MetalToolTipUI *** 196,205 **** } return d; } ! /** * Paints the tool tip. ! * * @param g the graphics context. * @param c the {@link JToolTip} component. */ --- 196,205 ---- } return d; } ! /** * Paints the tool tip. ! * * @param g the graphics context. * @param c the {@link JToolTip} component. */ *************** public class MetalToolTipUI *** 208,221 **** super.paint(g, c); // Somehow paint accelerator. Keep care for possible HTML rendering. } ! /** ! * Returns a string representing the accelerator for the component, or * null if the component has no accelerator. ! * * @param c the component. ! * ! * @return A string representing the accelerator (possibly * null). */ private String fetchAcceleratorString(JComponent c) --- 208,221 ---- super.paint(g, c); // Somehow paint accelerator. Keep care for possible HTML rendering. } ! /** ! * Returns a string representing the accelerator for the component, or * null if the component has no accelerator. ! * * @param c the component. ! * ! * @return A string representing the accelerator (possibly * null). */ private String fetchAcceleratorString(JComponent c) *************** public class MetalToolTipUI *** 240,258 **** mne = button.getMnemonic(); } if (mne > 0) ! ks = KeyStroke.getKeyStroke(Character.toUpperCase((char) mne), InputEvent.ALT_MASK, false); if (ks != null) result = acceleratorToString(ks); } return result; } ! /** * Returns a string representing an accelerator. ! * * @param accelerator the accelerator (null not permitted). ! * * @return A string representing an accelerator. */ private String acceleratorToString(KeyStroke accelerator) --- 240,258 ---- mne = button.getMnemonic(); } if (mne > 0) ! ks = KeyStroke.getKeyStroke(Character.toUpperCase((char) mne), InputEvent.ALT_MASK, false); if (ks != null) result = acceleratorToString(ks); } return result; } ! /** * Returns a string representing an accelerator. ! * * @param accelerator the accelerator (null not permitted). ! * * @return A string representing an accelerator. */ private String acceleratorToString(KeyStroke accelerator) *************** public class MetalToolTipUI *** 262,270 **** int modifiers = accelerator.getModifiers(); char keyChar = accelerator.getKeyChar(); int keyCode = accelerator.getKeyCode(); ! if (modifiers != 0) ! modifiersText = KeyEvent.getKeyModifiersText(modifiers) + acceleratorDelimiter; if (keyCode == KeyEvent.VK_UNDEFINED) --- 262,270 ---- int modifiers = accelerator.getModifiers(); char keyChar = accelerator.getKeyChar(); int keyCode = accelerator.getKeyCode(); ! if (modifiers != 0) ! modifiersText = KeyEvent.getKeyModifiersText(modifiers) + acceleratorDelimiter; if (keyCode == KeyEvent.VK_UNDEFINED) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalTreeUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalTreeUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalTreeUI.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalTreeUI.java Tue Jan 11 19:46:05 2011 *************** public class MetalTreeUI extends BasicTr *** 69,75 **** if (e.getPropertyName().equals(LINE_STYLE_PROPERTY)) decodeLineStyle(e.getNewValue()); } ! } /** --- 69,75 ---- if (e.getPropertyName().equals(LINE_STYLE_PROPERTY)) decodeLineStyle(e.getNewValue()); } ! } /** *************** public class MetalTreeUI extends BasicTr *** 137,143 **** { return new MetalTreeUI(); } ! /** * The horizontal element of legs between nodes starts at the right of the * left-hand side of the child node by default. This method makes the --- 137,143 ---- { return new MetalTreeUI(); } ! /** * The horizontal element of legs between nodes starts at the right of the * left-hand side of the child node by default. This method makes the *************** public class MetalTreeUI extends BasicTr *** 150,168 **** /** * Configures the specified component appropriate for the look and feel. ! * This method is invoked when the ComponentUI instance is being installed ! * as the UI delegate on the specified component. This method should completely * configure the component for the look and feel, including the following: ! * 1. Install any default property values for color, fonts, borders, icons, * opacity, etc. on the component. Whenever possible, property values * initialized by the client program should not be overridden. * 2. Install a LayoutManager on the component if necessary. * 3. Create/add any required sub-components to the component. * 4. Create/install event listeners on the component. ! * 5. Create/install a PropertyChangeListener on the component in order * to detect and respond to component property changes appropriately. * 6. Install keyboard UI (mnemonics, traversal, etc.) on the component. ! * 7. Initialize any appropriate instance data. */ public void installUI(JComponent c) { --- 150,168 ---- /** * Configures the specified component appropriate for the look and feel. ! * This method is invoked when the ComponentUI instance is being installed ! * as the UI delegate on the specified component. This method should completely * configure the component for the look and feel, including the following: ! * 1. Install any default property values for color, fonts, borders, icons, * opacity, etc. on the component. Whenever possible, property values * initialized by the client program should not be overridden. * 2. Install a LayoutManager on the component if necessary. * 3. Create/add any required sub-components to the component. * 4. Create/install event listeners on the component. ! * 5. Create/install a PropertyChangeListener on the component in order * to detect and respond to component property changes appropriately. * 6. Install keyboard UI (mnemonics, traversal, etc.) on the component. ! * 7. Initialize any appropriate instance data. */ public void installUI(JComponent c) { *************** public class MetalTreeUI extends BasicTr *** 174,194 **** lineStyleListener = new LineStyleListener(); c.addPropertyChangeListener(lineStyleListener); } ! /** ! * Reverses configuration which was done on the specified component during ! * installUI. This method is invoked when this UIComponent instance is being ! * removed as the UI delegate for the specified component. This method should ! * undo the configuration performed in installUI, being careful to leave the ! * JComponent instance in a clean state (no extraneous listeners, ! * look-and-feel-specific property objects, etc.). This should include * the following: * 1. Remove any UI-set borders from the component. * 2. Remove any UI-set layout managers on the component. * 3. Remove any UI-added sub-components from the component. * 4. Remove any UI-added event/property listeners from the component. * 5. Remove any UI-installed keyboard UI from the component. ! * 6. Nullify any allocated instance data objects to allow for GC. */ public void uninstallUI(JComponent c) { --- 174,194 ---- lineStyleListener = new LineStyleListener(); c.addPropertyChangeListener(lineStyleListener); } ! /** ! * Reverses configuration which was done on the specified component during ! * installUI. This method is invoked when this UIComponent instance is being ! * removed as the UI delegate for the specified component. This method should ! * undo the configuration performed in installUI, being careful to leave the ! * JComponent instance in a clean state (no extraneous listeners, ! * look-and-feel-specific property objects, etc.). This should include * the following: * 1. Remove any UI-set borders from the component. * 2. Remove any UI-set layout managers on the component. * 3. Remove any UI-added sub-components from the component. * 4. Remove any UI-added event/property listeners from the component. * 5. Remove any UI-installed keyboard UI from the component. ! * 6. Nullify any allocated instance data objects to allow for GC. */ public void uninstallUI(JComponent c) { *************** public class MetalTreeUI extends BasicTr *** 197,209 **** c.removePropertyChangeListener(lineStyleListener); lineStyleListener = null; } ! /** * This function converts between the string passed into the client * property and the internal representation (currently an int). ! * * @param lineStyleFlag - String representation ! */ protected void decodeLineStyle(Object lineStyleFlag) { if (lineStyleFlag == null || lineStyleFlag.equals(LINE_STYLE_VALUE_ANGLED)) --- 197,209 ---- c.removePropertyChangeListener(lineStyleListener); lineStyleListener = null; } ! /** * This function converts between the string passed into the client * property and the internal representation (currently an int). ! * * @param lineStyleFlag - String representation ! */ protected void decodeLineStyle(Object lineStyleFlag) { if (lineStyleFlag == null || lineStyleFlag.equals(LINE_STYLE_VALUE_ANGLED)) *************** public class MetalTreeUI extends BasicTr *** 218,224 **** /** * Checks if the location is in expand control. ! * * @param row - current row * @param rowLevel - current level * @param mouseX - current x location of the mouse click --- 218,224 ---- /** * Checks if the location is in expand control. ! * * @param row - current row * @param rowLevel - current level * @param mouseX - current x location of the mouse click *************** public class MetalTreeUI extends BasicTr *** 227,259 **** protected boolean isLocationInExpandControl(int row, int rowLevel, int mouseX, int mouseY) { ! return super.isLocationInExpandControl(tree.getPathForRow(row), mouseX, mouseY); } ! /** ! * Paints the specified component appropriate for the look and feel. ! * This method is invoked from the ComponentUI.update method when the ! * specified component is being painted. Subclasses should override this ! * method and use the specified Graphics object to render the content of * the component. ! * * @param g - the current graphics configuration. * @param c - the current component to draw */ public void paint(Graphics g, JComponent c) { // Calls BasicTreeUI's paint since it takes care of painting all ! // types of icons. super.paint(g, c); if (lineStyle == LINE_STYLE_HORIZONTAL) paintHorizontalSeparators(g, c); } ! /** * Paints the horizontal separators. ! * * @param g - the current graphics configuration. * @param c - the current component to draw */ --- 227,259 ---- protected boolean isLocationInExpandControl(int row, int rowLevel, int mouseX, int mouseY) { ! return super.isLocationInExpandControl(tree.getPathForRow(row), mouseX, mouseY); } ! /** ! * Paints the specified component appropriate for the look and feel. ! * This method is invoked from the ComponentUI.update method when the ! * specified component is being painted. Subclasses should override this ! * method and use the specified Graphics object to render the content of * the component. ! * * @param g - the current graphics configuration. * @param c - the current component to draw */ public void paint(Graphics g, JComponent c) { // Calls BasicTreeUI's paint since it takes care of painting all ! // types of icons. super.paint(g, c); if (lineStyle == LINE_STYLE_HORIZONTAL) paintHorizontalSeparators(g, c); } ! /** * Paints the horizontal separators. ! * * @param g - the current graphics configuration. * @param c - the current component to draw */ *************** public class MetalTreeUI extends BasicTr *** 282,295 **** } } ! /** ! * Paints the vertical part of the leg. The receiver should NOT modify * clipBounds, insets. ! * * @param g - the current graphics configuration. * @param clipBounds - ! * @param insets - * @param path - the current path */ protected void paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds, --- 282,295 ---- } } ! /** ! * Paints the vertical part of the leg. The receiver should NOT modify * clipBounds, insets. ! * * @param g - the current graphics configuration. * @param clipBounds - ! * @param insets - * @param path - the current path */ protected void paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds, *************** public class MetalTreeUI extends BasicTr *** 311,317 **** boolean isLeaf) { if (lineStyle == LINE_STYLE_ANGLED) ! super.paintHorizontalPartOfLeg(g, clipBounds, insets, bounds, path, row, isExpanded, hasBeenExpanded, isLeaf); } } --- 311,317 ---- boolean isLeaf) { if (lineStyle == LINE_STYLE_ANGLED) ! super.paintHorizontalPartOfLeg(g, clipBounds, insets, bounds, path, row, isExpanded, hasBeenExpanded, isLeaf); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalUtils.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalUtils.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/MetalUtils.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/MetalUtils.java Tue Jan 11 19:46:05 2011 *************** class MetalUtils *** 180,186 **** { paintGradient(g, x, y, w, h, dir, uiProp, null); } ! /** * Paints the typical Metal gradient. See {@link #paintGradient(Graphics, * int, int, int, int, float, float, Color, Color, Color, int, int[][])} --- 180,186 ---- { paintGradient(g, x, y, w, h, dir, uiProp, null); } ! /** * Paints the typical Metal gradient. See {@link #paintGradient(Graphics, * int, int, int, int, float, float, Color, Color, Color, int, int[][])} *************** class MetalUtils *** 216,229 **** /** * Paints the typical Metal gradient. The gradient is painted as follows: *
                                            !    * 
                                                 * +-------+--------+--------+-----------------------------+
                                                 * |       |        |        |                             |
                                                 * +-------+--------+--------+-----------------------------+
                                                 * c1  ->  c2  --   c2  ->   c1         -------->          c3
                                                 * < -g1- > < -g2- > < -g1- >
                                                 * 
                                            ! * * There are 4 distinct areas in this gradient: *
                                              *
                                            1. A gradient from color 1 to color 2 with the relative width specified --- 216,229 ---- /** * Paints the typical Metal gradient. The gradient is painted as follows: *
                                              !    *
                                                   * +-------+--------+--------+-----------------------------+
                                                   * |       |        |        |                             |
                                                   * +-------+--------+--------+-----------------------------+
                                                   * c1  ->  c2  --   c2  ->   c1         -------->          c3
                                                   * < -g1- > < -g2- > < -g1- >
                                                   * 
                                              ! * * There are 4 distinct areas in this gradient: *
                                                *
                                              1. A gradient from color 1 to color 2 with the relative width specified *************** class MetalUtils *** 306,312 **** float g1, float g2, Color c1, Color c2, Color c3, int[][] mask) { ! if (g instanceof Graphics2D && SystemProperties.getProperty("gnu.javax.swing.noGraphics2D") == null) { --- 306,312 ---- float g1, float g2, Color c1, Color c2, Color c3, int[][] mask) { ! if (g instanceof Graphics2D && SystemProperties.getProperty("gnu.javax.swing.noGraphics2D") == null) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/OceanTheme.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/OceanTheme.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/metal/OceanTheme.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/metal/OceanTheme.java Tue Jan 11 19:46:05 2011 *************** public class OceanTheme extends DefaultM *** 130,148 **** /** * Returns the OceanTheme's color for disabled menu foreground, ! * */ public ColorUIResource getMenuDisabledForeground() { return INACTIVE_CONTROL_TEXT; } ! /** * Returns the OceanTheme's color for black, the RGB value * (51, 51, 51). * ! * @return Returns the OceanTheme's value for black */ protected ColorUIResource getBlack() { --- 130,148 ---- /** * Returns the OceanTheme's color for disabled menu foreground, ! * */ public ColorUIResource getMenuDisabledForeground() { return INACTIVE_CONTROL_TEXT; } ! /** * Returns the OceanTheme's color for black, the RGB value * (51, 51, 51). * ! * @return Returns the OceanTheme's value for black */ protected ColorUIResource getBlack() { *************** public class OceanTheme extends DefaultM *** 157,163 **** { return PRIMARY1; } ! /** * Return the OceanTheme's value for primary 2, the RGB value * (163, 184, 204). --- 157,163 ---- { return PRIMARY1; } ! /** * Return the OceanTheme's value for primary 2, the RGB value * (163, 184, 204). *************** public class OceanTheme extends DefaultM *** 166,172 **** { return PRIMARY2; } ! /** * Return the OceanTheme's value for primary 1, the RGB value * (184, 207, 229). --- 166,172 ---- { return PRIMARY2; } ! /** * Return the OceanTheme's value for primary 1, the RGB value * (184, 207, 229). diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiButtonUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiButtonUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiButtonUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiButtonUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 53,84 **** * A UI delegate that that coordinates multiple {@link ButtonUI} instances, one * from the primary look and feel, and one or more from the auxiliary look and * feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiButtonUI extends ButtonUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiButtonUI instance. ! * * @see #createUI(JComponent) */ ! public MultiButtonUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiButtonUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 53,84 ---- * A UI delegate that that coordinates multiple {@link ButtonUI} instances, one * from the primary look and feel, and one or more from the auxiliary look and * feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiButtonUI extends ButtonUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiButtonUI instance. ! * * @see #createUI(JComponent) */ ! public MultiButtonUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiButtonUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiButtonUI extends Butto *** 86,96 **** MultiButtonUI mui = new MultiButtonUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiButtonUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiButtonUI mui = new MultiButtonUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiButtonUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiButtonUI extends Butto *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiButtonUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiButtonUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiButtonUI extends Butto *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiButtonUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiButtonUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiButtonUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiButtonUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiButtonUI extends Butto *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiButtonUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiButtonUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiButtonUI extends Butto *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiButtonUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiButtonUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiButtonUI extends Butto *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiButtonUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiButtonUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiButtonUI extends Butto *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiButtonUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiButtonUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiButtonUI extends Butto *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiButtonUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiButtonUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiButtonUI extends Butto *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiButtonUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiButtonUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiButtonUI extends Butto *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiButtonUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiButtonUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiButtonUI extends Butto *** 348,352 **** } return result; } ! ! } \ No newline at end of file --- 348,352 ---- } return result; } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiColorChooserUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiColorChooserUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiColorChooserUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiColorChooserUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ColorChooserUI; *** 50,84 **** import javax.swing.plaf.ComponentUI; /** ! * A UI delegate that that coordinates multiple {@link ColorChooserUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiColorChooserUI extends ColorChooserUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiColorChooserUI instance. ! * * @see #createUI(JComponent) */ ! public MultiColorChooserUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary ! * look and feels support this component, a MultiColorChooserUI * is returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.ComponentUI; /** ! * A UI delegate that that coordinates multiple {@link ColorChooserUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiColorChooserUI extends ColorChooserUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiColorChooserUI instance. ! * * @see #createUI(JComponent) */ ! public MultiColorChooserUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary ! * look and feels support this component, a MultiColorChooserUI * is returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiColorChooserUI extends *** 86,96 **** MultiColorChooserUI mui = new MultiColorChooserUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiColorChooserUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiColorChooserUI mui = new MultiColorChooserUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiColorChooserUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiColorChooserUI extends *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiColorChooserUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiColorChooserUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiColorChooserUI extends *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiColorChooserUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiColorChooserUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiColorChooserUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiColorChooserUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiColorChooserUI extends *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiColorChooserUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiColorChooserUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiColorChooserUI extends *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiColorChooserUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiColorChooserUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiColorChooserUI extends *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiColorChooserUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiColorChooserUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiColorChooserUI extends *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiColorChooserUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiColorChooserUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiColorChooserUI extends *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiColorChooserUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiColorChooserUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiColorChooserUI extends *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiColorChooserUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiColorChooserUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiColorChooserUI extends *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiColorChooserUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiColorChooserUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiColorChooserUI extends *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiComboBoxUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiComboBoxUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiComboBoxUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiComboBoxUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComboBoxUI; *** 51,85 **** import javax.swing.plaf.ComponentUI; /** ! * A UI delegate that that coordinates multiple {@link ComboBoxUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiComboBoxUI extends ComboBoxUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiComboBoxUI instance. ! * * @see #createUI(JComponent) */ ! public MultiComboBoxUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary ! * look and feels support this component, a MultiComboBoxUI * is returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 51,85 ---- import javax.swing.plaf.ComponentUI; /** ! * A UI delegate that that coordinates multiple {@link ComboBoxUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiComboBoxUI extends ComboBoxUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiComboBoxUI instance. ! * * @see #createUI(JComponent) */ ! public MultiComboBoxUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary ! * look and feels support this component, a MultiComboBoxUI * is returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiComboBoxUI extends Com *** 87,97 **** MultiComboBoxUI mui = new MultiComboBoxUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiComboBoxUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 87,97 ---- MultiComboBoxUI mui = new MultiComboBoxUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiComboBoxUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiComboBoxUI extends Com *** 105,113 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiComboBoxUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 105,113 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiComboBoxUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiComboBoxUI extends Com *** 119,157 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiComboBoxUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 119,157 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiComboBoxUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiComboBoxUI extends Com *** 164,174 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiComboBoxUI. ! * * @param g the graphics device. * @param c the component. */ --- 164,174 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiComboBoxUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiComboBoxUI extends Com *** 183,191 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiComboBoxUI. ! * * @param g the graphics device. * @param c the component. */ --- 183,191 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiComboBoxUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiComboBoxUI extends Com *** 198,221 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 198,221 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiComboBoxUI extends Com *** 227,251 **** /* Dimension ignored = */ ui.getPreferredSize(c); } return result; ! } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,251 ---- /* Dimension ignored = */ ui.getPreferredSize(c); } return result; ! } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiComboBoxUI extends Com *** 258,281 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 258,281 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiComboBoxUI extends Com *** 288,311 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiComboBoxUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 288,311 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiComboBoxUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiComboBoxUI extends Com *** 318,342 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiComboBoxUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 318,342 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiComboBoxUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiComboBoxUI extends Com *** 349,363 **** } return result; } ! /** ! * Calls the {@link ComboBoxUI#setPopupVisible(JComboBox, boolean)} method * for all the UI delegates managed by this MultiComboBoxUI. ! * * @param c the component. * @param visible the visible state. */ ! public void setPopupVisible(JComboBox c, boolean visible) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 349,363 ---- } return result; } ! /** ! * Calls the {@link ComboBoxUI#setPopupVisible(JComboBox, boolean)} method * for all the UI delegates managed by this MultiComboBoxUI. ! * * @param c the component. * @param visible the visible state. */ ! public void setPopupVisible(JComboBox c, boolean visible) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiComboBoxUI extends Com *** 368,388 **** } /** ! * Calls the {@link ComboBoxUI#isPopupVisible(JComboBox)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The result for the UI delegate from the primary look and feel. */ ! public boolean isPopupVisible(JComboBox c) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComboBoxUI ui = (ComboBoxUI) iterator.next(); result = ui.isPopupVisible(c); --- 368,388 ---- } /** ! * Calls the {@link ComboBoxUI#isPopupVisible(JComboBox)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The result for the UI delegate from the primary look and feel. */ ! public boolean isPopupVisible(JComboBox c) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComboBoxUI ui = (ComboBoxUI) iterator.next(); result = ui.isPopupVisible(c); *************** public class MultiComboBoxUI extends Com *** 397,419 **** } /** ! * Calls the {@link ComboBoxUI#isFocusTraversable(JComboBox)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * * @return true if the combo box is traversable according to the ! * UI delegate in the primary look and feel, and false ! * otherwise. */ ! public boolean isFocusTraversable(JComboBox c) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComboBoxUI ui = (ComboBoxUI) iterator.next(); result = ui.isFocusTraversable(c); --- 397,419 ---- } /** ! * Calls the {@link ComboBoxUI#isFocusTraversable(JComboBox)} method for all ! * the UI delegates managed by this MultiComboBoxUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * * @return true if the combo box is traversable according to the ! * UI delegate in the primary look and feel, and false ! * otherwise. */ ! public boolean isFocusTraversable(JComboBox c) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComboBoxUI ui = (ComboBoxUI) iterator.next(); result = ui.isFocusTraversable(c); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiDesktopIconUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiDesktopIconUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiDesktopIconUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiDesktopIconUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.DesktopIconUI; /** ! * A UI delegate that that coordinates multiple {@link DesktopIconUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiDesktopIconUI extends DesktopIconUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiDesktopIconUI instance. ! * * @see #createUI(JComponent) */ ! public MultiDesktopIconUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiDesktopIconUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.DesktopIconUI; /** ! * A UI delegate that that coordinates multiple {@link DesktopIconUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiDesktopIconUI extends DesktopIconUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiDesktopIconUI instance. ! * * @see #createUI(JComponent) */ ! public MultiDesktopIconUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiDesktopIconUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiDesktopIconUI extends *** 86,96 **** MultiDesktopIconUI mui = new MultiDesktopIconUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiDesktopIconUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiDesktopIconUI mui = new MultiDesktopIconUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiDesktopIconUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiDesktopIconUI extends *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiDesktopIconUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiDesktopIconUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiDesktopIconUI extends *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiDesktopIconUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiDesktopIconUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiDesktopIconUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiDesktopIconUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiDesktopIconUI extends *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiDesktopIconUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiDesktopIconUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiDesktopIconUI extends *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiDesktopIconUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiDesktopIconUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiDesktopIconUI extends *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopIconUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopIconUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiDesktopIconUI extends *** 226,250 **** /* Dimension ignored = */ ui.getPreferredSize(c); } return result; ! } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopIconUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 226,250 ---- /* Dimension ignored = */ ui.getPreferredSize(c); } return result; ! } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopIconUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiDesktopIconUI extends *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopIconUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopIconUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiDesktopIconUI extends *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiDesktopIconUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiDesktopIconUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiDesktopIconUI extends *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiDesktopIconUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiDesktopIconUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiDesktopIconUI extends *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiDesktopPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiDesktopPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiDesktopPaneUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiDesktopPaneUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.DesktopPaneUI; /** ! * A UI delegate that that coordinates multiple {@link DesktopPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiDesktopPaneUI extends DesktopPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiDesktopPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiDesktopPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiDesktopPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.DesktopPaneUI; /** ! * A UI delegate that that coordinates multiple {@link DesktopPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiDesktopPaneUI extends DesktopPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiDesktopPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiDesktopPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiDesktopPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiDesktopPaneUI extends *** 86,96 **** MultiDesktopPaneUI mui = new MultiDesktopPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiDesktopPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiDesktopPaneUI mui = new MultiDesktopPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiDesktopPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiDesktopPaneUI extends *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiDesktopPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiDesktopPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiDesktopPaneUI extends *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiDesktopPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiDesktopPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiDesktopPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiDesktopPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiDesktopPaneUI extends *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiDesktopPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiDesktopPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiDesktopPaneUI extends *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiDesktopPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiDesktopPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiDesktopPaneUI extends *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiDesktopPaneUI extends *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiDesktopPaneUI extends *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiDesktopPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiDesktopPaneUI extends *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiDesktopPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiDesktopPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiDesktopPaneUI extends *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiDesktopPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiDesktopPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiDesktopPaneUI extends *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiFileChooserUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiFileChooserUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiFileChooserUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiFileChooserUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 54,88 **** import javax.swing.plaf.FileChooserUI; /** ! * A UI delegate that that coordinates multiple {@link FileChooserUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiFileChooserUI extends FileChooserUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiFileChooserUI instance. ! * * @see #createUI(JComponent) */ ! public MultiFileChooserUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiFileChooserUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 54,88 ---- import javax.swing.plaf.FileChooserUI; /** ! * A UI delegate that that coordinates multiple {@link FileChooserUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiFileChooserUI extends FileChooserUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiFileChooserUI instance. ! * * @see #createUI(JComponent) */ ! public MultiFileChooserUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiFileChooserUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiFileChooserUI extends *** 90,100 **** MultiFileChooserUI mui = new MultiFileChooserUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiFileChooserUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 90,100 ---- MultiFileChooserUI mui = new MultiFileChooserUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiFileChooserUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiFileChooserUI extends *** 108,116 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiFileChooserUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 108,116 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiFileChooserUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiFileChooserUI extends *** 122,160 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiFileChooserUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiFileChooserUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 122,160 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiFileChooserUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiFileChooserUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiFileChooserUI extends *** 167,177 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiFileChooserUI. ! * * @param g the graphics device. * @param c the component. */ --- 167,177 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiFileChooserUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiFileChooserUI extends *** 186,194 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiFileChooserUI. ! * * @param g the graphics device. * @param c the component. */ --- 186,194 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiFileChooserUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiFileChooserUI extends *** 201,224 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiFileChooserUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 201,224 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiFileChooserUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiFileChooserUI extends *** 231,254 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiFileChooserUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 231,254 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiFileChooserUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiFileChooserUI extends *** 261,284 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiFileChooserUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 261,284 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiFileChooserUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiFileChooserUI extends *** 291,314 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 291,314 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiFileChooserUI extends *** 321,345 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 321,345 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiFileChooserUI extends *** 352,375 **** } return result; } ! /** * Calls the {@link FileChooserUI#getAcceptAllFileFilter(JFileChooser)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the filter for the UI delegate from the primary look and ! * feel. ! * * @param chooser the file chooser. ! * ! * @return The filter returned by the UI delegate from the primary ! * look and feel. */ ! public FileFilter getAcceptAllFileFilter(JFileChooser chooser) { FileFilter result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { FileChooserUI ui = (FileChooserUI) iterator.next(); result = ui.getAcceptAllFileFilter(chooser); --- 352,375 ---- } return result; } ! /** * Calls the {@link FileChooserUI#getAcceptAllFileFilter(JFileChooser)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the filter for the UI delegate from the primary look and ! * feel. ! * * @param chooser the file chooser. ! * ! * @return The filter returned by the UI delegate from the primary ! * look and feel. */ ! public FileFilter getAcceptAllFileFilter(JFileChooser chooser) { FileFilter result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { FileChooserUI ui = (FileChooserUI) iterator.next(); result = ui.getAcceptAllFileFilter(chooser); *************** public class MultiFileChooserUI extends *** 385,405 **** /** * Calls the {@link FileChooserUI#getFileView(JFileChooser)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the view for the UI delegate from the primary look and ! * feel. ! * * @param chooser the file chooser. ! * ! * @return The view returned by the UI delegate from the primary ! * look and feel. */ ! public FileView getFileView(JFileChooser chooser) { FileView result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { FileChooserUI ui = (FileChooserUI) iterator.next(); result = ui.getFileView(chooser); --- 385,405 ---- /** * Calls the {@link FileChooserUI#getFileView(JFileChooser)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the view for the UI delegate from the primary look and ! * feel. ! * * @param chooser the file chooser. ! * ! * @return The view returned by the UI delegate from the primary ! * look and feel. */ ! public FileView getFileView(JFileChooser chooser) { FileView result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { FileChooserUI ui = (FileChooserUI) iterator.next(); result = ui.getFileView(chooser); *************** public class MultiFileChooserUI extends *** 415,435 **** /** * Calls the {@link FileChooserUI#getApproveButtonText(JFileChooser)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the text for the UI delegate from the primary look and ! * feel. ! * * @param chooser the file chooser. ! * ! * @return The text returned by the UI delegate from the primary ! * look and feel. */ ! public String getApproveButtonText(JFileChooser chooser) { String result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { FileChooserUI ui = (FileChooserUI) iterator.next(); result = ui.getApproveButtonText(chooser); --- 415,435 ---- /** * Calls the {@link FileChooserUI#getApproveButtonText(JFileChooser)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the text for the UI delegate from the primary look and ! * feel. ! * * @param chooser the file chooser. ! * ! * @return The text returned by the UI delegate from the primary ! * look and feel. */ ! public String getApproveButtonText(JFileChooser chooser) { String result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { FileChooserUI ui = (FileChooserUI) iterator.next(); result = ui.getApproveButtonText(chooser); *************** public class MultiFileChooserUI extends *** 445,465 **** /** * Calls the {@link FileChooserUI#getDialogTitle(JFileChooser)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the title for the UI delegate from the primary look and ! * feel. ! * * @param chooser the file chooser. ! * ! * @return The title returned by the UI delegate from the primary ! * look and feel. */ ! public String getDialogTitle(JFileChooser chooser) { String result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { FileChooserUI ui = (FileChooserUI) iterator.next(); result = ui.getDialogTitle(chooser); --- 445,465 ---- /** * Calls the {@link FileChooserUI#getDialogTitle(JFileChooser)} method ! * for all the UI delegates managed by this MultiFileChooserUI, ! * returning the title for the UI delegate from the primary look and ! * feel. ! * * @param chooser the file chooser. ! * ! * @return The title returned by the UI delegate from the primary ! * look and feel. */ ! public String getDialogTitle(JFileChooser chooser) { String result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { FileChooserUI ui = (FileChooserUI) iterator.next(); result = ui.getDialogTitle(chooser); *************** public class MultiFileChooserUI extends *** 474,486 **** } /** ! * Calls the {@link FileChooserUI#rescanCurrentDirectory(JFileChooser)} ! * method for all the UI delegates managed by this * MultiFileChooserUI. ! * * @param chooser the file chooser. */ ! public void rescanCurrentDirectory(JFileChooser chooser) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 474,486 ---- } /** ! * Calls the {@link FileChooserUI#rescanCurrentDirectory(JFileChooser)} ! * method for all the UI delegates managed by this * MultiFileChooserUI. ! * * @param chooser the file chooser. */ ! public void rescanCurrentDirectory(JFileChooser chooser) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiFileChooserUI extends *** 491,504 **** } /** ! * Calls the {@link FileChooserUI#ensureFileIsVisible(JFileChooser, File)} ! * method for all the UI delegates managed by this * MultiFileChooserUI. ! * * @param chooser the file chooser. * @param file the file. */ ! public void ensureFileIsVisible(JFileChooser chooser, File file) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 491,504 ---- } /** ! * Calls the {@link FileChooserUI#ensureFileIsVisible(JFileChooser, File)} ! * method for all the UI delegates managed by this * MultiFileChooserUI. ! * * @param chooser the file chooser. * @param file the file. */ ! public void ensureFileIsVisible(JFileChooser chooser, File file) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiInternalFrameUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiInternalFrameUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiInternalFrameUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiInternalFrameUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.InternalFrameUI; /** ! * A UI delegate that that coordinates multiple {@link InternalFrameUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiInternalFrameUI extends InternalFrameUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiInternalFrameUI instance. ! * * @see #createUI(JComponent) */ ! public MultiInternalFrameUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary ! * look and feels support this component, a MultiInternalFrameUI * is returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.InternalFrameUI; /** ! * A UI delegate that that coordinates multiple {@link InternalFrameUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiInternalFrameUI extends InternalFrameUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiInternalFrameUI instance. ! * * @see #createUI(JComponent) */ ! public MultiInternalFrameUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary ! * look and feels support this component, a MultiInternalFrameUI * is returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiInternalFrameUI extend *** 86,97 **** MultiInternalFrameUI mui = new MultiInternalFrameUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiInternalFrameUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,97 ---- MultiInternalFrameUI mui = new MultiInternalFrameUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiInternalFrameUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiInternalFrameUI extend *** 105,113 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiInternalFrameUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 105,113 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiInternalFrameUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiInternalFrameUI extend *** 119,157 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiInternalFrameUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiInternalFrameUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 119,157 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiInternalFrameUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiInternalFrameUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiInternalFrameUI extend *** 164,174 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiInternalFrameUI. ! * * @param g the graphics device. * @param c the component. */ --- 164,174 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiInternalFrameUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiInternalFrameUI extend *** 183,191 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiInternalFrameUI. ! * * @param g the graphics device. * @param c the component. */ --- 183,191 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiInternalFrameUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiInternalFrameUI extend *** 198,221 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiInternalFrameUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 198,221 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiInternalFrameUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiInternalFrameUI extend *** 228,251 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiInternalFrameUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 228,251 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiInternalFrameUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiInternalFrameUI extend *** 258,281 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiInternalFrameUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 258,281 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiInternalFrameUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiInternalFrameUI extend *** 288,311 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiInternalFrameUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 288,311 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiInternalFrameUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiInternalFrameUI extend *** 318,342 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiInternalFrameUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 318,342 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiInternalFrameUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiInternalFrameUI extend *** 349,353 **** } return result; } ! } --- 349,353 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiLabelUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiLabelUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiLabelUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiLabelUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.LabelUI; /** ! * A UI delegate that that coordinates multiple {@link LabelUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiLabelUI extends LabelUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiLabelUI instance. ! * * @see #createUI(JComponent) */ ! public MultiLabelUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiLabelUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.LabelUI; /** ! * A UI delegate that that coordinates multiple {@link LabelUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiLabelUI extends LabelUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiLabelUI instance. ! * * @see #createUI(JComponent) */ ! public MultiLabelUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiLabelUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiLabelUI extends LabelU *** 86,96 **** MultiLabelUI mui = new MultiLabelUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiLabelUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiLabelUI mui = new MultiLabelUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiLabelUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiLabelUI extends LabelU *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiLabelUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiLabelUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiLabelUI extends LabelU *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiLabelUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiLabelUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiLabelUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiLabelUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiLabelUI extends LabelU *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiLabelUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiLabelUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiLabelUI extends LabelU *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiLabelUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiLabelUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiLabelUI extends LabelU *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiLabelUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiLabelUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiLabelUI extends LabelU *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiLabelUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiLabelUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiLabelUI extends LabelU *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiLabelUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiLabelUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiLabelUI extends LabelU *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiLabelUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiLabelUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiLabelUI extends LabelU *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiLabelUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiLabelUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiLabelUI extends LabelU *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiListUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiListUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiListUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiListUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 53,87 **** import javax.swing.plaf.ListUI; /** ! * A UI delegate that that coordinates multiple {@link ListUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiListUI extends ListUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiListUI instance. ! * * @see #createUI(JComponent) */ ! public MultiListUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiListUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 53,87 ---- import javax.swing.plaf.ListUI; /** ! * A UI delegate that that coordinates multiple {@link ListUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiListUI extends ListUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiListUI instance. ! * * @see #createUI(JComponent) */ ! public MultiListUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiListUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiListUI extends ListUI *** 89,99 **** MultiListUI mui = new MultiListUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiListUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 89,99 ---- MultiListUI mui = new MultiListUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiListUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiListUI extends ListUI *** 107,115 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiListUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 107,115 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiListUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiListUI extends ListUI *** 121,159 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiListUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 121,159 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiListUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiListUI extends ListUI *** 166,176 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiListUI. ! * * @param g the graphics device. * @param c the component. */ --- 166,176 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiListUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiListUI extends ListUI *** 185,193 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiListUI. ! * * @param g the graphics device. * @param c the component. */ --- 185,193 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiListUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiListUI extends ListUI *** 200,223 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 200,223 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiListUI extends ListUI *** 230,253 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 230,253 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiListUI extends ListUI *** 260,283 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 260,283 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiListUI extends ListUI *** 290,313 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiListUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 290,313 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiListUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiListUI extends ListUI *** 320,344 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiListUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 320,344 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiListUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiListUI extends ListUI *** 351,375 **** } return result; } ! /** * Calls the {@link ListUI#locationToIndex(JList, Point)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the index for the UI delegate from the primary look and ! * feel. ! * * @param list the list. * @param location the location. ! * ! * @return The index returned by the UI delegate from the primary ! * look and feel. */ ! public int locationToIndex(JList list, Point location) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ListUI ui = (ListUI) iterator.next(); result = ui.locationToIndex(list, location); --- 351,375 ---- } return result; } ! /** * Calls the {@link ListUI#locationToIndex(JList, Point)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the index for the UI delegate from the primary look and ! * feel. ! * * @param list the list. * @param location the location. ! * ! * @return The index returned by the UI delegate from the primary ! * look and feel. */ ! public int locationToIndex(JList list, Point location) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ListUI ui = (ListUI) iterator.next(); result = ui.locationToIndex(list, location); *************** public class MultiListUI extends ListUI *** 385,406 **** /** * Calls the {@link ListUI#indexToLocation(JList, int)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the location for the UI delegate from the primary look and ! * feel. ! * * @param list the list. * @param index the index. ! * ! * @return The location returned by the UI delegate from the primary ! * look and feel. */ ! public Point indexToLocation(JList list, int index) { Point result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ListUI ui = (ListUI) iterator.next(); result = ui.indexToLocation(list, index); --- 385,406 ---- /** * Calls the {@link ListUI#indexToLocation(JList, int)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the location for the UI delegate from the primary look and ! * feel. ! * * @param list the list. * @param index the index. ! * ! * @return The location returned by the UI delegate from the primary ! * look and feel. */ ! public Point indexToLocation(JList list, int index) { Point result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ListUI ui = (ListUI) iterator.next(); result = ui.indexToLocation(list, index); *************** public class MultiListUI extends ListUI *** 416,438 **** /** * Calls the {@link ListUI#getCellBounds(JList, int, int)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the bounds for the UI delegate from the primary look and ! * feel. ! * * @param list the list. * @param index1 the first index. * @param index2 the second index. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ ! public Rectangle getCellBounds(JList list, int index1, int index2) { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ListUI ui = (ListUI) iterator.next(); result = ui.getCellBounds(list, index1, index2); --- 416,438 ---- /** * Calls the {@link ListUI#getCellBounds(JList, int, int)} method for all ! * the UI delegates managed by this MultiListUI, ! * returning the bounds for the UI delegate from the primary look and ! * feel. ! * * @param list the list. * @param index1 the first index. * @param index2 the second index. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ ! public Rectangle getCellBounds(JList list, int index1, int index2) { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ListUI ui = (ListUI) iterator.next(); result = ui.getCellBounds(list, index1, index2); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiLookAndFeel.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiLookAndFeel.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiLookAndFeel.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiLookAndFeel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 49,55 **** * A look and feel that provides the ability to use auxiliary look and feels * in addition to the primary look and feel. */ ! public class MultiLookAndFeel extends LookAndFeel { /** --- 49,55 ---- * A look and feel that provides the ability to use auxiliary look and feels * in addition to the primary look and feel. */ ! public class MultiLookAndFeel extends LookAndFeel { /** *************** public class MultiLookAndFeel extends Lo *** 59,120 **** { // Nothing to do here. } ! /** * Returns the name for the look and feel. ! * * @return "Multiplexing Look and Feel". */ public String getName() { return "Multiplexing Look and Feel"; } ! /** * Returns an identifier for the look and feel. ! * * @return "Multiplex". */ public String getID() { ! return "Multiplex"; } ! /** * Returns a description of the look and feel. ! * * @return A description of the look and feel. */ public String getDescription() { ! return "Allows multiple UI instances per component instance"; } ! /** ! * Returns false to indicate that this look and feel is not * native to any platform. ! * * @return false. */ public boolean isNativeLookAndFeel() { ! return false; } /** * Returns true always, since this look and feel is supported on * all platforms. ! * * @return true. */ public boolean isSupportedLookAndFeel() { return true; } ! /** * Creates and returns the UI defaults for this look and feel. ! * * @return The UI defaults. */ public UIDefaults getDefaults() --- 59,120 ---- { // Nothing to do here. } ! /** * Returns the name for the look and feel. ! * * @return "Multiplexing Look and Feel". */ public String getName() { return "Multiplexing Look and Feel"; } ! /** * Returns an identifier for the look and feel. ! * * @return "Multiplex". */ public String getID() { ! return "Multiplex"; } ! /** * Returns a description of the look and feel. ! * * @return A description of the look and feel. */ public String getDescription() { ! return "Allows multiple UI instances per component instance"; } ! /** ! * Returns false to indicate that this look and feel is not * native to any platform. ! * * @return false. */ public boolean isNativeLookAndFeel() { ! return false; } /** * Returns true always, since this look and feel is supported on * all platforms. ! * * @return true. */ public boolean isSupportedLookAndFeel() { return true; } ! /** * Creates and returns the UI defaults for this look and feel. ! * * @return The UI defaults. */ public UIDefaults getDefaults() *************** public class MultiLookAndFeel extends Lo *** 123,129 **** defaults.put("ButtonUI", "javax.swing.plaf.multi.MultiButtonUI"); defaults.put("CheckBoxUI", "javax.swing.plaf.multi.MultiButtonUI"); defaults.put("CheckBoxMenuItemUI", "javax.swing.plaf.multi.MultiMenuItemUI"); ! defaults.put("ColorChooserUI", "javax.swing.plaf.multi.MultiColorChooserUI"); defaults.put("ComboBoxUI", "javax.swing.plaf.multi.MultiComboBoxUI"); defaults.put("DesktopPaneUI", "javax.swing.plaf.multi.MultiDesktopPaneUI"); --- 123,129 ---- defaults.put("ButtonUI", "javax.swing.plaf.multi.MultiButtonUI"); defaults.put("CheckBoxUI", "javax.swing.plaf.multi.MultiButtonUI"); defaults.put("CheckBoxMenuItemUI", "javax.swing.plaf.multi.MultiMenuItemUI"); ! defaults.put("ColorChooserUI", "javax.swing.plaf.multi.MultiColorChooserUI"); defaults.put("ComboBoxUI", "javax.swing.plaf.multi.MultiComboBoxUI"); defaults.put("DesktopPaneUI", "javax.swing.plaf.multi.MultiDesktopPaneUI"); *************** public class MultiLookAndFeel extends Lo *** 131,137 **** defaults.put("EditorPaneUI", "javax.swing.plaf.multi.MultiTextUI"); defaults.put("FileChooserUI", "javax.swing.plaf.multi.MultiFileChooserUI"); defaults.put("FormattedTextFieldUI", "javax.swing.plaf.multi.MultiTextUI"); ! defaults.put("InternalFrameUI", "javax.swing.plaf.multi.MultiInternalFrameUI"); defaults.put("LabelUI", "javax.swing.plaf.multi.MultiLabelUI"); defaults.put("ListUI", "javax.swing.plaf.multi.MultiListUI"); --- 131,137 ---- defaults.put("EditorPaneUI", "javax.swing.plaf.multi.MultiTextUI"); defaults.put("FileChooserUI", "javax.swing.plaf.multi.MultiFileChooserUI"); defaults.put("FormattedTextFieldUI", "javax.swing.plaf.multi.MultiTextUI"); ! defaults.put("InternalFrameUI", "javax.swing.plaf.multi.MultiInternalFrameUI"); defaults.put("LabelUI", "javax.swing.plaf.multi.MultiLabelUI"); defaults.put("ListUI", "javax.swing.plaf.multi.MultiListUI"); *************** public class MultiLookAndFeel extends Lo *** 142,152 **** defaults.put("PanelUI", "javax.swing.plaf.multi.MultiPanelUI"); defaults.put("PasswordFieldUI", "javax.swing.plaf.multi.MultiTextUI"); defaults.put("PopupMenuUI", "javax.swing.plaf.multi.MultiPopupMenuUI"); ! defaults.put("PopupMenuSeparatorUI", "javax.swing.plaf.multi.MultiSeparatorUI"); defaults.put("ProgressBarUI", "javax.swing.plaf.multi.MultiProgressBarUI"); defaults.put("RadioButtonUI", "javax.swing.plaf.multi.MultiButtonUI"); ! defaults.put("RadioButtonMenuItemUI", "javax.swing.plaf.multi.MultiMenuItemUI"); defaults.put("RootPaneUI", "javax.swing.plaf.multi.MultiRootPaneUI"); defaults.put("ScrollBarUI", "javax.swing.plaf.multi.MultiScrollBarUI"); --- 142,152 ---- defaults.put("PanelUI", "javax.swing.plaf.multi.MultiPanelUI"); defaults.put("PasswordFieldUI", "javax.swing.plaf.multi.MultiTextUI"); defaults.put("PopupMenuUI", "javax.swing.plaf.multi.MultiPopupMenuUI"); ! defaults.put("PopupMenuSeparatorUI", "javax.swing.plaf.multi.MultiSeparatorUI"); defaults.put("ProgressBarUI", "javax.swing.plaf.multi.MultiProgressBarUI"); defaults.put("RadioButtonUI", "javax.swing.plaf.multi.MultiButtonUI"); ! defaults.put("RadioButtonMenuItemUI", "javax.swing.plaf.multi.MultiMenuItemUI"); defaults.put("RootPaneUI", "javax.swing.plaf.multi.MultiRootPaneUI"); defaults.put("ScrollBarUI", "javax.swing.plaf.multi.MultiScrollBarUI"); *************** public class MultiLookAndFeel extends Lo *** 162,204 **** defaults.put("TextFieldUI", "javax.swing.plaf.multi.MultiTextUI"); defaults.put("TextPaneUI", "javax.swing.plaf.multi.MultiTextUI"); defaults.put("ToggleButtonUI", "javax.swing.plaf.multi.MultiButtonUI"); ! defaults.put("ToolBarSeparatorUI", "javax.swing.plaf.multi.MultiSeparatorUI"); defaults.put("ToolBarUI", "javax.swing.plaf.multi.MultiToolBarUI"); defaults.put("ToolTipUI", "javax.swing.plaf.multi.MultiToolTipUI"); defaults.put("ViewportUI", "javax.swing.plaf.multi.MultiViewportUI"); return defaults; } ! /** * Creates the UI delegates for the target component and * returns a multiplexing UI delegate (mui) if there are * multiple delegates. ! * * @param mui a multiplexing UI delegate appropriate for the component. * @param uis a vector into which the UI delegates will be added. * @param target the target component. ! * * @return A UI delegate. */ ! public static ComponentUI createUIs(ComponentUI mui, Vector uis, JComponent target) { // get primary UI delegate for 'target', and add it to uis ComponentUI ui = null; LookAndFeel primary = UIManager.getLookAndFeel(); ! if (primary != null) { ui = UIManager.getUI(target); uis.add(ui); } ! // for any auxiliary look and feels in use, get the UI delegate and add // it to uis LookAndFeel[] auxlafs = UIManager.getAuxiliaryLookAndFeels(); for (int i = 0; i < auxlafs.length; i++) { LookAndFeel auxlaf = auxlafs[i]; ! // FIXME: here I call getDefaults() to get the UI delegate from the // auxiliary look and feel. But getDefaults() creates a new set of // defaults every time it is called, which is wasteful. Unfortunately // I cannot find another way to get the UI delegate, so I'm doing it --- 162,204 ---- defaults.put("TextFieldUI", "javax.swing.plaf.multi.MultiTextUI"); defaults.put("TextPaneUI", "javax.swing.plaf.multi.MultiTextUI"); defaults.put("ToggleButtonUI", "javax.swing.plaf.multi.MultiButtonUI"); ! defaults.put("ToolBarSeparatorUI", "javax.swing.plaf.multi.MultiSeparatorUI"); defaults.put("ToolBarUI", "javax.swing.plaf.multi.MultiToolBarUI"); defaults.put("ToolTipUI", "javax.swing.plaf.multi.MultiToolTipUI"); defaults.put("ViewportUI", "javax.swing.plaf.multi.MultiViewportUI"); return defaults; } ! /** * Creates the UI delegates for the target component and * returns a multiplexing UI delegate (mui) if there are * multiple delegates. ! * * @param mui a multiplexing UI delegate appropriate for the component. * @param uis a vector into which the UI delegates will be added. * @param target the target component. ! * * @return A UI delegate. */ ! public static ComponentUI createUIs(ComponentUI mui, Vector uis, JComponent target) { // get primary UI delegate for 'target', and add it to uis ComponentUI ui = null; LookAndFeel primary = UIManager.getLookAndFeel(); ! if (primary != null) { ui = UIManager.getUI(target); uis.add(ui); } ! // for any auxiliary look and feels in use, get the UI delegate and add // it to uis LookAndFeel[] auxlafs = UIManager.getAuxiliaryLookAndFeels(); for (int i = 0; i < auxlafs.length; i++) { LookAndFeel auxlaf = auxlafs[i]; ! // FIXME: here I call getDefaults() to get the UI delegate from the // auxiliary look and feel. But getDefaults() creates a new set of // defaults every time it is called, which is wasteful. Unfortunately // I cannot find another way to get the UI delegate, so I'm doing it *************** public class MultiLookAndFeel extends Lo *** 208,243 **** if (ui != null) uis.add(ui); } ! // if uis contains more than 1 delegate, return mui, otherwise return // the primary delegate if (uis.size() > 1) return mui; else ! return ui; } ! /** * Returns an array containing the same {@link ComponentUI} instances as * uis. If uis is null, a zero-length * array is returned. ! * ! * @param uis a list of {@link ComponentUI} references (null * permitted). ! * * @return An array containing the same {@link ComponentUI} instances as * uis, or null if uis is ! * empty. */ protected static ComponentUI[] uisToArray(Vector uis) { ! if (uis == null) return new ComponentUI[0]; int size = uis.size(); ! if (size == 0) return null; ComponentUI[] result = new ComponentUI[size]; uis.copyInto(result); ! return result; } } --- 208,243 ---- if (ui != null) uis.add(ui); } ! // if uis contains more than 1 delegate, return mui, otherwise return // the primary delegate if (uis.size() > 1) return mui; else ! return ui; } ! /** * Returns an array containing the same {@link ComponentUI} instances as * uis. If uis is null, a zero-length * array is returned. ! * ! * @param uis a list of {@link ComponentUI} references (null * permitted). ! * * @return An array containing the same {@link ComponentUI} instances as * uis, or null if uis is ! * empty. */ protected static ComponentUI[] uisToArray(Vector uis) { ! if (uis == null) return new ComponentUI[0]; int size = uis.size(); ! if (size == 0) return null; ComponentUI[] result = new ComponentUI[size]; uis.copyInto(result); ! return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiMenuBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiMenuBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiMenuBarUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiMenuBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.MenuBarUI; /** ! * A UI delegate that that coordinates multiple {@link MenuBarUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiMenuBarUI extends MenuBarUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiMenuBarUI instance. ! * * @see #createUI(JComponent) */ ! public MultiMenuBarUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiMenuBarUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.MenuBarUI; /** ! * A UI delegate that that coordinates multiple {@link MenuBarUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiMenuBarUI extends MenuBarUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiMenuBarUI instance. ! * * @see #createUI(JComponent) */ ! public MultiMenuBarUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiMenuBarUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiMenuBarUI extends Menu *** 86,96 **** MultiMenuBarUI mui = new MultiMenuBarUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiMenuBarUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiMenuBarUI mui = new MultiMenuBarUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiMenuBarUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiMenuBarUI extends Menu *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiMenuBarUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiMenuBarUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiMenuBarUI extends Menu *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiMenuBarUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiMenuBarUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiMenuBarUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiMenuBarUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiMenuBarUI extends Menu *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiMenuBarUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiMenuBarUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiMenuBarUI extends Menu *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiMenuBarUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiMenuBarUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiMenuBarUI extends Menu *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuBarUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuBarUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiMenuBarUI extends Menu *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuBarUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuBarUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiMenuBarUI extends Menu *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuBarUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuBarUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiMenuBarUI extends Menu *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiMenuBarUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiMenuBarUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiMenuBarUI extends Menu *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiMenuBarUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiMenuBarUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiMenuBarUI extends Menu *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiMenuItemUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiMenuItemUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiMenuItemUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiMenuItemUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.MenuItemUI; /** ! * A UI delegate that that coordinates multiple {@link MenuItemUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiMenuItemUI extends MenuItemUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiMenuItemUI instance. ! * * @see #createUI(JComponent) */ ! public MultiMenuItemUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiItemUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.MenuItemUI; /** ! * A UI delegate that that coordinates multiple {@link MenuItemUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiMenuItemUI extends MenuItemUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiMenuItemUI instance. ! * * @see #createUI(JComponent) */ ! public MultiMenuItemUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiItemUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiMenuItemUI extends Men *** 86,96 **** MultiMenuItemUI mui = new MultiMenuItemUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiMenuItemUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiMenuItemUI mui = new MultiMenuItemUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiMenuItemUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiMenuItemUI extends Men *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiMenuItemUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiMenuItemUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiMenuItemUI extends Men *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiMenuItemUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiMenuItemUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiMenuItemUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiMenuItemUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiMenuItemUI extends Men *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiMenuItemUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiMenuItemUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiMenuItemUI extends Men *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiMenuItemUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiMenuItemUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiMenuItemUI extends Men *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuItemUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuItemUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiMenuItemUI extends Men *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuItemUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuItemUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiMenuItemUI extends Men *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuItemUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiMenuItemUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiMenuItemUI extends Men *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiMenuItemUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiMenuItemUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiMenuItemUI extends Men *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiMenuItemUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiMenuItemUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiMenuItemUI extends Men *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiOptionPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiOptionPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiOptionPaneUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiOptionPaneUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 51,85 **** import javax.swing.plaf.OptionPaneUI; /** ! * A UI delegate that that coordinates multiple {@link OptionPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiOptionPaneUI extends OptionPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiOptionPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiOptionPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiOptionPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 51,85 ---- import javax.swing.plaf.OptionPaneUI; /** ! * A UI delegate that that coordinates multiple {@link OptionPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiOptionPaneUI extends OptionPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiOptionPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiOptionPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiOptionPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiOptionPaneUI extends O *** 87,97 **** MultiOptionPaneUI mui = new MultiOptionPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiOptionPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 87,97 ---- MultiOptionPaneUI mui = new MultiOptionPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiOptionPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiOptionPaneUI extends O *** 105,113 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiOptionPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 105,113 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiOptionPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiOptionPaneUI extends O *** 119,157 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiOptionPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiOptionPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 119,157 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiOptionPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiOptionPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiOptionPaneUI extends O *** 164,174 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiOptionPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 164,174 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiOptionPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiOptionPaneUI extends O *** 183,191 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiOptionPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 183,191 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiOptionPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiOptionPaneUI extends O *** 198,221 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiOptionPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 198,221 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiOptionPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiOptionPaneUI extends O *** 228,251 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiOptionPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 228,251 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiOptionPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiOptionPaneUI extends O *** 258,281 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiOptionPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 258,281 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiOptionPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiOptionPaneUI extends O *** 288,311 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiOptionPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 288,311 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiOptionPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiOptionPaneUI extends O *** 318,342 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiOptionPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 318,342 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiOptionPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiOptionPaneUI extends O *** 349,362 **** } return result; } ! /** * Calls the {@link OptionPaneUI#selectInitialValue(JOptionPane)} method for * all the UI delegates managed by this MultiOptionPaneUI. ! * * @param pane the option pane. */ ! public void selectInitialValue(JOptionPane pane) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 349,362 ---- } return result; } ! /** * Calls the {@link OptionPaneUI#selectInitialValue(JOptionPane)} method for * all the UI delegates managed by this MultiOptionPaneUI. ! * * @param pane the option pane. */ ! public void selectInitialValue(JOptionPane pane) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiOptionPaneUI extends O *** 367,387 **** } /** ! * Calls the {@link OptionPaneUI#containsCustomComponents(JOptionPane)} ! * method for all the UI delegates managed by this ! * MultiOptionPaneUI, returning the result for the UI delegate ! * from the primary look and feel. ! * * @param pane the option pane. ! * ! * @return The result for the UI delegate from the primary look and feel. */ ! public boolean containsCustomComponents(JOptionPane pane) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { OptionPaneUI ui = (OptionPaneUI) iterator.next(); result = ui.containsCustomComponents(pane); --- 367,387 ---- } /** ! * Calls the {@link OptionPaneUI#containsCustomComponents(JOptionPane)} ! * method for all the UI delegates managed by this ! * MultiOptionPaneUI, returning the result for the UI delegate ! * from the primary look and feel. ! * * @param pane the option pane. ! * ! * @return The result for the UI delegate from the primary look and feel. */ ! public boolean containsCustomComponents(JOptionPane pane) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { OptionPaneUI ui = (OptionPaneUI) iterator.next(); result = ui.containsCustomComponents(pane); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiPanelUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiPanelUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiPanelUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiPanelUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.PanelUI; /** ! * A UI delegate that that coordinates multiple {@link PanelUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiPanelUI extends PanelUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiPanelUI instance. ! * * @see #createUI(JComponent) */ ! public MultiPanelUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiPanelUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.PanelUI; /** ! * A UI delegate that that coordinates multiple {@link PanelUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiPanelUI extends PanelUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiPanelUI instance. ! * * @see #createUI(JComponent) */ ! public MultiPanelUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiPanelUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiPanelUI extends PanelU *** 86,96 **** MultiPanelUI mui = new MultiPanelUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiPanelUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiPanelUI mui = new MultiPanelUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiPanelUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiPanelUI extends PanelU *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiPanelUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiPanelUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiPanelUI extends PanelU *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiPanelUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiPanelUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiPanelUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiPanelUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiPanelUI extends PanelU *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiPanelUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiPanelUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiPanelUI extends PanelU *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiPanelUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiPanelUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiPanelUI extends PanelU *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiPanelUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiPanelUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiPanelUI extends PanelU *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiPanelUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiPanelUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiPanelUI extends PanelU *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiPanelUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiPanelUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiPanelUI extends PanelU *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiPanelUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiPanelUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiPanelUI extends PanelU *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiPanelUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiPanelUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiPanelUI extends PanelU *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiPopupMenuUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiPopupMenuUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiPopupMenuUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiPopupMenuUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.PopupMenuUI; /** ! * A UI delegate that that coordinates multiple {@link PopupMenuUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiPopupMenuUI extends PopupMenuUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiPopupMenuUI instance. ! * * @see #createUI(JComponent) */ ! public MultiPopupMenuUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiPopupMenuUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.PopupMenuUI; /** ! * A UI delegate that that coordinates multiple {@link PopupMenuUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiPopupMenuUI extends PopupMenuUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiPopupMenuUI instance. ! * * @see #createUI(JComponent) */ ! public MultiPopupMenuUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiPopupMenuUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiPopupMenuUI extends Po *** 86,96 **** MultiPopupMenuUI mui = new MultiPopupMenuUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiPopupMenuUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiPopupMenuUI mui = new MultiPopupMenuUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiPopupMenuUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiPopupMenuUI extends Po *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiPopupMenuUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiPopupMenuUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiPopupMenuUI extends Po *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiPopupMenuUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiPopupMenuUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiPopupMenuUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiPopupMenuUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiPopupMenuUI extends Po *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiPopupMenuUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiPopupMenuUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiPopupMenuUI extends Po *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiPopupMenuUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiPopupMenuUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiPopupMenuUI extends Po *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiPopupMenuUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiPopupMenuUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiPopupMenuUI extends Po *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiPopupMenuUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiPopupMenuUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiPopupMenuUI extends Po *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiPopupMenuUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiPopupMenuUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiPopupMenuUI extends Po *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiPopupMenuUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiPopupMenuUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiPopupMenuUI extends Po *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiPopupMenuUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiPopupMenuUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiPopupMenuUI extends Po *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiProgressBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiProgressBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiProgressBarUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiProgressBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.ProgressBarUI; /** ! * A UI delegate that that coordinates multiple {@link ProgressBarUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiProgressBarUI extends ProgressBarUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiProgressBarUI instance. ! * * @see #createUI(JComponent) */ ! public MultiProgressBarUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiProgressBarUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.ProgressBarUI; /** ! * A UI delegate that that coordinates multiple {@link ProgressBarUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiProgressBarUI extends ProgressBarUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiProgressBarUI instance. ! * * @see #createUI(JComponent) */ ! public MultiProgressBarUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiProgressBarUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiProgressBarUI extends *** 86,96 **** MultiProgressBarUI mui = new MultiProgressBarUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiProgressBarUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiProgressBarUI mui = new MultiProgressBarUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiProgressBarUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiProgressBarUI extends *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiProgressBarUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiProgressBarUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiProgressBarUI extends *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiProgressBarUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiProgressBarUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiProgressBarUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiProgressBarUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiProgressBarUI extends *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiProgressBarUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiProgressBarUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiProgressBarUI extends *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiProgressBarUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiProgressBarUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiProgressBarUI extends *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiProgressBarUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiProgressBarUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiProgressBarUI extends *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiProgressBarUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiProgressBarUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiProgressBarUI extends *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiProgressBarUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiProgressBarUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiProgressBarUI extends *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiProgressBarUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiProgressBarUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiProgressBarUI extends *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiProgressBarUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiProgressBarUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiProgressBarUI extends *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiRootPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiRootPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiRootPaneUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiRootPaneUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.RootPaneUI; /** ! * A UI delegate that that coordinates multiple {@link RootPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiRootPaneUI extends RootPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiRootPanelUI instance. ! * * @see #createUI(JComponent) */ ! public MultiRootPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiRootPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.RootPaneUI; /** ! * A UI delegate that that coordinates multiple {@link RootPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiRootPaneUI extends RootPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiRootPanelUI instance. ! * * @see #createUI(JComponent) */ ! public MultiRootPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiRootPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiRootPaneUI extends Roo *** 86,96 **** MultiRootPaneUI mui = new MultiRootPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiRootPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiRootPaneUI mui = new MultiRootPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiRootPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiRootPaneUI extends Roo *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiRootPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiRootPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiRootPaneUI extends Roo *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiRootPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiRootPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiRootPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiRootPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiRootPaneUI extends Roo *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiRootPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiRootPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiRootPaneUI extends Roo *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiRootPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiRootPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiRootPaneUI extends Roo *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiRootPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiRootPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiRootPaneUI extends Roo *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiRootPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiRootPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiRootPaneUI extends Roo *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiRootPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiRootPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiRootPaneUI extends Roo *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiRootPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiRootPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiRootPaneUI extends Roo *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiRootPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiRootPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiRootPaneUI extends Roo *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiScrollBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiScrollBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiScrollBarUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiScrollBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.ScrollBarUI; /** ! * A UI delegate that that coordinates multiple {@link ScrollBarUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiScrollBarUI extends ScrollBarUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiScrollBarUI instance. ! * * @see #createUI(JComponent) */ ! public MultiScrollBarUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiScrollBarUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.ScrollBarUI; /** ! * A UI delegate that that coordinates multiple {@link ScrollBarUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiScrollBarUI extends ScrollBarUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiScrollBarUI instance. ! * * @see #createUI(JComponent) */ ! public MultiScrollBarUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiScrollBarUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiScrollBarUI extends Sc *** 86,96 **** MultiScrollBarUI mui = new MultiScrollBarUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiScrollBarUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiScrollBarUI mui = new MultiScrollBarUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiScrollBarUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiScrollBarUI extends Sc *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiScrollBarUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiScrollBarUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiScrollBarUI extends Sc *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiScrollBarUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiScrollBarUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiScrollBarUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiScrollBarUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiScrollBarUI extends Sc *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiScrollBarUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiScrollBarUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiScrollBarUI extends Sc *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiScrollBarUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiScrollBarUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiScrollBarUI extends Sc *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollBarUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollBarUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiScrollBarUI extends Sc *** 230,250 **** /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollBarUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 230,250 ---- /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollBarUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiScrollBarUI extends Sc *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollBarUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollBarUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiScrollBarUI extends Sc *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiScrollBarUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiScrollBarUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiScrollBarUI extends Sc *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiScrollBarUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiScrollBarUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiScrollBarUI extends Sc *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiScrollPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiScrollPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiScrollPaneUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiScrollPaneUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.ScrollPaneUI; /** ! * A UI delegate that that coordinates multiple {@link ScrollPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiScrollPaneUI extends ScrollPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiScrollPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiScrollPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiScrollPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.ScrollPaneUI; /** ! * A UI delegate that that coordinates multiple {@link ScrollPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiScrollPaneUI extends ScrollPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiScrollPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiScrollPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiScrollPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiScrollPaneUI extends S *** 86,96 **** MultiScrollPaneUI mui = new MultiScrollPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiScrollPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiScrollPaneUI mui = new MultiScrollPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiScrollPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiScrollPaneUI extends S *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiScrollPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiScrollPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiScrollPaneUI extends S *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiScrollPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiScrollPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiScrollPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiScrollPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiScrollPaneUI extends S *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiScrollPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiScrollPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiScrollPaneUI extends S *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiScrollPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiScrollPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiScrollPaneUI extends S *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiScrollPaneUI extends S *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiScrollPaneUI extends S *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiScrollPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiScrollPaneUI extends S *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiScrollPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiScrollPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiScrollPaneUI extends S *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiScrollPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiScrollPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiScrollPaneUI extends S *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiSeparatorUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiSeparatorUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiSeparatorUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiSeparatorUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.SeparatorUI; /** ! * A UI delegate that that coordinates multiple {@link MultiSeparatorUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiSeparatorUI extends SeparatorUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiSeparatorUI instance. ! * * @see #createUI(JComponent) */ ! public MultiSeparatorUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiSeparatorUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.SeparatorUI; /** ! * A UI delegate that that coordinates multiple {@link MultiSeparatorUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiSeparatorUI extends SeparatorUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiSeparatorUI instance. ! * * @see #createUI(JComponent) */ ! public MultiSeparatorUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiSeparatorUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiSeparatorUI extends Se *** 86,96 **** MultiSeparatorUI mui = new MultiSeparatorUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiSeparatorUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiSeparatorUI mui = new MultiSeparatorUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiSeparatorUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiSeparatorUI extends Se *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiSeparatorUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiSeparatorUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiSeparatorUI extends Se *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiSeparatorUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiSeparatorUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiSeparatorUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiSeparatorUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiSeparatorUI extends Se *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiSeparatorUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiSeparatorUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiSeparatorUI extends Se *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiSeparatorUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiSeparatorUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiSeparatorUI extends Se *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiSeparatorUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiSeparatorUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiSeparatorUI extends Se *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSeparatorUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSeparatorUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiSeparatorUI extends Se *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSeparatorUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSeparatorUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiSeparatorUI extends Se *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiSeparatorUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiSeparatorUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiSeparatorUI extends Se *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiSeparatorUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiSeparatorUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiSeparatorUI extends Se *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiSliderUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiSliderUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiSliderUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiSliderUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.SliderUI; /** ! * A UI delegate that that coordinates multiple {@link SliderUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiSliderUI extends SliderUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiSliderUI instance. ! * * @see #createUI(JComponent) */ ! public MultiSliderUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiSliderUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.SliderUI; /** ! * A UI delegate that that coordinates multiple {@link SliderUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiSliderUI extends SliderUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiSliderUI instance. ! * * @see #createUI(JComponent) */ ! public MultiSliderUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiSliderUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiSliderUI extends Slide *** 86,96 **** MultiSliderUI mui = new MultiSliderUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiSliderUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiSliderUI mui = new MultiSliderUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiSliderUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiSliderUI extends Slide *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiSliderUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiSliderUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiSliderUI extends Slide *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiSliderUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiSliderUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiSliderUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiSliderUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiSliderUI extends Slide *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiSliderUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiSliderUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiSliderUI extends Slide *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiSliderUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiSliderUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiSliderUI extends Slide *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiSliderUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiSliderUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiSliderUI extends Slide *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSliderUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSliderUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiSliderUI extends Slide *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSliderUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSliderUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiSliderUI extends Slide *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiSliderUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiSliderUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiSliderUI extends Slide *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiSliderUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiSliderUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiSliderUI extends Slide *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiSpinnerUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiSpinnerUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiSpinnerUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiSpinnerUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.SpinnerUI; /** ! * A UI delegate that that coordinates multiple {@link SpinnerUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiSpinnerUI extends SpinnerUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiSpinnerUI instance. ! * * @see #createUI(JComponent) */ ! public MultiSpinnerUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiSpinnerUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.SpinnerUI; /** ! * A UI delegate that that coordinates multiple {@link SpinnerUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiSpinnerUI extends SpinnerUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiSpinnerUI instance. ! * * @see #createUI(JComponent) */ ! public MultiSpinnerUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiSpinnerUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiSpinnerUI extends Spin *** 86,96 **** MultiSpinnerUI mui = new MultiSpinnerUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiSpinnerUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiSpinnerUI mui = new MultiSpinnerUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiSpinnerUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiSpinnerUI extends Spin *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiSpinnerUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiSpinnerUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiSpinnerUI extends Spin *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiSpinnerUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiSpinnerUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiSpinnerUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiSpinnerUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiSpinnerUI extends Spin *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiSpinnerUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiSpinnerUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiSpinnerUI extends Spin *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiSpinnerUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiSpinnerUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiSpinnerUI extends Spin *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiSpinnerUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiSpinnerUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiSpinnerUI extends Spin *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSpinnerUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSpinnerUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiSpinnerUI extends Spin *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSpinnerUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSpinnerUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiSpinnerUI extends Spin *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiSpinnerUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiSpinnerUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiSpinnerUI extends Spin *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiSpinnerUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiSpinnerUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiSpinnerUI extends Spin *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiSplitPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiSplitPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiSplitPaneUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiSplitPaneUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 51,85 **** import javax.swing.plaf.SplitPaneUI; /** ! * A UI delegate that that coordinates multiple {@link SplitPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiSplitPaneUI extends SplitPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiSplitPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiSplitPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiSplitPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 51,85 ---- import javax.swing.plaf.SplitPaneUI; /** ! * A UI delegate that that coordinates multiple {@link SplitPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiSplitPaneUI extends SplitPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiSplitPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiSplitPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiSplitPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiSplitPaneUI extends Sp *** 87,97 **** MultiSplitPaneUI mui = new MultiSplitPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiSplitPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 87,97 ---- MultiSplitPaneUI mui = new MultiSplitPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiSplitPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiSplitPaneUI extends Sp *** 105,113 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiSplitPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 105,113 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiSplitPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiSplitPaneUI extends Sp *** 119,157 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiSplitPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 119,157 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiSplitPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiSplitPaneUI extends Sp *** 164,174 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiSplitPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 164,174 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiSplitPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiSplitPaneUI extends Sp *** 183,191 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiSplitPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 183,191 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiSplitPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiSplitPaneUI extends Sp *** 198,221 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 198,221 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiSplitPaneUI extends Sp *** 231,251 **** /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 231,251 ---- /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiSplitPaneUI extends Sp *** 258,281 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 258,281 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiSplitPaneUI extends Sp *** 288,311 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiSplitPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 288,311 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiSplitPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiSplitPaneUI extends Sp *** 318,342 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiSplitPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 318,342 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiSplitPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiSplitPaneUI extends Sp *** 349,362 **** } return result; } ! /** ! * Calls the {@link SplitPaneUI#resetToPreferredSizes(JSplitPane)} method * for all the UI delegates managed by this MultiSplitPaneUI. ! * * @param pane the component. */ ! public void resetToPreferredSizes(JSplitPane pane) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 349,362 ---- } return result; } ! /** ! * Calls the {@link SplitPaneUI#resetToPreferredSizes(JSplitPane)} method * for all the UI delegates managed by this MultiSplitPaneUI. ! * * @param pane the component. */ ! public void resetToPreferredSizes(JSplitPane pane) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiSplitPaneUI extends Sp *** 367,379 **** } /** ! * Calls the {@link SplitPaneUI#setDividerLocation(JSplitPane, int)} method * for all the UI delegates managed by this MultiSplitPaneUI. ! * * @param pane the component. * @param location the location. */ ! public void setDividerLocation(JSplitPane pane, int location) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 367,379 ---- } /** ! * Calls the {@link SplitPaneUI#setDividerLocation(JSplitPane, int)} method * for all the UI delegates managed by this MultiSplitPaneUI. ! * * @param pane the component. * @param location the location. */ ! public void setDividerLocation(JSplitPane pane, int location) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiSplitPaneUI extends Sp *** 385,405 **** /** * Calls the {@link SplitPaneUI#getDividerLocation(JSplitPane)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the location for the UI delegate from the primary look and ! * feel. ! * * @param pane the component. ! * ! * @return The location returned by the UI delegate from the primary ! * look and feel. */ ! public int getDividerLocation(JSplitPane pane) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { SplitPaneUI ui = (SplitPaneUI) iterator.next(); result = ui.getDividerLocation(pane); --- 385,405 ---- /** * Calls the {@link SplitPaneUI#getDividerLocation(JSplitPane)} method for all ! * the UI delegates managed by this MultiSplitPaneUI, ! * returning the location for the UI delegate from the primary look and ! * feel. ! * * @param pane the component. ! * ! * @return The location returned by the UI delegate from the primary ! * look and feel. */ ! public int getDividerLocation(JSplitPane pane) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { SplitPaneUI ui = (SplitPaneUI) iterator.next(); result = ui.getDividerLocation(pane); *************** public class MultiSplitPaneUI extends Sp *** 414,435 **** } /** ! * Calls the {@link SplitPaneUI#getMinimumDividerLocation(JSplitPane)} method ! * for all the UI delegates managed by this MultiSplitPaneUI, ! * returning the location for the UI delegate from the primary look and ! * feel. ! * * @param pane the component. ! * ! * @return The location returned by the UI delegate from the primary ! * look and feel. */ ! public int getMinimumDividerLocation(JSplitPane pane) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { SplitPaneUI ui = (SplitPaneUI) iterator.next(); result = ui.getMinimumDividerLocation(pane); --- 414,435 ---- } /** ! * Calls the {@link SplitPaneUI#getMinimumDividerLocation(JSplitPane)} method ! * for all the UI delegates managed by this MultiSplitPaneUI, ! * returning the location for the UI delegate from the primary look and ! * feel. ! * * @param pane the component. ! * ! * @return The location returned by the UI delegate from the primary ! * look and feel. */ ! public int getMinimumDividerLocation(JSplitPane pane) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { SplitPaneUI ui = (SplitPaneUI) iterator.next(); result = ui.getMinimumDividerLocation(pane); *************** public class MultiSplitPaneUI extends Sp *** 444,465 **** } /** ! * Calls the {@link SplitPaneUI#getMaximumDividerLocation(JSplitPane)} method ! * for all the UI delegates managed by this MultiSplitPaneUI, ! * returning the location for the UI delegate from the primary look and ! * feel. ! * * @param pane the component. ! * ! * @return The location returned by the UI delegate from the primary ! * look and feel. */ ! public int getMaximumDividerLocation(JSplitPane pane) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { SplitPaneUI ui = (SplitPaneUI) iterator.next(); result = ui.getMaximumDividerLocation(pane); --- 444,465 ---- } /** ! * Calls the {@link SplitPaneUI#getMaximumDividerLocation(JSplitPane)} method ! * for all the UI delegates managed by this MultiSplitPaneUI, ! * returning the location for the UI delegate from the primary look and ! * feel. ! * * @param pane the component. ! * ! * @return The location returned by the UI delegate from the primary ! * look and feel. */ ! public int getMaximumDividerLocation(JSplitPane pane) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { SplitPaneUI ui = (SplitPaneUI) iterator.next(); result = ui.getMaximumDividerLocation(pane); *************** public class MultiSplitPaneUI extends Sp *** 474,487 **** } /** ! * Calls the {@link SplitPaneUI#finishedPaintingChildren(JSplitPane, ! * Graphics)} method for all the UI delegates managed by this * MultiSplitPaneUI. ! * * @param pane the component. * @param g the graphics device. */ ! public void finishedPaintingChildren(JSplitPane pane, Graphics g) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 474,487 ---- } /** ! * Calls the {@link SplitPaneUI#finishedPaintingChildren(JSplitPane, ! * Graphics)} method for all the UI delegates managed by this * MultiSplitPaneUI. ! * * @param pane the component. * @param g the graphics device. */ ! public void finishedPaintingChildren(JSplitPane pane, Graphics g) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTabbedPaneUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTabbedPaneUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTabbedPaneUI.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTabbedPaneUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 52,86 **** import javax.swing.plaf.TabbedPaneUI; /** ! * A UI delegate that that coordinates multiple {@link TabbedPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTabbedPaneUI extends TabbedPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTabbedPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTabbedPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTabbedPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 52,86 ---- import javax.swing.plaf.TabbedPaneUI; /** ! * A UI delegate that that coordinates multiple {@link TabbedPaneUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTabbedPaneUI extends TabbedPaneUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTabbedPaneUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTabbedPaneUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTabbedPaneUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiTabbedPaneUI extends T *** 88,98 **** MultiTabbedPaneUI mui = new MultiTabbedPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTabbedPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 88,98 ---- MultiTabbedPaneUI mui = new MultiTabbedPaneUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTabbedPaneUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiTabbedPaneUI extends T *** 106,114 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTabbedPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 106,114 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTabbedPaneUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiTabbedPaneUI extends T *** 120,158 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTabbedPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTabbedPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 120,158 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTabbedPaneUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTabbedPaneUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiTabbedPaneUI extends T *** 165,175 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTabbedPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 165,175 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTabbedPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTabbedPaneUI extends T *** 184,192 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTabbedPaneUI. ! * * @param g the graphics device. * @param c the component. */ --- 184,192 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTabbedPaneUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTabbedPaneUI extends T *** 199,222 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTabbedPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 199,222 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTabbedPaneUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiTabbedPaneUI extends T *** 232,252 **** /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTabbedPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 232,252 ---- /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTabbedPaneUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiTabbedPaneUI extends T *** 259,282 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTabbedPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 259,282 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTabbedPaneUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiTabbedPaneUI extends T *** 289,312 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTabbedPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 289,312 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTabbedPaneUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiTabbedPaneUI extends T *** 319,343 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTabbedPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 319,343 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTabbedPaneUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiTabbedPaneUI extends T *** 350,375 **** } return result; } ! /** ! * Calls the {@link TabbedPaneUI#tabForCoordinate(JTabbedPane, int, int)} ! * method for all the UI delegates managed by this ! * MultiTabbedPaneUI, returning the tab index for the UI ! * delegate from the primary look and feel. ! * * @param pane the tabbed pane. * @param x the x-coordinate. * @param y the y-coordinate. ! * ! * @return The tab index returned by the UI delegate from the primary ! * look and feel. */ ! public int tabForCoordinate(JTabbedPane pane, int x, int y) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TabbedPaneUI ui = (TabbedPaneUI) iterator.next(); result = ui.tabForCoordinate(pane, x, y); --- 350,375 ---- } return result; } ! /** ! * Calls the {@link TabbedPaneUI#tabForCoordinate(JTabbedPane, int, int)} ! * method for all the UI delegates managed by this ! * MultiTabbedPaneUI, returning the tab index for the UI ! * delegate from the primary look and feel. ! * * @param pane the tabbed pane. * @param x the x-coordinate. * @param y the y-coordinate. ! * ! * @return The tab index returned by the UI delegate from the primary ! * look and feel. */ ! public int tabForCoordinate(JTabbedPane pane, int x, int y) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TabbedPaneUI ui = (TabbedPaneUI) iterator.next(); result = ui.tabForCoordinate(pane, x, y); *************** public class MultiTabbedPaneUI extends T *** 384,406 **** } /** ! * Calls the {@link TabbedPaneUI#getTabBounds(JTabbedPane, int)} ! * method for all the UI delegates managed by this ! * MultiTabbedPaneUI, returning the bounds for the UI ! * delegate from the primary look and feel. ! * * @param pane the tabbed pane. * @param index the index. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ ! public Rectangle getTabBounds(JTabbedPane pane, int index) { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TabbedPaneUI ui = (TabbedPaneUI) iterator.next(); result = ui.getTabBounds(pane, index); --- 384,406 ---- } /** ! * Calls the {@link TabbedPaneUI#getTabBounds(JTabbedPane, int)} ! * method for all the UI delegates managed by this ! * MultiTabbedPaneUI, returning the bounds for the UI ! * delegate from the primary look and feel. ! * * @param pane the tabbed pane. * @param index the index. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ ! public Rectangle getTabBounds(JTabbedPane pane, int index) { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TabbedPaneUI ui = (TabbedPaneUI) iterator.next(); result = ui.getTabBounds(pane, index); *************** public class MultiTabbedPaneUI extends T *** 415,436 **** } /** ! * Calls the {@link TabbedPaneUI#getTabRunCount(JTabbedPane)} ! * method for all the UI delegates managed by this ! * MultiTabbedPaneUI, returning the nt for the UI ! * delegate from the primary look and feel. ! * * @param pane the tabbed pane. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ ! public int getTabRunCount(JTabbedPane pane) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TabbedPaneUI ui = (TabbedPaneUI) iterator.next(); result = ui.getTabRunCount(pane); --- 415,436 ---- } /** ! * Calls the {@link TabbedPaneUI#getTabRunCount(JTabbedPane)} ! * method for all the UI delegates managed by this ! * MultiTabbedPaneUI, returning the nt for the UI ! * delegate from the primary look and feel. ! * * @param pane the tabbed pane. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ ! public int getTabRunCount(JTabbedPane pane) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TabbedPaneUI ui = (TabbedPaneUI) iterator.next(); result = ui.getTabRunCount(pane); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTableHeaderUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTableHeaderUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTableHeaderUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTableHeaderUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.TableHeaderUI; /** ! * A UI delegate that that coordinates multiple {@link TableHeaderUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTableHeaderUI extends TableHeaderUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTableHeaderUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTableHeaderUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTableHeaderUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.TableHeaderUI; /** ! * A UI delegate that that coordinates multiple {@link TableHeaderUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTableHeaderUI extends TableHeaderUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTableHeaderUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTableHeaderUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTableHeaderUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiTableHeaderUI extends *** 86,96 **** MultiTableHeaderUI mui = new MultiTableHeaderUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTableHeaderUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiTableHeaderUI mui = new MultiTableHeaderUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTableHeaderUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiTableHeaderUI extends *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTableHeaderUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTableHeaderUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiTableHeaderUI extends *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTableHeaderUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTableHeaderUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTableHeaderUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTableHeaderUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiTableHeaderUI extends *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTableHeaderUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTableHeaderUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTableHeaderUI extends *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTableHeaderUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTableHeaderUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTableHeaderUI extends *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableHeaderUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableHeaderUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiTableHeaderUI extends *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableHeaderUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableHeaderUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiTableHeaderUI extends *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableHeaderUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableHeaderUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiTableHeaderUI extends *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTableHeaderUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTableHeaderUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiTableHeaderUI extends *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTableHeaderUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTableHeaderUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiTableHeaderUI extends *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTableUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTableUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTableUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTableUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.TableUI; /** ! * A UI delegate that that coordinates multiple {@link TableUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTableUI extends TableUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTableUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTableUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTableUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.TableUI; /** ! * A UI delegate that that coordinates multiple {@link TableUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTableUI extends TableUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTableUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTableUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTableUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiTableUI extends TableU *** 86,96 **** MultiTableUI mui = new MultiTableUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTableUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiTableUI mui = new MultiTableUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTableUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiTableUI extends TableU *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTableUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTableUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiTableUI extends TableU *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTableUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTableUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTableUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTableUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiTableUI extends TableU *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTableUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTableUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTableUI extends TableU *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTableUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTableUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTableUI extends TableU *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiTableUI extends TableU *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiTableUI extends TableU *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTableUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiTableUI extends TableU *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTableUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTableUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiTableUI extends TableU *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTableUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTableUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiTableUI extends TableU *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTextUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTextUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTextUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTextUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.View; *** 58,92 **** import javax.swing.text.Position.Bias; /** ! * A UI delegate that that coordinates multiple {@link TextUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTextUI extends TextUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTextUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTextUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTextUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 58,92 ---- import javax.swing.text.Position.Bias; /** ! * A UI delegate that that coordinates multiple {@link TextUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTextUI extends TextUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTextUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTextUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTextUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiTextUI extends TextUI *** 94,104 **** MultiTextUI mui = new MultiTextUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTextUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 94,104 ---- MultiTextUI mui = new MultiTextUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTextUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiTextUI extends TextUI *** 112,120 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTextUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 112,120 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTextUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiTextUI extends TextUI *** 126,164 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTextUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 126,164 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTextUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiTextUI extends TextUI *** 171,181 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTextUI. ! * * @param g the graphics device. * @param c the component. */ --- 171,181 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTextUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTextUI extends TextUI *** 190,198 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTextUI. ! * * @param g the graphics device. * @param c the component. */ --- 190,198 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTextUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTextUI extends TextUI *** 205,228 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 205,228 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiTextUI extends TextUI *** 235,258 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 235,258 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiTextUI extends TextUI *** 265,288 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 265,288 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiTextUI extends TextUI *** 295,318 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTextUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 295,318 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTextUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiTextUI extends TextUI *** 325,349 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTextUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 325,349 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTextUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiTextUI extends TextUI *** 356,380 **** } return result; } ! /** * Calls the {@link TextUI#modelToView(JTextComponent, int)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the bounds for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ public Rectangle modelToView(JTextComponent tc, int pos) ! throws BadLocationException { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.modelToView(tc, pos); --- 356,380 ---- } return result; } ! /** * Calls the {@link TextUI#modelToView(JTextComponent, int)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the bounds for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ public Rectangle modelToView(JTextComponent tc, int pos) ! throws BadLocationException { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.modelToView(tc, pos); *************** public class MultiTextUI extends TextUI *** 389,411 **** } /** ! * Calls the {@link TextUI#modelToView(JTextComponent, int, Position.Bias)} ! * method for all the UI delegates managed by this MultiTextUI, ! * returning the bounds for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ public Rectangle modelToView(JTextComponent tc, int pos, Bias bias) ! throws BadLocationException { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.modelToView(tc, pos, bias); --- 389,411 ---- } /** ! * Calls the {@link TextUI#modelToView(JTextComponent, int, Position.Bias)} ! * method for all the UI delegates managed by this MultiTextUI, ! * returning the bounds for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ public Rectangle modelToView(JTextComponent tc, int pos, Bias bias) ! throws BadLocationException { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.modelToView(tc, pos, bias); *************** public class MultiTextUI extends TextUI *** 421,442 **** /** * Calls the {@link TextUI#viewToModel(JTextComponent, Point)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the position for the UI delegate from the primary look and ! * feel. ! * * @param t the text component. * @param pt the point. ! * ! * @return The position returned by the UI delegate from the primary ! * look and feel. */ ! public int viewToModel(JTextComponent t, Point pt) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.viewToModel(t, pt); --- 421,442 ---- /** * Calls the {@link TextUI#viewToModel(JTextComponent, Point)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the position for the UI delegate from the primary look and ! * feel. ! * * @param t the text component. * @param pt the point. ! * ! * @return The position returned by the UI delegate from the primary ! * look and feel. */ ! public int viewToModel(JTextComponent t, Point pt) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.viewToModel(t, pt); *************** public class MultiTextUI extends TextUI *** 451,472 **** } /** ! * Calls the {@link TextUI#viewToModel(JTextComponent, Point, Bias[])} method ! * for all the UI delegates managed by this MultiTextUI, ! * returning the position for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The position returned by the UI delegate from the primary ! * look and feel. */ ! public int viewToModel(JTextComponent tc, Point loc, Bias[] outBias) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.viewToModel(tc, loc, outBias); --- 451,472 ---- } /** ! * Calls the {@link TextUI#viewToModel(JTextComponent, Point, Bias[])} method ! * for all the UI delegates managed by this MultiTextUI, ! * returning the position for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The position returned by the UI delegate from the primary ! * look and feel. */ ! public int viewToModel(JTextComponent tc, Point loc, Bias[] outBias) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.viewToModel(tc, loc, outBias); *************** public class MultiTextUI extends TextUI *** 481,528 **** } /** ! * Calls the {@link TextUI#getNextVisualPositionFrom(JTextComponent, int, * Position.Bias, int, Position.Bias[])} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the position for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The position returned by the UI delegate from the primary ! * look and feel. */ public int getNextVisualPositionFrom(JTextComponent tc, int pos, Bias bias, ! int direction, Bias[] outBias) throws BadLocationException { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); ! result = ui.getNextVisualPositionFrom(tc, pos, bias, direction, outBias); } // return values from auxiliary UI delegates are ignored while (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); ! /* int ignored = */ ui.getNextVisualPositionFrom(tc, pos, bias, direction, outBias); } return result; } /** ! * Calls the {@link TextUI#damageRange(JTextComponent, int, int)} method for * all the UI delegates managed by this MultiTextUI. ! * * @param tc the component. * @param start the start position. * @param end the end position. */ ! public void damageRange(JTextComponent tc, int start, int end) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 481,528 ---- } /** ! * Calls the {@link TextUI#getNextVisualPositionFrom(JTextComponent, int, * Position.Bias, int, Position.Bias[])} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the position for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The position returned by the UI delegate from the primary ! * look and feel. */ public int getNextVisualPositionFrom(JTextComponent tc, int pos, Bias bias, ! int direction, Bias[] outBias) throws BadLocationException { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); ! result = ui.getNextVisualPositionFrom(tc, pos, bias, direction, outBias); } // return values from auxiliary UI delegates are ignored while (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); ! /* int ignored = */ ui.getNextVisualPositionFrom(tc, pos, bias, direction, outBias); } return result; } /** ! * Calls the {@link TextUI#damageRange(JTextComponent, int, int)} method for * all the UI delegates managed by this MultiTextUI. ! * * @param tc the component. * @param start the start position. * @param end the end position. */ ! public void damageRange(JTextComponent tc, int start, int end) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiTextUI extends TextUI *** 533,542 **** } /** ! * Calls the {@link TextUI#damageRange(JTextComponent, int, int, ! * Position.Bias, Position.Bias)} method for all the UI delegates managed by * this MultiTextUI. ! * * @param tc the component. * @param start the start position. * @param end the end position. --- 533,542 ---- } /** ! * Calls the {@link TextUI#damageRange(JTextComponent, int, int, ! * Position.Bias, Position.Bias)} method for all the UI delegates managed by * this MultiTextUI. ! * * @param tc the component. * @param start the start position. * @param end the end position. *************** public class MultiTextUI extends TextUI *** 544,550 **** * @param endBias the end bias. */ public void damageRange(JTextComponent tc, int start, int end, ! Bias startBias, Bias endBias) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 544,550 ---- * @param endBias the end bias. */ public void damageRange(JTextComponent tc, int start, int end, ! Bias startBias, Bias endBias) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiTextUI extends TextUI *** 556,576 **** /** * Calls the {@link TextUI#getEditorKit(JTextComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the editor kit for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The editor kit returned by the UI delegate from the primary ! * look and feel. */ ! public EditorKit getEditorKit(JTextComponent tc) { EditorKit result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.getEditorKit(tc); --- 556,576 ---- /** * Calls the {@link TextUI#getEditorKit(JTextComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the editor kit for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The editor kit returned by the UI delegate from the primary ! * look and feel. */ ! public EditorKit getEditorKit(JTextComponent tc) { EditorKit result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.getEditorKit(tc); *************** public class MultiTextUI extends TextUI *** 586,606 **** /** * Calls the {@link TextUI#getRootView(JTextComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the view for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The view returned by the UI delegate from the primary ! * look and feel. */ ! public View getRootView(JTextComponent tc) { View result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.getRootView(tc); --- 586,606 ---- /** * Calls the {@link TextUI#getRootView(JTextComponent)} method for all ! * the UI delegates managed by this MultiTextUI, ! * returning the view for the UI delegate from the primary look and ! * feel. ! * * @param tc the text component. ! * ! * @return The view returned by the UI delegate from the primary ! * look and feel. */ ! public View getRootView(JTextComponent tc) { View result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TextUI ui = (TextUI) iterator.next(); result = ui.getRootView(tc); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiToolBarUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiToolBarUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiToolBarUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiToolBarUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.ToolBarUI; /** ! * A UI delegate that that coordinates multiple {@link ToolBarUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiToolBarUI extends ToolBarUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiToolBarUI instance. ! * * @see #createUI(JComponent) */ ! public MultiToolBarUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiToolBarUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.ToolBarUI; /** ! * A UI delegate that that coordinates multiple {@link ToolBarUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiToolBarUI extends ToolBarUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiToolBarUI instance. ! * * @see #createUI(JComponent) */ ! public MultiToolBarUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiToolBarUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiToolBarUI extends Tool *** 86,96 **** MultiToolBarUI mui = new MultiToolBarUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiToolBarUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiToolBarUI mui = new MultiToolBarUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiToolBarUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiToolBarUI extends Tool *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiToolBarUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiToolBarUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiToolBarUI extends Tool *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiToolBarUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiToolBarUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiToolBarUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiToolBarUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiToolBarUI extends Tool *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiToolBarUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiToolBarUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiToolBarUI extends Tool *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiToolBarUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiToolBarUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiToolBarUI extends Tool *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolBarUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolBarUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiToolBarUI extends Tool *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolBarUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolBarUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiToolBarUI extends Tool *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolBarUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolBarUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiToolBarUI extends Tool *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiToolBarUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiToolBarUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiToolBarUI extends Tool *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiToolBarUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiToolBarUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiToolBarUI extends Tool *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiToolTipUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiToolTipUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiToolTipUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiToolTipUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.ToolTipUI; /** ! * A UI delegate that that coordinates multiple {@link ToolTipUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiToolTipUI extends ToolTipUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiToolTipUI instance. ! * * @see #createUI(JComponent) */ ! public MultiToolTipUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiToolTipUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.ToolTipUI; /** ! * A UI delegate that that coordinates multiple {@link ToolTipUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiToolTipUI extends ToolTipUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiToolTipUI instance. ! * * @see #createUI(JComponent) */ ! public MultiToolTipUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiToolTipUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiToolTipUI extends Tool *** 86,96 **** MultiToolTipUI mui = new MultiToolTipUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiToolTipUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiToolTipUI mui = new MultiToolTipUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiToolTipUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiToolTipUI extends Tool *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiToolTipUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiToolTipUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiToolTipUI extends Tool *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiToolTipUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiToolTipUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiToolTipUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiToolTipUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiToolTipUI extends Tool *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiToolTipUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiToolTipUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiToolTipUI extends Tool *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiToolTipUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiToolTipUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiToolTipUI extends Tool *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolTipUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolTipUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiToolTipUI extends Tool *** 230,250 **** /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolTipUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 230,250 ---- /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolTipUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiToolTipUI extends Tool *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolTipUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiToolTipUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiToolTipUI extends Tool *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiToolTipUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiToolTipUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiToolTipUI extends Tool *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiToolTipUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiToolTipUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiToolTipUI extends Tool *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTreeUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTreeUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiTreeUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiTreeUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.TreeUI; *** 53,87 **** import javax.swing.tree.TreePath; /** ! * A UI delegate that that coordinates multiple {@link TreeUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTreeUI extends TreeUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTreeUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTreeUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTreeUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 53,87 ---- import javax.swing.tree.TreePath; /** ! * A UI delegate that that coordinates multiple {@link TreeUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiTreeUI extends TreeUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiTreeUI instance. ! * * @see #createUI(JComponent) */ ! public MultiTreeUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiTreeUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiTreeUI extends TreeUI *** 89,99 **** MultiTreeUI mui = new MultiTreeUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTreeUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 89,99 ---- MultiTreeUI mui = new MultiTreeUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiTreeUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiTreeUI extends TreeUI *** 107,115 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTreeUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 107,115 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiTreeUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiTreeUI extends TreeUI *** 121,159 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTreeUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 121,159 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiTreeUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiTreeUI extends TreeUI *** 166,176 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTreeUI. ! * * @param g the graphics device. * @param c the component. */ --- 166,176 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiTreeUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTreeUI extends TreeUI *** 185,193 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTreeUI. ! * * @param g the graphics device. * @param c the component. */ --- 185,193 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiTreeUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiTreeUI extends TreeUI *** 200,223 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 200,223 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiTreeUI extends TreeUI *** 230,253 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 230,253 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiTreeUI extends TreeUI *** 260,283 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 260,283 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiTreeUI extends TreeUI *** 290,313 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 290,313 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiTreeUI extends TreeUI *** 320,344 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 320,344 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiTreeUI extends TreeUI *** 351,374 **** } return result; } ! /** * Calls the {@link TreeUI#getPathBounds(JTree, TreePath)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the bounds for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ ! public Rectangle getPathBounds(JTree tree, TreePath path) { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getPathBounds(tree, path); --- 351,374 ---- } return result; } ! /** * Calls the {@link TreeUI#getPathBounds(JTree, TreePath)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the bounds for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The bounds returned by the UI delegate from the primary ! * look and feel. */ ! public Rectangle getPathBounds(JTree tree, TreePath path) { Rectangle result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getPathBounds(tree, path); *************** public class MultiTreeUI extends TreeUI *** 384,404 **** /** * Calls the {@link TreeUI#getPathForRow(JTree, int)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the path for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The path returned by the UI delegate from the primary ! * look and feel. */ ! public TreePath getPathForRow(JTree tree, int row) { TreePath result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getPathForRow(tree, row); --- 384,404 ---- /** * Calls the {@link TreeUI#getPathForRow(JTree, int)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the path for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The path returned by the UI delegate from the primary ! * look and feel. */ ! public TreePath getPathForRow(JTree tree, int row) { TreePath result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getPathForRow(tree, row); *************** public class MultiTreeUI extends TreeUI *** 414,434 **** /** * Calls the {@link TreeUI#getRowForPath(JTree, TreePath)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the row index for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The row index returned by the UI delegate from the primary ! * look and feel. */ ! public int getRowForPath(JTree tree, TreePath path) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getRowForPath(tree, path); --- 414,434 ---- /** * Calls the {@link TreeUI#getRowForPath(JTree, TreePath)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the row index for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The row index returned by the UI delegate from the primary ! * look and feel. */ ! public int getRowForPath(JTree tree, TreePath path) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getRowForPath(tree, path); *************** public class MultiTreeUI extends TreeUI *** 439,464 **** TreeUI ui = (TreeUI) iterator.next(); /* int ignored = */ ui.getRowForPath(tree, path); } ! return result; } /** * Calls the {@link TreeUI#getRowCount(JTree)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ ! public int getRowCount(JTree tree) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getRowCount(tree); --- 439,464 ---- TreeUI ui = (TreeUI) iterator.next(); /* int ignored = */ ui.getRowForPath(tree, path); } ! return result; } /** * Calls the {@link TreeUI#getRowCount(JTree)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ ! public int getRowCount(JTree tree) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getRowCount(tree); *************** public class MultiTreeUI extends TreeUI *** 469,494 **** TreeUI ui = (TreeUI) iterator.next(); /* int ignored = */ ui.getRowCount(tree); } ! return result; } /** * Calls the {@link TreeUI#getClosestPathForLocation(JTree, int, int)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the path for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The path returned by the UI delegate from the primary ! * look and feel. */ ! public TreePath getClosestPathForLocation(JTree tree, int x, int y) { TreePath result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getClosestPathForLocation(tree, x, y); --- 469,494 ---- TreeUI ui = (TreeUI) iterator.next(); /* int ignored = */ ui.getRowCount(tree); } ! return result; } /** * Calls the {@link TreeUI#getClosestPathForLocation(JTree, int, int)} method ! * for all the UI delegates managed by this MultiTreeUI, ! * returning the path for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The path returned by the UI delegate from the primary ! * look and feel. */ ! public TreePath getClosestPathForLocation(JTree tree, int x, int y) { TreePath result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getClosestPathForLocation(tree, x, y); *************** public class MultiTreeUI extends TreeUI *** 499,524 **** TreeUI ui = (TreeUI) iterator.next(); /* TreePath ignored = */ ui.getClosestPathForLocation(tree, x, y); } ! return result; } /** * Calls the {@link TreeUI#isEditing(JTree)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The result returned by the UI delegate from the primary ! * look and feel. */ ! public boolean isEditing(JTree tree) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.isEditing(tree); --- 499,524 ---- TreeUI ui = (TreeUI) iterator.next(); /* TreePath ignored = */ ui.getClosestPathForLocation(tree, x, y); } ! return result; } /** * Calls the {@link TreeUI#isEditing(JTree)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The result returned by the UI delegate from the primary ! * look and feel. */ ! public boolean isEditing(JTree tree) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.isEditing(tree); *************** public class MultiTreeUI extends TreeUI *** 534,554 **** /** * Calls the {@link TreeUI#stopEditing(JTree)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The result returned by the UI delegate from the primary ! * look and feel. */ ! public boolean stopEditing(JTree tree) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.stopEditing(tree); --- 534,554 ---- /** * Calls the {@link TreeUI#stopEditing(JTree)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The result returned by the UI delegate from the primary ! * look and feel. */ ! public boolean stopEditing(JTree tree) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.stopEditing(tree); *************** public class MultiTreeUI extends TreeUI *** 563,574 **** } /** ! * Calls the {@link TreeUI#cancelEditing(JTree)} method for * all the UI delegates managed by this MultiTreeUI. ! * * @param tree the tree component. */ ! public void cancelEditing(JTree tree) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 563,574 ---- } /** ! * Calls the {@link TreeUI#cancelEditing(JTree)} method for * all the UI delegates managed by this MultiTreeUI. ! * * @param tree the tree component. */ ! public void cancelEditing(JTree tree) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiTreeUI extends TreeUI *** 579,591 **** } /** ! * Calls the {@link TreeUI#startEditingAtPath(JTree, TreePath)} method for * all the UI delegates managed by this MultiTreeUI. ! * * @param tree the tree component. * @param path the path. */ ! public void startEditingAtPath(JTree tree, TreePath path) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) --- 579,591 ---- } /** ! * Calls the {@link TreeUI#startEditingAtPath(JTree, TreePath)} method for * all the UI delegates managed by this MultiTreeUI. ! * * @param tree the tree component. * @param path the path. */ ! public void startEditingAtPath(JTree tree, TreePath path) { Iterator iterator = uis.iterator(); while (iterator.hasNext()) *************** public class MultiTreeUI extends TreeUI *** 597,617 **** /** * Calls the {@link TreeUI#getEditingPath(JTree)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the path for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The path returned by the UI delegate from the primary ! * look and feel. */ ! public TreePath getEditingPath(JTree tree) { TreePath result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getEditingPath(tree); --- 597,617 ---- /** * Calls the {@link TreeUI#getEditingPath(JTree)} method for all ! * the UI delegates managed by this MultiTreeUI, ! * returning the path for the UI delegate from the primary look and ! * feel. ! * * @param tree the tree component. ! * ! * @return The path returned by the UI delegate from the primary ! * look and feel. */ ! public TreePath getEditingPath(JTree tree) { TreePath result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { TreeUI ui = (TreeUI) iterator.next(); result = ui.getEditingPath(tree); *************** public class MultiTreeUI extends TreeUI *** 622,628 **** TreeUI ui = (TreeUI) iterator.next(); /* TreePath ignored = */ ui.getEditingPath(tree); } ! return result; } } --- 622,628 ---- TreeUI ui = (TreeUI) iterator.next(); /* TreePath ignored = */ ui.getEditingPath(tree); } ! return result; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiViewportUI.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiViewportUI.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/multi/MultiViewportUI.java Fri Sep 23 19:36:46 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/multi/MultiViewportUI.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.ComponentUI; *** 50,84 **** import javax.swing.plaf.ViewportUI; /** ! * A UI delegate that that coordinates multiple {@link ViewportUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiViewportUI extends ViewportUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiViewPortUI instance. ! * * @see #createUI(JComponent) */ ! public MultiViewportUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiViewportUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) --- 50,84 ---- import javax.swing.plaf.ViewportUI; /** ! * A UI delegate that that coordinates multiple {@link ViewportUI} ! * instances, one from the primary look and feel, and one or more from the * auxiliary look and feel(s). ! * * @see UIManager#addAuxiliaryLookAndFeel(LookAndFeel) */ ! public class MultiViewportUI extends ViewportUI { /** A list of references to the actual component UIs. */ protected Vector uis; ! /** * Creates a new MultiViewPortUI instance. ! * * @see #createUI(JComponent) */ ! public MultiViewportUI() { uis = new Vector(); } ! /** ! * Creates a delegate object for the specified component. If any auxiliary * look and feels support this component, a MultiViewportUI is * returned, otherwise the UI from the default look and feel is returned. ! * * @param target the component. ! * * @see MultiLookAndFeel#createUIs(ComponentUI, Vector, JComponent) */ public static ComponentUI createUI(JComponent target) *************** public class MultiViewportUI extends Vie *** 86,96 **** MultiViewportUI mui = new MultiViewportUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiViewportUI. ! * * @param c the component. */ public void installUI(JComponent c) --- 86,96 ---- MultiViewportUI mui = new MultiViewportUI(); return MultiLookAndFeel.createUIs(mui, mui.uis, target); } ! /** ! * Calls the {@link ComponentUI#installUI(JComponent)} method for all * the UI delegates managed by this MultiViewportUI. ! * * @param c the component. */ public void installUI(JComponent c) *************** public class MultiViewportUI extends Vie *** 104,112 **** } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiViewportUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) --- 104,112 ---- } /** ! * Calls the {@link ComponentUI#uninstallUI(JComponent)} method for all * the UI delegates managed by this MultiViewportUI. ! * * @param c the component. */ public void uninstallUI(JComponent c) *************** public class MultiViewportUI extends Vie *** 118,156 **** ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiViewportUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiViewportUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); --- 118,156 ---- ui.uninstallUI(c); } } ! /** * Returns an array containing the UI delegates managed by this ! * MultiViewportUI. The first item in the array is always * the UI delegate from the installed default look and feel. ! * * @return An array of UI delegates. */ public ComponentUI[] getUIs() { return MultiLookAndFeel.uisToArray(uis); } ! /** ! * Calls the {@link ComponentUI#contains(JComponent, int, int)} method for all ! * the UI delegates managed by this MultiViewportUI, ! * returning the result for the UI delegate from the primary look and ! * feel. ! * * @param c the component. * @param x the x-coordinate. * @param y the y-coordinate. ! * * @return true if the specified (x, y) coordinate falls within * the bounds of the component as rendered by the UI delegate in the ! * primary look and feel, and false otherwise. */ ! public boolean contains(JComponent c, int x, int y) { boolean result = false; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.contains(c, x, y); *************** public class MultiViewportUI extends Vie *** 163,173 **** } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiViewportUI. ! * * @param g the graphics device. * @param c the component. */ --- 163,173 ---- } return result; } ! /** ! * Calls the {@link ComponentUI#update(Graphics, JComponent)} method for all * the UI delegates managed by this MultiViewportUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiViewportUI extends Vie *** 182,190 **** } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiViewportUI. ! * * @param g the graphics device. * @param c the component. */ --- 182,190 ---- } /** ! * Calls the paint(Graphics, JComponent) method for all the UI * delegates managed by this MultiViewportUI. ! * * @param g the graphics device. * @param c the component. */ *************** public class MultiViewportUI extends Vie *** 197,220 **** ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiViewportUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); --- 197,220 ---- ui.paint(g, c); } } ! /** * Calls the {@link ComponentUI#getPreferredSize(JComponent)} method for all ! * the UI delegates managed by this MultiViewportUI, ! * returning the preferred size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The preferred size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getPreferredSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getPreferredSize(c); *************** public class MultiViewportUI extends Vie *** 227,250 **** } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiViewportUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); --- 227,250 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMinimumSize(JComponent)} method for all ! * the UI delegates managed by this MultiViewportUI, ! * returning the minimum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The minimum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMinimumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMinimumSize(c); *************** public class MultiViewportUI extends Vie *** 257,280 **** } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiViewportUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); --- 257,280 ---- } return result; } ! /** * Calls the {@link ComponentUI#getMaximumSize(JComponent)} method for all ! * the UI delegates managed by this MultiViewportUI, ! * returning the maximum size for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The maximum size returned by the UI delegate from the primary ! * look and feel. */ public Dimension getMaximumSize(JComponent c) { Dimension result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getMaximumSize(c); *************** public class MultiViewportUI extends Vie *** 287,310 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiViewportUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); --- 287,310 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChildrenCount(JComponent)} method ! * for all the UI delegates managed by this MultiViewportUI, ! * returning the count for the UI delegate from the primary look and ! * feel. ! * * @param c the component. ! * ! * @return The count returned by the UI delegate from the primary ! * look and feel. */ public int getAccessibleChildrenCount(JComponent c) { int result = 0; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChildrenCount(c); *************** public class MultiViewportUI extends Vie *** 317,341 **** } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiViewportUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); --- 317,341 ---- } return result; } ! /** * Calls the {@link ComponentUI#getAccessibleChild(JComponent, int)} method ! * for all the UI delegates managed by this MultiViewportUI, ! * returning the child for the UI delegate from the primary look and ! * feel. ! * * @param c the component * @param i the child index. ! * ! * @return The child returned by the UI delegate from the primary ! * look and feel. */ public Accessible getAccessibleChild(JComponent c, int i) { Accessible result = null; Iterator iterator = uis.iterator(); // first UI delegate provides the return value ! if (iterator.hasNext()) { ComponentUI ui = (ComponentUI) iterator.next(); result = ui.getAccessibleChild(c, i); *************** public class MultiViewportUI extends Vie *** 348,352 **** } return result; } ! } --- 348,352 ---- } return result; } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/synth/SynthGraphicsUtils.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/synth/SynthGraphicsUtils.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/synth/SynthGraphicsUtils.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/synth/SynthGraphicsUtils.java Tue Jan 11 19:46:05 2011 *************** public class SynthGraphicsUtils *** 91,100 **** * Lays out a label and (if non-null) an icon. The calculated coordinates are * then stored in viewR, iconR and * textR. ! * * The alignment and position parameters may be one of the alignment or * position constants defined in {@link javax.swing.SwingConstants}. ! * * @param ctx the synth context, identifies the current region * @param fm the font metrics to use to fetch the text measures * @param text the text to lay out, may be null --- 91,100 ---- * Lays out a label and (if non-null) an icon. The calculated coordinates are * then stored in viewR, iconR and * textR. ! * * The alignment and position parameters may be one of the alignment or * position constants defined in {@link javax.swing.SwingConstants}. ! * * @param ctx the synth context, identifies the current region * @param fm the font metrics to use to fetch the text measures * @param text the text to lay out, may be null *************** public class SynthGraphicsUtils *** 123,129 **** /** * Returns the width of the string text for the specified font * and font metrics. ! * * @param ctx identifies the current region * @param font the font * @param fm the font metrics to use --- 123,129 ---- /** * Returns the width of the string text for the specified font * and font metrics. ! * * @param ctx identifies the current region * @param font the font * @param fm the font metrics to use diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/synth/SynthLookAndFeel.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/synth/SynthLookAndFeel.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/synth/SynthLookAndFeel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/synth/SynthLookAndFeel.java Tue Jan 11 19:46:05 2011 *************** public class SynthLookAndFeel *** 73,79 **** * Creates a new instance of SynthLookAndFeel. In order to use * the Synth look and feel you either need to call {@link #load} to load a * set of styles from an XML file, or you need to call ! * {@link #setStyleFactory} to provide your own style factory. */ public SynthLookAndFeel() { --- 73,79 ---- * Creates a new instance of SynthLookAndFeel. In order to use * the Synth look and feel you either need to call {@link #load} to load a * set of styles from an XML file, or you need to call ! * {@link #setStyleFactory} to provide your own style factory. */ public SynthLookAndFeel() { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/plaf/synth/SynthPainter.java gcc-4.6.0/libjava/classpath/javax/swing/plaf/synth/SynthPainter.java *** gcc-4.5.2/libjava/classpath/javax/swing/plaf/synth/SynthPainter.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/plaf/synth/SynthPainter.java Tue Jan 11 19:46:05 2011 *************** public abstract class SynthPainter *** 68,74 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the arrow --- 68,74 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the arrow *************** public abstract class SynthPainter *** 86,92 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the progress bar --- 86,92 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the progress bar *************** public abstract class SynthPainter *** 105,111 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the separator --- 105,111 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the separator *************** public abstract class SynthPainter *** 124,130 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the divider --- 124,130 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the divider *************** public abstract class SynthPainter *** 143,149 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the divider --- 143,149 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param dir the orientation of the divider *************** public abstract class SynthPainter *** 162,168 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 162,168 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 179,185 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 179,185 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 196,202 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 196,202 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 213,219 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 213,219 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 230,236 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 230,236 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 247,253 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 247,253 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 264,270 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 264,270 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 281,287 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 281,287 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 298,304 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 298,304 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 315,321 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 315,321 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 332,338 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 332,338 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 349,355 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 349,355 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 366,372 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 366,372 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 383,389 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 383,389 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 400,406 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 400,406 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 417,423 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 417,423 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 434,440 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 434,440 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 451,457 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 451,457 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 468,474 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 468,474 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 485,491 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 485,491 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 502,508 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 502,508 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 519,525 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 519,525 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 536,542 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 536,542 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 553,559 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 553,559 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 570,576 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 570,576 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 587,593 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 587,593 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 604,610 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 604,610 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 621,627 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 621,627 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 638,644 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 638,644 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 655,661 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 655,661 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 672,678 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 672,678 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 689,695 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 689,695 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 706,712 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 706,712 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 723,729 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 723,729 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 740,746 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 740,746 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 757,763 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 757,763 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 774,780 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 774,780 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 791,797 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 791,797 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 808,814 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 808,814 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 825,831 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 825,831 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 842,848 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 842,848 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 859,865 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 859,865 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 876,882 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 876,882 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 893,899 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 893,899 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 910,916 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 910,916 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 927,933 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 927,933 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 944,950 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 944,950 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 961,967 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 961,967 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 978,984 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 978,984 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 995,1001 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 995,1001 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1012,1018 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1012,1018 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1029,1035 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1029,1035 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1046,1052 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1046,1052 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1063,1069 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1063,1069 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1080,1086 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1080,1086 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1097,1103 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param orientation orientation of the scrollbar --- 1097,1103 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param orientation orientation of the scrollbar *************** public abstract class SynthPainter *** 1115,1121 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param orientation orientation of the scrollbar --- 1115,1121 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param orientation orientation of the scrollbar *************** public abstract class SynthPainter *** 1133,1139 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1133,1139 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1150,1156 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1150,1156 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1167,1173 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1167,1173 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1184,1190 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1184,1190 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1201,1207 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1201,1207 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1218,1224 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1218,1224 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1235,1241 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1235,1241 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1252,1258 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1252,1258 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1269,1275 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param orientation orientation of the slider --- 1269,1275 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param orientation orientation of the slider *************** public abstract class SynthPainter *** 1287,1293 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param orientation orientation of the slider --- 1287,1293 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param orientation orientation of the slider *************** public abstract class SynthPainter *** 1305,1311 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1305,1311 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1322,1328 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1322,1328 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1339,1345 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1339,1345 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1356,1362 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1356,1362 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1373,1379 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1373,1379 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1390,1396 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1390,1396 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1407,1413 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1407,1413 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1424,1430 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1424,1430 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1441,1447 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1441,1447 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1458,1464 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1458,1464 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1475,1481 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1475,1481 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1492,1498 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1492,1498 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1509,1515 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1509,1515 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1526,1532 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param index the index of the tab to paint --- 1526,1532 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param index the index of the tab to paint *************** public abstract class SynthPainter *** 1544,1550 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param index the index of the tab to paint --- 1544,1550 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint * @param index the index of the tab to paint *************** public abstract class SynthPainter *** 1562,1568 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1562,1568 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1579,1585 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1579,1585 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1596,1602 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1596,1602 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1613,1619 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1613,1619 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1630,1636 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1630,1636 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1647,1653 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1647,1653 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1664,1670 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1664,1670 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1681,1687 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1681,1687 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1698,1704 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1698,1704 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1715,1721 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1715,1721 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1732,1738 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1732,1738 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1749,1755 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1749,1755 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1766,1772 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1766,1772 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1783,1789 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1783,1789 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1800,1806 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1800,1806 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1817,1823 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1817,1823 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1834,1840 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1834,1840 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1851,1857 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1851,1857 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1868,1874 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1868,1874 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1885,1891 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1885,1891 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1902,1908 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1902,1908 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1919,1925 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1919,1925 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1936,1942 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1936,1942 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1953,1959 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1953,1959 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1970,1976 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1970,1976 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ *************** public abstract class SynthPainter *** 1987,1993 **** * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ --- 1987,1993 ---- * painting * @param g the graphics context to use for painting * @param x the X coordinate of the area to paint ! * @param y the Y coordinate of the area to paint * @param w the width of the area to paint * @param h the height of the area to paint */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/AbstractTableModel.java gcc-4.6.0/libjava/classpath/javax/swing/table/AbstractTableModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/AbstractTableModel.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/table/AbstractTableModel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.TableModelEvent *** 48,56 **** import javax.swing.event.TableModelListener; /** ! * A base class that can be used to create implementations of the * {@link TableModel} interface. ! * * @author Andrew Selkirk */ public abstract class AbstractTableModel implements TableModel, Serializable --- 48,56 ---- import javax.swing.event.TableModelListener; /** ! * A base class that can be used to create implementations of the * {@link TableModel} interface. ! * * @author Andrew Selkirk */ public abstract class AbstractTableModel implements TableModel, Serializable *************** public abstract class AbstractTableModel *** 71,80 **** } /** ! * Returns the name of the specified column. This method generates default ! * names in a sequence (starting with column 0): A, B, C, ..., Z, AA, AB, * AC, ..., AZ, BA, BB, BC, and so on. Subclasses may override this method ! * to allow column names to be specified on some other basis. * * @param columnIndex the column index. * --- 71,80 ---- } /** ! * Returns the name of the specified column. This method generates default ! * names in a sequence (starting with column 0): A, B, C, ..., Z, AA, AB, * AC, ..., AZ, BA, BB, BC, and so on. Subclasses may override this method ! * to allow column names to be specified on some other basis. * * @param columnIndex the column index. * *************** public abstract class AbstractTableModel *** 98,116 **** * @param columnName the name of the column (null not permitted). * * @return The index of the column, -1 if not found. ! * * @see #getColumnName(int) ! * @throws NullPointerException if columnName is * null. */ public int findColumn(String columnName) { int count = getColumnCount(); ! for (int index = 0; index < count; index++) { String name = getColumnName(index); ! if (columnName.equals(name)) return index; } --- 98,116 ---- * @param columnName the name of the column (null not permitted). * * @return The index of the column, -1 if not found. ! * * @see #getColumnName(int) ! * @throws NullPointerException if columnName is * null. */ public int findColumn(String columnName) { int count = getColumnCount(); ! for (int index = 0; index < count; index++) { String name = getColumnName(index); ! if (columnName.equals(name)) return index; } *************** public abstract class AbstractTableModel *** 121,130 **** /** * Returns the Class for all Object instances ! * in the specified column. ! * * @param columnIndex the column index. ! * * @return The class. */ public Class getColumnClass(int columnIndex) --- 121,130 ---- /** * Returns the Class for all Object instances ! * in the specified column. ! * * @param columnIndex the column index. ! * * @return The class. */ public Class getColumnClass(int columnIndex) *************** public abstract class AbstractTableModel *** 133,141 **** } /** ! * Returns true if the specified cell is editable, and ! * false if it is not. This implementation returns ! * false for all arguments, subclasses should override the * method if necessary. * * @param rowIndex the row index of the cell. --- 133,141 ---- } /** ! * Returns true if the specified cell is editable, and ! * false if it is not. This implementation returns ! * false for all arguments, subclasses should override the * method if necessary. * * @param rowIndex the row index of the cell. *************** public abstract class AbstractTableModel *** 149,156 **** } /** ! * Sets the value of the given cell. This implementation ignores all ! * arguments and does nothing, subclasses should override the * method if necessary. * * @param value the new value (null permitted). --- 149,156 ---- } /** ! * Sets the value of the given cell. This implementation ignores all ! * arguments and does nothing, subclasses should override the * method if necessary. * * @param value the new value (null permitted). *************** public abstract class AbstractTableModel *** 219,225 **** /** * Sends a {@link TableModelEvent} to all registered listeners to inform * them that some rows have been inserted into the model. ! * * @param firstRow the index of the first row. * @param lastRow the index of the last row. */ --- 219,225 ---- /** * Sends a {@link TableModelEvent} to all registered listeners to inform * them that some rows have been inserted into the model. ! * * @param firstRow the index of the first row. * @param lastRow the index of the last row. */ *************** public abstract class AbstractTableModel *** 233,239 **** /** * Sends a {@link TableModelEvent} to all registered listeners to inform * them that some rows have been updated. ! * * @param firstRow the index of the first row. * @param lastRow the index of the last row. */ --- 233,239 ---- /** * Sends a {@link TableModelEvent} to all registered listeners to inform * them that some rows have been updated. ! * * @param firstRow the index of the first row. * @param lastRow the index of the last row. */ *************** public abstract class AbstractTableModel *** 247,253 **** /** * Sends a {@link TableModelEvent} to all registered listeners to inform * them that some rows have been deleted from the model. ! * * @param firstRow the index of the first row. * @param lastRow the index of the last row. */ --- 247,253 ---- /** * Sends a {@link TableModelEvent} to all registered listeners to inform * them that some rows have been deleted from the model. ! * * @param firstRow the index of the first row. * @param lastRow the index of the last row. */ *************** public abstract class AbstractTableModel *** 261,267 **** /** * Sends a {@link TableModelEvent} to all registered listeners to inform * them that a single cell has been updated. ! * * @param row the row index. * @param column the column index. */ --- 261,267 ---- /** * Sends a {@link TableModelEvent} to all registered listeners to inform * them that a single cell has been updated. ! * * @param row the row index. * @param column the column index. */ *************** public abstract class AbstractTableModel *** 272,286 **** /** * Sends the specified event to all registered listeners. ! * * @param event the event to send. */ public void fireTableChanged(TableModelEvent event) { ! int index; TableModelListener listener; Object[] list = listenerList.getListenerList(); ! for (index = 0; index < list.length; index += 2) { listener = (TableModelListener) list [index + 1]; --- 272,286 ---- /** * Sends the specified event to all registered listeners. ! * * @param event the event to send. */ public void fireTableChanged(TableModelEvent event) { ! int index; TableModelListener listener; Object[] list = listenerList.getListenerList(); ! for (index = 0; index < list.length; index += 2) { listener = (TableModelListener) list [index + 1]; *************** public abstract class AbstractTableModel *** 291,299 **** /** * Returns an array of listeners of the given type that are registered with * this model. ! * * @param listenerType the listener class. ! * * @return An array of listeners (possibly empty). */ public T[] getListeners(Class listenerType) --- 291,299 ---- /** * Returns an array of listeners of the given type that are registered with * this model. ! * * @param listenerType the listener class. ! * * @return An array of listeners (possibly empty). */ public T[] getListeners(Class listenerType) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java gcc-4.6.0/libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java Tue Jan 11 19:46:05 2011 *************** public class DefaultTableCellRenderer ex *** 131,137 **** * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, --- 131,137 ---- * @param hasFocus has the cell the focus? * @param row the row to render * @param column the cell to render ! * * @return this component (the default table cell renderer) */ public Component getTableCellRendererComponent(JTable table, Object value, *************** public class DefaultTableCellRenderer ex *** 180,187 **** // can avoid filling the background by setting the renderer opaque. Color back = getBackground(); setOpaque(back != null && back.equals(table.getBackground())); ! ! return this; } /** --- 180,187 ---- // can avoid filling the background by setting the renderer opaque. Color back = getBackground(); setOpaque(back != null && back.equals(table.getBackground())); ! ! return this; } /** *************** public class DefaultTableCellRenderer ex *** 254,267 **** * do something.

                                                */ public void firePropertyChange(String propertyName, boolean oldValue, ! boolean newValue) { // Does nothing. } /** * Sets the String for this cell. ! * * @param value the string value for this cell; if value is null it * sets the text value to an empty string */ --- 254,267 ---- * do something.

                                                */ public void firePropertyChange(String propertyName, boolean oldValue, ! boolean newValue) { // Does nothing. } /** * Sets the String for this cell. ! * * @param value the string value for this cell; if value is null it * sets the text value to an empty string */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java gcc-4.6.0/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.TableColumnMode *** 57,66 **** /** * A model that stores information about the columns used in a {@link JTable}. ! * * @see JTable#setColumnModel(TableColumnModel) ! * ! * @author Andrew Selkirk */ public class DefaultTableColumnModel implements TableColumnModel, PropertyChangeListener, ListSelectionListener, --- 57,66 ---- /** * A model that stores information about the columns used in a {@link JTable}. ! * * @see JTable#setColumnModel(TableColumnModel) ! * ! * @author Andrew Selkirk */ public class DefaultTableColumnModel implements TableColumnModel, PropertyChangeListener, ListSelectionListener, *************** public class DefaultTableColumnModel *** 89,103 **** protected EventListenerList listenerList = new EventListenerList(); /** ! * A change event used when notifying listeners of a change to the * columnMargin field. This single event is reused for all ! * notifications (it is lazily instantiated within the * {@link #fireColumnMarginChanged()} method). */ protected transient ChangeEvent changeEvent; /** ! * A flag that indicates whether or not columns can be selected. */ protected boolean columnSelectionAllowed; --- 89,103 ---- protected EventListenerList listenerList = new EventListenerList(); /** ! * A change event used when notifying listeners of a change to the * columnMargin field. This single event is reused for all ! * notifications (it is lazily instantiated within the * {@link #fireColumnMarginChanged()} method). */ protected transient ChangeEvent changeEvent; /** ! * A flag that indicates whether or not columns can be selected. */ protected boolean columnSelectionAllowed; *************** public class DefaultTableColumnModel *** 107,116 **** protected int totalColumnWidth; /** ! * Creates a new table column model with zero columns. A default column * selection model is created by calling {@link #createSelectionModel()}. * The default value for columnMargin is 1 and ! * the default value for columnSelectionAllowed is * false. */ public DefaultTableColumnModel() --- 107,116 ---- protected int totalColumnWidth; /** ! * Creates a new table column model with zero columns. A default column * selection model is created by calling {@link #createSelectionModel()}. * The default value for columnMargin is 1 and ! * the default value for columnSelectionAllowed is * false. */ public DefaultTableColumnModel() *************** public class DefaultTableColumnModel *** 123,139 **** } /** ! * Adds a column to the model then calls * {@link #fireColumnAdded(TableColumnModelEvent)} to notify the registered * listeners. The model registers itself with the column as a * {@link PropertyChangeListener} so that changes to the column width will * invalidate the cached {@link #totalColumnWidth} value. * * @param column the column (null not permitted). ! * ! * @throws IllegalArgumentException if column is * null. ! * * @see #removeColumn(TableColumn) */ public void addColumn(TableColumn column) --- 123,139 ---- } /** ! * Adds a column to the model then calls * {@link #fireColumnAdded(TableColumnModelEvent)} to notify the registered * listeners. The model registers itself with the column as a * {@link PropertyChangeListener} so that changes to the column width will * invalidate the cached {@link #totalColumnWidth} value. * * @param column the column (null not permitted). ! * ! * @throws IllegalArgumentException if column is * null. ! * * @see #removeColumn(TableColumn) */ public void addColumn(TableColumn column) *************** public class DefaultTableColumnModel *** 143,160 **** tableColumns.add(column); column.addPropertyChangeListener(this); invalidateWidthCache(); ! fireColumnAdded(new TableColumnModelEvent(this, 0, tableColumns.size() - 1)); } /** * Removes a column from the model then calls * {@link #fireColumnRemoved(TableColumnModelEvent)} to notify the registered ! * listeners. If the specified column does not belong to the model, or is * null, this method does nothing. * * @param column the column to be removed (null permitted). ! * * @see #addColumn(TableColumn) */ public void removeColumn(TableColumn column) --- 143,160 ---- tableColumns.add(column); column.addPropertyChangeListener(this); invalidateWidthCache(); ! fireColumnAdded(new TableColumnModelEvent(this, 0, tableColumns.size() - 1)); } /** * Removes a column from the model then calls * {@link #fireColumnRemoved(TableColumnModelEvent)} to notify the registered ! * listeners. If the specified column does not belong to the model, or is * null, this method does nothing. * * @param column the column to be removed (null permitted). ! * * @see #addColumn(TableColumn) */ public void removeColumn(TableColumn column) *************** public class DefaultTableColumnModel *** 163,183 **** if (index < 0) return; tableColumns.remove(column); ! fireColumnRemoved(new TableColumnModelEvent(this, index, 0)); column.removePropertyChangeListener(this); invalidateWidthCache(); } /** ! * Moves the column at index i to the position specified by index j, then * calls {@link #fireColumnMoved(TableColumnModelEvent)} to notify registered * listeners. * * @param i index of the column that will be moved. * @param j index of the column's new location. ! * * @throws IllegalArgumentException if i or j are ! * outside the range 0 to N-1, where * N is the column count. */ public void moveColumn(int i, int j) --- 163,183 ---- if (index < 0) return; tableColumns.remove(column); ! fireColumnRemoved(new TableColumnModelEvent(this, index, 0)); column.removePropertyChangeListener(this); invalidateWidthCache(); } /** ! * Moves the column at index i to the position specified by index j, then * calls {@link #fireColumnMoved(TableColumnModelEvent)} to notify registered * listeners. * * @param i index of the column that will be moved. * @param j index of the column's new location. ! * * @throws IllegalArgumentException if i or j are ! * outside the range 0 to N-1, where * N is the column count. */ public void moveColumn(int i, int j) *************** public class DefaultTableColumnModel *** 195,203 **** /** * Sets the column margin then calls {@link #fireColumnMarginChanged()} to * notify the registered listeners. ! * * @param margin the column margin. ! * * @see #getColumnMargin() */ public void setColumnMargin(int margin) --- 195,203 ---- /** * Sets the column margin then calls {@link #fireColumnMarginChanged()} to * notify the registered listeners. ! * * @param margin the column margin. ! * * @see #getColumnMargin() */ public void setColumnMargin(int margin) *************** public class DefaultTableColumnModel *** 208,214 **** /** * Returns the number of columns in the model. ! * * @return The column count. */ public int getColumnCount() --- 208,214 ---- /** * Returns the number of columns in the model. ! * * @return The column count. */ public int getColumnCount() *************** public class DefaultTableColumnModel *** 218,224 **** /** * Returns an enumeration of the columns in the model. ! * * @return An enumeration of the columns in the model. */ public Enumeration getColumns() --- 218,224 ---- /** * Returns an enumeration of the columns in the model. ! * * @return An enumeration of the columns in the model. */ public Enumeration getColumns() *************** public class DefaultTableColumnModel *** 230,239 **** * Returns the index of the {@link TableColumn} with the given identifier. * * @param identifier the identifier (null not permitted). ! * * @return The index of the {@link TableColumn} with the given identifier. ! * ! * @throws IllegalArgumentException if identifier is * null or there is no column with that identifier. */ public int getColumnIndex(Object identifier) --- 230,239 ---- * Returns the index of the {@link TableColumn} with the given identifier. * * @param identifier the identifier (null not permitted). ! * * @return The index of the {@link TableColumn} with the given identifier. ! * ! * @throws IllegalArgumentException if identifier is * null or there is no column with that identifier. */ public int getColumnIndex(Object identifier) *************** public class DefaultTableColumnModel *** 241,247 **** if (identifier == null) throw new IllegalArgumentException("Null identifier."); int columnCount = tableColumns.size(); ! for (int i = 0; i < columnCount; i++) { TableColumn tc = tableColumns.get(i); if (identifier.equals(tc.getIdentifier())) --- 241,247 ---- if (identifier == null) throw new IllegalArgumentException("Null identifier."); int columnCount = tableColumns.size(); ! for (int i = 0; i < columnCount; i++) { TableColumn tc = tableColumns.get(i); if (identifier.equals(tc.getIdentifier())) *************** public class DefaultTableColumnModel *** 252,264 **** /** * Returns the column at the specified index. ! * ! * @param columnIndex the column index (in the range from 0 to ! * N-1, where N is the number of columns in * the model). ! * * @return The column at the specified index. ! * * @throws ArrayIndexOutOfBoundsException if i is not within * the specified range. */ --- 252,264 ---- /** * Returns the column at the specified index. ! * ! * @param columnIndex the column index (in the range from 0 to ! * N-1, where N is the number of columns in * the model). ! * * @return The column at the specified index. ! * * @throws ArrayIndexOutOfBoundsException if i is not within * the specified range. */ *************** public class DefaultTableColumnModel *** 269,277 **** /** * Returns the column margin. ! * * @return The column margin. ! * * @see #setColumnMargin(int) */ public int getColumnMargin() --- 269,277 ---- /** * Returns the column margin. ! * * @return The column margin. ! * * @see #setColumnMargin(int) */ public int getColumnMargin() *************** public class DefaultTableColumnModel *** 288,302 **** *
                                              2. individual column widths are taken into account, but the column margin * is ignored.
                                              3. *
                                          ! * If no column contains the specified position, this method returns * -1. ! * * @param x the x-position. ! * * @return The column index, or -1. */ public int getColumnIndexAtX(int x) ! { for (int i = 0; i < tableColumns.size(); ++i) { int w = (tableColumns.get(i)).getWidth(); --- 288,302 ---- *
                                        • individual column widths are taken into account, but the column margin * is ignored.
                                        • *
                                        ! * If no column contains the specified position, this method returns * -1. ! * * @param x the x-position. ! * * @return The column index, or -1. */ public int getColumnIndexAtX(int x) ! { for (int i = 0; i < tableColumns.size(); ++i) { int w = (tableColumns.get(i)).getWidth(); *************** public class DefaultTableColumnModel *** 322,342 **** } /** ! * Sets the selection model that will be used to keep track of the selected * columns. * * @param model the selection model (null not permitted). ! * ! * @throws IllegalArgumentException if model is * null. ! * * @see #getSelectionModel() */ public void setSelectionModel(ListSelectionModel model) { if (model == null) throw new IllegalArgumentException(); ! selectionModel.removeListSelectionListener(this); selectionModel = model; selectionModel.addListSelectionListener(this); --- 322,342 ---- } /** ! * Sets the selection model that will be used to keep track of the selected * columns. * * @param model the selection model (null not permitted). ! * ! * @throws IllegalArgumentException if model is * null. ! * * @see #getSelectionModel() */ public void setSelectionModel(ListSelectionModel model) { if (model == null) throw new IllegalArgumentException(); ! selectionModel.removeListSelectionListener(this); selectionModel = model; selectionModel.addListSelectionListener(this); *************** public class DefaultTableColumnModel *** 344,352 **** /** * Returns the selection model used to track table column selections. ! * * @return The selection model. ! * * @see #setSelectionModel(ListSelectionModel) */ public ListSelectionModel getSelectionModel() --- 344,352 ---- /** * Returns the selection model used to track table column selections. ! * * @return The selection model. ! * * @see #setSelectionModel(ListSelectionModel) */ public ListSelectionModel getSelectionModel() *************** public class DefaultTableColumnModel *** 358,364 **** * Sets the flag that indicates whether or not column selection is allowed. * * @param flag the new flag value. ! * * @see #getColumnSelectionAllowed() */ public void setColumnSelectionAllowed(boolean flag) --- 358,364 ---- * Sets the flag that indicates whether or not column selection is allowed. * * @param flag the new flag value. ! * * @see #getColumnSelectionAllowed() */ public void setColumnSelectionAllowed(boolean flag) *************** public class DefaultTableColumnModel *** 367,377 **** } /** ! * Returns true if column selection is allowed, and * false if column selection is not allowed. * * @return A boolean. ! * * @see #setColumnSelectionAllowed(boolean) */ public boolean getColumnSelectionAllowed() --- 367,377 ---- } /** ! * Returns true if column selection is allowed, and * false if column selection is not allowed. * * @return A boolean. ! * * @see #setColumnSelectionAllowed(boolean) */ public boolean getColumnSelectionAllowed() *************** public class DefaultTableColumnModel *** 386,397 **** */ public int[] getSelectedColumns() { ! // FIXME: Implementation of this method was taken from private method // JTable.getSelections(), which is used in various places in JTable // including selected row calculations and cannot be simply removed. // This design should be improved to illuminate duplication of code. ! ! ListSelectionModel lsm = this.selectionModel; int sz = getSelectedColumnCount(); int [] ret = new int[sz]; --- 386,397 ---- */ public int[] getSelectedColumns() { ! // FIXME: Implementation of this method was taken from private method // JTable.getSelections(), which is used in various places in JTable // including selected row calculations and cannot be simply removed. // This design should be improved to illuminate duplication of code. ! ! ListSelectionModel lsm = this.selectionModel; int sz = getSelectedColumnCount(); int [] ret = new int[sz]; *************** public class DefaultTableColumnModel *** 405,420 **** { case ListSelectionModel.SINGLE_SELECTION: ret[0] = lo; ! break; ! ! case ListSelectionModel.SINGLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ret[j++] = i; break; ! ! case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ! if (lsm.isSelectedIndex(i)) ret[j++] = i; break; } --- 405,420 ---- { case ListSelectionModel.SINGLE_SELECTION: ret[0] = lo; ! break; ! ! case ListSelectionModel.SINGLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ret[j++] = i; break; ! ! case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ! if (lsm.isSelectedIndex(i)) ret[j++] = i; break; } *************** public class DefaultTableColumnModel *** 424,446 **** /** * Returns the number of selected columns in the model. ! * * @return The selected column count. ! * * @see #getSelectionModel() */ public int getSelectedColumnCount() { ! // FIXME: Implementation of this method was taken from private method // JTable.countSelections(), which is used in various places in JTable // including selected row calculations and cannot be simply removed. // This design should be improved to illuminate duplication of code. ! ListSelectionModel lsm = this.selectionModel; int lo = lsm.getMinSelectionIndex(); int hi = lsm.getMaxSelectionIndex(); int sum = 0; ! if (lo != -1 && hi != -1) { switch (lsm.getSelectionMode()) --- 424,446 ---- /** * Returns the number of selected columns in the model. ! * * @return The selected column count. ! * * @see #getSelectionModel() */ public int getSelectedColumnCount() { ! // FIXME: Implementation of this method was taken from private method // JTable.countSelections(), which is used in various places in JTable // including selected row calculations and cannot be simply removed. // This design should be improved to illuminate duplication of code. ! ListSelectionModel lsm = this.selectionModel; int lo = lsm.getMinSelectionIndex(); int hi = lsm.getMaxSelectionIndex(); int sum = 0; ! if (lo != -1 && hi != -1) { switch (lsm.getSelectionMode()) *************** public class DefaultTableColumnModel *** 448,466 **** case ListSelectionModel.SINGLE_SELECTION: sum = 1; break; ! case ListSelectionModel.SINGLE_INTERVAL_SELECTION: sum = hi - lo + 1; break; ! ! case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ! if (lsm.isSelectedIndex(i)) ++sum; break; } } ! return sum; } --- 448,466 ---- case ListSelectionModel.SINGLE_SELECTION: sum = 1; break; ! case ListSelectionModel.SINGLE_INTERVAL_SELECTION: sum = hi - lo + 1; break; ! ! case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: for (int i = lo; i <= hi; ++i) ! if (lsm.isSelectedIndex(i)) ++sum; break; } } ! return sum; } *************** public class DefaultTableColumnModel *** 476,482 **** } /** ! * Deregisters a listener so that it no longer receives notification of * changes to this model. * * @param listener the listener to remove --- 476,482 ---- } /** ! * Deregisters a listener so that it no longer receives notification of * changes to this model. * * @param listener the listener to remove *************** public class DefaultTableColumnModel *** 489,498 **** /** * Returns an array containing the listeners that are registered with the * model. If there are no listeners, an empty array is returned. ! * * @return An array containing the listeners that are registered with the * model. ! * * @see #addColumnModelListener(TableColumnModelListener) * @since 1.4 */ --- 489,498 ---- /** * Returns an array containing the listeners that are registered with the * model. If there are no listeners, an empty array is returned. ! * * @return An array containing the listeners that are registered with the * model. ! * * @see #addColumnModelListener(TableColumnModelListener) * @since 1.4 */ *************** public class DefaultTableColumnModel *** 500,533 **** { return (TableColumnModelListener[]) listenerList.getListeners(TableColumnModelListener.class); ! } /** ! * Sends the specified {@link TableColumnModelEvent} to all registered * listeners, to indicate that a column has been added to the model. The * event's toIndex attribute should contain the index of the ! * added column. ! * * @param e the event. ! * * @see #addColumn(TableColumn) */ protected void fireColumnAdded(TableColumnModelEvent e) ! { TableColumnModelListener[] listeners = getColumnModelListeners(); for (int i = 0; i < listeners.length; i++) ! listeners[i].columnAdded(e); } /** ! * Sends the specified {@link TableColumnModelEvent} to all registered * listeners, to indicate that a column has been removed from the model. The * event's fromIndex attribute should contain the index of the ! * removed column. ! * * @param e the event. ! * * @see #removeColumn(TableColumn) */ protected void fireColumnRemoved(TableColumnModelEvent e) --- 500,533 ---- { return (TableColumnModelListener[]) listenerList.getListeners(TableColumnModelListener.class); ! } /** ! * Sends the specified {@link TableColumnModelEvent} to all registered * listeners, to indicate that a column has been added to the model. The * event's toIndex attribute should contain the index of the ! * added column. ! * * @param e the event. ! * * @see #addColumn(TableColumn) */ protected void fireColumnAdded(TableColumnModelEvent e) ! { TableColumnModelListener[] listeners = getColumnModelListeners(); for (int i = 0; i < listeners.length; i++) ! listeners[i].columnAdded(e); } /** ! * Sends the specified {@link TableColumnModelEvent} to all registered * listeners, to indicate that a column has been removed from the model. The * event's fromIndex attribute should contain the index of the ! * removed column. ! * * @param e the event. ! * * @see #removeColumn(TableColumn) */ protected void fireColumnRemoved(TableColumnModelEvent e) *************** public class DefaultTableColumnModel *** 535,552 **** TableColumnModelListener[] listeners = getColumnModelListeners(); for (int i = 0; i < listeners.length; i++) ! listeners[i].columnRemoved(e); } /** ! * Sends the specified {@link TableColumnModelEvent} to all registered * listeners, to indicate that a column in the model has been moved. The * event's fromIndex attribute should contain the old column * index, and the toIndex attribute should contain the new ! * column index. ! * * @param e the event. ! * * @see #moveColumn(int, int) */ protected void fireColumnMoved(TableColumnModelEvent e) --- 535,552 ---- TableColumnModelListener[] listeners = getColumnModelListeners(); for (int i = 0; i < listeners.length; i++) ! listeners[i].columnRemoved(e); } /** ! * Sends the specified {@link TableColumnModelEvent} to all registered * listeners, to indicate that a column in the model has been moved. The * event's fromIndex attribute should contain the old column * index, and the toIndex attribute should contain the new ! * column index. ! * * @param e the event. ! * * @see #moveColumn(int, int) */ protected void fireColumnMoved(TableColumnModelEvent e) *************** public class DefaultTableColumnModel *** 554,560 **** TableColumnModelListener[] listeners = getColumnModelListeners(); for (int i = 0; i < listeners.length; i++) ! listeners[i].columnMoved(e); } /** --- 554,560 ---- TableColumnModelListener[] listeners = getColumnModelListeners(); for (int i = 0; i < listeners.length; i++) ! listeners[i].columnMoved(e); } /** *************** public class DefaultTableColumnModel *** 562,568 **** * to indicate that the column selections have changed. * * @param e the event. ! * * @see #valueChanged(ListSelectionEvent) */ protected void fireColumnSelectionChanged(ListSelectionEvent e) --- 562,568 ---- * to indicate that the column selections have changed. * * @param e the event. ! * * @see #valueChanged(ListSelectionEvent) */ protected void fireColumnSelectionChanged(ListSelectionEvent e) *************** public class DefaultTableColumnModel *** 573,581 **** } /** ! * Sends a {@link ChangeEvent} to the model's registered listeners to ! * indicate that the column margin was changed. ! * * @see #setColumnMargin(int) */ protected void fireColumnMarginChanged() --- 573,581 ---- } /** ! * Sends a {@link ChangeEvent} to the model's registered listeners to ! * indicate that the column margin was changed. ! * * @see #setColumnMargin(int) */ protected void fireColumnMarginChanged() *************** public class DefaultTableColumnModel *** 588,600 **** } /** ! * Returns an array containing the listeners (of the specified type) that * are registered with this model. ! * ! * @param listenerType the listener type (must indicate a subclass of * {@link EventListener}, null not permitted). * ! * @return An array containing the listeners (of the specified type) that * are registered with this model. */ public T[] getListeners(Class listenerType) --- 588,600 ---- } /** ! * Returns an array containing the listeners (of the specified type) that * are registered with this model. ! * ! * @param listenerType the listener type (must indicate a subclass of * {@link EventListener}, null not permitted). * ! * @return An array containing the listeners (of the specified type) that * are registered with this model. */ public T[] getListeners(Class listenerType) *************** public class DefaultTableColumnModel *** 605,627 **** /** * Receives notification of property changes for the columns in the model. * If the width property for any column changes, we invalidate ! * the {@link #totalColumnWidth} value here. * * @param event the event. */ public void propertyChange(PropertyChangeEvent event) { if (event.getPropertyName().equals("width")) ! invalidateWidthCache(); } /** ! * Receives notification of the change to the list selection model, and ! * responds by calling * {@link #fireColumnSelectionChanged(ListSelectionEvent)}. ! * * @param e the list selection event. ! * * @see #getSelectionModel() */ public void valueChanged(ListSelectionEvent e) --- 605,627 ---- /** * Receives notification of property changes for the columns in the model. * If the width property for any column changes, we invalidate ! * the {@link #totalColumnWidth} value here. * * @param event the event. */ public void propertyChange(PropertyChangeEvent event) { if (event.getPropertyName().equals("width")) ! invalidateWidthCache(); } /** ! * Receives notification of the change to the list selection model, and ! * responds by calling * {@link #fireColumnSelectionChanged(ListSelectionEvent)}. ! * * @param e the list selection event. ! * * @see #getSelectionModel() */ public void valueChanged(ListSelectionEvent e) *************** public class DefaultTableColumnModel *** 630,650 **** } /** ! * Creates a default selection model to track the currently selected * column(s). This method is called by the constructor and returns a new * instance of {@link DefaultListSelectionModel}. * * @return A new default column selection model. */ protected ListSelectionModel createSelectionModel() ! { return new DefaultListSelectionModel(); } /** * Recalculates the total width of the columns, if the cached value is * -1. Otherwise this method does nothing. ! * * @see #getTotalColumnWidth() */ protected void recalcWidthCache() --- 630,650 ---- } /** ! * Creates a default selection model to track the currently selected * column(s). This method is called by the constructor and returns a new * instance of {@link DefaultListSelectionModel}. * * @return A new default column selection model. */ protected ListSelectionModel createSelectionModel() ! { return new DefaultListSelectionModel(); } /** * Recalculates the total width of the columns, if the cached value is * -1. Otherwise this method does nothing. ! * * @see #getTotalColumnWidth() */ protected void recalcWidthCache() *************** public class DefaultTableColumnModel *** 661,667 **** /** * Sets the {@link #totalColumnWidth} field to -1. ! * * @see #recalcWidthCache() */ private void invalidateWidthCache() --- 661,667 ---- /** * Sets the {@link #totalColumnWidth} field to -1. ! * * @see #recalcWidthCache() */ private void invalidateWidthCache() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/DefaultTableModel.java gcc-4.6.0/libjava/classpath/javax/swing/table/DefaultTableModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/DefaultTableModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/table/DefaultTableModel.java Tue Jan 11 19:46:05 2011 *************** import java.util.Vector; *** 44,53 **** import javax.swing.event.TableModelEvent; /** ! * A two dimensional data structure used to store Object * instances, usually for display in a JTable component. ! * ! * @author Andrew Selkirk */ public class DefaultTableModel extends AbstractTableModel implements Serializable --- 44,53 ---- import javax.swing.event.TableModelEvent; /** ! * A two dimensional data structure used to store Object * instances, usually for display in a JTable component. ! * ! * @author Andrew Selkirk */ public class DefaultTableModel extends AbstractTableModel implements Serializable *************** public class DefaultTableModel extends A *** 55,61 **** static final long serialVersionUID = 6680042567037222321L; /** ! * Storage for the rows in the table (each row is itself * a Vector). */ protected Vector dataVector; --- 55,61 ---- static final long serialVersionUID = 6680042567037222321L; /** ! * Storage for the rows in the table (each row is itself * a Vector). */ protected Vector dataVector; *************** public class DefaultTableModel extends A *** 68,94 **** /** * Creates an empty table with zero rows and zero columns. */ ! public DefaultTableModel() { this(0, 0); } ! /** * Creates a new table with the specified number of rows and columns. * All cells in the table are initially empty (set to null). ! * * @param numRows the number of rows. * @param numColumns the number of columns. */ ! public DefaultTableModel(int numRows, int numColumns) { Vector defaultNames = new Vector(numColumns); Vector data = new Vector(numRows); ! for (int i = 0; i < numColumns; i++) { defaultNames.add(super.getColumnName(i)); ! } ! for (int r = 0; r < numRows; r++) { Vector tmp = new Vector(numColumns); tmp.setSize(numColumns); --- 68,94 ---- /** * Creates an empty table with zero rows and zero columns. */ ! public DefaultTableModel() { this(0, 0); } ! /** * Creates a new table with the specified number of rows and columns. * All cells in the table are initially empty (set to null). ! * * @param numRows the number of rows. * @param numColumns the number of columns. */ ! public DefaultTableModel(int numRows, int numColumns) { Vector defaultNames = new Vector(numColumns); Vector data = new Vector(numRows); ! for (int i = 0; i < numColumns; i++) { defaultNames.add(super.getColumnName(i)); ! } ! for (int r = 0; r < numRows; r++) { Vector tmp = new Vector(numColumns); tmp.setSize(numColumns); *************** public class DefaultTableModel extends A *** 96,111 **** } setDataVector(data, defaultNames); } ! /** * Creates a new table with the specified column names and number of * rows. The number of columns is determined by the number of column * names supplied. ! * * @param columnNames the column names. * @param numRows the number of rows. */ ! public DefaultTableModel(Vector columnNames, int numRows) { if (numRows < 0) throw new IllegalArgumentException("numRows < 0"); --- 96,111 ---- } setDataVector(data, defaultNames); } ! /** * Creates a new table with the specified column names and number of * rows. The number of columns is determined by the number of column * names supplied. ! * * @param columnNames the column names. * @param numRows the number of rows. */ ! public DefaultTableModel(Vector columnNames, int numRows) { if (numRows < 0) throw new IllegalArgumentException("numRows < 0"); *************** public class DefaultTableModel extends A *** 114,121 **** if (columnNames != null) numColumns = columnNames.size(); ! ! while (0 < numRows--) { Vector rowData = new Vector(); rowData.setSize(numColumns); --- 114,121 ---- if (columnNames != null) numColumns = columnNames.size(); ! ! while (0 < numRows--) { Vector rowData = new Vector(); rowData.setSize(numColumns); *************** public class DefaultTableModel extends A *** 126,168 **** /** * Creates a new table with the specified column names and row count. ! * * @param columnNames the column names. * @param numRows the number of rows. */ ! public DefaultTableModel(Object[] columnNames, int numRows) { this(convertToVector(columnNames), numRows); } ! /** * Creates a new table with the specified data values and column names. ! * * @param data the data values. * @param columnNames the column names. */ ! public DefaultTableModel(Vector data, Vector columnNames) { setDataVector(data, columnNames); } /** * Creates a new table with the specified data values and column names. ! * * @param data the data values. * @param columnNames the column names. */ ! public DefaultTableModel(Object[][] data, Object[] columnNames) { this(convertToVector(data), convertToVector(columnNames)); } /** * Returns the vector containing the row data for the table. ! * * @return The data vector. */ ! public Vector getDataVector() { return dataVector; } --- 126,168 ---- /** * Creates a new table with the specified column names and row count. ! * * @param columnNames the column names. * @param numRows the number of rows. */ ! public DefaultTableModel(Object[] columnNames, int numRows) { this(convertToVector(columnNames), numRows); } ! /** * Creates a new table with the specified data values and column names. ! * * @param data the data values. * @param columnNames the column names. */ ! public DefaultTableModel(Vector data, Vector columnNames) { setDataVector(data, columnNames); } /** * Creates a new table with the specified data values and column names. ! * * @param data the data values. * @param columnNames the column names. */ ! public DefaultTableModel(Object[][] data, Object[] columnNames) { this(convertToVector(data), convertToVector(columnNames)); } /** * Returns the vector containing the row data for the table. ! * * @return The data vector. */ ! public Vector getDataVector() { return dataVector; } *************** public class DefaultTableModel extends A *** 173,185 **** * number of objects in each row does not match the number of column * names specified, the row data is truncated or expanded (by adding * null values) as required. ! * * @param data the data for the table (a vector of row vectors). * @param columnNames the column names. ! * * @throws NullPointerException if either argument is null. */ ! public void setDataVector(Vector data, Vector columnNames) { if (data == null) dataVector = new Vector(); --- 173,185 ---- * number of objects in each row does not match the number of column * names specified, the row data is truncated or expanded (by adding * null values) as required. ! * * @param data the data for the table (a vector of row vectors). * @param columnNames the column names. ! * * @throws NullPointerException if either argument is null. */ ! public void setDataVector(Vector data, Vector columnNames) { if (data == null) dataVector = new Vector(); *************** public class DefaultTableModel extends A *** 190,276 **** /** * Sets the data and column identifiers for the table. ! * * @param data the data for the table. * @param columnNames the column names. ! * * @throws NullPointerException if either argument is null. */ ! public void setDataVector(Object[][] data, Object[] columnNames) { ! setDataVector(convertToVector(data), convertToVector(columnNames)); } ! /** * Sends the specified event to all registered listeners. ! * This method is equivalent to * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}. ! * * @param event the event. */ ! public void newDataAvailable(TableModelEvent event) { fireTableChanged(event); } /** * Sends the specified event to all registered listeners. ! * This method is equivalent to * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}. ! * * @param event the event. */ ! public void newRowsAdded(TableModelEvent event) { fireTableChanged(event); } /** * Sends the specified event to all registered listeners. ! * This method is equivalent to * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}. ! * * @param event the event. */ ! public void rowsRemoved(TableModelEvent event) { fireTableChanged(event); } /** * Sets the column identifiers, updates the data rows (truncating ! * or padding each row with null values) to match the * number of columns, and sends a {@link TableModelEvent} to all * registered listeners. ! * * @param columnIdentifiers the column identifiers. */ ! public void setColumnIdentifiers(Vector columnIdentifiers) { this.columnIdentifiers = columnIdentifiers; setColumnCount(columnIdentifiers == null ? 0 : columnIdentifiers.size()); } ! /** * Sets the column identifiers, updates the data rows (truncating ! * or padding each row with null values) to match the * number of columns, and sends a {@link TableModelEvent} to all * registered listeners. ! * * @param columnIdentifiers the column identifiers. */ ! public void setColumnIdentifiers(Object[] columnIdentifiers) { setColumnIdentifiers(convertToVector(columnIdentifiers)); } /** * This method is obsolete, use {@link #setRowCount(int)} instead. ! * * @param numRows the number of rows. */ ! public void setNumRows(int numRows) { setRowCount(numRows); } --- 190,276 ---- /** * Sets the data and column identifiers for the table. ! * * @param data the data for the table. * @param columnNames the column names. ! * * @throws NullPointerException if either argument is null. */ ! public void setDataVector(Object[][] data, Object[] columnNames) { ! setDataVector(convertToVector(data), convertToVector(columnNames)); } ! /** * Sends the specified event to all registered listeners. ! * This method is equivalent to * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}. ! * * @param event the event. */ ! public void newDataAvailable(TableModelEvent event) { fireTableChanged(event); } /** * Sends the specified event to all registered listeners. ! * This method is equivalent to * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}. ! * * @param event the event. */ ! public void newRowsAdded(TableModelEvent event) { fireTableChanged(event); } /** * Sends the specified event to all registered listeners. ! * This method is equivalent to * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}. ! * * @param event the event. */ ! public void rowsRemoved(TableModelEvent event) { fireTableChanged(event); } /** * Sets the column identifiers, updates the data rows (truncating ! * or padding each row with null values) to match the * number of columns, and sends a {@link TableModelEvent} to all * registered listeners. ! * * @param columnIdentifiers the column identifiers. */ ! public void setColumnIdentifiers(Vector columnIdentifiers) { this.columnIdentifiers = columnIdentifiers; setColumnCount(columnIdentifiers == null ? 0 : columnIdentifiers.size()); } ! /** * Sets the column identifiers, updates the data rows (truncating ! * or padding each row with null values) to match the * number of columns, and sends a {@link TableModelEvent} to all * registered listeners. ! * * @param columnIdentifiers the column identifiers. */ ! public void setColumnIdentifiers(Object[] columnIdentifiers) { setColumnIdentifiers(convertToVector(columnIdentifiers)); } /** * This method is obsolete, use {@link #setRowCount(int)} instead. ! * * @param numRows the number of rows. */ ! public void setNumRows(int numRows) { setRowCount(numRows); } *************** public class DefaultTableModel extends A *** 280,297 **** * than the current number of rows in the table, rows are discarded. * If rowCount is greater than the current number of rows in * the table, new (empty) rows are added. ! * * @param rowCount the row count. */ ! public void setRowCount(int rowCount) { int existingRowCount = dataVector.size(); ! if (rowCount < existingRowCount) { dataVector.setSize(rowCount); ! fireTableRowsDeleted(rowCount, existingRowCount - 1); } ! else { int rowsToAdd = rowCount - existingRowCount; addExtraRows(rowsToAdd, columnIdentifiers.size()); --- 280,297 ---- * than the current number of rows in the table, rows are discarded. * If rowCount is greater than the current number of rows in * the table, new (empty) rows are added. ! * * @param rowCount the row count. */ ! public void setRowCount(int rowCount) { int existingRowCount = dataVector.size(); ! if (rowCount < existingRowCount) { dataVector.setSize(rowCount); ! fireTableRowsDeleted(rowCount, existingRowCount - 1); } ! else { int rowsToAdd = rowCount - existingRowCount; addExtraRows(rowsToAdd, columnIdentifiers.size()); *************** public class DefaultTableModel extends A *** 303,318 **** * Sets the number of columns in the table. Existing rows are truncated * or padded with null values to match the new column count. * A {@link TableModelEvent} is sent to all registered listeners. ! * * @param columnCount the column count. */ ! public void setColumnCount(int columnCount) { for (int i = 0; i < dataVector.size(); ++i) { ((Vector) dataVector.get(i)).setSize(columnCount); } ! if (columnIdentifiers != null) columnIdentifiers.setSize(columnCount); fireTableStructureChanged(); } --- 303,318 ---- * Sets the number of columns in the table. Existing rows are truncated * or padded with null values to match the new column count. * A {@link TableModelEvent} is sent to all registered listeners. ! * * @param columnCount the column count. */ ! public void setColumnCount(int columnCount) { for (int i = 0; i < dataVector.size(); ++i) { ((Vector) dataVector.get(i)).setSize(columnCount); } ! if (columnIdentifiers != null) columnIdentifiers.setSize(columnCount); fireTableStructureChanged(); } *************** public class DefaultTableModel extends A *** 320,343 **** /** * Adds a column with the specified name to the table. All cell values * for the column are initially set to null. ! * * @param columnName the column name (null permitted). */ ! public void addColumn(Object columnName) { addColumn(columnName, (Object[]) null); } /** ! * Adds a column with the specified name and data values to the table. ! * * @param columnName the column name (null permitted). * @param columnData the column data. */ ! public void addColumn(Object columnName, Vector columnData) { Object[] dataArray = null; ! if (columnData != null) { int rowCount = dataVector.size(); if (columnData.size() < rowCount) --- 320,343 ---- /** * Adds a column with the specified name to the table. All cell values * for the column are initially set to null. ! * * @param columnName the column name (null permitted). */ ! public void addColumn(Object columnName) { addColumn(columnName, (Object[]) null); } /** ! * Adds a column with the specified name and data values to the table. ! * * @param columnName the column name (null permitted). * @param columnData the column data. */ ! public void addColumn(Object columnName, Vector columnData) { Object[] dataArray = null; ! if (columnData != null) { int rowCount = dataVector.size(); if (columnData.size() < rowCount) *************** public class DefaultTableModel extends A *** 349,365 **** /** * Adds a column with the specified name and data values to the table. ! * * @param columnName the column name (null permitted). * @param columnData the column data. */ ! public void addColumn(Object columnName, Object[] columnData) { if (columnData != null) { // check columnData array for cases where the number of items // doesn't match the number of rows in the existing table ! if (columnData.length > dataVector.size()) { int rowsToAdd = columnData.length - dataVector.size(); addExtraRows(rowsToAdd, columnIdentifiers.size()); --- 349,365 ---- /** * Adds a column with the specified name and data values to the table. ! * * @param columnName the column name (null permitted). * @param columnData the column data. */ ! public void addColumn(Object columnName, Object[] columnData) { if (columnData != null) { // check columnData array for cases where the number of items // doesn't match the number of rows in the existing table ! if (columnData.length > dataVector.size()) { int rowsToAdd = columnData.length - dataVector.size(); addExtraRows(rowsToAdd, columnIdentifiers.size()); *************** public class DefaultTableModel extends A *** 382,391 **** /** * Adds a new row containing the specified data to the table and sends a * {@link TableModelEvent} to all registered listeners. ! * * @param rowData the row data (null permitted). */ ! public void addRow(Vector rowData) { int rowIndex = dataVector.size(); dataVector.add(rowData); --- 382,391 ---- /** * Adds a new row containing the specified data to the table and sends a * {@link TableModelEvent} to all registered listeners. ! * * @param rowData the row data (null permitted). */ ! public void addRow(Vector rowData) { int rowIndex = dataVector.size(); dataVector.add(rowData); *************** public class DefaultTableModel extends A *** 397,417 **** /** * Adds a new row containing the specified data to the table and sends a * {@link TableModelEvent} to all registered listeners. ! * * @param rowData the row data (null permitted). */ ! public void addRow(Object[] rowData) { addRow(convertToVector(rowData)); } /** * Inserts a new row into the table. ! * * @param row the row index. * @param rowData the row data. */ ! public void insertRow(int row, Vector rowData) { dataVector.add(row, rowData); fireTableRowsInserted(row, row); --- 397,417 ---- /** * Adds a new row containing the specified data to the table and sends a * {@link TableModelEvent} to all registered listeners. ! * * @param rowData the row data (null permitted). */ ! public void addRow(Object[] rowData) { addRow(convertToVector(rowData)); } /** * Inserts a new row into the table. ! * * @param row the row index. * @param rowData the row data. */ ! public void insertRow(int row, Vector rowData) { dataVector.add(row, rowData); fireTableRowsInserted(row, row); *************** public class DefaultTableModel extends A *** 419,429 **** /** * Inserts a new row into the table. ! * * @param row the row index. * @param rowData the row data. */ ! public void insertRow(int row, Object[] rowData) { insertRow(row, convertToVector(rowData)); } --- 419,429 ---- /** * Inserts a new row into the table. ! * * @param row the row index. * @param rowData the row data. */ ! public void insertRow(int row, Object[] rowData) { insertRow(row, convertToVector(rowData)); } *************** public class DefaultTableModel extends A *** 431,451 **** /** * Moves the rows from startIndex to endIndex * (inclusive) to the specified row. ! * * @param startIndex the start row. * @param endIndex the end row. * @param toIndex the row to move to. */ ! public void moveRow(int startIndex, int endIndex, int toIndex) { Vector removed = new Vector(); for (int i = endIndex; i >= startIndex; i--) { removed.add(this.dataVector.remove(i)); } ! for (int i = 0; i <= endIndex - startIndex; i++) { ! dataVector.insertElementAt(removed.get(i), toIndex); } int firstRow = Math.min(startIndex, toIndex); int lastRow = Math.max(endIndex, toIndex + (endIndex - startIndex)); --- 431,451 ---- /** * Moves the rows from startIndex to endIndex * (inclusive) to the specified row. ! * * @param startIndex the start row. * @param endIndex the end row. * @param toIndex the row to move to. */ ! public void moveRow(int startIndex, int endIndex, int toIndex) { Vector removed = new Vector(); for (int i = endIndex; i >= startIndex; i--) { removed.add(this.dataVector.remove(i)); } ! for (int i = 0; i <= endIndex - startIndex; i++) { ! dataVector.insertElementAt(removed.get(i), toIndex); } int firstRow = Math.min(startIndex, toIndex); int lastRow = Math.max(endIndex, toIndex + (endIndex - startIndex)); *************** public class DefaultTableModel extends A *** 455,464 **** /** * Removes a row from the table and sends a {@link TableModelEvent} to * all registered listeners. ! * * @param row the row index. */ ! public void removeRow(int row) { dataVector.remove(row); fireTableRowsDeleted(row, row); --- 455,464 ---- /** * Removes a row from the table and sends a {@link TableModelEvent} to * all registered listeners. ! * * @param row the row index. */ ! public void removeRow(int row) { dataVector.remove(row); fireTableRowsDeleted(row, row); *************** public class DefaultTableModel extends A *** 466,485 **** /** * Returns the number of rows in the model. ! * * @return The row count. */ ! public int getRowCount() { return dataVector.size(); } /** * Returns the number of columns in the model. ! * * @return The column count. */ ! public int getColumnCount() { return columnIdentifiers == null ? 0 : columnIdentifiers.size(); } --- 466,485 ---- /** * Returns the number of rows in the model. ! * * @return The row count. */ ! public int getRowCount() { return dataVector.size(); } /** * Returns the number of columns in the model. ! * * @return The column count. */ ! public int getColumnCount() { return columnIdentifiers == null ? 0 : columnIdentifiers.size(); } *************** public class DefaultTableModel extends A *** 489,511 **** * the return value is the result of the .toString() method call on that * identifier. If the identifier is not explicitly set, the returned value * is calculated by {@link AbstractTableModel#getColumnName(int)}. ! * * @param column the column index. ! * * @return The column name. */ public String getColumnName(int column) { String result = ""; ! if (columnIdentifiers == null) result = super.getColumnName(column); ! else { if (column < getColumnCount()) { checkSize(); Object id = columnIdentifiers.get(column); ! if (id != null) result = id.toString(); else result = super.getColumnName(column); --- 489,511 ---- * the return value is the result of the .toString() method call on that * identifier. If the identifier is not explicitly set, the returned value * is calculated by {@link AbstractTableModel#getColumnName(int)}. ! * * @param column the column index. ! * * @return The column name. */ public String getColumnName(int column) { String result = ""; ! if (columnIdentifiers == null) result = super.getColumnName(column); ! else { if (column < getColumnCount()) { checkSize(); Object id = columnIdentifiers.get(column); ! if (id != null) result = id.toString(); else result = super.getColumnName(column); *************** public class DefaultTableModel extends A *** 520,559 **** * Returns true if the specified cell can be modified, and * false otherwise. For this implementation, the method * always returns true. ! * * @param row the row index. * @param column the column index. ! * * @return true in all cases. */ ! public boolean isCellEditable(int row, int column) { return true; } /** * Returns the value at the specified cell in the table. ! * * @param row the row index. * @param column the column index. ! * ! * @return The value (Object, possibly null) at * the specified cell in the table. */ ! public Object getValueAt(int row, int column) { return ((Vector) dataVector.get(row)).get(column); } /** ! * Sets the value for the specified cell in the table and sends a * {@link TableModelEvent} to all registered listeners. ! * * @param value the value (Object, null permitted). * @param row the row index. * @param column the column index. */ ! public void setValueAt(Object value, int row, int column) { ((Vector) dataVector.get(row)).set(column, value); fireTableCellUpdated(row, column); --- 520,559 ---- * Returns true if the specified cell can be modified, and * false otherwise. For this implementation, the method * always returns true. ! * * @param row the row index. * @param column the column index. ! * * @return true in all cases. */ ! public boolean isCellEditable(int row, int column) { return true; } /** * Returns the value at the specified cell in the table. ! * * @param row the row index. * @param column the column index. ! * ! * @return The value (Object, possibly null) at * the specified cell in the table. */ ! public Object getValueAt(int row, int column) { return ((Vector) dataVector.get(row)).get(column); } /** ! * Sets the value for the specified cell in the table and sends a * {@link TableModelEvent} to all registered listeners. ! * * @param value the value (Object, null permitted). * @param row the row index. * @param column the column index. */ ! public void setValueAt(Object value, int row, int column) { ((Vector) dataVector.get(row)).set(column, value); fireTableCellUpdated(row, column); *************** public class DefaultTableModel extends A *** 561,591 **** /** * Converts the data array to a Vector. ! * * @param data the data array (null permitted). ! * ! * @return A vector (or null if the data array * is null). */ ! protected static Vector convertToVector(Object[] data) { if (data == null) return null; Vector vector = new Vector(data.length); ! for (int i = 0; i < data.length; i++) vector.add(data[i]); ! return vector; } ! /** * Converts the data array to a Vector of rows. ! * * @param data the data array (null permitted). ! * ! * @return A vector (or null if the data array * is null. */ ! protected static Vector convertToVector(Object[][] data) { if (data == null) return null; --- 561,591 ---- /** * Converts the data array to a Vector. ! * * @param data the data array (null permitted). ! * ! * @return A vector (or null if the data array * is null). */ ! protected static Vector convertToVector(Object[] data) { if (data == null) return null; Vector vector = new Vector(data.length); ! for (int i = 0; i < data.length; i++) vector.add(data[i]); ! return vector; } ! /** * Converts the data array to a Vector of rows. ! * * @param data the data array (null permitted). ! * ! * @return A vector (or null if the data array * is null. */ ! protected static Vector convertToVector(Object[][] data) { if (data == null) return null; *************** public class DefaultTableModel extends A *** 603,614 **** */ private void addExtraRows(int rowsToAdd, int nbColumns) { ! for (int i = 0; i < rowsToAdd; i++) { Vector tmp = new Vector(); tmp.setSize(columnIdentifiers.size()); dataVector.add(tmp); ! } } /** --- 603,614 ---- */ private void addExtraRows(int rowsToAdd, int nbColumns) { ! for (int i = 0; i < rowsToAdd; i++) { Vector tmp = new Vector(); tmp.setSize(columnIdentifiers.size()); dataVector.add(tmp); ! } } /** *************** public class DefaultTableModel extends A *** 621,630 **** { int columnCount = getColumnCount(); int rowCount = getRowCount(); ! if (columnCount > columnIdentifiers.size()) columnIdentifiers.setSize(columnCount); ! if (dataVector != null && rowCount > dataVector.size()) { int rowsToAdd = rowCount - dataVector.size(); --- 621,630 ---- { int columnCount = getColumnCount(); int rowCount = getRowCount(); ! if (columnCount > columnIdentifiers.size()) columnIdentifiers.setSize(columnCount); ! if (dataVector != null && rowCount > dataVector.size()) { int rowsToAdd = rowCount - dataVector.size(); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/JTableHeader.java gcc-4.6.0/libjava/classpath/javax/swing/table/JTableHeader.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/JTableHeader.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/table/JTableHeader.java Tue Jan 11 19:46:05 2011 *************** public class JTableHeader extends JCompo *** 81,103 **** protected class AccessibleJTableHeaderEntry extends AccessibleContext implements Accessible, AccessibleComponent { ! private int columnIndex; ! private JTableHeader parent; ! private JTable table; ! public AccessibleJTableHeaderEntry(int c, JTableHeader p, JTable t) { columnIndex = c; parent = p; table = t; } ! /** * Returns the column header renderer. ! * * @return The column header renderer. */ Component getColumnHeaderRenderer() --- 81,103 ---- protected class AccessibleJTableHeaderEntry extends AccessibleContext implements Accessible, AccessibleComponent { ! private int columnIndex; ! private JTableHeader parent; ! private JTable table; ! public AccessibleJTableHeaderEntry(int c, JTableHeader p, JTable t) { columnIndex = c; parent = p; table = t; } ! /** * Returns the column header renderer. ! * * @return The column header renderer. */ Component getColumnHeaderRenderer() *************** public class JTableHeader extends JCompo *** 106,119 **** TableCellRenderer r = tc.getHeaderRenderer(); if (r == null) r = parent.getDefaultRenderer(); ! return r.getTableCellRendererComponent(table, tc.headerValue, false, false, -1, columnIndex); } ! /** ! * Returns the accessible context for the column header renderer, or * null. ! * * @return The accessible context. */ AccessibleContext getAccessibleColumnHeaderRenderer() --- 106,119 ---- TableCellRenderer r = tc.getHeaderRenderer(); if (r == null) r = parent.getDefaultRenderer(); ! return r.getTableCellRendererComponent(table, tc.headerValue, false, false, -1, columnIndex); } ! /** ! * Returns the accessible context for the column header renderer, or * null. ! * * @return The accessible context. */ AccessibleContext getAccessibleColumnHeaderRenderer() *************** public class JTableHeader extends JCompo *** 123,129 **** return c.getAccessibleContext(); return null; } ! /** * @see #removeFocusListener(FocusListener) */ --- 123,129 ---- return c.getAccessibleContext(); return null; } ! /** * @see #removeFocusListener(FocusListener) */ *************** public class JTableHeader extends JCompo *** 134,140 **** if (c != null) c.addFocusListener(l); } ! /** * @see #removePropertyChangeListener(PropertyChangeListener) */ --- 134,140 ---- if (c != null) c.addFocusListener(l); } ! /** * @see #removePropertyChangeListener(PropertyChangeListener) */ *************** public class JTableHeader extends JCompo *** 146,171 **** if (ac != null) ac.addPropertyChangeListener(l); } ! public boolean contains(Point p) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); AccessibleComponent c = ac.getAccessibleComponent(); if (c != null) return c.contains(p); ! else return false; } ! public AccessibleAction getAccessibleAction() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac instanceof AccessibleAction) return (AccessibleAction) ac; ! else return null; } ! public Accessible getAccessibleAt(Point p) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 146,171 ---- if (ac != null) ac.addPropertyChangeListener(l); } ! public boolean contains(Point p) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); AccessibleComponent c = ac.getAccessibleComponent(); if (c != null) return c.contains(p); ! else return false; } ! public AccessibleAction getAccessibleAction() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac instanceof AccessibleAction) return (AccessibleAction) ac; ! else return null; } ! public Accessible getAccessibleAt(Point p) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 175,227 **** else return null; } ! /** * Returns null as the header entry has no accessible * children. ! * * @return null. */ public Accessible getAccessibleChild(int i) { return null; } ! /** * Returns the number of accessible children, zero in this case. ! * * @return 0 */ public int getAccessibleChildrenCount() { return 0; } ! /** * Returns the accessible component for this header entry. ! * * @return this. */ public AccessibleComponent getAccessibleComponent() { return this; } ! /** * Returns the accessible context for this header entry. ! * * @return this. */ public AccessibleContext getAccessibleContext() { return this; } ! /** * Returns the accessible description. ! * * @return The accessible description. ! * * @see #setAccessibleDescription(String) */ public String getAccessibleDescription() --- 175,227 ---- else return null; } ! /** * Returns null as the header entry has no accessible * children. ! * * @return null. */ public Accessible getAccessibleChild(int i) { return null; } ! /** * Returns the number of accessible children, zero in this case. ! * * @return 0 */ public int getAccessibleChildrenCount() { return 0; } ! /** * Returns the accessible component for this header entry. ! * * @return this. */ public AccessibleComponent getAccessibleComponent() { return this; } ! /** * Returns the accessible context for this header entry. ! * * @return this. */ public AccessibleContext getAccessibleContext() { return this; } ! /** * Returns the accessible description. ! * * @return The accessible description. ! * * @see #setAccessibleDescription(String) */ public String getAccessibleDescription() *************** public class JTableHeader extends JCompo *** 231,252 **** return ac.getAccessibleDescription(); return accessibleDescription; } ! /** * Returns the index of this header entry. ! * * @return The index of this header entry. */ public int getAccessibleIndexInParent() { return columnIndex; } ! /** * Returns the accessible name. ! * * @return The accessible name. ! * * @see #setAccessibleName(String) */ public String getAccessibleName() --- 231,252 ---- return ac.getAccessibleDescription(); return accessibleDescription; } ! /** * Returns the index of this header entry. ! * * @return The index of this header entry. */ public int getAccessibleIndexInParent() { return columnIndex; } ! /** * Returns the accessible name. ! * * @return The accessible name. ! * * @see #setAccessibleName(String) */ public String getAccessibleName() *************** public class JTableHeader extends JCompo *** 256,265 **** return ac.getAccessibleName(); return accessibleName; } ! /** * Returns the accessible role for the header entry. ! * * @return The accessible role. */ public AccessibleRole getAccessibleRole() --- 256,265 ---- return ac.getAccessibleName(); return accessibleName; } ! /** * Returns the accessible role for the header entry. ! * * @return The accessible role. */ public AccessibleRole getAccessibleRole() *************** public class JTableHeader extends JCompo *** 270,312 **** else return null; } ! public AccessibleSelection getAccessibleSelection() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac instanceof AccessibleValue) return (AccessibleSelection) ac; ! else return null; } ! public AccessibleStateSet getAccessibleStateSet() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac != null) return ac.getAccessibleStateSet(); ! else return null; } ! public AccessibleText getAccessibleText() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac != null) return ac.getAccessibleText(); ! else return null; } ! public AccessibleValue getAccessibleValue() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac instanceof AccessibleValue) return (AccessibleValue) ac; ! else return null; } ! public Color getBackground() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 270,312 ---- else return null; } ! public AccessibleSelection getAccessibleSelection() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac instanceof AccessibleValue) return (AccessibleSelection) ac; ! else return null; } ! public AccessibleStateSet getAccessibleStateSet() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac != null) return ac.getAccessibleStateSet(); ! else return null; } ! public AccessibleText getAccessibleText() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac != null) return ac.getAccessibleText(); ! else return null; } ! public AccessibleValue getAccessibleValue() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); if (ac instanceof AccessibleValue) return (AccessibleValue) ac; ! else return null; } ! public Color getBackground() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 316,322 **** else return null; } ! public Rectangle getBounds() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 316,322 ---- else return null; } ! public Rectangle getBounds() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 326,332 **** else return null; } ! public Cursor getCursor() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 326,332 ---- else return null; } ! public Cursor getCursor() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 336,342 **** else return null; } ! public Font getFont() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 336,342 ---- else return null; } ! public Font getFont() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 346,352 **** else return null; } ! public FontMetrics getFontMetrics(Font f) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 346,352 ---- else return null; } ! public FontMetrics getFontMetrics(Font f) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 356,362 **** else return null; } ! public Color getForeground() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 356,362 ---- else return null; } ! public Color getForeground() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 366,372 **** else return null; } ! public Locale getLocale() { Component c = getColumnHeaderRenderer(); --- 366,372 ---- else return null; } ! public Locale getLocale() { Component c = getColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 374,380 **** return c.getLocale(); return null; } ! public Point getLocation() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 374,380 ---- return c.getLocale(); return null; } ! public Point getLocation() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 384,390 **** else return null; } ! public Point getLocationOnScreen() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 384,390 ---- else return null; } ! public Point getLocationOnScreen() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 394,400 **** else return null; } ! public Dimension getSize() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 394,400 ---- else return null; } ! public Dimension getSize() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 404,410 **** else return null; } ! public boolean isEnabled() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 404,410 ---- else return null; } ! public boolean isEnabled() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 414,420 **** else return false; } ! public boolean isFocusTraversable() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 414,420 ---- else return false; } ! public boolean isFocusTraversable() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 424,430 **** else return false; } ! public boolean isShowing() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 424,430 ---- else return false; } ! public boolean isShowing() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 434,440 **** else return false; } ! public boolean isVisible() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 434,440 ---- else return false; } ! public boolean isVisible() { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 444,450 **** else return false; } ! /** * @see #addFocusListener(FocusListener) */ --- 444,450 ---- else return false; } ! /** * @see #addFocusListener(FocusListener) */ *************** public class JTableHeader extends JCompo *** 455,461 **** if (c != null) c.removeFocusListener(l); } ! /** * @see #addPropertyChangeListener(PropertyChangeListener) */ --- 455,461 ---- if (c != null) c.removeFocusListener(l); } ! /** * @see #addPropertyChangeListener(PropertyChangeListener) */ *************** public class JTableHeader extends JCompo *** 465,471 **** if (ac != null) ac.removePropertyChangeListener(l); } ! /** * @see #addFocusListener(FocusListener) */ --- 465,471 ---- if (ac != null) ac.removePropertyChangeListener(l); } ! /** * @see #addFocusListener(FocusListener) */ *************** public class JTableHeader extends JCompo *** 476,482 **** if (c != null) c.requestFocus(); } ! /** * @see #getAccessibleDescription() */ --- 476,482 ---- if (c != null) c.requestFocus(); } ! /** * @see #getAccessibleDescription() */ *************** public class JTableHeader extends JCompo *** 488,494 **** else accessibleDescription = s; } ! /** * @see #getAccessibleName() */ --- 488,494 ---- else accessibleDescription = s; } ! /** * @see #getAccessibleName() */ *************** public class JTableHeader extends JCompo *** 498,504 **** if (ac != null) ac.setAccessibleName(s); } ! public void setBackground(Color c) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 498,504 ---- if (ac != null) ac.setAccessibleName(s); } ! public void setBackground(Color c) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 506,512 **** if (comp != null) comp.setBackground(c); } ! public void setBounds(Rectangle r) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 506,512 ---- if (comp != null) comp.setBackground(c); } ! public void setBounds(Rectangle r) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 514,520 **** if (comp != null) comp.setBounds(r); } ! public void setCursor(Cursor c) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 514,520 ---- if (comp != null) comp.setBounds(r); } ! public void setCursor(Cursor c) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 522,528 **** if (comp != null) comp.setCursor(c); } ! public void setEnabled(boolean b) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 522,528 ---- if (comp != null) comp.setCursor(c); } ! public void setEnabled(boolean b) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 530,536 **** if (comp != null) comp.setEnabled(b); } ! public void setFont(Font f) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 530,536 ---- if (comp != null) comp.setEnabled(b); } ! public void setFont(Font f) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 538,544 **** if (comp != null) comp.setFont(f); } ! public void setForeground(Color c) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 538,544 ---- if (comp != null) comp.setFont(f); } ! public void setForeground(Color c) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 546,552 **** if (comp != null) comp.setForeground(c); } ! public void setLocation(Point p) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 546,552 ---- if (comp != null) comp.setForeground(c); } ! public void setLocation(Point p) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 554,560 **** if (comp != null) comp.setLocation(p); } ! public void setSize(Dimension d) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 554,560 ---- if (comp != null) comp.setLocation(p); } ! public void setSize(Dimension d) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 562,568 **** if (comp != null) comp.setSize(d); } ! public void setVisible(boolean b) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); --- 562,568 ---- if (comp != null) comp.setSize(d); } ! public void setVisible(boolean b) { AccessibleContext ac = getAccessibleColumnHeaderRenderer(); *************** public class JTableHeader extends JCompo *** 571,598 **** comp.setVisible(b); } } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.PANEL; } ! public int getAccessibleChildrenCount() { return table.getColumnCount(); } ! public Accessible getAccessibleChild(int i) { return new AccessibleJTableHeaderEntry(i, JTableHeader.this, table); } ! public Accessible getAccessibleAt(Point p) { return getAccessibleChild(columnAtPoint(p)); } } ! /** * Use serialVersionUid for interoperability. */ --- 571,598 ---- comp.setVisible(b); } } ! public AccessibleRole getAccessibleRole() { return AccessibleRole.PANEL; } ! public int getAccessibleChildrenCount() { return table.getColumnCount(); } ! public Accessible getAccessibleChild(int i) { return new AccessibleJTableHeaderEntry(i, JTableHeader.this, table); } ! public Accessible getAccessibleAt(Point p) { return getAccessibleChild(columnAtPoint(p)); } } ! /** * Use serialVersionUid for interoperability. */ *************** public class JTableHeader extends JCompo *** 643,649 **** */ protected boolean updateTableInRealTime; ! TableCellRenderer cellRenderer; /** * Creates a new default instance. --- 643,649 ---- */ protected boolean updateTableInRealTime; ! TableCellRenderer cellRenderer; /** * Creates a new default instance. *************** public class JTableHeader extends JCompo *** 655,675 **** /** * Creates a new header. If cm is null, a new ! * table column model is created by calling * {@link #createDefaultColumnModel()}. ! * * @param cm the table column model (null permitted). */ public JTableHeader(TableColumnModel cm) { ! columnModel = cm == null ? createDefaultColumnModel() : cm; initializeLocalVars(); updateUI(); } /** * Creates a default table column model. ! * * @return A default table column model. */ protected TableColumnModel createDefaultColumnModel() --- 655,675 ---- /** * Creates a new header. If cm is null, a new ! * table column model is created by calling * {@link #createDefaultColumnModel()}. ! * * @param cm the table column model (null permitted). */ public JTableHeader(TableColumnModel cm) { ! columnModel = cm == null ? createDefaultColumnModel() : cm; initializeLocalVars(); updateUI(); } /** * Creates a default table column model. ! * * @return A default table column model. */ protected TableColumnModel createDefaultColumnModel() *************** public class JTableHeader extends JCompo *** 724,730 **** * disabled with {@link #setReorderingAllowed(boolean)}. * * @return true if reordering is allowed, false otherwise. ! */ public boolean getReorderingAllowed() { return reorderingAllowed; --- 724,730 ---- * disabled with {@link #setReorderingAllowed(boolean)}. * * @return true if reordering is allowed, false otherwise. ! */ public boolean getReorderingAllowed() { return reorderingAllowed; *************** public class JTableHeader extends JCompo *** 736,742 **** * by default, but can be disabled with {@link #setResizingAllowed(boolean)}. * * @return true if resizing is allowed, false otherwise. ! */ public boolean getResizingAllowed() { return resizingAllowed; --- 736,742 ---- * by default, but can be disabled with {@link #setResizingAllowed(boolean)}. * * @return true if resizing is allowed, false otherwise. ! */ public boolean getResizingAllowed() { return resizingAllowed; *************** public class JTableHeader extends JCompo *** 787,793 **** * Set the value of the {@link #columnModel} property. * * @param c The new value of the property ! */ public void setColumnModel(TableColumnModel c) { columnModel.removeColumnModelListener(this); --- 787,793 ---- * Set the value of the {@link #columnModel} property. * * @param c The new value of the property ! */ public void setColumnModel(TableColumnModel c) { columnModel.removeColumnModelListener(this); *************** public class JTableHeader extends JCompo *** 797,807 **** /** * Set the column that is currently being dragged. This is used when ! * dragging the column with mouse. Setting to null will stop the * dragging session immediately. * * @param draggingIt the column being currently dragged, null if none. ! */ public void setDraggedColumn(TableColumn draggingIt) { draggedColumn = draggingIt; --- 797,807 ---- /** * Set the column that is currently being dragged. This is used when ! * dragging the column with mouse. Setting to null will stop the * dragging session immediately. * * @param draggingIt the column being currently dragged, null if none. ! */ public void setDraggedColumn(TableColumn draggingIt) { draggedColumn = draggingIt; *************** public class JTableHeader extends JCompo *** 811,817 **** * Set the value of the {@link #draggedDistance} property. * * @param d The new value of the property ! */ public void setDraggedDistance(int d) { draggedDistance = d; --- 811,817 ---- * Set the value of the {@link #draggedDistance} property. * * @param d The new value of the property ! */ public void setDraggedDistance(int d) { draggedDistance = d; *************** public class JTableHeader extends JCompo *** 821,827 **** * Set the value of the {@link #opaque} property. * * @param o The new value of the property ! */ public void setOpaque(boolean o) { opaque = o; --- 821,827 ---- * Set the value of the {@link #opaque} property. * * @param o The new value of the property ! */ public void setOpaque(boolean o) { opaque = o; *************** public class JTableHeader extends JCompo *** 833,839 **** * disabled with this method. * * @param allowed true if reordering is allowed, false otherwise. ! */ public void setReorderingAllowed(boolean allowed) { reorderingAllowed = allowed; --- 833,839 ---- * disabled with this method. * * @param allowed true if reordering is allowed, false otherwise. ! */ public void setReorderingAllowed(boolean allowed) { reorderingAllowed = allowed; *************** public class JTableHeader extends JCompo *** 845,851 **** * by default, but can be disabled using this method. * * @param allowed true if resizing is allowed, false otherwise. ! */ public void setResizingAllowed(boolean allowed) { resizingAllowed = allowed; --- 845,851 ---- * by default, but can be disabled using this method. * * @param allowed true if resizing is allowed, false otherwise. ! */ public void setResizingAllowed(boolean allowed) { resizingAllowed = allowed; *************** public class JTableHeader extends JCompo *** 857,863 **** * the resizing session immediately. * * @param resizingIt the column being currently resized ! */ public void setResizingColumn(TableColumn resizingIt) { resizingColumn = resizingIt; --- 857,863 ---- * the resizing session immediately. * * @param resizingIt the column being currently resized ! */ public void setResizingColumn(TableColumn resizingIt) { resizingColumn = resizingIt; *************** public class JTableHeader extends JCompo *** 867,873 **** * Set the value of the {@link #table} property. * * @param t The new value of the property ! */ public void setTable(JTable t) { table = t; --- 867,873 ---- * Set the value of the {@link #table} property. * * @param t The new value of the property ! */ public void setTable(JTable t) { table = t; *************** public class JTableHeader extends JCompo *** 877,883 **** * Set the value of the {@link #updateTableInRealTime} property. * * @param u The new value of the property ! */ public void setUpdateTableInRealTime(boolean u) { updateTableInRealTime = u; --- 877,883 ---- * Set the value of the {@link #updateTableInRealTime} property. * * @param u The new value of the property ! */ public void setUpdateTableInRealTime(boolean u) { updateTableInRealTime = u; *************** public class JTableHeader extends JCompo *** 885,901 **** /** * Creates a default renderer. ! * * @return A default renderer. */ protected TableCellRenderer createDefaultRenderer() { return new DefaultTableCellRenderer(); } ! /** * Returns the default table cell renderer. ! * * @return The default table cell renderer. */ public TableCellRenderer getDefaultRenderer() --- 885,901 ---- /** * Creates a default renderer. ! * * @return A default renderer. */ protected TableCellRenderer createDefaultRenderer() { return new DefaultTableCellRenderer(); } ! /** * Returns the default table cell renderer. ! * * @return The default table cell renderer. */ public TableCellRenderer getDefaultRenderer() *************** public class JTableHeader extends JCompo *** 905,923 **** /** * Sets the default table cell renderer. ! * * @param cellRenderer the renderer. */ public void setDefaultRenderer(TableCellRenderer cellRenderer) { this.cellRenderer = cellRenderer; } ! /** * Get the rectangle, occupied by the header of the given column. ! * * @param column the column, for that the header area is requested. ! * * @return the column header area. */ public Rectangle getHeaderRect(int column) --- 905,923 ---- /** * Sets the default table cell renderer. ! * * @param cellRenderer the renderer. */ public void setDefaultRenderer(TableCellRenderer cellRenderer) { this.cellRenderer = cellRenderer; } ! /** * Get the rectangle, occupied by the header of the given column. ! * * @param column the column, for that the header area is requested. ! * * @return the column header area. */ public Rectangle getHeaderRect(int column) *************** public class JTableHeader extends JCompo *** 956,971 **** /** * Returns the index of the column at the specified point. ! * * @param point the point. ! * * @return The column index, or -1. */ public int columnAtPoint(Point point) { if (getBounds().contains(point)) return columnModel.getColumnIndexAtX(point.x); ! return -1; } --- 956,971 ---- /** * Returns the index of the column at the specified point. ! * * @param point the point. ! * * @return The column index, or -1. */ public int columnAtPoint(Point point) { if (getBounds().contains(point)) return columnModel.getColumnIndexAtX(point.x); ! return -1; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/TableCellEditor.java gcc-4.6.0/libjava/classpath/javax/swing/table/TableCellEditor.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/TableCellEditor.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/table/TableCellEditor.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.JTable; *** 47,53 **** * TableCellEditor public interface * @author Andrew Selkirk */ ! public interface TableCellEditor extends CellEditor { /** --- 47,53 ---- * TableCellEditor public interface * @author Andrew Selkirk */ ! public interface TableCellEditor extends CellEditor { /** *************** public interface TableCellEditor extends *** 59,65 **** * @param column Column of cell * @return Component */ ! Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column); } --- 59,65 ---- * @param column Column of cell * @return Component */ ! Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/TableCellRenderer.java gcc-4.6.0/libjava/classpath/javax/swing/table/TableCellRenderer.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/TableCellRenderer.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/table/TableCellRenderer.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.JTable; *** 46,52 **** * TableCellRenderer public interface * @author Andrew Selkirk */ ! public interface TableCellRenderer { /** --- 46,52 ---- * TableCellRenderer public interface * @author Andrew Selkirk */ ! public interface TableCellRenderer { /** *************** public interface TableCellRenderer *** 59,65 **** * @param column Column of cell * @return Component */ ! Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column); --- 59,65 ---- * @param column Column of cell * @return Component */ ! Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/TableColumn.java gcc-4.6.0/libjava/classpath/javax/swing/table/TableColumn.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/TableColumn.java Thu May 18 17:29:21 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/table/TableColumn.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.SwingPropertyCh *** 49,56 **** /** * Represents the attributes of a column in a table, including the column index, * width, minimum width, preferred width and maximum width. ! * ! * @author Andrew Selkirk */ public class TableColumn implements Serializable --- 49,56 ---- /** * Represents the attributes of a column in a table, including the column index, * width, minimum width, preferred width and maximum width. ! * ! * @author Andrew Selkirk */ public class TableColumn implements Serializable *************** public class TableColumn *** 59,65 **** /** * The name for the columnWidth property (this field is ! * obsolete and no longer used). Note also that the typo in the value * string is deliberate, to match the specification. */ public static final String COLUMN_WIDTH_PROPERTY = "columWidth"; --- 59,65 ---- /** * The name for the columnWidth property (this field is ! * obsolete and no longer used). Note also that the typo in the value * string is deliberate, to match the specification. */ public static final String COLUMN_WIDTH_PROPERTY = "columWidth"; *************** public class TableColumn *** 158,166 **** } /** ! * Creates a new TableColumn that maps to the specified column * in the related table model. The default width is 75 units. ! * * @param modelIndex the index of the column in the model */ public TableColumn(int modelIndex) --- 158,166 ---- } /** ! * Creates a new TableColumn that maps to the specified column * in the related table model. The default width is 75 units. ! * * @param modelIndex the index of the column in the model */ public TableColumn(int modelIndex) *************** public class TableColumn *** 169,177 **** } /** ! * Creates a new TableColumn that maps to the specified column * in the related table model, and has the specified width. ! * * @param modelIndex the index of the column in the model * @param width the width */ --- 169,177 ---- } /** ! * Creates a new TableColumn that maps to the specified column * in the related table model, and has the specified width. ! * * @param modelIndex the index of the column in the model * @param width the width */ *************** public class TableColumn *** 181,190 **** } /** ! * Creates a new TableColumn that maps to the specified column * in the related table model, and has the specified width, * cellRenderer and cellEditor. ! * * @param modelIndex the index of the column in the model * @param width the width * @param cellRenderer the cell renderer (null permitted). --- 181,190 ---- } /** ! * Creates a new TableColumn that maps to the specified column * in the related table model, and has the specified width, * cellRenderer and cellEditor. ! * * @param modelIndex the index of the column in the model * @param width the width * @param cellRenderer the cell renderer (null permitted). *************** public class TableColumn *** 206,214 **** * Sets the index of the column in the related {@link TableModel} that this * TableColumn maps to, and sends a {@link PropertyChangeEvent} * (with the property name 'modelIndex') to all registered listeners. ! * * @param modelIndex the column index in the model. ! * * @see #getModelIndex() */ public void setModelIndex(int modelIndex) --- 206,214 ---- * Sets the index of the column in the related {@link TableModel} that this * TableColumn maps to, and sends a {@link PropertyChangeEvent} * (with the property name 'modelIndex') to all registered listeners. ! * * @param modelIndex the column index in the model. ! * * @see #getModelIndex() */ public void setModelIndex(int modelIndex) *************** public class TableColumn *** 224,232 **** /** * Returns the index of the column in the related {@link TableModel} that * this TableColumn maps to. ! * * @return the model index. ! * * @see #setModelIndex(int) */ public int getModelIndex() --- 224,232 ---- /** * Returns the index of the column in the related {@link TableModel} that * this TableColumn maps to. ! * * @return the model index. ! * * @see #setModelIndex(int) */ public int getModelIndex() *************** public class TableColumn *** 237,251 **** /** * Sets the identifier for the column and sends a {@link PropertyChangeEvent} * (with the property name 'identifier') to all registered listeners. ! * * @param identifier the identifier (null permitted). ! * * @see #getIdentifier() */ public void setIdentifier(Object identifier) { if (this.identifier != identifier) ! { Object oldValue = this.identifier; this.identifier = identifier; changeSupport.firePropertyChange("identifier", oldValue, identifier); --- 237,251 ---- /** * Sets the identifier for the column and sends a {@link PropertyChangeEvent} * (with the property name 'identifier') to all registered listeners. ! * * @param identifier the identifier (null permitted). ! * * @see #getIdentifier() */ public void setIdentifier(Object identifier) { if (this.identifier != identifier) ! { Object oldValue = this.identifier; this.identifier = identifier; changeSupport.firePropertyChange("identifier", oldValue, identifier); *************** public class TableColumn *** 253,262 **** } /** ! * Returns the identifier for the column, or {@link #getHeaderValue()} if the * identifier is null. ! * ! * @return The identifier (or {@link #getHeaderValue()} if the identifier is * null). */ public Object getIdentifier() --- 253,262 ---- } /** ! * Returns the identifier for the column, or {@link #getHeaderValue()} if the * identifier is null. ! * ! * @return The identifier (or {@link #getHeaderValue()} if the identifier is * null). */ public Object getIdentifier() *************** public class TableColumn *** 267,295 **** } /** ! * Sets the header value and sends a {@link PropertyChangeEvent} (with the * property name {@link #HEADER_VALUE_PROPERTY}) to all registered listeners. ! * * @param headerValue the value of the header (null permitted). ! * * @see #getHeaderValue() */ public void setHeaderValue(Object headerValue) { if (this.headerValue == headerValue) return; ! Object oldValue = this.headerValue; this.headerValue = headerValue; ! changeSupport.firePropertyChange(HEADER_VALUE_PROPERTY, oldValue, headerValue); } /** * Returns the header value. ! * * @return the value of the header. ! * * @see #getHeaderValue() */ public Object getHeaderValue() --- 267,295 ---- } /** ! * Sets the header value and sends a {@link PropertyChangeEvent} (with the * property name {@link #HEADER_VALUE_PROPERTY}) to all registered listeners. ! * * @param headerValue the value of the header (null permitted). ! * * @see #getHeaderValue() */ public void setHeaderValue(Object headerValue) { if (this.headerValue == headerValue) return; ! Object oldValue = this.headerValue; this.headerValue = headerValue; ! changeSupport.firePropertyChange(HEADER_VALUE_PROPERTY, oldValue, headerValue); } /** * Returns the header value. ! * * @return the value of the header. ! * * @see #getHeaderValue() */ public Object getHeaderValue() *************** public class TableColumn *** 298,327 **** } /** ! * Sets the renderer for the column header and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link #HEADER_RENDERER_PROPERTY}) to all registered listeners. ! * * @param renderer the header renderer (null permitted). ! * * @see #getHeaderRenderer() */ public void setHeaderRenderer(TableCellRenderer renderer) { if (headerRenderer == renderer) return; ! TableCellRenderer oldRenderer = headerRenderer; headerRenderer = renderer; ! changeSupport.firePropertyChange(HEADER_RENDERER_PROPERTY, oldRenderer, headerRenderer); } /** * Returns the renderer for the column header. ! * * @return The renderer for the column header (possibly null). ! * * @see #setHeaderRenderer(TableCellRenderer) */ public TableCellRenderer getHeaderRenderer() --- 298,327 ---- } /** ! * Sets the renderer for the column header and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link #HEADER_RENDERER_PROPERTY}) to all registered listeners. ! * * @param renderer the header renderer (null permitted). ! * * @see #getHeaderRenderer() */ public void setHeaderRenderer(TableCellRenderer renderer) { if (headerRenderer == renderer) return; ! TableCellRenderer oldRenderer = headerRenderer; headerRenderer = renderer; ! changeSupport.firePropertyChange(HEADER_RENDERER_PROPERTY, oldRenderer, headerRenderer); } /** * Returns the renderer for the column header. ! * * @return The renderer for the column header (possibly null). ! * * @see #setHeaderRenderer(TableCellRenderer) */ public TableCellRenderer getHeaderRenderer() *************** public class TableColumn *** 330,359 **** } /** ! * Sets the renderer for cells in this column and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link #CELL_RENDERER_PROPERTY}) to all registered listeners. ! * * @param renderer the cell renderer (null permitted). ! * * @see #getCellRenderer() */ public void setCellRenderer(TableCellRenderer renderer) { if (cellRenderer == renderer) return; ! TableCellRenderer oldRenderer = cellRenderer; cellRenderer = renderer; ! changeSupport.firePropertyChange(CELL_RENDERER_PROPERTY, oldRenderer, cellRenderer); } /** * Returns the renderer for the table cells in this column. ! * * @return The cell renderer (possibly null). ! * * @see #setCellRenderer(TableCellRenderer) */ public TableCellRenderer getCellRenderer() --- 330,359 ---- } /** ! * Sets the renderer for cells in this column and sends a ! * {@link PropertyChangeEvent} (with the property name * {@link #CELL_RENDERER_PROPERTY}) to all registered listeners. ! * * @param renderer the cell renderer (null permitted). ! * * @see #getCellRenderer() */ public void setCellRenderer(TableCellRenderer renderer) { if (cellRenderer == renderer) return; ! TableCellRenderer oldRenderer = cellRenderer; cellRenderer = renderer; ! changeSupport.firePropertyChange(CELL_RENDERER_PROPERTY, oldRenderer, cellRenderer); } /** * Returns the renderer for the table cells in this column. ! * * @return The cell renderer (possibly null). ! * * @see #setCellRenderer(TableCellRenderer) */ public TableCellRenderer getCellRenderer() *************** public class TableColumn *** 364,372 **** /** * Sets the cell editor for the column and sends a {@link PropertyChangeEvent} * (with the property name 'cellEditor') to all registered listeners. ! * * @param cellEditor the cell editor (null permitted). ! * * @see #getCellEditor() */ public void setCellEditor(TableCellEditor cellEditor) --- 364,372 ---- /** * Sets the cell editor for the column and sends a {@link PropertyChangeEvent} * (with the property name 'cellEditor') to all registered listeners. ! * * @param cellEditor the cell editor (null permitted). ! * * @see #getCellEditor() */ public void setCellEditor(TableCellEditor cellEditor) *************** public class TableColumn *** 380,390 **** } /** ! * Returns the cell editor for the column (the default value is * null). ! * * @return The cell editor (possibly null). ! * * @see #setCellEditor(TableCellEditor) */ public TableCellEditor getCellEditor() --- 380,390 ---- } /** ! * Returns the cell editor for the column (the default value is * null). ! * * @return The cell editor (possibly null). ! * * @see #setCellEditor(TableCellEditor) */ public TableCellEditor getCellEditor() *************** public class TableColumn *** 393,410 **** } /** ! * Sets the width for the column and sends a {@link PropertyChangeEvent} * (with the property name 'width') to all registered listeners. If the new ! * width falls outside the range getMinWidth() to getMaxWidth() it is * adjusted to the appropriate boundary value. ! * * @param newWidth the width. ! * * @see #getWidth() */ public void setWidth(int newWidth) { ! int oldWidth = width; if (newWidth < minWidth) width = minWidth; --- 393,410 ---- } /** ! * Sets the width for the column and sends a {@link PropertyChangeEvent} * (with the property name 'width') to all registered listeners. If the new ! * width falls outside the range getMinWidth() to getMaxWidth() it is * adjusted to the appropriate boundary value. ! * * @param newWidth the width. ! * * @see #getWidth() */ public void setWidth(int newWidth) { ! int oldWidth = width; if (newWidth < minWidth) width = minWidth; *************** public class TableColumn *** 425,431 **** /** * Returns the width for the column (the default value is 75). ! * * @return The width. * * @see #setWidth(int) --- 425,431 ---- /** * Returns the width for the column (the default value is 75). ! * * @return The width. * * @see #setWidth(int) *************** public class TableColumn *** 436,449 **** } /** ! * Sets the preferred width for the column and sends a ! * {@link PropertyChangeEvent} (with the property name 'preferredWidth') to ! * all registered listeners. If necessary, the supplied value will be ! * adjusted to fit in the range {@link #getMinWidth()} to * {@link #getMaxWidth()}. ! * * @param preferredWidth the preferred width. ! * * @see #getPreferredWidth() */ public void setPreferredWidth(int preferredWidth) --- 436,449 ---- } /** ! * Sets the preferred width for the column and sends a ! * {@link PropertyChangeEvent} (with the property name 'preferredWidth') to ! * all registered listeners. If necessary, the supplied value will be ! * adjusted to fit in the range {@link #getMinWidth()} to * {@link #getMaxWidth()}. ! * * @param preferredWidth the preferred width. ! * * @see #getPreferredWidth() */ public void setPreferredWidth(int preferredWidth) *************** public class TableColumn *** 457,472 **** else this.preferredWidth = preferredWidth; ! changeSupport.firePropertyChange("preferredWidth", oldPrefWidth, this.preferredWidth); } /** ! * Returns the preferred width for the column (the default value is * 75). ! * * @return The preferred width. ! * * @see #setPreferredWidth(int) */ public int getPreferredWidth() --- 457,472 ---- else this.preferredWidth = preferredWidth; ! changeSupport.firePropertyChange("preferredWidth", oldPrefWidth, this.preferredWidth); } /** ! * Returns the preferred width for the column (the default value is * 75). ! * * @return The preferred width. ! * * @see #setPreferredWidth(int) */ public int getPreferredWidth() *************** public class TableColumn *** 475,488 **** } /** ! * Sets the minimum width for the column and sends a * {@link PropertyChangeEvent} (with the property name 'minWidth') to all ! * registered listeners. If the current width and/or * preferredWidth are less than the new minimum width, they are * adjusted accordingly. ! * * @param minWidth the minimum width (negative values are treated as 0). ! * * @see #getMinWidth() */ public void setMinWidth(int minWidth) --- 475,488 ---- } /** ! * Sets the minimum width for the column and sends a * {@link PropertyChangeEvent} (with the property name 'minWidth') to all ! * registered listeners. If the current width and/or * preferredWidth are less than the new minimum width, they are * adjusted accordingly. ! * * @param minWidth the minimum width (negative values are treated as 0). ! * * @see #getMinWidth() */ public void setMinWidth(int minWidth) *************** public class TableColumn *** 504,512 **** /** * Returns the TableColumn's minimum width (the default value * is 15). ! * * @return The minimum width. ! * * @see #setMinWidth(int) */ public int getMinWidth() --- 504,512 ---- /** * Returns the TableColumn's minimum width (the default value * is 15). ! * * @return The minimum width. ! * * @see #setMinWidth(int) */ public int getMinWidth() *************** public class TableColumn *** 515,528 **** } /** ! * Sets the maximum width for the column and sends a * {@link PropertyChangeEvent} (with the property name 'maxWidth') to all ! * registered listeners. If the current width and/or ! * preferredWidth are greater than the new maximum width, they * are adjusted accordingly. ! * * @param maxWidth the maximum width. ! * * @see #getMaxWidth() */ public void setMaxWidth(int maxWidth) --- 515,528 ---- } /** ! * Sets the maximum width for the column and sends a * {@link PropertyChangeEvent} (with the property name 'maxWidth') to all ! * registered listeners. If the current width and/or ! * preferredWidth are greater than the new maximum width, they * are adjusted accordingly. ! * * @param maxWidth the maximum width. ! * * @see #getMaxWidth() */ public void setMaxWidth(int maxWidth) *************** public class TableColumn *** 542,550 **** /** * Returns the maximum width for the column (the default value is * {@link Integer#MAX_VALUE}). ! * * @return The maximum width for the column. ! * * @see #setMaxWidth(int) */ public int getMaxWidth() --- 542,550 ---- /** * Returns the maximum width for the column (the default value is * {@link Integer#MAX_VALUE}). ! * * @return The maximum width for the column. ! * * @see #setMaxWidth(int) */ public int getMaxWidth() *************** public class TableColumn *** 556,565 **** * Sets the flag that controls whether or not the column is resizable, and * sends a {@link PropertyChangeEvent} (with the property name 'isResizable') * to all registered listeners. ! * * @param isResizable true if this column is resizable, * false otherwise. ! * * @see #getResizable() */ public void setResizable(boolean isResizable) --- 556,565 ---- * Sets the flag that controls whether or not the column is resizable, and * sends a {@link PropertyChangeEvent} (with the property name 'isResizable') * to all registered listeners. ! * * @param isResizable true if this column is resizable, * false otherwise. ! * * @see #getResizable() */ public void setResizable(boolean isResizable) *************** public class TableColumn *** 567,583 **** if (this.isResizable != isResizable) { this.isResizable = isResizable; ! changeSupport.firePropertyChange("isResizable", !this.isResizable, isResizable); } } /** * Returns the flag that controls whether or not the column is resizable. ! * * @return true if this column is resizable, * false otherwise. ! * * @see #setResizable(boolean) */ public boolean getResizable() --- 567,583 ---- if (this.isResizable != isResizable) { this.isResizable = isResizable; ! changeSupport.firePropertyChange("isResizable", !this.isResizable, isResizable); } } /** * Returns the flag that controls whether or not the column is resizable. ! * * @return true if this column is resizable, * false otherwise. ! * * @see #setResizable(boolean) */ public boolean getResizable() *************** public class TableColumn *** 594,600 **** { if (headerRenderer == null) return; ! Component c = headerRenderer.getTableCellRendererComponent(null, getHeaderValue(), false, false, 0, 0); Dimension min = c.getMinimumSize(); Dimension max = c.getMaximumSize(); --- 594,600 ---- { if (headerRenderer == null) return; ! Component c = headerRenderer.getTableCellRendererComponent(null, getHeaderValue(), false, false, 0, 0); Dimension min = c.getMinimumSize(); Dimension max = c.getMaximumSize(); *************** public class TableColumn *** 624,650 **** } /** ! * Adds a listener so that it receives {@link PropertyChangeEvent} * notifications from this column. The properties defined by the column are: *
                                          *
                                        • width - see {@link #setWidth(int)};
                                        • *
                                        • preferredWidth - see {@link #setPreferredWidth(int)};
                                        • ! *
                                        • minWidth - see {@link #setMinWidth(int)};
                                        • *
                                        • maxWidth - see {@link #setMaxWidth(int)};
                                        • *
                                        • modelIndex - see {@link #setModelIndex(int)};
                                        • *
                                        • isResizable - see {@link #setResizable(boolean)};
                                        • ! *
                                        • cellRenderer - see * {@link #setCellRenderer(TableCellRenderer)};
                                        • ! *
                                        • cellEditor - see * {@link #setCellEditor(TableCellEditor)};
                                        • ! *
                                        • headerRenderer - see * {@link #setHeaderRenderer(TableCellRenderer)};
                                        • *
                                        • headerValue - see {@link #setHeaderValue(Object)};
                                        • *
                                        • identifier - see {@link #setIdentifier(Object)}.
                                        • *
                                        ! * * @param listener the listener to add (null is ignored). ! * * @see #removePropertyChangeListener(PropertyChangeListener) */ public synchronized void addPropertyChangeListener( --- 624,650 ---- } /** ! * Adds a listener so that it receives {@link PropertyChangeEvent} * notifications from this column. The properties defined by the column are: *
                                          *
                                        • width - see {@link #setWidth(int)};
                                        • *
                                        • preferredWidth - see {@link #setPreferredWidth(int)};
                                        • ! *
                                        • minWidth - see {@link #setMinWidth(int)};
                                        • *
                                        • maxWidth - see {@link #setMaxWidth(int)};
                                        • *
                                        • modelIndex - see {@link #setModelIndex(int)};
                                        • *
                                        • isResizable - see {@link #setResizable(boolean)};
                                        • ! *
                                        • cellRenderer - see * {@link #setCellRenderer(TableCellRenderer)};
                                        • ! *
                                        • cellEditor - see * {@link #setCellEditor(TableCellEditor)};
                                        • ! *
                                        • headerRenderer - see * {@link #setHeaderRenderer(TableCellRenderer)};
                                        • *
                                        • headerValue - see {@link #setHeaderValue(Object)};
                                        • *
                                        • identifier - see {@link #setIdentifier(Object)}.
                                        • *
                                        ! * * @param listener the listener to add (null is ignored). ! * * @see #removePropertyChangeListener(PropertyChangeListener) */ public synchronized void addPropertyChangeListener( *************** public class TableColumn *** 654,664 **** } /** ! * Removes a listener so that it no longer receives ! * {@link PropertyChangeEvent} notifications from this column. If ! * listener is not registered with the column, or is * null, this method does nothing. ! * * @param listener the listener to remove (null is ignored). */ public synchronized void removePropertyChangeListener( --- 654,664 ---- } /** ! * Removes a listener so that it no longer receives ! * {@link PropertyChangeEvent} notifications from this column. If ! * listener is not registered with the column, or is * null, this method does nothing. ! * * @param listener the listener to remove (null is ignored). */ public synchronized void removePropertyChangeListener( *************** public class TableColumn *** 670,678 **** /** * Returns the property change listeners for this TableColumn. * An empty array is returned if there are currently no listeners registered. ! * * @return The property change listeners registered with this column. ! * * @since 1.4 */ public PropertyChangeListener[] getPropertyChangeListeners() --- 670,678 ---- /** * Returns the property change listeners for this TableColumn. * An empty array is returned if there are currently no listeners registered. ! * * @return The property change listeners registered with this column. ! * * @since 1.4 */ public PropertyChangeListener[] getPropertyChangeListeners() *************** public class TableColumn *** 683,689 **** /** * Creates and returns a default renderer for the column header (in this case, * a new instance of {@link DefaultTableCellRenderer}). ! * * @return A default renderer for the column header. */ protected TableCellRenderer createDefaultHeaderRenderer() --- 683,689 ---- /** * Creates and returns a default renderer for the column header (in this case, * a new instance of {@link DefaultTableCellRenderer}). ! * * @return A default renderer for the column header. */ protected TableCellRenderer createDefaultHeaderRenderer() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/TableColumnModel.java gcc-4.6.0/libjava/classpath/javax/swing/table/TableColumnModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/TableColumnModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/table/TableColumnModel.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.TableColumnMode *** 49,65 **** /** * The interface used by {@link JTable} to access the columns in the table * view. ! * * @author Andrew Selkirk */ public interface TableColumnModel { /** * Adds a column to the model. ! * * @param column the new column (null not permitted). ! * ! * @throws IllegalArgumentException if column is * null. */ void addColumn(TableColumn column); --- 49,65 ---- /** * The interface used by {@link JTable} to access the columns in the table * view. ! * * @author Andrew Selkirk */ public interface TableColumnModel { /** * Adds a column to the model. ! * * @param column the new column (null not permitted). ! * ! * @throws IllegalArgumentException if column is * null. */ void addColumn(TableColumn column); *************** public interface TableColumnModel *** 67,80 **** /** * Removes a column from the model. If column is not defined * in the model, this method does nothing. ! * * @param column TableColumn */ void removeColumn(TableColumn column); /** * Moves a column. ! * * @param columnIndex Index of column to move * @param newIndex New index of column */ --- 67,80 ---- /** * Removes a column from the model. If column is not defined * in the model, this method does nothing. ! * * @param column TableColumn */ void removeColumn(TableColumn column); /** * Moves a column. ! * * @param columnIndex Index of column to move * @param newIndex New index of column */ *************** public interface TableColumnModel *** 83,105 **** /** * Sets the column margin and sends a {@link ChangeEvent} to all registered * {@link TableColumnModelListener}s registered with the model. ! * * @param margin the column margin. ! * * @see #getColumnMargin() */ void setColumnMargin(int margin); /** * Returns the number of columns in the model. ! * * @return The column count. */ int getColumnCount(); /** * Returns an enumeration of the columns in the model. ! * * @return An enumeration of the columns in the model. */ Enumeration getColumns(); --- 83,105 ---- /** * Sets the column margin and sends a {@link ChangeEvent} to all registered * {@link TableColumnModelListener}s registered with the model. ! * * @param margin the column margin. ! * * @see #getColumnMargin() */ void setColumnMargin(int margin); /** * Returns the number of columns in the model. ! * * @return The column count. */ int getColumnCount(); /** * Returns an enumeration of the columns in the model. ! * * @return An enumeration of the columns in the model. */ Enumeration getColumns(); *************** public interface TableColumnModel *** 108,135 **** * Returns the index of the {@link TableColumn} with the given identifier. * * @param identifier the identifier (null not permitted). ! * * @return The index of the {@link TableColumn} with the given identifier. ! * ! * @throws IllegalArgumentException if identifier is * null or there is no column with that identifier. */ int getColumnIndex(Object identifier); /** * Returns the TableColumn at the specified index. ! * * @param columnIndex the column index. ! * * @return The table column. */ TableColumn getColumn(int columnIndex); /** * Returns the column margin. ! * * @return The column margin. ! * * @see #setColumnMargin(int) */ int getColumnMargin(); --- 108,135 ---- * Returns the index of the {@link TableColumn} with the given identifier. * * @param identifier the identifier (null not permitted). ! * * @return The index of the {@link TableColumn} with the given identifier. ! * ! * @throws IllegalArgumentException if identifier is * null or there is no column with that identifier. */ int getColumnIndex(Object identifier); /** * Returns the TableColumn at the specified index. ! * * @param columnIndex the column index. ! * * @return The table column. */ TableColumn getColumn(int columnIndex); /** * Returns the column margin. ! * * @return The column margin. ! * * @see #setColumnMargin(int) */ int getColumnMargin(); *************** public interface TableColumnModel *** 143,153 **** *
                                      • individual column widths are taken into account, but the column margin * is ignored.
                                      • *
                                      ! * If no column contains the specified position, this method returns * -1. ! * * @param xPosition the x-position. ! * * @return The column index, or -1. */ int getColumnIndexAtX(int xPosition); --- 143,153 ---- *
                                    • individual column widths are taken into account, but the column margin * is ignored.
                                    • *
                                    ! * If no column contains the specified position, this method returns * -1. ! * * @param xPosition the x-position. ! * * @return The column index, or -1. */ int getColumnIndexAtX(int xPosition); *************** public interface TableColumnModel *** 164,180 **** * Sets the flag that indicates whether or not column selection is allowed. * * @param allowed the new flag value. ! * * @see #getColumnSelectionAllowed() */ void setColumnSelectionAllowed(boolean allowed); /** ! * Returns true if column selection is allowed, and * false if column selection is not allowed. * * @return A boolean. ! * * @see #setColumnSelectionAllowed(boolean) */ boolean getColumnSelectionAllowed(); --- 164,180 ---- * Sets the flag that indicates whether or not column selection is allowed. * * @param allowed the new flag value. ! * * @see #getColumnSelectionAllowed() */ void setColumnSelectionAllowed(boolean allowed); /** ! * Returns true if column selection is allowed, and * false if column selection is not allowed. * * @return A boolean. ! * * @see #setColumnSelectionAllowed(boolean) */ boolean getColumnSelectionAllowed(); *************** public interface TableColumnModel *** 187,215 **** /** * Returns the number of selected columns in the model. ! * * @return The selected column count. ! * * @see #getSelectionModel() */ int getSelectedColumnCount(); /** ! * Sets the selection model that will be used to keep track of the selected * columns. * * @param model the selection model (null not permitted). ! * ! * @throws IllegalArgumentException if model is * null. */ void setSelectionModel(ListSelectionModel model); /** * Returns the selection model used to track table column selections. ! * * @return The selection model. ! * * @see #setSelectionModel(ListSelectionModel) */ ListSelectionModel getSelectionModel(); --- 187,215 ---- /** * Returns the number of selected columns in the model. ! * * @return The selected column count. ! * * @see #getSelectionModel() */ int getSelectedColumnCount(); /** ! * Sets the selection model that will be used to keep track of the selected * columns. * * @param model the selection model (null not permitted). ! * ! * @throws IllegalArgumentException if model is * null. */ void setSelectionModel(ListSelectionModel model); /** * Returns the selection model used to track table column selections. ! * * @return The selection model. ! * * @see #setSelectionModel(ListSelectionModel) */ ListSelectionModel getSelectionModel(); *************** public interface TableColumnModel *** 223,231 **** void addColumnModelListener(TableColumnModelListener listener); /** ! * Deregisters a listener, so that it will no longer receive * {@link TableColumnModelEvent} notifications. ! * * @param listener the listener. */ void removeColumnModelListener(TableColumnModelListener listener); --- 223,231 ---- void addColumnModelListener(TableColumnModelListener listener); /** ! * Deregisters a listener, so that it will no longer receive * {@link TableColumnModelEvent} notifications. ! * * @param listener the listener. */ void removeColumnModelListener(TableColumnModelListener listener); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/table/TableModel.java gcc-4.6.0/libjava/classpath/javax/swing/table/TableModel.java *** gcc-4.5.2/libjava/classpath/javax/swing/table/TableModel.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/table/TableModel.java Tue Jan 11 19:46:05 2011 *************** package javax.swing.table; *** 40,87 **** import javax.swing.event.TableModelListener; /** ! * A TableModel is a two dimensional data structure that * can store arbitrary Object instances, usually for the ! * purpose of display in a {@link javax.swing.JTable} component. Individual ! * objects can be accessed by specifying the row index and column index for * the object. Each column in the model has a name associated with it. *

                                    * The {@link DefaultTableModel} class provides one implementation of * this interface. ! * * @author Andrew Selkirk */ public interface TableModel { /** * Returns the number of rows in the model. ! * * @return The row count. */ int getRowCount(); /** * Returns the number of columns in the model. ! * * @return The column count */ int getColumnCount(); /** * Returns the name of a column in the model. ! * * @param columnIndex the column index. ! * * @return The column name. */ String getColumnName(int columnIndex); /** * Returns the Class for all Object instances ! * in the specified column. ! * * @param columnIndex the column index. ! * * @return The class. */ Class getColumnClass(int columnIndex); --- 40,87 ---- import javax.swing.event.TableModelListener; /** ! * A TableModel is a two dimensional data structure that * can store arbitrary Object instances, usually for the ! * purpose of display in a {@link javax.swing.JTable} component. Individual ! * objects can be accessed by specifying the row index and column index for * the object. Each column in the model has a name associated with it. *

                                    * The {@link DefaultTableModel} class provides one implementation of * this interface. ! * * @author Andrew Selkirk */ public interface TableModel { /** * Returns the number of rows in the model. ! * * @return The row count. */ int getRowCount(); /** * Returns the number of columns in the model. ! * * @return The column count */ int getColumnCount(); /** * Returns the name of a column in the model. ! * * @param columnIndex the column index. ! * * @return The column name. */ String getColumnName(int columnIndex); /** * Returns the Class for all Object instances ! * in the specified column. ! * * @param columnIndex the column index. ! * * @return The class. */ Class getColumnClass(int columnIndex); *************** public interface TableModel *** 89,98 **** /** * Returns true if the cell is editable, and false * otherwise. ! * * @param rowIndex the row index. * @param columnIndex the column index. ! * * @return true if editable, false otherwise. */ boolean isCellEditable(int rowIndex, int columnIndex); --- 89,98 ---- /** * Returns true if the cell is editable, and false * otherwise. ! * * @param rowIndex the row index. * @param columnIndex the column index. ! * * @return true if editable, false otherwise. */ boolean isCellEditable(int rowIndex, int columnIndex); *************** public interface TableModel *** 100,116 **** /** * Returns the value (Object) at a particular cell in the * table. ! * * @param rowIndex the row index. * @param columnIndex the column index. ! * * @return The value at the specified cell. */ Object getValueAt(int rowIndex, int columnIndex); /** ! * Sets the value at a particular cell in the table. ! * * @param aValue the value (null permitted). * @param rowIndex the row index. * @param columnIndex the column index. --- 100,116 ---- /** * Returns the value (Object) at a particular cell in the * table. ! * * @param rowIndex the row index. * @param columnIndex the column index. ! * * @return The value at the specified cell. */ Object getValueAt(int rowIndex, int columnIndex); /** ! * Sets the value at a particular cell in the table. ! * * @param aValue the value (null permitted). * @param rowIndex the row index. * @param columnIndex the column index. *************** public interface TableModel *** 120,133 **** /** * Adds a listener to the model. The listener will receive notification * of updates to the model. ! * * @param listener the listener. */ void addTableModelListener(TableModelListener listener); /** * Removes a listener from the model. ! * * @param listener the listener. */ void removeTableModelListener(TableModelListener listener); --- 120,133 ---- /** * Adds a listener to the model. The listener will receive notification * of updates to the model. ! * * @param listener the listener. */ void addTableModelListener(TableModelListener listener); /** * Removes a listener from the model. ! * * @param listener the listener. */ void removeTableModelListener(TableModelListener listener); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/AbstractDocument.java gcc-4.6.0/libjava/classpath/javax/swing/text/AbstractDocument.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/AbstractDocument.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/AbstractDocument.java Tue Jan 11 19:46:05 2011 *************** public abstract class AbstractDocument i *** 149,170 **** * Manages event listeners for this Document. */ protected EventListenerList listenerList = new EventListenerList(); ! /** * Stores the current writer thread. Used for locking. ! */ private Thread currentWriter = null; ! /** * The number of readers. Used for locking. */ private int numReaders = 0; ! /** * The number of current writers. If this is > 1 then the same thread entered * the write lock more than once. */ ! private int numWriters = 0; /** An instance of a DocumentFilter.FilterBypass which allows calling * the insert, remove and replace method without checking for an installed --- 149,170 ---- * Manages event listeners for this Document. */ protected EventListenerList listenerList = new EventListenerList(); ! /** * Stores the current writer thread. Used for locking. ! */ private Thread currentWriter = null; ! /** * The number of readers. Used for locking. */ private int numReaders = 0; ! /** * The number of current writers. If this is > 1 then the same thread entered * the write lock more than once. */ ! private int numWriters = 0; /** An instance of a DocumentFilter.FilterBypass which allows calling * the insert, remove and replace method without checking for an installed *************** public abstract class AbstractDocument i *** 234,250 **** writeUnlock(); } } ! /** Returns the DocumentFilter.FilterBypass instance for this * document and create it if it does not exist yet. ! * * @return This document's DocumentFilter.FilterBypass instance. */ private DocumentFilter.FilterBypass getBypass() { if (bypass == null) bypass = new Bypass(); ! return bypass; } --- 234,250 ---- writeUnlock(); } } ! /** Returns the DocumentFilter.FilterBypass instance for this * document and create it if it does not exist yet. ! * * @return This document's DocumentFilter.FilterBypass instance. */ private DocumentFilter.FilterBypass getBypass() { if (bypass == null) bypass = new Bypass(); ! return bypass; } *************** public abstract class AbstractDocument i *** 283,289 **** * @see BranchElement */ protected Element createBranchElement(Element parent, ! AttributeSet attributes) { return new BranchElement(parent, attributes); } --- 283,289 ---- * @see BranchElement */ protected Element createBranchElement(Element parent, ! AttributeSet attributes) { return new BranchElement(parent, attributes); } *************** public abstract class AbstractDocument i *** 303,309 **** * @see LeafElement */ protected Element createLeafElement(Element parent, AttributeSet attributes, ! int start, int end) { return new LeafElement(parent, attributes, start, end); } --- 303,309 ---- * @see LeafElement */ protected Element createLeafElement(Element parent, AttributeSet attributes, ! int start, int end) { return new LeafElement(parent, attributes, start, end); } *************** public abstract class AbstractDocument i *** 413,419 **** Object val = getProperty(AsyncLoadPriority); int prio = -1; if (val != null) ! prio = ((Integer) val).intValue(); return prio; } --- 413,419 ---- Object val = getProperty(AsyncLoadPriority); int prio = -1; if (val != null) ! prio = ((Integer) val).intValue(); return prio; } *************** public abstract class AbstractDocument i *** 621,633 **** /** * Inserts a String into this Document at the specified * position and assigning the specified attributes to it. ! * *

                                    If a {@link DocumentFilter} is installed in this document, the * corresponding method of the filter object is called.

                                    ! * *

                                    The method has no effect when text is null * or has a length of zero.

                                    ! * * * @param offset the location at which the string should be inserted * @param text the content to be inserted --- 621,633 ---- /** * Inserts a String into this Document at the specified * position and assigning the specified attributes to it. ! * *

                                    If a {@link DocumentFilter} is installed in this document, the * corresponding method of the filter object is called.

                                    ! * *

                                    The method has no effect when text is null * or has a length of zero.

                                    ! * * * @param offset the location at which the string should be inserted * @param text the content to be inserted *************** public abstract class AbstractDocument i *** 665,671 **** return; DefaultDocumentEvent event = new DefaultDocumentEvent(offset, text.length(), ! DocumentEvent.EventType.INSERT); UndoableEdit undo = content.insertString(offset, text); if (undo != null) --- 665,671 ---- return; DefaultDocumentEvent event = new DefaultDocumentEvent(offset, text.length(), ! DocumentEvent.EventType.INSERT); UndoableEdit undo = content.insertString(offset, text); if (undo != null) *************** public abstract class AbstractDocument i *** 1078,1091 **** // balance by using a finally block: // readLock() // try ! // { ! // doSomethingHere // } // finally // { // readUnlock(); // } ! // All that the JDK seems to check for is that you don't call unlock // more times than you've previously called lock, but it doesn't make // sure that the threads calling unlock were the same ones that called lock --- 1078,1091 ---- // balance by using a finally block: // readLock() // try ! // { ! // doSomethingHere // } // finally // { // readUnlock(); // } ! // All that the JDK seems to check for is that you don't call unlock // more times than you've previously called lock, but it doesn't make // sure that the threads calling unlock were the same ones that called lock *************** public abstract class AbstractDocument i *** 1096,1108 **** if (currentWriter == Thread.currentThread()) return; ! // FIXME: the reference implementation throws a // javax.swing.text.StateInvariantError here if (numReaders <= 0) throw new IllegalStateException("document lock failure"); ! ! // If currentWriter is not null, the application code probably had a ! // writeLock and then tried to obtain a readLock, in which case // numReaders wasn't incremented numReaders--; notify(); --- 1096,1108 ---- if (currentWriter == Thread.currentThread()) return; ! // FIXME: the reference implementation throws a // javax.swing.text.StateInvariantError here if (numReaders <= 0) throw new IllegalStateException("document lock failure"); ! ! // If currentWriter is not null, the application code probably had a ! // writeLock and then tried to obtain a readLock, in which case // numReaders wasn't incremented numReaders--; notify(); *************** public abstract class AbstractDocument i *** 1110,1125 **** /** * Removes a piece of content from this Document. ! * *

                                    If a {@link DocumentFilter} is installed in this document, the * corresponding method of the filter object is called. The * DocumentFilter is called even if length * is zero. This is different from {@link #replace}.

                                    ! * *

                                    Note: When length is zero or below the call is not * forwarded to the underlying {@link AbstractDocument.Content} instance * of this document and no exception is thrown.

                                    ! * * @param offset the start offset of the fragment to be removed * @param length the length of the fragment to be removed * --- 1110,1125 ---- /** * Removes a piece of content from this Document. ! * *

                                    If a {@link DocumentFilter} is installed in this document, the * corresponding method of the filter object is called. The * DocumentFilter is called even if length * is zero. This is different from {@link #replace}.

                                    ! * *

                                    Note: When length is zero or below the call is not * forwarded to the underlying {@link AbstractDocument.Content} instance * of this document and no exception is thrown.

                                    ! * * @param offset the start offset of the fragment to be removed * @param length the length of the fragment to be removed * *************** public abstract class AbstractDocument i *** 1159,1166 **** DefaultDocumentEvent event = new DefaultDocumentEvent(offset, length, DocumentEvent.EventType.REMOVE); ! ! // The order of the operations below is critical! removeUpdate(event); UndoableEdit temp = content.remove(offset, length); --- 1159,1166 ---- DefaultDocumentEvent event = new DefaultDocumentEvent(offset, length, DocumentEvent.EventType.REMOVE); ! ! // The order of the operations below is critical! removeUpdate(event); UndoableEdit temp = content.remove(offset, length); *************** public abstract class AbstractDocument i *** 1172,1181 **** /** * Replaces a piece of content in this Document with * another piece of content. ! * *

                                    If a {@link DocumentFilter} is installed in this document, the * corresponding method of the filter object is called.

                                    ! * *

                                    The method has no effect if length is zero (and * only zero) and, at the same time, text is * null or has zero length.

                                    --- 1172,1181 ---- /** * Replaces a piece of content in this Document with * another piece of content. ! * *

                                    If a {@link DocumentFilter} is installed in this document, the * corresponding method of the filter object is called.

                                    ! * *

                                    The method has no effect if length is zero (and * only zero) and, at the same time, text is * null or has zero length.

                                    *************** public abstract class AbstractDocument i *** 1196,1202 **** throws BadLocationException { // Bail out if we have a bogus replacement (Behavior observed in RI). ! if (length == 0 && (text == null || text.length() == 0)) return; --- 1196,1202 ---- throws BadLocationException { // Bail out if we have a bogus replacement (Behavior observed in RI). ! if (length == 0 && (text == null || text.length() == 0)) return; *************** public abstract class AbstractDocument i *** 1222,1230 **** writeUnlock(); } } ! void replaceImpl(int offset, int length, String text, ! AttributeSet attributes) throws BadLocationException { removeImpl(offset, length); --- 1222,1230 ---- writeUnlock(); } } ! void replaceImpl(int offset, int length, String text, ! AttributeSet attributes) throws BadLocationException { removeImpl(offset, length); *************** public abstract class AbstractDocument i *** 1356,1362 **** } /** ! * Blocks until a write lock can be obtained. Must wait if there are * readers currently reading or another thread is currently writing. */ protected synchronized final void writeLock() --- 1356,1362 ---- } /** ! * Blocks until a write lock can be obtained. Must wait if there are * readers currently reading or another thread is currently writing. */ protected synchronized final void writeLock() *************** public abstract class AbstractDocument i *** 1882,1888 **** /** * Returns the resolve parent of this element. * This is taken from the AttributeSet, but if this is null, ! * this method instead returns the Element's parent's * AttributeSet * * @return the resolve parent of this element --- 1882,1888 ---- /** * Returns the resolve parent of this element. * This is taken from the AttributeSet, but if this is null, ! * this method instead returns the Element's parent's * AttributeSet * * @return the resolve parent of this element *************** public abstract class AbstractDocument i *** 1919,1925 **** * is equal to this element's AttributeSet, * false otherwise */ ! public boolean isEqual(AttributeSet attrs) { return attributes.isEqual(attrs); } --- 1919,1925 ---- * is equal to this element's AttributeSet, * false otherwise */ ! public boolean isEqual(AttributeSet attrs) { return attributes.isEqual(attrs); } *************** public abstract class AbstractDocument i *** 2066,2072 **** + "must not be thrown " + "here."); err.initCause(ex); ! throw err; } b.append("]\n"); } --- 2066,2072 ---- + "must not be thrown " + "here."); err.initCause(ex); ! throw err; } b.append("]\n"); } *************** public abstract class AbstractDocument i *** 2137,2143 **** for (int index = 0; index < numChildren; ++index) tmp.add(children[index]); ! return tmp.elements(); } --- 2137,2143 ---- for (int index = 0; index < numChildren; ++index) tmp.add(children[index]); ! return tmp.elements(); } *************** public abstract class AbstractDocument i *** 2337,2347 **** // as beginning from first element each time. for (int index = 0; index < numChildren; ++index) { ! Element elem = children[index]; ! if ((elem.getStartOffset() <= position) ! && (position < elem.getEndOffset())) ! return elem; } return null; --- 2337,2347 ---- // as beginning from first element each time. for (int index = 0; index < numChildren; ++index) { ! Element elem = children[index]; ! if ((elem.getStartOffset() <= position) ! && (position < elem.getEndOffset())) ! return elem; } return null; *************** public abstract class AbstractDocument i *** 2359,2365 **** int delta = elements.length - length; int copyFrom = offset + length; // From where to copy. int copyTo = copyFrom + delta; // Where to copy to. ! int numMove = numChildren - copyFrom; // How many elements are moved. if (numChildren + delta > children.length) { // Gotta grow the array. --- 2359,2365 ---- int delta = elements.length - length; int copyFrom = offset + length; // From where to copy. int copyTo = copyFrom + delta; // Where to copy to. ! int numMove = numChildren - copyFrom; // How many elements are moved. if (numChildren + delta > children.length) { // Gotta grow the array. *************** public abstract class AbstractDocument i *** 2386,2392 **** public String toString() { return ("BranchElement(" + getName() + ") " ! + getStartOffset() + "," + getEndOffset() + "\n"); } } --- 2386,2392 ---- public String toString() { return ("BranchElement(" + getName() + ") " ! + getStartOffset() + "," + getEndOffset() + "\n"); } } *************** public abstract class AbstractDocument i *** 2403,2409 **** * The threshold that indicates when we switch to using a Hashtable. */ private static final int THRESHOLD = 10; ! /** The starting offset of the change. */ private int offset; --- 2403,2409 ---- * The threshold that indicates when we switch to using a Hashtable. */ private static final int THRESHOLD = 10; ! /** The starting offset of the change. */ private int offset; *************** public abstract class AbstractDocument i *** 2417,2423 **** * Maps Element to their change records. This is only * used when the changes array gets too big. We can use an * (unsync'ed) HashMap here, since changes to this are (should) always ! * be performed inside a write lock. */ private HashMap changes; --- 2417,2423 ---- * Maps Element to their change records. This is only * used when the changes array gets too big. We can use an * (unsync'ed) HashMap here, since changes to this are (should) always ! * be performed inside a write lock. */ private HashMap changes; *************** public abstract class AbstractDocument i *** 2435,2441 **** * @param type the type of change */ public DefaultDocumentEvent(int offset, int length, ! DocumentEvent.EventType type) { this.offset = offset; this.length = length; --- 2435,2441 ---- * @param type the type of change */ public DefaultDocumentEvent(int offset, int length, ! DocumentEvent.EventType type) { this.offset = offset; this.length = length; *************** public abstract class AbstractDocument i *** 2548,2554 **** } return change; } ! /** * Returns a String description of the change event. This returns the * toString method of the Vector of edits. --- 2548,2554 ---- } return change; } ! /** * Returns a String description of the change event. This returns the * toString method of the Vector of edits. *************** public abstract class AbstractDocument i *** 2558,2564 **** return edits.toString(); } } ! /** * An implementation of {@link DocumentEvent.ElementChange} to be added * to {@link DefaultDocumentEvent}s. --- 2558,2564 ---- return edits.toString(); } } ! /** * An implementation of {@link DocumentEvent.ElementChange} to be added * to {@link DefaultDocumentEvent}s. *************** public abstract class AbstractDocument i *** 2588,2594 **** * The added elements. */ private Element[] added; ! /** * Creates a new ElementEdit. * --- 2588,2594 ---- * The added elements. */ private Element[] added; ! /** * Creates a new ElementEdit. * *************** public abstract class AbstractDocument i *** 2598,2604 **** * @param added the added elements */ public ElementEdit(Element elem, int index, ! Element[] removed, Element[] added) { this.elem = elem; this.index = index; --- 2598,2604 ---- * @param added the added elements */ public ElementEdit(Element elem, int index, ! Element[] removed, Element[] added) { this.elem = elem; this.index = index; *************** public abstract class AbstractDocument i *** 2811,2817 **** public String toString() { return ("LeafElement(" + getName() + ") " ! + getStartOffset() + "," + getEndOffset() + "\n"); } } --- 2811,2817 ---- public String toString() { return ("LeafElement(" + getName() + ") " ! + getStartOffset() + "," + getEndOffset() + "\n"); } } *************** public abstract class AbstractDocument i *** 2900,2906 **** { AbstractDocument.this.replaceImpl(offset, length, string, attrs); } ! } ! } --- 2900,2906 ---- { AbstractDocument.this.replaceImpl(offset, length, string, attrs); } ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/AbstractWriter.java gcc-4.6.0/libjava/classpath/javax/swing/text/AbstractWriter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/AbstractWriter.java Fri Jun 9 16:07:07 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/AbstractWriter.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** public abstract class AbstractWriter *** 66,72 **** // Number of characters we have currently written. private int lineLength; // True if we can apply line wrapping. ! private boolean canWrapLines; // FIXME default? // The number of spaces per indentation level. private int indentSpace = 2; // The current indentation level. --- 66,72 ---- // Number of characters we have currently written. private int lineLength; // True if we can apply line wrapping. ! private boolean canWrapLines; // FIXME default? // The number of spaces per indentation level. private int indentSpace = 2; // The current indentation level. *************** public abstract class AbstractWriter *** 167,173 **** /** * This method must be overridden by a concrete subclass. It is * responsible for iterating over the Elements of the Document and ! * writing them out. */ protected abstract void write() throws IOException, BadLocationException; --- 167,173 ---- /** * This method must be overridden by a concrete subclass. It is * responsible for iterating over the Elements of the Document and ! * writing them out. */ protected abstract void write() throws IOException, BadLocationException; *************** public abstract class AbstractWriter *** 182,190 **** { if (! elt.isLeaf()) throw new BadLocationException("Element is not a leaf", ! elt.getStartOffset()); ! return document.getText(elt.getStartOffset(), ! elt.getEndOffset() - elt.getStartOffset()); } /** --- 182,190 ---- { if (! elt.isLeaf()) throw new BadLocationException("Element is not a leaf", ! elt.getStartOffset()); ! return document.getText(elt.getStartOffset(), ! elt.getEndOffset() - elt.getStartOffset()); } /** *************** public abstract class AbstractWriter *** 239,275 **** { if (getCanWrapLines()) { ! // FIXME: should we be handling newlines specially here? ! for (int i = 0; i < len; ) ! { ! int start_i = i; ! // Find next space. ! while (i < len && data[start + i] != ' ') ! ++i; ! if (i < len && lineLength + i - start_i >= maxLineLength) ! writeLineSeparator(); ! else if (i < len) ! { ! // Write the trailing space. ! ++i; ! } ! // Write out the text. ! output(data, start + start_i, start + i - start_i); ! } } else { ! int saved_i = start; ! for (int i = start; i < start + len; ++i) ! { ! if (data[i] == NEWLINE) ! { ! output(data, saved_i, i - saved_i); ! writeLineSeparator(); ! } ! } ! if (saved_i < start + len - 1) ! output(data, saved_i, start + len - saved_i); } } --- 239,275 ---- { if (getCanWrapLines()) { ! // FIXME: should we be handling newlines specially here? ! for (int i = 0; i < len; ) ! { ! int start_i = i; ! // Find next space. ! while (i < len && data[start + i] != ' ') ! ++i; ! if (i < len && lineLength + i - start_i >= maxLineLength) ! writeLineSeparator(); ! else if (i < len) ! { ! // Write the trailing space. ! ++i; ! } ! // Write out the text. ! output(data, start + start_i, start + i - start_i); ! } } else { ! int saved_i = start; ! for (int i = start; i < start + len; ++i) ! { ! if (data[i] == NEWLINE) ! { ! output(data, saved_i, i - saved_i); ! writeLineSeparator(); ! } ! } ! if (saved_i < start + len - 1) ! output(data, saved_i, start + len - saved_i); } } *************** public abstract class AbstractWriter *** 284,292 **** int spaces = indentLevel * indentSpace; if (spaces > 0) { ! char[] v = new char[spaces]; ! Arrays.fill(v, ' '); ! write(v, 0, v.length); } indented = true; } --- 284,292 ---- int spaces = indentLevel * indentSpace; if (spaces > 0) { ! char[] v = new char[spaces]; ! Arrays.fill(v, ' '); ! write(v, 0, v.length); } indented = true; } *************** public abstract class AbstractWriter *** 318,324 **** int eltStart = elt.getStartOffset(); int eltEnd = elt.getEndOffset(); return ((eltStart >= startOffset && eltStart < endOffset) ! || (eltEnd >= startOffset && eltEnd < endOffset)); } /** --- 318,324 ---- int eltStart = elt.getStartOffset(); int eltEnd = elt.getEndOffset(); return ((eltStart >= startOffset && eltStart < endOffset) ! || (eltEnd >= startOffset && eltEnd < endOffset)); } /** *************** public abstract class AbstractWriter *** 472,481 **** Enumeration e = attrs.getAttributeNames(); while (e.hasMoreElements()) { ! Object name = e.nextElement(); ! Object val = attrs.getAttribute(name); ! write(name + "=" + val); ! writeLineSeparator(); } } } --- 472,481 ---- Enumeration e = attrs.getAttributeNames(); while (e.hasMoreElements()) { ! Object name = e.nextElement(); ! Object val = attrs.getAttribute(name); ! write(name + "=" + val); ! writeLineSeparator(); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/AsyncBoxView.java gcc-4.6.0/libjava/classpath/javax/swing/text/AsyncBoxView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/AsyncBoxView.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/AsyncBoxView.java Tue Jan 11 19:46:05 2011 *************** public class AsyncBoxView *** 160,166 **** * * @param index the index of the child view * @param a the current allocation of this view ! * * @return the current allocation for a child view */ public synchronized Shape getChildAllocation(int index, Shape a) --- 160,166 ---- * * @param index the index of the child view * @param a the current allocation of this view ! * * @return the current allocation for a child view */ public synchronized Shape getChildAllocation(int index, Shape a) *************** public class AsyncBoxView *** 216,222 **** /** * Returns the current allocation of the child view with the specified * index. Note that this will not update any location information. ! * * @param index the index of the requested child view * * @return the current allocation of the child view with the specified --- 216,222 ---- /** * Returns the current allocation of the child view with the specified * index. Note that this will not update any location information. ! * * @param index the index of the requested child view * * @return the current allocation of the child view with the specified *************** public class AsyncBoxView *** 428,434 **** * Returns the child view for which this ChildState represents * the layout state. * ! * @return the child view for this child state object */ public View getChildView() { --- 428,434 ---- * Returns the child view for which this ChildState represents * the layout state. * ! * @return the child view for this child state object */ public View getChildView() { *************** public class AsyncBoxView *** 1002,1008 **** replace(0, 0, added); } } ! /** * Returns the span along an axis that is taken up by the insets. * --- 1002,1008 ---- replace(0, 0, added); } } ! /** * Returns the span along an axis that is taken up by the insets. * *************** public class AsyncBoxView *** 1355,1368 **** return; } } ! int index = getViewIndexAtPosition(view.getStartOffset(), Position.Bias.Forward); ChildState cs = getChildState(index); cs.preferenceChanged(width, height); LayoutQueue q = getLayoutQueue(); q.addTask(cs); q.addTask(flushTask); ! } } /** --- 1355,1368 ---- return; } } ! int index = getViewIndexAtPosition(view.getStartOffset(), Position.Bias.Forward); ChildState cs = getChildState(index); cs.preferenceChanged(width, height); LayoutQueue q = getLayoutQueue(); q.addTask(cs); q.addTask(flushTask); ! } } /** *************** public class AsyncBoxView *** 1375,1381 **** * @param e the document event * @param a the current allocation of this view */ ! protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a) { if (ec != null) --- 1375,1381 ---- * @param e the document event * @param a the current allocation of this view */ ! protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a) { if (ec != null) *************** public class AsyncBoxView *** 1385,1392 **** locator.childChanged(cs); } } ! ! /** * Returns the ChildState object associated with the child view * at the specified index. --- 1385,1392 ---- locator.childChanged(cs); } } ! ! /** * Returns the ChildState object associated with the child view * at the specified index. *************** public class AsyncBoxView *** 1416,1422 **** /** * Returns the child view index of the view that represents the specified * position in the document model. ! * * @param pos the position in the model * @param b the bias * --- 1416,1422 ---- /** * Returns the child view index of the view that represents the specified * position in the document model. ! * * @param pos the position in the model * @param b the bias * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/AttributeSet.java gcc-4.6.0/libjava/classpath/javax/swing/text/AttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/AttributeSet.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/AttributeSet.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* AttributeSet.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* AttributeSet.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.util.Enumeration; *** 52,58 **** * @author Roman Kennke (roman@kennke.org) */ public interface AttributeSet ! { /** * Used as keys to identify character-run attributes. */ --- 52,58 ---- * @author Roman Kennke (roman@kennke.org) */ public interface AttributeSet ! { /** * Used as keys to identify character-run attributes. */ *************** public interface AttributeSet *** 191,195 **** * are equal to the attributes in this AttributeSet, * false otherwise */ ! boolean isEqual(AttributeSet attr); } --- 191,195 ---- * are equal to the attributes in this AttributeSet, * false otherwise */ ! boolean isEqual(AttributeSet attr); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/BoxView.java gcc-4.6.0/libjava/classpath/javax/swing/text/BoxView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/BoxView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/BoxView.java Tue Jan 11 19:46:05 2011 *************** public class BoxView *** 155,162 **** * automatically when any of the child view changes its preferences * via {@link #preferenceChanged(View, boolean, boolean)}. * ! * The layout will be updated the next time when ! * {@link #setSize(float, float)} is called, typically from within the * {@link #paint(Graphics, Shape)} method. * * Valid values for the axis are {@link View#X_AXIS} and --- 155,162 ---- * automatically when any of the child view changes its preferences * via {@link #preferenceChanged(View, boolean, boolean)}. * ! * The layout will be updated the next time when ! * {@link #setSize(float, float)} is called, typically from within the * {@link #paint(Graphics, Shape)} method. * * Valid values for the axis are {@link View#X_AXIS} and *************** public class BoxView *** 387,393 **** int totalDescentMin = 0; int totalDescentPref = 0; int totalDescentMax = 0; ! int count = getViewCount(); for (int i = 0; i < count; i++) { --- 387,393 ---- int totalDescentMin = 0; int totalDescentPref = 0; int totalDescentMax = 0; ! int count = getViewCount(); for (int i = 0; i < count; i++) { *************** public class BoxView *** 578,584 **** return res; } ! /** * Returns true if the specified point lies before the --- 578,584 ---- return res; } ! /** * Returns true if the specified point lies before the *************** public class BoxView *** 699,705 **** * Computes the allocation for a child View. The parameter * a stores the allocation of this CompositeView * and is then adjusted to hold the allocation of the child view. ! * * @param index * the index of the child View * @param a --- 699,705 ---- * Computes the allocation for a child View. The parameter * a stores the allocation of this CompositeView * and is then adjusted to hold the allocation of the child view. ! * * @param index * the index of the child View * @param a *************** public class BoxView *** 957,969 **** updateRequirements(axis); return requirements[axis].alignment; } ! /** * Called by a child View when its preferred span has changed. ! * * @param width indicates that the preferred width of the child changed. * @param height indicates that the preferred height of the child changed. ! * @param child the child View. */ public void preferenceChanged(View child, boolean width, boolean height) { --- 957,969 ---- updateRequirements(axis); return requirements[axis].alignment; } ! /** * Called by a child View when its preferred span has changed. ! * * @param width indicates that the preferred width of the child changed. * @param height indicates that the preferred height of the child changed. ! * @param child the child View. */ public void preferenceChanged(View child, boolean width, boolean height) { *************** public class BoxView *** 979,985 **** } super.preferenceChanged(child, width, height); } ! /** * Maps the document model position pos to a Shape * in the view coordinate space. This method overrides CompositeView's --- 979,985 ---- } super.preferenceChanged(child, width, height); } ! /** * Maps the document model position pos to a Shape * in the view coordinate space. This method overrides CompositeView's diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/Caret.java gcc-4.6.0/libjava/classpath/javax/swing/text/Caret.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/Caret.java Fri Sep 23 21:31:04 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/Caret.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Caret.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Caret.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public interface Caret *** 77,83 **** * @param c the text component to install this caret to */ void install(JTextComponent c); ! /** * Deinstalls this Caret from the specified text component. * This usually involves removing listeners from the text component. --- 77,83 ---- * @param c the text component to install this caret to */ void install(JTextComponent c); ! /** * Deinstalls this Caret from the specified text component. * This usually involves removing listeners from the text component. *************** public interface Caret *** 105,111 **** * @param rate the new blink rate to set */ void setBlinkRate(int rate); ! /** * Returns the current position of this Caret within the * Document. --- 105,111 ---- * @param rate the new blink rate to set */ void setBlinkRate(int rate); ! /** * Returns the current position of this Caret within the * Document. *************** public interface Caret *** 125,131 **** * @see #moveDot(int) */ void setDot(int dot); ! /** * Moves the dot location without touching the * mark. This is used when making a selection. --- 125,131 ---- * @see #moveDot(int) */ void setDot(int dot); ! /** * Moves the dot location without touching the * mark. This is used when making a selection. *************** public interface Caret *** 135,141 **** * @see #setDot(int) */ void moveDot(int dot); ! /** * Returns the current position of the mark. The * mark marks the location in the Document that --- 135,141 ---- * @see #setDot(int) */ void moveDot(int dot); ! /** * Returns the current position of the mark. The * mark marks the location in the Document that *************** public interface Caret *** 145,151 **** * @return the current position of the mark */ int getMark(); ! /** * Returns the current visual position of this Caret. * --- 145,151 ---- * @return the current position of the mark */ int getMark(); ! /** * Returns the current visual position of this Caret. * *************** public interface Caret *** 194,200 **** * Caret, false hides it. * * @param v the visibility to set ! */ void setVisible(boolean v); /** --- 194,200 ---- * Caret, false hides it. * * @param v the visibility to set ! */ void setVisible(boolean v); /** *************** public interface Caret *** 203,207 **** * * @param g the graphics context to render to */ ! void paint(Graphics g); } --- 203,207 ---- * * @param g the graphics context to render to */ ! void paint(Graphics g); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/ComponentView.java gcc-4.6.0/libjava/classpath/javax/swing/text/ComponentView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/ComponentView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/ComponentView.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ComponentView.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ComponentView.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class ComponentView extends View *** 459,465 **** } } } ! /** * Maps coordinates from the View's space into a position * in the document model. --- 459,465 ---- } } } ! /** * Maps coordinates from the View's space into a position * in the document model. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/CompositeView.java gcc-4.6.0/libjava/classpath/javax/swing/text/CompositeView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/CompositeView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/CompositeView.java Tue Jan 11 19:46:05 2011 *************** public abstract class CompositeView *** 309,315 **** * listed valid values */ public Shape modelToView(int p1, Position.Bias b1, ! int p2, Position.Bias b2, Shape a) throws BadLocationException { // TODO: This is most likely not 100% ok, figure out what else is to --- 309,315 ---- * listed valid values */ public Shape modelToView(int p1, Position.Bias b1, ! int p2, Position.Bias b2, Shape a) throws BadLocationException { // TODO: This is most likely not 100% ok, figure out what else is to *************** public abstract class CompositeView *** 346,352 **** * of the caret when navigating around the document with the arrow keys. This * is a convenience method for {@link #getNextNorthSouthVisualPositionFrom} * and {@link #getNextEastWestVisualPositionFrom}. ! * * @param pos * the model position to start search from * @param b --- 346,352 ---- * of the caret when navigating around the document with the arrow keys. This * is a convenience method for {@link #getNextNorthSouthVisualPositionFrom} * and {@link #getNextEastWestVisualPositionFrom}. ! * * @param pos * the model position to start search from * @param b *************** public abstract class CompositeView *** 662,668 **** // This limitation is described as PR 27345. int index = getViewIndex(pos, b); View v = null; ! if (index == -1) return pos; --- 662,668 ---- // This limitation is described as PR 27345. int index = getViewIndex(pos, b); View v = null; ! if (index == -1) return pos; *************** public abstract class CompositeView *** 673,679 **** // provided. if (index <= 0) return pos; ! v = getView(index - 1); break; case SOUTH: --- 673,679 ---- // provided. if (index <= 0) return pos; ! v = getView(index - 1); break; case SOUTH: *************** public abstract class CompositeView *** 681,693 **** // provided. if (index >= getViewCount() - 1) return pos; ! v = getView(index + 1); break; default: throw new IllegalArgumentException(); } ! return v.getNextVisualPositionFrom(pos, b, a, direction, biasRet); } --- 681,693 ---- // provided. if (index >= getViewCount() - 1) return pos; ! v = getView(index + 1); break; default: throw new IllegalArgumentException(); } ! return v.getNextVisualPositionFrom(pos, b, a, direction, biasRet); } *************** public abstract class CompositeView *** 738,746 **** // // This limitation is described as PR 27346. int index; ! View v = null; ! switch (direction) { case EAST: --- 738,746 ---- // // This limitation is described as PR 27346. int index; ! View v = null; ! switch (direction) { case EAST: *************** public abstract class CompositeView *** 749,755 **** // provided. if (index == -1) return pos; ! v = getView(index); break; case WEST: --- 749,755 ---- // provided. if (index == -1) return pos; ! v = getView(index); break; case WEST: *************** public abstract class CompositeView *** 758,770 **** // provided. if (index == -1) return pos; ! v = getView(index); break; default: throw new IllegalArgumentException(); } ! return v.getNextVisualPositionFrom(pos, b, a, --- 758,770 ---- // provided. if (index == -1) return pos; ! v = getView(index); break; default: throw new IllegalArgumentException(); } ! return v.getNextVisualPositionFrom(pos, b, a, diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultCaret.java gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultCaret.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultCaret.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultCaret.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.Position.Bias; *** 70,84 **** public class DefaultCaret extends Rectangle implements Caret, FocusListener, MouseListener, MouseMotionListener { ! /** A text component in the current VM which currently has a * text selection or null. ! */ static JTextComponent componentWithSelection; /** An implementation of NavigationFilter.FilterBypass which delegates ! * to the corresponding methods of the DefaultCaret. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ class Bypass extends NavigationFilter.FilterBypass --- 70,84 ---- public class DefaultCaret extends Rectangle implements Caret, FocusListener, MouseListener, MouseMotionListener { ! /** A text component in the current VM which currently has a * text selection or null. ! */ static JTextComponent componentWithSelection; /** An implementation of NavigationFilter.FilterBypass which delegates ! * to the corresponding methods of the DefaultCaret. ! * * @author Robert Schuster (robertschuster@fsfe.org) */ class Bypass extends NavigationFilter.FilterBypass *************** public class DefaultCaret extends Rectan *** 98,106 **** { DefaultCaret.this.setDotImpl(dot); } ! } ! /** * Controls the blinking of the caret. * --- 98,106 ---- { DefaultCaret.this.setDotImpl(dot); } ! } ! /** * Controls the blinking of the caret. * *************** public class DefaultCaret extends Rectan *** 116,126 **** * the caret visible one iteration longer. */ boolean ignoreNextEvent; ! /** * Receives notification when the blink timer fires and updates the visible * state of the caret. ! * * @param event the action event */ public void actionPerformed(ActionEvent event) --- 116,126 ---- * the caret visible one iteration longer. */ boolean ignoreNextEvent; ! /** * Receives notification when the blink timer fires and updates the visible * state of the caret. ! * * @param event the action event */ public void actionPerformed(ActionEvent event) *************** public class DefaultCaret extends Rectan *** 138,144 **** /** * Listens for changes in the text component's document and updates the * caret accordingly. ! * * @author Roman Kennke (kennke@aicas.com) */ private class DocumentHandler implements DocumentListener --- 138,144 ---- /** * Listens for changes in the text component's document and updates the * caret accordingly. ! * * @author Roman Kennke (kennke@aicas.com) */ private class DocumentHandler implements DocumentListener *************** public class DefaultCaret extends Rectan *** 162,171 **** */ public void insertUpdate(DocumentEvent event) { ! if (policy == ALWAYS_UPDATE || ! (SwingUtilities.isEventDispatchThread() && policy == UPDATE_WHEN_ON_EDT)) ! { int dot = getDot(); setDot(dot + event.getLength()); } --- 162,171 ---- */ public void insertUpdate(DocumentEvent event) { ! if (policy == ALWAYS_UPDATE || ! (SwingUtilities.isEventDispatchThread() && policy == UPDATE_WHEN_ON_EDT)) ! { int dot = getDot(); setDot(dot + event.getLength()); } *************** public class DefaultCaret extends Rectan *** 216,229 **** */ public void propertyChange(PropertyChangeEvent e) { ! String name = e.getPropertyName(); ! if (name.equals("document")) { Document oldDoc = (Document) e.getOldValue(); if (oldDoc != null) oldDoc.removeDocumentListener(documentListener); ! Document newDoc = (Document) e.getNewValue(); if (newDoc != null) newDoc.addDocumentListener(documentListener); --- 216,229 ---- */ public void propertyChange(PropertyChangeEvent e) { ! String name = e.getPropertyName(); ! if (name.equals("document")) { Document oldDoc = (Document) e.getOldValue(); if (oldDoc != null) oldDoc.removeDocumentListener(documentListener); ! Document newDoc = (Document) e.getNewValue(); if (newDoc != null) newDoc.addDocumentListener(documentListener); *************** public class DefaultCaret extends Rectan *** 238,256 **** active = (((Boolean) e.getNewValue()).booleanValue() && textComponent.isEditable()); } ! } ! } /** The serialization UID (compatible with JDK1.5). */ private static final long serialVersionUID = 4325555698756477346L; ! /** * Indicates the Caret position should always be updated after Document * changes even if the updates are not performed on the Event Dispatching * thread. ! * * @since 1.5 */ public static final int ALWAYS_UPDATE = 2; --- 238,256 ---- active = (((Boolean) e.getNewValue()).booleanValue() && textComponent.isEditable()); } ! } ! } /** The serialization UID (compatible with JDK1.5). */ private static final long serialVersionUID = 4325555698756477346L; ! /** * Indicates the Caret position should always be updated after Document * changes even if the updates are not performed on the Event Dispatching * thread. ! * * @since 1.5 */ public static final int ALWAYS_UPDATE = 2; *************** public class DefaultCaret extends Rectan *** 259,280 **** * Indicates the Caret position should not be changed unless the Document * length becomes less than the Caret position, in which case the Caret * is moved to the end of the Document. ! * * @since 1.5 */ public static final int NEVER_UPDATE = 1; ! ! /** * Indicates the Caret position should be updated only if Document changes * are made on the Event Dispatcher thread. ! * * @since 1.5 */ public static final int UPDATE_WHEN_ON_EDT = 0; ! /** Keeps track of the current update policy **/ int policy = UPDATE_WHEN_ON_EDT; ! /** * The ChangeEvent that is fired by {@link #fireStateChanged()}. */ --- 259,280 ---- * Indicates the Caret position should not be changed unless the Document * length becomes less than the Caret position, in which case the Caret * is moved to the end of the Document. ! * * @since 1.5 */ public static final int NEVER_UPDATE = 1; ! ! /** * Indicates the Caret position should be updated only if Document changes * are made on the Event Dispatcher thread. ! * * @since 1.5 */ public static final int UPDATE_WHEN_ON_EDT = 0; ! /** Keeps track of the current update policy **/ int policy = UPDATE_WHEN_ON_EDT; ! /** * The ChangeEvent that is fired by {@link #fireStateChanged()}. */ *************** public class DefaultCaret extends Rectan *** 297,303 **** /** * The text component in which this caret is installed. ! * * (Package private to avoid synthetic accessor method.) */ JTextComponent textComponent; --- 297,303 ---- /** * The text component in which this caret is installed. ! * * (Package private to avoid synthetic accessor method.) */ JTextComponent textComponent; *************** public class DefaultCaret extends Rectan *** 332,342 **** * package private to avoid an accessor method. */ boolean visible = false; ! /** Indicates whether the text component where the caret is installed is * editable and enabled. If either of these properties is false * the caret is not drawn. ! */ boolean active = true; /** --- 332,342 ---- * package private to avoid an accessor method. */ boolean visible = false; ! /** Indicates whether the text component where the caret is installed is * editable and enabled. If either of these properties is false * the caret is not drawn. ! */ boolean active = true; /** *************** public class DefaultCaret extends Rectan *** 345,351 **** private Object highlightEntry; private Timer blinkTimer; ! private BlinkTimerListener blinkListener; /** --- 345,351 ---- private Object highlightEntry; private Timer blinkTimer; ! private BlinkTimerListener blinkListener; /** *************** public class DefaultCaret extends Rectan *** 362,371 **** { // Nothing to do here. } ! /** Returns the caret's NavigationFilter.FilterBypass instance * and creates it if it does not yet exist. ! * * @return The caret's NavigationFilter.FilterBypass instance. */ private NavigationFilter.FilterBypass getBypass() --- 362,371 ---- { // Nothing to do here. } ! /** Returns the caret's NavigationFilter.FilterBypass instance * and creates it if it does not yet exist. ! * * @return The caret's NavigationFilter.FilterBypass instance. */ private NavigationFilter.FilterBypass getBypass() *************** public class DefaultCaret extends Rectan *** 375,391 **** /** * Sets the Caret update policy. ! * * @param policy the new policy. Valid values are: * ALWAYS_UPDATE: always update the Caret position, even when Document * updates don't occur on the Event Dispatcher thread. * NEVER_UPDATE: don't update the Caret position unless the Document * length becomes less than the Caret position (then update the * Caret to the end of the Document). ! * UPDATE_WHEN_ON_EDT: update the Caret position when the ! * Document updates occur on the Event Dispatcher thread. This is the * default. ! * * @since 1.5 * @throws IllegalArgumentException if policy is not one of the above. */ --- 375,391 ---- /** * Sets the Caret update policy. ! * * @param policy the new policy. Valid values are: * ALWAYS_UPDATE: always update the Caret position, even when Document * updates don't occur on the Event Dispatcher thread. * NEVER_UPDATE: don't update the Caret position unless the Document * length becomes less than the Caret position (then update the * Caret to the end of the Document). ! * UPDATE_WHEN_ON_EDT: update the Caret position when the ! * Document updates occur on the Event Dispatcher thread. This is the * default. ! * * @since 1.5 * @throws IllegalArgumentException if policy is not one of the above. */ *************** public class DefaultCaret extends Rectan *** 393,407 **** { if (policy != ALWAYS_UPDATE && policy != NEVER_UPDATE && policy != UPDATE_WHEN_ON_EDT) ! throw new IllegalArgumentException ("policy must be ALWAYS_UPDATE, NEVER__UPDATE, or UPDATE_WHEN_ON_EDT"); this.policy = policy; } ! /** * Gets the caret update policy. ! * * @return the caret update policy. * @since 1.5 */ --- 393,407 ---- { if (policy != ALWAYS_UPDATE && policy != NEVER_UPDATE && policy != UPDATE_WHEN_ON_EDT) ! throw new IllegalArgumentException ("policy must be ALWAYS_UPDATE, NEVER__UPDATE, or UPDATE_WHEN_ON_EDT"); this.policy = policy; } ! /** * Gets the caret update policy. ! * * @return the caret update policy. * @since 1.5 */ *************** public class DefaultCaret extends Rectan *** 409,419 **** { return policy; } ! /** * Moves the caret position when the mouse is dragged over the text * component, modifying the selectiony. ! * *

                                    When the text component where the caret is installed is disabled, * the selection is not change but you can still scroll the text and * update the caret's location.

                                    --- 409,419 ---- { return policy; } ! /** * Moves the caret position when the mouse is dragged over the text * component, modifying the selectiony. ! * *

                                    When the text component where the caret is installed is disabled, * the selection is not change but you can still scroll the text and * update the caret's location.

                                    *************** public class DefaultCaret extends Rectan *** 462,470 **** // Do not modify selection if component is disabled. if (!textComponent.isEnabled()) return; ! int count = event.getClickCount(); ! if (event.getButton() == MouseEvent.BUTTON1 && count >= 2) { int newDot = getComponent().viewToModel(event.getPoint()); --- 462,470 ---- // Do not modify selection if component is disabled. if (!textComponent.isEnabled()) return; ! int count = event.getClickCount(); ! if (event.getButton() == MouseEvent.BUTTON1 && count >= 2) { int newDot = getComponent().viewToModel(event.getPoint()); *************** public class DefaultCaret extends Rectan *** 480,486 **** else { int wordStart = Utilities.getWordStart(t, newDot); ! // When the mouse points at the offset of the first character // in a word Utilities().getPreviousWord will not return that // word but we want to select that. We have to use --- 480,486 ---- else { int wordStart = Utilities.getWordStart(t, newDot); ! // When the mouse points at the offset of the first character // in a word Utilities().getPreviousWord will not return that // word but we want to select that. We have to use *************** public class DefaultCaret extends Rectan *** 495,501 **** int nextWord = Utilities.getNextWord(t, newDot); int previousWord = Utilities.getPreviousWord(t, newDot); int previousWordEnd = Utilities.getWordEnd(t, previousWord); ! // If the user clicked in the space between two words, // then select the space. if (newDot >= previousWordEnd && newDot <= nextWord) --- 495,501 ---- int nextWord = Utilities.getNextWord(t, newDot); int previousWord = Utilities.getPreviousWord(t, newDot); int previousWordEnd = Utilities.getWordEnd(t, previousWord); ! // If the user clicked in the space between two words, // then select the space. if (newDot >= previousWordEnd && newDot <= nextWord) *************** public class DefaultCaret extends Rectan *** 517,523 **** // TODO: Swallowing ok here? } } ! } /** --- 517,523 ---- // TODO: Swallowing ok here? } } ! } /** *************** public class DefaultCaret extends Rectan *** 552,558 **** */ public void mousePressed(MouseEvent event) { ! // The implementation assumes that consuming the event makes the AWT event // mechanism forget about this event instance and not transfer focus. // By observing how the RI reacts the following behavior has been --- 552,558 ---- */ public void mousePressed(MouseEvent event) { ! // The implementation assumes that consuming the event makes the AWT event // mechanism forget about this event instance and not transfer focus. // By observing how the RI reacts the following behavior has been *************** public class DefaultCaret extends Rectan *** 617,630 **** { if (textComponent.isEditable()) { ! setVisible(true); updateTimerStatus(); } } /** * Sets the caret to invisible. ! * * @param event the FocusEvent */ public void focusLost(FocusEvent event) --- 617,630 ---- { if (textComponent.isEditable()) { ! setVisible(true); updateTimerStatus(); } } /** * Sets the caret to invisible. ! * * @param event the FocusEvent */ public void focusLost(FocusEvent event) *************** public class DefaultCaret extends Rectan *** 632,644 **** if (textComponent.isEditable() && event.isTemporary() == false) { setVisible(false); ! // Stop the blinker, if running. if (blinkTimer != null && blinkTimer.isRunning()) blinkTimer.stop(); } } ! /** * Install (if not present) and start the timer, if the caret must blink. The * caret does not blink if it is invisible, or the component is disabled or --- 632,644 ---- if (textComponent.isEditable() && event.isTemporary() == false) { setVisible(false); ! // Stop the blinker, if running. if (blinkTimer != null && blinkTimer.isRunning()) blinkTimer.stop(); } } ! /** * Install (if not present) and start the timer, if the caret must blink. The * caret does not blink if it is invisible, or the component is disabled or *************** public class DefaultCaret extends Rectan *** 724,734 **** propertyChangeListener = new PropertyChangeHandler(); textComponent.addPropertyChangeListener(propertyChangeListener); documentListener = new DocumentHandler(); ! Document doc = textComponent.getDocument(); if (doc != null) doc.addDocumentListener(documentListener); ! active = textComponent.isEditable() && textComponent.isEnabled(); repaint(); --- 724,734 ---- propertyChangeListener = new PropertyChangeHandler(); textComponent.addPropertyChangeListener(propertyChangeListener); documentListener = new DocumentHandler(); ! Document doc = textComponent.getDocument(); if (doc != null) doc.addDocumentListener(documentListener); ! active = textComponent.isEditable() && textComponent.isEnabled(); repaint(); *************** public class DefaultCaret extends Rectan *** 769,789 **** { return mark; } ! private void clearHighlight() { Highlighter highlighter = textComponent.getHighlighter(); ! if (highlighter == null) return; ! if (selectionVisible) { try { if (highlightEntry != null) highlighter.changeHighlight(highlightEntry, 0, 0); ! // Free the global variable which stores the text component with an active // selection. if (componentWithSelection == textComponent) --- 769,789 ---- { return mark; } ! private void clearHighlight() { Highlighter highlighter = textComponent.getHighlighter(); ! if (highlighter == null) return; ! if (selectionVisible) { try { if (highlightEntry != null) highlighter.changeHighlight(highlightEntry, 0, 0); ! // Free the global variable which stores the text component with an active // selection. if (componentWithSelection == textComponent) *************** public class DefaultCaret extends Rectan *** 808,829 **** private void handleHighlight() { Highlighter highlighter = textComponent.getHighlighter(); ! if (highlighter == null) return; ! int p0 = Math.min(dot, mark); int p1 = Math.max(dot, mark); ! if (selectionVisible) { ! try ! { ! if (highlightEntry == null) ! highlightEntry = highlighter.addHighlight(p0, p1, getSelectionPainter()); ! else ! highlighter.changeHighlight(highlightEntry, p0, p1); ! // If another component currently has a text selection clear that selection // first. if (componentWithSelection != null) --- 808,829 ---- private void handleHighlight() { Highlighter highlighter = textComponent.getHighlighter(); ! if (highlighter == null) return; ! int p0 = Math.min(dot, mark); int p1 = Math.max(dot, mark); ! if (selectionVisible) { ! try ! { ! if (highlightEntry == null) ! highlightEntry = highlighter.addHighlight(p0, p1, getSelectionPainter()); ! else ! highlighter.changeHighlight(highlightEntry, p0, p1); ! // If another component currently has a text selection clear that selection // first. if (componentWithSelection != null) *************** public class DefaultCaret extends Rectan *** 833,853 **** c.setDot(c.getDot()); } componentWithSelection = textComponent; ! ! } ! catch (BadLocationException e) ! { ! // This should never happen. ! throw new InternalError(); ! } } else { ! if (highlightEntry != null) ! { ! highlighter.removeHighlight(highlightEntry); ! highlightEntry = null; ! } } } --- 833,853 ---- c.setDot(c.getDot()); } componentWithSelection = textComponent; ! ! } ! catch (BadLocationException e) ! { ! // This should never happen. ! throw new InternalError(); ! } } else { ! if (highlightEntry != null) ! { ! highlighter.removeHighlight(highlightEntry); ! highlightEntry = null; ! } } } *************** public class DefaultCaret extends Rectan *** 861,867 **** { if (selectionVisible == v) return; ! selectionVisible = v; handleHighlight(); repaint(); --- 861,867 ---- { if (selectionVisible == v) return; ! selectionVisible = v; handleHighlight(); repaint(); *************** public class DefaultCaret extends Rectan *** 1049,1055 **** * *

                                    If the underlying text component has a {@link NavigationFilter} * installed the caret will call the corresponding method of that object.

                                    ! * * @param dot the location where to move the dot * * @see #setDot(int) --- 1049,1055 ---- * *

                                    If the underlying text component has a {@link NavigationFilter} * installed the caret will call the corresponding method of that object.

                                    ! * * @param dot the location where to move the dot * * @see #setDot(int) *************** public class DefaultCaret extends Rectan *** 1062,1068 **** else moveDotImpl(dot); } ! void moveDotImpl(int dot) { if (dot >= 0) --- 1062,1068 ---- else moveDotImpl(dot); } ! void moveDotImpl(int dot) { if (dot >= 0) *************** public class DefaultCaret extends Rectan *** 1071,1077 **** if (doc != null) this.dot = Math.min(dot, doc.getLength()); this.dot = Math.max(this.dot, 0); ! handleHighlight(); appear(); --- 1071,1077 ---- if (doc != null) this.dot = Math.min(dot, doc.getLength()); this.dot = Math.max(this.dot, 0); ! handleHighlight(); appear(); *************** public class DefaultCaret extends Rectan *** 1082,1091 **** * Sets the current position of this Caret within the * Document. This also sets the mark to the new * location. ! * *

                                    If the underlying text component has a {@link NavigationFilter} * installed the caret will call the corresponding method of that object.

                                    ! * * @param dot * the new position to be set * @see #moveDot(int) --- 1082,1091 ---- * Sets the current position of this Caret within the * Document. This also sets the mark to the new * location. ! * *

                                    If the underlying text component has a {@link NavigationFilter} * installed the caret will call the corresponding method of that object.

                                    ! * * @param dot * the new position to be set * @see #moveDot(int) *************** public class DefaultCaret extends Rectan *** 1098,1124 **** else setDotImpl(dot); } ! void setDotImpl(int dot) { if (dot >= 0) ! { Document doc = textComponent.getDocument(); if (doc != null) this.dot = Math.min(dot, doc.getLength()); this.dot = Math.max(this.dot, 0); this.mark = this.dot; ! clearHighlight(); ! appear(); } } ! /** * Show the caret (may be hidden due blinking) and adjust the timer not to * hide it (possibly immediately). ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ void appear() --- 1098,1124 ---- else setDotImpl(dot); } ! void setDotImpl(int dot) { if (dot >= 0) ! { Document doc = textComponent.getDocument(); if (doc != null) this.dot = Math.min(dot, doc.getLength()); this.dot = Math.max(this.dot, 0); this.mark = this.dot; ! clearHighlight(); ! appear(); } } ! /** * Show the caret (may be hidden due blinking) and adjust the timer not to * hide it (possibly immediately). ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ void appear() *************** public class DefaultCaret extends Rectan *** 1137,1143 **** visible = true; Rectangle area = null; ! int dot = getDot(); try { area = getComponent().modelToView(dot); --- 1137,1143 ---- visible = true; Rectangle area = null; ! int dot = getDot(); try { area = getComponent().modelToView(dot); *************** public class DefaultCaret extends Rectan *** 1158,1164 **** } } repaint(); ! } /** * Returns true if this Caret is blinking, --- 1158,1164 ---- } } repaint(); ! } /** * Returns true if this Caret is blinking, *************** public class DefaultCaret extends Rectan *** 1195,1201 **** * Caret, false hides it. * * @param v the visibility to set ! */ public void setVisible(boolean v) { if (v != visible) --- 1195,1201 ---- * Caret, false hides it. * * @param v the visibility to set ! */ public void setVisible(boolean v) { if (v != visible) *************** public class DefaultCaret extends Rectan *** 1203,1219 **** visible = v; updateTimerStatus(); Rectangle area = null; ! int dot = getDot(); try ! { area = getComponent().modelToView(dot); } catch (BadLocationException e) { ! AssertionError ae; ! ae = new AssertionError("Unexpected bad caret location: " + dot); ! ae.initCause(e); ! throw ae; } if (area != null) damage(area); --- 1203,1219 ---- visible = v; updateTimerStatus(); Rectangle area = null; ! int dot = getDot(); try ! { area = getComponent().modelToView(dot); } catch (BadLocationException e) { ! AssertionError ae; ! ae = new AssertionError("Unexpected bad caret location: " + dot); ! ae.initCause(e); ! throw ae; } if (area != null) damage(area); *************** public class DefaultCaret extends Rectan *** 1258,1264 **** // Should not happen. throw new InternalError("Caret location not within document range."); } ! repaint(); } --- 1258,1264 ---- // Should not happen. throw new InternalError("Caret location not within document range."); } ! repaint(); } *************** public class DefaultCaret extends Rectan *** 1283,1287 **** blinkTimer = new Timer(getBlinkRate(), blinkListener); blinkTimer.setRepeats(true); } ! } --- 1283,1287 ---- blinkTimer = new Timer(getBlinkRate(), blinkListener); blinkTimer.setRepeats(true); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultEditorKit.java gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultEditorKit.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultEditorKit.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultEditorKit.java Tue Jan 11 19:46:05 2011 *************** public class DefaultEditorKit extends Ed *** 79,89 **** try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getPreviousWord(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.moveDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); --- 79,89 ---- try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getPreviousWord(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.moveDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); *************** public class DefaultEditorKit extends Ed *** 109,119 **** try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getNextWord(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.moveDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); --- 109,119 ---- try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getNextWord(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.moveDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); *************** public class DefaultEditorKit extends Ed *** 132,148 **** { super(selectionBeginWordAction); } ! public void actionPerformed(ActionEvent event) { try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getWordStart(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.moveDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); --- 132,148 ---- { super(selectionBeginWordAction); } ! public void actionPerformed(ActionEvent event) { try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getWordStart(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.moveDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); *************** public class DefaultEditorKit extends Ed *** 154,177 **** } } } ! static class SelectionEndWordAction extends TextAction { SelectionEndWordAction() { super(selectionEndWordAction); } ! public void actionPerformed(ActionEvent event) { try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getWordEnd(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.moveDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); --- 154,177 ---- } } } ! static class SelectionEndWordAction extends TextAction { SelectionEndWordAction() { super(selectionEndWordAction); } ! public void actionPerformed(ActionEvent event) { try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getWordEnd(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.moveDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); *************** public class DefaultEditorKit extends Ed *** 183,206 **** } } } ! static class BeginWordAction extends TextAction { BeginWordAction() { super(beginWordAction); } ! public void actionPerformed(ActionEvent event) { try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getWordStart(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.setDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); --- 183,206 ---- } } } ! static class BeginWordAction extends TextAction { BeginWordAction() { super(beginWordAction); } ! public void actionPerformed(ActionEvent event) { try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getWordStart(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.setDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); *************** public class DefaultEditorKit extends Ed *** 212,235 **** } } } ! static class EndWordAction extends TextAction { EndWordAction() { super(endWordAction); } ! public void actionPerformed(ActionEvent event) { try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getWordEnd(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.setDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); --- 212,235 ---- } } } ! static class EndWordAction extends TextAction { EndWordAction() { super(endWordAction); } ! public void actionPerformed(ActionEvent event) { try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getWordEnd(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.setDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); *************** public class DefaultEditorKit extends Ed *** 255,265 **** try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getPreviousWord(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.setDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); --- 255,265 ---- try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getPreviousWord(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.setDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); *************** public class DefaultEditorKit extends Ed *** 285,295 **** try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getNextWord(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.setDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); --- 285,295 ---- try { JTextComponent t = getTextComponent(event); ! if (t != null) { int offs = Utilities.getNextWord(t, t.getCaretPosition()); ! Caret c = t.getCaret(); c.setDot(offs); c.setMagicCaretPosition(t.modelToView(offs).getLocation()); *************** public class DefaultEditorKit extends Ed *** 320,326 **** c.setDot(0); c.moveDot(offs); try ! { c.setMagicCaretPosition(t.modelToView(offs).getLocation()); } catch(BadLocationException ble) --- 320,326 ---- c.setDot(0); c.moveDot(offs); try ! { c.setMagicCaretPosition(t.modelToView(offs).getLocation()); } catch(BadLocationException ble) *************** public class DefaultEditorKit extends Ed *** 347,353 **** Caret c = t.getCaret(); c.moveDot(0); try ! { c.setMagicCaretPosition(t.modelToView(0).getLocation()); } catch(BadLocationException ble) --- 347,353 ---- Caret c = t.getCaret(); c.moveDot(0); try ! { c.setMagicCaretPosition(t.modelToView(0).getLocation()); } catch(BadLocationException ble) *************** public class DefaultEditorKit extends Ed *** 375,381 **** Caret c = t.getCaret(); c.moveDot(offs); try ! { c.setMagicCaretPosition(t.modelToView(offs).getLocation()); } catch(BadLocationException ble) --- 375,381 ---- Caret c = t.getCaret(); c.moveDot(offs); try ! { c.setMagicCaretPosition(t.modelToView(offs).getLocation()); } catch(BadLocationException ble) *************** public class DefaultEditorKit extends Ed *** 385,395 **** } } } ! static class SelectionBeginLineAction extends TextAction { ! SelectionBeginLineAction() { super(selectionBeginLineAction); --- 385,395 ---- } } } ! static class SelectionBeginLineAction extends TextAction { ! SelectionBeginLineAction() { super(selectionBeginLineAction); *************** public class DefaultEditorKit extends Ed *** 440,453 **** } } } ! static class SelectLineAction extends TextAction { SelectLineAction() { super(selectLineAction); } ! public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); --- 440,453 ---- } } } ! static class SelectLineAction extends TextAction { SelectLineAction() { super(selectLineAction); } ! public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); *************** public class DefaultEditorKit extends Ed *** 469,482 **** } } } ! static class SelectWordAction extends TextAction { SelectWordAction() { super(selectWordAction); } ! public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); --- 469,482 ---- } } } ! static class SelectWordAction extends TextAction { SelectWordAction() { super(selectWordAction); } ! public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); *************** public class DefaultEditorKit extends Ed *** 497,507 **** else { // Current cursor position is not on the first character ! // in a word. int nextWord = Utilities.getNextWord(t, dot); int previousWord = Utilities.getPreviousWord(t, dot); int previousWordEnd = Utilities.getWordEnd(t, previousWord); ! // Cursor position is in the space between two words. In such a // situation just select the space. if (dot >= previousWordEnd && dot <= nextWord) --- 497,507 ---- else { // Current cursor position is not on the first character ! // in a word. int nextWord = Utilities.getNextWord(t, dot); int previousWord = Utilities.getPreviousWord(t, dot); int previousWordEnd = Utilities.getWordEnd(t, previousWord); ! // Cursor position is in the space between two words. In such a // situation just select the space. if (dot >= previousWordEnd && dot <= nextWord) *************** public class DefaultEditorKit extends Ed *** 542,548 **** { c.moveDot(offs); } ! } static class SelectionUpAction --- 542,548 ---- { c.moveDot(offs); } ! } static class SelectionUpAction *************** public class DefaultEditorKit extends Ed *** 614,620 **** { c.setDot(offs); } ! } static class ForwardAction --- 614,620 ---- { c.setDot(offs); } ! } static class ForwardAction *************** public class DefaultEditorKit extends Ed *** 629,635 **** { c.setDot(offs); } ! } static class BackwardAction --- 629,635 ---- { c.setDot(offs); } ! } static class BackwardAction *************** public class DefaultEditorKit extends Ed *** 644,650 **** { c.setDot(offs); } ! } static class DeletePrevCharAction --- 644,650 ---- { c.setDot(offs); } ! } static class DeletePrevCharAction *************** public class DefaultEditorKit extends Ed *** 664,670 **** { int pos = t.getSelectionStart(); int len = t.getSelectionEnd() - pos; ! if (len > 0) t.getDocument().remove(pos, len); else if (pos > 0) --- 664,670 ---- { int pos = t.getSelectionStart(); int len = t.getSelectionEnd() - pos; ! if (len > 0) t.getDocument().remove(pos, len); else if (pos > 0) *************** public class DefaultEditorKit extends Ed *** 701,712 **** { int pos = t.getSelectionStart(); int len = t.getSelectionEnd() - pos; ! if (len > 0) t.getDocument().remove(pos, len); else if (pos < t.getDocument().getLength()) t.getDocument().remove(pos, 1); ! Caret c = t.getCaret(); c.setDot(pos); c.setMagicCaretPosition(t.modelToView(pos).getLocation()); --- 701,712 ---- { int pos = t.getSelectionStart(); int len = t.getSelectionEnd() - pos; ! if (len > 0) t.getDocument().remove(pos, len); else if (pos < t.getDocument().getLength()) t.getDocument().remove(pos, 1); ! Caret c = t.getCaret(); c.setDot(pos); c.setMagicCaretPosition(t.modelToView(pos).getLocation()); *************** public class DefaultEditorKit extends Ed *** 783,789 **** static class BeginAction extends TextAction { ! BeginAction() { super(beginAction); --- 783,789 ---- static class BeginAction extends TextAction { ! BeginAction() { super(beginAction); *************** public class DefaultEditorKit extends Ed *** 810,816 **** static class EndAction extends TextAction { ! EndAction() { super(endAction); --- 810,816 ---- static class EndAction extends TextAction { ! EndAction() { super(endAction); *************** public class DefaultEditorKit extends Ed *** 825,831 **** Caret c = t.getCaret(); c.setDot(offs); try ! { c.setMagicCaretPosition(t.modelToView(offs).getLocation()); } catch(BadLocationException ble) --- 825,831 ---- Caret c = t.getCaret(); c.setDot(offs); try ! { c.setMagicCaretPosition(t.modelToView(offs).getLocation()); } catch(BadLocationException ble) *************** public class DefaultEditorKit extends Ed *** 835,841 **** } } } ! /** * Creates a beep on the PC speaker. * --- 835,841 ---- } } } ! /** * Creates a beep on the PC speaker. * *************** public class DefaultEditorKit extends Ed *** 962,973 **** * event is received and no keymap entry exists for that. The purpose * of this action is to filter out a couple of characters. This includes * the control characters and characters with the ALT-modifier. ! * * If an event does not get filtered, it is inserted into the document * of the text component. If there is some text selected in the text * component, this text will be replaced. */ ! public static class DefaultKeyTypedAction extends TextAction { --- 962,973 ---- * event is received and no keymap entry exists for that. The purpose * of this action is to filter out a couple of characters. This includes * the control characters and characters with the ALT-modifier. ! * * If an event does not get filtered, it is inserted into the document * of the text component. If there is some text selected in the text * component, this text will be replaced. */ ! public static class DefaultKeyTypedAction extends TextAction { *************** public class DefaultEditorKit extends Ed *** 1008,1014 **** } } } ! } } /** --- 1008,1014 ---- } } } ! } } /** *************** public class DefaultEditorKit extends Ed *** 1481,1489 **** * The Actions that are supported by the * DefaultEditorKit. */ ! private static Action[] defaultActions = new Action[] { ! // These classes are public because they are so in the RI. new BeepAction(), new CopyAction(), new CutAction(), --- 1481,1489 ---- * The Actions that are supported by the * DefaultEditorKit. */ ! private static Action[] defaultActions = new Action[] { ! // These classes are public because they are so in the RI. new BeepAction(), new CopyAction(), new CutAction(), *************** public class DefaultEditorKit extends Ed *** 1492,1520 **** new InsertContentAction(), new InsertTabAction(), new PasteAction(), ! // These are (package-)private inner classes. new DeleteNextCharAction(), new DeletePrevCharAction(), new BeginLineAction(), new SelectionBeginLineAction(), ! new EndLineAction(), new SelectionEndLineAction(), ! new BackwardAction(), new SelectionBackwardAction(), new ForwardAction(), new SelectionForwardAction(), ! new UpAction(), new SelectionUpAction(), new DownAction(), new SelectionDownAction(), ! new NextWordAction(), new SelectionNextWordAction(), --- 1492,1520 ---- new InsertContentAction(), new InsertTabAction(), new PasteAction(), ! // These are (package-)private inner classes. new DeleteNextCharAction(), new DeletePrevCharAction(), new BeginLineAction(), new SelectionBeginLineAction(), ! new EndLineAction(), new SelectionEndLineAction(), ! new BackwardAction(), new SelectionBackwardAction(), new ForwardAction(), new SelectionForwardAction(), ! new UpAction(), new SelectionUpAction(), new DownAction(), new SelectionDownAction(), ! new NextWordAction(), new SelectionNextWordAction(), *************** public class DefaultEditorKit extends Ed *** 1523,1538 **** new BeginAction(), new SelectionBeginAction(), ! new EndAction(), new SelectionEndAction(), ! new BeginWordAction(), new SelectionBeginWordAction(), ! new EndWordAction(), new SelectionEndWordAction(), ! new SelectAllAction(), new SelectLineAction(), new SelectWordAction() --- 1523,1538 ---- new BeginAction(), new SelectionBeginAction(), ! new EndAction(), new SelectionEndAction(), ! new BeginWordAction(), new SelectionBeginWordAction(), ! new EndWordAction(), new SelectionEndWordAction(), ! new SelectAllAction(), new SelectLineAction(), new SelectWordAction() *************** public class DefaultEditorKit extends Ed *** 1640,1651 **** while ((line = reader.readLine()) != null) { ! content.append(line); ! content.append("\n"); } ! document.insertString(offset, content.substring(0, content.length() - 1), ! SimpleAttributeSet.EMPTY); } /** --- 1640,1651 ---- while ((line = reader.readLine()) != null) { ! content.append(line); ! content.append("\n"); } ! document.insertString(offset, content.substring(0, content.length() - 1), ! SimpleAttributeSet.EMPTY); } /** *************** public class DefaultEditorKit extends Ed *** 1680,1686 **** * @param offset the beginning offset from where to write * @param len the length of the fragment to write * ! * @throws BadLocationException if offset is an * invalid location inside document. * @throws IOException if something goes wrong while writing to * out --- 1680,1686 ---- * @param offset the beginning offset from where to write * @param len the length of the fragment to write * ! * @throws BadLocationException if offset is an * invalid location inside document. * @throws IOException if something goes wrong while writing to * out diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultFormatter.java gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultFormatter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultFormatter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultFormatter.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.JFormattedTextField; *** 54,60 **** * a value, the value class must provide a single argument constructor that * takes a String object as argument value. If no such constructor is found, * the String itself is passed back by #stringToValue. ! * * @author Roman Kennke (roman@kennke.org) */ public class DefaultFormatter extends JFormattedTextField.AbstractFormatter --- 54,60 ---- * a value, the value class must provide a single argument constructor that * takes a String object as argument value. If no such constructor is found, * the String itself is passed back by #stringToValue. ! * * @author Roman Kennke (roman@kennke.org) */ public class DefaultFormatter extends JFormattedTextField.AbstractFormatter *************** public class DefaultFormatter extends JF *** 89,95 **** checkValidInput(); commitIfAllowed(); } ! /** * Invoked when text is inserted into a text component. * --- 89,95 ---- checkValidInput(); commitIfAllowed(); } ! /** * Invoked when text is inserted into a text component. * *************** public class DefaultFormatter extends JF *** 115,121 **** /** * Invoked when text is replaced in a text component. ! * * @param bypass the FilterBypass to use to mutate the document * @param offset the start position of the modification * @param length the length of the removed text --- 115,121 ---- /** * Invoked when text is replaced in a text component. ! * * @param bypass the FilterBypass to use to mutate the document * @param offset the start position of the modification * @param length the length of the removed text *************** public class DefaultFormatter extends JF *** 176,184 **** { // if that happens, something serious must be wrong AssertionError ae; ! ae = new AssertionError("values must be parseable"); ! ae.initCause(pe); ! throw ae; } } } --- 176,184 ---- { // if that happens, something serious must be wrong AssertionError ae; ! ae = new AssertionError("values must be parseable"); ! ae.initCause(pe); ! throw ae; } } } *************** public class DefaultFormatter extends JF *** 238,244 **** * one of the mentioned methods in order to customize behaviour. * * @param ftf the {@link JFormattedTextField} in which this formatter ! * is installed */ public void install(JFormattedTextField ftf) { --- 238,244 ---- * one of the mentioned methods in order to customize behaviour. * * @param ftf the {@link JFormattedTextField} in which this formatter ! * is installed */ public void install(JFormattedTextField ftf) { *************** public class DefaultFormatter extends JF *** 287,293 **** /** * Sets the value of the overwriteMode property. ! * * If that is set to true then newly inserted characters * overwrite existing values, otherwise the characters are inserted like * normal. The default is true. --- 287,293 ---- /** * Sets the value of the overwriteMode property. ! * * If that is set to true then newly inserted characters * overwrite existing values, otherwise the characters are inserted like * normal. The default is true. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultFormatterFactory.java gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultFormatterFactory.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultFormatterFactory.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultFormatterFactory.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.JFormattedTextField.A *** 45,63 **** import javax.swing.JFormattedTextField.AbstractFormatterFactory; /** ! * This class is Swing's only concrete implementation of * JFormattedTextField.AbstractFormatterFactory. It holds several ! * formatters and determines the best one to be used based on the * passed-in value from the text field. ! * * @author Anthony Balkissoon abalkiss at redhat dot com * @since 1.4 */ public class DefaultFormatterFactory extends AbstractFormatterFactory implements Serializable { ! /** ! * The default formatter. **/ AbstractFormatter defaultFormatter; --- 45,63 ---- import javax.swing.JFormattedTextField.AbstractFormatterFactory; /** ! * This class is Swing's only concrete implementation of * JFormattedTextField.AbstractFormatterFactory. It holds several ! * formatters and determines the best one to be used based on the * passed-in value from the text field. ! * * @author Anthony Balkissoon abalkiss at redhat dot com * @since 1.4 */ public class DefaultFormatterFactory extends AbstractFormatterFactory implements Serializable { ! /** ! * The default formatter. **/ AbstractFormatter defaultFormatter; *************** public class DefaultFormatterFactory ext *** 69,82 **** AbstractFormatter editFormatter; /** ! * The formatter to use when the JFormattedTextField doesn't havefocus and ! * either the value isn't null or the value is null but no * nullFormatter has been specified. */ AbstractFormatter displayFormatter; /** ! * The formatter to use when the value of the JFormattedTextField is null. */ AbstractFormatter nullFormatter; --- 69,82 ---- AbstractFormatter editFormatter; /** ! * The formatter to use when the JFormattedTextField doesn't havefocus and ! * either the value isn't null or the value is null but no * nullFormatter has been specified. */ AbstractFormatter displayFormatter; /** ! * The formatter to use when the value of the JFormattedTextField is null. */ AbstractFormatter nullFormatter; *************** public class DefaultFormatterFactory ext *** 102,108 **** * Creates a new DefaultFormatterFactory with the specified formatters. * @param defaultFormat the formatter to use if no other appropriate non-null * formatted can be found. ! * @param displayFormat the formatter to use if the JFormattedTextField * doesn't have focus and either the value is not null or the value is null * but no nullFormatter has been specified. */ --- 102,108 ---- * Creates a new DefaultFormatterFactory with the specified formatters. * @param defaultFormat the formatter to use if no other appropriate non-null * formatted can be found. ! * @param displayFormat the formatter to use if the JFormattedTextField * doesn't have focus and either the value is not null or the value is null * but no nullFormatter has been specified. */ *************** public class DefaultFormatterFactory ext *** 117,123 **** * Creates a new DefaultFormatterFactory with the specified formatters. * @param defaultFormat the formatter to use if no other appropriate non-null * formatted can be found. ! * @param displayFormat the formatter to use if the JFormattedTextField * doesn't have focus and either the value is not null or the value is null * but no nullFormatter has been specified. * @param editFormat the formatter to use if the JFormattedTextField has --- 117,123 ---- * Creates a new DefaultFormatterFactory with the specified formatters. * @param defaultFormat the formatter to use if no other appropriate non-null * formatted can be found. ! * @param displayFormat the formatter to use if the JFormattedTextField * doesn't have focus and either the value is not null or the value is null * but no nullFormatter has been specified. * @param editFormat the formatter to use if the JFormattedTextField has *************** public class DefaultFormatterFactory ext *** 137,149 **** * Creates a new DefaultFormatterFactory with the specified formatters. * @param defaultFormat the formatter to use if no other appropriate non-null * formatted can be found. ! * @param displayFormat the formatter to use if the JFormattedTextField * doesn't have focus and either the value is not null or the value is null * but no nullFormatter has been specified. * @param editFormat the formatter to use if the JFormattedTextField has * focus and either the value is not null or the value is null but not * nullFormatter has been specified. ! * @param nullFormat the formatter to use when the value of the * JFormattedTextField is null. */ public DefaultFormatterFactory(AbstractFormatter defaultFormat, --- 137,149 ---- * Creates a new DefaultFormatterFactory with the specified formatters. * @param defaultFormat the formatter to use if no other appropriate non-null * formatted can be found. ! * @param displayFormat the formatter to use if the JFormattedTextField * doesn't have focus and either the value is not null or the value is null * but no nullFormatter has been specified. * @param editFormat the formatter to use if the JFormattedTextField has * focus and either the value is not null or the value is null but not * nullFormatter has been specified. ! * @param nullFormat the formatter to use when the value of the * JFormattedTextField is null. */ public DefaultFormatterFactory(AbstractFormatter defaultFormat, *************** public class DefaultFormatterFactory ext *** 158,166 **** } /** ! * Returns the formatted to be used if no other appropriate non-null * formatter can be found. ! * @return the formatted to be used if no other appropriate non-null * formatter can be found. */ public AbstractFormatter getDefaultFormatter() --- 158,166 ---- } /** ! * Returns the formatted to be used if no other appropriate non-null * formatter can be found. ! * @return the formatted to be used if no other appropriate non-null * formatter can be found. */ public AbstractFormatter getDefaultFormatter() *************** public class DefaultFormatterFactory ext *** 169,175 **** } /** ! * Sets the formatted to be used if no other appropriate non-null formatter * can be found. * @param defaultFormatter the formatted to be used if no other appropriate * non-null formatter can be found. --- 169,175 ---- } /** ! * Sets the formatted to be used if no other appropriate non-null formatter * can be found. * @param defaultFormatter the formatted to be used if no other appropriate * non-null formatter can be found. *************** public class DefaultFormatterFactory ext *** 180,192 **** } /** ! * Gets the displayFormatter. This is the formatter to use if ! * the JFormattedTextField is not being edited and either the value is not ! * null or the value is null and no nullFormatter has been * specified. ! * @return the formatter to use if ! * the JFormattedTextField is not being edited and either the value is not ! * null or the value is null and no nullFormatter has been * specified. */ public AbstractFormatter getDisplayFormatter() --- 180,192 ---- } /** ! * Gets the displayFormatter. This is the formatter to use if ! * the JFormattedTextField is not being edited and either the value is not ! * null or the value is null and no nullFormatter has been * specified. ! * @return the formatter to use if ! * the JFormattedTextField is not being edited and either the value is not ! * null or the value is null and no nullFormatter has been * specified. */ public AbstractFormatter getDisplayFormatter() *************** public class DefaultFormatterFactory ext *** 195,203 **** } /** ! * Sets the displayFormatter. This is the formatter to use if ! * the JFormattedTextField is not being edited and either the value is not ! * null or the value is null and no nullFormatter has been * specified. * @param displayFormatter the formatter to use. */ --- 195,203 ---- } /** ! * Sets the displayFormatter. This is the formatter to use if ! * the JFormattedTextField is not being edited and either the value is not ! * null or the value is null and no nullFormatter has been * specified. * @param displayFormatter the formatter to use. */ *************** public class DefaultFormatterFactory ext *** 208,217 **** /** * Gets the editFormatter. This is the formatter to use if the ! * JFormattedTextField is being edited and either the value is not null or * the value is null and no nullFormatter has been specified. * @return the formatter to use if the JFormattedTextField is being edited ! * and the value is not null or the value is null but no nullFormatted has * been specified. */ public AbstractFormatter getEditFormatter() --- 208,217 ---- /** * Gets the editFormatter. This is the formatter to use if the ! * JFormattedTextField is being edited and either the value is not null or * the value is null and no nullFormatter has been specified. * @return the formatter to use if the JFormattedTextField is being edited ! * and the value is not null or the value is null but no nullFormatted has * been specified. */ public AbstractFormatter getEditFormatter() *************** public class DefaultFormatterFactory ext *** 221,227 **** /** * Sets the editFormatter. This is the formatter to use if the ! * JFormattedTextField is being edited and either the value is not null or * the value is null and no nullFormatter has been specified. * @param editFormatter the formatter to use. */ --- 221,227 ---- /** * Sets the editFormatter. This is the formatter to use if the ! * JFormattedTextField is being edited and either the value is not null or * the value is null and no nullFormatter has been specified. * @param editFormatter the formatter to use. */ *************** public class DefaultFormatterFactory ext *** 250,260 **** } /** ! * Returns the appropriate formatter based on the state of * tf. If tf is null we return null, otherwise * we return one of the following: ! * 1. Returns nullFormatter if tf.getValue() is ! * null and nullFormatter is not. * 2. Returns editFormatter if tf.hasFocus() is * true and editFormatter is not null. * 3. Returns displayFormatter if tf.hasFocus() is --- 250,260 ---- } /** ! * Returns the appropriate formatter based on the state of * tf. If tf is null we return null, otherwise * we return one of the following: ! * 1. Returns nullFormatter if tf.getValue() is ! * null and nullFormatter is not. * 2. Returns editFormatter if tf.hasFocus() is * true and editFormatter is not null. * 3. Returns displayFormatter if tf.hasFocus() is *************** public class DefaultFormatterFactory ext *** 265,271 **** { if (tf == null) return null; ! if (tf.getValue() == null && nullFormatter != null) return nullFormatter; --- 265,271 ---- { if (tf == null) return null; ! if (tf.getValue() == null && nullFormatter != null) return nullFormatter; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultHighlighter.java gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultHighlighter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultHighlighter.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultHighlighter.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.plaf.TextUI; *** 51,57 **** /** * The default highlight for Swing text components. It highlights text ! * by filling the background with a rectangle. */ public class DefaultHighlighter extends LayeredHighlighter { --- 51,57 ---- /** * The default highlight for Swing text components. It highlights text ! * by filling the background with a rectangle. */ public class DefaultHighlighter extends LayeredHighlighter { *************** public class DefaultHighlighter extends *** 59,65 **** extends LayerPainter { private Color color; ! public DefaultHighlightPainter(Color c) { super(); --- 59,65 ---- extends LayerPainter { private Color color; ! public DefaultHighlightPainter(Color c) { super(); *************** public class DefaultHighlighter extends *** 72,82 **** } public void paint(Graphics g, int p0, int p1, Shape bounds, ! JTextComponent t) { if (p0 == p1) return; ! Rectangle rect = bounds.getBounds(); Color col = getColor(); --- 72,82 ---- } public void paint(Graphics g, int p0, int p1, Shape bounds, ! JTextComponent t) { if (p0 == p1) return; ! Rectangle rect = bounds.getBounds(); Color col = getColor(); *************** public class DefaultHighlighter extends *** 85,97 **** g.setColor(col); TextUI ui = t.getUI(); ! try { Rectangle l0 = ui.modelToView(t, p0, null); Rectangle l1 = ui.modelToView(t, p1, null); ! // Note: The computed locations may lie outside of the allocation // area if the text is scrolled. --- 85,97 ---- g.setColor(col); TextUI ui = t.getUI(); ! try { Rectangle l0 = ui.modelToView(t, p0, null); Rectangle l1 = ui.modelToView(t, p1, null); ! // Note: The computed locations may lie outside of the allocation // area if the text is scrolled. *************** public class DefaultHighlighter extends *** 101,108 **** // Paint only inside the allocation area. SwingUtilities.computeIntersection(rect.x, rect.y, rect.width, ! rect.height, l1); ! g.fillRect(l1.x, l1.y, l1.width, l1.height); } else --- 101,108 ---- // Paint only inside the allocation area. SwingUtilities.computeIntersection(rect.x, rect.y, rect.width, ! rect.height, l1); ! g.fillRect(l1.x, l1.y, l1.width, l1.height); } else *************** public class DefaultHighlighter extends *** 115,176 **** // 3. The final line is painted from the left border to the // position of p1. ! int firstLineWidth = rect.x + rect.width - l0.x; ! g.fillRect(l0.x, l0.y, firstLineWidth, l0.height); ! if (l0.y + l0.height != l1.y) ! { ! g.fillRect(rect.x, l0.y + l0.height, rect.width, ! l1.y - l0.y - l0.height); ! } ! g.fillRect(rect.x, l1.y, l1.x - rect.x, l1.height); ! } } catch (BadLocationException ex) { ! // Can't render. Comment out for debugging. ! // ex.printStackTrace(); } } public Shape paintLayer(Graphics g, int p0, int p1, Shape bounds, ! JTextComponent c, View view) { Color col = getColor(); if (col == null) ! col = c.getSelectionColor(); g.setColor(col); Rectangle rect = null; if (p0 == view.getStartOffset() && p1 == view.getEndOffset()) ! { ! // Paint complete bounds region. rect = bounds instanceof Rectangle ? (Rectangle) bounds ! : bounds.getBounds(); ! } else ! { ! // Only partly inside the view. try ! { Shape s = view.modelToView(p0, Position.Bias.Forward, ! p1, Position.Bias.Backward, ! bounds); ! rect = s instanceof Rectangle ? (Rectangle) s : s.getBounds(); ! } ! catch (BadLocationException ex) ! { ! // Can't render the highlight. ! } ! } if (rect != null) ! { g.fillRect(rect.x, rect.y, rect.width, rect.height); ! } return rect; } } ! private class HighlightEntry implements Highlighter.Highlight { Position p0; --- 115,176 ---- // 3. The final line is painted from the left border to the // position of p1. ! int firstLineWidth = rect.x + rect.width - l0.x; ! g.fillRect(l0.x, l0.y, firstLineWidth, l0.height); ! if (l0.y + l0.height != l1.y) ! { ! g.fillRect(rect.x, l0.y + l0.height, rect.width, ! l1.y - l0.y - l0.height); ! } ! g.fillRect(rect.x, l1.y, l1.x - rect.x, l1.height); ! } } catch (BadLocationException ex) { ! // Can't render. Comment out for debugging. ! // ex.printStackTrace(); } } public Shape paintLayer(Graphics g, int p0, int p1, Shape bounds, ! JTextComponent c, View view) { Color col = getColor(); if (col == null) ! col = c.getSelectionColor(); g.setColor(col); Rectangle rect = null; if (p0 == view.getStartOffset() && p1 == view.getEndOffset()) ! { ! // Paint complete bounds region. rect = bounds instanceof Rectangle ? (Rectangle) bounds ! : bounds.getBounds(); ! } else ! { ! // Only partly inside the view. try ! { Shape s = view.modelToView(p0, Position.Bias.Forward, ! p1, Position.Bias.Backward, ! bounds); ! rect = s instanceof Rectangle ? (Rectangle) s : s.getBounds(); ! } ! catch (BadLocationException ex) ! { ! // Can't render the highlight. ! } ! } if (rect != null) ! { g.fillRect(rect.x, rect.y, rect.width, rect.height); ! } return rect; } } ! private class HighlightEntry implements Highlighter.Highlight { Position p0; *************** public class DefaultHighlighter extends *** 228,255 **** * and manages the paint rectangle. */ void paintLayeredHighlight(Graphics g, int p0, int p1, Shape bounds, ! JTextComponent tc, View view) { p0 = Math.max(getStartOffset(), p0); p1 = Math.min(getEndOffset(), p1); Highlighter.HighlightPainter painter = getPainter(); if (painter instanceof LayerPainter) ! { ! LayerPainter layerPainter = (LayerPainter) painter; ! Shape area = layerPainter.paintLayer(g, p0, p1, bounds, tc, view); ! Rectangle rect; ! if (area instanceof Rectangle && paintRect != null) ! rect = (Rectangle) area; ! else ! rect = area.getBounds(); ! if (paintRect.width == 0 || paintRect.height == 0) ! paintRect = rect.getBounds(); ! else ! paintRect = SwingUtilities.computeUnion(rect.x, rect.y, rect.width, ! rect.height, paintRect); ! } } } --- 228,255 ---- * and manages the paint rectangle. */ void paintLayeredHighlight(Graphics g, int p0, int p1, Shape bounds, ! JTextComponent tc, View view) { p0 = Math.max(getStartOffset(), p0); p1 = Math.min(getEndOffset(), p1); Highlighter.HighlightPainter painter = getPainter(); if (painter instanceof LayerPainter) ! { ! LayerPainter layerPainter = (LayerPainter) painter; ! Shape area = layerPainter.paintLayer(g, p0, p1, bounds, tc, view); ! Rectangle rect; ! if (area instanceof Rectangle && paintRect != null) ! rect = (Rectangle) area; ! else ! rect = area.getBounds(); ! if (paintRect.width == 0 || paintRect.height == 0) ! paintRect = rect.getBounds(); ! else ! paintRect = SwingUtilities.computeUnion(rect.x, rect.y, rect.width, ! rect.height, paintRect); ! } } } *************** public class DefaultHighlighter extends *** 258,268 **** */ public static final LayeredHighlighter.LayerPainter DefaultPainter = new DefaultHighlightPainter(null); ! private JTextComponent textComponent; private ArrayList highlights = new ArrayList(); private boolean drawsLayeredHighlights = true; ! public DefaultHighlighter() { // Nothing to do here. --- 258,268 ---- */ public static final LayeredHighlighter.LayerPainter DefaultPainter = new DefaultHighlightPainter(null); ! private JTextComponent textComponent; private ArrayList highlights = new ArrayList(); private boolean drawsLayeredHighlights = true; ! public DefaultHighlighter() { // Nothing to do here. *************** public class DefaultHighlighter extends *** 277,289 **** { drawsLayeredHighlights = newValue; } ! private void checkPositions(int p0, int p1) throws BadLocationException { if (p0 < 0) throw new BadLocationException("DefaultHighlighter", p0); ! if (p1 < p0) throw new BadLocationException("DefaultHighlighter", p1); } --- 277,289 ---- { drawsLayeredHighlights = newValue; } ! private void checkPositions(int p0, int p1) throws BadLocationException { if (p0 < 0) throw new BadLocationException("DefaultHighlighter", p0); ! if (p1 < p0) throw new BadLocationException("DefaultHighlighter", p1); } *************** public class DefaultHighlighter extends *** 313,321 **** else entry = new HighlightEntry(pos0, pos1, painter); highlights.add(entry); ! textComponent.getUI().damageRange(textComponent, p0, p1); ! return entry; } --- 313,321 ---- else entry = new HighlightEntry(pos0, pos1, painter); highlights.add(entry); ! textComponent.getUI().damageRange(textComponent, p0, p1); ! return entry; } *************** public class DefaultHighlighter extends *** 324,339 **** HighlightEntry entry = (HighlightEntry) tag; if (entry instanceof LayerHighlightEntry) { ! LayerHighlightEntry lEntry = (LayerHighlightEntry) entry; ! Rectangle paintRect = lEntry.paintRect; ! textComponent.repaint(paintRect.x, paintRect.y, paintRect.width, ! paintRect.height); } else { ! textComponent.getUI().damageRange(textComponent, ! entry.getStartOffset(), ! entry.getEndOffset()); } highlights.remove(tag); --- 324,339 ---- HighlightEntry entry = (HighlightEntry) tag; if (entry instanceof LayerHighlightEntry) { ! LayerHighlightEntry lEntry = (LayerHighlightEntry) entry; ! Rectangle paintRect = lEntry.paintRect; ! textComponent.repaint(paintRect.x, paintRect.y, paintRect.width, ! paintRect.height); } else { ! textComponent.getUI().damageRange(textComponent, ! entry.getStartOffset(), ! entry.getEndOffset()); } highlights.remove(tag); *************** public class DefaultHighlighter extends *** 380,393 **** TextUI ui = textComponent.getUI(); ui.damageRange(textComponent, p0, p1); } ! } highlights.clear(); } public Highlighter.Highlight[] getHighlights() { ! return (Highlighter.Highlight[]) highlights.toArray(new Highlighter.Highlight[highlights.size()]); } --- 380,393 ---- TextUI ui = textComponent.getUI(); ui.damageRange(textComponent, p0, p1); } ! } highlights.clear(); } public Highlighter.Highlight[] getHighlights() { ! return (Highlighter.Highlight[]) highlights.toArray(new Highlighter.Highlight[highlights.size()]); } *************** public class DefaultHighlighter extends *** 439,460 **** { for (Iterator i = highlights.iterator(); i.hasNext();) { ! Object o = i.next(); ! if (o instanceof LayerHighlightEntry) ! { ! LayerHighlightEntry entry = (LayerHighlightEntry) o; ! int start = entry.getStartOffset(); ! int end = entry.getEndOffset(); ! if ((p0 < start && p1 > start) || (p0 >= start && p0 < end)) ! entry.paintLayeredHighlight(g, p0, p1, viewBounds, editor, view); ! } } } public void paint(Graphics g) { int size = highlights.size(); ! // Check if there are any highlights. if (size == 0) return; --- 439,460 ---- { for (Iterator i = highlights.iterator(); i.hasNext();) { ! Object o = i.next(); ! if (o instanceof LayerHighlightEntry) ! { ! LayerHighlightEntry entry = (LayerHighlightEntry) o; ! int start = entry.getStartOffset(); ! int end = entry.getEndOffset(); ! if ((p0 < start && p1 > start) || (p0 >= start && p0 < end)) ! entry.paintLayeredHighlight(g, p0, p1, viewBounds, editor, view); ! } } } public void paint(Graphics g) { int size = highlights.size(); ! // Check if there are any highlights. if (size == 0) return; *************** public class DefaultHighlighter extends *** 466,476 **** insets.top, textComponent.getWidth() - insets.left - insets.right, textComponent.getHeight() - insets.top - insets.bottom); ! for (int index = 0; index < size; ++index) { ! HighlightEntry entry = (HighlightEntry) highlights.get(index); ! if (! (entry instanceof LayerHighlightEntry)) entry.painter.paint(g, entry.getStartOffset(), entry.getEndOffset(), bounds, textComponent); } --- 466,476 ---- insets.top, textComponent.getWidth() - insets.left - insets.right, textComponent.getHeight() - insets.top - insets.bottom); ! for (int index = 0; index < size; ++index) { ! HighlightEntry entry = (HighlightEntry) highlights.get(index); ! if (! (entry instanceof LayerHighlightEntry)) entry.painter.paint(g, entry.getStartOffset(), entry.getEndOffset(), bounds, textComponent); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultStyledDocument.java gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultStyledDocument.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/DefaultStyledDocument.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/DefaultStyledDocument.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.undo.UndoableEdit; *** 62,68 **** * single root, which has one or more {@link AbstractDocument.BranchElement}s * as paragraph nodes and each paragraph node having one or more * {@link AbstractDocument.LeafElement}s as content nodes. ! * * @author Michael Koch (konqueror@gmx.de) * @author Roman Kennke (roman@kennke.org) */ --- 62,68 ---- * single root, which has one or more {@link AbstractDocument.BranchElement}s * as paragraph nodes and each paragraph node having one or more * {@link AbstractDocument.LeafElement}s as content nodes. ! * * @author Michael Koch (konqueror@gmx.de) * @author Roman Kennke (roman@kennke.org) */ *************** public class DefaultStyledDocument exten *** 72,78 **** /** * An {@link UndoableEdit} that can undo attribute changes to an element. ! * * @author Roman Kennke (kennke@aicas.com) */ public static class AttributeUndoableEdit extends AbstractUndoableEdit --- 72,78 ---- /** * An {@link UndoableEdit} that can undo attribute changes to an element. ! * * @author Roman Kennke (kennke@aicas.com) */ public static class AttributeUndoableEdit extends AbstractUndoableEdit *************** public class DefaultStyledDocument exten *** 100,106 **** /** * Creates a new AttributeUndoableEdit. ! * * @param el * the element that changes attributes * @param newAtts --- 100,106 ---- /** * Creates a new AttributeUndoableEdit. ! * * @param el * the element that changes attributes * @param newAtts *************** public class DefaultStyledDocument exten *** 233,239 **** /** * Creates a new ElementSpec with no content, length or * offset. This is most useful for start and end tags. ! * * @param a * the attributes for the element to be created * @param type --- 233,239 ---- /** * Creates a new ElementSpec with no content, length or * offset. This is most useful for start and end tags. ! * * @param a * the attributes for the element to be created * @param type *************** public class DefaultStyledDocument exten *** 248,254 **** * Creates a new ElementSpec that specifies the length but * not the offset of an element. Such ElementSpecs are * processed sequentially from a known starting point. ! * * @param a * the attributes for the element to be created * @param type --- 248,254 ---- * Creates a new ElementSpec that specifies the length but * not the offset of an element. Such ElementSpecs are * processed sequentially from a known starting point. ! * * @param a * the attributes for the element to be created * @param type *************** public class DefaultStyledDocument exten *** 263,269 **** /** * Creates a new ElementSpec with document content. ! * * @param a * the attributes for the element to be created * @param type --- 263,269 ---- /** * Creates a new ElementSpec with document content. ! * * @param a * the attributes for the element to be created * @param type *************** public class DefaultStyledDocument exten *** 287,293 **** /** * Sets the type of the element. ! * * @param type * the type of the element to be set */ --- 287,293 ---- /** * Sets the type of the element. ! * * @param type * the type of the element to be set */ *************** public class DefaultStyledDocument exten *** 298,304 **** /** * Returns the type of the element. ! * * @return the type of the element */ public short getType() --- 298,304 ---- /** * Returns the type of the element. ! * * @return the type of the element */ public short getType() *************** public class DefaultStyledDocument exten *** 308,314 **** /** * Sets the direction of the element. ! * * @param dir * the direction of the element to be set */ --- 308,314 ---- /** * Sets the direction of the element. ! * * @param dir * the direction of the element to be set */ *************** public class DefaultStyledDocument exten *** 319,325 **** /** * Returns the direction of the element. ! * * @return the direction of the element */ public short getDirection() --- 319,325 ---- /** * Returns the direction of the element. ! * * @return the direction of the element */ public short getDirection() *************** public class DefaultStyledDocument exten *** 329,335 **** /** * Returns the attributes of the element. ! * * @return the attributes of the element */ public AttributeSet getAttributes() --- 329,335 ---- /** * Returns the attributes of the element. ! * * @return the attributes of the element */ public AttributeSet getAttributes() *************** public class DefaultStyledDocument exten *** 339,345 **** /** * Returns the actual content of the element. ! * * @return the actual content of the element */ public char[] getArray() --- 339,345 ---- /** * Returns the actual content of the element. ! * * @return the actual content of the element */ public char[] getArray() *************** public class DefaultStyledDocument exten *** 349,355 **** /** * Returns the offset of the content. ! * * @return the offset of the content */ public int getOffset() --- 349,355 ---- /** * Returns the offset of the content. ! * * @return the offset of the content */ public int getOffset() *************** public class DefaultStyledDocument exten *** 359,365 **** /** * Returns the length of the content. ! * * @return the length of the content */ public int getLength() --- 359,365 ---- /** * Returns the length of the content. ! * * @return the length of the content */ public int getLength() *************** public class DefaultStyledDocument exten *** 371,377 **** * Returns a String representation of this ElementSpec * describing the type, direction and length of this * ElementSpec. ! * * @return a String representation of this ElementSpec */ public String toString() --- 371,377 ---- * Returns a String representation of this ElementSpec * describing the type, direction and length of this * ElementSpec. ! * * @return a String representation of this ElementSpec */ public String toString() *************** public class DefaultStyledDocument exten *** 534,540 **** /** * Creates a new ElementBuffer for the specified * root element. ! * * @param root * the root element for this ElementBuffer */ --- 534,540 ---- /** * Creates a new ElementBuffer for the specified * root element. ! * * @param root * the root element for this ElementBuffer */ *************** public class DefaultStyledDocument exten *** 545,551 **** /** * Returns the root element of this ElementBuffer. ! * * @return the root element of this ElementBuffer */ public Element getRootElement() --- 545,551 ---- /** * Returns the root element of this ElementBuffer. ! * * @return the root element of this ElementBuffer */ public Element getRootElement() *************** public class DefaultStyledDocument exten *** 556,562 **** /** * Removes the content. This method sets some internal parameters and * delegates the work to {@link #removeUpdate}. ! * * @param offs * the offset from which content is remove * @param len --- 556,562 ---- /** * Removes the content. This method sets some internal parameters and * delegates the work to {@link #removeUpdate}. ! * * @param offs * the offset from which content is remove * @param len *************** public class DefaultStyledDocument exten *** 583,589 **** private boolean removeElements(Element elem, int rmOffs0, int rmOffs1) { ! boolean ret = false; if (! elem.isLeaf()) { // Update stack for changes. --- 583,589 ---- private boolean removeElements(Element elem, int rmOffs0, int rmOffs1) { ! boolean ret = false; if (! elem.isLeaf()) { // Update stack for changes. *************** public class DefaultStyledDocument exten *** 874,880 **** * created as necessary. This also updates the * DefaultDocumentEvent to reflect the structural changes. * The bulk work is delegated to {@link #changeUpdate()}. ! * * @param offset * the start index of the interval to be changed * @param length --- 874,880 ---- * created as necessary. This also updates the * DefaultDocumentEvent to reflect the structural changes. * The bulk work is delegated to {@link #changeUpdate()}. ! * * @param offset * the start index of the interval to be changed * @param length *************** public class DefaultStyledDocument exten *** 967,973 **** * Inserts new Element in the document at the specified * position. Most of the work is done by {@link #insertUpdate}, after some * fields have been prepared for it. ! * * @param offset * the location in the document at which the content is inserted * @param length --- 967,973 ---- * Inserts new Element in the document at the specified * position. Most of the work is done by {@link #insertUpdate}, after some * fields have been prepared for it. ! * * @param offset * the location in the document at which the content is inserted * @param length *************** public class DefaultStyledDocument exten *** 982,992 **** DefaultDocumentEvent ev) { if (length > 0) ! { ! prepareEdit(offset, length); ! insertUpdate(data); ! finishEdit(ev); ! } } /** --- 982,992 ---- DefaultDocumentEvent ev) { if (length > 0) ! { ! prepareEdit(offset, length); ! insertUpdate(data); ! finishEdit(ev); ! } } /** *************** public class DefaultStyledDocument exten *** 1003,1016 **** this.length = length; if (edits == null) ! edits = new ArrayList(); else ! edits.clear(); if (elementStack == null) ! elementStack = new Stack(); else ! elementStack.clear(); fracturedParent = null; fracturedChild = null; --- 1003,1016 ---- this.length = length; if (edits == null) ! edits = new ArrayList(); else ! edits.clear(); if (elementStack == null) ! elementStack = new Stack(); else ! elementStack.clear(); fracturedParent = null; fracturedChild = null; *************** public class DefaultStyledDocument exten *** 1029,1035 **** // This for loop applies all the changes that were made and updates the // DocumentEvent. for (Iterator i = edits.iterator(); i.hasNext();) ! { Edit edits = (Edit) i.next(); Element[] removed = new Element[edits.removed.size()]; removed = (Element[]) edits.removed.toArray(removed); --- 1029,1035 ---- // This for loop applies all the changes that were made and updates the // DocumentEvent. for (Iterator i = edits.iterator(); i.hasNext();) ! { Edit edits = (Edit) i.next(); Element[] removed = new Element[edits.removed.size()]; removed = (Element[]) edits.removed.toArray(removed); *************** public class DefaultStyledDocument exten *** 1040,1053 **** parent.replace(index, removed.length, added); ElementEdit ee = new ElementEdit(parent, index, removed, added); ev.addEdit(ee); ! } edits.clear(); elementStack.clear(); } /** * Inserts new content. ! * * @param data the element specifications for the elements to be inserted */ protected void insertUpdate(ElementSpec[] data) --- 1040,1053 ---- parent.replace(index, removed.length, added); ElementEdit ee = new ElementEdit(parent, index, removed, added); ev.addEdit(ee); ! } edits.clear(); elementStack.clear(); } /** * Inserts new content. ! * * @param data the element specifications for the elements to be inserted */ protected void insertUpdate(ElementSpec[] data) *************** public class DefaultStyledDocument exten *** 1130,1136 **** p < data.length && data[p].getType() == ElementSpec.EndTagType; p++) ; ! Edit edit = insertPath[insertPath.length - p - 1]; edit.index--; edit.removed.add(0, edit.e.getElement(edit.index)); --- 1130,1136 ---- p < data.length && data[p].getType() == ElementSpec.EndTagType; p++) ; ! Edit edit = insertPath[insertPath.length - p - 1]; edit.index--; edit.removed.add(0, edit.e.getElement(edit.index)); *************** public class DefaultStyledDocument exten *** 1162,1168 **** { if (elementStack.isEmpty()) return; ! Edit edit = (Edit) elementStack.peek(); switch (spec.getType()) { --- 1162,1168 ---- { if (elementStack.isEmpty()) return; ! Edit edit = (Edit) elementStack.peek(); switch (spec.getType()) { *************** public class DefaultStyledDocument exten *** 1223,1229 **** /** * Inserts the first tag into the document. ! * * @param data - * the data to be inserted. */ --- 1223,1229 ---- /** * Inserts the first tag into the document. ! * * @param data - * the data to be inserted. */ *************** public class DefaultStyledDocument exten *** 1301,1307 **** /** * Inserts a content element into the document structure. ! * * @param tag - * the element spec */ --- 1301,1307 ---- /** * Inserts a content element into the document structure. ! * * @param tag - * the element spec */ *************** public class DefaultStyledDocument exten *** 1342,1348 **** edit.removed.add(first); } } ! else { Element leaf = createLeafElement(edit.e, tag.getAttributes(), pos, pos + len); --- 1342,1348 ---- edit.removed.add(first); } } ! else { Element leaf = createLeafElement(edit.e, tag.getAttributes(), pos, pos + len); *************** public class DefaultStyledDocument exten *** 1350,1362 **** } pos += len; ! } /** * This method fractures bottomost leaf in the elementStack. This * happens when the first inserted tag is not content. ! * * @param data * the ElementSpecs used for the entire insertion */ --- 1350,1362 ---- } pos += len; ! } /** * This method fractures bottomost leaf in the elementStack. This * happens when the first inserted tag is not content. ! * * @param data * the ElementSpecs used for the entire insertion */ *************** public class DefaultStyledDocument exten *** 1644,1655 **** ec.added.add(e); e = createLeafElement(ec.e, child.getAttributes(), pos, child.getEndOffset()); ! ec.added.add(e); } } return splitEnd; ! } } --- 1644,1655 ---- ec.added.add(e); e = createLeafElement(ec.e, child.getAttributes(), pos, child.getEndOffset()); ! ec.added.add(e); } } return splitEnd; ! } } *************** public class DefaultStyledDocument exten *** 1672,1678 **** /** * Returns the name of the element. This method always returns * "section". ! * * @return the name of the element */ public String getName() --- 1672,1678 ---- /** * Returns the name of the element. This method always returns * "section". ! * * @return the name of the element */ public String getName() *************** public class DefaultStyledDocument exten *** 1684,1690 **** /** * Receives notification when any of the document's style changes and calls * {@link DefaultStyledDocument#styleChanged(Style)}. ! * * @author Roman Kennke (kennke@aicas.com) */ private class StyleChangeListener implements ChangeListener --- 1684,1690 ---- /** * Receives notification when any of the document's style changes and calls * {@link DefaultStyledDocument#styleChanged(Style)}. ! * * @author Roman Kennke (kennke@aicas.com) */ private class StyleChangeListener implements ChangeListener *************** public class DefaultStyledDocument exten *** 1693,1699 **** /** * Receives notification when any of the document's style changes and calls * {@link DefaultStyledDocument#styleChanged(Style)}. ! * * @param event * the change event */ --- 1693,1699 ---- /** * Receives notification when any of the document's style changes and calls * {@link DefaultStyledDocument#styleChanged(Style)}. ! * * @param event * the change event */ *************** public class DefaultStyledDocument exten *** 1734,1740 **** /** * Creates a new DefaultStyledDocument that uses the specified * {@link StyleContext}. ! * * @param context * the StyleContext to use */ --- 1734,1740 ---- /** * Creates a new DefaultStyledDocument that uses the specified * {@link StyleContext}. ! * * @param context * the StyleContext to use */ *************** public class DefaultStyledDocument exten *** 1746,1752 **** /** * Creates a new DefaultStyledDocument that uses the specified * {@link StyleContext} and {@link Content} buffer. ! * * @param content * the Content buffer to use * @param context --- 1746,1752 ---- /** * Creates a new DefaultStyledDocument that uses the specified * {@link StyleContext} and {@link Content} buffer. ! * * @param content * the Content buffer to use * @param context *************** public class DefaultStyledDocument exten *** 1790,1796 **** /** * Create the default root element for this kind of Document. ! * * @return the default root element for this kind of Document */ protected AbstractDocument.AbstractElement createDefaultRoot() --- 1790,1796 ---- /** * Create the default root element for this kind of Document. ! * * @return the default root element for this kind of Document */ protected AbstractDocument.AbstractElement createDefaultRoot() *************** public class DefaultStyledDocument exten *** 1814,1820 **** /** * Returns the Element that corresponds to the character at the * specified position. ! * * @param position * the position of which we query the corresponding * Element --- 1814,1820 ---- /** * Returns the Element that corresponds to the character at the * specified position. ! * * @param position * the position of which we query the corresponding * Element *************** public class DefaultStyledDocument exten *** 1836,1842 **** /** * Extracts a background color from a set of attributes. ! * * @param attributes * the attributes from which to get a background color * @return the background color that correspond to the attributes --- 1836,1842 ---- /** * Extracts a background color from a set of attributes. ! * * @param attributes * the attributes from which to get a background color * @return the background color that correspond to the attributes *************** public class DefaultStyledDocument exten *** 1849,1855 **** /** * Returns the default root element. ! * * @return the default root element */ public Element getDefaultRootElement() --- 1849,1855 ---- /** * Returns the default root element. ! * * @return the default root element */ public Element getDefaultRootElement() *************** public class DefaultStyledDocument exten *** 1859,1865 **** /** * Extracts a font from a set of attributes. ! * * @param attributes * the attributes from which to get a font * @return the font that correspond to the attributes --- 1859,1865 ---- /** * Extracts a font from a set of attributes. ! * * @param attributes * the attributes from which to get a font * @return the font that correspond to the attributes *************** public class DefaultStyledDocument exten *** 1872,1878 **** /** * Extracts a foreground color from a set of attributes. ! * * @param attributes * the attributes from which to get a foreground color * @return the foreground color that correspond to the attributes --- 1872,1878 ---- /** * Extracts a foreground color from a set of attributes. ! * * @param attributes * the attributes from which to get a foreground color * @return the foreground color that correspond to the attributes *************** public class DefaultStyledDocument exten *** 1885,1891 **** /** * Returns the logical Style for the specified position. ! * * @param position * the position from which to query to logical style * @return the logical Style for the specified position --- 1885,1891 ---- /** * Returns the logical Style for the specified position. ! * * @param position * the position from which to query to logical style * @return the logical Style for the specified position *************** public class DefaultStyledDocument exten *** 1907,1913 **** * element is returned. That is the last paragraph if * position >= endIndex or the first paragraph if * position < startIndex. ! * * @param position * the position for which to query the paragraph element * @return the paragraph element for the specified position --- 1907,1913 ---- * element is returned. That is the last paragraph if * position >= endIndex or the first paragraph if * position < startIndex. ! * * @param position * the position for which to query the paragraph element * @return the paragraph element for the specified position *************** public class DefaultStyledDocument exten *** 1925,1931 **** /** * Looks up and returns a named Style. ! * * @param nm * the name of the Style * @return the found Style of null if no such --- 1925,1931 ---- /** * Looks up and returns a named Style. ! * * @param nm * the name of the Style * @return the found Style of null if no such *************** public class DefaultStyledDocument exten *** 1939,1945 **** /** * Removes a named Style from the style hierarchy. ! * * @param nm * the name of the Style to be removed */ --- 1939,1945 ---- /** * Removes a named Style from the style hierarchy. ! * * @param nm * the name of the Style to be removed */ *************** public class DefaultStyledDocument exten *** 1952,1958 **** /** * Sets text attributes for the fragment specified by offset * and length. ! * * @param offset * the start offset of the fragment * @param length --- 1952,1958 ---- /** * Sets text attributes for the fragment specified by offset * and length. ! * * @param offset * the start offset of the fragment * @param length *************** public class DefaultStyledDocument exten *** 2015,2021 **** /** * Sets the logical style for the paragraph at the specified position. ! * * @param position * the position at which the logical style is added * @param style --- 2015,2021 ---- /** * Sets the logical style for the paragraph at the specified position. ! * * @param position * the position at which the logical style is added * @param style *************** public class DefaultStyledDocument exten *** 2056,2062 **** /** * Sets text attributes for the paragraph at the specified fragment. ! * * @param offset * the beginning of the fragment * @param length --- 2056,2062 ---- /** * Sets text attributes for the paragraph at the specified fragment. ! * * @param offset * the beginning of the fragment * @param length *************** public class DefaultStyledDocument exten *** 2115,2121 **** /** * Called in response to content insert actions. This is used to update the * element structure. ! * * @param ev * the DocumentEvent describing the change * @param attr --- 2115,2121 ---- /** * Called in response to content insert actions. This is used to update the * element structure. ! * * @param ev * the DocumentEvent describing the change * @param attr *************** public class DefaultStyledDocument exten *** 2310,2316 **** } if (e != null) ! { // e is now the common parent. // Insert the end tags. --- 2310,2316 ---- } if (e != null) ! { // e is now the common parent. // Insert the end tags. *************** public class DefaultStyledDocument exten *** 2342,2348 **** /** * A helper method to set up the ElementSpec buffer for the special case of an * insertion occurring immediately after a newline. ! * * @param specs * the ElementSpec buffer to initialize. */ --- 2342,2348 ---- /** * A helper method to set up the ElementSpec buffer for the special case of an * insertion occurring immediately after a newline. ! * * @param specs * the ElementSpec buffer to initialize. */ *************** public class DefaultStyledDocument exten *** 2369,2375 **** * forwarded to the {@link ElementBuffer} of this document. Any changes to the * document structure are added to the specified document event and sent to * registered listeners. ! * * @param ev * the document event that records the changes to the document */ --- 2369,2375 ---- * forwarded to the {@link ElementBuffer} of this document. Any changes to the * document structure are added to the specified document event and sent to * registered listeners. ! * * @param ev * the document event that records the changes to the document */ *************** public class DefaultStyledDocument exten *** 2381,2387 **** /** * Returns an enumeration of all style names. ! * * @return an enumeration of all style names */ public Enumeration getStyleNames() --- 2381,2387 ---- /** * Returns an enumeration of all style names. ! * * @return an enumeration of all style names */ public Enumeration getStyleNames() *************** public class DefaultStyledDocument exten *** 2392,2398 **** /** * Called when any of this document's styles changes. ! * * @param style * the style that changed */ --- 2392,2398 ---- /** * Called when any of this document's styles changes. ! * * @param style * the style that changed */ *************** public class DefaultStyledDocument exten *** 2403,2409 **** /** * Inserts a bulk of structured content at once. ! * * @param offset * the offset at which the content should be inserted * @param data --- 2403,2409 ---- /** * Inserts a bulk of structured content at once. ! * * @param offset * the offset at which the content should be inserted * @param data *************** public class DefaultStyledDocument exten *** 2469,2475 **** /** * Initializes the DefaultStyledDocument with the specified * data. ! * * @param data * the specification of the content with which the document is * initialized --- 2469,2475 ---- /** * Initializes the DefaultStyledDocument with the specified * data. ! * * @param data * the specification of the content with which the document is * initialized diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/DocumentFilter.java gcc-4.6.0/libjava/classpath/javax/swing/text/DocumentFilter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/DocumentFilter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/DocumentFilter.java Tue Jan 11 19:46:05 2011 *************** public class DocumentFilter *** 48,68 **** } public abstract Document getDocument(); ! public abstract void insertString(int offset, String string, ! AttributeSet attr) throws BadLocationException; ! public abstract void remove(int offset, int length) throws BadLocationException; ! public abstract void replace(int offset, int length, String string, ! AttributeSet attrs) throws BadLocationException; } ! public void insertString(DocumentFilter.FilterBypass fb, int offset, ! String string, AttributeSet attr) throws BadLocationException { fb.insertString(offset, string, attr); --- 48,68 ---- } public abstract Document getDocument(); ! public abstract void insertString(int offset, String string, ! AttributeSet attr) throws BadLocationException; ! public abstract void remove(int offset, int length) throws BadLocationException; ! public abstract void replace(int offset, int length, String string, ! AttributeSet attrs) throws BadLocationException; } ! public void insertString(DocumentFilter.FilterBypass fb, int offset, ! String string, AttributeSet attr) throws BadLocationException { fb.insertString(offset, string, attr); *************** public class DocumentFilter *** 75,81 **** } public void replace(DocumentFilter.FilterBypass fb, int offset, int length, ! String text, AttributeSet attr) throws BadLocationException { fb.replace(offset, length, text, attr); --- 75,81 ---- } public void replace(DocumentFilter.FilterBypass fb, int offset, int length, ! String text, AttributeSet attr) throws BadLocationException { fb.replace(offset, length, text, attr); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/EditorKit.java gcc-4.6.0/libjava/classpath/javax/swing/text/EditorKit.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/EditorKit.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/EditorKit.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.JEditorPane; *** 51,57 **** public abstract class EditorKit implements Cloneable, Serializable { private static final long serialVersionUID = -5044124649345887822L; ! public EditorKit() { // Nothing to do here. --- 51,57 ---- public abstract class EditorKit implements Cloneable, Serializable { private static final long serialVersionUID = -5044124649345887822L; ! public EditorKit() { // Nothing to do here. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/Element.java gcc-4.6.0/libjava/classpath/javax/swing/text/Element.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/Element.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/Element.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Element.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Element.java -- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/ElementIterator.java gcc-4.6.0/libjava/classpath/javax/swing/text/ElementIterator.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/ElementIterator.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/ElementIterator.java Tue Jan 11 19:46:05 2011 *************** GNU Classpath is free software; you can *** 7,13 **** it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 --- 7,13 ---- it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ! GNU Classpath 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 *************** import java.util.Stack; *** 49,55 **** public class ElementIterator implements Cloneable { /** ! * Uses to track the iteration on the stack. */ private class ElementRef { --- 49,55 ---- public class ElementIterator implements Cloneable { /** ! * Uses to track the iteration on the stack. */ private class ElementRef { *************** public class ElementIterator implements *** 110,121 **** { try { ! return super.clone(); } catch (CloneNotSupportedException _) { ! // Can't happen. ! return null; } } --- 110,121 ---- { try { ! return super.clone(); } catch (CloneNotSupportedException _) { ! // Can't happen. ! return null; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/EmptyAttributeSet.java gcc-4.6.0/libjava/classpath/javax/swing/text/EmptyAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/EmptyAttributeSet.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/EmptyAttributeSet.java Tue Jan 11 19:46:05 2011 *************** final class EmptyAttributeSet *** 108,114 **** { throw new NoSuchElementException("No more elements"); } ! }; } --- 108,114 ---- { throw new NoSuchElementException("No more elements"); } ! }; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/FieldView.java gcc-4.6.0/libjava/classpath/javax/swing/text/FieldView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/FieldView.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/FieldView.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* FieldView.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* FieldView.java -- Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.swing.event.DocumentEvent; *** 56,91 **** public class FieldView extends PlainView { BoundedRangeModel horizontalVisibility; ! /** Caches the preferred span of the X axis. It is invalidated by * setting it to -1f. This is done when text in the document * is inserted, removed or changed. The value is corrected as ! * soon as calculateHorizontalSpan() is called. */ float cachedSpan = -1f; public FieldView(Element elem) { super(elem); ! } ! /** Checks whether the given container is a JTextField. If so * it retrieves the textfield's horizontalVisibility instance. ! * *

                                    This method should be only called when the view's container * is valid. Naturally that would be the setParent() method however * that method is not overridden in the RI and that is why we chose * paint() instead.

                                    ! */ private void checkContainer() { Container c = getContainer(); ! if (c instanceof JTextField) { horizontalVisibility = ((JTextField) c).getHorizontalVisibility(); ! // Provokes a repaint when the BoundedRangeModel's values change // (which is what the RI does). horizontalVisibility.addChangeListener(new ChangeListener(){ --- 56,91 ---- public class FieldView extends PlainView { BoundedRangeModel horizontalVisibility; ! /** Caches the preferred span of the X axis. It is invalidated by * setting it to -1f. This is done when text in the document * is inserted, removed or changed. The value is corrected as ! * soon as calculateHorizontalSpan() is called. */ float cachedSpan = -1f; public FieldView(Element elem) { super(elem); ! } ! /** Checks whether the given container is a JTextField. If so * it retrieves the textfield's horizontalVisibility instance. ! * *

                                    This method should be only called when the view's container * is valid. Naturally that would be the setParent() method however * that method is not overridden in the RI and that is why we chose * paint() instead.

                                    ! */ private void checkContainer() { Container c = getContainer(); ! if (c instanceof JTextField) { horizontalVisibility = ((JTextField) c).getHorizontalVisibility(); ! // Provokes a repaint when the BoundedRangeModel's values change // (which is what the RI does). horizontalVisibility.addChangeListener(new ChangeListener(){ *************** public class FieldView extends PlainView *** 98,122 **** // and needs to be recalculated (e.g. a different font setting is // not taken into account). calculateHorizontalSpan(); ! // Initializes the BoundedRangeModel properly. updateVisibility(); } ! } ! private void updateVisibility() { JTextField tf = (JTextField) getContainer(); Insets insets = tf.getInsets(); int width = tf.getWidth() - insets.left - insets.right; ! horizontalVisibility.setMaximum(Math.max((int) ((cachedSpan != -1f) ? cachedSpan : calculateHorizontalSpan()), width)); ! horizontalVisibility.setExtent(width - 1); } --- 98,122 ---- // and needs to be recalculated (e.g. a different font setting is // not taken into account). calculateHorizontalSpan(); ! // Initializes the BoundedRangeModel properly. updateVisibility(); } ! } ! private void updateVisibility() { JTextField tf = (JTextField) getContainer(); Insets insets = tf.getInsets(); int width = tf.getWidth() - insets.left - insets.right; ! horizontalVisibility.setMaximum(Math.max((int) ((cachedSpan != -1f) ? cachedSpan : calculateHorizontalSpan()), width)); ! horizontalVisibility.setExtent(width - 1); } *************** public class FieldView extends PlainView *** 140,146 **** // Return null when the original allocation is null (like the RI). if (shape == null) return null; ! Rectangle rectIn = shape.getBounds(); // vertical adjustment int height = (int) getPreferredSpan(Y_AXIS); --- 140,146 ---- // Return null when the original allocation is null (like the RI). if (shape == null) return null; ! Rectangle rectIn = shape.getBounds(); // vertical adjustment int height = (int) getPreferredSpan(Y_AXIS); *************** public class FieldView extends PlainView *** 177,183 **** x = rectIn.x; break; } ! return new Rectangle(x, y, width, height); } --- 177,183 ---- x = rectIn.x; break; } ! return new Rectangle(x, y, width, height); } *************** public class FieldView extends PlainView *** 192,204 **** if (cachedSpan != -1f) return cachedSpan; ! return calculateHorizontalSpan(); } ! /** Calculates and sets the horizontal span and stores the value * in cachedSpan. ! */ private float calculateHorizontalSpan() { Segment s = getLineBuffer(); --- 192,204 ---- if (cachedSpan != -1f) return cachedSpan; ! return calculateHorizontalSpan(); } ! /** Calculates and sets the horizontal span and stores the value * in cachedSpan. ! */ private float calculateHorizontalSpan() { Segment s = getLineBuffer(); *************** public class FieldView extends PlainView *** 209,223 **** elem.getDocument().getText(elem.getStartOffset(), elem.getEndOffset() - 1, s); ! return cachedSpan = Utilities.getTabbedTextWidth(s, getFontMetrics(), 0, this, s.offset); } catch (BadLocationException e) { ! // Should never happen ! AssertionError ae = new AssertionError(); ! ae.initCause(e); ! throw ae; } } --- 209,223 ---- elem.getDocument().getText(elem.getStartOffset(), elem.getEndOffset() - 1, s); ! return cachedSpan = Utilities.getTabbedTextWidth(s, getFontMetrics(), 0, this, s.offset); } catch (BadLocationException e) { ! // Should never happen ! AssertionError ae = new AssertionError(); ! ae.initCause(e); ! throw ae; } } *************** public class FieldView extends PlainView *** 225,245 **** { return axis == X_AXIS ? 1 : 0; } ! public Shape modelToView(int pos, Shape a, Position.Bias bias) throws BadLocationException { Shape newAlloc = adjustAllocation(a); return super.modelToView(pos, newAlloc, bias); } ! public void paint(Graphics g, Shape s) { if (horizontalVisibility == null) checkContainer(); Shape newAlloc = adjustAllocation(s); ! Shape clip = g.getClip(); if (clip != null) { --- 225,245 ---- { return axis == X_AXIS ? 1 : 0; } ! public Shape modelToView(int pos, Shape a, Position.Bias bias) throws BadLocationException { Shape newAlloc = adjustAllocation(a); return super.modelToView(pos, newAlloc, bias); } ! public void paint(Graphics g, Shape s) { if (horizontalVisibility == null) checkContainer(); Shape newAlloc = adjustAllocation(s); ! Shape clip = g.getClip(); if (clip != null) { *************** public class FieldView extends PlainView *** 262,279 **** super.paint(g, newAlloc); g.setClip(clip); ! } public void insertUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { cachedSpan = -1f; ! if (horizontalVisibility != null) updateVisibility(); ! Shape newAlloc = adjustAllocation(shape); ! super.insertUpdate(ev, newAlloc, vf); getContainer().repaint(); } --- 262,279 ---- super.paint(g, newAlloc); g.setClip(clip); ! } public void insertUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { cachedSpan = -1f; ! if (horizontalVisibility != null) updateVisibility(); ! Shape newAlloc = adjustAllocation(shape); ! super.insertUpdate(ev, newAlloc, vf); getContainer().repaint(); } *************** public class FieldView extends PlainView *** 281,287 **** public void removeUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { cachedSpan = -1f; ! if (horizontalVisibility != null) updateVisibility(); --- 281,287 ---- public void removeUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { cachedSpan = -1f; ! if (horizontalVisibility != null) updateVisibility(); *************** public class FieldView extends PlainView *** 293,299 **** public void changedUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { cachedSpan = -1f; ! if (horizontalVisibility != null) updateVisibility(); --- 293,299 ---- public void changedUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { cachedSpan = -1f; ! if (horizontalVisibility != null) updateVisibility(); *************** public class FieldView extends PlainView *** 306,310 **** { return super.viewToModel(fx, fy, adjustAllocation(a), bias); } ! } --- 306,310 ---- { return super.viewToModel(fx, fy, adjustAllocation(a), bias); } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/FlowView.java gcc-4.6.0/libjava/classpath/javax/swing/text/FlowView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/FlowView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/FlowView.java Tue Jan 11 19:46:05 2011 *************** public abstract class FlowView extends B *** 216,222 **** * the logical view. If the available space is exhausted, * {@link #adjustRow(FlowView, int, int, int)} is called to fit the row into * the available span. ! * * @param fv the flow view for which we perform the layout * @param rowIndex the index of the row * @param pos the model position for the beginning of the row --- 216,222 ---- * the logical view. If the available space is exhausted, * {@link #adjustRow(FlowView, int, int, int)} is called to fit the row into * the available span. ! * * @param fv the flow view for which we perform the layout * @param rowIndex the index of the row * @param pos the model position for the beginning of the row *************** public abstract class FlowView extends B *** 616,622 **** { int axis = getAxis(); int flowAxis; ! if (axis == X_AXIS) flowAxis = Y_AXIS; else --- 616,622 ---- { int axis = getAxis(); int flowAxis; ! if (axis == X_AXIS) flowAxis = Y_AXIS; else *************** public abstract class FlowView extends B *** 697,703 **** protected void layout(int width, int height) { int flowAxis = getFlowAxis(); ! int span; if (flowAxis == X_AXIS) span = (int) width; else --- 697,703 ---- protected void layout(int width, int height) { int flowAxis = getFlowAxis(); ! int span; if (flowAxis == X_AXIS) span = (int) width; else diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/GapContent.java gcc-4.6.0/libjava/classpath/javax/swing/text/GapContent.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/GapContent.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/GapContent.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.undo.UndoableEdit; *** 64,70 **** public class GapContent implements AbstractDocument.Content, Serializable { ! /** * A {@link Position} implementation for GapContent. */ --- 64,70 ---- public class GapContent implements AbstractDocument.Content, Serializable { ! /** * A {@link Position} implementation for GapContent. */ *************** public class GapContent *** 80,86 **** /** * Returns the current offset of this Position within the content. ! * * @return the current offset of this Position within the content. */ public int getOffset() --- 80,86 ---- /** * Returns the current offset of this Position within the content. ! * * @return the current offset of this Position within the content. */ public int getOffset() *************** public class GapContent *** 94,100 **** * the actual offset of the position. This is pulled out of the * GapContentPosition object so that the mark and position can be handled * independently, and most important, so that the GapContentPosition can ! * be garbage collected while we still hold a reference to the Mark object. */ private class Mark extends WeakReference --- 94,100 ---- * the actual offset of the position. This is pulled out of the * GapContentPosition object so that the mark and position can be handled * independently, and most important, so that the GapContentPosition can ! * be garbage collected while we still hold a reference to the Mark object. */ private class Mark extends WeakReference *************** public class GapContent *** 149,155 **** /** * Stores a reference to a mark that can be resetted to the original value ! * after a mark has been moved. This is used for undoing actions. */ private class UndoPosRef { --- 149,155 ---- /** * Stores a reference to a mark that can be resetted to the original value ! * after a mark has been moved. This is used for undoing actions. */ private class UndoPosRef { *************** public class GapContent *** 213,219 **** throw new CannotUndoException(); } } ! public void redo () throws CannotUndoException { super.redo(); --- 213,219 ---- throw new CannotUndoException(); } } ! public void redo () throws CannotUndoException { super.redo(); *************** public class GapContent *** 231,239 **** throw new CannotRedoException(); } } ! } ! private class UndoRemove extends AbstractUndoableEdit { public int where; --- 231,239 ---- throw new CannotRedoException(); } } ! } ! private class UndoRemove extends AbstractUndoableEdit { public int where; *************** public class GapContent *** 265,271 **** throw new CannotUndoException(); } } ! public void redo () throws CannotUndoException { super.redo(); --- 265,271 ---- throw new CannotUndoException(); } } ! public void redo () throws CannotUndoException { super.redo(); *************** public class GapContent *** 280,286 **** throw new CannotRedoException(); } } ! } /** The serialization UID (compatible with JDK1.5). */ --- 280,286 ---- throw new CannotRedoException(); } } ! } /** The serialization UID (compatible with JDK1.5). */ *************** public class GapContent *** 348,354 **** /** * Creates a new GapContent object with a specified initial size. ! * * @param size the initial size of the buffer */ public GapContent(int size) --- 348,354 ---- /** * Creates a new GapContent object with a specified initial size. ! * * @param size the initial size of the buffer */ public GapContent(int size) *************** public class GapContent *** 365,373 **** /** * Allocates an array of the specified length that can then be used as * buffer. ! * * @param size the size of the array to be allocated ! * * @return the allocated array */ protected Object allocateArray(int size) --- 365,373 ---- /** * Allocates an array of the specified length that can then be used as * buffer. ! * * @param size the size of the array to be allocated ! * * @return the allocated array */ protected Object allocateArray(int size) *************** public class GapContent *** 377,383 **** /** * Returns the length of the allocated buffer array. ! * * @return the length of the allocated buffer array */ protected int getArrayLength() --- 377,383 ---- /** * Returns the length of the allocated buffer array. ! * * @return the length of the allocated buffer array */ protected int getArrayLength() *************** public class GapContent *** 387,393 **** /** * Returns the length of the content. ! * * @return the length of the content */ public int length() --- 387,393 ---- /** * Returns the length of the content. ! * * @return the length of the content */ public int length() *************** public class GapContent *** 397,408 **** /** * Inserts a string at the specified position. ! * * @param where the position where the string is inserted * @param str the string that is to be inserted ! * * @return an UndoableEdit object ! * * @throws BadLocationException if where is not a valid * location in the buffer */ --- 397,408 ---- /** * Inserts a string at the specified position. ! * * @param where the position where the string is inserted * @param str the string that is to be inserted ! * * @return an UndoableEdit object ! * * @throws BadLocationException if where is not a valid * location in the buffer */ *************** public class GapContent *** 429,440 **** /** * Removes a piece of content at th specified position. ! * * @param where the position where the content is to be removed * @param nitems number of characters to be removed ! * * @return an UndoableEdit object ! * * @throws BadLocationException if where is not a valid * location in the buffer */ --- 429,440 ---- /** * Removes a piece of content at th specified position. ! * * @param where the position where the content is to be removed * @param nitems number of characters to be removed ! * * @return an UndoableEdit object ! * * @throws BadLocationException if where is not a valid * location in the buffer */ *************** public class GapContent *** 442,452 **** { // check arguments int length = length(); ! if ((where + nitems) >= length) throw new BadLocationException("where + nitems cannot be greater" + " than the content length", where + nitems); ! String removedText = getString(where, nitems); UndoRemove undoRemove = new UndoRemove(where, removedText); replace(where, nitems, null, 0); --- 442,452 ---- { // check arguments int length = length(); ! if ((where + nitems) >= length) throw new BadLocationException("where + nitems cannot be greater" + " than the content length", where + nitems); ! String removedText = getString(where, nitems); UndoRemove undoRemove = new UndoRemove(where, removedText); replace(where, nitems, null, 0); *************** public class GapContent *** 456,465 **** /** * Returns a piece of content as String. ! * * @param where the start location of the fragment * @param len the length of the fragment ! * * @throws BadLocationException if where or * where + len are no valid locations in the buffer */ --- 456,465 ---- /** * Returns a piece of content as String. ! * * @param where the start location of the fragment * @param len the length of the fragment ! * * @throws BadLocationException if where or * where + len are no valid locations in the buffer */ *************** public class GapContent *** 487,501 **** /** * Fetches a piece of content and stores it in a {@link Segment} object. ! * * If the requested piece of text spans the gap, the content is copied into a * new array. If it doesn't then it is contiguous and the actual content * store is returned. ! * * @param where the start location of the fragment * @param len the length of the fragment * @param txt the Segment object to store the fragment in ! * * @throws BadLocationException if where or * where + len are no valid locations in the buffer */ --- 487,501 ---- /** * Fetches a piece of content and stores it in a {@link Segment} object. ! * * If the requested piece of text spans the gap, the content is copied into a * new array. If it doesn't then it is contiguous and the actual content * store is returned. ! * * @param where the start location of the fragment * @param len the length of the fragment * @param txt the Segment object to store the fragment in ! * * @throws BadLocationException if where or * where + len are no valid locations in the buffer */ *************** public class GapContent *** 515,521 **** if (len < 0) throw new BadLocationException("negative length not allowed: ", len); ! // Optimized to copy only when really needed. if (where + len <= gapStart) { // Simple case: completely before gap. --- 515,521 ---- if (len < 0) throw new BadLocationException("negative length not allowed: ", len); ! // Optimized to copy only when really needed. if (where + len <= gapStart) { // Simple case: completely before gap. *************** public class GapContent *** 556,566 **** /** * Creates and returns a mark at the specified position. ! * * @param offset the position at which to create the mark ! * * @return the create Position object for the mark ! * * @throws BadLocationException if the offset is not a valid position in the * buffer */ --- 556,566 ---- /** * Creates and returns a mark at the specified position. ! * * @param offset the position at which to create the mark ! * * @return the create Position object for the mark ! * * @throws BadLocationException if the offset is not a valid position in the * buffer */ *************** public class GapContent *** 597,603 **** marks.add(insertIndex, m); } // Otherwise use the found position. ! return pos; } --- 597,603 ---- marks.add(insertIndex, m); } // Otherwise use the found position. ! return pos; } *************** public class GapContent *** 606,612 **** * segment before the gap as it is and the segment after the gap at the end * of the new buffer array. This does change the gapEnd mark but not the * gapStart mark. ! * * @param newSize the new size of the gap */ protected void shiftEnd(int newSize) --- 606,612 ---- * segment before the gap as it is and the segment after the gap at the end * of the new buffer array. This does change the gapEnd mark but not the * gapStart mark. ! * * @param newSize the new size of the gap */ protected void shiftEnd(int newSize) *************** public class GapContent *** 641,647 **** /** * Shifts the gap to the specified position. ! * * @param newGapStart the new start position of the gap */ protected void shiftGap(int newGapStart) --- 641,647 ---- /** * Shifts the gap to the specified position. ! * * @param newGapStart the new start position of the gap */ protected void shiftGap(int newGapStart) *************** public class GapContent *** 746,759 **** m.mark = newGapEnd; } ! gapEnd = newGapEnd; resetMarksAtZero(); } /** * Returns the allocated buffer array. ! * * @return the allocated buffer array */ protected final Object getArray() --- 746,759 ---- m.mark = newGapEnd; } ! gapEnd = newGapEnd; resetMarksAtZero(); } /** * Returns the allocated buffer array. ! * * @return the allocated buffer array */ protected final Object getArray() *************** public class GapContent *** 763,769 **** /** * Replaces a portion of the storage with the specified items. ! * * @param position the position at which to remove items * @param rmSize the number of items to remove * @param addItems the items to add at location --- 763,769 ---- /** * Replaces a portion of the storage with the specified items. ! * * @param position the position at which to remove items * @param rmSize the number of items to remove * @param addItems the items to add at location *************** public class GapContent *** 915,921 **** } return v; } ! /** * Resets all Position that have an offset of 0, * to also have an array index of 0. This might be necessary --- 915,921 ---- } return v; } ! /** * Resets all Position that have an offset of 0, * to also have an array index of 0. This might be necessary diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/GlyphView.java gcc-4.6.0/libjava/classpath/javax/swing/text/GlyphView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/GlyphView.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/GlyphView.java Tue Jan 11 19:46:05 2011 *************** public class GlyphView extends View impl *** 110,116 **** /** * Determines the model offset, so that the text between p0 * and this offset fits within the span starting at x with ! * the length of len. * * @param v the glyph view * @param p0 the starting offset in the model --- 110,116 ---- /** * Determines the model offset, so that the text between p0 * and this offset fits within the span starting at x with ! * the length of len. * * @param v the glyph view * @param p0 the starting offset in the model *************** public class GlyphView extends View impl *** 403,409 **** : Position.Bias.Backward; return pos + v.getStartOffset(); } ! } /** --- 403,409 ---- : Position.Bias.Backward; return pos + v.getStartOffset(); } ! } /** *************** public class GlyphView extends View impl *** 424,430 **** float height = fontMetrics.getHeight(); return height; } ! /** * Paints the glyphs. * --- 424,430 ---- float height = fontMetrics.getHeight(); return height; } ! /** * Paints the glyphs. * *************** public class GlyphView extends View impl *** 562,568 **** /** * Determines the model offset, so that the text between p0 * and this offset fits within the span starting at x with ! * the length of len. * * @param v the glyph view * @param p0 the starting offset in the model --- 562,568 ---- /** * Determines the model offset, so that the text between p0 * and this offset fits within the span starting at x with ! * the length of len. * * @param v the glyph view * @param p0 the starting offset in the model *************** public class GlyphView extends View impl *** 739,745 **** g.fillRect(r.x, r.y, r.width, r.height); } ! // Paint layered highlights if there are any. if (tc != null) { --- 739,745 ---- g.fillRect(r.x, r.y, r.width, r.height); } ! // Paint layered highlights if there are any. if (tc != null) { *************** public class GlyphView extends View impl *** 972,982 **** } catch (BadLocationException ex) { ! AssertionError ae; ae = new AssertionError("BadLocationException should not be " ! + "thrown here. p0 = " + p0 + ", p1 = " + p1); ! ae.initCause(ex); ! throw ae; } return cached; --- 972,982 ---- } catch (BadLocationException ex) { ! AssertionError ae; ae = new AssertionError("BadLocationException should not be " ! + "thrown here. p0 = " + p0 + ", p1 = " + p1); ! ae.initCause(ex); ! throw ae; } return cached; diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/Highlighter.java gcc-4.6.0/libjava/classpath/javax/swing/text/Highlighter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/Highlighter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/Highlighter.java Tue Jan 11 19:46:05 2011 *************** public interface Highlighter *** 57,63 **** { void paint(Graphics g, int p0, int p1, Shape bounds, JTextComponent c); } ! void install(JTextComponent c); void deinstall(JTextComponent c); --- 57,63 ---- { void paint(Graphics g, int p0, int p1, Shape bounds, JTextComponent c); } ! void install(JTextComponent c); void deinstall(JTextComponent c); *************** public interface Highlighter *** 76,79 **** void paint(Graphics g); } - --- 76,78 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/InternationalFormatter.java gcc-4.6.0/libjava/classpath/javax/swing/text/InternationalFormatter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/InternationalFormatter.java Sun Jun 3 23:18:43 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/InternationalFormatter.java Tue Jan 11 19:46:05 2011 *************** public class InternationalFormatter *** 206,212 **** * one of the mentioned methods in order to customize behaviour. * * @param ftf the {@link JFormattedTextField} in which this formatter ! * is installed */ public void install(JFormattedTextField ftf) { --- 206,212 ---- * one of the mentioned methods in order to customize behaviour. * * @param ftf the {@link JFormattedTextField} in which this formatter ! * is installed */ public void install(JFormattedTextField ftf) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/JTextComponent.java gcc-4.6.0/libjava/classpath/javax/swing/text/JTextComponent.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/JTextComponent.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/JTextComponent.java Tue Jan 11 19:46:05 2011 *************** public abstract class JTextComponent ext *** 246,252 **** { return this; } ! /** * Handle a text insertion event and fire an * AccessibleContext.ACCESSIBLE_TEXT_PROPERTY property change --- 246,252 ---- { return this; } ! /** * Handle a text insertion event and fire an * AccessibleContext.ACCESSIBLE_TEXT_PROPERTY property change *************** public abstract class JTextComponent ext *** 313,319 **** public Rectangle getCharacterBounds(int index) { // This is basically the same as BasicTextUI.modelToView(). ! Rectangle bounds = null; if (index >= 0 && index < doc.getLength() - 1) { --- 313,319 ---- public Rectangle getCharacterBounds(int index) { // This is basically the same as BasicTextUI.modelToView(). ! Rectangle bounds = null; if (index >= 0 && index < doc.getLength() - 1) { *************** public abstract class JTextComponent ext *** 368,379 **** return JTextComponent.this.getText().length(); } ! /** * Gets the character attributes of the character at index. If * the index is out of bounds, null is returned. * * @param index - index of the character ! * * @return the character's attributes */ public AttributeSet getCharacterAttribute(int index) --- 368,379 ---- return JTextComponent.this.getText().length(); } ! /** * Gets the character attributes of the character at index. If * the index is out of bounds, null is returned. * * @param index - index of the character ! * * @return the character's attributes */ public AttributeSet getCharacterAttribute(int index) *************** public abstract class JTextComponent ext *** 402,425 **** /** * Gets the text located at index. null is returned if the index * or part is invalid. ! * * @param part - {@link #CHARACTER}, {@link #WORD}, or {@link #SENTENCE} * @param index - index of the part ! * * @return the part of text at that index, or null */ public String getAtIndex(int part, int index) { return getAtIndexImpl(part, index, 0); } ! /** * Gets the text located after index. null is returned if the index * or part is invalid. ! * * @param part - {@link #CHARACTER}, {@link #WORD}, or {@link #SENTENCE} * @param index - index after the part ! * * @return the part of text after that index, or null */ public String getAfterIndex(int part, int index) --- 402,425 ---- /** * Gets the text located at index. null is returned if the index * or part is invalid. ! * * @param part - {@link #CHARACTER}, {@link #WORD}, or {@link #SENTENCE} * @param index - index of the part ! * * @return the part of text at that index, or null */ public String getAtIndex(int part, int index) { return getAtIndexImpl(part, index, 0); } ! /** * Gets the text located after index. null is returned if the index * or part is invalid. ! * * @param part - {@link #CHARACTER}, {@link #WORD}, or {@link #SENTENCE} * @param index - index after the part ! * * @return the part of text after that index, or null */ public String getAfterIndex(int part, int index) *************** public abstract class JTextComponent ext *** 430,439 **** /** * Gets the text located before index. null is returned if the index * or part is invalid. ! * * @param part - {@link #CHARACTER}, {@link #WORD}, or {@link #SENTENCE} * @param index - index before the part ! * * @return the part of text before that index, or null */ public String getBeforeIndex(int part, int index) --- 430,439 ---- /** * Gets the text located before index. null is returned if the index * or part is invalid. ! * * @param part - {@link #CHARACTER}, {@link #WORD}, or {@link #SENTENCE} * @param index - index before the part ! * * @return the part of text before that index, or null */ public String getBeforeIndex(int part, int index) *************** public abstract class JTextComponent ext *** 518,537 **** /** * Returns the number of actions for this object. The zero-th * object represents the default action. ! * * @return the number of actions (0-based). */ public int getAccessibleActionCount() { return getActions().length; } ! /** * Returns the description of the i-th action. Null is returned if * i is out of bounds. ! * * @param i - the action to get the description for ! * * @return description of the i-th action */ public String getAccessibleActionDescription(int i) --- 518,537 ---- /** * Returns the number of actions for this object. The zero-th * object represents the default action. ! * * @return the number of actions (0-based). */ public int getAccessibleActionCount() { return getActions().length; } ! /** * Returns the description of the i-th action. Null is returned if * i is out of bounds. ! * * @param i - the action to get the description for ! * * @return description of the i-th action */ public String getAccessibleActionDescription(int i) *************** public abstract class JTextComponent ext *** 542,554 **** desc = (String) actions[i].getValue(Action.NAME); return desc; } ! /** ! * Performs the i-th action. Nothing happens if i is * out of bounds. * * @param i - the action to perform ! * * @return true if the action was performed successfully */ public boolean doAccessibleAction(int i) --- 542,554 ---- desc = (String) actions[i].getValue(Action.NAME); return desc; } ! /** ! * Performs the i-th action. Nothing happens if i is * out of bounds. * * @param i - the action to perform ! * * @return true if the action was performed successfully */ public boolean doAccessibleAction(int i) *************** public abstract class JTextComponent ext *** 564,570 **** } return ret; } ! /** * Sets the text contents. * --- 564,570 ---- } return ret; } ! /** * Sets the text contents. * *************** public abstract class JTextComponent ext *** 727,733 **** * objects, by delegation to the underlying {@link Keymap}. * *
                                  • KeymapActionMap extends {@link ActionMap} also holds a reference to ! * the underlying {@link Keymap} but only appears to use it for listing * its keys.
                                  • * *
                                  • KeymapActionMap maps all {@link Action} objects to --- 727,733 ---- * objects, by delegation to the underlying {@link Keymap}.
                                  • * *
                                  • KeymapActionMap extends {@link ActionMap} also holds a reference to ! * the underlying {@link Keymap} but only appears to use it for listing * its keys.
                                  • * *
                                  • KeymapActionMap maps all {@link Action} objects to *************** public abstract class JTextComponent ext *** 774,780 **** public KeyStroke[] keys() { KeyStroke[] superKeys = super.keys(); ! KeyStroke[] mapKeys = map.getBoundKeyStrokes(); KeyStroke[] bothKeys = new KeyStroke[superKeys.length + mapKeys.length]; for (int i = 0; i < superKeys.length; ++i) bothKeys[i] = superKeys[i]; --- 774,780 ---- public KeyStroke[] keys() { KeyStroke[] superKeys = super.keys(); ! KeyStroke[] mapKeys = map.getBoundKeyStrokes(); KeyStroke[] bothKeys = new KeyStroke[superKeys.length + mapKeys.length]; for (int i = 0; i < superKeys.length; ++i) bothKeys[i] = superKeys[i]; *************** public abstract class JTextComponent ext *** 824,845 **** return map.getBoundKeyStrokes().length + super.size(); } ! public Object[] keys() { Object[] superKeys = super.keys(); ! Object[] mapKeys = map.getBoundKeyStrokes(); Object[] bothKeys = new Object[superKeys.length + mapKeys.length]; for (int i = 0; i < superKeys.length; ++i) bothKeys[i] = superKeys[i]; for (int i = 0; i < mapKeys.length; ++i) bothKeys[i + superKeys.length] = mapKeys[i]; ! return bothKeys; } public Object[] allKeys() { Object[] superKeys = super.allKeys(); ! Object[] mapKeys = map.getBoundKeyStrokes(); Object[] bothKeys = new Object[superKeys.length + mapKeys.length]; for (int i = 0; i < superKeys.length; ++i) bothKeys[i] = superKeys[i]; --- 824,845 ---- return map.getBoundKeyStrokes().length + super.size(); } ! public Object[] keys() { Object[] superKeys = super.keys(); ! Object[] mapKeys = map.getBoundKeyStrokes(); Object[] bothKeys = new Object[superKeys.length + mapKeys.length]; for (int i = 0; i < superKeys.length; ++i) bothKeys[i] = superKeys[i]; for (int i = 0; i < mapKeys.length; ++i) bothKeys[i + superKeys.length] = mapKeys[i]; ! return bothKeys; } public Object[] allKeys() { Object[] superKeys = super.allKeys(); ! Object[] mapKeys = map.getBoundKeyStrokes(); Object[] bothKeys = new Object[superKeys.length + mapKeys.length]; for (int i = 0; i < superKeys.length; ++i) bothKeys[i] = superKeys[i]; *************** public abstract class JTextComponent ext *** 929,938 **** i = 0; e = map.keys(); while (e.hasMoreElements()) ! { KeyStroke k = (KeyStroke) e.nextElement(); if (map.get(k).equals(a)) ! ret[i++] = k; } return ret; } --- 929,938 ---- i = 0; e = map.keys(); while (e.hasMoreElements()) ! { KeyStroke k = (KeyStroke) e.nextElement(); if (map.get(k).equals(a)) ! ret[i++] = k; } return ret; } *************** public abstract class JTextComponent ext *** 978,998 **** public boolean canImport(JComponent component, DataFlavor[] flavors) { JTextComponent textComponent = (JTextComponent) component; ! if (! (textComponent.isEnabled() ! && textComponent.isEditable() ! && flavors != null)) return false; for (int i = 0; i < flavors.length; ++i) ! if (flavors[i].equals(DataFlavor.stringFlavor)) ! return true; return false; } ! public void exportToClipboard(JComponent component, Clipboard clipboard, ! int action) { JTextComponent textComponent = (JTextComponent) component; int start = textComponent.getSelectionStart(); --- 978,998 ---- public boolean canImport(JComponent component, DataFlavor[] flavors) { JTextComponent textComponent = (JTextComponent) component; ! if (! (textComponent.isEnabled() ! && textComponent.isEditable() ! && flavors != null)) return false; for (int i = 0; i < flavors.length; ++i) ! if (flavors[i].equals(DataFlavor.stringFlavor)) ! return true; return false; } ! public void exportToClipboard(JComponent component, Clipboard clipboard, ! int action) { JTextComponent textComponent = (JTextComponent) component; int start = textComponent.getSelectionStart(); *************** public abstract class JTextComponent ext *** 1017,1023 **** // Ignore this and do nothing. } } ! public int getSourceActions() { return NONE; --- 1017,1023 ---- // Ignore this and do nothing. } } ! public int getSourceActions() { return NONE; *************** public abstract class JTextComponent ext *** 1034,1040 **** for (int i = 0; i < flavors.length; ++i) if (flavors[i].equals(DataFlavor.stringFlavor)) flavor = flavors[i]; ! if (flavor == null) return false; --- 1034,1040 ---- for (int i = 0; i < flavors.length; ++i) if (flavors[i].equals(DataFlavor.stringFlavor)) flavor = flavors[i]; ! if (flavor == null) return false; *************** public abstract class JTextComponent ext *** 1059,1068 **** } private static final long serialVersionUID = -8796518220218978795L; ! public static final String DEFAULT_KEYMAP = "default"; public static final String FOCUS_ACCELERATOR_KEY = "focusAcceleratorKey"; ! private static DefaultTransferHandler defaultTransferHandler; private static Hashtable keymaps = new Hashtable(); private Keymap keymap; --- 1059,1068 ---- } private static final long serialVersionUID = -8796518220218978795L; ! public static final String DEFAULT_KEYMAP = "default"; public static final String FOCUS_ACCELERATOR_KEY = "focusAcceleratorKey"; ! private static DefaultTransferHandler defaultTransferHandler; private static Hashtable keymaps = new Hashtable(); private Keymap keymap; *************** public abstract class JTextComponent ext *** 1096,1102 **** * @see #addKeymap * @see #getKeymap() * @see #keymaps ! */ public static Keymap removeKeymap(String n) { Keymap km = (Keymap) keymaps.get(n); --- 1096,1102 ---- * @see #addKeymap * @see #getKeymap() * @see #keymaps ! */ public static Keymap removeKeymap(String n) { Keymap km = (Keymap) keymaps.get(n); *************** public abstract class JTextComponent ext *** 1110,1116 **** * in which case the new Keymap will not be added to the global * Keymap table. The parent may also be null, which is * harmless. ! * * @param n The name of the new Keymap, or null * @param parent The parent of the new Keymap, or null * --- 1110,1116 ---- * in which case the new Keymap will not be added to the global * Keymap table. The parent may also be null, which is * harmless. ! * * @param n The name of the new Keymap, or null * @param parent The parent of the new Keymap, or null * *************** public abstract class JTextComponent ext *** 1137,1143 **** * @see #setKeymap * @see #keymap */ ! public Keymap getKeymap() { return keymap; } --- 1137,1143 ---- * @see #setKeymap * @see #keymap */ ! public Keymap getKeymap() { return keymap; } *************** public abstract class JTextComponent ext *** 1151,1176 **** * @see #getKeymap() * @see #keymap */ ! public void setKeymap(Keymap k) { // phase 1: replace the KeymapWrapper entry in the InputMap chain. // the goal here is to always maintain the following ordering: // // [InputMap]? -> [KeymapWrapper]? -> [InputMapUIResource]* ! // // that is to say, component-specific InputMaps need to remain children // of Keymaps, and Keymaps need to remain children of UI-installed // InputMaps (and the order of each group needs to be preserved, of // course). ! KeymapWrapper kw = (k == null ? null : new KeymapWrapper(k)); InputMap childInputMap = getInputMap(JComponent.WHEN_FOCUSED); if (childInputMap == null) setInputMap(JComponent.WHEN_FOCUSED, kw); else { ! while (childInputMap.getParent() != null && !(childInputMap.getParent() instanceof KeymapWrapper) && !(childInputMap.getParent() instanceof InputMapUIResource)) childInputMap = childInputMap.getParent(); --- 1151,1176 ---- * @see #getKeymap() * @see #keymap */ ! public void setKeymap(Keymap k) { // phase 1: replace the KeymapWrapper entry in the InputMap chain. // the goal here is to always maintain the following ordering: // // [InputMap]? -> [KeymapWrapper]? -> [InputMapUIResource]* ! // // that is to say, component-specific InputMaps need to remain children // of Keymaps, and Keymaps need to remain children of UI-installed // InputMaps (and the order of each group needs to be preserved, of // course). ! KeymapWrapper kw = (k == null ? null : new KeymapWrapper(k)); InputMap childInputMap = getInputMap(JComponent.WHEN_FOCUSED); if (childInputMap == null) setInputMap(JComponent.WHEN_FOCUSED, kw); else { ! while (childInputMap.getParent() != null && !(childInputMap.getParent() instanceof KeymapWrapper) && !(childInputMap.getParent() instanceof InputMapUIResource)) childInputMap = childInputMap.getParent(); *************** public abstract class JTextComponent ext *** 1178,1184 **** // option 1: there is nobody to replace at the end of the chain if (childInputMap.getParent() == null) childInputMap.setParent(kw); ! // option 2: there is already a KeymapWrapper in the chain which // needs replacing (possibly with its own parents, possibly without) else if (childInputMap.getParent() instanceof KeymapWrapper) --- 1178,1184 ---- // option 1: there is nobody to replace at the end of the chain if (childInputMap.getParent() == null) childInputMap.setParent(kw); ! // option 2: there is already a KeymapWrapper in the chain which // needs replacing (possibly with its own parents, possibly without) else if (childInputMap.getParent() instanceof KeymapWrapper) *************** public abstract class JTextComponent ext *** 1212,1218 **** setActionMap(kam); else { ! while (childActionMap.getParent() != null && !(childActionMap.getParent() instanceof KeymapActionMap) && !(childActionMap.getParent() instanceof ActionMapUIResource)) childActionMap = childActionMap.getParent(); --- 1212,1218 ---- setActionMap(kam); else { ! while (childActionMap.getParent() != null && !(childActionMap.getParent() instanceof KeymapActionMap) && !(childActionMap.getParent() instanceof ActionMapUIResource)) childActionMap = childActionMap.getParent(); *************** public abstract class JTextComponent ext *** 1220,1226 **** // option 1: there is nobody to replace at the end of the chain if (childActionMap.getParent() == null) childActionMap.setParent(kam); ! // option 2: there is already a KeymapActionMap in the chain which // needs replacing (possibly with its own parents, possibly without) else if (childActionMap.getParent() instanceof KeymapActionMap) --- 1220,1226 ---- // option 1: there is nobody to replace at the end of the chain if (childActionMap.getParent() == null) childActionMap.setParent(kam); ! // option 2: there is already a KeymapActionMap in the chain which // needs replacing (possibly with its own parents, possibly without) else if (childActionMap.getParent() instanceof KeymapActionMap) *************** public abstract class JTextComponent ext *** 1269,1276 **** * @see Action#getValue * @see KeyBinding#actionName */ ! public static void loadKeymap(Keymap map, ! JTextComponent.KeyBinding[] bindings, Action[] actions) { Hashtable acts = new Hashtable(actions.length); --- 1269,1276 ---- * @see Action#getValue * @see KeyBinding#actionName */ ! public static void loadKeymap(Keymap map, ! JTextComponent.KeyBinding[] bindings, Action[] actions) { Hashtable acts = new Hashtable(actions.length); *************** public abstract class JTextComponent ext *** 1298,1309 **** { return getUI().getEditorKit(this).getActions(); } ! // These are package-private to avoid an accessor method. Document doc; Caret caret; boolean editable; ! private Highlighter highlighter; private Color caretColor; private Color disabledTextColor; --- 1298,1309 ---- { return getUI().getEditorKit(this).getActions(); } ! // These are package-private to avoid an accessor method. Document doc; Caret caret; boolean editable; ! private Highlighter highlighter; private Color caretColor; private Color disabledTextColor; *************** public abstract class JTextComponent ext *** 1445,1454 **** { int start = getSelectionStart(); int offset = getSelectionEnd() - start; ! if (offset <= 0) return null; ! try { return doc.getText(start, offset); --- 1445,1454 ---- { int start = getSelectionStart(); int offset = getSelectionEnd() - start; ! if (offset <= 0) return null; ! try { return doc.getText(start, offset); *************** public abstract class JTextComponent ext *** 1565,1571 **** { if (editable == newValue) return; ! boolean oldValue = editable; editable = newValue; firePropertyChange("editable", oldValue, newValue); --- 1565,1571 ---- { if (editable == newValue) return; ! boolean oldValue = editable; editable = newValue; firePropertyChange("editable", oldValue, newValue); *************** public abstract class JTextComponent ext *** 1590,1602 **** { if (caret != null) caret.deinstall(this); ! Caret oldCaret = caret; caret = newCaret; if (caret != null) caret.install(this); ! firePropertyChange("caret", oldCaret, newCaret); } --- 1590,1602 ---- { if (caret != null) caret.deinstall(this); ! Caret oldCaret = caret; caret = newCaret; if (caret != null) caret.install(this); ! firePropertyChange("caret", oldCaret, newCaret); } *************** public abstract class JTextComponent ext *** 1698,1710 **** { if (highlighter != null) highlighter.deinstall(this); ! Highlighter oldHighlighter = highlighter; highlighter = newHighlighter; if (highlighter != null) highlighter.install(this); ! firePropertyChange("highlighter", oldHighlighter, newHighlighter); } --- 1698,1710 ---- { if (highlighter != null) highlighter.deinstall(this); ! Highlighter oldHighlighter = highlighter; highlighter = newHighlighter; if (highlighter != null) highlighter.install(this); ! firePropertyChange("highlighter", oldHighlighter, newHighlighter); } *************** public abstract class JTextComponent ext *** 1757,1763 **** public void select(int start, int end) { int length = doc.getLength(); ! start = Math.max(start, 0); start = Math.min(start, length); --- 1757,1763 ---- public void select(int start, int end) { int length = doc.getLength(); ! start = Math.max(start, 0); start = Math.min(start, length); *************** public abstract class JTextComponent ext *** 1803,1809 **** // Set dot to new position, dot = start + content.length(); setCaretPosition(dot); ! // and update it's magic position. caret.setMagicCaretPosition(modelToView(dot).getLocation()); } --- 1803,1809 ---- // Set dot to new position, dot = start + content.length(); setCaretPosition(dot); ! // and update it's magic position. caret.setMagicCaretPosition(modelToView(dot).getLocation()); } *************** public abstract class JTextComponent ext *** 1969,1975 **** focusAccelerator = newKey; firePropertyChange(FOCUS_ACCELERATOR_KEY, oldKey, newKey); } ! public char getFocusAccelerator() { return focusAccelerator; --- 1969,1975 ---- focusAccelerator = newKey; firePropertyChange(FOCUS_ACCELERATOR_KEY, oldKey, newKey); } ! public char getFocusAccelerator() { return focusAccelerator; *************** public abstract class JTextComponent ext *** 1990,1996 **** { navigationFilter = filter; } ! /** * Read and set the content this component. If not overridden, the * method reads the component content as a plain text. --- 1990,1996 ---- { navigationFilter = filter; } ! /** * Read and set the content this component. If not overridden, the * method reads the component content as a plain text. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/Keymap.java gcc-4.6.0/libjava/classpath/javax/swing/text/Keymap.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/Keymap.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/Keymap.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Keymap.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Keymap.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import javax.swing.KeyStroke; *** 42,60 **** public interface Keymap { ! void addActionForKeyStroke(KeyStroke key, Action a); ! Action getAction(KeyStroke key); ! Action[] getBoundActions(); ! KeyStroke[] getBoundKeyStrokes(); ! Action getDefaultAction(); ! KeyStroke[] getKeyStrokesForAction(Action a); ! String getName(); ! Keymap getResolveParent(); ! boolean isLocallyDefined(KeyStroke key); ! void removeBindings(); ! void removeKeyStrokeBinding(KeyStroke keys); ! void setDefaultAction(Action a); void setResolveParent(Keymap parent); } - - --- 42,58 ---- public interface Keymap { ! void addActionForKeyStroke(KeyStroke key, Action a); ! Action getAction(KeyStroke key); ! Action[] getBoundActions(); ! KeyStroke[] getBoundKeyStrokes(); ! Action getDefaultAction(); ! KeyStroke[] getKeyStrokesForAction(Action a); ! String getName(); ! Keymap getResolveParent(); ! boolean isLocallyDefined(KeyStroke key); ! void removeBindings(); ! void removeKeyStrokeBinding(KeyStroke keys); ! void setDefaultAction(Action a); void setResolveParent(Keymap parent); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/LayeredHighlighter.java gcc-4.6.0/libjava/classpath/javax/swing/text/LayeredHighlighter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/LayeredHighlighter.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/LayeredHighlighter.java Tue Jan 11 19:46:05 2011 *************** public abstract class LayeredHighlighter *** 47,56 **** implements Highlighter.HighlightPainter { public abstract Shape paintLayer(Graphics g, int p0, int p1, ! Shape viewBounds, JTextComponent editor, ! View view); } ! public abstract void paintLayeredHighlights(Graphics g, int p0, int p1, Shape viewBounds, JTextComponent editor, View view); --- 47,56 ---- implements Highlighter.HighlightPainter { public abstract Shape paintLayer(Graphics g, int p0, int p1, ! Shape viewBounds, JTextComponent editor, ! View view); } ! public abstract void paintLayeredHighlights(Graphics g, int p0, int p1, Shape viewBounds, JTextComponent editor, View view); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/LayoutQueue.java gcc-4.6.0/libjava/classpath/javax/swing/text/LayoutQueue.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/LayoutQueue.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/LayoutQueue.java Tue Jan 11 19:46:05 2011 *************** public class LayoutQueue *** 67,74 **** { synchronized (list) { ! list.addLast(task); ! list.notify(); } } --- 67,74 ---- { synchronized (list) { ! list.addLast(task); ! list.notify(); } } *************** public class LayoutQueue *** 81,100 **** { synchronized (list) { ! while (list.size() == 0) ! { ! try ! { ! list.wait(); ! } ! catch (InterruptedException _) ! { ! // This seemed like a good idea, but it has not been ! // tested on the JDK. ! return null; ! } ! } ! return (Runnable) list.removeFirst(); } } --- 81,100 ---- { synchronized (list) { ! while (list.size() == 0) ! { ! try ! { ! list.wait(); ! } ! catch (InterruptedException _) ! { ! // This seemed like a good idea, but it has not been ! // tested on the JDK. ! return null; ! } ! } ! return (Runnable) list.removeFirst(); } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/MaskFormatter.java gcc-4.6.0/libjava/classpath/javax/swing/text/MaskFormatter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/MaskFormatter.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/MaskFormatter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* MaskFormatter.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* MaskFormatter.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class MaskFormatter extends Defau *** 59,111 **** private static final char LETTER_CHAR = '?'; private static final char ANYTHING_CHAR = '*'; private static final char HEX_CHAR = 'H'; ! /** The mask for this MaskFormatter **/ private String mask; ! ! /** ! * A String made up of the characters that are not valid for input for ! * this MaskFormatter. */ private String invalidChars; ! ! /** ! * A String made up of the characters that are valid for input for ! * this MaskFormatter. */ private String validChars; ! ! /** A String used in place of missing chracters if the value does not * completely fill in the spaces in the mask. */ private String placeHolder; ! ! /** A character used in place of missing characters if the value does * not completely fill in the spaces in the mask. */ private char placeHolderChar = ' '; ! /** * Whether or not stringToValue should return literal characters in the mask. */ private boolean valueContainsLiteralCharacters = true; ! /** A String used for easy access to valid HEX characters **/ private static String hexString = "0123456789abcdefABCDEF"; ! /** An int to hold the length of the mask, accounting for escaped characters **/ int maskLength = 0; ! public MaskFormatter () { // Override super's default behaviour, in MaskFormatter the default // is not to allow invalid values setAllowsInvalid(false); } ! /** * Creates a MaskFormatter with the specified mask. ! * @specnote doesn't actually throw a ParseException although it * is declared to do so * @param mask * @throws java.text.ParseException --- 59,111 ---- private static final char LETTER_CHAR = '?'; private static final char ANYTHING_CHAR = '*'; private static final char HEX_CHAR = 'H'; ! /** The mask for this MaskFormatter **/ private String mask; ! ! /** ! * A String made up of the characters that are not valid for input for ! * this MaskFormatter. */ private String invalidChars; ! ! /** ! * A String made up of the characters that are valid for input for ! * this MaskFormatter. */ private String validChars; ! ! /** A String used in place of missing chracters if the value does not * completely fill in the spaces in the mask. */ private String placeHolder; ! ! /** A character used in place of missing characters if the value does * not completely fill in the spaces in the mask. */ private char placeHolderChar = ' '; ! /** * Whether or not stringToValue should return literal characters in the mask. */ private boolean valueContainsLiteralCharacters = true; ! /** A String used for easy access to valid HEX characters **/ private static String hexString = "0123456789abcdefABCDEF"; ! /** An int to hold the length of the mask, accounting for escaped characters **/ int maskLength = 0; ! public MaskFormatter () { // Override super's default behaviour, in MaskFormatter the default // is not to allow invalid values setAllowsInvalid(false); } ! /** * Creates a MaskFormatter with the specified mask. ! * @specnote doesn't actually throw a ParseException although it * is declared to do so * @param mask * @throws java.text.ParseException *************** public class MaskFormatter extends Defau *** 115,121 **** this(); setMask (mask); } ! /** * Returns the mask used in this MaskFormatter. * @return the mask used in this MaskFormatter. --- 115,121 ---- this(); setMask (mask); } ! /** * Returns the mask used in this MaskFormatter. * @return the mask used in this MaskFormatter. *************** public class MaskFormatter extends Defau *** 124,130 **** { return mask; } ! /** * Returns a String containing the characters that are not valid for input * for this MaskFormatter. --- 124,130 ---- { return mask; } ! /** * Returns a String containing the characters that are not valid for input * for this MaskFormatter. *************** public class MaskFormatter extends Defau *** 134,152 **** { return invalidChars; } ! /** * Sets characters that are not valid for input. If * invalidCharacters is non-null then no characters contained * in it will be allowed to be input. ! * * @param invalidCharacters the String specifying invalid characters. */ public void setInvalidCharacters (String invalidCharacters) { this.invalidChars = invalidCharacters; } ! /** * Returns a String containing the characters that are valid for input * for this MaskFormatter. --- 134,152 ---- { return invalidChars; } ! /** * Sets characters that are not valid for input. If * invalidCharacters is non-null then no characters contained * in it will be allowed to be input. ! * * @param invalidCharacters the String specifying invalid characters. */ public void setInvalidCharacters (String invalidCharacters) { this.invalidChars = invalidCharacters; } ! /** * Returns a String containing the characters that are valid for input * for this MaskFormatter. *************** public class MaskFormatter extends Defau *** 156,167 **** { return validChars; } ! /** * Sets characters that are valid for input. If * validCharacters is non-null then no characters that are * not contained in it will be allowed to be input. ! * * @param validCharacters the String specifying valid characters. */ public void setValidCharacters (String validCharacters) --- 156,167 ---- { return validChars; } ! /** * Sets characters that are valid for input. If * validCharacters is non-null then no characters that are * not contained in it will be allowed to be input. ! * * @param validCharacters the String specifying valid characters. */ public void setValidCharacters (String validCharacters) *************** public class MaskFormatter extends Defau *** 170,176 **** } /** ! * Returns the place holder String that is used in place of missing * characters when the value doesn't completely fill in the spaces * in the mask. * @return the place holder String. --- 170,176 ---- } /** ! * Returns the place holder String that is used in place of missing * characters when the value doesn't completely fill in the spaces * in the mask. * @return the place holder String. *************** public class MaskFormatter extends Defau *** 179,196 **** { return placeHolder; } ! /** * Sets the string to use if the value does not completely fill in the mask. * If this is null, the place holder character will be used instead. ! * @param placeholder the String to use if the value doesn't completely * fill in the mask. */ public void setPlaceholder (String placeholder) { this.placeHolder = placeholder; } ! /** * Returns the character used in place of missing characters when the * value doesn't completely fill the mask. --- 179,196 ---- { return placeHolder; } ! /** * Sets the string to use if the value does not completely fill in the mask. * If this is null, the place holder character will be used instead. ! * @param placeholder the String to use if the value doesn't completely * fill in the mask. */ public void setPlaceholder (String placeholder) { this.placeHolder = placeholder; } ! /** * Returns the character used in place of missing characters when the * value doesn't completely fill the mask. *************** public class MaskFormatter extends Defau *** 200,241 **** { return placeHolderChar; } ! /** * Sets the char to use if the value does not completely fill in the mask. ! * This is only used if the place holder String has not been set or does * not completely fill in the mask. ! * @param placeholder the char to use if the value doesn't completely * fill in the mask. */ public void setPlaceholderCharacter (char placeholder) { this.placeHolderChar = placeholder; } ! /** ! * Returns true if stringToValue should return the literal * characters in the mask. ! * @return true if stringToValue should return the literal * characters in the mask */ public boolean getValueContainsLiteralCharacters() { return valueContainsLiteralCharacters; } ! /** * Determines whether stringToValue will return literal characters or not. ! * @param containsLiteralChars if true, stringToValue will return the * literal characters in the mask, otherwise it will not. */ public void setValueContainsLiteralCharacters (boolean containsLiteralChars) { this.valueContainsLiteralCharacters = containsLiteralChars; } ! /** ! * Sets the mask for this MaskFormatter. * @specnote doesn't actually throw a ParseException even though it is * declared to do so * @param mask the new mask for this MaskFormatter --- 200,241 ---- { return placeHolderChar; } ! /** * Sets the char to use if the value does not completely fill in the mask. ! * This is only used if the place holder String has not been set or does * not completely fill in the mask. ! * @param placeholder the char to use if the value doesn't completely * fill in the mask. */ public void setPlaceholderCharacter (char placeholder) { this.placeHolderChar = placeholder; } ! /** ! * Returns true if stringToValue should return the literal * characters in the mask. ! * @return true if stringToValue should return the literal * characters in the mask */ public boolean getValueContainsLiteralCharacters() { return valueContainsLiteralCharacters; } ! /** * Determines whether stringToValue will return literal characters or not. ! * @param containsLiteralChars if true, stringToValue will return the * literal characters in the mask, otherwise it will not. */ public void setValueContainsLiteralCharacters (boolean containsLiteralChars) { this.valueContainsLiteralCharacters = containsLiteralChars; } ! /** ! * Sets the mask for this MaskFormatter. * @specnote doesn't actually throw a ParseException even though it is * declared to do so * @param mask the new mask for this MaskFormatter *************** public class MaskFormatter extends Defau *** 247,260 **** // Update the cached maskLength. int end = mask.length() - 1; ! maskLength = 0; for (int i = 0; i <= end; i++) { // Handle escape characters properly - they don't add to the maskLength // but 2 escape characters in a row is really one escape character and // one literal single quote, so that does add 1 to the maskLength. if (mask.charAt(i) == '\'') ! { // Escape characters at the end of the mask don't do anything. if (i != end) maskLength++; --- 247,260 ---- // Update the cached maskLength. int end = mask.length() - 1; ! maskLength = 0; for (int i = 0; i <= end; i++) { // Handle escape characters properly - they don't add to the maskLength // but 2 escape characters in a row is really one escape character and // one literal single quote, so that does add 1 to the maskLength. if (mask.charAt(i) == '\'') ! { // Escape characters at the end of the mask don't do anything. if (i != end) maskLength++; *************** public class MaskFormatter extends Defau *** 264,277 **** maskLength++; } } ! /** * Installs this MaskFormatter on the JFormattedTextField. ! * Invokes valueToString to convert the current value from the * JFormattedTextField to a String, then installs the Actions from ! * getActions, the DocumentFilter from getDocumentFilter, and the * NavigationFilter from getNavigationFilter. ! * * If valueToString throws a ParseException, this method sets the text * to an empty String and marks the JFormattedTextField as invalid. */ --- 264,277 ---- maskLength++; } } ! /** * Installs this MaskFormatter on the JFormattedTextField. ! * Invokes valueToString to convert the current value from the * JFormattedTextField to a String, then installs the Actions from ! * getActions, the DocumentFilter from getDocumentFilter, and the * NavigationFilter from getNavigationFilter. ! * * If valueToString throws a ParseException, this method sets the text * to an empty String and marks the JFormattedTextField as invalid. */ *************** public class MaskFormatter extends Defau *** 293,306 **** } } } ! /** * Parses the text using the mask, valid characters, and invalid characters * to determine the appropriate Object to return. This strips the literal * characters if necessary and invokes super.stringToValue. If the paramter ! * is invalid for the current mask and valid/invalid character sets this * method will throw a ParseException. ! * * @param value the String to parse * @throws ParseException if value doesn't match the mask and valid/invalid * character sets --- 293,306 ---- } } } ! /** * Parses the text using the mask, valid characters, and invalid characters * to determine the appropriate Object to return. This strips the literal * characters if necessary and invokes super.stringToValue. If the paramter ! * is invalid for the current mask and valid/invalid character sets this * method will throw a ParseException. ! * * @param value the String to parse * @throws ParseException if value doesn't match the mask and valid/invalid * character sets *************** public class MaskFormatter extends Defau *** 309,315 **** { return super.stringToValue(convertStringToValue(value)); } ! private String convertStringToValue(String value) throws ParseException { --- 309,315 ---- { return super.stringToValue(convertStringToValue(value)); } ! private String convertStringToValue(String value) throws ParseException { *************** public class MaskFormatter extends Defau *** 347,353 **** valueChar = placeHolderChar; } ! // This switch block on the mask character checks that the character // within value at that point is valid according to the // mask and also converts to upper/lowercase as needed. switch (maskChar) --- 347,353 ---- valueChar = placeHolderChar; } ! // This switch block on the mask character checks that the character // within value at that point is valid according to the // mask and also converts to upper/lowercase as needed. switch (maskChar) *************** public class MaskFormatter extends Defau *** 393,399 **** i++; break; case ESCAPE_CHAR: ! // Escape character, check the next character to make sure that // the literals match j++; if (j < length) --- 393,399 ---- i++; break; case ESCAPE_CHAR: ! // Escape character, check the next character to make sure that // the literals match j++; if (j < length) *************** public class MaskFormatter extends Defau *** 427,433 **** /** * Returns a String representation of the Object value based on the mask. ! * * @param value the value to convert * @throws ParseException if value is invalid for this mask and valid/invalid * character sets --- 427,433 ---- /** * Returns a String representation of the Object value based on the mask. ! * * @param value the value to convert * @throws ParseException if value is invalid for this mask and valid/invalid * character sets *************** public class MaskFormatter extends Defau *** 437,443 **** String string = value != null ? value.toString() : ""; return convertValueToString(string); } ! /** * This method takes in a String and runs it through the mask to make * sure that it is valid. If convert is true, it also --- 437,443 ---- String string = value != null ? value.toString() : ""; return convertValueToString(string); } ! /** * This method takes in a String and runs it through the mask to make * sure that it is valid. If convert is true, it also *************** public class MaskFormatter extends Defau *** 483,489 **** valueChar = placeHolderChar; } ! // This switch block on the mask character checks that the character // within value at that point is valid according to the // mask and also converts to upper/lowercase as needed. switch (maskChar) --- 483,489 ---- valueChar = placeHolderChar; } ! // This switch block on the mask character checks that the character // within value at that point is valid according to the // mask and also converts to upper/lowercase as needed. switch (maskChar) *************** public class MaskFormatter extends Defau *** 529,535 **** i++; break; case ESCAPE_CHAR: ! // Escape character, check the next character to make sure that // the literals match j++; if (j < length) --- 529,535 ---- i++; break; case ESCAPE_CHAR: ! // Escape character, check the next character to make sure that // the literals match j++; if (j < length) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/MutableAttributeSet.java gcc-4.6.0/libjava/classpath/javax/swing/text/MutableAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/MutableAttributeSet.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/MutableAttributeSet.java Tue Jan 11 19:46:05 2011 *************** package javax.swing.text; *** 40,49 **** import java.util.Enumeration; /** ! * An {@link AttributeSet} that supports modification of the stored * attributes. ! * ! * @author Andrew Selkirk * @since 1.2 */ public interface MutableAttributeSet extends AttributeSet --- 40,49 ---- import java.util.Enumeration; /** ! * An {@link AttributeSet} that supports modification of the stored * attributes. ! * ! * @author Andrew Selkirk * @since 1.2 */ public interface MutableAttributeSet extends AttributeSet *************** public interface MutableAttributeSet ext *** 52,105 **** * Adds an attribute with the given name and value * to the set. If the set already contains an attribute with the given * name, the attribute value is updated. ! * * @param name the attribute name (null not permitted). * @param value the value (null not permitted). ! * * @throws NullPointerException if either argument is null. */ void addAttribute(Object name, Object value); /** * Adds all the attributes from attributes to this set. ! * * @param attributes the set of attributes to add (null not * permitted). ! * ! * @throws NullPointerException if attributes is * null. */ void addAttributes(AttributeSet attributes); /** ! * Removes the attribute with the specified name, if this * attribute is defined. This method will only remove an attribute from * this set, not from the resolving parent. ! * * @param name the attribute name (null not permitted). ! * * @throws NullPointerException if name is null. */ void removeAttribute(Object name); /** * Removes the attributes listed in names. ! * * @param names the attribute names (null not permitted). ! * ! * @throws NullPointerException if names is null * or contains any null values. */ void removeAttributes(Enumeration names); /** ! * Removes attributes from this set if they are found in the * given set. Only attributes whose key AND value are removed. ! * Removes attributes only from this set, not from the resolving parent. ! * Since the resolving parent is stored as an attribute, if * attributes has the same resolving parent as this set, the * parent will be removed from this set. ! * * @param attributes the attributes (null not permitted). */ void removeAttributes(AttributeSet attributes); --- 52,105 ---- * Adds an attribute with the given name and value * to the set. If the set already contains an attribute with the given * name, the attribute value is updated. ! * * @param name the attribute name (null not permitted). * @param value the value (null not permitted). ! * * @throws NullPointerException if either argument is null. */ void addAttribute(Object name, Object value); /** * Adds all the attributes from attributes to this set. ! * * @param attributes the set of attributes to add (null not * permitted). ! * ! * @throws NullPointerException if attributes is * null. */ void addAttributes(AttributeSet attributes); /** ! * Removes the attribute with the specified name, if this * attribute is defined. This method will only remove an attribute from * this set, not from the resolving parent. ! * * @param name the attribute name (null not permitted). ! * * @throws NullPointerException if name is null. */ void removeAttribute(Object name); /** * Removes the attributes listed in names. ! * * @param names the attribute names (null not permitted). ! * ! * @throws NullPointerException if names is null * or contains any null values. */ void removeAttributes(Enumeration names); /** ! * Removes attributes from this set if they are found in the * given set. Only attributes whose key AND value are removed. ! * Removes attributes only from this set, not from the resolving parent. ! * Since the resolving parent is stored as an attribute, if * attributes has the same resolving parent as this set, the * parent will be removed from this set. ! * * @param attributes the attributes (null not permitted). */ void removeAttributes(AttributeSet attributes); *************** public interface MutableAttributeSet ext *** 107,116 **** /** * Sets the reolving parent for this set. When looking up an attribute, if * it is not found in this set, then the resolving parent is also used for ! * the lookup. ! * * @param parent the parent attribute set (null not permitted). ! * * @throws NullPointerException if parent is null. */ void setResolveParent(AttributeSet parent); --- 107,116 ---- /** * Sets the reolving parent for this set. When looking up an attribute, if * it is not found in this set, then the resolving parent is also used for ! * the lookup. ! * * @param parent the parent attribute set (null not permitted). ! * * @throws NullPointerException if parent is null. */ void setResolveParent(AttributeSet parent); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/NavigationFilter.java gcc-4.6.0/libjava/classpath/javax/swing/text/NavigationFilter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/NavigationFilter.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/NavigationFilter.java Tue Jan 11 19:46:05 2011 *************** public class NavigationFilter *** 51,70 **** public abstract void moveDot(int dot, Position.Bias bias); public abstract void setDot(int dot, Position.Bias bias); } ! public NavigationFilter() { // Do nothing here. } public void moveDot(NavigationFilter.FilterBypass fb, int dot, ! Position.Bias bias) { fb.moveDot(dot, bias); } public void setDot(NavigationFilter.FilterBypass fb, int dot, ! Position.Bias bias) { fb.setDot(dot, bias); } --- 51,70 ---- public abstract void moveDot(int dot, Position.Bias bias); public abstract void setDot(int dot, Position.Bias bias); } ! public NavigationFilter() { // Do nothing here. } public void moveDot(NavigationFilter.FilterBypass fb, int dot, ! Position.Bias bias) { fb.moveDot(dot, bias); } public void setDot(NavigationFilter.FilterBypass fb, int dot, ! Position.Bias bias) { fb.setDot(dot, bias); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/NumberFormatter.java gcc-4.6.0/libjava/classpath/javax/swing/text/NumberFormatter.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/NumberFormatter.java Tue Jan 17 18:09:40 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/NumberFormatter.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* NumberFormatter.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* NumberFormatter.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** import java.text.NumberFormat; *** 45,66 **** * NumberFormatter is an {@link InternationalFormatter} * that implements value to string and string to value conversion via * an instance of {@link NumberFormat}. ! * * @author Anthony Balkissoon abalkiss at redhat dot com * @since 1.4 */ public class NumberFormatter extends InternationalFormatter { ! /** ! * Creates a NumberFormatter with the default NumberFormat from ! * NumberFormat.getNumberInstance(). */ public NumberFormatter () { this (NumberFormat.getNumberInstance()); } ! /** * Creates a NumberFormatter with the specified NumberFormat. * @param format the NumberFormat to use for this NumberFormatter. --- 45,66 ---- * NumberFormatter is an {@link InternationalFormatter} * that implements value to string and string to value conversion via * an instance of {@link NumberFormat}. ! * * @author Anthony Balkissoon abalkiss at redhat dot com * @since 1.4 */ public class NumberFormatter extends InternationalFormatter { ! /** ! * Creates a NumberFormatter with the default NumberFormat from ! * NumberFormat.getNumberInstance(). */ public NumberFormatter () { this (NumberFormat.getNumberInstance()); } ! /** * Creates a NumberFormatter with the specified NumberFormat. * @param format the NumberFormat to use for this NumberFormatter. *************** public class NumberFormatter extends Int *** 70,80 **** super(format); setFormat(format); } ! /** * Sets the NumberFormat that this NumberFormatter will use to determine * legal values for editing and displaying. ! * * @param format the Format to use to determine legal values. */ public void setFormat (Format format) --- 70,80 ---- super(format); setFormat(format); } ! /** * Sets the NumberFormat that this NumberFormatter will use to determine * legal values for editing and displaying. ! * * @param format the Format to use to determine legal values. */ public void setFormat (Format format) diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/ParagraphView.java gcc-4.6.0/libjava/classpath/javax/swing/text/ParagraphView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/ParagraphView.java Sat Jun 28 13:29:13 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/ParagraphView.java Tue Jan 11 19:46:05 2011 *************** public class ParagraphView extends FlowV *** 297,303 **** /** * Sets the justification of the paragraph. * ! * @param j the justification to set */ protected void setJustification(int j) { --- 297,303 ---- /** * Sets the justification of the paragraph. * ! * @param j the justification to set */ protected void setJustification(int j) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/PasswordView.java gcc-4.6.0/libjava/classpath/javax/swing/text/PasswordView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/PasswordView.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/PasswordView.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PasswordView.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PasswordView.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class PasswordView *** 155,161 **** /** * Determines the preferred span for this view along an axis. ! * * @param axis to get the preferred span of * @return the preferred span of the axis */ --- 155,161 ---- /** * Determines the preferred span for this view along an axis. ! * * @param axis to get the preferred span of * @return the preferred span of the axis */ *************** public class PasswordView *** 196,202 **** * @param a - the allocated region to render into * @param b - typesafe enumeration to indicate bias to a position in the model. * @return the bounding box of the given position ! * @throws BadLocationException if the given position does not * represent a valid location in the associated document */ public Shape modelToView(int pos, Shape a, Position.Bias b) --- 196,202 ---- * @param a - the allocated region to render into * @param b - typesafe enumeration to indicate bias to a position in the model. * @return the bounding box of the given position ! * @throws BadLocationException if the given position does not * represent a valid location in the associated document */ public Shape modelToView(int pos, Shape a, Position.Bias b) *************** public class PasswordView *** 206,212 **** // Ensure metrics are up-to-date. updateMetrics(); ! // Get rectangle of the line containing position. int lineIndex = getElement().getElementIndex(pos); Rectangle rect = lineToRect(newAlloc, lineIndex); --- 206,212 ---- // Ensure metrics are up-to-date. updateMetrics(); ! // Get rectangle of the line containing position. int lineIndex = getElement().getElementIndex(pos); Rectangle rect = lineToRect(newAlloc, lineIndex); *************** public class PasswordView *** 234,249 **** } /** ! * Provides a mapping from the view coordinate space to the logical * coordinate space of the model. ! * * @param fx - the X coordinate >= 0.0f * @param fy - the Y coordinate >= 0.0f ! * @param a - the allocated region to render into * @param bias - typesafe enumeration to indicate bias to a position in the model. ! * @return the location within the model that best represents * the given point in the view ! * */ public int viewToModel(float fx, float fy, Shape a, Position.Bias[] bias) { --- 234,249 ---- } /** ! * Provides a mapping from the view coordinate space to the logical * coordinate space of the model. ! * * @param fx - the X coordinate >= 0.0f * @param fy - the Y coordinate >= 0.0f ! * @param a - the allocated region to render into * @param bias - typesafe enumeration to indicate bias to a position in the model. ! * @return the location within the model that best represents * the given point in the view ! * */ public int viewToModel(float fx, float fy, Shape a, Position.Bias[] bias) { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/PlainDocument.java gcc-4.6.0/libjava/classpath/javax/swing/text/PlainDocument.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/PlainDocument.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/PlainDocument.java Tue Jan 11 19:46:05 2011 *************** import java.util.ArrayList; *** 52,58 **** public class PlainDocument extends AbstractDocument { private static final long serialVersionUID = 4758290289196893664L; ! public static final String lineLimitAttribute = "lineLimit"; public static final String tabSizeAttribute = "tabSize"; --- 52,58 ---- public class PlainDocument extends AbstractDocument { private static final long serialVersionUID = 4758290289196893664L; ! public static final String lineLimitAttribute = "lineLimit"; public static final String tabSizeAttribute = "tabSize"; *************** public class PlainDocument extends Abstr *** 62,68 **** * createDefaultRoot() (when overridden by a subclass). */ private Element rootElement; ! public PlainDocument() { this(new GapContent()); --- 62,68 ---- * createDefaultRoot() (when overridden by a subclass). */ private Element rootElement; ! public PlainDocument() { this(new GapContent()); *************** public class PlainDocument extends Abstr *** 80,86 **** private void reindex() { Element[] lines; ! try { String str = content.getString(0, content.length()); --- 80,86 ---- private void reindex() { Element[] lines; ! try { String str = content.getString(0, content.length()); *************** public class PlainDocument extends Abstr *** 91,100 **** elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, i + 1)); j = i + 1; } ! if (j < content.length()) elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, content.length())); ! lines = new Element[elts.size()]; for (int i = 0; i < elts.size(); ++i) lines[i] = (Element) elts.get(i); --- 91,100 ---- elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, i + 1)); j = i + 1; } ! if (j < content.length()) elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, content.length())); ! lines = new Element[elts.size()]; for (int i = 0; i < elts.size(); ++i) lines[i] = (Element) elts.get(i); *************** public class PlainDocument extends Abstr *** 116,122 **** Element[] array = new Element[1]; array[0] = createLeafElement(root, null, 0, 1); root.replace(0, 0, array); ! return root; } --- 116,122 ---- Element[] array = new Element[1]; array[0] = createLeafElement(root, null, 0, 1); root.replace(0, 0, array); ! return root; } *************** public class PlainDocument extends Abstr *** 239,247 **** removed = new Element [i2 - i1 + 1]; for (int i = i1; i <= i2; i++) removed[i-i1] = rootElement.getElement(i); ! int start = rootElement.getElement(i1).getStartOffset(); ! int end = rootElement.getElement(i2).getEndOffset(); added[0] = createLeafElement(rootElement, SimpleAttributeSet.EMPTY, start, end); --- 239,247 ---- removed = new Element [i2 - i1 + 1]; for (int i = i1; i <= i2; i++) removed[i-i1] = rootElement.getElement(i); ! int start = rootElement.getElement(i1).getStartOffset(); ! int end = rootElement.getElement(i2).getEndOffset(); added[0] = createLeafElement(rootElement, SimpleAttributeSet.EMPTY, start, end); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/PlainView.java gcc-4.6.0/libjava/classpath/javax/swing/text/PlainView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/PlainView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/PlainView.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* PlainView.java -- Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* PlainView.java -- Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class PlainView extends View impl *** 59,65 **** * The color that is used to draw disabled text fields. */ Color disabledColor; ! /** * While painting this is the textcomponent's current start index * of the selection. --- 59,65 ---- * The color that is used to draw disabled text fields. */ Color disabledColor; ! /** * While painting this is the textcomponent's current start index * of the selection. *************** public class PlainView extends View impl *** 73,85 **** int selectionEnd; Font font; ! /** The length of the longest line in the Document **/ float maxLineLength = -1; ! /** The longest line in the Document **/ Element longestLine = null; ! protected FontMetrics metrics; /** --- 73,85 ---- int selectionEnd; Font font; ! /** The length of the longest line in the Document **/ float maxLineLength = -1; ! /** The longest line in the Document **/ Element longestLine = null; ! protected FontMetrics metrics; /** *************** public class PlainView extends View impl *** 112,123 **** if (this.font != font) { ! this.font = font; ! metrics = component.getFontMetrics(font); tabSize = getTabSize() * metrics.charWidth('m'); } } ! /** * @since 1.4 */ --- 112,123 ---- if (this.font != font) { ! this.font = font; ! metrics = component.getFontMetrics(font); tabSize = getTabSize() * metrics.charWidth('m'); } } ! /** * @since 1.4 */ *************** public class PlainView extends View impl *** 125,135 **** { // Ensure metrics are up-to-date. updateMetrics(); ! Rectangle rect = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); int fontHeight = metrics.getHeight(); return new Rectangle(rect.x, rect.y + (line * fontHeight), ! rect.width, fontHeight); } public Shape modelToView(int position, Shape a, Position.Bias b) --- 125,135 ---- { // Ensure metrics are up-to-date. updateMetrics(); ! Rectangle rect = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); int fontHeight = metrics.getHeight(); return new Rectangle(rect.x, rect.y + (line * fontHeight), ! rect.width, fontHeight); } public Shape modelToView(int position, Shape a, Position.Bias b) *************** public class PlainView extends View impl *** 137,143 **** { // Ensure metrics are up-to-date. updateMetrics(); ! Document document = getDocument(); // Get rectangle of the line containing position. --- 137,143 ---- { // Ensure metrics are up-to-date. updateMetrics(); ! Document document = getDocument(); // Get rectangle of the line containing position. *************** public class PlainView extends View impl *** 151,157 **** Segment segment = getLineBuffer(); document.getText(lineStart, position - lineStart, segment); int xoffset = Utilities.getTabbedTextWidth(segment, metrics, tabBase, ! this, lineStart); // Calc the real rectangle. rect.x += xoffset; --- 151,157 ---- Segment segment = getLineBuffer(); document.getText(lineStart, position - lineStart, segment); int xoffset = Utilities.getTabbedTextWidth(segment, metrics, tabBase, ! this, lineStart); // Calc the real rectangle. rect.x += xoffset; *************** public class PlainView extends View impl *** 160,166 **** return rect; } ! /** * Draws a line of text. The X and Y coordinates specify the start of * the baseline of the line. --- 160,166 ---- return rect; } ! /** * Draws a line of text. The X and Y coordinates specify the start of * the baseline of the line. *************** public class PlainView extends View impl *** 177,183 **** Element line = getElement().getElement(lineIndex); int startOffset = line.getStartOffset(); int endOffset = line.getEndOffset() - 1; ! if (selectionStart <= startOffset) // Selection starts before the line ... if (selectionEnd <= startOffset) --- 177,183 ---- Element line = getElement().getElement(lineIndex); int startOffset = line.getStartOffset(); int endOffset = line.getEndOffset() - 1; ! if (selectionStart <= startOffset) // Selection starts before the line ... if (selectionEnd <= startOffset) *************** public class PlainView extends View impl *** 265,271 **** { // Ensure metrics are up-to-date. updateMetrics(); ! JTextComponent textComponent = (JTextComponent) getContainer(); selectedColor = textComponent.getSelectedTextColor(); --- 265,271 ---- { // Ensure metrics are up-to-date. updateMetrics(); ! JTextComponent textComponent = (JTextComponent) getContainer(); selectedColor = textComponent.getSelectedTextColor(); *************** public class PlainView extends View impl *** 324,330 **** * Returns the tab size of a tab. Checks the Document's * properties for PlainDocument.tabSizeAttribute and returns it if it is * defined, otherwise returns 8. ! * * @return the tab size. */ protected int getTabSize() --- 324,330 ---- * Returns the tab size of a tab. Checks the Document's * properties for PlainDocument.tabSizeAttribute and returns it if it is * defined, otherwise returns 8. ! * * @return the tab size. */ protected int getTabSize() *************** public class PlainView extends View impl *** 339,345 **** * Returns the next tab stop position after a given reference position. * * This implementation ignores the tabStop argument. ! * * @param x the current x position in pixels * @param tabStop the position within the text stream that the tab occured at */ --- 339,345 ---- * Returns the next tab stop position after a given reference position. * * This implementation ignores the tabStop argument. ! * * @param x the current x position in pixels * @param tabStop the position within the text stream that the tab occured at */ *************** public class PlainView extends View impl *** 351,357 **** int numTabs = (((int) x) - tabBase) / tabSize; next = tabBase + (numTabs + 1) * tabSize; } ! return next; } /** --- 351,357 ---- int numTabs = (((int) x) - tabBase) / tabSize; next = tabBase + (numTabs + 1) * tabSize; } ! return next; } /** *************** public class PlainView extends View impl *** 363,369 **** // if the longest line is cached, return the cached value if (maxLineLength != -1) return maxLineLength; ! // otherwise we have to go through all the lines and find it Element el = getElement(); Segment seg = getLineBuffer(); --- 363,369 ---- // if the longest line is cached, return the cached value if (maxLineLength != -1) return maxLineLength; ! // otherwise we have to go through all the lines and find it Element el = getElement(); Segment seg = getLineBuffer(); *************** public class PlainView extends View impl *** 380,392 **** catch (BadLocationException ex) { AssertionError ae = new AssertionError("Unexpected bad location"); ! ae.initCause(ex); ! throw ae; } ! if (seg == null || seg.array == null || seg.count == 0) continue; ! int width = metrics.charsWidth(seg.array, seg.offset, seg.count); if (width > span) { --- 380,392 ---- catch (BadLocationException ex) { AssertionError ae = new AssertionError("Unexpected bad location"); ! ae.initCause(ex); ! throw ae; } ! if (seg == null || seg.array == null || seg.count == 0) continue; ! int width = metrics.charsWidth(seg.array, seg.offset, seg.count); if (width > span) { *************** public class PlainView extends View impl *** 397,403 **** maxLineLength = span; return maxLineLength; } ! public float getPreferredSpan(int axis) { if (axis != X_AXIS && axis != Y_AXIS) --- 397,403 ---- maxLineLength = span; return maxLineLength; } ! public float getPreferredSpan(int axis) { if (axis != X_AXIS && axis != Y_AXIS) *************** public class PlainView extends View impl *** 419,425 **** span = metrics.getHeight() * el.getElementCount(); break; } ! return span; } --- 419,425 ---- span = metrics.getHeight() * el.getElementCount(); break; } ! return span; } *************** public class PlainView extends View impl *** 483,496 **** pos = -1; } } ! } } // Bias is always forward. b[0] = Position.Bias.Forward; return pos; ! } ! /** * Since insertUpdate and removeUpdate each deal with children * Elements being both added and removed, they both have to perform --- 483,496 ---- pos = -1; } } ! } } // Bias is always forward. b[0] = Position.Bias.Forward; return pos; ! } ! /** * Since insertUpdate and removeUpdate each deal with children * Elements being both added and removed, they both have to perform *************** public class PlainView extends View impl *** 592,598 **** /** * This method is called when something is inserted into the Document * that this View is displaying. ! * * @param changes the DocumentEvent for the changes. * @param a the allocation of the View * @param f the ViewFactory used to rebuild --- 592,598 ---- /** * This method is called when something is inserted into the Document * that this View is displaying. ! * * @param changes the DocumentEvent for the changes. * @param a the allocation of the View * @param f the ViewFactory used to rebuild *************** public class PlainView extends View impl *** 605,611 **** /** * This method is called when something is removed from the Document * that this View is displaying. ! * * @param changes the DocumentEvent for the changes. * @param a the allocation of the View * @param f the ViewFactory used to rebuild --- 605,611 ---- /** * This method is called when something is removed from the Document * that this View is displaying. ! * * @param changes the DocumentEvent for the changes. * @param a the allocation of the View * @param f the ViewFactory used to rebuild *************** public class PlainView extends View impl *** 614,641 **** { updateDamage(changes, a, f); } ! /** ! * This method is called when attributes were changed in the * Document in a location that this view is responsible for. */ public void changedUpdate (DocumentEvent changes, Shape a, ViewFactory f) { updateDamage(changes, a, f); } ! /** * Repaint the given line range. This is called from insertUpdate, ! * changedUpdate, and removeUpdate when no new lines were added ! * and no lines were removed, to repaint the line that was * modified. ! * * @param line0 the start of the range * @param line1 the end of the range * @param a the rendering region of the host * @param host the Component that uses this View (used to call repaint * on that Component) ! * * @since 1.4 */ protected void damageLineRange (int line0, int line1, Shape a, Component host) --- 614,641 ---- { updateDamage(changes, a, f); } ! /** ! * This method is called when attributes were changed in the * Document in a location that this view is responsible for. */ public void changedUpdate (DocumentEvent changes, Shape a, ViewFactory f) { updateDamage(changes, a, f); } ! /** * Repaint the given line range. This is called from insertUpdate, ! * changedUpdate, and removeUpdate when no new lines were added ! * and no lines were removed, to repaint the line that was * modified. ! * * @param line0 the start of the range * @param line1 the end of the range * @param a the rendering region of the host * @param host the Component that uses this View (used to call repaint * on that Component) ! * * @since 1.4 */ protected void damageLineRange (int line0, int line1, Shape a, Component host) *************** public class PlainView extends View impl *** 656,662 **** rec0.height, rec1); host.repaint(repaintRec.x, repaintRec.y, repaintRec.width, repaintRec.height); ! } } /** --- 656,662 ---- rec0.height, rec1); host.repaint(repaintRec.x, repaintRec.y, repaintRec.width, repaintRec.height); ! } } /** *************** public class PlainView extends View impl *** 722,725 **** lineEl.getStartOffset()); } } - --- 722,724 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/Position.java gcc-4.6.0/libjava/classpath/javax/swing/text/Position.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/Position.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/Position.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Position.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Position.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public interface Position *** 46,52 **** public static final Bias Forward = new Bias("Forward"); private String name; ! private Bias(String n) { name = n; --- 46,52 ---- public static final Bias Forward = new Bias("Forward"); private String name; ! private Bias(String n) { name = n; *************** public interface Position *** 57,62 **** return name; } } ! int getOffset(); } --- 57,62 ---- return name; } } ! int getOffset(); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/Segment.java gcc-4.6.0/libjava/classpath/javax/swing/text/Segment.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/Segment.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/Segment.java Tue Jan 11 19:46:05 2011 *************** import java.text.CharacterIterator; *** 45,60 **** public class Segment implements Cloneable, CharacterIterator { private boolean partialReturn; ! /** The current index. */ private int current; ! /** Storage for the characters (may contain additional characters). */ public char[] array; ! /** The number of characters in the segment. */ public int count; ! /** The offset of the first character in the segment. */ public int offset; --- 45,60 ---- public class Segment implements Cloneable, CharacterIterator { private boolean partialReturn; ! /** The current index. */ private int current; ! /** Storage for the characters (may contain additional characters). */ public char[] array; ! /** The number of characters in the segment. */ public int count; ! /** The offset of the first character in the segment. */ public int offset; *************** public class Segment implements Cloneabl *** 68,74 **** /** * Creates a new Segment. ! * * @param array the underlying character data. * @param offset the offset of the first character in the segment. * @param count the number of characters in the segment. --- 68,74 ---- /** * Creates a new Segment. ! * * @param array the underlying character data. * @param offset the offset of the first character in the segment. * @param count the number of characters in the segment. *************** public class Segment implements Cloneabl *** 79,116 **** this.offset = offset; this.count = count; } ! /** * Clones the segment (note that the underlying character array is not cloned, * just the reference to it). ! * * @return A clone of the segment. */ public Object clone() { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! return null; } } /** * Returns the character at the current index. If the segment consists of ! * zero characters, or the current index has passed the end of the * characters in the segment, this method returns {@link #DONE}. ! * * @return The character at the current index. */ public char current() { if (count == 0 ! || current >= getEndIndex()) return DONE; ! return array[current]; } --- 79,116 ---- this.offset = offset; this.count = count; } ! /** * Clones the segment (note that the underlying character array is not cloned, * just the reference to it). ! * * @return A clone of the segment. */ public Object clone() { try { ! return super.clone(); } catch (CloneNotSupportedException e) { ! return null; } } /** * Returns the character at the current index. If the segment consists of ! * zero characters, or the current index has passed the end of the * characters in the segment, this method returns {@link #DONE}. ! * * @return The character at the current index. */ public char current() { if (count == 0 ! || current >= getEndIndex()) return DONE; ! return array[current]; } *************** public class Segment implements Cloneabl *** 118,125 **** * Sets the current index to the first character in the segment and returns * that character. If the segment contains zero characters, this method * returns {@link #DONE}. ! * ! * @return The first character in the segment, or {@link #DONE} if the * segment contains zero characters. */ public char first() --- 118,125 ---- * Sets the current index to the first character in the segment and returns * that character. If the segment contains zero characters, this method * returns {@link #DONE}. ! * ! * @return The first character in the segment, or {@link #DONE} if the * segment contains zero characters. */ public char first() *************** public class Segment implements Cloneabl *** 133,139 **** /** * Returns the index of the first character in the segment. ! * * @return The index of the first character. */ public int getBeginIndex() --- 133,139 ---- /** * Returns the index of the first character in the segment. ! * * @return The index of the first character. */ public int getBeginIndex() *************** public class Segment implements Cloneabl *** 142,151 **** } /** ! * Returns the end index for the segment (one position beyond the last ! * character in the segment - note that this can be outside the range of the * underlying character array). ! * * @return The end index for the segment. */ public int getEndIndex() --- 142,151 ---- } /** ! * Returns the end index for the segment (one position beyond the last ! * character in the segment - note that this can be outside the range of the * underlying character array). ! * * @return The end index for the segment. */ public int getEndIndex() *************** public class Segment implements Cloneabl *** 155,161 **** /** * Returns the index of the current character in the segment. ! * * @return The index of the current character. */ public int getIndex() --- 155,161 ---- /** * Returns the index of the current character in the segment. ! * * @return The index of the current character. */ public int getIndex() *************** public class Segment implements Cloneabl *** 164,175 **** } /** ! * Sets the current index to point to the last character in the segment and ! * returns that character. If the segment contains zero characters, the ! * current index is set to {@link #getEndIndex()} and this method returns * {@link #DONE}. ! * ! * @return The last character in the segment, or {@link #DONE} if the * segment contains zero characters. */ public char last() --- 164,175 ---- } /** ! * Sets the current index to point to the last character in the segment and ! * returns that character. If the segment contains zero characters, the ! * current index is set to {@link #getEndIndex()} and this method returns * {@link #DONE}. ! * ! * @return The last character in the segment, or {@link #DONE} if the * segment contains zero characters. */ public char last() *************** public class Segment implements Cloneabl *** 179,198 **** current = getEndIndex(); return DONE; } ! current = getEndIndex() - 1; return array[current]; } /** ! * Sets the current index to point to the next character in the segment and * returns that character. If the next character position is past the end of * the segment, the index is set to {@link #getEndIndex()} and the method ! * returns {@link #DONE}. If the segment contains zero characters, this * method returns {@link #DONE}. ! * * @return The next character in the segment or {@link #DONE} (if the next ! * character position is past the end of the segment or if the * segment contains zero characters). */ public char next() --- 179,198 ---- current = getEndIndex(); return DONE; } ! current = getEndIndex() - 1; return array[current]; } /** ! * Sets the current index to point to the next character in the segment and * returns that character. If the next character position is past the end of * the segment, the index is set to {@link #getEndIndex()} and the method ! * returns {@link #DONE}. If the segment contains zero characters, this * method returns {@link #DONE}. ! * * @return The next character in the segment or {@link #DONE} (if the next ! * character position is past the end of the segment or if the * segment contains zero characters). */ public char next() *************** public class Segment implements Cloneabl *** 202,231 **** if ((current + 1) >= getEndIndex()) { ! current = getEndIndex(); ! return DONE; } ! current++; return array[current]; } /** ! * Sets the current index to point to the previous character in the segment ! * and returns that character. If the current index is equal to ! * {@link #getBeginIndex()}, or if the segment contains zero characters, this * method returns {@link #DONE}. ! * ! * @return The previous character in the segment or {@link #DONE} (if the ! * current character position is at the beginning of the segment or * if the segment contains zero characters). */ public char previous() { if (count == 0 ! || current == getBeginIndex()) return DONE; ! current--; return array[current]; } --- 202,231 ---- if ((current + 1) >= getEndIndex()) { ! current = getEndIndex(); ! return DONE; } ! current++; return array[current]; } /** ! * Sets the current index to point to the previous character in the segment ! * and returns that character. If the current index is equal to ! * {@link #getBeginIndex()}, or if the segment contains zero characters, this * method returns {@link #DONE}. ! * ! * @return The previous character in the segment or {@link #DONE} (if the ! * current character position is at the beginning of the segment or * if the segment contains zero characters). */ public char previous() { if (count == 0 ! || current == getBeginIndex()) return DONE; ! current--; return array[current]; } *************** public class Segment implements Cloneabl *** 233,252 **** /** * Sets the current index and returns the character at that position (or * {@link #DONE} if the index is equal to {@link #getEndIndex()}. ! * * @param position the current position. ! * * @return The character at the specified position, or ! * {@link #DONE} if position is equal to * {@link #getEndIndex()}. ! * * @throws IllegalArgumentException if position is not in the * range {@link #getBeginIndex()} to {@link #getEndIndex()}. */ public char setIndex(int position) { if (position < getBeginIndex() ! || position > getEndIndex()) throw new IllegalArgumentException("position: " + position + ", beginIndex: " + getBeginIndex() + ", endIndex: " + getEndIndex() --- 233,252 ---- /** * Sets the current index and returns the character at that position (or * {@link #DONE} if the index is equal to {@link #getEndIndex()}. ! * * @param position the current position. ! * * @return The character at the specified position, or ! * {@link #DONE} if position is equal to * {@link #getEndIndex()}. ! * * @throws IllegalArgumentException if position is not in the * range {@link #getBeginIndex()} to {@link #getEndIndex()}. */ public char setIndex(int position) { if (position < getBeginIndex() ! || position > getEndIndex()) throw new IllegalArgumentException("position: " + position + ", beginIndex: " + getBeginIndex() + ", endIndex: " + getEndIndex() *************** public class Segment implements Cloneabl *** 256,270 **** if (position == getEndIndex()) return DONE; ! return array[current]; } /** ! * Returns a String containing the same characters as this * Segment. ! * ! * @return A String containing the same characters as this * Segment. */ public String toString() --- 256,270 ---- if (position == getEndIndex()) return DONE; ! return array[current]; } /** ! * Returns a String containing the same characters as this * Segment. ! * ! * @return A String containing the same characters as this * Segment. */ public String toString() *************** public class Segment implements Cloneabl *** 274,292 **** /** * Sets the partial return flag. ! * * @param p the new value of the flag. ! * * @since 1.4 */ public void setPartialReturn(boolean p) { partialReturn = p; } ! /** * Returns the partial return flag. ! * * @return The partial return flag. * @since 1.4 */ --- 274,292 ---- /** * Sets the partial return flag. ! * * @param p the new value of the flag. ! * * @since 1.4 */ public void setPartialReturn(boolean p) { partialReturn = p; } ! /** * Returns the partial return flag. ! * * @return The partial return flag. * @since 1.4 */ diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/SimpleAttributeSet.java gcc-4.6.0/libjava/classpath/javax/swing/text/SimpleAttributeSet.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/SimpleAttributeSet.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/SimpleAttributeSet.java Tue Jan 11 19:46:05 2011 *************** public class SimpleAttributeSet *** 66,78 **** { tab = new Hashtable(); } ! /** * Creates a new SimpleAttributeSet with the same attributes * and resolve parent as the specified set. ! * * @param a the attributes (null not permitted). ! * * @throws NullPointerException if a is null. */ public SimpleAttributeSet(AttributeSet a) --- 66,78 ---- { tab = new Hashtable(); } ! /** * Creates a new SimpleAttributeSet with the same attributes * and resolve parent as the specified set. ! * * @param a the attributes (null not permitted). ! * * @throws NullPointerException if a is null. */ public SimpleAttributeSet(AttributeSet a) *************** public class SimpleAttributeSet *** 85,94 **** * Adds an attribute with the given name and value * to the set. If the set already contains an attribute with the given * name, the attribute value is updated. ! * * @param name the attribute name (null not permitted). * @param value the value (null not permitted). ! * * @throws NullPointerException if either argument is null. */ public void addAttribute(Object name, Object value) --- 85,94 ---- * Adds an attribute with the given name and value * to the set. If the set already contains an attribute with the given * name, the attribute value is updated. ! * * @param name the attribute name (null not permitted). * @param value the value (null not permitted). ! * * @throws NullPointerException if either argument is null. */ public void addAttribute(Object name, Object value) *************** public class SimpleAttributeSet *** 98,108 **** /** * Adds all the attributes from attributes to this set. ! * * @param attributes the set of attributes to add (null not * permitted). ! * ! * @throws NullPointerException if attributes is * null. */ public void addAttributes(AttributeSet attributes) --- 98,108 ---- /** * Adds all the attributes from attributes to this set. ! * * @param attributes the set of attributes to add (null not * permitted). ! * ! * @throws NullPointerException if attributes is * null. */ public void addAttributes(AttributeSet attributes) *************** public class SimpleAttributeSet *** 118,124 **** /** * Returns a clone of the attribute set. ! * * @return A clone of the attribute set. */ public Object clone() --- 118,124 ---- /** * Returns a clone of the attribute set. ! * * @return A clone of the attribute set. */ public Object clone() *************** public class SimpleAttributeSet *** 159,165 **** return false; } } ! /** * Returns true if the given name and value are found in this AttributeSet. * Does not check the resolve parent. --- 159,165 ---- return false; } } ! /** * Returns true if the given name and value are found in this AttributeSet. * Does not check the resolve parent. *************** public class SimpleAttributeSet *** 169,175 **** */ boolean containsAttributeLocally(Object name, Object value) { ! return tab.containsKey(name) && tab.get(name).equals(value); } --- 169,175 ---- */ boolean containsAttributeLocally(Object name, Object value) { ! return tab.containsKey(name) && tab.get(name).equals(value); } *************** public class SimpleAttributeSet *** 190,196 **** Object name = e.nextElement(); Object val = attributes.getAttribute(name); if (! containsAttribute(name, val)) ! return false; } return true; } --- 190,196 ---- Object name = e.nextElement(); Object val = attributes.getAttribute(name); if (! containsAttribute(name, val)) ! return false; } return true; } *************** public class SimpleAttributeSet *** 207,239 **** /** * Checks this set for equality with an arbitrary object. ! * * @param obj the object (null permitted). ! * * @return true if this set is equal to obj, and ! * false otherwise. */ public boolean equals(Object obj) { ! return (obj instanceof AttributeSet) && this.isEqual((AttributeSet) obj); } /** ! * Returns the value of the specified attribute, or null if * there is no attribute with that name. If the attribute is not defined * directly in this set, the parent hierarchy (if there is one) will be * used. ! * * @param name the attribute (null not permitted). ! * * @throws NullPointerException if name is null. */ public Object getAttribute(Object name) { Object val = tab.get(name); ! if (val != null) return val; AttributeSet p = getResolveParent(); --- 207,239 ---- /** * Checks this set for equality with an arbitrary object. ! * * @param obj the object (null permitted). ! * * @return true if this set is equal to obj, and ! * false otherwise. */ public boolean equals(Object obj) { ! return (obj instanceof AttributeSet) && this.isEqual((AttributeSet) obj); } /** ! * Returns the value of the specified attribute, or null if * there is no attribute with that name. If the attribute is not defined * directly in this set, the parent hierarchy (if there is one) will be * used. ! * * @param name the attribute (null not permitted). ! * * @throws NullPointerException if name is null. */ public Object getAttribute(Object name) { Object val = tab.get(name); ! if (val != null) return val; AttributeSet p = getResolveParent(); *************** public class SimpleAttributeSet *** 245,254 **** /** * Returns the number of attributes stored in this set, plus 1 if a parent ! * has been specified (the reference to the parent is stored as a special * attribute). The attributes stored in the parent do NOT contribute * to the count. ! * * @return The attribute count. */ public int getAttributeCount() --- 245,254 ---- /** * Returns the number of attributes stored in this set, plus 1 if a parent ! * has been specified (the reference to the parent is stored as a special * attribute). The attributes stored in the parent do NOT contribute * to the count. ! * * @return The attribute count. */ public int getAttributeCount() *************** public class SimpleAttributeSet *** 258,264 **** /** * Returns an enumeration of the attribute names. ! * * @return An enumeration of the attribute names. */ public Enumeration getAttributeNames() --- 258,264 ---- /** * Returns an enumeration of the attribute names. ! * * @return An enumeration of the attribute names. */ public Enumeration getAttributeNames() *************** public class SimpleAttributeSet *** 268,276 **** /** * Returns the resolving parent. ! * * @return The resolving parent (possibly null). ! * * @see #setResolveParent(AttributeSet) */ public AttributeSet getResolveParent() --- 268,276 ---- /** * Returns the resolving parent. ! * * @return The resolving parent (possibly null). ! * * @see #setResolveParent(AttributeSet) */ public AttributeSet getResolveParent() *************** public class SimpleAttributeSet *** 280,286 **** /** * Returns a hash code for this instance. ! * * @return A hash code. */ public int hashCode() --- 280,286 ---- /** * Returns a hash code for this instance. ! * * @return A hash code. */ public int hashCode() *************** public class SimpleAttributeSet *** 292,298 **** * Returns true if the given attribute is defined in this set, * and false otherwise. The parent attribute set is not * checked. ! * * @param attrName the attribute name (null not permitted). */ public boolean isDefined(Object attrName) --- 292,298 ---- * Returns true if the given attribute is defined in this set, * and false otherwise. The parent attribute set is not * checked. ! * * @param attrName the attribute name (null not permitted). */ public boolean isDefined(Object attrName) *************** public class SimpleAttributeSet *** 301,328 **** } /** ! * Returns true if the set contains no attributes, and ! * false otherwise. Note that the resolving parent is ! * stored as an attribute, so this method will return false if * a resolving parent is set. ! * ! * @return true if the set contains no attributes, and * false otherwise. */ public boolean isEmpty() { ! return tab.isEmpty(); } /** * Returns true if the given set has the same number of attributes * as this set and containsAttributes(attr) returns * true. ! * * @param attr the attribute set (null not permitted). ! * * @return A boolean. ! * * @throws NullPointerException if attr is null. */ public boolean isEqual(AttributeSet attr) --- 301,328 ---- } /** ! * Returns true if the set contains no attributes, and ! * false otherwise. Note that the resolving parent is ! * stored as an attribute, so this method will return false if * a resolving parent is set. ! * ! * @return true if the set contains no attributes, and * false otherwise. */ public boolean isEmpty() { ! return tab.isEmpty(); } /** * Returns true if the given set has the same number of attributes * as this set and containsAttributes(attr) returns * true. ! * * @param attr the attribute set (null not permitted). ! * * @return A boolean. ! * * @throws NullPointerException if attr is null. */ public boolean isEqual(AttributeSet attr) *************** public class SimpleAttributeSet *** 330,343 **** return getAttributeCount() == attr.getAttributeCount() && this.containsAttributes(attr); } ! /** ! * Removes the attribute with the specified name, if this * attribute is defined. This method will only remove an attribute from * this set, not from the resolving parent. ! * * @param name the attribute name (null not permitted). ! * * @throws NullPointerException if name is null. */ public void removeAttribute(Object name) --- 330,343 ---- return getAttributeCount() == attr.getAttributeCount() && this.containsAttributes(attr); } ! /** ! * Removes the attribute with the specified name, if this * attribute is defined. This method will only remove an attribute from * this set, not from the resolving parent. ! * * @param name the attribute name (null not permitted). ! * * @throws NullPointerException if name is null. */ public void removeAttribute(Object name) *************** public class SimpleAttributeSet *** 346,358 **** } /** ! * Removes attributes from this set if they are found in the * given set. Only attributes whose key AND value are removed. ! * Removes attributes only from this set, not from the resolving parent. ! * Since the resolving parent is stored as an attribute, if * attributes has the same resolving parent as this set, the * parent will be removed from this set. ! * * @param attributes the attributes (null not permitted). */ public void removeAttributes(AttributeSet attributes) --- 346,358 ---- } /** ! * Removes attributes from this set if they are found in the * given set. Only attributes whose key AND value are removed. ! * Removes attributes only from this set, not from the resolving parent. ! * Since the resolving parent is stored as an attribute, if * attributes has the same resolving parent as this set, the * parent will be removed from this set. ! * * @param attributes the attributes (null not permitted). */ public void removeAttributes(AttributeSet attributes) *************** public class SimpleAttributeSet *** 363,378 **** Object name = e.nextElement(); Object val = attributes.getAttribute(name); if (containsAttributeLocally(name, val)) ! removeAttribute(name); } } /** * Removes the attributes listed in names. ! * * @param names the attribute names (null not permitted). ! * ! * @throws NullPointerException if names is null * or contains any null values. */ public void removeAttributes(Enumeration names) --- 363,378 ---- Object name = e.nextElement(); Object val = attributes.getAttribute(name); if (containsAttributeLocally(name, val)) ! removeAttribute(name); } } /** * Removes the attributes listed in names. ! * * @param names the attribute names (null not permitted). ! * ! * @throws NullPointerException if names is null * or contains any null values. */ public void removeAttributes(Enumeration names) *************** public class SimpleAttributeSet *** 380,386 **** while (names.hasMoreElements()) { removeAttribute(names.nextElement()); ! } } /** --- 380,386 ---- while (names.hasMoreElements()) { removeAttribute(names.nextElement()); ! } } /** *************** public class SimpleAttributeSet *** 388,415 **** * it is not found in this set, then the resolving parent is also used for * the lookup. *

                                    ! * Note that the parent is stored as an attribute, and will contribute 1 to ! * the count returned by {@link #getAttributeCount()}. ! * * @param parent the parent attribute set (null not permitted). ! * * @throws NullPointerException if parent is null. ! * * @see #setResolveParent(AttributeSet) */ public void setResolveParent(AttributeSet parent) { addAttribute(ResolveAttribute, parent); } ! /** * Returns a string representation of this instance, typically used for * debugging purposes. ! * * @return A string representation of this instance. */ public String toString() { return tab.toString(); ! } } --- 388,415 ---- * it is not found in this set, then the resolving parent is also used for * the lookup. *

                                    ! * Note that the parent is stored as an attribute, and will contribute 1 to ! * the count returned by {@link #getAttributeCount()}. ! * * @param parent the parent attribute set (null not permitted). ! * * @throws NullPointerException if parent is null. ! * * @see #setResolveParent(AttributeSet) */ public void setResolveParent(AttributeSet parent) { addAttribute(ResolveAttribute, parent); } ! /** * Returns a string representation of this instance, typically used for * debugging purposes. ! * * @return A string representation of this instance. */ public String toString() { return tab.toString(); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/StringContent.java gcc-4.6.0/libjava/classpath/javax/swing/text/StringContent.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/StringContent.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/StringContent.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.undo.UndoableEdit; *** 54,68 **** * An implementation of the AbstractDocument.Content * interface useful for small documents or debugging. The character * content is a simple character array. It's not really efficient. ! * *

                                    Do not use this class for large size.

                                    */ ! public final class StringContent implements AbstractDocument.Content, Serializable { /** * Stores a reference to a mark that can be resetted to the original value ! * after a mark has been moved. This is used for undoing actions. */ private class UndoPosRef { --- 54,68 ---- * An implementation of the AbstractDocument.Content * interface useful for small documents or debugging. The character * content is a simple character array. It's not really efficient. ! * *

                                    Do not use this class for large size.

                                    */ ! public final class StringContent implements AbstractDocument.Content, Serializable { /** * Stores a reference to a mark that can be resetted to the original value ! * after a mark has been moved. This is used for undoing actions. */ private class UndoPosRef { *************** public final class StringContent *** 102,108 **** * the actual offset of the position. This is pulled out of the * GapContentPosition object so that the mark and position can be handled * independently, and most important, so that the StickyPosition can ! * be garbage collected while we still hold a reference to the Mark object. */ private class Mark { --- 102,108 ---- * the actual offset of the position. This is pulled out of the * GapContentPosition object so that the mark and position can be handled * independently, and most important, so that the StickyPosition can ! * be garbage collected while we still hold a reference to the Mark object. */ private class Mark { *************** public final class StringContent *** 148,154 **** private class InsertUndo extends AbstractUndoableEdit { private int start; ! private int length; private String redoContent; --- 148,154 ---- private class InsertUndo extends AbstractUndoableEdit { private int start; ! private int length; private String redoContent; *************** public final class StringContent *** 177,183 **** throw new CannotUndoException(); } } ! public void redo() { super.redo(); --- 177,183 ---- throw new CannotUndoException(); } } ! public void redo() { super.redo(); *************** public final class StringContent *** 303,310 **** /** * Creates a new instance containing the string "\n". ! * ! * @param initialLength the initial length of the underlying character * array used to store the content. */ public StringContent(int initialLength) --- 303,310 ---- /** * Creates a new instance containing the string "\n". ! * ! * @param initialLength the initial length of the underlying character * array used to store the content. */ public StringContent(int initialLength) *************** public final class StringContent *** 337,346 **** * Creates a position reference for the character at the given offset. The * position offset will be automatically updated when new characters are * inserted into or removed from the content. ! * * @param offset the character offset. ! * ! * @throws BadLocationException if offset is outside the bounds of the * content. */ public Position createPosition(int offset) throws BadLocationException --- 337,346 ---- * Creates a position reference for the character at the given offset. The * position offset will be automatically updated when new characters are * inserted into or removed from the content. ! * * @param offset the character offset. ! * ! * @throws BadLocationException if offset is outside the bounds of the * content. */ public Position createPosition(int offset) throws BadLocationException *************** public final class StringContent *** 351,376 **** StickyPosition sp = new StickyPosition(offset); return sp; } ! /** * Returns the length of the string content, including the '\n' character at * the end. ! * * @return The length of the string content. */ public int length() { return count; } ! /** ! * Inserts str at the given position and returns an * {@link UndoableEdit} that enables undo/redo support. ! * ! * @param where the insertion point (must be less than * length()). * @param str the string to insert (null not permitted). ! * * @return An object that can undo the insertion. */ public UndoableEdit insertString(int where, String str) --- 351,376 ---- StickyPosition sp = new StickyPosition(offset); return sp; } ! /** * Returns the length of the string content, including the '\n' character at * the end. ! * * @return The length of the string content. */ public int length() { return count; } ! /** ! * Inserts str at the given position and returns an * {@link UndoableEdit} that enables undo/redo support. ! * ! * @param where the insertion point (must be less than * length()). * @param str the string to insert (null not permitted). ! * * @return An object that can undo the insertion. */ public UndoableEdit insertString(int where, String str) *************** public final class StringContent *** 402,424 **** InsertUndo iundo = new InsertUndo(where, insert.length); return iundo; } ! /** ! * Removes the specified range of characters and returns an * {@link UndoableEdit} that enables undo/redo support. ! * * @param where the starting index. * @param nitems the number of characters. ! * * @return An object that can undo the removal. ! * * @throws BadLocationException if the character range extends outside the * bounds of the content OR includes the last character. */ public UndoableEdit remove(int where, int nitems) throws BadLocationException { checkLocation(where, nitems + 1); ! RemoveUndo rundo = new RemoveUndo(where, new String(this.content, where, nitems)); replace(where, nitems, EMPTY); --- 402,424 ---- InsertUndo iundo = new InsertUndo(where, insert.length); return iundo; } ! /** ! * Removes the specified range of characters and returns an * {@link UndoableEdit} that enables undo/redo support. ! * * @param where the starting index. * @param nitems the number of characters. ! * * @return An object that can undo the removal. ! * * @throws BadLocationException if the character range extends outside the * bounds of the content OR includes the last character. */ public UndoableEdit remove(int where, int nitems) throws BadLocationException { checkLocation(where, nitems + 1); ! RemoveUndo rundo = new RemoveUndo(where, new String(this.content, where, nitems)); replace(where, nitems, EMPTY); *************** public final class StringContent *** 464,478 **** } /** ! * Returns a new String containing the characters in the * specified range. ! * * @param where the start index. * @param len the number of characters. ! * * @return A string. ! * ! * @throws BadLocationException if the requested range of characters extends * outside the bounds of the content. */ public String getString(int where, int len) throws BadLocationException --- 464,478 ---- } /** ! * Returns a new String containing the characters in the * specified range. ! * * @param where the start index. * @param len the number of characters. ! * * @return A string. ! * ! * @throws BadLocationException if the requested range of characters extends * outside the bounds of the content. */ public String getString(int where, int len) throws BadLocationException *************** public final class StringContent *** 482,502 **** checkLocation(where, len); return new String(this.content, where, len); } ! /** ! * Updates txt to contain a direct reference to the underlying * character array. ! * * @param where the index of the first character. * @param len the number of characters. ! * @param txt a carrier for the return result (null not * permitted). ! * ! * @throws BadLocationException if the requested character range is not * within the bounds of the content. * @throws NullPointerException if txt is null. */ ! public void getChars(int where, int len, Segment txt) throws BadLocationException { if (where + len > count) --- 482,502 ---- checkLocation(where, len); return new String(this.content, where, len); } ! /** ! * Updates txt to contain a direct reference to the underlying * character array. ! * * @param where the index of the first character. * @param len the number of characters. ! * @param txt a carrier for the return result (null not * permitted). ! * ! * @throws BadLocationException if the requested character range is not * within the bounds of the content. * @throws NullPointerException if txt is null. */ ! public void getChars(int where, int len, Segment txt) throws BadLocationException { if (where + len > count) *************** public final class StringContent *** 523,535 **** } } ! /** * A utility method that checks the validity of the specified character * range. ! * * @param where the first character in the range. * @param len the number of characters in the range. ! * * @throws BadLocationException if the specified range is not within the * bounds of the content. */ --- 523,535 ---- } } ! /** * A utility method that checks the validity of the specified character * range. ! * * @param where the first character in the range. * @param len the number of characters in the range. ! * * @throws BadLocationException if the specified range is not within the * bounds of the content. */ *************** public final class StringContent *** 567,570 **** } } } - --- 567,569 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/Style.java gcc-4.6.0/libjava/classpath/javax/swing/text/Style.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/Style.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/Style.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* Style.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* Style.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/StyleConstants.java gcc-4.6.0/libjava/classpath/javax/swing/text/StyleConstants.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/StyleConstants.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/StyleConstants.java Tue Jan 11 19:46:05 2011 *************** import java.util.ArrayList; *** 45,79 **** import javax.swing.Icon; /** ! * Represents standard attribute keys. This class also contains a set of ! * useful static utility methods for querying and populating an * {@link AttributeSet}. ! * * @since 1.2 */ public class StyleConstants { ! /** ! * A value representing left alignment for the ! * {@link ParagraphConstants#Alignment} attribute. */ public static final int ALIGN_LEFT = 0; ! /** ! * A value representing center alignment for the ! * {@link ParagraphConstants#Alignment} attribute. */ public static final int ALIGN_CENTER = 1; ! /** ! * A value representing right alignment for the ! * {@link ParagraphConstants#Alignment} attribute. */ public static final int ALIGN_RIGHT = 2; ! /** ! * A value representing ful justification for the ! * {@link ParagraphConstants#Alignment} attribute. */ public static final int ALIGN_JUSTIFIED = 3; --- 45,79 ---- import javax.swing.Icon; /** ! * Represents standard attribute keys. This class also contains a set of ! * useful static utility methods for querying and populating an * {@link AttributeSet}. ! * * @since 1.2 */ public class StyleConstants { ! /** ! * A value representing left alignment for the ! * {@link ParagraphConstants#Alignment} attribute. */ public static final int ALIGN_LEFT = 0; ! /** ! * A value representing center alignment for the ! * {@link ParagraphConstants#Alignment} attribute. */ public static final int ALIGN_CENTER = 1; ! /** ! * A value representing right alignment for the ! * {@link ParagraphConstants#Alignment} attribute. */ public static final int ALIGN_RIGHT = 2; ! /** ! * A value representing ful justification for the ! * {@link ParagraphConstants#Alignment} attribute. */ public static final int ALIGN_JUSTIFIED = 3; *************** public class StyleConstants *** 82,153 **** /** An alias for {@link CharacterConstants#BidiLevel}. */ public static final Object BidiLevel = CharacterConstants.BidiLevel; ! /** An alias for {@link CharacterConstants#Bold}. */ public static final Object Bold = CharacterConstants.Bold; ! /** An alias for {@link CharacterConstants#ComponentAttribute}. */ ! public static final Object ComponentAttribute = CharacterConstants.ComponentAttribute; ! /** An alias for {@link CharacterConstants#Family}. */ public static final Object Family = CharacterConstants.Family; ! /** An alias for {@link CharacterConstants#Family}. */ ! public static final Object FontFamily = CharacterConstants.Family; ! /** An alias for {@link CharacterConstants#Size}. */ public static final Object FontSize = CharacterConstants.Size; ! /** An alias for {@link CharacterConstants#Foreground}. */ public static final Object Foreground = CharacterConstants.Foreground; ! /** An alias for {@link CharacterConstants#IconAttribute}. */ public static final Object IconAttribute = CharacterConstants.IconAttribute; ! /** An alias for {@link CharacterConstants#Italic}. */ public static final Object Italic = CharacterConstants.Italic; ! /** An alias for {@link CharacterConstants#Size}. */ public static final Object Size = CharacterConstants.Size; ! /** An alias for {@link CharacterConstants#StrikeThrough}. */ public static final Object StrikeThrough = CharacterConstants.StrikeThrough; ! /** An alias for {@link CharacterConstants#Subscript}. */ public static final Object Subscript = CharacterConstants.Subscript; ! /** An alias for {@link CharacterConstants#Superscript}. */ public static final Object Superscript = CharacterConstants.Superscript; ! /** An alias for {@link CharacterConstants#Underline}. */ public static final Object Underline = CharacterConstants.Underline; /** An alias for {@link ParagraphConstants#Alignment}. */ public static final Object Alignment = ParagraphConstants.Alignment; ! /** An alias for {@link ParagraphConstants#FirstLineIndent}. */ ! public static final Object FirstLineIndent = ParagraphConstants.FirstLineIndent; ! /** An alias for {@link ParagraphConstants#LeftIndent}. */ public static final Object LeftIndent = ParagraphConstants.LeftIndent; ! /** An alias for {@link ParagraphConstants#LineSpacing}. */ public static final Object LineSpacing = ParagraphConstants.LineSpacing; ! /** An alias for {@link ParagraphConstants#Orientation}. */ public static final Object Orientation = ParagraphConstants.Orientation; ! /** An alias for {@link ParagraphConstants#RightIndent}. */ public static final Object RightIndent = ParagraphConstants.RightIndent; ! /** An alias for {@link ParagraphConstants#SpaceAbove}. */ public static final Object SpaceAbove = ParagraphConstants.SpaceAbove; ! /** An alias for {@link ParagraphConstants#SpaceBelow}. */ public static final Object SpaceBelow = ParagraphConstants.SpaceBelow; ! /** An alias for {@link ParagraphConstants#TabSet}. */ public static final Object TabSet = ParagraphConstants.TabSet; --- 82,153 ---- /** An alias for {@link CharacterConstants#BidiLevel}. */ public static final Object BidiLevel = CharacterConstants.BidiLevel; ! /** An alias for {@link CharacterConstants#Bold}. */ public static final Object Bold = CharacterConstants.Bold; ! /** An alias for {@link CharacterConstants#ComponentAttribute}. */ ! public static final Object ComponentAttribute = CharacterConstants.ComponentAttribute; ! /** An alias for {@link CharacterConstants#Family}. */ public static final Object Family = CharacterConstants.Family; ! /** An alias for {@link CharacterConstants#Family}. */ ! public static final Object FontFamily = CharacterConstants.Family; ! /** An alias for {@link CharacterConstants#Size}. */ public static final Object FontSize = CharacterConstants.Size; ! /** An alias for {@link CharacterConstants#Foreground}. */ public static final Object Foreground = CharacterConstants.Foreground; ! /** An alias for {@link CharacterConstants#IconAttribute}. */ public static final Object IconAttribute = CharacterConstants.IconAttribute; ! /** An alias for {@link CharacterConstants#Italic}. */ public static final Object Italic = CharacterConstants.Italic; ! /** An alias for {@link CharacterConstants#Size}. */ public static final Object Size = CharacterConstants.Size; ! /** An alias for {@link CharacterConstants#StrikeThrough}. */ public static final Object StrikeThrough = CharacterConstants.StrikeThrough; ! /** An alias for {@link CharacterConstants#Subscript}. */ public static final Object Subscript = CharacterConstants.Subscript; ! /** An alias for {@link CharacterConstants#Superscript}. */ public static final Object Superscript = CharacterConstants.Superscript; ! /** An alias for {@link CharacterConstants#Underline}. */ public static final Object Underline = CharacterConstants.Underline; /** An alias for {@link ParagraphConstants#Alignment}. */ public static final Object Alignment = ParagraphConstants.Alignment; ! /** An alias for {@link ParagraphConstants#FirstLineIndent}. */ ! public static final Object FirstLineIndent = ParagraphConstants.FirstLineIndent; ! /** An alias for {@link ParagraphConstants#LeftIndent}. */ public static final Object LeftIndent = ParagraphConstants.LeftIndent; ! /** An alias for {@link ParagraphConstants#LineSpacing}. */ public static final Object LineSpacing = ParagraphConstants.LineSpacing; ! /** An alias for {@link ParagraphConstants#Orientation}. */ public static final Object Orientation = ParagraphConstants.Orientation; ! /** An alias for {@link ParagraphConstants#RightIndent}. */ public static final Object RightIndent = ParagraphConstants.RightIndent; ! /** An alias for {@link ParagraphConstants#SpaceAbove}. */ public static final Object SpaceAbove = ParagraphConstants.SpaceAbove; ! /** An alias for {@link ParagraphConstants#SpaceBelow}. */ public static final Object SpaceBelow = ParagraphConstants.SpaceBelow; ! /** An alias for {@link ParagraphConstants#TabSet}. */ public static final Object TabSet = ParagraphConstants.TabSet; *************** public class StyleConstants *** 155,167 **** public static final String IconElementName = "icon"; ! public static final Object ComposedTextAttribute = new StyleConstants("composed text"); ! public static final Object ModelAttribute = new StyleConstants("model"); ! public static final Object NameAttribute = new StyleConstants("name"); ! public static final Object ResolveAttribute = new StyleConstants("resolver"); /** --- 155,167 ---- public static final String IconElementName = "icon"; ! public static final Object ComposedTextAttribute = new StyleConstants("composed text"); ! public static final Object ModelAttribute = new StyleConstants("model"); ! public static final Object NameAttribute = new StyleConstants("name"); ! public static final Object ResolveAttribute = new StyleConstants("resolver"); /** *************** public class StyleConstants *** 174,180 **** // Package-private to avoid accessor constructor for use by // subclasses. ! StyleConstants(String k) { keyname = k; if (keys == null) --- 174,180 ---- // Package-private to avoid accessor constructor for use by // subclasses. ! StyleConstants(String k) { keyname = k; if (keys == null) *************** public class StyleConstants *** 184,190 **** /** * Returns a string representation of the attribute key. ! * * @return A string representation of the attribute key. */ public String toString() --- 184,190 ---- /** * Returns a string representation of the attribute key. ! * * @return A string representation of the attribute key. */ public String toString() *************** public class StyleConstants *** 193,207 **** } /** ! * Returns the alignment specified in the given attributes, or * {@link #ALIGN_LEFT} if no alignment is specified. ! * * @param a the attribute set (null not permitted). ! * ! * @return The alignment (typically one of {@link #ALIGN_LEFT}, ! * {@link #ALIGN_RIGHT}, {@link #ALIGN_CENTER} or * {@link #ALIGN_JUSTIFIED}). ! * * @see #setAlignment(MutableAttributeSet, int) */ public static int getAlignment(AttributeSet a) --- 193,207 ---- } /** ! * Returns the alignment specified in the given attributes, or * {@link #ALIGN_LEFT} if no alignment is specified. ! * * @param a the attribute set (null not permitted). ! * ! * @return The alignment (typically one of {@link #ALIGN_LEFT}, ! * {@link #ALIGN_RIGHT}, {@link #ALIGN_CENTER} or * {@link #ALIGN_JUSTIFIED}). ! * * @see #setAlignment(MutableAttributeSet, int) */ public static int getAlignment(AttributeSet a) *************** public class StyleConstants *** 210,247 **** if (i != null) return i.intValue(); else ! return ALIGN_LEFT; ! } /** * Returns the background color specified in the given attributes, or * {@link Color#BLACK} if no background color is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The background color. ! * * @see #setBackground(MutableAttributeSet, Color) */ public static Color getBackground(AttributeSet a) { Color c = (Color) a.getAttribute(Background); ! if (c != null) return c; else return Color.BLACK; ! } /** ! * Returns the bidi level specified in the given attributes, or * 0 if no bidi level is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The bidi level. ! * * @see #setBidiLevel(MutableAttributeSet, int) ! */ public static int getBidiLevel(AttributeSet a) { Integer i = (Integer) a.getAttribute(BidiLevel); --- 210,247 ---- if (i != null) return i.intValue(); else ! return ALIGN_LEFT; ! } /** * Returns the background color specified in the given attributes, or * {@link Color#BLACK} if no background color is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The background color. ! * * @see #setBackground(MutableAttributeSet, Color) */ public static Color getBackground(AttributeSet a) { Color c = (Color) a.getAttribute(Background); ! if (c != null) return c; else return Color.BLACK; ! } /** ! * Returns the bidi level specified in the given attributes, or * 0 if no bidi level is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The bidi level. ! * * @see #setBidiLevel(MutableAttributeSet, int) ! */ public static int getBidiLevel(AttributeSet a) { Integer i = (Integer) a.getAttribute(BidiLevel); *************** public class StyleConstants *** 249,266 **** return i.intValue(); else return 0; ! } /** ! * Returns the component specified in the given attributes, or * null if no component is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The component (possibly null). ! * * @see #setComponent(MutableAttributeSet, Component) ! */ public static Component getComponent(AttributeSet a) { Component c = (Component) a.getAttribute(ComponentAttribute); --- 249,266 ---- return i.intValue(); else return 0; ! } /** ! * Returns the component specified in the given attributes, or * null if no component is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The component (possibly null). ! * * @see #setComponent(MutableAttributeSet, Component) ! */ public static Component getComponent(AttributeSet a) { Component c = (Component) a.getAttribute(ComponentAttribute); *************** public class StyleConstants *** 268,285 **** return c; else return null; ! } /** ! * Returns the indentation specified in the given attributes, or * 0.0f if no indentation is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The indentation. ! * * @see #setFirstLineIndent(MutableAttributeSet, float) ! */ public static float getFirstLineIndent(AttributeSet a) { Float f = (Float) a.getAttribute(FirstLineIndent); --- 268,285 ---- return c; else return null; ! } /** ! * Returns the indentation specified in the given attributes, or * 0.0f if no indentation is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The indentation. ! * * @see #setFirstLineIndent(MutableAttributeSet, float) ! */ public static float getFirstLineIndent(AttributeSet a) { Float f = (Float) a.getAttribute(FirstLineIndent); *************** public class StyleConstants *** 287,304 **** return f.floatValue(); else return 0.0f; ! } /** ! * Returns the font family specified in the given attributes, or * Monospaced if no font family is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The font family. ! * * @see #setFontFamily(MutableAttributeSet, String) ! */ public static String getFontFamily(AttributeSet a) { String ff = (String) a.getAttribute(FontFamily); --- 287,304 ---- return f.floatValue(); else return 0.0f; ! } /** ! * Returns the font family specified in the given attributes, or * Monospaced if no font family is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The font family. ! * * @see #setFontFamily(MutableAttributeSet, String) ! */ public static String getFontFamily(AttributeSet a) { String ff = (String) a.getAttribute(FontFamily); *************** public class StyleConstants *** 306,323 **** return ff; else return "Monospaced"; ! } /** ! * Returns the font size specified in the given attributes, or * 12 if no font size is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The font size. ! * * @see #setFontSize(MutableAttributeSet, int) ! */ public static int getFontSize(AttributeSet a) { Integer i = (Integer) a.getAttribute(FontSize); --- 306,323 ---- return ff; else return "Monospaced"; ! } /** ! * Returns the font size specified in the given attributes, or * 12 if no font size is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The font size. ! * * @see #setFontSize(MutableAttributeSet, int) ! */ public static int getFontSize(AttributeSet a) { Integer i = (Integer) a.getAttribute(FontSize); *************** public class StyleConstants *** 325,340 **** return i.intValue(); else return 12; ! } /** * Returns the foreground color specified in the given attributes, or * {@link Color#BLACK} if no foreground color is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The foreground color. ! * * @see #setForeground(MutableAttributeSet, Color) */ public static Color getForeground(AttributeSet a) --- 325,340 ---- return i.intValue(); else return 12; ! } /** * Returns the foreground color specified in the given attributes, or * {@link Color#BLACK} if no foreground color is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The foreground color. ! * * @see #setForeground(MutableAttributeSet, Color) */ public static Color getForeground(AttributeSet a) *************** public class StyleConstants *** 344,376 **** return c; else return Color.BLACK; ! } /** ! * Returns the icon specified in the given attributes, or * null if no icon is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The icon (possibly null). ! * * @see #setIcon(MutableAttributeSet, Icon) ! */ public static Icon getIcon(AttributeSet a) { return (Icon) a.getAttribute(IconAttribute); ! } /** ! * Returns the left indentation specified in the given attributes, or * 0.0f if no left indentation is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The left indentation. ! * * @see #setLeftIndent(MutableAttributeSet, float) ! */ public static float getLeftIndent(AttributeSet a) { Float f = (Float) a.getAttribute(LeftIndent); --- 344,376 ---- return c; else return Color.BLACK; ! } /** ! * Returns the icon specified in the given attributes, or * null if no icon is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The icon (possibly null). ! * * @see #setIcon(MutableAttributeSet, Icon) ! */ public static Icon getIcon(AttributeSet a) { return (Icon) a.getAttribute(IconAttribute); ! } /** ! * Returns the left indentation specified in the given attributes, or * 0.0f if no left indentation is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The left indentation. ! * * @see #setLeftIndent(MutableAttributeSet, float) ! */ public static float getLeftIndent(AttributeSet a) { Float f = (Float) a.getAttribute(LeftIndent); *************** public class StyleConstants *** 378,395 **** return f.floatValue(); else return 0.0f; ! } /** ! * Returns the line spacing specified in the given attributes, or * 0.0f if no line spacing is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The line spacing. ! * * @see #setLineSpacing(MutableAttributeSet, float) ! */ public static float getLineSpacing(AttributeSet a) { Float f = (Float) a.getAttribute(LineSpacing); --- 378,395 ---- return f.floatValue(); else return 0.0f; ! } /** ! * Returns the line spacing specified in the given attributes, or * 0.0f if no line spacing is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The line spacing. ! * * @see #setLineSpacing(MutableAttributeSet, float) ! */ public static float getLineSpacing(AttributeSet a) { Float f = (Float) a.getAttribute(LineSpacing); *************** public class StyleConstants *** 397,414 **** return f.floatValue(); else return 0.0f; ! } /** ! * Returns the right indentation specified in the given attributes, or * 0.0f if no right indentation is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The right indentation. ! * * @see #setRightIndent(MutableAttributeSet, float) ! */ public static float getRightIndent(AttributeSet a) { Float f = (Float) a.getAttribute(RightIndent); --- 397,414 ---- return f.floatValue(); else return 0.0f; ! } /** ! * Returns the right indentation specified in the given attributes, or * 0.0f if no right indentation is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The right indentation. ! * * @see #setRightIndent(MutableAttributeSet, float) ! */ public static float getRightIndent(AttributeSet a) { Float f = (Float) a.getAttribute(RightIndent); *************** public class StyleConstants *** 416,452 **** return f.floatValue(); else return 0.0f; ! } /** ! * Returns the 'space above' specified in the given attributes, or * 0.0f if no 'space above' is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The 'space above'. ! * * @see #setSpaceAbove(MutableAttributeSet, float) ! */ public static float getSpaceAbove(AttributeSet a) { Float f = (Float) a.getAttribute(SpaceAbove); if (f != null) return f.floatValue(); ! else return 0.0f; ! } /** ! * Returns the 'space below' specified in the given attributes, or * 0.0f if no 'space below' is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The 'space below'. ! * * @see #setSpaceBelow(MutableAttributeSet, float) ! */ public static float getSpaceBelow(AttributeSet a) { Float f = (Float) a.getAttribute(SpaceBelow); --- 416,452 ---- return f.floatValue(); else return 0.0f; ! } /** ! * Returns the 'space above' specified in the given attributes, or * 0.0f if no 'space above' is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The 'space above'. ! * * @see #setSpaceAbove(MutableAttributeSet, float) ! */ public static float getSpaceAbove(AttributeSet a) { Float f = (Float) a.getAttribute(SpaceAbove); if (f != null) return f.floatValue(); ! else return 0.0f; ! } /** ! * Returns the 'space below' specified in the given attributes, or * 0.0f if no 'space below' is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The 'space below'. ! * * @see #setSpaceBelow(MutableAttributeSet, float) ! */ public static float getSpaceBelow(AttributeSet a) { Float f = (Float) a.getAttribute(SpaceBelow); *************** public class StyleConstants *** 454,487 **** return f.floatValue(); else return 0.0f; ! } /** ! * Returns the tab set specified in the given attributes, or * null if no tab set is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The tab set. ! * * @see #setTabSet(MutableAttributeSet, javax.swing.text.TabSet) ! */ public static javax.swing.text.TabSet getTabSet(AttributeSet a) { // I'm guessing that the fully qualified class name is to differentiate // between the TabSet class and the TabSet (attribute) instance on some // compiler... return (javax.swing.text.TabSet) a.getAttribute(StyleConstants.TabSet); ! } /** ! * Returns the value of the bold flag in the given attributes, or * false if no bold flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The bold flag. ! * * @see #setBold(MutableAttributeSet, boolean) */ public static boolean isBold(AttributeSet a) --- 454,487 ---- return f.floatValue(); else return 0.0f; ! } /** ! * Returns the tab set specified in the given attributes, or * null if no tab set is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The tab set. ! * * @see #setTabSet(MutableAttributeSet, javax.swing.text.TabSet) ! */ public static javax.swing.text.TabSet getTabSet(AttributeSet a) { // I'm guessing that the fully qualified class name is to differentiate // between the TabSet class and the TabSet (attribute) instance on some // compiler... return (javax.swing.text.TabSet) a.getAttribute(StyleConstants.TabSet); ! } /** ! * Returns the value of the bold flag in the given attributes, or * false if no bold flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The bold flag. ! * * @see #setBold(MutableAttributeSet, boolean) */ public static boolean isBold(AttributeSet a) *************** public class StyleConstants *** 491,506 **** return b.booleanValue(); else return false; ! } /** ! * Returns the value of the italic flag in the given attributes, or * false if no italic flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The italic flag. ! * * @see #setItalic(MutableAttributeSet, boolean) */ public static boolean isItalic(AttributeSet a) --- 491,506 ---- return b.booleanValue(); else return false; ! } /** ! * Returns the value of the italic flag in the given attributes, or * false if no italic flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The italic flag. ! * * @see #setItalic(MutableAttributeSet, boolean) */ public static boolean isItalic(AttributeSet a) *************** public class StyleConstants *** 510,525 **** return b.booleanValue(); else return false; ! } /** ! * Returns the value of the strike-through flag in the given attributes, or * false if no strike-through flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The strike-through flag. ! * * @see #setStrikeThrough(MutableAttributeSet, boolean) */ public static boolean isStrikeThrough(AttributeSet a) --- 510,525 ---- return b.booleanValue(); else return false; ! } /** ! * Returns the value of the strike-through flag in the given attributes, or * false if no strike-through flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The strike-through flag. ! * * @see #setStrikeThrough(MutableAttributeSet, boolean) */ public static boolean isStrikeThrough(AttributeSet a) *************** public class StyleConstants *** 529,544 **** return b.booleanValue(); else return false; ! } /** ! * Returns the value of the subscript flag in the given attributes, or * false if no subscript flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The subscript flag. ! * * @see #setSubscript(MutableAttributeSet, boolean) */ public static boolean isSubscript(AttributeSet a) --- 529,544 ---- return b.booleanValue(); else return false; ! } /** ! * Returns the value of the subscript flag in the given attributes, or * false if no subscript flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The subscript flag. ! * * @see #setSubscript(MutableAttributeSet, boolean) */ public static boolean isSubscript(AttributeSet a) *************** public class StyleConstants *** 548,563 **** return b.booleanValue(); else return false; ! } /** ! * Returns the value of the superscript flag in the given attributes, or * false if no superscript flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The superscript flag. ! * * @see #setSuperscript(MutableAttributeSet, boolean) */ public static boolean isSuperscript(AttributeSet a) --- 548,563 ---- return b.booleanValue(); else return false; ! } /** ! * Returns the value of the superscript flag in the given attributes, or * false if no superscript flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The superscript flag. ! * * @see #setSuperscript(MutableAttributeSet, boolean) */ public static boolean isSuperscript(AttributeSet a) *************** public class StyleConstants *** 565,582 **** Boolean b = (Boolean) a.getAttribute(Superscript); if (b != null) return b.booleanValue(); ! else return false; ! } /** ! * Returns the value of the underline flag in the given attributes, or * false if no underline flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The underline flag. ! * * @see #setUnderline(MutableAttributeSet, boolean) */ public static boolean isUnderline(AttributeSet a) --- 565,582 ---- Boolean b = (Boolean) a.getAttribute(Superscript); if (b != null) return b.booleanValue(); ! else return false; ! } /** ! * Returns the value of the underline flag in the given attributes, or * false if no underline flag is specified. ! * * @param a the attribute set (null not permitted). ! * * @return The underline flag. ! * * @see #setUnderline(MutableAttributeSet, boolean) */ public static boolean isUnderline(AttributeSet a) *************** public class StyleConstants *** 586,725 **** return b.booleanValue(); else return false; ! } /** * Adds an alignment attribute to the specified set. ! * * @param a the attribute set (null not permitted). ! * @param align the alignment (typically one of ! * {@link StyleConstants#ALIGN_LEFT}, ! * {@link StyleConstants#ALIGN_RIGHT}, ! * {@link StyleConstants#ALIGN_CENTER} or * {@link StyleConstants#ALIGN_JUSTIFIED}). ! * * @throws NullPointerException if a is null. ! * * @see #getAlignment(AttributeSet) */ public static void setAlignment(MutableAttributeSet a, int align) { a.addAttribute(Alignment, new Integer(align)); ! } /** * Adds a background attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param bg the background (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getBackground(AttributeSet) */ public static void setBackground(MutableAttributeSet a, Color bg) { a.addAttribute(Background, bg); ! } /** * Adds a bidi-level attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param lev the level. ! * * @throws NullPointerException if a is null. ! * * @see #getBidiLevel(AttributeSet) */ public static void setBidiLevel(MutableAttributeSet a, int lev) { a.addAttribute(BidiLevel, new Integer(lev)); ! } /** * Adds a bold attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the new value of the bold attribute. ! * * @throws NullPointerException if a is null. ! * * @see #isBold(AttributeSet) */ public static void setBold(MutableAttributeSet a, boolean b) { a.addAttribute(Bold, Boolean.valueOf(b)); ! } ! /** * Adds a component attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param c the component (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getComponent(AttributeSet) */ public static void setComponent(MutableAttributeSet a, Component c) { a.addAttribute(ComponentAttribute, c); ! } /** * Adds a first line indentation attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the indentation. ! * * @throws NullPointerException if a is null. ! * * @see #getFirstLineIndent(AttributeSet) */ public static void setFirstLineIndent(MutableAttributeSet a, float i) { a.addAttribute(FirstLineIndent, new Float(i)); ! } /** * Adds a font family attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param fam the font family name (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getFontFamily(AttributeSet) */ public static void setFontFamily(MutableAttributeSet a, String fam) { a.addAttribute(FontFamily, fam); ! } /** * Adds a font size attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param s the font size (in points). ! * * @throws NullPointerException if a is null. ! * * @see #getFontSize(AttributeSet) */ public static void setFontSize(MutableAttributeSet a, int s) { a.addAttribute(FontSize, new Integer(s)); ! } /** * Adds a foreground color attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param fg the foreground color (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getForeground(AttributeSet) */ public static void setForeground(MutableAttributeSet a, Color fg) --- 586,725 ---- return b.booleanValue(); else return false; ! } /** * Adds an alignment attribute to the specified set. ! * * @param a the attribute set (null not permitted). ! * @param align the alignment (typically one of ! * {@link StyleConstants#ALIGN_LEFT}, ! * {@link StyleConstants#ALIGN_RIGHT}, ! * {@link StyleConstants#ALIGN_CENTER} or * {@link StyleConstants#ALIGN_JUSTIFIED}). ! * * @throws NullPointerException if a is null. ! * * @see #getAlignment(AttributeSet) */ public static void setAlignment(MutableAttributeSet a, int align) { a.addAttribute(Alignment, new Integer(align)); ! } /** * Adds a background attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param bg the background (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getBackground(AttributeSet) */ public static void setBackground(MutableAttributeSet a, Color bg) { a.addAttribute(Background, bg); ! } /** * Adds a bidi-level attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param lev the level. ! * * @throws NullPointerException if a is null. ! * * @see #getBidiLevel(AttributeSet) */ public static void setBidiLevel(MutableAttributeSet a, int lev) { a.addAttribute(BidiLevel, new Integer(lev)); ! } /** * Adds a bold attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the new value of the bold attribute. ! * * @throws NullPointerException if a is null. ! * * @see #isBold(AttributeSet) */ public static void setBold(MutableAttributeSet a, boolean b) { a.addAttribute(Bold, Boolean.valueOf(b)); ! } ! /** * Adds a component attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param c the component (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getComponent(AttributeSet) */ public static void setComponent(MutableAttributeSet a, Component c) { a.addAttribute(ComponentAttribute, c); ! } /** * Adds a first line indentation attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the indentation. ! * * @throws NullPointerException if a is null. ! * * @see #getFirstLineIndent(AttributeSet) */ public static void setFirstLineIndent(MutableAttributeSet a, float i) { a.addAttribute(FirstLineIndent, new Float(i)); ! } /** * Adds a font family attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param fam the font family name (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getFontFamily(AttributeSet) */ public static void setFontFamily(MutableAttributeSet a, String fam) { a.addAttribute(FontFamily, fam); ! } /** * Adds a font size attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param s the font size (in points). ! * * @throws NullPointerException if a is null. ! * * @see #getFontSize(AttributeSet) */ public static void setFontSize(MutableAttributeSet a, int s) { a.addAttribute(FontSize, new Integer(s)); ! } /** * Adds a foreground color attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param fg the foreground color (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getForeground(AttributeSet) */ public static void setForeground(MutableAttributeSet a, Color fg) *************** public class StyleConstants *** 729,740 **** /** * Adds an icon attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param c the icon (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getIcon(AttributeSet) */ public static void setIcon(MutableAttributeSet a, Icon c) --- 729,740 ---- /** * Adds an icon attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param c the icon (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getIcon(AttributeSet) */ public static void setIcon(MutableAttributeSet a, Icon c) *************** public class StyleConstants *** 742,915 **** a.addAttribute(AbstractDocument.ElementNameAttribute, IconElementName); a.addAttribute(IconAttribute, c); } ! /** * Adds an italic attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the new value of the italic attribute. ! * * @throws NullPointerException if a is null. ! * * @see #isItalic(AttributeSet) */ public static void setItalic(MutableAttributeSet a, boolean b) { a.addAttribute(Italic, Boolean.valueOf(b)); } ! /** * Adds a left indentation attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the indentation. ! * * @throws NullPointerException if a is null. ! * * @see #getLeftIndent(AttributeSet) */ public static void setLeftIndent(MutableAttributeSet a, float i) { a.addAttribute(LeftIndent, new Float(i)); ! } /** * Adds a line spacing attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the line spacing. ! * * @throws NullPointerException if a is null. ! * * @see #getLineSpacing(AttributeSet) */ public static void setLineSpacing(MutableAttributeSet a, float i) { a.addAttribute(LineSpacing, new Float(i)); ! } /** * Adds a right indentation attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the right indentation. ! * * @throws NullPointerException if a is null. ! * * @see #getRightIndent(AttributeSet) */ public static void setRightIndent(MutableAttributeSet a, float i) { a.addAttribute(RightIndent, new Float(i)); ! } /** * Adds a 'space above' attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the space above attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #getSpaceAbove(AttributeSet) */ public static void setSpaceAbove(MutableAttributeSet a, float i) { a.addAttribute(SpaceAbove, new Float(i)); ! } /** * Adds a 'space below' attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the space below attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #getSpaceBelow(AttributeSet) */ public static void setSpaceBelow(MutableAttributeSet a, float i) { a.addAttribute(SpaceBelow, new Float(i)); ! } /** * Adds a strike-through attribue to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the strike-through attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #isStrikeThrough(AttributeSet) */ public static void setStrikeThrough(MutableAttributeSet a, boolean b) { a.addAttribute(StrikeThrough, Boolean.valueOf(b)); ! } /** * Adds a subscript attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the subscript attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #isSubscript(AttributeSet) */ public static void setSubscript(MutableAttributeSet a, boolean b) { a.addAttribute(Subscript, Boolean.valueOf(b)); ! } /** * Adds a superscript attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the superscript attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #isSuperscript(AttributeSet) */ public static void setSuperscript(MutableAttributeSet a, boolean b) { a.addAttribute(Superscript, Boolean.valueOf(b)); ! } /** * Adds a {@link TabSet} attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param tabs the tab set (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getTabSet(AttributeSet) */ ! public static void setTabSet(MutableAttributeSet a, javax.swing.text.TabSet tabs) { a.addAttribute(StyleConstants.TabSet, tabs); ! } /** * Adds an underline attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the underline attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #isUnderline(AttributeSet) */ public static void setUnderline(MutableAttributeSet a, boolean b) { a.addAttribute(Underline, Boolean.valueOf(b)); ! } ! // The remainder are so-called "typesafe enumerations" which // alias subsets of the above constants. /** --- 742,915 ---- a.addAttribute(AbstractDocument.ElementNameAttribute, IconElementName); a.addAttribute(IconAttribute, c); } ! /** * Adds an italic attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the new value of the italic attribute. ! * * @throws NullPointerException if a is null. ! * * @see #isItalic(AttributeSet) */ public static void setItalic(MutableAttributeSet a, boolean b) { a.addAttribute(Italic, Boolean.valueOf(b)); } ! /** * Adds a left indentation attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the indentation. ! * * @throws NullPointerException if a is null. ! * * @see #getLeftIndent(AttributeSet) */ public static void setLeftIndent(MutableAttributeSet a, float i) { a.addAttribute(LeftIndent, new Float(i)); ! } /** * Adds a line spacing attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the line spacing. ! * * @throws NullPointerException if a is null. ! * * @see #getLineSpacing(AttributeSet) */ public static void setLineSpacing(MutableAttributeSet a, float i) { a.addAttribute(LineSpacing, new Float(i)); ! } /** * Adds a right indentation attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the right indentation. ! * * @throws NullPointerException if a is null. ! * * @see #getRightIndent(AttributeSet) */ public static void setRightIndent(MutableAttributeSet a, float i) { a.addAttribute(RightIndent, new Float(i)); ! } /** * Adds a 'space above' attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the space above attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #getSpaceAbove(AttributeSet) */ public static void setSpaceAbove(MutableAttributeSet a, float i) { a.addAttribute(SpaceAbove, new Float(i)); ! } /** * Adds a 'space below' attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param i the space below attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #getSpaceBelow(AttributeSet) */ public static void setSpaceBelow(MutableAttributeSet a, float i) { a.addAttribute(SpaceBelow, new Float(i)); ! } /** * Adds a strike-through attribue to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the strike-through attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #isStrikeThrough(AttributeSet) */ public static void setStrikeThrough(MutableAttributeSet a, boolean b) { a.addAttribute(StrikeThrough, Boolean.valueOf(b)); ! } /** * Adds a subscript attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the subscript attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #isSubscript(AttributeSet) */ public static void setSubscript(MutableAttributeSet a, boolean b) { a.addAttribute(Subscript, Boolean.valueOf(b)); ! } /** * Adds a superscript attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the superscript attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #isSuperscript(AttributeSet) */ public static void setSuperscript(MutableAttributeSet a, boolean b) { a.addAttribute(Superscript, Boolean.valueOf(b)); ! } /** * Adds a {@link TabSet} attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param tabs the tab set (null not permitted). ! * * @throws NullPointerException if either argument is null. ! * * @see #getTabSet(AttributeSet) */ ! public static void setTabSet(MutableAttributeSet a, javax.swing.text.TabSet tabs) { a.addAttribute(StyleConstants.TabSet, tabs); ! } /** * Adds an underline attribute to the specified set. ! * * @param a the attribute set (null not permitted). * @param b the underline attribute value. ! * * @throws NullPointerException if a is null. ! * * @see #isUnderline(AttributeSet) */ public static void setUnderline(MutableAttributeSet a, boolean b) { a.addAttribute(Underline, Boolean.valueOf(b)); ! } ! // The remainder are so-called "typesafe enumerations" which // alias subsets of the above constants. /** *************** public class StyleConstants *** 921,976 **** { /** * Private constructor prevents new instances being created. ! * * @param k the key name. */ ! private CharacterConstants(String k) { super(k); } ! /** An alias for {@link ColorConstants#Background}. */ public static final Object Background = ColorConstants.Background; ! /** A key for the bidi level character attribute. */ public static final Object BidiLevel = new CharacterConstants("bidiLevel"); ! /** An alias for {@link FontConstants#Bold}. */ public static final Object Bold = FontConstants.Bold; ! /** A key for the component character attribute. */ ! public static final Object ComponentAttribute = new CharacterConstants("component"); ! /** An alias for {@link FontConstants#Family}. */ public static final Object Family = FontConstants.Family; ! /** An alias for {@link FontConstants#Size}. */ public static final Object Size = FontConstants.Size; ! /** An alias for {@link ColorConstants#Foreground}. */ public static final Object Foreground = ColorConstants.Foreground; ! /** A key for the icon character attribute. */ public static final Object IconAttribute = new CharacterConstants("icon"); ! /** A key for the italic character attribute. */ public static final Object Italic = FontConstants.Italic; ! /** A key for the strike through character attribute. */ ! public static final Object StrikeThrough = new CharacterConstants("strikethrough"); ! /** A key for the subscript character attribute. */ public static final Object Subscript = new CharacterConstants("subscript"); ! /** A key for the superscript character attribute. */ ! public static final Object Superscript = new CharacterConstants("superscript"); ! /** A key for the underline character attribute. */ public static final Object Underline = new CharacterConstants("underline"); ! } /** --- 921,976 ---- { /** * Private constructor prevents new instances being created. ! * * @param k the key name. */ ! private CharacterConstants(String k) { super(k); } ! /** An alias for {@link ColorConstants#Background}. */ public static final Object Background = ColorConstants.Background; ! /** A key for the bidi level character attribute. */ public static final Object BidiLevel = new CharacterConstants("bidiLevel"); ! /** An alias for {@link FontConstants#Bold}. */ public static final Object Bold = FontConstants.Bold; ! /** A key for the component character attribute. */ ! public static final Object ComponentAttribute = new CharacterConstants("component"); ! /** An alias for {@link FontConstants#Family}. */ public static final Object Family = FontConstants.Family; ! /** An alias for {@link FontConstants#Size}. */ public static final Object Size = FontConstants.Size; ! /** An alias for {@link ColorConstants#Foreground}. */ public static final Object Foreground = ColorConstants.Foreground; ! /** A key for the icon character attribute. */ public static final Object IconAttribute = new CharacterConstants("icon"); ! /** A key for the italic character attribute. */ public static final Object Italic = FontConstants.Italic; ! /** A key for the strike through character attribute. */ ! public static final Object StrikeThrough = new CharacterConstants("strikethrough"); ! /** A key for the subscript character attribute. */ public static final Object Subscript = new CharacterConstants("subscript"); ! /** A key for the superscript character attribute. */ ! public static final Object Superscript = new CharacterConstants("superscript"); ! /** A key for the underline character attribute. */ public static final Object Underline = new CharacterConstants("underline"); ! } /** *************** public class StyleConstants *** 982,995 **** { /** * Private constructor prevents new instances being created. ! * * @param k the key name. */ ! private ColorConstants(String k) { super(k); } ! /** A key for the foreground color attribute. */ public static final Object Foreground = new ColorConstants("foreground"); --- 982,995 ---- { /** * Private constructor prevents new instances being created. ! * * @param k the key name. */ ! private ColorConstants(String k) { super(k); } ! /** A key for the foreground color attribute. */ public static final Object Foreground = new ColorConstants("foreground"); *************** public class StyleConstants *** 1006,1028 **** { /** * Private constructor prevents new instances being created. ! * * @param k the key name. */ ! private FontConstants(String k) { super(k); } ! /** A key for the bold font attribute. */ public static final Object Bold = new FontConstants("bold"); /** A key for the family font attribute. */ public static final Object Family = new FontConstants("family"); ! /** A key for the italic font attribute. */ public static final Object Italic = new FontConstants("italic"); ! /** A key for the size font attribute. */ public static final Object Size = new FontConstants("size"); } --- 1006,1028 ---- { /** * Private constructor prevents new instances being created. ! * * @param k the key name. */ ! private FontConstants(String k) { super(k); } ! /** A key for the bold font attribute. */ public static final Object Bold = new FontConstants("bold"); /** A key for the family font attribute. */ public static final Object Family = new FontConstants("family"); ! /** A key for the italic font attribute. */ public static final Object Italic = new FontConstants("italic"); ! /** A key for the size font attribute. */ public static final Object Size = new FontConstants("size"); } *************** public class StyleConstants *** 1036,1083 **** { /** * Private constructor prevents new instances being created. ! * * @param k the key name. */ ! private ParagraphConstants(String k) { super(k); } ! /** A key for the alignment paragraph attribute. */ public static final Object Alignment = new ParagraphConstants("Alignment"); /** A key for the first line indentation paragraph attribute. */ ! public static final Object FirstLineIndent = new ParagraphConstants("FirstLineIndent"); ! /** A key for the left indentation paragraph attribute. */ ! public static final Object LeftIndent = new ParagraphConstants("LeftIndent"); ! /** A key for the line spacing paragraph attribute. */ ! public static final Object LineSpacing = new ParagraphConstants("LineSpacing"); ! /** A key for the orientation paragraph attribute. */ ! public static final Object Orientation = new ParagraphConstants("Orientation"); ! /** A key for the right indentation paragraph attribute. */ ! public static final Object RightIndent = new ParagraphConstants("RightIndent"); ! /** A key for the 'space above' paragraph attribute. */ ! public static final Object SpaceAbove = new ParagraphConstants("SpaceAbove"); ! /** A key for the 'space below' paragraph attribute. */ ! public static final Object SpaceBelow = new ParagraphConstants("SpaceBelow"); ! /** A key for the tabset paragraph attribute. */ public static final Object TabSet = new ParagraphConstants("TabSet"); ! } } --- 1036,1083 ---- { /** * Private constructor prevents new instances being created. ! * * @param k the key name. */ ! private ParagraphConstants(String k) { super(k); } ! /** A key for the alignment paragraph attribute. */ public static final Object Alignment = new ParagraphConstants("Alignment"); /** A key for the first line indentation paragraph attribute. */ ! public static final Object FirstLineIndent = new ParagraphConstants("FirstLineIndent"); ! /** A key for the left indentation paragraph attribute. */ ! public static final Object LeftIndent = new ParagraphConstants("LeftIndent"); ! /** A key for the line spacing paragraph attribute. */ ! public static final Object LineSpacing = new ParagraphConstants("LineSpacing"); ! /** A key for the orientation paragraph attribute. */ ! public static final Object Orientation = new ParagraphConstants("Orientation"); ! /** A key for the right indentation paragraph attribute. */ ! public static final Object RightIndent = new ParagraphConstants("RightIndent"); ! /** A key for the 'space above' paragraph attribute. */ ! public static final Object SpaceAbove = new ParagraphConstants("SpaceAbove"); ! /** A key for the 'space below' paragraph attribute. */ ! public static final Object SpaceBelow = new ParagraphConstants("SpaceBelow"); ! /** A key for the tabset paragraph attribute. */ public static final Object TabSet = new ParagraphConstants("TabSet"); ! } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/StyleContext.java gcc-4.6.0/libjava/classpath/javax/swing/text/StyleContext.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/StyleContext.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/StyleContext.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.ChangeEvent; *** 60,66 **** import javax.swing.event.ChangeListener; import javax.swing.event.EventListenerList; ! public class StyleContext implements Serializable, AbstractDocument.AttributeContext { /** The serialization UID (compatible with JDK1.5). */ --- 60,66 ---- import javax.swing.event.ChangeListener; import javax.swing.event.EventListenerList; ! public class StyleContext implements Serializable, AbstractDocument.AttributeContext { /** The serialization UID (compatible with JDK1.5). */ *************** public class StyleContext *** 74,80 **** protected transient ChangeEvent changeEvent; protected EventListenerList listenerList; ! private transient AttributeSet attributes; public NamedStyle() --- 74,80 ---- protected transient ChangeEvent changeEvent; protected EventListenerList listenerList; ! private transient AttributeSet attributes; public NamedStyle() *************** public class StyleContext *** 115,126 **** { listenerList.add(ChangeListener.class, l); } ! public void removeChangeListener(ChangeListener l) { listenerList.remove(ChangeListener.class, l); } ! public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); --- 115,126 ---- { listenerList.add(ChangeListener.class, l); } ! public void removeChangeListener(ChangeListener l) { listenerList.remove(ChangeListener.class, l); } ! public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); *************** public class StyleContext *** 159,165 **** { return attributes.containsAttribute(name, value); } ! public boolean containsAttributes(AttributeSet attrs) { return attributes.containsAttributes(attrs); --- 159,165 ---- { return attributes.containsAttribute(name, value); } ! public boolean containsAttributes(AttributeSet attrs) { return attributes.containsAttributes(attrs); *************** public class StyleContext *** 172,178 **** copy.attributes = attributes.copyAttributes(); return copy; } ! public Object getAttribute(Object attrName) { return attributes.getAttribute(attrName); --- 172,178 ---- copy.attributes = attributes.copyAttributes(); return copy; } ! public Object getAttribute(Object attrName) { return attributes.getAttribute(attrName); *************** public class StyleContext *** 187,196 **** { return attributes.getAttributeNames(); } ! public boolean isDefined(Object attrName) { ! return attributes.isDefined(attrName); } public boolean isEqual(AttributeSet attr) --- 187,196 ---- { return attributes.getAttributeNames(); } ! public boolean isDefined(Object attrName) { ! return attributes.isDefined(attrName); } public boolean isEqual(AttributeSet attr) *************** public class StyleContext *** 219,225 **** public AttributeSet getResolveParent() { ! return attributes.getResolveParent(); } public void setResolveParent(AttributeSet parent) --- 219,225 ---- public AttributeSet getResolveParent() { ! return attributes.getResolveParent(); } public void setResolveParent(AttributeSet parent) *************** public class StyleContext *** 229,235 **** else removeAttribute(StyleConstants.ResolveAttribute); } ! public String toString() { return "NamedStyle:" + getName() + " " + attributes; --- 229,235 ---- else removeAttribute(StyleConstants.ResolveAttribute); } ! public String toString() { return "NamedStyle:" + getName() + " " + attributes; *************** public class StyleContext *** 250,256 **** readAttributeSet(s, this); } } ! public class SmallAttributeSet implements AttributeSet { --- 250,256 ---- readAttributeSet(s, this); } } ! public class SmallAttributeSet implements AttributeSet { *************** public class StyleContext *** 321,327 **** } return eq; } ! public Object getAttribute(Object key) { Object att = null; --- 321,327 ---- } return eq; } ! public Object getAttribute(Object key) { Object att = null; *************** public class StyleContext *** 334,340 **** att = attrs[i + 1]; } ! // Check the resolve parent, unless we're looking for the // ResolveAttribute, which must not be looked up if (att == null) { --- 334,340 ---- att = attrs[i + 1]; } ! // Check the resolve parent, unless we're looking for the // ResolveAttribute, which must not be looked up if (att == null) { *************** public class StyleContext *** 342,348 **** if (parent != null) att = parent.getAttribute(key); } ! return att; } --- 342,348 ---- if (parent != null) att = parent.getAttribute(key); } ! return att; } *************** public class StyleContext *** 352,369 **** } public Enumeration getAttributeNames() ! { ! return new Enumeration() { int i = 0; ! public boolean hasMoreElements() ! { ! return i < attrs.length; } ! public Object nextElement() ! { ! i += 2; ! return attrs[i-2]; } }; } --- 352,369 ---- } public Enumeration getAttributeNames() ! { ! return new Enumeration() { int i = 0; ! public boolean hasMoreElements() ! { ! return i < attrs.length; } ! public Object nextElement() ! { ! i += 2; ! return attrs[i-2]; } }; } *************** public class StyleContext *** 387,393 **** } return false; } ! public boolean isEqual(AttributeSet attr) { boolean eq; --- 387,393 ---- } return false; } ! public boolean isEqual(AttributeSet attr) { boolean eq; *************** public class StyleContext *** 400,406 **** && this.containsAttributes(attr); return eq; } ! public String toString() { StringBuilder sb = new StringBuilder(); --- 400,406 ---- && this.containsAttributes(attr); return eq; } ! public String toString() { StringBuilder sb = new StringBuilder(); *************** public class StyleContext *** 446,452 **** * The name of the default style. */ public static final String DEFAULT_STYLE = "default"; ! static Hashtable sharedAttributeSets = new Hashtable(); static Hashtable sharedFonts = new Hashtable(); --- 446,452 ---- * The name of the default style. */ public static final String DEFAULT_STYLE = "default"; ! static Hashtable sharedAttributeSets = new Hashtable(); static Hashtable sharedFonts = new Hashtable(); *************** public class StyleContext *** 486,492 **** { return new SmallAttributeSet(a); } ! protected MutableAttributeSet createLargeAttributeSet(AttributeSet a) { return new SimpleAttributeSet(a); --- 486,492 ---- { return new SmallAttributeSet(a); } ! protected MutableAttributeSet createLargeAttributeSet(AttributeSet a) { return new SimpleAttributeSet(a); *************** public class StyleContext *** 506,512 **** { return styles.getChangeListeners(); } ! public Style addStyle(String name, Style parent) { Style newStyle = new NamedStyle(name, parent); --- 506,512 ---- { return styles.getChangeListeners(); } ! public Style addStyle(String name, Style parent) { Style newStyle = new NamedStyle(name, parent); *************** public class StyleContext *** 534,540 **** { return (Style) styles.getAttribute(name); } ! /** * Get the names of the style. The returned enumeration always * contains at least one member, the default style. --- 534,540 ---- { return (Style) styles.getAttribute(name); } ! /** * Get the names of the style. The returned enumeration always * contains at least one member, the default style. *************** public class StyleContext *** 572,578 **** // // We keep a static cache mapping SimpleFontSpecs to java.awt.Fonts, so // that we reuse Fonts between styles and style contexts. ! // private static class SimpleFontSpec { --- 572,578 ---- // // We keep a static cache mapping SimpleFontSpecs to java.awt.Fonts, so // that we reuse Fonts between styles and style contexts. ! // private static class SimpleFontSpec { *************** public class StyleContext *** 600,606 **** return family.hashCode() + style + size; } } ! public Font getFont(AttributeSet attr) { String family = StyleConstants.getFontFamily(attr); --- 600,606 ---- return family.hashCode() + style + size; } } ! public Font getFont(AttributeSet attr) { String family = StyleConstants.getFontFamily(attr); *************** public class StyleContext *** 608,614 **** if (StyleConstants.isBold(attr)) style += Font.BOLD; if (StyleConstants.isItalic(attr)) ! style += Font.ITALIC; int size = StyleConstants.getFontSize(attr); return getFont(family, style, size); } --- 608,614 ---- if (StyleConstants.isBold(attr)) style += Font.BOLD; if (StyleConstants.isItalic(attr)) ! style += Font.ITALIC; int size = StyleConstants.getFontSize(attr); return getFont(family, style, size); } *************** public class StyleContext *** 625,631 **** return tmp; } } ! public FontMetrics getFontMetrics(Font f) { return Toolkit.getDefaultToolkit().getFontMetrics(f); --- 625,631 ---- return tmp; } } ! public FontMetrics getFontMetrics(Font f) { return Toolkit.getDefaultToolkit().getFontMetrics(f); *************** public class StyleContext *** 641,647 **** return StyleConstants.getBackground(a); } ! protected int getCompressionThreshold() { return compressionThreshold; } --- 641,647 ---- return StyleConstants.getBackground(a); } ! protected int getCompressionThreshold() { return compressionThreshold; } *************** public class StyleContext *** 749,755 **** } public synchronized AttributeSet removeAttributes(AttributeSet old, ! Enumeration names) { AttributeSet ret; if (old.getAttributeCount() <= getCompressionThreshold()) --- 749,755 ---- } public synchronized AttributeSet removeAttributes(AttributeSet old, ! Enumeration names) { AttributeSet ret; if (old.getAttributeCount() <= getCompressionThreshold()) *************** public class StyleContext *** 771,777 **** /** * Gets the object previously registered with registerStaticAttributeKey. ! * * @param key - the key that was registered. * @return the object previously registered with registerStaticAttributeKey. */ --- 771,777 ---- /** * Gets the object previously registered with registerStaticAttributeKey. ! * * @param key - the key that was registered. * @return the object previously registered with registerStaticAttributeKey. */ *************** public class StyleContext *** 781,791 **** return null; return readAttributeKeys.get(key); } ! /** * Returns the String that key will be registered with * registerStaticAttributeKey. ! * * @param key - the key that will be registered. * @return the string the key will be registered with. */ --- 781,791 ---- return null; return readAttributeKeys.get(key); } ! /** * Returns the String that key will be registered with * registerStaticAttributeKey. ! * * @param key - the key that will be registered. * @return the string the key will be registered with. */ *************** public class StyleContext *** 799,805 **** * attempt to restore keys that were static objects by considering only the * keys that have were registered with registerStaticAttributeKey. The * attributes retrieved will be placed into the given set. ! * * @param in - the stream to read from * @param a - the set of attributes * @throws ClassNotFoundException - may be encountered when reading from --- 799,805 ---- * attempt to restore keys that were static objects by considering only the * keys that have were registered with registerStaticAttributeKey. The * attributes retrieved will be placed into the given set. ! * * @param in - the stream to read from * @param a - the set of attributes * @throws ClassNotFoundException - may be encountered when reading from *************** public class StyleContext *** 827,838 **** a.addAttribute(key, val); } } ! /** * Serialize an attribute set in a way that is compatible with it * being read in again by {@link #readAttributeSet(ObjectInputStream, MutableAttributeSet)}. * In particular registered static keys are transformed properly. ! * * @param out - stream to write to * @param a - the attribute set * @throws IOException - any I/O error --- 827,838 ---- a.addAttribute(key, val); } } ! /** * Serialize an attribute set in a way that is compatible with it * being read in again by {@link #readAttributeSet(ObjectInputStream, MutableAttributeSet)}. * In particular registered static keys are transformed properly. ! * * @param out - stream to write to * @param a - the attribute set * @throws IOException - any I/O error *************** public class StyleContext *** 872,880 **** } /** ! * Handles reading in the attributes. * @see #readAttributeSet(ObjectInputStream, MutableAttributeSet) ! * * @param in - the stream to read from * @param a - the set of attributes * @throws ClassNotFoundException - may be encountered when reading from stream --- 872,880 ---- } /** ! * Handles reading in the attributes. * @see #readAttributeSet(ObjectInputStream, MutableAttributeSet) ! * * @param in - the stream to read from * @param a - the set of attributes * @throws ClassNotFoundException - may be encountered when reading from stream *************** public class StyleContext *** 889,895 **** /** * Handles writing of the given attributes. * @see #writeAttributeSet(ObjectOutputStream, AttributeSet) ! * * @param out - stream to write to * @param a - the attribute set * @throws IOException - any I/O error --- 889,895 ---- /** * Handles writing of the given attributes. * @see #writeAttributeSet(ObjectOutputStream, AttributeSet) ! * * @param out - stream to write to * @param a - the attribute set * @throws IOException - any I/O error diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/StyledDocument.java gcc-4.6.0/libjava/classpath/javax/swing/text/StyledDocument.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/StyledDocument.java Tue Nov 15 23:20:01 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/StyledDocument.java Tue Jan 11 19:46:05 2011 *************** import java.awt.Font; *** 42,49 **** /** * StyledDocument ! * @author Andrew Selkirk ! * @version 1.0 */ public interface StyledDocument extends Document { --- 42,49 ---- /** * StyledDocument ! * @author Andrew Selkirk ! * @version 1.0 */ public interface StyledDocument extends Document { diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/StyledEditorKit.java gcc-4.6.0/libjava/classpath/javax/swing/text/StyledEditorKit.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/StyledEditorKit.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/StyledEditorKit.java Tue Jan 11 19:46:05 2011 *************** public class StyledEditorKit extends Def *** 364,371 **** { Document doc = editor.getDocument(); if (!(doc instanceof StyledDocument)) ! throw new AssertionError("The Document for StyledEditorKits is " ! + "expected to be a StyledDocument."); return (StyledDocument) doc; } --- 364,371 ---- { Document doc = editor.getDocument(); if (!(doc instanceof StyledDocument)) ! throw new AssertionError("The Document for StyledEditorKits is " ! + "expected to be a StyledDocument."); return (StyledDocument) doc; } *************** public class StyledEditorKit extends Def *** 382,389 **** { EditorKit kit = editor.getEditorKit(); if (!(kit instanceof StyledEditorKit)) ! throw new AssertionError("The EditorKit for StyledDocuments is " ! + "expected to be a StyledEditorKit."); return (StyledEditorKit) kit; } --- 382,389 ---- { EditorKit kit = editor.getEditorKit(); if (!(kit instanceof StyledEditorKit)) ! throw new AssertionError("The EditorKit for StyledDocuments is " ! + "expected to be a StyledEditorKit."); return (StyledEditorKit) kit; } *************** public class StyledEditorKit extends Def *** 406,438 **** { Document doc = editor.getDocument(); if (doc instanceof StyledDocument) ! { ! StyledDocument styleDoc = (StyledDocument) editor.getDocument(); ! EditorKit kit = editor.getEditorKit(); ! if (!(kit instanceof StyledEditorKit)) ! { ! StyledEditorKit styleKit = (StyledEditorKit) kit; ! int start = editor.getSelectionStart(); ! int end = editor.getSelectionEnd(); ! int dot = editor.getCaret().getDot(); ! if (start == dot && end == dot) ! { ! // If there is no selection, then we only update the ! // input attributes. ! MutableAttributeSet inputAttributes = ! styleKit.getInputAttributes(); ! inputAttributes.addAttributes(atts); ! } ! else ! styleDoc.setParagraphAttributes(start, end, atts, replace); ! } ! else ! throw new AssertionError("The EditorKit for StyledTextActions " ! + "is expected to be a StyledEditorKit"); ! } else ! throw new AssertionError("The Document for StyledTextActions is " ! + "expected to be a StyledDocument."); } } --- 406,438 ---- { Document doc = editor.getDocument(); if (doc instanceof StyledDocument) ! { ! StyledDocument styleDoc = (StyledDocument) editor.getDocument(); ! EditorKit kit = editor.getEditorKit(); ! if (!(kit instanceof StyledEditorKit)) ! { ! StyledEditorKit styleKit = (StyledEditorKit) kit; ! int start = editor.getSelectionStart(); ! int end = editor.getSelectionEnd(); ! int dot = editor.getCaret().getDot(); ! if (start == dot && end == dot) ! { ! // If there is no selection, then we only update the ! // input attributes. ! MutableAttributeSet inputAttributes = ! styleKit.getInputAttributes(); ! inputAttributes.addAttributes(atts); ! } ! else ! styleDoc.setParagraphAttributes(start, end, atts, replace); ! } ! else ! throw new AssertionError("The EditorKit for StyledTextActions " ! + "is expected to be a StyledEditorKit"); ! } else ! throw new AssertionError("The Document for StyledTextActions is " ! + "expected to be a StyledDocument."); } } *************** public class StyledEditorKit extends Def *** 466,480 **** String name = element.getName(); View view = null; if (name.equals(AbstractDocument.ContentElementName)) ! view = new LabelView(element); else if (name.equals(AbstractDocument.ParagraphElementName)) ! view = new ParagraphView(element); else if (name.equals(AbstractDocument.SectionElementName)) ! view = new BoxView(element, View.Y_AXIS); else if (name.equals(StyleConstants.ComponentElementName)) ! view = new ComponentView(element); else if (name.equals(StyleConstants.IconElementName)) ! view = new IconView(element); else throw new AssertionError("Unknown Element type: " + element.getClass().getName() + " : " --- 466,480 ---- String name = element.getName(); View view = null; if (name.equals(AbstractDocument.ContentElementName)) ! view = new LabelView(element); else if (name.equals(AbstractDocument.ParagraphElementName)) ! view = new ParagraphView(element); else if (name.equals(AbstractDocument.SectionElementName)) ! view = new BoxView(element, View.Y_AXIS); else if (name.equals(StyleConstants.ComponentElementName)) ! view = new ComponentView(element); else if (name.equals(StyleConstants.IconElementName)) ! view = new IconView(element); else throw new AssertionError("Unknown Element type: " + element.getClass().getName() + " : " *************** public class StyledEditorKit extends Def *** 499,512 **** { Object source = ev.getSource(); if (!(source instanceof JTextComponent)) ! throw new AssertionError("CaretEvents are expected to come from a" ! + "JTextComponent."); JTextComponent text = (JTextComponent) source; Document doc = text.getDocument(); if (!(doc instanceof StyledDocument)) ! throw new AssertionError("The Document used by StyledEditorKits is" ! + "expected to be a StyledDocument"); StyledDocument styleDoc = (StyledDocument) doc; currentRun = styleDoc.getCharacterElement(ev.getDot()); --- 499,512 ---- { Object source = ev.getSource(); if (!(source instanceof JTextComponent)) ! throw new AssertionError("CaretEvents are expected to come from a" ! + "JTextComponent."); JTextComponent text = (JTextComponent) source; Document doc = text.getDocument(); if (!(doc instanceof StyledDocument)) ! throw new AssertionError("The Document used by StyledEditorKits is" ! + "expected to be a StyledDocument"); StyledDocument styleDoc = (StyledDocument) doc; currentRun = styleDoc.getCharacterElement(ev.getDot()); *************** public class StyledEditorKit extends Def *** 571,577 **** public Action[] getActions() { Action[] actions1 = super.getActions(); ! Action[] myActions = new Action[] { new FontSizeAction("font-size-8", 8), new FontSizeAction("font-size-10", 10), new FontSizeAction("font-size-12", 12), --- 571,577 ---- public Action[] getActions() { Action[] actions1 = super.getActions(); ! Action[] myActions = new Action[] { new FontSizeAction("font-size-8", 8), new FontSizeAction("font-size-10", 10), new FontSizeAction("font-size-12", 12), *************** public class StyledEditorKit extends Def *** 698,704 **** * @param set the inputAttributes to copy the attributes to */ protected void createInputAttributes(Element element, ! MutableAttributeSet set) { // FIXME: Filter out component, icon and element name attributes. set.removeAttributes(set); --- 698,704 ---- * @param set the inputAttributes to copy the attributes to */ protected void createInputAttributes(Element element, ! MutableAttributeSet set) { // FIXME: Filter out component, icon and element name attributes. set.removeAttributes(set); diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/TabExpander.java gcc-4.6.0/libjava/classpath/javax/swing/text/TabExpander.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/TabExpander.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/TabExpander.java Tue Jan 11 19:46:05 2011 *************** package javax.swing.text; *** 40,43 **** public interface TabExpander { float nextTabStop(float x, int tabOffset); ! } \ No newline at end of file --- 40,43 ---- public interface TabExpander { float nextTabStop(float x, int tabOffset); ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/TabSet.java gcc-4.6.0/libjava/classpath/javax/swing/text/TabSet.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/TabSet.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/TabSet.java Tue Jan 11 19:46:05 2011 *************** public class TabSet implements Serializa *** 54,81 **** /** * Creates a new TabSet containing the specified tab stops. ! * * @param t the tab stops (null permitted). */ ! public TabSet(TabStop[] t) { if (t != null) tabs = (TabStop[]) t.clone(); ! else tabs = new TabStop[0]; } ! /** * Returns the tab stop with the specified index. ! * * @param i the index. ! * * @return The tab stop. ! * ! * @throws IllegalArgumentException if i is not in the range * 0 to getTabCount() - 1. */ ! public TabStop getTab(int i) { if (i < 0 || i >= tabs.length) throw new IllegalArgumentException("Index out of bounds."); --- 54,81 ---- /** * Creates a new TabSet containing the specified tab stops. ! * * @param t the tab stops (null permitted). */ ! public TabSet(TabStop[] t) { if (t != null) tabs = (TabStop[]) t.clone(); ! else tabs = new TabStop[0]; } ! /** * Returns the tab stop with the specified index. ! * * @param i the index. ! * * @return The tab stop. ! * ! * @throws IllegalArgumentException if i is not in the range * 0 to getTabCount() - 1. */ ! public TabStop getTab(int i) { if (i < 0 || i >= tabs.length) throw new IllegalArgumentException("Index out of bounds."); *************** public class TabSet implements Serializa *** 84,121 **** /** * Returns the tab following the specified location. ! * * @param location the location. ! * * @return The tab following the specified location (or null). */ ! public TabStop getTabAfter(float location) { int idx = getTabIndexAfter(location); if (idx == -1) return null; else ! return tabs[idx]; } /** * Returns the number of tab stops in this tab set. ! * * @return The number of tab stops in this tab set. */ ! public int getTabCount() { return tabs.length; } /** * Returns the index of the specified tab, or -1 if the tab is not found. ! * * @param tab the tab (null permitted). ! * * @return The index of the specified tab, or -1. */ ! public int getTabIndex(TabStop tab) { for (int i = 0; i < tabs.length; ++i) if (tabs[i] == tab) --- 84,121 ---- /** * Returns the tab following the specified location. ! * * @param location the location. ! * * @return The tab following the specified location (or null). */ ! public TabStop getTabAfter(float location) { int idx = getTabIndexAfter(location); if (idx == -1) return null; else ! return tabs[idx]; } /** * Returns the number of tab stops in this tab set. ! * * @return The number of tab stops in this tab set. */ ! public int getTabCount() { return tabs.length; } /** * Returns the index of the specified tab, or -1 if the tab is not found. ! * * @param tab the tab (null permitted). ! * * @return The index of the specified tab, or -1. */ ! public int getTabIndex(TabStop tab) { for (int i = 0; i < tabs.length; ++i) if (tabs[i] == tab) *************** public class TabSet implements Serializa *** 125,136 **** /** * Returns the index of the tab at or after the specified location. ! * * @param location the tab location. ! * * @return The index of the tab stop, or -1. */ ! public int getTabIndexAfter(float location) { for (int i = 0; i < tabs.length; i++) { --- 125,136 ---- /** * Returns the index of the tab at or after the specified location. ! * * @param location the tab location. ! * * @return The index of the tab stop, or -1. */ ! public int getTabIndexAfter(float location) { for (int i = 0; i < tabs.length; i++) { *************** public class TabSet implements Serializa *** 139,153 **** } return -1; } ! /** * Tests this TabSet for equality with an arbitrary object. ! * * @param obj the object (null permitted). ! * * @return true if this TabSet is equal to * obj, and false otherwise. ! * * @since 1.5 */ public boolean equals(Object obj) --- 139,153 ---- } return -1; } ! /** * Tests this TabSet for equality with an arbitrary object. ! * * @param obj the object (null permitted). ! * * @return true if this TabSet is equal to * obj, and false otherwise. ! * * @since 1.5 */ public boolean equals(Object obj) *************** public class TabSet implements Serializa *** 167,181 **** } return true; } ! /** * Returns a hash code for this TabSet. ! * * @return A hash code. ! * * @since 1.5 */ ! public int hashCode() { // this hash code won't match Sun's, but that shouldn't matter... int result = 193; --- 167,181 ---- } return true; } ! /** * Returns a hash code for this TabSet. ! * * @return A hash code. ! * * @since 1.5 */ ! public int hashCode() { // this hash code won't match Sun's, but that shouldn't matter... int result = 193; *************** public class TabSet implements Serializa *** 191,197 **** /** * Returns a string representation of this TabSet. ! * * @return A string representation of this TabSet. */ public String toString() --- 191,197 ---- /** * Returns a string representation of this TabSet. ! * * @return A string representation of this TabSet. */ public String toString() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/TabStop.java gcc-4.6.0/libjava/classpath/javax/swing/text/TabStop.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/TabStop.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/TabStop.java Tue Jan 11 19:46:05 2011 *************** public class TabStop implements Serializ *** 66,88 **** /** * Creates a new TabStop for the specified tab position. ! * * @param pos the tab position. */ ! public TabStop(float pos) { this(pos, ALIGN_LEFT, LEAD_NONE); } ! /** * Creates a new TabStop with the specified attributes. ! * * @param pos the tab position. ! * @param align the alignment (one of {@link #ALIGN_LEFT}, ! * {@link #ALIGN_CENTER}, {@link #ALIGN_RIGHT}, {@link #ALIGN_DECIMAL} * or {@link #ALIGN_BAR}). ! * @param leader the leader (one of {@link #LEAD_NONE}, {@link #LEAD_DOTS}, ! * {@link #LEAD_EQUALS}, {@link #LEAD_HYPHENS}, {@link #LEAD_THICKLINE} * or {@link #LEAD_UNDERLINE}). */ public TabStop(float pos, int align, int leader) --- 66,88 ---- /** * Creates a new TabStop for the specified tab position. ! * * @param pos the tab position. */ ! public TabStop(float pos) { this(pos, ALIGN_LEFT, LEAD_NONE); } ! /** * Creates a new TabStop with the specified attributes. ! * * @param pos the tab position. ! * @param align the alignment (one of {@link #ALIGN_LEFT}, ! * {@link #ALIGN_CENTER}, {@link #ALIGN_RIGHT}, {@link #ALIGN_DECIMAL} * or {@link #ALIGN_BAR}). ! * @param leader the leader (one of {@link #LEAD_NONE}, {@link #LEAD_DOTS}, ! * {@link #LEAD_EQUALS}, {@link #LEAD_HYPHENS}, {@link #LEAD_THICKLINE} * or {@link #LEAD_UNDERLINE}). */ public TabStop(float pos, int align, int leader) *************** public class TabStop implements Serializ *** 91,106 **** this.align = align; this.leader = leader; } ! /** * Tests this TabStop for equality with an arbitrary object. ! * * @param other the other object (null permitted). ! * ! * @return true if this TabStop is equal to * the specified object, and false otherwise. */ ! public boolean equals(Object other) { return (other != null) && (other instanceof TabStop) --- 91,106 ---- this.align = align; this.leader = leader; } ! /** * Tests this TabStop for equality with an arbitrary object. ! * * @param other the other object (null permitted). ! * ! * @return true if this TabStop is equal to * the specified object, and false otherwise. */ ! public boolean equals(Object other) { return (other != null) && (other instanceof TabStop) *************** public class TabStop implements Serializ *** 110,164 **** } /** ! * Returns the tab alignment. This should be one of {@link #ALIGN_LEFT}, ! * {@link #ALIGN_CENTER}, {@link #ALIGN_RIGHT}, {@link #ALIGN_DECIMAL} or * {@link #ALIGN_BAR}. ! * * @return The tab alignment. */ ! public int getAlignment() { return align; } /** ! * Returns the leader type. This should be one of {@link #LEAD_NONE}, ! * {@link #LEAD_DOTS}, {@link #LEAD_EQUALS}, {@link #LEAD_HYPHENS}, * {@link #LEAD_THICKLINE} or {@link #LEAD_UNDERLINE}. ! * * @return The leader type. */ ! public int getLeader() { return leader; } /** * Returns the tab position. ! * * @return The tab position. */ ! public float getPosition() { return pos; } /** * Returns a hash code for this TabStop. ! * * @return A hash code. */ ! public int hashCode() { return (int) pos + (int) leader + (int) align; } /** * Returns a string describing this TabStop. ! * * @return A string describing this TabStop. */ ! public String toString() { String prefix = ""; switch (align) --- 110,164 ---- } /** ! * Returns the tab alignment. This should be one of {@link #ALIGN_LEFT}, ! * {@link #ALIGN_CENTER}, {@link #ALIGN_RIGHT}, {@link #ALIGN_DECIMAL} or * {@link #ALIGN_BAR}. ! * * @return The tab alignment. */ ! public int getAlignment() { return align; } /** ! * Returns the leader type. This should be one of {@link #LEAD_NONE}, ! * {@link #LEAD_DOTS}, {@link #LEAD_EQUALS}, {@link #LEAD_HYPHENS}, * {@link #LEAD_THICKLINE} or {@link #LEAD_UNDERLINE}. ! * * @return The leader type. */ ! public int getLeader() { return leader; } /** * Returns the tab position. ! * * @return The tab position. */ ! public float getPosition() { return pos; } /** * Returns a hash code for this TabStop. ! * * @return A hash code. */ ! public int hashCode() { return (int) pos + (int) leader + (int) align; } /** * Returns a string describing this TabStop. ! * * @return A string describing this TabStop. */ ! public String toString() { String prefix = ""; switch (align) *************** public class TabStop implements Serializ *** 174,180 **** case ALIGN_DECIMAL: prefix = "decimal "; break; ! case ALIGN_BAR: prefix = "bar "; break; --- 174,180 ---- case ALIGN_DECIMAL: prefix = "decimal "; break; ! case ALIGN_BAR: prefix = "bar "; break; *************** public class TabStop implements Serializ *** 182,189 **** default: break; } ! ! return prefix + "tab @" + pos + ((leader == LEAD_NONE) ? "" : " (w/leaders)"); } --- 182,189 ---- default: break; } ! ! return prefix + "tab @" + pos + ((leader == LEAD_NONE) ? "" : " (w/leaders)"); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/TabableView.java gcc-4.6.0/libjava/classpath/javax/swing/text/TabableView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/TabableView.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/TabableView.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* TabableView.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* TabableView.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/TableView.java gcc-4.6.0/libjava/classpath/javax/swing/text/TableView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/TableView.java Fri Mar 10 21:46:48 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/TableView.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.event.DocumentEvent; *** 51,57 **** * horizontal boxes containing the actuall cells of the table. These cells * can be arbitrary view implementations and are fetched via the * {@link ViewFactory} returned by {@link View#getViewFactory}. ! * * @author Roman Kennke (kennke@aicas.com) */ public abstract class TableView --- 51,57 ---- * horizontal boxes containing the actuall cells of the table. These cells * can be arbitrary view implementations and are fetched via the * {@link ViewFactory} returned by {@link View#getViewFactory}. ! * * @author Roman Kennke (kennke@aicas.com) */ public abstract class TableView *************** public abstract class TableView *** 416,422 **** /** * Calculates the requirements of this view for the minor (== horizontal) * axis. ! * * This is reimplemented to calculate the requirements as the sum of the * size requirements of the columns. * --- 416,422 ---- /** * Calculates the requirements of this view for the minor (== horizontal) * axis. ! * * This is reimplemented to calculate the requirements as the sum of the * size requirements of the columns. * diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/TextAction.java gcc-4.6.0/libjava/classpath/javax/swing/text/TextAction.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/TextAction.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/TextAction.java Tue Jan 11 19:46:05 2011 *************** public abstract class TextAction extends *** 67,75 **** * Returns the JTextComponent object associated with the given * ActionEvent. If the source of the event is not a * JTextComponent the currently focused text component is returned. ! * * @param event the action event ! * * @return the JTextComponent */ protected final JTextComponent getTextComponent(ActionEvent event) --- 67,75 ---- * Returns the JTextComponent object associated with the given * ActionEvent. If the source of the event is not a * JTextComponent the currently focused text component is returned. ! * * @param event the action event ! * * @return the JTextComponent */ protected final JTextComponent getTextComponent(ActionEvent event) *************** public abstract class TextAction extends *** 88,94 **** /** * Creates a new array of Action containing both given arrays. ! * * @param list1 the first action array * @param list2 the second action array * --- 88,94 ---- /** * Creates a new array of Action containing both given arrays. ! * * @param list1 the first action array * @param list2 the second action array * *************** public abstract class TextAction extends *** 112,118 **** actions.put(name != null ? name : "", a); } Action[] augmented = new Action[actions.size()]; ! int i = 0; for (Iterator it = actions.values().iterator(); it.hasNext(); i++) augmented[i] = it.next(); --- 112,118 ---- actions.put(name != null ? name : "", a); } Action[] augmented = new Action[actions.size()]; ! int i = 0; for (Iterator it = actions.values().iterator(); it.hasNext(); i++) augmented[i] = it.next(); *************** public abstract class TextAction extends *** 122,128 **** /** * Returns the current focused JTextComponent object. ! * * @return the JTextComponent */ protected final JTextComponent getFocusedComponent() --- 122,128 ---- /** * Returns the current focused JTextComponent object. ! * * @return the JTextComponent */ protected final JTextComponent getFocusedComponent() *************** public abstract class TextAction extends *** 135,155 **** textComp = (JTextComponent) focused; return textComp; } ! /** Abstract helper class which implements everything needed for an * Action implementation in DefaultEditorKit which ! * does horizontal movement (and selection). */ abstract static class HorizontalMovementAction extends TextAction { int dir; ! HorizontalMovementAction(String name, int direction) { super(name); dir = direction; } ! public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); --- 135,155 ---- textComp = (JTextComponent) focused; return textComp; } ! /** Abstract helper class which implements everything needed for an * Action implementation in DefaultEditorKit which ! * does horizontal movement (and selection). */ abstract static class HorizontalMovementAction extends TextAction { int dir; ! HorizontalMovementAction(String name, int direction) { super(name); dir = direction; } ! public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); *************** public abstract class TextAction extends *** 161,194 **** = Utilities.getNextVisualPositionFrom(t, t.getCaretPosition(), dir); ! Caret c = t.getCaret(); ! actionPerformedImpl(c, offs); ! c.setMagicCaretPosition(t.modelToView(offs).getLocation()); } } catch(BadLocationException ble) { ! throw (InternalError) new InternalError("Illegal offset").initCause(ble); } ! } ! protected abstract void actionPerformedImpl(Caret c, int offs) throws BadLocationException; } ! /** Abstract helper class which implements everything needed for an * Action implementation in DefaultEditorKit which * does vertical movement (and selection). ! */ abstract static class VerticalMovementAction extends TextAction { int dir; ! VerticalMovementAction(String name, int direction) { super(name); --- 161,194 ---- = Utilities.getNextVisualPositionFrom(t, t.getCaretPosition(), dir); ! Caret c = t.getCaret(); ! actionPerformedImpl(c, offs); ! c.setMagicCaretPosition(t.modelToView(offs).getLocation()); } } catch(BadLocationException ble) { ! throw (InternalError) new InternalError("Illegal offset").initCause(ble); } ! } ! protected abstract void actionPerformedImpl(Caret c, int offs) throws BadLocationException; } ! /** Abstract helper class which implements everything needed for an * Action implementation in DefaultEditorKit which * does vertical movement (and selection). ! */ abstract static class VerticalMovementAction extends TextAction { int dir; ! VerticalMovementAction(String name, int direction) { super(name); *************** public abstract class TextAction extends *** 215,240 **** } else pos = c.getDot(); ! pos = Utilities.getNextVisualPositionFrom(t, t.getCaretPosition(), dir); ! if (pos > -1) actionPerformedImpl(c, pos); } } ! catch(BadLocationException ble) { ! throw (InternalError) new InternalError("Illegal offset").initCause(ble); } } ! protected abstract void actionPerformedImpl(Caret c, int offs) throws BadLocationException; ! } ! ! } --- 215,240 ---- } else pos = c.getDot(); ! pos = Utilities.getNextVisualPositionFrom(t, t.getCaretPosition(), dir); ! if (pos > -1) actionPerformedImpl(c, pos); } } ! catch(BadLocationException ble) { ! throw (InternalError) new InternalError("Illegal offset").initCause(ble); } } ! protected abstract void actionPerformedImpl(Caret c, int offs) throws BadLocationException; ! } ! ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/Utilities.java gcc-4.6.0/libjava/classpath/javax/swing/text/Utilities.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/Utilities.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/Utilities.java Tue Jan 11 19:46:05 2011 *************** public class Utilities *** 97,103 **** int pos = s.offset; int len = 0; ! int end = s.offset + s.count; for (int offset = s.offset; offset < end; ++offset) --- 97,103 ---- int pos = s.offset; int len = 0; ! int end = s.offset + s.count; for (int offset = s.offset; offset < end; ++offset) *************** public class Utilities *** 138,144 **** g.drawChars(buffer, pos, len, pixelX, y); pixelX += metrics.charsWidth(buffer, pos, len); } ! return pixelX; } --- 138,144 ---- g.drawChars(buffer, pos, len, pixelX, y); pixelX += metrics.charsWidth(buffer, pos, len); } ! return pixelX; } *************** public class Utilities *** 171,191 **** int count = 0; for (int offset = s.offset; offset < end; offset++) { ! switch (buffer[offset]) ! { ! case '\t': ! // In case we have a tab, we just 'jump' over the tab. ! // When we have no tab expander we just use the width of 'm'. ! if (e != null) ! pixelX = (int) e.nextTabStop(pixelX, ! startOffset + offset - s.offset); ! else ! pixelX += metrics.charWidth(' '); ! break; ! case '\n': ! // In case we have a newline, we must 'draw' ! // the buffer and jump on the next line. ! pixelX += metrics.charsWidth(buffer, offset - count, count); count = 0; break; default: --- 171,191 ---- int count = 0; for (int offset = s.offset; offset < end; offset++) { ! switch (buffer[offset]) ! { ! case '\t': ! // In case we have a tab, we just 'jump' over the tab. ! // When we have no tab expander we just use the width of 'm'. ! if (e != null) ! pixelX = (int) e.nextTabStop(pixelX, ! startOffset + offset - s.offset); ! else ! pixelX += metrics.charWidth(' '); ! break; ! case '\n': ! // In case we have a newline, we must 'draw' ! // the buffer and jump on the next line. ! pixelX += metrics.charsWidth(buffer, offset - count, count); count = 0; break; default: *************** public class Utilities *** 234,245 **** int found = s.count; int currentX = x0; int nextX = currentX; ! int end = s.offset + s.count; for (int pos = s.offset; pos < end && found == s.count; pos++) { char nextChar = s.array[pos]; ! if (nextChar != '\t') nextX += fm.charWidth(nextChar); else --- 234,245 ---- int found = s.count; int currentX = x0; int nextX = currentX; ! int end = s.offset + s.count; for (int pos = s.offset; pos < end && found == s.count; pos++) { char nextChar = s.array[pos]; ! if (nextChar != '\t') nextX += fm.charWidth(nextChar); else *************** public class Utilities *** 249,255 **** else nextX += ((int) te.nextTabStop(nextX, p0 + pos - s.offset)); } ! if (x >= currentX && x < nextX) { // Found position. --- 249,255 ---- else nextX += ((int) te.nextTabStop(nextX, p0 + pos - s.offset)); } ! if (x >= currentX && x < nextX) { // Found position. *************** public class Utilities *** 295,304 **** { return getTabbedTextOffset(s, fm, x0, x, te, p0, true); } ! /** * Finds the start of the next word for the given offset. ! * * @param c * the text component * @param offs --- 295,304 ---- { return getTabbedTextOffset(s, fm, x0, x, te, p0, true); } ! /** * Finds the start of the next word for the given offset. ! * * @param c * the text component * @param offs *************** public class Utilities *** 315,321 **** String text = c.getText(); BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); ! int last = wb.following(offs); int current = wb.next(); int cp; --- 315,321 ---- String text = c.getText(); BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); ! int last = wb.following(offs); int current = wb.next(); int cp; *************** public class Utilities *** 325,331 **** for (int i = last; i < current; i++) { cp = text.codePointAt(i); ! // Return the last found bound if there is a letter at the current // location or is not whitespace (meaning it is a number or // punctuation). The first case means that 'last' denotes the --- 325,331 ---- for (int i = last; i < current; i++) { cp = text.codePointAt(i); ! // Return the last found bound if there is a letter at the current // location or is not whitespace (meaning it is a number or // punctuation). The first case means that 'last' denotes the *************** public class Utilities *** 338,350 **** last = current; current = wb.next(); } ! throw new BadLocationException("no more words", offs); } /** * Finds the start of the previous word for the given offset. ! * * @param c * the text component * @param offs --- 338,350 ---- last = current; current = wb.next(); } ! throw new BadLocationException("no more words", offs); } /** * Finds the start of the previous word for the given offset. ! * * @param c * the text component * @param offs *************** public class Utilities *** 357,366 **** throws BadLocationException { String text = c.getText(); ! if (offs <= 0 || offs > text.length()) throw new BadLocationException("invalid offset specified", offs); ! BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); int last = wb.preceding(offs); --- 357,366 ---- throws BadLocationException { String text = c.getText(); ! if (offs <= 0 || offs > text.length()) throw new BadLocationException("invalid offset specified", offs); ! BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); int last = wb.preceding(offs); *************** public class Utilities *** 372,378 **** for (int i = last; i < offs; i++) { cp = text.codePointAt(i); ! // Return the last found bound if there is a letter at the current // location or is not whitespace (meaning it is a number or // punctuation). The first case means that 'last' denotes the --- 372,378 ---- for (int i = last; i < offs; i++) { cp = text.codePointAt(i); ! // Return the last found bound if there is a letter at the current // location or is not whitespace (meaning it is a number or // punctuation). The first case means that 'last' denotes the *************** public class Utilities *** 385,394 **** last = current; current = wb.previous(); } ! return 0; } ! /** * Finds the start of a word for the given location. * @param c the text component --- 385,394 ---- last = current; current = wb.previous(); } ! return 0; } ! /** * Finds the start of a word for the given location. * @param c the text component *************** public class Utilities *** 400,409 **** throws BadLocationException { String text = c.getText(); ! if (offs < 0 || offs > text.length()) throw new BadLocationException("invalid offset specified", offs); ! BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); --- 400,409 ---- throws BadLocationException { String text = c.getText(); ! if (offs < 0 || offs > text.length()) throw new BadLocationException("invalid offset specified", offs); ! BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); *************** public class Utilities *** 412,418 **** return wb.preceding(offs); } ! /** * Finds the end of a word for the given location. * @param c the text component --- 412,418 ---- return wb.preceding(offs); } ! /** * Finds the end of a word for the given location. * @param c the text component *************** public class Utilities *** 425,444 **** { if (offs < 0 || offs >= c.getText().length()) throw new BadLocationException("invalid offset specified", offs); ! String text = c.getText(); BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); return wb.following(offs); } ! /** ! * Get the model position of the end of the row that contains the * specified model position. Return null if the given JTextComponent * does not have a size. * @param c the JTextComponent * @param offs the model position ! * @return the model position of the end of the row containing the given * offset * @throws BadLocationException if the offset is invalid */ --- 425,444 ---- { if (offs < 0 || offs >= c.getText().length()) throw new BadLocationException("invalid offset specified", offs); ! String text = c.getText(); BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); return wb.following(offs); } ! /** ! * Get the model position of the end of the row that contains the * specified model position. Return null if the given JTextComponent * does not have a size. * @param c the JTextComponent * @param offs the model position ! * @return the model position of the end of the row containing the given * offset * @throws BadLocationException if the offset is invalid */ *************** public class Utilities *** 473,484 **** } } } ! /** * Get the model position of the start of the row that contains the specified * model position. Return null if the given JTextComponent does not have a * size. ! * * @param c the JTextComponent * @param offs the model position * @return the model position of the start of the row containing the given --- 473,484 ---- } } } ! /** * Get the model position of the start of the row that contains the specified * model position. Return null if the given JTextComponent does not have a * size. ! * * @param c the JTextComponent * @param offs the model position * @return the model position of the start of the row containing the given *************** public class Utilities *** 516,522 **** } } } ! /** * Determine where to break the text in the given Segment, attempting to find * a word boundary. --- 516,522 ---- } } } ! /** * Determine where to break the text in the given Segment, attempting to find * a word boundary. *************** public class Utilities *** 612,634 **** throws BadLocationException { int offs = getRowStart(c, offset); ! if(offs == -1) return -1; // Effectively calculates the y value of the previous line. Point pt = c.modelToView(offs-1).getLocation(); ! pt.x = x; ! // Calculate a simple fitting offset. offs = c.viewToModel(pt); ! // Find out the real x positions of the calculated character and its // neighbour. int offsX = c.modelToView(offs).getLocation().x; int offsXNext = c.modelToView(offs+1).getLocation().x; ! // Chose the one which is nearer to us and return its offset. if (Math.abs(offsX-x) <= Math.abs(offsXNext-x)) return offs; --- 612,634 ---- throws BadLocationException { int offs = getRowStart(c, offset); ! if(offs == -1) return -1; // Effectively calculates the y value of the previous line. Point pt = c.modelToView(offs-1).getLocation(); ! pt.x = x; ! // Calculate a simple fitting offset. offs = c.viewToModel(pt); ! // Find out the real x positions of the calculated character and its // neighbour. int offsX = c.modelToView(offs).getLocation().x; int offsXNext = c.modelToView(offs+1).getLocation().x; ! // Chose the one which is nearer to us and return its offset. if (Math.abs(offsX-x) <= Math.abs(offsXNext-x)) return offs; *************** public class Utilities *** 653,664 **** throws BadLocationException { int offs = getRowEnd(c, offset); ! if(offs == -1) return -1; Point pt = null; ! // Note: Some views represent the position after the last // typed character others do not. Converting offset 3 in "a\nb" // in a PlainView will return a valid rectangle while in a --- 653,664 ---- throws BadLocationException { int offs = getRowEnd(c, offset); ! if(offs == -1) return -1; Point pt = null; ! // Note: Some views represent the position after the last // typed character others do not. Converting offset 3 in "a\nb" // in a PlainView will return a valid rectangle while in a *************** public class Utilities *** 673,684 **** { return offset; } ! pt.x = x; ! // Calculate a simple fitting offset. offs = c.viewToModel(pt); ! if (offs == c.getDocument().getLength()) return offs; --- 673,684 ---- { return offset; } ! pt.x = x; ! // Calculate a simple fitting offset. offs = c.viewToModel(pt); ! if (offs == c.getDocument().getLength()) return offs; *************** public class Utilities *** 686,714 **** // neighbour. int offsX = c.modelToView(offs).getLocation().x; int offsXNext = c.modelToView(offs+1).getLocation().x; ! // Chose the one which is nearer to us and return its offset. if (Math.abs(offsX-x) <= Math.abs(offsXNext-x)) return offs; else return offs+1; } ! /** This is an internal helper method which is used by the * javax.swing.text package. It simply delegates the * call to a method with the same name on the NavigationFilter * of the provided JTextComponent (if it has one) or its UI. ! * * If the underlying method throws a BadLocationException it * will be swallowed and the initial offset is returned. */ static int getNextVisualPositionFrom(JTextComponent t, int offset, int direction) { NavigationFilter nf = t.getNavigationFilter(); ! try { ! return (nf != null) ? nf.getNextVisualPositionFrom(t, offset, Bias.Forward, --- 686,714 ---- // neighbour. int offsX = c.modelToView(offs).getLocation().x; int offsXNext = c.modelToView(offs+1).getLocation().x; ! // Chose the one which is nearer to us and return its offset. if (Math.abs(offsX-x) <= Math.abs(offsXNext-x)) return offs; else return offs+1; } ! /** This is an internal helper method which is used by the * javax.swing.text package. It simply delegates the * call to a method with the same name on the NavigationFilter * of the provided JTextComponent (if it has one) or its UI. ! * * If the underlying method throws a BadLocationException it * will be swallowed and the initial offset is returned. */ static int getNextVisualPositionFrom(JTextComponent t, int offset, int direction) { NavigationFilter nf = t.getNavigationFilter(); ! try { ! return (nf != null) ? nf.getNextVisualPositionFrom(t, offset, Bias.Forward, *************** public class Utilities *** 724,730 **** { return offset; } ! } ! } --- 724,730 ---- { return offset; } ! } ! } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/View.java gcc-4.6.0/libjava/classpath/javax/swing/text/View.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/View.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/View.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* View.java -- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* View.java -- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public abstract class View implements Sw *** 56,62 **** public static final int X_AXIS = 0; public static final int Y_AXIS = 1; ! private Element elt; private View parent; --- 56,62 ---- public static final int X_AXIS = 0; public static final int Y_AXIS = 1; ! private Element elt; private View parent; *************** public abstract class View implements Sw *** 104,115 **** this.parent = parent; } ! public View getParent() { return parent; } ! public Container getContainer() { View parent = getParent(); --- 104,115 ---- this.parent = parent; } ! public View getParent() { return parent; } ! public Container getContainer() { View parent = getParent(); *************** public abstract class View implements Sw *** 118,129 **** else return parent.getContainer(); } ! public Document getDocument() { return getElement().getDocument(); } ! public Element getElement() { return elt; --- 118,129 ---- else return parent.getContainer(); } ! public Document getDocument() { return getElement().getDocument(); } ! public Element getElement() { return elt; *************** public abstract class View implements Sw *** 189,200 **** min = getPreferredSpan(axis); return min; } ! public void setSize(float width, float height) { // The default implementation does nothing. } ! /** * Returns the alignment of this view along the baseline of the parent view. * An alignment of 0.0 will align this view with the left edge --- 189,200 ---- min = getPreferredSpan(axis); return min; } ! public void setSize(float width, float height) { // The default implementation does nothing. } ! /** * Returns the alignment of this view along the baseline of the parent view. * An alignment of 0.0 will align this view with the left edge *************** public abstract class View implements Sw *** 218,224 **** { return getElement().getAttributes(); } ! public boolean isVisible() { return true; --- 218,224 ---- { return getElement().getAttributes(); } ! public boolean isVisible() { return true; *************** public abstract class View implements Sw *** 228,234 **** { return 0; } ! public View getView(int index) { return null; --- 228,234 ---- { return 0; } ! public View getView(int index) { return null; *************** public abstract class View implements Sw *** 274,280 **** public void remove(int index) { ! replace(index, 1, null); } public View createFragment(int p0, int p1) --- 274,280 ---- public void remove(int index) { ! replace(index, 1, null); } public View createFragment(int p0, int p1) *************** public abstract class View implements Sw *** 297,303 **** { return null; } ! /** * @since 1.4 */ --- 297,303 ---- { return null; } ! /** * @since 1.4 */ *************** public abstract class View implements Sw *** 305,311 **** { return -1; } ! /** * @since 1.4 */ --- 305,311 ---- { return -1; } ! /** * @since 1.4 */ *************** public abstract class View implements Sw *** 674,688 **** * listed valid values */ public Shape modelToView(int p1, Position.Bias b1, ! int p2, Position.Bias b2, Shape a) throws BadLocationException { if (b1 != Position.Bias.Forward && b1 != Position.Bias.Backward) throw new IllegalArgumentException ! ("b1 must be either Position.Bias.Forward or Position.Bias.Backward"); if (b2 != Position.Bias.Forward && b2 != Position.Bias.Backward) throw new IllegalArgumentException ! ("b2 must be either Position.Bias.Forward or Position.Bias.Backward"); Shape s1 = modelToView(p1, a, b1); // Special case for p2 == end index. --- 674,688 ---- * listed valid values */ public Shape modelToView(int p1, Position.Bias b1, ! int p2, Position.Bias b2, Shape a) throws BadLocationException { if (b1 != Position.Bias.Forward && b1 != Position.Bias.Backward) throw new IllegalArgumentException ! ("b1 must be either Position.Bias.Forward or Position.Bias.Backward"); if (b2 != Position.Bias.Forward && b2 != Position.Bias.Backward) throw new IllegalArgumentException ! ("b2 must be either Position.Bias.Forward or Position.Bias.Backward"); Shape s1 = modelToView(p1, a, b1); // Special case for p2 == end index. *************** public abstract class View implements Sw *** 867,873 **** ret = parent.viewToModel(r.x, r.y - 1, a, biasRet); break; case SOUTH: ! // Try to find a suitable offset by examining the area below. parent = getParent(); r = parent.modelToView(pos, a, b).getBounds(); ret = parent.viewToModel(r.x + r.width, r.y + r.height, a, biasRet); --- 867,873 ---- ret = parent.viewToModel(r.x, r.y - 1, a, biasRet); break; case SOUTH: ! // Try to find a suitable offset by examining the area below. parent = getParent(); r = parent.modelToView(pos, a, b).getBounds(); ret = parent.viewToModel(r.x + r.width, r.y + r.height, a, biasRet); *************** public abstract class View implements Sw *** 875,881 **** default: throw new IllegalArgumentException("Illegal value for d"); } ! return ret; } } --- 875,881 ---- default: throw new IllegalArgumentException("Illegal value for d"); } ! return ret; } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/ViewFactory.java gcc-4.6.0/libjava/classpath/javax/swing/text/ViewFactory.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/ViewFactory.java Fri Sep 23 17:31:48 2005 --- gcc-4.6.0/libjava/classpath/javax/swing/text/ViewFactory.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* ViewFactory.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* ViewFactory.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/WrappedPlainView.java gcc-4.6.0/libjava/classpath/javax/swing/text/WrappedPlainView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/WrappedPlainView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/WrappedPlainView.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* WrappedPlainView.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* WrappedPlainView.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class WrappedPlainView extends Bo *** 56,86 **** { /** The color for selected text **/ Color selectedColor; ! /** The color for unselected text **/ Color unselectedColor; ! /** The color for disabled components **/ Color disabledColor; ! /** * Stores the font metrics. This is package private to avoid synthetic * accessor method. */ FontMetrics metrics; ! /** Whether or not to wrap on word boundaries **/ boolean wordWrap; ! /** A ViewFactory that creates WrappedLines **/ ViewFactory viewFactory = new WrappedLineCreator(); ! /** The start of the selected text **/ int selectionStart; ! /** The end of the selected text **/ int selectionEnd; ! /** The height of the line (used while painting) **/ int lineHeight; --- 56,86 ---- { /** The color for selected text **/ Color selectedColor; ! /** The color for unselected text **/ Color unselectedColor; ! /** The color for disabled components **/ Color disabledColor; ! /** * Stores the font metrics. This is package private to avoid synthetic * accessor method. */ FontMetrics metrics; ! /** Whether or not to wrap on word boundaries **/ boolean wordWrap; ! /** A ViewFactory that creates WrappedLines **/ ViewFactory viewFactory = new WrappedLineCreator(); ! /** The start of the selected text **/ int selectionStart; ! /** The end of the selected text **/ int selectionEnd; ! /** The height of the line (used while painting) **/ int lineHeight; *************** public class WrappedPlainView extends Bo *** 98,115 **** * The instance returned by {@link #getLineBuffer()}. */ private transient Segment lineBuffer; ! public WrappedPlainView (Element elem) { this (elem, false); } ! public WrappedPlainView (Element elem, boolean wordWrap) { super (elem, Y_AXIS); ! this.wordWrap = wordWrap; ! } ! /** * Provides access to the Segment used for retrievals from the Document. * @return the Segment. --- 98,115 ---- * The instance returned by {@link #getLineBuffer()}. */ private transient Segment lineBuffer; ! public WrappedPlainView (Element elem) { this (elem, false); } ! public WrappedPlainView (Element elem, boolean wordWrap) { super (elem, Y_AXIS); ! this.wordWrap = wordWrap; ! } ! /** * Provides access to the Segment used for retrievals from the Document. * @return the Segment. *************** public class WrappedPlainView extends Bo *** 120,131 **** lineBuffer = new Segment(); return lineBuffer; } ! /** * Returns the next tab stop position after a given reference position. * * This implementation ignores the tabStop argument. ! * * @param x the current x position in pixels * @param tabStop the position within the text stream that the tab occured at */ --- 120,131 ---- lineBuffer = new Segment(); return lineBuffer; } ! /** * Returns the next tab stop position after a given reference position. * * This implementation ignores the tabStop argument. ! * * @param x the current x position in pixels * @param tabStop the position within the text stream that the tab occured at */ *************** public class WrappedPlainView extends Bo *** 139,150 **** } return next; } ! /** ! * Returns the tab size for the Document based on * PlainDocument.tabSizeAttribute, defaulting to 8 if this property is * not defined ! * * @return the tab size. */ protected int getTabSize() --- 139,150 ---- } return next; } ! /** ! * Returns the tab size for the Document based on * PlainDocument.tabSizeAttribute, defaulting to 8 if this property is * not defined ! * * @return the tab size. */ protected int getTabSize() *************** public class WrappedPlainView extends Bo *** 154,160 **** return 8; return ((Integer)tabSize).intValue(); } ! /** * Draws a line of text, suppressing white space at the end and expanding * tabs. Calls drawSelectedText and drawUnselectedText. --- 154,160 ---- return 8; return ((Integer)tabSize).intValue(); } ! /** * Draws a line of text, suppressing white space at the end and expanding * tabs. Calls drawSelectedText and drawUnselectedText. *************** public class WrappedPlainView extends Bo *** 175,211 **** // - start of range is selected, end of range is unselected // - start of range is unselected, end of range is selected // - middle of range is selected, start and end of range is unselected ! ! // entire range unselected: ! if ((selectionStart == selectionEnd) || (p0 > selectionEnd || p1 < selectionStart)) drawUnselectedText(g, x, y, p0, p1); ! // entire range selected else if (p0 >= selectionStart && p1 <= selectionEnd) drawSelectedText(g, x, y, p0, p1); ! // start of range selected, end of range unselected else if (p0 >= selectionStart) { x = drawSelectedText(g, x, y, p0, selectionEnd); drawUnselectedText(g, x, y, selectionEnd, p1); } ! // start of range unselected, end of range selected else if (selectionStart > p0 && selectionEnd > p1) { x = drawUnselectedText(g, x, y, p0, selectionStart); drawSelectedText(g, x, y, selectionStart, p1); } ! // middle of range selected else if (selectionStart > p0) { x = drawUnselectedText(g, x, y, p0, selectionStart); x = drawSelectedText(g, x, y, selectionStart, selectionEnd); drawUnselectedText(g, x, y, selectionEnd, p1); ! } } catch (BadLocationException ble) { --- 175,211 ---- // - start of range is selected, end of range is unselected // - start of range is unselected, end of range is selected // - middle of range is selected, start and end of range is unselected ! ! // entire range unselected: ! if ((selectionStart == selectionEnd) || (p0 > selectionEnd || p1 < selectionStart)) drawUnselectedText(g, x, y, p0, p1); ! // entire range selected else if (p0 >= selectionStart && p1 <= selectionEnd) drawSelectedText(g, x, y, p0, p1); ! // start of range selected, end of range unselected else if (p0 >= selectionStart) { x = drawSelectedText(g, x, y, p0, selectionEnd); drawUnselectedText(g, x, y, selectionEnd, p1); } ! // start of range unselected, end of range selected else if (selectionStart > p0 && selectionEnd > p1) { x = drawUnselectedText(g, x, y, p0, selectionStart); drawSelectedText(g, x, y, selectionStart, p1); } ! // middle of range selected else if (selectionStart > p0) { x = drawUnselectedText(g, x, y, p0, selectionStart); x = drawSelectedText(g, x, y, selectionStart, selectionEnd); drawUnselectedText(g, x, y, selectionEnd, p1); ! } } catch (BadLocationException ble) { *************** public class WrappedPlainView extends Bo *** 214,227 **** } /** ! * Renders the range of text as selected text. Just paints the text * in the color specified by the host component. Assumes the highlighter * will render the selected background. * @param g the graphics context * @param x the starting X coordinate * @param y the starting Y coordinate * @param p0 the starting model location ! * @param p1 the ending model location * @return the X coordinate of the end of the text * @throws BadLocationException if the given range is invalid */ --- 214,227 ---- } /** ! * Renders the range of text as selected text. Just paints the text * in the color specified by the host component. Assumes the highlighter * will render the selected background. * @param g the graphics context * @param x the starting X coordinate * @param y the starting Y coordinate * @param p0 the starting model location ! * @param p1 the ending model location * @return the X coordinate of the end of the text * @throws BadLocationException if the given range is invalid */ *************** public class WrappedPlainView extends Bo *** 246,252 **** */ protected int drawUnselectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException ! { JTextComponent textComponent = (JTextComponent) getContainer(); if (textComponent.isEnabled()) g.setColor(unselectedColor); --- 246,252 ---- */ protected int drawUnselectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException ! { JTextComponent textComponent = (JTextComponent) getContainer(); if (textComponent.isEnabled()) g.setColor(unselectedColor); *************** public class WrappedPlainView extends Bo *** 256,263 **** Segment segment = getLineBuffer(); getDocument().getText(p0, p1 - p0, segment); return Utilities.drawTabbedText(segment, x, y, g, this, p0); ! } ! /** * Loads the children to initiate the view. Called by setParent. * Creates a WrappedLine for each child Element. --- 256,263 ---- Segment segment = getLineBuffer(); getDocument().getText(p0, p1 - p0, segment); return Utilities.drawTabbedText(segment, x, y, g, this, p0); ! } ! /** * Loads the children to initiate the view. Called by setParent. * Creates a WrappedLine for each child Element. *************** public class WrappedPlainView extends Bo *** 268,284 **** int numChildren = root.getElementCount(); if (numChildren == 0) return; ! View[] children = new View[numChildren]; for (int i = 0; i < numChildren; i++) children[i] = new WrappedLine(root.getElement(i)); replace(0, 0, children); } ! /** * Calculates the break position for the text between model positions * p0 and p1. Will break on word boundaries or character boundaries ! * depending on the break argument given in construction of this * WrappedPlainView. Used by the nested WrappedLine class to determine * when to start the next logical line. * @param p0 the start model position --- 268,284 ---- int numChildren = root.getElementCount(); if (numChildren == 0) return; ! View[] children = new View[numChildren]; for (int i = 0; i < numChildren; i++) children[i] = new WrappedLine(root.getElement(i)); replace(0, 0, children); } ! /** * Calculates the break position for the text between model positions * p0 and p1. Will break on word boundaries or character boundaries ! * depending on the break argument given in construction of this * WrappedPlainView. Used by the nested WrappedLine class to determine * when to start the next logical line. * @param p0 the start model position *************** public class WrappedPlainView extends Bo *** 307,322 **** false); return pos; } ! void updateMetrics() { Container component = getContainer(); metrics = component.getFontMetrics(component.getFont()); tabSize = getTabSize()* metrics.charWidth('m'); } ! /** ! * Determines the preferred span along the given axis. Implemented to * cache the font metrics and then call the super classes method. */ public float getPreferredSpan (int axis) --- 307,322 ---- false); return pos; } ! void updateMetrics() { Container component = getContainer(); metrics = component.getFontMetrics(component.getFont()); tabSize = getTabSize()* metrics.charWidth('m'); } ! /** ! * Determines the preferred span along the given axis. Implemented to * cache the font metrics and then call the super classes method. */ public float getPreferredSpan (int axis) *************** public class WrappedPlainView extends Bo *** 324,332 **** updateMetrics(); return super.getPreferredSpan(axis); } ! /** ! * Determines the minimum span along the given axis. Implemented to * cache the font metrics and then call the super classes method. */ public float getMinimumSpan (int axis) --- 324,332 ---- updateMetrics(); return super.getPreferredSpan(axis); } ! /** ! * Determines the minimum span along the given axis. Implemented to * cache the font metrics and then call the super classes method. */ public float getMinimumSpan (int axis) *************** public class WrappedPlainView extends Bo *** 334,342 **** updateMetrics(); return super.getMinimumSpan(axis); } ! /** ! * Determines the maximum span along the given axis. Implemented to * cache the font metrics and then call the super classes method. */ public float getMaximumSpan (int axis) --- 334,342 ---- updateMetrics(); return super.getMinimumSpan(axis); } ! /** ! * Determines the maximum span along the given axis. Implemented to * cache the font metrics and then call the super classes method. */ public float getMaximumSpan (int axis) *************** public class WrappedPlainView extends Bo *** 344,350 **** updateMetrics(); return super.getMaximumSpan(axis); } ! /** * Called when something was inserted. Overridden so that * the view factory creates WrappedLine views. --- 344,350 ---- updateMetrics(); return super.getMaximumSpan(axis); } ! /** * Called when something was inserted. Overridden so that * the view factory creates WrappedLine views. *************** public class WrappedPlainView extends Bo *** 361,367 **** if (v != null) v.insertUpdate(e, r, f); } ! /** * Called when something is removed. Overridden so that * the view factory creates WrappedLine views. --- 361,367 ---- if (v != null) v.insertUpdate(e, r, f); } ! /** * Called when something is removed. Overridden so that * the view factory creates WrappedLine views. *************** public class WrappedPlainView extends Bo *** 378,384 **** if (v != null) v.removeUpdate(e, r, f); } ! /** * Called when the portion of the Document that this View is responsible * for changes. Overridden so that the view factory creates --- 378,384 ---- if (v != null) v.removeUpdate(e, r, f); } ! /** * Called when the portion of the Document that this View is responsible * for changes. Overridden so that the view factory creates *************** public class WrappedPlainView extends Bo *** 425,433 **** public View create(Element elem) { return new WrappedLine(elem); ! } } ! /** * Renders the Element that is associated with this * View. Caches the metrics and then calls --- 425,433 ---- public View create(Element elem) { return new WrappedLine(elem); ! } } ! /** * Renders the Element that is associated with this * View. Caches the metrics and then calls *************** public class WrappedPlainView extends Bo *** 444,450 **** JTextComponent comp = (JTextComponent)getContainer(); // Ensure metrics are up-to-date. updateMetrics(); ! selectionStart = comp.getSelectionStart(); selectionEnd = comp.getSelectionEnd(); --- 444,450 ---- JTextComponent comp = (JTextComponent)getContainer(); // Ensure metrics are up-to-date. updateMetrics(); ! selectionStart = comp.getSelectionStart(); selectionEnd = comp.getSelectionEnd(); *************** public class WrappedPlainView extends Bo *** 457,463 **** super.paint(g, a); } ! /** * Sets the size of the View. Implemented to update the metrics * and then call super method. --- 457,463 ---- super.paint(g, a); } ! /** * Sets the size of the View. Implemented to update the metrics * and then call super method. *************** public class WrappedPlainView extends Bo *** 469,480 **** preferenceChanged(null, true, true); super.setSize(width, height); } ! class WrappedLine extends View ! { /** Used to cache the number of lines for this View **/ int numLines = 1; ! public WrappedLine(Element elem) { super(elem); --- 469,480 ---- preferenceChanged(null, true, true); super.setSize(width, height); } ! class WrappedLine extends View ! { /** Used to cache the number of lines for this View **/ int numLines = 1; ! public WrappedLine(Element elem) { super(elem); *************** public class WrappedPlainView extends Bo *** 518,543 **** this); else lh.paintLayeredHighlights(g, currStart, currEnd, s, tc, this); ! } drawLine(currStart, currEnd, g, rect.x, rect.y + metrics.getAscent()); ! ! rect.y += lineHeight; if (currEnd == currStart) currStart ++; else currStart = currEnd; ! count++; ! } ! if (count != numLines) { numLines = count; preferenceChanged(this, false, true); } ! } /** --- 518,543 ---- this); else lh.paintLayeredHighlights(g, currStart, currEnd, s, tc, this); ! } drawLine(currStart, currEnd, g, rect.x, rect.y + metrics.getAscent()); ! ! rect.y += lineHeight; if (currEnd == currStart) currStart ++; else currStart = currEnd; ! count++; ! } ! if (count != numLines) { numLines = count; preferenceChanged(this, false, true); } ! } /** *************** public class WrappedPlainView extends Bo *** 546,552 **** * accordingly. */ private int determineNumLines() ! { int nLines = 0; int end = getEndOffset(); for (int i = getStartOffset(); i < end;) --- 546,552 ---- * accordingly. */ private int determineNumLines() ! { int nLines = 0; int end = getEndOffset(); for (int i = getStartOffset(); i < end;) *************** public class WrappedPlainView extends Bo *** 555,561 **** // careful: check that there's no off-by-one problem here // depending on which position calculateBreakPosition returns int breakPoint = calculateBreakPosition(i, end); ! if (breakPoint == i) i = breakPoint + 1; else --- 555,561 ---- // careful: check that there's no off-by-one problem here // depending on which position calculateBreakPosition returns int breakPoint = calculateBreakPosition(i, end); ! if (breakPoint == i) i = breakPoint + 1; else *************** public class WrappedPlainView extends Bo *** 563,574 **** } return nLines; } ! /** * Determines the preferred span for this view along the given axis. ! * * @param axis the axis (either X_AXIS or Y_AXIS) ! * * @return the preferred span along the given axis. * @throws IllegalArgumentException if axis is not X_AXIS or Y_AXIS */ --- 563,574 ---- } return nLines; } ! /** * Determines the preferred span for this view along the given axis. ! * * @param axis the axis (either X_AXIS or Y_AXIS) ! * * @return the preferred span along the given axis. * @throws IllegalArgumentException if axis is not X_AXIS or Y_AXIS */ *************** public class WrappedPlainView extends Bo *** 582,600 **** updateMetrics(); return numLines * metrics.getHeight(); } ! throw new IllegalArgumentException("Invalid axis for getPreferredSpan: " + axis); } ! /** * Provides a mapping from model space to view space. ! * * @param pos the position in the model * @param a the region into which the view is rendered * @param b the position bias (forward or backward) ! * ! * @return a box in view space that represents the given position * in model space * @throws BadLocationException if the given model position is invalid */ --- 582,600 ---- updateMetrics(); return numLines * metrics.getHeight(); } ! throw new IllegalArgumentException("Invalid axis for getPreferredSpan: " + axis); } ! /** * Provides a mapping from model space to view space. ! * * @param pos the position in the model * @param a the region into which the view is rendered * @param b the position bias (forward or backward) ! * ! * @return a box in view space that represents the given position * in model space * @throws BadLocationException if the given model position is invalid */ *************** public class WrappedPlainView extends Bo *** 602,627 **** throws BadLocationException { Rectangle rect = a.getBounds(); ! // Throwing a BadLocationException is an observed behavior of the RI. if (rect.isEmpty()) throw new BadLocationException("Unable to calculate view coordinates " + "when allocation area is empty.", pos); ! Segment s = getLineBuffer(); int lineHeight = metrics.getHeight(); ! ! // Return a rectangle with width 1 and height equal to the height // of the text rect.height = lineHeight; rect.width = 1; int currLineStart = getStartOffset(); int end = getEndOffset(); ! if (pos < currLineStart || pos >= end) throw new BadLocationException("invalid offset", pos); ! while (true) { int currLineEnd = calculateBreakPosition(currLineStart, end); --- 602,627 ---- throws BadLocationException { Rectangle rect = a.getBounds(); ! // Throwing a BadLocationException is an observed behavior of the RI. if (rect.isEmpty()) throw new BadLocationException("Unable to calculate view coordinates " + "when allocation area is empty.", pos); ! Segment s = getLineBuffer(); int lineHeight = metrics.getHeight(); ! ! // Return a rectangle with width 1 and height equal to the height // of the text rect.height = lineHeight; rect.width = 1; int currLineStart = getStartOffset(); int end = getEndOffset(); ! if (pos < currLineStart || pos >= end) throw new BadLocationException("invalid offset", pos); ! while (true) { int currLineEnd = calculateBreakPosition(currLineStart, end); *************** public class WrappedPlainView extends Bo *** 629,635 **** // the width of the text from currLineStart to pos and add that // to rect.x if (pos >= currLineStart && pos < currLineEnd) ! { try { getDocument().getText(currLineStart, pos - currLineStart, s); --- 629,635 ---- // the width of the text from currLineStart to pos and add that // to rect.x if (pos >= currLineStart && pos < currLineEnd) ! { try { getDocument().getText(currLineStart, pos - currLineStart, s); *************** public class WrappedPlainView extends Bo *** 645,651 **** } // Increment rect.y so we're checking the next logical line rect.y += lineHeight; ! // Increment currLineStart to the model position of the start // of the next logical line if (currLineEnd == currLineStart) --- 645,651 ---- } // Increment rect.y so we're checking the next logical line rect.y += lineHeight; ! // Increment currLineStart to the model position of the start // of the next logical line if (currLineEnd == currLineStart) *************** public class WrappedPlainView extends Bo *** 658,669 **** /** * Provides a mapping from view space to model space. ! * * @param x the x coordinate in view space * @param y the y coordinate in view space * @param a the region into which the view is rendered * @param b the position bias (forward or backward) ! * * @return the location in the model that best represents the * given point in view space */ --- 658,669 ---- /** * Provides a mapping from view space to model space. ! * * @param x the x coordinate in view space * @param y the y coordinate in view space * @param a the region into which the view is rendered * @param b the position bias (forward or backward) ! * * @return the location in the model that best represents the * given point in view space */ *************** public class WrappedPlainView extends Bo *** 672,690 **** Segment s = getLineBuffer(); Rectangle rect = a.getBounds(); int currLineStart = getStartOffset(); ! // Although calling modelToView with the last possible offset will // cause a BadLocationException in CompositeView it is allowed // to return that offset in viewToModel. int end = getEndOffset(); ! int lineHeight = metrics.getHeight(); if (y < rect.y) return currLineStart; if (y > rect.y + rect.height) return end - 1; ! // Note: rect.x and rect.width do not represent the width of painted // text but the area where text *may* be painted. This means the width // is most of the time identical to the component's width. --- 672,690 ---- Segment s = getLineBuffer(); Rectangle rect = a.getBounds(); int currLineStart = getStartOffset(); ! // Although calling modelToView with the last possible offset will // cause a BadLocationException in CompositeView it is allowed // to return that offset in viewToModel. int end = getEndOffset(); ! int lineHeight = metrics.getHeight(); if (y < rect.y) return currLineStart; if (y > rect.y + rect.height) return end - 1; ! // Note: rect.x and rect.width do not represent the width of painted // text but the area where text *may* be painted. This means the width // is most of the time identical to the component's width. *************** public class WrappedPlainView extends Bo *** 705,711 **** { // Shouldn't happen } ! int offset = Utilities.getTabbedTextOffset(s, metrics, rect.x, (int) x, WrappedPlainView.this, --- 705,711 ---- { // Shouldn't happen } ! int offset = Utilities.getTabbedTextOffset(s, metrics, rect.x, (int) x, WrappedPlainView.this, *************** public class WrappedPlainView extends Bo *** 719,745 **** } // Increment rect.y so we're checking the next logical line rect.y += lineHeight; ! // Increment currLineStart to the model position of the start // of the next logical line. currLineStart = currLineEnd; } ! return end; ! } ! /** *

                                    This method is called from insertUpdate and removeUpdate.

                                    ! * *

                                    If the number of lines in the document has changed, just repaint ! * the whole thing (note, could improve performance by not repainting ! * anything above the changes). If the number of lines hasn't changed, * just repaint the given Rectangle.

                                    ! * *

                                    Note that the Rectangle argument may be null ! * when the allocation area is empty. ! * * @param a the Rectangle to repaint if the number of lines hasn't changed */ void updateDamage (Rectangle a) --- 719,745 ---- } // Increment rect.y so we're checking the next logical line rect.y += lineHeight; ! // Increment currLineStart to the model position of the start // of the next logical line. currLineStart = currLineEnd; } ! return end; ! } ! /** *

                                    This method is called from insertUpdate and removeUpdate.

                                    ! * *

                                    If the number of lines in the document has changed, just repaint ! * the whole thing (note, could improve performance by not repainting ! * anything above the changes). If the number of lines hasn't changed, * just repaint the given Rectangle.

                                    ! * *

                                    Note that the Rectangle argument may be null ! * when the allocation area is empty. ! * * @param a the Rectangle to repaint if the number of lines hasn't changed */ void updateDamage (Rectangle a) *************** public class WrappedPlainView extends Bo *** 754,764 **** else if (a != null) getContainer().repaint(a.x, a.y, a.width, a.height); } ! /** * This method is called when something is inserted into the Document * that this View is displaying. ! * * @param changes the DocumentEvent for the changes. * @param a the allocation of the View * @param f the ViewFactory used to rebuild --- 754,764 ---- else if (a != null) getContainer().repaint(a.x, a.y, a.width, a.height); } ! /** * This method is called when something is inserted into the Document * that this View is displaying. ! * * @param changes the DocumentEvent for the changes. * @param a the allocation of the View * @param f the ViewFactory used to rebuild *************** public class WrappedPlainView extends Bo *** 766,778 **** public void insertUpdate (DocumentEvent changes, Shape a, ViewFactory f) { Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); ! updateDamage(r); } ! /** * This method is called when something is removed from the Document * that this View is displaying. ! * * @param changes the DocumentEvent for the changes. * @param a the allocation of the View * @param f the ViewFactory used to rebuild --- 766,778 ---- public void insertUpdate (DocumentEvent changes, Shape a, ViewFactory f) { Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); ! updateDamage(r); } ! /** * This method is called when something is removed from the Document * that this View is displaying. ! * * @param changes the DocumentEvent for the changes. * @param a the allocation of the View * @param f the ViewFactory used to rebuild *************** public class WrappedPlainView extends Bo *** 787,795 **** // makes View.forwardUpdate() skip this method call. // However this seems to cause no trouble and as it reduces the // number of method calls it can stay this way. ! Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); ! updateDamage(r); } } } --- 787,795 ---- // makes View.forwardUpdate() skip this method call. // However this seems to cause no trouble and as it reduces the // number of method calls it can stay this way. ! Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); ! updateDamage(r); } } } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/BRView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/BRView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/BRView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/BRView.java Tue Jan 11 19:46:05 2011 *************** class BRView *** 48,61 **** { /** * Creates the new BR view. ! * * @param elem the HTML element, representing the view. */ public BRView(Element elem) { super(elem); } ! /** * Always return ForcedBreakWeight for the X_AXIS, BadBreakWeight for the * Y_AXIS. --- 48,61 ---- { /** * Creates the new BR view. ! * * @param elem the HTML element, representing the view. */ public BRView(Element elem) { super(elem); } ! /** * Always return ForcedBreakWeight for the X_AXIS, BadBreakWeight for the * Y_AXIS. diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/BlockView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/BlockView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/BlockView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/BlockView.java Tue Jan 11 19:46:05 2011 *************** *** 1,4 **** ! /* BlockView.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. --- 1,4 ---- ! /* BlockView.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. *************** public class BlockView extends BoxView *** 159,167 **** private HashMap positionInfo; /** ! * Creates a new view that represents an html box. * This can be used for a number of elements. ! * * @param elem - the element to create a view for * @param axis - either View.X_AXIS or View.Y_AXIS */ --- 159,167 ---- private HashMap positionInfo; /** ! * Creates a new view that represents an html box. * This can be used for a number of elements. ! * * @param elem - the element to create a view for * @param axis - either View.X_AXIS or View.Y_AXIS */ *************** public class BlockView extends BoxView *** 176,201 **** * Creates the parent view for this. It is called before * any other methods, if the parent view is working properly. * Implemented to forward to the superclass and call ! * setPropertiesFromAttributes to set the paragraph * properties. ! * * @param parent - the new parent, or null if the view ! * is being removed from a parent it was added to. */ public void setParent(View parent) { super.setParent(parent); ! if (parent != null) setPropertiesFromAttributes(); } ! /** * Calculates the requirements along the major axis. * This is implemented to call the superclass and then * adjust it if the CSS width or height attribute is specified * and applicable. ! * * @param axis - the axis to check the requirements for. * @param r - the SizeRequirements. If null, one is created. * @return the new SizeRequirements object. --- 176,201 ---- * Creates the parent view for this. It is called before * any other methods, if the parent view is working properly. * Implemented to forward to the superclass and call ! * setPropertiesFromAttributes to set the paragraph * properties. ! * * @param parent - the new parent, or null if the view ! * is being removed from a parent it was added to. */ public void setParent(View parent) { super.setParent(parent); ! if (parent != null) setPropertiesFromAttributes(); } ! /** * Calculates the requirements along the major axis. * This is implemented to call the superclass and then * adjust it if the CSS width or height attribute is specified * and applicable. ! * * @param axis - the axis to check the requirements for. * @param r - the SizeRequirements. If null, one is created. * @return the new SizeRequirements object. *************** public class BlockView extends BoxView *** 205,211 **** { if (r == null) r = new SizeRequirements(); ! if (setCSSSpan(r, axis)) { // If we have set the span from CSS, then we need to adjust --- 205,211 ---- { if (r == null) r = new SizeRequirements(); ! if (setCSSSpan(r, axis)) { // If we have set the span from CSS, then we need to adjust *************** public class BlockView extends BoxView *** 229,235 **** * This is implemented to call the superclass and then * adjust it if the CSS width or height attribute is specified * and applicable. ! * * @param axis - the axis to check the requirements for. * @param r - the SizeRequirements. If null, one is created. * @return the new SizeRequirements object. --- 229,235 ---- * This is implemented to call the superclass and then * adjust it if the CSS width or height attribute is specified * and applicable. ! * * @param axis - the axis to check the requirements for. * @param r - the SizeRequirements. If null, one is created. * @return the new SizeRequirements object. *************** public class BlockView extends BoxView *** 239,245 **** { if (r == null) r = new SizeRequirements(); ! if (setCSSSpan(r, axis)) { // If we have set the span from CSS, then we need to adjust --- 239,245 ---- { if (r == null) r = new SizeRequirements(); ! if (setCSSSpan(r, axis)) { // If we have set the span from CSS, then we need to adjust *************** public class BlockView extends BoxView *** 277,283 **** /** * Sets the span on the SizeRequirements object according to the * according CSS span value, when it is set. ! * * @param r the size requirements * @param axis the axis * --- 277,283 ---- /** * Sets the span on the SizeRequirements object according to the * according CSS span value, when it is set. ! * * @param r the size requirements * @param axis the axis * *************** public class BlockView extends BoxView *** 325,338 **** * perpendicular to the axis that it represents). The results * of the layout are placed in the given arrays which are * the allocations to the children along the minor axis. ! * ! * @param targetSpan - the total span given to the view, also * used to layout the children. * @param axis - the minor axis * @param offsets - the offsets from the origin of the view for * all the child views. This is a return value and is filled in by this * function. ! * @param spans - the span of each child view. This is a return value and is * filled in by this function. */ protected void layoutMinorAxis(int targetSpan, int axis, --- 325,338 ---- * perpendicular to the axis that it represents). The results * of the layout are placed in the given arrays which are * the allocations to the children along the minor axis. ! * ! * @param targetSpan - the total span given to the view, also * used to layout the children. * @param axis - the minor axis * @param offsets - the offsets from the origin of the view for * all the child views. This is a return value and is filled in by this * function. ! * @param spans - the span of each child view. This is a return value and is * filled in by this function. */ protected void layoutMinorAxis(int targetSpan, int axis, *************** public class BlockView extends BoxView *** 469,475 **** * Paints using the given graphics configuration and shape. * This delegates to the css box painter to paint the * border and background prior to the interior. ! * * @param g - Graphics configuration * @param a - the Shape to render into. */ --- 469,475 ---- * Paints using the given graphics configuration and shape. * This delegates to the css box painter to paint the * border and background prior to the interior. ! * * @param g - Graphics configuration * @param a - the Shape to render into. */ *************** public class BlockView extends BoxView *** 487,493 **** /** * Fetches the attributes to use when painting. ! * * @return the attributes of this model. */ public AttributeSet getAttributes() --- 487,493 ---- /** * Fetches the attributes to use when painting. ! * * @return the attributes of this model. */ public AttributeSet getAttributes() *************** public class BlockView extends BoxView *** 496,505 **** attributes = getStyleSheet().getViewAttributes(this); return attributes; } ! /** * Gets the resize weight. ! * * @param axis - the axis to get the resize weight for. * @return the resize weight. * @throws IllegalArgumentException - for an invalid axis --- 496,505 ---- attributes = getStyleSheet().getViewAttributes(this); return attributes; } ! /** * Gets the resize weight. ! * * @param axis - the axis to get the resize weight for. * @return the resize weight. * @throws IllegalArgumentException - for an invalid axis *************** public class BlockView extends BoxView *** 513,522 **** return 1; throw new IllegalArgumentException("Invalid Axis"); } ! /** * Gets the alignment. ! * * @param axis - the axis to get the alignment for. * @return the alignment. */ --- 513,522 ---- return 1; throw new IllegalArgumentException("Invalid Axis"); } ! /** * Gets the alignment. ! * * @param axis - the axis to get the alignment for. * @return the alignment. */ *************** public class BlockView extends BoxView *** 537,547 **** } throw new IllegalArgumentException("Invalid Axis"); } ! /** * Gives notification from the document that attributes were * changed in a location that this view is responsible for. ! * * @param ev - the change information * @param a - the current shape of the view * @param f - the factory to use to rebuild if the view has children. --- 537,547 ---- } throw new IllegalArgumentException("Invalid Axis"); } ! /** * Gives notification from the document that attributes were * changed in a location that this view is responsible for. ! * * @param ev - the change information * @param a - the current shape of the view * @param f - the factory to use to rebuild if the view has children. *************** public class BlockView extends BoxView *** 550,556 **** Shape a, ViewFactory f) { super.changedUpdate(ev, a, f); ! // If more elements were added, then need to set the properties for them int currPos = ev.getOffset(); if (currPos <= getStartOffset() --- 550,556 ---- Shape a, ViewFactory f) { super.changedUpdate(ev, a, f); ! // If more elements were added, then need to set the properties for them int currPos = ev.getOffset(); if (currPos <= getStartOffset() *************** public class BlockView extends BoxView *** 560,569 **** /** * Determines the preferred span along the axis. ! * * @param axis - the view to get the preferred span for. * @return the span the view would like to be painted into >=0/ ! * The view is usually told to paint into the span that is returned, * although the parent may choose to resize or break the view. * @throws IllegalArgumentException - for an invalid axis */ --- 560,569 ---- /** * Determines the preferred span along the axis. ! * * @param axis - the view to get the preferred span for. * @return the span the view would like to be painted into >=0/ ! * The view is usually told to paint into the span that is returned, * although the parent may choose to resize or break the view. * @throws IllegalArgumentException - for an invalid axis */ *************** public class BlockView extends BoxView *** 573,585 **** return super.getPreferredSpan(axis); throw new IllegalArgumentException("Invalid Axis"); } ! /** * Determines the minimum span along the axis. ! * * @param axis - the axis to get the minimum span for. * @return the span the view would like to be painted into >=0/ ! * The view is usually told to paint into the span that is returned, * although the parent may choose to resize or break the view. * @throws IllegalArgumentException - for an invalid axis */ --- 573,585 ---- return super.getPreferredSpan(axis); throw new IllegalArgumentException("Invalid Axis"); } ! /** * Determines the minimum span along the axis. ! * * @param axis - the axis to get the minimum span for. * @return the span the view would like to be painted into >=0/ ! * The view is usually told to paint into the span that is returned, * although the parent may choose to resize or break the view. * @throws IllegalArgumentException - for an invalid axis */ *************** public class BlockView extends BoxView *** 589,601 **** return super.getMinimumSpan(axis); throw new IllegalArgumentException("Invalid Axis"); } ! /** * Determines the maximum span along the axis. ! * * @param axis - the axis to get the maximum span for. * @return the span the view would like to be painted into >=0/ ! * The view is usually told to paint into the span that is returned, * although the parent may choose to resize or break the view. * @throws IllegalArgumentException - for an invalid axis */ --- 589,601 ---- return super.getMinimumSpan(axis); throw new IllegalArgumentException("Invalid Axis"); } ! /** * Determines the maximum span along the axis. ! * * @param axis - the axis to get the maximum span for. * @return the span the view would like to be painted into >=0/ ! * The view is usually told to paint into the span that is returned, * although the parent may choose to resize or break the view. * @throws IllegalArgumentException - for an invalid axis */ *************** public class BlockView extends BoxView *** 605,611 **** return super.getMaximumSpan(axis); throw new IllegalArgumentException("Invalid Axis"); } ! /** * Updates any cached values that come from attributes. */ --- 605,611 ---- return super.getMaximumSpan(axis); throw new IllegalArgumentException("Invalid Axis"); } ! /** * Updates any cached values that come from attributes. */ *************** public class BlockView extends BoxView *** 640,646 **** /** * Gets the default style sheet. ! * * @return the style sheet */ protected StyleSheet getStyleSheet() --- 640,646 ---- /** * Gets the default style sheet. ! * * @return the style sheet */ protected StyleSheet getStyleSheet() diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/CSS.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/CSS.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/CSS.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/CSS.java Tue Jan 11 19:46:05 2011 *************** public class CSS implements Serializable *** 455,461 **** * * @param attr the attribute string * @param inherited if the attribute should be inherited or not ! * @param def a default value; may be null */ Attribute(String attr, boolean inherited, String def) { --- 455,461 ---- * * @param attr the attribute string * @param inherited if the attribute should be inherited or not ! * @param def a default value; may be null */ Attribute(String attr, boolean inherited, String def) { *************** public class CSS implements Serializable *** 463,469 **** isInherited = inherited; defaultValue = def; if( attributeMap == null) ! attributeMap = new HashMap(); attributeMap.put( attr, this ); } --- 463,469 ---- isInherited = inherited; defaultValue = def; if( attributeMap == null) ! attributeMap = new HashMap(); attributeMap.put( attr, this ); } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/CSSBorder.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/CSSBorder.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/CSSBorder.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/CSSBorder.java Tue Jan 11 19:46:05 2011 *************** class CSSBorder *** 308,314 **** // Right border. paintBorderLine(g, x + width - right / 2, y, x + width - right / 2, y + height, topStyle, right, rightColor, true); ! } private void paintBorderLine(Graphics g, int x1, int y1, int x2, int y2, --- 308,314 ---- // Right border. paintBorderLine(g, x + width - right / 2, y, x + width - right / 2, y + height, topStyle, right, rightColor, true); ! } private void paintBorderLine(Graphics g, int x1, int y1, int x2, int y2, diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/CSSParser.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/CSSParser.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/CSSParser.java Tue Oct 21 17:55:01 2008 --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/CSSParser.java Tue Jan 11 19:46:05 2011 *************** import java.io.*; *** 43,60 **** /** * Parses a CSS document. This works by way of a delegate that implements the * CSSParserCallback interface. The delegate is notified of the following ! * events: ! * - Import statement: handleImport ! * - Selectors handleSelector. This is invoked for each string. For example if ! * the Reader contained p, bar , a {}, the delegate would be notified 4 times, ! * for 'p,' 'bar' ',' and 'a'. ! * - When a rule starts, startRule * - Properties in the rule via the handleProperty. This * is invoked one per property/value key, eg font size: foo;, would cause the ! * delegate to be notified once with a value of 'font size'. ! * - Values in the rule via the handleValue, this is notified for the total value. * - When a rule ends, endRule ! * * @author Lillian Angel (langel@redhat.com) */ class CSSParser --- 43,60 ---- /** * Parses a CSS document. This works by way of a delegate that implements the * CSSParserCallback interface. The delegate is notified of the following ! * events: ! * - Import statement: handleImport ! * - Selectors handleSelector. This is invoked for each string. For example if ! * the Reader contained p, bar , a {}, the delegate would be notified 4 times, ! * for 'p,' 'bar' ',' and 'a'. ! * - When a rule starts, startRule * - Properties in the rule via the handleProperty. This * is invoked one per property/value key, eg font size: foo;, would cause the ! * delegate to be notified once with a value of 'font size'. ! * - Values in the rule via the handleValue, this is notified for the total value. * - When a rule ends, endRule ! * * @author Lillian Angel (langel@redhat.com) */ class CSSParser *************** class CSSParser *** 68,74 **** { /** * Handles the import statment in the document. ! * * @param imp - the import string */ public abstract void handleImport(String imp); --- 68,74 ---- { /** * Handles the import statment in the document. ! * * @param imp - the import string */ public abstract void handleImport(String imp); *************** class CSSParser *** 85,105 **** /** * Handles the selector of a rule. ! * * @param selector - the selector in the rule */ public abstract void handleSelector(String selector); /** * Handles the properties in the document. ! * * @param property - the property in the document. */ public abstract void handleProperty(String property); /** * Handles the values in the document. ! * * @param value - the value to handle. */ public abstract void handleValue(String value); --- 85,105 ---- /** * Handles the selector of a rule. ! * * @param selector - the selector in the rule */ public abstract void handleSelector(String selector); /** * Handles the properties in the document. ! * * @param property - the property in the document. */ public abstract void handleProperty(String property); /** * Handles the values in the document. ! * * @param value - the value to handle. */ public abstract void handleValue(String value); *************** class CSSParser *** 212,218 **** /** * Appends a character to the token buffer. ! * * @param c - the character to append */ private void append(char c) --- 212,218 ---- /** * Appends a character to the token buffer. ! * * @param c - the character to append */ private void append(char c) *************** class CSSParser *** 233,239 **** /** * Fetches the next token. ! * * @param c - the character to fetch. * @return the location * @throws IOException - any i/o error encountered while reading --- 233,239 ---- /** * Fetches the next token. ! * * @param c - the character to fetch. * @return the location * @throws IOException - any i/o error encountered while reading *************** class CSSParser *** 276,282 **** /** * Reads a character from the stream. ! * * @return the number of characters read or -1 if end of stream is reached. * @throws IOException - any i/o encountered while reading */ --- 276,282 ---- /** * Reads a character from the stream. ! * * @return the number of characters read or -1 if end of stream is reached. * @throws IOException - any i/o encountered while reading */ *************** class CSSParser *** 293,311 **** /** * Parses the the contents of the reader using the * callback. ! * * @param reader - the reader to read from * @param callback - the callback instance * @param parsingDeclaration - true if parsing a declaration * @throws IOException - any i/o error from the reader */ ! void parse(Reader reader, CSSParser.CSSParserCallback callback, boolean parsingDeclaration) throws IOException { this.reader = reader; this.callback = callback; ! try { if (!parsingDeclaration) --- 293,311 ---- /** * Parses the the contents of the reader using the * callback. ! * * @param reader - the reader to read from * @param callback - the callback instance * @param parsingDeclaration - true if parsing a declaration * @throws IOException - any i/o error from the reader */ ! void parse(Reader reader, CSSParser.CSSParserCallback callback, boolean parsingDeclaration) throws IOException { this.reader = reader; this.callback = callback; ! try { if (!parsingDeclaration) *************** class CSSParser *** 322,328 **** /** * Skips any white space, returning the character after the white space. ! * * @return the character after the whitespace * @throws IOException - any i/o error from the reader */ --- 322,328 ---- /** * Skips any white space, returning the character after the white space. ! * * @return the character after the whitespace * @throws IOException - any i/o error from the reader */ *************** class CSSParser *** 337,343 **** return next; next = tempNext; } ! // Its all whitespace return END; } --- 337,343 ---- return next; next = tempNext; } ! // Its all whitespace return END; } *************** class CSSParser *** 345,351 **** /** * Gets the next statement, returning false if the end is reached. * A statement is either an At-rule, or a ruleset. ! * * @return false if the end is reached * @throws IOException - any i/o error from the reader */ --- 345,351 ---- /** * Gets the next statement, returning false if the end is reached. * A statement is either an At-rule, or a ruleset. ! * * @return false if the end is reached * @throws IOException - any i/o error from the reader */ *************** class CSSParser *** 368,374 **** parseAtRule(); else parseRuleSet(); ! break; case END: return false; } --- 368,374 ---- parseAtRule(); else parseRuleSet(); ! break; case END: return false; } *************** class CSSParser *** 377,404 **** /** * Parses an @ rule, stopping at a matching brace pair, or ;. ! * * @throws IOException - any i/o error from the reader */ private void parseAtRule() throws IOException ! { ! // An At-Rule begins with the "@" character followed immediately by a keyword. ! // Following the keyword separated by a space is an At-rule statement appropriate ! // to the At-keyword used. If the At-Rule is a simple declarative statement ! // (charset, import, fontdef), it is terminated by a semi-colon (";".) ! // If the At-Rule is a conditional or informative statement (media, page, font-face), ! // it is followed by optional arguments and then a style declaration block inside matching ! // curly braces ("{", "}".) At-Rules are sometimes nestable, depending on the context. // If any part of an At-Rule is not understood, it should be ignored. ! // FIXME: Not Implemented ! // call handleimport } /** ! * Parses the next rule set, which is a selector followed by a declaration * block. ! * * @throws IOException - any i/o error from the reader */ private void parseRuleSet() throws IOException --- 377,404 ---- /** * Parses an @ rule, stopping at a matching brace pair, or ;. ! * * @throws IOException - any i/o error from the reader */ private void parseAtRule() throws IOException ! { ! // An At-Rule begins with the "@" character followed immediately by a keyword. ! // Following the keyword separated by a space is an At-rule statement appropriate ! // to the At-keyword used. If the At-Rule is a simple declarative statement ! // (charset, import, fontdef), it is terminated by a semi-colon (";".) ! // If the At-Rule is a conditional or informative statement (media, page, font-face), ! // it is followed by optional arguments and then a style declaration block inside matching ! // curly braces ("{", "}".) At-Rules are sometimes nestable, depending on the context. // If any part of an At-Rule is not understood, it should be ignored. ! // FIXME: Not Implemented ! // call handleimport } /** ! * Parses the next rule set, which is a selector followed by a declaration * block. ! * * @throws IOException - any i/o error from the reader */ private void parseRuleSet() throws IOException *************** class CSSParser *** 411,419 **** } /** ! * Parses a set of selectors, returning false if the end of the stream is * reached. ! * * @return false if the end of stream is reached * @throws IOException - any i/o error from the reader */ --- 411,419 ---- } /** ! * Parses a set of selectors, returning false if the end of the stream is * reached. ! * * @return false if the end of stream is reached * @throws IOException - any i/o error from the reader */ *************** class CSSParser *** 421,433 **** { // FIXME: Not Implemented // call handleselector ! return false; } /** * Parses a declaration block. Which a number of declarations followed by a * })]. ! * * @throws IOException - any i/o error from the reader */ private void parseDeclarationBlock() throws IOException --- 421,433 ---- { // FIXME: Not Implemented // call handleselector ! return false; } /** * Parses a declaration block. Which a number of declarations followed by a * })]. ! * * @throws IOException - any i/o error from the reader */ private void parseDeclarationBlock() throws IOException *************** class CSSParser *** 439,445 **** /** * Parses a single declaration, which is an identifier a : and another identifier. * This returns the last token seen. ! * * @returns the last token * @throws IOException - any i/o error from the reader */ --- 439,445 ---- /** * Parses a single declaration, which is an identifier a : and another identifier. * This returns the last token seen. ! * * @returns the last token * @throws IOException - any i/o error from the reader */ *************** class CSSParser *** 447,459 **** { // call handleValue // FIXME: Not Implemented ! return 0; } /** * Parses identifiers until c is encountered, returning the ending token, * which will be IDENTIFIER if c is found. ! * * @param c - the stop character * @param wantsBlocks - true if blocks are wanted * @return the ending token --- 447,459 ---- { // call handleValue // FIXME: Not Implemented ! return 0; } /** * Parses identifiers until c is encountered, returning the ending token, * which will be IDENTIFIER if c is found. ! * * @param c - the stop character * @param wantsBlocks - true if blocks are wanted * @return the ending token *************** class CSSParser *** 469,475 **** /** * Parses till a matching block close is encountered. This is only appropriate * to be called at the top level (no nesting). ! * * @param i - FIXME * @throws IOException - any i/o error from the reader */ --- 469,475 ---- /** * Parses till a matching block close is encountered. This is only appropriate * to be called at the top level (no nesting). ! * * @param i - FIXME * @throws IOException - any i/o error from the reader */ *************** class CSSParser *** 481,487 **** /** * Gets an identifier, returning true if the length of the string is greater * than 0, stopping when c, whitespace, or one of {}()[] is hit. ! * * @param c - the stop character * @return returns true if the length of the string > 0 * @throws IOException - any i/o error from the reader --- 481,487 ---- /** * Gets an identifier, returning true if the length of the string is greater * than 0, stopping when c, whitespace, or one of {}()[] is hit. ! * * @param c - the stop character * @return returns true if the length of the string > 0 * @throws IOException - any i/o error from the reader *************** class CSSParser *** 494,500 **** /** * Reads till c is encountered, escaping characters as necessary. ! * * @param c - the stop character * @throws IOException - any i/o error from the reader */ --- 494,500 ---- /** * Reads till c is encountered, escaping characters as necessary. ! * * @param c - the stop character * @throws IOException - any i/o error from the reader */ *************** class CSSParser *** 505,511 **** /** * Parses a comment block. ! * * @throws IOException - any i/o error from the reader */ private void readComment() throws IOException --- 505,511 ---- /** * Parses a comment block. ! * * @throws IOException - any i/o error from the reader */ private void readComment() throws IOException *************** class CSSParser *** 516,522 **** /** * Called when a block start is encountered ({[. ! * * @param start of block */ private void startBlock(int start) --- 516,522 ---- /** * Called when a block start is encountered ({[. ! * * @param start of block */ private void startBlock(int start) *************** class CSSParser *** 526,532 **** /** * Called when an end block is encountered )]} ! * * @param end of block */ private void endBlock(int end) --- 526,532 ---- /** * Called when an end block is encountered )]} ! * * @param end of block */ private void endBlock(int end) *************** class CSSParser *** 536,553 **** /** * Checks if currently in a block. ! * * @return true if currently in a block. */ private boolean inBlock() { // FIXME: Not Implemented ! return false; } /** * Supports one character look ahead, this will throw if called twice in a row. ! * * @param c - the character to push. * @throws IOException - if called twice in a row */ --- 536,553 ---- /** * Checks if currently in a block. ! * * @return true if currently in a block. */ private boolean inBlock() { // FIXME: Not Implemented ! return false; } /** * Supports one character look ahead, this will throw if called twice in a row. ! * * @param c - the character to push. * @throws IOException - if called twice in a row */ *************** class CSSParser *** 559,563 **** pushedChar = c; } } - - --- 559,561 ---- diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/FormView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/FormView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/FormView.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/FormView.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.StyleConstants; *** 96,102 **** * JList in JScrollPane * select, size unspecified or == 1JComboBox * textarea, textJTextArea in JScrollPane ! * input, fileJTextField * * * @author Roman Kennke (kennke@aicas.com) --- 96,102 ---- * JList in JScrollPane * select, size unspecified or == 1JComboBox * textarea, textJTextArea in JScrollPane ! * input, fileJTextField * * * @author Roman Kennke (kennke@aicas.com) *************** public class FormView *** 352,358 **** /** * If the value attribute of an <input type="submit">> * tag is not specified, then this string is used. ! * * @deprecated As of JDK1.3 the value is fetched from the UIManager property * FormView.submitButtonText. */ --- 352,358 ---- /** * If the value attribute of an <input type="submit">> * tag is not specified, then this string is used. ! * * @deprecated As of JDK1.3 the value is fetched from the UIManager property * FormView.submitButtonText. */ *************** public class FormView *** 362,368 **** /** * If the value attribute of an <input type="reset">> * tag is not specified, then this string is used. ! * * @deprecated As of JDK1.3 the value is fetched from the UIManager property * FormView.resetButtonText. */ --- 362,368 ---- /** * If the value attribute of an <input type="reset">> * tag is not specified, then this string is used. ! * * @deprecated As of JDK1.3 the value is fetched from the UIManager property * FormView.resetButtonText. */ *************** public class FormView *** 638,644 **** } else { ! data = name + ".x=" + p.x + "&" + name + ".y=" + p.y; } return data; } --- 638,644 ---- } else { ! data = name + ".x=" + p.x + "&" + name + ".y=" + p.y; } return data; } diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/HRuleView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/HRuleView.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/HRuleView.java Mon Aug 14 23:12:35 2006 --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/HRuleView.java Tue Jan 11 19:46:05 2011 *************** class HRuleView extends InlineView *** 55,69 **** { /** * The null view, indicating, that nothing should be painted ahead the ! * breaking point. */ View nullView; ! /** * The height of the horizontal dash area. */ static int HEIGHT = 4; ! /** * The imaginary invisible view that stays after end of line after the * breaking procedure. It occupies on character. --- 55,69 ---- { /** * The null view, indicating, that nothing should be painted ahead the ! * breaking point. */ View nullView; ! /** * The height of the horizontal dash area. */ static int HEIGHT = 4; ! /** * The imaginary invisible view that stays after end of line after the * breaking procedure. It occupies on character. *************** class HRuleView extends InlineView *** 74,80 **** * The break offset that becomes the views start offset. */ int breakOffset; ! /** * Return the end offset that is always one char after the break offset. */ --- 74,80 ---- * The break offset that becomes the views start offset. */ int breakOffset; ! /** * Return the end offset that is always one char after the break offset. */ *************** class HRuleView extends InlineView *** 82,88 **** { return breakOffset + 1; } ! /** * Return the start offset that has been passed in a constructor. */ --- 82,88 ---- { return breakOffset + 1; } ! /** * Return the start offset that has been passed in a constructor. */ *************** class HRuleView extends InlineView *** 90,99 **** { return breakOffset; } ! /** * Create the new instance of this view. ! * * @param element the element (inherited from the HR view) * @param offset the position where the HR view has been broken */ --- 90,99 ---- { return breakOffset; } ! /** * Create the new instance of this view. ! * * @param element the element (inherited from the HR view) * @param offset the position where the HR view has been broken */ *************** class HRuleView extends InlineView *** 103,109 **** breakOffset = offset; } } ! /** * Creates the new HR view. */ --- 103,109 ---- breakOffset = offset; } } ! /** * Creates the new HR view. */ *************** class HRuleView extends InlineView *** 120,130 **** public int getBreakWeight(int axis, float pos, float len) { if (axis == X_AXIS && ((getEndOffset() - getStartOffset()) > 1)) ! return ForcedBreakWeight; else ! return BadBreakWeight; } ! /** * Draws the double line, upped black and the lower light gray. */ --- 120,130 ---- public int getBreakWeight(int axis, float pos, float len) { if (axis == X_AXIS && ((getEndOffset() - getStartOffset()) > 1)) ! return ForcedBreakWeight; else ! return BadBreakWeight; } ! /** * Draws the double line, upped black and the lower light gray. */ *************** class HRuleView extends InlineView *** 143,149 **** g.setColor(Color.black); g.drawLine(x, y++, w, h++); ! g.setColor(Color.lightGray); g.drawLine(x, y, w, h); } --- 143,149 ---- g.setColor(Color.black); g.drawLine(x, y++, w, h++); ! g.setColor(Color.lightGray); g.drawLine(x, y, w, h); } *************** class HRuleView extends InlineView *** 160,166 **** else return this; } ! /** * Returns the width of the container for the horizontal axis and the * thickness of the dash area for the vertical axis. --- 160,166 ---- else return this; } ! /** * Returns the width of the container for the horizontal axis and the * thickness of the dash area for the vertical axis. *************** class HRuleView extends InlineView *** 176,182 **** return 640; } else ! return HEIGHT; } /** --- 176,182 ---- return 640; } else ! return HEIGHT; } /** diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/HTMLDocument.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/HTMLDocument.java *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/HTMLDocument.java Tue Jan 9 19:58:05 2007 --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/HTMLDocument.java Tue Jan 11 19:46:05 2011 *************** import javax.swing.text.html.HTML.Tag; *** 76,82 **** * data structure when it is needed to parse HTML and then obtain the content of * the certain types of tags. This class also has methods for modifying the HTML * content. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) * @author Anthony Balkissoon (abalkiss@redhat.com) * @author Lillian Angel (langel@redhat.com) --- 76,82 ---- * data structure when it is needed to parse HTML and then obtain the content of * the certain types of tags. This class also has methods for modifying the HTML * content. ! * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) * @author Anthony Balkissoon (abalkiss@redhat.com) * @author Lillian Angel (langel@redhat.com) *************** public class HTMLDocument extends Defaul *** 85,91 **** { /** A key for document properies. The value for the key is * a Vector of Strings of comments not found in the body. ! */ public static final String AdditionalComments = "AdditionalComments"; URL baseURL = null; boolean preservesUnknownTags = true; --- 85,91 ---- { /** A key for document properies. The value for the key is * a Vector of Strings of comments not found in the body. ! */ public static final String AdditionalComments = "AdditionalComments"; URL baseURL = null; boolean preservesUnknownTags = true; *************** public class HTMLDocument extends Defaul *** 110,131 **** { this(new GapContent(BUFFER_SIZE_DEFAULT), new StyleSheet()); } ! /** ! * Constructs an HTML document with the default content storage * implementation and the specified style/attribute storage mechanism. ! * * @param styles - the style sheet */ public HTMLDocument(StyleSheet styles) { this(new GapContent(BUFFER_SIZE_DEFAULT), styles); } ! /** ! * Constructs an HTML document with the given content storage implementation * and the given style/attribute storage mechanism. ! * * @param c - the document's content * @param styles - the style sheet */ --- 110,131 ---- { this(new GapContent(BUFFER_SIZE_DEFAULT), new StyleSheet()); } ! /** ! * Constructs an HTML document with the default content storage * implementation and the specified style/attribute storage mechanism. ! * * @param styles - the style sheet */ public HTMLDocument(StyleSheet styles) { this(new GapContent(BUFFER_SIZE_DEFAULT), styles); } ! /** ! * Constructs an HTML document with the given content storage implementation * and the given style/attribute storage mechanism. ! * * @param c - the document's content * @param styles - the style sheet */ *************** public class HTMLDocument extends Defaul *** 133,153 **** { super(c, styles); } ! /** ! * Gets the style sheet with the document display rules (CSS) that were specified * in the HTML document. ! * * @return - the style sheet */ public StyleSheet getStyleSheet() { return (StyleSheet) getAttributeContext(); } ! /** * This method creates a root element for the new document. ! * * @return the new default root */ protected AbstractElement createDefaultRoot() --- 133,153 ---- { super(c, styles); } ! /** ! * Gets the style sheet with the document display rules (CSS) that were specified * in the HTML document. ! * * @return - the style sheet */ public StyleSheet getStyleSheet() { return (StyleSheet) getAttributeContext(); } ! /** * This method creates a root element for the new document. ! * * @return the new default root */ protected AbstractElement createDefaultRoot() *************** public class HTMLDocument extends Defaul *** 180,191 **** return html; } ! /** * This method returns an HTMLDocument.RunElement object attached to ! * parent representing a run of text from p0 to p1. The run has * attributes described by a. ! * * @param parent - the parent element * @param a - the attributes for the element * @param p0 - the beginning of the range >= 0 --- 180,191 ---- return html; } ! /** * This method returns an HTMLDocument.RunElement object attached to ! * parent representing a run of text from p0 to p1. The run has * attributes described by a. ! * * @param parent - the parent element * @param a - the attributes for the element * @param p0 - the beginning of the range >= 0 *************** public class HTMLDocument extends Defaul *** 202,208 **** /** * This method returns an HTMLDocument.BlockElement object representing the * attribute set a and attached to parent. ! * * @param parent - the parent element * @param a - the attributes for the element * --- 202,208 ---- /** * This method returns an HTMLDocument.BlockElement object representing the * attribute set a and attached to parent. ! * * @param parent - the parent element * @param a - the attributes for the element * *************** public class HTMLDocument extends Defaul *** 212,231 **** { return new BlockElement(parent, a); } ! /** * Returns the parser used by this HTMLDocument to insert HTML. ! * * @return the parser used by this HTMLDocument to insert HTML. */ public HTMLEditorKit.Parser getParser() { ! return parser; } ! /** * Sets the parser used by this HTMLDocument to insert HTML. ! * * @param p the parser to use */ public void setParser (HTMLEditorKit.Parser p) --- 212,231 ---- { return new BlockElement(parent, a); } ! /** * Returns the parser used by this HTMLDocument to insert HTML. ! * * @return the parser used by this HTMLDocument to insert HTML. */ public HTMLEditorKit.Parser getParser() { ! return parser; } ! /** * Sets the parser used by this HTMLDocument to insert HTML. ! * * @param p the parser to use */ public void setParser (HTMLEditorKit.Parser p) *************** public class HTMLDocument extends Defaul *** 235,259 **** /** * Sets the number of tokens to buffer before trying to display the * Document. ! * * @param n the number of tokens to buffer */ public void setTokenThreshold (int n) { tokenThreshold = n; } ! /** * Returns the number of tokens that are buffered before the document * is rendered. ! * * @return the number of tokens buffered */ public int getTokenThreshold () { return tokenThreshold; } ! /** * Returns the location against which to resolve relative URLs. * This is the document's URL if the document was loaded from a URL. --- 235,259 ---- /** * Sets the number of tokens to buffer before trying to display the * Document. ! * * @param n the number of tokens to buffer */ public void setTokenThreshold (int n) { tokenThreshold = n; } ! /** * Returns the number of tokens that are buffered before the document * is rendered. ! * * @return the number of tokens buffered */ public int getTokenThreshold () { return tokenThreshold; } ! /** * Returns the location against which to resolve relative URLs. * This is the document's URL if the document was loaded from a URL. *************** public class HTMLDocument extends Defaul *** 264,270 **** { return baseURL; } ! /** * Sets the location against which to resolve relative URLs. * @param u the new base URL --- 264,270 ---- { return baseURL; } ! /** * Sets the location against which to resolve relative URLs. * @param u the new base URL *************** public class HTMLDocument extends Defaul *** 274,280 **** baseURL = u; getStyleSheet().setBase(u); } ! /** * Returns whether or not the parser preserves unknown HTML tags. * @return true if the parser preserves unknown tags --- 274,280 ---- baseURL = u; getStyleSheet().setBase(u); } ! /** * Returns whether or not the parser preserves unknown HTML tags. * @return true if the parser preserves unknown tags *************** public class HTMLDocument extends Defaul *** 283,289 **** { return preservesUnknownTags; } ! /** * Sets the behaviour of the parser when it encounters unknown HTML tags. * @param preservesTags true if the parser should preserve unknown tags. --- 283,289 ---- { return preservesUnknownTags; } ! /** * Sets the behaviour of the parser when it encounters unknown HTML tags. * @param preservesTags true if the parser should preserve unknown tags. *************** public class HTMLDocument extends Defaul *** 292,298 **** { preservesUnknownTags = preservesTags; } ! /** * An iterator to iterate through LeafElements in the document. */ --- 292,298 ---- { preservesUnknownTags = preservesTags; } ! /** * An iterator to iterate through LeafElements in the document. */ *************** public class HTMLDocument extends Defaul *** 308,314 **** tag = t; it = new ElementIterator(doc); } ! /** * Return the attributes for the tag associated with this iteartor * @return the AttributeSet --- 308,314 ---- tag = t; it = new ElementIterator(doc); } ! /** * Return the attributes for the tag associated with this iteartor * @return the AttributeSet *************** public class HTMLDocument extends Defaul *** 464,470 **** { int start = el.getStartOffset(); int end = el.getEndOffset(); ! StringBuilder html = new StringBuilder(); html.append("AttributeSet (null if none found). */ public abstract AttributeSet getAttributes(); ! /** * Get the end of the range for the current occurrence of the tag * being defined and having the same attributes. * @return the end of the range */ public abstract int getEndOffset(); ! /** * Get the start of the range for the current occurrence of the tag * being defined and having the same attributes. * @return the start of the range (-1 if it can't be found). */ public abstract int getStartOffset(); ! /** * Move the iterator forward. */ public abstract void next(); ! /** * Indicates whether or not the iterator currently represents an occurrence * of the tag. --- 510,535 ---- * @return the AttributeSet (null if none found). */ public abstract AttributeSet getAttributes(); ! /** * Get the end of the range for the current occurrence of the tag * being defined and having the same attributes. * @return the end of the range */ public abstract int getEndOffset(); ! /** * Get the start of the range for the current occurrence of the tag * being defined and having the same attributes. * @return the start of the range (-1 if it can't be found). */ public abstract int getStartOffset(); ! /** * Move the iterator forward. */ public abstract void next(); ! /** * Indicates whether or not the iterator currently represents an occurrence * of the tag. *************** public class HTMLDocument extends Defaul *** 537,569 **** * tag. */ public abstract boolean isValid(); ! /** * Type of tag this iterator represents. * @return the tag. */ public abstract HTML.Tag getTag(); } ! public class BlockElement extends AbstractDocument.BranchElement { public BlockElement (Element parent, AttributeSet a) { super(parent, a); } ! /** ! * Gets the resolving parent. Since HTML attributes are not * inherited at the model level, this returns null. */ public AttributeSet getResolveParent() { return null; } ! /** * Gets the name of the element. ! * * @return the name of the element if it exists, null otherwise. */ public String getName() --- 537,569 ---- * tag. */ public abstract boolean isValid(); ! /** * Type of tag this iterator represents. * @return the tag. */ public abstract HTML.Tag getTag(); } ! public class BlockElement extends AbstractDocument.BranchElement { public BlockElement (Element parent, AttributeSet a) { super(parent, a); } ! /** ! * Gets the resolving parent. Since HTML attributes are not * inherited at the model level, this returns null. */ public AttributeSet getResolveParent() { return null; } ! /** * Gets the name of the element. ! * * @return the name of the element if it exists, null otherwise. */ public String getName() *************** public class HTMLDocument extends Defaul *** 579,607 **** } /** ! * RunElement represents a section of text that has a set of * HTML character level attributes assigned to it. */ public class RunElement extends AbstractDocument.LeafElement { ! /** * Constructs an element that has no children. It represents content * within the document. ! * * @param parent - parent of this * @param a - elements attributes * @param start - the start offset >= 0 ! * @param end - the end offset */ public RunElement(Element parent, AttributeSet a, int start, int end) { super(parent, a, start, end); } ! /** * Gets the name of the element. ! * * @return the name of the element if it exists, null otherwise. */ public String getName() --- 579,607 ---- } /** ! * RunElement represents a section of text that has a set of * HTML character level attributes assigned to it. */ public class RunElement extends AbstractDocument.LeafElement { ! /** * Constructs an element that has no children. It represents content * within the document. ! * * @param parent - parent of this * @param a - elements attributes * @param start - the start offset >= 0 ! * @param end - the end offset */ public RunElement(Element parent, AttributeSet a, int start, int end) { super(parent, a, start, end); } ! /** * Gets the name of the element. ! * * @return the name of the element if it exists, null otherwise. */ public String getName() *************** public class HTMLDocument extends Defaul *** 614,624 **** name = super.getName(); return name; } ! /** * Gets the resolving parent. HTML attributes do not inherit at the * model level, so this method returns null. ! * * @return null */ public AttributeSet getResolveParent() --- 614,624 ---- name = super.getName(); return name; } ! /** * Gets the resolving parent. HTML attributes do not inherit at the * model level, so this method returns null. ! * * @return null */ public AttributeSet getResolveParent() *************** public class HTMLDocument extends Defaul *** 626,635 **** return null; } } ! /** * A reader to load an HTMLDocument with HTML structure. ! * * @author Anthony Balkissoon abalkiss at redhat dot com */ public class HTMLReader extends HTMLEditorKit.ParserCallback --- 626,635 ---- return null; } } ! /** * A reader to load an HTMLDocument with HTML structure. ! * * @author Anthony Balkissoon abalkiss at redhat dot com */ public class HTMLReader extends HTMLEditorKit.ParserCallback *************** public class HTMLDocument extends Defaul *** 648,698 **** * Holds the current character attribute set * */ protected MutableAttributeSet charAttr = new SimpleAttributeSet(); ! ! protected Vector parseBuffer = new Vector(); /** * The parse stack. It holds the current element tree path. */ private Stack parseStack = new Stack(); ! /** * A stack for character attribute sets * */ Stack charAttrStack = new Stack(); ! /** A mapping between HTML.Tag objects and the actions that handle them **/ HashMap tagToAction; ! /** Tells us whether we've received the '' tag yet **/ boolean endHTMLEncountered = false; ! ! /** ! * Related to the constructor with explicit insertTag */ int popDepth; ! /** * Related to the constructor with explicit insertTag ! */ int pushDepth; ! ! /** * Related to the constructor with explicit insertTag ! */ int offset; ! /** * The tag (inclusve), after that the insertion should start. */ HTML.Tag insertTag; ! /** * This variable becomes true after the insert tag has been encountered. */ boolean insertTagEncountered; ! /** A temporary variable that helps with the printing out of debug information **/ boolean debug = false; --- 648,698 ---- * Holds the current character attribute set * */ protected MutableAttributeSet charAttr = new SimpleAttributeSet(); ! ! protected Vector parseBuffer = new Vector(); /** * The parse stack. It holds the current element tree path. */ private Stack parseStack = new Stack(); ! /** * A stack for character attribute sets * */ Stack charAttrStack = new Stack(); ! /** A mapping between HTML.Tag objects and the actions that handle them **/ HashMap tagToAction; ! /** Tells us whether we've received the '' tag yet **/ boolean endHTMLEncountered = false; ! ! /** ! * Related to the constructor with explicit insertTag */ int popDepth; ! /** * Related to the constructor with explicit insertTag ! */ int pushDepth; ! ! /** * Related to the constructor with explicit insertTag ! */ int offset; ! /** * The tag (inclusve), after that the insertion should start. */ HTML.Tag insertTag; ! /** * This variable becomes true after the insert tag has been encountered. */ boolean insertTagEncountered; ! /** A temporary variable that helps with the printing out of debug information **/ boolean debug = false; *************** public class HTMLDocument extends Defaul *** 767,773 **** { // Nothing to do here. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. By default does nothing. --- 767,773 ---- { // Nothing to do here. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. By default does nothing. *************** public class HTMLDocument extends Defaul *** 779,785 **** } public class BlockAction extends TagAction ! { /** * This method is called when a start tag is seen for one of the types * of tags associated with this Action. --- 779,785 ---- } public class BlockAction extends TagAction ! { /** * This method is called when a start tag is seen for one of the types * of tags associated with this Action. *************** public class HTMLDocument extends Defaul *** 789,795 **** // Tell the parse buffer to open a new block for this tag. blockOpen(t, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 789,795 ---- // Tell the parse buffer to open a new block for this tag. blockOpen(t, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 800,806 **** blockClose(t); } } ! public class CharacterAction extends TagAction { /** --- 800,806 ---- blockClose(t); } } ! public class CharacterAction extends TagAction { /** *************** public class HTMLDocument extends Defaul *** 827,833 **** public void end(HTML.Tag t) { popCharacterStyle(); ! } } /** --- 827,833 ---- public void end(HTML.Tag t) { popCharacterStyle(); ! } } /** *************** public class HTMLDocument extends Defaul *** 909,915 **** super.start(t, a); } } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 909,915 ---- super.start(t, a); } } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1012,1018 **** { super.end(t); buttonGroups = null; ! } } /** --- 1012,1018 ---- { super.end(t); buttonGroups = null; ! } } /** *************** public class HTMLDocument extends Defaul *** 1035,1041 **** { blockOpen(t, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1035,1041 ---- { blockOpen(t, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1043,1049 **** public void end(HTML.Tag t) { blockClose(t); ! } } /** --- 1043,1049 ---- public void end(HTML.Tag t) { blockClose(t); ! } } /** *************** public class HTMLDocument extends Defaul *** 1062,1068 **** blockClose(HTML.Tag.IMPLIED); } } ! public class ParagraphAction extends BlockAction { /** --- 1062,1068 ---- blockClose(HTML.Tag.IMPLIED); } } ! public class ParagraphAction extends BlockAction { /** *************** public class HTMLDocument extends Defaul *** 1073,1079 **** { super.start(t, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1073,1079 ---- { super.start(t, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1081,1087 **** public void end(HTML.Tag t) { super.end(t); ! } } /** --- 1081,1087 ---- public void end(HTML.Tag t) { super.end(t); ! } } /** *************** public class HTMLDocument extends Defaul *** 1100,1106 **** a.addAttribute(CSS.Attribute.WHITE_SPACE, "pre"); blockOpen(HTML.Tag.IMPLIED, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1100,1106 ---- a.addAttribute(CSS.Attribute.WHITE_SPACE, "pre"); blockOpen(HTML.Tag.IMPLIED, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1110,1120 **** blockClose(HTML.Tag.IMPLIED); inPreTag = false; blockClose(t); ! } } ! /** ! * Inserts the elements that are represented by ths single tag with * attributes (only). The closing tag, even if present, mut follow * immediately after the starting tag without providing any additional * information. Hence the {@link TagAction#end} method need not be --- 1110,1120 ---- blockClose(HTML.Tag.IMPLIED); inPreTag = false; blockClose(t); ! } } ! /** ! * Inserts the elements that are represented by ths single tag with * attributes (only). The closing tag, even if present, mut follow * immediately after the starting tag without providing any additional * information. Hence the {@link TagAction#end} method need not be *************** public class HTMLDocument extends Defaul *** 1130,1136 **** addSpecialElement(t, a); } } ! class AreaAction extends TagAction { /** --- 1130,1136 ---- addSpecialElement(t, a); } } ! class AreaAction extends TagAction { /** *************** public class HTMLDocument extends Defaul *** 1142,1148 **** { // FIXME: Implement. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1142,1148 ---- { // FIXME: Implement. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1151,1157 **** throws NotImplementedException { // FIXME: Implement. ! } } /** --- 1151,1157 ---- throws NotImplementedException { // FIXME: Implement. ! } } /** *************** public class HTMLDocument extends Defaul *** 1200,1206 **** baseTarget = (String) a.getAttribute(HTML.Attribute.TARGET); } } ! class HeadAction extends BlockAction { /** --- 1200,1206 ---- baseTarget = (String) a.getAttribute(HTML.Attribute.TARGET); } } ! class HeadAction extends BlockAction { /** *************** public class HTMLDocument extends Defaul *** 1213,1219 **** // FIXME: Implement. super.start(t, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1213,1219 ---- // FIXME: Implement. super.start(t, a); } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1234,1240 **** super.end(t); } } ! class LinkAction extends HiddenAction { /** --- 1234,1240 ---- super.end(t); } } ! class LinkAction extends HiddenAction { /** *************** public class HTMLDocument extends Defaul *** 1295,1307 **** ex.printStackTrace(); } } ! } } } } ! } ! class MapAction extends TagAction { /** --- 1295,1307 ---- ex.printStackTrace(); } } ! } } } } ! } ! class MapAction extends TagAction { /** *************** public class HTMLDocument extends Defaul *** 1313,1319 **** { // FIXME: Implement. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1313,1319 ---- { // FIXME: Implement. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1322,1330 **** throws NotImplementedException { // FIXME: Implement. ! } } ! class MetaAction extends TagAction { /** --- 1322,1330 ---- throws NotImplementedException { // FIXME: Implement. ! } } ! class MetaAction extends TagAction { /** *************** public class HTMLDocument extends Defaul *** 1336,1342 **** { // FIXME: Implement. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1336,1342 ---- { // FIXME: Implement. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1345,1351 **** throws NotImplementedException { // FIXME: Implement. ! } } class StyleAction extends TagAction --- 1345,1351 ---- throws NotImplementedException { // FIXME: Implement. ! } } class StyleAction extends TagAction *************** public class HTMLDocument extends Defaul *** 1358,1364 **** { inStyleTag = true; } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1358,1364 ---- { inStyleTag = true; } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1366,1374 **** public void end(HTML.Tag t) { inStyleTag = false; ! } } ! class TitleAction extends TagAction { /** --- 1366,1374 ---- public void end(HTML.Tag t) { inStyleTag = false; ! } } ! class TitleAction extends TagAction { /** *************** public class HTMLDocument extends Defaul *** 1380,1386 **** { // FIXME: Implement. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. --- 1380,1386 ---- { // FIXME: Implement. } ! /** * Called when an end tag is seen for one of the types of tags associated * with this Action. *************** public class HTMLDocument extends Defaul *** 1389,1402 **** throws NotImplementedException { // FIXME: Implement. ! } ! } ! public HTMLReader(int offset) { this (offset, 0, 0, null); } ! public HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag) { --- 1389,1402 ---- throws NotImplementedException { // FIXME: Implement. ! } ! } ! public HTMLReader(int offset) { this (offset, 0, 0, null); } ! public HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag) { *************** public class HTMLDocument extends Defaul *** 1407,1413 **** threshold = getTokenThreshold(); initTags(); } ! void initTags() { tagToAction = new HashMap(72); --- 1407,1413 ---- threshold = getTokenThreshold(); initTags(); } ! void initTags() { tagToAction = new HashMap(72); *************** public class HTMLDocument extends Defaul *** 1427,1433 **** MetaAction metaAction = new MetaAction(); StyleAction styleAction = new StyleAction(); TitleAction titleAction = new TitleAction(); ! ConvertAction convertAction = new ConvertAction(); tagToAction.put(HTML.Tag.A, characterAction); tagToAction.put(HTML.Tag.ADDRESS, characterAction); --- 1427,1433 ---- MetaAction metaAction = new MetaAction(); StyleAction styleAction = new StyleAction(); TitleAction titleAction = new TitleAction(); ! ConvertAction convertAction = new ConvertAction(); tagToAction.put(HTML.Tag.A, characterAction); tagToAction.put(HTML.Tag.ADDRESS, characterAction); *************** public class HTMLDocument extends Defaul *** 1486,1492 **** tagToAction.put(HTML.Tag.SELECT, formAction); tagToAction.put(HTML.Tag.SMALL, characterAction); tagToAction.put(HTML.Tag.STRIKE, characterAction); ! tagToAction.put(HTML.Tag.S, characterAction); tagToAction.put(HTML.Tag.STRONG, characterAction); tagToAction.put(HTML.Tag.STYLE, styleAction); tagToAction.put(HTML.Tag.SUB, characterAction); --- 1486,1492 ---- tagToAction.put(HTML.Tag.SELECT, formAction); tagToAction.put(HTML.Tag.SMALL, characterAction); tagToAction.put(HTML.Tag.STRIKE, characterAction); ! tagToAction.put(HTML.Tag.S, characterAction); tagToAction.put(HTML.Tag.STRONG, characterAction); tagToAction.put(HTML.Tag.STYLE, styleAction); tagToAction.put(HTML.Tag.SUB, characterAction); *************** public class HTMLDocument extends Defaul *** 1502,1508 **** tagToAction.put(HTML.Tag.UL, blockAction); tagToAction.put(HTML.Tag.VAR, characterAction); } ! /** * Pushes the current character style onto the stack. * --- 1502,1508 ---- tagToAction.put(HTML.Tag.UL, blockAction); tagToAction.put(HTML.Tag.VAR, characterAction); } ! /** * Pushes the current character style onto the stack. * *************** public class HTMLDocument extends Defaul *** 1511,1519 **** { charAttrStack.push(charAttr.copyAttributes()); } ! /** ! * Pops a character style off of the stack and uses it as the * current character style. * */ --- 1511,1519 ---- { charAttrStack.push(charAttr.copyAttributes()); } ! /** ! * Pops a character style off of the stack and uses it as the * current character style. * */ *************** public class HTMLDocument extends Defaul *** 1522,1533 **** if (!charAttrStack.isEmpty()) charAttr = (MutableAttributeSet) charAttrStack.pop(); } ! /** * Registers a given tag with a given Action. All of the well-known tags * are registered by default, but this method can change their behaviour * or add support for custom or currently unsupported tags. ! * * @param t the Tag to register * @param a the Action for the Tag */ --- 1522,1533 ---- if (!charAttrStack.isEmpty()) charAttr = (MutableAttributeSet) charAttrStack.pop(); } ! /** * Registers a given tag with a given Action. All of the well-known tags * are registered by default, but this method can change their behaviour * or add support for custom or currently unsupported tags. ! * * @param t the Tag to register * @param a the Action for the Tag */ *************** public class HTMLDocument extends Defaul *** 1535,1541 **** { tagToAction.put (t, a); } ! /** * This is the last method called on the HTMLReader, allowing any pending * changes to be flushed to the HTMLDocument. --- 1535,1541 ---- { tagToAction.put (t, a); } ! /** * This is the last method called on the HTMLReader, allowing any pending * changes to be flushed to the HTMLDocument. *************** public class HTMLDocument extends Defaul *** 1565,1573 **** } /** ! * This method is called by the parser to indicate a block of * text was encountered. Should insert the text appropriately. ! * * @param data the text that was inserted * @param pos the position at which the text was inserted */ --- 1565,1573 ---- } /** ! * This method is called by the parser to indicate a block of * text was encountered. Should insert the text appropriately. ! * * @param data the text that was inserted * @param pos the position at which the text was inserted */ *************** public class HTMLDocument extends Defaul *** 1589,1603 **** } else addContent(data, 0, data.length); ! } } ! /** * Checks if the HTML tag should be inserted. The tags before insert tag (if * specified) are not inserted. Also, the tags after the end of the html are * not inserted. ! * * @return true if the tag should be inserted, false otherwise. */ private boolean shouldInsert() --- 1589,1603 ---- } else addContent(data, 0, data.length); ! } } ! /** * Checks if the HTML tag should be inserted. The tags before insert tag (if * specified) are not inserted. Also, the tags after the end of the html are * not inserted. ! * * @return true if the tag should be inserted, false otherwise. */ private boolean shouldInsert() *************** public class HTMLDocument extends Defaul *** 1605,1615 **** return ! endHTMLEncountered && (insertTagEncountered || insertTag == null); } ! /** * This method is called by the parser and should route the call to the * proper handler for the tag. ! * * @param t the HTML.Tag * @param a the attribute set * @param pos the position at which the tag was encountered --- 1605,1615 ---- return ! endHTMLEncountered && (insertTagEncountered || insertTag == null); } ! /** * This method is called by the parser and should route the call to the * proper handler for the tag. ! * * @param t the HTML.Tag * @param a the attribute set * @param pos the position at which the tag was encountered *************** public class HTMLDocument extends Defaul *** 1626,1635 **** action.start(t, a); } } ! /** * This method called by parser to handle a comment block. ! * * @param data the comment * @param pos the position at which the comment was encountered */ --- 1626,1635 ---- action.start(t, a); } } ! /** * This method called by parser to handle a comment block. ! * * @param data the comment * @param pos the position at which the comment was encountered */ *************** public class HTMLDocument extends Defaul *** 1645,1655 **** } } } ! /** * This method is called by the parser and should route the call to the * proper handler for the tag. ! * * @param t the HTML.Tag * @param pos the position at which the tag was encountered */ --- 1645,1655 ---- } } } ! /** * This method is called by the parser and should route the call to the * proper handler for the tag. ! * * @param t the HTML.Tag * @param pos the position at which the tag was encountered */ *************** public class HTMLDocument extends Defaul *** 1666,1676 **** action.end(t); } } ! /** * This is a callback from the parser that should be routed to the * appropriate handler for the tag. ! * * @param t the HTML.Tag that was encountered * @param a the attribute set * @param pos the position at which the tag was encountered --- 1666,1676 ---- action.end(t); } } ! /** * This is a callback from the parser that should be routed to the * appropriate handler for the tag. ! * * @param t the HTML.Tag that was encountered * @param a the attribute set * @param pos the position at which the tag was encountered *************** public class HTMLDocument extends Defaul *** 1690,1701 **** } } } ! /** * This is invoked after the stream has been parsed but before it has been * flushed. ! * ! * @param eol one of \n, \r, or \r\n, whichever was encountered the most in * parsing the stream * @since 1.3 */ --- 1690,1701 ---- } } } ! /** * This is invoked after the stream has been parsed but before it has been * flushed. ! * ! * @param eol one of \n, \r, or \r\n, whichever was encountered the most in * parsing the stream * @since 1.3 */ *************** public class HTMLDocument extends Defaul *** 1703,1713 **** { // FIXME: Implement. } ! /** * Adds the given text to the textarea document. Called only when we are ! * within a textarea. ! * * @param data the text to add to the textarea */ protected void textAreaContent(char[] data) --- 1703,1713 ---- { // FIXME: Implement. } ! /** * Adds the given text to the textarea document. Called only when we are ! * within a textarea. ! * * @param data the text to add to the textarea */ protected void textAreaContent(char[] data) *************** public class HTMLDocument extends Defaul *** 1726,1732 **** assert false; } } ! /** * Adds the given text that was encountered in a

                                     element.
                                           * This adds synthesized lines to hold the text runs.
                                    --- 1726,1732 ----
                                                assert false;
                                              }
                                          }
                                    ! 
                                          /**
                                           * Adds the given text that was encountered in a 
                                     element.
                                           * This adds synthesized lines to hold the text runs.
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1754,1764 ****
                                                addContent(data, start, data.length - start);
                                              }
                                          }
                                    !     
                                          /**
                                    !      * Instructs the parse buffer to create a block element with the given 
                                           * attributes.
                                    !      * 
                                           * @param t the tag that requires opening a new block
                                           * @param attr the attribute set for the new block
                                           */
                                    --- 1754,1764 ----
                                                addContent(data, start, data.length - start);
                                              }
                                          }
                                    ! 
                                          /**
                                    !      * Instructs the parse buffer to create a block element with the given
                                           * attributes.
                                    !      *
                                           * @param t the tag that requires opening a new block
                                           * @param attr the attribute set for the new block
                                           */
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1809,1817 ****
                                          }
                                      
                                          /**
                                    !      * Instructs the parse buffer to close the block element associated with 
                                           * the given HTML.Tag
                                    !      * 
                                           * @param t the HTML.Tag that is closing its block
                                           */
                                          protected void blockClose(HTML.Tag t)
                                    --- 1809,1817 ----
                                          }
                                      
                                          /**
                                    !      * Instructs the parse buffer to close the block element associated with
                                           * the given HTML.Tag
                                    !      *
                                           * @param t the HTML.Tag that is closing its block
                                           */
                                          protected void blockClose(HTML.Tag t)
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1837,1850 ****
                                              }
                                      
                                            element = new DefaultStyledDocument.ElementSpec(null,
                                    ! 				DefaultStyledDocument.ElementSpec.EndTagType);
                                            parseBuffer.addElement(element);
                                          }
                                    !     
                                          /**
                                           * Adds text to the appropriate context using the current character
                                           * attribute set.
                                    !      * 
                                           * @param data the text to add
                                           * @param offs the offset at which to add it
                                           * @param length the length of the text to add
                                    --- 1837,1850 ----
                                              }
                                      
                                            element = new DefaultStyledDocument.ElementSpec(null,
                                    !                                 DefaultStyledDocument.ElementSpec.EndTagType);
                                            parseBuffer.addElement(element);
                                          }
                                    ! 
                                          /**
                                           * Adds text to the appropriate context using the current character
                                           * attribute set.
                                    !      *
                                           * @param data the text to add
                                           * @param offs the offset at which to add it
                                           * @param length the length of the text to add
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1853,1863 ****
                                          {
                                            addContent(data, offs, length, true);
                                          }
                                    !     
                                          /**
                                           * Adds text to the appropriate context using the current character
                                           * attribute set, and possibly generating an IMPLIED Tag if necessary.
                                    !      * 
                                           * @param data the text to add
                                           * @param offs the offset at which to add it
                                           * @param length the length of the text to add
                                    --- 1853,1863 ----
                                          {
                                            addContent(data, offs, length, true);
                                          }
                                    ! 
                                          /**
                                           * Adds text to the appropriate context using the current character
                                           * attribute set, and possibly generating an IMPLIED Tag if necessary.
                                    !      *
                                           * @param data the text to add
                                           * @param offs the offset at which to add it
                                           * @param length the length of the text to add
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1876,1882 ****
                                            DefaultStyledDocument.ElementSpec element;
                                            AttributeSet attributes = null;
                                      
                                    !       // Copy the attribute set, don't use the same object because 
                                            // it may change
                                            if (charAttr != null)
                                              attributes = charAttr.copyAttributes();
                                    --- 1876,1882 ----
                                            DefaultStyledDocument.ElementSpec element;
                                            AttributeSet attributes = null;
                                      
                                    !       // Copy the attribute set, don't use the same object because
                                            // it may change
                                            if (charAttr != null)
                                              attributes = charAttr.copyAttributes();
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1887,1893 ****
                                            element = new DefaultStyledDocument.ElementSpec(attributes,
                                                                      DefaultStyledDocument.ElementSpec.ContentType,
                                                                      data, offs, length);
                                    !       
                                            // Add the element to the buffer
                                            parseBuffer.addElement(element);
                                      
                                    --- 1887,1893 ----
                                            element = new DefaultStyledDocument.ElementSpec(attributes,
                                                                      DefaultStyledDocument.ElementSpec.ContentType,
                                                                      data, offs, length);
                                    ! 
                                            // Add the element to the buffer
                                            parseBuffer.addElement(element);
                                      
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1905,1914 ****
                                                  }
                                              }
                                          }
                                    !     
                                          /**
                                           * Adds content that is specified in the attribute set.
                                    !      * 
                                           * @param t the HTML.Tag
                                           * @param a the attribute set specifying the special content
                                           */
                                    --- 1905,1914 ----
                                                  }
                                              }
                                          }
                                    ! 
                                          /**
                                           * Adds content that is specified in the attribute set.
                                    !      *
                                           * @param t the HTML.Tag
                                           * @param a the attribute set specifying the special content
                                           */
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1920,1956 ****
                                              }
                                      
                                            a.addAttribute(StyleConstants.NameAttribute, t);
                                    !       
                                            // The two spaces are required because some special elements like HR
                                            // must be broken. At least two characters are needed to break into the
                                            // two parts.
                                            DefaultStyledDocument.ElementSpec spec =
                                              new DefaultStyledDocument.ElementSpec(a.copyAttributes(),
                                    ! 	  DefaultStyledDocument.ElementSpec.ContentType, 
                                                new char[] {' '}, 0, 1 );
                                            parseBuffer.add(spec);
                                          }
                                    !     
                                        }
                                    !   
                                        /**
                                    !    * Gets the reader for the parser to use when loading the document with HTML. 
                                    !    * 
                                         * @param pos - the starting position
                                         * @return - the reader
                                         */
                                        public HTMLEditorKit.ParserCallback getReader(int pos)
                                        {
                                          return new HTMLReader(pos);
                                    !   }  
                                    !   
                                        /**
                                    !    * Gets the reader for the parser to use when loading the document with HTML. 
                                    !    * 
                                         * @param pos - the starting position
                                         * @param popDepth - the number of EndTagTypes to generate before inserting
                                    !    * @param pushDepth - the number of StartTagTypes with a direction 
                                    !    * of JoinNextDirection that should be generated before inserting, 
                                         * but after the end tags have been generated.
                                         * @param insertTag - the first tag to start inserting into document
                                         * @return - the reader
                                    --- 1920,1956 ----
                                              }
                                      
                                            a.addAttribute(StyleConstants.NameAttribute, t);
                                    ! 
                                            // The two spaces are required because some special elements like HR
                                            // must be broken. At least two characters are needed to break into the
                                            // two parts.
                                            DefaultStyledDocument.ElementSpec spec =
                                              new DefaultStyledDocument.ElementSpec(a.copyAttributes(),
                                    !           DefaultStyledDocument.ElementSpec.ContentType,
                                                new char[] {' '}, 0, 1 );
                                            parseBuffer.add(spec);
                                          }
                                    ! 
                                        }
                                    ! 
                                        /**
                                    !    * Gets the reader for the parser to use when loading the document with HTML.
                                    !    *
                                         * @param pos - the starting position
                                         * @return - the reader
                                         */
                                        public HTMLEditorKit.ParserCallback getReader(int pos)
                                        {
                                          return new HTMLReader(pos);
                                    !   }
                                    ! 
                                        /**
                                    !    * Gets the reader for the parser to use when loading the document with HTML.
                                    !    *
                                         * @param pos - the starting position
                                         * @param popDepth - the number of EndTagTypes to generate before inserting
                                    !    * @param pushDepth - the number of StartTagTypes with a direction
                                    !    * of JoinNextDirection that should be generated before inserting,
                                         * but after the end tags have been generated.
                                         * @param insertTag - the first tag to start inserting into document
                                         * @return - the reader
                                    *************** public class HTMLDocument extends Defaul
                                    *** 1962,1974 ****
                                        {
                                          return new HTMLReader(pos, popDepth, pushDepth, insertTag);
                                        }
                                    !   
                                        /**
                                         * Gets the reader for the parser to use when inserting the HTML fragment into
                                         * the document. Checks if the parser is present, sets the parent in the
                                         * element stack and removes any actions for BODY (it can be only one body in
                                         * a HTMLDocument).
                                    !    * 
                                         * @param pos - the starting position
                                         * @param popDepth - the number of EndTagTypes to generate before inserting
                                         * @param pushDepth - the number of StartTagTypes with a direction of
                                    --- 1962,1974 ----
                                        {
                                          return new HTMLReader(pos, popDepth, pushDepth, insertTag);
                                        }
                                    ! 
                                        /**
                                         * Gets the reader for the parser to use when inserting the HTML fragment into
                                         * the document. Checks if the parser is present, sets the parent in the
                                         * element stack and removes any actions for BODY (it can be only one body in
                                         * a HTMLDocument).
                                    !    *
                                         * @param pos - the starting position
                                         * @param popDepth - the number of EndTagTypes to generate before inserting
                                         * @param pushDepth - the number of StartTagTypes with a direction of
                                    *************** public class HTMLDocument extends Defaul
                                    *** 2009,2022 ****
                                                super.handleEndTag(t, pos);
                                            }
                                          };
                                    !       
                                          return reader;
                                    !   }   
                                    !   
                                        /**
                                         * Gets the child element that contains the attribute with the value or null.
                                         * Not thread-safe.
                                    !    * 
                                         * @param e - the element to begin search at
                                         * @param attribute - the desired attribute
                                         * @param value - the desired value
                                    --- 2009,2022 ----
                                                super.handleEndTag(t, pos);
                                            }
                                          };
                                    ! 
                                          return reader;
                                    !   }
                                    ! 
                                        /**
                                         * Gets the child element that contains the attribute with the value or null.
                                         * Not thread-safe.
                                    !    *
                                         * @param e - the element to begin search at
                                         * @param attribute - the desired attribute
                                         * @param value - the desired value
                                    *************** public class HTMLDocument extends Defaul
                                    *** 2029,2042 ****
                                            {
                                              if (e.getAttributes().containsAttribute(attribute, value))
                                                return e;
                                    !         
                                              int count = e.getElementCount();
                                              for (int j = 0; j < count; j++)
                                                {
                                                  Element child = e.getElement(j);
                                                  if (child.getAttributes().containsAttribute(attribute, value))
                                                    return child;
                                    !             
                                                  Element grandChild = getElement(child, attribute, value);
                                                  if (grandChild != null)
                                                    return grandChild;
                                    --- 2029,2042 ----
                                            {
                                              if (e.getAttributes().containsAttribute(attribute, value))
                                                return e;
                                    ! 
                                              int count = e.getElementCount();
                                              for (int j = 0; j < count; j++)
                                                {
                                                  Element child = e.getElement(j);
                                                  if (child.getAttributes().containsAttribute(attribute, value))
                                                    return child;
                                    ! 
                                                  Element grandChild = getElement(child, attribute, value);
                                                  if (grandChild != null)
                                                    return grandChild;
                                    *************** public class HTMLDocument extends Defaul
                                    *** 2044,2056 ****
                                            }
                                          return null;
                                        }
                                    !   
                                        /**
                                         * Returns the element that has the given id Attribute (for instance, <p id
                                         * ='my paragraph >'). If it is not found, null is returned. The HTML tag,
                                         * having this attribute, is not checked by this method and can be any. The
                                         * method is not thread-safe.
                                    !    * 
                                         * @param attrId - the value of the attribute id to look for
                                         * @return the element that has the given id.
                                         */
                                    --- 2044,2056 ----
                                            }
                                          return null;
                                        }
                                    ! 
                                        /**
                                         * Returns the element that has the given id Attribute (for instance, <p id
                                         * ='my paragraph >'). If it is not found, null is returned. The HTML tag,
                                         * having this attribute, is not checked by this method and can be any. The
                                         * method is not thread-safe.
                                    !    *
                                         * @param attrId - the value of the attribute id to look for
                                         * @return the element that has the given id.
                                         */
                                    *************** public class HTMLDocument extends Defaul
                                    *** 2059,2083 ****
                                          return getElement(getDefaultRootElement(), HTML.Attribute.ID,
                                                            attrId);
                                        }
                                    !   
                                        /**
                                         * Replaces the children of the given element with the contents of
                                         * the string. The document must have an HTMLEditorKit.Parser set.
                                         * This will be seen as at least two events, n inserts followed by a remove.
                                    !    * 
                                         * @param elem - the brance element whose children will be replaced
                                         * @param htmlText - the string to be parsed and assigned to element.
                                         * @throws BadLocationException
                                         * @throws IOException
                                    !    * @throws IllegalArgumentException - if elem is a leaf 
                                         * @throws IllegalStateException - if an HTMLEditorKit.Parser has not been set
                                         */
                                    !   public void setInnerHTML(Element elem, String htmlText) 
                                          throws BadLocationException, IOException
                                        {
                                          if (elem.isLeaf())
                                            throw new IllegalArgumentException("Element is a leaf");
                                    !     
                                          int start = elem.getStartOffset();
                                          int end = elem.getEndOffset();
                                      
                                    --- 2059,2083 ----
                                          return getElement(getDefaultRootElement(), HTML.Attribute.ID,
                                                            attrId);
                                        }
                                    ! 
                                        /**
                                         * Replaces the children of the given element with the contents of
                                         * the string. The document must have an HTMLEditorKit.Parser set.
                                         * This will be seen as at least two events, n inserts followed by a remove.
                                    !    *
                                         * @param elem - the brance element whose children will be replaced
                                         * @param htmlText - the string to be parsed and assigned to element.
                                         * @throws BadLocationException
                                         * @throws IOException
                                    !    * @throws IllegalArgumentException - if elem is a leaf
                                         * @throws IllegalStateException - if an HTMLEditorKit.Parser has not been set
                                         */
                                    !   public void setInnerHTML(Element elem, String htmlText)
                                          throws BadLocationException, IOException
                                        {
                                          if (elem.isLeaf())
                                            throw new IllegalArgumentException("Element is a leaf");
                                    ! 
                                          int start = elem.getStartOffset();
                                          int end = elem.getEndOffset();
                                      
                                    *************** public class HTMLDocument extends Defaul
                                    *** 2086,2103 ****
                                      
                                          // TODO charset
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                    !     
                                          // Remove the previous content
                                          remove(start, end - start);
                                        }
                                    !   
                                        /**
                                         * Replaces the given element in the parent with the string. When replacing a
                                         * leaf, this will attempt to make sure there is a newline present if one is
                                         * needed. This may result in an additional element being inserted. This will
                                         * be seen as at least two events, n inserts followed by a remove. The
                                         * HTMLEditorKit.Parser must be set.
                                    !    * 
                                         * @param elem - the branch element whose parent will be replaced
                                         * @param htmlText - the string to be parsed and assigned to elem
                                         * @throws BadLocationException
                                    --- 2086,2103 ----
                                      
                                          // TODO charset
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                    ! 
                                          // Remove the previous content
                                          remove(start, end - start);
                                        }
                                    ! 
                                        /**
                                         * Replaces the given element in the parent with the string. When replacing a
                                         * leaf, this will attempt to make sure there is a newline present if one is
                                         * needed. This may result in an additional element being inserted. This will
                                         * be seen as at least two events, n inserts followed by a remove. The
                                         * HTMLEditorKit.Parser must be set.
                                    !    *
                                         * @param elem - the branch element whose parent will be replaced
                                         * @param htmlText - the string to be parsed and assigned to elem
                                         * @throws BadLocationException
                                    *************** public void setOuterHTML(Element elem, S
                                    *** 2112,2129 ****
                                          int end = elem.getEndOffset();
                                      
                                          remove(start, end-start);
                                    !        
                                          HTMLEditorKit.ParserCallback reader = getInsertingReader(
                                            start, 0, 0, HTML.Tag.BODY, elem);
                                      
                                          // TODO charset
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                        }
                                    !   
                                        /**
                                         * Inserts the string before the start of the given element. The parser must
                                         * be set.
                                    !    * 
                                         * @param elem - the element to be the root for the new text.
                                         * @param htmlText - the string to be parsed and assigned to elem
                                         * @throws BadLocationException
                                    --- 2112,2129 ----
                                          int end = elem.getEndOffset();
                                      
                                          remove(start, end-start);
                                    ! 
                                          HTMLEditorKit.ParserCallback reader = getInsertingReader(
                                            start, 0, 0, HTML.Tag.BODY, elem);
                                      
                                          // TODO charset
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                        }
                                    ! 
                                        /**
                                         * Inserts the string before the start of the given element. The parser must
                                         * be set.
                                    !    *
                                         * @param elem - the element to be the root for the new text.
                                         * @param htmlText - the string to be parsed and assigned to elem
                                         * @throws BadLocationException
                                    *************** public void setOuterHTML(Element elem, S
                                    *** 2139,2150 ****
                                          // TODO charset
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                        }
                                    !   
                                        /**
                                         * Inserts the string at the end of the element. If elem's children are
                                         * leaves, and the character at elem.getEndOffset() - 1 is a newline, then it
                                         * will be inserted before the newline. The parser must be set.
                                    !    * 
                                         * @param elem - the element to be the root for the new text
                                         * @param htmlText - the text to insert
                                         * @throws BadLocationException
                                    --- 2139,2150 ----
                                          // TODO charset
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                        }
                                    ! 
                                        /**
                                         * Inserts the string at the end of the element. If elem's children are
                                         * leaves, and the character at elem.getEndOffset() - 1 is a newline, then it
                                         * will be inserted before the newline. The parser must be set.
                                    !    *
                                         * @param elem - the element to be the root for the new text
                                         * @param htmlText - the text to insert
                                         * @throws BadLocationException
                                    *************** public void setOuterHTML(Element elem, S
                                    *** 2161,2171 ****
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                      
                                        }
                                    !   
                                        /**
                                         * Inserts the string after the end of the given element.
                                         * The parser must be set.
                                    !    * 
                                         * @param elem - the element to be the root for the new text
                                         * @param htmlText - the text to insert
                                         * @throws BadLocationException
                                    --- 2161,2171 ----
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                      
                                        }
                                    ! 
                                        /**
                                         * Inserts the string after the end of the given element.
                                         * The parser must be set.
                                    !    *
                                         * @param elem - the element to be the root for the new text
                                         * @param htmlText - the text to insert
                                         * @throws BadLocationException
                                    *************** public void setOuterHTML(Element elem, S
                                    *** 2181,2191 ****
                                          // TODO charset
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                        }
                                    !   
                                        /**
                                         * Inserts the string at the start of the element.
                                         * The parser must be set.
                                    !    * 
                                         * @param elem - the element to be the root for the new text
                                         * @param htmlText - the text to insert
                                         * @throws BadLocationException
                                    --- 2181,2191 ----
                                          // TODO charset
                                          getParser().parse(new StringReader(htmlText), reader, true);
                                        }
                                    ! 
                                        /**
                                         * Inserts the string at the start of the element.
                                         * The parser must be set.
                                    !    *
                                         * @param elem - the element to be the root for the new text
                                         * @param htmlText - the text to insert
                                         * @throws BadLocationException
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/HTMLEditorKit.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/HTMLEditorKit.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/HTMLEditorKit.java	Thu May  3 19:02:52 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/HTMLEditorKit.java	Tue Jan 11 19:46:05 2011
                                    *************** public class HTMLEditorKit
                                    *** 89,95 ****
                                        extends StyledEditorKit
                                        implements Serializable, Cloneable, Accessible
                                      {
                                    !   
                                        /**
                                         * Fires the hyperlink events on the associated component
                                         * when needed.
                                    --- 89,95 ----
                                        extends StyledEditorKit
                                        implements Serializable, Cloneable, Accessible
                                      {
                                    ! 
                                        /**
                                         * Fires the hyperlink events on the associated component
                                         * when needed.
                                    *************** public class HTMLEditorKit
                                    *** 107,122 ****
                                            /**
                                             * Constructor
                                             */
                                    !       public LinkController() 
                                            {
                                              super();
                                            }
                                    !       
                                            /**
                                             * Dispatched when the mouse is clicked. If the component
                                             * is read-only, then the clicked event is used to drive an
                                             * attempt to follow the reference specified by a link
                                    !        * 
                                             * @param e - the mouse event
                                             */
                                            public void mouseClicked(MouseEvent e)
                                    --- 107,122 ----
                                            /**
                                             * Constructor
                                             */
                                    !       public LinkController()
                                            {
                                              super();
                                            }
                                    ! 
                                            /**
                                             * Dispatched when the mouse is clicked. If the component
                                             * is read-only, then the clicked event is used to drive an
                                             * attempt to follow the reference specified by a link
                                    !        *
                                             * @param e - the mouse event
                                             */
                                            public void mouseClicked(MouseEvent e)
                                    *************** public class HTMLEditorKit
                                    *** 130,149 ****
                                                    activateLink(pos, editor, e.getX(), e.getY());
                                                }
                                            }
                                    !       
                                            /**
                                             * Dispatched when the mouse is dragged on a component.
                                    !        * 
                                             * @param e - the mouse event.
                                             */
                                            public void mouseDragged(MouseEvent e)
                                            {
                                              // Nothing to do here.
                                            }
                                    !       
                                            /**
                                             * Dispatched when the mouse cursor has moved into the component.
                                    !        * 
                                             * @param e - the mouse event.
                                             */
                                            public void mouseMoved(MouseEvent e)
                                    --- 130,149 ----
                                                    activateLink(pos, editor, e.getX(), e.getY());
                                                }
                                            }
                                    ! 
                                            /**
                                             * Dispatched when the mouse is dragged on a component.
                                    !        *
                                             * @param e - the mouse event.
                                             */
                                            public void mouseDragged(MouseEvent e)
                                            {
                                              // Nothing to do here.
                                            }
                                    ! 
                                            /**
                                             * Dispatched when the mouse cursor has moved into the component.
                                    !        *
                                             * @param e - the mouse event.
                                             */
                                            public void mouseMoved(MouseEvent e)
                                    *************** public class HTMLEditorKit
                                    *** 248,254 ****
                                                  if (event != null)
                                                    editor.fireHyperlinkUpdate(event);
                                                }
                                    !         
                                            }
                                      
                                            /**
                                    --- 248,254 ----
                                                  if (event != null)
                                                    editor.fireHyperlinkUpdate(event);
                                                }
                                    ! 
                                            }
                                      
                                            /**
                                    *************** public class HTMLEditorKit
                                    *** 275,281 ****
                                                {
                                                  URL base = doc.getBase();
                                                  url = new URL(base, href);
                                    !             
                                                }
                                              catch (MalformedURLException ex)
                                                {
                                    --- 275,281 ----
                                                {
                                                  URL base = doc.getBase();
                                                  url = new URL(base, href);
                                    ! 
                                                }
                                              catch (MalformedURLException ex)
                                                {
                                    *************** public class HTMLEditorKit
                                    *** 303,313 ****
                                              return ev;
                                            }
                                          }
                                    !   
                                        /**
                                         * This class is used to insert a string of HTML into an existing
                                         * document. At least 2 HTML.Tags need to be supplied. The first Tag (parentTag)
                                    !    * identifies the parent in the document to add the elements to. The second, (addTag), 
                                         * identifies that the first tag should be added to the document as seen in the string.
                                         * The parser will generate all appropriate (opening/closing tags_ even if they are not
                                         * in the HTML string passed in.
                                    --- 303,313 ----
                                              return ev;
                                            }
                                          }
                                    ! 
                                        /**
                                         * This class is used to insert a string of HTML into an existing
                                         * document. At least 2 HTML.Tags need to be supplied. The first Tag (parentTag)
                                    !    * identifies the parent in the document to add the elements to. The second, (addTag),
                                         * identifies that the first tag should be added to the document as seen in the string.
                                         * The parser will generate all appropriate (opening/closing tags_ even if they are not
                                         * in the HTML string passed in.
                                    *************** public class HTMLEditorKit
                                    *** 315,342 ****
                                        public static class InsertHTMLTextAction
                                          extends HTMLTextAction
                                          {
                                    !       
                                            /**
                                             * Tag in HTML to start adding tags from.
                                             */
                                            protected HTML.Tag addTag;
                                    !       
                                            /**
                                             * Alternate tag in HTML to start adding tags from if parentTag is
                                             * not found and alternateParentTag is not found.
                                    !        */      
                                            protected HTML.Tag alternateAddTag;
                                    !       
                                            /**
                                             * Alternate tag to check if parentTag is not found.
                                             */
                                            protected HTML.Tag alternateParentTag;
                                    !       
                                            /**
                                             * HTML to insert.
                                             */
                                            protected String html;
                                    !       
                                            /**
                                             * Tag to check for in the document.
                                             */
                                    --- 315,342 ----
                                        public static class InsertHTMLTextAction
                                          extends HTMLTextAction
                                          {
                                    ! 
                                            /**
                                             * Tag in HTML to start adding tags from.
                                             */
                                            protected HTML.Tag addTag;
                                    ! 
                                            /**
                                             * Alternate tag in HTML to start adding tags from if parentTag is
                                             * not found and alternateParentTag is not found.
                                    !        */
                                            protected HTML.Tag alternateAddTag;
                                    ! 
                                            /**
                                             * Alternate tag to check if parentTag is not found.
                                             */
                                            protected HTML.Tag alternateParentTag;
                                    ! 
                                            /**
                                             * HTML to insert.
                                             */
                                            protected String html;
                                    ! 
                                            /**
                                             * Tag to check for in the document.
                                             */
                                    *************** public class HTMLEditorKit
                                    *** 344,364 ****
                                      
                                            /**
                                             * Initializes all fields.
                                    !        * 
                                             * @param name - the name of the document.
                                             * @param html - the html to insert
                                             * @param parentTag - the parent tag to check for
                                             * @param addTag - the tag to start adding from
                                             */
                                    !       public InsertHTMLTextAction(String name, String html, 
                                                                        HTML.Tag parentTag, HTML.Tag addTag)
                                            {
                                              this(name, html, parentTag, addTag, null, null);
                                            }
                                    !       
                                            /**
                                             * Initializes all fields and calls super
                                    !        * 
                                             * @param name - the name of the document.
                                             * @param html - the html to insert
                                             * @param parentTag - the parent tag to check for
                                    --- 344,364 ----
                                      
                                            /**
                                             * Initializes all fields.
                                    !        *
                                             * @param name - the name of the document.
                                             * @param html - the html to insert
                                             * @param parentTag - the parent tag to check for
                                             * @param addTag - the tag to start adding from
                                             */
                                    !       public InsertHTMLTextAction(String name, String html,
                                                                        HTML.Tag parentTag, HTML.Tag addTag)
                                            {
                                              this(name, html, parentTag, addTag, null, null);
                                            }
                                    ! 
                                            /**
                                             * Initializes all fields and calls super
                                    !        *
                                             * @param name - the name of the document.
                                             * @param html - the html to insert
                                             * @param parentTag - the parent tag to check for
                                    *************** public class HTMLEditorKit
                                    *** 366,374 ****
                                             * @param alternateParentTag - the alternate parent tag
                                             * @param alternateAddTag - the alternate add tag
                                             */
                                    !       public InsertHTMLTextAction(String name, String html, HTML.Tag parentTag, 
                                    !                                   HTML.Tag addTag, HTML.Tag alternateParentTag, 
                                    !                                   HTML.Tag alternateAddTag) 
                                            {
                                              super(name);
                                              // Fields are for easy access when the action is applied to an actual
                                    --- 366,374 ----
                                             * @param alternateParentTag - the alternate parent tag
                                             * @param alternateAddTag - the alternate add tag
                                             */
                                    !       public InsertHTMLTextAction(String name, String html, HTML.Tag parentTag,
                                    !                                   HTML.Tag addTag, HTML.Tag alternateParentTag,
                                    !                                   HTML.Tag alternateAddTag)
                                            {
                                              super(name);
                                              // Fields are for easy access when the action is applied to an actual
                                    *************** public class HTMLEditorKit
                                    *** 379,389 ****
                                              this.alternateParentTag = alternateParentTag;
                                              this.alternateAddTag = alternateAddTag;
                                            }
                                    !       
                                            /**
                                             * HTMLEditorKit.insertHTML is called. If an exception is
                                             * thrown, it is wrapped in a RuntimeException and thrown.
                                    !        * 
                                             * @param editor - the editor to use to get the editorkit
                                             * @param doc -
                                             *          the Document to insert the HTML into.
                                    --- 379,389 ----
                                              this.alternateParentTag = alternateParentTag;
                                              this.alternateAddTag = alternateAddTag;
                                            }
                                    ! 
                                            /**
                                             * HTMLEditorKit.insertHTML is called. If an exception is
                                             * thrown, it is wrapped in a RuntimeException and thrown.
                                    !        *
                                             * @param editor - the editor to use to get the editorkit
                                             * @param doc -
                                             *          the Document to insert the HTML into.
                                    *************** public class HTMLEditorKit
                                    *** 419,430 ****
                                                                                    + offset).initCause(ex);
                                                }
                                            }
                                    !       
                                            /**
                                             * Invoked when inserting at a boundary. Determines the number of pops,
                                             * and then the number of pushes that need to be performed. The it calls
                                             * insertHTML.
                                    !        * 
                                             * @param editor -
                                             *          the editor to use to get the editorkit
                                             * @param doc -
                                    --- 419,430 ----
                                                                                    + offset).initCause(ex);
                                                }
                                            }
                                    ! 
                                            /**
                                             * Invoked when inserting at a boundary. Determines the number of pops,
                                             * and then the number of pushes that need to be performed. The it calls
                                             * insertHTML.
                                    !        *
                                             * @param editor -
                                             *          the editor to use to get the editorkit
                                             * @param doc -
                                    *************** public class HTMLEditorKit
                                    *** 449,460 ****
                                              insertAtBoundry(editor, doc, offset, insertElement,
                                                              html, parentTag, addTag);
                                            }
                                    !       
                                            /**
                                    !        * Invoked when inserting at a boundary. Determines the number of pops, 
                                             * and then the number of pushes that need to be performed. The it calls
                                             * insertHTML.
                                    !        * 
                                             * @param editor - the editor to use to get the editorkit
                                             * @param doc -
                                             *          the Document to insert the HTML into.
                                    --- 449,460 ----
                                              insertAtBoundry(editor, doc, offset, insertElement,
                                                              html, parentTag, addTag);
                                            }
                                    ! 
                                            /**
                                    !        * Invoked when inserting at a boundary. Determines the number of pops,
                                             * and then the number of pushes that need to be performed. The it calls
                                             * insertHTML.
                                    !        *
                                             * @param editor - the editor to use to get the editorkit
                                             * @param doc -
                                             *          the Document to insert the HTML into.
                                    *************** public class HTMLEditorKit
                                    *** 464,470 ****
                                             * @param html - the html to insert
                                             * @param parentTag - the parent tag
                                             * @param addTag - the first tag
                                    !        * 
                                             * @deprecated as of v1.3, use insertAtBoundary
                                             */
                                            protected void insertAtBoundry(JEditorPane editor,
                                    --- 464,470 ----
                                             * @param html - the html to insert
                                             * @param parentTag - the parent tag
                                             * @param addTag - the first tag
                                    !        *
                                             * @deprecated as of v1.3, use insertAtBoundary
                                             */
                                            protected void insertAtBoundry(JEditorPane editor,
                                    *************** public class HTMLEditorKit
                                    *** 518,527 ****
                                                  insertHTML(editor, doc, offset, html, pops, pushes, addTag);
                                                }
                                            }
                                    !       
                                            /**
                                             * Inserts the HTML.
                                    !        * 
                                             * @param ae - the action performed
                                             */
                                            public void actionPerformed(ActionEvent ae)
                                    --- 518,527 ----
                                                  insertHTML(editor, doc, offset, html, pops, pushes, addTag);
                                                }
                                            }
                                    ! 
                                            /**
                                             * Inserts the HTML.
                                    !        *
                                             * @param ae - the action performed
                                             */
                                            public void actionPerformed(ActionEvent ae)
                                    *************** public class HTMLEditorKit
                                    *** 619,643 ****
                                                }
                                            }
                                        }
                                    !   
                                        /**
                                         * Abstract Action class that helps inserting HTML into an existing document.
                                         */
                                        public abstract static class HTMLTextAction
                                          extends StyledEditorKit.StyledTextAction
                                          {
                                    !       
                                            /**
                                             * Constructor
                                             */
                                    !       public HTMLTextAction(String name) 
                                            {
                                              super(name);
                                            }
                                    !       
                                            /**
                                             * Gets the HTMLDocument from the JEditorPane.
                                    !        * 
                                             * @param e - the editor pane
                                             * @return the html document.
                                             */
                                    --- 619,643 ----
                                                }
                                            }
                                        }
                                    ! 
                                        /**
                                         * Abstract Action class that helps inserting HTML into an existing document.
                                         */
                                        public abstract static class HTMLTextAction
                                          extends StyledEditorKit.StyledTextAction
                                          {
                                    ! 
                                            /**
                                             * Constructor
                                             */
                                    !       public HTMLTextAction(String name)
                                            {
                                              super(name);
                                            }
                                    ! 
                                            /**
                                             * Gets the HTMLDocument from the JEditorPane.
                                    !        *
                                             * @param e - the editor pane
                                             * @return the html document.
                                             */
                                    *************** public class HTMLEditorKit
                                    *** 648,672 ****
                                                return (HTMLDocument) d;
                                              throw new IllegalArgumentException("Document is not a HTMLDocument.");
                                            }
                                    !       
                                            /**
                                             * Gets the HTMLEditorKit
                                    !        *  
                                             * @param e - the JEditorPane to get the HTMLEditorKit from.
                                             * @return the HTMLEditorKit
                                             */
                                    !       protected HTMLEditorKit getHTMLEditorKit(JEditorPane e) 
                                            {
                                              EditorKit d = e.getEditorKit();
                                              if (d instanceof HTMLEditorKit)
                                                return (HTMLEditorKit) d;
                                              throw new IllegalArgumentException("EditorKit is not a HTMLEditorKit.");
                                            }
                                    !       
                                            /**
                                             * Returns an array of Elements that contain the offset.
                                             * The first elements corresponds to the roots of the doc.
                                    !        * 
                                             * @param doc - the document to get the Elements from.
                                             * @param offset - the offset the Elements must contain
                                             * @return an array of all the elements containing the offset.
                                    --- 648,672 ----
                                                return (HTMLDocument) d;
                                              throw new IllegalArgumentException("Document is not a HTMLDocument.");
                                            }
                                    ! 
                                            /**
                                             * Gets the HTMLEditorKit
                                    !        *
                                             * @param e - the JEditorPane to get the HTMLEditorKit from.
                                             * @return the HTMLEditorKit
                                             */
                                    !       protected HTMLEditorKit getHTMLEditorKit(JEditorPane e)
                                            {
                                              EditorKit d = e.getEditorKit();
                                              if (d instanceof HTMLEditorKit)
                                                return (HTMLEditorKit) d;
                                              throw new IllegalArgumentException("EditorKit is not a HTMLEditorKit.");
                                            }
                                    ! 
                                            /**
                                             * Returns an array of Elements that contain the offset.
                                             * The first elements corresponds to the roots of the doc.
                                    !        *
                                             * @param doc - the document to get the Elements from.
                                             * @param offset - the offset the Elements must contain
                                             * @return an array of all the elements containing the offset.
                                    *************** public class HTMLEditorKit
                                    *** 676,682 ****
                                            {
                                              return getElementsAt(doc.getDefaultRootElement(), offset, 0);
                                            }
                                    !       
                                            /**
                                             * Helper function to get all elements using recursion.
                                             */
                                    --- 676,682 ----
                                            {
                                              return getElementsAt(doc.getDefaultRootElement(), offset, 0);
                                            }
                                    ! 
                                            /**
                                             * Helper function to get all elements using recursion.
                                             */
                                    *************** public class HTMLEditorKit
                                    *** 697,708 ****
                                                }
                                              return elements;
                                            }
                                    !       
                                            /**
                                             * Returns the number of elements, starting at the deepest point, needed
                                             * to get an element representing tag. -1 if no elements are found, 0 if
                                             * the parent of the leaf at offset represents the tag.
                                    !        * 
                                             * @param doc -
                                             *          the document to search
                                             * @param offset -
                                    --- 697,708 ----
                                                }
                                              return elements;
                                            }
                                    ! 
                                            /**
                                             * Returns the number of elements, starting at the deepest point, needed
                                             * to get an element representing tag. -1 if no elements are found, 0 if
                                             * the parent of the leaf at offset represents the tag.
                                    !        *
                                             * @param doc -
                                             *          the document to search
                                             * @param offset -
                                    *************** public class HTMLEditorKit
                                    *** 718,724 ****
                                              Element root = doc.getDefaultRootElement();
                                              int num = -1;
                                              Element next = root.getElement(root.getElementIndex(offset));
                                    !         
                                              while (!next.isLeaf())
                                                {
                                                  num++;
                                    --- 718,724 ----
                                              Element root = doc.getDefaultRootElement();
                                              int num = -1;
                                              Element next = root.getElement(root.getElementIndex(offset));
                                    ! 
                                              while (!next.isLeaf())
                                                {
                                                  num++;
                                    *************** public class HTMLEditorKit
                                    *** 729,739 ****
                                                }
                                              return num;
                                            }
                                    !       
                                            /**
                                             * Gets the deepest element at offset with the
                                             * matching tag.
                                    !        * 
                                             * @param doc - the document to search
                                             * @param offset - the offset to check for
                                             * @param tag - the tag to match
                                    --- 729,739 ----
                                                }
                                              return num;
                                            }
                                    ! 
                                            /**
                                             * Gets the deepest element at offset with the
                                             * matching tag.
                                    !        *
                                             * @param doc - the document to search
                                             * @param offset - the offset to check for
                                             * @param tag - the tag to match
                                    *************** public class HTMLEditorKit
                                    *** 744,750 ****
                                            {
                                              Element element = doc.getDefaultRootElement();
                                              Element tagElement = null;
                                    !         
                                              while (element != null)
                                                {
                                                  Object otag = element.getAttributes().getAttribute(
                                    --- 744,750 ----
                                            {
                                              Element element = doc.getDefaultRootElement();
                                              Element tagElement = null;
                                    ! 
                                              while (element != null)
                                                {
                                                  Object otag = element.getAttributes().getAttribute(
                                    *************** public class HTMLEditorKit
                                    *** 753,763 ****
                                                    tagElement = element;
                                                  element = element.getElement(element.getElementIndex(offset));
                                                }
                                    !         
                                              return tagElement;
                                            }
                                          }
                                    !   
                                        /**
                                         * A {@link ViewFactory} that is able to create {@link View}s for
                                         * the Elements that are supported.
                                    --- 753,763 ----
                                                    tagElement = element;
                                                  element = element.getElement(element.getElementIndex(offset));
                                                }
                                    ! 
                                              return tagElement;
                                            }
                                          }
                                    ! 
                                        /**
                                         * A {@link ViewFactory} that is able to create {@link View}s for
                                         * the Elements that are supported.
                                    *************** public class HTMLEditorKit
                                    *** 765,771 ****
                                        public static class HTMLFactory
                                          implements ViewFactory
                                        {
                                    !     
                                          /**
                                           * Constructor
                                           */
                                    --- 765,771 ----
                                        public static class HTMLFactory
                                          implements ViewFactory
                                        {
                                    ! 
                                          /**
                                           * Constructor
                                           */
                                    *************** public class HTMLEditorKit
                                    *** 773,779 ****
                                          {
                                            // Do Nothing here.
                                          }
                                    !     
                                          /**
                                           * Creates a {@link View} for the specified Element.
                                           *
                                    --- 773,779 ----
                                          {
                                            // Do Nothing here.
                                          }
                                    ! 
                                          /**
                                           * Creates a {@link View} for the specified Element.
                                           *
                                    *************** public class HTMLEditorKit
                                    *** 815,821 ****
                                                  view = new BlockView(element, View.X_AXIS);
                                                else if (tag == HTML.Tag.IMG)
                                                  view = new ImageView(element);
                                    !           
                                                else if (tag == HTML.Tag.CONTENT)
                                                  view = new InlineView(element);
                                                else if (tag == HTML.Tag.HEAD)
                                    --- 815,821 ----
                                                  view = new BlockView(element, View.X_AXIS);
                                                else if (tag == HTML.Tag.IMG)
                                                  view = new ImageView(element);
                                    ! 
                                                else if (tag == HTML.Tag.CONTENT)
                                                  view = new InlineView(element);
                                                else if (tag == HTML.Tag.HEAD)
                                    *************** public class HTMLEditorKit
                                    *** 847,853 ****
                                            return view;
                                          }
                                        }
                                    !   
                                        /**
                                         * The abstract HTML parser declaration.
                                         */
                                    --- 847,853 ----
                                            return view;
                                          }
                                        }
                                    ! 
                                        /**
                                         * The abstract HTML parser declaration.
                                         */
                                    *************** public class HTMLEditorKit
                                    *** 888,894 ****
                                          {
                                            // Nothing to do here.
                                          }
                                    !     
                                          /**
                                           * The parser calls this method after it finishes parsing the document.
                                           */
                                    --- 888,894 ----
                                          {
                                            // Nothing to do here.
                                          }
                                    ! 
                                          /**
                                           * The parser calls this method after it finishes parsing the document.
                                           */
                                    *************** public class HTMLEditorKit
                                    *** 1048,1056 ****
                                         * The "ident paragraph right" action.
                                         */
                                        public static final String PARA_INDENT_RIGHT = "html-para-indent-right";
                                    !   
                                        /**
                                    !    * Actions for HTML 
                                         */
                                        private static final Action[] defaultActions =
                                        {
                                    --- 1048,1056 ----
                                         * The "ident paragraph right" action.
                                         */
                                        public static final String PARA_INDENT_RIGHT = "html-para-indent-right";
                                    ! 
                                        /**
                                    !    * Actions for HTML
                                         */
                                        private static final Action[] defaultActions =
                                        {
                                    *************** public class HTMLEditorKit
                                    *** 1083,1125 ****
                                                                   "
                                    ", HTML.Tag.BODY, HTML.Tag.PRE)
                                          // TODO: The reference impl has an InsertHRAction too.
                                        };
                                    !   
                                        /**
                                         * The current style sheet.
                                         */
                                        private StyleSheet styleSheet;
                                    !   
                                        /**
                                         * The ViewFactory for HTMLFactory.
                                         */
                                        HTMLFactory viewFactory;
                                    !   
                                        /**
                                         * The Cursor for links.
                                         */
                                        Cursor linkCursor;
                                    !   
                                        /**
                                         * The default cursor.
                                         */
                                        Cursor defaultCursor;
                                    !   
                                        /**
                                         * The parser.
                                         */
                                        Parser parser;
                                    !   
                                        /**
                                         * The mouse listener used for links.
                                         */
                                        private LinkController linkController;
                                    !   
                                        /** The content type */
                                        String contentType = "text/html";
                                    !   
                                        /** The input attributes defined by default.css */
                                        MutableAttributeSet inputAttributes;
                                    !   
                                        /** The editor pane used. */
                                        JEditorPane editorPane;
                                      
                                    --- 1083,1125 ----
                                                                   "
                                    ", HTML.Tag.BODY, HTML.Tag.PRE)
                                          // TODO: The reference impl has an InsertHRAction too.
                                        };
                                    ! 
                                        /**
                                         * The current style sheet.
                                         */
                                        private StyleSheet styleSheet;
                                    ! 
                                        /**
                                         * The ViewFactory for HTMLFactory.
                                         */
                                        HTMLFactory viewFactory;
                                    ! 
                                        /**
                                         * The Cursor for links.
                                         */
                                        Cursor linkCursor;
                                    ! 
                                        /**
                                         * The default cursor.
                                         */
                                        Cursor defaultCursor;
                                    ! 
                                        /**
                                         * The parser.
                                         */
                                        Parser parser;
                                    ! 
                                        /**
                                         * The mouse listener used for links.
                                         */
                                        private LinkController linkController;
                                    ! 
                                        /** The content type */
                                        String contentType = "text/html";
                                    ! 
                                        /** The input attributes defined by default.css */
                                        MutableAttributeSet inputAttributes;
                                    ! 
                                        /** The editor pane used. */
                                        JEditorPane editorPane;
                                      
                                    *************** public class HTMLEditorKit
                                    *** 1139,1149 ****
                                          linkController = new LinkController();
                                          autoFormSubmission = true;
                                        }
                                    !   
                                        /**
                                    !    * Gets a factory suitable for producing views of any 
                                         * models that are produced by this kit.
                                    !    * 
                                         * @return the view factory suitable for producing views.
                                         */
                                        public ViewFactory getViewFactory()
                                    --- 1139,1149 ----
                                          linkController = new LinkController();
                                          autoFormSubmission = true;
                                        }
                                    ! 
                                        /**
                                    !    * Gets a factory suitable for producing views of any
                                         * models that are produced by this kit.
                                    !    *
                                         * @return the view factory suitable for producing views.
                                         */
                                        public ViewFactory getViewFactory()
                                    *************** public class HTMLEditorKit
                                    *** 1152,1158 ****
                                            viewFactory = new HTMLFactory();
                                          return viewFactory;
                                        }
                                    !   
                                        /**
                                         * Create a text storage model for this type of editor.
                                         *
                                    --- 1152,1158 ----
                                            viewFactory = new HTMLFactory();
                                          return viewFactory;
                                        }
                                    ! 
                                        /**
                                         * Create a text storage model for this type of editor.
                                         *
                                    *************** public class HTMLEditorKit
                                    *** 1175,1181 ****
                                        /**
                                         * Get the parser that this editor kit uses for reading HTML streams. This
                                         * method can be overridden to use the alternative parser.
                                    !    * 
                                         * @return the HTML parser (by default, {@link ParserDelegator}).
                                         */
                                        protected Parser getParser()
                                    --- 1175,1181 ----
                                        /**
                                         * Get the parser that this editor kit uses for reading HTML streams. This
                                         * method can be overridden to use the alternative parser.
                                    !    *
                                         * @return the HTML parser (by default, {@link ParserDelegator}).
                                         */
                                        protected Parser getParser()
                                    *************** public class HTMLEditorKit
                                    *** 1186,1202 ****
                                            }
                                          return parser;
                                        }
                                    !   
                                        /**
                                         * Inserts HTML into an existing document.
                                    !    * 
                                         * @param doc - the Document to insert the HTML into.
                                         * @param offset - where to begin inserting the HTML.
                                         * @param html - the String to insert
                                    !    * @param popDepth - the number of ElementSpec.EndTagTypes 
                                         * to generate before inserting
                                    !    * @param pushDepth - the number of ElementSpec.StartTagTypes 
                                    !    * with a direction of ElementSpec.JoinNextDirection that 
                                         * should be generated before
                                         * @param insertTag - the first tag to start inserting into document
                                         * @throws IOException - on any I/O error
                                    --- 1186,1202 ----
                                            }
                                          return parser;
                                        }
                                    ! 
                                        /**
                                         * Inserts HTML into an existing document.
                                    !    *
                                         * @param doc - the Document to insert the HTML into.
                                         * @param offset - where to begin inserting the HTML.
                                         * @param html - the String to insert
                                    !    * @param popDepth - the number of ElementSpec.EndTagTypes
                                         * to generate before inserting
                                    !    * @param pushDepth - the number of ElementSpec.StartTagTypes
                                    !    * with a direction of ElementSpec.JoinNextDirection that
                                         * should be generated before
                                         * @param insertTag - the first tag to start inserting into document
                                         * @throws IOException - on any I/O error
                                    *************** public class HTMLEditorKit
                                    *** 1216,1233 ****
                                          ParserCallback pc = doc.getReader(offset, popDepth, pushDepth, insertTag);
                                      
                                          // FIXME: What should ignoreCharSet be set to?
                                    !     
                                          // parser.parse inserts html into the buffer
                                          parser.parse(new StringReader(html), pc, false);
                                          pc.flush();
                                        }
                                    !   
                                        /**
                                    !    * Inserts content from the given stream. Inserting HTML into a non-empty 
                                    !    * document must be inside the body Element, if you do not insert into 
                                    !    * the body an exception will be thrown. When inserting into a non-empty 
                                         * document all tags outside of the body (head, title) will be dropped.
                                    !    * 
                                         * @param in - the stream to read from
                                         * @param doc - the destination for the insertion
                                         * @param pos - the location in the document to place the content
                                    --- 1216,1233 ----
                                          ParserCallback pc = doc.getReader(offset, popDepth, pushDepth, insertTag);
                                      
                                          // FIXME: What should ignoreCharSet be set to?
                                    ! 
                                          // parser.parse inserts html into the buffer
                                          parser.parse(new StringReader(html), pc, false);
                                          pc.flush();
                                        }
                                    ! 
                                        /**
                                    !    * Inserts content from the given stream. Inserting HTML into a non-empty
                                    !    * document must be inside the body Element, if you do not insert into
                                    !    * the body an exception will be thrown. When inserting into a non-empty
                                         * document all tags outside of the body (head, title) will be dropped.
                                    !    *
                                         * @param in - the stream to read from
                                         * @param doc - the destination for the insertion
                                         * @param pos - the location in the document to place the content
                                    *************** public class HTMLEditorKit
                                    *** 1245,1258 ****
                                                throw new BadLocationException("Bad location", pos);
                                              if (parser == null)
                                                throw new IOException("Parser is null.");
                                    !         
                                              HTMLDocument hd = ((HTMLDocument) doc);
                                              if (editorPane != null)
                                                hd.setBase(editorPane.getPage());
                                              ParserCallback pc = hd.getReader(pos);
                                    !         
                                              // FIXME: What should ignoreCharSet be set to?
                                    !         
                                              // parser.parse inserts html into the buffer
                                              parser.parse(in, pc, false);
                                              pc.flush();
                                    --- 1245,1258 ----
                                                throw new BadLocationException("Bad location", pos);
                                              if (parser == null)
                                                throw new IOException("Parser is null.");
                                    ! 
                                              HTMLDocument hd = ((HTMLDocument) doc);
                                              if (editorPane != null)
                                                hd.setBase(editorPane.getPage());
                                              ParserCallback pc = hd.getReader(pos);
                                    ! 
                                              // FIXME: What should ignoreCharSet be set to?
                                    ! 
                                              // parser.parse inserts html into the buffer
                                              parser.parse(in, pc, false);
                                              pc.flush();
                                    *************** public class HTMLEditorKit
                                    *** 1262,1272 ****
                                            // the string is inserted in the document as usual.
                                            super.read(in, doc, pos);
                                        }
                                    !   
                                        /**
                                    !    * Writes content from a document to the given stream in 
                                         * an appropriate format.
                                    !    * 
                                         * @param out - the stream to write to
                                         * @param doc - the source for the write
                                         * @param pos - the location in the document to get the content.
                                    --- 1262,1272 ----
                                            // the string is inserted in the document as usual.
                                            super.read(in, doc, pos);
                                        }
                                    ! 
                                        /**
                                    !    * Writes content from a document to the given stream in
                                         * an appropriate format.
                                    !    *
                                         * @param out - the stream to write to
                                         * @param doc - the source for the write
                                         * @param pos - the location in the document to get the content.
                                    *************** public class HTMLEditorKit
                                    *** 1293,1313 ****
                                          else
                                            super.write(out, doc, pos, len);
                                        }
                                    !   
                                        /**
                                         * Gets the content type that the kit supports.
                                         * This kit supports the type text/html.
                                    !    * 
                                         * @returns the content type supported.
                                         */
                                        public String getContentType()
                                        {
                                          return contentType;
                                    !   } 
                                    !   
                                        /**
                                         * Creates a copy of the editor kit.
                                    !    * 
                                         * @return a copy of this.
                                         */
                                        public Object clone()
                                    --- 1293,1313 ----
                                          else
                                            super.write(out, doc, pos, len);
                                        }
                                    ! 
                                        /**
                                         * Gets the content type that the kit supports.
                                         * This kit supports the type text/html.
                                    !    *
                                         * @returns the content type supported.
                                         */
                                        public String getContentType()
                                        {
                                          return contentType;
                                    !   }
                                    ! 
                                        /**
                                         * Creates a copy of the editor kit.
                                    !    *
                                         * @return a copy of this.
                                         */
                                        public Object clone()
                                    *************** public class HTMLEditorKit
                                    *** 1317,1328 ****
                                          copy.linkController = new LinkController();
                                          return copy;
                                        }
                                    !   
                                        /**
                                    !    * Copies the key/values in elements AttributeSet into set. 
                                         * This does not copy component, icon, or element names attributes.
                                    !    * This is called anytime the caret moves over a different location. 
                                    !    * 
                                         * @param element - the element to create the input attributes for.
                                         * @param set - the set to copy the values into.
                                         */
                                    --- 1317,1328 ----
                                          copy.linkController = new LinkController();
                                          return copy;
                                        }
                                    ! 
                                        /**
                                    !    * Copies the key/values in elements AttributeSet into set.
                                         * This does not copy component, icon, or element names attributes.
                                    !    * This is called anytime the caret moves over a different location.
                                    !    *
                                         * @param element - the element to create the input attributes for.
                                         * @param set - the set to copy the values into.
                                         */
                                    *************** public class HTMLEditorKit
                                    *** 1333,1342 ****
                                          set.addAttributes(element.getAttributes());
                                          // FIXME: Not fully implemented.
                                        }
                                    !   
                                        /**
                                         * Called when this is installed into the JEditorPane.
                                    !    * 
                                         * @param c - the JEditorPane installed into.
                                         */
                                        public void install(JEditorPane c)
                                    --- 1333,1342 ----
                                          set.addAttributes(element.getAttributes());
                                          // FIXME: Not fully implemented.
                                        }
                                    ! 
                                        /**
                                         * Called when this is installed into the JEditorPane.
                                    !    *
                                         * @param c - the JEditorPane installed into.
                                         */
                                        public void install(JEditorPane c)
                                    *************** public class HTMLEditorKit
                                    *** 1346,1356 ****
                                          c.addMouseMotionListener(linkController);
                                          editorPane = c;
                                        }
                                    !   
                                        /**
                                         * Called when the this is removed from the JEditorPane.
                                         * It unregisters any listeners.
                                    !    * 
                                         * @param c - the JEditorPane being removed from.
                                         */
                                        public void deinstall(JEditorPane c)
                                    --- 1346,1356 ----
                                          c.addMouseMotionListener(linkController);
                                          editorPane = c;
                                        }
                                    ! 
                                        /**
                                         * Called when the this is removed from the JEditorPane.
                                         * It unregisters any listeners.
                                    !    *
                                         * @param c - the JEditorPane being removed from.
                                         */
                                        public void deinstall(JEditorPane c)
                                    *************** public class HTMLEditorKit
                                    *** 1360,1394 ****
                                          c.removeMouseMotionListener(linkController);
                                          editorPane = null;
                                        }
                                    !   
                                        /**
                                         * Gets the AccessibleContext associated with this.
                                    !    * 
                                         * @return the AccessibleContext for this.
                                         */
                                        public AccessibleContext getAccessibleContext()
                                        {
                                    !     // FIXME: Should return an instance of 
                                          // javax.swing.text.html.AccessibleHTML$RootHTMLAccessibleContext
                                          // Not implemented yet.
                                          return null;
                                        }
                                    !   
                                        /**
                                         * Gets the action list. This list is supported by the superclass
                                         * augmented by the collection of actions defined locally for style
                                         * operations.
                                    !    * 
                                         * @return an array of all the actions
                                         */
                                        public Action[] getActions()
                                        {
                                          return TextAction.augmentList(super.getActions(), defaultActions);
                                        }
                                    !   
                                        /**
                                         * Returns the default cursor.
                                    !    * 
                                         * @return the default cursor
                                         */
                                        public Cursor getDefaultCursor()
                                    --- 1360,1394 ----
                                          c.removeMouseMotionListener(linkController);
                                          editorPane = null;
                                        }
                                    ! 
                                        /**
                                         * Gets the AccessibleContext associated with this.
                                    !    *
                                         * @return the AccessibleContext for this.
                                         */
                                        public AccessibleContext getAccessibleContext()
                                        {
                                    !     // FIXME: Should return an instance of
                                          // javax.swing.text.html.AccessibleHTML$RootHTMLAccessibleContext
                                          // Not implemented yet.
                                          return null;
                                        }
                                    ! 
                                        /**
                                         * Gets the action list. This list is supported by the superclass
                                         * augmented by the collection of actions defined locally for style
                                         * operations.
                                    !    *
                                         * @return an array of all the actions
                                         */
                                        public Action[] getActions()
                                        {
                                          return TextAction.augmentList(super.getActions(), defaultActions);
                                        }
                                    ! 
                                        /**
                                         * Returns the default cursor.
                                    !    *
                                         * @return the default cursor
                                         */
                                        public Cursor getDefaultCursor()
                                    *************** public class HTMLEditorKit
                                    *** 1397,1406 ****
                                            defaultCursor = Cursor.getDefaultCursor();
                                          return defaultCursor;
                                        }
                                    !   
                                        /**
                                         * Returns the cursor for links.
                                    !    * 
                                         * @return the cursor for links.
                                         */
                                        public Cursor getLinkCursor()
                                    --- 1397,1406 ----
                                            defaultCursor = Cursor.getDefaultCursor();
                                          return defaultCursor;
                                        }
                                    ! 
                                        /**
                                         * Returns the cursor for links.
                                    !    *
                                         * @return the cursor for links.
                                         */
                                        public Cursor getLinkCursor()
                                    *************** public class HTMLEditorKit
                                    *** 1409,1450 ****
                                            linkCursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
                                          return linkCursor;
                                        }
                                    !   
                                        /**
                                         * Sets the Cursor for links.
                                    !    * 
                                         * @param cursor - the new cursor for links.
                                         */
                                        public void setLinkCursor(Cursor cursor)
                                        {
                                          linkCursor = cursor;
                                        }
                                    !   
                                        /**
                                         * Sets the default cursor.
                                    !    * 
                                         * @param cursor - the new default cursor.
                                         */
                                        public void setDefaultCursor(Cursor cursor)
                                        {
                                          defaultCursor = cursor;
                                        }
                                    !   
                                        /**
                                         * Gets the input attributes used for the styled editing actions.
                                    !    * 
                                         * @return the attribute set
                                         */
                                        public MutableAttributeSet getInputAttributes()
                                        {
                                          return inputAttributes;
                                        }
                                    !   
                                        /**
                                    !    * Get the set of styles currently being used to render the HTML elements. 
                                    !    * By default the resource specified by DEFAULT_CSS gets loaded, and is 
                                         * shared by all HTMLEditorKit instances.
                                    !    * 
                                         * @return the style sheet.
                                         */
                                        public StyleSheet getStyleSheet()
                                    --- 1409,1450 ----
                                            linkCursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
                                          return linkCursor;
                                        }
                                    ! 
                                        /**
                                         * Sets the Cursor for links.
                                    !    *
                                         * @param cursor - the new cursor for links.
                                         */
                                        public void setLinkCursor(Cursor cursor)
                                        {
                                          linkCursor = cursor;
                                        }
                                    ! 
                                        /**
                                         * Sets the default cursor.
                                    !    *
                                         * @param cursor - the new default cursor.
                                         */
                                        public void setDefaultCursor(Cursor cursor)
                                        {
                                          defaultCursor = cursor;
                                        }
                                    ! 
                                        /**
                                         * Gets the input attributes used for the styled editing actions.
                                    !    *
                                         * @return the attribute set
                                         */
                                        public MutableAttributeSet getInputAttributes()
                                        {
                                          return inputAttributes;
                                        }
                                    ! 
                                        /**
                                    !    * Get the set of styles currently being used to render the HTML elements.
                                    !    * By default the resource specified by DEFAULT_CSS gets loaded, and is
                                         * shared by all HTMLEditorKit instances.
                                    !    *
                                         * @return the style sheet.
                                         */
                                        public StyleSheet getStyleSheet()
                                    *************** public class HTMLEditorKit
                                    *** 1454,1460 ****
                                              try
                                                {
                                                  styleSheet = new StyleSheet();
                                    !             Class c = HTMLEditorKit.class;
                                                  InputStream in = c.getResourceAsStream(DEFAULT_CSS);
                                                  InputStreamReader r = new InputStreamReader(in);
                                                  styleSheet.loadRules(r,  null);
                                    --- 1454,1460 ----
                                              try
                                                {
                                                  styleSheet = new StyleSheet();
                                    !             Class c = HTMLEditorKit.class;
                                                  InputStream in = c.getResourceAsStream(DEFAULT_CSS);
                                                  InputStreamReader r = new InputStreamReader(in);
                                                  styleSheet.loadRules(r,  null);
                                    *************** public class HTMLEditorKit
                                    *** 1467,1480 ****
                                            }
                                          return styleSheet;
                                        }
                                    !   
                                        /**
                                    !    * Set the set of styles to be used to render the various HTML elements. 
                                    !    * These styles are specified in terms of CSS specifications. Each document 
                                    !    * produced by the kit will have a copy of the sheet which it can add the 
                                    !    * document specific styles to. By default, the StyleSheet specified is shared 
                                    !    * by all HTMLEditorKit instances. 
                                    !    * 
                                         * @param s - the new style sheet
                                         */
                                        public void setStyleSheet(StyleSheet s)
                                    --- 1467,1480 ----
                                            }
                                          return styleSheet;
                                        }
                                    ! 
                                        /**
                                    !    * Set the set of styles to be used to render the various HTML elements.
                                    !    * These styles are specified in terms of CSS specifications. Each document
                                    !    * produced by the kit will have a copy of the sheet which it can add the
                                    !    * document specific styles to. By default, the StyleSheet specified is shared
                                    !    * by all HTMLEditorKit instances.
                                    !    *
                                         * @param s - the new style sheet
                                         */
                                        public void setStyleSheet(StyleSheet s)
                                    *************** public class HTMLEditorKit
                                    *** 1505,1511 ****
                                      
                                        /**
                                         * Sets whether or not the editor kit should automatically submit forms.
                                    !    *  
                                         * @param auto true when the editor kit should handle form
                                         *        submission, false otherwise
                                         *
                                    --- 1505,1511 ----
                                      
                                        /**
                                         * Sets whether or not the editor kit should automatically submit forms.
                                    !    *
                                         * @param auto true when the editor kit should handle form
                                         *        submission, false otherwise
                                         *
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/HTMLWriter.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/HTMLWriter.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/HTMLWriter.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/HTMLWriter.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* HTMLWriter.java -- 
                                         Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* HTMLWriter.java --
                                         Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class HTMLWriter
                                    *** 76,93 ****
                                        /**
                                         * We keep a reference of the HTMLDocument passed by the construct.
                                         */
                                    !   private HTMLDocument htmlDoc = null; 
                                      
                                        /**
                                    !    * Used to keep track of which embeded has been written out.
                                         */
                                    !   private HashSet openEmbededTagHashSet = null;
                                      
                                        private String new_line_str = "" + NEWLINE;
                                    !     
                                        private char[] html_entity_char_arr = {'<',    '>',    '&',     '"'};
                                      
                                    !   private String[] html_entity_escape_str_arr = {"<", ">", "&", 
                                                                                       """};
                                      
                                        // variables used to output Html Fragment
                                    --- 76,93 ----
                                        /**
                                         * We keep a reference of the HTMLDocument passed by the construct.
                                         */
                                    !   private HTMLDocument htmlDoc = null;
                                      
                                        /**
                                    !    * Used to keep track of which embedded has been written out.
                                         */
                                    !   private HashSet openEmbeddedTagHashSet = null;
                                      
                                        private String new_line_str = "" + NEWLINE;
                                    ! 
                                        private char[] html_entity_char_arr = {'<',    '>',    '&',     '"'};
                                      
                                    !   private String[] html_entity_escape_str_arr = {"<", ">", "&",
                                                                                       """};
                                      
                                        // variables used to output Html Fragment
                                    *************** public class HTMLWriter
                                    *** 95,101 ****
                                        private int doc_len = -1;
                                        private int doc_offset_remaining = -1;
                                        private int doc_len_remaining = -1;
                                    !   private HashSet htmlFragmentParentHashSet = null;
                                        private Element startElem = null;
                                        private Element endElem = null;
                                        private boolean fg_pass_start_elem = false;
                                    --- 95,101 ----
                                        private int doc_len = -1;
                                        private int doc_offset_remaining = -1;
                                        private int doc_len_remaining = -1;
                                    !   private HashSet htmlFragmentParentHashSet = null;
                                        private Element startElem = null;
                                        private Element endElem = null;
                                        private boolean fg_pass_start_elem = false;
                                    *************** public class HTMLWriter
                                    *** 112,118 ****
                                          super(writer, doc);
                                          outWriter = writer;
                                          htmlDoc = doc;
                                    !     openEmbededTagHashSet = new HashSet();
                                        } // public HTMLWriter(Writer writer, HTMLDocument doc)
                                      
                                        /**
                                    --- 112,118 ----
                                          super(writer, doc);
                                          outWriter = writer;
                                          htmlDoc = doc;
                                    !     openEmbeddedTagHashSet = new HashSet();
                                        } // public HTMLWriter(Writer writer, HTMLDocument doc)
                                      
                                        /**
                                    *************** public class HTMLWriter
                                    *** 129,143 ****
                                          super(writer, doc, pos, len);
                                          outWriter = writer;
                                          htmlDoc = doc;
                                    !     openEmbededTagHashSet = new HashSet();
                                      
                                          doc_pos = pos;
                                          doc_offset_remaining = pos;
                                          doc_len = len;
                                          doc_len_remaining = len;
                                    !     htmlFragmentParentHashSet = new HashSet();
                                        } // public HTMLWriter(Writer writer, HTMLDocument doc, int pos, int len)
                                    !     
                                        /**
                                         * Call this method to start outputing HTML.
                                         *
                                    --- 129,143 ----
                                          super(writer, doc, pos, len);
                                          outWriter = writer;
                                          htmlDoc = doc;
                                    !     openEmbeddedTagHashSet = new HashSet();
                                      
                                          doc_pos = pos;
                                          doc_offset_remaining = pos;
                                          doc_len = len;
                                          doc_len_remaining = len;
                                    !     htmlFragmentParentHashSet = new HashSet();
                                        } // public HTMLWriter(Writer writer, HTMLDocument doc, int pos, int len)
                                    ! 
                                        /**
                                         * Call this method to start outputing HTML.
                                         *
                                    *************** public class HTMLWriter
                                    *** 155,161 ****
                                              // Normal traversal.
                                              traverse(rootElem);
                                            } // if(doc_pos == -1 && doc_len == -1)
                                    !     else    
                                            {
                                              // Html fragment traversal.
                                              if (doc_pos == -1 || doc_len == -1)
                                    --- 155,161 ----
                                              // Normal traversal.
                                              traverse(rootElem);
                                            } // if(doc_pos == -1 && doc_len == -1)
                                    !     else
                                            {
                                              // Html fragment traversal.
                                              if (doc_pos == -1 || doc_len == -1)
                                    *************** public class HTMLWriter
                                    *** 164,170 ****
                                      
                                              startElem = htmlDoc.getCharacterElement(doc_pos);
                                      
                                    !         int start_offset = startElem.getStartOffset(); 
                                      
                                              // Positions before start_offset will not be traversed, and thus
                                              // will not be counted.
                                    --- 164,170 ----
                                      
                                              startElem = htmlDoc.getCharacterElement(doc_pos);
                                      
                                    !         int start_offset = startElem.getStartOffset();
                                      
                                              // Positions before start_offset will not be traversed, and thus
                                              // will not be counted.
                                    *************** public class HTMLWriter
                                    *** 197,203 ****
                                            } // else
                                      
                                          // NOTE: close out remaining open embeded tags.
                                    !     Object[] tag_arr = openEmbededTagHashSet.toArray();
                                      
                                          for (int i = 0; i < tag_arr.length; i++)
                                            {
                                    --- 197,204 ----
                                            } // else
                                      
                                          // NOTE: close out remaining open embeded tags.
                                    !     HTML.Tag[] tag_arr =
                                    !       openEmbeddedTagHashSet.toArray(new HTML.Tag[openEmbeddedTagHashSet.size()]);
                                      
                                          for (int i = 0; i < tag_arr.length; i++)
                                            {
                                    *************** public class HTMLWriter
                                    *** 205,211 ****
                                            } // for(int i = 0; i < tag_arr.length; i++)
                                      
                                        } // public void write() throws IOException, BadLocationException
                                    !   
                                        /**
                                         * Writes all the attributes in the attrSet, except for attrbutes with
                                         * keys of javax.swing.text.html.HTML.Tag,
                                    --- 206,212 ----
                                            } // for(int i = 0; i < tag_arr.length; i++)
                                      
                                        } // public void write() throws IOException, BadLocationException
                                    ! 
                                        /**
                                         * Writes all the attributes in the attrSet, except for attrbutes with
                                         * keys of javax.swing.text.html.HTML.Tag,
                                    *************** public class HTMLWriter
                                    *** 219,231 ****
                                        protected void writeAttributes(AttributeSet attrSet)
                                          throws IOException
                                        {
                                    !     Enumeration attrNameEnum = attrSet.getAttributeNames();
                                    !         
                                          while (attrNameEnum.hasMoreElements())
                                            {
                                              Object key = attrNameEnum.nextElement();
                                              Object value = attrSet.getAttribute(key);
                                    !             
                                              // HTML.Attribute.ENDTAG is an instance, not a class.
                                              if (!((key instanceof HTML.Tag) || (key instanceof StyleConstants)
                                                || (key == HTML.Attribute.ENDTAG)))
                                    --- 220,232 ----
                                        protected void writeAttributes(AttributeSet attrSet)
                                          throws IOException
                                        {
                                    !     Enumeration attrNameEnum = attrSet.getAttributeNames();
                                    ! 
                                          while (attrNameEnum.hasMoreElements())
                                            {
                                              Object key = attrNameEnum.nextElement();
                                              Object value = attrSet.getAttribute(key);
                                    ! 
                                              // HTML.Attribute.ENDTAG is an instance, not a class.
                                              if (!((key instanceof HTML.Tag) || (key instanceof StyleConstants)
                                                || (key == HTML.Attribute.ENDTAG)))
                                    *************** public class HTMLWriter
                                    *** 239,245 ****
                                                } // if(!((key instanceof HTML.Tag) || (key instanceof
                                                  //   StyleConstants) || (key == HTML.Attribute.ENDTAG)))
                                            } // while(attrNameEnum.hasMoreElements())
                                    !         
                                        } // protected void writeAttributes(AttributeSet attrSet) throws IOException
                                      
                                        /**
                                    --- 240,246 ----
                                                } // if(!((key instanceof HTML.Tag) || (key instanceof
                                                  //   StyleConstants) || (key == HTML.Attribute.ENDTAG)))
                                            } // while(attrNameEnum.hasMoreElements())
                                    ! 
                                        } // protected void writeAttributes(AttributeSet attrSet) throws IOException
                                      
                                        /**
                                    *************** public class HTMLWriter
                                    *** 265,274 ****
                                            {
                                              writeRaw("");
                                            } // if(isBlockTag(attrSet))
                                    !         
                                        } // protected void emptyTag(Element paramElem)
                                          //   throws IOException, BadLocationException
                                    !     
                                        /**
                                         * Determines if it is a block tag or not.
                                         *
                                    --- 266,275 ----
                                            {
                                              writeRaw("");
                                            } // if(isBlockTag(attrSet))
                                    ! 
                                        } // protected void emptyTag(Element paramElem)
                                          //   throws IOException, BadLocationException
                                    ! 
                                        /**
                                         * Determines if it is a block tag or not.
                                         *
                                    *************** public class HTMLWriter
                                    *** 325,331 ****
                                          writeAttributes(attrSet);
                                          writeRaw(">");
                                      
                                    !     Document tempDocument = 
                                            (Document) attrSet.getAttribute(StyleConstants.ModelAttribute);
                                      
                                          writeRaw(tempDocument.getText(0, tempDocument.getLength()));
                                    --- 326,332 ----
                                          writeAttributes(attrSet);
                                          writeRaw(">");
                                      
                                    !     Document tempDocument =
                                            (Document) attrSet.getAttribute(StyleConstants.ModelAttribute);
                                      
                                          writeRaw(tempDocument.getText(0, tempDocument.getLength()));
                                    *************** public class HTMLWriter
                                    *** 502,508 ****
                                        protected void writeEmbeddedTags(AttributeSet attrSet)
                                          throws IOException
                                        {
                                    !     Enumeration attrNameEnum = attrSet.getAttributeNames();
                                      
                                          while (attrNameEnum.hasMoreElements())
                                            {
                                    --- 503,509 ----
                                        protected void writeEmbeddedTags(AttributeSet attrSet)
                                          throws IOException
                                        {
                                    !     Enumeration attrNameEnum = attrSet.getAttributeNames();
                                      
                                          while (attrNameEnum.hasMoreElements())
                                            {
                                    *************** public class HTMLWriter
                                    *** 511,522 ****
                                      
                                              if (key instanceof HTML.Tag)
                                                {
                                    !             if (!openEmbededTagHashSet.contains(key))
                                                    {
                                                      writeRaw("<" + key);
                                                      writeAttributes((AttributeSet) value);
                                                      writeRaw(">");
                                    !                 openEmbededTagHashSet.add(key);
                                                    } // if(!openEmbededTagHashSet.contains(key))
                                                } // if(key instanceof HTML.Tag)
                                            } // while(attrNameEnum.hasMoreElements())
                                    --- 512,523 ----
                                      
                                              if (key instanceof HTML.Tag)
                                                {
                                    !             if (!openEmbeddedTagHashSet.contains(key))
                                                    {
                                                      writeRaw("<" + key);
                                                      writeAttributes((AttributeSet) value);
                                                      writeRaw(">");
                                    !                 openEmbeddedTagHashSet.add((HTML.Tag) key);
                                                    } // if(!openEmbededTagHashSet.contains(key))
                                                } // if(key instanceof HTML.Tag)
                                            } // while(attrNameEnum.hasMoreElements())
                                    *************** public class HTMLWriter
                                    *** 527,550 ****
                                        /**
                                         * Closes out an unwanted embedded tag. The tags from the
                                         *  openEmbededTagHashSet not found in attrSet will be written out.
                                    !    * 
                                         *  @param attrSet the AttributeSet of the element to write out
                                    !    * 
                                         *  @throws IOException on any I/O exceptions
                                         */
                                        protected void closeOutUnwantedEmbeddedTags(AttributeSet attrSet)
                                          throws IOException
                                        {
                                    !     Object[] tag_arr = openEmbededTagHashSet.toArray();
                                      
                                          for (int i = 0; i < tag_arr.length; i++)
                                            {
                                    !         HTML.Tag key = (HTML.Tag) tag_arr[i];
                                    !             
                                              if (!attrSet.isDefined(key))
                                                {
                                                  writeRaw("");
                                    !             openEmbededTagHashSet.remove(key);
                                                } // if(!attrSet.isDefined(key))
                                            } // for(int i = 0; i < tag_arr.length; i++)
                                      
                                    --- 528,552 ----
                                        /**
                                         * Closes out an unwanted embedded tag. The tags from the
                                         *  openEmbededTagHashSet not found in attrSet will be written out.
                                    !    *
                                         *  @param attrSet the AttributeSet of the element to write out
                                    !    *
                                         *  @throws IOException on any I/O exceptions
                                         */
                                        protected void closeOutUnwantedEmbeddedTags(AttributeSet attrSet)
                                          throws IOException
                                        {
                                    !     HTML.Tag[] tag_arr =
                                    !       openEmbeddedTagHashSet.toArray(new HTML.Tag[openEmbeddedTagHashSet.size()]);
                                      
                                          for (int i = 0; i < tag_arr.length; i++)
                                            {
                                    !         HTML.Tag key = tag_arr[i];
                                    ! 
                                              if (!attrSet.isDefined(key))
                                                {
                                                  writeRaw("");
                                    !             openEmbeddedTagHashSet.remove(key);
                                                } // if(!attrSet.isDefined(key))
                                            } // for(int i = 0; i < tag_arr.length; i++)
                                      
                                    *************** public class HTMLWriter
                                    *** 590,599 ****
                                      
                                        } // protected void output(char[] chars, int off, int len)
                                          //   throws IOException
                                    !  
                                        //-------------------------------------------------------------------------
                                        // private methods
                                    !   
                                        /**
                                         * The main method used to traverse through the elements.
                                         *
                                    --- 592,601 ----
                                      
                                        } // protected void output(char[] chars, int off, int len)
                                          //   throws IOException
                                    ! 
                                        //-------------------------------------------------------------------------
                                        // private methods
                                    ! 
                                        /**
                                         * The main method used to traverse through the elements.
                                         *
                                    *************** public class HTMLWriter
                                    *** 625,631 ****
                                              else if (matchNameAttribute(attrSet, HTML.Tag.IMPLIED))
                                                {
                                                  int child_elem_count = currElem.getElementCount();
                                    !                 
                                                  if (child_elem_count > 0)
                                                    {
                                                      for (int i = 0; i < child_elem_count; i++)
                                    --- 627,633 ----
                                              else if (matchNameAttribute(attrSet, HTML.Tag.IMPLIED))
                                                {
                                                  int child_elem_count = currElem.getElementCount();
                                    ! 
                                                  if (child_elem_count > 0)
                                                    {
                                                      for (int i = 0; i < child_elem_count; i++)
                                    *************** public class HTMLWriter
                                    *** 645,651 ****
                                              if (matchNameAttribute(attrSet, HTML.Tag.TITLE))
                                                {
                                                  boolean fg_is_end_tag = false;
                                    !             Enumeration attrNameEnum = attrSet.getAttributeNames();
                                      
                                                  while (attrNameEnum.hasMoreElements())
                                                    {
                                    --- 647,653 ----
                                              if (matchNameAttribute(attrSet, HTML.Tag.TITLE))
                                                {
                                                  boolean fg_is_end_tag = false;
                                    !             Enumeration attrNameEnum = attrSet.getAttributeNames();
                                      
                                                  while (attrNameEnum.hasMoreElements())
                                                    {
                                    *************** public class HTMLWriter
                                    *** 663,669 ****
                                                      indent();
                                                      writeRaw("");
                                      
                                    !                 String title_str = 
                                                        (String) htmlDoc.getProperty(HTMLDocument.TitleProperty);
                                      
                                                      if (title_str != null)
                                    --- 665,671 ----
                                                      indent();
                                                      writeRaw("<title>");
                                      
                                    !                 String title_str =
                                                        (String) htmlDoc.getProperty(HTMLDocument.TitleProperty);
                                      
                                                      if (title_str != null)
                                    *************** public class HTMLWriter
                                    *** 724,730 ****
                                                  else
                                                    {
                                                      emptyTag(currElem);
                                    !               } // else 
                                                  } // else
                                                } // else
                                      
                                    --- 726,732 ----
                                                  else
                                                    {
                                                      emptyTag(currElem);
                                    !               } // else
                                                  } // else
                                                } // else
                                      
                                    *************** public class HTMLWriter
                                    *** 840,846 ****
                                                  } // else if(matchNameAttribute(attrSet, HTML.Tag.IMPLIED))
                                              } // if(synthesizedElement(paramElem))
                                            else
                                    !         { 
                                                  // NOTE: 20061030 - fchoong - the isLeaf() condition seems to
                                                  // generate the closest behavior to the RI.
                                                  if (paramElem.isLeaf())
                                    --- 842,848 ----
                                                  } // else if(matchNameAttribute(attrSet, HTML.Tag.IMPLIED))
                                              } // if(synthesizedElement(paramElem))
                                            else
                                    !         {
                                                  // NOTE: 20061030 - fchoong - the isLeaf() condition seems to
                                                  // generate the closest behavior to the RI.
                                                  if (paramElem.isLeaf())
                                    *************** public class HTMLWriter
                                    *** 860,866 ****
                                                if (matchNameAttribute(attrSet, HTML.Tag.TITLE))
                                                  {
                                                    boolean fg_is_end_tag = false;
                                    !               Enumeration attrNameEnum = attrSet.getAttributeNames();
                                      
                                                    while (attrNameEnum.hasMoreElements())
                                                      {
                                    --- 862,868 ----
                                                if (matchNameAttribute(attrSet, HTML.Tag.TITLE))
                                                  {
                                                    boolean fg_is_end_tag = false;
                                    !               Enumeration<?> attrNameEnum = attrSet.getAttributeNames();
                                      
                                                    while (attrNameEnum.hasMoreElements())
                                                      {
                                    *************** public class HTMLWriter
                                    *** 878,884 ****
                                                        indent();
                                                        writeRaw("<title>");
                                      
                                    !                   String title_str = 
                                                          (String) htmlDoc.getProperty(HTMLDocument.TitleProperty);
                                      
                                                        if (title_str != null)
                                    --- 880,886 ----
                                                        indent();
                                                        writeRaw("<title>");
                                      
                                    !                   String title_str =
                                                          (String) htmlDoc.getProperty(HTMLDocument.TitleProperty);
                                      
                                                        if (title_str != null)
                                    *************** public class HTMLWriter
                                    *** 939,945 ****
                                                    else
                                                      {
                                                        emptyTag(currElem);
                                    !                 } // else 
                                                  } // else
                                              } // else
                                      
                                    --- 941,947 ----
                                                    else
                                                      {
                                                        emptyTag(currElem);
                                    !                 } // else
                                                  } // else
                                              } // else
                                      
                                    *************** public class HTMLWriter
                                    *** 996,1002 ****
                                        private void writeAllAttributes(AttributeSet attrSet)
                                          throws IOException
                                        {
                                    !     Enumeration attrNameEnum = attrSet.getAttributeNames();
                                      
                                          while (attrNameEnum.hasMoreElements())
                                            {
                                    --- 998,1004 ----
                                        private void writeAllAttributes(AttributeSet attrSet)
                                          throws IOException
                                        {
                                    !     Enumeration<?> attrNameEnum = attrSet.getAttributeNames();
                                      
                                          while (attrNameEnum.hasMoreElements())
                                            {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/ImageView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/ImageView.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/ImageView.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/ImageView.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.text.html.HTML.Attrib
                                    *** 26,33 ****
                                      
                                      /**
                                       * A view, representing a single image, represented by the HTML IMG tag.
                                    !  * 
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) 
                                       */
                                      public class ImageView extends View
                                      {
                                    --- 26,33 ----
                                      
                                      /**
                                       * A view, representing a single image, represented by the HTML IMG tag.
                                    !  *
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public class ImageView extends View
                                      {
                                    *************** public class ImageView extends View
                                    *** 51,57 ****
                                            boolean ret = (flags & ALLBITS) != 0;
                                            return ret;
                                          }
                                    !     
                                        }
                                      
                                        /**
                                    --- 51,57 ----
                                            boolean ret = (flags & ALLBITS) != 0;
                                            return ret;
                                          }
                                    ! 
                                        }
                                      
                                        /**
                                    *************** public class ImageView extends View
                                    *** 64,70 ****
                                         * The image icon, wrapping the image,
                                         */
                                        Image image;
                                    !  
                                        /**
                                         * The image state.
                                         */
                                    --- 64,70 ----
                                         * The image icon, wrapping the image,
                                         */
                                        Image image;
                                    ! 
                                        /**
                                         * The image state.
                                         */
                                    *************** public class ImageView extends View
                                    *** 124,130 ****
                                      
                                        /**
                                         * Creates the image view that represents the given element.
                                    !    * 
                                         * @param element the element, represented by this image view.
                                         */
                                        public ImageView(Element element)
                                    --- 124,130 ----
                                      
                                        /**
                                         * Creates the image view that represents the given element.
                                    !    *
                                         * @param element the element, represented by this image view.
                                         */
                                        public ImageView(Element element)
                                    *************** public class ImageView extends View
                                    *** 136,142 ****
                                          reloadImage = true;
                                          loadOnDemand = false;
                                        }
                                    !  
                                        /**
                                         * Load or reload the image. This method initiates the image reloading. After
                                         * the image is ready, the repaint event will be scheduled. The current image,
                                    --- 136,142 ----
                                          reloadImage = true;
                                          loadOnDemand = false;
                                        }
                                    ! 
                                        /**
                                         * Load or reload the image. This method initiates the image reloading. After
                                         * the image is ready, the repaint event will be scheduled. The current image,
                                    *************** public class ImageView extends View
                                    *** 161,173 ****
                                              loading = false;
                                            }
                                        }
                                    !   
                                        /**
                                         * Get the image alignment. This method works handling standart alignment
                                         * attributes in the HTML IMG tag (align = top bottom middle left right).
                                         * Depending from the parameter, either horizontal or vertical alingment
                                         * information is returned.
                                    !    * 
                                         * @param axis -
                                         *          either X_AXIS or Y_AXIS
                                         */
                                    --- 161,173 ----
                                              loading = false;
                                            }
                                        }
                                    ! 
                                        /**
                                         * Get the image alignment. This method works handling standart alignment
                                         * attributes in the HTML IMG tag (align = top bottom middle left right).
                                         * Depending from the parameter, either horizontal or vertical alingment
                                         * information is returned.
                                    !    *
                                         * @param axis -
                                         *          either X_AXIS or Y_AXIS
                                         */
                                    *************** public class ImageView extends View
                                    *** 175,181 ****
                                        {
                                          AttributeSet attrs = getAttributes();
                                          Object al = attrs.getAttribute(Attribute.ALIGN);
                                    !     
                                          // Default is top left aligned.
                                          if (al == null)
                                            return 0.0f;
                                    --- 175,181 ----
                                        {
                                          AttributeSet attrs = getAttributes();
                                          Object al = attrs.getAttribute(Attribute.ALIGN);
                                    ! 
                                          // Default is top left aligned.
                                          if (al == null)
                                            return 0.0f;
                                    *************** public class ImageView extends View
                                    *** 207,213 ****
                                          else
                                            throw new IllegalArgumentException("axis " + axis);
                                        }
                                    !   
                                        /**
                                         * Get the text that should be shown as the image replacement and also as the
                                         * image tool tip text. The method returns the value of the attribute, having
                                    --- 207,213 ----
                                          else
                                            throw new IllegalArgumentException("axis " + axis);
                                        }
                                    ! 
                                        /**
                                         * Get the text that should be shown as the image replacement and also as the
                                         * image tool tip text. The method returns the value of the attribute, having
                                    *************** public class ImageView extends View
                                    *** 229,235 ****
                                                return u.getFile();
                                            }
                                        }
                                    !   
                                        /**
                                         * Returns the combination of the document and the style sheet attributes.
                                         */
                                    --- 229,235 ----
                                                return u.getFile();
                                            }
                                        }
                                    ! 
                                        /**
                                         * Returns the combination of the document and the style sheet attributes.
                                         */
                                    *************** public class ImageView extends View
                                    *** 239,245 ****
                                            attributes = getStyleSheet().getViewAttributes(this);
                                          return attributes;
                                        }
                                    !   
                                        /**
                                         * Get the image to render. May return null if the image is not yet loaded.
                                         */
                                    --- 239,245 ----
                                            attributes = getStyleSheet().getViewAttributes(this);
                                          return attributes;
                                        }
                                    ! 
                                        /**
                                         * Get the image to render. May return null if the image is not yet loaded.
                                         */
                                    *************** public class ImageView extends View
                                    *** 248,260 ****
                                          updateState();
                                          return image;
                                        }
                                    !   
                                        /**
                                         * Get the URL location of the image to render. If this method returns null,
                                         * the "no image" icon is rendered instead. By defaul, url must be present as
                                         * the "src" property of the IMG tag. If it is missing, null is returned and
                                         * the "no image" icon is rendered.
                                    !    * 
                                         * @return the URL location of the image to render.
                                         */
                                        public URL getImageURL()
                                    --- 248,260 ----
                                          updateState();
                                          return image;
                                        }
                                    ! 
                                        /**
                                         * Get the URL location of the image to render. If this method returns null,
                                         * the "no image" icon is rendered instead. By defaul, url must be present as
                                         * the "src" property of the IMG tag. If it is missing, null is returned and
                                         * the "no image" icon is rendered.
                                    !    *
                                         * @return the URL location of the image to render.
                                         */
                                        public URL getImageURL()
                                    *************** public class ImageView extends View
                                    *** 280,296 ****
                                        /**
                                         * Get the icon that should be displayed while the image is loading and hence
                                         * not yet available.
                                    !    * 
                                         * @return an icon, showing a non broken sheet of paper with image.
                                         */
                                        public Icon getLoadingImageIcon()
                                        {
                                          return ImageViewIconFactory.getLoadingImageIcon();
                                        }
                                    !   
                                        /**
                                         * Get the image loading strategy.
                                    !    * 
                                         * @return false (default) if the image is loaded when the view is
                                         *         constructed, true if the image is only loaded on demand when
                                         *         rendering.
                                    --- 280,296 ----
                                        /**
                                         * Get the icon that should be displayed while the image is loading and hence
                                         * not yet available.
                                    !    *
                                         * @return an icon, showing a non broken sheet of paper with image.
                                         */
                                        public Icon getLoadingImageIcon()
                                        {
                                          return ImageViewIconFactory.getLoadingImageIcon();
                                        }
                                    ! 
                                        /**
                                         * Get the image loading strategy.
                                    !    *
                                         * @return false (default) if the image is loaded when the view is
                                         *         constructed, true if the image is only loaded on demand when
                                         *         rendering.
                                    *************** public class ImageView extends View
                                    *** 302,330 ****
                                      
                                        /**
                                         * Get the icon that should be displayed when the image is not available.
                                    !    * 
                                         * @return an icon, showing a broken sheet of paper with image.
                                         */
                                        public Icon getNoImageIcon()
                                        {
                                          return ImageViewIconFactory.getNoImageIcon();
                                        }
                                    !   
                                        /**
                                         * Get the preferred span of the image along the axis. The image size is first
                                         * requested to the attributes {@link Attribute#WIDTH} and
                                         * {@link Attribute#HEIGHT}. If they are missing, and the image is already
                                         * loaded, the image size is returned. If there are no attributes, and the
                                         * image is not loaded, zero is returned.
                                    !    * 
                                         * @param axis -
                                         *          either X_AXIS or Y_AXIS
                                         * @return either width of height of the image, depending on the axis.
                                         */
                                        public float getPreferredSpan(int axis)
                                        {
                                    -     AttributeSet attrs = getAttributes();
                                    -     
                                          Image image = getImage();
                                      
                                          if (axis == View.X_AXIS)
                                    --- 302,328 ----
                                      
                                        /**
                                         * Get the icon that should be displayed when the image is not available.
                                    !    *
                                         * @return an icon, showing a broken sheet of paper with image.
                                         */
                                        public Icon getNoImageIcon()
                                        {
                                          return ImageViewIconFactory.getNoImageIcon();
                                        }
                                    ! 
                                        /**
                                         * Get the preferred span of the image along the axis. The image size is first
                                         * requested to the attributes {@link Attribute#WIDTH} and
                                         * {@link Attribute#HEIGHT}. If they are missing, and the image is already
                                         * loaded, the image size is returned. If there are no attributes, and the
                                         * image is not loaded, zero is returned.
                                    !    *
                                         * @param axis -
                                         *          either X_AXIS or Y_AXIS
                                         * @return either width of height of the image, depending on the axis.
                                         */
                                        public float getPreferredSpan(int axis)
                                        {
                                          Image image = getImage();
                                      
                                          if (axis == View.X_AXIS)
                                    *************** public class ImageView extends View
                                    *** 348,357 ****
                                          else
                                            throw new IllegalArgumentException("axis " + axis);
                                        }
                                    !   
                                        /**
                                         * Get the associated style sheet from the document.
                                    !    * 
                                         * @return the associated style sheet.
                                         */
                                        protected StyleSheet getStyleSheet()
                                    --- 346,355 ----
                                          else
                                            throw new IllegalArgumentException("axis " + axis);
                                        }
                                    ! 
                                        /**
                                         * Get the associated style sheet from the document.
                                    !    *
                                         * @return the associated style sheet.
                                         */
                                        protected StyleSheet getStyleSheet()
                                    *************** public class ImageView extends View
                                    *** 363,369 ****
                                        /**
                                         * Get the tool tip text. This is overridden to return the value of the
                                         * {@link #getAltText()}. The parameters are ignored.
                                    !    * 
                                         * @return that is returned by getAltText().
                                         */
                                        public String getToolTipText(float x, float y, Shape shape)
                                    --- 361,367 ----
                                        /**
                                         * Get the tool tip text. This is overridden to return the value of the
                                         * {@link #getAltText()}. The parameters are ignored.
                                    !    *
                                         * @return that is returned by getAltText().
                                         */
                                        public String getToolTipText(float x, float y, Shape shape)
                                    *************** public class ImageView extends View
                                    *** 375,381 ****
                                         * Paints the image or one of the two image state icons. The image is resized
                                         * to the shape bounds. If there is no image available, the alternative text
                                         * is displayed besides the image state icon.
                                    !    * 
                                         * @param g
                                         *          the Graphics, used for painting.
                                         * @param bounds
                                    --- 373,379 ----
                                         * Paints the image or one of the two image state icons. The image is resized
                                         * to the shape bounds. If there is no image available, the alternative text
                                         * is displayed besides the image state icon.
                                    !    *
                                         * @param g
                                         *          the Graphics, used for painting.
                                         * @param bounds
                                    *************** public class ImageView extends View
                                    *** 409,415 ****
                                        {
                                          loadOnDemand = load_on_demand;
                                        }
                                    !  
                                        /**
                                         * Update all cached properties from the attribute set, returned by the
                                         * {@link #getAttributes}.
                                    --- 407,413 ----
                                        {
                                          loadOnDemand = load_on_demand;
                                        }
                                    ! 
                                        /**
                                         * Update all cached properties from the attribute set, returned by the
                                         * {@link #getAttributes}.
                                    *************** public class ImageView extends View
                                    *** 431,437 ****
                                              spans[Y_AXIS].setFontBases(emBase, exBase);
                                            }
                                        }
                                    !   
                                        /**
                                         * Maps the picture co-ordinates into the image position in the model. As the
                                         * image is not divideable, this is currently implemented always to return the
                                    --- 429,435 ----
                                              spans[Y_AXIS].setFontBases(emBase, exBase);
                                            }
                                        }
                                    ! 
                                        /**
                                         * Maps the picture co-ordinates into the image position in the model. As the
                                         * image is not divideable, this is currently implemented always to return the
                                    *************** public class ImageView extends View
                                    *** 441,455 ****
                                        {
                                          return getStartOffset();
                                        }
                                    !   
                                        /**
                                         * This is currently implemented always to return the area of the image view,
                                         * as the image is not divideable by character positions.
                                    !    * 
                                         * @param pos character position
                                         * @param area of the image view
                                         * @param bias bias
                                    !    * 
                                         * @return the shape, where the given character position should be mapped.
                                         */
                                        public Shape modelToView(int pos, Shape area, Bias bias)
                                    --- 439,453 ----
                                        {
                                          return getStartOffset();
                                        }
                                    ! 
                                        /**
                                         * This is currently implemented always to return the area of the image view,
                                         * as the image is not divideable by character positions.
                                    !    *
                                         * @param pos character position
                                         * @param area of the image view
                                         * @param bias bias
                                    !    *
                                         * @return the shape, where the given character position should be mapped.
                                         */
                                        public Shape modelToView(int pos, Shape area, Bias bias)
                                    *************** public class ImageView extends View
                                    *** 457,463 ****
                                        {
                                          return area;
                                        }
                                    !   
                                        /**
                                         * Starts loading the image asynchronuosly. If the image must be loaded
                                         * synchronuosly instead, the {@link #setLoadsSynchronously} must be
                                    --- 455,461 ----
                                        {
                                          return area;
                                        }
                                    ! 
                                        /**
                                         * Starts loading the image asynchronuosly. If the image must be loaded
                                         * synchronuosly instead, the {@link #setLoadsSynchronously} must be
                                    *************** public class ImageView extends View
                                    *** 467,473 ****
                                        {
                                          updateState();
                                          // TODO: Implement this when we have an alt view for the alt=... attribute.
                                    !   }  
                                      
                                        /**
                                         * This makes sure that the image and properties have been loaded.
                                    --- 465,471 ----
                                        {
                                          updateState();
                                          // TODO: Implement this when we have an alt view for the alt=... attribute.
                                    !   }
                                      
                                        /**
                                         * This makes sure that the image and properties have been loaded.
                                    *************** public class ImageView extends View
                                    *** 506,512 ****
                                                    {
                                                      Thread.interrupted();
                                                    }
                                    !             
                                                }
                                            }
                                          image = newImage;
                                    --- 504,510 ----
                                                    {
                                                      Thread.interrupted();
                                                    }
                                    ! 
                                                }
                                            }
                                          image = newImage;
                                    *************** public class ImageView extends View
                                    *** 522,528 ****
                                          Image newIm = getImage();
                                          if (newIm != null)
                                            {
                                    -         AttributeSet atts = getAttributes();
                                              // Fetch width.
                                              Length l = spans[X_AXIS];
                                              if (l != null)
                                    --- 520,525 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/InlineView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/InlineView.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/InlineView.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/InlineView.java	Tue Jan 11 19:46:05 2011
                                    *************** public class InlineView
                                    *** 158,164 ****
                                          return attributes;
                                        }
                                      
                                    !   
                                        public int getBreakWeight(int axis, float pos, float len)
                                        {
                                          int weight;
                                    --- 158,164 ----
                                          return attributes;
                                        }
                                      
                                    ! 
                                        public int getBreakWeight(int axis, float pos, float len)
                                        {
                                          int weight;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/ListView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/ListView.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/ListView.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/ListView.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* ListView.java -- 
                                         Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* ListView.java --
                                         Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* MinimalHTMLWriter.java -- 
                                         Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* MinimalHTMLWriter.java --
                                         Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** import javax.swing.text.Style;
                                    *** 48,55 ****
                                      import javax.swing.text.StyledDocument;
                                      import java.io.Writer;
                                      import java.io.IOException;
                                      import java.util.Enumeration;
                                    - import java.util.Stack;
                                      import java.awt.Color;
                                      
                                      /**
                                    --- 48,56 ----
                                      import javax.swing.text.StyledDocument;
                                      import java.io.Writer;
                                      import java.io.IOException;
                                    + import java.util.ArrayDeque;
                                    + import java.util.Deque;
                                      import java.util.Enumeration;
                                      import java.awt.Color;
                                      
                                      /**
                                    *************** import java.awt.Color;
                                    *** 58,67 ****
                                       *
                                       * @author Sven de Marothy
                                       */
                                    ! public class MinimalHTMLWriter extends AbstractWriter 
                                      {
                                        private StyledDocument doc;
                                    !   private Stack tagStack;
                                        private boolean inFontTag = false;
                                      
                                        /**
                                    --- 59,68 ----
                                       *
                                       * @author Sven de Marothy
                                       */
                                    ! public class MinimalHTMLWriter extends AbstractWriter
                                      {
                                        private StyledDocument doc;
                                    !   private Deque<String> tagStack;
                                        private boolean inFontTag = false;
                                      
                                        /**
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 73,79 ****
                                        {
                                          super(w, doc);
                                          this.doc = doc;
                                    !     tagStack = new Stack();
                                        }
                                      
                                        /**
                                    --- 74,80 ----
                                        {
                                          super(w, doc);
                                          this.doc = doc;
                                    !     tagStack = new ArrayDeque<String>();
                                        }
                                      
                                        /**
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 87,93 ****
                                        {
                                          super(w, doc, pos, len);
                                          this.doc = doc;
                                    !     tagStack = new Stack();
                                        }
                                      
                                        /**
                                    --- 88,94 ----
                                        {
                                          super(w, doc, pos, len);
                                          this.doc = doc;
                                    !     tagStack = new ArrayDeque<String>();
                                        }
                                      
                                        /**
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 113,119 ****
                                         * Ends a span tag.
                                         */
                                        protected void endFontTag() throws IOException
                                    !   {    
                                          writeEndTag("</span>");
                                          inFontTag = false;
                                        }
                                    --- 114,120 ----
                                         * Ends a span tag.
                                         */
                                        protected void endFontTag() throws IOException
                                    !   {
                                          writeEndTag("</span>");
                                          inFontTag = false;
                                        }
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 152,158 ****
                                        /**
                                         * Write the HTML header.
                                         */
                                    !   protected void writeHeader() throws IOException 
                                        {
                                          writeStartTag("<head>");
                                          writeStartTag("<style>");
                                    --- 153,159 ----
                                        /**
                                         * Write the HTML header.
                                         */
                                    !   protected void writeHeader() throws IOException
                                        {
                                          writeStartTag("<head>");
                                          writeStartTag("<style>");
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 167,173 ****
                                         * Write a paragraph start tag.
                                         */
                                        protected void writeStartParagraph(Element elem) throws IOException
                                    !   {      
                                          indent();
                                          write("<p class=default>"+NEWLINE); // FIXME: Class value = ?
                                          incrIndent();
                                    --- 168,174 ----
                                         * Write a paragraph start tag.
                                         */
                                        protected void writeStartParagraph(Element elem) throws IOException
                                    !   {
                                          indent();
                                          write("<p class=default>"+NEWLINE); // FIXME: Class value = ?
                                          incrIndent();
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 184,190 ****
                                      
                                        /**
                                         * Writes the body of the HTML document.
                                    !    */ 
                                        protected void writeBody() throws IOException, BadLocationException
                                        {
                                          writeStartTag("<body>");
                                    --- 185,191 ----
                                      
                                        /**
                                         * Writes the body of the HTML document.
                                    !    */
                                        protected void writeBody() throws IOException, BadLocationException
                                        {
                                          writeStartTag("<body>");
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 194,220 ****
                                          boolean inParagraph = false;
                                          do
                                            {
                                    ! 	if( e.isLeaf() )
                                    ! 	  {
                                    ! 	    boolean hasNL = (getText(e).indexOf(NEWLINE) != -1);
                                    ! 	    if( !inParagraph && hasText( e ) )
                                    ! 	      {
                                    ! 		writeStartParagraph(e);
                                    ! 		inParagraph = true;
                                    ! 	      }
                                      
                                    ! 	    if( hasText( e ) )
                                    ! 	      writeContent(e, true);
                                      
                                    ! 	    if( hasNL && inParagraph )
                                    ! 	      {
                                    ! 		writeEndParagraph();
                                    ! 		inParagraph = false;
                                    ! 	      }
                                    ! 	    else
                                    ! 	      endOpenTags();
                                    ! 	  }
                                    !       } 
                                          while((e = ei.next()) != null);
                                      
                                          writeEndTag("</body>");
                                    --- 195,221 ----
                                          boolean inParagraph = false;
                                          do
                                            {
                                    !         if( e.isLeaf() )
                                    !           {
                                    !             boolean hasNL = (getText(e).indexOf(NEWLINE) != -1);
                                    !             if( !inParagraph && hasText( e ) )
                                    !               {
                                    !                 writeStartParagraph(e);
                                    !                 inParagraph = true;
                                    !               }
                                      
                                    !             if( hasText( e ) )
                                    !               writeContent(e, true);
                                      
                                    !             if( hasNL && inParagraph )
                                    !               {
                                    !                 writeEndParagraph();
                                    !                 inParagraph = false;
                                    !               }
                                    !             else
                                    !               endOpenTags();
                                    !           }
                                    !       }
                                          while((e = ei.next()) != null);
                                      
                                          writeEndTag("</body>");
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 232,259 ****
                                        {
                                          if(attr.getAttribute(StyleConstants.Bold) != null)
                                            if(((Boolean)attr.getAttribute(StyleConstants.Bold)).booleanValue())
                                    ! 	{
                                    ! 	  write("<b>");
                                    ! 	  tagStack.push("</b>");
                                    ! 	}
                                          if(attr.getAttribute(StyleConstants.Italic) != null)
                                            if(((Boolean)attr.getAttribute(StyleConstants.Italic)).booleanValue())
                                    ! 	{
                                    ! 	  write("<i>");
                                    ! 	  tagStack.push("</i>");
                                    ! 	}
                                          if(attr.getAttribute(StyleConstants.Underline) != null)
                                            if(((Boolean)attr.getAttribute(StyleConstants.Underline)).booleanValue())
                                    ! 	{
                                    ! 	  write("<u>");
                                    ! 	  tagStack.push("</u>");
                                    ! 	}
                                        }
                                      
                                        /**
                                         * Returns whether the element contains text or not.
                                         */
                                    !   protected boolean isText(Element elem) 
                                        {
                                          return (elem.getEndOffset() != elem.getStartOffset());
                                        }
                                    --- 233,260 ----
                                        {
                                          if(attr.getAttribute(StyleConstants.Bold) != null)
                                            if(((Boolean)attr.getAttribute(StyleConstants.Bold)).booleanValue())
                                    !         {
                                    !           write("<b>");
                                    !           tagStack.push("</b>");
                                    !         }
                                          if(attr.getAttribute(StyleConstants.Italic) != null)
                                            if(((Boolean)attr.getAttribute(StyleConstants.Italic)).booleanValue())
                                    !         {
                                    !           write("<i>");
                                    !           tagStack.push("</i>");
                                    !         }
                                          if(attr.getAttribute(StyleConstants.Underline) != null)
                                            if(((Boolean)attr.getAttribute(StyleConstants.Underline)).booleanValue())
                                    !         {
                                    !           write("<u>");
                                    !           tagStack.push("</u>");
                                    !         }
                                        }
                                      
                                        /**
                                         * Returns whether the element contains text or not.
                                         */
                                    !   protected boolean isText(Element elem)
                                        {
                                          return (elem.getEndOffset() != elem.getStartOffset());
                                        }
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 270,276 ****
                                          writeHTMLTags(elem.getAttributes());
                                          if( isText(elem) )
                                            text(elem);
                                    !     else 
                                            writeLeaf(elem);
                                      
                                          endOpenTags();
                                    --- 271,277 ----
                                          writeHTMLTags(elem.getAttributes());
                                          if( isText(elem) )
                                            text(elem);
                                    !     else
                                            writeLeaf(elem);
                                      
                                          endOpenTags();
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 284,295 ****
                                          // NOTE: Haven't tested if this is correct.
                                          if(e.getName().equals(StyleConstants.IconElementName))
                                            writeImage(e);
                                    !     else 
                                            writeComponent(e);
                                        }
                                      
                                        /**
                                    !    * Write the HTML attributes which do not have tag equivalents, 
                                         * e.g. attributes other than bold/italic/underlined.
                                         */
                                        protected void writeNonHTMLAttributes(AttributeSet attr) throws IOException
                                    --- 285,296 ----
                                          // NOTE: Haven't tested if this is correct.
                                          if(e.getName().equals(StyleConstants.IconElementName))
                                            writeImage(e);
                                    !     else
                                            writeComponent(e);
                                        }
                                      
                                        /**
                                    !    * Write the HTML attributes which do not have tag equivalents,
                                         * e.g. attributes other than bold/italic/underlined.
                                         */
                                        protected void writeNonHTMLAttributes(AttributeSet attr) throws IOException
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 299,306 ****
                                          // Alignment? Background?
                                      
                                          if( StyleConstants.getForeground(attr) != null )
                                    !       style = style + "color: " + 
                                    ! 	getColor(StyleConstants.getForeground(attr)) + "; ";
                                      
                                          style = style + "font-size: "+StyleConstants.getFontSize(attr)+"pt; ";
                                          style = style + "font-family: "+StyleConstants.getFontFamily(attr);
                                    --- 300,307 ----
                                          // Alignment? Background?
                                      
                                          if( StyleConstants.getForeground(attr) != null )
                                    !       style = style + "color: " +
                                    !         getColor(StyleConstants.getForeground(attr)) + "; ";
                                      
                                          style = style + "font-size: "+StyleConstants.getFontSize(attr)+"pt; ";
                                          style = style + "font-family: "+StyleConstants.getFontFamily(attr);
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 315,329 ****
                                        {
                                          if(doc instanceof DefaultStyledDocument)
                                            {
                                    ! 	Enumeration styles = ((DefaultStyledDocument)doc).getStyleNames();
                                    ! 	while(styles.hasMoreElements())
                                    ! 	  writeStyle(doc.getStyle((String)styles.nextElement()));
                                            }
                                          else
                                            { // What else to do here?
                                    ! 	Style s = doc.getStyle("default");
                                    ! 	if(s != null)
                                    ! 	  writeStyle( s );
                                            }
                                        }
                                      
                                    --- 316,330 ----
                                        {
                                          if(doc instanceof DefaultStyledDocument)
                                            {
                                    !         Enumeration<?> styles = ((DefaultStyledDocument)doc).getStyleNames();
                                    !         while(styles.hasMoreElements())
                                    !           writeStyle(doc.getStyle((String)styles.nextElement()));
                                            }
                                          else
                                            { // What else to do here?
                                    !         Style s = doc.getStyle("default");
                                    !         if(s != null)
                                    !           writeStyle( s );
                                            }
                                        }
                                      
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 332,362 ****
                                         */
                                        protected void writeAttributes(AttributeSet attr) throws IOException
                                        {
                                    !     Enumeration attribs = attr.getAttributeNames();
                                          while(attribs.hasMoreElements())
                                            {
                                    ! 	Object attribName = attribs.nextElement();
                                    ! 	String name = attribName.toString();
                                    ! 	String output = getAttribute(name, attr.getAttribute(attribName));
                                    ! 	if( output != null )
                                    ! 	  {
                                    ! 	    indent();
                                    ! 	    write( output + NEWLINE );
                                    ! 	  }
                                            }
                                        }
                                      
                                        /**
                                         * Deliberately unimplemented, handles component elements.
                                    !    */ 
                                        protected void writeComponent(Element elem) throws IOException
                                        {
                                        }
                                      
                                        /**
                                    !    * Deliberately unimplemented. 
                                         * Writes StyleConstants.IconElementName elements.
                                    !    */ 
                                        protected void writeImage(Element elem) throws IOException
                                        {
                                        }
                                    --- 333,363 ----
                                         */
                                        protected void writeAttributes(AttributeSet attr) throws IOException
                                        {
                                    !     Enumeration<?> attribs = attr.getAttributeNames();
                                          while(attribs.hasMoreElements())
                                            {
                                    !         Object attribName = attribs.nextElement();
                                    !         String name = attribName.toString();
                                    !         String output = getAttribute(name, attr.getAttribute(attribName));
                                    !         if( output != null )
                                    !           {
                                    !             indent();
                                    !             write( output + NEWLINE );
                                    !           }
                                            }
                                        }
                                      
                                        /**
                                         * Deliberately unimplemented, handles component elements.
                                    !    */
                                        protected void writeComponent(Element elem) throws IOException
                                        {
                                        }
                                      
                                        /**
                                    !    * Deliberately unimplemented.
                                         * Writes StyleConstants.IconElementName elements.
                                    !    */
                                        protected void writeImage(Element elem) throws IOException
                                        {
                                        }
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 380,403 ****
                                            return "family:" + a + ";";
                                          if(name.equals("size"))
                                            {
                                    ! 	int size = ((Integer)a).intValue();
                                    ! 	int htmlSize;
                                    ! 	if( size > 24 )
                                    ! 	  htmlSize = 7;
                                    ! 	else if( size > 18 )
                                    ! 	  htmlSize = 6;
                                    ! 	else if( size > 14 )
                                    ! 	  htmlSize = 5;
                                    ! 	else if( size > 12 )
                                    ! 	  htmlSize = 4;
                                    ! 	else if( size > 10 )
                                    ! 	  htmlSize = 3;
                                    ! 	else if( size > 8 )
                                    ! 	  htmlSize = 2;
                                    ! 	else
                                    ! 	  htmlSize = 1;
                                      
                                    ! 	return "size:" + htmlSize + ";";
                                            }
                                      
                                          return null;
                                    --- 381,404 ----
                                            return "family:" + a + ";";
                                          if(name.equals("size"))
                                            {
                                    !         int size = ((Integer)a).intValue();
                                    !         int htmlSize;
                                    !         if( size > 24 )
                                    !           htmlSize = 7;
                                    !         else if( size > 18 )
                                    !           htmlSize = 6;
                                    !         else if( size > 14 )
                                    !           htmlSize = 5;
                                    !         else if( size > 12 )
                                    !           htmlSize = 4;
                                    !         else if( size > 10 )
                                    !           htmlSize = 3;
                                    !         else if( size > 8 )
                                    !           htmlSize = 2;
                                    !         else
                                    !           htmlSize = 1;
                                      
                                    !         return "size:" + htmlSize + ";";
                                            }
                                      
                                          return null;
                                    *************** public class MinimalHTMLWriter extends A
                                    *** 422,434 ****
                                         */
                                        private void endOpenTags() throws IOException
                                        {
                                    !     while(!tagStack.empty())
                                    !       write((String)tagStack.pop());
                                      
                                          if( inFontTag() )
                                            {
                                    ! 	write(""+NEWLINE);
                                    ! 	endFontTag();
                                            }
                                        }
                                      
                                    --- 423,435 ----
                                         */
                                        private void endOpenTags() throws IOException
                                        {
                                    !     while(tagStack.size() > 0)
                                    !       write(tagStack.pop());
                                      
                                          if( inFontTag() )
                                            {
                                    !         write(""+NEWLINE);
                                    !         endFontTag();
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/MultiAttributeSet.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/MultiAttributeSet.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/MultiAttributeSet.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/MultiAttributeSet.java	Tue Jan 11 19:46:05 2011
                                    *************** class MultiAttributeSet
                                    *** 57,63 ****
                                         * The Enumeration for the multiplexed names.
                                         */
                                        private class MultiNameEnumeration
                                    !     implements Enumeration
                                        {
                                          /**
                                           * The index of the current AttributeSet.
                                    --- 57,63 ----
                                         * The Enumeration for the multiplexed names.
                                         */
                                        private class MultiNameEnumeration
                                    !     implements Enumeration<Object>
                                        {
                                          /**
                                           * The index of the current AttributeSet.
                                    *************** class MultiAttributeSet
                                    *** 67,73 ****
                                          /**
                                           * The names Enumeration of the current AttributeSet.
                                           */
                                    !     private Enumeration current;
                                      
                                          /**
                                           * Creates a new instance.
                                    --- 67,73 ----
                                          /**
                                           * The names Enumeration of the current AttributeSet.
                                           */
                                    !     private Enumeration<?> current;
                                      
                                          /**
                                           * Creates a new instance.
                                    *************** class MultiAttributeSet
                                    *** 97,103 ****
                                              }
                                            return current.nextElement();
                                          }
                                    !     
                                        }
                                      
                                        /**
                                    --- 97,103 ----
                                              }
                                            return current.nextElement();
                                          }
                                    ! 
                                        }
                                      
                                        /**
                                    *************** class MultiAttributeSet
                                    *** 147,153 ****
                                        public boolean containsAttributes(AttributeSet attributes)
                                        {
                                          boolean ret = true;
                                    !     Enumeration e = attributes.getAttributeNames();
                                          while (ret && e.hasMoreElements())
                                            {
                                              Object key = e.nextElement();
                                    --- 147,153 ----
                                        public boolean containsAttributes(AttributeSet attributes)
                                        {
                                          boolean ret = true;
                                    !     Enumeration<?> e = attributes.getAttributeNames();
                                          while (ret && e.hasMoreElements())
                                            {
                                              Object key = e.nextElement();
                                    *************** class MultiAttributeSet
                                    *** 186,192 ****
                                          return n;
                                        }
                                      
                                    !   public Enumeration getAttributeNames()
                                        {
                                          return new MultiNameEnumeration();
                                        }
                                    --- 186,192 ----
                                          return n;
                                        }
                                      
                                    !   public Enumeration<?> getAttributeNames()
                                        {
                                          return new MultiNameEnumeration();
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/MultiStyle.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/MultiStyle.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/MultiStyle.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/MultiStyle.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.text.Style;
                                    *** 48,57 ****
                                      /**
                                       * A Style implementation that is able to multiplex between several other
                                       * Styles. This is used for CSS style resolving.
                                    !  * 
                                       * @author Roman Kennke (kennke@aicas.com)
                                       */
                                    ! public class MultiStyle
                                        extends MultiAttributeSet
                                        implements Style
                                      {
                                    --- 48,57 ----
                                      /**
                                       * A Style implementation that is able to multiplex between several other
                                       * Styles. This is used for CSS style resolving.
                                    !  *
                                       * @author Roman Kennke (kennke@aicas.com)
                                       */
                                    ! class MultiStyle
                                        extends MultiAttributeSet
                                        implements Style
                                      {
                                    *************** public class MultiStyle
                                    *** 118,124 ****
                                          attributes.removeAttribute(name);
                                        }
                                      
                                    !   public void removeAttributes(Enumeration names)
                                        {
                                          attributes.removeAttribute(names);
                                        }
                                    --- 118,124 ----
                                          attributes.removeAttribute(name);
                                        }
                                      
                                    !   public void removeAttributes(Enumeration<?> names)
                                        {
                                          attributes.removeAttribute(names);
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/ObjectView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/ObjectView.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/ObjectView.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/ObjectView.java	Tue Oct 12 15:55:12 2010
                                    *************** public class ObjectView extends Componen
                                    *** 88,94 ****
                                          String classId = (String) atts.getAttribute("classid");
                                          try
                                            {
                                    !         Class objectClass = Class.forName(classId);
                                              Object instance = objectClass.newInstance();
                                              comp = (Component) instance;
                                            }
                                    --- 88,94 ----
                                          String classId = (String) atts.getAttribute("classid");
                                          try
                                            {
                                    !         Class<?> objectClass = Class.forName(classId);
                                              Object instance = objectClass.newInstance();
                                              comp = (Component) instance;
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/ParagraphView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/ParagraphView.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/ParagraphView.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/ParagraphView.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ParagraphView
                                    *** 208,214 ****
                                        /**
                                         * Sets the span on the SizeRequirements object according to the
                                         * according CSS span value, when it is set.
                                    !    * 
                                         * @param r the size requirements
                                         * @param axis the axis
                                         *
                                    --- 208,214 ----
                                        /**
                                         * Sets the span on the SizeRequirements object according to the
                                         * according CSS span value, when it is set.
                                    !    *
                                         * @param r the size requirements
                                         * @param axis the axis
                                         *
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/StyleSheet.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/StyleSheet.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/StyleSheet.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/StyleSheet.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* StyleSheet.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* StyleSheet.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** import javax.swing.text.View;
                                    *** 86,102 ****
                                      /**
                                       * This class adds support for defining the visual characteristics of HTML views
                                       * being rendered. This enables views to be customized by a look-and-feel, mulitple
                                    !  * views over the same model can be rendered differently. Each EditorPane has its 
                                       * own StyleSheet, but by default one sheet will be shared by all of the HTMLEditorKit
                                       * instances. An HTMLDocument can also have a StyleSheet, which holds specific CSS
                                    !  * specs. 
                                    !  * 
                                    !  *  In order for Views to store less state and therefore be more lightweight, 
                                    !  *  the StyleSheet can act as a factory for painters that handle some of the 
                                       *  rendering tasks. Since the StyleSheet may be used by views over multiple
                                       *  documents the HTML attributes don't effect the selector being used.
                                    !  *  
                                    !  *  The rules are stored as named styles, and other information is stored to 
                                       *  translate the context of an element to a rule.
                                       *
                                       * @author Lillian Angel (langel@redhat.com)
                                    --- 86,102 ----
                                      /**
                                       * This class adds support for defining the visual characteristics of HTML views
                                       * being rendered. This enables views to be customized by a look-and-feel, mulitple
                                    !  * views over the same model can be rendered differently. Each EditorPane has its
                                       * own StyleSheet, but by default one sheet will be shared by all of the HTMLEditorKit
                                       * instances. An HTMLDocument can also have a StyleSheet, which holds specific CSS
                                    !  * specs.
                                    !  *
                                    !  *  In order for Views to store less state and therefore be more lightweight,
                                    !  *  the StyleSheet can act as a factory for painters that handle some of the
                                       *  rendering tasks. Since the StyleSheet may be used by views over multiple
                                       *  documents the HTML attributes don't effect the selector being used.
                                    !  *
                                    !  *  The rules are stored as named styles, and other information is stored to
                                       *  translate the context of an element to a rule.
                                       *
                                       * @author Lillian Angel (langel@redhat.com)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 234,248 ****
                                            return other.precedence + other.selector.getSpecificity()
                                                   - precedence - selector.getSpecificity();
                                          }
                                    !     
                                        }
                                      
                                        /** The base URL */
                                        URL base;
                                    !   
                                        /** Base font size (int) */
                                        int baseFontSize;
                                    !   
                                        /**
                                         * The linked style sheets stored.
                                         */
                                    --- 234,248 ----
                                            return other.precedence + other.selector.getSpecificity()
                                                   - precedence - selector.getSpecificity();
                                          }
                                    ! 
                                        }
                                      
                                        /** The base URL */
                                        URL base;
                                    ! 
                                        /** Base font size (int) */
                                        int baseFontSize;
                                    ! 
                                        /**
                                         * The linked style sheets stored.
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 273,279 ****
                                         * Gets the style used to render the given tag. The element represents the tag
                                         * and can be used to determine the nesting, where the attributes will differ
                                         * if there is nesting inside of elements.
                                    !    * 
                                         * @param t - the tag to translate to visual attributes
                                         * @param e - the element representing the tag
                                         * @return the set of CSS attributes to use to render the tag.
                                    --- 273,279 ----
                                         * Gets the style used to render the given tag. The element represents the tag
                                         * and can be used to determine the nesting, where the attributes will differ
                                         * if there is nesting inside of elements.
                                    !    *
                                         * @param t - the tag to translate to visual attributes
                                         * @param e - the element representing the tag
                                         * @return the set of CSS attributes to use to render the tag.
                                    *************** public class StyleSheet extends StyleCon
                                    *** 362,375 ****
                                         * Fetches a resolved style. If there is no resolved style for the
                                         * specified selector, the resolve the style using
                                         * {@link #resolveStyle(String, List, HTML.Tag)}.
                                    !    * 
                                         * @param selector the selector for which to resolve the style
                                         * @param path the Element path, used in the resolving algorithm
                                         * @param tag the tag for which to resolve
                                         *
                                         * @return the resolved style
                                         */
                                    !   private Style getResolvedStyle(String selector, List path, HTML.Tag tag)
                                        {
                                          Style style = resolvedStyles.get(selector);
                                          if (style == null)
                                    --- 362,375 ----
                                         * Fetches a resolved style. If there is no resolved style for the
                                         * specified selector, the resolve the style using
                                         * {@link #resolveStyle(String, List, HTML.Tag)}.
                                    !    *
                                         * @param selector the selector for which to resolve the style
                                         * @param path the Element path, used in the resolving algorithm
                                         * @param tag the tag for which to resolve
                                         *
                                         * @return the resolved style
                                         */
                                    !   private Style getResolvedStyle(String selector, List<Element> path, HTML.Tag tag)
                                        {
                                          Style style = resolvedStyles.get(selector);
                                          if (style == null)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 380,386 ****
                                        /**
                                         * Resolves a style. This creates arrays that hold the tag names,
                                         * class and id attributes and delegates the work to
                                    !    * {@link #resolveStyle(String, String[], Map[])}.
                                         *
                                         * @param selector the selector
                                         * @param path the Element path
                                    --- 380,386 ----
                                        /**
                                         * Resolves a style. This creates arrays that hold the tag names,
                                         * class and id attributes and delegates the work to
                                    !    * {@link #resolveStyle(String, String[], List<Map<String,String>>)}.
                                         *
                                         * @param selector the selector
                                         * @param path the Element path
                                    *************** public class StyleSheet extends StyleCon
                                    *** 388,401 ****
                                         *
                                         * @return the resolved style
                                         */
                                    !   private Style resolveStyle(String selector, List path, HTML.Tag tag)
                                        {
                                          int count = path.size();
                                          String[] tags = new String[count];
                                    !     Map[] attributes = new Map[count];
                                          for (int i = 0; i < count; i++)
                                            {
                                    !         Element el = (Element) path.get(i);
                                              AttributeSet atts = el.getAttributes();
                                              if (i == 0 && el.isLeaf())
                                                {
                                    --- 388,402 ----
                                         *
                                         * @return the resolved style
                                         */
                                    !   private Style resolveStyle(String selector, List<Element> path, HTML.Tag tag)
                                        {
                                          int count = path.size();
                                          String[] tags = new String[count];
                                    !     List<Map<String,String>> attributes =
                                    !       new ArrayList<Map<String,String>>(count);
                                          for (int i = 0; i < count; i++)
                                            {
                                    !         Element el = path.get(i);
                                              AttributeSet atts = el.getAttributes();
                                              if (i == 0 && el.isLeaf())
                                                {
                                    *************** public class StyleSheet extends StyleCon
                                    *** 413,424 ****
                                                    tags[i] = t.toString();
                                                  else
                                                    tags[i] = null;
                                    !             attributes[i] = attributeSetToMap(atts);
                                                }
                                              else
                                                {
                                                  tags[i] = null;
                                    -             attributes[i] = null;
                                                }
                                            }
                                          tags[0] = tag.toString();
                                    --- 414,424 ----
                                                    tags[i] = t.toString();
                                                  else
                                                    tags[i] = null;
                                    !             attributes.set(i, attributeSetToMap(atts));
                                                }
                                              else
                                                {
                                                  tags[i] = null;
                                                }
                                            }
                                          tags[0] = tag.toString();
                                    *************** public class StyleSheet extends StyleCon
                                    *** 434,440 ****
                                         *
                                         * @return the resolved style
                                         */
                                    !   private Style resolveStyle(String selector, String[] tags, Map[] attributes)
                                        {
                                          // FIXME: This style resolver is not correct. But it works good enough for
                                          // the default.css.
                                    --- 434,441 ----
                                         *
                                         * @return the resolved style
                                         */
                                    !   private Style resolveStyle(String selector, String[] tags,
                                    !                              List<Map<String,String>> attributes)
                                        {
                                          // FIXME: This style resolver is not correct. But it works good enough for
                                          // the default.css.
                                    *************** public class StyleSheet extends StyleCon
                                    *** 462,499 ****
                                      
                                          // Sort selectors.
                                          Collections.sort(styles);
                                    !     Style[] styleArray = new Style[styles.size()];
                                    !     styleArray = (Style[]) styles.toArray(styleArray);
                                    !     Style resolved = new MultiStyle(selector,
                                    !                                     (Style[]) styles.toArray(styleArray));
                                          resolvedStyles.put(selector, resolved);
                                          return resolved;
                                        }
                                      
                                        /**
                                         * Gets the rule that best matches the selector. selector is a space
                                    !    * separated String of element names. The attributes of the returned 
                                         * Style will change as rules are added and removed.
                                    !    * 
                                         * @param selector - the element names separated by spaces
                                         * @return the set of CSS attributes to use to render
                                         */
                                        public Style getRule(String selector)
                                        {
                                          CSSStyle best = null;
                                    !     for (Iterator i = css.iterator(); i.hasNext();)
                                            {
                                    !         CSSStyle style = (CSSStyle) i.next();
                                              if (style.compareTo(best) < 0)
                                                best = style;
                                            }
                                          return best;
                                        }
                                    !   
                                        /**
                                         * Adds a set of rules to the sheet. The rules are expected to be in valid
                                         * CSS format. This is called as a result of parsing a <style> tag
                                    !    * 
                                         * @param rule - the rule to add to the sheet
                                         */
                                        public void addRule(String rule)
                                    --- 463,498 ----
                                      
                                          // Sort selectors.
                                          Collections.sort(styles);
                                    !     Style[] styleArray = styles.toArray(new Style[styles.size()]);
                                    !     Style resolved = new MultiStyle(selector, styleArray);
                                          resolvedStyles.put(selector, resolved);
                                          return resolved;
                                        }
                                      
                                        /**
                                         * Gets the rule that best matches the selector. selector is a space
                                    !    * separated String of element names. The attributes of the returned
                                         * Style will change as rules are added and removed.
                                    !    *
                                         * @param selector - the element names separated by spaces
                                         * @return the set of CSS attributes to use to render
                                         */
                                        public Style getRule(String selector)
                                        {
                                          CSSStyle best = null;
                                    !     for (Iterator<CSSStyle> i = css.iterator(); i.hasNext();)
                                            {
                                    !         CSSStyle style = i.next();
                                              if (style.compareTo(best) < 0)
                                                best = style;
                                            }
                                          return best;
                                        }
                                    ! 
                                        /**
                                         * Adds a set of rules to the sheet. The rules are expected to be in valid
                                         * CSS format. This is called as a result of parsing a <style> tag
                                    !    *
                                         * @param rule - the rule to add to the sheet
                                         */
                                        public void addRule(String rule)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 515,525 ****
                                          // on next stylesheet request.
                                          resolvedStyles.clear();
                                        }
                                    !   
                                        /**
                                         * Translates a CSS declaration into an AttributeSet. This is called
                                         * as a result of encountering an HTML style attribute.
                                    !    * 
                                         * @param decl - the declaration to get
                                         * @return the AttributeSet representing the declaration
                                         */
                                    --- 514,524 ----
                                          // on next stylesheet request.
                                          resolvedStyles.clear();
                                        }
                                    ! 
                                        /**
                                         * Translates a CSS declaration into an AttributeSet. This is called
                                         * as a result of encountering an HTML style attribute.
                                    !    *
                                         * @param decl - the declaration to get
                                         * @return the AttributeSet representing the declaration
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 528,540 ****
                                          if (decl == null)
                                            return SimpleAttributeSet.EMPTY;
                                          // FIXME: Not implemented.
                                    !     return null;     
                                        }
                                    !   
                                        /**
                                         * Loads a set of rules that have been specified in terms of CSS grammar.
                                         * If there are any conflicts with existing rules, the new rule is added.
                                    !    * 
                                         * @param in - the stream to read the CSS grammar from.
                                         * @param ref - the reference URL. It is the location of the stream, it may
                                         * be null. All relative URLs specified in the stream will be based upon this
                                    --- 527,539 ----
                                          if (decl == null)
                                            return SimpleAttributeSet.EMPTY;
                                          // FIXME: Not implemented.
                                    !     return null;
                                        }
                                    ! 
                                        /**
                                         * Loads a set of rules that have been specified in terms of CSS grammar.
                                         * If there are any conflicts with existing rules, the new rule is added.
                                    !    *
                                         * @param in - the stream to read the CSS grammar from.
                                         * @param ref - the reference URL. It is the location of the stream, it may
                                         * be null. All relative URLs specified in the stream will be based upon this
                                    *************** public class StyleSheet extends StyleCon
                                    *** 550,560 ****
                                          CSSParser parser = new CSSParser(in, cb);
                                          parser.parse();
                                        }
                                    !   
                                        /**
                                         * Gets a set of attributes to use in the view. This is a set of
                                         * attributes that can be used for View.getAttributes
                                    !    * 
                                         * @param v - the view to get the set for
                                         * @return the AttributeSet to use in the view.
                                         */
                                    --- 549,559 ----
                                          CSSParser parser = new CSSParser(in, cb);
                                          parser.parse();
                                        }
                                    ! 
                                        /**
                                         * Gets a set of attributes to use in the view. This is a set of
                                         * attributes that can be used for View.getAttributes
                                    !    *
                                         * @param v - the view to get the set for
                                         * @return the AttributeSet to use in the view.
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 562,571 ****
                                        {
                                          return new ViewAttributeSet(v, this);
                                        }
                                    !   
                                        /**
                                         * Removes a style previously added.
                                    !    * 
                                         * @param nm - the name of the style to remove
                                         */
                                        public void removeStyle(String nm)
                                    --- 561,570 ----
                                        {
                                          return new ViewAttributeSet(v, this);
                                        }
                                    ! 
                                        /**
                                         * Removes a style previously added.
                                    !    *
                                         * @param nm - the name of the style to remove
                                         */
                                        public void removeStyle(String nm)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 573,596 ****
                                          // FIXME: Not implemented.
                                          super.removeStyle(nm);
                                        }
                                    !   
                                        /**
                                         * Adds the rules from ss to those of the receiver. ss's rules will
                                         * override the old rules. An added StyleSheet will never override the rules
                                         * of the receiving style sheet.
                                    !    * 
                                         * @param ss - the new StyleSheet.
                                         */
                                        public void addStyleSheet(StyleSheet ss)
                                        {
                                          if (linked == null)
                                    !       linked = new ArrayList();
                                          linked.add(ss);
                                        }
                                    !   
                                        /**
                                         * Removes ss from those of the receiver
                                    !    * 
                                         * @param ss - the StyleSheet to remove.
                                         */
                                        public void removeStyleSheet(StyleSheet ss)
                                    --- 572,595 ----
                                          // FIXME: Not implemented.
                                          super.removeStyle(nm);
                                        }
                                    ! 
                                        /**
                                         * Adds the rules from ss to those of the receiver. ss's rules will
                                         * override the old rules. An added StyleSheet will never override the rules
                                         * of the receiving style sheet.
                                    !    *
                                         * @param ss - the new StyleSheet.
                                         */
                                        public void addStyleSheet(StyleSheet ss)
                                        {
                                          if (linked == null)
                                    !       linked = new ArrayList<StyleSheet>();
                                          linked.add(ss);
                                        }
                                    ! 
                                        /**
                                         * Removes ss from those of the receiver
                                    !    *
                                         * @param ss - the StyleSheet to remove.
                                         */
                                        public void removeStyleSheet(StyleSheet ss)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 600,609 ****
                                              linked.remove(ss);
                                            }
                                        }
                                    !   
                                        /**
                                         * Returns an array of the linked StyleSheets. May return null.
                                    !    * 
                                         * @return - An array of the linked StyleSheets.
                                         */
                                        public StyleSheet[] getStyleSheets()
                                    --- 599,608 ----
                                              linked.remove(ss);
                                            }
                                        }
                                    ! 
                                        /**
                                         * Returns an array of the linked StyleSheets. May return null.
                                    !    *
                                         * @return - An array of the linked StyleSheets.
                                         */
                                        public StyleSheet[] getStyleSheets()
                                    *************** public class StyleSheet extends StyleCon
                                    *** 620,631 ****
                                            }
                                          return linkedSS;
                                        }
                                    !   
                                        /**
                                         * Imports a style sheet from the url. The rules are directly added to the
                                         * receiver. This is usually called when a <link> tag is resolved in an
                                         * HTML document.
                                    !    * 
                                         * @param url the URL to import the StyleSheet from
                                         */
                                        public void importStyleSheet(URL url)
                                    --- 619,630 ----
                                            }
                                          return linkedSS;
                                        }
                                    ! 
                                        /**
                                         * Imports a style sheet from the url. The rules are directly added to the
                                         * receiver. This is usually called when a <link> tag is resolved in an
                                         * HTML document.
                                    !    *
                                         * @param url the URL to import the StyleSheet from
                                         */
                                        public void importStyleSheet(URL url)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 644,654 ****
                                              // We can't do anything about it I guess.
                                            }
                                        }
                                    !   
                                        /**
                                         * Sets the base url. All import statements that are relative, will be
                                         * relative to base.
                                    !    * 
                                         * @param base -
                                         *          the base URL.
                                         */
                                    --- 643,653 ----
                                              // We can't do anything about it I guess.
                                            }
                                        }
                                    ! 
                                        /**
                                         * Sets the base url. All import statements that are relative, will be
                                         * relative to base.
                                    !    *
                                         * @param base -
                                         *          the base URL.
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 656,675 ****
                                        {
                                          this.base = base;
                                        }
                                    !   
                                        /**
                                         * Gets the base url.
                                    !    * 
                                         * @return - the base
                                         */
                                        public URL getBase()
                                        {
                                          return base;
                                        }
                                    !   
                                        /**
                                         * Adds a CSS attribute to the given set.
                                    !    * 
                                         * @param attr - the attribute set
                                         * @param key - the attribute to add
                                         * @param value - the value of the key
                                    --- 655,674 ----
                                        {
                                          this.base = base;
                                        }
                                    ! 
                                        /**
                                         * Gets the base url.
                                    !    *
                                         * @return - the base
                                         */
                                        public URL getBase()
                                        {
                                          return base;
                                        }
                                    ! 
                                        /**
                                         * Adds a CSS attribute to the given set.
                                    !    *
                                         * @param attr - the attribute set
                                         * @param key - the attribute to add
                                         * @param value - the value of the key
                                    *************** public class StyleSheet extends StyleCon
                                    *** 681,693 ****
                                          CSS.addInternal(attr, key, value);
                                          attr.addAttribute(key, val);
                                        }
                                    !   
                                        /**
                                         * Adds a CSS attribute to the given set.
                                    !    * This method parses the value argument from HTML based on key. 
                                    !    * Returns true if it finds a valid value for the given key, 
                                         * and false otherwise.
                                    !    * 
                                         * @param attr - the attribute set
                                         * @param key - the attribute to add
                                         * @param value - the value of the key
                                    --- 680,692 ----
                                          CSS.addInternal(attr, key, value);
                                          attr.addAttribute(key, val);
                                        }
                                    ! 
                                        /**
                                         * Adds a CSS attribute to the given set.
                                    !    * This method parses the value argument from HTML based on key.
                                    !    * Returns true if it finds a valid value for the given key,
                                         * and false otherwise.
                                    !    *
                                         * @param attr - the attribute set
                                         * @param key - the attribute to add
                                         * @param value - the value of the key
                                    *************** public class StyleSheet extends StyleCon
                                    *** 700,709 ****
                                          attr.addAttribute(key, value);
                                          return attr.containsAttribute(key, value);
                                        }
                                    !   
                                        /**
                                         * Converts a set of HTML attributes to an equivalent set of CSS attributes.
                                    !    * 
                                         * @param htmlAttrSet - the set containing the HTML attributes.
                                         * @return the set of CSS attributes
                                         */
                                    --- 699,708 ----
                                          attr.addAttribute(key, value);
                                          return attr.containsAttribute(key, value);
                                        }
                                    ! 
                                        /**
                                         * Converts a set of HTML attributes to an equivalent set of CSS attributes.
                                    !    *
                                         * @param htmlAttrSet - the set containing the HTML attributes.
                                         * @return the set of CSS attributes
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 773,779 ****
                                         * Translates a HTML border attribute to a corresponding set of CSS
                                         * attributes.
                                         *
                                    !    * @param cssAttr the original set of CSS attributes to add to 
                                         * @param o the value of the border attribute
                                         *
                                         * @return the new set of CSS attributes
                                    --- 772,778 ----
                                         * Translates a HTML border attribute to a corresponding set of CSS
                                         * attributes.
                                         *
                                    !    * @param cssAttr the original set of CSS attributes to add to
                                         * @param o the value of the border attribute
                                         *
                                         * @return the new set of CSS attributes
                                    *************** public class StyleSheet extends StyleCon
                                    *** 800,823 ****
                                         * to convert StyleConstants attributes to CSS before forwarding them to the superclass.
                                         * The StyleConstants attribute do not have corresponding CSS entry, the attribute
                                         * is stored (but will likely not be used).
                                    !    * 
                                         * @param old - the old set
                                         * @param key - the non-null attribute key
                                         * @param value - the attribute value
                                    !    * @return the updated set 
                                         */
                                        public AttributeSet addAttribute(AttributeSet old, Object key,
                                                                         Object value)
                                        {
                                          // FIXME: Not implemented.
                                    !     return super.addAttribute(old, key, value);       
                                        }
                                    !   
                                        /**
                                         * Adds a set of attributes to the element. If any of these attributes are
                                    !    * StyleConstants, they will be converted to CSS before forwarding to the 
                                         * superclass.
                                    !    * 
                                         * @param old - the old set
                                         * @param attr - the attributes to add
                                         * @return the updated attribute set
                                    --- 799,822 ----
                                         * to convert StyleConstants attributes to CSS before forwarding them to the superclass.
                                         * The StyleConstants attribute do not have corresponding CSS entry, the attribute
                                         * is stored (but will likely not be used).
                                    !    *
                                         * @param old - the old set
                                         * @param key - the non-null attribute key
                                         * @param value - the attribute value
                                    !    * @return the updated set
                                         */
                                        public AttributeSet addAttribute(AttributeSet old, Object key,
                                                                         Object value)
                                        {
                                          // FIXME: Not implemented.
                                    !     return super.addAttribute(old, key, value);
                                        }
                                    ! 
                                        /**
                                         * Adds a set of attributes to the element. If any of these attributes are
                                    !    * StyleConstants, they will be converted to CSS before forwarding to the
                                         * superclass.
                                    !    *
                                         * @param old - the old set
                                         * @param attr - the attributes to add
                                         * @return the updated attribute set
                                    *************** public class StyleSheet extends StyleCon
                                    *** 825,868 ****
                                        public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
                                        {
                                          // FIXME: Not implemented.
                                    !     return super.addAttributes(old, attr);           
                                        }
                                    !   
                                        /**
                                         * Removes an attribute from the set. If the attribute is a
                                    !    * StyleConstants, it will be converted to CSS before forwarding to the 
                                         * superclass.
                                    !    * 
                                         * @param old - the old set
                                         * @param key - the non-null attribute key
                                    !    * @return the updated set 
                                         */
                                        public AttributeSet removeAttribute(AttributeSet old, Object key)
                                        {
                                          // FIXME: Not implemented.
                                    !     return super.removeAttribute(old, key);    
                                        }
                                    !   
                                        /**
                                         * Removes an attribute from the set. If any of the attributes are
                                    !    * StyleConstants, they will be converted to CSS before forwarding to the 
                                         * superclass.
                                    !    * 
                                         * @param old - the old set
                                         * @param attrs - the attributes to remove
                                    !    * @return the updated set 
                                         */
                                        public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
                                        {
                                          // FIXME: Not implemented.
                                    !     return super.removeAttributes(old, attrs);    
                                        }
                                    !   
                                        /**
                                         * Removes a set of attributes for the element. If any of the attributes is a
                                    !    * StyleConstants, they will be converted to CSS before forwarding to the 
                                         * superclass.
                                    !    * 
                                         * @param old - the old attribute set
                                         * @param names - the attribute names
                                         * @return the update attribute set
                                    --- 824,867 ----
                                        public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
                                        {
                                          // FIXME: Not implemented.
                                    !     return super.addAttributes(old, attr);
                                        }
                                    ! 
                                        /**
                                         * Removes an attribute from the set. If the attribute is a
                                    !    * StyleConstants, it will be converted to CSS before forwarding to the
                                         * superclass.
                                    !    *
                                         * @param old - the old set
                                         * @param key - the non-null attribute key
                                    !    * @return the updated set
                                         */
                                        public AttributeSet removeAttribute(AttributeSet old, Object key)
                                        {
                                          // FIXME: Not implemented.
                                    !     return super.removeAttribute(old, key);
                                        }
                                    ! 
                                        /**
                                         * Removes an attribute from the set. If any of the attributes are
                                    !    * StyleConstants, they will be converted to CSS before forwarding to the
                                         * superclass.
                                    !    *
                                         * @param old - the old set
                                         * @param attrs - the attributes to remove
                                    !    * @return the updated set
                                         */
                                        public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
                                        {
                                          // FIXME: Not implemented.
                                    !     return super.removeAttributes(old, attrs);
                                        }
                                    ! 
                                        /**
                                         * Removes a set of attributes for the element. If any of the attributes is a
                                    !    * StyleConstants, they will be converted to CSS before forwarding to the
                                         * superclass.
                                    !    *
                                         * @param old - the old attribute set
                                         * @param names - the attribute names
                                         * @return the update attribute set
                                    *************** public class StyleSheet extends StyleCon
                                    *** 872,906 ****
                                          // FIXME: Not implemented.
                                          return super.removeAttributes(old, names);
                                        }
                                    !   
                                        /**
                                         * Creates a compact set of attributes that might be shared. This is a hook
                                         * for subclasses that want to change the behaviour of SmallAttributeSet.
                                    !    * 
                                         * @param a - the set of attributes to be represented in the compact form.
                                         * @return the set of attributes created
                                         */
                                        protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
                                        {
                                    !     return super.createSmallAttributeSet(a);     
                                        }
                                    !   
                                        /**
                                         * Creates a large set of attributes. This set is not shared. This is a hook
                                         * for subclasses that want to change the behaviour of the larger attribute
                                         * storage format.
                                    !    * 
                                         * @param a - the set of attributes to be represented in the larger form.
                                         * @return the large set of attributes.
                                         */
                                        protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
                                        {
                                    !     return super.createLargeAttributeSet(a);     
                                        }
                                    !   
                                        /**
                                         * Gets the font to use for the given set.
                                    !    * 
                                         * @param a - the set to get the font for.
                                         * @return the font for the set
                                         */
                                    --- 871,905 ----
                                          // FIXME: Not implemented.
                                          return super.removeAttributes(old, names);
                                        }
                                    ! 
                                        /**
                                         * Creates a compact set of attributes that might be shared. This is a hook
                                         * for subclasses that want to change the behaviour of SmallAttributeSet.
                                    !    *
                                         * @param a - the set of attributes to be represented in the compact form.
                                         * @return the set of attributes created
                                         */
                                        protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
                                        {
                                    !     return super.createSmallAttributeSet(a);
                                        }
                                    ! 
                                        /**
                                         * Creates a large set of attributes. This set is not shared. This is a hook
                                         * for subclasses that want to change the behaviour of the larger attribute
                                         * storage format.
                                    !    *
                                         * @param a - the set of attributes to be represented in the larger form.
                                         * @return the large set of attributes.
                                         */
                                        protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
                                        {
                                    !     return super.createLargeAttributeSet(a);
                                        }
                                    ! 
                                        /**
                                         * Gets the font to use for the given set.
                                    !    *
                                         * @param a - the set to get the font for.
                                         * @return the font for the set
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 979,985 ****
                                                  AttributeSet resolver = atts.getResolveParent();
                                                  if (resolver != null)
                                                    parSize = getFontSize(resolver);
                                    !             size = fs.getValue(parSize); 
                                                }
                                              else
                                                {
                                    --- 978,984 ----
                                                  AttributeSet resolver = atts.getResolveParent();
                                                  if (resolver != null)
                                                    parSize = getFontSize(resolver);
                                    !             size = fs.getValue(parSize);
                                                }
                                              else
                                                {
                                    *************** public class StyleSheet extends StyleCon
                                    *** 999,1005 ****
                                         * Takes a set of attributes and turns it into a foreground
                                         * color specification. This is used to specify things like, brigher, more hue
                                         * etc.
                                    !    * 
                                         * @param a - the set to get the foreground color for
                                         * @return the foreground color for the set
                                         */
                                    --- 998,1004 ----
                                         * Takes a set of attributes and turns it into a foreground
                                         * color specification. This is used to specify things like, brigher, more hue
                                         * etc.
                                    !    *
                                         * @param a - the set to get the foreground color for
                                         * @return the foreground color for the set
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1009,1022 ****
                                          Color color = null;
                                          if (c != null)
                                            color = c.getValue();
                                    !     return color;     
                                        }
                                    !   
                                        /**
                                         * Takes a set of attributes and turns it into a background
                                         * color specification. This is used to specify things like, brigher, more hue
                                         * etc.
                                    !    * 
                                         * @param a - the set to get the background color for
                                         * @return the background color for the set
                                         */
                                    --- 1008,1021 ----
                                          Color color = null;
                                          if (c != null)
                                            color = c.getValue();
                                    !     return color;
                                        }
                                    ! 
                                        /**
                                         * Takes a set of attributes and turns it into a background
                                         * color specification. This is used to specify things like, brigher, more hue
                                         * etc.
                                    !    *
                                         * @param a - the set to get the background color for
                                         * @return the background color for the set
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1026,1059 ****
                                          Color color = null;
                                          if (c != null)
                                            color = c.getValue();
                                    !     return color;     
                                        }
                                    !   
                                        /**
                                         * Gets the box formatter to use for the given set of CSS attributes.
                                    !    * 
                                         * @param a - the given set
                                         * @return the box formatter
                                         */
                                        public BoxPainter getBoxPainter(AttributeSet a)
                                        {
                                    !     return new BoxPainter(a, this);     
                                        }
                                    !   
                                        /**
                                         * Gets the list formatter to use for the given set of CSS attributes.
                                    !    * 
                                         * @param a - the given set
                                         * @return the list formatter
                                         */
                                        public ListPainter getListPainter(AttributeSet a)
                                        {
                                    !     return new ListPainter(a, this);         
                                        }
                                    !   
                                        /**
                                         * Sets the base font size between 1 and 7.
                                    !    * 
                                         * @param sz - the new font size for the base.
                                         */
                                        public void setBaseFontSize(int sz)
                                    --- 1025,1058 ----
                                          Color color = null;
                                          if (c != null)
                                            color = c.getValue();
                                    !     return color;
                                        }
                                    ! 
                                        /**
                                         * Gets the box formatter to use for the given set of CSS attributes.
                                    !    *
                                         * @param a - the given set
                                         * @return the box formatter
                                         */
                                        public BoxPainter getBoxPainter(AttributeSet a)
                                        {
                                    !     return new BoxPainter(a, this);
                                        }
                                    ! 
                                        /**
                                         * Gets the list formatter to use for the given set of CSS attributes.
                                    !    *
                                         * @param a - the given set
                                         * @return the list formatter
                                         */
                                        public ListPainter getListPainter(AttributeSet a)
                                        {
                                    !     return new ListPainter(a, this);
                                        }
                                    ! 
                                        /**
                                         * Sets the base font size between 1 and 7.
                                    !    *
                                         * @param sz - the new font size for the base.
                                         */
                                        public void setBaseFontSize(int sz)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1061,1072 ****
                                          if (sz <= 7 && sz >= 1)
                                            baseFontSize = sz;
                                        }
                                    !   
                                        /**
                                         * Sets the base font size from the String. It can either identify
                                         * a specific font size (between 1 and 7) or identify a relative
                                         * font size such as +1 or -2.
                                    !    * 
                                         * @param size - the new font size as a String.
                                         */
                                        public void setBaseFontSize(String size)
                                    --- 1060,1071 ----
                                          if (sz <= 7 && sz >= 1)
                                            baseFontSize = sz;
                                        }
                                    ! 
                                        /**
                                         * Sets the base font size from the String. It can either identify
                                         * a specific font size (between 1 and 7) or identify a relative
                                         * font size such as +1 or -2.
                                    !    *
                                         * @param size - the new font size as a String.
                                         */
                                        public void setBaseFontSize(String size)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1094,1103 ****
                                              // Do nothing here
                                            }
                                        }
                                    !   
                                        /**
                                         * TODO
                                    !    * 
                                         * @param pt - TODO
                                         * @return TODO
                                         */
                                    --- 1093,1102 ----
                                              // Do nothing here
                                            }
                                        }
                                    ! 
                                        /**
                                         * TODO
                                    !    *
                                         * @param pt - TODO
                                         * @return TODO
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1106,1140 ****
                                          // FIXME: Not implemented.
                                          return 0;
                                        }
                                    !   
                                        /**
                                         * Gets the point size, given a size index.
                                    !    * 
                                         * @param index - the size index
                                         * @return the point size.
                                         */
                                        public float getPointSize(int index)
                                        {
                                          // FIXME: Not implemented.
                                    !     return 0;    
                                        }
                                    !   
                                        /**
                                         * Given the string of the size, returns the point size value.
                                    !    * 
                                         * @param size - the string representation of the size.
                                         * @return - the point size value.
                                         */
                                        public float getPointSize(String size)
                                        {
                                          // FIXME: Not implemented.
                                    !     return 0;    
                                        }
                                    !   
                                        /**
                                         * Convert the color string represenation into java.awt.Color. The valid
                                         * values are like "aqua" , "#00FFFF" or "rgb(1,6,44)".
                                    !    * 
                                         * @param colorName the color to convert.
                                         * @return the matching java.awt.color
                                         */
                                    --- 1105,1139 ----
                                          // FIXME: Not implemented.
                                          return 0;
                                        }
                                    ! 
                                        /**
                                         * Gets the point size, given a size index.
                                    !    *
                                         * @param index - the size index
                                         * @return the point size.
                                         */
                                        public float getPointSize(int index)
                                        {
                                          // FIXME: Not implemented.
                                    !     return 0;
                                        }
                                    ! 
                                        /**
                                         * Given the string of the size, returns the point size value.
                                    !    *
                                         * @param size - the string representation of the size.
                                         * @return - the point size value.
                                         */
                                        public float getPointSize(String size)
                                        {
                                          // FIXME: Not implemented.
                                    !     return 0;
                                        }
                                    ! 
                                        /**
                                         * Convert the color string represenation into java.awt.Color. The valid
                                         * values are like "aqua" , "#00FFFF" or "rgb(1,6,44)".
                                    !    *
                                         * @param colorName the color to convert.
                                         * @return the matching java.awt.color
                                         */
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1142,1155 ****
                                        {
                                          return CSSColor.convertValue(colorName);
                                        }
                                    !   
                                        /**
                                         * This class carries out some of the duties of CSS formatting. This enables views
                                         * to present the CSS formatting while not knowing how the CSS values are cached.
                                    !    * 
                                         * This object is reponsible for the insets of a View and making sure
                                         * the background is maintained according to the CSS attributes.
                                    !    * 
                                         * @author Lillian Angel (langel@redhat.com)
                                         */
                                        public static class BoxPainter extends Object implements Serializable
                                    --- 1141,1154 ----
                                        {
                                          return CSSColor.convertValue(colorName);
                                        }
                                    ! 
                                        /**
                                         * This class carries out some of the duties of CSS formatting. This enables views
                                         * to present the CSS formatting while not knowing how the CSS values are cached.
                                    !    *
                                         * This object is reponsible for the insets of a View and making sure
                                         * the background is maintained according to the CSS attributes.
                                    !    *
                                         * @author Lillian Angel (langel@redhat.com)
                                         */
                                        public static class BoxPainter extends Object implements Serializable
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1192,1198 ****
                                      
                                          /**
                                           * Package-private constructor.
                                    !      * 
                                           * @param as - AttributeSet for painter
                                           */
                                          BoxPainter(AttributeSet as, StyleSheet ss)
                                    --- 1191,1197 ----
                                      
                                          /**
                                           * Package-private constructor.
                                    !      *
                                           * @param as - AttributeSet for painter
                                           */
                                          BoxPainter(AttributeSet as, StyleSheet ss)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1258,1269 ****
                                            background = ss.getBackground(as);
                                      
                                          }
                                    !     
                                    !     
                                          /**
                                           * Gets the inset needed on a given side to account for the margin, border
                                           * and padding.
                                    !      * 
                                           * @param size - the size of the box to get the inset for. View.TOP, View.LEFT,
                                           * View.BOTTOM or View.RIGHT.
                                           * @param v - the view making the request. This is used to get the AttributeSet,
                                    --- 1257,1268 ----
                                            background = ss.getBackground(as);
                                      
                                          }
                                    ! 
                                    ! 
                                          /**
                                           * Gets the inset needed on a given side to account for the margin, border
                                           * and padding.
                                    !      *
                                           * @param size - the size of the box to get the inset for. View.TOP, View.LEFT,
                                           * View.BOTTOM or View.RIGHT.
                                           * @param v - the view making the request. This is used to get the AttributeSet,
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1305,1315 ****
                                            }
                                            return inset;
                                          }
                                    !     
                                          /**
                                           * Paints the CSS box according to the attributes given. This should
                                           * paint the border, padding and background.
                                    !      * 
                                           * @param g - the graphics configuration
                                           * @param x - the x coordinate
                                           * @param y - the y coordinate
                                    --- 1304,1314 ----
                                            }
                                            return inset;
                                          }
                                    ! 
                                          /**
                                           * Paints the CSS box according to the attributes given. This should
                                           * paint the border, padding and background.
                                    !      *
                                           * @param g - the graphics configuration
                                           * @param x - the x coordinate
                                           * @param y - the y coordinate
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1334,1345 ****
                                              }
                                          }
                                        }
                                    !   
                                        /**
                                         * This class carries out some of the CSS list formatting duties. Implementations
                                         * of this class enable views to present the CSS formatting while not knowing anything
                                         * about how the CSS values are being cached.
                                    !    * 
                                         * @author Lillian Angel (langel@redhat.com)
                                         */
                                        public static class ListPainter implements Serializable
                                    --- 1333,1344 ----
                                              }
                                          }
                                        }
                                    ! 
                                        /**
                                         * This class carries out some of the CSS list formatting duties. Implementations
                                         * of this class enable views to present the CSS formatting while not knowing anything
                                         * about how the CSS values are being cached.
                                    !    *
                                         * @author Lillian Angel (langel@redhat.com)
                                         */
                                        public static class ListPainter implements Serializable
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1362,1368 ****
                                      
                                          /**
                                           * Package-private constructor.
                                    !      * 
                                           * @param as - AttributeSet for painter
                                           */
                                          ListPainter(AttributeSet as, StyleSheet ss)
                                    --- 1361,1367 ----
                                      
                                          /**
                                           * Package-private constructor.
                                    !      *
                                           * @param as - AttributeSet for painter
                                           */
                                          ListPainter(AttributeSet as, StyleSheet ss)
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1379,1385 ****
                                      
                                          /**
                                           * Paints the CSS list decoration according to the attributes given.
                                    !      * 
                                           * @param g - the graphics configuration
                                           * @param x - the x coordinate
                                           * @param y - the y coordinate
                                    --- 1378,1384 ----
                                      
                                          /**
                                           * Paints the CSS list decoration according to the attributes given.
                                    !      *
                                           * @param g - the graphics configuration
                                           * @param x - the x coordinate
                                           * @param y - the y coordinate
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1411,1417 ****
                                                  {
                                                    View v1 = itemView.getView(0);
                                                    if (v1 instanceof ParagraphView && v1.getViewCount() > 0)
                                    !                 {             
                                                        Shape a1 = itemView.getChildAllocation(0, tmpRect);
                                                        Rectangle r1 = a1 instanceof Rectangle ? (Rectangle) a1
                                                                                               : a1.getBounds();
                                    --- 1410,1416 ----
                                                  {
                                                    View v1 = itemView.getView(0);
                                                    if (v1 instanceof ParagraphView && v1.getViewCount() > 0)
                                    !                 {
                                                        Shape a1 = itemView.getChildAllocation(0, tmpRect);
                                                        Rectangle r1 = a1 instanceof Rectangle ? (Rectangle) a1
                                                                                               : a1.getBounds();
                                    *************** public class StyleSheet extends StyleCon
                                    *** 1441,1447 ****
                                         *
                                         * @return the converted map
                                         */
                                    !   private Map attributeSetToMap(AttributeSet atts)
                                        {
                                          HashMap<String,String> map = new HashMap<String,String>();
                                          Enumeration<?> keys = atts.getAttributeNames();
                                    --- 1440,1446 ----
                                         *
                                         * @return the converted map
                                         */
                                    !   private Map<String,String> attributeSetToMap(AttributeSet atts)
                                        {
                                          HashMap<String,String> map = new HashMap<String,String>();
                                          Enumeration<?> keys = atts.getAttributeNames();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/TableView.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/TableView.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/TableView.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/TableView.java	Tue Jan 11 19:46:05 2011
                                    *************** class TableView
                                    *** 181,187 ****
                                                                         int spans[])
                                          {
                                            updateGrid();
                                    -       int numCols = offsets.length;
                                            int realColumn = 0;
                                            int colCount = getViewCount();
                                            for (int i = 0; i < numColumns;)
                                    --- 181,186 ----
                                    *************** class TableView
                                    *** 478,484 ****
                                         * Overridden to perform the table layout before calling the super
                                         * implementation.
                                         */
                                    !   protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, 
                                                                       int[] spans)
                                        {
                                          updateGrid();
                                    --- 477,483 ----
                                         * Overridden to perform the table layout before calling the super
                                         * implementation.
                                         */
                                    !   protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets,
                                                                       int[] spans)
                                        {
                                          updateGrid();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java	Tue Jan 11 19:46:05 2011
                                    *************** class ViewAttributeSet
                                    *** 109,115 ****
                                            {
                                              HTML.Tag tag =
                                                (HTML.Tag) elAtts.getAttribute(StyleConstants.NameAttribute);
                                    !         AttributeSet rule = styleSheet.getRule(tag, el); 
                                              if (rule != null)
                                                atts.add(rule);
                                            }
                                    --- 109,115 ----
                                            {
                                              HTML.Tag tag =
                                                (HTML.Tag) elAtts.getAttribute(StyleConstants.NameAttribute);
                                    !         AttributeSet rule = styleSheet.getRule(tag, el);
                                              if (rule != null)
                                                atts.add(rule);
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/parser/Entity.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/parser/Entity.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/parser/Entity.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/parser/Entity.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class Entity
                                    *** 170,183 ****
                                      
                                          return sdata;
                                        }
                                    !   
                                        /**
                                         * Get the entity type.
                                         * @return the value of the {@link #type}.
                                         */
                                    !   public int getType() 
                                        {
                                          return type;
                                    !   }  
                                    !           
                                      }
                                    --- 170,183 ----
                                      
                                          return sdata;
                                        }
                                    ! 
                                        /**
                                         * Get the entity type.
                                         * @return the value of the {@link #type}.
                                         */
                                    !   public int getType()
                                        {
                                          return type;
                                    !   }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/html/parser/Parser.java gcc-4.6.0/libjava/classpath/javax/swing/text/html/parser/Parser.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/html/parser/Parser.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/html/parser/Parser.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.text.SimpleAttributeS
                                    *** 73,79 ****
                                       * </p>
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                    ! public class Parser 
                                        implements DTDConstants
                                      {
                                        /**
                                    --- 73,79 ----
                                       * </p>
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                    ! public class Parser
                                        implements DTDConstants
                                      {
                                        /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/rtf/RTFParser.java gcc-4.6.0/libjava/classpath/javax/swing/text/rtf/RTFParser.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/rtf/RTFParser.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/rtf/RTFParser.java	Tue Jan 11 19:46:05 2011
                                    *************** class RTFParser
                                    *** 139,145 ****
                                      
                                          parseHeader();
                                          parseDocument();
                                    !   
                                          Token t2 = scanner.peekToken();
                                          if (t2.type == Token.RCURLY)
                                            {
                                    --- 139,145 ----
                                      
                                          parseHeader();
                                          parseDocument();
                                    ! 
                                          Token t2 = scanner.peekToken();
                                          if (t2.type == Token.RCURLY)
                                            {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/text/rtf/RTFScanner.java gcc-4.6.0/libjava/classpath/javax/swing/text/rtf/RTFScanner.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/text/rtf/RTFScanner.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/text/rtf/RTFScanner.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Reader;
                                    *** 50,56 ****
                                       *
                                       * This scanner is based upon the RTF specification 1.6
                                       * available at:
                                    !  * 
                                       * <a
                                       * href="http://msdn.microsoft.com/library/en-us/dnrtfspec/html/rtfspec.asp">
                                       * RTF specification at MSDN</a>
                                    --- 50,56 ----
                                       *
                                       * This scanner is based upon the RTF specification 1.6
                                       * available at:
                                    !  *
                                       * <a
                                       * href="http://msdn.microsoft.com/library/en-us/dnrtfspec/html/rtfspec.asp">
                                       * RTF specification at MSDN</a>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/AbstractLayoutCache.java gcc-4.6.0/libjava/classpath/javax/swing/tree/AbstractLayoutCache.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/AbstractLayoutCache.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/AbstractLayoutCache.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.event.TreeModelEvent;
                                    *** 45,51 ****
                                      
                                      /**
                                       * class AbstractLayoutCache
                                    !  * 
                                       * @author Andrew Selkirk
                                       */
                                      public abstract class AbstractLayoutCache
                                    --- 45,51 ----
                                      
                                      /**
                                       * class AbstractLayoutCache
                                    !  *
                                       * @author Andrew Selkirk
                                       */
                                      public abstract class AbstractLayoutCache
                                    *************** public abstract class AbstractLayoutCach
                                    *** 69,75 ****
                                          * the method is overridden, like if {@link FixedHeightLayoutCache}. If the
                                          * method is not overridden and the property is not set, the InternalError is
                                          * thrown.
                                    !     * 
                                          * @param value the last node in the path
                                          * @param row the node row
                                          * @param depth the indentation depth
                                    --- 69,75 ----
                                          * the method is overridden, like if {@link FixedHeightLayoutCache}. If the
                                          * method is not overridden and the property is not set, the InternalError is
                                          * thrown.
                                    !     *
                                          * @param value the last node in the path
                                          * @param row the node row
                                          * @param depth the indentation depth
                                    *************** public abstract class AbstractLayoutCach
                                    *** 116,122 ****
                                      
                                        /**
                                         * setNodeDimensions
                                    !    * 
                                         * @param dimensions TODO
                                         */
                                        public void setNodeDimensions(NodeDimensions dimensions)
                                    --- 116,122 ----
                                      
                                        /**
                                         * setNodeDimensions
                                    !    *
                                         * @param dimensions TODO
                                         */
                                        public void setNodeDimensions(NodeDimensions dimensions)
                                    *************** public abstract class AbstractLayoutCach
                                    *** 126,132 ****
                                      
                                        /**
                                         * getNodeDimensions
                                    !    * 
                                         * @return NodeDimensions
                                         */
                                        public NodeDimensions getNodeDimensions()
                                    --- 126,132 ----
                                      
                                        /**
                                         * getNodeDimensions
                                    !    *
                                         * @return NodeDimensions
                                         */
                                        public NodeDimensions getNodeDimensions()
                                    *************** public abstract class AbstractLayoutCach
                                    *** 139,145 ****
                                        * (unless the method is overridden, like if
                                        * {@link FixedHeightLayoutCache}. If the method is not overridden and
                                        * the property is not set, the InternalError is thrown.
                                    !   * 
                                        * @param value the last node in the path
                                        * @param row the node row
                                        * @param depth the indentation depth
                                    --- 139,145 ----
                                        * (unless the method is overridden, like if
                                        * {@link FixedHeightLayoutCache}. If the method is not overridden and
                                        * the property is not set, the InternalError is thrown.
                                    !   *
                                        * @param value the last node in the path
                                        * @param row the node row
                                        * @param depth the indentation depth
                                    *************** public abstract class AbstractLayoutCach
                                    *** 152,164 ****
                                          Rectangle d = null;
                                          if (nodeDimensions != null)
                                            d = nodeDimensions.getNodeDimensions(value, row, depth, expanded,
                                    ! 					   bounds);
                                          return d;
                                        }
                                      
                                        /**
                                         * Sets the model that provides the tree data.
                                    !    * 
                                         * @param model the model
                                         */
                                        public void setModel(TreeModel model)
                                    --- 152,164 ----
                                          Rectangle d = null;
                                          if (nodeDimensions != null)
                                            d = nodeDimensions.getNodeDimensions(value, row, depth, expanded,
                                    !                                            bounds);
                                          return d;
                                        }
                                      
                                        /**
                                         * Sets the model that provides the tree data.
                                    !    *
                                         * @param model the model
                                         */
                                        public void setModel(TreeModel model)
                                    *************** public abstract class AbstractLayoutCach
                                    *** 168,174 ****
                                      
                                        /**
                                         * Returns the model that provides the tree data.
                                    !    * 
                                         * @return the model
                                         */
                                        public TreeModel getModel()
                                    --- 168,174 ----
                                      
                                        /**
                                         * Returns the model that provides the tree data.
                                    !    *
                                         * @return the model
                                         */
                                        public TreeModel getModel()
                                    *************** public abstract class AbstractLayoutCach
                                    *** 178,184 ****
                                      
                                        /**
                                         * setRootVisible
                                    !    * 
                                         * @param visible <code>true</code> if root should be visible,
                                         * <code>false</code> otherwise
                                         */
                                    --- 178,184 ----
                                      
                                        /**
                                         * setRootVisible
                                    !    *
                                         * @param visible <code>true</code> if root should be visible,
                                         * <code>false</code> otherwise
                                         */
                                    *************** public abstract class AbstractLayoutCach
                                    *** 189,195 ****
                                      
                                        /**
                                         * isRootVisible
                                    !    * 
                                         * @return <code>true</code> if root is visible,
                                         * <code>false</code> otherwise
                                         */
                                    --- 189,195 ----
                                      
                                        /**
                                         * isRootVisible
                                    !    *
                                         * @return <code>true</code> if root is visible,
                                         * <code>false</code> otherwise
                                         */
                                    *************** public abstract class AbstractLayoutCach
                                    *** 200,206 ****
                                      
                                        /**
                                         * setRowHeight
                                    !    * 
                                         * @param height the row height
                                         */
                                        public void setRowHeight(int height)
                                    --- 200,206 ----
                                      
                                        /**
                                         * setRowHeight
                                    !    *
                                         * @param height the row height
                                         */
                                        public void setRowHeight(int height)
                                    *************** public abstract class AbstractLayoutCach
                                    *** 211,217 ****
                                      
                                        /**
                                         * getRowHeight
                                    !    * 
                                         * @return the row height
                                         */
                                        public int getRowHeight()
                                    --- 211,217 ----
                                      
                                        /**
                                         * getRowHeight
                                    !    *
                                         * @return the row height
                                         */
                                        public int getRowHeight()
                                    *************** public abstract class AbstractLayoutCach
                                    *** 221,227 ****
                                      
                                        /**
                                         * setSelectionModel
                                    !    * 
                                         * @param model the model
                                         */
                                        public void setSelectionModel(TreeSelectionModel model)
                                    --- 221,227 ----
                                      
                                        /**
                                         * setSelectionModel
                                    !    *
                                         * @param model the model
                                         */
                                        public void setSelectionModel(TreeSelectionModel model)
                                    *************** public abstract class AbstractLayoutCach
                                    *** 231,242 ****
                                          treeSelectionModel = model;
                                          if (treeSelectionModel != null)
                                            treeSelectionModel.setRowMapper(this);
                                    !     
                                        }
                                      
                                        /**
                                         * getSelectionModel
                                    !    * 
                                         * @return the model
                                         */
                                        public TreeSelectionModel getSelectionModel()
                                    --- 231,242 ----
                                          treeSelectionModel = model;
                                          if (treeSelectionModel != null)
                                            treeSelectionModel.setRowMapper(this);
                                    ! 
                                        }
                                      
                                        /**
                                         * getSelectionModel
                                    !    *
                                         * @return the model
                                         */
                                        public TreeSelectionModel getSelectionModel()
                                    *************** public abstract class AbstractLayoutCach
                                    *** 246,252 ****
                                      
                                        /**
                                         * Get the sum of heights for all rows. This class provides a general not
                                    !    * optimized implementation that is overridded in derived classes 
                                         * ({@link VariableHeightLayoutCache}, {@link FixedHeightLayoutCache}) for
                                         * the better performance.
                                         */
                                    --- 246,252 ----
                                      
                                        /**
                                         * Get the sum of heights for all rows. This class provides a general not
                                    !    * optimized implementation that is overridded in derived classes
                                         * ({@link VariableHeightLayoutCache}, {@link FixedHeightLayoutCache}) for
                                         * the better performance.
                                         */
                                    *************** public abstract class AbstractLayoutCach
                                    *** 265,274 ****
                                      
                                        /**
                                         * Get the maximal width. This class provides a general not
                                    !    * optimized implementation that is overridded in derived classes 
                                         * ({@link VariableHeightLayoutCache}, {@link FixedHeightLayoutCache}) for
                                         * the better performance.
                                    !    * 
                                         * @param rect the rectangle that is used during the method work
                                         */
                                        public int getPreferredWidth(Rectangle rect)
                                    --- 265,274 ----
                                      
                                        /**
                                         * Get the maximal width. This class provides a general not
                                    !    * optimized implementation that is overridded in derived classes
                                         * ({@link VariableHeightLayoutCache}, {@link FixedHeightLayoutCache}) for
                                         * the better performance.
                                    !    *
                                         * @param rect the rectangle that is used during the method work
                                         */
                                        public int getPreferredWidth(Rectangle rect)
                                    *************** public abstract class AbstractLayoutCach
                                    *** 279,285 ****
                                          for (int i = 0; i < n; i++)
                                            {
                                              TreePath path = getPathForRow(i);
                                    !         r.setBounds(0, 0, 0, 0);        
                                              r = getBounds(path, r);
                                              if (r.x + r.width > maximalWidth)
                                                maximalWidth = r.x + r.width;
                                    --- 279,285 ----
                                          for (int i = 0; i < n; i++)
                                            {
                                              TreePath path = getPathForRow(i);
                                    !         r.setBounds(0, 0, 0, 0);
                                              r = getBounds(path, r);
                                              if (r.x + r.width > maximalWidth)
                                                maximalWidth = r.x + r.width;
                                    *************** public abstract class AbstractLayoutCach
                                    *** 292,381 ****
                                        }
                                        /**
                                         * isExpanded
                                    !    * 
                                         * @param value0 TODO
                                    !    * 
                                         * @return boolean
                                         */
                                        public abstract boolean isExpanded(TreePath value0);
                                      
                                        /**
                                         * getBounds
                                    !    * 
                                         * @param value0 TODO
                                         * @param value1 TODO
                                    !    * 
                                         * @return Rectangle
                                         */
                                        public abstract Rectangle getBounds(TreePath value0, Rectangle value1);
                                      
                                        /**
                                         * getPathForRow
                                    !    * 
                                         * @param row the row
                                    !    * 
                                         * @return the tree path
                                         */
                                        public abstract TreePath getPathForRow(int row);
                                      
                                        /**
                                         * getRowForPath
                                    !    * 
                                         * @param path the tree path
                                    !    * 
                                         * @return the row
                                         */
                                        public abstract int getRowForPath(TreePath path);
                                      
                                        /**
                                         * getPathClosestTo
                                    !    * 
                                         * @param value0 TODO
                                         * @param value1 TODO
                                    !    * 
                                         * @return the tree path
                                         */
                                        public abstract TreePath getPathClosestTo(int value0, int value1);
                                      
                                        /**
                                         * getVisiblePathsFrom
                                    !    * 
                                         * @param path the tree path
                                    !    * 
                                         * @return Enumeration
                                         */
                                        public abstract Enumeration<TreePath> getVisiblePathsFrom(TreePath path);
                                      
                                        /**
                                         * getVisibleChildCount
                                    !    * 
                                         * @param path the tree path
                                    !    * 
                                         * @return int
                                         */
                                        public abstract int getVisibleChildCount(TreePath path);
                                      
                                        /**
                                         * setExpandedState
                                    !    * 
                                         * @param value0 TODO
                                    !    * 
                                         * @param value1 TODO
                                         */
                                        public abstract void setExpandedState(TreePath value0, boolean value1);
                                      
                                        /**
                                         * getExpandedState
                                    !    * 
                                         * @param path the tree path
                                    !    * 
                                         * @return boolean
                                         */
                                        public abstract boolean getExpandedState(TreePath path);
                                      
                                        /**
                                         * getRowCount
                                    !    * 
                                         * @return the number of rows
                                         */
                                        public abstract int getRowCount();
                                    --- 292,381 ----
                                        }
                                        /**
                                         * isExpanded
                                    !    *
                                         * @param value0 TODO
                                    !    *
                                         * @return boolean
                                         */
                                        public abstract boolean isExpanded(TreePath value0);
                                      
                                        /**
                                         * getBounds
                                    !    *
                                         * @param value0 TODO
                                         * @param value1 TODO
                                    !    *
                                         * @return Rectangle
                                         */
                                        public abstract Rectangle getBounds(TreePath value0, Rectangle value1);
                                      
                                        /**
                                         * getPathForRow
                                    !    *
                                         * @param row the row
                                    !    *
                                         * @return the tree path
                                         */
                                        public abstract TreePath getPathForRow(int row);
                                      
                                        /**
                                         * getRowForPath
                                    !    *
                                         * @param path the tree path
                                    !    *
                                         * @return the row
                                         */
                                        public abstract int getRowForPath(TreePath path);
                                      
                                        /**
                                         * getPathClosestTo
                                    !    *
                                         * @param value0 TODO
                                         * @param value1 TODO
                                    !    *
                                         * @return the tree path
                                         */
                                        public abstract TreePath getPathClosestTo(int value0, int value1);
                                      
                                        /**
                                         * getVisiblePathsFrom
                                    !    *
                                         * @param path the tree path
                                    !    *
                                         * @return Enumeration
                                         */
                                        public abstract Enumeration<TreePath> getVisiblePathsFrom(TreePath path);
                                      
                                        /**
                                         * getVisibleChildCount
                                    !    *
                                         * @param path the tree path
                                    !    *
                                         * @return int
                                         */
                                        public abstract int getVisibleChildCount(TreePath path);
                                      
                                        /**
                                         * setExpandedState
                                    !    *
                                         * @param value0 TODO
                                    !    *
                                         * @param value1 TODO
                                         */
                                        public abstract void setExpandedState(TreePath value0, boolean value1);
                                      
                                        /**
                                         * getExpandedState
                                    !    *
                                         * @param path the tree path
                                    !    *
                                         * @return boolean
                                         */
                                        public abstract boolean getExpandedState(TreePath path);
                                      
                                        /**
                                         * getRowCount
                                    !    *
                                         * @return the number of rows
                                         */
                                        public abstract int getRowCount();
                                    *************** public abstract class AbstractLayoutCach
                                    *** 387,421 ****
                                      
                                        /**
                                         * invalidatePathBounds
                                    !    * 
                                         * @param path the tree path
                                         */
                                        public abstract void invalidatePathBounds(TreePath path);
                                      
                                        /**
                                         * treeNodesChanged
                                    !    * 
                                         * @param event the event to send
                                         */
                                        public abstract void treeNodesChanged(TreeModelEvent event);
                                      
                                        /**
                                         * treeNodesInserted
                                    !    * 
                                         * @param event the event to send
                                         */
                                        public abstract void treeNodesInserted(TreeModelEvent event);
                                      
                                        /**
                                         * treeNodesRemoved
                                    !    * 
                                         * @param event the event to send
                                         */
                                        public abstract void treeNodesRemoved(TreeModelEvent event);
                                      
                                        /**
                                         * treeStructureChanged
                                    !    * 
                                         * @param event the event to send
                                         */
                                        public abstract void treeStructureChanged(TreeModelEvent event);
                                    --- 387,421 ----
                                      
                                        /**
                                         * invalidatePathBounds
                                    !    *
                                         * @param path the tree path
                                         */
                                        public abstract void invalidatePathBounds(TreePath path);
                                      
                                        /**
                                         * treeNodesChanged
                                    !    *
                                         * @param event the event to send
                                         */
                                        public abstract void treeNodesChanged(TreeModelEvent event);
                                      
                                        /**
                                         * treeNodesInserted
                                    !    *
                                         * @param event the event to send
                                         */
                                        public abstract void treeNodesInserted(TreeModelEvent event);
                                      
                                        /**
                                         * treeNodesRemoved
                                    !    *
                                         * @param event the event to send
                                         */
                                        public abstract void treeNodesRemoved(TreeModelEvent event);
                                      
                                        /**
                                         * treeStructureChanged
                                    !    *
                                         * @param event the event to send
                                         */
                                        public abstract void treeStructureChanged(TreeModelEvent event);
                                    *************** public abstract class AbstractLayoutCach
                                    *** 426,432 ****
                                         * one. To have the benefit from the bulk conversion, the method must be
                                         * overridden in the derived classes. The default method delegates work
                                         * to the {@link #getRowForPath(TreePath)}.
                                    !    * 
                                         * @param paths the tree paths the array of the tree pathes.
                                         * @return the array of the matching tree rows.
                                         */
                                    --- 426,432 ----
                                         * one. To have the benefit from the bulk conversion, the method must be
                                         * overridden in the derived classes. The default method delegates work
                                         * to the {@link #getRowForPath(TreePath)}.
                                    !    *
                                         * @param paths the tree paths the array of the tree pathes.
                                         * @return the array of the matching tree rows.
                                         */
                                    *************** public abstract class AbstractLayoutCach
                                    *** 445,451 ****
                                        /**
                                         * Returns true if this layout supposes that all rows have the fixed
                                         * height.
                                    !    * 
                                         * @return boolean true if all rows in the tree must have the fixed
                                         * height (false by default).
                                         */
                                    --- 445,451 ----
                                        /**
                                         * Returns true if this layout supposes that all rows have the fixed
                                         * height.
                                    !    *
                                         * @return boolean true if all rows in the tree must have the fixed
                                         * height (false by default).
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java	Tue Jan 11 19:46:05 2011
                                    *************** public class DefaultMutableTreeNode
                                    *** 101,107 ****
                                      
                                        /**
                                         * Creates a <code>DefaultMutableTreeNode</code> object with the given
                                    !    * user object attached to it. This is equivalent to 
                                         * <code>DefaultMutableTreeNode(userObject, true)</code>.
                                         *
                                         * @param userObject the user object (<code>null</code> permitted).
                                    --- 101,107 ----
                                      
                                        /**
                                         * Creates a <code>DefaultMutableTreeNode</code> object with the given
                                    !    * user object attached to it. This is equivalent to
                                         * <code>DefaultMutableTreeNode(userObject, true)</code>.
                                         *
                                         * @param userObject the user object (<code>null</code> permitted).
                                    *************** public class DefaultMutableTreeNode
                                    *** 126,132 ****
                                        }
                                      
                                        /**
                                    !    * Returns a clone of the node.  The clone contains a shallow copy of the 
                                         * user object, and does not copy the parent node or the child nodes.
                                         *
                                         * @return A clone of the node.
                                    --- 126,132 ----
                                        }
                                      
                                        /**
                                    !    * Returns a clone of the node.  The clone contains a shallow copy of the
                                         * user object, and does not copy the parent node or the child nodes.
                                         *
                                         * @return A clone of the node.
                                    *************** public class DefaultMutableTreeNode
                                    *** 159,182 ****
                                         *
                                         * @param child the child node (<code>null</code> not permitted).
                                         *
                                    !    * @throws IllegalStateException if {@link #getAllowsChildren()} returns 
                                         *     <code>false</code>.
                                         * @throws IllegalArgumentException if {@link #isNodeAncestor} returns
                                    !    *     <code>true</code>. 
                                    !    * @throws IllegalArgumentException if <code>child</code> is 
                                         *     <code>null</code>.
                                         */
                                        public void add(MutableTreeNode child)
                                        {
                                          if (! allowsChildren)
                                            throw new IllegalStateException();
                                    !     
                                          if (child == null)
                                            throw new IllegalArgumentException();
                                      
                                          if (isNodeAncestor(child))
                                            throw new IllegalArgumentException("Cannot add ancestor node.");
                                    !     
                                          children.add(child);
                                          child.setParent(this);
                                        }
                                    --- 159,182 ----
                                         *
                                         * @param child the child node (<code>null</code> not permitted).
                                         *
                                    !    * @throws IllegalStateException if {@link #getAllowsChildren()} returns
                                         *     <code>false</code>.
                                         * @throws IllegalArgumentException if {@link #isNodeAncestor} returns
                                    !    *     <code>true</code>.
                                    !    * @throws IllegalArgumentException if <code>child</code> is
                                         *     <code>null</code>.
                                         */
                                        public void add(MutableTreeNode child)
                                        {
                                          if (! allowsChildren)
                                            throw new IllegalStateException();
                                    ! 
                                          if (child == null)
                                            throw new IllegalArgumentException();
                                      
                                          if (isNodeAncestor(child))
                                            throw new IllegalArgumentException("Cannot add ancestor node.");
                                    ! 
                                          children.add(child);
                                          child.setParent(this);
                                        }
                                    *************** public class DefaultMutableTreeNode
                                    *** 194,203 ****
                                        /**
                                         * Removes the child with the given index from this node.
                                         *
                                    !    * @param index the index (in the range <code>0</code> to 
                                         *     <code>getChildCount() - 1</code>).
                                    !    *     
                                    !    * @throws ArrayIndexOutOfBoundsException if <code>index</code> is outside 
                                         *         the valid range.
                                         */
                                        public void remove(int index)
                                    --- 194,203 ----
                                        /**
                                         * Removes the child with the given index from this node.
                                         *
                                    !    * @param index the index (in the range <code>0</code> to
                                         *     <code>getChildCount() - 1</code>).
                                    !    *
                                    !    * @throws ArrayIndexOutOfBoundsException if <code>index</code> is outside
                                         *         the valid range.
                                         */
                                        public void remove(int index)
                                    *************** public class DefaultMutableTreeNode
                                    *** 207,218 ****
                                        }
                                      
                                        /**
                                    !    * Removes the given child from this node and sets its parent to 
                                         * <code>null</code>.
                                         *
                                         * @param node the child node (<code>null</code> not permitted).
                                    !    * 
                                    !    * @throws IllegalArgumentException if <code>node</code> is not a child of 
                                         *     this node.
                                         * @throws IllegalArgumentException if <code>node</code> is null.
                                         */
                                    --- 207,218 ----
                                        }
                                      
                                        /**
                                    !    * Removes the given child from this node and sets its parent to
                                         * <code>null</code>.
                                         *
                                         * @param node the child node (<code>null</code> not permitted).
                                    !    *
                                    !    * @throws IllegalArgumentException if <code>node</code> is not a child of
                                         *     this node.
                                         * @throws IllegalArgumentException if <code>node</code> is null.
                                         */
                                    *************** public class DefaultMutableTreeNode
                                    *** 259,266 ****
                                         *
                                         * @param node the child node (<code>null</code> not permitted).
                                         * @param index the index.
                                    !    * 
                                    !    * @throws IllegalArgumentException if <code>node</code> is 
                                         *     </code>null</code>.
                                         */
                                        public void insert(MutableTreeNode node, int index)
                                    --- 259,266 ----
                                         *
                                         * @param node the child node (<code>null</code> not permitted).
                                         * @param index the index.
                                    !    *
                                    !    * @throws IllegalArgumentException if <code>node</code> is
                                         *     </code>null</code>.
                                         */
                                        public void insert(MutableTreeNode node, int index)
                                    *************** public class DefaultMutableTreeNode
                                    *** 270,276 ****
                                      
                                          if (node == null)
                                            throw new IllegalArgumentException("Null 'node' argument.");
                                    !     
                                          if (isNodeAncestor(node))
                                            throw new IllegalArgumentException("Cannot insert ancestor node.");
                                      
                                    --- 270,276 ----
                                      
                                          if (node == null)
                                            throw new IllegalArgumentException("Null 'node' argument.");
                                    ! 
                                          if (isNodeAncestor(node))
                                            throw new IllegalArgumentException("Cannot insert ancestor node.");
                                      
                                    *************** public class DefaultMutableTreeNode
                                    *** 293,303 ****
                                         *
                                         * @return an enumeration of tree nodes
                                         */
                                        public Enumeration children()
                                        {
                                          if (children.size() == 0)
                                            return EMPTY_ENUMERATION;
                                    !     
                                          return children.elements();
                                        }
                                      
                                    --- 293,304 ----
                                         *
                                         * @return an enumeration of tree nodes
                                         */
                                    +   @SuppressWarnings("unchecked") // Required for API compatibility
                                        public Enumeration children()
                                        {
                                          if (children.size() == 0)
                                            return EMPTY_ENUMERATION;
                                    ! 
                                          return children.elements();
                                        }
                                      
                                    *************** public class DefaultMutableTreeNode
                                    *** 320,326 ****
                                         */
                                        public TreeNode getChildAt(int index)
                                        {
                                    !     return (TreeNode) children.elementAt(index);
                                        }
                                      
                                        /**
                                    --- 321,327 ----
                                         */
                                        public TreeNode getChildAt(int index)
                                        {
                                    !     return children.elementAt(index);
                                        }
                                      
                                        /**
                                    *************** public class DefaultMutableTreeNode
                                    *** 336,346 ****
                                        /**
                                         * Returns the index of the specified child node, or -1 if the node is not
                                         * in fact a child of this node.
                                    !    * 
                                         * @param node  the node (<code>null</code> not permitted).
                                    !    * 
                                         * @return The index of the specified child node, or -1.
                                    !    * 
                                         * @throws IllegalArgumentException if <code>node</code> is <code>null</code>.
                                         */
                                        public int getIndex(TreeNode node)
                                    --- 337,347 ----
                                        /**
                                         * Returns the index of the specified child node, or -1 if the node is not
                                         * in fact a child of this node.
                                    !    *
                                         * @param node  the node (<code>null</code> not permitted).
                                    !    *
                                         * @return The index of the specified child node, or -1.
                                    !    *
                                         * @throws IllegalArgumentException if <code>node</code> is <code>null</code>.
                                         */
                                        public int getIndex(TreeNode node)
                                    *************** public class DefaultMutableTreeNode
                                    *** 351,357 ****
                                        }
                                      
                                        /**
                                    !    * Sets the flag that controls whether or not this node allows the addition / 
                                         * insertion of child nodes.  If the flag is set to <code>false</code>, any
                                         * existing children are removed.
                                         *
                                    --- 352,358 ----
                                        }
                                      
                                        /**
                                    !    * Sets the flag that controls whether or not this node allows the addition /
                                         * insertion of child nodes.  If the flag is set to <code>false</code>, any
                                         * existing children are removed.
                                         *
                                    *************** public class DefaultMutableTreeNode
                                    *** 421,429 ****
                                         * <li>the parent node (if there is one);</li>
                                         * <li>any ancestor of the parent node;</li>
                                         * </ul>
                                    !    * If <code>node</code> is <code>null</code>, this method returns 
                                         * <code>false</code>.
                                    !    * 
                                         * @param node  the node (<code>null</code> permitted).
                                         *
                                         * @return A boolean.
                                    --- 422,430 ----
                                         * <li>the parent node (if there is one);</li>
                                         * <li>any ancestor of the parent node;</li>
                                         * </ul>
                                    !    * If <code>node</code> is <code>null</code>, this method returns
                                         * <code>false</code>.
                                    !    *
                                         * @param node  the node (<code>null</code> permitted).
                                         *
                                         * @return A boolean.
                                    *************** public class DefaultMutableTreeNode
                                    *** 449,457 ****
                                         * <li>the child nodes belonging to this tree node, if there are any;</li>
                                         * <li>any descendants of the child nodes;</li>
                                         * </ul>
                                    !    * If <code>node</code> is <code>null</code>, this method returns 
                                         * <code>false</code>.
                                    !    * 
                                         * @param node  the node (<code>null</code> permitted).
                                         *
                                         * @return A boolean.
                                    --- 450,458 ----
                                         * <li>the child nodes belonging to this tree node, if there are any;</li>
                                         * <li>any descendants of the child nodes;</li>
                                         * </ul>
                                    !    * If <code>node</code> is <code>null</code>, this method returns
                                         * <code>false</code>.
                                    !    *
                                         * @param node  the node (<code>null</code> permitted).
                                         *
                                         * @return A boolean.
                                    *************** public class DefaultMutableTreeNode
                                    *** 462,468 ****
                                            return false;
                                      
                                          TreeNode current = node;
                                    !     
                                          while (current != null
                                                 && current != this)
                                            current = current.getParent();
                                    --- 463,469 ----
                                            return false;
                                      
                                          TreeNode current = node;
                                    ! 
                                          while (current != null
                                                 && current != this)
                                            current = current.getParent();
                                    *************** public class DefaultMutableTreeNode
                                    *** 532,538 ****
                                          TreeNode node = getChildAt(0);
                                          int depth = 0;
                                          int current = 1;
                                    !     
                                          while (! stack.empty())
                                            {
                                              if (node.getChildCount() != 0)
                                    --- 533,539 ----
                                          TreeNode node = getChildAt(0);
                                          int depth = 0;
                                          int current = 1;
                                    ! 
                                          while (! stack.empty())
                                            {
                                              if (node.getChildCount() != 0)
                                    *************** public class DefaultMutableTreeNode
                                    *** 548,554 ****
                                      
                                                  int size;
                                                  int index;
                                    !             
                                                  do
                                                    {
                                                      node = node.getParent();
                                    --- 549,555 ----
                                      
                                                  int size;
                                                  int index;
                                    ! 
                                                  do
                                                    {
                                                      node = node.getParent();
                                    *************** public class DefaultMutableTreeNode
                                    *** 605,611 ****
                                            {
                                              if (depth == 0)
                                                return null;
                                    !         
                                              return new TreeNode[depth];
                                            }
                                      
                                    --- 606,612 ----
                                            {
                                              if (depth == 0)
                                                return null;
                                    ! 
                                              return new TreeNode[depth];
                                            }
                                      
                                    *************** public class DefaultMutableTreeNode
                                    *** 623,629 ****
                                        {
                                          TreeNode[] path = getPathToRoot(this, 0);
                                          Object[] object = new Object[path.length];
                                    !     
                                          for (int index = 0; index < path.length; ++index)
                                            object[index] = ((DefaultMutableTreeNode) path[index]).getUserObject();
                                      
                                    --- 624,630 ----
                                        {
                                          TreeNode[] path = getPathToRoot(this, 0);
                                          Object[] object = new Object[path.length];
                                    ! 
                                          for (int index = 0; index < path.length; ++index)
                                            object[index] = ((DefaultMutableTreeNode) path[index]).getUserObject();
                                      
                                    *************** public class DefaultMutableTreeNode
                                    *** 639,645 ****
                                        {
                                          TreeNode current = this;
                                          TreeNode check = current.getParent();
                                    !     
                                          while (check != null)
                                            {
                                              current = check;
                                    --- 640,646 ----
                                        {
                                          TreeNode current = this;
                                          TreeNode check = current.getParent();
                                    ! 
                                          while (check != null)
                                            {
                                              current = check;
                                    *************** public class DefaultMutableTreeNode
                                    *** 674,680 ****
                                          // Return next sibling (if needed the sibling of some parent).
                                          DefaultMutableTreeNode node = this;
                                          DefaultMutableTreeNode sibling;
                                    !     
                                          do
                                            {
                                              sibling = node.getNextSibling();
                                    --- 675,681 ----
                                          // Return next sibling (if needed the sibling of some parent).
                                          DefaultMutableTreeNode node = this;
                                          DefaultMutableTreeNode sibling;
                                    ! 
                                          do
                                            {
                                              sibling = node.getNextSibling();
                                    *************** public class DefaultMutableTreeNode
                                    *** 682,688 ****
                                            }
                                          while (sibling == null &&
                                                 node != null);
                                    !     
                                          // Return sibling.
                                          return sibling;
                                        }
                                    --- 683,689 ----
                                            }
                                          while (sibling == null &&
                                                 node != null);
                                    ! 
                                          // Return sibling.
                                          return sibling;
                                        }
                                    *************** public class DefaultMutableTreeNode
                                    *** 697,703 ****
                                          // Return null if no parent.
                                          if (parent == null)
                                            return null;
                                    !     
                                          DefaultMutableTreeNode sibling = getPreviousSibling();
                                      
                                          // Return parent if no sibling.
                                    --- 698,704 ----
                                          // Return null if no parent.
                                          if (parent == null)
                                            return null;
                                    ! 
                                          DefaultMutableTreeNode sibling = getPreviousSibling();
                                      
                                          // Return parent if no sibling.
                                    *************** public class DefaultMutableTreeNode
                                    *** 717,722 ****
                                    --- 718,724 ----
                                         *
                                         * @return Enumeration
                                         */
                                    +   @SuppressWarnings("unchecked") // Required for API compatibility
                                        public Enumeration preorderEnumeration()
                                        {
                                          return new PreorderEnumeration(this);
                                    *************** public class DefaultMutableTreeNode
                                    *** 727,732 ****
                                    --- 729,735 ----
                                         *
                                         * @return Enumeration
                                         */
                                    +   @SuppressWarnings("unchecked") // Required for API compatibility
                                        public Enumeration postorderEnumeration()
                                        {
                                          return new PostorderEnumeration(this);
                                    *************** public class DefaultMutableTreeNode
                                    *** 737,742 ****
                                    --- 740,746 ----
                                         *
                                         * @return Enumeration
                                         */
                                    +   @SuppressWarnings("unchecked") // Required for API compatibility
                                        public Enumeration breadthFirstEnumeration()
                                        {
                                          return new BreadthFirstEnumeration(this);
                                    *************** public class DefaultMutableTreeNode
                                    *** 747,752 ****
                                    --- 751,757 ----
                                         *
                                         * @return Enumeration
                                         */
                                    +   @SuppressWarnings("unchecked") // Required for API compatibility
                                        public Enumeration depthFirstEnumeration()
                                        {
                                          return postorderEnumeration();
                                    *************** public class DefaultMutableTreeNode
                                    *** 759,769 ****
                                         *
                                         * @return Enumeration
                                         */
                                        public Enumeration pathFromAncestorEnumeration(TreeNode node)
                                        {
                                          if (node == null)
                                            throw new IllegalArgumentException();
                                    !     
                                          TreeNode parent = this;
                                          Vector<TreeNode> nodes = new Vector<TreeNode>();
                                          nodes.add(this);
                                    --- 764,775 ----
                                         *
                                         * @return Enumeration
                                         */
                                    +   @SuppressWarnings("unchecked") // Required for API compatibility
                                        public Enumeration pathFromAncestorEnumeration(TreeNode node)
                                        {
                                          if (node == null)
                                            throw new IllegalArgumentException();
                                    ! 
                                          TreeNode parent = this;
                                          Vector<TreeNode> nodes = new Vector<TreeNode>();
                                          nodes.add(this);
                                    *************** public class DefaultMutableTreeNode
                                    *** 776,788 ****
                                      
                                          if (parent != node)
                                            throw new IllegalArgumentException();
                                    !     
                                          return nodes.elements();
                                        }
                                      
                                        /**
                                    !    * Returns <code>true</code> if <code>node</code> is a child of this tree 
                                    !    * node, and <code>false</code> otherwise.  If <code>node</code> is 
                                         * <code>null</code>, this method returns <code>false</code>.
                                         *
                                         * @param node  the node (<code>null</code> permitted).
                                    --- 782,794 ----
                                      
                                          if (parent != node)
                                            throw new IllegalArgumentException();
                                    ! 
                                          return nodes.elements();
                                        }
                                      
                                        /**
                                    !    * Returns <code>true</code> if <code>node</code> is a child of this tree
                                    !    * node, and <code>false</code> otherwise.  If <code>node</code> is
                                         * <code>null</code>, this method returns <code>false</code>.
                                         *
                                         * @param node  the node (<code>null</code> permitted).
                                    *************** public class DefaultMutableTreeNode
                                    *** 801,836 ****
                                         * Returns the first child node belonging to this tree node.
                                         *
                                         * @return The first child node.
                                    !    * 
                                         * @throws NoSuchElementException if this tree node has no children.
                                         */
                                        public TreeNode getFirstChild()
                                        {
                                    !     return (TreeNode) children.firstElement();
                                        }
                                      
                                        /**
                                         * Returns the last child node belonging to this tree node.
                                         *
                                         * @return The last child node.
                                    !    * 
                                         * @throws NoSuchElementException if this tree node has no children.
                                         */
                                        public TreeNode getLastChild()
                                        {
                                    !     return (TreeNode) children.lastElement();
                                        }
                                      
                                        /**
                                    !    * Returns the next child after the specified <code>node</code>, or 
                                    !    * <code>null</code> if there is no child after the specified 
                                         * <code>node</code>.
                                         *
                                         * @param node  a child of this node (<code>null</code> not permitted).
                                         *
                                         * @return The next child, or <code>null</code>.
                                    !    * 
                                    !    * @throws IllegalArgumentException if <code>node</code> is not a child of 
                                         *     this node, or is <code>null</code>.
                                         */
                                        public TreeNode getChildAfter(TreeNode node)
                                    --- 807,842 ----
                                         * Returns the first child node belonging to this tree node.
                                         *
                                         * @return The first child node.
                                    !    *
                                         * @throws NoSuchElementException if this tree node has no children.
                                         */
                                        public TreeNode getFirstChild()
                                        {
                                    !     return children.firstElement();
                                        }
                                      
                                        /**
                                         * Returns the last child node belonging to this tree node.
                                         *
                                         * @return The last child node.
                                    !    *
                                         * @throws NoSuchElementException if this tree node has no children.
                                         */
                                        public TreeNode getLastChild()
                                        {
                                    !     return children.lastElement();
                                        }
                                      
                                        /**
                                    !    * Returns the next child after the specified <code>node</code>, or
                                    !    * <code>null</code> if there is no child after the specified
                                         * <code>node</code>.
                                         *
                                         * @param node  a child of this node (<code>null</code> not permitted).
                                         *
                                         * @return The next child, or <code>null</code>.
                                    !    *
                                    !    * @throws IllegalArgumentException if <code>node</code> is not a child of
                                         *     this node, or is <code>null</code>.
                                         */
                                        public TreeNode getChildAfter(TreeNode node)
                                    *************** public class DefaultMutableTreeNode
                                    *** 847,861 ****
                                        }
                                      
                                        /**
                                    !    * Returns the previous child before the specified <code>node</code>, or 
                                    !    * <code>null</code> if there is no child before the specified 
                                         * <code>node</code>.
                                         *
                                         * @param node  a child of this node (<code>null</code> not permitted).
                                         *
                                         * @return The previous child, or <code>null</code>.
                                    !    * 
                                    !    * @throws IllegalArgumentException if <code>node</code> is not a child of 
                                         *     this node, or is <code>null</code>.
                                         */
                                        public TreeNode getChildBefore(TreeNode node)
                                    --- 853,867 ----
                                        }
                                      
                                        /**
                                    !    * Returns the previous child before the specified <code>node</code>, or
                                    !    * <code>null</code> if there is no child before the specified
                                         * <code>node</code>.
                                         *
                                         * @param node  a child of this node (<code>null</code> not permitted).
                                         *
                                         * @return The previous child, or <code>null</code>.
                                    !    *
                                    !    * @throws IllegalArgumentException if <code>node</code> is not a child of
                                         *     this node, or is <code>null</code>.
                                         */
                                        public TreeNode getChildBefore(TreeNode node)
                                    *************** public class DefaultMutableTreeNode
                                    *** 907,914 ****
                                      
                                        /**
                                         * Returns the next sibling for this tree node.  If this node has no parent,
                                    !    * or this node is the last child of its parent, this method returns 
                                    !    * <code>null</code>.  
                                         *
                                         * @return The next sibling, or <code>null</code>.
                                         */
                                    --- 913,920 ----
                                      
                                        /**
                                         * Returns the next sibling for this tree node.  If this node has no parent,
                                    !    * or this node is the last child of its parent, this method returns
                                    !    * <code>null</code>.
                                         *
                                         * @return The next sibling, or <code>null</code>.
                                         */
                                    *************** public class DefaultMutableTreeNode
                                    *** 918,924 ****
                                            return null;
                                      
                                          int index = parent.getIndex(this) + 1;
                                    !     
                                          if (index == parent.getChildCount())
                                            return null;
                                      
                                    --- 924,930 ----
                                            return null;
                                      
                                          int index = parent.getIndex(this) + 1;
                                    ! 
                                          if (index == parent.getChildCount())
                                            return null;
                                      
                                    *************** public class DefaultMutableTreeNode
                                    *** 926,934 ****
                                        }
                                      
                                        /**
                                    !    * Returns the previous sibling for this tree node.  If this node has no 
                                    !    * parent, or this node is the first child of its parent, this method returns 
                                    !    * <code>null</code>.  
                                         *
                                         * @return The previous sibling, or <code>null</code>.
                                         */
                                    --- 932,940 ----
                                        }
                                      
                                        /**
                                    !    * Returns the previous sibling for this tree node.  If this node has no
                                    !    * parent, or this node is the first child of its parent, this method returns
                                    !    * <code>null</code>.
                                         *
                                         * @return The previous sibling, or <code>null</code>.
                                         */
                                    *************** public class DefaultMutableTreeNode
                                    *** 946,952 ****
                                        }
                                      
                                        /**
                                    !    * Returns <code>true</code> if this tree node is a lead node (that is, it 
                                         * has no children), and <code>false</otherwise>.
                                         *
                                         * @return A boolean.
                                    --- 952,958 ----
                                        }
                                      
                                        /**
                                    !    * Returns <code>true</code> if this tree node is a lead node (that is, it
                                         * has no children), and <code>false</otherwise>.
                                         *
                                         * @return A boolean.
                                    *************** public class DefaultMutableTreeNode
                                    *** 957,964 ****
                                        }
                                      
                                        /**
                                    !    * Returns the first leaf node that is a descendant of this node.  Recall 
                                    !    * that a node is its own descendant, so if this node has no children then 
                                         * it is returned as the first leaf.
                                         *
                                         * @return The first leaf node.
                                    --- 963,970 ----
                                        }
                                      
                                        /**
                                    !    * Returns the first leaf node that is a descendant of this node.  Recall
                                    !    * that a node is its own descendant, so if this node has no children then
                                         * it is returned as the first leaf.
                                         *
                                         * @return The first leaf node.
                                    *************** public class DefaultMutableTreeNode
                                    *** 966,972 ****
                                        public DefaultMutableTreeNode getFirstLeaf()
                                        {
                                          TreeNode current = this;
                                    !     
                                          while (current.getChildCount() > 0)
                                            current = current.getChildAt(0);
                                      
                                    --- 972,978 ----
                                        public DefaultMutableTreeNode getFirstLeaf()
                                        {
                                          TreeNode current = this;
                                    ! 
                                          while (current.getChildCount() > 0)
                                            current = current.getChildAt(0);
                                      
                                    *************** public class DefaultMutableTreeNode
                                    *** 974,981 ****
                                        }
                                      
                                        /**
                                    !    * Returns the last leaf node that is a descendant of this node.  Recall 
                                    !    * that a node is its own descendant, so if this node has no children then 
                                         * it is returned as the last leaf.
                                         *
                                         * @return The first leaf node.
                                    --- 980,987 ----
                                        }
                                      
                                        /**
                                    !    * Returns the last leaf node that is a descendant of this node.  Recall
                                    !    * that a node is its own descendant, so if this node has no children then
                                         * it is returned as the last leaf.
                                         *
                                         * @return The first leaf node.
                                    *************** public class DefaultMutableTreeNode
                                    *** 984,990 ****
                                        {
                                          TreeNode current = this;
                                          int size = current.getChildCount();
                                    !     
                                          while (size > 0)
                                            {
                                              current = current.getChildAt(size - 1);
                                    --- 990,996 ----
                                        {
                                          TreeNode current = this;
                                          int size = current.getChildCount();
                                    ! 
                                          while (size > 0)
                                            {
                                              current = current.getChildAt(size - 1);
                                    *************** public class DefaultMutableTreeNode
                                    *** 995,1001 ****
                                        }
                                      
                                        /**
                                    !    * Returns the next leaf node after this tree node. 
                                         *
                                         * @return The next leaf node, or <code>null</code>.
                                         */
                                    --- 1001,1007 ----
                                        }
                                      
                                        /**
                                    !    * Returns the next leaf node after this tree node.
                                         *
                                         * @return The next leaf node, or <code>null</code>.
                                         */
                                    *************** public class DefaultMutableTreeNode
                                    *** 1036,1047 ****
                                        public int getLeafCount()
                                        {
                                          int count = 0;
                                    !     Enumeration e = depthFirstEnumeration();
                                      
                                          while (e.hasMoreElements())
                                            {
                                              TreeNode current = (TreeNode) e.nextElement();
                                    !         
                                              if (current.isLeaf())
                                                count++;
                                            }
                                    --- 1042,1053 ----
                                        public int getLeafCount()
                                        {
                                          int count = 0;
                                    !     Enumeration<?> e = depthFirstEnumeration();
                                      
                                          while (e.hasMoreElements())
                                            {
                                              TreeNode current = (TreeNode) e.nextElement();
                                    ! 
                                              if (current.isLeaf())
                                                count++;
                                            }
                                    *************** public class DefaultMutableTreeNode
                                    *** 1076,1082 ****
                                                TreeNode node = queue.removeFirst();
                                      
                                                Enumeration<TreeNode> children =
                                    ! 	    (Enumeration<TreeNode>) node.children();
                                                while (children.hasMoreElements())
                                                    queue.add(children.nextElement());
                                      
                                    --- 1082,1088 ----
                                                TreeNode node = queue.removeFirst();
                                      
                                                Enumeration<TreeNode> children =
                                    !             (Enumeration<TreeNode>) node.children();
                                                while (children.hasMoreElements())
                                                    queue.add(children.nextElement());
                                      
                                    *************** public class DefaultMutableTreeNode
                                    *** 1089,1098 ****
                                         */
                                        static class PreorderEnumeration implements Enumeration<TreeNode>
                                        {
                                    ! 	  TreeNode next;
                                      
                                            Stack<Enumeration<TreeNode>> childrenEnums =
                                    ! 	new Stack<Enumeration<TreeNode>>();
                                      
                                            @SuppressWarnings("unchecked")
                                            PreorderEnumeration(TreeNode node)
                                    --- 1095,1104 ----
                                         */
                                        static class PreorderEnumeration implements Enumeration<TreeNode>
                                        {
                                    !           TreeNode next;
                                      
                                            Stack<Enumeration<TreeNode>> childrenEnums =
                                    !         new Stack<Enumeration<TreeNode>>();
                                      
                                            @SuppressWarnings("unchecked")
                                            PreorderEnumeration(TreeNode node)
                                    *************** public class DefaultMutableTreeNode
                                    *** 1132,1138 ****
                                      
                                                    return child;
                                                }
                                    !           
                                                // If no children are left, we return to a higher level.
                                                childrenEnums.pop();
                                      
                                    --- 1138,1144 ----
                                      
                                                    return child;
                                                }
                                    ! 
                                                // If no children are left, we return to a higher level.
                                                childrenEnums.pop();
                                      
                                    *************** public class DefaultMutableTreeNode
                                    *** 1155,1161 ****
                                      
                                             Stack<TreeNode> nodes = new Stack<TreeNode>();
                                             Stack<Enumeration<TreeNode>> childrenEnums =
                                    ! 	 new Stack<Enumeration<TreeNode>>();
                                      
                                             @SuppressWarnings("unchecked")
                                             PostorderEnumeration(TreeNode node)
                                    --- 1161,1167 ----
                                      
                                             Stack<TreeNode> nodes = new Stack<TreeNode>();
                                             Stack<Enumeration<TreeNode>> childrenEnums =
                                    !          new Stack<Enumeration<TreeNode>>();
                                      
                                             @SuppressWarnings("unchecked")
                                             PostorderEnumeration(TreeNode node)
                                    *************** public class DefaultMutableTreeNode
                                    *** 1188,1194 ****
                                                     nodes.push(node);
                                      
                                                     Enumeration<TreeNode> newChildren =
                                    ! 		 (Enumeration<TreeNode>) node.children();
                                                     childrenEnums.push(newChildren);
                                      
                                                     return traverse(newChildren);
                                    --- 1194,1200 ----
                                                     nodes.push(node);
                                      
                                                     Enumeration<TreeNode> newChildren =
                                    !                  (Enumeration<TreeNode>) node.children();
                                                     childrenEnums.push(newChildren);
                                      
                                                     return traverse(newChildren);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.event.TreeSelectionLi
                                    *** 68,74 ****
                                      
                                      /**
                                       * Participates in the tree cell editing.
                                    !  * 
                                       * @author Andrew Selkirk
                                       * @author Audrius Meskauskas
                                       */
                                    --- 68,74 ----
                                      
                                      /**
                                       * Participates in the tree cell editing.
                                    !  *
                                       * @author Andrew Selkirk
                                       * @author Audrius Meskauskas
                                       */
                                    *************** public class DefaultTreeCellEditor
                                    *** 77,84 ****
                                      {
                                        /**
                                         * This container that appears on the tree during editing session.
                                    !    * It contains the editing component displays various other editor - 
                                    !    * specific parts like editing icon. 
                                         */
                                        public class EditorContainer extends Container
                                        {
                                    --- 77,84 ----
                                      {
                                        /**
                                         * This container that appears on the tree during editing session.
                                    !    * It contains the editing component displays various other editor -
                                    !    * specific parts like editing icon.
                                         */
                                        public class EditorContainer extends Container
                                        {
                                    *************** public class DefaultTreeCellEditor
                                    *** 86,92 ****
                                          * Use v 1.5 serial version UID for interoperability.
                                          */
                                          static final long serialVersionUID = 6470339600449699810L;
                                    !     
                                          /**
                                           * Creates an <code>EditorContainer</code> object.
                                           */
                                    --- 86,92 ----
                                          * Use v 1.5 serial version UID for interoperability.
                                          */
                                          static final long serialVersionUID = 6470339600449699810L;
                                    ! 
                                          /**
                                           * Creates an <code>EditorContainer</code> object.
                                           */
                                    *************** public class DefaultTreeCellEditor
                                    *** 103,113 ****
                                          {
                                            // Do nothing here.
                                          }
                                    !    
                                          /**
                                           * Overrides Container.paint to paint the node's icon and use the selection
                                           * color for the background.
                                    !      * 
                                           * @param g -
                                           *          the specified Graphics window
                                           */
                                    --- 103,113 ----
                                          {
                                            // Do nothing here.
                                          }
                                    ! 
                                          /**
                                           * Overrides Container.paint to paint the node's icon and use the selection
                                           * color for the background.
                                    !      *
                                           * @param g -
                                           *          the specified Graphics window
                                           */
                                    *************** public class DefaultTreeCellEditor
                                    *** 175,182 ****
                                         /**
                                          * Use v 1.5 serial version UID for interoperability.
                                          */
                                    !     static final long serialVersionUID = -6629304544265300143L; 
                                    !     
                                          /**
                                           * The border of the text field.
                                           */
                                    --- 175,182 ----
                                         /**
                                          * Use v 1.5 serial version UID for interoperability.
                                          */
                                    !     static final long serialVersionUID = -6629304544265300143L;
                                    ! 
                                          /**
                                           * The border of the text field.
                                           */
                                    *************** public class DefaultTreeCellEditor
                                    *** 194,202 ****
                                      
                                          /**
                                           * Gets the font of this component.
                                    !      * @return this component's font; if a font has not been set for 
                                           * this component, the font of its parent is returned (if the parent
                                    !      * is not null, otherwise null is returned). 
                                           */
                                          public Font getFont()
                                          {
                                    --- 194,202 ----
                                      
                                          /**
                                           * Gets the font of this component.
                                    !      * @return this component's font; if a font has not been set for
                                           * this component, the font of its parent is returned (if the parent
                                    !      * is not null, otherwise null is returned).
                                           */
                                          public Font getFont()
                                          {
                                    *************** public class DefaultTreeCellEditor
                                    *** 222,230 ****
                                          }
                                      
                                          /**
                                    !      * Overrides JTextField.getPreferredSize to return the preferred size 
                                           * based on current font, if set, or else use renderer's font.
                                    !      * 
                                           * @return the Dimension of this textfield.
                                           */
                                          public Dimension getPreferredSize()
                                    --- 222,230 ----
                                          }
                                      
                                          /**
                                    !      * Overrides JTextField.getPreferredSize to return the preferred size
                                           * based on current font, if set, or else use renderer's font.
                                    !      *
                                           * @return the Dimension of this textfield.
                                           */
                                          public Dimension getPreferredSize()
                                    *************** public class DefaultTreeCellEditor
                                    *** 237,245 ****
                                            return renderer.getPreferredSize();
                                          }
                                        }
                                    !   
                                        private EventListenerList listenerList = new EventListenerList();
                                    !   
                                        /**
                                         * Editor handling the editing.
                                         */
                                    --- 237,245 ----
                                            return renderer.getPreferredSize();
                                          }
                                        }
                                    ! 
                                        private EventListenerList listenerList = new EventListenerList();
                                    ! 
                                        /**
                                         * Editor handling the editing.
                                         */
                                    *************** public class DefaultTreeCellEditor
                                    *** 261,268 ****
                                        protected transient Component editingComponent;
                                      
                                        /**
                                    !    * As of Java 2 platform v1.4 this field should no longer be used. 
                                    !    * If you wish to provide similar behavior you should directly 
                                         * override isCellEditable.
                                         */
                                        protected boolean canEdit;
                                    --- 261,268 ----
                                        protected transient Component editingComponent;
                                      
                                        /**
                                    !    * As of Java 2 platform v1.4 this field should no longer be used.
                                    !    * If you wish to provide similar behavior you should directly
                                         * override isCellEditable.
                                         */
                                        protected boolean canEdit;
                                    *************** public class DefaultTreeCellEditor
                                    *** 306,317 ****
                                         * Font to paint with, null indicates font of renderer is to be used.
                                         */
                                        protected Font font;
                                    !       
                                        /**
                                    !    * Constructs a DefaultTreeCellEditor object for a JTree using the 
                                    !    * specified renderer and a default editor. (Use this constructor 
                                         * for normal editing.)
                                    !    * 
                                         * @param tree - a JTree object
                                         * @param renderer - a DefaultTreeCellRenderer object
                                         */
                                    --- 306,317 ----
                                         * Font to paint with, null indicates font of renderer is to be used.
                                         */
                                        protected Font font;
                                    ! 
                                        /**
                                    !    * Constructs a DefaultTreeCellEditor object for a JTree using the
                                    !    * specified renderer and a default editor. (Use this constructor
                                         * for normal editing.)
                                    !    *
                                         * @param tree - a JTree object
                                         * @param renderer - a DefaultTreeCellRenderer object
                                         */
                                    *************** public class DefaultTreeCellEditor
                                    *** 321,330 ****
                                        }
                                      
                                        /**
                                    !    * Constructs a DefaultTreeCellEditor  object for a JTree using the specified 
                                    !    * renderer and the specified editor. (Use this constructor 
                                         * for specialized editing.)
                                    !    * 
                                         * @param tree - a JTree object
                                         * @param renderer - a DefaultTreeCellRenderer object
                                         * @param editor - a TreeCellEditor object
                                    --- 321,330 ----
                                        }
                                      
                                        /**
                                    !    * Constructs a DefaultTreeCellEditor  object for a JTree using the specified
                                    !    * renderer and the specified editor. (Use this constructor
                                         * for specialized editing.)
                                    !    *
                                         * @param tree - a JTree object
                                         * @param renderer - a DefaultTreeCellRenderer object
                                         * @param editor - a TreeCellEditor object
                                    *************** public class DefaultTreeCellEditor
                                    *** 341,350 ****
                                          Color c = UIManager.getColor("Tree.editorBorderSelectionColor");
                                          setBorderSelectionColor(c);
                                        }
                                    !   
                                        /**
                                         * writeObject
                                    !    * 
                                         * @param value0
                                         *          TODO
                                         * @exception IOException
                                    --- 341,350 ----
                                          Color c = UIManager.getColor("Tree.editorBorderSelectionColor");
                                          setBorderSelectionColor(c);
                                        }
                                    ! 
                                        /**
                                         * writeObject
                                    !    *
                                         * @param value0
                                         *          TODO
                                         * @exception IOException
                                    *************** public class DefaultTreeCellEditor
                                    *** 386,397 ****
                                        }
                                      
                                        /**
                                    !    * Sets the font to edit with. null indicates the renderers 
                                    !    * font should be used. This will NOT override any font you have 
                                    !    * set in the editor the receiver was instantied with. If null for 
                                    !    * an editor was passed in, a default editor will be created that 
                                         * will pick up this font.
                                    !    * 
                                         * @param font - the editing Font
                                         */
                                        public void setFont(Font font)
                                    --- 386,397 ----
                                        }
                                      
                                        /**
                                    !    * Sets the font to edit with. null indicates the renderers
                                    !    * font should be used. This will NOT override any font you have
                                    !    * set in the editor the receiver was instantied with. If null for
                                    !    * an editor was passed in, a default editor will be created that
                                         * will pick up this font.
                                    !    *
                                         * @param font - the editing Font
                                         */
                                        public void setFont(Font font)
                                    *************** public class DefaultTreeCellEditor
                                    *** 404,410 ****
                                      
                                        /**
                                         * Gets the font used for editing.
                                    !    * 
                                         * @return the editing font
                                         */
                                        public Font getFont()
                                    --- 404,410 ----
                                      
                                        /**
                                         * Gets the font used for editing.
                                    !    *
                                         * @return the editing font
                                         */
                                        public Font getFont()
                                    *************** public class DefaultTreeCellEditor
                                    *** 414,433 ****
                                      
                                        /**
                                         * Configures the editor. Passed onto the realEditor.
                                    !    * Sets an initial value for the editor. This will cause 
                                    !    * the editor to stopEditing and lose any partially edited value 
                                    !    * if the editor is editing when this method is called. 
                                    !    * Returns the component that should be added to the client's Component 
                                    !    * hierarchy. Once installed in the client's hierarchy this component will 
                                    !    * then be able to draw and receive user input. 
                                    !    * 
                                         * @param tree - the JTree that is asking the editor to edit; this parameter can be null
                                         * @param value - the value of the cell to be edited
                                         * @param isSelected - true is the cell is to be rendered with selection highlighting
                                         * @param expanded - true if the node is expanded
                                         * @param leaf - true if the node is a leaf node
                                         * @param row - the row index of the node being edited
                                    !    * 
                                         * @return the component for editing
                                         */
                                        public Component getTreeCellEditorComponent(JTree tree, Object value,
                                    --- 414,433 ----
                                      
                                        /**
                                         * Configures the editor. Passed onto the realEditor.
                                    !    * Sets an initial value for the editor. This will cause
                                    !    * the editor to stopEditing and lose any partially edited value
                                    !    * if the editor is editing when this method is called.
                                    !    * Returns the component that should be added to the client's Component
                                    !    * hierarchy. Once installed in the client's hierarchy this component will
                                    !    * then be able to draw and receive user input.
                                    !    *
                                         * @param tree - the JTree that is asking the editor to edit; this parameter can be null
                                         * @param value - the value of the cell to be edited
                                         * @param isSelected - true is the cell is to be rendered with selection highlighting
                                         * @param expanded - true if the node is expanded
                                         * @param leaf - true if the node is a leaf node
                                         * @param row - the row index of the node being edited
                                    !    *
                                         * @return the component for editing
                                         */
                                        public Component getTreeCellEditorComponent(JTree tree, Object value,
                                    *************** public class DefaultTreeCellEditor
                                    *** 461,479 ****
                                        /**
                                         * Returns the value currently being edited (requests it from the
                                         * {@link #realEditor}.
                                    !    * 
                                         * @return the value currently being edited
                                         */
                                        public Object getCellEditorValue()
                                        {
                                          return realEditor.getCellEditorValue();
                                        }
                                    !   
                                        /**
                                    !    * If the realEditor returns true to this message, prepareForEditing  
                                         * is messaged and true is returned.
                                    !    * 
                                    !    * @param event - the event the editor should use to consider whether to 
                                         * begin editing or not
                                         * @return true if editing can be started
                                         */
                                    --- 461,479 ----
                                        /**
                                         * Returns the value currently being edited (requests it from the
                                         * {@link #realEditor}.
                                    !    *
                                         * @return the value currently being edited
                                         */
                                        public Object getCellEditorValue()
                                        {
                                          return realEditor.getCellEditorValue();
                                        }
                                    ! 
                                        /**
                                    !    * If the realEditor returns true to this message, prepareForEditing
                                         * is messaged and true is returned.
                                    !    *
                                    !    * @param event - the event the editor should use to consider whether to
                                         * begin editing or not
                                         * @return true if editing can be started
                                         */
                                    *************** public class DefaultTreeCellEditor
                                    *** 507,513 ****
                                            }
                                          if (! realEditor.isCellEditable(event))
                                            ret = false;
                                    !     else 
                                            {
                                              if (canEditImmediately(event))
                                                ret = true;
                                    --- 507,513 ----
                                            }
                                          if (! realEditor.isCellEditable(event))
                                            ret = false;
                                    !     else
                                            {
                                              if (canEditImmediately(event))
                                                ret = true;
                                    *************** public class DefaultTreeCellEditor
                                    *** 519,530 ****
                                          if (ret)
                                            prepareForEditing();
                                          return ret;
                                    !         
                                        }
                                      
                                        /**
                                         * Messages the realEditor for the return value.
                                    !    * 
                                         * @param event -
                                         *          the event the editor should use to start editing
                                         * @return true if the editor would like the editing cell to be selected;
                                    --- 519,530 ----
                                          if (ret)
                                            prepareForEditing();
                                          return ret;
                                    ! 
                                        }
                                      
                                        /**
                                         * Messages the realEditor for the return value.
                                    !    *
                                         * @param event -
                                         *          the event the editor should use to start editing
                                         * @return true if the editor would like the editing cell to be selected;
                                    *************** public class DefaultTreeCellEditor
                                    *** 570,576 ****
                                      
                                        /**
                                         * Adds a <code>CellEditorListener</code> object to this editor.
                                    !    * 
                                         * @param listener
                                         *          the listener to add
                                         */
                                    --- 570,576 ----
                                      
                                        /**
                                         * Adds a <code>CellEditorListener</code> object to this editor.
                                    !    *
                                         * @param listener
                                         *          the listener to add
                                         */
                                    *************** public class DefaultTreeCellEditor
                                    *** 603,609 ****
                                      
                                        /**
                                         * Resets lastPath.
                                    !    * 
                                         * @param e - the event that characterizes the change.
                                         */
                                        public void valueChanged(TreeSelectionEvent e)
                                    --- 603,609 ----
                                      
                                        /**
                                         * Resets lastPath.
                                    !    *
                                         * @param e - the event that characterizes the change.
                                         */
                                        public void valueChanged(TreeSelectionEvent e)
                                    *************** public class DefaultTreeCellEditor
                                    *** 621,630 ****
                                      //    if (timer != null)
                                      //      timer.stop();
                                        }
                                    !   
                                        /**
                                         * Messaged when the timer fires.
                                    !    * 
                                         * @param e the event that characterizes the action.
                                         */
                                        public void actionPerformed(ActionEvent e)
                                    --- 621,630 ----
                                      //    if (timer != null)
                                      //      timer.stop();
                                        }
                                    ! 
                                        /**
                                         * Messaged when the timer fires.
                                    !    *
                                         * @param e the event that characterizes the action.
                                         */
                                        public void actionPerformed(ActionEvent e)
                                    *************** public class DefaultTreeCellEditor
                                    *** 636,642 ****
                                        /**
                                         * Sets the tree currently editing for. This is needed to add a selection
                                         * listener.
                                    !    * 
                                         * @param newTree -
                                         *          the new tree to be edited
                                         */
                                    --- 636,642 ----
                                        /**
                                         * Sets the tree currently editing for. This is needed to add a selection
                                         * listener.
                                    !    *
                                         * @param newTree -
                                         *          the new tree to be edited
                                         */
                                    *************** public class DefaultTreeCellEditor
                                    *** 657,663 ****
                                      
                                        /**
                                         * Returns true if event is a MouseEvent and the click count is 1.
                                    !    * 
                                         * @param event - the event being studied
                                         * @return true if editing should start
                                         */
                                    --- 657,663 ----
                                      
                                        /**
                                         * Returns true if event is a MouseEvent and the click count is 1.
                                    !    *
                                         * @param event - the event being studied
                                         * @return true if editing should start
                                         */
                                    *************** public class DefaultTreeCellEditor
                                    *** 674,680 ****
                                        }
                                      
                                        /**
                                    !    * Starts the editing timer (if one installed). 
                                         */
                                        protected void startEditingTimer()
                                        {
                                    --- 674,680 ----
                                        }
                                      
                                        /**
                                    !    * Starts the editing timer (if one installed).
                                         */
                                        protected void startEditingTimer()
                                        {
                                    *************** public class DefaultTreeCellEditor
                                    *** 687,719 ****
                                        }
                                      
                                        /**
                                    !    * Returns true if event is null, or it is a MouseEvent with 
                                         * a click count > 2 and inHitRegion returns true.
                                    !    * 
                                         * @param event - the event being studied
                                    !    * @return true if event is null, or it is a MouseEvent with 
                                    !    * a click count > 2 and inHitRegion returns true 
                                         */
                                        protected boolean canEditImmediately(EventObject event)
                                        {
                                          if (event == null || !(event instanceof MouseEvent) || (((MouseEvent) event).
                                    !         getClickCount() > 2 && inHitRegion(((MouseEvent) event).getX(), 
                                                                               ((MouseEvent) event).getY())))
                                            return true;
                                          return false;
                                        }
                                      
                                        /**
                                    !    * Returns true if the passed in location is a valid mouse location 
                                         * to start editing from. This is implemented to return false if x is
                                    !    * less than or equal to the width of the icon and icon 
                                    !    * gap displayed by the renderer. In other words this returns true if 
                                    !    * the user clicks over the text part displayed by the renderer, and 
                                         * false otherwise.
                                    !    * 
                                         * @param x - the x-coordinate of the point
                                         * @param y - the y-coordinate of the point
                                    !    * 
                                         * @return true if the passed in location is a valid mouse location
                                         */
                                        protected boolean inHitRegion(int x, int y)
                                    --- 687,719 ----
                                        }
                                      
                                        /**
                                    !    * Returns true if event is null, or it is a MouseEvent with
                                         * a click count > 2 and inHitRegion returns true.
                                    !    *
                                         * @param event - the event being studied
                                    !    * @return true if event is null, or it is a MouseEvent with
                                    !    * a click count > 2 and inHitRegion returns true
                                         */
                                        protected boolean canEditImmediately(EventObject event)
                                        {
                                          if (event == null || !(event instanceof MouseEvent) || (((MouseEvent) event).
                                    !         getClickCount() > 2 && inHitRegion(((MouseEvent) event).getX(),
                                                                               ((MouseEvent) event).getY())))
                                            return true;
                                          return false;
                                        }
                                      
                                        /**
                                    !    * Returns true if the passed in location is a valid mouse location
                                         * to start editing from. This is implemented to return false if x is
                                    !    * less than or equal to the width of the icon and icon
                                    !    * gap displayed by the renderer. In other words this returns true if
                                    !    * the user clicks over the text part displayed by the renderer, and
                                         * false otherwise.
                                    !    *
                                         * @param x - the x-coordinate of the point
                                         * @param y - the y-coordinate of the point
                                    !    *
                                         * @return true if the passed in location is a valid mouse location
                                         */
                                        protected boolean inHitRegion(int x, int y)
                                    *************** public class DefaultTreeCellEditor
                                    *** 725,735 ****
                                        /**
                                         * determineOffset
                                         * @param tree -
                                    !    * @param value - 
                                    !    * @param isSelected - 
                                    !    * @param expanded - 
                                    !    * @param leaf - 
                                    !    * @param row - 
                                         */
                                        protected void determineOffset(JTree tree, Object value, boolean isSelected,
                                                                       boolean expanded, boolean leaf, int row)
                                    --- 725,735 ----
                                        /**
                                         * determineOffset
                                         * @param tree -
                                    !    * @param value -
                                    !    * @param isSelected -
                                    !    * @param expanded -
                                    !    * @param leaf -
                                    !    * @param row -
                                         */
                                        protected void determineOffset(JTree tree, Object value, boolean isSelected,
                                                                       boolean expanded, boolean leaf, int row)
                                    *************** public class DefaultTreeCellEditor
                                    *** 755,761 ****
                                        }
                                      
                                        /**
                                    !    * Invoked just before editing is to start. Will add the 
                                         * editingComponent to the editingContainer.
                                         */
                                        protected void prepareForEditing()
                                    --- 755,761 ----
                                        }
                                      
                                        /**
                                    !    * Invoked just before editing is to start. Will add the
                                         * editingComponent to the editingContainer.
                                         */
                                        protected void prepareForEditing()
                                    *************** public class DefaultTreeCellEditor
                                    *** 766,772 ****
                                      
                                        /**
                                         * Creates the container to manage placement of editingComponent.
                                    !    * 
                                         * @return the container to manage the placement of the editingComponent.
                                         */
                                        protected Container createContainer()
                                    --- 766,772 ----
                                      
                                        /**
                                         * Creates the container to manage placement of editingComponent.
                                    !    *
                                         * @return the container to manage the placement of the editingComponent.
                                         */
                                        protected Container createContainer()
                                    *************** public class DefaultTreeCellEditor
                                    *** 775,783 ****
                                        }
                                      
                                        /**
                                    !    * This is invoked if a TreeCellEditor is not supplied in the constructor. 
                                         * It returns a TextField editor.
                                    !    * 
                                         * @return a new TextField editor
                                         */
                                        protected TreeCellEditor createTreeCellEditor()
                                    --- 775,783 ----
                                        }
                                      
                                        /**
                                    !    * This is invoked if a TreeCellEditor is not supplied in the constructor.
                                         * It returns a TextField editor.
                                    !    *
                                         * @return a new TextField editor
                                         */
                                        protected TreeCellEditor createTreeCellEditor()
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,6 ****
                                    ! /* DefaultTreeCellRenderer.java 
                                       Copyright (C) 2002, 2004, 2006, Free Software Foundation, Inc.
                                    !  
                                       This file is part of GNU Classpath.
                                      
                                       GNU Classpath is free software; you can redistribute it and/or modify
                                    --- 1,6 ----
                                    ! /* DefaultTreeCellRenderer.java
                                       Copyright (C) 2002, 2004, 2006, Free Software Foundation, Inc.
                                    ! 
                                       This file is part of GNU Classpath.
                                      
                                       GNU Classpath is free software; you can redistribute it and/or modify
                                    *************** import javax.swing.plaf.UIResource;
                                    *** 54,60 ****
                                      
                                      /**
                                       * A default implementation of the {@link TreeCellRenderer} interface.
                                    !  * 
                                       * @author Andrew Selkirk
                                       */
                                      public class DefaultTreeCellRenderer
                                    --- 54,60 ----
                                      
                                      /**
                                       * A default implementation of the {@link TreeCellRenderer} interface.
                                    !  *
                                       * @author Andrew Selkirk
                                       */
                                      public class DefaultTreeCellRenderer
                                    *************** public class DefaultTreeCellRenderer
                                    *** 79,140 ****
                                      
                                        /**
                                         * The icon used to represent non-leaf nodes that are closed.
                                    !    * 
                                         * @see #setClosedIcon(Icon)
                                         */
                                        protected transient Icon closedIcon;
                                      
                                        /**
                                         * The icon used to represent leaf nodes.
                                    !    * 
                                         * @see #setLeafIcon(Icon)
                                         */
                                        protected transient Icon leafIcon;
                                      
                                        /**
                                         * The icon used to represent non-leaf nodes that are open.
                                    !    * 
                                         * @see #setOpenIcon(Icon)
                                         */
                                        protected transient Icon openIcon;
                                      
                                        /**
                                         * The color used for text in selected cells.
                                    !    * 
                                         * @see #setTextSelectionColor(Color)
                                         */
                                        protected Color textSelectionColor;
                                      
                                        /**
                                         * The color used for text in non-selected cells.
                                    !    * 
                                         * @see #setTextNonSelectionColor(Color)
                                         */
                                        protected Color textNonSelectionColor;
                                      
                                        /**
                                         * The background color for selected cells.
                                    !    * 
                                         * @see #setBackgroundSelectionColor(Color)
                                         */
                                        protected Color backgroundSelectionColor;
                                      
                                        /**
                                         * The background color for non-selected cells.
                                    !    * 
                                         * @see #setBackgroundNonSelectionColor(Color)
                                         */
                                        protected Color backgroundNonSelectionColor;
                                      
                                        /**
                                         * The border color for selected tree cells.
                                    !    * 
                                         * @see #setBorderSelectionColor(Color)
                                         */
                                        protected Color borderSelectionColor;
                                      
                                        /**
                                    !    * Creates a new tree cell renderer with defaults appropriate for the 
                                         * current {@link LookAndFeel}.
                                         */
                                        public DefaultTreeCellRenderer()
                                    --- 79,140 ----
                                      
                                        /**
                                         * The icon used to represent non-leaf nodes that are closed.
                                    !    *
                                         * @see #setClosedIcon(Icon)
                                         */
                                        protected transient Icon closedIcon;
                                      
                                        /**
                                         * The icon used to represent leaf nodes.
                                    !    *
                                         * @see #setLeafIcon(Icon)
                                         */
                                        protected transient Icon leafIcon;
                                      
                                        /**
                                         * The icon used to represent non-leaf nodes that are open.
                                    !    *
                                         * @see #setOpenIcon(Icon)
                                         */
                                        protected transient Icon openIcon;
                                      
                                        /**
                                         * The color used for text in selected cells.
                                    !    *
                                         * @see #setTextSelectionColor(Color)
                                         */
                                        protected Color textSelectionColor;
                                      
                                        /**
                                         * The color used for text in non-selected cells.
                                    !    *
                                         * @see #setTextNonSelectionColor(Color)
                                         */
                                        protected Color textNonSelectionColor;
                                      
                                        /**
                                         * The background color for selected cells.
                                    !    *
                                         * @see #setBackgroundSelectionColor(Color)
                                         */
                                        protected Color backgroundSelectionColor;
                                      
                                        /**
                                         * The background color for non-selected cells.
                                    !    *
                                         * @see #setBackgroundNonSelectionColor(Color)
                                         */
                                        protected Color backgroundNonSelectionColor;
                                      
                                        /**
                                         * The border color for selected tree cells.
                                    !    *
                                         * @see #setBorderSelectionColor(Color)
                                         */
                                        protected Color borderSelectionColor;
                                      
                                        /**
                                    !    * Creates a new tree cell renderer with defaults appropriate for the
                                         * current {@link LookAndFeel}.
                                         */
                                        public DefaultTreeCellRenderer()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 154,162 ****
                                      
                                        /**
                                         * Returns the default icon for non-leaf tree cells that are open (expanded).
                                    !    * The icon is fetched from the defaults table for the current 
                                         * {@link LookAndFeel} using the key <code>Tree.openIcon</code>.
                                    !    * 
                                         * @return The default icon.
                                         */
                                        public Icon getDefaultOpenIcon()
                                    --- 154,162 ----
                                      
                                        /**
                                         * Returns the default icon for non-leaf tree cells that are open (expanded).
                                    !    * The icon is fetched from the defaults table for the current
                                         * {@link LookAndFeel} using the key <code>Tree.openIcon</code>.
                                    !    *
                                         * @return The default icon.
                                         */
                                        public Icon getDefaultOpenIcon()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 165,174 ****
                                        }
                                      
                                        /**
                                    !    * Returns the default icon for non-leaf tree cells that are closed (not 
                                    !    * expanded).  The icon is fetched from the defaults table for the current 
                                         * {@link LookAndFeel} using the key <code>Tree.closedIcon</code>.
                                    !    * 
                                         * @return The default icon.
                                         */
                                        public Icon getDefaultClosedIcon()
                                    --- 165,174 ----
                                        }
                                      
                                        /**
                                    !    * Returns the default icon for non-leaf tree cells that are closed (not
                                    !    * expanded).  The icon is fetched from the defaults table for the current
                                         * {@link LookAndFeel} using the key <code>Tree.closedIcon</code>.
                                    !    *
                                         * @return The default icon.
                                         */
                                        public Icon getDefaultClosedIcon()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 177,186 ****
                                        }
                                      
                                        /**
                                    !    * Returns the default icon for leaf tree cells.  The icon is fetched from 
                                    !    * the defaults table for the current {@link LookAndFeel} using the key 
                                         * <code>Tree.leafIcon</code>.
                                    !    * 
                                         * @return The default icon.
                                         */
                                        public Icon getDefaultLeafIcon()
                                    --- 177,186 ----
                                        }
                                      
                                        /**
                                    !    * Returns the default icon for leaf tree cells.  The icon is fetched from
                                    !    * the defaults table for the current {@link LookAndFeel} using the key
                                         * <code>Tree.leafIcon</code>.
                                    !    *
                                         * @return The default icon.
                                         */
                                        public Icon getDefaultLeafIcon()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 191,199 ****
                                        /**
                                         * Sets the icon to be displayed for non-leaf nodes that are open (expanded).
                                         * Set this to <code>null</code> if no icon is required.
                                    !    * 
                                         * @param icon  the icon (<code>null</code> permitted).
                                    !    * 
                                         * @see #getOpenIcon()
                                         */
                                        public void setOpenIcon(Icon icon)
                                    --- 191,199 ----
                                        /**
                                         * Sets the icon to be displayed for non-leaf nodes that are open (expanded).
                                         * Set this to <code>null</code> if no icon is required.
                                    !    *
                                         * @param icon  the icon (<code>null</code> permitted).
                                    !    *
                                         * @see #getOpenIcon()
                                         */
                                        public void setOpenIcon(Icon icon)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 202,212 ****
                                        }
                                      
                                        /**
                                    !    * Returns the icon displayed for non-leaf nodes that are open (expanded).  
                                         * The default value is initialised from the {@link LookAndFeel}.
                                    !    * 
                                         * @return The open icon (possibly <code>null</code>).
                                    !    * 
                                         * @see #setOpenIcon(Icon)
                                         */
                                        public Icon getOpenIcon()
                                    --- 202,212 ----
                                        }
                                      
                                        /**
                                    !    * Returns the icon displayed for non-leaf nodes that are open (expanded).
                                         * The default value is initialised from the {@link LookAndFeel}.
                                    !    *
                                         * @return The open icon (possibly <code>null</code>).
                                    !    *
                                         * @see #setOpenIcon(Icon)
                                         */
                                        public Icon getOpenIcon()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 215,225 ****
                                        }
                                      
                                        /**
                                    !    * Sets the icon to be displayed for non-leaf nodes that are closed.  Set 
                                         * this to <code>null</code> if no icon is required.
                                    !    * 
                                         * @param icon  the icon (<code>null</code> permitted).
                                    !    * 
                                         * @see #getClosedIcon()
                                         */
                                        public void setClosedIcon(Icon icon)
                                    --- 215,225 ----
                                        }
                                      
                                        /**
                                    !    * Sets the icon to be displayed for non-leaf nodes that are closed.  Set
                                         * this to <code>null</code> if no icon is required.
                                    !    *
                                         * @param icon  the icon (<code>null</code> permitted).
                                    !    *
                                         * @see #getClosedIcon()
                                         */
                                        public void setClosedIcon(Icon icon)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 228,238 ****
                                        }
                                      
                                        /**
                                    !    * Returns the icon displayed for non-leaf nodes that are closed.  The 
                                         * default value is initialised from the {@link LookAndFeel}.
                                    !    * 
                                         * @return The closed icon (possibly <code>null</code>).
                                    !    * 
                                         * @see #setClosedIcon(Icon)
                                         */
                                        public Icon getClosedIcon()
                                    --- 228,238 ----
                                        }
                                      
                                        /**
                                    !    * Returns the icon displayed for non-leaf nodes that are closed.  The
                                         * default value is initialised from the {@link LookAndFeel}.
                                    !    *
                                         * @return The closed icon (possibly <code>null</code>).
                                    !    *
                                         * @see #setClosedIcon(Icon)
                                         */
                                        public Icon getClosedIcon()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 241,251 ****
                                        }
                                      
                                        /**
                                    !    * Sets the icon to be displayed for leaf nodes.  Set this to 
                                         * <code>null</code> if no icon is required.
                                    !    * 
                                         * @param icon  the icon (<code>null</code> permitted).
                                    !    * 
                                         * @see #getLeafIcon()
                                         */
                                        public void setLeafIcon(Icon icon)
                                    --- 241,251 ----
                                        }
                                      
                                        /**
                                    !    * Sets the icon to be displayed for leaf nodes.  Set this to
                                         * <code>null</code> if no icon is required.
                                    !    *
                                         * @param icon  the icon (<code>null</code> permitted).
                                    !    *
                                         * @see #getLeafIcon()
                                         */
                                        public void setLeafIcon(Icon icon)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 254,264 ****
                                        }
                                      
                                        /**
                                    !    * Returns the icon displayed for leaf nodes.  The default value is 
                                         * initialised from the {@link LookAndFeel}.
                                    !    * 
                                         * @return The leaf icon (possibly <code>null</code>).
                                    !    * 
                                         * @see #setLeafIcon(Icon)
                                         */
                                        public Icon getLeafIcon()
                                    --- 254,264 ----
                                        }
                                      
                                        /**
                                    !    * Returns the icon displayed for leaf nodes.  The default value is
                                         * initialised from the {@link LookAndFeel}.
                                    !    *
                                         * @return The leaf icon (possibly <code>null</code>).
                                    !    *
                                         * @see #setLeafIcon(Icon)
                                         */
                                        public Icon getLeafIcon()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 268,276 ****
                                      
                                        /**
                                         * Sets the text color for tree cells that are selected.
                                    !    * 
                                         * @param c  the color (<code>null</code> permitted).
                                    !    * 
                                         * @see #getTextSelectionColor()
                                         */
                                        public void setTextSelectionColor(Color c)
                                    --- 268,276 ----
                                      
                                        /**
                                         * Sets the text color for tree cells that are selected.
                                    !    *
                                         * @param c  the color (<code>null</code> permitted).
                                    !    *
                                         * @see #getTextSelectionColor()
                                         */
                                        public void setTextSelectionColor(Color c)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 282,290 ****
                                         * Returns the text color for tree cells that are selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.selectionForeground</code>.
                                    !    * 
                                         * @return The text color for tree cells that are selected.
                                    !    * 
                                         * @see #setTextSelectionColor(Color)
                                         */
                                        public Color getTextSelectionColor()
                                    --- 282,290 ----
                                         * Returns the text color for tree cells that are selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.selectionForeground</code>.
                                    !    *
                                         * @return The text color for tree cells that are selected.
                                    !    *
                                         * @see #setTextSelectionColor(Color)
                                         */
                                        public Color getTextSelectionColor()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 294,302 ****
                                      
                                        /**
                                         * Sets the text color for tree cells that are not selected.
                                    !    * 
                                         * @param c  the color (<code>null</code> permitted).
                                    !    * 
                                         * @see #getTextNonSelectionColor()
                                         */
                                        public void setTextNonSelectionColor(Color c)
                                    --- 294,302 ----
                                      
                                        /**
                                         * Sets the text color for tree cells that are not selected.
                                    !    *
                                         * @param c  the color (<code>null</code> permitted).
                                    !    *
                                         * @see #getTextNonSelectionColor()
                                         */
                                        public void setTextNonSelectionColor(Color c)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 308,316 ****
                                         * Returns the text color for tree cells that are not selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.selectionForeground</code>.
                                    !    * 
                                         * @return The background color for tree cells that are not selected.
                                    !    * 
                                         * @see #setTextgroundNonSelectionColor(Color)
                                         */
                                        public Color getTextNonSelectionColor()
                                    --- 308,316 ----
                                         * Returns the text color for tree cells that are not selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.selectionForeground</code>.
                                    !    *
                                         * @return The background color for tree cells that are not selected.
                                    !    *
                                         * @see #setTextgroundNonSelectionColor(Color)
                                         */
                                        public Color getTextNonSelectionColor()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 320,328 ****
                                      
                                        /**
                                         * Sets the background color for tree cells that are selected.
                                    !    * 
                                         * @param c  the color (<code>null</code> permitted).
                                    !    * 
                                         * @see #getBackgroundSelectionColor()
                                         */
                                        public void setBackgroundSelectionColor(Color c)
                                    --- 320,328 ----
                                      
                                        /**
                                         * Sets the background color for tree cells that are selected.
                                    !    *
                                         * @param c  the color (<code>null</code> permitted).
                                    !    *
                                         * @see #getBackgroundSelectionColor()
                                         */
                                        public void setBackgroundSelectionColor(Color c)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 334,342 ****
                                         * Returns the background color for tree cells that are selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.selectionBackground</code>.
                                    !    * 
                                         * @return The background color for tree cells that are selected.
                                    !    * 
                                         * @see #setBackgroundSelectionColor(Color)
                                         */
                                        public Color getBackgroundSelectionColor()
                                    --- 334,342 ----
                                         * Returns the background color for tree cells that are selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.selectionBackground</code>.
                                    !    *
                                         * @return The background color for tree cells that are selected.
                                    !    *
                                         * @see #setBackgroundSelectionColor(Color)
                                         */
                                        public Color getBackgroundSelectionColor()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 346,354 ****
                                      
                                        /**
                                         * Sets the background color for tree cells that are not selected.
                                    !    * 
                                         * @param c  the color (<code>null</code> permitted).
                                    !    * 
                                         * @see #getBackgroundNonSelectionColor()
                                         */
                                        public void setBackgroundNonSelectionColor(Color c)
                                    --- 346,354 ----
                                      
                                        /**
                                         * Sets the background color for tree cells that are not selected.
                                    !    *
                                         * @param c  the color (<code>null</code> permitted).
                                    !    *
                                         * @see #getBackgroundNonSelectionColor()
                                         */
                                        public void setBackgroundNonSelectionColor(Color c)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 360,368 ****
                                         * Returns the background color for tree cells that are not selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.textBackground</code>.
                                    !    * 
                                         * @return The background color for tree cells that are not selected.
                                    !    * 
                                         * @see #setBackgroundNonSelectionColor(Color)
                                         */
                                        public Color getBackgroundNonSelectionColor()
                                    --- 360,368 ----
                                         * Returns the background color for tree cells that are not selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.textBackground</code>.
                                    !    *
                                         * @return The background color for tree cells that are not selected.
                                    !    *
                                         * @see #setBackgroundNonSelectionColor(Color)
                                         */
                                        public Color getBackgroundNonSelectionColor()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 372,380 ****
                                      
                                        /**
                                         * Sets the border color for tree cells that are selected.
                                    !    * 
                                         * @param c  the color (<code>null</code> permitted).
                                    !    * 
                                         * @see #getBorderSelectionColor()
                                         */
                                        public void setBorderSelectionColor(Color c)
                                    --- 372,380 ----
                                      
                                        /**
                                         * Sets the border color for tree cells that are selected.
                                    !    *
                                         * @param c  the color (<code>null</code> permitted).
                                    !    *
                                         * @see #getBorderSelectionColor()
                                         */
                                        public void setBorderSelectionColor(Color c)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 386,394 ****
                                         * Returns the border color for tree cells that are selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.selectionBorderColor</code>.
                                    !    * 
                                         * @return The border color for tree cells that are selected.
                                    !    * 
                                         * @see #setBorderSelectionColor(Color)
                                         */
                                        public Color getBorderSelectionColor()
                                    --- 386,394 ----
                                         * Returns the border color for tree cells that are selected.
                                         * The default value is obtained from the {@link LookAndFeel} defaults
                                         * table using the key <code>Tree.selectionBorderColor</code>.
                                    !    *
                                         * @return The border color for tree cells that are selected.
                                    !    *
                                         * @see #setBorderSelectionColor(Color)
                                         */
                                        public Color getBorderSelectionColor()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 398,406 ****
                                      
                                        /**
                                         * Sets the font.
                                    !    * 
                                         * @param f the font.
                                    !    * 
                                         * @see #getFont()
                                         */
                                        public void setFont(Font f)
                                    --- 398,406 ----
                                      
                                        /**
                                         * Sets the font.
                                    !    *
                                         * @param f the font.
                                    !    *
                                         * @see #getFont()
                                         */
                                        public void setFont(Font f)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 412,418 ****
                                      
                                        /**
                                         * Sets the background color.
                                    !    * 
                                         * @param c the color.
                                         */
                                        public void setBackground(Color c)
                                    --- 412,418 ----
                                      
                                        /**
                                         * Sets the background color.
                                    !    *
                                         * @param c the color.
                                         */
                                        public void setBackground(Color c)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 425,431 ****
                                        /**
                                         * Returns a component (in fact <code>this</code>) that can be used to
                                         * render a tree cell with the specified state.
                                    !    * 
                                         * @param tree  the tree that the cell belongs to.
                                         * @param val  the cell value.
                                         * @param selected  indicates whether or not the cell is selected.
                                    --- 425,431 ----
                                        /**
                                         * Returns a component (in fact <code>this</code>) that can be used to
                                         * render a tree cell with the specified state.
                                    !    *
                                         * @param tree  the tree that the cell belongs to.
                                         * @param val  the cell value.
                                         * @param selected  indicates whether or not the cell is selected.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 433,439 ****
                                         * @param leaf  indicates whether or not the cell is a leaf in the tree.
                                         * @param row  the row index.
                                         * @param hasFocus  indicates whether or not the cell has the focus.
                                    !    * 
                                         * @return <code>this</code>.
                                         */
                                        public Component getTreeCellRendererComponent(JTree tree, Object val,
                                    --- 433,439 ----
                                         * @param leaf  indicates whether or not the cell is a leaf in the tree.
                                         * @param row  the row index.
                                         * @param hasFocus  indicates whether or not the cell has the focus.
                                    !    *
                                         * @return <code>this</code>.
                                         */
                                        public Component getTreeCellRendererComponent(JTree tree, Object val,
                                    *************** public class DefaultTreeCellRenderer
                                    *** 461,467 ****
                                            {
                                              super.setBackground(getBackgroundSelectionColor());
                                              setForeground(getTextSelectionColor());
                                    !         
                                              if (hasFocus)
                                                setBorderSelectionColor(UIManager.getLookAndFeelDefaults().
                                                                        getColor("Tree.selectionBorderColor"));
                                    --- 461,467 ----
                                            {
                                              super.setBackground(getBackgroundSelectionColor());
                                              setForeground(getTextSelectionColor());
                                    ! 
                                              if (hasFocus)
                                                setBorderSelectionColor(UIManager.getLookAndFeelDefaults().
                                                                        getColor("Tree.selectionBorderColor"));
                                    *************** public class DefaultTreeCellRenderer
                                    *** 480,488 ****
                                      
                                        /**
                                         * Returns the current font.
                                    !    * 
                                         * @return The current font.
                                    !    * 
                                         * @see #setFont(Font)
                                         */
                                        public Font getFont()
                                    --- 480,488 ----
                                      
                                        /**
                                         * Returns the current font.
                                    !    *
                                         * @return The current font.
                                    !    *
                                         * @see #setFont(Font)
                                         */
                                        public Font getFont()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 492,498 ****
                                      
                                        /**
                                         * Paints the value. The background is filled based on selected.
                                    !    * 
                                         * @param g the graphics device.
                                         */
                                        public void paint(Graphics g)
                                    --- 492,498 ----
                                      
                                        /**
                                         * Paints the value. The background is filled based on selected.
                                    !    *
                                         * @param g the graphics device.
                                         */
                                        public void paint(Graphics g)
                                    *************** public class DefaultTreeCellRenderer
                                    *** 504,528 ****
                                          else
                                            {
                                              bgColor = getBackgroundNonSelectionColor();
                                    ! 	if (bgColor == null)
                                                bgColor = getBackground();
                                            }
                                          // Paint background.
                                          int xOffset = -1;
                                          if (bgColor != null)
                                            {
                                    ! 	xOffset = getXOffset();
                                    ! 	g.setColor(bgColor);
                                    ! 	g.fillRect(xOffset, 0, getWidth() - xOffset, getHeight());
                                            }
                                      
                                          if (hasFocus)
                                            {
                                              if (drawsFocusBorderAroundIcon)
                                                xOffset = 0;
                                    ! 	else if (xOffset == -1)
                                                xOffset = getXOffset();
                                    ! 	paintFocus(g, xOffset, 0, getWidth() - xOffset, getHeight());
                                            }
                                          super.paint(g);
                                        }
                                    --- 504,528 ----
                                          else
                                            {
                                              bgColor = getBackgroundNonSelectionColor();
                                    !         if (bgColor == null)
                                                bgColor = getBackground();
                                            }
                                          // Paint background.
                                          int xOffset = -1;
                                          if (bgColor != null)
                                            {
                                    !         xOffset = getXOffset();
                                    !         g.setColor(bgColor);
                                    !         g.fillRect(xOffset, 0, getWidth() - xOffset, getHeight());
                                            }
                                      
                                          if (hasFocus)
                                            {
                                              if (drawsFocusBorderAroundIcon)
                                                xOffset = 0;
                                    !         else if (xOffset == -1)
                                                xOffset = getXOffset();
                                    !         paintFocus(g, xOffset, 0, getWidth() - xOffset, getHeight());
                                            }
                                          super.paint(g);
                                        }
                                    *************** public class DefaultTreeCellRenderer
                                    *** 536,542 ****
                                          if (col != null)
                                            {
                                              g.setColor(col);
                                    ! 	g.drawRect(x, y, w - 1, h - 1);
                                            }
                                        }
                                      
                                    --- 536,542 ----
                                          if (col != null)
                                            {
                                              g.setColor(col);
                                    !         g.drawRect(x, y, w - 1, h - 1);
                                            }
                                        }
                                      
                                    *************** public class DefaultTreeCellRenderer
                                    *** 557,563 ****
                                      
                                        /**
                                         * Returns the preferred size of the cell.
                                    !    * 
                                         * @return The preferred size of the cell.
                                         */
                                        public Dimension getPreferredSize()
                                    --- 557,563 ----
                                      
                                        /**
                                         * Returns the preferred size of the cell.
                                    !    *
                                         * @return The preferred size of the cell.
                                         */
                                        public Dimension getPreferredSize()
                                    *************** public class DefaultTreeCellRenderer
                                    *** 565,571 ****
                                          Dimension size = super.getPreferredSize();
                                          size.width += 3;
                                          return size;
                                    !   } 
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    --- 565,571 ----
                                          Dimension size = super.getPreferredSize();
                                          size.width += 3;
                                          return size;
                                    !   }
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 573,579 ****
                                        public void validate()
                                        {
                                          // Overridden for performance reasons.
                                    !   } 
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    --- 573,579 ----
                                        public void validate()
                                        {
                                          // Overridden for performance reasons.
                                    !   }
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 581,591 ****
                                        public void revalidate()
                                        {
                                          // Overridden for performance reasons.
                                    !   } 
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param tm ignored
                                         * @param x coordinate of the region to mark as dirty
                                         * @param y coordinate of the region to mark as dirty
                                    --- 581,591 ----
                                        public void revalidate()
                                        {
                                          // Overridden for performance reasons.
                                    !   }
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param tm ignored
                                         * @param x coordinate of the region to mark as dirty
                                         * @param y coordinate of the region to mark as dirty
                                    *************** public class DefaultTreeCellRenderer
                                    *** 595,620 ****
                                        public void repaint(long tm, int x, int y, int width, int height)
                                        {
                                          // Overridden for performance reasons.
                                    !   } 
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param area  the area to repaint.
                                         */
                                        public void repaint(Rectangle area)
                                        {
                                          // Overridden for performance reasons.
                                    !   } 
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                         */
                                    !   protected void firePropertyChange(String name, Object oldValue, 
                                                                          Object newValue)
                                        {
                                          // Overridden for performance reasons.
                                    --- 595,620 ----
                                        public void repaint(long tm, int x, int y, int width, int height)
                                        {
                                          // Overridden for performance reasons.
                                    !   }
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param area  the area to repaint.
                                         */
                                        public void repaint(Rectangle area)
                                        {
                                          // Overridden for performance reasons.
                                    !   }
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                         */
                                    !   protected void firePropertyChange(String name, Object oldValue,
                                                                          Object newValue)
                                        {
                                          // Overridden for performance reasons.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 622,628 ****
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    --- 622,628 ----
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 634,640 ****
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    --- 634,640 ----
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 646,652 ****
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    --- 646,652 ----
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 654,664 ****
                                        public void firePropertyChange(String name, short oldValue, short newValue)
                                        {
                                          // Overridden for performance reasons.
                                    !   } 
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    --- 654,664 ----
                                        public void firePropertyChange(String name, short oldValue, short newValue)
                                        {
                                          // Overridden for performance reasons.
                                    !   }
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 670,676 ****
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    --- 670,676 ----
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 682,688 ****
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    --- 682,688 ----
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 694,700 ****
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    --- 694,700 ----
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                    *************** public class DefaultTreeCellRenderer
                                    *** 706,720 ****
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    * 
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                         */
                                    !   public void firePropertyChange(String name, boolean oldValue, 
                                                                       boolean newValue)
                                        {
                                          //  Overridden for performance reasons.
                                    !   } 
                                      
                                    ! } 
                                    --- 706,720 ----
                                      
                                        /**
                                         * For performance reasons, this method is overridden to do nothing.
                                    !    *
                                         * @param name  the property name.
                                         * @param oldValue  the old value.
                                         * @param newValue  the new value.
                                         */
                                    !   public void firePropertyChange(String name, boolean oldValue,
                                                                       boolean newValue)
                                        {
                                          //  Overridden for performance reasons.
                                    !   }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultTreeModel.java gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultTreeModel.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultTreeModel.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultTreeModel.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,6 ****
                                    ! /* DefaultTreeModel.java -- 
                                         Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc.
                                    !  
                                      This file is part of GNU Classpath.
                                      
                                      GNU Classpath is free software; you can redistribute it and/or modify
                                    --- 1,6 ----
                                    ! /* DefaultTreeModel.java --
                                         Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc.
                                    ! 
                                      This file is part of GNU Classpath.
                                      
                                      GNU Classpath is free software; you can redistribute it and/or modify
                                    *************** import javax.swing.event.TreeModelListen
                                    *** 49,55 ****
                                      
                                      /**
                                       * DefaultTreeModel
                                    !  * 
                                       * @author Andrew Selkirk
                                       */
                                      public class DefaultTreeModel
                                    --- 49,55 ----
                                      
                                      /**
                                       * DefaultTreeModel
                                    !  *
                                       * @author Andrew Selkirk
                                       */
                                      public class DefaultTreeModel
                                    *************** public class DefaultTreeModel
                                    *** 74,80 ****
                                      
                                        /**
                                         * Constructor DefaultTreeModel where any node can have children.
                                    !    * 
                                         * @param root the tree root.
                                         */
                                        public DefaultTreeModel(TreeNode root)
                                    --- 74,80 ----
                                      
                                        /**
                                         * Constructor DefaultTreeModel where any node can have children.
                                    !    *
                                         * @param root the tree root.
                                         */
                                        public DefaultTreeModel(TreeNode root)
                                    *************** public class DefaultTreeModel
                                    *** 85,93 ****
                                        /**
                                         * Create the DefaultTreeModel that may check if the nodes can have
                                         * children or not.
                                    !    * 
                                         * @param aRoot the tree root.
                                    !    * @param asksAllowsChildren if true, each node is asked if it can have 
                                         * children. If false, the model does not care about this, supposing, that
                                         * any node can have children.
                                         */
                                    --- 85,93 ----
                                        /**
                                         * Create the DefaultTreeModel that may check if the nodes can have
                                         * children or not.
                                    !    *
                                         * @param aRoot the tree root.
                                    !    * @param asksAllowsChildren if true, each node is asked if it can have
                                         * children. If false, the model does not care about this, supposing, that
                                         * any node can have children.
                                         */
                                    *************** public class DefaultTreeModel
                                    *** 101,107 ****
                                      
                                        /**
                                         * writeObject
                                    !    * 
                                         * @param obj the object.
                                         * @exception IOException TODO
                                         */
                                    --- 101,107 ----
                                      
                                        /**
                                         * writeObject
                                    !    *
                                         * @param obj the object.
                                         * @exception IOException TODO
                                         */
                                    *************** public class DefaultTreeModel
                                    *** 112,118 ****
                                      
                                        /**
                                         * readObject
                                    !    * 
                                         * @param value0 TODO
                                         * @exception IOException TODO
                                         * @exception ClassNotFoundException TODO
                                    --- 112,118 ----
                                      
                                        /**
                                         * readObject
                                    !    *
                                         * @param value0 TODO
                                         * @exception IOException TODO
                                         * @exception ClassNotFoundException TODO
                                    *************** public class DefaultTreeModel
                                    *** 125,131 ****
                                      
                                        /**
                                         * asksAllowsChildren
                                    !    * 
                                         * @return boolean
                                         */
                                        public boolean asksAllowsChildren()
                                    --- 125,131 ----
                                      
                                        /**
                                         * asksAllowsChildren
                                    !    *
                                         * @return boolean
                                         */
                                        public boolean asksAllowsChildren()
                                    *************** public class DefaultTreeModel
                                    *** 135,141 ****
                                      
                                        /**
                                         * setAsksAllowsChildren
                                    !    * 
                                         * @param value TODO
                                         */
                                        public void setAsksAllowsChildren(boolean value)
                                    --- 135,141 ----
                                      
                                        /**
                                         * setAsksAllowsChildren
                                    !    *
                                         * @param value TODO
                                         */
                                        public void setAsksAllowsChildren(boolean value)
                                    *************** public class DefaultTreeModel
                                    *** 145,151 ****
                                      
                                        /**
                                         * setRoot
                                    !    * 
                                         * @param root the root node.
                                         */
                                        public void setRoot(TreeNode root)
                                    --- 145,151 ----
                                      
                                        /**
                                         * setRoot
                                    !    *
                                         * @param root the root node.
                                         */
                                        public void setRoot(TreeNode root)
                                    *************** public class DefaultTreeModel
                                    *** 155,161 ****
                                      
                                        /**
                                         * getRoot
                                    !    * 
                                         * @return Object
                                         */
                                        public Object getRoot()
                                    --- 155,161 ----
                                      
                                        /**
                                         * getRoot
                                    !    *
                                         * @return Object
                                         */
                                        public Object getRoot()
                                    *************** public class DefaultTreeModel
                                    *** 165,171 ****
                                      
                                        /**
                                         * getIndexOfChild
                                    !    * 
                                         * @param parent TODO
                                         * @param child TODO
                                         * @return int
                                    --- 165,171 ----
                                      
                                        /**
                                         * getIndexOfChild
                                    !    *
                                         * @param parent TODO
                                         * @param child TODO
                                         * @return int
                                    *************** public class DefaultTreeModel
                                    *** 182,188 ****
                                      
                                        /**
                                         * getChild
                                    !    * 
                                         * @param node TODO
                                         * @param idx TODO
                                         * @return Object
                                    --- 182,188 ----
                                      
                                        /**
                                         * getChild
                                    !    *
                                         * @param node TODO
                                         * @param idx TODO
                                         * @return Object
                                    *************** public class DefaultTreeModel
                                    *** 197,203 ****
                                      
                                        /**
                                         * getChildCount
                                    !    * 
                                         * @param node TODO
                                         * @return int
                                         */
                                    --- 197,203 ----
                                      
                                        /**
                                         * getChildCount
                                    !    *
                                         * @param node TODO
                                         * @return int
                                         */
                                    *************** public class DefaultTreeModel
                                    *** 214,220 ****
                                         * {@link #asksAllowsChildren} is true, then this checks if the TreeNode
                                         * allows children, otherwise it returns the TreeNode's <code>leaf</code>
                                         * property.
                                    !    * 
                                         * @param node the node to check
                                         *
                                         * @return boolean <code>true</code> if the node is a leaf node,
                                    --- 214,220 ----
                                         * {@link #asksAllowsChildren} is true, then this checks if the TreeNode
                                         * allows children, otherwise it returns the TreeNode's <code>leaf</code>
                                         * property.
                                    !    *
                                         * @param node the node to check
                                         *
                                         * @return boolean <code>true</code> if the node is a leaf node,
                                    *************** public class DefaultTreeModel
                                    *** 275,281 ****
                                         * changed. It will fire the events, necessary to update the layout caches and
                                         * repaint the tree. The tree will <i>not</i> be properly refreshed if you
                                         * call the JTree.repaint instead.
                                    !    * 
                                         * @param node - the tree node, from which the tree nodes have changed
                                         *          (inclusive). If you do not know this node, call {@link #reload()}
                                         *          instead.
                                    --- 275,281 ----
                                         * changed. It will fire the events, necessary to update the layout caches and
                                         * repaint the tree. The tree will <i>not</i> be properly refreshed if you
                                         * call the JTree.repaint instead.
                                    !    *
                                         * @param node - the tree node, from which the tree nodes have changed
                                         *          (inclusive). If you do not know this node, call {@link #reload()}
                                         *          instead.
                                    *************** public class DefaultTreeModel
                                    *** 296,309 ****
                                        }
                                      
                                        /**
                                    !    * Messaged when the user has altered the value for the item 
                                    !    * identified by path to newValue. If newValue signifies a truly new 
                                         * value the model should post a treeNodesChanged event.
                                    !    * This sets the user object of the TreeNode identified by 
                                    !    * path and posts a node changed. If you use custom user objects 
                                    !    * in the TreeModel you're going to need to subclass this and set 
                                         * the user object of the changed node to something meaningful.
                                    !    * 
                                         * @param path - path to the node that the user has altered
                                         * @param newValue - the new value from the TreeCellEditor
                                         */
                                    --- 296,309 ----
                                        }
                                      
                                        /**
                                    !    * Messaged when the user has altered the value for the item
                                    !    * identified by path to newValue. If newValue signifies a truly new
                                         * value the model should post a treeNodesChanged event.
                                    !    * This sets the user object of the TreeNode identified by
                                    !    * path and posts a node changed. If you use custom user objects
                                    !    * in the TreeModel you're going to need to subclass this and set
                                         * the user object of the changed node to something meaningful.
                                    !    *
                                         * @param path - path to the node that the user has altered
                                         * @param newValue - the new value from the TreeCellEditor
                                         */
                                    *************** public class DefaultTreeModel
                                    *** 314,320 ****
                                            {
                                              ((MutableTreeNode) node).setUserObject(newValue);
                                              int[] ci = null;
                                    !         Object[] c = null; 
                                              Object[] parentPath = path.getPath();
                                              if (path.getPathCount() > 1)
                                                {
                                    --- 314,320 ----
                                            {
                                              ((MutableTreeNode) node).setUserObject(newValue);
                                              int[] ci = null;
                                    !         Object[] c = null;
                                              Object[] parentPath = path.getPath();
                                              if (path.getPathCount() > 1)
                                                {
                                    *************** public class DefaultTreeModel
                                    *** 327,343 ****
                                                  c[0] = node;
                                                  parentPath = path.getParentPath().getPath();
                                                }
                                    !         
                                              fireTreeNodesChanged(this, parentPath, ci, c);
                                            }
                                          }
                                      
                                        /**
                                         * Invoked this to insert newChild at location index in parents children.
                                    !    * This will then message nodesWereInserted to create the appropriate event. 
                                    !    * This is the preferred way to add children as it will create the 
                                         * appropriate event.
                                    !    * 
                                         * @param newChild is the node to add to the parent's children
                                         * @param parent is the parent of the newChild
                                         * @param index is the index of the newChild
                                    --- 327,343 ----
                                                  c[0] = node;
                                                  parentPath = path.getParentPath().getPath();
                                                }
                                    ! 
                                              fireTreeNodesChanged(this, parentPath, ci, c);
                                            }
                                          }
                                      
                                        /**
                                         * Invoked this to insert newChild at location index in parents children.
                                    !    * This will then message nodesWereInserted to create the appropriate event.
                                    !    * This is the preferred way to add children as it will create the
                                         * appropriate event.
                                    !    *
                                         * @param newChild is the node to add to the parent's children
                                         * @param parent is the parent of the newChild
                                         * @param index is the index of the newChild
                                    *************** public class DefaultTreeModel
                                    *** 353,362 ****
                                        }
                                      
                                        /**
                                    !    * Message this to remove node from its parent. This will message 
                                    !    * nodesWereRemoved to create the appropriate event. This is the preferred 
                                         * way to remove a node as it handles the event creation for you.
                                    !    * 
                                         * @param node to be removed
                                         */
                                        public void removeNodeFromParent(MutableTreeNode node)
                                    --- 353,362 ----
                                        }
                                      
                                        /**
                                    !    * Message this to remove node from its parent. This will message
                                    !    * nodesWereRemoved to create the appropriate event. This is the preferred
                                         * way to remove a node as it handles the event creation for you.
                                    !    *
                                         * @param node to be removed
                                         */
                                        public void removeNodeFromParent(MutableTreeNode node)
                                    *************** public class DefaultTreeModel
                                    *** 373,379 ****
                                        /**
                                         * Invoke this method after you've changed how node is to be represented
                                         * in the tree.
                                    !    * 
                                         * @param node that was changed
                                         */
                                        public void nodeChanged(TreeNode node)
                                    --- 373,379 ----
                                        /**
                                         * Invoke this method after you've changed how node is to be represented
                                         * in the tree.
                                    !    *
                                         * @param node that was changed
                                         */
                                        public void nodeChanged(TreeNode node)
                                    *************** public class DefaultTreeModel
                                    *** 387,396 ****
                                        }
                                      
                                        /**
                                    !    * Invoke this method after you've inserted some TreeNodes 
                                    !    * into node. childIndices should be the index of the new elements and must 
                                         * be sorted in ascending order.
                                    !    * 
                                         * @param parent that had a child added to
                                         * @param childIndices of the children added
                                         */
                                    --- 387,396 ----
                                        }
                                      
                                        /**
                                    !    * Invoke this method after you've inserted some TreeNodes
                                    !    * into node. childIndices should be the index of the new elements and must
                                         * be sorted in ascending order.
                                    !    *
                                         * @param parent that had a child added to
                                         * @param childIndices of the children added
                                         */
                                    *************** public class DefaultTreeModel
                                    *** 403,428 ****
                                        }
                                      
                                        /**
                                    !    * Invoke this method after you've removed some TreeNodes from node. 
                                    !    * childIndices should be the index of the removed elements and 
                                    !    * must be sorted in ascending order. And removedChildren should be the 
                                         * array of the children objects that were removed.
                                    !    * 
                                         * @param parent that had a child added to
                                         * @param childIndices of the children added
                                         * @param removedChildren are all the children removed from parent.
                                         */
                                    !   public void nodesWereRemoved(TreeNode parent, int[] childIndices, 
                                                                     Object[] removedChildren)
                                        {
                                    !     fireTreeNodesRemoved(this, getPathToRoot(parent), childIndices, 
                                                               removedChildren);
                                        }
                                      
                                        /**
                                    !    * Invoke this method after you've changed how the children identified by 
                                         * childIndices are to be represented in the tree.
                                    !    * 
                                         * @param node that is the parent of the children that changed in a tree.
                                         * @param childIndices are the child nodes that changed.
                                         */
                                    --- 403,428 ----
                                        }
                                      
                                        /**
                                    !    * Invoke this method after you've removed some TreeNodes from node.
                                    !    * childIndices should be the index of the removed elements and
                                    !    * must be sorted in ascending order. And removedChildren should be the
                                         * array of the children objects that were removed.
                                    !    *
                                         * @param parent that had a child added to
                                         * @param childIndices of the children added
                                         * @param removedChildren are all the children removed from parent.
                                         */
                                    !   public void nodesWereRemoved(TreeNode parent, int[] childIndices,
                                                                     Object[] removedChildren)
                                        {
                                    !     fireTreeNodesRemoved(this, getPathToRoot(parent), childIndices,
                                                               removedChildren);
                                        }
                                      
                                        /**
                                    !    * Invoke this method after you've changed how the children identified by
                                         * childIndices are to be represented in the tree.
                                    !    *
                                         * @param node that is the parent of the children that changed in a tree.
                                         * @param childIndices are the child nodes that changed.
                                         */
                                    *************** public class DefaultTreeModel
                                    *** 435,443 ****
                                        }
                                      
                                        /**
                                    !    * Invoke this method if you've totally changed the children of node and 
                                         * its childrens children. This will post a treeStructureChanged event.
                                    !    * 
                                         * @param node that had its children and grandchildren changed.
                                         */
                                        public void nodeStructureChanged(TreeNode node)
                                    --- 435,443 ----
                                        }
                                      
                                        /**
                                    !    * Invoke this method if you've totally changed the children of node and
                                         * its childrens children. This will post a treeStructureChanged event.
                                    !    *
                                         * @param node that had its children and grandchildren changed.
                                         */
                                        public void nodeStructureChanged(TreeNode node)
                                    *************** public class DefaultTreeModel
                                    *** 456,465 ****
                                        }
                                      
                                        /**
                                    !    * Builds the parents of node up to and including the root node, where 
                                    !    * the original node is the last element in the returned array. The 
                                         * length of the returned array gives the node's depth in the tree.
                                    !    * 
                                         * @param node - the TreeNode to get the path for
                                         * @return TreeNode[] - the path from node to the root
                                         */
                                    --- 456,465 ----
                                        }
                                      
                                        /**
                                    !    * Builds the parents of node up to and including the root node, where
                                    !    * the original node is the last element in the returned array. The
                                         * length of the returned array gives the node's depth in the tree.
                                    !    *
                                         * @param node - the TreeNode to get the path for
                                         * @return TreeNode[] - the path from node to the root
                                         */
                                    *************** public class DefaultTreeModel
                                    *** 469,482 ****
                                        }
                                      
                                        /**
                                    !    * Builds the parents of node up to and including the root node, where 
                                    !    * the original node is the last element in the returned array. The 
                                         * length of the returned array gives the node's depth in the tree.
                                    !    * 
                                         * @param node - the TreeNode to get the path for
                                    !    * @param depth - an int giving the number of steps already taken 
                                         * towards the root (on recursive calls), used to size the returned array
                                    !    * @return an array of TreeNodes giving the path from the root to the 
                                         * specified node
                                         */
                                        protected TreeNode[] getPathToRoot(TreeNode node, int depth)
                                    --- 469,482 ----
                                        }
                                      
                                        /**
                                    !    * Builds the parents of node up to and including the root node, where
                                    !    * the original node is the last element in the returned array. The
                                         * length of the returned array gives the node's depth in the tree.
                                    !    *
                                         * @param node - the TreeNode to get the path for
                                    !    * @param depth - an int giving the number of steps already taken
                                         * towards the root (on recursive calls), used to size the returned array
                                    !    * @return an array of TreeNodes giving the path from the root to the
                                         * specified node
                                         */
                                        protected TreeNode[] getPathToRoot(TreeNode node, int depth)
                                    *************** public class DefaultTreeModel
                                    *** 485,491 ****
                                            {
                                              if (depth == 0)
                                                return null;
                                    !         
                                              return new TreeNode[depth];
                                            }
                                      
                                    --- 485,491 ----
                                            {
                                              if (depth == 0)
                                                return null;
                                    ! 
                                              return new TreeNode[depth];
                                            }
                                      
                                    *************** public class DefaultTreeModel
                                    *** 496,502 ****
                                      
                                        /**
                                         * Registers a listere to the model.
                                    !    * 
                                         * @param listener the listener to add
                                         */
                                        public void addTreeModelListener(TreeModelListener listener)
                                    --- 496,502 ----
                                      
                                        /**
                                         * Registers a listere to the model.
                                    !    *
                                         * @param listener the listener to add
                                         */
                                        public void addTreeModelListener(TreeModelListener listener)
                                    *************** public class DefaultTreeModel
                                    *** 506,512 ****
                                      
                                        /**
                                         * Removes a listener from the model.
                                    !    * 
                                         * @param listener the listener to remove
                                         */
                                        public void removeTreeModelListener(TreeModelListener listener)
                                    --- 506,512 ----
                                      
                                        /**
                                         * Removes a listener from the model.
                                    !    *
                                         * @param listener the listener to remove
                                         */
                                        public void removeTreeModelListener(TreeModelListener listener)
                                    *************** public class DefaultTreeModel
                                    *** 516,524 ****
                                      
                                        /**
                                         * Returns all registered <code>TreeModelListener</code> listeners.
                                    !    * 
                                         * @return an array of listeners.
                                    !    * 
                                         * @since 1.4
                                         */
                                        public TreeModelListener[] getTreeModelListeners()
                                    --- 516,524 ----
                                      
                                        /**
                                         * Returns all registered <code>TreeModelListener</code> listeners.
                                    !    *
                                         * @return an array of listeners.
                                    !    *
                                         * @since 1.4
                                         */
                                        public TreeModelListener[] getTreeModelListeners()
                                    *************** public class DefaultTreeModel
                                    *** 528,537 ****
                                        }
                                      
                                        /**
                                    !    * Notifies all listeners that have registered interest for notification 
                                    !    * on this event type. The event instance is lazily created using the parameters 
                                         * passed into the fire method.
                                    !    * 
                                         * @param source the node being changed
                                         * @param path the path to the root node
                                         * @param childIndices the indices of the changed elements
                                    --- 528,537 ----
                                        }
                                      
                                        /**
                                    !    * Notifies all listeners that have registered interest for notification
                                    !    * on this event type. The event instance is lazily created using the parameters
                                         * passed into the fire method.
                                    !    *
                                         * @param source the node being changed
                                         * @param path the path to the root node
                                         * @param childIndices the indices of the changed elements
                                    *************** public class DefaultTreeModel
                                    *** 551,557 ****
                                      
                                        /**
                                         * fireTreeNodesInserted
                                    !    * 
                                         * @param source the node where new nodes got inserted
                                         * @param path the path to the root node
                                         * @param childIndices the indices of the new elements
                                    --- 551,557 ----
                                      
                                        /**
                                         * fireTreeNodesInserted
                                    !    *
                                         * @param source the node where new nodes got inserted
                                         * @param path the path to the root node
                                         * @param childIndices the indices of the new elements
                                    *************** public class DefaultTreeModel
                                    *** 570,576 ****
                                      
                                        /**
                                         * fireTreeNodesRemoved
                                    !    * 
                                         * @param source the node where nodes got removed-
                                         * @param path the path to the root node
                                         * @param childIndices the indices of the removed elements
                                    --- 570,576 ----
                                      
                                        /**
                                         * fireTreeNodesRemoved
                                    !    *
                                         * @param source the node where nodes got removed-
                                         * @param path the path to the root node
                                         * @param childIndices the indices of the removed elements
                                    *************** public class DefaultTreeModel
                                    *** 589,595 ****
                                      
                                        /**
                                         * fireTreeStructureChanged
                                    !    * 
                                         * @param source the node where the model has changed
                                         * @param path the path to the root node
                                         * @param childIndices the indices of the affected elements
                                    --- 589,595 ----
                                      
                                        /**
                                         * fireTreeStructureChanged
                                    !    *
                                         * @param source the node where the model has changed
                                         * @param path the path to the root node
                                         * @param childIndices the indices of the affected elements
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,6 ****
                                    ! /* DefaultTreeSelectionModel.java 
                                         Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
                                    !    
                                      This file is part of GNU Classpath.
                                      
                                      GNU Classpath is free software; you can redistribute it and/or modify
                                    --- 1,6 ----
                                    ! /* DefaultTreeSelectionModel.java
                                         Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
                                    ! 
                                      This file is part of GNU Classpath.
                                      
                                      GNU Classpath is free software; you can redistribute it and/or modify
                                    *************** import javax.swing.event.TreeSelectionLi
                                    *** 63,69 ****
                                       * listeners are notified about the path and not the row changes. If you
                                       * specifically need to track the row changes, register the listener for the
                                       * expansion events.
                                    !  * 
                                       * @author Andrew Selkirk
                                       * @author Audrius Meskauskas
                                       */
                                    --- 63,69 ----
                                       * listeners are notified about the path and not the row changes. If you
                                       * specifically need to track the row changes, register the listener for the
                                       * expansion events.
                                    !  *
                                       * @author Andrew Selkirk
                                       * @author Audrius Meskauskas
                                       */
                                    *************** public class DefaultTreeSelectionModel
                                    *** 195,207 ****
                                         * Creates a clone of this DefaultTreeSelectionModel with the same selection.
                                         * The cloned instance will have the same registered listeners, the listeners
                                         * themselves will not be cloned. The selection will be cloned.
                                    !    * 
                                         * @exception CloneNotSupportedException should not be thrown here
                                         * @return a copy of this DefaultTreeSelectionModel
                                         */
                                        public Object clone() throws CloneNotSupportedException
                                        {
                                    !     DefaultTreeSelectionModel cloned = 
                                            (DefaultTreeSelectionModel) super.clone();
                                          cloned.changeSupport = null;
                                          cloned.selection = (TreePath[]) selection.clone();
                                    --- 195,207 ----
                                         * Creates a clone of this DefaultTreeSelectionModel with the same selection.
                                         * The cloned instance will have the same registered listeners, the listeners
                                         * themselves will not be cloned. The selection will be cloned.
                                    !    *
                                         * @exception CloneNotSupportedException should not be thrown here
                                         * @return a copy of this DefaultTreeSelectionModel
                                         */
                                        public Object clone() throws CloneNotSupportedException
                                        {
                                    !     DefaultTreeSelectionModel cloned =
                                            (DefaultTreeSelectionModel) super.clone();
                                          cloned.changeSupport = null;
                                          cloned.selection = (TreePath[]) selection.clone();
                                    *************** public class DefaultTreeSelectionModel
                                    *** 217,226 ****
                                        /**
                                         * Returns a string that shows this object's properties.
                                         * The returned string lists the selected tree rows, if any.
                                    !    * 
                                         * @return a string that shows this object's properties
                                         */
                                    !   public String toString() 
                                        {
                                          if (isSelectionEmpty())
                                            return "[selection empty]";
                                    --- 217,226 ----
                                        /**
                                         * Returns a string that shows this object's properties.
                                         * The returned string lists the selected tree rows, if any.
                                    !    *
                                         * @return a string that shows this object's properties
                                         */
                                    !   public String toString()
                                        {
                                          if (isSelectionEmpty())
                                            return "[selection empty]";
                                    *************** public class DefaultTreeSelectionModel
                                    *** 239,245 ****
                                      
                                        /**
                                         * writeObject
                                    !    * 
                                         * @param value0 TODO
                                         * @exception IOException TODO
                                         */
                                    --- 239,245 ----
                                      
                                        /**
                                         * writeObject
                                    !    *
                                         * @param value0 TODO
                                         * @exception IOException TODO
                                         */
                                    *************** public class DefaultTreeSelectionModel
                                    *** 250,256 ****
                                      
                                        /**
                                         * readObject
                                    !    * 
                                         * @param value0 TODO
                                         * @exception IOException TODO
                                         * @exception ClassNotFoundException TODO
                                    --- 250,256 ----
                                      
                                        /**
                                         * readObject
                                    !    *
                                         * @param value0 TODO
                                         * @exception IOException TODO
                                         * @exception ClassNotFoundException TODO
                                    *************** public class DefaultTreeSelectionModel
                                    *** 263,269 ****
                                      
                                        /**
                                         * Sets the RowMapper that should be used to map between paths and their rows.
                                    !    * 
                                         * @param mapper the RowMapper to set
                                         * @see RowMapper
                                         */
                                    --- 263,269 ----
                                      
                                        /**
                                         * Sets the RowMapper that should be used to map between paths and their rows.
                                    !    *
                                         * @param mapper the RowMapper to set
                                         * @see RowMapper
                                         */
                                    *************** public class DefaultTreeSelectionModel
                                    *** 276,282 ****
                                        /**
                                         * Returns the RowMapper that is currently used to map between paths and their
                                         * rows.
                                    !    * 
                                         * @return the current RowMapper
                                         * @see RowMapper
                                         */
                                    --- 276,282 ----
                                        /**
                                         * Returns the RowMapper that is currently used to map between paths and their
                                         * rows.
                                    !    *
                                         * @return the current RowMapper
                                         * @see RowMapper
                                         */
                                    *************** public class DefaultTreeSelectionModel
                                    *** 289,295 ****
                                         * Sets the current selection mode. Possible values are
                                         * {@link #SINGLE_TREE_SELECTION}, {@link #CONTIGUOUS_TREE_SELECTION} and
                                         * {@link #DISCONTIGUOUS_TREE_SELECTION}.
                                    !    * 
                                         * @param mode the selection mode to be set
                                         * @see #getSelectionMode
                                         * @see #SINGLE_TREE_SELECTION
                                    --- 289,295 ----
                                         * Sets the current selection mode. Possible values are
                                         * {@link #SINGLE_TREE_SELECTION}, {@link #CONTIGUOUS_TREE_SELECTION} and
                                         * {@link #DISCONTIGUOUS_TREE_SELECTION}.
                                    !    *
                                         * @param mode the selection mode to be set
                                         * @see #getSelectionMode
                                         * @see #SINGLE_TREE_SELECTION
                                    *************** public class DefaultTreeSelectionModel
                                    *** 314,320 ****
                                      
                                        /**
                                         * Returns the current selection mode.
                                    !    * 
                                         * @return the current selection mode
                                         * @see #setSelectionMode
                                         * @see #SINGLE_TREE_SELECTION
                                    --- 314,320 ----
                                      
                                        /**
                                         * Returns the current selection mode.
                                    !    *
                                         * @return the current selection mode
                                         * @see #setSelectionMode
                                         * @see #SINGLE_TREE_SELECTION
                                    *************** public class DefaultTreeSelectionModel
                                    *** 329,335 ****
                                        /**
                                         * Sets this path as the only selection. If this changes the selection the
                                         * registered TreeSelectionListeners are notified.
                                    !    * 
                                         * @param path the path to set as selection
                                         */
                                        public void setSelectionPath(TreePath path)
                                    --- 329,335 ----
                                        /**
                                         * Sets this path as the only selection. If this changes the selection the
                                         * registered TreeSelectionListeners are notified.
                                    !    *
                                         * @param path the path to set as selection
                                         */
                                        public void setSelectionPath(TreePath path)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 339,348 ****
                                            paths = new TreePath[]{ path };
                                          setSelectionPaths(paths);
                                        }
                                    !   
                                        /**
                                         * Get the number of the tree row for the given path.
                                    !    * 
                                         * @param path the tree path
                                         * @return the tree row for this path or -1 if the path is not visible.
                                         */
                                    --- 339,348 ----
                                            paths = new TreePath[]{ path };
                                          setSelectionPaths(paths);
                                        }
                                    ! 
                                        /**
                                         * Get the number of the tree row for the given path.
                                    !    *
                                         * @param path the tree path
                                         * @return the tree row for this path or -1 if the path is not visible.
                                         */
                                    *************** public class DefaultTreeSelectionModel
                                    *** 373,379 ****
                                         * Sets the paths as selection. This method checks for duplicates and removes
                                         * them. If this changes the selection the registered TreeSelectionListeners
                                         * are notified.
                                    !    * 
                                         * @param paths the paths to set as selection
                                         */
                                        public void setSelectionPaths(TreePath[] paths)
                                    --- 373,379 ----
                                         * Sets the paths as selection. This method checks for duplicates and removes
                                         * them. If this changes the selection the registered TreeSelectionListeners
                                         * are notified.
                                    !    *
                                         * @param paths the paths to set as selection
                                         */
                                        public void setSelectionPaths(TreePath[] paths)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 468,477 ****
                                         * Adds a path to the list of selected paths. This method checks if the path
                                         * is already selected and doesn't add the same path twice. If this changes
                                         * the selection the registered TreeSelectionListeners are notified.
                                    !    * 
                                    !    * The lead path is changed to the added path. This also happen if the 
                                         * passed path was already selected before.
                                    !    * 
                                         * @param path the path to add to the selection
                                         */
                                        public void addSelectionPath(TreePath path)
                                    --- 468,477 ----
                                         * Adds a path to the list of selected paths. This method checks if the path
                                         * is already selected and doesn't add the same path twice. If this changes
                                         * the selection the registered TreeSelectionListeners are notified.
                                    !    *
                                    !    * The lead path is changed to the added path. This also happen if the
                                         * passed path was already selected before.
                                    !    *
                                         * @param path the path to add to the selection
                                         */
                                        public void addSelectionPath(TreePath path)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 487,493 ****
                                         * Adds the paths to the list of selected paths. This method checks if the
                                         * paths are already selected and doesn't add the same path twice. If this
                                         * changes the selection the registered TreeSelectionListeners are notified.
                                    !    * 
                                         * @param paths the paths to add to the selection
                                         */
                                        public void addSelectionPaths(TreePath[] paths)
                                    --- 487,493 ----
                                         * Adds the paths to the list of selected paths. This method checks if the
                                         * paths are already selected and doesn't add the same path twice. If this
                                         * changes the selection the registered TreeSelectionListeners are notified.
                                    !    *
                                         * @param paths the paths to add to the selection
                                         */
                                        public void addSelectionPaths(TreePath[] paths)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 568,574 ****
                                        /**
                                         * Removes the path from the selection. If this changes the selection the
                                         * registered TreeSelectionListeners are notified.
                                    !    * 
                                         * @param path the path to remove
                                         */
                                        public void removeSelectionPath(TreePath path)
                                    --- 568,574 ----
                                        /**
                                         * Removes the path from the selection. If this changes the selection the
                                         * registered TreeSelectionListeners are notified.
                                    !    *
                                         * @param path the path to remove
                                         */
                                        public void removeSelectionPath(TreePath path)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 580,586 ****
                                        /**
                                         * Removes the paths from the selection. If this changes the selection the
                                         * registered TreeSelectionListeners are notified.
                                    !    * 
                                         * @param paths the paths to remove
                                         */
                                        public void removeSelectionPaths(TreePath[] paths)
                                    --- 580,586 ----
                                        /**
                                         * Removes the paths from the selection. If this changes the selection the
                                         * registered TreeSelectionListeners are notified.
                                    !    *
                                         * @param paths the paths to remove
                                         */
                                        public void removeSelectionPaths(TreePath[] paths)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 639,645 ****
                                        /**
                                         * Returns the first path in the selection. This is especially useful when the
                                         * selectionMode is {@link #SINGLE_TREE_SELECTION}.
                                    !    * 
                                         * @return the first path in the selection
                                         */
                                        public TreePath getSelectionPath()
                                    --- 639,645 ----
                                        /**
                                         * Returns the first path in the selection. This is especially useful when the
                                         * selectionMode is {@link #SINGLE_TREE_SELECTION}.
                                    !    *
                                         * @return the first path in the selection
                                         */
                                        public TreePath getSelectionPath()
                                    *************** public class DefaultTreeSelectionModel
                                    *** 652,658 ****
                                      
                                        /**
                                         * Returns the complete selection.
                                    !    * 
                                         * @return the complete selection
                                         */
                                        public TreePath[] getSelectionPaths()
                                    --- 652,658 ----
                                      
                                        /**
                                         * Returns the complete selection.
                                    !    *
                                         * @return the complete selection
                                         */
                                        public TreePath[] getSelectionPaths()
                                    *************** public class DefaultTreeSelectionModel
                                    *** 662,668 ****
                                      
                                        /**
                                         * Returns the number of paths in the selection.
                                    !    * 
                                         * @return the number of paths in the selection
                                         */
                                        public int getSelectionCount()
                                    --- 662,668 ----
                                      
                                        /**
                                         * Returns the number of paths in the selection.
                                    !    *
                                         * @return the number of paths in the selection
                                         */
                                        public int getSelectionCount()
                                    *************** public class DefaultTreeSelectionModel
                                    *** 675,681 ****
                                      
                                        /**
                                         * Checks if a given path is in the selection.
                                    !    * 
                                         * @param path the path to check
                                         * @return <code>true</code> if the path is in the selection,
                                         *         <code>false</code> otherwise
                                    --- 675,681 ----
                                      
                                        /**
                                         * Checks if a given path is in the selection.
                                    !    *
                                         * @param path the path to check
                                         * @return <code>true</code> if the path is in the selection,
                                         *         <code>false</code> otherwise
                                    *************** public class DefaultTreeSelectionModel
                                    *** 695,701 ****
                                      
                                        /**
                                         * Checks if the selection is empty.
                                    !    * 
                                         * @return <code>true</code> if the selection is empty, <code>false</code>
                                         *         otherwise
                                         */
                                    --- 695,701 ----
                                      
                                        /**
                                         * Checks if the selection is empty.
                                    !    *
                                         * @return <code>true</code> if the selection is empty, <code>false</code>
                                         *         otherwise
                                         */
                                    *************** public class DefaultTreeSelectionModel
                                    *** 729,735 ****
                                      
                                        /**
                                         * Adds a <code>TreeSelectionListener</code> object to this model.
                                    !    * 
                                         * @param listener the listener to add
                                         */
                                        public void addTreeSelectionListener(TreeSelectionListener listener)
                                    --- 729,735 ----
                                      
                                        /**
                                         * Adds a <code>TreeSelectionListener</code> object to this model.
                                    !    *
                                         * @param listener the listener to add
                                         */
                                        public void addTreeSelectionListener(TreeSelectionListener listener)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 739,745 ****
                                      
                                        /**
                                         * Removes a <code>TreeSelectionListener</code> object from this model.
                                    !    * 
                                         * @param listener the listener to remove
                                         */
                                        public void removeTreeSelectionListener(TreeSelectionListener listener)
                                    --- 739,745 ----
                                      
                                        /**
                                         * Removes a <code>TreeSelectionListener</code> object from this model.
                                    !    *
                                         * @param listener the listener to remove
                                         */
                                        public void removeTreeSelectionListener(TreeSelectionListener listener)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 749,755 ****
                                      
                                        /**
                                         * Returns all <code>TreeSelectionListener</code> added to this model.
                                    !    * 
                                         * @return an array of listeners
                                         * @since 1.4
                                         */
                                    --- 749,755 ----
                                      
                                        /**
                                         * Returns all <code>TreeSelectionListener</code> added to this model.
                                    !    *
                                         * @return an array of listeners
                                         * @since 1.4
                                         */
                                    *************** public class DefaultTreeSelectionModel
                                    *** 760,766 ****
                                      
                                        /**
                                         * fireValueChanged
                                    !    * 
                                         * @param event the event to fire.
                                         */
                                        protected void fireValueChanged(TreeSelectionEvent event)
                                    --- 760,766 ----
                                      
                                        /**
                                         * fireValueChanged
                                    !    *
                                         * @param event the event to fire.
                                         */
                                        protected void fireValueChanged(TreeSelectionEvent event)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 773,779 ****
                                      
                                        /**
                                         * Returns all added listeners of a special type.
                                    !    * 
                                         * @param listenerType the listener type
                                         * @return an array of listeners
                                         * @since 1.3
                                    --- 773,779 ----
                                      
                                        /**
                                         * Returns all added listeners of a special type.
                                    !    *
                                         * @param listenerType the listener type
                                         * @return an array of listeners
                                         * @since 1.3
                                    *************** public class DefaultTreeSelectionModel
                                    *** 785,791 ****
                                      
                                        /**
                                         * Returns the currently selected rows.
                                    !    * 
                                         * @return the currently selected rows
                                         */
                                        public int[] getSelectionRows()
                                    --- 785,791 ----
                                      
                                        /**
                                         * Returns the currently selected rows.
                                    !    *
                                         * @return the currently selected rows
                                         */
                                        public int[] getSelectionRows()
                                    *************** public class DefaultTreeSelectionModel
                                    *** 802,808 ****
                                                    {
                                                      if (rows[i] == -1)
                                                        invisible++;
                                    !                 
                                                    }
                                                  // Clean up invisible rows.
                                                  if (invisible > 0)
                                    --- 802,808 ----
                                                    {
                                                      if (rows[i] == -1)
                                                        invisible++;
                                    ! 
                                                    }
                                                  // Clean up invisible rows.
                                                  if (invisible > 0)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 831,837 ****
                                      
                                        /**
                                         * Returns the smallest row index from the selection.
                                    !    * 
                                         * @return the smallest row index from the selection
                                         */
                                        public int getMinSelectionRow()
                                    --- 831,837 ----
                                      
                                        /**
                                         * Returns the smallest row index from the selection.
                                    !    *
                                         * @return the smallest row index from the selection
                                         */
                                        public int getMinSelectionRow()
                                    *************** public class DefaultTreeSelectionModel
                                    *** 841,847 ****
                                      
                                        /**
                                         * Returns the largest row index from the selection.
                                    !    * 
                                         * @return the largest row index from the selection
                                         */
                                        public int getMaxSelectionRow()
                                    --- 841,847 ----
                                      
                                        /**
                                         * Returns the largest row index from the selection.
                                    !    *
                                         * @return the largest row index from the selection
                                         */
                                        public int getMaxSelectionRow()
                                    *************** public class DefaultTreeSelectionModel
                                    *** 851,857 ****
                                      
                                        /**
                                         * Checks if a particular row is selected.
                                    !    * 
                                         * @param row the index of the row to check
                                         * @return <code>true</code> if the row is in this selection,
                                         *         <code>false</code> otherwise
                                    --- 851,857 ----
                                      
                                        /**
                                         * Checks if a particular row is selected.
                                    !    *
                                         * @param row the index of the row to check
                                         * @return <code>true</code> if the row is in this selection,
                                         *         <code>false</code> otherwise
                                    *************** public class DefaultTreeSelectionModel
                                    *** 899,905 ****
                                      
                                        /**
                                         * getLeadSelectionRow
                                    !    * 
                                         * @return int
                                         */
                                        public int getLeadSelectionRow()
                                    --- 899,905 ----
                                      
                                        /**
                                         * getLeadSelectionRow
                                    !    *
                                         * @return int
                                         */
                                        public int getLeadSelectionRow()
                                    *************** public class DefaultTreeSelectionModel
                                    *** 909,915 ****
                                      
                                        /**
                                         * getLeadSelectionPath
                                    !    * 
                                         * @return TreePath
                                         */
                                        public TreePath getLeadSelectionPath()
                                    --- 909,915 ----
                                      
                                        /**
                                         * getLeadSelectionPath
                                    !    *
                                         * @return TreePath
                                         */
                                        public TreePath getLeadSelectionPath()
                                    *************** public class DefaultTreeSelectionModel
                                    *** 919,925 ****
                                      
                                        /**
                                         * Adds a <code>PropertyChangeListener</code> object to this model.
                                    !    * 
                                         * @param listener the listener to add.
                                         */
                                        public void addPropertyChangeListener(PropertyChangeListener listener)
                                    --- 919,925 ----
                                      
                                        /**
                                         * Adds a <code>PropertyChangeListener</code> object to this model.
                                    !    *
                                         * @param listener the listener to add.
                                         */
                                        public void addPropertyChangeListener(PropertyChangeListener listener)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 931,937 ****
                                      
                                        /**
                                         * Removes a <code>PropertyChangeListener</code> object from this model.
                                    !    * 
                                         * @param listener the listener to remove.
                                         */
                                        public void removePropertyChangeListener(PropertyChangeListener listener)
                                    --- 931,937 ----
                                      
                                        /**
                                         * Removes a <code>PropertyChangeListener</code> object from this model.
                                    !    *
                                         * @param listener the listener to remove.
                                         */
                                        public void removePropertyChangeListener(PropertyChangeListener listener)
                                    *************** public class DefaultTreeSelectionModel
                                    *** 942,948 ****
                                      
                                        /**
                                         * Returns all added <code>PropertyChangeListener</code> objects.
                                    !    * 
                                         * @return an array of listeners.
                                         * @since 1.4
                                         */
                                    --- 942,948 ----
                                      
                                        /**
                                         * Returns all added <code>PropertyChangeListener</code> objects.
                                    !    *
                                         * @return an array of listeners.
                                         * @since 1.4
                                         */
                                    *************** public class DefaultTreeSelectionModel
                                    *** 1000,1011 ****
                                              && selection.length > 1)
                                            setSelectionPath(selection[0]);
                                        }
                                    !   
                                        /**
                                         * Returns <code>true</code> if the paths are contiguous (take subsequent
                                         * rows in the diplayed tree view. The method returns <code>true</code> if
                                         * we have no RowMapper assigned.
                                    !    * 
                                         * @param paths the paths to check for continuity
                                         * @return <code>true</code> if the paths are contiguous or we have no
                                         *         RowMapper assigned
                                    --- 1000,1011 ----
                                              && selection.length > 1)
                                            setSelectionPath(selection[0]);
                                        }
                                    ! 
                                        /**
                                         * Returns <code>true</code> if the paths are contiguous (take subsequent
                                         * rows in the diplayed tree view. The method returns <code>true</code> if
                                         * we have no RowMapper assigned.
                                    !    *
                                         * @param paths the paths to check for continuity
                                         * @return <code>true</code> if the paths are contiguous or we have no
                                         *         RowMapper assigned
                                    *************** public class DefaultTreeSelectionModel
                                    *** 1038,1044 ****
                                                      selected.set(row);
                                                      valid++;
                                                    }
                                    !             
                                                }
                                            }
                                          int max = valid + min;
                                    --- 1038,1044 ----
                                                      selected.set(row);
                                                      valid++;
                                                    }
                                    ! 
                                                }
                                            }
                                          int max = valid + min;
                                    *************** public class DefaultTreeSelectionModel
                                    *** 1057,1063 ****
                                         * <li>selectionMode is {@link #DISCONTIGUOUS_TREE_SELECTION}</li>
                                         * <li>adding the paths to the selection still results in a contiguous set of
                                         * paths</li>
                                    !    * 
                                         * @param paths the paths to check
                                         * @return <code>true</code> if the paths can be added with respect to the
                                         *         selectionMode
                                    --- 1057,1063 ----
                                         * <li>selectionMode is {@link #DISCONTIGUOUS_TREE_SELECTION}</li>
                                         * <li>adding the paths to the selection still results in a contiguous set of
                                         * paths</li>
                                    !    *
                                         * @param paths the paths to check
                                         * @return <code>true</code> if the paths can be added with respect to the
                                         *         selectionMode
                                    *************** public class DefaultTreeSelectionModel
                                    *** 1107,1117 ****
                                              return false;
                                          return true;
                                        }
                                    !   
                                        /**
                                         * Checks if the paths can be removed without breaking the continuity of the
                                         * selection according to selectionMode.
                                    !    * 
                                         * @param paths the paths to check
                                         * @return <code>true</code> if the paths can be removed with respect to the
                                         *         selectionMode
                                    --- 1107,1117 ----
                                              return false;
                                          return true;
                                        }
                                    ! 
                                        /**
                                         * Checks if the paths can be removed without breaking the continuity of the
                                         * selection according to selectionMode.
                                    !    *
                                         * @param paths the paths to check
                                         * @return <code>true</code> if the paths can be removed with respect to the
                                         *         selectionMode
                                    *************** public class DefaultTreeSelectionModel
                                    *** 1121,1140 ****
                                          if (rowMapper == null || isSelectionEmpty()
                                              || selectionMode == DISCONTIGUOUS_TREE_SELECTION)
                                            return true;
                                    !     
                                          HashSet<TreePath> set = new HashSet<TreePath>();
                                          for (int i = 0; i < selection.length; i++)
                                            set.add(selection[i]);
                                    !     
                                          for (int i = 0; i < paths.length; i++)
                                            set.remove(paths[i]);
                                    !     
                                          TreePath[] remaining = new TreePath[set.size()];
                                          Iterator<TreePath> iter = set.iterator();
                                    !     
                                          for (int i = 0; i < remaining.length; i++)
                                            remaining[i] = iter.next();
                                    !     
                                          return arePathsContiguous(remaining);
                                        }
                                      
                                    --- 1121,1140 ----
                                          if (rowMapper == null || isSelectionEmpty()
                                              || selectionMode == DISCONTIGUOUS_TREE_SELECTION)
                                            return true;
                                    ! 
                                          HashSet<TreePath> set = new HashSet<TreePath>();
                                          for (int i = 0; i < selection.length; i++)
                                            set.add(selection[i]);
                                    ! 
                                          for (int i = 0; i < paths.length; i++)
                                            set.remove(paths[i]);
                                    ! 
                                          TreePath[] remaining = new TreePath[set.size()];
                                          Iterator<TreePath> iter = set.iterator();
                                    ! 
                                          for (int i = 0; i < remaining.length; i++)
                                            remaining[i] = iter.next();
                                    ! 
                                          return arePathsContiguous(remaining);
                                        }
                                      
                                    *************** public class DefaultTreeSelectionModel
                                    *** 1142,1153 ****
                                         * Notify the installed listeners that the given patches have changed. This
                                         * method will call listeners if invoked, but it is not called from the
                                         * implementation of this class.
                                    !    * 
                                         * @param vPaths the vector of the changed patches
                                         * @param oldLeadSelection the old selection index
                                         */
                                        protected void notifyPathChange(Vector<PathPlaceHolder> vPaths,
                                    ! 				  TreePath oldLeadSelection)
                                        {
                                      
                                          int numChangedPaths = vPaths.size();
                                    --- 1142,1153 ----
                                         * Notify the installed listeners that the given patches have changed. This
                                         * method will call listeners if invoked, but it is not called from the
                                         * implementation of this class.
                                    !    *
                                         * @param vPaths the vector of the changed patches
                                         * @param oldLeadSelection the old selection index
                                         */
                                        protected void notifyPathChange(Vector<PathPlaceHolder> vPaths,
                                    !                                   TreePath oldLeadSelection)
                                        {
                                      
                                          int numChangedPaths = vPaths.size();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/ExpandVetoException.java gcc-4.6.0/libjava/classpath/javax/swing/tree/ExpandVetoException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/ExpandVetoException.java	Fri Jun  9 16:07:07 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/ExpandVetoException.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.event.TreeExpansionEv
                                    *** 43,49 ****
                                       * ExpandVetoException
                                       * @author Andrew Selkirk
                                       */
                                    ! public class ExpandVetoException extends Exception 
                                      {
                                      
                                        /**
                                    --- 43,49 ----
                                       * ExpandVetoException
                                       * @author Andrew Selkirk
                                       */
                                    ! public class ExpandVetoException extends Exception
                                      {
                                      
                                        /**
                                    *************** public class ExpandVetoException extends
                                    *** 56,76 ****
                                         * Constructor ExpandVetoException
                                         * @param event Tree Expansion Event
                                         */
                                    !   public ExpandVetoException(TreeExpansionEvent event) 
                                        {
                                          super();
                                          this.event = event;
                                    !   } 
                                      
                                        /**
                                         * Constructor ExpandVetoException
                                         * @param event Tree Expansion Event
                                         * @param message Message
                                         */
                                    !   public ExpandVetoException(TreeExpansionEvent event, String message) 
                                        {
                                          super(message);
                                          this.event = event;
                                    !   } 
                                      
                                    ! } 
                                    --- 56,76 ----
                                         * Constructor ExpandVetoException
                                         * @param event Tree Expansion Event
                                         */
                                    !   public ExpandVetoException(TreeExpansionEvent event)
                                        {
                                          super();
                                          this.event = event;
                                    !   }
                                      
                                        /**
                                         * Constructor ExpandVetoException
                                         * @param event Tree Expansion Event
                                         * @param message Message
                                         */
                                    !   public ExpandVetoException(TreeExpansionEvent event, String message)
                                        {
                                          super(message);
                                          this.event = event;
                                    !   }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java gcc-4.6.0/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.event.TreeModelEvent;
                                    *** 55,67 ****
                                       * have the same fixed height. This may be not the case, for instance, if leaves
                                       * and branches have different height, of if the tree rows may have arbitrary
                                       * variable height. This class will also work if the NodeDimensions are not
                                    !  * set.  
                                    !  * 
                                       * @author Audrius Meskauskas
                                    !  * @author Andrew Selkirk 
                                       */
                                      public class FixedHeightLayoutCache
                                    ! 		extends VariableHeightLayoutCache
                                      {
                                        /**
                                         * The cached node record.
                                    --- 55,67 ----
                                       * have the same fixed height. This may be not the case, for instance, if leaves
                                       * and branches have different height, of if the tree rows may have arbitrary
                                       * variable height. This class will also work if the NodeDimensions are not
                                    !  * set.
                                    !  *
                                       * @author Audrius Meskauskas
                                    !  * @author Andrew Selkirk
                                       */
                                      public class FixedHeightLayoutCache
                                    !                 extends VariableHeightLayoutCache
                                      {
                                        /**
                                         * The cached node record.
                                    *************** public class FixedHeightLayoutCache
                                    *** 74,120 ****
                                            depth = aDepth;
                                            parent = aParent;
                                            node = aNode;
                                    !       
                                    !       isExpanded = expanded.contains(aNode); 
                                          }
                                    !     
                                          /**
                                           * The row, where the tree node is displayed.
                                           */
                                    !     final int row;    
                                    !     
                                          /**
                                           * The nesting depth
                                           */
                                          final int depth;
                                    !     
                                          /**
                                           * The parent of the given node, null for the root node.
                                           */
                                          final Object parent;
                                    !     
                                          /**
                                           * This node.
                                           */
                                          final Object node;
                                    !     
                                          /**
                                           * True for the expanded nodes. The value is calculated in constructor.
                                           * Using this field saves one hashtable access operation.
                                           */
                                          final boolean isExpanded;
                                    !     
                                          /**
                                           * The cached bounds of the tree row.
                                           */
                                          Rectangle bounds;
                                    !     
                                          /**
                                           * The path from the tree top to the given node (computed under first
                                           * demand)
                                           */
                                          private TreePath path;
                                    !     
                                          /**
                                           * Get the path for this node. The derived class is returned,
                                           * making check for the last child of some parent easier.
                                    --- 74,120 ----
                                            depth = aDepth;
                                            parent = aParent;
                                            node = aNode;
                                    ! 
                                    !       isExpanded = expanded.contains(aNode);
                                          }
                                    ! 
                                          /**
                                           * The row, where the tree node is displayed.
                                           */
                                    !     final int row;
                                    ! 
                                          /**
                                           * The nesting depth
                                           */
                                          final int depth;
                                    ! 
                                          /**
                                           * The parent of the given node, null for the root node.
                                           */
                                          final Object parent;
                                    ! 
                                          /**
                                           * This node.
                                           */
                                          final Object node;
                                    ! 
                                          /**
                                           * True for the expanded nodes. The value is calculated in constructor.
                                           * Using this field saves one hashtable access operation.
                                           */
                                          final boolean isExpanded;
                                    ! 
                                          /**
                                           * The cached bounds of the tree row.
                                           */
                                          Rectangle bounds;
                                    ! 
                                          /**
                                           * The path from the tree top to the given node (computed under first
                                           * demand)
                                           */
                                          private TreePath path;
                                    ! 
                                          /**
                                           * Get the path for this node. The derived class is returned,
                                           * making check for the last child of some parent easier.
                                    *************** public class FixedHeightLayoutCache
                                    *** 155,161 ****
                                              }
                                            return path;
                                          }
                                    !     
                                          /**
                                           * Get the rectangle bounds (compute, if required).
                                           */
                                    --- 155,161 ----
                                              }
                                            return path;
                                          }
                                    ! 
                                          /**
                                           * Get the rectangle bounds (compute, if required).
                                           */
                                    *************** public class FixedHeightLayoutCache
                                    *** 164,200 ****
                                            // This method may be called in the context when the tree rectangle is
                                            // not known. To work around this, it is assumed near infinitely large.
                                            if (bounds == null)
                                    !         bounds = getNodeDimensions(node, row, depth, isExpanded, 
                                                                         new Rectangle());
                                    !       return bounds;      
                                          }
                                        }
                                    !   
                                        /**
                                         * The set of all expanded tree nodes.
                                         */
                                        Set<Object> expanded = new HashSet<Object>();
                                    !   
                                        /**
                                         * Maps nodes to the row numbers.
                                         */
                                        Hashtable<Object,NodeRecord> nodes = new Hashtable<Object,NodeRecord>();
                                    !   
                                        /**
                                         * Maps row numbers to nodes.
                                         */
                                        Hashtable<Integer,Object> row2node = new Hashtable<Integer,Object>();
                                    !   
                                        /**
                                         * If true, the row map must be recomputed before using.
                                         */
                                        boolean dirty;
                                    !   
                                        /**
                                         * The cumulative height of all rows.
                                         */
                                        int totalHeight;
                                    !   
                                        /**
                                         * The maximal width.
                                         */
                                    --- 164,200 ----
                                            // This method may be called in the context when the tree rectangle is
                                            // not known. To work around this, it is assumed near infinitely large.
                                            if (bounds == null)
                                    !         bounds = getNodeDimensions(node, row, depth, isExpanded,
                                                                         new Rectangle());
                                    !       return bounds;
                                          }
                                        }
                                    ! 
                                        /**
                                         * The set of all expanded tree nodes.
                                         */
                                        Set<Object> expanded = new HashSet<Object>();
                                    ! 
                                        /**
                                         * Maps nodes to the row numbers.
                                         */
                                        Hashtable<Object,NodeRecord> nodes = new Hashtable<Object,NodeRecord>();
                                    ! 
                                        /**
                                         * Maps row numbers to nodes.
                                         */
                                        Hashtable<Integer,Object> row2node = new Hashtable<Integer,Object>();
                                    ! 
                                        /**
                                         * If true, the row map must be recomputed before using.
                                         */
                                        boolean dirty;
                                    ! 
                                        /**
                                         * The cumulative height of all rows.
                                         */
                                        int totalHeight;
                                    ! 
                                        /**
                                         * The maximal width.
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 208,228 ****
                                        public FixedHeightLayoutCache()
                                        {
                                          // Nothing to do here.
                                    !   } 
                                      
                                        /**
                                         * Get the total number of rows in the tree. Every displayed node occupies the
                                         * single row. The root node row is included if the root node is set as
                                         * visible (false by default).
                                    !    * 
                                         * @return int the number of the displayed rows.
                                         */
                                        public int getRowCount()
                                        {
                                          if (dirty) update();
                                          return row2node.size();
                                    !   } 
                                    !   
                                        /**
                                         * Refresh the row map.
                                         */
                                    --- 208,228 ----
                                        public FixedHeightLayoutCache()
                                        {
                                          // Nothing to do here.
                                    !   }
                                      
                                        /**
                                         * Get the total number of rows in the tree. Every displayed node occupies the
                                         * single row. The root node row is included if the root node is set as
                                         * visible (false by default).
                                    !    *
                                         * @return int the number of the displayed rows.
                                         */
                                        public int getRowCount()
                                        {
                                          if (dirty) update();
                                          return row2node.size();
                                    !   }
                                    ! 
                                        /**
                                         * Refresh the row map.
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 230,236 ****
                                        {
                                          nodes.clear();
                                          row2node.clear();
                                    !     
                                          totalHeight = maximalWidth = 0;
                                      
                                          Object root = treeModel.getRoot();
                                    --- 230,236 ----
                                        {
                                          nodes.clear();
                                          row2node.clear();
                                    ! 
                                          totalHeight = maximalWidth = 0;
                                      
                                          Object root = treeModel.getRoot();
                                    *************** public class FixedHeightLayoutCache
                                    *** 250,256 ****
                                            }
                                          dirty = false;
                                        }
                                    !   
                                        /**
                                         * Recursively counts all rows in the tree.
                                         */
                                    --- 250,256 ----
                                            }
                                          dirty = false;
                                        }
                                    ! 
                                        /**
                                         * Recursively counts all rows in the tree.
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 258,267 ****
                                        {
                                          Integer n = new Integer(row2node.size());
                                          row2node.put(n, node);
                                    !     
                                          NodeRecord nr = new NodeRecord(n.intValue(), depth, node, parent);
                                          nodes.put(node, nr);
                                    !      
                                          // For expanded nodes and for the root node.
                                          if (expanded.contains(node))
                                            {
                                    --- 258,267 ----
                                        {
                                          Integer n = new Integer(row2node.size());
                                          row2node.put(n, node);
                                    ! 
                                          NodeRecord nr = new NodeRecord(n.intValue(), depth, node, parent);
                                          nodes.put(node, nr);
                                    ! 
                                          // For expanded nodes and for the root node.
                                          if (expanded.contains(node))
                                            {
                                    *************** public class FixedHeightLayoutCache
                                    *** 277,283 ****
                                      
                                        /**
                                         * Discard the bound information for the given path.
                                    !    * 
                                         * @param path the path, for that the bound information must be recomputed.
                                         */
                                        public void invalidatePathBounds(TreePath path)
                                    --- 277,283 ----
                                      
                                        /**
                                         * Discard the bound information for the given path.
                                    !    *
                                         * @param path the path, for that the bound information must be recomputed.
                                         */
                                        public void invalidatePathBounds(TreePath path)
                                    *************** public class FixedHeightLayoutCache
                                    *** 285,291 ****
                                          NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent());
                                          if (r != null)
                                            r.bounds = null;
                                    !   } 
                                      
                                        /**
                                         * Mark all cached information as invalid.
                                    --- 285,291 ----
                                          NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent());
                                          if (r != null)
                                            r.bounds = null;
                                    !   }
                                      
                                        /**
                                         * Mark all cached information as invalid.
                                    *************** public class FixedHeightLayoutCache
                                    *** 293,303 ****
                                        public void invalidateSizes()
                                        {
                                          dirty = true;
                                    !   } 
                                      
                                        /**
                                         * Set the expanded state of the given path. The expansion states must be
                                    !    * always updated when expanding and colapsing the tree nodes. Otherwise 
                                         * other methods will not work correctly after the nodes are collapsed or
                                         * expanded.
                                         *
                                    --- 293,303 ----
                                        public void invalidateSizes()
                                        {
                                          dirty = true;
                                    !   }
                                      
                                        /**
                                         * Set the expanded state of the given path. The expansion states must be
                                    !    * always updated when expanding and colapsing the tree nodes. Otherwise
                                         * other methods will not work correctly after the nodes are collapsed or
                                         * expanded.
                                         *
                                    *************** public class FixedHeightLayoutCache
                                    *** 310,332 ****
                                            expanded.add(path.getLastPathComponent());
                                          else
                                            expanded.remove(path.getLastPathComponent());
                                    !     
                                          dirty = true;
                                        }
                                    !   
                                        /**
                                         * Get the expanded state for the given tree path.
                                    !    * 
                                         * @return true if the given path is expanded, false otherwise.
                                         */
                                        public boolean isExpanded(TreePath path)
                                        {
                                          return expanded.contains(path.getLastPathComponent());
                                    !   } 
                                      
                                        /**
                                         * Get bounds for the given tree path.
                                    !    * 
                                         * @param path the tree path
                                         * @param rect the rectangle that will be reused to return the result.
                                         * @return Rectangle the bounds of the last line, defined by the given path.
                                    --- 310,332 ----
                                            expanded.add(path.getLastPathComponent());
                                          else
                                            expanded.remove(path.getLastPathComponent());
                                    ! 
                                          dirty = true;
                                        }
                                    ! 
                                        /**
                                         * Get the expanded state for the given tree path.
                                    !    *
                                         * @return true if the given path is expanded, false otherwise.
                                         */
                                        public boolean isExpanded(TreePath path)
                                        {
                                          return expanded.contains(path.getLastPathComponent());
                                    !   }
                                      
                                        /**
                                         * Get bounds for the given tree path.
                                    !    *
                                         * @param path the tree path
                                         * @param rect the rectangle that will be reused to return the result.
                                         * @return Rectangle the bounds of the last line, defined by the given path.
                                    *************** public class FixedHeightLayoutCache
                                    *** 356,366 ****
                                              rect.setRect(r.bounds);
                                            }
                                          return rect;
                                    !   } 
                                      
                                        /**
                                         * Get the path, the last element of that is displayed in the given row.
                                    !    * 
                                         * @param row the row
                                         * @return TreePath the path
                                         */
                                    --- 356,366 ----
                                              rect.setRect(r.bounds);
                                            }
                                          return rect;
                                    !   }
                                      
                                        /**
                                         * Get the path, the last element of that is displayed in the given row.
                                    !    *
                                         * @param row the row
                                         * @return TreePath the path
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 376,386 ****
                                              NodeRecord r = nodes.get(last);
                                              return r.getPath();
                                            }
                                    !   } 
                                      
                                        /**
                                         * Get the row, displaying the last node of the given path.
                                    !    * 
                                         * @param path the path
                                         * @return int the row number or -1 if the end of the path is not visible.
                                         */
                                    --- 376,386 ----
                                              NodeRecord r = nodes.get(last);
                                              return r.getPath();
                                            }
                                    !   }
                                      
                                        /**
                                         * Get the row, displaying the last node of the given path.
                                    !    *
                                         * @param path the path
                                         * @return int the row number or -1 if the end of the path is not visible.
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 388,394 ****
                                        {
                                          if (path == null)
                                            return -1;
                                    !     
                                          if (dirty) update();
                                      
                                          NodeRecord r = nodes.get(path.getLastPathComponent());
                                    --- 388,394 ----
                                        {
                                          if (path == null)
                                            return -1;
                                    ! 
                                          if (dirty) update();
                                      
                                          NodeRecord r = nodes.get(path.getLastPathComponent());
                                    *************** public class FixedHeightLayoutCache
                                    *** 396,406 ****
                                            return - 1;
                                          else
                                            return r.row;
                                    !   } 
                                      
                                        /**
                                         * Get the path, closest to the given point.
                                    !    * 
                                         * @param x the point x coordinate
                                         * @param y the point y coordinate
                                         * @return the tree path, closest to the the given point
                                    --- 396,406 ----
                                            return - 1;
                                          else
                                            return r.row;
                                    !   }
                                      
                                        /**
                                         * Get the path, closest to the given point.
                                    !    *
                                         * @param x the point x coordinate
                                         * @param y the point y coordinate
                                         * @return the tree path, closest to the the given point
                                    *************** public class FixedHeightLayoutCache
                                    *** 414,420 ****
                                          NodeRecord best = null;
                                          NodeRecord r;
                                          Enumeration<NodeRecord> en = nodes.elements();
                                    !     
                                          int dist = Integer.MAX_VALUE;
                                      
                                          while (en.hasMoreElements() && dist > 0)
                                    --- 414,420 ----
                                          NodeRecord best = null;
                                          NodeRecord r;
                                          Enumeration<NodeRecord> en = nodes.elements();
                                    ! 
                                          int dist = Integer.MAX_VALUE;
                                      
                                          while (en.hasMoreElements() && dist > 0)
                                    *************** public class FixedHeightLayoutCache
                                    *** 440,447 ****
                                            return null;
                                          else
                                            return best.getPath();
                                    !   } 
                                    !   
                                        /**
                                         * Get the closest distance from this point till the given rectangle. Only
                                         * vertical distance is taken into consideration.
                                    --- 440,447 ----
                                            return null;
                                          else
                                            return best.getPath();
                                    !   }
                                    ! 
                                        /**
                                         * Get the closest distance from this point till the given rectangle. Only
                                         * vertical distance is taken into consideration.
                                    *************** public class FixedHeightLayoutCache
                                    *** 461,482 ****
                                         * is not expanded, 0 is returned. Otherwise, the number of children is
                                         * obtained from the model as the number of children for the last path
                                         * component.
                                    !    * 
                                         * @param path the tree path
                                         * @return int the number of the visible childs (for row).
                                         */
                                    !   public int getVisibleChildCount(TreePath path)  
                                        {
                                          if (isExpanded(path))
                                    !       return 0; 
                                          else
                                            return treeModel.getChildCount(path.getLastPathComponent());
                                    !   } 
                                      
                                        /**
                                         * Get the enumeration over all visible paths that start from the given
                                         * parent path.
                                    !    * 
                                         * @param parentPath the parent path
                                         * @return the enumeration over pathes
                                         */
                                    --- 461,482 ----
                                         * is not expanded, 0 is returned. Otherwise, the number of children is
                                         * obtained from the model as the number of children for the last path
                                         * component.
                                    !    *
                                         * @param path the tree path
                                         * @return int the number of the visible childs (for row).
                                         */
                                    !   public int getVisibleChildCount(TreePath path)
                                        {
                                          if (isExpanded(path))
                                    !       return 0;
                                          else
                                            return treeModel.getChildCount(path.getLastPathComponent());
                                    !   }
                                      
                                        /**
                                         * Get the enumeration over all visible paths that start from the given
                                         * parent path.
                                    !    *
                                         * @param parentPath the parent path
                                         * @return the enumeration over pathes
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 484,490 ****
                                        {
                                          if (dirty)
                                            update();
                                    !     Vector p = new Vector(parentPath.getPathCount());
                                          Object node;
                                          NodeRecord nr;
                                      
                                    --- 484,490 ----
                                        {
                                          if (dirty)
                                            update();
                                    !     Vector<TreePath> p = new Vector<TreePath>(parentPath.getPathCount());
                                          Object node;
                                          NodeRecord nr;
                                      
                                    *************** public class FixedHeightLayoutCache
                                    *** 493,508 ****
                                              node = parentPath.getPathComponent(i);
                                              nr = nodes.get(node);
                                              if (nr.row >= 0)
                                    !           p.add(node);
                                            }
                                          return p.elements();
                                        }
                                      
                                        /**
                                         * Return the expansion state of the given tree path. The expansion state
                                    !    * must be previously set with the 
                                         * {@link #setExpandedState(TreePath, boolean)}
                                    !    * 
                                         * @param path the path being checked
                                         * @return true if the last node of the path is expanded, false otherwise.
                                         */
                                    --- 493,508 ----
                                              node = parentPath.getPathComponent(i);
                                              nr = nodes.get(node);
                                              if (nr.row >= 0)
                                    !           p.add((TreePath) node);
                                            }
                                          return p.elements();
                                        }
                                      
                                        /**
                                         * Return the expansion state of the given tree path. The expansion state
                                    !    * must be previously set with the
                                         * {@link #setExpandedState(TreePath, boolean)}
                                    !    *
                                         * @param path the path being checked
                                         * @return true if the last node of the path is expanded, false otherwise.
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 513,556 ****
                                      
                                        /**
                                         * The listener method, called when the tree nodes are changed.
                                    !    * 
                                         * @param event the change event
                                         */
                                        public void treeNodesChanged(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   } 
                                      
                                        /**
                                         * The listener method, called when the tree nodes are inserted.
                                    !    * 
                                         * @param event the change event
                                         */
                                        public void treeNodesInserted(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   } 
                                      
                                        /**
                                         * The listener method, called when the tree nodes are removed.
                                    !    * 
                                         * @param event the change event
                                         */
                                        public void treeNodesRemoved(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   } 
                                      
                                        /**
                                    !    * Called when the tree structure has been changed. 
                                    !    * 
                                         * @param event the change event
                                         */
                                        public void treeStructureChanged(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   } 
                                    !   
                                        /**
                                         * Set the tree model that will provide the data.
                                         */
                                    --- 513,556 ----
                                      
                                        /**
                                         * The listener method, called when the tree nodes are changed.
                                    !    *
                                         * @param event the change event
                                         */
                                        public void treeNodesChanged(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   }
                                      
                                        /**
                                         * The listener method, called when the tree nodes are inserted.
                                    !    *
                                         * @param event the change event
                                         */
                                        public void treeNodesInserted(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   }
                                      
                                        /**
                                         * The listener method, called when the tree nodes are removed.
                                    !    *
                                         * @param event the change event
                                         */
                                        public void treeNodesRemoved(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   }
                                      
                                        /**
                                    !    * Called when the tree structure has been changed.
                                    !    *
                                         * @param event the change event
                                         */
                                        public void treeStructureChanged(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   }
                                    ! 
                                        /**
                                         * Set the tree model that will provide the data.
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 561,571 ****
                                          expanded.add(treeModel.getRoot());
                                          dirty = true;
                                        }
                                    !   
                                        /**
                                         * Inform the instance if the tree root node is visible. If this method
                                         * is not called, it is assumed that the tree root node is not visible.
                                    !    * 
                                         * @param visible true if the tree root node is visible, false
                                         * otherwise.
                                         */
                                    --- 561,571 ----
                                          expanded.add(treeModel.getRoot());
                                          dirty = true;
                                        }
                                    ! 
                                        /**
                                         * Inform the instance if the tree root node is visible. If this method
                                         * is not called, it is assumed that the tree root node is not visible.
                                    !    *
                                         * @param visible true if the tree root node is visible, false
                                         * otherwise.
                                         */
                                    *************** public class FixedHeightLayoutCache
                                    *** 600,606 ****
                                        {
                                          if (dirty)
                                            update();
                                    !     
                                          maximalWidth = 0;
                                          Enumeration<NodeRecord> en = nodes.elements();
                                          while (en.hasMoreElements())
                                    --- 600,606 ----
                                        {
                                          if (dirty)
                                            update();
                                    ! 
                                          maximalWidth = 0;
                                          Enumeration<NodeRecord> en = nodes.elements();
                                          while (en.hasMoreElements())
                                    *************** public class FixedHeightLayoutCache
                                    *** 612,628 ****
                                            }
                                          return maximalWidth;
                                        }
                                    !   
                                        /**
                                         * Returns true if this layout supposes that all rows have the fixed
                                         * height.
                                    !    * 
                                         * @return boolean true if all rows in the tree must have the fixed
                                         * height (true by default).
                                         */
                                        protected boolean isFixedRowHeight()
                                        {
                                    !     return true; 
                                        }
                                    !   
                                      }
                                    --- 612,628 ----
                                            }
                                          return maximalWidth;
                                        }
                                    ! 
                                        /**
                                         * Returns true if this layout supposes that all rows have the fixed
                                         * height.
                                    !    *
                                         * @return boolean true if all rows in the tree must have the fixed
                                         * height (true by default).
                                         */
                                        protected boolean isFixedRowHeight()
                                        {
                                    !     return true;
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/MutableTreeNode.java gcc-4.6.0/libjava/classpath/javax/swing/tree/MutableTreeNode.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/MutableTreeNode.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/MutableTreeNode.java	Tue Jan 11 19:46:05 2011
                                    *************** package javax.swing.tree;
                                    *** 39,45 ****
                                      
                                      /**
                                       * MutableTreeNode public interface
                                    !  
                                       * @author Andrew Selkirk
                                       */
                                      public interface MutableTreeNode extends TreeNode
                                    --- 39,45 ----
                                      
                                      /**
                                       * MutableTreeNode public interface
                                    ! 
                                       * @author Andrew Selkirk
                                       */
                                      public interface MutableTreeNode extends TreeNode
                                    *************** public interface MutableTreeNode extends
                                    *** 79,85 ****
                                        void remove(MutableTreeNode node);
                                      
                                        /**
                                    !    * Sets a user object, the data represented by the node. 
                                         *
                                         * @param object the data
                                         */
                                    --- 79,85 ----
                                        void remove(MutableTreeNode node);
                                      
                                        /**
                                    !    * Sets a user object, the data represented by the node.
                                         *
                                         * @param object the data
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/RowMapper.java gcc-4.6.0/libjava/classpath/javax/swing/tree/RowMapper.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/RowMapper.java	Fri Jun  9 16:07:07 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/RowMapper.java	Tue Jan 11 19:46:05 2011
                                    *************** package javax.swing.tree;
                                    *** 41,47 ****
                                       * RowMapper public interface
                                       * @author Andrew Selkirk
                                       */
                                    ! public interface RowMapper 
                                      {
                                      
                                        /**
                                    --- 41,47 ----
                                       * RowMapper public interface
                                       * @author Andrew Selkirk
                                       */
                                    ! public interface RowMapper
                                      {
                                      
                                        /**
                                    *************** public interface RowMapper 
                                    *** 51,54 ****
                                         */
                                        int[] getRowsForPaths(TreePath[] path);
                                      
                                    ! } 
                                    \ No newline at end of file
                                    --- 51,54 ----
                                         */
                                        int[] getRowsForPaths(TreePath[] path);
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/TreeCellEditor.java gcc-4.6.0/libjava/classpath/javax/swing/tree/TreeCellEditor.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/TreeCellEditor.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/TreeCellEditor.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.JTree;
                                    *** 46,71 ****
                                      /**
                                       * A <code>TreeCellEditor</code> is used by the {@link JTree} component to
                                       * edit individual tree elements (nodes).
                                    !  * 
                                       * @author Andrew Selkirk
                                       */
                                      public interface TreeCellEditor extends CellEditor
                                      {
                                        /**
                                    !    * Returns a component that has been configured to edit one element (or 
                                         * node) in a {@link JTree} component.  The arguments to this method are used
                                         * to pass in the value and state of the element to be edited.
                                    !    * 
                                         * @param tree  the tree.
                                         * @param value  the value to render.
                                         * @param isSelected  is the tree element selected?
                                         * @param expanded  is the tree element expanded?
                                         * @param leaf  is the tree element a leaf node?
                                         * @param row  the row index.
                                    !    * 
                                         * @return A component that is configured for editing the tree element.
                                         */
                                        Component getTreeCellEditorComponent(JTree tree, Object value,
                                    ! 				       boolean isSelected, boolean expanded,
                                    ! 				       boolean leaf, int row);
                                      }
                                    --- 46,71 ----
                                      /**
                                       * A <code>TreeCellEditor</code> is used by the {@link JTree} component to
                                       * edit individual tree elements (nodes).
                                    !  *
                                       * @author Andrew Selkirk
                                       */
                                      public interface TreeCellEditor extends CellEditor
                                      {
                                        /**
                                    !    * Returns a component that has been configured to edit one element (or
                                         * node) in a {@link JTree} component.  The arguments to this method are used
                                         * to pass in the value and state of the element to be edited.
                                    !    *
                                         * @param tree  the tree.
                                         * @param value  the value to render.
                                         * @param isSelected  is the tree element selected?
                                         * @param expanded  is the tree element expanded?
                                         * @param leaf  is the tree element a leaf node?
                                         * @param row  the row index.
                                    !    *
                                         * @return A component that is configured for editing the tree element.
                                         */
                                        Component getTreeCellEditorComponent(JTree tree, Object value,
                                    !                                        boolean isSelected, boolean expanded,
                                    !                                        boolean leaf, int row);
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/TreeCellRenderer.java gcc-4.6.0/libjava/classpath/javax/swing/tree/TreeCellRenderer.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/TreeCellRenderer.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/TreeCellRenderer.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.JTree;
                                    *** 45,60 ****
                                      /**
                                       * A <code>TreeCellRenderer</code> is used by the {@link JTree} component to
                                       * paint individual tree elements (nodes).
                                    !  * 
                                       * @author Andrew Selkirk
                                       */
                                      public interface TreeCellRenderer
                                      {
                                        /**
                                    !    * Returns a component that has been configured to display one element (or 
                                         * node) in a {@link JTree} component.  The arguments to this method are used
                                         * to pass in the value and state of the element to be rendered.
                                    !    * 
                                         * @param tree  the tree.
                                         * @param value  the value to render.
                                         * @param selected  is the tree element selected?
                                    --- 45,60 ----
                                      /**
                                       * A <code>TreeCellRenderer</code> is used by the {@link JTree} component to
                                       * paint individual tree elements (nodes).
                                    !  *
                                       * @author Andrew Selkirk
                                       */
                                      public interface TreeCellRenderer
                                      {
                                        /**
                                    !    * Returns a component that has been configured to display one element (or
                                         * node) in a {@link JTree} component.  The arguments to this method are used
                                         * to pass in the value and state of the element to be rendered.
                                    !    *
                                         * @param tree  the tree.
                                         * @param value  the value to render.
                                         * @param selected  is the tree element selected?
                                    *************** public interface TreeCellRenderer
                                    *** 62,68 ****
                                         * @param leaf  is the tree element a leaf node?
                                         * @param row  the row index.
                                         * @param hasFocus  does the tree element have the focus?
                                    !    * 
                                         * @return A component that is configured for rendering the tree element.
                                         */
                                        Component getTreeCellRendererComponent(JTree tree, Object value,
                                    --- 62,68 ----
                                         * @param leaf  is the tree element a leaf node?
                                         * @param row  the row index.
                                         * @param hasFocus  does the tree element have the focus?
                                    !    *
                                         * @return A component that is configured for rendering the tree element.
                                         */
                                        Component getTreeCellRendererComponent(JTree tree, Object value,
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/TreeNode.java gcc-4.6.0/libjava/classpath/javax/swing/tree/TreeNode.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/TreeNode.java	Fri Jun  9 16:07:07 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/TreeNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Enumeration;
                                    *** 42,57 ****
                                      
                                      /**
                                       * A tree node.
                                    !  * 
                                       * @author Andrew Selkirk
                                       */
                                    ! public interface TreeNode 
                                      {
                                      
                                        /**
                                         * Returns the parent node for this tree node, or <code>null</code> if this
                                         * node has no parent.
                                    !    * 
                                         * @return The parent node (possibly <code>null</code>).
                                         */
                                        TreeNode getParent();
                                    --- 42,57 ----
                                      
                                      /**
                                       * A tree node.
                                    !  *
                                       * @author Andrew Selkirk
                                       */
                                    ! public interface TreeNode
                                      {
                                      
                                        /**
                                         * Returns the parent node for this tree node, or <code>null</code> if this
                                         * node has no parent.
                                    !    *
                                         * @return The parent node (possibly <code>null</code>).
                                         */
                                        TreeNode getParent();
                                    *************** public interface TreeNode 
                                    *** 59,113 ****
                                        /**
                                         * Returns the index of the specified child node, or -1 if the node is not
                                         * in fact a child of this node.
                                    !    * 
                                         * @param node  the node (<code>null</code> not permitted).
                                    !    * 
                                         * @return The index of the specified child node, or -1.
                                    !    * 
                                         * @throws IllegalArgumentException if <code>node</code> is <code>null</code>.
                                         */
                                        int getIndex(TreeNode node);
                                      
                                        /**
                                         * Returns the child node at the given index.
                                    !    * 
                                    !    * @param index  the index (in the range <code>0</code> to 
                                         *     <code>getChildCount() - 1</code>).
                                    !    *     
                                         * @return The child node at the given index.
                                         */
                                        TreeNode getChildAt(int index);
                                      
                                        /**
                                         * Returns the number of children for this node.
                                    !    * 
                                         * @return The number of children for this node.
                                         */
                                        int getChildCount();
                                      
                                        /**
                                    !    * Returns <code>true</code> if this node allows children, and 
                                         * <code>false</code> otherwise.
                                    !    * 
                                         * @return A boolean.
                                         */
                                        boolean getAllowsChildren();
                                      
                                        /**
                                    !    * Returns <code>true</code> if this node is a leaf node, and 
                                         * <code>false</code> otherwise.
                                    !    * 
                                         * @return A boolean.
                                         */
                                        boolean isLeaf();
                                      
                                        /**
                                    !    * Returns an enumeration of the children of this node, or an empty 
                                         * enumeration if this node has no children.
                                    !    * 
                                         * @return An enumeration of the children of this node.
                                         */
                                        Enumeration children();
                                      
                                    ! } 
                                    ! 
                                    --- 59,113 ----
                                        /**
                                         * Returns the index of the specified child node, or -1 if the node is not
                                         * in fact a child of this node.
                                    !    *
                                         * @param node  the node (<code>null</code> not permitted).
                                    !    *
                                         * @return The index of the specified child node, or -1.
                                    !    *
                                         * @throws IllegalArgumentException if <code>node</code> is <code>null</code>.
                                         */
                                        int getIndex(TreeNode node);
                                      
                                        /**
                                         * Returns the child node at the given index.
                                    !    *
                                    !    * @param index  the index (in the range <code>0</code> to
                                         *     <code>getChildCount() - 1</code>).
                                    !    *
                                         * @return The child node at the given index.
                                         */
                                        TreeNode getChildAt(int index);
                                      
                                        /**
                                         * Returns the number of children for this node.
                                    !    *
                                         * @return The number of children for this node.
                                         */
                                        int getChildCount();
                                      
                                        /**
                                    !    * Returns <code>true</code> if this node allows children, and
                                         * <code>false</code> otherwise.
                                    !    *
                                         * @return A boolean.
                                         */
                                        boolean getAllowsChildren();
                                      
                                        /**
                                    !    * Returns <code>true</code> if this node is a leaf node, and
                                         * <code>false</code> otherwise.
                                    !    *
                                         * @return A boolean.
                                         */
                                        boolean isLeaf();
                                      
                                        /**
                                    !    * Returns an enumeration of the children of this node, or an empty
                                         * enumeration if this node has no children.
                                    !    *
                                         * @return An enumeration of the children of this node.
                                         */
                                    +   @SuppressWarnings("unchecked") // Required for API compatibility
                                        Enumeration children();
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/TreePath.java gcc-4.6.0/libjava/classpath/javax/swing/tree/TreePath.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/TreePath.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/TreePath.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Arrays;
                                    *** 45,51 ****
                                       * A <code>TreePath</code> represents a sequence of tree elements that form
                                       * a path starting from the root of a tree.  A tree element can be represented
                                       * by any {@link Object}.
                                    !  * 
                                       * @author Andrew Selkirk
                                       */
                                      public class TreePath implements Serializable
                                    --- 45,51 ----
                                       * A <code>TreePath</code> represents a sequence of tree elements that form
                                       * a path starting from the root of a tree.  A tree element can be represented
                                       * by any {@link Object}.
                                    !  *
                                       * @author Andrew Selkirk
                                       */
                                      public class TreePath implements Serializable
                                    *************** public class TreePath implements Seriali
                                    *** 57,63 ****
                                         * assumes that the TreePath is immutable, so it is marked final here.
                                         */
                                        private final Object[] path;
                                    !   
                                        /**
                                         * The parent path (to be reused).
                                         */
                                    --- 57,63 ----
                                         * assumes that the TreePath is immutable, so it is marked final here.
                                         */
                                        private final Object[] path;
                                    ! 
                                        /**
                                         * The parent path (to be reused).
                                         */
                                    *************** public class TreePath implements Seriali
                                    *** 68,76 ****
                                         * Creates a path from the list of objects representing tree elements.  The
                                         * incoming array is copied so that subsequent changes do not affect this
                                         * tree path.
                                    !    * 
                                         * @param path  the elements in the path (<code>null</code> not permitted).
                                    !    * 
                                         * @throws IllegalArgumentException if <code>path</code> is <code>null</code>.
                                         */
                                        public TreePath(Object[] path)
                                    --- 68,76 ----
                                         * Creates a path from the list of objects representing tree elements.  The
                                         * incoming array is copied so that subsequent changes do not affect this
                                         * tree path.
                                    !    *
                                         * @param path  the elements in the path (<code>null</code> not permitted).
                                    !    *
                                         * @throws IllegalArgumentException if <code>path</code> is <code>null</code>.
                                         */
                                        public TreePath(Object[] path)
                                    *************** public class TreePath implements Seriali
                                    *** 83,92 ****
                                      
                                        /**
                                         * Creates a new path from a single element.
                                    !    * 
                                         * @param element the element (<code>null</code> not permitted).
                                    !    * 
                                    !    * @throws IllegalArgumentException if <code>element</code> is 
                                         *         <code>null</code>.
                                         */
                                        public TreePath(Object element)
                                    --- 83,92 ----
                                      
                                        /**
                                         * Creates a new path from a single element.
                                    !    *
                                         * @param element the element (<code>null</code> not permitted).
                                    !    *
                                    !    * @throws IllegalArgumentException if <code>element</code> is
                                         *         <code>null</code>.
                                         */
                                        public TreePath(Object element)
                                    *************** public class TreePath implements Seriali
                                    *** 98,104 ****
                                        /**
                                         * Creates a new tree path by adding the specified <code>element</code> to
                                         * the <code>path</code>.
                                    !    * 
                                         * @param path  a tree path.
                                         * @param element  a path element.
                                         */
                                    --- 98,104 ----
                                        /**
                                         * Creates a new tree path by adding the specified <code>element</code> to
                                         * the <code>path</code>.
                                    !    *
                                         * @param path  a tree path.
                                         * @param element  a path element.
                                         */
                                    *************** public class TreePath implements Seriali
                                    *** 117,123 ****
                                        /**
                                         * Creates a new tree path using the first <code>length</code> elements
                                         * from the given array.
                                    !    * 
                                         * @param path  the path elements.
                                         * @param length  the path length.
                                         */
                                    --- 117,123 ----
                                        /**
                                         * Creates a new tree path using the first <code>length</code> elements
                                         * from the given array.
                                    !    *
                                         * @param path  the path elements.
                                         * @param length  the path length.
                                         */
                                    *************** public class TreePath implements Seriali
                                    *** 139,145 ****
                                      
                                        /**
                                         * Returns a hashcode for the path.
                                    !    * 
                                         * @return A hashcode.
                                         */
                                        public int hashCode()
                                    --- 139,145 ----
                                      
                                        /**
                                         * Returns a hashcode for the path.
                                    !    *
                                         * @return A hashcode.
                                         */
                                        public int hashCode()
                                    *************** public class TreePath implements Seriali
                                    *** 148,154 ****
                                        }
                                      
                                        /**
                                    !    * Tests this path for equality with an arbitrary object.  An object is 
                                         * considered equal to this path if and only if:
                                         * <ul>
                                         * <li>the object is not <code>null</code>;</li>
                                    --- 148,154 ----
                                        }
                                      
                                        /**
                                    !    * Tests this path for equality with an arbitrary object.  An object is
                                         * considered equal to this path if and only if:
                                         * <ul>
                                         * <li>the object is not <code>null</code>;</li>
                                    *************** public class TreePath implements Seriali
                                    *** 156,164 ****
                                         * <li>the object contains the same elements in the same order as this
                                         * {@link TreePath};</li>
                                         * </ul>
                                    !    * 
                                         * @param object  the object (<code>null</code> permitted).
                                    !    * 
                                         * @return <code>true</code> if <code>obj</code> is equal to this tree path,
                                         *         and <code>false</code> otherwise.
                                         */
                                    --- 156,164 ----
                                         * <li>the object contains the same elements in the same order as this
                                         * {@link TreePath};</li>
                                         * </ul>
                                    !    *
                                         * @param object  the object (<code>null</code> permitted).
                                    !    *
                                         * @return <code>true</code> if <code>obj</code> is equal to this tree path,
                                         *         and <code>false</code> otherwise.
                                         */
                                    *************** public class TreePath implements Seriali
                                    *** 188,194 ****
                                      
                                        /**
                                         * Returns a string representation of this path.
                                    !    * 
                                         * @return A string representation of this path.
                                         */
                                        public String toString()
                                    --- 188,194 ----
                                      
                                        /**
                                         * Returns a string representation of this path.
                                    !    *
                                         * @return A string representation of this path.
                                         */
                                        public String toString()
                                    *************** public class TreePath implements Seriali
                                    *** 201,207 ****
                                      
                                        /**
                                         * Returns an array containing the path elements.
                                    !    * 
                                         * @return An array containing the path elements.
                                         */
                                        public Object[] getPath()
                                    --- 201,207 ----
                                      
                                        /**
                                         * Returns an array containing the path elements.
                                    !    *
                                         * @return An array containing the path elements.
                                         */
                                        public Object[] getPath()
                                    *************** public class TreePath implements Seriali
                                    *** 211,217 ****
                                      
                                        /**
                                         * Returns the last object in the path.
                                    !    * 
                                         * @return The last object in the path.
                                         */
                                        public Object getLastPathComponent()
                                    --- 211,217 ----
                                      
                                        /**
                                         * Returns the last object in the path.
                                    !    *
                                         * @return The last object in the path.
                                         */
                                        public Object getLastPathComponent()
                                    *************** public class TreePath implements Seriali
                                    *** 221,227 ****
                                      
                                        /**
                                         * Returns the number of elements in the path.
                                    !    * 
                                         * @return The number of elements in the path.
                                         */
                                        public int getPathCount()
                                    --- 221,227 ----
                                      
                                        /**
                                         * Returns the number of elements in the path.
                                    !    *
                                         * @return The number of elements in the path.
                                         */
                                        public int getPathCount()
                                    *************** public class TreePath implements Seriali
                                    *** 231,259 ****
                                      
                                        /**
                                         * Returns the element at the specified position in the path.
                                    !    * 
                                    !    * @param position the element position (<code>0 < N - 1</code>, where 
                                         *                 <code>N</code> is the number of elements in the path).
                                    !    * 
                                         * @return The element at the specified position.
                                    !    * 
                                         * @throws IllegalArgumentException if <code>position</code> is outside the
                                         *         valid range.
                                         */
                                        public Object getPathComponent(int position)
                                        {
                                    !     if (position < 0 || position >= getPathCount()) 
                                            throw new IllegalArgumentException("Invalid position: " + position);
                                          return path[position];
                                        }
                                      
                                        /**
                                         * Returns <code>true</code> if <code>path</code> is a descendant of this
                                    !    * path, and <code>false</code> otherwise.  If <code>path</code> is 
                                         * <code>null</code>, this method returns <code>false</code>.
                                    !    * 
                                         * @param path  the path to check (<code>null</code> permitted).
                                    !    * 
                                         * @return <code>true</code> if <code>path</code> is a descendant of this
                                         *         path, and <code>false</code> otherwise
                                         */
                                    --- 231,259 ----
                                      
                                        /**
                                         * Returns the element at the specified position in the path.
                                    !    *
                                    !    * @param position the element position (<code>0 < N - 1</code>, where
                                         *                 <code>N</code> is the number of elements in the path).
                                    !    *
                                         * @return The element at the specified position.
                                    !    *
                                         * @throws IllegalArgumentException if <code>position</code> is outside the
                                         *         valid range.
                                         */
                                        public Object getPathComponent(int position)
                                        {
                                    !     if (position < 0 || position >= getPathCount())
                                            throw new IllegalArgumentException("Invalid position: " + position);
                                          return path[position];
                                        }
                                      
                                        /**
                                         * Returns <code>true</code> if <code>path</code> is a descendant of this
                                    !    * path, and <code>false</code> otherwise.  If <code>path</code> is
                                         * <code>null</code>, this method returns <code>false</code>.
                                    !    *
                                         * @param path  the path to check (<code>null</code> permitted).
                                    !    *
                                         * @return <code>true</code> if <code>path</code> is a descendant of this
                                         *         path, and <code>false</code> otherwise
                                         */
                                    *************** public class TreePath implements Seriali
                                    *** 270,285 ****
                                              otherPathLength--;
                                              path = path.getParentPath();
                                            }
                                    !     
                                          return equals(path);
                                        }
                                      
                                        /**
                                         * Creates a new path that is equivalent to this path plus the specified
                                         * element.
                                    !    * 
                                         * @param element  the element.
                                    !    * 
                                         * @return A tree path.
                                         */
                                        public TreePath pathByAddingChild(Object element)
                                    --- 270,285 ----
                                              otherPathLength--;
                                              path = path.getParentPath();
                                            }
                                    ! 
                                          return equals(path);
                                        }
                                      
                                        /**
                                         * Creates a new path that is equivalent to this path plus the specified
                                         * element.
                                    !    *
                                         * @param element  the element.
                                    !    *
                                         * @return A tree path.
                                         */
                                        public TreePath pathByAddingChild(Object element)
                                    *************** public class TreePath implements Seriali
                                    *** 291,297 ****
                                         * Returns the parent path, which is a path containing all the same elements
                                         * as this path, except for the last one.  If this path contains only one
                                         * element, the method returns <code>null</code>.
                                    !    * 
                                         * @return The parent path, or <code>null</code> if this path has only one
                                         *         element.
                                         */
                                    --- 291,297 ----
                                         * Returns the parent path, which is a path containing all the same elements
                                         * as this path, except for the last one.  If this path contains only one
                                         * element, the method returns <code>null</code>.
                                    !    *
                                         * @return The parent path, or <code>null</code> if this path has only one
                                         *         element.
                                         */
                                    *************** public class TreePath implements Seriali
                                    *** 301,312 ****
                                          // is what the JDK does.
                                          if (path.length <= 1)
                                            return null;
                                    !     
                                          // Reuse the parent path, if possible. The parent path is requested
                                          // during the tree repainting, so reusing generates a lot less garbage.
                                          if (parentPath == null)
                                            parentPath = new TreePath(this.getPath(), path.length - 1);
                                    !     
                                          return parentPath;
                                        }
                                      }
                                    --- 301,312 ----
                                          // is what the JDK does.
                                          if (path.length <= 1)
                                            return null;
                                    ! 
                                          // Reuse the parent path, if possible. The parent path is requested
                                          // during the tree repainting, so reusing generates a lot less garbage.
                                          if (parentPath == null)
                                            parentPath = new TreePath(this.getPath(), path.length - 1);
                                    ! 
                                          return parentPath;
                                        }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/TreeSelectionModel.java gcc-4.6.0/libjava/classpath/javax/swing/tree/TreeSelectionModel.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/TreeSelectionModel.java	Fri Jun  9 16:07:07 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/TreeSelectionModel.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.event.TreeSelectionLi
                                    *** 46,52 ****
                                       * TreeSelectionModel public interface
                                       * @author Andrew Selkirk
                                       */
                                    ! public interface TreeSelectionModel 
                                      {
                                      
                                        int SINGLE_TREE_SELECTION = 1;
                                    --- 46,52 ----
                                       * TreeSelectionModel public interface
                                       * @author Andrew Selkirk
                                       */
                                    ! public interface TreeSelectionModel
                                      {
                                      
                                        int SINGLE_TREE_SELECTION = 1;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java gcc-4.6.0/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.swing.event.TreeModelEvent;
                                    *** 53,63 ****
                                      /**
                                       * The fixed height tree layout. This class requires the NodeDimensions to be
                                       * set and ignores the row height property.
                                    !  * 
                                       * @specnote the methods, of this class, returning TreePath, actually returns
                                       * the derived class GnuPath that provides additional information for optimized
                                       * painting. See the GnuPath code for details.
                                    !  * 
                                       * @author Audrius Meskauskas
                                       */
                                      public class VariableHeightLayoutCache
                                    --- 53,63 ----
                                      /**
                                       * The fixed height tree layout. This class requires the NodeDimensions to be
                                       * set and ignores the row height property.
                                    !  *
                                       * @specnote the methods, of this class, returning TreePath, actually returns
                                       * the derived class GnuPath that provides additional information for optimized
                                       * painting. See the GnuPath code for details.
                                    !  *
                                       * @author Audrius Meskauskas
                                       */
                                      public class VariableHeightLayoutCache
                                    *************** public class VariableHeightLayoutCache
                                    *** 80,106 ****
                                            isExpanded = expanded.contains(aNode);
                                            bounds = new Rectangle(0, -1, 0, 0);
                                          }
                                    !     
                                          /**
                                           * The row, where the tree node is displayed.
                                           */
                                    !     final int row;    
                                    !     
                                          /**
                                           * The nesting depth
                                           */
                                          final int depth;
                                    !     
                                          /**
                                           * The parent of the given node, null for the root node.
                                           */
                                          final Object parent;
                                    !     
                                          /**
                                           * This node.
                                           */
                                          final Object node;
                                    !     
                                          /**
                                           * True for the expanded nodes. The value is calculated in constructor.
                                           * Using this field saves one hashtable access operation.
                                    --- 80,106 ----
                                            isExpanded = expanded.contains(aNode);
                                            bounds = new Rectangle(0, -1, 0, 0);
                                          }
                                    ! 
                                          /**
                                           * The row, where the tree node is displayed.
                                           */
                                    !     final int row;
                                    ! 
                                          /**
                                           * The nesting depth
                                           */
                                          final int depth;
                                    ! 
                                          /**
                                           * The parent of the given node, null for the root node.
                                           */
                                          final Object parent;
                                    ! 
                                          /**
                                           * This node.
                                           */
                                          final Object node;
                                    ! 
                                          /**
                                           * True for the expanded nodes. The value is calculated in constructor.
                                           * Using this field saves one hashtable access operation.
                                    *************** public class VariableHeightLayoutCache
                                    *** 111,123 ****
                                           * The cached bounds of the tree row.
                                           */
                                          Rectangle bounds;
                                    !     
                                          /**
                                           * The path from the tree top to the given node (computed under first
                                           * demand)
                                           */
                                          private TreePath path;
                                    !     
                                          /**
                                           * Get the path for this node. The derived class is returned, making check
                                           * for the last child of some parent easier.
                                    --- 111,123 ----
                                           * The cached bounds of the tree row.
                                           */
                                          Rectangle bounds;
                                    ! 
                                          /**
                                           * The path from the tree top to the given node (computed under first
                                           * demand)
                                           */
                                          private TreePath path;
                                    ! 
                                          /**
                                           * Get the path for this node. The derived class is returned, making check
                                           * for the last child of some parent easier.
                                    *************** public class VariableHeightLayoutCache
                                    *** 158,198 ****
                                              }
                                            return path;
                                          }
                                    !     
                                          /**
                                           * Get the rectangle bounds (compute, if required).
                                           */
                                          Rectangle getBounds()
                                          {
                                    !       return bounds;      
                                          }
                                        }
                                    !   
                                        /**
                                         * The set of all expanded tree nodes.
                                         */
                                        Set<Object> expanded = new HashSet<Object>();
                                    !   
                                        /**
                                         * Maps nodes to the row numbers.
                                         */
                                        Hashtable<Object,NodeRecord> nodes = new Hashtable<Object,NodeRecord>();
                                    !   
                                        /**
                                         * Maps row numbers to nodes.
                                         */
                                        ArrayList<Object> row2node = new ArrayList<Object>();
                                    !   
                                        /**
                                         * If true, the row map must be recomputed before using.
                                         */
                                        boolean dirty;
                                    !   
                                        /**
                                         * The cumulative height of all rows.
                                         */
                                        int totalHeight;
                                    !   
                                        /**
                                         * The maximal width.
                                         */
                                    --- 158,198 ----
                                              }
                                            return path;
                                          }
                                    ! 
                                          /**
                                           * Get the rectangle bounds (compute, if required).
                                           */
                                          Rectangle getBounds()
                                          {
                                    !       return bounds;
                                          }
                                        }
                                    ! 
                                        /**
                                         * The set of all expanded tree nodes.
                                         */
                                        Set<Object> expanded = new HashSet<Object>();
                                    ! 
                                        /**
                                         * Maps nodes to the row numbers.
                                         */
                                        Hashtable<Object,NodeRecord> nodes = new Hashtable<Object,NodeRecord>();
                                    ! 
                                        /**
                                         * Maps row numbers to nodes.
                                         */
                                        ArrayList<Object> row2node = new ArrayList<Object>();
                                    ! 
                                        /**
                                         * If true, the row map must be recomputed before using.
                                         */
                                        boolean dirty;
                                    ! 
                                        /**
                                         * The cumulative height of all rows.
                                         */
                                        int totalHeight;
                                    ! 
                                        /**
                                         * The maximal width.
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 206,226 ****
                                        public VariableHeightLayoutCache()
                                        {
                                          // Nothing to do here.
                                    !   } 
                                      
                                        /**
                                         * Get the total number of rows in the tree. Every displayed node occupies the
                                         * single row. The root node row is included if the root node is set as
                                         * visible (false by default).
                                    !    * 
                                         * @return int the number of the displayed rows.
                                         */
                                        public int getRowCount()
                                        {
                                          if (dirty) update();
                                          return row2node.size();
                                    !   } 
                                    !   
                                        /**
                                         * Refresh the row map.
                                         */
                                    --- 206,226 ----
                                        public VariableHeightLayoutCache()
                                        {
                                          // Nothing to do here.
                                    !   }
                                      
                                        /**
                                         * Get the total number of rows in the tree. Every displayed node occupies the
                                         * single row. The root node row is included if the root node is set as
                                         * visible (false by default).
                                    !    *
                                         * @return int the number of the displayed rows.
                                         */
                                        public int getRowCount()
                                        {
                                          if (dirty) update();
                                          return row2node.size();
                                    !   }
                                    ! 
                                        /**
                                         * Refresh the row map.
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 228,234 ****
                                        {
                                          nodes.clear();
                                          row2node.clear();
                                    !     
                                          totalHeight = maximalWidth = 0;
                                      
                                          if (treeModel == null)
                                    --- 228,234 ----
                                        {
                                          nodes.clear();
                                          row2node.clear();
                                    ! 
                                          totalHeight = maximalWidth = 0;
                                      
                                          if (treeModel == null)
                                    *************** public class VariableHeightLayoutCache
                                    *** 238,244 ****
                                          countRows(root, null, 0, 0);
                                          dirty = false;
                                        }
                                    !   
                                        /**
                                         * Recursively counts all rows in the tree.
                                         */
                                    --- 238,244 ----
                                          countRows(root, null, 0, 0);
                                          dirty = false;
                                        }
                                    ! 
                                        /**
                                         * Recursively counts all rows in the tree.
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 287,293 ****
                                      
                                        /**
                                         * Discard the bound information for the given path.
                                    !    * 
                                         * @param path the path, for that the bound information must be recomputed.
                                         */
                                        public void invalidatePathBounds(TreePath path)
                                    --- 287,293 ----
                                      
                                        /**
                                         * Discard the bound information for the given path.
                                    !    *
                                         * @param path the path, for that the bound information must be recomputed.
                                         */
                                        public void invalidatePathBounds(TreePath path)
                                    *************** public class VariableHeightLayoutCache
                                    *** 295,301 ****
                                          NodeRecord r = nodes.get(path.getLastPathComponent());
                                          if (r != null)
                                            r.bounds = null;
                                    !   } 
                                      
                                        /**
                                         * Mark all cached information as invalid.
                                    --- 295,301 ----
                                          NodeRecord r = nodes.get(path.getLastPathComponent());
                                          if (r != null)
                                            r.bounds = null;
                                    !   }
                                      
                                        /**
                                         * Mark all cached information as invalid.
                                    *************** public class VariableHeightLayoutCache
                                    *** 303,313 ****
                                        public void invalidateSizes()
                                        {
                                          dirty = true;
                                    !   } 
                                      
                                        /**
                                         * Set the expanded state of the given path. The expansion states must be
                                    !    * always updated when expanding and colapsing the tree nodes. Otherwise 
                                         * other methods will not work correctly after the nodes are collapsed or
                                         * expanded.
                                         *
                                    --- 303,313 ----
                                        public void invalidateSizes()
                                        {
                                          dirty = true;
                                    !   }
                                      
                                        /**
                                         * Set the expanded state of the given path. The expansion states must be
                                    !    * always updated when expanding and colapsing the tree nodes. Otherwise
                                         * other methods will not work correctly after the nodes are collapsed or
                                         * expanded.
                                         *
                                    *************** public class VariableHeightLayoutCache
                                    *** 327,346 ****
                                      
                                          dirty = true;
                                        }
                                    !   
                                        /**
                                         * Get the expanded state for the given tree path.
                                    !    * 
                                         * @return true if the given path is expanded, false otherwise.
                                         */
                                        public boolean isExpanded(TreePath path)
                                        {
                                          return expanded.contains(path.getLastPathComponent());
                                    !   } 
                                      
                                        /**
                                         * Get bounds for the given tree path.
                                    !    * 
                                         * @param path the tree path
                                         * @param rect the rectangle that will be reused to return the result.
                                         * @return Rectangle the bounds of the last line, defined by the given path.
                                    --- 327,346 ----
                                      
                                          dirty = true;
                                        }
                                    ! 
                                        /**
                                         * Get the expanded state for the given tree path.
                                    !    *
                                         * @return true if the given path is expanded, false otherwise.
                                         */
                                        public boolean isExpanded(TreePath path)
                                        {
                                          return expanded.contains(path.getLastPathComponent());
                                    !   }
                                      
                                        /**
                                         * Get bounds for the given tree path.
                                    !    *
                                         * @param path the tree path
                                         * @param rect the rectangle that will be reused to return the result.
                                         * @return Rectangle the bounds of the last line, defined by the given path.
                                    *************** public class VariableHeightLayoutCache
                                    *** 366,376 ****
                                                result.setBounds(r.bounds);
                                            }
                                          return result;
                                    !   } 
                                      
                                        /**
                                         * Get the path, the last element of that is displayed in the given row.
                                    !    * 
                                         * @param row the row
                                         * @return TreePath the path
                                         */
                                    --- 366,376 ----
                                                result.setBounds(r.bounds);
                                            }
                                          return result;
                                    !   }
                                      
                                        /**
                                         * Get the path, the last element of that is displayed in the given row.
                                    !    *
                                         * @param row the row
                                         * @return TreePath the path
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 381,399 ****
                                      
                                          TreePath path = null;
                                          // Search row in the nodes map. TODO: This is inefficient, optimize this.
                                    !     Enumeration nodesEnum = nodes.elements();
                                          while (nodesEnum.hasMoreElements() && path == null)
                                            {
                                    !         NodeRecord record = (NodeRecord) nodesEnum.nextElement();
                                              if (record.row == row)
                                                path = record.getPath();
                                            }
                                          return path;
                                    !   } 
                                      
                                        /**
                                         * Get the row, displaying the last node of the given path.
                                    !    * 
                                         * @param path the path
                                         * @return int the row number or -1 if the end of the path is not visible.
                                         */
                                    --- 381,399 ----
                                      
                                          TreePath path = null;
                                          // Search row in the nodes map. TODO: This is inefficient, optimize this.
                                    !     Enumeration<NodeRecord> nodesEnum = nodes.elements();
                                          while (nodesEnum.hasMoreElements() && path == null)
                                            {
                                    !         NodeRecord record = nodesEnum.nextElement();
                                              if (record.row == row)
                                                path = record.getPath();
                                            }
                                          return path;
                                    !   }
                                      
                                        /**
                                         * Get the row, displaying the last node of the given path.
                                    !    *
                                         * @param path the path
                                         * @return int the row number or -1 if the end of the path is not visible.
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 410,420 ****
                                            return - 1;
                                          else
                                            return r.row;
                                    !   } 
                                      
                                        /**
                                         * Get the path, closest to the given point.
                                    !    * 
                                         * @param x the point x coordinate
                                         * @param y the point y coordinate
                                         * @return the tree path, closest to the the given point
                                    --- 410,420 ----
                                            return - 1;
                                          else
                                            return r.row;
                                    !   }
                                      
                                        /**
                                         * Get the path, closest to the given point.
                                    !    *
                                         * @param x the point x coordinate
                                         * @param y the point y coordinate
                                         * @return the tree path, closest to the the given point
                                    *************** public class VariableHeightLayoutCache
                                    *** 428,434 ****
                                          NodeRecord best = null;
                                          NodeRecord r;
                                          Enumeration<NodeRecord> en = nodes.elements();
                                    !     
                                          int dist = Integer.MAX_VALUE;
                                      
                                          while (en.hasMoreElements() && dist > 0)
                                    --- 428,434 ----
                                          NodeRecord best = null;
                                          NodeRecord r;
                                          Enumeration<NodeRecord> en = nodes.elements();
                                    ! 
                                          int dist = Integer.MAX_VALUE;
                                      
                                          while (en.hasMoreElements() && dist > 0)
                                    *************** public class VariableHeightLayoutCache
                                    *** 454,461 ****
                                            return null;
                                          else
                                            return best.getPath();
                                    !   } 
                                    !   
                                        /**
                                         * Get the closest distance from this point till the given rectangle. Only
                                         * vertical distance is taken into consideration.
                                    --- 454,461 ----
                                            return null;
                                          else
                                            return best.getPath();
                                    !   }
                                    ! 
                                        /**
                                         * Get the closest distance from this point till the given rectangle. Only
                                         * vertical distance is taken into consideration.
                                    *************** public class VariableHeightLayoutCache
                                    *** 475,496 ****
                                         * is not expanded, 0 is returned. Otherwise, the number of children is
                                         * obtained from the model as the number of children for the last path
                                         * component.
                                    !    * 
                                         * @param path the tree path
                                         * @return int the number of the visible childs (for row).
                                         */
                                    !   public int getVisibleChildCount(TreePath path)  
                                        {
                                          if (! isExpanded(path) || treeModel == null)
                                    !       return 0; 
                                          else
                                            return treeModel.getChildCount(path.getLastPathComponent());
                                    !   } 
                                      
                                        /**
                                         * Get the enumeration over all visible paths that start from the given
                                         * parent path.
                                    !    * 
                                         * @param parentPath the parent path
                                         * @return the enumeration over pathes
                                         */
                                    --- 475,496 ----
                                         * is not expanded, 0 is returned. Otherwise, the number of children is
                                         * obtained from the model as the number of children for the last path
                                         * component.
                                    !    *
                                         * @param path the tree path
                                         * @return int the number of the visible childs (for row).
                                         */
                                    !   public int getVisibleChildCount(TreePath path)
                                        {
                                          if (! isExpanded(path) || treeModel == null)
                                    !       return 0;
                                          else
                                            return treeModel.getChildCount(path.getLastPathComponent());
                                    !   }
                                      
                                        /**
                                         * Get the enumeration over all visible paths that start from the given
                                         * parent path.
                                    !    *
                                         * @param parentPath the parent path
                                         * @return the enumeration over pathes
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 498,504 ****
                                        {
                                          if (dirty)
                                            update();
                                    !     Vector p = new Vector(parentPath.getPathCount());
                                          Object node;
                                          NodeRecord nr;
                                      
                                    --- 498,504 ----
                                        {
                                          if (dirty)
                                            update();
                                    !     Vector<TreePath> p = new Vector<TreePath>(parentPath.getPathCount());
                                          Object node;
                                          NodeRecord nr;
                                      
                                    *************** public class VariableHeightLayoutCache
                                    *** 507,522 ****
                                              node = parentPath.getPathComponent(i);
                                              nr = nodes.get(node);
                                              if (nr != null && nr.row >= 0)
                                    !           p.add(node);
                                            }
                                          return p.elements();
                                        }
                                      
                                        /**
                                         * Return the expansion state of the given tree path. The expansion state
                                    !    * must be previously set with the 
                                         * {@link #setExpandedState(TreePath, boolean)}
                                    !    * 
                                         * @param path the path being checked
                                         * @return true if the last node of the path is expanded, false otherwise.
                                         */
                                    --- 507,522 ----
                                              node = parentPath.getPathComponent(i);
                                              nr = nodes.get(node);
                                              if (nr != null && nr.row >= 0)
                                    !           p.add((TreePath) node);
                                            }
                                          return p.elements();
                                        }
                                      
                                        /**
                                         * Return the expansion state of the given tree path. The expansion state
                                    !    * must be previously set with the
                                         * {@link #setExpandedState(TreePath, boolean)}
                                    !    *
                                         * @param path the path being checked
                                         * @return true if the last node of the path is expanded, false otherwise.
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 527,570 ****
                                      
                                        /**
                                         * The listener method, called when the tree nodes are changed.
                                    !    * 
                                         * @param event the change event
                                         */
                                        public void treeNodesChanged(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   } 
                                      
                                        /**
                                         * The listener method, called when the tree nodes are inserted.
                                    !    * 
                                         * @param event the change event
                                         */
                                        public void treeNodesInserted(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   } 
                                      
                                        /**
                                         * The listener method, called when the tree nodes are removed.
                                    !    * 
                                         * @param event the change event
                                         */
                                        public void treeNodesRemoved(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   } 
                                      
                                        /**
                                    !    * Called when the tree structure has been changed. 
                                    !    * 
                                         * @param event the change event
                                         */
                                        public void treeStructureChanged(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   } 
                                    !   
                                        /**
                                         * Set the tree model that will provide the data.
                                         */
                                    --- 527,570 ----
                                      
                                        /**
                                         * The listener method, called when the tree nodes are changed.
                                    !    *
                                         * @param event the change event
                                         */
                                        public void treeNodesChanged(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   }
                                      
                                        /**
                                         * The listener method, called when the tree nodes are inserted.
                                    !    *
                                         * @param event the change event
                                         */
                                        public void treeNodesInserted(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   }
                                      
                                        /**
                                         * The listener method, called when the tree nodes are removed.
                                    !    *
                                         * @param event the change event
                                         */
                                        public void treeNodesRemoved(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   }
                                      
                                        /**
                                    !    * Called when the tree structure has been changed.
                                    !    *
                                         * @param event the change event
                                         */
                                        public void treeStructureChanged(TreeModelEvent event)
                                        {
                                          dirty = true;
                                    !   }
                                    ! 
                                        /**
                                         * Set the tree model that will provide the data.
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 578,588 ****
                                              expanded.add(treeModel.getRoot());
                                            }
                                        }
                                    !   
                                        /**
                                         * Inform the instance if the tree root node is visible. If this method
                                         * is not called, it is assumed that the tree root node is not visible.
                                    !    * 
                                         * @param visible true if the tree root node is visible, false
                                         * otherwise.
                                         */
                                    --- 578,588 ----
                                              expanded.add(treeModel.getRoot());
                                            }
                                        }
                                    ! 
                                        /**
                                         * Inform the instance if the tree root node is visible. If this method
                                         * is not called, it is assumed that the tree root node is not visible.
                                    !    *
                                         * @param visible true if the tree root node is visible, false
                                         * otherwise.
                                         */
                                    *************** public class VariableHeightLayoutCache
                                    *** 616,622 ****
                                        {
                                          if (dirty)
                                            update();
                                    !     
                                          maximalWidth = 0;
                                          Enumeration<NodeRecord> en = nodes.elements();
                                          while (en.hasMoreElements())
                                    --- 616,622 ----
                                        {
                                          if (dirty)
                                            update();
                                    ! 
                                          maximalWidth = 0;
                                          Enumeration<NodeRecord> en = nodes.elements();
                                          while (en.hasMoreElements())
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/undo/AbstractUndoableEdit.java gcc-4.6.0/libjava/classpath/javax/swing/undo/AbstractUndoableEdit.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/undo/AbstractUndoableEdit.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/undo/AbstractUndoableEdit.java	Tue Jan 11 19:46:05 2011
                                    *************** public class AbstractUndoableEdit
                                    *** 130,137 ****
                                            throw new CannotUndoException();
                                          hasBeenDone = false;
                                        }
                                    !   
                                    !   
                                        /**
                                         * Determines whether it would be possible to undo this editing
                                         * action.
                                    --- 130,137 ----
                                            throw new CannotUndoException();
                                          hasBeenDone = false;
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Determines whether it would be possible to undo this editing
                                         * action.
                                    *************** public class AbstractUndoableEdit
                                    *** 146,153 ****
                                        {
                                          return alive && hasBeenDone;
                                        }
                                    !   
                                    !   
                                        /**
                                         * Redoes this editing action.
                                         *
                                    --- 146,153 ----
                                        {
                                          return alive && hasBeenDone;
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Redoes this editing action.
                                         *
                                    *************** public class AbstractUndoableEdit
                                    *** 165,172 ****
                                            throw new CannotRedoException();
                                          hasBeenDone = true;
                                        }
                                    !   
                                    !   
                                        /**
                                         * Determines whether it would be possible to redo this editing
                                         * action.
                                    --- 165,172 ----
                                            throw new CannotRedoException();
                                          hasBeenDone = true;
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Determines whether it would be possible to redo this editing
                                         * action.
                                    *************** public class AbstractUndoableEdit
                                    *** 208,215 ****
                                        {
                                          return false;
                                        }
                                    !   
                                    !   
                                        /**
                                         * Incorporates another editing action into this one, thus forming a
                                         * combined action that replaces the argument action.
                                    --- 208,215 ----
                                        {
                                          return false;
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Incorporates another editing action into this one, thus forming a
                                         * combined action that replaces the argument action.
                                    *************** public class AbstractUndoableEdit
                                    *** 223,230 ****
                                        {
                                          return false;
                                        }
                                    !   
                                    !   
                                        /**
                                         * Determines whether this editing action is significant enough for
                                         * being seperately undoable by the user. A typical significant
                                    --- 223,230 ----
                                        {
                                          return false;
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Determines whether this editing action is significant enough for
                                         * being seperately undoable by the user. A typical significant
                                    *************** public class AbstractUndoableEdit
                                    *** 242,249 ****
                                        {
                                          return true;
                                        }
                                    !   
                                    !   
                                        /**
                                         * Returns a human-readable, localized name that describes this
                                         * editing action and can be displayed to the user.
                                    --- 242,249 ----
                                        {
                                          return true;
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Returns a human-readable, localized name that describes this
                                         * editing action and can be displayed to the user.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/undo/CompoundEdit.java gcc-4.6.0/libjava/classpath/javax/swing/undo/CompoundEdit.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/undo/CompoundEdit.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/undo/CompoundEdit.java	Tue Jan 11 19:46:05 2011
                                    *************** public class CompoundEdit
                                    *** 82,88 ****
                                         * Indicates whether the creation of this CompoundEdit is still in
                                         * progress. Initially, the value of this flag is
                                         * <code>true</code>. The {@link #end()} method changes the flag to
                                    !    * <code>false</code>. 
                                         */
                                        private boolean inProgress;
                                      
                                    --- 82,88 ----
                                         * Indicates whether the creation of this CompoundEdit is still in
                                         * progress. Initially, the value of this flag is
                                         * <code>true</code>. The {@link #end()} method changes the flag to
                                    !    * <code>false</code>.
                                         */
                                        private boolean inProgress;
                                      
                                    *************** public class CompoundEdit
                                    *** 95,101 ****
                                          edits = new Vector<UndoableEdit>();
                                          inProgress = true;
                                        }
                                    !   
                                      
                                        /**
                                         * Undoes all edits that are part of of this
                                    --- 95,101 ----
                                          edits = new Vector<UndoableEdit>();
                                          inProgress = true;
                                        }
                                    ! 
                                      
                                        /**
                                         * Undoes all edits that are part of of this
                                    *************** public class CompoundEdit
                                    *** 146,152 ****
                                            edits.elementAt(i).redo();
                                        }
                                      
                                    !   
                                        /**
                                         * Returns the the <code>UndoableEdit</code> that was last added to
                                         * this compound.
                                    --- 146,152 ----
                                            edits.elementAt(i).redo();
                                        }
                                      
                                    ! 
                                        /**
                                         * Returns the the <code>UndoableEdit</code> that was last added to
                                         * this compound.
                                    *************** public class CompoundEdit
                                    *** 191,197 ****
                                         * UndoableEdit#replaceEdit(UndoableEdit) replace} the last added
                                         * edit.  If this fails as well, <code>edit</code> gets added as a
                                         * new compound to {@link #edits}.
                                    !    * 
                                         * @param edit the editing action being added.
                                         *
                                         * @return <code>true</code> if <code>edit</code> could somehow be
                                    --- 191,197 ----
                                         * UndoableEdit#replaceEdit(UndoableEdit) replace} the last added
                                         * edit.  If this fails as well, <code>edit</code> gets added as a
                                         * new compound to {@link #edits}.
                                    !    *
                                         * @param edit the editing action being added.
                                         *
                                         * @return <code>true</code> if <code>edit</code> could somehow be
                                    *************** public class CompoundEdit
                                    *** 321,327 ****
                                      
                                          return false;
                                        }
                                    !   
                                      
                                        /**
                                         * Returns a human-readable, localized name that describes this
                                    --- 321,327 ----
                                      
                                          return false;
                                        }
                                    ! 
                                      
                                        /**
                                         * Returns a human-readable, localized name that describes this
                                    *************** public class CompoundEdit
                                    *** 386,393 ****
                                          else
                                            return last.getRedoPresentationName();
                                        }
                                    !   
                                    !   
                                        /**
                                         * Calculates a string that may be useful for debugging.
                                         */
                                    --- 386,393 ----
                                          else
                                            return last.getRedoPresentationName();
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Calculates a string that may be useful for debugging.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/undo/StateEdit.java gcc-4.6.0/libjava/classpath/javax/swing/undo/StateEdit.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/undo/StateEdit.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/undo/StateEdit.java	Tue Jan 11 19:46:05 2011
                                    *************** public class StateEdit
                                    *** 248,265 ****
                                         */
                                        protected void removeRedundantState()
                                        {
                                    !     Iterator i = preState.keySet().iterator();
                                          while (i.hasNext())
                                            {
                                    ! 	Object key = i.next();
                                    ! 	if (postState.containsKey(key))
                                    ! 	  {
                                    ! 	    if (preState.get(key).equals(postState.get(key)))
                                    ! 	      {
                                    ! 		i.remove();
                                    ! 		postState.remove(key);
                                    ! 	      }
                                    ! 	  }
                                            }
                                        }
                                      }
                                    --- 248,265 ----
                                         */
                                        protected void removeRedundantState()
                                        {
                                    !     Iterator<Object> i = preState.keySet().iterator();
                                          while (i.hasNext())
                                            {
                                    !         Object key = i.next();
                                    !         if (postState.containsKey(key))
                                    !           {
                                    !             if (preState.get(key).equals(postState.get(key)))
                                    !               {
                                    !                 i.remove();
                                    !                 postState.remove(key);
                                    !               }
                                    !           }
                                            }
                                        }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/undo/UndoManager.java gcc-4.6.0/libjava/classpath/javax/swing/undo/UndoManager.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/undo/UndoManager.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/undo/UndoManager.java	Tue Jan 11 19:46:05 2011
                                    *************** public class UndoManager
                                    *** 356,362 ****
                                            }
                                        }
                                      
                                    !   
                                        /**
                                         * Undoes or redoes the last action. If the last action has already
                                         * been undone, it will be re-done, and vice versa.
                                    --- 356,362 ----
                                            }
                                        }
                                      
                                    ! 
                                        /**
                                         * Undoes or redoes the last action. If the last action has already
                                         * been undone, it will be re-done, and vice versa.
                                    *************** public class UndoManager
                                    *** 598,605 ****
                                          else
                                            return edit.getRedoPresentationName();
                                        }
                                    !   
                                    !   
                                        /**
                                         * Registers the edit action of an {@link UndoableEditEvent}
                                         * with this UndoManager.
                                    --- 598,605 ----
                                          else
                                            return edit.getRedoPresentationName();
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Registers the edit action of an {@link UndoableEditEvent}
                                         * with this UndoManager.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/undo/UndoableEdit.java gcc-4.6.0/libjava/classpath/javax/swing/undo/UndoableEdit.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/undo/UndoableEdit.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/undo/UndoableEdit.java	Tue Jan 11 19:46:05 2011
                                    *************** package javax.swing.undo;
                                    *** 39,48 ****
                                      
                                      /**
                                       * An editing operation that supports undo/redoability.
                                    !  * 
                                       * @author Andrew Selkirk
                                       */
                                    ! public interface UndoableEdit 
                                      {
                                      
                                        /**
                                    --- 39,48 ----
                                      
                                      /**
                                       * An editing operation that supports undo/redoability.
                                    !  *
                                       * @author Andrew Selkirk
                                       */
                                    ! public interface UndoableEdit
                                      {
                                      
                                        /**
                                    *************** public interface UndoableEdit 
                                    *** 50,57 ****
                                         * combined action.
                                         *
                                         * @param edit the editing action to be incorporated.
                                    !    * 
                                    !    * @return <code>true</code> if the edit was combined successfully, and 
                                         *         <code>false</code> if it could not be combined.
                                         */
                                        boolean addEdit(UndoableEdit edit);
                                    --- 50,57 ----
                                         * combined action.
                                         *
                                         * @param edit the editing action to be incorporated.
                                    !    *
                                    !    * @return <code>true</code> if the edit was combined successfully, and
                                         *         <code>false</code> if it could not be combined.
                                         */
                                        boolean addEdit(UndoableEdit edit);
                                    *************** public interface UndoableEdit 
                                    *** 98,111 ****
                                      
                                        /**
                                         * Returns the redo presentation name.
                                    !    * 
                                         * @return The redo presentation name.
                                         */
                                        String getRedoPresentationName();
                                      
                                        /**
                                         * Returns the undo presentation name.
                                    !    * 
                                         * @return The undo presentation name.
                                         */
                                        String getUndoPresentationName();
                                    --- 98,111 ----
                                      
                                        /**
                                         * Returns the redo presentation name.
                                    !    *
                                         * @return The redo presentation name.
                                         */
                                        String getRedoPresentationName();
                                      
                                        /**
                                         * Returns the undo presentation name.
                                    !    *
                                         * @return The undo presentation name.
                                         */
                                        String getUndoPresentationName();
                                    *************** public interface UndoableEdit 
                                    *** 138,145 ****
                                         * combined action that replaces the argument action.
                                         *
                                         * @param edit the editing action to be replaced.
                                    !    * 
                                    !    * @return <code>true</code> if the edit is successfully replaced, and 
                                         *         <code>false</code> otherwise.
                                         */
                                        boolean replaceEdit(UndoableEdit edit);
                                    --- 138,145 ----
                                         * combined action that replaces the argument action.
                                         *
                                         * @param edit the editing action to be replaced.
                                    !    *
                                    !    * @return <code>true</code> if the edit is successfully replaced, and
                                         *         <code>false</code> otherwise.
                                         */
                                        boolean replaceEdit(UndoableEdit edit);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/swing/undo/UndoableEditSupport.java gcc-4.6.0/libjava/classpath/javax/swing/undo/UndoableEditSupport.java
                                    *** gcc-4.5.2/libjava/classpath/javax/swing/undo/UndoableEditSupport.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/javax/swing/undo/UndoableEditSupport.java	Tue Oct 12 15:55:12 2010
                                    *************** public class UndoableEditSupport
                                    *** 167,173 ****
                                        protected void _postEdit(UndoableEdit edit)
                                        {
                                          UndoableEditEvent event;
                                    !     Iterator iter;
                                      
                                          // Do nothing if we have no listeners.
                                          if (listeners.isEmpty())
                                    --- 167,173 ----
                                        protected void _postEdit(UndoableEdit edit)
                                        {
                                          UndoableEditEvent event;
                                    !     Iterator<UndoableEditListener> iter;
                                      
                                          // Do nothing if we have no listeners.
                                          if (listeners.isEmpty())
                                    *************** public class UndoableEditSupport
                                    *** 181,189 ****
                                          // Iterator, a java.util.ConcurrentModificationException; in the
                                          // case of a direct loop over the Vector elements, some
                                          // index-out-of-bounds exception).
                                    !     iter = ((Vector) listeners.clone()).iterator();
                                          while (iter.hasNext())
                                    !       ((UndoableEditListener) iter.next()).undoableEditHappened(event);
                                        }
                                      
                                      
                                    --- 181,189 ----
                                          // Iterator, a java.util.ConcurrentModificationException; in the
                                          // case of a direct loop over the Vector elements, some
                                          // index-out-of-bounds exception).
                                    !     iter = new Vector<UndoableEditListener>(listeners).iterator();
                                          while (iter.hasNext())
                                    !       iter.next().undoableEditHappened(event);
                                        }
                                      
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/tools/FileObject.java gcc-4.6.0/libjava/classpath/javax/tools/FileObject.java
                                    *** gcc-4.5.2/libjava/classpath/javax/tools/FileObject.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/tools/FileObject.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface FileObject
                                    *** 116,122 ****
                                         * that cannot be decoded will be replaced by the default replacement
                                         * character. A diagnostic may be reported, unless
                                         * <code>ignoreEncodingErrors</code> is <code>true</code>.
                                    !    * 
                                         * @param ignoreEncodingErrors <code>true</code> when encoding errors should be ignored
                                         *                             <code>false</code> otherwise
                                         * @return the character content, or <code>null</code> if not available
                                    --- 116,122 ----
                                         * that cannot be decoded will be replaced by the default replacement
                                         * character. A diagnostic may be reported, unless
                                         * <code>ignoreEncodingErrors</code> is <code>true</code>.
                                    !    *
                                         * @param ignoreEncodingErrors <code>true</code> when encoding errors should be ignored
                                         *                             <code>false</code> otherwise
                                         * @return the character content, or <code>null</code> if not available
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/HeuristicCommitException.java gcc-4.6.0/libjava/classpath/javax/transaction/HeuristicCommitException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/HeuristicCommitException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/HeuristicCommitException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* HeuristicCommitException.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* HeuristicCommitException.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/HeuristicMixedException.java gcc-4.6.0/libjava/classpath/javax/transaction/HeuristicMixedException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/HeuristicMixedException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/HeuristicMixedException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* HeuristicMixedException.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* HeuristicMixedException.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/HeuristicRollbackException.java gcc-4.6.0/libjava/classpath/javax/transaction/HeuristicRollbackException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/HeuristicRollbackException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/HeuristicRollbackException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* HeuristicRollbackException.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* HeuristicRollbackException.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/InvalidTransactionException.java gcc-4.6.0/libjava/classpath/javax/transaction/InvalidTransactionException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/InvalidTransactionException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/InvalidTransactionException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** obligated to do so.  If you do not wish 
                                    *** 36,42 ****
                                      exception statement from your version. */
                                      
                                      package javax.transaction;
                                    !  
                                      import java.rmi.RemoteException;
                                      
                                      /**
                                    --- 36,42 ----
                                      exception statement from your version. */
                                      
                                      package javax.transaction;
                                    ! 
                                      import java.rmi.RemoteException;
                                      
                                      /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/NotSupportedException.java gcc-4.6.0/libjava/classpath/javax/transaction/NotSupportedException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/NotSupportedException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/NotSupportedException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* NotSupportedException.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* NotSupportedException.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/RollbackException.java gcc-4.6.0/libjava/classpath/javax/transaction/RollbackException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/RollbackException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/RollbackException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* RollbackException.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* RollbackException.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/Status.java gcc-4.6.0/libjava/classpath/javax/transaction/Status.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/Status.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/Status.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Status.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Status.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/Synchronization.java gcc-4.6.0/libjava/classpath/javax/transaction/Synchronization.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/Synchronization.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/Synchronization.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Synchronization.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Synchronization.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/SystemException.java gcc-4.6.0/libjava/classpath/javax/transaction/SystemException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/SystemException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/SystemException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SystemException.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SystemException.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/Transaction.java gcc-4.6.0/libjava/classpath/javax/transaction/Transaction.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/Transaction.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/Transaction.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Transaction.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Transaction.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 39,45 ****
                                      package javax.transaction;
                                      
                                      import javax.transaction.xa.XAResource;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 39,45 ----
                                      package javax.transaction;
                                      
                                      import javax.transaction.xa.XAResource;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/TransactionManager.java gcc-4.6.0/libjava/classpath/javax/transaction/TransactionManager.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/TransactionManager.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/TransactionManager.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* TransactionManager.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* TransactionManager.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/TransactionRequiredException.java gcc-4.6.0/libjava/classpath/javax/transaction/TransactionRequiredException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/TransactionRequiredException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/TransactionRequiredException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** obligated to do so.  If you do not wish 
                                    *** 36,42 ****
                                      exception statement from your version. */
                                      
                                      package javax.transaction;
                                    !  
                                      import java.rmi.RemoteException;
                                      
                                      /**
                                    --- 36,42 ----
                                      exception statement from your version. */
                                      
                                      package javax.transaction;
                                    ! 
                                      import java.rmi.RemoteException;
                                      
                                      /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/TransactionRolledbackException.java gcc-4.6.0/libjava/classpath/javax/transaction/TransactionRolledbackException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/TransactionRolledbackException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/TransactionRolledbackException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** obligated to do so.  If you do not wish 
                                    *** 36,42 ****
                                      exception statement from your version. */
                                      
                                      package javax.transaction;
                                    !  
                                      import java.rmi.RemoteException;
                                      
                                      /**
                                    --- 36,42 ----
                                      exception statement from your version. */
                                      
                                      package javax.transaction;
                                    ! 
                                      import java.rmi.RemoteException;
                                      
                                      /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/UserTransaction.java gcc-4.6.0/libjava/classpath/javax/transaction/UserTransaction.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/UserTransaction.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/UserTransaction.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* UserTransaction.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* UserTransaction.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** exception statement from your version. *
                                    *** 37,43 ****
                                      
                                      
                                      package javax.transaction;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 37,43 ----
                                      
                                      
                                      package javax.transaction;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/xa/XAException.java gcc-4.6.0/libjava/classpath/javax/transaction/xa/XAException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/xa/XAException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/xa/XAException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** obligated to do so.  If you do not wish 
                                    *** 36,42 ****
                                      exception statement from your version. */
                                      
                                      package javax.transaction.xa;
                                    !  
                                      /**
                                       * @author Tom Tromey (tromey@redhat.com)
                                       * @date April 18, 2001
                                    --- 36,42 ----
                                      exception statement from your version. */
                                      
                                      package javax.transaction.xa;
                                    ! 
                                      /**
                                       * @author Tom Tromey (tromey@redhat.com)
                                       * @date April 18, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/xa/XAResource.java gcc-4.6.0/libjava/classpath/javax/transaction/xa/XAResource.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/xa/XAResource.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/xa/XAResource.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XAResource.java -- 
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XAResource.java --
                                         Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** obligated to do so.  If you do not wish 
                                    *** 36,42 ****
                                      exception statement from your version. */
                                      
                                      package javax.transaction.xa;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 36,42 ----
                                      exception statement from your version. */
                                      
                                      package javax.transaction.xa;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/transaction/xa/Xid.java gcc-4.6.0/libjava/classpath/javax/transaction/xa/Xid.java
                                    *** gcc-4.5.2/libjava/classpath/javax/transaction/xa/Xid.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/transaction/xa/Xid.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** obligated to do so.  If you do not wish 
                                    *** 36,42 ****
                                      exception statement from your version. */
                                      
                                      package javax.transaction.xa;
                                    !  
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    --- 36,42 ----
                                      exception statement from your version. */
                                      
                                      package javax.transaction.xa;
                                    ! 
                                      /**
                                       * @author Warren Levy (warrenl@redhat.com)
                                       * @date May 25, 2001
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/XMLConstants.java gcc-4.6.0/libjava/classpath/javax/xml/XMLConstants.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/XMLConstants.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/XMLConstants.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLConstants.java -- 
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLConstants.java --
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package javax.xml;
                                    *** 45,51 ****
                                       */
                                      public final class XMLConstants
                                      {
                                    !   
                                        private XMLConstants()
                                        {
                                          // to prevent instantiation
                                    --- 45,51 ----
                                       */
                                      public final class XMLConstants
                                      {
                                    ! 
                                        private XMLConstants()
                                        {
                                          // to prevent instantiation
                                    *************** public final class XMLConstants
                                    *** 68,74 ****
                                         * @see http://www.w3.org/TR/REC-xml-names/#ns-qualnames
                                         */
                                        public static final String XML_NS_URI =
                                    ! 	 	"http://www.w3.org/XML/1998/namespace";
                                      
                                        /**
                                         * The XML Namespace prefix.
                                    --- 68,74 ----
                                         * @see http://www.w3.org/TR/REC-xml-names/#ns-qualnames
                                         */
                                        public static final String XML_NS_URI =
                                    !                 "http://www.w3.org/XML/1998/namespace";
                                      
                                        /**
                                         * The XML Namespace prefix.
                                    *************** public final class XMLConstants
                                    *** 81,87 ****
                                         * @see http://www.w3.org/TR/REC-xml-names/#ns-qualnames
                                         */
                                        public static final String XMLNS_ATTRIBUTE_NS_URI =
                                    ! 	 	"http://www.w3.org/2000/xmlns/";
                                      
                                        /**
                                         * The XML Namespace declaration attribute.
                                    --- 81,87 ----
                                         * @see http://www.w3.org/TR/REC-xml-names/#ns-qualnames
                                         */
                                        public static final String XMLNS_ATTRIBUTE_NS_URI =
                                    !                 "http://www.w3.org/2000/xmlns/";
                                      
                                        /**
                                         * The XML Namespace declaration attribute.
                                    *************** public final class XMLConstants
                                    *** 94,114 ****
                                         * @see http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions
                                         */
                                        public static final String W3C_XML_SCHEMA_NS_URI =
                                    ! 	 	"http://www.w3.org/2001/XMLSchema";
                                      
                                        /**
                                         * The XML Schema Instance (XSI) namespace URI.
                                         * @see http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions
                                         */
                                        public static final String W3C_XML_SCHEMA_INSTANCE_NS_URI =
                                    ! 	 	"http://www.w3.org/2001/XMLSchema-instance";
                                      
                                        /**
                                         * The XPath 2.0 datatypes namespace URI.
                                         * @see http://www.w3.org/TR/xpath-datamodel
                                         */
                                        public static final String W3C_XPATH_DATATYPE_NS_URI =
                                    ! 	 	"http://www.w3.org/2003/11/xpath-datatypes";
                                      
                                        /**
                                         * The XML DTD namespace URI.
                                    --- 94,114 ----
                                         * @see http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions
                                         */
                                        public static final String W3C_XML_SCHEMA_NS_URI =
                                    !                 "http://www.w3.org/2001/XMLSchema";
                                      
                                        /**
                                         * The XML Schema Instance (XSI) namespace URI.
                                         * @see http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions
                                         */
                                        public static final String W3C_XML_SCHEMA_INSTANCE_NS_URI =
                                    !                 "http://www.w3.org/2001/XMLSchema-instance";
                                      
                                        /**
                                         * The XPath 2.0 datatypes namespace URI.
                                         * @see http://www.w3.org/TR/xpath-datamodel
                                         */
                                        public static final String W3C_XPATH_DATATYPE_NS_URI =
                                    !                 "http://www.w3.org/2003/11/xpath-datatypes";
                                      
                                        /**
                                         * The XML DTD namespace URI.
                                    *************** public final class XMLConstants
                                    *** 120,131 ****
                                         * @see http://relaxng.org/spec-20011203.html
                                         */
                                        public static final String RELAXNG_NS_URI =
                                    ! 	 	"http://relaxng.org/ns/structure/1.0";
                                      
                                        /**
                                         * DOM feature for secure processing.
                                         */
                                        public static final String FEATURE_SECURE_PROCESSING =
                                    ! 	 	"http://javax.xml.XMLConstants/feature/secure-processing";
                                    !   
                                      }
                                    --- 120,131 ----
                                         * @see http://relaxng.org/spec-20011203.html
                                         */
                                        public static final String RELAXNG_NS_URI =
                                    !                 "http://relaxng.org/ns/structure/1.0";
                                      
                                        /**
                                         * DOM feature for secure processing.
                                         */
                                        public static final String FEATURE_SECURE_PROCESSING =
                                    !                 "http://javax.xml.XMLConstants/feature/secure-processing";
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/datatype/DatatypeConfigurationException.java gcc-4.6.0/libjava/classpath/javax/xml/datatype/DatatypeConfigurationException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/datatype/DatatypeConfigurationException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/datatype/DatatypeConfigurationException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DatatypeConfigurationException.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DatatypeConfigurationException.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class DatatypeConfigurationExcept
                                    *** 61,70 ****
                                        {
                                          super(message, cause);
                                        }
                                    !   
                                        public DatatypeConfigurationException(Throwable cause)
                                        {
                                          super(cause);
                                        }
                                    !   
                                      }
                                    --- 61,70 ----
                                        {
                                          super(message, cause);
                                        }
                                    ! 
                                        public DatatypeConfigurationException(Throwable cause)
                                        {
                                          super(cause);
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/datatype/DatatypeConstants.java gcc-4.6.0/libjava/classpath/javax/xml/datatype/DatatypeConstants.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/datatype/DatatypeConstants.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/datatype/DatatypeConstants.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DatatypeConstants.java -- 
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DatatypeConstants.java --
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public final class DatatypeConstants
                                    *** 52,58 ****
                                        {
                                          // to prevent instantiation
                                        }
                                    !   
                                        /**
                                         * Typesafe enumerated class representing the six fields of the
                                         * <a href='Duration.html'>Duration</a> class.
                                    --- 52,58 ----
                                        {
                                          // to prevent instantiation
                                        }
                                    ! 
                                        /**
                                         * Typesafe enumerated class representing the six fields of the
                                         * <a href='Duration.html'>Duration</a> class.
                                    *************** public final class DatatypeConstants
                                    *** 73,166 ****
                                          {
                                            return id;
                                          }
                                    !     
                                          public String toString()
                                          {
                                            return name;
                                          }
                                    !     
                                        }
                                      
                                        /**
                                         * Value for January.
                                         */
                                        public static final int JANUARY = 1;
                                    !   
                                        /**
                                         * Value for February.
                                         */
                                        public static final int FEBRUARY = 2;
                                    !   
                                        /**
                                         * Value for March.
                                         */
                                        public static final int MARCH = 3;
                                    !   
                                        /**
                                         * Value for April.
                                         */
                                        public static final int APRIL = 4;
                                    !   
                                        /**
                                         * Value for May.
                                         */
                                        public static final int MAY = 5;
                                    !   
                                        /**
                                         * Value for June.
                                         */
                                        public static final int JUNE = 6;
                                    !   
                                        /**
                                         * Value for July.
                                         */
                                        public static final int JULY = 7;
                                    !   
                                        /**
                                         * Value for August.
                                         */
                                        public static final int AUGUST = 8;
                                    !   
                                        /**
                                         * Value for September.
                                         */
                                        public static final int SEPTEMBER = 9;
                                    !   
                                        /**
                                         * Value for October.
                                         */
                                        public static final int OCTOBER = 10;
                                    !   
                                        /**
                                         * Value for November.
                                         */
                                        public static final int NOVEMBER = 11;
                                    !   
                                        /**
                                         * Value for December.
                                         */
                                        public static final int DECEMBER = 12;
                                    !   
                                        /**
                                         * Comparison result.
                                         */
                                        public static final int LESSER = -1;
                                    !   
                                        /**
                                         * Comparison result.
                                         */
                                        public static final int EQUAL = 0;
                                    !   
                                        /**
                                         * Comparison result.
                                         */
                                        public static final int GREATER = 1;
                                    !   
                                        /**
                                         * Comparison result.
                                         */
                                        public static final int INDETERMINATE = 2;
                                    !   
                                        /**
                                         * Comparison result.
                                         */
                                    --- 73,166 ----
                                          {
                                            return id;
                                          }
                                    ! 
                                          public String toString()
                                          {
                                            return name;
                                          }
                                    ! 
                                        }
                                      
                                        /**
                                         * Value for January.
                                         */
                                        public static final int JANUARY = 1;
                                    ! 
                                        /**
                                         * Value for February.
                                         */
                                        public static final int FEBRUARY = 2;
                                    ! 
                                        /**
                                         * Value for March.
                                         */
                                        public static final int MARCH = 3;
                                    ! 
                                        /**
                                         * Value for April.
                                         */
                                        public static final int APRIL = 4;
                                    ! 
                                        /**
                                         * Value for May.
                                         */
                                        public static final int MAY = 5;
                                    ! 
                                        /**
                                         * Value for June.
                                         */
                                        public static final int JUNE = 6;
                                    ! 
                                        /**
                                         * Value for July.
                                         */
                                        public static final int JULY = 7;
                                    ! 
                                        /**
                                         * Value for August.
                                         */
                                        public static final int AUGUST = 8;
                                    ! 
                                        /**
                                         * Value for September.
                                         */
                                        public static final int SEPTEMBER = 9;
                                    ! 
                                        /**
                                         * Value for October.
                                         */
                                        public static final int OCTOBER = 10;
                                    ! 
                                        /**
                                         * Value for November.
                                         */
                                        public static final int NOVEMBER = 11;
                                    ! 
                                        /**
                                         * Value for December.
                                         */
                                        public static final int DECEMBER = 12;
                                    ! 
                                        /**
                                         * Comparison result.
                                         */
                                        public static final int LESSER = -1;
                                    ! 
                                        /**
                                         * Comparison result.
                                         */
                                        public static final int EQUAL = 0;
                                    ! 
                                        /**
                                         * Comparison result.
                                         */
                                        public static final int GREATER = 1;
                                    ! 
                                        /**
                                         * Comparison result.
                                         */
                                        public static final int INDETERMINATE = 2;
                                    ! 
                                        /**
                                         * Comparison result.
                                         */
                                    *************** public final class DatatypeConstants
                                    *** 170,196 ****
                                         * Constant that represents the years field.
                                         */
                                        public static final Field YEARS = new Field(1, "YEARS");
                                    !   
                                        /**
                                         * Constant that represents the months field.
                                         */
                                        public static final Field MONTHS = new Field(2, "MONTHS");
                                    !   
                                        /**
                                         * Constant that represents the days field.
                                         */
                                        public static final Field DAYS = new Field(3, "DAYS");
                                    !   
                                        /**
                                         * Constant that represents the hours field.
                                         */
                                        public static final Field HOURS = new Field(4, "HOURS");
                                    !   
                                        /**
                                         * Constant that represents the minutes field.
                                         */
                                        public static final Field MINUTES = new Field(5, "MINUTES");
                                    !   
                                        /**
                                         * Constant that represents the seconds field.
                                         */
                                    --- 170,196 ----
                                         * Constant that represents the years field.
                                         */
                                        public static final Field YEARS = new Field(1, "YEARS");
                                    ! 
                                        /**
                                         * Constant that represents the months field.
                                         */
                                        public static final Field MONTHS = new Field(2, "MONTHS");
                                    ! 
                                        /**
                                         * Constant that represents the days field.
                                         */
                                        public static final Field DAYS = new Field(3, "DAYS");
                                    ! 
                                        /**
                                         * Constant that represents the hours field.
                                         */
                                        public static final Field HOURS = new Field(4, "HOURS");
                                    ! 
                                        /**
                                         * Constant that represents the minutes field.
                                         */
                                        public static final Field MINUTES = new Field(5, "MINUTES");
                                    ! 
                                        /**
                                         * Constant that represents the seconds field.
                                         */
                                    *************** public final class DatatypeConstants
                                    *** 200,251 ****
                                         * The qualified-name for the <code>dateTime</code> data type.
                                         */
                                        public static final QName DATETIME = new QName ("http://www.w3.org/2001/XMLSchema#dateTime", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>time</code> data type.
                                         */
                                        public static final QName TIME = new QName ("http://www.w3.org/2001/XMLSchema#time", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>date</code> data type.
                                         */
                                        public static final QName DATE = new QName ("http://www.w3.org/2001/XMLSchema#date", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>gYearMonth</code> data type.
                                         */
                                        public static final QName GYEARMONTH = new QName ("http://www.w3.org/2001/XMLSchema#gYearMonth", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>gMonthDay</code> data type.
                                         */
                                        public static final QName GMONTHDAY = new QName ("http://www.w3.org/2001/XMLSchema#gMonthDay", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>gYear</code> data type.
                                         */
                                        public static final QName GYEAR = new QName ("http://www.w3.org/2001/XMLSchema#gYear", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>gMonth</code> data type.
                                         */
                                        public static final QName GMONTH = new QName ("http://www.w3.org/2001/XMLSchema#gMonth", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>gDay</code> data type.
                                         */
                                        public static final QName GDAY = new QName ("http://www.w3.org/2001/XMLSchema#gDay", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>duration</code> data type.
                                         */
                                        public static final QName DURATION = new QName ("http://www.w3.org/2001/XMLSchema#duration", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>dayTimeDuration</code> data type.
                                         */
                                        public static final QName DURATION_DAYTIME = new QName ("http://www.w3.org/2001/XMLSchema#dayTimeDuration", "");
                                    !   
                                        /**
                                         * The qualified-name for the <code>yearMonthDuration</code> data type.
                                         */
                                    --- 200,251 ----
                                         * The qualified-name for the <code>dateTime</code> data type.
                                         */
                                        public static final QName DATETIME = new QName ("http://www.w3.org/2001/XMLSchema#dateTime", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>time</code> data type.
                                         */
                                        public static final QName TIME = new QName ("http://www.w3.org/2001/XMLSchema#time", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>date</code> data type.
                                         */
                                        public static final QName DATE = new QName ("http://www.w3.org/2001/XMLSchema#date", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>gYearMonth</code> data type.
                                         */
                                        public static final QName GYEARMONTH = new QName ("http://www.w3.org/2001/XMLSchema#gYearMonth", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>gMonthDay</code> data type.
                                         */
                                        public static final QName GMONTHDAY = new QName ("http://www.w3.org/2001/XMLSchema#gMonthDay", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>gYear</code> data type.
                                         */
                                        public static final QName GYEAR = new QName ("http://www.w3.org/2001/XMLSchema#gYear", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>gMonth</code> data type.
                                         */
                                        public static final QName GMONTH = new QName ("http://www.w3.org/2001/XMLSchema#gMonth", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>gDay</code> data type.
                                         */
                                        public static final QName GDAY = new QName ("http://www.w3.org/2001/XMLSchema#gDay", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>duration</code> data type.
                                         */
                                        public static final QName DURATION = new QName ("http://www.w3.org/2001/XMLSchema#duration", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>dayTimeDuration</code> data type.
                                         */
                                        public static final QName DURATION_DAYTIME = new QName ("http://www.w3.org/2001/XMLSchema#dayTimeDuration", "");
                                    ! 
                                        /**
                                         * The qualified-name for the <code>yearMonthDuration</code> data type.
                                         */
                                    *************** public final class DatatypeConstants
                                    *** 255,264 ****
                                         * XML Schema maximum timezone offset, in minutes.
                                         */
                                        public static final int MAX_TIMEZONE_OFFSET = -840;
                                    !   
                                        /**
                                         * XML Schema minimum timezone offset, in minutes.
                                         */
                                        public static final int MIN_TIMEZONE_OFFSET = 840;
                                    !   
                                      }
                                    --- 255,264 ----
                                         * XML Schema maximum timezone offset, in minutes.
                                         */
                                        public static final int MAX_TIMEZONE_OFFSET = -840;
                                    ! 
                                        /**
                                         * XML Schema minimum timezone offset, in minutes.
                                         */
                                        public static final int MIN_TIMEZONE_OFFSET = 840;
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/datatype/DatatypeFactory.java gcc-4.6.0/libjava/classpath/javax/xml/datatype/DatatypeFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/datatype/DatatypeFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/datatype/DatatypeFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DatatypeFactory.java -- 
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DatatypeFactory.java --
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class DatatypeFactory
                                    *** 303,309 ****
                                         * XML Schema 1.0 Part 2, section 3.2.[7-14].1.
                                         */
                                        public abstract XMLGregorianCalendar newXMLGregorianCalendar(String lexicalRepresentation);
                                    !   
                                        /**
                                         * Returns a new XMLGregorianCalendar based on the specified Gregorian
                                         * calendar.
                                    --- 303,309 ----
                                         * XML Schema 1.0 Part 2, section 3.2.[7-14].1.
                                         */
                                        public abstract XMLGregorianCalendar newXMLGregorianCalendar(String lexicalRepresentation);
                                    ! 
                                        /**
                                         * Returns a new XMLGregorianCalendar based on the specified Gregorian
                                         * calendar.
                                    *************** public abstract class DatatypeFactory
                                    *** 417,421 ****
                                                                         new BigDecimal(((double) milliseconds) / 1000.0),
                                                                         timezone);
                                        }
                                    !     
                                      }
                                    --- 417,421 ----
                                                                         new BigDecimal(((double) milliseconds) / 1000.0),
                                                                         timezone);
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/datatype/Duration.java gcc-4.6.0/libjava/classpath/javax/xml/datatype/Duration.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/datatype/Duration.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/datatype/Duration.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Duration.java -- 
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Duration.java --
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class Duration
                                    *** 91,97 ****
                                          Number val = getField(DatatypeConstants.YEARS);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    !   
                                        /**
                                         * Returns the months in this duration as an int, or 0 if not present.
                                         */
                                    --- 91,97 ----
                                          Number val = getField(DatatypeConstants.YEARS);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    ! 
                                        /**
                                         * Returns the months in this duration as an int, or 0 if not present.
                                         */
                                    *************** public abstract class Duration
                                    *** 100,106 ****
                                          Number val = getField(DatatypeConstants.MONTHS);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    !   
                                        /**
                                         * Returns the days in this duration as an int, or 0 if not present.
                                         */
                                    --- 100,106 ----
                                          Number val = getField(DatatypeConstants.MONTHS);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    ! 
                                        /**
                                         * Returns the days in this duration as an int, or 0 if not present.
                                         */
                                    *************** public abstract class Duration
                                    *** 109,115 ****
                                          Number val = getField(DatatypeConstants.DAYS);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    !   
                                        /**
                                         * Returns the hours in this duration as an int, or 0 if not present.
                                         */
                                    --- 109,115 ----
                                          Number val = getField(DatatypeConstants.DAYS);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    ! 
                                        /**
                                         * Returns the hours in this duration as an int, or 0 if not present.
                                         */
                                    *************** public abstract class Duration
                                    *** 118,124 ****
                                          Number val = getField(DatatypeConstants.HOURS);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    !   
                                        /**
                                         * Returns the minutes in this duration as an int, or 0 if not present.
                                         */
                                    --- 118,124 ----
                                          Number val = getField(DatatypeConstants.HOURS);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    ! 
                                        /**
                                         * Returns the minutes in this duration as an int, or 0 if not present.
                                         */
                                    *************** public abstract class Duration
                                    *** 127,133 ****
                                          Number val = getField(DatatypeConstants.MINUTES);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    !   
                                        /**
                                         * Returns the seconds in this duration as an int, or 0 if not present.
                                         */
                                    --- 127,133 ----
                                          Number val = getField(DatatypeConstants.MINUTES);
                                          return (val == null) ? 0 : val.intValue();
                                        }
                                    ! 
                                        /**
                                         * Returns the seconds in this duration as an int, or 0 if not present.
                                         */
                                    *************** public abstract class Duration
                                    *** 207,213 ****
                                              calendar.add(Calendar.SECOND, getSeconds());
                                            }
                                        }*/
                                    !   
                                        /**
                                         * Adds this duration to the specified date.
                                         */
                                    --- 207,213 ----
                                              calendar.add(Calendar.SECOND, getSeconds());
                                            }
                                        }*/
                                    ! 
                                        /**
                                         * Adds this duration to the specified date.
                                         */
                                    *************** public abstract class Duration
                                    *** 246,252 ****
                                         * Returns the unary negative of this duration.
                                         */
                                        public abstract Duration negate();
                                    !   
                                        /**
                                         * Converts the years and months fields into the days field using a
                                         * specific time instant as the reference point.
                                    --- 246,252 ----
                                         * Returns the unary negative of this duration.
                                         */
                                        public abstract Duration negate();
                                    ! 
                                        /**
                                         * Converts the years and months fields into the days field using a
                                         * specific time instant as the reference point.
                                    *************** public abstract class Duration
                                    *** 276,282 ****
                                          // TODO
                                          throw new UnsupportedOperationException();
                                        }
                                    !   
                                        public abstract int hashCode();
                                      
                                        /**
                                    --- 276,282 ----
                                          // TODO
                                          throw new UnsupportedOperationException();
                                        }
                                    ! 
                                        public abstract int hashCode();
                                      
                                        /**
                                    *************** public abstract class Duration
                                    *** 287,291 ****
                                          // TODO
                                          throw new UnsupportedOperationException();
                                        }
                                    !   
                                      }
                                    --- 287,291 ----
                                          // TODO
                                          throw new UnsupportedOperationException();
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/datatype/XMLGregorianCalendar.java gcc-4.6.0/libjava/classpath/javax/xml/datatype/XMLGregorianCalendar.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/datatype/XMLGregorianCalendar.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/datatype/XMLGregorianCalendar.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLGregorianCalendar.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLGregorianCalendar.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class XMLGregorianCalend
                                    *** 213,217 ****
                                        public abstract TimeZone getTimeZone(int defaultZoneoffset);
                                      
                                        public abstract Object clone();
                                    !   
                                      }
                                    --- 213,217 ----
                                        public abstract TimeZone getTimeZone(int defaultZoneoffset);
                                      
                                        public abstract Object clone();
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/namespace/NamespaceContext.java gcc-4.6.0/libjava/classpath/javax/xml/namespace/NamespaceContext.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/namespace/NamespaceContext.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/namespace/NamespaceContext.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* NamespaceContext.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* NamespaceContext.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface NamespaceContext
                                    *** 63,67 ****
                                         */
                                        @SuppressWarnings("unchecked")
                                        public Iterator getPrefixes(String namespaceURI);
                                    !   
                                      }
                                    --- 63,67 ----
                                         */
                                        @SuppressWarnings("unchecked")
                                        public Iterator getPrefixes(String namespaceURI);
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/namespace/QName.java gcc-4.6.0/libjava/classpath/javax/xml/namespace/QName.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/namespace/QName.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/namespace/QName.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** public class QName implements Serializab
                                    *** 128,147 ****
                                        {
                                          if (qName == null)
                                            {
                                    ! 	CPStringBuilder buf = new CPStringBuilder();
                                    ! 	if (namespaceURI.length() > 0)
                                    ! 	  {
                                    ! 	    buf.append('{');
                                    ! 	    buf.append(namespaceURI);
                                    ! 	    buf.append('}');
                                    ! 	  }
                                    ! 	if (prefix.length() > 0)
                                    ! 	  {
                                    ! 	    buf.append(prefix);
                                    ! 	    buf.append(':');
                                    ! 	  }
                                    ! 	buf.append(localPart);
                                    ! 	qName = buf.toString();
                                            }
                                          return qName;
                                        }
                                    --- 128,147 ----
                                        {
                                          if (qName == null)
                                            {
                                    !         CPStringBuilder buf = new CPStringBuilder();
                                    !         if (namespaceURI.length() > 0)
                                    !           {
                                    !             buf.append('{');
                                    !             buf.append(namespaceURI);
                                    !             buf.append('}');
                                    !           }
                                    !         if (prefix.length() > 0)
                                    !           {
                                    !             buf.append(prefix);
                                    !             buf.append(':');
                                    !           }
                                    !         buf.append(localPart);
                                    !         qName = buf.toString();
                                            }
                                          return qName;
                                        }
                                    *************** public class QName implements Serializab
                                    *** 150,156 ****
                                        {
                                          if (qNameAsString == null)
                                            throw new IllegalArgumentException("qNameAsString can't be null");
                                    !     
                                          String namespaceUri = "", prefix = null;
                                          int start = qNameAsString.indexOf('{');
                                          int end = qNameAsString.indexOf('}');
                                    --- 150,156 ----
                                        {
                                          if (qNameAsString == null)
                                            throw new IllegalArgumentException("qNameAsString can't be null");
                                    ! 
                                          String namespaceUri = "", prefix = null;
                                          int start = qNameAsString.indexOf('{');
                                          int end = qNameAsString.indexOf('}');
                                    *************** public class QName implements Serializab
                                    *** 169,173 ****
                                            }
                                          return new QName(namespaceUri, qNameAsString, prefix);
                                        }
                                    !   
                                      }
                                    --- 169,173 ----
                                            }
                                          return new QName(namespaceUri, qNameAsString, prefix);
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/parsers/DocumentBuilder.java gcc-4.6.0/libjava/classpath/javax/xml/parsers/DocumentBuilder.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/parsers/DocumentBuilder.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/parsers/DocumentBuilder.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DocumentBuilder.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DocumentBuilder.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class DocumentBuilder
                                    *** 70,76 ****
                                         * @param is an XML input stream
                                         * @exception IllegalArgumentException if the input stream is null
                                         */
                                    !   public Document parse(InputStream is) 
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    --- 70,76 ----
                                         * @param is an XML input stream
                                         * @exception IllegalArgumentException if the input stream is null
                                         */
                                    !   public Document parse(InputStream is)
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    *************** public abstract class DocumentBuilder
                                    *** 86,92 ****
                                         * @param systemId the system ID of the XML document
                                         * @exception IllegalArgumentException if the input stream is null
                                         */
                                    !   public Document parse(InputStream is, String systemId) 
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    --- 86,92 ----
                                         * @param systemId the system ID of the XML document
                                         * @exception IllegalArgumentException if the input stream is null
                                         */
                                    !   public Document parse(InputStream is, String systemId)
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    *************** public abstract class DocumentBuilder
                                    *** 103,109 ****
                                         * @param uri an XML system ID
                                         * @exception IllegalArgumentException if the URI is null
                                         */
                                    !   public Document parse(String uri) 
                                          throws SAXException, IOException
                                        {
                                          if (uri == null)
                                    --- 103,109 ----
                                         * @param uri an XML system ID
                                         * @exception IllegalArgumentException if the URI is null
                                         */
                                    !   public Document parse(String uri)
                                          throws SAXException, IOException
                                        {
                                          if (uri == null)
                                    *************** public abstract class DocumentBuilder
                                    *** 118,124 ****
                                         * @param f the XML file
                                         * @exception IllegalArgumentException if the file is null
                                         */
                                    !   public Document parse(File f) 
                                          throws SAXException, IOException
                                        {
                                          if (f == null)
                                    --- 118,124 ----
                                         * @param f the XML file
                                         * @exception IllegalArgumentException if the file is null
                                         */
                                    !   public Document parse(File f)
                                          throws SAXException, IOException
                                        {
                                          if (f == null)
                                    *************** public abstract class DocumentBuilder
                                    *** 135,141 ****
                                         * @param source the input source
                                         * @exception IllegalArgumentException if the input source is null
                                         */
                                    !   public abstract Document parse(InputSource source) 
                                          throws SAXException, IOException;
                                      
                                        /**
                                    --- 135,141 ----
                                         * @param source the input source
                                         * @exception IllegalArgumentException if the input source is null
                                         */
                                    !   public abstract Document parse(InputSource source)
                                          throws SAXException, IOException;
                                      
                                        /**
                                    *************** public abstract class DocumentBuilder
                                    *** 175,181 ****
                                        public abstract DOMImplementation getDOMImplementation();
                                      
                                        // -- JAXP 1.3 methods --
                                    !   
                                        /**
                                         * Reset this document builder to its original configuration.
                                         * @since 1.3
                                    --- 175,181 ----
                                        public abstract DOMImplementation getDOMImplementation();
                                      
                                        // -- JAXP 1.3 methods --
                                    ! 
                                        /**
                                         * Reset this document builder to its original configuration.
                                         * @since 1.3
                                    *************** public abstract class DocumentBuilder
                                    *** 199,203 ****
                                        {
                                          return false;
                                        }
                                    !   
                                      }
                                    --- 199,203 ----
                                        {
                                          return false;
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java gcc-4.6.0/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DocumentBuilderFactory.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DocumentBuilderFactory.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class DocumentBuilderFac
                                    *** 111,123 ****
                                                    {
                                                      throw new FactoryConfigurationError(e,
                                                          "error instantiating class " + className);
                                    !               } 
                                                }
                                            }
                                          while (className == null && count < 3);
                                          return new gnu.xml.dom.DomDocumentBuilderFactory();
                                        }
                                    !   
                                        private static String getFactoryClassName(ClassLoader loader, int attempt)
                                        {
                                          final String propertyName = "javax.xml.parsers.DocumentBuilderFactory";
                                    --- 111,123 ----
                                                    {
                                                      throw new FactoryConfigurationError(e,
                                                          "error instantiating class " + className);
                                    !               }
                                                }
                                            }
                                          while (className == null && count < 3);
                                          return new gnu.xml.dom.DomDocumentBuilderFactory();
                                        }
                                    ! 
                                        private static String getFactoryClassName(ClassLoader loader, int attempt)
                                        {
                                          final String propertyName = "javax.xml.parsers.DocumentBuilderFactory";
                                    *************** public abstract class DocumentBuilderFac
                                    *** 141,147 ****
                                                  {
                                                    return null;
                                                  }
                                    !         case 2: 
                                                try
                                                  {
                                                    String serviceKey = "/META-INF/services/" + propertyName;
                                    --- 141,147 ----
                                                  {
                                                    return null;
                                                  }
                                    !         case 2:
                                                try
                                                  {
                                                    String serviceKey = "/META-INF/services/" + propertyName;
                                    *************** public abstract class DocumentBuilderFac
                                    *** 293,299 ****
                                         * @param value the new value
                                         * @exception IllegalArgumentException if the attribute is not recognized
                                         */
                                    !   public abstract void setAttribute(String name, Object value) 
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    --- 293,299 ----
                                         * @param value the new value
                                         * @exception IllegalArgumentException if the attribute is not recognized
                                         */
                                    !   public abstract void setAttribute(String name, Object value)
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    *************** public abstract class DocumentBuilderFac
                                    *** 301,307 ****
                                         * @param name the name of the attribute
                                         * @exception IllegalArgumentException if the attribute is not recognized
                                         */
                                    !   public abstract Object getAttribute(String name) 
                                          throws IllegalArgumentException;
                                      
                                        // -- JAXP 1.3 methods --
                                    --- 301,307 ----
                                         * @param name the name of the attribute
                                         * @exception IllegalArgumentException if the attribute is not recognized
                                         */
                                    !   public abstract Object getAttribute(String name)
                                          throws IllegalArgumentException;
                                      
                                        // -- JAXP 1.3 methods --
                                    *************** public abstract class DocumentBuilderFac
                                    *** 365,369 ****
                                         */
                                        public abstract boolean getFeature(String name)
                                          throws ParserConfigurationException;
                                    !   
                                      }
                                    --- 365,369 ----
                                         */
                                        public abstract boolean getFeature(String name)
                                          throws ParserConfigurationException;
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/parsers/FactoryConfigurationError.java gcc-4.6.0/libjava/classpath/javax/xml/parsers/FactoryConfigurationError.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/parsers/FactoryConfigurationError.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/parsers/FactoryConfigurationError.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* FactoryConfigurationError.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* FactoryConfigurationError.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package javax.xml.parsers;
                                    *** 39,45 ****
                                      
                                      /**
                                       * An error occurred during configuration of the parser factory.
                                    !  * 
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public class FactoryConfigurationError
                                    --- 39,45 ----
                                      
                                      /**
                                       * An error occurred during configuration of the parser factory.
                                    !  *
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public class FactoryConfigurationError
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/parsers/ParserConfigurationException.java gcc-4.6.0/libjava/classpath/javax/xml/parsers/ParserConfigurationException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/parsers/ParserConfigurationException.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/parsers/ParserConfigurationException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* ParserConfigurationException.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* ParserConfigurationException.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package javax.xml.parsers;
                                    *** 39,45 ****
                                      
                                      /**
                                       * An exception occurred during configuration of the XML parser.
                                    !  * 
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public class ParserConfigurationException
                                    --- 39,45 ----
                                      
                                      /**
                                       * An exception occurred during configuration of the XML parser.
                                    !  *
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public class ParserConfigurationException
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/parsers/SAXParser.java gcc-4.6.0/libjava/classpath/javax/xml/parsers/SAXParser.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/parsers/SAXParser.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/parsers/SAXParser.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SAXParser.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SAXParser.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** import org.xml.sax.helpers.DefaultHandle
                                    *** 59,65 ****
                                       */
                                      public abstract class SAXParser
                                      {
                                    !   
                                        protected SAXParser()
                                        {
                                        }
                                    --- 59,65 ----
                                       */
                                      public abstract class SAXParser
                                      {
                                    ! 
                                        protected SAXParser()
                                        {
                                        }
                                    *************** public abstract class SAXParser
                                    *** 76,82 ****
                                         * @exception IllegalArgumentException if the input stream is null
                                         * @see #parse(java.io.InputStream,org.xml.sax.helpers.DefaultHandler)
                                         */
                                    !   public void parse(InputStream is, HandlerBase hb) 
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    --- 76,82 ----
                                         * @exception IllegalArgumentException if the input stream is null
                                         * @see #parse(java.io.InputStream,org.xml.sax.helpers.DefaultHandler)
                                         */
                                    !   public void parse(InputStream is, HandlerBase hb)
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    *************** public abstract class SAXParser
                                    *** 118,124 ****
                                         * @param dh the SAX2 handler
                                         * @exception IllegalArgumentException if the input stream is null
                                         */
                                    !   public void parse(InputStream is, DefaultHandler dh) 
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    --- 118,124 ----
                                         * @param dh the SAX2 handler
                                         * @exception IllegalArgumentException if the input stream is null
                                         */
                                    !   public void parse(InputStream is, DefaultHandler dh)
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    *************** public abstract class SAXParser
                                    *** 158,164 ****
                                         * @exception IllegalArgumentException if the URI is null
                                         * @see #parse(java.lang.String,org.xml.sax.helpers.DefaultHandler)
                                         */
                                    !   public void parse(String uri, HandlerBase hb) 
                                          throws SAXException, IOException
                                        {
                                          if (uri == null)
                                    --- 158,164 ----
                                         * @exception IllegalArgumentException if the URI is null
                                         * @see #parse(java.lang.String,org.xml.sax.helpers.DefaultHandler)
                                         */
                                    !   public void parse(String uri, HandlerBase hb)
                                          throws SAXException, IOException
                                        {
                                          if (uri == null)
                                    *************** public abstract class SAXParser
                                    *** 175,181 ****
                                         * @param dh the SAX2 handler
                                         * @exception IllegalArgumentException if the URI is null
                                         */
                                    !   public void parse(String uri, DefaultHandler dh) 
                                          throws SAXException, IOException
                                        {
                                          if (uri == null)
                                    --- 175,181 ----
                                         * @param dh the SAX2 handler
                                         * @exception IllegalArgumentException if the URI is null
                                         */
                                    !   public void parse(String uri, DefaultHandler dh)
                                          throws SAXException, IOException
                                        {
                                          if (uri == null)
                                    *************** public abstract class SAXParser
                                    *** 195,201 ****
                                         * @exception IllegalArgumentException if the file is null
                                         * @see #parse(java.io.File,org.xml.sax.helpers.DefaultHandler)
                                         */
                                    !   public void parse(File f, HandlerBase hb) 
                                          throws SAXException, IOException
                                        {
                                          if (f == null)
                                    --- 195,201 ----
                                         * @exception IllegalArgumentException if the file is null
                                         * @see #parse(java.io.File,org.xml.sax.helpers.DefaultHandler)
                                         */
                                    !   public void parse(File f, HandlerBase hb)
                                          throws SAXException, IOException
                                        {
                                          if (f == null)
                                    *************** public abstract class SAXParser
                                    *** 214,220 ****
                                         * @param dh the SAX2 handler
                                         * @exception IllegalArgumentException if the file is null
                                         */
                                    !   public void parse(File f, DefaultHandler dh) 
                                          throws SAXException, IOException
                                        {
                                          if (f == null)
                                    --- 214,220 ----
                                         * @param dh the SAX2 handler
                                         * @exception IllegalArgumentException if the file is null
                                         */
                                    !   public void parse(File f, DefaultHandler dh)
                                          throws SAXException, IOException
                                        {
                                          if (f == null)
                                    *************** public abstract class SAXParser
                                    *** 236,242 ****
                                         * @exception IllegalArgumentException if the input source is null
                                         * @see #parse(org.xml.sax.InputSource,org.xml.sax.helpers.DefaultHandler)
                                         */
                                    !   public void parse(InputSource is, HandlerBase hb) 
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    --- 236,242 ----
                                         * @exception IllegalArgumentException if the input source is null
                                         * @see #parse(org.xml.sax.InputSource,org.xml.sax.helpers.DefaultHandler)
                                         */
                                    !   public void parse(InputSource is, HandlerBase hb)
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    *************** public abstract class SAXParser
                                    *** 258,264 ****
                                         * @param dh the SAX2 handler
                                         * @exception IllegalArgumentException if the input source is null
                                         */
                                    !   public void parse(InputSource is, DefaultHandler dh) 
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    --- 258,264 ----
                                         * @param dh the SAX2 handler
                                         * @exception IllegalArgumentException if the input source is null
                                         */
                                    !   public void parse(InputSource is, DefaultHandler dh)
                                          throws SAXException, IOException
                                        {
                                          if (is == null)
                                    *************** public abstract class SAXParser
                                    *** 299,312 ****
                                         * @param name the name of the property
                                         * @param value the value of the property
                                         */
                                    !   public abstract void setProperty(String name, Object value) 
                                          throws SAXNotRecognizedException, SAXNotSupportedException;
                                      
                                        /**
                                         * Returns the value of the specified SAX2 parser property.
                                         * @param name the name of the property
                                         */
                                    !   public abstract Object getProperty(String name) 
                                          throws SAXNotRecognizedException, SAXNotSupportedException;
                                      
                                        // -- JAXP 1.3 methods --
                                    --- 299,312 ----
                                         * @param name the name of the property
                                         * @param value the value of the property
                                         */
                                    !   public abstract void setProperty(String name, Object value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException;
                                      
                                        /**
                                         * Returns the value of the specified SAX2 parser property.
                                         * @param name the name of the property
                                         */
                                    !   public abstract Object getProperty(String name)
                                          throws SAXNotRecognizedException, SAXNotSupportedException;
                                      
                                        // -- JAXP 1.3 methods --
                                    *************** public abstract class SAXParser
                                    *** 336,340 ****
                                        {
                                          return false;
                                        }
                                    !   
                                      }
                                    --- 336,340 ----
                                        {
                                          return false;
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/parsers/SAXParserFactory.java gcc-4.6.0/libjava/classpath/javax/xml/parsers/SAXParserFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/parsers/SAXParserFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/parsers/SAXParserFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SAXParserFactory.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SAXParserFactory.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class SAXParserFactory
                                    *** 216,223 ****
                                         * @param name the feature name
                                         * @param value the featurevalue
                                         */
                                    !   public abstract void setFeature(String name, boolean value) 
                                    !     throws ParserConfigurationException, SAXNotRecognizedException, 
                                                 SAXNotSupportedException;
                                      
                                        /**
                                    --- 216,223 ----
                                         * @param name the feature name
                                         * @param value the featurevalue
                                         */
                                    !   public abstract void setFeature(String name, boolean value)
                                    !     throws ParserConfigurationException, SAXNotRecognizedException,
                                                 SAXNotSupportedException;
                                      
                                        /**
                                    *************** public abstract class SAXParserFactory
                                    *** 225,232 ****
                                         * factory.
                                         * @param name the feature name
                                         */
                                    !   public abstract boolean getFeature(String name) 
                                    !     throws ParserConfigurationException, SAXNotRecognizedException, 
                                                 SAXNotSupportedException;
                                      
                                        // -- JAXP 1.3 methods --
                                    --- 225,232 ----
                                         * factory.
                                         * @param name the feature name
                                         */
                                    !   public abstract boolean getFeature(String name)
                                    !     throws ParserConfigurationException, SAXNotRecognizedException,
                                                 SAXNotSupportedException;
                                      
                                        // -- JAXP 1.3 methods --
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/EventFilter.java gcc-4.6.0/libjava/classpath/javax/xml/stream/EventFilter.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/EventFilter.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/EventFilter.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* EventFilter.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* EventFilter.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface EventFilter
                                    *** 49,54 ****
                                         * Indicates whether this filter can accept the specified event.
                                         */
                                        boolean accept(XMLEvent event);
                                    -   
                                    - }
                                      
                                    --- 49,53 ----
                                         * Indicates whether this filter can accept the specified event.
                                         */
                                        boolean accept(XMLEvent event);
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/FactoryConfigurationError.java gcc-4.6.0/libjava/classpath/javax/xml/stream/FactoryConfigurationError.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/FactoryConfigurationError.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/FactoryConfigurationError.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* FactoryConfigurationError.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* FactoryConfigurationError.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class FactoryConfigurationError
                                    *** 81,86 ****
                                        {
                                          return super.getMessage();
                                        }
                                    -   
                                    - }
                                      
                                    --- 81,85 ----
                                        {
                                          return super.getMessage();
                                        }
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/Location.java gcc-4.6.0/libjava/classpath/javax/xml/stream/Location.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/Location.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/Location.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Location.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Location.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface Location
                                    *** 71,76 ****
                                         * Returns the system identifier for the underlying source.
                                         */
                                        String getSystemId();
                                    -   
                                    - }
                                      
                                    --- 71,75 ----
                                         * Returns the system identifier for the underlying source.
                                         */
                                        String getSystemId();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/StreamFilter.java gcc-4.6.0/libjava/classpath/javax/xml/stream/StreamFilter.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/StreamFilter.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/StreamFilter.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* StreamFilter.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* StreamFilter.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface StreamFilter
                                    *** 48,53 ****
                                         * this stream.
                                         */
                                        boolean accept(XMLStreamReader reader);
                                    -   
                                    - }
                                      
                                    --- 48,52 ----
                                         * this stream.
                                         */
                                        boolean accept(XMLStreamReader reader);
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLEventFactory.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLEventFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLEventFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLEventFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,5 ****
                                    ! /* XMLEventFactory.java -- 
                                    !    Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    --- 1,5 ----
                                    ! /* XMLEventFactory.java --
                                    !    Copyright (C) 2005,2006,2009  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    *************** public abstract class XMLEventFactory
                                    *** 94,101 ****
                                         * system resource</li>
                                         * <li>the default factory class</li>
                                         * </ol>
                                         */
                                    !   static XMLEventFactory newInstance(String factoryId, ClassLoader classLoader)
                                          throws FactoryConfigurationError
                                        {
                                          ClassLoader loader = classLoader;
                                    --- 94,107 ----
                                         * system resource</li>
                                         * <li>the default factory class</li>
                                         * </ol>
                                    +    * @param factoryId name of the factory to find, same as a property name
                                    +    * @param classLoader the class loader to use
                                    +    * @return the factory implementation
                                    +    * @exception FactoryConfigurationError if an instance of this factory
                                    +    * cannot be loaded
                                         */
                                    !   public static XMLEventFactory newInstance(String factoryId,
                                    !                                             ClassLoader classLoader)
                                          throws FactoryConfigurationError
                                        {
                                          ClassLoader loader = classLoader;
                                    *************** public abstract class XMLEventFactory
                                    *** 193,199 ****
                                         */
                                        public abstract Attribute createAttribute(String prefix, String namespaceURI,
                                                                                  String localName, String value);
                                    !   
                                        /**
                                         * Create an attribute event.
                                         */
                                    --- 199,205 ----
                                         */
                                        public abstract Attribute createAttribute(String prefix, String namespaceURI,
                                                                                  String localName, String value);
                                    ! 
                                        /**
                                         * Create an attribute event.
                                         */
                                    *************** public abstract class XMLEventFactory
                                    *** 249,255 ****
                                                                                        Iterator attributes,
                                                                                        Iterator namespaces,
                                                                                        NamespaceContext context);
                                    !   
                                        /**
                                         * Create an end-element event.
                                         */
                                    --- 255,261 ----
                                                                                        Iterator attributes,
                                                                                        Iterator namespaces,
                                                                                        NamespaceContext context);
                                    ! 
                                        /**
                                         * Create an end-element event.
                                         */
                                    *************** public abstract class XMLEventFactory
                                    *** 342,347 ****
                                         * Create a DOCTYPE declaration event.
                                         */
                                        public abstract DTD createDTD(String dtd);
                                    -   
                                    - }
                                      
                                    --- 348,352 ----
                                         * Create a DOCTYPE declaration event.
                                         */
                                        public abstract DTD createDTD(String dtd);
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLEventReader.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLEventReader.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLEventReader.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLEventReader.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLEventReader.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLEventReader.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLEventReader
                                    *** 58,64 ****
                                         * Indicates whether there are more XML events to be read.
                                         */
                                        boolean hasNext();
                                    !   
                                        /**
                                         * Looks at the next XML event without advancing the cursor in the stream.
                                         * Returns <code>null</code> if there are no more events to read.
                                    --- 58,64 ----
                                         * Indicates whether there are more XML events to be read.
                                         */
                                        boolean hasNext();
                                    ! 
                                        /**
                                         * Looks at the next XML event without advancing the cursor in the stream.
                                         * Returns <code>null</code> if there are no more events to read.
                                    *************** public interface XMLEventReader
                                    *** 100,103 ****
                                          throws XMLStreamException;
                                      
                                      }
                                    - 
                                    --- 100,102 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLEventWriter.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLEventWriter.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLEventWriter.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLEventWriter.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLEventWriter.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLEventWriter.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLEventWriter
                                    *** 104,109 ****
                                         * Returns the namespace context.
                                         */
                                        NamespaceContext getNamespaceContext();
                                    -   
                                    - }
                                      
                                    --- 104,108 ----
                                         * Returns the namespace context.
                                         */
                                        NamespaceContext getNamespaceContext();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLInputFactory.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLInputFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLInputFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLInputFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,5 ****
                                    ! /* XMLInputFactory.java -- 
                                    !    Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    --- 1,5 ----
                                    ! /* XMLInputFactory.java --
                                    !    Copyright (C) 2005,2006,2009  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    *************** public abstract class XMLInputFactory
                                    *** 132,138 ****
                                        /**
                                         * Property used to control namespace support.
                                         */
                                    !   public static final String IS_NAMESPACE_AWARE = 
                                          "javax.xml.stream.isNamespaceAware";
                                      
                                        /**
                                    --- 132,138 ----
                                        /**
                                         * Property used to control namespace support.
                                         */
                                    !   public static final String IS_NAMESPACE_AWARE =
                                          "javax.xml.stream.isNamespaceAware";
                                      
                                        /**
                                    *************** public abstract class XMLInputFactory
                                    *** 206,211 ****
                                    --- 206,216 ----
                                         * system resource</li>
                                         * <li>the default factory class</li>
                                         * </ol>
                                    +    * @param factoryId name of the factory, same as a property name
                                    +    * @param classLoader the class loader to use
                                    +    * @return the factory implementation
                                    +    * @exception FactoryConfigurationError if an instance of this factory
                                    +    * cannot be loaded
                                         */
                                        public static XMLInputFactory newInstance(String factoryId,
                                                                                  ClassLoader classLoader)
                                    *************** public abstract class XMLInputFactory
                                    *** 347,353 ****
                                        public abstract XMLEventReader createXMLEventReader(String systemId,
                                                                                            Reader reader)
                                          throws XMLStreamException;
                                    !   
                                        /**
                                         * Creates a new event reader.
                                         */
                                    --- 352,358 ----
                                        public abstract XMLEventReader createXMLEventReader(String systemId,
                                                                                            Reader reader)
                                          throws XMLStreamException;
                                    ! 
                                        /**
                                         * Creates a new event reader.
                                         */
                                    *************** public abstract class XMLInputFactory
                                    *** 444,447 ****
                                        public abstract XMLEventAllocator getEventAllocator();
                                      
                                      }
                                    - 
                                    --- 449,451 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLOutputFactory.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLOutputFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLOutputFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLOutputFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,5 ****
                                    ! /* XMLOutputFactory.java -- 
                                    !    Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    --- 1,5 ----
                                    ! /* XMLOutputFactory.java --
                                    !    Copyright (C) 2005,2006,2009  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    *************** public abstract class XMLOutputFactory
                                    *** 77,83 ****
                                         * If true, the writer will create a namespace declaration for any
                                         * attribute that doesn't have a namespace declaration in scope.
                                         */
                                    !   public static final java.lang.String IS_REPAIRING_NAMESPACES = 
                                          "javax.xml.stream.isRepairingNamespaces";
                                      
                                        protected XMLOutputFactory()
                                    --- 77,83 ----
                                         * If true, the writer will create a namespace declaration for any
                                         * attribute that doesn't have a namespace declaration in scope.
                                         */
                                    !   public static final java.lang.String IS_REPAIRING_NAMESPACES =
                                          "javax.xml.stream.isRepairingNamespaces";
                                      
                                        protected XMLOutputFactory()
                                    *************** public abstract class XMLOutputFactory
                                    *** 86,91 ****
                                    --- 86,101 ----
                                      
                                        /**
                                         * Creates a new <b>output</b> factory.
                                    +    * @see #newInstance(String,ClassLoader)
                                    +    */
                                    +   public static XMLOutputFactory newInstance()
                                    +     throws FactoryConfigurationError
                                    +   {
                                    +     return newInstance(null, null);
                                    +   }
                                    + 
                                    +   /**
                                    +    * Creates a new <b>output</b> factory.
                                         * The implementation class to load is the first found in the following
                                         * locations:
                                         * <ol>
                                    *************** public abstract class XMLOutputFactory
                                    *** 98,122 ****
                                         * system resource</li>
                                         * <li>the default factory class</li>
                                         * </ol>
                                         */
                                    !   public static XMLOutputFactory newInstance()
                                          throws FactoryConfigurationError
                                        {
                                    !     ClassLoader loader = Thread.currentThread().getContextClassLoader();
                                    !     if (loader == null)
                                            {
                                    !         loader = XMLOutputFactory.class.getClassLoader();
                                            }
                                          String className = null;
                                          int count = 0;
                                          do
                                            {
                                    !         className = getFactoryClassName(loader, count++);
                                              if (className != null)
                                                {
                                                  try
                                                    {
                                    !                 Class<?> t = (loader != null) ? loader.loadClass(className) :
                                                        Class.forName(className);
                                                      return (XMLOutputFactory) t.newInstance();
                                                    }
                                    --- 108,142 ----
                                         * system resource</li>
                                         * <li>the default factory class</li>
                                         * </ol>
                                    +    * @param factoryId the name of the factory, same as the property
                                    +    * @param classLoader the class loader to use
                                    +    * @return a new factory instance
                                    +    * @exception FactoryConfigurationError if an instance of this factory
                                    +    * could not be loaded
                                         */
                                    !   public static XMLOutputFactory newInstance(String factoryId,
                                    !                                              ClassLoader classLoader)
                                          throws FactoryConfigurationError
                                        {
                                    !     if (classLoader == null)
                                            {
                                    !         classLoader = Thread.currentThread().getContextClassLoader();
                                    !       }
                                    !     if (classLoader == null)
                                    !       {
                                    !         classLoader = XMLOutputFactory.class.getClassLoader();
                                            }
                                          String className = null;
                                          int count = 0;
                                          do
                                            {
                                    !         className = getFactoryClassName(classLoader, count++);
                                              if (className != null)
                                                {
                                                  try
                                                    {
                                    !                 Class<?> t = (classLoader != null) ?
                                    !                   classLoader.loadClass(className) :
                                                        Class.forName(className);
                                                      return (XMLOutputFactory) t.newInstance();
                                                    }
                                    *************** public abstract class XMLOutputFactory
                                    *** 184,201 ****
                                        }
                                      
                                        /**
                                    -    * Creates a new <b>input</b> factory.
                                    -    * This appears to be an API design bug.
                                    -    * @see javax.xml.stream.XMLInputFactory.newInstance(String,ClassLoader)
                                    -    */
                                    -   public static XMLInputFactory newInstance(String factoryId,
                                    -                                             ClassLoader classLoader)
                                    -     throws FactoryConfigurationError
                                    -   {
                                    -     return XMLInputFactory.newInstance(factoryId, classLoader);
                                    -   }
                                    - 
                                    -   /**
                                         * Creates a new stream writer.
                                         */
                                        public abstract XMLStreamWriter createXMLStreamWriter(Writer stream)
                                    --- 204,209 ----
                                    *************** public abstract class XMLOutputFactory
                                    *** 221,227 ****
                                         */
                                        public abstract XMLStreamWriter createXMLStreamWriter(Result result)
                                          throws XMLStreamException;
                                    !   
                                        /**
                                         * Creates a new event writer.
                                         * @exception UnsupportedOperationException if this method is not
                                    --- 229,235 ----
                                         */
                                        public abstract XMLStreamWriter createXMLStreamWriter(Result result)
                                          throws XMLStreamException;
                                    ! 
                                        /**
                                         * Creates a new event writer.
                                         * @exception UnsupportedOperationException if this method is not
                                    *************** public abstract class XMLOutputFactory
                                    *** 269,272 ****
                                        public abstract boolean isPropertySupported(String name);
                                      
                                      }
                                    - 
                                    --- 277,279 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLReporter.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLReporter.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLReporter.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLReporter.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLReporter.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLReporter.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLReporter
                                    *** 53,58 ****
                                        void report(String message, String errorType,
                                                    Object relatedInformation, Location location)
                                          throws XMLStreamException;
                                    -   
                                    - }
                                      
                                    --- 53,57 ----
                                        void report(String message, String errorType,
                                                    Object relatedInformation, Location location)
                                          throws XMLStreamException;
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLResolver.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLResolver.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLResolver.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLResolver.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLResolver.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLResolver.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLResolver
                                    *** 63,66 ****
                                          throws XMLStreamException;
                                      
                                      }
                                    - 
                                    --- 63,65 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLStreamConstants.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLStreamConstants.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLStreamConstants.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLStreamConstants.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLStreamConstants.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLStreamConstants.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLStreamConstants
                                    *** 117,122 ****
                                         * An entity declaration event.
                                         */
                                        static final int ENTITY_DECLARATION = 15;
                                    -   
                                    - }
                                      
                                    --- 117,121 ----
                                         * An entity declaration event.
                                         */
                                        static final int ENTITY_DECLARATION = 15;
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLStreamException.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLStreamException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLStreamException.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLStreamException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLStreamException.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLStreamException.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class XMLStreamException
                                    *** 94,99 ****
                                        {
                                          return location;
                                        }
                                    -   
                                    - }
                                      
                                    --- 94,98 ----
                                        {
                                          return location;
                                        }
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLStreamReader.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLStreamReader.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLStreamReader.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLStreamReader.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLStreamReader.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLStreamReader.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLStreamReader
                                    *** 281,287 ****
                                         * Indicates whether the standalone flag was set in the document.
                                         */
                                        boolean standaloneSet();
                                    !   
                                        /**
                                         * Returns the encoding declared in the XML declaration.
                                         */
                                    --- 281,287 ----
                                         * Indicates whether the standalone flag was set in the document.
                                         */
                                        boolean standaloneSet();
                                    ! 
                                        /**
                                         * Returns the encoding declared in the XML declaration.
                                         */
                                    *************** public interface XMLStreamReader
                                    *** 296,301 ****
                                         * Returns the data of the current processing instruction event.
                                         */
                                        String getPIData();
                                    -   
                                    - }
                                      
                                    --- 296,300 ----
                                         * Returns the data of the current processing instruction event.
                                         */
                                        String getPIData();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLStreamWriter.java gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLStreamWriter.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/XMLStreamWriter.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/XMLStreamWriter.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLStreamWriter.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLStreamWriter.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** import javax.xml.namespace.NamespaceCont
                                    *** 44,50 ****
                                       */
                                      public interface XMLStreamWriter
                                      {
                                    !   
                                        /**
                                         * Write the start of a tag.
                                         */
                                    --- 44,50 ----
                                       */
                                      public interface XMLStreamWriter
                                      {
                                    ! 
                                        /**
                                         * Write the start of a tag.
                                         */
                                    *************** public interface XMLStreamWriter
                                    *** 178,184 ****
                                         */
                                        void writeStartDocument()
                                          throws XMLStreamException;
                                    !   
                                        /**
                                         * Write an XML declaration with the specified XML version.
                                         */
                                    --- 178,184 ----
                                         */
                                        void writeStartDocument()
                                          throws XMLStreamException;
                                    ! 
                                        /**
                                         * Write an XML declaration with the specified XML version.
                                         */
                                    *************** public interface XMLStreamWriter
                                    *** 239,244 ****
                                         */
                                        Object getProperty(String name)
                                          throws IllegalArgumentException;
                                    -   
                                    - }
                                      
                                    --- 239,243 ----
                                         */
                                        Object getProperty(String name)
                                          throws IllegalArgumentException;
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/Attribute.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/Attribute.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/Attribute.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/Attribute.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Attribute.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Attribute.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface Attribute
                                    *** 66,71 ****
                                         * just defaulted by the DTD.
                                         */
                                        boolean isSpecified();
                                    -   
                                    - }
                                      
                                    --- 66,70 ----
                                         * just defaulted by the DTD.
                                         */
                                        boolean isSpecified();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/Characters.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/Characters.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/Characters.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/Characters.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Characters.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Characters.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface Characters
                                    *** 58,68 ****
                                         * Indicates whether this is a CDATA section.
                                         */
                                        boolean isCData();
                                    !   
                                        /**
                                         * Indicates whether this text is all ignorable whitespace.
                                         */
                                        boolean isIgnorableWhiteSpace();
                                    -   
                                    - }
                                      
                                    --- 58,67 ----
                                         * Indicates whether this is a CDATA section.
                                         */
                                        boolean isCData();
                                    ! 
                                        /**
                                         * Indicates whether this text is all ignorable whitespace.
                                         */
                                        boolean isIgnorableWhiteSpace();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/Comment.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/Comment.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/Comment.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/Comment.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Comment.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Comment.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface Comment
                                    *** 48,53 ****
                                         * Returns the comment text.
                                         */
                                        String getText();
                                    -   
                                    - }
                                      
                                    --- 48,52 ----
                                         * Returns the comment text.
                                         */
                                        String getText();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/DTD.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/DTD.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/DTD.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/DTD.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DTD.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DTD.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface DTD
                                    *** 68,73 ****
                                         */
                                        @SuppressWarnings("unchecked")
                                        List getEntities();
                                    -   
                                    - }
                                      
                                    --- 68,72 ----
                                         */
                                        @SuppressWarnings("unchecked")
                                        List getEntities();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/EndDocument.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/EndDocument.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/EndDocument.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/EndDocument.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* EndDocument.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* EndDocument.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface EndDocument
                                    *** 44,47 ****
                                        extends XMLEvent
                                      {
                                      }
                                    - 
                                    --- 44,46 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/EndElement.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/EndElement.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/EndElement.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/EndElement.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* EndElement.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* EndElement.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface EndElement
                                    *** 57,62 ****
                                         */
                                        @SuppressWarnings("unchecked")
                                        Iterator getNamespaces();
                                    -   
                                    - }
                                      
                                    --- 57,61 ----
                                         */
                                        @SuppressWarnings("unchecked")
                                        Iterator getNamespaces();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/EntityDeclaration.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/EntityDeclaration.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/EntityDeclaration.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/EntityDeclaration.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* EntityDeclaration.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* EntityDeclaration.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface EntityDeclaration
                                    *** 75,78 ****
                                        String getBaseURI();
                                      
                                      }
                                    - 
                                    --- 75,77 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/EntityReference.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/EntityReference.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/EntityReference.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/EntityReference.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* EntityReference.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* EntityReference.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface EntityReference
                                    *** 55,58 ****
                                        String getName();
                                      
                                      }
                                    - 
                                    --- 55,57 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/Namespace.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/Namespace.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/Namespace.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/Namespace.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Namespace.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Namespace.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package javax.xml.stream.events;
                                    *** 41,47 ****
                                       * A namespace declaration event.
                                       */
                                      public interface Namespace
                                    !   extends XMLEvent
                                      {
                                      
                                        /**
                                    --- 41,47 ----
                                       * A namespace declaration event.
                                       */
                                      public interface Namespace
                                    !   extends Attribute
                                      {
                                      
                                        /**
                                    *************** public interface Namespace
                                    *** 58,63 ****
                                         * Indicates whether this event declares the default namespace.
                                         */
                                        boolean isDefaultNamespaceDeclaration();
                                    -   
                                    - }
                                      
                                    --- 58,62 ----
                                         * Indicates whether this event declares the default namespace.
                                         */
                                        boolean isDefaultNamespaceDeclaration();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/NotationDeclaration.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/NotationDeclaration.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/NotationDeclaration.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/NotationDeclaration.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* NotationDeclaration.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* NotationDeclaration.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface NotationDeclaration
                                    *** 58,63 ****
                                         * Returns the system identifier of the notation.
                                         */
                                        String getSystemId();
                                    -   
                                    - }
                                      
                                    --- 58,62 ----
                                         * Returns the system identifier of the notation.
                                         */
                                        String getSystemId();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/ProcessingInstruction.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/ProcessingInstruction.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/ProcessingInstruction.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/ProcessingInstruction.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* ProcessingInstruction.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* ProcessingInstruction.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface ProcessingInstruction
                                    *** 53,58 ****
                                         * Returns the processing instruction data.
                                         */
                                        String getData();
                                    -   
                                    - }
                                      
                                    --- 53,57 ----
                                         * Returns the processing instruction data.
                                         */
                                        String getData();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/StartDocument.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/StartDocument.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/StartDocument.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/StartDocument.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* StartDocument.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* StartDocument.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface StartDocument
                                    *** 75,80 ****
                                         * Returns the XML version of the document.
                                         */
                                        String getVersion();
                                    -   
                                    - }
                                      
                                    --- 75,79 ----
                                         * Returns the XML version of the document.
                                         */
                                        String getVersion();
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/StartElement.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/StartElement.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/StartElement.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/StartElement.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* StartElement.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* StartElement.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface StartElement
                                    *** 79,84 ****
                                         * Returns the namespace URI associated with the given prefix.
                                         */
                                        String getNamespaceURI(String prefix);
                                    -   
                                    - }
                                      
                                    --- 79,83 ----
                                         * Returns the namespace URI associated with the given prefix.
                                         */
                                        String getNamespaceURI(String prefix);
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/events/XMLEvent.java gcc-4.6.0/libjava/classpath/javax/xml/stream/events/XMLEvent.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/events/XMLEvent.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/events/XMLEvent.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLEvent.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLEvent.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLEvent
                                    *** 125,136 ****
                                         * not available.
                                         */
                                        QName getSchemaType();
                                    !   
                                        /**
                                         * Writes this event to the specified writer.
                                         */
                                        void writeAsEncodedUnicode(Writer writer)
                                          throws XMLStreamException;
                                    -   
                                    - }
                                      
                                    --- 125,135 ----
                                         * not available.
                                         */
                                        QName getSchemaType();
                                    ! 
                                        /**
                                         * Writes this event to the specified writer.
                                         */
                                        void writeAsEncodedUnicode(Writer writer)
                                          throws XMLStreamException;
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/util/EventReaderDelegate.java gcc-4.6.0/libjava/classpath/javax/xml/stream/util/EventReaderDelegate.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/util/EventReaderDelegate.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/util/EventReaderDelegate.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* EventReaderDelegate.java -- 
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* EventReaderDelegate.java --
                                         Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class EventReaderDelegate
                                    *** 149,152 ****
                                        }
                                      
                                      }
                                    - 
                                    --- 149,151 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/util/ReaderDelegate.java gcc-4.6.0/libjava/classpath/javax/xml/stream/util/ReaderDelegate.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/util/ReaderDelegate.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/util/ReaderDelegate.java	Thu Jan  1 00:00:00 1970
                                    ***************
                                    *** 1,409 ****
                                    - /* ReaderDelegate.java -- 
                                    -    Copyright (C) 2005,2006  Free Software Foundation, Inc.
                                    - 
                                    - This file is part of GNU Classpath.
                                    - 
                                    - GNU Classpath is free software; you can redistribute it and/or modify
                                    - it under the terms of the GNU General Public License as published by
                                    - the Free Software Foundation; either version 2, or (at your option)
                                    - any later version.
                                    - 
                                    - GNU Classpath 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 for more details.
                                    - 
                                    - You should have received a copy of the GNU General Public License
                                    - along with GNU Classpath; see the file COPYING.  If not, write to the
                                    - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                    - 02110-1301 USA.
                                    - 
                                    - Linking this library statically or dynamically with other modules is
                                    - making a combined work based on this library.  Thus, the terms and
                                    - conditions of the GNU General Public License cover the whole
                                    - combination.
                                    - 
                                    - As a special exception, the copyright holders of this library give you
                                    - permission to link this library with independent modules to produce an
                                    - executable, regardless of the license terms of these independent
                                    - modules, and to copy and distribute the resulting executable under
                                    - terms of your choice, provided that you also meet, for each linked
                                    - independent module, the terms and conditions of the license of that
                                    - module.  An independent module is a module which is not derived from
                                    - or based on this library.  If you modify this library, you may extend
                                    - this exception to your version of the library, but you are not
                                    - obligated to do so.  If you do not wish to do so, delete this
                                    - exception statement from your version. */
                                    - 
                                    - package javax.xml.stream.util;
                                    - 
                                    - import javax.xml.namespace.NamespaceContext;
                                    - import javax.xml.namespace.QName;
                                    - import javax.xml.stream.Location;
                                    - import javax.xml.stream.XMLStreamConstants;
                                    - import javax.xml.stream.XMLStreamException;
                                    - import javax.xml.stream.XMLStreamReader;
                                    - 
                                    - /**
                                    -  * Base class for XML stream reader filters.
                                    -  */
                                    - public class ReaderDelegate
                                    -   implements XMLStreamReader, XMLStreamConstants
                                    - {
                                    - 
                                    -   private XMLStreamReader parent;
                                    - 
                                    -   /**
                                    -    * Constructs an empty filter with no parent set.
                                    -    */
                                    -   public ReaderDelegate()
                                    -   {
                                    -   }
                                    - 
                                    -   /**
                                    -    * Constructs an empty filter with the specfied parent.
                                    -    */
                                    -   public ReaderDelegate(XMLStreamReader reader)
                                    -   {
                                    -     parent = reader;
                                    -   }
                                    - 
                                    -   /**
                                    -    * Sets the parent.
                                    -    */
                                    -   public void setParent(XMLStreamReader reader)
                                    -   {
                                    -     parent = reader;
                                    -   }
                                    - 
                                    -   /**
                                    -    * Returns the parent.
                                    -    */
                                    -   public XMLStreamReader getParent()
                                    -   {
                                    -     return parent;
                                    -   }
                                    - 
                                    -   public int next()
                                    -     throws XMLStreamException
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.next();
                                    -     throw new XMLStreamException();
                                    -   }
                                    - 
                                    -   public int nextTag()
                                    -     throws XMLStreamException
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.nextTag();
                                    -     throw new XMLStreamException();
                                    -   }
                                    - 
                                    -   public String getElementText()
                                    -     throws XMLStreamException
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getElementText();
                                    -     throw new XMLStreamException();
                                    -   }
                                    - 
                                    -   public void require(int type, String namespaceURI, String localName)
                                    -     throws XMLStreamException
                                    -   {
                                    -     if (parent != null)
                                    -       parent.require(type, namespaceURI, localName);
                                    -   }
                                    - 
                                    -   public boolean hasNext()
                                    -     throws XMLStreamException
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.hasNext();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public void close()
                                    -     throws XMLStreamException
                                    -   {
                                    -     if (parent != null)
                                    -       parent.close();
                                    -   }
                                    - 
                                    -   public String getNamespaceURI(String prefix)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getNamespaceURI(prefix);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public NamespaceContext getNamespaceContext()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getNamespaceContext();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public boolean isStartElement()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.isStartElement();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public boolean isEndElement()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.isEndElement();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public boolean isCharacters()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.isCharacters();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public boolean isWhiteSpace()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.isWhiteSpace();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public String getAttributeValue(String namespaceUri, String localName)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getAttributeValue(namespaceUri, localName);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public int getAttributeCount()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getAttributeCount();
                                    -     return 0;
                                    -   }
                                    - 
                                    -   public QName getAttributeName(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getAttributeName(index);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getAttributePrefix(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getAttributePrefix(index);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getAttributeNamespace(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getAttributeNamespace(index);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getAttributeLocalName(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getAttributeLocalName(index);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getAttributeType(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getAttributeType(index);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getAttributeValue(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getAttributeValue(index);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public boolean isAttributeSpecified(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.isAttributeSpecified(index);
                                    -     return false;
                                    -   }
                                    - 
                                    -   public int getNamespaceCount()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getNamespaceCount();
                                    -     return 0;
                                    -   }
                                    - 
                                    -   public String getNamespacePrefix(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getNamespacePrefix(index);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getNamespaceURI(int index)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getNamespaceURI(index);
                                    -     return null;
                                    -   }
                                    - 
                                    -   public int getEventType()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getEventType();
                                    -     return 0;
                                    -   }
                                    - 
                                    -   public String getText()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getText();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public int getTextCharacters(int sourceStart, char[] target,
                                    -                                int targetStart, int length)
                                    -     throws XMLStreamException
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getTextCharacters(sourceStart, target, targetStart, length);
                                    -     return 0;
                                    -   }
                                    - 
                                    -   public char[] getTextCharacters()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getTextCharacters();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public int getTextStart()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getTextStart();
                                    -     return 0;
                                    -   }
                                    - 
                                    -   public int getTextLength()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getTextLength();
                                    -     return 0;
                                    -   }
                                    - 
                                    -   public String getEncoding()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getEncoding();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public boolean hasText()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.hasText();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public Location getLocation()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getLocation();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public QName getName()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getName();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getLocalName()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getLocalName();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public boolean hasName()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.hasName();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public String getNamespaceURI()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getNamespaceURI();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getPrefix()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getPrefix();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getVersion()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getVersion();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public boolean isStandalone()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.isStandalone();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public boolean standaloneSet()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.standaloneSet();
                                    -     return false;
                                    -   }
                                    - 
                                    -   public String getCharacterEncodingScheme()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getCharacterEncodingScheme();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getPITarget()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getPITarget();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public String getPIData()
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getPIData();
                                    -     return null;
                                    -   }
                                    - 
                                    -   public Object getProperty(String name)
                                    -   {
                                    -     if (parent != null)
                                    -       return parent.getProperty(name);
                                    -     throw new IllegalArgumentException();
                                    -   }
                                    -   
                                    - }
                                    - 
                                    --- 0 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/util/StreamReaderDelegate.java gcc-4.6.0/libjava/classpath/javax/xml/stream/util/StreamReaderDelegate.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/util/StreamReaderDelegate.java	Thu Jan  1 00:00:00 1970
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/util/StreamReaderDelegate.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 0 ****
                                    --- 1,408 ----
                                    + /* StreamReaderDelegate.java --
                                    +    Copyright (C) 2005,2006,2009  Free Software Foundation, Inc.
                                    + 
                                    + This file is part of GNU Classpath.
                                    + 
                                    + GNU Classpath is free software; you can redistribute it and/or modify
                                    + it under the terms of the GNU General Public License as published by
                                    + the Free Software Foundation; either version 2, or (at your option)
                                    + any later version.
                                    + 
                                    + GNU Classpath 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 for more details.
                                    + 
                                    + You should have received a copy of the GNU General Public License
                                    + along with GNU Classpath; see the file COPYING.  If not, write to the
                                    + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                    + 02110-1301 USA.
                                    + 
                                    + Linking this library statically or dynamically with other modules is
                                    + making a combined work based on this library.  Thus, the terms and
                                    + conditions of the GNU General Public License cover the whole
                                    + combination.
                                    + 
                                    + As a special exception, the copyright holders of this library give you
                                    + permission to link this library with independent modules to produce an
                                    + executable, regardless of the license terms of these independent
                                    + modules, and to copy and distribute the resulting executable under
                                    + terms of your choice, provided that you also meet, for each linked
                                    + independent module, the terms and conditions of the license of that
                                    + module.  An independent module is a module which is not derived from
                                    + or based on this library.  If you modify this library, you may extend
                                    + this exception to your version of the library, but you are not
                                    + obligated to do so.  If you do not wish to do so, delete this
                                    + exception statement from your version. */
                                    + 
                                    + package javax.xml.stream.util;
                                    + 
                                    + import javax.xml.namespace.NamespaceContext;
                                    + import javax.xml.namespace.QName;
                                    + import javax.xml.stream.Location;
                                    + import javax.xml.stream.XMLStreamConstants;
                                    + import javax.xml.stream.XMLStreamException;
                                    + import javax.xml.stream.XMLStreamReader;
                                    + 
                                    + /**
                                    +  * Base class for XML stream reader filters.
                                    +  */
                                    + public class StreamReaderDelegate
                                    +   implements XMLStreamReader, XMLStreamConstants
                                    + {
                                    + 
                                    +   private XMLStreamReader parent;
                                    + 
                                    +   /**
                                    +    * Constructs an empty filter with no parent set.
                                    +    */
                                    +   public StreamReaderDelegate()
                                    +   {
                                    +   }
                                    + 
                                    +   /**
                                    +    * Constructs an empty filter with the specfied parent.
                                    +    */
                                    +   public StreamReaderDelegate(XMLStreamReader reader)
                                    +   {
                                    +     parent = reader;
                                    +   }
                                    + 
                                    +   /**
                                    +    * Sets the parent.
                                    +    */
                                    +   public void setParent(XMLStreamReader reader)
                                    +   {
                                    +     parent = reader;
                                    +   }
                                    + 
                                    +   /**
                                    +    * Returns the parent.
                                    +    */
                                    +   public XMLStreamReader getParent()
                                    +   {
                                    +     return parent;
                                    +   }
                                    + 
                                    +   public int next()
                                    +     throws XMLStreamException
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.next();
                                    +     throw new XMLStreamException();
                                    +   }
                                    + 
                                    +   public int nextTag()
                                    +     throws XMLStreamException
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.nextTag();
                                    +     throw new XMLStreamException();
                                    +   }
                                    + 
                                    +   public String getElementText()
                                    +     throws XMLStreamException
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getElementText();
                                    +     throw new XMLStreamException();
                                    +   }
                                    + 
                                    +   public void require(int type, String namespaceURI, String localName)
                                    +     throws XMLStreamException
                                    +   {
                                    +     if (parent != null)
                                    +       parent.require(type, namespaceURI, localName);
                                    +   }
                                    + 
                                    +   public boolean hasNext()
                                    +     throws XMLStreamException
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.hasNext();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public void close()
                                    +     throws XMLStreamException
                                    +   {
                                    +     if (parent != null)
                                    +       parent.close();
                                    +   }
                                    + 
                                    +   public String getNamespaceURI(String prefix)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getNamespaceURI(prefix);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public NamespaceContext getNamespaceContext()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getNamespaceContext();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public boolean isStartElement()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.isStartElement();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public boolean isEndElement()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.isEndElement();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public boolean isCharacters()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.isCharacters();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public boolean isWhiteSpace()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.isWhiteSpace();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public String getAttributeValue(String namespaceUri, String localName)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getAttributeValue(namespaceUri, localName);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public int getAttributeCount()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getAttributeCount();
                                    +     return 0;
                                    +   }
                                    + 
                                    +   public QName getAttributeName(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getAttributeName(index);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getAttributePrefix(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getAttributePrefix(index);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getAttributeNamespace(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getAttributeNamespace(index);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getAttributeLocalName(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getAttributeLocalName(index);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getAttributeType(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getAttributeType(index);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getAttributeValue(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getAttributeValue(index);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public boolean isAttributeSpecified(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.isAttributeSpecified(index);
                                    +     return false;
                                    +   }
                                    + 
                                    +   public int getNamespaceCount()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getNamespaceCount();
                                    +     return 0;
                                    +   }
                                    + 
                                    +   public String getNamespacePrefix(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getNamespacePrefix(index);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getNamespaceURI(int index)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getNamespaceURI(index);
                                    +     return null;
                                    +   }
                                    + 
                                    +   public int getEventType()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getEventType();
                                    +     return 0;
                                    +   }
                                    + 
                                    +   public String getText()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getText();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public int getTextCharacters(int sourceStart, char[] target,
                                    +                                int targetStart, int length)
                                    +     throws XMLStreamException
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getTextCharacters(sourceStart, target, targetStart, length);
                                    +     return 0;
                                    +   }
                                    + 
                                    +   public char[] getTextCharacters()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getTextCharacters();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public int getTextStart()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getTextStart();
                                    +     return 0;
                                    +   }
                                    + 
                                    +   public int getTextLength()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getTextLength();
                                    +     return 0;
                                    +   }
                                    + 
                                    +   public String getEncoding()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getEncoding();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public boolean hasText()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.hasText();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public Location getLocation()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getLocation();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public QName getName()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getName();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getLocalName()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getLocalName();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public boolean hasName()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.hasName();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public String getNamespaceURI()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getNamespaceURI();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getPrefix()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getPrefix();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getVersion()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getVersion();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public boolean isStandalone()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.isStandalone();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public boolean standaloneSet()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.standaloneSet();
                                    +     return false;
                                    +   }
                                    + 
                                    +   public String getCharacterEncodingScheme()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getCharacterEncodingScheme();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getPITarget()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getPITarget();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public String getPIData()
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getPIData();
                                    +     return null;
                                    +   }
                                    + 
                                    +   public Object getProperty(String name)
                                    +   {
                                    +     if (parent != null)
                                    +       return parent.getProperty(name);
                                    +     throw new IllegalArgumentException();
                                    +   }
                                    + 
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/util/XMLEventAllocator.java gcc-4.6.0/libjava/classpath/javax/xml/stream/util/XMLEventAllocator.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/util/XMLEventAllocator.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/util/XMLEventAllocator.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLEventAllocator.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLEventAllocator.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLEventAllocator
                                    *** 51,57 ****
                                         * Creates a new allocator.
                                         */
                                        XMLEventAllocator newInstance();
                                    !   
                                        /**
                                         * Allocates an event based on the current state of the stream reader.
                                         */
                                    --- 51,57 ----
                                         * Creates a new allocator.
                                         */
                                        XMLEventAllocator newInstance();
                                    ! 
                                        /**
                                         * Allocates an event based on the current state of the stream reader.
                                         */
                                    *************** public interface XMLEventAllocator
                                    *** 64,69 ****
                                         */
                                        void allocate(XMLStreamReader reader, XMLEventConsumer consumer)
                                          throws XMLStreamException;
                                    -   
                                    - }
                                      
                                    --- 64,68 ----
                                         */
                                        void allocate(XMLStreamReader reader, XMLEventConsumer consumer)
                                          throws XMLStreamException;
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/stream/util/XMLEventConsumer.java gcc-4.6.0/libjava/classpath/javax/xml/stream/util/XMLEventConsumer.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/stream/util/XMLEventConsumer.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/stream/util/XMLEventConsumer.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XMLEventConsumer.java -- 
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XMLEventConsumer.java --
                                         Copyright (C) 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XMLEventConsumer
                                    *** 51,56 ****
                                         */
                                        void add(XMLEvent event)
                                          throws XMLStreamException;
                                    -   
                                    - }
                                      
                                    --- 51,55 ----
                                         */
                                        void add(XMLEvent event)
                                          throws XMLStreamException;
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/ErrorListener.java gcc-4.6.0/libjava/classpath/javax/xml/transform/ErrorListener.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/ErrorListener.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/ErrorListener.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* ErrorListener.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* ErrorListener.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/OutputKeys.java gcc-4.6.0/libjava/classpath/javax/xml/transform/OutputKeys.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/OutputKeys.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/OutputKeys.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* OutputKeys.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* OutputKeys.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package javax.xml.transform;
                                    *** 39,45 ****
                                      
                                      /**
                                       * Constants for XSLT output attributes.
                                    !  * 
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public class OutputKeys
                                    --- 39,45 ----
                                      
                                      /**
                                       * Constants for XSLT output attributes.
                                    !  *
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public class OutputKeys
                                    *************** public class OutputKeys
                                    *** 49,101 ****
                                         * The output method (xml, html, or text).
                                         */
                                        public static final String METHOD = "method";
                                    !   
                                        /**
                                         * The version of the output method.
                                         */
                                        public static final String VERSION = "version";
                                    !   
                                        /**
                                         * The preferred output character encoding.
                                         */
                                        public static final String ENCODING = "encoding";
                                    !   
                                        /**
                                         * Whether not to output an XML declaration (yes or no).
                                         */
                                        public static final String OMIT_XML_DECLARATION = "omit-xml-declaration";
                                    !   
                                        /**
                                         * Whether to output a standalone document declaration (yes or no).
                                         */
                                        public static final String STANDALONE = "standalone";
                                    !  
                                         /**
                                         * The public ID to output in the doctype declaration.
                                         */
                                        public static final String DOCTYPE_PUBLIC = "doctype-public";
                                    !   
                                        /**
                                         * The system ID to output in the doctype declaration.
                                         */
                                        public static final String DOCTYPE_SYSTEM = "doctype-system";
                                    !   
                                        /**
                                         * Whitespace-separated list of element names for which text children
                                         * should be output as CDATA sections.
                                         */
                                        public static final String CDATA_SECTION_ELEMENTS = "cdata-section-elements";
                                    !   
                                        /**
                                         * Whether to indent the result tree (yes or no).
                                         */
                                        public static final String INDENT = "indent";
                                    !   
                                        /**
                                         * The MIME content type of the output data.
                                         */
                                        public static final String MEDIA_TYPE = "media-type";
                                    !   
                                        private OutputKeys()
                                        {
                                        }
                                    --- 49,101 ----
                                         * The output method (xml, html, or text).
                                         */
                                        public static final String METHOD = "method";
                                    ! 
                                        /**
                                         * The version of the output method.
                                         */
                                        public static final String VERSION = "version";
                                    ! 
                                        /**
                                         * The preferred output character encoding.
                                         */
                                        public static final String ENCODING = "encoding";
                                    ! 
                                        /**
                                         * Whether not to output an XML declaration (yes or no).
                                         */
                                        public static final String OMIT_XML_DECLARATION = "omit-xml-declaration";
                                    ! 
                                        /**
                                         * Whether to output a standalone document declaration (yes or no).
                                         */
                                        public static final String STANDALONE = "standalone";
                                    ! 
                                         /**
                                         * The public ID to output in the doctype declaration.
                                         */
                                        public static final String DOCTYPE_PUBLIC = "doctype-public";
                                    ! 
                                        /**
                                         * The system ID to output in the doctype declaration.
                                         */
                                        public static final String DOCTYPE_SYSTEM = "doctype-system";
                                    ! 
                                        /**
                                         * Whitespace-separated list of element names for which text children
                                         * should be output as CDATA sections.
                                         */
                                        public static final String CDATA_SECTION_ELEMENTS = "cdata-section-elements";
                                    ! 
                                        /**
                                         * Whether to indent the result tree (yes or no).
                                         */
                                        public static final String INDENT = "indent";
                                    ! 
                                        /**
                                         * The MIME content type of the output data.
                                         */
                                        public static final String MEDIA_TYPE = "media-type";
                                    ! 
                                        private OutputKeys()
                                        {
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/Result.java gcc-4.6.0/libjava/classpath/javax/xml/transform/Result.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/Result.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/Result.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Result.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Result.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package javax.xml.transform;
                                    *** 38,44 ****
                                      
                                      /**
                                       * The result of an XSL transformation.
                                    !  * 
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public interface Result
                                    --- 38,44 ----
                                      
                                      /**
                                       * The result of an XSL transformation.
                                    !  *
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public interface Result
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/Source.java gcc-4.6.0/libjava/classpath/javax/xml/transform/Source.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/Source.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/Source.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Source.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Source.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/SourceLocator.java gcc-4.6.0/libjava/classpath/javax/xml/transform/SourceLocator.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/SourceLocator.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/SourceLocator.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SourceLocator.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SourceLocator.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package javax.xml.transform;
                                    *** 39,45 ****
                                      /**
                                       * The location in an XML resource at which an event occurred.
                                       * Tis is equivalent to the SAX Locator.
                                    !  * 
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public interface SourceLocator
                                    --- 39,45 ----
                                      /**
                                       * The location in an XML resource at which an event occurred.
                                       * Tis is equivalent to the SAX Locator.
                                    !  *
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public interface SourceLocator
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/Templates.java gcc-4.6.0/libjava/classpath/javax/xml/transform/Templates.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/Templates.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/Templates.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Templates.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Templates.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** import java.util.Properties;
                                    *** 42,48 ****
                                      /**
                                       * A compiled, reusable XSL transformation.
                                       * Implementations of this class are guaranteed to be thread safe.
                                    !  * 
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public interface Templates
                                    --- 42,48 ----
                                      /**
                                       * A compiled, reusable XSL transformation.
                                       * Implementations of this class are guaranteed to be thread safe.
                                    !  *
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public interface Templates
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/Transformer.java gcc-4.6.0/libjava/classpath/javax/xml/transform/Transformer.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/Transformer.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/Transformer.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Transformer.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Transformer.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class Transformer
                                    *** 58,66 ****
                                         * @param xmlSource the XML source
                                         * @param outputTarget the result of the transformation
                                         */
                                    !   public abstract void transform(Source xmlSource, Result outputTarget) 
                                          throws TransformerException;
                                    !   
                                        /**
                                         * Sets a parameter value for the transformation.
                                         * Parameters may be referenced in the XSLT stylesheet.
                                    --- 58,66 ----
                                         * @param xmlSource the XML source
                                         * @param outputTarget the result of the transformation
                                         */
                                    !   public abstract void transform(Source xmlSource, Result outputTarget)
                                          throws TransformerException;
                                    ! 
                                        /**
                                         * Sets a parameter value for the transformation.
                                         * Parameters may be referenced in the XSLT stylesheet.
                                    *************** public abstract class Transformer
                                    *** 104,110 ****
                                         * @param oformat a set of output properties, or null to reset all the
                                         * properties to their default values
                                         */
                                    !   public abstract void setOutputProperties(Properties oformat) 
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    --- 104,110 ----
                                         * @param oformat a set of output properties, or null to reset all the
                                         * properties to their default values
                                         */
                                    !   public abstract void setOutputProperties(Properties oformat)
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    *************** public abstract class Transformer
                                    *** 125,131 ****
                                         * @param value the string value of the property
                                         * @exception IllegalArgumentException if the property is not supported
                                         */
                                    !   public abstract void setOutputProperty(String name, String value) 
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    --- 125,131 ----
                                         * @param value the string value of the property
                                         * @exception IllegalArgumentException if the property is not supported
                                         */
                                    !   public abstract void setOutputProperty(String name, String value)
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    *************** public abstract class Transformer
                                    *** 136,142 ****
                                         * XML Name of the form <code>{<i>namespaceURI</i>}<i>localName</i></code>
                                         * @exception IllegalArgumentException if the property is not supported
                                         */
                                    !   public abstract String getOutputProperty(String name) 
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    --- 136,142 ----
                                         * XML Name of the form <code>{<i>namespaceURI</i>}<i>localName</i></code>
                                         * @exception IllegalArgumentException if the property is not supported
                                         */
                                    !   public abstract String getOutputProperty(String name)
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    *************** public abstract class Transformer
                                    *** 145,151 ****
                                         */
                                        public abstract void setErrorListener(ErrorListener listener)
                                          throws IllegalArgumentException;
                                    !   
                                        /**
                                         * Returns the callback used to report errors during the transformation.
                                         */
                                    --- 145,151 ----
                                         */
                                        public abstract void setErrorListener(ErrorListener listener)
                                          throws IllegalArgumentException;
                                    ! 
                                        /**
                                         * Returns the callback used to report errors during the transformation.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/TransformerConfigurationException.java gcc-4.6.0/libjava/classpath/javax/xml/transform/TransformerConfigurationException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/TransformerConfigurationException.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/TransformerConfigurationException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* TransformerConfigurationException.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* TransformerConfigurationException.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class TransformerConfigurationExc
                                    *** 96,101 ****
                                                                                 Throwable e)
                                        {
                                          super(message, locator, e);
                                    !   }  
                                      
                                      }
                                    --- 96,101 ----
                                                                                 Throwable e)
                                        {
                                          super(message, locator, e);
                                    !   }
                                      
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/TransformerException.java gcc-4.6.0/libjava/classpath/javax/xml/transform/TransformerException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/TransformerException.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/TransformerException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* TransformerException.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* TransformerException.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class TransformerException
                                    *** 91,97 ****
                                        /**
                                         * Constructor with detail message, locator and underlying cause.
                                         */
                                    !   public TransformerException(String msg, SourceLocator locator, 
                                                                    Throwable cause)
                                        {
                                          super(msg);
                                    --- 91,97 ----
                                        /**
                                         * Constructor with detail message, locator and underlying cause.
                                         */
                                    !   public TransformerException(String msg, SourceLocator locator,
                                                                    Throwable cause)
                                        {
                                          super(msg);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/TransformerFactory.java gcc-4.6.0/libjava/classpath/javax/xml/transform/TransformerFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/TransformerFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/TransformerFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* TransformerFactory.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* TransformerFactory.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class TransformerFactory
                                    *** 72,78 ****
                                         * <li>the default factory class</li>
                                         * </ol>
                                         */
                                    !   public static TransformerFactory newInstance() 
                                          throws TransformerFactoryConfigurationError
                                        {
                                          ClassLoader loader = Thread.currentThread().getContextClassLoader();
                                    --- 72,78 ----
                                         * <li>the default factory class</li>
                                         * </ol>
                                         */
                                    !   public static TransformerFactory newInstance()
                                          throws TransformerFactoryConfigurationError
                                        {
                                          ClassLoader loader = Thread.currentThread().getContextClassLoader();
                                    *************** public abstract class TransformerFactory
                                    *** 98,107 ****
                                                      className = null;
                                                    }
                                                  catch (Exception e)
                                    !               { 
                                                      throw new TransformerFactoryConfigurationError(e,
                                                          "error instantiating class " + className);
                                    !               } 
                                                }
                                            }
                                          while (className == null && count < 3);
                                    --- 98,107 ----
                                                      className = null;
                                                    }
                                                  catch (Exception e)
                                    !               {
                                                      throw new TransformerFactoryConfigurationError(e,
                                                          "error instantiating class " + className);
                                    !               }
                                                }
                                            }
                                          while (className == null && count < 3);
                                    *************** public abstract class TransformerFactory
                                    *** 116,122 ****
                                              throw new TransformerFactoryConfigurationError(e);
                                            }
                                        }
                                    !   
                                        private static String getFactoryClassName(ClassLoader loader, int attempt)
                                        {
                                          final String propertyName = "javax.xml.transform.TransformerFactory";
                                    --- 116,122 ----
                                              throw new TransformerFactoryConfigurationError(e);
                                            }
                                        }
                                    ! 
                                        private static String getFactoryClassName(ClassLoader loader, int attempt)
                                        {
                                          final String propertyName = "javax.xml.transform.TransformerFactory";
                                    *************** public abstract class TransformerFactory
                                    *** 140,146 ****
                                                  {
                                                    return null;
                                                  }
                                    !         case 2: 
                                                try
                                                  {
                                                    String serviceKey = "/META-INF/services/" + propertyName;
                                    --- 140,146 ----
                                                  {
                                                    return null;
                                                  }
                                    !         case 2:
                                                try
                                                  {
                                                    String serviceKey = "/META-INF/services/" + propertyName;
                                    *************** public abstract class TransformerFactory
                                    *** 164,182 ****
                                                return null;
                                            }
                                        }
                                    !   
                                        /**
                                         * Creates a new transformer using the specified stylesheet.
                                         * @param source the source of an <a href='http://www.w3.org/TR/xslt'>XSLT
                                         * stylesheet</a> specifying the transformation to apply
                                         */
                                    !   public abstract Transformer newTransformer(Source source) 
                                          throws TransformerConfigurationException;
                                      
                                        /**
                                         * Creates a new transformer that applies the identity transform.
                                         */
                                    !   public abstract Transformer newTransformer() 
                                          throws TransformerConfigurationException;
                                      
                                        /**
                                    --- 164,182 ----
                                                return null;
                                            }
                                        }
                                    ! 
                                        /**
                                         * Creates a new transformer using the specified stylesheet.
                                         * @param source the source of an <a href='http://www.w3.org/TR/xslt'>XSLT
                                         * stylesheet</a> specifying the transformation to apply
                                         */
                                    !   public abstract Transformer newTransformer(Source source)
                                          throws TransformerConfigurationException;
                                      
                                        /**
                                         * Creates a new transformer that applies the identity transform.
                                         */
                                    !   public abstract Transformer newTransformer()
                                          throws TransformerConfigurationException;
                                      
                                        /**
                                    *************** public abstract class TransformerFactory
                                    *** 184,190 ****
                                         * @param source the source of an <a href='http://www.w3.org/TR/xslt'>XSLT
                                         * stylesheet</a> specifying the transformation to apply
                                         */
                                    !   public abstract Templates newTemplates(Source source) 
                                          throws TransformerConfigurationException;
                                      
                                        /**
                                    --- 184,190 ----
                                         * @param source the source of an <a href='http://www.w3.org/TR/xslt'>XSLT
                                         * stylesheet</a> specifying the transformation to apply
                                         */
                                    !   public abstract Templates newTemplates(Source source)
                                          throws TransformerConfigurationException;
                                      
                                        /**
                                    *************** public abstract class TransformerFactory
                                    *** 201,210 ****
                                         * @param charset the charset attribute to match, or <code>null</code> to
                                         * match any
                                         */
                                    !   public abstract Source getAssociatedStylesheet(Source source, 
                                                                                       String media,
                                                                                       String title,
                                    !                                                  String charset) 
                                          throws TransformerConfigurationException;
                                      
                                        /**
                                    --- 201,210 ----
                                         * @param charset the charset attribute to match, or <code>null</code> to
                                         * match any
                                         */
                                    !   public abstract Source getAssociatedStylesheet(Source source,
                                                                                       String media,
                                                                                       String title,
                                    !                                                  String charset)
                                          throws TransformerConfigurationException;
                                      
                                        /**
                                    *************** public abstract class TransformerFactory
                                    *** 265,278 ****
                                         * @param name the attribute name
                                         * @exception IllegalArgumentException if the attribute is not supported
                                         */
                                    !   public abstract Object getAttribute(String name) 
                                          throws IllegalArgumentException;
                                      
                                        /**
                                         * Sets the callback to be used by transformers obtained from this factory
                                         * to report transformation errors.
                                         */
                                    !   public abstract void setErrorListener(ErrorListener listener) 
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    --- 265,278 ----
                                         * @param name the attribute name
                                         * @exception IllegalArgumentException if the attribute is not supported
                                         */
                                    !   public abstract Object getAttribute(String name)
                                          throws IllegalArgumentException;
                                      
                                        /**
                                         * Sets the callback to be used by transformers obtained from this factory
                                         * to report transformation errors.
                                         */
                                    !   public abstract void setErrorListener(ErrorListener listener)
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/TransformerFactoryConfigurationError.java gcc-4.6.0/libjava/classpath/javax/xml/transform/TransformerFactoryConfigurationError.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/TransformerFactoryConfigurationError.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/TransformerFactoryConfigurationError.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* TransformerFactoryConfigurationError.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* TransformerFactoryConfigurationError.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class TransformerFactoryConfigura
                                    *** 45,51 ****
                                        extends Error
                                      {
                                        private static final long serialVersionUID = -6527718720676281516L;
                                    !   
                                        // Name is fixed by the serialization spec.
                                        private final Exception  exception;
                                      
                                    --- 45,51 ----
                                        extends Error
                                      {
                                        private static final long serialVersionUID = -6527718720676281516L;
                                    ! 
                                        // Name is fixed by the serialization spec.
                                        private final Exception  exception;
                                      
                                    *************** public class TransformerFactoryConfigura
                                    *** 102,106 ****
                                        {
                                          return exception;
                                        }
                                    !   
                                      }
                                    --- 102,106 ----
                                        {
                                          return exception;
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/URIResolver.java gcc-4.6.0/libjava/classpath/javax/xml/transform/URIResolver.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/URIResolver.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/URIResolver.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* URIResolver.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* URIResolver.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package javax.xml.transform;
                                    *** 39,45 ****
                                      /**
                                       * Callback that can resolve a URI into source XML for transformation.
                                       * Equivalent to the SAX EntityResolver.
                                    !  * 
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public interface URIResolver
                                    --- 39,45 ----
                                      /**
                                       * Callback that can resolve a URI into source XML for transformation.
                                       * Equivalent to the SAX EntityResolver.
                                    !  *
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public interface URIResolver
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/dom/DOMLocator.java gcc-4.6.0/libjava/classpath/javax/xml/transform/dom/DOMLocator.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/dom/DOMLocator.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/dom/DOMLocator.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DOMLocator.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DOMLocator.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/dom/DOMResult.java gcc-4.6.0/libjava/classpath/javax/xml/transform/dom/DOMResult.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/dom/DOMResult.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/dom/DOMResult.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DOMResult.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DOMResult.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class DOMResult
                                    *** 87,93 ****
                                        {
                                          this(node, nextSibling, null);
                                        }
                                    !   
                                        /**
                                         * Constructor with the node to append to and the system ID.
                                         */
                                    --- 87,93 ----
                                        {
                                          this(node, nextSibling, null);
                                        }
                                    ! 
                                        /**
                                         * Constructor with the node to append to and the system ID.
                                         */
                                    *************** public class DOMResult
                                    *** 95,101 ****
                                        {
                                          this(node, null, systemID);
                                        }
                                    !   
                                        /**
                                         * Constructor with the node to append to, the child node before which
                                         * the result should be appended, and the system ID.
                                    --- 95,101 ----
                                        {
                                          this(node, null, systemID);
                                        }
                                    ! 
                                        /**
                                         * Constructor with the node to append to, the child node before which
                                         * the result should be appended, and the system ID.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/dom/DOMSource.java gcc-4.6.0/libjava/classpath/javax/xml/transform/dom/DOMSource.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/dom/DOMSource.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/dom/DOMSource.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* DOMSource.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* DOMSource.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** import org.w3c.dom.Node;
                                    *** 42,48 ****
                                      
                                      /**
                                       * An XML source specified as a W3C DOM node context.
                                    !  * 
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public class DOMSource
                                    --- 42,48 ----
                                      
                                      /**
                                       * An XML source specified as a W3C DOM node context.
                                    !  *
                                       * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
                                       */
                                      public class DOMSource
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/SAXResult.java gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/SAXResult.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/SAXResult.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/SAXResult.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SAXResult.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SAXResult.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** import org.xml.sax.ext.LexicalHandler;
                                    *** 49,55 ****
                                       */
                                      public class SAXResult implements Result
                                      {
                                    !   
                                        /**
                                         * Factory feature indicating that SAX results are supported.
                                         */
                                    --- 49,55 ----
                                       */
                                      public class SAXResult implements Result
                                      {
                                    ! 
                                        /**
                                         * Factory feature indicating that SAX results are supported.
                                         */
                                    *************** public class SAXResult implements Result
                                    *** 102,108 ****
                                        {
                                          lexicalHandler = handler;
                                        }
                                    !   
                                        /**
                                         * Returns the lexical handler to which lexical events will be propagated.
                                         * If a lexical handler is not set, the transformer should attempt to cast
                                    --- 102,108 ----
                                        {
                                          lexicalHandler = handler;
                                        }
                                    ! 
                                        /**
                                         * Returns the lexical handler to which lexical events will be propagated.
                                         * If a lexical handler is not set, the transformer should attempt to cast
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/SAXSource.java gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/SAXSource.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/SAXSource.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/SAXSource.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SAXSource.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SAXSource.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/SAXTransformerFactory.java gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/SAXTransformerFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/SAXTransformerFactory.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/SAXTransformerFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SAXTransformerFactory.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SAXTransformerFactory.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/TemplatesHandler.java gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/TemplatesHandler.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/TemplatesHandler.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/TemplatesHandler.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* TemplatesHandler.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* TemplatesHandler.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/TransformerHandler.java gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/TransformerHandler.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/sax/TransformerHandler.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/sax/TransformerHandler.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* TransformerHandler.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* TransformerHandler.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** import org.xml.sax.ext.LexicalHandler;
                                    *** 51,62 ****
                                      public interface TransformerHandler
                                        extends ContentHandler, LexicalHandler, DTDHandler
                                      {
                                    !   
                                        /**
                                         * Sets the result sink to be used as the output of the transformation.
                                         * @exception IllegalArgumentException if the result is not a valid target
                                         */
                                    !   public void setResult(Result result) 
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    --- 51,62 ----
                                      public interface TransformerHandler
                                        extends ContentHandler, LexicalHandler, DTDHandler
                                      {
                                    ! 
                                        /**
                                         * Sets the result sink to be used as the output of the transformation.
                                         * @exception IllegalArgumentException if the result is not a valid target
                                         */
                                    !   public void setResult(Result result)
                                          throws IllegalArgumentException;
                                      
                                        /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/stream/StreamResult.java gcc-4.6.0/libjava/classpath/javax/xml/transform/stream/StreamResult.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/stream/StreamResult.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/stream/StreamResult.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* StreamResult.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* StreamResult.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/transform/stream/StreamSource.java gcc-4.6.0/libjava/classpath/javax/xml/transform/stream/StreamSource.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/transform/stream/StreamSource.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/transform/stream/StreamSource.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* StreamSource.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* StreamSource.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/validation/Schema.java gcc-4.6.0/libjava/classpath/javax/xml/validation/Schema.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/validation/Schema.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/validation/Schema.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Schema.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Schema.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class Schema
                                    *** 57,61 ****
                                        public abstract Validator newValidator();
                                      
                                        public abstract ValidatorHandler newValidatorHandler();
                                    !   
                                      }
                                    --- 57,61 ----
                                        public abstract Validator newValidator();
                                      
                                        public abstract ValidatorHandler newValidatorHandler();
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/validation/SchemaFactory.java gcc-4.6.0/libjava/classpath/javax/xml/validation/SchemaFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/validation/SchemaFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/validation/SchemaFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SchemaFactory.java -- 
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SchemaFactory.java --
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class SchemaFactory
                                    *** 188,220 ****
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public void setFeature(String name, boolean value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public Object getProperty(String name)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public void setProperty(String name, Object value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public abstract ErrorHandler getErrorHandler();
                                    !   
                                        public abstract void setErrorHandler(ErrorHandler errorHandler);
                                      
                                        public abstract LSResourceResolver getResourceResolver();
                                      
                                        public abstract void setResourceResolver(LSResourceResolver resourceResolver);
                                    !   
                                        /**
                                         * Returns a schema based on the specified source resource.
                                         * @param schema the source resource
                                    --- 188,220 ----
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public void setFeature(String name, boolean value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public Object getProperty(String name)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public void setProperty(String name, Object value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public abstract ErrorHandler getErrorHandler();
                                    ! 
                                        public abstract void setErrorHandler(ErrorHandler errorHandler);
                                      
                                        public abstract LSResourceResolver getResourceResolver();
                                      
                                        public abstract void setResourceResolver(LSResourceResolver resourceResolver);
                                    ! 
                                        /**
                                         * Returns a schema based on the specified source resource.
                                         * @param schema the source resource
                                    *************** public abstract class SchemaFactory
                                    *** 234,240 ****
                                        {
                                          return newSchema(new StreamSource(schema));
                                        }
                                    !   
                                        /**
                                         * Returns a schema based on the specified URL.
                                         * @param schema the source resource
                                    --- 234,240 ----
                                        {
                                          return newSchema(new StreamSource(schema));
                                        }
                                    ! 
                                        /**
                                         * Returns a schema based on the specified URL.
                                         * @param schema the source resource
                                    *************** public abstract class SchemaFactory
                                    *** 244,250 ****
                                        {
                                          return newSchema(new StreamSource(schema.toString()));
                                        }
                                    !   
                                        /**
                                         * Parses the specified sources, and combine them into a single schema.
                                         * The exact procedure and semantics of this depends on the schema
                                    --- 244,250 ----
                                        {
                                          return newSchema(new StreamSource(schema.toString()));
                                        }
                                    ! 
                                        /**
                                         * Parses the specified sources, and combine them into a single schema.
                                         * The exact procedure and semantics of this depends on the schema
                                    *************** public abstract class SchemaFactory
                                    *** 253,264 ****
                                         */
                                        public abstract Schema newSchema(Source[] schemata)
                                          throws SAXException;
                                    !   
                                        /**
                                         * Creates a special schema.
                                         * The exact semantics of this depends on the schema language.
                                         */
                                        public abstract Schema newSchema()
                                          throws SAXException;
                                    !   
                                      }
                                    --- 253,264 ----
                                         */
                                        public abstract Schema newSchema(Source[] schemata)
                                          throws SAXException;
                                    ! 
                                        /**
                                         * Creates a special schema.
                                         * The exact semantics of this depends on the schema language.
                                         */
                                        public abstract Schema newSchema()
                                          throws SAXException;
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/validation/SchemaFactoryLoader.java gcc-4.6.0/libjava/classpath/javax/xml/validation/SchemaFactoryLoader.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/validation/SchemaFactoryLoader.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/validation/SchemaFactoryLoader.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* SchemaFactory.java -- 
                                         Copyright (C) 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* SchemaFactory.java --
                                         Copyright (C) 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class SchemaFactoryLoade
                                    *** 48,52 ****
                                        }
                                      
                                        public abstract SchemaFactory newFactory(String schemaLanguage);
                                    !   
                                      }
                                    --- 48,52 ----
                                        }
                                      
                                        public abstract SchemaFactory newFactory(String schemaLanguage);
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/validation/TypeInfoProvider.java gcc-4.6.0/libjava/classpath/javax/xml/validation/TypeInfoProvider.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/validation/TypeInfoProvider.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/validation/TypeInfoProvider.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* TypeInfoProvider.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* TypeInfoProvider.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class TypeInfoProvider
                                    *** 79,83 ****
                                         * the startElement callback
                                         */
                                        public abstract boolean isSpecified(int index);
                                    !   
                                      }
                                    --- 79,83 ----
                                         * the startElement callback
                                         */
                                        public abstract boolean isSpecified(int index);
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/validation/Validator.java gcc-4.6.0/libjava/classpath/javax/xml/validation/Validator.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/validation/Validator.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/validation/Validator.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Validator.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* Validator.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class Validator
                                    *** 81,87 ****
                                         */
                                        public abstract void validate(Source source, Result result)
                                          throws SAXException, IOException;
                                    !   
                                        public abstract void setErrorHandler(ErrorHandler errorHandler);
                                      
                                        public abstract ErrorHandler getErrorHandler();
                                    --- 81,87 ----
                                         */
                                        public abstract void validate(Source source, Result result)
                                          throws SAXException, IOException;
                                    ! 
                                        public abstract void setErrorHandler(ErrorHandler errorHandler);
                                      
                                        public abstract ErrorHandler getErrorHandler();
                                    *************** public abstract class Validator
                                    *** 95,117 ****
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public void setFeature(String name, boolean value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public Object getProperty(String name)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public void setProperty(String name, Object value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                      }
                                    --- 95,117 ----
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public void setFeature(String name, boolean value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public Object getProperty(String name)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public void setProperty(String name, Object value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/validation/ValidatorHandler.java gcc-4.6.0/libjava/classpath/javax/xml/validation/ValidatorHandler.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/validation/ValidatorHandler.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/validation/ValidatorHandler.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* ValidatorHandler.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* ValidatorHandler.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class ValidatorHandler
                                    *** 73,79 ****
                                        public abstract void setErrorHandler(ErrorHandler errorHandler);
                                      
                                        public abstract ErrorHandler getErrorHandler();
                                    !   
                                        public abstract void setResourceResolver(LSResourceResolver resourceResolver);
                                      
                                        public abstract LSResourceResolver getResourceResolver();
                                    --- 73,79 ----
                                        public abstract void setErrorHandler(ErrorHandler errorHandler);
                                      
                                        public abstract ErrorHandler getErrorHandler();
                                    ! 
                                        public abstract void setResourceResolver(LSResourceResolver resourceResolver);
                                      
                                        public abstract LSResourceResolver getResourceResolver();
                                    *************** public abstract class ValidatorHandler
                                    *** 89,95 ****
                                            }
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public void setFeature(String name, boolean value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                    --- 89,95 ----
                                            }
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public void setFeature(String name, boolean value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                    *************** public abstract class ValidatorHandler
                                    *** 99,115 ****
                                            }
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public Object getProperty(String name)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !   
                                        public void setProperty(String name, Object value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    !     
                                      }
                                    --- 99,115 ----
                                            }
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public Object getProperty(String name)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                        public void setProperty(String name, Object value)
                                          throws SAXNotRecognizedException, SAXNotSupportedException
                                        {
                                          throw new SAXNotRecognizedException(name);
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPath.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPath.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPath.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPath.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPath.java -- 
                                         Copyright (C) 2004 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPath.java --
                                         Copyright (C) 2004 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XPath
                                    *** 111,115 ****
                                        String evaluate(String expression,
                                                        InputSource source)
                                          throws XPathExpressionException;
                                    !   
                                      }
                                    --- 111,115 ----
                                        String evaluate(String expression,
                                                        InputSource source)
                                          throws XPathExpressionException;
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathConstants.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathConstants.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathConstants.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathConstants.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathConstants.java -- 
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathConstants.java --
                                         Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class XPathConstants
                                    *** 57,81 ****
                                         */
                                        public static final QName NUMBER =
                                          new QName("http://java.sun.com/jaxp/xpath/dom#number", "");
                                    !   
                                        /**
                                         * The XPath 1.0 string data type.
                                         */
                                        public static final QName STRING =
                                          new QName("http://java.sun.com/jaxp/xpath/dom#string", "");
                                    !   
                                        /**
                                         * The XPath 1.0 boolean data type.
                                         */
                                        public static final QName BOOLEAN =
                                          new QName("http://java.sun.com/jaxp/xpath/dom#boolean", "");
                                    !   
                                        /**
                                         * The XPath 1.0 node-set data type.
                                         */
                                        public static final QName NODESET =
                                          new QName("http://java.sun.com/jaxp/xpath/dom#node-set", "");
                                    !   
                                        /**
                                         * The XPath 1.0 node data type.
                                         */
                                    --- 57,81 ----
                                         */
                                        public static final QName NUMBER =
                                          new QName("http://java.sun.com/jaxp/xpath/dom#number", "");
                                    ! 
                                        /**
                                         * The XPath 1.0 string data type.
                                         */
                                        public static final QName STRING =
                                          new QName("http://java.sun.com/jaxp/xpath/dom#string", "");
                                    ! 
                                        /**
                                         * The XPath 1.0 boolean data type.
                                         */
                                        public static final QName BOOLEAN =
                                          new QName("http://java.sun.com/jaxp/xpath/dom#boolean", "");
                                    ! 
                                        /**
                                         * The XPath 1.0 node-set data type.
                                         */
                                        public static final QName NODESET =
                                          new QName("http://java.sun.com/jaxp/xpath/dom#node-set", "");
                                    ! 
                                        /**
                                         * The XPath 1.0 node data type.
                                         */
                                    *************** public class XPathConstants
                                    *** 87,91 ****
                                         */
                                        public static final String DOM_OBJECT_MODEL =
                                          "http://java.sun.com/jaxp/xpath/dom";
                                    !   
                                      }
                                    --- 87,91 ----
                                         */
                                        public static final String DOM_OBJECT_MODEL =
                                          "http://java.sun.com/jaxp/xpath/dom";
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathException.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathException.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathException.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathException.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public class XPathException
                                    *** 58,64 ****
                                        {
                                          super(message);
                                        }
                                    !   
                                        public XPathException(Throwable cause)
                                        {
                                          super(cause);
                                    --- 58,64 ----
                                        {
                                          super(message);
                                        }
                                    ! 
                                        public XPathException(Throwable cause)
                                        {
                                          super(cause);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathExpression.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathExpression.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathExpression.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathExpression.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathExpression.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathExpression.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathExpressionException.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathExpressionException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathExpressionException.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathExpressionException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathExpressionException.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathExpressionException.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFactory.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFactory.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFactory.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFactory.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathFactory.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathFactory.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public abstract class XPathFactory
                                    *** 58,64 ****
                                         * The default property name according to the JAXP specification.
                                         */
                                        public static final String DEFAULT_PROPERTY_NAME =
                                    ! 	 	"javax.xml.xpath.XPathFactory";
                                      
                                        /**
                                         * The default object model URI.
                                    --- 58,64 ----
                                         * The default property name according to the JAXP specification.
                                         */
                                        public static final String DEFAULT_PROPERTY_NAME =
                                    !                 "javax.xml.xpath.XPathFactory";
                                      
                                        /**
                                         * The default object model URI.
                                    *************** public abstract class XPathFactory
                                    *** 223,227 ****
                                         * Returns a new XPath evaluation environment.
                                         */
                                        public abstract XPath newXPath();
                                    !   
                                      }
                                    --- 223,227 ----
                                         * Returns a new XPath evaluation environment.
                                         */
                                        public abstract XPath newXPath();
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFactoryConfigurationException.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFactoryConfigurationException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFactoryConfigurationException.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFactoryConfigurationException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathFactoryConfigurationException.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathFactoryConfigurationException.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFunction.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFunction.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFunction.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFunction.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathFunction.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathFunction.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XPathFunction
                                    *** 55,59 ****
                                        @SuppressWarnings("unchecked")
                                        Object evaluate(List args)
                                          throws XPathFunctionException;
                                    !   
                                      }
                                    --- 55,59 ----
                                        @SuppressWarnings("unchecked")
                                        Object evaluate(List args)
                                          throws XPathFunctionException;
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFunctionException.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFunctionException.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFunctionException.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFunctionException.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathFunctionException.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathFunctionException.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFunctionResolver.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFunctionResolver.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathFunctionResolver.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathFunctionResolver.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathFunctionResolver.java -- 
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathFunctionResolver.java --
                                         Copyright (C) 2004, 2005  Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XPathFunctionResolver
                                    *** 55,59 ****
                                         */
                                        XPathFunction resolveFunction(QName functionName,
                                                                      int arity);
                                    !   
                                      }
                                    --- 55,59 ----
                                         */
                                        XPathFunction resolveFunction(QName functionName,
                                                                      int arity);
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathVariableResolver.java gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathVariableResolver.java
                                    *** gcc-4.5.2/libjava/classpath/javax/xml/xpath/XPathVariableResolver.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/javax/xml/xpath/XPathVariableResolver.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* XPathVariableResolver.java -- 
                                         Copyright (C) 2004 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* XPathVariableResolver.java --
                                         Copyright (C) 2004 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public interface XPathVariableResolver
                                    *** 48,52 ****
                                      {
                                      
                                        Object resolveVariable(QName variableName);
                                    !   
                                      }
                                    --- 48,52 ----
                                      {
                                      
                                        Object resolveVariable(QName variableName);
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/Makefile.in gcc-4.6.0/libjava/classpath/lib/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/lib/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 42,47 ****
                                    --- 42,50 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 60,68 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 63,69 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gen-classlist.sh.in gcc-4.6.0/libjava/classpath/lib/gen-classlist.sh.in
                                    *** gcc-4.5.2/libjava/classpath/lib/gen-classlist.sh.in	Thu Apr 17 22:30:18 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/gen-classlist.sh.in	Wed May  5 13:05:21 2010
                                    ***************
                                    *** 7,19 ****
                                      LC_ALL=C; export LC_ALL
                                      LANG=C; export LANG
                                      
                                    ! echo "Adding java source files from srcdir '@top_srcdir@'."
                                      # We construct 'classes.1' as a series of lines.  Each line
                                      # has three fields, which are separated by spaces.  The first
                                      # field is the package of this class (separated by "/"s).
                                    ! # The second field is the name of the top-level directory for
                                    ! # this file, relative to the build directory.  E.g., it might
                                    ! # look like "../../classpath/vm/reference".
                                      # The third field is the file name, like "java/lang/Object.java".
                                      # We do this because it makes splitting for the gcj build much
                                      # cheaper.
                                    --- 7,23 ----
                                      LC_ALL=C; export LC_ALL
                                      LANG=C; export LANG
                                      
                                    ! abs_top_builddir=`cd "${top_builddir}"; pwd`
                                    ! abs_top_srcdir=`cd "@top_srcdir@"; pwd`
                                    ! 
                                    ! echo "Adding java source files from srcdir '${abs_top_srcdir}'."
                                    ! 
                                      # We construct 'classes.1' as a series of lines.  Each line
                                      # has three fields, which are separated by spaces.  The first
                                      # field is the package of this class (separated by "/"s).
                                    ! # The second field is the absolute pathname of the top-level directory
                                    ! # for this file.  E.g., it might look like
                                    ! # "/home/jezebel/classpath/vm/reference".
                                      # The third field is the file name, like "java/lang/Object.java".
                                      # We do this because it makes splitting for the gcj build much
                                      # cheaper.
                                    *************** echo "Adding java source files from srcd
                                    *** 21,35 ****
                                       @FIND@ java javax gnu org sun -follow -name '*.java' -print |
                                       sort -r | sed -e 's,/\([^/]*\)$, \1,' |
                                       while read pkg file; do
                                    !     echo $pkg @top_srcdir@ $pkg/$file
                                       done) > ${top_builddir}/lib/classes.1
                                      
                                      # The same, but for the external code.
                                      for dir in \
                                    !    @top_srcdir@/external/w3c_dom \
                                    !    @top_srcdir@/external/sax \
                                    !    @top_srcdir@/external/relaxngDatatype \
                                    !    @top_srcdir@/external/jsr166 \
                                         ; do
                                         (cd $dir
                                         for subdir in java javax gnu org sun; do
                                    --- 25,39 ----
                                       @FIND@ java javax gnu org sun -follow -name '*.java' -print |
                                       sort -r | sed -e 's,/\([^/]*\)$, \1,' |
                                       while read pkg file; do
                                    !     echo $pkg ${abs_top_srcdir} $pkg/$file
                                       done) > ${top_builddir}/lib/classes.1
                                      
                                      # The same, but for the external code.
                                      for dir in \
                                    !    ${abs_top_srcdir}/external/w3c_dom \
                                    !    ${abs_top_srcdir}/external/sax \
                                    !    ${abs_top_srcdir}/external/relaxngDatatype \
                                    !    ${abs_top_srcdir}/external/jsr166 \
                                         ; do
                                         (cd $dir
                                         for subdir in java javax gnu org sun; do
                                    *************** for dir in $vm_dirlist; do
                                    *** 62,69 ****
                                      done
                                      
                                      # Only include generated files once.
                                    - abs_top_builddir=`cd "${top_builddir}"; pwd`
                                    - abs_top_srcdir=`cd "@top_srcdir@"; pwd`
                                      if test "$abs_top_builddir" != "$abs_top_srcdir"; then
                                        echo "Adding generated files in builddir '${top_builddir}'."
                                        # Currently the only generated files are in gnu.*.
                                    --- 66,71 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/java/locale/LocaleData.class gcc-4.6.0/libjava/classpath/lib/gnu/java/locale/LocaleData.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/java/locale/LocaleData.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/java/locale/LocaleData.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,14 ****
                                    ! Êþº¾���1¢��gnu/java/locale/LocaleData��java/lang/Object�localeNames�[Ljava/lang/String;�collatorLocaleNames�<clinit>�()V�Code��java/lang/String��aa��aa_DJ��aa_ER��aa_ER_SAAHO��aa_ET��af��af_NA��af_ZA��ak� �am�"�am_ET�$�ar�&�ar_DZ�(�ar_JO�*�ar_LB�,�ar_MA�.�ar_QA�0�ar_SA�2�ar_SY�4�ar_TN�6�ar_YE�8�as�:�as_IN�<�az�>�az_Cyrl�@�be�B�be_BY�D�bg�F�bg_BG�H�bn�J�bn_IN�L�bo�N�bs�P�byn�R�byn_ER�T�ca�V�ca_ES�X�cch�Z�cop�\�cs�^�cs_CZ�`�cy�b�cy_GB�d�da�f�da_DK�h�de�j�de_AT�l�de_BE�n�de_CH�p�de_DE�r�de_LI�t�de_LU�v�dv�x�dv_MV�z�dz�|�dz_BT�~�ee�€�el�‚�el_CY�„�el_GR�†�en�ˆ�en_AS�Š�en_AU�Œ�en_BE�Ž�en_BW��en_BZ�’�en_CA�”�en_Dsrt�–�en_GB�˜�en_GU�š�en_HK�œ�en_IE�ž�en_IN� �en_JM�¢�en_MH�¤�en_MP�¦�en_MT�¨�en_NA�ª�en_NZ�¬�en_PH�®�en_PK�°�en_SG�²�en_Shaw�´�en_TT�¶�en_UM�¸�en_US�º�en_US_POSIX�¼�en_VI�¾�en_ZA�À�en_ZW�Â�eo�Ä�es�Æ�es_AR�È�es_BO�Ê�es_CL�Ì�es_CO�Î�es_CR�Ð�es_DO�Ò�es_EC�Ô�es_ES�Ö�es_GT�Ø�es_HN�Ú�es_MX�Ü�es_NI�Þ�es_PA�à�es_PE�â�es_PR�ä�es_PY�æ�es_SV�è�es_US�ê�es_UY�ì�es_VE�î�et�ð�et_EE�ò�eu�ô�eu_ES�ö�fa�ø�fa_AF�ú�fa_IR�ü�fi�þ�fi_FI��fil�fo�fo_FO�fr�fr_BE
                                    ! �fr_CA�fr_CH�fr_LU�fur�ga�ga_IE�gaa�gez�gez_ER�gez_ET�gl �gl_ES"�gu$�gu_IN&�gv(�gv_GB*�ha,�ha_Arab.�haw0�haw_US2�he4�he_IL6�hi8�hi_IN:�hr<�hu>�hu_HU@�hyB�hy_AMD�
                                    hy_AM_REVISEDF�iaH�idJ�id_IDL�igN�iiP�isR�is_IST�itV�it_CHX�it_ITZ�iu\�ja^�ja_JP`�kab�kajd�kamf�kcgh�kfoj�kkl�kk_KZn�klp�kl_GLr�kmt�km_KHv�knx�kn_INz�ko|�ko_KR~�kok€�kok_IN‚�kpe„�ku†�ku_Arabˆ�ku_LatnŠ�kwŒ�kw_GBŽ�ky�ln’�lo”�lo_LA–�lt˜�lt_LTš�lvœ�lv_LVž�mk �ml¢�ml_IN¤�mn¦�mr¨�mr_INª�ms¬�ms_BN®�ms_MY°�mt²�mt_MT´�my¶�nb¸�nb_NOº�ne¼�nl¾�nl_BEÀ�nl_NLÂ�nnÄ�nn_NOÆ�nrÈ�nsoÊ�nyÌ�omÎ�om_ETÐ�om_KEÒ�orÔ�or_INÖ�paØ�pa_ArabÚ�pa_INÜ�plÞ�pl_PLà�psâ�ps_AFä�ptæ�pt_BRè�pt_PTê�roì�ro_ROî�ruð�ru_RUò�ru_UAô�rwö�saø�sa_INú�seü�se_FIþ�si��sid�sid_ET�sk�sk_SK�sl
                                    ! �sl_SI�so�so_DJ�so_ET�so_KE�so_SO�sq�sq_AL�sr�
                                    ! sr_BA_Cyrl�
                                    ! sr_BA_Latn �sr_Cyrl"�sr_Latn$�
                                    ! sr_ME_Latn&�
                                    ! sr_RS_Latn(�ss*�ssy,�st.�sv0�sv_FI2�sv_SE4�sw6�sw_KE8�sw_TZ:�syr<�syr_SY>�ta@�ta_INB�teD�te_INF�tgH�thJ�th_THL�tiN�ti_ERP�ti_ETR�tigT�tig_ERV�tnX�toZ�tr\�tr_TR^�trv`�tsb�ttd�tt_RUf�ugh�ukj�uk_UAl�urn�ur_INp�uzr�
                                    ! uz_AF_Arabt�uz_Arabv�uz_Latnx�vez�vi|�wal~�wal_ET€�wo‚�xh„�yo†�zhˆ�
                                    ! zh_CN_HansŠ�
                                    ! zh_HK_HantŒ�zh_HantŽ�
                                    ! zh_MO_Hant�
                                      zh_SG_Hans’�
                                      zh_TW_Hant”�zu	�–��	�˜���LineNumberTable�LocalVariableTable�<init>
                                      �›�	�this�Lgnu/java/locale/LocaleData;�
                                    --- 1,14 ----
                                    ! Êþº¾���1¢��gnu/java/locale/LocaleData��java/lang/Object�localeNames�[Ljava/lang/String;�collatorLocaleNames�<clinit>�()V�Code��java/lang/String��aa_DJ��aa_ER��aa_ER_SAAHO��aa_ET��aa��af_NA��af��af_ZA��ak� �am_ET�"�am�$�ar_DZ�&�ar_JO�(�ar_LB�*�ar_MA�,�ar�.�ar_QA�0�ar_SA�2�ar_SY�4�ar_TN�6�ar_YE�8�as_IN�:�as�<�az_Cyrl�>�az�@�be_BY�B�be�D�bg_BG�F�bg�H�bn_IN�J�bn�L�bo�N�bs�P�byn_ER�R�byn�T�ca_ES�V�ca�X�cch�Z�cop�\�cs_CZ�^�cs�`�cy_GB�b�cy�d�da_DK�f�da�h�de_AT�j�de_BE�l�de_CH�n�de_DE�p�de_LI�r�de_LU�t�de�v�dv_MV�x�dv�z�dz_BT�|�dz�~�ee�€�el_CY�‚�el_GR�„�el�†�en_AS�ˆ�en_AU�Š�en_BE�Œ�en_BW�Ž�en_BZ��en_CA�’�en_Dsrt�”�en_GB�–�en_GU�˜�en_HK�š�en_IE�œ�en_IN�ž�en_JM� �en_MH�¢�en_MP�¤�en_MT�¦�en_NA�¨�en_NZ�ª�en_PH�¬�en_PK�®�en�°�en_SG�²�en_Shaw�´�en_TT�¶�en_UM�¸�en_US_POSIX�º�en_US�¼�en_VI�¾�en_ZA�À�en_ZW�Â�eo�Ä�es_AR�Æ�es_BO�È�es_CL�Ê�es_CO�Ì�es_CR�Î�es_DO�Ð�es_EC�Ò�es_ES�Ô�es_GT�Ö�es_HN�Ø�es_MX�Ú�es_NI�Ü�es_PA�Þ�es_PE�à�es�â�es_PR�ä�es_PY�æ�es_SV�è�es_US�ê�es_UY�ì�es_VE�î�et_EE�ð�et�ò�eu_ES�ô�eu�ö�fa_AF�ø�fa_IR�ú�fa�ü�fi_FI�þ�fil��fi�fo_FO�fo�fr_BE�fr_CA
                                    ! �fr_CH�fr_LU�fr�fur�gaa�ga_IE�ga�gez_ER�gez_ET�gez�gl_ES �gl"�gu_IN$�gu&�gv_GB(�gv*�ha_Arab,�ha.�haw0�haw_US2�he_IL4�he6�hi_IN8�hi:�hr<�hu_HU>�hu@�hy_AMB�
                                    hy_AM_REVISEDD�hyF�iaH�id_IDJ�idL�igN�iiP�is_ISR�isT�it_CHV�it_ITX�itZ�iu\�ja_JP^�ja`�kajb�kamd�kaf�kcgh�kfoj�kk_KZl�kkn�kl_GLp�klr�km_KHt�kmv�kn_INx�knz�kok_IN|�kok~�ko_KR€�ko‚�kpe„�ku_Arab†�ku_Latnˆ�kuŠ�kw_GBŒ�kwŽ�ky�ln’�lo_LA”�lo–�lt_LT˜�ltš�lv_LVœ�lvž�mk �ml_IN¢�ml¤�mn¦�mr_IN¨�mrª�ms_BN¬�ms_MY®�ms°�mt_MT²�mt´�my¶�nb_NO¸�nbº�ne¼�nl_BE¾�nl_NLÀ�nlÂ�nn_NOÄ�nnÆ�nrÈ�nsoÊ�nyÌ�om_ETÎ�om_KEÐ�omÒ�or_INÔ�orÖ�pa_ArabØ�pa_INÚ�paÜ�pl_PLÞ�plà�ps_AFâ�psä�pt_BRæ�ptè�pt_PTê�roì�ro_ROî�ruð�ru_RUò�ru_UAô�rwö�sa_INø�saú�se_FIü�seþ�sid_ET��sid�si�sk�sk_SK�sl
                                    ! �sl_SI�so_DJ�so_ET�so_KE�so�so_SO�sq_AL�sq�
                                    ! sr_BA_Cyrl�
                                    ! sr_BA_Latn�sr_Cyrl �sr_Latn"�
                                    ! sr_ME_Latn$�sr&�
                                    ! sr_RS_Latn(�ss*�ssy,�st.�sv_FI0�sv2�sv_SE4�sw_KE6�sw8�sw_TZ:�syr<�syr_SY>�ta_IN@�taB�te_IND�teF�tgH�thJ�th_THL�ti_ERN�ti_ETP�tig_ERR�tigT�tiV�tnX�toZ�tr\�tr_TR^�trv`�tsb�ttd�tt_RUf�ugh�ukj�uk_UAl�ur_INn�urp�
                                    ! uz_AF_Arabr�uz_Arabt�uz_Latnv�uzx�vez�vi|�wal_ET~�wal€�wo‚�xh„�yo†�
                                    ! zh_CN_Hansˆ�zh_HantŠ�
                                    ! zh_HK_HantŒ�
                                    ! zh_MO_HantŽ�zh�
                                      zh_SG_Hans’�
                                      zh_TW_Hant”�zu	�–��	�˜���LineNumberTable�LocalVariableTable�<init>
                                      �›�	�this�Lgnu/java/locale/LocaleData;�
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppPrintService.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppPrintService.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppPrintService.class	Mon Aug  2 13:46:09 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppPrintService.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,122 ****
                                    ! Êþº¾���1ö��#gnu/javax/print/ipp/IppPrintService��java/lang/Object��javax/print/PrintService�printerAttr�Ljava/util/Map;�printServiceAttributeListener�Ljava/util/HashSet;�user�Ljava/lang/String;�passwd�name�flavors�Ljava/util/List;�
                                    ! printerUri�+Ljavax/print/attribute/standard/PrinterURI;�printerUris�Ljava/util/ArrayList;�logger�Ljava/util/logging/Logger;�REQUESTING_USER_NAME�3Ljavax/print/attribute/standard/RequestingUserName;�JOB_NAME�(Ljavax/print/attribute/standard/JobName;�<clinit>�()V�Code	��!� � gnu/classpath/debug/SystemLogger�"�#�SYSTEM�"Lgnu/classpath/debug/SystemLogger;	��%���'�&javax/print/attribute/standard/JobName�)�
                                    Java Printing
                                    ! �&�+�,�-�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	��/���1�1javax/print/attribute/standard/RequestingUserName�3�	user.name�5��
                                    ! �7�9�8�gnu/classpath/SystemProperties�:�;�getProperty�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
                                    ! �0�+	��>���LineNumberTable�LocalVariableTable�5(Ljava/net/URI;Ljava/lang/String;Ljava/lang/String;)V�
                                    ! Exceptions�D� gnu/javax/print/ipp/IppException
                                    ! ��F�,��H�)javax/print/attribute/standard/PrinterURI
                                    ! �G�J�,�K�(Ljava/net/URI;)V	��M��	��O��	��Q�
                                    ��S�java/util/HashSet
                                    ! �R�F	��V�	�
                                    ! 
                                    ! ��X�Y�Z�getPrinterAttributes�()Ljava/util/Map;	��\��
                                    ! ��^�_��processResponse�this�%Lgnu/javax/print/ipp/IppPrintService;�uri�Ljava/net/URI;�username�password�g�gnu/javax/print/ipp/IppRequest
                                    ! �G�i�j�k�getURI�()Ljava/net/URI;
                                    ! �f�m�,�A	�o�q�p�;gnu/javax/print/ipp/attribute/supported/OperationsSupported�r�s�GET_PRINTER_ATTRIBUTES�=Lgnu/javax/print/ipp/attribute/supported/OperationsSupported;
                                    ! �o�u�v�w�getValue�()I
                                    ! �f�y�z�{�setOperationID�(S)V
                                    ! �f�}�~��setOperationAttributeDefaults
                                    ! �f�€��‚�addOperationAttribute�$(Ljavax/print/attribute/Attribute;)V
                                    ! �f�„�…�†�send�#()Lgnu/javax/print/ipp/IppResponse;�ˆ�$IOException in IPP request/response.
                                    ! �C�Š�,�‹�*(Ljava/lang/String;Ljava/lang/Exception;)V
                                    ! ���Ž�gnu/javax/print/ipp/IppResponse�Y��()Ljava/util/List;�’�”�“�java/util/List�•�–�get�(I)Ljava/lang/Object;�˜�
                                    java/util/Map�š�java/io/IOException�response�!Lgnu/javax/print/ipp/IppResponse;�request� Lgnu/javax/print/ipp/IppRequest;�	operation�I�e�Ljava/io/IOException;�getPrinterAttributeSet�"(Ljava/lang/Class;)Ljava/util/Set;�—�¦�•�§�&(Ljava/lang/Object;)Ljava/lang/Object;�©�
                                    java/util/Set�attributeClass�Ljava/lang/Class;�getPrinterDefaultAttribute�4(Ljava/lang/Class;)Ljavax/print/attribute/Attribute;�¨�¯�°�±�toArray�()[Ljava/lang/Object;�³�3gnu/javax/print/ipp/attribute/DefaultValueAttribute�²�µ�¶�·�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�set�Ljava/util/Set;�»�*javax/print/attribute/standard/PrinterName
                                    ! ��½�£�¤�¨�¿�°�À�(([Ljava/lang/Object;)[Ljava/lang/Object;�Â�-[Ljavax/print/attribute/standard/PrinterName;
                                    ! �º�Ä�v�Å�()Ljava/lang/String;	��Ç���É�java/util/ArrayList
                                    ! �È�F	��Ì���Î�?gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported�¨�Ð�Ñ�Ò�iterator�()Ljava/util/Iterator;�Ô�Ö�Õ�java/util/Iterator�×�Ø�next�()Ljava/lang/Object;
                                    ! ����
                                      text/plain
                                    ! �Ý�ß�Þ�java/lang/String�à�á�equals�(Ljava/lang/Object;)Z	�ã�å�ä� javax/print/DocFlavor$CHAR_ARRAY�æ�ç�
                                    ! TEXT_PLAIN�"Ljavax/print/DocFlavor$CHAR_ARRAY;�’�é�ê�á�add	�ì�î�í�javax/print/DocFlavor$READER�æ�ï�Ljavax/print/DocFlavor$READER;	�ñ�ó�ò�javax/print/DocFlavor$STRING�æ�ô�Ljavax/print/DocFlavor$STRING;�ö�java/lang/StringBuilder
                                    ! �Ý�ø�ù�ú�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �õ�ü�,�ý�(Ljava/lang/String;)V�ÿ�; charset=utf-8
                                    ! �õ�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �õ�Å�toString�	text/html	�ã
                                    ! �ç�	TEXT_HTML	�ì
                                    �ï	�ñ�ô�java/lang/Class� javax/print/DocFlavor$BYTE_ARRAY�"javax/print/DocFlavor$INPUT_STREAM�javax/print/DocFlavor$URL
                                    ! �getDeclaredFields�()[Ljava/lang/reflect/Field;
                                    ! �java/lang/reflect/Field !�getType�()Ljava/lang/Class;
                                    ! ��ß
                                    ! �¦%�javax/print/DocFlavor
                                    ! $'(��getMimeType*�[B
                                    ! $,�,-�'(Ljava/lang/String;Ljava/lang/String;)V/�java.io.InputStream1�java.net.URL�Ô345�hasNext�()Z
                                    ! �78!�getClass:� gnu/javax/print/CupsPrintService
                                    ! <=>�isAssignableFrom�(Ljava/lang/Class;)Z	@BA�'javax/print/DocFlavor$SERVICE_FORMATTEDCD�PAGEABLE�)Ljavax/print/DocFlavor$SERVICE_FORMATTED;	@FGD�	PRINTABLEI�;gnu/javax/print/ipp/attribute/supported/PrinterUriSupported�¨KL�w�size
                                    ! �ÈN�,O�(I)V	�Q��
                                    ! H�i
                                    ! �È�éU�java/lang/SecurityExceptionW�"java/lang/IllegalArgumentExceptionY� java/lang/IllegalAccessException�tmp�flavorAttributes�it�Ljava/util/Iterator;�mimeType�changed�Z�clazzes�[Ljava/lang/Class;�j�fields�[Ljava/lang/reflect/Field;�i�flavor�Ljavax/print/DocFlavor;�uris�=Lgnu/javax/print/ipp/attribute/supported/PrinterUriSupported;�createPrintJob�()Ljavax/print/DocPrintJob;n�#gnu/javax/print/ipp/DocPrintJobImpl
                                    ! mp�,q�L(Lgnu/javax/print/ipp/IppPrintService;Ljava/lang/String;Ljava/lang/String;)V�getAttribute�@(Ljava/lang/Class;)Ljavax/print/attribute/PrintServiceAttribute;u�java/lang/NullPointerExceptionw�category may not be null
                                    ! t�üz�+javax/print/attribute/PrintServiceAttribute|�.category must be of type PrintServiceAttribute
                                    ! V�ü�category�
                                    getAttributes�2()Ljavax/print/attribute/PrintServiceAttributeSet;‚�2javax/print/attribute/HashPrintServiceAttributeSet
                                    ! �F�—…†‡�values�()Ljava/util/Collection;‰�Њ�java/util/CollectionŒ�javax/print/attribute/AttributeŽ�.javax/print/attribute/PrintServiceAttributeSet�ê‘�$(Ljavax/print/attribute/Attribute;)Z
                                    ! “•”�+javax/print/attribute/AttributeSetUtilities–—�unmodifiableView�b(Ljavax/print/attribute/PrintServiceAttributeSet;)Ljavax/print/attribute/PrintServiceAttributeSet;�0Ljavax/print/attribute/PrintServiceAttributeSet;�it2�attr�!Ljavax/print/attribute/Attribute;�getDefaultAttributeValue�%(Ljava/lang/Class;)Ljava/lang/Object;Ÿ�'javax/print/attribute/standard/Fidelity	ž¡¢£�FIDELITY_FALSE�)Ljavax/print/attribute/standard/Fidelity;¥�*javax/print/attribute/standard/JobPriority§�9gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault�—©ª�á�containsKey
                                    ! �¬�¬�­®�+javax/print/attribute/standard/JobHoldUntil°�:gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault²�(javax/print/attribute/standard/JobSheets´�7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault¶�7javax/print/attribute/standard/MultipleDocumentHandling¸�Fgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefaultº�%javax/print/attribute/standard/Copies¼�4gnu/javax/print/ipp/attribute/defaults/CopiesDefault¾�)javax/print/attribute/standard/FinishingsÀ�8gnu/javax/print/ipp/attribute/defaults/FinishingsDefaultÂ�$javax/print/attribute/standard/SidesÄ�3gnu/javax/print/ipp/attribute/defaults/SidesDefaultÆ�'javax/print/attribute/standard/NumberUpÈ�6gnu/javax/print/ipp/attribute/defaults/NumberUpDefaultÊ�3javax/print/attribute/standard/OrientationRequestedÌ�Bgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefaultÎ�$javax/print/attribute/standard/MediaÐ�3gnu/javax/print/ipp/attribute/defaults/MediaDefaultÒ�0javax/print/attribute/standard/PrinterResolutionÔ�?gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefaultÖ�+javax/print/attribute/standard/PrintQualityØ�:gnu/javax/print/ipp/attribute/defaults/PrintQualityDefaultÚ�*javax/print/attribute/standard/CompressionÜ�<gnu/javax/print/ipp/attribute/supported/CompressionSupported	ÙÞßà�NONE�,Ljavax/print/attribute/standard/Compression;â�)javax/print/attribute/standard/PageRangesÿÿÿ
                                    ! áå�,æ�(II)V�getName�getServiceUIFactory� ()Ljavax/print/ServiceUIFactory;�getSupportedAttributeCategories�()[Ljava/lang/Class;í�3javax/print/attribute/standard/JobPrioritySupported�¨�éð�=gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupportedò�:gnu/javax/print/ipp/attribute/supported/JobSheetsSupportedô�Ignu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupportedö�.javax/print/attribute/standard/CopiesSupportedø�;gnu/javax/print/ipp/attribute/supported/FinishingsSupported	÷úßû�=Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;�¨ýþ�á�contains��;gnu/javax/print/ipp/attribute/supported/PageRangesSupported�6gnu/javax/print/ipp/attribute/supported/SidesSupported�0javax/print/attribute/standard/NumberUpSupported�Egnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported�6gnu/javax/print/ipp/attribute/supported/MediaSupported
                                    ! �Bgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported�=gnu/javax/print/ipp/attribute/supported/PrintQualitySupported�6javax/print/attribute/standard/JobImpressionsSupported�-javax/print/attribute/standard/JobImpressions�2javax/print/attribute/standard/JobKOctetsSupported�)javax/print/attribute/standard/JobKOctets�6javax/print/attribute/standard/JobMediaSheetsSupported�-javax/print/attribute/standard/JobMediaSheetsb�
                                    ! categories�getSupportedAttributeValues�`(Ljava/lang/Class;Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)Ljava/lang/Object;�"category must be of type Attribute
                                    ! � !"�isDocFlavorSupported�(Ljavax/print/DocFlavor;)Z$�flavor is not supported
                                    ! �&'>�isAttributeCategorySupported	ž)*£�
                                    FIDELITY_TRUE
                                    ! ,.-� gnu/javax/print/ipp/IppUtilities/0�getSupportedAttrName�%(Ljava/lang/Class;)Ljava/lang/String;2�1gnu/javax/print/ipp/attribute/RequestedAttributes
                                    ! 1�ü
                                    ! 576�4gnu/javax/print/ipp/attribute/printer/DocumentFormat89�createDocumentFormat�O(Ljavax/print/DocFlavor;)Lgnu/javax/print/ipp/attribute/printer/DocumentFormat;
                                    ! �;<=�
                                    getStatusCode�()S	?A@�gnu/classpath/debug/ComponentBC�IPP�Lgnu/classpath/debug/Component;E�Statuscode not OK - got:
                                    ! �õGH�(I)Ljava/lang/StringBuilder;
                                    ! JLK�java/util/logging/LoggerMN�log�.(Ljava/util/logging/Level;Ljava/lang/String;)VP�IOException
                                    ! JRMS�C(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)VU�IPPException
                                    ! �WXY�&handleSupportedAttributeValuesResponse�F(Lgnu/javax/print/ipp/IppResponse;Ljava/lang/Class;)Ljava/lang/Object;�
                                    ! attributes�$Ljavax/print/attribute/AttributeSet;�categoryName�f�6Lgnu/javax/print/ipp/attribute/printer/DocumentFormat;�status�"Lgnu/javax/print/ipp/IppException;
                                    ! ,bcd�getSupportedCategory�$(Ljava/lang/Class;)Ljava/lang/Class;f�java/util/Date
                                    ! e�F
                                    ! ­i�,j�(Ljava/util/Date;)V
                                    ! ñlmn�getAssociatedAttributeArray�<(Ljava/util/Set;)[Ljavax/print/attribute/standard/JobSheets;
                                    ! ópmq�K(Ljava/util/Set;)[Ljavax/print/attribute/standard/MultipleDocumentHandling;
                                    ! ÷smt�=(Ljava/util/Set;)[Ljavax/print/attribute/standard/Finishings;
                                    ! vmw�G(Ljava/util/Set;)[Ljavax/print/attribute/standard/OrientationRequested;
                                    ! ymz�8(Ljava/util/Set;)[Ljavax/print/attribute/standard/Media;
                                    ! 	|m}�D(Ljava/util/Set;)[Ljavax/print/attribute/standard/PrinterResolution;
                                    ! m€�?(Ljava/util/Set;)[Ljavax/print/attribute/standard/PrintQuality;
                                    ! Û‚mƒ�>(Ljava/util/Set;)[Ljavax/print/attribute/standard/Compression;…�3[Ljavax/print/attribute/standard/NumberUpSupported;‡�[[I
                                    ! ‰Š‹�
                                      getMembers�()[[I
                                    ! �,Ž�([[I)V�printerAtts�printerAttribute�suppCategory�members�value�	supported�2Ljavax/print/attribute/standard/NumberUpSupported;�getSupportedDocFlavors�()[Ljavax/print/DocFlavor;�’K�’�¿›�[Ljavax/print/DocFlavor;�getUnsupportedAttributes�a(Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)Ljavax/print/attribute/AttributeSet;	�oŸ �s�VALIDATE_JOB¢K£�"javax/print/attribute/AttributeSet
                                    ! �f¥¦§�"addAndFilterJobOperationAttributes�'(Ljavax/print/attribute/AttributeSet;)V
                                    ! �f©ª§�!addAndFilterJobTemplateAttributes
                                    ! �¬œ��—K¯�&javax/print/attribute/HashAttributeSet
                                    ! ®�F
                                    ! ®�operationId�S�unsupportedMaps�unsupportedAttr�(Ljavax/print/attribute/HashAttributeSet;�unsupported
                                    ! �¹êë
                                    ! »½¼�java/util/Arrays¾¿�asList�%([Ljava/lang/Object;)Ljava/util/List;�’ý�isAttributeValueSupported�_(Ljavax/print/attribute/Attribute;Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)Z‹ÄÅ!�getCategory
                                    ! �Ç
                                    ! ÉÊ5�isArrayÌ�[Ljava/lang/Object;Î�#javax/print/attribute/IntegerSyntax
                                    ! õÐþÑ�((Ljavax/print/attribute/IntegerSyntax;)Z
                                    ! Ð
                                    ! ¤�u
                                    ! ì�u�attrval�Ljava/lang/Object;�priority�,Ljavax/print/attribute/standard/JobPriority;�maxSupported�5Ljavax/print/attribute/standard/JobPrioritySupported;Ü�DocFlavor may not be null.� addPrintServiceAttributeListener�4(Ljavax/print/event/PrintServiceAttributeListener;)V
                                    ! �R�é�listener�1Ljavax/print/event/PrintServiceAttributeListener;�#removePrintServiceAttributeListener
                                    ! �Räå�á�removeç�IppPrinter: 
                                    ! �éç�Å�
                                    getPrinterURI�-()Ljavax/print/attribute/standard/PrinterURI;�
                                      SourceFile�IppPrintService.java�InnerClasses�
                                      BYTE_ARRAY�
                                    ! CHAR_ARRAY�INPUT_STREAM�READER�SERVICE_FORMATTED�STRING�URL�!������������	�
                                    ! ���‚�����‚�
                                    �����������������������������������������������Z������&²�³�$»�&Y(·�*³�.»�0Y24¸�6·�<³�=±����?�������­��»��¼��½��¼�%�ˆ�@�������,�A��B�����C����–�����2*·�E*»�GY+·�Iµ�L*,µ�N*-µ�P*»�RY·�Tµ�U**·�Wµ�[*·�]±����?���"����Ë��Î��Ï��Ð��Ò�%�Ô�-�Õ�1�Ö�@���*����2�`�a�����2�b�c����2�d�����2�e����Y�Z��B�����C����Ò�����TL»�fY*´�L¶�h*´�N*´�P·�lM²�n¶�t>,“¶�x,¶�|,*´�L¶�,¶�ƒL§�M»�CY‡,·�‰¿+¶�Œ¹�‘�À�—°���7�:�™��?���*�
                                    ! ���à��ä��æ� �ç�&�è�*�é�2�ë�:�í�;�ï�F�ò�@���4����T�`�a����R�›�œ���!��ž�� ��Ÿ� ��;��¡�¢���£�¤�����B�����*´�[+¹�¥�À�¨°����?�������þ�@��������`�a������ª�«���¬�­�����a�����*´�[+¹�¥�À�¨M,¹�®�2À�²¹�´�°����?���
                                    ! ���
                                    ��@��� �����`�a������ª�«����¸�¹���_�����Ñ����1*º·�¼½�º¹�¾�À�ÁL*+2¶�õ�Æ*»�ÈY·�ʵ�Ë*Í·�¼M,Ʋ,¹�Ï�N§x-¹�Ó�À�Ͷ�Ù:Ú¶�Ü™�C*´�˲�â¹�è�W*´�˲�ë¹�è�W*´�˲�ð¹�è�W»�õY¸�÷·�ûþ¶�¶:§�K¶�Ü™�@*´�˲	¹�è�W*´�˲¹�è�W*´�˲¹�è�W»�õY¸�÷·�ûþ¶�¶:6½YSYSYS:6§�\2¶:6	§�A	2¶2¶"™�+	2¶#À$:
                                    ! 
                                    ! ¶&¶�Ü™�*´�Ë
                                    ! ¹�è�6„		¾¡ÿ½„¾¡ÿ¢š�Q*´�Ë»$Y)·+¹�è�W*´�Ë»$Y.·+¹�è�W*´�Ë»$Y0·+¹�è�W§�W§�W§�W-¹2�šþ…*¶69¶;™�*´�˲?¹�è�W*´�˲E¹�è�W*H·�¼N*»�ÈY-¹J�·MµP-¹�Ï�:§�#¹�Ó�ÀH:*´P»�GY¶R·�I¶SW¹2�šÿÙ±��঩T�ভV�঱X��?���â�8�������� �(!�/"�3$�=&�K(�U*�b+�o,�|/�•1� 3�­4�º5�Ç8�Ý>�àA�æA�ìB�òC�öA�øE�þGHJ!L/M<NIHTE_RdUzVW©Z­^±b²$»h¿iÈmÕnâsêtûuvxy&v0{�@���Ž���1�`�a���Z�Â��/[�¹��:\]��Kg^���à�Ò_`��ø�±ab��û�dc� ��Lde��If� �	/�gh�
                                    ! ê�Gi�¹��.\]���bj��kl�����;�����»mY**´�N*´�P·o°����?������„�@��������`�a���rs�����§�����E+Ç�»tYv·x¿y+¶;š�»VY{·}¿*+·�¼M,Æ�,¹J�ž�,¹�®�2Ày°°����?���*�
                                    ! ���Ž��‘�’� ‘�$”�*•�7–�C˜�@��� ����E�`�a�����E~�«��*��¸�¹��€�����Ù�����_»Y·ƒL*´�[¹„�¹ˆ�M§�:,¹�Ó�À�¨¹�Ï�N§�-¹�Ó�À‹:Áy™�+¹�W-¹2�šÿÞ,¹2�šÿÃ+¸’°����?���.��� �¢�£�¥�)¦�,¨�7©�?ª�H¦�Q£�Z®�@���4����_�`�a����W�¸˜���H\]��)�(™]��7�š›��œ����Ù����é+ž¶"™�² °+&¶"™�²�.°+0¶"™�²�=°+¤¶"™�*´�[¦¹¨�™�*¦·«°+­¶"™�*´�[¯¹¨�™�*¯·«°+±¶"™�*´�[³¹¨�™�*³·«°+µ¶"™�*´�[·¹¨�™�*··«°+¹¶"™�*´�[»¹¨�™�*»·«°+½¶"™�*´�[¿¹¨�™�*¿·«°+Á¶"™�*´�[ù¨�™�*÷«°+Ŷ"™�*´�[ǹ¨�™�*Ç·«°+ɶ"™�*´�[˹¨�™�*Ë·«°+Ͷ"™�*´�[Ϲ¨�™�*Ï·«°+Ѷ"™�*´�[Ó¹¨�™�*Ó·«°+Õ¶"™�*´�[×¹¨�™�*×·«°+Ù¶"™�*´�[Û¹¨�™�²Ý°+á¶"™�»áYã·ä°°����?���Â�0��·�
                                    ! ¸�¹�º�»�$¼�(¿�2À�AÁ�IÂ�SÃ�bÄ�jÅ�tÆ�ƒÇ�‹È�•É�¤Ê�¬Ë�¶Ì�ÅÍ�ÍÎ�×Ï�æÐ�îÑ�øÒÓÔÕ(Ö0×:ØIÙQÚ[ÛjÜrÝ|Þ‹ß“àá¬â´ã¾äÍåÑæÛççé�@������é�`�a����é~�«��ç�Å�����/�����*´�Æ°����?������ò�@��������`�a���èé�����,�����°����?��������@��������`�a���êë����Ü����þ»�RY·�TL*´�[침�™�
                                    +¤¹î�W*´�[﹨�™�
                                    +­¹î�W*´�[ñ¹¨�™�
                                    +±¹î�W*´�[ó¹¨�™�
                                    +µ¹î�W*´�[õ¹¨�™�
                                    +¹¹î�W*´�[÷¹¨�™�+*÷·�¼M,¹J� �,²ù¹ü�š�
                                    +½¹î�W*´�[ÿ¹¨�™�
                                    +á¹î�W*´�[¹¨�™�
                                    +Á¹î�W*´�[¹¨�™�
                                    +Źî�W*´�[¹¨�™�
                                    +ɹî�W*´�[¹¨�™�
                                    +͹î�W*´�[	¹¨�™�
                                    +ѹî�W*´�[¹¨�™�
                                    +Õ¹î�W*´�[Û¹¨�™�
                                    +Ù¹î�W*´�[
                                    ¹¨�™�
                                    +¹î�W*´�[¹¨�™�
                                    +¹î�W*´�[¹¨�™�
                                    +¹î�W+ž¹î�W+&¹î�W+0¹î�W++¹J�½¹�¾�À°����?���¦�)�����!
                                    �0�:�I�S�b�l�{�…�”�œ�²�¼�Ë�Õ�ä�î �ý!"# $/%9&H'R(a)k/z0„1“23¬4¶5Å6Ï9Ù:â;ë=�@��� ���þ�`�a���ö�¹��œ� �¸�¹������j����<+Ç�»tYv·x¿‹+¶;š�»VY·}¿,Æ�*,¶š�»VY#·}¿*+¶%š�°+ž¶"™�½žY² SY²(S°+&¶"™�²�.°+0¶"™�²�=°+¸+::»�fY*´�L¶�h*´�N*´�P·�l:²�n¶�t“¶�x¶�|»1Y·3¶�*´�L¶�,Æ�,¸4:¶�¶�ƒ:¶:6™�PŸ�JŸ�D²�$²>»�õYD·�û¶F¶¶I§�&:²�$²>O¶Q§�:²�$²>T¶Q*+¶V°��ƒ�™�ƒ$�C��?���–�%��O�P�R�S�$U�0V�;X�CY�E\�O]�`^�i_�m`�va�zd�€f�ƒi�›j�k�¤j�§l�¬m�ºn�Ãp�Çr�Ís�Ôv�Ûx�ây�çz�í{�ó}€ƒ$…&ˆ4‹�@���p���<�`�a����<~�«���<gh���<Z[��€�¼\���ƒ�¹�›�œ��›�v��ž��Í�]^��â�/_� ���¡�¢�&��¡`��XY����Ù����¡+¶�ŒN-¹�‘�À�—:,¸a:¹�¥�À�¨:ì¶"™�½ì¹�¾�2Àì°ï¶"™�»­Y»eY·g·h°ñ¶"™�	¸k°ó¶"™�	¸o°õ¶"™�½õ¹�¾�2Àõ°÷¶"™�	¸r°ÿ¶"™�½áY»áYã·äS°¶"™�	¸u°¶"™�	¸x°	¶"™�	¸{°¶"™�	¸~°Û¶"™�	¸°¶"™�z¹J�½¹�¾�À„:¹J� �2°¹J�ņ:6	§�&	2¶ˆ2.6
                                    ! 	¼
                                      Y
                                      OY
                                    ! OS„		¹J�¡ÿÔ»Y·Œ:		°°����?���¦�)��ž�¡�¢�£�%«�0¬�A­�L®�[¯�f°�l±�w²�}³�ˆ´�™µ�¤¶�ª·�µ¸�ȹ�Óº�Ù»�ä¼�ê½�õ¾�û¿ÀÁÂÄ(Ç<Æ>ÉIÊNÌ\ÍbÏpЂ͑Ӝԟ×�@���z���¡�`�a����¡�›�œ���¡~�«��œ������Š‘�«��%|š�¹�>�aZ…�\�C’‡�_�2c� �	p�“� �
                                    ! œ�”•�	�–—�����C�����*´�Ë*´�˹˜�½$¹™�Àš°����?������ß�@��������`�a���œ����Ó��
                                    ! ��c+Æ�*+¶š�»VY#·}¿N»�fY*´�L¶�h*´�N*´�P·�l:²ž¶�t“6¶�x¶�|*´�L¶�²(¶�,Æ�,¹¡�ž�,¶¤,¶¨+Æ�+¸4:¶�¶�ƒN-¶:6™�PŸ�JŸ�D²�$²>»�õYD·�û¶F¶¶I§�&:²�$²>O¶Q§�:²�$²>T¶Q-¶«:¹˜�š�°¹�‘�À�—:¹­�š�°»®Y·°:¹„�¹ˆ�:§�5¹�Ó�À�¨:¹�Ï�:	§�	¹�Ó�À‹¶±W	¹2�šÿé¹2�šÿÇ°���¹�¼�™��¹�Ï�C��?���¦�)��ì�í�ï�ò�1ó�:ô�Aõ�Fö�O÷�Wù�dû�jü�pÿ�t�z��‡��’	�˜
                                    ! �ž�¼�¾�Ï�Ñ�ß�å�ï�ñ�þ !
                                    ! %&!'$)0*9+<,L+V'`/�@���¢���c�`�a����cgh���cZ[��J�›�œ��1�‹��ž��:�‚²³��z�]^���/_� ��¾��¡�¢��Ñ��¡`��å�~´���þ�eµ���P�¸¶�!�B\]�0�&·�¹�9�™]�	�'>�����v�����2+Ç�»tYv·x¿‹+¶;š�»VY·}¿*¶¸¸º+¹À�¬����?������7�8�:�;�$=�@�������2�`�a�����2~�«��ÁÂ����R�����¤*+¹Ã�,-¶Æ:Ç�¬¶6¶È™�À˸º+¹À�¬¶6+¹Ã�¶"™�¬¶6õ¶"™�Àõ+ÀͶϬ¶6¶"™�À+ÀͶÒ¬¶6ì¶"™�+À¤:Àì:¶Ó¶Ô¢�¬¬����?���N���G�H�	G�J�K�N� O�/R�@S�BW�PX�]Z�k[�x]�†_�Œ`�“a� b�¢i�@���H����¤�`�a�����¤Õ›����¤gh����¤Z[���–†Ö��Œ�×Ø��“�ÙÚ��!"�����V�����+Ç�»tYÛ·x¿*´�Ë+¹À�¬����?������r�s�u�@��������`�a�����gh��ÝÞ�����B�����
                                    ! *´�U+¶ßW±����?���
                                    ! ����	€�@�������
                                    ! �`�a�����
                                    ! àá��âÞ�����B�����
                                    ! *´�U+¶ãW±����?���
                                    ! ���ˆ�	‰�@�������
                                    ! �`�a�����
                                    ! àá���Å�����?�����»�õYæ·�û*¶è¶�¶°����?������‘�@��������`�a���êë�����/�����*´�L°����?������›�@��������`�a���ì���íî���:�$ï�	�ã$ð�	$ñ�	�ì$ò�	@$ó�	�ñ$ô�	$õ�	
                                    \ No newline at end of file
                                    --- 1,134 ----
                                    ! Êþº¾���1��#gnu/javax/print/ipp/IppPrintService��java/lang/Object��javax/print/PrintService�printerAttr�Ljava/util/Map;�	Signature�xLjava/util/Map<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;�printServiceAttributeListener�Ljava/util/HashSet;�FLjava/util/HashSet<Ljavax/print/event/PrintServiceAttributeListener;>;�user�Ljava/lang/String;�passwd�name�flavors�Ljava/util/List;�)Ljava/util/List<Ljavax/print/DocFlavor;>;�
                                    ! printerUri�+Ljavax/print/attribute/standard/PrinterURI;�printerUris�Ljava/util/ArrayList;�BLjava/util/ArrayList<Ljavax/print/attribute/standard/PrinterURI;>;�logger�Ljava/util/logging/Logger;�REQUESTING_USER_NAME�3Ljavax/print/attribute/standard/RequestingUserName;�JOB_NAME�(Ljavax/print/attribute/standard/JobName;�<clinit>�()V�Code	�$�&�%� gnu/classpath/debug/SystemLogger�'�(�SYSTEM�"Lgnu/classpath/debug/SystemLogger;	��*���,�&javax/print/attribute/standard/JobName�.�
                                    Java Printing
                                    ! �+�0�1�2�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	��4���6�1javax/print/attribute/standard/RequestingUserName�8�	user.name�:��
                                    ! �<�>�=�gnu/classpath/SystemProperties�?�@�getProperty�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
                                    ! �5�0	��C���LineNumberTable�LocalVariableTable�5(Ljava/net/URI;Ljava/lang/String;Ljava/lang/String;)V�
                                    ! Exceptions�I� gnu/javax/print/ipp/IppException
                                    ! ��K�1�!�M�)javax/print/attribute/standard/PrinterURI
                                    ! �L�O�1�P�(Ljava/net/URI;)V	��R��	��T��	��V���X�java/util/HashSet
                                    ! �W�K	��[��
                                    ! ��]�^�_�getPrinterAttributes�()Ljava/util/Map;	��a��
                                    ! ��c�d�!�processResponse�this�%Lgnu/javax/print/ipp/IppPrintService;�uri�Ljava/net/URI;�username�password�z()Ljava/util/Map<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;�m�gnu/javax/print/ipp/IppRequest
                                    ! �L�o�p�q�getURI�()Ljava/net/URI;
                                    ! �l�s�1�F	�u�w�v�;gnu/javax/print/ipp/attribute/supported/OperationsSupported�x�y�GET_PRINTER_ATTRIBUTES�=Lgnu/javax/print/ipp/attribute/supported/OperationsSupported;
                                    ! �u�{�|�}�getValue�()I
                                    ! �l��€��setOperationID�(S)V
                                    ! �l�ƒ�„�!�setOperationAttributeDefaults
                                    ! �l�†�‡�ˆ�addOperationAttribute�$(Ljavax/print/attribute/Attribute;)V
                                    ! �l�Š�‹�Œ�send�#()Lgnu/javax/print/ipp/IppResponse;�Ž�$IOException in IPP request/response.
                                    ! �H��1�‘�*(Ljava/lang/String;Ljava/lang/Exception;)V
                                    ! �“�•�”�gnu/javax/print/ipp/IppResponse�^�–�()Ljava/util/List;�˜�š�™�java/util/List�›�œ�get�(I)Ljava/lang/Object;�ž�
                                    java/util/Map� �java/io/IOException�response�!Lgnu/javax/print/ipp/IppResponse;�request� Lgnu/javax/print/ipp/IppRequest;�	operation�I�e�Ljava/io/IOException;�getPrinterAttributeSet�"(Ljava/lang/Class;)Ljava/util/Set;�R<T::Ljavax/print/attribute/Attribute;>(Ljava/lang/Class<TT;>;)Ljava/util/Set<TT;>;��­�›�®�&(Ljava/lang/Object;)Ljava/lang/Object;�°�
                                    java/util/Set�¯�²�³�´�iterator�()Ljava/util/Iterator;�¶�¸�·�java/util/Iterator�¹�º�next�()Ljava/lang/Object;�¼�javax/print/attribute/Attribute
                                    ! �¾�À�¿�java/lang/Class�Á�®�cast�¯�Ã�Ä�Å�add�(Ljava/lang/Object;)Z�¶�Ç�È�É�hasNext�()Z�attributeClass�Ljava/lang/Class;�set�Ljava/util/Set;�attSet�att�!Ljavax/print/attribute/Attribute;�LocalVariableTypeTable�Ljava/lang/Class<TT;>;�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�Ljava/util/Set<TT;>;�getPrinterDefaultAttribute�4(Ljava/lang/Class;)Ljavax/print/attribute/Attribute;�X(Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;)Ljavax/print/attribute/Attribute;�¯�Ù�Ú�Û�toArray�()[Ljava/lang/Object;�Ý�3gnu/javax/print/ipp/attribute/DefaultValueAttribute�Ü�ß�à�á�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�5Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�ä�*javax/print/attribute/standard/PrinterName
                                    ! ��æ�©�ª�¯�è�Ú�é�(([Ljava/lang/Object;)[Ljava/lang/Object;�ë�-[Ljavax/print/attribute/standard/PrinterName;
                                    ! �ã�í�|�î�()Ljava/lang/String;	��ð���ò�java/util/ArrayList
                                    ! �ñ�K	��õ���÷�?gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported
                                    ! �ö�í�ú�
                                      text/plain
                                    ! �ü�þ�ý�java/lang/String�ÿ�Å�equals	� javax/print/DocFlavor$CHAR_ARRAY�
                                    ! TEXT_PLAIN�"Ljavax/print/DocFlavor$CHAR_ARRAY;�˜�Ã	
                                    ! 	�javax/print/DocFlavor$READER�Ljavax/print/DocFlavor$READER;	
                                    �javax/print/DocFlavor$STRING�Ljavax/print/DocFlavor$STRING;�java/lang/StringBuilder
                                    ! �ü�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �1�(Ljava/lang/String;)V�; charset=utf-8
                                    ! �append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! !"�î�toString$�	text/html	&'�	TEXT_HTML	)'	
                                    +'-� javax/print/DocFlavor$BYTE_ARRAY/�"javax/print/DocFlavor$INPUT_STREAM1�javax/print/DocFlavor$URL
                                    ! �¾345�getDeclaredFields�()[Ljava/lang/reflect/Field;
                                    ! 798�java/lang/reflect/Field:;�getType�()Ljava/lang/Class;
                                    ! ��þ
                                    ! 7�­?�javax/print/DocFlavor
                                    ! >AB�î�getMimeTypeD�[B
                                    ! >F�1G�'(Ljava/lang/String;Ljava/lang/String;)VI�java.io.InputStreamK�java.net.URL
                                    ! �MN;�getClassP� gnu/javax/print/CupsPrintService
                                    ! �¾RST�isAssignableFrom�(Ljava/lang/Class;)Z	VXW�'javax/print/DocFlavor$SERVICE_FORMATTEDYZ�PAGEABLE�)Ljavax/print/DocFlavor$SERVICE_FORMATTED;	V\]Z�	PRINTABLE_�;gnu/javax/print/ipp/attribute/supported/PrinterUriSupported�¯ab�}�size
                                    ! �ñd�1e�(I)V	�g��
                                    ! ^�o
                                    ! �ñ�Ãk�java/lang/SecurityExceptionm�"java/lang/IllegalArgumentExceptiono� java/lang/IllegalAccessException�tmp�flavorAttributes�dfs�ALgnu/javax/print/ipp/attribute/supported/DocumentFormatSupported;�mimeType�changed�Z�clazzes�[Ljava/lang/Class;�j�fields�[Ljava/lang/reflect/Field;�i�flavor�Ljavax/print/DocFlavor;�uris�=Lgnu/javax/print/ipp/attribute/supported/PrinterUriSupported;�RLjava/util/Set<Lgnu/javax/print/ipp/attribute/supported/DocumentFormatSupported;>;�NLjava/util/Set<Lgnu/javax/print/ipp/attribute/supported/PrinterUriSupported;>;�createPrintJob�()Ljavax/print/DocPrintJob;†�#gnu/javax/print/ipp/DocPrintJobImpl
                                    ! …ˆ�1‰�L(Lgnu/javax/print/ipp/IppPrintService;Ljava/lang/String;Ljava/lang/String;)V�getAttribute�@(Ljava/lang/Class;)Ljavax/print/attribute/PrintServiceAttribute;�M<T::Ljavax/print/attribute/PrintServiceAttribute;>(Ljava/lang/Class<TT;>;)TT;Ž�java/lang/NullPointerException�category may not be null
                                    ! “�+javax/print/attribute/PrintServiceAttribute•�.category must be of type PrintServiceAttribute
                                    ! l�category�
                                    getAttributes�2()Ljavax/print/attribute/PrintServiceAttributeSet;›�2javax/print/attribute/HashPrintServiceAttributeSet
                                    ! š�K�žŸ �values�()Ljava/util/Collection;¢�²£�java/util/Collection¥§¦�.javax/print/attribute/PrintServiceAttributeSet�Ĩ�$(Ljavax/print/attribute/Attribute;)Z
                                    ! ª¬«�+javax/print/attribute/AttributeSetUtilities­®�unmodifiableView�b(Ljavax/print/attribute/PrintServiceAttributeSet;)Ljavax/print/attribute/PrintServiceAttributeSet;�0Ljavax/print/attribute/PrintServiceAttributeSet;�attrSet�attr�getDefaultAttributeValue�%(Ljava/lang/Class;)Ljava/lang/Object;�I(Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;)Ljava/lang/Object;¶�'javax/print/attribute/standard/Fidelity	µ¸¹º�FIDELITY_FALSE�)Ljavax/print/attribute/standard/Fidelity;¼�*javax/print/attribute/standard/JobPriority¾�9gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault�ÀÁ�Å�containsKey
                                    ! �Ã�Õ�ÖÅ�+javax/print/attribute/standard/JobHoldUntilÇ�:gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefaultÉ�(javax/print/attribute/standard/JobSheetsË�7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefaultÍ�7javax/print/attribute/standard/MultipleDocumentHandlingÏ�Fgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefaultÑ�%javax/print/attribute/standard/CopiesÓ�4gnu/javax/print/ipp/attribute/defaults/CopiesDefaultÕ�)javax/print/attribute/standard/Finishings×�8gnu/javax/print/ipp/attribute/defaults/FinishingsDefaultÙ�$javax/print/attribute/standard/SidesÛ�3gnu/javax/print/ipp/attribute/defaults/SidesDefaultÝ�'javax/print/attribute/standard/NumberUpß�6gnu/javax/print/ipp/attribute/defaults/NumberUpDefaultá�3javax/print/attribute/standard/OrientationRequestedã�Bgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefaultå�$javax/print/attribute/standard/Mediaç�3gnu/javax/print/ipp/attribute/defaults/MediaDefaulté�0javax/print/attribute/standard/PrinterResolutionë�?gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefaultí�+javax/print/attribute/standard/PrintQualityï�:gnu/javax/print/ipp/attribute/defaults/PrintQualityDefaultñ�*javax/print/attribute/standard/Compressionó�<gnu/javax/print/ipp/attribute/supported/CompressionSupported	ðõö÷�NONE�,Ljavax/print/attribute/standard/Compression;ù�)javax/print/attribute/standard/PageRangesÿÿÿ
                                    ! øü�1ý�(II)V�getName�getServiceUIFactory� ()Ljavax/print/ServiceUIFactory;�getSupportedAttributeCategories�()[Ljava/lang/Class;�()[Ljava/lang/Class<*>;�3javax/print/attribute/standard/JobPrioritySupported�=gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported	�:gnu/javax/print/ipp/attribute/supported/JobSheetsSupported�Ignu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported
                                    �.javax/print/attribute/standard/CopiesSupported�;gnu/javax/print/ipp/attribute/supported/FinishingsSupported	ö�=Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;�¯�Å�contains�;gnu/javax/print/ipp/attribute/supported/PageRangesSupported�6gnu/javax/print/ipp/attribute/supported/SidesSupported�0javax/print/attribute/standard/NumberUpSupported�Egnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported�6gnu/javax/print/ipp/attribute/supported/MediaSupported!�Bgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported#�=gnu/javax/print/ipp/attribute/supported/PrintQualitySupported%�6javax/print/attribute/standard/JobImpressionsSupported'�-javax/print/attribute/standard/JobImpressions)�2javax/print/attribute/standard/JobKOctetsSupported+�)javax/print/attribute/standard/JobKOctets-�6javax/print/attribute/standard/JobMediaSheetsSupported/�-javax/print/attribute/standard/JobMediaSheetsx�
                                    ! categories�FLjava/util/Set<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;>;�NLjava/util/Set<Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;>;�getSupportedAttributeValues�`(Ljava/lang/Class;Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)Ljava/lang/Object;�„(Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)Ljava/lang/Object;8�"category must be of type Attribute
                                    ! �:;<�isDocFlavorSupported�(Ljavax/print/DocFlavor;)Z>�flavor is not supported
                                    ! �@AT�isAttributeCategorySupported	µCDº�
                                    FIDELITY_TRUE
                                    ! FHG� gnu/javax/print/ipp/IppUtilitiesIJ�getSupportedAttrName�%(Ljava/lang/Class;)Ljava/lang/String;L�1gnu/javax/print/ipp/attribute/RequestedAttributes
                                    ! K
                                    ! OQP�4gnu/javax/print/ipp/attribute/printer/DocumentFormatRS�createDocumentFormat�O(Ljavax/print/DocFlavor;)Lgnu/javax/print/ipp/attribute/printer/DocumentFormat;
                                    ! �“UVW�
                                    getStatusCode�()S	Y[Z�gnu/classpath/debug/Component\]�IPP�Lgnu/classpath/debug/Component;_�Statuscode not OK - got:
                                    ! ab�(I)Ljava/lang/StringBuilder;
                                    ! dfe�java/util/logging/Loggergh�log�.(Ljava/util/logging/Level;Ljava/lang/String;)Vj�IOException
                                    ! dlgm�C(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)Vo�IPPException
                                    ! �qrs�&handleSupportedAttributeValuesResponse�F(Lgnu/javax/print/ipp/IppResponse;Ljava/lang/Class;)Ljava/lang/Object;�
                                    ! attributes�$Ljavax/print/attribute/AttributeSet;�categoryName�f�6Lgnu/javax/print/ipp/attribute/printer/DocumentFormat;�status�"Lgnu/javax/print/ipp/IppException;�j(Lgnu/javax/print/ipp/IppResponse;Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;)Ljava/lang/Object;
                                    ! F}~�getSupportedCategory�$(Ljava/lang/Class;)Ljava/lang/Class;�java/util/Date
                                    ! €�K
                                    ! Ä„�1…�(Ljava/util/Date;)V
                                    ! ‡ˆ‰�getAssociatedAttributeArray�<(Ljava/util/Set;)[Ljavax/print/attribute/standard/JobSheets;
                                    ! 
                                    ! ‹ˆŒ�K(Ljava/util/Set;)[Ljavax/print/attribute/standard/MultipleDocumentHandling;
                                    ! Žˆ�=(Ljava/util/Set;)[Ljavax/print/attribute/standard/Finishings;
                                    ! ‘ˆ’�G(Ljava/util/Set;)[Ljavax/print/attribute/standard/OrientationRequested;
                                    ! ”ˆ•�8(Ljava/util/Set;)[Ljavax/print/attribute/standard/Media;
                                    !  —ˆ˜�D(Ljava/util/Set;)[Ljavax/print/attribute/standard/PrinterResolution;
                                    ! "šˆ›�?(Ljava/util/Set;)[Ljavax/print/attribute/standard/PrintQuality;
                                    ! òˆž�>(Ljava/util/Set;)[Ljavax/print/attribute/standard/Compression; �[[I
                                    ! ¢£¤�
                                      getMembers�()[[I
                                    ! ¦�1§�([[I)V�printerAtts�printerAttribute�suppCategory�members�it�Ljava/util/Iterator;�value�	supported�2Ljavax/print/attribute/standard/NumberUpSupported;�ŠLjava/util/List<Ljava/util/Map<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;>;�7Ljava/util/Iterator<Ljavax/print/attribute/Attribute;>;�getSupportedDocFlavors�()[Ljavax/print/DocFlavor;�˜a�˜�è¸�[Ljavax/print/DocFlavor;�getUnsupportedAttributes�a(Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)Ljavax/print/attribute/AttributeSet;	�u¼½�y�VALIDATE_JOB¿aÀ�"javax/print/attribute/AttributeSet
                                    ! �lÂÃÄ�"addAndFilterJobOperationAttributes�'(Ljavax/print/attribute/AttributeSet;)V
                                    ! �lÆÇÄ�!addAndFilterJobTemplateAttributes
                                    ! �“É¹�–�aÌ�&javax/print/attribute/HashAttributeSet
                                    ! �K
                                    ! ˧�operationId�S�unsupportedMaps�unsupportedAttr�(Ljavax/print/attribute/HashAttributeSet;�unsupported�8(Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;)Z
                                    ! �×
                                    ! ÙÛÚ�java/util/ArraysÜÝ�asList�%([Ljava/lang/Object;)Ljava/util/List;�˜�isAttributeValueSupported�_(Ljavax/print/attribute/Attribute;Ljavax/print/DocFlavor;Ljavax/print/attribute/AttributeSet;)Z�»âã;�getCategory
                                    ! �å45
                                    ! �¾çè�É�isArrayê�[Ljava/lang/Object;ì�#javax/print/attribute/IntegerSyntax
                                    ! îï�((Ljavax/print/attribute/IntegerSyntax;)Z
                                    ! î
                                    ! »�{
                                    ! �{�attrval�Ljava/lang/Object;�priority�,Ljavax/print/attribute/standard/JobPriority;�maxSupported�5Ljavax/print/attribute/standard/JobPrioritySupported;ú�DocFlavor may not be null.� addPrintServiceAttributeListener�4(Ljavax/print/event/PrintServiceAttributeListener;)V
                                    ! �W��listener�1Ljavax/print/event/PrintServiceAttributeListener;�#removePrintServiceAttributeListener
                                    ! �W��remove�IppPrinter: 
                                    ! �þ�î�
                                    getPrinterURI�-()Ljavax/print/attribute/standard/PrinterURI;�
                                      SourceFile�IppPrintService.java�InnerClasses�
                                      BYTE_ARRAY�
                                    ! CHAR_ARRAY�INPUT_STREAM�READER�SERVICE_FORMATTED�STRING�URL�!����������	����
                                    ! �����	����
                                    �‚�����‚��������������	��������������	���������������������� �!��"���Z������&²�#³�)»�+Y-·�/³�3»�5Y79¸�;·�A³�B±����D�������­��»��¼��½��¼�%�ˆ�E�������1�F��G�����H�"���ž�����2*·�J*»�LY+·�Nµ�Q*,µ�S*-µ�U*»�WY·�Yµ�Z**·�\µ�`*·�b±����D���*�
                                    ! ���Ë��Î��Ï��Ð��Ò��Ó�"�Ò�%�Õ�-�Ö�1�×�E���*����2�e�f�����2�g�h����2�i�����2�j����^�_��G�����H�	����k�"���Ò�����TL»�lY*´�Q¶�n*´�S*´�U·�rM²�t¶�z>,“¶�~,¶�‚,*´�Q¶�…,¶�‰L§�M»�HY,·�¿+¶�’¹�—�À�°���7�:�Ÿ��D���*�
                                    ! ���â��æ��è� �é�&�ê�*�ë�2�í�:�ï�;�ñ�F�ô�E���4����T�e�f����R�¡�¢���!�£�¤�� ��¥�¦��;��§�¨���©�ª��	����«�"���Õ�����I*´�`+¹�¬�À�¯M»�WY·�YN,¹�±�:§�¹�µ�À�»:-+¶�½À�»¹�Â�W¹�Æ�šÿÝ-°����D����������-�=�G�E���4����I�e�f�����I�Ê�Ë���;�Ì�Í���3�Î�Í��-��Ï�Ð��Ñ��� ����I�Ê�Ò���;�Ì�Ó���3�Î�Ô���Õ�Ö��	����×�"���}�����*´�`+¹�¬�À�¯M,¹�Ø�2À�ܹ�Þ�°����D���
                                    ! �����E��� �����e�f������Ê�Ë����Ì�Í��Ñ��������Ê�â����Ì�Ó���d�!��"��Ò����8*ã·�å½�ã¹�ç�À�êL*+2¶�ìµ�ï*»�ñY·�óµ�ô*ö·�åM,ƹ,¹�±�:§}¹�µ�À�öN-¶�ø:ù¶�û™�D*´�ô²�¹�W*´�ô²¹�W*´�ô²¹�W»Y¸·¶¶ :§�L#¶�û™�A*´�ô²%¹�W*´�ô²(¹�W*´�ô²*¹�W»Y¸·¶¶ :6½�¾Y,SY.SY0S:6§�\2¶2:	6
                                    ! §�A	
                                    ! 2¶62¶<™�+	
                                    ! 2¶=À>:¶@¶�û™�*´�ô¹�6„
                                    ! 
                                    ! 	¾¡ÿ½„¾¡ÿ¢š�Q*´�ô»>YC·E¹�W*´�ô»>YH·E¹�W*´�ô»>YJ·E¹�W§�W§�W§�W¹�Æ�šþ*¶LO¶Q™�*´�ô²U¹�W*´�ô²[¹�W*^·�åN*»�ñY-¹`�·cµf-¹�±�:§�#¹�µ�À^:*´f»�LY¶h·�N¶iW¹�Æ�šÿÙ±��欯j�欳l�欷n��D���Ê�2����%�(&�/'�3)�I+�O-�Y/�f0�s1�€4�š6�¥8�²9�¿:�Ì=�ãC�æF�ìF�òG�øH�üF�þKMNP'R5SBTONZKeXj[€\–]¯`³d·h¸)ÂnÆoÏsÜtéyñz{}-{7�E���„�
                                    ��8�e�f���%p�ë��/	q�Í��Iors��Oit���æ�Òuv��þ�±wx��dy�¦��Lz{�	�I|�¦�
                                    ! 5�}~�ñ�G�Í���g€��Ñ�����/	q�ñ�G‚��ƒ„��"���;�����»…Y**´�S*´�U·‡°����D������ˆ�E��������e�f���Š‹��	���Œ�"���Æ�����H+Ç�»Y·‘¿’+¶Qš�»lY”·–¿*+·�åM,Æ�,¹`�ž�,¹�±�¹�µ�À’°°����D���*�
                                    ! ��‘�’�”�•�–� •�$˜�*™�7š�Fœ�E��� ����H�e�f�����H—�Ë��*��Ì�Í��Ñ�������H—�Ò��*��Ì�Ô��˜™��"���Ú�����d»šY·œL*´�`¹�¹¡�N§�?-¹�µ�À�¯M,¹�±�:§� ¹�µ�À�»:Á’™�+¹¤�W¹�Æ�šÿÜ-¹�Æ�šÿ¾+¸©°����D���"���¤�¦�$¨�;ª�C«�L¨�V¦�_¯�E���*����d�e�f����\�̯��$�2°�Í��;�±�Ð��Ñ�����$�2°�Ó��²³��	���´�"��ë����é+µ¶<™�²·°++¶<™�²�3°+5¶<™�²�B°+»¶<™�*´�`½¹¿�™�*½·°+Ķ<™�*´�`ƹ¿�™�*Æ·°+ȶ<™�*´�`ʹ¿�™�*Ê·°+̶<™�*´�`ι¿�™�*η°+ж<™�*´�`Ò¹¿�™�*Ò·°+Ô¶<™�*´�`Ö¹¿�™�*Ö·°+ض<™�*´�`Ú¹¿�™�*Ú·°+ܶ<™�*´�`Þ¹¿�™�*Þ·°+à¶<™�*´�`⹿�™�*â·°+ä¶<™�*´�`湿�™�*æ·°+è¶<™�*´�`깿�™�*ê·°+ì¶<™�*´�`�™�*î·°+ð¶<™�*´�`ò¹¿�™�²ô°+ø¶<™�»øYú·û°°����D���Â�0��¸�
                                    ! ¹�º�»�¼�$½�(À�2Á�AÂ�IÃ�SÄ�bÅ�jÆ�tÇ�ƒÈ�‹É�•Ê�¤Ë�¬Ì�¶Í�ÅÎ�ÍÏ�×Ð�æÑ�îÒ�øÓÔÕÖ(×0Ø:ÙIÚQÛ[ÜjÝrÞ|ß‹à“áâ¬ã´ä¾åÍæÑçÛèçê�E������é�e�f����é—�Ë��Ñ������é—�â��þ�î��"���/�����*´�ï°����D������ó�E��������e�f���ÿ���"���,�����°����D�������E��������e�f�����	����"��ü����þ»�WY·�YL*´�`¹¿�™�
                                    +»¹�Â�W*´�`¹¿�™�
                                    +Ĺ�Â�W*´�`¹¿�™�
                                    +ȹ�Â�W*´�`
                                    ! ¹¿�™�
                                    +̹�Â�W*´�`¹¿�™�
                                    +й�Â�W*´�`¹¿�™�+*·�åM,¹`� �,²¹�š�
                                    +Ô¹�Â�W*´�`¹¿�™�
                                    +ø¹�Â�W*´�`¹¿�™�
                                    +ع�Â�W*´�`¹¿�™�
                                    +ܹ�Â�W*´�`¹¿�™�
                                    +à¹�Â�W*´�`¹¿�™�
                                    +ä¹�Â�W*´�` ¹¿�™�
                                    +è¹�Â�W*´�`"¹¿�™�
                                    +ì¹�Â�W*´�`ò¹¿�™�
                                    +ð¹�Â�W*´�`$¹¿�™�
                                    +&¹�Â�W*´�`(¹¿�™�
                                    +*¹�Â�W*´�`,¹¿�™�
                                    +.¹�Â�W+µ¹�Â�W++¹�Â�W+5¹�Â�W++¹`�½�¾¹�ç�À0°����D���ª�*��
                                    ! �	�
                                    ��!�0�:�I�S�b�l�{�…�”�œ�²�¼�Ë�Õ �ä!�î"�ý#$% &/'9(H)R*a+k1z2„3“45¬6¶7Å8Ï;Ù<â=ë?�E��� ���þ�e�f���ö1�Í��œ� �Ì�Í��Ñ�����ö12��œ� �Ì3��45��	���6�"��{����;+Ç�»Y·‘¿»+¶Qš�»lY7·–¿,Æ�*,¶9š�»lY=·–¿*+¶?š�°+µ¶<™�½µY²·SY²BS°++¶<™�²�3°+5¶<™�²�B°+¸E::»�lY*´�Q¶�n*´�S*´�U·�r:²�t¶�z“¶�~¶�‚»KY·M¶�…*´�Q¶�…,Æ�,¸N:¶�…¶�‰:¶T6™�PŸ�JŸ�D²�)²X»Y^·¶`¶ ¶c§�&:²�)²Xi¶k§�:²�)²Xn¶k*+¶p°��‚
                                    �Ÿ�‚
                                    #�H��D���–�%��Q�R�T�U�#W�/X�:Z�B[�D^�N_�_`�ha�lb�uc�yf�h�‚k�šl�œm�£l�¦n�«o�¹p�Âr�Æt�Ìu�Óx�Úz�á{�æ|�ì}�ò‚…#‡%Š3�E���p���;�e�f����;—�Ë���;}~���;tu���¼v���‚�¹�¡�¢��š�v�£�¤��Ì�wx��á�/y�¦���§�¨�%��§z��Ñ������;—�â��rs��	���{�"������Ÿ+¶�’N-¹�—�À�:,¸|:¹�¬�À�¯:¶<™�¹�±�¹�µ�À°¶<™�»ÄY»€Y·‚·ƒ°¶<™�	¸†°
                                    ! ¶<™�	¸Š°¶<™�¹�±�¹�µ�À°¶<™�	¸°¶<™�½øY»øYú·ûS°¶<™�	¸°¶<™�	¸“° ¶<™�	¸–°"¶<™�	¸™°ò¶<™�	¸œ°¶<™�z¹`� �¹�±�¹�µ�°¹`�ÅŸ:¹�±�:6	§�+¹�µ�À¶¡2.6
                                    ! 	¼
                                      Y
                                      OY
                                    ! OS„		¹`�¡ÿÏ»Y·¥:		°°����D���¦�)��¡� �¤�¥�¦�%®�0¯�@°�K±�Z²�e³�k´�vµ�|¶�‡·�—¸�¢¹�¨º�³»�Ƽ�ѽ�×¾�â¿�èÀ�óÁ�ùÂÃ
                                    ! ÄÅÇ&É1Ê>ÌLÍUÎ[ÐnÑ€ÎÔšÕØ�E���z���Ÿ�e�f����Ÿ�¡�¢���Ÿ—�Ë��š¨���Ž©���ˆª�Ë��%z±�Í�L�Q« �U�H¬­�X�7y�¦�	n�®�¦�
                                    ! š�¯°�	�Ñ���>���Ÿ—�â��š¨±��Ž©�
                                    ! ��ˆª�â��%z±�Ó�U�H¬²��³´��"���C�����*´�ô*´�ô¹µ�½>¹¶�À·°����D������à�E��������e�f���¹º��"��ë����g+Æ�*+¶9š�»lY=·–¿N»�lY*´�Q¶�n*´�S*´�U·�r:²»¶�z“6¶�~¶�‚*´�Q¶�…²B¶�…,Æ�,¹¾�ž�,¶Á,¶Å+Æ�+¸N:¶�…¶�‰N-¶T6™�PŸ�JŸ�D²�)²X»Y^·¶`¶ ¶c§�&:²�)²Xi¶k§�:²�)²Xn¶k-¶È:¹µ�š�°¹�—�À�:¹Ê�š�°»ËY·Í:¹�¹¡�:§�9¹�µ�À�¯:¹�±�:
                                    ! §�
                                    ! ¹�µ�À�»:		¶ÎW
                                    ! ¹�Æ�šÿå¹�Æ�šÿð���¹�¼�Ÿ��¹�Ï�H��D���ž�'��í�î�ð�ó�1ô�:õ�Aö�F÷�Oø�Wú�dü�jý�p��t�z��‡�	�’
                                    ! �˜�ž
                                    �¼�¾�Ï�Ñ�ß�ã�å�ï�ñ!�þ"#
                                    ! '(0*H+P*Z(d.�E���˜���g�e�f����g}~���gtu��N�¡�¢��1�‹�£�¤��:�‚ÏÐ��z�wx���/y�¦��¾��§�¨��Ñ��§z��å�‚Ñ���þ�iÒ���T�ÌÓ�0�*Ô�Í�H��Ï�Ð�	�Ñ��� ��å�‚ѱ��þ�iÒ�
                                    ! �0�*Ô�Ó��AT��	���Õ�"���‡�����1+Ç�»Y·‘¿»+¶Qš�»lY7·–¿*¶Ö¸Ø+¹Þ�¬����D������6�7�9�:�#<�E�������1�e�f�����1—�Ë��Ñ�������1—�â��ßà��"��R�����¤*+¹á�,-¶ä:Ç�¬¶L¶æ™�Àé¸Ø+¹Þ�¬¶L+¹á�¶<™�¬¶L¶<™�À+Àë¶í¬¶L¶<™�À+Àë¶ð¬¶L¶<™�+À»:À:¶ñ¶ò¢�¬¬����D���N���F�G�	F�I�J�M� N�/Q�@R�BV�PW�]Y�kZ�x\�†^�Œ_�“`� a�¢h�E���H����¤�e�f�����¤ó�Ð����¤}~����¤tu���–Ÿô��Œ�õö��“�÷ø��;<��"���V�����+Ç�»Yù·‘¿*´�ô+¹Þ�¬����D������q�r�t�E��������e�f�����}~��ûü��"���B�����
                                    ! *´�Z+¶ýW±����D���
                                    ! ���~�	�E�������
                                    ! �e�f�����
                                    ! þÿ���ü��"���B�����
                                    ! *´�Z+¶W±����D���
                                    ! ���‡�	ˆ�E�������
                                    ! �e�f�����
                                    ! þÿ��"�î��"���?�����»Y·*¶¶¶ °����D�������E��������e�f���	��"���/�����*´�Q°����D������š�E��������e�f���
                                    ! ������:�,>
                                    �	>�	.>�	>�	V>�	
                                    >�	0>�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class	Mon Aug  2 13:46:09 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1C��,gnu/javax/print/ipp/IppRequest$RequestWriter��java/lang/Object�out�Ljava/io/DataOutputStream;�this$0� Lgnu/javax/print/ipp/IppRequest;�<init>�=(Lgnu/javax/print/ipp/IppRequest;Ljava/io/DataOutputStream;)V�Code	��
                                    ��
                                      ���	��()V	�����LineNumberTable�LocalVariableTable�this�.Lgnu/javax/print/ipp/IppRequest$RequestWriter;�stream�write�((Ljavax/print/attribute/IntegerSyntax;)V�
                                      Exceptions��java/io/IOException��javax/print/attribute/Attribute�� �!�"�getName�()Ljava/lang/String;
                                      �$�&�%�java/io/DataOutputStream�'�(�	writeByte�(I)V
                                    --- 1,4 ----
                                    ! Êþº¾���1;��,gnu/javax/print/ipp/IppRequest$RequestWriter��java/lang/Object�out�Ljava/io/DataOutputStream;�this$0� Lgnu/javax/print/ipp/IppRequest;�<init>�=(Lgnu/javax/print/ipp/IppRequest;Ljava/io/DataOutputStream;)V�Code	��
                                    ��
                                      ���	��()V	�����LineNumberTable�LocalVariableTable�this�.Lgnu/javax/print/ipp/IppRequest$RequestWriter;�stream�write�((Ljavax/print/attribute/IntegerSyntax;)V�
                                      Exceptions��java/io/IOException��javax/print/attribute/Attribute�� �!�"�getName�()Ljava/lang/String;
                                      �$�&�%�java/io/DataOutputStream�'�(�	writeByte�(I)V
                                    *************** getMembers�()[[I�*Ljavax/print/attrib
                                    *** 24,60 ****
                                      �¢�¤�£�java/net/URI�¥�"�
                                    toASCIIString�!Ljavax/print/attribute/URISyntax;�uriAscii�0(Lgnu/javax/print/ipp/attribute/CharsetSyntax;)V
                                      �ª�˜�«�+gnu/javax/print/ipp/attribute/CharsetSyntax�-Lgnu/javax/print/ipp/attribute/CharsetSyntax;�8(Lgnu/javax/print/ipp/attribute/NaturalLanguageSyntax;)V
                                      �¯�˜�°�3gnu/javax/print/ipp/attribute/NaturalLanguageSyntax�5Lgnu/javax/print/ipp/attribute/NaturalLanguageSyntax;�6(Lgnu/javax/print/ipp/attribute/RequestedAttributes;)V
                                    ! �´�¶�µ�1gnu/javax/print/ipp/attribute/RequestedAttributes�·�¸�	getValues�()Ljava/util/List;�º�¼�»�java/util/List�~�½�(I)Ljava/lang/Object;�º�¿�À�.�size�3Lgnu/javax/print/ipp/attribute/RequestedAttributes;�values�Ljava/util/List;�writeOperationAttributes�'(Ljavax/print/attribute/AttributeSet;)V�Ç� gnu/javax/print/ipp/IppException
                                    ! �$�É��(�Ë�3gnu/javax/print/ipp/attribute/job/AttributesCharset�Í�Ï�Î�"javax/print/attribute/AttributeSet�~�Ð�4(Ljava/lang/Class;)Ljavax/print/attribute/Attribute;
                                    ! ��Ò��¨	�Ô�Ö�Õ�gnu/javax/print/ipp/IppRequest�×�Ø�logger�Ljava/util/logging/Logger;	�Ú�Ü�Û�gnu/classpath/debug/Component�Ý�Þ�IPP�Lgnu/classpath/debug/Component;�à�java/lang/StringBuilder�â�Attribute: Name: <
                                    ! �ß�ä�	�å�(Ljava/lang/String;)V��ç�è�é�getCategory�()Ljava/lang/Class;
                                    ! �ë� �ì�java/lang/Class
                                    ! �ß�î�ï�ð�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�ò�
                                      > Value: <
                                    ! ��R�õ�>
                                    ! ��R
                                    ! �ø�ú�ù�java/util/logging/Logger�û�ü�log�.(Ljava/util/logging/Level;Ljava/lang/String;)V�Í�þ�ÿ��remove�(Ljava/lang/Class;)Z�;gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage
                                    ! ���­�)javax/print/attribute/standard/PrinterURI�(gnu/javax/print/ipp/attribute/job/JobUri
                                    ! �'gnu/javax/print/ipp/attribute/job/JobId
                                    ! ���š
                                    ! �ç
                                    ! �R
                                    ! �ç
                                    ! �R
                                    ! ���
                                    ! 	�ç
                                    ! 	�R
                                    ! ���²�RequestedAttributes: <
                                    ! �ß�ï�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;�/Unknown target operation attribute combination.
                                    ! �Æ�ä
                                    ! � !��writeAttributes�
                                      attributes�$Ljavax/print/attribute/AttributeSet;�att�!Ljavax/print/attribute/Attribute;�
                                    ! printerUri�+Ljavax/print/attribute/standard/PrinterURI;�jobUri�*Lgnu/javax/print/ipp/attribute/job/JobUri;�jobId�)Lgnu/javax/print/ipp/attribute/job/JobId;�reqAttrs�Í./0�toArray�$()[Ljavax/print/attribute/Attribute;
                                    ! �2��Š
                                    ! �4��m
                                    ! �6��b
                                    ! �8��V
                                    ! �:��E<�Unknown syntax type�attributeArray�"[Ljavax/print/attribute/Attribute;�
                                      SourceFile�IppRequest.java�InnerClasses�
                                    RequestWriter� ���������������
                                    ���	�
                                      �����K�����*+µ�*·�*,µ�±��������������	���������������������������������“�����=+À�¹��M*´�!¶�#*´�,¶�)¶�/*´�,¶�2¶�6*´�¶�/*´�+¶�9¶�>±�����������™�
                                      �š��›��œ�)��1�ž�<�Ÿ���� ����=�������=�A�B��
                                    --- 24,60 ----
                                      �¢�¤�£�java/net/URI�¥�"�
                                    toASCIIString�!Ljavax/print/attribute/URISyntax;�uriAscii�0(Lgnu/javax/print/ipp/attribute/CharsetSyntax;)V
                                      �ª�˜�«�+gnu/javax/print/ipp/attribute/CharsetSyntax�-Lgnu/javax/print/ipp/attribute/CharsetSyntax;�8(Lgnu/javax/print/ipp/attribute/NaturalLanguageSyntax;)V
                                      �¯�˜�°�3gnu/javax/print/ipp/attribute/NaturalLanguageSyntax�5Lgnu/javax/print/ipp/attribute/NaturalLanguageSyntax;�6(Lgnu/javax/print/ipp/attribute/RequestedAttributes;)V
                                    ! �´�¶�µ�1gnu/javax/print/ipp/attribute/RequestedAttributes�·�¸�	getValues�()[Ljava/lang/String;�3Lgnu/javax/print/ipp/attribute/RequestedAttributes;�values�[Ljava/lang/String;�writeOperationAttributes�'(Ljavax/print/attribute/AttributeSet;)V�¿� gnu/javax/print/ipp/IppException
                                    ! �$�Á��(�Ã�3gnu/javax/print/ipp/attribute/job/AttributesCharset�Å�Ç�Æ�"javax/print/attribute/AttributeSet�~�È�4(Ljava/lang/Class;)Ljavax/print/attribute/Attribute;
                                    ! ��Ê��¨	�Ì�Î�Í�gnu/javax/print/ipp/IppRequest�Ï�Ð�logger�Ljava/util/logging/Logger;	�Ò�Ô�Ó�gnu/classpath/debug/Component�Õ�Ö�IPP�Lgnu/classpath/debug/Component;�Ø�java/lang/StringBuilder�Ú�Attribute: Name: <
                                    ! �×�Ü�	�Ý�(Ljava/lang/String;)V��ß�à�á�getCategory�()Ljava/lang/Class;
                                    ! �ã� �ä�java/lang/Class
                                    ! �×�æ�ç�è�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�ê�
                                      > Value: <
                                    ! ��R�í�>
                                    ! ��R
                                    ! �ð�ò�ñ�java/util/logging/Logger�ó�ô�log�.(Ljava/util/logging/Level;Ljava/lang/String;)V�Å�ö�÷�ø�remove�(Ljava/lang/Class;)Z�ú�;gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage
                                    ! ��ü��­�þ�)javax/print/attribute/standard/PrinterURI��(gnu/javax/print/ipp/attribute/job/JobUri�'gnu/javax/print/ipp/attribute/job/JobId
                                    ! ���š
                                    ! �ý�ß
                                    ! �ý�R
                                    ! �ÿ�ß
                                    ! �ÿ�R
                                    ! �
                                    ! ��
                                    ! �ß
                                    ! �R
                                    ! ���²�RequestedAttributes: <
                                    ! �×�ç�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;�/Unknown target operation attribute combination.
                                    ! �¾�Ü
                                    ! ��½�writeAttributes�
                                      attributes�$Ljavax/print/attribute/AttributeSet;�att�!Ljavax/print/attribute/Attribute;�
                                    ! printerUri�+Ljavax/print/attribute/standard/PrinterURI;�jobUri�*Lgnu/javax/print/ipp/attribute/job/JobUri;�jobId�)Lgnu/javax/print/ipp/attribute/job/JobId;�reqAttrs�Å&'(�toArray�$()[Ljavax/print/attribute/Attribute;
                                    ! �*��Š
                                    ! �,��m
                                    ! �.��b
                                    ! �0��V
                                    ! �2��E4�Unknown syntax type�attributeArray�"[Ljavax/print/attribute/Attribute;�
                                      SourceFile�IppRequest.java�InnerClasses�
                                    RequestWriter� ���������������
                                    ���	�
                                      �����K�����*+µ�*·�*,µ�±��������������	���������������������������������“�����=+À�¹��M*´�!¶�#*´�,¶�)¶�/*´�,¶�2¶�6*´�¶�/*´�+¶�9¶�>±�����������™�
                                      �š��›��œ�)��1�ž�<�Ÿ���� ����=�������=�A�B��
                                    *************** SourceFile�IppRequest.java�InnerClas
                                    *** 77,82 ****
                                      `�a�b�)c�7d�Ee���� ����F�������F�A�¬��
                                      �<�C�D����­�����������œ�����F+À�¹��M*´�H¶�#*´�,¶�)¶�/*´�,¶�2¶�6*´�+¶�®¶�)¶�/*´�+¶�®¶�2¶�6±����������o�
                                      p�q�r�)s�7t�Eu���� ����F�������F�A�±��
                                    ! �<�C�D����²����������)�����£+¶�³M+¹��N*´�D¶�#*´�-¶�)¶�/*´�-¶�2¶�6*´�,¹�¹�À�*¶�)¶�/*´�,¹�¹�À�*¶�2¶�66§�A*´�D¶�#*´�¶�/*´�,¹�¹�À�*¶�)¶�/*´�,¹�¹�À�*¶�2¶�6„,¹�¾�¡ÿº±�������:�����‚�ƒ� „�+…�?†�Sˆ�YŠ�b‹�jŒ��”ˆ�¢����4����£�������£�A�Á���ž�Â�Ã���—�C�D��V�L�`�a���Ä�Å��������Æ���ì����®*´�¶�È+ʹ�Ì�M*,À�ª·�Ѳ�Ó²�Ù»�ßYá·�ã,¹�æ�¶�ê¶�íñ¶�í,¶�ó¶�íô¶�í¶�ö¶�÷+ʹ�ý�W+¹�Ì�M*,À�¯·+¹�ý�W²�Ó²�Ù»�ßYá·�ã,¹�æ�¶�ê¶�íñ¶�í,¶�ó¶�íô¶�í¶�ö¶�÷+¹�Ì�ÀN+¹�Ì�À:+	¹�Ì�À	:+´¹�Ì�À�´:-Æ�OÇ�JÇ�E*-·+¹�ý�W²�Ó²�Ù»�ßYá·�ã-¶
                                    ¶�ê¶�íñ¶�í-¶¶�íô¶�í¶�ö¶�÷§ƒÆ�QÇ�L-Ç�H*·+¹�ý�W²�Ó²�Ù»�ßYá·�㶶�ê¶�íñ¶�í¶¶�íô¶�í¶�ö¶�÷§0-Æ�‘Æ�ŒÇ�‡*-·*·+¹�ý�W+	¹�ý�W²�Ó²�Ù»�ßYá·�ã-¶
                                    ¶�ê¶�íñ¶�í-¶¶�íô¶�í¶�ö¶�÷²�Ó²�Ù»�ßYá·�㶶�ê¶�íñ¶�í¶¶�íô¶�í¶�ö¶�÷§�žÆ�WÆ�R*·+¹�ý�W+	¹�ý�W²�Ó²�Ù»�ßYá·�㶶�ê¶�íñ¶�í¶¶�íô¶�í¶�ö¶�÷§�EÆ�5*·+´¹�ý�W²�Ó²�Ù»�ßY·�ã¶ô¶�í¶�ö¶�÷§�»�ÆY·¿*+¶±�������Þ�7��Ÿ�¢�£�¥�(¦�H¥�K¨�Tª�^«�f¬�p®�¯�Ÿ®�¢²�¯³�½´�˶�Öµ�Ø·�æ¹�ëº�õ»¼"»(¾6À<ÁFÂWÃuÂ{ʼnǎȔɞʨ˸ÌÕËØÍìÎÍ
                                    ÐÒÓ'Ô1ÕEÖ`ÕfØkÚqÛzÜà¨ã­ä����H���®������®"#��$%��¯ÿ&'��½ñ()��Ëã*+��ØÖ,�Á��!�Å��������Æ���ë����3+¹-�M>§#²�Ó²�Ù»�ßYá·�ã,2¹�æ�¶�ê¶�íñ¶�í,2¶�ó¶�íô¶�í¶�ö¶�÷,2Á�:™�*,2À�:·§�Ô,2Á�–™�*,2À�–·1§�¾,2Á�o™�*,2À�o·3§�¨,2Á�d™�*,2À�d·5§�’,2Á�X™�*,2À�X·7§�|,2Á�M™�*,2À�M·9§�f,2Á�œ™�*,2À�œ·§�P,2Á�ª™�*,2À�ª·�ѧ�:,2Á�¯™�*,2À�¯·§�$,2Á�´™�*,2À�´·§�»�ÆY;·¿„,¾¡þݱ�������v���ó�ô�ö�÷�.ø�?ö�Bú�Kû�Xü�aý�nþ�wÿ�„���š�£�°�¹�Æ�Ï�Ü�å	�ò
                                    ! �û
                                    )ô2����*���3������3"#��,=>��	)�`�a��?���@A���
                                    ! ���ÔB��
                                    \ No newline at end of file
                                    --- 77,82 ----
                                      `�a�b�)c�7d�Ee���� ����F�������F�A�¬��
                                      �<�C�D����­�����������œ�����F+À�¹��M*´�H¶�#*´�,¶�)¶�/*´�,¶�2¶�6*´�+¶�®¶�)¶�/*´�+¶�®¶�2¶�6±����������o�
                                      p�q�r�)s�7t�Eu���� ����F�������F�A�±��
                                    ! �<�C�D����²����������	�����ƒ+¶�³M+¹��N*´�D¶�#*´�-¶�)¶�/*´�-¶�2¶�6*´�,2¶�)¶�/*´�,2¶�2¶�66§�3*´�D¶�#*´�¶�/*´�,2¶�)¶�/*´�,2¶�2¶�6„,¾¡ÿ̱�������:�����‚�ƒ� „�+…�8†�Eˆ�KŠ�T‹�\Œ�j�xˆ�‚����4����ƒ�������ƒ�A�¹���~�º�»���w�C�D��H�:�`�a���¼�½��������¾���ä����¦*´�¶�À+¹�Ä�M*,À�ª·�ɲ�˲�Ñ»�×YÙ·�Û,¹�Þ�¶�â¶�åé¶�å,¶�ë¶�åì¶�å¶�î¶�ï+¹�õ�W+ù¹�Ä�M*,À�¯·�û+ù¹�õ�W²�˲�Ñ»�×YÙ·�Û,¹�Þ�¶�â¶�åé¶�å,¶�ë¶�åì¶�å¶�î¶�ï+ý¹�Ä�À�ýN+ÿ¹�Ä�À�ÿ:+¹�Ä�À:+´¹�Ä�À�´:-Æ�NÇ�IÇ�D*-·+ý¹�õ�W²�˲�Ñ»�×YÙ·�Û-¶¶�â¶�åé¶�å-¶¶�åì¶�å¶�î¶�燎Æ�PÇ�K-Ç�G*·+ÿ¹�õ�W²�˲�Ñ»�×YÙ·�Û¶¶�â¶�åé¶�嶶�åì¶�å¶�î¶�ï§.-Æ�Æ�‹Ç�†*-·*·	+ý¹�õ�W+¹�õ�W²�˲�Ñ»�×YÙ·�Û-¶¶�â¶�åé¶�å-¶¶�åì¶�å¶�î¶�ï²�˲�Ñ»�×YÙ·�Û¶¶�â¶�åé¶�å¶¶�åì¶�å¶�î¶�ï§�Æ�VÆ�Q*·+ÿ¹�õ�W+¹�õ�W²�˲�Ñ»�×YÙ·�Û¶¶�â¶�åé¶�嶶�åì¶�å¶�î¶�ï§�EÆ�5*·
                                    +´¹�õ�W²�˲�Ñ»�×Y·�Û¶ì¶�å¶�î¶�ï§�»�¾Y·¿*+¶±�������Þ�7��Ÿ�¢�£�¥�(¦�H¥�K¨�Tª�]«�e¬�n®�}¯�®� ²�¬³�¹´�Ƕ�Òµ�Ô·�â¹�çº�ð»�¼»#¾1À7Á@ÂQÃoÂuŃLjȎɗʡ˱ÌÎËÑÍåÎ�ÍÐÒÓÔ)Õ=ÖXÕ^ØcÚiÛrÜ•à ã¥ä����H���¦������¦��•��¬ú��¹í !��Çß"#��ÔÒ$�¹���½��������¾���ë����3+¹%�M>§#²�˲�Ñ»�×YÙ·�Û,2¹�Þ�¶�â¶�åé¶�å,2¶�ë¶�åì¶�å¶�î¶�ï,2Á�:™�*,2À�:·	§�Ô,2Á�–™�*,2À�–·)§�¾,2Á�o™�*,2À�o·+§�¨,2Á�d™�*,2À�d·-§�’,2Á�X™�*,2À�X·/§�|,2Á�M™�*,2À�M·1§�f,2Á�œ™�*,2À�œ·§�P,2Á�ª™�*,2À�ª·�ɧ�:,2Á�¯™�*,2À�¯·�û§�$,2Á�´™�*,2À�´·
                                    §�»�¾Y3·¿„,¾¡þݱ�������v���ó�ô�ö�÷�.ø�?ö�Bú�Kû�Xü�aý�nþ�wÿ�„���š�£�°�¹�Æ�Ï�Ü�å	�ò
                                    ! �û
                                    )ô2����*���3������3��,56��	)�`�a��7���89���
                                    ! ���Ì:��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse$ResponseReader.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse$ResponseReader.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse$ResponseReader.class	Mon Aug  2 13:46:09 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse$ResponseReader.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1B��.gnu/javax/print/ipp/IppResponse$ResponseReader��java/lang/Object�VERSION�S�
                                    ConstantValue���this$0�!Lgnu/javax/print/ipp/IppResponse;�<init>�$(Lgnu/javax/print/ipp/IppResponse;)V�Code	���	�
                                      
                                      �����()V�LineNumberTable�LocalVariableTable�this�0Lgnu/javax/print/ipp/IppResponse$ResponseReader;�
                                    parseResponse�(Ljava/io/InputStream;)V�
                                      Exceptions�� gnu/javax/print/ipp/IppException��java/io/IOException��java/io/DataInputStream
                                    --- 1,4 ----
                                    ! Êþº¾���1J��.gnu/javax/print/ipp/IppResponse$ResponseReader��java/lang/Object�VERSION�S�
                                    ConstantValue���this$0�!Lgnu/javax/print/ipp/IppResponse;�<init>�$(Lgnu/javax/print/ipp/IppResponse;)V�Code	���	�
                                      
                                      �����()V�LineNumberTable�LocalVariableTable�this�0Lgnu/javax/print/ipp/IppResponse$ResponseReader;�
                                    parseResponse�(Ljava/io/InputStream;)V�
                                      Exceptions�� gnu/javax/print/ipp/IppException��java/io/IOException��java/io/DataInputStream
                                    *************** request_id�I�4�NVersion mismatch - i
                                    *** 22,131 ****
                                      ��™�š�›�read�([B)I
                                      �‘��ž��flush
                                      �‘� �¡�¢�toByteArray�()[B	�'�¤�¥�¦�data�[B�input�Ljava/io/InputStream;�stream�Ljava/io/DataInputStream;�version�tag�B�proceed�Z�tmp�Ljava/util/HashMap;�
                                    ! byteStream�Ljava/io/ByteArrayOutputStream;�readbuf�len
                                    ! �·�¹�¸�#gnu/javax/print/ipp/IppDelimiterTag�º�»�isDelimiterTag�(B)Z�½�¿�¾�javax/print/attribute/Attribute�À�Y�getName�Â�java/lang/String
                                    ! �Á�Ä��Å�([B)V�Ç�0Unexpected name value for out-of-band value tag 
                                    ! �É�Ë�Ê� gnu/javax/print/ipp/IppUtilities�Ì�›�convertToInt
                                    ! �É�Î�Ï�Ð�getIntegerAttribute�6(Ljava/lang/String;I)Ljavax/print/attribute/Attribute;
                                    ! �H�Ò��Ó�(I)V
                                    ! �É�Õ�Ö�×�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�Ù�!Unspecified octet string occured.
                                    ! ��Û�Ü�Ý�	parseDate�([B)Ljava/util/Date;�ß�printer-current-time
                                    ! �Á�á�â�v�equals�ä�8gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime
                                    ! �ã�æ��ç�(Ljava/util/Date;)V�é�date-time-at-creation�ë�1javax/print/attribute/standard/DateTimeAtCreation
                                    ! �ê�æ�î�date-time-at-processing�ð�3javax/print/attribute/standard/DateTimeAtProcessing
                                    ! �ï�æ�ó�date-time-at-completed�õ�2javax/print/attribute/standard/DateTimeAtCompleted
                                    ! �ô�æ
                                    ! �É�ø�Ì�ù�(BBBB)I�û�printer-resolution-default�ý�?gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault
                                    ! �ü�ÿ���(III)V�printer-resolution-supported�Bgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported
                                    ! �ÿ�copies-supported	�.javax/print/attribute/standard/CopiesSupported
                                    ! ��(II)V�number-up-supported�0javax/print/attribute/standard/NumberUpSupported
                                    ! �job-k-octets-supported�2javax/print/attribute/standard/JobKOctetsSupported
                                    ! �job-impressions-supported�6javax/print/attribute/standard/JobImpressionsSupported
                                    ! �job-media-sheets-supported�6javax/print/attribute/standard/JobMediaSheetsSupported
                                    ! 
                                    ! �É"#$�getTextAttribute�8(Ljava/lang/String;B[B)Ljavax/print/attribute/Attribute;&�job-hold-until-supported(�=gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported
                                    ! '*�+�'(Ljava/lang/String;Ljava/util/Locale;)V-�job-hold-until-default/�:gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault
                                    ! .*2�media-supported4�6gnu/javax/print/ipp/attribute/supported/MediaSupported
                                    ! 3*7�
                                    media-default9�3gnu/javax/print/ipp/attribute/defaults/MediaDefault
                                    ! 8*<�job-sheets-default>�7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault
                                    ! =*A�job-sheets-supportedC�:gnu/javax/print/ipp/attribute/supported/JobSheetsSupported
                                    ! B*F�job-state-reasons
                                    ! �HIJ�parseJobStateReasons�U([BLjavax/print/attribute/Attribute;)Ljavax/print/attribute/standard/JobStateReasons;L�printer-state-reasons
                                    ! �NOP�parsePrinterStateReasons�Y([BLjavax/print/attribute/Attribute;)Ljavax/print/attribute/standard/PrinterStateReasons;R�java/net/URI
                                    ! Q�6U�Wrong URI syntax encountered.
                                    ! �W�X�*(Ljava/lang/String;Ljava/lang/Exception;)VZ�job-uri\�(gnu/javax/print/ipp/attribute/job/JobUri
                                    ! [^�_�(Ljava/net/URI;)Va�job-printer-uric�/gnu/javax/print/ipp/attribute/job/JobPrinterUri
                                    ! b^f�
                                    job-more-infoh�-gnu/javax/print/ipp/attribute/job/JobMoreInfo
                                    ! g^k�printer-uri-supportedm�;gnu/javax/print/ipp/attribute/supported/PrinterUriSupported
                                    ! l^p�printer-more-infor�.javax/print/attribute/standard/PrinterMoreInfo
                                    ! q^u�printer-driver-installerw�<gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller
                                    ! v^z�printer-more-info-manufacturer|�:javax/print/attribute/standard/PrinterMoreInfoManufacturer
                                    ! {^�reference-uri-schemes-supported�attributes-charsetƒ�3gnu/javax/print/ipp/attribute/job/AttributesCharset
                                    ! ‚�6†�charset-configuredˆ�7gnu/javax/print/ipp/attribute/printer/CharsetConfigured
                                    ! ‡�6‹�charset-supported�8gnu/javax/print/ipp/attribute/supported/CharsetSupported
                                    ! Œ�6�attributes-natural-language’�;gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage
                                    ! ‘�6•�natural-language-configured—�?gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured
                                    ! –�6š�$generated-natural-language-supportedœ�Ignu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported
                                    ! ›�6Ÿ�document-format-default¡�<gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault
                                    !  *¤�document-format-supported¦�?gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported
                                    ! ¥*©�document-format«�4gnu/javax/print/ipp/attribute/printer/DocumentFormat
                                    ! ª*®� found.°�.gnu/javax/print/ipp/attribute/UnknownAttribute
                                    ! ¯²�³�(BLjava/lang/String;[B)V
                                    ! �µ¶·�addAttribute�3(Ljava/util/Map;Ljavax/print/attribute/Attribute;)V¹�Attribute: »� Value: 
                                    ! ��W¾�java/net/URISyntaxException�
                                      attributes�Ljava/util/Map;�
                                    lastAttribute�!Ljavax/print/attribute/Attribute;�	attribute�
                                    ! nameLength�name�Ljava/lang/String;�valueLength�value�uri�Ljava/net/URI;�str�	nameBytes�intValue�intVal�date�Ljava/util/Date;�	crossFeed�feed�units�lower�upper�e�Ljava/net/URISyntaxException;�½ÙÚÛ�getCategory�()Ljava/lang/Class;ÝßÞ�
                                    java/util/Mapàá�get�&(Ljava/lang/Object;)Ljava/lang/Object;ã�
                                    java/util/Setå�java/util/HashSet
                                    ! ä�Ýèéê�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;â�t�attributeGroup�clazz�Ljava/lang/Class;�attributeValues�Ljava/util/Set;ò�2javax/print/attribute/standard/PrinterStateReasons
                                    ! ñ�õ�none	÷ùø�'javax/print/attribute/standard/Severityúû�WARNING�)Ljavax/print/attribute/standard/Severity;
                                    ! ÷�W
                                    ! �Áþÿ��endsWith�(Ljava/lang/String;)Z	÷û�REPORT	÷û�ERROR
                                    ! �Á	
                                    ! �lastIndexOf�(I)I
                                    ! �Á
                                    �	substring�(II)Ljava/lang/String;�printer-state-reason�1javax/print/attribute/standard/PrinterStateReason
                                    ! ñé�‡(Ljavax/print/attribute/standard/PrinterStateReason;Ljavax/print/attribute/standard/Severity;)Ljavax/print/attribute/standard/Severity;�lastAttr�4Ljavax/print/attribute/standard/PrinterStateReasons;�severity�reason�3Ljavax/print/attribute/standard/PrinterStateReason;�.javax/print/attribute/standard/JobStateReasons
                                    ! ��job-state-reason!�-javax/print/attribute/standard/JobStateReason
                                    ! #�u$�2(Ljavax/print/attribute/standard/JobStateReason;)Z�0Ljavax/print/attribute/standard/JobStateReasons;�/Ljavax/print/attribute/standard/JobStateReason;
                                    ! �É()*�convertToShort�(BB)S
                                    ! ,.-�java/util/Calendar/0�getInstance�()Ljava/util/Calendar;
                                    ! ,23�set�6î€��ê`
                                    ! ,789�getTime�()Ljava/util/Date;�year�cal�Ljava/util/Calendar;�offsetMilli�
                                      SourceFile�IppResponse.java�InnerClasses�ResponseReader� ���������������	�
                                      ���������
                                    ���4�����
                                      *+µ�*·�±�����������ž��������
                                    ! ����������������
                                    ����
                                    ! ��¾»�Y+·� M,¶�">*´�,¶�"µ�&*´�,¶�+µ�/Ÿ�
                                    »�Y3·�5¿²�8²�<»�BYD·�F*´�´�&¸�G¶�MQ¶�M*´�´�/¶�S¶�V¶�Z66§š�	,¶�`6²�8²�<»�BYd·�F¸�G¶�M¶�V¶�Zª�����Á���������)���M���#���q���•6§�¼»�fY·�h:*,·�i6*´�´�m¹�q�W§�˜»�fY·�h:*,·�i6*´�´�w¹�q�W§�t»�fY·�h:*,·�i6*´�´�z¹�q�W§�P²�}ƒ¶�…»�fY·�h:*,·�i6*´�´�Š¹�q�W§�$»�Y»�BY·�F¸�G¶�M¶�M¶�V·�5¿šþò»�‘Y·�“:�¼:6	§�
                                    	¶�”,¶�˜Y6	ÿí¶�œ*´�¶�Ÿµ�£±�������Â�0���¬�	�®��¯��°�$�²�+�³�5�¶�D�·�c�¶�f�¹�i�º�l�½�o�¿�t�À�z�Â�—�Å�¼�È�¿�É�Â�Ë�Ë�Ì�Ô�Í�ã�Î�æ�Ð�ï�Ñ�ø�Ò�Ó
                                    ! �Õ�Ö�×+�Ø.�Ú6�Û?�ÜH�ÝW�ÞZ�àg�áw�à{�½€�æ‰�ç�è“�ê–�ë �ê¬�í±�î½�ï����„�
                                    ��¾������¾�§�¨��	µ�©�ª��°�«���iU�¬�­��lR�®�¯��Ë��°�±��ï��°�±���°�±�?��°�±�‰�5�²�³��.�´�¦�“�+�µ�2�	��k�l���������
                                    ��	����GN:,¶�`6¸�¶™�¬,¶�"6š�-¹�¼�:§�¼:,¶�˜W»�ÁY·�Ã:,¶�"6¼:,¶�˜W«����‚���������«������«������Ä���!���Ê���"���Ý���#���ò���0�����1�����2��~���3��ê���5�����6�����A�����B�����D��«���E��Œ���F��_���G��}���H��Ó���I��)»�Y»�BYÆ·�F¶�S¶�V·�5¿:§Ý¸�È6¸�Í:§Ê»�HY3·�Ѹ�Ô:§µ¸�È6
                                    »�HY
                                    ·�Ѹ�Ô:§›»�YØ·�5¿*·�Ú:Þ¶�à™�»�ãY·�å:§qè¶�à™�»�êY·�ì:§Yí¶�à™�»�ïY·�ñ:§Aò¶�à™7»�ôY·�ö:§)3333¸�÷63333¸�÷636ú¶�à™�»�üY·�þ:§Ú¶�à™Ï»Y·:§½3333¸�÷63333¸�÷6¶�à™�»Y·
                                    ! :§v
                                    ¶�à™�»Y·:§[¶�à™�»Y·:§@¶�à™�»Y·:§%¶�à™»Y· :§
                                    ! ¸!:§ü»�ÁY·�Ã:
                                    ! %¶�à™�»'Y
                                    ! ·):§×,¶�à™�».Y
                                    ! ·0:§½1¶�à™�»3Y
                                    ! ·5:§£6¶�à™�»8Y
                                    ! ·::§‰;¶�à™�»=Y
                                    ! ·?:§o@¶�à™�»BY
                                    ! ·D:§UE¶�à™�*-·G:§>K¶�à™�*-·M:§'
                                    ! ¸�Ô:§»QY»�ÁY·�÷S:	§�:»�YT·V¿Y¶�à™�»[Y	·]:§Þ`¶�à™�»bY	·d:§Åe¶�à™�»gY	·i:§¬j¶�à™�»lY	·n:§“o¶�à™�»qY	·s:§zt¶�à™�»vY	·x:§ay¶�à™V»{Y	·}:§H~¶�à™=»�ÁY·�ø�Ô:§*»�ÁY·�Ã:
                                    ! €¶�à™�»‚Y
                                    ! ·„:§…¶�à™�»‡Y
                                    ! ·‰:§�튶�à™�⻌Y
                                    ! ·Ž:§�Ô»�ÁY·�Ã:
                                    ! ¶�à™�»‘Y
                                    ! ·“:§�°”¶�à™�»–Y
                                    ! ·˜:§�—™¶�à™�Œ»›Y
                                    ! ·:§�~»�ÁY·�Ã:
                                    ! ž¶�à™�» Y
                                    ! ·¢:§�Y£¶�à™�»¥Y
                                    ! ·§:§�?¨¶�à™�4»ªY
                                    ! ·¬:§�%»�Y»�BY·�F¸�G¶�M­¶�M¶�V·�5¿Ç�»¯Y·±:*+·´N²�8²�<»�BY¸·�F¶�Mº¶�M¶¼¶�M¶�V¶�Z§ùÁ�å÷ú½����&�‰���ý��þ�
                                    �����!�,�2 �9!�D%�J(�P)�W,3436 8#:*;3=6AHCKERFbHeLoOwPQR™S§T±U¿VÉWÔY×[ì\]
                                    ! _`&a1b@dCfXgoizjŠk•l¥m°nÀoËpÛqærótöy{}~)€4C‚Nƒ]„h…w†‚‡‘ˆœ‰«Š¶‹ÂŒÍÙâ—å›úüŸ	¢£"¤-¥;¦F§T¨_©mªx«†¬‘­Ÿ®ª¯µ±¸´ÃµÓ·Ö¹áºì»ú¼½¾¿)Á,Ã7ÄBÅPÆ[ÇiÈtÉË‚ÍΘϧвÑÁÒÌÓØÕÛ×èØù×ýÛÜÞßá0âAáD������G������G¿À���G�©�ª��EÁÂ��BÃÂ��(Ä���)�ÅÆ��D�ÅÆ��JúÇ���PôÈ�¦�÷�ÉÊ�		�¯ÉÊ�	�ÖËÆ�
                                    ! á�KËÆ�
                                    ! 7�KËÆ�
                                    ! �NËÆ�
                                    ! �9�¬�­��2�Ì�¦�*�Í�2�R�Î�2�
                                    w�`ÏÐ�ì�WÑ�2��@Ò�2�
                                    ! �9Ó�2�X�žÔ�2�o�‡Õ�2�ü�
                                    Ö×��¶·��
                                    ���Ÿ�����5,¹Ø�N+-¹Ü�Àâ:Ç�»äY·æ:+-¹ç�W,¹ë�W±����������ñ�ò�ô�ö�!÷�+ú�4û����4����5�������5ìÀ����5ÃÂ���.íî���"ïð��OP��
                                    ��c�����£»�ÁY+·�ÃN,Áñ™�,Àñ:§�»ñY·ó:-ô¶�à™�°::-²ö¶ü¶ý™�²ö:§�*-²¶ü¶ý™�²:§�-²¶ü¶ý™�²:Æ�---¶¶N§�²:-¸�ÔÀ:¶W°�������V����		�
                                    ! ��"�,�/�2�5�B�J�W�_�l�q�v�…�Š"�‘!�–$� %����R����£�������£È�¦����£Â��	�šËÆ���Ã��"�Ã��2�qû��5�n��IJ��
                                    ���Ð�����F»�ÁY+·�ÃN,Á™�,À:§�»Y·:-ô¶�à™�°-¸�ÔÀ :¶"W°�������*�
                                    ! ��1�	4�5�7�":�,;�/>�6=�;@�CA����H����F�������FÈ�¦����FÂ��	�=ËÆ���Ã%��"�$Ã%��;�&���Ü�Ý��
                                    �������+3+3¸'=¸+N-¶1-+3¶1-+3¶1-+3¶1-+3¶1-
                                    +3¶1-+3dh¶1+	34h6+
                                    ! 35h`6+3’- �	h6-¶1-¶6°�������>���^�
                                    ! `�a�b�c�$d�-e�6f�@g�Mj�Wk�dm�nn�tp�|q����4�����������È�¦��
                                    ! �w:����s;<��W�*=�2��>���?@���
                                    ! ���'A��
                                    \ No newline at end of file
                                    --- 22,130 ----
                                      ��™�š�›�read�([B)I
                                      �‘��ž��flush
                                      �‘� �¡�¢�toByteArray�()[B	�'�¤�¥�¦�data�[B�input�Ljava/io/InputStream;�stream�Ljava/io/DataInputStream;�version�tag�B�proceed�Z�tmp�Ljava/util/HashMap;�
                                    ! byteStream�Ljava/io/ByteArrayOutputStream;�readbuf�len�LocalVariableTypeTable�|Ljava/util/HashMap<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;�	Signature�”(Ljava/util/Map<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;Ljava/io/DataInputStream;)B
                                    ! �»�½�¼�#gnu/javax/print/ipp/IppDelimiterTag�¾�¿�isDelimiterTag�(B)Z�Á�Ã�Â�javax/print/attribute/Attribute�Ä�Y�getName�Æ�java/lang/String
                                    ! �Å�È��É�([B)V�Ë�0Unexpected name value for out-of-band value tag 
                                    ! �Í�Ï�Î� gnu/javax/print/ipp/IppUtilities�Ð�›�convertToInt
                                    ! �Í�Ò�Ó�Ô�getIntegerAttribute�6(Ljava/lang/String;I)Ljavax/print/attribute/Attribute;
                                    ! �H�Ö��×�(I)V
                                    ! �Í�Ù�Ú�Û�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�Ý�!Unspecified octet string occured.
                                    ! ��ß�à�á�	parseDate�([B)Ljava/util/Date;�ã�printer-current-time
                                    ! �Å�å�æ�v�equals�è�8gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime
                                    ! �ç�ê��ë�(Ljava/util/Date;)V�í�date-time-at-creation�ï�1javax/print/attribute/standard/DateTimeAtCreation
                                    ! �î�ê�ò�date-time-at-processing�ô�3javax/print/attribute/standard/DateTimeAtProcessing
                                    ! �ó�ê�÷�date-time-at-completed�ù�2javax/print/attribute/standard/DateTimeAtCompleted
                                    ! �ø�ê
                                    ! �Í�ü�Ð�ý�(BBBB)I�ÿ�printer-resolution-default�?gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault
                                    ! ���(III)V�printer-resolution-supported�Bgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported
                                    ! �copies-supported
                                    �.javax/print/attribute/standard/CopiesSupported
                                    ! ��(II)V�number-up-supported�0javax/print/attribute/standard/NumberUpSupported
                                    ! �job-k-octets-supported�2javax/print/attribute/standard/JobKOctetsSupported
                                    ! �job-impressions-supported�6javax/print/attribute/standard/JobImpressionsSupported
                                    ! !�job-media-sheets-supported#�6javax/print/attribute/standard/JobMediaSheetsSupported
                                    ! "
                                    ! �Í&'(�getTextAttribute�8(Ljava/lang/String;B[B)Ljavax/print/attribute/Attribute;*�job-hold-until-supported,�=gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported
                                    ! +.�/�'(Ljava/lang/String;Ljava/util/Locale;)V1�job-hold-until-default3�:gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault
                                    ! 2.6�media-supported8�6gnu/javax/print/ipp/attribute/supported/MediaSupported
                                    ! 7.;�
                                    media-default=�3gnu/javax/print/ipp/attribute/defaults/MediaDefault
                                    ! <.@�job-sheets-defaultB�7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault
                                    ! A.E�job-sheets-supportedG�:gnu/javax/print/ipp/attribute/supported/JobSheetsSupported
                                    ! F.J�job-state-reasons
                                    ! �LMN�parseJobStateReasons�U([BLjavax/print/attribute/Attribute;)Ljavax/print/attribute/standard/JobStateReasons;P�printer-state-reasons
                                    ! �RST�parsePrinterStateReasons�Y([BLjavax/print/attribute/Attribute;)Ljavax/print/attribute/standard/PrinterStateReasons;V�java/net/URI
                                    ! U�6Y�Wrong URI syntax encountered.
                                    ! �[�\�*(Ljava/lang/String;Ljava/lang/Exception;)V^�job-uri`�(gnu/javax/print/ipp/attribute/job/JobUri
                                    ! _b�c�(Ljava/net/URI;)Ve�job-printer-urig�/gnu/javax/print/ipp/attribute/job/JobPrinterUri
                                    ! fbj�
                                    job-more-infol�-gnu/javax/print/ipp/attribute/job/JobMoreInfo
                                    ! kbo�printer-uri-supportedq�;gnu/javax/print/ipp/attribute/supported/PrinterUriSupported
                                    ! pbt�printer-more-infov�.javax/print/attribute/standard/PrinterMoreInfo
                                    ! uby�printer-driver-installer{�<gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller
                                    ! zb~�printer-more-info-manufacturer€�:javax/print/attribute/standard/PrinterMoreInfoManufacturer
                                    ! bƒ�reference-uri-schemes-supported…�attributes-charset‡�3gnu/javax/print/ipp/attribute/job/AttributesCharset
                                    ! †�6Š�charset-configuredŒ�7gnu/javax/print/ipp/attribute/printer/CharsetConfigured
                                    ! ‹�6�charset-supported‘�8gnu/javax/print/ipp/attribute/supported/CharsetSupported
                                    ! �6”�attributes-natural-language–�;gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage
                                    ! •�6™�natural-language-configured›�?gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured
                                    ! š�6ž�$generated-natural-language-supported �Ignu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported
                                    ! Ÿ�6£�document-format-default¥�<gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault
                                    ! ¤.¨�document-format-supportedª�?gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported
                                    ! ©.­�document-format¯�4gnu/javax/print/ipp/attribute/printer/DocumentFormat
                                    ! ®.²� found.´�.gnu/javax/print/ipp/attribute/UnknownAttribute
                                    ! ³¶�·�(BLjava/lang/String;[B)V
                                    ! �¹º»�addAttribute�3(Ljava/util/Map;Ljavax/print/attribute/Attribute;)V½�Attribute: ¿� Value: 
                                    ! ��W�java/net/URISyntaxException�
                                      attributes�Ljava/util/Map;�
                                    lastAttribute�!Ljavax/print/attribute/Attribute;�	attribute�
                                    ! nameLength�name�Ljava/lang/String;�valueLength�value�uri�Ljava/net/URI;�str�	nameBytes�intValue�intVal�date�Ljava/util/Date;�	crossFeed�feed�units�lower�upper�e�Ljava/net/URISyntaxException;�xLjava/util/Map<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;�œ(Ljava/util/Map<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;Ljavax/print/attribute/Attribute;)V�Áßàá�getCategory�()Ljava/lang/Class;ãåä�
                                    java/util/Mapæç�get�&(Ljava/lang/Object;)Ljava/lang/Object;é�
                                    java/util/Setë�java/util/HashSet
                                    ! ê�ãîïð�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;è�t�attributeGroup�clazz�Ljava/lang/Class;�attributeValues�Ljava/util/Set;�5Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;ú�2javax/print/attribute/standard/PrinterStateReasons
                                    ! ù�ý�none	ÿ��'javax/print/attribute/standard/Severity�WARNING�)Ljavax/print/attribute/standard/Severity;
                                    ! ÿ�W
                                    ! �Å�endsWith�(Ljava/lang/String;)Z	ÿ
                                    ! �REPORT	ÿ
                                    �ERROR
                                    ! �Å�lastIndexOf�(I)I
                                    ! �Å�	substring�(II)Ljava/lang/String;�printer-state-reason�1javax/print/attribute/standard/PrinterStateReason
                                    ! ùï�‡(Ljavax/print/attribute/standard/PrinterStateReason;Ljavax/print/attribute/standard/Severity;)Ljavax/print/attribute/standard/Severity;�lastAttr�4Ljavax/print/attribute/standard/PrinterStateReasons;�severity�reason�3Ljavax/print/attribute/standard/PrinterStateReason;$�.javax/print/attribute/standard/JobStateReasons
                                    ! #�'�job-state-reason)�-javax/print/attribute/standard/JobStateReason
                                    ! #+�u,�2(Ljavax/print/attribute/standard/JobStateReason;)Z�0Ljavax/print/attribute/standard/JobStateReasons;�/Ljavax/print/attribute/standard/JobStateReason;
                                    ! �Í012�convertToShort�(BB)S
                                    ! 465�java/util/Calendar78�getInstance�()Ljava/util/Calendar;
                                    ! 4:;�set�6î€��ê`
                                    ! 4?@A�getTime�()Ljava/util/Date;�year�cal�Ljava/util/Calendar;�offsetMilli�
                                      SourceFile�IppResponse.java�InnerClasses�ResponseReader� ���������������	�
                                      ���������
                                    ���4�����
                                      *+µ�*·�±�����������ž��������
                                    ! ����������������
                                    ��L��
                                    ! ��¾»�Y+·� M,¶�">*´�,¶�"µ�&*´�,¶�+µ�/Ÿ�
                                    »�Y3·�5¿²�8²�<»�BYD·�F*´�´�&¸�G¶�MQ¶�M*´�´�/¶�S¶�V¶�Z66§š�	,¶�`6²�8²�<»�BYd·�F¸�G¶�M¶�V¶�Zª�����Á���������)���M���#���q���•6§�¼»�fY·�h:*,·�i6*´�´�m¹�q�W§�˜»�fY·�h:*,·�i6*´�´�w¹�q�W§�t»�fY·�h:*,·�i6*´�´�z¹�q�W§�P²�}ƒ¶�…»�fY·�h:*,·�i6*´�´�Š¹�q�W§�$»�Y»�BY·�F¸�G¶�M¶�M¶�V·�5¿šþò»�‘Y·�“:�¼:6	§�
                                    	¶�”,¶�˜Y6	ÿí¶�œ*´�¶�Ÿµ�£±�������Â�0���¬�	�®��¯��°�$�²�+�³�5�¶�D�·�c�¶�f�¹�i�º�l�½�o�¿�t�À�z�Â�—�Å�¼�È�¿�É�Â�Ë�Ë�Ì�Ô�Í�ã�Î�æ�Ð�ï�Ñ�ø�Ò�Ó
                                    ! �Õ�Ö�×+�Ø.�Ú6�Û?�ÜH�ÝW�ÞZ�àg�áw�à{�½€�æ‰�ç�è“�ê–�ë �ê¬�í±�î½�ï����„�
                                    ��¾������¾�§�¨��	µ�©�ª��°�«���iU�¬�­��lR�®�¯��Ë��°�±��ï��°�±���°�±�?��°�±�‰�5�²�³��.�´�¦�“�+�µ�2�	�¶���*��Ë��°�·��ï��°�·���°�·�?��°�·���k�l���������¸����¹�
                                    ��	¯����GN:,¶�`6¸�º™�¬,¶�"6š�-¹�À�:§�¼:,¶�˜W»�ÅY·�Ç:,¶�"6¼:,¶�˜W«����‚���������«������«������Ä���!���Ê���"���Ý���#���ò���0�����1�����2��~���3��ê���5�����6�����A�����B�����D��«���E��Œ���F��_���G��}���H��Ó���I��)»�Y»�BYÊ·�F¶�S¶�V·�5¿:§Ý¸�Ì6¸�Ñ:§Ê»�HY3·�Õ¸�Ø:§µ¸�Ì6
                                    »�HY
                                    ·�Õ¸�Ø:§›»�YÜ·�5¿*·�Þ:â¶�ä™�»�çY·�é:§qì¶�ä™�»�îY·�ð:§Yñ¶�ä™�»�óY·�õ:§Aö¶�ä™7»�øY·�ú:§)3333¸�û63333¸�û636þ¶�ä™�»�Y·:§Ú¶�ä™Ï»Y·	:§½3333¸�û63333¸�û6
                                    ! ¶�ä™�»Y·:§v¶�ä™�»Y·:§[¶�ä™�»Y·:§@¶�ä™�»Y·:§% ¶�ä™»"Y·$:§
                                    ! ¸%:§ü»�ÅY·�Ç:
                                    ! )¶�ä™�»+Y
                                    ! ·-:§×0¶�ä™�»2Y
                                    ! ·4:§½5¶�ä™�»7Y
                                    ! ·9:§£:¶�ä™�»<Y
                                    ! ·>:§‰?¶�ä™�»AY
                                    ! ·C:§oD¶�ä™�»FY
                                    ! ·H:§UI¶�ä™�*-·K:§>O¶�ä™�*-·Q:§'
                                    ! ¸�Ø:§»UY»�ÅY·�Ç·W:	§�:»�YX·Z¿]¶�ä™�»_Y	·a:§Þd¶�ä™�»fY	·h:§Åi¶�ä™�»kY	·m:§¬n¶�ä™�»pY	·r:§“s¶�ä™�»uY	·w:§zx¶�ä™�»zY	·|:§a}¶�ä™V»Y	·:§H‚¶�ä™=»�ÅY·�Ǹ�Ø:§*»�ÅY·�Ç:
                                    ! „¶�ä™�»†Y
                                    ! ·ˆ:§‰¶�ä™�»‹Y
                                    ! ·:§�펶�ä™�â»Y
                                    ! ·’:§�Ô»�ÅY·�Ç:
                                    ! “¶�ä™�»•Y
                                    ! ·—:§�°˜¶�ä™�»šY
                                    ! ·œ:§�—¶�ä™�Œ»ŸY
                                    ! ·¡:§�~»�ÅY·�Ç:
                                    ! ¢¶�ä™�»¤Y
                                    ! ·¦:§�Y§¶�ä™�»©Y
                                    ! ·«:§�?¬¶�ä™�4»®Y
                                    ! ·°:§�%»�Y»�BY·�F¸�G¶�M±¶�M¶�V·�5¿Ç�»³Y·µ:*+·¸N²�8²�<»�BY¼·�F¶�M¾¶�M¶À¶�M¶�V¶�Z§ùÁ�å÷úÁ����&�‰���þ��ÿ������!�, �2!�9"�D&�J)�P*�W-4547 9#;*<3>6BHDKFRGbIeMoPwQRS™T§U±V¿WÉXÔZ×\ì]^
                                    ! `a&b1c@eCgXhojzkŠl•m¥n°oÀpËqÛræsóuöz|~€)4‚CƒN„]…h†w‡‚ˆ‘‰œŠ«‹¶ŒÂÍŽÙâ˜åœúžü 	£¤"¥-¦;§F¨T©_ªm«x¬†­‘®Ÿ¯ª°µ²¸µÃ¶Ó¸Öºá»ì¼ú½¾¿À)Â,Ä7ÅBÆPÇ[ÈiÉtÊÌ‚ÎϘЧѲÒÁÓÌÔØÖÛØèÙùØýÜÝßàâ0ãAâD������G������GÃÄ���G�©�ª��EÅÆ��BÇÆ��(È���)�ÉÊ��D�ÉÊ��JúË���PôÌ�¦�÷�ÍÎ�		�¯ÍÎ�	�ÖÏÊ�
                                    ! á�KÏÊ�
                                    ! 7�KÏÊ�
                                    ! �NÏÊ�
                                    ! �9�¬�­��2�Ð�¦�*�Ñ�2�R�Ò�2�
                                    w�`ÓÔ�ì�WÕ�2��@Ö�2�
                                    ! �9×�2�X�žØ�2�o�‡Ù�2�ü�
                                    ÚÛ��¶������GÃÜ��º»��¸���Ý�
                                    ���Å�����5,¹Þ�N+-¹â�Àè:Ç�»êY·ì:+-¹í�W,¹ñ�W±����������ó�ô�ö�ø�!ù�+ü�4ý����4����5�������5òÄ����5ÇÆ���.óô���"õö��¶��� ����5òÜ���.ó÷���"õø��ST��
                                    ��c�����£»�ÅY+·�ÇN,Áù™�,Àù:§�»ùY·û:-ü¶�ä™�°::-²þ¶¶™�²þ:§�*-²	¶¶™�²	:§�-²¶¶™�²:Æ�---¶¶N§�²	:-¸�ØÀ:¶W°�������V����	���"�,�/�2�5�B�J�W�_�l�q�v�…!�Š$�‘#�–&� '����R����£�������£Ì�¦����£Æ��	�šÏÊ���Ç��"�Ç��2�q ��5�n!"��MN��
                                    ���Ð�����F»�ÅY+·�ÇN,Á#™�,À#:§�»#Y·%:-ü¶�ä™�°&-¸�ØÀ(:¶*W°�������*�
                                    ! ��3�	6�7�9�"<�,=�/@�6?�;B�CC����H����F�������FÌ�¦����FÆ��	�=ÏÊ���Ç-��"�$Ç-��;�!.���à�á��
                                    �������+3+3¸/=¸3N-¶9-+3¶9-+3¶9-+3¶9-+3¶9-
                                    +3¶9-+3dh¶9+	3<h6+
                                    ! 3=h`6+3’- �	h6-¶9-¶>°�������>���`�
                                    ! b�c�d�e�$f�-g�6h�@i�Ml�Wm�do�np�tr�|s����4�����������Ì�¦��
                                    ! �wB����sCD��W�*E�2��F���GH���
                                    ! ���'I��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse.class	Mon Aug  2 13:46:09 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,18 ****
                                    ! Êþº¾���1�i��gnu/javax/print/ipp/IppResponse��java/lang/Object�logger�Ljava/util/logging/Logger;�uri�Ljava/net/URI;�operation_id�S�status_code�
                                    ! request_id�I�operationAttributes�Ljava/util/List;�printerAttributes�
                                    jobAttributes�unsupportedAttributes�data�[B�<clinit>�()V�Code	���� gnu/classpath/debug/SystemLogger���SYSTEM�"Lgnu/classpath/debug/SystemLogger;	�����LineNumberTable�LocalVariableTable�<init>�(Ljava/net/URI;S)V
                                    ! ��%�"�	��'��	��)�	�
                                    ! �+�java/util/ArrayList
                                    ! �*�%	��.��	��0��	��2��	��4���this�!Lgnu/javax/print/ipp/IppResponse;�setResponseData�(Ljava/io/InputStream;)V�
                                    ! Exceptions�;� gnu/javax/print/ipp/IppException�=�.gnu/javax/print/ipp/IppResponse$ResponseReader
                                    ! �<�?�"�@�$(Lgnu/javax/print/ipp/IppResponse;)V
                                    ! �<�B�C�8�
                                    parseResponse�E�7Exception during response parsing caused by IOException
                                    ! �:�G�"�H�*(Ljava/lang/String;Ljava/lang/Exception;)V�J�java/io/IOException�input�Ljava/io/InputStream;�reader�0Lgnu/javax/print/ipp/IppResponse$ResponseReader;�e�Ljava/io/IOException;�getURI�()Ljava/net/URI;�getOperationID�()I�getJobAttributes�()Ljava/util/List;�getOperationAttributes�getPrinterAttributes�getRequestID	��[��
                                    �
                                    getStatusCode�()S	��_��
                                    ! �getUnsupportedAttributes�getData�()[B	��d���
                                      SourceFile�IppResponse.java�InnerClasses�ResponseReader�!�����
                                      ��������������	�
                                      ������
                                    ! ������
                                    �����������������������������������������+������²�³�±���� ���
                                    ! ���y��k�!�������"�#�����•�����;*·�$*+µ�&*µ�(*»�*Y·�,µ�-*»�*Y·�,µ�/*»�*Y·�,µ�1*»�*Y·�,µ�3±���� ���"�����	�‘�’�$“�/”�:•�!��� ����;�5�6�����;������;�	�
                                    ! ���7�8��9�����:����†�����»�<Y*·�>M,+¶�A§�N»�:YD-·�F¿±��	���I�� ������Ÿ�	£�¥�§�¨�§�ª�!���*�����5�6������K�L��	��M�N����O�P���Q�R�����/�����*´�&°���� ������²�!��������5�6����S�T�����/�����*´�(¬���� ������»�!��������5�6����U�V�����/�����*´�/°���� ������Ç�!��������5�6����W�V�����/�����*´�-°���� ������Ó�!��������5�6����X�V�����/�����*´�1°���� ������ß�!��������5�6����Y�T�����/�����*´�Z¬���� ������é�!��������5�6����\�]�����/�����*´�^¬���� ������ô�!��������5�6����`�V�����/�����*´�3°���� ��������!��������5�6����a�b�����/�����*´�c°���� ������
                                    ! �!��������5�6����e����f�g���
                                    ! ��<��h��
                                    \ No newline at end of file
                                    --- 1,17 ----
                                    ! Êþº¾���1�l��gnu/javax/print/ipp/IppResponse��java/lang/Object�logger�Ljava/util/logging/Logger;�uri�Ljava/net/URI;�operation_id�S�status_code�
                                    ! request_id�I�operationAttributes�Ljava/util/List;�	Signature�ŠLjava/util/List<Ljava/util/Map<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;>;�printerAttributes�
                                    jobAttributes�unsupportedAttributes�data�[B�<clinit>�()V�Code	���� gnu/classpath/debug/SystemLogger���SYSTEM�"Lgnu/classpath/debug/SystemLogger;	��!���LineNumberTable�LocalVariableTable�<init>�(Ljava/net/URI;S)V
                                    ! ��'�$�	��)��	��+�	�
                                    ! �-�java/util/ArrayList
                                    ! �,�'	��0��	��2��	��4��	��6���this�!Lgnu/javax/print/ipp/IppResponse;�setResponseData�(Ljava/io/InputStream;)V�
                                    ! Exceptions�=� gnu/javax/print/ipp/IppException�?�.gnu/javax/print/ipp/IppResponse$ResponseReader
                                    ! �>�A�$�B�$(Lgnu/javax/print/ipp/IppResponse;)V
                                    ! �>�D�E�:�
                                    parseResponse�G�7Exception during response parsing caused by IOException
                                    ! �<�I�$�J�*(Ljava/lang/String;Ljava/lang/Exception;)V�L�java/io/IOException�input�Ljava/io/InputStream;�reader�0Lgnu/javax/print/ipp/IppResponse$ResponseReader;�e�Ljava/io/IOException;�getURI�()Ljava/net/URI;�getOperationID�()I�getJobAttributes�()Ljava/util/List;�Œ()Ljava/util/List<Ljava/util/Map<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljava/util/Set<Ljavax/print/attribute/Attribute;>;>;>;�getOperationAttributes�getPrinterAttributes�getRequestID	��^��
                                    �
                                    getStatusCode�()S	��b��
                                    ! �getUnsupportedAttributes�getData�()[B	��g���
                                      SourceFile�IppResponse.java�InnerClasses�ResponseReader�!�����
                                      ��������������	�
                                      ������
                                    ! ������
                                    ���������������������������������������������������������+������²�³� ±����"���
                                    ! ���{��k�#�������$�%�����µ�����;*·�&*+µ�(*µ�**»�,Y·�.µ�/*»�,Y·�.µ�1*»�,Y·�.µ�3*»�,Y·�.µ�5±����"���B����‘�	’�“�”�“�•�–�!•�$—�%˜�,—�/™�0š�7™�:›�#��� ����;�7�8�����;������;�	�
                                    ! ���9�:��;�����<����†�����»�>Y*·�@M,+¶�C§�N»�<YF-·�H¿±��	���K��"������¥�	©�«�­�®�­�°�#���*�����7�8������M�N��	��O�P����Q�R���S�T�����/�����*´�(°����"������¸�#��������7�8����U�V�����/�����*´�*¬����"������Á�#��������7�8����W�X������Y����/�����*´�1°����"������Í�#��������7�8����Z�X������Y����/�����*´�/°����"������Ù�#��������7�8����[�X������Y����/�����*´�3°����"������å�#��������7�8����\�V�����/�����*´�]¬����"������ï�#��������7�8����_�`�����/�����*´�a¬����"������ú�#��������7�8����c�X������Y����/�����*´�5°����"�������#��������7�8����d�e�����/�����*´�f°����"�������#��������7�8����h����i�j���
                                    ! ��>��k��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppUtilities.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppUtilities.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/IppUtilities.class	Fri Jul 27 21:14:19 2007
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/IppUtilities.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,88 ****
                                    ! Êþº¾���1ˆ�� gnu/javax/print/ipp/IppUtilities��java/lang/Object�INTEGER_ATT_VALUE�[Ljava/lang/Object;�INTEGER_CLASS_ARRAY�[Ljava/lang/Class;�TEXT_ATT_VALUE�TEXT_CLASS_ARRAY�
                                    classesByName�Ljava/util/HashMap;�instanceByClass�<clinit>�()V�Code	������java/lang/Class	����java/lang/Integer���TYPE�Ljava/lang/Class;	����	���	�� �java/lang/String�"�java/util/Locale	��$�
                                    ! ��&�java/util/HashMap
                                    ! �%�(�)��<init>	��+��	��-�
                                    �	�/�1�0�'javax/print/attribute/standard/JobState�2�3�ABORTED�)Ljavax/print/attribute/standard/JobState;
                                    ! �/�5�6�7�getName�()Ljava/lang/String;
                                    ! �%�9�:�;�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;	�=�?�>�$javax/print/attribute/standard/Sides�@�A�DUPLEX�&Ljavax/print/attribute/standard/Sides;
                                    ! �=�5	�D�F�E�+javax/print/attribute/standard/SheetCollate�G�H�COLLATED�-Ljavax/print/attribute/standard/SheetCollate;
                                    ! �D�5	�K�M�L�'javax/print/attribute/standard/Severity�N�O�ERROR�)Ljavax/print/attribute/standard/Severity;
                                    ! �K�5	�R�T�S�(javax/print/attribute/standard/JobSheets�U�V�NONE�*Ljavax/print/attribute/standard/JobSheets;
                                    ! �R�5	�Y�[�Z�)javax/print/attribute/standard/Finishings�\�]�BIND�+Ljavax/print/attribute/standard/Finishings;
                                    ! �Y�5	�`�b�a�'javax/print/attribute/standard/Fidelity�c�d�FIDELITY_FALSE�)Ljavax/print/attribute/standard/Fidelity;
                                    ! �`�5	�g�i�h�*javax/print/attribute/standard/Compression�j�k�GZIP�,Ljavax/print/attribute/standard/Compression;
                                    ! �g�5	�n�p�o�+javax/print/attribute/standard/Chromaticity�q�r�COLOR�-Ljavax/print/attribute/standard/Chromaticity;
                                    ! �n�5	�u�w�v�+javax/print/attribute/standard/PrintQuality�x�y�DRAFT�-Ljavax/print/attribute/standard/PrintQuality;
                                    ! �u�5	�|�~�}�+javax/print/attribute/standard/PrinterState��€�IDLE�-Ljavax/print/attribute/standard/PrinterState;
                                    ! �|�5	�ƒ�…�„�3gnu/javax/print/ipp/attribute/defaults/SidesDefault�†�‡�	ONE_SIDED�5Lgnu/javax/print/ipp/attribute/defaults/SidesDefault;
                                    ! �ƒ�5	�Š�Œ�‹�;javax/print/attribute/standard/ReferenceUriSchemesSupported��Ž�FILE�=Ljavax/print/attribute/standard/ReferenceUriSchemesSupported;
                                    ! �Š�5	�‘�“�’�1javax/print/attribute/standard/PrinterStateReason�”�•�	DOOR_OPEN�3Ljavax/print/attribute/standard/PrinterStateReason;
                                    ! �‘�5	�˜�š�™�4javax/print/attribute/standard/PresentationDirection�›�œ�TOLEFT_TOTOP�6Ljavax/print/attribute/standard/PresentationDirection;
                                    ! �˜�5	�Ÿ�¡� �3javax/print/attribute/standard/PDLOverrideSupported�¢�£�	ATTEMPTED�5Ljavax/print/attribute/standard/PDLOverrideSupported;
                                    ! �Ÿ�5	�¦�¨�§�3javax/print/attribute/standard/OrientationRequested�©�ª�PORTRAIT�5Ljavax/print/attribute/standard/OrientationRequested;
                                    ! �¦�5	�­�¯�®�7javax/print/attribute/standard/MultipleDocumentHandling�°�±�SINGLE_DOCUMENT�9Ljavax/print/attribute/standard/MultipleDocumentHandling;
                                    ! �­�5	�´�¶�µ�-javax/print/attribute/standard/JobStateReason�·�¸�
                                      JOB_QUEUED�/Ljavax/print/attribute/standard/JobStateReason;
                                    ! �´�5	�»�½�¼�Bgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported�U�¾�DLgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported;
                                    ! �»�5	�Á�Ã�Â�;gnu/javax/print/ipp/attribute/supported/OperationsSupported�Ä�Å�GET_JOBS�=Lgnu/javax/print/ipp/attribute/supported/OperationsSupported;
                                    ! �Á�5	�È�Ê�É�<gnu/javax/print/ipp/attribute/supported/UriSecuritySupported�U�Ë�>Lgnu/javax/print/ipp/attribute/supported/UriSecuritySupported;
                                    ! ��5	����;gnu/javax/print/ipp/attribute/supported/FinishingsSupported�U��=Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;
                                    ! ��5	����8gnu/javax/print/ipp/attribute/defaults/FinishingsDefault�U��:Lgnu/javax/print/ipp/attribute/defaults/FinishingsDefault;
                                    ! ��5	����<gnu/javax/print/ipp/attribute/supported/IppVersionsSupported���V_1_0�>Lgnu/javax/print/ipp/attribute/supported/IppVersionsSupported;
                                    ! �Ú�5	�á�ã�â�Ignu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported�°�ä�KLgnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported;
                                    ! �á�5	�ç�é�è�Fgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault�°�ê�HLgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault;
                                    ! �ç�5	�í�ï�î�<gnu/javax/print/ipp/attribute/supported/CompressionSupported�U�ð�>Lgnu/javax/print/ipp/attribute/supported/CompressionSupported;
                                    ! �í�5	�ó�õ�ô�Egnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported�©�ö�GLgnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported;
                                    ! �ó�5	�ù�û�ú�Bgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault�©�ü�DLgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault;
                                    ! �ù�5	�ÿ��6gnu/javax/print/ipp/attribute/supported/SidesSupported�†�8Lgnu/javax/print/ipp/attribute/supported/SidesSupported;
                                    ! �ÿ�5	�:gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault�x�<Lgnu/javax/print/ipp/attribute/defaults/PrintQualityDefault;
                                    ! �5	
                                    �=gnu/javax/print/ipp/attribute/supported/PrintQualitySupported�x�?Lgnu/javax/print/ipp/attribute/supported/PrintQualitySupported;
                                    ! �5	�Š�Ž�FTP	�-javax/print/attribute/standard/ColorSupported�	SUPPORTED�/Ljavax/print/attribute/standard/ColorSupported;
                                    ! �5	�5javax/print/attribute/standard/PrinterIsAcceptingJobs�ACCEPTING_JOBS�7Ljavax/print/attribute/standard/PrinterIsAcceptingJobs;
                                    ! �5	"$#�Egnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported%�GLgnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported;
                                    ! "�5	(*)�;gnu/javax/print/ipp/attribute/supported/PageRangesSupported+�=Lgnu/javax/print/ipp/attribute/supported/PageRangesSupported;
                                    ! (�5.�
                                    media-default0�3gnu/javax/print/ipp/attribute/defaults/MediaDefault2�media-supported4�6gnu/javax/print/ipp/attribute/supported/MediaSupported6�media8�,javax/print/attribute/standard/MediaSizeName:�printer-location<�.javax/print/attribute/standard/PrinterLocation>�printer-info@�*javax/print/attribute/standard/PrinterInfoB�printer-make-and-modelD�2javax/print/attribute/standard/PrinterMakeAndModelF�printer-state-messageH�9gnu/javax/print/ipp/attribute/printer/PrinterStateMessageJ�job-state-messageL�1gnu/javax/print/ipp/attribute/job/JobStateMessageN�job-sheets-defaultP�7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefaultR�job-sheets-supportedT�:gnu/javax/print/ipp/attribute/supported/JobSheetsSupportedV�job-nameX�&javax/print/attribute/standard/JobNameZ�printer-name\�*javax/print/attribute/standard/PrinterName^�status-message`�+gnu/javax/print/ipp/attribute/StatusMessageb�detailed-status-messaged�3gnu/javax/print/ipp/attribute/DetailedStatusMessagef�document-access-errorh�1gnu/javax/print/ipp/attribute/DocumentAccessErrorj�output-device-assignedl�3javax/print/attribute/standard/OutputDeviceAssignedn�job-hold-until-defaultp�:gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefaultr�job-originating-user-namet�5javax/print/attribute/standard/JobOriginatingUserNamev�job-hold-until-supportedx�=gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupportedz�job-message-from-operator|�5javax/print/attribute/standard/JobMessageFromOperator~�printer-message-from-operator€�9javax/print/attribute/standard/PrinterMessageFromOperator‚�job-detailed-status-messages„�;gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages†�job-document-access-errorsˆ�9gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrorsŠ�copies-defaultŒ�4gnu/javax/print/ipp/attribute/defaults/CopiesDefaultŽ�job-id�'gnu/javax/print/ipp/attribute/job/JobId’�job-priority-supported”�3javax/print/attribute/standard/JobPrioritySupported–�job-priority-default˜�9gnu/javax/print/ipp/attribute/defaults/JobPriorityDefaultš�number-up-supportedœ�0javax/print/attribute/standard/NumberUpSupportedž�number-up-default �6gnu/javax/print/ipp/attribute/defaults/NumberUpDefault¢�queued-job-count¤�-javax/print/attribute/standard/QueuedJobCount¦�printer-up-time¨�3gnu/javax/print/ipp/attribute/printer/PrinterUpTimeª�pages-per-minute¬�-javax/print/attribute/standard/PagesPerMinute®�pages-per-minute-color°�2javax/print/attribute/standard/PagesPerMinuteColor²�job-k-octets-processed´�2javax/print/attribute/standard/JobKOctetsProcessed¶�number-of-intervening-jobs¸�6javax/print/attribute/standard/NumberOfInterveningJobsº�job-impressions-completed¼�6javax/print/attribute/standard/JobImpressionsCompleted¾�job-media-sheets-completedÀ�6javax/print/attribute/standard/JobMediaSheetsCompletedÂ�multiple-operation-time-outÄ�>gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOutÆ�*javax/print/attribute/standard/JobPriority
                                    ! “È�)É�(I)VË�+javax/print/attribute/standard/JobHoldUntilÍ��
                                    ! wÏ�)Ð�'(Ljava/lang/String;Ljava/util/Locale;)V
                                    ! SÏÓ�%javax/print/attribute/standard/CopiesÕ�.javax/print/attribute/standard/CopiesSupported
                                    ! ÔÈ	�ÎØ�\�ÑÚ�)javax/print/attribute/standard/PageRanges	�ÿÜ�@Þ�'javax/print/attribute/standard/NumberUp
                                    ! ›È	�óáâ�ö�	LANDSCAPEä�$javax/print/attribute/standard/Media
                                    ! 3Ïç�0javax/print/attribute/standard/PrinterResolutioné�Bgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported
                                    ! èë�)ì�(III)V	�íîï�ð�COMPRESS�LineNumberTable�LocalVariableTable
                                    ! ��(�this�"Lgnu/javax/print/ipp/IppUtilities;�getClass�%(Ljava/lang/String;)Ljava/lang/Class;
                                    ! �%øùú�get�&(Ljava/lang/Object;)Ljava/lang/Object;�name�Ljava/lang/String;�getSupportedAttrName�%(Ljava/lang/Class;)Ljava/lang/String;��.javax/print/attribute/SupportedValuesAttributeÿ�5�clazz�getSupportedCategory�$(Ljava/lang/Class;)Ljava/lang/Class;ÿ�getCategory�()Ljava/lang/Class;�convertToInt�([B)I�b�[B�(BBBB)I�b1�B�b2�b3�b4�convertToShort�(BB)S�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;
                                    ! �õö
                                    ! ��getDeclaredFields�()[Ljava/lang/reflect/Field;
                                    !  �java/lang/reflect/Field!�getType
                                    ! �#$%�equals�(Ljava/lang/Object;)Z
                                    ! ø(� javax/print/attribute/EnumSyntax
                                    ! '*+,�getValue�()I
                                    ! �./,�intValue1�javax/print/attribute/Attribute
                                    ! '34�7�toString
                                    ! �#7�java/lang/SecurityException9�"java/lang/IllegalArgumentException;� java/lang/IllegalAccessException�value�Ljava/lang/Object;�	attrClass�fields�[Ljava/lang/reflect/Field;�i�I�field�Ljava/lang/reflect/Field;�attr�"Ljavax/print/attribute/EnumSyntax;�getIntegerAttribute�6(Ljava/lang/String;I)Ljavax/print/attribute/Attribute;
                                    ! �È
                                    ! �KLM�getDeclaredConstructor�3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
                                    ! OQP�java/lang/reflect/ConstructorRS�newInstance�'([Ljava/lang/Object;)Ljava/lang/Object;U�java/lang/NoSuchMethodExceptionW� java/lang/InstantiationExceptionY�+java/lang/reflect/InvocationTargetException�c�Ljava/lang/reflect/Constructor;�getTextAttribute�8(Ljava/lang/String;B[B)Ljavax/print/attribute/Attribute;
                                    ! �_�)`�([B)V
                                    ! �!bcd�
                                      getDefault�()Ljava/util/Locale;
                                    ! �f
                                    ! hji�java/lang/Systemkl�	arraycopy�*(Ljava/lang/Object;ILjava/lang/Object;II)V
                                    ! �no,�length
                                    ! �qrs�	substring�(II)Ljava/lang/String;
                                    ! �urv�(I)Ljava/lang/String;
                                    ! �!x�)y�'(Ljava/lang/String;Ljava/lang/String;)V
                                    ! �!{�)|�(Ljava/lang/String;)V�tag�
                                      langLength�S�tmp�tmp2�language�text�locale�Ljava/util/Locale;�
                                      SourceFile�IppUtilities.java�1������
                                      �����
                                    ! �����
                                    ! �	����
                                      �
                                    ! ����
                                    ! �����
                                    ! �
                                    ����������������L½�³�½�Y²�S³�½�³�½�YSY!S³�#»�%Y·�'³�*»�%Y·�'³�,²�*²�.¶�4/¶�8W²�*²�<¶�B=¶�8W²�*²�C¶�ID¶�8W²�*²�J¶�PK¶�8W²�*²�Q¶�WR¶�8W²�*²�X¶�^Y¶�8W²�*²�_¶�e`¶�8W²�*²�f¶�lg¶�8W²�*²�m¶�sn¶�8W²�*²�t¶�zu¶�8W²�*²�{¶�|¶�8W²�*²�‚¶�ˆƒ¶�8W²�*²�‰¶�Š¶�8W²�*²�¶�–‘¶�8W²�*²�—¶�˜¶�8W²�*²�ž¶�¤Ÿ¶�8W²�*²�¥¶�«¦¶�8W²�*²�¬¶�²­¶�8W²�*²�³¶�¹´¶�8W²�*²�º¶�¿»¶�8W²�*²�À¶�ÆÁ¶�8W²�*²�Ƕ�Ìȶ�8W²�*²�Ͷ�Òζ�8W²�*²�Ó¶�ØÔ¶�8W²�*²�Ù¶�ßÚ¶�8W²�*²�à¶�åá¶�8W²�*²�æ¶�ëç¶�8W²�*²�ì¶�ñí¶�8W²�*²�ò¶�÷ó¶�8W²�*²�ø¶�ýù¶�8W²�*²�þ¶ÿ¶�8W²�*²¶	¶�8W²�*²
                                    ! ¶¶�8W²�*²¶�Š¶�8W²�*²¶¶�8W²�*²¶ ¶�8W²�*²!¶&"¶�8W²�*²'¶,(¶�8W²�*-/¶�8W²�*13¶�8W²�*57¶�8W²�*9;¶�8W²�*=?¶�8W²�*AC¶�8W²�*EG¶�8W²�*IK¶�8W²�*MO¶�8W²�*QS¶�8W²�*UW¶�8W²�*Y[¶�8W²�*]_¶�8W²�*ac¶�8W²�*eg¶�8W²�*ik¶�8W²�*mo¶�8W²�*qs¶�8W²�*uw¶�8W²�*y{¶�8W²�*}¶�8W²�*ƒ¶�8W²�*…‡¶�8W²�*‰‹¶�8W²�*¶�8W²�*‘“¶�8W²�*•—¶�8W²�*™›¶�8W²�*Ÿ¶�8W²�*¡£¶�8W²�*¥§¶�8W²�*©«¶�8W²�*­¯¶�8W²�*±³¶�8W²�*µ·¶�8W²�*¹»¶�8W²�*½¿¶�8W²�*Áö�8W²�,Å»“Y·Ƕ�8W²�,Ê»wYÌ·ζ�8W²�,R»SYÌ·Ѷ�8W²�,­²�à¶�8W²�,Ò»ÔY·Ö¶�8W²�,Y²׶�8W²�,Ù²'¶�8W²�,=²Û¶�8W²�,Ý»›Y·߶�8W²�,¦²à¶�8W²�,ã»3YÌ·å¶�8W²�,æ»èY·ê¶�8W²�,u²
                                    ! ¶�8W²�,g²í¶�8W±���ð��ž�§���•��–��—��˜�,�›�6��@�¥�O�¦�^�§�m�¨�|�©�‹�ª�š�«�©�¬�¸�­�Ç�®�Ö�¯�å�°�ô�±�ý�²�ÿ�±�³�´�³�µ�¶�µ!�·*�¸,�·0�¹9�º;�¹?�»H�¼J�»N�½W�¾Y�½]�¿f�Àh�¿l�Áu�Âw�Á{�Ä�Ć�Ê�Å“�Æ•�Å™�Ç¢�Ȥ�Ǩ�ɱ�ʳ�É·�ËÀ�ÌÂ�ËÆ�ÍÏ�ÎÑ�ÍÕ�ÏÞ�Ðà�Ïä�Ñí�Òï�Ñó�Óü�Ôþ�Ó�Õ�Ö
                                    �Õ�×�Ø�×!�Ù*�Ú-�Ù1�Û:�Ü<�Û@�ßP�àY�á\�à`�âi�ãl�âp�äy�å|�ä€�è�éš�ê§�ë´�ìÁ�íÎ�îÛ�ïè�ðõ�ñ�ò�ó�ô)�õ6�öC�÷P�ø]�ùc�úf�ùj�ûp�üs�ûw�ý}�þ€�ý„�ÿŠ��ÿ‘—šž¤§«¸Å	Ò
                                    ! ßìù
                                     -:@CGMPTZ]agjn€•© µ!Ç"Ó#à$ì%þ&
                                    ! '(3)?,K�’ñ�������)������3�����*·ò±���ð���
                                    ! ���/�2ñ�������óô���	õö�����5�����²�**¶÷À�°���ð������=ñ�������ûü���	ýþ�����:�����²�,*¶÷Àÿ¹�°���ð������Iñ�����������	�����:�����²�,*¶÷Àÿ¹�°���ð������Uñ�����������		
                                    ! �����c�����)*3�ÿ~x*3�ÿ~x€*3�ÿ~x€*3�ÿ~€¬���ð������_�`�_� `�'_ñ�������)���		
                                    �����y�����!�ÿ~x�ÿ~x€�ÿ~x€�ÿ~€¬���ð������m�n�m�n�mñ���*����!�����!����!����!��	�����@�����x�ÿ~€“¬���ð������yñ��������������	����v�����€*¸M,Ç�°,¶N6§�X-2:¶,¶"™�C¶&À':+Á�™�¶)+À�¶- �	À0°+Á�™�¶2+¶5™�	À0°„-¾¡ÿ§§�W§�W§�W°�	��N�u6�O�g�u6�h�r�u6��N�y8�O�g�y8�h�r�y8��N�}:�O�g�}:�h�r�}:�ð���N���†�‰�	Š�Ž��‘�’�(”�3•�:–�I—�O˜�V™�bš�h�už�y¢�}¦�~«ñ���H����€ûü�����€<=���{>����e?@���_AB���LCD��3�5EF��	GH�����Ú�����>*¸M,Ç�°²�»�Y·IS,²�¶JN-²�¶NÀ0°W§�W§�W§�W§�W°���*�+6��*�/T��*�3:��*�7V��*�;X�ð���2���º�½�	¾�Â�Ã� Ä�+Æ�/Ê�3Î�7Ò�;Ö�<Ûñ���*����>ûü�����><B���9>��� �Z[��	\]����ë��	���ÍBŸ�	A �²�»�Y,·^S²�¸aS§�y,3,3¸e>¼:,¾dd¼:,¸g»�Y·^:»�Y·^::¶m¤�»�!Y¶p¶t·w:§�»�!Y·z:²�S²�S*¸N-Ç�°-²�#¶J:²�¶NÀ0°W§�W§�W§�W§�W°��¥�¹�º6�¥�¹�¾T�¥�¹�Â:�¥�¹�ÆV�¥�¹�ÊX�ð���n���ê�ë�í�î�$ò�.ó�3ô�=õ�Fø�Qù�\ú�_ü�hý�ÿ�Œ�“�š�Ÿ�£	�¥
                                    �®�º�¾�Â�Æ�Ê �Ë%ñ���p����Íûü�����Í}����Í<��.�l~��3�g€��=�]��Q�I‚ü��\�>ƒü��_�;„…��Ÿ�.>���®�Z[��†���‡
                                    \ No newline at end of file
                                    --- 1,88 ----
                                    ! Êþº¾���1–�� gnu/javax/print/ipp/IppUtilities��java/lang/Object�INTEGER_ATT_VALUE�[Ljava/lang/Object;�INTEGER_CLASS_ARRAY�[Ljava/lang/Class;�	Signature�[Ljava/lang/Class<*>;�TEXT_ATT_VALUE�TEXT_CLASS_ARRAY�
                                    classesByName�Ljava/util/HashMap;�\Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;>;�instanceByClass�zLjava/util/HashMap<Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;Ljavax/print/attribute/SupportedValuesAttribute;>;�<clinit>�()V�Code	������java/lang/Class	����java/lang/Integer���TYPE�Ljava/lang/Class;	�� ��	��"���$�java/lang/String�&�java/util/Locale	��(���*�java/util/HashMap
                                    ! �)�,�-��<init>	��/�
                                    �	��1��	�3�5�4�'javax/print/attribute/standard/JobState�6�7�ABORTED�)Ljavax/print/attribute/standard/JobState;
                                    ! �3�9�:�;�getName�()Ljava/lang/String;
                                    ! �)�=�>�?�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;	�A�C�B�$javax/print/attribute/standard/Sides�D�E�DUPLEX�&Ljavax/print/attribute/standard/Sides;
                                    ! �A�9	�H�J�I�+javax/print/attribute/standard/SheetCollate�K�L�COLLATED�-Ljavax/print/attribute/standard/SheetCollate;
                                    ! �H�9	�O�Q�P�'javax/print/attribute/standard/Severity�R�S�ERROR�)Ljavax/print/attribute/standard/Severity;
                                    ! �O�9	�V�X�W�(javax/print/attribute/standard/JobSheets�Y�Z�NONE�*Ljavax/print/attribute/standard/JobSheets;
                                    ! �V�9	�]�_�^�)javax/print/attribute/standard/Finishings�`�a�BIND�+Ljavax/print/attribute/standard/Finishings;
                                    ! �]�9	�d�f�e�'javax/print/attribute/standard/Fidelity�g�h�FIDELITY_FALSE�)Ljavax/print/attribute/standard/Fidelity;
                                    ! �d�9	�k�m�l�*javax/print/attribute/standard/Compression�n�o�GZIP�,Ljavax/print/attribute/standard/Compression;
                                    ! �k�9	�r�t�s�+javax/print/attribute/standard/Chromaticity�u�v�COLOR�-Ljavax/print/attribute/standard/Chromaticity;
                                    ! �r�9	�y�{�z�+javax/print/attribute/standard/PrintQuality�|�}�DRAFT�-Ljavax/print/attribute/standard/PrintQuality;
                                    ! �y�9	�€�‚��+javax/print/attribute/standard/PrinterState�ƒ�„�IDLE�-Ljavax/print/attribute/standard/PrinterState;
                                    ! �€�9	�‡�‰�ˆ�3gnu/javax/print/ipp/attribute/defaults/SidesDefault�Š�‹�	ONE_SIDED�5Lgnu/javax/print/ipp/attribute/defaults/SidesDefault;
                                    ! �‡�9	�Ž���;javax/print/attribute/standard/ReferenceUriSchemesSupported�‘�’�FILE�=Ljavax/print/attribute/standard/ReferenceUriSchemesSupported;
                                    ! �Ž�9	�•�—�–�1javax/print/attribute/standard/PrinterStateReason�˜�™�	DOOR_OPEN�3Ljavax/print/attribute/standard/PrinterStateReason;
                                    ! �•�9	�œ�ž��4javax/print/attribute/standard/PresentationDirection�Ÿ� �TOLEFT_TOTOP�6Ljavax/print/attribute/standard/PresentationDirection;
                                    ! �œ�9	�£�¥�¤�3javax/print/attribute/standard/PDLOverrideSupported�¦�§�	ATTEMPTED�5Ljavax/print/attribute/standard/PDLOverrideSupported;
                                    ! �£�9	�ª�¬�«�3javax/print/attribute/standard/OrientationRequested�­�®�PORTRAIT�5Ljavax/print/attribute/standard/OrientationRequested;
                                    ! �ª�9	�±�³�²�7javax/print/attribute/standard/MultipleDocumentHandling�´�µ�SINGLE_DOCUMENT�9Ljavax/print/attribute/standard/MultipleDocumentHandling;
                                    ! �±�9	�¸�º�¹�-javax/print/attribute/standard/JobStateReason�»�¼�
                                      JOB_QUEUED�/Ljavax/print/attribute/standard/JobStateReason;
                                    ! �¸�9	�¿�Á�À�Bgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported�Y�Â�DLgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported;
                                    ! �¿�9	�Å�Ç�Æ�;gnu/javax/print/ipp/attribute/supported/OperationsSupported�È�É�GET_JOBS�=Lgnu/javax/print/ipp/attribute/supported/OperationsSupported;
                                    ! ��9	����<gnu/javax/print/ipp/attribute/supported/UriSecuritySupported�Y��>Lgnu/javax/print/ipp/attribute/supported/UriSecuritySupported;
                                    ! ��9	����;gnu/javax/print/ipp/attribute/supported/FinishingsSupported�Y��=Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;
                                    ! ��9	����8gnu/javax/print/ipp/attribute/defaults/FinishingsDefault�Y��:Lgnu/javax/print/ipp/attribute/defaults/FinishingsDefault;
                                    ! �Ø�9	�Þ�à�ß�<gnu/javax/print/ipp/attribute/supported/IppVersionsSupported�á�â�V_1_0�>Lgnu/javax/print/ipp/attribute/supported/IppVersionsSupported;
                                    ! �Þ�9	�å�ç�æ�Ignu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported�´�è�KLgnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported;
                                    ! �å�9	�ë�í�ì�Fgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault�´�î�HLgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault;
                                    ! �ë�9	�ñ�ó�ò�<gnu/javax/print/ipp/attribute/supported/CompressionSupported�Y�ô�>Lgnu/javax/print/ipp/attribute/supported/CompressionSupported;
                                    ! �ñ�9	�÷�ù�ø�Egnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported�­�ú�GLgnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported;
                                    ! �÷�9	�ý�ÿ�þ�Bgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault�­��DLgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault;
                                    ! �ý�9	�6gnu/javax/print/ipp/attribute/supported/SidesSupported�Š�8Lgnu/javax/print/ipp/attribute/supported/SidesSupported;
                                    ! �9		
                                    ! �:gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault�|�<Lgnu/javax/print/ipp/attribute/defaults/PrintQualityDefault;
                                    ! 	�9	�=gnu/javax/print/ipp/attribute/supported/PrintQualitySupported�|�?Lgnu/javax/print/ipp/attribute/supported/PrintQualitySupported;
                                    ! �9	�Ž�’�FTP	�-javax/print/attribute/standard/ColorSupported�	SUPPORTED�/Ljavax/print/attribute/standard/ColorSupported;
                                    ! �9	! �5javax/print/attribute/standard/PrinterIsAcceptingJobs"#�ACCEPTING_JOBS�7Ljavax/print/attribute/standard/PrinterIsAcceptingJobs;
                                    ! �9	&('�Egnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported)�GLgnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported;
                                    ! &�9	,.-�;gnu/javax/print/ipp/attribute/supported/PageRangesSupported/�=Lgnu/javax/print/ipp/attribute/supported/PageRangesSupported;
                                    ! ,�92�
                                    media-default4�3gnu/javax/print/ipp/attribute/defaults/MediaDefault6�media-supported8�6gnu/javax/print/ipp/attribute/supported/MediaSupported:�media<�,javax/print/attribute/standard/MediaSizeName>�printer-location@�.javax/print/attribute/standard/PrinterLocationB�printer-infoD�*javax/print/attribute/standard/PrinterInfoF�printer-make-and-modelH�2javax/print/attribute/standard/PrinterMakeAndModelJ�printer-state-messageL�9gnu/javax/print/ipp/attribute/printer/PrinterStateMessageN�job-state-messageP�1gnu/javax/print/ipp/attribute/job/JobStateMessageR�job-sheets-defaultT�7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefaultV�job-sheets-supportedX�:gnu/javax/print/ipp/attribute/supported/JobSheetsSupportedZ�job-name\�&javax/print/attribute/standard/JobName^�printer-name`�*javax/print/attribute/standard/PrinterNameb�status-messaged�+gnu/javax/print/ipp/attribute/StatusMessagef�detailed-status-messageh�3gnu/javax/print/ipp/attribute/DetailedStatusMessagej�document-access-errorl�1gnu/javax/print/ipp/attribute/DocumentAccessErrorn�output-device-assignedp�3javax/print/attribute/standard/OutputDeviceAssignedr�job-hold-until-defaultt�:gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefaultv�job-originating-user-namex�5javax/print/attribute/standard/JobOriginatingUserNamez�job-hold-until-supported|�=gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported~�job-message-from-operator€�5javax/print/attribute/standard/JobMessageFromOperator‚�printer-message-from-operator„�9javax/print/attribute/standard/PrinterMessageFromOperator†�job-detailed-status-messagesˆ�;gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessagesŠ�job-document-access-errorsŒ�9gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrorsŽ�copies-default�4gnu/javax/print/ipp/attribute/defaults/CopiesDefault’�job-id”�'gnu/javax/print/ipp/attribute/job/JobId–�job-priority-supported˜�3javax/print/attribute/standard/JobPrioritySupportedš�job-priority-defaultœ�9gnu/javax/print/ipp/attribute/defaults/JobPriorityDefaultž�number-up-supported �0javax/print/attribute/standard/NumberUpSupported¢�number-up-default¤�6gnu/javax/print/ipp/attribute/defaults/NumberUpDefault¦�queued-job-count¨�-javax/print/attribute/standard/QueuedJobCountª�printer-up-time¬�3gnu/javax/print/ipp/attribute/printer/PrinterUpTime®�pages-per-minute°�-javax/print/attribute/standard/PagesPerMinute²�pages-per-minute-color´�2javax/print/attribute/standard/PagesPerMinuteColor¶�job-k-octets-processed¸�2javax/print/attribute/standard/JobKOctetsProcessedº�number-of-intervening-jobs¼�6javax/print/attribute/standard/NumberOfInterveningJobs¾�job-impressions-completedÀ�6javax/print/attribute/standard/JobImpressionsCompletedÂ�job-media-sheets-completedÄ�6javax/print/attribute/standard/JobMediaSheetsCompletedÆ�multiple-operation-time-outÈ�>gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOutÊ�*javax/print/attribute/standard/JobPriority
                                    ! —Ì�-Í�(I)VÏ�+javax/print/attribute/standard/JobHoldUntilÑ��
                                    ! {Ó�-Ô�'(Ljava/lang/String;Ljava/util/Locale;)V
                                    ! WÓ×�%javax/print/attribute/standard/CopiesÙ�.javax/print/attribute/standard/CopiesSupported
                                    ! ØÌ	�ÒÜ�`�ÕÞ�)javax/print/attribute/standard/PageRanges	à�Dâ�'javax/print/attribute/standard/NumberUp
                                    ! ŸÌ	�÷åæ�ú�	LANDSCAPEè�$javax/print/attribute/standard/Media
                                    ! 7Óë�0javax/print/attribute/standard/PrinterResolutioní�Bgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported
                                    ! ìï�-ð�(III)V	�ñòó�ô�COMPRESS�LineNumberTable�LocalVariableTable
                                    ! ��,�this�"Lgnu/javax/print/ipp/IppUtilities;�getClass�%(Ljava/lang/String;)Ljava/lang/Class;�I(Ljava/lang/String;)Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;
                                    ! �)ýþÿ�get�&(Ljava/lang/Object;)Ljava/lang/Object;�name�Ljava/lang/String;�getSupportedAttrName�%(Ljava/lang/Class;)Ljava/lang/String;�I(Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;)Ljava/lang/String;�.javax/print/attribute/SupportedValuesAttribute�9�clazz�LocalVariableTypeTable�5Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getSupportedCategory�$(Ljava/lang/Class;)Ljava/lang/Class;�l(Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;)Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getCategory�()Ljava/lang/Class;�convertToInt�([B)I�b�[B�(BBBB)I�b1�B�b2�b3�b4�convertToShort�(BB)S�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;
                                    ! �!ùú
                                    ! �#$%�getDeclaredFields�()[Ljava/lang/reflect/Field;
                                    ! ')(�java/lang/reflect/Field*�getType
                                    ! �,-.�equals�(Ljava/lang/Object;)Z
                                    ! 'ý1� javax/print/attribute/EnumSyntax
                                    ! 0345�getValue�()I
                                    ! �785�intValue:�javax/print/attribute/Attribute
                                    ! 0<=�;�toString
                                    ! �#,@�java/lang/SecurityExceptionB�"java/lang/IllegalArgumentExceptionD� java/lang/IllegalAccessException�value�Ljava/lang/Object;�	attrClass�fields�[Ljava/lang/reflect/Field;�i�I�field�Ljava/lang/reflect/Field;�attr�"Ljavax/print/attribute/EnumSyntax;�Ljava/lang/Class<*>;�getIntegerAttribute�6(Ljava/lang/String;I)Ljavax/print/attribute/Attribute;
                                    ! �TUV�valueOf�(I)Ljava/lang/Integer;
                                    ! �XYZ�getDeclaredConstructor�3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
                                    ! \^]�java/lang/reflect/Constructor_`�newInstance�'([Ljava/lang/Object;)Ljava/lang/Object;b�java/lang/NoSuchMethodExceptiond� java/lang/InstantiationExceptionf�+java/lang/reflect/InvocationTargetException�c�Ljava/lang/reflect/Constructor;�"Ljava/lang/reflect/Constructor<*>;�getTextAttribute�8(Ljava/lang/String;B[B)Ljavax/print/attribute/Attribute;
                                    ! �#m�-n�([B)V
                                    ! �%pqr�
                                      getDefault�()Ljava/util/Locale;
                                    ! �t
                                    ! vxw�java/lang/Systemyz�	arraycopy�*(Ljava/lang/Object;ILjava/lang/Object;II)V
                                    ! �#|}5�length
                                    ! �#€�	substring�(II)Ljava/lang/String;
                                    ! �#ƒ€„�(I)Ljava/lang/String;
                                    ! �%†�-‡�'(Ljava/lang/String;Ljava/lang/String;)V
                                    ! �%‰�-Š�(Ljava/lang/String;)V�tag�
                                      langLength�S�tmp�tmp2�language�text�locale�Ljava/util/Locale;�
                                      SourceFile�IppUtilities.java�1������
                                      �����
                                    ! ����	����
                                      �
                                    ! �����
                                    ! ����	����
                                    ! �
                                    ! �
                                    ���	�����
                                    ! ����	������������
                                    �����M½�³�½�Y²�S³�½�³�!½�Y#SY%S³�'»�)Y·�+³�.»�)Y·�+³�0²�.²�2¶�83¶�<W²�.²�@¶�FA¶�<W²�.²�G¶�MH¶�<W²�.²�N¶�TO¶�<W²�.²�U¶�[V¶�<W²�.²�\¶�b]¶�<W²�.²�c¶�id¶�<W²�.²�j¶�pk¶�<W²�.²�q¶�wr¶�<W²�.²�x¶�~y¶�<W²�.²�¶�…€¶�<W²�.²�†¶�Œ‡¶�<W²�.²�¶�“Ž¶�<W²�.²�”¶�š•¶�<W²�.²�›¶�¡œ¶�<W²�.²�¢¶�¨£¶�<W²�.²�©¶�¯ª¶�<W²�.²�°¶�¶±¶�<W²�.²�·¶�½¸¶�<W²�.²�¾¶�ÿ¶�<W²�.²�Ķ�ÊŶ�<W²�.²�˶�Ð̶�<W²�.²�Ѷ�ÖÒ¶�<W²�.²�׶�Üض�<W²�.²�ݶ�ãÞ¶�<W²�.²�ä¶�éå¶�<W²�.²�ê¶�ïë¶�<W²�.²�ð¶�õñ¶�<W²�.²�ö¶�û÷¶�<W²�.²�ü¶ý¶�<W²�.²¶¶�<W²�.²¶
                                    	¶�<W²�.²¶¶�<W²�.²¶�“Ž¶�<W²�.²¶¶�<W²�.²¶$¶�<W²�.²%¶*&¶�<W²�.²+¶0,¶�<W²�.13¶�<W²�.57¶�<W²�.9;¶�<W²�.=?¶�<W²�.AC¶�<W²�.EG¶�<W²�.IK¶�<W²�.MO¶�<W²�.QS¶�<W²�.UW¶�<W²�.Y[¶�<W²�.]_¶�<W²�.ac¶�<W²�.eg¶�<W²�.ik¶�<W²�.mo¶�<W²�.qs¶�<W²�.uw¶�<W²�.y{¶�<W²�.}¶�<W²�.ƒ¶�<W²�.…‡¶�<W²�.‰‹¶�<W²�.¶�<W²�.‘“¶�<W²�.•—¶�<W²�.™›¶�<W²�.Ÿ¶�<W²�.¡£¶�<W²�.¥§¶�<W²�.©«¶�<W²�.­¯¶�<W²�.±³¶�<W²�.µ·¶�<W²�.¹»¶�<W²�.½¿¶�<W²�.Áö�<W²�.ÅǶ�<W²�0É»—Y·˶�<W²�0λ{YзҶ�<W²�0V»WYзն�<W²�0±²�ä¶�<W²�0Ö»ØY·Ú¶�<W²�0]²Û¶�<W²�0ݲ+¶�<W²�0A²߶�<W²�0ởY·ã¶�<W²�0ª²ä¶�<W²�0ç»7Yзé¶�<W²�0ê»ìY·î¶�<W²�0y²¶�<W²�0k²ñ¶�<W±���ô��¦�©���•��–��—��˜�,�œ�3�›�6�Ÿ�=�ž�@�§�O�¨�^�©�m�ª�|�«�‹�¬�š�­�©�®�¸�¯�Ç�°�Ö�±�å�²�ô�³�ý�´�ÿ�³�µ�¶�µ�·�¸�·!�¹*�º,�¹0�»9�¼;�»?�½H�¾J�½N�¿W�ÀY�¿]�Áf�Âh�Ál�Ãu�Äw�Ã{�Å„�Ɔ�ÅŠ�Ç“�È•�Ç™�É¢�ʤ�ɨ�˱�̳�Ë·�ÍÀ�ÎÂ�ÍÆ�ÏÏ�ÐÑ�ÏÕ�ÑÞ�Òà�Ñä�Óí�Ôï�Óó�Õü�Öþ�Õ�×�Ø�×�Ù�Ú�Ù"�Û+�Ü.�Û2�Ý;�Þ=�ÝA�áQ�âZ�ã]�âa�äj�åm�äq�æz�ç}�æ�êŽ�ë›�ì¨�íµ�îÂ�ïÏ�ðÜ�ñé�òö�ó�ô�õ�ö*�÷7�øD�ùQ�ú^�ûd�üg�ûk�ýq�þt�ýx�ÿ~��ÿ…‹Ž’˜›Ÿ¥¨¬	¹
                                    ! ÆÓà
                                    íú!.;ADHNQU[^bhko –!ª"¶#È$Ô%á&í'ÿ() *4+@.L�’õ�������-������3�����*·ö±���ô���
                                    ! ���1�4õ�������÷ø���	ùú��	���û����5�����²�.*¶üÀ�°���ô������?õ�����������	��	�������L�����²�0*¶üÀ¹�°���ô������Kõ����������	�������
                                    ! ���	��	���
                                    ����L�����²�0*¶üÀ¹�°���ô������Wõ����������	�������
                                    ! ���	�����c�����)*3�ÿ~x*3�ÿ~x€*3�ÿ~x€*3�ÿ~€¬���ô������a�b�a� b�'aõ�������)���	�����y�����!�ÿ~x�ÿ~x€�ÿ~x€�ÿ~€¬���ô������o�p�o�p�oõ���*����!�����!����!����!��	�����@�����x�ÿ~€“¬���ô������{õ��������������	����ˆ�����€*¸ M,Ç�°,¶"N6§�X-2:¶&,¶+™�C¶/À0:+Á�™�¶2+À�¶6 �	À9°+Á�#™�¶;+¶>™�	À9°„-¾¡ÿ§§�W§�W§�W°�	��N�u?�O�g�u?�h�r�u?��N�yA�O�g�yA�h�r�yA��N�}C�O�g�}C�h�r�}C�ô���N���ˆ�‹�	Œ��‘�“�”�(–�3—�:˜�I™�Oš�V›�bœ�h‘�u �y¤�}¨�~­õ���H����€������€EF���{G����eHI���_JK���LLM��3�5NO�	������{GP��	QR�����ò�����:*¸ M,Ç�°²�¸SS,²�¶WN-²�¶[À9°W§�W§�W§�W§�W°���&�'?��&�+a��&�/C��&�3c��&�7e�ô���2���¼�¿�	À�Ä�Å�Æ�'È�+Ì�/Ð�3Ô�7Ø�8Ýõ���*����:������:EK���5G����gh�	������5GP���gi��	jk������	���ÍBŸ�	A �²�!»�#Y,·lS²�!¸oS§�y,3,3¸s>¼:,¾dd¼:,¸u»�#Y·l:»�#Y·l::¶{¤�»�%Y¶~¶‚·…:§�»�%Y·ˆ:²�!S²�!S*¸ N-Ç�°-²�'¶W:²�!¶[À9°W§�W§�W§�W§�W°��¥�¹�º?�¥�¹�¾a�¥�¹�ÂC�¥�¹�Æc�¥�¹�Êe�ô���n���ì�í�ï�ð�$ô�.õ�3ö�=÷�Fú�Qû�\ü�_þ�hÿ��Œ�“�š�Ÿ
                                    ! �£�¥�®�º�¾�Â�Æ�Ê"�Ë'õ���p����Í������Í‹����ÍE��.�lŒ��3�gŽ��=�]��Q�I��\�>‘��_�;’“��Ÿ�.G���®�gh�	�����Ÿ�.GP��®�gi��”���•
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DetailedStatusMessage.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DetailedStatusMessage.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DetailedStatusMessage.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DetailedStatusMessage.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���3gnu/javax/print/ipp/attribute/DetailedStatusMessage�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�5Lgnu/javax/print/ipp/attribute/DetailedStatusMessage;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��detailed-status-message�
                                      SourceFile�DetailedStatusMessage.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����E��F�
                                    ��� �������������������������	���-�����°�����������O�
                                    ����������������	���-�����°�����������Z�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���3gnu/javax/print/ipp/attribute/DetailedStatusMessage�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�5Lgnu/javax/print/ipp/attribute/DetailedStatusMessage;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��detailed-status-message�
                                      SourceFile�DetailedStatusMessage.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����E��F�
                                    ��� ������������������������������	���-�����°�����������O�
                                    ����������������	���-�����°�����������Z�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DocumentAccessError.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DocumentAccessError.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DocumentAccessError.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DocumentAccessError.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���1gnu/javax/print/ipp/attribute/DocumentAccessError�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�3Lgnu/javax/print/ipp/attribute/DocumentAccessError;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��document-access-error�
                                      SourceFile�DocumentAccessError.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����E��F�
                                    ��� �������������������������	���-�����°�����������O�
                                    ����������������	���-�����°�����������Z�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���1gnu/javax/print/ipp/attribute/DocumentAccessError�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�3Lgnu/javax/print/ipp/attribute/DocumentAccessError;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��document-access-error�
                                      SourceFile�DocumentAccessError.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����E��F�
                                    ��� ������������������������������	���-�����°�����������O�
                                    ����������������	���-�����°�����������Z�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,23 ****
                                    ! Êþº¾���1�O��1gnu/javax/print/ipp/attribute/RequestedAttributes��java/lang/Object��javax/print/attribute/Attribute�
                                    ! attributes�Ljava/util/ArrayList;�<init>�(Ljava/lang/String;)V�Code
                                    ! ��
                                    �	��()V��java/lang/NullPointerException
                                    ! ��
                                    ��java/util/ArrayList
                                    ! ��
                                    	����
                                    ! �����add�(Ljava/lang/Object;)Z�LineNumberTable�LocalVariableTable�this�3Lgnu/javax/print/ipp/attribute/RequestedAttributes;�value�Ljava/lang/String;�addValue�	getValues�()Ljava/util/List;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�)�requested-attributes�toString�,�gnu/java/lang/CPStringBuilder
                                    ! �+�
                                    ! ��/�0�1�size�()I
                                    ! ��3�4�5�get�(I)Ljava/lang/Object;
                                    ! �+�7�8�9�append�3(Ljava/lang/Object;)Lgnu/java/lang/CPStringBuilder;�;�java/lang/StringBuilder�=�, 
                                    ! �:�?�	�
                                    ! 
                                    ! �:�A�8�B�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;
                                    ! �:�D�*�'
                                    ! �+�F�8�G�3(Ljava/lang/String;)Lgnu/java/lang/CPStringBuilder;
                                    ! �+�D�b�Lgnu/java/lang/CPStringBuilder;�i�I�
                                    ! SourceFile�RequestedAttributes.java�1�������������	�
                                    ! �����m�����%*·�+Ç�»�Y·�¿*»�Y·�µ�*´�+¶�W±�����������B��D��E��G��H�$�I��������%�������%�� ���!�
                                    ! �����B�����
                                    ! *´�+¶�W±�������
                                    ! ����R�	�S��������
                                    ! �������
                                    ! �� ���"�#�����/�����*´�°�����������\��������������$�%�����-�����°�����������f��������������&�'�����-�����(°�����������p��������������*�'�����©�����S»�+Y·�-L*´�¶�.ž�+*´�¶�2¶�6W=§�"+»�:Y<·�>*´�¶�2¶�@¶�C¶�EW„*´�¶�.¡ÿÙ+¶�H°�����������z��|��}���$�€�@��N�‚���� ����S������K�I�J��!�-�K�L���M����N
                                    \ No newline at end of file
                                    --- 1,21 ----
                                    ! Êþº¾���1�W��1gnu/javax/print/ipp/attribute/RequestedAttributes��java/lang/Object��javax/print/attribute/Attribute�
                                    ! attributes�Ljava/util/ArrayList;�	Signature�)Ljava/util/ArrayList<Ljava/lang/String;>;�<init>�(Ljava/lang/String;)V�Code
                                    ! �����()V��java/lang/NullPointerException
                                    ! ����java/util/ArrayList
                                    ! ��	����
                                    ! �����add�(Ljava/lang/Object;)Z�LineNumberTable�LocalVariableTable�this�3Lgnu/javax/print/ipp/attribute/RequestedAttributes;�value�Ljava/lang/String;�addValue�	getValues�()[Ljava/lang/String;
                                    ! ��'�(�)�size�()I�+�java/lang/String
                                    ! ��-�.�/�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�1�[Ljava/lang/String;�getCategory�()Ljava/lang/Class;�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�8�requested-attributes�toString�;�gnu/java/lang/CPStringBuilder
                                    ! �:�
                                    ! ��>�?�@�get�(I)Ljava/lang/Object;
                                    ! �:�B�C�D�append�3(Ljava/lang/String;)Lgnu/java/lang/CPStringBuilder;�F�java/lang/StringBuilder�H�, 
                                    ! �E�J��
                                    ! �E�L�C�M�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �E�O�9�6
                                    ! �:�O�b�Lgnu/java/lang/CPStringBuilder;�i�I�
                                    ! SourceFile�RequestedAttributes.java�1����������	����
                                    ! ������
                                    ���m�����%*·�+Ç�»�Y·�¿*»�Y·�µ�*´�+¶�W±�����������B��D��E��G��H�$�I��������%�� �����%�!�"���#���
                                    ���B�����
                                    ! *´�+¶�W±�������
                                    ! ����R�	�S��������
                                    ! �� �����
                                    ! �!�"���$�%��
                                    ���?�����*´�*´�¶�&½�*¶�,À�0°�����������\���������� ����2�3��	����4�
                                    ���-�����°�����������f���������� ����5�6��
                                    ���-�����7°�����������p���������� ����9�6��
                                    ���¯�����Y»�:Y·�<L*´�¶�&ž�+*´�¶�=À�*¶�AW=§�%+»�EYG·�I*´�¶�=À�*¶�K¶�N¶�AW„*´�¶�&¡ÿÖ+¶�P°�����������z��|��}�"��'�€�F��T�‚���� ����Y�� ����Q�Q�R��$�0�S�T���U����V
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/StatusMessage.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/StatusMessage.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/StatusMessage.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/StatusMessage.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���+gnu/javax/print/ipp/attribute/StatusMessage�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�-Lgnu/javax/print/ipp/attribute/StatusMessage;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��status-message�
                                      SourceFile�StatusMessage.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����D��E�
                                    ��� �������������������������	���-�����°�����������N�
                                    ����������������	���-�����°�����������Y�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���+gnu/javax/print/ipp/attribute/StatusMessage�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�-Lgnu/javax/print/ipp/attribute/StatusMessage;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��status-message�
                                      SourceFile�StatusMessage.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����D��E�
                                    ��� ������������������������������	���-�����°�����������N�
                                    ����������������	���-�����°�����������Y�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/UnknownAttribute.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/UnknownAttribute.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/UnknownAttribute.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/UnknownAttribute.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,22 ****
                                    ! Êþº¾���1�b��.gnu/javax/print/ipp/attribute/UnknownAttribute��java/lang/Object��javax/print/attribute/Attribute�tag�B�name�Ljava/lang/String;�value�[B�<init>�(BLjava/lang/String;[B)V�Code
                                      ���
                                    ��()V	����	���	�
                                    ! 	�����LineNumberTable�LocalVariableTable�this�0Lgnu/javax/print/ipp/attribute/UnknownAttribute;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�getValueTag�()B�getAttributeName�getAttributeValue�()[B�getAttributeValueAsString�(�java/lang/String
                                    ! �'�*�
                                    �+�([B)V�getAttributeValueAsInt�()I
                                    ! �/�1�0� gnu/javax/print/ipp/IppUtilities�2�3�convertToInt�([B)I�getAttributeValueAsUri�()Ljava/net/URI;�7�java/net/URI
                                    ! �6�9�
                                    �:�(Ljava/lang/String;)V�<�java/net/URISyntaxException�toString�?�java/lang/StringBuilder
                                    ! �>�
                                    ! ��B�,�-
                                    ! �>�D�E�F�append�(I)Ljava/lang/StringBuilder;
                                    ! �>�H�=� 
                                    ! �/�J�2�K�(BBBB)I
                                    ! �'�M�N�O�valueOf�(I)Ljava/lang/String;
                                    ! �>�9�R�-
                                    ! �>�T�E�U�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! ��W�4�5
                                    ! �6�H
                                    ! ��Z�&� �\�No conversion found.�lower�I�upper�
                                      SourceFile�UnknownAttribute.java�1������������	�
                                      ��������
                                      ��
                                    ������l�����*·�*µ�*,µ�*-µ�±�����������D��F�	�G��H��I����*������������������	�
                                    ! ���������������-�����°�����������R��������������� �����/�����*´�°�����������\��������������!�"�����/�����*´�¬�����������g��������������#� �����/�����*´�°�����������p��������������$�%�����/�����*´�°�����������y��������������&� �����6�����»�'Y*´�·�)°�����������‚��������������,�-�����2�����*´�¸�.¬�����������‹��������������4�5�����P�����»�6Y»�'Y*´�·�)·�8°W°������;���������–��˜��š��������������=� ����>�����Ô*´�«������Í���
                                    ! ���!���\���3���n���A���È���B���È���D���È���E���À���F���È���G���È���H���È���I���È»�>Y·�@*¶�A¶�C¶�G°*´�3*´�3*´�3*´�3¸�I<*´�3*´�3*´�3*´�3¸�I=»�>Y¸�L·�PQ¶�S¶�C¶�G°*¶�V¶�X°*¶�Y°[°�������2����¦�`�©�r�«�~�¬�Š�«�Ž�­�š�®�¨�­�¬�¯�Ä�±�Ì�¹�Ñ�»���� ����Ô�����Ž�6�]�^��¬��_�^���`����a
                                    \ No newline at end of file
                                    --- 1,22 ----
                                    ! Êþº¾���1�d��.gnu/javax/print/ipp/attribute/UnknownAttribute��java/lang/Object��javax/print/attribute/Attribute�tag�B�name�Ljava/lang/String;�value�[B�<init>�(BLjava/lang/String;[B)V�Code
                                      ���
                                    ��()V	����	���	�
                                    ! 	�����LineNumberTable�LocalVariableTable�this�0Lgnu/javax/print/ipp/attribute/UnknownAttribute;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�getValueTag�()B�getAttributeName�getAttributeValue�()[B�getAttributeValueAsString�*�java/lang/String
                                    ! �)�,�
                                    �-�([B)V�getAttributeValueAsInt�()I
                                    ! �1�3�2� gnu/javax/print/ipp/IppUtilities�4�5�convertToInt�([B)I�getAttributeValueAsUri�()Ljava/net/URI;�9�java/net/URI
                                    ! �8�;�
                                    �<�(Ljava/lang/String;)V�>�java/net/URISyntaxException�toString�A�java/lang/StringBuilder
                                    ! �@�
                                    ! ��D�.�/
                                    ! �@�F�G�H�append�(I)Ljava/lang/StringBuilder;
                                    ! �@�J�?�"
                                    ! �1�L�4�M�(BBBB)I
                                    ! �)�O�P�Q�valueOf�(I)Ljava/lang/String;
                                    ! �@�;�T�-
                                    ! �@�V�G�W�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! ��Y�6�7
                                    ! �8�J
                                    ! ��\�(�"�^�No conversion found.�lower�I�upper�
                                      SourceFile�UnknownAttribute.java�1������������	�
                                      ��������
                                      ��
                                    ������l�����*·�*µ�*,µ�*-µ�±�����������D��F�	�G��H��I����*������������������	�
                                    ! ���������������� ����-�����°�����������R��������������!�"�����/�����*´�°�����������\��������������#�$�����/�����*´�¬�����������g��������������%�"�����/�����*´�°�����������p��������������&�'�����/�����*´�°�����������y��������������(�"�����6�����»�)Y*´�·�+°�����������‚��������������.�/�����2�����*´�¸�0¬�����������‹��������������6�7�����P�����»�8Y»�)Y*´�·�+·�:°W°������=���������–��˜��š��������������?�"����>�����Ô*´�«������Í���
                                    ! ���!���\���3���n���A���È���B���È���D���È���E���À���F���È���G���È���H���È���I���È»�@Y·�B*¶�C¶�E¶�I°*´�3*´�3*´�3*´�3¸�K<*´�3*´�3*´�3*´�3¸�K=»�@Y¸�N·�RS¶�U¶�E¶�I°*¶�X¶�Z°*¶�[°]°�������2����¦�`�©�r�«�~�¬�Š�«�Ž�­�š�®�¨�­�¬�¯�Ä�±�Ì�¹�Ñ�»���� ����Ô�����Ž�6�_�`��¬��a�`���b����c
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,9 ****
                                    ! Êþº¾���1�0��4gnu/javax/print/ipp/attribute/defaults/CopiesDefault��#javax/print/attribute/IntegerSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�(I)V�Code
                                      �����
                                    �"java/lang/IllegalArgumentException��value may not be less than 1
                                      �����(Ljava/lang/String;)V�LineNumberTable�LocalVariableTable�this�6Lgnu/javax/print/ipp/attribute/defaults/CopiesDefault;�value�I�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�$�copies-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�(�%javax/print/attribute/standard/Copies
                                    ! ��*�+�,�getValue�()I
                                    ! �'��
                                      SourceFile�CopiesDefault.java�1������������	���U�����*·�
                                      ¢�
                                    »�Y·�¿±�����������A��C�
                                    ! �D��E�����������������������	���K�����+Á�š�¬*+·�¬�����������Q��R�	�T��������������������� ��	���-�����°�����������^��������������!�"��	���-�����#°�����������h��������������%�&��	���6�����»�'Y*¶�)·�-°�����������t��������������.����/
                                    \ No newline at end of file
                                    --- 1,9 ----
                                    ! Êþº¾���1�2��4gnu/javax/print/ipp/attribute/defaults/CopiesDefault��#javax/print/attribute/IntegerSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�(I)V�Code
                                      �����
                                    �"java/lang/IllegalArgumentException��value may not be less than 1
                                      �����(Ljava/lang/String;)V�LineNumberTable�LocalVariableTable�this�6Lgnu/javax/print/ipp/attribute/defaults/CopiesDefault;�value�I�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�&�copies-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�*�%javax/print/attribute/standard/Copies
                                    ! ��,�-�.�getValue�()I
                                    ! �)��
                                      SourceFile�CopiesDefault.java�1������������	���U�����*·�
                                      ¢�
                                    »�Y·�¿±�����������A��C�
                                    ! �D��E�����������������������	���K�����+Á�š�¬*+·�¬�����������Q��R�	�T��������������������� ��!����"�	���-�����°�����������^��������������#�$��	���-�����%°�����������h��������������'�(��	���6�����»�)Y*¶�+·�/°�����������t��������������0����1
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,8 ****
                                    ! Êþº¾���1�(��<gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault�� javax/print/attribute/TextSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�>Lgnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��document-format-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;��4gnu/javax/print/ipp/attribute/printer/DocumentFormat
                                    ! ��� ��getValue
                                    ! ��"�#�$�	getLocale�()Ljava/util/Locale;
                                    ! ���
                                      SourceFile�DocumentFormatDefault.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����H��I�
                                    ��� �������������������������	���-�����°�����������R�
                                    ����������������	���-�����°�����������\�
                                    ����������������	���:�����»�Y*¶�*¶�!·�%°�����������g�
                                    �������������&����'
                                    \ No newline at end of file
                                    --- 1,8 ----
                                    ! Êþº¾���1�*��<gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault�� javax/print/attribute/TextSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�>Lgnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��document-format-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;��4gnu/javax/print/ipp/attribute/printer/DocumentFormat
                                    ! ��!�"��getValue
                                    ! ��$�%�&�	getLocale�()Ljava/util/Locale;
                                    ! ���
                                      SourceFile�DocumentFormatDefault.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����H��I�
                                    ��� ������������������������������	���-�����°�����������R�
                                    ����������������	���-�����°�����������\�
                                    ����������������	���:�����»�Y*¶� *¶�#·�'°�����������g�
                                    �������������(����)
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,11 ****
                                    ! Êþº¾���1�—��8gnu/javax/print/ipp/attribute/defaults/FinishingsDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�NONE�:Lgnu/javax/print/ipp/attribute/defaults/FinishingsDefault;�STAPLE�COVER�BIND�
                                    SADDLE_STITCH�EDGE_STITCH�STAPLE_TOP_LEFT�STAPLE_BOTTOM_LEFT�STAPLE_TOP_RIGHT�STAPLE_BOTTOM_RIGHT�EDGE_STITCH_LEFT�EDGE_STITCH_TOP�EDGE_STITCH_RIGHT�EDGE_STITCH_BOTTOM�STAPLE_DUAL_LEFT�STAPLE_DUAL_TOP�STAPLE_DUAL_RIGHT�STAPLE_DUAL_BOTTOM�stringTable�[Ljava/lang/String;�enumValueTable�;[Lgnu/javax/print/ipp/attribute/defaults/FinishingsDefault;�<clinit>�()V�Code
                                      ��"�#�$�<init>�(I)V	��&��	��(�	�	��*�
                                      �	��,��	��.��	��0�
                                    �	��2��	��4��	��6��	��8��	��:��	��<��	��>��	��@��	��B��	��D��	��F��	��H���J�java/lang/String�L�none�N�staple�P�cover�R�bind�T�
                                    saddle-stitch�V�edge-stitch�X�staple-top-left�Z�staple-bottom-left�\�staple-top-right�^�staple-bottom-right�`�edge-stitch-left�b�edge-stitch-top�d�edge-stitch-right�f�edge-stitch-bottom�h�staple-dual-left�j�staple-dual-top�l�staple-dual-right�n�staple-dual-bottom	��p��	��r���LineNumberTable�LocalVariableTable
                                    ! ��"�this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�~�finishings-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�ˆ�
                                    ! finishings�Š�java/lang/Integer
                                    ! ��Œ��„�getValue
                                    ! �‰�"
                                    ! ��’�‘� gnu/javax/print/ipp/IppUtilities�“�”�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�FinishingsDefault.java�1������������	�����
                                      ���������������
                                    ������������������������������������������������������������������������������� ��»�����Ç»�Y·�!³�%»�Y·�!³�'»�Y·�!³�)»�Y·�!³�+»�Y·�!³�-»�Y	·�!³�/»�Y·�!³�1»�Y·�!³�3»�Y·�!³�5»�Y·�!³�7»�Y·�!³�9»�Y·�!³�;»�Y·�!³�=»�Y·�!³�?»�Y·�!³�A»�Y·�!³�C»�Y·�!³�E»�Y·�!³�G½�IYKSYMSYOSYQSYSSYUSYWSYYSY[SY]SY_SYaSYcSYeSYgSYiSYkSYmS³�o½�Y²�%SY²�'SY²�)SY²�+SY²�-SY²�/SY²�1SY²�3SY²�5SY²�7SY²�9SY²�;SY²�=SY²�?SY²�ASY²�CSY²�ESY²�GS³�q±����s���Ú�6���;��>��A�"�G�.�M�:�S�F�Y�R�_�^�d�j�i�v�o�‚�u�Ž�{�š��¦�‡�²��¾�“�Ê�™�Ö�›�Ý�›�ç�œ�÷��ý�Ÿ� 	�¡�¢�£�¤!�¥'�¦-�§3�¨9�©?�ªB�›E�¬L�¬X�­d�®k�¯r�³y�´€�µ‡�¶Ž�·•�¸œ�¹£�ºª�»±�¼¸�½¿�¾Ã�¬Æ�6�t�������#�$�� ���>�����*·�u±����s���
                                    ! ����Ç��È�t��������v�������w�x���y�z�� ���-�����°����s�������Ñ�t��������v�����{�|�� ���-�����}°����s�������Û�t��������v������€�� ���.�����²�o°����s�������æ�t��������v������‚�� ���.�����²�q°����s�������ð�t��������v�����ƒ�„�� ���,�����¬����s�������ú�t��������v�����…�†�� ���;�����‡»�‰Y*¶�‹·�Ž¸�°����s�������t��������v�����•����–
                                    \ No newline at end of file
                                    --- 1,11 ----
                                    ! Êþº¾���1�™��8gnu/javax/print/ipp/attribute/defaults/FinishingsDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�NONE�:Lgnu/javax/print/ipp/attribute/defaults/FinishingsDefault;�STAPLE�COVER�BIND�
                                    SADDLE_STITCH�EDGE_STITCH�STAPLE_TOP_LEFT�STAPLE_BOTTOM_LEFT�STAPLE_TOP_RIGHT�STAPLE_BOTTOM_RIGHT�EDGE_STITCH_LEFT�EDGE_STITCH_TOP�EDGE_STITCH_RIGHT�EDGE_STITCH_BOTTOM�STAPLE_DUAL_LEFT�STAPLE_DUAL_TOP�STAPLE_DUAL_RIGHT�STAPLE_DUAL_BOTTOM�stringTable�[Ljava/lang/String;�enumValueTable�;[Lgnu/javax/print/ipp/attribute/defaults/FinishingsDefault;�<clinit>�()V�Code
                                      ��"�#�$�<init>�(I)V	��&��	��(�	�	��*�
                                      �	��,��	��.��	��0�
                                    �	��2��	��4��	��6��	��8��	��:��	��<��	��>��	��@��	��B��	��D��	��F��	��H���J�java/lang/String�L�none�N�staple�P�cover�R�bind�T�
                                    saddle-stitch�V�edge-stitch�X�staple-top-left�Z�staple-bottom-left�\�staple-top-right�^�staple-bottom-right�`�edge-stitch-left�b�edge-stitch-top�d�edge-stitch-right�f�edge-stitch-bottom�h�staple-dual-left�j�staple-dual-top�l�staple-dual-right�n�staple-dual-bottom	��p��	��r���LineNumberTable�LocalVariableTable
                                    ! ��"�this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�€�finishings-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�Š�
                                    ! finishings�Œ�java/lang/Integer
                                    ! ��Ž��†�getValue
                                    ! �‹�"
                                    ! �’�”�“� gnu/javax/print/ipp/IppUtilities�•�–�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�FinishingsDefault.java�1������������	�����
                                      ���������������
                                    ������������������������������������������������������������������������������� ��»�����Ç»�Y·�!³�%»�Y·�!³�'»�Y·�!³�)»�Y·�!³�+»�Y·�!³�-»�Y	·�!³�/»�Y·�!³�1»�Y·�!³�3»�Y·�!³�5»�Y·�!³�7»�Y·�!³�9»�Y·�!³�;»�Y·�!³�=»�Y·�!³�?»�Y·�!³�A»�Y·�!³�C»�Y·�!³�E»�Y·�!³�G½�IYKSYMSYOSYQSYSSYUSYWSYYSY[SY]SY_SYaSYcSYeSYgSYiSYkSYmS³�o½�Y²�%SY²�'SY²�)SY²�+SY²�-SY²�/SY²�1SY²�3SY²�5SY²�7SY²�9SY²�;SY²�=SY²�?SY²�ASY²�CSY²�ESY²�GS³�q±����s���Ú�6���;��>��A�"�G�.�M�:�S�F�Y�R�_�^�d�j�i�v�o�‚�u�Ž�{�š��¦�‡�²��¾�“�Ê�™�Ö�›�Ý�›�ç�œ�÷��ý�Ÿ� 	�¡�¢�£�¤!�¥'�¦-�§3�¨9�©?�ªB�›E�¬L�¬X�­d�®k�¯r�³y�´€�µ‡�¶Ž�·•�¸œ�¹£�ºª�»±�¼¸�½¿�¾Ã�¬Æ�6�t�������#�$�� ���>�����*·�u±����s���
                                    ! ����Ç��È�t��������v�������w�x���y�z��{����|� ���-�����°����s�������Ñ�t��������v�����}�~�� ���-�����°����s�������Û�t��������v������‚�� ���.�����²�o°����s�������æ�t��������v�����ƒ�„�� ���.�����²�q°����s�������ð�t��������v�����…�†�� ���,�����¬����s�������ú�t��������v�����‡�ˆ�� ���;�����‰»�‹Y*¶�·�¸�‘°����s�������t��������v�����—����˜
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,12 ****
                                    ! Êþº¾���1�R��:gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault�� javax/print/attribute/TextSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�NO_HOLD�<Lgnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault;�
                                      INDEFINITE�DAY_TIME�EVENING�NIGHT�WEEKEND�SECOND_SHIFT�THIRD_SHIFT�<clinit>�()V�Code��no-hold
                                      �����<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	������
                                      indefinite	���	�� �day-time	��"�
                                      ��$�evening	��&���(�night	��*���,�weekend	��.�
                                    ��0�second-shift	��2���4�third-shift	��6���LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�D�job-hold-until-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�H�+javax/print/attribute/standard/JobHoldUntil�J�java/util/Date
                                    ! �I�L��
                                    ! �G�N��O�(Ljava/util/Date;)V�
                                      SourceFile�JobHoldUntilDefault.java�1������������	�����
                                      ���������������
                                    ����������������������É������i»�Y·�³�»�Y·�³�»�Y·�³�!»�Y#·�³�%»�Y'·�³�)»�Y+·�³�-»�Y/·�³�1»�Y3·�³�5±����7���F����B�
                                      �A�
                                    �F��E��J�$�I�'�N�1�M�4�R�>�Q�A�V�K�U�N�]�X�\�[�d�e�c�h�8�8�������������I�����*+,·�9±����7���
                                    ! ����r��s�8��� �����:�������;�<�����=�>���?�@�����-�����°����7�������|�8��������:�����A�B�����-�����C°����7�������†�8��������:�����E�F�����9�����»�GY»�IY·�K·�M°����7�������’�8��������:�����P����Q
                                    \ No newline at end of file
                                    --- 1,12 ----
                                    ! Êþº¾���1�T��:gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault�� javax/print/attribute/TextSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�NO_HOLD�<Lgnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault;�
                                      INDEFINITE�DAY_TIME�EVENING�NIGHT�WEEKEND�SECOND_SHIFT�THIRD_SHIFT�<clinit>�()V�Code��no-hold
                                      �����<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	������
                                      indefinite	���	�� �day-time	��"�
                                      ��$�evening	��&���(�night	��*���,�weekend	��.�
                                    ��0�second-shift	��2���4�third-shift	��6���LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�F�job-hold-until-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�J�+javax/print/attribute/standard/JobHoldUntil�L�java/util/Date
                                    ! �K�N��
                                    ! �I�P��Q�(Ljava/util/Date;)V�
                                      SourceFile�JobHoldUntilDefault.java�1������������	�����
                                      ���������������
                                    ����������������������É������i»�Y·�³�»�Y·�³�»�Y·�³�!»�Y#·�³�%»�Y'·�³�)»�Y+·�³�-»�Y/·�³�1»�Y3·�³�5±����7���F����B�
                                      �A�
                                    �F��E��J�$�I�'�N�1�M�4�R�>�Q�A�V�K�U�N�]�X�\�[�d�e�c�h�8�8�������������I�����*+,·�9±����7���
                                    ! ����r��s�8��� �����:�������;�<�����=�>���?�@��A����B����-�����°����7�������|�8��������:�����C�D�����-�����E°����7�������†�8��������:�����G�H�����9�����»�IY»�KY·�M·�O°����7�������’�8��������:�����R����S
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,8 ****
                                    ! Êþº¾���1�0��9gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault��#javax/print/attribute/IntegerSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�(I)V�Code
                                      �����
                                    �"java/lang/IllegalArgumentException��value out of range
                                      �����(Ljava/lang/String;)V�LineNumberTable�LocalVariableTable�this�;Lgnu/javax/print/ipp/attribute/defaults/JobPriorityDefault;�value�I�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�$�job-priority-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�(�*javax/print/attribute/standard/JobPriority
                                    ! ��*�+�,�getValue�()I
                                    ! �'��
                                      SourceFile�JobPriorityDefault.java�1������������	���[�����*·�
                                    ! ¡�	d¤�
                                    »�Y·�¿±�����������B��D��E��F�����������������������	���K�����+Á�š�¬*+·�¬�����������R��S�	�U��������������������� ��	���-�����°�����������_��������������!�"��	���-�����#°�����������i��������������%�&��	���6�����»�'Y*¶�)·�-°�����������t��������������.����/
                                    \ No newline at end of file
                                    --- 1,8 ----
                                    ! Êþº¾���1�2��9gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault��#javax/print/attribute/IntegerSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�(I)V�Code
                                      �����
                                    �"java/lang/IllegalArgumentException��value out of range
                                      �����(Ljava/lang/String;)V�LineNumberTable�LocalVariableTable�this�;Lgnu/javax/print/ipp/attribute/defaults/JobPriorityDefault;�value�I�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�&�job-priority-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�*�*javax/print/attribute/standard/JobPriority
                                    ! ��,�-�.�getValue�()I
                                    ! �)��
                                      SourceFile�JobPriorityDefault.java�1������������	���[�����*·�
                                    ! ¡�	d¤�
                                    »�Y·�¿±�����������B��D��E��F�����������������������	���K�����+Á�š�¬*+·�¬�����������R��S�	�U��������������������� ��!����"�	���-�����°�����������_��������������#�$��	���-�����%°�����������i��������������'�(��	���6�����»�)Y*¶�+·�/°�����������t��������������0����1
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,10 ****
                                    ! Êþº¾���1�<��7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault�� javax/print/attribute/TextSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�NONE�9Lgnu/javax/print/ipp/attribute/defaults/JobSheetsDefault;�STANDARD�<clinit>�()V�Code��none
                                      ����java/util/Locale���
                                      getDefault�()Ljava/util/Locale;
                                      �����<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	������standard	���	��LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�,�job-sheets-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;
                                    ! ��0�1�2�equals�(Ljava/lang/Object;)Z	�4�6�5�(javax/print/attribute/standard/JobSheets��7�*Ljavax/print/attribute/standard/JobSheets;	�4�9�	�7�
                                      SourceFile�JobSheetsDefault.java�1������������	������
                                      ������O������»�Y
                                    ¸�·�³�»�Y¸�·�³�±�����������@��?��D��C��7� �������������I�����*+,·�!±�������
                                    ! ����R��S� ��� �����"�������#�$�����%�&���'�(�����-�����°�����������\� ��������"�����)�*�����-�����+°�����������f� ��������"�����-�.�����X�����*²�¶�/™�²�3°*²�¶�/™�²�8°°�����������r�
                                    ! �s��t��u��w� ��������"�����:����;
                                    \ No newline at end of file
                                    --- 1,10 ----
                                    ! Êþº¾���1�>��7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault�� javax/print/attribute/TextSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�NONE�9Lgnu/javax/print/ipp/attribute/defaults/JobSheetsDefault;�STANDARD�<clinit>�()V�Code��none
                                      ����java/util/Locale���
                                      getDefault�()Ljava/util/Locale;
                                      �����<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	������standard	���	��LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�.�job-sheets-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;
                                    ! ��2�3�4�equals�(Ljava/lang/Object;)Z	�6�8�7�(javax/print/attribute/standard/JobSheets��9�*Ljavax/print/attribute/standard/JobSheets;	�6�;�	�9�
                                      SourceFile�JobSheetsDefault.java�1������������	������
                                      ������O������»�Y
                                    ¸�·�³�»�Y¸�·�³�±�����������@��?��D��C��7� �������������I�����*+,·�!±�������
                                    ! ����R��S� ��� �����"�������#�$�����%�&���'�(��)����*����-�����°�����������\� ��������"�����+�,�����-�����-°�����������f� ��������"�����/�0�����X�����*²�¶�1™�²�5°*²�¶�1™�²�:°°�����������r�
                                    ! �s��t��u��w� ��������"�����<����=
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MediaDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MediaDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MediaDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MediaDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,9 ****
                                    ! Êþº¾���1�)��3gnu/javax/print/ipp/attribute/defaults/MediaDefault�� javax/print/attribute/TextSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�5Lgnu/javax/print/ipp/attribute/defaults/MediaDefault;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��
                                    media-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;��media
                                    ! ��� ��getValue
                                    ! �"�$�#� gnu/javax/print/ipp/IppUtilities�%�&�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�MediaDefault.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����G��H�
                                    ��� �������������������������	���-�����°�����������Q�
                                    ����������������	���-�����°�����������[�
                                    ����������������	���4�����
                                    ! *¶�¸�!°�����������f�
                                    �������
                                    ! ������'����(
                                    \ No newline at end of file
                                    --- 1,9 ----
                                    ! Êþº¾���1�+��3gnu/javax/print/ipp/attribute/defaults/MediaDefault�� javax/print/attribute/TextSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�5Lgnu/javax/print/ipp/attribute/defaults/MediaDefault;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��
                                    media-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;��media
                                    ! ��!�"��getValue
                                    ! �$�&�%� gnu/javax/print/ipp/IppUtilities�'�(�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�MediaDefault.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����G��H�
                                    ��� ������������������������������	���-�����°�����������Q�
                                    ����������������	���-�����°�����������[�
                                    ����������������	���4�����
                                    ! *¶� ¸�#°�����������f�
                                    �������
                                    ! ������)����*
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,10 ****
                                    ! Êþº¾���1�P��Fgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�SINGLE_DOCUMENT�HLgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault;�$SEPARATE_DOCUMENTS_UNCOLLATED_COPIES�"SEPARATE_DOCUMENTS_COLLATED_COPIES�SINGLE_DOCUMENT_NEW_SHEET�stringTable�[Ljava/lang/String;�enumValueTable�I[Lgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�single-document�$�$separate-documents-uncollated-copies�&�"separate-documents-collated-copies�(�single-document-new-sheet	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�8�"multiple-document-handling-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�@�multiple-document-handling�B�java/lang/Integer
                                    ! ��D�E�F�getValue�()I
                                    ! �A�
                                    ! �I�K�J� gnu/javax/print/ipp/IppUtilities�L�M�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�$MultipleDocumentHandlingDefault.java�1������������	�����
                                      �����������
                                    ����������������Ï������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���N����@��?��D��C��H��G�!�O�)�N�,�Q�2�Q�7�R�<�S�A�T�D�Q�G�W�M�W�Y�X�c�V�f�5�.�������������>�����*·�/±����-���
                                    ! ����a��b�.��������0�������1�2���3�4�����-�����°����-�������k�.��������0�����5�6�����-�����7°����-�������u�.��������0�����9�:�����.�����²�)°����-�������€�.��������0�����;�<�����.�����²�+°����-�������Š�.��������0�����=�>�����C�����?»�AY*¶�C·�G¸�H°����-�������•��–�
                                    �•�.��������0�����N����O
                                    \ No newline at end of file
                                    --- 1,10 ----
                                    ! Êþº¾���1�R��Fgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�SINGLE_DOCUMENT�HLgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault;�$SEPARATE_DOCUMENTS_UNCOLLATED_COPIES�"SEPARATE_DOCUMENTS_COLLATED_COPIES�SINGLE_DOCUMENT_NEW_SHEET�stringTable�[Ljava/lang/String;�enumValueTable�I[Lgnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�single-document�$�$separate-documents-uncollated-copies�&�"separate-documents-collated-copies�(�single-document-new-sheet	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�:�"multiple-document-handling-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�B�multiple-document-handling�D�java/lang/Integer
                                    ! ��F�G�H�getValue�()I
                                    ! �C�
                                    ! �K�M�L� gnu/javax/print/ipp/IppUtilities�N�O�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�$MultipleDocumentHandlingDefault.java�1������������	�����
                                      �����������
                                    ����������������Ï������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���N����@��?��D��C��H��G�!�O�)�N�,�Q�2�Q�7�R�<�S�A�T�D�Q�G�W�M�W�Y�X�c�V�f�5�.�������������>�����*·�/±����-���
                                    ! ����a��b�.��������0�������1�2���3�4��5����6����-�����°����-�������k�.��������0�����7�8�����-�����9°����-�������u�.��������0�����;�<�����.�����²�)°����-�������€�.��������0�����=�>�����.�����²�+°����-�������Š�.��������0�����?�@�����C�����A»�CY*¶�E·�I¸�J°����-�������•��–�
                                    �•�.��������0�����P����Q
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,8 ****
                                    ! Êþº¾���1�)��6gnu/javax/print/ipp/attribute/defaults/NumberUpDefault��#javax/print/attribute/IntegerSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�(I)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�8Lgnu/javax/print/ipp/attribute/defaults/NumberUpDefault;�value�I�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��number-up-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�!�'javax/print/attribute/standard/NumberUp
                                    ! ��#�$�%�getValue�()I
                                    ! � ��
                                      SourceFile�NumberUpDefault.java�1������������	���>�����*·�
                                      ±�������
                                    ! ����@��A�
                                    ����������������������	���K�����+Á�š�¬*+·�¬�����������M��N�	�P�
                                    ����������������������	���-�����°�����������Z�
                                    ����������������	���-�����°�����������d�
                                    ����������������	���6�����»� Y*¶�"·�&°�����������p�
                                    �������������'����(
                                    \ No newline at end of file
                                    --- 1,8 ----
                                    ! Êþº¾���1�+��6gnu/javax/print/ipp/attribute/defaults/NumberUpDefault��#javax/print/attribute/IntegerSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�(I)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�8Lgnu/javax/print/ipp/attribute/defaults/NumberUpDefault;�value�I�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��number-up-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�#�'javax/print/attribute/standard/NumberUp
                                    ! ��%�&�'�getValue�()I
                                    ! �"��
                                      SourceFile�NumberUpDefault.java�1������������	���>�����*·�
                                      ±�������
                                    ! ����@��A�
                                    ����������������������	���K�����+Á�š�¬*+·�¬�����������M��N�	�P�
                                    ���������������������������	���-�����°�����������Z�
                                    ����������������	���-�����°�����������d�
                                    ������������� �!��	���6�����»�"Y*¶�$·�(°�����������p�
                                    �������������)����*
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,10 ****
                                    ! Êþº¾���1�Q��Bgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�PORTRAIT�DLgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault;�	LANDSCAPE�REVERSE_LANDSCAPE�REVERSE_PORTRAIT�stringTable�[Ljava/lang/String;�enumValueTable�E[Lgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�portrait�$�	landscape�&�reverse-landscape�(�reverse-portrait	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�8�orientation-requested-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�B�orientation-requested�D�java/lang/Integer
                                    ! ��F�G�>�getValue
                                    ! �C�
                                    ! �J�L�K� gnu/javax/print/ipp/IppUtilities�M�N�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile� OrientationRequestedDefault.java�1������������	�����
                                      �����������
                                    ����������������Ì������h»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���J����;��:��?��>��C��B�!�G�*�F�-�J�3�J�=�K�B�L�E�J�H�O�N�O�Z�P�d�O�g�5�.�������������>�����*·�/±����-���
                                    ! ����Y��Z�.��������0�������1�2���3�4�����-�����°����-�������c�.��������0�����5�6�����-�����7°����-�������m�.��������0�����9�:�����.�����²�)°����-�������x�.��������0�����;�<�����.�����²�+°����-�������‚�.��������0�����=�>�����,�����¬����-�������Œ�.��������0�����?�@�����C�����A»�CY*¶�E·�H¸�I°����-�������—��˜�
                                    �—�.��������0�����O����P
                                    \ No newline at end of file
                                    --- 1,10 ----
                                    ! Êþº¾���1�S��Bgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�PORTRAIT�DLgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault;�	LANDSCAPE�REVERSE_LANDSCAPE�REVERSE_PORTRAIT�stringTable�[Ljava/lang/String;�enumValueTable�E[Lgnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�portrait�$�	landscape�&�reverse-landscape�(�reverse-portrait	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�:�orientation-requested-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�D�orientation-requested�F�java/lang/Integer
                                    ! ��H�I�@�getValue
                                    ! �E�
                                    ! �L�N�M� gnu/javax/print/ipp/IppUtilities�O�P�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile� OrientationRequestedDefault.java�1������������	�����
                                      �����������
                                    ����������������Ì������h»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���J����;��:��?��>��C��B�!�G�*�F�-�J�3�J�=�K�B�L�E�J�H�O�N�O�Z�P�d�O�g�5�.�������������>�����*·�/±����-���
                                    ! ����Y��Z�.��������0�������1�2���3�4��5����6����-�����°����-�������c�.��������0�����7�8�����-�����9°����-�������m�.��������0�����;�<�����.�����²�)°����-�������x�.��������0�����=�>�����.�����²�+°����-�������‚�.��������0�����?�@�����,�����¬����-�������Œ�.��������0�����A�B�����C�����C»�EY*¶�G·�J¸�K°����-�������—��˜�
                                    �—�.��������0�����Q����R
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,11 ****
                                    ! Êþº¾���1�L��:gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�DRAFT�<Lgnu/javax/print/ipp/attribute/defaults/PrintQualityDefault;�NORMAL�HIGH�stringTable�[Ljava/lang/String;�enumValueTable�=[Lgnu/javax/print/ipp/attribute/defaults/PrintQualityDefault;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      ���java/lang/String��draft�!�normal�#�high	��%��	��'�
                                    ��LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�3�print-quality-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�=�
                                    print-quality�?�java/lang/Integer
                                    ! ��A�B�9�getValue
                                    ! �>�
                                    ! �E�G�F� gnu/javax/print/ipp/IppUtilities�H�I�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�PrintQualityDefault.java�1������������	�����
                                      ����������
                                    ������������…������Q»�Y·�³�»�Y·�³�»�Y·�³�½�YSY SY"S³�$½�Y²�SY²�SY²�S³�&±����(�������9��<��?�!�A�7�C�P�5�)�������������>�����*·�*±����(���
                                    ! ����L��M�)��������+�������,�-���.�/�����-�����°����(�������V�)��������+�����0�1�����-�����2°����(�������`�)��������+�����4�5�����.�����²�$°����(�������k�)��������+�����6�7�����.�����²�&°����(�������u�)��������+�����8�9�����,�����¬����(��������)��������+�����:�;�����?�����<»�>Y*¶�@·�C¸�D°����(���
                                    ! ����‹�
                                    �Š�)��������+�����J����K
                                    \ No newline at end of file
                                    --- 1,11 ----
                                    ! Êþº¾���1�N��:gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�DRAFT�<Lgnu/javax/print/ipp/attribute/defaults/PrintQualityDefault;�NORMAL�HIGH�stringTable�[Ljava/lang/String;�enumValueTable�=[Lgnu/javax/print/ipp/attribute/defaults/PrintQualityDefault;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      ���java/lang/String��draft�!�normal�#�high	��%��	��'�
                                    ��LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�5�print-quality-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�?�
                                    print-quality�A�java/lang/Integer
                                    ! ��C�D�;�getValue
                                    ! �@�
                                    ! �G�I�H� gnu/javax/print/ipp/IppUtilities�J�K�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�PrintQualityDefault.java�1������������	�����
                                      ����������
                                    ������������…������Q»�Y·�³�»�Y·�³�»�Y·�³�½�YSY SY"S³�$½�Y²�SY²�SY²�S³�&±����(�������9��<��?�!�A�7�C�P�5�)�������������>�����*·�*±����(���
                                    ! ����L��M�)��������+�������,�-���.�/��0����1����-�����°����(�������V�)��������+�����2�3�����-�����4°����(�������`�)��������+�����6�7�����.�����²�$°����(�������k�)��������+�����8�9�����.�����²�&°����(�������u�)��������+�����:�;�����,�����¬����(��������)��������+�����<�=�����?�����>»�@Y*¶�B·�E¸�F°����(���
                                    ! ����‹�
                                    �Š�)��������+�����L����M
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,9 ****
                                    ! Êþº¾���1�.��?gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault��&javax/print/attribute/ResolutionSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�(III)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�ALgnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault;�crossFeedResolution�I�feedResolution�units�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��printer-resolution-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�#�0javax/print/attribute/standard/PrinterResolution
                                    ! ��%�&�'�getCrossFeedResolutionDphi�()I
                                    ! ��)�*�'�getFeedResolutionDphi
                                    ! �"��
                                      SourceFile�PrinterResolutionDefault.java�1������������	���T�����*·�
                                      ±�������
                                    ! ����E��F�
                                    ���*�������������������������������	���K�����+Á�š�¬*+·�¬�����������R��S�	�U�
                                    ����������������������	���-�����°�����������_�
                                    ����������������	���-�����°�����������i�
                                    ������������� �!��	���C�����»�"Y*¶�$*¶�(·�+°�����������t��u�
                                    �t�
                                    �������������,����-
                                    \ No newline at end of file
                                    --- 1,9 ----
                                    ! Êþº¾���1�0��?gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault��&javax/print/attribute/ResolutionSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�<init>�(III)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�ALgnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault;�crossFeedResolution�I�feedResolution�units�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�!�printer-resolution-default�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�%�0javax/print/attribute/standard/PrinterResolution
                                    ! ��'�(�)�getCrossFeedResolutionDphi�()I
                                    ! ��+�,�)�getFeedResolutionDphi
                                    ! �$��
                                      SourceFile�PrinterResolutionDefault.java�1������������	���T�����*·�
                                      ±�������
                                    ! ����E��F�
                                    ���*�������������������������������	���K�����+Á�š�¬*+·�¬�����������R��S�	�U�
                                    ���������������������������	���-�����°�����������_�
                                    ����������������	���-����� °�����������i�
                                    �������������"�#��	���C�����»�$Y*¶�&*¶�*·�-°�����������t��u�
                                    �t�
                                    �������������.����/
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/SidesDefault.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/SidesDefault.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/SidesDefault.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/SidesDefault.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,10 ****
                                    ! Êþº¾���1�Q��3gnu/javax/print/ipp/attribute/defaults/SidesDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�	ONE_SIDED�5Lgnu/javax/print/ipp/attribute/defaults/SidesDefault;�TWO_SIDED_LONG_EDGE�TWO_SIDED_SHORT_EDGE�DUPLEX�TUMBLE�stringTable�[Ljava/lang/String;�enumValueTable�6[Lgnu/javax/print/ipp/attribute/defaults/SidesDefault;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����	��!���#�java/lang/String�%�	one-sided�'�two-sided-long-edge�)�two-sided-short-edge	��+�
                                    �	��-���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�9�
                                    sides-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�A�sides�C�java/lang/Integer
                                    ! ��E�F�G�getValue�()I
                                    ! �B�
                                    ! �J�L�K� gnu/javax/print/ipp/IppUtilities�M�N�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�SidesDefault.java�1������������	�����
                                      ���������������
                                    �����������������Ë������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³� ½�"Y$SY&SY(S³�*½�Y²�SY²�SY²�S³�,±����.���J����:��A��@��H��G�!�K�,�N�7�P�=�P�B�Q�G�R�J�P�M�T�S�T�Y�U�_�V�c�T�f�5�/�������������>�����*·�0±����.���
                                    ! ����`��a�/��������1�������2�3���4�5�����-�����°����.�������j�/��������1�����6�7�����-�����8°����.�������t�/��������1�����:�;�����.�����²�*°����.��������/��������1�����<�=�����.�����²�,°����.�������‰�/��������1�����>�?�����;�����@»�BY*¶�D·�H¸�I°����.�������”�/��������1�����O����P
                                    \ No newline at end of file
                                    --- 1,10 ----
                                    ! Êþº¾���1�S��3gnu/javax/print/ipp/attribute/defaults/SidesDefault�� javax/print/attribute/EnumSyntax��3gnu/javax/print/ipp/attribute/DefaultValueAttribute�	ONE_SIDED�5Lgnu/javax/print/ipp/attribute/defaults/SidesDefault;�TWO_SIDED_LONG_EDGE�TWO_SIDED_SHORT_EDGE�DUPLEX�TUMBLE�stringTable�[Ljava/lang/String;�enumValueTable�6[Lgnu/javax/print/ipp/attribute/defaults/SidesDefault;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����	��!���#�java/lang/String�%�	one-sided�'�two-sided-long-edge�)�two-sided-short-edge	��+�
                                    �	��-���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�;�
                                    sides-default�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�getAssociatedAttribute�#()Ljavax/print/attribute/Attribute;�C�sides�E�java/lang/Integer
                                    ! ��G�H�I�getValue�()I
                                    ! �D�
                                    ! �L�N�M� gnu/javax/print/ipp/IppUtilities�O�P�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�
                                      SourceFile�SidesDefault.java�1������������	�����
                                      ���������������
                                    �����������������Ë������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³� ½�"Y$SY&SY(S³�*½�Y²�SY²�SY²�S³�,±����.���J����:��A��@��H��G�!�K�,�N�7�P�=�P�B�Q�G�R�J�P�M�T�S�T�Y�U�_�V�c�T�f�5�/�������������>�����*·�0±����.���
                                    ! ����`��a�/��������1�������2�3���4�5��6����7����-�����°����.�������j�/��������1�����8�9�����-�����:°����.�������t�/��������1�����<�=�����.�����²�*°����.��������/��������1�����>�?�����.�����²�,°����.�������‰�/��������1�����@�A�����;�����B»�DY*¶�F·�J¸�K°����.�������”�/��������1�����Q����R
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesCharset.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesCharset.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesCharset.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesCharset.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,7 ****
                                    ! Êþº¾���1�"��3gnu/javax/print/ipp/attribute/job/AttributesCharset��+gnu/javax/print/ipp/attribute/CharsetSyntax��javax/print/attribute/Attribute�UTF8�5Lgnu/javax/print/ipp/attribute/job/AttributesCharset;�<clinit>�()V�Code�
                                    �utf-8
                                      �����<init>�(Ljava/lang/String;)V	�����LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��attributes-charset�
                                      SourceFile�AttributesCharset.java�1�������������	�
                                      �����1������
                                    »�Y·�³�±�������
                                      ����>��9��������������>�����*+·�±�������
                                    ! ����G��H��������������������������-�����°�����������Q��������������������-�����°�����������[�������������� ����!
                                    \ No newline at end of file
                                    --- 1,7 ----
                                    ! Êþº¾���1�$��3gnu/javax/print/ipp/attribute/job/AttributesCharset��+gnu/javax/print/ipp/attribute/CharsetSyntax��javax/print/attribute/Attribute�UTF8�5Lgnu/javax/print/ipp/attribute/job/AttributesCharset;�<clinit>�()V�Code�
                                    �utf-8
                                      �����<init>�(Ljava/lang/String;)V	�����LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�!�attributes-charset�
                                      SourceFile�AttributesCharset.java�1�������������	�
                                      �����1������
                                    »�Y·�³�±�������
                                      ����>��9��������������>�����*+·�±�������
                                    ! ����G��H�������������������������������-�����°�����������Q��������������������-����� °�����������[��������������"����#
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,6 ****
                                    ! Êþº¾���1�"��;gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage��3gnu/javax/print/ipp/attribute/NaturalLanguageSyntax��javax/print/attribute/Attribute�EN�=Lgnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage;�<clinit>�()V�Code�
                                    �en
                                      �����<init>�(Ljava/lang/String;)V	�����LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��attributes-natural-language�
                                      SourceFile�AttributesNaturalLanguage.java�1�������������	�
                                      �����5������
                                    »�Y·�³�±�����������@�	�?��:��������������>�����*+·�±�������
                                    ! ����I��J��������������������������-�����°�����������S��������������������-�����°�����������]�������������� ����!
                                    \ No newline at end of file
                                    --- 1,6 ----
                                    ! Êþº¾���1�$��;gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage��3gnu/javax/print/ipp/attribute/NaturalLanguageSyntax��javax/print/attribute/Attribute�EN�=Lgnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage;�<clinit>�()V�Code�
                                    �en
                                      �����<init>�(Ljava/lang/String;)V	�����LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�!�attributes-natural-language�
                                      SourceFile�AttributesNaturalLanguage.java�1�������������	�
                                      �����5������
                                    »�Y·�³�±�����������@�	�?��:��������������>�����*+·�±�������
                                    ! ����I��J�������������������������������-�����°�����������S��������������������-����� °�����������]��������������"����#
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���;gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�=Lgnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��job-detailed-status-messages�
                                      SourceFile�JobDetailedStatusMessages.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����D��E�
                                    ��� �������������������������	���-�����°�����������N�
                                    ����������������	���-�����°�����������Y�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���;gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�=Lgnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��job-detailed-status-messages�
                                      SourceFile�JobDetailedStatusMessages.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����D��E�
                                    ��� ������������������������������	���-�����°�����������N�
                                    ����������������	���-�����°�����������Y�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���9gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�;Lgnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��job-document-access-errors�
                                      SourceFile�JobDocumentAccessErrors.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����E��F�
                                    ��� �������������������������	���-�����°�����������O�
                                    ����������������	���-�����°�����������Z�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���9gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�;Lgnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��job-document-access-errors�
                                      SourceFile�JobDocumentAccessErrors.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����E��F�
                                    ��� ������������������������������	���-�����°�����������O�
                                    ����������������	���-�����°�����������Z�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobId.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobId.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobId.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobId.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,7 ****
                                    ! Êþº¾���1�!��'gnu/javax/print/ipp/attribute/job/JobId��#javax/print/attribute/IntegerSyntax��javax/print/attribute/Attribute�<init>�(I)V�Code
                                      �����
                                    �"java/lang/IllegalArgumentException��job-id may not be less than 1
                                    ! �����(Ljava/lang/String;)V�LineNumberTable�LocalVariableTable�this�)Lgnu/javax/print/ipp/attribute/job/JobId;�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��job-id�
                                      SourceFile�
                                      JobId.java�1������������	���U�����*·�
                                      ¢�
                                    »�Y·�¿±�����������=��?�
                                    ! �@��A�����������������������	���-�����°�����������J�����������������	���-�����°�����������T������������������ 
                                    \ No newline at end of file
                                    --- 1,7 ----
                                    ! Êþº¾���1�#��'gnu/javax/print/ipp/attribute/job/JobId��#javax/print/attribute/IntegerSyntax��javax/print/attribute/Attribute�<init>�(I)V�Code
                                      �����
                                    �"java/lang/IllegalArgumentException��job-id may not be less than 1
                                    ! �����(Ljava/lang/String;)V�LineNumberTable�LocalVariableTable�this�)Lgnu/javax/print/ipp/attribute/job/JobId;�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;� �job-id�
                                      SourceFile�
                                      JobId.java�1������������	���U�����*·�
                                      ¢�
                                    »�Y·�¿±�����������=��?�
                                    ! �@��A����������������������������	���-�����°�����������J�����������������	���-�����°�����������T��������������!����"
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobMoreInfo.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobMoreInfo.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobMoreInfo.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobMoreInfo.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���-gnu/javax/print/ipp/attribute/job/JobMoreInfo��javax/print/attribute/URISyntax��javax/print/attribute/Attribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�/Lgnu/javax/print/ipp/attribute/job/JobMoreInfo;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��
                                    job-more-info�
                                      SourceFile�JobMoreInfo.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����@��A�
                                    ����������������������	���-�����°�����������J�
                                    ����������������	���-�����°�����������T�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���-gnu/javax/print/ipp/attribute/job/JobMoreInfo��javax/print/attribute/URISyntax��javax/print/attribute/Attribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�/Lgnu/javax/print/ipp/attribute/job/JobMoreInfo;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��
                                    job-more-info�
                                      SourceFile�JobMoreInfo.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����@��A�
                                    ���������������������������	���-�����°�����������J�
                                    ����������������	���-�����°�����������T�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobPrinterUri.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobPrinterUri.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobPrinterUri.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobPrinterUri.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���/gnu/javax/print/ipp/attribute/job/JobPrinterUri��javax/print/attribute/URISyntax��javax/print/attribute/Attribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�1Lgnu/javax/print/ipp/attribute/job/JobPrinterUri;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��job-printer-uri�
                                      SourceFile�JobPrinterUri.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����@��A�
                                    ����������������������	���-�����°�����������J�
                                    ����������������	���-�����°�����������T�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���/gnu/javax/print/ipp/attribute/job/JobPrinterUri��javax/print/attribute/URISyntax��javax/print/attribute/Attribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�1Lgnu/javax/print/ipp/attribute/job/JobPrinterUri;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��job-printer-uri�
                                      SourceFile�JobPrinterUri.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����@��A�
                                    ���������������������������	���-�����°�����������J�
                                    ����������������	���-�����°�����������T�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobStateMessage.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobStateMessage.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobStateMessage.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobStateMessage.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���1gnu/javax/print/ipp/attribute/job/JobStateMessage�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�3Lgnu/javax/print/ipp/attribute/job/JobStateMessage;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��job-state-message�
                                      SourceFile�JobStateMessage.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����D��E�
                                    ��� �������������������������	���-�����°�����������N�
                                    ����������������	���-�����°�����������Y�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���1gnu/javax/print/ipp/attribute/job/JobStateMessage�� javax/print/attribute/TextSyntax��javax/print/attribute/Attribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�3Lgnu/javax/print/ipp/attribute/job/JobStateMessage;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��job-state-message�
                                      SourceFile�JobStateMessage.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����D��E�
                                    ��� ������������������������������	���-�����°�����������N�
                                    ����������������	���-�����°�����������Y�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobUri.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobUri.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobUri.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobUri.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���(gnu/javax/print/ipp/attribute/job/JobUri��javax/print/attribute/URISyntax��javax/print/attribute/Attribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�*Lgnu/javax/print/ipp/attribute/job/JobUri;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��job-uri�
                                      SourceFile�JobUri.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����@��A�
                                    ����������������������	���-�����°�����������J�
                                    ����������������	���-�����°�����������T�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���(gnu/javax/print/ipp/attribute/job/JobUri��javax/print/attribute/URISyntax��javax/print/attribute/Attribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�*Lgnu/javax/print/ipp/attribute/job/JobUri;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��job-uri�
                                      SourceFile�JobUri.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����@��A�
                                    ���������������������������	���-�����°�����������J�
                                    ����������������	���-�����°�����������T�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���7gnu/javax/print/ipp/attribute/printer/CharsetConfigured��+gnu/javax/print/ipp/attribute/CharsetSyntax��javax/print/attribute/Attribute�<init>�(Ljava/lang/String;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�9Lgnu/javax/print/ipp/attribute/printer/CharsetConfigured;�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��charset-configured�
                                      SourceFile�CharsetConfigured.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����?��@�
                                    ����������������������	���-�����°�����������I�
                                    ����������������	���-�����°�����������S�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���7gnu/javax/print/ipp/attribute/printer/CharsetConfigured��+gnu/javax/print/ipp/attribute/CharsetSyntax��javax/print/attribute/Attribute�<init>�(Ljava/lang/String;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�9Lgnu/javax/print/ipp/attribute/printer/CharsetConfigured;�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��charset-configured�
                                      SourceFile�CharsetConfigured.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����?��@�
                                    ���������������������������	���-�����°�����������I�
                                    ����������������	���-�����°�����������S�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/DocumentFormat.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/DocumentFormat.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/DocumentFormat.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/DocumentFormat.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�F��4gnu/javax/print/ipp/attribute/printer/DocumentFormat�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�6Lgnu/javax/print/ipp/attribute/printer/DocumentFormat;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�createDocumentFormat�O(Ljavax/print/DocFlavor;)Lgnu/javax/print/ipp/attribute/printer/DocumentFormat;��charset
                                      ����javax/print/DocFlavor���getParameter�&(Ljava/lang/String;)Ljava/lang/String;��java/lang/StringBuilder
                                      ��!�"�#�getMediaType�()Ljava/lang/String;
                                    --- 1,4 ----
                                    ! Êþº¾���1�H��4gnu/javax/print/ipp/attribute/printer/DocumentFormat�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�6Lgnu/javax/print/ipp/attribute/printer/DocumentFormat;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�createDocumentFormat�O(Ljavax/print/DocFlavor;)Lgnu/javax/print/ipp/attribute/printer/DocumentFormat;��charset
                                      ����javax/print/DocFlavor���getParameter�&(Ljava/lang/String;)Ljava/lang/String;��java/lang/StringBuilder
                                      ��!�"�#�getMediaType�()Ljava/lang/String;
                                    ***************
                                    *** 8,14 ****
                                      ��4�5�#�getMediaSubtype
                                      ��7�8�#�toString�:�
                                      ; charset=
                                    ! ���flavor�Ljavax/print/DocFlavor;�mimetype�getCategory�()Ljava/lang/Class;�getName�C�document-format�
                                      SourceFile�DocumentFormat.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����E��F�
                                    ��� ���������������������	����	���™�����K*¶�L»�Y*¶� ¸�$·�*-¶�/*¶�3¶�/¶�6M+Æ�»�Y,¸�$·�*9¶�/+¶�/¶�6M»�Y,·�;°�����������R��S�%�T�)�U�A�W�
                                    ��� ����K�<�=����D����%�&�>����?�@��	���-�����°�����������a�
                                    �������������A�#��	���-�����B°�����������k�
                                    �������������D����E
                                    \ No newline at end of file
                                    --- 8,14 ----
                                      ��4�5�#�getMediaSubtype
                                      ��7�8�#�toString�:�
                                      ; charset=
                                    ! ���flavor�Ljavax/print/DocFlavor;�mimetype�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�E�document-format�
                                      SourceFile�DocumentFormat.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����F��G�
                                    ��� ���������������������	����	���™�����K*¶�L»�Y*¶� ¸�$·�*-¶�/*¶�3¶�/¶�6M+Æ�»�Y,¸�$·�*9¶�/+¶�/¶�6M»�Y,·�;°�����������S��T�%�U�)�V�A�X�
                                    ��� ����K�<�=����D����%�&�>����?�@��A����B�	���-�����°�����������b�
                                    �������������C�#��	���-�����D°�����������l�
                                    �������������F����G
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���>gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut��#javax/print/attribute/IntegerSyntax��javax/print/attribute/Attribute�<init>�(I)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�@Lgnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut;�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��multiple-operation-time-out�
                                      SourceFile�MultipleOperationTimeOut.java�1������������	���>�����*·�
                                      ±�������
                                    ! ����?��@�
                                    ����������������������	���-�����°�����������I�
                                    ����������������	���-�����°�����������S�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���>gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut��#javax/print/attribute/IntegerSyntax��javax/print/attribute/Attribute�<init>�(I)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�@Lgnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut;�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��multiple-operation-time-out�
                                      SourceFile�MultipleOperationTimeOut.java�1������������	���>�����*·�
                                      ±�������
                                    ! ����?��@�
                                    ���������������������������	���-�����°�����������I�
                                    ����������������	���-�����°�����������S�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���?gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured��3gnu/javax/print/ipp/attribute/NaturalLanguageSyntax��javax/print/attribute/Attribute�<init>�(Ljava/lang/String;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�ALgnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured;�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��natural-language-configured�
                                      SourceFile�NaturalLanguageConfigured.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����?��@�
                                    ����������������������	���-�����°�����������I�
                                    ����������������	���-�����°�����������S�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���?gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured��3gnu/javax/print/ipp/attribute/NaturalLanguageSyntax��javax/print/attribute/Attribute�<init>�(Ljava/lang/String;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�ALgnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured;�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��natural-language-configured�
                                      SourceFile�NaturalLanguageConfigured.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����?��@�
                                    ���������������������������	���-�����°�����������I�
                                    ����������������	���-�����°�����������S�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,6 ****
                                    ! Êþº¾���1� ��8gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime��$javax/print/attribute/DateTimeSyntax��+javax/print/attribute/PrintServiceAttribute�<init>�(Ljava/util/Date;)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�:Lgnu/javax/print/ipp/attribute/printer/PrinterCurrentTime;�value�Ljava/util/Date;�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��printer-current-time�
                                      SourceFile�PrinterCurrentTime.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����C��D�
                                    ����������������������	���K�����+Á�š�¬*+·�¬�����������P��Q�	�S�
                                    ����������������������	���-�����°�����������]�
                                    ����������������	���-�����°�����������g�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,6 ----
                                    ! Êþº¾���1�"��8gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime��$javax/print/attribute/DateTimeSyntax��+javax/print/attribute/PrintServiceAttribute�<init>�(Ljava/util/Date;)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�:Lgnu/javax/print/ipp/attribute/printer/PrinterCurrentTime;�value�Ljava/util/Date;�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��printer-current-time�
                                      SourceFile�PrinterCurrentTime.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����D��E�
                                    ����������������������	���K�����+Á�š�¬*+·�¬�����������Q��R�	�T�
                                    ���������������������������	���-�����°�����������^�
                                    ����������������	���-�����°�����������h�
                                    ������������� ����!
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���<gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller��javax/print/attribute/URISyntax��javax/print/attribute/Attribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�>Lgnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��printer-driver-installer�
                                      SourceFile�PrinterDriverInstaller.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����A��B�
                                    ����������������������	���-�����°�����������K�
                                    ����������������	���-�����°�����������U�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���<gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller��javax/print/attribute/URISyntax��javax/print/attribute/Attribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�>Lgnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��printer-driver-installer�
                                      SourceFile�PrinterDriverInstaller.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����A��B�
                                    ���������������������������	���-�����°�����������K�
                                    ����������������	���-�����°�����������U�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���9gnu/javax/print/ipp/attribute/printer/PrinterStateMessage�� javax/print/attribute/TextSyntax��+javax/print/attribute/PrintServiceAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�;Lgnu/javax/print/ipp/attribute/printer/PrinterStateMessage;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��printer-state-message�
                                      SourceFile�PrinterStateMessage.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����F��G�
                                    ��� �������������������������	���-�����°�����������P�
                                    ����������������	���-�����°�����������Z�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���9gnu/javax/print/ipp/attribute/printer/PrinterStateMessage�� javax/print/attribute/TextSyntax��+javax/print/attribute/PrintServiceAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�;Lgnu/javax/print/ipp/attribute/printer/PrinterStateMessage;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��printer-state-message�
                                      SourceFile�PrinterStateMessage.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����G��H�
                                    ��� ������������������������������	���-�����°�����������Q�
                                    ����������������	���-�����°�����������[�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���3gnu/javax/print/ipp/attribute/printer/PrinterUpTime��#javax/print/attribute/IntegerSyntax��javax/print/attribute/Attribute�<init>�(I)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�5Lgnu/javax/print/ipp/attribute/printer/PrinterUpTime;�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��printer-up-time�
                                      SourceFile�PrinterUpTime.java�1������������	���>�����*·�
                                      ±�������
                                    ! ����?��@�
                                    ����������������������	���-�����°�����������I�
                                    ����������������	���-�����°�����������S�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���3gnu/javax/print/ipp/attribute/printer/PrinterUpTime��#javax/print/attribute/IntegerSyntax��javax/print/attribute/Attribute�<init>�(I)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�5Lgnu/javax/print/ipp/attribute/printer/PrinterUpTime;�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��printer-up-time�
                                      SourceFile�PrinterUpTime.java�1������������	���>�����*·�
                                      ±�������
                                    ! ����?��@�
                                    ���������������������������	���-�����°�����������I�
                                    ����������������	���-�����°�����������S�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CharsetSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CharsetSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CharsetSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CharsetSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���8gnu/javax/print/ipp/attribute/supported/CharsetSupported��+gnu/javax/print/ipp/attribute/CharsetSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�(Ljava/lang/String;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�:Lgnu/javax/print/ipp/attribute/supported/CharsetSupported;�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��charset-supported�
                                      SourceFile�CharsetSupported.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����@��A�
                                    ����������������������	���-�����°�����������J�
                                    ����������������	���-�����°�����������T�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���8gnu/javax/print/ipp/attribute/supported/CharsetSupported��+gnu/javax/print/ipp/attribute/CharsetSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�(Ljava/lang/String;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�:Lgnu/javax/print/ipp/attribute/supported/CharsetSupported;�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��charset-supported�
                                      SourceFile�CharsetSupported.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����A��B�
                                    ���������������������������	���-�����°�����������K�
                                    ����������������	���-�����°�����������U�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CompressionSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CompressionSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CompressionSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CompressionSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,14 ****
                                    ! Êþº¾���1�q��<gnu/javax/print/ipp/attribute/supported/CompressionSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�>Lgnu/javax/print/ipp/attribute/supported/CompressionSupported;�DEFLATE�GZIP�COMPRESS�stringTable�[Ljava/lang/String;�enumValueTable�?[Lgnu/javax/print/ipp/attribute/supported/CompressionSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�none�$�deflate�&�gzip�(�compress	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�8�compression-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�getAssociatedAttribute�.()Ljavax/print/attribute/standard/Compression;�@�compression�B�java/lang/Integer
                                    ! ��D�E�F�getValue�()I
                                    ! �A�
                                    ! �I�K�J� gnu/javax/print/ipp/IppUtilities�L�M�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�O�*javax/print/attribute/standard/Compression�getAssociatedAttributeArray�>(Ljava/util/Set;)[Ljavax/print/attribute/standard/Compression;�S�U�T�
                                    java/util/Set�V�F�size�S�X�Y�Z�iterator�()Ljava/util/Iterator;�\�^�]�java/util/Iterator�_�`�next�()Ljava/lang/Object;
                                    ! ��b�=�>�\�d�e�f�hasNext�()Z�set�Ljava/util/Set;�tmp�result�-[Ljavax/print/attribute/standard/Compression;�it�Ljava/util/Iterator;�j�
                                      SourceFile�CompressionSupported.java�1������������	�����
                                    ! �����������
                                    ����������������·������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���6�
                                    ���=��@��C�!�F�,�H�2�H�<�I�D�H�G�K�M�K�Y�L�c�K�f�8�.�������������>�����*·�/±����-���
                                    ! ����U��V�.��������0�������1�2���3�4�����-�����°����-�������_�.��������0�����5�6�����-�����7°����-�������i�.��������0�����9�:�����.�����²�)°����-�������t�.��������0�����;�<�����.�����²�+°����-�������~�.��������0�����=�>�����B�����?»�AY*¶�C·�G¸�HÀ�N°����-���
                                    ! ����Š�
                                    �‰�.��������0����	�P�Q�����©�����7*¹�R�½�NM*¹�W�N6§�-¹�[�À�L,+¶�aS„-¹�c�šÿå,°����-���&�	���—�
                                    ! �˜��™��š��œ�!��)�ž�,�š�5� �.���4����7�g�h���!��i���
                                    ! �-�j�k���&�l�m���#�n�2���o����p
                                    \ No newline at end of file
                                    --- 1,14 ----
                                    ! Êþº¾���1�w��<gnu/javax/print/ipp/attribute/supported/CompressionSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�>Lgnu/javax/print/ipp/attribute/supported/CompressionSupported;�DEFLATE�GZIP�COMPRESS�stringTable�[Ljava/lang/String;�enumValueTable�?[Lgnu/javax/print/ipp/attribute/supported/CompressionSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�none�$�deflate�&�gzip�(�compress	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�:�compression-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�getAssociatedAttribute�.()Ljavax/print/attribute/standard/Compression;�B�compression�D�java/lang/Integer
                                    ! ��F�G�H�getValue�()I
                                    ! �C�
                                    ! �K�M�L� gnu/javax/print/ipp/IppUtilities�N�O�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�Q�*javax/print/attribute/standard/Compression�getAssociatedAttributeArray�>(Ljava/util/Set;)[Ljavax/print/attribute/standard/Compression;�a(Ljava/util/Set<Ljavax/print/attribute/Attribute;>;)[Ljavax/print/attribute/standard/Compression;�V�X�W�
                                    java/util/Set�Y�H�size�V�[�\�]�iterator�()Ljava/util/Iterator;�_�a�`�java/util/Iterator�b�c�next�()Ljava/lang/Object;�e�javax/print/attribute/Attribute
                                    ! ��g�?�@�_�i�j�k�hasNext�()Z�set�Ljava/util/Set;�result�-[Ljavax/print/attribute/standard/Compression;�j�tmp�!Ljavax/print/attribute/Attribute;�LocalVariableTypeTable�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�
                                      SourceFile�CompressionSupported.java�1������������	�����
                                    ! �����������
                                    ����������������·������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���6�
                                    ���>��A��D�!�G�,�I�2�I�<�J�D�I�G�L�M�L�Y�M�c�L�f�9�.�������������>�����*·�/±����-���
                                    ! ����V��W�.��������0�������1�2���3�4��5����6����-�����°����-�������`�.��������0�����7�8�����-�����9°����-�������j�.��������0�����;�<�����.�����²�)°����-�������u�.��������0�����=�>�����.�����²�+°����-��������.��������0�����?�@�����B�����A»�CY*¶�E·�I¸�JÀ�P°����-���
                                    ! ����‹�
                                    �Š�.��������0����	�R�S��5����T����­�����;*¹�U�½�PL=*¹�Z�:§�¹�^�À�dN+-À�¶�fS„¹�h�šÿá+°����-�������˜�
                                    ! �™��š�"�œ�,��/�š�9�Ÿ�.���*����;�l�m���
                                    ! �1�n�o���/�p�2��"�
                                    �q�r��s�������;�l�t����u����v
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���?gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�ALgnu/javax/print/ipp/attribute/supported/DocumentFormatSupported;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��document-format-supported�
                                      SourceFile�DocumentFormatSupported.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����D��E�
                                    ��� �������������������������	���-�����°�����������N�
                                    ����������������	���-�����°�����������X�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���?gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�ALgnu/javax/print/ipp/attribute/supported/DocumentFormatSupported;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��document-format-supported�
                                      SourceFile�DocumentFormatSupported.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����E��F�
                                    ��� ������������������������������	���-�����°�����������O�
                                    ����������������	���-�����°�����������Y�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,15 ****
                                    ! Êþº¾���1�¸��;gnu/javax/print/ipp/attribute/supported/FinishingsSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�=Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;�STAPLE�COVER�BIND�
                                    SADDLE_STITCH�EDGE_STITCH�STAPLE_TOP_LEFT�STAPLE_BOTTOM_LEFT�STAPLE_TOP_RIGHT�STAPLE_BOTTOM_RIGHT�EDGE_STITCH_LEFT�EDGE_STITCH_TOP�EDGE_STITCH_RIGHT�EDGE_STITCH_BOTTOM�STAPLE_DUAL_LEFT�STAPLE_DUAL_TOP�STAPLE_DUAL_RIGHT�STAPLE_DUAL_BOTTOM�stringTable�[Ljava/lang/String;�enumValueTable�>[Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;�<clinit>�()V�Code
                                      ��"�#�$�<init>�(I)V	��&��	��(�	�	��*�
                                      �	��,��	��.��	��0�
                                    �	��2��	��4��	��6��	��8��	��:��	��<��	��>��	��@��	��B��	��D��	��F��	��H���J�java/lang/String�L�none�N�staple�P�cover�R�bind�T�
                                    saddle-stitch�V�edge-stitch�X�staple-top-left�Z�staple-bottom-left�\�staple-top-right�^�staple-bottom-right�`�edge-stitch-left�b�edge-stitch-top�d�edge-stitch-right�f�edge-stitch-bottom�h�staple-dual-left�j�staple-dual-top�l�staple-dual-right�n�staple-dual-bottom	��p��	��r���LineNumberTable�LocalVariableTable
                                    ! ��"�this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�~�finishings-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�-()Ljavax/print/attribute/standard/Finishings;�ˆ�
                                    ! finishings�Š�java/lang/Integer
                                    ! ��Œ��„�getValue
                                    ! �‰�"
                                    ! ��’�‘� gnu/javax/print/ipp/IppUtilities�“�”�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�–�)javax/print/attribute/standard/Finishings�getAssociatedAttributeArray�=(Ljava/util/Set;)[Ljavax/print/attribute/standard/Finishings;�š�œ�›�
                                    java/util/Set��„�size�š�Ÿ� �¡�iterator�()Ljava/util/Iterator;�£�¥�¤�java/util/Iterator�¦�§�next�()Ljava/lang/Object;
                                    ! ��©�…�†�£�«�¬�­�hasNext�()Z�set�Ljava/util/Set;�tmp�result�,[Ljavax/print/attribute/standard/Finishings;�it�Ljava/util/Iterator;�j�
                                      SourceFile�FinishingsSupported.java�1������������	�����
                                    ! ���������������
                                    ��������������������������������������������������������������������������	����� ��ó�����Ç»�Y·�!³�%»�Y·�!³�'»�Y·�!³�)»�Y·�!³�+»�Y·�!³�-»�Y	·�!³�/»�Y·�!³�1»�Y·�!³�3»�Y·�!³�5»�Y·�!³�7»�Y·�!³�9»�Y·�!³�;»�Y·�!³�=»�Y·�!³�?»�Y·�!³�A»�Y·�!³�C»�Y·�!³�E»�Y·�!³�G½�IYKSYMSYOSYQSYSSYUSYWSYYSY[SY]SY_SYaSYcSYeSYgSYiSYkSYmS³�o½�Y²�%SY²�'SY²�)SY²�+SY²�-SY²�/SY²�1SY²�3SY²�5SY²�7SY²�9SY²�;SY²�=SY²�?SY²�ASY²�CSY²�ESY²�GS³�q±����s���D���>��A��D�"�J�.�Q�7�P�:�X�C�W�F�_�O�^�R�f�[�e�^�l�g�k�j�r�s�q�v�y��x�‚�€�‹��Ž�‡�—�†�š�Ž�£��¦�•�¯�”�²�œ�»�›�¾�£�Ç�¢�Ê�ª�Ó�©�Ö�¬�Ý�¬�ç�­�÷�®�ý�°�±	�²�³�´�µ!�¶'�·-�¸3�¹9�º?�»B�¬E�½L�½X�¾d�¿k�Àr�Äy�Å€�Ƈ�ÇŽ�È•�Éœ�Ê£�˪�̱�͸�ο�ÏÃ�½Æ�9�t�������#�$�� ���>�����*·�u±����s���
                                    ! ����Ø��Ù�t��������v�������w�x���y�z�� ���-�����°����s�������â�t��������v�����{�|�� ���-�����}°����s�������ì�t��������v������€�� ���.�����²�o°����s�������÷�t��������v������‚�� ���.�����²�q°����s�������t��������v�����ƒ�„�� ���,�����¬����s�������t��������v�����…�†�� ���B�����‡»�‰Y*¶�‹·�Ž¸�À�•°����s���
                                    ! ����
                                    �t��������v����	�—�˜�� ���©�����7*¹�™�½�•M*¹�ž�N6§�-¹�¢�À�L,+¶�¨S„-¹�ª�šÿå,°����s���&�	��$�
                                    ! %�&�'�)�!*�)+�,'�5-�t���4����7�®�¯���!��°���
                                    ! �-�±�²���&�³�´���#�µ�x���¶����·
                                    \ No newline at end of file
                                    --- 1,15 ----
                                    ! Êþº¾���1�¾��;gnu/javax/print/ipp/attribute/supported/FinishingsSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�=Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;�STAPLE�COVER�BIND�
                                    SADDLE_STITCH�EDGE_STITCH�STAPLE_TOP_LEFT�STAPLE_BOTTOM_LEFT�STAPLE_TOP_RIGHT�STAPLE_BOTTOM_RIGHT�EDGE_STITCH_LEFT�EDGE_STITCH_TOP�EDGE_STITCH_RIGHT�EDGE_STITCH_BOTTOM�STAPLE_DUAL_LEFT�STAPLE_DUAL_TOP�STAPLE_DUAL_RIGHT�STAPLE_DUAL_BOTTOM�stringTable�[Ljava/lang/String;�enumValueTable�>[Lgnu/javax/print/ipp/attribute/supported/FinishingsSupported;�<clinit>�()V�Code
                                      ��"�#�$�<init>�(I)V	��&��	��(�	�	��*�
                                      �	��,��	��.��	��0�
                                    �	��2��	��4��	��6��	��8��	��:��	��<��	��>��	��@��	��B��	��D��	��F��	��H���J�java/lang/String�L�none�N�staple�P�cover�R�bind�T�
                                    saddle-stitch�V�edge-stitch�X�staple-top-left�Z�staple-bottom-left�\�staple-top-right�^�staple-bottom-right�`�edge-stitch-left�b�edge-stitch-top�d�edge-stitch-right�f�edge-stitch-bottom�h�staple-dual-left�j�staple-dual-top�l�staple-dual-right�n�staple-dual-bottom	��p��	��r���LineNumberTable�LocalVariableTable
                                    ! ��"�this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�€�finishings-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�-()Ljavax/print/attribute/standard/Finishings;�Š�
                                    ! finishings�Œ�java/lang/Integer
                                    ! ��Ž��†�getValue
                                    ! �‹�"
                                    ! �’�”�“� gnu/javax/print/ipp/IppUtilities�•�–�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�˜�)javax/print/attribute/standard/Finishings�getAssociatedAttributeArray�=(Ljava/util/Set;)[Ljavax/print/attribute/standard/Finishings;�`(Ljava/util/Set<Ljavax/print/attribute/Attribute;>;)[Ljavax/print/attribute/standard/Finishings;��Ÿ�ž�
                                    java/util/Set� �†�size��¢�£�¤�iterator�()Ljava/util/Iterator;�¦�¨�§�java/util/Iterator�©�ª�next�()Ljava/lang/Object;�¬�javax/print/attribute/Attribute
                                    ! ��®�‡�ˆ�¦�°�±�²�hasNext�()Z�set�Ljava/util/Set;�result�,[Ljavax/print/attribute/standard/Finishings;�j�tmp�!Ljavax/print/attribute/Attribute;�LocalVariableTypeTable�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�
                                      SourceFile�FinishingsSupported.java�1������������	�����
                                    ! ���������������
                                    ��������������������������������������������������������������������������	����� ��ó�����Ç»�Y·�!³�%»�Y·�!³�'»�Y·�!³�)»�Y·�!³�+»�Y·�!³�-»�Y	·�!³�/»�Y·�!³�1»�Y·�!³�3»�Y·�!³�5»�Y·�!³�7»�Y·�!³�9»�Y·�!³�;»�Y·�!³�=»�Y·�!³�?»�Y·�!³�A»�Y·�!³�C»�Y·�!³�E»�Y·�!³�G½�IYKSYMSYOSYQSYSSYUSYWSYYSY[SY]SY_SYaSYcSYeSYgSYiSYkSYmS³�o½�Y²�%SY²�'SY²�)SY²�+SY²�-SY²�/SY²�1SY²�3SY²�5SY²�7SY²�9SY²�;SY²�=SY²�?SY²�ASY²�CSY²�ESY²�GS³�q±����s���D���?��B��E�"�K�.�R�7�Q�:�Y�C�X�F�`�O�_�R�g�[�f�^�m�g�l�j�s�s�r�v�z��y�‚��‹�€�Ž�ˆ�—�‡�š��£�Ž�¦�–�¯�•�²��»�œ�¾�¤�Ç�£�Ê�«�Ó�ª�Ö�­�Ý�­�ç�®�÷�¯�ý�±�²	�³�´�µ�¶!�·'�¸-�¹3�º9�»?�¼B�­E�¾L�¾X�¿d�Àk�Ár�Åy�Æ€�LJ�ÈŽ�É•�Êœ�Ë£�̪�ͱ�θ�Ï¿�ÐÃ�¾Æ�:�t�������#�$�� ���>�����*·�u±����s���
                                    ! ����Ù��Ú�t��������v�������w�x���y�z��{����|� ���-�����°����s�������ã�t��������v�����}�~�� ���-�����°����s�������í�t��������v������‚�� ���.�����²�o°����s�������ø�t��������v�����ƒ�„�� ���.�����²�q°����s�������t��������v�����…�†�� ���,�����¬����s�������t��������v�����‡�ˆ�� ���B�����‰»�‹Y*¶�·�¸�‘À�—°����s���
                                    ! ����
                                    �t��������v����	�™�š��{����›� ���­�����;*¹�œ�½�—L=*¹�¡�:§�¹�¥�À�«N+-À�¶�­S„¹�¯�šÿá+°����s������%�
                                    ! &�'�")�,*�/'�9,�t���*����;�³�´���
                                    ! �1�µ�¶���/�·�x��"�
                                    �¸�¹��º�������;�³�»����¼����½
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���Ignu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported��3gnu/javax/print/ipp/attribute/NaturalLanguageSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�(Ljava/lang/String;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�KLgnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported;�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��$generated-natural-language-supported�
                                      SourceFile�&GeneratedNaturalLanguageSupported.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����A��B�
                                    ����������������������	���-�����°�����������K�
                                    ����������������	���-�����°�����������U�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���Ignu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported��3gnu/javax/print/ipp/attribute/NaturalLanguageSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�(Ljava/lang/String;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�KLgnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported;�value�Ljava/lang/String;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��$generated-natural-language-supported�
                                      SourceFile�&GeneratedNaturalLanguageSupported.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����B��C�
                                    ���������������������������	���-�����°�����������L�
                                    ����������������	���-�����°�����������V�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,8 ****
                                    ! Êþº¾���1�5��<gnu/javax/print/ipp/attribute/supported/IppVersionsSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�V_1_0�>Lgnu/javax/print/ipp/attribute/supported/IppVersionsSupported;�V_1_1�stringTable�[Ljava/lang/String;�enumValueTable�?[Lgnu/javax/print/ipp/attribute/supported/IppVersionsSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	���java/lang/String��1.0��1.1	�� �
                                      �	��"��
                                    �LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�.�ipp-versions-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�IppVersionsSupported.java�1������������	�����
                                      ������
                                    �����������������;»�Y·�³�»�Y·�³�½�YSYS³�½�Y²�SY²�S³�!±����#���*�
                                    ! ���;��:��?��>��A�'�C�-�C�3�D�7�C�:�3�$�������������>�����*·�%±����#���
                                    ! ����M��N�$��������&�������'�(���)�*�����-�����°����#�������W�$��������&�����+�,�����-�����-°����#�������a�$��������&�����/�0�����.�����²�°����#�������l�$��������&�����1�2�����.�����²�!°����#�������v�$��������&�����3����4
                                    \ No newline at end of file
                                    --- 1,8 ----
                                    ! Êþº¾���1�7��<gnu/javax/print/ipp/attribute/supported/IppVersionsSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�V_1_0�>Lgnu/javax/print/ipp/attribute/supported/IppVersionsSupported;�V_1_1�stringTable�[Ljava/lang/String;�enumValueTable�?[Lgnu/javax/print/ipp/attribute/supported/IppVersionsSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	���java/lang/String��1.0��1.1	�� �
                                      �	��"��
                                    �LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�0�ipp-versions-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�IppVersionsSupported.java�1������������	�����
                                      ������
                                    �����������������;»�Y·�³�»�Y·�³�½�YSYS³�½�Y²�SY²�S³�!±����#���*�
                                    ! ���<��;��@��?��B�'�D�-�D�3�E�7�D�:�4�$�������������>�����*·�%±����#���
                                    ! ����N��O�$��������&�������'�(���)�*��+����,����-�����°����#�������X�$��������&�����-�.�����-�����/°����#�������b�$��������&�����1�2�����.�����²�°����#�������m�$��������&�����3�4�����.�����²�!°����#�������w�$��������&�����5����6
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,10 ****
                                    ! Êþº¾���1�G��=gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�NO_HOLD�?Lgnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported;�
                                      INDEFINITE�DAY_TIME�EVENING�NIGHT�WEEKEND�SECOND_SHIFT�THIRD_SHIFT�<clinit>�()V�Code��no-hold
                                      �����<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	������
                                      indefinite	���	�� �day-time	��"�
                                      ��$�evening	��&���(�night	��*���,�weekend	��.�
                                    ��0�second-shift	��2���4�third-shift	��6���LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�D�job-hold-until-supported�
                                      SourceFile�JobHoldUntilSupported.java�1������������	�����
                                    ! ���������������
                                    ����������������������É������i»�Y·�³�»�Y·�³�»�Y·�³�!»�Y#·�³�%»�Y'·�³�)»�Y+·�³�-»�Y/·�³�1»�Y3·�³�5±����7���F����>�
                                    ! �=�
                                    �B��A��F�$�E�'�J�1�I�4�N�>�M�A�R�K�Q�N�Y�X�X�[�`�e�_�h�4�8�������������I�����*+,·�9±����7���
                                    ! ����n��o�8��� �����:�������;�<�����=�>���?�@�����-�����°����7�������x�8��������:�����A�B�����-�����C°����7�������‚�8��������:�����E����F
                                    \ No newline at end of file
                                    --- 1,10 ----
                                    ! Êþº¾���1�I��=gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�NO_HOLD�?Lgnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported;�
                                      INDEFINITE�DAY_TIME�EVENING�NIGHT�WEEKEND�SECOND_SHIFT�THIRD_SHIFT�<clinit>�()V�Code��no-hold
                                      �����<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	������
                                      indefinite	���	�� �day-time	��"�
                                      ��$�evening	��&���(�night	��*���,�weekend	��.�
                                    ��0�second-shift	��2���4�third-shift	��6���LineNumberTable�LocalVariableTable
                                    ! ���this�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�F�job-hold-until-supported�
                                      SourceFile�JobHoldUntilSupported.java�1������������	�����
                                    ! ���������������
                                    ����������������������É������i»�Y·�³�»�Y·�³�»�Y·�³�!»�Y#·�³�%»�Y'·�³�)»�Y+·�³�-»�Y/·�³�1»�Y3·�³�5±����7���F����?�
                                    ! �>�
                                    �C��B��G�$�F�'�K�1�J�4�O�>�N�A�S�K�R�N�Z�X�Y�[�a�e�`�h�5�8�������������I�����*+,·�9±����7���
                                    ! ����o��p�8��� �����:�������;�<�����=�>���?�@��A����B����-�����°����7�������y�8��������:�����C�D�����-�����E°����7�������ƒ�8��������:�����G����H
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,16 ****
                                    ! Êþº¾���1�q��:gnu/javax/print/ipp/attribute/supported/JobSheetsSupported�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�9Lgnu/javax/print/ipp/attribute/defaults/JobSheetsDefault;�STANDARD�<clinit>�()V�Code��7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault��none
                                      ����java/util/Locale���
                                      getDefault�()Ljava/util/Locale;
                                      �
                                    ����<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	������standard	�� �	��LineNumberTable�LocalVariableTable
                                    ! ���this�<Lgnu/javax/print/ipp/attribute/supported/JobSheetsSupported;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�/�job-sheets-supported�getAssociatedAttribute�,()Ljavax/print/attribute/standard/JobSheets;	�
                                    �
                                    ! ��4�5�6�equals�(Ljava/lang/Object;)Z	�8�:�9�(javax/print/attribute/standard/JobSheets��;�*Ljavax/print/attribute/standard/JobSheets;	�
                                    � 	�8�>�	�;�getAssociatedAttributeArray�<(Ljava/util/Set;)[Ljavax/print/attribute/standard/JobSheets;�B�java/util/ArrayList
                                    ! �A�D���F�H�G�
                                    java/util/Set�I�J�iterator�()Ljava/util/Iterator;�L�N�M�java/util/Iterator�O�P�next�()Ljava/lang/Object;
                                    ! ��R�0�1
                                    ! �A�T�U�6�add�L�W�X�Y�hasNext�()Z
                                    ! �A�[�\�]�size�()I
                                    ! �A�_�`�a�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�c�+[Ljavax/print/attribute/standard/JobSheets;�set�Ljava/util/Set;�tmp�result�Ljava/util/ArrayList;�it�Ljava/util/Iterator;�j�I�att�!Ljavax/print/attribute/Attribute;�
                                      SourceFile�JobSheetsSupported.java�1������������	������
                                      ������O������»�
                                    Y¸�·�³�»�
                                    Y¸�·�³�±����!�������D��C��H��G��;�"�������������I�����*+,·�#±����!���
                                    ! ����V��W�"��� �����$�%������&�'�����(�)���*�+�����-�����°����!�������`�"��������$�%����,�-�����-�����.°����!�������j�"��������$�%����0�1�����X�����*²�2¶�3™�²�7°*²�<¶�3™�²�=°°����!�������v�
                                    ! �w��x��y��{�"��������$�%���	�?�@�����Ð�����L»�AY·�CM*¹�E�N6§�"-¹�K�À�L+¶�Q:Æ�
                                    ! ,¶�SW„-¹�V�šÿÛ,,¶�Z½�8¶�^À�b°����!���.����ˆ��‰��Š��‹����Ž�%��*��1�‘�4�‹�=�“�"���>����L�d�e�����f�%���D�g�h���=�i�j���:�k�l��%��m�n���o����p
                                    \ No newline at end of file
                                    --- 1,18 ----
                                    ! Êþº¾���1�w��:gnu/javax/print/ipp/attribute/supported/JobSheetsSupported�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�9Lgnu/javax/print/ipp/attribute/defaults/JobSheetsDefault;�STANDARD�<clinit>�()V�Code��7gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault��none
                                      ����java/util/Locale���
                                      getDefault�()Ljava/util/Locale;
                                      �
                                    ����<init>�'(Ljava/lang/String;Ljava/util/Locale;)V	������standard	�� �	��LineNumberTable�LocalVariableTable
                                    ! ���this�<Lgnu/javax/print/ipp/attribute/supported/JobSheetsSupported;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�1�job-sheets-supported�getAssociatedAttribute�,()Ljavax/print/attribute/standard/JobSheets;	�
                                    �
                                    ! ��6�7�8�equals�(Ljava/lang/Object;)Z	�:�<�;�(javax/print/attribute/standard/JobSheets��=�*Ljavax/print/attribute/standard/JobSheets;	�
                                    � 	�:�@�	�=�getAssociatedAttributeArray�<(Ljava/util/Set;)[Ljavax/print/attribute/standard/JobSheets;�_(Ljava/util/Set<Ljavax/print/attribute/Attribute;>;)[Ljavax/print/attribute/standard/JobSheets;�E�java/util/ArrayList
                                    ! �D�G���I�K�J�
                                    java/util/Set�L�M�iterator�()Ljava/util/Iterator;�O�Q�P�java/util/Iterator�R�S�next�()Ljava/lang/Object;�U�javax/print/attribute/Attribute
                                    ! ��W�2�3
                                    ! �D�Y�Z�8�add�O�\�]�^�hasNext�()Z
                                    ! �D�`�a�b�size�()I
                                    ! �D�d�e�f�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�h�+[Ljavax/print/attribute/standard/JobSheets;�set�Ljava/util/Set;�result�Ljava/util/ArrayList;�j�I�tmp�!Ljavax/print/attribute/Attribute;�att�LocalVariableTypeTable�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�ALjava/util/ArrayList<Ljavax/print/attribute/standard/JobSheets;>;�
                                      SourceFile�JobSheetsSupported.java�1������������	������
                                      ������O������»�
                                    Y¸�·�³�»�
                                    Y¸�·�³�±����!�������D��C��H��G��;�"�������������I�����*+,·�#±����!���
                                    ! ����V��W�"��� �����$�%������&�'�����(�)���*�+��,����-����-�����°����!�������`�"��������$�%����.�/�����-�����0°����!�������j�"��������$�%����2�3�����X�����*²�4¶�5™�²�9°*²�>¶�5™�²�?°°����!�������v�
                                    ! �w��x��y��{�"��������$�%���	�A�B��,����C����ß�����Q»�DY·�FL=*¹�H�:§�&¹�N�À�TN-À�¶�V:Æ�
                                    ! +¶�XW„¹�[�šÿÖ++¶�_½�:¶�cÀ�g°����!���&�	���ˆ��‰�
                                    ! �Š� �Œ�)��.�Ž�5��8�Š�B�‘�"���4����Q�i�j����I�k�l��
                                    ! �G�m�n�� ��o�p��)��q�=��r�������Q�i�s����I�k�t���u����v
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MediaSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MediaSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MediaSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MediaSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,12 ****
                                    ! Êþº¾���1�W��6gnu/javax/print/ipp/attribute/supported/MediaSupported�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�8Lgnu/javax/print/ipp/attribute/supported/MediaSupported;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��media-supported�getAssociatedAttributeArray�8(Ljava/util/Set;)[Ljavax/print/attribute/standard/Media;��java/util/ArrayList
                                    ! ���� �()V�"�$�#�
                                    java/util/Set�%�&�iterator�()Ljava/util/Iterator;�(�*�)�java/util/Iterator�+�,�next�()Ljava/lang/Object;�.�media
                                    ! ��0�1��toString
                                    ! �3�5�4� gnu/javax/print/ipp/IppUtilities�6�7�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�9�$javax/print/attribute/standard/Media
                                    ! ��;�<�=�add�(Ljava/lang/Object;)Z�(�?�@�A�hasNext�()Z
                                    ! ��C�D�E�size�()I
                                    ! ��G�H�I�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�K�'[Ljavax/print/attribute/standard/Media;�set�Ljava/util/Set;�tmp�tmp2�&Ljavax/print/attribute/standard/Media;�result�Ljava/util/ArrayList;�it�Ljava/util/Iterator;�
                                      SourceFile�MediaSupported.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����J��K�
                                    ��� �������������������������	���-�����°�����������T�
                                    ����������������	���-�����°�����������^�
                                    ������������	����	���À�����N»�Y·�N*¹�!�:§�%¹�'�À�L-+¶�/¸�2À�8M,Æ�	-,¶�:W¹�>�šÿ×--¶�B½�8¶�FÀ�J°�������&�	���j��k��l��n��o�+�p�/�q�5�l�?�s�
                                    ���4����N�L�M�����N���+�
                                    ! �O�P���F�Q�R���>�S�T���U����V
                                    \ No newline at end of file
                                    --- 1,12 ----
                                    ! Êþº¾���1�`��6gnu/javax/print/ipp/attribute/supported/MediaSupported�� javax/print/attribute/TextSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�'(Ljava/lang/String;Ljava/util/Locale;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�8Lgnu/javax/print/ipp/attribute/supported/MediaSupported;�value�Ljava/lang/String;�locale�Ljava/util/Locale;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��media-supported�getAssociatedAttributeArray�8(Ljava/util/Set;)[Ljavax/print/attribute/standard/Media;�[(Ljava/util/Set<Ljavax/print/attribute/Attribute;>;)[Ljavax/print/attribute/standard/Media;� �java/util/ArrayList
                                    ! ��"��#�()V�%�'�&�
                                    java/util/Set�(�)�iterator�()Ljava/util/Iterator;�+�-�,�java/util/Iterator�.�/�next�()Ljava/lang/Object;�1�javax/print/attribute/Attribute�3�media
                                    ! �5�7�6�java/lang/Object�8��toString
                                    ! �:�<�;� gnu/javax/print/ipp/IppUtilities�=�>�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�@�$javax/print/attribute/standard/Media
                                    ! ��B�C�D�add�(Ljava/lang/Object;)Z�+�F�G�H�hasNext�()Z
                                    ! ��J�K�L�size�()I
                                    ! ��N�O�P�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�R�'[Ljavax/print/attribute/standard/Media;�set�Ljava/util/Set;�tmp2�&Ljavax/print/attribute/standard/Media;�result�Ljava/util/ArrayList;�tmp�!Ljavax/print/attribute/Attribute;�LocalVariableTypeTable�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�=Ljava/util/ArrayList<Ljavax/print/attribute/standard/Media;>;�
                                      SourceFile�MediaSupported.java�1������������	���I�����*+,·�
                                      ±�������
                                    ! ����K��L�
                                    ��� ������������������������������	���-�����°�����������U�
                                    ����������������	���-�����°�����������_�
                                    ������������	���������	���Ê�����N»�Y·�!M*¹�$�:§�%¹�*�À�0N2-¶�4¸�9À�?L+Æ�	,+¶�AW¹�E�šÿ×,,¶�I½�?¶�MÀ�Q°�����������j��k��m�+�n�/�o�5�k�?�q�
                                    ���*����N�S�T���+�
                                    ! �U�V���F�W�X����Y�Z��[�������N�S�\����F�W�]���^����_
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,14 ****
                                    ! Êþº¾���1�q��Ignu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�SINGLE_DOCUMENT�KLgnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported;�$SEPARATE_DOCUMENTS_UNCOLLATED_COPIES�"SEPARATE_DOCUMENTS_COLLATED_COPIES�SINGLE_DOCUMENT_NEW_SHEET�stringTable�[Ljava/lang/String;�enumValueTable�L[Lgnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�single-document�$�$separate-documents-uncollated-copies�&�"separate-documents-collated-copies�(�single-document-new-sheet	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�8�$multiple-document-handling-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�getAssociatedAttribute�;()Ljavax/print/attribute/standard/MultipleDocumentHandling;�@�multiple-document-handling�B�java/lang/Integer
                                    ! ��D�E�F�getValue�()I
                                    ! �A�
                                    ! �I�K�J� gnu/javax/print/ipp/IppUtilities�L�M�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�O�7javax/print/attribute/standard/MultipleDocumentHandling�getAssociatedAttributeArray�K(Ljava/util/Set;)[Ljavax/print/attribute/standard/MultipleDocumentHandling;�S�U�T�
                                    java/util/Set�V�F�size�S�X�Y�Z�iterator�()Ljava/util/Iterator;�\�^�]�java/util/Iterator�_�`�next�()Ljava/lang/Object;
                                    ! ��b�=�>�\�d�e�f�hasNext�()Z�set�Ljava/util/Set;�tmp�result�:[Ljavax/print/attribute/standard/MultipleDocumentHandling;�it�Ljava/util/Iterator;�j�
                                      SourceFile�&MultipleDocumentHandlingSupported.java�1������������	�����
                                    ! �����������
                                    ����������������Ï������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���N����C��B��G��F��K��J�!�R�)�Q�,�T�2�T�7�U�<�V�A�W�D�T�G�Z�M�Z�Y�[�c�Y�f�8�.�������������>�����*·�/±����-���
                                    ! ����d��e�.��������0�������1�2���3�4�����-�����°����-�������n�.��������0�����5�6�����-�����7°����-�������x�.��������0�����9�:�����.�����²�)°����-�������ƒ�.��������0�����;�<�����.�����²�+°����-��������.��������0�����=�>�����B�����?»�AY*¶�C·�G¸�HÀ�N°����-���
                                    ! ����™�
                                    �˜�.��������0����	�P�Q�����©�����7*¹�R�½�NM*¹�W�N6§�-¹�[�À�L,+¶�aS„-¹�c�šÿå,°����-���&�	���¦�
                                    ! �§��¨��©��«�!�¬�)�­�,�©�5�¯�.���4����7�g�h���!��i���
                                    ! �-�j�k���&�l�m���#�n�2���o����p
                                    \ No newline at end of file
                                    --- 1,14 ----
                                    ! Êþº¾���1�w��Ignu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�SINGLE_DOCUMENT�KLgnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported;�$SEPARATE_DOCUMENTS_UNCOLLATED_COPIES�"SEPARATE_DOCUMENTS_COLLATED_COPIES�SINGLE_DOCUMENT_NEW_SHEET�stringTable�[Ljava/lang/String;�enumValueTable�L[Lgnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�single-document�$�$separate-documents-uncollated-copies�&�"separate-documents-collated-copies�(�single-document-new-sheet	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�:�$multiple-document-handling-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�getAssociatedAttribute�;()Ljavax/print/attribute/standard/MultipleDocumentHandling;�B�multiple-document-handling�D�java/lang/Integer
                                    ! ��F�G�H�getValue�()I
                                    ! �C�
                                    ! �K�M�L� gnu/javax/print/ipp/IppUtilities�N�O�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�Q�7javax/print/attribute/standard/MultipleDocumentHandling�getAssociatedAttributeArray�K(Ljava/util/Set;)[Ljavax/print/attribute/standard/MultipleDocumentHandling;�n(Ljava/util/Set<Ljavax/print/attribute/Attribute;>;)[Ljavax/print/attribute/standard/MultipleDocumentHandling;�V�X�W�
                                    java/util/Set�Y�H�size�V�[�\�]�iterator�()Ljava/util/Iterator;�_�a�`�java/util/Iterator�b�c�next�()Ljava/lang/Object;�e�javax/print/attribute/Attribute
                                    ! ��g�?�@�_�i�j�k�hasNext�()Z�set�Ljava/util/Set;�result�:[Ljavax/print/attribute/standard/MultipleDocumentHandling;�j�tmp�!Ljavax/print/attribute/Attribute;�LocalVariableTypeTable�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�
                                      SourceFile�&MultipleDocumentHandlingSupported.java�1������������	�����
                                    ! �����������
                                    ����������������Ï������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���N����D��C��H��G��L��K�!�S�)�R�,�U�2�U�7�V�<�W�A�X�D�U�G�[�M�[�Y�\�c�Z�f�9�.�������������>�����*·�/±����-���
                                    ! ����e��f�.��������0�������1�2���3�4��5����6����-�����°����-�������o�.��������0�����7�8�����-�����9°����-�������y�.��������0�����;�<�����.�����²�)°����-�������„�.��������0�����=�>�����.�����²�+°����-�������Ž�.��������0�����?�@�����B�����A»�CY*¶�E·�I¸�JÀ�P°����-���
                                    ! ����š�
                                    �™�.��������0����	�R�S��5����T����­�����;*¹�U�½�PL=*¹�Z�:§�¹�^�À�dN+-À�¶�fS„¹�h�šÿá+°����-�������§�
                                    ! �¨��©�"�«�,�¬�/�©�9�®�.���*����;�l�m���
                                    ! �1�n�o���/�p�2��"�
                                    �q�r��s�������;�l�t����u����v
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,7 ****
                                    ! Êþº¾���1�5��Egnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�
                                    NOT_SUPPORTED�GLgnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported;�	SUPPORTED�stringTable�[Ljava/lang/String;�enumValueTable�H[Lgnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	���java/lang/String��
                                    not-supported��	supported	�� �
                                      �	��"��
                                    �LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�.� multiple-document-jobs-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�"MultipleDocumentJobsSupported.java�!������������	�����
                                    ! ������
                                    �����������w������;»�Y·�³�»�Y·�³�½�YSYS³�½�Y²�SY²�S³�!±����#���"����8��7��<��;��>�'�A�7�@�:�2�$�������������>�����*·�%±����#���
                                    ! ����J��K�$��������&�������'�(���)�*�����-�����°����#�������T�$��������&�����+�,�����-�����-°����#�������^�$��������&�����/�0�����.�����²�°����#�������i�$��������&�����1�2�����.�����²�!°����#�������s�$��������&�����3����4
                                    \ No newline at end of file
                                    --- 1,7 ----
                                    ! Êþº¾���1�7��Egnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�
                                    NOT_SUPPORTED�GLgnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported;�	SUPPORTED�stringTable�[Ljava/lang/String;�enumValueTable�H[Lgnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	���java/lang/String��
                                    not-supported��	supported	�� �
                                      �	��"��
                                    �LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�0� multiple-document-jobs-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�"MultipleDocumentJobsSupported.java�!������������	�����
                                    ! ������
                                    �����������w������;»�Y·�³�»�Y·�³�½�YSYS³�½�Y²�SY²�S³�!±����#���"����9��8��=��<��?�'�B�7�A�:�3�$�������������>�����*·�%±����#���
                                    ! ����K��L�$��������&�������'�(���)�*��+����,����-�����°����#�������U�$��������&�����-�.�����-�����/°����#�������_�$��������&�����1�2�����.�����²�°����#�������j�$��������&�����3�4�����.�����²�!°����#�������t�$��������&�����5����6
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OperationsSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OperationsSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OperationsSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OperationsSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�‚��;gnu/javax/print/ipp/attribute/supported/OperationsSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�	PRINT_JOB�=Lgnu/javax/print/ipp/attribute/supported/OperationsSupported;�	PRINT_URI�VALIDATE_JOB�
                                      CREATE_JOB�
                                    SEND_DOCUMENT�SEND_URI�
                                      CANCEL_JOB�GET_JOB_ATTRIBUTES�
                                    PAUSE_PRINTER�GET_JOBS�GET_PRINTER_ATTRIBUTES�HOLD_JOB�RELEASE_JOB�RESTART_JOB�RESERVED�RESUME_PRINTER�
                                      PURGE_JOBS�stringTable�[Ljava/lang/String;�enumValueTable�>[Lgnu/javax/print/ipp/attribute/supported/OperationsSupported;�<clinit>�()V�Code
                                    --- 1,4 ----
                                    ! Êþº¾���1�„��;gnu/javax/print/ipp/attribute/supported/OperationsSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�	PRINT_JOB�=Lgnu/javax/print/ipp/attribute/supported/OperationsSupported;�	PRINT_URI�VALIDATE_JOB�
                                      CREATE_JOB�
                                    SEND_DOCUMENT�SEND_URI�
                                      CANCEL_JOB�GET_JOB_ATTRIBUTES�
                                    PAUSE_PRINTER�GET_JOBS�GET_PRINTER_ATTRIBUTES�HOLD_JOB�RELEASE_JOB�RESTART_JOB�RESERVED�RESUME_PRINTER�
                                      PURGE_JOBS�stringTable�[Ljava/lang/String;�enumValueTable�>[Lgnu/javax/print/ipp/attribute/supported/OperationsSupported;�<clinit>�()V�Code
                                    *************** PURGE_JOBS�stringTable�[Ljava/lang/S
                                    *** 6,15 ****
                                      �	��+��	��-��	��/�
                                    �	��1��	��3��	��5��	��7��	��9��	��;��	��=��	��?��	��A��	��C��	��E���G�java/lang/String�I�	print-job�K�	print-uri�M�validate-job�O�
                                      create-job�Q�
                                    send-document�S�send-uri�U�
                                      cancel-job�W�get-job-attributes�Y�
                                    pause-printer�[�get-jobs�]�get-printer-attributes�_�hold-job�a�release-job�c�restart-job�e�reserved�g�resume-printer�i�	purge-job	��k��	��m���LineNumberTable�LocalVariableTable
                                    ! ��!�this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�y�operations-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�
                                      SourceFile�OperationsSupported.java�1������������	�����
                                      ���������������
                                    ����������������������������������������������������������������������������Ž�����ª»�Y·� ³�$»�Y·� ³�&»�Y·� ³�(»�Y·� ³�*»�Y·� ³�,»�Y·� ³�.»�Y·� ³�0»�Y	·� ³�2»�Y·� ³�4»�Y
                                      ·� ³�6»�Y·� ³�8»�Y·� ³�:»�Y
                                    ·� ³�<»�Y·� ³�>»�Y·� ³�@»�Y·� ³�B»�Y·� ³�D½�FYHSYJSYLSYNSYPSYRSYTSYVSYXSY	ZSY
                                      \SY^SY`SY
                                    bSYdSYfSYhS³�j½�Y²�$SY²�&SY²�(SY²�*SY²�,SY²�.SY²�0SY²�2SY²�4SY	²�6SY
                                    ! ²�8SY²�:SY²�<SY
                                    ²�>SY²�@SY²�BSY²�DS³�l±����n���Ê�2���U��T��Y��X��]��\�!�c�)�b�,�i�5�h�8�p�A�o�D�t�M�s�P�x�Y�w�\�|�e�{�h�€�q��t�„�}�ƒ�€�ˆ�‰�‡�Œ�Œ�•�‹�˜��¡��¤�”�­�“�°�˜�¹�—�¼�œ�Å�›�È�Ÿ�Ï�Ÿ�Ù� �ã�¡�î�¢�ú�£�¤�¥$�¦-�Ÿ0�©7�©\�ª�«¦�¨©�3�o�������"�#�����>�����*·�p±����n���
                                    ! ����µ��¶�o��������q�������r�s���t�u�����-�����°����n�������¿�o��������q�����v�w�����-�����x°����n�������É�o��������q�����z�{�����.�����²�j°����n�������Ô�o��������q�����|�}�����.�����²�l°����n�������Þ�o��������q�����~������,�����¬����n�������ä�o��������q�����€����
                                    \ No newline at end of file
                                    --- 6,15 ----
                                      �	��+��	��-��	��/�
                                    �	��1��	��3��	��5��	��7��	��9��	��;��	��=��	��?��	��A��	��C��	��E���G�java/lang/String�I�	print-job�K�	print-uri�M�validate-job�O�
                                      create-job�Q�
                                    send-document�S�send-uri�U�
                                      cancel-job�W�get-job-attributes�Y�
                                    pause-printer�[�get-jobs�]�get-printer-attributes�_�hold-job�a�release-job�c�restart-job�e�reserved�g�resume-printer�i�	purge-job	��k��	��m���LineNumberTable�LocalVariableTable
                                    ! ��!�this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�{�operations-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�
                                      SourceFile�OperationsSupported.java�1������������	�����
                                      ���������������
                                    ����������������������������������������������������������������������������Ž�����ª»�Y·� ³�$»�Y·� ³�&»�Y·� ³�(»�Y·� ³�*»�Y·� ³�,»�Y·� ³�.»�Y·� ³�0»�Y	·� ³�2»�Y·� ³�4»�Y
                                      ·� ³�6»�Y·� ³�8»�Y·� ³�:»�Y
                                    ·� ³�<»�Y·� ³�>»�Y·� ³�@»�Y·� ³�B»�Y·� ³�D½�FYHSYJSYLSYNSYPSYRSYTSYVSYXSY	ZSY
                                      \SY^SY`SY
                                    bSYdSYfSYhS³�j½�Y²�$SY²�&SY²�(SY²�*SY²�,SY²�.SY²�0SY²�2SY²�4SY	²�6SY
                                    ! ²�8SY²�:SY²�<SY
                                    ²�>SY²�@SY²�BSY²�DS³�l±����n���Ê�2���V��U��Z��Y��^��]�!�d�)�c�,�j�5�i�8�q�A�p�D�u�M�t�P�y�Y�x�\�}�e�|�h��q�€�t�…�}�„�€�‰�‰�ˆ�Œ��•�Œ�˜�‘�¡��¤�•�­�”�°�™�¹�˜�¼��Å�œ�È� �Ï� �Ù�¡�ã�¢�î�£�ú�¤�¥�¦$�§-� 0�ª7�ª\�«�¬¦�©©�4�o�������"�#�����>�����*·�p±����n���
                                    ! ����¶��·�o��������q�������r�s���t�u��v����w����-�����°����n�������À�o��������q�����x�y�����-�����z°����n�������Ê�o��������q�����|�}�����.�����²�j°����n�������Õ�o��������q�����~������.�����²�l°����n�������ß�o��������q�����€������,�����¬����n�������å�o��������q�����‚����ƒ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,14 ****
                                    ! Êþº¾���1�r��Egnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�PORTRAIT�GLgnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported;�	LANDSCAPE�REVERSE_LANDSCAPE�REVERSE_PORTRAIT�stringTable�[Ljava/lang/String;�enumValueTable�H[Lgnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�portrait�$�	landscape�&�reverse-landscape�(�reverse-portrait	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�8�orientation-requested-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�7()Ljavax/print/attribute/standard/OrientationRequested;�B�orientation-requested�D�java/lang/Integer
                                    ! ��F�G�>�getValue
                                    ! �C�
                                    ! �J�L�K� gnu/javax/print/ipp/IppUtilities�M�N�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�P�3javax/print/attribute/standard/OrientationRequested�getAssociatedAttributeArray�G(Ljava/util/Set;)[Ljavax/print/attribute/standard/OrientationRequested;�T�V�U�
                                    java/util/Set�W�>�size�T�Y�Z�[�iterator�()Ljava/util/Iterator;�]�_�^�java/util/Iterator�`�a�next�()Ljava/lang/Object;
                                    ! ��c�?�@�]�e�f�g�hasNext�()Z�set�Ljava/util/Set;�tmp�result�6[Ljavax/print/attribute/standard/OrientationRequested;�it�Ljava/util/Iterator;�j�
                                      SourceFile�"OrientationRequestedSupported.java�1������������	�����
                                    ! �����������
                                    ��������	��������Ì������h»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���J����>��=��B��A��F��E�!�J�*�I�-�M�3�M�=�N�B�O�E�M�H�R�N�R�Z�S�d�R�g�8�.�������������>�����*·�/±����-���
                                    ! ����\��]�.��������0�������1�2���3�4�����-�����°����-�������f�.��������0�����5�6�����-�����7°����-�������p�.��������0�����9�:�����.�����²�)°����-�������{�.��������0�����;�<�����.�����²�+°����-�������…�.��������0�����=�>�����,�����¬����-��������.��������0�����?�@�����B�����A»�CY*¶�E·�H¸�IÀ�O°����-���
                                    ! ����›�
                                    �š�.��������0����	�Q�R�����©�����7*¹�S�½�OM*¹�X�N6§�-¹�\�À�L,+¶�bS„-¹�d�šÿå,°����-���&�	���¨�
                                    ! �©��ª��«��­�!�®�)�¯�,�«�5�±�.���4����7�h�i���!��j���
                                    ! �-�k�l���&�m�n���#�o�2���p����q
                                    \ No newline at end of file
                                    --- 1,14 ----
                                    ! Êþº¾���1�x��Egnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�PORTRAIT�GLgnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported;�	LANDSCAPE�REVERSE_LANDSCAPE�REVERSE_PORTRAIT�stringTable�[Ljava/lang/String;�enumValueTable�H[Lgnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����� �java/lang/String�"�portrait�$�	landscape�&�reverse-landscape�(�reverse-portrait	��*��
                                    	��,���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�:�orientation-requested-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�7()Ljavax/print/attribute/standard/OrientationRequested;�D�orientation-requested�F�java/lang/Integer
                                    ! ��H�I�@�getValue
                                    ! �E�
                                    ! �L�N�M� gnu/javax/print/ipp/IppUtilities�O�P�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�R�3javax/print/attribute/standard/OrientationRequested�getAssociatedAttributeArray�G(Ljava/util/Set;)[Ljavax/print/attribute/standard/OrientationRequested;�j(Ljava/util/Set<Ljavax/print/attribute/Attribute;>;)[Ljavax/print/attribute/standard/OrientationRequested;�W�Y�X�
                                    java/util/Set�Z�@�size�W�\�]�^�iterator�()Ljava/util/Iterator;�`�b�a�java/util/Iterator�c�d�next�()Ljava/lang/Object;�f�javax/print/attribute/Attribute
                                    ! ��h�A�B�`�j�k�l�hasNext�()Z�set�Ljava/util/Set;�result�6[Ljavax/print/attribute/standard/OrientationRequested;�j�tmp�!Ljavax/print/attribute/Attribute;�LocalVariableTypeTable�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�
                                      SourceFile�"OrientationRequestedSupported.java�1������������	�����
                                    ! �����������
                                    ��������	��������Ì������h»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�½�Y!SY#SY%SY'S³�)½�Y²�SY²�SY²�SY²�S³�+±����-���J����?��>��C��B��G��F�!�K�*�J�-�N�3�N�=�O�B�P�E�N�H�S�N�S�Z�T�d�S�g�9�.�������������>�����*·�/±����-���
                                    ! ����]��^�.��������0�������1�2���3�4��5����6����-�����°����-�������g�.��������0�����7�8�����-�����9°����-�������q�.��������0�����;�<�����.�����²�)°����-�������|�.��������0�����=�>�����.�����²�+°����-�������†�.��������0�����?�@�����,�����¬����-��������.��������0�����A�B�����B�����C»�EY*¶�G·�J¸�KÀ�Q°����-���
                                    ! ����œ�
                                    �›�.��������0����	�S�T��5����U����­�����;*¹�V�½�QL=*¹�[�:§�¹�_�À�eN+-À�¶�gS„¹�i�šÿá+°����-�������©�
                                    ! �ª��«�"�­�,�®�/�«�9�°�.���*����;�m�n���
                                    ! �1�o�p���/�q�2��"�
                                    �r�s��t�������;�m�u����v����w
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,8 ****
                                    ! Êþº¾���1�5��;gnu/javax/print/ipp/attribute/supported/PageRangesSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�
                                    NOT_SUPPORTED�=Lgnu/javax/print/ipp/attribute/supported/PageRangesSupported;�	SUPPORTED�stringTable�[Ljava/lang/String;�enumValueTable�>[Lgnu/javax/print/ipp/attribute/supported/PageRangesSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	���java/lang/String��
                                    not-supported��	supported	�� �
                                      �	��"��
                                    �LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�.�page-ranges-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�PageRangesSupported.java�1������������	�����
                                      ������
                                    �����������������;»�Y·�³�»�Y·�³�½�YSYS³�½�Y²�SY²�S³�!±����#���*�
                                      ���8��7��<��;��>�'�@�-�@�3�A�7�@�:�3�$�������������>�����*·�%±����#���
                                    ! ����J��K�$��������&�������'�(���)�*�����-�����°����#�������T�$��������&�����+�,�����-�����-°����#�������^�$��������&�����/�0�����.�����²�°����#�������i�$��������&�����1�2�����.�����²�!°����#�������s�$��������&�����3����4
                                    \ No newline at end of file
                                    --- 1,8 ----
                                    ! Êþº¾���1�7��;gnu/javax/print/ipp/attribute/supported/PageRangesSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�
                                    NOT_SUPPORTED�=Lgnu/javax/print/ipp/attribute/supported/PageRangesSupported;�	SUPPORTED�stringTable�[Ljava/lang/String;�enumValueTable�>[Lgnu/javax/print/ipp/attribute/supported/PageRangesSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	���java/lang/String��
                                    not-supported��	supported	�� �
                                      �	��"��
                                    �LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�0�page-ranges-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�PageRangesSupported.java�1������������	�����
                                      ������
                                    �����������������;»�Y·�³�»�Y·�³�½�YSYS³�½�Y²�SY²�S³�!±����#���*�
                                      ���8��7��<��;��>�'�@�-�@�3�A�7�@�:�3�$�������������>�����*·�%±����#���
                                    ! ����J��K�$��������&�������'�(���)�*��+����,����-�����°����#�������T�$��������&�����-�.�����-�����/°����#�������^�$��������&�����1�2�����.�����²�°����#�������i�$��������&�����3�4�����.�����²�!°����#�������s�$��������&�����5����6
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,14 ****
                                    ! Êþº¾���1�m��=gnu/javax/print/ipp/attribute/supported/PrintQualitySupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�DRAFT�?Lgnu/javax/print/ipp/attribute/supported/PrintQualitySupported;�NORMAL�HIGH�stringTable�[Ljava/lang/String;�enumValueTable�@[Lgnu/javax/print/ipp/attribute/supported/PrintQualitySupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      ���java/lang/String��draft�!�normal�#�high	��%��	��'�
                                    ��LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�3�print-quality-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�/()Ljavax/print/attribute/standard/PrintQuality;�=�
                                    print-quality�?�java/lang/Integer
                                    ! ��A�B�9�getValue
                                    ! �>�
                                    ! �E�G�F� gnu/javax/print/ipp/IppUtilities�H�I�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�K�+javax/print/attribute/standard/PrintQuality�getAssociatedAttributeArray�?(Ljava/util/Set;)[Ljavax/print/attribute/standard/PrintQuality;�O�Q�P�
                                    java/util/Set�R�9�size�O�T�U�V�iterator�()Ljava/util/Iterator;�X�Z�Y�java/util/Iterator�[�\�next�()Ljava/lang/Object;
                                    ! ��^�:�;�X�`�a�b�hasNext�()Z�set�Ljava/util/Set;�tmp�result�.[Ljavax/print/attribute/standard/PrintQuality;�it�Ljava/util/Iterator;�j�
                                      SourceFile�PrintQualitySupported.java�1������������	�����
                                    ! ����������
                                    ����	��������¡������Q»�Y·�³�»�Y·�³�»�Y·�³�½�YSY SY"S³�$½�Y²�SY²�SY²�S³�&±����(���6�
                                    ���=��<��A��@��E��D�!�G�7�I�=�I�C�J�I�K�M�I�P�8�)�������������>�����*·�*±����(���
                                    ! ����T��U�)��������+�������,�-���.�/�����-�����°����(�������^�)��������+�����0�1�����-�����2°����(�������h�)��������+�����4�5�����.�����²�$°����(�������s�)��������+�����6�7�����.�����²�&°����(�������}�)��������+�����8�9�����,�����¬����(�������‡�)��������+�����:�;�����B�����<»�>Y*¶�@·�C¸�DÀ�J°����(���
                                    ! ����“�
                                    �’�)��������+����	�L�M�����©�����7*¹�N�½�JM*¹�S�N6§�-¹�W�À�L,+¶�]S„-¹�_�šÿå,°����(���&�	��� �
                                    ! �¡��¢��£��¥�!�¦�)�§�,�£�5�©�)���4����7�c�d���!��e���
                                    ! �-�f�g���&�h�i���#�j�-���k����l
                                    \ No newline at end of file
                                    --- 1,14 ----
                                    ! Êþº¾���1�s��=gnu/javax/print/ipp/attribute/supported/PrintQualitySupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�DRAFT�?Lgnu/javax/print/ipp/attribute/supported/PrintQualitySupported;�NORMAL�HIGH�stringTable�[Ljava/lang/String;�enumValueTable�@[Lgnu/javax/print/ipp/attribute/supported/PrintQualitySupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      ���java/lang/String��draft�!�normal�#�high	��%��	��'�
                                    ��LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�5�print-quality-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�	getOffset�()I�getAssociatedAttribute�/()Ljavax/print/attribute/standard/PrintQuality;�?�
                                    print-quality�A�java/lang/Integer
                                    ! ��C�D�;�getValue
                                    ! �@�
                                    ! �G�I�H� gnu/javax/print/ipp/IppUtilities�J�K�getEnumAttribute�G(Ljava/lang/String;Ljava/lang/Object;)Ljavax/print/attribute/Attribute;�M�+javax/print/attribute/standard/PrintQuality�getAssociatedAttributeArray�?(Ljava/util/Set;)[Ljavax/print/attribute/standard/PrintQuality;�b(Ljava/util/Set<Ljavax/print/attribute/Attribute;>;)[Ljavax/print/attribute/standard/PrintQuality;�R�T�S�
                                    java/util/Set�U�;�size�R�W�X�Y�iterator�()Ljava/util/Iterator;�[�]�\�java/util/Iterator�^�_�next�()Ljava/lang/Object;�a�javax/print/attribute/Attribute
                                    ! ��c�<�=�[�e�f�g�hasNext�()Z�set�Ljava/util/Set;�result�.[Ljavax/print/attribute/standard/PrintQuality;�j�tmp�!Ljavax/print/attribute/Attribute;�LocalVariableTypeTable�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�
                                      SourceFile�PrintQualitySupported.java�1������������	�����
                                    ! ����������
                                    ����	��������¡������Q»�Y·�³�»�Y·�³�»�Y·�³�½�YSY SY"S³�$½�Y²�SY²�SY²�S³�&±����(���6�
                                    ���>��=��B��A��F��E�!�H�7�J�=�J�C�K�I�L�M�J�P�9�)�������������>�����*·�*±����(���
                                    ! ����U��V�)��������+�������,�-���.�/��0����1����-�����°����(�������_�)��������+�����2�3�����-�����4°����(�������i�)��������+�����6�7�����.�����²�$°����(�������t�)��������+�����8�9�����.�����²�&°����(�������~�)��������+�����:�;�����,�����¬����(�������ˆ�)��������+�����<�=�����B�����>»�@Y*¶�B·�E¸�FÀ�L°����(���
                                    ! ����”�
                                    �“�)��������+����	�N�O��0����P����­�����;*¹�Q�½�LL=*¹�V�:§�¹�Z�À�`N+-À�¶�bS„¹�d�šÿá+°����(������� �
                                    ! �¡��¢�"�¤�,�¥�/�¢�9�§�)���*����;�h�i���
                                    ! �1�j�k���/�l�-��"�
                                    �m�n��o�������;�h�p����q����r
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,12 ****
                                    ! Êþº¾���1�M��Bgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported��&javax/print/attribute/ResolutionSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�(III)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�DLgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported;�crossFeedResolution�I�feedResolution�units�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��printer-resolution-supported�getAssociatedAttribute�4()Ljavax/print/attribute/standard/PrinterResolution;�#�0javax/print/attribute/standard/PrinterResolution
                                    ! ��%�&�'�getCrossFeedResolutionDphi�()I
                                    ! ��)�*�'�getFeedResolutionDphi
                                    ! �"��getAssociatedAttributeArray�D(Ljava/util/Set;)[Ljavax/print/attribute/standard/PrinterResolution;�/�1�0�
                                    java/util/Set�2�'�size�/�4�5�6�iterator�()Ljava/util/Iterator;�8�:�9�java/util/Iterator�;�<�next�()Ljava/lang/Object;
                                    ! ��>� �!�8�@�A�B�hasNext�()Z�set�Ljava/util/Set;�tmp�result�3[Ljavax/print/attribute/standard/PrinterResolution;�it�Ljava/util/Iterator;�j�
                                      SourceFile�PrinterResolutionSupported.java�1������������	���T�����*·�
                                      ±�������
                                    ! ����G��H�
                                    ���*�������������������������������	���K�����+Á�š�¬*+·�¬�����������T��U�	�W�
                                    ����������������������	���-�����°�����������a�
                                    ����������������	���-�����°�����������k�
                                    ������������� �!��	���C�����»�"Y*¶�$*¶�(·�+°�����������v��w�
                                    �v�
                                    ������������	�,�-��	���©�����7*¹�.�½�"M*¹�3�N6§�-¹�7�À�L,+¶�=S„-¹�?�šÿå,°�������&�	���„�
                                    ! �…��†��‡��‰�!�Š�)�‹�,�‡�5��
                                    ���4����7�C�D���!��E���
                                    ! �-�F�G���&�H�I���#�J����K����L
                                    \ No newline at end of file
                                    --- 1,12 ----
                                    ! Êþº¾���1�S��Bgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported��&javax/print/attribute/ResolutionSyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�(III)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�DLgnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported;�crossFeedResolution�I�feedResolution�units�equals�(Ljava/lang/Object;)Z
                                    ! �����obj�Ljava/lang/Object;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�!�printer-resolution-supported�getAssociatedAttribute�4()Ljavax/print/attribute/standard/PrinterResolution;�%�0javax/print/attribute/standard/PrinterResolution
                                    ! ��'�(�)�getCrossFeedResolutionDphi�()I
                                    ! ��+�,�)�getFeedResolutionDphi
                                    ! �$��getAssociatedAttributeArray�D(Ljava/util/Set;)[Ljavax/print/attribute/standard/PrinterResolution;�g(Ljava/util/Set<Ljavax/print/attribute/Attribute;>;)[Ljavax/print/attribute/standard/PrinterResolution;�2�4�3�
                                    java/util/Set�5�)�size�2�7�8�9�iterator�()Ljava/util/Iterator;�;�=�<�java/util/Iterator�>�?�next�()Ljava/lang/Object;�A�javax/print/attribute/Attribute
                                    ! ��C�"�#�;�E�F�G�hasNext�()Z�set�Ljava/util/Set;�result�3[Ljavax/print/attribute/standard/PrinterResolution;�j�tmp�!Ljavax/print/attribute/Attribute;�LocalVariableTypeTable�2Ljava/util/Set<Ljavax/print/attribute/Attribute;>;�
                                      SourceFile�PrinterResolutionSupported.java�1������������	���T�����*·�
                                      ±�������
                                    ! ����H��I�
                                    ���*�������������������������������	���K�����+Á�š�¬*+·�¬�����������U��V�	�X�
                                    ���������������������������	���-�����°�����������b�
                                    ����������������	���-����� °�����������l�
                                    �������������"�#��	���C�����»�$Y*¶�&*¶�*·�-°�����������w��x�
                                    �w�
                                    ������������	�.�/������0�	���­�����;*¹�1�½�$L=*¹�6�:§�¹�:�À�@N+-À�¶�BS„¹�D�šÿá+°�����������…�
                                    ! �†��‡�"�‰�,�Š�/�‡�9�Œ�
                                    ���*����;�H�I���
                                    ! �1�J�K���/�L���"�
                                    �M�N��O�������;�H�P����Q����R
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                    ! Êþº¾���1���;gnu/javax/print/ipp/attribute/supported/PrinterUriSupported��javax/print/attribute/URISyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�=Lgnu/javax/print/ipp/attribute/supported/PrinterUriSupported;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;��printer-uri-supported�
                                      SourceFile�PrinterUriSupported.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����A��B�
                                    ����������������������	���-�����°�����������K�
                                    ����������������	���-�����°�����������U�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                    ! Êþº¾���1���;gnu/javax/print/ipp/attribute/supported/PrinterUriSupported��javax/print/attribute/URISyntax��.javax/print/attribute/SupportedValuesAttribute�<init>�(Ljava/net/URI;)V�Code
                                    ! �����LineNumberTable�LocalVariableTable�this�=Lgnu/javax/print/ipp/attribute/supported/PrinterUriSupported;�uri�Ljava/net/URI;�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;��printer-uri-supported�
                                      SourceFile�PrinterUriSupported.java�1������������	���>�����*+·�
                                      ±�������
                                    ! ����B��C�
                                    ���������������������������	���-�����°�����������L�
                                    ����������������	���-�����°�����������V�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/SidesSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/SidesSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/SidesSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/SidesSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,7 ****
                                    ! Êþº¾���1�@��6gnu/javax/print/ipp/attribute/supported/SidesSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�	ONE_SIDED�8Lgnu/javax/print/ipp/attribute/supported/SidesSupported;�TWO_SIDED_LONG_EDGE�TWO_SIDED_SHORT_EDGE�DUPLEX�TUMBLE�stringTable�[Ljava/lang/String;�enumValueTable�9[Lgnu/javax/print/ipp/attribute/supported/SidesSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����	��!���#�java/lang/String�%�	one-sided�'�two-sided-long-edge�)�two-sided-short-edge	��+�
                                    �	��-���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�9�sides-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�SidesSupported.java�1������������	�����
                                    ! ���������������
                                    �����������������Ç������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³� ½�"Y$SY&SY(S³�*½�Y²�SY²�SY²�S³�,±����.���F����7��>��=��E��D�!�H�,�K�7�M�=�M�B�N�G�O�J�M�M�R�S�R�_�S�c�R�f�2�/�������������>�����*·�0±����.���
                                    ! ����]��^�/��������1�������2�3���4�5�����-�����°����.�������g�/��������1�����6�7�����-�����8°����.�������q�/��������1�����:�;�����.�����²�*°����.�������|�/��������1�����<�=�����.�����²�,°����.�������†�/��������1�����>����?
                                    \ No newline at end of file
                                    --- 1,7 ----
                                    ! Êþº¾���1�B��6gnu/javax/print/ipp/attribute/supported/SidesSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�	ONE_SIDED�8Lgnu/javax/print/ipp/attribute/supported/SidesSupported;�TWO_SIDED_LONG_EDGE�TWO_SIDED_SHORT_EDGE�DUPLEX�TUMBLE�stringTable�[Ljava/lang/String;�enumValueTable�9[Lgnu/javax/print/ipp/attribute/supported/SidesSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����	��!���#�java/lang/String�%�	one-sided�'�two-sided-long-edge�)�two-sided-short-edge	��+�
                                    �	��-���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�;�sides-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�SidesSupported.java�1������������	�����
                                    ! ���������������
                                    �����������������Ç������g»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³� ½�"Y$SY&SY(S³�*½�Y²�SY²�SY²�S³�,±����.���F����8��?��>��F��E�!�I�,�L�7�N�=�N�B�O�G�P�J�N�M�S�S�S�_�T�c�S�f�3�/�������������>�����*·�0±����.���
                                    ! ����^��_�/��������1�������2�3���4�5��6����7����-�����°����.�������h�/��������1�����8�9�����-�����:°����.�������r�/��������1�����<�=�����.�����²�*°����.�������}�/��������1�����>�?�����.�����²�,°����.�������‡�/��������1�����@����A
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,7 ****
                                    ! Êþº¾���1�D��Bgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�DLgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported;�REQUESTING_USER_NAME�BASIC�DIGEST�CERTIFICATE�stringTable�[Ljava/lang/String;�enumValueTable�E[Lgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����	��!���#�java/lang/String�%�none�'�requesting-user-name�)�basic�+�digest�-�certificate	��/�
                                    �	��1���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�=�uri-authentication-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�UriAuthenticationSupported.java�1������������	�����
                                    ! ���������������
                                    �����������������å������}»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³� ½�"Y$SY&SY(SY*SY,S³�.½�Y²�SY²�SY²�SY²�SY²� S³�0±����2���N����<��;��D��C��H��G�!�L�)�K�,�P�4�O�7�R�=�R�B�S�G�T�Q�U�T�R�W�X�y�W�|�4�3�������������>�����*·�4±����2���
                                    ! ����a��b�3��������5�������6�7���8�9�����-�����°����2�������k�3��������5�����:�;�����-�����<°����2�������u�3��������5�����>�?�����.�����²�.°����2�������€�3��������5�����@�A�����.�����²�0°����2�������Š�3��������5�����B����C
                                    \ No newline at end of file
                                    --- 1,7 ----
                                    ! Êþº¾���1�F��Bgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�DLgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported;�REQUESTING_USER_NAME�BASIC�DIGEST�CERTIFICATE�stringTable�[Ljava/lang/String;�enumValueTable�E[Lgnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      �	����	��!���#�java/lang/String�%�none�'�requesting-user-name�)�basic�+�digest�-�certificate	��/�
                                    �	��1���LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�?�uri-authentication-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�UriAuthenticationSupported.java�1������������	�����
                                    ! ���������������
                                    �����������������å������}»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³� ½�"Y$SY&SY(SY*SY,S³�.½�Y²�SY²�SY²�SY²�SY²� S³�0±����2���N����=��<��E��D��I��H�!�M�)�L�,�Q�4�P�7�S�=�S�B�T�G�U�Q�V�T�S�W�Y�y�X�|�5�3�������������>�����*·�4±����2���
                                    ! ����b��c�3��������5�������6�7���8�9��:����;����-�����°����2�������l�3��������5�����<�=�����-�����>°����2�������v�3��������5�����@�A�����.�����²�.°����2��������3��������5�����B�C�����.�����²�0°����2�������‹�3��������5�����D����E
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,7 ****
                                    ! Êþº¾���1�:��<gnu/javax/print/ipp/attribute/supported/UriSecuritySupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�>Lgnu/javax/print/ipp/attribute/supported/UriSecuritySupported;�SSL3�TLS�stringTable�[Ljava/lang/String;�enumValueTable�?[Lgnu/javax/print/ipp/attribute/supported/UriSecuritySupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      ���java/lang/String��none�!�ssl3�#�tls	��%��	��'�
                                    ��LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�getName�()Ljava/lang/String;�3�uri-security-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�UriSecuritySupported.java�1������������	�����
                                    ! ����������
                                    ������������������Q»�Y·�³�»�Y·�³�»�Y·�³�½�YSY SY"S³�$½�Y²�SY²�SY²�S³�&±����(���2����<��;��@��?��D��C�!�F�7�H�=�H�C�I�M�H�P�4�)�������������>�����*·�*±����(���
                                    ! ����R��S�)��������+�������,�-���.�/�����-�����°����(�������\�)��������+�����0�1�����-�����2°����(�������f�)��������+�����4�5�����.�����²�$°����(�������q�)��������+�����6�7�����.�����²�&°����(�������{�)��������+�����8����9
                                    \ No newline at end of file
                                    --- 1,7 ----
                                    ! Êþº¾���1�<��<gnu/javax/print/ipp/attribute/supported/UriSecuritySupported�� javax/print/attribute/EnumSyntax��.javax/print/attribute/SupportedValuesAttribute�NONE�>Lgnu/javax/print/ipp/attribute/supported/UriSecuritySupported;�SSL3�TLS�stringTable�[Ljava/lang/String;�enumValueTable�?[Lgnu/javax/print/ipp/attribute/supported/UriSecuritySupported;�<clinit>�()V�Code
                                      �����<init>�(I)V	����	���	�	���
                                      ���java/lang/String��none�!�ssl3�#�tls	��%��	��'�
                                    ��LineNumberTable�LocalVariableTable
                                    ! ���this�value�I�getCategory�()Ljava/lang/Class;�	Signature�7()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;�getName�()Ljava/lang/String;�5�uri-security-supported�getStringTable�()[Ljava/lang/String;�getEnumValueTable�%()[Ljavax/print/attribute/EnumSyntax;�
                                      SourceFile�UriSecuritySupported.java�1������������	�����
                                    ! ����������
                                    ������������������Q»�Y·�³�»�Y·�³�»�Y·�³�½�YSY SY"S³�$½�Y²�SY²�SY²�S³�&±����(���2����=��<��A��@��E��D�!�G�7�I�=�I�C�J�M�I�P�5�)�������������>�����*·�*±����(���
                                    ! ����S��T�)��������+�������,�-���.�/��0����1����-�����°����(�������]�)��������+�����2�3�����-�����4°����(�������g�)��������+�����6�7�����.�����²�$°����(�������r�)��������+�����8�9�����.�����²�&°����(�������|�)��������+�����:����;
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class gcc-4.6.0/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,32 ****
                                    ! Êþº¾���1�‘��&gnu/javax/swing/text/html/css/Selector��java/lang/Object�selector�[Ljava/lang/String;�elements�ids�classes�specificity�I�implicit�Z�<init>�(Ljava/lang/String;)V�Code
                                      �����()V��java/util/StringTokenizer�� 
                                      �����'(Ljava/lang/String;Ljava/lang/String;)V
                                      �����countTokens�()I� �java/lang/String	��"��
                                      ��$�%�&�	nextToken�()Ljava/lang/String;
                                      ��(�)�*�
                                    hasMoreTokens�()Z
                                    ! ��,�-��calculateSpecificity�LineNumberTable�LocalVariableTable�this�(Lgnu/javax/swing/text/html/css/Selector;�sel�Ljava/lang/String;�selectorTokens�Ljava/util/StringTokenizer;�i�matches�&([Ljava/lang/String;[Ljava/util/Map;)Z�:�class�<�>�=�
                                    java/util/Map�?�@�get�&(Ljava/lang/Object;)Ljava/lang/Object;�B�_pseudo�D�_dynamic�F�id	��H��	��J�	�	��L���N��
                                    ! ��P�Q�R�equals�(Ljava/lang/Object;)Z�T�*�tags�
                                    ! attributes�[Ljava/util/Map;�match�numTags�numSel�tagIndex�j�tagMatch�	pathClass�Ljava/lang/Object;�pseudoClass�dynClass�pathId�tag�clazz�getSpecificity	��g�
                                    ! ��toString�j�java/lang/StringBuilder
                                    ! �i�
                                    ! �i�m�n�o�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �i�q�n�r�(C)Ljava/lang/StringBuilder;
                                    ! �i�t�h�&�b�Ljava/lang/StringBuilder;	��x��
                                    ! ��z�{�|�indexOf�(I)I
                                    ! ��~���length
                                    ! ��ƒ�‚�java/lang/Math�„�…�min�(II)I
                                    ! ��‡�ˆ�‰�	substring�(II)Ljava/lang/String;�a�c�d�
                                      clazzIndex�idIndex�
                                      SourceFile�
                                    Selector.java�!����������������������	�����
                                    ! ������
                                    �����������¢�����>*·�»�Y+·�M*,¶�½�µ�!*´�!¾d>§�*´�!,¶�#S„ÿ,¶�'šÿï*·�+±����.���"����M��O��P��Q�%�S�/�Q�9�U�=�V�/���*����>�0�1�����>�2�3���/�4�5��"��6����7�8����Y����>+¾6*´�!¾6£>66§�ð6§�Ø,29¹�;�:	,2A¹�;�:
                                    ! ,2C¹�;�:,2E¹�;�:*´�G2:
                                    *´�I2:*´�K2:
                                    M¶�Oš�
                                    S¶�Oš�
                                    +2¶�Oš�§�6™�/S¶�Oš�!¶�Oš�
                                    ! ¶�Oš�
                                    	¶�O™�§�6™�S¶�Oš�
                                    ¶�O™�§�6š�§�„¢�™ÿ">„¢�šÿ¬����.���†�!���m��n��o�
                                    �p��r��s��t��v�"�w�%�y�2�{�?�|�L�}�Y�~�b��k�€�t��ˆ�‚�™��›�ƒ�ª�„�´�…�¾�†�Í�ƒ�Ï�‡�Þ�ˆ�í�‡�ï�‹�ô�Œ�÷�w�	�t�“�/���¢����0�1�����U�����V�W���X�
                                    ���Y���
                                    �Z����þ�[����û�\���"�ç�]�
                                    ��2�Å�^�_�	�?�¸�`�_�
                                    ! �L�«�a�_��Y�ž�b�_��b�•�c�3�
                                    �k�Œ�d�3��t�ƒ�F�3���e������/�����*´�f¬����.�������Ÿ�/��������0�1����h�&�����‹�����5»�iY·�kL*´�!¾d=§�+*´�!2¶�lWž�
                                    ! + ¶�pW„ÿœÿæ+¶�s°����.�������ª��«��­��®�"�¯�)�«�0�±�/��� ����5�0�1����-�u�v��� �6����-�����£��
                                    ��E*´�w™�§�<=>6*´�!¾6*½�µ�G*½�µ�K*½�µ�I6§�ë*´�!2:.¶�y6 �:¶�y6#¶�y6	 �S:
                                    ! ¶�}6§�(„`	ž�	¶�}¸�€§�¶�}¶�†:
                                    ! 	 �S:¶�}6	§�(„	`ž�¶�}¸�€§�¶�}¶�†:	¸�€¶�}¸�€¶�†:M¶�Oš�S¶�Oš�„*´�GS*´�KS*´�I
                                    ! S„¡ÿ*hh`‚h``‚µ�f±����.���®�+���»�
                                    �¼��½��¾��¿��À�$�Á�-�Â�6�Ã�<�Å�E�Æ�N�È�T�É�]�Ê�f�Ì�l�Î�p�Ï�z�Ó�}�Ô�ƒ�Õ�•�Ö�š�Ô�Ÿ�Ù�¥�Û�©�Ü�³�à�¶�á�¼�â�Î�ã�Ó�á�Ø�å�Û�æ�â�ç�ç�æ�ê�å�ï�è�é�ë�ì�í!�Ã+�ðD�ñ�/���˜���E�0�1���
                                    8�Š���6�u���4�‹���1�Œ���*�Z���9�ò�6���E�Ü�2�3��N�Ó����f�»�Ž��	�p�
                                    ! �d�3�
                                    ! �Ÿ�‚�d�3�
                                      �©�
                                    ! �F�3��Ø�I�F�3��ï�2�c�3�������
                                    \ No newline at end of file
                                    --- 1,32 ----
                                    ! Êþº¾���1�š��&gnu/javax/swing/text/html/css/Selector��java/lang/Object�selector�[Ljava/lang/String;�elements�ids�classes�specificity�I�implicit�Z�<init>�(Ljava/lang/String;)V�Code
                                      �����()V��java/util/StringTokenizer�� 
                                      �����'(Ljava/lang/String;Ljava/lang/String;)V
                                      �����countTokens�()I� �java/lang/String	��"��
                                      ��$�%�&�	nextToken�()Ljava/lang/String;
                                      ��(�)�*�
                                    hasMoreTokens�()Z
                                    ! ��,�-��calculateSpecificity�LineNumberTable�LocalVariableTable�this�(Lgnu/javax/swing/text/html/css/Selector;�sel�Ljava/lang/String;�selectorTokens�Ljava/util/StringTokenizer;�i�matches�&([Ljava/lang/String;Ljava/util/List;)Z�	Signature�]([Ljava/lang/String;Ljava/util/List<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;)Z�<�>�=�java/util/List�?�@�get�(I)Ljava/lang/Object;�B�
                                    java/util/Map�D�class�A�F�?�G�&(Ljava/lang/Object;)Ljava/lang/Object;�I�_pseudo�K�_dynamic�M�id	��O��	��Q�	�	��S���U��
                                    ! ��W�X�Y�equals�(Ljava/lang/Object;)Z�[�*�tags�
                                    ! attributes�Ljava/util/List;�match�numTags�numSel�tagIndex�j�tagMatch�	pathClass�Ljava/lang/Object;�pseudoClass�dynClass�pathId�tag�clazz�LocalVariableTypeTable�GLjava/util/List<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;�getSpecificity	��p�
                                    ! ��toString�s�gnu/java/lang/CPStringBuilder
                                    ! �r�
                                    ! �r�v�w�x�append�3(Ljava/lang/String;)Lgnu/java/lang/CPStringBuilder;
                                    ! �r�z�w�{�"(C)Lgnu/java/lang/CPStringBuilder;
                                    ! �r�}�q�&�b�Lgnu/java/lang/CPStringBuilder;	����
                                    ! ��ƒ�„�…�indexOf�(I)I
                                    ! ��‡�ˆ��length
                                    ! �Š�Œ�‹�java/lang/Math��Ž�min�(II)I
                                    ! ���‘�’�	substring�(II)Ljava/lang/String;�a�c�d�
                                      clazzIndex�idIndex�
                                      SourceFile�
                                    Selector.java�!����������������������	�����
                                    ! ������
                                    �����������¢�����>*·�»�Y+·�M*,¶�½�µ�!*´�!¾d>§�*´�!,¶�#S„ÿ,¶�'šÿï*·�+±����.���"����P��R��S��T�%�V�/�T�9�X�=�Y�/���*����>�0�1�����>�2�3���/�4�5��"��6����7�8��9����:���‡����5>+¾6*´�!¾6£">66§6§�ô,¹�;�À�AC¹�E�:	,¹�;�À�AH¹�E�:
                                    ! ,¹�;�À�AJ¹�E�:,¹�;�À�AL¹�E�:*´�N2:
                                    *´�P2:*´�R2:
                                    T¶�Vš�
                                    Z¶�Vš�
                                    +2¶�Vš�§�6™�/Z¶�Vš�!¶�Vš�
                                    ! ¶�Vš�
                                    	¶�V™�§�6™�Z¶�Vš�
                                    ¶�V™�§�6š�§�„¢�™ÿ>„¢�šþï¬����.���†�!���p��q��r�
                                    �s��u��v��w��y�"�z�%�|�9�~�M��a�€�u��~�‚�‡�ƒ��„�¤�…�µ�„�·�†�Æ�‡�Ð�ˆ�Ú�‰�é�†�ë�Š�ú�‹	�Š�Ž��z"�“%�w3�–�/���¢���5�0�1����5�\����5�]�^��3�_�
                                    ��/�`���
                                    (�a����b����c���"�d�
                                    ��9��e�f�	�M��g�f�
                                    ! �a�²�h�f��u�ž�i�f��~�•�j�3�
                                    �‡�Œ�k�3���ƒ�M�3��l������5�]�m���n������/�����*´�o¬����.�������¢�/��������0�1����q�&�����‹�����5»�rY·�tL*´�!¾d=§�+*´�!2¶�uWž�
                                    ! + ¶�yW„ÿœÿæ+¶�|°����.�������­��®��°��±�"�²�)�®�0�´�/��� ����5�0�1����-�~���� �6����-�����£��
                                    ��E*´�€™�§�<=>6*´�!¾6*½�µ�N*½�µ�R*½�µ�P6§�ë*´�!2:.¶�‚6 �:¶�‚6#¶�‚6	 �Z:
                                    ! ¶�†6§�(„`	ž�	¶�†¸�‰§�¶�†¶�:
                                    ! 	 �Z:¶�†6	§�(„	`ž�¶�†¸�‰§�¶�†¶�:	¸�‰¶�†¸�‰¶�:T¶�Vš�Z¶�Vš�„*´�NS*´�RS*´�P
                                    ! S„¡ÿ*hh`‚h``‚µ�o±����.���®�+���¾�
                                    �¿��À��Á��Â��Ã�$�Ä�-�Å�6�Æ�<�È�E�É�N�Ë�T�Ì�]�Í�f�Ï�l�Ñ�p�Ò�z�Ö�}�×�ƒ�Ø�•�Ù�š�×�Ÿ�Ü�¥�Þ�©�ß�³�ã�¶�ä�¼�å�Î�æ�Ó�ä�Ø�è�Û�é�â�ê�ç�é�ê�è�ï�ë�ì�î�ï�ð!�Æ+�óD�ô�/���˜���E�0�1���
                                    8�“���6�~���4�”���1�•���*�a���9�ò�6���E�Ü�2�3��N�Ó�–���f�»�—��	�p�
                                    ! �k�3�
                                    ! �Ÿ�‚�k�3�
                                      �©�
                                    ! �M�3��Ø�I�M�3��ï�2�j�3���˜����™
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/FilteredStreamReader.class gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/FilteredStreamReader.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/FilteredStreamReader.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/FilteredStreamReader.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�/��#gnu/xml/stream/FilteredStreamReader��$javax/xml/stream/util/ReaderDelegate�reader�"Ljavax/xml/stream/XMLStreamReader;�filter�Ljavax/xml/stream/StreamFilter;�<init>�D(Ljavax/xml/stream/XMLStreamReader;Ljavax/xml/stream/StreamFilter;)V�Code
                                      ��
                                    �	��%(Ljavax/xml/stream/XMLStreamReader;)V	����	�����LineNumberTable�LocalVariableTable�this�%Lgnu/xml/stream/FilteredStreamReader;�hasNext�()Z�
                                      Exceptions��#javax/xml/stream/XMLStreamException
                                      �����next�()I
                                    --- 1,4 ----
                                    ! Êþº¾���1�/��#gnu/xml/stream/FilteredStreamReader��*javax/xml/stream/util/StreamReaderDelegate�reader�"Ljavax/xml/stream/XMLStreamReader;�filter�Ljavax/xml/stream/StreamFilter;�<init>�D(Ljavax/xml/stream/XMLStreamReader;Ljavax/xml/stream/StreamFilter;)V�Code
                                      ��
                                    �	��%(Ljavax/xml/stream/XMLStreamReader;)V	����	�����LineNumberTable�LocalVariableTable�this�%Lgnu/xml/stream/FilteredStreamReader;�hasNext�()Z�
                                      Exceptions��#javax/xml/stream/XMLStreamException
                                      �����next�()I
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/NamespaceImpl.class gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/NamespaceImpl.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/NamespaceImpl.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/NamespaceImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,16 ****
                                    ! Êþº¾���1�P��gnu/xml/stream/NamespaceImpl��gnu/xml/stream/XMLEventImpl��!javax/xml/stream/events/Namespace�prefix�Ljava/lang/String;�uri�<init>�B(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;)V�Code
                                    ! ���
                                    ! ��(Ljavax/xml/stream/Location;)V	����	���	��LineNumberTable�LocalVariableTable�this�Lgnu/xml/stream/NamespaceImpl;�location�Ljavax/xml/stream/Location;�getEventType�()I�	getPrefix�()Ljava/lang/String;�getNamespaceURI�isDefaultNamespaceDeclaration�()Z�"��
                                    ! �$�&�%�java/lang/String�'�(�equals�(Ljava/lang/Object;)Z�writeAsEncodedUnicode�(Ljava/io/Writer;)V�
                                    ! Exceptions�-�#javax/xml/stream/XMLStreamException�/�xmlns
                                    ! �1�3�2�java/io/Writer�4�5�write�(Ljava/lang/String;)V
                                    ! �1�7�4�8�(I)V
                                    ! ��:�;�<�encode�'(Ljava/lang/String;Z)Ljava/lang/String;
                                    ! �>�@�?�java/io/IOException�A��
                                      getMessage
                                    ! �,�C�
                                    ! �5
                                    ! �,�E�F�G�	initCause�,(Ljava/lang/Throwable;)Ljava/lang/Throwable;�writer�Ljava/io/Writer;�e�Ljava/io/IOException;�e2�%Ljavax/xml/stream/XMLStreamException;�
                                    ! SourceFile�NamespaceImpl.java�!������������	������
                                    ! ������d�����*+·�
                                    *,µ�*-µ�±�����������=��>�
                                    ! �?��@����*������������������������	����������-�����
                                    ¬�����������D��������������������/�����*´�°�����������I��������������������/�����*´�°�����������N��������������� �����A�����*´�Æ�!*´�¶�#š�¬¬�����������S��������������)�*��+�����,����ß�����_+.¶�0*´�Æ�!*´�¶�#š�+:¶�6+*´�¶�0+=¶�6+"¶�6+**´�¶�9¶�0+"¶�6§�M»�,Y,¶�=·�BN-,¶�DW-¿±����F�I�>�����6�
                                    ���[��\��^��_�'�a�-�b�3�c�@�d�I�f�J�h�V�i�\�j�^�l����*����_�������_�H�I��J��J�K��V��L�M���N����O
                                    \ No newline at end of file
                                    --- 1,20 ----
                                    ! Êþº¾���1�b��gnu/xml/stream/NamespaceImpl��gnu/xml/stream/XMLEventImpl��!javax/xml/stream/events/Namespace�prefix�Ljava/lang/String;�uri�	specified�Z�<init>�C(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;Z)V�Code
                                    ! �����(Ljavax/xml/stream/Location;)V	����	���	�	���
                                    ! ��LineNumberTable�LocalVariableTable�this�Lgnu/xml/stream/NamespaceImpl;�location�Ljavax/xml/stream/Location;�getEventType�()I�	getPrefix�()Ljava/lang/String;�getNamespaceURI�isSpecified�()Z�getName�()Ljavax/xml/namespace/QName;
                                    ! ��(�)�$�isDefaultNamespaceDeclaration�+�javax/xml/namespace/QName�-���/�xmlns
                                    ! �*�1��2�9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V�
                                    ! getDTDType�5�CDATA�getValue
                                    ! �8�:�9�java/lang/String�;�<�equals�(Ljava/lang/Object;)Z�writeAsEncodedUnicode�(Ljava/io/Writer;)V�
                                    ! Exceptions�A�#javax/xml/stream/XMLStreamException
                                    ! �C�E�D�java/io/Writer�F�G�write�(Ljava/lang/String;)V
                                    ! �C�I�F�J�(I)V
                                    ! ��L�M�N�encode�'(Ljava/lang/String;Z)Ljava/lang/String;
                                    ! �P�R�Q�java/io/IOException�S�!�
                                      getMessage
                                    ! �@�U��G
                                    ! �@�W�X�Y�	initCause�,(Ljava/lang/Throwable;)Ljava/lang/Throwable;�writer�Ljava/io/Writer;�e�Ljava/io/IOException;�e2�%Ljavax/xml/stream/XMLStreamException;�
                                    ! SourceFile�NamespaceImpl.java�!������������	�����
                                    ! ����
                                    ! ���
                                    �����x�����*+·�*,µ�*-µ�*µ�±�����������@��A�
                                    ! �B��C��D����4������������������������	������
                                    ! ����������-�����
                                    ¬�����������H�������������� �!�����/�����*´�°�����������M��������������"�!�����/�����*´�°�����������R��������������#�$�����/�����*´�¬�����������W��������������%�&�����V�����$*¶�'™�»�*Y,.·�0°»�*Y,*´�.·�0°�����������\��]��_��������$������3�!�����-�����4°�����������d��������������6�!�����/�����*´�°�����������i��������������)�$�����A�����*´�Æ�,*´�¶�7š�¬¬�����������n��������������=�>��?�����@����ß�����_+.¶�B*´�Æ�,*´�¶�7š�+:¶�H+*´�¶�B+=¶�H+"¶�H+**´�¶�K¶�B+"¶�H§�M»�@Y,¶�O·�TN-,¶�VW-¿±����F�I�P�����6�
                                    ���v��w��y��z�'�|�-�}�3�~�@��I��J�ƒ�V�„�\�…�^�‡����*����_�������_�Z�[��J��\�]��V��^�_���`����a
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1¼��gnu/xml/stream/XIncludeFilter��$javax/xml/stream/util/ReaderDelegate�XINCLUDE_NS_URI�Ljava/lang/String;�
                                    ConstantValue�	�http://www.w3.org/2001/XInclude�
                                      SHOW_FLAGS�I����systemId�namespaceAware�Z�
                                      validating�expandERefs�href�event�included�result�Lorg/w3c/dom/xpath/XPathResult;�
                                    snapshotIndex�current�Lorg/w3c/dom/Node;�walker�"Lorg/w3c/dom/traversal/TreeWalker;�seen�Ljava/util/HashSet;�backtracking�	lookahead�includedText�Ljava/io/Reader;�buf�[C�len�	inInclude�
                                      inFallback�seenFallback�builder�#Ljavax/xml/parsers/DocumentBuilder;�<init>�:(Ljavax/xml/stream/XMLStreamReader;Ljava/lang/String;ZZZ)V�Code
                                    --- 1,4 ----
                                    ! Êþº¾���1¼��gnu/xml/stream/XIncludeFilter��*javax/xml/stream/util/StreamReaderDelegate�XINCLUDE_NS_URI�Ljava/lang/String;�
                                    ConstantValue�	�http://www.w3.org/2001/XInclude�
                                      SHOW_FLAGS�I����systemId�namespaceAware�Z�
                                      validating�expandERefs�href�event�included�result�Lorg/w3c/dom/xpath/XPathResult;�
                                    snapshotIndex�current�Lorg/w3c/dom/Node;�walker�"Lorg/w3c/dom/traversal/TreeWalker;�seen�Ljava/util/HashSet;�backtracking�	lookahead�includedText�Ljava/io/Reader;�buf�[C�len�	inInclude�
                                      inFallback�seenFallback�builder�#Ljavax/xml/parsers/DocumentBuilder;�<init>�:(Ljavax/xml/stream/XMLStreamReader;Ljava/lang/String;ZZZ)V�Code
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�ý��$gnu/xml/stream/XMLEventAllocatorImpl��java/lang/Object��'javax/xml/stream/util/XMLEventAllocator�entityDeclarations�Ljava/util/Map;�<init>�()V�Code
                                      ��
                                    �	�
                                      ��java/util/HashMap
                                      ��
                                    	�����LineNumberTable�LocalVariableTable�this�&Lgnu/xml/stream/XMLEventAllocatorImpl;�allocate�F(Ljavax/xml/stream/XMLStreamReader;)Ljavax/xml/stream/events/XMLEvent;�
                                    --- 1,4 ----
                                    ! Êþº¾���1�ÿ��$gnu/xml/stream/XMLEventAllocatorImpl��java/lang/Object��'javax/xml/stream/util/XMLEventAllocator�entityDeclarations�Ljava/util/Map;�<init>�()V�Code
                                      ��
                                    �	�
                                      ��java/util/HashMap
                                      ��
                                    	�����LineNumberTable�LocalVariableTable�this�&Lgnu/xml/stream/XMLEventAllocatorImpl;�allocate�F(Ljavax/xml/stream/XMLStreamReader;)Ljavax/xml/stream/events/XMLEvent;�
                                    *************** Exceptions��#javax/xml/stream/XMLStre
                                    *** 9,39 ****
                                      �8�
                                    �<�gnu/xml/stream/DTDImpl
                                      �;�>�	�?�b(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/Object;Ljava/util/List;Ljava/util/List;)V�A�gnu/xml/stream/EndDocumentImpl
                                      �@�C�	�D�(Ljavax/xml/stream/Location;)V��F�G�!�getNamespaceCount�I�gnu/xml/stream/NamespaceImpl��K�L�M�getNamespacePrefix�(I)Ljava/lang/String;��O�P�M�getNamespaceURI
                                    ! �H�R�	�S�B(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;)V�U�W�V�java/util/List�X�Y�add�(Ljava/lang/Object;)Z�[�gnu/xml/stream/EndElementImpl��]�^�_�getName�()Ljavax/xml/namespace/QName;
                                      �Z�a�	�b�I(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/util/List;)V��d�e�)�getLocalName�g�i�h�
                                    java/util/Map�j�k�get�&(Ljava/lang/Object;)Ljava/lang/Object;�m�)javax/xml/stream/events/EntityDeclaration�o�"gnu/xml/stream/EntityReferenceImpl
                                      �n�q�	�r�[(Ljavax/xml/stream/Location;Ljavax/xml/stream/events/EntityDeclaration;Ljava/lang/String;)V�t�(gnu/xml/stream/ProcessingInstructionImpl��v�w�)�getPITarget��y�z�)�	getPIData
                                    ! �s�R�}��~�javax/xml/stream/Location�€�)�getSystemId��‚�ƒ�)�getCharacterEncodingScheme��…�†�)�getEncoding�ˆ�UTF-8��Š�‹�)�
                                    ! getVersion��1.0����‘�isStandalone�()Z��“�”�‘�
                                    standaloneSet�–� gnu/xml/stream/StartDocumentImpl
                                    ! �•�˜�	�™�W(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)V��›�œ�!�getAttributeCount�ž�gnu/xml/stream/AttributeImpl�� �¡�¢�getAttributeName�(I)Ljavax/xml/namespace/QName;��¤�¥�M�getAttributeValue��§�¨�M�getAttributeType��ª�«�¬�isAttributeSpecified�(I)Z
                                    ! ��®�	�¯�^(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/lang/String;Ljava/lang/String;Z)V�±�gnu/xml/stream/StartElementImpl��³�´�µ�getNamespaceContext�(()Ljavax/xml/namespace/NamespaceContext;
                                    ! �°�·�	�¸�(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/util/List;Ljava/util/List;Ljavax/xml/namespace/NamespaceContext;)V�º�java/lang/StringBuilder�¼�Unknown event type: 
                                    ! �¹�¾�	�¿�(Ljava/lang/String;)V
                                    ! �¹�Á�Â�Ã�append�(I)Ljava/lang/StringBuilder;
                                    ! �¹�Å�Æ�)�toString
                                    ! ��¾�reader�"Ljavax/xml/stream/XMLStreamReader;�text�Ljava/lang/String;�
                                      whitespace�Z�ignorableWhitespace�len�I�
                                      namespaces�Ljava/util/List;�	eventType�location�Ljavax/xml/stream/Location;�	notations�entities�i�name�decl�+Ljavax/xml/stream/events/EntityDeclaration;�systemId�encoding�encodingDeclared�
                                      xmlVersion�
                                    xmlStandalone�standaloneDeclared�
                                      attributes�M(Ljavax/xml/stream/XMLStreamReader;Ljavax/xml/stream/util/XMLEventConsumer;)V
                                    ! ��å���ç�é�è�&javax/xml/stream/util/XMLEventConsumer�X�ê�%(Ljavax/xml/stream/events/XMLEvent;)V�consumer�(Ljavax/xml/stream/util/XMLEventConsumer;�newInstance�+()Ljavax/xml/stream/util/XMLEventAllocator;
                                      ��
                                    ! �ñ�ó�ò�java/lang/String�ô�!�length
                                    ! �ñ�ö�÷�ø�charAt�(I)C�c�C�
                                      SourceFile�XMLEventAllocatorImpl.java�!�������������	�
                                    ! �����B�����*·�*»�Y·�µ�±�����������A��C��D��������������������������	���«+¹��6+¹�"�:ª���€��������Ò���½��7���]���x��M��h���³����€���Š���>+¹�&�M*,¶�*>6»�.Y,·�0°+¹�&�M>6»�.Y,·�0°+¹�&�M»�3Y,·�5°+¹�&�M»�8Y·�::	»�8Y·�::
                                      »�;Y,	
                                    ! ·�=°»�@Y·�B°+¹�E�6»�8Y·�::6§�'»�HY+¹�J�+¹�N�·�Q¹�T�W„¡ÿØ»�ZY+¹�\�·�`°+¹�c�:*´�¹�f�À�l:»�nY·�p°»�sY+¹�u�+¹�x�·�{°+¹�&�M>6»�.Y,·�0°¹�|�:
                                    +¹��:Æ�§�6Ç�+¹�„�:Ç�‡:+¹�‰�:Ç�Œ:+¹�Ž�6+¹�’�6»�•Y
                                    ·�—°+¹�E�6»�8Y·�::6§�'»�HY+¹�J�+¹�N�·�Q¹�T�W„¡ÿØ+¹�š�6»�8Y·�::6§�7»�Y+¹�Ÿ�+¹�£�+¹�¦�+¹�©�·�­¹�T�W„¡ÿÈ»�°Y+¹�\�+¹�²�·�¶°»�Y»�¹Y»·�½¶�À¶�Ä·�Ç¿������r�\���N��O��P�P�S�W�T�]�V�`�W�g�X�k�W�o�Z�v�[�x�]�{�^�‚�_�†�^�Š�a�‘�b�œ�d�£�e�¬�f�µ�h�Å�j�Ï�l�×�m�à�n�æ�o�î�p�ö�q�o�n�r�s�t�r#�v+�x9�w;�yI�{O�|U�}[�{_�f�€h�‚k�ƒr�„v�ƒz�†ƒ�‡‹�ˆ—�‰œ�‹¤�Œ©�­�µ�º�‘¾�’Æ�“Î�”Ô�•Ö�–Ø�—Ú�˜Ü�™Þ�šà�”ä�œì�õ�žû�Ÿ� �¡�Ÿ�ž&�¢.�£7�¤=�¥E�¦M�§U�¨]�©h�¥n�¤x�ª~�«„�¬ˆ�­Ž�ª’�¯���L�!��«������«�È�É��W��Ê�Ë��v��Ê�Ë��‘��Ê�Ë��£�"�Ê�Ë�f��Ê�Ë��]��Ì�Í��x��Ì�Í�h��Ì�Í��`��Î�Í��{��Î�Í�k��Î�Í��×�L�Ï�Ð�ì�¦�Ï�Ð��à�C�Ñ�Ò�õ��Ñ�Ò��£�Ó�Ð��›�Ô�Õ��¬��Ö�Ò�	�µ��×�Ò�
                                    ! �ã�.�Ø�Ð�+��Ù�Ë�;��Ú�Û�ƒ�a�Ü�Ë�
                                    ‹�Y�Ý�Ë�—�M�Þ�Í�µ�/�ß�Ë�Æ��à�Í�Î��á�Í�ø�.�Ø�Ð�7�[�â�Ò�:�>�Ø�Ð����ã�����������N�����,*+¶�ä¹�æ�±�������
                                    ! ����¶��·���� ������������È�É�����ë�ì���í�î�����2�����»�Y·�ï°�����������»��������������,�-�����£�����9+¶�ð=>§�++¶�õ6 Ÿ�	Ÿ�
                                    ! Ÿ�
                                    Ÿ�¬„¡ÿÖ¬�����������À��Á�
                                    ! �Ã��Ä�-�Å�/�Á�7�Ç����4����9�������9�Ê�Ë���4�Ï�Ð���0�Ø�Ð����ù�ú���û����ü
                                    \ No newline at end of file
                                    --- 9,39 ----
                                      �8�
                                    �<�gnu/xml/stream/DTDImpl
                                      �;�>�	�?�b(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/Object;Ljava/util/List;Ljava/util/List;)V�A�gnu/xml/stream/EndDocumentImpl
                                      �@�C�	�D�(Ljavax/xml/stream/Location;)V��F�G�!�getNamespaceCount�I�gnu/xml/stream/NamespaceImpl��K�L�M�getNamespacePrefix�(I)Ljava/lang/String;��O�P�M�getNamespaceURI
                                    ! �H�R�	�S�C(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;Z)V�U�W�V�java/util/List�X�Y�add�(Ljava/lang/Object;)Z�[�gnu/xml/stream/EndElementImpl��]�^�_�getName�()Ljavax/xml/namespace/QName;
                                      �Z�a�	�b�I(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/util/List;)V��d�e�)�getLocalName�g�i�h�
                                    java/util/Map�j�k�get�&(Ljava/lang/Object;)Ljava/lang/Object;�m�)javax/xml/stream/events/EntityDeclaration�o�"gnu/xml/stream/EntityReferenceImpl
                                      �n�q�	�r�[(Ljavax/xml/stream/Location;Ljavax/xml/stream/events/EntityDeclaration;Ljava/lang/String;)V�t�(gnu/xml/stream/ProcessingInstructionImpl��v�w�)�getPITarget��y�z�)�	getPIData
                                    ! �s�|�	�}�B(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;)V���€�javax/xml/stream/Location�‚�)�getSystemId��„�…�)�getCharacterEncodingScheme��‡�ˆ�)�getEncoding�Š�UTF-8��Œ��)�
                                    ! getVersion��1.0��‘�’�“�isStandalone�()Z��•�–�“�
                                    standaloneSet�˜� gnu/xml/stream/StartDocumentImpl
                                    ! �—�š�	�›�W(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)V���ž�!�getAttributeCount� �gnu/xml/stream/AttributeImpl��¢�£�¤�getAttributeName�(I)Ljavax/xml/namespace/QName;��¦�§�M�getAttributeValue��©�ª�M�getAttributeType��¬�­�®�isAttributeSpecified�(I)Z
                                    ! �Ÿ�°�	�±�^(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/lang/String;Ljava/lang/String;Z)V�³�gnu/xml/stream/StartElementImpl��µ�¶�·�getNamespaceContext�(()Ljavax/xml/namespace/NamespaceContext;
                                    ! �²�¹�	�º�(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/util/List;Ljava/util/List;Ljavax/xml/namespace/NamespaceContext;)V�¼�java/lang/StringBuilder�¾�Unknown event type: 
                                    ! �»�À�	�Á�(Ljava/lang/String;)V
                                    ! �»�Ã�Ä�Å�append�(I)Ljava/lang/StringBuilder;
                                    ! �»�Ç�È�)�toString
                                    ! ��À�reader�"Ljavax/xml/stream/XMLStreamReader;�text�Ljava/lang/String;�
                                      whitespace�Z�ignorableWhitespace�len�I�
                                      namespaces�Ljava/util/List;�	eventType�location�Ljavax/xml/stream/Location;�	notations�entities�i�name�decl�+Ljavax/xml/stream/events/EntityDeclaration;�systemId�encoding�encodingDeclared�
                                      xmlVersion�
                                    xmlStandalone�standaloneDeclared�
                                      attributes�M(Ljavax/xml/stream/XMLStreamReader;Ljavax/xml/stream/util/XMLEventConsumer;)V
                                    ! ��ç���é�ë�ê�&javax/xml/stream/util/XMLEventConsumer�X�ì�%(Ljavax/xml/stream/events/XMLEvent;)V�consumer�(Ljavax/xml/stream/util/XMLEventConsumer;�newInstance�+()Ljavax/xml/stream/util/XMLEventAllocator;
                                      ��
                                    ! �ó�õ�ô�java/lang/String�ö�!�length
                                    ! �ó�ø�ù�ú�charAt�(I)C�c�C�
                                      SourceFile�XMLEventAllocatorImpl.java�!�������������	�
                                    ! �����B�����*·�*»�Y·�µ�±�����������A��C��D�������������������������‹�	���­+¹��6+¹�"�:ª���‚��������Ó���½��8���]���x��N��i���³����‚���Š���>+¹�&�M*,¶�*>6»�.Y,·�0°+¹�&�M>6»�.Y,·�0°+¹�&�M»�3Y,·�5°+¹�&�M»�8Y·�::	»�8Y·�::
                                      »�;Y,	
                                    ! ·�=°»�@Y·�B°+¹�E�6»�8Y·�::6§�(»�HY+¹�J�+¹�N�·�Q¹�T�W„¡ÿ×»�ZY+¹�\�·�`°+¹�c�:*´�¹�f�À�l:»�nY·�p°»�sY+¹�u�+¹�x�·�{°+¹�&�M>6»�.Y,·�0°¹�~�:
                                    +¹�ƒ�:Æ�§�6Ç�+¹�†�:Ç�‰:+¹�‹�:Ç�Ž:+¹��6+¹�”�6»�—Y
                                    ·�™°+¹�E�6»�8Y·�::6§�(»�HY+¹�J�+¹�N�·�Q¹�T�W„¡ÿ×+¹�œ�6»�8Y·�::6§�7»�ŸY+¹�¡�+¹�¥�+¹�¨�+¹�«�·�¯¹�T�W„¡ÿÈ»�²Y+¹�\�+¹�´�·�¸°»�Y»�»Y½·�¿¶�¶�Æ·�É¿������z�^���N��O��P�P�S�W�T�]�V�`�W�g�X�k�W�o�Z�v�[�x�]�{�^�‚�_�†�^�Š�a�‘�b�œ�d�£�e�¬�f�µ�h�Å�j�Ï�l�×�m�à�n�æ�o�î�p�ö�q�þ�r�o�n�s�t�u �s$�w,�y:�x<�zJ�|P�}V�~\�|`�€g�i�ƒl�„s�…w�„{�‡„�ˆŒ�‰˜�Š�Œ¥�ª�Ž®�¶�‘»�’¿�“Ç�”Ï�•Õ�–×�—Ù�˜Û�™Ý�šß�›á�•å�í�žö�Ÿü� �¡�¢�£� �Ÿ(�¤0�¥9�¦?�§G�¨O�©W�ª_�«j�§p�¦z�¬€�­†�®Š�¯�¬”�±���L�!��­������­�Ê�Ë��W��Ì�Í��v��Ì�Í��‘��Ì�Í��£�"�Ì�Í�g��Ì�Í��]��Î�Ï��x��Î�Ï�i��Î�Ï��`��Ð�Ï��{��Ð�Ï�l��Ð�Ï��×�M�Ñ�Ò�í�§�Ñ�Ò��à�D�Ó�Ô�ö�ž�Ó�Ô��¥�Õ�Ò���Ö�×��¬��Ø�Ô�	�µ��Ù�Ô�
                                    ! �ã�/�Ú�Ò�,��Û�Í�<��Ü�Ý�„�a�Þ�Í�
                                    Œ�Y�ß�Í�˜�M�à�Ï�¶�/�á�Í�Ç��â�Ï�Ï��ã�Ï�ù�/�Ú�Ò�9�[�ä�Ô�<�>�Ú�Ò����å�����������N�����,*+¶�æ¹�è�±�������
                                    ! ����¸��¹���� ������������Ê�Ë�����í�î���ï�ð�����2�����»�Y·�ñ°�����������½��������������,�-�����£�����9+¶�ò=>§�++¶�÷6 Ÿ�	Ÿ�
                                    ! Ÿ�
                                    Ÿ�¬„¡ÿÖ¬�����������Â��Ã�
                                    ! �Å��Æ�-�Ç�/�Ã�7�É����4����9�������9�Ì�Í���4�Ñ�Ò���0�Ú�Ò����û�ü���ý����þ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,9 ****
                                    ! Êþº¾���1�´��"gnu/xml/stream/XMLEventFactoryImpl�� javax/xml/stream/XMLEventFactory�location�Ljavax/xml/stream/Location;�<init>�()V�Code
                                      �����LineNumberTable�LocalVariableTable�this�$Lgnu/xml/stream/XMLEventFactoryImpl;�setLocation�(Ljavax/xml/stream/Location;)V	�����createAttribute�m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/stream/events/Attribute;��gnu/xml/stream/AttributeImpl��javax/xml/namespace/QName
                                      �����9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V��CDATA
                                      �� ��!�^(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/lang/String;Ljava/lang/String;Z)V�prefix�Ljava/lang/String;�namespaceURI�	localName�value�I(Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/stream/events/Attribute;
                                      ��)��*�(Ljava/lang/String;)V�R(Ljavax/xml/namespace/QName;Ljava/lang/String;)Ljavax/xml/stream/events/Attribute;�name�Ljavax/xml/namespace/QName;�createNamespace�7(Ljava/lang/String;)Ljavax/xml/stream/events/Namespace;�1�gnu/xml/stream/NamespaceImpl�3��
                                    ! �0�5��6�B(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;)V�I(Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/stream/events/Namespace;�namespaceUri�createStartElement�k(Ljavax/xml/namespace/QName;Ljava/util/Iterator;Ljava/util/Iterator;)Ljavax/xml/stream/events/StartElement;�<�gnu/xml/stream/StartElementImpl
                                      ��>�?�@�createLinkedList�,(Ljava/util/Iterator;)Ljava/util/LinkedList;
                                      �;�B��C�(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/util/List;Ljava/util/List;Ljavax/xml/namespace/NamespaceContext;)V�
                                      attributes�Ljava/util/Iterator;�
                                    --- 1,9 ----
                                    ! Êþº¾���1�¶��"gnu/xml/stream/XMLEventFactoryImpl�� javax/xml/stream/XMLEventFactory�location�Ljavax/xml/stream/Location;�<init>�()V�Code
                                      �����LineNumberTable�LocalVariableTable�this�$Lgnu/xml/stream/XMLEventFactoryImpl;�setLocation�(Ljavax/xml/stream/Location;)V	�����createAttribute�m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/stream/events/Attribute;��gnu/xml/stream/AttributeImpl��javax/xml/namespace/QName
                                      �����9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V��CDATA
                                      �� ��!�^(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/lang/String;Ljava/lang/String;Z)V�prefix�Ljava/lang/String;�namespaceURI�	localName�value�I(Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/stream/events/Attribute;
                                      ��)��*�(Ljava/lang/String;)V�R(Ljavax/xml/namespace/QName;Ljava/lang/String;)Ljavax/xml/stream/events/Attribute;�name�Ljavax/xml/namespace/QName;�createNamespace�7(Ljava/lang/String;)Ljavax/xml/stream/events/Namespace;�1�gnu/xml/stream/NamespaceImpl�3��
                                    ! �0�5��6�C(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;Z)V�I(Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/stream/events/Namespace;�namespaceUri�createStartElement�k(Ljavax/xml/namespace/QName;Ljava/util/Iterator;Ljava/util/Iterator;)Ljavax/xml/stream/events/StartElement;�<�gnu/xml/stream/StartElementImpl
                                      ��>�?�@�createLinkedList�,(Ljava/util/Iterator;)Ljava/util/LinkedList;
                                      �;�B��C�(Ljavax/xml/stream/Location;Ljavax/xml/namespace/QName;Ljava/util/List;Ljava/util/List;Ljavax/xml/namespace/NamespaceContext;)V�
                                      attributes�Ljava/util/Iterator;�
                                    *************** standalone�Z�M(Ljava/lang/String;Ljav
                                    *** 16,27 ****
                                      �z�}���createEntityReference�h(Ljava/lang/String;Ljavax/xml/stream/events/EntityDeclaration;)Ljavax/xml/stream/events/EntityReference;��"gnu/xml/stream/EntityReferenceImpl
                                      �€�ƒ��„�[(Ljavax/xml/stream/Location;Ljavax/xml/stream/events/EntityDeclaration;Ljava/lang/String;)V�declaration�+Ljavax/xml/stream/events/EntityDeclaration;�
                                    createComment�5(Ljava/lang/String;)Ljavax/xml/stream/events/Comment;�Š�gnu/xml/stream/CommentImpl
                                      �‰�Œ���0(Ljavax/xml/stream/Location;Ljava/lang/String;)V�text�createProcessingInstruction�U(Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/stream/events/ProcessingInstruction;�’�(gnu/xml/stream/ProcessingInstructionImpl
                                    ! �‘�5�target�data�	createDTD�1(Ljava/lang/String;)Ljavax/xml/stream/events/DTD;�™�gnu/xml/stream/DTDImpl
                                    ! �˜�›��œ�b(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/Object;Ljava/util/List;Ljava/util/List;)V�dtd�Ÿ�java/util/LinkedList
                                    ! �ž��¢�¤�£�java/util/Iterator�¥�¦�next�()Ljava/lang/Object;
                                    ! �ž�¨�©�ª�add�(Ljava/lang/Object;)Z�¢�¬�­�®�hasNext�()Z�i�ret�Ljava/util/LinkedList;�
                                      SourceFile�XMLEventFactoryImpl.java�!����������������	���/�����*·�
                                      ±�����������B�
                                    ����������������	���>�����*+µ�±�������
                                      ����J��K�
                                    ����������������������	���y�����»�Y*´�»�Y,-+·�·�°�����������P��Q��R��P�
                                    ���4������������"�#�����$�#�����%�#�����&�#����'��	���b�����»�Y*´�»�Y+·�(,·�°�����������W��X��Y��W�
                                    ��� ������������%�#�����&�#����+��	���W�����»�Y*´�+,·�°�����������^�
                                    ! �_�
                                    �^�
                                    ��� ������������,�-�����&�#���.�/��	���K�����»�0Y*´�2+·�4°�����������d��e��d�
                                    ���������������$�#���.�7��	���L�����»�0Y*´�+,·�4°�����������j�
                                    ��� ������������"�#�����8�#���9�:��	���p�����»�;Y*´�+*,¶�=*-¶�=·�A°�����������q�	�r��s��t��q�
                                    ���*������������,�-�����D�E�����F�E���9�G��	���y�����»�;Y*´�»�Y,-+·�²�H²�H·�A°�����������{��|��}��~����{�
                                    ���*������������"�#�����8�#�����%�#���9�N��	���“�����#»�;Y*´�»�Y,-+·�*¶�=*¶�=·�A°�����������ˆ��‰��Š��‹��Œ��ˆ�
                                    ���>����#�������#�"�#����#�8�#����#�%�#����#�D�E����#�F�E���9�O��	���ž�����$»�;Y*´�»�Y,-+·�*¶�=*¶�=·�A°�����������–��—��˜��™��š� �–�
                                    ���H����$�������$�"�#����$�8�#����$�%�#����$�D�E����$�F�E����$�P�Q���R�S��	���X�����»�TY*´�+*,¶�=·�V°����������� �	�¡�� �
                                    ��� ������������,�-�����F�E���R�Y��	���m�����»�TY*´�»�Y,-+·�²�H·�V°�����������¨��©��ª��¨�
                                    ���*������������"�#�����8�#�����%�#���R�Z��	���z�����»�TY*´�»�Y,-+·�*¶�=·�V°�����������²��³��´��²�
                                    ���4������������"�#�����8�#�����%�#�����F�E���[�\��	���D�����»�]Y*´�+·�_°�����������¹�
                                    ���������������b�#���c�\��	���D�����»�]Y*´�+·�_°�����������¾�
                                    ���������������b�#���d�\��	���D�����»�]Y*´�+·�_°�����������Ã�
                                    ���������������b�#���e�\��	���D�����»�]Y*´�+·�_°�����������È�
                                    ���������������b�#���f�g��	���F�	����»�hY*´�jl·�n°�����������Í�
                                    ����
                                    �������������f�q��	���b�	����»�hY*´�+,·�n°�����������Õ��Ö��Õ�
                                    ���*������������r�#�����s�#�����t�u���f�v��	���X�	����»�hY*´�+,·�n°�����������Ü��Ý��Ü�
                                    ��� ������������r�#�����s�#���f�w��	���O�	����»�hY*´�+l·�n°�����������â��ã��â�
                                    ���������������r�#���x�y��	���6�����»�zY*´�·�|°�����������è�
                                    �������������~���	���L�����»�€Y*´�,+·�‚°�����������î�
                                    ��� ������������,�#�����…�†���‡�ˆ��	���A�����
                                    »�‰Y*´�+·�‹°�����������ó�
                                    �������
                                    �������
                                    �Ž�#������	���L�����»�‘Y*´�+,·�“°�����������ù�
                                    ��� ������������”�#�����•�#���–�—��	���T�����»�˜Y*´�+²�H²�H·�š°�����������þ�
                                    ! �ÿ�
                                    ���þ�
                                    ����������������#����?�@��	���o�����!»�žY·� M§�,+¹�¡�¶�§W+¹�«�šÿï,°���������������
                                    ��� ����!�������!�¯�E����°�±���²����³
                                    \ No newline at end of file
                                    --- 16,29 ----
                                      �z�}���createEntityReference�h(Ljava/lang/String;Ljavax/xml/stream/events/EntityDeclaration;)Ljavax/xml/stream/events/EntityReference;��"gnu/xml/stream/EntityReferenceImpl
                                      �€�ƒ��„�[(Ljavax/xml/stream/Location;Ljavax/xml/stream/events/EntityDeclaration;Ljava/lang/String;)V�declaration�+Ljavax/xml/stream/events/EntityDeclaration;�
                                    createComment�5(Ljava/lang/String;)Ljavax/xml/stream/events/Comment;�Š�gnu/xml/stream/CommentImpl
                                      �‰�Œ���0(Ljavax/xml/stream/Location;Ljava/lang/String;)V�text�createProcessingInstruction�U(Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/stream/events/ProcessingInstruction;�’�(gnu/xml/stream/ProcessingInstructionImpl
                                    ! �‘�”��•�B(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/String;)V�target�data�	createDTD�1(Ljava/lang/String;)Ljavax/xml/stream/events/DTD;�›�gnu/xml/stream/DTDImpl
                                    ! �š���ž�b(Ljavax/xml/stream/Location;Ljava/lang/String;Ljava/lang/Object;Ljava/util/List;Ljava/util/List;)V�dtd�¡�java/util/LinkedList
                                    ! � ��¤�¦�¥�java/util/Iterator�§�¨�next�()Ljava/lang/Object;
                                    ! � �ª�«�¬�add�(Ljava/lang/Object;)Z�¤�®�¯�°�hasNext�()Z�i�ret�Ljava/util/LinkedList;�
                                      SourceFile�XMLEventFactoryImpl.java�!����������������	���/�����*·�
                                      ±�����������B�
                                    ����������������	���>�����*+µ�±�������
                                      ����J��K�
                                    ����������������������	���y�����»�Y*´�»�Y,-+·�·�°�����������P��Q��R��P�
                                    ���4������������"�#�����$�#�����%�#�����&�#����'��	���b�����»�Y*´�»�Y+·�(,·�°�����������W��X��Y��W�
                                    ��� ������������%�#�����&�#����+��	���W�����»�Y*´�+,·�°�����������^�
                                    ! �_�
                                    �^�
                                    ��� ������������,�-�����&�#���.�/��	���T�����»�0Y*´�2+·�4°�����������d��e�
                                    ! �f��g��d�
                                    ���������������$�#���.�7��	���M�����»�0Y*´�+,·�4°�����������l�
                                    ��� ������������"�#�����8�#���9�:��	���p�����»�;Y*´�+*,¶�=*-¶�=·�A°�����������s�	�t��u��v��s�
                                    ���*������������,�-�����D�E�����F�E���9�G��	���y�����»�;Y*´�»�Y,-+·�²�H²�H·�A°�����������}��~����€����}�
                                    ���*������������"�#�����8�#�����%�#���9�N��	���“�����#»�;Y*´�»�Y,-+·�*¶�=*¶�=·�A°�����������Š��‹��Œ����Ž��Š�
                                    ���>����#�������#�"�#����#�8�#����#�%�#����#�D�E����#�F�E���9�O��	���ž�����$»�;Y*´�»�Y,-+·�*¶�=*¶�=·�A°�����������˜��™��š��›��œ� �˜�
                                    ���H����$�������$�"�#����$�8�#����$�%�#����$�D�E����$�F�E����$�P�Q���R�S��	���X�����»�TY*´�+*,¶�=·�V°�����������¢�	�£��¢�
                                    ��� ������������,�-�����F�E���R�Y��	���m�����»�TY*´�»�Y,-+·�²�H·�V°�����������ª��«��¬��ª�
                                    ���*������������"�#�����8�#�����%�#���R�Z��	���z�����»�TY*´�»�Y,-+·�*¶�=·�V°�����������´��µ��¶��´�
                                    ���4������������"�#�����8�#�����%�#�����F�E���[�\��	���D�����»�]Y*´�+·�_°�����������»�
                                    ���������������b�#���c�\��	���D�����»�]Y*´�+·�_°�����������À�
                                    ���������������b�#���d�\��	���D�����»�]Y*´�+·�_°�����������Å�
                                    ���������������b�#���e�\��	���D�����»�]Y*´�+·�_°�����������Ê�
                                    ���������������b�#���f�g��	���F�	����»�hY*´�jl·�n°�����������Ï�
                                    ����
                                    �������������f�q��	���b�	����»�hY*´�+,·�n°�����������×��Ø��×�
                                    ���*������������r�#�����s�#�����t�u���f�v��	���X�	����»�hY*´�+,·�n°�����������Þ��ß��Þ�
                                    ��� ������������r�#�����s�#���f�w��	���O�	����»�hY*´�+l·�n°�����������ä��å��ä�
                                    ���������������r�#���x�y��	���6�����»�zY*´�·�|°�����������ê�
                                    �������������~���	���L�����»�€Y*´�,+·�‚°�����������ð�
                                    ��� ������������,�#�����…�†���‡�ˆ��	���A�����
                                    »�‰Y*´�+·�‹°�����������õ�
                                    �������
                                    �������
                                    �Ž�#������	���L�����»�‘Y*´�+,·�“°�����������û�
                                    ��� ������������–�#�����—�#���˜�™��	���T�����»�šY*´�+²�H²�H·�œ°������������
                                    ! �
                                    ���
                                    ���������������Ÿ�#����?�@��	���o�����!»� Y·�¢M§�,+¹�£�¶�©W+¹�­�šÿï,°������������	��
                                    ! �
                                    ��� ����!�������!�±�E����²�³���´����µ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/XMLStreamWriterImpl.class gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/XMLStreamWriterImpl.class
                                    *** gcc-4.5.2/libjava/classpath/lib/gnu/xml/stream/XMLStreamWriterImpl.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/gnu/xml/stream/XMLStreamWriterImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1¤��"gnu/xml/stream/XMLStreamWriterImpl��java/lang/Object�� javax/xml/stream/XMLStreamWriter�writer�Ljava/io/Writer;�encoding�Ljava/lang/String;�prefixDefaulting�Z�namespaceContext�&Ljavax/xml/namespace/NamespaceContext;�elements�Ljava/util/LinkedList;�inStartElement�emptyElement�
                                      namespaces�&Lorg/xml/sax/helpers/NamespaceSupport;�count�I�xml11�hasXML11RestrictedChars�<init>�&(Ljava/io/Writer;Ljava/lang/String;Z)V�Code
                                      �����()V	�� ��	��"��	��$�	�
                                      	��&���(�java/util/LinkedList
                                    --- 1,4 ----
                                    ! Êþº¾���1©��"gnu/xml/stream/XMLStreamWriterImpl��java/lang/Object�� javax/xml/stream/XMLStreamWriter�writer�Ljava/io/Writer;�encoding�Ljava/lang/String;�prefixDefaulting�Z�namespaceContext�&Ljavax/xml/namespace/NamespaceContext;�elements�Ljava/util/LinkedList;�inStartElement�emptyElement�
                                      namespaces�&Lorg/xml/sax/helpers/NamespaceSupport;�count�I�xml11�hasXML11RestrictedChars�<init>�&(Ljava/io/Writer;Ljava/lang/String;Z)V�Code
                                      �����()V	�� ��	��"��	��$�	�
                                      	��&���(�java/util/LinkedList
                                    *************** isDeclared�›�java/util/HashSet
                                    *** 32,76 ****
                                      �š�
                                      �,�ž�Ÿ� �getPrefixes�()Ljava/util/Enumeration;�¢�¤�£�java/util/Enumeration�¥�F�nextElement�§�©�¨�
                                    java/util/Set�ª�“�add�¢�¬�­�®�hasMoreElements�()Z�°�ns
                                      �T�²�\�³�(I)Ljava/lang/StringBuilder;�§�µ�¶�“�contains�prefixes�Ljava/util/Set;�Ljava/util/Enumeration;�ret�9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
                                    ! ��½�¾�Q�isNCName�À�illegal NCName: �
                                    currentPrefix�	isCurrent�writeEmptyElement
                                    ! ��Å�J�|
                                    ! ��Ç�J�»
                                    ! ��É�J�K�writeEndElement
                                    ! �'�Ì�Í�®�isEmpty�Ï�java/lang/IllegalStateException�Ñ�no matching start element
                                    ! ��Y��[Ljava/lang/String;�element�writeEndDocument
                                    ! ��Ø�Ê��close
                                    ! ��Û�Ü��flush
                                    ! �>�Û�writeAttribute
                                    ! ��
                                    ! ��á�â�Q�isChars�ä�illegal character: 	��æ��
                                    ! ��è�é�ê�writeEncodedWithRestrictedChars�(Ljava/lang/String;Z)V
                                    ! ��ì�í�ê�writeEncoded�value�K(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V�ñ�
                                     is not bound�ó� is bound to prefix �writeNamespace
                                    ! ��ö�÷�|�	setPrefix�ù�xmlns�writeDefaultNamespace�writeComment�ý�illegal XML character: �ÿ�--
                                    ! �j�indexOf�(Ljava/lang/String;)I�illegal comment: �<!--
                                    ! 	
                                    ! �gnu/xml/stream/UnicodeReader
                                    �toCodePointArray�(Ljava/lang/String;)[I
                                    ! �gnu/xml/stream/XMLParser�isXML11RestrictedChar�(I)Z�&#x
                                    ! �java/lang/Integer�toHexString�(I)Ljava/lang/String;�;
                                    ! ! �java/lang/Character"#�toChars�(I)[C
                                    ! �>%�A&�([C)V(�-->�data�seq�[I�i�c�writeProcessingInstruction
                                    ! �0.�|�target3�xml
                                    ! �j56�Q�equalsIgnoreCase8�illegal PITarget: �
                                    ! writeCData;�]]=�illegal CDATA section: ?�	<![CDATA[A�]]>�writeDTDD�
                                      <!DOCTYPE �dtd�writeEntityRef�name�writeStartDocument
                                    ! �JH�|�versionM�1.0O�1.1	�Q��S�UTF-8U�<?xml version="W�" encoding="Y�"?>[�line.separator
                                    ! ]_^�java/lang/System`�…�getProperty�writeCharacters�text�([CII)V
                                    ! �je�c
                                    ! �ga�K�[C�start�len
                                    ! �,�ƒ	�m�
                                    �o�ƒp�$javax/xml/namespace/NamespaceContext�uri
                                    ! �,stu�
                                    declarePrefix�'(Ljava/lang/String;Ljava/lang/String;)Zw�illegal prefix �setDefaultNamespacez� illegal default namespace prefix�setNamespaceContext�)(Ljavax/xml/namespace/NamespaceContext;)V�context�getNamespaceContext�(()Ljavax/xml/namespace/NamespaceContext;�&(Ljava/lang/String;)Ljava/lang/Object;
                                    ! �j‚ƒ„�toCharArray�()[C
                                    ! �>†�Acˆ�<Š�>Œ�&Ž�"�'�inAttr�chars�end�C
                                    ! –—˜�isNameStartCharacter�(IZ)Z
                                    ! š›˜�isNameCharacter
                                    ! ž�isXML11Char
                                    !  ¡�isChar�
                                      SourceFile�XMLStreamWriterImpl.java�!������������	�
                                    ! ���������
                                    ���������������������������������������*��������“�����/*·�*µ�*+µ�!*,µ�#*µ�%*»�'Y·�)µ�**»�,Y·�.µ�/±����1���"����t��i�	�w��x��y��z�#�{�.�|�2���*����/�3�4�����/������/�	�
                                      ����/�����5���6�����7����‰�����;*´�9š�±*´�;™� *´�!/¶�=*´�*¶�CW*´�/¶�G*µ�;*´�!>¶�=*µ�9±����1���*�
                                      ���…��†��‡��‰��Š� �‹�'�Œ�,�Ž�5��:��2�������;�3�4����J�K��6�����L����æ�����f*+·�Nš�»�RY»�TYV·�X+¶�Z¶�^·�b¿*·�c*´�/¶�e*´�!<¶�=*´�!+¶�h*´�*½�jY+S¶�l*µ�9§�M»�LY,·�pN-,¶�sW-¿±����P�S�7��1���6�
                                    ���—��˜� �š�$�›�+��4�ž�<� �K�¡�S�£�T�¥�]�¦�c�§�e�©�2���*����f�3�4�����f�w�
                                      ��T��x�y��]��z�{���J�|��6�����L���Ó�����ù+Æ�#*+·�}š�»�RY»�TY€·�X+¶�Z¶�^·�b¿*,·�Nš�»�RY»�TYV·�X,¶�Z¶�^·�b¿*·�c*´�/¶�e*+¶�‚N-Æ�§�6š�0*´�%™�*+¶�†N§� »�LY»�TY‰·�X+¶�Z‹¶�Z¶�^·�¿*´�!<¶�=Ž-¶�š�*´�!-¶�h*´�!:¶�=*´�!,¶�h*µ�9š�	*-+·�”*´�*½�jY-SY,S¶�l§�N»�LY-·�p:-¶�sW¿±����à�ã�7��1���r����°��±�$�²�,�³�D�µ�H�¶�O�¸�U�¹�`�º�e�¼�l�½�u�¿�†�À�Ž�¿�’�Â�›�Ã�¤�Å�¬�Æ�µ�È�½�É�Â�Ê�Ç�Ì�Í�Ï�ã�Ñ�ä�Ó�î�Ô�õ�Õ�ø�×�2���H����ù�3�4�����ù�—�
                                    --- 32,78 ----
                                      �š�
                                      �,�ž�Ÿ� �getPrefixes�()Ljava/util/Enumeration;�¢�¤�£�java/util/Enumeration�¥�F�nextElement�§�©�¨�
                                    java/util/Set�ª�“�add�¢�¬�­�®�hasMoreElements�()Z�°�ns
                                      �T�²�\�³�(I)Ljava/lang/StringBuilder;�§�µ�¶�“�contains�prefixes�Ljava/util/Set;�Ljava/util/Enumeration;�ret�9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
                                    ! ��½�¾�Q�isPrefix�À�illegal NCName: 
                                    ! ��Â�Ã�Q�isNCName�
                                    currentPrefix�	isCurrent�writeEmptyElement
                                    ! ��È�J�|
                                    ! ��Ê�J�»
                                    ! ��Ì�J�K�writeEndElement
                                    ! �'�Ï�Ð�®�isEmpty�Ò�java/lang/IllegalStateException�Ô�no matching start element
                                    ! ��Y��[Ljava/lang/String;�element�writeEndDocument
                                    ! ��Û�Í��close
                                    ! ��Þ�ß��flush
                                    ! �>�Þ�writeAttribute
                                    ! ��
                                    ! ��ä�å�Q�isChars�ç�illegal character: 	��é��
                                    ! ��ë�ì�í�writeEncodedWithRestrictedChars�(Ljava/lang/String;Z)V
                                    ! ��ï�ð�í�writeEncoded�value�K(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V�ô�
                                     is not bound�ö� is bound to prefix �writeNamespace�ù�xmlns
                                    ! ��û�ü�K�writeDefaultNamespace
                                    ! ��þ�ÿ�|�	setPrefix�writeComment�illegal XML character: �--
                                    ! �j�indexOf�(Ljava/lang/String;)I
                                    ! �illegal comment: �<!--
                                    ! �gnu/xml/stream/UnicodeReader�toCodePointArray�(Ljava/lang/String;)[I
                                    ! �gnu/xml/stream/XMLParser�isXML11RestrictedChar�(I)Z�&#x
                                    ! �java/lang/Integer �toHexString�(I)Ljava/lang/String;"�;
                                    ! $&%�java/lang/Character'(�toChars�(I)[C
                                    ! �>*�A+�([C)V-�-->�data�seq�[I�i�c�writeProcessingInstruction
                                    ! �53�|�target8�xml
                                    ! �j:;�Q�equalsIgnoreCase=�illegal PITarget: �
                                    ! writeCData@�]]B�illegal CDATA section: D�	<![CDATA[F�]]>�writeDTDI�
                                      <!DOCTYPE �dtd�writeEntityRef�name�writeStartDocument
                                    ! �OM�|�versionR�1.0T�1.1	�V��X�UTF-8Z�<?xml version="\�" encoding="^�"?>`�line.separator
                                    ! bdc�java/lang/Systeme�…�getProperty�writeCharacters�text�([CII)V
                                    ! �jj�h
                                    ! �lf�K�[C�start�len
                                    ! �,�ƒ	�r�
                                    �t�ƒu�$javax/xml/namespace/NamespaceContext�uri
                                    ! �,xyz�
                                    declarePrefix�'(Ljava/lang/String;Ljava/lang/String;)Z|�illegal prefix �setDefaultNamespace� illegal default namespace prefix�setNamespaceContext�)(Ljavax/xml/namespace/NamespaceContext;)V�context�getNamespaceContext�(()Ljavax/xml/namespace/NamespaceContext;�&(Ljava/lang/String;)Ljava/lang/Object;
                                    ! �j‡ˆ‰�toCharArray�()[C
                                    ! �>‹�Ah�<�>‘�&“�"•�'�inAttr�chars�end�C
                                    ! ›œ�isNameStartCharacter�(IZ)Z
                                    ! Ÿ �isNameCharacter
                                    ! ¢£�isXML11Char
                                    ! ¥¦�isChar�
                                      SourceFile�XMLStreamWriterImpl.java�!������������	�
                                    ! ���������
                                    ���������������������������������������+��������“�����/*·�*µ�*+µ�!*,µ�#*µ�%*»�'Y·�)µ�**»�,Y·�.µ�/±����1���"����t��i�	�w��x��y��z�#�{�.�|�2���*����/�3�4�����/������/�	�
                                      ����/�����5���6�����7����‰�����;*´�9š�±*´�;™� *´�!/¶�=*´�*¶�CW*´�/¶�G*µ�;*´�!>¶�=*µ�9±����1���*�
                                      ���…��†��‡��‰��Š� �‹�'�Œ�,�Ž�5��:��2�������;�3�4����J�K��6�����L����æ�����f*+·�Nš�»�RY»�TYV·�X+¶�Z¶�^·�b¿*·�c*´�/¶�e*´�!<¶�=*´�!+¶�h*´�*½�jY+S¶�l*µ�9§�M»�LY,·�pN-,¶�sW-¿±����P�S�7��1���6�
                                    ���—��˜� �š�$�›�+��4�ž�<� �K�¡�S�£�T�¥�]�¦�c�§�e�©�2���*����f�3�4�����f�w�
                                      ��T��x�y��]��z�{���J�|��6�����L���Ó�����ù+Æ�#*+·�}š�»�RY»�TY€·�X+¶�Z¶�^·�b¿*,·�Nš�»�RY»�TYV·�X,¶�Z¶�^·�b¿*·�c*´�/¶�e*+¶�‚N-Æ�§�6š�0*´�%™�*+¶�†N§� »�LY»�TY‰·�X+¶�Z‹¶�Z¶�^·�¿*´�!<¶�=Ž-¶�š�*´�!-¶�h*´�!:¶�=*´�!,¶�h*µ�9š�	*-+·�”*´�*½�jY-SY,S¶�l§�N»�LY-·�p:-¶�sW¿±����à�ã�7��1���r����°��±�$�²�,�³�D�µ�H�¶�O�¸�U�¹�`�º�e�¼�l�½�u�¿�†�À�Ž�¿�’�Â�›�Ã�¤�Å�¬�Æ�µ�È�½�É�Â�Ê�Ç�Ì�Í�Ï�ã�Ñ�ä�Ó�î�Ô�õ�Õ�ø�×�2���H����ù�3�4�����ù�—�
                                    *************** SourceFile�XMLStreamWriterImpl.java�!�
                                    *** 79,156 ****
                                      ��`�ƒ�™���ä��x�y��î�
                                      �z�{���ˆ�…�����¾�����P»�šY·�œM*´�/¶�N§�,-¹�¡�¹�¦�W-¹�«�šÿí»�TY¯·�X*Y´�Z`µ�¶�±¶�^N,-¹�´�šÿÞ-°����1���"����á��â��ã� �â�)�ç�D�é�K�å�N�ê�2���4����P�3�4�����P�—�
                                      ���H�·�¸����x�¹��D��º�
                                    ! ���J�»��6�����L���Ç�����ó-Æ�#*-·�}š�»�RY»�TY€·�X-¶�Z¶�^·�b¿+Æ�#*+·�¼š�»�RY»�TY¿·�X+¶�Z¶�^·�b¿*,·�¼š�»�RY»�TY¿·�X,¶�Z¶�^·�b¿*·�c*´�/¶�e*-¶�‚:+¶�6*´�!<¶�=Ž+¶�š�*´�!+¶�h*´�!:¶�=*´�!,¶�h*´�%™�š�	*+-·�”*´�*½�jY+SY,S¶�l*µ�9§�:»�LY·�p:¶�sW¿±����×�Ú�7��1���b����ó��ô�$�õ�0�ö�H�÷�P�ø�h�ú�l�û�s�ý�z�þ�‚�ÿ�‹��”�œ�¥�­�¹�¿�Ò�Ú�Ü�ç�ï�ò�2���R����ó�3�4�����ó�˜�
                                      ����ó�w�
                                      �����
                                    ! ��z�`�Á�
                                    ! ��‚�X�Â���Ü��x�y��ç��z�{���Ã�|��6�����L����R�����*+,¶�Ä*µ�;±����1���������2��� �����3�4������—�
                                      �����w�
                                    ! ���Ã�»��6�����L����]�����
                                    *+,-¶�Æ*µ�;±����1������!�"�#�2���*����
                                    �3�4�����
                                    �˜�
                                      ����
                                    �w�
                                      ����
                                    �—�
                                    ! ���Ã�K��6�����L����G�����*+¶�È*µ�;±����1������(�)�
                                      *�2��������3�4������w�
                                    ! ���Ê���6�����L��������‰*´�*¶�Ë™�
                                    »�ÎYз�Ò¿*·�c*´�*¶�CÀ�ÓL*´�/¶�G*´�!<¶�=*´�!/¶�=+2Æ�!Ž+2¶�š�*´�!+2¶�h*´�!:¶�=*´�!+2¶�h*´�!>¶�=§�L»�LY+·�pM,+¶�sW,¿±���s�v�7��1���F���/�
                                    ! 0�3�4�#5�*7�38�<9�M;�W<�`>�j?�vA�wC�€D�†E�ˆG�2���*����‰�3�4���#�S�Õ�Ô��w��x�y��€��z�{���Ö���6�����L����H�����§�*¶�×*´�*¶�Ë™ÿõ±����1������L�M�L�N�2��������3�4����Ù���6�����L����3�����*¶�Ú±����1���
                                    ! ���S�T�2��������3�4����Ü���6�����L����w�����*´�!¶�ݧ�L»�LY+·�pM,+¶�sW,¿±�����
                                      �7��1������[�
                                    ! ]�_�`�a�c�2��� �����3�4�����x�y����z�{���Þ�|��6�����L���L�����ª*´�9š�»�ÎY·�ß¿*+·�Nš�»�RY»�TYV·�X+¶�Z¶�^·�b¿*,·�àš�»�RY»�TYã·�X,¶�Z¶�^·�b¿*´�! ¶�=*´�!+¶�h*´�!=¶�=*´�!"¶�=*´�å™�*,·�ç§�	*,·�ë*´�!"¶�=§�N»�LY-·�p:-¶�sW¿±���‘�”�7��1���N���h�i�l�m�/n�7o�Oq�Xr�`s�it�ru�yv�‚x�ˆy�”{�•}�Ÿ~�¦�©�2���4����ª�3�4�����ª�w�
                                    ! ����ª�î�
                                      ��•��x�y��Ÿ�
                                    ! �z�{���Þ�ï��6�����L���ƒ����w*´�9š�»�ÎY·�ß¿,Æ�#*,·�}š�»�RY»�TY€·�X,¶�Z¶�^·�b¿+Æ�#*+·�¼š�»�RY»�TY¿·�X+¶�Z¶�^·�b¿*-·�¼š�»�RY»�TY¿·�X-¶�Z¶�^·�b¿*·�àš�»�RY»�TYã·�X¶�Z¶�^·�b¿*,¶�‚:Ç�0*´�%™�*+,·�”§�K»�LY»�TY‰·�X,¶�Zð¶�Z¶�^·�¿+¶�š�%»�LY»�TY‰·�X,¶�Zò¶�Z¶�Z¶�^·�¿*´�! ¶�=Ž+¶�š�*´�!+¶�h*´�!:¶�=*´�!-¶�h*´�!=¶�=*´�!"¶�=*´�å™�
                                    *·�ç§�
                                    ! *·�ë*´�!"¶�=§�:»�LY·�p:¶�sW¿±��[^�7��1���š�&��‡�ˆ�‹�Œ�3�?Ž�W�_�w‘�€’�™”� •�¥—�¬˜�µš�Æ›�Κ�Ò�Ûž�ìŸ�ñ �ùž�ý¡¢¤¥ §(¨1©:ªA«K­R®^°`²k³s´v¶�2���R���w�3�4����w�˜�
                                      ���w�—�
                                      ���w�w�
                                    ! ���w�î�
                                    ! �� �¾�Á�
                                    ! �`��x�y�k��z�{���Þ�»��6�����L�������+*´�9š�»�ÎY·�ß¿+Æ�#*+·�}š�»�RY»�TY€·�X+¶�Z¶�^·�b¿*,·�Nš�»�RY»�TYV·�X,¶�Z¶�^·�b¿*-·�àš�»�RY»�TYã·�X-¶�Z¶�^·�b¿*+¶�‚:Ç�5*´�%™�Ž:*+·�”§� »�LY»�TY‰·�X+¶�Zð¶�Z¶�^·�¿*´�! ¶�=Ž¶�š�*´�!¶�h*´�!:¶�=*´�!,¶�h*´�!=¶�=*´�!"¶�=*´�å™�*-·�ç§�	*-·�ë*´�!"¶�=§�:»�LY·�p:¶�sW¿±���7��1���‚� ��¼�½�À�Á�3Â�;Ã�SÄ�[Å�sÇ�zÈ�Ê�†Ì�ŠÍ�”Ð�¥Ñ�­Ð�±Ó�ºÔ�ÄÖ�Í×�ÖÙ�ÞÚ�çÛ�ðÜ�÷Ý�ßàâäå'æ*è�2���H���+�3�4����+�—�
                                      ���+�w�
                                    ! ���+�î�
                                      ��z�˜�˜�
                                    ! ���x�y���z�{���ô�|��6�����L����ñ�����k*´�9š�»�ÎY·�ß¿*,·�}š�»�RY»�TY€·�X,¶�Z¶�^·�b¿*+·�¼š�0»�RY»�TY¿·�X+¶�Z¶�^·�b¿N»�LY-·�p:-¶�sW¿*+,·�”±���O�O�7��1���2���í�î�ñ�ò�/ó�7ô�Oö�Pø�Zù�aú�dü�jý�2���4����k�3�4�����k�˜�
                                    ! ����k�—�
                                    ! ��P��x�y��Z�
                                    ! �z�{���–�|��6�����L��������u+Ç�ŽL*+,¶�õ*´�! ¶�=*´�!ø¶�hŽ+¶�š�*´�!:¶�=*´�!+¶�h*´�!=¶�=*´�!"¶�=*´�!,¶�h*´�!"¶�=§�N»�LY-·�p:-¶�sW¿±����\�_�7��1���F������
                                    	�
                                    ! ��(
                                    �1�9�B�K�S�_�`�j�q�t�2���4����u�3�4�����u�˜�
                                      ����u�—�
                                      ��`��x�y��j�
                                    ! �z�{���ú�K��6�����L���������7*´�9š�»�ÎY·�ß¿*+·�}š�»�RY»�TY€·�X+¶�Z¶�^·�b¿*Ž+·�”±����1������ �!�"�#�/$�6%�2�������7�3�4�����7�—�
                                    ! ���û�K��6�����L���ž�����Ø+Ç�±*+·�àš�»�RY»�TYü·�X+¶�Z¶�^·�b¿+þ¶�Ÿ�»�RY»�TY·�X+¶�Z¶�^·�b¿*·�c*´�!¶�h*´�å™�V+¸M>§�C,.6¸™�(*´�!»�TY·�X¸¶�Z¶�Z¶�^¶�h§�*´�!¸¶$„,¾¡ÿ½§�*´�!+¶�h*´�!'¶�h§�M»�LY,·�pN-,¶�sW-¿±���Â�Å�7��1���^���*�+�.�
                                    /�%0�/1�H3�L5�V6�]8�b9�g;�l<�t=�™?�¤9�°C�¸D�ÅF�ÆH�ÏI�ÕJ�×L�2���H����Ø�3�4�����Ø)�
                                    ! ��b�N*+��d�I,���l�8-���Æ��x�y��Ï��z�{��.�K��6�����L����?�����*+¶/±����1���
                                    ! ���Q�R�2��������3�4�����1�
                                    ! ��.�|��6�����L���ç����*+·�N™�
                                    2+¶4™�»�RY»�TY7·�X+¶�Z¶�^·�b¿,Æ�#*,·�àš�»�RY»�TYü·�X,¶�Z¶�^·�b¿*·�c*´�!<¶�=*´�!?¶�=*´�!+¶�h,Æ�r*´�! ¶�=*´�å™�Z,¸N6§�E-.6¸™�(*´�!»�TY·�X¸¶�Z¶�Z¶�^¶�h§�*´�!¸¶$„-¾¡ÿº§�*´�!,¶�h*´�!?¶�=*´�!>¶�=§�N»�LY-·�p:-¶�sW¿±����ò�õ�7��1���j���Y�Z�+[�7\�O^�S`�\a�eb�mc�qe�zf�h�†i�Œk�’l�šm�¿o�Ëi�Øs�àu�év�õx�öz�{|
                                    ! ~�2���R����3�4����1�
                                    ! ���)�
                                    ! ��†�R*+��‰�L,���’�9-���ö��x�y���
                                    ! �z�{��9�K��6�����L��������*+·�à™�
                                    ! *´�å™�»�RY»�TYü·�X+¶�Z¶�^·�b¿+:¶�Ÿ�»�RY»�TY<·�X+¶�Z¶�^·�b¿*·�c*´�!>¶�h*´�!+¶�h*´�!@¶�h§�M»�LY,·�pN-,¶�sW-¿±����k�n�7��1���6�
                                    ��…�†�'‡�2ˆ�KŠ�OŒ�Y�aŽ�n�o’�x“�~”�€–�2���*�����3�4�����)�
                                    ! ��o��x�y��x��z�{��B�K��6�����L���������1*´�!C¶�h*´�!+¶�h*´�!>¶�=§�M»�LY,·�pN-,¶�sW-¿±������7��1���"���Ÿ�
                                    !  �¡�£�¥�(¦�.§�0©�2���*����1�3�4�����1E�
                                    ! ����x�y��(��z�{��F�K��6�����L����Ì�����T*+·�Nš�»�RY»�TYV·�X+¶�Z¶�^·�b¿*·�c*´�!&¶�=*´�!+¶�h*´�!;¶�=§�M»�LY,·�pN-,¶�sW-¿±����>�A�7��1���.���°�±� ³�$µ�-¶�5·�A¹�B»�K¼�Q½�S¿�2���*����T�3�4�����TG�
                                    ! ��B��x�y��K��z�{��H���6�����L����5�����*¶I±����1���
                                    ! ���Ä�Å�2��������3�4���H�K��6�����L����?�����*+¶I±����1���
                                    ! �����2��������3�4�����K�
                                    ! ��H�|��6�����L���>�����˜,Ç�
                                    ! LM§�N,¶�™�*µP*´�#L+Ç�RLL,¶�š�N,¶�š�»�RY,·�b¿*´�!T¶�h*´�!,¶�h*´�!V¶�h*´�!+¶�h*´�!X¶�h*´�!Z¸\¶�h§�N»�LY-·�p:-¶�sW¿±��D��‚�7��1���R���Ð�Ñ�Ò�Ó�Ô�Õ�#Ö�'×�;Ø�DÛ�NÜ�VÝ�`Þ�hß�rà�‚â�ƒä�å�”æ�—è�2���4����˜�3�4�����˜�	�
                                    ! ����˜K�
                                      ��ƒ��x�y���
                                    ! �z�{��a�K��6�����L����Õ�����U+Ç�±*+·�àš�»�RY»�TYü·�X+¶�Z¶�^·�b¿*·�c*´�å™�*+·�ç§�*+·�ë§�M»�LY,·�pN-,¶�sW-¿±���?�B�7��1���6�
                                    ��í�î�ñ�
                                    ò�%ô�)ö�0÷�9ù�Bû�Cý�Lþ�Rÿ�T�2���*����U�3�4�����Ub�
                                    ! ��C��x�y��L��z�{��ac��6�����L����[�����*»�jY+·d¶f±����1���
                                    ! �����2���*�����3�4�����bh����i�����j����„�…��6�����L����k�����!*´�/+¶kM,Ç�*´lÆ�*´l+¹n�M,°����1�������	
                                    ���2��� ����!�3�4�����!q�
                                      ��	��˜�
                                    ! ���÷�|��6�����L����ý�����{*,·�}š�»�RY»�TY€·�X,¶�Z¶�^·�b¿*+·�¼š�0»�RY»�TY¿·�X+¶�Z¶�^·�b¿N»�LY-·�p:-¶�sW¿*´�/+,¶rš�»�LY»�TYv·�X+¶�Z¶�^·�¿±����@�@�7��1���.����� �(�@�A�K�R �U"�a#�z$�2���4����{�3�4�����{�˜�
                                    ! ����{q�
                                      ��A��x�y��K�
                                    ! �z�{��x�K��6�����L����}�����9*+·�}š�»�RY»�TY€·�X+¶�Z¶�^·�b¿*´�/Ž+¶rš�»�LYy·�¿±����1������)�*� +�-,�8-�2�������9�3�4�����9q�
                                    ! ��{|��6�����L����>�����*+µl±����1���
                                    ! ���2�3�2��������3�4�����}���~�����/�����*´l°����1������7�2��������3�4���`€��6�����R����=�����	»�RY+·�b¿����1������=�2�������	�3�4�����	G�
                                    ! ���í�ê��6�����7���Ä��	���â+¶N6-¾666§�¶-46<Ÿ�>Ÿ�
                                    ! & �M*´�!-¶…< �*´�!‡¶�h§�!> �*´�!‰¶�h§�
                                    *´�!‹¶�h`66§�N™�G"Ÿ�
                                    ! ' �9*´�!-¶…" �*´�!¶�h§�
                                    *´�!¶�h`66§�„„¡ÿIž�*´�!-¶…±����1���n���I�J�K�L�M�O�P�1R�=S�DT�QU�XV�eX�oY�uZ�{\�^�™_� `�­b�·c�½d�Ãg�ÆM�Ði�Õj�ák�2���\�	���â�3�4�����âb�
                                    ! ����â‘����Ý’h���Úi����Ö“����Ój����½,����ª-”���é�ê��6�����7���³�����ñ+¸N6§�á-.6«���’������"���X���&���K���'���u���<���1���>���>*´�!‡¶�h§�˜*´�!‰¶�h§�‹*´�!‹¶�h§�~™�*´�!¶�h§�m*´�!¶�=§�a™�*´�!¶�h§�P*´�!¶�=§�D¸™�(*´�!»�TY·�X¸¶�Z¶�Z¶�^¶�h§�¸:*´�!¾¶…„-¾¡ÿ±����1���b���t�u�w�x�D{�N|�Q~�[�^�h‚�k„�o…�|‡�…ˆ�ˆŠ�Œ‹�™�¢Ž�¥�­‘�Ò”�Ù•�æu�ð™�2���H����ñ�3�4�����ñb�
                                    ! ����ñ‘����ì*+���è,����Õ-���Ù�
                                    ’h���P�Q��6�����7����µ�����A+Ç�¬+¸M,¾¢�¬,.*´P¸•š�¬>§�,.*´P¸™š�¬„,¾¡ÿë¬����1���2���ž�Ÿ� �¡�¢�£� ¤�"¥�'§�4¨�6¥�?ª�2���*����A�3�4�����Ab�
                                    ! ���6*+��$�,����¾�Q��6�����7����Å�����Q+Ç�¬+¸M,¾¢�¬,.*´P¸•™�,.: �¬>§�,.*´P¸™™�,.: �¬„,¾¡ÿã¬����1���2���°�±�²�³�´�µ�(¶�*·�/¹�Dº�F·�O¼�2���*����Q�3�4�����Qb�
                                    ! ���F*+��,�#,����â�Q��6�����7����ê�����\+Ç�¬+¸M*µ�å*´P™�->§�,.¸œš�¬,.¸™�*µ�å„,¾¡ÿá§�>§�,.¸Ÿš�¬„,¾¡ÿï¬����1���B���Â�Ã�Ä�Å�Æ�È�Ê�%Ë�'Ì�0Í�5È�AÒ�FÔ�OÕ�QÒ�ZØ�2���4����\�3�4�����\b�
                                    ! ���Q*+���%,���C�,�����Q�����¡�����5+Ç�¬+¶M,¾¢�¬>§�,4 ¡�,4¡�¬„,¾¡ÿè¬����1���*�
                                    ! ��Ý�Þ�ß�à�á�â�ä�(å�*â�3ç�2���*����5�3�4�����5b�
                                    ! ���*’h���,���¢���£
                                    \ No newline at end of file
                                    --- 81,158 ----
                                      ��`�ƒ�™���ä��x�y��î�
                                      �z�{���ˆ�…�����¾�����P»�šY·�œM*´�/¶�N§�,-¹�¡�¹�¦�W-¹�«�šÿí»�TY¯·�X*Y´�Z`µ�¶�±¶�^N,-¹�´�šÿÞ-°����1���"����á��â��ã� �â�)�ç�D�é�K�å�N�ê�2���4����P�3�4�����P�—�
                                      ���H�·�¸����x�¹��D��º�
                                    ! ���J�»��6�����L���Ç�����ó-Æ�#*-·�}š�»�RY»�TY€·�X-¶�Z¶�^·�b¿+Æ�#*+·�¼š�»�RY»�TY¿·�X+¶�Z¶�^·�b¿*,·�Áš�»�RY»�TY¿·�X,¶�Z¶�^·�b¿*·�c*´�/¶�e*-¶�‚:+¶�6*´�!<¶�=Ž+¶�š�*´�!+¶�h*´�!:¶�=*´�!,¶�h*´�%™�š�	*+-·�”*´�*½�jY+SY,S¶�l*µ�9§�:»�LY·�p:¶�sW¿±����×�Ú�7��1���b����ó��ô�$�õ�0�ö�H�÷�P�ø�h�ú�l�û�s�ý�z�þ�‚�ÿ�‹��”�œ�¥�­�¹�¿�Ò�Ú�Ü�ç�ï�ò�2���R����ó�3�4�����ó�˜�
                                      ����ó�w�
                                      �����
                                    ! ��z�`��
                                    ! ��‚�X�Å���Ü��x�y��ç��z�{���Æ�|��6�����L����R�����*+,¶�Ç*µ�;±����1���������2��� �����3�4������—�
                                      �����w�
                                    ! ���Æ�»��6�����L����]�����
                                    *+,-¶�É*µ�;±����1������!�"�#�2���*����
                                    �3�4�����
                                    �˜�
                                      ����
                                    �w�
                                      ����
                                    �—�
                                    ! ���Æ�K��6�����L����G�����*+¶�Ë*µ�;±����1������(�)�
                                      *�2��������3�4������w�
                                    ! ���Í���6�����L��������‰*´�*¶�Ι�
                                    »�ÑYÓ·�Õ¿*·�c*´�*¶�CÀ�ÖL*´�/¶�G*´�!<¶�=*´�!/¶�=+2Æ�!Ž+2¶�š�*´�!+2¶�h*´�!:¶�=*´�!+2¶�h*´�!>¶�=§�L»�LY+·�pM,+¶�sW,¿±���s�v�7��1���F���/�
                                    ! 0�3�4�#5�*7�38�<9�M;�W<�`>�j?�vA�wC�€D�†E�ˆG�2���*����‰�3�4���#�S�Ø�×��w��x�y��€��z�{���Ù���6�����L����H�����§�*¶�Ú*´�*¶�Ιÿõ±����1������L�M�L�N�2��������3�4����Ü���6�����L����3�����*¶�ݱ����1���
                                    ! ���S�T�2��������3�4����ß���6�����L����w�����*´�!¶�à§�L»�LY+·�pM,+¶�sW,¿±�����
                                      �7��1������[�
                                    ! ]�_�`�a�c�2��� �����3�4�����x�y����z�{���á�|��6�����L���L�����ª*´�9š�»�ÑY·�â¿*+·�Nš�»�RY»�TYV·�X+¶�Z¶�^·�b¿*,·�ãš�»�RY»�TYæ·�X,¶�Z¶�^·�b¿*´�! ¶�=*´�!+¶�h*´�!=¶�=*´�!"¶�=*´�è™�*,·�ê§�	*,·�î*´�!"¶�=§�N»�LY-·�p:-¶�sW¿±���‘�”�7��1���N���h�i�l�m�/n�7o�Oq�Xr�`s�it�ru�yv�‚x�ˆy�”{�•}�Ÿ~�¦�©�2���4����ª�3�4�����ª�w�
                                    ! ����ª�ñ�
                                      ��•��x�y��Ÿ�
                                    ! �z�{���á�ò��6�����L���ƒ����w*´�9š�»�ÑY·�â¿,Æ�#*,·�}š�»�RY»�TY€·�X,¶�Z¶�^·�b¿+Æ�#*+·�¼š�»�RY»�TY¿·�X+¶�Z¶�^·�b¿*-·�Áš�»�RY»�TY¿·�X-¶�Z¶�^·�b¿*·�ãš�»�RY»�TYæ·�X¶�Z¶�^·�b¿*,¶�‚:Ç�0*´�%™�*+,·�”§�K»�LY»�TY‰·�X,¶�Zó¶�Z¶�^·�¿+¶�š�%»�LY»�TY‰·�X,¶�Zõ¶�Z¶�Z¶�^·�¿*´�! ¶�=Ž+¶�š�*´�!+¶�h*´�!:¶�=*´�!-¶�h*´�!=¶�=*´�!"¶�=*´�è™�
                                    *·�ê§�
                                    ! *·�î*´�!"¶�=§�:»�LY·�p:¶�sW¿±��[^�7��1���š�&��‡�ˆ�‹�Œ�3�?Ž�W�_�w‘�€’�™”� •�¥—�¬˜�µš�Æ›�Κ�Ò�Ûž�ìŸ�ñ �ùž�ý¡¢¤¥ §(¨1©:ªA«K­R®^°`²k³s´v¶�2���R���w�3�4����w�˜�
                                      ���w�—�
                                      ���w�w�
                                    ! ���w�ñ�
                                    ! �� �¾�Ä�
                                    ! �`��x�y�k��z�{���á�»��6�����L�������+*´�9š�»�ÑY·�â¿+Æ�#*+·�}š�»�RY»�TY€·�X+¶�Z¶�^·�b¿*,·�Nš�»�RY»�TYV·�X,¶�Z¶�^·�b¿*-·�ãš�»�RY»�TYæ·�X-¶�Z¶�^·�b¿*+¶�‚:Ç�5*´�%™�Ž:*+·�”§� »�LY»�TY‰·�X+¶�Zó¶�Z¶�^·�¿*´�! ¶�=Ž¶�š�*´�!¶�h*´�!:¶�=*´�!,¶�h*´�!=¶�=*´�!"¶�=*´�è™�*-·�ê§�	*-·�î*´�!"¶�=§�:»�LY·�p:¶�sW¿±���7��1���‚� ��¼�½�À�Á�3Â�;Ã�SÄ�[Å�sÇ�zÈ�Ê�†Ì�ŠÍ�”Ð�¥Ñ�­Ð�±Ó�ºÔ�ÄÖ�Í×�ÖÙ�ÞÚ�çÛ�ðÜ�÷Ý�ßàâäå'æ*è�2���H���+�3�4����+�—�
                                      ���+�w�
                                    ! ���+�ñ�
                                      ��z�˜�˜�
                                    ! ���x�y���z�{���÷�|��6�����L��������‡+Æ�Ž+¶�š�ø+¶�™�	*,¶�ú±*´�9š�»�ÑY·�â¿*,·�}š�»�RY»�TY€·�X,¶�Z¶�^·�b¿*+·�¼š�0»�RY»�TY¿·�X+¶�Z¶�^·�b¿N»�LY-·�p:-¶�sW¿*+,·�”±��+�k�k�7��1���>���í�ï�ð�ò�#ó�+ö�3÷�Kø�Sù�kû�lý�vþ�}ÿ�€�†�2���4����‡�3�4�����‡�˜�
                                    ! ����‡�—�
                                    ! ��l��x�y��v�
                                    ! �z�{���–�|��6�����L��������u+Ç�ŽL*+,¶�ý*´�! ¶�=*´�!ø¶�hŽ+¶�š�*´�!:¶�=*´�!+¶�h*´�!=¶�=*´�!"¶�=*´�!,¶�h*´�!"¶�=§�N»�LY-·�p:-¶�sW¿±����\�_�7��1���F���	�
                                    ! ��
                                    ���(�1�9�B�K�S�_�`�j�q�t �2���4����u�3�4�����u�˜�
                                      ����u�—�
                                      ��`��x�y��j�
                                    ! �z�{���ü�K��6�����L���������7*´�9š�»�ÑY·�â¿*+·�}š�»�RY»�TY€·�X+¶�Z¶�^·�b¿*Ž+·�”±����1������%�&�'�(�/)�6*�2�������7�3�4�����7�—�
                                    ! ����K��6�����L��� �����Ú+Ç�±*+·�ãš�»�RY»�TY·�X+¶�Z¶�^·�b¿+¶Ÿ�»�RY»�TY	·�X+¶�Z¶�^·�b¿*·�c*´�!¶�h*´�è™�V+¸
                                    M>§�C,.6¸™�(*´�!»�TY·�X¸¶�Z!¶�Z¶�^¶�h§�*´�!¸#¶)„,¾¡ÿ½§�*´�!+¶�h*´�!,¶�h§�M»�LY,·�pN-,¶�sW-¿±���Ä�Ç�7��1���^���/�0�3�
                                    4�&5�16�J8�N:�X;�_=�d>�i@�nA�vB�›D�¦>�²H�ºI�ÇK�ÈM�ÑN�×O�ÙQ�2���H����Ú�3�4�����Ú.�
                                    ! ��d�N/0��f�I1���n�82���È��x�y��Ñ��z�{��3�K��6�����L����?�����*+¶4±����1���
                                    ! ���V�W�2��������3�4�����6�
                                    ! ��3�|��6�����L���è����*+·�N™�
                                    7+¶9™�»�RY»�TY<·�X+¶�Z¶�^·�b¿,Æ�$*,·�ãš�»�RY»�TY·�X,¶�Z¶�^·�b¿*·�c*´�!<¶�=*´�!?¶�=*´�!+¶�h,Æ�r*´�! ¶�=*´�è™�Z,¸
                                    N6§�E-.6¸™�(*´�!»�TY·�X¸¶�Z!¶�Z¶�^¶�h§�*´�!¸#¶)„-¾¡ÿº§�*´�!,¶�h*´�!?¶�=*´�!>¶�=§�N»�LY-·�p:-¶�sW¿±����ó�ö�7��1���j���^�_�+`�7a�Pc�Te�]f�fg�nh�rj�{k�‚m�‡n�p�“q�›r�Àt�Ìn�Ùx�áz�ê{�ö}�÷€ƒ�2���R����3�4����6�
                                    ! ���.�
                                    ! ��‡�R/0��Š�L1���“�92���÷��x�y��
                                    ! �z�{��>�K��6�����L��������‚*+·�ã™�
                                    ! *´�è™�»�RY»�TY·�X+¶�Z¶�^·�b¿+?¶Ÿ�»�RY»�TYA·�X+¶�Z¶�^·�b¿*·�c*´�!C¶�h*´�!+¶�h*´�!E¶�h§�M»�LY,·�pN-,¶�sW-¿±����l�o�7��1���6�
                                    ��Š�‹�(Œ�3�L�P‘�Z’�b“�o•�p—�y˜�™�›�2���*����‚�3�4�����‚.�
                                    ! ��p��x�y��y��z�{��G�K��6�����L���������1*´�!H¶�h*´�!+¶�h*´�!>¶�=§�M»�LY,·�pN-,¶�sW-¿±������7��1���"���¤�
                                    ! ¥�¦�¨�ª�(«�.¬�0®�2���*����1�3�4�����1J�
                                    ! ����x�y��(��z�{��K�K��6�����L����Ì�����T*+·�Nš�»�RY»�TYV·�X+¶�Z¶�^·�b¿*·�c*´�!&¶�=*´�!+¶�h*´�!;¶�=§�M»�LY,·�pN-,¶�sW-¿±����>�A�7��1���.���µ�¶� ¸�$º�-»�5¼�A¾�BÀ�KÁ�QÂ�SÄ�2���*����T�3�4�����TL�
                                    ! ��B��x�y��K��z�{��M���6�����L����5�����*¶N±����1���
                                    ! ���É�Ê�2��������3�4���M�K��6�����L����?�����*+¶N±����1���
                                    ! �����2��������3�4�����P�
                                    ! ��M�|��6�����L���>�����˜,Ç�
                                    ! QM§�S,¶�™�*µU*´�#L+Ç�WLQ,¶�š�S,¶�š�»�RY,·�b¿*´�!Y¶�h*´�!,¶�h*´�![¶�h*´�!+¶�h*´�!]¶�h*´�!_¸a¶�h§�N»�LY-·�p:-¶�sW¿±��D��‚�7��1���R���Õ�Ö�×�Ø�Ù�Ú�#Û�'Ü�;Ý�Dà�Ná�Vâ�`ã�hä�rå�‚ç�ƒé�ê�”ë�—í�2���4����˜�3�4�����˜�	�
                                    ! ����˜P�
                                      ��ƒ��x�y���
                                    ! �z�{��f�K��6�����L����Ö�����V+Ç�±*+·�ãš�»�RY»�TY·�X+¶�Z¶�^·�b¿*·�c*´�è™�*+·�ê§�*+·�î§�M»�LY,·�pN-,¶�sW-¿±���@�C�7��1���6�
                                    ��ò�ó�ö�
                                    ÷�&ù�*û�1ü�:þ�C��D�M�S�U�2���*����V�3�4�����Vg�
                                    ! ��D��x�y��M��z�{��fh��6�����L����[�����*»�jY+·i¶k±����1���
                                    ! �����2���*�����3�4�����gm����n�����o����„�…��6�����L����k�����!*´�/+¶pM,Ç�*´qÆ�*´q+¹s�M,°����1�������	���2��� ����!�3�4�����!v�
                                      ��	��˜�
                                    ! ���ÿ�|��6�����L����ý�����{*,·�}š�»�RY»�TY€·�X,¶�Z¶�^·�b¿*+·�¼š�0»�RY»�TY¿·�X+¶�Z¶�^·�b¿N»�LY-·�p:-¶�sW¿*´�/+,¶wš�»�LY»�TY{·�X+¶�Z¶�^·�¿±����@�@�7��1���.����� �(�@!�A#�K$�R%�U'�a(�z)�2���4����{�3�4�����{�˜�
                                    ! ����{v�
                                      ��A��x�y��K�
                                    ! �z�{��}�K��6�����L����}�����9*+·�}š�»�RY»�TY€·�X+¶�Z¶�^·�b¿*´�/Ž+¶wš�»�LY~·�¿±����1������.�/� 0�-1�82�2�������9�3�4�����9v�
                                    ! ��€��6�����L����>�����*+µq±����1���
                                    ! ���7�8�2��������3�4�����‚���ƒ„�����/�����*´q°����1������<�2��������3�4���e…��6�����R����=�����	»�RY+·�b¿����1������B�2�������	�3�4�����	L�
                                    ! ���ð�í��6�����7���Ä��	���â+¶†N6-¾666§�¶-46<Ÿ�>Ÿ�
                                    ! & �M*´�!-¶Š< �*´�!Œ¶�h§�!> �*´�!Ž¶�h§�
                                    *´�!¶�h`66§�N™�G"Ÿ�
                                    ! ' �9*´�!-¶Š" �*´�!’¶�h§�
                                    *´�!”¶�h`66§�„„¡ÿIž�*´�!-¶Š±����1���n���N�O�P�Q�R�T�U�1W�=X�DY�QZ�X[�e]�o^�u_�{a�c�™d� e�­g�·h�½i�Ãl�ÆR�Ðn�Õo�áp�2���\�	���â�3�4�����âg�
                                    ! ����â–����Ý—m���Ún����Ö˜����Óo����½1����ª2™���ì�í��6�����7���³�����ñ+¸
                                    N6§�á-.6«���’������"���X���&���K���'���u���<���1���>���>*´�!Œ¶�h§�˜*´�!Ž¶�h§�‹*´�!¶�h§�~™�*´�!’¶�h§�m*´�!¶�=§�a™�*´�!”¶�h§�P*´�!¶�=§�D¸™�(*´�!»�TY·�X¸¶�Z!¶�Z¶�^¶�h§�¸#:*´�!¾¶Š„-¾¡ÿ±����1���b���y�z�|�}�D€�N�Qƒ�[„�^†�h‡�k‰�oŠ�|Œ�…�ˆ�Œ�™’�¢“�¥•�­–�Ò™�Ùš�æz�ðž�2���H����ñ�3�4�����ñg�
                                    ! ����ñ–����ì/0���è1����Õ2���Ù�
                                    —m���P�Q��6�����7����µ�����A+Ç�¬+¸
                                    M,¾¢�¬,.*´U¸šš�¬>§�,.*´U¸žš�¬„,¾¡ÿë¬����1���2���£�¤�¥�¦�§�¨� ©�"ª�'¬�4­�6ª�?¯�2���*����A�3�4�����Ag�
                                    ! ���6/0��$�1����¾�Q��6�����7����M�����Ž+¶�™�¬*+·�Á¬����1������µ�	¶�¸�2��������3�4�����g�
                                    ! ���Ã�Q��6�����7����Å�����Q+Ç�¬+¸
                                    M,¾¢�¬,.*´U¸š™�,.: �¬>§�,.*´U¸ž™�,.: �¬„,¾¡ÿã¬����1���2���¾�¿�À�Á�Â�Ã�(Ä�*Å�/Ç�DÈ�FÅ�OÊ�2���*����Q�3�4�����Qg�
                                    ! ���F/0��,�#1����å�Q��6�����7����ê�����\+Ç�¬+¸
                                    M*µ�è*´U™�->§�,.¸¡š�¬,.¸™�*µ�è„,¾¡ÿá§�>§�,.¸¤š�¬„,¾¡ÿï¬����1���B���Ð�Ñ�Ò�Ó�Ô�Ö�Ø�%Ù�'Ú�0Û�5Ö�Aà�Fâ�Oã�Qà�Zæ�2���4����\�3�4�����\g�
                                    ! ���Q/0���%1���C�1�����Q�����¡�����5+Ç�¬+¶†M,¾¢�¬>§�,4 ¡�,4¡�¬„,¾¡ÿè¬����1���*�
                                    ! ��ë�ì�í�î�ï�ð�ò�(ó�*ð�3õ�2���*����5�3�4�����5g�
                                    ! ���*—m���1���§���¨
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/java/security/VMAccessController.class gcc-4.6.0/libjava/classpath/lib/java/security/VMAccessController.class
                                    *** gcc-4.5.2/libjava/classpath/lib/java/security/VMAccessController.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/java/security/VMAccessController.class	Thu Dec 16 19:48:07 2010
                                    ***************
                                    *** 1,10 ****
                                    ! Êþº¾���1�ð�� java/security/VMAccessController��java/lang/Object�DEFAULT_CONTEXT�$Ljava/security/AccessControlContext;�DEBUG�Z�<clinit>�()V�Code�
                                    �java/security/CodeSource
                                      �����<init>�2(Ljava/net/URL;[Ljava/security/cert/Certificate;)V��java/security/Permissions
                                      ����
                                      ��java/security/AllPermission
                                      ��
                                      �����add�(Ljava/security/Permission;)V��java/security/ProtectionDomain
                                    ! �� ��!�A(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V�#�"java/security/AccessControlContext
                                      �"�%��&�$([Ljava/security/ProtectionDomain;)V	��(��	�*�,�+�gnu/classpath/Configuration��	��,�LineNumberTable�LocalVariableTable�source�Ljava/security/CodeSource;�permissions�Ljava/security/Permissions;�domain�![Ljava/security/ProtectionDomain;�debug�(Ljava/lang/String;)V	�9�;�:�java/lang/System�<�=�err�Ljava/io/PrintStream;�?�>>> VMAccessController: 
                                      �A�C�B�java/io/PrintStream�D�7�print
                                      �A�F�G�7�println�msg�Ljava/lang/String;
                                    --- 1,10 ----
                                    ! Êþº¾���1�ò�� java/security/VMAccessController��java/lang/Object�DEFAULT_CONTEXT�$Ljava/security/AccessControlContext;�DEBUG�Z�<clinit>�()V�Code�
                                    �java/security/CodeSource
                                      �����<init>�2(Ljava/net/URL;[Ljava/security/cert/Certificate;)V��java/security/Permissions
                                      ����
                                      ��java/security/AllPermission
                                      ��
                                      �����add�(Ljava/security/Permission;)V��java/security/ProtectionDomain
                                    ! �� ��!�r(Ljava/security/CodeSource;Ljava/security/PermissionCollection;Ljava/lang/ClassLoader;[Ljava/security/Principal;)V�#�"java/security/AccessControlContext
                                      �"�%��&�$([Ljava/security/ProtectionDomain;)V	��(��	�*�,�+�gnu/classpath/Configuration��	��,�LineNumberTable�LocalVariableTable�source�Ljava/security/CodeSource;�permissions�Ljava/security/Permissions;�domain�![Ljava/security/ProtectionDomain;�debug�(Ljava/lang/String;)V	�9�;�:�java/lang/System�<�=�err�Ljava/io/PrintStream;�?�>>> VMAccessController: 
                                      �A�C�B�java/io/PrintStream�D�7�print
                                      �A�F�G�7�println�msg�Ljava/lang/String;
                                    *************** getContext�&()Ljava/security/AccessCont
                                    *** 25,34 ****
                                      ���Ž��getStack�()[Ljava/lang/Object;�‘�[Ljava/lang/Class;�“�java/lang/Boolean
                                      �’�•�–�z�booleanValue�˜�got trace of length 
                                      �U�š�]�›�(I)Ljava/lang/StringBuilder;��java/util/HashSet
                                    ! �œ�� �	checking �¢�	loader = 
                                    ! �¤�¦�¥�java/lang/Class�§�¨�getClassLoader�()Ljava/lang/ClassLoader;
                                      �j�ª�«�~�getFirst
                                    ! �¤�­�®�¯�getProtectionDomain�"()Ljava/security/ProtectionDomain;
                                      �œ�±�²�³�contains�(Ljava/lang/Object;)Z
                                      �œ�µ��³
                                      ��·�¸�¹�
                                    getCodeSource�()Ljava/security/CodeSource;
                                    --- 25,34 ----
                                      ���Ž��getStack�()[Ljava/lang/Object;�‘�[Ljava/lang/Class;�“�java/lang/Boolean
                                      �’�•�–�z�booleanValue�˜�got trace of length 
                                      �U�š�]�›�(I)Ljava/lang/StringBuilder;��java/util/HashSet
                                    ! �œ�
                                    ! � �¢�¡�java/lang/Class�£�¤�getClassLoader�()Ljava/lang/ClassLoader;�¦�	checking �¨�	loader = 
                                      �j�ª�«�~�getFirst
                                    ! � �­�®�¯�getProtectionDomain�"()Ljava/security/ProtectionDomain;
                                      �œ�±�²�³�contains�(Ljava/lang/Object;)Z
                                      �œ�µ��³
                                      ��·�¸�¹�
                                    getCodeSource�()Ljava/security/CodeSource;
                                    *************** getContext�&()Ljava/security/AccessCont
                                    *** 39,51 ****
                                      �"�Ô�Õ�Ö�getProtectionDomains�#()[Ljava/security/ProtectionDomain;
                                      �Î�Ø�Ù�Ú�combine�e([Ljava/security/ProtectionDomain;[Ljava/security/ProtectionDomain;)[Ljava/security/ProtectionDomain;
                                      �"�Ü��Ý�f([Ljava/security/ProtectionDomain;Ljava/security/AccessControlContext;Ljava/security/DomainCombiner;)V�[Ljava/lang/Object;�classes�
                                    ! privileged�domains�Ljava/util/HashSet;�seenDomains�context�i�I�clazz�Ljava/lang/Class;�l� Ljava/security/ProtectionDomain;�result�dc�Ljava/security/DomainCombiner;�
                                      SourceFile�VMAccessController.java�0������������������	�
                                    ! �����ž�����@»�Y·�K»�Y·�L+»�Y·�¶�½�Y»�Y*+·�SM»�"Y,·�$³�'²�)³�-±����.���&�	���7�
                                    ! �8��9��:�#�;�-�:�.�=�9�@�?�*�/��� ��
                                    ! �/�0�1����'�2�3��.��4�5��
                                      �6�7�����B�����²�8>¶�@²�8*¶�E±����.�������C��D��E�/��������H�I�����
                                      �����/�����*·�J±����.�������J�/��������K�L����M�N�����‡�����-¸�OL+Ç�±²�-™�»�UYW·�Y*¶�[¶�_¸�c+¶�eM,*¶�i±����.���"����\��]��^�	�`��a�"�c�'�d�,�e�/��� ����-�o�����)�p�q��'��r�s���t�
                                    ! ����������4¸�OK*Ç�±²�-™�u¸�c*¶�eL+¶�wš�+¶�{W§�²�-™�¸�c±����.���.����p��q��r�	�t��u��y��z� �|�(�~�.�€�3�‚�/������0�p�q�����r�s����‚����÷��
                                    ! ��¸�OK*Ç�²�'°*¶�ƒ™�²�-™�†¸�c²�'°*¶�ˆ¸�ŒL+2À�M+2À�’¶�”>²�-™�»�UY—·�Y,¾¶�™¶�_¸�c»�œY·�ž:»�œY·�ž::6§�,2:²�-™�.»�UYŸ·�Y¶�[¶�_¸�c»�UY¡·�Y¶�£¶�[¶�_¸�c™�$,¾d �*¶�e:		¶�wš�
                                    	¶�©À�":¶�¬:		Ç�§�/	¶�°™�§�"	¶�´W»�Y	¶�¶	¶�º·�¶�´W„,¾¡ÿb²�-™�»�UY¾·�Y¶�[¶�_¸�c¶�À½�¶�ÄÀ�È:Æ�:¶�É:Ç�»�"Y²�Ͷ�Ó¶�×·�$:§� »�"Y·�Û:§�»�"Y·�$:*¶�ˆ°����.���Î�3�������‘��™��›��œ���"� �'�¢�+�£�2�¤�<�¦�B�§�V�©�_�ª�h�«�k�²�q�´�w�¶�}�¸�‘�º�¨�½�µ�Â�»�Ã�Ã�Ä�Í�È�Ô�Ê�Ù�Ë�Ü�Ì�æ�Í�é�Î�ñ�Ò�ü�Ó�Ò�²�Ö�×,�Ú<�Ù>�ÜC�ÞJ�âO�ãS�äV�å]�ä`�ãh�êz�î…�ðŠ�ñ�/���„�
                                    �‰�p�q���+b�r�Þ��2[�ß�‘��<Q�à���_.�á�â��h%�ã�â��k"�ä���n�¤�å�æ��w�‘�ç�è��»��é�s�	�Ô�4�4�ê�	>�O�ë�5�J�0�ì�í�
                                    ! �Ž�����î����ï
                                    \ No newline at end of file
                                    --- 39,61 ----
                                      �"�Ô�Õ�Ö�getProtectionDomains�#()[Ljava/security/ProtectionDomain;
                                      �Î�Ø�Ù�Ú�combine�e([Ljava/security/ProtectionDomain;[Ljava/security/ProtectionDomain;)[Ljava/security/ProtectionDomain;
                                      �"�Ü��Ý�f([Ljava/security/ProtectionDomain;Ljava/security/AccessControlContext;Ljava/security/DomainCombiner;)V�[Ljava/lang/Object;�classes�
                                    ! privileged�domains�Ljava/util/HashSet;�seenDomains�context�i�I�clazz�Ljava/lang/Class;�loader�Ljava/lang/ClassLoader;�l� Ljava/security/ProtectionDomain;�result�dc�Ljava/security/DomainCombiner;�
                                      SourceFile�VMAccessController.java�0������������������	�
                                    ! ����� �	����B»�Y·�K»�Y·�L+»�Y·�¶�½�Y»�Y*+·�SM»�"Y,·�$³�'²�)³�-±����.���&�	���7�
                                    ! �8��9��:�#�;�/�:�0�=�;�@�A�*�/��� ��
                                    ! �1�0�1����)�2�3��0��4�5��
                                      �6�7�����B�����²�8>¶�@²�8*¶�E±����.�������C��D��E�/��������H�I�����
                                      �����/�����*·�J±����.�������J�/��������K�L����M�N�����‡�����-¸�OL+Ç�±²�-™�»�UYW·�Y*¶�[¶�_¸�c+¶�eM,*¶�i±����.���"����\��]��^�	�`��a�"�c�'�d�,�e�/��� ����-�o�����)�p�q��'��r�s���t�
                                    ! ����������4¸�OK*Ç�±²�-™�u¸�c*¶�eL+¶�wš�+¶�{W§�²�-™�¸�c±����.���.����p��q��r�	�t��u��y��z� �|�(�~�.�€�3�‚�/������0�p�q�����r�s����‚��������”¸�OK*Ç�²�'°*¶�ƒ™�²�-™�†¸�c²�'°*¶�ˆ¸�ŒL+2À�M+2À�’¶�”>²�-™�»�UY—·�Y,¾¶�™¶�_¸�c»�œY·�ž:»�œY·�ž::6§�¤,2:¶�Ÿ:	²�-™�+»�UY¥·�Y¶�[¶�_¸�c»�UY§·�Y	¶�[¶�_¸�c™�$,¾d �*¶�e:
                                    ! 
                                    ! ¶�wš�
                                    
                                    ! ¶�©À�":¶�¬:
                                    ! 
                                    ! Ç�§�2
                                    ! ¶�°™�§�%
                                    ! ¶�´W»�Y
                                    ! ¶�¶
                                    ! ¶�º	·�¶�´W„,¾¡ÿ[²�-™�»�UY¾·�Y¶�[¶�_¸�c¶�À½�¶�ÄÀ�È:Æ�:¶�É:Ç�»�"Y²�Ͷ�Ó¶�×·�$:§� »�"Y·�Û:§�»�"Y·�$:*¶�ˆ°����.���Ö�5�������‘��™��›��œ���"� �'�¢�+�£�2�¤�<�¦�B�§�V�©�_�ª�h�«�k�²�q�´�w�µ�~�·�„�¹�˜�»�¬�¾�¹�Ã�¿�Ä�Ç�Å�Ñ�É�Ø�Ë�Ý�Ì�à�Í�ê�Î�í�Ï�õ�Ó��Ô�Õ�Ó�²�Ø�Ù3�ÜC�ÛE�ÞJ�àQ�äV�åZ�æ]�çd�æg�åo�ì�ðŒ�ò‘�ó�/���Ž���p�q���+i�r�Þ��2b�ß�‘��<X�à���_5�á�â��h,�ã�â��k)�ä���n�«�å�æ��w�˜�ç�è��~�‘�é�ê�	�¿��ë�s�
                                    ! �Ø�7�4�ì�
                                    ! E�O�í�5�Q�0�î�ï�
                                    ! �Ž�����ð����ñ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/java/util/Scanner.class gcc-4.6.0/libjava/classpath/lib/java/util/Scanner.class
                                    *** gcc-4.5.2/libjava/classpath/lib/java/util/Scanner.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/java/util/Scanner.class	Tue Oct 12 15:55:12 2010
                                    *************** Y·¾¿*°����o���6�
                                    ��å�è�é�"ë�(ì�
                                    *** 203,212 ****
                                      ����o���"����
                                      ���*	�3�7�@
                                    �p���*����B�y�z�����BR�D��@�8S��
                                      �8T���ú�l��\���a�����%+Æ�"+¶3ž�»YU·$+¶'W¶'¶+°+°����o��������#�p�������%�y�z�����%$���@A��s����
                                    ! �\��¶����J*´�´™�»YY·2¿*,Æ�,§�*´� ·[™�q*´�À*´�¬¶^Ÿ�E²a»Y*´�À¸ ·$e¶'*´�¬¶^¶×g¶'*´�À*´�¬¶^d¶×i¶'¶+¶k™�**´�ºµ�¢*µ�¸**´�Ƶ�®*´�¶°>:*´�¢'¤�0*Y´�È*´�¢`µ�È**´�”*´�¢¶;µ�”*µ�¢*,*´�”¶�¨µ�¬*´�”¶3*´�¢d6d¢�*·�ë*´�¬*´�¢¶p>**´�¬*´�¢··>*µ�Ê™�Š*´�Ι�*´�¬¶»6§�*´�¬¶r6*´�”*´�¢¶3:**´�¬¶»µ�º™�**´�ºµ�¢§�*µ�¶*µ�¸*,¶uµ�¼**´�¬¶xµ�¾**´�¬¶^µ�À**´�¬¶{µ�Â**´�¬¶~µ�ħ�~*´�¬¶™�l*´�”*´�¢¶;:**´�”¶3µ�º™�**´�ºµ�¢§�*µ�¶*µ�¸*,¶uµ�¼**´�¬¶xµ�¾**´�¬¶^µ�À**´�¬¶{µ�Â**´�¬¶~µ�ħ�»
                                    ! Y·¾¿™�!**´�¬¶„µ�®**´�®Æ�§�µ�Ч�**´�¬¶„µ�Æ**´�ε�Ì*µ�ΰ����o���@��3�5�7�%9�3;�J<�Z=�^>�e=�i>�r;�u@�yB�C�†D�ŽF�“I�•M�˜O�¢S�¯T�¾U�ÃV�ÏY�ÝZ�ä\�è^�ô`bdfhl'n6oAtEvPzV{[|c~ny€„’ƒœ†©‡´ˆ¸ŠÃŽÉÎÖ’á“ì”÷•œ
                                    ¢¤¦/ª:­B®G°�p���R���J�y�z����JR�D���J�"��•µ¿�D��Ým‡�,��ˆ�,�'�kˆ�,��˜²‰����í�[��\��Ã����SN:*´�‰Æ�f*´�‰*´�¤¶Š<œ�±*´�¦Æ�»�‘Y*´�¤*´�¦·ŽM§�»�‘Y*´�¤·‘M*Y´�”»Z_¸Ò·$,¶'¶+µ�”§�å:*µ�‡§�Ú*´�°Æ�X踔N*µ�Ê*´�°-¹š�<œ�±*µ�Ê»�‘Y-¶Ÿ·£M*Y´�”»Z_¸Ò·$,¶'¶+µ�”§�‰:*µ�‡§�~*´�²Æ�w踦:*µ�Ê*´�²¹«�<*µ�Êœ�±*´�¦Æ�»�‘Y¶®*´�¦·ŽM§�»�‘Y¶®·‘M*Y´�”»Z_¸Ò·$,¶'¶+µ�”§�:*µ�‡*´�¬*´�”¶�öW±����d��a�d�v�‘�À�’�½�À�Ò�ô>�õ;>��o���š�&��¾�¿�Á�Å�Æ�È�Ê�$Ì�9Ð�GÒ�dÔ�fÖ�oÙ�vÝ�}Þ�‚ß�à�‘â�’ä�—å�£æ�Àè�Âê�Ëí�Òñ�Úò�ßó�ëô�ðõ�ô÷�õù�üûÿ!>@F	R
                                    ! �p���Ž���S�y�z����L±�,���3±�,��ë�S±�,��6����G����£������!����Q²³��N´µ��f�¶�(��Â�¶�(�@�¶�(��¹º��\���Â�����H*´�”¶36§�!*·�ë*´�”¶3 �§�*+¶p>*µ�Ê+¶™�*´�‰Çÿ×*´�°ÇÿÐ*´�²Çÿɬ����o���.����	�#�$�&�(�%)�*�1 �?!�F+�p���4����H�y�z�����H·�<����H¸�,����H¿�D��	�?T�,����\���ò�����\:*´�¢6*´�¬:*+,¶�¨µ�¬ž�'*´�¬¶¹W*´�¬¶½W*´�¬*´�¢*´�¢`¶°W*+·>:*µ�¬*µ�¢*µ�Ì°����o���6�
                                    ��@�A�	B�D�E�G�%H�.I�@K�HL�NN�TO�YQ�p���H����\�y�z�����\�"����\$�����\7�,���Y8���	�SÀ�,���MÁ�<��EF��\���ñ�����Q*´�¬:*´�”:**´� ·>N*+-¶�¨µ�¬*-µ�”*´�¢6*µ�¢*+·>:*µ�¢*µ�”*µ�¬*µ�Ì°����o���6�
                                    ��f�h�k�l�m�$n�*o�/p�7q�=s�Ct�Iu�Nw�p���R����Q�y�z�����Q�"����QR�D���;����KÁ�<��7�Â����EÃ���*�'Ä�,��WX��\���Î�����J**´� ·Å:*·È:»ÊY·Ì:°W§�W»OY»Y
                                    ·$¶'¶'-¶'¶+·N¿���"�#Í��"�'��o�������‘�’� “�#•�'˜�(›�p���>����J�y�z�����JY�,����JR�D����JÏ��� �8Ð���?T���]^��s����O�\���‘�����?**´� ·ÅM,ѶÓ™�¬,Ö¶Ó™�¬»OY»Y
                                    ·$,¶'¶'¶+·N¿����o������­�
                                    ! ®�°�²� ´�"¸�p��� ����?�y�z�����?R�D��
                                    ! �5T���de��s����O�\���º�����@**´� ·Å:*·È:¸Ø>¬W§�W»OY»Y
                                    ·$¶'¶'¶+·N¿����Í���!��o������Ì�Ð�Ñ�Ò�Ô�!×�"Ú�p���4����@�y�z�����@Y�,����@R�D���8Þ���5T���ij��s����O�\���º�����R**´� ·Å:*
                                    ! ·È:¸ßI»Y·å(¶æ¶+¶7™�(¯W»OY»Y
                                    ·$¶'¶'¶+·N¿���2�3��o������ð�ô�õ�ö�1ø�3û�4þ�p���*����R�y�z�����RR�D���8é���GT���qr��s����O�\���º�����@**´� ·Å:*·È:¸ê>¬W§�W»OY»Y
                                    ·$¶'¶'¶+·N¿����Í���!��o�����������!�"�p���4����@�y�z�����@Y�,����@R�D���8�,���5T�����\���V�����M*²�m¸�]·ÅM,°����o������+�,�-�p��� �����y�z�����R�D���8���yz��s����O�\���º�����@**´� ·Å:*·È:¸ðB!­W§�W»OY»Y
                                    ·$¶'
                                      ¶'¶+·N¿����Í���!��o������>�B�C�D�F�!I�"L�p���4����@�y�z�����@Y�,����@R�D���8ö���5T���€��s����O�\���Ã�����A**´� ·Å:*·È:¸÷>¬W§�W»OY»Y
                                    ·$¶'ý¶'¶+·N¿����Í���!��o���&�	��b�f�g�h�j�!m�"p�4q�=p�p���4����A�y�z�����AY�,����AR�D���8ÿ���6T���ÇF��\���~�����*´� :*+¶W*+·>N*¶W-°����o������ƒ�„�†�ˆ�Š�p���4�����y�z�������"����R�D���	8�����"��]B��\���ü�����v*´�¸™�p*´�¼+¶u �e*´�¾*´�¬¶x �W*´�Â*´�¬¶{ �I*´�Ä*´�¬¶~ �;*´�À*´�¬¶^Ÿ�+*´�¬¶^*´�Àd'd=ž�¢�**´�¬¶^µ�À¬¬¬����o���N���—�˜�™� š�.›�<�J �Q¡�U �V¡�Y �ZŸ�[¢�e¤�f¥�m¤�p¦�rª�t¬�p��� ����v�y�z�����v�"��[��,�Aˆ��\���%�����*¶°����o��������p���������	���
                                    --- 203,212 ----
                                      ����o���"����
                                      ���*	�3�7�@
                                    �p���*����B�y�z�����BR�D��@�8S��
                                      �8T���ú�l��\���a�����%+Æ�"+¶3ž�»YU·$+¶'W¶'¶+°+°����o��������#�p�������%�y�z�����%$���@A��s����
                                    ! �\��É����U*´�´™�»YY·2¿*,Æ�,§�*´� ·[™�q*´�À*´�¬¶^Ÿ�E²a»Y*´�À¸ ·$e¶'*´�¬¶^¶×g¶'*´�À*´�¬¶^d¶×i¶'¶+¶k™�**´�ºµ�¢*µ�¸**´�Ƶ�®*´�¶°>:*´�¢'¤�0*Y´�È*´�¢`µ�È**´�”*´�¢¶;µ�”*µ�¢*,*´�”¶�¨µ�¬*´�”¶3*´�¢d6d¢�*·�ë*´�¬*´�¢¶p>**´�¬*´�¢··>*µ�Ê™�Š*´�Ι�*´�¬¶»6§�*´�¬¶r6*´�”*´�¢¶3:**´�¬¶»µ�º™�**´�ºµ�¢§�*µ�¶*µ�¸*,¶uµ�¼**´�¬¶xµ�¾**´�¬¶^µ�À**´�¬¶{µ�Â**´�¬¶~µ�ħ�‰*´�¬¶™�w*´�”*´�¢¶;:¶3š�:**´�”¶3µ�º™�**´�ºµ�¢§�*µ�¶*µ�¸*,¶uµ�¼**´�¬¶xµ�¾**´�¬¶^µ�À**´�¬¶{µ�Â**´�¬¶~µ�ħ�»
                                    ! Y·¾¿™�!**´�¬¶„µ�®**´�®Æ�§�µ�Ч�**´�¬¶„µ�Æ**´�ε�Ì*µ�ΰ����o��
                                    ! �B��3�5�7�%9�3;�J<�Z=�^>�e=�i>�r;�u@�yB�C�†D�ŽF�“I�•M�˜O�¢S�¯T�¾U�ÃV�ÏY�ÝZ�ä\�è^�ô`bdfhl'n6oAtEvPzV{[|c~ny€„’ƒœ†©‡±ˆ´‰¿ŠÃŒÎÔ‘Ù’á”ì•÷–—ž¤¦'¨:¬E¯M°R²�p���R���U�y�z����UR�D���U�"��•À¿�D��Ýx‡�,��ˆ�,�'�kˆ�,��˜½‰����í�[��\��Ã����SN:*´�‰Æ�f*´�‰*´�¤¶Š<œ�±*´�¦Æ�»�‘Y*´�¤*´�¦·ŽM§�»�‘Y*´�¤·‘M*Y´�”»Z_¸Ò·$,¶'¶+µ�”§�å:*µ�‡§�Ú*´�°Æ�X踔N*µ�Ê*´�°-¹š�<œ�±*µ�Ê»�‘Y-¶Ÿ·£M*Y´�”»Z_¸Ò·$,¶'¶+µ�”§�‰:*µ�‡§�~*´�²Æ�w踦:*µ�Ê*´�²¹«�<*µ�Êœ�±*´�¦Æ�»�‘Y¶®*´�¦·ŽM§�»�‘Y¶®·‘M*Y´�”»Z_¸Ò·$,¶'¶+µ�”§�:*µ�‡*´�¬*´�”¶�öW±����d��a�d�v�‘�À�’�½�À�Ò�ô>�õ;>��o���š�&��À�Á�Ã�Ç�È�Ê�Ì�$Î�9Ò�GÔ�dÖ�fØ�oÛ�vß�}à�‚á�â�‘ä�’æ�—ç�£è�Àê�Âì�Ëï�Òó�Úô�ßõ�ëö�ð÷�ôù�õû�üý!>@FR�p���Ž���S�y�z����L±�,���3±�,��ë�S±�,��6����G����£������!����Q²³��N´µ��f�¶�(��Â�¶�(�@�¶�(��¹º��\���Â�����H*´�”¶36§�!*·�ë*´�”¶3 �§�*+¶p>*µ�Ê+¶™�*´�‰Çÿ×*´�°ÇÿÐ*´�²Çÿɬ����o���.��� �	!�%�&�(�*�%+�*!�1"�?#�F-�p���4����H�y�z�����H·�<����H¸�,����H¿�D��	�?T�,����\���ò�����\:*´�¢6*´�¬:*+,¶�¨µ�¬ž�'*´�¬¶¹W*´�¬¶½W*´�¬*´�¢*´�¢`¶°W*+·>:*µ�¬*µ�¢*µ�Ì°����o���6�
                                    ��B�C�	D�F�G�I�%J�.K�@M�HN�NP�TQ�YS�p���H����\�y�z�����\�"����\$�����\7�,���Y8���	�SÀ�,���MÁ�<��EF��\���ñ�����Q*´�¬:*´�”:**´� ·>N*+-¶�¨µ�¬*-µ�”*´�¢6*µ�¢*+·>:*µ�¢*µ�”*µ�¬*µ�Ì°����o���6�
                                    ��h�j�m�n�o�$p�*q�/r�7s�=u�Cv�Iw�Ny�p���R����Q�y�z�����Q�"����QR�D���;����KÁ�<��7�Â����EÃ���*�'Ä�,��WX��\���Î�����J**´� ·Å:*·È:»ÊY·Ì:°W§�W»OY»Y
                                    ·$¶'¶'-¶'¶+·N¿���"�#Í��"�'��o�������“�”� •�#—�'š�(�p���>����J�y�z�����JY�,����JR�D����JÏ��� �8Ð���?T���]^��s����O�\���‘�����?**´� ·ÅM,ѶÓ™�¬,Ö¶Ó™�¬»OY»Y
                                    ·$,¶'¶'¶+·N¿����o������¯�
                                    ! °�²�´� ¶�"º�p��� ����?�y�z�����?R�D��
                                    ! �5T���de��s����O�\���º�����@**´� ·Å:*·È:¸Ø>¬W§�W»OY»Y
                                    ·$¶'¶'¶+·N¿����Í���!��o������Î�Ò�Ó�Ô�Ö�!Ù�"Ü�p���4����@�y�z�����@Y�,����@R�D���8Þ���5T���ij��s����O�\���º�����R**´� ·Å:*
                                    ! ·È:¸ßI»Y·å(¶æ¶+¶7™�(¯W»OY»Y
                                    ·$¶'¶'¶+·N¿���2�3��o������ò�ö�÷�ø�1ú�3ý�4��p���*����R�y�z�����RR�D���8é���GT���qr��s����O�\���º�����@**´� ·Å:*·È:¸ê>¬W§�W»OY»Y
                                    ·$¶'¶'¶+·N¿����Í���!��o�����������!�"!�p���4����@�y�z�����@Y�,����@R�D���8�,���5T�����\���@�����*²�m¸�]·Å°����o������-�p��������y�z�����R�D��yz��s����O�\���º�����@**´� ·Å:*·È:¸ðB!­W§�W»OY»Y
                                    ·$¶'
                                      ¶'¶+·N¿����Í���!��o������>�B�C�D�F�!I�"L�p���4����@�y�z�����@Y�,����@R�D���8ö���5T���€��s����O�\���Ã�����A**´� ·Å:*·È:¸÷>¬W§�W»OY»Y
                                    ·$¶'ý¶'¶+·N¿����Í���!��o���&�	��b�f�g�h�j�!m�"p�4q�=p�p���4����A�y�z�����AY�,����AR�D���8ÿ���6T���ÇF��\���~�����*´� :*+¶W*+·>N*¶W-°����o������ƒ�„�†�ˆ�Š�p���4�����y�z�������"����R�D���	8�����"��]B��\���ü�����v*´�¸™�p*´�¼+¶u �e*´�¾*´�¬¶x �W*´�Â*´�¬¶{ �I*´�Ä*´�¬¶~ �;*´�À*´�¬¶^Ÿ�+*´�¬¶^*´�Àd'd=ž�¢�**´�¬¶^µ�À¬¬¬����o���N���—�˜�™� š�.›�<�J �Q¡�U �V¡�Y �ZŸ�[¢�e¤�f¥�m¤�p¦�rª�t¬�p��� ����v�y�z�����v�"��[��,�Aˆ��\���%�����*¶°����o��������p���������	���
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/java/util/TreeMap$3.class gcc-4.6.0/libjava/classpath/lib/java/util/TreeMap$3.class
                                    *** gcc-4.5.2/libjava/classpath/lib/java/util/TreeMap$3.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/java/util/TreeMap$3.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,18 ****
                                      Êþº¾���1�1��java/util/TreeMap$3��java/util/AbstractCollection�this$1�!Ljava/util/TreeMap$DescendingMap;�<init>�$(Ljava/util/TreeMap$DescendingMap;)V�Code	����
                                      ��
                                    ���()V�LineNumberTable�LocalVariableTable�this�Ljava/util/TreeMap$3;�size�()I
                                    ! �����iterator�()Ljava/util/Iterator;�	Signature�()Ljava/util/Iterator<TDV;>;��java/util/TreeMap$4
                                    ! �����(Ljava/util/TreeMap$3;)V�clear
                                    ! ��"� ��access$0�8(Ljava/util/TreeMap$3;)Ljava/util/TreeMap$DescendingMap;�
                                    ! SourceFile�TreeMap.java�EnclosingMethod�)�java/util/TreeMap$DescendingMap�+�,�values�()Ljava/util/Collection;�InnerClasses�/�java/util/TreeMap�
                                    DescendingMap� ����������������	���8�����
                                      *+µ�
                                      *·�±�������
                                      �����
                                      ¸��������
                                    ! ���������	���/�����*¶�¬����������
                                    ! ¼����������������������	���3�����	»�Y*·�°����������
                                    ! Á��������	������ ���	���3�����*¶�!±�������
                                      ���
                                    ! å�
                                    ! æ�������������#�$��	���%�����*´�
                                      °����������
                                    ! ¸��������%����&�'����(�*�-�������������������(�.�0�
                                    \ No newline at end of file
                                    --- 1,20 ----
                                      Êþº¾���1�1��java/util/TreeMap$3��java/util/AbstractCollection�this$1�!Ljava/util/TreeMap$DescendingMap;�<init>�$(Ljava/util/TreeMap$DescendingMap;)V�Code	����
                                      ��
                                    ���()V�LineNumberTable�LocalVariableTable�this�Ljava/util/TreeMap$3;�size�()I
                                    ! ����java/util/TreeMap$DescendingMap���iterator�()Ljava/util/Iterator;�	Signature�()Ljava/util/Iterator<TDV;>;��java/util/TreeMap$4
                                    ! �� ��!�(Ljava/util/TreeMap$3;)V�clear
                                    ! ��$�"��access$0�8(Ljava/util/TreeMap$3;)Ljava/util/TreeMap$DescendingMap;�
                                    ! SourceFile�TreeMap.java�EnclosingMethod�+�,�values�()Ljava/util/Collection;�InnerClasses�/�java/util/TreeMap�
                                    DescendingMap� ����������������	���8�����
                                      *+µ�
                                      *·�±�������
                                      �����
                                      ¸��������
                                    ! ���������	���2�����*´�
                                    ! ¶�¬����������
                                    ! ¼����������������������	���3�����	»�Y*·�°����������
                                    ! Á��������	������"���	���6�����*´�
                                    ! ¶�#±�������
                                      ���
                                    ! å�
                                    ! æ�������������%�&��	���%�����*´�
                                      °����������
                                    ! ¸��������'����(�)�����*�-��������������������.�0�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/java/util/regex/Matcher.class gcc-4.6.0/libjava/classpath/lib/java/util/regex/Matcher.class
                                    *** gcc-4.5.2/libjava/classpath/lib/java/util/regex/Matcher.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/java/util/regex/Matcher.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�Matcher.java�1�����
                                    *** 58,61 ****
                                      ���£�¤�8��������9�:����Ë�Ì�����ä�����d*´�¹�+�>œ�
                                    »�ÍYÏ·�Ñ¿¡�
                                    »�ÍYÔ·�Ñ¿œ�
                                    »�ÍYÖ·�Ñ¿¤�
                                    »�ÍYØ·�Ñ¿¤�
                                    »�ÍYÚ·�Ñ¿*¶�†W*µ�)*µ�1*°����7���>���Ó�
                                      Ô�Õ�Ö�×�'Ø�+Ù�5Ú�:Û�DÜ�IÝ�SÞ�Xß�]à�bá�8���*����d�9�:�����d������d�g���
                                      �Z�/�����0�����/�����*´�)¬����7������î�8��������9�:�����0�����/�����*´�1¬����7������û�8��������9�:����Ü�m�����/�����*´�3¬����7�������8��������9�:����Ý�Þ�����?�����*µ�3*°����7���
                                    ! ���'�(�8��������9�:������ß����à�m�����5�����*´�5š�¬¬����7������:�8��������9�:����á�Þ�����T�����™�*µ�5§�	*0µ�5*°����7������K�L�N�O�8��������9�:������â����ã�ä�����\����� »�Y*´�*´�·�åL+*´�E¶�çÀ�Hµ�E+°����7������]�^�_�8������� �9�:�����ë�:���ì����í
                                    \ No newline at end of file
                                    --- 58,61 ----
                                      ���£�¤�8��������9�:����Ë�Ì�����ä�����d*´�¹�+�>œ�
                                    »�ÍYÏ·�Ñ¿¡�
                                    »�ÍYÔ·�Ñ¿œ�
                                    »�ÍYÖ·�Ñ¿¤�
                                    »�ÍYØ·�Ñ¿¤�
                                    »�ÍYÚ·�Ñ¿*¶�†W*µ�)*µ�1*°����7���>���Ó�
                                      Ô�Õ�Ö�×�'Ø�+Ù�5Ú�:Û�DÜ�IÝ�SÞ�Xß�]à�bá�8���*����d�9�:�����d������d�g���
                                      �Z�/�����0�����/�����*´�)¬����7������î�8��������9�:�����0�����/�����*´�1¬����7������û�8��������9�:����Ü�m�����/�����*´�3¬����7�������8��������9�:����Ý�Þ�����?�����*µ�3*°����7���
                                    ! ���'�(�8��������9�:������ß����à�m�����5�����*´�5š�¬¬����7������:�8��������9�:����á�Þ�����T�����™�*µ�5§�	*0µ�5*°����7������K�L�N�O�8��������9�:������â����ã�ä�����g�����'»�Y*´�*´�·�åL*´�EÆ�+*´�E¶�çÀ�Hµ�E+°����7������]�^�_�%`�8�������'�9�:�����ë�:���ì����í
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/security/auth/kerberos/KerberosTicket.class gcc-4.6.0/libjava/classpath/lib/javax/security/auth/kerberos/KerberosTicket.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/security/auth/kerberos/KerberosTicket.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/security/auth/kerberos/KerberosTicket.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�·��+javax/security/auth/kerberos/KerberosTicket��java/lang/Object��javax/security/auth/Destroyable��java/io/Serializable�
                                      �javax/security/auth/Refreshable�serialVersionUID�J�
                                    ConstantValuef¡mpwû�FORWARDABLE�I����	FORWARDED����	PROXIABLE����PROXY����	POSTDATED����	RENEWABLE����INITIAL���	�	NUM_FLAGS����asn1Encoding�[B�
                                      sessionKey�&Ljavax/security/auth/kerberos/KeyImpl;�flags�[Z�authTime�Ljava/util/Date;�	startTime�endTime�	renewTill�client�0Ljavax/security/auth/kerberos/KerberosPrincipal;�server�clientAddresses�[Ljava/net/InetAddress;�<init>�Á([BLjavax/security/auth/kerberos/KerberosPrincipal;Ljavax/security/auth/kerberos/KerberosPrincipal;[BI[ZLjava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;[Ljava/net/InetAddress;)V�Code
                                      ��5�1�6�()V
                                    --- 1,4 ----
                                    ! Êþº¾���1�è��+javax/security/auth/kerberos/KerberosTicket��java/lang/Object��javax/security/auth/Destroyable��java/io/Serializable�
                                      �javax/security/auth/Refreshable�serialVersionUID�J�
                                    ConstantValuef¡mpwû�FORWARDABLE�I����	FORWARDED����	PROXIABLE����PROXY����	POSTDATED����	RENEWABLE����INITIAL���	�	NUM_FLAGS����asn1Encoding�[B�
                                      sessionKey�&Ljavax/security/auth/kerberos/KeyImpl;�flags�[Z�authTime�Ljava/util/Date;�	startTime�endTime�	renewTill�client�0Ljavax/security/auth/kerberos/KerberosPrincipal;�server�clientAddresses�[Ljava/net/InetAddress;�<init>�Á([BLjavax/security/auth/kerberos/KerberosPrincipal;Ljavax/security/auth/kerberos/KerberosPrincipal;[BI[ZLjava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;[Ljava/net/InetAddress;)V�Code
                                      ��5�1�6�()V
                                    *************** Exceptions�q�*javax/security/auth/Dest
                                    *** 18,27 ****
                                      getEndTime�getRenewTill�getClientAddresses�()[Ljava/net/InetAddress;�
                                      getEncoded�()[B
                                      ��¦�§�6�checkDestroyed	�>�©�l�"�
                                    getSessionKey�()Ljavax/crypto/SecretKey;�­�java/lang/IllegalStateException�¯�key is destroyed
                                    ! �¬�u�toString�()Ljava/lang/String;�´�	FIXME bob�
                                    ! SourceFile�KerberosTicket.java�!������	������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���� ��!�"����#�$����%�&����'�(����)�(����*�(����+�(����,�-����.�-����/�0�����1�2��3�������¤*·�4*+¶�7À�8µ�<*»�>Y·�@µ�C*¼µ�EÆ�*´�E¾¸�G¸�M*¶�SÀ�Tµ�E*¶�UÀ�Vµ�X*Ç�§�¶�UÀ�Vµ�Z*	¶�UÀ�Vµ�\*
                                      ¶�UÀ�Vµ�^*,µ�`*-µ�b*Ç�§�¶�dÀ�eµ�f±����h���Z����q��w��x��y�&�z�+�{�3�|�;�{�>�}�J�~�V��\�€�i��l��x�‚�„�ƒ�‰�„�Ž�…�”�†�˜�‡� �…�£�ˆ�i���z����¤�j�k�����¤�!�"����¤�,�-����¤�.�-����¤�l�"����¤�m�����¤�%�&����¤�'�(����¤�)�(����¤�*�(�	���¤�+�(�
                                      ���¤�/�0���n�6��o�����p�3���V�����*´�CÇ�
                                    »�pYr·�t¿*µ�C*µ�<±����h���������‘��’��“��”�i��������j�k����w�x��3���5�����*´�CÇ�¬¬����h�������›�i��������j�k����y�x��3���X����� ¸�z@*´�Z¶�~”�*´�\¶�~”�¬¬����h���
                                      ����¤��¥�i������� �j�k���������‚�6��o�����ƒ�…�3���x�����:*¶�‡š�
                                    »�ƒYŠ·�Œ¿*´�^Æ�¸�z*´�^¶�~”›�
                                    »�ƒY·�Œ¿»�ƒY·�Œ¿����h�������¯��°��±��²�&�³�0�¶�i�������:�j�k����‘�’��3���/�����*´�`°����h�������¾�i��������j�k����“�’��3���/�����*´�b°����h�������Æ�i��������j�k����”�x��3���1�����*´�E3¬����h�������Î�i��������j�k����•�x��3���1�����*´�E3¬����h�������Ö�i��������j�k����–�x��3���1�����*´�E3¬����h�������Þ�i��������j�k����—�x��3���1�����*´�E3¬����h�������æ�i��������j�k����˜�x��3���2�����*´�E3¬����h�������î�i��������j�k����‰�x��3���2�����*´�E3¬����h�������ö�i��������j�k����™�x��3���2�����*´�E	3¬����h�������ÿ�i��������j�k����š�›��3���5�����*´�E¶�SÀ�T°����h�������i��������j�k����œ���3���5�����*´�X¶�UÀ�V°����h�������i��������j�k����ž���3���5�����*´�Z¶�UÀ�V°����h�������i��������j�k����Ÿ���3���5�����*´�\¶�UÀ�V°����h������ �i��������j�k���� ���3���C�����*´�E3™�*´�^¶�UÀ�V§�°����h������)�i��������j�k����¡�¢��3���L�����*´�fÇ�§�
                                    *´�f¶�dÀ�e°����h������2�3�4�2�i��������j�k����£�¤��3���@�����*·�¥*´�C´�¨¶�7À�8°����h���
                                      ���<�=�i��������j�k����ª�«��3���7�����	*·�¥*´�C°����h���
                                    ! ���E�F�i�������	�j�k����§�6��3���D�����*´�CÇ�
                                    »�¬Y®·�°¿±����h������K�L�M�i��������j�k����±�²��3���-�����³°����h������Q�i��������j�k����µ����¶
                                    \ No newline at end of file
                                    --- 18,35 ----
                                      getEndTime�getRenewTill�getClientAddresses�()[Ljava/net/InetAddress;�
                                      getEncoded�()[B
                                      ��¦�§�6�checkDestroyed	�>�©�l�"�
                                    getSessionKey�()Ljavax/crypto/SecretKey;�­�java/lang/IllegalStateException�¯�key is destroyed
                                    ! �¬�u�toString�()Ljava/lang/String;�´�java/lang/StringBuilder
                                    ! ��¶�·�¸�getClass�()Ljava/lang/Class;
                                    ! �º�¼�»�java/lang/Class�½�²�getName
                                    ! �¿�Á�À�java/lang/String�Â�Ã�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �³�u�Æ�[client=
                                    ! �³�È�É�Ê�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �³�Ì�É�Í�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;�Ï�,server=�Ñ�,sessionKey=�Ó�,flags=�Õ�
                                    ! ,authTime=��,startTime= ��	,endTime=��,renewTill=��,clientAddresses=��]
                                    ! �³�á�±�²�getSessionKeyType�()I	�>�å�m��
                                    ! SourceFile�KerberosTicket.java�!������	������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���� ��!�"����#�$����%�&����'�(����)�(����*�(����+�(����,�-����.�-����/�0�����1�2��3�������¤*·�4*+¶�7À�8µ�<*»�>Y·�@µ�C*¼µ�EÆ�*´�E¾¸�G¸�M*¶�SÀ�Tµ�E*¶�UÀ�Vµ�X*Ç�§�¶�UÀ�Vµ�Z*	¶�UÀ�Vµ�\*
                                      ¶�UÀ�Vµ�^*,µ�`*-µ�b*Ç�§�¶�dÀ�eµ�f±����h���Z����q��w��x��y�&�z�+�{�3�|�;�{�>�}�J�~�V��\�€�i��l��x�‚�„�ƒ�‰�„�Ž�…�”�†�˜�‡� �…�£�ˆ�i���z����¤�j�k�����¤�!�"����¤�,�-����¤�.�-����¤�l�"����¤�m�����¤�%�&����¤�'�(����¤�)�(����¤�*�(�	���¤�+�(�
                                      ���¤�/�0���n�6��o�����p�3���V�����*´�CÇ�
                                    »�pYr·�t¿*µ�C*µ�<±����h���������‘��’��“��”�i��������j�k����w�x��3���5�����*´�CÇ�¬¬����h�������›�i��������j�k����y�x��3���X����� ¸�z@*´�Z¶�~”�*´�\¶�~”�¬¬����h���
                                      ����¤��¥�i������� �j�k���������‚�6��o�����ƒ�…�3���x�����:*¶�‡š�
                                    »�ƒYŠ·�Œ¿*´�^Æ�¸�z*´�^¶�~”›�
                                    »�ƒY·�Œ¿»�ƒY·�Œ¿����h�������¯��°��±��²�&�³�0�¶�i�������:�j�k����‘�’��3���/�����*´�`°����h�������¾�i��������j�k����“�’��3���/�����*´�b°����h�������Æ�i��������j�k����”�x��3���1�����*´�E3¬����h�������Î�i��������j�k����•�x��3���1�����*´�E3¬����h�������Ö�i��������j�k����–�x��3���1�����*´�E3¬����h�������Þ�i��������j�k����—�x��3���1�����*´�E3¬����h�������æ�i��������j�k����˜�x��3���2�����*´�E3¬����h�������î�i��������j�k����‰�x��3���2�����*´�E3¬����h�������ö�i��������j�k����™�x��3���2�����*´�E	3¬����h�������ÿ�i��������j�k����š�›��3���5�����*´�E¶�SÀ�T°����h�������i��������j�k����œ���3���5�����*´�X¶�UÀ�V°����h�������i��������j�k����ž���3���5�����*´�Z¶�UÀ�V°����h�������i��������j�k����Ÿ���3���5�����*´�\¶�UÀ�V°����h������ �i��������j�k���� ���3���C�����*´�E3™�*´�^¶�UÀ�V§�°����h������)�i��������j�k����¡�¢��3���L�����*´�fÇ�§�
                                    *´�f¶�dÀ�e°����h������2�3�4�2�i��������j�k����£�¤��3���@�����*·�¥*´�C´�¨¶�7À�8°����h���
                                      ���<�=�i��������j�k����ª�«��3���7�����	*·�¥*´�C°����h���
                                    ! ���E�F�i�������	�j�k����§�6��3���D�����*´�CÇ�
                                    »�¬Y®·�°¿±����h������K�L�M�i��������j�k����±�²��3���Ü�����†»�³Y*¶�µ¶�¹¸�¾·�ÄŶ�Ç*´�`¶�Ëζ�Ç*´�b¶�Ëж�Ç*´�C¶�ËÒ¶�Ç*´�E¶�ËÔ¶�Ç*´�X¶�ËÖ¶�Ç*´�Z¶�Ëض�Ç*´�\¶�ËÚ¶�Ç*´�^¶�Ëܶ�Ç*´�f¶�ËÞ¶�Ƕ�à°����h���2���Q�R�S�)T�5U�AV�MW�YX�eY�qZ�}[�‚Q�i�������†�j�k����â�ã��3���2�����*´�C´�ä¬����h������q�i��������j�k����æ����ç
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/security/auth/kerberos/KeyImpl.class gcc-4.6.0/libjava/classpath/lib/javax/security/auth/kerberos/KeyImpl.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/security/auth/kerberos/KeyImpl.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/security/auth/kerberos/KeyImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,8 ****
                                    ! Êþº¾���1�3��$javax/security/auth/kerberos/KeyImpl��java/lang/Object��java/io/Serializable��javax/crypto/SecretKey�	algorithm�Ljava/lang/String;�type�I�key�[B�<init>�([BI)V�Code
                                      �����()V	���	�
                                      ��DES��FIXME	����
                                      ���� �!�clone�()Ljava/lang/Object;	��#�
                                    ��LineNumberTable�LocalVariableTable�this�&Ljavax/security/auth/kerberos/KeyImpl;�([CLjava/lang/String;)V�passwd�[C�algo�getAlgorithm�()Ljava/lang/String;�
                                    ! getEncoded�()[B�	getFormat�
                                      SourceFile�KeyImpl.java�0��������	�
                                    ! ���������
                                    ������������“�����5*·�š�*µ�§� �*µ�§�	*µ�*µ�*+¶�À�µ�"±����$���&�	���:��=��>��?��@��B�$�C�)�D�4�E�%��� ����5�&�'�����5�
                                    �����5������(�����k�����*·�*,Ç�§�,µ�*µ�*µ�"±����$�������G��I��J��K��L�%��� �����&�'������)�*�����+�
                                    ! ���,�-�����/�����*´�°����$�������P�%��������&�'����.�/�����/�����*´�"°����$�������U�%��������&�'����0�-�����,�����°����$�������[�%��������&�'����1����2
                                    \ No newline at end of file
                                    --- 1,15 ----
                                    ! Êþº¾���1�W��$javax/security/auth/kerberos/KeyImpl��java/lang/Object��java/io/Serializable��javax/crypto/SecretKey�	algorithm�Ljava/lang/String;�type�I�key�[B�<init>�([BI)V�Code
                                      �����()V	���	�
                                      ��DES��FIXME	����
                                      ���� �!�clone�()Ljava/lang/Object;	��#�
                                    ��LineNumberTable�LocalVariableTable�this�&Ljavax/security/auth/kerberos/KeyImpl;�([CLjava/lang/String;)V�passwd�[C�algo�getAlgorithm�()Ljava/lang/String;�
                                    ! getEncoded�()[B�	getFormat�toString�3�java/lang/StringBuilder
                                    ! ��5�6�7�getClass�()Ljava/lang/Class;
                                    ! �9�;�:�java/lang/Class�<�-�getName
                                    ! �>�@�?�java/lang/String�A�B�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �2�D��E�(Ljava/lang/String;)V�G�[type=
                                    ! �2�I�J�K�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �2�M�J�N�(I)Ljava/lang/StringBuilder;�P�,algorithm=�R�]
                                    ! �2�T�1�-�
                                      SourceFile�KeyImpl.java�0��������	�
                                    ! ���������
                                    ������������“�����5*·�š�*µ�§� �*µ�§�	*µ�*µ�*+¶�À�µ�"±����$���&�	���:��=��>��?��@��B�$�C�)�D�4�E�%��� ����5�&�'�����5�
                                    �����5������(�����k�����*·�*,Ç�§�,µ�*µ�*µ�"±����$�������G��I��J��K��L�%��� �����&�'������)�*�����+�
                                    ! ���,�-�����/�����*´�°����$�������P�%��������&�'����.�/�����/�����*´�"°����$�������U�%��������&�'����0�-�����,�����°����$�������[�%��������&�'����1�-�����l�����2»�2Y*¶�4¶�8¸�=·�CF¶�H*´�¶�LO¶�H*´�¶�HQ¶�H¶�S°����$�������`��a��b�)�c�.�`�%�������2�&�'����U����V
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit.class	Fri Jul 27 21:14:19 2007
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1Å��#javax/swing/text/html/HTMLEditorKit�� javax/swing/text/StyledEditorKit��java/io/Serializable��java/lang/Cloneable�
                                      �javax/accessibility/Accessible�serialVersionUID�J�
                                    ConstantValueyuWðÃóÐ�DEFAULT_CSS�Ljava/lang/String;��default.css�BOLD_ACTION��html-bold-action�
                                    ITALIC_ACTION��html-italic-action�COLOR_ACTION��html-color-action�FONT_CHANGE_BIGGER��html-font-bigger�FONT_CHANGE_SMALLER�"�html-font-smaller�IMG_ALIGN_BOTTOM�%�html-image-align-bottom�IMG_ALIGN_MIDDLE�(�html-image-align-middle�
                                    IMG_ALIGN_TOP�+�html-image-align-top�
                                      IMG_BORDER�.�html-image-border�LOGICAL_STYLE_ACTION�1�html-logical-style-action�PARA_INDENT_LEFT�4�html-para-indent-left�PARA_INDENT_RIGHT�7�html-para-indent-right�defaultActions�[Ljavax/swing/Action;�
                                      styleSheet�"Ljavax/swing/text/html/StyleSheet;�viewFactory�1Ljavax/swing/text/html/HTMLEditorKit$HTMLFactory;�
                                    --- 1,4 ----
                                    ! Êþº¾���1Ç��#javax/swing/text/html/HTMLEditorKit�� javax/swing/text/StyledEditorKit��java/io/Serializable��java/lang/Cloneable�
                                      �javax/accessibility/Accessible�serialVersionUID�J�
                                    ConstantValueyuWðÃóÐ�DEFAULT_CSS�Ljava/lang/String;��default.css�BOLD_ACTION��html-bold-action�
                                    ITALIC_ACTION��html-italic-action�COLOR_ACTION��html-color-action�FONT_CHANGE_BIGGER��html-font-bigger�FONT_CHANGE_SMALLER�"�html-font-smaller�IMG_ALIGN_BOTTOM�%�html-image-align-bottom�IMG_ALIGN_MIDDLE�(�html-image-align-middle�
                                    IMG_ALIGN_TOP�+�html-image-align-top�
                                      IMG_BORDER�.�html-image-border�LOGICAL_STYLE_ACTION�1�html-logical-style-action�PARA_INDENT_LEFT�4�html-para-indent-left�PARA_INDENT_RIGHT�7�html-para-indent-right�defaultActions�[Ljavax/swing/Action;�
                                      styleSheet�"Ljavax/swing/text/html/StyleSheet;�viewFactory�1Ljavax/swing/text/html/HTMLEditorKit$HTMLFactory;�
                                    *************** getActions�()[Ljavax/swing/Action;
                                    *** 54,67 ****
                                      —š�b›�(Ljava/io/InputStream;)V
                                      �­žŸ�	loadRules�!(Ljava/io/Reader;Ljava/net/URL;)V
                                      —¡¢�M�close¤�java/lang/RuntimeException¦�No style available.
                                    ! £¨�b©�*(Ljava/lang/String;Ljava/lang/Throwable;)V�Ljava/lang/Class;�Ljava/io/InputStream;�r�Ljava/io/InputStreamReader;�ex�Ljava/io/IOException;�
                                    setStyleSheet�s�isAutoFormSubmission�()Z�setAutoFormSubmission�(Z)V�auto�
                                    ! SourceFile�HTMLEditorKit.java�InnerClasses»�javax/swing/text/html/HTML�Tag�HTMLFactory¿�2javax/swing/text/html/HTMLEditorKit$HTMLTextAction�HTMLTextAction�InsertHTMLTextAction�LinkController�Parser�ParserCallback�!������	������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ������ ���
                                    ����!��#���
                                    ����$��&���
                                    ����'��)���
                                    ����*��,���
                                    ����-��/���
                                    ����0��2���
                                    ����3��5���
                                    ����6��8�9����:�;�����<�=�����>�?�����@�?�����A�B����C�D�����E������F�G�����H�I����J�K�����L�M��N��w������ý�OY»�QYSU²�W²�]·�`SY»�QYdU²�]²�f²�W²�]·�iSY»�QYlU²�f²�n²�W²�]·�iSY»�QYqs²�W²�u·�`SY»�QYxs²�u²�z²�W²�u·�iSY»�QY}²�W²�·�`SY»�QY„²�²�z²�W²�·�iSY»�QY†ˆ²�W²�Š·�`S³�±�������š�&�� �!�
                                    "�#�!�$�!%�#&�)'�/$�5(�;)�=*�C+�I(�O,�U-�W.�],�c/�i0�k1�q2�w/�}3�ƒ4�…5�‹3�’6�˜7�š8� 9�¦6�­:�³;�»:�¿�Â�X��������b�M��N���U�����*·�‘*“µ�•*»�—Y·�™µ�š*µ�œ±����������q�^�
                                      s�t�u���������ž�Ÿ���� �¡��N���I�����*´�¢Ç�*»�¤Y·�¦µ�¢*´�¢°�����������€����������ž�Ÿ����§�¨��N���”�����0*¶�©L»�­Y·�¯M,+¶�°»�´Y,·�¶N-*¶�¸¶�¼-¶�À-d¶�Ä-°�������"���Œ��
                                    Ž��‘�#’�(“�.”����*����0�ž�Ÿ����+�:�;��
                                    �#�Ç�;����È�É���º�»��N���L�����*´�ÊÇ�*»�ÌY¸�η�Ôµ�Ê*´�Ê°����������Ÿ�¡�£���������ž�Ÿ����×�Ø��Ù�����Ú�Ü�N���é��	���O*¶�¸:›�+¶�Þ¤�»�ÚYâ·�ä¿Ç�
                                    »�ÜYç·�é¿+¶�ì:»�ðY-·�ò¶�ó¶�ù±�������&�	��º�»�¼�½�"¾�,À�9Å�IÆ�NÇ����\�	���O�ž�Ÿ�����O�þ�É����O�ÿ�����O�����O�����O�����O�\���I�A�B��9�����Ù�����Ü�Ú�N��	�����o,Á�´™�c*¶�¸:›�
                                    ,¹	�¤�»�ÚYâ·�ä¿Ç�
                                    »�ÜYç·�é¿,À�´:*´Æ�*´¶¶¶:+¶�ó¶�ù§�
                                      *+,·±�������:���Ù�Û�
                                    Ü�Ý�&Þ�+ß�5á�;â�Bã�Nä�Vé�_ê�gï�nð����H����o�ž�Ÿ�����o����o�þ����o ���
                                    �Z�A�B��;�,!�É��V���"#��Ù�����Ü�Ú�N���Ø�����J,Á�´™�»$Y+,À�´·&:¶)§�,,Á+™�»-Y+,À+·/:¶2§�*+,·3±�������.������ �'�,	�0
                                      �3�8�@�I����H����J�ž�Ÿ�����J56����J�þ����J �����J7����89��8�8:��;<��N���/�����*´�•°�������������������ž�Ÿ���=>��N���Q�����*·?À�L+»�—Y·�™µ�š+°����������$�%�&���������ž�Ÿ����
                                    A�Ÿ��BC��N���Z�����,,¹D�,+¹J�¹P�±����������4�5�7���� �����ž�Ÿ�����ST����U�G��VW��N���_�����*+·X+*´�š¶Z+*´�š¶^*+µ±����������@�A�
                                    B�C�D���������ž�Ÿ�����b�I��cW��N���_�����*+·d+*´�š¶f+*´�š¶i*µ±����������N�O�
                                    P�Q�R���������ž�Ÿ�����b�I��lm��N���,�����°����������^���������ž�Ÿ���no��N���5�����*·p²�¸r°����������j���������ž�Ÿ���xy��N���E�����*´zÇ�
                                      *¸|µz*´z°����������t�u�v���������ž�Ÿ���€y��N���G�����*´Ç�*¸ƒµ*´°����������€��‚���������ž�Ÿ���‡ˆ��N���>�����*+µ±�������
                                      ���Œ����������ž�Ÿ�����‰�?��Šˆ��N���>�����*+µz±�������
                                    ! ���–�—���������ž�Ÿ�����‰�?��‹Œ��N���/�����*´°���������� ���������ž�Ÿ����«�¬��N���Å�����G*´Ç�>*»�­Y·�¯µL+¶‘M»—Y,·™N*´-¶œ-¶ §�L»£Y¥+·§¿*´°���2�5�Ü�����*�
                                    ! ��¬�°�±�²�³�%´�.µ�5·�6¹�B¼����4����G�ž�Ÿ���� bª���«��%�¬­��6�®¯��°�³��N���>�����*+µ±�������
                                    ! ���Ê�Ë���������ž�Ÿ�����±�;��²³��N���/�����*´�œ¬����������ß���������ž�Ÿ���´µ��N���>�����*µ�œ±�������
                                    ! ���î�ï���������ž�Ÿ�����¶�K��·���¸¹���:��Xº¼�	�¤�½�	¾�À	�Q�Á�	�—�Â�	�ô�Ã	�ú�Ä�	
                                    \ No newline at end of file
                                    --- 54,67 ----
                                      —š�b›�(Ljava/io/InputStream;)V
                                      �­žŸ�	loadRules�!(Ljava/io/Reader;Ljava/net/URL;)V
                                      —¡¢�M�close¤�java/lang/RuntimeException¦�No style available.
                                    ! £¨�b©�*(Ljava/lang/String;Ljava/lang/Throwable;)V�Ljava/lang/Class;�Ljava/io/InputStream;�r�Ljava/io/InputStreamReader;�ex�Ljava/io/IOException;�LocalVariableTypeTable�Ljava/lang/Class<*>;�
                                    setStyleSheet�s�isAutoFormSubmission�()Z�setAutoFormSubmission�(Z)V�auto�
                                    ! SourceFile�HTMLEditorKit.java�InnerClasses½�javax/swing/text/html/HTML�Tag�HTMLFactoryÁ�2javax/swing/text/html/HTMLEditorKit$HTMLTextAction�HTMLTextAction�InsertHTMLTextAction�LinkController�Parser�ParserCallback�!������	������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ���������
                                    ������ ���
                                    ����!��#���
                                    ����$��&���
                                    ����'��)���
                                    ����*��,���
                                    ����-��/���
                                    ����0��2���
                                    ����3��5���
                                    ����6��8�9����:�;�����<�=�����>�?�����@�?�����A�B����C�D�����E������F�G�����H�I����J�K�����L�M��N��w������ý�OY»�QYSU²�W²�]·�`SY»�QYdU²�]²�f²�W²�]·�iSY»�QYlU²�f²�n²�W²�]·�iSY»�QYqs²�W²�u·�`SY»�QYxs²�u²�z²�W²�u·�iSY»�QY}²�W²�·�`SY»�QY„²�²�z²�W²�·�iSY»�QY†ˆ²�W²�Š·�`S³�±�������š�&�� �!�
                                    "�#�!�$�!%�#&�)'�/$�5(�;)�=*�C+�I(�O,�U-�W.�],�c/�i0�k1�q2�w/�}3�ƒ4�…5�‹3�’6�˜7�š8� 9�¦6�­:�³;�»:�¿�Â�X��������b�M��N���U�����*·�‘*“µ�•*»�—Y·�™µ�š*µ�œ±����������q�^�
                                      s�t�u���������ž�Ÿ���� �¡��N���I�����*´�¢Ç�*»�¤Y·�¦µ�¢*´�¢°�����������€����������ž�Ÿ����§�¨��N���”�����0*¶�©L»�­Y·�¯M,+¶�°»�´Y,·�¶N-*¶�¸¶�¼-¶�À-d¶�Ä-°�������"���Œ��
                                    Ž��‘�#’�(“�.”����*����0�ž�Ÿ����+�:�;��
                                    �#�Ç�;����È�É���º�»��N���L�����*´�ÊÇ�*»�ÌY¸�η�Ôµ�Ê*´�Ê°����������Ÿ�¡�£���������ž�Ÿ����×�Ø��Ù�����Ú�Ü�N���é��	���O*¶�¸:›�+¶�Þ¤�»�ÚYâ·�ä¿Ç�
                                    »�ÜYç·�é¿+¶�ì:»�ðY-·�ò¶�ó¶�ù±�������&�	��º�»�¼�½�"¾�,À�9Å�IÆ�NÇ����\�	���O�ž�Ÿ�����O�þ�É����O�ÿ�����O�����O�����O�����O�\���I�A�B��9�����Ù�����Ü�Ú�N��	�����o,Á�´™�c*¶�¸:›�
                                    ,¹	�¤�»�ÚYâ·�ä¿Ç�
                                    »�ÜYç·�é¿,À�´:*´Æ�*´¶¶¶:+¶�ó¶�ù§�
                                      *+,·±�������:���Ù�Û�
                                    Ü�Ý�&Þ�+ß�5á�;â�Bã�Nä�Vé�_ê�gï�nð����H����o�ž�Ÿ�����o����o�þ����o ���
                                    �Z�A�B��;�,!�É��V���"#��Ù�����Ü�Ú�N���Ø�����J,Á�´™�»$Y+,À�´·&:¶)§�,,Á+™�»-Y+,À+·/:¶2§�*+,·3±�������.������ �'�,	�0
                                      �3�8�@�I����H����J�ž�Ÿ�����J56����J�þ����J �����J7����89��8�8:��;<��N���/�����*´�•°�������������������ž�Ÿ���=>��N���Q�����*·?À�L+»�—Y·�™µ�š+°����������$�%�&���������ž�Ÿ����
                                    A�Ÿ��BC��N���Z�����,,¹D�,+¹J�¹P�±����������4�5�7���� �����ž�Ÿ�����ST����U�G��VW��N���_�����*+·X+*´�š¶Z+*´�š¶^*+µ±����������@�A�
                                    B�C�D���������ž�Ÿ�����b�I��cW��N���_�����*+·d+*´�š¶f+*´�š¶i*µ±����������N�O�
                                    P�Q�R���������ž�Ÿ�����b�I��lm��N���,�����°����������^���������ž�Ÿ���no��N���5�����*·p²�¸r°����������j���������ž�Ÿ���xy��N���E�����*´zÇ�
                                      *¸|µz*´z°����������t�u�v���������ž�Ÿ���€y��N���G�����*´Ç�*¸ƒµ*´°����������€��‚���������ž�Ÿ���‡ˆ��N���>�����*+µ±�������
                                      ���Œ����������ž�Ÿ�����‰�?��Šˆ��N���>�����*+µz±�������
                                    ! ���–�—���������ž�Ÿ�����‰�?��‹Œ��N���/�����*´°���������� ���������ž�Ÿ����«�¬��N���×�����G*´Ç�>*»�­Y·�¯µL+¶‘M»—Y,·™N*´-¶œ-¶ §�L»£Y¥+·§¿*´°���2�5�Ü�����*�
                                    ! ��¬�°�±�²�³�%´�.µ�5·�6¹�B¼����4����G�ž�Ÿ���� bª���«��%�¬­��6�®¯�°������ b±��²�³��N���>�����*+µ±�������
                                    ! ���Ê�Ë���������ž�Ÿ�����³�;��´µ��N���/�����*´�œ¬����������ß���������ž�Ÿ���¶·��N���>�����*µ�œ±�������
                                    ! ���î�ï���������ž�Ÿ�����¸�K��¹���º»���:��X¼¾�	�¤�¿�	À�Â	�Q�Ã�	�—�Ä�	�ô�Å	�ú�Æ�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,91 ****
                                    ! Êþº¾���1û�� javax/swing/text/html/HTMLWriter��javax/swing/text/AbstractWriter�	outWriter�Ljava/io/Writer;�htmlDoc�$Ljavax/swing/text/html/HTMLDocument;�openEmbededTagHashSet�Ljava/util/HashSet;�new_line_str�Ljava/lang/String;�html_entity_char_arr�[C�html_entity_escape_str_arr�[Ljava/lang/String;�doc_pos�I�doc_len�doc_offset_remaining�doc_len_remaining�htmlFragmentParentHashSet�	startElem�Ljavax/swing/text/Element;�endElem�fg_pass_start_elem�Z�fg_pass_end_elem�<init>�7(Ljava/io/Writer;Ljavax/swing/text/html/HTMLDocument;)V�Code
                                    ! ��!��"�.(Ljava/io/Writer;Ljavax/swing/text/Document;)V	��$��	��&��	��(�	�
                                    ! �*�
                                    ! 	��,��	��.�
                                    ��0�java/lang/String�2�<�4�>�6�&�8�"	��:��	��<��	��>��	��@��	��B��	��D��
                                    ! 	��F��	��H��	��J��	��L���N�java/util/HashSet
                                    ! �M�P��Q�()V�LineNumberTable�LocalVariableTable�this�"Ljavax/swing/text/html/HTMLWriter;�writer�doc�9(Ljava/io/Writer;Ljavax/swing/text/html/HTMLDocument;II)V
                                    ! ��Z��[�0(Ljava/io/Writer;Ljavax/swing/text/Document;II)V�pos�len�write�
                                    ! Exceptions�a�java/io/IOException�c�%javax/swing/text/BadLocationException
                                    ! �e�g�f�"javax/swing/text/html/HTMLDocument�h�i�getDefaultRootElement�()Ljavax/swing/text/Element;
                                    ! ��k�l�m�traverse�(Ljavax/swing/text/Element;)V�o�java/lang/StringBuilder�q�
                                    Bad Location(
                                    ! �n�s��t�(Ljava/lang/String;)V
                                    ! �n�v�w�x�append�(I)Ljava/lang/StringBuilder;�z�, 
                                    ! �n�|�w�}�-(Ljava/lang/String;)Ljava/lang/StringBuilder;��)
                                    ! �n��‚�ƒ�toString�()Ljava/lang/String;
                                    ! �b�…��†�(Ljava/lang/String;I)V
                                    ! �e�ˆ�‰�Š�getCharacterElement�(I)Ljavax/swing/text/Element;�Œ�Ž��javax/swing/text/Element���getStartOffset�()I
                                    ! �M�’�“�”�contains�(Ljava/lang/Object;)Z
                                    ! �M�–�—�”�add�Œ�™�š�i�getParentElement
                                    ! ��œ��m�traverseHtmlFragment
                                    ! �M�Ÿ� �¡�toArray�()[Ljava/lang/Object;�£�</
                                    ! �¥��¦�java/lang/Object�¨�>
                                    ! ��ª�«�t�writeRaw�rootElem�start_offset�tempParentElem�tag_arr�[Ljava/lang/Object;�i�writeAttributes�"(Ljavax/swing/text/AttributeSet;)V�µ�·�¶�javax/swing/text/AttributeSet�¸�¹�getAttributeNames�()Ljava/util/Enumeration;�»�½�¼�java/util/Enumeration�¾�¿�nextElement�()Ljava/lang/Object;�µ�Á�Â�Ã�getAttribute�&(Ljava/lang/Object;)Ljava/lang/Object;�Å�javax/swing/text/html/HTML$Tag�Ç�javax/swing/text/StyleConstants	�É�Ë�Ê�$javax/swing/text/html/HTML$Attribute�Ì�Í�ENDTAG�&Ljavax/swing/text/html/HTML$Attribute;	�É�Ï�Ð�Í�SELECTED�Ò�	 selected	�É�Ô�Õ�Í�CHECKED�×� checked�Ù� 
                                    ! �n�Û�w�Ü�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;�Þ�="�à�"�»�â�ã�ä�hasMoreElements�()Z�attrSet�Ljavax/swing/text/AttributeSet;�attrNameEnum�Ljava/util/Enumeration;�key�Ljava/lang/Object;�value�emptyTag�Œ�î�ï�ƒ�getName�Œ�ñ�ò�ó�
                                    getAttributes�!()Ljavax/swing/text/AttributeSet;�õ�<
                                    ! ��÷�²�³
                                    ! ��ù�ú�û�
                                    ! isBlockTag�"(Ljavax/swing/text/AttributeSet;)Z�	paramElem�	elem_name	�Æ�ÿ��ê�
                                    NameAttribute
                                    ! �Ä�ä�isBlock�startTag
                                    ! ��Q�indent
                                    ! �	
                                    ! �Q�writeLineSeparator
                                    ! �
                                    �Q�
                                    ! incrIndent�textAreaContent�	<textarea	�Æ�ê�ModelAttribute�javax/swing/text/Document��	getLength�getText�(II)Ljava/lang/String;�</textarea>�tempDocument�Ljavax/swing/text/Document;�text�Œ#$��getEndOffset
                                    ! �e
                                    ! �'(�t�writeContent�offset�	txt_value�
                                    selectContent-�<select/�javax/swing/ComboBoxModel.123�getElementAt�(I)Ljava/lang/Object;5�javax/swing/text/html/Option
                                    ! �789�writeOption�!(Ljavax/swing/text/html/Option;)V.;<��getSize
                                    ! �>?�Q�
                                    ! decrIndentA�	</select>�
                                    comboBoxModel�Ljavax/swing/ComboBoxModel;E�<option
                                    ! 4�ñ
                                    ! 4HI�ƒ�getLabelK�	</option>�option�Ljavax/swing/text/html/Option;�endTag�comment	�ÉQR�Í�COMMENTT�<!--V�-->�comment_str�synthesizedElement�(Ljavax/swing/text/Element;)Z	�Ä[\]�CONTENT� Ljavax/swing/text/html/HTML$Tag;	�Ä_R]	�Äab]�IMPLIED�element�tagType�matchNameAttribute�B(Ljavax/swing/text/AttributeSet;Ljavax/swing/text/html/HTML$Tag;)Z�tag�writeEmbeddedTags�closeOutUnwantedEmbeddedTags�µkl�”�	isDefined
                                    ! ��
                                    ! �Mop�”�remove�output�([CII)Vt�gnu/java/lang/CPStringBuilder
                                    ! s�P
                                    ! �wxy�isCharHtmlEntity�(C)Z
                                    ! �{|}�escapeCharHtmlEntity�(C)Ljava/lang/String;
                                    ! s�w€�3(Ljava/lang/String;)Lgnu/java/lang/CPStringBuilder;
                                    ! s‚�wƒ�"(C)Lgnu/java/lang/CPStringBuilder;
                                    ! s��chars�off�	strBuffer�Lgnu/java/lang/CPStringBuilder;
                                    ! �Ši�³
                                    ! �ŒXY
                                    ! �Žef
                                    ! �h�³
                                    ! �’!�m
                                    ! �”O�m�Œ–—��getElementCount�Œ™š�Š�
                                    ! getElement	�Äœ]�TITLEŸ�true
                                    ! �¥¡¢�”�equals¤�¦¨�title
                                    ! �eª«�Ã�getProperty	�Ä­®]�PRE°�<pre²�</pre>	�Ä´µ]�SELECT
                                    ! �·+�³	�Ĺº]�TEXTAREA
                                    ! �¼�³
                                    ! �¾�m
                                    ! �ÀN�m
                                    ! �Â�ì�m�currElem�child_elem_count�	childElem�
                                    fg_is_end_tag�	title_str�ŒÉÊ�ä�isLeaf�fg_is_fragment_parent_elem�fg_is_start_and_end_elem�content_offset�content_length�	split_len
                                    ! �/ÑÒÓ�toCharArray�()[C
                                    ! �/ÕÖ��length
                                    ! �Øqr�	param_str
                                    ! �ÛÜÝ�
                                    hasHtmlEntity�(Ljava/lang/String;)Z
                                    ! ��str_char_arr�writeAllAttributes
                                    ! �¥âãä�getClass�()Ljava/lang/Class;
                                    ! æ�ç�java/lang/Class
                                    ! �/éêë�indexOf�(I)I�ret_bool�
                                      param_char�C
                                    ! �n�P
                                    ! �nñ�wò�(C)Ljava/lang/StringBuilder;�ret_str�
                                    ! SourceFile�HTMLWriter.java�InnerClassesø�javax/swing/text/html/HTML�	Attribute�Tag�!�����������������	�
                                    ! ���������
                                    �������������������������������
                                    ! ������������������������������+�����•*+,·� *µ�#*µ�%*µ�'*)µ�+*¼Y<UY>UY&UY"Uµ�-*½�/Y1SY3SY5SY7Sµ�9*µ�;*µ�=*µ�?*µ�A*µ�C*µ�E*µ�G*µ�I*µ�K*+µ�#*,µ�%*»�MY·�Oµ�'±����R���^����p��J��O��T��V��X�6�Z�7�Z�=�Z�L�[�R�^�W�_�\�`�a�a�f�b�k�c�p�d�u�e�z�f��q�„�r�‰�s�”�t�S��� ����•�T�U�����•�V�����•�W�����X����w�����¹*+,·�Y*µ�#*µ�%*µ�'*)µ�+*¼Y<UY>UY&UY"Uµ�-*½�/Y1SY3SY5SY7Sµ�9*µ�;*µ�=*µ�?*µ�A*µ�C*µ�E*µ�G*µ�I*µ�K*+µ�#*,µ�%*»�MY·�Oµ�'*µ�;*µ�?*µ�=*µ�A*»�MY·�Oµ�C±����R���r�����	�J��O��T��V��X�9�Z�:�Z�@�Z�O�[�U�^�Z�_�_�`�d�a�i�b�n�c�s�d�x�e�}�f�‚�‚�‡�ƒ�Œ�„�—�†�œ�‡�¡�ˆ�§�‰�­�Š�¸�‹�S���4����¹�T�U�����¹�V�����¹�W�����¹�\�����¹�]����^�Q��_�����`�b���í����%*´�%¶�dL*´�; �*´�= �*+·�j§�Ó*´�;Ÿ�*´�= �3»�bY»�nYp·�r*´�;¶�uy¶�{*´�=¶�u~¶�{¶�€*´�;·�„¿**´�%*´�;¶�‡µ�E*´�E¹�‹�=ž�
                                    *Y´�?dµ�?*´�EN§�*´�C-¶�‘š�*´�C-¶�•W-¹�˜�YNÇÿä**´�%*´�;*´�=`d¶�‡µ�G*´�GN§�*´�C-¶�‘š�*´�C-¶�•W-¹�˜�YNÇÿä*+·�›*´�'¶�žM>§�$*»�nY¢·�r,2¶�¤¶�{§¶�{¶�€·�©„,¾¡ÿܱ����R���r����—��™��œ� �¡�0�¢�=�£�\�¢�`�¥�o�§�y�«�}�¬�‡�®�Œ�°��²�š�³�£�°�®�¸�Ä�º�É�¼�Ì�¾�×�¿�à�¼�ë�Ã�ð�È�ø�Ê�ý�Ì�Ê$�Ï�S���>���%�T�U����¬���y�w�­���Œ�d�®���ø�-�¯�°��ú�*�±����²�³��_�����`����þ�����|+¹�´�M§�k,¹�º�N+-¹�À�:-Á�Äš�T-Á�Æš�M-²�È¥�F-²�Φ�*Ñ·�©§�6-²�Ó¦�*Ö·�©§�&*»�nYØ·�r-¶�Úݶ�{¶�Ú߶�{¶�€·�©,¹�á�šÿ’±����R���6�
                                    ���Þ��à�
                                    ! �â��ã��æ�(�ç�/�é�6�ê�?�ë�F�ì�O�î�r�à�{�ó�S���4����|�T�U�����|�å�æ���u�ç�è���a�é�ê���X�ë�ê���ì�m��_�����`�b����³�����O+¹�í�M+¹�ð�N*»�nYô·�r,¶�{¶�€·�©*-¶�ö*§·�©*-¶�ø™�*»�nY¢·�r,¶�{§¶�{¶�€·�©±����R���"������"�'�-�5
                                    ! �N
                                    �S���*����O�T�U�����O�ü����H�ý����A�å�æ���ú�û�����P�����+²�þ¹�À�À�Ķ¬����R�������	���S��������T�U������å�æ���m��_�����`�b����¢�����:+¹�í�M+¹�ð�N*¶*»�nYô·�r,¶�{¶�€·�©*-¶�ö*§·�©*¶*¶±����R���&�	��*�+�-�.�&/�+0�11�52�94�S���*����:�T�U�����:�ü����3�ý����,�å�æ���³��_�����`�b����ª�����D*¶*¶*·�©*+¶�ö*§·�©+²¹�À�ÀM*,,¹�¹�·�©*¶*·�©±����R���.���B�C�D�E�F�I�&H�'K�8L�<M�CO�S��� ����D�T�U�����D�å�æ��'� ��!�m��_�����`�b����‰�����'+¹�‹�=+¹"�+¹�‹�d>*´�%¶%:*·&±����R������]�^�_� a�&c�S���4����'�T�U�����'�ü���� )�����]��� �*���+�³��_�����`����ã�����_*¶*¶*,·�©*+¶�ö*§·�©*¶*¶+²¹�À�À.M>§�*,¹0�À4¶6„,¹:�¡ÿè*¶=*¶*@·�©±����R���B���p�q�r�s�t�u�v�"y�.x�/{�4}�B{�O€�S�W‚�^„�S���*����_�T�U�����_�å�æ��/�0BC��1��±���89��_�����`����}�����-*¶*D·�©*+¶F¶�ö*§·�©*+¶G·&*J·�©*¶±����R���"����‘�’�“�•�!—�(˜�,š�S�������-�T�U�����-LM��N�m��_�����`���������-+¹�í�M*¶=*¶*»�nY¢·�r,¶�{§¶�{¶�€·�©*¶±����R������¦�©�ª�«�(¬�,®�S��� ����-�T�U�����-�ü����&�ý���O�m��_�����`�b����„�����0+¹�ð�M,²P¹�À�À�/N*»�nYS·�r-¶�{U¶�{¶�€·�©±����R������¸�º�¼�/¾�S���*����0�T�U�����0�ü����)�å�æ���W���XY�����†�����*+¹�ð�M,²�þ¹�À�N-²Z¥�-²^¥�
                                    ! -²`¦�¬¬����R������Ì�Í�Ï�Ð�&Ñ�(Ó�S���*����*�T�U�����*c����#�å�æ���d�ê��ef�����g�����+²�þ¹�À�N-,¦�¬¬����R������ä�
                                    ! æ�ç�é�S���*�����T�U������å�æ����g]��
                                    ! �	d�ê��h�³��_�����`����à�����b+¹�´�M§�Q,¹�º�N+-¹�À�:-Á�Ä™�:*´�'-¶�‘š�/*»�nYô·�r-¶�Ú¶�€·�©*À�µ¶�ö*§·�©*´�'-¶�•W,¹�á�šÿ¬±����R���2���ù�û�
                                    ! ý�þ���!�,�@�I�O�Xû�a�S���4����b�T�U�����b�å�æ���[�ç�è���G�é�ê���>�ë�ê��i�³��_�����`����¿�����Q*´�'¶�žM>§�@,2À�Ä:+¹j�š�**»�nY¢·�r¶m¶�{§¶�{¶�€·�©*´�'¶nW„,¾¡ÿÀ±����R���"�����
                                    � � "�=#�G�P'�S���4����Q�T�U�����Q�å�æ���I�¯�°��
                                    ! �F�±����2�é]��
                                    ! �Q��_�����`����7�����	**´�+·�©±����R���
                                    ! ���3�4�S�������	�T�U���qr��_�����`����Á�����I»sY·u:6§�,*+4·v™�*+4·z¶~W§�
                                    +4¶W„+¾¡ÿÓ*¶„·�©±����R���"���C�	E�G�H�+J�5E�?M�HO�S���>����I�T�U�����I…�����I†�����I�]���	�@‡ˆ���3�±����l�m��_�����`�b���{����¿+M,¹�ð�N*-¶‰*+¶‹™�i*-²Z¶™�*-¶*,¶‘§“*-²^¶™�*,¶“§€*-²`¶™u,¹•�6žh6§�+¹˜�:*·�j„¡ÿé§E*-²›¶™�{6-¹�´�:§�,¹�º�:-¹�À�:²�Ȧ�ž¶ ™�6¹�á�šÿЙ�
                                    *£·�©§�ê*¶*¥·�©*´�%§¶©À�/:Æ�Ë*·&§�Â*-²¬¶™�R+¹�ð�N*¶*¯·�©*-¶�ö*§·�©,¹•�66§�+¹˜�:*·�j„¡ÿé*±·�©§�h*-²³¶™�*-¶¶§�U*-²¸¶™�*-¶»§�B,¹•�6ž�0*,¶½6§�+¹˜�:*·�j„¡ÿé*,¶¿§�*,¶Á±����R���î�;��_�a�	c�f�h�!j�&k�.m�9o�Aq�Ls�Tu�Yw�_y�i{�ow�|…�‡‡�Šˆ�’Š�•Œ�ž�¨�»�¾Š�È“�Í”�×—�Û˜�â›�ïš�ñ�öž�ÿ¢
                                    ! ¥§¨©!ª'¬/®5°?²E®O¶Y¹d»l½w¿Ã‡ÅŒÇ‘ɗˡͧɱѹ־Û�S���¶���¿�T�U����¿�ü���½Ã���	¶�å�æ��T�%Ä���\��±���i�Å���Š�uÆ���’�m�ç�è��ž� �é�ê��¨��ë�ê��ñ�Ç��/�*Ä��2��±��?�Å��‡�7Ä��”��±��¡�Å�����m��_�����`�b���ž��
                                    ! ��ü+M>6*´�C+¶�‘™�>+*´�E¦�*µ�I+*´�E¦�+*´�G¦�6,¹�ð�:*¶‰š�*´�I™�
                                    ! *´�K™�™˜*+¶‹™*²Z¶™�º*¶+¹�‹�6,¹"�d6*´�?ž�a*´�?¤�J6*´�?d6*´�A¤�	*´�A6*´�%*´�?`¶%:	*	·&*µ�?*Y´�Adµ�A§*Y´�?dµ�?§*´�A£�*,¶‘*Y´�Adµ�A§ê*´�%*´�A¶%:*·&*µ�A§Í*²^¶™�*,¶“§¹*²`¶™­,¹•�6ž 6§�+¹˜�:*·�›„¡ÿé§}+¹È�™�(*´�?ž�*Y´�?dµ�?§�*´�Až�
                                    *Y´�Adµ�A*²›¶™�}6¹�´�:§�-¹�º�:¹�À�:	²�Ȧ�	ž¶ ™�6¹�á�šÿÏ™�
                                    *£·�©§�ñ*¶*¥·�©*´�%§¶©À�/:Æ�Ò*·&§�É*²¬¶™�T+¹�ð�:*¶*¯·�©*¶�ö*§·�©,¹•�66§�+¹˜�:*·�›„¡ÿé*±·�©§�l*²³¶™�*¶¶§�W*²¸¶™�*¶»§�B,¹•�6ž�0*,¶½6§�+¹˜�:*·�›„¡ÿé*,¶¿§�*,¶Á+*´�G¦�*µ�K±����R��Ž�c��é�ë�ì�î�ï�ñ�ò�!ô�1õ�4÷�<ù�Bû�Mü�Yÿ�a�m�s�{�†�
                                    ! �–�š�£�¬�²�¸�¿�Ä�Ê�Ï�Ý �â!�ë$�ô'�ù(-
                                    .-02$6088:D<L>Q@WBaDg@tN}P„R‘T˜V¢\®^±_ºa½cÆdÑfägçañjök�norqtu(y4|<~@G€MSƒ[…a‡k‰q…{…‘’š”¦–¯š·œ¼žÁ Ç¢Ñ¤× á¨é­îµö¶û¸�S���ü���ü�T�U����ü�ü���úÃ���øË���õÌ���<À�å�æ��{�©Í���†�žÎ���š�CÏ���Ä�*��	�*��L�%Ä��T��±��a�Å��±�wÆ��º�n�ç�è�Æ�!�é�ê�Ñ��ë�ê�	�Ç��[�*Ä��^��±��k�Å��·�7Ä��Ä��±��Ñ�Å����«�t��_�����`����F�����*+¶Ð+¶Ô·×±����R���
                                    ! ����
                                    Æ�S��������T�U�����Ù���(�t��_�����`����o�����!+¶ÐM*+·Ú™�*,,¾¶Þ§�*,,¾·×±����R������Ó�Õ�
                                    Ö�Ø� Ú�S��� ����!�T�U�����!Ù����ß���à�³��_�����`����ì�����v+¹�´�M§�e,¹�º�N+-¹�À�:*»�nYØ·�r-¶�Úݶ�{¶�Ú߶�{¶�€·�©*»�nYØ·�r-¶á¶å¶�{ݶ�{¶á¶å¶�{߶�{¶�€·�©,¹�á�šÿ˜±����R���*�
                                    ! ��ç�é�
                                    ! ë�ì�î�=ï�Vð�iï�lé�uó�S���4����v�T�U�����v�å�æ���o�ç�è���[�é�ê���R�ë�ê��ÜÝ�����ˆ�����(=>§�+*´�-4¶èŸ�=§�„*´�-¾¡ÿä¬����R�������������&�S���*����(�T�U�����(Ù����&ì����"�±���xy�����„�����$=>§�*´�-4 �=§�„*´�-¾¡ÿè¬����R������������"#�S���*����$�T�U�����$íî���"ì�����±���|}�����–�����6»�nY·ï¶ð¶�€M>§�*´�-4 �
                                    *´�92M§�„*´�-¾¡ÿã,°����R������0�2�4�6�%7�(2�4;�S���*����6�T�U�����6íî���'ó����#�±���ô���õö�����É÷ù��Ä÷ú�	
                                    \ No newline at end of file
                                    --- 1,89 ----
                                    ! Êþº¾���1�� javax/swing/text/html/HTMLWriter��javax/swing/text/AbstractWriter�	outWriter�Ljava/io/Writer;�htmlDoc�$Ljavax/swing/text/html/HTMLDocument;�openEmbeddedTagHashSet�Ljava/util/HashSet;�	Signature�5Ljava/util/HashSet<Ljavax/swing/text/html/HTML$Tag;>;�new_line_str�Ljava/lang/String;�html_entity_char_arr�[C�html_entity_escape_str_arr�[Ljava/lang/String;�doc_pos�I�doc_len�doc_offset_remaining�doc_len_remaining�htmlFragmentParentHashSet�/Ljava/util/HashSet<Ljavax/swing/text/Element;>;�	startElem�Ljavax/swing/text/Element;�endElem�fg_pass_start_elem�Z�fg_pass_end_elem�<init>�7(Ljava/io/Writer;Ljavax/swing/text/html/HTMLDocument;)V�Code
                                    ! ��$� �%�.(Ljava/io/Writer;Ljavax/swing/text/Document;)V	��'��	��)��	��+�	�
                                    ! �-�
                                    ! 	��/�
                                    �	��1���3�java/lang/String�5�<�7�>�9�&�;�"	��=��	��?��	��A��	��C��	��E��	��G��
                                    ! 	��I��	��K��	��M��	��O���Q�java/util/HashSet
                                    ! �P�S� �T�()V�LineNumberTable�LocalVariableTable�this�"Ljavax/swing/text/html/HTMLWriter;�writer�doc�9(Ljava/io/Writer;Ljavax/swing/text/html/HTMLDocument;II)V
                                    ! ��]� �^�0(Ljava/io/Writer;Ljavax/swing/text/Document;II)V�pos�len�write�
                                    ! Exceptions�d�java/io/IOException�f�%javax/swing/text/BadLocationException
                                    ! �h�j�i�"javax/swing/text/html/HTMLDocument�k�l�getDefaultRootElement�()Ljavax/swing/text/Element;
                                    ! ��n�o�p�traverse�(Ljavax/swing/text/Element;)V�r�java/lang/StringBuilder�t�
                                    Bad Location(
                                    ! �q�v� �w�(Ljava/lang/String;)V
                                    ! �q�y�z�{�append�(I)Ljava/lang/StringBuilder;�}�, 
                                    ! �q��z�€�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�‚�)
                                    ! �q�„�…�†�toString�()Ljava/lang/String;
                                    ! �e�ˆ� �‰�(Ljava/lang/String;I)V
                                    ! �h�‹�Œ��getCharacterElement�(I)Ljavax/swing/text/Element;��‘��javax/swing/text/Element�’�“�getStartOffset�()I
                                    ! �P�•�–�—�contains�(Ljava/lang/Object;)Z
                                    ! �P�™�š�—�add��œ��l�getParentElement
                                    ! ��Ÿ� �p�traverseHtmlFragment
                                    ! �P�¢�£�“�size�¥�javax/swing/text/html/HTML$Tag
                                    ! �P�§�¨�©�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�«�![Ljavax/swing/text/html/HTML$Tag;�­�</
                                    ! �¤�„�°�>
                                    ! ��²�³�w�writeRaw�rootElem�start_offset�tempParentElem�tag_arr�i�writeAttributes�"(Ljavax/swing/text/AttributeSet;)V�¼�¾�½�javax/swing/text/AttributeSet�¿�À�getAttributeNames�()Ljava/util/Enumeration;�Â�Ä�Ã�java/util/Enumeration�Å�Æ�nextElement�()Ljava/lang/Object;�¼�È�É�Ê�getAttribute�&(Ljava/lang/Object;)Ljava/lang/Object;�Ì�javax/swing/text/StyleConstants	�Î�Ð�Ï�$javax/swing/text/html/HTML$Attribute�Ñ�Ò�ENDTAG�&Ljavax/swing/text/html/HTML$Attribute;	�Î�Ô�Õ�Ò�SELECTED�×�	 selected	�Î�Ù�Ú�Ò�CHECKED�Ü� checked�Þ� 
                                    ! �q�à�z�á�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;�ã�="�å�"�Â�ç�è�é�hasMoreElements�()Z�attrSet�Ljavax/swing/text/AttributeSet;�attrNameEnum�Ljava/util/Enumeration;�key�Ljava/lang/Object;�value�LocalVariableTypeTable�Ljava/util/Enumeration<*>;�emptyTag��õ�ö�†�getName��ø�ù�ú�
                                    getAttributes�!()Ljavax/swing/text/AttributeSet;�ü�<
                                    ! ��þ�¹�º
                                    ! ���
                                    ! isBlockTag�"(Ljavax/swing/text/AttributeSet;)Z�	paramElem�	elem_name	�Ë�ï�
                                    NameAttribute
                                    ! �¤	
                                    ! �é�isBlock�startTag
                                    ! �
                                    �T�indent
                                    ! ��T�writeLineSeparator
                                    ! ��T�
                                    ! incrIndent�textAreaContent�	<textarea	�Ë�ï�ModelAttribute�javax/swing/text/Document�“�	getLength!"#�getText�(II)Ljava/lang/String;%�</textarea>�tempDocument�Ljavax/swing/text/Document;�text�*+�“�getEndOffset
                                    ! �h!
                                    ! �./�w�writeContent�offset�	txt_value�
                                    selectContent4�<select6�javax/swing/ComboBoxModel589:�getElementAt�(I)Ljava/lang/Object;<�javax/swing/text/html/Option
                                    ! �>?@�writeOption�!(Ljavax/swing/text/html/Option;)V5BC�“�getSize
                                    ! �EF�T�
                                    ! decrIndentH�	</select>�
                                    comboBoxModel�Ljavax/swing/ComboBoxModel;L�<option
                                    ! ;�ø
                                    ! ;OP�†�getLabelR�	</option>�option�Ljavax/swing/text/html/Option;�endTag�comment	�ÎXY�Ò�COMMENT[�<!--]�-->�comment_str�synthesizedElement�(Ljavax/swing/text/Element;)Z	�¤bcd�CONTENT� Ljavax/swing/text/html/HTML$Tag;	�¤fYd	�¤hid�IMPLIED�element�tagType�matchNameAttribute�B(Ljavax/swing/text/AttributeSet;Ljavax/swing/text/html/HTML$Tag;)Z�tag�writeEmbeddedTags�closeOutUnwantedEmbeddedTags�¼rs�—�	isDefined
                                    ! �Puv�—�remove�output�([CII)Vz�gnu/java/lang/CPStringBuilder
                                    ! y�S
                                    ! �}~�isCharHtmlEntity�(C)Z
                                    ! �‚ƒ�escapeCharHtmlEntity�(C)Ljava/lang/String;
                                    ! y…�z†�3(Ljava/lang/String;)Lgnu/java/lang/CPStringBuilder;
                                    ! yˆ�z‰�"(C)Lgnu/java/lang/CPStringBuilder;
                                    ! y�„�chars�off�	strBuffer�Lgnu/java/lang/CPStringBuilder;
                                    ! �p�º
                                    ! �’_`
                                    ! �”lm
                                    ! �–o�º
                                    ! �˜(�p
                                    ! �šV�p�œ�“�getElementCount�Ÿ ��
                                    ! getElement	�¤¢£d�TITLE¥�true
                                    ! §©¨�java/lang/Objectª�—�equals¬�®°�title
                                    ! �h²³�Ê�getProperty	�¤µ¶d�PRE¸�<preº�</pre>	�¤¼½d�SELECT
                                    ! �¿2�º	�¤ÁÂd�TEXTAREA
                                    ! �Ä�º
                                    ! �Æ�p
                                    ! �ÈU�p
                                    ! �Ê�ó�p�currElem�child_elem_count�	childElem�
                                    fg_is_end_tag�	title_str�ÑÒ�é�isLeaf�fg_is_fragment_parent_elem�fg_is_start_and_end_elem�content_offset�content_length�	split_len
                                    ! �2ÙÚÛ�toCharArray�()[C
                                    ! �2ÝÞ�“�length
                                    ! �àwx�	param_str
                                    ! �ãäå�
                                    hasHtmlEntity�(Ljava/lang/String;)Z
                                    ! �à�str_char_arr�writeAllAttributes
                                    ! §êëì�getClass�()Ljava/lang/Class;
                                    ! î�„ï�java/lang/Class
                                    ! �2ñòó�indexOf�(I)I�ret_bool�
                                      param_char�C
                                    ! �q�S
                                    ! �qù�zú�(C)Ljava/lang/StringBuilder;�ret_str�
                                    ! SourceFile�HTMLWriter.java�InnerClasses��javax/swing/text/html/HTML�	Attribute�Tag�!�����������������	�
                                    ! ��������
                                    ������������������������������������
                                    ! ����������������������������� �!��"��+�����•*+,·�#*µ�&*µ�(*µ�**,µ�.*¼Y<UY>UY&UY"Uµ�0*½�2Y4SY6SY8SY:Sµ�<*µ�>*µ�@*µ�B*µ�D*µ�F*µ�H*µ�J*µ�L*µ�N*+µ�&*,µ�(*»�PY·�Rµ�*±����U���^����p��J��O��T��V��X�6�Z�7�Z�=�Z�L�[�R�^�W�_�\�`�a�a�f�b�k�c�p�d�u�e�z�f��q�„�r�‰�s�”�t�V��� ����•�W�X�����•�Y�����•�Z���� �[��"��w�����¹*+,·�\*µ�&*µ�(*µ�**,µ�.*¼Y<UY>UY&UY"Uµ�0*½�2Y4SY6SY8SY:Sµ�<*µ�>*µ�@*µ�B*µ�D*µ�F*µ�H*µ�J*µ�L*µ�N*+µ�&*,µ�(*»�PY·�Rµ�**µ�>*µ�B*µ�@*µ�D*»�PY·�Rµ�F±����U���r�����	�J��O��T��V��X�9�Z�:�Z�@�Z�O�[�U�^�Z�_�_�`�d�a�i�b�n�c�s�d�x�e�}�f�‚�‚�‡�ƒ�Œ�„�—�†�œ�‡�¡�ˆ�§�‰�­�Š�¸�‹�V���4����¹�W�X�����¹�Y�����¹�Z�����¹�_�����¹�`����a�T��b�����c�e�"��þ����2*´�(¶�gL*´�> �*´�@ �*+·�m§�Ó*´�>Ÿ�*´�@ �3»�eY»�qYs·�u*´�>¶�x|¶�~*´�@¶�x¶�~¶�ƒ*´�>·�‡¿**´�(*´�>¶�Šµ�H*´�H¹�Ž�=ž�
                                    *Y´�Bdµ�B*´�HN§�*´�F-¶�”š�*´�F-¶�˜W-¹�›�YNÇÿä**´�(*´�>*´�@`d¶�Šµ�J*´�JN§�*´�F-¶�”š�*´�F-¶�˜W-¹�›�YNÇÿä*+·�ž*´�**´�*¶�¡½�¤¶�¦À�ªM>§�$*»�qY¬·�u,2¶�®¶�~¯¶�~¶�ƒ·�±„,¾¡ÿܱ����U���v����—��™��œ� �¡�0�¢�=�£�\�¢�`�¥�o�§�y�«�}�¬�‡�®�Œ�°��²�š�³�£�°�®�¸�Ä�º�É�¼�Ì�¾�×�¿�à�¼�ë�Ã�ð�É�È�Ë
                                    ! �Í(�Ë1�Ð�V���>���2�W�X���*�´���y�w�µ���Œ�d�¶���-�·�«��*�¸����¹�º��b�����c�"�������|+¹�»�M§�k,¹�Á�N+-¹�Ç�:-Á�¤š�T-Á�Ëš�M-²�Í¥�F-²�Ó¦�*Ö·�±§�6-²�ئ�*Û·�±§�&*»�qYÝ·�u-¶�ßâ¶�~¶�ßä¶�~¶�ƒ·�±,¹�æ�šÿ’±����U���6�
                                    ���ß��á�
                                    ! �ã��ä��ç�(�è�/�ê�6�ë�?�ì�F�í�O�ï�r�á�{�ô�V���4����|�W�X�����|�ê�ë���u�ì�í���a�î�ï���X�ð�ï��ñ������u�ì�ò���ó�p��b�����c�e�"���³�����O+¹�ô�M+¹�÷�N*»�qYû·�u,¶�~¶�ƒ·�±*-¶�ý*¯·�±*-¶�ÿ™�*»�qY¬·�u,¶�~¯¶�~¶�ƒ·�±±����U���"������"�'�-	�5�N�V���*����O�W�X�����O����H����A�ê�ë����"���P�����+²¹�Ç�À�¤¶¬����U�������	���V��������W�X������ê�ë���p��b�����c�e�"���¢�����:+¹�ô�M+¹�÷�N*¶*»�qYû·�u,¶�~¶�ƒ·�±*-¶�ý*¯·�±*¶*¶±����U���&�	��+�,�.�/�&0�+1�12�53�95�V���*����:�W�X�����:����3����,�ê�ë���º��b�����c�e�"���ª�����D*¶*¶*·�±*+¶�ý*¯·�±+²¹�Ç�ÀM*,,¹�¹ �·�±*¶*$·�±±����U���.���C�D�E�F�G�J�&I�'L�8M�<N�CP�V��� ����D�W�X�����D�ê�ë��'�&'��(�p��b�����c�e�"���‰�����'+¹�Ž�=+¹)�+¹�Ž�d>*´�(¶,:*·-±����U������^�_�`� b�&d�V���4����'�W�X�����'���� 0�����`��� �1���2�º��b�����c�"���ã�����_*¶*¶*3·�±*+¶�ý*¯·�±*¶*¶+²¹�Ç�À5M>§�*,¹7�À;¶=„,¹A�¡ÿè*¶D*¶*G·�±±����U���B���q�r�s�t�u�v�w�"z�.y�/|�4~�B|�O�S‚�Wƒ�^…�V���*����_�W�X�����_�ê�ë��/�0IJ��1��¸���?@��b�����c�"���}�����-*¶*K·�±*+¶M¶�ý*¯·�±*+¶N·-*Q·�±*¶±����U���"���‘�’�“�”�–�!˜�(™�,›�V�������-�W�X�����-ST��U�p��b�����c�"��������-+¹�ô�M*¶D*¶*»�qY¬·�u,¶�~¯¶�~¶�ƒ·�±*¶±����U������§�ª�«�¬�(­�,¯�V��� ����-�W�X�����-����&���V�p��b�����c�e�"���„�����0+¹�÷�M,²W¹�Ç�À�2N*»�qYZ·�u-¶�~\¶�~¶�ƒ·�±±����U������¹�»�½�/¿�V���*����0�W�X�����0����)�ê�ë���^���_`��"���†�����*+¹�÷�M,²¹�Ç�N-²a¥�-²e¥�
                                    ! -²g¦�¬¬����U������Í�Î�Ð�Ñ�&Ò�(Ô�V���*����*�W�X�����*j����#�ê�ë���k�ï��lm��"���g�����+²¹�Ç�N-,¦�¬¬����U������å�
                                    ! ç�è�ê�V���*�����W�X������ê�ë����nd��
                                    ! �	k�ï��o�º��b�����c�"���õ�����e+¹�»�M§�T,¹�Á�N+-¹�Ç�:-Á�¤™�=*´�*-¶�”š�2*»�qYû·�u-¶�߶�ƒ·�±*À�¼¶�ý*¯·�±*´�*-À�¤¶�˜W,¹�æ�šÿ©±����U���2���ú�ü�
                                    ! þ�ÿ��!�,�@�I�O�[ü�d
                                    �V���4����e�W�X�����e�ê�ë���^�ì�í���J�î�ï���A�ð�ï��ñ������^�ì�ò��p�º��b�����c�"���Í�����[*´�**´�*¶�¡½�¤¶�¦À�ªM>§�=,2:+¹q�š�**»�qY¬·�u¶�®¶�~¯¶�~¶�ƒ·�±*´�*¶tW„,¾¡ÿñ����U���&�	����� �"�*$�G%�Q�Z)�V���4����[�W�X�����[�ê�ë���F�·�«���C�¸����2�îd���T��b�����c�"���7�����	**´�.·�±±����U���
                                    ! ���5�6�V�������	�W�X���wx��b�����c�"���Á�����I»yY·{:6§�,*+4·|™�*+4·€¶„W§�
                                    +4¶‡W„+¾¡ÿÓ*¶Š·�±±����U���"���E�	G�I�J�+L�5G�?O�HQ�V���>����I�W�X�����I‹�����IŒ�����I�`���	�@Ž���3�¸����o�p��b�����c�e�"������¿+M,¹�÷�N*-¶*+¶‘™�i*-²a¶“™�*-¶•*,¶—§“*-²e¶“™�*,¶™§€*-²g¶“™u,¹›�6žh6§�+¹ž�:*·�m„¡ÿé§E*-²¡¶“™�{6-¹�»�:§�,¹�Á�:-¹�Ç�:²�ͦ�¤¶¦™�6¹�æ�šÿЙ�
                                    *«·�±§�ê*¶*­·�±*´�(¯¶±À�2:Æ�Ë*·-§�Â*-²´¶“™�R+¹�÷�N*¶*··�±*-¶�ý*¯·�±,¹›�66§�+¹ž�:*·�m„¡ÿé*¹·�±§�h*-²»¶“™�*-¶¾§�U*-²À¶“™�*-¶ç�B,¹›�6ž�0*,¶Å6§�+¹ž�:*·�m„¡ÿé*,¶ǧ�*,¶ɱ����U���î�;��a�c�	e�h�j�!l�&m�.o�9q�As�Lu�Tw�Yy�_{�i}�oy�|‡�‡‰�ŠŠ�’Œ�•Ž�ž�¨‘�»’�¾Œ�È•�Í–�×™�Ûš�â�ïœ�ñŸ�ö �ÿ¤
                                    ! §©ª«!¬'®/°5²?´E°O¸Y»d½l¿wÁŇnjɑ˗͡ϧ˱ӹؾÝ�V���¶���¿�W�X����¿���½Ë���	¶�ê�ë��T�%Ì���\��¸���i�Í���Š�uÎ���’�m�ì�í��ž� �î�ï��¨��ð�ï��ñ�Ï��/�*Ì��2��¸��?�Í��‡�7Ì��”��¸��¡�Í���ñ�����’�m�ì�ò��� �p��b�����c�e�"��°��
                                    ! ��ü+M>6*´�F+¶�”™�>+*´�H¦�*µ�L+*´�H¦�+*´�J¦�6,¹�÷�:*¶š�*´�L™�
                                    ! *´�N™�™˜*+¶‘™*²a¶“™�º*¶•+¹�Ž�6,¹)�d6*´�Bž�a*´�B¤�J6*´�Bd6*´�D¤�	*´�D6*´�(*´�B`¶,:	*	·-*µ�B*Y´�Ddµ�D§*Y´�Bdµ�B§*´�D£�*,¶—*Y´�Ddµ�D§ê*´�(*´�D¶,:*·-*µ�D§Í*²e¶“™�*,¶™§¹*²g¶“™­,¹›�6ž 6§�+¹ž�:*·�ž„¡ÿé§}+¹Ð�™�(*´�Bž�*Y´�Bdµ�B§�*´�Dž�
                                    *Y´�Ddµ�D*²¡¶“™�}6¹�»�:§�-¹�Á�:¹�Ç�:	²�ͦ�	¤¶¦™�6¹�æ�šÿÏ™�
                                    *«·�±§�ñ*¶*­·�±*´�(¯¶±À�2:Æ�Ò*·-§�É*²´¶“™�T+¹�÷�:*¶*··�±*¶�ý*¯·�±,¹›�66§�+¹ž�:*·�ž„¡ÿé*¹·�±§�l*²»¶“™�*¶¾§�W*²À¶“™�*¶ç�B,¹›�6ž�0*,¶Å6§�+¹ž�:*·�ž„¡ÿé*,¶ǧ�*,¶É+*´�J¦�*µ�N±����U��Ž�c��ë�í�î�ð�ñ�ó�ô�!ö�1÷�4ù�<û�Bý�Mþ�Y�a�m�s�{�†
                                    ! ��–�š�£�¬�²�¸�¿�Ä�Ê�Ï�Ý"�â#�ë&�ô)�ù*/
                                    0/24$80:8<D>L@QBWDaFgBtP}R„T‘V˜X¢^®`±aºc½eÆfÑhäiçcñlöm�pqtsvw({4~<€@G‚MƒS…[‡a‰k‹q‡{…’‘”š–¦˜¯œ·ž¼ Á¢Ç¤Ñ¦×¢áªé¯î·ö¸ûº�V���ü���ü�W�X����ü���úË���øÓ���õÔ���<À�ê�ë��{�©Õ���†�žÖ���š�C×���Ä�1��	�1��L�%Ì��T��¸��a�Í��±�wÎ��º�n�ì�í�Æ�!�î�ï�Ñ��ð�ï�	�Ï��[�*Ì��^��¸��k�Í��·�7Ì��Ä��¸��Ñ�Í���ñ����º�n�ì�ò���³�w��b�����c�"���F�����*+¶Ø+¶Ü·ß±����U���
                                    ! ����
                                    È�V��������W�X�����á���/�w��b�����c�"���o�����!+¶ØM*+·â™�*,,¾¶æ§�*,,¾·ß±����U������Õ�×�
                                    Ø�Ú� Ü�V��� ����!�W�X�����!á����ç���è�º��b�����c�"���þ�����v+¹�»�M§�e,¹�Á�N+-¹�Ç�:*»�qYÝ·�u-¶�ßâ¶�~¶�ßä¶�~¶�ƒ·�±*»�qYÝ·�u-¶é¶í¶�~â¶�~¶é¶í¶�~ä¶�~¶�ƒ·�±,¹�æ�šÿ˜±����U���*�
                                    ! ��é�ë�
                                    ! í�î�ð�=ñ�Vò�iñ�lë�uõ�V���4����v�W�X�����v�ê�ë���o�ì�í���[�î�ï���R�ð�ï��ñ������o�ì�ò��äå��"���ˆ�����(=>§�+*´�04¶ðŸ�=§�„*´�0¾¡ÿä¬����U����������	��&
                                    �V���*����(�W�X�����(á����&ô����"�¸���~��"���„�����$=>§�*´�04 �=§�„*´�0¾¡ÿè¬����U��������� �!��"%�V���*����$�W�X�����$õö���"ô�����¸���‚ƒ��"���–�����6»�qY·÷¶ø¶�ƒM>§�*´�04 �
                                    *´�<2M§�„*´�0¾¡ÿã,°����U������2�4�6�8�%9�(4�4=�V���*����6�W�X�����6õö���'û����#�¸���ü���ýþ�����Îÿ��¤ÿ�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/ImageView$1.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/ImageView$1.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/ImageView$1.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/ImageView$1.class	Tue Oct 12 15:55:12 2010
                                    *************** val$height�<init>�=(Ljavax/swing/text
                                    *** 5,10 ****
                                      �"�$�#�javax/swing/text/html/ImageView�%�&�safePreferenceChanged�(Ljavax/swing/text/View;ZZ)V�
                                      SourceFile�ImageView.java�EnclosingMethod�InnerClasses� ����������	�
                                      �������
                                    �������������H�����*+µ�*,µ�*µ�*µ�*·�±�������
                                    ! �����I�������������� ������B�����*´�*´�*´�*´�¶�!±�������
                                    ! ���M�N��������������'����(�)����"�$�*���
                                      ��������
                                    \ No newline at end of file
                                    --- 5,10 ----
                                      �"�$�#�javax/swing/text/html/ImageView�%�&�safePreferenceChanged�(Ljavax/swing/text/View;ZZ)V�
                                      SourceFile�ImageView.java�EnclosingMethod�InnerClasses� ����������	�
                                      �������
                                    �������������H�����*+µ�*,µ�*µ�*µ�*·�±�������
                                    ! �����F�������������� ������B�����*´�*´�*´�*´�¶�!±�������
                                    ! ���J�K��������������'����(�)����"�$�*���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/ImageView.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/ImageView.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/ImageView.class	Fri Jul 27 21:14:19 2007
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/ImageView.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�ImageView.java�InnerClass
                                    *** 63,77 ****
                                      ��������������
                                    ������������������������������������������������~�����.*+·�*µ�*½� µ�"*»�$Y*·�&µ�)*µ�+*µ�-*µ�/±����1���"����„��G�
                                      �…��†��‡�#�ˆ�(�‰�-�Š�2�������.�3�4�����.�5�6����7�����¢�����<*µ�8*µ�-*µ�:*µ�<*µ�>*µ�@*µ�B*·�D*·�G§�L*µ�8+¿*µ�8±��#�.�.����1���:����“��”�
                                      �•��–��—��˜��™�#�œ�'��.� �/�¡�4�¢�6�¡�;�£�2�������<�3�4����J�K����0�����Š*¶�LM,²�P¹�V�N-Ç�®-¶�\:š�*b¶�d™�j®k¶�d™�®m¶�d™�®® �*b¶�d™�j®o¶�d™�®q¶�d™�®®»�sY»�uYw·�y¶�|¶�€·�¿����1���Z����°��±��´��µ��·��¹��»�)�¼�,�½�6�¾�8�¿�B�À�D�Â�F�Ä�K�Æ�U�Ç�X�È�b�É�d�Ê�n�Ë�p�Í�r�Ð�2���4����Š�3�4�����Š�‚����…�ƒ����{�„�…���o�†�‡���ˆ�a�����}�����'*¶�L²�‰¹�V�L+Æ�+¶�\°*¶�ŒM,Ç�°,¶�’°����1�������Ü�
                                    �Ý��Þ��á��â��ã�"�å�2��� ����'�3�4���
                                    ��—�…����˜�™���N�O�����J�����*´�šÇ�**¶�œ*¶� µ�š*´�š°����1�������î��ï��ð�2��������3�4����¦�§�����7�����	*·�¨*´�>°����1���
                                    ! ����ø��ù�2�������	�3�4����Ž������°�����:*¶�«L+¹�¯�²�²¹�V�À�eMN,Æ�*¶�µÀ�¹¶�»:»�“Y,·�¾N§�W-°��)�4�7�Á��1���"������	��)�7�8�2���4����:�3�4����5�Ã�6���#�Ä�‡���!�Å�™��)��Æ�™���Ç�È�����.�����¸�É°����1������ �2��������3�4����Í�Î�����/�����*´�/¬����1������,�2��������3�4����Ï�È�����.�����¸�а����1������6�2��������3�4����Ò�K�����ù�����ƒ*¶�LW*¶�ÓMš�/*´�"2Æ�
                                    *´�"2¶�Õ®,Æ�
                                    ,*¶�Ù¶�݆®*¶�ã¹�ä�†® �/*´�"2Æ�
                                    *´�"2¶�Õ®,Æ�
                                    ,*¶�Ù¶�ꆮ*¶�ã¹�í�†®»�sY»�uYw·�y¶�|¶�€·�¿����1���>���F�H�
                                    ! J�L�M�!N�%O�/Q�:S�?U�HV�RW�VX�`Z�k]�2��� ����ƒ�3�4�����ƒ�‚���
                                    ! �y�����ž�Ÿ�����E�����
                                    *¶�µÀ�¹L+¶�ð°����1���
                                    ! ���g�h�2�������
                                    �3�4�����ñ�ò���ó�ô�����M�����*¶�õ°����1������s�2���*�����3�4������÷�ø�����ù�ø�����ú�û���ü�ý�����æ�����b*·�¨,Á�þ™�
                                      ,À�þ§�	,¹��N*¶�Ó:Æ�!+-´-´-´
                                    ! -´*´�)¶W§�"*¶�ã:Æ�*¶�Ù+-´-´¹�±����1���.���ƒ�„�…�„�†�‡�$‰�B�HŽ�M�a‘�2���>����b�3�4�����b����b�û���I���C����H��������>�����*µ�/±����1���
                                    ! ���š�›�2��������3�4�������� �7�����à�����f*¶�LL*¶�œM,+¶!F,+¶%8*´�"+²(¹�V�À� S*´�"2Æ�*´�"2%¶.*´�"+²2¹�V�À� S*´�"2Æ�*´�"2%¶.±����1���.���£�¤�
                                    ! ¥�¦�§�)¨�2ª�>¬�P­�Y¯�e±�2���4����f�3�4����a5���
                                    ! �\67���V8�ø���O9�ø��:;�����W�����*¶<¬����1������º�2���4�����3�4������÷�ø�����ù�ø�����ú�û����?@��AB�C����D����J�����,°����1������Ê�2���*�����3�4�����F�����G�û����?H��I1�����G�����*·�¨±����1���
                                    ! ���Ô�Ö�2��� �����3�4�������ø������ø���ª�7�����Q�����*´�-™�*·J*´�+™�*¶L±����1������Ý�Þ�ß�à�á�2��������3�4����F�7�����â�����T*¶�ŒLM+Æ�F¸NN-+¶TM-,*´�)¶WW,Æ�,*¶[™�%»]Y*¶�Ù·_:,¶b¶f§�W¸jW*,µ�>±��@�F�Io��1���:���è�é�ê�í�î�ï�!ð�,ó�9ô�@÷�Iù�Jû�N��S�2���4����T�3�4����O�Ä�™���Mq����?rs��9�tu���I�7���������†*¶�ÓL+Æ�*¶�LW*´�"2M,Æ�,¶�Õ‹W*µ�:§�+*´�)¶�ÝW*´�"2M,Æ�,¶�Õ‹W*µ�<§�+*´�)¶�ÝW¸NN*´�:š�
                                    ! *´�<™�-+*´�@*´�B*´�)¶WW§�-+*´�)¶WW±����1���J���
                                    ! ��	
                                    �����'�0�7�;�A�I"�R%�V&�d'�y)�…+�2���*����†�3�4����v����pwx��V�/rs���yz�����ç�����]¸{™�K*¶�µ:Á€™�À€¶‚*+¶…§�:Á€™�À€¶ˆ¿Á€™�À€¶ˆ§�»‹Y*+·¸±���&�&����1���6�
                                    ��8�:�;�<�?�&B�(C�0D�8E�;C�CD�NI�\Q�2���4����]�3�4�����]”•����]������]�����B�ñ–��—���˜™���*�šœž�)Ÿ¡��Q¢¡�‹�������$�¤��
                                    \ No newline at end of file
                                    --- 63,74 ----
                                      ��������������
                                    ������������������������������������������������~�����.*+·�*µ�*½� µ�"*»�$Y*·�&µ�)*µ�+*µ�-*µ�/±����1���"����„��G�
                                      �…��†��‡�#�ˆ�(�‰�-�Š�2�������.�3�4�����.�5�6����7�����¢�����<*µ�8*µ�-*µ�:*µ�<*µ�>*µ�@*µ�B*·�D*·�G§�L*µ�8+¿*µ�8±��#�.�.����1���:����“��”�
                                      �•��–��—��˜��™�#�œ�'��.� �/�¡�4�¢�6�¡�;�£�2�������<�3�4����J�K����0�����Š*¶�LM,²�P¹�V�N-Ç�®-¶�\:š�*b¶�d™�j®k¶�d™�®m¶�d™�®® �*b¶�d™�j®o¶�d™�®q¶�d™�®®»�sY»�uYw·�y¶�|¶�€·�¿����1���Z����°��±��´��µ��·��¹��»�)�¼�,�½�6�¾�8�¿�B�À�D�Â�F�Ä�K�Æ�U�Ç�X�È�b�É�d�Ê�n�Ë�p�Í�r�Ð�2���4����Š�3�4�����Š�‚����…�ƒ����{�„�…���o�†�‡���ˆ�a�����}�����'*¶�L²�‰¹�V�L+Æ�+¶�\°*¶�ŒM,Ç�°,¶�’°����1�������Ü�
                                    �Ý��Þ��á��â��ã�"�å�2��� ����'�3�4���
                                    ��—�…����˜�™���N�O�����J�����*´�šÇ�**¶�œ*¶� µ�š*´�š°����1�������î��ï��ð�2��������3�4����¦�§�����7�����	*·�¨*´�>°����1���
                                    ! ����ø��ù�2�������	�3�4����Ž������°�����:*¶�«L+¹�¯�²�²¹�V�À�eMN,Æ�*¶�µÀ�¹¶�»:»�“Y,·�¾N§�W-°��)�4�7�Á��1���"������	��)�7�8�2���4����:�3�4����5�Ã�6���#�Ä�‡���!�Å�™��)��Æ�™���Ç�È�����.�����¸�É°����1������ �2��������3�4����Í�Î�����/�����*´�/¬����1������,�2��������3�4����Ï�È�����.�����¸�а����1������6�2��������3�4����Ò�K�����ð�����~*¶�ÓMš�/*´�"2Æ�
                                    *´�"2¶�Õ®,Æ�
                                    ,*¶�Ù¶�݆®*¶�ã¹�ä�†® �/*´�"2Æ�
                                    *´�"2¶�Õ®,Æ�
                                    ,*¶�Ù¶�ꆮ*¶�ã¹�í�†®»�sY»�uYw·�y¶�|¶�€·�¿����1���:���F�H�	J�K�L� M�*O�5Q�:S�CT�MU�QV�[X�f[�2��� ����~�3�4�����~�‚����y�����ž�Ÿ�����E�����
                                    *¶�µÀ�¹L+¶�ð°����1���
                                    ! ���e�f�2�������
                                    �3�4�����ñ�ò���ó�ô�����M�����*¶�õ°����1������q�2���*�����3�4������÷�ø�����ù�ø�����ú�û���ü�ý�����æ�����b*·�¨,Á�þ™�
                                      ,À�þ§�	,¹��N*¶�Ó:Æ�!+-´-´-´
                                    ! -´*´�)¶W§�"*¶�ã:Æ�*¶�Ù+-´-´¹�±����1���.����‚�ƒ�‚�„�…�$‡�B‹�HŒ�M�a�2���>����b�3�4�����b����b�û���I���C����H��������>�����*µ�/±����1���
                                    ! ���˜�™�2��������3�4�������� �7�����à�����f*¶�LL*¶�œM,+¶!F,+¶%8*´�"+²(¹�V�À� S*´�"2Æ�*´�"2%¶.*´�"+²2¹�V�À� S*´�"2Æ�*´�"2%¶.±����1���.���¡�¢�
                                    ! £�¤�¥�)¦�2¨�>ª�P«�Y­�e¯�2���4����f�3�4����a5���
                                    ! �\67���V8�ø���O9�ø��:;�����W�����*¶<¬����1������¸�2���4�����3�4������÷�ø�����ù�ø�����ú�û����?@��AB�C����D����J�����,°����1������È�2���*�����3�4�����F�����G�û����?H��I1�����G�����*·�¨±����1���
                                    ! ���Ò�Ô�2��� �����3�4�������ø������ø���ª�7�����Q�����*´�-™�*·J*´�+™�*¶L±����1������Û�Ü�Ý�Þ�ß�2��������3�4����F�7�����â�����T*¶�ŒLM+Æ�F¸NN-+¶TM-,*´�)¶WW,Æ�,*¶[™�%»]Y*¶�Ù·_:,¶b¶f§�W¸jW*,µ�>±��@�F�Io��1���:���æ�ç�è�ë�ì�í�!î�,ñ�9ò�@õ�I÷�Jù�Nþ�Sÿ�2���4����T�3�4����O�Ä�™���Mq����?rs��9�tu���I�7����	�����*¶�ÓL+Æ�z*´�"2M,Æ�,¶�Õ‹W*µ�:§�+*´�)¶�ÝW*´�"2M,Æ�,¶�Õ‹W*µ�<§�+*´�)¶�ÝW¸NN*´�:š�
                                    ! *´�<™�-+*´�@*´�B*´�)¶WW§�-+*´�)¶WW±����1���F����	�	�
                                    ���"�+�2�6�<�D�M"�Q#�_$�t&�€(�2���*�����3�4����|v����pwx��Q�/rs���yz�����ç�����]¸{™�K*¶�µ:Á€™�À€¶‚*+¶…§�:Á€™�À€¶ˆ¿Á€™�À€¶ˆ§�»‹Y*+·¸±���&�&����1���6�
                                    ��5�7�8�9�<�&?�(@�0A�8B�;@�CA�NF�\N�2���4����]�3�4�����]”•����]������]�����B�ñ–��—���˜™���*�šœž�)Ÿ¡��Q¢¡�‹�������$�¤��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/MinimalHTMLWriter.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/MinimalHTMLWriter.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/MinimalHTMLWriter.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/MinimalHTMLWriter.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,97 ****
                                    ! Êþº¾���1¼��'javax/swing/text/html/MinimalHTMLWriter��javax/swing/text/AbstractWriter�doc�!Ljavax/swing/text/StyledDocument;�tagStack�Ljava/util/Stack;�	inFontTag�Z�<init>�4(Ljava/io/Writer;Ljavax/swing/text/StyledDocument;)V�Code
                                    ! �����.(Ljava/io/Writer;Ljavax/swing/text/Document;)V	���	�
                                    ! 	������java/util/Stack
                                    ! �����()V	�����LineNumberTable�LocalVariableTable�this�)Ljavax/swing/text/html/MinimalHTMLWriter;�w�Ljava/io/Writer;�6(Ljava/io/Writer;Ljavax/swing/text/StyledDocument;II)V
                                    ! ��$��%�0(Ljava/io/Writer;Ljavax/swing/text/Document;II)V�pos�I�len�startFontTag�(Ljava/lang/String;)V�
                                    ! Exceptions�-�java/io/IOException
                                    ! ��/�	�0�()Z
                                    ! ��2�3��endOpenTags�5�java/lang/StringBuilder�7�
                                    <span style="
                                    ! �4�9��*
                                    ! �4�;�<�=�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�?�">
                                    ! �4�A�B�C�toString�()Ljava/lang/String;
                                    ! ��E�F�*�
                                    writeStartTag�style�Ljava/lang/String;�
                                    ! endFontTag�K�</span>
                                    ! ��M�N�*�writeEndTag�write�Q�%javax/swing/text/BadLocationException�S�<html>
                                    ! ��U�V��writeHeader
                                    ! ��X�Y��	writeBody�[�</html>
                                    ! ��]�^��indent
                                    ! �`�b�a�java/lang/String�c�d�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �4�f�<�g�(C)Ljava/lang/StringBuilder;
                                    ! ��i�O�*
                                    ! ��k�l��
                                      incrIndent�tag
                                    ! ��o�p��
                                    ! decrIndent�endTag�s�<head>�u�<style>�w�<!--
                                    ! ��y�z��writeStyles�|�-->�~�</style>�€�</head>�writeStartParagraph�(Ljavax/swing/text/Element;)V�„�<p class=default>
                                    ! �elem�Ljavax/swing/text/Element;�writeEndParagraph�‰�</p>�‹�<body>
                                    ! ���Ž��getElementIterator�$()Ljavax/swing/text/ElementIterator;
                                    ! �‘�“�’� javax/swing/text/ElementIterator�”�•�first�()Ljavax/swing/text/Element;�—�™�˜�javax/swing/text/Element�š�0�isLeaf
                                    ! ��œ��ž�getText�.(Ljavax/swing/text/Element;)Ljava/lang/String;
                                    ! �`� �¡�¢�indexOf�(I)I
                                    ! ��¤�¥�¦�hasText�(Ljavax/swing/text/Element;)Z
                                    ! ��¨��‚
                                    ! ��ª�«�¬�writeContent�(Ljavax/swing/text/Element;Z)V
                                    ! ��®�‡�
                                    ! �‘�°�±�•�next�³�</body>�ei�"Ljavax/swing/text/ElementIterator;�e�inParagraph�hasNL�text
                                    ! �`�»�¼�C�trim�
                                    writeHTMLTags�"(Ljavax/swing/text/AttributeSet;)V	�À�Â�Á�javax/swing/text/StyleConstants�Ã�Ä�Bold�Ljava/lang/Object;�Æ�È�Ç�javax/swing/text/AttributeSet�É�Ê�getAttribute�&(Ljava/lang/Object;)Ljava/lang/Object;�Ì�java/lang/Boolean
                                    ! �Ë�Î�Ï�0�booleanValue�Ñ�<b>�Ó�</b>
                                    ! ��Õ�Ö�Ê�push	�À�Ø�Ù�Ä�Italic�Û�<i>�Ý�</i>	�À�ß�à�Ä�	Underline�â�<u>�ä�</u>�attr�Ljavax/swing/text/AttributeSet;�isText�—�é�ê�ë�getEndOffset�()I�—�í�î�ë�getStartOffset�—�ð�ñ�ò�
                                    getAttributes�!()Ljavax/swing/text/AttributeSet;
                                    ! ��ô�õ�¾�writeNonHTMLAttributes
                                    ! ��÷�½�¾
                                    ! ��ù�ç�¦
                                    ! ��û�¹�‚
                                    ! ��ý�þ�‚�	writeLeaf�needsIndenting�—�C�getName�icon
                                    ! �`�equals�(Ljava/lang/Object;)Z
                                    ! �
                                    ! �‚�
                                      writeImage
                                    ! �
                                    �‚�writeComponent��
                                    ! �À�
                                    getForeground�1(Ljavax/swing/text/AttributeSet;)Ljava/awt/Color;�color: 
                                    ! ��getColor�$(Ljava/awt/Color;)Ljava/lang/String;�; �font-size: 
                                    ! �À !"�getFontSize�"(Ljavax/swing/text/AttributeSet;)I
                                    ! �4$�<%�(I)Ljava/lang/StringBuilder;'�pt; )�
                                    font-family: 
                                    ! �À+,-�
                                    getFontFamily�3(Ljavax/swing/text/AttributeSet;)Ljava/lang/String;
                                    ! �/�)�*1�&javax/swing/text/DefaultStyledDocument
                                    ! 0345�
                                    getStyleNames�()Ljava/util/Enumeration;798�java/util/Enumeration:;�nextElement�()Ljava/lang/Object;=?>�javax/swing/text/StyledDocument@A�getStyle�,(Ljava/lang/String;)Ljavax/swing/text/Style;
                                    ! �CDE�
                                    ! writeStyle�(Ljavax/swing/text/Style;)V7GH�0�hasMoreElementsJ�default�styles�Ljava/util/Enumeration;�s�Ljavax/swing/text/Style;�writeAttributes�ÆQR5�getAttributeNames
                                    ! T�AU�java/lang/Object
                                    ! �W�ÉX�8(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;�attribs�
                                    ! attribName�name�output^�
                                    ! foreground`�foreground:b�java/awt/Colord�;f�
                                    ! backgroundh�background:j�italicl�italic:n�italic;p�boldr�bold:t�bold;v�normal;x�familyz�family:
                                    ! �4|�<}�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;�size�java/lang/Integer
                                    ! €ƒ„�ë�intValue†�size:�a�htmlSizeŠ�00
                                    ! aŒ�ë�getRed
                                    ! €‘�toHexString�(I)Ljava/lang/String;
                                    ! �`“”�ë�length
                                    ! �`–—‘�	substring
                                    ! a™š�ë�getGreen
                                    ! aœ�ë�getBlueŸ�#�c�Ljava/awt/Color;�r�g�b
                                    ! �¦§;�pop
                                    ! �©ª�0�empty¬�
                                      
                                    ! �®�I�°�p.²³�javax/swing/text/Styleµ� {
                                    ! �·O�¾¹�}�
                                    ! SourceFile�MinimalHTMLWriter.java�!�����������������	�
                                    ! ��������
                                    ���j�����*+,·�*µ�*,µ�*»�Y·�µ�±�����������J��A��K��L��M���� ������������ �!����������"��
                                    ��������*+,·�#*µ�*,µ�*»�Y·�µ�±�����������X�	�A��Y��Z��[����4������������ �!�����������&�'�����(�'���)�*��+�����,�
                                    ���n�����**¶�.™�*·�1*»�4Y6·�8+¶�:>¶�:¶�@¶�D*µ�±�����������b��c��d�$�e�)�f��������*�������*�G�H���	�0��
                                    ���/�����*´�¬�����������m��������������I���+�����,�
                                    ���>�����*J¶�L*µ�±�����������u��v��w�������������!�O���+�����,�P�
                                    ���O�����*R¶�D*¶�T*¶�W*Z¶�L±�����������~���
                                    ! �€����‚��������������F�*��+�����,�
                                    ���`����� *¶�\*»�4Y+¸�_·�8
                                    ! ¶�e¶�@¶�h*¶�j±�����������‰��Š��‹��Œ�������� ������� �m�H���N�*��+�����,�
                                    ���`����� *¶�n*¶�\*»�4Y+¸�_·�8
                                    ! ¶�e¶�@¶�h±�����������“��”��•��–�������� ������� �q�H���V���+�����,�
                                    ���o�����)*r¶�D*t¶�D*v¶�D*¶�x*{¶�L*}¶�L*¶�L±�������"������ž��Ÿ�� ��¡��¢�"�£�(�¤��������)�������‚��+�����,�
                                    ���O�����*¶�\*ƒ¶�h*¶�j±�����������«��¬�
                                    ! �­��®����������������…�†���‡���+�����,�
                                    ���=�����*·�1*ˆ¶�L±�����������µ��¶�
                                    ! �·��������������Y���+�����,�P�
                                    ��
                                    �����w*Š¶�D*¶�ŒL+¶�M>,¹�–�™�O*,¶�›
                                    ! ¶�ŸŸ�§�6š�*,·�£™�
                                    ! *,¶�§>*,·�£™�	*,¶�©™�™�*¶�­>§�*·�1+¶�¯YMÇÿ¥*²¶�L±�������J����¾��À��Á��Â��Å��Ç�0�È�<�Ê�A�Ë�C�Î�K�Ï�Q�Ñ�Z�Ó�^�Ô�c�×�g�Ú�p�Ü�v�Ý����4����w������l�´�µ���g�¶�†���e�·�
                                    ! ��0�7�¸�
                                    ! ���¹�‚��+�����,�P�
                                    ���E�����
                                    **+¶�›¶�º¶�h±�������
                                    ! ����á��â��������
                                    �������
                                    �…�†���½�¾��+�����,�
                                    ���ï�����‹+²�¿¹�Å�Æ�%+²�¿¹�Å�À�˶�Í™�*ж�h*´�Ò¶�ÔW+²�×¹�Å�Æ�%+²�×¹�Å�À�˶�Í™�*Ú¶�h*´�ܶ�ÔW+²�Þ¹�Å�Æ�%+²�Þ¹�Å�À�˶�Í™�*á¶�h*´�ã¶�ÔW±�������6�
                                    ���é��ê��ì�$�í�.�ï�:�ð�L�ò�R�ó�\�õ�h�ö�z�ø�€�ù�Š�û��������‹�������‹�å�æ���ç�¦��
                                    ���G�����+¹�è�+¹�ì�Ÿ�¬¬��������������������������…�†���«�¬��+�����,�P�
                                    ���”�����6*+¹�ï�¶�ó™�*¶�\*+¹�ï�¶�ö*+¶�ø™�*+¶�ú§�*+¶�ü*·�1±�������&�	���
                                    ! �
                                    ���$�,�1�5���� ����6�������6�…�†����6�ÿ�
                                    ! ���þ�‚��+�����,�
                                    ���]�����+¹��¶™�*+¶	§�*+¶±������������ �!����������������¶�†���õ�¾��+�����,�
                                    ���Ó�����uM+¸Æ�)»�4Y,¸�_·�8¶�:*+¸·¶�:¶�:¶�@M»�4Y,¸�_·�8¶�:+¸¶#&¶�:¶�@M»�4Y,¸�_·�8(¶�:+¸*¶�:¶�@M*,¶.±�������&�	��)�-�.�/�-.�11�S2�o4�t5���� ����u�������u�å�æ���q�G�H���z���+�����,�
                                    ���¯�����Q*´�Á0™�3*´�À0¶2L§�**´�+¹6�À�`¹<�·B+¹F�šÿä§�*´�I¹<�L+Æ�*+·B±�������&�	��<�
                                    ! >�?�@�.?�:D�GE�KF�PH���� ����Q������%KL��G�	MN��O�¾��+�����,�
                                    ���Ñ�����Q+¹P�M§�@,¹6�N-¶S:*+-¹�Å�·V:Æ�*¶�\*»�4Y¸�_·�8
                                    ! ¶�e¶�@¶�h,¹F�šÿ½±�������*�
                                    ! ��O�P�
                                    ! R�S�T�&U�+W�/X�GP�P[����>����Q�������Q�å�æ���JYL���6Z�Ä���0[�H��&�!\�H���‚��+�����,�
                                    ���5������±����������b����������������…�†���‚��+�����,�
                                    ���5������±����������j����������������…�†���ÉX��+�����,�
                                    ��@����J+]¶™�"»�4Y_·�8*,Àa·¶�:c¶�:¶�@°+e¶™�"»�4Yg·�8*,Àa·¶�:c¶�:¶�@°+i¶™�'»�4Yk·�8,À�˶�Í™�	m§�c¶�:¶�@°+o¶™�'»�4Yq·�8,À�˶�Í™�	s§�u¶�:¶�@°+w¶™�»�4Yy·�8,¶{c¶�:¶�@°+~¶™�q,À€¶‚>¤�
                                      6§�C¤�
                                      6§�6¤�	6§�*¤�	6§�
                                    ! ¤�	6§�¤�	6§�6»�4Y…·�8¶#c¶�:¶�@°°�������n���s�
                                    ! t�)u�3v�Rw�\x�€y�Šz�®{�¸|�Ð}�Ú�â�è‚�ïƒ�õ„�ü…†‡ˆ‰Š ‹&Œ,Ž/H“����p���J������J[�H���J‡�Ä��â�f�'��ì�ˆ�'��ù�ˆ�'��ˆ�'��ˆ�'��ˆ�'�)�ˆ�'�/�ˆ�'����
                                    ���ò�����ˆ»�4Y‰·�8+¶‹¸Ž¶�:¶�@M,,¶’d¶•M»�4Y‰·�8+¶˜¸Ž¶�:¶�@N--¶’d¶•N»�4Y‰·�8+¶›¸Ž¶�:¶�@:¶’d¶•:»�4Yž·�8,¶�:-¶�:¶�:¶�@°����������›�œ�#�;ž�FŸ�_ �m¡����4����ˆ�������ˆ ¡���p¢�H��;�M£�H��_�)¤�H���3���+�����,�
                                    ���p�����.§�**´�¶¥À�`¶�h*´�¶¨™ÿë*¶�.™�*«¶�h*¶­±����������©�ª�©�¬�"®�)¯�-±��������.�����DE��+�����,�
                                    ���z�����2+Ç�±*»�4Y¯·�8+¹±�¶�:´¶�:¶�@¶�D*+¶¶*¸¶�L±����������¸�¹�»�%¼�*½�1¾��������2�������2MN���¥�¦��+�����P�
                                    ���F�����*+¶�›¶�º¶’ž�¬¬����������Â����������������¶�†��º���»
                                    \ No newline at end of file
                                    --- 1,96 ----
                                    ! Êþº¾���1Â��'javax/swing/text/html/MinimalHTMLWriter��javax/swing/text/AbstractWriter�doc�!Ljavax/swing/text/StyledDocument;�tagStack�Ljava/util/Deque;�	Signature�%Ljava/util/Deque<Ljava/lang/String;>;�	inFontTag�Z�<init>�4(Ljava/io/Writer;Ljavax/swing/text/StyledDocument;)V�Code
                                    ! ���
                                    ��.(Ljava/io/Writer;Ljavax/swing/text/Document;)V	����	������java/util/ArrayDeque
                                    ! ���
                                    ��()V	�����LineNumberTable�LocalVariableTable�this�)Ljavax/swing/text/html/MinimalHTMLWriter;�w�Ljava/io/Writer;�6(Ljava/io/Writer;Ljavax/swing/text/StyledDocument;II)V
                                    ! ��&�
                                    �'�0(Ljava/io/Writer;Ljavax/swing/text/Document;II)V�pos�I�len�startFontTag�(Ljava/lang/String;)V�
                                    ! Exceptions�/�java/io/IOException
                                    ! ��1��2�()Z
                                    ! ��4�5��endOpenTags�7�java/lang/StringBuilder�9�
                                    <span style="
                                    ! �6�;�
                                    �,
                                    ! �6�=�>�?�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�A�">
                                    ! �6�C�D�E�toString�()Ljava/lang/String;
                                    ! ��G�H�,�
                                    writeStartTag�style�Ljava/lang/String;�
                                    ! endFontTag�M�</span>
                                    ! ��O�P�,�writeEndTag�write�S�%javax/swing/text/BadLocationException�U�<html>
                                    ! ��W�X��writeHeader
                                    ! ��Z�[��	writeBody�]�</html>
                                    ! ��_�`��indent
                                    ! �b�d�c�java/lang/String�e�f�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �6�h�>�i�(C)Ljava/lang/StringBuilder;
                                    ! ��k�Q�,
                                    ! ��m�n��
                                      incrIndent�tag
                                    ! ��q�r��
                                    ! decrIndent�endTag�u�<head>�w�<style>�y�<!--
                                    ! ��{�|��writeStyles�~�-->�€�</style>�‚�</head>�writeStartParagraph�(Ljavax/swing/text/Element;)V�†�<p class=default>
                                    ! �elem�Ljavax/swing/text/Element;�writeEndParagraph�‹�</p>��<body>
                                    ! ����‘�getElementIterator�$()Ljavax/swing/text/ElementIterator;
                                    ! �“�•�”� javax/swing/text/ElementIterator�–�—�first�()Ljavax/swing/text/Element;�™�›�š�javax/swing/text/Element�œ�2�isLeaf
                                    ! ��ž�Ÿ� �getText�.(Ljavax/swing/text/Element;)Ljava/lang/String;
                                    ! �b�¢�£�¤�indexOf�(I)I
                                    ! ��¦�§�¨�hasText�(Ljavax/swing/text/Element;)Z
                                    ! ��ª�ƒ�„
                                    ! ��¬�­�®�writeContent�(Ljavax/swing/text/Element;Z)V
                                    ! ��°�‰�
                                    ! �“�²�³�—�next�µ�</body>�ei�"Ljavax/swing/text/ElementIterator;�e�inParagraph�hasNL�text
                                    ! �b�½�¾�E�trim�
                                    writeHTMLTags�"(Ljavax/swing/text/AttributeSet;)V	����javax/swing/text/StyleConstants���Bold�Ljava/lang/Object;����javax/swing/text/AttributeSet���getAttribute�&(Ljava/lang/Object;)Ljava/lang/Object;��java/lang/Boolean
                                    ! �Í�Ð�Ñ�2�booleanValue�Ó�<b>�Õ�</b>�×�Ù�Ø�java/util/Deque�Ú�Û�push�(Ljava/lang/Object;)V	�Â�Ý�Þ�Æ�Italic�à�<i>�â�</i>	�Â�ä�å�Æ�	Underline�ç�<u>�é�</u>�attr�Ljavax/swing/text/AttributeSet;�isText�™�î�ï�ð�getEndOffset�()I�™�ò�ó�ð�getStartOffset�™�õ�ö�÷�
                                    getAttributes�!()Ljavax/swing/text/AttributeSet;
                                    ! ��ù�ú�À�writeNonHTMLAttributes
                                    ! ��ü�¿�À
                                    ! ��þ�ì�¨
                                    ! ���»�„
                                    ! ��„�	writeLeaf�needsIndenting�™�E�getName	�icon
                                    ! �b
                                    �equals�(Ljava/lang/Object;)Z
                                    ! ��„�
                                      writeImage
                                    ! ��„�writeComponent��
                                    ! �Â�
                                    getForeground�1(Ljavax/swing/text/AttributeSet;)Ljava/awt/Color;�color: 
                                    ! ��getColor�$(Ljava/awt/Color;)Ljava/lang/String;!�; #�font-size: 
                                    ! �Â%&'�getFontSize�"(Ljavax/swing/text/AttributeSet;)I
                                    ! �6)�>*�(I)Ljava/lang/StringBuilder;,�pt; .�
                                    font-family: 
                                    ! �Â012�
                                    getFontFamily�3(Ljavax/swing/text/AttributeSet;)Ljava/lang/String;
                                    ! �4�+�,6�&javax/swing/text/DefaultStyledDocument
                                    ! 589:�
                                    getStyleNames�()Ljava/util/Enumeration;<>=�java/util/Enumeration?@�nextElement�()Ljava/lang/Object;BDC�javax/swing/text/StyledDocumentEF�getStyle�,(Ljava/lang/String;)Ljavax/swing/text/Style;
                                    ! �HIJ�
                                    ! writeStyle�(Ljavax/swing/text/Style;)V<LM�2�hasMoreElementsO�default�styles�Ljava/util/Enumeration;�s�Ljavax/swing/text/Style;�LocalVariableTypeTable�Ljava/util/Enumeration<*>;�writeAttributes�ÈXY:�getAttributeNames
                                    ! [�C\�java/lang/Object
                                    ! �^�Ë_�8(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;�attribs�
                                    ! attribName�name�outpute�
                                    ! foregroundg�foreground:i�java/awt/Colork�;m�
                                    ! backgroundo�background:q�italics�italic:u�italic;w�boldy�bold:{�bold;}�normal;�family�family:
                                    ! �6ƒ�>„�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;†�sizeˆ�java/lang/Integer
                                    ! ‡Š‹�ð�intValue�size:�a�htmlSize‘�00
                                    ! h“”�ð�getRed
                                    ! ‡–—˜�toHexString�(I)Ljava/lang/String;
                                    ! �bš›�ð�length
                                    ! �bž˜�	substring
                                    ! h ¡�ð�getGreen
                                    ! h£¤�ð�getBlue¦�#�c�Ljava/awt/Color;�r�g�b�×­®@�pop�×°†�ð²�
                                      
                                    ! �´�K�¶�p.¸¹�javax/swing/text/Style»� {
                                    ! �½V�À¿�}�
                                    ! SourceFile�MinimalHTMLWriter.java�!���������������	����
                                    ! ��������
                                    ������j�����*+,·�*µ�*,µ�*»�Y·�µ�±�����������K��B��L��M��N���� ����� �!������"�#���������
                                    �$����������*+,·�%*µ�*,µ�*»�Y·�µ�±�����������Y�	�B��Z��[��\����4����� �!������"�#�����������(�)�����*�)���+�,��-�����.����n�����**¶�0™�*·�3*»�6Y8·�:+¶�<@¶�<¶�B¶�F*µ�±�����������c��d��e�$�f�)�g��������*� �!�����*�I�J����2�����/�����*´�¬�����������n��������� �!����K���-�����.����>�����*L¶�N*µ�±�����������v��w��x��������� �!���!�Q���-�����.�R����O�����*T¶�F*¶�V*¶�Y*\¶�N±�������������€�
                                    ! ���‚��ƒ��������� �!����H�,��-�����.����`����� *¶�^*»�6Y+¸�a·�:
                                    ! ¶�g¶�B¶�j*¶�l±�����������Š��‹��Œ���������� � �!����� �o�J���P�,��-�����.����`����� *¶�p*¶�^*»�6Y+¸�a·�:
                                    ! ¶�g¶�B¶�j±�����������”��•��–��—�������� � �!����� �s�J���X���-�����.����o�����)*t¶�F*v¶�F*x¶�F*¶�z*}¶�N*¶�N*¶�N±�������"����ž��Ÿ�� ��¡��¢��£�"�¤�(�¥��������)� �!����ƒ�„��-�����.����O�����*¶�^*…¶�j*¶�l±�����������¬��­�
                                    ! �®��¯��������� �!������‡�ˆ���‰���-�����.����=�����*·�3*Š¶�N±�����������¶��·�
                                    ! �¸��������� �!����[���-�����.�R���
                                    �����w*Œ¶�F*¶�ŽL+¶�’M>,¹�˜�™�O*,¶�
                                    ! ¶�¡Ÿ�§�6š�*,·�¥™�
                                    ! *,¶�©>*,·�¥™�	*,¶�«™�™�*¶�¯>§�*·�3+¶�±YMÇÿ¥*´¶�N±�������J����¿��Á��Â��Ã��Æ��È�0�É�<�Ë�A�Ì�C�Ï�K�Ð�Q�Ò�Z�Ô�^�Õ�c�Ø�g�Û�p�Ý�v�Þ����4����w� �!����l�¶�·���g�¸�ˆ���e�¹���0�7�º����»�„��-�����.�R����E�����
                                    **+¶�¶�¼¶�j±�������
                                    ! ����â��ã��������
                                    � �!�����
                                    �‡�ˆ���¿�À��-�����.����ò�����Ž+²�Á¹�Ç�Æ�&+²�Á¹�Ç�À�Ͷ�Ï™�*Ò¶�j*´�Ô¹�Ö�+²�ܹ�Ç�Æ�&+²�ܹ�Ç�À�Ͷ�Ï™�*߶�j*´�á¹�Ö�+²�ã¹�Ç�Æ�&+²�ã¹�Ç�À�Ͷ�Ï™�*æ¶�j*´�è¹�Ö�±�������6�
                                    ���ê��ë��í�$�î�/�ð�;�ñ�M�ó�S�ô�^�ö�j�÷�|�ù�‚�ú��ü��������Ž� �!�����Ž�ê�ë���ì�¨�����G�����+¹�í�+¹�ñ�Ÿ�¬¬������������������� �!������‡�ˆ���­�®��-�����.�R����”�����6*+¹�ô�¶�ø™�*¶�^*+¹�ô�¶�û*+¶�ý™�*+¶�ÿ§�*+¶*·�3±�������&�	���
                                    ! 
                                    ����$�,�1�5���� ����6� �!�����6�‡�ˆ����6����„��-�����.����]�����+¹�¶
                                    ! ™�*+¶§�*+¶±������������!�"��������� �!������¸�ˆ���ú�À��-�����.����Ó�����uM+¸Æ�)»�6Y,¸�a·�:¶�<*+¸·¶�< ¶�<¶�BM»�6Y,¸�a·�:"¶�<+¸$¶(+¶�<¶�BM»�6Y,¸�a·�:-¶�<+¸/¶�<¶�BM*,¶3±�������&�	��*�.�/�0�-/�12�S3�o5�t6���� ����u� �!�����u�ê�ë���q�I�J���|���-�����.����Á�����Q*´�Á5™�3*´�À5¶7L§�**´�+¹;�À�b¹A�·G+¹K�šÿä§�*´�N¹A�L+Æ�*+·G±�������&�	��=�
                                    ! ?�@�A�.@�:E�GF�KG�PI���� ����Q� �!����%PQ��G�	RS�T������%PU��V�À��-�����.����ã�����Q+¹W�M§�@,¹;�N-¶Z:*+-¹�Ç�·]:Æ�*¶�^*»�6Y¸�a·�:
                                    ! ¶�g¶�B¶�j,¹K�šÿ½±�������*�
                                    ! ��P�Q�
                                    ! S�T�U�&V�+X�/Y�GQ�P\����>����Q� �!�����Q�ê�ë���J`Q���6a�Æ���0b�J��&�!c�J�T������J`U���„��-�����.����5������±����������c��������� �!������‡�ˆ���„��-�����.����5������±����������k��������� �!������‡�ˆ���Ë_��-�����.���@����J+d¶
                                    ! ™�"»�6Yf·�:*,Àh·¶�<j¶�<¶�B°+l¶
                                    ! ™�"»�6Yn·�:*,Àh·¶�<j¶�<¶�B°+p¶
                                    ! ™�'»�6Yr·�:,À�Ͷ�Ï™�	t§�j¶�<¶�B°+v¶
                                    ! ™�'»�6Yx·�:,À�Ͷ�Ï™�	z§�|¶�<¶�B°+~¶
                                    ! ™�»�6Y€·�:,¶‚j¶�<¶�B°+…¶
                                    ! ™�q,À‡¶‰>¤�
                                      6§�C¤�
                                      6§�6¤�	6§�*¤�	6§�
                                    ! ¤�	6§�¤�	6§�6»�6YŒ·�:¶(j¶�<¶�B°°�������n���t�
                                    ! u�)v�3w�Rx�\y�€z�Š{�®|�¸}�Ð~�Ú€�â‚�èƒ�ï„�õ…�ü†‡ˆ‰Š‹ Œ&,/‘H”����p���J� �!����Jb�J���JŽ�Æ��â�f†�)��ì��)��ù��)���)���)���)�)��)�/��)�������ò�����ˆ»�6Y·�:+¶’¸•¶�<¶�BM,,¶™d¶œM»�6Y·�:+¶Ÿ¸•¶�<¶�BN--¶™d¶œN»�6Y·�:+¶¢¸•¶�<¶�B:¶™d¶œ:»�6Y¥·�:,¶�<-¶�<¶�<¶�B°����������œ��#ž�;Ÿ�F �_¡�m¢����4����ˆ� �!�����ˆ§¨���p©�J��;�Mª�J��_�)«�J���5���-�����.����t�����2§�**´�¹¬�À�b¶�j*´�¹¯�ÿç*¶�0™�*±¶�j*¶³±����������ª�«�ª�­�&¯�-°�1²��������2� �!���IJ��-�����.����z�����2+Ç�±*»�6Yµ·�:+¹·�¶�<º¶�<¶�B¶�F*+¶¼*¾¶�N±����������¹�º�¼�%½�*¾�1¿��������2� �!�����2RS���§�¨��-�����R����F�����*+¶�¶�¼¶™ž�¬¬����������Ã��������� �!������¸�ˆ��À���Á
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,7 ****
                                    ! Êþº¾���1�8��<javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration��java/lang/Object��java/util/Enumeration�index�I�current�Ljava/util/Enumeration;�this$0�)Ljavax/swing/text/html/MultiAttributeSet;�<init>�,(Ljavax/swing/text/html/MultiAttributeSet;)V�Code	����
                                    ! ���
                                    ��()V	����	����'javax/swing/text/html/MultiAttributeSet���multi� [Ljavax/swing/text/AttributeSet;�� ��javax/swing/text/AttributeSet�!�"�getAttributeNames�()Ljava/util/Enumeration;	��$�	�
                                    ! �LineNumberTable�LocalVariableTable�this�>Ljavax/swing/text/html/MultiAttributeSet$MultiNameEnumeration;�hasMoreElements�()Z��,�)�*�nextElement�()Ljava/lang/Object;�0� java/util/NoSuchElementException
                                    ! �/���3�-�.�
                                    ! SourceFile�MultiAttributeSet.java�InnerClasses�MultiNameEnumeration� ������������	�
                                    ! ����������
                                    ������T�����*+µ�*·�*µ�*+´�2¹��µ�#±����%�������O��K�	�M��N�&��������'�(����)�*�����K�����!*´�#¹�+�š�*´�*´�´�¾d¡�¬¬����%�������S�&�������!�'�(����-�.����������Q*´�#¹�+�š�>*´�*´�´�¾d¢�%*Y´�`µ�**´�´�*´�2¹��µ�#§�»�/Y·�1¿*´�#¹�2�°����%�������X��Z��\�'�]�?�`�G�b�&�������Q�'�(����4����5�6���
                                    ! ����7�
                                    \ No newline at end of file
                                    --- 1,7 ----
                                    ! Êþº¾���1�;��<javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration��java/lang/Object��java/util/Enumeration�index�I�current�Ljava/util/Enumeration;�	Signature�Ljava/util/Enumeration<*>;�this$0�)Ljavax/swing/text/html/MultiAttributeSet;�<init>�,(Ljavax/swing/text/html/MultiAttributeSet;)V�Code	���
                                    �
                                    ! �����()V	����	����'javax/swing/text/html/MultiAttributeSet���multi� [Ljavax/swing/text/AttributeSet;� �"�!�javax/swing/text/AttributeSet�#�$�getAttributeNames�()Ljava/util/Enumeration;	��&�	�
                                    ! �LineNumberTable�LocalVariableTable�this�>Ljavax/swing/text/html/MultiAttributeSet$MultiNameEnumeration;�hasMoreElements�()Z��.�+�,�nextElement�()Ljava/lang/Object;�2� java/util/NoSuchElementException
                                    ! �1���5�/�0�
                                    ! SourceFile�MultiAttributeSet.java�=Ljava/lang/Object;Ljava/util/Enumeration<Ljava/lang/Object;>;�InnerClasses�MultiNameEnumeration� ������������	�
                                    ! �������
                                    �������������T�����*+µ�*·�*µ�*+´�2¹��µ�%±����'�������O��K�	�M��N�(��������)�*����+�,�����K�����!*´�%¹�-�š�*´�*´�´�¾d¡�¬¬����'�������S�(�������!�)�*����/�0����������Q*´�%¹�-�š�>*´�*´�´�¾d¢�%*Y´�`µ�**´�´�*´�2¹��µ�%§�»�1Y·�3¿*´�%¹�4�°����'�������X��Z��\�'�]�?�`�G�b�(�������Q�)�*����6����7�����8�9���
                                    ! ����:�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,21 ****
                                    ! Êþº¾���1�e��'javax/swing/text/html/MultiAttributeSet��java/lang/Object��javax/swing/text/AttributeSet�multi� [Ljavax/swing/text/AttributeSet;�<init>�()V�Code
                                      ��
                                    �	�
                                      �LineNumberTable�LocalVariableTable�this�)Ljavax/swing/text/html/MultiAttributeSet;�#([Ljavax/swing/text/AttributeSet;)V
                                      �����init�m	�����containsAttribute�'(Ljava/lang/Object;Ljava/lang/Object;)Z�����name�Ljava/lang/Object;�value�ret�Z�i�I�containsAttributes�"(Ljavax/swing/text/AttributeSet;)Z��'�(�)�getAttributeNames�()Ljava/util/Enumeration;�+�-�,�java/util/Enumeration�.�/�nextElement�()Ljava/lang/Object;��1�2�3�getAttribute�&(Ljava/lang/Object;)Ljava/lang/Object;
                                      ��1
                                      ��6�7�8�equals�(Ljava/lang/Object;)Z�+�:�;�<�hasMoreElements�()Z�
                                    ! attributes�Ljavax/swing/text/AttributeSet;�e�Ljava/util/Enumeration;�key�copyAttributes�!()Ljavax/swing/text/AttributeSet;�E�#javax/swing/text/SimpleAttributeSet
                                    ! �D�
                                    ! �D�H�I�J�
                                    addAttributes�"(Ljavax/swing/text/AttributeSet;)V�copy�%Ljavax/swing/text/SimpleAttributeSet;�getAttributeCount�()I��P�M�N�n�S�<javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration
                                    ! �R�U�	�V�,(Ljavax/swing/text/html/MultiAttributeSet;)V�getResolveParent�	isDefined��Z�X�8�attrName�isEqual
                                    ! ��P
                                    ! ��_�$�%�attr�
                                      SourceFile�MultiAttributeSet.java�InnerClasses�MultiNameEnumeration� ���������������	�
                                      �����3�����*·�±�������
                                      ����o��r���������������	������F�����
                                      *·�*+¶�±�����������y��{�	�|��������
                                      �������
                                      ������������>�����*+µ�±�������
                                    ! ����…��†��������������������������”�����.>6§�*´�2+,¹��™�>„*´�¾¢�™ÿ߬�����������Š��‹����Ž��‹�,�����4����.�������.������.�����,� �!���'�"�#���$�%�����Ÿ�����5=+¹�&�N§�-¹�*�:+¹�0�*¶�4¶�5=™�-¹�9�šÿܬ�����������•��–�	�—��™��š�&�—�3�œ����4����5�������5�=�>���3� �!��	�,�?�@����A����B�C�����s�����%»�DY·�FL=§�+*´�2¶�G„*´�¾¡ÿí+°�����������¡��¢�
                                    �¤��¢�#�¦���� ����%�������K�L��
                                    ! ��"�#���2�3�����~�����&M>§�*´�2+¹�0�M„*´�¾¢�,Æÿæ,°�����������«��¬��®��¬�$�°����*����&�������&�A����$� ���� �"�#���M�N�����q�����#<=§�*´�2¹�O�`<„*´�¾¡ÿé¬�����������µ��¶��¸��¶�!�º���� ����#������!�Q�#����"�#���(�)�����3�����	»�RY*·�T°�����������¿��������	������W�C�����,�����°�����������Ä��������������X�8�����~�����&=>§�*´�2+¹�Y�=„*´�¾¢�™ÿæ¬�����������É��Ê��Ë��Ê�$�Ì����*����&�������&�[����$� �!��� �"�#���\�%�����U�����*¶�]+¹�O� �
                                    *+¶�^™�¬¬�����������Ñ�
                                    �������������������`�>���a����b�c���
                                    ! ��R��d�
                                    \ No newline at end of file
                                    --- 1,21 ----
                                    ! Êþº¾���1�i��'javax/swing/text/html/MultiAttributeSet��java/lang/Object��javax/swing/text/AttributeSet�multi� [Ljavax/swing/text/AttributeSet;�<init>�()V�Code
                                      ��
                                    �	�
                                      �LineNumberTable�LocalVariableTable�this�)Ljavax/swing/text/html/MultiAttributeSet;�#([Ljavax/swing/text/AttributeSet;)V
                                      �����init�m	�����containsAttribute�'(Ljava/lang/Object;Ljava/lang/Object;)Z�����name�Ljava/lang/Object;�value�ret�Z�i�I�containsAttributes�"(Ljavax/swing/text/AttributeSet;)Z��'�(�)�getAttributeNames�()Ljava/util/Enumeration;�+�-�,�java/util/Enumeration�.�/�nextElement�()Ljava/lang/Object;��1�2�3�getAttribute�&(Ljava/lang/Object;)Ljava/lang/Object;
                                      ��1
                                      ��6�7�8�equals�(Ljava/lang/Object;)Z�+�:�;�<�hasMoreElements�()Z�
                                    ! attributes�Ljavax/swing/text/AttributeSet;�e�Ljava/util/Enumeration;�key�LocalVariableTypeTable�Ljava/util/Enumeration<*>;�copyAttributes�!()Ljavax/swing/text/AttributeSet;�G�#javax/swing/text/SimpleAttributeSet
                                    ! �F�
                                    ! �F�J�K�L�
                                    addAttributes�"(Ljavax/swing/text/AttributeSet;)V�copy�%Ljavax/swing/text/SimpleAttributeSet;�getAttributeCount�()I��R�O�P�n�	Signature�()Ljava/util/Enumeration<*>;�W�<javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration
                                    ! �V�Y�	�Z�,(Ljavax/swing/text/html/MultiAttributeSet;)V�getResolveParent�	isDefined��^�\�8�attrName�isEqual
                                    ! ��R
                                    ! ��c�$�%�attr�
                                      SourceFile�MultiAttributeSet.java�InnerClasses�MultiNameEnumeration� ���������������	�
                                      �����3�����*·�±�������
                                      ����o��r���������������	������F�����
                                      *·�*+¶�±�����������y��{�	�|��������
                                      �������
                                      ������������>�����*+µ�±�������
                                    ! ����…��†��������������������������”�����.>6§�*´�2+,¹��™�>„*´�¾¢�™ÿ߬�����������Š��‹����Ž��‹�,�����4����.�������.������.�����,� �!���'�"�#���$�%�����±�����5=+¹�&�N§�-¹�*�:+¹�0�*¶�4¶�5=™�-¹�9�šÿܬ�����������•��–�	�—��™��š�&�—�3�œ����4����5�������5�=�>���3� �!��	�,�?�@����A���B�����	�,�?�C���D�E�����s�����%»�FY·�HL=§�+*´�2¶�I„*´�¾¡ÿí+°�����������¡��¢�
                                    �¤��¢�#�¦���� ����%�������M�N��
                                    ! ��"�#���2�3�����~�����&M>§�*´�2+¹�0�M„*´�¾¢�,Æÿæ,°�����������«��¬��®��¬�$�°����*����&�������&�A����$� ���� �"�#���O�P�����q�����#<=§�*´�2¹�Q�`<„*´�¾¡ÿé¬�����������µ��¶��¸��¶�!�º���� ����#������!�S�#����"�#���(�)��T����U����3�����	»�VY*·�X°�����������¿��������	������[�E�����,�����°�����������Ä��������������\�8�����~�����&=>§�*´�2+¹�]�=„*´�¾¢�™ÿæ¬�����������É��Ê��Ë��Ê�$�Ì����*����&�������&�_����$� �!��� �"�#���`�%�����U�����*¶�a+¹�Q� �
                                    *+¶�b™�¬¬�����������Ñ�
                                    �������������������d�>���e����f�g���
                                    ! ��V��h�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/MultiStyle.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/MultiStyle.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/MultiStyle.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/MultiStyle.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,12 ****
                                    ! Êþº¾���1�@�� javax/swing/text/html/MultiStyle��'javax/swing/text/html/MultiAttributeSet��javax/swing/text/Style�name�Ljava/lang/String;�
                                      attributes�%Ljavax/swing/text/SimpleAttributeSet;�<init>�5(Ljava/lang/String;[Ljavax/swing/text/AttributeSet;)V�Code
                                      �����#([Ljavax/swing/text/AttributeSet;)V	������#javax/swing/text/SimpleAttributeSet
                                      �����()V	���	�
                                      �LineNumberTable�LocalVariableTable�this�"Ljavax/swing/text/html/MultiStyle;�n�m� [Ljavax/swing/text/AttributeSet;�getName�()Ljava/lang/String;�addChangeListener�%(Ljavax/swing/event/ChangeListener;)V�listener�"Ljavax/swing/event/ChangeListener;�removeChangeListener�addAttribute�'(Ljava/lang/Object;Ljava/lang/Object;)V
                                      ��+�(�)�Ljava/lang/Object;�value�
                                    addAttributes�"(Ljavax/swing/text/AttributeSet;)V
                                      ��1�.�/�atts�Ljavax/swing/text/AttributeSet;�removeAttribute�(Ljava/lang/Object;)V
                                    ! ��7�4�5�removeAttributes�(Ljava/util/Enumeration;)V�names�Ljava/util/Enumeration;�setResolveParent�parent�
                                    ! SourceFile�MultiStyle.java�!������������	�
                                      ���
                                      �����
                                    ���`�����*,·�*+µ�*»�Y·�µ�±�����������Q��R�
                                      �S��T���� ������������������� ���!�"��
                                    ���/�����*´�°�����������]��������������#�$��
                                    ���5������±�����������c����������������%�&���'�$��
                                    ���5������±�����������h����������������%�&���(�)��
                                    ���L�����
                                    --- 1,12 ----
                                    ! Êþº¾���1�D�� javax/swing/text/html/MultiStyle��'javax/swing/text/html/MultiAttributeSet��javax/swing/text/Style�name�Ljava/lang/String;�
                                      attributes�%Ljavax/swing/text/SimpleAttributeSet;�<init>�5(Ljava/lang/String;[Ljavax/swing/text/AttributeSet;)V�Code
                                      �����#([Ljavax/swing/text/AttributeSet;)V	������#javax/swing/text/SimpleAttributeSet
                                      �����()V	���	�
                                      �LineNumberTable�LocalVariableTable�this�"Ljavax/swing/text/html/MultiStyle;�n�m� [Ljavax/swing/text/AttributeSet;�getName�()Ljava/lang/String;�addChangeListener�%(Ljavax/swing/event/ChangeListener;)V�listener�"Ljavax/swing/event/ChangeListener;�removeChangeListener�addAttribute�'(Ljava/lang/Object;Ljava/lang/Object;)V
                                      ��+�(�)�Ljava/lang/Object;�value�
                                    addAttributes�"(Ljavax/swing/text/AttributeSet;)V
                                      ��1�.�/�atts�Ljavax/swing/text/AttributeSet;�removeAttribute�(Ljava/lang/Object;)V
                                    ! ��7�4�5�removeAttributes�(Ljava/util/Enumeration;)V�	Signature�(Ljava/util/Enumeration<*>;)V�names�Ljava/util/Enumeration;�LocalVariableTypeTable�Ljava/util/Enumeration<*>;�setResolveParent�parent�
                                    ! SourceFile�MultiStyle.java� ������������	�
                                      ���
                                      �����
                                    ���`�����*,·�*+µ�*»�Y·�µ�±�����������Q��R�
                                      �S��T���� ������������������� ���!�"��
                                    ���/�����*´�°�����������]��������������#�$��
                                    ���5������±�����������c����������������%�&���'�$��
                                    ���5������±�����������h����������������%�&���(�)��
                                    ���L�����
                                    *************** SourceFile�MultiStyle.java�!�����
                                    *** 16,21 ****
                                      ��,����
                                      �-�,���.�/��
                                    ���A�����	*´�+¶�0±�������
                                      ����q��r��������	�������	�2�3���4�5��
                                    ���A�����	*´�+¶�6±�������
                                    ! ����v��w��������	�������	��,���8�9��
                                    ���A�����	*´�+¶�6±�������
                                    ! ����{��|��������	�������	�:�;���8�/��
                                    ���A�����	*´�+¶�6±�������
                                    ! ����€����������	�������	�2�3���<�/��
                                    ���5������±�����������†����������������=�3���>����?
                                    \ No newline at end of file
                                    --- 16,21 ----
                                      ��,����
                                      �-�,���.�/��
                                    ���A�����	*´�+¶�0±�������
                                      ����q��r��������	�������	�2�3���4�5��
                                    ���A�����	*´�+¶�6±�������
                                    ! ����v��w��������	�������	��,���8�9��:����;�
                                    ���S�����	*´�+¶�6±�������
                                    ! ����{��|��������	�������	�<�=��>�������	�<�?���8�/��
                                    ���A�����	*´�+¶�6±�������
                                    ! ����€����������	�������	�2�3���@�/��
                                    ���5������±�����������†����������������A�3���B����C
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/ObjectView.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/ObjectView.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/ObjectView.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/ObjectView.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,10 ****
                                    ! Êþº¾���1�D�� javax/swing/text/html/ObjectView��javax/swing/text/ComponentView�<init>�(Ljavax/swing/text/Element;)V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�"Ljavax/swing/text/html/ObjectView;�el�Ljavax/swing/text/Element;�createComponent�()Ljava/awt/Component;
                                      �����
                                      getElement�()Ljavax/swing/text/Element;����javax/swing/text/Element���
                                    getAttributes�!()Ljavax/swing/text/AttributeSet;��classid��!� �javax/swing/text/AttributeSet�"�#�getAttribute�&(Ljava/lang/Object;)Ljava/lang/Object;�%�java/lang/String
                                      �'�)�(�java/lang/Class�*�+�forName�%(Ljava/lang/String;)Ljava/lang/Class;
                                    ! �'�-�.�/�newInstance�()Ljava/lang/Object;�1�java/awt/Component�3� java/lang/ClassNotFoundException�5� java/lang/IllegalAccessException�7� java/lang/InstantiationException�comp�Ljava/awt/Component;�atts�Ljavax/swing/text/AttributeSet;�classId�Ljava/lang/String;�objectClass�Ljava/lang/Class;�instance�Ljava/lang/Object;�
                                      SourceFile�ObjectView.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����L��M����������
                                    ����������������ã�����=L*¶�M,¹��N-¹��À�$:¸�&:¶�,:À�0L§�W§�W§�W+°���/�2�2��/�6�4��/�:�6��
                                    ! ���.����U��V��W��X��[�"�\�)�]�2�_�6�c�:�g�;�l����H����=��
                                    ����;�8�9���6�����/�:�;���"�<�=��"��>�?��)�	�@�A���B����C
                                    \ No newline at end of file
                                    --- 1,10 ----
                                    ! Êþº¾���1�F�� javax/swing/text/html/ObjectView��javax/swing/text/ComponentView�<init>�(Ljavax/swing/text/Element;)V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�"Ljavax/swing/text/html/ObjectView;�el�Ljavax/swing/text/Element;�createComponent�()Ljava/awt/Component;
                                      �����
                                      getElement�()Ljavax/swing/text/Element;����javax/swing/text/Element���
                                    getAttributes�!()Ljavax/swing/text/AttributeSet;��classid��!� �javax/swing/text/AttributeSet�"�#�getAttribute�&(Ljava/lang/Object;)Ljava/lang/Object;�%�java/lang/String
                                      �'�)�(�java/lang/Class�*�+�forName�%(Ljava/lang/String;)Ljava/lang/Class;
                                    ! �'�-�.�/�newInstance�()Ljava/lang/Object;�1�java/awt/Component�3� java/lang/ClassNotFoundException�5� java/lang/IllegalAccessException�7� java/lang/InstantiationException�comp�Ljava/awt/Component;�atts�Ljavax/swing/text/AttributeSet;�classId�Ljava/lang/String;�objectClass�Ljava/lang/Class;�instance�Ljava/lang/Object;�LocalVariableTypeTable�Ljava/lang/Class<*>;�
                                      SourceFile�ObjectView.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����L��M����������
                                    ����������������õ�����=L*¶�M,¹��N-¹��À�$:¸�&:¶�,:À�0L§�W§�W§�W+°���/�2�2��/�6�4��/�:�6��
                                    ! ���.����U��V��W��X��[�"�\�)�]�2�_�6�c�:�g�;�l����H����=��
                                    ����;�8�9���6�����/�:�;���"�<�=��"��>�?��)�	�@�A��B�����"��>�C���D����E
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class	Tue Oct 12 15:55:12 2010
                                    *************** MARGIN_TOP	��D�
                                    *** 16,27 ****
                                      SourceFile�StyleSheet.java�InnerClasses�¯�javax/swing/text/html/CSS�	Attribute�
                                      BoxPainter�!�����
                                      �������	�����
                                    ! �����������
                                    ������������������������������������8����H*·�,+¶�F,+¶� 8+²�#¹�)�À�/:Æ�%¶�1*¶�5µ�9+²�;¹�)�À�/:Æ�%¶�1*¶�5µ�>+²�@¹�)�À�/:Æ�%¶�1*¶�5µ�C+²�E¹�)�À�/:Æ�%¶�1*¶�5µ�H+²�J¹�)�À�/:Æ�%¶�1*¶�5µ�M+²�O¹�)�À�/:Æ�%¶�1*¶�5µ�R+²�T¹�)�À�/:Æ�%¶�1*¶�5µ�W+²�Y¹�)�À�/:Æ�%¶�1*¶�5µ�\*»�^Y+,·�`µ�b*,+¶�dµ�h±����j���š�&��®�°�
                                    ! ±�³�´�$¶�,·�5¹�Cº�H¼�P½�Y¿�gÀ�lÂ�tÃ�}Å�‹Æ�È�˜É�¡Í�¯Î�´Ð�¼Ñ�ÅÓ�ÓÔ�ØÖ�à×�éÙ�÷Ú�üÜÝ
                                    ßà â(ã1ç>êGì�k���>���H�l�m����H�n�o���H�p�q��
                                    ! >�r���7�s���)�t�u���v�w����ˆ�����Àª�����»������������m���F���”*´�CF*´�bÆ�%*´�b¹�x�´�~†bF%*´�WbF§�z*´�HF*´�bÆ�%*´�b¹�x�´�„†bF%*´�\bF§�S*´�9F*´�bÆ�%*´�b¹�x�´�‡†bF%*´�MbF§�,*´�>F*´�bÆ�%*´�b¹�x�´�Š†bF%*´�RbF§�F%®����j���^���ý� ��%�,�=�D�G�L�S�d	�k
                                    ! �n�s
                                    �z�‹�’�•�š�¡�²�¹�¼�¾�k���R����À�l�m�����À��ƒ����À�Ž���%�"����L�"����s�"����š�"����¾������‘�’���������f$*´�9b‹6%*´�Cb‹6*´�9f*´�>f‹6	*´�Cf*´�Hf‹6
                                      *´�hÆ�+*´�h¶�“+	
                                      ¶�™*´�bÆ�*´�b+	
                                      ¹��±����j���*�
                                    ! ��*�	+�,�!-�0.�70�?1�K3�R5�e7�k���p����f�l�m�����f�¡�¢����f�£�����f�¤�����f�¥�����f�¦�����f�Ž���	�]�§�ƒ���T�¨�ƒ��!�E�©�ƒ�	�0�6�ª�ƒ�
                                      ��«����¬�­�����$�®�°����±�	
                                    \ No newline at end of file
                                    --- 16,26 ----
                                      SourceFile�StyleSheet.java�InnerClasses�¯�javax/swing/text/html/CSS�	Attribute�
                                      BoxPainter�!�����
                                      �������	�����
                                    ! �����������
                                    ������������������������������������8����H*·�,+¶�F,+¶� 8+²�#¹�)�À�/:Æ�%¶�1*¶�5µ�9+²�;¹�)�À�/:Æ�%¶�1*¶�5µ�>+²�@¹�)�À�/:Æ�%¶�1*¶�5µ�C+²�E¹�)�À�/:Æ�%¶�1*¶�5µ�H+²�J¹�)�À�/:Æ�%¶�1*¶�5µ�M+²�O¹�)�À�/:Æ�%¶�1*¶�5µ�R+²�T¹�)�À�/:Æ�%¶�1*¶�5µ�W+²�Y¹�)�À�/:Æ�%¶�1*¶�5µ�\*»�^Y+,·�`µ�b*,+¶�dµ�h±����j���š�&��­�¯�
                                    ! °�²�³�$µ�,¶�5¸�C¹�H»�P¼�Y¾�g¿�lÁ�tÂ�}Ä�‹Å�Ç�˜È�¡Ì�¯Í�´Ï�¼Ð�ÅÒ�ÓÓ�ØÕ�àÖ�éØ�÷Ù�üÛÜ
                                    Þß á(â1æ>éGë�k���>���H�l�m����H�n�o���H�p�q��
                                    ! >�r���7�s���)�t�u���v�w����ˆ�����Àª�����»������������m���F���”*´�CF*´�bÆ�%*´�b¹�x�´�~†bF%*´�WbF§�z*´�HF*´�bÆ�%*´�b¹�x�´�„†bF%*´�\bF§�S*´�9F*´�bÆ�%*´�b¹�x�´�‡†bF%*´�MbF§�,*´�>F*´�bÆ�%*´�b¹�x�´�Š†bF%*´�RbF§�F%®����j���^���ü� ÿ�%��,�=�D�G�L�S�d�k	�n�s�z
                                    �‹�’�•�š�¡�²�¹�¼�¾�k���R����À�l�m�����À��ƒ����À�Ž���%�"����L�"����s�"����š�"����¾������‘�’���������f$*´�9b‹6%*´�Cb‹6*´�9f*´�>f‹6	*´�Cf*´�Hf‹6
                                      *´�hÆ�+*´�h¶�“+	
                                      ¶�™*´�bÆ�*´�b+	
                                      ¹��±����j���*�
                                    ! ��)�	*�+�!,�0-�7/�?0�K2�R4�e6�k���p����f�l�m�����f�¡�¢����f�£�����f�¤�����f�¥�����f�¦�����f�Ž���	�]�§�ƒ���T�¨�ƒ��!�E�©�ƒ�	�0�6�ª�ƒ�
                                      ��«����¬�­�����$�®�°����±�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class	Tue Oct 12 15:55:12 2010
                                    *************** styleSheet�"Ljavax/swing/text/html/Styl
                                    *** 13,23 ****
                                      �a�d	��o�p�q�height�I	��s�t�q�y
                                      �S�v�w�\�fillOval�g�Ljava/awt/Graphics;�x�F�w�h�v�Ljavax/swing/text/View;�item�itemView�viewAtts�tag�centerX�centerY�v1�a1�Ljava/awt/Shape;�r1�par�%Ljavax/swing/text/html/ParagraphView;�a�r�
                                      SourceFile�StyleSheet.java�InnerClasses�’�javax/swing/text/html/CSS�	Attribute�•�javax/swing/text/html/HTML�Tag�˜� javax/swing/text/html/StyleSheet�ListPainter�!������������	�
                                    ! ���������
                                    �������������|�����**·�*»�Y·�µ�*+µ�*,µ�*+²�¹�$�À�*µ�,±����.������X�b�Z�[�\�)]�/��� ����*�0�1�����*�2�����*�3�
                                      ���4�5����0�����î¶�6:¶�<:		²�@¹�$�:
                                      
                                      Æ�Ï
                                      ²�F¦�Ç+²�L¶�R$Xf‹66*´�$‹%‹‹‹¶�Y¶�]ž�~¶�6:
                                    
                                    Á�a™�n
                                    ¶�]ž�f*´�¶�c:Á�™�À�§�
                                      ¹�g�:
                                    À�a:¶�m:Æ�+Á�™�À�§�
                                    ! ¹�g�:´�nl´�r`6 �
                                    n%b‹6+dd¶�u±����.���j���u�	v�w�z�)|�0}�7~�:�K‚�S„�[…�k‡�wˆ�‡‰�Žˆ�Š�—‹�¡Œ�¦Ž�¶�½Ž�¿�Δ�Ô–�ݘ�íš�/���À����î�0�1�����î�x�y����î�z�{����î�t�{����î�|�{����î�}�{����î�~�����î�€�q��	�å�����Þ�‚��	��Ò�ƒ�E�
                                      �7�¶�„�q��:�³�…�q��[�s�†��
                                    �w�W�‡�ˆ���>�‰���—�7�Š�‹��¡�-�Œ�ˆ��¿������Ž�����������‘�“��G�”�–�	��—�™�	
                                    \ No newline at end of file
                                    --- 13,23 ----
                                      �a�d	��o�p�q�height�I	��s�t�q�y
                                      �S�v�w�\�fillOval�g�Ljava/awt/Graphics;�x�F�w�h�v�Ljavax/swing/text/View;�item�itemView�viewAtts�tag�centerX�centerY�v1�a1�Ljava/awt/Shape;�r1�par�%Ljavax/swing/text/html/ParagraphView;�a�r�
                                      SourceFile�StyleSheet.java�InnerClasses�’�javax/swing/text/html/CSS�	Attribute�•�javax/swing/text/html/HTML�Tag�˜� javax/swing/text/html/StyleSheet�ListPainter�!������������	�
                                    ! ���������
                                    �������������|�����**·�*»�Y·�µ�*+µ�*,µ�*+²�¹�$�À�*µ�,±����.������W�a�Y�Z�[�)\�/��� ����*�0�1�����*�2�����*�3�
                                      ���4�5����0�����î¶�6:¶�<:		²�@¹�$�:
                                      
                                      Æ�Ï
                                      ²�F¦�Ç+²�L¶�R$Xf‹66*´�$‹%‹‹‹¶�Y¶�]ž�~¶�6:
                                    
                                    Á�a™�n
                                    ¶�]ž�f*´�¶�c:Á�™�À�§�
                                      ¹�g�:
                                    À�a:¶�m:Æ�+Á�™�À�§�
                                    ! ¹�g�:´�nl´�r`6 �
                                    n%b‹6+dd¶�u±����.���j���t�	u�v�y�){�0|�7}�:€�K�Sƒ�[„�k†�w‡�‡ˆ�Ž‡�‰�—Š�¡‹�¦�¶Ž�½�¿�Γ�Ô•�Ý—�í™�/���À����î�0�1�����î�x�y����î�z�{����î�t�{����î�|�{����î�}�{����î�~�����î�€�q��	�å�����Þ�‚��	��Ò�ƒ�E�
                                      �7�¶�„�q��:�³�…�q��[�s�†��
                                    �w�W�‡�ˆ���>�‰���—�7�Š�‹��¡�-�Œ�ˆ��¿������Ž�����������‘�“��G�”�–�	��—�™�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1¨�� javax/swing/text/html/StyleSheet��javax/swing/text/StyleContext�base�Ljava/net/URL;�baseFontSize�I�linked�Ljava/util/ArrayList;�	Signature�9Ljava/util/ArrayList<Ljavax/swing/text/html/StyleSheet;>;�css�BLjava/util/ArrayList<Ljavax/swing/text/html/StyleSheet$CSSStyle;>;�resolvedStyles�Ljava/util/HashMap;�?Ljava/util/HashMap<Ljava/lang/String;Ljavax/swing/text/Style;>;�<init>�()V�Code
                                      ������java/util/ArrayList
                                      ��	���
                                    �
                                      	������java/util/HashMap
                                    --- 1,4 ----
                                    ! Êþº¾���1±�� javax/swing/text/html/StyleSheet��javax/swing/text/StyleContext�base�Ljava/net/URL;�baseFontSize�I�linked�Ljava/util/ArrayList;�	Signature�9Ljava/util/ArrayList<Ljavax/swing/text/html/StyleSheet;>;�css�BLjava/util/ArrayList<Ljavax/swing/text/html/StyleSheet$CSSStyle;>;�resolvedStyles�Ljava/util/HashMap;�?Ljava/util/HashMap<Ljava/lang/String;Ljavax/swing/text/Style;>;�<init>�()V�Code
                                      ������java/util/ArrayList
                                      ��	���
                                    �
                                      	������java/util/HashMap
                                    ***************
                                    *** 13,124 ****
                                      �3�e�V�f�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;	�Y�h�i�]�CLASS	�Y�k�l�]�
                                    DYNAMIC_CLASS	�Y�n�o�]�PSEUDO_CLASS
                                      �q�Q�r�javax/swing/text/html/HTML$Tag�.�t�u�v�isLeaf�()Z
                                      �3�Q
                                    ! ��y�z�{�getResolvedStyle�\(Ljava/lang/String;Ljava/util/List;Ljavax/swing/text/html/HTML$Tag;)Ljavax/swing/text/Style;�t� Ljavax/swing/text/html/HTML$Tag;�e�Ljavax/swing/text/Element;�path�el�atts�Ljavax/swing/text/AttributeSet;�selector�Ljava/lang/StringBuilder;�count�i�name�o�LocalVariableTypeTable�1Ljava/util/ArrayList<Ljavax/swing/text/Element;>;
                                    ! ���<�M��javax/swing/text/Style
                                    ! ��‘�’�{�resolveStyle�Ljava/lang/String;�Ljava/util/List;�tag�style�Ljavax/swing/text/Style;�™�7�š�java/util/List�œ�java/lang/String�ž�
                                    java/util/Map�™�;
                                    ! ��¡�¢�£�attributeSetToMap�0(Ljavax/swing/text/AttributeSet;)Ljava/util/Map;
                                    ! ��¥�’�¦�O(Ljava/lang/String;[Ljava/lang/String;[Ljava/util/Map;)Ljavax/swing/text/Style;�tags�[Ljava/lang/String;�
                                    ! attributes�[Ljava/util/Map;
                                    ! ��¬�­�®�iterator�()Ljava/util/Iterator;�°�²�±�java/util/Iterator�³�´�next�()Ljava/lang/Object;�¶�)javax/swing/text/html/StyleSheet$CSSStyle	�µ�¸�„�¹�(Lgnu/javax/swing/text/html/css/Selector;
                                    ! �»�½�¼�&gnu/javax/swing/text/html/css/Selector�¾�¿�matches�&([Ljava/lang/String;[Ljava/util/Map;)Z�°�Á�Â�v�hasNext	��Ä�	�
                                      
                                    ! ����java/util/Collections���sort�(Ljava/util/List;)V
                                    ! ��Ì�Í�Î�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�Ð�[Ljavax/swing/text/Style;�Ò� javax/swing/text/html/MultiStyle
                                    ! �Ñ�Ô��Õ�5(Ljava/lang/String;[Ljavax/swing/text/AttributeSet;)V
                                    ! ��×�Ø�Ù�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�styles�+Ljavax/swing/text/html/StyleSheet$CSSStyle;�ss�j�
                                      styleArray�resolved�,(Ljava/lang/String;)Ljavax/swing/text/Style;
                                    ! �µ�â�ã�ä�	compareTo�.(Ljavax/swing/text/html/StyleSheet$CSSStyle;)I�best�Ljava/util/Iterator;�addRule�(Ljava/lang/String;)V�ê�<javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback�
                                    @
                                    ! �é�í��î�&(Ljavax/swing/text/html/StyleSheet;I)V�ð�java/io/StringReader
                                    ! �ï�ò��è�ô�'gnu/javax/swing/text/html/css/CSSParser
                                    ! �ó�ö��÷�D(Ljava/io/Reader;Lgnu/javax/swing/text/html/css/CSSParserCallback;)V
                                    ! �ó�ù�ú��parse
                                    ! ��ü�ý��clear�ÿ�java/io/IOException�rule�cb�>Ljavax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback;�in�Ljava/io/StringReader;�parser�)Lgnu/javax/swing/text/html/css/CSSParser;�getDeclaration�3(Ljava/lang/String;)Ljavax/swing/text/AttributeSet;	
                                    ! �#javax/swing/text/SimpleAttributeSet
                                    �ƒ�EMPTY�decl�	loadRules�!(Ljava/io/Reader;Ljava/net/URL;)V�
                                    ! Exceptions�Ljava/io/Reader;�ref�getViewAttributes�8(Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet;�&javax/swing/text/html/ViewAttributeSet
                                    ! ��<(Ljavax/swing/text/View;Ljavax/swing/text/html/StyleSheet;)V�v�Ljavax/swing/text/View;�removeStyle
                                    ! ��è�nm�
                                    addStyleSheet�%(Ljavax/swing/text/html/StyleSheet;)V�removeStyleSheet
                                    ! �%&�,�remove�getStyleSheets�%()[Ljavax/swing/text/html/StyleSheet;*�#[Ljavax/swing/text/html/StyleSheet;�linkedSS�importStyleSheet�(Ljava/net/URL;)V
                                    ! /10�java/net/URL23�
                                    ! openStream�()Ljava/io/InputStream;5�java/io/BufferedReader7�java/io/InputStreamReader
                                    ! 69�:�(Ljava/io/InputStream;)V
                                    ! 4<�=�(Ljava/io/Reader;)V�url�Ljava/io/InputStream;�r�setBase	�C���getBase�()Ljava/net/URL;�addCSSAttribute�`(Ljavax/swing/text/MutableAttributeSet;Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)V
                                    ! IKJ�javax/swing/text/html/CSSLM�getValue�K(Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object;
                                    ! IOPG�addInternalRTS�$javax/swing/text/MutableAttributeSetUV�addAttribute�'(Ljava/lang/Object;Ljava/lang/Object;)V�attr�&Ljavax/swing/text/MutableAttributeSet;�key�%Ljavax/swing/text/html/CSS$Attribute;�value�val�addCSSAttributeFromHTML�`(Ljavax/swing/text/MutableAttributeSet;Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)ZR`ab�containsAttribute�'(Ljava/lang/Object;Ljava/lang/Object;)Z�translateHTMLToCSS�@(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet;�Ifg�A�copyAttributes	�Yij�]�ALIGN	lnm�#javax/swing/text/html/CSS$AttributeoZ�
                                      TEXT_ALIGN
                                    ! �qUr�d(Ljavax/swing/text/AttributeSet;Ljava/lang/Object;Ljava/lang/Object;)Ljavax/swing/text/AttributeSet;	�Ytu�]�WIDTH	lwuZy�$gnu/javax/swing/text/html/css/Length
                                    ! x�ò	�Y|}�]�HEIGHT	l}Z	�Y‚�]�NOWRAP	l„…Z�WHITE_SPACE‡�nowrap	�Y‰Š�]�CELLSPACING	lŒZ�BORDER_SPACING	�q�}�TD	�q’“�}�TH	�Y•–�]�CELLPADDING	l˜™Z�PADDING_BOTTOM	l›œZ�PADDING_LEFT	lžŸZ�
                                    PADDING_RIGHT	l¡¢Z�PADDING_TOP	�Y¤¥�]�BORDER
                                    ! �§¨©�translateBorder�R(Ljavax/swing/text/AttributeSet;Ljava/lang/Object;)Ljavax/swing/text/AttributeSet;�htmlAttrSet�cssAttr�
                                    ! tableAttrs�l�&Lgnu/javax/swing/text/html/css/Length;°�)gnu/javax/swing/text/html/css/BorderWidth
                                    ! ¯�ò
                                    ! ¯³L´�()F	l¶·Z�BORDER_WIDTH	l¹ºZ�BORDER_STYLE¼�solid	l¾¿Z�BORDER_COLORÁ�&gnu/javax/swing/text/html/css/CSSColorÃ�black
                                    ! À�ò�+Lgnu/javax/swing/text/html/css/BorderWidth;
                                    ! �q�old�
                                    addAttributes�_(Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet;
                                    ! �ËÈÉ�removeAttribute
                                    ! �ÎÌ©�removeAttributes
                                    ! �ÑÏÉ�attrs�W(Ljavax/swing/text/AttributeSet;Ljava/util/Enumeration;)Ljavax/swing/text/AttributeSet;�Z(Ljavax/swing/text/AttributeSet;Ljava/util/Enumeration<*>;)Ljavax/swing/text/AttributeSet;
                                    ! �ÖÏÓ�names�Ljava/util/Enumeration;�Ljava/util/Enumeration<*>;�createSmallAttributeSet�R(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/StyleContext$SmallAttributeSet;
                                    ! �ÝÚÛ�a�createLargeAttributeSet�G(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/MutableAttributeSet;
                                    ! �âßà�getFont�0(Ljavax/swing/text/AttributeSet;)Ljava/awt/Font;
                                    ! �æçè�getFontSize�"(Ljavax/swing/text/AttributeSet;)I	lêëZ�VERTICAL_ALIGNí�sup
                                    ! �›ïðñ�contains�(Ljava/lang/CharSequence;)Zó�subõ�	SansSerif	l÷øZ�FONT_WEIGHTú�(gnu/javax/swing/text/html/css/FontWeight
                                    ! ùüL�9	lþÿZ�
                                    ! FONT_STYLE�'gnu/javax/swing/text/html/css/FontStyle
                                    ! �ü�
                                    java/awt/Font
                                    ! ��(Ljava/lang/String;II)V�realSize�valign�family�weight�*Lgnu/javax/swing/text/html/css/FontWeight;�fStyle�)Lgnu/javax/swing/text/html/css/FontStyle;�	getEMBase�"(Ljavax/swing/text/AttributeSet;)F
                                    ! �ãä�java/awt/font/FontRenderContext
                                    ! ��$(Ljava/awt/geom/AffineTransform;ZZ)V�M
                                    ! �getStringBounds�P(Ljava/lang/String;Ljava/awt/font/FontRenderContext;)Ljava/awt/geom/Rectangle2D;
                                    ! ! �java/awt/geom/Rectangle2D"#�getWidth�()D�font�Ljava/awt/Font;�ctx�!Ljava/awt/font/FontRenderContext;�bounds�Ljava/awt/geom/Rectangle2D;�	getEXBase,�x
                                    ! ./#�	getHeight	l12Z�	FONT_SIZE4�&gnu/javax/swing/text/html/css/FontSize
                                    ! 367�v�
                                    ! isRelative�I9:�A�getResolveParent
                                    ! 3<L=�(I)I
                                    ! 3ü�fs�(Lgnu/javax/swing/text/html/css/FontSize;�parSize�resolver�
                                    getForeground�1(Ljavax/swing/text/AttributeSet;)Ljava/awt/Color;	lFGZ�COLOR
                                    ! ÀILJ�()Ljava/awt/Color;�c�(Lgnu/javax/swing/text/html/css/CSSColor;�color�Ljava/awt/Color;�
                                    getBackground	lQRZ�BACKGROUND_COLOR�
                                    getBoxPainter�N(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/StyleSheet$BoxPainter;V�+javax/swing/text/html/StyleSheet$BoxPainter
                                    ! UX�Y�D(Ljavax/swing/text/AttributeSet;Ljavax/swing/text/html/StyleSheet;)V�getListPainter�O(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/StyleSheet$ListPainter;]�,javax/swing/text/html/StyleSheet$ListPainter
                                    ! \X�setBaseFontSize�(I)V�sz
                                    ! �›cd�S�trim
                                    ! �›fg�9�lengthi�java/lang/Integer
                                    ! �›klm�	substring�(I)Ljava/lang/String;
                                    ! h�ò
                                    ! hpq�9�intValues�+
                                    ! �›uvw�
                                    ! startsWith�(Ljava/lang/String;)Zy�-{�java/lang/NumberFormatException�temp�getIndexOfSize�(F)I�pt�F�getPointSize�(I)F�index�(Ljava/lang/String;)F�
                                    stringToColor�$(Ljava/lang/String;)Ljava/awt/Color;
                                    ! Àˆ‰†�convertValue�	colorName�IŒŽ�getAttributeNames�()Ljava/util/Enumeration;’‘�java/util/Enumeration“�´�nextElement•–�v�hasMoreElements�map�keys�9Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;�
                                    ! SourceFile�StyleSheet.java�InnerClassesž�/javax/swing/text/StyleContext$SmallAttributeSet�SmallAttributeSet�	Attribute¢�javax/swing/text/html/HTML�Tag�
                                      BoxPainter�CSSStyle�CSSStyleSheetParserCallback�ListPainter�!�������������������	�
                                      ���������
                                    �
                                      ����������������+��������Z����� *·�*»�Y·�µ�*µ�*»�Y·� µ�!±����#��������ÿ��
                                    ��$������� �%�&����'�(����W��
                                      ��õ»�Y·�N,:§�-¶�)W¹�-�:Çÿî»�3Y·�5:-¶�66d6§�Í-¶�:À�.:¹�>�:²�B¹�H�:		¶�N¶�TW²�X¹�^�™�#¶�aW²�X¹�H�¶�dW²�g¹�^�™�.¶�aW²�g¹�H�¶�dW²�j¹�^�™�:¶�aW²�j¹�H�¶�dW²�m¹�^�™�:¶�aW²�m¹�H�¶�dW ¶�aW„ÿÿ4+¶�p¶�TW-¶�:À�.:¹�>�:¹�s�™�"+¹�H�:Á�I™�
                                    À�I:§�:Æ�—²�X¹�^�™�#¶�aW²�X¹�H�¶�dW²�g¹�^�™�.¶�aW²�g¹�H�¶�dW²�j¹�^�™�:¶�aW²�j¹�H�¶�dW²�m¹�^�™�:¶�aW²�m¹�H�¶�dW*¶�w-+·�x°����#���¾�/��� �!� �#$�,%�2'�;)�F*�O+�[,�f-�s/�{0�‹2�˜4� 5�°7�½9�Å:�Õ<�â>�ê?�úA'
                                      CDE'G1I;JCKMMPOUQbSjTzV‡XYŸ[¬]´^Ä`ÑbÙcéf�$���z���õ�%�&����õ�|�}���õ�~���í�€�
                                    ! ��ê����O�¶�‚�ƒ�'�Î�‚�ƒ��,É�„�…��2Ã�†���8�Ò�‡���[�§�ˆ�G�	;��‰�G��Š�����í�€�‹���z�{�����|�����*´�!+¶�ŒÀ�Ž:Ç�*+,-·�:°����#������v�
                                    w�x�y�$���4�����%�&������„�“�����€�”�����•�}��
                                    ��–�—���’�{����²�����Â,¹�˜�6½�›:½�:6§�,¹�Ÿ�À�.:¹�>�:	š�,¹�s�™�"	-¹�H�:
                                      
                                      Á�I™�
                                    
                                    ! À�I:	§�:		Æ�8	²�B¹�H�À�q:
                                      
                                      �
                                    ! ¶�pS§�	S*	·� S§�SS„¡ÿo-¶�pS*+·�¤°����#���^���‰�Š�‹�Œ�Ž�)�2�A’�K“�S”�]–�`˜�e›�rš�tœ�y�†Ÿ�Œ �š¤� ¥�¦Œ�°¨�¸©�$���z����Â�%�&�����Â�„�“����Â�€�”����Â�•�}���º�†����³�§�¨���¬�©�ª���—�‡���)�}����2�t�‚�ƒ�	�K��‰�G�
                                    ! �t�&�|�}�
                                    ! ��’�¦����á��	���ã»�Y·�:*´�¶�«:§�$¹�¯�À�µ:´�·,-¶�º™�¶�)W¹�À�šÿØ*´�ÃÆ�b*´�ö�6d6§�O*´�ö�:À�:´�¶�6d6§�*´�¶�:À�µ:´�·,-¶�º™�¶�)W„ÿœÿׄÿœÿ²¸�Ŷ�6½�Ž:¶�ËÀ�Ï:»�ÑY+¶�ËÀ�Ï·�Ó:*´�!+¶�ÖW°����#���Z���¹�	º�!¼�.½�6º�@Á�GÃ�UÅ�cÆ�rÈ�É�ŽÊ�–Æ�žÃ�¦Ð�«Ñ�µÒ�ÁÓ�ÆÔ�ÐÓ�ÕÕ�àÖ�$���z����ã�%�&�����ã�„�“����ã�§�¨����ã�©�ª��	�Ú�Ú�
                                    ! ��!��–�Û��R�T�‡���c�;�Ü�&��o�/�Ý�����–�Û��µ�.�Þ�Ð��Õ��ß�—��Š�����	�Ú�Ú����'�à�����™�����/M*´�¶�«N§�-¹�¯�À�µ:,¶�áœ�M-¹�À�šÿã,°����#������ã�ä�
                                    æ�ç�!è�$ä�-ê�$���4����/�%�&�����/�„�“���-�å�Û��
                                    ! �#�‡�æ����–�Û���ç�è�����¦�����0»�éY*ë·�ìM»�ïY+·�ñN»�óY-,·�õ:¶�ø§�W*´�!¶�û±���$�'�þ��#���"���ö�
                                    ! õ�ø�ù�ü�'þ�(�/�$���4����0�%�&�����0��“���%�������������F�����
                                    ! +Ç�²	°°����#���������$�������
                                      �%�&�����
                                    ! �“��������þ����}�����»�éY*·�ìN»�óY+-·�õ:¶�ø±����#������$�	#�
                                    ! &�'�(�$���4�����%�&������������
                                    ! �����������>�����
                                    ! »Y+*·°����#������3�$�������
                                      �%�&�����
                                    ! ���è�����>�����*+·±����#���
                                    ! ���>�?�$��������%�&����� �“��!"�����\�����*´�ÃÇ�*»�Y·�µ�Ã*´�Ã+¶�)W±����#������J�K�L�M�$��������%�&������Ü�&��#"�����M�����*´�ÃÆ�*´�Ã+¶$W±����#������V�X�Z�$��������%�&������Ü�&��'(�����v�����(*´�ÃÆ�*´�ö�6½�L*´�Ã+¶�ËÀ)L§�À)L+°����#������d�f�g�!k�&m�$��� ����(�%�&����+*��&�+*��,-�����·�����7+¶.M»4Y»6Y,·8·;N»�éY*ë·�ì:»�óY-·�õ:¶�ø§�W±����2�5�þ��#���"���{�|�~�}�!�-€�5‚�6†�$���>����7�%�&�����7>����0?��� @��!���-���A-�����>�����*+µB±����#���
                                    ! ���‘�’�$��������%�&���������DE�����/�����*´B°����#������›�$��������%�&���FG�����u�����,-¸H:+,-¸N+,¹Q�±����#������¨�©�
                                    ª�«�$���4�����%�&�����WX����YZ����[�“���\�G��]^�����]�����+,-¹Q�+,-¹_�¬����#���
                                    ! ���¼�½�$���*�����%�&�����WX����YZ����[�“��cd����^����J+¹e�M+²h¹�H�N-Æ�
                                    *,²k-¶pM+²s¹�H�N-Æ�*,²v»xY-¶�N·z¶pM+²{¹�H�N-Æ�*,²~»xY-¶�N·z¶pM+²€¹�H�N-Æ�*,²ƒ†¶pM+²ˆ¹�H�N-Æ�*,²‹»xY-¶�N·z¶pM+²�B¹�H�À�q:²Ž¥�²‘¦�}+Á�.™�v+À�.:¹�-�¹�-�¹�>�:²”¹�H�N-Æ�<»xY-¶�N·z:*,²—¶pM*,²š¶pM*,²¶pM*,² ¶pM²£¹�H�N*,-·¦M,²£¹�H�N*,-·¦M,°����#���ª�*��È�Ë�Ì�Í�Ð�)Ñ�-Ò�2Ó�=Ò�AÖ�K×�OØ�TÙ�_Ø�cÛ�mÜ�qÝ�}à�‡á�‹â�ã�›â�Ÿè�¨ç�­é�½ê�Äì�Êí�Öî�Ûí�Ýï�èð�ìò�ùóôõö%ø0ù7ýAþH�$���R���J�%�&����Jª�ƒ��C«�ƒ��9�‰�G��­��•�}��Ê�m����Ý�Z¬�ƒ��ù�,­®��¨©�����´�����D,Æ�A»¯Y,¶�N·±N-¶²•ž�,*+²µ-¶pL*+²¸»¶pL*+²½»ÀY·ĶpL+°����#���.�������#�(�+�/�4�>�B�$���*����D�%�&�����D«�ƒ����D�‰�G���2­Å��Ur�����P�����*+,-·Æ°����#������-�$���*�����%�&�����Ç�ƒ����Y�G����[�G��ÈÉ�����E�����*+,·Ê°����#������<�$��� �����%�&�����Ç�ƒ����W�ƒ��Ì©�����E�����*+,·Í°����#������K�$��� �����%�&�����Ç�ƒ����Y�G��ÏÉ�����E�����*+,·а����#������Z�$��� �����%�&�����Ç�ƒ����Ò�ƒ��ÏÓ�����Ô����W�����*+,·Õ°����#������i�$��� �����%�&�����Ç�ƒ����×Ø��Š�������×Ù��ÚÛ�����:�����*+·Ü°����#������u�$��������%�&�����Þ�ƒ��ßà�����:�����*+·á°����#������‚�$��������%�&�����Þ�ƒ��ãä����4�����‚*+·å=+²é¹�H�N-Æ�"-¶�N:ì¶îš�ò¶î™�„þô:6+²ö¹�H�Àù:Æ�
                                    ¶û€6+²ý¹�H�À�:Æ�
                                    ¶€6»Y·°����#���>�����‘�“�”�0•�3™�8›�;œ�I�Nž�XŸ�f �k¡�u¢�$���\�	���‚�%�&�����‚Þ�ƒ���|����r	�G����“��8�J
                                    ! �“��;�G�–���I�9��f�
                                    ��������€�����"*+¶M»Y·N,-¶:¶®����#������®�¯�°�±�$���4����"�%�&�����"�‚�ƒ���$%���&'���()���*�����€�����"*+¶M»Y·N,+-¶:¶-®����#������½�¾�¿�À�$���4����"�%�&�����"�‚�ƒ���$%���&'���()��çè�����û�����a=+²0¹�^�™�B+²0¹�H�À3N-¶5™�&6+¹8�:Æ�*·å6-¶;=§�-¶>=§�+¹8�N-Æ�	*-·å=¬����#���:���Ì�Í�Ï�Ð�#Ò�'Ó�/Ô�4Õ�<Ö�FÚ�Nß�Uà�Yá�_ã�$���H����a�%�&�����a�‚�ƒ���^�8����2?@��'�A���/�B�ƒ��U�
                                    ! B�ƒ��CD�����r�����+²E¹�H�ÀÀMN,Æ�,¶HN-°����#������ð�
                                    ñ�ò�ó�ô�$���*�����%�&�����Þ�ƒ��
                                    �
                                    KL���MN��OD�����r�����+²P¹�H�ÀÀMN,Æ�,¶HN-°����#�������
                                    ����$���*�����%�&�����Þ�ƒ��
                                    �
                                    KL���MN��ST�����>�����
                                    ! »UY+*·W°����#�������$�������
                                      �%�&�����
                                    ! Þ�ƒ��Z[�����>�����
                                    ! »\Y+*·^°����#�������$�������
                                      �%�&�����
                                    ! Þ�ƒ��_`�����M�����£�
                                    ¡�*µ�±����#������%�&�'�$��������%�&�����a���_�è�����ø�����t+¶bL=+¶e �;»hY+¶j·n¶o>+r¶t™�
                                    *´�`=§�/+x¶t™�%*´�d=§�+¶e �»hY+¶j·n¶o=£�¡�*µ�§�W±���o�rz��#���:���2�3�6�8�9�):�3;�=<�G>�O?�_A�jB�rD�sH�$���*����t�%�&�����t�8�“���m|����(�‡���	}~�����,�����¬����#������S�$�������€���‚�����6�����®����#������_�$��������%�&�����ƒ���„�����6�����®����#������k�$��������%�&������8�“��…†�����9�����+¸‡°����#������w�$��������%�&�����Š�“���¢�£�����Ò�����>»�Y·� M+¹‹�N§�$-¹�:+¹�H�:,¶�N¶�N¶�ÖW-¹”�šÿÙ,°����#���"���¦�§�¨�ª�«�$¬�3¨�<®�$���>����>�%�&�����>�‚�ƒ���6—����/˜Ø���Y�G��$�[�G��Š������6—™���/˜Ù��š���›œ���B��Ÿ�lI ��Y¡ ��q¡£�	U�¤�	�µ�¥��é�¦��\�§�	
                                    \ No newline at end of file
                                    --- 13,128 ----
                                      �3�e�V�f�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;	�Y�h�i�]�CLASS	�Y�k�l�]�
                                    DYNAMIC_CLASS	�Y�n�o�]�PSEUDO_CLASS
                                      �q�Q�r�javax/swing/text/html/HTML$Tag�.�t�u�v�isLeaf�()Z
                                      �3�Q
                                    ! ��y�z�{�getResolvedStyle�\(Ljava/lang/String;Ljava/util/List;Ljavax/swing/text/html/HTML$Tag;)Ljavax/swing/text/Style;�t� Ljavax/swing/text/html/HTML$Tag;�e�Ljavax/swing/text/Element;�path�el�atts�Ljavax/swing/text/AttributeSet;�selector�Ljava/lang/StringBuilder;�count�i�name�o�LocalVariableTypeTable�1Ljava/util/ArrayList<Ljavax/swing/text/Element;>;�x(Ljava/lang/String;Ljava/util/List<Ljavax/swing/text/Element;>;Ljavax/swing/text/html/HTML$Tag;)Ljavax/swing/text/Style;
                                    ! ��Ž�<�M��javax/swing/text/Style
                                    ! ��’�“�{�resolveStyle�Ljava/lang/String;�Ljava/util/List;�tag�style�Ljavax/swing/text/Style;�,Ljava/util/List<Ljavax/swing/text/Element;>;�›�7�œ�java/util/List�ž�java/lang/String
                                    ! �� ��¡�(I)V�›�;
                                    ! ��¤�¥�¦�attributeSetToMap�0(Ljavax/swing/text/AttributeSet;)Ljava/util/Map;�›�¨�©�ª�set�'(ILjava/lang/Object;)Ljava/lang/Object;
                                    ! ��¬�“�­�O(Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;)Ljavax/swing/text/Style;�tags�[Ljava/lang/String;�
                                    ! attributes�GLjava/util/List<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;�†(Ljava/lang/String;[Ljava/lang/String;Ljava/util/List<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;)Ljavax/swing/text/Style;
                                    ! ��´�µ�¶�iterator�()Ljava/util/Iterator;�¸�º�¹�java/util/Iterator�»�¼�next�()Ljava/lang/Object;�¾�)javax/swing/text/html/StyleSheet$CSSStyle	�½�À�„�Á�(Lgnu/javax/swing/text/html/css/Selector;
                                    ! �Ã�Å�Ä�&gnu/javax/swing/text/html/css/Selector�Æ�Ç�matches�&([Ljava/lang/String;Ljava/util/List;)Z�¸�É�Ê�v�hasNext	��Ì�	�
                                      
                                    ! ����java/util/Collections���sort�(Ljava/util/List;)V
                                    ! ��Ô�Õ�Ö�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�Ø�[Ljavax/swing/text/Style;�Ú� javax/swing/text/html/MultiStyle
                                    ! �Ù�Ü��Ý�5(Ljava/lang/String;[Ljavax/swing/text/AttributeSet;)V
                                    ! ��ß�à�á�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�styles�+Ljavax/swing/text/html/StyleSheet$CSSStyle;�ss�j�
                                      styleArray�resolved�,(Ljava/lang/String;)Ljavax/swing/text/Style;
                                    ! �½�ê�ë�ì�	compareTo�.(Ljavax/swing/text/html/StyleSheet$CSSStyle;)I�best�Ljava/util/Iterator;�ALjava/util/Iterator<Ljavax/swing/text/html/StyleSheet$CSSStyle;>;�addRule�(Ljava/lang/String;)V�ó�<javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback�
                                    @
                                    ! �ò�ö��÷�&(Ljavax/swing/text/html/StyleSheet;I)V�ù�java/io/StringReader
                                    ! �ø�û��ñ�ý�'gnu/javax/swing/text/html/css/CSSParser
                                    ! �ü�ÿ���D(Ljava/io/Reader;Lgnu/javax/swing/text/html/css/CSSParserCallback;)V
                                    ! �ü��parse
                                    ! ���clear�java/io/IOException�rule�cb�>Ljavax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback;�in�Ljava/io/StringReader;�parser�)Lgnu/javax/swing/text/html/css/CSSParser;�getDeclaration�3(Ljava/lang/String;)Ljavax/swing/text/AttributeSet;	�#javax/swing/text/SimpleAttributeSet�ƒ�EMPTY�decl�	loadRules�!(Ljava/io/Reader;Ljava/net/URL;)V�
                                    ! Exceptions�Ljava/io/Reader;�ref�getViewAttributes�8(Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; �&javax/swing/text/html/ViewAttributeSet
                                    ! "�#�<(Ljavax/swing/text/View;Ljavax/swing/text/html/StyleSheet;)V�v�Ljavax/swing/text/View;�removeStyle
                                    ! �(&�ñ�nm�
                                    addStyleSheet�%(Ljavax/swing/text/html/StyleSheet;)V�removeStyleSheet
                                    ! �./�,�remove�getStyleSheets�%()[Ljavax/swing/text/html/StyleSheet;3�#[Ljavax/swing/text/html/StyleSheet;�linkedSS�importStyleSheet�(Ljava/net/URL;)V
                                    ! 8:9�java/net/URL;<�
                                    ! openStream�()Ljava/io/InputStream;>�java/io/BufferedReader@�java/io/InputStreamReader
                                    ! ?B�C�(Ljava/io/InputStream;)V
                                    ! =E�F�(Ljava/io/Reader;)V�url�Ljava/io/InputStream;�r�setBase	�L���getBase�()Ljava/net/URL;�addCSSAttribute�`(Ljavax/swing/text/MutableAttributeSet;Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)V
                                    ! RTS�javax/swing/text/html/CSSUV�getValue�K(Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object;
                                    ! RXYP�addInternal[]\�$javax/swing/text/MutableAttributeSet^_�addAttribute�'(Ljava/lang/Object;Ljava/lang/Object;)V�attr�&Ljavax/swing/text/MutableAttributeSet;�key�%Ljavax/swing/text/html/CSS$Attribute;�value�val�addCSSAttributeFromHTML�`(Ljavax/swing/text/MutableAttributeSet;Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Z[ijk�containsAttribute�'(Ljava/lang/Object;Ljava/lang/Object;)Z�translateHTMLToCSS�@(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet;�Iop�A�copyAttributes	�Yrs�]�ALIGN	uwv�#javax/swing/text/html/CSS$Attributexc�
                                      TEXT_ALIGN
                                    ! �z^{�d(Ljavax/swing/text/AttributeSet;Ljava/lang/Object;Ljava/lang/Object;)Ljavax/swing/text/AttributeSet;	�Y}~�]�WIDTH	u€~c‚�$gnu/javax/swing/text/html/css/Length
                                    ! �û	�Y…†�]�HEIGHT	uˆ†c	�YŠ‹�]�NOWRAP	uŽc�WHITE_SPACE�nowrap	�Y’“�]�CELLSPACING	u•–c�BORDER_SPACING	�q˜™�}�TD	�q›œ�}�TH	�YžŸ�]�CELLPADDING	u¡¢c�PADDING_BOTTOM	u¤¥c�PADDING_LEFT	u§¨c�
                                    PADDING_RIGHT	uª«c�PADDING_TOP	�Y­®�]�BORDER
                                    ! �°±²�translateBorder�R(Ljavax/swing/text/AttributeSet;Ljava/lang/Object;)Ljavax/swing/text/AttributeSet;�htmlAttrSet�cssAttr�
                                    ! tableAttrs�l�&Lgnu/javax/swing/text/html/css/Length;¹�)gnu/javax/swing/text/html/css/BorderWidth
                                    ! ¸�û
                                    ! ¸¼U½�()F	u¿Àc�BORDER_WIDTH	uÂÃc�BORDER_STYLEÅ�solid	uÇÈc�BORDER_COLORÊ�&gnu/javax/swing/text/html/css/CSSColorÌ�black
                                    ! É�û�+Lgnu/javax/swing/text/html/css/BorderWidth;
                                    ! �z�old�
                                    addAttributes�_(Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet;
                                    ! �ÔÑÒ�removeAttribute
                                    ! �×Õ²�removeAttributes
                                    ! �ÚØÒ�attrs�W(Ljavax/swing/text/AttributeSet;Ljava/util/Enumeration;)Ljavax/swing/text/AttributeSet;�Z(Ljavax/swing/text/AttributeSet;Ljava/util/Enumeration<*>;)Ljavax/swing/text/AttributeSet;
                                    ! �ßØÜ�names�Ljava/util/Enumeration;�Ljava/util/Enumeration<*>;�createSmallAttributeSet�R(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/StyleContext$SmallAttributeSet;
                                    ! �æãä�a�createLargeAttributeSet�G(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/MutableAttributeSet;
                                    ! �ëèé�getFont�0(Ljavax/swing/text/AttributeSet;)Ljava/awt/Font;
                                    ! �ïðñ�getFontSize�"(Ljavax/swing/text/AttributeSet;)I	uóôc�VERTICAL_ALIGNö�sup
                                    ! �øùú�contains�(Ljava/lang/CharSequence;)Zü�subþ�	SansSerif	u�c�FONT_WEIGHT�(gnu/javax/swing/text/html/css/FontWeight
                                    ! U�9	uc�
                                    ! FONT_STYLE
                                    ! �'gnu/javax/swing/text/html/css/FontStyle
                                    ! 	
                                    �
                                    java/awt/Font
                                    ! ��(Ljava/lang/String;II)V�realSize�valign�family�weight�*Lgnu/javax/swing/text/html/css/FontWeight;�fStyle�)Lgnu/javax/swing/text/html/css/FontStyle;�	getEMBase�"(Ljavax/swing/text/AttributeSet;)F
                                    ! �ìí�java/awt/font/FontRenderContext
                                    ! � �$(Ljava/awt/geom/AffineTransform;ZZ)V"�M
                                    ! $%&�getStringBounds�P(Ljava/lang/String;Ljava/awt/font/FontRenderContext;)Ljava/awt/geom/Rectangle2D;
                                    ! (*)�java/awt/geom/Rectangle2D+,�getWidth�()D�font�Ljava/awt/Font;�ctx�!Ljava/awt/font/FontRenderContext;�bounds�Ljava/awt/geom/Rectangle2D;�	getEXBase5�x
                                    ! (78,�	getHeight	u:;c�	FONT_SIZE=�&gnu/javax/swing/text/html/css/FontSize
                                    ! <?@�v�
                                    ! isRelative�IBC�A�getResolveParent
                                    ! <EUF�(I)I
                                    ! <�fs�(Lgnu/javax/swing/text/html/css/FontSize;�parSize�resolver�
                                    getForeground�1(Ljavax/swing/text/AttributeSet;)Ljava/awt/Color;	uOPc�COLOR
                                    ! ÉRUS�()Ljava/awt/Color;�c�(Lgnu/javax/swing/text/html/css/CSSColor;�color�Ljava/awt/Color;�
                                    getBackground	uZ[c�BACKGROUND_COLOR�
                                    getBoxPainter�N(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/StyleSheet$BoxPainter;_�+javax/swing/text/html/StyleSheet$BoxPainter
                                    ! ^a�b�D(Ljavax/swing/text/AttributeSet;Ljavax/swing/text/html/StyleSheet;)V�getListPainter�O(Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/StyleSheet$ListPainter;f�,javax/swing/text/html/StyleSheet$ListPainter
                                    ! ea�setBaseFontSize�sz
                                    ! �kl�S�trim
                                    ! �no�9�lengthq�java/lang/Integer
                                    ! �stu�	substring�(I)Ljava/lang/String;
                                    ! p�û
                                    ! pxy�9�intValue{�+
                                    ! �}~�
                                    ! startsWith�(Ljava/lang/String;)Z�-ƒ�java/lang/NumberFormatException�temp�getIndexOfSize�(F)I�pt�F�getPointSize�(I)F�index�(Ljava/lang/String;)F�
                                    stringToColor�$(Ljava/lang/String;)Ljava/awt/Color;
                                    ! É‘Ž�convertValue�	colorName�V(Ljavax/swing/text/AttributeSet;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;�I•–—�getAttributeNames�()Ljava/util/Enumeration;™›š�java/util/Enumerationœ�¼�nextElement™žŸ�v�hasMoreElements�map�keys�9Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;�
                                    ! SourceFile�StyleSheet.java�InnerClasses§�/javax/swing/text/StyleContext$SmallAttributeSet�SmallAttributeSet�	Attribute«�javax/swing/text/html/HTML�Tag�
                                      BoxPainter�CSSStyle�CSSStyleSheetParserCallback�ListPainter�!�������������������	�
                                      ���������
                                    �
                                      ����������������+��������Z����� *·�*»�Y·�µ�*µ�*»�Y·� µ�!±����#��������ÿ��
                                    ��$������� �%�&����'�(����W��
                                      ��õ»�Y·�N,:§�-¶�)W¹�-�:Çÿî»�3Y·�5:-¶�66d6§�Í-¶�:À�.:¹�>�:²�B¹�H�:		¶�N¶�TW²�X¹�^�™�#¶�aW²�X¹�H�¶�dW²�g¹�^�™�.¶�aW²�g¹�H�¶�dW²�j¹�^�™�:¶�aW²�j¹�H�¶�dW²�m¹�^�™�:¶�aW²�m¹�H�¶�dW ¶�aW„ÿÿ4+¶�p¶�TW-¶�:À�.:¹�>�:¹�s�™�"+¹�H�:Á�I™�
                                    À�I:§�:Æ�—²�X¹�^�™�#¶�aW²�X¹�H�¶�dW²�g¹�^�™�.¶�aW²�g¹�H�¶�dW²�j¹�^�™�:¶�aW²�j¹�H�¶�dW²�m¹�^�™�:¶�aW²�m¹�H�¶�dW*¶�w-+·�x°����#���¾�/��� �!� �#$�,%�2'�;)�F*�O+�[,�f-�s/�{0�‹2�˜4� 5�°7�½9�Å:�Õ<�â>�ê?�úA'
                                      CDE'G1I;JCKMMPOUQbSjTzV‡XYŸ[¬]´^Ä`ÑbÙcéf�$���z���õ�%�&����õ�|�}���õ�~���í�€�
                                    ! ��ê����O�¶�‚�ƒ�'�Î�‚�ƒ��,É�„�…��2Ã�†���8�Ò�‡���[�§�ˆ�G�	;��‰�G��Š�����í�€�‹���z�{������Œ����Ž�����*´�!+¶�À�:Ç�*+,-·�‘:°����#������v�
                                    w�x�y�$���4�����%�&������„�”�����€�•�����–�}��
                                    ��—�˜��Š��������€�™���“�{������Œ���Ñ�����Å,¹�š�6½�:»�Y·�Ÿ:6§�,¹�¢�À�.:¹�>�:	š�,¹�s�™�"	-¹�H�:
                                      
                                      Á�I™�
                                    
                                    ! À�I:	§�:		Æ�=	²�B¹�H�À�q:
                                      
                                      �
                                    ! ¶�pS§�	S*	·�£¹�§�W§�	S„¡ÿp-¶�pS*+·�«°����#���^���‰�Š�Œ�‹�� �-�6‘�E“�O”�W•�a—�d™�iœ�v›�x�}ž�Š �¡�£¥�©�³¨�»©�$���z����Å�%�&�����Å�„�”����Å�€�•����Å�–�}���½�†����¶�®�¯���«�°�•���–�‡���-�|����6�s�‚�ƒ�	�O��‰�G�
                                    ! �x�+�|�}�
                                    ! �Š�������Å�€�™���«�°�±���“�­������²���Ó��	���×»�Y·�:*´�¶�³:§�$¹�·�À�½:´�¿,-¶�™�¶�)W¹�È�šÿØ*´�ËÆ�b*´�˶�6d6§�O*´�˶�:À�:´�¶�6d6§�*´�¶�:À�½:´�¿,-¶�™�¶�)W„ÿœÿׄÿœÿ²¸�Ͷ�6½�¶�ÓÀ�×:»�ÙY+·�Û:*´�!+¶�ÞW°����#���N���º�	»�!½�.¾�6»�@Â�GÄ�UÆ�cÇ�rÉ�Ê�ŽË�–Ç�žÄ�¦Ñ�«Ò�½Ó�ÉÔ�ÔÕ�$���z����×�%�&�����×�„�”����×�®�¯����×�°�•��	�Î�â�
                                    ! ��!��—�ã��R�T�‡���c�;�ä�&��o�/�å�����—�ã��½��æ�Ø��É��ç�˜��Š�������×�°�±��	�Î�â����'�è�����«�����/M*´�¶�³N§�-¹�·�À�½:,¶�éœ�M-¹�È�šÿã,°����#������â�ã�
                                    å�æ�!ç�$ã�-é�$���4����/�%�&�����/�„�”���-�í�ã��
                                    ! �#�‡�î����—�ã��Š�����
                                    ! �#�‡�ï���ð�ñ�����¦�����0»�òY*ô·�õM»�øY+·�úN»�üY-,·�þ:¶§�W*´�!¶±���$�'��#���"���õ�
                                    ! ô�÷�ø�û�'ý�(�/�$���4����0�%�&�����0	�”���%
                                    ! ���
                                    ����������F�����
                                    ! +Ç�²°°����#���������$�������
                                      �%�&�����
                                    ! �”�����������}�����»�òY*·�õN»�üY+-·�þ:¶±����#������#�	"�
                                    ! %�&�'�$���4�����%�&������������
                                    ! �
                                    ! ����������>�����
                                    ! »Y+*·!°����#������2�$�������
                                      �%�&�����
                                    ! $%��&�ñ�����>�����*+·'±����#���
                                    ! ���=�>�$��������%�&�����)�”��*+�����\�����*´�ËÇ�*»�Y·�µ�Ë*´�Ë+¶�)W±����#������I�J�K�L�$��������%�&������ä�&��,+�����M�����*´�ËÆ�*´�Ë+¶-W±����#������U�W�Y�$��������%�&������ä�&��01�����v�����(*´�ËÆ�*´�˶�6½�L*´�Ë+¶�ÓÀ2L§�À2L+°����#������c�e�f�!j�&l�$��� ����(�%�&����43��&�43��56�����·�����7+¶7M»=Y»?Y,·A·DN»�òY*ô·�õ:»�üY-·�þ:¶§�W±����2�5��#���"���z�{�}�|�!~�-�5�6…�$���>����7�%�&�����7G����0H��� I��!�
                                    ! ��-���J6�����>�����*+µK±����#���
                                    ! ����‘�$��������%�&���������MN�����/�����*´K°����#������š�$��������%�&���OP�����u�����,-¸Q:+,-¸W+,¹Z�±����#������§�¨�
                                    ©�ª�$���4�����%�&�����`a����bc����d�”���e�G��fg�����]�����+,-¹Z�+,-¹h�¬����#���
                                    ! ���»�¼�$���*�����%�&�����`a����bc����d�”��lm����^����J+¹n�M+²q¹�H�N-Æ�
                                    *,²t-¶yM+²|¹�H�N-Æ�*,²»Y-¶�N·ƒ¶yM+²„¹�H�N-Æ�*,²‡»Y-¶�N·ƒ¶yM+²‰¹�H�N-Æ�*,²Œ¶yM+²‘¹�H�N-Æ�*,²”»Y-¶�N·ƒ¶yM+²�B¹�H�À�q:²—¥�²š¦�}+Á�.™�v+À�.:¹�-�¹�-�¹�>�:²¹�H�N-Æ�<»Y-¶�N·ƒ:*,² ¶yM*,²£¶yM*,²¦¶yM*,²©¶yM²¬¹�H�N*,-·¯M,²¬¹�H�N*,-·¯M,°����#���ª�*��Ç�Ê�Ë�Ì�Ï�)Ð�-Ñ�2Ò�=Ñ�AÕ�KÖ�O×�TØ�_×�cÚ�mÛ�qÜ�}ß�‡à�‹á�â�›á�Ÿç�¨æ�­è�½é�Äë�Êì�Öí�Ûì�Ýî�èï�ìñ�ùòóôõ%÷0ø7üAýH��$���R���J�%�&����J³�ƒ��C´�ƒ��9�‰�G��­��–�}��Ê�m����Ý�Zµ�ƒ��ù�,¶·��±²�����´�����D,Æ�A»¸Y,¶�N·ºN-¶»•ž�,*+²¾-¶yL*+²ÁĶyL*+²Æ»ÉYË·ͶyL+°����#���.�������#�(�+�/�4�>�B�$���*����D�%�&�����D´�ƒ����D�‰�G���2¶Î��^{�����P�����*+,-·Ï°����#������,�$���*�����%�&�����Ð�ƒ����b�G����d�G��ÑÒ�����E�����*+,·Ó°����#������;�$��� �����%�&�����Ð�ƒ����`�ƒ��Õ²�����E�����*+,·Ö°����#������J�$��� �����%�&�����Ð�ƒ����b�G��ØÒ�����E�����*+,·Ù°����#������Y�$��� �����%�&�����Ð�ƒ����Û�ƒ��ØÜ�����Ý����W�����*+,·Þ°����#������h�$��� �����%�&�����Ð�ƒ����àá��Š�������àâ��ãä�����:�����*+·å°����#������t�$��������%�&�����ç�ƒ��èé�����:�����*+·ê°����#�������$��������%�&�����ç�ƒ��ìí����4�����‚*+·î=+²ò¹�H�N-Æ�"-¶�N:õ¶÷š�û¶÷™�„þý:6+²ÿ¹�H�À:Æ�
                                    ¶€6+²¹�H�À	:Æ�
                                    ¶€6»Y·°����#���>���Œ���’�“�0”�3˜�8š�;›�Iœ�N�Xž�fŸ�k �u¡�$���\�	���‚�%�&�����‚ç�ƒ���|����r�G���$�”��8�J�”��;�G�—���I�9��f���������€�����"*+¶M»Y·N,!-¶#:¶'®����#������­�®�¯�°�$���4����"�%�&�����"�‚�ƒ���-.���/0���12���3�����€�����"*+¶M»Y·N,4-¶#:¶6®����#������¼�½�¾�¿�$���4����"�%�&�����"�‚�ƒ���-.���/0���12��ðñ�����û�����a=+²9¹�^�™�B+²9¹�H�À<N-¶>™�&6+¹A�:Æ�*·î6-¶D=§�-¶G=§�+¹A�N-Æ�	*-·î=¬����#���:���Ë�Ì�Î�Ï�#Ñ�'Ò�/Ó�4Ô�<Õ�FÙ�NÞ�Uß�Yà�_â�$���H����a�%�&�����a�‚�ƒ���^�8����2HI��'�J���/�K�ƒ��U�
                                    ! K�ƒ��LM�����r�����+²N¹�H�ÀÉMN,Æ�,¶QN-°����#������ï�
                                    ð�ñ�ò�ó�$���*�����%�&�����ç�ƒ��
                                    �
                                    TU���VW��XM�����r�����+²Y¹�H�ÀÉMN,Æ�,¶QN-°����#��������
                                    ����$���*�����%�&��������
                                    �
                                    TU���VW��\]�����>�����
                                    ! »^Y+*·`°����#�������$�������
                                      �%�&�����
                                    ! ���cd�����>�����
                                    ! »eY+*·g°����#�������$�������
                                      �%�&�����
                                    ! ç�ƒ��h�¡�����M�����£�
                                    ¡�*µ�±����#������$�%�&�$��������%�&�����i���h�ñ�����ø�����t+¶jL=+¶m �;»pY+¶r·v¶w>+z¶|™�
                                    *´�`=§�/+€¶|™�%*´�d=§�+¶m �»pY+¶r·v¶w=£�¡�*µ�§�W±���o�r‚��#���:���1�2�5�7�8�)9�3:�=;�G=�O>�_@�jA�rC�sG�$���*����t�%�&�����t�8�”���m„����(�‡���	…†�����,�����¬����#������R�$�������‡ˆ���‰Š�����6�����®����#������^�$��������%�&�����‹���‰Œ�����6�����®����#������j�$��������%�&������8�”��Ž�����9�����+¸°����#������v�$��������%�&�����’�”���¥�¦�����“����Ò�����>»�Y·� M+¹”�N§�$-¹˜�:+¹�H�:,¶�N¶�N¶�ÞW-¹�šÿÙ,°����#���"���¥�¦�§�©�ª�$«�3§�<­�$���>����>�%�&�����>�‚�ƒ���6 ����/¡á���b�G��$�d�G��Š������6 ¢���/¡â��£���¤¥���B�¦�¨�uR©��Yª©��qª¬�	^�­�	�½�®��ò�¯��e�°�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/TableView$CellView.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/TableView$CellView.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/TableView$CellView.class	Fri Jul 27 21:14:19 2007
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/TableView$CellView.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 8,11 ****
                                      �B�D�C�java/lang/Integer�E�F�parseInt�(Ljava/lang/String;)I	��H��	�0�J�K�4�ROWSPAN�M�java/lang/NumberFormatException�atts�Ljavax/swing/text/AttributeSet;�o�Ljava/lang/Object;�
                                      SourceFile�TableView.java�InnerClasses�V�javax/swing/text/html/HTML�	Attribute�Y�javax/swing/text/html/TableView�CellView� �������������������	������
                                      ������D�����*+µ�
                                    *,·�±�������
                                    ! ����ï��î��������������������������U�����*,·�M,µ�,°�����������ô��õ�
                                    �ö���� ������������"������#�$���%�&�����Þ�����X*·�'*µ�)*¶�+L+²�/¹�5�M,Æ�*,¶�;¸�Aµ�)§�	W*µ�)*µ�G+²�I¹�5�M,Æ�*,¶�;¸�Aµ�G§�	W*µ�G±���'�*�L�C�N�Q�L�����>����þ��ÿ�	�����*�+�0�5�?�C�Q�R�W���� ����X������J�N�O���@�P�Q���R����S�T�����0�U�W���X�Z��
                                    \ No newline at end of file
                                    --- 8,12 ----
                                      �B�D�C�java/lang/Integer�E�F�parseInt�(Ljava/lang/String;)I	��H��	�0�J�K�4�ROWSPAN�M�java/lang/NumberFormatException�atts�Ljavax/swing/text/AttributeSet;�o�Ljava/lang/Object;�
                                      SourceFile�TableView.java�InnerClasses�V�javax/swing/text/html/HTML�	Attribute�Y�javax/swing/text/html/TableView�CellView� �������������������	������
                                      ������D�����*+µ�
                                    *,·�±�������
                                    ! ����î��í��������������������������U�����*,·�M,µ�,°�����������ó��ô�
                                    �õ���� ������������"������#�$���%�&�����Þ�����X*·�'*µ�)*¶�+L+²�/¹�5�M,Æ�*,¶�;¸�Aµ�)§�	W*µ�)*µ�G+²�I¹�5�M,Æ�*,¶�;¸�Aµ�G§�	W*µ�G±���'�*�L�C�N�Q�L�����>����ý��þ�	�ÿ�����*�+
                                    ! �0
                                    �5�?�C�Q�R�W���� ����X������J�N�O���@�P�Q���R����S�T�����0�U�W���X�Z��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/TableView$RowView.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/TableView$RowView.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/TableView$RowView.class	Fri Jul 27 21:14:19 2007
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/TableView$RowView.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�TableView.java�InnerClass
                                    *** 18,27 ****
                                      ���������
                                    ���D�����*+µ�*,·�±�������
                                      ����[��Z�����������������������
                                    ���`�����*´�µ�*-·�!±�����������_��`��a����*������������#������$������%�&���'�(��
                                    ���g����� �*·�)E§�,E$®�����������i��j��l��m����*������������-�����.�/����.�/���0�(��
                                    ���o�����š�*´�´�1´�5†E§�	*·�:E$®�����������s��t��v��w����*������������-�����.�/����.�/���+�(��
                                    ���o�����š�*´�´�1´�<†E§�	*·�)E$®�����������}��~��€������*������������-�����.�/����.�/���?�@��
                                    ���º�����V,Ç�»�6Y·�AM*´�´�D¾`*´�´�Hh>,*´�´�1´�5`µ�5,*´�´�1´�<`µ�<,*´�´�1´�K`µ�K,µ�N,°�������"����‹��Œ����Ž�/��?��O�‘�T�’����*����V�������V�-�����V�Q�4���7�R����S�T��
                                    ��-��
                                      ���y*-·�U*¶�W66§�_*¶�[:Á�_™�LÀ�_:´�a¤�<6	§�,\.*´�*´�d	`¸�f`O\.*´�´�H`O„		´�a¡ÿЄ¡ÿ ±�������6�
                                    ���›�	�ž��Ÿ��¡��¢�%�¤�,�¥�5�§�;�©�R�ª�a�§�n�Ÿ�x�¯����f�
                                    ! ���y�������y�j�����y�-�����y�k�l����y�m�l���j�n����f�o����Q�p�q��,�B�r�s��8�6�Q��	��t�T��
                                    ��ˆ�����®*´�¶�u-¾W6*¶�W66§�‹*´�x3š�~¢�w*¶�[:Á�_™�aÀ�_:	-*´�´�z.OO6
                                      §�6\.*´�´�}.`O
                                      	´�€d¢�\.*´�´�H`O„
                                      „
                                    ! 	´�€¡ÿÆ„§�„*´�´�ƒ¡ÿo±�������R����·��¸�
                                    ! �¹�
                                    �º��»��½�*�¿�2�À�:�Â�A�Ã�O�Ä�U�Å�[�Ç�m�È�y�É�ˆ�Å�˜�Ì�ž�Ð�¡�»�­�Ó����p����®�������®�j�����®�-�����®�k�l����®�m�l��
                                    �¡�†����›�‡����—�o���2�l�p�q��A�W�ˆ�s�	�X�@�‰��
                                      ��Š����‹�Œ�����_�������Ž��
                                    \ No newline at end of file
                                    --- 18,28 ----
                                      ���������
                                    ���D�����*+µ�*,·�±�������
                                      ����[��Z�����������������������
                                    ���`�����*´�µ�*-·�!±�����������_��`��a����*������������#������$������%�&���'�(��
                                    ���g����� �*·�)E§�,E$®�����������i��j��l��m����*������������-�����.�/����.�/���0�(��
                                    ���o�����š�*´�´�1´�5†E§�	*·�:E$®�����������s��t��v��w����*������������-�����.�/����.�/���+�(��
                                    ���o�����š�*´�´�1´�<†E§�	*·�)E$®�����������}��~��€������*������������-�����.�/����.�/���?�@��
                                    ���º�����V,Ç�»�6Y·�AM*´�´�D¾`*´�´�Hh>,*´�´�1´�5`µ�5,*´�´�1´�<`µ�<,*´�´�1´�K`µ�K,µ�N,°�������"����‹��Œ����Ž�/��?��O�‘�T�’����*����V�������V�-�����V�Q�4���7�R����S�T��
                                    ��-��
                                      ���y*-·�U*¶�W66§�_*¶�[:Á�_™�LÀ�_:´�a¤�<6	§�,\.*´�*´�d	`¸�f`O\.*´�´�H`O„		´�a¡ÿЄ¡ÿ ±�������6�
                                    ���›�	�ž��Ÿ��¡��¢�%�¤�,�¥�5�§�;�©�R�ª�a�§�n�Ÿ�x�¯����f�
                                    ! ���y�������y�j�����y�-�����y�k�l����y�m�l���j�n����f�o����Q�p�q��,�B�r�s��8�6�Q��	��t�T��
                                    �������«*´�¶�u6*¶�W66§�‹*´�x3š�~¢�w*¶�[:Á�_™�aÀ�_:	-*´�´�z.OO6
                                      §�6\.*´�´�}.`O
                                      	´�€d¢�\.*´�´�H`O„
                                      „
                                    ! 	´�€¡ÿÆ„§�„*´�´�ƒ¡ÿo±�������N����·��¸�
                                    ! �¹��º��¼�'�¾�/�¿�7�Á�>�Â�L�Ã�R�Ä�X�Æ�j�Ç�v�È�…�Ä�•�Ë�›�Ï�ž�º�ª�Ò����p����«�������«�j�����«�-�����«�k�l����«�m�l��
                                    ! �¡�†����›�‡����—�o���/�l�p�q��>�W�ˆ�s�	�U�@�‰��
                                      ��Š����‹�Œ�����_�������Ž��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/TableView.class gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/TableView.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/text/html/TableView.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/text/html/TableView.class	Tue Oct 12 15:55:12 2010
                                    *************** paintChild�+(Ljava/awt/Graphics;Ljava/a
                                    *** 71,86 ****
                                      �ÒÓ
                                    �getSpan�
                                      SourceFile�TableView.java�InnerClasses�javax/swing/text/html/CSS�	Attribute�javax/swing/text/html/HTML�Tag�
                                      BoxPainter�CellView�RowView� �������������	�
                                    ! �����������
                                    ����������������������������������������������������f�����"*+·�*µ�!*»�#Y·�%µ�(*»�*Y·�,µ�-±����/������h�S�i�j�!k�0�������"�1�2�����"�3�4���5�6����c��	���¥M+¹�7�N-²�=¹�C�:+¹�I�¹�7�:²�=¹�C�:²�M¦�²�S¦�»�VY*+·�XM§�\²�[¥�²�^¦�²�M¦�»�aY*+·�cM§�7²�d¦�»�gY+·�iM§�#*¶�k:Æ�¶�o:Æ�+¹�u�M,°����/���J���s�t�	u�v�!w�-y�=z�J{�Z|�b}�o~�w�ƒ„�‰…�Ž‡�•ˆ�š‰�£Œ�0���\�	���¥�1�2�����¥�w�4���£�x�y��	�œ�z����‘�{�B��!�„�|���-�x�}�B��‰��~�y��•���€���s�t�����,�����*°����/������•�0��������1�2����;�<�����J�����*´�Ç�**¶�ƒ*¶�‡µ�*´�°����/������ž�Ÿ� �0��������1�2����…�†�����E�����
                                    *¶�À�‘L+¶�“°����/���
                                    ! ���ª�«�0�������
                                    �1�2�����”�•���–�—����v�����®*¶�˜*·�›*,·�žM*´� Æ�*´� ¶�¢‹>,´�¨¢�,µ�¨*´�«¾`*´�­h>,Y´�¨`µ�¨,Y´�¯`µ�¯*¶�²:²�³¹�C�:,µ�¹Æ�>¶�½:ö�Å™�,µ�¹§�%˶�Å™�,͵�¹§�ζ�Å™�,µ�¹,,´�¯µ�Ð,°����/���^���µ�¶�º�½�¿�À�'Á�,Å�9Æ�CÇ�MÊ�SË�_Ì�dÍ�iÏ�pÐ�zÑ�‚Ò�ŒÓ�•Ô�ŸÕ�¤Ù�¬Ú�0���R����®�1�2�����®�Ó�����®�Ô����
                                    �Õ���9�u�Ö���S�[�z���_�O�×�B��p�4�Ø�Ù���Ú�Û�����Ö�����B*¶�˜*¶�Ü66§�*¶�à:Á�V™�À�V¶�ä„¡ÿà*·�è*-·�ë±����/���*�
                                    ! ��ä�è�
                                    ! é�ë�ì� í�)é�3ð�8ñ�Aò�0���R����B�1�2�����B�í�����B�Ó�����B�î�����B�ï���
                                      �8��
                                    �&�ñ�����ò�y����'����Å����+*¶�Ü<*´�(µ�¨*´�(µ�¯*´�(µ�Ð=§™*¶�àN-Á�V™�-À�V¶�ó6§�6»�#Y·�%:»�#Y·�%:866	§¹-	¶�ô:
                                      
                                      Á�a™¦
                                      À�a:´�õ6¤ˆ¶�ø‹6
                                    ¶�ü‹6¶�ÿ‹666	76§�.*´�«2:´�¨`6´�¯`6´�Ð…a7„¡ÿÑ
                                    d6d6…eˆ66§�þ*´�«2:ž�Y´�¨l`µ�¨ž�Y´�¯l`µ�¯ž�Y´�Ðl`µ�Ð*´2Æ�*´2¶š�3Y´�¨´�¨`µ�¨Y´�¯´�¯`µ�¯Y´�д�Ð`µ�Ч�o´�¨´�¨†*´2¶�¢j‹¸µ�¨´�¯´�¯†*´2¶�¢j‹¸µ�¯´�д�І*´2¶�¢j‹¸µ�Ð*´2¶�¢b8„¡ÿ`6§
                                    *´�«2:
                                    
                                    
                                    ´�¨¶�ø‹¸µ�¨
                                    
                                    ´�¯¶�ü‹¸µ�¯
                                    
                                    ´�ж�ÿ‹¸µ�Ð*´2Æ�*´2¶š�BY´�¨*´�«2´�¨`µ�¨Y´�¯*´�«2´�¯`µ�¯Y´�Ð*´�«2´�Ð`µ�Ч�o´�¨
                                    ´�¨†*´	2¶�¢n‹¸µ�¨´�¯
                                    ´�¯†*´	2¶�¢n‹¸µ�¯´�Ð
                                    ´�І*´	2¶�¢n‹¸µ�Ð*´	2¶�¢b8„„		¡ýFY´�¨†fnj‹µ�¨Y´�¯†fnj‹µ�¯Y´�Іfnj‹µ�д�¨´�¨¸6	´�¯´�¯¸6
                                      ´�д�и6*´�(*´�(´�¨	¸µ�¨*´�(*´�(´�¯
                                    ! ¸µ�¯*´�(*´�(´�иµ�Є¡üh*´�«¾=>§�`*´2Æ�T*´�«2*´2*´�(´�¨†¶‹µ�¨*´�«2*´2*´�(´�¯†¶‹µ�¯*´�«2*´2*´�(´�І¶‹µ�Є¡ÿ¡±����/��6���ù�ú�
                                    û�ü���"�(�/�;�>
                                    �G�P�S�V�\�d�l�s�z�€�‰�’�›�ž�¡�¤ �ª"�³#�½$�Ç%�Ò �Ü'�ã(�ê)�ó+�ù-./01*2/3>4H5U7d8s9…=‡>Œ?’@œ?ž>¡=¤A¦B«C±D»C½BÀAÃEÅFÊGÐHÚGÜFßEâIñ+ûLQRSR"T)U0T6V=WDVJXTYa[u\{]‰^ b¢c§d­e·d¹c¼b¿fÁgÆhÌiÖhØgÛfÞjàkålëmõl÷kújýnp}+~=O^‚mƒ|„€…Œ„†“‡Ÿ†¢ˆ¦‰²ˆµ�½ŽÃȑѓהé“ì•ò–•—
                                    ˜—"*›�0��L�!��+�1�2���&���ž�Ô���(�y��8����>w���Gn���Pe���Sb�¼��V_���YÀ��	�d«�y�
                                      �sœ��z•�÷���‰|��
                                    �’s���›j���žg���¡d ���¤a!"��§�5�ñ���³�#���ã"$���ê%���ó&���ö�ñ���ï#��#��
                                    ^�W'��	m�H(��
                                      |�9)��Ã�h��Å�e�ñ����ê�ç����ð����t	A*´�«¾66§�G*´�«2:*´2Æ�*´**´2†¶‹O§�*´*´�¯O *´*.…aA„¡ÿ¸`*´�­hd… e78À,:	”™�¡	7	¼
                                      :6§�g*´2Ç�M*´�«2:	”œ�´�¨6
                                    *´*.
                                    dO§�´�Ð6
                                    
                                    *´*.dO	
                                    …a7	§�	*´*.…a7	„¡ÿ˜	 e¸-‰8‰n8¸185¸68*´�­6	6
                                    --- 71,86 ----
                                      �ÒÓ
                                    �getSpan�
                                      SourceFile�TableView.java�InnerClasses�javax/swing/text/html/CSS�	Attribute�javax/swing/text/html/HTML�Tag�
                                      BoxPainter�CellView�RowView� �������������	�
                                    ! �����������
                                    ����������������������������������������������������f�����"*+·�*µ�!*»�#Y·�%µ�(*»�*Y·�,µ�-±����/������g�R�h�i�!j�0�������"�1�2�����"�3�4���5�6����c��	���¥M+¹�7�N-²�=¹�C�:+¹�I�¹�7�:²�=¹�C�:²�M¦�²�S¦�»�VY*+·�XM§�\²�[¥�²�^¦�²�M¦�»�aY*+·�cM§�7²�d¦�»�gY+·�iM§�#*¶�k:Æ�¶�o:Æ�+¹�u�M,°����/���J���r�s�	t�u�!v�-x�=y�Jz�Z{�b|�o}�w~�ƒƒ�‰„�Ž†�•‡�šˆ�£‹�0���\�	���¥�1�2�����¥�w�4���£�x�y��	�œ�z����‘�{�B��!�„�|���-�x�}�B��‰��~�y��•���€���s�t�����,�����*°����/������”�0��������1�2����;�<�����J�����*´�Ç�**¶�ƒ*¶�‡µ�*´�°����/�������ž�Ÿ�0��������1�2����…�†�����E�����
                                    *¶�À�‘L+¶�“°����/���
                                    ! ���©�ª�0�������
                                    �1�2�����”�•���–�—����v�����®*¶�˜*·�›*,·�žM*´� Æ�*´� ¶�¢‹>,´�¨¢�,µ�¨*´�«¾`*´�­h>,Y´�¨`µ�¨,Y´�¯`µ�¯*¶�²:²�³¹�C�:,µ�¹Æ�>¶�½:ö�Å™�,µ�¹§�%˶�Å™�,͵�¹§�ζ�Å™�,µ�¹,,´�¯µ�Ð,°����/���^���´�µ�¹�¼�¾�¿�'À�,Ä�9Å�CÆ�MÉ�SÊ�_Ë�dÌ�iÎ�pÏ�zÐ�‚Ñ�ŒÒ�•Ó�ŸÔ�¤Ø�¬Ù�0���R����®�1�2�����®�Ó�����®�Ô����
                                    �Õ���9�u�Ö���S�[�z���_�O�×�B��p�4�Ø�Ù���Ú�Û�����Ö�����B*¶�˜*¶�Ü66§�*¶�à:Á�V™�À�V¶�ä„¡ÿà*·�è*-·�ë±����/���*�
                                    ! ��ã�ç�
                                    ! è�ê�ë� ì�)è�3ï�8ð�Añ�0���R����B�1�2�����B�í�����B�Ó�����B�î�����B�ï���
                                      �8��
                                    �&�ñ�����ò�y����'����Å����+*¶�Ü<*´�(µ�¨*´�(µ�¯*´�(µ�Ð=§™*¶�àN-Á�V™�-À�V¶�ó6§�6»�#Y·�%:»�#Y·�%:866	§¹-	¶�ô:
                                      
                                      Á�a™¦
                                      À�a:´�õ6¤ˆ¶�ø‹6
                                    ¶�ü‹6¶�ÿ‹666	76§�.*´�«2:´�¨`6´�¯`6´�Ð…a7„¡ÿÑ
                                    d6d6…eˆ66§�þ*´�«2:ž�Y´�¨l`µ�¨ž�Y´�¯l`µ�¯ž�Y´�Ðl`µ�Ð*´2Æ�*´2¶š�3Y´�¨´�¨`µ�¨Y´�¯´�¯`µ�¯Y´�д�Ð`µ�Ч�o´�¨´�¨†*´2¶�¢j‹¸µ�¨´�¯´�¯†*´2¶�¢j‹¸µ�¯´�д�І*´2¶�¢j‹¸µ�Ð*´2¶�¢b8„¡ÿ`6§
                                    *´�«2:
                                    
                                    
                                    ´�¨¶�ø‹¸µ�¨
                                    
                                    ´�¯¶�ü‹¸µ�¯
                                    
                                    ´�ж�ÿ‹¸µ�Ð*´2Æ�*´2¶š�BY´�¨*´�«2´�¨`µ�¨Y´�¯*´�«2´�¯`µ�¯Y´�Ð*´�«2´�Ð`µ�Ч�o´�¨
                                    ´�¨†*´	2¶�¢n‹¸µ�¨´�¯
                                    ´�¯†*´	2¶�¢n‹¸µ�¯´�Ð
                                    ´�І*´	2¶�¢n‹¸µ�Ð*´	2¶�¢b8„„		¡ýFY´�¨†fnj‹µ�¨Y´�¯†fnj‹µ�¯Y´�Іfnj‹µ�д�¨´�¨¸6	´�¯´�¯¸6
                                      ´�д�и6*´�(*´�(´�¨	¸µ�¨*´�(*´�(´�¯
                                    ! ¸µ�¯*´�(*´�(´�иµ�Є¡üh*´�«¾=>§�`*´2Æ�T*´�«2*´2*´�(´�¨†¶‹µ�¨*´�«2*´2*´�(´�¯†¶‹µ�¯*´�«2*´2*´�(´�І¶‹µ�Є¡ÿ¡±����/��6���ø�ù�
                                    ú�û�ÿ�"�(�/�;�>�G
                                    �P�S�V�\�d�l�s�z�€�‰�’�›�ž�¡�¤�ª!�³"�½#�Ç$�Ò�Ü&�ã'�ê(�ó*�ù,-./0*1/2>3H4U6d7s8…<‡=Œ>’?œ>ž=¡<¤@¦A«B±C»B½AÀ@ÃDÅEÊFÐGÚFÜEßDâHñ*ûKPQRQ"S)T0S6U=VDUJWTXaZu[{\‰] a¢b§c­d·c¹b¼a¿eÁfÆgÌhÖgØfÛeÞiàjåkëlõk÷júiýmo|+}=~O€^m‚|ƒ€„Œƒ…“†Ÿ…¢‡¦ˆ²‡µÿ½ÃŽÈђדé’ì”ò•”–
                                    —–"Ž*š�0��L�!��+�1�2���&���ž�Ô���(�y��8����>w���Gn���Pe���Sb�¼��V_���YÀ��	�d«�y�
                                      �sœ��z•�÷���‰|��
                                    �’s���›j���žg���¡d ���¤a!"��§�5�ñ���³�#���ã"$���ê%���ó&���ö�ñ���ï#��#��
                                    ^�W'��	m�H(��
                                      |�9)��Ã�h��Å�e�ñ����ê�ç����ð����t	A*´�«¾66§�G*´�«2:*´2Æ�*´**´2†¶‹O§�*´*´�¯O *´*.…aA„¡ÿ¸`*´�­hd… e78À,:	”™�¡	7	¼
                                      :6§�g*´2Ç�M*´�«2:	”œ�´�¨6
                                    *´*.
                                    dO§�´�Ð6
                                    
                                    *´*.dO	
                                    …a7	§�	*´*.…a7	„¡ÿ˜	 e¸-‰8‰n8¸185¸68*´�­6	6
                                    *************** BoxPainter�CellView�RowView� ����
                                    *** 90,96 ****
                                      \.¸:`O	…*´*
                                      .…a*´�­…a>¸@ˆ6	„
                                      
                                    ! ¡ÿ´±����/���®�+��¦�§�	¨�ª�«�"¬�9®�E¯�P¨�Zµ�j¶�m·�s¸�zº�}»�ƒ¼�‰¿�“Á�œÃ�£Å�ªÆ�¼Ê�ÃË�ÒÍ�ÝÐ�ê¼�ôÓ�þÔÕÖÚÛ$Ý-Þ4à?áNäZå_ä`åcäiÛsç�0���¶���t�1�2����t�í���rC"��	k�ð����N�ñ����8D���j
                                      E"��mF�¼��sG���}�›"�	�†�n�ñ���œ�AD���ª�H��
                                    ��H��
                                    �þ�I�¼��VJ��	!�R�ñ��
                                      ?��Ö�¼����š�'����ñ����Ù*´�!šÔ*¶�²L*¶�ƒM,+¶KF,+¶O86*¶�Ü66§�Z*¶�à:6	Á�V™�;À�V¶�ó6
                                      6§�$¶�ô:Á�a™�	À�a´�õ`6	„
                                    --- 90,96 ----
                                      \.¸:`O	…*´*
                                      .…a*´�­…a>¸@ˆ6	„
                                      
                                    ! ¡ÿ´±����/���®�+��¥�¦�	§�©�ª�"«�9­�E®�P§�Z´�jµ�m¶�s·�z¹�}º�ƒ»�‰¾�“À�œÂ�£Ä�ªÅ�¼É�ÃÊ�ÒÌ�ÝÏ�ê»�ôÒ�þÓÔÕÙÚ$Ü-Ý4ß?àNãZä_ã`äcãiÚsæ�0���¶���t�1�2����t�í���rC"��	k�ð����N�ñ����8D���j
                                      E"��mF�¼��sG���}�›"�	�†�n�ñ���œ�AD���ª�H��
                                    ��H��
                                    �þ�I�¼��VJ��	!�R�ñ��
                                      ?��Ö�¼����š�'����ñ����Ù*´�!šÔ*¶�²L*¶�ƒM,+¶KF,+¶O86*¶�Ü66§�Z*¶�à:6	Á�V™�;À�V¶�ó6
                                      6§�$¶�ô:Á�a™�	À�a´�õ`6	„
                                    *************** BoxPainter�CellView�RowView� ����
                                    *** 103,116 ****
                                      ´W
                                    T„
                                    §�‘¢�‡
                                      ¶[:„Á�a™�vÀ�a:¶\²]¹�C�:Æ�.*´
                                    2Ç�$Á�£™�*´
                                    À�£S*´
                                    2%¶`´dd6´�õd6§�
                                    O„
                                    „ÿœÿñ§�„
                                    
                                    ¡ÿN„¡ÿ
                                    *½�#µ�«6§�*´�«»�#Y·�%S„¡ÿë*¼
                                      µ8*¼
                                    ! µ**µ�!±����/���ú�>��ñ�ó�ô�õ�ö�÷�!ø�'ù�-û�5ü�8ý�@ÿ�J��P�Y�a�n��x�ù�‹	�‘
                                    ! �š� �¦�®�¶�½�Ä�Í�Ð�×�Ý�å�î�÷�ý 
                                    !"$&,%.'=(E*Q+^-g.s0z1}.ˆ7‹’œ<¥=«>¹=Ã?Ë@ÓBØD�0�����Ù�1�2���Ì�z���Çgh��Ái�¼��ºj�¼��!·k���'±���*�a�Ô���5�L�y��8�I��	�J�.l��
                                      �M�+�ñ���Y��y�� 8m���£�ù�Ô���®�ä�x�y�	�½�Õn�
                                    ! �Ð�Âo���×�»p���Ú�¸��
                                    
                                    �{�y��fq�.�W�×�B�g�r��p�D��¨��ñ����û�����i�����š�*·sE§�	*·tE$®����/������L�M�
                                    O�P�0���*�����1�2���������
                                    ! �H�¼���H�¼��uv�����N�����*+·w+Æ�*¶y±����/������X�Y�	Z�
                                    [�0��������1�2������~�y��{�'���������x*·|*¶�²L*¶�ƒM,+¶KF,+¶O8+²}¹�C�:Æ�$Á�£™�À�£:%¶`*¶�¢‹µ�­+²]¹�C�:Æ�Á�£™�*À�£µ� *´� %¶`±����/���>���b�e�	f�g�h�i�&j�3l�:m�Bn�Lp�Wq�ds�mt�wv�0���H����x�1�2���	�o�z����jgh���di�¼���]j�¼��&�R�×�B��:�€����—����������3*,·‚M*¶�Ü`*´�­h>,Y´�¨`µ�¨,Y´�¯`µ�¯,Y´�Ð`µ�Ð,°����/������~��€��'‚�1ƒ�0���*����3�1�2�����3�Ó�����3�Ô���� �Ö���„�Û���������i*¶�Ü66§�*¶�à:Á�V™�À�V¶�ä„¡ÿà*¶�Ü`*´�­h6*d-·…6§�-\.`*´�­h`O„-¾¡ÿé±����/���2���Ž��‘�’�“�%�/–�<—�H˜�Nš�^˜�hœ�0���f�
                                      ���i�1�2�����i�í�����i�Ó�����i�î�����i�ï����c�ð���	�&�ñ�����ò�y��<�-�Ö���K��ñ���‡ˆ�����T�����*+,*·‰±����/���
                                    ! ���£�¤�0���*�����1�2�����‹Œ����Ž�����€��ˆ�����T�����*+,*·‘±����/���
                                    ! ���«�¬�0���*�����1�2�����‹Œ����Ž�����€��“ˆ�����T�����*+,*·”±����/���
                                    ! ���³�´�0���*�����1�2�����‹Œ����Ž�����€��–—�����]�����
                                    *µ�!*-·˜±����/������¸�¹�º�0���*����
                                    �1�2�����
                                    š�����
                                    ›�����
                                    œ��žŸ�����ø�����n,Á�*™�
                                      ,À�*§�	,¹ �N*´¦+-´ª†-´­†-´°†-´²†*¶µ*¶�Ü6*,¶º:6§�$*´�-¶¾**´�-¶Â*+*´�-¶Æ„¡ÿÛ±����/���*�
                                    ! ��Ã�Ä�2Å�8Æ�?Ç�EÉ�NÊ�XË�cÇ�mÍ�0���H����n�1�2�����nÊË����nŽ���YÌ���8�6Í���?�/Î���B�+�Ô��ÏÐ�����'�����*¶Ѭ����/��������0������Ô���ÕÖ���*��´×Ù��NÚÜ�	¶�ˆÝ�	�a�Þ���V�ß��
                                    \ No newline at end of file
                                    --- 103,116 ----
                                      ´W
                                    T„
                                    §�‘¢�‡
                                      ¶[:„Á�a™�vÀ�a:¶\²]¹�C�:Æ�.*´
                                    2Ç�$Á�£™�*´
                                    À�£S*´
                                    2%¶`´dd6´�õd6§�
                                    O„
                                    „ÿœÿñ§�„
                                    
                                    ¡ÿN„¡ÿ
                                    *½�#µ�«6§�*´�«»�#Y·�%S„¡ÿë*¼
                                      µ8*¼
                                    ! µ**µ�!±����/���ú�>��ð�ò�ó�ô�õ�ö�!÷�'ø�-ú�5û�8ü�@þ�Jÿ�P�Y�a�nÿ�x�ø�‹�‘	�š
                                    ! � �¦
                                    �®�¶�½�Ä�Í�Ð�×�Ý�å�î�÷�ý
                                     !#%,$.&='E)Q*^,g-s/z0}-ˆ6‹’œ;¥<«=¹<Ã>Ë?ÓAØC�0�����Ù�1�2���Ì�z���Çgh��Ái�¼��ºj�¼��!·k���'±���*�a�Ô���5�L�y��8�I��	�J�.l��
                                      �M�+�ñ���Y��y�� 8m���£�ù�Ô���®�ä�x�y�	�½�Õn�
                                    ! �Ð�Âo���×�»p���Ú�¸��
                                    
                                    �{�y��fq�.�W�×�B�g�r��p�D��¨��ñ����û�����i�����š�*·sE§�	*·tE$®����/������K�L�
                                    N�O�0���*�����1�2���������
                                    ! �H�¼���H�¼��uv�����N�����*+·w+Æ�*¶y±����/������W�X�	Y�
                                    Z�0��������1�2������~�y��{�'���������x*·|*¶�²L*¶�ƒM,+¶KF,+¶O8+²}¹�C�:Æ�$Á�£™�À�£:%¶`*¶�¢‹µ�­+²]¹�C�:Æ�Á�£™�*À�£µ� *´� %¶`±����/���>���a�d�	e�f�g�h�&i�3k�:l�Bm�Lo�Wp�dr�ms�wu�0���H����x�1�2���	�o�z����jgh���di�¼���]j�¼��&�R�×�B��:�€����—����������3*,·‚M*¶�Ü`*´�­h>,Y´�¨`µ�¨,Y´�¯`µ�¯,Y´�Ð`µ�Ð,°����/������}�~��€�'�1‚�0���*����3�1�2�����3�Ó�����3�Ô���� �Ö���„�Û���������i*¶�Ü66§�*¶�à:Á�V™�À�V¶�ä„¡ÿà*¶�Ü`*´�­h6*d-·…6§�-\.`*´�­h`O„-¾¡ÿé±����/���2����Ž��‘�’�%Ž�/•�<–�H—�N™�^—�h›�0���f�
                                      ���i�1�2�����i�í�����i�Ó�����i�î�����i�ï����c�ð���	�&�ñ�����ò�y��<�-�Ö���K��ñ���‡ˆ�����T�����*+,*·‰±����/���
                                    ! ���¢�£�0���*�����1�2�����‹Œ����Ž�����€��ˆ�����T�����*+,*·‘±����/���
                                    ! ���ª�«�0���*�����1�2�����‹Œ����Ž�����€��“ˆ�����T�����*+,*·”±����/���
                                    ! ���²�³�0���*�����1�2�����‹Œ����Ž�����€��–—�����]�����
                                    *µ�!*-·˜±����/������·�¸�¹�0���*����
                                    �1�2�����
                                    š�����
                                    ›�����
                                    œ��žŸ�����ø�����n,Á�*™�
                                      ,À�*§�	,¹ �N*´¦+-´ª†-´­†-´°†-´²†*¶µ*¶�Ü6*,¶º:6§�$*´�-¶¾**´�-¶Â*+*´�-¶Æ„¡ÿÛ±����/���*�
                                    ! ��Â�Ã�2Ä�8Å�?Æ�EÈ�NÉ�XÊ�cÆ�mÌ�0���H����n�1�2�����nÊË����nŽ���YÌ���8�6Í���?�/Î���B�+�Ô��ÏÐ�����'�����*¶Ѭ����/��������0������Ô���ÕÖ���*��´×Ù��NÚÜ�	¶�ˆÝ�	�a�Þ���V�ß��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 7,12 ****
                                      ��/�0�1�removeFirst�()Ljava/lang/Object;�3�javax/swing/tree/TreeNode�2�5�6�7�children�()Ljava/util/Enumeration;��9�%�1��;� �!�Ljava/util/Enumeration;�LocalVariableTypeTable�4Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;
                                      ��@�%�&�
                                      SourceFile�DefaultMutableTreeNode.java�FLjava/lang/Object;Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;�InnerClasses�F�'javax/swing/tree/DefaultMutableTreeNode�BreadthFirstEnumeration� �����������	����
                                    ! �������
                                    ���Y�����*·�*»�Y·�µ�*´�+¶�W±����������$�"�&�'�������������������� �!��
                                    ���:�����*´�¶�"™�§�¬����������+��������������%�&��
                                    ���µ�����E*´�¶�"™�
                                    »�'Y)·�+¿*´�¶�.À�2L+¹�4�M§�*´�,¹�8�À�2¶�W,¹�:�šÿé+°�������&�	��1�
                                    ! 2�4�7�%6�&8�)9�:8�C;���� ����E������&����&��6�<��=�����&��6�>�A�%�1��
                                    ���%�����*¶�?°�������������������A����B�	����C�D���
                                      ���E�G�
                                    \ No newline at end of file
                                    --- 7,12 ----
                                      ��/�0�1�removeFirst�()Ljava/lang/Object;�3�javax/swing/tree/TreeNode�2�5�6�7�children�()Ljava/util/Enumeration;��9�%�1��;� �!�Ljava/util/Enumeration;�LocalVariableTypeTable�4Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;
                                      ��@�%�&�
                                      SourceFile�DefaultMutableTreeNode.java�FLjava/lang/Object;Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;�InnerClasses�F�'javax/swing/tree/DefaultMutableTreeNode�BreadthFirstEnumeration� �����������	����
                                    ! �������
                                    ���Y�����*·�*»�Y·�µ�*´�+¶�W±����������*�(�,�-�������������������� �!��
                                    ���:�����*´�¶�"™�§�¬����������1��������������%�&��
                                    ���µ�����E*´�¶�"™�
                                    »�'Y)·�+¿*´�¶�.À�2L+¹�4�M§�*´�,¹�8�À�2¶�W,¹�:�šÿé+°�������&�	��7�
                                    ! 8�:�=�%<�&>�)?�:>�CA���� ����E������&����&��6�<��=�����&��6�>�A�%�1��
                                    ���%�����*¶�?°�������������������A����B�	����C�D���
                                      ���E�G�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 9,15 ****
                                      ��I�J�;�pop�newChildren�next
                                      ��N�/�0�
                                      SourceFile�DefaultMutableTreeNode.java�FLjava/lang/Object;Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;�InnerClasses�T�'javax/swing/tree/DefaultMutableTreeNode�PostorderEnumeration� �����������	����
                                    ! ������	��������
                                    ������~�����2*·�*»�Y·�µ�*»�Y·�µ�*´�+¶�W*´�+¹��¶�W±����$������‰�„�…�†�‹�#Œ�1�%�������2�&�'�����2�(�)���*�+�����:�����*´�¶�,™�§�¬����$������‘�%��������&�'����/�0�����w�����%*´�¶�,™�
                                    »�1Y3·�5¿*´�¶�8À�L*+·�<°����$������–�
                                    ! —�™�›�%�������%�&�'�����"�@��A�������"�B���>�?��	����C����å�����O+¹�D�™�,+¹�F�À�M*´�,¶�W,¹��N*´�-¶�W*-·�<°*´�¶�HW*´�¶�8À�M*´�¶�HW,°����$���.���¡�	£�¤�§�"¦�#¨�,ª�2®�:²�E³�Mµ�%���4����O�&�'�����O�"�@����(�)��#��K�@��E�
                                      �L�)��A�������O�"�B��#��K�B�A�/�;�����%�����*¶�M°����$��������%�������O����P�	����Q�R���
                                      ���S�U�
                                    \ No newline at end of file
                                    --- 9,15 ----
                                      ��I�J�;�pop�newChildren�next
                                      ��N�/�0�
                                      SourceFile�DefaultMutableTreeNode.java�FLjava/lang/Object;Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;�InnerClasses�T�'javax/swing/tree/DefaultMutableTreeNode�PostorderEnumeration� �����������	����
                                    ! ������	��������
                                    ������~�����2*·�*»�Y·�µ�*»�Y·�µ�*´�+¶�W*´�+¹��¶�W±����$�������Š�‹�Œ�‘�#’�1“�%�������2�&�'�����2�(�)���*�+�����:�����*´�¶�,™�§�¬����$������—�%��������&�'����/�0�����w�����%*´�¶�,™�
                                    »�1Y3·�5¿*´�¶�8À�L*+·�<°����$������œ�
                                    ! �Ÿ�¡�%�������%�&�'�����"�@��A�������"�B���>�?��	����C����å�����O+¹�D�™�,+¹�F�À�M*´�,¶�W,¹��N*´�-¶�W*-·�<°*´�¶�HW*´�¶�8À�M*´�¶�HW,°����$���.���§�	©�ª�­�"¬�#®�,°�2´�:¸�E¹�M»�%���4����O�&�'�����O�"�@����(�)��#��K�@��E�
                                      �L�)��A�������O�"�B��#��K�B�A�/�;�����%�����*¶�M°����$��������%�������O����P�	����Q�R���
                                      ���S�U�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 10,14 ****
                                      ��I�J�*�isEmpty�child
                                      ��M�+�,�
                                      SourceFile�DefaultMutableTreeNode.java�FLjava/lang/Object;Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;�InnerClasses�S�'javax/swing/tree/DefaultMutableTreeNode�PreorderEnumeration� ��������������	�
                                    ! ����������
                                    ������k�����#*·�*»�Y·�µ�*+µ�*´�+¹��¶� W±����$������J�F�G�L�M�"N�%�������#�&�'�����#�(����)�*�����5�����*´�Æ�¬¬����$������R�%��������&�'����+�,����������,*´�Ç�
                                    »�-Y/·�1¿*´�L*´�¶�4À�M**,·�8µ�+°����$������W�X�Z�\�!_�*a�%��� ����,�&�'�����<���!���=��>�����!���?���:�;������@����²�����F+¹�A�™�+¹�C�À�M*´�,¹��¶� W,°*´�¶�EW*´�¶�H™�°**´�¶�4À�·�8°����$���"���h�	j�k�!m�#q�+u�5v�7y�%��� ����F�&�'�����F��=����K���>�������F��?�A�+�7�����%�����*¶�L°����$��������%�������N����O�����P�Q���
                                      ���R�T�
                                    \ No newline at end of file
                                    --- 10,14 ----
                                      ��I�J�*�isEmpty�child
                                      ��M�+�,�
                                      SourceFile�DefaultMutableTreeNode.java�FLjava/lang/Object;Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;�InnerClasses�S�'javax/swing/tree/DefaultMutableTreeNode�PreorderEnumeration� ��������������	�
                                    ! ����������
                                    ������k�����#*·�*»�Y·�µ�*+µ�*´�+¹��¶� W±����$������P�L�M�R�S�"T�%�������#�&�'�����#�(����)�*�����5�����*´�Æ�¬¬����$������X�%��������&�'����+�,����������,*´�Ç�
                                    »�-Y/·�1¿*´�L*´�¶�4À�M**,·�8µ�+°����$������]�^�`�b�!e�*g�%��� ����,�&�'�����<���!���=��>�����!���?���:�;������@����²�����F+¹�A�™�+¹�C�À�M*´�,¹��¶� W,°*´�¶�EW*´�¶�H™�°**´�¶�4À�·�8°����$���"���n�	p�q�!s�#w�+{�5|�7�%��� ����F�&�'�����F��=����K���>�������F��?�A�+�7�����%�����*¶�L°����$��������%�������N����O�����P�Q���
                                      ���R�T�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1B��'javax/swing/tree/DefaultMutableTreeNode��java/lang/Object��java/lang/Cloneable�� javax/swing/tree/MutableTreeNode�
                                      �java/io/Serializable�serialVersionUID�J�
                                    ConstantValueÄX¿üò¨qà�EMPTY_ENUMERATION�Ljava/util/Enumeration;�	Signature�4Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;�parent�"Ljavax/swing/tree/MutableTreeNode;�children�Ljava/util/Vector;�6Ljava/util/Vector<Ljavax/swing/tree/MutableTreeNode;>;�
                                      userObject�Ljava/lang/Object;�allowsChildren�Z�<clinit>�()V�Code�!�gnu/java/util/EmptyEnumeration
                                      � �#�$��<init>	��&���LineNumberTable�LocalVariableTable
                                    --- 1,4 ----
                                    ! Êþº¾���1C��'javax/swing/tree/DefaultMutableTreeNode��java/lang/Object��java/lang/Cloneable�� javax/swing/tree/MutableTreeNode�
                                      �java/io/Serializable�serialVersionUID�J�
                                    ConstantValueÄX¿üò¨qà�EMPTY_ENUMERATION�Ljava/util/Enumeration;�	Signature�4Ljava/util/Enumeration<Ljavax/swing/tree/TreeNode;>;�parent�"Ljavax/swing/tree/MutableTreeNode;�children�Ljava/util/Vector;�6Ljava/util/Vector<Ljavax/swing/tree/MutableTreeNode;>;�
                                      userObject�Ljava/lang/Object;�allowsChildren�Z�<clinit>�()V�Code�!�gnu/java/util/EmptyEnumeration
                                      � �#�$��<init>	��&���LineNumberTable�LocalVariableTable
                                    *************** getChildAt�(I)Ljavax/swing/tree/TreeNo
                                    *** 52,73 ****
                                      �(%�ì
                                      �*&�ì�getPreviousLeaf
                                      �-+�ì�getLeafCount
                                    ! �0�…243�java/util/Enumeration5�:�nextElement�’7$�¢29:�¢�hasMoreElements�e�
                                      SourceFile�DefaultMutableTreeNode.java�InnerClasses�BreadthFirstEnumeration�PostorderEnumeration�PreorderEnumeration�!������	������
                                    ����������������������������„����������9��������3������»� Y·�"³�%±����'�������G��F�
                                      �=�(�������$������5�����*·�)±����'���
                                      ����c��d�(��������,�-����$�.�����?�����*+·�)±����'���
                                    ! ����o��p�(��������,�-����������$�+�����h�����*·�/*»�0Y·�2µ�3*+µ�5*µ�7±����'�������z��Q��|��}��~�(��� �����,�-����������������9�:�����:�����»�Y*´�5*´�7·�)°����'�������ˆ�(��������,�-����;�<�����C�����*´�5Ç�°*´�5¶�=°����'�������”��•�	�—�(��������,�-����?�@�����’�����>*´�7š�»�AY·�C¿+Ç�»�DY·�F¿*+¶�G™�
                                    »�DYK·�M¿*´�3+¶�PW+*¹�S�±����'���&�	���«��¬��®��¯��±�#�²�-�´�6�µ�=�¶�(�������>�,�-�����>�V����W�X�����/�����*´�Y°����'�������¿�(��������,�-����[�\�����Z�����*´�3¶�]À�M,¹�S�±����'�������Í��Î��Ï�(��� �����,�-������`�a����V����[�@�����‡�����3+Ç�
                                    »�DYb·�M¿+¹�d�*¥�
                                    »�DYf·�M¿*´�3+¶�hW+¹�S�±����'���&�	���Ý��Þ��ß��à��á��à�"�â�+�ã�2�ä�(�������3�,�-�����3�j����k�l��m�����n����5������±����'�������ñ�(��������,�-������p�q���r�s��m�����n�t����5������±����'�������ÿ�(��������,�-������p�v���w�x�����“�����9*´�7š�»�AY·�C¿+Ç�
                                    »�DYb·�M¿*+¶�G™�
                                    »�DYy·�M¿*´�3+¶�{±����'���"����
                                    ����%�/�8�(��� ����9�,�-�����9�j�����9�`�a����€�����1�����**¶�°����'�������(��������,�-�����…�����H�����*´�3¶�†š�²�%°*´�3¶�Š°����'������*�
                                    ! +�-�(��������,�-����U�@�����>�����*+µ�Y±����'���
                                    ! ���7�8�(��������,�-������j�����Ž�����@�����*´�3¶�À�’°����'������C�(��������,�-������`�a���”�‰�����2�����*´�3¶�†¬����'������M�(��������,�-����•�–�����S�����+Ç�
                                    »�DYb·�M¿*´�3+¶�—¬����'������\�]�^�(��������,�-������j�›���œ������N�����š�*¶�ž*µ�7±����'������j�k�l�
                                    m�(��������,�-����������¡�¢�����/�����*´�7¬����'������v�(��������,�-����£�.�����>�����*+µ�5±����'���
                                    ! ���€��(��������,�-����������¤�:�����/�����*´�5°����'������‹�(��������,�-����¥������B�����*´�Y*¹�¦�*µ�Y±����'������“�
                                    ! ”�•�(��������,�-���� ������W�����*¶�¨d<§�*¶�ª„ÿœÿ÷±����'������œ�
                                    ! �œ�ž�(��������,�-�����¬�a���I�J�����z�����$+Ç�¬*M§�
                                    ! ,¹�­�M,Æ�,+¦ÿó,+¦�¬¬����'������±�²�´�¶�·�¶�¹�(��� ����$�,�-�����$�j�›����®�›���¯�°�����~�����$+Ç�¬+M§�
                                    ! ,¹�­�M,Æ�,*¦ÿó,*¦�¬¬����'���"���Í�Î�Ð�Ò�Ô�Ò�Ó�Ö�(��� ����$�,�-�����$�j�-����®�›���±�²�����Ä�����:*M»�³Y·�µN§�-,¶�¶W,¹�­�M,Çÿò+M§�-,¶�·™�,°,¹�­�M,Çÿî°����'���6�
                                    ��â�ã�
                                    ! å�
                                    ç�è�å�ë� í�#ï�+ð�-ò�4í�8õ�(���*����:�,�-�����:�j�-���8�®�›��
                                      �0�º�»��¼�����
                                    ! �0�º�½���¾�°�����Q�����+Ç�¬+¶�¿*¶�¿¦�¬¬����'���������(��������,�-������j�-���Â�‰����™�����¹*´�7™�
                                    *´�3¶�†š�¬»�ÃY·�ÅL+»�ÆY·�ȶ�ÊW*¶�ÎM>6§�},¹�Ð�™�,¹�Ñ�M+»�ÆY·�ȶ�ÊW„§�Y¤�>,¹�­�M,¹�Ð�6+¶�ÒÀ�ƶ�Õ`6„ÿ¡�,*¦ÿ×¢�,¹�Ñ�M+»�ÆY·�ȶ�ÊW„+¶�Ø™ÿ‚¬����'���n��������(�.�0�3�6�?�G�T�Z"�`#�c*�j+�r,�€-�ƒ/�Š0�2�–4�Ÿ5�­6�°�·;�(���H����¹�,�-����ž�Û�Ü��.�‹�j�›��0�‰�Ý�a��3�†�®�a��r�>�ˆ�a��€�0�`�a��¼������ž�Û�Þ���ß�‰�����f�����<*M,¹�­�M„,Çÿõ¬����'������E�F�J�K�M�O�(��� �����,�-�����à�a����®�›���ƒ�„�����ˆ�����(+Ç�š�°½�’°*+¹�­�`¶�N--¾dd+S-°����'������\�^�_�
                                    ! a�d�e�&f�(���*����(�,�-�����(�j�›����(�Ý�a����á�â���ã�ä�����…�����)**¶�L+¾½�M>§�,+2À�¶�åS„+¾¡ÿî,°����'������p�q�
                                    s�t�s�'v�(���*����)�,�-����"�á�â��
                                    ��ç�è����`�a���Á�X�����q�����*L+¹�­�M§�,L+¹�­�M,Çÿö+°����'������€��	ƒ�…�†�ƒ�‰�(��� �����,�-�����®�›��	��é�›���ê�¢�����5�����*´�YÇ�¬¬����'������”�(��������,�-����ë�ì�����ƒ�����)*¶�¨™�*¶�ÎÀ�°*L+¶�íM+¶�ðÀ�L,Ç�+Çÿî,°����'���"���Ÿ� �£�¨�©�«�#¬�'¯�(��� ����)�,�-�����j�-����ñ�-���ò�ì�����x�����(*´�YÇ�°*¶�óL+Ç�*´�YÀ�°+¶�¨™�+¶�ö°+°����'���"���º�»�	½�À�Á�Ä�!Å�&È�(�������(�,�-�����ñ�-���ù�…�����3�����	»�úY*·�ü°����'������Ò�(�������	�,�-����ÿ�…�����3�����	»�Y*·°����'������Ü�(�������	�,�-����…�����3�����	»Y*·°����'������æ�(�������	�,�-����…�����/�����*¶°����'������ð�(��������,�-���
                                    ! �����Í�����G+Ç�»�DY·�F¿*M»�0Y·�2N-*¶�PW§�,¹�­�M-,¶,+¥�,Çÿí,+¥�»�DY·�F¿-¶�Š°����'���2���ü�ý�ÿ������&�,�5	�:
                                    ! �B�(���*����G�,�-�����G�j�›���9��›���1���¼������1���J�����P�����+Ç�¬+¹�­�*¦�¬¬����'���������(��������,�-������j�›���X�����5�����*´�3¶À�’°����'������)�(��������,�-����X�����5�����*´�3¶À�’°����'������5�(��������,�-��������€�����.+Æ�
                                    +¹�­�*¥�»�DY·�F¿*+¶`=*¶�¨ �°*¶�ΰ����'������F�G�I�K�&L�(N�(��� ����.�,�-�����.�j�›����`�a�������|�����*+Æ�
                                    +¹�­�*¥�»�DY·�F¿*+¶d=œ�°*¶�ΰ����'������_�`�b�d�"e�$g�(��� ����*�,�-�����*�j�›����`�a���J�����i�����%+Ç�¬+*¦�¬+¹�­�*¶�ð¦�*¶�ðÆ�¬¬����'������v�w�x�y�
                                    z�(�������%�,�-�����%�j�›�� �‰�����E�����*´�YÇ�¬*´�Y¹!�¬����'������†�‡�	‰�(��������,�-����ï�ì�����{�����3*´�YÇ�°*´�Y*¹"�`<*´�Y¹!� �°*´�Y¹#�À�°����'������•�–�	˜�š�#›�%�(�������3�,�-�����`�a���õ�ì�����r�����**´�YÇ�°*´�Y*¹"�d<œ�°*´�Y¹#�À�°����'������©�ª�	¬�®�¯�±�(�������*�,�-�����`�a��$�¢�����8�����*´�3¶�†š�¬¬����'������¼�(��������,�-���%�ì�����_�����*L§�+¹�Ñ�L+¹�Ð�ÿò+À�°����'������È�Ê�Ë�
                                    Ê�Í�(��������,�-�����®�›���ø�ì�����|�����&*L+¹�Ð�=§�+d¹�Ñ�L+¹�Ð�=ÿî+À�°����'������Ù�Ú�	Ü�Þ�ß�Ü�!â�(��� ����&�,�-����$�®�›��	��ˆ�a��&�ì�����j�����"*¶�íL+Æ�+¶'°*´�YÆ�*´�YÀ�¶)°°����'������í�î�	ï�ñ�ò� ó�(�������"�,�-�����ñ�-��+�ì�����j�����"*¶�óL+Æ�+¶�ö°*´�YÆ�*´�YÀ�¶,°°����'������þ�ÿ�	���� �(�������"�,�-�����ñ�-��.�‰����������+<*¶/M§�,¹1�À�’N-¹6�™�„,¹8�šÿä¬����'���"������
                                    ! ��� �)�(���*����+�,�-����)�à�a���$;�����®�›��<���=>�����?���@��ú�A�
                                    \ No newline at end of file
                                    --- 52,73 ----
                                      �(%�ì
                                      �*&�ì�getPreviousLeaf
                                      �-+�ì�getLeafCount
                                    ! �0�…243�java/util/Enumeration5�:�nextElement�’7$�¢29:�¢�hasMoreElements�e�Ljava/util/Enumeration<*>;�
                                      SourceFile�DefaultMutableTreeNode.java�InnerClasses�BreadthFirstEnumeration�PostorderEnumeration�PreorderEnumeration�!������	������
                                    ����������������������������„����������9��������3������»� Y·�"³�%±����'�������G��F�
                                      �=�(�������$������5�����*·�)±����'���
                                      ����c��d�(��������,�-����$�.�����?�����*+·�)±����'���
                                    ! ����o��p�(��������,�-����������$�+�����h�����*·�/*»�0Y·�2µ�3*+µ�5*µ�7±����'�������z��Q��|��}��~�(��� �����,�-����������������9�:�����:�����»�Y*´�5*´�7·�)°����'�������ˆ�(��������,�-����;�<�����C�����*´�5Ç�°*´�5¶�=°����'�������”��•�	�—�(��������,�-����?�@�����’�����>*´�7š�»�AY·�C¿+Ç�»�DY·�F¿*+¶�G™�
                                    »�DYK·�M¿*´�3+¶�PW+*¹�S�±����'���&�	���«��¬��®��¯��±�#�²�-�´�6�µ�=�¶�(�������>�,�-�����>�V����W�X�����/�����*´�Y°����'�������¿�(��������,�-����[�\�����Z�����*´�3¶�]À�M,¹�S�±����'�������Í��Î��Ï�(��� �����,�-������`�a����V����[�@�����‡�����3+Ç�
                                    »�DYb·�M¿+¹�d�*¥�
                                    »�DYf·�M¿*´�3+¶�hW+¹�S�±����'���&�	���Ý��Þ��ß��à��á��à�"�â�+�ã�2�ä�(�������3�,�-�����3�j����k�l��m�����n����5������±����'�������ñ�(��������,�-������p�q���r�s��m�����n�t����5������±����'�������ÿ�(��������,�-������p�v���w�x�����“�����9*´�7š�»�AY·�C¿+Ç�
                                    »�DYb·�M¿*+¶�G™�
                                    »�DYy·�M¿*´�3+¶�{±����'���"����
                                    ����%�/�8�(��� ����9�,�-�����9�j�����9�`�a����€�����1�����**¶�°����'�������(��������,�-�����…�����H�����*´�3¶�†š�²�%°*´�3¶�Š°����'������+�
                                    ! ,�.�(��������,�-����U�@�����>�����*+µ�Y±����'���
                                    ! ���8�9�(��������,�-������j�����Ž�����@�����*´�3¶�À�’°����'������D�(��������,�-������`�a���”�‰�����2�����*´�3¶�†¬����'������N�(��������,�-����•�–�����S�����+Ç�
                                    »�DYb·�M¿*´�3+¶�—¬����'������]�^�_�(��������,�-������j�›���œ������N�����š�*¶�ž*µ�7±����'������k�l�m�
                                    n�(��������,�-����������¡�¢�����/�����*´�7¬����'������w�(��������,�-����£�.�����>�����*+µ�5±����'���
                                    ! ����‚�(��������,�-����������¤�:�����/�����*´�5°����'������Œ�(��������,�-����¥������B�����*´�Y*¹�¦�*µ�Y±����'������”�
                                    ! •�–�(��������,�-���� ������W�����*¶�¨d<§�*¶�ª„ÿœÿ÷±����'�������
                                    ! ž��Ÿ�(��������,�-�����¬�a���I�J�����z�����$+Ç�¬*M§�
                                    ! ,¹�­�M,Æ�,+¦ÿó,+¦�¬¬����'������²�³�µ�·�¸�·�º�(��� ����$�,�-�����$�j�›����®�›���¯�°�����~�����$+Ç�¬+M§�
                                    ! ,¹�­�M,Æ�,*¦ÿó,*¦�¬¬����'���"���Î�Ï�Ñ�Ó�Õ�Ó�Ô�×�(��� ����$�,�-�����$�j�-����®�›���±�²�����Ä�����:*M»�³Y·�µN§�-,¶�¶W,¹�­�M,Çÿò+M§�-,¶�·™�,°,¹�­�M,Çÿî°����'���6�
                                    ��ã�ä�
                                    ! æ�
                                    è�é�æ�ì� î�#ð�+ñ�-ó�4î�8ö�(���*����:�,�-�����:�j�-���8�®�›��
                                      �0�º�»��¼�����
                                    ! �0�º�½���¾�°�����Q�����+Ç�¬+¶�¿*¶�¿¦�¬¬����'���������(��������,�-������j�-���Â�‰����™�����¹*´�7™�
                                    *´�3¶�†š�¬»�ÃY·�ÅL+»�ÆY·�ȶ�ÊW*¶�ÎM>6§�},¹�Ð�™�,¹�Ñ�M+»�ÆY·�ȶ�ÊW„§�Y¤�>,¹�­�M,¹�Ð�6+¶�ÒÀ�ƶ�Õ`6„ÿ¡�,*¦ÿ×¢�,¹�Ñ�M+»�ÆY·�ȶ�ÊW„+¶�Ø™ÿ‚¬����'���n��������(�.�0�3�6�?�G�T�Z#�`$�c+�j,�r-�€.�ƒ0�Š1�3�–5�Ÿ6�­7�°�·<�(���H����¹�,�-����ž�Û�Ü��.�‹�j�›��0�‰�Ý�a��3�†�®�a��r�>�ˆ�a��€�0�`�a��¼������ž�Û�Þ���ß�‰�����f�����<*M,¹�­�M„,Çÿõ¬����'������F�G�K�L�N�P�(��� �����,�-�����à�a����®�›���ƒ�„�����ˆ�����(+Ç�š�°½�’°*+¹�­�`¶�N--¾dd+S-°����'������]�_�`�
                                    ! b�e�f�&g�(���*����(�,�-�����(�j�›����(�Ý�a����á�â���ã�ä�����…�����)**¶�L+¾½�M>§�,+2À�¶�åS„+¾¡ÿî,°����'������q�r�
                                    t�u�t�'w�(���*����)�,�-����"�á�â��
                                    ��ç�è����`�a���Á�X�����q�����*L+¹�­�M§�,L+¹�­�M,Çÿö+°����'�������‚�	„�†�‡�„�Š�(��� �����,�-�����®�›��	��é�›���ê�¢�����5�����*´�YÇ�¬¬����'������•�(��������,�-����ë�ì�����ƒ�����)*¶�¨™�*¶�ÎÀ�°*L+¶�íM+¶�ðÀ�L,Ç�+Çÿî,°����'���"��� �¡�¤�©�ª�¬�#­�'°�(��� ����)�,�-�����j�-����ñ�-���ò�ì�����x�����(*´�YÇ�°*¶�óL+Ç�*´�YÀ�°+¶�¨™�+¶�ö°+°����'���"���»�¼�	¾�Á�Â�Å�!Æ�&É�(�������(�,�-�����ñ�-���ù�…�����3�����	»�úY*·�ü°����'������Ô�(�������	�,�-����ÿ�…�����3�����	»�Y*·°����'������ß�(�������	�,�-����…�����3�����	»Y*·°����'������ê�(�������	�,�-����…�����/�����*¶°����'������õ�(��������,�-���
                                    ! �����Í�����G+Ç�»�DY·�F¿*M»�0Y·�2N-*¶�PW§�,¹�­�M-,¶,+¥�,Çÿí,+¥�»�DY·�F¿-¶�Š°����'���2��������	��&�,	�5�:�B�(���*����G�,�-�����G�j�›���9��›���1���¼������1���J�����P�����+Ç�¬+¹�­�*¦�¬¬����'������ �!�#�(��������,�-������j�›���X�����5�����*´�3¶À�’°����'������/�(��������,�-����X�����5�����*´�3¶À�’°����'������;�(��������,�-��������€�����.+Æ�
                                    +¹�­�*¥�»�DY·�F¿*+¶`=*¶�¨ �°*¶�ΰ����'������L�M�O�Q�&R�(T�(��� ����.�,�-�����.�j�›����`�a�������|�����*+Æ�
                                    +¹�­�*¥�»�DY·�F¿*+¶d=œ�°*¶�ΰ����'������e�f�h�j�"k�$m�(��� ����*�,�-�����*�j�›����`�a���J�����i�����%+Ç�¬+*¦�¬+¹�­�*¶�ð¦�*¶�ðÆ�¬¬����'������|�}�~��
                                    €�(�������%�,�-�����%�j�›�� �‰�����E�����*´�YÇ�¬*´�Y¹!�¬����'������Œ��	�(��������,�-����ï�ì�����{�����3*´�YÇ�°*´�Y*¹"�`<*´�Y¹!� �°*´�Y¹#�À�°����'������›�œ�	ž� �#¡�%£�(�������3�,�-�����`�a���õ�ì�����r�����**´�YÇ�°*´�Y*¹"�d<œ�°*´�Y¹#�À�°����'������¯�°�	²�´�µ�·�(�������*�,�-�����`�a��$�¢�����8�����*´�3¶�†š�¬¬����'������Â�(��������,�-���%�ì�����_�����*L§�+¹�Ñ�L+¹�Ð�ÿò+À�°����'������Î�Ð�Ñ�
                                    Ð�Ó�(��������,�-�����®�›���ø�ì�����|�����&*L+¹�Ð�=§�+d¹�Ñ�L+¹�Ð�=ÿî+À�°����'������ß�à�	â�ä�å�â�!è�(��� ����&�,�-����$�®�›��	��ˆ�a��&�ì�����j�����"*¶�íL+Æ�+¶'°*´�YÆ�*´�YÀ�¶)°°����'������ó�ô�	õ�÷�ø� ù�(�������"�,�-�����ñ�-��+�ì�����j�����"*¶�óL+Æ�+¶�ö°*´�YÆ�*´�YÀ�¶,°°����'��������	��	� 
                                    ! �(�������"�,�-�����ñ�-��.�‰�����¡�����+<*¶/M§�,¹1�À�’N-¹6�™�„,¹8�šÿä¬����'���"������
                                    ! ��� �)�(���*����+�,�-����)�à�a���$;�����®�›��¼������$;<��=���>?�����@���A��ú�B�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1��'javax/swing/tree/FixedHeightLayoutCache��*javax/swing/tree/VariableHeightLayoutCache�expanded�Ljava/util/Set;�	Signature�#Ljava/util/Set<Ljava/lang/Object;>;�nodes�Ljava/util/Hashtable;�]Ljava/util/Hashtable<Ljava/lang/Object;Ljavax/swing/tree/FixedHeightLayoutCache$NodeRecord;>;�row2node�<Ljava/util/Hashtable<Ljava/lang/Integer;Ljava/lang/Object;>;�dirty�Z�totalHeight�I�maximalWidth�<init>�()V�Code
                                      ������java/util/HashSet
                                      ��	������java/util/Hashtable
                                      ��	��!�	�
                                    --- 1,4 ----
                                    ! Êþº¾���1��'javax/swing/tree/FixedHeightLayoutCache��*javax/swing/tree/VariableHeightLayoutCache�expanded�Ljava/util/Set;�	Signature�#Ljava/util/Set<Ljava/lang/Object;>;�nodes�Ljava/util/Hashtable;�]Ljava/util/Hashtable<Ljava/lang/Object;Ljavax/swing/tree/FixedHeightLayoutCache$NodeRecord;>;�row2node�<Ljava/util/Hashtable<Ljava/lang/Integer;Ljava/lang/Object;>;�dirty�Z�totalHeight�I�maximalWidth�<init>�()V�Code
                                      ������java/util/HashSet
                                      ��	������java/util/Hashtable
                                      ��	��!�	�
                                    *************** isExpanded�(Ljavax/swing/tree/TreePath
                                    *** 27,33 ****
                                      �y�è�é�ê�getPathComponent�(I)Ljava/lang/Object;
                                      ��
                                      �á�À�
                                    ! parentPath�p�Ljava/util/Vector;�getExpandedState�treeNodesChanged�%(Ljavax/swing/event/TreeModelEvent;)V�event�"Ljavax/swing/event/TreeModelEvent;�treeNodesInserted�treeNodesRemoved�treeStructureChanged�setModel�(Ljavax/swing/tree/TreeModel;)V�newModel�setRootVisible�(Z)V�visible�getPreferredHeight�getPreferredWidth�(Ljava/awt/Rectangle;)I�value�isFixedRowHeight�
                                      SourceFile�FixedHeightLayoutCache.java�InnerClasses�
                                      NodeRecord�!������������������	�
                                      ����������
                                    --- 27,33 ----
                                      �y�è�é�ê�getPathComponent�(I)Ljava/lang/Object;
                                      ��
                                      �á�À�
                                    ! parentPath�p�Ljava/util/Vector;�/Ljava/util/Vector<Ljavax/swing/tree/TreePath;>;�getExpandedState�treeNodesChanged�%(Ljavax/swing/event/TreeModelEvent;)V�event�"Ljavax/swing/event/TreeModelEvent;�treeNodesInserted�treeNodesRemoved�treeStructureChanged�setModel�(Ljavax/swing/tree/TreeModel;)V�newModel�setRootVisible�(Z)V�visible�getPreferredHeight�getPreferredWidth�(Ljava/awt/Rectangle;)I�value�isFixedRowHeight�
                                      SourceFile�FixedHeightLayoutCache.java�InnerClasses�
                                      NodeRecord�!������������������	�
                                      ����������
                                    *************** NodeRecord�!������������������	
                                    *** 40,52 ****
                                      ���'�(�%��������&�'����‰�Š�����w�����)™�*´�+¶�x¹�‹�W§�*´�+¶�x¹�Ž�W*µ�*±����$������5�6�8�#:�(;�%��� ����)�&�'�����)�…�†����)�‘����‘�’�����B�����*´�+¶�x¹�h�¬����$������D�%��������&�'������…�†���“�”���������p+Ç�°*´�*™�*·�,+¶�xN*´� -¶�}À�`:Ç�,,,,Zµ�•Zµ�šZµ�µ� §�2´�Ç�!*-´�£´�¦´�¨,¶�ª:µ�,´�¶�®,°����$���>���P�Q�R�
                                    S�T�U�#V�(Y�?]�G_�S`�Y_�^a�ed�nf�%���>����p�&�'�����p�…�†����p�²�„���Z�³�S��#�M�‡�t��^��´�„���µ�¶�����’�����2*´�*™�*·�,*´�"»�WY·�Y¶�}M,Ç�°*´� ,¶�}À�`N-¶�·°����$������q�r�s�t�u�!x�-y�%���*����2�&�'�����2�¥�����³�S��-��‡�t���»�¼����������++Ç�¬*´�*™�*·�,*´� +¶�x¶�}À�`M,Ç�¬,´�£¬����$������…�†�ˆ�Š� ‹�$Œ�&Ž�%��� ����+�&�'�����+�…�†�� ��‡�t���½�¾����;�����u*´�*™�*·�,N*´� ¶�¿:Ã6§�A¹�Ä�À�`:-Ç�N*¶�ɶ�Ì6§�*¶�ɶ�Ì6¢�
                                      N6¹�Ð�™�ÿ¶-Ç�°-¶�·°����$���J���š�›�ž�
                                     �¢�¤�¦�)§�-©�0ª�@®�M¯�T±�W²�[¤�j·�n¸�pº�%���R����u�&�'�����u�¢�����u�Ÿ���
                                    �h�Ô�t��)�2�‡�t���_�Õ�Ö���[�×���M��Ø���Ù������_�Õ�Ú����Î�Ï�����‚�����*+´�¢�
                                      +´�d¬+´�+´�•`¤�+´�+´�•`d¬¬����$������Ã�Ä�Å�Æ�(È�%���*����*�&�'�����*�‡�„����*�¢�����*�Ÿ����Û�¼�����T�����*+¶�Ü™�¬*´�9+¶�x¹�J�¬����$������Ö�×�
                                    ! Ù�%��������&�'������…�†���Þ�ß������à����Ð�����P*´�*™�*·�,»�áY+¶�ã·�æM6§�(+¶�çN*´� -¶�}À�`:´�£›�	,-¶�ëW„+¶�ã¡ÿÕ,¶�ì°����$���*�
                                    ! ��å�æ�ç�ë�í�$î�1ï�9ð�?ë�Kò�%���>����P�&�'�����P�í�†���9�î�ï��$��n�S��1��s�t���1�U����ð�’�����B�����*´�+¶�x¹�h�¬����$������ÿ�%��������&�'������…�†���ñ�ò�����>�����*µ�*±����$���
                                      ���	�
                                    ! �%��������&�'������ó�ô���õ�ò�����>�����*µ�*±����$���
                                    ! �����%��������&�'������ó�ô���ö�ò�����>�����*µ�*±����$���
                                    ! �����%��������&�'������ó�ô���÷�ò�����>�����*µ�*±����$���
                                    ! ���'�(�%��������&�'������ó�ô���ø�ù�����^�����*+µ�9*´�*´�9¹�=�¹�‹�W*µ�*±����$������/�1�2�3�%��������&�'������ú�<���û�ü�����G�����*µ�C*µ�*±����$������>�?�
                                    ! @�%��������&�'������ý����þ�)�����Ã�����E*´�*™�*·�,*µ�7*´� ¶�¿L§�+¹�Ä�À�`M,¶�ÉN*Y´�7-´�•`µ�7+¹�Ð�šÿÞ*´�7¬����$���*�
                                    ! ��G�H�I�J�K�M�%N�*O�7K�@Q�%���*����E�&�'����-����%��s�t��*�
                                    �‡�„��Ù������-�Õ�Ú���ÿ������æ�����Z*´�*™�*·�,*µ�5*´� ¶�¿M§�4,¹�Ä�À�`N-¶�É:´� ´�š`*´�5¤�*´� ´�š`µ�5,¹�Ð�šÿÉ*´�5¬����$���.���Y�Z�\�]�^�`�%a�+b�=c�L^�Ue�%���4����Z�&�'�����Z�„���B�Õ�Ö��%�'�s�t��+�!�‡�„��Ù������B�Õ�Ú���Ó�����,�����¬����$������q�%��������&�'���������
                                    ! ��`���
                                    \ No newline at end of file
                                    --- 40,52 ----
                                      ���'�(�%��������&�'����‰�Š�����w�����)™�*´�+¶�x¹�‹�W§�*´�+¶�x¹�Ž�W*µ�*±����$������5�6�8�#:�(;�%��� ����)�&�'�����)�…�†����)�‘����‘�’�����B�����*´�+¶�x¹�h�¬����$������D�%��������&�'������…�†���“�”���������p+Ç�°*´�*™�*·�,+¶�xN*´� -¶�}À�`:Ç�,,,,Zµ�•Zµ�šZµ�µ� §�2´�Ç�!*-´�£´�¦´�¨,¶�ª:µ�,´�¶�®,°����$���>���P�Q�R�
                                    S�T�U�#V�(Y�?]�G_�S`�Y_�^a�ed�nf�%���>����p�&�'�����p�…�†����p�²�„���Z�³�S��#�M�‡�t��^��´�„���µ�¶�����’�����2*´�*™�*·�,*´�"»�WY·�Y¶�}M,Ç�°*´� ,¶�}À�`N-¶�·°����$������q�r�s�t�u�!x�-y�%���*����2�&�'�����2�¥�����³�S��-��‡�t���»�¼����������++Ç�¬*´�*™�*·�,*´� +¶�x¶�}À�`M,Ç�¬,´�£¬����$������…�†�ˆ�Š� ‹�$Œ�&Ž�%��� ����+�&�'�����+�…�†�� ��‡�t���½�¾����;�����u*´�*™�*·�,N*´� ¶�¿:Ã6§�A¹�Ä�À�`:-Ç�N*¶�ɶ�Ì6§�*¶�ɶ�Ì6¢�
                                      N6¹�Ð�™�ÿ¶-Ç�°-¶�·°����$���J���š�›�ž�
                                     �¢�¤�¦�)§�-©�0ª�@®�M¯�T±�W²�[¤�j·�n¸�pº�%���R����u�&�'�����u�¢�����u�Ÿ���
                                    �h�Ô�t��)�2�‡�t���_�Õ�Ö���[�×���M��Ø���Ù������_�Õ�Ú����Î�Ï�����‚�����*+´�¢�
                                      +´�d¬+´�+´�•`¤�+´�+´�•`d¬¬����$������Ã�Ä�Å�Æ�(È�%���*����*�&�'�����*�‡�„����*�¢�����*�Ÿ����Û�¼�����T�����*+¶�Ü™�¬*´�9+¶�x¹�J�¬����$������Ö�×�
                                    ! Ù�%��������&�'������…�†���Þ�ß������à����å�����S*´�*™�*·�,»�áY+¶�ã·�æM6§�++¶�çN*´� -¶�}À�`:´�£›�,-À�y¶�ëW„+¶�ã¡ÿÒ,¶�ì°����$���*�
                                    ! ��å�æ�ç�ë�í�$î�1ï�9ð�Bë�Nò�%���>����S�&�'�����S�í�†���<�î�ï��$�!�n�S��1��s�t���4�U���Ù������<�î�ð���ñ�’�����B�����*´�+¶�x¹�h�¬����$������ÿ�%��������&�'������…�†���ò�ó�����>�����*µ�*±����$���
                                      ���	�
                                    ! �%��������&�'������ô�õ���ö�ó�����>�����*µ�*±����$���
                                    ! �����%��������&�'������ô�õ���÷�ó�����>�����*µ�*±����$���
                                    ! �����%��������&�'������ô�õ���ø�ó�����>�����*µ�*±����$���
                                    ! ���'�(�%��������&�'������ô�õ���ù�ú�����^�����*+µ�9*´�*´�9¹�=�¹�‹�W*µ�*±����$������/�1�2�3�%��������&�'������û�<���ü�ý�����G�����*µ�C*µ�*±����$������>�?�
                                    ! @�%��������&�'������þ����ÿ�)�����Ã�����E*´�*™�*·�,*µ�7*´� ¶�¿L§�+¹�Ä�À�`M,¶�ÉN*Y´�7-´�•`µ�7+¹�Ð�šÿÞ*´�7¬����$���*�
                                    ! ��G�H�I�J�K�M�%N�*O�7K�@Q�%���*����E�&�'����-����%��s�t��*�
                                    �‡�„��Ù������-�Õ�Ú��������æ�����Z*´�*™�*·�,*µ�5*´� ¶�¿M§�4,¹�Ä�À�`N-¶�É:´� ´�š`*´�5¤�*´� ´�š`µ�5,¹�Ð�šÿÉ*´�5¬����$���.���Y�Z�\�]�^�`�%a�+b�=c�L^�Ue�%���4����Z�&�'�����Z�„���B�Õ�Ö��%�'�s�t��+�!�‡�„��Ù������B�Õ�Ú���Ó�����,�����¬����$������q�%��������&�'���������
                                    ! ��`���
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���10��*javax/swing/tree/VariableHeightLayoutCache��$javax/swing/tree/AbstractLayoutCache�
                                      RECT_CACHE�Ljava/awt/Rectangle;�expanded�Ljava/util/Set;�	Signature�#Ljava/util/Set<Ljava/lang/Object;>;�nodes�Ljava/util/Hashtable;�`Ljava/util/Hashtable<Ljava/lang/Object;Ljavax/swing/tree/VariableHeightLayoutCache$NodeRecord;>;�row2node�Ljava/util/ArrayList;�)Ljava/util/ArrayList<Ljava/lang/Object;>;�dirty�Z�totalHeight�I�maximalWidth�<clinit>�()V�Code��java/awt/Rectangle
                                      �����<init>	�����LineNumberTable�LocalVariableTable
                                      ���$�java/util/HashSet
                                    --- 1,4 ----
                                    ! Êþº¾���11��*javax/swing/tree/VariableHeightLayoutCache��$javax/swing/tree/AbstractLayoutCache�
                                      RECT_CACHE�Ljava/awt/Rectangle;�expanded�Ljava/util/Set;�	Signature�#Ljava/util/Set<Ljava/lang/Object;>;�nodes�Ljava/util/Hashtable;�`Ljava/util/Hashtable<Ljava/lang/Object;Ljavax/swing/tree/VariableHeightLayoutCache$NodeRecord;>;�row2node�Ljava/util/ArrayList;�)Ljava/util/ArrayList<Ljava/lang/Object;>;�dirty�Z�totalHeight�I�maximalWidth�<clinit>�()V�Code��java/awt/Rectangle
                                      �����<init>	�����LineNumberTable�LocalVariableTable
                                      ���$�java/util/HashSet
                                    *************** isExpanded
                                    *** 27,44 ****
                                      �­�¾�¿�À�getPathComponent�(I)Ljava/lang/Object;�”�Z�”�Ã�Ä�\�remove�length�(Ljavax/swing/tree/TreePath;)Z�	getBounds�E(Ljavax/swing/tree/TreePath;Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
                                      ��Ê��Š�rect�last�result�
                                    getPathForRow�(I)Ljavax/swing/tree/TreePath;
                                      �(�Ñ�Ò�Ó�elements�()Ljava/util/Enumeration;�Õ�×�Ö�java/util/Enumeration�Ø�O�nextElement	�]�Ú� �
                                    ! �]�Ü�Ý�Þ�getPath�()Ljavax/swing/tree/TreePath;�Õ�à�á�~�hasMoreElements�	nodesEnum�Ljava/util/Enumeration;�record�
                                    getRowForPath�(Ljavax/swing/tree/TreePath;)I�getPathClosestTo�(II)Ljavax/swing/tree/TreePath;ÿÿÿ
                                    ! �]�ë�Ç�ì�()Ljava/awt/Rectangle;
                                    ! ��î�ï�ð�distance�(Ljava/awt/Rectangle;II)I�x�best�en�dist�rr�LocalVariableTypeTable�PLjava/util/Enumeration<Ljavax/swing/tree/VariableHeightLayoutCache$NodeRecord;>;�getVisibleChildCount
                                      ��ú�h�Æ�getVisiblePathsFrom�4(Ljavax/swing/tree/TreePath;)Ljava/util/Enumeration;�Q(Ljavax/swing/tree/TreePath;)Ljava/util/Enumeration<Ljavax/swing/tree/TreePath;>;�ÿ�java/util/Vector
                                      �þ��(I)V
                                      �þ�Z
                                      �þ�Ñ�
                                    ! parentPath�p�Ljava/util/Vector;�getExpandedState�treeNodesChanged�%(Ljavax/swing/event/TreeModelEvent;)V�event�"Ljavax/swing/event/TreeModelEvent;�treeNodesInserted�treeNodesRemoved�treeStructureChanged�setModel�(Ljavax/swing/tree/TreeModel;)V�newModel�setRootVisible�(Z)V�getPreferredHeight
                                    ! ��4�5
                                    ! �-�³�À�rowCount�getPreferredWidth�(Ljava/awt/Rectangle;)I	��ñ�	� !��width�value�setNodeDimensions�8(Ljavax/swing/tree/AbstractLayoutCache$NodeDimensions;)V
                                    ! �&#$�dim�setRowHeight
                                    ! �*(�
                                      SourceFile�VariableHeightLayoutCache.java�InnerClasses�NodeDimensions�
                                      NodeRecord�!����������������	����
                                      ������	����
                                    ������	�������������������������������/������»�Y·�³�±���� ���
                                    --- 27,44 ----
                                      �­�¾�¿�À�getPathComponent�(I)Ljava/lang/Object;�”�Z�”�Ã�Ä�\�remove�length�(Ljavax/swing/tree/TreePath;)Z�	getBounds�E(Ljavax/swing/tree/TreePath;Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
                                      ��Ê��Š�rect�last�result�
                                    getPathForRow�(I)Ljavax/swing/tree/TreePath;
                                      �(�Ñ�Ò�Ó�elements�()Ljava/util/Enumeration;�Õ�×�Ö�java/util/Enumeration�Ø�O�nextElement	�]�Ú� �
                                    ! �]�Ü�Ý�Þ�getPath�()Ljavax/swing/tree/TreePath;�Õ�à�á�~�hasMoreElements�	nodesEnum�Ljava/util/Enumeration;�record�LocalVariableTypeTable�PLjava/util/Enumeration<Ljavax/swing/tree/VariableHeightLayoutCache$NodeRecord;>;�
                                    getRowForPath�(Ljavax/swing/tree/TreePath;)I�getPathClosestTo�(II)Ljavax/swing/tree/TreePath;ÿÿÿ
                                    ! �]�í�Ç�î�()Ljava/awt/Rectangle;
                                    ! ��ð�ñ�ò�distance�(Ljava/awt/Rectangle;II)I�x�best�en�dist�rr�getVisibleChildCount
                                      ��ú�h�Æ�getVisiblePathsFrom�4(Ljavax/swing/tree/TreePath;)Ljava/util/Enumeration;�Q(Ljavax/swing/tree/TreePath;)Ljava/util/Enumeration<Ljavax/swing/tree/TreePath;>;�ÿ�java/util/Vector
                                      �þ��(I)V
                                      �þ�Z
                                      �þ�Ñ�
                                    ! parentPath�p�Ljava/util/Vector;�/Ljava/util/Vector<Ljavax/swing/tree/TreePath;>;�getExpandedState�treeNodesChanged�%(Ljavax/swing/event/TreeModelEvent;)V�event�"Ljavax/swing/event/TreeModelEvent;�treeNodesInserted�treeNodesRemoved�treeStructureChanged�setModel�(Ljavax/swing/tree/TreeModel;)V�newModel�setRootVisible�(Z)V�getPreferredHeight
                                    ! ��4�5
                                    ! �-�³�À�rowCount�getPreferredWidth�(Ljava/awt/Rectangle;)I	��ó�	�!"��width�value�setNodeDimensions�8(Ljavax/swing/tree/AbstractLayoutCache$NodeDimensions;)V
                                    ! �'$%�dim�setRowHeight
                                    ! �+)�
                                      SourceFile�VariableHeightLayoutCache.java�InnerClasses�NodeDimensions�
                                      NodeRecord�!����������������	����
                                      ������	����
                                    ������	�������������������������������/������»�Y·�³�±���� ���
                                    *************** NodeRecord�!����������������	��
                                    *** 50,70 ****
                                      ��˜
                                    �¢�­�²�¼�È�Í�Ú�à�î�û�!���Ž����2�3�����œ�U�����U����ž�����t����í�Ÿ���$�ä� ���A�Ç�¡�¢��G�Á�£�¤��L�¼�¥��	�È�@�¦��
                                      �Í�;�§���Ý�(�¨���î�
                                    �©�U�
                                    ��ª�«�����c�����*´�++¶�¬¶�±À�]M,Æ�,µ�…±���� ������'�(�)�*�!��� �����2�3������µ�¶���
                                      �¥�¢���·������4�����*µ�6±���� ���
                                    ! ���1�2�!��������2�3����¸�¹�����­�����?™�*+¶�º>6§�*´�&+¶�½¹�Á�W„¡ÿê§�*´�&+¶�¬¹�Â�W*µ�6±���� ���"���?�A�	B�C�B�+F�9H�>I�!���4����?�2�3�����?�µ�¶����?�h���	�"�Å�����¨����h�Æ�����B�����*´�&+¶�¬¹�“�¬���� ������R�!��������2�3������µ�¶���Ç�È�����Ý�����Q+Ç�°*´�6™�*·�8+¶�¬N:*´�+-¶�±À�]:Æ�&,:Ç�»�Y´�…·�É:§�
                                    ´�…¶�ˆ°���� ���6�
                                    ��^�_�`�
                                    a�c�d�e�&f�+j�.k�3l�Dn�Np�!���>����Q�2�3�����Q�µ�¶����Q�Ë����;�Ì�U���8�Í���&�+�¥�¢���Î�Ï�����·�����A*´�6™�*·�8M*´�+¶�ÐN§�-¹�Ô�À�]:´�Ù �	¶�ÛM-¹�ß�™�,ÆÿÜ,°���� ���*�
                                    ! ��{�|�~�
                                    €��ƒ�#„�,…�2�?‡�!���4����A�2�3�����A� ���
                                    �4�µ�¶���,�â�ã��#��ä�¢���å�æ�����…�����++Ç�¬*´�6™�*·�8*´�++¶�¬¶�±À�]M,Ç�¬,´�Ù¬���� ���"���’�“�•�
                                    –�˜� ™�$š�&œ�!��� ����+�2�3�����+�µ�¶�� ��¥�¢���ç�è����;�����u*´�6™�*·�8N*´�+¶�Ð:é6§�A¹�Ô�À�]:-Ç�N*¶�ê¶�í6§�*¶�ê¶�í6¢�
                                    ! N6¹�ß�™�ÿ¶-Ç�°-¶�Û°���� ���J���¨�©�¬�
                                    ®�°�²�´�)µ�-·�0¸�@¼�M½�T¿�WÀ�[²�jÅ�nÆ�pÈ�!���R����u�2�3�����u�ñ�����u�t���
                                    �h�ò�¢��)�2�¥�¢���_�ó�ã���[�ô���M��õ���ö������_�ó�÷����ï�ð�����†�����.+´�r¢�
                                    ! +´�rd¬+´�r+´�‚`d¤�+´�r+´�‚`dd¬¬���� ������Ñ�Ò�Ó�Ô�,Ö�!���*����.�2�3�����.�¥�����.�ñ�����.�t����ø�æ�����[�����*+¶�ù™�
                                    ! *´�FÇ�¬*´�F+¶�¬¹��¬���� ������ä�å�ç�!��������2�3������µ�¶���û�ü��	����ý����Õ�����U*´�6™�*·�8»�þY+¶�º·�M6§�-+¶�½N*´�+-¶�±À�]:Æ�´�Ù›�	,-¶W„+¶�º¡ÿÐ,¶°���� ���*�
                                    ! ��ó�ô�õ�ù�û�$ü�1ý�>þ�Dù�P��!���>����U�2�3�����U�¶���>��$�#�œ�U��1��¡�¢���6�¨����Æ�����B�����*´�&+¶�¬¹�“�¬���� ������
                                    �!��������2�3������µ�¶��	
                                    ! �����>�����*µ�6±���� ���
                                    ! �����!��������2�3�������
                                    
                                    ! �����>�����*µ�6±���� ���
                                    ! ���!�"�!��������2�3�������
                                    ! �����>�����*µ�6±���� ���
                                    ! ���+�,�!��������2�3�������
                                    ! �����>�����*µ�6±���� ���
                                    ! ���5�6�!��������2�3������������i�����%*+µ�F*µ�6*´�FÆ�*´�&*´�F¹�J�¹�Á�W±���� ������=�>�
                                    ! ?�B�$D�!�������%�2�3�����%�I�������G�����*µ�V*µ�6±���� ������O�P�
                                    ! Q�!��������2�3������Ÿ����5�����¡�����=*´�6™�*·�8<*¶=ž�(*´�+*´�0d¶¶�±À�]N-´�…´�r-´�…´�‚`<¬���� ���"���X�Y�Z�
                                    [�\�^�+_�;a�!���*����=�2�3���
                                    �0�„����+���+��Ì�¢�������÷�����Y*´�6™�*·�8*µ�B*´�+¶�ÐM§�3,¹�Ô�À�]N-Æ�%-¶�ê:´´`6*´�B¤�	*µ�B,¹�ß�šÿÊ*´�B¬���� ���6�
                                    ��i�j�l�m�n�p�%q�)s�/t�<u�Ev�Kn�Ty�!���>����Y�2�3�����Y"����A�ó�ã��%�&�¡�¢��/��¥���<�!���ö������A�ó�÷��#$�����G�����*+·%*µ�6±���� ������ƒ�„�
                                    ! …�!��������2�3�����'�¤��(�����G�����*·)*µ�6±���� ������Ž��
                                    ! �!��������2�3������„���+���,-�����j�.	�]�/��
                                    \ No newline at end of file
                                    --- 50,67 ----
                                      ��˜
                                    �¢�­�²�¼�È�Í�Ú�à�î�û�!���Ž����2�3�����œ�U�����U����ž�����t����í�Ÿ���$�ä� ���A�Ç�¡�¢��G�Á�£�¤��L�¼�¥��	�È�@�¦��
                                      �Í�;�§���Ý�(�¨���î�
                                    �©�U�
                                    ��ª�«�����c�����*´�++¶�¬¶�±À�]M,Æ�,µ�…±���� ������'�(�)�*�!��� �����2�3������µ�¶���
                                      �¥�¢���·������4�����*µ�6±���� ���
                                    ! ���1�2�!��������2�3����¸�¹�����­�����?™�*+¶�º>6§�*´�&+¶�½¹�Á�W„¡ÿê§�*´�&+¶�¬¹�Â�W*µ�6±���� ���"���?�A�	B�C�B�+F�9H�>I�!���4����?�2�3�����?�µ�¶����?�h���	�"�Å�����¨����h�Æ�����B�����*´�&+¶�¬¹�“�¬���� ������R�!��������2�3������µ�¶���Ç�È�����Ý�����Q+Ç�°*´�6™�*·�8+¶�¬N:*´�+-¶�±À�]:Æ�&,:Ç�»�Y´�…·�É:§�
                                    ´�…¶�ˆ°���� ���6�
                                    ��^�_�`�
                                    a�c�d�e�&f�+j�.k�3l�Dn�Np�!���>����Q�2�3�����Q�µ�¶����Q�Ë����;�Ì�U���8�Í���&�+�¥�¢���Î�Ï�����É�����A*´�6™�*·�8M*´�+¶�ÐN§�-¹�Ô�À�]:´�Ù �	¶�ÛM-¹�ß�™�,ÆÿÜ,°���� ���*�
                                    ! ��{�|�~�
                                    €��ƒ�#„�,…�2�?‡�!���4����A�2�3�����A� ���
                                    �4�µ�¶���,�â�ã��#��ä�¢��å������,�â�æ���ç�è�����…�����++Ç�¬*´�6™�*·�8*´�++¶�¬¶�±À�]M,Ç�¬,´�Ù¬���� ���"���’�“�•�
                                    –�˜� ™�$š�&œ�!��� ����+�2�3�����+�µ�¶�� ��¥�¢���é�ê����;�����u*´�6™�*·�8N*´�+¶�Ð:ë6§�A¹�Ô�À�]:-Ç�N*¶�ì¶�ï6§�*¶�ì¶�ï6¢�
                                    ! N6¹�ß�™�ÿ¶-Ç�°-¶�Û°���� ���J���¨�©�¬�
                                    ®�°�²�´�)µ�-·�0¸�@¼�M½�T¿�WÀ�[²�jÅ�nÆ�pÈ�!���R����u�2�3�����u�ó�����u�t���
                                    �h�ô�¢��)�2�¥�¢���_�õ�ã���[�ö���M��÷���å������_�õ�æ����ñ�ò�����†�����.+´�r¢�
                                    ! +´�rd¬+´�r+´�‚`d¤�+´�r+´�‚`dd¬¬���� ������Ñ�Ò�Ó�Ô�,Ö�!���*����.�2�3�����.�¥�����.�ó�����.�t����ø�è�����[�����*+¶�ù™�
                                    ! *´�FÇ�¬*´�F+¶�¬¹��¬���� ������ä�å�ç�!��������2�3������µ�¶���û�ü��	����ý����ê�����X*´�6™�*·�8»�þY+¶�º·�M6§�0+¶�½N*´�+-¶�±À�]:Æ�´�Ù›�,-À�­¶W„+¶�º¡ÿÍ,¶°���� ���*�
                                    ! ��ó�ô�õ�ù�û�$ü�1ý�>þ�Gù�S��!���>����X�2�3�����X�¶���A��$�&�œ�U��1��¡�¢���9�¨���å������A��	�Æ�����B�����*´�&+¶�¬¹�“�¬���� ������
                                    �!��������2�3������µ�¶��
                                    ! �����>�����*µ�6±���� ���
                                    ! �����!��������2�3�����
                                    �������>�����*µ�6±���� ���
                                    ! ���!�"�!��������2�3�����
                                    �������>�����*µ�6±���� ���
                                    ! ���+�,�!��������2�3�����
                                    �������>�����*µ�6±���� ���
                                    ! ���5�6�!��������2�3�����
                                    �������i�����%*+µ�F*µ�6*´�FÆ�*´�&*´�F¹�J�¹�Á�W±���� ������=�>�
                                    ! ?�B�$D�!�������%�2�3�����%�I�������G�����*µ�V*µ�6±���� ������O�P�
                                    ! Q�!��������2�3������Ÿ����5�����¡�����=*´�6™�*·�8<*¶=ž�(*´�+*´�0d¶¶�±À�]N-´�…´�r-´�…´�‚`<¬���� ���"���X�Y�Z�
                                    [�\�^�+_�;a�!���*����=�2�3���
                                    �0�„����+���+��Ì�¢�������÷�����Y*´�6™�*·�8*µ�B*´�+¶�ÐM§�3,¹�Ô�À�]N-Æ�%-¶�ì:´´ `6*´�B¤�	*µ�B,¹�ß�šÿÊ*´�B¬���� ���6�
                                    ��i�j�l�m�n�p�%q�)s�/t�<u�Ev�Kn�Ty�!���>����Y�2�3�����Y#����A�õ�ã��%�&�¡�¢��/��¥���<�"���å������A�õ�æ��$%�����G�����*+·&*µ�6±���� ������ƒ�„�
                                    ! …�!��������2�3�����(�¤��)�����G�����*·**µ�6±���� ������Ž��
                                    ! �!��������2�3������„���,���-.�����j�/	�]�0��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/undo/StateEdit.class gcc-4.6.0/libjava/classpath/lib/javax/swing/undo/StateEdit.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/undo/StateEdit.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/undo/StateEdit.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�n��javax/swing/undo/StateEdit��%javax/swing/undo/AbstractUndoableEdit�RCSID�Ljava/lang/String;�
                                    ConstantValue�	�;$Id: StateEdit.java,v 1.6 1997/10/01 20:05:51 sandipc Exp $�object� Ljavax/swing/undo/StateEditable;�preState�Ljava/util/Hashtable;�	Signature�;Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;�	postState�undoRedoName�<init>�#(Ljavax/swing/undo/StateEditable;)V�Code
                                      �����()V
                                      �����init�5(Ljavax/swing/undo/StateEditable;Ljava/lang/String;)V�LineNumberTable�LocalVariableTable�this�Ljavax/swing/undo/StateEdit;�obj�name	��#�
                                      �	��%���'�java/util/Hashtable
                                    --- 1,4 ----
                                    ! Êþº¾���1�p��javax/swing/undo/StateEdit��%javax/swing/undo/AbstractUndoableEdit�RCSID�Ljava/lang/String;�
                                    ConstantValue�	�;$Id: StateEdit.java,v 1.6 1997/10/01 20:05:51 sandipc Exp $�object� Ljavax/swing/undo/StateEditable;�preState�Ljava/util/Hashtable;�	Signature�;Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;�	postState�undoRedoName�<init>�#(Ljavax/swing/undo/StateEditable;)V�Code
                                      �����()V
                                      �����init�5(Ljavax/swing/undo/StateEditable;Ljava/lang/String;)V�LineNumberTable�LocalVariableTable�this�Ljavax/swing/undo/StateEdit;�obj�name	��#�
                                      �	��%���'�java/util/Hashtable
                                    *************** storeState�(Ljava/util/Hashtable;)V�
                                    *** 11,19 ****
                                      �&�S�T�U�containsKey�(Ljava/lang/Object;)Z
                                      �&�W�X�Y�get�&(Ljava/lang/Object;)Ljava/lang/Object;
                                      �[�]�\�java/lang/Object�^�U�equals�M�`�a��remove
                                    ! �&�c�a�Y�M�e�f�g�hasNext�()Z�i�Ljava/util/Iterator;�key�Ljava/lang/Object;�
                                      SourceFile�StateEdit.java�!����������������
                                      ������
                                    ���������
                                    ��������������������G�����*·�*+¶�±�����������“��•�
                                      �–���������������� ����������Q�����*·�*+,¶�±�����������¢��¤�
                                      �¥���� ������������ ������!����������}�����+*+µ�"*,µ�$*»�&Y·�(µ�)*»�&Y·�(µ�++*´�)¹�-�±�����������²��³�
                                    ! �´��µ� �¶�*�·���� ����+�������+� �����+�!����3������D�����*´�"*´�+¹�-�*¶�4±�����������Â�
                                    �Ã��Ä��������������7������D�����*·�8*´�"*´�)¹�:�±�����������Ò��Ó��Ô��������������=������D�����*·�>*´�"*´�+¹�:�±�����������â��ã��ä��������������@�A�����/�����*´�$°�����������ð��������������6������¯�����Q*´�)¶�B¹�F�L§�:+¹�L�M*´�+,¶�R™�(*´�),¶�V*´�+,¶�V¶�Z™�+¹�_�*´�+,¶�bW+¹�d�šÿñ�������&�	���û�
                                    �ü��þ��ÿ�"�8�>�G�ü�P���� ����Q�����
                                    �D�h�i���0�j�k���l����m
                                    \ No newline at end of file
                                    --- 11,19 ----
                                      �&�S�T�U�containsKey�(Ljava/lang/Object;)Z
                                      �&�W�X�Y�get�&(Ljava/lang/Object;)Ljava/lang/Object;
                                      �[�]�\�java/lang/Object�^�U�equals�M�`�a��remove
                                    ! �&�c�a�Y�M�e�f�g�hasNext�()Z�i�Ljava/util/Iterator;�key�Ljava/lang/Object;�LocalVariableTypeTable�(Ljava/util/Iterator<Ljava/lang/Object;>;�
                                      SourceFile�StateEdit.java�!����������������
                                      ������
                                    ���������
                                    ��������������������G�����*·�*+¶�±�����������“��•�
                                      �–���������������� ����������Q�����*·�*+,¶�±�����������¢��¤�
                                      �¥���� ������������ ������!����������}�����+*+µ�"*,µ�$*»�&Y·�(µ�)*»�&Y·�(µ�++*´�)¹�-�±�����������²��³�
                                    ! �´��µ� �¶�*�·���� ����+�������+� �����+�!����3������D�����*´�"*´�+¹�-�*¶�4±�����������Â�
                                    �Ã��Ä��������������7������D�����*·�8*´�"*´�)¹�:�±�����������Ò��Ó��Ô��������������=������D�����*·�>*´�"*´�+¹�:�±�����������â��ã��ä��������������@�A�����/�����*´�$°�����������ð��������������6������Á�����Q*´�)¶�B¹�F�L§�:+¹�L�M*´�+,¶�R™�(*´�),¶�V*´�+,¶�V¶�Z™�+¹�_�*´�+,¶�bW+¹�d�šÿñ�������&�	���û�
                                    �ü��þ��ÿ�"�8�>�G�ü�P���� ����Q�����
                                    �D�h�i���0�j�k��l�����
                                    �D�h�m���n����o
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/swing/undo/UndoableEditSupport.class gcc-4.6.0/libjava/classpath/lib/javax/swing/undo/UndoableEditSupport.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/swing/undo/UndoableEditSupport.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/swing/undo/UndoableEditSupport.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1���$javax/swing/undo/UndoableEditSupport��java/lang/Object�updateLevel�I�compoundEdit�Ljavax/swing/undo/CompoundEdit;�	listeners�Ljava/util/Vector;�	Signature�<Ljava/util/Vector<Ljavax/swing/event/UndoableEditListener;>;�
                                      realSource�Ljava/lang/Object;�<init>�()V�Code
                                      ������java/util/Vector
                                      ��	���	�
                                    --- 1,4 ----
                                    ! Êþº¾���1�Ÿ��$javax/swing/undo/UndoableEditSupport��java/lang/Object�updateLevel�I�compoundEdit�Ljavax/swing/undo/CompoundEdit;�	listeners�Ljava/util/Vector;�	Signature�<Ljava/util/Vector<Ljavax/swing/event/UndoableEditListener;>;�
                                      realSource�Ljava/lang/Object;�<init>�()V�Code
                                      ������java/util/Vector
                                      ��	���	�
                                    *************** realSource�Ljava/lang/Object;�<init>
                                    *** 16,29 ****
                                      ��Y�Z�[�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�]�)[Ljavax/swing/event/UndoableEditListener;�result�	_postEdit�"(Ljavax/swing/undo/UndoableEdit;)V
                                      ��b�c�d�isEmpty�()Z�f�#javax/swing/event/UndoableEditEvent
                                      �e�h��i�4(Ljava/lang/Object;Ljavax/swing/undo/UndoableEdit;)V
                                    ! ��k�l�m�clone�()Ljava/lang/Object;
                                    ! ��o�p�q�iterator�()Ljava/util/Iterator;�s�u�t�java/util/Iterator�v�m�next�V�x�y�z�undoableEditHappened�((Ljavax/swing/event/UndoableEditEvent;)V�s�|�}�d�hasNext�edit�Ljavax/swing/undo/UndoableEdit;�event�%Ljavax/swing/event/UndoableEditEvent;�iter�Ljava/util/Iterator;�postEdit
                                    ! �†�ˆ�‡�javax/swing/undo/CompoundEdit�‰�Š�addEdit�"(Ljavax/swing/undo/UndoableEdit;)Z
                                    ! ��Œ�_�`�getUpdateLevel�beginUpdate
                                    ! ���‘�’�createCompoundEdit�!()Ljavax/swing/undo/CompoundEdit;
                                    ! �†��	endUpdate�–�java/lang/IllegalStateException
                                    ! �•�
                                    ! �†�™�š��end�
                                      SourceFile�UndoableEditSupport.java�!�����������������	�
                                      ��������
                                    ������������O�����*·�*»�Y·�µ�**µ�±�����������Y��H��I��[��\��������������������g�����*·�*»�Y·�µ�+Ç�*L*+µ�±�����������g��H��I��i��j��k��l����������������
                                    ���� �!�����h�����6»�"Y*·�$¸�&·�,/¶�1*´�5¶�7:¶�1*´�¶�<?¶�1*´�A¶�<¶�C°�����������x��y�2�x��������6�����!�D�E�����B�����
                                      *´�+¶�FW±�������
                                    --- 16,29 ----
                                      ��Y�Z�[�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�]�)[Ljavax/swing/event/UndoableEditListener;�result�	_postEdit�"(Ljavax/swing/undo/UndoableEdit;)V
                                      ��b�c�d�isEmpty�()Z�f�#javax/swing/event/UndoableEditEvent
                                      �e�h��i�4(Ljava/lang/Object;Ljavax/swing/undo/UndoableEdit;)V
                                    ! ��k��l�(Ljava/util/Collection;)V
                                    ! ��n�o�p�iterator�()Ljava/util/Iterator;�r�t�s�java/util/Iterator�u�v�next�()Ljava/lang/Object;�V�x�y�z�undoableEditHappened�((Ljavax/swing/event/UndoableEditEvent;)V�r�|�}�d�hasNext�edit�Ljavax/swing/undo/UndoableEdit;�event�%Ljavax/swing/event/UndoableEditEvent;�iter�Ljava/util/Iterator;�LocalVariableTypeTable�>Ljava/util/Iterator<Ljavax/swing/event/UndoableEditListener;>;�postEdit
                                    ! �ˆ�Š�‰�javax/swing/undo/CompoundEdit�‹�Œ�addEdit�"(Ljavax/swing/undo/UndoableEdit;)Z
                                    ! ��Ž�_�`�getUpdateLevel�beginUpdate
                                    ! ��’�“�”�createCompoundEdit�!()Ljavax/swing/undo/CompoundEdit;
                                    ! �ˆ��	endUpdate�˜�java/lang/IllegalStateException
                                    ! �—�
                                    ! �ˆ�›�œ��end�
                                      SourceFile�UndoableEditSupport.java�!�����������������	�
                                      ��������
                                    ������������O�����*·�*»�Y·�µ�**µ�±�����������Y��H��I��[��\��������������������g�����*·�*»�Y·�µ�+Ç�*L*+µ�±�����������g��H��I��i��j��k��l����������������
                                    ���� �!�����h�����6»�"Y*·�$¸�&·�,/¶�1*´�5¶�7:¶�1*´�¶�<?¶�1*´�A¶�<¶�C°�����������x��y�2�x��������6�����!�D�E�����B�����
                                      *´�+¶�FW±�������
                                    *************** SourceFile�UndoableEditSupport.java�!�
                                    *** 34,39 ****
                                      ����Ž�	���������
                                      �������
                                      �J�K��!�P�Q�����O�����*´�¶�R½�VL*´�+¶�XÀ�\°�������
                                    ! ����—��˜���������������^�]���_�`�����¦�����B*´�¶�a™�±»�eY*´�+·�gM*´�¶�jÀ�¶�nN§�-¹�r�À�V,¹�w�-¹�{�šÿë±�������"����­�
                                    ! �®��°��¸�&�¹�)�º�8�¹�A�»����*����B�������B�~����*�€���&��‚�ƒ��!�„�`�����Y�����*´�AÆ�*´�A+¶�…W§�*+¶�‹±�����������Ë��Ì��Î��Ï����������������~�����U�����/�����*´�5¬�����������×�������������!�Ž������P�����*´�AÇ�**¶�µ�A*Y´�5`µ�5±�����������æ��ç��è��é��������������‘�’�����2�����»�†Y·�“°�����������ö�������������!�”������y�����3*´�5š�»�•Y·�—¿*Y´�5dZµ�5ž�±*´�A¶�˜**´�A¶�‹*µ�A±�������"�����	�
                                    ! ��%
                                    �-�2��������3������›����œ
                                    \ No newline at end of file
                                    --- 34,39 ----
                                      ����Ž�	���������
                                      �������
                                      �J�K��!�P�Q�����O�����*´�¶�R½�VL*´�+¶�XÀ�\°�������
                                    ! ����—��˜���������������^�]���_�`�����¹�����C*´�¶�a™�±»�eY*´�+·�gM»�Y*´�·�j¶�mN§�-¹�q�À�V,¹�w�-¹�{�šÿë±�������"����­�
                                    ! �®��°��¸�'�¹�*�º�9�¹�B�»����*����C�������C�~����+�€���'��‚�ƒ��„�����'��‚�…��!�†�`�����Y�����*´�AÆ�*´�A+¶�‡W§�*+¶�±�����������Ë��Ì��Î��Ï����������������~�����U�����/�����*´�5¬�����������×�������������!�������P�����*´�AÇ�**¶�‘µ�A*Y´�5`µ�5±�����������æ��ç��è��é��������������“�”�����2�����»�ˆY·�•°�����������ö�������������!�–������y�����3*´�5š�»�—Y·�™¿*Y´�5dZµ�5ž�±*´�A¶�š**´�A¶�*µ�A±�������"�����	�
                                    ! ��%
                                    �-�2��������3����������ž
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class	Tue Oct 12 15:55:12 2010
                                    *************** serviceKey�r�Ljava/io/BufferedReader
                                    *** 32,39 ****
                                      SourceFile�XMLEventFactory.java!���������������3�����*·�±����
                                      ���
                                      ����E��G����������
                                    ���	�������������&������¸�°����
                                    ! �������P�������������������Q�����y+M,�
                                      ¸�¶�M,Ç�	¶� MN6,„¸�%N-Æ�@,Æ�,-¶�)§�-¸�/:¶�2À�°WN§�:»�Y»�5Y7·�9-¶�<¶�@·�D¿-Ç�	¡ÿ®»�GY·�I°��*�D�E�J�*�D�K�L��
                                    ! ���V����e��f��h�
                                    �j��l��n��o��r�&�s�*�w�6�x�:�w�<�y�E�{�F�}�K��M��S�‚�c��g�†�q�‡����H����y�N�O�����y�P�Q���w�R�Q���`�S�O���]�T�U��<�	�V�W��M��X�Y��Z�����<�	�V�[��
                                      �'�(����™�����«ª�����¨�������������!���k\¸�^°»�dYf¸�^·�hM»�dY,i·�kM»�dY,n·�kM»�pY,·�rN»�uY·�w:-¶�x-¶�|\¶�°W°‚M*Æ�*,¶�„§�	,¶�ˆN-Æ�$»�‰Y»�‹Y-·�·�:¶�’:¶�•°W°°��"�h�i�–�l�¥�¦�–��
                                    ! ���j�������"�”�/�•�:�–�E�—�N�˜�W�™�]�š�a�›�i��j�Ÿ�l�¤�o�¥�s�¦�{�§��¥�‚�¨�†�«�•�ª�—�¬�ž�­�£�®�¦�±�§�´�©�¶����\�	���«�R�Q�����«�˜�U��/�:�™�š��N��›�œ��W���ž��o�7�Ÿ�O��‚�$�›�œ��—�� �¡��ž��¢�O��£�¤���¥�¦���¥�§���¥�¨���©�ª���©�«���¬�­���¬�®���¬�¯���¬�°���±�²���±�³���±�´���µ�¶���·�¶���¸�¶���¹�¶���º�»���º�¼���º�½���º�¾���¿�À���Á�Â���Ã�Ä���Å�Æ���Ç�È����É����Ê
                                    \ No newline at end of file
                                    --- 32,39 ----
                                      SourceFile�XMLEventFactory.java!���������������3�����*·�±����
                                      ���
                                      ����E��G����������
                                    ���	�������������&������¸�°����
                                    ! �������P�������	������������Q�����y+M,�
                                      ¸�¶�M,Ç�	¶� MN6,„¸�%N-Æ�@,Æ�,-¶�)§�-¸�/:¶�2À�°WN§�:»�Y»�5Y7·�9-¶�<¶�@·�D¿-Ç�	¡ÿ®»�GY·�I°��*�D�E�J�*�D�K�L��
                                    ! ���V����k��l��n�
                                    �p��r��t��u��x�&�y�*�}�6�~�:�}�<��E��F�ƒ�K�…�M�‡�S�ˆ�c�‡�g�Œ�q�����H����y�N�O�����y�P�Q���w�R�Q���`�S�O���]�T�U��<�	�V�W��M��X�Y��Z�����<�	�V�[��
                                      �'�(����™�����«ª�����¨�������������!���k\¸�^°»�dYf¸�^·�hM»�dY,i·�kM»�dY,n·�kM»�pY,·�rN»�uY·�w:-¶�x-¶�|\¶�°W°‚M*Æ�*,¶�„§�	,¶�ˆN-Æ�$»�‰Y»�‹Y-·�·�:¶�’:¶�•°W°°��"�h�i�–�l�¥�¦�–��
                                    ! ���j����“��–�"�š�/�›�:�œ�E��N�ž�W�Ÿ�]� �a�¡�i�£�j�¥�l�ª�o�«�s�¬�{�­��«�‚�®�†�±�•�°�—�²�ž�³�£�´�¦�·�§�º�©�¼����\�	���«�R�Q�����«�˜�U��/�:�™�š��N��›�œ��W���ž��o�7�Ÿ�O��‚�$�›�œ��—�� �¡��ž��¢�O��£�¤���¥�¦���¥�§���¥�¨���©�ª���©�«���¬�­���¬�®���¬�¯���¬�°���±�²���±�³���±�´���µ�¶���·�¶���¸�¶���¹�¶���º�»���º�¼���º�½���º�¾���¿�À���Á�Â���Ã�Ä���Å�Æ���Ç�È����É����Ê
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class	Tue Oct 12 15:55:12 2010
                                    *************** serviceKey�r�Ljava/io/BufferedReader
                                    *** 32,37 ****
                                      SourceFile�XMLInputFactory.java!�����	�����������
                                      ���������
                                    ������������������������������������������������������������� ���"�#��$���3�����*·�%±����'���
                                      ����µ��·�(��������)�*���	�+�,��-�����.�$���&������¸�0°����'�������À�(������	�+�2��-�����.�$��Q�����y+M,Ç�
                                    ! ¸�3¶�9M,Ç�	¶�=MN6,„¸�BN-Æ�@,Æ�,-¶�F§�-¸�L:¶�OÀ�°WN§�:»�.Y»�RYT·�V-¶�Y¶�]·�a¿-Ç�	¡ÿ®»�dY·�f°��*�D�E�g�*�D�K�i��'���V����Ö��×��Ù�
                                    �Û��Ý��ß��à��ã�&�ä�*�è�6�é�:�è�<�ê�E�ì�F�î�K�ð�M�ò�S�ó�c�ò�g�÷�q�ø�(���H����y�k������y�l�m���w�n�m���`�o����]�p�q��<�	�r�s��M��t�u��v�����<�	�r�w��
                                    ! �D�E��$��™�����«ª�����¨�������������!���kx¸�z°»�€Y‚¸�z·�„M»�€Y,…·�‡M»�€Y,Š·�‡M»�ŒY,·�ŽN»�‘Y·�“:-¶�”-¶�˜x¶�°W°žM*Æ�*,¶� §�	,¶�¤N-Æ�$»�¥Y»�§Y-·�©·�«:¶�®:¶�±°W°°��"�h�i�²�l�¥�¦�²��'���j����þ��"�/�:�E�N	�W
                                    ! �]�a�i�j�l�o�s�{��‚�†�•�—�ž�£�¦"�§%�©'�(���\�	���«�n�m�����«�´�q��/�:�µ�¶��N��·�¸��W��¹�º��o�7�»���‚�$�·�¸��—��¼�½��ž��¾���¿�À��-�����Á�¿�Ã��-�����Á�¿�Ä��-�����Á�¿�Å��-�����Á�¿�Æ��-�����Á�¿�Ç��-�����Á�È�É��-�����Á�È�Ê��-�����Á�È�Ë��-�����Á�È�Ì��-�����Á�È�Í��-�����Á�È�Î��-�����Á�È�Ï��-�����Á�Ð�Ñ��-�����Á�Ð�Ò��-�����Á�Ó�Ô���Õ�Ö���×�Ø���Ù�Ú���Û�Ü��-�����Ý�~�ß��-�����Ý�à�á���â�ã���ä�å����æ����ç
                                    \ No newline at end of file
                                    --- 32,37 ----
                                      SourceFile�XMLInputFactory.java!�����	�����������
                                      ���������
                                    ������������������������������������������������������������� ���"�#��$���3�����*·�%±����'���
                                      ����µ��·�(��������)�*���	�+�,��-�����.�$���&������¸�0°����'�������À�(������	�+�2��-�����.�$��Q�����y+M,Ç�
                                    ! ¸�3¶�9M,Ç�	¶�=MN6,„¸�BN-Æ�@,Æ�,-¶�F§�-¸�L:¶�OÀ�°WN§�:»�.Y»�RYT·�V-¶�Y¶�]·�a¿-Ç�	¡ÿ®»�dY·�f°��*�D�E�g�*�D�K�i��'���V����Û��Ü��Þ�
                                    �à��â��ä��å��è�&�é�*�í�6�î�:�í�<�ï�E�ñ�F�ó�K�õ�M�÷�S�ø�c�÷�g�ü�q�ý�(���H����y�k������y�l�m���w�n�m���`�o����]�p�q��<�	�r�s��M��t�u��v�����<�	�r�w��
                                    ! �D�E��$��™�����«ª�����¨�������������!���kx¸�z°»�€Y‚¸�z·�„M»�€Y,…·�‡M»�€Y,Š·�‡M»�ŒY,·�ŽN»�‘Y·�“:-¶�”-¶�˜x¶�°W°žM*Æ�*,¶� §�	,¶�¤N-Æ�$»�¥Y»�§Y-·�©·�«:¶�®:¶�±°W°°��"�h�i�²�l�¥�¦�²��'���j�����"
                                    ! �/�:�E
                                    �N�W�]�a�i�j�l�o�s�{��‚�†!�• �—"�ž#�£$�¦'�§*�©,�(���\�	���«�n�m�����«�´�q��/�:�µ�¶��N��·�¸��W��¹�º��o�7�»���‚�$�·�¸��—��¼�½��ž��¾���¿�À��-�����Á�¿�Ã��-�����Á�¿�Ä��-�����Á�¿�Å��-�����Á�¿�Æ��-�����Á�¿�Ç��-�����Á�È�É��-�����Á�È�Ê��-�����Á�È�Ë��-�����Á�È�Ì��-�����Á�È�Í��-�����Á�È�Î��-�����Á�È�Ï��-�����Á�Ð�Ñ��-�����Á�Ð�Ò��-�����Á�Ó�Ô���Õ�Ö���×�Ø���Ù�Ú���Û�Ü��-�����Ý�~�ß��-�����Ý�à�á���â�ã���ä�å����æ����ç
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,42 ****
                                    ! Êþº¾���1�¾��!javax/xml/stream/XMLOutputFactory��java/lang/Object�IS_REPAIRING_NAMESPACES�Ljava/lang/String;�
                                    ConstantValue�	�&javax.xml.stream.isRepairingNamespaces�<init>�()V�Code
                                      ���
                                      ��LineNumberTable�LocalVariableTable�this�#Ljavax/xml/stream/XMLOutputFactory;�newInstance�%()Ljavax/xml/stream/XMLOutputFactory;�
                                      Exceptions��*javax/xml/stream/FactoryConfigurationError
                                    ! ����java/lang/Thread���
                                    currentThread�()Ljava/lang/Thread;
                                    ! ��� �!�getContextClassLoader�()Ljava/lang/ClassLoader;
                                    ! �#�%�$�java/lang/Class�&�!�getClassLoader
                                    ! ��(�)�*�getFactoryClassName�,(Ljava/lang/ClassLoader;I)Ljava/lang/String;
                                    ! �,�.�-�java/lang/ClassLoader�/�0�	loadClass�%(Ljava/lang/String;)Ljava/lang/Class;
                                    ! �#�2�3�0�forName
                                    ! �#�5��6�()Ljava/lang/Object;�8�java/lang/StringBuilder�:�error instantiating class 
                                    ! �7�<�
                                    ! �=�(Ljava/lang/String;)V
                                    ! �7�?�@�A�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �7�C�D�E�toString�()Ljava/lang/String;
                                    ! ��G�
                                    ! �H�*(Ljava/lang/Exception;Ljava/lang/String;)V�J�#gnu/xml/stream/XMLOutputFactoryImpl
                                    ! �I��M� java/lang/ClassNotFoundException�O�java/lang/Exception�loader�Ljava/lang/ClassLoader;�	className�count�I�t�Ljava/lang/Class;�e�Ljava/lang/Exception;�LocalVariableTypeTable�Ljava/lang/Class<*>;�\�!javax.xml.stream.XMLOutputFactory
                                    ! �^�`�_�java/lang/System�a�b�getProperty�&(Ljava/lang/String;)Ljava/lang/String;�d�java/io/File�f�	java.home
                                    ! �c�<�i�lib
                                    ! �c�k�
                                    ! �l�#(Ljava/io/File;Ljava/lang/String;)V�n�stax.properties�p�java/io/FileInputStream
                                    ! �o�r�
                                    ! �s�(Ljava/io/File;)V�u�java/util/Properties
                                    ! �t�
                                    ! �t�x�y�z�load�(Ljava/io/InputStream;)V
                                    ! �|�~�}�java/io/InputStream���close
                                    ! �t�`�‚�4/META-INF/services/javax.xml.stream.XMLOutputFactory
                                    ! �,�„�…�†�getResourceAsStream�)(Ljava/lang/String;)Ljava/io/InputStream;
                                    ! �#�„�‰�java/io/BufferedReader�‹�java/io/InputStreamReader
                                    ! �Š��
                                    ! �z
                                    ! �ˆ��
                                    ! ��(Ljava/io/Reader;)V
                                    ! �ˆ�’�“�E�readLine
                                    ! �ˆ�~�–�java/io/IOException�attempt�file�Ljava/io/File;�in�Ljava/io/InputStream;�props�Ljava/util/Properties;�
                                    ! serviceKey�r�Ljava/io/BufferedReader;�ret�M(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory;
                                    ! �¤�¦�¥� javax/xml/stream/XMLInputFactory��¢�	factoryId�classLoader�createXMLStreamWriter�4(Ljava/io/Writer;)Ljavax/xml/stream/XMLStreamWriter;�¬�#javax/xml/stream/XMLStreamException�:(Ljava/io/OutputStream;)Ljavax/xml/stream/XMLStreamWriter;�L(Ljava/io/OutputStream;Ljava/lang/String;)Ljavax/xml/stream/XMLStreamWriter;�@(Ljavax/xml/transform/Result;)Ljavax/xml/stream/XMLStreamWriter;�createXMLEventWriter�?(Ljavax/xml/transform/Result;)Ljavax/xml/stream/XMLEventWriter;�9(Ljava/io/OutputStream;)Ljavax/xml/stream/XMLEventWriter;�K(Ljava/io/OutputStream;Ljava/lang/String;)Ljavax/xml/stream/XMLEventWriter;�3(Ljava/io/Writer;)Ljavax/xml/stream/XMLEventWriter;�setProperty�'(Ljava/lang/String;Ljava/lang/Object;)V�¸�"java/lang/IllegalArgumentException�&(Ljava/lang/String;)Ljava/lang/Object;�isPropertySupported�(Ljava/lang/String;)Z�
                                      SourceFile�XMLOutputFactory.java!�����������������
                                      ������3�����*·�
                                    ±�������
                                    ! ����S��U�������������	������������(�����l¸�¶�K*Ç�	¶�"KL=*„¸�'L+Æ�<*Æ�*+¶�+§�+¸�1N-¶�4À�°WL§�N»�Y-»�7Y9·�;+¶�>¶�B·�F¿+Ç�¡ÿ´»�IY·�K°��"�:�;�L�"�:�A�N�����N����i��j��l��n��o��r��s�"�w�.�x�2�w�3�y�;�{�<�}�A��B��G�‚�W��[�†�d�‡����4���e�P�Q����Y�R����W�S�T��3��U�V��B��W�X��Y�����3��U�Z��
                                    ! �)�*����™�����«ª�����¨�������������!���k[¸�]°»�cYe¸�]·�gM»�cY,h·�jM»�cY,m·�jM»�oY,·�qN»�tY·�v:-¶�w-¶�{[¶�€°W°M*Æ�*,¶�ƒ§�	,¶�‡N-Æ�$»�ˆY»�ŠY-·�Œ·�Ž:¶�‘:¶�”°W°°��"�h�i�•�l�¥�¦�•�����j�������"�”�/�•�:�–�E�—�N�˜�W�™�]�š�a�›�i��j�Ÿ�l�¤�o�¥�s�¦�{�§��¥�‚�¨�†�«�•�ª�—�¬�ž�­�£�®�¦�±�§�´�©�¶����\�	���«�P�Q�����«�—�T��/�:�˜�™��N��š�›��W��œ���o�7�ž���‚�$�š�›��—��Ÿ� ��ž��¡���	��¢�����������:�����*+¸�£°�����������Ã���������§�������¨�Q��©�ª�������«�©�­�������«�©�®�������«�©�¯�������«�°�±�������«�°�²�������«�°�³�������«�°�´�������«�µ�¶�������·�a�¹�������·�º�»����¼����½
                                    \ No newline at end of file
                                    --- 1,43 ----
                                    ! Êþº¾���1�¼��!javax/xml/stream/XMLOutputFactory��java/lang/Object�IS_REPAIRING_NAMESPACES�Ljava/lang/String;�
                                    ConstantValue�	�&javax.xml.stream.isRepairingNamespaces�<init>�()V�Code
                                      ���
                                      ��LineNumberTable�LocalVariableTable�this�#Ljavax/xml/stream/XMLOutputFactory;�newInstance�%()Ljavax/xml/stream/XMLOutputFactory;�
                                      Exceptions��*javax/xml/stream/FactoryConfigurationError
                                    ! �����N(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLOutputFactory;
                                    ! ����java/lang/Thread�� �
                                    currentThread�()Ljava/lang/Thread;
                                    ! ��"�#�$�getContextClassLoader�()Ljava/lang/ClassLoader;
                                    ! �&�(�'�java/lang/Class�)�$�getClassLoader
                                    ! ��+�,�-�getFactoryClassName�,(Ljava/lang/ClassLoader;I)Ljava/lang/String;
                                    ! �/�1�0�java/lang/ClassLoader�2�3�	loadClass�%(Ljava/lang/String;)Ljava/lang/Class;
                                    ! �&�5�6�3�forName
                                    ! �&�8��9�()Ljava/lang/Object;�;�java/lang/StringBuilder�=�error instantiating class 
                                    ! �:�?�
                                    ! �@�(Ljava/lang/String;)V
                                    ! �:�B�C�D�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �:�F�G�H�toString�()Ljava/lang/String;
                                    ! ��J�
                                    ! �K�*(Ljava/lang/Exception;Ljava/lang/String;)V�M�#gnu/xml/stream/XMLOutputFactoryImpl
                                    ! �L��P� java/lang/ClassNotFoundException�R�java/lang/Exception�	factoryId�classLoader�Ljava/lang/ClassLoader;�	className�count�I�t�Ljava/lang/Class;�e�Ljava/lang/Exception;�LocalVariableTypeTable�Ljava/lang/Class<*>;�`�!javax.xml.stream.XMLOutputFactory
                                    ! �b�d�c�java/lang/System�e�f�getProperty�&(Ljava/lang/String;)Ljava/lang/String;�h�java/io/File�j�	java.home
                                    ! �g�?�m�lib
                                    ! �g�o�
                                    ! �p�#(Ljava/io/File;Ljava/lang/String;)V�r�stax.properties�t�java/io/FileInputStream
                                    ! �s�v�
                                    ! �w�(Ljava/io/File;)V�y�java/util/Properties
                                    ! �x�
                                    ! �x�|�}�~�load�(Ljava/io/InputStream;)V
                                    ! �€�‚��java/io/InputStream�ƒ��close
                                    ! �x�d�†�4/META-INF/services/javax.xml.stream.XMLOutputFactory
                                    ! �/�ˆ�‰�Š�getResourceAsStream�)(Ljava/lang/String;)Ljava/io/InputStream;
                                    ! �&�ˆ��java/io/BufferedReader��java/io/InputStreamReader
                                    ! �Ž�‘�
                                    ! �~
                                    ! �Œ�“�
                                    ! �”�(Ljava/io/Reader;)V
                                    ! �Œ�–�—�H�readLine
                                    ! �Œ�‚�š�java/io/IOException�loader�attempt�file�Ljava/io/File;�in�Ljava/io/InputStream;�props�Ljava/util/Properties;�
                                    ! serviceKey�r�Ljava/io/BufferedReader;�ret�createXMLStreamWriter�4(Ljava/io/Writer;)Ljavax/xml/stream/XMLStreamWriter;�ª�#javax/xml/stream/XMLStreamException�:(Ljava/io/OutputStream;)Ljavax/xml/stream/XMLStreamWriter;�L(Ljava/io/OutputStream;Ljava/lang/String;)Ljavax/xml/stream/XMLStreamWriter;�@(Ljavax/xml/transform/Result;)Ljavax/xml/stream/XMLStreamWriter;�createXMLEventWriter�?(Ljavax/xml/transform/Result;)Ljavax/xml/stream/XMLEventWriter;�9(Ljava/io/OutputStream;)Ljavax/xml/stream/XMLEventWriter;�K(Ljava/io/OutputStream;Ljava/lang/String;)Ljavax/xml/stream/XMLEventWriter;�3(Ljava/io/Writer;)Ljavax/xml/stream/XMLEventWriter;�setProperty�'(Ljava/lang/String;Ljava/lang/Object;)V�¶�"java/lang/IllegalArgumentException�&(Ljava/lang/String;)Ljava/lang/Object;�isPropertySupported�(Ljava/lang/String;)Z�
                                      SourceFile�XMLOutputFactory.java!�����������������
                                      ������3�����*·�
                                    ±�������
                                    ! ����S��U�������������	�������������&������¸�°�����������^�������	������������B�����t+Ç�
                                    ! ¸�¶�!L+Ç�	¶�%LM>+„¸�*M,Æ�@+Æ�+,¶�.§�,¸�4:¶�7À�°WM§�:»�Y»�:Y<·�>,¶�A¶�E·�I¿,Ç�¡ÿ°»�LY·�N°��&�@�A�O�&�@�G�Q�����V����y��{��}������‚��…�"�†�&�Š�*�‹�2�Œ�6�Š�8��A��B�‘�G�“�I�•�O�–�_�•�c�š�l�›����>����t�S������t�T�U���]�V����[�W�X��8�	�Y�Z��I��[�\��]�����8�	�Y�^��
                                    ! �,�-����™�����«ª�����¨�������������!���k_¸�a°»�gYi¸�a·�kM»�gY,l·�nM»�gY,q·�nM»�sY,·�uN»�xY·�z:-¶�{-¶�_¶�„°W°…M*Æ�*,¶�‡§�	,¶�‹N-Æ�$»�ŒY»�ŽY-·�·�’:¶�•:¶�˜°W°°��"�h�i�™�l�¥�¦�™�����j����¡��¤�"�¨�/�©�:�ª�E�«�N�¬�W�­�]�®�a�¯�i�±�j�³�l�¸�o�¹�s�º�{�»��¹�‚�¼�†�¿�•�¾�—�À�ž�Á�£�Â�¦�Å�§�È�©�Ê����\�	���«�›�U�����«�œ�X��/�:��ž��N��Ÿ� ��W��¡�¢��o�7�£���‚�$�Ÿ� ��—��¤�¥��ž��¦���§�¨�������©�§�«�������©�§�¬�������©�§�­�������©�®�¯�������©�®�°�������©�®�±�������©�®�²�������©�³�´�������µ�e�·�������µ�¸�¹����º����»
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/events/Namespace.class gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/events/Namespace.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/events/Namespace.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/events/Namespace.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,3 ****
                                    ! Êþº¾���1���!javax/xml/stream/events/Namespace��java/lang/Object�� javax/xml/stream/events/XMLEvent�	getPrefix�()Ljava/lang/String;�getNamespaceURI�isDefaultNamespaceDeclaration�()Z�
                                      SourceFile�Namespace.java������������	����
                                      ���������
                                    \ No newline at end of file
                                    --- 1,3 ----
                                    ! Êþº¾���1���!javax/xml/stream/events/Namespace��java/lang/Object��!javax/xml/stream/events/Attribute�	getPrefix�()Ljava/lang/String;�getNamespaceURI�isDefaultNamespaceDeclaration�()Z�
                                      SourceFile�Namespace.java������������	����
                                      ���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/util/StreamReaderDelegate.class gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/util/StreamReaderDelegate.class
                                    *** gcc-4.5.2/libjava/classpath/lib/javax/xml/stream/util/StreamReaderDelegate.class	Thu Jan  1 00:00:00 1970
                                    --- gcc-4.6.0/libjava/classpath/lib/javax/xml/stream/util/StreamReaderDelegate.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 0 ****
                                    --- 1,16 ----
                                    + Êþº¾���1�Ä��*javax/xml/stream/util/StreamReaderDelegate��java/lang/Object�� javax/xml/stream/XMLStreamReader��#javax/xml/stream/XMLStreamConstants�parent�"Ljavax/xml/stream/XMLStreamReader;�<init>�()V�Code
                                    + �����LineNumberTable�LocalVariableTable�this�,Ljavax/xml/stream/util/StreamReaderDelegate;�%(Ljavax/xml/stream/XMLStreamReader;)V	���	�
                                    + �reader�	setParent�	getParent�$()Ljavax/xml/stream/XMLStreamReader;�next�()I�
                                    + Exceptions��#javax/xml/stream/XMLStreamException��!��
                                    + ���nextTag��%�#��getElementText�()Ljava/lang/String;��)�&�'�require�((ILjava/lang/String;Ljava/lang/String;)V��-�*�+�type�I�namespaceURI�Ljava/lang/String;�	localName�hasNext�()Z��6�3�4�close��9�7��getNamespaceURI�&(Ljava/lang/String;)Ljava/lang/String;��=�:�;�prefix�getNamespaceContext�(()Ljavax/xml/namespace/NamespaceContext;��B�?�@�isStartElement��E�C�4�isEndElement��H�F�4�isCharacters��K�I�4�isWhiteSpace��N�L�4�getAttributeValue�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;��R�O�P�namespaceUri�getAttributeCount��V�T��getAttributeName�(I)Ljavax/xml/namespace/QName;��Z�W�X�index�getAttributePrefix�(I)Ljava/lang/String;��_�\�]�getAttributeNamespace��b�`�]�getAttributeLocalName��e�c�]�getAttributeType��h�f�]��j�O�]�isAttributeSpecified�(I)Z��n�k�l�getNamespaceCount��q�o��getNamespacePrefix��t�r�]��v�:�]�getEventType��y�w��getText��|�z�'�getTextCharacters�(I[CII)I��€�}�~�sourceStart�target�[C�targetStart�length�()[C��ˆ�}�†�getTextStart��‹�‰��
                                    getTextLength��Ž�Œ��getEncoding��‘��'�hasText��”�’�4�getLocation�()Ljavax/xml/stream/Location;��˜�•�–�getName�()Ljavax/xml/namespace/QName;��œ�™�š�getLocalName��Ÿ��'�hasName��¢� �4��¤�:�'�	getPrefix��§�¥�'�
                                    + getVersion��ª�¨�'�isStandalone��­�«�4�
                                    standaloneSet��°�®�4�getCharacterEncodingScheme��³�±�'�getPITarget��¶�´�'�	getPIData��¹�·�'�getProperty�&(Ljava/lang/String;)Ljava/lang/Object;��½�º�»�¿�"java/lang/IllegalArgumentException
                                    + �¾��name�
                                    + SourceFile�StreamReaderDelegate.java�!��������	�
                                    + ���1�����
                                    ���3�����*·�±�������
                                    + ����;��=�����������������
                                    ���F�����
                                    + *·�*+µ�±�����������B��D�	�E��������
                                    + �������
                                    + ��
                                    + ������
                                    ���>�����*+µ�±�������
                                    + ����L��M�����������������
                                    + ������
                                    ���/�����*´�°�����������T�����������������������
                                    ���K�����*´�Æ�
                                    *´�¹� �¬»�Y·�"¿�����������Z��[��\��������������#���������
                                    ���K�����*´�Æ�
                                    *´�¹�$�¬»�Y·�"¿�����������b��c��d��������������&�'��������
                                    ���K�����*´�Æ�
                                    *´�¹�(�°»�Y·�"¿�����������j��k��l��������������*�+��������
                                    ���d�����*´�Æ�*´�,-¹�,�±�����������r��s��t����*������������.�/�����0�1�����2�1���3�4��������
                                    ���E�����*´�Æ�
                                    *´�¹�5�¬¬�����������y��z��{��������������7���������
                                    ���C�����*´�Æ�*´�¹�8�±�������������‚��ƒ��������������:�;��
                                    ���P�����*´�Æ�*´�+¹�<�°°�����������‡��ˆ��‰����������������>�1���?�@��
                                    ���E�����*´�Æ�
                                    *´�¹�A�°°�����������Ž������������������C�4��
                                    ���E�����*´�Æ�
                                    *´�¹�D�¬¬�����������•��–��—��������������F�4��
                                    ���E�����*´�Æ�
                                    *´�¹�G�¬¬�����������œ����ž��������������I�4��
                                    ���E�����*´�Æ�
                                    *´�¹�J�¬¬�����������£��¤��¥��������������L�4��
                                    ���E�����*´�Æ�
                                    *´�¹�M�¬¬�����������ª��«��¬��������������O�P��
                                    ���[�����*´�Æ�*´�+,¹�Q�°°�����������±��²��³���� ������������S�1�����2�1���T���
                                    ���E�����*´�Æ�
                                    *´�¹�U�¬¬�����������¸��¹��º��������������W�X��
                                    ���P�����*´�Æ�*´�¹�Y�°°�����������¿��À��Á����������������[�/���\�]��
                                    ���P�����*´�Æ�*´�¹�^�°°�����������Æ��Ç��È����������������[�/���`�]��
                                    ���P�����*´�Æ�*´�¹�a�°°�����������Í��Î��Ï����������������[�/���c�]��
                                    ���P�����*´�Æ�*´�¹�d�°°�����������Ô��Õ��Ö����������������[�/���f�]��
                                    ���P�����*´�Æ�*´�¹�g�°°�����������Û��Ü��Ý����������������[�/���O�]��
                                    ���P�����*´�Æ�*´�¹�i�°°�����������â��ã��ä����������������[�/���k�l��
                                    ���P�����*´�Æ�*´�¹�m�¬¬�����������é��ê��ë����������������[�/���o���
                                    ���E�����*´�Æ�
                                    *´�¹�p�¬¬�����������ð��ñ��ò��������������r�]��
                                    ���P�����*´�Æ�*´�¹�s�°°�����������÷��ø��ù����������������[�/���:�]��
                                    ���P�����*´�Æ�*´�¹�u�°°�����������þ��ÿ������������������[�/���w���
                                    ���E�����*´�Æ�
                                    *´�¹�x�¬¬��������������������������z�'��
                                    ���E�����*´�Æ�
                                    *´�¹�{�°°�����������
                                    ���������������}�~��������
                                    ���r�����*´�Æ�*´�,¹��¬¬����������������4�������������/�����‚�ƒ�����„�/�����…�/���}�†��
                                    ���E�����*´�Æ�
                                    *´�¹�‡�°°��������������������������‰���
                                    ���E�����*´�Æ�
                                    *´�¹�Š�¬¬����������#�$�%��������������Œ���
                                    ���E�����*´�Æ�
                                    *´�¹��¬¬����������*�+�,���������������'��
                                    ���E�����*´�Æ�
                                    *´�¹��°°����������1�2�3��������������’�4��
                                    ���E�����*´�Æ�
                                    *´�¹�“�¬¬����������8�9�:��������������•�–��
                                    ���E�����*´�Æ�
                                    *´�¹�—�°°����������?�@�A��������������™�š��
                                    ���E�����*´�Æ�
                                    *´�¹�›�°°����������F�G�H���������������'��
                                    ���E�����*´�Æ�
                                    *´�¹�ž�°°����������M�N�O�������������� �4��
                                    ���E�����*´�Æ�
                                    *´�¹�¡�¬¬����������T�U�V��������������:�'��
                                    ���E�����*´�Æ�
                                    *´�¹�£�°°����������[�\�]��������������¥�'��
                                    ���E�����*´�Æ�
                                    *´�¹�¦�°°����������b�c�d��������������¨�'��
                                    ���E�����*´�Æ�
                                    *´�¹�©�°°����������i�j�k��������������«�4��
                                    ���E�����*´�Æ�
                                    *´�¹�¬�¬¬����������p�q�r��������������®�4��
                                    ���E�����*´�Æ�
                                    *´�¹�¯�¬¬����������w�x�y��������������±�'��
                                    ���E�����*´�Æ�
                                    *´�¹�²�°°����������~��€��������������´�'��
                                    ���E�����*´�Æ�
                                    *´�¹�µ�°°����������…�†�‡��������������·�'��
                                    ���E�����*´�Æ�
                                    *´�¹�¸�°°����������Œ��Ž��������������º�»��
                                    ���V�����*´�Æ�*´�+¹�¼�°»�¾Y·�À¿����������“�”�•����������������Á�1���Â����Ã
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/ietf/jgss/GSSManager.class gcc-4.6.0/libjava/classpath/lib/org/ietf/jgss/GSSManager.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/ietf/jgss/GSSManager.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/ietf/jgss/GSSManager.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�Z��org/ietf/jgss/GSSManager��java/lang/Object�<init>�()V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�Lorg/ietf/jgss/GSSManager;�getInstance�()Lorg/ietf/jgss/GSSManager;��org.ietf.jgss.GSSManager
                                      ����java/security/Security���getProperty�&(Ljava/lang/String;)Ljava/lang/String;�� gnu.crypto.gssapi.GSSManagerImpl
                                      ����java/lang/Class���getClassLoader�()Ljava/lang/ClassLoader;
                                    --- 1,4 ----
                                    ! Êþº¾���1�\��org/ietf/jgss/GSSManager��java/lang/Object�<init>�()V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�Lorg/ietf/jgss/GSSManager;�getInstance�()Lorg/ietf/jgss/GSSManager;��org.ietf.jgss.GSSManager
                                      ����java/security/Security���getProperty�&(Ljava/lang/String;)Ljava/lang/String;�� gnu.crypto.gssapi.GSSManagerImpl
                                      ����java/lang/Class���getClassLoader�()Ljava/lang/ClassLoader;
                                    ***************
                                    *** 6,17 ****
                                      �!�&�'�(�	loadClass�%(Ljava/lang/String;)Ljava/lang/Class;
                                      ��*�+�,�newInstance�()Ljava/lang/Object;�.�java/lang/RuntimeException
                                      �0�2�1�java/lang/Exception�3�4�toString�()Ljava/lang/String;
                                    ! �-�6��7�(Ljava/lang/String;)V�impl�Ljava/lang/String;�loader�Ljava/lang/ClassLoader;�c�Ljava/lang/Class;�x�Ljava/lang/Exception;�addProviderAtEnd�.(Ljava/security/Provider;Lorg/ietf/jgss/Oid;)V�
                                    ! Exceptions�D�org/ietf/jgss/GSSException�addProviderAtFront�
                                    createContext�([B)Lorg/ietf/jgss/GSSContext;�9(Lorg/ietf/jgss/GSSCredential;)Lorg/ietf/jgss/GSSContext;�d(Lorg/ietf/jgss/GSSName;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/GSSCredential;I)Lorg/ietf/jgss/GSSContext;�createCredential� (I)Lorg/ietf/jgss/GSSCredential;�K(Lorg/ietf/jgss/GSSName;ILorg/ietf/jgss/Oid;I)Lorg/ietf/jgss/GSSCredential;�L(Lorg/ietf/jgss/GSSName;I[Lorg/ietf/jgss/Oid;I)Lorg/ietf/jgss/GSSCredential;�
                                      createName�.([BLorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;�A([BLorg/ietf/jgss/Oid;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;�>(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;�Q(Ljava/lang/String;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;�getMechs�()[Lorg/ietf/jgss/Oid;�getMechsForName�)(Lorg/ietf/jgss/Oid;)[Lorg/ietf/jgss/Oid;�getNamesForMech�
                                      SourceFile�GSSManager.java!���������������3�����*·�±����
                                      ���
                                    ! ����¡��£����������
                                    ���)�������ª�����6¸�K*Ç�K¶�L+Ç�¸� L+*¶�%M,¶�)À�°L»�-Y+¶�/·�5¿��
                                    �(�)�0��
                                      ���*�
                                      ���¯��°�
                                    ! �±�
                                    �´��µ��¶��·�!�¸�)�º�*�¼����*���0�8�9�����:�;��!��<�=��*��>�?��@�A��B�����C�E�A��B�����C�F�G��B�����C�F�H��B�����C�F�I��B�����C�J�K��B�����C�J�L��B�����C�J�M��B�����C�N�O��B�����C�N�P��B�����C�N�Q��B�����C�N�R��B�����C�S�T���U�V���W�V��B�����C��X����Y
                                    \ No newline at end of file
                                    --- 6,17 ----
                                      �!�&�'�(�	loadClass�%(Ljava/lang/String;)Ljava/lang/Class;
                                      ��*�+�,�newInstance�()Ljava/lang/Object;�.�java/lang/RuntimeException
                                      �0�2�1�java/lang/Exception�3�4�toString�()Ljava/lang/String;
                                    ! �-�6��7�(Ljava/lang/String;)V�impl�Ljava/lang/String;�loader�Ljava/lang/ClassLoader;�c�Ljava/lang/Class;�x�Ljava/lang/Exception;�LocalVariableTypeTable�Ljava/lang/Class<*>;�addProviderAtEnd�.(Ljava/security/Provider;Lorg/ietf/jgss/Oid;)V�
                                    ! Exceptions�F�org/ietf/jgss/GSSException�addProviderAtFront�
                                    createContext�([B)Lorg/ietf/jgss/GSSContext;�9(Lorg/ietf/jgss/GSSCredential;)Lorg/ietf/jgss/GSSContext;�d(Lorg/ietf/jgss/GSSName;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/GSSCredential;I)Lorg/ietf/jgss/GSSContext;�createCredential� (I)Lorg/ietf/jgss/GSSCredential;�K(Lorg/ietf/jgss/GSSName;ILorg/ietf/jgss/Oid;I)Lorg/ietf/jgss/GSSCredential;�L(Lorg/ietf/jgss/GSSName;I[Lorg/ietf/jgss/Oid;I)Lorg/ietf/jgss/GSSCredential;�
                                      createName�.([BLorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;�A([BLorg/ietf/jgss/Oid;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;�>(Ljava/lang/String;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;�Q(Ljava/lang/String;Lorg/ietf/jgss/Oid;Lorg/ietf/jgss/Oid;)Lorg/ietf/jgss/GSSName;�getMechs�()[Lorg/ietf/jgss/Oid;�getMechsForName�)(Lorg/ietf/jgss/Oid;)[Lorg/ietf/jgss/Oid;�getNamesForMech�
                                      SourceFile�GSSManager.java!���������������3�����*·�±����
                                      ���
                                    ! ����¡��£����������
                                    ���)�������¼�����6¸�K*Ç�K¶�L+Ç�¸� L+*¶�%M,¶�)À�°L»�-Y+¶�/·�5¿��
                                    �(�)�0��
                                      ���*�
                                      ���¯��°�
                                    ! �±�
                                    �´��µ��¶��·�!�¸�)�º�*�¼����*���0�8�9�����:�;��!��<�=��*��>�?��@�����!��<�A��B�C��D�����E�G�C��D�����E�H�I��D�����E�H�J��D�����E�H�K��D�����E�L�M��D�����E�L�N��D�����E�L�O��D�����E�P�Q��D�����E�P�R��D�����E�P�S��D�����E�P�T��D�����E�U�V���W�X���Y�X��D�����E��Z����[
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA/LocalObject.class gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA/LocalObject.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA/LocalObject.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA/LocalObject.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�LocalObject.java�!�����
                                    *** 62,90 ****
                                      �S�T����
                                      �U�V���W�X�����H�����
                                      »�Y
                                    ! ·�¿�������������� ����
                                      �������
                                      ������
                                    ! �Y�Z���[�\�����5������±���������� ����������������]�^���_�`��0�����a�c����>�����
                                      »�Y
                                    ! ·�¿����������-��������
                                      �������
                                      �e�f���g�M�����4�����
                                      »�Y
                                    ! ·�¿����������<��������
                                      ������h�i�����4�����
                                      »�Y
                                    ! ·�¿����������H��������
                                      ������j�k�����>�����
                                      »�Y
                                    ! ·�¿����������S��������
                                      �������
                                      �l�m���O�n�����H�����
                                      »�Y
                                    ! ·�¿����������^���� ����
                                      �������
                                      ������
                                      �o�p���q�M�����4�����
                                      »�Y
                                    ! ·�¿����������i��������
                                      ������r����s
                                    \ No newline at end of file
                                    --- 62,90 ----
                                      �S�T����
                                      �U�V���W�X�����H�����
                                      »�Y
                                    ! ·�¿�������������� ����
                                      �������
                                      ������
                                    ! �Y�Z���[�\�����5������±����������!����������������]�^���_�`��0�����a�c����>�����
                                      »�Y
                                    ! ·�¿����������.��������
                                      �������
                                      �e�f���g�M�����4�����
                                      »�Y
                                    ! ·�¿����������=��������
                                      ������h�i�����4�����
                                      »�Y
                                    ! ·�¿����������I��������
                                      ������j�k�����>�����
                                      »�Y
                                    ! ·�¿����������T��������
                                      �������
                                      �l�m���O�n�����H�����
                                      »�Y
                                    ! ·�¿����������_���� ����
                                      �������
                                      ������
                                      �o�p���q�M�����4�����
                                      »�Y
                                    ! ·�¿����������j��������
                                      ������r����s
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�
                                    Delegate.java!�������
                                    *** 32,40 ****
                                      �������
                                      �� ����
                                      �O�����
                                    ! �P�Q���R�S�����?������±����������j���� ������������1� �����T�U���V�W�����J�����°��������������*������������1� �����O������X�Y���Z�[�����R�����
                                    ! »�Y·�¿����������•����*����
                                      �������
                                      �� ����
                                      �\�]����
                                    ! �^�_���`�a�����Ö�����\+Á�b™�P+À�bM»�dY,¶�f¶�j·�pN-q¶�sW6§�-,¶�w2¶�sW-{¶�sW„,¶�w¾¡ÿã-}¶�sW-¶�°+¶�f¶�j°�������.���£�¥�¦�§�"¨�(ª�4«�;¨�H­�O®�T±����4����\�������\�1� ���H��‚���9�ƒ�„��%�#�…�(���†����‡
                                    \ No newline at end of file
                                    --- 32,40 ----
                                      �������
                                      �� ����
                                      �O�����
                                    ! �P�Q���R�S�����?������±����������j���� ������������1� �����T�U���V�W�����J�����°����������€����*������������1� �����O������X�Y���Z�[�����R�����
                                    ! »�Y·�¿����������–����*����
                                      �������
                                      �� ����
                                      �\�]����
                                    ! �^�_���`�a�����Ö�����\+Á�b™�P+À�bM»�dY,¶�f¶�j·�pN-q¶�sW6§�-,¶�w2¶�sW-{¶�sW„,¶�w¾¡ÿã-}¶�sW-¶�°+¶�f¶�j°�������.���¤�¦�§�¨�"©�(«�4¬�;©�H®�O¯�T²����4����\�������\�1� ���H��‚���9�ƒ�„��%�#�…�(���†����‡
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA/portable/InputStream.class gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA/portable/InputStream.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA/portable/InputStream.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA/portable/InputStream.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�InputStream.java!�������
                                    *** 14,19 ****
                                      �������B����������
                                    ����������2�����»�Y·�¿����
                                      �������M����������
                                    ������������������������ ���!�"���#�$���%�&���'�(���)�*���+�,���-� ���.�/����0� ��1�����2����2�����»�Y·�¿����
                                      �������¦����������
                                    ���4�5���6�7���8�9���:�;���<�=���>�/���?�@���A�"���B�$���C�*���D�,�����E�����<�����»�Y·�¿����
                                    ! ���������������
                                    ������F�G��H�I����J�K�����2�����»�Y·�¿����
                                    ! ����������������
                                    ���L����M�;���N�@����O�P��Q��������2�����»�Y·�¿����
                                    ! ����������������
                                    ����R����S
                                    \ No newline at end of file
                                    --- 14,19 ----
                                      �������B����������
                                    ����������2�����»�Y·�¿����
                                      �������M����������
                                    ������������������������ ���!�"���#�$���%�&���'�(���)�*���+�,���-� ���.�/����0� ��1�����2����2�����»�Y·�¿����
                                      �������¦����������
                                    ���4�5���6�7���8�9���:�;���<�=���>�/���?�@���A�"���B�$���C�*���D�,�����E�����<�����»�Y·�¿����
                                    ! ���������������
                                    ������F�G��H�I����J�K�����2�����»�Y·�¿����
                                    ! ����������������
                                    ���L����M�;���N�@����O�P��Q��������2�����»�Y·�¿����
                                    ! ����������������
                                    ����R����S
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA/portable/ObjectImpl.class gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA/portable/ObjectImpl.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA/portable/ObjectImpl.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA/portable/ObjectImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�ObjectImpl.java!�����
                                    *** 51,55 ****
                                      *´�*+¶�–±�������
                                      ���G�	H��������
                                      �������
                                    ! �š�›���œ������I�����*´�*+,¶�ž°����������Z���� ������������������¢�£���¤�¥�����>�����*+µ�±�������
                                    ! ���e�f����������������¦����§�¨�����I�����*´�*+,¶�©°����������u���� ������������­�®�����¯�°���±�²�����V�����*´�Ç�*+¦�¬¬*´�*+¶�³¬�����������‚�„����������������i�¶���·�¸�����3�����	*´�*¶�¹°����������Ž��������	������¼����½
                                    \ No newline at end of file
                                    --- 51,55 ----
                                      *´�*+¶�–±�������
                                      ���G�	H��������
                                      �������
                                    ! �š�›���œ������I�����*´�*+,¶�ž°����������[���� ������������������¢�£���¤�¥�����>�����*+µ�±�������
                                    ! ���f�g����������������¦����§�¨�����I�����*´�*+,¶�©°����������v���� ������������­�®�����¯�°���±�²�����V�����*´�Ç�*+¦�¬¬*´�*+¶�³¬����������‚�ƒ�…����������������i�¶���·�¸�����3�����	*´�*¶�¹°������������������	������¼����½
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA_2_3/portable/InputStream.class gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA_2_3/portable/InputStream.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA_2_3/portable/InputStream.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA_2_3/portable/InputStream.class	Tue Oct 12 15:55:12 2010
                                    *************** read_value�()Ljava/io/Serializable;�
                                    *** 14,25 ****
                                      SourceFile�InputStream.java!���������������/�����*·�±����
                                      �������A����������
                                    ����������S�����*¶�<™�*¶�°*¶�°����
                                      �������Q��S�	�T��V����������
                                    ���������������_�����*¶�=™�	*+¶�°*+¶�"°����
                                    ! �������h��j�	�k��m���� ������
                                    ������%�&����'����������/�����*¸�(°����
                                    ! �������„����������
                                    �����!�����:�����*+¸�.°����
                                    ! �������˜����������
                                    ������%�&����1�����>�����
                                      *+¸�2À�5°����
                                    ! �������­��������
                                      ��
                                    �����
                                      �7�8����9�����:�����*+¸�:°����
                                    ! �������Á����������
                                    ������=�>����?�����:�����*+¸�@°����
                                    ! �����������������
                                    ������C�D���E����F
                                    \ No newline at end of file
                                    --- 14,25 ----
                                      SourceFile�InputStream.java!���������������/�����*·�±����
                                      �������A����������
                                    ����������S�����*¶�<™�*¶�°*¶�°����
                                      �������Q��S�	�T��V����������
                                    ���������������_�����*¶�=™�	*+¶�°*+¶�"°����
                                    ! �������i��k�	�l��n���� ������
                                    ������%�&����'����������/�����*¸�(°����
                                    ! �������…����������
                                    �����!�����:�����*+¸�.°����
                                    ! �������š����������
                                    ������%�&����1�����>�����
                                      *+¸�2À�5°����
                                    ! �������¯��������
                                      ��
                                    �����
                                      �7�8����9�����:�����*+¸�:°����
                                    ! �����������������
                                    ������=�>����?�����:�����*+¸�@°����
                                    ! �����������������
                                    ������C�D���E����F
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA_2_3/portable/OutputStream.class gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA_2_3/portable/OutputStream.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/CORBA_2_3/portable/OutputStream.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/CORBA_2_3/portable/OutputStream.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�OutputStream.java!������
                                    *** 15,20 ****
                                      ���
                                      ����z��{���� ������
                                    ������,�-�����2�3��� �4�����I�����*+,¸�5±����
                                      ���
                                    ! ������Ž���� ������
                                    ������,�-�����8�9��� �:�����I�����*+,¸�;±����
                                      ���
                                    ! ����ž��Ÿ���� ������
                                    ������,�-�����>�?���@����A
                                    \ No newline at end of file
                                    --- 15,20 ----
                                      ���
                                      ����z��{���� ������
                                    ������,�-�����2�3��� �4�����I�����*+,¸�5±����
                                      ���
                                    ! ����Ž������ ������
                                    ������,�-�����8�9��� �:�����I�����*+,¸�;±����
                                      ���
                                    ! ����Ÿ�� ���� ������
                                    ������,�-�����>�?���@����A
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyFactoryStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyFactoryStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyFactoryStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyFactoryStub.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 4,9 ****
                                      Exceptions�2�<org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode�4�org/omg/CORBA/MARSHAL
                                      �3�6��7�(Ljava/lang/String;)VGC�	�3�:�;�<�minor�I�_0�Lorg/omg/CORBA/Any;�m�Lorg/omg/CORBA/MARSHAL;�create_dyn_any_from_type_code�5(Lorg/omg/CORBA/TypeCode;)Lorg/omg/DynamicAny/DynAny;�Lorg/omg/CORBA/TypeCode;�
                                      SourceFile�_DynAnyFactoryStub.java�!��������	�
                                    ! �������������������������7������³�³�±�����������G��u��t�
                                      �;��������������3�����*·� ±�������
                                    ! ����L��N���������"�#����$�%�����5�����½�&Y¸�(S°�����������U���������"�#����.�/��0�����1����Y�����»�3Y²�·�5M,8µ�9,¿�����������a��b��c���� �����"�#������=�>����?�@���A�B��0�����1����Y�����»�3Y²�·�5M,8µ�9,¿�����������o��p��q���� �����"�#������=�C����?�@���D����E
                                    \ No newline at end of file
                                    --- 4,9 ----
                                      Exceptions�2�<org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode�4�org/omg/CORBA/MARSHAL
                                      �3�6��7�(Ljava/lang/String;)VGC�	�3�:�;�<�minor�I�_0�Lorg/omg/CORBA/Any;�m�Lorg/omg/CORBA/MARSHAL;�create_dyn_any_from_type_code�5(Lorg/omg/CORBA/TypeCode;)Lorg/omg/DynamicAny/DynAny;�Lorg/omg/CORBA/TypeCode;�
                                      SourceFile�_DynAnyFactoryStub.java�!��������	�
                                    ! �������������������������7������³�³�±�����������H��v��u�
                                      �;��������������3�����*·� ±�������
                                    ! ����M��O���������"�#����$�%�����5�����½�&Y¸�(S°�����������V���������"�#����.�/��0�����1����Y�����»�3Y²�·�5M,8µ�9,¿�����������b��c��d���� �����"�#������=�>����?�@���A�B��0�����1����Y�����»�3Y²�·�5M,8µ�9,¿�����������p��q��r���� �����"�#������=�C����?�@���D����E
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyStub.class	Tue Oct 12 15:55:12 2010
                                    *************** get_ushort�get_val�()Ljava/io/Serial
                                    *** 9,16 ****
                                      insert_any�insert_boolean�(Z)V�Z�insert_char�(C)V�C�
                                    insert_double�(D)V�D�insert_dyn_any�insert_float�(F)V�F�insert_long�(I)V�I�insert_longlong�(J)V�insert_octet�(B)V�B�insert_reference�(Lorg/omg/CORBA/Object;)V�Lorg/omg/CORBA/Object;�insert_short�(S)V�S�
                                    insert_string�insert_typecode�(Lorg/omg/CORBA/TypeCode;)V�Lorg/omg/CORBA/TypeCode;�insert_ulong�insert_ulonglong�
                                    insert_ushort�
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynAnyStub.java�!��������	�
                                    ! �����������������5��������7������³�³�±�����������E�q�p�
                                      �9��������������3�����*·� ±�������
                                    ! ����J��L���������"�#����$�%�����5�����½�&Y¸�(S°�����������S���������"�#����.�/�����5�����»�0Y²�·�2¿�����������]���������"�#����5�6�����5�����»�0Y²�·�2¿�����������g���������"�#����7������+������±�����������q���������"�#����8�9�����,�����*°�����������z���������"�#����:������+������±�����������„���������"�#����;�<��=�����>����5������±�����������Ž���������"�#������@�A���B�C�����5�����»�0Y²�·�2¿�����������—���������"�#����D�9��=�����>����5�����»�0Y²�·�2¿�����������¢���������"�#����E�F�����?�����»�0Y²�·�2¿�����������¬���������"�#������@�A���G�H��=�����>�I����?�����»�0Y²�·�2¿�����������·���������"�#������@�K���L�M��=�����>�I����5�����»�0Y²�·�2¿�����������Â���������"�#����N�6��=�����>�I����5�����»�0Y²�·�2¿�����������Í���������"�#����O�P��=�����>�I����5�����»�0Y²�·�2¿�����������Ø���������"�#����Q�R��=�����>�I����5�����»�0Y²�·�2¿�����������ã���������"�#����S�9��=�����>�I����5�����»�0Y²�·�2¿�����������î���������"�#����T�U��=�����>�I����5�����»�0Y²�·�2¿�����������ù���������"�#����V�C��=�����>�I����5�����»�0Y²�·�2¿�������������������"�#����W�X��=�����>�I����5�����»�0Y²�·�2¿�������������������"�#����Y�Z��=�����>�I����5�����»�0Y²�·�2¿�������������������"�#����[�\��=�����>�I����5�����»�0Y²�·�2¿����������%���������"�#����]�^��=�����>�I����5�����»�0Y²�·�2¿����������0���������"�#����_�-��=�����>�I����5�����»�0Y²�·�2¿����������;���������"�#����`�/��=�����>�I����5�����»�0Y²�·�2¿����������F���������"�#����a�C��=�����>�I����5�����»�0Y²�·�2¿����������Q���������"�#����b�X��=�����>�I����5�����»�0Y²�·�2¿����������\���������"�#����c�^��=�����>�I����5�����»�0Y²�·�2¿����������g���������"�#����d�e��=�����>�I����5�����»�0Y²�·�2¿����������r���������"�#����f�P��=�����>�I����5�����»�0Y²�·�2¿����������}���������"�#����g�-��=�����>�I����5�����»�0Y²�·�2¿����������ˆ���������"�#����h�H��=�����>�I����?�����»�0Y²�·�2¿����������“���������"�#������@�K���i�j��=�����>�I����?�����»�0Y²�·�2¿����������ž���������"�#������@�k���l�m��=�����>�I����?�����»�0Y²�·�2¿����������©���������"�#������@�n���o�p��=�����>�I����?�����»�0Y²�·�2¿����������´���������"�#������@�q���r�<��=�����>�I����?�����»�0Y²�·�2¿����������¿���������"�#������@�A���s�t��=�����>�I����?�����»�0Y²�·�2¿����������Ê���������"�#������@�u���v�w��=�����>�I����?�����»�0Y²�·�2¿����������Õ���������"�#������@�x���y�z��=�����>�I����?�����»�0Y²�·�2¿����������à���������"�#������@�
                                    ! ���{�|��=�����>�I����?�����»�0Y²�·�2¿����������ë���������"�#������@�}���~���=�����>�I����?�����»�0Y²�·�2¿����������ö���������"�#������@�€����‚��=�����>�I����?�����»�0Y²�·�2¿�������������������"�#������@�ƒ���„�4��=�����>�I����?�����»�0Y²�·�2¿�������������������"�#������@����…�†��=�����>�I����?�����»�0Y²�·�2¿�������������������"�#������@�‡���ˆ�w��=�����>�I����?�����»�0Y²�·�2¿����������"���������"�#������@�x���‰�z��=�����>�I����?�����»�0Y²�·�2¿����������-���������"�#������@�
                                    ! ���Š�‚��=�����>�I����?�����»�0Y²�·�2¿����������8���������"�#������@�ƒ���‹�Œ��=�����>�I����?�����»�0Y²�·�2¿����������C���������"�#������@����Ž�m��=�����>�I����?�����»�0Y²�·�2¿����������N���������"�#������@�n����4��=�����>�I����?�����»�0Y²�·�2¿����������Y���������"�#������@�����‘�����?�����»�0Y²�·�2¿����������c���������"�#������@�x���’�M�����5�����»�0Y²�·�2¿����������m���������"�#����“����”
                                    \ No newline at end of file
                                    --- 9,16 ----
                                      insert_any�insert_boolean�(Z)V�Z�insert_char�(C)V�C�
                                    insert_double�(D)V�D�insert_dyn_any�insert_float�(F)V�F�insert_long�(I)V�I�insert_longlong�(J)V�insert_octet�(B)V�B�insert_reference�(Lorg/omg/CORBA/Object;)V�Lorg/omg/CORBA/Object;�insert_short�(S)V�S�
                                    insert_string�insert_typecode�(Lorg/omg/CORBA/TypeCode;)V�Lorg/omg/CORBA/TypeCode;�insert_ulong�insert_ulonglong�
                                    insert_ushort�
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynAnyStub.java�!��������	�
                                    ! �����������������5��������7������³�³�±�����������F�r�q�
                                      �9��������������3�����*·� ±�������
                                    ! ����K��M���������"�#����$�%�����5�����½�&Y¸�(S°�����������T���������"�#����.�/�����5�����»�0Y²�·�2¿�����������^���������"�#����5�6�����5�����»�0Y²�·�2¿�����������h���������"�#����7������+������±�����������r���������"�#����8�9�����,�����*°�����������{���������"�#����:������+������±�����������…���������"�#����;�<��=�����>����5������±��������������������"�#������@�A���B�C�����5�����»�0Y²�·�2¿�����������˜���������"�#����D�9��=�����>����5�����»�0Y²�·�2¿�����������£���������"�#����E�F�����?�����»�0Y²�·�2¿�����������­���������"�#������@�A���G�H��=�����>�I����?�����»�0Y²�·�2¿�����������¸���������"�#������@�K���L�M��=�����>�I����5�����»�0Y²�·�2¿�����������Ã���������"�#����N�6��=�����>�I����5�����»�0Y²�·�2¿�����������Î���������"�#����O�P��=�����>�I����5�����»�0Y²�·�2¿�����������Ù���������"�#����Q�R��=�����>�I����5�����»�0Y²�·�2¿�����������ä���������"�#����S�9��=�����>�I����5�����»�0Y²�·�2¿�����������ï���������"�#����T�U��=�����>�I����5�����»�0Y²�·�2¿�����������ú���������"�#����V�C��=�����>�I����5�����»�0Y²�·�2¿�������������������"�#����W�X��=�����>�I����5�����»�0Y²�·�2¿�������������������"�#����Y�Z��=�����>�I����5�����»�0Y²�·�2¿�������������������"�#����[�\��=�����>�I����5�����»�0Y²�·�2¿����������&���������"�#����]�^��=�����>�I����5�����»�0Y²�·�2¿����������1���������"�#����_�-��=�����>�I����5�����»�0Y²�·�2¿����������<���������"�#����`�/��=�����>�I����5�����»�0Y²�·�2¿����������G���������"�#����a�C��=�����>�I����5�����»�0Y²�·�2¿����������R���������"�#����b�X��=�����>�I����5�����»�0Y²�·�2¿����������]���������"�#����c�^��=�����>�I����5�����»�0Y²�·�2¿����������h���������"�#����d�e��=�����>�I����5�����»�0Y²�·�2¿����������s���������"�#����f�P��=�����>�I����5�����»�0Y²�·�2¿����������~���������"�#����g�-��=�����>�I����5�����»�0Y²�·�2¿����������‰���������"�#����h�H��=�����>�I����?�����»�0Y²�·�2¿����������”���������"�#������@�K���i�j��=�����>�I����?�����»�0Y²�·�2¿����������Ÿ���������"�#������@�k���l�m��=�����>�I����?�����»�0Y²�·�2¿����������ª���������"�#������@�n���o�p��=�����>�I����?�����»�0Y²�·�2¿����������µ���������"�#������@�q���r�<��=�����>�I����?�����»�0Y²�·�2¿����������À���������"�#������@�A���s�t��=�����>�I����?�����»�0Y²�·�2¿����������Ë���������"�#������@�u���v�w��=�����>�I����?�����»�0Y²�·�2¿����������Ö���������"�#������@�x���y�z��=�����>�I����?�����»�0Y²�·�2¿����������á���������"�#������@�
                                    ! ���{�|��=�����>�I����?�����»�0Y²�·�2¿����������ì���������"�#������@�}���~���=�����>�I����?�����»�0Y²�·�2¿����������÷���������"�#������@�€����‚��=�����>�I����?�����»�0Y²�·�2¿�������������������"�#������@�ƒ���„�4��=�����>�I����?�����»�0Y²�·�2¿����������
                                    ���������"�#������@����…�†��=�����>�I����?�����»�0Y²�·�2¿�������������������"�#������@�‡���ˆ�w��=�����>�I����?�����»�0Y²�·�2¿����������#���������"�#������@�x���‰�z��=�����>�I����?�����»�0Y²�·�2¿����������.���������"�#������@�
                                    ! ���Š�‚��=�����>�I����?�����»�0Y²�·�2¿����������9���������"�#������@�ƒ���‹�Œ��=�����>�I����?�����»�0Y²�·�2¿����������D���������"�#������@����Ž�m��=�����>�I����?�����»�0Y²�·�2¿����������O���������"�#������@�n����4��=�����>�I����?�����»�0Y²�·�2¿����������Z���������"�#������@�����‘�����?�����»�0Y²�·�2¿����������d���������"�#������@�x���’�M�����5�����»�0Y²�·�2¿����������n���������"�#����“����”
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynArrayStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynArrayStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynArrayStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynArrayStub.class	Tue Oct 12 15:55:12 2010
                                    *************** insert_any�insert_boolean�(Z)V�Z�
                                    *** 10,17 ****
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynArrayStub.java�!��������	�
                                      ������������9��������*������³�±�������
                                    ! ����E��9��������������3�����*·�±�������
                                    ! ����J��L��������������������5�����½� Y¸�"S°�����������S��������������(�)�����5�����»�*Y²�,·�2¿�����������]��������������5�6�����5�����»�*Y²�,·�2¿�����������g��������������7�8��9�����:�<����?�����»�*Y²�,·�2¿�����������r����������������>�?���@�A��9�����:�<����?�����»�*Y²�,·�2¿�����������}����������������>�B���C�D�����5�����»�*Y²�,·�2¿�����������‡��������������E�F�����5�����»�*Y²�,·�2¿�����������‘��������������G������+������±�����������›��������������H�I�����,�����*°�����������¤��������������J������+������±�����������®��������������K�L��9�����:����5������±�����������¸����������������>�M���N�O�����5�����»�*Y²�,·�2¿�����������Á��������������P�I��9�����:����5�����»�*Y²�,·�2¿�����������Ì��������������Q�R�����?�����»�*Y²�,·�2¿�����������Ö����������������>�M���S�T��9�����:�<����?�����»�*Y²�,·�2¿�����������á����������������>�U���V�W��9�����:�<����5�����»�*Y²�,·�2¿�����������ì��������������X�F��9�����:�<����5�����»�*Y²�,·�2¿�����������÷��������������Y�Z��9�����:�<����5�����»�*Y²�,·�2¿������������������������[�\��9�����:�<����5�����»�*Y²�,·�2¿����������
                                    ��������������]�I��9�����:�<����5�����»�*Y²�,·�2¿������������������������^�_��9�����:�<����5�����»�*Y²�,·�2¿����������#��������������`�O��9�����:�<����5�����»�*Y²�,·�2¿����������.��������������a�b��9�����:�<����5�����»�*Y²�,·�2¿����������9��������������c�d��9�����:�<����5�����»�*Y²�,·�2¿����������D��������������e�f��9�����:�<����5�����»�*Y²�,·�2¿����������O��������������g�h��9�����:�<����5�����»�*Y²�,·�2¿����������Z��������������i�'��9�����:�<����5�����»�*Y²�,·�2¿����������e��������������j�D��9�����:�<����5�����»�*Y²�,·�2¿����������p��������������k�O��9�����:�<����5�����»�*Y²�,·�2¿����������{��������������l�b��9�����:�<����5�����»�*Y²�,·�2¿����������†��������������m�h��9�����:�<����5�����»�*Y²�,·�2¿����������‘��������������n�o��9�����:�<����5�����»�*Y²�,·�2¿����������œ��������������p�Z��9�����:�<����5�����»�*Y²�,·�2¿����������§��������������q�'��9�����:�<����5�����»�*Y²�,·�2¿����������²��������������r�T��9�����:�<����?�����»�*Y²�,·�2¿����������½����������������>�U���s�t��9�����:�<����?�����»�*Y²�,·�2¿����������È����������������>�u���v�w��9�����:�<����?�����»�*Y²�,·�2¿����������Ó����������������>�x���y�z��9�����:�<����?�����»�*Y²�,·�2¿����������Þ����������������>�{���|�L��9�����:�<����?�����»�*Y²�,·�2¿����������é����������������>�M���}�~��9�����:�<����?�����»�*Y²�,·�2¿����������ô����������������>����€���9�����:�<����?�����»�*Y²�,·�2¿����������ÿ����������������>�‚���ƒ�„��9�����:�<����?�����»�*Y²�,·�2¿����������
                                    ! ����������������>�
                                    ! ���…�†��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�‡���ˆ�‰��9�����:�<����?�����»�*Y²�,·�2¿���������� ����������������>�Š���‹�Œ��9�����:�<����?�����»�*Y²�,·�2¿����������+����������������>����Ž�4��9�����:�<����?�����»�*Y²�,·�2¿����������6����������������>�1������9�����:�<����?�����»�*Y²�,·�2¿����������A����������������>�‘���’���9�����:�<����?�����»�*Y²�,·�2¿����������L����������������>�‚���“�„��9�����:�<����?�����»�*Y²�,·�2¿����������W����������������>�
                                    ! ���”�Œ��9�����:�<����?�����»�*Y²�,·�2¿����������b����������������>����•�–��9�����:�<����?�����»�*Y²�,·�2¿����������m����������������>�—���˜�w��9�����:�<����?�����»�*Y²�,·�2¿����������x����������������>�x���™�4��9�����:�<����?�����»�*Y²�,·�2¿����������ƒ����������������>�1���š�›�����?�����»�*Y²�,·�2¿��������������������������>�‚���œ�W�����5�����»�*Y²�,·�2¿����������—������������������ž
                                    \ No newline at end of file
                                    --- 10,16 ----
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynArrayStub.java�!��������	�
                                      ������������9��������*������³�±�������
                                    ! ����F��9��������������3�����*·�±�������
                                    ! ����K��M��������������������5�����½� Y¸�"S°�����������T��������������(�)�����5�����»�*Y²�,·�2¿�����������^��������������5�6�����5�����»�*Y²�,·�2¿�����������h��������������7�8��9�����:�<����?�����»�*Y²�,·�2¿�����������s����������������>�?���@�A��9�����:�<����?�����»�*Y²�,·�2¿�����������~����������������>�B���C�D�����5�����»�*Y²�,·�2¿�����������ˆ��������������E�F�����5�����»�*Y²�,·�2¿�����������’��������������G������+������±�����������œ��������������H�I�����,�����*°�����������¥��������������J������+������±�����������¯��������������K�L��9�����:����5������±�����������¹����������������>�M���N�O�����5�����»�*Y²�,·�2¿�����������Â��������������P�I��9�����:����5�����»�*Y²�,·�2¿�����������Í��������������Q�R�����?�����»�*Y²�,·�2¿�����������×����������������>�M���S�T��9�����:�<����?�����»�*Y²�,·�2¿�����������â����������������>�U���V�W��9�����:�<����5�����»�*Y²�,·�2¿�����������í��������������X�F��9�����:�<����5�����»�*Y²�,·�2¿�����������ø��������������Y�Z��9�����:�<����5�����»�*Y²�,·�2¿������������������������[�\��9�����:�<����5�����»�*Y²�,·�2¿������������������������]�I��9�����:�<����5�����»�*Y²�,·�2¿������������������������^�_��9�����:�<����5�����»�*Y²�,·�2¿����������$��������������`�O��9�����:�<����5�����»�*Y²�,·�2¿����������/��������������a�b��9�����:�<����5�����»�*Y²�,·�2¿����������:��������������c�d��9�����:�<����5�����»�*Y²�,·�2¿����������E��������������e�f��9�����:�<����5�����»�*Y²�,·�2¿����������P��������������g�h��9�����:�<����5�����»�*Y²�,·�2¿����������[��������������i�'��9�����:�<����5�����»�*Y²�,·�2¿����������f��������������j�D��9�����:�<����5�����»�*Y²�,·�2¿����������q��������������k�O��9�����:�<����5�����»�*Y²�,·�2¿����������|��������������l�b��9�����:�<����5�����»�*Y²�,·�2¿����������‡��������������m�h��9�����:�<����5�����»�*Y²�,·�2¿����������’��������������n�o��9�����:�<����5�����»�*Y²�,·�2¿������������������������p�Z��9�����:�<����5�����»�*Y²�,·�2¿����������¨��������������q�'��9�����:�<����5�����»�*Y²�,·�2¿����������³��������������r�T��9�����:�<����?�����»�*Y²�,·�2¿����������¾����������������>�U���s�t��9�����:�<����?�����»�*Y²�,·�2¿����������É����������������>�u���v�w��9�����:�<����?�����»�*Y²�,·�2¿����������Ô����������������>�x���y�z��9�����:�<����?�����»�*Y²�,·�2¿����������ß����������������>�{���|�L��9�����:�<����?�����»�*Y²�,·�2¿����������ê����������������>�M���}�~��9�����:�<����?�����»�*Y²�,·�2¿����������õ����������������>����€���9�����:�<����?�����»�*Y²�,·�2¿���������������������������>�‚���ƒ�„��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�
                                    ! ���…�†��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�‡���ˆ�‰��9�����:�<����?�����»�*Y²�,·�2¿����������!����������������>�Š���‹�Œ��9�����:�<����?�����»�*Y²�,·�2¿����������,����������������>����Ž�4��9�����:�<����?�����»�*Y²�,·�2¿����������7����������������>�1������9�����:�<����?�����»�*Y²�,·�2¿����������B����������������>�‘���’���9�����:�<����?�����»�*Y²�,·�2¿����������M����������������>�‚���“�„��9�����:�<����?�����»�*Y²�,·�2¿����������X����������������>�
                                    ! ���”�Œ��9�����:�<����?�����»�*Y²�,·�2¿����������c����������������>����•�–��9�����:�<����?�����»�*Y²�,·�2¿����������n����������������>�—���˜�w��9�����:�<����?�����»�*Y²�,·�2¿����������y����������������>�x���™�4��9�����:�<����?�����»�*Y²�,·�2¿����������„����������������>�1���š�›�����?�����»�*Y²�,·�2¿����������Ž����������������>�‚���œ�W�����5�����»�*Y²�,·�2¿����������˜������������������ž
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynEnumStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynEnumStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynEnumStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynEnumStub.class	Tue Oct 12 15:55:12 2010
                                    *************** insert_any�insert_boolean�(Z)V�Z�
                                    *** 10,17 ****
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynEnumStub.java�!��������	�
                                      ������������9��������*������³�±�������
                                    ! ����E��9��������������3�����*·�±�������
                                    ! ����J��L��������������������5�����½� Y¸�"S°�����������S��������������(�'�����5�����»�)Y²�+·�1¿�����������]��������������4�5�����5�����»�)Y²�+·�1¿�����������g��������������6�3��7�����8����?�����»�)Y²�+·�1¿�����������r����������������:�0���;�<��7�����8����?�����»�)Y²�+·�1¿�����������}����������������:�=���>�?�����5�����»�)Y²�+·�1¿�����������‡��������������@�A�����5�����»�)Y²�+·�1¿�����������‘��������������B������+������±�����������›��������������C�D�����,�����*°�����������¤��������������E������+������±�����������®��������������F�G��7�����H����5������±�����������¸����������������:�J���K�5�����5�����»�)Y²�+·�1¿�����������Á��������������L�D��7�����H����5�����»�)Y²�+·�1¿�����������Ì��������������M�N�����?�����»�)Y²�+·�1¿�����������Ö����������������:�J���O�P��7�����H�8����?�����»�)Y²�+·�1¿�����������á����������������:�Q���R�S��7�����H�8����5�����»�)Y²�+·�1¿�����������ì��������������T�A��7�����H�8����5�����»�)Y²�+·�1¿�����������÷��������������U�V��7�����H�8����5�����»�)Y²�+·�1¿������������������������W�X��7�����H�8����5�����»�)Y²�+·�1¿����������
                                    ��������������Y�D��7�����H�8����5�����»�)Y²�+·�1¿������������������������Z�[��7�����H�8����5�����»�)Y²�+·�1¿����������#��������������\�5��7�����H�8����5�����»�)Y²�+·�1¿����������.��������������]�^��7�����H�8����5�����»�)Y²�+·�1¿����������9��������������_�`��7�����H�8����5�����»�)Y²�+·�1¿����������D��������������a�b��7�����H�8����5�����»�)Y²�+·�1¿����������O��������������c�d��7�����H�8����5�����»�)Y²�+·�1¿����������Z��������������e�'��7�����H�8����5�����»�)Y²�+·�1¿����������e��������������f�?��7�����H�8����5�����»�)Y²�+·�1¿����������p��������������g�5��7�����H�8����5�����»�)Y²�+·�1¿����������{��������������h�^��7�����H�8����5�����»�)Y²�+·�1¿����������†��������������i�d��7�����H�8����5�����»�)Y²�+·�1¿����������‘��������������j�k��7�����H�8����5�����»�)Y²�+·�1¿����������œ��������������l�V��7�����H�8����5�����»�)Y²�+·�1¿����������§��������������m�'��7�����H�8����5�����»�)Y²�+·�1¿����������²��������������n�P��7�����H�8����?�����»�)Y²�+·�1¿����������½����������������:�Q���o�p��7�����H�8����?�����»�)Y²�+·�1¿����������È����������������:�q���r�s��7�����H�8����?�����»�)Y²�+·�1¿����������Ó����������������:�t���u�v��7�����H�8����?�����»�)Y²�+·�1¿����������Þ����������������:�w���x�G��7�����H�8����?�����»�)Y²�+·�1¿����������é����������������:�J���y�z��7�����H�8����?�����»�)Y²�+·�1¿����������ô����������������:�{���|�<��7�����H�8����?�����»�)Y²�+·�1¿����������ÿ����������������:�=���}�~��7�����H�8����?�����»�)Y²�+·�1¿����������
                                    ! ����������������:�
                                    ! ����€��7�����H�8����?�����»�)Y²�+·�1¿��������������������������:����‚�ƒ��7�����H�8����?�����»�)Y²�+·�1¿���������� ����������������:�„���…�†��7�����H�8����?�����»�)Y²�+·�1¿����������+����������������:�‡���ˆ�3��7�����H�8����?�����»�)Y²�+·�1¿����������6����������������:�0���‰�Š��7�����H�8����?�����»�)Y²�+·�1¿����������A����������������:�‹���Œ�<��7�����H�8����?�����»�)Y²�+·�1¿����������L����������������:�=����~��7�����H�8����?�����»�)Y²�+·�1¿����������W����������������:�
                                    ! ���Ž�†��7�����H�8����?�����»�)Y²�+·�1¿����������b����������������:�‡������7�����H�8����?�����»�)Y²�+·�1¿����������m����������������:�‘���’�s��7�����H�8����?�����»�)Y²�+·�1¿����������x����������������:�t���“�3��7�����H�8����?�����»�)Y²�+·�1¿����������ƒ����������������:�0���”�•�����?�����»�)Y²�+·�1¿��������������������������:�=���–�S�����5�����»�)Y²�+·�1¿����������—��������������—����˜
                                    \ No newline at end of file
                                    --- 10,16 ----
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynEnumStub.java�!��������	�
                                      ������������9��������*������³�±�������
                                    ! ����F��9��������������3�����*·�±�������
                                    ! ����K��M��������������������5�����½� Y¸�"S°�����������T��������������(�'�����5�����»�)Y²�+·�1¿�����������^��������������4�5�����5�����»�)Y²�+·�1¿�����������h��������������6�3��7�����8����?�����»�)Y²�+·�1¿�����������s����������������:�0���;�<��7�����8����?�����»�)Y²�+·�1¿�����������~����������������:�=���>�?�����5�����»�)Y²�+·�1¿�����������ˆ��������������@�A�����5�����»�)Y²�+·�1¿�����������’��������������B������+������±�����������œ��������������C�D�����,�����*°�����������¥��������������E������+������±�����������¯��������������F�G��7�����H����5������±�����������¹����������������:�J���K�5�����5�����»�)Y²�+·�1¿�����������Â��������������L�D��7�����H����5�����»�)Y²�+·�1¿�����������Í��������������M�N�����?�����»�)Y²�+·�1¿�����������×����������������:�J���O�P��7�����H�8����?�����»�)Y²�+·�1¿�����������â����������������:�Q���R�S��7�����H�8����5�����»�)Y²�+·�1¿�����������í��������������T�A��7�����H�8����5�����»�)Y²�+·�1¿�����������ø��������������U�V��7�����H�8����5�����»�)Y²�+·�1¿������������������������W�X��7�����H�8����5�����»�)Y²�+·�1¿������������������������Y�D��7�����H�8����5�����»�)Y²�+·�1¿������������������������Z�[��7�����H�8����5�����»�)Y²�+·�1¿����������$��������������\�5��7�����H�8����5�����»�)Y²�+·�1¿����������/��������������]�^��7�����H�8����5�����»�)Y²�+·�1¿����������:��������������_�`��7�����H�8����5�����»�)Y²�+·�1¿����������E��������������a�b��7�����H�8����5�����»�)Y²�+·�1¿����������P��������������c�d��7�����H�8����5�����»�)Y²�+·�1¿����������[��������������e�'��7�����H�8����5�����»�)Y²�+·�1¿����������f��������������f�?��7�����H�8����5�����»�)Y²�+·�1¿����������q��������������g�5��7�����H�8����5�����»�)Y²�+·�1¿����������|��������������h�^��7�����H�8����5�����»�)Y²�+·�1¿����������‡��������������i�d��7�����H�8����5�����»�)Y²�+·�1¿����������’��������������j�k��7�����H�8����5�����»�)Y²�+·�1¿������������������������l�V��7�����H�8����5�����»�)Y²�+·�1¿����������¨��������������m�'��7�����H�8����5�����»�)Y²�+·�1¿����������³��������������n�P��7�����H�8����?�����»�)Y²�+·�1¿����������¾����������������:�Q���o�p��7�����H�8����?�����»�)Y²�+·�1¿����������É����������������:�q���r�s��7�����H�8����?�����»�)Y²�+·�1¿����������Ô����������������:�t���u�v��7�����H�8����?�����»�)Y²�+·�1¿����������ß����������������:�w���x�G��7�����H�8����?�����»�)Y²�+·�1¿����������ê����������������:�J���y�z��7�����H�8����?�����»�)Y²�+·�1¿����������õ����������������:�{���|�<��7�����H�8����?�����»�)Y²�+·�1¿���������������������������:�=���}�~��7�����H�8����?�����»�)Y²�+·�1¿��������������������������:�
                                    ! ����€��7�����H�8����?�����»�)Y²�+·�1¿��������������������������:����‚�ƒ��7�����H�8����?�����»�)Y²�+·�1¿����������!����������������:�„���…�†��7�����H�8����?�����»�)Y²�+·�1¿����������,����������������:�‡���ˆ�3��7�����H�8����?�����»�)Y²�+·�1¿����������7����������������:�0���‰�Š��7�����H�8����?�����»�)Y²�+·�1¿����������B����������������:�‹���Œ�<��7�����H�8����?�����»�)Y²�+·�1¿����������M����������������:�=����~��7�����H�8����?�����»�)Y²�+·�1¿����������X����������������:�
                                    ! ���Ž�†��7�����H�8����?�����»�)Y²�+·�1¿����������c����������������:�‡������7�����H�8����?�����»�)Y²�+·�1¿����������n����������������:�‘���’�s��7�����H�8����?�����»�)Y²�+·�1¿����������y����������������:�t���“�3��7�����H�8����?�����»�)Y²�+·�1¿����������„����������������:�0���”�•�����?�����»�)Y²�+·�1¿����������Ž����������������:�=���–�S�����5�����»�)Y²�+·�1¿����������˜��������������—����˜
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynFixedStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynFixedStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynFixedStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynFixedStub.class	Tue Oct 12 15:55:12 2010
                                    *************** insert_any�insert_boolean�(Z)V�Z�
                                    *** 10,16 ****
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynFixedStub.java�!��������	�
                                      ������������7��������*������³�±�������
                                    ! ����E��9��������������3�����*·�±�������
                                    ! ����J��L��������������������5�����½� Y¸�"S°�����������S��������������(�'�����5�����»�)Y²�+·�1¿�����������]��������������4�5��6�����7�9����?�����»�)Y²�+·�1¿�����������h����������������;�0���<�=�����5�����»�)Y²�+·�1¿�����������r��������������>�?�����5�����»�)Y²�+·�1¿�����������|��������������@������+������±�����������†��������������A�B�����,�����*°�������������������������C������+������±�����������™��������������D�E��6�����7����5������±�����������£����������������;�F���G�H�����5�����»�)Y²�+·�1¿�����������¬��������������I�B��6�����7����5�����»�)Y²�+·�1¿�����������·��������������J�K�����?�����»�)Y²�+·�1¿�����������Á����������������;�F���L�M��6�����7�9����?�����»�)Y²�+·�1¿�����������Ì����������������;�N���O�P��6�����7�9����5�����»�)Y²�+·�1¿�����������×��������������Q�?��6�����7�9����5�����»�)Y²�+·�1¿�����������â��������������R�S��6�����7�9����5�����»�)Y²�+·�1¿�����������í��������������T�U��6�����7�9����5�����»�)Y²�+·�1¿�����������ø��������������V�B��6�����7�9����5�����»�)Y²�+·�1¿������������������������W�X��6�����7�9����5�����»�)Y²�+·�1¿������������������������Y�H��6�����7�9����5�����»�)Y²�+·�1¿������������������������Z�[��6�����7�9����5�����»�)Y²�+·�1¿����������$��������������\�]��6�����7�9����5�����»�)Y²�+·�1¿����������/��������������^�_��6�����7�9����5�����»�)Y²�+·�1¿����������:��������������`�a��6�����7�9����5�����»�)Y²�+·�1¿����������E��������������b�'��6�����7�9����5�����»�)Y²�+·�1¿����������P��������������c�=��6�����7�9����5�����»�)Y²�+·�1¿����������[��������������d�H��6�����7�9����5�����»�)Y²�+·�1¿����������f��������������e�[��6�����7�9����5�����»�)Y²�+·�1¿����������q��������������f�a��6�����7�9����5�����»�)Y²�+·�1¿����������|��������������g�h��6�����7�9����5�����»�)Y²�+·�1¿����������‡��������������i�S��6�����7�9����5�����»�)Y²�+·�1¿����������’��������������j�'��6�����7�9����5�����»�)Y²�+·�1¿������������������������k�M��6�����7�9����?�����»�)Y²�+·�1¿����������¨����������������;�N���l�m��6�����7�9����?�����»�)Y²�+·�1¿����������³����������������;�n���o�p��6�����7�9����?�����»�)Y²�+·�1¿����������¾����������������;�q���r�s��6�����7�9����?�����»�)Y²�+·�1¿����������É����������������;�t���u�E��6�����7�9����?�����»�)Y²�+·�1¿����������Ô����������������;�F���v�w��6�����7�9����?�����»�)Y²�+·�1¿����������ß����������������;�x���y�z��6�����7�9����?�����»�)Y²�+·�1¿����������ê����������������;�{���|�}��6�����7�9����?�����»�)Y²�+·�1¿����������õ����������������;�
                                    ! ���~���6�����7�9����?�����»�)Y²�+·�1¿���������������������������;�€����‚��6�����7�9����?�����»�)Y²�+·�1¿��������������������������;�ƒ���„�…��6�����7�9����?�����»�)Y²�+·�1¿��������������������������;�†���‡�3��6�����7�9����?�����»�)Y²�+·�1¿����������!����������������;�0���ˆ�‰��6�����7�9����?�����»�)Y²�+·�1¿����������,����������������;�Š���‹�z��6�����7�9����?�����»�)Y²�+·�1¿����������7����������������;�{���Œ�}��6�����7�9����?�����»�)Y²�+·�1¿����������B����������������;�
                                    ! ����…��6�����7�9����?�����»�)Y²�+·�1¿����������M����������������;�†���Ž���6�����7�9����?�����»�)Y²�+·�1¿����������X����������������;����‘�p��6�����7�9����?�����»�)Y²�+·�1¿����������c����������������;�q���’�3��6�����7�9����?�����»�)Y²�+·�1¿����������n����������������;�0���“�”�����?�����»�)Y²�+·�1¿����������x����������������;�{���•�P�����5�����»�)Y²�+·�1¿����������‚��������������–����—
                                    \ No newline at end of file
                                    --- 10,16 ----
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynFixedStub.java�!��������	�
                                      ������������7��������*������³�±�������
                                    ! ����F��9��������������3�����*·�±�������
                                    ! ����K��M��������������������5�����½� Y¸�"S°�����������T��������������(�'�����5�����»�)Y²�+·�1¿�����������^��������������4�5��6�����7�9����?�����»�)Y²�+·�1¿�����������i����������������;�0���<�=�����5�����»�)Y²�+·�1¿�����������s��������������>�?�����5�����»�)Y²�+·�1¿�����������}��������������@������+������±�����������‡��������������A�B�����,�����*°�������������������������C������+������±�����������š��������������D�E��6�����7����5������±�����������¤����������������;�F���G�H�����5�����»�)Y²�+·�1¿�����������­��������������I�B��6�����7����5�����»�)Y²�+·�1¿�����������¸��������������J�K�����?�����»�)Y²�+·�1¿�����������Â����������������;�F���L�M��6�����7�9����?�����»�)Y²�+·�1¿�����������Í����������������;�N���O�P��6�����7�9����5�����»�)Y²�+·�1¿�����������Ø��������������Q�?��6�����7�9����5�����»�)Y²�+·�1¿�����������ã��������������R�S��6�����7�9����5�����»�)Y²�+·�1¿�����������î��������������T�U��6�����7�9����5�����»�)Y²�+·�1¿�����������ù��������������V�B��6�����7�9����5�����»�)Y²�+·�1¿������������������������W�X��6�����7�9����5�����»�)Y²�+·�1¿������������������������Y�H��6�����7�9����5�����»�)Y²�+·�1¿������������������������Z�[��6�����7�9����5�����»�)Y²�+·�1¿����������%��������������\�]��6�����7�9����5�����»�)Y²�+·�1¿����������0��������������^�_��6�����7�9����5�����»�)Y²�+·�1¿����������;��������������`�a��6�����7�9����5�����»�)Y²�+·�1¿����������F��������������b�'��6�����7�9����5�����»�)Y²�+·�1¿����������Q��������������c�=��6�����7�9����5�����»�)Y²�+·�1¿����������\��������������d�H��6�����7�9����5�����»�)Y²�+·�1¿����������g��������������e�[��6�����7�9����5�����»�)Y²�+·�1¿����������r��������������f�a��6�����7�9����5�����»�)Y²�+·�1¿����������}��������������g�h��6�����7�9����5�����»�)Y²�+·�1¿����������ˆ��������������i�S��6�����7�9����5�����»�)Y²�+·�1¿����������“��������������j�'��6�����7�9����5�����»�)Y²�+·�1¿����������ž��������������k�M��6�����7�9����?�����»�)Y²�+·�1¿����������©����������������;�N���l�m��6�����7�9����?�����»�)Y²�+·�1¿����������´����������������;�n���o�p��6�����7�9����?�����»�)Y²�+·�1¿����������¿����������������;�q���r�s��6�����7�9����?�����»�)Y²�+·�1¿����������Ê����������������;�t���u�E��6�����7�9����?�����»�)Y²�+·�1¿����������Õ����������������;�F���v�w��6�����7�9����?�����»�)Y²�+·�1¿����������à����������������;�x���y�z��6�����7�9����?�����»�)Y²�+·�1¿����������ë����������������;�{���|�}��6�����7�9����?�����»�)Y²�+·�1¿����������ö����������������;�
                                    ! ���~���6�����7�9����?�����»�)Y²�+·�1¿��������������������������;�€����‚��6�����7�9����?�����»�)Y²�+·�1¿��������������������������;�ƒ���„�…��6�����7�9����?�����»�)Y²�+·�1¿��������������������������;�†���‡�3��6�����7�9����?�����»�)Y²�+·�1¿����������"����������������;�0���ˆ�‰��6�����7�9����?�����»�)Y²�+·�1¿����������-����������������;�Š���‹�z��6�����7�9����?�����»�)Y²�+·�1¿����������8����������������;�{���Œ�}��6�����7�9����?�����»�)Y²�+·�1¿����������C����������������;�
                                    ! ����…��6�����7�9����?�����»�)Y²�+·�1¿����������N����������������;�†���Ž���6�����7�9����?�����»�)Y²�+·�1¿����������Y����������������;����‘�p��6�����7�9����?�����»�)Y²�+·�1¿����������d����������������;�q���’�3��6�����7�9����?�����»�)Y²�+·�1¿����������o����������������;�0���“�”�����?�����»�)Y²�+·�1¿����������y����������������;�{���•�P�����5�����»�)Y²�+·�1¿����������ƒ��������������–����—
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynSequenceStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynSequenceStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynSequenceStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynSequenceStub.class	Tue Oct 12 15:55:12 2010
                                    *************** insert_any�insert_boolean�(Z)V�Z�
                                    *** 12,18 ****
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynSequenceStub.java�!��������	�
                                      ������������;��������*������³�±�������
                                    ! ����F��:��������������3�����*·�±�������
                                    ! ����M��O��������������������5�����½� Y¸�"S°�����������V��������������(�)�����5�����»�*Y²�,·�2¿�����������`��������������5�6�����5�����»�*Y²�,·�2¿�����������j��������������7�8��9�����:�<����?�����»�*Y²�,·�2¿�����������u����������������>�?���@�A��9�����:�<����?�����»�*Y²�,·�2¿�����������€����������������>�B���C�D�����5�����»�*Y²�,·�2¿�����������Š��������������E�F��9�����<����?�����»�*Y²�,·�2¿�����������•����������������>�G���H�I�����5�����»�*Y²�,·�2¿�����������Ÿ��������������J�K�����5�����»�*Y²�,·�2¿�����������©��������������L������+������±�����������³��������������M�N�����,�����*°�����������¼��������������O������+������±�����������Æ��������������P�Q��9�����:����5������±�����������Ð����������������>�R���S�D�����5�����»�*Y²�,·�2¿�����������Ù��������������T�N��9�����:����5�����»�*Y²�,·�2¿�����������ä��������������U�V�����?�����»�*Y²�,·�2¿�����������î����������������>�R���W�X��9�����:�<����?�����»�*Y²�,·�2¿�����������ù����������������>�Y���Z�[��9�����:�<����5�����»�*Y²�,·�2¿������������������������\�K��9�����:�<����5�����»�*Y²�,·�2¿������������������������]�^��9�����:�<����5�����»�*Y²�,·�2¿������������������������_�`��9�����:�<����5�����»�*Y²�,·�2¿����������%��������������a�N��9�����:�<����5�����»�*Y²�,·�2¿����������0��������������b�c��9�����:�<����5�����»�*Y²�,·�2¿����������;��������������d�D��9�����:�<����5�����»�*Y²�,·�2¿����������F��������������e�f��9�����:�<����5�����»�*Y²�,·�2¿����������Q��������������g�h��9�����:�<����5�����»�*Y²�,·�2¿����������\��������������i�j��9�����:�<����5�����»�*Y²�,·�2¿����������g��������������k�l��9�����:�<����5�����»�*Y²�,·�2¿����������r��������������m�'��9�����:�<����5�����»�*Y²�,·�2¿����������}��������������n�I��9�����:�<����5�����»�*Y²�,·�2¿����������ˆ��������������o�D��9�����:�<����5�����»�*Y²�,·�2¿����������“��������������p�f��9�����:�<����5�����»�*Y²�,·�2¿����������ž��������������q�l��9�����:�<����5�����»�*Y²�,·�2¿����������©��������������r�s��9�����:�<����5�����»�*Y²�,·�2¿����������´��������������t�^��9�����:�<����5�����»�*Y²�,·�2¿����������¿��������������u�'��9�����:�<����5�����»�*Y²�,·�2¿����������Ê��������������v�X��9�����:�<����?�����»�*Y²�,·�2¿����������Õ����������������>�Y���w�x��9�����:�<����?�����»�*Y²�,·�2¿����������à����������������>�y���z�{��9�����:�<����?�����»�*Y²�,·�2¿����������ë����������������>�|���}�~��9�����:�<����?�����»�*Y²�,·�2¿����������ö����������������>����€�Q��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�R����‚��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�ƒ���„�F��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�G���…�†��9�����:�<����?�����»�*Y²�,·�2¿����������"����������������>�
                                    ! ���‡�ˆ��9�����:�<����?�����»�*Y²�,·�2¿����������-����������������>�‰���Š�‹��9�����:�<����?�����»�*Y²�,·�2¿����������8����������������>�Œ����Ž��9�����:�<����?�����»�*Y²�,·�2¿����������C����������������>�����4��9�����:�<����?�����»�*Y²�,·�2¿����������N����������������>�1���‘�’��9�����:�<����?�����»�*Y²�,·�2¿����������Y����������������>�“���”�F��9�����:�<����?�����»�*Y²�,·�2¿����������d����������������>�G���•�†��9�����:�<����?�����»�*Y²�,·�2¿����������o����������������>�
                                    ! ���–�Ž��9�����:�<����?�����»�*Y²�,·�2¿����������z����������������>����—�˜��9�����:�<����?�����»�*Y²�,·�2¿����������…����������������>�™���š�{��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�|���›�4��9�����:�<����?�����»�*Y²�,·�2¿����������›����������������>�1���œ������?�����»�*Y²�,·�2¿����������¥����������������>�G���ž�[�����5�����»�*Y²�,·�2¿����������¯��������������Ÿ���� 
                                    \ No newline at end of file
                                    --- 12,18 ----
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynSequenceStub.java�!��������	�
                                      ������������;��������*������³�±�������
                                    ! ����G��:��������������3�����*·�±�������
                                    ! ����N��P��������������������5�����½� Y¸�"S°�����������W��������������(�)�����5�����»�*Y²�,·�2¿�����������a��������������5�6�����5�����»�*Y²�,·�2¿�����������k��������������7�8��9�����:�<����?�����»�*Y²�,·�2¿�����������v����������������>�?���@�A��9�����:�<����?�����»�*Y²�,·�2¿���������������������������>�B���C�D�����5�����»�*Y²�,·�2¿�����������‹��������������E�F��9�����<����?�����»�*Y²�,·�2¿�����������–����������������>�G���H�I�����5�����»�*Y²�,·�2¿����������� ��������������J�K�����5�����»�*Y²�,·�2¿�����������ª��������������L������+������±�����������´��������������M�N�����,�����*°�����������½��������������O������+������±�����������Ç��������������P�Q��9�����:����5������±�����������Ñ����������������>�R���S�D�����5�����»�*Y²�,·�2¿�����������Ú��������������T�N��9�����:����5�����»�*Y²�,·�2¿�����������å��������������U�V�����?�����»�*Y²�,·�2¿�����������ï����������������>�R���W�X��9�����:�<����?�����»�*Y²�,·�2¿�����������ú����������������>�Y���Z�[��9�����:�<����5�����»�*Y²�,·�2¿������������������������\�K��9�����:�<����5�����»�*Y²�,·�2¿������������������������]�^��9�����:�<����5�����»�*Y²�,·�2¿������������������������_�`��9�����:�<����5�����»�*Y²�,·�2¿����������&��������������a�N��9�����:�<����5�����»�*Y²�,·�2¿����������1��������������b�c��9�����:�<����5�����»�*Y²�,·�2¿����������<��������������d�D��9�����:�<����5�����»�*Y²�,·�2¿����������G��������������e�f��9�����:�<����5�����»�*Y²�,·�2¿����������R��������������g�h��9�����:�<����5�����»�*Y²�,·�2¿����������]��������������i�j��9�����:�<����5�����»�*Y²�,·�2¿����������h��������������k�l��9�����:�<����5�����»�*Y²�,·�2¿����������s��������������m�'��9�����:�<����5�����»�*Y²�,·�2¿����������~��������������n�I��9�����:�<����5�����»�*Y²�,·�2¿����������‰��������������o�D��9�����:�<����5�����»�*Y²�,·�2¿����������”��������������p�f��9�����:�<����5�����»�*Y²�,·�2¿����������Ÿ��������������q�l��9�����:�<����5�����»�*Y²�,·�2¿����������ª��������������r�s��9�����:�<����5�����»�*Y²�,·�2¿����������µ��������������t�^��9�����:�<����5�����»�*Y²�,·�2¿����������À��������������u�'��9�����:�<����5�����»�*Y²�,·�2¿����������Ë��������������v�X��9�����:�<����?�����»�*Y²�,·�2¿����������Ö����������������>�Y���w�x��9�����:�<����?�����»�*Y²�,·�2¿����������á����������������>�y���z�{��9�����:�<����?�����»�*Y²�,·�2¿����������ì����������������>�|���}�~��9�����:�<����?�����»�*Y²�,·�2¿����������÷����������������>����€�Q��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�R����‚��9�����:�<����?�����»�*Y²�,·�2¿����������
                                    ����������������>�ƒ���„�F��9�����:�<����?�����»�*Y²�,·�2¿��������������������������>�G���…�†��9�����:�<����?�����»�*Y²�,·�2¿����������#����������������>�
                                    ! ���‡�ˆ��9�����:�<����?�����»�*Y²�,·�2¿����������.����������������>�‰���Š�‹��9�����:�<����?�����»�*Y²�,·�2¿����������9����������������>�Œ����Ž��9�����:�<����?�����»�*Y²�,·�2¿����������D����������������>�����4��9�����:�<����?�����»�*Y²�,·�2¿����������O����������������>�1���‘�’��9�����:�<����?�����»�*Y²�,·�2¿����������Z����������������>�“���”�F��9�����:�<����?�����»�*Y²�,·�2¿����������e����������������>�G���•�†��9�����:�<����?�����»�*Y²�,·�2¿����������p����������������>�
                                    ! ���–�Ž��9�����:�<����?�����»�*Y²�,·�2¿����������{����������������>����—�˜��9�����:�<����?�����»�*Y²�,·�2¿����������†����������������>�™���š�{��9�����:�<����?�����»�*Y²�,·�2¿����������‘����������������>�|���›�4��9�����:�<����?�����»�*Y²�,·�2¿����������œ����������������>�1���œ������?�����»�*Y²�,·�2¿����������¦����������������>�G���ž�[�����5�����»�*Y²�,·�2¿����������°��������������Ÿ���� 
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynStructStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynStructStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynStructStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynStructStub.class	Tue Oct 12 15:55:12 2010
                                    *************** insert_any�insert_boolean�(Z)V�Z�
                                    *** 11,17 ****
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynStructStub.java�!��������	�
                                      ������������;��������*������³�±�������
                                    ! ����G��;��������������3�����*·�±�������
                                    ! ����N��P��������������������5�����½� Y¸�"S°�����������W��������������(�)��*�����+�-����5�����»�/Y²�1·�7¿�����������b��������������:�'��*�����+�-����5�����»�/Y²�1·�7¿�����������m��������������;�<�����5�����»�/Y²�1·�7¿�����������w��������������=�>�����5�����»�/Y²�1·�7¿�������������������������?�@��*�����+�-����?�����»�/Y²�1·�7¿�����������Œ����������������A�B���C�D��*�����+�-����?�����»�/Y²�1·�7¿�����������—����������������A�E���F�G�����5�����»�/Y²�1·�7¿�����������¡��������������H�I�����5�����»�/Y²�1·�7¿�����������«��������������J������+������±�����������µ��������������K�L�����,�����*°�����������¾��������������M������+������±�����������È��������������N�O��*�����+����5������±�����������Ò����������������A�P���Q�R�����5�����»�/Y²�1·�7¿�����������Û��������������S�L��*�����+����5�����»�/Y²�1·�7¿�����������æ��������������T�U�����?�����»�/Y²�1·�7¿�����������ð����������������A�P���V�W��*�����+�-����?�����»�/Y²�1·�7¿�����������û����������������A�X���Y�Z��*�����+�-����5�����»�/Y²�1·�7¿������������������������[�I��*�����+�-����5�����»�/Y²�1·�7¿������������������������\�]��*�����+�-����5�����»�/Y²�1·�7¿������������������������^�_��*�����+�-����5�����»�/Y²�1·�7¿����������'��������������`�L��*�����+�-����5�����»�/Y²�1·�7¿����������2��������������a�b��*�����+�-����5�����»�/Y²�1·�7¿����������=��������������c�R��*�����+�-����5�����»�/Y²�1·�7¿����������H��������������d�e��*�����+�-����5�����»�/Y²�1·�7¿����������S��������������f�g��*�����+�-����5�����»�/Y²�1·�7¿����������^��������������h�i��*�����+�-����5�����»�/Y²�1·�7¿����������i��������������j�k��*�����+�-����5�����»�/Y²�1·�7¿����������t��������������l�'��*�����+�-����5�����»�/Y²�1·�7¿������������������������m�G��*�����+�-����5�����»�/Y²�1·�7¿����������Š��������������n�R��*�����+�-����5�����»�/Y²�1·�7¿����������•��������������o�e��*�����+�-����5�����»�/Y²�1·�7¿���������� ��������������p�k��*�����+�-����5�����»�/Y²�1·�7¿����������«��������������q�r��*�����+�-����5�����»�/Y²�1·�7¿����������¶��������������s�]��*�����+�-����5�����»�/Y²�1·�7¿����������Á��������������t�'��*�����+�-����5�����»�/Y²�1·�7¿����������Ì��������������u�W��*�����+�-����?�����»�/Y²�1·�7¿����������×����������������A�X���v�w��*�����+�-����?�����»�/Y²�1·�7¿����������â����������������A�x���y�z��*�����+�-����?�����»�/Y²�1·�7¿����������í����������������A�{���|�}��*�����+�-����?�����»�/Y²�1·�7¿����������ø����������������A�~����O��*�����+�-����?�����»�/Y²�1·�7¿��������������������������A�P���€���*�����+�-����?�����»�/Y²�1·�7¿��������������������������A�‚���ƒ�„��*�����+�-����?�����»�/Y²�1·�7¿��������������������������A�…���†�‡��*�����+�-����?�����»�/Y²�1·�7¿����������$����������������A�
                                    ! ���ˆ�‰��*�����+�-����?�����»�/Y²�1·�7¿����������/����������������A�Š���‹�Œ��*�����+�-����?�����»�/Y²�1·�7¿����������:����������������A����Ž���*�����+�-����?�����»�/Y²�1·�7¿����������E����������������A����‘�9��*�����+�-����?�����»�/Y²�1·�7¿����������P����������������A�6���’�“��*�����+�-����?�����»�/Y²�1·�7¿����������[����������������A�”���•�„��*�����+�-����?�����»�/Y²�1·�7¿����������f����������������A�…���–�‡��*�����+�-����?�����»�/Y²�1·�7¿����������q����������������A�
                                    ! ���—���*�����+�-����?�����»�/Y²�1·�7¿����������|����������������A����˜�™��*�����+�-����?�����»�/Y²�1·�7¿����������‡����������������A�š���›�z��*�����+�-����?�����»�/Y²�1·�7¿����������’����������������A�{���œ�9��*�����+�-����?�����»�/Y²�1·�7¿��������������������������A�6����ž�����?�����»�/Y²�1·�7¿����������§����������������A�…���Ÿ�Z�����5�����»�/Y²�1·�7¿����������±�������������� ����¡
                                    \ No newline at end of file
                                    --- 11,17 ----
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynStructStub.java�!��������	�
                                      ������������;��������*������³�±�������
                                    ! ����H��;��������������3�����*·�±�������
                                    ! ����O��Q��������������������5�����½� Y¸�"S°�����������X��������������(�)��*�����+�-����5�����»�/Y²�1·�7¿�����������c��������������:�'��*�����+�-����5�����»�/Y²�1·�7¿�����������n��������������;�<�����5�����»�/Y²�1·�7¿�����������x��������������=�>�����5�����»�/Y²�1·�7¿�����������‚��������������?�@��*�����+�-����?�����»�/Y²�1·�7¿���������������������������A�B���C�D��*�����+�-����?�����»�/Y²�1·�7¿�����������˜����������������A�E���F�G�����5�����»�/Y²�1·�7¿�����������¢��������������H�I�����5�����»�/Y²�1·�7¿�����������¬��������������J������+������±�����������¶��������������K�L�����,�����*°�����������¿��������������M������+������±�����������É��������������N�O��*�����+����5������±�����������Ó����������������A�P���Q�R�����5�����»�/Y²�1·�7¿�����������Ü��������������S�L��*�����+����5�����»�/Y²�1·�7¿�����������ç��������������T�U�����?�����»�/Y²�1·�7¿�����������ñ����������������A�P���V�W��*�����+�-����?�����»�/Y²�1·�7¿�����������ü����������������A�X���Y�Z��*�����+�-����5�����»�/Y²�1·�7¿������������������������[�I��*�����+�-����5�����»�/Y²�1·�7¿������������������������\�]��*�����+�-����5�����»�/Y²�1·�7¿������������������������^�_��*�����+�-����5�����»�/Y²�1·�7¿����������(��������������`�L��*�����+�-����5�����»�/Y²�1·�7¿����������3��������������a�b��*�����+�-����5�����»�/Y²�1·�7¿����������>��������������c�R��*�����+�-����5�����»�/Y²�1·�7¿����������I��������������d�e��*�����+�-����5�����»�/Y²�1·�7¿����������T��������������f�g��*�����+�-����5�����»�/Y²�1·�7¿����������_��������������h�i��*�����+�-����5�����»�/Y²�1·�7¿����������j��������������j�k��*�����+�-����5�����»�/Y²�1·�7¿����������u��������������l�'��*�����+�-����5�����»�/Y²�1·�7¿����������€��������������m�G��*�����+�-����5�����»�/Y²�1·�7¿����������‹��������������n�R��*�����+�-����5�����»�/Y²�1·�7¿����������–��������������o�e��*�����+�-����5�����»�/Y²�1·�7¿����������¡��������������p�k��*�����+�-����5�����»�/Y²�1·�7¿����������¬��������������q�r��*�����+�-����5�����»�/Y²�1·�7¿����������·��������������s�]��*�����+�-����5�����»�/Y²�1·�7¿����������Â��������������t�'��*�����+�-����5�����»�/Y²�1·�7¿����������Í��������������u�W��*�����+�-����?�����»�/Y²�1·�7¿����������Ø����������������A�X���v�w��*�����+�-����?�����»�/Y²�1·�7¿����������ã����������������A�x���y�z��*�����+�-����?�����»�/Y²�1·�7¿����������î����������������A�{���|�}��*�����+�-����?�����»�/Y²�1·�7¿����������ù����������������A�~����O��*�����+�-����?�����»�/Y²�1·�7¿��������������������������A�P���€���*�����+�-����?�����»�/Y²�1·�7¿��������������������������A�‚���ƒ�„��*�����+�-����?�����»�/Y²�1·�7¿��������������������������A�…���†�‡��*�����+�-����?�����»�/Y²�1·�7¿����������%����������������A�
                                    ! ���ˆ�‰��*�����+�-����?�����»�/Y²�1·�7¿����������0����������������A�Š���‹�Œ��*�����+�-����?�����»�/Y²�1·�7¿����������;����������������A����Ž���*�����+�-����?�����»�/Y²�1·�7¿����������F����������������A����‘�9��*�����+�-����?�����»�/Y²�1·�7¿����������Q����������������A�6���’�“��*�����+�-����?�����»�/Y²�1·�7¿����������\����������������A�”���•�„��*�����+�-����?�����»�/Y²�1·�7¿����������g����������������A�…���–�‡��*�����+�-����?�����»�/Y²�1·�7¿����������r����������������A�
                                    ! ���—���*�����+�-����?�����»�/Y²�1·�7¿����������}����������������A����˜�™��*�����+�-����?�����»�/Y²�1·�7¿����������ˆ����������������A�š���›�z��*�����+�-����?�����»�/Y²�1·�7¿����������“����������������A�{���œ�9��*�����+�-����?�����»�/Y²�1·�7¿����������ž����������������A�6����ž�����?�����»�/Y²�1·�7¿����������¨����������������A�…���Ÿ�Z�����5�����»�/Y²�1·�7¿����������²�������������� ����¡
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynUnionStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynUnionStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynUnionStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynUnionStub.class	Tue Oct 12 15:55:12 2010
                                    *************** insert_any�insert_boolean�(Z)V�Z�
                                    *** 10,16 ****
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynUnionStub.java�!��������	�
                                      ������������>��������*������³�±�������
                                    ! ����G��;��������������3�����*·�±�������
                                    ! ����N��P��������������������5�����½� Y¸�"S°�����������W��������������(�)��*�����+����5�����»�-Y²�/·�5¿�����������b��������������8�9�����5�����»�-Y²�/·�5¿�����������l��������������:�)�����5�����»�-Y²�/·�5¿�����������v��������������;�<�����5�����»�-Y²�/·�5¿�����������€��������������=�9��*�����+����5�����»�-Y²�/·�5¿�����������‹��������������>�'��*�����+����5�����»�-Y²�/·�5¿�����������–��������������?�@��*�����A����?�����»�-Y²�/·�5¿�����������¡����������������C�D���E���*�����A����5�����»�-Y²�/·�5¿�����������¬��������������F���*�����A����5�����»�-Y²�/·�5¿�����������·��������������G�H�����5�����»�-Y²�/·�5¿�����������Á��������������I�<�����5�����»�-Y²�/·�5¿�����������Ë��������������J������+������±�����������Õ��������������K�)�����,�����*°�����������Þ��������������L������+������±�����������è��������������M�@��*�����A����5������±�����������ò����������������C�D���N�O�����5�����»�-Y²�/·�5¿�����������û��������������P�)��*�����A����5�����»�-Y²�/·�5¿������������������������Q�R�����?�����»�-Y²�/·�5¿��������������������������C�D���S�T��*�����A�+����?�����»�-Y²�/·�5¿��������������������������C�U���V�W��*�����A�+����5�����»�-Y²�/·�5¿����������&��������������X�<��*�����A�+����5�����»�-Y²�/·�5¿����������1��������������Y�Z��*�����A�+����5�����»�-Y²�/·�5¿����������<��������������[�\��*�����A�+����5�����»�-Y²�/·�5¿����������G��������������]�)��*�����A�+����5�����»�-Y²�/·�5¿����������R��������������^�_��*�����A�+����5�����»�-Y²�/·�5¿����������]��������������`�O��*�����A�+����5�����»�-Y²�/·�5¿����������h��������������a�b��*�����A�+����5�����»�-Y²�/·�5¿����������s��������������c�d��*�����A�+����5�����»�-Y²�/·�5¿����������~��������������e�f��*�����A�+����5�����»�-Y²�/·�5¿����������‰��������������g�h��*�����A�+����5�����»�-Y²�/·�5¿����������”��������������i�'��*�����A�+����5�����»�-Y²�/·�5¿����������Ÿ��������������j�H��*�����A�+����5�����»�-Y²�/·�5¿����������ª��������������k�O��*�����A�+����5�����»�-Y²�/·�5¿����������µ��������������l�b��*�����A�+����5�����»�-Y²�/·�5¿����������À��������������m�h��*�����A�+����5�����»�-Y²�/·�5¿����������Ë��������������n�o��*�����A�+����5�����»�-Y²�/·�5¿����������Ö��������������p�Z��*�����A�+����5�����»�-Y²�/·�5¿����������á��������������q�'��*�����A�+����5�����»�-Y²�/·�5¿����������ì��������������r�T��*�����A�+����?�����»�-Y²�/·�5¿����������÷����������������C�U���s�t��*�����A�+����?�����»�-Y²�/·�5¿��������������������������C�u���v�w��*�����A�+����?�����»�-Y²�/·�5¿����������
                                    ����������������C�x���y�z��*�����A�+����?�����»�-Y²�/·�5¿��������������������������C�{���|�@��*�����A�+����?�����»�-Y²�/·�5¿����������#����������������C�D���}�~��*�����A�+����?�����»�-Y²�/·�5¿����������.����������������C����€���*�����A�+����?�����»�-Y²�/·�5¿����������9����������������C�‚���ƒ�„��*�����A�+����?�����»�-Y²�/·�5¿����������D����������������C�
                                    ! ���…�†��*�����A�+����?�����»�-Y²�/·�5¿����������O����������������C�‡���ˆ�‰��*�����A�+����?�����»�-Y²�/·�5¿����������Z����������������C�Š���‹�Œ��*�����A�+����?�����»�-Y²�/·�5¿����������e����������������C����Ž�7��*�����A�+����?�����»�-Y²�/·�5¿����������p����������������C�4������*�����A�+����?�����»�-Y²�/·�5¿����������{����������������C�‘���’���*�����A�+����?�����»�-Y²�/·�5¿����������†����������������C�‚���“�„��*�����A�+����?�����»�-Y²�/·�5¿����������‘����������������C�
                                    ! ���”�Œ��*�����A�+����?�����»�-Y²�/·�5¿����������œ����������������C����•�–��*�����A�+����?�����»�-Y²�/·�5¿����������§����������������C�—���˜�w��*�����A�+����?�����»�-Y²�/·�5¿����������²����������������C�x���™�7��*�����A�+����?�����»�-Y²�/·�5¿����������½����������������C�4���š�›�����?�����»�-Y²�/·�5¿����������Ç����������������C�‚���œ�W�����5�����»�-Y²�/·�5¿����������Ñ������������������ž
                                    \ No newline at end of file
                                    --- 10,16 ----
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynUnionStub.java�!��������	�
                                      ������������>��������*������³�±�������
                                    ! ����H��;��������������3�����*·�±�������
                                    ! ����O��Q��������������������5�����½� Y¸�"S°�����������X��������������(�)��*�����+����5�����»�-Y²�/·�5¿�����������c��������������8�9�����5�����»�-Y²�/·�5¿�����������m��������������:�)�����5�����»�-Y²�/·�5¿�����������w��������������;�<�����5�����»�-Y²�/·�5¿�������������������������=�9��*�����+����5�����»�-Y²�/·�5¿�����������Œ��������������>�'��*�����+����5�����»�-Y²�/·�5¿�����������—��������������?�@��*�����A����?�����»�-Y²�/·�5¿�����������¢����������������C�D���E���*�����A����5�����»�-Y²�/·�5¿�����������­��������������F���*�����A����5�����»�-Y²�/·�5¿�����������¸��������������G�H�����5�����»�-Y²�/·�5¿�����������Â��������������I�<�����5�����»�-Y²�/·�5¿�����������Ì��������������J������+������±�����������Ö��������������K�)�����,�����*°�����������ß��������������L������+������±�����������é��������������M�@��*�����A����5������±�����������ó����������������C�D���N�O�����5�����»�-Y²�/·�5¿�����������ü��������������P�)��*�����A����5�����»�-Y²�/·�5¿������������������������Q�R�����?�����»�-Y²�/·�5¿��������������������������C�D���S�T��*�����A�+����?�����»�-Y²�/·�5¿��������������������������C�U���V�W��*�����A�+����5�����»�-Y²�/·�5¿����������'��������������X�<��*�����A�+����5�����»�-Y²�/·�5¿����������2��������������Y�Z��*�����A�+����5�����»�-Y²�/·�5¿����������=��������������[�\��*�����A�+����5�����»�-Y²�/·�5¿����������H��������������]�)��*�����A�+����5�����»�-Y²�/·�5¿����������S��������������^�_��*�����A�+����5�����»�-Y²�/·�5¿����������^��������������`�O��*�����A�+����5�����»�-Y²�/·�5¿����������i��������������a�b��*�����A�+����5�����»�-Y²�/·�5¿����������t��������������c�d��*�����A�+����5�����»�-Y²�/·�5¿������������������������e�f��*�����A�+����5�����»�-Y²�/·�5¿����������Š��������������g�h��*�����A�+����5�����»�-Y²�/·�5¿����������•��������������i�'��*�����A�+����5�����»�-Y²�/·�5¿���������� ��������������j�H��*�����A�+����5�����»�-Y²�/·�5¿����������«��������������k�O��*�����A�+����5�����»�-Y²�/·�5¿����������¶��������������l�b��*�����A�+����5�����»�-Y²�/·�5¿����������Á��������������m�h��*�����A�+����5�����»�-Y²�/·�5¿����������Ì��������������n�o��*�����A�+����5�����»�-Y²�/·�5¿����������×��������������p�Z��*�����A�+����5�����»�-Y²�/·�5¿����������â��������������q�'��*�����A�+����5�����»�-Y²�/·�5¿����������í��������������r�T��*�����A�+����?�����»�-Y²�/·�5¿����������ø����������������C�U���s�t��*�����A�+����?�����»�-Y²�/·�5¿��������������������������C�u���v�w��*�����A�+����?�����»�-Y²�/·�5¿��������������������������C�x���y�z��*�����A�+����?�����»�-Y²�/·�5¿��������������������������C�{���|�@��*�����A�+����?�����»�-Y²�/·�5¿����������$����������������C�D���}�~��*�����A�+����?�����»�-Y²�/·�5¿����������/����������������C����€���*�����A�+����?�����»�-Y²�/·�5¿����������:����������������C�‚���ƒ�„��*�����A�+����?�����»�-Y²�/·�5¿����������E����������������C�
                                    ! ���…�†��*�����A�+����?�����»�-Y²�/·�5¿����������P����������������C�‡���ˆ�‰��*�����A�+����?�����»�-Y²�/·�5¿����������[����������������C�Š���‹�Œ��*�����A�+����?�����»�-Y²�/·�5¿����������f����������������C����Ž�7��*�����A�+����?�����»�-Y²�/·�5¿����������q����������������C�4������*�����A�+����?�����»�-Y²�/·�5¿����������|����������������C�‘���’���*�����A�+����?�����»�-Y²�/·�5¿����������‡����������������C�‚���“�„��*�����A�+����?�����»�-Y²�/·�5¿����������’����������������C�
                                    ! ���”�Œ��*�����A�+����?�����»�-Y²�/·�5¿��������������������������C����•�–��*�����A�+����?�����»�-Y²�/·�5¿����������¨����������������C�—���˜�w��*�����A�+����?�����»�-Y²�/·�5¿����������³����������������C�x���™�7��*�����A�+����?�����»�-Y²�/·�5¿����������¾����������������C�4���š�›�����?�����»�-Y²�/·�5¿����������È����������������C�‚���œ�W�����5�����»�-Y²�/·�5¿����������Ò������������������ž
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynValueStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynValueStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/DynamicAny/_DynValueStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/DynamicAny/_DynValueStub.class	Tue Oct 12 15:55:12 2010
                                    *************** insert_any�insert_boolean�(Z)V�Z�
                                    *** 10,16 ****
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynValueStub.java�!��������	�
                                      ������������>��������*������³�±�������
                                    ! ����G��;��������������3�����*·�±�������
                                    ! ����N��P��������������������5�����½� Y¸�"S°�����������W��������������(�)��*�����+�-����5�����»�/Y²�1·�7¿�����������b��������������:�'��*�����+�-����5�����»�/Y²�1·�7¿�����������m��������������;�<��*�����-����5�����»�/Y²�1·�7¿�����������x��������������=�>��*�����-����5�����»�/Y²�1·�7¿�����������ƒ��������������?�@��*�����+�-����?�����»�/Y²�1·�7¿�����������Ž����������������A�B���C�D��*�����+�-����?�����»�/Y²�1·�7¿�����������™����������������A�E���F�G�����5�����»�/Y²�1·�7¿�����������£��������������H������5�����»�/Y²�1·�7¿�����������­��������������I������5�����»�/Y²�1·�7¿�����������·��������������J�K�����5�����»�/Y²�1·�7¿�����������Á��������������L�G�����5�����»�/Y²�1·�7¿�����������Ë��������������M������+������±�����������Õ��������������N�O�����,�����*°�����������Þ��������������P������+������±�����������è��������������Q�R��*�����+����5������±�����������ò����������������S�T���U�V�����5�����»�/Y²�1·�7¿�����������û��������������W�O��*�����+����5�����»�/Y²�1·�7¿������������������������X�Y�����?�����»�/Y²�1·�7¿��������������������������S�T���Z�[��*�����+�-����?�����»�/Y²�1·�7¿��������������������������S�\���]�^��*�����+�-����5�����»�/Y²�1·�7¿����������&��������������_�G��*�����+�-����5�����»�/Y²�1·�7¿����������1��������������`�a��*�����+�-����5�����»�/Y²�1·�7¿����������<��������������b�c��*�����+�-����5�����»�/Y²�1·�7¿����������G��������������d�O��*�����+�-����5�����»�/Y²�1·�7¿����������R��������������e�f��*�����+�-����5�����»�/Y²�1·�7¿����������]��������������g�V��*�����+�-����5�����»�/Y²�1·�7¿����������h��������������h�i��*�����+�-����5�����»�/Y²�1·�7¿����������s��������������j�k��*�����+�-����5�����»�/Y²�1·�7¿����������~��������������l�m��*�����+�-����5�����»�/Y²�1·�7¿����������‰��������������n�o��*�����+�-����5�����»�/Y²�1·�7¿����������”��������������p�'��*�����+�-����5�����»�/Y²�1·�7¿����������Ÿ��������������q�K��*�����+�-����5�����»�/Y²�1·�7¿����������ª��������������r�V��*�����+�-����5�����»�/Y²�1·�7¿����������µ��������������s�i��*�����+�-����5�����»�/Y²�1·�7¿����������À��������������t�o��*�����+�-����5�����»�/Y²�1·�7¿����������Ë��������������u�v��*�����+�-����5�����»�/Y²�1·�7¿����������Ö��������������w�a��*�����+�-����5�����»�/Y²�1·�7¿����������á��������������x�'��*�����+�-����5�����»�/Y²�1·�7¿����������ì��������������y�[��*�����+�-����?�����»�/Y²�1·�7¿����������÷����������������S�\���z�{��*�����+�-����?�����»�/Y²�1·�7¿��������������������������S�|���}�~��*�����+�-����?�����»�/Y²�1·�7¿����������
                                    ����������������S����€���*�����+�-����?�����»�/Y²�1·�7¿��������������������������S�‚���ƒ�R��*�����+�-����?�����»�/Y²�1·�7¿����������#����������������S�T���„�…��*�����+�-����?�����»�/Y²�1·�7¿����������.����������������S�†���‡�ˆ��*�����+�-����?�����»�/Y²�1·�7¿����������9����������������S�‰���Š�‹��*�����+�-����?�����»�/Y²�1·�7¿����������D����������������S�
                                    ! ���Œ���*�����+�-����?�����»�/Y²�1·�7¿����������O����������������S�Ž������*�����+�-����?�����»�/Y²�1·�7¿����������Z����������������S�‘���’�“��*�����+�-����?�����»�/Y²�1·�7¿����������e����������������S�”���•�9��*�����+�-����?�����»�/Y²�1·�7¿����������p����������������S�6���–�—��*�����+�-����?�����»�/Y²�1·�7¿����������{����������������S�˜���™�ˆ��*�����+�-����?�����»�/Y²�1·�7¿����������†����������������S�‰���š�‹��*�����+�-����?�����»�/Y²�1·�7¿����������‘����������������S�
                                    ! ���›�“��*�����+�-����?�����»�/Y²�1·�7¿����������œ����������������S�”���œ���*�����+�-����?�����»�/Y²�1·�7¿����������§����������������S�ž���Ÿ�~��*�����+�-����?�����»�/Y²�1·�7¿����������²����������������S���� �9��*�����+�-����?�����»�/Y²�1·�7¿����������½����������������S�6���¡�¢�����?�����»�/Y²�1·�7¿����������Ç����������������S�‰���£�^�����5�����»�/Y²�1·�7¿����������Ñ��������������¤����¥
                                    \ No newline at end of file
                                    --- 10,16 ----
                                      insert_val�(Ljava/io/Serializable;)V�Ljava/io/Serializable;�insert_wchar�insert_wstring�seek�(I)Z�to_any�
                                      SourceFile�_DynValueStub.java�!��������	�
                                      ������������>��������*������³�±�������
                                    ! ����H��;��������������3�����*·�±�������
                                    ! ����O��Q��������������������5�����½� Y¸�"S°�����������X��������������(�)��*�����+�-����5�����»�/Y²�1·�7¿�����������c��������������:�'��*�����+�-����5�����»�/Y²�1·�7¿�����������n��������������;�<��*�����-����5�����»�/Y²�1·�7¿�����������y��������������=�>��*�����-����5�����»�/Y²�1·�7¿�����������„��������������?�@��*�����+�-����?�����»�/Y²�1·�7¿���������������������������A�B���C�D��*�����+�-����?�����»�/Y²�1·�7¿�����������š����������������A�E���F�G�����5�����»�/Y²�1·�7¿�����������¤��������������H������5�����»�/Y²�1·�7¿�����������®��������������I������5�����»�/Y²�1·�7¿�����������¸��������������J�K�����5�����»�/Y²�1·�7¿�����������Â��������������L�G�����5�����»�/Y²�1·�7¿�����������Ì��������������M������+������±�����������Ö��������������N�O�����,�����*°�����������ß��������������P������+������±�����������é��������������Q�R��*�����+����5������±�����������ó����������������S�T���U�V�����5�����»�/Y²�1·�7¿�����������ü��������������W�O��*�����+����5�����»�/Y²�1·�7¿������������������������X�Y�����?�����»�/Y²�1·�7¿��������������������������S�T���Z�[��*�����+�-����?�����»�/Y²�1·�7¿��������������������������S�\���]�^��*�����+�-����5�����»�/Y²�1·�7¿����������'��������������_�G��*�����+�-����5�����»�/Y²�1·�7¿����������2��������������`�a��*�����+�-����5�����»�/Y²�1·�7¿����������=��������������b�c��*�����+�-����5�����»�/Y²�1·�7¿����������H��������������d�O��*�����+�-����5�����»�/Y²�1·�7¿����������S��������������e�f��*�����+�-����5�����»�/Y²�1·�7¿����������^��������������g�V��*�����+�-����5�����»�/Y²�1·�7¿����������i��������������h�i��*�����+�-����5�����»�/Y²�1·�7¿����������t��������������j�k��*�����+�-����5�����»�/Y²�1·�7¿������������������������l�m��*�����+�-����5�����»�/Y²�1·�7¿����������Š��������������n�o��*�����+�-����5�����»�/Y²�1·�7¿����������•��������������p�'��*�����+�-����5�����»�/Y²�1·�7¿���������� ��������������q�K��*�����+�-����5�����»�/Y²�1·�7¿����������«��������������r�V��*�����+�-����5�����»�/Y²�1·�7¿����������¶��������������s�i��*�����+�-����5�����»�/Y²�1·�7¿����������Á��������������t�o��*�����+�-����5�����»�/Y²�1·�7¿����������Ì��������������u�v��*�����+�-����5�����»�/Y²�1·�7¿����������×��������������w�a��*�����+�-����5�����»�/Y²�1·�7¿����������â��������������x�'��*�����+�-����5�����»�/Y²�1·�7¿����������í��������������y�[��*�����+�-����?�����»�/Y²�1·�7¿����������ø����������������S�\���z�{��*�����+�-����?�����»�/Y²�1·�7¿��������������������������S�|���}�~��*�����+�-����?�����»�/Y²�1·�7¿��������������������������S����€���*�����+�-����?�����»�/Y²�1·�7¿��������������������������S�‚���ƒ�R��*�����+�-����?�����»�/Y²�1·�7¿����������$����������������S�T���„�…��*�����+�-����?�����»�/Y²�1·�7¿����������/����������������S�†���‡�ˆ��*�����+�-����?�����»�/Y²�1·�7¿����������:����������������S�‰���Š�‹��*�����+�-����?�����»�/Y²�1·�7¿����������E����������������S�
                                    ! ���Œ���*�����+�-����?�����»�/Y²�1·�7¿����������P����������������S�Ž������*�����+�-����?�����»�/Y²�1·�7¿����������[����������������S�‘���’�“��*�����+�-����?�����»�/Y²�1·�7¿����������f����������������S�”���•�9��*�����+�-����?�����»�/Y²�1·�7¿����������q����������������S�6���–�—��*�����+�-����?�����»�/Y²�1·�7¿����������|����������������S�˜���™�ˆ��*�����+�-����?�����»�/Y²�1·�7¿����������‡����������������S�‰���š�‹��*�����+�-����?�����»�/Y²�1·�7¿����������’����������������S�
                                    ! ���›�“��*�����+�-����?�����»�/Y²�1·�7¿��������������������������S�”���œ���*�����+�-����?�����»�/Y²�1·�7¿����������¨����������������S�ž���Ÿ�~��*�����+�-����?�����»�/Y²�1·�7¿����������³����������������S���� �9��*�����+�-����?�����»�/Y²�1·�7¿����������¾����������������S�6���¡�¢�����?�����»�/Y²�1·�7¿����������È����������������S�‰���£�^�����5�����»�/Y²�1·�7¿����������Ò��������������¤����¥
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/PortableServer/_ServantActivatorStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/PortableServer/_ServantActivatorStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/PortableServer/_ServantActivatorStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/PortableServer/_ServantActivatorStub.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,6 ****
                                      Exceptions�*�%org/omg/PortableServer/ForwardRequest�	Object_id�[B�poa�Lorg/omg/PortableServer/POA;�etherealize�C([BLorg/omg/PortableServer/POA;Lorg/omg/PortableServer/Servant;ZZ)V�servant� Lorg/omg/PortableServer/Servant;�cleanup�Z�	remaining�
                                      SourceFile�_ServantActivatorStub.java�!��������	�
                                      ��������������������*������³�±�������
                                    ! ����I��<��������������/�����*·�±�����������<��������������������E�����½� Y"SY$S°�����������T��U��V��S��������������&�'��(�����)����@�����°�����������l���� ������������+�,�����-�.���/�0�����]������±�����������z����>������������+�,�����-�.�����1�2�����3�4�����5�4���6����7
                                    \ No newline at end of file
                                    --- 3,6 ----
                                      Exceptions�*�%org/omg/PortableServer/ForwardRequest�	Object_id�[B�poa�Lorg/omg/PortableServer/POA;�etherealize�C([BLorg/omg/PortableServer/POA;Lorg/omg/PortableServer/Servant;ZZ)V�servant� Lorg/omg/PortableServer/Servant;�cleanup�Z�	remaining�
                                      SourceFile�_ServantActivatorStub.java�!��������	�
                                      ��������������������*������³�±�������
                                    ! ����J��<��������������/�����*·�±�����������<��������������������E�����½� Y"SY$S°�����������U��V��W��T��������������&�'��(�����)����@�����°�����������m���� ������������+�,�����-�.���/�0�����]������±�����������{����>������������+�,�����-�.�����1�2�����3�4�����5�4���6����7
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/lib/org/omg/PortableServer/_ServantLocatorStub.class gcc-4.6.0/libjava/classpath/lib/org/omg/PortableServer/_ServantLocatorStub.class
                                    *** gcc-4.5.2/libjava/classpath/lib/org/omg/PortableServer/_ServantLocatorStub.class	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/classpath/lib/org/omg/PortableServer/_ServantLocatorStub.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions�.�%org/omg/PortableServer/F
                                    *** 5,8 ****
                                      postinvoke�e([BLorg/omg/PortableServer/POA;Ljava/lang/String;Ljava/lang/Object;Lorg/omg/PortableServer/Servant;)V�Ljava/lang/Object;�servant� Lorg/omg/PortableServer/Servant;�
                                      SourceFile�_ServantLocatorStub.java�!��������	�
                                      �����������������������������*������³�±�������
                                    ! ����J��=��������������/�����*·�±�����������=��������� �!����"�#�����E�����½�$Y&SY(S°�����������]��^��_��\��������� �!����*�+��,�����-����T�����°�����������v����4����� �!������/�0�����1�2�����3������4�5���6�7�����]������±�����������ƒ����>����� �!������/�0�����1�2�����3������4�8�����9�:���;����<
                                    \ No newline at end of file
                                    --- 5,8 ----
                                      postinvoke�e([BLorg/omg/PortableServer/POA;Ljava/lang/String;Ljava/lang/Object;Lorg/omg/PortableServer/Servant;)V�Ljava/lang/Object;�servant� Lorg/omg/PortableServer/Servant;�
                                      SourceFile�_ServantLocatorStub.java�!��������	�
                                      �����������������������������*������³�±�������
                                    ! ����K��=��������������/�����*·�±�����������=��������� �!����"�#�����E�����½�$Y&SY(S°�����������^��_��`��]��������� �!����*�+��,�����-����T�����°�����������w����4����� �!������/�0�����1�2�����3������4�5���6�7�����]������±�����������„����>����� �!������/�0�����1�2�����3������4�8�����9�:���;����<
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/ltcf-c.sh gcc-4.6.0/libjava/classpath/ltcf-c.sh
                                    *** gcc-4.5.2/libjava/classpath/ltcf-c.sh	Tue Jan 17 18:09:40 2006
                                    --- gcc-4.6.0/libjava/classpath/ltcf-c.sh	Sun Feb 13 11:45:53 2011
                                    *************** else
                                    *** 423,432 ****
                                          link_all_deplibs=yes
                                          ;;
                                      
                                    -   freebsd1*)
                                    -   ld_shlibs=no
                                    -   ;;
                                    - 
                                        # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
                                        # support.  Future versions do this automatically, but an explicit c++rt0.o
                                        # does not break anything, and helps significantly (at the cost of a little
                                    --- 423,428 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/ltcf-gcj.sh gcc-4.6.0/libjava/classpath/ltcf-gcj.sh
                                    *** gcc-4.5.2/libjava/classpath/ltcf-gcj.sh	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/ltcf-gcj.sh	Sun Feb 13 11:45:53 2011
                                    *************** else
                                    *** 422,431 ****
                                          ;;
                                      
                                      
                                    -   freebsd1*)
                                    -     ld_shlibs=no
                                    -     ;;
                                    - 
                                        # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
                                        # support.  Future versions do this automatically, but an explicit c++rt0.o
                                        # does not break anything, and helps significantly (at the cost of a little
                                    --- 422,427 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/ltconfig gcc-4.6.0/libjava/classpath/ltconfig
                                    *** gcc-4.5.2/libjava/classpath/ltconfig	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/ltconfig	Sun Feb 13 11:45:53 2011
                                    *************** darwin* | rhapsody*)
                                    *** 1128,1137 ****
                                        sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
                                        ;;
                                      
                                    - freebsd1*)
                                    -   dynamic_linker=no
                                    -   ;;
                                    - 
                                      freebsd*)
                                        objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
                                        version_type=freebsd-$objformat
                                    --- 1128,1133 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/m4/ac_prog_antlr.m4 gcc-4.6.0/libjava/classpath/m4/ac_prog_antlr.m4
                                    *** gcc-4.5.2/libjava/classpath/m4/ac_prog_antlr.m4	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/m4/ac_prog_antlr.m4	Tue Oct 12 15:55:12 2010
                                    *************** AC_DEFUN([AC_PROG_ANTLR],[
                                    *** 24,30 ****
                                            if test -z "$JAVA"; then
                                              AC_MSG_ERROR(Failed to find either an antlr binary or a suitable Java runtime for ANTLR.)
                                            else
                                    !         ANTLR="$JAVA -classpath $ANTLR_JAR antlr.Tool"
                                            fi
                                        fi
                                        AC_SUBST(ANTLR)
                                    --- 24,34 ----
                                            if test -z "$JAVA"; then
                                              AC_MSG_ERROR(Failed to find either an antlr binary or a suitable Java runtime for ANTLR.)
                                            else
                                    !         if test -z "$ANTLR_JAR"; then
                                    !           AC_MSG_ERROR(Failed to find either an antlr binary or a suitable antlr jar file.)
                                    !         else
                                    !           ANTLR="$JAVA -classpath $ANTLR_JAR antlr.Tool"
                                    !         fi
                                            fi
                                        fi
                                        AC_SUBST(ANTLR)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/m4/ac_prog_java.m4 gcc-4.6.0/libjava/classpath/m4/ac_prog_java.m4
                                    *** gcc-4.5.2/libjava/classpath/m4/ac_prog_java.m4	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/m4/ac_prog_java.m4	Tue Oct 12 15:55:12 2010
                                    *************** else
                                    *** 12,17 ****
                                              test "x$JAVA" = x && AC_CHECK_PROGS(JAVA, cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT, $JAVAPREFIX)
                                      fi
                                      test "x$JAVA" = x && AC_MSG_ERROR([no acceptable Java virtual machine found in \$PATH])
                                    - AC_PROG_JAVA_WORKS
                                      AC_PROVIDE([$0])dnl
                                      ])
                                    --- 12,16 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/m4/ac_prog_java_works.m4 gcc-4.6.0/libjava/classpath/m4/ac_prog_java_works.m4
                                    *** gcc-4.5.2/libjava/classpath/m4/ac_prog_java_works.m4	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/m4/ac_prog_java_works.m4	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,7 ****
                                      dnl Available from the GNU Autoconf Macro Archive at:
                                      dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_prog_java_works.html
                                      dnl
                                    ! AC_DEFUN([AC_PROG_JAVA_WORKS], [
                                      AC_CHECK_PROG(uudecode, uudecode$EXEEXT, yes)
                                      if test x$uudecode = xyes; then
                                      AC_CACHE_CHECK([if uudecode can decode base 64 file], ac_cv_prog_uudecode_base64, [
                                    --- 1,8 ----
                                      dnl Available from the GNU Autoconf Macro Archive at:
                                      dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_prog_java_works.html
                                      dnl
                                    ! AC_DEFUN_ONCE([AC_PROG_JAVA_WORKS], [
                                    ! AC_REQUIRE([AC_PROG_JAVA])
                                      AC_CHECK_PROG(uudecode, uudecode$EXEEXT, yes)
                                      if test x$uudecode = xyes; then
                                      AC_CACHE_CHECK([if uudecode can decode base 64 file], ac_cv_prog_uudecode_base64, [
                                    *************** if test x$ac_cv_prog_uudecode_base64 != 
                                    *** 45,53 ****
                                              if test x$ac_cv_prog_javac_works = xno; then
                                                      AC_MSG_ERROR([Cannot compile java source. $JAVAC does not work properly])
                                              fi
                                    -         if test x$ac_cv_prog_javac_works = x; then
                                    -                 AC_PROG_JAVAC
                                    -         fi
                                      fi
                                      AC_CACHE_CHECK(if $JAVA works, ac_cv_prog_java_works, [
                                      JAVA_TEST=Test.java
                                    --- 46,51 ----
                                    *************** public static void main (String args[]) 
                                    *** 63,68 ****
                                    --- 61,67 ----
                                      EOF
                                      changequote([, ])dnl
                                      if test x$ac_cv_prog_uudecode_base64 != xyes; then
                                    +    	AC_REQUIRE([AC_PROG_JAVAC_WORKS])
                                              if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) && test -s $CLASS_TEST; then
                                                      :
                                              else
                                    *************** AC_PROVIDE([$0])dnl
                                    *** 86,93 ****
                                      dnl Available from the GNU Autoconf Macro Archive at:
                                      dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_try_compile_java.html
                                      dnl
                                    ! AC_DEFUN([AC_TRY_COMPILE_JAVA],[
                                    ! AC_REQUIRE([AC_PROG_JAVAC])dnl
                                      cat << \EOF > Test.java
                                      /* [#]line __oline__ "configure" */
                                      ifelse([$1], , , [import $1;])
                                    --- 85,92 ----
                                      dnl Available from the GNU Autoconf Macro Archive at:
                                      dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_try_compile_java.html
                                      dnl
                                    ! AC_DEFUN_ONCE([AC_TRY_COMPILE_JAVA],[
                                    ! AC_REQUIRE([AC_PROG_JAVAC_WORKS])dnl
                                      cat << \EOF > Test.java
                                      /* [#]line __oline__ "configure" */
                                      ifelse([$1], , , [import $1;])
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/m4/ac_prog_javac.m4 gcc-4.6.0/libjava/classpath/m4/ac_prog_javac.m4
                                    *** gcc-4.5.2/libjava/classpath/m4/ac_prog_javac.m4	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/m4/ac_prog_javac.m4	Tue Oct 12 15:55:12 2010
                                    *************** dnl @license GPLWithACException
                                    *** 34,40 ****
                                      dnl
                                      dnl Modified to remove jikes by Andrew John Hughes on 2008-02-11
                                      
                                    ! AC_DEFUN([AC_PROG_JAVAC],[
                                      AC_REQUIRE([AC_EXEEXT])dnl
                                      ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
                                      JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
                                    --- 34,40 ----
                                      dnl
                                      dnl Modified to remove jikes by Andrew John Hughes on 2008-02-11
                                      
                                    ! AC_DEFUN_ONCE([AC_PROG_JAVAC],[
                                      AC_REQUIRE([AC_EXEEXT])dnl
                                      ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
                                      JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
                                    *************** else
                                    *** 46,61 ****
                                      fi
                                      test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH])
                                      AC_CACHE_CHECK([if $JAVAC is a version of gcj], ac_cv_prog_javac_is_gcj, [
                                    ! if $JAVAC --version | grep gcj > /dev/null; then
                                        ac_cv_prog_javac_is_gcj=yes;
                                        JAVAC="$JAVAC $GCJ_OPTS";
                                    ! fi])
                                      AC_SUBST(JAVAC_IS_GCJ, $ac_cv_prog_javac_is_gcj)
                                      AM_CONDITIONAL(GCJ_JAVAC, test x"${JAVAC_IS_GCJ}" = xyes)
                                    - dnl GCJ LOCAL
                                    - if test "$enable_java_maintainer_mode" = yes; then
                                    - AC_PROG_JAVAC_WORKS
                                    - fi
                                      dnl END GCJ LOCAL
                                      AC_PROVIDE([$0])dnl
                                      ])
                                    --- 46,60 ----
                                      fi
                                      test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH])
                                      AC_CACHE_CHECK([if $JAVAC is a version of gcj], ac_cv_prog_javac_is_gcj, [
                                    ! if $JAVAC --version 2>&1 | grep gcj >&AS_MESSAGE_LOG_FD ; then
                                        ac_cv_prog_javac_is_gcj=yes;
                                        JAVAC="$JAVAC $GCJ_OPTS";
                                    ! else
                                    !   ac_cv_prog_javac_is_gcj=no;
                                    ! fi
                                    ! ])
                                      AC_SUBST(JAVAC_IS_GCJ, $ac_cv_prog_javac_is_gcj)
                                      AM_CONDITIONAL(GCJ_JAVAC, test x"${JAVAC_IS_GCJ}" = xyes)
                                      dnl END GCJ LOCAL
                                      AC_PROVIDE([$0])dnl
                                      ])
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/m4/ac_prog_javac_works.m4 gcc-4.6.0/libjava/classpath/m4/ac_prog_javac_works.m4
                                    *** gcc-4.5.2/libjava/classpath/m4/ac_prog_javac_works.m4	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/m4/ac_prog_javac_works.m4	Tue Oct 12 15:55:12 2010
                                    *************** dnl @license GPLWithACException
                                    *** 16,22 ****
                                      dnl
                                      dnl Modified to test for 1.5 by Andrew John Hughes on 2008-02-11
                                      
                                    ! AC_DEFUN([AC_PROG_JAVAC_WORKS],[
                                      AC_CACHE_CHECK([if $JAVAC works], ac_cv_prog_javac_works, [
                                      JAVA_TEST=Object.java
                                      CLASS_TEST=Object.class
                                    --- 16,23 ----
                                      dnl
                                      dnl Modified to test for 1.5 by Andrew John Hughes on 2008-02-11
                                      
                                    ! AC_DEFUN_ONCE([AC_PROG_JAVAC_WORKS],[
                                    ! AC_REQUIRE([AC_PROG_JAVAC])
                                      AC_CACHE_CHECK([if $JAVAC works], ac_cv_prog_javac_works, [
                                      JAVA_TEST=Object.java
                                      CLASS_TEST=Object.class
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/m4/lib-ld.m4 gcc-4.6.0/libjava/classpath/m4/lib-ld.m4
                                    *** gcc-4.5.2/libjava/classpath/m4/lib-ld.m4	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/m4/lib-ld.m4	Thu Jan  1 00:00:00 1970
                                    ***************
                                    *** 1,110 ****
                                    - # lib-ld.m4 serial 2 (gettext-0.12)
                                    - dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
                                    - dnl This file is free software, distributed under the terms of the GNU
                                    - dnl General Public License.  As a special exception to the GNU General
                                    - dnl Public License, this file may be distributed as part of a program
                                    - dnl that contains a configuration script generated by Autoconf, under
                                    - dnl the same distribution terms as the rest of that program.
                                    - 
                                    - dnl Subroutines of libtool.m4,
                                    - dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
                                    - dnl with libtool.m4.
                                    - 
                                    - dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
                                    - AC_DEFUN([AC_LIB_PROG_LD_GNU],
                                    - [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
                                    - [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
                                    - if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
                                    -   acl_cv_prog_gnu_ld=yes
                                    - else
                                    -   acl_cv_prog_gnu_ld=no
                                    - fi])
                                    - with_gnu_ld=$acl_cv_prog_gnu_ld
                                    - ])
                                    - 
                                    - dnl From libtool-1.4. Sets the variable LD.
                                    - AC_DEFUN([AC_LIB_PROG_LD],
                                    - [AC_ARG_WITH(gnu-ld,
                                    - [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
                                    - test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
                                    - AC_REQUIRE([AC_PROG_CC])dnl
                                    - AC_REQUIRE([AC_CANONICAL_HOST])dnl
                                    - # Prepare PATH_SEPARATOR.
                                    - # The user is always right.
                                    - if test "${PATH_SEPARATOR+set}" != set; then
                                    -   echo "#! /bin/sh" >conf$$.sh
                                    -   echo  "exit 0"   >>conf$$.sh
                                    -   chmod +x conf$$.sh
                                    -   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
                                    -     PATH_SEPARATOR=';'
                                    -   else
                                    -     PATH_SEPARATOR=:
                                    -   fi
                                    -   rm -f conf$$.sh
                                    - fi
                                    - ac_prog=ld
                                    - if test "$GCC" = yes; then
                                    -   # Check if gcc -print-prog-name=ld gives a path.
                                    -   AC_MSG_CHECKING([for ld used by GCC])
                                    -   case $host in
                                    -   *-*-mingw*)
                                    -     # gcc leaves a trailing carriage return which upsets mingw
                                    -     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
                                    -   *)
                                    -     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
                                    -   esac
                                    -   case $ac_prog in
                                    -     # Accept absolute paths.
                                    -     [[\\/]* | [A-Za-z]:[\\/]*)]
                                    -       [re_direlt='/[^/][^/]*/\.\./']
                                    -       # Canonicalize the path of ld
                                    -       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
                                    -       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
                                    - 	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
                                    -       done
                                    -       test -z "$LD" && LD="$ac_prog"
                                    -       ;;
                                    -   "")
                                    -     # If it fails, then pretend we aren't using GCC.
                                    -     ac_prog=ld
                                    -     ;;
                                    -   *)
                                    -     # If it is relative, then search for the first ld in PATH.
                                    -     with_gnu_ld=unknown
                                    -     ;;
                                    -   esac
                                    - elif test "$with_gnu_ld" = yes; then
                                    -   AC_MSG_CHECKING([for GNU ld])
                                    - else
                                    -   AC_MSG_CHECKING([for non-GNU ld])
                                    - fi
                                    - AC_CACHE_VAL(acl_cv_path_LD,
                                    - [if test -z "$LD"; then
                                    -   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
                                    -   for ac_dir in $PATH; do
                                    -     test -z "$ac_dir" && ac_dir=.
                                    -     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
                                    -       acl_cv_path_LD="$ac_dir/$ac_prog"
                                    -       # Check to see if the program is GNU ld.  I'd rather use --version,
                                    -       # but apparently some GNU ld's only accept -v.
                                    -       # Break only if it was the GNU/non-GNU ld that we prefer.
                                    -       if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
                                    - 	test "$with_gnu_ld" != no && break
                                    -       else
                                    - 	test "$with_gnu_ld" != yes && break
                                    -       fi
                                    -     fi
                                    -   done
                                    -   IFS="$ac_save_ifs"
                                    - else
                                    -   acl_cv_path_LD="$LD" # Let the user override the test with a path.
                                    - fi])
                                    - LD="$acl_cv_path_LD"
                                    - if test -n "$LD"; then
                                    -   AC_MSG_RESULT($LD)
                                    - else
                                    -   AC_MSG_RESULT(no)
                                    - fi
                                    - test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
                                    - AC_LIB_PROG_LD_GNU
                                    - ])
                                    --- 0 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/m4/lib-link.m4 gcc-4.6.0/libjava/classpath/m4/lib-link.m4
                                    *** gcc-4.5.2/libjava/classpath/m4/lib-link.m4	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/m4/lib-link.m4	Thu Jan  1 00:00:00 1970
                                    ***************
                                    *** 1,551 ****
                                    - # lib-link.m4 serial 4 (gettext-0.12)
                                    - dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
                                    - dnl This file is free software, distributed under the terms of the GNU
                                    - dnl General Public License.  As a special exception to the GNU General
                                    - dnl Public License, this file may be distributed as part of a program
                                    - dnl that contains a configuration script generated by Autoconf, under
                                    - dnl the same distribution terms as the rest of that program.
                                    - 
                                    - dnl From Bruno Haible.
                                    - 
                                    - dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
                                    - dnl the libraries corresponding to explicit and implicit dependencies.
                                    - dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
                                    - dnl augments the CPPFLAGS variable.
                                    - AC_DEFUN([AC_LIB_LINKFLAGS],
                                    - [
                                    -   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
                                    -   AC_REQUIRE([AC_LIB_RPATH])
                                    -   define([Name],[translit([$1],[./-], [___])])
                                    -   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
                                    -                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
                                    -   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
                                    -     AC_LIB_LINKFLAGS_BODY([$1], [$2])
                                    -     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
                                    -     ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
                                    -     ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
                                    -   ])
                                    -   LIB[]NAME="$ac_cv_lib[]Name[]_libs"
                                    -   LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
                                    -   INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
                                    -   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
                                    -   AC_SUBST([LIB]NAME)
                                    -   AC_SUBST([LTLIB]NAME)
                                    -   dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
                                    -   dnl results of this search when this library appears as a dependency.
                                    -   HAVE_LIB[]NAME=yes
                                    -   undefine([Name])
                                    -   undefine([NAME])
                                    - ])
                                    - 
                                    - dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
                                    - dnl searches for libname and the libraries corresponding to explicit and
                                    - dnl implicit dependencies, together with the specified include files and
                                    - dnl the ability to compile and link the specified testcode. If found, it
                                    - dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
                                    - dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
                                    - dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
                                    - dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
                                    - AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
                                    - [
                                    -   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
                                    -   AC_REQUIRE([AC_LIB_RPATH])
                                    -   define([Name],[translit([$1],[./-], [___])])
                                    -   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
                                    -                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
                                    - 
                                    -   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
                                    -   dnl accordingly.
                                    -   AC_LIB_LINKFLAGS_BODY([$1], [$2])
                                    - 
                                    -   dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
                                    -   dnl because if the user has installed lib[]Name and not disabled its use
                                    -   dnl via --without-lib[]Name-prefix, he wants to use it.
                                    -   ac_save_CPPFLAGS="$CPPFLAGS"
                                    -   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
                                    - 
                                    -   AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
                                    -     ac_save_LIBS="$LIBS"
                                    -     LIBS="$LIBS $LIB[]NAME"
                                    -     AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
                                    -     LIBS="$ac_save_LIBS"
                                    -   ])
                                    -   if test "$ac_cv_lib[]Name" = yes; then
                                    -     HAVE_LIB[]NAME=yes
                                    -     AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
                                    -     AC_MSG_CHECKING([how to link with lib[]$1])
                                    -     AC_MSG_RESULT([$LIB[]NAME])
                                    -   else
                                    -     HAVE_LIB[]NAME=no
                                    -     dnl If $LIB[]NAME didn't lead to a usable library, we don't need
                                    -     dnl $INC[]NAME either.
                                    -     CPPFLAGS="$ac_save_CPPFLAGS"
                                    -     LIB[]NAME=
                                    -     LTLIB[]NAME=
                                    -   fi
                                    -   AC_SUBST([HAVE_LIB]NAME)
                                    -   AC_SUBST([LIB]NAME)
                                    -   AC_SUBST([LTLIB]NAME)
                                    -   undefine([Name])
                                    -   undefine([NAME])
                                    - ])
                                    - 
                                    - dnl Determine the platform dependent parameters needed to use rpath:
                                    - dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
                                    - dnl hardcode_direct, hardcode_minus_L.
                                    - AC_DEFUN([AC_LIB_RPATH],
                                    - [
                                    -   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
                                    -   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
                                    -   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
                                    -   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
                                    -   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
                                    -     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
                                    -     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
                                    -     . ./conftest.sh
                                    -     rm -f ./conftest.sh
                                    -     acl_cv_rpath=done
                                    -   ])
                                    -   wl="$acl_cv_wl"
                                    -   libext="$acl_cv_libext"
                                    -   shlibext="$acl_cv_shlibext"
                                    -   hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
                                    -   hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
                                    -   hardcode_direct="$acl_cv_hardcode_direct"
                                    -   hardcode_minus_L="$acl_cv_hardcode_minus_L"
                                    -   dnl Determine whether the user wants rpath handling at all.
                                    -   AC_ARG_ENABLE(rpath,
                                    -     [  --disable-rpath         do not hardcode runtime library paths],
                                    -     :, enable_rpath=yes)
                                    - ])
                                    - 
                                    - dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
                                    - dnl the libraries corresponding to explicit and implicit dependencies.
                                    - dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
                                    - AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                                    - [
                                    -   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
                                    -                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
                                    -   dnl By default, look in $includedir and $libdir.
                                    -   use_additional=yes
                                    -   AC_LIB_WITH_FINAL_PREFIX([
                                    -     eval additional_includedir=\"$includedir\"
                                    -     eval additional_libdir=\"$libdir\"
                                    -   ])
                                    -   AC_LIB_ARG_WITH([lib$1-prefix],
                                    - [  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
                                    -   --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
                                    - [
                                    -     if test "X$withval" = "Xno"; then
                                    -       use_additional=no
                                    -     else
                                    -       if test "X$withval" = "X"; then
                                    -         AC_LIB_WITH_FINAL_PREFIX([
                                    -           eval additional_includedir=\"$includedir\"
                                    -           eval additional_libdir=\"$libdir\"
                                    -         ])
                                    -       else
                                    -         additional_includedir="$withval/include"
                                    -         additional_libdir="$withval/lib"
                                    -       fi
                                    -     fi
                                    - ])
                                    -   dnl Search the library and its dependencies in $additional_libdir and
                                    -   dnl $LDFLAGS. Using breadth-first-seach.
                                    -   LIB[]NAME=
                                    -   LTLIB[]NAME=
                                    -   INC[]NAME=
                                    -   rpathdirs=
                                    -   ltrpathdirs=
                                    -   names_already_handled=
                                    -   names_next_round='$1 $2'
                                    -   while test -n "$names_next_round"; do
                                    -     names_this_round="$names_next_round"
                                    -     names_next_round=
                                    -     for name in $names_this_round; do
                                    -       already_handled=
                                    -       for n in $names_already_handled; do
                                    -         if test "$n" = "$name"; then
                                    -           already_handled=yes
                                    -           break
                                    -         fi
                                    -       done
                                    -       if test -z "$already_handled"; then
                                    -         names_already_handled="$names_already_handled $name"
                                    -         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
                                    -         dnl or AC_LIB_HAVE_LINKFLAGS call.
                                    -         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
                                    -         eval value=\"\$HAVE_LIB$uppername\"
                                    -         if test -n "$value"; then
                                    -           if test "$value" = yes; then
                                    -             eval value=\"\$LIB$uppername\"
                                    -             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
                                    -             eval value=\"\$LTLIB$uppername\"
                                    -             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
                                    -           else
                                    -             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
                                    -             dnl that this library doesn't exist. So just drop it.
                                    -             :
                                    -           fi
                                    -         else
                                    -           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
                                    -           dnl and the already constructed $LIBNAME/$LTLIBNAME.
                                    -           found_dir=
                                    -           found_la=
                                    -           found_so=
                                    -           found_a=
                                    -           if test $use_additional = yes; then
                                    -             if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
                                    -               found_dir="$additional_libdir"
                                    -               found_so="$additional_libdir/lib$name.$shlibext"
                                    -               if test -f "$additional_libdir/lib$name.la"; then
                                    -                 found_la="$additional_libdir/lib$name.la"
                                    -               fi
                                    -             else
                                    -               if test -f "$additional_libdir/lib$name.$libext"; then
                                    -                 found_dir="$additional_libdir"
                                    -                 found_a="$additional_libdir/lib$name.$libext"
                                    -                 if test -f "$additional_libdir/lib$name.la"; then
                                    -                   found_la="$additional_libdir/lib$name.la"
                                    -                 fi
                                    -               fi
                                    -             fi
                                    -           fi
                                    -           if test "X$found_dir" = "X"; then
                                    -             for x in $LDFLAGS $LTLIB[]NAME; do
                                    -               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
                                    -               case "$x" in
                                    -                 -L*)
                                    -                   dir=`echo "X$x" | sed -e 's/^X-L//'`
                                    -                   if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
                                    -                     found_dir="$dir"
                                    -                     found_so="$dir/lib$name.$shlibext"
                                    -                     if test -f "$dir/lib$name.la"; then
                                    -                       found_la="$dir/lib$name.la"
                                    -                     fi
                                    -                   else
                                    -                     if test -f "$dir/lib$name.$libext"; then
                                    -                       found_dir="$dir"
                                    -                       found_a="$dir/lib$name.$libext"
                                    -                       if test -f "$dir/lib$name.la"; then
                                    -                         found_la="$dir/lib$name.la"
                                    -                       fi
                                    -                     fi
                                    -                   fi
                                    -                   ;;
                                    -               esac
                                    -               if test "X$found_dir" != "X"; then
                                    -                 break
                                    -               fi
                                    -             done
                                    -           fi
                                    -           if test "X$found_dir" != "X"; then
                                    -             dnl Found the library.
                                    -             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
                                    -             if test "X$found_so" != "X"; then
                                    -               dnl Linking with a shared library. We attempt to hardcode its
                                    -               dnl directory into the executable's runpath, unless it's the
                                    -               dnl standard /usr/lib.
                                    -               if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
                                    -                 dnl No hardcoding is needed.
                                    -                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
                                    -               else
                                    -                 dnl Use an explicit option to hardcode DIR into the resulting
                                    -                 dnl binary.
                                    -                 dnl Potentially add DIR to ltrpathdirs.
                                    -                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
                                    -                 haveit=
                                    -                 for x in $ltrpathdirs; do
                                    -                   if test "X$x" = "X$found_dir"; then
                                    -                     haveit=yes
                                    -                     break
                                    -                   fi
                                    -                 done
                                    -                 if test -z "$haveit"; then
                                    -                   ltrpathdirs="$ltrpathdirs $found_dir"
                                    -                 fi
                                    -                 dnl The hardcoding into $LIBNAME is system dependent.
                                    -                 if test "$hardcode_direct" = yes; then
                                    -                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
                                    -                   dnl resulting binary.
                                    -                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
                                    -                 else
                                    -                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
                                    -                     dnl Use an explicit option to hardcode DIR into the resulting
                                    -                     dnl binary.
                                    -                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
                                    -                     dnl Potentially add DIR to rpathdirs.
                                    -                     dnl The rpathdirs will be appended to $LIBNAME at the end.
                                    -                     haveit=
                                    -                     for x in $rpathdirs; do
                                    -                       if test "X$x" = "X$found_dir"; then
                                    -                         haveit=yes
                                    -                         break
                                    -                       fi
                                    -                     done
                                    -                     if test -z "$haveit"; then
                                    -                       rpathdirs="$rpathdirs $found_dir"
                                    -                     fi
                                    -                   else
                                    -                     dnl Rely on "-L$found_dir".
                                    -                     dnl But don't add it if it's already contained in the LDFLAGS
                                    -                     dnl or the already constructed $LIBNAME
                                    -                     haveit=
                                    -                     for x in $LDFLAGS $LIB[]NAME; do
                                    -                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
                                    -                       if test "X$x" = "X-L$found_dir"; then
                                    -                         haveit=yes
                                    -                         break
                                    -                       fi
                                    -                     done
                                    -                     if test -z "$haveit"; then
                                    -                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
                                    -                     fi
                                    -                     if test "$hardcode_minus_L" != no; then
                                    -                       dnl FIXME: Not sure whether we should use
                                    -                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
                                    -                       dnl here.
                                    -                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
                                    -                     else
                                    -                       dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
                                    -                       dnl here, because this doesn't fit in flags passed to the
                                    -                       dnl compiler. So give up. No hardcoding. This affects only
                                    -                       dnl very old systems.
                                    -                       dnl FIXME: Not sure whether we should use
                                    -                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
                                    -                       dnl here.
                                    -                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
                                    -                     fi
                                    -                   fi
                                    -                 fi
                                    -               fi
                                    -             else
                                    -               if test "X$found_a" != "X"; then
                                    -                 dnl Linking with a static library.
                                    -                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
                                    -               else
                                    -                 dnl We shouldn't come here, but anyway it's good to have a
                                    -                 dnl fallback.
                                    -                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
                                    -               fi
                                    -             fi
                                    -             dnl Assume the include files are nearby.
                                    -             additional_includedir=
                                    -             case "$found_dir" in
                                    -               */lib | */lib/)
                                    -                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
                                    -                 additional_includedir="$basedir/include"
                                    -                 ;;
                                    -             esac
                                    -             if test "X$additional_includedir" != "X"; then
                                    -               dnl Potentially add $additional_includedir to $INCNAME.
                                    -               dnl But don't add it
                                    -               dnl   1. if it's the standard /usr/include,
                                    -               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
                                    -               dnl   3. if it's already present in $CPPFLAGS or the already
                                    -               dnl      constructed $INCNAME,
                                    -               dnl   4. if it doesn't exist as a directory.
                                    -               if test "X$additional_includedir" != "X/usr/include"; then
                                    -                 haveit=
                                    -                 if test "X$additional_includedir" = "X/usr/local/include"; then
                                    -                   if test -n "$GCC"; then
                                    -                     case $host_os in
                                    -                       linux*) haveit=yes;;
                                    -                     esac
                                    -                   fi
                                    -                 fi
                                    -                 if test -z "$haveit"; then
                                    -                   for x in $CPPFLAGS $INC[]NAME; do
                                    -                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
                                    -                     if test "X$x" = "X-I$additional_includedir"; then
                                    -                       haveit=yes
                                    -                       break
                                    -                     fi
                                    -                   done
                                    -                   if test -z "$haveit"; then
                                    -                     if test -d "$additional_includedir"; then
                                    -                       dnl Really add $additional_includedir to $INCNAME.
                                    -                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
                                    -                     fi
                                    -                   fi
                                    -                 fi
                                    -               fi
                                    -             fi
                                    -             dnl Look for dependencies.
                                    -             if test -n "$found_la"; then
                                    -               dnl Read the .la file. It defines the variables
                                    -               dnl dlname, library_names, old_library, dependency_libs, current,
                                    -               dnl age, revision, installed, dlopen, dlpreopen, libdir.
                                    -               save_libdir="$libdir"
                                    -               case "$found_la" in
                                    -                 */* | *\\*) . "$found_la" ;;
                                    -                 *) . "./$found_la" ;;
                                    -               esac
                                    -               libdir="$save_libdir"
                                    -               dnl We use only dependency_libs.
                                    -               for dep in $dependency_libs; do
                                    -                 case "$dep" in
                                    -                   -L*)
                                    -                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
                                    -                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
                                    -                     dnl But don't add it
                                    -                     dnl   1. if it's the standard /usr/lib,
                                    -                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
                                    -                     dnl   3. if it's already present in $LDFLAGS or the already
                                    -                     dnl      constructed $LIBNAME,
                                    -                     dnl   4. if it doesn't exist as a directory.
                                    -                     if test "X$additional_libdir" != "X/usr/lib"; then
                                    -                       haveit=
                                    -                       if test "X$additional_libdir" = "X/usr/local/lib"; then
                                    -                         if test -n "$GCC"; then
                                    -                           case $host_os in
                                    -                             linux*) haveit=yes;;
                                    -                           esac
                                    -                         fi
                                    -                       fi
                                    -                       if test -z "$haveit"; then
                                    -                         haveit=
                                    -                         for x in $LDFLAGS $LIB[]NAME; do
                                    -                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
                                    -                           if test "X$x" = "X-L$additional_libdir"; then
                                    -                             haveit=yes
                                    -                             break
                                    -                           fi
                                    -                         done
                                    -                         if test -z "$haveit"; then
                                    -                           if test -d "$additional_libdir"; then
                                    -                             dnl Really add $additional_libdir to $LIBNAME.
                                    -                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
                                    -                           fi
                                    -                         fi
                                    -                         haveit=
                                    -                         for x in $LDFLAGS $LTLIB[]NAME; do
                                    -                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
                                    -                           if test "X$x" = "X-L$additional_libdir"; then
                                    -                             haveit=yes
                                    -                             break
                                    -                           fi
                                    -                         done
                                    -                         if test -z "$haveit"; then
                                    -                           if test -d "$additional_libdir"; then
                                    -                             dnl Really add $additional_libdir to $LTLIBNAME.
                                    -                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
                                    -                           fi
                                    -                         fi
                                    -                       fi
                                    -                     fi
                                    -                     ;;
                                    -                   -R*)
                                    -                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
                                    -                     if test "$enable_rpath" != no; then
                                    -                       dnl Potentially add DIR to rpathdirs.
                                    -                       dnl The rpathdirs will be appended to $LIBNAME at the end.
                                    -                       haveit=
                                    -                       for x in $rpathdirs; do
                                    -                         if test "X$x" = "X$dir"; then
                                    -                           haveit=yes
                                    -                           break
                                    -                         fi
                                    -                       done
                                    -                       if test -z "$haveit"; then
                                    -                         rpathdirs="$rpathdirs $dir"
                                    -                       fi
                                    -                       dnl Potentially add DIR to ltrpathdirs.
                                    -                       dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
                                    -                       haveit=
                                    -                       for x in $ltrpathdirs; do
                                    -                         if test "X$x" = "X$dir"; then
                                    -                           haveit=yes
                                    -                           break
                                    -                         fi
                                    -                       done
                                    -                       if test -z "$haveit"; then
                                    -                         ltrpathdirs="$ltrpathdirs $dir"
                                    -                       fi
                                    -                     fi
                                    -                     ;;
                                    -                   -l*)
                                    -                     dnl Handle this in the next round.
                                    -                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
                                    -                     ;;
                                    -                   *.la)
                                    -                     dnl Handle this in the next round. Throw away the .la's
                                    -                     dnl directory; it is already contained in a preceding -L
                                    -                     dnl option.
                                    -                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
                                    -                     ;;
                                    -                   *)
                                    -                     dnl Most likely an immediate library name.
                                    -                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
                                    -                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
                                    -                     ;;
                                    -                 esac
                                    -               done
                                    -             fi
                                    -           else
                                    -             dnl Didn't find the library; assume it is in the system directories
                                    -             dnl known to the linker and runtime loader. (All the system
                                    -             dnl directories known to the linker should also be known to the
                                    -             dnl runtime loader, otherwise the system is severely misconfigured.)
                                    -             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
                                    -             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
                                    -           fi
                                    -         fi
                                    -       fi
                                    -     done
                                    -   done
                                    -   if test "X$rpathdirs" != "X"; then
                                    -     if test -n "$hardcode_libdir_separator"; then
                                    -       dnl Weird platform: only the last -rpath option counts, the user must
                                    -       dnl pass all path elements in one option. We can arrange that for a
                                    -       dnl single library, but not when more than one $LIBNAMEs are used.
                                    -       alldirs=
                                    -       for found_dir in $rpathdirs; do
                                    -         alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
                                    -       done
                                    -       dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
                                    -       acl_save_libdir="$libdir"
                                    -       libdir="$alldirs"
                                    -       eval flag=\"$hardcode_libdir_flag_spec\"
                                    -       libdir="$acl_save_libdir"
                                    -       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
                                    -     else
                                    -       dnl The -rpath options are cumulative.
                                    -       for found_dir in $rpathdirs; do
                                    -         acl_save_libdir="$libdir"
                                    -         libdir="$found_dir"
                                    -         eval flag=\"$hardcode_libdir_flag_spec\"
                                    -         libdir="$acl_save_libdir"
                                    -         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
                                    -       done
                                    -     fi
                                    -   fi
                                    -   if test "X$ltrpathdirs" != "X"; then
                                    -     dnl When using libtool, the option that works for both libraries and
                                    -     dnl executables is -R. The -R options are cumulative.
                                    -     for found_dir in $ltrpathdirs; do
                                    -       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
                                    -     done
                                    -   fi
                                    - ])
                                    - 
                                    - dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
                                    - dnl unless already present in VAR.
                                    - dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
                                    - dnl contains two or three consecutive elements that belong together.
                                    - AC_DEFUN([AC_LIB_APPENDTOVAR],
                                    - [
                                    -   for element in [$2]; do
                                    -     haveit=
                                    -     for x in $[$1]; do
                                    -       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
                                    -       if test "X$x" = "X$element"; then
                                    -         haveit=yes
                                    -         break
                                    -       fi
                                    -     done
                                    -     if test -z "$haveit"; then
                                    -       [$1]="${[$1]}${[$1]:+ }$element"
                                    -     fi
                                    -   done
                                    - ])
                                    --- 0 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/m4/lib-prefix.m4 gcc-4.6.0/libjava/classpath/m4/lib-prefix.m4
                                    *** gcc-4.5.2/libjava/classpath/m4/lib-prefix.m4	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/m4/lib-prefix.m4	Thu Jan  1 00:00:00 1970
                                    ***************
                                    *** 1,155 ****
                                    - # lib-prefix.m4 serial 2 (gettext-0.12)
                                    - dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
                                    - dnl This file is free software, distributed under the terms of the GNU
                                    - dnl General Public License.  As a special exception to the GNU General
                                    - dnl Public License, this file may be distributed as part of a program
                                    - dnl that contains a configuration script generated by Autoconf, under
                                    - dnl the same distribution terms as the rest of that program.
                                    - 
                                    - dnl From Bruno Haible.
                                    - 
                                    - dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
                                    - dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
                                    - dnl require excessive bracketing.
                                    - ifdef([AC_HELP_STRING],
                                    - [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
                                    - [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
                                    - 
                                    - dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
                                    - dnl to access previously installed libraries. The basic assumption is that
                                    - dnl a user will want packages to use other packages he previously installed
                                    - dnl with the same --prefix option.
                                    - dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
                                    - dnl libraries, but is otherwise very convenient.
                                    - AC_DEFUN([AC_LIB_PREFIX],
                                    - [
                                    -   AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
                                    -   AC_REQUIRE([AC_PROG_CC])
                                    -   AC_REQUIRE([AC_CANONICAL_HOST])
                                    -   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
                                    -   dnl By default, look in $includedir and $libdir.
                                    -   use_additional=yes
                                    -   AC_LIB_WITH_FINAL_PREFIX([
                                    -     eval additional_includedir=\"$includedir\"
                                    -     eval additional_libdir=\"$libdir\"
                                    -   ])
                                    -   AC_LIB_ARG_WITH([lib-prefix],
                                    - [  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
                                    -   --without-lib-prefix    don't search for libraries in includedir and libdir],
                                    - [
                                    -     if test "X$withval" = "Xno"; then
                                    -       use_additional=no
                                    -     else
                                    -       if test "X$withval" = "X"; then
                                    -         AC_LIB_WITH_FINAL_PREFIX([
                                    -           eval additional_includedir=\"$includedir\"
                                    -           eval additional_libdir=\"$libdir\"
                                    -         ])
                                    -       else
                                    -         additional_includedir="$withval/include"
                                    -         additional_libdir="$withval/lib"
                                    -       fi
                                    -     fi
                                    - ])
                                    -   if test $use_additional = yes; then
                                    -     dnl Potentially add $additional_includedir to $CPPFLAGS.
                                    -     dnl But don't add it
                                    -     dnl   1. if it's the standard /usr/include,
                                    -     dnl   2. if it's already present in $CPPFLAGS,
                                    -     dnl   3. if it's /usr/local/include and we are using GCC on Linux,
                                    -     dnl   4. if it doesn't exist as a directory.
                                    -     if test "X$additional_includedir" != "X/usr/include"; then
                                    -       haveit=
                                    -       for x in $CPPFLAGS; do
                                    -         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
                                    -         if test "X$x" = "X-I$additional_includedir"; then
                                    -           haveit=yes
                                    -           break
                                    -         fi
                                    -       done
                                    -       if test -z "$haveit"; then
                                    -         if test "X$additional_includedir" = "X/usr/local/include"; then
                                    -           if test -n "$GCC"; then
                                    -             case $host_os in
                                    -               linux*) haveit=yes;;
                                    -             esac
                                    -           fi
                                    -         fi
                                    -         if test -z "$haveit"; then
                                    -           if test -d "$additional_includedir"; then
                                    -             dnl Really add $additional_includedir to $CPPFLAGS.
                                    -             CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
                                    -           fi
                                    -         fi
                                    -       fi
                                    -     fi
                                    -     dnl Potentially add $additional_libdir to $LDFLAGS.
                                    -     dnl But don't add it
                                    -     dnl   1. if it's the standard /usr/lib,
                                    -     dnl   2. if it's already present in $LDFLAGS,
                                    -     dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
                                    -     dnl   4. if it doesn't exist as a directory.
                                    -     if test "X$additional_libdir" != "X/usr/lib"; then
                                    -       haveit=
                                    -       for x in $LDFLAGS; do
                                    -         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
                                    -         if test "X$x" = "X-L$additional_libdir"; then
                                    -           haveit=yes
                                    -           break
                                    -         fi
                                    -       done
                                    -       if test -z "$haveit"; then
                                    -         if test "X$additional_libdir" = "X/usr/local/lib"; then
                                    -           if test -n "$GCC"; then
                                    -             case $host_os in
                                    -               linux*) haveit=yes;;
                                    -             esac
                                    -           fi
                                    -         fi
                                    -         if test -z "$haveit"; then
                                    -           if test -d "$additional_libdir"; then
                                    -             dnl Really add $additional_libdir to $LDFLAGS.
                                    -             LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
                                    -           fi
                                    -         fi
                                    -       fi
                                    -     fi
                                    -   fi
                                    - ])
                                    - 
                                    - dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
                                    - dnl acl_final_exec_prefix, containing the values to which $prefix and
                                    - dnl $exec_prefix will expand at the end of the configure script.
                                    - AC_DEFUN([AC_LIB_PREPARE_PREFIX],
                                    - [
                                    -   dnl Unfortunately, prefix and exec_prefix get only finally determined
                                    -   dnl at the end of configure.
                                    -   if test "X$prefix" = "XNONE"; then
                                    -     acl_final_prefix="$ac_default_prefix"
                                    -   else
                                    -     acl_final_prefix="$prefix"
                                    -   fi
                                    -   if test "X$exec_prefix" = "XNONE"; then
                                    -     acl_final_exec_prefix='${prefix}'
                                    -   else
                                    -     acl_final_exec_prefix="$exec_prefix"
                                    -   fi
                                    -   acl_save_prefix="$prefix"
                                    -   prefix="$acl_final_prefix"
                                    -   eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
                                    -   prefix="$acl_save_prefix"
                                    - ])
                                    - 
                                    - dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
                                    - dnl variables prefix and exec_prefix bound to the values they will have
                                    - dnl at the end of the configure script.
                                    - AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
                                    - [
                                    -   acl_save_prefix="$prefix"
                                    -   prefix="$acl_final_prefix"
                                    -   acl_save_exec_prefix="$exec_prefix"
                                    -   exec_prefix="$acl_final_exec_prefix"
                                    -   $1
                                    -   exec_prefix="$acl_save_exec_prefix"
                                    -   prefix="$acl_save_prefix"
                                    - ])
                                    --- 0 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/missing gcc-4.6.0/libjava/classpath/missing
                                    *** gcc-4.5.2/libjava/classpath/missing	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/missing	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,10 ****
                                      #! /bin/sh
                                      # Common stub for a few missing GNU programs while installing.
                                      
                                    ! scriptversion=2006-05-10.23
                                      
                                    ! # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
                                    ! #   Free Software Foundation, Inc.
                                      # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
                                      
                                      # This program is free software; you can redistribute it and/or modify
                                    --- 1,10 ----
                                      #! /bin/sh
                                      # Common stub for a few missing GNU programs while installing.
                                      
                                    ! scriptversion=2009-04-28.21; # UTC
                                      
                                    ! # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
                                    ! # 2008, 2009 Free Software Foundation, Inc.
                                      # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
                                      
                                      # This program is free software; you can redistribute it and/or modify
                                    *************** scriptversion=2006-05-10.23
                                    *** 18,26 ****
                                      # GNU General Public License for more details.
                                      
                                      # You should have received a copy of the GNU General Public License
                                    ! # along with this program; if not, write to the Free Software
                                    ! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                    ! # 02110-1301, USA.
                                      
                                      # As a special exception to the GNU General Public License, if you
                                      # distribute this file as part of a program that contains a
                                    --- 18,24 ----
                                      # GNU General Public License for more details.
                                      
                                      # You should have received a copy of the GNU General Public License
                                    ! # along with this program.  If not, see <http://www.gnu.org/licenses/>.
                                      
                                      # As a special exception to the GNU General Public License, if you
                                      # distribute this file as part of a program that contains a
                                    *************** Supported PROGRAM values:
                                    *** 89,94 ****
                                    --- 87,95 ----
                                        tar          try tar, gnutar, gtar, then tar without non-portable flags
                                        yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
                                      
                                    + Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
                                    + \`g' are ignored when checking the name.
                                    + 
                                      Send bug reports to <bug-automake@gnu.org>."
                                          exit $?
                                          ;;
                                    *************** Send bug reports to <bug-automake@gnu.or
                                    *** 106,120 ****
                                      
                                      esac
                                      
                                      # Now exit if we have it, but it failed.  Also exit now if we
                                      # don't have it and --version was passed (most likely to detect
                                    ! # the program).
                                      case $1 in
                                    !   lex|yacc)
                                          # Not GNU programs, they don't have --version.
                                          ;;
                                      
                                    !   tar)
                                          if test -n "$run"; then
                                             echo 1>&2 "ERROR: \`tar' requires --run"
                                             exit 1
                                    --- 107,128 ----
                                      
                                      esac
                                      
                                    + # normalize program name to check for.
                                    + program=`echo "$1" | sed '
                                    +   s/^gnu-//; t
                                    +   s/^gnu//; t
                                    +   s/^g//; t'`
                                    + 
                                      # Now exit if we have it, but it failed.  Also exit now if we
                                      # don't have it and --version was passed (most likely to detect
                                    ! # the program).  This is about non-GNU programs, so use $1 not
                                    ! # $program.
                                      case $1 in
                                    !   lex*|yacc*)
                                          # Not GNU programs, they don't have --version.
                                          ;;
                                      
                                    !   tar*)
                                          if test -n "$run"; then
                                             echo 1>&2 "ERROR: \`tar' requires --run"
                                             exit 1
                                    *************** esac
                                    *** 138,144 ****
                                      
                                      # If it does not exist, or fails to run (possibly an outdated version),
                                      # try to emulate it.
                                    ! case $1 in
                                        aclocal*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                    --- 146,152 ----
                                      
                                      # If it does not exist, or fails to run (possibly an outdated version),
                                      # try to emulate it.
                                    ! case $program in
                                        aclocal*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                    *************** WARNING: \`$1' is $msg.  You should only
                                    *** 148,154 ****
                                          touch aclocal.m4
                                          ;;
                                      
                                    !   autoconf)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                               you modified \`${configure_ac}'.  You might want to install the
                                    --- 156,162 ----
                                          touch aclocal.m4
                                          ;;
                                      
                                    !   autoconf*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                               you modified \`${configure_ac}'.  You might want to install the
                                    *************** WARNING: \`$1' is $msg.  You should only
                                    *** 157,163 ****
                                          touch configure
                                          ;;
                                      
                                    !   autoheader)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                               you modified \`acconfig.h' or \`${configure_ac}'.  You might want
                                    --- 165,171 ----
                                          touch configure
                                          ;;
                                      
                                    !   autoheader*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                               you modified \`acconfig.h' or \`${configure_ac}'.  You might want
                                    *************** WARNING: \`$1' is $msg.  You should only
                                    *** 187,193 ****
                                      	   while read f; do touch "$f"; done
                                          ;;
                                      
                                    !   autom4te)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is needed, but is $msg.
                                               You might have modified some files without having the
                                    --- 195,201 ----
                                      	   while read f; do touch "$f"; done
                                          ;;
                                      
                                    !   autom4te*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is needed, but is $msg.
                                               You might have modified some files without having the
                                    *************** WARNING: \`$1' is needed, but is $msg.
                                    *** 210,216 ****
                                          fi
                                          ;;
                                      
                                    !   bison|yacc)
                                          echo 1>&2 "\
                                      WARNING: \`$1' $msg.  You should only need it if
                                               you modified a \`.y' file.  You may need the \`Bison' package
                                    --- 218,224 ----
                                          fi
                                          ;;
                                      
                                    !   bison*|yacc*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' $msg.  You should only need it if
                                               you modified a \`.y' file.  You may need the \`Bison' package
                                    *************** WARNING: \`$1' $msg.  You should only ne
                                    *** 240,246 ****
                                          fi
                                          ;;
                                      
                                    !   lex|flex)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                               you modified a \`.l' file.  You may need the \`Flex' package
                                    --- 248,254 ----
                                          fi
                                          ;;
                                      
                                    !   lex*|flex*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                               you modified a \`.l' file.  You may need the \`Flex' package
                                    *************** WARNING: \`$1' is $msg.  You should only
                                    *** 263,269 ****
                                          fi
                                          ;;
                                      
                                    !   help2man)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                      	 you modified a dependency of a manual page.  You may need the
                                    --- 271,277 ----
                                          fi
                                          ;;
                                      
                                    !   help2man*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                      	 you modified a dependency of a manual page.  You may need the
                                    *************** WARNING: \`$1' is $msg.  You should only
                                    *** 277,287 ****
                                          else
                                      	test -z "$file" || exec >$file
                                      	echo ".ab help2man is required to generate this page"
                                    ! 	exit 1
                                          fi
                                          ;;
                                      
                                    !   makeinfo)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                               you modified a \`.texi' or \`.texinfo' file, or any other file
                                    --- 285,295 ----
                                          else
                                      	test -z "$file" || exec >$file
                                      	echo ".ab help2man is required to generate this page"
                                    ! 	exit $?
                                          fi
                                          ;;
                                      
                                    !   makeinfo*)
                                          echo 1>&2 "\
                                      WARNING: \`$1' is $msg.  You should only need it if
                                               you modified a \`.texi' or \`.texinfo' file, or any other file
                                    *************** WARNING: \`$1' is $msg.  You should only
                                    *** 310,316 ****
                                          touch $file
                                          ;;
                                      
                                    !   tar)
                                          shift
                                      
                                          # We have already tried tar in the generic part.
                                    --- 318,324 ----
                                          touch $file
                                          ;;
                                      
                                    !   tar*)
                                          shift
                                      
                                          # We have already tried tar in the generic part.
                                    *************** exit 0
                                    *** 363,367 ****
                                      # eval: (add-hook 'write-file-hooks 'time-stamp)
                                      # time-stamp-start: "scriptversion="
                                      # time-stamp-format: "%:y-%02m-%02d.%02H"
                                    ! # time-stamp-end: "$"
                                      # End:
                                    --- 371,376 ----
                                      # eval: (add-hook 'write-file-hooks 'time-stamp)
                                      # time-stamp-start: "scriptversion="
                                      # time-stamp-format: "%:y-%02m-%02d.%02H"
                                    ! # time-stamp-time-zone: "UTC"
                                    ! # time-stamp-end: "; # UTC"
                                      # End:
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/Makefile.in gcc-4.6.0/libjava/classpath/native/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 39,44 ****
                                    --- 39,47 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 57,65 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 60,66 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/fdlibm/Makefile.in gcc-4.6.0/libjava/classpath/native/fdlibm/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/fdlibm/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/fdlibm/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jawt/Makefile.in gcc-4.6.0/libjava/classpath/native/jawt/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jawt/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jawt/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 39,44 ****
                                    --- 39,47 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 57,65 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 60,66 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/classpath/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/classpath/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/classpath/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/classpath/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/gconf-peer/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/gconf-peer/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/gconf-peer/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/gconf-peer/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/gstreamer-peer/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/gstreamer-peer/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/gstreamer-peer/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/gstreamer-peer/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/gtk-peer/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/gtk-peer/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/gtk-peer/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/gtk-peer/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/java-io/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/java-io/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/java-io/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/java-io/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/java-lang/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/java-lang/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/java-lang/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/java-lang/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/java-math/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/java-math/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/java-math/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/java-math/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/java-net/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/java-net/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/java-net/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/java-net/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/java-nio/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/java-nio/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/java-nio/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/java-nio/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/java-util/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/java-util/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/java-util/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/java-util/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/midi-alsa/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/midi-alsa/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/midi-alsa/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/midi-alsa/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c gcc-4.6.0/libjava/classpath/native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c
                                    *** gcc-4.5.2/libjava/classpath/native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c	Tue Nov 15 16:23:41 2005
                                    --- gcc-4.6.0/libjava/classpath/native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c	Wed Apr  7 20:27:37 2010
                                    ***************
                                    *** 1,5 ****
                                      /* gnu_javax_sound_midi_alsa_AlsaPortDevice.c - Native support
                                    !    Copyright (C) 2005 
                                         Free Software Foundation, Inc.
                                         
                                      This file is part of GNU Classpath.
                                    --- 1,5 ----
                                      /* gnu_javax_sound_midi_alsa_AlsaPortDevice.c - Native support
                                    !    Copyright (C) 2005, 2010
                                         Free Software Foundation, Inc.
                                         
                                      This file is part of GNU Classpath.
                                    *************** Java_gnu_javax_sound_midi_alsa_AlsaPortD
                                    *** 48,54 ****
                                        (JNIEnv *env, jobject this __attribute__((unused)), 
                                         jlong client, jlong port, jobject receiver)
                                      {
                                    -   int rc;
                                        snd_seq_port_info_t *pinfo, *sinfo;
                                        snd_seq_port_subscribe_t *subs;
                                        snd_seq_addr_t sender, dest;
                                    --- 48,53 ----
                                    *************** Java_gnu_javax_sound_midi_alsa_AlsaPortD
                                    *** 58,69 ****
                                        snd_seq_port_info_alloca (&sinfo);
                                        snd_seq_port_subscribe_alloca (&subs);
                                      
                                    !   rc = snd_seq_open (&seq, "default", SND_SEQ_OPEN_DUPLEX, SND_SEQ_NONBLOCK);
                                      
                                        snd_seq_port_info_set_capability (pinfo, SND_SEQ_PORT_CAP_WRITE);
                                        snd_seq_port_info_set_type (pinfo, SND_SEQ_PORT_TYPE_MIDI_GENERIC);
                                      
                                    !   rc = snd_seq_create_port (seq, pinfo);
                                      
                                        sender.client = (int) client;
                                        sender.port = (int) port;
                                    --- 57,68 ----
                                        snd_seq_port_info_alloca (&sinfo);
                                        snd_seq_port_subscribe_alloca (&subs);
                                      
                                    !   snd_seq_open (&seq, "default", SND_SEQ_OPEN_DUPLEX, SND_SEQ_NONBLOCK);
                                      
                                        snd_seq_port_info_set_capability (pinfo, SND_SEQ_PORT_CAP_WRITE);
                                        snd_seq_port_info_set_type (pinfo, SND_SEQ_PORT_TYPE_MIDI_GENERIC);
                                      
                                    !   snd_seq_create_port (seq, pinfo);
                                      
                                        sender.client = (int) client;
                                        sender.port = (int) port;
                                    *************** Java_gnu_javax_sound_midi_alsa_AlsaPortD
                                    *** 72,78 ****
                                      
                                        snd_seq_port_subscribe_set_sender (subs, &sender);
                                        snd_seq_port_subscribe_set_dest (subs, &dest);
                                    !   rc = snd_seq_subscribe_port(seq, subs);
                                      
                                        {
                                          int npfd;
                                    --- 71,77 ----
                                      
                                        snd_seq_port_subscribe_set_sender (subs, &sender);
                                        snd_seq_port_subscribe_set_dest (subs, &dest);
                                    !   snd_seq_subscribe_port(seq, subs);
                                      
                                        {
                                          int npfd;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/midi-dssi/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/midi-dssi/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/midi-dssi/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/midi-dssi/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = README $(srcdir)/Makefile.
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/native-lib/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/native-lib/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/native-lib/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/native-lib/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/native-lib/cpnet.c gcc-4.6.0/libjava/classpath/native/jni/native-lib/cpnet.c
                                    *** gcc-4.5.2/libjava/classpath/native/jni/native-lib/cpnet.c	Sat Aug  4 10:53:49 2007
                                    --- gcc-4.6.0/libjava/classpath/native/jni/native-lib/cpnet.c	Tue Oct 12 15:55:12 2010
                                    *************** jint cpnet_addMembership (JNIEnv *env UN
                                    *** 578,586 ****
                                      {
                                        struct ip_mreq req;
                                        int ret;
                                        
                                        memset(&req, 0, sizeof(req));
                                    !   req.imr_multiaddr = ((struct sockaddr_in *)addr->data)->sin_addr;
                                        req.imr_interface.s_addr = INADDR_ANY;
                                        ret = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &req, sizeof(req));
                                        if (ret != 0)
                                    --- 578,587 ----
                                      {
                                        struct ip_mreq req;
                                        int ret;
                                    +   struct sockaddr_in *sockaddr = (struct sockaddr_in *)addr->data;
                                        
                                        memset(&req, 0, sizeof(req));
                                    !   req.imr_multiaddr = sockaddr->sin_addr;
                                        req.imr_interface.s_addr = INADDR_ANY;
                                        ret = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &req, sizeof(req));
                                        if (ret != 0)
                                    *************** jint cpnet_dropMembership (JNIEnv *env U
                                    *** 593,601 ****
                                      {
                                        struct ip_mreq req;
                                        int ret;
                                        
                                        memset(&req, 0, sizeof(req));
                                    !   req.imr_multiaddr = ((struct sockaddr_in *)addr->data)->sin_addr;
                                        req.imr_interface.s_addr = INADDR_ANY;
                                        ret = setsockopt(fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, &req, sizeof(req));
                                        if (ret != 0)
                                    --- 594,603 ----
                                      {
                                        struct ip_mreq req;
                                        int ret;
                                    +   struct sockaddr_in *sockaddr = (struct sockaddr_in *)addr->data;
                                        
                                        memset(&req, 0, sizeof(req));
                                    !   req.imr_multiaddr = sockaddr->sin_addr;
                                        req.imr_interface.s_addr = INADDR_ANY;
                                        ret = setsockopt(fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, &req, sizeof(req));
                                        if (ret != 0)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/qt-peer/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/qt-peer/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/qt-peer/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/qt-peer/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 43,48 ****
                                    --- 43,51 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 61,69 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 64,70 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/jni/xmlj/Makefile.in gcc-4.6.0/libjava/classpath/native/jni/xmlj/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/jni/xmlj/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/jni/xmlj/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/native/plugin/Makefile.in gcc-4.6.0/libjava/classpath/native/plugin/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/native/plugin/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/native/plugin/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/ietf/jgss/GSSManager.java gcc-4.6.0/libjava/classpath/org/ietf/jgss/GSSManager.java
                                    *** gcc-4.5.2/libjava/classpath/org/ietf/jgss/GSSManager.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/ietf/jgss/GSSManager.java	Tue Oct 12 15:55:12 2010
                                    *************** public abstract class GSSManager
                                    *** 180,186 ****
                                              ClassLoader loader = GSSManager.class.getClassLoader();
                                              if (loader == null)
                                                loader = ClassLoader.getSystemClassLoader();
                                    !         Class c = loader.loadClass(impl);
                                              return (GSSManager) c.newInstance();
                                            }
                                          catch (Exception x)
                                    --- 180,186 ----
                                              ClassLoader loader = GSSManager.class.getClassLoader();
                                              if (loader == null)
                                                loader = ClassLoader.getSystemClassLoader();
                                    !         Class<?> c = loader.loadClass(impl);
                                              return (GSSManager) c.newInstance();
                                            }
                                          catch (Exception x)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ARG_IN.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ARG_IN.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ARG_IN.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ARG_IN.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* ARG_IN.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* ARG_IN.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 39,48 ****
                                      
                                      /**
                                       * This simple interface defines just one constant, normally used
                                    !  * to mark the parameter as an "input parameter". 
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                    !  * 
                                       * @see NamedValue
                                       */
                                      public interface ARG_IN
                                    --- 39,48 ----
                                      
                                      /**
                                       * This simple interface defines just one constant, normally used
                                    !  * to mark the parameter as an "input parameter".
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                    !  *
                                       * @see NamedValue
                                       */
                                      public interface ARG_IN
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ARG_INOUT.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ARG_INOUT.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ARG_INOUT.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ARG_INOUT.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* ARG_IN.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* ARG_IN.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 39,50 ****
                                      
                                      /**
                                       * This simple interface defines just one constant, normally used
                                    !  * to mark that the the parameter is used both to pass and to 
                                       * return some value. It is a similar conception like passing a
                                       * parameter "by reference" in C or Pascal.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                    !  * 
                                       * @see NamedValue
                                       */
                                      public interface ARG_INOUT
                                    --- 39,50 ----
                                      
                                      /**
                                       * This simple interface defines just one constant, normally used
                                    !  * to mark that the the parameter is used both to pass and to
                                       * return some value. It is a similar conception like passing a
                                       * parameter "by reference" in C or Pascal.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                    !  *
                                       * @see NamedValue
                                       */
                                      public interface ARG_INOUT
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ARG_OUT.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ARG_OUT.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ARG_OUT.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ARG_OUT.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* ARG_IN.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* ARG_IN.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 39,48 ****
                                      
                                      /**
                                       * This simple interface defines just one constant, normally used
                                    !  * to mark the parameter as an "output parameter". 
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                    !  * 
                                       * @see NamedValue
                                       */
                                      public interface ARG_OUT
                                    --- 39,48 ----
                                      
                                      /**
                                       * This simple interface defines just one constant, normally used
                                    !  * to mark the parameter as an "output parameter".
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                    !  *
                                       * @see NamedValue
                                       */
                                      public interface ARG_OUT
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/AnySeqHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/AnySeqHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/AnySeqHolder.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/AnySeqHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class AnySeqHolder
                                    *** 74,80 ****
                                        }
                                      
                                        /**
                                    !    * Constructs an instance of AnySeqHolder,  
                                         * initializing {@link #value} to the given array
                                         */
                                        public AnySeqHolder(Any [] a_value)
                                    --- 74,80 ----
                                        }
                                      
                                        /**
                                    !    * Constructs an instance of AnySeqHolder,
                                         * initializing {@link #value} to the given array
                                         */
                                        public AnySeqHolder(Any [] a_value)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_CONTEXT.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_CONTEXT.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_CONTEXT.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_CONTEXT.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 43,57 ****
                                      /**
                                       * Means that the operation is invoked by a client but the passed
                                       * context has no values required by this operation.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class BAD_CONTEXT
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -5025677944847478264L;
                                      
                                    --- 43,57 ----
                                      /**
                                       * Means that the operation is invoked by a client but the passed
                                       * context has no values required by this operation.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class BAD_CONTEXT
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -5025677944847478264L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_INV_ORDER.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_INV_ORDER.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_INV_ORDER.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_INV_ORDER.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means that the caller has invoked operations in the wrong order.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class BAD_INV_ORDER
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 7273325995832240406L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means that the caller has invoked operations in the wrong order.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class BAD_INV_ORDER
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 7273325995832240406L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_OPERATION.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_OPERATION.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_OPERATION.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_OPERATION.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 43,51 ****
                                      /**
                                       * Means that the object exists but does not support the operation that was
                                       * invoked on it.
                                    !  * 
                                       * In GNU Classpath, this exception may have the following Minor codes:
                                    !  * 
                                       * <table border="1">
                                       * <tr>
                                       * <th>Hex</th>
                                    --- 43,51 ----
                                      /**
                                       * Means that the object exists but does not support the operation that was
                                       * invoked on it.
                                    !  *
                                       * In GNU Classpath, this exception may have the following Minor codes:
                                    !  *
                                       * <table border="1">
                                       * <tr>
                                       * <th>Hex</th>
                                    *************** import java.io.Serializable;
                                    *** 111,117 ****
                                       * policies for the given policy type. </td>
                                       * </tr>
                                       * </table>
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class BAD_OPERATION
                                    --- 111,117 ----
                                       * policies for the given policy type. </td>
                                       * </tr>
                                       * </table>
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class BAD_OPERATION
                                    *************** public final class BAD_OPERATION
                                    *** 126,132 ****
                                        /**
                                         * Creates a BAD_OPERATION with the default minor code of 0, completion state
                                         * COMPLETED_NO and the given explaining message.
                                    !    * 
                                         * @param message the explaining message.
                                         */
                                        public BAD_OPERATION(String message)
                                    --- 126,132 ----
                                        /**
                                         * Creates a BAD_OPERATION with the default minor code of 0, completion state
                                         * COMPLETED_NO and the given explaining message.
                                    !    *
                                         * @param message the explaining message.
                                         */
                                        public BAD_OPERATION(String message)
                                    *************** public final class BAD_OPERATION
                                    *** 146,152 ****
                                        /**
                                         * Creates a BAD_OPERATION exception with the specified minor code and
                                         * completion status.
                                    !    * 
                                         * @param minor additional error code.
                                         * @param completed the method completion status.
                                         */
                                    --- 146,152 ----
                                        /**
                                         * Creates a BAD_OPERATION exception with the specified minor code and
                                         * completion status.
                                    !    *
                                         * @param minor additional error code.
                                         * @param completed the method completion status.
                                         */
                                    *************** public final class BAD_OPERATION
                                    *** 157,163 ****
                                      
                                        /**
                                         * Created BAD_OPERATION exception, providing full information.
                                    !    * 
                                         * @param reason explaining message.
                                         * @param minor additional error code (the "minor").
                                         * @param completed the method completion status.
                                    --- 157,163 ----
                                      
                                        /**
                                         * Created BAD_OPERATION exception, providing full information.
                                    !    *
                                         * @param reason explaining message.
                                         * @param minor additional error code (the "minor").
                                         * @param completed the method completion status.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_PARAM.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_PARAM.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_PARAM.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_PARAM.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class BAD_PARAM
                                    *** 59,66 ****
                                          super(message, 0, CompletionStatus.COMPLETED_NO);
                                        }
                                      
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 1917109334939470379L;
                                      
                                    --- 59,66 ----
                                          super(message, 0, CompletionStatus.COMPLETED_NO);
                                        }
                                      
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 1917109334939470379L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_POLICY.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_POLICY.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_POLICY.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_POLICY.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* BAD_POLICY.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* BAD_POLICY.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 40,55 ****
                                      /**
                                       * Holds a single constant, specifying, that
                                       * the requested {@link Policy} is not valid. One of the PolicyErrorCodes,
                                    !  * others being {@link UNSUPPORTED_POLICY}, 
                                       * {@link UNSUPPORTED_POLICY_VALUE},
                                       * {@link BAD_POLICY_TYPE}, {@link BAD_POLICY_VALUE}.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface BAD_POLICY
                                      {
                                        /**
                                    !    * States that the requested {@link Policy} is not valid. 
                                         */
                                        short value = 0;
                                      }
                                    --- 40,55 ----
                                      /**
                                       * Holds a single constant, specifying, that
                                       * the requested {@link Policy} is not valid. One of the PolicyErrorCodes,
                                    !  * others being {@link UNSUPPORTED_POLICY},
                                       * {@link UNSUPPORTED_POLICY_VALUE},
                                       * {@link BAD_POLICY_TYPE}, {@link BAD_POLICY_VALUE}.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface BAD_POLICY
                                      {
                                        /**
                                    !    * States that the requested {@link Policy} is not valid.
                                         */
                                        short value = 0;
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_POLICY_TYPE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_POLICY_TYPE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_POLICY_TYPE.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_POLICY_TYPE.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* BAD_POLICY_TYPE.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* BAD_POLICY_TYPE.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 39,49 ****
                                      
                                      /**
                                       * Holds a single constant, specifying, that
                                    !  * the requested {@link Policy} type is not valid. One of the 
                                       * PolicyErrorCodes, others being {@link UNSUPPORTED_POLICY},
                                       * {@link UNSUPPORTED_POLICY_VALUE}, {@link BAD_POLICY},
                                       * {@link BAD_POLICY_VALUE}.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface BAD_POLICY_TYPE
                                    --- 39,49 ----
                                      
                                      /**
                                       * Holds a single constant, specifying, that
                                    !  * the requested {@link Policy} type is not valid. One of the
                                       * PolicyErrorCodes, others being {@link UNSUPPORTED_POLICY},
                                       * {@link UNSUPPORTED_POLICY_VALUE}, {@link BAD_POLICY},
                                       * {@link BAD_POLICY_VALUE}.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface BAD_POLICY_TYPE
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_POLICY_VALUE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_POLICY_VALUE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_POLICY_VALUE.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_POLICY_VALUE.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* BAD_POLICY_VALUE.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* BAD_POLICY_VALUE.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 39,55 ****
                                      
                                      /**
                                       * Holds a single constant, specifying, that
                                    !  * the requested {@link Policy} value is not valid. One of the 
                                       * PolicyErrorCodes, others being {@link UNSUPPORTED_POLICY},
                                       * {@link BAD_POLICY}, {@link BAD_POLICY_TYPE},
                                       * {@link BAD_POLICY_VALUE}.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface BAD_POLICY_VALUE
                                      {
                                        /**
                                    !    * States that the requested {@link Policy} value is not valid. 
                                         */
                                        short value = 3;
                                      }
                                    --- 39,55 ----
                                      
                                      /**
                                       * Holds a single constant, specifying, that
                                    !  * the requested {@link Policy} value is not valid. One of the
                                       * PolicyErrorCodes, others being {@link UNSUPPORTED_POLICY},
                                       * {@link BAD_POLICY}, {@link BAD_POLICY_TYPE},
                                       * {@link BAD_POLICY_VALUE}.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface BAD_POLICY_VALUE
                                      {
                                        /**
                                    !    * States that the requested {@link Policy} value is not valid.
                                         */
                                        short value = 3;
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_TYPECODE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_TYPECODE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/BAD_TYPECODE.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/BAD_TYPECODE.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 43,49 ****
                                      /**
                                       * Means that the some TypeCode has been realized to be invalid
                                       * (for example, has an invalid TCKind value).
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class BAD_TYPECODE
                                    --- 43,49 ----
                                      /**
                                       * Means that the some TypeCode has been realized to be invalid
                                       * (for example, has an invalid TCKind value).
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class BAD_TYPECODE
                                    *************** public final class BAD_TYPECODE
                                    *** 51,57 ****
                                        implements Serializable
                                      {
                                        /**
                                    !    *  Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 6193364410915696901L;
                                      
                                    --- 51,57 ----
                                        implements Serializable
                                      {
                                        /**
                                    !    *  Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 6193364410915696901L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/COMM_FAILURE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/COMM_FAILURE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/COMM_FAILURE.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/COMM_FAILURE.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.omg.CORBA;
                                    *** 41,57 ****
                                      import java.io.Serializable;
                                      
                                      /**
                                    !  * Means that the communication has been lost while an operation 
                                       * was in progress
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class COMM_FAILURE
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 294856734784364267L;
                                      
                                    --- 41,57 ----
                                      import java.io.Serializable;
                                      
                                      /**
                                    !  * Means that the communication has been lost while an operation
                                       * was in progress
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class COMM_FAILURE
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 294856734784364267L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/CTX_RESTRICT_SCOPE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/CTX_RESTRICT_SCOPE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/CTX_RESTRICT_SCOPE.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/CTX_RESTRICT_SCOPE.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* CTX_RESTRICT_SCOPE.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* CTX_RESTRICT_SCOPE.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 41,47 ****
                                       * This simple interface defines just one constant, normally used
                                       * to restrict the property search in the {@link Context} by
                                       * the current context.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface CTX_RESTRICT_SCOPE
                                    --- 41,47 ----
                                       * This simple interface defines just one constant, normally used
                                       * to restrict the property search in the {@link Context} by
                                       * the current context.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface CTX_RESTRICT_SCOPE
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/CompletionStatus.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/CompletionStatus.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/CompletionStatus.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/CompletionStatus.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class CompletionStatus
                                    *** 110,116 ****
                                      
                                        /**
                                         * Returns the CompletionStatus, matching the given integer constant
                                    !    * 
                                         * @param completion one of COMPLETED_YES, COMPLETED_NO or COMPLEED_MAYBE.
                                         * @return one of COMPLETED_YES, COMPLETED_NO or COMPLEED_MAYBE.
                                         * @throws BAD_PARAM if the parameter is not one of these three valid values.
                                    --- 110,116 ----
                                      
                                        /**
                                         * Returns the CompletionStatus, matching the given integer constant
                                    !    *
                                         * @param completion one of COMPLETED_YES, COMPLETED_NO or COMPLEED_MAYBE.
                                         * @return one of COMPLETED_YES, COMPLETED_NO or COMPLEED_MAYBE.
                                         * @throws BAD_PARAM if the parameter is not one of these three valid values.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/CompletionStatusHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/CompletionStatusHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/CompletionStatusHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/CompletionStatusHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class CompletionStatusHe
                                    *** 122,131 ****
                                        {
                                          String[] members =
                                            new String[] { "COMPLETED_YES", "COMPLETED_NO", "COMPLETED_MAYBE" };
                                    !     
                                          return
                                            OrbRestricted.Singleton.create_enum_tc(id(), "CompletionStatus",
                                                                                   members
                                            );
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 122,131 ----
                                        {
                                          String[] members =
                                            new String[] { "COMPLETED_YES", "COMPLETED_NO", "COMPLETED_MAYBE" };
                                    ! 
                                          return
                                            OrbRestricted.Singleton.create_enum_tc(id(), "CompletionStatus",
                                                                                   members
                                            );
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/Context.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/Context.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/Context.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/Context.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class Context
                                    *** 85,91 ****
                                         * Search the values.
                                         *
                                         * @param start_scope the context at which to initiate the search.
                                    !    * @param flags the search operation flags. 
                                         * The flag {@link CTX_RESTRICT_SCOPE} means
                                         * that search is restricted to the start_scope.
                                         * @param pattern the property being searched, can be
                                    --- 85,91 ----
                                         * Search the values.
                                         *
                                         * @param start_scope the context at which to initiate the search.
                                    !    * @param flags the search operation flags.
                                         * The flag {@link CTX_RESTRICT_SCOPE} means
                                         * that search is restricted to the start_scope.
                                         * @param pattern the property being searched, can be
                                    *************** public abstract class Context
                                    *** 109,122 ****
                                         * @param value the property value (the {@link Any} must hold string).
                                         */
                                        public abstract void set_one_value(String name, Any value);
                                    !   
                                        /**
                                         * Set multiple properties.
                                    !    * 
                                    !    * @param values a list of properties, the {@link Any}'s 
                                         * in the list components must hold strings.
                                         */
                                        public abstract void set_values(NVList values);
                                    !   
                                    !   
                                      }
                                    --- 109,122 ----
                                         * @param value the property value (the {@link Any} must hold string).
                                         */
                                        public abstract void set_one_value(String name, Any value);
                                    ! 
                                        /**
                                         * Set multiple properties.
                                    !    *
                                    !    * @param values a list of properties, the {@link Any}'s
                                         * in the list components must hold strings.
                                         */
                                        public abstract void set_values(NVList values);
                                    ! 
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/Current.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/Current.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/Current.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/Current.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 56,59 ****
                                      public interface Current
                                        extends org.omg.CORBA.Object, IDLEntity, CurrentOperations
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 56,59 ----
                                      public interface Current
                                        extends org.omg.CORBA.Object, IDLEntity, CurrentOperations
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/CurrentHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/CurrentHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/CurrentHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/CurrentHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class CurrentHelper
                                    *** 170,173 ****
                                        {
                                          output.write_Object(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 170,173 ----
                                        {
                                          output.write_Object(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/CurrentHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/CurrentHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/CurrentHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/CurrentHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class CurrentHolder
                                    *** 100,103 ****
                                        {
                                          return CurrentHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 100,103 ----
                                        {
                                          return CurrentHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/CustomMarshal.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/CustomMarshal.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/CustomMarshal.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/CustomMarshal.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface CustomMarshal
                                    *** 65,68 ****
                                         * @param from_stream a stream to write into.
                                         */
                                        public void unmarshal(DataInputStream from_stream);
                                    ! }
                                    \ No newline at end of file
                                    --- 65,68 ----
                                         * @param from_stream a stream to write into.
                                         */
                                        public void unmarshal(DataInputStream from_stream);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/CustomValue.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/CustomValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/CustomValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/CustomValue.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.ValueBase;
                                    *** 58,61 ****
                                      public interface CustomValue
                                        extends ValueBase, CustomMarshal
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 58,61 ----
                                      public interface CustomValue
                                        extends ValueBase, CustomMarshal
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/DATA_CONVERSION.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/DATA_CONVERSION.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/DATA_CONVERSION.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/DATA_CONVERSION.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 43,51 ****
                                      /**
                                       * Means that the ORB cannot convert between the marshalled and
                                       * native data representation.
                                    !  * 
                                       * In GNU Classpath, this exception may have the following minor codes:
                                    !  * 
                                       * <table border="1">
                                       * <tr>
                                       * <td>Hex</td>
                                    --- 43,51 ----
                                      /**
                                       * Means that the ORB cannot convert between the marshalled and
                                       * native data representation.
                                    !  *
                                       * In GNU Classpath, this exception may have the following minor codes:
                                    !  *
                                       * <table border="1">
                                       * <tr>
                                       * <td>Hex</td>
                                    *************** import java.io.Serializable;
                                    *** 62,77 ****
                                       * local or remote resource (file or network), but this resource is not
                                       * reacheable.</td>
                                       * </tr>
                                    !  * </table> 
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class DATA_CONVERSION
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 1874869932271600956L;
                                      
                                    --- 62,77 ----
                                       * local or remote resource (file or network), but this resource is not
                                       * reacheable.</td>
                                       * </tr>
                                    !  * </table>
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class DATA_CONVERSION
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 1874869932271600956L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/DataInputStream.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/DataInputStream.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/DataInputStream.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/DataInputStream.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface DataInputStream
                                    *** 273,276 ****
                                         * .value field of the passed holder.
                                         */
                                        void read_double_array(DoubleSeqHolder seq, int offset, int length);
                                    ! }
                                    \ No newline at end of file
                                    --- 273,276 ----
                                         * .value field of the passed holder.
                                         */
                                        void read_double_array(DoubleSeqHolder seq, int offset, int length);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/DataOutputStream.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/DataOutputStream.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/DataOutputStream.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/DataOutputStream.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface DataOutputStream
                                    *** 278,281 ****
                                         * @param seq a value to write.
                                         */
                                        void write_double_array(double[] seq, int offset, int length);
                                    ! }
                                    \ No newline at end of file
                                    --- 278,281 ----
                                         * @param seq a value to write.
                                         */
                                        void write_double_array(double[] seq, int offset, int length);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/DefinitionKind.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/DefinitionKind.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/DefinitionKind.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/DefinitionKind.java	Tue Jan 11 19:46:05 2011
                                    *************** public class DefinitionKind
                                    *** 422,425 ****
                                          table [ _dk_Native ] = dk_Native;
                                          table [ _dk_AbstractInterface ] = dk_AbstractInterface;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 422,425 ----
                                          table [ _dk_Native ] = dk_Native;
                                          table [ _dk_AbstractInterface ] = dk_AbstractInterface;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/DefinitionKindHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/DefinitionKindHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/DefinitionKindHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/DefinitionKindHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class DefinitionKindHelp
                                    *** 85,91 ****
                                                        "dk_Wstring", "dk_Fixed", "dk_Value", "dk_ValueBox",
                                                        "dk_ValueMember", "dk_Native"
                                                       };
                                    !     
                                          return
                                          OrbRestricted.Singleton.create_enum_tc(id(), "DefinitionKind",
                                                                                 members
                                    --- 85,91 ----
                                                        "dk_Wstring", "dk_Fixed", "dk_Value", "dk_ValueBox",
                                                        "dk_ValueMember", "dk_Native"
                                                       };
                                    ! 
                                          return
                                          OrbRestricted.Singleton.create_enum_tc(id(), "DefinitionKind",
                                                                                 members
                                    *************** public abstract class DefinitionKindHelp
                                    *** 122,125 ****
                                        {
                                          ostream.write_long(value.value());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 122,125 ----
                                        {
                                          ostream.write_long(value.value());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/DynamicImplementation.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/DynamicImplementation.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/DynamicImplementation.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/DynamicImplementation.java	Tue Jan 11 19:46:05 2011
                                    *************** public class DynamicImplementation
                                    *** 62,70 ****
                                        /**
                                         * Invoke the method of the CORBA object. After converting the parameters,
                                         * this method delegates call to the {@link ObjectImpl#_invoke}.
                                    !    * 
                                         * @deprecated since 1.4.
                                    !    * 
                                         * @param request the container for both passing and returing the parameters,
                                         * also contains the method name and thrown exceptions.
                                         */
                                    --- 62,70 ----
                                        /**
                                         * Invoke the method of the CORBA object. After converting the parameters,
                                         * this method delegates call to the {@link ObjectImpl#_invoke}.
                                    !    *
                                         * @deprecated since 1.4.
                                    !    *
                                         * @param request the container for both passing and returing the parameters,
                                         * also contains the method name and thrown exceptions.
                                         */
                                    *************** public class DynamicImplementation
                                    *** 93,105 ****
                                                        out = v.value().create_output_stream();
                                                        v.value().write_value(out);
                                                        n = r.add_named_in_arg(v.name());
                                    !                   n.read_value(out.create_input_stream(), v.value().type());                  
                                                        break;
                                                      case ARG_INOUT.value:
                                                        out = v.value().create_output_stream();
                                                        v.value().write_value(out);
                                                        n = r.add_named_inout_arg(v.name());
                                    !                   n.read_value(out.create_input_stream(), v.value().type());                  
                                                        break;
                                                      case ARG_OUT.value:
                                                        r.add_named_out_arg(v.name());
                                    --- 93,105 ----
                                                        out = v.value().create_output_stream();
                                                        v.value().write_value(out);
                                                        n = r.add_named_in_arg(v.name());
                                    !                   n.read_value(out.create_input_stream(), v.value().type());
                                                        break;
                                                      case ARG_INOUT.value:
                                                        out = v.value().create_output_stream();
                                                        v.value().write_value(out);
                                                        n = r.add_named_inout_arg(v.name());
                                    !                   n.read_value(out.create_input_stream(), v.value().type());
                                                        break;
                                                      case ARG_OUT.value:
                                                        r.add_named_out_arg(v.name());
                                    *************** public class DynamicImplementation
                                    *** 117,126 ****
                                      
                                          // Set context.
                                          r.ctx(request.ctx());
                                    !     
                                          // Set the return type (expects that the ServerRequest will initialise
                                          // the passed Any.
                                    !     
                                          gnuAny g = new gnuAny();
                                          request.result(g);
                                          r.set_return_type(g.type());
                                    --- 117,126 ----
                                      
                                          // Set context.
                                          r.ctx(request.ctx());
                                    ! 
                                          // Set the return type (expects that the ServerRequest will initialise
                                          // the passed Any.
                                    ! 
                                          gnuAny g = new gnuAny();
                                          request.result(g);
                                          r.set_return_type(g.type());
                                    *************** public class DynamicImplementation
                                    *** 135,141 ****
                                            {
                                              // API states that the ServerRequest.arguments must be called only
                                              // once. Hence we assume we can just modify the previously returned
                                    !         // value <code>args</code>, and the ServerRequest will preserve the 
                                              // reference.
                                              for (i = 0; i < args.count(); i++)
                                                {
                                    --- 135,141 ----
                                            {
                                              // API states that the ServerRequest.arguments must be called only
                                              // once. Hence we assume we can just modify the previously returned
                                    !         // value <code>args</code>, and the ServerRequest will preserve the
                                              // reference.
                                              for (i = 0; i < args.count(); i++)
                                                {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/FREE_MEM.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/FREE_MEM.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/FREE_MEM.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/FREE_MEM.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means errors, related to freeing the allocated memory.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class FREE_MEM
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -1333559476995791982L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means errors, related to freeing the allocated memory.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class FREE_MEM
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -1333559476995791982L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/FieldNameHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/FieldNameHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/FieldNameHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/FieldNameHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class FieldNameHelper
                                    *** 113,116 ****
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 113,116 ----
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/IDLTypeHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/IDLTypeHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/IDLTypeHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/IDLTypeHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class IDLTypeHelper
                                    *** 125,128 ****
                                              return new _IDLTypeStub(delegate);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 125,128 ----
                                              return new _IDLTypeStub(delegate);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/IMP_LIMIT.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/IMP_LIMIT.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/IMP_LIMIT.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/IMP_LIMIT.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 43,57 ****
                                      /**
                                       * Means that the server has reached some implementation limit
                                       * (too many clients, too many references, too long parameters and so on).
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class IMP_LIMIT
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -8086463494577448422L;
                                      
                                    --- 43,57 ----
                                      /**
                                       * Means that the server has reached some implementation limit
                                       * (too many clients, too many references, too long parameters and so on).
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class IMP_LIMIT
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -8086463494577448422L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/INITIALIZE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/INITIALIZE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/INITIALIZE.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/INITIALIZE.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means that the server cannot be initialized because of the some reason.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INITIALIZE
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -3753094599663690309L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means that the server cannot be initialized because of the some reason.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INITIALIZE
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -3753094599663690309L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/INTERNAL.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/INTERNAL.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/INTERNAL.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/INTERNAL.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means an internal failure in the ORB.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INTERNAL
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 3771336866139357605L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means an internal failure in the ORB.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INTERNAL
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 3771336866139357605L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/INTF_REPOS.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/INTF_REPOS.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/INTF_REPOS.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/INTF_REPOS.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means errors, related to the interface repository.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INTF_REPOS
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 722572694720671863L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means errors, related to the interface repository.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INTF_REPOS
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 722572694720671863L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/INVALID_TRANSACTION.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/INVALID_TRANSACTION.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/INVALID_TRANSACTION.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/INVALID_TRANSACTION.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means that request carried an invalid transaction context.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INVALID_TRANSACTION
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -4265126403821571697L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means that request carried an invalid transaction context.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INVALID_TRANSACTION
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -4265126403821571697L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/INV_FLAG.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/INV_FLAG.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/INV_FLAG.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/INV_FLAG.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means invalid flag, passed during operation.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INV_FLAG
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -4863924749863817671L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means invalid flag, passed during operation.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INV_FLAG
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -4863924749863817671L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/INV_IDENT.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/INV_IDENT.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/INV_IDENT.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/INV_IDENT.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means that some IDL identifier has a wrong syntax.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INV_IDENT
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 4399295047946553530L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means that some IDL identifier has a wrong syntax.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INV_IDENT
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 4399295047946553530L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/INV_OBJREF.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/INV_OBJREF.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/INV_OBJREF.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/INV_OBJREF.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means that some object reference is internally malformed.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INV_OBJREF
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -7238811948257685034L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means that some object reference is internally malformed.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INV_OBJREF
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -7238811948257685034L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/INV_POLICY.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/INV_POLICY.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/INV_POLICY.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/INV_POLICY.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.omg.CORBA;
                                    *** 41,58 ****
                                      import java.io.Serializable;
                                      
                                      /**
                                    !  * This exception is thrown when an invocation cannot be made because of 
                                    !  * an incompatibility between Policy overrides that apply to the 
                                       * particular invocation.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INV_POLICY
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -7823113107689030975L;
                                      
                                    --- 41,58 ----
                                      import java.io.Serializable;
                                      
                                      /**
                                    !  * This exception is thrown when an invocation cannot be made because of
                                    !  * an incompatibility between Policy overrides that apply to the
                                       * particular invocation.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class INV_POLICY
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -7823113107689030975L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/IRObject.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/IRObject.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/IRObject.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/IRObject.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 50,53 ****
                                      public interface IRObject
                                        extends IRObjectOperations, org.omg.CORBA.Object, Serializable, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 50,53 ----
                                      public interface IRObject
                                        extends IRObjectOperations, org.omg.CORBA.Object, Serializable, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/IRObjectOperations.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/IRObjectOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/IRObjectOperations.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/IRObjectOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface IRObjectOperations {
                                    *** 65,68 ****
                                         */
                                        void destroy() throws BAD_INV_ORDER;
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 65,68 ----
                                         */
                                        void destroy() throws BAD_INV_ORDER;
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/IdentifierHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/IdentifierHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/IdentifierHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/IdentifierHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class IdentifierHelper
                                    *** 113,116 ****
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 113,116 ----
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/LocalObject.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/LocalObject.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/LocalObject.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/LocalObject.java	Tue Jan 11 19:46:05 2011
                                    *************** public class LocalObject
                                    *** 250,298 ****
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    !   
                                        /**
                                         * This method is called from <code>rmic</code> generated stubs if the
                                         * {@link Util#isLocal}, called passing <code>this</code> as parameter,
                                         * returns true. If the method returns null, the requested method is then
                                         * invoked on <code>this</code>. Else it is invoked on the returned object,
                                         * casting it into the interface that the local object implements. In this
                                    !    * case, the generated stub also later calls 
                                         * {@link #_servant_postinvoke(ServantObject)}, passing that returned target
                                         * as parameter.
                                    !    * 
                                         * @param operation the name of the method being invoked.
                                    !    * @param expectedType the interface that the returned servant 
                                         * object must implement.
                                    !    * 
                                         * @throws NO_IMPLEMENT always. If used, the method must be overridden.
                                         */
                                        public ServantObject _servant_preinvoke(String operation, Class expectedType)
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    !   
                                    !   
                                        /**
                                         * This method is called from <code>rmic</code> generated stubs if the
                                         * {@link Util#isLocal}, called passing <code>this</code> as parameter,
                                         * returns true, and the {@link #_servant_preinvoke} return non-null object.
                                         * The stub then invokes the requrested method on that returned object and
                                         * later calls _servant_postinvoke, passing that returned target as parameter.
                                    !    * 
                                         * @param servant the object that has served as the invocation target for the
                                         * current operation.
                                         */
                                        public void _servant_postinvoke(ServantObject servant)
                                        {
                                        }
                                    !   
                                        /**
                                    !    * Invokes the operation. This method takes the OutputStream that was previously 
                                    !    * returned by a {@link #_request(String)} and returns an InputStream which 
                                         * contains the reply. Up till jdk 1.5 inclusive this method is marked as
                                         * unimplemented.
                                    !    * 
                                         * @throws NO_IMPLEMENT always.
                                         */
                                        public InputStream _invoke(OutputStream output)
                                    --- 250,299 ----
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! 
                                        /**
                                         * This method is called from <code>rmic</code> generated stubs if the
                                         * {@link Util#isLocal}, called passing <code>this</code> as parameter,
                                         * returns true. If the method returns null, the requested method is then
                                         * invoked on <code>this</code>. Else it is invoked on the returned object,
                                         * casting it into the interface that the local object implements. In this
                                    !    * case, the generated stub also later calls
                                         * {@link #_servant_postinvoke(ServantObject)}, passing that returned target
                                         * as parameter.
                                    !    *
                                         * @param operation the name of the method being invoked.
                                    !    * @param expectedType the interface that the returned servant
                                         * object must implement.
                                    !    *
                                         * @throws NO_IMPLEMENT always. If used, the method must be overridden.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public ServantObject _servant_preinvoke(String operation, Class expectedType)
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * This method is called from <code>rmic</code> generated stubs if the
                                         * {@link Util#isLocal}, called passing <code>this</code> as parameter,
                                         * returns true, and the {@link #_servant_preinvoke} return non-null object.
                                         * The stub then invokes the requrested method on that returned object and
                                         * later calls _servant_postinvoke, passing that returned target as parameter.
                                    !    *
                                         * @param servant the object that has served as the invocation target for the
                                         * current operation.
                                         */
                                        public void _servant_postinvoke(ServantObject servant)
                                        {
                                        }
                                    ! 
                                        /**
                                    !    * Invokes the operation. This method takes the OutputStream that was previously
                                    !    * returned by a {@link #_request(String)} and returns an InputStream which
                                         * contains the reply. Up till jdk 1.5 inclusive this method is marked as
                                         * unimplemented.
                                    !    *
                                         * @throws NO_IMPLEMENT always.
                                         */
                                        public InputStream _invoke(OutputStream output)
                                    *************** public class LocalObject
                                    *** 300,322 ****
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    !   
                                        /**
                                         * While it may look that this should return true, the jdk 1.5 API states
                                         * that it must throw NO_IMPLEMENT instead. The rmi stubs do not call this
                                         * method to check if the object is local; they call {@link Util#isLocal}
                                    !    * instead (passing <code>this</code> as parameter).  
                                    !    * 
                                         * @return never.
                                    !    * 
                                         * @throws NO_IMPLEMENT always.
                                         */
                                        public boolean _is_local()
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    !   
                                    !   
                                        /**
                                         * This method is not appropriate for the local objects and just
                                         * throws an exception.
                                    --- 301,323 ----
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! 
                                        /**
                                         * While it may look that this should return true, the jdk 1.5 API states
                                         * that it must throw NO_IMPLEMENT instead. The rmi stubs do not call this
                                         * method to check if the object is local; they call {@link Util#isLocal}
                                    !    * instead (passing <code>this</code> as parameter).
                                    !    *
                                         * @return never.
                                    !    *
                                         * @throws NO_IMPLEMENT always.
                                         */
                                        public boolean _is_local()
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * This method is not appropriate for the local objects and just
                                         * throws an exception.
                                    *************** public class LocalObject
                                    *** 325,355 ****
                                         */
                                        public ORB _orb()
                                        {
                                    !     throw new NO_IMPLEMENT(INAPPROPRIATE);    
                                        }
                                    !   
                                        /**
                                         * This method is not appropriate for the local objects and just
                                         * throws an exception.
                                         *
                                         * @throws NO_IMPLEMENT, always.
                                         */
                                    !   public void _releaseReply(InputStream input) 
                                        {
                                    !     throw new NO_IMPLEMENT(INAPPROPRIATE);    
                                        }
                                    !   
                                        /**
                                         * This method is not appropriate for the local objects and just
                                         * throws an exception.
                                         *
                                         * @throws NO_IMPLEMENT, always.
                                         */
                                    !   public OutputStream _request(String operation, boolean responseExpected) 
                                        {
                                    !     throw new NO_IMPLEMENT(INAPPROPRIATE);    
                                        }
                                    !   
                                        /**
                                         * This method is not appropriate for the local objects and just
                                         * throws an exception.
                                    --- 326,356 ----
                                         */
                                        public ORB _orb()
                                        {
                                    !     throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! 
                                        /**
                                         * This method is not appropriate for the local objects and just
                                         * throws an exception.
                                         *
                                         * @throws NO_IMPLEMENT, always.
                                         */
                                    !   public void _releaseReply(InputStream input)
                                        {
                                    !     throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! 
                                        /**
                                         * This method is not appropriate for the local objects and just
                                         * throws an exception.
                                         *
                                         * @throws NO_IMPLEMENT, always.
                                         */
                                    !   public OutputStream _request(String operation, boolean responseExpected)
                                        {
                                    !     throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! 
                                        /**
                                         * This method is not appropriate for the local objects and just
                                         * throws an exception.
                                    *************** public class LocalObject
                                    *** 360,363 ****
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 361,364 ----
                                        {
                                          throw new NO_IMPLEMENT(INAPPROPRIATE);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/LongSeqHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/LongSeqHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/LongSeqHolder.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/LongSeqHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.Streamable
                                    *** 46,53 ****
                                      
                                      /**
                                       * A sequence holder for CORBA <code>LongSeq</code> that is mapped into
                                    !  * java <code>int[]</code>. 
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class LongSeqHolder
                                    --- 46,53 ----
                                      
                                      /**
                                       * A sequence holder for CORBA <code>LongSeq</code> that is mapped into
                                    !  * java <code>int[]</code>.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class LongSeqHolder
                                    *************** public final class LongSeqHolder
                                    *** 56,82 ****
                                        /**
                                         * The type code for this holder. Each holder has a different instance.
                                         */
                                    !   private final ArrayTypeCode typecode = 
                                          new ArrayTypeCode(TCKind.tk_long);
                                    !   
                                        /**
                                         * The <code>int[]</code> (CORBA <code>LongSeq</code>) value,
                                         * held by this LongSeqHolder.
                                         */
                                        public int[] value;
                                    !   
                                        /**
                                         * Constructs an instance of LongSeqHolder,
                                         * initializing {@link #value} to <code>null</code>.
                                         */
                                        public LongSeqHolder()
                                        {
                                    !   }  
                                    !   
                                        /**
                                         * Constructs an instance of LongSeqHolder,
                                         * initializing {@link #value} to the given <code>int</code>.
                                    !    * 
                                         * @param initial_value a value that will be assigned to the
                                         * {@link #value} field.
                                         */
                                    --- 56,82 ----
                                        /**
                                         * The type code for this holder. Each holder has a different instance.
                                         */
                                    !   private final ArrayTypeCode typecode =
                                          new ArrayTypeCode(TCKind.tk_long);
                                    ! 
                                        /**
                                         * The <code>int[]</code> (CORBA <code>LongSeq</code>) value,
                                         * held by this LongSeqHolder.
                                         */
                                        public int[] value;
                                    ! 
                                        /**
                                         * Constructs an instance of LongSeqHolder,
                                         * initializing {@link #value} to <code>null</code>.
                                         */
                                        public LongSeqHolder()
                                        {
                                    !   }
                                    ! 
                                        /**
                                         * Constructs an instance of LongSeqHolder,
                                         * initializing {@link #value} to the given <code>int</code>.
                                    !    *
                                         * @param initial_value a value that will be assigned to the
                                         * {@link #value} field.
                                         */
                                    *************** public final class LongSeqHolder
                                    *** 85,97 ****
                                          value = initial_value;
                                          typecode.setLength(value.length);
                                        }
                                    !   
                                        /**
                                         * Fill in the {@link #value } field by reading the required data
                                         * from the given stream. This method first reads the array size
                                         * (as CORBA <code>long</code>and then calls the
                                         * {@link org.omg.CORBA.portable.InputStream#read_long_array }.
                                    !    * 
                                         * @param input the input stream to read from.
                                         */
                                        public void _read(InputStream input)
                                    --- 85,97 ----
                                          value = initial_value;
                                          typecode.setLength(value.length);
                                        }
                                    ! 
                                        /**
                                         * Fill in the {@link #value } field by reading the required data
                                         * from the given stream. This method first reads the array size
                                         * (as CORBA <code>long</code>and then calls the
                                         * {@link org.omg.CORBA.portable.InputStream#read_long_array }.
                                    !    *
                                         * @param input the input stream to read from.
                                         */
                                        public void _read(InputStream input)
                                    *************** public final class LongSeqHolder
                                    *** 99,120 ****
                                          value = new int[ input.read_long() ];
                                          input.read_long_array(value, 0, value.length);
                                          typecode.setLength(value.length);
                                    !   }  
                                    !   
                                        /**
                                         * Write the {@link #value } field to the given stream.
                                         * This method first writes the array size
                                         * (as CORBA <code>long</code>and then calls the
                                    !    * {@link org.omg.CORBA.portable.OutputStream#write_long_array }.    
                                    !    * 
                                         * @param output the output stream to write into.
                                         */
                                        public void _write(OutputStream output)
                                        {
                                          output.write_long(value.length);
                                          output.write_long_array(value, 0, value.length);
                                    !   }  
                                    !   
                                        /**
                                         * Returns the TypeCode, corresponding the CORBA type that is stored
                                         * using this holder.
                                    --- 99,120 ----
                                          value = new int[ input.read_long() ];
                                          input.read_long_array(value, 0, value.length);
                                          typecode.setLength(value.length);
                                    !   }
                                    ! 
                                        /**
                                         * Write the {@link #value } field to the given stream.
                                         * This method first writes the array size
                                         * (as CORBA <code>long</code>and then calls the
                                    !    * {@link org.omg.CORBA.portable.OutputStream#write_long_array }.
                                    !    *
                                         * @param output the output stream to write into.
                                         */
                                        public void _write(OutputStream output)
                                        {
                                          output.write_long(value.length);
                                          output.write_long_array(value, 0, value.length);
                                    !   }
                                    ! 
                                        /**
                                         * Returns the TypeCode, corresponding the CORBA type that is stored
                                         * using this holder.
                                    *************** public final class LongSeqHolder
                                    *** 122,128 ****
                                        public TypeCode _type()
                                        {
                                          return typecode;
                                    !   }  
                                    !   
                                    !   
                                      }
                                    --- 122,128 ----
                                        public TypeCode _type()
                                        {
                                          return typecode;
                                    !   }
                                    ! 
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/MARSHAL.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/MARSHAL.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/MARSHAL.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/MARSHAL.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 44,50 ****
                                       * Means that some request or reply from the network has a wrong size or is
                                       * structurally invalid. In GNU Classpath, this exception may have the following
                                       * minor codes (the high 20 bits being Classpath VMCID):
                                    !  * 
                                       * <table border="1">
                                       * <tr>
                                       * <th>Hex</th>
                                    --- 44,50 ----
                                       * Means that some request or reply from the network has a wrong size or is
                                       * structurally invalid. In GNU Classpath, this exception may have the following
                                       * minor codes (the high 20 bits being Classpath VMCID):
                                    !  *
                                       * <table border="1">
                                       * <tr>
                                       * <th>Hex</th>
                                    *************** import java.io.Serializable;
                                    *** 216,222 ****
                                       * <td>No means are provided to read or write this value type (not Streamable,
                                       * not CustomMarshal, not Serializable, no factory, no helper.</td>
                                       * </tr>
                                    !  * <tr> 
                                       * <td>47430017</td>
                                       * <td>1195573271</td>
                                       * <td>23</td>
                                    --- 216,222 ----
                                       * <td>No means are provided to read or write this value type (not Streamable,
                                       * not CustomMarshal, not Serializable, no factory, no helper.</td>
                                       * </tr>
                                    !  * <tr>
                                       * <td>47430017</td>
                                       * <td>1195573271</td>
                                       * <td>23</td>
                                    *************** import java.io.Serializable;
                                    *** 228,234 ****
                                       * <td>47430018</td>
                                       * <td>1195573272</td>
                                       * <td>24</td>
                                    !  * 
                                       * <td>UnsupportedAddressing</td>
                                       * <td>Unsupported object addressing method in GIOP request header.</td>
                                       * </tr>
                                    --- 228,234 ----
                                       * <td>47430018</td>
                                       * <td>1195573272</td>
                                       * <td>24</td>
                                    !  *
                                       * <td>UnsupportedAddressing</td>
                                       * <td>Unsupported object addressing method in GIOP request header.</td>
                                       * </tr>
                                    *************** import java.io.Serializable;
                                    *** 246,252 ****
                                       * <td>TargetConversion</td>
                                       * <td>Problems with converting between stubs, ties, interfaces and
                                       * implementations.</td>
                                    !  * 
                                       * </tr>
                                       * <tr>
                                       * <td>4743001b</td>
                                    --- 246,252 ----
                                       * <td>TargetConversion</td>
                                       * <td>Problems with converting between stubs, ties, interfaces and
                                       * implementations.</td>
                                    !  *
                                       * </tr>
                                       * <tr>
                                       * <td>4743001b</td>
                                    *************** import java.io.Serializable;
                                    *** 265,271 ****
                                       * serializable</td>
                                       * </tr>
                                       * </table>
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class MARSHAL
                                    --- 265,271 ----
                                       * serializable</td>
                                       * </tr>
                                       * </table>
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class MARSHAL
                                    *************** public final class MARSHAL
                                    *** 280,286 ****
                                        /**
                                         * Creates a MARSHAL with the default minor code of 0, completion state
                                         * COMPLETED_NO and the given explaining message.
                                    !    * 
                                         * @param message the explaining message.
                                         */
                                        public MARSHAL(String message)
                                    --- 280,286 ----
                                        /**
                                         * Creates a MARSHAL with the default minor code of 0, completion state
                                         * COMPLETED_NO and the given explaining message.
                                    !    *
                                         * @param message the explaining message.
                                         */
                                        public MARSHAL(String message)
                                    *************** public final class MARSHAL
                                    *** 300,306 ****
                                        /**
                                         * Creates a MARSHAL exception with the specified minor code and completion
                                         * status.
                                    !    * 
                                         * @param minor_code additional error code.
                                         * @param is_completed the method completion status.
                                         */
                                    --- 300,306 ----
                                        /**
                                         * Creates a MARSHAL exception with the specified minor code and completion
                                         * status.
                                    !    *
                                         * @param minor_code additional error code.
                                         * @param is_completed the method completion status.
                                         */
                                    *************** public final class MARSHAL
                                    *** 311,317 ****
                                      
                                        /**
                                         * Created MARSHAL exception, providing full information.
                                    !    * 
                                         * @param reason explaining message.
                                         * @param minor_code additional error code (the "minor").
                                         * @param is_completed the method completion status.
                                    --- 311,317 ----
                                      
                                        /**
                                         * Created MARSHAL exception, providing full information.
                                    !    *
                                         * @param reason explaining message.
                                         * @param minor_code additional error code (the "minor").
                                         * @param is_completed the method completion status.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_IMPLEMENT.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_IMPLEMENT.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_IMPLEMENT.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_IMPLEMENT.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class NO_IMPLEMENT
                                    *** 50,57 ****
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 3519190655657192112L;
                                      
                                    --- 50,57 ----
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 3519190655657192112L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_MEMORY.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_MEMORY.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_MEMORY.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_MEMORY.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means that the server has runned out of memory.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class NO_MEMORY
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -4591569617929689285L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means that the server has runned out of memory.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class NO_MEMORY
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -4591569617929689285L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_PERMISSION.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_PERMISSION.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_PERMISSION.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_PERMISSION.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,56 ****
                                      
                                      /**
                                       * Means that the caller has no rights to invoke the operation.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class NO_PERMISSION
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -1533969523582458479L;
                                      
                                    --- 42,56 ----
                                      
                                      /**
                                       * Means that the caller has no rights to invoke the operation.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class NO_PERMISSION
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -1533969523582458479L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_RESOURCES.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_RESOURCES.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_RESOURCES.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_RESOURCES.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 43,51 ****
                                      /**
                                       * Means that the ORB has reached some general resource limitation like maximal
                                       * number of the opened connections.
                                    !  * 
                                       * In GNU Classpath, this exception may have the following minor codes:
                                    !  * 
                                       * <table border="1">
                                       * <tr>
                                       * <td>Hex</td>
                                    --- 43,51 ----
                                      /**
                                       * Means that the ORB has reached some general resource limitation like maximal
                                       * number of the opened connections.
                                    !  *
                                       * In GNU Classpath, this exception may have the following minor codes:
                                    !  *
                                       * <table border="1">
                                       * <tr>
                                       * <td>Hex</td>
                                    *************** import java.io.Serializable;
                                    *** 72,79 ****
                                       * if turned on, prevents malicios client from knocking the server out by
                                       * suddenly submitting a very large number of requests. </td>
                                       * </tr>
                                    !  * </table> 
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public final class NO_RESOURCES
                                    --- 72,79 ----
                                       * if turned on, prevents malicios client from knocking the server out by
                                       * suddenly submitting a very large number of requests. </td>
                                       * </tr>
                                    !  * </table>
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public final class NO_RESOURCES
                                    *************** public final class NO_RESOURCES
                                    *** 88,94 ****
                                        /**
                                         * Creates a NO_RESOURCES with the default minor code of 0, completion state
                                         * COMPLETED_NO and the given explaining message.
                                    !    * 
                                         * @param message the explaining message.
                                         */
                                        public NO_RESOURCES(String message)
                                    --- 88,94 ----
                                        /**
                                         * Creates a NO_RESOURCES with the default minor code of 0, completion state
                                         * COMPLETED_NO and the given explaining message.
                                    !    *
                                         * @param message the explaining message.
                                         */
                                        public NO_RESOURCES(String message)
                                    *************** public final class NO_RESOURCES
                                    *** 108,114 ****
                                        /**
                                         * Creates a NO_RESOURCES exception with the specified minor code and
                                         * completion status.
                                    !    * 
                                         * @param a_minor additional error code.
                                         * @param a_completed the method completion status.
                                         */
                                    --- 108,114 ----
                                        /**
                                         * Creates a NO_RESOURCES exception with the specified minor code and
                                         * completion status.
                                    !    *
                                         * @param a_minor additional error code.
                                         * @param a_completed the method completion status.
                                         */
                                    *************** public final class NO_RESOURCES
                                    *** 119,125 ****
                                      
                                        /**
                                         * Created NO_RESOURCES exception, providing full information.
                                    !    * 
                                         * @param a_reason explaining message.
                                         * @param a_minor additional error code (the "minor").
                                         * @param a_completed the method completion status.
                                    --- 119,125 ----
                                      
                                        /**
                                         * Created NO_RESOURCES exception, providing full information.
                                    !    *
                                         * @param a_reason explaining message.
                                         * @param a_minor additional error code (the "minor").
                                         * @param a_completed the method completion status.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_RESPONSE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_RESPONSE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/NO_RESPONSE.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/NO_RESPONSE.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class NO_RESPONSE
                                    *** 50,57 ****
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 1971973765161647047L;
                                      
                                    --- 50,57 ----
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 1971973765161647047L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/NVList.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/NVList.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/NVList.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/NVList.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NVList
                                    *** 55,64 ****
                                         * Create and add a new named value object with null name,
                                         * null value and having given flags.
                                         * @param a_flags the flags, the normally expected values are
                                    !    * {@link org.omg.CORBA.ARG_IN#value}, 
                                    !    * {@link org.omg.CORBA.ARG_OUT#value} and 
                                         * {@link org.omg.CORBA.ARG_INOUT#value} or 0.
                                    !    * 
                                         * @return the created and added value.
                                         */
                                        public abstract NamedValue add(int a_flags);
                                    --- 55,64 ----
                                         * Create and add a new named value object with null name,
                                         * null value and having given flags.
                                         * @param a_flags the flags, the normally expected values are
                                    !    * {@link org.omg.CORBA.ARG_IN#value},
                                    !    * {@link org.omg.CORBA.ARG_OUT#value} and
                                         * {@link org.omg.CORBA.ARG_INOUT#value} or 0.
                                    !    *
                                         * @return the created and added value.
                                         */
                                        public abstract NamedValue add(int a_flags);
                                    *************** public abstract class NVList
                                    *** 71,77 ****
                                         * {@link org.omg.CORBA.ARG_IN#value},
                                         * {@link org.omg.CORBA.ARG_OUT#value} and
                                         * {@link org.omg.CORBA.ARG_INOUT#value} or 0.
                                    !    * 
                                         * @return the created and added value.
                                         */
                                        public abstract NamedValue add_item(String a_name, int a_flags);
                                    --- 71,77 ----
                                         * {@link org.omg.CORBA.ARG_IN#value},
                                         * {@link org.omg.CORBA.ARG_OUT#value} and
                                         * {@link org.omg.CORBA.ARG_INOUT#value} or 0.
                                    !    *
                                         * @return the created and added value.
                                         */
                                        public abstract NamedValue add_item(String a_name, int a_flags);
                                    *************** public abstract class NVList
                                    *** 85,98 ****
                                         * {@link org.omg.CORBA.ARG_IN#value},
                                         * {@link org.omg.CORBA.ARG_OUT#value} and
                                         * {@link org.omg.CORBA.ARG_INOUT#value} or 0.
                                    !    * 
                                         * @return the created object.
                                         */
                                        public abstract NamedValue add_value(String a_name, Any a_value, int a_flags);
                                      
                                        /**
                                         * Get the number of the present named value pairs.
                                    !    * 
                                         * @return the number of objects in the list.
                                         */
                                        public abstract int count();
                                    --- 85,98 ----
                                         * {@link org.omg.CORBA.ARG_IN#value},
                                         * {@link org.omg.CORBA.ARG_OUT#value} and
                                         * {@link org.omg.CORBA.ARG_INOUT#value} or 0.
                                    !    *
                                         * @return the created object.
                                         */
                                        public abstract NamedValue add_value(String a_name, Any a_value, int a_flags);
                                      
                                        /**
                                         * Get the number of the present named value pairs.
                                    !    *
                                         * @return the number of objects in the list.
                                         */
                                        public abstract int count();
                                    *************** public abstract class NVList
                                    *** 100,106 ****
                                        /**
                                         * Get the item at the given index
                                         * @param at the index.
                                    !    * 
                                         * @return the item at the index
                                         * @throws Bounds if the index is out of bounds.
                                         */
                                    --- 100,106 ----
                                        /**
                                         * Get the item at the given index
                                         * @param at the index.
                                    !    *
                                         * @return the item at the index
                                         * @throws Bounds if the index is out of bounds.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/OBJECT_NOT_EXIST.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/OBJECT_NOT_EXIST.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/OBJECT_NOT_EXIST.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/OBJECT_NOT_EXIST.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class OBJECT_NOT_EXIST
                                    *** 48,55 ****
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 7226958015420512389L;
                                      
                                    --- 48,55 ----
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 7226958015420512389L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/OBJ_ADAPTER.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/OBJ_ADAPTER.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/OBJ_ADAPTER.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/OBJ_ADAPTER.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class OBJ_ADAPTER
                                    *** 49,56 ****
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -1516541344234786928L;
                                      
                                    --- 49,56 ----
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -1516541344234786928L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/OMGVMCID.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/OMGVMCID.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/OMGVMCID.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/OMGVMCID.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* OMGVMCID.java -- 
                                       Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                       This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* OMGVMCID.java --
                                       Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                       This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 56,66 ****
                                       * assigned space, the assignment of values to minor codes is left to the
                                       * vendor.
                                       * </p>
                                    !  * 
                                       * <p>
                                       * The VMCID 0 and 0xFFFFF0000 are reserved for experimental use.
                                       * </p>
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface OMGVMCID
                                    --- 56,66 ----
                                       * assigned space, the assignment of values to minor codes is left to the
                                       * vendor.
                                       * </p>
                                    !  *
                                       * <p>
                                       * The VMCID 0 and 0xFFFFF0000 are reserved for experimental use.
                                       * </p>
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface OMGVMCID
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ORB.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ORB.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ORB.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ORB.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Properties;
                                    *** 62,73 ****
                                       * A central class in CORBA implementation, responsible for sending and handling
                                       * remote invocations. ORB also works as a factory for creating instances of
                                       * certain CORBA classes.
                                    !  * 
                                       * Despite the core library contains the fully working CORBA implementation, it
                                       * also provides a simple way to plug-in the alternative CORBA support. This is
                                       * done by replacing the ORB. The alternative ORB can be specified via
                                       * properties, passed to ORB.Init(...).
                                    !  * 
                                       * When creating an ORB instance, the class name is searched in the following
                                       * locations:
                                       * <p>
                                    --- 62,73 ----
                                       * A central class in CORBA implementation, responsible for sending and handling
                                       * remote invocations. ORB also works as a factory for creating instances of
                                       * certain CORBA classes.
                                    !  *
                                       * Despite the core library contains the fully working CORBA implementation, it
                                       * also provides a simple way to plug-in the alternative CORBA support. This is
                                       * done by replacing the ORB. The alternative ORB can be specified via
                                       * properties, passed to ORB.Init(...).
                                    !  *
                                       * When creating an ORB instance, the class name is searched in the following
                                       * locations:
                                       * <p>
                                    *************** import java.util.Properties;
                                    *** 77,83 ****
                                       * 4. The orb.properties file located in the user.home directory (if any).<br>
                                       * 5. The orb.properties file located in the java.home/lib directory (if any).
                                       * </p>
                                    !  * 
                                       * The supported properties are: <table border="1">
                                       * <tr>
                                       * <td> org.omg.CORBA.ORBClass</td>
                                    --- 77,83 ----
                                       * 4. The orb.properties file located in the user.home directory (if any).<br>
                                       * 5. The orb.properties file located in the java.home/lib directory (if any).
                                       * </p>
                                    !  *
                                       * The supported properties are: <table border="1">
                                       * <tr>
                                       * <td> org.omg.CORBA.ORBClass</td>
                                    *************** import java.util.Properties;
                                    *** 99,105 ****
                                       * <td>org.omg.CORBA.ORBid</td>
                                       * <td>Specifies the name (ORB Id) of this ORB. The ORB Id is later accessible
                                       * by {@link ObjectReferenceTemplate#orb_id}. The default value includes the
                                    !  * hashcode of the ORB instance that is normally different for each ORB. 
                                       * </td>
                                       * </tr>
                                       * <tr>
                                    --- 99,105 ----
                                       * <td>org.omg.CORBA.ORBid</td>
                                       * <td>Specifies the name (ORB Id) of this ORB. The ORB Id is later accessible
                                       * by {@link ObjectReferenceTemplate#orb_id}. The default value includes the
                                    !  * hashcode of the ORB instance that is normally different for each ORB.
                                       * </td>
                                       * </tr>
                                       * <tr>
                                    *************** import java.util.Properties;
                                    *** 126,141 ****
                                       * currently instantiated. Serves as a replacement of the proprietary
                                       * property com.sun.CORBA.connection.ORBSocketFactoryClass. To have multiple
                                       * types of sockets, instantiate several ORB's with this property each time
                                    !  * set to the different value. 
                                       * The factory must implement gnu.CORBA.interfaces.SocketFactory.
                                       * </td>
                                       * </tr>
                                    !  * </table> 
                                       * <p>The command line accepts the same properties as a keys. When
                                       * specifying in the command line, the prefix org.omg.CORBA can be omitted, for
                                       * instance<code> -ORBInitRef NameService=IOR:aabbccdd....</code>
                                       * </p>
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class ORB
                                    --- 126,141 ----
                                       * currently instantiated. Serves as a replacement of the proprietary
                                       * property com.sun.CORBA.connection.ORBSocketFactoryClass. To have multiple
                                       * types of sockets, instantiate several ORB's with this property each time
                                    !  * set to the different value.
                                       * The factory must implement gnu.CORBA.interfaces.SocketFactory.
                                       * </td>
                                       * </tr>
                                    !  * </table>
                                       * <p>The command line accepts the same properties as a keys. When
                                       * specifying in the command line, the prefix org.omg.CORBA can be omitted, for
                                       * instance<code> -ORBInitRef NameService=IOR:aabbccdd....</code>
                                       * </p>
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class ORB
                                    *************** public abstract class ORB
                                    *** 155,174 ****
                                         */
                                        private static final String RESTRICTED_ORB =
                                          "org.omg.CORBA.ORBSingletonClass";
                                    !   
                                        private static final String LISTENER_PORT =
                                          OrbFocused.LISTENER_PORT;
                                    !   
                                        /**
                                         * The class, implementing the default fully functional ORB.
                                         */
                                        private static final String DEFAULT_FUNCTIONAL_ORB =
                                          gnu.CORBA.Poa.ORB_1_4.class.getName();
                                    !   
                                        private static final String DEFAULT_FOCUSED_ORB =
                                          gnu.CORBA.OrbFocused.class.getName();
                                    !   
                                    !   // There is no need for name of the default restricted ORB as it is 
                                        // singleton and it is more effectively referred directly.
                                      
                                        /**
                                    --- 155,174 ----
                                         */
                                        private static final String RESTRICTED_ORB =
                                          "org.omg.CORBA.ORBSingletonClass";
                                    ! 
                                        private static final String LISTENER_PORT =
                                          OrbFocused.LISTENER_PORT;
                                    ! 
                                        /**
                                         * The class, implementing the default fully functional ORB.
                                         */
                                        private static final String DEFAULT_FUNCTIONAL_ORB =
                                          gnu.CORBA.Poa.ORB_1_4.class.getName();
                                    ! 
                                        private static final String DEFAULT_FOCUSED_ORB =
                                          gnu.CORBA.OrbFocused.class.getName();
                                    ! 
                                    !   // There is no need for name of the default restricted ORB as it is
                                        // singleton and it is more effectively referred directly.
                                      
                                        /**
                                    *************** public abstract class ORB
                                    *** 282,288 ****
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    !   
                                        /**
                                         * The support for {@link DynAny} and derived interfaces
                                         * has never been implemented in Sun's java releases,
                                    --- 282,288 ----
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    ! 
                                        /**
                                         * The support for {@link DynAny} and derived interfaces
                                         * has never been implemented in Sun's java releases,
                                    *************** public abstract class ORB
                                    *** 371,377 ****
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    !   
                                        /**
                                         * The support for {@link DynUnion} and derived interfaces
                                         * has never been implemented in Sun's java releases,
                                    --- 371,377 ----
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    ! 
                                        /**
                                         * The support for {@link DynUnion} and derived interfaces
                                         * has never been implemented in Sun's java releases,
                                    *************** public abstract class ORB
                                    *** 529,535 ****
                                         */
                                        public abstract Request get_next_response()
                                                                           throws WrongTransaction;
                                    !  
                                        /**
                                         * Create a new CDR output stream, where the parameter values can be written
                                         * during the method invocation.
                                    --- 529,535 ----
                                         */
                                        public abstract Request get_next_response()
                                                                           throws WrongTransaction;
                                    ! 
                                        /**
                                         * Create a new CDR output stream, where the parameter values can be written
                                         * during the method invocation.
                                    *************** public abstract class ORB
                                    *** 844,853 ****
                                        {
                                          String ocn = applet.getParameter(FUNCTIONAL_ORB);
                                          String lp = applet.getParameter(LISTENER_PORT);
                                    !     
                                          if (ocn==null && lp!=null)
                                            ocn = DEFAULT_FOCUSED_ORB;
                                    !     
                                          ORB orb = createORB(props, ocn);
                                          orb.set_parameters(applet, props);
                                      
                                    --- 844,853 ----
                                        {
                                          String ocn = applet.getParameter(FUNCTIONAL_ORB);
                                          String lp = applet.getParameter(LISTENER_PORT);
                                    ! 
                                          if (ocn==null && lp!=null)
                                            ocn = DEFAULT_FOCUSED_ORB;
                                    ! 
                                          ORB orb = createORB(props, ocn);
                                          orb.set_parameters(applet, props);
                                      
                                    *************** public abstract class ORB
                                    *** 856,873 ****
                                      
                                        /**
                                         * Creates the working instance of ORB for a standalone application.
                                    !    * 
                                         * By default the built-in fully functional ORB is returned. The ORB class is
                                         * found as described in the header of this class.
                                    !    * 
                                         * @param args the parameters, passed to the applications
                                         * <code>main(String[] args)</code> method, may be <code>null</code>. The
                                         * parameter -org.omg.CORBA.ORBClass <class name> if present, defines the used
                                         * ORB implementation class. If this property is not present, the ORB class is
                                         * found as described in the class header.
                                    !    * 
                                         * @param props application specific properties, may be <code>null</code>.
                                    !    * 
                                         * @return a newly created functional derivative of this abstract class.
                                         */
                                        public static ORB init(String[] args, Properties props)
                                    --- 856,873 ----
                                      
                                        /**
                                         * Creates the working instance of ORB for a standalone application.
                                    !    *
                                         * By default the built-in fully functional ORB is returned. The ORB class is
                                         * found as described in the header of this class.
                                    !    *
                                         * @param args the parameters, passed to the applications
                                         * <code>main(String[] args)</code> method, may be <code>null</code>. The
                                         * parameter -org.omg.CORBA.ORBClass <class name> if present, defines the used
                                         * ORB implementation class. If this property is not present, the ORB class is
                                         * found as described in the class header.
                                    !    *
                                         * @param props application specific properties, may be <code>null</code>.
                                    !    *
                                         * @return a newly created functional derivative of this abstract class.
                                         */
                                        public static ORB init(String[] args, Properties props)
                                    *************** public abstract class ORB
                                    *** 901,909 ****
                                      
                                        /**
                                         * List the initially available CORBA objects (services).
                                    !    * 
                                         * @return a list of services.
                                    !    * 
                                         * @see #resolve_initial_references(String)
                                         */
                                        public abstract String[] list_initial_services();
                                    --- 901,909 ----
                                      
                                        /**
                                         * List the initially available CORBA objects (services).
                                    !    *
                                         * @return a list of services.
                                    !    *
                                         * @see #resolve_initial_references(String)
                                         */
                                        public abstract String[] list_initial_services();
                                    *************** public abstract class ORB
                                    *** 1018,1045 ****
                                         * using the <code>narrow(Object)</code> method of its helper.
                                         * </p><p>
                                         * This function supports the following input formats:<br>
                                    !    * 1. IOR reference (<b>ior:</b>nnnnn ..), usually computer generated.<br> 
                                         * 2. <b>corbaloc:</b>[<b>iiop</b>][version.subversion<b>@</b>]<b>:</b>host[<b>:</b>port]<b>/</b><i>key</i>
                                         * defines similar information as IOR reference, but is more human readable.
                                         * This type of reference may also contain multiple addresses (see
                                         * OMG documentation for complete format).<br>
                                         * 3. <b>corbaloc:rir:/</b><i>name</i> defines internal reference on this
                                    !    * ORB that is resolved using {@link #resolve_initial_references}, passing 
                                         * the given <i>name</i> as parameter.<br>
                                         * 4. <b>corbaname:rir:#</b><i>name</i> states that the given <i>name</i>
                                         * must be resolved using the naming service, default for this ORB.<br>
                                         * 5. <b>corbaname:</b>[<b>iiop</b>][version.subversion<b>@</b>]<b>:</b>host[<b>:</b>port]<b>#</b><i>name</i>
                                         * states that the <i>name</i> must be resolved using the naming service
                                    !    * that runs on the given host at the given port. The ORB expects to find 
                                    !    * there the {@link org.omg.CosNaming.NamingContext} under the key 
                                         * "NameService.<br>
                                    !    * 7. file://[file name] Read the object definition string from the 
                                         * file system<br>
                                         * 8. http://[url] Read the object definition string from the provided
                                         * url.<br>
                                         * 9. ftp://[url] Read the object definition string from the provided
                                         * url.<br>
                                    !    * 
                                         * <p>The default port is always 2809. The default iiop version is 1.0
                                         * that now may not always be supported, so we would recommend to specify
                                         * the version explicitly.</p>
                                    --- 1018,1045 ----
                                         * using the <code>narrow(Object)</code> method of its helper.
                                         * </p><p>
                                         * This function supports the following input formats:<br>
                                    !    * 1. IOR reference (<b>ior:</b>nnnnn ..), usually computer generated.<br>
                                         * 2. <b>corbaloc:</b>[<b>iiop</b>][version.subversion<b>@</b>]<b>:</b>host[<b>:</b>port]<b>/</b><i>key</i>
                                         * defines similar information as IOR reference, but is more human readable.
                                         * This type of reference may also contain multiple addresses (see
                                         * OMG documentation for complete format).<br>
                                         * 3. <b>corbaloc:rir:/</b><i>name</i> defines internal reference on this
                                    !    * ORB that is resolved using {@link #resolve_initial_references}, passing
                                         * the given <i>name</i> as parameter.<br>
                                         * 4. <b>corbaname:rir:#</b><i>name</i> states that the given <i>name</i>
                                         * must be resolved using the naming service, default for this ORB.<br>
                                         * 5. <b>corbaname:</b>[<b>iiop</b>][version.subversion<b>@</b>]<b>:</b>host[<b>:</b>port]<b>#</b><i>name</i>
                                         * states that the <i>name</i> must be resolved using the naming service
                                    !    * that runs on the given host at the given port. The ORB expects to find
                                    !    * there the {@link org.omg.CosNaming.NamingContext} under the key
                                         * "NameService.<br>
                                    !    * 7. file://[file name] Read the object definition string from the
                                         * file system<br>
                                         * 8. http://[url] Read the object definition string from the provided
                                         * url.<br>
                                         * 9. ftp://[url] Read the object definition string from the provided
                                         * url.<br>
                                    !    *
                                         * <p>The default port is always 2809. The default iiop version is 1.0
                                         * that now may not always be supported, so we would recommend to specify
                                         * the version explicitly.</p>
                                    *************** public abstract class ORB
                                    *** 1047,1075 ****
                                         * The examples of the corbaloc and corbaname addresses:<br>
                                         * corbaname:rir:#xobj - ask local naming service for "xobj".<br>
                                         * corbaname:rir:/NameService#xobj - same (long form).<br>
                                    !    * corbaname:iiop:1.2@localhost:900#xobj - same, assuming that the naming 
                                         * service runs at port 900 on the local host and supports iiop 1.2.<br>
                                    !    * corbaname:iiop:localhost#xobj - same, assuming that the naming 
                                         * service runs at port 2809 on the local host and supports iiop 1.0.<br>
                                         * corbaloc::gnu.xxx.yy/Prod/TradingService - the object exists on the
                                    !    * host gnu.xxx.yy, port 2809 having the key "Prod/TradingService". Its ORB 
                                         * supports iiop 1.0.<br>
                                         * corbaloc::gnu.xxx.yy/Prod/TradingService:801 - the object exists on the
                                    !    * host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB 
                                         * supports iiop 1.0 (iiop keyword ommitted).<br>
                                         * corbaloc:iiop:1.1@gnu.xxx.yy/Prod/TradingService - the object exists on the
                                    !    * host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB 
                                         * supports iiop 1.1.<br>
                                         * corbaloc:rir:/NameService - the default naming service.
                                         *
                                         * @param IOR the object IOR representation string.
                                         *
                                         * @return the found CORBA object.
                                    !    * 
                                         * @throws BAD_PARAM if the string being parsed is invalid.
                                         * @throws DATA_CONVERSION if the string being parsed contains unsupported
                                         * prefix or protocol.
                                    !    * 
                                         * @see #object_to_string(org.omg.CORBA.Object)
                                         */
                                        public abstract Object string_to_object(String IOR);
                                    --- 1047,1075 ----
                                         * The examples of the corbaloc and corbaname addresses:<br>
                                         * corbaname:rir:#xobj - ask local naming service for "xobj".<br>
                                         * corbaname:rir:/NameService#xobj - same (long form).<br>
                                    !    * corbaname:iiop:1.2@localhost:900#xobj - same, assuming that the naming
                                         * service runs at port 900 on the local host and supports iiop 1.2.<br>
                                    !    * corbaname:iiop:localhost#xobj - same, assuming that the naming
                                         * service runs at port 2809 on the local host and supports iiop 1.0.<br>
                                         * corbaloc::gnu.xxx.yy/Prod/TradingService - the object exists on the
                                    !    * host gnu.xxx.yy, port 2809 having the key "Prod/TradingService". Its ORB
                                         * supports iiop 1.0.<br>
                                         * corbaloc::gnu.xxx.yy/Prod/TradingService:801 - the object exists on the
                                    !    * host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB
                                         * supports iiop 1.0 (iiop keyword ommitted).<br>
                                         * corbaloc:iiop:1.1@gnu.xxx.yy/Prod/TradingService - the object exists on the
                                    !    * host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB
                                         * supports iiop 1.1.<br>
                                         * corbaloc:rir:/NameService - the default naming service.
                                         *
                                         * @param IOR the object IOR representation string.
                                         *
                                         * @return the found CORBA object.
                                    !    *
                                         * @throws BAD_PARAM if the string being parsed is invalid.
                                         * @throws DATA_CONVERSION if the string being parsed contains unsupported
                                         * prefix or protocol.
                                    !    *
                                         * @see #object_to_string(org.omg.CORBA.Object)
                                         */
                                        public abstract Object string_to_object(String IOR);
                                    *************** public abstract class ORB
                                    *** 1146,1152 ****
                                      
                                          if (orb_cn == null)
                                            orb_cn = checkFile(property, "java.home", "lib");
                                    !     
                                          return orb_cn;
                                        }
                                      
                                    --- 1146,1152 ----
                                      
                                          if (orb_cn == null)
                                            orb_cn = checkFile(property, "java.home", "lib");
                                    ! 
                                          return orb_cn;
                                        }
                                      
                                    *************** public abstract class ORB
                                    *** 1189,1195 ****
                                      
                                        /**
                                         * Create ORB when its name is possibly known.
                                    !    * 
                                         * @param props properties, possibly containing the ORB name.
                                         * @param orbClassName the direct ORB class name, overriding other possible
                                         * locations, or null if not specified.
                                    --- 1189,1195 ----
                                      
                                        /**
                                         * Create ORB when its name is possibly known.
                                    !    *
                                         * @param props properties, possibly containing the ORB name.
                                         * @param orbClassName the direct ORB class name, overriding other possible
                                         * locations, or null if not specified.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ObjectHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ObjectHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ObjectHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ObjectHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ObjectHelper
                                    *** 64,70 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("CORBA object expected");
                                              bad.minor = Minor.Any;
                                    !         throw bad;        
                                            }
                                        }
                                      
                                    --- 64,70 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("CORBA object expected");
                                              bad.minor = Minor.Any;
                                    !         throw bad;
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ObjectHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ObjectHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ObjectHolder.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ObjectHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ObjectHolder
                                    *** 130,133 ****
                                        {
                                          output.write_Object(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 130,133 ----
                                        {
                                          output.write_Object(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PERSIST_STORE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PERSIST_STORE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PERSIST_STORE.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PERSIST_STORE.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class PERSIST_STORE
                                    *** 49,56 ****
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -6835478548864681965L;
                                      
                                    --- 49,56 ----
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -6835478548864681965L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ParameterMode.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ParameterMode.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ParameterMode.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ParameterMode.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ParameterMode
                                    *** 139,142 ****
                                              throw new BAD_PARAM("Invalid parameter mode: " + p_mode);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 139,142 ----
                                              throw new BAD_PARAM("Invalid parameter mode: " + p_mode);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ParameterModeHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ParameterModeHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ParameterModeHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ParameterModeHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ParameterModeHelpe
                                    *** 113,116 ****
                                        {
                                          ostream.write_long(value.value());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 113,116 ----
                                        {
                                          ostream.write_long(value.value());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyErrorCodeHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyErrorCodeHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyErrorCodeHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyErrorCodeHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 49,55 ****
                                      /**
                                       * A helper operations for the policy error code as an alias of
                                       * <code>short</code>.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class PolicyErrorCodeHelper
                                    --- 49,55 ----
                                      /**
                                       * A helper operations for the policy error code as an alias of
                                       * <code>short</code>.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class PolicyErrorCodeHelper
                                    *************** public abstract class PolicyErrorCodeHel
                                    *** 66,72 ****
                                      
                                        /**
                                         * Returns policy error code repository id.
                                    !    * 
                                         * @return "IDL:omg.org/CORBA/PolicyErrorCode:1.0", always.
                                         */
                                        public static String id()
                                    --- 66,72 ----
                                      
                                        /**
                                         * Returns policy error code repository id.
                                    !    *
                                         * @return "IDL:omg.org/CORBA/PolicyErrorCode:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class PolicyErrorCodeHel
                                    *** 93,99 ****
                                        /**
                                         * Returns a typecode of the policy error code, stating it is an alias of
                                         * <code>short</code>, named "PolicyErrorCode".
                                    !    * 
                                         * @return a typecode of synchronization scope.
                                         */
                                        public static TypeCode type()
                                    --- 93,99 ----
                                        /**
                                         * Returns a typecode of the policy error code, stating it is an alias of
                                         * <code>short</code>, named "PolicyErrorCode".
                                    !    *
                                         * @return a typecode of synchronization scope.
                                         */
                                        public static TypeCode type()
                                    *************** public abstract class PolicyErrorCodeHel
                                    *** 112,115 ****
                                        {
                                          ostream.write_short(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 112,115 ----
                                        {
                                          ostream.write_short(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class PolicyErrorHelper
                                    *** 59,74 ****
                                      {
                                        /**
                                         * Create the PolicyError typecode. The typecode defines a structure, named
                                    !    * "PolicyError", containing the PolicyErrorCode (alias int, see 
                                         * {@link PolicyErrorCodeHelper}) field, named "reason".
                                         */
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                          StructMember[] members = new StructMember[ 1 ];
                                    !     
                                          TypeCode field;
                                    !     
                                          field =
                                            orb.create_alias_tc("IDL:omg.org/CORBA/PolicyErrorCode:1.0",
                                                                "PolicyErrorCode", orb.get_primitive_tc(TCKind.tk_short)
                                    --- 59,74 ----
                                      {
                                        /**
                                         * Create the PolicyError typecode. The typecode defines a structure, named
                                    !    * "PolicyError", containing the PolicyErrorCode (alias int, see
                                         * {@link PolicyErrorCodeHelper}) field, named "reason".
                                         */
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                          StructMember[] members = new StructMember[ 1 ];
                                    ! 
                                          TypeCode field;
                                    ! 
                                          field =
                                            orb.create_alias_tc("IDL:omg.org/CORBA/PolicyErrorCode:1.0",
                                                                "PolicyErrorCode", orb.get_primitive_tc(TCKind.tk_short)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyErrorHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyErrorHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyErrorHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyErrorHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class PolicyErrorHolder imp
                                    *** 100,103 ****
                                        {
                                          return PolicyErrorHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 100,103 ----
                                        {
                                          return PolicyErrorHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class PolicyHelper
                                    *** 156,159 ****
                                        {
                                          output.write_Object(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 156,159 ----
                                        {
                                          output.write_Object(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class PolicyHolder
                                    *** 103,106 ****
                                        {
                                          return PolicyHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 103,106 ----
                                        {
                                          return PolicyHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyListHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyListHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyListHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyListHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class PolicyListHelper
                                    *** 136,139 ****
                                              PolicyHelper.write(output, value [ i ]);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 136,139 ----
                                              PolicyHelper.write(output, value [ i ]);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyListHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyListHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyListHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyListHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class PolicyListHolder
                                    *** 103,106 ****
                                        {
                                          return PolicyListHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 103,106 ----
                                        {
                                          return PolicyListHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyOperations.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyOperations.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface PolicyOperations
                                    *** 63,69 ****
                                         * Return an integer number, corresponding the type of this policy.
                                         * The values, defining the different policy types, are allocated
                                         * by OMG (request AT omg DOT org).
                                    !    * 
                                         * @return the integer policy code.
                                         */
                                        int policy_type();
                                    --- 63,69 ----
                                         * Return an integer number, corresponding the type of this policy.
                                         * The values, defining the different policy types, are allocated
                                         * by OMG (request AT omg DOT org).
                                    !    *
                                         * @return the integer policy code.
                                         */
                                        int policy_type();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyTypeHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyTypeHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/PolicyTypeHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/PolicyTypeHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class PolicyTypeHelper
                                    *** 120,123 ****
                                        {
                                          output.write_ulong(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 120,123 ----
                                        {
                                          output.write_ulong(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/RepositoryIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/RepositoryIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/RepositoryIdHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/RepositoryIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class RepositoryIdHelper
                                    *** 113,116 ****
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 113,116 ----
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/Request.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/Request.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/Request.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/Request.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.omg.CORBA;
                                    *** 41,49 ****
                                      
                                      /**
                                       * An object, containing the information, needed to invoke the method of
                                    !  * the local or remote CORBA object. The Request is used in 
                                       * Dynamic Invocation Interface (DII) which allows dynamic creation of
                                    !  * requests. 
                                       *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                    --- 41,49 ----
                                      
                                      /**
                                       * An object, containing the information, needed to invoke the method of
                                    !  * the local or remote CORBA object. The Request is used in
                                       * Dynamic Invocation Interface (DII) which allows dynamic creation of
                                    !  * requests.
                                       *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                    *************** public abstract class Request
                                    *** 127,137 ****
                                         * @return the list of parameters.
                                         */
                                        public abstract NVList arguments();
                                    !   
                                        /**
                                         * Get the context list object for this request.
                                    !    * 
                                    !    * @return a list of strings that must be resolved and sent with the 
                                         * invocation.
                                         */
                                        public abstract ContextList contexts();
                                    --- 127,137 ----
                                         * @return the list of parameters.
                                         */
                                        public abstract NVList arguments();
                                    ! 
                                        /**
                                         * Get the context list object for this request.
                                    !    *
                                    !    * @return a list of strings that must be resolved and sent with the
                                         * invocation.
                                         */
                                        public abstract ContextList contexts();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ServiceDetailHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ServiceDetailHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ServiceDetailHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ServiceDetailHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServiceDetailHelpe
                                    *** 134,152 ****
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    !     
                                          StructMember[] members = new StructMember[ 2 ];
                                    !     
                                          TypeCode type =
                                            orb.create_alias_tc(_id, "ServiceDetailType",
                                                                orb.get_primitive_tc(TCKind.tk_ulong)
                                            );
                                          members [ 0 ] = new StructMember("service_detail_type", type, null);
                                    !     
                                          TypeCode data =
                                            orb.create_sequence_tc(0, orb.get_primitive_tc(TCKind.tk_octet));
                                          members [ 1 ] = new StructMember("service_detail", data, null);
                                    !     
                                          return orb.create_struct_tc(id(), "ServiceDetail", members);
                                        }
                                      
                                    --- 134,152 ----
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    ! 
                                          StructMember[] members = new StructMember[ 2 ];
                                    ! 
                                          TypeCode type =
                                            orb.create_alias_tc(_id, "ServiceDetailType",
                                                                orb.get_primitive_tc(TCKind.tk_ulong)
                                            );
                                          members [ 0 ] = new StructMember("service_detail_type", type, null);
                                    ! 
                                          TypeCode data =
                                            orb.create_sequence_tc(0, orb.get_primitive_tc(TCKind.tk_octet));
                                          members [ 1 ] = new StructMember("service_detail", data, null);
                                    ! 
                                          return orb.create_struct_tc(id(), "ServiceDetail", members);
                                        }
                                      
                                    *************** public abstract class ServiceDetailHelpe
                                    *** 166,169 ****
                                            value.service_detail.length
                                          );
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 166,169 ----
                                            value.service_detail.length
                                          );
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ServiceInformationHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ServiceInformationHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ServiceInformationHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ServiceInformationHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServiceInformation
                                    *** 107,123 ****
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    !     
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member;
                                    !     
                                          member =
                                            orb.create_alias_tc("IDL:omg.org/CORBA/ServiceOptionSeq:1.0",
                                                                "ServiceOptionSeq", LongSeqHelper.type()
                                            );
                                    !     
                                          members [ 0 ] = new StructMember("service_options", member, null);
                                    !     
                                          member = ServiceDetailHelper.type();
                                          member = orb.create_sequence_tc(0, member);
                                          member =
                                    --- 107,123 ----
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    ! 
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member;
                                    ! 
                                          member =
                                            orb.create_alias_tc("IDL:omg.org/CORBA/ServiceOptionSeq:1.0",
                                                                "ServiceOptionSeq", LongSeqHelper.type()
                                            );
                                    ! 
                                          members [ 0 ] = new StructMember("service_options", member, null);
                                    ! 
                                          member = ServiceDetailHelper.type();
                                          member = orb.create_sequence_tc(0, member);
                                          member =
                                    *************** public abstract class ServiceInformation
                                    *** 125,131 ****
                                                                "ServiceDetailSeq", member
                                            );
                                          members [ 1 ] = new StructMember("service_details", member, null);
                                    !     
                                          return
                                          orb.create_struct_tc(ServiceInformationHelper.id(),
                                                               "ServiceInformation", members
                                    --- 125,131 ----
                                                                "ServiceDetailSeq", member
                                            );
                                          members [ 1 ] = new StructMember("service_details", member, null);
                                    ! 
                                          return
                                          orb.create_struct_tc(ServiceInformationHelper.id(),
                                                               "ServiceInformation", members
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/SetOverrideTypeHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/SetOverrideTypeHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/SetOverrideTypeHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/SetOverrideTypeHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class SetOverrideTypeHel
                                    *** 77,85 ****
                                          String[] members =
                                            new String[]
                                                       {
                                    !                   "SET_OVERRIDE" ,"ADD_OVERRIDE" 
                                                       };
                                    !     
                                          return
                                          OrbRestricted.Singleton.create_enum_tc(id(), "SetOverrideType",
                                                                                 members
                                    --- 77,85 ----
                                          String[] members =
                                            new String[]
                                                       {
                                    !                   "SET_OVERRIDE" ,"ADD_OVERRIDE"
                                                       };
                                    ! 
                                          return
                                          OrbRestricted.Singleton.create_enum_tc(id(), "SetOverrideType",
                                                                                 members
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/StringValueHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/StringValueHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/StringValueHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/StringValueHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public class StringValueHelper
                                    *** 190,193 ****
                                        {
                                          out.write_string(a_string);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 190,193 ----
                                        {
                                          out.write_string(a_string);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/StructMember.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/StructMember.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/StructMember.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/StructMember.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class StructMember
                                    *** 69,75 ****
                                         * The typecode of the structure member.
                                         */
                                        public TypeCode type;
                                    !   
                                        /**
                                         * Creates a structure member with all fields
                                         * left with the default value <code>null</code>.
                                    --- 69,75 ----
                                         * The typecode of the structure member.
                                         */
                                        public TypeCode type;
                                    ! 
                                        /**
                                         * Creates a structure member with all fields
                                         * left with the default value <code>null</code>.
                                    *************** public final class StructMember
                                    *** 77,86 ****
                                        public StructMember()
                                        {
                                        }
                                    !   
                                        /**
                                         * Creates a structure member.
                                    !    * 
                                         * @param a_name member name.
                                         * @param a_type member type code.
                                         * @param a_type_def member IDL type definition.
                                    --- 77,86 ----
                                        public StructMember()
                                        {
                                        }
                                    ! 
                                        /**
                                         * Creates a structure member.
                                    !    *
                                         * @param a_name member name.
                                         * @param a_type member type code.
                                         * @param a_type_def member IDL type definition.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/StructMemberHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/StructMemberHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/StructMemberHelper.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/StructMemberHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class StructMemberHelper
                                    *** 177,180 ****
                                              throw m;
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 177,180 ----
                                              throw m;
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/SystemException.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/SystemException.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/SystemException.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/SystemException.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 42,48 ****
                                      
                                      /**
                                       * The root class for all CORBA standard exceptions.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class SystemException
                                    --- 42,48 ----
                                      
                                      /**
                                       * The root class for all CORBA standard exceptions.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class SystemException
                                    *************** public abstract class SystemException
                                    *** 69,84 ****
                                         * The Classpath specifice minor exception codes are documented in the headers
                                         * of the corresponding exceptions (for instance, {@link MARSHAL}).
                                         * </p>
                                    !    * 
                                    !    * The VMCID 0 and 0xfffff are reserved for experimental use. 
                                    !    * 
                                         * @see OMGVMCID
                                         */
                                        public int minor;
                                      
                                        /**
                                         * Constructs an instance of the CORBA standard exception.
                                    !    * 
                                         * @param a_reason a string, explaining the reason why the exceptions has been
                                         * thrown.
                                         * @param a_minor an additional error code (known as the "minor")
                                    --- 69,84 ----
                                         * The Classpath specifice minor exception codes are documented in the headers
                                         * of the corresponding exceptions (for instance, {@link MARSHAL}).
                                         * </p>
                                    !    *
                                    !    * The VMCID 0 and 0xfffff are reserved for experimental use.
                                    !    *
                                         * @see OMGVMCID
                                         */
                                        public int minor;
                                      
                                        /**
                                         * Constructs an instance of the CORBA standard exception.
                                    !    *
                                         * @param a_reason a string, explaining the reason why the exceptions has been
                                         * thrown.
                                         * @param a_minor an additional error code (known as the "minor")
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/TCKind.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/TCKind.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/TCKind.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/TCKind.java	Tue Jan 11 19:46:05 2011
                                    *************** public class TCKind
                                    *** 449,457 ****
                                      
                                        /**
                                         * The array of all tk_... instances, sorted by the kind number.
                                    !    * 
                                         * As long as the kind numbers make the continuos sequence, starting from 0,
                                    !    * the members can be found just by direct indexing. 
                                         */
                                        private static final TCKind[] tk =
                                          new TCKind[]
                                    --- 449,457 ----
                                      
                                        /**
                                         * The array of all tk_... instances, sorted by the kind number.
                                    !    *
                                         * As long as the kind numbers make the continuos sequence, starting from 0,
                                    !    * the members can be found just by direct indexing.
                                         */
                                        private static final TCKind[] tk =
                                          new TCKind[]
                                    *************** public class TCKind
                                    *** 500,504 ****
                                            throw new BAD_PARAM("Invalid _tk_ code "+_tk_nnn);
                                          }
                                        }
                                    !   
                                      }
                                    --- 500,504 ----
                                            throw new BAD_PARAM("Invalid _tk_ code "+_tk_nnn);
                                          }
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/TRANSACTION_REQUIRED.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/TRANSACTION_REQUIRED.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/TRANSACTION_REQUIRED.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/TRANSACTION_REQUIRED.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.omg.CORBA;
                                    *** 41,47 ****
                                      import java.io.Serializable;
                                      
                                      /**
                                    !  * Means that request carried a null transaction context, but an 
                                       * active transaction is required.
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                    --- 41,47 ----
                                      import java.io.Serializable;
                                      
                                      /**
                                    !  * Means that request carried a null transaction context, but an
                                       * active transaction is required.
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                    *************** public final class TRANSACTION_REQUIRED
                                    *** 49,56 ****
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -1900254548742148576L;
                                      
                                    --- 49,56 ----
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -1900254548742148576L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class TRANSACTION_ROLLEDBAC
                                    *** 50,56 ****
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /** 
                                         * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -343903462439281571L;
                                    --- 50,56 ----
                                        extends SystemException
                                        implements Serializable
                                      {
                                    !   /**
                                         * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -343903462439281571L;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/TRANSIENT.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/TRANSIENT.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/TRANSIENT.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/TRANSIENT.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class TRANSIENT
                                    *** 94,97 ****
                                        {
                                          super(reason, minor, completed);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 94,97 ----
                                        {
                                          super(reason, minor, completed);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/TypeCode.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/TypeCode.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/TypeCode.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/TypeCode.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class TypeCode
                                    *** 268,271 ****
                                         */
                                        public abstract short type_modifier()
                                                                     throws BadKind;
                                    ! }
                                    \ No newline at end of file
                                    --- 268,271 ----
                                         */
                                        public abstract short type_modifier()
                                                                     throws BadKind;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/TypeCodePackage/BadKind.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/TypeCodePackage/BadKind.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/TypeCodePackage/BadKind.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/TypeCodePackage/BadKind.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class BadKind
                                    *** 53,63 ****
                                        extends UserException
                                        implements IDLEntity, Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = 1030443154456771956L;
                                    !   
                                        /**
                                         * Constructs a the exception.
                                         */
                                    --- 53,63 ----
                                        extends UserException
                                        implements IDLEntity, Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = 1030443154456771956L;
                                    ! 
                                        /**
                                         * Constructs a the exception.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/TypeCodePackage/Bounds.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/TypeCodePackage/Bounds.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/TypeCodePackage/Bounds.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/TypeCodePackage/Bounds.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 46,63 ****
                                      /**
                                       * The {@link org.omg.CORBA.TypeCode#member_name(int) },
                                       * {@link org.omg.CORBA.TypeCode#member_type(int) } and
                                    !  * {@link org.omg.CORBA.TypeCode#member_label(int) } raise Bounds when 
                                       * the parameter is larger than the index of the last member,
                                       * constituting the type.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class Bounds
                                        extends UserException
                                        implements IDLEntity, Serializable
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                        private static final long serialVersionUID = -5418177951071152101L;
                                      
                                    --- 46,63 ----
                                      /**
                                       * The {@link org.omg.CORBA.TypeCode#member_name(int) },
                                       * {@link org.omg.CORBA.TypeCode#member_type(int) } and
                                    !  * {@link org.omg.CORBA.TypeCode#member_label(int) } raise Bounds when
                                       * the parameter is larger than the index of the last member,
                                       * constituting the type.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public final class Bounds
                                        extends UserException
                                        implements IDLEntity, Serializable
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                        private static final long serialVersionUID = -5418177951071152101L;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/UNSUPPORTED_POLICY.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/UNSUPPORTED_POLICY.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/UNSUPPORTED_POLICY.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/UNSUPPORTED_POLICY.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* UNSUPPORTED_POLICY.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* UNSUPPORTED_POLICY.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 39,55 ****
                                      
                                      /**
                                       * Holds a single constant, specifying, that
                                    !  * while the requested {@link Policy} is valid, it is not supported by 
                                    !  * this ORB. One of the PolicyErrorCodes, others being 
                                       * {@link UNSUPPORTED_POLICY_VALUE}, {@link BAD_POLICY},
                                       * {@link BAD_POLICY_TYPE}, {@link BAD_POLICY_VALUE}.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface UNSUPPORTED_POLICY
                                      {
                                        /**
                                    !    * States that while the requested {@link Policy} is valid, 
                                         * it is not supported by this ORB.
                                         */
                                        short value = 1;
                                    --- 39,55 ----
                                      
                                      /**
                                       * Holds a single constant, specifying, that
                                    !  * while the requested {@link Policy} is valid, it is not supported by
                                    !  * this ORB. One of the PolicyErrorCodes, others being
                                       * {@link UNSUPPORTED_POLICY_VALUE}, {@link BAD_POLICY},
                                       * {@link BAD_POLICY_TYPE}, {@link BAD_POLICY_VALUE}.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface UNSUPPORTED_POLICY
                                      {
                                        /**
                                    !    * States that while the requested {@link Policy} is valid,
                                         * it is not supported by this ORB.
                                         */
                                        short value = 1;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* UNSUPPORTED_POLICY_VALUE.java -- 
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* UNSUPPORTED_POLICY_VALUE.java --
                                         Copyright (C) 2005 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** package org.omg.CORBA;
                                    *** 39,56 ****
                                      
                                      /**
                                       * Holds a single constant, specifying, that
                                    !  * while the requested {@link Policy} value is valid, it is not 
                                    !  * supported by this ORB. One of the PolicyErrorCodes, others being 
                                       * {@link UNSUPPORTED_POLICY}, {@link BAD_POLICY}, {@link BAD_POLICY_TYPE} ,
                                       * {@link BAD_POLICY_VALUE}.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface UNSUPPORTED_POLICY_VALUE
                                      {
                                        /**
                                    !    * States that while the requested {@link Policy} value is valid, 
                                    !    * it is not supported by this ORB. 
                                         */
                                        short value = 4;
                                      }
                                    --- 39,56 ----
                                      
                                      /**
                                       * Holds a single constant, specifying, that
                                    !  * while the requested {@link Policy} value is valid, it is not
                                    !  * supported by this ORB. One of the PolicyErrorCodes, others being
                                       * {@link UNSUPPORTED_POLICY}, {@link BAD_POLICY}, {@link BAD_POLICY_TYPE} ,
                                       * {@link BAD_POLICY_VALUE}.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public interface UNSUPPORTED_POLICY_VALUE
                                      {
                                        /**
                                    !    * States that while the requested {@link Policy} value is valid,
                                    !    * it is not supported by this ORB.
                                         */
                                        short value = 4;
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/UnionMemberHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/UnionMemberHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/UnionMemberHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/UnionMemberHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class UnionMemberHelper
                                    *** 174,182 ****
                                          catch (UserException ex)
                                            {
                                              MARSHAL m = new MARSHAL();
                                    !         m.minor = Minor.UserException;        
                                              m.initCause(ex);
                                              throw m;
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 174,182 ----
                                          catch (UserException ex)
                                            {
                                              MARSHAL m = new MARSHAL();
                                    !         m.minor = Minor.UserException;
                                              m.initCause(ex);
                                              throw m;
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/UnknownUserException.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/UnknownUserException.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/UnknownUserException.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/UnknownUserException.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class UnknownUserException
                                    *** 84,87 ****
                                        {
                                          except = an_exception;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 84,87 ----
                                        {
                                          except = an_exception;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/UnknownUserExceptionHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/UnknownUserExceptionHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/UnknownUserExceptionHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/UnknownUserExceptionHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class UnknownUserExceptionH
                                    *** 100,103 ****
                                        {
                                          return UnknownUserExceptionHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 100,103 ----
                                        {
                                          return UnknownUserExceptionHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ValueBaseHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ValueBaseHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ValueBaseHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ValueBaseHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ValueBaseHelper
                                    *** 134,137 ****
                                        {
                                          Vio.write(output, value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 134,137 ----
                                        {
                                          Vio.write(output, value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ValueBaseHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ValueBaseHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ValueBaseHolder.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ValueBaseHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ValueBaseHolder
                                    *** 107,110 ****
                                        {
                                          ValueBaseHelper.write(output, value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 107,110 ----
                                        {
                                          ValueBaseHelper.write(output, value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/ValueMemberHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/ValueMemberHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/ValueMemberHelper.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/ValueMemberHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ValueMemberHelper
                                    *** 178,184 ****
                                          catch (UserException ex)
                                            {
                                              MARSHAL m = new MARSHAL();
                                    !         m.minor = Minor.UserException;        
                                              m.initCause(ex);
                                              throw m;
                                            }
                                    --- 178,184 ----
                                          catch (UserException ex)
                                            {
                                              MARSHAL m = new MARSHAL();
                                    !         m.minor = Minor.UserException;
                                              m.initCause(ex);
                                              throw m;
                                            }
                                    *************** public abstract class ValueMemberHelper
                                    *** 202,210 ****
                                          catch (UserException ex)
                                            {
                                              MARSHAL m = new MARSHAL();
                                    !         m.minor = Minor.UserException;        
                                              m.initCause(ex);
                                              throw m;
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 202,210 ----
                                          catch (UserException ex)
                                            {
                                              MARSHAL m = new MARSHAL();
                                    !         m.minor = Minor.UserException;
                                              m.initCause(ex);
                                              throw m;
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/VersionSpecHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/VersionSpecHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/VersionSpecHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/VersionSpecHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class VersionSpecHelper
                                    *** 113,116 ****
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 113,116 ----
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/VisibilityHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/VisibilityHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/VisibilityHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/VisibilityHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class VisibilityHelper
                                    *** 115,118 ****
                                        {
                                          ostream.write_short(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 115,118 ----
                                        {
                                          ostream.write_short(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/WStringValueHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/WStringValueHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/WStringValueHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/WStringValueHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public class WStringValueHelper
                                    *** 140,146 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("WString value type expected");
                                              bad.minor = Minor.Any;
                                    !         throw bad;        
                                            }
                                        }
                                      
                                    --- 140,146 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("WString value type expected");
                                              bad.minor = Minor.Any;
                                    !         throw bad;
                                            }
                                        }
                                      
                                    *************** public class WStringValueHelper
                                    *** 190,193 ****
                                        {
                                          out.write_wstring(a_string);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 190,193 ----
                                        {
                                          out.write_wstring(a_string);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/WrongTransactionHelper.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/WrongTransactionHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/WrongTransactionHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/WrongTransactionHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class WrongTransactionHe
                                    *** 139,142 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 139,142 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/WrongTransactionHolder.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/WrongTransactionHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/WrongTransactionHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/WrongTransactionHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class WrongTransactionHolde
                                    *** 100,103 ****
                                        {
                                          return WrongTransactionHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 100,103 ----
                                        {
                                          return WrongTransactionHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/_IDLTypeStub.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/_IDLTypeStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/_IDLTypeStub.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/_IDLTypeStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _IDLTypeStub
                                    *** 196,199 ****
                                                   "IDL:omg.org/CORBA/IDLType:1.0", "IDL:omg.org/CORBA/IRObject:1.0"
                                                 };
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 196,199 ----
                                                   "IDL:omg.org/CORBA/IDLType:1.0", "IDL:omg.org/CORBA/IRObject:1.0"
                                                 };
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/_PolicyStub.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/_PolicyStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/_PolicyStub.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/_PolicyStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _PolicyStub
                                    *** 171,174 ****
                                              _releaseReply(input);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 171,174 ----
                                              _releaseReply(input);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/CustomValue.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/CustomValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/CustomValue.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/CustomValue.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.CustomMarshal;
                                    *** 54,57 ****
                                      public interface CustomValue
                                        extends ValueBase, CustomMarshal
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 54,57 ----
                                      public interface CustomValue
                                        extends ValueBase, CustomMarshal
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/Delegate.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/Delegate.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/Delegate.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/Delegate.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class Delegate
                                    *** 376,381 ****
                                    --- 376,382 ----
                                         * @return the servant or null if the servant is not an expected type
                                         * of the method is not supported, for example, due security reasons.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public ServantObject servant_preinvoke(org.omg.CORBA.Object self,
                                                                               String operation, Class expectedType
                                                                              )
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/InputStream.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/InputStream.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/InputStream.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/InputStream.java	Tue Oct 12 15:55:12 2010
                                    *************** public abstract class InputStream
                                    *** 237,242 ****
                                    --- 237,243 ----
                                         * @param klass a CORBA class
                                         * @throws NO_IMPLEMENT, always.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public Object read_Object(Class klass)
                                        {
                                          throw new NO_IMPLEMENT();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ObjectImpl
                                    *** 341,346 ****
                                    --- 341,347 ----
                                         * @return the servant or null if the servant is not an expected type
                                         * of the method is not supported, for example, due security reasons.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public ServantObject _servant_preinvoke(String method, Class expected_type)
                                        {
                                          return delegate.servant_preinvoke(this, method, expected_type);
                                    *************** public abstract class ObjectImpl
                                    *** 397,400 ****
                                        {
                                          return delegate.toString(this);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 398,401 ----
                                        {
                                          return delegate.toString(this);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/StreamableValue.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/StreamableValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/StreamableValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/StreamableValue.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 54,57 ****
                                      public interface StreamableValue
                                        extends Streamable, Serializable, ValueBase, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 54,57 ----
                                      public interface StreamableValue
                                        extends Streamable, Serializable, ValueBase, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/ValueBase.java gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/ValueBase.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA/portable/ValueBase.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA/portable/ValueBase.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ValueBase
                                    *** 71,74 ****
                                         * basic types this value base can be truncated.
                                         */
                                        String[] _truncatable_ids();
                                    ! }
                                    \ No newline at end of file
                                    --- 71,74 ----
                                         * basic types this value base can be truncated.
                                         */
                                        String[] _truncatable_ids();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/ORB.java gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/ORB.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/ORB.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/ORB.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ORB
                                    *** 126,129 ****
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 126,129 ----
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/portable/Delegate.java gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/portable/Delegate.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/portable/Delegate.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/portable/Delegate.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class Delegate
                                    *** 64,67 ****
                                        {
                                          return "";
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 64,67 ----
                                        {
                                          return "";
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class InputStream
                                    *** 83,89 ****
                                          if (isObject)
                                            return read_Object();
                                          else
                                    !       return read_value();      
                                        }
                                      
                                        /**
                                    --- 83,89 ----
                                          if (isObject)
                                            return read_Object();
                                          else
                                    !       return read_value();
                                        }
                                      
                                        /**
                                    *************** public abstract class InputStream
                                    *** 99,104 ****
                                    --- 99,105 ----
                                         *
                                         * @return an abstract interface, unmarshaled from the stream
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public Object read_abstract_interface(Class clz)
                                        {
                                          boolean isValue = read_boolean();
                                    *************** public abstract class InputStream
                                    *** 147,152 ****
                                    --- 148,154 ----
                                         *
                                         * @return an value type structure, unmarshaled from the stream
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public Serializable read_value(Class clz)
                                        {
                                          return Vio.read(this, clz);
                                    *************** public abstract class InputStream
                                    *** 204,207 ****
                                        {
                                          return Vio.read(this, helper);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 206,209 ----
                                        {
                                          return Vio.read(this, helper);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/portable/ObjectImpl.java gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/portable/ObjectImpl.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/portable/ObjectImpl.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/portable/ObjectImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ObjectImpl
                                    *** 79,82 ****
                                          else
                                            throw new BAD_OPERATION("The delegate not set.");
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 79,82 ----
                                          else
                                            throw new BAD_OPERATION("The delegate not set.");
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class OutputStream
                                    *** 69,79 ****
                                         * Writes an abstract interface to the stream. An abstract interface can be
                                         * eithe CORBA object or value type and is written as a union with the boolean
                                         * discriminator (false for objects, true for value types).
                                    !    * 
                                         * The object from value is separated by fact that all values implement the
                                         * {@link ValueBase} interface. Also, the passed parameter is treated as value
                                         * it it does not implement CORBA Object.
                                    !    * 
                                         * @param an_interface an abstract interface to write.
                                         */
                                        public void write_abstract_interface(java.lang.Object an_interface)
                                    --- 69,79 ----
                                         * Writes an abstract interface to the stream. An abstract interface can be
                                         * eithe CORBA object or value type and is written as a union with the boolean
                                         * discriminator (false for objects, true for value types).
                                    !    *
                                         * The object from value is separated by fact that all values implement the
                                         * {@link ValueBase} interface. Also, the passed parameter is treated as value
                                         * it it does not implement CORBA Object.
                                    !    *
                                         * @param an_interface an abstract interface to write.
                                         */
                                        public void write_abstract_interface(java.lang.Object an_interface)
                                    *************** public abstract class OutputStream
                                    *** 92,105 ****
                                      
                                        /**
                                         * Writes a value type into the output stream.
                                    !    * 
                                         * The value type must implement either {@link CustomValue} (for user-defined
                                         * writing method) or {@link StreamableValue} (for standard writing using code,
                                         * generated by IDL compiler).
                                    !    * 
                                         * The written record will have a repository id, matching the class of the
                                         * passed object. The codebase will not be written.
                                    !    * 
                                         * @param value a value type object to write.
                                         */
                                        public void write_value(Serializable value)
                                    --- 92,105 ----
                                      
                                        /**
                                         * Writes a value type into the output stream.
                                    !    *
                                         * The value type must implement either {@link CustomValue} (for user-defined
                                         * writing method) or {@link StreamableValue} (for standard writing using code,
                                         * generated by IDL compiler).
                                    !    *
                                         * The written record will have a repository id, matching the class of the
                                         * passed object. The codebase will not be written.
                                    !    *
                                         * @param value a value type object to write.
                                         */
                                        public void write_value(Serializable value)
                                    *************** public abstract class OutputStream
                                    *** 136,141 ****
                                    --- 136,142 ----
                                         *
                                         * @param value a value type object to write.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public void write_value(Serializable value, Class clz)
                                        {
                                          Vio.write(this, value, clz);
                                    *************** public abstract class OutputStream
                                    *** 144,160 ****
                                        /**
                                         * Writes a value type into the output stream, stating it has the given
                                         * repository id.
                                    !    * 
                                         * The value type must implement either {@link CustomValue} (for user-defined
                                         * writing method) or {@link StreamableValue} (for standard writing using code,
                                         * generated by IDL compiler).
                                    !    * 
                                         * @param repository_id a repository id of the value type.
                                    !    * 
                                         * @param value a value type object to write.
                                         */
                                        public void write_value(Serializable value, String repository_id)
                                        {
                                          Vio.write(this, value, repository_id);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 145,161 ----
                                        /**
                                         * Writes a value type into the output stream, stating it has the given
                                         * repository id.
                                    !    *
                                         * The value type must implement either {@link CustomValue} (for user-defined
                                         * writing method) or {@link StreamableValue} (for standard writing using code,
                                         * generated by IDL compiler).
                                    !    *
                                         * @param repository_id a repository id of the value type.
                                    !    *
                                         * @param value a value type object to write.
                                         */
                                        public void write_value(Serializable value, String repository_id)
                                        {
                                          Vio.write(this, value, repository_id);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class BindingHelper
                                    *** 112,118 ****
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    !     
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member;
                                          member = NameComponentHelper.type();
                                    --- 112,118 ----
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    ! 
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member;
                                          member = NameComponentHelper.type();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingIterator.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingIterator.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingIterator.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingIterator.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface BindingIterator
                                    *** 84,87 ****
                                         * @specnote since 1.3 this method has moved into BindingIteratorOperations.
                                         */
                                        boolean next_one(BindingHolder a_binding);
                                    ! }
                                    \ No newline at end of file
                                    --- 84,87 ----
                                         * @specnote since 1.3 this method has moved into BindingIteratorOperations.
                                         */
                                        boolean next_one(BindingHolder a_binding);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingIteratorHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingIteratorHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingIteratorHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingIteratorHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class BindingIteratorHel
                                    *** 119,137 ****
                                              return new _BindingIteratorStub(delegate);
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the BindingIterator. No type-checking is
                                         * performed to verify that the object actually supports the requested type.
                                         * The {@link BAD_OPERATION} will be thrown if unsupported operations are
                                         * invoked on the new returned reference, but no failure is expected at the
                                         * time of the unchecked_narrow. See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted binding iterator.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static BindingIterator unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                    --- 119,137 ----
                                              return new _BindingIteratorStub(delegate);
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the BindingIterator. No type-checking is
                                         * performed to verify that the object actually supports the requested type.
                                         * The {@link BAD_OPERATION} will be thrown if unsupported operations are
                                         * invoked on the new returned reference, but no failure is expected at the
                                         * time of the unchecked_narrow. See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted binding iterator.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static BindingIterator unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                    *************** public abstract class BindingIteratorHel
                                    *** 144,150 ****
                                              // Do not call the _is_a(..).
                                              Delegate delegate = ((ObjectImpl) obj)._get_delegate();
                                              return new _BindingIteratorStub(delegate);
                                    !       }    
                                        }
                                      
                                        /**
                                    --- 144,150 ----
                                              // Do not call the _is_a(..).
                                              Delegate delegate = ((ObjectImpl) obj)._get_delegate();
                                              return new _BindingIteratorStub(delegate);
                                    !       }
                                        }
                                      
                                        /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingIteratorOperations.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingIteratorOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingIteratorOperations.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingIteratorOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface BindingIteratorOperatio
                                    *** 75,78 ****
                                         * otherwise.
                                         */
                                        boolean next_one(BindingHolder a_binding);
                                    ! }
                                    \ No newline at end of file
                                    --- 75,78 ----
                                         * otherwise.
                                         */
                                        boolean next_one(BindingHolder a_binding);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingIteratorPOA.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingIteratorPOA.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingIteratorPOA.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingIteratorPOA.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.PortableServer.Servant;
                                    *** 52,59 ****
                                      /**
                                       * The binding iterator servant, used in POA-based naming service
                                       * implementations.
                                    !  * 
                                    !  * @since 1.4 
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                    --- 52,59 ----
                                      /**
                                       * The binding iterator servant, used in POA-based naming service
                                       * implementations.
                                    !  *
                                    !  * @since 1.4
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                    *************** public abstract class BindingIteratorPOA
                                    *** 105,111 ****
                                              out = rh.createReply();
                                            }
                                          else
                                    !       throw new BAD_OPERATION(method, Minor.Method, 
                                              CompletionStatus.COMPLETED_MAYBE);
                                      
                                          return out;
                                    --- 105,111 ----
                                              out = rh.createReply();
                                            }
                                          else
                                    !       throw new BAD_OPERATION(method, Minor.Method,
                                              CompletionStatus.COMPLETED_MAYBE);
                                      
                                          return out;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingType.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingType.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingType.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingType.java	Tue Jan 11 19:46:05 2011
                                    *************** public class BindingType
                                    *** 126,129 ****
                                        {
                                          return type;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 126,129 ----
                                        {
                                          return type;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingTypeHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingTypeHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/BindingTypeHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/BindingTypeHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class BindingTypeHelper
                                    *** 71,77 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("Binding type expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 71,77 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("Binding type expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/IstringHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/IstringHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/IstringHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/IstringHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class IstringHelper
                                    *** 117,120 ****
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 117,120 ----
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NameComponentHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NameComponentHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NameComponentHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NameComponentHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NameComponentHelpe
                                    *** 74,80 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("Name component expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 74,80 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("Name component expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class NameComponentHelpe
                                    *** 113,119 ****
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    !     
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member;
                                          member = orb.create_string_tc(0);
                                    --- 113,119 ----
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    ! 
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member;
                                          member = orb.create_string_tc(0);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NameHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NameHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NameHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NameHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NameHelper
                                    *** 74,80 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("Name expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 74,80 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("Name expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContext.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContext.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContext.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContext.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface NamingContext
                                    *** 194,197 ****
                                         */
                                        void unbind(NameComponent[] a_name)
                                             throws NotFound, CannotProceed, InvalidName;
                                    ! }
                                    \ No newline at end of file
                                    --- 194,197 ----
                                         */
                                        void unbind(NameComponent[] a_name)
                                             throws NotFound, CannotProceed, InvalidName;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextExtHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextExtHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextExtHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextExtHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NamingContextExtHe
                                    *** 75,81 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NamingContextExt expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 75,81 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NamingContextExt expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class NamingContextExtHe
                                    *** 120,138 ****
                                              return new _NamingContextExtStub(delegate);
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the NamingContextExt. No type-checking is
                                         * performed to verify that the object actually supports the requested type.
                                         * The {@link BAD_OPERATION} will be thrown if unsupported operations are
                                         * invoked on the new returned reference, but no failure is expected at the
                                         * time of the unchecked_narrow. See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted NamingContextExt
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static NamingContextExt unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                    --- 120,138 ----
                                              return new _NamingContextExtStub(delegate);
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the NamingContextExt. No type-checking is
                                         * performed to verify that the object actually supports the requested type.
                                         * The {@link BAD_OPERATION} will be thrown if unsupported operations are
                                         * invoked on the new returned reference, but no failure is expected at the
                                         * time of the unchecked_narrow. See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted NamingContextExt
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static NamingContextExt unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                    *************** public abstract class NamingContextExtHe
                                    *** 145,151 ****
                                              // Do not call the _is_a(..).
                                              Delegate delegate = ((ObjectImpl) obj)._get_delegate();
                                              return new _NamingContextExtStub(delegate);
                                    !       }    
                                        }
                                      
                                        /**
                                    --- 145,151 ----
                                              // Do not call the _is_a(..).
                                              Delegate delegate = ((ObjectImpl) obj)._get_delegate();
                                              return new _NamingContextExtStub(delegate);
                                    !       }
                                        }
                                      
                                        /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.PortableServer.Servant;
                                    *** 65,71 ****
                                      /**
                                       * The extended naming service servant. After implementing the abstract methods the
                                       * instance of this class can be connected to an ORB using POA.
                                    !  * 
                                       * @since 1.4
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                    --- 65,71 ----
                                      /**
                                       * The extended naming service servant. After implementing the abstract methods the
                                       * instance of this class can be connected to an ORB using POA.
                                    !  *
                                       * @since 1.4
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class InvalidAddress
                                    *** 73,76 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 73,76 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NamingContextHelpe
                                    *** 75,81 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("Naming context expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 75,81 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("Naming context expected");
                                              bad.initCause(ex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class NamingContextHelpe
                                    *** 128,143 ****
                                          else
                                            throw new BAD_PARAM();
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the NamingContext. No type-checking is performed
                                         * to verify that the object actually supports the requested type. The
                                         * {@link BAD_OPERATION} will be thrown if unsupported operations are invoked
                                         * on the new returned reference, but no failure is expected at the time of
                                         * the unchecked_narrow. See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted NamingContext.
                                         */
                                        public static NamingContext unchecked_narrow(org.omg.CORBA.Object obj)
                                    --- 128,143 ----
                                          else
                                            throw new BAD_PARAM();
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the NamingContext. No type-checking is performed
                                         * to verify that the object actually supports the requested type. The
                                         * {@link BAD_OPERATION} will be thrown if unsupported operations are invoked
                                         * on the new returned reference, but no failure is expected at the time of
                                         * the unchecked_narrow. See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted NamingContext.
                                         */
                                        public static NamingContext unchecked_narrow(org.omg.CORBA.Object obj)
                                    *************** public abstract class NamingContextHelpe
                                    *** 151,158 ****
                                              // Do not call the _is_a(..).
                                              Delegate delegate = ((ObjectImpl) obj)._get_delegate();
                                              return new _NamingContextStub(delegate);
                                    !       }    
                                    !   }  
                                      
                                        /**
                                         * Read the naming context from the given CDR input stream.
                                    --- 151,158 ----
                                              // Do not call the _is_a(..).
                                              Delegate delegate = ((ObjectImpl) obj)._get_delegate();
                                              return new _NamingContextStub(delegate);
                                    !       }
                                    !   }
                                      
                                        /**
                                         * Read the naming context from the given CDR input stream.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPOA.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPOA.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPOA.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPOA.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.PortableServer.Servant;
                                    *** 63,70 ****
                                      /**
                                       * The naming service servant. After implementing the abstract methods the
                                       * instance of this class can be connected to an ORB using POA.
                                    !  * 
                                    !  * @since 1.4 
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                    --- 63,70 ----
                                      /**
                                       * The naming service servant. After implementing the abstract methods the
                                       * instance of this class can be connected to an ORB using POA.
                                    !  *
                                    !  * @since 1.4
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/AlreadyBound.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/AlreadyBound.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/AlreadyBound.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/AlreadyBound.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class AlreadyBound
                                    *** 72,75 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 72,75 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/CannotProceed.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/CannotProceed.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/CannotProceed.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/CannotProceed.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class CannotProceed
                                    *** 99,102 ****
                                          cxt = _cxt;
                                          rest_of_name = _rest_of_name;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 99,102 ----
                                          cxt = _cxt;
                                          rest_of_name = _rest_of_name;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class CannotProceedHelpe
                                    *** 119,125 ****
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    !     
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member;
                                          member = NamingContextHelper.type();
                                    --- 119,125 ----
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    ! 
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member;
                                          member = NamingContextHelper.type();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidName.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidName.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidName.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidName.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class InvalidName
                                    *** 72,75 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 72,75 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class InvalidNameHelper
                                    *** 112,118 ****
                                         */
                                        public static TypeCode type()
                                        {
                                    !     return OrbRestricted.Singleton.create_struct_tc(id(), 
                                            "InvalidName", new StructMember[0]);
                                        }
                                      
                                    --- 112,118 ----
                                         */
                                        public static TypeCode type()
                                        {
                                    !     return OrbRestricted.Singleton.create_struct_tc(id(),
                                            "InvalidName", new StructMember[0]);
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NotEmptyHelper
                                    *** 112,118 ****
                                         */
                                        public static TypeCode type()
                                        {
                                    !     return OrbRestricted.Singleton.create_struct_tc(id(), 
                                            "NotEmpty", new StructMember[0]);
                                        }
                                      
                                    --- 112,118 ----
                                         */
                                        public static TypeCode type()
                                        {
                                    !     return OrbRestricted.Singleton.create_struct_tc(id(),
                                            "NotEmpty", new StructMember[0]);
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFound.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFound.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFound.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFound.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class NotFound
                                    *** 98,101 ****
                                          why = _why;
                                          rest_of_name = _rest_of_name;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 98,101 ----
                                          why = _why;
                                          rest_of_name = _rest_of_name;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NotFoundHelper
                                    *** 118,124 ****
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    !     
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member = null;
                                          member = NotFoundReasonHelper.type();
                                    --- 118,124 ----
                                        public static TypeCode type()
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                    ! 
                                          StructMember[] members = new StructMember[ 2 ];
                                          TypeCode member = null;
                                          member = NotFoundReasonHelper.type();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReason.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReason.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReason.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReason.java	Tue Jan 11 19:46:05 2011
                                    *************** public class NotFoundReason
                                    *** 131,134 ****
                                        {
                                          return value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 131,134 ----
                                        {
                                          return value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NotFoundReasonHelp
                                    *** 111,118 ****
                                          OrbRestricted.Singleton.create_enum_tc(id(), "NotFoundReason",
                                                                    new String[]
                                                                               {
                                    !                                           "missing_node", 
                                    !                                           "not_context", 
                                                                                "not_object"
                                                                               }
                                          );
                                    --- 111,118 ----
                                          OrbRestricted.Singleton.create_enum_tc(id(), "NotFoundReason",
                                                                    new String[]
                                                                               {
                                    !                                           "missing_node",
                                    !                                           "not_context",
                                                                                "not_object"
                                                                               }
                                          );
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class NotFoundReasonHolder
                                    *** 81,87 ****
                                      
                                        /**
                                         * Get the type code of {@link NotFoundReason}.
                                    !    * 
                                         * @return the typecode of enumeration, allowed value names being
                                         *         "missing_node", "not_context" and "not_object"
                                         */
                                    --- 81,87 ----
                                      
                                        /**
                                         * Get the type code of {@link NotFoundReason}.
                                    !    *
                                         * @return the typecode of enumeration, allowed value names being
                                         *         "missing_node", "not_context" and "not_object"
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/_BindingIteratorImplBase.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/_BindingIteratorImplBase.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/_BindingIteratorImplBase.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/_BindingIteratorImplBase.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class _BindingIteratorIm
                                    *** 116,122 ****
                                              out = rh.createReply();
                                            }
                                          else
                                    !       throw new BAD_OPERATION(method, Minor.Method, 
                                              CompletionStatus.COMPLETED_MAYBE);
                                      
                                          return out;
                                    --- 116,122 ----
                                              out = rh.createReply();
                                            }
                                          else
                                    !       throw new BAD_OPERATION(method, Minor.Method,
                                              CompletionStatus.COMPLETED_MAYBE);
                                      
                                          return out;
                                    *************** public abstract class _BindingIteratorIm
                                    *** 136,139 ****
                                            request.operation().equals("destroy") ? null : new BooleanHolder();
                                          gnu.CORBA.ServiceRequestAdapter.invoke(request, this, result);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 136,139 ----
                                            request.operation().equals("destroy") ? null : new BooleanHolder();
                                          gnu.CORBA.ServiceRequestAdapter.invoke(request, this, result);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/_BindingIteratorStub.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/_BindingIteratorStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/_BindingIteratorStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/_BindingIteratorStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _BindingIteratorStub
                                    *** 200,203 ****
                                          destroy();
                                          super.finalize();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 200,203 ----
                                          destroy();
                                          super.finalize();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/_NamingContextExtStub.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/_NamingContextExtStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/_NamingContextExtStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/_NamingContextExtStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _NamingContextExtStub
                                    *** 207,210 ****
                                              _releaseReply(in);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 207,210 ----
                                              _releaseReply(in);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/CosNaming/_NamingContextStub.java gcc-4.6.0/libjava/classpath/org/omg/CosNaming/_NamingContextStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/CosNaming/_NamingContextStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/CosNaming/_NamingContextStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _NamingContextStub
                                    *** 451,454 ****
                                          else
                                            throw4(in, id);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 451,454 ----
                                          else
                                            throw4(in, id);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/Dynamic/Parameter.java gcc-4.6.0/libjava/classpath/org/omg/Dynamic/Parameter.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/Dynamic/Parameter.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/Dynamic/Parameter.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class Parameter
                                    *** 87,90 ****
                                          argument = an_argument;
                                          mode = a_mode;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 87,90 ----
                                          argument = an_argument;
                                          mode = a_mode;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/AnySeqHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/AnySeqHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/AnySeqHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/AnySeqHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class AnySeqHelper
                                    *** 113,116 ****
                                        {
                                          org.omg.CORBA.AnySeqHelper.write(output, value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 113,116 ----
                                        {
                                          org.omg.CORBA.AnySeqHelper.write(output, value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAny.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAny.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAny.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAny.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 68,71 ****
                                      public interface DynAny
                                        extends DynAnyOperations, IDLEntity, org.omg.CORBA.Object, Serializable
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 68,71 ----
                                      public interface DynAny
                                        extends DynAnyOperations, IDLEntity, org.omg.CORBA.Object, Serializable
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 55,64 ****
                                       * specifications, DynAnyFactory is always a local object, so the two methods of
                                       * this helper ({@link #read} and {@link #write} are not in use, always
                                       * throwing {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynAnyFactoryHelper
                                    --- 55,64 ----
                                       * specifications, DynAnyFactory is always a local object, so the two methods of
                                       * this helper ({@link #read} and {@link #write} are not in use, always
                                       * throwing {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynAnyFactoryHelper
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 66,72 ****
                                        /**
                                         * Cast the passed object into the DynAnyFactory. As DynAnyFactory is a local
                                         * object, the method just uses java final_type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynAnyFactory.
                                    --- 66,72 ----
                                        /**
                                         * Cast the passed object into the DynAnyFactory. As DynAnyFactory is a local
                                         * object, the method just uses java final_type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynAnyFactory.
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 83,105 ****
                                                                  + " is not a DynAnyFactory");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynAnyFactory. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See also OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynAnyFactory.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static DynAnyFactory unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the final_type code of the {@link DynAnyFactory}.
                                    --- 83,105 ----
                                                                  + " is not a DynAnyFactory");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynAnyFactory. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See also OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynAnyFactory.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static DynAnyFactory unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the final_type code of the {@link DynAnyFactory}.
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 111,119 ****
                                      
                                        /**
                                         * Insert the DynAnyFactory into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynAnyFactory to insert.
                                         */
                                        public static void insert(Any any, DynAnyFactory that)
                                    --- 111,119 ----
                                      
                                        /**
                                         * Insert the DynAnyFactory into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynAnyFactory to insert.
                                         */
                                        public static void insert(Any any, DynAnyFactory that)
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 123,129 ****
                                      
                                        /**
                                         * Extract the DynAnyFactory from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynAnyFactory.
                                         */
                                        public static DynAnyFactory extract(Any any)
                                    --- 123,129 ----
                                      
                                        /**
                                         * Extract the DynAnyFactory from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynAnyFactory.
                                         */
                                        public static DynAnyFactory extract(Any any)
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 133,139 ****
                                      
                                        /**
                                         * Get the DynAnyFactory repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynAnyFactory:1.0", always.
                                         */
                                        public static String id()
                                    --- 133,139 ----
                                      
                                        /**
                                         * Get the DynAnyFactory repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynAnyFactory:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 145,155 ****
                                         * This should read DynAnyFactory from the CDR input stream, but (following
                                         * the JDK 1.5 API) it does not. The factory can only be obtained from the
                                         * ORB.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynAnyFactory read(InputStream input)
                                    --- 145,155 ----
                                         * This should read DynAnyFactory from the CDR input stream, but (following
                                         * the JDK 1.5 API) it does not. The factory can only be obtained from the
                                         * ORB.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynAnyFactory read(InputStream input)
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 160,170 ****
                                        /**
                                         * This should read DynAnyFactory from the CDR input stream, but (following
                                         * the JDK 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynAnyFactory value)
                                    --- 160,170 ----
                                        /**
                                         * This should read DynAnyFactory from the CDR input stream, but (following
                                         * the JDK 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynAnyFactory value)
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 175,181 ****
                                        /**
                                         * The package level method for throwing exception, explaining that the
                                         * operation is not applicable.
                                    !    * 
                                         * @param Id the Id for the typecode for that the operations was attempted to
                                         * perform.
                                         */
                                    --- 175,181 ----
                                        /**
                                         * The package level method for throwing exception, explaining that the
                                         * operation is not applicable.
                                    !    *
                                         * @param Id the Id for the typecode for that the operations was attempted to
                                         * perform.
                                         */
                                    *************** public abstract class DynAnyFactoryHelpe
                                    *** 185,188 ****
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 185,188 ----
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class InconsistentTypeCode
                                    *** 79,82 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 79,82 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class InconsistentTypeCo
                                    *** 70,76 ****
                                      
                                        /**
                                         * Insert the InconsistentTypeCode into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the InconsistentTypeCode to insert.
                                         */
                                    --- 70,76 ----
                                      
                                        /**
                                         * Insert the InconsistentTypeCode into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the InconsistentTypeCode to insert.
                                         */
                                    *************** public abstract class InconsistentTypeCo
                                    *** 97,103 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InconsistentTypeCode expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 97,103 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InconsistentTypeCode expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class InconsistentTypeCo
                                    *** 137,140 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 137,140 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 54,63 ****
                                       * specifications, DynAny is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynAnyHelper
                                    --- 54,63 ----
                                       * specifications, DynAny is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynAnyHelper
                                    *************** public abstract class DynAnyHelper
                                    *** 65,71 ****
                                        /**
                                         * Cast the passed object into the DynAny. As DynAny is a local object, the
                                         * method just uses java type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynAny.
                                    --- 65,71 ----
                                        /**
                                         * Cast the passed object into the DynAny. As DynAny is a local object, the
                                         * method just uses java type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynAny.
                                    *************** public abstract class DynAnyHelper
                                    *** 81,103 ****
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynAny");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynAny. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See also OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynAny.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static DynAny unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the type code of the {@link DynAny}.
                                    --- 81,103 ----
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynAny");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynAny. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See also OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynAny.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static DynAny unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the type code of the {@link DynAny}.
                                    *************** public abstract class DynAnyHelper
                                    *** 109,117 ****
                                      
                                        /**
                                         * Insert the DynAny into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynAny to insert.
                                         */
                                        public static void insert(Any any, DynAny that)
                                    --- 109,117 ----
                                      
                                        /**
                                         * Insert the DynAny into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynAny to insert.
                                         */
                                        public static void insert(Any any, DynAny that)
                                    *************** public abstract class DynAnyHelper
                                    *** 121,127 ****
                                      
                                        /**
                                         * Extract the DynAny from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynAny.
                                         */
                                        public static DynAny extract(Any any)
                                    --- 121,127 ----
                                      
                                        /**
                                         * Extract the DynAny from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynAny.
                                         */
                                        public static DynAny extract(Any any)
                                    *************** public abstract class DynAnyHelper
                                    *** 131,137 ****
                                      
                                        /**
                                         * Get the DynAny repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynAny:1.0", always.
                                         */
                                        public static String id()
                                    --- 131,137 ----
                                      
                                        /**
                                         * Get the DynAny repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynAny:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynAnyHelper
                                    *** 142,152 ****
                                        /**
                                         * This should read DynAny from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynAny read(InputStream input)
                                    --- 142,152 ----
                                        /**
                                         * This should read DynAny from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynAny read(InputStream input)
                                    *************** public abstract class DynAnyHelper
                                    *** 157,171 ****
                                        /**
                                         * This should read DynAny from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynAny value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 157,171 ----
                                        /**
                                         * This should read DynAny from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynAny value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValue.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValue.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValue.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class InvalidValue
                                    *** 78,81 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 78,81 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class InvalidValueHelper
                                    *** 98,104 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InvalidValue expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 98,104 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InvalidValue expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class InvalidValueHelper
                                    *** 138,141 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 138,141 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class TypeMismatch
                                    *** 78,81 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 78,81 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class TypeMismatchHelper
                                    *** 98,104 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("TypeMismatch expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 98,104 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("TypeMismatch expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class TypeMismatchHelper
                                    *** 138,141 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 138,141 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnySeqHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnySeqHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynAnySeqHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynAnySeqHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class DynAnySeqHelper
                                    *** 99,105 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("DynAnySeq expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 99,105 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("DynAnySeq expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class DynAnySeqHelper
                                    *** 143,146 ****
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 143,146 ----
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynArrayHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynArrayHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynArrayHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynArrayHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 53,62 ****
                                       * specifications, DynArray is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynArrayHelper
                                    --- 53,62 ----
                                       * specifications, DynArray is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynArrayHelper
                                    *************** public abstract class DynArrayHelper
                                    *** 64,70 ****
                                        /**
                                         * Cast the passed object into the DynArray. As DynArray is a local object,
                                         * the method just uses java type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynArray.
                                    --- 64,70 ----
                                        /**
                                         * Cast the passed object into the DynArray. As DynArray is a local object,
                                         * the method just uses java type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynArray.
                                    *************** public abstract class DynArrayHelper
                                    *** 80,102 ****
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynArray");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynArray. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynArray.
                                    !    * 
                                    !    * @since 1.5 
                                    !    */ 
                                        public static DynArray unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the type code of the {@link DynArray}.
                                    --- 80,102 ----
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynArray");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynArray. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynArray.
                                    !    *
                                    !    * @since 1.5
                                    !    */
                                        public static DynArray unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the type code of the {@link DynArray}.
                                    *************** public abstract class DynArrayHelper
                                    *** 108,116 ****
                                      
                                        /**
                                         * Insert the DynArray into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynArray to insert.
                                         */
                                        public static void insert(Any any, DynArray that)
                                    --- 108,116 ----
                                      
                                        /**
                                         * Insert the DynArray into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynArray to insert.
                                         */
                                        public static void insert(Any any, DynArray that)
                                    *************** public abstract class DynArrayHelper
                                    *** 120,126 ****
                                      
                                        /**
                                         * Extract the DynArray from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynArray.
                                         */
                                        public static DynArray extract(Any any)
                                    --- 120,126 ----
                                      
                                        /**
                                         * Extract the DynArray from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynArray.
                                         */
                                        public static DynArray extract(Any any)
                                    *************** public abstract class DynArrayHelper
                                    *** 130,136 ****
                                      
                                        /**
                                         * Get the DynArray repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynArray:1.0", always.
                                         */
                                        public static String id()
                                    --- 130,136 ----
                                      
                                        /**
                                         * Get the DynArray repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynArray:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynArrayHelper
                                    *** 141,151 ****
                                        /**
                                         * This should read DynArray from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynArray read(InputStream input)
                                    --- 141,151 ----
                                        /**
                                         * This should read DynArray from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynArray read(InputStream input)
                                    *************** public abstract class DynArrayHelper
                                    *** 156,170 ****
                                        /**
                                         * This should read DynArray from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynArray value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 156,170 ----
                                        /**
                                         * This should read DynArray from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynArray value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynEnumHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynEnumHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynEnumHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynEnumHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 54,63 ****
                                       * specifications, DynEnum is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynEnumHelper
                                    --- 54,63 ----
                                       * specifications, DynEnum is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynEnumHelper
                                    *************** public abstract class DynEnumHelper
                                    *** 65,71 ****
                                        /**
                                         * Cast the passed object into the DynEnum. As DynEnum is a local object, the
                                         * method just uses java type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynEnum.
                                    --- 65,71 ----
                                        /**
                                         * Cast the passed object into the DynEnum. As DynEnum is a local object, the
                                         * method just uses java type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynEnum.
                                    *************** public abstract class DynEnumHelper
                                    *** 81,103 ****
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynEnum");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynEnum. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynEnum.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static DynEnum unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the type code of the {@link DynEnum}.
                                    --- 81,103 ----
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynEnum");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynEnum. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynEnum.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static DynEnum unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the type code of the {@link DynEnum}.
                                    *************** public abstract class DynEnumHelper
                                    *** 109,117 ****
                                      
                                        /**
                                         * Insert the DynEnum into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynEnum to insert.
                                         */
                                        public static void insert(Any any, DynEnum that)
                                    --- 109,117 ----
                                      
                                        /**
                                         * Insert the DynEnum into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynEnum to insert.
                                         */
                                        public static void insert(Any any, DynEnum that)
                                    *************** public abstract class DynEnumHelper
                                    *** 121,127 ****
                                      
                                        /**
                                         * Extract the DynEnum from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynEnum.
                                         */
                                        public static DynEnum extract(Any any)
                                    --- 121,127 ----
                                      
                                        /**
                                         * Extract the DynEnum from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynEnum.
                                         */
                                        public static DynEnum extract(Any any)
                                    *************** public abstract class DynEnumHelper
                                    *** 131,137 ****
                                      
                                        /**
                                         * Get the DynEnum repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynEnum:1.0", always.
                                         */
                                        public static String id()
                                    --- 131,137 ----
                                      
                                        /**
                                         * Get the DynEnum repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynEnum:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynEnumHelper
                                    *** 142,152 ****
                                        /**
                                         * This should read DynEnum from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynEnum read(InputStream input)
                                    --- 142,152 ----
                                        /**
                                         * This should read DynEnum from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynEnum read(InputStream input)
                                    *************** public abstract class DynEnumHelper
                                    *** 157,171 ****
                                        /**
                                         * This should read DynEnum from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynEnum value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 157,171 ----
                                        /**
                                         * This should read DynEnum from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynEnum value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynFixedHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynFixedHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynFixedHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynFixedHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 54,63 ****
                                       * specifications, DynFixed is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynFixedHelper
                                    --- 54,63 ----
                                       * specifications, DynFixed is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynFixedHelper
                                    *************** public abstract class DynFixedHelper
                                    *** 65,71 ****
                                        /**
                                         * Cast the passed object into the DynFixed. As DynFixed is a local object,
                                         * the method just uses java type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynFixed.
                                    --- 65,71 ----
                                        /**
                                         * Cast the passed object into the DynFixed. As DynFixed is a local object,
                                         * the method just uses java type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynFixed.
                                    *************** public abstract class DynFixedHelper
                                    *** 81,103 ****
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynFixed");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynFixed. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynFixed.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static DynFixed unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the type code of the {@link DynFixed}.
                                    --- 81,103 ----
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynFixed");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynFixed. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynFixed.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static DynFixed unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the type code of the {@link DynFixed}.
                                    *************** public abstract class DynFixedHelper
                                    *** 109,117 ****
                                      
                                        /**
                                         * Insert the DynFixed into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynFixed to insert.
                                         */
                                        public static void insert(Any any, DynFixed that)
                                    --- 109,117 ----
                                      
                                        /**
                                         * Insert the DynFixed into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynFixed to insert.
                                         */
                                        public static void insert(Any any, DynFixed that)
                                    *************** public abstract class DynFixedHelper
                                    *** 121,127 ****
                                      
                                        /**
                                         * Extract the DynFixed from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynFixed.
                                         */
                                        public static DynFixed extract(Any any)
                                    --- 121,127 ----
                                      
                                        /**
                                         * Extract the DynFixed from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynFixed.
                                         */
                                        public static DynFixed extract(Any any)
                                    *************** public abstract class DynFixedHelper
                                    *** 131,137 ****
                                      
                                        /**
                                         * Get the DynFixed repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynFixed:1.0", always.
                                         */
                                        public static String id()
                                    --- 131,137 ----
                                      
                                        /**
                                         * Get the DynFixed repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynFixed:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynFixedHelper
                                    *** 142,152 ****
                                        /**
                                         * This should read DynFixed from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynFixed read(InputStream input)
                                    --- 142,152 ----
                                        /**
                                         * This should read DynFixed from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynFixed read(InputStream input)
                                    *************** public abstract class DynFixedHelper
                                    *** 157,171 ****
                                        /**
                                         * This should read DynFixed from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynFixed value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 157,171 ----
                                        /**
                                         * This should read DynFixed from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynFixed value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynSequenceHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynSequenceHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynSequenceHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynSequenceHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 53,62 ****
                                       * specifications, DynSequence is always a local object, so the two methods of
                                       * this helper ({@link #read} and {@link #write} are not in use, always
                                       * throwing {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynSequenceHelper
                                    --- 53,62 ----
                                       * specifications, DynSequence is always a local object, so the two methods of
                                       * this helper ({@link #read} and {@link #write} are not in use, always
                                       * throwing {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynSequenceHelper
                                    *************** public abstract class DynSequenceHelper
                                    *** 64,70 ****
                                        /**
                                         * Cast the passed object into the DynSequence. As DynSequence is a local
                                         * object, the method just uses java type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynSequence.
                                    --- 64,70 ----
                                        /**
                                         * Cast the passed object into the DynSequence. As DynSequence is a local
                                         * object, the method just uses java type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynSequence.
                                    *************** public abstract class DynSequenceHelper
                                    *** 80,102 ****
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynSequence");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynSequence. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynSequence.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static DynSequence unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the type code of the {@link DynSequence}.
                                    --- 80,102 ----
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynSequence");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynSequence. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynSequence.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static DynSequence unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the type code of the {@link DynSequence}.
                                    *************** public abstract class DynSequenceHelper
                                    *** 108,116 ****
                                      
                                        /**
                                         * Insert the DynSequence into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynSequence to insert.
                                         */
                                        public static void insert(Any any, DynSequence that)
                                    --- 108,116 ----
                                      
                                        /**
                                         * Insert the DynSequence into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynSequence to insert.
                                         */
                                        public static void insert(Any any, DynSequence that)
                                    *************** public abstract class DynSequenceHelper
                                    *** 120,126 ****
                                      
                                        /**
                                         * Extract the DynSequence from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynSequence.
                                         */
                                        public static DynSequence extract(Any any)
                                    --- 120,126 ----
                                      
                                        /**
                                         * Extract the DynSequence from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynSequence.
                                         */
                                        public static DynSequence extract(Any any)
                                    *************** public abstract class DynSequenceHelper
                                    *** 130,136 ****
                                      
                                        /**
                                         * Get the DynSequence repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynSequence:1.0", always.
                                         */
                                        public static String id()
                                    --- 130,136 ----
                                      
                                        /**
                                         * Get the DynSequence repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynSequence:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynSequenceHelper
                                    *** 141,151 ****
                                        /**
                                         * This should read DynSequence from the CDR input stream, but (following the
                                         * JDK 1.5 API) it does not.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynSequence read(InputStream input)
                                    --- 141,151 ----
                                        /**
                                         * This should read DynSequence from the CDR input stream, but (following the
                                         * JDK 1.5 API) it does not.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynSequence read(InputStream input)
                                    *************** public abstract class DynSequenceHelper
                                    *** 156,170 ****
                                        /**
                                         * This should read DynSequence from the CDR input stream, but (following the
                                         * JDK 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynSequence value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 156,170 ----
                                        /**
                                         * This should read DynSequence from the CDR input stream, but (following the
                                         * JDK 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynSequence value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynStructHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynStructHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynStructHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynStructHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 53,62 ****
                                       * specifications, DynStruct is always a local object, so the two methods of
                                       * this helper ({@link #read} and {@link #write} are not in use, always
                                       * throwing {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynStructHelper
                                    --- 53,62 ----
                                       * specifications, DynStruct is always a local object, so the two methods of
                                       * this helper ({@link #read} and {@link #write} are not in use, always
                                       * throwing {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynStructHelper
                                    *************** public abstract class DynStructHelper
                                    *** 64,70 ****
                                        /**
                                         * Cast the passed object into the DynStruct. As DynStruct is a local object,
                                         * the method just uses java type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynStruct.
                                    --- 64,70 ----
                                        /**
                                         * Cast the passed object into the DynStruct. As DynStruct is a local object,
                                         * the method just uses java type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynStruct.
                                    *************** public abstract class DynStructHelper
                                    *** 80,102 ****
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynStruct");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynStruct. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynStruct.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static DynStruct unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the type code of the {@link DynStruct}.
                                    --- 80,102 ----
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynStruct");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynStruct. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynStruct.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static DynStruct unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the type code of the {@link DynStruct}.
                                    *************** public abstract class DynStructHelper
                                    *** 108,116 ****
                                      
                                        /**
                                         * Insert the DynStruct into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynStruct to insert.
                                         */
                                        public static void insert(Any any, DynStruct that)
                                    --- 108,116 ----
                                      
                                        /**
                                         * Insert the DynStruct into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynStruct to insert.
                                         */
                                        public static void insert(Any any, DynStruct that)
                                    *************** public abstract class DynStructHelper
                                    *** 120,126 ****
                                      
                                        /**
                                         * Extract the DynStruct from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynStruct.
                                         */
                                        public static DynStruct extract(Any any)
                                    --- 120,126 ----
                                      
                                        /**
                                         * Extract the DynStruct from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynStruct.
                                         */
                                        public static DynStruct extract(Any any)
                                    *************** public abstract class DynStructHelper
                                    *** 130,136 ****
                                      
                                        /**
                                         * Get the DynStruct repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynStruct:1.0", always.
                                         */
                                        public static String id()
                                    --- 130,136 ----
                                      
                                        /**
                                         * Get the DynStruct repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynStruct:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynStructHelper
                                    *** 141,151 ****
                                        /**
                                         * This should read DynStruct from the CDR input stream, but (following the
                                         * JDK 1.5 API) it does not.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynStruct read(InputStream input)
                                    --- 141,151 ----
                                        /**
                                         * This should read DynStruct from the CDR input stream, but (following the
                                         * JDK 1.5 API) it does not.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynStruct read(InputStream input)
                                    *************** public abstract class DynStructHelper
                                    *** 156,170 ****
                                        /**
                                         * This should read DynStruct from the CDR input stream, but (following the
                                         * JDK 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynStruct value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 156,170 ----
                                        /**
                                         * This should read DynStruct from the CDR input stream, but (following the
                                         * JDK 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynStruct value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynUnionHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynUnionHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynUnionHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynUnionHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 53,62 ****
                                       * specifications, DynUnion is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynUnionHelper
                                    --- 53,62 ----
                                       * specifications, DynUnion is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynUnionHelper
                                    *************** public abstract class DynUnionHelper
                                    *** 64,70 ****
                                        /**
                                         * Cast the passed object into the DynUnion. As DynUnion is a local object,
                                         * the method just uses java type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynUnion.
                                    --- 64,70 ----
                                        /**
                                         * Cast the passed object into the DynUnion. As DynUnion is a local object,
                                         * the method just uses java type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynUnion.
                                    *************** public abstract class DynUnionHelper
                                    *** 80,102 ****
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynUnion");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynUnion. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynUnion.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static DynUnion unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the type code of the {@link DynUnion}.
                                    --- 80,102 ----
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynUnion");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynUnion. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynUnion.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static DynUnion unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the type code of the {@link DynUnion}.
                                    *************** public abstract class DynUnionHelper
                                    *** 108,116 ****
                                      
                                        /**
                                         * Insert the DynUnion into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynUnion to insert.
                                         */
                                        public static void insert(Any any, DynUnion that)
                                    --- 108,116 ----
                                      
                                        /**
                                         * Insert the DynUnion into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynUnion to insert.
                                         */
                                        public static void insert(Any any, DynUnion that)
                                    *************** public abstract class DynUnionHelper
                                    *** 120,126 ****
                                      
                                        /**
                                         * Extract the DynUnion from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynUnion.
                                         */
                                        public static DynUnion extract(Any any)
                                    --- 120,126 ----
                                      
                                        /**
                                         * Extract the DynUnion from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynUnion.
                                         */
                                        public static DynUnion extract(Any any)
                                    *************** public abstract class DynUnionHelper
                                    *** 130,136 ****
                                      
                                        /**
                                         * Get the DynUnion repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynUnion:1.0", always.
                                         */
                                        public static String id()
                                    --- 130,136 ----
                                      
                                        /**
                                         * Get the DynUnion repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynUnion:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynUnionHelper
                                    *** 141,151 ****
                                        /**
                                         * This should read DynUnion from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynUnion read(InputStream input)
                                    --- 141,151 ----
                                        /**
                                         * This should read DynUnion from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynUnion read(InputStream input)
                                    *************** public abstract class DynUnionHelper
                                    *** 156,170 ****
                                        /**
                                         * This should read DynUnion from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynUnion value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 156,170 ----
                                        /**
                                         * This should read DynUnion from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynUnion value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynValueBox.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynValueBox.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynValueBox.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynValueBox.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface DynValueBox
                                    *** 52,55 ****
                                        extends DynValueBoxOperations, DynValueCommon, DynAny, IDLEntity,
                                          org.omg.CORBA.Object, Serializable
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                        extends DynValueBoxOperations, DynValueCommon, DynAny, IDLEntity,
                                          org.omg.CORBA.Object, Serializable
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynValueCommonOperations.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynValueCommonOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynValueCommonOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynValueCommonOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.omg.DynamicAny;
                                    *** 41,47 ****
                                      /**
                                       * Provides operations, applicable to {@link DynAny}s that may hold CORBA
                                       * <code>null</code>.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public interface DynValueCommonOperations
                                    --- 41,47 ----
                                      /**
                                       * Provides operations, applicable to {@link DynAny}s that may hold CORBA
                                       * <code>null</code>.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public interface DynValueCommonOperations
                                    *************** public interface DynValueCommonOperation
                                    *** 49,55 ****
                                      {
                                        /**
                                         * Check if this {@link DynAny} is holding the <code>null</code>.
                                    !    * 
                                         * @return true if this {@link DynAny} is holding the <code>null</code>,
                                         * false otherwise.
                                         */
                                    --- 49,55 ----
                                      {
                                        /**
                                         * Check if this {@link DynAny} is holding the <code>null</code>.
                                    !    *
                                         * @return true if this {@link DynAny} is holding the <code>null</code>,
                                         * false otherwise.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynValueHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynValueHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/DynValueHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/DynValueHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 53,62 ****
                                       * specifications, DynValue is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  * 
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynValueHelper
                                    --- 53,62 ----
                                       * specifications, DynValue is always a local object, so the two methods of this
                                       * helper ({@link #read} and {@link #write} are not in use, always throwing
                                       * {@link MARSHAL}.
                                    !  *
                                       * @specnote always throwing MARSHAL in read and write ensures compatibility
                                       * with other popular implementations like Sun's.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class DynValueHelper
                                    *************** public abstract class DynValueHelper
                                    *** 64,70 ****
                                        /**
                                         * Cast the passed object into the DynValue. As DynValue is a local object,
                                         * the method just uses java type cast.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynValue.
                                    --- 64,70 ----
                                        /**
                                         * Cast the passed object into the DynValue. As DynValue is a local object,
                                         * the method just uses java type cast.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a DynValue.
                                    *************** public abstract class DynValueHelper
                                    *** 80,102 ****
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynValue");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the DynValue. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted DynValue.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static DynValue unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Get the type code of the {@link DynValue}.
                                    --- 80,102 ----
                                              throw new BAD_PARAM(obj.getClass().getName() + " is not a DynValue");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the DynValue. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted DynValue.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static DynValue unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Get the type code of the {@link DynValue}.
                                    *************** public abstract class DynValueHelper
                                    *** 108,116 ****
                                      
                                        /**
                                         * Insert the DynValue into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                    !    * 
                                         * @param that the DynValue to insert.
                                         */
                                        public static void insert(Any any, DynValue that)
                                    --- 108,116 ----
                                      
                                        /**
                                         * Insert the DynValue into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                    !    *
                                         * @param that the DynValue to insert.
                                         */
                                        public static void insert(Any any, DynValue that)
                                    *************** public abstract class DynValueHelper
                                    *** 120,126 ****
                                      
                                        /**
                                         * Extract the DynValue from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain DynValue.
                                         */
                                        public static DynValue extract(Any any)
                                    --- 120,126 ----
                                      
                                        /**
                                         * Extract the DynValue from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain DynValue.
                                         */
                                        public static DynValue extract(Any any)
                                    *************** public abstract class DynValueHelper
                                    *** 130,136 ****
                                      
                                        /**
                                         * Get the DynValue repository id.
                                    !    * 
                                         * @return "IDL:omg.org/DynamicAny/DynValue:1.0", always.
                                         */
                                        public static String id()
                                    --- 130,136 ----
                                      
                                        /**
                                         * Get the DynValue repository id.
                                    !    *
                                         * @return "IDL:omg.org/DynamicAny/DynValue:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class DynValueHelper
                                    *** 141,151 ****
                                        /**
                                         * This should read DynValue from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static DynValue read(InputStream input)
                                    --- 141,151 ----
                                        /**
                                         * This should read DynValue from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static DynValue read(InputStream input)
                                    *************** public abstract class DynValueHelper
                                    *** 156,170 ****
                                        /**
                                         * This should read DynValue from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    * 
                                         * @specenote Sun throws the same exception.
                                    !    * 
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynValue value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 156,170 ----
                                        /**
                                         * This should read DynValue from the CDR input stream, but (following the JDK
                                         * 1.5 API) it does not.
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream to write into.
                                    !    *
                                         * @specenote Sun throws the same exception.
                                    !    *
                                         * @throws MARSHAL always.
                                         */
                                        public static void write(OutputStream output, DynValue value)
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/FieldNameHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/FieldNameHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/FieldNameHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/FieldNameHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class FieldNameHelper
                                    *** 117,120 ****
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 117,120 ----
                                        {
                                          ostream.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NameDynAnyPairHelp
                                    *** 80,86 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NameDynAnyPair expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 80,86 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NameDynAnyPair expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class NameDynAnyPairHelp
                                    *** 105,120 ****
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                          StructMember[] members = new StructMember[ 2 ];
                                    !     
                                          TypeCode field;
                                    !     
                                          field =
                                            orb.create_alias_tc("IDL:omg.org/DynamicAny/FieldName:1.0",
                                                                "FieldName",
                                                                orb.get_primitive_tc(TCKind.tk_string)
                                            );
                                          members [ 0 ] = new StructMember("id", field, null);
                                    !     
                                          field = DynAnyHelper.type();
                                          members [ 1 ] = new StructMember("value", field, null);
                                          return orb.create_struct_tc(id(), "NameDynAnyPair", members);
                                    --- 105,120 ----
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                          StructMember[] members = new StructMember[ 2 ];
                                    ! 
                                          TypeCode field;
                                    ! 
                                          field =
                                            orb.create_alias_tc("IDL:omg.org/DynamicAny/FieldName:1.0",
                                                                "FieldName",
                                                                orb.get_primitive_tc(TCKind.tk_string)
                                            );
                                          members [ 0 ] = new StructMember("id", field, null);
                                    ! 
                                          field = DynAnyHelper.type();
                                          members [ 1 ] = new StructMember("value", field, null);
                                          return orb.create_struct_tc(id(), "NameDynAnyPair", members);
                                    *************** public abstract class NameDynAnyPairHelp
                                    *** 161,164 ****
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 161,164 ----
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairSeqHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairSeqHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairSeqHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairSeqHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NameDynAnyPairSeqH
                                    *** 98,104 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NameDynAnyPairSeq expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 98,104 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NameDynAnyPairSeq expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class NameDynAnyPairSeqH
                                    *** 142,145 ****
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 142,145 ----
                                        {
                                          throw new MARSHAL(DynAnyFactoryHelper.not_applicable(id()));
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameValuePair.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameValuePair.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameValuePair.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameValuePair.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class NameValuePair
                                    *** 87,90 ****
                                          id = aName;
                                          value = aValue;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 87,90 ----
                                          id = aName;
                                          value = aValue;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameValuePairHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameValuePairHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameValuePairHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameValuePairHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NameValuePairHelpe
                                    *** 68,83 ****
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                          StructMember[] members = new StructMember[ 2 ];
                                    !     
                                          TypeCode field;
                                    !     
                                          field =
                                            orb.create_alias_tc("IDL:omg.org/DynamicAny/FieldName:1.0",
                                                                "FieldName",
                                                                orb.get_primitive_tc(TCKind.tk_string)
                                            );
                                          members [ 0 ] = new StructMember("id", field, null);
                                    !     
                                          field = orb.get_primitive_tc(TCKind.tk_any);
                                          members [ 1 ] = new StructMember("value", field, null);
                                          return orb.create_struct_tc(id(), "NameValuePair", members);
                                    --- 68,83 ----
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                          StructMember[] members = new StructMember[ 2 ];
                                    ! 
                                          TypeCode field;
                                    ! 
                                          field =
                                            orb.create_alias_tc("IDL:omg.org/DynamicAny/FieldName:1.0",
                                                                "FieldName",
                                                                orb.get_primitive_tc(TCKind.tk_string)
                                            );
                                          members [ 0 ] = new StructMember("id", field, null);
                                    ! 
                                          field = orb.get_primitive_tc(TCKind.tk_any);
                                          members [ 1 ] = new StructMember("value", field, null);
                                          return orb.create_struct_tc(id(), "NameValuePair", members);
                                    *************** public abstract class NameValuePairHelpe
                                    *** 111,117 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NameValuePair expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 111,117 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NameValuePair expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class NameValuePairHelpe
                                    *** 150,153 ****
                                          output.write_string(value.id);
                                          output.write_any(value.value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 150,153 ----
                                          output.write_string(value.id);
                                          output.write_any(value.value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameValuePairSeqHelper.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameValuePairSeqHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/NameValuePairSeqHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/NameValuePairSeqHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NameValuePairSeqHe
                                    *** 91,97 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NameValuePairSeq expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                        }
                                    --- 91,97 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NameValuePairSeq expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                        }
                                    *************** public abstract class NameValuePairSeqHe
                                    *** 138,141 ****
                                              NameValuePairHelper.write(output, value [ i0 ]);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 138,141 ----
                                              NameValuePairHelper.write(output, value [ i0 ]);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynAnyFactoryStub
                                    *** 68,73 ****
                                    --- 68,74 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynAnyFactoryOperations.class;
                                      
                                        /**
                                    *************** public class _DynAnyFactoryStub
                                    *** 116,119 ****
                                        static String NOT_APPLICABLE =
                                          "DynAnyFactory is always local objects. " +
                                          "It is never accessed on remote side via stub.";
                                    ! }
                                    \ No newline at end of file
                                    --- 117,120 ----
                                        static String NOT_APPLICABLE =
                                          "DynAnyFactory is always local objects. " +
                                          "It is never accessed on remote side via stub.";
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynAnyStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynAnyStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynAnyStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynAnyStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynAnyStub
                                    *** 66,71 ****
                                    --- 66,72 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynAnyOperations.class;
                                      
                                        /**
                                    *************** public class _DynAnyStub
                                    *** 624,627 ****
                                        static String NOT_APPLICABLE =
                                          "DynAnys are always local objects. " +
                                          "They and are never accessed on remote side via stubs.";
                                    ! }
                                    \ No newline at end of file
                                    --- 625,628 ----
                                        static String NOT_APPLICABLE =
                                          "DynAnys are always local objects. " +
                                          "They and are never accessed on remote side via stubs.";
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynArrayStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynArrayStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynArrayStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynArrayStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynArrayStub
                                    *** 66,71 ****
                                    --- 66,72 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynArrayOperations.class;
                                      
                                        /**
                                    *************** public class _DynArrayStub
                                    *** 124,130 ****
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    !  
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    --- 125,131 ----
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    ! 
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    *************** public class _DynArrayStub
                                    *** 663,666 ****
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 664,667 ----
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynEnumStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynEnumStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynEnumStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynEnumStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynEnumStub
                                    *** 66,71 ****
                                    --- 66,72 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynEnumOperations.class;
                                      
                                        /**
                                    *************** public class _DynEnumStub
                                    *** 124,130 ****
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    !   
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    --- 125,131 ----
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    ! 
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    *************** public class _DynEnumStub
                                    *** 663,666 ****
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 664,667 ----
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynFixedStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynFixedStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynFixedStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynFixedStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynFixedStub
                                    *** 66,71 ****
                                    --- 66,72 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynFixedOperations.class;
                                      
                                        /**
                                    *************** public class _DynFixedStub
                                    *** 642,645 ****
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 643,646 ----
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynSequenceStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynSequenceStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynSequenceStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynSequenceStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynSequenceStub
                                    *** 67,72 ****
                                    --- 67,73 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynSequenceOperations.class;
                                      
                                        /**
                                    *************** public class _DynSequenceStub
                                    *** 148,154 ****
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    !   
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    --- 149,155 ----
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    ! 
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    *************** public class _DynSequenceStub
                                    *** 687,690 ****
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 688,691 ----
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynStructStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynStructStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynStructStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynStructStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynStructStub
                                    *** 68,73 ****
                                    --- 68,74 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynStructOperations.class;
                                      
                                        /**
                                    *************** public class _DynStructStub
                                    *** 150,156 ****
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    !   
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    --- 151,157 ----
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    ! 
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    *************** public class _DynStructStub
                                    *** 689,692 ****
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 690,693 ----
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynUnionStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynUnionStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynUnionStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynUnionStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynUnionStub
                                    *** 68,73 ****
                                    --- 68,74 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynUnionOperations.class;
                                      
                                        /**
                                    *************** public class _DynUnionStub
                                    *** 182,188 ****
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    !   
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    --- 183,189 ----
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    ! 
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    *************** public class _DynUnionStub
                                    *** 721,724 ****
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 722,725 ----
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynValueStub.java gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynValueStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/DynamicAny/_DynValueStub.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/DynamicAny/_DynValueStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _DynValueStub
                                    *** 68,73 ****
                                    --- 68,74 ----
                                        /**
                                         * The purpose and value of this field are not documented.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = DynValueOperations.class;
                                      
                                        /**
                                    *************** public class _DynValueStub
                                    *** 182,188 ****
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    !   
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    --- 183,189 ----
                                        {
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                    ! 
                                        /**
                                         * The remote call of DynAny methods is not possible.
                                         *
                                    *************** public class _DynValueStub
                                    *** 721,724 ****
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 722,725 ----
                                          throw new MARSHAL(_DynAnyStub.NOT_APPLICABLE);
                                        }
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/Codec.java gcc-4.6.0/libjava/classpath/org/omg/IOP/Codec.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/Codec.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/Codec.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 68,71 ****
                                      public interface Codec
                                        extends CodecOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 68,71 ----
                                      public interface Codec
                                        extends CodecOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactory.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactory.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactory.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactory.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 64,67 ****
                                      public interface CodecFactory
                                        extends CodecFactoryOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 64,67 ----
                                      public interface CodecFactory
                                        extends CodecFactoryOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactoryHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactoryHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactoryHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactoryHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class CodecFactoryHelper
                                    *** 115,137 ****
                                              throw bad;
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the CodecFactory. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted CodecFactory.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static CodecFactory unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * This should read the CodecFactory from the CDR intput stream,
                                    --- 115,137 ----
                                              throw bad;
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the CodecFactory. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted CodecFactory.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static CodecFactory unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * This should read the CodecFactory from the CDR intput stream,
                                    *************** public abstract class CodecFactoryHelper
                                    *** 161,164 ****
                                      
                                        private static String UNSUPPORTED =
                                          "The operation is unsupported for CodecFactory because it is a local object";
                                    ! }
                                    \ No newline at end of file
                                    --- 161,164 ----
                                      
                                        private static String UNSUPPORTED =
                                          "The operation is unsupported for CodecFactory because it is a local object";
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactoryOperations.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactoryOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactoryOperations.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactoryOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface CodecFactoryOperations
                                    *** 60,63 ****
                                         */
                                        Codec create_codec(Encoding for_encoding)
                                                    throws UnknownEncoding;
                                    ! }
                                    \ No newline at end of file
                                    --- 60,63 ----
                                         */
                                        Codec create_codec(Encoding for_encoding)
                                                    throws UnknownEncoding;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class UnknownEncoding
                                    *** 75,78 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 75,78 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.BAD_OPERATION;
                                    *** 59,65 ****
                                      public abstract class UnknownEncodingHelper
                                      {
                                        /**
                                    !    * Create the UnknownEncoding typecode (structure, 
                                         * named "UnknownEncoding").
                                         */
                                        public static TypeCode type()
                                    --- 59,65 ----
                                      public abstract class UnknownEncodingHelper
                                      {
                                        /**
                                    !    * Create the UnknownEncoding typecode (structure,
                                         * named "UnknownEncoding").
                                         */
                                        public static TypeCode type()
                                    *************** public abstract class UnknownEncodingHel
                                    *** 68,78 ****
                                          StructMember[] members = new StructMember[0];
                                          return
                                          orb.create_exception_tc (id(), "UnknownEncoding", members);
                                    !         
                                    !   } 
                                      
                                        /* Every user exception with no user defined fields can use EmptyExceptionHolder */
                                    !   
                                        /**
                                         * Insert the UnknownEncoding into the given Any.
                                         *
                                    --- 68,78 ----
                                          StructMember[] members = new StructMember[0];
                                          return
                                          orb.create_exception_tc (id(), "UnknownEncoding", members);
                                    ! 
                                    !   }
                                      
                                        /* Every user exception with no user defined fields can use EmptyExceptionHolder */
                                    ! 
                                        /**
                                         * Insert the UnknownEncoding into the given Any.
                                         *
                                    *************** public abstract class UnknownEncodingHel
                                    *** 100,109 ****
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("UnknownEncoding expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;        
                                              throw bad;
                                            }
                                    !   }  
                                      
                                        /**
                                         * Get the UnknownEncoding repository id.
                                    --- 100,109 ----
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("UnknownEncoding expected");
                                              bad.initCause(cex);
                                    !         bad.minor = Minor.Any;
                                              throw bad;
                                            }
                                    !   }
                                      
                                        /**
                                         * Get the UnknownEncoding repository id.
                                    *************** public abstract class UnknownEncodingHel
                                    *** 113,119 ****
                                        public static String id()
                                        {
                                          return "IDL:omg.org/IOP/CodecFactory/UnknownEncoding:1.0";
                                    !   }  
                                      
                                        /**
                                         * Read the exception from the CDR intput stream.
                                    --- 113,119 ----
                                        public static String id()
                                        {
                                          return "IDL:omg.org/IOP/CodecFactory/UnknownEncoding:1.0";
                                    !   }
                                      
                                        /**
                                         * Read the exception from the CDR intput stream.
                                    *************** public abstract class UnknownEncodingHel
                                    *** 123,132 ****
                                        public static UnknownEncoding read(InputStream input)
                                        {
                                          // Read the exception repository id.
                                    !     String id = input.read_string();    
                                          UnknownEncoding value = new UnknownEncoding(id);
                                    !     
                                    !     return value;  	  
                                        }
                                      
                                        /**
                                    --- 123,132 ----
                                        public static UnknownEncoding read(InputStream input)
                                        {
                                          // Read the exception repository id.
                                    !     String id = input.read_string();
                                          UnknownEncoding value = new UnknownEncoding(id);
                                    ! 
                                    !     return value;
                                        }
                                      
                                        /**
                                    *************** public abstract class UnknownEncodingHel
                                    *** 140,143 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 140,143 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecOperations.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface CodecOperations
                                    *** 123,126 ****
                                         */
                                        Any decode_value(byte[] them, TypeCode type)
                                                  throws FormatMismatch, TypeMismatch;
                                    ! }
                                    \ No newline at end of file
                                    --- 123,126 ----
                                         */
                                        Any decode_value(byte[] them, TypeCode type)
                                                  throws FormatMismatch, TypeMismatch;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatch.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatch.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatch.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatch.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class FormatMismatch
                                    *** 78,81 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 78,81 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatchHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatchHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatchHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatchHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class FormatMismatchHelp
                                    *** 95,101 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("FormatMismatch expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 95,101 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("FormatMismatch expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class FormatMismatchHelp
                                    *** 136,139 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 136,139 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class InvalidTypeForEncodin
                                    *** 78,81 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 78,81 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class InvalidTypeForEnco
                                    *** 70,76 ****
                                      
                                        /**
                                         * Insert the InvalidTypeForEncoding into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the InvalidTypeForEncoding to insert.
                                         */
                                    --- 70,76 ----
                                      
                                        /**
                                         * Insert the InvalidTypeForEncoding into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the InvalidTypeForEncoding to insert.
                                         */
                                    *************** public abstract class InvalidTypeForEnco
                                    *** 97,103 ****
                                            {
                                              BAD_OPERATION bad =
                                                new BAD_OPERATION("InvalidTypeForEncoding expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 97,103 ----
                                            {
                                              BAD_OPERATION bad =
                                                new BAD_OPERATION("InvalidTypeForEncoding expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class InvalidTypeForEnco
                                    *** 138,141 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 138,141 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatch.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatch.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatch.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatch.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class TypeMismatch
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatchHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatchHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatchHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatchHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class TypeMismatchHelper
                                    *** 95,101 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("TypeMismatch expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 95,101 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("TypeMismatch expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class TypeMismatchHelper
                                    *** 136,139 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 136,139 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/ComponentIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/ComponentIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/ComponentIdHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/ComponentIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ComponentIdHelper
                                    *** 120,123 ****
                                        {
                                          output.write_ulong(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 120,123 ----
                                        {
                                          output.write_ulong(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/Encoding.java gcc-4.6.0/libjava/classpath/org/omg/IOP/Encoding.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/Encoding.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/Encoding.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class Encoding
                                    *** 95,98 ****
                                          major_version = _major_version;
                                          minor_version = _minor_version;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 95,98 ----
                                          major_version = _major_version;
                                          minor_version = _minor_version;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/IOR.java gcc-4.6.0/libjava/classpath/org/omg/IOP/IOR.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/IOR.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/IOR.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 53,59 ****
                                       * The IOR is a standard structure, transferred when sending an object with
                                       * {@link org.omg.CORBA.portable.OutputStream#write_Object(org.omg.CORBA.Object)}
                                       * and receiving with {@link org.omg.CORBA.portable.InputStream#read_Object()}.
                                    !  * The stringified object references, managed by 
                                       * {@link org.omg.CORBA.ORB#string_to_object}
                                       * and {@link org.omg.CORBA.ORB#object_to_string} are also IORs, where the
                                       * initially binary data are encoded as strings using hexadecimal notation.
                                    --- 53,59 ----
                                       * The IOR is a standard structure, transferred when sending an object with
                                       * {@link org.omg.CORBA.portable.OutputStream#write_Object(org.omg.CORBA.Object)}
                                       * and receiving with {@link org.omg.CORBA.portable.InputStream#read_Object()}.
                                    !  * The stringified object references, managed by
                                       * {@link org.omg.CORBA.ORB#string_to_object}
                                       * and {@link org.omg.CORBA.ORB#object_to_string} are also IORs, where the
                                       * initially binary data are encoded as strings using hexadecimal notation.
                                    *************** public final class IOR
                                    *** 110,113 ****
                                          type_id = _type_id;
                                          profiles = _profiles;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 110,113 ----
                                          type_id = _type_id;
                                          profiles = _profiles;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/IORHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/IORHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/IORHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/IORHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class IORHelper
                                    *** 78,84 ****
                                      
                                        /**
                                         * Insert the IOR into the given Any. This method uses the IORHolder.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the IOR to insert.
                                         */
                                    --- 78,84 ----
                                      
                                        /**
                                         * Insert the IOR into the given Any. This method uses the IORHolder.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the IOR to insert.
                                         */
                                    *************** public abstract class IORHelper
                                    *** 102,108 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("IOR expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 102,108 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("IOR expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class IORHelper
                                    *** 152,155 ****
                                          for (int i0 = 0; i0 < value.profiles.length; i0++)
                                            TaggedProfileHelper.write(output, value.profiles [ i0 ]);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 152,155 ----
                                          for (int i0 = 0; i0 < value.profiles.length; i0++)
                                            TaggedProfileHelper.write(output, value.profiles [ i0 ]);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/IORHolder.java gcc-4.6.0/libjava/classpath/org/omg/IOP/IORHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/IORHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/IORHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class IORHolder
                                    *** 100,103 ****
                                        {
                                          return IORHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 100,103 ----
                                        {
                                          return IORHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/MultipleComponentProfileHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/MultipleComponentProfileHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/MultipleComponentProfileHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/MultipleComponentProfileHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class MultipleComponentP
                                    *** 65,71 ****
                                        /**
                                         * Insert the MultipleComponentProfile into the given Any. This method uses
                                         * the MultipleComponentProfileHolder.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param those the TaggedComponent[] to insert.
                                         */
                                    --- 65,71 ----
                                        /**
                                         * Insert the MultipleComponentProfile into the given Any. This method uses
                                         * the MultipleComponentProfileHolder.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param those the TaggedComponent[] to insert.
                                         */
                                    *************** public abstract class MultipleComponentP
                                    *** 89,95 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("MultipleComponentProfile expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 89,95 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("MultipleComponentProfile expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class MultipleComponentP
                                    *** 135,138 ****
                                          for (int i0 = 0; i0 < value.length; i0++)
                                            TaggedComponentHelper.write(output, value[i0]);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 135,138 ----
                                          for (int i0 = 0; i0 < value.length; i0++)
                                            TaggedComponentHelper.write(output, value[i0]);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/MultipleComponentProfileHolder.java gcc-4.6.0/libjava/classpath/org/omg/IOP/MultipleComponentProfileHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/MultipleComponentProfileHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/MultipleComponentProfileHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.Streamable
                                    *** 42,48 ****
                                      import org.omg.CORBA.portable.InputStream;
                                      import org.omg.CORBA.portable.OutputStream;
                                      
                                    !  
                                      /**
                                       * A holder for the sequence of {@link TaggedComponent}
                                       * ({@link org.omg.IOP.MultipleComponentProfileHelper}).
                                    --- 42,48 ----
                                      import org.omg.CORBA.portable.InputStream;
                                      import org.omg.CORBA.portable.OutputStream;
                                      
                                    ! 
                                      /**
                                       * A holder for the sequence of {@link TaggedComponent}
                                       * ({@link org.omg.IOP.MultipleComponentProfileHelper}).
                                    *************** public final class MultipleComponentProf
                                    *** 63,70 ****
                                         */
                                        public MultipleComponentProfileHolder()
                                        {
                                    !   }  
                                    !   
                                        /**
                                         * Create the initialised instance.
                                         * @param initialValue the array that will be assigned to
                                    --- 63,70 ----
                                         */
                                        public MultipleComponentProfileHolder()
                                        {
                                    !   }
                                    ! 
                                        /**
                                         * Create the initialised instance.
                                         * @param initialValue the array that will be assigned to
                                    *************** public final class MultipleComponentProf
                                    *** 78,84 ****
                                        /**
                                         * Read the {@link #value} array from the CDR stream.
                                         *
                                    !    * @param input the org.omg.CORBA.portable stream to read. 
                                         */
                                        public void _read(InputStream input)
                                        {
                                    --- 78,84 ----
                                        /**
                                         * Read the {@link #value} array from the CDR stream.
                                         *
                                    !    * @param input the org.omg.CORBA.portable stream to read.
                                         */
                                        public void _read(InputStream input)
                                        {
                                    *************** public final class MultipleComponentProf
                                    *** 87,100 ****
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    * 
                                    !    * @param output the org.omg.CORBA.portable stream to write. 
                                         */
                                        public void _write(OutputStream output)
                                        {
                                          MultipleComponentProfileHelper.write(output, value);
                                        }
                                    !   
                                        /**
                                         * Get the typecode of the TaggedComponent.
                                         */
                                    --- 87,100 ----
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    *
                                    !    * @param output the org.omg.CORBA.portable stream to write.
                                         */
                                        public void _write(OutputStream output)
                                        {
                                          MultipleComponentProfileHelper.write(output, value);
                                        }
                                    ! 
                                        /**
                                         * Get the typecode of the TaggedComponent.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/ProfileIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/ProfileIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/ProfileIdHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/ProfileIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ProfileIdHelper
                                    *** 120,123 ****
                                        {
                                          output.write_ulong(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 120,123 ----
                                        {
                                          output.write_ulong(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContext.java gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContext.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContext.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContext.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ServiceContext
                                    *** 92,95 ****
                                          this.context_id = a_context_id;
                                          this.context_data = a_context_data;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 92,95 ----
                                          this.context_id = a_context_id;
                                          this.context_data = a_context_data;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContextHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContextHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContextHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContextHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServiceContextHelp
                                    *** 81,87 ****
                                        /**
                                         * Insert the ServiceContext into the given Any. This method uses the
                                         * ServiceContextHolder.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the ServiceContext to insert.
                                         */
                                    --- 81,87 ----
                                        /**
                                         * Insert the ServiceContext into the given Any. This method uses the
                                         * ServiceContextHolder.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the ServiceContext to insert.
                                         */
                                    *************** public abstract class ServiceContextHelp
                                    *** 105,111 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ServiceContext expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 105,111 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ServiceContext expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class ServiceContextHelp
                                    *** 151,154 ****
                                          for (int i0 = 0; i0 < value.context_data.length; i0++)
                                            output.write_octet(value.context_data [ i0 ]);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 151,154 ----
                                          for (int i0 = 0; i0 < value.context_data.length; i0++)
                                            output.write_octet(value.context_data [ i0 ]);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContextHolder.java gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContextHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContextHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContextHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ServiceContextHolder
                                    *** 100,103 ****
                                        {
                                          return ServiceContextHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 100,103 ----
                                        {
                                          return ServiceContextHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContextListHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContextListHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContextListHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContextListHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServiceContextList
                                    *** 91,97 ****
                                          catch (ClassCastException ex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ServiceContext[] expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(ex);
                                              throw bad;
                                            }
                                    --- 91,97 ----
                                          catch (ClassCastException ex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ServiceContext[] expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(ex);
                                              throw bad;
                                            }
                                    *************** public abstract class ServiceContextList
                                    *** 138,141 ****
                                              ServiceContextHelper.write(output, value [ i ]);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 138,141 ----
                                              ServiceContextHelper.write(output, value [ i ]);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContextListHolder.java gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContextListHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceContextListHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceContextListHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ServiceContextListHol
                                    *** 100,103 ****
                                        {
                                          return ServiceContextListHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 100,103 ----
                                        {
                                          return ServiceContextListHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/ServiceIdHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/ServiceIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServiceIdHelper
                                    *** 121,124 ****
                                        {
                                          output.write_ulong(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 121,124 ----
                                        {
                                          output.write_ulong(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedComponent.java gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedComponent.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedComponent.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedComponent.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class TaggedComponent
                                    *** 90,93 ****
                                          this.tag = a_tag;
                                          this.component_data = a_component_data;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 90,93 ----
                                          this.tag = a_tag;
                                          this.component_data = a_component_data;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class TaggedComponentHel
                                    *** 66,79 ****
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                          StructMember[] members = new StructMember[2];
                                    !     
                                          TypeCode field;
                                    !     
                                          field = orb.create_alias_tc("IDL:omg.org/IOP/ComponentId:1.0",
                                                                      "ComponentId",
                                                                      orb.get_primitive_tc(TCKind.tk_ulong));
                                          members[0] = new StructMember("tag", field, null);
                                    !     
                                          field = orb.create_sequence_tc(0, orb.get_primitive_tc(TCKind.tk_octet));
                                          members[1] = new StructMember("component_data", field, null);
                                          return orb.create_struct_tc(id(), "TaggedComponent", members);
                                    --- 66,79 ----
                                        {
                                          ORB orb = OrbRestricted.Singleton;
                                          StructMember[] members = new StructMember[2];
                                    ! 
                                          TypeCode field;
                                    ! 
                                          field = orb.create_alias_tc("IDL:omg.org/IOP/ComponentId:1.0",
                                                                      "ComponentId",
                                                                      orb.get_primitive_tc(TCKind.tk_ulong));
                                          members[0] = new StructMember("tag", field, null);
                                    ! 
                                          field = orb.create_sequence_tc(0, orb.get_primitive_tc(TCKind.tk_octet));
                                          members[1] = new StructMember("component_data", field, null);
                                          return orb.create_struct_tc(id(), "TaggedComponent", members);
                                    *************** public abstract class TaggedComponentHel
                                    *** 106,112 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("TaggedComponent expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 106,112 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("TaggedComponent expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class TaggedComponentHel
                                    *** 153,156 ****
                                          output.write_long(value.component_data.length);
                                          output.write_octet_array(value.component_data, 0, value.component_data.length);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 153,156 ----
                                          output.write_long(value.component_data.length);
                                          output.write_octet_array(value.component_data, 0, value.component_data.length);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedComponentHolder.java gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedComponentHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedComponentHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedComponentHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class TaggedComponentHolder
                                    *** 61,68 ****
                                         */
                                        public TaggedComponentHolder()
                                        {
                                    !   }  
                                    !   
                                        /**
                                         * Create the initialised instance.
                                         * @param initialValue the value that will be assigned to
                                    --- 61,68 ----
                                         */
                                        public TaggedComponentHolder()
                                        {
                                    !   }
                                    ! 
                                        /**
                                         * Create the initialised instance.
                                         * @param initialValue the value that will be assigned to
                                    *************** public final class TaggedComponentHolder
                                    *** 76,82 ****
                                        /**
                                         * Fill in the {@link #value} by data from the CDR stream.
                                         *
                                    !    * @param input the org.omg.CORBA.portable stream to read. 
                                         */
                                        public void _read(InputStream input)
                                        {
                                    --- 76,82 ----
                                        /**
                                         * Fill in the {@link #value} by data from the CDR stream.
                                         *
                                    !    * @param input the org.omg.CORBA.portable stream to read.
                                         */
                                        public void _read(InputStream input)
                                        {
                                    *************** public final class TaggedComponentHolder
                                    *** 85,98 ****
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    * 
                                    !    * @param output the org.omg.CORBA.portable stream to write. 
                                         */
                                        public void _write(OutputStream output)
                                        {
                                          TaggedComponentHelper .write(output, value);
                                        }
                                    !   
                                        /**
                                         * Get the typecode of the TaggedComponent.
                                         */
                                    --- 85,98 ----
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    *
                                    !    * @param output the org.omg.CORBA.portable stream to write.
                                         */
                                        public void _write(OutputStream output)
                                        {
                                          TaggedComponentHelper .write(output, value);
                                        }
                                    ! 
                                        /**
                                         * Get the typecode of the TaggedComponent.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedProfile.java gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedProfile.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedProfile.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedProfile.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class TaggedProfile
                                    *** 107,110 ****
                                          tag = a_tag;
                                          profile_data = a_profile_data;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 107,110 ----
                                          tag = a_tag;
                                          profile_data = a_profile_data;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedProfileHelper.java gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedProfileHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedProfileHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedProfileHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class TaggedProfileHelpe
                                    *** 86,92 ****
                                        /**
                                         * Insert the TaggedProfile into the given Any. This method uses the
                                         * TaggedProfileHolder.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the TaggedProfile to insert.
                                         */
                                    --- 86,92 ----
                                        /**
                                         * Insert the TaggedProfile into the given Any. This method uses the
                                         * TaggedProfileHolder.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the TaggedProfile to insert.
                                         */
                                    *************** public abstract class TaggedProfileHelpe
                                    *** 110,116 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("TaggedProfile expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 110,116 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("TaggedProfile expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class TaggedProfileHelpe
                                    *** 183,186 ****
                                                output.write_octet(value.profile_data[i0]);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 183,186 ----
                                                output.write_octet(value.profile_data[i0]);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedProfileHolder.java gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedProfileHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/TaggedProfileHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/TaggedProfileHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class TaggedProfileHolder
                                    *** 100,103 ****
                                        {
                                          return TaggedProfileHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 100,103 ----
                                        {
                                          return TaggedProfileHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/IOP/TransactionService.java gcc-4.6.0/libjava/classpath/org/omg/IOP/TransactionService.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/IOP/TransactionService.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/IOP/TransactionService.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface TransactionService
                                    *** 53,56 ****
                                         * Specifies the TransactionService value, 0.
                                         */
                                        int value = 0;
                                    ! }
                                    \ No newline at end of file
                                    --- 53,56 ----
                                         * Specifies the TransactionService value, 0.
                                         */
                                        int value = 0;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/Messaging/SYNC_WITH_TRANSPORT.java gcc-4.6.0/libjava/classpath/org/omg/Messaging/SYNC_WITH_TRANSPORT.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/Messaging/SYNC_WITH_TRANSPORT.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/Messaging/SYNC_WITH_TRANSPORT.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface SYNC_WITH_TRANSPORT
                                    *** 71,74 ****
                                         * send a reply message.
                                         */
                                        short value = 1;
                                    ! }
                                    \ No newline at end of file
                                    --- 71,74 ----
                                         * send a reply message.
                                         */
                                        short value = 1;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/Messaging/SyncScopeHelper.java gcc-4.6.0/libjava/classpath/org/omg/Messaging/SyncScopeHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/Messaging/SyncScopeHelper.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/Messaging/SyncScopeHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class SyncScopeHelper
                                    *** 114,117 ****
                                        {
                                          ostream.write_short(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 114,117 ----
                                        {
                                          ostream.write_short(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/AdapterManagerIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/AdapterManagerIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/AdapterManagerIdHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/AdapterManagerIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class AdapterManagerIdHe
                                    *** 117,120 ****
                                        {
                                          output.write_long(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 117,120 ----
                                        {
                                          output.write_long(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/AdapterNameHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/AdapterNameHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/AdapterNameHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/AdapterNameHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 52,65 ****
                                       * Provides static helper methods for working with the adapter name helper.
                                       * The adapter name helper is an array of strings, so {@link StringSeqHelper}
                                       * could be used for io operations. The separate helper is provided anyway.
                                    !  * 
                                       * @since 1.5
                                       *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class AdapterNameHelper
                                      {
                                    !   
                                        /**
                                         * Extract the adapter name (<code>String[]</code>) from the given {@link Any}.
                                         *
                                    --- 52,65 ----
                                       * Provides static helper methods for working with the adapter name helper.
                                       * The adapter name helper is an array of strings, so {@link StringSeqHelper}
                                       * could be used for io operations. The separate helper is provided anyway.
                                    !  *
                                       * @since 1.5
                                       *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class AdapterNameHelper
                                      {
                                    ! 
                                        /**
                                         * Extract the adapter name (<code>String[]</code>) from the given {@link Any}.
                                         *
                                    *************** public abstract class AdapterNameHelper
                                    *** 75,82 ****
                                      
                                        /**
                                         * Returns the agreed Id.
                                    !    * 
                                    !    * @return "IDL:omg.org/PortableInterceptor/AdapterName:1.0", always. 
                                         */
                                        public static String id()
                                        {
                                    --- 75,82 ----
                                      
                                        /**
                                         * Returns the agreed Id.
                                    !    *
                                    !    * @return "IDL:omg.org/PortableInterceptor/AdapterName:1.0", always.
                                         */
                                        public static String id()
                                        {
                                    *************** public abstract class AdapterNameHelper
                                    *** 85,91 ****
                                      
                                        /**
                                         * Insert into the given adapter name (<code>String[]</code>) into the
                                    !    * given {@link Any}. 
                                         *
                                         * @param into the target Any.
                                         * @param that the array to insert.
                                    --- 85,91 ----
                                      
                                        /**
                                         * Insert into the given adapter name (<code>String[]</code>) into the
                                    !    * given {@link Any}.
                                         *
                                         * @param into the target Any.
                                         * @param that the array to insert.
                                    *************** public abstract class AdapterNameHelper
                                    *** 111,117 ****
                                        /**
                                         * Creates and returns a new instance of the TypeCode, corresponding the
                                         * adapter name.
                                    !    * 
                                         * @return the alias of the string sequence, named "AdapterName".
                                         */
                                        public static TypeCode type()
                                    --- 111,117 ----
                                        /**
                                         * Creates and returns a new instance of the TypeCode, corresponding the
                                         * adapter name.
                                    !    *
                                         * @return the alias of the string sequence, named "AdapterName".
                                         */
                                        public static TypeCode type()
                                    *************** public abstract class AdapterNameHelper
                                    *** 124,130 ****
                                      
                                        /**
                                         * Writes the <code>String[]</code> into the given stream.
                                    !    * 
                                         * @param output the CORBA output stream to write.
                                         * @param value the value that must be written.
                                         */
                                    --- 124,130 ----
                                      
                                        /**
                                         * Writes the <code>String[]</code> into the given stream.
                                    !    *
                                         * @param output the CORBA output stream to write.
                                         * @param value the value that must be written.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/AdapterStateHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/AdapterStateHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/AdapterStateHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/AdapterStateHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class AdapterStateHelper
                                    *** 118,121 ****
                                        {
                                          output.write_short(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 118,121 ----
                                        {
                                          output.write_short(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfo.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfo.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfo.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfo.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ClientRequestInfo exten
                                    *** 51,54 ****
                                        IDLEntity,
                                        RequestInfo
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                        IDLEntity,
                                        RequestInfo
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfoOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfoOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfoOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfoOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ClientRequestInfoOperat
                                    *** 324,327 ****
                                        void add_request_service_context(ServiceContext service_context,
                                          boolean replace
                                        );
                                    ! }
                                    \ No newline at end of file
                                    --- 324,327 ----
                                        void add_request_service_context(ServiceContext service_context,
                                          boolean replace
                                        );
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptor.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptor.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptor.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptor.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ClientRequestIntercepto
                                    *** 51,54 ****
                                        org.omg.CORBA.Object,
                                        IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                        org.omg.CORBA.Object,
                                        IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ClientRequestIntercepto
                                    *** 127,130 ****
                                         * status of this exception must be COMPLETED_NO.
                                         */
                                        void send_poll(ClientRequestInfo info);
                                    ! }
                                    \ No newline at end of file
                                    --- 127,130 ----
                                         * status of this exception must be COMPLETED_NO.
                                         */
                                        void send_poll(ClientRequestInfo info);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/Current.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/Current.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/Current.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/Current.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface Current extends Current
                                    *** 82,85 ****
                                        org.omg.CORBA.Current,
                                        IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 82,85 ----
                                        org.omg.CORBA.Current,
                                        IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/CurrentHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/CurrentHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/CurrentHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/CurrentHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class CurrentHelper
                                    *** 117,139 ****
                                              throw new BAD_PARAM("Not a Current");
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the Current. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See also OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted Current.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static Current unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * Not supported for compatibility reasons.
                                    --- 117,139 ----
                                              throw new BAD_PARAM("Not a Current");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the Current. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See also OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted Current.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static Current unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * Not supported for compatibility reasons.
                                    *************** public abstract class CurrentHelper
                                    *** 162,165 ****
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 162,165 ----
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/CurrentOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/CurrentOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/CurrentOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/CurrentOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface CurrentOperations
                                    *** 84,87 ****
                                         *
                                         */
                                        void set_slot(int slot_id, Any data) throws InvalidSlot, BAD_INV_ORDER;
                                    ! }
                                    \ No newline at end of file
                                    --- 84,87 ----
                                         *
                                         */
                                        void set_slot(int slot_id, Any data) throws InvalidSlot, BAD_INV_ORDER;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ForwardRequest.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ForwardRequest.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ForwardRequest.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ForwardRequest.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ForwardRequest extend
                                    *** 94,97 ****
                                        {
                                          this.forward = a_forward;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 94,97 ----
                                        {
                                          this.forward = a_forward;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ForwardRequestHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ForwardRequestHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ForwardRequestHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ForwardRequestHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ForwardRequestHelp
                                    *** 75,81 ****
                                        /**
                                         * Insert the ForwardRequest into the given Any. This method uses the
                                         * ForwardRequestHolder.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the ForwardRequest to insert.
                                         */
                                    --- 75,81 ----
                                        /**
                                         * Insert the ForwardRequest into the given Any. This method uses the
                                         * ForwardRequestHolder.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the ForwardRequest to insert.
                                         */
                                    *************** public abstract class ForwardRequestHelp
                                    *** 99,105 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION(id() + " expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 99,105 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION(id() + " expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class ForwardRequestHelp
                                    *** 143,146 ****
                                          output.write_string(id());
                                          output.write_Object(value.forward);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 143,146 ----
                                          output.write_string(id());
                                          output.write_Object(value.forward);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInfo.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInfo.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInfo.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInfo.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface IORInfo extends IORInfo
                                    *** 55,58 ****
                                        org.omg.CORBA.Object,
                                        Serializable
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 55,58 ----
                                        org.omg.CORBA.Object,
                                        Serializable
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInfoOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInfoOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInfoOperations.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInfoOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface IORInfoOperations
                                    *** 86,138 ****
                                         */
                                        Policy get_effective_policy(int policy_type);
                                      
                                    !   /** 
                                         * Get the adapter template that is associated with the object POA.
                                         * The template is also a reference factory and can produce the new object
                                         * references.
                                    !    * 
                                         * @since 1.5
                                         */
                                        public ObjectReferenceTemplate adapter_template();
                                    !   
                                        /**
                                    !    * The current_factory is the factory, used by the adapter to create 
                                    !    * object references. This factory is initially the same as the 
                                         * adapter_template.
                                    !    * 
                                         * @since 1.5
                                         */
                                        public ObjectReferenceFactory current_factory();
                                      
                                        /**
                                         * Set the current object reference factory, used to produce the new objects.
                                    !    * 
                                    !    * The current factory can only be set during the call to the 
                                         * {@link IORInterceptor_3_0Operations#components_established(IORInfo)}.
                                    !    * 
                                         * @since 1.5
                                         */
                                        public void current_factory(ObjectReferenceFactory factory);
                                      
                                        /**
                                    !    * Get the POA manager Id. 
                                    !    * 
                                         * @return Id that uniquely refers to the poa manager, used by this POA.
                                    !    * 
                                    !    * @since 1.5 
                                    !    * 
                                         * @see IORInterceptor_3_0Operations#adapter_manager_state_changed
                                         */
                                        public int manager_id();
                                    !   
                                        /**
                                         * Get the state of the adapter manager.
                                    !    * 
                                         * @since 1.5
                                    !    * 
                                         * @return the state of the adapters to that the IOR being created belongs.
                                         * One of the {@link HOLDING#value}, {@link DISCARDING#value},
                                         * {@link INACTIVE#value} or {@link NON_EXISTENT#value}.
                                         */
                                    !   short state(); 
                                    ! }
                                    \ No newline at end of file
                                    --- 86,138 ----
                                         */
                                        Policy get_effective_policy(int policy_type);
                                      
                                    !   /**
                                         * Get the adapter template that is associated with the object POA.
                                         * The template is also a reference factory and can produce the new object
                                         * references.
                                    !    *
                                         * @since 1.5
                                         */
                                        public ObjectReferenceTemplate adapter_template();
                                    ! 
                                        /**
                                    !    * The current_factory is the factory, used by the adapter to create
                                    !    * object references. This factory is initially the same as the
                                         * adapter_template.
                                    !    *
                                         * @since 1.5
                                         */
                                        public ObjectReferenceFactory current_factory();
                                      
                                        /**
                                         * Set the current object reference factory, used to produce the new objects.
                                    !    *
                                    !    * The current factory can only be set during the call to the
                                         * {@link IORInterceptor_3_0Operations#components_established(IORInfo)}.
                                    !    *
                                         * @since 1.5
                                         */
                                        public void current_factory(ObjectReferenceFactory factory);
                                      
                                        /**
                                    !    * Get the POA manager Id.
                                    !    *
                                         * @return Id that uniquely refers to the poa manager, used by this POA.
                                    !    *
                                    !    * @since 1.5
                                    !    *
                                         * @see IORInterceptor_3_0Operations#adapter_manager_state_changed
                                         */
                                        public int manager_id();
                                    ! 
                                        /**
                                         * Get the state of the adapter manager.
                                    !    *
                                         * @since 1.5
                                    !    *
                                         * @return the state of the adapters to that the IOR being created belongs.
                                         * One of the {@link HOLDING#value}, {@link DISCARDING#value},
                                         * {@link INACTIVE#value} or {@link NON_EXISTENT#value}.
                                         */
                                    !   short state();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface IORInterceptor extends 
                                    *** 58,61 ****
                                        org.omg.CORBA.Object,
                                        Serializable
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 58,61 ----
                                        org.omg.CORBA.Object,
                                        Serializable
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptorOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptorOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptorOperations.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptorOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface IORInterceptorOperation
                                    *** 52,58 ****
                                         * to add additional tags to the IOR being created.
                                         *
                                         * @param info the interface class providing methods to insert additional tags
                                    !    * into IOR being constructed. 
                                         */
                                        public void establish_components(IORInfo info);
                                    ! }
                                    \ No newline at end of file
                                    --- 52,58 ----
                                         * to add additional tags to the IOR being created.
                                         *
                                         * @param info the interface class providing methods to insert additional tags
                                    !    * into IOR being constructed.
                                         */
                                        public void establish_components(IORInfo info);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 44,59 ****
                                       * The IORInterceptor_3_0 adds to {@link Interceptor} functionality, available
                                       * since CORBA 3.0. These new operations are defined separately in
                                       * {@link IORInterceptor_3_0Operations}.
                                    !  * 
                                    !  * IORInterceptor_3_0 is registered exactly in the same way as the 
                                       * {@link IORInterceptor}. The ORB calls the additional methods to all
                                       * IOR interceptors that implement this extended interface.
                                    !  * 
                                       * @since 1.5
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public interface IORInterceptor_3_0
                                        extends IORInterceptor_3_0Operations, IDLEntity, IORInterceptor
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 44,59 ----
                                       * The IORInterceptor_3_0 adds to {@link Interceptor} functionality, available
                                       * since CORBA 3.0. These new operations are defined separately in
                                       * {@link IORInterceptor_3_0Operations}.
                                    !  *
                                    !  * IORInterceptor_3_0 is registered exactly in the same way as the
                                       * {@link IORInterceptor}. The ORB calls the additional methods to all
                                       * IOR interceptors that implement this extended interface.
                                    !  *
                                       * @since 1.5
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public interface IORInterceptor_3_0
                                        extends IORInterceptor_3_0Operations, IDLEntity, IORInterceptor
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 52,60 ****
                                      
                                      /**
                                       * The helper operations for the CORBA object {@link IORInterceptor_3_0}.
                                    !  * 
                                    !  * @since 1.5 
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class IORInterceptor_3_0Helper
                                    --- 52,60 ----
                                      
                                      /**
                                       * The helper operations for the CORBA object {@link IORInterceptor_3_0}.
                                    !  *
                                    !  * @since 1.5
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class IORInterceptor_3_0Helper
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 64,76 ****
                                         */
                                        public static TypeCode type()
                                        {
                                    !     return OrbRestricted.Singleton.create_interface_tc(id(), 
                                            "IORInterceptor_3_0");
                                        }
                                      
                                        /**
                                         * Insert the IORInterceptor_3_0 into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the IORInterceptor_3_0 to insert.
                                         */
                                    --- 64,76 ----
                                         */
                                        public static TypeCode type()
                                        {
                                    !     return OrbRestricted.Singleton.create_interface_tc(id(),
                                            "IORInterceptor_3_0");
                                        }
                                      
                                        /**
                                         * Insert the IORInterceptor_3_0 into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the IORInterceptor_3_0 to insert.
                                         */
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 81,87 ****
                                      
                                        /**
                                         * Extract the IORInterceptor_3_0 from given Any.
                                    !    * 
                                         * @throws BAD_OPERATION if the passed Any does not contain
                                         * IORInterceptor_3_0.
                                         */
                                    --- 81,87 ----
                                      
                                        /**
                                         * Extract the IORInterceptor_3_0 from given Any.
                                    !    *
                                         * @throws BAD_OPERATION if the passed Any does not contain
                                         * IORInterceptor_3_0.
                                         */
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 89,95 ****
                                        {
                                          try
                                            {
                                    !         IORInterceptor_3_0Holder holder = (IORInterceptor_3_0Holder) 
                                                any.extract_Streamable();
                                              return holder.value;
                                            }
                                    --- 89,95 ----
                                        {
                                          try
                                            {
                                    !         IORInterceptor_3_0Holder holder = (IORInterceptor_3_0Holder)
                                                any.extract_Streamable();
                                              return holder.value;
                                            }
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 104,110 ****
                                      
                                        /**
                                         * Get the IORInterceptor_3_0 repository id.
                                    !    * 
                                         * @return "IDL:omg.org/PortableInterceptor/IORInterceptor_3_0:1.0", always.
                                         */
                                        public static String id()
                                    --- 104,110 ----
                                      
                                        /**
                                         * Get the IORInterceptor_3_0 repository id.
                                    !    *
                                         * @return "IDL:omg.org/PortableInterceptor/IORInterceptor_3_0:1.0", always.
                                         */
                                        public static String id()
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 117,123 ****
                                         * different java type, create an instance of the _IORInterceptor_3_0Stub,
                                         * using the same delegate, as for the passed parameter. Hence, unlike java
                                         * type cast, this method may return a different object, than has been passed.
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a IORInterceptor_3_0.
                                    --- 117,123 ----
                                         * different java type, create an instance of the _IORInterceptor_3_0Stub,
                                         * using the same delegate, as for the passed parameter. Hence, unlike java
                                         * type cast, this method may return a different object, than has been passed.
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a IORInterceptor_3_0.
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 136,152 ****
                                              return new _IORInterceptor_3_0Stub(delegate);
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the passed object into the IORInterceptor_3_0. No type-checking is
                                         * performed to verify that the object actually supports the requested type.
                                         * The {@link BAD_OPERATION} will be thrown if unsupported operations are
                                         * invoked on the new returned reference, but no failure is expected at the
                                    !    * time of the unchecked_narrow. For instance, the narrowing of the 
                                         * remote instance of the {@link IORInterceptor} will work as long as only the
                                         * methods, inherited from this parent, are invoked.
                                    !    * 
                                    !    * 
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a IORInterceptor_3_0.
                                    --- 136,152 ----
                                              return new _IORInterceptor_3_0Stub(delegate);
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the passed object into the IORInterceptor_3_0. No type-checking is
                                         * performed to verify that the object actually supports the requested type.
                                         * The {@link BAD_OPERATION} will be thrown if unsupported operations are
                                         * invoked on the new returned reference, but no failure is expected at the
                                    !    * time of the unchecked_narrow. For instance, the narrowing of the
                                         * remote instance of the {@link IORInterceptor} will work as long as only the
                                         * methods, inherited from this parent, are invoked.
                                    !    *
                                    !    *
                                         * @param obj the object to narrow.
                                         * @return narrowed instance.
                                         * @throws BAD_PARAM if the passed object is not a IORInterceptor_3_0.
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 163,174 ****
                                              return new _IORInterceptor_3_0Stub(delegate);
                                            }
                                        }
                                    !   
                                      
                                        /**
                                         * Read the IORInterceptor_3_0 from the CDR intput stream (IOR profile
                                         * expected).
                                    !    * 
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                         */
                                        public static IORInterceptor_3_0 read(InputStream input)
                                    --- 163,174 ----
                                              return new _IORInterceptor_3_0Stub(delegate);
                                            }
                                        }
                                    ! 
                                      
                                        /**
                                         * Read the IORInterceptor_3_0 from the CDR intput stream (IOR profile
                                         * expected).
                                    !    *
                                         * @param input a org.omg.CORBA.portable stream to read from.
                                         */
                                        public static IORInterceptor_3_0 read(InputStream input)
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 178,184 ****
                                      
                                        /**
                                         * Write the IORInterceptor_3_0 to the CDR output stream (as IOR profile).
                                    !    * 
                                         * @param output a org.omg.CORBA.portable stream stream to write into.
                                         * @param value a value to write.
                                         */
                                    --- 178,184 ----
                                      
                                        /**
                                         * Write the IORInterceptor_3_0 to the CDR output stream (as IOR profile).
                                    !    *
                                         * @param output a org.omg.CORBA.portable stream stream to write into.
                                         * @param value a value to write.
                                         */
                                    *************** public abstract class IORInterceptor_3_0
                                    *** 186,189 ****
                                        {
                                          output.write_Object(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 186,189 ----
                                        {
                                          output.write_Object(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.Streamable
                                    *** 44,52 ****
                                      
                                      /**
                                       * A holder for the object {@link IORInterceptor_3_0}.
                                    !  * 
                                       * @since 1.5
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public final class IORInterceptor_3_0Holder
                                    --- 44,52 ----
                                      
                                      /**
                                       * A holder for the object {@link IORInterceptor_3_0}.
                                    !  *
                                       * @since 1.5
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public final class IORInterceptor_3_0Holder
                                    *************** public final class IORInterceptor_3_0Hol
                                    *** 67,73 ****
                                      
                                        /**
                                         * Create the initialised instance.
                                    !    * 
                                         * @param initialValue the value that will be assigned to the
                                         * <code>value</code> field.
                                         */
                                    --- 67,73 ----
                                      
                                        /**
                                         * Create the initialised instance.
                                    !    *
                                         * @param initialValue the value that will be assigned to the
                                         * <code>value</code> field.
                                         */
                                    *************** public final class IORInterceptor_3_0Hol
                                    *** 78,84 ****
                                      
                                        /**
                                         * Fill in the {@link #value} by data from the CDR stream.
                                    !    * 
                                         * @param input the org.omg.CORBA.portable stream to read.
                                         */
                                        public void _read(InputStream input)
                                    --- 78,84 ----
                                      
                                        /**
                                         * Fill in the {@link #value} by data from the CDR stream.
                                    !    *
                                         * @param input the org.omg.CORBA.portable stream to read.
                                         */
                                        public void _read(InputStream input)
                                    *************** public final class IORInterceptor_3_0Hol
                                    *** 88,94 ****
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    * 
                                         * @param output the org.omg.CORBA.portable stream to write.
                                         */
                                        public void _write(OutputStream output)
                                    --- 88,94 ----
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    *
                                         * @param output the org.omg.CORBA.portable stream to write.
                                         */
                                        public void _write(OutputStream output)
                                    *************** public final class IORInterceptor_3_0Hol
                                    *** 103,106 ****
                                        {
                                          return IORInterceptor_3_0Helper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 103,106 ----
                                        {
                                          return IORInterceptor_3_0Helper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.omg.PortableInterceptor;
                                    *** 40,48 ****
                                      
                                      /**
                                       * Defines the operations, applicable to the IORInterceptor_3_0.
                                    !  * 
                                    !  * @since 1.5 
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public interface IORInterceptor_3_0Operations
                                    --- 40,48 ----
                                      
                                      /**
                                       * Defines the operations, applicable to the IORInterceptor_3_0.
                                    !  *
                                    !  * @since 1.5
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public interface IORInterceptor_3_0Operations
                                    *************** public interface IORInterceptor_3_0Opera
                                    *** 50,61 ****
                                      {
                                        /**
                                         * This method is invoked on all registered IORInterceptor_3_0 instances when
                                    !    * the state of the adapter manager changes. 
                                    !    * 
                                         * @param adapterManagerId the Id of the adapter manager that has changed the
                                    !    * state. The same value is returned by 
                                         * {@link IORInfoOperations#manager_id()}.
                                    !    * 
                                         * @param adapterState the new state of the adapter manager, one of the
                                         * {@link HOLDING#value}, {@link DISCARDING#value}, {@link INACTIVE#value}
                                         * or {@link NON_EXISTENT#value}.
                                    --- 50,61 ----
                                      {
                                        /**
                                         * This method is invoked on all registered IORInterceptor_3_0 instances when
                                    !    * the state of the adapter manager changes.
                                    !    *
                                         * @param adapterManagerId the Id of the adapter manager that has changed the
                                    !    * state. The same value is returned by
                                         * {@link IORInfoOperations#manager_id()}.
                                    !    *
                                         * @param adapterState the new state of the adapter manager, one of the
                                         * {@link HOLDING#value}, {@link DISCARDING#value}, {@link INACTIVE#value}
                                         * or {@link NON_EXISTENT#value}.
                                    *************** public interface IORInterceptor_3_0Opera
                                    *** 69,75 ****
                                         * is when POA is destroyed. In this case, the method is invoked passing the
                                         * single element array witn the reference template of the POA being destroyed
                                         * and the {@link NON_EXISTENT#value} state.
                                    !    * 
                                         * @param adapters identifies the object adapters that have changed they
                                         * state.
                                         * @param adaptersState the new state of the adapters, one of the
                                    --- 69,75 ----
                                         * is when POA is destroyed. In this case, the method is invoked passing the
                                         * single element array witn the reference template of the POA being destroyed
                                         * and the {@link NON_EXISTENT#value} state.
                                    !    *
                                         * @param adapters identifies the object adapters that have changed they
                                         * state.
                                         * @param adaptersState the new state of the adapters, one of the
                                    *************** public interface IORInterceptor_3_0Opera
                                    *** 87,90 ****
                                         * {@link IORInfo#current_factory(ObjectReferenceFactory )}.
                                         */
                                        void components_established(IORInfo info);
                                    ! }
                                    \ No newline at end of file
                                    --- 87,90 ----
                                         * {@link IORInfo#current_factory(ObjectReferenceFactory )}.
                                         */
                                        void components_established(IORInfo info);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/Interceptor.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/Interceptor.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/Interceptor.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/Interceptor.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface Interceptor extends Int
                                    *** 55,58 ****
                                        Object,
                                        IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 55,58 ----
                                        Object,
                                        IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/InterceptorOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/InterceptorOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/InterceptorOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/InterceptorOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface InterceptorOperations
                                    *** 74,77 ****
                                         * @return the name of the interceptor.
                                         */
                                        String name();
                                    ! }
                                    \ No newline at end of file
                                    --- 74,77 ----
                                         * @return the name of the interceptor.
                                         */
                                        String name();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/InvalidSlot.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/InvalidSlot.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/InvalidSlot.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/InvalidSlot.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class InvalidSlot extends U
                                    *** 73,76 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 73,76 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/InvalidSlotHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/InvalidSlotHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/InvalidSlotHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/InvalidSlotHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class InvalidSlotHelper
                                    *** 99,105 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InvalidSlot expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 99,105 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InvalidSlot expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class InvalidSlotHelper
                                    *** 140,143 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 140,143 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/LOCATION_FORWARD.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/LOCATION_FORWARD.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/LOCATION_FORWARD.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/LOCATION_FORWARD.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface LOCATION_FORWARD
                                    *** 51,54 ****
                                         * Specifies the LOCATION_FORWARD value, 3.
                                         */
                                        short value = 3;
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                         * Specifies the LOCATION_FORWARD value, 3.
                                         */
                                        short value = 3;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBIdHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 50,56 ****
                                       * The ORB Id is defined in OMG specification just as a narrow (not wide)
                                       * string. As such, the ORB Id needs no helper, but one is included in
                                       * the API anyway.
                                    !  * 
                                       * @since 1.5
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                    --- 50,56 ----
                                       * The ORB Id is defined in OMG specification just as a narrow (not wide)
                                       * string. As such, the ORB Id needs no helper, but one is included in
                                       * the API anyway.
                                    !  *
                                       * @since 1.5
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                    *************** public abstract class ORBIdHelper
                                    *** 116,119 ****
                                        {
                                          output.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 116,119 ----
                                        {
                                          output.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfo.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfo.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfo.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfo.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ORBInitInfo extends ORB
                                    *** 51,54 ****
                                        Object,
                                        IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                        Object,
                                        IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ORBInitInfoOperations
                                    *** 69,77 ****
                                         * interceptor implements the extended {@link IORInterceptor_3_0} interface,
                                         * ORB will call its additional methods, defined in the
                                         * {@link IORInterceptor_3_0Operations}.
                                    !    * 
                                         * @param interceptor the interceptor to register.
                                    !    * 
                                         * @throws DuplicateName if the interceptor name is not an empty string and an
                                         * interceptor with this name is already registered with the ORB being
                                         * created.
                                    --- 69,77 ----
                                         * interceptor implements the extended {@link IORInterceptor_3_0} interface,
                                         * ORB will call its additional methods, defined in the
                                         * {@link IORInterceptor_3_0Operations}.
                                    !    *
                                         * @param interceptor the interceptor to register.
                                    !    *
                                         * @throws DuplicateName if the interceptor name is not an empty string and an
                                         * interceptor with this name is already registered with the ORB being
                                         * created.
                                    *************** public interface ORBInitInfoOperations
                                    *** 171,174 ****
                                         * the registered factory in this ORB.
                                         */
                                        void register_policy_factory(int policy_type, PolicyFactory policy_factory);
                                    ! }
                                    \ No newline at end of file
                                    --- 171,174 ----
                                         * the registered factory in this ORB.
                                         */
                                        void register_policy_factory(int policy_type, PolicyFactory policy_factory);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class DuplicateName extends
                                    *** 98,101 ****
                                        {
                                          this.name = a_name;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 98,101 ----
                                        {
                                          this.name = a_name;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class DuplicateNameHelpe
                                    *** 75,81 ****
                                        /**
                                         * Insert the DuplicateName into the given Any. This method uses the
                                         * DuplicateNameHolder.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the DuplicateName to insert.
                                         */
                                    --- 75,81 ----
                                        /**
                                         * Insert the DuplicateName into the given Any. This method uses the
                                         * DuplicateNameHolder.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the DuplicateName to insert.
                                         */
                                    *************** public abstract class DuplicateNameHelpe
                                    *** 99,105 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("DuplicateName expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 99,105 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("DuplicateName expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class InvalidName extends U
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class InvalidNameHelper
                                    *** 69,75 ****
                                      
                                        /**
                                         * Insert the InvalidName into the given Any.
                                    !    * 
                                         * @param any the Any to insert into.
                                         * @param that the InvalidName to insert.
                                         */
                                    --- 69,75 ----
                                      
                                        /**
                                         * Insert the InvalidName into the given Any.
                                    !    *
                                         * @param any the Any to insert into.
                                         * @param that the InvalidName to insert.
                                         */
                                    *************** public abstract class InvalidNameHelper
                                    *** 94,100 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InvalidName expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 94,100 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InvalidName expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class InvalidNameHelper
                                    *** 135,138 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 135,138 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ObjectIdHelper
                                    *** 114,117 ****
                                        {
                                          output.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 114,117 ----
                                        {
                                          output.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitializer.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitializer.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitializer.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitializer.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ORBInitializer extends 
                                    *** 129,132 ****
                                        Object,
                                        IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 129,132 ----
                                        Object,
                                        IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitializerOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitializerOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ORBInitializerOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ORBInitializerOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ORBInitializerOperation
                                    *** 70,73 ****
                                         * @see ORBInitInfoOperations#register_initial_reference
                                         */
                                        void post_init(ORBInitInfo info);
                                    ! }
                                    \ No newline at end of file
                                    --- 70,73 ----
                                         * @see ORBInitInfoOperations#register_initial_reference
                                         */
                                        void post_init(ORBInitInfo info);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectIdHelper.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 51,58 ****
                                      /**
                                       * The Object Id of this package is defined in OMG specification as a byte array.
                                       * As such, the Object Id needs no helper, but one is included in the API anyway.
                                    !  * 
                                    !  * @since 1.5 
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                    --- 51,58 ----
                                      /**
                                       * The Object Id of this package is defined in OMG specification as a byte array.
                                       * As such, the Object Id needs no helper, but one is included in the API anyway.
                                    !  *
                                    !  * @since 1.5
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                    *************** public abstract class ObjectIdHelper
                                    *** 72,78 ****
                                      
                                        /**
                                         * Extract the Object Id from Any.
                                    !    * 
                                         * @param a the Any to extract from.
                                         */
                                        public static byte[] extract(Any a)
                                    --- 72,78 ----
                                      
                                        /**
                                         * Extract the Object Id from Any.
                                    !    *
                                         * @param a the Any to extract from.
                                         */
                                        public static byte[] extract(Any a)
                                    *************** public abstract class ObjectIdHelper
                                    *** 118,121 ****
                                        {
                                          OctetSeqHelper.write(output, value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 118,121 ----
                                        {
                                          OctetSeqHelper.write(output, value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactory.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactory.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactory.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactory.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ObjectReferenceFactory
                                    *** 60,75 ****
                                         * activated. The derived {@link ObjectReferenceTemplate} interface assumes
                                         * the object must be connected to the POA that is specific to that
                                         * template (name can be obtained).
                                    !    * 
                                    !    * If the object with this objectId already exists in the given context, it 
                                         * is found and returned; a new object is <i>not</i> created.
                                    !    * 
                                         * @param repositoryId the repository id of the object being created, defines
                                         * the type of the object.
                                    !    * 
                                         * @param objectId the byte array, defining the identity of the object.
                                    !    * 
                                         * @return The created corba object.
                                         */
                                        Object make_object(String repositoryId, byte[] objectId);
                                    ! }
                                    \ No newline at end of file
                                    --- 60,75 ----
                                         * activated. The derived {@link ObjectReferenceTemplate} interface assumes
                                         * the object must be connected to the POA that is specific to that
                                         * template (name can be obtained).
                                    !    *
                                    !    * If the object with this objectId already exists in the given context, it
                                         * is found and returned; a new object is <i>not</i> created.
                                    !    *
                                         * @param repositoryId the repository id of the object being created, defines
                                         * the type of the object.
                                    !    *
                                         * @param objectId the byte array, defining the identity of the object.
                                    !    *
                                         * @return The created corba object.
                                         */
                                        Object make_object(String repositoryId, byte[] objectId);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ObjectReferenceFac
                                    *** 61,67 ****
                                      {
                                        /**
                                         * Get the type code of the {@link ObjectReferenceFactory}.
                                    !    * 
                                         * @return value type code with the agreed id, named "ObjectReferenceFactory",
                                         *         abstract, no members, no base type.
                                         */
                                    --- 61,67 ----
                                      {
                                        /**
                                         * Get the type code of the {@link ObjectReferenceFactory}.
                                    !    *
                                         * @return value type code with the agreed id, named "ObjectReferenceFactory",
                                         *         abstract, no members, no base type.
                                         */
                                    *************** public abstract class ObjectReferenceFac
                                    *** 139,142 ****
                                        {
                                          Vio.write(output, value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 139,142 ----
                                        {
                                          Vio.write(output, value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ObjectReferenceFactor
                                    *** 102,105 ****
                                        {
                                          return ObjectReferenceFactoryHelper.type();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 102,105 ----
                                        {
                                          return ObjectReferenceFactoryHelper.type();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplate.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplate.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplate.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplate.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ObjectReferenceTemplate
                                    *** 75,78 ****
                                         * @return the server id, represented in the form of string.
                                         */
                                        String server_id();
                                    ! }
                                    \ No newline at end of file
                                    --- 75,78 ----
                                         * @return the server id, represented in the form of string.
                                         */
                                        String server_id();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ObjectReferenceTem
                                    *** 59,65 ****
                                      {
                                        /**
                                         * Get the type code of the {@link ObjectReferenceTemplate}.
                                    !    * 
                                         * @return value type type code, named ObjectReferenceTemplate, no members,
                                         *         abstract.
                                         */
                                    --- 59,65 ----
                                      {
                                        /**
                                         * Get the type code of the {@link ObjectReferenceTemplate}.
                                    !    *
                                         * @return value type type code, named ObjectReferenceTemplate, no members,
                                         *         abstract.
                                         */
                                    *************** public abstract class ObjectReferenceTem
                                    *** 133,136 ****
                                          ((org.omg.CORBA_2_3.portable.OutputStream) output).
                                            write_value(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 133,136 ----
                                          ((org.omg.CORBA_2_3.portable.OutputStream) output).
                                            write_value(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ObjectReferenceTempla
                                    *** 61,68 ****
                                         */
                                        public ObjectReferenceTemplateHolder()
                                        {
                                    !   }  
                                    !   
                                        /**
                                         * Create the initialised instance.
                                         * @param initialValue the value that will be assigned to
                                    --- 61,68 ----
                                         */
                                        public ObjectReferenceTemplateHolder()
                                        {
                                    !   }
                                    ! 
                                        /**
                                         * Create the initialised instance.
                                         * @param initialValue the value that will be assigned to
                                    *************** public final class ObjectReferenceTempla
                                    *** 76,82 ****
                                        /**
                                         * Fill in the {@link #value} by data from the CDR stream.
                                         *
                                    !    * @param input the org.omg.CORBA.portable stream to read. 
                                         */
                                        public void _read(InputStream input)
                                        {
                                    --- 76,82 ----
                                        /**
                                         * Fill in the {@link #value} by data from the CDR stream.
                                         *
                                    !    * @param input the org.omg.CORBA.portable stream to read.
                                         */
                                        public void _read(InputStream input)
                                        {
                                    *************** public final class ObjectReferenceTempla
                                    *** 85,98 ****
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    * 
                                    !    * @param output the org.omg.CORBA.portable stream to write. 
                                         */
                                        public void _write(OutputStream output)
                                        {
                                          ObjectReferenceTemplateHelper .write(output, value);
                                        }
                                    !   
                                        /**
                                         * Get the typecode of the ObjectReferenceTemplate.
                                         */
                                    --- 85,98 ----
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    *
                                    !    * @param output the org.omg.CORBA.portable stream to write.
                                         */
                                        public void _write(OutputStream output)
                                        {
                                          ObjectReferenceTemplateHelper .write(output, value);
                                        }
                                    ! 
                                        /**
                                         * Get the typecode of the ObjectReferenceTemplate.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.Streamable
                                    *** 51,57 ****
                                      /**
                                       * Provides static helper methods for working with the array of object reference
                                       * templates.
                                    !  * 
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class ObjectReferenceTemplateSeqHelper
                                    --- 51,57 ----
                                      /**
                                       * Provides static helper methods for working with the array of object reference
                                       * templates.
                                    !  *
                                       * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public abstract class ObjectReferenceTemplateSeqHelper
                                    *************** public abstract class ObjectReferenceTem
                                    *** 61,71 ****
                                         * {@link Any}. This implementation expects the {@link Any} to hold the
                                         * instance of {@link ObjectReferenceTemplateSeqHolder} that is returned by
                                         * {@link Any#extract_Streamable() }.
                                    !    * 
                                         * @param a an Any to extract the array from.
                                    !    * 
                                         * @return the extracted array.
                                    !    * 
                                         * @throws BAD_OPERATION if the Any contains something other than the the
                                         * {@link ObjectReferenceTemplateSeqHolder}.
                                         */
                                    --- 61,71 ----
                                         * {@link Any}. This implementation expects the {@link Any} to hold the
                                         * instance of {@link ObjectReferenceTemplateSeqHolder} that is returned by
                                         * {@link Any#extract_Streamable() }.
                                    !    *
                                         * @param a an Any to extract the array from.
                                    !    *
                                         * @return the extracted array.
                                    !    *
                                         * @throws BAD_OPERATION if the Any contains something other than the the
                                         * {@link ObjectReferenceTemplateSeqHolder}.
                                         */
                                    *************** public abstract class ObjectReferenceTem
                                    *** 73,79 ****
                                        {
                                          try
                                            {
                                    !         ObjectReferenceTemplateSeqHolder h = (ObjectReferenceTemplateSeqHolder) 
                                                a.extract_Streamable();
                                              return h.value;
                                            }
                                    --- 73,79 ----
                                        {
                                          try
                                            {
                                    !         ObjectReferenceTemplateSeqHolder h = (ObjectReferenceTemplateSeqHolder)
                                                a.extract_Streamable();
                                              return h.value;
                                            }
                                    *************** public abstract class ObjectReferenceTem
                                    *** 89,95 ****
                                      
                                        /**
                                         * Returns the object reference template sequence repository Id.
                                    !    * 
                                         * @return "IDL:omg.org/PortableInterceptor/ObjectReferenceTemplateSeq:1.0",
                                         * always.
                                         */
                                    --- 89,95 ----
                                      
                                        /**
                                         * Returns the object reference template sequence repository Id.
                                    !    *
                                         * @return "IDL:omg.org/PortableInterceptor/ObjectReferenceTemplateSeq:1.0",
                                         * always.
                                         */
                                    *************** public abstract class ObjectReferenceTem
                                    *** 103,115 ****
                                         * given {@link Any}. This implementation first creates a
                                         * {@link ObjectReferenceTemplateSeqHolder} and then calls
                                         * {@link Any#insert_Streamable(Streamable)}.
                                    !    * 
                                         * @param into the target Any.
                                         * @param that the array to insert.
                                         */
                                        public static void insert(Any into, ObjectReferenceTemplate[] that)
                                        {
                                    !     ObjectReferenceTemplateSeqHolder holder = 
                                            new ObjectReferenceTemplateSeqHolder(that);
                                          into.insert_Streamable(holder);
                                        }
                                    --- 103,115 ----
                                         * given {@link Any}. This implementation first creates a
                                         * {@link ObjectReferenceTemplateSeqHolder} and then calls
                                         * {@link Any#insert_Streamable(Streamable)}.
                                    !    *
                                         * @param into the target Any.
                                         * @param that the array to insert.
                                         */
                                        public static void insert(Any into, ObjectReferenceTemplate[] that)
                                        {
                                    !     ObjectReferenceTemplateSeqHolder holder =
                                            new ObjectReferenceTemplateSeqHolder(that);
                                          into.insert_Streamable(holder);
                                        }
                                    *************** public abstract class ObjectReferenceTem
                                    *** 117,129 ****
                                        /**
                                         * Reads the <code>ObjectReferenceTemplate[]</code> from the CORBA input
                                         * stream.
                                    !    * 
                                         * @param input the CORBA (not java.io) stream to read from.
                                         * @return the value from the stream.
                                         */
                                        public static ObjectReferenceTemplate[] read(InputStream input)
                                        {
                                    !     ObjectReferenceTemplate[] value = 
                                            new ObjectReferenceTemplate[input.read_long()];
                                          for (int i = 0; i < value.length; i++)
                                            value[i] = ObjectReferenceTemplateHelper.read(input);
                                    --- 117,129 ----
                                        /**
                                         * Reads the <code>ObjectReferenceTemplate[]</code> from the CORBA input
                                         * stream.
                                    !    *
                                         * @param input the CORBA (not java.io) stream to read from.
                                         * @return the value from the stream.
                                         */
                                        public static ObjectReferenceTemplate[] read(InputStream input)
                                        {
                                    !     ObjectReferenceTemplate[] value =
                                            new ObjectReferenceTemplate[input.read_long()];
                                          for (int i = 0; i < value.length; i++)
                                            value[i] = ObjectReferenceTemplateHelper.read(input);
                                    *************** public abstract class ObjectReferenceTem
                                    *** 146,152 ****
                                      
                                        /**
                                         * Writes the <code>ObjectReferenceTemplate[]</code> into the given stream.
                                    !    * 
                                         * @param output the CORBA (not java.io) output stream to write.
                                         * @param value the value that must be written.
                                         */
                                    --- 146,152 ----
                                      
                                        /**
                                         * Writes the <code>ObjectReferenceTemplate[]</code> into the given stream.
                                    !    *
                                         * @param output the CORBA (not java.io) output stream to write.
                                         * @param value the value that must be written.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 44,50 ****
                                      
                                      /**
                                       * A holder for the array of {@link ObjectReferenceTemplate}s.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public final class ObjectReferenceTemplateSeqHolder
                                    --- 44,50 ----
                                      
                                      /**
                                       * A holder for the array of {@link ObjectReferenceTemplate}s.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public final class ObjectReferenceTemplateSeqHolder
                                    *************** public final class ObjectReferenceTempla
                                    *** 65,71 ****
                                      
                                        /**
                                         * Create the initialised instance.
                                    !    * 
                                         * @param initialValue the value that will be assigned to the
                                         * <code>value</code> field.
                                         */
                                    --- 65,71 ----
                                      
                                        /**
                                         * Create the initialised instance.
                                    !    *
                                         * @param initialValue the value that will be assigned to the
                                         * <code>value</code> field.
                                         */
                                    *************** public final class ObjectReferenceTempla
                                    *** 76,82 ****
                                      
                                        /**
                                         * Fill in the {@link #value} by data from the CDR stream.
                                    !    * 
                                         * @param input the org.omg.CORBA.portable stream to read.
                                         */
                                        public void _read(InputStream input)
                                    --- 76,82 ----
                                      
                                        /**
                                         * Fill in the {@link #value} by data from the CDR stream.
                                    !    *
                                         * @param input the org.omg.CORBA.portable stream to read.
                                         */
                                        public void _read(InputStream input)
                                    *************** public final class ObjectReferenceTempla
                                    *** 86,92 ****
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    * 
                                         * @param output the org.omg.CORBA.portable stream to write.
                                         */
                                        public void _write(OutputStream output)
                                    --- 86,92 ----
                                      
                                        /**
                                         * Write the stored value into the CDR stream.
                                    !    *
                                         * @param output the org.omg.CORBA.portable stream to write.
                                         */
                                        public void _write(OutputStream output)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/PolicyFactory.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/PolicyFactory.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/PolicyFactory.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/PolicyFactory.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface PolicyFactory extends P
                                    *** 54,57 ****
                                        org.omg.CORBA.Object,
                                        IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 54,57 ----
                                        org.omg.CORBA.Object,
                                        IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/PolicyFactoryOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/PolicyFactoryOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/PolicyFactoryOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/PolicyFactoryOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface PolicyFactoryOperations
                                    *** 66,69 ****
                                         */
                                        Policy create_policy(int policy_type, Any policy_value)
                                          throws PolicyError;
                                    ! }
                                    \ No newline at end of file
                                    --- 66,69 ----
                                         */
                                        Policy create_policy(int policy_type, Any policy_value)
                                          throws PolicyError;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/RequestInfo.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/RequestInfo.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/RequestInfo.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/RequestInfo.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface RequestInfo extends Req
                                    *** 52,55 ****
                                        org.omg.CORBA.Object,
                                        IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                        org.omg.CORBA.Object,
                                        IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/RequestInfoOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/RequestInfoOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/RequestInfoOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/RequestInfoOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface RequestInfoOperations
                                    *** 188,191 ****
                                         * @specnote as defined in the Suns 1.5 JDK API.
                                         */
                                        short sync_scope();
                                    ! }
                                    \ No newline at end of file
                                    --- 188,191 ----
                                         * @specnote as defined in the Suns 1.5 JDK API.
                                         */
                                        short sync_scope();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/SUCCESSFUL.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/SUCCESSFUL.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/SUCCESSFUL.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/SUCCESSFUL.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface SUCCESSFUL
                                    *** 51,54 ****
                                         * Specifies the SUCCESSFUL value, 0.
                                         */
                                        short value = 0;
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                         * Specifies the SUCCESSFUL value, 0.
                                         */
                                        short value = 0;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface SYSTEM_EXCEPTION
                                    *** 52,55 ****
                                         * Specifies the SYSTEM_EXCEPTION value, 1.
                                         */
                                        short value = 1;
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Specifies the SYSTEM_EXCEPTION value, 1.
                                         */
                                        short value = 1;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerIdHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerIdHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerIdHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerIdHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.OutputStre
                                    *** 50,56 ****
                                       * The Server Id is defined in OMG specification just as a narrow (not wide)
                                       * string. As such, the Server Id needs no helper, but one is included in
                                       * the API anyway.
                                    !  * 
                                       * @since 1.5
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                    --- 50,56 ----
                                       * The Server Id is defined in OMG specification just as a narrow (not wide)
                                       * string. As such, the Server Id needs no helper, but one is included in
                                       * the API anyway.
                                    !  *
                                       * @since 1.5
                                       *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                    *************** public abstract class ServerIdHelper
                                    *** 116,119 ****
                                        {
                                          output.write_string(value);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 116,119 ----
                                        {
                                          output.write_string(value);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfo.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfo.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfo.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfo.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServerRequestInfo exten
                                    *** 51,54 ****
                                        IDLEntity,
                                        RequestInfo
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                        IDLEntity,
                                        RequestInfo
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfoOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfoOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfoOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfoOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServerRequestInfoOperat
                                    *** 305,311 ****
                                        /**
                                         * Returns the name of the adapter that is handling the current request.
                                         * The name is returned as a string array, representing full path from
                                    !    * the root poa till the current poa, for instance 
                                         * {"RootPOA", "childPOA","grandchildPOA"}.
                                         */
                                        public String[] adapter_name();
                                    --- 305,311 ----
                                        /**
                                         * Returns the name of the adapter that is handling the current request.
                                         * The name is returned as a string array, representing full path from
                                    !    * the root poa till the current poa, for instance
                                         * {"RootPOA", "childPOA","grandchildPOA"}.
                                         */
                                        public String[] adapter_name();
                                    *************** public interface ServerRequestInfoOperat
                                    *** 313,327 ****
                                        /**
                                         * Returns the id of the ORB that is handling the current request. The ORB
                                         * id can be specified as the property org.omg.CORBA.ORBid when creating
                                    !    * the ORB. 
                                         */
                                        public String orb_id();
                                      
                                        /**
                                         * Returs the id of the server that is handling the current request. The server
                                    !    * id is the same for all POAs and ORBs in the current virtual machine and 
                                         * can be set as the property org.omg.CORBA.ServerId when creating one of the
                                         * ORBs.
                                         */
                                        public String server_id();
                                    ! }
                                    \ No newline at end of file
                                    --- 313,327 ----
                                        /**
                                         * Returns the id of the ORB that is handling the current request. The ORB
                                         * id can be specified as the property org.omg.CORBA.ORBid when creating
                                    !    * the ORB.
                                         */
                                        public String orb_id();
                                      
                                        /**
                                         * Returs the id of the server that is handling the current request. The server
                                    !    * id is the same for all POAs and ORBs in the current virtual machine and
                                         * can be set as the property org.omg.CORBA.ServerId when creating one of the
                                         * ORBs.
                                         */
                                        public String server_id();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptor.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptor.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptor.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptor.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServerRequestIntercepto
                                    *** 51,54 ****
                                        org.omg.CORBA.Object,
                                        IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                        org.omg.CORBA.Object,
                                        IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServerRequestIntercepto
                                    *** 54,60 ****
                                         * ORB calls this method before invoking the servant manager. Operation
                                         * parameters are not available at this point. The interceptor has possibility
                                         * to forward the request by throwing {@link ForwardRequest}.
                                    !    * 
                                         * @throws SystemException if it does, the receive_request_service_contexts is
                                         *           not called for the subsequent interceptors, calling
                                         *           send_exception instead. The completion status of such exception
                                    --- 54,60 ----
                                         * ORB calls this method before invoking the servant manager. Operation
                                         * parameters are not available at this point. The interceptor has possibility
                                         * to forward the request by throwing {@link ForwardRequest}.
                                    !    *
                                         * @throws SystemException if it does, the receive_request_service_contexts is
                                         *           not called for the subsequent interceptors, calling
                                         *           send_exception instead. The completion status of such exception
                                    *************** public interface ServerRequestIntercepto
                                    *** 133,136 ****
                                         * successive interceptors receive on their calls to send_other.
                                         */
                                        void send_other(ServerRequestInfo info) throws ForwardRequest;
                                    ! }
                                    \ No newline at end of file
                                    --- 133,136 ----
                                         * successive interceptors receive on their calls to send_other.
                                         */
                                        void send_other(ServerRequestInfo info) throws ForwardRequest;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/TRANSPORT_RETRY.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/TRANSPORT_RETRY.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/TRANSPORT_RETRY.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/TRANSPORT_RETRY.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface TRANSPORT_RETRY
                                    *** 52,55 ****
                                         * Specifies the TRANSPORT_RETRY value, 4.
                                         */
                                        short value = 4;
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Specifies the TRANSPORT_RETRY value, 4.
                                         */
                                        short value = 4;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/USER_EXCEPTION.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/USER_EXCEPTION.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/USER_EXCEPTION.java	Fri Sep 23 21:31:04 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/USER_EXCEPTION.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface USER_EXCEPTION
                                    *** 52,55 ****
                                         * Specifies the USER_EXCEPTION value, 2.
                                         */
                                        short value = 2;
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Specifies the USER_EXCEPTION value, 2.
                                         */
                                        short value = 2;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.java gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 53,72 ****
                                       * {@link IORInterceptor_3_0} methods contain the code for remote invocaton. The
                                       * stub is required by {@link IORInterceptor_3_0Helper} .read, .narrow and
                                       * .unchecked_narrow methods.
                                    !  * 
                                       * @specnote Being not specified in 1.5 API, this class is package private.
                                       * From that happened to some other stubs, it will likely to appear in the 1.6
                                    !  * or later. Because of this, it is placed here. 
                                    !  * 
                                       * @specnote The stub and the helper support the existence of the interceptor
                                    !  * on the remote side only. To support the corresponding support on the side 
                                       * where the ORB is registered with this interceptor, you also need
                                       * _IORInfoStub, IORInfoHelper and either servants or implementation bases
                                       * for both POA and IORInfo. These classes are not defined in the 1.5 API,
                                       * hence they are not included. You may need to generate the manually from
                                    !  * the IDL descriptions, available from 
                                       * http://www.omg.org/docs/formal/04-03-12.pdf.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      class _IORInterceptor_3_0Stub
                                    --- 53,72 ----
                                       * {@link IORInterceptor_3_0} methods contain the code for remote invocaton. The
                                       * stub is required by {@link IORInterceptor_3_0Helper} .read, .narrow and
                                       * .unchecked_narrow methods.
                                    !  *
                                       * @specnote Being not specified in 1.5 API, this class is package private.
                                       * From that happened to some other stubs, it will likely to appear in the 1.6
                                    !  * or later. Because of this, it is placed here.
                                    !  *
                                       * @specnote The stub and the helper support the existence of the interceptor
                                    !  * on the remote side only. To support the corresponding support on the side
                                       * where the ORB is registered with this interceptor, you also need
                                       * _IORInfoStub, IORInfoHelper and either servants or implementation bases
                                       * for both POA and IORInfo. These classes are not defined in the 1.5 API,
                                       * hence they are not included. You may need to generate the manually from
                                    !  * the IDL descriptions, available from
                                       * http://www.omg.org/docs/formal/04-03-12.pdf.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      class _IORInterceptor_3_0Stub
                                    *************** class _IORInterceptor_3_0Stub
                                    *** 269,272 ****
                                              _releaseReply(input);
                                            }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 269,272 ----
                                              _releaseReply(input);
                                            }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/AdapterActivator.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/AdapterActivator.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/AdapterActivator.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/AdapterActivator.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 59,62 ****
                                      public interface AdapterActivator
                                        extends AdapterActivatorOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 59,62 ----
                                      public interface AdapterActivator
                                        extends AdapterActivatorOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/AdapterActivatorOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/AdapterActivatorOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/AdapterActivatorOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/AdapterActivatorOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface AdapterActivatorOperati
                                    *** 65,68 ****
                                        * the remote exception ({@link OBJECT_NOT_EXIST}, minor code 2).
                                        */
                                        boolean unknown_adapter(POA parent, String child_name);
                                    ! }
                                    \ No newline at end of file
                                    --- 65,68 ----
                                        * the remote exception ({@link OBJECT_NOT_EXIST}, minor code 2).
                                        */
                                        boolean unknown_adapter(POA parent, String child_name);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/Current.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/Current.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/Current.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/Current.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 60,63 ****
                                      public interface Current
                                        extends CurrentOperations, org.omg.CORBA.Current, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 60,63 ----
                                      public interface Current
                                        extends CurrentOperations, org.omg.CORBA.Current, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/CurrentHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/CurrentHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/CurrentHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/CurrentHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class CurrentHelper
                                    *** 141,144 ****
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 141,144 ----
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/CurrentOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/CurrentOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/CurrentOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/CurrentOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface CurrentOperations
                                    *** 78,81 ****
                                         */
                                        POA get_POA()
                                             throws NoContext;
                                    ! }
                                    \ No newline at end of file
                                    --- 78,81 ----
                                         */
                                        POA get_POA()
                                             throws NoContext;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContext.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContext.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContext.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContext.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class NoContext
                                    *** 79,82 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 79,82 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContextHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContextHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContextHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContextHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NoContextHelper
                                    *** 99,105 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NoContext expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 99,105 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NoContext expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class NoContextHelper
                                    *** 140,143 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 140,143 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/DynamicImplementation.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/DynamicImplementation.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/DynamicImplementation.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/DynamicImplementation.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class DynamicImplementat
                                    *** 55,58 ****
                                         * and return results of the invocation.
                                         */
                                        public abstract void invoke(ServerRequest request);
                                    ! }
                                    \ No newline at end of file
                                    --- 55,58 ----
                                         * and return results of the invocation.
                                         */
                                        public abstract void invoke(ServerRequest request);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ForwardRequest.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ForwardRequest.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ForwardRequest.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ForwardRequest.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ForwardRequest
                                    *** 105,108 ****
                                        {
                                          this.forward_reference = a_forward_reference;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 105,108 ----
                                        {
                                          this.forward_reference = a_forward_reference;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ForwardRequestHelp
                                    *** 78,84 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ForwardRequest expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 78,84 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ForwardRequest expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ID_ASSIGNMENT_POLICY_ID
                                    *** 50,53 ****
                                         * Specifies the ID_ASSIGNMENT_POLICY_ID value, 19.
                                         */
                                        int value = 19;
                                    ! }
                                    \ No newline at end of file
                                    --- 50,53 ----
                                         * Specifies the ID_ASSIGNMENT_POLICY_ID value, 19.
                                         */
                                        int value = 19;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ID_UNIQUENESS_POLICY_ID
                                    *** 50,53 ****
                                         * Specifies the ID_UNIQUENESS_POLICY_ID value, 18.
                                         */
                                        int value = 18;
                                    ! }
                                    \ No newline at end of file
                                    --- 50,53 ----
                                         * Specifies the ID_UNIQUENESS_POLICY_ID value, 18.
                                         */
                                        int value = 18;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface IMPLICIT_ACTIVATION_POL
                                    *** 50,53 ****
                                         * Specifies the IMPLICIT_ACTIVATION_POLICY_ID value, 20.
                                         */
                                        int value = 20;
                                    ! }
                                    \ No newline at end of file
                                    --- 50,53 ----
                                         * Specifies the IMPLICIT_ACTIVATION_POLICY_ID value, 20.
                                         */
                                        int value = 20;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicy.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 55,58 ****
                                      public interface IdAssignmentPolicy
                                        extends Policy, IdAssignmentPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 55,58 ----
                                      public interface IdAssignmentPolicy
                                        extends Policy, IdAssignmentPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface IdAssignmentPolicyOpera
                                    *** 52,55 ****
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        IdAssignmentPolicyValue value();
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        IdAssignmentPolicyValue value();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyValue.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyValue.java	Tue Jan 11 19:46:05 2011
                                    *************** public class IdAssignmentPolicyValue
                                    *** 155,158 ****
                                        {
                                          return _value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 155,158 ----
                                        {
                                          return _value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicy.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 54,57 ****
                                      public interface IdUniquenessPolicy
                                        extends Policy, IdUniquenessPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 54,57 ----
                                      public interface IdUniquenessPolicy
                                        extends Policy, IdUniquenessPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface IdUniquenessPolicyOpera
                                    *** 52,55 ****
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        IdUniquenessPolicyValue value();
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        IdUniquenessPolicyValue value();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyValue.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyValue.java	Tue Jan 11 19:46:05 2011
                                    *************** public class IdUniquenessPolicyValue
                                    *** 155,158 ****
                                        {
                                          return _value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 155,158 ----
                                        {
                                          return _value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicy.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 54,57 ****
                                      public interface ImplicitActivationPolicy
                                        extends Policy, ImplicitActivationPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 54,57 ----
                                      public interface ImplicitActivationPolicy
                                        extends Policy, ImplicitActivationPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ImplicitActivationPolic
                                    *** 52,55 ****
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        ImplicitActivationPolicyValue value();
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        ImplicitActivationPolicyValue value();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyValue.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyValue.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ImplicitActivationPolicyVal
                                    *** 155,158 ****
                                        {
                                          return _value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 155,158 ----
                                        {
                                          return _value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/LifespanPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/LifespanPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/LifespanPolicy.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/LifespanPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 55,58 ****
                                      public interface LifespanPolicy
                                        extends Policy, LifespanPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 55,58 ----
                                      public interface LifespanPolicy
                                        extends Policy, LifespanPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/LifespanPolicyOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/LifespanPolicyOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/LifespanPolicyOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/LifespanPolicyOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface LifespanPolicyOperation
                                    *** 52,55 ****
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        LifespanPolicyValue value();
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        LifespanPolicyValue value();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/LifespanPolicyValue.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/LifespanPolicyValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/LifespanPolicyValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/LifespanPolicyValue.java	Tue Jan 11 19:46:05 2011
                                    *************** public class LifespanPolicyValue
                                    *** 152,155 ****
                                        {
                                          return _value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 152,155 ----
                                        {
                                          return _value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POA.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POA.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POA.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POA.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 63,66 ****
                                      public interface POA
                                        extends POAOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 63,66 ----
                                      public interface POA
                                        extends POAOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class POAHelper
                                    *** 151,154 ****
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 151,154 ----
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManager.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManager.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManager.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManager.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 60,63 ****
                                      public interface POAManager
                                        extends POAManagerOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 60,63 ----
                                      public interface POAManager
                                        extends POAManagerOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManagerOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManagerOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManagerOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManagerOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface POAManagerOperations
                                    *** 138,141 ****
                                         */
                                        void hold_requests(boolean wait_for_completion)
                                                    throws AdapterInactive;
                                    ! }
                                    \ No newline at end of file
                                    --- 138,141 ----
                                         */
                                        void hold_requests(boolean wait_for_completion)
                                                    throws AdapterInactive;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactive.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactive.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactive.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactive.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class AdapterInactive
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class AdapterInactiveHel
                                    *** 98,104 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("AdapterInactive expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 98,104 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("AdapterInactive expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class AdapterInactiveHel
                                    *** 139,142 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 139,142 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManagerPackage/State.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManagerPackage/State.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAManagerPackage/State.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAManagerPackage/State.java	Tue Jan 11 19:46:05 2011
                                    *************** public class State
                                    *** 144,150 ****
                                      
                                        /**
                                         * Returns the State, matching the given integer constant.
                                    !    * 
                                         * @param code one of _HOLDING, _ACTIVE, _DISCARDING, _INACTIVE.
                                         * @return one of HOLDING, ACTIVE, DISCARDING, INACTIVE.
                                         * @throws BAD_PARAM if the parameter is not one of the valid values.
                                    --- 144,150 ----
                                      
                                        /**
                                         * Returns the State, matching the given integer constant.
                                    !    *
                                         * @param code one of _HOLDING, _ACTIVE, _DISCARDING, _INACTIVE.
                                         * @return one of HOLDING, ACTIVE, DISCARDING, INACTIVE.
                                         * @throws BAD_PARAM if the parameter is not one of the valid values.
                                    *************** public class State
                                    *** 165,171 ****
                                      
                                        /**
                                         * Returns a short string representation.
                                    !    * 
                                         * @return the name of the current enumeration value.
                                         */
                                        public String toString()
                                    --- 165,171 ----
                                      
                                        /**
                                         * Returns a short string representation.
                                    !    *
                                         * @return the name of the current enumeration value.
                                         */
                                        public String toString()
                                    *************** public class State
                                    *** 181,184 ****
                                        {
                                          return _value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 181,184 ----
                                        {
                                          return _value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface POAOperations
                                    *** 526,529 ****
                                        */
                                        IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value);
                                      
                                    ! }
                                    \ No newline at end of file
                                    --- 526,529 ----
                                        */
                                        IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value);
                                      
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class AdapterAlreadyExists
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class AdapterAlreadyExis
                                    *** 149,152 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 149,152 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistent.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistent.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistent.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistent.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class AdapterNonExistent
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class AdapterNonExistent
                                    *** 107,113 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("AdapterNonExistent expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 107,113 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("AdapterNonExistent expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class AdapterNonExistent
                                    *** 148,151 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 148,151 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicy.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class InvalidPolicy
                                    *** 106,109 ****
                                        {
                                          return super.getMessage() + " at index " + index;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 106,109 ----
                                        {
                                          return super.getMessage() + " at index " + index;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class InvalidPolicyHelpe
                                    *** 112,118 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InvalidPolicy expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 112,118 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("InvalidPolicy expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/NoServant.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/NoServant.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/NoServant.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/NoServant.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class NoServant
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/NoServantHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/NoServantHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/NoServantHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/NoServantHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class NoServantHelper
                                    *** 107,113 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NoServant expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 107,113 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("NoServant expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class NoServantHelper
                                    *** 148,151 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 148,151 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ObjectAlreadyActive
                                    *** 75,78 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 75,78 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ObjectAlreadyActiv
                                    *** 108,114 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ObjectAlreadyActive expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 108,114 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ObjectAlreadyActive expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class ObjectAlreadyActiv
                                    *** 149,152 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 149,152 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActive.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActive.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActive.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActive.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ObjectNotActive
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ObjectNotActiveHel
                                    *** 107,113 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ObjectNotActive expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 107,113 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ObjectNotActive expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class ObjectNotActiveHel
                                    *** 148,151 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 148,151 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActive.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActive.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActive.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActive.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ServantAlreadyActive
                                    *** 80,83 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 80,83 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServantAlreadyActi
                                    *** 108,114 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ServantAlreadyActive expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 108,114 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ServantAlreadyActive expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class ServantAlreadyActi
                                    *** 149,152 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 149,152 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActive.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActive.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActive.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActive.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class ServantNotActive
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServantNotActiveHe
                                    *** 107,113 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ServantNotActive expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 107,113 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("ServantNotActive expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class ServantNotActiveHe
                                    *** 148,151 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 148,151 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapter.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapter.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class WrongAdapter
                                    *** 77,80 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 77,80 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapterHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapterHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapterHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapterHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class WrongAdapterHelper
                                    *** 107,113 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("WrongAdapter expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 107,113 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("WrongAdapter expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class WrongAdapterHelper
                                    *** 148,151 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 148,151 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicy.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class WrongPolicy
                                    *** 76,79 ****
                                        {
                                          super(why);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 76,79 ----
                                        {
                                          super(why);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicyHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicyHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicyHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicyHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class WrongPolicyHelper
                                    *** 107,113 ****
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("WrongPolicy expected");
                                    !         bad.minor = Minor.Any;        
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    --- 107,113 ----
                                          catch (ClassCastException cex)
                                            {
                                              BAD_OPERATION bad = new BAD_OPERATION("WrongPolicy expected");
                                    !         bad.minor = Minor.Any;
                                              bad.initCause(cex);
                                              throw bad;
                                            }
                                    *************** public abstract class WrongPolicyHelper
                                    *** 148,151 ****
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 148,151 ----
                                          // Write the exception repository id.
                                          output.write_string(id());
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicy.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 56,59 ****
                                      public interface RequestProcessingPolicy
                                        extends Policy, RequestProcessingPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 56,59 ----
                                      public interface RequestProcessingPolicy
                                        extends Policy, RequestProcessingPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface RequestProcessingPolicy
                                    *** 52,55 ****
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        RequestProcessingPolicyValue value();
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        RequestProcessingPolicyValue value();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyValue.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyValue.java	Tue Jan 11 19:46:05 2011
                                    *************** public class RequestProcessingPolicyValu
                                    *** 178,181 ****
                                        {
                                          return _value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 178,181 ----
                                        {
                                          return _value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/Servant.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/Servant.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/Servant.java	Mon Apr 16 13:46:54 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/Servant.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class Servant
                                    *** 112,118 ****
                                        {
                                          if (delegate == null) {
                                            throw new BAD_INV_ORDER
                                    ! 	("The Servant has not been associated with an ORBinstance");
                                          }
                                          return delegate;
                                        }
                                    --- 112,118 ----
                                        {
                                          if (delegate == null) {
                                            throw new BAD_INV_ORDER
                                    !         ("The Servant has not been associated with an ORBinstance");
                                          }
                                          return delegate;
                                        }
                                    *************** public abstract class Servant
                                    *** 293,296 ****
                                            }
                                          throw new OBJECT_NOT_EXIST();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 293,296 ----
                                            }
                                          throw new OBJECT_NOT_EXIST();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantActivator.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantActivator.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantActivator.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantActivator.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServantActivator
                                    *** 56,59 ****
                                        extends ServantManager, ServantActivatorOperations, IDLEntity,
                                                org.omg.CORBA.Object
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 56,59 ----
                                        extends ServantManager, ServantActivatorOperations, IDLEntity,
                                                org.omg.CORBA.Object
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantActivatorHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantActivatorHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantActivatorHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantActivatorHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServantActivatorHe
                                    *** 115,138 ****
                                              throw bad;
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the ServantActivator. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted ServantActivator.
                                    !    * 
                                    !    * @since 1.5 
                                         */
                                        public static ServantActivator unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }  
                                    !   
                                      
                                        /**
                                         * This should read the servant activator, but it cannot be transferred
                                    --- 115,138 ----
                                              throw bad;
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the ServantActivator. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted ServantActivator.
                                    !    *
                                    !    * @since 1.5
                                         */
                                        public static ServantActivator unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                    ! 
                                      
                                        /**
                                         * This should read the servant activator, but it cannot be transferred
                                    *************** public abstract class ServantActivatorHe
                                    *** 167,170 ****
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 167,170 ----
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantActivatorOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantActivatorOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantActivatorOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantActivatorOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServantActivatorOperati
                                    *** 91,94 ****
                                         */
                                        Servant incarnate(byte[] Object_Id, POA poa)
                                                   throws ForwardRequest;
                                    ! }
                                    \ No newline at end of file
                                    --- 91,94 ----
                                         */
                                        Servant incarnate(byte[] Object_Id, POA poa)
                                                   throws ForwardRequest;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantActivatorPOA.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantActivatorPOA.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantActivatorPOA.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantActivatorPOA.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.ResponseHa
                                    *** 58,64 ****
                                       * You do not need to derive your servant activator from this stub,
                                       * it is enough to implement the {@link ServantActivator} interface.
                                       * But you may choose to do this if you need the functional
                                    !  * {@link #_all_interfaces(POA, byte[])} method or want to keep default 
                                       * behavior during the incarnation or etherialization.
                                       * </p>
                                       */
                                    --- 58,64 ----
                                       * You do not need to derive your servant activator from this stub,
                                       * it is enough to implement the {@link ServantActivator} interface.
                                       * But you may choose to do this if you need the functional
                                    !  * {@link #_all_interfaces(POA, byte[])} method or want to keep default
                                       * behavior during the incarnation or etherialization.
                                       * </p>
                                       */
                                    *************** public abstract class ServantActivatorPO
                                    *** 134,137 ****
                                        {
                                          return new delegator(this);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 134,137 ----
                                        {
                                          return new delegator(this);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocator.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocator.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocator.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocator.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServantLocator
                                    *** 56,59 ****
                                        extends ServantManager, ServantLocatorOperations, IDLEntity,
                                                org.omg.CORBA.Object
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 56,59 ----
                                        extends ServantManager, ServantLocatorOperations, IDLEntity,
                                                org.omg.CORBA.Object
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocatorHelper.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocatorHelper.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocatorHelper.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocatorHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ServantLocatorHelp
                                    *** 116,138 ****
                                              throw bad;
                                            }
                                        }
                                    !   
                                        /**
                                         * Narrow the given object to the ServantLocator. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    * 
                                         * @param obj the object to cast.
                                    !    * 
                                         * @return the casted ServantLocator.
                                    !    * 
                                         * @since 1.5
                                         */
                                        public static ServantLocator unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }    
                                      
                                        /**
                                         * This should read the servant locator, but it cannot be transferred
                                    --- 116,138 ----
                                              throw bad;
                                            }
                                        }
                                    ! 
                                        /**
                                         * Narrow the given object to the ServantLocator. For the objects that are
                                         * always local, this operation does not differ from the ordinary
                                         * {@link #narrow} (ClassCastException will be thrown if narrowing something
                                         * different). See OMG issue 4158.
                                    !    *
                                         * @param obj the object to cast.
                                    !    *
                                         * @return the casted ServantLocator.
                                    !    *
                                         * @since 1.5
                                         */
                                        public static ServantLocator unchecked_narrow(org.omg.CORBA.Object obj)
                                        {
                                          return narrow(obj);
                                    !   }
                                      
                                        /**
                                         * This should read the servant locator, but it cannot be transferred
                                    *************** public abstract class ServantLocatorHelp
                                    *** 167,170 ****
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 167,170 ----
                                          m.minor = Minor.Inappropriate;
                                          throw m;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocatorOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocatorOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocatorOperations.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocatorOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServantLocatorOperation
                                    *** 93,96 ****
                                        void postinvoke(byte[] Object_Id, POA poa, String operation,
                                                        java.lang.Object cookie, Servant servant
                                                       );
                                    ! }
                                    \ No newline at end of file
                                    --- 93,96 ----
                                        void postinvoke(byte[] Object_Id, POA poa, String operation,
                                                        java.lang.Object cookie, Servant servant
                                                       );
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocatorPOA.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocatorPOA.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocatorPOA.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocatorPOA.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.PortableServer.ServantLoc
                                    *** 59,65 ****
                                       * You do not need to derive your servant locator from this stub,
                                       * it is enough to implement the {@link ServantLocator} interface.
                                       * But you may choose to do this if you need its functional
                                    !  * {@link org.omg.PortableServer.ServantActivatorPOA.delegator#_ids()} 
                                       * method or want to keep default behaviour during pre- or post- invokcations.
                                       * </p>
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                    --- 59,65 ----
                                       * You do not need to derive your servant locator from this stub,
                                       * it is enough to implement the {@link ServantLocator} interface.
                                       * But you may choose to do this if you need its functional
                                    !  * {@link org.omg.PortableServer.ServantActivatorPOA.delegator#_ids()}
                                       * method or want to keep default behaviour during pre- or post- invokcations.
                                       * </p>
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                    *************** public abstract class ServantLocatorPOA
                                    *** 143,146 ****
                                            return THIS._all_interfaces(null, null);
                                          }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 143,146 ----
                                            return THIS._all_interfaces(null, null);
                                          }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java	Tue Jan 11 19:46:05 2011
                                    *************** public final class CookieHolder
                                    *** 111,114 ****
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 111,114 ----
                                        {
                                          throw new NO_IMPLEMENT();
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantManager.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantManager.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantManager.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantManager.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 53,56 ****
                                      public interface ServantManager
                                        extends ServantManagerOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 53,56 ----
                                      public interface ServantManager
                                        extends ServantManagerOperations, IDLEntity, org.omg.CORBA.Object
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantManagerOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantManagerOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantManagerOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantManagerOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.omg.PortableServer;
                                    *** 51,54 ****
                                       */
                                      public interface ServantManagerOperations
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                       */
                                      public interface ServantManagerOperations
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicy.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 55,58 ****
                                      public interface ServantRetentionPolicy
                                        extends Policy, ServantRetentionPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 55,58 ----
                                      public interface ServantRetentionPolicy
                                        extends Policy, ServantRetentionPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ServantRetentionPolicyO
                                    *** 52,55 ****
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        ServantRetentionPolicyValue value();
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        ServantRetentionPolicyValue value();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyValue.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyValue.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ServantRetentionPolicyValue
                                    *** 152,155 ****
                                        {
                                          return _value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 152,155 ----
                                        {
                                          return _value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ThreadPolicy.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ThreadPolicy.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ThreadPolicy.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ThreadPolicy.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.portable.IDLEntity;
                                    *** 54,57 ****
                                      public interface ThreadPolicy
                                        extends Policy, ThreadPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 54,57 ----
                                      public interface ThreadPolicy
                                        extends Policy, ThreadPolicyOperations, IDLEntity
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ThreadPolicyOperations.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ThreadPolicyOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ThreadPolicyOperations.java	Fri Sep 23 19:36:46 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ThreadPolicyOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface ThreadPolicyOperations
                                    *** 52,55 ****
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        ThreadPolicyValue value();
                                    ! }
                                    \ No newline at end of file
                                    --- 52,55 ----
                                         * Return the value of this policy type, stated by the current instance.
                                         */
                                        ThreadPolicyValue value();
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ThreadPolicyValue.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ThreadPolicyValue.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/ThreadPolicyValue.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/ThreadPolicyValue.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ThreadPolicyValue
                                    *** 165,168 ****
                                        {
                                          return _value;
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 165,168 ----
                                        {
                                          return _value;
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _ServantActivatorStub
                                    *** 70,75 ****
                                    --- 70,76 ----
                                         * This the purpose of this field is undocumented up till 1.5 java API
                                         * inclusive.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = ServantActivatorOperations.class;
                                      
                                        /**
                                    *************** public class _ServantActivatorStub
                                    *** 120,123 ****
                                                               )
                                        {
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 121,124 ----
                                                               )
                                        {
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java	Tue Jan 11 19:46:05 2011
                                    *************** public class _ServantLocatorStub
                                    *** 71,76 ****
                                    --- 71,77 ----
                                         * This the purpose of this field is undocumented up till 1.5 java API
                                         * inclusive.
                                         */
                                    +   @SuppressWarnings("unchecked") // Needed for API compatibility
                                        public static final Class _opsClass = ServantLocatorOperations.class;
                                      
                                        /**
                                    *************** public class _ServantLocatorStub
                                    *** 129,132 ****
                                                              )
                                        {
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 130,133 ----
                                                              )
                                        {
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/PortableServer/portable/Delegate.java gcc-4.6.0/libjava/classpath/org/omg/PortableServer/portable/Delegate.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/PortableServer/portable/Delegate.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/org/omg/PortableServer/portable/Delegate.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface Delegate
                                    *** 109,112 ****
                                        * given servant.
                                        */
                                        org.omg.CORBA.Object this_object(Servant a_servant);
                                    ! }
                                    \ No newline at end of file
                                    --- 109,112 ----
                                        * given servant.
                                        */
                                        org.omg.CORBA.Object this_object(Servant a_servant);
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/SendingContext/RunTime.java gcc-4.6.0/libjava/classpath/org/omg/SendingContext/RunTime.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/SendingContext/RunTime.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/SendingContext/RunTime.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.Serializable;
                                    *** 57,60 ****
                                      public interface RunTime
                                        extends IDLEntity, Object, RunTimeOperations, Serializable
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 57,60 ----
                                      public interface RunTime
                                        extends IDLEntity, Object, RunTimeOperations, Serializable
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/org/omg/SendingContext/RunTimeOperations.java gcc-4.6.0/libjava/classpath/org/omg/SendingContext/RunTimeOperations.java
                                    *** gcc-4.5.2/libjava/classpath/org/omg/SendingContext/RunTimeOperations.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/org/omg/SendingContext/RunTimeOperations.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.omg.SendingContext;
                                    *** 54,57 ****
                                       */
                                      public interface RunTimeOperations
                                      {
                                    ! }
                                    \ No newline at end of file
                                    --- 54,57 ----
                                       */
                                      public interface RunTimeOperations
                                      {
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/resource/Makefile.in gcc-4.6.0/libjava/classpath/resource/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/resource/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/resource/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/scripts/Makefile.in gcc-4.6.0/libjava/classpath/scripts/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/scripts/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/scripts/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = $(srcdir)/Makefile.am $(sr
                                    *** 40,45 ****
                                    --- 40,48 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 58,66 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 61,67 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/sun/misc/Service.java gcc-4.6.0/libjava/classpath/sun/misc/Service.java
                                    *** gcc-4.5.2/libjava/classpath/sun/misc/Service.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/sun/misc/Service.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Service
                                    *** 54,66 ****
                                         * implemented by any loaded service providers.
                                         * @param cl the class loader that will be used to load the
                                         * service providers, or <code>null</code> for the system class
                                    !    * loader. 
                                         * @return an iterator over the service providers.
                                    !    */  
                                        public static <P> Iterator<P> providers(Class<P> c, ClassLoader cl)
                                        {
                                          return (Iterator<P>) ServiceFactory.lookupProviders(c, cl);
                                        }
                                      
                                      }
                                    - 
                                    --- 54,65 ----
                                         * implemented by any loaded service providers.
                                         * @param cl the class loader that will be used to load the
                                         * service providers, or <code>null</code> for the system class
                                    !    * loader.
                                         * @return an iterator over the service providers.
                                    !    */
                                        public static <P> Iterator<P> providers(Class<P> c, ClassLoader cl)
                                        {
                                          return (Iterator<P>) ServiceFactory.lookupProviders(c, cl);
                                        }
                                      
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/sun/misc/ServiceConfigurationError.java gcc-4.6.0/libjava/classpath/sun/misc/ServiceConfigurationError.java
                                    *** gcc-4.5.2/libjava/classpath/sun/misc/ServiceConfigurationError.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/sun/misc/ServiceConfigurationError.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ServiceConfigurationError
                                    *** 61,64 ****
                                      
                                      
                                      }
                                    - 
                                    --- 61,63 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/sun/reflect/annotation/AnnotationInvocationHandler.java gcc-4.6.0/libjava/classpath/sun/reflect/annotation/AnnotationInvocationHandler.java
                                    *** gcc-4.5.2/libjava/classpath/sun/reflect/annotation/AnnotationInvocationHandler.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/sun/reflect/annotation/AnnotationInvocationHandler.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 8,14 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 8,14 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** public final class AnnotationInvocationH
                                    *** 79,97 ****
                                          public static Annotation create(Class type, Map memberValues)
                                          {
                                            for (Method m : type.getDeclaredMethods())
                                    ! 	{
                                    ! 	  String name = m.getName();
                                    ! 	  if (! memberValues.containsKey(name))
                                    ! 	    {
                                    ! 	      // FIXME: what to do about exceptions here?
                                    ! 	      memberValues.put(name, m.getDefaultValue());
                                    ! 	    }
                                    ! 	}
                                            AnnotationInvocationHandler handler
                                    ! 	= new AnnotationInvocationHandler(type, memberValues);
                                            return (Annotation) Proxy.newProxyInstance(type.getClassLoader(),
                                    ! 						 new Class[] { type },
                                    ! 						 handler);
                                          }
                                      
                                          /**
                                    --- 79,97 ----
                                          public static Annotation create(Class type, Map memberValues)
                                          {
                                            for (Method m : type.getDeclaredMethods())
                                    !         {
                                    !           String name = m.getName();
                                    !           if (! memberValues.containsKey(name))
                                    !             {
                                    !               // FIXME: what to do about exceptions here?
                                    !               memberValues.put(name, m.getDefaultValue());
                                    !             }
                                    !         }
                                            AnnotationInvocationHandler handler
                                    !         = new AnnotationInvocationHandler(type, memberValues);
                                            return (Annotation) Proxy.newProxyInstance(type.getClassLoader(),
                                    !                                                  new Class[] { type },
                                    !                                                  handler);
                                          }
                                      
                                          /**
                                    *************** public final class AnnotationInvocationH
                                    *** 318,348 ****
                                          private Object arrayClone(Object obj)
                                          {
                                              if (obj instanceof boolean[])
                                    ! 	    return ((boolean[]) obj).clone();
                                      
                                              if (obj instanceof byte[])
                                    ! 	    return ((byte[]) obj).clone();
                                      
                                              if (obj instanceof char[])
                                    ! 	    return ((char[]) obj).clone();
                                      
                                              if (obj instanceof short[])
                                    ! 	    return ((short[]) obj).clone();
                                      
                                              if (obj instanceof int[])
                                    ! 	    return ((int[]) obj).clone();
                                      
                                              if (obj instanceof float[])
                                    ! 	    return ((float[]) obj).clone();
                                      
                                              if (obj instanceof long[])
                                    ! 	    return ((long[]) obj).clone();
                                      
                                              if (obj instanceof double[])
                                    ! 	    return ((double[]) obj).clone();
                                      
                                              if (obj instanceof Object[])
                                    ! 	    return ((Object[]) obj).clone();
                                      
                                              return obj;
                                          }
                                    --- 318,348 ----
                                          private Object arrayClone(Object obj)
                                          {
                                              if (obj instanceof boolean[])
                                    !             return ((boolean[]) obj).clone();
                                      
                                              if (obj instanceof byte[])
                                    !             return ((byte[]) obj).clone();
                                      
                                              if (obj instanceof char[])
                                    !             return ((char[]) obj).clone();
                                      
                                              if (obj instanceof short[])
                                    !             return ((short[]) obj).clone();
                                      
                                              if (obj instanceof int[])
                                    !             return ((int[]) obj).clone();
                                      
                                              if (obj instanceof float[])
                                    !             return ((float[]) obj).clone();
                                      
                                              if (obj instanceof long[])
                                    !             return ((long[]) obj).clone();
                                      
                                              if (obj instanceof double[])
                                    !             return ((double[]) obj).clone();
                                      
                                              if (obj instanceof Object[])
                                    !             return ((Object[]) obj).clone();
                                      
                                              return obj;
                                          }
                                    *************** public final class AnnotationInvocationH
                                    *** 377,386 ****
                                                          throw new AnnotationTypeMismatchException(method,
                                                              val.getClass().getName());
                                                      }
                                    ! 		if (val.getClass().isArray())
                                    ! 		{
                                    ! 		    val = arrayClone(val);
                                    ! 		}
                                                      return val;
                                                  }
                                              }
                                    --- 377,386 ----
                                                          throw new AnnotationTypeMismatchException(method,
                                                              val.getClass().getName());
                                                      }
                                    !                 if (val.getClass().isArray())
                                    !                 {
                                    !                     val = arrayClone(val);
                                    !                 }
                                                      return val;
                                                  }
                                              }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/sun/reflect/annotation/AnnotationParser.java gcc-4.6.0/libjava/classpath/sun/reflect/annotation/AnnotationParser.java
                                    *** gcc-4.5.2/libjava/classpath/sun/reflect/annotation/AnnotationParser.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/sun/reflect/annotation/AnnotationParser.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 8,14 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 8,14 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** public class AnnotationParser
                                    *** 48,54 ****
                                      {
                                      
                                        public static Annotation annotationForMap(Class<? extends Annotation> annoType,
                                    ! 					    Map<String, Object> map)
                                          throws NotImplementedException
                                        {
                                          return null;
                                    --- 48,54 ----
                                      {
                                      
                                        public static Annotation annotationForMap(Class<? extends Annotation> annoType,
                                    !                                             Map<String, Object> map)
                                          throws NotImplementedException
                                        {
                                          return null;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/sun/reflect/annotation/AnnotationType.java gcc-4.6.0/libjava/classpath/sun/reflect/annotation/AnnotationType.java
                                    *** gcc-4.5.2/libjava/classpath/sun/reflect/annotation/AnnotationType.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/sun/reflect/annotation/AnnotationType.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 8,14 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 8,14 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java gcc-4.6.0/libjava/classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java
                                    *** gcc-4.5.2/libjava/classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 8,14 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 8,14 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java gcc-4.6.0/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java
                                    *** gcc-4.5.2/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 8,14 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 8,14 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/Makefile.in gcc-4.6.0/libjava/classpath/tools/Makefile.in
                                    *** gcc-4.5.2/libjava/classpath/tools/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/Makefile.in	Tue Oct 12 15:55:12 2010
                                    *************** DIST_COMMON = README $(srcdir)/Makefile.
                                    *** 54,59 ****
                                    --- 54,62 ----
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    + 	$(top_srcdir)/../../config/lib-ld.m4 \
                                    + 	$(top_srcdir)/../../config/lib-link.m4 \
                                    + 	$(top_srcdir)/../../config/lib-prefix.m4 \
                                      	$(top_srcdir)/../../config/multi.m4 \
                                      	$(top_srcdir)/../../config/no-executables.m4 \
                                      	$(top_srcdir)/../../config/override.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/../.
                                    *** 72,80 ****
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
                                    ! 	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
                                    ! 	$(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    --- 75,81 ----
                                      	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
                                      	$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
                                      	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
                                    ! 	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
                                      am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
                                      	$(ACLOCAL_M4)
                                      mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class gcc-4.6.0/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,7 ****
                                      ��	���LineNumberTable�LocalVariableTable�this�Lcom/sun/tools/javadoc/Main;�main�([Ljava/lang/String;)V
                                      ����gnu/classpath/tools/gjdoc/Main���args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�!���������������/�����*·�±����
                                    ! �����������������
                                    ���	�������3�����*¸�±����
                                      ���
                                    ! ������������������������
                                    \ No newline at end of file
                                    --- 2,7 ----
                                      ��	���LineNumberTable�LocalVariableTable�this�Lcom/sun/tools/javadoc/Main;�main�([Ljava/lang/String;)V
                                      ����gnu/classpath/tools/gjdoc/Main���args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�!���������������/�����*·�±����
                                    ! �������(����������
                                    ���	�������3�����*¸�±����
                                      ���
                                    ! ����,��-������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��java/io/IOException��
                                    *** 9,15 ****
                                      SourceFile�FileSystemClassLoader.java�InnerClasses�0�)gnu/classpath/tools/FileSystemClassLoader�FileStreamInfo�
                                      StreamInfo� ���������������	�
                                      �����F�����
                                    ! *·�*+µ�±�����������£��¥�	�¦��������
                                      �������
                                    ! �����������������6�����»�Y*´�·�°�����������«��������������������2�����*´�¶� ­�����������°��������������%�&�������'����2�����*´�¶�)°�����������¶��������������,����-�.������/�1�
                                      ��/�2
                                    --- 9,15 ----
                                      SourceFile�FileSystemClassLoader.java�InnerClasses�0�)gnu/classpath/tools/FileSystemClassLoader�FileStreamInfo�
                                      StreamInfo� ���������������	�
                                      �����F�����
                                    ! *·�*+µ�±�����������´��¶�	�·��������
                                      �������
                                    ! �����������������6�����»�Y*´�·�°�����������¼��������������������2�����*´�¶� ­�����������Á��������������%�&�������'����2�����*´�¶�)°�����������Ç��������������,����-�.������/�1�
                                      ��/�2
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions�!�java/io/IOException
                                    *** 14,20 ****
                                      �N�7�	urlString�Ljava/lang/String;�
                                      SourceFile�FileSystemClassLoader.java�InnerClasses�W�)gnu/classpath/tools/FileSystemClassLoader�
                                    JarStreamInfo�
                                      StreamInfo� ������������	�
                                    ! �����������
                                    ������l�����*·�*+µ�*,µ�*-µ�±�����������Á��Ã�	�Ä��Å��Æ����*������������������	�
                                    ! ����������������� ����6�����*´�*´�¶�"°�����������Ë��������������(�)�����2�����*´�¶�*­�����������Ð��������������.�/�������0����g�����/»�2Y4·�6*´�¶�9¶�>B¶�D*´�¶�G¶�D¶�KL»�NY+·�P°�������
                                    ! �����&���������/�����&�	�Q�R���S����T�U������V�X�
                                      ��V�Y
                                    --- 14,20 ----
                                      �N�7�	urlString�Ljava/lang/String;�
                                      SourceFile�FileSystemClassLoader.java�InnerClasses�W�)gnu/classpath/tools/FileSystemClassLoader�
                                    JarStreamInfo�
                                      StreamInfo� ������������	�
                                    ! �����������
                                    ������l�����*·�*+µ�*,µ�*-µ�±�����������Ò��Ô�	�Õ��Ö��×����*������������������	�
                                    ! ����������������� ����6�����*´�*´�¶�"°�����������Ü��������������(�)�����2�����*´�¶�*­�����������á��������������.�/�������0����g�����/»�2Y4·�6*´�¶�9¶�>B¶�D*´�¶�G¶�D¶�KL»�NY+·�P°�������
                                    ! ����ç�&�è��������/�����&�	�Q�R���S����T�U������V�X�
                                      ��V�Y
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class	Tue Oct 12 15:55:12 2010
                                    *************** CLASS_PATH�Ljava/util/jar/Attributes$N
                                    *** 51,69 ****
                                      SourceFile�FileSystemClassLoader.java�InnerClasses�FileStreamInfo�
                                    JarStreamInfo�
                                      StreamInfo�Name�!�����������
                                      �����	�������v*·�
                                    ! »�
                                    Y·�M»�Y+²�·�N§�>»�Y-¶�·�:,¹�!�W¶�'™� ¶�+š�¸�.:Æ�,¹�2�W-¶�6šÿÁ,¹�9�½�N*,-¹�=�À�Aµ�B±����D���6�
                                    ���:��<��=��>�(�?�1�@�A�A�H�B�M�C�V�=�]�G�g�H�u�I�E���H����v�F�G�����v�H����j�I�J���E�K�L��(�.�M�N��H��O�J��g��P�����Q��	���”�����>*·�
                                    ! *+µ�B=§�,+2¶�'š� ²�R»�XYZ·�\+2¶�]a¶�c¶�f¶�i„+¾¡ÿÔ±����D�������P��R�	�S��T��U�4�S�=�X�E��� ����>�F�G�����>�����2�n�o���p�q��r�����s�	���:�����*+·�u°����D�������]�E��������F�G������w����x�q��r�����s�	���R�����*+·�yM*+,,¾¶�}°����D���
                                    ! ����c��d�E��� �����F�G������w����
                                    ! ��‚���ƒ�„��	���›�����3*+·�…M,Ç�	*+·�‰°,¹�‹�°N²�R»�XY‘·�\-¶�“¶�c¶�f¶�i°�����”��D�������i��j�
                                    ! �k��o��q��r�1�s�E���*����3�F�G�����3�w����-�–�—����˜�™���š�›��r�����œ�	���±�����9 ˆ¼:66§�
                                    ! `6… ”œ�+ …eˆ¶�žY6œÿà+¶�¤°����D���"����{��|�	�}��~����~�2��6�‚�E���>����9�F�G�����9�§�¨����9�;�©���3�ª�‚��	�0�«�o���-�¬�o���š�­��r�����œ�	���Ñ�����G+¹�®�M+¹�²�B!ˆ¼:66§�
                                      `6…!”œ�,!…eˆ¶�žY6œÿà,¶�¤°����D���*�
                                    ! ���ˆ��‰��‹��Œ����Ž���$�Ž�@�‘�D�’�E���H����G�F�G�����G�–�—���@�§�¨���9�;�©���3�ª�‚���0�«�o���-�¬�o���‡�ˆ��	�������e=§�X*´�B2N-¶�+™� »�Y-+·�¶:¶�'™�4»�¹Y·�»°»�¾Y-·�À:+¶�Ã:Æ�»�ÇY-·�É°W„*´�B¾¡ÿ¥°���/�V�œ�0�U�V�œ��D���6�
                                    ���Ý��ß��à��á��â�&�ã�0�ç�<�è�D�é�I�ê�V�î�W�Ý�c�ñ�E���H����e�F�G�����e�H����a�n�o���J�Ì�N����Í�N��<��Î�Ï��D��Ð�Ñ���{�|��r�����s�	���š�����6»�XY+.²�Ò¶�Ö¸�Ü·�\à¶�c¶�fM*,·�…N-Æ�
                                    ! *-·�â°W»�sY+·�ä¿��"�+�,�œ��D�������÷��ø�"�û�&�ü�,�ÿ�-�E���*����6�F�G�����6�å�����æ���"��–�—��
                                      �0�1��	�������³»�¾Y*·�ÀL+¶�çM,Æ� ,¶�ëN-Æ�—-²�ñ¶�÷:Æ�‰»�ýY·�ÿ:»�Y»Y··:¶¶		¶
                                      
                                    ! ¶
                                    
                                    ¶  ¶"¶§�"ý �»�Y*¶´·�¶¹�!�W¶Y6 ÿØ°W°����¯�°�œ��D���^����	�
                                    ! ���
                                    �&�+�4�F�K�T�]�f�o�x��‚�‰�¡�­�°#�±%�E���\�	���³�Í�N����¥�Î�Ï���  !���—"#��&�Š$���4�|�ª�J��F�j%&��‚�'�o��©�'�o��(���)*���"��¹�+�
                                      ��,�
                                      �Œ�-
                                      �ò�ø.�	
                                    \ No newline at end of file
                                    --- 51,68 ----
                                      SourceFile�FileSystemClassLoader.java�InnerClasses�FileStreamInfo�
                                    JarStreamInfo�
                                      StreamInfo�Name�!�����������
                                      �����	�������v*·�
                                    ! »�
                                    Y·�M»�Y+²�·�N§�>»�Y-¶�·�:,¹�!�W¶�'™� ¶�+š�¸�.:Æ�,¹�2�W-¶�6šÿÁ,¹�9�½�N*,-¹�=�À�Aµ�B±����D���6�
                                    ���K��M��N��O�(�P�1�Q�A�R�H�S�M�T�V�N�]�X�g�Y�u�Z�E���H����v�F�G�����v�H����j�I�J���E�K�L��(�.�M�N��H��O�J��g��P�����Q��	���”�����>*·�
                                    ! *+µ�B=§�,+2¶�'š� ²�R»�XYZ·�\+2¶�]a¶�c¶�f¶�i„+¾¡ÿÔ±����D�������a��c�	�d��e��f�4�d�=�i�E��� ����>�F�G�����>�����2�n�o���p�q��r�����s�	���:�����*+·�u°����D�������n�E��������F�G������w����x�q��r�����s�	���R�����*+·�yM*+,,¾¶�}°����D���
                                    ! ����t��u�E��� �����F�G������w����
                                    ! ��‚���ƒ�„��	���›�����3*+·�…M,Ç�	*+·�‰°,¹�‹�°N²�R»�XY‘·�\-¶�“¶�c¶�f¶�i°�����”��D�������z��{�
                                    ! �|��€��‚��ƒ�1�„�E���*����3�F�G�����3�w����-�–�—����˜�™���š�›��r�����œ�	���±�����9 ˆ¼:66§�
                                    ! `6… ”œ�+ …eˆ¶�žY6œÿà+¶�¤°����D���"����Œ���	�Ž�������2�’�6�“�E���>����9�F�G�����9�§�¨����9�;�©���3�ª�‚��	�0�«�o���-�¬�o���š�­��r�����œ�	���Ñ�����G+¹�®�M+¹�²�B!ˆ¼:66§�
                                      `6…!”œ�,!…eˆ¶�žY6œÿà,¶�¤°����D���*�
                                    ! ���™��š��œ����ž��Ÿ�� �$�Ÿ�@�¢�D�£�E���H����G�F�G�����G�–�—���@�§�¨���9�;�©���3�ª�‚���0�«�o���-�¬�o���‡�ˆ��	�������e=§�X*´�B2N-¶�+™� »�Y-+·�¶:¶�'™�4»�¹Y·�»°»�¾Y-·�À:+¶�Ã:Æ�»�ÇY-·�É°W„*´�B¾¡ÿ¥°���/�V�œ�0�U�V�œ��D���6�
                                    ���î��ð��ñ��ò��ó�&�ô�0�ø�<�ù�D�ú�I�û�V�ÿ�W�î�c�E���H����e�F�G�����e�H����a�n�o���J�Ì�N����Í�N��<��Î�Ï��D��Ð�Ñ���{�|��r�����s�	���š�����6»�XY+.²�Ò¶�Ö¸�Ü·�\à¶�c¶�fM*,·�…N-Æ�
                                    ! *-·�â°W»�sY+·�ä¿��"�+�,�œ��D�������	�"�&
                                    �,�-�E���*����6�F�G�����6�å�����æ���"��–�—��
                                      �0�1��	�������³»�¾Y*·�ÀL+¶�çM,Æ� ,¶�ëN-Æ�—-²�ñ¶�÷:Æ�‰»�ýY·�ÿ:»�Y»Y··:¶¶		¶
                                      
                                    ! ¶
                                    
                                    ¶  ¶"¶§�"ý �»�Y*¶´·�¶¹�!�W¶Y6 ÿØ°W°����¯�°�œ��D���^���������&�+ �4!�F"�K#�T$�]%�f&�o'�x(�*�‚+�‰,�¡*�­/�°4�±6�E���\�	���³�Í�N����¥�Î�Ï���  !���—"#��&�Š$���4�|�ª�J��F�j%&��‚�'�o��©�'�o��(���)*���"��¹�+�
                                      ��,�
                                      �Œ�-
                                      �ò�ø.�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class	Tue Oct 12 15:55:12 2010
                                    *************** targetFile�	readFully�(Ljava/io/Reade
                                    *** 38,51 ****
                                      ��¸�I�¹�(C)Ljava/lang/StringBuffer;
                                      ��L�column�
                                      SourceFile�IOToolkit.java�!���������������/�����*·�±����
                                    ! �������/����������
                                    ���	�������������}������¼M§�
                                      +,¶�*,¶�Y>œÿò±����
                                    ! �������<��?�	�@��?��B����4������ ������!�"����#�$��	��%�&����%�&��	��'�����������}������¼M§�
                                      +,¶�(*,¶�-Y>œÿò±����
                                    ! �������N��Q�	�R��Q��T����4������2������!�3����#�4��	��%�&����%�&��	�5�6����������f�����Ä+¶�7š�"+¶�=š�»�Y»�@YB·�D+¶�G¶�K·�O¿*¶�P:6§�Œ2¶�T™�f™�z-Æ�-2¶�W¹�Z�š�e»�8Y+2¶�W·�`:¶�7š�¶�c™�2¸�f§�4»�Y»�@YB·�D¶�G¶�K·�O¿2»�8Y+2¶�W·�`¸�h„¾¡ÿr±����
                                    ! ���B����i��j�&�m�,�n�2�o�=�p�E�q�V�r�[�s�c�r�h�t�x�u�‡�x� �}�¸�n�Ã�€����H����Ä�l�m�����Ä�n�m����Ä�o�p����Ä�q�r��,�˜�s�t��/�”�u�&��h�8�v�m��	�j�k�����������À�����:»�wY*·�yM»�|Y+·�~N�¼:§�-¶�,¶�Y6œÿî,¶�-¶�‚±����
                                    ! ���&�	���Œ�	�������‘�%��1�“�5�”�9�•����H����:�ƒ�m�����:�„�m��	�1�� ���(�!�"���	�%�&��.��%�&���!�#�$��	�…�†�����������È�����B»�‡Y·�‰L�¼M§�
                                      +,¶�Š*,¶�-Y>œÿò+¶�‹:¶�¼:¶�¶�•°����
                                    ! ���&�	���¡��£��¥��¦��¥�"�¨�(�©�1�ª�?�«����H����B�™�2����:�š�›���4�œ�4����%�&���#�%�&��(���ž��1��Ÿ�4��	� �¡�����������¡�����/»�¢Y*·�¤M»�¥Y,·�§N§�-¶�ªW„ÿ£ÿö-¶�ª:,¶�­°����
                                    ! ���&�	���±�	�²��³��´��µ��³�"�·�(�¸�,�¹����4����/�®�m�����/�¯�&��	�&�™�°����±�²��(��Ÿ�³��	�´�µ�����q�����%»�Y·�¶L§�
                                    + ¶�·W„�ÿÿõ+^¶�·W+¶�º°����
                                    ! �������¾��¿��À��Á��¿��Ã� �Ä��������%�»�&�����Ÿ�ž���¼����½
                                    \ No newline at end of file
                                    --- 38,51 ----
                                      ��¸�I�¹�(C)Ljava/lang/StringBuffer;
                                      ��L�column�
                                      SourceFile�IOToolkit.java�!���������������/�����*·�±����
                                    ! �������@����������
                                    ���	�������������}������¼M§�
                                      +,¶�*,¶�Y>œÿò±����
                                    ! �������M��P�	�Q��P��S����4������ ������!�"����#�$��	��%�&����%�&��	��'�����������}������¼M§�
                                      +,¶�(*,¶�-Y>œÿò±����
                                    ! �������_��b�	�c��b��e����4������2������!�3����#�4��	��%�&����%�&��	�5�6����������f�����Ä+¶�7š�"+¶�=š�»�Y»�@YB·�D+¶�G¶�K·�O¿*¶�P:6§�Œ2¶�T™�f™�z-Æ�-2¶�W¹�Z�š�e»�8Y+2¶�W·�`:¶�7š�¶�c™�2¸�f§�4»�Y»�@YB·�D¶�G¶�K·�O¿2»�8Y+2¶�W·�`¸�h„¾¡ÿr±����
                                    ! ���B����z��{�&�~�,��2�€�=��E�‚�V�ƒ�[�„�c�ƒ�h�…�x�†�‡�‰� �Ž�¸��Ã�‘����H����Ä�l�m�����Ä�n�m����Ä�o�p����Ä�q�r��,�˜�s�t��/�”�u�&��h�8�v�m��	�j�k�����������À�����:»�wY*·�yM»�|Y+·�~N�¼:§�-¶�,¶�Y6œÿî,¶�-¶�‚±����
                                    ! ���&�	����	�ž�� ��¡��¢�%�¡�1�¤�5�¥�9�¦����H����:�ƒ�m�����:�„�m��	�1�� ���(�!�"���	�%�&��.��%�&���!�#�$��	�…�†�����������È�����B»�‡Y·�‰L�¼M§�
                                      +,¶�Š*,¶�-Y>œÿò+¶�‹:¶�¼:¶�¶�•°����
                                    ! ���&�	���²��´��¶��·��¶�"�¹�(�º�1�»�?�¼����H����B�™�2����:�š�›���4�œ�4����%�&���#�%�&��(���ž��1��Ÿ�4��	� �¡�����������¡�����/»�¢Y*·�¤M»�¥Y,·�§N§�-¶�ªW„ÿ£ÿö-¶�ª:,¶�­°����
                                    ! ���&�	���Â�	�Ã��Ä��Å��Æ��Ä�"�È�(�É�,�Ê����4����/�®�m�����/�¯�&��	�&�™�°����±�²��(��Ÿ�³��	�´�µ�����q�����%»�Y·�¶L§�
                                    + ¶�·W„�ÿÿõ+^¶�·W+¶�º°����
                                    ! �������Ï��Ð��Ñ��Ò��Ð��Ô� �Õ��������%�»�&�����Ÿ�ž���¼����½
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class	Tue Oct 12 15:55:12 2010
                                    *************** lineNumber�I�columnNumber�length�
                                    *** 6,10 ****
                                      �!�/�*�0�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�2�,length=�4�}
                                      �!�6�� �
                                      SourceFile�MalformedInputEvent.java�!������������������������	�
                                    ! �����x�����*+·�*µ�*µ�*µ�±�����������/��0�
                                    ! �1��2��3����4����������������������������������������/�����*´�¬�����������<��������������������/�����*´�¬�����������F��������������������/�����*´�¬�����������S��������������� �����k�����1»�!Y#·�%*´�¶�(,¶�.*´�¶�(1¶�.*´�¶�(3¶�.¶�5°�����������X��Y��Z�(�[�-�X��������1������7����8
                                    \ No newline at end of file
                                    --- 6,10 ----
                                      �!�/�*�0�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�2�,length=�4�}
                                      �!�6�� �
                                      SourceFile�MalformedInputEvent.java�!������������������������	�
                                    ! �����x�����*+·�*µ�*µ�*µ�±�����������@��A�
                                    ! �B��C��D����4����������������������������������������/�����*´�¬�����������M��������������������/�����*´�¬�����������W��������������������/�����*´�¬�����������d��������������� �����k�����1»�!Y#·�%*´�¶�(,¶�.*´�¶�(1¶�.*´�¶�(3¶�.¶�5°�����������i��j��k�(�l�-�i��������1������7����8
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class	Tue Oct 12 15:55:12 2010
                                    *************** isOverflow
                                    *** 54,80 ****
                                      �`�š�()C�ready�addMalformedInputListener�/(Lgnu/classpath/tools/MalformedInputListener;)V�à�add�(Ljava/lang/Object;)Z�removeMalformedInputListener�à�remove�
                                      SourceFile�NotifyingInputStreamReader.java�!�����
                                    �����������	���������
                                      ������
                                    ��������������������������������������������������������E�����
                                    *+!¸�#·�)±����,���
                                    ! ����¦��§�-�������
                                    �.�/�����
                                    �
                                      �����+��0�����1�3����L�����
                                      *+,¸�5·�;±����,���
                                    ! ����º�	�»�-��� ����
                                      �.�/�����
                                      �
                                      �����
                                      �>�?����=�����L�����
                                      *+,¶�@·�D±����,���
                                    ! �����	��-��� ����
                                      �.�/�����
                                      �
                                      �����
                                    ! �G�H����F�����å�����o*·�I*µ�L*µ�N*µ�P*µ�R*µ�T*»�VY·�Xµ�Y*+µ�[*,µ�]*@¼¸�_µ�e*´�e*´�e¶�g¶�kW*@¼µ�o**´�o¸�qµ�v*´�v*´�v¶�x¶�yW±����,���>����Û��u�	�z����‰����•�(�Ý�-�Þ�2�ß�=�à�L�á�T�â�_�ã�n�ä�-��� ����o�.�/�����o�
                                      �����o��
                                    ���z�K��0�����{����6�����*´�[¶�}±����,���
                                    ! ����é��ê�-��������.�/�����K��0�����{���Ü���� *´�e¶�‚W§ˆ*´�e¶�†=*´�Rš�&*´�]*´�v*´�e*´�P¶�ˆL*´�P™�*µ�R§�*´�]*´�e¶�ŽL*+¶�’µ�T*´�e¶�†>6§�0
                                      *´�e¶�˜ �*Y´�L`µ�L*µ�N§�
                                    *Y´�N`µ�N„¡ÿÐ+¶�œ™�§�þ+¶�’™�}*´�Pš�ð6*´�v¶�Ÿž�*´�v¶�x*´�v¶�Ÿd¸� 6ž�*´�v*´�o¶�¦W*´�v¶�©W*´�[*´�o*´�o¾d¶�¬6œ�*µ�P*´�v¸� `¶�°W§�v+¶�²™�]*+¶�µ·�¸*´�]¶�¼:6§�:*´�e¶�À¶�ä�P*´�e¶�ÆW*´�v*´�v¶�Ÿ`¶�yW*Y´�N`µ�N„+¶�µ¡ÿç�+¶�Ê™�
                                    ! +¶�ͧ�+¶�Í*´�T™þw*´�e¶�ÐW±����,���¾�/���ö��ø��ú��û��ü�.�ý�5�þ�=�I�Q�Y�_�m	�w
                                    ! �
                                    �‰�’�™�œ�£�ª�­�·�Ì�Ñ�à�è�ò�ú�ÿ 	"($),*5+;,J-T.e/o+~6…9Œ?�ø—BŸC�-���f�
                                    ! �� �.�/���.��Ó�Ô��IG�Ó�Ô��}�Õ���Y7�Ö���\�6�×���­�m�Ø���ÿ��Ù��5�I�¾�?�8�C�×����º�»�����®�����<»�ÚY**´�L*´�N·�ÜM*´�Y¹�ß�N§�-¹�å�À�ë:,¹�í�-¹�ñ�šÿç±����,���&�	��K�J�L�M�O�(N�*P�2M�;R�-���4����<�.�/�����<�·����*�ô�õ��� �ö�÷��*��ø�ù���®�ú��0�����{����ï�����_*´�T™�¬6§�Cd*´�e¶�À¸�û6*´�e+`¶�þW`6*´�e¶™�	¡ÿÍ¢�*·¢�
                                    ! *´�T™ÿܬ����,���:���W�X�	[�\�^�_�^�`�.a�5]�Ec�Kd�O\�\g�-���>����_�.�/�����_����_�����_�·����S�Ù����	����®�j��0�����{����`�����"§�*´�e¶™�*´�e¶
                                    ! ¬*·*´�T™ÿæ¬����,������n�o�
                                    p�s�n� v�-�������"�.�/���
                                    �—�����?�����*´�e¶š�*´�T™�¬¬����,������€�-��������.�/��������D�����*´�Y+¹�W±����,���
                                    ! ���‰�Š�-��������.�/������ø�ù�������D�����*´�Y+¹�W±����,���
                                    ! ���“�”�-��������.�/������ø�ù�����
                                    \ No newline at end of file
                                    --- 54,79 ----
                                      �`�š�()C�ready�addMalformedInputListener�/(Lgnu/classpath/tools/MalformedInputListener;)V�à�add�(Ljava/lang/Object;)Z�removeMalformedInputListener�à�remove�
                                      SourceFile�NotifyingInputStreamReader.java�!�����
                                    �����������	���������
                                      ������
                                    ��������������������������������������������������������E�����
                                    *+!¸�#·�)±����,���
                                    ! ����·��¸�-�������
                                    �.�/�����
                                    �
                                      �����+��0�����1�3����L�����
                                      *+,¸�5·�;±����,���
                                    ! �����	��-��� ����
                                      �.�/�����
                                      �
                                      �����
                                      �>�?����=�����L�����
                                      *+,¶�@·�D±����,���
                                    ! �����	��-��� ����
                                      �.�/�����
                                      �
                                      �����
                                    ! �G�H����F�����å�����o*·�I*µ�L*µ�N*µ�P*µ�R*µ�T*»�VY·�Xµ�Y*+µ�[*,µ�]*@¼¸�_µ�e*´�e*´�e¶�g¶�kW*@¼µ�o**´�o¸�qµ�v*´�v*´�v¶�x¶�yW±����,���>����ì��†�	�‹��’��š��¡��¦�(�î�-�ï�2�ð�=�ñ�L�ò�T�ó�_�ô�n�õ�-��� ����o�.�/�����o�
                                      �����o��
                                    ���z�K��0�����{����6�����*´�[¶�}±����,���
                                    ! ����ú��û�-��������.�/�����K��0�����{���Ü���� *´�e¶�‚W§ˆ*´�e¶�†=*´�Rš�&*´�]*´�v*´�e*´�P¶�ˆL*´�P™�*µ�R§�*´�]*´�e¶�ŽL*+¶�’µ�T*´�e¶�†>6§�0
                                      *´�e¶�˜ �*Y´�L`µ�L*µ�N§�
                                    *Y´�N`µ�N„¡ÿÐ+¶�œ™�§�þ+¶�’™�}*´�Pš�ð6*´�v¶�Ÿž�*´�v¶�x*´�v¶�Ÿd¸� 6ž�*´�v*´�o¶�¦W*´�v¶�©W*´�[*´�o*´�o¾d¶�¬6œ�*µ�P*´�v¸� `¶�°W§�v+¶�²™�]*+¶�µ·�¸*´�]¶�¼:6§�:*´�e¶�À¶�ä�P*´�e¶�ÆW*´�v*´�v¶�Ÿ`¶�yW*Y´�N`µ�N„+¶�µ¡ÿç�+¶�Ê™�
                                    ! +¶�ͧ�+¶�Í*´�T™þw*´�e¶�ÐW±����,���¾�/���	���
                                    �.�5�=�I�Q�Y�_�m�w��‰�’!�™"�œ$�£%�ª&�­'�·(�Ì*�Ñ+�à-�è.�ò/�ú.�ÿ01	39$:,;5<;=J>T?e@o<~G…JŒP	—SŸT�-���f�
                                    ! �� �.�/���.��Ó�Ô��IG�Ó�Ô��}�Õ���Y7�Ö���\�6�×���­�m�Ø���ÿ��Ù��5�I�¾�?�8�C�×����º�»�����®�����<»�ÚY**´�L*´�N·�ÜM*´�Y¹�ß�N§�-¹�å�À�ë:,¹�í�-¹�ñ�šÿç±����,���&�	��\�[�]�^�`�(_�*a�2^�;c�-���4����<�.�/�����<�·����*�ô�õ��� �ö�÷��*��ø�ù���®�ú��0�����{����ï�����_*´�T™�¬6§�Cd*´�e¶�À¸�û6*´�e+`¶�þW`6*´�e¶™�	¡ÿÍ¢�*·¢�
                                    ! *´�T™ÿܬ����,���:���h�i�	l�m�o�p�o�q�.r�5n�Et�Ku�Om�\x�-���>����_�.�/�����_����_�����_�·����S�Ù����	����®�j��0�����{����`�����"§�*´�e¶™�*´�e¶
                                    ! ¬*·*´�T™ÿæ¬����,�������€�
                                    �„�� ‡�-�������"�.�/���
                                    �—�����?�����*´�e¶š�*´�T™�¬¬����,������‘�-��������.�/��������D�����*´�Y+¹�W±����,���
                                    ! ���š�›�-��������.�/������ø�ù�������D�����*´�Y+¹�W±����,���
                                    ! ���¤�¥�-��������.�/������ø�ù�����
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 9,14 ****
                                      ��)��*�(I)Ljava/lang/String;
                                      ��,�-�.�toString�()Ljava/lang/String;�haystack�Ljava/lang/String;�needle�replacement�ndx�I�result�Ljava/lang/StringBuffer;�ndx2�
                                      SourceFile�StringToolkit.java�!���������������/�����*·�±����
                                    ! �������!����������
                                    ���	�����������k*+¶�>œ�*°»�Y·�:*¶�¶�W,¶�W+¶�!`>§�*¶�¶�W,¶�W+¶�!`>*+¶�%Y6œÿÛ*¶�(¶�W¶�+°����
                                    ! ���:����0��1�
                                    ! �2��5��6�!�7�(�8�/�:�2�;�?�<�F�=�N�:�Z�?�e�@����H����k�/�0�����k�1�0����k�2�0���e�3�4���V�5�6��2��7�4��W��7�4���8����9
                                    \ No newline at end of file
                                    --- 9,14 ----
                                      ��)��*�(I)Ljava/lang/String;
                                      ��,�-�.�toString�()Ljava/lang/String;�haystack�Ljava/lang/String;�needle�replacement�ndx�I�result�Ljava/lang/StringBuffer;�ndx2�
                                      SourceFile�StringToolkit.java�!���������������/�����*·�±����
                                    ! �������2����������
                                    ���	�����������k*+¶�>œ�*°»�Y·�:*¶�¶�W,¶�W+¶�!`>§�*¶�¶�W,¶�W+¶�!`>*+¶�%Y6œÿÛ*¶�(¶�W¶�+°����
                                    ! ���:����A��B�
                                    ! �C��F��G�!�H�(�I�/�K�2�L�?�M�F�N�N�K�Z�P�e�Q����H����k�/�0�����k�1�0����k�2�0���e�3�4���V�5�6��2��7�4��W��7�4���8����9
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class	Tue Oct 12 15:55:12 2010
                                    *************** optionName�Ljava/lang/String;�	getLen
                                    *** 12,18 ****
                                      �D�G��H�*(Ljava/lang/String;Ljava/util/SortedSet;)V�J�L�K�java/util/List�M�N�add�(Ljava/lang/Object;)Z�P�;gnu/classpath/tools/doclets/InvalidPackageWildcardException�	optionArr�[Ljava/lang/String;�packageMatcher�,Lgnu/classpath/tools/doclets/PackageMatcher;�	tokenizer�Ljava/util/StringTokenizer;�packageWildcard�
                                    groupPackages�Ljava/util/SortedSet;�
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionGroup� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! ���L�K�����������������������	���,�����¬����������P�����������������	���ç�����[»�Y·�M»�Y+2 ·�"N§�-¶�%:,¶�)-¶�,šÿð,*´�
                                      ¸�0¹�6�¶�<:*´�
                                    ! ¸�@»�DY+2·�F¹�I�W¬W¬����V�X�O�����.���V�X�Y�Z�[�$Y�+^�=`�Vb�Xd�Ye����>����[�������[�Q�R���P�S�T���C�U�V����W���=��X�Y���Z����[�\���
                                      ���1�]�
                                    \ No newline at end of file
                                    --- 12,18 ----
                                      �D�G��H�*(Ljava/lang/String;Ljava/util/SortedSet;)V�J�L�K�java/util/List�M�N�add�(Ljava/lang/Object;)Z�P�;gnu/classpath/tools/doclets/InvalidPackageWildcardException�	optionArr�[Ljava/lang/String;�packageMatcher�,Lgnu/classpath/tools/doclets/PackageMatcher;�	tokenizer�Ljava/util/StringTokenizer;�packageWildcard�
                                    groupPackages�Ljava/util/SortedSet;�
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionGroup� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! ���]�\�����������������������	���,�����¬����������a�����������������	���ç�����[»�Y·�M»�Y+2 ·�"N§�-¶�%:,¶�)-¶�,šÿð,*´�
                                      ¸�0¹�6�¶�<:*´�
                                    ! ¸�@»�DY+2·�F¹�I�W¬W¬����V�X�O�����.���g�i�j�k�l�$j�+o�=q�Vs�Xu�Yv����>����[�������[�Q�R���P�S�T���C�U�V����W���=��X�Y���Z����[�\���
                                      ���1�]�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class	Tue Oct 12 15:55:12 2010
                                    *************** printError
                                    *** 18,24 ****
                                      �h�r�s�t�register�(Ljava/util/Map;)V�v�GValue for option -tag must be in format "<tagname>:Xaoptcmf:<taghead>".�	optionArr�[Ljava/lang/String;�tagSpec�validTagSpec�Z�ndx1�I�taglet�Lcom/sun/tools/doclets/Taglet;�ndx2�tagName�tagHead�tagScopeOverview�tagScopePackages�
                                    tagScopeTypes�tagScopeConstructors�tagScopeMethods�tagScopeFields�tagDisabled�n�+Lgnu/classpath/tools/taglets/GenericTaglet;�
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionTag� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! ���…�„�����������������������	���,�����¬����������‰�����������������	���
                                      ���$+2M>,:¶�6œ�™*´�
                                      ´�,¹�%�À�+:Ç�"*´�
                                      »�-Y/·�1,¶�26¶�2¶�8¶�<§Ï*´�
                                    --- 18,24 ----
                                      �h�r�s�t�register�(Ljava/util/Map;)V�v�GValue for option -tag must be in format "<tagname>:Xaoptcmf:<taghead>".�	optionArr�[Ljava/lang/String;�tagSpec�validTagSpec�Z�ndx1�I�taglet�Lcom/sun/tools/doclets/Taglet;�ndx2�tagName�tagHead�tagScopeOverview�tagScopePackages�
                                    tagScopeTypes�tagScopeConstructors�tagScopeMethods�tagScopeFields�tagDisabled�n�+Lgnu/classpath/tools/taglets/GenericTaglet;�
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionTag� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! ���–�•�����������������������	���,�����¬����������š�����������������	���
                                      ���$+2M>,:¶�6œ�™*´�
                                      ´�,¹�%�À�+:Ç�"*´�
                                      »�-Y/·�1,¶�26¶�2¶�8¶�<§Ï*´�
                                    *************** SourceFile�AbstractDoclet.java�Inner
                                    *** 33,38 ****
                                      
                                    ·�j:™�§�¶�m*´�
                                      ´�¶�q*´�
                                      ¸�?¹�M�Wš�*´�
                                    ! u¶�<¬������"�H��Ž���‘�’�%“�*”�I—�Z˜�y›�ˆž�–Ÿ�©¤�µ¥�Ǧ�Ч�Ó¨�à©�ïª�ÿ«¯°³´µ¶·¸"¹%¼.½€¿ƒÀ†Â‰ÃŒÄŒƕǘțʞˡͤΧЪѭӰԳֶ׹ټڿÜÁÝļÎáÒãØäÚåÜæÞçàèâéäêæãéâëëúìíñò"ô����¶���$������$�w�x�� �y����z�{���|�}��%�„�~���µ`�€�}��ÐE����ÓB�‚���ƒ�{��ÿ�„�{�	�ü�…�{�
                                      �ù�†�{��ö�‡�{�"�ó�ˆ�{�
                                    %�ð�‰�{�+�£�Š�}�ë�*�~�‹���Œ�����Ž���
                                      ��� ��
                                    \ No newline at end of file
                                    --- 33,38 ----
                                      
                                    ·�j:™�§�¶�m*´�
                                      ´�¶�q*´�
                                      ¸�?¹�M�Wš�*´�
                                    ! u¶�<¬������"�H��Ÿ� �¡�¢�£�%¤�*¥�I¨�Z©�y¬�ˆ¯�–°�©µ�µ¶�Ç·�и�Ó¹�àº�ï»�ÿ¼ÀÁÄÅÆÇÈÉ"Ê%Í.΀ЃцӉԌÕ֒וؘٛ۞ܡޤߧáªâ­ä°å³ç¶è¹ê¼ë¿íÁîÄÍÎòÒôØõÚöÜ÷Þøàùâúäûæôéóëüúýþ"����¶���$������$�w�x�� �y����z�{���|�}��%�„�~���µ`�€�}��ÐE����ÓB�‚���ƒ�{��ÿ�„�{�	�ü�…�{�
                                      �ù�†�{��ö�‡�{�"�ó�ˆ�{�
                                    %�ð�‰�{�+�£�Š�}�ë�*�~�‹���Œ�����Ž���
                                      ��� ��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** getMessage�¦�/' found, but register me
                                    *** 26,32 ****
                                      �°�Y�±�"java/lang/IllegalArgumentException�³�' cannot be found.�µ� java/lang/ClassNotFoundException�·�java/lang/NoSuchMethodException�	optionArr�[Ljava/lang/String;�tagletLoaded�Z�
                                    useTagletPath�tagletClass�registerTagletMethod�Ljava/lang/reflect/Method;�tempMap�name�taglet�Lcom/sun/tools/doclets/Taglet;�e�Ljava/lang/SecurityException;�-Ljava/lang/reflect/InvocationTargetException;�"Ljava/lang/IllegalAccessException;�$Ljava/lang/IllegalArgumentException;�
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionTaglet� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! ����þ��ý�����������������������	���,�����¬���������������������������	����	��=*´�
                                      ¸�N-Ç�	¸�!N»�'Y-·�)+2¶�*:§�W+2¸�.:3½�/Y5S¶�7:¶�;²�A¶�Gš�$*´�
                                      »�MYO·�Q+2¶�RV¶�R¶�X¶�\§«¶�_¾ž�$*´�
                                      »�MYO·�Q+2¶�Rc¶�R¶�X¶�\§¶�e	~	Ÿ�$*´�
                                    --- 26,32 ----
                                      �°�Y�±�"java/lang/IllegalArgumentException�³�' cannot be found.�µ� java/lang/ClassNotFoundException�·�java/lang/NoSuchMethodException�	optionArr�[Ljava/lang/String;�tagletLoaded�Z�
                                    useTagletPath�tagletClass�registerTagletMethod�Ljava/lang/reflect/Method;�tempMap�name�taglet�Lcom/sun/tools/doclets/Taglet;�e�Ljava/lang/SecurityException;�-Ljava/lang/reflect/InvocationTargetException;�"Ljava/lang/IllegalAccessException;�$Ljava/lang/IllegalArgumentException;�
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionTaglet� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! ���������������������������	���,�����¬���������������������������	����	��=*´�
                                      ¸�N-Ç�	¸�!N»�'Y-·�)+2¶�*:§�W+2¸�.:3½�/Y5S¶�7:¶�;²�A¶�Gš�$*´�
                                      »�MYO·�Q+2¶�RV¶�R¶�X¶�\§«¶�_¾ž�$*´�
                                      »�MYO·�Q+2¶�Rc¶�R¶�X¶�\§¶�e	~	Ÿ�$*´�
                                    *************** SourceFile�AbstractDoclet.java�Inner
                                    *** 38,45 ****
                                      »�MYO·�Q+2¶�R¥¶�R¶�§¶�R¶�X¶�\§�x:*´�
                                      »�MYO·�Q+2¶�Rª¶�R¶�¬¶�R¶�X¶�\§�M:*´�
                                      »�MYO·�Q+2¶�Rª¶�R¶�¯¶�R¶�X¶�\§�"W*´�
                                    ! »�MYO·�Q+2¶�R²¶�R¶�X¶�\¬���$�'�´�),�¶�)N�¡�)y�¨�)¤�­�)Ï�°�)ú�´�����–�%���
                                    ! �
                                    ! ���"�'�(�.�0�@�B�P�q �z!�›#�©$�Ê'�Ó(�ã)�å*�û+	,-,0-1N3P4y6{7¤9¦:Ï<Ñ=ú?û@B����Ž����������¸�¹���º�»��
                                      �¼���$��½�F��0�ü�½�F��B�ê�¾�¿��Ó�V�À�Ž��û�.�Á��	� �Â�Ã�P�&�Ä�Å�{�&�Ä�Æ�¦�&�Ä�Ç�Ñ�&�Ä�È���É����Ê�Ë���
                                      �����
                                    \ No newline at end of file
                                    --- 38,44 ----
                                      »�MYO·�Q+2¶�R¥¶�R¶�§¶�R¶�X¶�\§�x:*´�
                                      »�MYO·�Q+2¶�Rª¶�R¶�¬¶�R¶�X¶�\§�M:*´�
                                      »�MYO·�Q+2¶�Rª¶�R¶�¯¶�R¶�X¶�\§�"W*´�
                                    ! »�MYO·�Q+2¶�R²¶�R¶�X¶�\¬���$�'�´�),�¶�)N�¡�)y�¨�)¤�­�)Ï�°�)ú�´�����–�%����
                                    ! ��$�"#�'&�()�.(�0,�@+�B.�P/�q1�z2�›4�©5�Ê8�Ó9�ã:�å;�û<	=>,A-BNDPEyG{H¤J¦KÏMÑNúPûQS����Ž����������¸�¹���º�»��
                                      �¼���$��½�F��0�ü�½�F��B�ê�¾�¿��Ó�V�À�Ž��û�.�Á��	� �Â�Ã�P�&�Ä�Å�{�&�Ä�Æ�¦�&�Ä�Ç�Ñ�&�Ä�È���É����Ê�Ë���
                                      �����
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class	Tue Oct 12 15:55:12 2010
                                    *************** optionName�Ljava/lang/String;�	getLen
                                    *** 4,11 ****
                                      ����*gnu/classpath/tools/doclets/AbstractDoclet���access$4�	optionArr�[Ljava/lang/String;�
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionTagletPath� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! ���q�p�����������������������	���,�����¬����������u�����������������	���D�����*´�
                                      +2¸�¬�������
                                    ! ���z�
                                    ! {�������������������� ����!�"���
                                      ����#�
                                    \ No newline at end of file
                                    --- 4,11 ----
                                      ����*gnu/classpath/tools/doclets/AbstractDoclet���access$4�	optionArr�[Ljava/lang/String;�
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionTagletPath� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! ���‚������������������������	���,�����¬����������†�����������������	���D�����*´�
                                      +2¸�¬�������
                                    ! ���‹�
                                    ! Œ�������������������� ����!�"���
                                      ����#�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 6,10 ****
                                      ��'�$�%�	compareTo�(Ljava/lang/Object;)I
                                      ��+�(�,�(Ljava/lang/String;)I�getName�
                                      SourceFile�AbstractDoclet.java�InnerClasses�2�*gnu/classpath/tools/doclets/AbstractDoclet�IndexKey�!������������	������
                                    ! ������R�����*·�
                                    *+µ�*+¶�µ�±����������B�D�	E�F��������������������������C�����*´�+À�´�¶� ¬����������J����������������"�#���$�%�����2�����*´�¶�&¬����������O��������������(�)�����C�����*´�+À�´�¶�*¬����������T����������������"�#���-������/�����*´�°����������Y��������������.����/�0���
                                      ���1�3�
                                    \ No newline at end of file
                                    --- 6,10 ----
                                      ��'�$�%�	compareTo�(Ljava/lang/Object;)I
                                      ��+�(�,�(Ljava/lang/String;)I�getName�
                                      SourceFile�AbstractDoclet.java�InnerClasses�2�*gnu/classpath/tools/doclets/AbstractDoclet�IndexKey�!������������	������
                                    ! ������R�����*·�
                                    *+µ�*+¶�µ�±����������S�U�	V�W��������������������������C�����*´�+À�´�¶� ¬����������[����������������"�#���$�%�����2�����*´�¶�&¬����������`��������������(�)�����C�����*´�+À�´�¶�*¬����������e����������������"�#���-������/�����*´�°����������j��������������.����/�0���
                                      ���1�3�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      ��java/util/TreeSet
                                      ��
                                    	����	����	�����LineNumberTable�LocalVariableTable�this�>Lgnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation;�
                                      SourceFile�AbstractDoclet.java�InnerClasses��*gnu/classpath/tools/doclets/AbstractDoclet�InterfaceRelation�!�����������������������	�
                                    ! �����`�����&*·�*»�Y·�µ�*»�Y·�µ�*»�Y·�µ�±����������k�m�n�o�%p��������&��������������
                                      ���� �
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      ��java/util/TreeSet
                                      ��
                                    	����	����	�����LineNumberTable�LocalVariableTable�this�>Lgnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation;�
                                      SourceFile�AbstractDoclet.java�InnerClasses��*gnu/classpath/tools/doclets/AbstractDoclet�InterfaceRelation�!�����������������������	�
                                    ! �����`�����&*·�*»�Y·�µ�*»�Y·�µ�*»�Y·�µ�±����������|�~��€�%��������&��������������
                                      ���� �
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 7,14 ****
                                      �K�Q�R�S�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�U�}
                                      �K�W�I�J�getId�
                                      SourceFile�AbstractDoclet.java�InnerClasses�]�*gnu/classpath/tools/doclets/AbstractDoclet�	UsageType�!�����	�������	�����
                                    ! ���������������
                                    ���������������������������¡������a»�Y·�³�»�Y·�³�»�Y!·�³�#»�Y%·�³�'»�Y)·�³�+»�Y-·�³�/»�Y1·�³�3»�Y5·�³�7±����9���&�	��’�“�”�$•�0–�<—�H˜�T™�`�:�������������F�����
                                    ! *·�;*+µ�=±����9������œ�ž�	Ÿ�:�������
                                      �?������
                                    ! �����@�A�����C�����*´�=+À�´�=¶�B¬����9������£�:��������?�������G�H���I�J�����C�����»�KYM·�O*´�=¶�PT¶�P¶�V°����9������§�:��������?�����X�J�����/�����*´�=°����9������«�:��������?�����Y����Z�[���
                                      ���\�^�
                                    \ No newline at end of file
                                    --- 7,14 ----
                                      �K�Q�R�S�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�U�}
                                      �K�W�I�J�getId�
                                      SourceFile�AbstractDoclet.java�InnerClasses�]�*gnu/classpath/tools/doclets/AbstractDoclet�	UsageType�!�����	�������	�����
                                    ! ���������������
                                    ���������������������������¡������a»�Y·�³�»�Y·�³�»�Y!·�³�#»�Y%·�³�'»�Y)·�³�+»�Y-·�³�/»�Y1·�³�3»�Y5·�³�7±����9���&�	��£�¤�¥�$¦�0§�<¨�H©�Tª�` �:�������������F�����
                                    ! *·�;*+µ�=±����9������­�¯�	°�:�������
                                      �?������
                                    ! �����@�A�����C�����*´�=+À�´�=¶�B¬����9������´�:��������?�������G�H���I�J�����C�����»�KYM·�O*´�=¶�PT¶�P¶�V°����9������¸�:��������?�����X�J�����/�����*´�=°����9������¼�:��������?�����Y����Z�[���
                                      ���\�^�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class	Tue Oct 12 15:55:12 2010
                                    *************** subClasses�addToInterfaces�8(Lcom/sun
                                    *** 129,145 ****
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionGroup�DocletOptionTagþ�=gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet�DocletOptionTaglet�DocletOptionTagletPath�IndexKey�InterfaceRelation�	UsageType!�����#������������	�
                                      ��������
                                      ��
                                    ������������������������������������������������������������ ����!�"����#�"����$�%����&�'����(�����)�����*�����+�����,�-����.�/����0�1����2�����3�����4�����5�����6�����7�����8����:��9�:��;��…����‡*·�<*»�>Y·�@µ�A*»�CY·�Eµ�F*»�CY·�Eµ�H*»�JYL»�NYP¸�R·�X·�[µ�^*»�`Yb·�dµ�e*»�`Yg·�dµ�i*»�`Yk·�dµ�m*»�`Yo·�dµ�q*»�`Ys·�dµ�u*»�wY*y·�{µ�~*»�€Y‚·�„µ�‡*»�`Y‰·�dµ�‹*»�Y·�‘µ�’*»�”Y*–·�˜µ�™*»�›Y*·�Ÿµ� *»�›Y*¢·�Ÿµ�¤*½�¦Y*´�^SY*´�iSY*´�mSY*´�qSY*´�uSY*´�~SY*´�‹SY*´�’SY*´�™SY	*´� SY
                                    ! *´�¤Sµ�¨*µ�ª*»�¬Y·�®µ�¯*µ�±*»�¬Y·�®µ�³*»�¬Y·�®µ�µ*»�¬Y·�®µ�·*»�¬Y·�®µ�¹*»�¬Y·�®µ�»±����½���Ú�6���S��Y��_��k�%�Ð�&�Ñ�,�Ò�8�Ñ�>�Ô�?�Õ�K�×�L�Ø�X�Ú�Y�Û�e�Ý�f�Þ�r�à�s�á��ã�€�ä��æ�Ž�ç�›�é�œ�ê�¨�ì�©�í�µ�ï�¶�ð�Ã�ò�Ä�ó�Ñ�õ�Ò�ö�ßø�àù�çú�îû�õü�üýþ
                                    ! ÿ�"*2:? J…OÓZáeïpý{6†�S�¾������‡�¿�
                                    ���	�À�Á��;���2�����²�Â*·�Ĭ����½�������n�¾��������Ç�
                                    ! ���	�È�É��;���,�����¬����½�������r�¾��������Ê�Ë����Ì�Í��;���3�����*³�±����½���
                                    ! ����y��z�¾���������
                                    ���Î�:��Ï�����Ð�Ò�	�Ô�Õ��;���‡�����²�Â*·�Ö¬L²�Â+¶�Ú¶�Þ¬L+¶�á¬�����	�Ð�����â��½���"����ƒ��„�	�†�
                                    ! �‡��ˆ��Š��‹��Œ�¾��� ���������
                                    ! ��æ�ç����æ�è���é�ê��;���/�����*´�ë°����½�������’�¾��������¿�
                                    ���í�î����Ø�Ù��Ï�����Ð�Ò�;������8*+µ�ë*»�ïY·�ñ·�ò*»�öY·�ø·�ò*»�ùY*¶�û·�ý·�ò*»�Y··�ò*»�Y··�ò*»�Y··�ò*»�Y	··�ò*»�Y··�ò*»
                                    Y··�ò*»Y··�ò=+¹�¾>§�6+¹�2:2:*´�¯¶¹�À�¦:Æ�¶#W„¡ÿË*´�i¶'¸+*´�m¶'¸/*´�q¶'™�§�¸0*´�u¶'™�§�¸1*¶4¶8š�)*¶4¶;š�»�ÐY»>Y@·B*¶4¶C¶G·J¿*¶K±����½���v����œ�� ��¡��¢�*�£�8�¤�F�¥�T�¦�b�§�p�©�{�ª�†�®�“�°��±�£�³�¶�µ�»�¶�Ã�®�Ë�¼�Õ�½�ß�¾�ñ�¿�Á
                                    �Â�Ã%�Ä/�Ã3�È7�É�¾���H���8�¿�
                                    ����8����ˆ�CMN���;ON���&PQ��£� R�
                                    ! ��¶�
                                    �ÇS��67��;���2�����*´�^¶T°����½�������Í�¾��������¿�
                                    ���V�:��;���Î�����F*´�ªš�A<§�*´�¨2M*,·W„*´�¨¾¡ÿë*¶[L=§�+2N*-·W„+¾¡ÿñ*µ�ª±����½���2���	�
                                    ! ���
                                    ! �$�)�.�2�7�@�E�¾���>����F�¿�
                                    ���	�MN����ÇS��)�_�%��+�MN��2��ÇS�]^���YZ��;���H�����*´�¯+¶`+¹c�W±����½���
                                    ! �����¾��������¿�
                                    ������ÇS���Æ�Á��;���n����� *·g*´�¯+¶¹�À�¦M,Æ�,¶i¬¬����½������$�%�&�'�*�¾��� ���� �¿�
                                    ����� m�
                                    ! ����ÇS��no��;���¹�����K»�CY·�EMp+¹r�¶wš�5*´�ë¹{�N6§�+-2¹�¦�,-2¹ƒ�W„-¾¡ÿá,°����½���"���0�1�2�!3�'4�45�?3�I9�¾���4����K�¿�
                                    �����Kˆ‰���CŠ���!�(}‹��$�%MN��Œ��;��r��	���¬*´ŽÇ�£*»�>Y·�@µŽ*¶L»�CY·�EM,+¹“�¶—W,¸›,¶¡N6:§�e-¹¥�À«:¶­¶®¸²6Ÿ�%»³Y·¸:6*´Ž»�CY·�E¹c�W*´Ž¹�À„:+¹�¹ƒ�W-¹»�šÿ˜*´Ž°����½���R���a�b�d�e�f�*g�.h�3i�6j�9k�<l�Gm�Un�\o�gp�kq�~s�Žt�žk�§x�¾���\�	���¬�¿�
                                    ����¾����ˆ¿À��3�tÁÂ��6�qÃÄ��9�nÅÆ��G�WÇÈ��U�IÉÄ��Ž�Ê���’��;������§*´ËÇž*»�¬Y·�®µË*´�ë¹Í�L=+¾>§�2+2:¹Ñ�¶Öž�*´Ë»«Y¹Ñ�·Ù¹c�W„¡ÿÏ*´�ë¹{�M>,¾6§4,2:¹Ú�Ç�B*´Ë»«Y»>Y¹Ý�¸Þ·Bâ¶ä¹ç�¹Ñ�¶ä¶G·Ù¹c�W§�h*´Ë»«Y»>Y¹Ý�¹Ú�¹Ý�¶Ö`¶ë¸Þ·Bâ¶ä¹Ú�¹Ý�¶äâ¶ä¹ç�¹Ñ�¶ä¶G·Ù¹c�W¹ï�:6¾6§�c*´Ë»«Y»>Y2¹ó�¸Þ·Bâ¶ä2¹ö�¹Ý�¶äâ¶ä2¹÷�¹Ñ�¶ä¶G·Ù2¹c�W„¡ÿœ¹ø�:6¾6	§�h2:
                                      *´Ë»«Y»>Y
                                      ¹ü�¸Þ·B
                                      ¹ÿ�¶äâ¶ä
                                    --- 129,144 ----
                                      SourceFile�AbstractDoclet.java�InnerClasses�DocletOptionGroup�DocletOptionTagþ�=gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet�DocletOptionTaglet�DocletOptionTagletPath�IndexKey�InterfaceRelation�	UsageType!�����#������������	�
                                      ��������
                                      ��
                                    ������������������������������������������������������������ ����!�"����#�"����$�%����&�'����(�����)�����*�����+�����,�-����.�/����0�1����2�����3�����4�����5�����6�����7�����8����:��9�:��;��…����‡*·�<*»�>Y·�@µ�A*»�CY·�Eµ�F*»�CY·�Eµ�H*»�JYL»�NYP¸�R·�X·�[µ�^*»�`Yb·�dµ�e*»�`Yg·�dµ�i*»�`Yk·�dµ�m*»�`Yo·�dµ�q*»�`Ys·�dµ�u*»�wY*y·�{µ�~*»�€Y‚·�„µ�‡*»�`Y‰·�dµ�‹*»�Y·�‘µ�’*»�”Y*–·�˜µ�™*»�›Y*·�Ÿµ� *»�›Y*¢·�Ÿµ�¤*½�¦Y*´�^SY*´�iSY*´�mSY*´�qSY*´�uSY*´�~SY*´�‹SY*´�’SY*´�™SY	*´� SY
                                    ! *´�¤Sµ�¨*µ�ª*»�¬Y·�®µ�¯*µ�±*»�¬Y·�®µ�³*»�¬Y·�®µ�µ*»�¬Y·�®µ�·*»�¬Y·�®µ�¹*»�¬Y·�®µ�»±����½���Ú�6���d��j��p��|�%�á�&�â�,�ã�8�â�>�å�?�æ�K�è�L�é�X�ë�Y�ì�e�î�f�ï�r�ñ�s�ò��ô�€�õ��÷�Ž�ø�›�ú�œ�û�¨�ý�©�þ�µ��¶�Ã�Ä�Ñ�Ò�ß	�à
                                    ! �ç�î�õ
                                    �ü
                                    ! "*2:*?1J–OäZòe�p{G†�d�¾������‡�¿�
                                    ���	�À�Á��;���2�����²�Â*·�Ĭ����½��������¾��������Ç�
                                    ! ���	�È�É��;���,�����¬����½�������ƒ�¾��������Ê�Ë����Ì�Í��;���3�����*³�±����½���
                                    ! ����Š��‹�¾���������
                                    ���Î�:��Ï�����Ð�Ò�	�Ô�Õ��;���‡�����²�Â*·�Ö¬L²�Â+¶�Ú¶�Þ¬L+¶�á¬�����	�Ð�����â��½���"����”��•�	�—�
                                    ! �˜��™��›��œ���¾��� ���������
                                    ! ��æ�ç����æ�è���é�ê��;���/�����*´�ë°����½�������£�¾��������¿�
                                    ���í�î����Ø�Ù��Ï�����Ð�Ò�;������8*+µ�ë*»�ïY·�ñ·�ò*»�öY·�ø·�ò*»�ùY*¶�û·�ý·�ò*»�Y··�ò*»�Y··�ò*»�Y··�ò*»�Y	··�ò*»�Y··�ò*»
                                    Y··�ò*»Y··�ò=+¹�¾>§�6+¹�2:2:*´�¯¶¹�À�¦:Æ�¶#W„¡ÿË*´�i¶'¸+*´�m¶'¸/*´�q¶'™�§�¸0*´�u¶'™�§�¸1*¶4¶8š�)*¶4¶;š�»�ÐY»>Y@·B*¶4¶C¶G·J¿*¶K±����½���v����­��±��²��³�*�´�8�µ�F�¶�T�·�b�¸�p�º�{�»�†�¿�“�Á��Â�£�Ä�¶�Æ�»�Ç�Ã�¿�Ë�Í�Õ�Î�ß�Ï�ñ�Ð�Ò
                                    �Ó�Ô%�Õ/�Ô3�Ù7�Ú�¾���H���8�¿�
                                    ����8����ˆ�CMN���;ON���&PQ��£� R�
                                    ! ��¶�
                                    �ÇS��67��;���2�����*´�^¶T°����½�������Þ�¾��������¿�
                                    ���V�:��;���Î�����F*´�ªš�A<§�*´�¨2M*,·W„*´�¨¾¡ÿë*¶[L=§�+2N*-·W„+¾¡ÿñ*µ�ª±����½���2��������$�) �.!�2"�7 �@$�E&�¾���>����F�¿�
                                    ���	�MN����ÇS��)�_�%��+�MN��2��ÇS�]^���YZ��;���H�����*´�¯+¶`+¹c�W±����½���
                                    ! ���.�/�¾��������¿�
                                    ������ÇS���Æ�Á��;���n����� *·g*´�¯+¶¹�À�¦M,Æ�,¶i¬¬����½������5�6�7�8�;�¾��� ���� �¿�
                                    ����� m�
                                    ! ����ÇS��no��;���¹�����K»�CY·�EMp+¹r�¶wš�5*´�ë¹{�N6§�+-2¹�¦�,-2¹ƒ�W„-¾¡ÿá,°����½���"���A�B�C�!D�'E�4F�?D�IJ�¾���4����K�¿�
                                    �����Kˆ‰���CŠ���!�(}‹��$�%MN��Œ��;��r��	���¬*´ŽÇ�£*»�>Y·�@µŽ*¶L»�CY·�EM,+¹“�¶—W,¸›,¶¡N6:§�e-¹¥�À«:¶­¶®¸²6Ÿ�%»³Y·¸:6*´Ž»�CY·�E¹c�W*´Ž¹�À„:+¹�¹ƒ�W-¹»�šÿ˜*´Ž°����½���R���r�s�u�v�w�*x�.y�3z�6{�9|�<}�G~�U�\€�g�k‚�~„�Ž…�ž|�§‰�¾���\�	���¬�¿�
                                    ����¾����ˆ¿À��3�tÁÂ��6�qÃÄ��9�nÅÆ��G�WÇÈ��U�IÉÄ��Ž�Ê���’��;������§*´ËÇž*»�¬Y·�®µË*´�ë¹Í�L=+¾>§�2+2:¹Ñ�¶Öž�*´Ë»«Y¹Ñ�·Ù¹c�W„¡ÿÏ*´�ë¹{�M>,¾6§4,2:¹Ú�Ç�B*´Ë»«Y»>Y¹Ý�¸Þ·Bâ¶ä¹ç�¹Ñ�¶ä¶G·Ù¹c�W§�h*´Ë»«Y»>Y¹Ý�¹Ú�¹Ý�¶Ö`¶ë¸Þ·Bâ¶ä¹Ú�¹Ý�¶äâ¶ä¹ç�¹Ñ�¶ä¶G·Ù¹c�W¹ï�:6¾6§�c*´Ë»«Y»>Y2¹ó�¸Þ·Bâ¶ä2¹ö�¹Ý�¶äâ¶ä2¹÷�¹Ñ�¶ä¶G·Ù2¹c�W„¡ÿœ¹ø�:6¾6	§�h2:
                                      *´Ë»«Y»>Y
                                      ¹ü�¸Þ·B
                                      ¹ÿ�¶äâ¶ä
                                    *************** SourceFile�AbstractDoclet.java�Inner
                                    *** 147,168 ****
                                      ¹�¹Ñ�¶ä¶G·Ù
                                      ¹c�W„	¡ÿ—¹�:6	¾6
                                      §�h	2:*´Ë»«Y»>Y¹�¸Þ·B¹�¶äâ¶ä¹�¹Ý�¶äâ¶ä¹
                                    �¹Ñ�¶ä¶G·Ù¹c�W„		
                                    ! ¡ÿ—„¡ýÌ*´Ë°����½���‚� ��€�…�‰�Š�$‹�)Œ�6�PŠ�X“�b”�k•�p–�z—�¹š�曚'ž2Ÿž™¡¢¢­£´¤¢¦"§-¨4©§™”¢­�¾���Ê���§�¿�
                                    ���†���:MN��!�7ON��)�'��b@‹��d>MN��h:ON��p)‰�'rñ�*�oN�/�jN�¢�÷ú�¥�tN�ª�oN�	´�[�
                                      "�w�%�tN�	*�oN�
                                      4�[���ô�õ��;���J�����*´�A+¹�+¹c�W±����½���
                                    ! ���²�³�¾��������¿�
                                    ����� ��!"��;��˜��
                                    ��h*´�A¹“�¹#�:§M¹¥�À:*´�A¹�:À:,¶&:	¹,� 	Ç�
                                    ¹/�š�t	Æ	¹2�™�
                                    ¹7�š�[	¹:�™�
                                    ¹=�š�G	¹@�™�
                                    ¹C�š�3	ÁÒ™�
                                    ¹F�š�!	¹I�š�
                                    	¹L�™�¥¹O�™�›»�CY·�E:
                                      6§�'+2¹R�¶ë¶w™�
                                      +2¹ƒ�W„+¾¡ÿØ
                                      
                                    ! ¹U�½S¹X�À\:Á�™�*,¶^:§�(Áb™�Àb,¹d�:§�¹g�:Æ�-¹j�¹»�šþ¯±����½���v���·�¸�¹�,º�3»�9¼�E½�J¾�T¿�YÀ�mÁ�Â�•Ã�§Ä�ÅÆ�ÎÇ�ÔÈ�éÉ�õÇ�ÿÍÐÑ+Ó3ÔE×PÙUÚ]·gÞ�¾���¢���h�¿�
                                    ����ho]���hpq���hrs���ht�'��WÁÂ��>u�
                                      ��,1vw��3* ��9$xy�	��z��
                                      ��.MN��H{]�(�|�
                                      �B�|�
                                      �P�
                                    |�
                                    ! ��}~��;���ñ�����k*´�A+¹R�¶ë¹�À:Æ�6Áb™�Àb+,¹�:§�
                                    +¹‚�:Æ�(-¹j�§�*»>Y…·B+¹R�¶ä¶G¶‡±����½���&�	��â�ã�å�%æ�6é�@ë�Eì�Pð�jò�¾���H����k�¿�
                                    �����kŠ‹����kpq����krs���S ��3�|�
                                      ��@�|�
                                      ��Œ��;���U�����	*+,-¶Ž±����½���
                                    ! ���ö�÷�¾���*����	�¿�
                                    �����	o]����	pq����	rs��‘��;��+��	���}+,¹�À:Ç�»�¬Y·�®:+,¹c�W¹�À:Ç�»’Y·”:¹c�W-¹�À$:Ç�»•Y·—:-¹c�W¹˜�W±����½���:���ÿ�����$�2�7�@�L�Y�^
                                    �g�r�|�¾���\�	���}�¿�
                                    �����}�+�����}™‰����}š›����}œy����}���qž���2�KŸ���Y�$ �/��¡��;��h����j»�¬Y·�®L*´�ë¹{�M>,¾6§J,2:¹¢�™�N*¶£¹�À¦:´¨¹#�:§�"¹¥�Às:*+²«¹ç�·°¹»�šÿÚ§�0¹�:§�*+²²¹ç�·°¹�:Çÿâ¹ï�:6¾6§�32:		¹µ�¹¹�:
                                      
                                      �*+
                                      ²¾	¹ç�·°„¡ÿ̹ø�:6¾6	§�²2:
                                    --- 146,167 ----
                                      ¹�¹Ñ�¶ä¶G·Ù
                                      ¹c�W„	¡ÿ—¹�:6	¾6
                                      §�h	2:*´Ë»«Y»>Y¹�¸Þ·B¹�¶äâ¶ä¹�¹Ý�¶äâ¶ä¹
                                    �¹Ñ�¶ä¶G·Ù¹c�W„		
                                    ! ¡ÿ—„¡ýÌ*´Ë°����½���‚� ��‘�–�š�›�$œ�)�6ž�P›�X¤�b¥�k¦�p§�z¨�¹«�欫®'¯2°¯™²¢³­´´µ³·"¸-¹4º¸™¥¢¾�¾���Ê���§�¿�
                                    ���†���:MN��!�7ON��)�'��b@‹��d>MN��h:ON��p)‰�'rñ�*�oN�/�jN�¢�÷ú�¥�tN�ª�oN�	´�[�
                                      "�w�%�tN�	*�oN�
                                      4�[���ô�õ��;���J�����*´�A+¹�+¹c�W±����½���
                                    ! ���Ã�Ä�¾��������¿�
                                    ����� ��!"��;��˜��
                                    ��h*´�A¹“�¹#�:§M¹¥�À:*´�A¹�:À:,¶&:	¹,� 	Ç�
                                    ¹/�š�t	Æ	¹2�™�
                                    ¹7�š�[	¹:�™�
                                    ¹=�š�G	¹@�™�
                                    ¹C�š�3	ÁÒ™�
                                    ¹F�š�!	¹I�š�
                                    	¹L�™�¥¹O�™�›»�CY·�E:
                                      6§�'+2¹R�¶ë¶w™�
                                      +2¹ƒ�W„+¾¡ÿØ
                                      
                                    ! ¹U�½S¹X�À\:Á�™�*,¶^:§�(Áb™�Àb,¹d�:§�¹g�:Æ�-¹j�¹»�šþ¯±����½���v���È�É�Ê�,Ë�3Ì�9Í�EÎ�JÏ�TÐ�YÑ�mÒ�Ó�•Ô�§Õ�Å×�ÎØ�ÔÙ�éÚ�õØ�ÿÞáâ+ä3åEèPêUë]Ègï�¾���¢���h�¿�
                                    ����ho]���hpq���hrs���ht�'��WÁÂ��>u�
                                      ��,1vw��3* ��9$xy�	��z��
                                      ��.MN��H{]�(�|�
                                      �B�|�
                                      �P�
                                    |�
                                    ! ��}~��;���ñ�����k*´�A+¹R�¶ë¹�À:Æ�6Áb™�Àb+,¹�:§�
                                    +¹‚�:Æ�(-¹j�§�*»>Y…·B+¹R�¶ä¶G¶‡±����½���&�	��ó�ô�ö�%÷�6ú�@ü�Eý�P�j�¾���H����k�¿�
                                    �����kŠ‹����kpq����krs���S ��3�|�
                                      ��@�|�
                                      ��Œ��;���U�����	*+,-¶Ž±����½���
                                    ! �����¾���*����	�¿�
                                    �����	o]����	pq����	rs��‘��;��+��	���}+,¹�À:Ç�»�¬Y·�®:+,¹c�W¹�À:Ç�»’Y·”:¹c�W-¹�À$:Ç�»•Y·—:-¹c�W¹˜�W±����½���:�������$�2�7�@�L�Y�^�g�r!�|"�¾���\�	���}�¿�
                                    �����}�+�����}™‰����}š›����}œy����}���qž���2�KŸ���Y�$ �/��¡��;��h����j»�¬Y·�®L*´�ë¹{�M>,¾6§J,2:¹¢�™�N*¶£¹�À¦:´¨¹#�:§�"¹¥�Às:*+²«¹ç�·°¹»�šÿÚ§�0¹�:§�*+²²¹ç�·°¹�:Çÿâ¹ï�:6¾6§�32:		¹µ�¹¹�:
                                      
                                      �*+
                                      ²¾	¹ç�·°„¡ÿ̹ø�:6¾6	§�²2:
                                    *************** SourceFile�AbstractDoclet.java�Inner
                                    *** 174,198 ****
                                      ¹Ñ�:
                                    6
                                    ¾6§� 
                                    2:*+²Ô
                                      ¹ç�·°„¡ÿß„	¡ÿM¹�:6	¾6
                                      §�	2:¹×�:6
                                    ¾6§�3
                                    2:¹Ë�¹¹�:Æ�*+²Ø¹ç�·°„
                                    
                                    ¡ÿ̹Û�:
                                    6
                                    ¾6§� 
                                    2:*+²Ü¹ç�·°„¡ÿß„		
                                    ! ¡ÿo„¡ý¶+°����½��J�R������ �*!�8 �:"�F#�I$�U%�W&�e%�h#�u+�-�ƒ.�‘-�”,�+�¢2�«3�¶4�½7�Ë8�Ð9�Ò:�×;�à9�ã3�í?�ö@AEFGH"I+G.K7L=PDQRRWSYT^UgSjLu[~\‰]^’_—` ^£\­@·dÀeËgÒiÛjæníoûp�qrsqjy&z1{8|:}?~H|KzUe_h‚�¾��œ�)��j�¿�
                                    ���bß���X}‹��TMN��PON�� ?à‰��:�;áâ��F�/ÁÂ��U�ã‰��~�$‰��«´ñ��®�?N��³�:N��½�&äå�	�Ë�æ‰�
                                      �öiú��ù�¾N��þ�¹N�	�¥�
                                      �—É�7�vÉç�:�;èN�
                                    D�&éê�R�ë‰�~�/Ó‹�
                                    �,èN�†�'ìN��í‰�À�Ÿ�Ã�œN�	È�—N�
                                    ! Ò�ƒ�Û�zÉç�Þ�?èN�
                                    ã�:ìN�í�&éê�û�ë‰�&�/Ó‹�
                                    )�,èN�.�'ìN�8�í‰��îï��;���Y�����*´�±Ç�**·ðµ�±*´�±+¹�À°����½������‰�Š�Œ�¾��������¿�
                                    �����ˆ‰��ò�W��;���q�����*´óÇ�¸õM*û,¸ýµó*´ó+¶°����½������³�´�¶�·�¶�º�¾��� �����¿�
                                    ������
                                      �������;���O�����*+¶	½�Y,S¸
                                    ! °����½������¿�¾��� �����¿�
                                    ������
                                      �����
                                    ! ����;���/�����*´�F°����½������Ä�¾��������¿�
                                    �����Ï�����Ò�;���§�����5»�NY+·N»�NY,·:-¶8™�-*´�‹¶'*´�’¶¸±����½���&�	��Ê�Ë�Í� Î�!Ï�#Ð�*Ñ�1Î�4Ó�¾���4����5�¿�
                                    �����5"#����5$#���)%#���&#��'(��Ï�����Ò�;��"����:*´)Ç�´=§�y+*´�ë¹�22¶wš�-*´�ë¹�22¶w™�J*»/Y·1µ)*´�ë¹�22N»2Y-²4·7:§�*´)»�NY¶:·�X¹˜�W¶=šÿå„*´�ë¹�¾¡ÿ*´)Ç�$*»/Y·1µ)*´)»�NYP¸�R·�X¹˜�W+¹Ñ�.²@¶CM*´)¹#�N»�CY·�E:§�,-¹¥�À�N:»�NY,·:¶8™�
                                    ¹ƒ�W-¹»�šÿѹG�™�!»�ÒY»>YJ·B+¹Ñ�¶ä¶G·L¿°����½���j���ä�å�æ�"ç�8è�Cé�Qê�^ë�aì�wë�å�ð�—ñ�¢ò�¸ö�Ç÷�Ñø�Úù�Ýú�èû�ôü�üýù�7�¾���f�
                                      ��:�¿�
                                    ����:M��	�‡MN��Q�.N�
                                      ��^�!OP���sQ�
                                    ! ��Ñ�iÁÂ��Ú�`Š���è�R#��ô�S#��TU��Ï�����Ò�;���õ�����y*+¹ç�¶VM,¹X�N§�@-¹¥�À�N:»�NY»>Y+¸Y¹Ý�¸Þ·B]¶ä¶G·:¶8™�°-¹»�šÿ½»�ÒY»>Y_·B+¹a�¶ä¶G·L¿����½���&�	����
                                    �� �G�O�R
                                    �[�¾���>����y�¿�
                                    �����yˆ‰���nd����gÁÂ�� �2S#��G�e#���à�Z��;���l�����,*´�ëÆ�*´�ë+¹f�§�²g»>Yk·B+¶ä¶G¶m±����½���������+ �¾�������,�¿�
                                    �����,r�
                                    ! ��‰�Z��;���l�����,*´�ëÆ�*´�ë+¹s�§�²g»>Yt·B+¶ä¶G¶m±����½������$�%�(�+*�¾�������,�¿�
                                    �����,v�
                                      ��w�Z��;���\�����*´�ëÆ�*´�ë+¹x�§�
                                    ! ²g+¶m±����½������.�/�2�4�¾��������¿�
                                    �����z�
                                      ��[\��;���K�����§�
                                    ! *¹Ú�K*¹Ú�Çÿó*°����½������8�9�
                                    ! 8�;�¾�������ˆ‰���{–��;���à�����f*´|Ç�]*»•Y·—µ|*´�ë¹Í�L=§�*´|+2¹~�W„+¾¡ÿí*´�ë¹�M>§�*´|,2¹ç�¹~�W„,¾¡ÿè*´|°����½���.���B�C�D�E�!F�.E�7H�AI�FJ�XI�aM�¾���4����f�¿�
                                    ����EÏ���MN��A� ƒ‹��C�MN��„…��;���Q�����*´�‡¶†š�¬*´�‡+¶‰¬����½������R�
                                    ! S�V�¾��������¿�
                                    �����M��Œ��;���i�����)+¹¹�Æ�*+¹¹�¹ç�¶Žš�
                                    ! +¹�°+¹‘�°����½������\�	]�^�"a�¾�������)�¿�
                                    �����)·”��•–��;���’�����,+¹—�N6§�,-2¹˜�W*-2,·š„-¾¡ÿå±����½������u�v�
                                    w�x�!v�+z�¾���4����,�¿�
                                    �����,ˆ‰����,œ�/���%™‹��
                                    ! �!MN����;��'�����•*´žÇ�Œ*»�¬Y·�®µž*¶ ¹{�L=§�l+2¹¢�š�^+2¹�N§�N-¹a�p¶wš�8*´ž-¹�À„:Ç�»�CY·�E:*´ž-¹c�W+2¹ƒ�W-¹�N-Çÿ´„+¾¡ÿ”*´ž°����½���F���€��ƒ�„�!…�,†�5‡�8Š�G‹�VŒ�[�dŽ�q�|ˆ�ƒ‡�‡„�–�¾���4����•�¿�
                                    ����t¢‹���rMN��5�R£‰��V�&¤���¥¦��;���Ì�����V>§�M*´§,2¹�À¦:Ç�»¦Y·©:*´§,2¹c�W´¨+¹˜�W*+,2¹—�·ª„,¾¡ÿ³±����½���*�
                                    ! ���Ÿ�ž� �¡�$¢�3¤�?¥�L�U§�¾���4����V�¿�
                                    �����Vˆ‰����V™‹���SMN���6¬â��¥��;������*´§Ç	*»�¬Y·�®µ§*¶ ¹{�L=§�2+2¹¢�™�$»¦Y·©N*+2-´­·š*´§+2-¹c�W„+¾¡ÿÎ*´§¹“�¹#�M§�b,¹¥�ÀsN*´§-¹�À¦:´­¹#�:§�0¹¥�Às:*´§¹�À¦:Æ�´°-¹˜�W¹»�šÿÌ,¹»�šÿ›>§�5+2¹¢�š�'+2:§�*+2¹—�·ª¹�:Çÿç„+¾¡ÿË*´§°����½���z���«�¬�®�¯�!°�,±�4²�?³�M¯�V·�e¸�h¹�r»�º�¼�½�¾�œÀ�ª¿�¬Á�±Â�½½�Ǹ�ÐÇ�ÕÈ�àÉ�èÊ�öÉÇ
                                    Ð�¾���z����¿�
                                    ����ñ¢‹���8MN��4�áâ��e�¨ÁÂ��r�U³‰���Fáâ���:´Â��œ�!µ‰��¬�¶â��Ò�;MN��å�£‰��·¸��;���‰�����)*´�³+¹�À¹M,Ç�+¹ø�N-¶ºÀ¹M,¸½,°,°����½������×�Ø�Ù�Ú�!Û�%Ü�'Þ�¾���*����)�¿�
                                    �����)ˆ‰���Š���ú��ÂÃ��;���‰�����)*´�µ+¹�ÀÄM,Ç�+¹�N-¶ÅÀÄM,¸½,°,°����½������å�æ�ç�è�!é�%ê�'ì�¾���*����)�¿�
                                    �����)ˆ‰���Š�����ÆÇ��;���‰�����)*´�·+¹�ÀÈM,Ç�+¹ï�N-¶ÉÀÈM,¸½,°,°����½������ó�ô�õ�ö�!÷�%ø�'ú�¾���*����)�¿�
                                    �����)ˆ‰���Š���ñ��ÊË��;���‰�����)*´�¹+¹�ÀÌM,Ç�+¹Í�N-¶ÐÀÌM,¸½,°,°����½����������!�%�'�¾���*����)�¿�
                                    �����)ˆ‰���Š‹���Ï‹�`a��Ñ�Ý���ÒÓ��;���’�����,»•Y·—M+¹Ô�N6§�,-2¹~�W„-¾¡ÿî,°����½���������� �*�¾���4����,�¿�
                                    �����,×Ø���$Š�1���Ó‹���N��ÙÚ��;���|�����,+¹Û�™�$§�+¹a�Þ¶w™�¬+¹�L+Çÿ第����½���"����	��� �$�("�*%�¾�������,�¿�
                                    �����,ˆ‰��àá��;���»�����C+N§�;-¹â�:6§�2¹ó�,¶w™�	2°„¾¡ÿá-¹�N-ÇÿÇ°����½���"���+�,�-�.�%/�+-�6+�A3�¾���>����C�¿�
                                    �����Cˆ‰����Cå�
                                    ! ���?£‰���(ñ���%MN��æç��;�������*´�»+¹�À$M,Ç�p»•Y·—M+N§�S-¹—�:6§�6,2¹˜�W*¶£2¹�À¦:Æ�,´­¹è�W„¾¡ÿÈ-¹�N-Çÿ¯*´�»+,¹c�W,°����½���>���:�;�<�>�?�'@�-A�9C�JB�LD�QE�]@�h>�sJ�M�¾���H�����¿�
                                    �����ˆ‰���sŠ�/���W£‰��'�A™‹��*�>MN��L�áâ��é*��;���;�����*¶ê¹ì�£�¬¬����½������R�¾��������¿�
                                    ���íê��;���<�����*¶ê¹#�¹¥�ÀÒ°����½������W�¾��������¿�
                                    ��îï��;���%�����*´ð°����½�������d�¾�����òó��;���%�����*´�H°����½�������k�¾�����ôõ��;���%�����*´�ë°����½�������•�¾�����öó��;���%�����*´�F°����½�������_�¾�����÷�}��;���&�����*+µð±����½�������d�¾������ø���ùú���:��w�û��›�ü�ý�ÿ��”���«��¦��¬��
                                    \ No newline at end of file
                                    --- 173,199 ----
                                      ¹Ñ�:
                                    6
                                    ¾6§� 
                                    2:*+²Ô
                                      ¹ç�·°„¡ÿß„	¡ÿM¹�:6	¾6
                                      §�	2:¹×�:6
                                    ¾6§�3
                                    2:¹Ë�¹¹�:Æ�*+²Ø¹ç�·°„
                                    
                                    ¡ÿ̹Û�:
                                    6
                                    ¾6§� 
                                    2:*+²Ü¹ç�·°„¡ÿß„		
                                    ! ¡ÿo„¡ý¶+°����½��J�R��)�+�,�-� /�*2�81�:3�F4�I5�U6�W7�e6�h4�u<�>�ƒ?�‘>�”=�<�¢C�«D�¶E�½H�ËI�ÐJ�ÒK�×L�àJ�ãD�íP�öQRVWXY"Z+X.\7]=aDbRcWdYe^fgdj]ul~m‰no’p—q o£m­Q·uÀvËxÒzÛ{æí€û�‚ƒ„‚{Š&‹1Œ8:Ž?HK‹Uv_,h“�¾��œ�)��j�¿�
                                    ���bß���X}‹��TMN��PON�� ?à‰��:�;áâ��F�/ÁÂ��U�ã‰��~�$‰��«´ñ��®�?N��³�:N��½�&äå�	�Ë�æ‰�
                                      �öiú��ù�¾N��þ�¹N�	�¥�
                                      �—É�7�vÉç�:�;èN�
                                    D�&éê�R�ë‰�~�/Ó‹�
                                    �,èN�†�'ìN��í‰�À�Ÿ�Ã�œN�	È�—N�
                                    ! Ò�ƒ�Û�zÉç�Þ�?èN�
                                    ã�:ìN�í�&éê�û�ë‰�&�/Ó‹�
                                    )�,èN�.�'ìN�8�í‰��îï��;���Y�����*´�±Ç�**·ðµ�±*´�±+¹�À°����½������š�›��¾��������¿�
                                    �����ˆ‰��ò�W��;���q�����*´óÇ�¸õM*û,¸ýµó*´ó+¶°����½������Ä�Å�Ç�È�Ç�Ë�¾��� �����¿�
                                    ������
                                      �������;���O�����*+¶	½�Y,S¸
                                    ! °����½������Ð�¾��� �����¿�
                                    ������
                                      �����
                                    ! ����;���/�����*´�F°����½������Õ�¾��������¿�
                                    �����Ï�����Ò�;���§�����5»�NY+·N»�NY,·:-¶8™�-*´�‹¶'*´�’¶¸±����½���&�	��Û�Ü�Þ� ß�!à�#á�*â�1ß�4ä�¾���4����5�¿�
                                    �����5"#����5$#���)%#���&#��'(��Ï�����Ò�;��"����:*´)Ç�´=§�y+*´�ë¹�22¶wš�-*´�ë¹�22¶w™�J*»/Y·1µ)*´�ë¹�22N»2Y-²4·7:§�*´)»�NY¶:·�X¹˜�W¶=šÿå„*´�ë¹�¾¡ÿ*´)Ç�$*»/Y·1µ)*´)»�NYP¸�R·�X¹˜�W+¹Ñ�.²@¶CM*´)¹#�N»�CY·�E:§�,-¹¥�À�N:»�NY,·:¶8™�
                                    ¹ƒ�W-¹»�šÿѹG�™�!»�ÒY»>YJ·B+¹Ñ�¶ä¶G·L¿°����½���j���õ�ö�÷�"ø�8ù�Cú�Qû�^ü�aý�wü�ö��—�¢�¸�Ç�Ñ	�Ú
                                    ! �Ý�è�ô
                                    �ü
                                    ! 7�¾���f�
                                      ��:�¿�
                                    ����:M��	�‡MN��Q�.N�
                                      ��^�!OP���sQ�
                                    ! ��Ñ�iÁÂ��Ú�`Š���è�R#��ô�S#��TU��Ï�����Ò�;���õ�����y*+¹ç�¶VM,¹X�N§�@-¹¥�À�N:»�NY»>Y+¸Y¹Ý�¸Þ·B]¶ä¶G·:¶8™�°-¹»�šÿ½»�ÒY»>Y_·B+¹a�¶ä¶G·L¿����½���&�	������  �G!�O"�R�[&�¾���>����y�¿�
                                    �����yˆ‰���nd����gÁÂ�� �2S#��G�e#���à�Z��;���l�����,*´�ëÆ�*´�ë+¹f�§�²g»>Yk·B+¶ä¶G¶m±����½������+�,�/�+1�¾�������,�¿�
                                    �����,r�
                                    ! ��‰�Z��;���l�����,*´�ëÆ�*´�ë+¹s�§�²g»>Yt·B+¶ä¶G¶m±����½������5�6�9�+;�¾�������,�¿�
                                    �����,v�
                                      ��w�Z��;���\�����*´�ëÆ�*´�ë+¹x�§�
                                    ! ²g+¶m±����½������?�@�C�E�¾��������¿�
                                    �����z�
                                      ��[\��;���K�����§�
                                    ! *¹Ú�K*¹Ú�Çÿó*°����½������I�J�
                                    ! I�L�¾�������ˆ‰���{–��;���à�����f*´|Ç�]*»•Y·—µ|*´�ë¹Í�L=§�*´|+2¹~�W„+¾¡ÿí*´�ë¹�M>§�*´|,2¹ç�¹~�W„,¾¡ÿè*´|°����½���.���S�T�U�V�!W�.V�7Y�AZ�F[�XZ�a^�¾���4����f�¿�
                                    ����EÏ���MN��A� ƒ‹��C�MN��„…��;���Q�����*´�‡¶†š�¬*´�‡+¶‰¬����½������c�
                                    ! d�g�¾��������¿�
                                    �����M��Œ��;���i�����)+¹¹�Æ�*+¹¹�¹ç�¶Žš�
                                    ! +¹�°+¹‘�°����½������m�	n�o�"r�¾�������)�¿�
                                    �����)·”��•–��;���’�����,+¹—�N6§�,-2¹˜�W*-2,·š„-¾¡ÿå±����½������†�‡�
                                    ˆ�‰�!‡�+‹�¾���4����,�¿�
                                    �����,ˆ‰����,œ�/���%™‹��
                                    ! �!MN����;��'�����•*´žÇ�Œ*»�¬Y·�®µž*¶ ¹{�L=§�l+2¹¢�š�^+2¹�N§�N-¹a�p¶wš�8*´ž-¹�À„:Ç�»�CY·�E:*´ž-¹c�W+2¹ƒ�W-¹�N-Çÿ´„+¾¡ÿ”*´ž°����½���F���‘�’�”�•�!–�,—�5˜�8›�Gœ�V�[ž�dŸ�q¡�|™�ƒ˜�‡•�§�¾���4����•�¿�
                                    ����t¢‹���rMN��5�R£‰��V�&¤���¥¦��;���Ì�����V>§�M*´§,2¹�À¦:Ç�»¦Y·©:*´§,2¹c�W´¨+¹˜�W*+,2¹—�·ª„,¾¡ÿ³±����½���*�
                                    ! ��®�°�¯�±�²�$³�3µ�?¶�L®�U¸�¾���4����V�¿�
                                    �����Vˆ‰����V™‹���SMN���6¬â��¥��;������*´§Ç	*»�¬Y·�®µ§*¶ ¹{�L=§�2+2¹¢�™�$»¦Y·©N*+2-´­·š*´§+2-¹c�W„+¾¡ÿÎ*´§¹“�¹#�M§�b,¹¥�ÀsN*´§-¹�À¦:´­¹#�:§�0¹¥�Às:*´§¹�À¦:Æ�´°-¹˜�W¹»�šÿÌ,¹»�šÿ›>§�5+2¹¢�š�'+2:§�*+2¹—�·ª¹�:Çÿç„+¾¡ÿË*´§°����½���z���¼�½�¿�À�!Á�,Â�4Ã�?Ä�MÀ�VÈ�eÉ�hÊ�rÌ�Ë�Í�Î�Ï�œÑ�ªÐ�¬Ò�±Ó�½Î�ÇÉ�ÐØ�ÕÙ�àÚ�èÛ�öÚØ
                                    á�¾���z����¿�
                                    ����ñ¢‹���8MN��4�áâ��e�¨ÁÂ��r�U³‰���Fáâ���:´Â��œ�!µ‰��¬�¶â��Ò�;MN��å�£‰��·¸��;���‰�����)*´�³+¹�À¹M,Ç�+¹ø�N-¶ºÀ¹M,¸½,°,°����½������è�é�ê�ë�!ì�%í�'ï�¾���*����)�¿�
                                    �����)ˆ‰���Š���ú��ÂÃ��;���‰�����)*´�µ+¹�ÀÄM,Ç�+¹�N-¶ÅÀÄM,¸½,°,°����½������ö�÷�ø�ù�!ú�%û�'ý�¾���*����)�¿�
                                    �����)ˆ‰���Š�����ÆÇ��;���‰�����)*´�·+¹�ÀÈM,Ç�+¹ï�N-¶ÉÀÈM,¸½,°,°����½����������!�%	�'�¾���*����)�¿�
                                    �����)ˆ‰���Š���ñ��ÊË��;���‰�����)*´�¹+¹�ÀÌM,Ç�+¹Í�N-¶ÐÀÌM,¸½,°,°����½����������!�%�'�¾���*����)�¿�
                                    �����)ˆ‰���Š‹���Ï‹�`a��Ñ�Ý���ÒÓ��;���’�����,»•Y·—M+¹Ô�N6§�,-2¹~�W„-¾¡ÿî,°����½������"�#�$�%� $�*'�¾���4����,�¿�
                                    �����,×Ø���$Š�1���Ó‹���N��ÙÚ��;���|�����,+¹Û�™�$§�+¹a�Þ¶w™�¬+¹�L+Çÿ第����½���"���,�	-�.�/�1�$-�(3�*6�¾�������,�¿�
                                    �����,ˆ‰��àá��;���»�����C+N§�;-¹â�:6§�2¹ó�,¶w™�	2°„¾¡ÿá-¹�N-ÇÿÇ°����½���"���<�=�>�?�%@�+>�6<�AD�¾���>����C�¿�
                                    �����Cˆ‰����Cå�
                                    ! ���?£‰���(ñ���%MN��æç��;�������*´�»+¹�À$M,Ç�p»•Y·—M+N§�S-¹—�:6§�6,2¹˜�W*¶£2¹�À¦:Æ�,´­¹è�W„¾¡ÿÈ-¹�N-Çÿ¯*´�»+,¹c�W,°����½���>���K�L�M�O�P�'Q�-R�9T�JS�LU�QV�]Q�hO�s[�^�¾���H�����¿�
                                    �����ˆ‰���sŠ�/���W£‰��'�A™‹��*�>MN��L�áâ��é*��;���;�����*¶ê¹ì�£�¬¬����½������c�¾��������¿�
                                    ���íê��;���<�����*¶ê¹#�¹¥�ÀÒ°����½������h�¾��������¿�
                                    ��îï��;���%�����*´ð°����½�������u�¾�����òó��;���%�����*´�H°����½�������|�¾�����ôõ��;���%�����*´�ë°����½�������¦�¾�����öó��;���%�����*´�F°����½�������p�¾�����÷�}��;���&�����*+µð±����½�������u�¾������ø���ùú���:��w�û��›�ü�ý�ÿ��”���«��¦��¬��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,5 ****
                                      ��	���LineNumberTable�LocalVariableTable�this�:Lgnu/classpath/tools/doclets/DocletConfigurationException;�message�Ljava/lang/String;�
                                      SourceFile�!DocletConfigurationException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����#��$����������
                                    ��������������
                                    \ No newline at end of file
                                    --- 2,5 ----
                                      ��	���LineNumberTable�LocalVariableTable�this�:Lgnu/classpath/tools/doclets/DocletConfigurationException;�message�Ljava/lang/String;�
                                      SourceFile�!DocletConfigurationException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����4��5����������
                                    ��������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class	Tue Oct 12 15:55:12 2010
                                    *************** optionName�Ljava/lang/String;�<init>
                                    *** 3,8 ****
                                      �����()V	�����LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/doclets/DocletOption;�getName�()Ljava/lang/String;�	getLength�()I�set�([Ljava/lang/String;)Z�
                                      SourceFile�DocletOption.java!����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±��������������	���������
                                      �������
                                    ! ��������	���/�����*´�
                                    °�����������"��������������������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      �����()V	�����LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/doclets/DocletOption;�getName�()Ljava/lang/String;�	getLength�()I�set�([Ljava/lang/String;)Z�
                                      SourceFile�DocletOption.java!����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±�����������,��.�	�/��������
                                      �������
                                    ! ��������	���/�����*´�
                                    °�����������3��������������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class	Tue Oct 12 15:55:12 2010
                                    *************** optionName�Ljava/lang/String;�	getLen
                                    *** 7,12 ****
                                      ��#�$�%�	nextToken�()Ljava/lang/String;�'�)�(�
                                    java/util/Set�*�+�add�(Ljava/lang/Object;)Z
                                      ��-�.�/�
                                    hasMoreTokens�()Z�	optionArr�[Ljava/lang/String;�st�Ljava/util/StringTokenizer;�
                                    getComponents�()Ljava/util/Set;�
                                      SourceFile�DocletOptionColonSeparated.java�!�����������������	���M�����*+·�
                                    ! *»�Y·�µ�±�����������&��"��'�����������������������	���,�����¬�����������+�����������������	���r�����$»�Y·�!M§�*´�,¶�"¹�&�W,¶�,šÿî¬�����������0�
                                    ! �1�
                                    �2��1�"�4���� ����$�������$�0�1��
                                    ! ��2�3���4�5��	���/�����*´�°�����������9��������������6����7
                                    \ No newline at end of file
                                    --- 7,12 ----
                                      ��#�$�%�	nextToken�()Ljava/lang/String;�'�)�(�
                                    java/util/Set�*�+�add�(Ljava/lang/Object;)Z
                                      ��-�.�/�
                                    hasMoreTokens�()Z�	optionArr�[Ljava/lang/String;�st�Ljava/util/StringTokenizer;�
                                    getComponents�()Ljava/util/Set;�
                                      SourceFile�DocletOptionColonSeparated.java�!�����������������	���M�����*+·�
                                    ! *»�Y·�µ�±�����������7��3��8�����������������������	���,�����¬�����������<�����������������	���r�����$»�Y·�!M§�*´�,¶�"¹�&�W,¶�,šÿî¬�����������A�
                                    ! �B�
                                    �C��B�"�E���� ����$�������$�0�1��
                                    ! ��2�3���4�5��	���/�����*´�°�����������J��������������6����7
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class	Tue Oct 12 15:55:12 2010
                                    *************** optionName�Ljava/lang/String;
                                    *** 5,10 ****
                                      ���	optionArr�[Ljava/lang/String;�
                                      SourceFile�DocletOptionFile.java�!����������������	���?�����*+·�
                                      ±����
                                    ���
                                    ! ����$��%�����������������������	���Q�����*+·�*,µ�±����
                                    �������)��*�
                                    ! �+���� �������������������������	���/�����*´�°����
                                    �������/�����������������	���,�����¬����
                                    �������4�����������������	���H�����*»�Y+2·� µ�¬����
                                    ���
                                    ! ����9��:����������������!�"���#����$
                                    \ No newline at end of file
                                    --- 5,10 ----
                                      ���	optionArr�[Ljava/lang/String;�
                                      SourceFile�DocletOptionFile.java�!����������������	���?�����*+·�
                                      ±����
                                    ���
                                    ! ����5��6�����������������������	���Q�����*+·�*,µ�±����
                                    �������:��;�
                                    ! �<���� �������������������������	���/�����*´�°����
                                    �������@�����������������	���,�����¬����
                                    �������E�����������������	���H�����*»�Y+2·� µ�¬����
                                    ���
                                    ! ����J��K����������������!�"���#����$
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,7 ****
                                      ����	��
                                    ���LineNumberTable�LocalVariableTable�this�.Lgnu/classpath/tools/doclets/DocletOptionFlag;�
                                      optionName�Ljava/lang/String;�getValue�()Z�	getLength�()I�set�([Ljava/lang/String;)Z�	optionArr�[Ljava/lang/String;�
                                      SourceFile�DocletOptionFlag.java�!����������������	���G�����*+·�
                                    ! *µ�±�����������"���
                                    ! �#�����������������������	���/�����*´�¬�����������'�����������������	���,�����¬�����������,�����������������	���?�����*µ�¬�������
                                    ! ����1��2������������������������
                                    \ No newline at end of file
                                    --- 2,7 ----
                                      ����	��
                                    ���LineNumberTable�LocalVariableTable�this�.Lgnu/classpath/tools/doclets/DocletOptionFlag;�
                                      optionName�Ljava/lang/String;�getValue�()Z�	getLength�()I�set�([Ljava/lang/String;)Z�	optionArr�[Ljava/lang/String;�
                                      SourceFile�DocletOptionFlag.java�!����������������	���G�����*+·�
                                    ! *µ�±�����������3��/�
                                    ! �4�����������������������	���/�����*´�¬�����������8�����������������	���,�����¬�����������=�����������������	���?�����*µ�¬�������
                                    ! ����B��C������������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class	Tue Oct 12 15:55:12 2010
                                    *************** optionName�Ljava/lang/String;�	getLen
                                    *** 15,19 ****
                                      �*�\�Y�Z�
                                      packageDoc�Lcom/sun/javadoc/PackageDoc;�
                                      SourceFile� DocletOptionPackageWildcard.java�!�����������������	�������
                                    ! ������Q�����*+·�
                                    *µ�±�����������-��.�
                                    ! �/���� ����������������������������,�����¬�����������3��������������������/�����*´�¬�����������8��������������������Ï�����S*µ�*´�™� +2¶�"™�*µ�(§�2*»�*Y·�,µ�(»�/Y+21·�3M§�,¶�6N*´�(-¶�:,¶�=šÿï¬W¬���N�P�@�����2����=��?��@��C�*�E�7�F�:�G�?�H�G�F�N�K�P�M�Q�P����*����S�������S�B�C��7��D�E��?��F����G�H�����’�����2*´�(Æ�*´�(+¶�I°»�KY·�MM>§�,+2¹�N�W„+¾¡ÿð,°�����������V��W��Z��[��\�'�[�0�^����*����2�������2�S�T����U�V����W�X���Y�Z�����N�����*´�(Æ�*´�(+¶�[¬¬�����������d��e��h����������������]�^���_����`
                                    \ No newline at end of file
                                    --- 15,19 ----
                                      �*�\�Y�Z�
                                      packageDoc�Lcom/sun/javadoc/PackageDoc;�
                                      SourceFile� DocletOptionPackageWildcard.java�!�����������������	�������
                                    ! ������Q�����*+·�
                                    *µ�±�����������>��?�
                                    ! �@���� ����������������������������,�����¬�����������D��������������������/�����*´�¬�����������I��������������������Ï�����S*µ�*´�™� +2¶�"™�*µ�(§�2*»�*Y·�,µ�(»�/Y+21·�3M§�,¶�6N*´�(-¶�:,¶�=šÿï¬W¬���N�P�@�����2����N��P��Q��T�*�V�7�W�:�X�?�Y�G�W�N�\�P�^�Q�a����*����S�������S�B�C��7��D�E��?��F����G�H�����’�����2*´�(Æ�*´�(+¶�I°»�KY·�MM>§�,+2¹�N�W„+¾¡ÿð,°�����������g��h��k��l��m�'�l�0�o����*����2�������2�S�T����U�V����W�X���Y�Z�����N�����*´�(Æ�*´�(+¶�[¬¬�����������u��v��y����������������]�^���_����`
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,7 ****
                                      ����	��
                                    ���LineNumberTable�LocalVariableTable�this�0Lgnu/classpath/tools/doclets/DocletOptionString;�
                                      optionName�getValue�()Ljava/lang/String;�	getLength�()I�set�([Ljava/lang/String;)Z�	optionArr�[Ljava/lang/String;�
                                      SourceFile�DocletOptionString.java�!����������������	���G�����*+·�
                                    ! *µ�±�����������!���
                                    ! �"�����������������������	���/�����*´�°�����������&�����������������	���,�����¬�����������+�����������������	���A�����	*+2µ�¬�������
                                    ! ����0��1��������	�������	���������
                                    \ No newline at end of file
                                    --- 2,7 ----
                                      ����	��
                                    ���LineNumberTable�LocalVariableTable�this�0Lgnu/classpath/tools/doclets/DocletOptionString;�
                                      optionName�getValue�()Ljava/lang/String;�	getLength�()I�set�([Ljava/lang/String;)Z�	optionArr�[Ljava/lang/String;�
                                      SourceFile�DocletOptionString.java�!����������������	���G�����*+·�
                                    ! *µ�±�����������2��.�
                                    ! �3�����������������������	���/�����*´�°�����������7�����������������	���,�����¬�����������<�����������������	���A�����	*+2µ�¬�������
                                    ! ����A��B��������	�������	���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,5 ****
                                      ��	���LineNumberTable�LocalVariableTable�this�=Lgnu/classpath/tools/doclets/InvalidPackageWildcardException;�msg�Ljava/lang/String;�
                                      SourceFile�$InvalidPackageWildcardException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ���� ��!����������
                                    ��������������
                                    \ No newline at end of file
                                    --- 2,5 ----
                                      ��	���LineNumberTable�LocalVariableTable�this�=Lgnu/classpath/tools/doclets/InvalidPackageWildcardException;�msg�Ljava/lang/String;�
                                      SourceFile�$InvalidPackageWildcardException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����1��2����������
                                    ��������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                      Êþº¾���1���(gnu/classpath/tools/doclets/PackageGroup��java/lang/Object�name�Ljava/lang/String;�packages�Ljava/util/SortedSet;�<init>�*(Ljava/lang/String;Ljava/util/SortedSet;)V�Code
                                      ��
                                    �	��()V	����	�����LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/doclets/PackageGroup;�getName�()Ljava/lang/String;�getPackages�()Ljava/util/SortedSet;�
                                      SourceFile�PackageGroup.java�!������������������	�
                                    ! �����Y�����*·�*+µ�*,µ�±�����������!��#�	�$��%���� ����������������������������/�����*´�°�����������'��������������������/�����*´�°�����������(������������������
                                    \ No newline at end of file
                                    --- 1,4 ----
                                      Êþº¾���1���(gnu/classpath/tools/doclets/PackageGroup��java/lang/Object�name�Ljava/lang/String;�packages�Ljava/util/SortedSet;�<init>�*(Ljava/lang/String;Ljava/util/SortedSet;)V�Code
                                      ��
                                    �	��()V	����	�����LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/doclets/PackageGroup;�getName�()Ljava/lang/String;�getPackages�()Ljava/util/SortedSet;�
                                      SourceFile�PackageGroup.java�!������������������	�
                                    ! �����Y�����*·�*+µ�*,µ�±�����������2��4�	�5��6���� ����������������������������/�����*´�°�����������8��������������������/�����*´�°�����������9������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class	Tue Oct 12 15:55:12 2010
                                    *************** packageDoc�Lcom/sun/javadoc/PackageDoc
                                    *** 21,28 ****
                                      �‡�’�'�“�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                      �‡�:�
                                      SourceFile�PackageMatcher.java�!����������������	���B�����*·�
                                    ! *»�Y·�µ�±�����������%��'��%�����������������������	�������Ó=+¶�N»� Y·�":6§�™-46ª�����Œ�������������J* �#¶�%W§�¸�)™�¶�/W§�»�Y+·�2¿=§�E. �4¶�%W=§�1* �#¶�%W§�¸�6™�¶�/W§�»�Y+·�2¿„-¾¡ÿfš�»�Y+·�2¿*´�¶�9¸�=¹�C�W±�������j����6��8��9��;��<��=�4�?�;�@�F�B�N�C�Y�F�b�H�d�I�g�L�n�M�v�N�{�P�‚�Q��S�•�T� �W�©�;�³�[�·�\�À�_�Ò�`����H����Ó�������Ó�I�J���Ñ�K�L���Ì�M�N���Ã�O�P��� �Q�L����R�S���T�U��	���ˆ�����,»�VY·�XM>§�*+2¶�Y™�
                                    ,+2¹�]�W„+¾¡ÿæ,°�����������i��j�
                                    �k��l�!�j�*�o����*����,�������,�`�a���$�b�c��
                                    ! � �Q�L���[�\��	���¦�����8*´�¹�d�M§�#,¹�h�À�>N-+¹�n�¶�s:¶�w™�¬,¹�}�šÿÚ¬�������"����x�
                                    ! �y�
                                    �z��{�#�|�+�}�-�y�6�€����4����8�������8�€���
                                      �.�‚�ƒ����„�…��#�
                                    ! �u�†���;�<��	���C�����»�‡Y‰·�‹*´�¶�Œ¶�‘¶�”°�����������…��������������•����–
                                    \ No newline at end of file
                                    --- 21,28 ----
                                      �‡�’�'�“�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                      �‡�:�
                                      SourceFile�PackageMatcher.java�!����������������	���B�����*·�
                                    ! *»�Y·�µ�±�����������6��8��6�����������������������	�������Ó=+¶�N»� Y·�":6§�™-46ª�����Œ�������������J* �#¶�%W§�¸�)™�¶�/W§�»�Y+·�2¿=§�E. �4¶�%W=§�1* �#¶�%W§�¸�6™�¶�/W§�»�Y+·�2¿„-¾¡ÿfš�»�Y+·�2¿*´�¶�9¸�=¹�C�W±�������j����G��I��J��L��M��N�4�P�;�Q�F�S�N�T�Y�W�b�Y�d�Z�g�]�n�^�v�_�{�a�‚�b��d�•�e� �h�©�L�³�l�·�m�À�p�Ò�q����H����Ó�������Ó�I�J���Ñ�K�L���Ì�M�N���Ã�O�P��� �Q�L����R�S���T�U��	���ˆ�����,»�VY·�XM>§�*+2¶�Y™�
                                    ,+2¹�]�W„+¾¡ÿæ,°�����������z��{�
                                    �|��}�!�{�*�€����*����,�������,�`�a���$�b�c��
                                    ! � �Q�L���[�\��	���¦�����8*´�¹�d�M§�#,¹�h�À�>N-+¹�n�¶�s:¶�w™�¬,¹�}�šÿÚ¬�������"����‰�
                                    ! �Š�
                                    �‹��Œ�#��+�Ž�-�Š�6�‘����4����8�������8�€���
                                      �.�‚�ƒ����„�…��#�
                                    ! �u�†���;�<��	���C�����»�‡Y‰·�‹*´�¶�Œ¶�‘¶�”°�����������–��������������•����–
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      inOverview�	inPackage�inType�isInlineTag�getName�()Ljava/lang/String;�toString�)(Lcom/sun/javadoc/Tag;)Ljava/lang/String;�tag�Lcom/sun/javadoc/Tag;�*([Lcom/sun/javadoc/Tag;)Ljava/lang/String;�tags�[Lcom/sun/javadoc/Tag;�
                                      SourceFile�StandardTaglet.java�!�������������	�
                                      �����F�����
                                    ! *·�*+µ�±�����������&��'�	�(��������
                                      �������
                                    ! �����������,�����¬�����������+��������������������,�����¬�����������/��������������������,�����¬�����������3��������������������,�����¬�����������7��������������������,�����¬�����������;��������������������,�����¬�����������?��������������������,�����¬�����������C��������������������/�����*´�°�����������G��������������� �����6�����°�����������L����������������!�"����#�����6�����°�����������Q����������������$�%���&����'
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      inOverview�	inPackage�inType�isInlineTag�getName�()Ljava/lang/String;�toString�)(Lcom/sun/javadoc/Tag;)Ljava/lang/String;�tag�Lcom/sun/javadoc/Tag;�*([Lcom/sun/javadoc/Tag;)Ljava/lang/String;�tags�[Lcom/sun/javadoc/Tag;�
                                      SourceFile�StandardTaglet.java�!�������������	�
                                      �����F�����
                                    ! *·�*+µ�±�����������7��8�	�9��������
                                      �������
                                    ! �����������,�����¬�����������<��������������������,�����¬�����������@��������������������,�����¬�����������D��������������������,�����¬�����������H��������������������,�����¬�����������L��������������������,�����¬�����������P��������������������,�����¬�����������T��������������������/�����*´�°�����������X��������������� �����6�����°�����������]����������������!�"����#�����6�����°�����������b����������������$�%���&����'
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 17,21 ****
                                      ��Â�±�²�tags�[Lcom/sun/javadoc/Tag;�
                                      SourceFile�DebugDoclet.java�!������������	����	���;�����
                                    »�Y·�
                                      *·�¬�������
                                    ! ��������������
                                    �������
                                    ��	���>�����*·�*²�µ�±��������������������������������	���k�����+*´�¶� *´�»�%Y'·�)+¶�+/¶�+¶�1¶�5*´�¶� ±������������� �#�!�*�"��������+�������+�7�8���9���	���k�����+*´�¶� *´�»�%Y:·�)+¶�+<¶�+¶�1¶�5*´�¶� ±�����������&��'�#�(�*�)��������+�������+�7�8���>���	���k�����+*´�¶� *´�»�%Y?·�)+¶�+A¶�+¶�1¶�5*´�¶� ±�����������-��.�#�/�*�0��������+�������+�7�8������	��.��
                                    ! ��”*C·�E*G·�I+¹�K�M,¸�Q>§�*´�,2¹�W�¶�5„,¾¡ÿë*\·�I+¹�^�N-¸�Q6§�*´�-2¹�b�¶�5„-¾¡ÿé*g·�I+¹�i�:¸�Q6§�*´�2¹�b�¶�5„¾¡ÿç*l·�E6§è*2¹�b�·�I*2¹�n�·�r*v·�x2¹�z�:6§�Á*´�»�%Y~·�)2¹�€�¶�+ƒ¶�+¶�1¶�5*´�»�%Y…·�)2¹�‡�¶�+ƒ¶�+¶�1¶�5*´�»�%YŠ·�)2¹�Œ�¶�+ƒ¶�+¶�1¶�5*´�¶�‘2¹�”�:6	§�%	ž�*´�—¶�‘*´�	2¹�b�¶�‘„		¾¡ÿÙ*´�¶� „¾¡ÿ=*™·�x2¹�›�:6§�W*´�»�%Y~·�)2¹�Ÿ�¶�+ƒ¶�+¶�1¶�5*´�»�%YŠ·�)2¹�¢�¶�+ƒ¶�+¶�1¶�5*´�¶� „¾¡ÿ§*£·�x2¹�¥�:6	§�W*´�»�%Y~·�)	2¹�Ÿ�¶�+ƒ¶�+¶�1¶�5*´�»�%YŠ·�)	2¹�¢�¶�+ƒ¶�+¶�1¶�5*´�¶� „		¾¡ÿ§„¾¡þ±�������Ö�5���4��6��8��9��:��;�+�:�4�>�:�@�A�A�E�B�K�C�[�B�e�E�k�G�s�H�x�I�~�J��I�š�M� �O�¦�P�´�R�Â�T�È�V�Ô�X�Ú�Y�ÿ�Z$�[I�\R�]^�^d�_r�`ƒ�^Ž�b•�X �e¦�g²�i¸�jÝ�k�l	�i�o�q&�s,�tQ�uv�v}�sˆ�O“�y����¬���”������”�����O�¨����©�ª��AS�`�«��H��©�ª��s!�k�«��{��©�ª��£ð�©�ª��Ô´�|�¬��×�É�­�ª�^�7�–�«�a�-�®�ª�	²�Ö��¯�µ�_�­�ª�&�b�°�¯�)�_�­�ª�	��±�²��	���R�����+¹�³�Æ�²�+¹�³�¶�5±�����������}�	�~��€����������������¸�¹���t�u��	���‚�����4=§�+*´�»�%Yº·�)`¶�¼¿¶�+¶�1¶�5*+2·�Á„+¾¡ÿÕ±�����������„��…�#�†�*�„�3�ˆ���� ����4�������4�Ã�Ä���1�©�ª���Å����Æ
                                    \ No newline at end of file
                                    --- 17,21 ----
                                      ��Â�±�²�tags�[Lcom/sun/javadoc/Tag;�
                                      SourceFile�DebugDoclet.java�!������������	����	���;�����
                                    »�Y·�
                                      *·�¬�������
                                    ! ����7��8��������
                                    �������
                                    ��	���>�����*·�*²�µ�±�����������=��?��@�����������������	���k�����+*´�¶� *´�»�%Y'·�)+¶�+/¶�+¶�1¶�5*´�¶� ±�����������D��E�#�F�*�G��������+�������+�7�8���9���	���k�����+*´�¶� *´�»�%Y:·�)+¶�+<¶�+¶�1¶�5*´�¶� ±�����������K��L�#�M�*�N��������+�������+�7�8���>���	���k�����+*´�¶� *´�»�%Y?·�)+¶�+A¶�+¶�1¶�5*´�¶� ±�����������R��S�#�T�*�U��������+�������+�7�8������	��.��
                                    ! ��”*C·�E*G·�I+¹�K�M,¸�Q>§�*´�,2¹�W�¶�5„,¾¡ÿë*\·�I+¹�^�N-¸�Q6§�*´�-2¹�b�¶�5„-¾¡ÿé*g·�I+¹�i�:¸�Q6§�*´�2¹�b�¶�5„¾¡ÿç*l·�E6§è*2¹�b�·�I*2¹�n�·�r*v·�x2¹�z�:6§�Á*´�»�%Y~·�)2¹�€�¶�+ƒ¶�+¶�1¶�5*´�»�%Y…·�)2¹�‡�¶�+ƒ¶�+¶�1¶�5*´�»�%YŠ·�)2¹�Œ�¶�+ƒ¶�+¶�1¶�5*´�¶�‘2¹�”�:6	§�%	ž�*´�—¶�‘*´�	2¹�b�¶�‘„		¾¡ÿÙ*´�¶� „¾¡ÿ=*™·�x2¹�›�:6§�W*´�»�%Y~·�)2¹�Ÿ�¶�+ƒ¶�+¶�1¶�5*´�»�%YŠ·�)2¹�¢�¶�+ƒ¶�+¶�1¶�5*´�¶� „¾¡ÿ§*£·�x2¹�¥�:6	§�W*´�»�%Y~·�)	2¹�Ÿ�¶�+ƒ¶�+¶�1¶�5*´�»�%YŠ·�)	2¹�¢�¶�+ƒ¶�+¶�1¶�5*´�¶� „		¾¡ÿ§„¾¡þ±�������Ö�5���Y��[��]��^��_��`�+�_�4�c�:�e�A�f�E�g�K�h�[�g�e�j�k�l�s�m�x�n�~�o��n�š�r� �t�¦�u�´�w�Â�y�È�{�Ô�}�Ú�~�ÿ�$�€I�R�‚^�ƒd�„r�…ƒ�ƒŽ�‡•�} �Š¦�Œ²�Ž¸�Ý��‘	�Ž�”�–&�˜,�™Q�šv�›}�˜ˆ�t“�ž����¬���”������”�����O�¨����©�ª��AS�`�«��H��©�ª��s!�k�«��{��©�ª��£ð�©�ª��Ô´�|�¬��×�É�­�ª�^�7�–�«�a�-�®�ª�	²�Ö��¯�µ�_�­�ª�&�b�°�¯�)�_�­�ª�	��±�²��	���R�����+¹�³�Æ�²�+¹�³�¶�5±�����������¢�	�£��¥����������������¸�¹���t�u��	���‚�����4=§�+*´�»�%Yº·�)`¶�¼¿¶�+¶�1¶�5*+2·�Á„+¾¡ÿÕ±�����������©��ª�#�«�*�©�3�­���� ����4�������4�Ã�Ä���1�©�ª���Å����Æ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�
                                    CssClass.java�!�����Ÿ��
                                    *** 22,43 ****
                                      ·³1»�Y	ˆ·�æ³3»�Y5·�¬³7»�Y9
                                      ·�æ³;»�Y=?½YAS½YCS·E³H»�YJä·�æ³L»�YN5·�æ³P»�YR·�æ³T»�YV·�¬³X»�Yï·�¬³Z»�Yó·�¬³\»�Y)·�¬³^»�Y	·�¬³`»�Yb·�æ³d»�Yf%·�æ³h»�Yj·�¬³l»�Yn·�æ³p»�Ynr·�æ³t»�Yv?·�æ³x»�Yz·�¬³|»�Y~y·�æ³€»�Y‚C·³„»�Y†ˆ·�泈»�YŠy·�泌»�YŽC·³»�Y’ˆ·�æ³”»�Y–+y·³˜»�YC·³š»�Yøˆ·�泜»�Yž
                                      ·�泟»�Y¡·�¬³£»�Y	·�¬³¥»�Y§+y·³©»�Y«C·³­»�Y¯ˆ·�æ³±»�Y³+y·³µ»�Y·C·³¹»�Y»ˆ·�æ³½»�Yž
                                    ! ·�泿»�Y¡·�¬³Á»�Y	·�¬³û�Yb5·�æ³Å»�YÇ·�æ³É»�YËyˆ·³Í»�YÏ+·�æ³Ñ»�YÓ5·�æ³Õ»�Y×·�¬³Ù»�YÛ·�¬³Ý»�Y½YßS½YáS·$³ã»�Yå·�¬³ç»�Yé%·�æ³ë»�Yí·�¬³ï»�Yñ·�¬³ó»�Yõ·�¬³÷»�Yù+·�æ³û»�Yýä·�æ³ÿ»�Y%·�æ³»�Y·�¬³»�Y	ä·�æ³»�Y
                                    ·�æ³»�Y
                                    %·�æ³»�YC·�æ³»�Y
                                    ª·�æ³±�����n�›������� �$�!�0�"�<�#�H�$�T�%�`�&�l�'�x�(�„�)��*�œ�,�ª�-�¶�.�Â�/�Î�0�Ú�1�æ�3�ô�4�5
                                    �6�7'�87�9G�:W�;g�<w�>†�?–�@¦�A¶�BÆ�CÓ�Dà�Eð�Gÿ�H�I�J$�K1�L>�MM�N]�Om�Q}�S�T �U°�WÀ�XÍ�YÝ�[í�\ý�]
                                    �^�_*�a9�bF�cV�dc�ep�f}�gŠ�h—�i¤�k±�lÁ�mÐ�nà�oó�p�q�r&�s6�tF�uY�vi�wv�xƒ�y“�z¦�{¹�|Ì�}Ù�~æ��€�"�‚2�ƒE�„U�…b�†r�‡–�‰¥�Šµ�‹Å�ŒÒ�Þ�Žê�÷��‘�’$�”1�•A�–Q�—a�˜n�™~�š‘�›¡�œ±�Ä�žÔ�Ÿç� ú�¡
                                    ! �¢�£'�¤4�¥G�¦Z�§j�¨}�©�ª �«°�¬½�­Ê�¯Ú�°ê�±ý�³
                                    �´�¶*�·7�¸X�¹e�ºu�»‚�¼�½œ�¿¬�Á»�ÂË�ÄØ�Åç�Ç÷�È	�É	�Ê	'��������®�¯��©���?�����*+·�æ±������
                                    ! ����Ô��Õ�������������� �¡���®�è��©���J�����*+,·±������
                                    ! ����Ù��Ú��� ����������� �¡�����¢�¡���®ƒ��©���V�����
                                      *+,-·±������
                                    ! �����	����*����
                                      ������
                                      � �¡����
                                      �¢�¡����
                                      �£�¡���®G��©���a�����*+-·±������
                                    ! ����ã�
                                    ! �ä���4����������� �¡�����¢�¡�����¤�¥�����¦�¥���®&��©���V�����
                                      *+,-·±������
                                    ! ����è�	�é���*����
                                      ������
                                      � �¡����
                                      �¤�¥����
                                    ! �¦�¥���® ��©���”����� *·!*+µ#*,µ%*-µ'*µ)*µ+±����������ë��í�	�î��ï��ð��ñ��ò���>���� ������ � �¡���� �¢�¡���� �£�¡���� �¤�¥���� �¦�¥��-.��©���B�����*´%Æ�*´%°°����������ö��÷��ú�����������/.��©���B�����*´%Æ�*´%°+°�����������������������0.��©���/�����*´'°���������
                                    ! �����������12��©���/�����*´)°��������������������32��©���/�����*´+°��������������������4.��©���/�����*´#°��������������������5���6
                                    \ No newline at end of file
                                    --- 22,42 ----
                                      ·³1»�Y	ˆ·�æ³3»�Y5·�¬³7»�Y9
                                      ·�æ³;»�Y=?½YAS½YCS·E³H»�YJä·�æ³L»�YN5·�æ³P»�YR·�æ³T»�YV·�¬³X»�Yï·�¬³Z»�Yó·�¬³\»�Y)·�¬³^»�Y	·�¬³`»�Yb·�æ³d»�Yf%·�æ³h»�Yj·�¬³l»�Yn·�æ³p»�Ynr·�æ³t»�Yv?·�æ³x»�Yz·�¬³|»�Y~y·�æ³€»�Y‚C·³„»�Y†ˆ·�泈»�YŠy·�泌»�YŽC·³»�Y’ˆ·�æ³”»�Y–+y·³˜»�YC·³š»�Yøˆ·�泜»�Yž
                                      ·�泟»�Y¡·�¬³£»�Y	·�¬³¥»�Y§+y·³©»�Y«C·³­»�Y¯ˆ·�æ³±»�Y³+y·³µ»�Y·C·³¹»�Y»ˆ·�æ³½»�Yž
                                    ! ·�泿»�Y¡·�¬³Á»�Y	·�¬³û�Yb5·�æ³Å»�YÇ·�æ³É»�YËyˆ·³Í»�YÏ+·�æ³Ñ»�YÓ5·�æ³Õ»�Y×·�¬³Ù»�YÛ·�¬³Ý»�Y½YßS½YáS·$³ã»�Yå·�¬³ç»�Yé%·�æ³ë»�Yí·�¬³ï»�Yñ·�¬³ó»�Yõ·�¬³÷»�Yù+·�æ³û»�Yýä·�æ³ÿ»�Y%·�æ³»�Y·�¬³»�Y	ä·�æ³»�Y
                                    ·�æ³»�Y
                                    %·�æ³»�YC·�æ³»�Y
                                    ª·�æ³±�����n�›���/��0��1�$�2�0�3�<�4�H�5�T�6�`�7�l�8�x�9�„�:��;�œ�=�ª�>�¶�?�Â�@�Î�A�Ú�B�æ�D�ô�E�F
                                    �G�H'�I7�JG�KW�Lg�Mw�O†�P–�Q¦�R¶�SÆ�TÓ�Uà�Vð�Xÿ�Y�Z�[$�\1�]>�^M�_]�`m�b}�d�e �f°�hÀ�iÍ�jÝ�lí�mý�n
                                    �o�p*�r9�sF�tV�uc�vp�w}�xŠ�y—�z¤�|±�}Á�~Ð�à�€ó��‚�ƒ&�„6�…F�†Y�‡i�ˆv�‰ƒ�Š“�‹¦�Œ¹�Ì�ŽÙ�æ��‘�’"�“2�”E�•U�–b�—r�˜–�š¥�›µ�œÅ�Ò�žÞ�Ÿê� ÷�¡�¢�£$�¥1�¦A�§Q�¨a�©n�ª~�«‘�¬¡�­±�®Ä�¯Ô�°ç�±ú�²
                                    ! �³�´'�µ4�¶G�·Z�¸j�¹}�º�» �¼°�½½�¾Ê�ÀÚ�Áê�Âý�Ä
                                    �Å�Ç*�È7�ÉX�Êe�Ëu�Ì‚�Í�Îœ�Ь�Ò»�ÓË�ÕØ�Öç�Ø÷�Ù	�Ú	�Û	'�-�������®�¯��©���?�����*+·�æ±������
                                    ! ����å��æ�������������� �¡���®�è��©���J�����*+,·±������
                                    ! ����ê��ë��� ����������� �¡�����¢�¡���®ƒ��©���V�����
                                      *+,-·±������
                                    ! ����ï�	�ð���*����
                                      ������
                                      � �¡����
                                      �¢�¡����
                                      �£�¡���®G��©���a�����*+-·±������
                                    ! ����ô�
                                    ! �õ���4����������� �¡�����¢�¡�����¤�¥�����¦�¥���®&��©���V�����
                                      *+,-·±������
                                    ! ����ù�	�ú���*����
                                      ������
                                      � �¡����
                                      �¤�¥����
                                    ! �¦�¥���® ��©���”����� *·!*+µ#*,µ%*-µ'*µ)*µ+±����������ü��þ�	�ÿ��������>���� ������ � �¡���� �¢�¡���� �£�¡���� �¤�¥���� �¦�¥��-.��©���B�����*´%Æ�*´%°°����������������������/.��©���B�����*´%Æ�*´%°+°����������������������0.��©���/�����*´'°��������������������12��©���/�����*´)°��������� �����������32��©���/�����*´+°���������%�����������4.��©���/�����*´#°���������*�����������5���6
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class	Tue Oct 12 15:55:12 2010
                                    *************** packageURL�e� Ljava/net/MalformedURLE
                                    *** 31,35 ****
                                      �-�©�ª��trim�¬�®�­�
                                    java/util/Set�¯�z�add
                                      �œ�±�²��readLine�reader�Ljava/io/BufferedReader;�line�getPackageNames�()Ljava/util/Set;�isJavadocCompatible�()Z�
                                      SourceFile�ExternalDocSet.java�!������������������	����
                                    ! ������
                                    �����������/�����*´�°�����������/��������������������h�����*·�*»�Y·�µ�*+µ�!*,µ�±�����������2��9��5��6��7���� ����������������������#�$��%�����&�(���8��	�� *´�!*¶�,š�*Y´�!»�2Z_¸�4·�8*¶�;¶�?µ�!*»�BY+¶�D*´�!·�Jµ�M*´�Æ�H*´�*¶�,š�*Y´�»�2Z_¸�4·�8*¶�;¶�?µ�»�BY»�EYO¸�Q·�W¶�D*´�·�JM§�*´�MM»�BY,X·�JN-¶�Z:Æ�*¶�^¶�b§�»�gY-¶�i·�j¿»�BY,k·�J:¶�Z:Æ�A»�mY·�o:¶�p¶�br¶�t:Æ�*ur¶�t¶�wµ�{§�*µ�{§�*µ�{§�	W*µ�{±��Ç�g�����’�$���?��@�'�C�0�D�7�C�:�G�A�H�M�I�h�K�{�L��K�†�O�‹�R��S�’�R�–�T�œ�U�¡�V�§�W�¯�Z�»�]�À�^�Â�]�Ç�`�Î�a�Ó�b�Ü�c�ã�d�è�f�ñ�g�ö�h	�k�o�r�s�u����f�
                                    ! �� ������ �}�~��ƒ���	��‹�•��	��–�Š�€�	��œ�„��‚��Ç�Y�ƒ�	��Î�K�„�‚��Ü�5�…�†��ñ� �‡����ˆ�V�����‡�����#»�BY*´�M+./¶�‰·�JM,¶�i°M»�Y,·�¿������(���������z��{��z��|��~��‚����*����#�������#�’�����“�	���	�”�•���–�—�����¬�����>»�BY*´�M»�2Y+./¶�‰¸�4·�8*¶�;,¶�;˜¶�;¶�?·�JN-¶�i°N»�Y-·�¿����3�4�(���������‰��Š�+�‰�/�‹�4��5�‘����4����>�������>�’�����>�š���/��›�	��5�	�”�•���`�a��%�����&����™�����/»�œY»�žY+ ·�¢·�¥M§�-¶�¨N*´�-¹�«�W,¶�°YNÇÿê±�����������™��˜��›��œ���%�›�.�Ÿ����4����/�������/��‚����³�´����µ���+��µ����¶�·�����/�����*´�°�����������£��������������¸�¹�����/�����*´�{¬�����������¨��������������º����»
                                    \ No newline at end of file
                                    --- 31,35 ----
                                      �-�©�ª��trim�¬�®�­�
                                    java/util/Set�¯�z�add
                                      �œ�±�²��readLine�reader�Ljava/io/BufferedReader;�line�getPackageNames�()Ljava/util/Set;�isJavadocCompatible�()Z�
                                      SourceFile�ExternalDocSet.java�!������������������	����
                                    ! ������
                                    �����������/�����*´�°�����������@��������������������h�����*·�*»�Y·�µ�*+µ�!*,µ�±�����������C��J��F��G��H���� ����������������������#�$��%�����&�(���8��	�� *´�!*¶�,š�*Y´�!»�2Z_¸�4·�8*¶�;¶�?µ�!*»�BY+¶�D*´�!·�Jµ�M*´�Æ�H*´�*¶�,š�*Y´�»�2Z_¸�4·�8*¶�;¶�?µ�»�BY»�EYO¸�Q·�W¶�D*´�·�JM§�*´�MM»�BY,X·�JN-¶�Z:Æ�*¶�^¶�b§�»�gY-¶�i·�j¿»�BY,k·�J:¶�Z:Æ�A»�mY·�o:¶�p¶�br¶�t:Æ�*ur¶�t¶�wµ�{§�*µ�{§�*µ�{§�	W*µ�{±��Ç�g�����’�$���P��Q�'�T�0�U�7�T�:�X�A�Y�M�Z�h�\�{�]��\�†�`�‹�c��d�’�c�–�e�œ�f�¡�g�§�h�¯�k�»�n�À�o�Â�n�Ç�q�Î�r�Ó�s�Ü�t�ã�u�è�w�ñ�x�ö�y	�|�€�ƒ�„�†����f�
                                    ! �� ������ �}�~��ƒ���	��‹�•��	��–�Š�€�	��œ�„��‚��Ç�Y�ƒ�	��Î�K�„�‚��Ü�5�…�†��ñ� �‡����ˆ�V�����‡�����#»�BY*´�M+./¶�‰·�JM,¶�i°M»�Y,·�¿������(���������‹��Œ��‹������“����*����#�������#�’�����“�	���	�”�•���–�—�����¬�����>»�BY*´�M»�2Y+./¶�‰¸�4·�8*¶�;,¶�;˜¶�;¶�?·�JN-¶�i°N»�Y-·�¿����3�4�(���������š��›�+�š�/�œ�4�ž�5�¢����4����>�������>�’�����>�š���/��›�	��5�	�”�•���`�a��%�����&����™�����/»�œY»�žY+ ·�¢·�¥M§�-¶�¨N*´�-¹�«�W,¶�°YNÇÿê±�����������ª��©��¬��­��®�%�¬�.�°����4����/�������/��‚����³�´����µ���+��µ����¶�·�����/�����*´�°�����������´��������������¸�¹�����/�����*´�{¬�����������¹��������������º����»
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 4,10 ****
                                      ��"��#�'(Ljava/lang/String;Ljava/lang/String;)V�%�'�&�java/util/List�(�)�add�(Ljava/lang/Object;)Z�	optionArr�[Ljava/lang/String;�
                                      SourceFile�HtmlDoclet.java�EnclosingMethod�InnerClasses� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! �����
                                    �����������������������	���,�����¬����������
                                    �����������������	���R�����*´�
                                      ¸�»�Y+2·�!¹�$�W¬�������
                                    ! ���
                                    !�
                                    "����������������*�+���,����-�.�������/���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ��"��#�'(Ljava/lang/String;Ljava/lang/String;)V�%�'�&�java/util/List�(�)�add�(Ljava/lang/Object;)Z�	optionArr�[Ljava/lang/String;�
                                      SourceFile�HtmlDoclet.java�EnclosingMethod�InnerClasses� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! �����
                                    )�����������������������	���,�����¬����������
                                    -�����������������	���R�����*´�
                                      ¸�»�Y+2·�!¹�$�W¬�������
                                    ! ���
                                    2�
                                    3����������������*�+���,����-�.�������/���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 4,10 ****
                                      ��"��#�'(Ljava/lang/String;Ljava/lang/String;)V�%�'�&�java/util/List�(�)�add�(Ljava/lang/Object;)Z�	optionArr�[Ljava/lang/String;�
                                      SourceFile�HtmlDoclet.java�EnclosingMethod�InnerClasses� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! �����
                                    '�����������������������	���,�����¬����������
                                    +�����������������	���T�����*´�
                                      ¸�»�Y+2+2·�!¹�$�W¬�������
                                    ! ���
                                    0�
                                    1����������������*�+���,����-�.�������/���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ��"��#�'(Ljava/lang/String;Ljava/lang/String;)V�%�'�&�java/util/List�(�)�add�(Ljava/lang/Object;)Z�	optionArr�[Ljava/lang/String;�
                                      SourceFile�HtmlDoclet.java�EnclosingMethod�InnerClasses� ����������������	���C�����*+µ�
                                      *,·�±�������
                                    ! �����
                                    8�����������������������	���,�����¬����������
                                    <�����������������	���T�����*´�
                                      ¸�»�Y+2+2·�!¹�$�W¬�������
                                    ! ���
                                    A�
                                    B����������������*�+���,����-�.�������/���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class	Tue Oct 12 15:55:12 2010
                                    *************** val$output�1Lgnu/classpath/tools/doclet
                                    *** 8,13 ****
                                      SourceFile�HtmlDoclet.java�EnclosingMethod�3�1gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet�5�6�printTaglets�u(Lgnu/classpath/tools/doclets/htmldoclet/HtmlPage;[Lcom/sun/javadoc/Tag;Lgnu/classpath/tools/taglets/TagletContext;)V�InnerClasses� ����������	�
                                      ���������
                                    ���=�����*+µ�*,µ�*·�±�������
                                      �����
                                    ! l�����������������
                                    ���]�����*´�²�¶�!*´�+¶�'*´�²�¶�*±����������n�
                                    ! o�p�q����������������-�.���/����0�1����2�4�7���
                                      ��������
                                    \ No newline at end of file
                                    --- 8,13 ----
                                      SourceFile�HtmlDoclet.java�EnclosingMethod�3�1gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet�5�6�printTaglets�u(Lgnu/classpath/tools/doclets/htmldoclet/HtmlPage;[Lcom/sun/javadoc/Tag;Lgnu/classpath/tools/taglets/TagletContext;)V�InnerClasses� ����������	�
                                      ���������
                                    ���=�����*+µ�*,µ�*·�±�������
                                      �����
                                    ! }�����������������
                                    ���]�����*´�²�¶�!*´�+¶�'*´�²�¶�*±�����������
                                    ! €��‚����������������-�.���/����0�1����2�4�7���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 5,9 ****
                                      �����other�Ljava/lang/Object;�	compareTo�(Ljava/lang/Object;)I�%�'�&�com/sun/javadoc/ClassDoc�"�#�hashCode�()I
                                      ��+�(�)�
                                      SourceFile�HtmlDoclet.java�InnerClasses�0�1gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet�TreeNode� ��������������	�
                                    ! ���������
                                    ���U�����*·�*»�Y·�µ�*+µ�±����������Ì�Ê�Í�Î�����������������������
                                    ���C�����*´�+À�´�¶�¬����������Ò���������������� �!���"�#��
                                    ���E�����*´�+À�´�¹�$�¬����������×���������������� �!���(�)��
                                    ���2�����*´�¶�*¬����������Ü��������������,����-�.���
                                      ���/�1�
                                    \ No newline at end of file
                                    --- 5,9 ----
                                      �����other�Ljava/lang/Object;�	compareTo�(Ljava/lang/Object;)I�%�'�&�com/sun/javadoc/ClassDoc�"�#�hashCode�()I
                                      ��+�(�)�
                                      SourceFile�HtmlDoclet.java�InnerClasses�0�1gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet�TreeNode� ��������������	�
                                    ! ���������
                                    ���U�����*·�*»�Y·�µ�*+µ�±����������Ý�Û�Þ�ß�����������������������
                                    ���C�����*´�+À�´�¶�¬����������ã���������������� �!���"�#��
                                    ���E�����*´�+À�´�¹�$�¬����������è���������������� �!���(�)��
                                    ���2�����*´�¶�*¬����������í��������������,����-�.���
                                      ���/�1�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class	Tue Oct 12 15:55:12 2010
                                    *************** outputFile
                                    *** 486,497 ****
                                      �g(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/lang/String;)V�docType�access$0�E(Lgnu/classpath/tools/doclets/htmldoclet/HtmlDoclet;)Ljava/util/List;�
                                      SourceFile�HtmlDoclet.java�InnerClasses�InterfaceRelation�	UsageType�TreeNode�!�����!�
                                      ������	�
                                    ! ���������
                                    �������������������������������������������������������������������������� �����!�����"�����#�����$�%����&�%����'�����(�)����*�)����+�����,�����-�����.�%����/�����0�����1�2���Y��3�4��5���8������6³�8»�Y·�:¸�=±����A�������Z�
                                    e��V�B�������<�4��5��¬����:*·�C*»�DY·�Fµ�G*»�IY·�Kµ�L*»�NYP·�Rµ�U*»�NYW·�Rµ�Y*»�NY[·�Rµ�]*»�NY_·�Rµ�a*»�NYc·�Rµ�e*»�NYg·�Rµ�i*»�NYk·�Rµ�m*»�NYo·�Rµ�q*»�NYs·�Rµ�u*»�wYy·�{µ�|*»�wY~·�{µ�€*»�wY‚·�{µ�„*»�wY†·�{µ�ˆ*»�wYŠ·�{µ�Œ*»�wYŽ·�{µ�*»�’Y”·�–µ�—*»�’Y™·�–µ�›*»�NY·�Rµ�Ÿ*»�¡Y*£·�¥µ�¨*»�ªY*¬·�®µ�¯*»�wY±·�{µ�³*»�wYµ·�{µ�·*»�wY¹·�{µ�»*»�’Y½·�–µ�¿*»�NYÁ·�Rµ�Ã*»�wYÅ·�{µ�Ç*½�ÉY*´�USY*´�YSY*´�]SY*´�aSY*´�iSY*´�mSY*´�eSY*´�uSY*´�|SY	*´�€SY
                                    ! *´�„SY*´�—SY*´�›SY
                                    *´�ˆSY*´�ŒSY*´�SY*´�ŸSY*´�¨SY*´�¯SY*´�³SY*´�·SY*´�»SY*´�¿SY*´�ÃSY*´�ÇSµ�˱����A��N�S���V��_��d�á�â�'ä�(å�4ç�5è�Aê�Bë�Ní�Oî�[ð�\ñ�hó�iô�uö�v÷�‚ù�ƒú�ü�ý�œÿ�
                                    ��©
                                    �ª
                                    �¶
                                    �·
                                    �Ã
                                    �Ä
                                    	�Ð
                                    �Ñ
                                    �Ý
                                    �Þ
                                    �ê
                                    �ë
                                    �÷
                                    �ø
                                    
                                    
                                    
                                    &
                                    ' 
                                    5!
                                    6-
                                    8.
                                    9:
                                    ;;
                                    <G
                                    >H
                                    ?T
                                    AU
                                    Ba
                                    Db
                                    En
                                    Go
                                    Hv
                                    I}
                                    J„
                                    K‹
                                    L’
                                    M™
                                    N¡
                                    O©
                                    P±
                                    Q¹
                                    RÁ
                                    SÉ
                                    TÑ
                                    UÙ
                                    Vá
                                    Wé
                                    Xñ
                                    Yù
                                    Z
                                    [	
                                    \
                                    ]
                                    ^!
                                    _)
                                    `1
                                    a9�V�B������:���������5��
                                    ����K+²�Ѷ�×Ý,¶�ßš�=å,¶�ßš�4ç,¶�ßš�+é,¶�ßš�"ë,¶�ßš�í,¶�ßš�ï,¶�ßš�§�6*¶�ñš�cÝ,¶�ß™�+²�õ¶�ø+û¶�ý+²�õ¶�§�<+²¶�ø+»Y+¶¸·¶²�8¶¶¶+û¶�ý+¶+²¶�+ ¶�ý™�
                                    ! *¶�ñ™�–",¶�ß™�+²�õ¶�ø+$¶�ý+²�õ¶�§�‰+²¶�ø*¶�ñ™�6»Y+¶¸·&¶**¶(·,¶0¶²�8¶¶:§�»Y0·²�8¶¶:+¶+$¶�ý+¶+²¶�§�+²2¶�ø+$¶�ý+²2¶�*´�e¶5š�
                                    *´�Ÿ¶5™Ó+ ¶�ý-Æ�^8,¶�ß™�+²�õ¶�ø+:¶�ý+²�õ¶�§�Q+²¶�ø+»Y-¹<�¸·²�8¶¶¶+:¶�ý+¶+²¶�§�+²2¶�ø+:¶�ý+²2¶�*´�e¶5™�„+ ¶�ý-Æ�dA,¶�ß™�+²�õ¶�ø+C¶�ý+²�õ¶�§�W+²¶�ø+»Y-¹<�¸·E¶²�8¶¶¶+C¶�ý+¶+²¶�§�+²2¶�ø+C¶�ý+²2¶�*´�Ÿ¶5™�Ã+ ¶�ýG,¶�ß™�+²�õ¶�ø+I¶�ý+²�õ¶�§�š-Æ�+²¶�ø-¹<�:K:-¹M�Æ�+-¸Q¹<�:»YU·-¹W�¹[�¶a¶:+»Y¸·d¶²�8¶¶¶¶+I¶�ý+¶+²¶�§�+²2¶�ø+I¶�ý+²2¶�*´�Y¶5š�›+ ¶�ýå,¶�ßš�
                                    f,¶�ß™�+²�õ¶�ø+h¶�ý+²�õ¶�§�i+²¶�ø*¶�ñ™�.™�)»Y**¶(·,¸·j¶²�8¶¶:§�»Yj·²�8¶¶:+¶+h¶�ý+¶+²¶�+ ¶�ý*´�u¶5™�l:§�n:ç,¶�ßš�é,¶�ß™�+²�õ¶�ø+p¶�ý+²�õ¶�§�B+²¶�ø+»Y+¶¸·&¶¶²�8¶¶¶+p¶�ý+¶+²¶�*´�]¶5š�e+ ¶�ýí,¶�ß™�+²�õ¶�ø+r¶�ý+²�õ¶�§�=+²¶�ø+»Y+¶¸·t¶²�8¶¶¶+r¶�ý+¶+²¶�+ ¶�ýï,¶�ß™�+²�õ¶�ø+v¶�ý+²�õ¶�§�=+²¶�ø+»Y+¶¸·x¶²�8¶¶¶+v¶�ý+¶+²¶�+²�Ѷz±����A��&�‰���x��{��|��}�"�~�+��4�€�=��K�z�M�„�T�…�]�†�d�‡�j�ˆ�t�‹�{�Œ�œ��¢�Ž�¦��­�’�´�•�À�–�Ê�—�Ñ�˜�Ø�™�â�œ�é�ž�ð�Ÿ#�¢8�¤>�¥E�¦I�§S�«Z�¬a�­h�°|�±ƒ�³‡�´‘�µ˜�¶Ÿ�·©�º°�»Í�¼Ô�½Ø�¾â�Âé�Ãð�Ä÷�Ç�È�Ê�Ë�Ì�Í$�Î.�Ñ5�ÒX�Ó_�Ôc�Õm�Ùt�Ú{�Û‚�ߌ�à“�ã�ä¤�å«�æµ�ê¹�ìÀ�íÈ�îÍ�ïÖ�ðá�ñþ�ó"�ô)�õ-�ö7�ù>�úE�ûLV]fpw~	ˆ›ÁÖÜãçîõÿ #&'%(,)6,=-c.j/n0u34†67–89§<®=Ï>Ö?Ú@áWèYñZø[ÿ\	_`1a8b<cCfJg�B���„�
                                    ��K�Í�Î����K}~���K����K€��Mþ‚�� �ƒ��8�ƒ��È�o„��Í�j…��¾�†��Ö�†���‡��?‡���ˆ�Ð��5���«�����?+¶‰+²�ѶŒ*+,-·+¶‘*´�|¶”Æ�+²–¶Œ++*´�|¶”¸™¶�ý+¶‘+¶±����A���*�
                                    ! ��k�l�m�n�o� p�'q�6r�:t�>u�B���*����?�Í�Î�����?}~����?�����?€�� ¡��5���Ä�����h+²¢¶Œ+»Y+¶¸·¥¶²�8¶¶§©¶«+®¶�ý+¶+°¶�ý++¶²¶¶»©¶«+½¶�ý+¶+ ¶�ý+¶‘±����A���.���y�z�.{�5|�9}�@�Q€�X�\‚�c„�g…�B�������h�Í�Î�����h}~��¿À��5���L�����
                                      *+,·Á±����A���
                                    ! ���‰�	Š�B��� ����
                                      �������
                                      }~����
                                      ���¿Ã��5������t*´�U¶5šl+²�ѶÄ*+,-·Ç+¶‰8,¶�ß™�`+²¢¶ŒÀ=:À=:Æ�+*+·ÉͶϧ�
                                    --- 486,499 ----
                                      �g(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/lang/String;)V�docType�access$0�E(Lgnu/classpath/tools/doclets/htmldoclet/HtmlDoclet;)Ljava/util/List;�
                                      SourceFile�HtmlDoclet.java�InnerClasses�InterfaceRelation�	UsageType�TreeNode�!�����!�
                                      ������	�
                                    ! ���������
                                    �������������������������������������������������������������������������� �����!�����"�����#�����$�%����&�%����'�����(�)����*�)����+�����,�����-�����.�%����/�����0�����1�2���Y��3�4��5���8������6³�8»�Y·�:¸�=±����A�������k�
                                    v��g�B�������<�4��5��¬����:*·�C*»�DY·�Fµ�G*»�IY·�Kµ�L*»�NYP·�Rµ�U*»�NYW·�Rµ�Y*»�NY[·�Rµ�]*»�NY_·�Rµ�a*»�NYc·�Rµ�e*»�NYg·�Rµ�i*»�NYk·�Rµ�m*»�NYo·�Rµ�q*»�NYs·�Rµ�u*»�wYy·�{µ�|*»�wY~·�{µ�€*»�wY‚·�{µ�„*»�wY†·�{µ�ˆ*»�wYŠ·�{µ�Œ*»�wYŽ·�{µ�*»�’Y”·�–µ�—*»�’Y™·�–µ�›*»�NY·�Rµ�Ÿ*»�¡Y*£·�¥µ�¨*»�ªY*¬·�®µ�¯*»�wY±·�{µ�³*»�wYµ·�{µ�·*»�wY¹·�{µ�»*»�’Y½·�–µ�¿*»�NYÁ·�Rµ�Ã*»�wYÅ·�{µ�Ç*½�ÉY*´�USY*´�YSY*´�]SY*´�aSY*´�iSY*´�mSY*´�eSY*´�uSY*´�|SY	*´�€SY
                                    ! *´�„SY*´�—SY*´�›SY
                                    *´�ˆSY*´�ŒSY*´�SY*´�ŸSY*´�¨SY*´�¯SY*´�³SY*´�·SY*´�»SY*´�¿SY*´�ÃSY*´�ÇSµ�˱����A��N�S���g��p��u�ò�ó�'õ�(ö�4ø�5ù�Aû�Bü�Nþ�Oÿ�[
                                    �\
                                    �h
                                    �i
                                    �u
                                    �v
                                    �‚
                                    ! �ƒ
                                    �
                                    
                                    �
                                    �œ
                                    �
                                    �©
                                    �ª
                                    �¶
                                    �·
                                    �Ã
                                    �Ä
                                    �Ð
                                    �Ñ
                                    �Ý
                                    �Þ
                                     �ê
                                    "�ë
                                    #�÷
                                    %�ø
                                    &
                                    (
                                    )
                                    7
                                    8 
                                    F!
                                    G-
                                    I.
                                    J:
                                    L;
                                    MG
                                    OH
                                    PT
                                    RU
                                    Sa
                                    Ub
                                    Vn
                                    Xo
                                    Yv
                                    Z}
                                    [„
                                    \‹
                                    ]’
                                    ^™
                                    _¡
                                    `©
                                    a±
                                    b¹
                                    cÁ
                                    dÉ
                                    eÑ
                                    fÙ
                                    gá
                                    hé
                                    iñ
                                    jù
                                    k
                                    l	
                                    m
                                    n
                                    o!
                                    p)
                                    q1
                                    r9�g�B������:���������5��
                                    ����K+²�Ѷ�×Ý,¶�ßš�=å,¶�ßš�4ç,¶�ßš�+é,¶�ßš�"ë,¶�ßš�í,¶�ßš�ï,¶�ßš�§�6*¶�ñš�cÝ,¶�ß™�+²�õ¶�ø+û¶�ý+²�õ¶�§�<+²¶�ø+»Y+¶¸·¶²�8¶¶¶+û¶�ý+¶+²¶�+ ¶�ý™�
                                    ! *¶�ñ™�–",¶�ß™�+²�õ¶�ø+$¶�ý+²�õ¶�§�‰+²¶�ø*¶�ñ™�6»Y+¶¸·&¶**¶(·,¶0¶²�8¶¶:§�»Y0·²�8¶¶:+¶+$¶�ý+¶+²¶�§�+²2¶�ø+$¶�ý+²2¶�*´�e¶5š�
                                    *´�Ÿ¶5™Ó+ ¶�ý-Æ�^8,¶�ß™�+²�õ¶�ø+:¶�ý+²�õ¶�§�Q+²¶�ø+»Y-¹<�¸·²�8¶¶¶+:¶�ý+¶+²¶�§�+²2¶�ø+:¶�ý+²2¶�*´�e¶5™�„+ ¶�ý-Æ�dA,¶�ß™�+²�õ¶�ø+C¶�ý+²�õ¶�§�W+²¶�ø+»Y-¹<�¸·E¶²�8¶¶¶+C¶�ý+¶+²¶�§�+²2¶�ø+C¶�ý+²2¶�*´�Ÿ¶5™�Ã+ ¶�ýG,¶�ß™�+²�õ¶�ø+I¶�ý+²�õ¶�§�š-Æ�+²¶�ø-¹<�:K:-¹M�Æ�+-¸Q¹<�:»YU·-¹W�¹[�¶a¶:+»Y¸·d¶²�8¶¶¶¶+I¶�ý+¶+²¶�§�+²2¶�ø+I¶�ý+²2¶�*´�Y¶5š�›+ ¶�ýå,¶�ßš�
                                    f,¶�ß™�+²�õ¶�ø+h¶�ý+²�õ¶�§�i+²¶�ø*¶�ñ™�.™�)»Y**¶(·,¸·j¶²�8¶¶:§�»Yj·²�8¶¶:+¶+h¶�ý+¶+²¶�+ ¶�ý*´�u¶5™�l:§�n:ç,¶�ßš�é,¶�ß™�+²�õ¶�ø+p¶�ý+²�õ¶�§�B+²¶�ø+»Y+¶¸·&¶¶²�8¶¶¶+p¶�ý+¶+²¶�*´�]¶5š�e+ ¶�ýí,¶�ß™�+²�õ¶�ø+r¶�ý+²�õ¶�§�=+²¶�ø+»Y+¶¸·t¶²�8¶¶¶+r¶�ý+¶+²¶�+ ¶�ýï,¶�ß™�+²�õ¶�ø+v¶�ý+²�õ¶�§�=+²¶�ø+»Y+¶¸·x¶²�8¶¶¶+v¶�ý+¶+²¶�+²�Ѷz±����A��&�‰���‰��Œ����Ž�"��+��4�‘�=�’�K�‹�M�•�T�–�]�—�d�˜�j�™�t�œ�{��œ�ž�¢�Ÿ�¦� �­�£�´�¦�À�§�Ê�¨�Ñ�©�Ø�ª�â�­�é�¯�ð�°#�³8�µ>�¶E�·I�¸S�¼Z�½a�¾h�Á|�ƒ�ć�Å‘�Ƙ�ÇŸ�È©�Ë°�ÌÍ�ÍÔ�ÎØ�Ïâ�Óé�Ôð�Õ÷�Ø�Ù�Û�Ü�Ý�Þ$�ß.�â5�ãX�ä_�åc�æm�êt�ë{�ì‚�ðŒ�ñ“�ô�õ¤�ö«�÷µ�û¹�ýÀ�þÈ�ÿÍ�Öáþ")-7
                                    ! >ELV]fpw~ˆ› Á#Ö&Ü'ã(ç)î-õ0ÿ1478%9,:6==>c?j@nAuDE†GH–IJ§M®NÏOÖPÚQáhèjñkølÿm	pq1r8s<tCwJx�B���„�
                                    ��K�Í�Î����K}~���K����K€��Mþ‚�� �ƒ��8�ƒ��È�o„��Í�j…��¾�†��Ö�†���‡��?‡���ˆ�Ð��5���«�����?+¶‰+²�ѶŒ*+,-·+¶‘*´�|¶”Æ�+²–¶Œ++*´�|¶”¸™¶�ý+¶‘+¶±����A���*�
                                    ! ��|�}�~��€� �'‚�6ƒ�:…�>†�B���*����?�Í�Î�����?}~����?�����?€�� ¡��5���Ä�����h+²¢¶Œ+»Y+¶¸·¥¶²�8¶¶§©¶«+®¶�ý+¶+°¶�ý++¶²¶¶»©¶«+½¶�ý+¶+ ¶�ý+¶‘±����A���.���Š�‹�.Œ�5�9Ž�@�Q‘�X’�\“�c•�g–�B�������h�Í�Î�����h}~��¿À��5���L�����
                                      *+,·Á±����A���
                                    ! ���š�	›�B��� ����
                                      �������
                                      }~����
                                      ���¿Ã��5������t*´�U¶5šl+²�ѶÄ*+,-·Ç+¶‰8,¶�ß™�`+²¢¶ŒÀ=:À=:Æ�+*+·ÉͶϧ�
                                    *************** SourceFile�HtmlDoclet.java�InnerClas
                                    *** 507,561 ****
                                      +ò¶�ý+°¶�ý-¹ô�¾ž�+
                                      ú¶ϧ�
                                      +ú¶�ý+°¶�ý-¹ü�¾ž�+¶ϧ�
                                    ! +¶�ý+¶‘+¶+¶±����A��&�I���
                                    ! �‘�’�“�&”�-•�4–�;—�@˜�Q›�X�_ž�dŸ�u¢�|¤�ƒ¦�Œ§�“¨�š©�¡ª�¦«�È®�Ï°�Ö±�Û²�ýµ·º»¾¿Á)Â-Ä4Å;ÇEÈRËYÎ`ÐjÑwÔ~×…Ùڜݣàªâ´ãÁæÈéÌëÓìÚîäïñòøõÿ÷	øûþ$�.;BI	S
                                    ! `
                                    gkos�B���f�
                                      ��t�Í�Î����t}~���t����t€���t���t��4�O��;�H��š�q��¡�j����5��P�����¾*´�U¶5š�¶+²�ѶÄ*+,·Ç+¶‰+²¢¶Œ-Æ�8+»Y+¶¸·&¶*-·,¶0¶²�8¶¶¶ϧ�
                                      +¶�ý+°¶�ýÆ�9+»Y+¶¸·&¶*·,¶0¶²�8¶¶¶ϧ�
                                    ! +¶�ý+¶‘*+·à+¶+¶±����A���F����
                                    ! ����# �'!�\$�c&�j'�o(�¥+�¬-�°/�µ0�¹2�½4�B���4����¾�Í�Î�����¾}~����¾�����¾ ����¾! ��"À��5���J�����*+,·#±����A���
                                    ! ���8�9�B��� �����Í�Î�����}~�������"�Ð��5�������Í8,¶�ß™�F:-¸Q%¹'�:¾ž�2¹+�:Æ�+¶0+²3¶�×+¶�ý+²3¶z+¶0*´�U¶5š�[+²6¶�×+ ¶�ý+²6¶z+²9¶Ä+¶‰+¶<*+,-·+¶‘*´�€¶”Æ�+¶<++*´�€¶”¸™¶�ý+¶‘+¶+¶*´�„¶”Æ�+¶0++*´�„¶”¸™¶�ý±����A���z���=�
                                    ! >�
                                    ?�@�!A�,C�1D�5E�<F�BG�IH�ML�WM�^N�eO�lP�sQ�wR�{S�‚T�†U�V�”W�£X�§Z�«[�¯^�¹_�½`�Ìb�B���>����Í�Í�Î�����Í}~����Í�����Í€��
                                    �@>����2?@��AB��5��J�����¢,¾ž�Ÿ+²C¶�×+²F½�àYISYKS½�àYMSYOS¶Q+²T-¶W6§�J,2:¹[�™�7+¶‰+²^¶Œ*+·a+¶‘+²e¶Œ*+¹h�·l+¶‘+¶„,¾¡ÿµ+¶+²C¶z+p¶�ý±����A���R���f�g�h�3i�;k�Al�Gm�Qn�Up�\q�cr�gt�nu�}v�w�…k�z�“{�š|�¡~�B���>����¢�Í�Î�����¢}~����¢rs����¢t���>�Quv��G�>w��x�4�y����z�5���Þ�
                                    ! ����\»|Y»~Y»€Y»·Y*¶‚…·‡·Š··’L*¶•¹™�M>§�,2¹Ÿ�:¶¢ž�	+¶¥„,¾¡ÿâ+¶¨±����A���6�
                                    ��„�…�†�#„�&ƒ�'ˆ�1‰�6Š�@‹�HŒ�N‰�W�[‘�B���4����\�Í�Î���'�5«¬��1�+­®��3�$uv��@�¯���°±�y����z�5��Y����M*»·Y+»Y0·²�8¶¶·‡,·²:»¶Y·¸:»Y-¹Ÿ�¸·¹¶¶¹»�W*-¹Ÿ�·À*·Ä*·Ƕ˲϶Ò*"·Õ²׶�×Ú¶�ý-¹Ÿ�¶¢ž�-¹Ÿ�¶�ý§�ܶ�ý²׶z²Þ¶�×*--¹á�·l²Þ¶z*-¹â�å·ç*-¹é�ì·ç*-¹î�ñ·ç*-¹ó�ö·çø¶ú²ý¶�×*--¹��·l²ý¶z*"·¶¶¶±����A���¢�(��™�š�™�"œ�+�LŸ�\ �bŸ�e¡�m¢�z¤�‚¥�Š¦�–§�¤ª�¬¬�´®�¼¯�Ê°�Ò²�Û³�Þ²�á´�êµ�í´�ð¶�ù·�ü¶�ÿ¸¹¸»¼½,¾4À=ÁBÂGÃLÄ�B���R���M�Í�Î����M
                                    ���M����M ���M ���M ��"+}~��+"����5���Ë�����O+,¹�¹�ÀN-Ç�<»Y,·!N+,¹�-¹$�W,¹(�:Æ�*+·+:´--¹1�W-°����A���&�	��â�ã�ä�å�+ç�3è�8é�Aê�Mí�B���>����O�Í�Î�����O4�����Ow���?56��3�7��A�86��9��5��M�����¡+,¹�¹�ÀN-Ç�Ž»Y,·!N+,¹�-¹$�W,¹:�:Æ�5¾ž�/6§�*+2·;:´--¹1�W„¾¡ÿà§�8+=¹�À:Ç�»Y·!:+=¹$�W´--¹1�W-°����A���B���ò�ó�ô�õ�+÷�3ø�>ù�Dú�Pû�\ù�jÿ�x��}�‡�“�Ÿ�B���R����¡�Í�Î�����¡4�����¡w���‘56��3�l?s��A�&uv��P�86��x�'@6��AB��5��â��	��’+C8E¶F+I¶K,´M¹[�™�B,´M¹O�¹Ÿ�:¶¢ž�+¶�ý+R¶�ý+²T¶�ø*+,´M·a+²T¶�§�+*,´M¶W¶�ý,´M¹:�::-Æ�	-´M:¾ž�£¾ �2¶[š�,´M¹^�™�
                                    +a¶�ý§�
                                      +c¶�ý66§�[2:¶[š�Gš�
                                    ! +e¶�ý6¹[�™�$+¹O�¹Ÿ�¶�ý+R¶�ý*+·a§�
                                    +*¶W¶�ý„¾¡ÿ£+g¶�ý+I¶i+C¶i,´-¹l�š�Q+C8o¶F+q¶K,´-¹s�:§�¹w�À:*+,·|¹~�šÿå+q¶i+C¶i±����A���¾�/���
                                    
                                    �� �0�8�>�E�L�U�_�k�v�y�}�ƒ �‰!�œ"�¨#�²&�¹)�¼*�Â+�É,�Ó-�Ø.�ß0�â1�ì2�ü34
                                    7*";)>0?7@CAPBWCbDeEqFyDƒHŠI‘K�B���z���’�Í�Î����’}~���’56���’86��0�/¯���väs��y��¼�m‚���¿�cuv��É�Nƒ�b�/„…�q�†6��‡ˆ��5���ú�����d»�IY·�KN6§�,2:¹^�š�*-·+W„,¾¡ÿá-‰¹�À:Æ�#+²‹Ž¶+²’¶�×*+·|+²’¶z±����A���6�
                                    ��O�Q�R�S�T�&Q�0X�>Y�CZ�M[�T\�\]�c_�B���H����d�Í�Î�����d}~����drs���\•����%uv���w��>�&–6��—ˆ��5��Q�����“»�IY·�KN6§�,2:¹^�™�*-·;W„,¾¡ÿá-=¹�À:Æ�R´-¹s�:¹~�™�<+²‹˜¶+²’¶�ק�¹w�À:*+·|¹~�šÿå+²’¶z±����A���J���c�e�f�g�h�&e�0l�>m�Cn�Oo�Yp�cq�jr�ms�yt�r�‹v�’z�B���\�	���“�Í�Î�����“}~����“rs���‹š����%uv���w��>�U›6��O�C„…��y�56��œ�y����z�5��P�����¬*»·Y+»Yj·²�8¶¶·‡,·²:*»Y-¹Ÿ�¸·ž¶¶·À*·Ä*·Ƕ ²£¶Ò*f·¦²¨»Y«·-¹Ÿ�¶¶¶-¹­�:*·°*·²*f·¶¶¶±����A���N����€���"‚�Aƒ�E„�I‚�L…�T†�]ˆ�{Š�ƒ‹�‹Œ�“Ž�œ�¡�¦‘�«’�B���>����¬�Í�Î�����¬
                                    ����¬�����¬ ��"�Š}~��ƒ�)rs��´�4�y����z�5��é����	*»·Y*¶‚»Yj·²�8¶¶·‡R·²L+*µ·À*·Ä*·Ƕ +²·¶Ò*+å·¦+²¨º¶+²¼¶�×+²¿¶+²Ķ�×*¶ÇM,¹Ë�N§�P-¹w�À :+»Y*·,¸·j¶²�8¶¶¶+¹Ÿ�¶�ý+¶-¹~�™�
                                    ! +e¶�ý-¹~�šÿ­+²Ķz+²¼¶z*¶•¹Ì�:*+·°*+·²*+å·+¶+¶+¶±����A���Š�"��—�	˜�™�"—�&š�.›�2œ�6š�9�@ž�G �Q¢�X£�b¤�i¥�n¦�u§�x¨�ƒ©�¦ª�±«�µ¬�¾­�ŧ�ΰ�Õ±�ܳ�ç´�îµ�õ·�ü¸�¹º»�B���>���	�Í�Î���&�ã}~��n�›Ï��u�”„…��ƒ�B ��ç�"rs��ÐÑ��5������Ö+²Ò¶�×+²Õ¶�×,Á ™�@+»Y*,À ·,¸·0¶²�8¶¶¶+,¹Ø�¶�ý+¶+Û¶�ý§],Á=™�¦,À=N+*-·ݶ+»Y,¹Ø�¸·*-·á¶¶¶�ý+¶+ä¶�ý,¹æ�™�
                                    +ç¶�ý§�0,¹é�™�
                                    +ì¶�ý§�,¹î�™�
                                    +ñ¶�ý§�
                                      +ó¶�ý-¹O�¹Ÿ�:¶¢ž�+¶�ý+R¶�ý*+-·a§�³,ÀõN+*+-·÷¶+,¹Ø�¶�ý-Áû™�+-Àû¹ý�¶�ý+¶+ä¶�ý-¹��™�
                                      +¶�ý,¹�™�
                                    +¶�ý§�&,¹
                                      �™�
                                    +
                                    ¶�ý§�,¹�™�
                                    ! +¶�ý-¹�:¹O�¹Ÿ�:¶¢ž�+¶�ý+R¶�ý*+·a+²Õ¶z+²¶�×*+,,¹�·l+²¶z+²Ò¶z±����A���Ò�4��¿�À�Ã�Ä�:Å�DÆ�HÇ�RÉ�YÊ�^Ë�gÌ�†Í�ŠÎ�‘Ï�šÐ�¤Ò�­Ó�·Õ�ÀÖ�ÊÙ�ÑÛ�ÞÜ�æÝ�ìÞ�óà�üãäåæç)é-ê4ì=íDðMñWó`ôjös÷zù‚úû˜üžý¥ÿ¬³ºÇÎÕ�B���R���Ö�Í�Î����Ö}~���Ö��^�žw��Þ�¯���«�‚�*O��¯����4�y����z�5��O�
                                    ! ���}*»·Y*¶‚»Yç·²�8¶¶·‡R· L*·#M+,*·Ä*·Ƕ +&(*¶F*¶�ñ™�g+,½�àY.SY0S½�àY»Y**¶(·,¸·1¶²�8¶¶SY1S¶2»Y**¶(·,¸·6¶¶N§�™+&8:¶F+,½�àY.SY0S½�àY»Y<·²�8¶¶SY>S¶2+,½�àY.SY0S½�àY»Y?·²�8¶¶SY1S¶2+&¶i»YA·²�8¶¶N+,½�àY.SY0S½�àY-SYCS¶2+&¶i+¶+¶±����A���†�!���	�
                                    �!�$�(�-�:�G�N�R�b��“�²�¿�Ã�Ó�ó�ö �ú!
                                    ! "* -#4$H&L'\(j&m)t*x+|,�B���4���}�Í�Î���(U}~��-PE���¯�F��H�5F���G�4�y����z�5��þ����*»·Y*¶‚»Y<·²�8¶¶·‡R·²L+*H·À*·Ä*·Ƕ +²J¶M+²P¶�ø+»Y?·²�8¶¶1¶«+S¶�ý+¶+²P¶�+²UX¶+²Z¶�×*¶ÇM,¹Ë�N§�m-¹w�À :+²P¶�ø+»Y*·,¸·1¶²�8¶¶1¶«¹Ÿ�¶¢ž�+¹Ÿ�¶�ý§�
                                    ! +]¶�ý+¶+²P¶�+¶_-¹~�šÿ+²Z¶z+¶+¶+¶±����A���–�%��1�	2�3�"1�&4�95�A7�H8�\9�]:�`8�c;�j<�n=�u?�A�†C�‹D�’E�•F� G�§H�ÇI�ÈJ�ËH�ÎK�ÛL�éO�ðQ�ôR�ûS�ÿEVWXYZ�B���4����Í�Î���&�ö}~��‹�‘b��’�Š„…�� �_ ��cd��5���Æ�����D,¹^�™�
                                    ! ²eN§�²hN+-¶�ø+*+,·É,¹k�C¶«+,¹<�¶�ý+¶+-¶�+¶_±����A���6�
                                    ��_�	`�c�e�f� g�&h�)f�,i�6j�:k�?l�Cm�B���4����D�������D}~����Dw��
                                    �n�Ö���0n�Ö��op��5���²�����:,¹q�š�3+²t-¶,¹w�:§�¹w�À=:*+·x¹~�šÿæ±����A���"���q�	r�s�t�u�(v�/t�9y�B���>����:�Í�Î�����:}~����:rz����:t���� „…��(�w��{|��5��î��
                                      ���î+²}¶�×™�·»€Y·‚:»€Y·‚:»€Y·‚:»€Y·‚:6§�[,2:		¹^�™�	¹»�W§�;	¹ƒ�™�	¹»�W§�$	¹„�™�	¹»�W§�
                                    	¹»�W„,¾¡ÿ¤*+…·‡*+‰·‡*+‹·‡*+Œ·‡§�*6§�,2:¹[�™�
                                    ! *+·x„,¾¡ÿâ+²}¶z±����A���n���}��€��‚�&ƒ�/…�5†�;‡�Eˆ�RŠ�\‹�i�sŽ�€‘�Š…�””�ž•�¨–�²—�¿š�Å›�Ëœ�Õ�Üš�æ¢�í£�B���z����î�Í�Î�����î}~����îrs����îŽ����«Î���¢ä��&�™ð��/�õ��2�buv��;�Ow�	�Â�$uv��Ë�w���4�y����z�5���Ç�����g*»·Y*¶‚»Y?·²�8¶¶·‡R·²L+*·À*·Ä*·Ƕ +²’¶M+²•S¶*+*¶•¹Ì�·˜+¶+¶+¶±����A���2���¨�	©�ª�"¨�&«�9¬�A®�K°�Z²�^³�b´�fµ�B�������g�Í�Î���&�A}~��š�y����z�5��e�����Ç*»·Y+»Y1·²�8¶¶·‡,·²:*»Y-¹Ÿ�¸·›¶¶·À*·Ä*·Ƕ ²’¶M²•¶�×»Y0·²�8¶¶KC¶«-¹Ÿ�¶¢ž�-¹Ÿ�¶�ý§�ܶ�ý¶²•¶z*-¹­�·˜¶¶¶±����A���R���º�»�¼�º�"¾�A¿�I¾�LÀ�UÂ�]Ã�{Ä�‡Å�•È�Ê�¢Ë�ªÍ�·Ï�¼Ð�ÁÑ�ÆÒ�B���4����Ç�Í�Î�����Ç
                                    ����Ç�����Ç ��"�¥}~���4�y����z�5���Ø�����N*¶žL+¹¡�¹Ë�M>+¹¤�6§�),¹w�À§:+¹�À©:*„·«,¹~�šÿÔ±����A���*�
                                    ! ��×�Ø�Ù�Ú�Û�Ü�)Ý�6Þ�DÛ�Mà�B���H����N�Í�Î����I¯����=„…���;°v���3±v��)�²³��6�´�
                                      ��­�4�y����z�5���7�����	*·«±����A���
                                    ! ���å�æ�B�������	�Í�Î���­®�y����z�5��’�	���
                                      n:-Æ�»Y¸·µ¶¶a¶:*»·Y*¶‚»Y¸·²�8¶¶·‡R·²:*··À*·Ä*·Ƕ ²¹¶Ò-Ç�*ç·¦§�2*é¤�»ÕYd·¼§�¢�»ÕY`·¼§�·Á-Ç�·:§�»Y¿·-¶Ù¶:²Á¶-Ç�*¶ž¹¡�¹Ä�¤�¬²Ŷ�×*¶ž¹¡�¹Ë�:6	§�„¹w�À§:
                                      ²ȶ�ø-Æ�#»Y×·	¶a²�8¶¶¶§�»YË·
                                      ¶Ù¶¶
                                    ! ¶Ͷ�ý¶²ȶ�²ζ�ø ¶�ý²ζ�„	¹~�šÿx²Ŷz-Æ�*-·ѧ�N*¶ž:¹¡�¹Ë�:§�-¹w�À§N-¹�À©:-¶Ͷú*-·Ñ¹~�šÿÏ*ç·¶¶¶±����A���â�8��ë�ì�	í�$ï�-ð�Eñ�Hï�Mò�Vó�Zô�^ò�aõ�iö�m÷�xú�~û�‘ü�¤ú�§�«�³�Æ�Ð	�æ
                                    ! �î�þ
                                    <S]bjrz‚…!—$›%§(­)»+¾,É-Ö.ß/è+ò3ú4ÿ56	7�B���Ž���
                                      ������
                                      �èv���
                                      Õv���
                                      ֳ���
                                      ´�
                                      ��×���M½}~��°�E���Æ�ÑE���þ�‘„…��Ž°v�	�u²³�
                                    ! ­�E¯��»�7Ø…��ÓÔ��5���¾�����B-¹Ù�:+²Ú,¶Ͷ+²ݶ�ק�¹w�ÀÙ:*+·à¹~�šÿæ+²ݶz±����A���&�	��;�=�>�?�@�)A�0?�:C�AD�B���>����B�Í�Î�����B}~����BÖ³����B´�
                                    ! ���:„…��)���âã��5��å����,¹ä�š+²C¶�×+²å½�àYISYKS½�àYMSYOS¶Q+²T-¶W,¹Ù�:§�«¹w�ÀÙ:+¶‰+²è¶ŒÁë™�*+Àë·a§�QÀõ:+*+·÷¶+¹�¹�¶�ý+R¶�ý+¹í�¶�ýÁû™�+Àû¹î�¶�ý+¶+²ñ¶�×*+í¹ô�2¹õ�·l+²ñ¶z+¶‘+¶¹~�šÿQ+¶+²C¶z+p¶�ý±����A���v���H�	I�J�7K�?M�GN�JO�VP�ZR�aS�iT�vW�}X�ˆY�˜Z�Ÿ[�ª\�²]�À_�Äa�Ëb�ãc�êe�îg�òN�üi�jkm�B���H����Í�Î����}~���ö�
                                      ���t���G�Ç„…��V�œ÷��}�G��ø�4�y����z�5��m��
                                      ��á*»·Y*¶‚»Yù·²�8¶¶·‡R·²L+*û·À*·Ä*·Ƕ +²ý¶Ò*+ë·¦+²�û¶*¶ǹË�M§i,¹w�À N»�DY·�F:-¹­�:6§�+2:¹�š�
                                    ¹�™�
                                    ¹	�W„¾¡ÿÓ¹ä�š+²
                                    ! »YÚ·-¹Ÿ�¶¶¶¹Ù�:§�Û¹w�À=:+¹k�¶ú+²
                                    ¶�×+¶�ý*+·+¶�ý*+¹(�·a+¶�ý+²
                                    ¶z*¶:Æ�[¹�™�Q¹$�™�G¹%�¹)�,¶�ß™�2¹.�:		Æ�$+²1¶�×+²47¶9+²<	¶9+²1¶z*+¹?�B·D*+¹H�K·D¹~�šÿ!,¹~�šþ”*+ë·+¶+¶+¶±����A���ú�>��s�	t�u�"s�&v�.w�2x�6v�9y�@z�G|�Q~�[€�^‚�h„�q…�y†�‡�†ˆ�š‰�¤†�¯�¹Ž�Ö�ß‘�â’�î”�ù–�—˜™š"›)œ0ž;Ÿ@ J¡T¢i¤r¥w¦~§ˆ¨‘©˜¬š­¡®¤¯¦¬©°«±²²µ³·°º‘Ā͸Ժػܼà½�B���z���á�Í�Î���&»}~��[†„…��h\ ��qSM�
                                      ��yKÎs��|�3uv��†�w��ß�åN…��î�Ìw�;�OP�r�&Q��	�R�4�y����z�5��”����Ø*»·Y*¶‚»Yí·²�8¶¶·‡R·²L+*S·À*·Ä*·Ƕ +²ý¶Ò*+í·¦+²US¶»�DY·�FM»�DY·�FN»�DY·�F:»�DY·�F:»�DY·�F:»�DY·�F:»�DY·�F:*¶•¹Ì�:	6
                                      §0	
                                      2:í¹'�:Æ�V¾ž�P¹^�™�,¹	�W§�:¹ƒ�™�-¹	�W§�$¹„�™�¹	�W§�
                                    ¹	�W¹ü�:6
                                    §�,
                                    2í¹X�:Æ�¾ž�
                                    2¹	�W„
                                    
                                    ¾¡ÿÒ¹ô�:
                                    6§�,
                                    2í¹[�:Æ�¾ž�
                                    2¹	�W„
                                    ¾¡ÿÒ¹ì�:6§�,2í¹^�:Æ�¾ž�2¹	�W„¾¡ÿÒ„
                                      
                                    ! 	¾¡þÎ,¹ä�™�>¹ä�™�4-¹ä�™�+¹ä�™�!¹ä�™�¹ä�™�
                                    ¹ä�š›+²_¶�×+²be¶+²g¶�×,¹ä�š�+²j¶�×+mo¶Ï+²j¶z¹ä�š�+²j¶�×+qs¶Ï+²j¶z-¹ä�š�+²j¶�×+uw¶Ï+²j¶z¹ä�š�+²j¶�×+y{¶Ï+²j¶z¹ä�š�+²j¶�×+}¶Ï+²j¶z¹ä�š�+²j¶�×+ƒ¶Ï+²j¶z¹ä�š�+²j¶�×+…‡¶Ï+²j¶z+²g¶z+²_¶z+²‰¶�×+Œ¶ú*+,o·+1¶ú*+s·+¶ú*+-w·+¶ú*+{·+‘¶ú*+·+’¶ú*+ƒ·+“¶ú*+‡·+²‰¶z§�+²”¶�×+—¶�ý+²”¶z*+í·+¶+¶+¶±����A��Æ�q��Ã�	Ä�Å�!Ã�%Æ�-Ç�1È�5Æ�8É�?Ê�FÌ�PÎ�XÏ�`Ð�iÑ�rÒ�{Ó�„Ô�Ö�˜×�žØ�¥Ú�°Û�»Ü�ÅÝ�Ñß�Ûà�çâ�ñã�þæêëì%í0î=ëHñQòWóeôpõ}òˆø‘ù—ú¥û°ü½ùÈ×ÓÜæïù
                                    	
                                    ! (/8
                                    ?IPZakr{‚Œ“¤®µ ¿!Æ"Ð#×%á&è'ò(ù*+
                                    ! ,-/"0)10374@6G7Q9X:a<h=r?y@ƒBŠC”E›F¥H¯K¶L½MÄQËRÏSÓT×U�B���Þ���Ø�Í�Î���%³}~��X€™�
                                      ��`xš�
                                      ��io›�
                                      ��rfœ�
                                    --- 509,565 ----
                                      +ò¶�ý+°¶�ý-¹ô�¾ž�+
                                      ú¶ϧ�
                                      +ú¶�ý+°¶�ý-¹ü�¾ž�+¶ϧ�
                                    ! +¶�ý+¶‘+¶+¶±����A��&�I�� �
                                    ! ¡�¢�£�¤�&¥�-¦�4§�;¨�@©�Q¬�X®�_¯�d°�u³�|µ�ƒ·�Œ¸�“¹�šº�¡»�¦¼�È¿�ÏÁ�ÖÂ�ÛÃ�ýÆÈËÌÏÐÒ)Ó-Õ4Ö;ØEÙRÜYß`ájâwå~è…êëœî£ñªó´ôÁ÷ÈúÌüÓýÚÿä�ñøÿ		$.;BIS`g!k"o$s&�B���f�
                                      ��t�Í�Î����t}~���t����t€���t���t��4�O��;�H��š�q��¡�j����5��P�����¾*´�U¶5š�¶+²�ѶÄ*+,·Ç+¶‰+²¢¶Œ-Æ�8+»Y+¶¸·&¶*-·,¶0¶²�8¶¶¶ϧ�
                                      +¶�ý+°¶�ýÆ�9+»Y+¶¸·&¶*·,¶0¶²�8¶¶¶ϧ�
                                    ! +¶�ý+¶‘*+·à+¶+¶±����A���F���+�
                                    ! ,�-�/�0�#1�'2�\5�c7�j8�o9�¥<�¬>�°@�µA�¹C�½E�B���4����¾�Í�Î�����¾}~����¾�����¾ ����¾! ��"À��5���J�����*+,·#±����A���
                                    ! ���I�J�B��� �����Í�Î�����}~�������"�Ð��5�������Í8,¶�ß™�F:-¸Q%¹'�:¾ž�2¹+�:Æ�+¶0+²3¶�×+¶�ý+²3¶z+¶0*´�U¶5š�[+²6¶�×+ ¶�ý+²6¶z+²9¶Ä+¶‰+¶<*+,-·+¶‘*´�€¶”Æ�+¶<++*´�€¶”¸™¶�ý+¶‘+¶+¶*´�„¶”Æ�+¶0++*´�„¶”¸™¶�ý±����A���z���N�
                                    ! O�
                                    P�Q�!R�,T�1U�5V�<W�BX�IY�M]�W^�^_�e`�la�sb�wc�{d�‚e�†f�g�”h�£i�§k�«l�¯o�¹p�½q�Ìs�B���>����Í�Í�Î�����Í}~����Í�����Í€��
                                    �@>����2?@��AB��5��J�����¢,¾ž�Ÿ+²C¶�×+²F½�àYISYKS½�àYMSYOS¶Q+²T-¶W6§�J,2:¹[�™�7+¶‰+²^¶Œ*+·a+¶‘+²e¶Œ*+¹h�·l+¶‘+¶„,¾¡ÿµ+¶+²C¶z+p¶�ý±����A���R���w�x�y�3z�;|�A}�G~�Q�U�\‚�cƒ�g…�n†�}‡�ˆ�…|�‹�“Œ�š�¡�B���>����¢�Í�Î�����¢}~����¢rs����¢t���>�Quv��G�>w��x�4�y����z�5���Þ�
                                    ! ����\»|Y»~Y»€Y»·Y*¶‚…·‡·Š··’L*¶•¹™�M>§�,2¹Ÿ�:¶¢ž�	+¶¥„,¾¡ÿâ+¶¨±����A���6�
                                    ��•�–�—�#•�&”�'™�1š�6›�@œ�H�Nš�W¡�[¢�B���4����\�Í�Î���'�5«¬��1�+­®��3�$uv��@�¯���°±�y����z�5��Y����M*»·Y+»Y0·²�8¶¶·‡,·²:»¶Y·¸:»Y-¹Ÿ�¸·¹¶¶¹»�W*-¹Ÿ�·À*·Ä*·Ƕ˲϶Ò*"·Õ²׶�×Ú¶�ý-¹Ÿ�¶¢ž�-¹Ÿ�¶�ý§�ܶ�ý²׶z²Þ¶�×*--¹á�·l²Þ¶z*-¹â�å·ç*-¹é�ì·ç*-¹î�ñ·ç*-¹ó�ö·çø¶ú²ý¶�×*--¹��·l²ý¶z*"·¶¶¶±����A���¢�(��ª�«�ª�"­�+®�L°�\±�b°�e²�m³�zµ�‚¶�Š·�–¸�¤»�¬½�´¿�¼À�ÊÁ�ÒÃ�ÛÄ�ÞÃ�áÅ�êÆ�íÅ�ðÇ�ùÈ�üÇ�ÿÉÊÉÌÍÎ,Ï4Ñ=ÒBÓGÔLÕ�B���R���M�Í�Î����M
                                    ���M����M ���M ���M ��"+}~��+"����5���Ë�����O+,¹�¹�ÀN-Ç�<»Y,·!N+,¹�-¹$�W,¹(�:Æ�*+·+:´--¹1�W-°����A���&�	��ó�ô�õ�ö�+ø�3ù�8ú�Aû�Mþ�B���>����O�Í�Î�����O4�����Ow���?56��3�7��A�86��9��5��M�����¡+,¹�¹�ÀN-Ç�Ž»Y,·!N+,¹�-¹$�W,¹:�:Æ�5¾ž�/6§�*+2·;:´--¹1�W„¾¡ÿà§�8+=¹�À:Ç�»Y·!:+=¹$�W´--¹1�W-°����A���B�������+�3	�>
                                    ! �D�P�\
                                    ! �j�x�}�‡�“�Ÿ�B���R����¡�Í�Î�����¡4�����¡w���‘56��3�l?s��A�&uv��P�86��x�'@6��AB��5��â��	��’+C8E¶F+I¶K,´M¹[�™�B,´M¹O�¹Ÿ�:¶¢ž�+¶�ý+R¶�ý+²T¶�ø*+,´M·a+²T¶�§�+*,´M¶W¶�ý,´M¹:�::-Æ�	-´M:¾ž�£¾ �2¶[š�,´M¹^�™�
                                    +a¶�ý§�
                                      +c¶�ý66§�[2:¶[š�Gš�
                                    ! +e¶�ý6¹[�™�$+¹O�¹Ÿ�¶�ý+R¶�ý*+·a§�
                                    +*¶W¶�ý„¾¡ÿ£+g¶�ý+I¶i+C¶i,´-¹l�š�Q+C8o¶F+q¶K,´-¹s�:§�¹w�À:*+,·|¹~�šÿå+q¶i+C¶i±����A���¾�/���
                                    ��  �0!�8"�>#�E%�L&�U'�_*�k,�v-�y.�}/�ƒ1�‰2�œ3�¨4�²7�¹:�¼;�Â<�É=�Ó>�Ø?�ßA�âB�ìC�üDE
                                    H;"L)O0P7QCRPSWTbUeVqWyUƒYŠZ‘\�B���z���’�Í�Î����’}~���’56���’86��0�/¯���väs��y��¼�m‚���¿�cuv��É�Nƒ�b�/„…�q�†6��‡ˆ��5���ú�����d»�IY·�KN6§�,2:¹^�š�*-·+W„,¾¡ÿá-‰¹�À:Æ�#+²‹Ž¶+²’¶�×*+·|+²’¶z±����A���6�
                                    ��`�b�c�d�e�&b�0i�>j�Ck�Ml�Tm�\n�cp�B���H����d�Í�Î�����d}~����drs���\•����%uv���w��>�&–6��—ˆ��5��Q�����“»�IY·�KN6§�,2:¹^�™�*-·;W„,¾¡ÿá-=¹�À:Æ�R´-¹s�:¹~�™�<+²‹˜¶+²’¶�ק�¹w�À:*+·|¹~�šÿå+²’¶z±����A���J���t�v�w�x�y�&v�0}�>~�C�O€�Y�c‚�jƒ�m„�y…�ƒ�‹‡�’‹�B���\�	���“�Í�Î�����“}~����“rs���‹š����%uv���w��>�U›6��O�C„…��y�56��œ�y����z�5��P�����¬*»·Y+»Yj·²�8¶¶·‡,·²:*»Y-¹Ÿ�¸·ž¶¶·À*·Ä*·Ƕ ²£¶Ò*f·¦²¨»Y«·-¹Ÿ�¶¶¶-¹­�:*·°*·²*f·¶¶¶±����A���N����‘�’��"“�A”�E•�I“�L–�T—�]™�{›�ƒœ�‹�“Ÿ�œ �¡¡�¦¢�«£�B���>����¬�Í�Î�����¬
                                    ����¬�����¬ ��"�Š}~��ƒ�)rs��´�4�y����z�5��é����	*»·Y*¶‚»Yj·²�8¶¶·‡R·²L+*µ·À*·Ä*·Ƕ +²·¶Ò*+å·¦+²¨º¶+²¼¶�×+²¿¶+²Ķ�×*¶ÇM,¹Ë�N§�P-¹w�À :+»Y*·,¸·j¶²�8¶¶¶+¹Ÿ�¶�ý+¶-¹~�™�
                                    ! +e¶�ý-¹~�šÿ­+²Ķz+²¼¶z*¶•¹Ì�:*+·°*+·²*+å·+¶+¶+¶±����A���Š�"��¨�	©�ª�"¨�&«�.¬�2­�6«�9®�@¯�G±�Q³�X´�bµ�i¶�n·�u¸�x¹�ƒº�¦»�±¼�µ½�¾¾�Ÿ�ÎÁ�ÕÂ�ÜÄ�çÅ�îÆ�õÈ�üÉ�ÊËÌ�B���>���	�Í�Î���&�ã}~��n�›Ï��u�”„…��ƒ�B ��ç�"rs��ÐÑ��5������Ö+²Ò¶�×+²Õ¶�×,Á ™�@+»Y*,À ·,¸·0¶²�8¶¶¶+,¹Ø�¶�ý+¶+Û¶�ý§],Á=™�¦,À=N+*-·ݶ+»Y,¹Ø�¸·*-·á¶¶¶�ý+¶+ä¶�ý,¹æ�™�
                                    +ç¶�ý§�0,¹é�™�
                                    +ì¶�ý§�,¹î�™�
                                    +ñ¶�ý§�
                                      +ó¶�ý-¹O�¹Ÿ�:¶¢ž�+¶�ý+R¶�ý*+-·a§�³,ÀõN+*+-·÷¶+,¹Ø�¶�ý-Áû™�+-Àû¹ý�¶�ý+¶+ä¶�ý-¹��™�
                                      +¶�ý,¹�™�
                                    +¶�ý§�&,¹
                                      �™�
                                    +
                                    ¶�ý§�,¹�™�
                                    ! +¶�ý-¹�:¹O�¹Ÿ�:¶¢ž�+¶�ý+R¶�ý*+·a+²Õ¶z+²¶�×*+,,¹�·l+²¶z+²Ò¶z±����A���Ò�4��Ð�Ñ�Ô�Õ�:Ö�D×�HØ�RÚ�YÛ�^Ü�gÝ�†Þ�Šß�‘à�šá�¤ã�­ä�·æ�Àç�Êê�Ñì�Þí�æî�ìï�óñ�üôõö÷ø)ú-û4ý=þDMW`jsz
                                    ! ‚˜
                                    ž¥¬³ºÇÎÕ�B���R���Ö�Í�Î����Ö}~���Ö��^�žw��Þ�¯���«�‚�*O��¯����4�y����z�5��O�
                                    ! ���}*»·Y*¶‚»Yç·²�8¶¶·‡R· L*·#M+,*·Ä*·Ƕ +&(*¶F*¶�ñ™�g+,½�àY.SY0S½�àY»Y**¶(·,¸·1¶²�8¶¶SY1S¶2»Y**¶(·,¸·6¶¶N§�™+&8:¶F+,½�àY.SY0S½�àY»Y<·²�8¶¶SY>S¶2+,½�àY.SY0S½�àY»Y?·²�8¶¶SY1S¶2+&¶i»YA·²�8¶¶N+,½�àY.SY0S½�àY-SYCS¶2+&¶i+¶+¶±����A���†�!���	��!�$�(!�-"�:#�G&�N'�R(�b)�'�“*�²-�¿.�Ã/�Ó0�ó.�ö1�ú2
                                    ! 3*1-445H7L8\9j7m:t;x<|=�B���4���}�Í�Î���(U}~��-PE���¯�F��H�5F���G�4�y����z�5��þ����*»·Y*¶‚»Y<·²�8¶¶·‡R·²L+*H·À*·Ä*·Ƕ +²J¶M+²P¶�ø+»Y?·²�8¶¶1¶«+S¶�ý+¶+²P¶�+²UX¶+²Z¶�×*¶ÇM,¹Ë�N§�m-¹w�À :+²P¶�ø+»Y*·,¸·1¶²�8¶¶1¶«¹Ÿ�¶¢ž�+¹Ÿ�¶�ý§�
                                    ! +]¶�ý+¶+²P¶�+¶_-¹~�šÿ+²Z¶z+¶+¶+¶±����A���–�%��B�	C�D�"B�&E�9F�AH�HI�\J�]K�`I�cL�jM�nN�uP�R�†T�‹U�’V�•W� X�§Y�ÇZ�È[�ËY�Î\�Û]�é`�ðb�ôc�ûd�ÿVghijk�B���4����Í�Î���&�ö}~��‹�‘b��’�Š„…�� �_ ��cd��5���Æ�����D,¹^�™�
                                    ! ²eN§�²hN+-¶�ø+*+,·É,¹k�C¶«+,¹<�¶�ý+¶+-¶�+¶_±����A���6�
                                    ��p�	q�t�v�w� x�&y�)w�,z�6{�:|�?}�C~�B���4����D�������D}~����Dw��
                                    �n�Ö���0n�Ö��op��5���²�����:,¹q�š�3+²t-¶,¹w�:§�¹w�À=:*+·x¹~�šÿæ±����A���"���‚�	ƒ�„�…�†�(‡�/…�9Š�B���>����:�Í�Î�����:}~����:rz����:t���� „…��(�w��{|��5��î��
                                      ���î+²}¶�×™�·»€Y·‚:»€Y·‚:»€Y·‚:»€Y·‚:6§�[,2:		¹^�™�	¹»�W§�;	¹ƒ�™�	¹»�W§�$	¹„�™�	¹»�W§�
                                    	¹»�W„,¾¡ÿ¤*+…·‡*+‰·‡*+‹·‡*+Œ·‡§�*6§�,2:¹[�™�
                                    ! *+·x„,¾¡ÿâ+²}¶z±����A���n���Ž��‘�’�“�&”�/–�5—�;˜�E™�R›�\œ�iž�sŸ�€¢�Š–�”¥�ž¦�¨§�²¨�¿«�Ŭ�Ë­�Õ®�Ü«�æ³�í´�B���z����î�Í�Î�����î}~����îrs����îŽ����«Î���¢ä��&�™ð��/�õ��2�buv��;�Ow�	�Â�$uv��Ë�w���4�y����z�5���Ç�����g*»·Y*¶‚»Y?·²�8¶¶·‡R·²L+*·À*·Ä*·Ƕ +²’¶M+²•S¶*+*¶•¹Ì�·˜+¶+¶+¶±����A���2���¹�	º�»�"¹�&¼�9½�A¿�KÁ�ZÃ�^Ä�bÅ�fÆ�B�������g�Í�Î���&�A}~��š�y����z�5��e�����Ç*»·Y+»Y1·²�8¶¶·‡,·²:*»Y-¹Ÿ�¸·›¶¶·À*·Ä*·Ƕ ²’¶M²•¶�×»Y0·²�8¶¶KC¶«-¹Ÿ�¶¢ž�-¹Ÿ�¶�ý§�ܶ�ý¶²•¶z*-¹­�·˜¶¶¶±����A���R���Ë�Ì�Í�Ë�"Ï�AÐ�IÏ�LÑ�UÓ�]Ô�{Õ�‡Ö�•Ù�Û�¢Ü�ªÞ�·à�¼á�Áâ�Æã�B���4����Ç�Í�Î�����Ç
                                    ����Ç�����Ç ��"�¥}~���4�y����z�5���Ø�����N*¶žL+¹¡�¹Ë�M>+¹¤�6§�),¹w�À§:+¹�À©:*„·«,¹~�šÿÔ±����A���*�
                                    ! ��è�é�ê�ë�ì�í�)î�6ï�Dì�Mñ�B���H����N�Í�Î����I¯����=„…���;°v���3±v��)�²³��6�´�
                                      ��­�4�y����z�5���7�����	*·«±����A���
                                    ! ���ö�÷�B�������	�Í�Î���­®�y����z�5��’�	���
                                      n:-Æ�»Y¸·µ¶¶a¶:*»·Y*¶‚»Y¸·²�8¶¶·‡R·²:*··À*·Ä*·Ƕ ²¹¶Ò-Ç�*ç·¦§�2*é¤�»ÕYd·¼§�¢�»ÕY`·¼§�·Á-Ç�·:§�»Y¿·-¶Ù¶:²Á¶-Ç�*¶ž¹¡�¹Ä�¤�¬²Ŷ�×*¶ž¹¡�¹Ë�:6	§�„¹w�À§:
                                      ²ȶ�ø-Æ�#»Y×·	¶a²�8¶¶¶§�»YË·
                                      ¶Ù¶¶
                                    ! ¶Ͷ�ý¶²ȶ�²ζ�ø ¶�ý²ζ�„	¹~�šÿx²Ŷz-Æ�*-·ѧ�N*¶ž:¹¡�¹Ë�:§�-¹w�À§N-¹�À©:-¶Ͷú*-·Ñ¹~�šÿÏ*ç·¶¶¶±����A���â�8��ü�ý�	þ�$��-�E�H��M�V�Z�^�a�i�m�x�~�‘
                                    �¤�§�«�³�Æ�Ð�æ�î�þ !"#<&S(])b*j+r,z-‚.…2—5›6§9­:»<¾=É>Ö?ß@è<òDúEÿFG	H�B���Ž���
                                      ������
                                      �èv���
                                      Õv���
                                      ֳ���
                                      ´�
                                      ��×���M½}~��°�E���Æ�ÑE���þ�‘„…��Ž°v�	�u²³�
                                    ! ­�E¯��»�7Ø…��ÓÔ��5���¾�����B-¹Ù�:+²Ú,¶Ͷ+²ݶ�ק�¹w�ÀÙ:*+·à¹~�šÿæ+²ݶz±����A���&�	��L�N�O�P�Q�)R�0P�:T�AU�B���>����B�Í�Î�����B}~����BÖ³����B´�
                                    ! ���:„…��)���âã��5��å����,¹ä�š+²C¶�×+²å½�àYISYKS½�àYMSYOS¶Q+²T-¶W,¹Ù�:§�«¹w�ÀÙ:+¶‰+²è¶ŒÁë™�*+Àë·a§�QÀõ:+*+·÷¶+¹�¹�¶�ý+R¶�ý+¹í�¶�ýÁû™�+Àû¹î�¶�ý+¶+²ñ¶�×*+í¹ô�2¹õ�·l+²ñ¶z+¶‘+¶¹~�šÿQ+¶+²C¶z+p¶�ý±����A���v���Y�	Z�[�7\�?^�G_�J`�Va�Zc�ad�ie�vh�}i�ˆj�˜k�Ÿl�ªm�²n�Àp�Är�Ës�ãt�êv�îx�ò_�üz�{|~�B���H����Í�Î����}~���ö�
                                      ���t���G�Ç„…��V�œ÷��}�G��ø�4�y����z�5��m��
                                      ��á*»·Y*¶‚»Yù·²�8¶¶·‡R·²L+*û·À*·Ä*·Ƕ +²ý¶Ò*+ë·¦+²�û¶*¶ǹË�M§i,¹w�À N»�DY·�F:-¹­�:6§�+2:¹�š�
                                    ¹�™�
                                    ¹	�W„¾¡ÿÓ¹ä�š+²
                                    ! »YÚ·-¹Ÿ�¶¶¶¹Ù�:§�Û¹w�À=:+¹k�¶ú+²
                                    ¶�×+¶�ý*+·+¶�ý*+¹(�·a+¶�ý+²
                                    ¶z*¶:Æ�[¹�™�Q¹$�™�G¹%�¹)�,¶�ß™�2¹.�:		Æ�$+²1¶�×+²47¶9+²<	¶9+²1¶z*+¹?�B·D*+¹H�K·D¹~�šÿ!,¹~�šþ”*+ë·+¶+¶+¶±����A���ú�>��„�	…�†�"„�&‡�.ˆ�2‰�6‡�9Š�@‹�G�Q�[‘�^“�h•�q–�y—�˜�†™�šš�¤—�¯ž�¹Ÿ�Ö¡�ߢ�â£�î¥�ù§�¨©ª«"¬)­0¯;°@±J²T³iµr¶w·~¸ˆ¹‘º˜½š¾¡¿¤À¦½©Á«Â²ÃµÄ·Áº¢Ä‘ÍÉÔËØÌÜÍàÎ�B���z���á�Í�Î���&»}~��[†„…��h\ ��qSM�
                                      ��yKÎs��|�3uv��†�w��ß�åN…��î�Ìw�;�OP�r�&Q��	�R�4�y����z�5��”����Ø*»·Y*¶‚»Yí·²�8¶¶·‡R·²L+*S·À*·Ä*·Ƕ +²ý¶Ò*+í·¦+²US¶»�DY·�FM»�DY·�FN»�DY·�F:»�DY·�F:»�DY·�F:»�DY·�F:»�DY·�F:*¶•¹Ì�:	6
                                      §0	
                                      2:í¹'�:Æ�V¾ž�P¹^�™�,¹	�W§�:¹ƒ�™�-¹	�W§�$¹„�™�¹	�W§�
                                    ¹	�W¹ü�:6
                                    §�,
                                    2í¹X�:Æ�¾ž�
                                    2¹	�W„
                                    
                                    ¾¡ÿÒ¹ô�:
                                    6§�,
                                    2í¹[�:Æ�¾ž�
                                    2¹	�W„
                                    ¾¡ÿÒ¹ì�:6§�,2í¹^�:Æ�¾ž�2¹	�W„¾¡ÿÒ„
                                      
                                    ! 	¾¡þÎ,¹ä�™�>¹ä�™�4-¹ä�™�+¹ä�™�!¹ä�™�¹ä�™�
                                    ¹ä�š›+²_¶�×+²be¶+²g¶�×,¹ä�š�+²j¶�×+mo¶Ï+²j¶z¹ä�š�+²j¶�×+qs¶Ï+²j¶z-¹ä�š�+²j¶�×+uw¶Ï+²j¶z¹ä�š�+²j¶�×+y{¶Ï+²j¶z¹ä�š�+²j¶�×+}¶Ï+²j¶z¹ä�š�+²j¶�×+ƒ¶Ï+²j¶z¹ä�š�+²j¶�×+…‡¶Ï+²j¶z+²g¶z+²_¶z+²‰¶�×+Œ¶ú*+,o·+1¶ú*+s·+¶ú*+-w·+¶ú*+{·+‘¶ú*+·+’¶ú*+ƒ·+“¶ú*+‡·+²‰¶z§�+²”¶�×+—¶�ý+²”¶z*+í·+¶+¶+¶±����A��Æ�q��Ô�	Õ�Ö�!Ô�%×�-Ø�1Ù�5×�8Ú�?Û�FÝ�Pß�Xà�`á�iâ�rã�{ä�„å�ç�˜è�žé�¥ë�°ì�»í�Åî�Ñð�Ûñ�çó�ñô�þ÷ûüý%þ0ÿ=üHQWep}ˆ	‘
                                    ! —¥°
                                    ½
                                    ! ÈèÓÜæïù
                                    (/8?I P"Z#a$k%r'{(‚)Œ*“,-¤.®/µ1¿2Æ3Ð4×6á7è8ò9ù;<
                                    ! =>@"A)B0D7E@GGHQJXKaMhNrPyQƒSŠT”V›W¥Y¯\¶]½^ÄbËcÏdÓe×f�B���Þ���Ø�Í�Î���%³}~��X€™�
                                      ��`xš�
                                      ��io›�
                                      ��rfœ�
                                    *************** SourceFile�HtmlDoclet.java�InnerClas
                                    *** 563,577 ****
                                      ��„Tž�
                                      ��KŸ�
                                      ��˜@rs�	�›8uv�
                                    ! �¥#w��°�X @��·þ¡��4¢v�
                                    %� @�Q�wö£�
                                    T�4¢v�e� @�‘�7î¤�”�4¢v�¥� @��¥�4�y����z�5��¾�����æ*»·Y*¶‚»Yï·²�8¶¶·‡R·²L+*v·À*·Ä*·Ƕ +²¦¶Ò*+ï·¦+²©v¶+²¬¶�×+¯¶�ý+±¶�ý+³¶�ý+*¶µ¶�ý+¸¶�ý+ºK©¶«+¼¶�ý+¶+¾¶�ý²À¸ÆM̸βÀ¸ÔN,-¶Ú+,»ÞY·à¶á¶�ý+R¶�ý+²¬¶z*+ï·+¶+¶+¶±����A���–�%��Z�	[�\�!Z�%]�-^�1_�5]�8`�?b�Fd�Pf�Wg�^h�ei�lj�tk�{l�ˆm�n�“o�šp�›q�œr�Ÿp�£s�©t�¬s�°u�µv�Äw�Ëx�Òz�Ù|�Ý}�á~�å�B���*����æ�Í�Î���%�Á}~��£�Cãå��°�6æç��èé�y����z�5��Y�����¿*»·Y+»Y,¹<�¸·d¶²�8¶¶·‡*+*¶‚·ê·²:*»Yí·,¹k�¶¶·À*·Ä*·Ƕ ²ï¶Ò*G,·Á²ò»Yí·,¹k�¶¶¶²õ¶�×-¶�ý²õ¶z*G,·#¶¶¶±����A���N���„�…�(†�1„�6‡�Rˆ�V‰�Z‡�]‹�e�q��—‘�’�¥”�¯–�´—�¹™�¾š�B���4����¿�Í�Î�����¿
                                    ����¿w����¿ø���6�‰}~��ù�4�y����z�5��+�����—*»·Y*¶‚»Yú·²�8¶¶·‡R·²L+*ü·À*·Ä*·Ƕ +²þ¶Ò*+ú·¦*´�—¶Æ�»Y*´�—¶·M§�*¶
                                    ! ¶M+»Y,·¶,¶*+ú·+¶+¶+¶±����A���R���Ÿ�	 �¡�"Ÿ�&¢�.£�2¤�6¢�9¥�@§�Hª�R«�d®�o°�~±�‚³�Šµ�Ž¶�’·�–¸�B���*����—�Í�Î���&�q}~��a� !��o�( !��"�4�y����z�5��š����\*»·Y*¶‚»YA·²�8¶¶·‡R·²L+*·#*·Ä*·Ƕ +²#¶Ò*+Ý·¦*´�Œ¶”Æ�*´�Œ¶”M§�*´�¶”Æ�*´�¶”M§�M,Æ�+²&,¶+²)¶�×*+*¶•*¶•¹,�·l+²)¶z*¶-N-¹ä�™�*+*¶Ç1·3§�i»¶Y·¸:*¶ǹ6�W-¹Ù�:§�+¹w�À::*+¶<¶@·3¶<¹A�W¹~�šÿѹD�š�
                                    *+E·3+ø¶ú+²G¶�×*+*¶•*¶•¹J�·l+²G¶z*+Ý·+¶+¶+¶±����A���Ê�2��½�	¾�¿�"½�&À�+Á�/Â�3À�6Ã�=Å�DÈ�NÉ�YË�cÌ�nÏ�pÒ�tÓ�|Ö�ƒ×�–Ø�Ú�¢Ü�«Þ�±ß�´Þ�ºâ�Ãã�Ïå�×æ�Úç�æè�èé�íê�òè�õëæîïðñï õ'ö.÷AøHúOûSüWý[þ�B���\�	��\�Í�Î���&6}~��V�K���k�K���p�ìK���¢�ºL�
                                    ! ��Ã�]M��×�I„…��æ�NO��5p��5��j�����Â+²C¶�×+²P½�àYISYKS½�àYMSYOS¶Q+²T-¶W,¹w�:§�n¹w�À :+¶‰+²S¶Œ+»Y*·,¸·0¶²�8¶¶¶+¹Ÿ�¶�ý+¶+¶‘+²V¶Œ*+¹á�·l+¶‘+¶¹~�šÿŽ+¶+²C¶z±����A���R�����.�6�>�A�M	�Q�X�{
                                    �†�Š�Ž�•�¤�¨�¬�¶�º�Á�B���>����Â�Í�Î�����Â}~����Âbz����Ât���>�„„…��M�_ ��YZ�y����z�5��»����[*»·Y+»Y-¹<�¸·E¶²�8¶¶·‡,·²:*-¹<�·À*·Ä*·Ƕ ²[¶Ò*A-·Á²^»Ya·*-·c¶ ¶-¹�¶¶¶*-¶f:Æ„¹j�šz¹¡�¹Ë�:§\¹w�À :²k»Yn·¹Ÿ�¶¶¶¹�À:¹¡�¹Ë�:	§	¹w�Àp:
                                      ²r½�àYISYKS½�àYMSYOS¶Q²u*»Yx·
                                      ¶z¶¶-¹�¶}¶W
                                    ! ¹�À¼:¹Ë�:§„¹w�ÀÙ:
                                    ¶‰
                                    Á=™�i²€¶Œ8¶�ý¶‘²ƒ¶Œ²†¶�×*
                                    À=·a²†¶z²‰¶�×*
                                    À=
                                    À=¹h�·l²‰¶z¶‘§�
                                    Á ™�¨
                                    À W²€¶Œ*
                                    À ¹%�·a¶‘²ƒ¶Œ²†¶�×*
                                    À ¹Œ�·aR¶�ý*
                                    À ·÷¶
                                    À ¹�¶�ý¶²†¶z²‰¶�×*
                                    À 
                                    À ¹Ž�·l²‰¶z¶‘§S
                                    Á\™�³
                                    À\W²€¶Œ*
                                    À\¹�·a¶‘²ƒ¶Œ²†¶�×*
                                    À\¹’�·aR¶�ý*
                                    À\·÷¶
                                    À\¹“�¶�ý¶*
                                    Àû·”²†¶z²‰¶�×*
                                    À\
                                    À\¹˜�·l²‰¶z¶‘§�›
                                    ÁY™�“
                                    ÀYW²ƒ¶Œ²†¶�×*
                                    ÀY¹™�·aR¶�ý*
                                    ÀY·÷¶
                                    ÀY¹š�¶�ý¶*
                                    Àû·”²†¶z²‰¶�×*
                                    ÀY
                                    ÀY¹›�·l²‰¶z¶‘¶¹~�šýx¶	¹~�šüô¹~�šü §�2²œ»Y*-·c¸· ¶-¹�¶Ÿ¶¶¶*A-·#¶¶¶±����A��º�n����(�)�. �E!�M"�Y$�^%�p&�%�‚$�…(�Œ)�›+�©,�¬-�¸/�×1�å2�ó3�ö46*7E8K7Q:_;h<k=w?|A„BŒC”D™F¡G©H´I¼JÄKÚLâMêOòPøR�STVW%X5Y=ZM[\\a]i^q_‡`a—cŸd¥f­g½hÂjÊkÒlâmênúo	pqr!s)t?uGvOxWy]{e|m}}~…•€¤©‚´ƒ¼„ąׅ̆ڇâˆç‹ì<öû3,’“&”;“>’A–K—P˜U™Zš�B���Ž���[�Í�Î����[
                                    ���[����[w��.-}~��ŒÏ¡���©i¢…��¸M ��å £���ó¤…�	ù¥¦�
                                    ! _œ§�h“¨…�wu©�
                                    �ª«��5��h�	����Ú,¹¬�™�Ó,¹±�À=:+C½�àY8S½�àY»Y´·¶a¶S¶¶+¸¶K,¹¬�™�*+·§�$+»Y¹�¸·*·á¶¶¶�ý+¸¶i+C¶i+C¶K,¹¬�™�>+q½�àY8S½�àY»Y´·`¶a¶S¶¶*+,`·º+q¶i+C¶i±����A���B���ž�	Ÿ� �=¡�D¢�M£�X¦�y¨�€©�‡«�Ž­�—®�¯�Ë°�Ò³�Ùµ�B���4����Ú�Í�Î�����Ú}~����Ú„¼����Úpv���Ž��
                                    ! ¾¿��5��������,+¹:�M>§�*,2¦�¬*,2¸À™�¬„,¾¡ÿå¬����A���"���¹�º�»�¼�¾�¿�!º�*Â�B���*����,w�����,Â���%äs��	�!uv��ÃÄ��5���ÿ�����e,¹q�š�^+¶�×+²Å-¶+²ȶ�×,¹w�:§�'¹w�Àë:*+·a¹~�™�
                                    ! +e¶�ý¹~�šÿÕ+²ȶz+¶z±����A���:���Ê�	Ë�Ì�Í�Î�&Ï�)Ð�5Ñ�<Ò�FÓ�MÏ�WÖ�^×�dÙ�B���H����e�Í�Î�����e}~����eËz����et�����eÌ�Ö��&�>„…��5�'Í��ÎÏ�y����z�5��+����	*»·Y+»Y-¹<�¸·²�8¶¶·‡,·²:»¶Y·¸:»Y-¹�¸·ж¶¹»�W-¹ì�:6	§�	2:
                                      
                                      ¹�¹»�W„		¾¡ÿâ-¹ô�:	6
                                      §�/	
                                    --- 567,581 ----
                                      ��„Tž�
                                      ��KŸ�
                                      ��˜@rs�	�›8uv�
                                    ! �¥#w��°�X @��·þ¡��4¢v�
                                    %� @�Q�wö£�
                                    T�4¢v�e� @�‘�7î¤�”�4¢v�¥� @��¥�4�y����z�5��¾�����æ*»·Y*¶‚»Yï·²�8¶¶·‡R·²L+*v·À*·Ä*·Ƕ +²¦¶Ò*+ï·¦+²©v¶+²¬¶�×+¯¶�ý+±¶�ý+³¶�ý+*¶µ¶�ý+¸¶�ý+ºK©¶«+¼¶�ý+¶+¾¶�ý²À¸ÆM̸βÀ¸ÔN,-¶Ú+,»ÞY·à¶á¶�ý+R¶�ý+²¬¶z*+ï·+¶+¶+¶±����A���–�%��k�	l�m�!k�%n�-o�1p�5n�8q�?s�Fu�Pw�Wx�^y�ez�l{�t|�{}�ˆ~��“€�š�›‚�œƒ�Ÿ�£„�©…�¬„�°†�µ‡�Ĉ�ˉ�Ò‹�Ù�ÝŽ�á�å�B���*����æ�Í�Î���%�Á}~��£�Cãå��°�6æç��èé�y����z�5��Y�����¿*»·Y+»Y,¹<�¸·d¶²�8¶¶·‡*+*¶‚·ê·²:*»Yí·,¹k�¶¶·À*·Ä*·Ƕ ²ï¶Ò*G,·Á²ò»Yí·,¹k�¶¶¶²õ¶�×-¶�ý²õ¶z*G,·#¶¶¶±����A���N���•�–�(—�1•�6˜�R™�Vš�Z˜�]œ�ež�q �¡�—¢�£�¥¥�¯§�´¨�¹ª�¾«�B���4����¿�Í�Î�����¿
                                    ����¿w����¿ø���6�‰}~��ù�4�y����z�5��+�����—*»·Y*¶‚»Yú·²�8¶¶·‡R·²L+*ü·À*·Ä*·Ƕ +²þ¶Ò*+ú·¦*´�—¶Æ�»Y*´�—¶·M§�*¶
                                    ! ¶M+»Y,·¶,¶*+ú·+¶+¶+¶±����A���R���°�	±�²�"°�&³�.´�2µ�6³�9¶�@¸�H»�R¼�d¿�oÁ�~Â�‚Ä�ŠÆ�ŽÇ�’È�–É�B���*����—�Í�Î���&�q}~��a� !��o�( !��"�4�y����z�5��š����\*»·Y*¶‚»YA·²�8¶¶·‡R·²L+*·#*·Ä*·Ƕ +²#¶Ò*+Ý·¦*´�Œ¶”Æ�*´�Œ¶”M§�*´�¶”Æ�*´�¶”M§�M,Æ�+²&,¶+²)¶�×*+*¶•*¶•¹,�·l+²)¶z*¶-N-¹ä�™�*+*¶Ç1·3§�i»¶Y·¸:*¶ǹ6�W-¹Ù�:§�+¹w�À::*+¶<¶@·3¶<¹A�W¹~�šÿѹD�š�
                                    *+E·3+ø¶ú+²G¶�×*+*¶•*¶•¹J�·l+²G¶z*+Ý·+¶+¶+¶±����A���Ê�2��Î�	Ï�Ð�"Î�&Ñ�+Ò�/Ó�3Ñ�6Ô�=Ö�DÙ�NÚ�YÜ�cÝ�nà�pã�tä�|ç�ƒè�–é�ë�¢í�«ï�±ð�´ï�ºó�Ãô�Ïö�×÷�Úø�æù�èú�íû�òù�õü÷ÿ�� '.A	HOS
                                    W[�B���\�	��\�Í�Î���&6}~��V�K���k�K���p�ìK���¢�ºL�
                                    ! ��Ã�]M��×�I„…��æ�NO��5p��5��j�����Â+²C¶�×+²P½�àYISYKS½�àYMSYOS¶Q+²T-¶W,¹w�:§�n¹w�À :+¶‰+²S¶Œ+»Y*·,¸·0¶²�8¶¶¶+¹Ÿ�¶�ý+¶+¶‘+²V¶Œ*+¹á�·l+¶‘+¶¹~�šÿŽ+¶+²C¶z±����A���R�����.�6�>�A�M�Q�X�{�†�Š �Ž"�•#�¤$�¨%�¬�¶'�º(�Á)�B���>����Â�Í�Î�����Â}~����Âbz����Ât���>�„„…��M�_ ��YZ�y����z�5��»����[*»·Y+»Y-¹<�¸·E¶²�8¶¶·‡,·²:*-¹<�·À*·Ä*·Ƕ ²[¶Ò*A-·Á²^»Ya·*-·c¶ ¶-¹�¶¶¶*-¶f:Æ„¹j�šz¹¡�¹Ë�:§\¹w�À :²k»Yn·¹Ÿ�¶¶¶¹�À:¹¡�¹Ë�:	§	¹w�Àp:
                                      ²r½�àYISYKS½�àYMSYOS¶Q²u*»Yx·
                                      ¶z¶¶-¹�¶}¶W
                                    ! ¹�À¼:¹Ë�:§„¹w�ÀÙ:
                                    ¶‰
                                    Á=™�i²€¶Œ8¶�ý¶‘²ƒ¶Œ²†¶�×*
                                    À=·a²†¶z²‰¶�×*
                                    À=
                                    À=¹h�·l²‰¶z¶‘§�
                                    Á ™�¨
                                    À W²€¶Œ*
                                    À ¹%�·a¶‘²ƒ¶Œ²†¶�×*
                                    À ¹Œ�·aR¶�ý*
                                    À ·÷¶
                                    À ¹�¶�ý¶²†¶z²‰¶�×*
                                    À 
                                    À ¹Ž�·l²‰¶z¶‘§S
                                    Á\™�³
                                    À\W²€¶Œ*
                                    À\¹�·a¶‘²ƒ¶Œ²†¶�×*
                                    À\¹’�·aR¶�ý*
                                    À\·÷¶
                                    À\¹“�¶�ý¶*
                                    Àû·”²†¶z²‰¶�×*
                                    À\
                                    À\¹˜�·l²‰¶z¶‘§�›
                                    ÁY™�“
                                    ÀYW²ƒ¶Œ²†¶�×*
                                    ÀY¹™�·aR¶�ý*
                                    ÀY·÷¶
                                    ÀY¹š�¶�ý¶*
                                    Àû·”²†¶z²‰¶�×*
                                    ÀY
                                    ÀY¹›�·l²‰¶z¶‘¶¹~�šýx¶	¹~�šüô¹~�šü §�2²œ»Y*-·c¸· ¶-¹�¶Ÿ¶¶¶*A-·#¶¶¶±����A��º�n��.�/�(0�).�.1�E2�M3�Y5�^6�p7�6�‚5�…9�Œ:�›<�©=�¬>�¸@�×B�åC�óD�öEG*HEIKHQK_LhMkNwP|R„SŒT”U™W¡X©Y´Z¼[Ä\Ú]â^ê`òaøc�degh%i5j=kMl\manioqp‡qr—tŸu¥w­x½yÂ{Ê|Ò}â~êú€	‚ƒ!„)…?†G‡O‰WŠ]ŒemŽ}…•‘¤’©“´”¼•Ä–Ì—×–Ú˜â™çœìMöžûD=£¤&¥;¤>£A§K¨P©UªZ«�B���Ž���[�Í�Î����[
                                    ���[����[w��.-}~��ŒÏ¡���©i¢…��¸M ��å £���ó¤…�	ù¥¦�
                                    ! _œ§�h“¨…�wu©�
                                    �ª«��5��h�	����Ú,¹¬�™�Ó,¹±�À=:+C½�àY8S½�àY»Y´·¶a¶S¶¶+¸¶K,¹¬�™�*+·§�$+»Y¹�¸·*·á¶¶¶�ý+¸¶i+C¶i+C¶K,¹¬�™�>+q½�àY8S½�àY»Y´·`¶a¶S¶¶*+,`·º+q¶i+C¶i±����A���B���¯�	°�±�=²�D³�M´�X·�y¹�€º�‡¼�Ž¾�—¿�ÂÀ�ËÁ�ÒÄ�ÙÆ�B���4����Ú�Í�Î�����Ú}~����Ú„¼����Úpv���Ž��
                                    ! ¾¿��5��������,+¹:�M>§�*,2¦�¬*,2¸À™�¬„,¾¡ÿå¬����A���"���Ê�Ë�Ì�Í�Ï�Ð�!Ë�*Ó�B���*����,w�����,Â���%äs��	�!uv��ÃÄ��5���ÿ�����e,¹q�š�^+¶�×+²Å-¶+²ȶ�×,¹w�:§�'¹w�Àë:*+·a¹~�™�
                                    ! +e¶�ý¹~�šÿÕ+²ȶz+¶z±����A���:���Û�	Ü�Ý�Þ�ß�&à�)á�5â�<ã�Fä�Mà�Wç�^è�dê�B���H����e�Í�Î�����e}~����eËz����et�����eÌ�Ö��&�>„…��5�'Í��ÎÏ�y����z�5��+����	*»·Y+»Y-¹<�¸·²�8¶¶·‡,·²:»¶Y·¸:»Y-¹�¸·ж¶¹»�W-¹ì�:6	§�	2:
                                      
                                      ¹�¹»�W„		¾¡ÿâ-¹ô�:	6
                                      §�/	
                                    *************** SourceFile�HtmlDoclet.java�InnerClas
                                    *** 592,608 ****
                                      
                                      ¾ž�X²;¶�×-¹^�š�>¶�ý§�9¶�ý6§�ž�e¶�ý*
                                      2·a„
                                    ! ¾¡ÿà²;¶z²#¶z¶0*´�m¶5š�8²@¶�×*--¹C�·l²@¶z*-¹D�»FY-·H·K*-¶:66
                                    6-¹^�š�U-¹(�:§�6¹ì�¾ž�6¹ô�¾ž�6
                                    ¹ä�¾ž�6¹(�:Æ�™ÿÆ
                                    ™ÿÁ™ÿ¼**-¶OSU·W-¹(�:§�**¶OZ·\¹(�:Çÿä**-¶`df·W-¹(�:§�**¶`h·\¹(�:Çÿä¹Ë�:§�@¹w�À=:j¹�¶�ßš�$l¹�¶�ßš�**¶`n·\¹~�šÿ¼**-¶ptv·W**-¶x|
                                    ~·W-¹^�™�K*¶à-¹�Àã:´å¹Ë�:§� ¹w�À=:**¶x€·\¹~�šÿܧ�--¹(�:§�**¶x‚·\¹(�:Çÿä**-¶`„†·D**-¶pˆŠ·D**-¶xŒŽ·D*8-·#¶¶¶±����A��–�å��ß�à�"á�#ß�(â�1ä�Rå�Zæ�`ç�gè�væ�ë�‰ì�í�–î�¸ì�Ãñ�Êó�Úô�àó�ãõ�ëö�ùøùúùûü(ý7þ<ü?ûBÿJMVceh	m
                                    ! psv
                                    y~„
                                    ‡Š’•˜¥²ÄÉÌÛä ê!ò �#$$%5&='E)N*V+a,i-u.}/…2Œ45‘6”7—4š9¡:«;³<¾=Æ>Ï?Ò@âAìBô?þFGHMN Q(R0SNTVSYUaVtWªXÇYÏ\ì^ô_üabcde*f2j:k@lHmQn\qdsjtouww‚sy•{}¢¬€´Â‚Ê„áˆèŠë‹îŒñŽú”•—˜!š,›/8=‘B’G“IL¢T£Y¤\¢_§g¨j©sªv«x©{¬„¨‰°‘±–²™°œµ¤¶§·°¸³¹µ·¸ºÁ¶Æ¿ÏÀÒÂÜÁÞÃîÄþÅÆ
                                    ! ÇÅÀÌ!Í%Î(Ì+Ï3Ð8Ñ;Ï>ÓGÕTÔVÖb×eØqÙzÚ}ÛÙ‚×ß—àšá£â¦ã¨á«ä´à¹èÁéÈèËêÓëÚêÝìåíììïïùñþòóô�B��t�%��	�Í�Î����	
                                    ���	����	w���	���	‘��(á}~��1Ø��Z�i’¤��]�$uv�	�g�“P�
                                      �‰�:”£�	�Œ�7uv�
                                      �–�"•–��Ê?—��M¼˜��	e�d™š�
                                      ä2›œ�
                                      ç�½�Œ�Š�¡�už�
                                      �Ï�G„…�
                                    :Ïäs�
                                      g�&uv�è!�ëŸ��î ��
                                    ñ¡���J7�g�"7�¤�"7�Ï�J„…�Þ�1¢�V�9™š�b�-„…�q�7�—�"7��^_��5��’��	��~,¾ž{+²C¶�×+²£½�àYISYKS½�àYMSYOS¶Q¹[�™�2»Y¹O�¹Ÿ�¸·R¶*+·¦¶¶:§�
                                    *+·¦:+²ª»­Y-·¯½\YS¶°¶W+¶‰+²²¶Œ6§�Ä,2:ž�
                                    ! +e¶�ý:¹µ�™�)»Y¹í�¸·À\¹¶�¶¶:§�R¹·�™�"»Yç·À=¹�¶¶:§�)¹¸�™�»Yó·À=¹�¶¶:+*+·÷¶»+²½¶�ø+¹í�¶�ý+²½¶�+¶„,¾¡ÿ;+¶‘+¶+¶+²C¶z±����A���–�%��û�ý�þ�3	��=	�S	�d	�l	�v	�z	�ˆ		�‹	�Ž	�‘	�•	
                                    �œ	�¢	�¨	�­	�´	�·	�Á	�ç	�ñ			6	C	J	U	 \	!`	j	#n	$r	%v	&}	(�B���f�
                                    ! ��~�Í�Î����~}~���~ÀÁ���~Â����~*��i�Ã���vÃ���Ÿ�Ëuv��¨�¸��·�©E���ÄÅ��5��%�����},¹:�:6§�i2¹ô�:6§�A2¹“�-¹“�¶�ß™�(2¹Æ�-¹Æ�¶�ß™�+2¹»�W§�„¾¡ÿ½*+2-·Ç„¾¡ÿ•±����A���>���	.�	/�	0�	1� 	2�6	3�L	4�X	5�[	1�f	8�h	9�m	:�n	8�q	/�|	<�B���R����}�Í�Î�����}É����}w����}•–���uäs���quv���Wö£���I¢v��FG��5��…����m,¾žjÆ�	+¶ú™�²Ê:²Í:§�
                                    ²Ð:²Ó:+-¶+¶�×6§#ž�+¶0,2:	+*	·Ö¶ú+²Ù¶�×+²Ü	¹í�¶»ßY·á:
                                      6™�
                                    	¹â�š�*	·):
                                      ¶ãW¶¢`6	¹µ�š�
                                    	¹â�™�	¹µ�™�	À\¹�:§�	À ¹%�:
                                       ¶ãW„
                                    --- 596,613 ----
                                      
                                      ¾ž�X²;¶�×-¹^�š�>¶�ý§�9¶�ý6§�ž�e¶�ý*
                                      2·a„
                                    ! ¾¡ÿà²;¶z²#¶z¶0*´�m¶5š�8²@¶�×*--¹C�·l²@¶z*-¹D�»FY-·H·K*-¶:66
                                    6-¹^�š�U-¹(�:§�6¹ì�¾ž�6¹ô�¾ž�6
                                    ¹ä�¾ž�6¹(�:Æ�™ÿÆ
                                    ™ÿÁ™ÿ¼**-¶OSU·W-¹(�:§�**¶OZ·\¹(�:Çÿä**-¶`df·W-¹(�:§�**¶`h·\¹(�:Çÿä¹Ë�:§�@¹w�À=:j¹�¶�ßš�$l¹�¶�ßš�**¶`n·\¹~�šÿ¼**-¶ptv·W**-¶x|
                                    ~·W-¹^�™�K*¶à-¹�Àã:´å¹Ë�:§� ¹w�À=:**¶x€·\¹~�šÿܧ�--¹(�:§�**¶x‚·\¹(�:Çÿä**-¶`„†·D**-¶pˆŠ·D**-¶xŒŽ·D*8-·#¶¶¶±����A��–�å��ð�ñ�"ò�#ð�(ó�1õ�Rö�Z÷�`ø�gù�v÷�ü�‰ý�þ�–ÿ�¸ý�Ã�Ê�Ú�à�ã�ë�ù	
                                    ! 
                                    ! 
                                    (7<
                                    ?BJMVcehmpsvy~ !„‡#Š$%’&•#˜(¥)²*Ä(É-Ì/Û0ä1ê2ò1�45$657=8E:N;V<a=i>u?}@…CŒEF‘G”H—EšJ¡K«L³M¾NÆOÏPÒQâRìSôPþWXY^_ b(c0dNeVdYfagthªiÇjÏmìoôpürstuv*w2{:|@}H~Q\‚d„j…o†wˆ‚„Š•ŒŽ¢¬‘´’“ʕá™è›ëœîñŸú ¡¥¦¨©!«,¬/®8¡=¢B£G¤I¡L³T´Yµ\³_¸g¹jºs»v¼xº{½„¹‰Á‘–ÙÁœÆ¤Ç§È°É³ÊµÈ¸ËÁÇÆÐÏÑÒÓÜÒÞÔîÕþÖ×
                                    ! ØÖÑÝ!Þ%ß(Ý+à3á8â;à>äGæTåVçbèeéqêzë}ìê‚èð—ñšò£ó¦ô¨ò«õ´ñ¹ùÁúÈùËûÓüÚûÝýåþìýï	�ù	þ			�B��t�%��	�Í�Î����	
                                    ���	����	w���	���	‘��(á}~��1Ø��Z�i’¤��]�$uv�	�g�“P�
                                      �‰�:”£�	�Œ�7uv�
                                      �–�"•–��Ê?—��M¼˜��	e�d™š�
                                      ä2›œ�
                                      ç�½�Œ�Š�¡�už�
                                      �Ï�G„…�
                                    :Ïäs�
                                      g�&uv�è!�ëŸ��î ��
                                    ñ¡���J7�g�"7�¤�"7�Ï�J„…�Þ�1¢�V�9™š�b�-„…�q�7�—�"7��^_��5��’��	��~,¾ž{+²C¶�×+²£½�àYISYKS½�àYMSYOS¶Q¹[�™�2»Y¹O�¹Ÿ�¸·R¶*+·¦¶¶:§�
                                    *+·¦:+²ª»­Y-·¯½\YS¶°¶W+¶‰+²²¶Œ6§�Ä,2:ž�
                                    ! +e¶�ý:¹µ�™�)»Y¹í�¸·À\¹¶�¶¶:§�R¹·�™�"»Yç·À=¹�¶¶:§�)¹¸�™�»Yó·À=¹�¶¶:+*+·÷¶»+²½¶�ø+¹í�¶�ý+²½¶�+¶„,¾¡ÿ;+¶‘+¶+¶+²C¶z±����A���–�%��	�	�	�3	�=	�S	�d	�l	�v	�z	�ˆ	�‹	�Ž	�‘	�•	�œ	�¢	 �¨	!�­	"�´	$�·	%�Á	&�ç	(�ñ	)	+	,6	.C	/J	0U	1\	2`	j	4n	5r	6v	7}	9�B���f�
                                    ! ��~�Í�Î����~}~���~ÀÁ���~Â����~*��i�Ã���vÃ���Ÿ�Ëuv��¨�¸��·�©E���ÄÅ��5��%�����},¹:�:6§�i2¹ô�:6§�A2¹“�-¹“�¶�ß™�(2¹Æ�-¹Æ�¶�ß™�+2¹»�W§�„¾¡ÿ½*+2-·Ç„¾¡ÿ•±����A���>���	?�	@�	A�	B� 	C�6	D�L	E�X	F�[	B�f	I�h	J�m	K�n	I�q	@�|	M�B���R����}�Í�Î�����}É����}w����}•–���uäs���quv���Wö£���I¢v��FG��5��…����m,¾žjÆ�	+¶ú™�²Ê:²Í:§�
                                    ²Ð:²Ó:+-¶+¶�×6§#ž�+¶0,2:	+*	·Ö¶ú+²Ù¶�×+²Ü	¹í�¶»ßY·á:
                                      6™�
                                    	¹â�š�*	·):
                                      ¶ãW¶¢`6	¹µ�š�
                                    	¹â�™�	¹µ�™�	À\¹�:§�	À ¹%�:
                                       ¶ãW„
                                    *************** SourceFile�HtmlDoclet.java�InnerClas
                                    *** 622,819 ****
                                      ¶ãW„¾¡ÿÐ+²
                                      ¶�×+
                                      ¶
                                    ¶�ý+²
                                    ! ¶z+²¶�×	í¹�:¾ž�&+²¶�×+²¶�ø+¶�ý+²¶�+²¶�ø6
                                    §�*+	
                                    2¹�·l„
                                    
                                    ¾¡ÿæ¾ž�+²¶�+²¶�×+²¶�×*+		¹!�·l+²¶z	¹ñ�š�
                                    	¹µ�™<	¹µ�™±»¶Y·¸:
                                    	¹�¹^�™�*
                                    	¹�	À\·ǧ�*	¹�:§�*
                                    	À\·Ç¹(�:Çÿè
                                    ¹D�š�}š�x+²"¶�×+²%(¶
                                    ¹Ë�:§�J¹w�À\:+²*¶�×+*+·÷¶+	¹í�¶�ý+¶+-¶�ý*+¹’�·a+²*¶z¹~�šÿ²+²"¶z::	¹�¹(�:§�e¹ô�:6§�E2¹“�	¹í�¶�ß™�+2¹Æ�	À\¹Æ�¶�ß™�:2:§�„¾¡ÿ¹¹(�:Æ�Æÿ—Æ�Q+²/¶�×+²25¶+²7¶�×+*+·÷¶+	¹í�¶�ý+¶+-¶�ý*+·a+²7¶z+²/¶z*´�m¶5šz	Àû:
                                    
                                    ¹:�¾ž�Ø+²>¶�×+²AD¶
                                    ¹÷�:6§�©2:
                                    ¹:�::6§�'2¹F�¹ý�¶�ß™�
                                    2:§�„¾¡ÿ×Æ�\+²K¶�×+²N¶�ø+¹ý�¶�ý+²N¶�+²Q¶�ø+ä¶�ý+²Q¶�+²T¶�ø*+
                                    ¹W�·l+²T¶�+²K¶z„¾¡ÿU+²>¶z
                                    ¹X�™�hY
                                    À\¹�¹)�¶�ßš�P
                                    [¹]�:¾ž�>2:+²^¶�×+²ad¶+²f¶�×*+
                                    ¹�·l+²f¶z+²^¶z*
                                    ¶i:6
                                    ¹m�:6§�B2:2¹q�Æ�+*2¹q�¶vš�¹q�¹z�™�	6§�„¾¡ÿ¼™�¾+²}¶�×+²€ƒ¶6§�˜2:¹q�Æ�„*¹q�¶vš�¹q�¹z�™�e+²…¶�×+²ˆ¶�ø*+2¹q�·a+²ˆ¶�Æ�5+²‹¶�ø+ä¶�ý+²‹¶�+²Ž¶�ø*+
                                    ¹‘�·l+²Ž¶�+²…¶z„¾¡ÿf+²}¶z*´�m¶5š�c	¹â�™�=	À :
                                    
                                    ¹’�Æ�,+²}¶�×+²€•¶+²…
                                    ¹.�¶—¶+²}¶z»FY	+·H:
                                    *+	¹˜�
                                    ·K+²¶z+²Ù¶z„,¾¡÷Ü+¶z±����A��Î�ó��	C�	E�
                                    ! 	F�	K�	L�	M�"	P�'	Q�,	S�3	T�9	V�?	W�D	X�H	[�N	]�X	_�_	`�m	b�v	c�y	e�ˆ	f�	g�˜	h�¢	k�¶	m�À	n�Ï	q�Û	t�ä	u�ç	v�õ	w	x%	{4	}C	€L	O	ƒc	„l	…o	†x	…‚	ˆ¹	‰Ï	ŒÜ	Žë	ÿ	’	“	”	•	–"	•,	˜8	™>	šE	›X	œa	n	žx	Ÿ	 ‰	™”	£	¤©	¥¯	¦¸	§¾	¨Å	©Ó	ªÝ	«æ	§ñ	±ø	²	³	µ	·	¸ 	¹'	º.	»5	¼<	½C	¿I	À[	¿f	Âl	Ãs	Äz	Ç	È	É—	Ë«	͵	ξ	ÏÍ	ÐÐ	Ñ×	ÒÜ	Ðâ	Õë	Öî	×ñ	Øó	Ùø	×û	Ö		Ý	Þ	ß	à)	á2	â5	ãA	äH	åK	æM	åS	ç^	èb	éi	êu	ë|	â†	í	ð	ñ“	ó¡	ô¤	÷­	ø³	ùÊ	úä	ûè	üï	ýò	øý	õ	ô
                                    ! 
                                    ! 
                                    ! &
                                    ! -
                                    ! 0
                                    ! 2
                                    ! 8
                                    ! 	C
                                      
                                    ! G
                                    ! N
                                    ! U
                                    ! \
                                    ! c
                                    ! m
                                    ! r
                                    ! t
                                    ! 
                                    ! †
                                    ! 
                                    ! ™
                                    ! Ÿ
                                    ! ¦
                                    ! ¯
                                    ! ²
                                    !  ¸
                                    ! !Ï
                                    ! "Ö
                                    ! #Ù
                                    !  ä
                                    ! 'é
                                    ! (ð
                                    ! )÷
                                    ! *
                                    ! +	
                                    ! ,
                                    ! -
                                    ! .
                                    ! /%
                                    ! 04
                                    ! 1;
                                    ! 2B
                                    ! M
                                    ! 5T
                                    ! 8^
                                    ! 9v
                                    ! ;‚
                                    ! <ˆ
                                    ! =Ž
                                    ! ?•
                                    ! @Ÿ
                                    ! A¦
                                    ! Cµ
                                    ! E¼
                                    ! FÃ
                                    ! JË
                                    ! KÎ
                                    ! L×
                                    ! MÝ
                                    ! Nä
                                    ! Oñ
                                    ! P
                                    ! Q
                                    ! R
                                    ! S
                                    ! M$
                                    ! W)
                                    ! X0
                                    ! Y:
                                    ! [@
                                    ! \G
                                    ! ]Q
                                    ! ^_
                                    ! _p
                                    ! `w
                                    ! a~
                                    ! b
                                    ! c”
                                    ! d™
                                    ! e 
                                    ! f§
                                    ! g®
                                    ! hµ
                                    ! iÄ
                                    ! jË
                                    ! lÒ
                                    ! [Ý
                                    ! oä
                                    ! tî
                                    ! vø
                                    ! wÿ
                                    ! x	
                                    ! y
                                    ! z
                                    ! {
                                    ! |(
                                    ! {+
                                    ! }2
                                    ! @
                                    ! ‚N
                                    ! …U
                                    ! †\	Vf
                                    ! ˆl
                                    ! Š�B��2�8��m�Í�Î����m}~���mÀÁ���mt����m™����mÑ����š�Ö��'Eš�Ö���›�Ö��,@›�Ö��<*uv��N�	�væœ�
                                      �yãžv���Ÿ���Ì�'Í��Û�h'Í�l�cO�¹� ��
                                    �Ý¡��¢v�
                                    8�¹—¢�
                                    ;�Y¢v�E�D£¤�©�Hðs�»�6¢v�Å�!u�B @�F� ¢v�
                                    ¾¥É�
                                    ë�½�2�[„…�A�;¥–��Ó¦�“�Ч¨�¡�o©�­�Pö£�°�M¢v�tpª«�
                                    ™�»—¢�œ�±¢v�¦�œ£¤�¯�“<¬�²�­®�µ�/¯v�‚�A°@�Ž�5±²�Ë�γ��×
                                    o´�Ú�J¯v�ä�5µ¶�=� ¯v�G�‹µ¶�ÿ�3“P�
                                    @�·¸�
                                    �–—��5���Î�����T,¹÷�N+ò¶�ý6§�4ž�
                                      +e¶�ý*+-2¹ú�·a+¹¶�ý+-2¹ý�¶�ý„-¾¡ÿË+g¶�ý±����A���.���
                                    ! �
                                    ! �
                                    ! ‘�
                                    ! ’�
                                    ! “� 
                                    ! •�.
                                    ! –�5
                                    ! —�B
                                    ! ‘�L
                                    ! ™�S
                                    ! š�B���4����T�Í�Î�����T}~����T«���M—¢���;¢v��YG��5��–��
                                      ��(,¾�™ +¶ú+²C¶�×+²£½�àYISYKS½�àYMSYOS¶Q+²T-¶W6§Ì,2:+¶‰¹ñ�š�–+²»¶Œ+²¾¶�×+»Y*·Á¸· ¶¶¶�ý¹µ�™�*+À\¹�·a§�D¹â�™�*+À ¹%�·a§�(¹·�™�
                                    +Ķ�ý§�¹¸�™�
                                      +ж�ý+²¾¶z+¶‘+²ƶŒ+²ɶ�×+²̶�×¹¸�š�
                                    ¹·�™�+*+À=·ɶ§�+»YË·*·Ö¶¶¶+¹í�¶�ý+¶¹ñ�š�
                                    ¹µ�™�
                                    *+Àû·”+²̶zí¹�:		¾ž�	2¹õ�:§�¹Ï�:Æ�^¾ž�X+²ж�×	¾ž�&+²Ó¶�×+²¶�ø+¶�ý+²¶�+²¶�ø*+·l	¾ž�+²¶�+²Ó¶�×+²жz+²ɶz+¶‘+¶„,¾¡þ3+¶+²C¶z±����A���æ�9��
                                    ! ¢�
                                      
                                    ! £�
                                    ! ¤�
                                    ! ¥�>
                                    ! ¦�F
                                    ! ¨�L
                                    ! ©�R
                                    ! ª�V
                                    ! ¬�`
                                    ! ­�g
                                    ! ®�n
                                    ! ¯�‹
                                    ! °�•
                                    ! ±�§
                                    ! ³�±
                                    ! ´�Ã
                                    ! ¶�Í
                                    ! ·�×
                                    ! ¹�á
                                    ! º�è
                                    ! ¼�ï
                                    ! ½�ó
                                    ! À�ú
                                    ! Á
                                    ! Â
                                    ! Ã
                                    ! Ä-
                                    ! ÇG
                                    ! ÉR
                                    ! ÊV
                                    ! Ëj
                                    ! Ìt
                                    ! Î{
                                    ! І
                                    ! ь
                                    ! Òš
                                    ! Õ£
                                    ! Ø®
                                    ! Ùµ
                                    ! Ú»
                                    ! ÛÂ
                                    ! ÜÉ
                                    ! ÝÐ
                                    ! Þ×
                                    ! ßÞ
                                    ! áè
                                    ! âî
                                    ! ãõ
                                    ! äü
                                    ! æ
                                    ! è
                                      
                                    ! é
                                    ! ê
                                    ! ¨
                                    ! ì 
                                    ! í'
                                    ! ï�B���p���(�Í�Î����(}~���(ÀÁ���(t����(Ö����(Ñ���IÓuv��RÀ�—�j@�£�oj@�†�Œ @�	�×Ø��5���¶�����6»FY+·H:™�+*-¹õ�¶Ù¶�ý§�+*-¹�¶Ù¶�ý±����A������
                                    ! ÷�
                                    ! ø�
                                    ! ù�%
                                    ! ü�5
                                    ! þ�B���R����6�Í�Î�����6}~����6ÝÞ����6ß²����6à�����6á�����6â��
                                    �)·¸��no��5���a�����*+,-·ã±����A���
                                    ! ����
                                    ! �B���4�����Í�Î�����}~����â����)@����à���nå��5���‚�����*´�m¶5š�+*-»FY,+·H¶Ù¶�ý±����A�������
                                    ! ��B���>�����Í�Î�����}~����â����)@����à�����á���ËÌ��5���‚�����4»Y+¶¸·&¶*,¹O�·,¶,¹<�¶²�8¶¶°����A���������!�0�B��� ����4�Í�Î�����4}~����4w��ùú��5�������~,¹�N-¹O�::-¹O�¹Ÿ�¶¢ž�*´�L¹Ÿ�¹�Àæ:»ßY·á:*+-·ɶãW#¶ôWÇ�*,·Ö¶ãW§�*,¶è·ë¶ãW¶
                                    °����A���2���$�%�&�'�#(�8*�A+�M,�U-�Z.�h1�x3�B���H����~�Í�Î�����~}~����~���ww���o ���lîï��A�=ð��cd��5���J�����*+,·±����A���
                                    ! ���8�9�B��� �����Í�Î�����}~����'Í��c��5���X�����+*+,·¦¶�ý±����A���
                                    ! ���=�>�B���*�����Í�Î�����}~����'Í����ñ���¨©��5��7��	��I,¹æ�::Æ�¹[�™�*+·É:§�f,¹ò�š�],¹é�¶¢,¹)�¶¢¤�H,¹é�:¶¢,¹)�¶¢dd¶õ:*´�L¹�Àæ:Æ�,¹)�¶ù:»ßY·á:Æ�˜Æ�“*·á:™�*+»Y*¶W¸·¶¶¶î¶ãW§�k»ßY·á:*·c¶ãWû¶ãW¹O�¹Ÿ�¶ãW+»Y¹<�¸·¶¶¶
                                    ¶ý¶ãW§�*,¶W¶ãW,¹ê�¶ãW¶
                                    °����A���f���B�C�D�E�&G�/H�DI�LJ�eM�sL�uN�zO�‰T�’V�œW�¤X�¨Y�Ï\�Ø]�ä^�í_�ÿ`,d7fCg�B���p���I�Í�Î����I}~���I'Í���Iñ���Aè��>	����L�=¯���u�îï��’�·ð��¤�ˆ—���Ø�QE��MN��5���\�����*,-»	Y*+·	·	±����A���
                                    ! ���l�s�B���*�����Í�Î�����}~����)@����·¸��./��5���Õ�����c+¹Ÿ�¶¢ž�V*´�L+¹Ÿ�¹�ÀæM,Æ�,+¹Ÿ�¶	
                                    ! N§�+¹Ÿ�./¶	
                                    N-&¶	š�»Y-¸·/¶-¶°-°K°����A���&�	��w�x�z�#{�1~�?€�I�]„�_ˆ�B���4����c�Í�Î�����c ���@îï��.�	����?� 	����ßà��5���Æ�����lM+¹O�¹Ÿ�¶¢ž�*´�L+¹O�¹Ÿ�¹�ÀæM,Æ�,+¹O�¹Ÿ�+¹<�¶ù°»Y*+¹O�·,¸·+¹<�¶²�8¶¶°����A���"���Ž���+’�/“�;”�A“�E—�B��� ����l�Í�Î�����lw���jîï��	�4�y����	z�5��¼����Î*´�q¶5™�
                                      *	¶	*´�¶”Æ�
                                      *	¶	*´�ö5š�
                                      *	¶	<*´�G¹Ù�M§�„,¹w�ÀæN*	!¶	#-*¶‚¶	&*¶	)š�3-¶è™�,š�(*	,¶	<§�W*»Y	.·-¶	0¶¶¶	-¶	3¹Ë�:§�¹w�À�à:*´�L-¹$�W¹~�šÿà,¹~�šÿy*	6¶	#*¶àW*¶	8W*	;¶	#*·	=*¶�ñš�$*·	?*·	A*·	C*´�Y¶5š�*	E¶	#*·	G*·	I*·	K*´�a¶5š�*	M¶	#*´�u¶5š�
                                    --- 627,833 ----
                                      ¶ãW„¾¡ÿÐ+²
                                      ¶�×+
                                      ¶
                                    ¶�ý+²
                                    ! ¶z+²¶�×	í¹�:¾ž�&+²¶�×+²¶�ø+¶�ý+²¶�+²¶�ø6
                                    §�*+	
                                    2¹�·l„
                                    
                                    ¾¡ÿæ¾ž�+²¶�+²¶�×+²¶�×*+		¹!�·l+²¶z	¹ñ�š�
                                    	¹µ�™<	¹µ�™±»¶Y·¸:
                                    	¹�¹^�™�*
                                    	¹�	À\·ǧ�*	¹�:§�*
                                    	À\·Ç¹(�:Çÿè
                                    ¹D�š�}š�x+²"¶�×+²%(¶
                                    ¹Ë�:§�J¹w�À\:+²*¶�×+*+·÷¶+	¹í�¶�ý+¶+-¶�ý*+¹’�·a+²*¶z¹~�šÿ²+²"¶z::	¹�¹(�:§�e¹ô�:6§�E2¹“�	¹í�¶�ß™�+2¹Æ�	À\¹Æ�¶�ß™�:2:§�„¾¡ÿ¹¹(�:Æ�Æÿ—Æ�Q+²/¶�×+²25¶+²7¶�×+*+·÷¶+	¹í�¶�ý+¶+-¶�ý*+·a+²7¶z+²/¶z*´�m¶5šz	Àû:
                                    
                                    ¹:�¾ž�Ø+²>¶�×+²AD¶
                                    ¹÷�:6§�©2:
                                    ¹:�::6§�'2¹F�¹ý�¶�ß™�
                                    2:§�„¾¡ÿ×Æ�\+²K¶�×+²N¶�ø+¹ý�¶�ý+²N¶�+²Q¶�ø+ä¶�ý+²Q¶�+²T¶�ø*+
                                    ¹W�·l+²T¶�+²K¶z„¾¡ÿU+²>¶z
                                    ¹X�™�hY
                                    À\¹�¹)�¶�ßš�P
                                    [¹]�:¾ž�>2:+²^¶�×+²ad¶+²f¶�×*+
                                    ¹�·l+²f¶z+²^¶z*
                                    ¶i:6
                                    ¹m�:6§�B2:2¹q�Æ�+*2¹q�¶vš�¹q�¹z�™�	6§�„¾¡ÿ¼™�¾+²}¶�×+²€ƒ¶6§�˜2:¹q�Æ�„*¹q�¶vš�¹q�¹z�™�e+²…¶�×+²ˆ¶�ø*+2¹q�·a+²ˆ¶�Æ�5+²‹¶�ø+ä¶�ý+²‹¶�+²Ž¶�ø*+
                                    ¹‘�·l+²Ž¶�+²…¶z„¾¡ÿf+²}¶z*´�m¶5š�c	¹â�™�=	À :
                                    
                                    ¹’�Æ�,+²}¶�×+²€•¶+²…
                                    ¹.�¶—¶+²}¶z»FY	+·H:
                                    *+	¹˜�
                                    ·K+²¶z+²Ù¶z„,¾¡÷Ü+¶z±����A��Î�ó��	T�	V�
                                    ! 	W�	\�	]�	^�"	a�'	b�,	d�3	e�9	g�?	h�D	i�H	l�N	n�X	p�_	q�m	s�v	t�y	v�ˆ	w�	x�˜	y�¢	|�¶	~�À	�Ï	‚�Û	…�ä	†�ç	‡�õ	ˆ	‰%	Œ4	ŽC	‘L	’O	”c	•l	–o	—x	–‚	™¹	šÏ	Ü	Ÿë	¡ÿ	£	¤	¥	¦	§"	¦,	©8	ª>	«E	¬X	­a	®n	¯x	°	±‰	ª”	´	µ©	¶¯	·¸	¸¾	¹Å	ºÓ	»Ý	¼æ	¸ñ	Âø	Ã	Ä	Æ	È	É 	Ê'	Ë.	Ì5	Í<	ÎC	ÐI	Ñ[	Ðf	Ól	Ôs	Õz	Ø	Ù	Ú—	Ü«	Þµ	ß¾	àÍ	áÐ	â×	ãÜ	áâ	æë	çî	èñ	éó	êø	èû	ç		î	ï	ð	ñ)	ò2	ó5	ôA	õH	öK	÷M	öS	ø^	ùb	úi	ûu	ü|	ó†	þ
                                    ! 
                                    ! “
                                    ! ¡
                                    ! ¤
                                    ! ­
                                    ! 	³
                                      
                                    ! Ê
                                    ! ä
                                    ! è
                                    ! 
                                    ï
                                    ! ò
                                    ! 	ý
                                    ! 
                                    ! 
                                    ! 
                                    ! 
                                    ! &
                                    ! -
                                    ! 0
                                    ! 2
                                    ! 8
                                    ! C
                                    ! G
                                    ! N
                                    ! U
                                    ! \
                                    !  c
                                    ! $m
                                    ! 'r
                                    ! &t
                                    ! )
                                    ! *†
                                    ! +
                                    ! ,™
                                    ! -Ÿ
                                    ! .¦
                                    ! /¯
                                    ! 0²
                                    ! 1¸
                                    ! 2Ï
                                    ! 3Ö
                                    ! 4Ù
                                    ! 1ä
                                    ! 8é
                                    ! 9ð
                                    ! :÷
                                    ! ;
                                    ! <	
                                    ! =
                                    ! >
                                    ! ?
                                    ! @%
                                    ! A4
                                    ! B;
                                    ! CB
                                    ! -M
                                    ! FT
                                    ! I^
                                    ! Jv
                                    ! L‚
                                    ! Mˆ
                                    ! NŽ
                                    ! P•
                                    ! QŸ
                                    ! R¦
                                    ! Tµ
                                    ! V¼
                                    ! WÃ
                                    ! [Ë
                                    ! \Î
                                    ! ]×
                                    ! ^Ý
                                    ! _ä
                                    ! `ñ
                                    ! a
                                    ! b
                                    ! c
                                    ! d
                                    ! ^$
                                    ! h)
                                    ! i0
                                    ! j:
                                    ! l@
                                    ! mG
                                    ! nQ
                                    ! o_
                                    ! pp
                                    ! qw
                                    ! r~
                                    ! s
                                    ! t”
                                    ! u™
                                    ! v 
                                    ! w§
                                    ! x®
                                    ! yµ
                                    ! zÄ
                                    ! {Ë
                                    ! }Ò
                                    ! lÝ
                                    ! ۊ
                                    ! …î
                                    ! ‡ø
                                    ! ˆÿ
                                    ! ‰	
                                    ! Š
                                    ! ‹
                                    ! Œ
                                    ! (
                                    ! Œ+
                                    ! Ž2
                                    ! ’@
                                    ! “N
                                    ! –U
                                    ! —\	gf
                                    ! ™l
                                    ! ›�B��2�8��m�Í�Î����m}~���mÀÁ���mt����m™����mÑ����š�Ö��'Eš�Ö���›�Ö��,@›�Ö��<*uv��N�	�væœ�
                                      �yãžv���Ÿ���Ì�'Í��Û�h'Í�l�cO�¹� ��
                                    �Ý¡��¢v�
                                    8�¹—¢�
                                    ;�Y¢v�E�D£¤�©�Hðs�»�6¢v�Å�!u�B @�F� ¢v�
                                    ¾¥É�
                                    ë�½�2�[„…�A�;¥–��Ó¦�“�Ч¨�¡�o©�­�Pö£�°�M¢v�tpª«�
                                    ™�»—¢�œ�±¢v�¦�œ£¤�¯�“<¬�²�­®�µ�/¯v�‚�A°@�Ž�5±²�Ë�γ��×
                                    o´�Ú�J¯v�ä�5µ¶�=� ¯v�G�‹µ¶�ÿ�3“P�
                                    @�·¸�
                                    �–—��5���Î�����T,¹÷�N+ò¶�ý6§�4ž�
                                      +e¶�ý*+-2¹ú�·a+¹¶�ý+-2¹ý�¶�ý„-¾¡ÿË+g¶�ý±����A���.���
                                    !  �
                                    ! ¡�
                                    ! ¢�
                                    ! £�
                                    ! ¤� 
                                    ! ¦�.
                                    ! §�5
                                    ! ¨�B
                                    ! ¢�L
                                    ! ª�S
                                    ! «�B���4����T�Í�Î�����T}~����T«���M—¢���;¢v��YG��5��–��
                                      ��(,¾�™ +¶ú+²C¶�×+²£½�àYISYKS½�àYMSYOS¶Q+²T-¶W6§Ì,2:+¶‰¹ñ�š�–+²»¶Œ+²¾¶�×+»Y*·Á¸· ¶¶¶�ý¹µ�™�*+À\¹�·a§�D¹â�™�*+À ¹%�·a§�(¹·�™�
                                    +Ķ�ý§�¹¸�™�
                                      +ж�ý+²¾¶z+¶‘+²ƶŒ+²ɶ�×+²̶�×¹¸�š�
                                    ¹·�™�+*+À=·ɶ§�+»YË·*·Ö¶¶¶+¹í�¶�ý+¶¹ñ�š�
                                    ¹µ�™�
                                    *+Àû·”+²̶zí¹�:		¾ž�	2¹õ�:§�¹Ï�:Æ�^¾ž�X+²ж�×	¾ž�&+²Ó¶�×+²¶�ø+¶�ý+²¶�+²¶�ø*+·l	¾ž�+²¶�+²Ó¶�×+²жz+²ɶz+¶‘+¶„,¾¡þ3+¶+²C¶z±����A���æ�9��
                                    ! ³�
                                      
                                    ! ´�
                                    ! µ�
                                    ! ¶�>
                                    ! ·�F
                                    ! ¹�L
                                    ! º�R
                                    ! »�V
                                    ! ½�`
                                    ! ¾�g
                                    ! ¿�n
                                    ! À�‹
                                    ! Á�•
                                    ! Â�§
                                    ! Ä�±
                                    ! Å�Ã
                                    ! Ç�Í
                                    ! È�×
                                    ! Ê�á
                                    ! Ë�è
                                    ! Í�ï
                                    ! Î�ó
                                    ! Ñ�ú
                                    ! Ò
                                    ! Ó
                                    ! Ô
                                    ! Õ-
                                    ! ØG
                                    ! ÚR
                                    ! ÛV
                                    ! Üj
                                    ! Ýt
                                    ! ß{
                                    ! á†
                                    ! âŒ
                                    ! ãš
                                    ! æ£
                                    ! é®
                                    ! êµ
                                    ! ë»
                                    ! ìÂ
                                    ! íÉ
                                    ! îÐ
                                    ! ï×
                                    ! ðÞ
                                    ! òè
                                    ! óî
                                    ! ôõ
                                    ! õü
                                    ! ÷
                                    ! ù
                                      
                                    ! ú
                                    ! û
                                    ! ¹
                                    ! ý 
                                    ! þ'��B���p���(�Í�Î����(}~���(ÀÁ���(t����(Ö����(Ñ���IÓuv��RÀ�—�j@�£�oj@�†�Œ @�	�×Ø��5���¶�����6»FY+·H:™�+*-¹õ�¶Ù¶�ý§�+*-¹�¶Ù¶�ý±����A�������
                                    	�
                                    ! �%
                                    �5�B���R����6�Í�Î�����6}~����6ÝÞ����6ß²����6à�����6á�����6â��
                                    �)·¸��no��5���a�����*+,-·ã±����A���
                                    ! ����
                                    ! �B���4�����Í�Î�����}~����â����)@����à���nå��5���‚�����*´�m¶5š�+*-»FY,+·H¶Ù¶�ý±����A�������
                                    ! �)�B���>�����Í�Î�����}~����â����)@����à�����á���ËÌ��5���‚�����4»Y+¶¸·&¶*,¹O�·,¶,¹<�¶²�8¶¶°����A������-�.�/�!0�0-�B��� ����4�Í�Î�����4}~����4w��ùú��5�������~,¹�N-¹O�::-¹O�¹Ÿ�¶¢ž�*´�L¹Ÿ�¹�Àæ:»ßY·á:*+-·ɶãW#¶ôWÇ�*,·Ö¶ãW§�*,¶è·ë¶ãW¶
                                    °����A���2���5�6�7�8�#9�8;�A<�M=�U>�Z?�hB�xD�B���H����~�Í�Î�����~}~����~���ww���o ���lîï��A�=ð��cd��5���J�����*+,·±����A���
                                    ! ���I�J�B��� �����Í�Î�����}~����'Í��c��5���X�����+*+,·¦¶�ý±����A���
                                    ! ���N�O�B���*�����Í�Î�����}~����'Í����ñ���¨©��5��7��	��I,¹æ�::Æ�¹[�™�*+·É:§�f,¹ò�š�],¹é�¶¢,¹)�¶¢¤�H,¹é�:¶¢,¹)�¶¢dd¶õ:*´�L¹�Àæ:Æ�,¹)�¶ù:»ßY·á:Æ�˜Æ�“*·á:™�*+»Y*¶W¸·¶¶¶î¶ãW§�k»ßY·á:*·c¶ãWû¶ãW¹O�¹Ÿ�¶ãW+»Y¹<�¸·¶¶¶
                                    ¶ý¶ãW§�*,¶W¶ãW,¹ê�¶ãW¶
                                    °����A���f���S�T�U�V�&X�/Y�DZ�L[�e^�s]�u_�z`�‰e�’g�œh�¤i�¨j�Ïm�Øn�äo�íp�ÿq,u7wCx�B���p���I�Í�Î����I}~���I'Í���Iñ���Aè��>	����L�=¯���u�îï��’�·ð��¤�ˆ—���Ø�QE��MN��5���\�����*,-»	Y*+·	·	±����A���
                                    ! ���}�„�B���*�����Í�Î�����}~����)@����·¸��./��5���Õ�����c+¹Ÿ�¶¢ž�V*´�L+¹Ÿ�¹�ÀæM,Æ�,+¹Ÿ�¶	
                                    ! N§�+¹Ÿ�./¶	
                                    N-&¶	š�»Y-¸·/¶-¶°-°K°����A���&�	��ˆ�‰�‹�#Œ�1�?‘�I’�]•�_™�B���4����c�Í�Î�����c ���@îï��.�	����?� 	����ßà��5���Æ�����lM+¹O�¹Ÿ�¶¢ž�*´�L+¹O�¹Ÿ�¹�ÀæM,Æ�,+¹O�¹Ÿ�+¹<�¶ù°»Y*+¹O�·,¸·+¹<�¶²�8¶¶°����A���"���Ÿ� �¡�+£�/¤�;¥�A¤�E¨�B��� ����l�Í�Î�����lw���jîï��	�4�y����	z�5��¼����Î*´�q¶5™�
                                      *	¶	*´�¶”Æ�
                                      *	¶	*´�ö5š�
                                      *	¶	<*´�G¹Ù�M§�„,¹w�ÀæN*	!¶	#-*¶‚¶	&*¶	)š�3-¶è™�,š�(*	,¶	<§�W*»Y	.·-¶	0¶¶¶	-¶	3¹Ë�:§�¹w�À�à:*´�L-¹$�W¹~�šÿà,¹~�šÿy*	6¶	#*¶àW*¶	8W*	;¶	#*·	=*¶�ñš�$*·	?*·	A*·	C*´�Y¶5š�*	E¶	#*·	G*·	I*·	K*´�a¶5š�*	M¶	#*´�u¶5š�
                                    *************** N§�+¹Ÿ�./¶	
                                    N-&¶	š�»Y-¸·
                                    *** 825,847 ****
                                      
                                      ¶¢š�	˜:
                                      *»Y	š·
                                    ! ¶¶¶	#*	ž�
                                    d2§�¾d¢�
                                    `2§�·	œ*´�Y¶5š�
                                    *	·	ž*	·	 ¹­�:6§2:
                                    
                                    ¹[�™�ó*	2ž�
                                    d2§�¾d¢�
                                    `2§�·	¢*´�e¶5™�*	2·	¤*´�Ÿ¶5™� 
                                    ¹M�Ç�–*
                                    ¶	¦:»	ªY·	¬:»	­Y·	¯:	°	²¶	´W	¸	²¶	´W¶	º»	¾Y·	À:»	ÁY·	Ã:¸	Ķ	Ƕ	ȶ¶¶	Ì:*
                                    ·	Ч�W*»Y	Ò·
                                    ¹k�¶¶¶	„¾¡þ÷„¾¡ýÕ±��S�v�y	Ôì!z$˜›z��A��^�—��ž�
                                    ! Ÿ�¢�£�"¦�,§�3¬�5­�?®�B¯�L°�S²�[³�i´�mµ�t¶�y¹�zº�’¼�½� ¾�¬¿�¹½�î�ÌÃ�ÓÄ�ØÅ�ÝÇ�äÈ�èÉ�ïÊ�óË�÷Ì�ûÍÎÏÒÓÔ"Õ)Ö3×:Ú>ãFäIãMæ[çiè‚íˆîŽï”ðšñ ò¤í¥õªö¯÷´ø¶÷»ùÖúÛûöýþÿ
                                    �õ%*-1	8
                                    ! 9	<
                                    FKNRYZ]ehlq%{&)ƒ+‰-—,™/Ÿ0¦1®2½1Â3Ò4ì7ô8ý9�:;9!>"@.A7B?CDEZFaGqH†F‰I“JL§M°N¶O½PÇQÌRÑSáTöQùVWY$[,]5^>_J`Va]cfdqexf}gŽi‘j“k•i›mœn·NÂ/Ít�B��`�#��Î�Í�Î���5�—	Ö���?�„…��L�wîï���&	×…��¬�
                                    ¯��M	Ø
                                    �¥)	Ù	Ú�§�tuv�¯�c	Û��»�W	Ü
                                    �Ö�<	Ý!��«	Þ�1�	ß
                                    �R�	à
                                    �lb	á
                                    �‰E	âz�™5b®�œ1uv�¦ �Â�
                                    �ô�-	ã�
                                      �	ý�$	ä…�
                                      �	å
                                    �.”��	7‹¯��
                                      °rs�³¢v�½�úw�
                                    ,�o	æ
                                    �5�f	ç	è�>�]	é	ê�f�5	ë	ì�q�*	í	î�Ž�
                                    �
                                      ì��5���¯�����C»ßY·áN§�-¶	ïž�-&¶ãW+¶	ðL-	ó¶ãW+,¶	õ™ÿß-¶	ïš�-R¶ãW-¶
                                    °����A���*�
                                    ! ��x�y�z�{�}�~�'y�/€�6�>ƒ�B���*����C�Í�Î�����C	ö
                                    ����C	÷
                                    ���;ð��eà��5���M�����+¹^�™�	ø°:°����A������ˆ�	‰�
                                    Œ�B��������Í�Î�����w��2à��5���M�����+¹^�™�	ú°8°����A������’�	“�
                                    –�B��������Í�Î�����w��Ø,��5���>�����
                                    ! *+*¶	)·ë°����A������œ�B�������
                                      �������
                                      ��Øí��5��R�����°»ßY·áN-+¹í�¶ãW+¹ñ�š�+¹µ�™�‰™�-+Àû¹ý�¶ãW§�t-:¶ôW+Àû¹÷�:6§�T-2¹ú�¹)�¶ãW6§�
                                    --¶ôW„2¹ú�¹ê�¶¢l¡ÿà¾d¢�
                                    ! -:¶ôW„¾¡ÿª-¶
                                    °����A���B���¡�¢�£�%¤�)¥�:¨�A©�Lª�R«�f¬�l­�s¬�¯�™°� ª�«µ�B���H����°�Í�Î�����°����°	ü����¨Ñ��L�_—¢��O�\uv��i�&¢v��+,��5���µ�����[»ßY·áM+¹	ý�™�,
                                      �¶ãW,+¹
                                      �¶ãW+¹¸�™�+À=¹
                                      �š�+¹µ�™�+À\¹
                                      �™�,
                                    ! 	¶ãW,¶
                                    °����A���"���º�»�¼�¾�$¿�9À�NÁ�VÃ�B��� ����[�Í�Î�����[���Sð��Ã,��5���ú�����Œ»ßY·áM+¹	ý�™�,
                                      �¶ãW§�(+¹
                                      �™�,
                                      ¶ãW§�+¹
                                    --- 839,861 ----
                                      
                                      ¶¢š�	˜:
                                      *»Y	š·
                                    ! ¶¶¶	#*	ž�
                                    d2§�¾d¢�
                                    `2§�·	œ*´�Y¶5š�
                                    *	·	ž*	·	 ¹­�:6§2:
                                    
                                    ¹[�™�ó*	2ž�
                                    d2§�¾d¢�
                                    `2§�·	¢*´�e¶5™�*	2·	¤*´�Ÿ¶5™� 
                                    ¹M�Ç�–*
                                    ¶	¦:»	ªY·	¬:»	­Y·	¯:	°	²¶	´W	¸	²¶	´W¶	º»	¾Y·	À:»	ÁY·	Ã:¸	Ķ	Ƕ	ȶ¶¶	Ì:*
                                    ·	Ч�W*»Y	Ò·
                                    ¹k�¶¶¶	„¾¡þ÷„¾¡ýÕ±��S�v�y	Ôì!z$˜›z��A��^�—��¯�
                                    ! °�³�´�"·�,¸�3½�5¾�?¿�BÀ�LÁ�SÃ�[Ä�iÅ�mÆ�tÇ�yÊ�zË�’Í�Î� Ï�¬Ð�¹Î�ÿ�ÌÔ�ÓÕ�ØÖ�ÝØ�äÙ�èÚ�ïÛ�óÜ�÷Ý�ûÞßàãäå"æ)ç3è:ë>ôFõIôM÷[øiù‚þˆÿŽ�”š ¤þ¥ª¯´	¶»
                                    ! ÖÛö
                                    %*-189<FK NR"Y#Z"](e)h(l*q6{7:ƒ<‰>—=™@ŸA¦B®C½BÂDÒEìHôIýJ�KLJ!O"Q.R7S?TDVZWaXqY†W‰Z“[]§^°_¶`½aÇbÌcÑdáeöbùghj$l,n5o>pJqVr]tfuqvxw}xŽz‘{“|•z›~œ·_Â@Í…�B��`�#��Î�Í�Î���5�—	Ö���?�„…��L�wîï���&	×…��¬�
                                    ¯��M	Ø
                                    �¥)	Ù	Ú�§�tuv�¯�c	Û��»�W	Ü
                                    �Ö�<	Ý!��«	Þ�1�	ß
                                    �R�	à
                                    �lb	á
                                    �‰E	âz�™5b®�œ1uv�¦ �Â�
                                    �ô�-	ã�
                                      �	ý�$	ä…�
                                      �	å
                                    �.”��	7‹¯��
                                      °rs�³¢v�½�úw�
                                    ,�o	æ
                                    �5�f	ç	è�>�]	é	ê�f�5	ë	ì�q�*	í	î�Ž�
                                    �
                                      ì��5���¯�����C»ßY·áN§�-¶	ïž�-&¶ãW+¶	ðL-	ó¶ãW+,¶	õ™ÿß-¶	ïš�-R¶ãW-¶
                                    °����A���*�
                                    ! ��‰�Š�‹�Œ�Ž��'Š�/‘�6’�>”�B���*����C�Í�Î�����C	ö
                                    ����C	÷
                                    ���;ð��eà��5���M�����+¹^�™�	ø°:°����A������™�	š�
                                    �B��������Í�Î�����w��2à��5���M�����+¹^�™�	ú°8°����A������£�	¤�
                                    §�B��������Í�Î�����w��Ø,��5���>�����
                                    ! *+*¶	)·ë°����A������­�B�������
                                      �������
                                      ��Øí��5��R�����°»ßY·áN-+¹í�¶ãW+¹ñ�š�+¹µ�™�‰™�-+Àû¹ý�¶ãW§�t-:¶ôW+Àû¹÷�:6§�T-2¹ú�¹)�¶ãW6§�
                                    --¶ôW„2¹ú�¹ê�¶¢l¡ÿà¾d¢�
                                    ! -:¶ôW„¾¡ÿª-¶
                                    °����A���B���²�³�´�%µ�)¶�:¹�Aº�L»�R¼�f½�l¾�s½�À�™Á� »�«Æ�B���H����°�Í�Î�����°����°	ü����¨Ñ��L�_—¢��O�\uv��i�&¢v��+,��5���µ�����[»ßY·áM+¹	ý�™�,
                                      �¶ãW,+¹
                                      �¶ãW+¹¸�™�+À=¹
                                      �š�+¹µ�™�+À\¹
                                      �™�,
                                    ! 	¶ãW,¶
                                    °����A���"���Ë�Ì�Í�Ï�$Ð�9Ñ�NÒ�VÔ�B��� ����[�Í�Î�����[���Sð��Ã,��5���ú�����Œ»ßY·áM+¹	ý�™�,
                                      �¶ãW§�(+¹
                                      �™�,
                                      ¶ãW§�+¹
                                    *************** N§�+¹Ÿ�./¶	
                                    N-&¶	š�»Y-¸·
                                    *** 850,863 ****
                                      ¶ãW§�5+¹¸�™�+À=¹
                                      �š�+¹µ�™�+À\¹
                                      �™�,
                                    ! ¶ãW,¶
                                    °����A���6�
                                    ��È�É�Ê�Ì�%Í�0Ï�9Ð�AÒ�JÓ�UÕ�jÖ�×�‡Ù�B��� ����Œ�Í�Î�����Œ���„ð��
                                      
                                    ! ��5���/�����*´�Ë°����A������Þ�B��������Í�Î���
                                      ›œ��5���@�����+
                                      *¶¸
                                    ! °����A������
                                    j�B�������}~�����
                                      !���
                                    ! "��5���V�����*´�³¶”L+Ç�*´�·¶”L+°����A������
                                    o�
                                    q�
                                    r�
                                    u�B�������������
                                      #���Æ��5���·�����S*´
                                      $Ç�J*´�»¶”Æ�**´�»¶”µ
                                      $§�2
                                    --- 864,877 ----
                                      ¶ãW§�5+¹¸�™�+À=¹
                                      �š�+¹µ�™�+À\¹
                                      �™�,
                                    ! ¶ãW,¶
                                    °����A���6�
                                    ��Ù�Ú�Û�Ý�%Þ�0à�9á�Aã�Jä�Uæ�jç�è�‡ê�B��� ����Œ�Í�Î�����Œ���„ð��
                                      
                                    ! ��5���/�����*´�Ë°����A������ï�B��������Í�Î���
                                      ›œ��5���@�����+
                                      *¶¸
                                    ! °����A������
                                    {�B�������}~�����
                                      !���
                                    ! "��5���V�����*´�³¶”L+Ç�*´�·¶”L+°����A������
                                    €�
                                    ‚�
                                    ƒ�
                                    †�B��������Í�Î����
                                      #���Æ��5���·�����S*´
                                      $Ç�J*´�»¶”Æ�**´�»¶”µ
                                      $§�2
                                    *************** $�*
                                    *** 871,880 ****
                                      6µ
                                      $*´
                                      $°��*�5�8
                                    ! 8��A���.���
                                    z�
                                    |�
                                    }�
                                    €�&
                                    �*
                                    ƒ�8
                                    …�9
                                    ‰�@
                                    Š�G
                                    ‹�N
                                    �B�������S�����&�(
                                      :���
                                      ;
                                    ! <��5���,�����*°����A������
                                    ”�B��������Í�Î���ÛÜ��5��à����»ßY·áN»
                                      =Y*¶•·
                                      ?:6§�á+2:
                                      B¹
                                    --- 885,894 ----
                                      6µ
                                      $*´
                                      $°��*�5�8
                                    ! 8��A���.���
                                    ‹�
                                    �
                                    Ž�
                                    ‘�&
                                    ’�*
                                    ”�8
                                    –�9
                                    š�@
                                    ›�G
                                    œ�N
                                     �B�������S�Í�Î���&�(
                                      :���
                                      ;
                                    ! <��5���,�����*°����A������
                                    ¥�B��������Í�Î���ÛÜ��5��à����»ßY·áN»
                                      =Y*¶•·
                                      ?:6§�á+2:
                                      B¹
                                    *************** D�¶
                                    *** 899,905 ****
                                      `,¹
                                      b�¶ãW§�-¹
                                      e�¶ãW„+¾¡ÿ-¶
                                    ! h¶ãW-¶
                                    °����A���b���
                                    ™�
                                    ›�
                                    œ�
                                    �
                                    ž�
                                    ›�
                                     � 
                                    ¢�&
                                    ¤�6
                                    ¥�J
                                    §�Z
                                    ¨�m
                                    ª�}
                                    «�
                                    ­� 
                                    ®�²
                                    ²�Ë
                                    ³�Ð
                                    ´�Ø
                                    µ�í
                                    ¸�û
                                     
                                    ½
                                    ¾�B���R����Í�Î����)@���·¸��ð���úÝÞ���èuv��&�Õß²��Ë�0
                                      k
                                      l��
                                      N
                                    --- 913,919 ----
                                      `,¹
                                      b�¶ãW§�-¹
                                      e�¶ãW„+¾¡ÿ-¶
                                    ! h¶ãW-¶
                                    °����A���b���
                                    ª�
                                    ¬�
                                    ­�
                                    ®�
                                    ¯�
                                    ¬�
                                    ±� 
                                    ³�&
                                    µ�6
                                    ¶�J
                                    ¸�Z
                                    ¹�m
                                    »�}
                                    ¼�
                                    ¾� 
                                    ¿�²
                                    Ã�Ë
                                    Ä�Ð
                                    Å�Ø
                                    Æ�í
                                    É�û
                                    ±
                                    Î
                                    Ï�B���R����Í�Î����)@���·¸��ð���úÝÞ���èuv��&�Õß²��Ë�0
                                      k
                                      l��
                                      N
                                    *************** q�¹
                                    *** 945,952 ****
                                      ž¶ãW
                                       ¶ãW§�%š�
                                      œ¶ãW¶ãWš�
                                    ! ž¶ãW¶
                                    °����A��F�Q��
                                    �	
                                    �
                                    �
                                    �
                                    � 
                                    �3
                                    �9
                                    �<
                                    �P
                                    �Z
                                    �x
                                    Ò�„
                                    Õ�‰
                                    Ö�”
                                    ×�ž
                                    Ù�¬
                                    Ú�»
                                    Ý�È
                                    ß�Í
                                    à�æ
                                    ä�ë
                                    ç�ð
                                    è
                                    é
                                    ê=
                                    ì_
                                    îh
                                    ïn
                                    óv
                                    õ{
                                    ÷~
                                    ùŽ
                                    ú‘
                                    û
                                    ü¢
                                    ý¯
                                    þË
                                    ÿÏ
                                    úÙÞìîü�	
                                    ! .DX]ktw€Œ” ™!¡"¬#·&Â(È+Í,Ö-Þ.ç/ë0ô2ü3�4	69:"<*=.>7B�B���¬���=�Í�Î����=
                                      ¢
                                      £���=·¸���=
                                      ¤���	4ð��1 ���.
                                    --- 959,966 ----
                                      ž¶ãW
                                       ¶ãW§�%š�
                                      œ¶ãW¶ãWš�
                                    ! ž¶ãW¶
                                    °����A��F�Q��
                                    Ô�	
                                    Ö�
                                    �
                                    �
                                    Ù� 
                                    Û�3
                                    �9
                                    Þ�<
                                    �P
                                    à�Z
                                    â�x
                                    �
                                    �
                                    �
                                    �
                                    �
                                    �
                                    î�È
                                    ð�Í
                                    ñ�æ
                                    õ�ë
                                    ø�ð
                                    ù
                                    ú
                                    û=
                                    ý_
                                    ÿh�nv{~
                                    ! Ž‘
                                    ¢¯ËÏÙÞìîü� .!D"X#]"k%t&w,€-Œ.”1™2¡3¬4·7Â9È<Í=Ö>Þ?ç@ëAôCüD�E	GJK"M*N.O7S�B���¬���=�Í�Î����=
                                      ¢
                                      £���=·¸���=
                                      ¤���	4ð��1 ���.
                                    *************** T:»Y
                                    *** 978,1013 ****
                                      µ¶ãW
                                      »¶ãW¶
                                    °,¾ž�%
                                      ½+¶�ß™�-ÀF¶
                                    ! ~™�*,2¹�-¶Ù°K°����A���š�&��G�I�J�K�L�,M�9O�BP�KQ�TR�]S�fU�iW�nX�w[�}\�‚]�‡^�“b�œd�¯e�´f�½[�Çj�Ïk�él�îm�÷o�p@sEtNvWw]ybzl{v}„€�B���\�	��ˆ�Í�Î����ˆ
                                      ¿����ˆ)@���ˆ·¸��‚÷��Bð��i�ô
                                      À���z�Muv���@}~��%��5���H�����*´�ˆ¶”Ç�
                                    ! Á°*´�ˆ¶”°����A������†�
                                    ! ‡�Š�B��������Í�Î���ÂÃ��5���m�����1*´�ˆ¶”Ç�+°»Y+¸·
                                    ! ö*´�ˆ¶”¶g¶¶°����A�������
                                    ! ‘�”�B�������1�Í�Î�����1E���·��5���E�����*´
                                      ÅÇ�
                                      *
                                      ǵ
                                      Å*´
                                    ! Å°����A������š�›��B��������Í�Î���ÉÊ��5���Ù�����o»�IY·�KL*´�›¶Æ�+
                                      ɽ�àY
                                      ËS¹$�W§�G»�DY·�FM,
                                      ͹	�W,
                                      Ϲ	�W*´�¿¶Æ�
                                    ,
                                      ˹	�W+
                                      Ñ,½�à¹
                                    ! Ó�¹$�W+°����A���2���¢�£�¤�¥� ¤�)©�1ª�;«�E¬�O­�Y¯�m±�B��� ����o�Í�Î����g
                                      ���1�<
                                      Õ�
                                      ���ó�ô��5���h�����**¶•¹,�¾ž�¬*´�Œ¶”Ç�
                                    *´�¶”Æ�¬*·
                                    ! Ö¬����A������¶�
                                    ·�¹�º�#»�%¾�B�������*�Í�Î���ãà��5��’�����äKM+¹
                                      ×�N-Æ�Ö-¾ž�Ñ
                                      ÛM6§�«»Y,¸·-2¹
                                      Ý�¶¶M-2¹
                                      à�:Æ�_»Y,¸·¶¶M6§�<»Y,¸·2¶Ù¶M¾dŸ�»Y,¸·
                                      䶶M„¾¡ÿÂ-¾dŸ�»Y,¸·
                                      涶M„-¾¡ÿT»Y,¸·
                                    ! 趶M,°����A���N���Ä�Å�Æ�È�É�Ë�9Ì�DÍ�IÏ�^Ð�dÒ�{Ó�…Ô�šÐ�¥×�®Ø�ÃÉ�ÍÚ�âÜ�B���H����ä�Í�Î�����äw���à—����Ù
                                      ê
                                      ë���²
                                      ìv��D�
                                    --- 992,1027 ----
                                      µ¶ãW
                                      »¶ãW¶
                                    °,¾ž�%
                                      ½+¶�ß™�-ÀF¶
                                    ! ~™�*,2¹�-¶Ù°K°����A���š�&��X�Z�[�\�]�,^�9`�Ba�Kb�Tc�]d�ff�ih�ni�wl�}m�‚n�‡o�“s�œu�¯v�´w�½l�Ç{�Ï|�é}�î~�÷€�@„E…N‡Wˆ]Šb‹lŒvŽ„‘�B���\�	��ˆ�Í�Î����ˆ
                                      ¿����ˆ)@���ˆ·¸��‚÷��Bð��i�ô
                                      À���z�Muv���@}~��%��5���H�����*´�ˆ¶”Ç�
                                    ! Á°*´�ˆ¶”°����A������—�
                                    ! ˜�›�B��������Í�Î���ÂÃ��5���m�����1*´�ˆ¶”Ç�+°»Y+¸·
                                    ! ö*´�ˆ¶”¶g¶¶°����A������¡�
                                    ! ¢�¥�B�������1�Í�Î�����1E���·��5���E�����*´
                                      ÅÇ�
                                      *
                                      ǵ
                                      Å*´
                                    ! Å°����A������«�¬�®�B��������Í�Î���ÉÊ��5���Ù�����o»�IY·�KL*´�›¶Æ�+
                                      ɽ�àY
                                      ËS¹$�W§�G»�DY·�FM,
                                      ͹	�W,
                                      Ϲ	�W*´�¿¶Æ�
                                    ,
                                      ˹	�W+
                                      Ñ,½�à¹
                                    ! Ó�¹$�W+°����A���2���³�´�µ�¶� µ�)º�1»�;¼�E½�O¾�YÀ�mÂ�B��� ����o�Í�Î����g
                                      ���1�<
                                      Õ�
                                      ���ó�ô��5���h�����**¶•¹,�¾ž�¬*´�Œ¶”Ç�
                                    *´�¶”Æ�¬*·
                                    ! ֬����A�������
                                    È�Ê�Ë�#Ì�%Ï�B�������*�Í�Î���ãà��5��’�����äKM+¹
                                      ×�N-Æ�Ö-¾ž�Ñ
                                      ÛM6§�«»Y,¸·-2¹
                                      Ý�¶¶M-2¹
                                      à�:Æ�_»Y,¸·¶¶M6§�<»Y,¸·2¶Ù¶M¾dŸ�»Y,¸·
                                      䶶M„¾¡ÿÂ-¾dŸ�»Y,¸·
                                      涶M„-¾¡ÿT»Y,¸·
                                    ! 趶M,°����A���N���Õ�Ö�×�Ù�Ú�Ü�9Ý�DÞ�Ià�^á�dã�{ä�…å�šá�¥è�®é�ÃÚ�Íë�âí�B���H����ä�Í�Î�����äw���à—����Ù
                                      ê
                                      ë���²
                                      ìv��D�
                                    *************** T:»Y
                                    *** 1017,1028 ****
                                      
                                      ��5�������Žš�‹»ßY·áN6§�o+¶
                                      ï6«������X������(���4���)���>���,���A���[���K���]���U-:¶ôW§�$§�!-:¶ôW§�--¶ôW§�
                                    §�
                                    ! -¶ôW„+¶¢¡ÿŽ-¶
                                    °+°����A���:���â�ã�ä�å�æ�Pç�Zè�]é�gê�që�tì�{ä�‡ï�Œò�B���>����Ž�Í�Î�����Ž
                                      †�����Ž	ü����€ð���xuv���a²	Ž��	Œ�y����z�5���™�����9»	­Y·	¯M,
                                      ó*¶µ¶	´W,
                                      õ*¶	)¸
                                      ÷¶	´W»€Y+·ŠN,-
                                      ü¶
                                    ! þ-¶	v±����A������ù�ú�û�#ý�,þ�4ÿ�8��B���*����9�Í�Î�����9
                                    ���1	é	ê��,�
                                    «	Þ��	+�ô��5���:�����*´�ö5™�§�¬����A�������B��������Í�Î���´µ�y����z�5���k�����»�ØY+,*·*´�Ƕ”*¶‚·°����A��������
                                    �
                                    ! ���B��� �����������
                                    �������´"�y����z�5���z�����»�ØY+,*·*´�Ƕ”*¶‚-·°����A���������
                                    ! ����B���*�����������
                                    �����������
                                    ��5���%�����*´�G°����A�������_�B������������2�ã��p���¡�������ª������	��������
                                    \ No newline at end of file
                                    --- 1031,1043 ----
                                      
                                      ��5�������Žš�‹»ßY·áN6§�o+¶
                                      ï6«������X������(���4���)���>���,���A���[���K���]���U-:¶ôW§�$§�!-:¶ôW§�--¶ôW§�
                                    §�
                                    ! -¶ôW„+¶¢¡ÿŽ-¶
                                    °+°����A���:���ó�ô�õ�ö�÷�Pø�Zù�]ú�gû�qü�tý�{õ�‡��Œ�B���>����Ž�Í�Î�����Ž
                                      †�����Ž	ü����€ð���xuv���a²	Ž��	Œ�y����z�5���™�����9»	­Y·	¯M,
                                      ó*¶µ¶	´W,
                                      õ*¶	)¸
                                      ÷¶	´W»€Y+·ŠN,-
                                      ü¶
                                    ! þ-¶	v±����A������
                                    ! ���#�,�4�8�B���*����9�������9
                                    ���1	é	ê��,�
                                    «	Þ��	+�ô��5���:�����*´�ö5™�§�¬����A�������B��������Í�Î���´µ�y����z�5���k�����»�ØY+,*·*´�Ƕ”*¶‚·°����A���������
                                    ! � ��B��� �����������
                                    �������´"�y����z�5���z�����»�ØY+,*·*´�Ƕ”*¶‚-·°����A������(�)�*�
                                    ! +�,�-�(�B���*�����������
                                    �����������
                                    ��5���%�����*´�G°����A�������p�B������������2�ã��p���¡�������ª������	��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�
                                    HtmlPage.java�!�������
                                    *** 72,175 ****
                                      �����
                                      ����
                                    ������
                                      �������3���������������	����!*+,-»�Y·�,¶�#¶�¶�%·�)±����,���
                                    ! ����?� �@�-���>����!�.�/�����!������!�	�
                                      ����!�0�
                                      ����!��
                                    ! ����!�
                                    �����+������������	���]*·�1*+µ�4»�6Y+·�8:-Æ�»�;Y-·�=:§�»�;Y·�@:*»�CY»�EY·�G·�Jµ�K*,µ�M*µ�O*µ�Q*µ�S±����,���:����B��E�	�F��H��I��J��I�&�M�1�O�E�P�J�Q�P�R�V�S�\�T�-���f�
                                      ���]�.�/�����]������]�	�
                                      ����]�0�
                                      ����]��
                                      ����]�
                                    �����]��
                                    ! ���J�U�V��#��W�X��1�,�W�X���Y������R�����*<¶�Z*+¶�^*>¶�Z±����,�������X��Y��Z��[�-��������.�/������`�
                                      ���Y�a����� �����4*<¶�Z*+¶�^* ¶�Z*,¶�^*=¶�Z*"¶�Z*-¶�^*"¶�Z*>¶�Z±����,���*�
                                    ! ���_��`��a��b��c��d�"�e�'�f�-�g�3�h�-���*����4�.�/�����4�`�
                                      ����4�b�
                                      ����4�c�
                                    ! ���Y�d�����Ó�����Q*<¶�Z*+¶�^6§�5-2Æ�+* ¶�Z*,2¶�^*=¶�Z*"¶�Z*-2¶�^*"¶�Z„,¾¡ÿÊ*>¶�Z±����,���6�
                                    ���l��m��n��o��p��q�&�r�,�s�2�t�:�u�@�n�J�x�P�y�-���4����Q�.�/�����Q�`�
                                    ! ����Q�e�f����Q�g�f���<�h�i���Y�j����.�����|*<¶�Z*+¶�^* ¶�Z*,¶�^*=¶�Z*"¶�Z*-¶�^*"¶�ZÆ�F6§�82Æ�-* ¶�Z*2¶�^*=¶�Z*"¶�Z*2¶�^*"¶�Z„¾¡ÿÆ*>¶�Z±����,���R����}��~����€����‚�"�ƒ�'�„�-�…�2�†�8�‡�@�ˆ�F�‰�O�Š�U�‹�[�Œ�d��j�†�u�‘�{�’�-���H����|�.�/�����|�`�
                                      ����|�b�
                                      ����|�c�
                                    ! ����|�e�f����|�g�f��5�@�h�i���k������R�����*<¶�Z*+¶�^*l¶�^±����,�������–��—��˜��™�-��������.�/������`�
                                      ���k�a����� �����4*<¶�Z*+¶�^* ¶�Z*,¶�^*=¶�Z*"¶�Z*-¶�^*"¶�Z*l¶�^±����,���*�
                                    ! �����ž��Ÿ�� ��¡��¢�"�£�'�¤�-�¥�3�¦�-���*����4�.�/�����4�`�
                                      ����4�b�
                                      ����4�c�
                                    ! ���k�d�����Ó�����Q*<¶�Z*+¶�^6§�5-2Æ�+* ¶�Z*,2¶�^*=¶�Z*"¶�Z*-2¶�^*"¶�Z„,¾¡ÿÊ*l¶�^±����,���6�
                                    ���ª��«��¬��­��®��¯�&�°�,�±�2�²�:�³�@�¬�J�¶�P�·�-���4����Q�.�/�����Q�`�
                                    ! ����Q�e�f����Q�g�f���<�h�i���n������R�����*o¶�^*+¶�^*>¶�Z±����,�������¼��½��¾��¿�-��������.�/������`�
                                    ! ���q�r���������l+¶�sM+¶�yN,Ç�½�|M-Ç�½�|N,¾`½�|:-¾`½�|:,,¾¸�~-,¾¸�~„S+¶�†S*+¶�‰¶�Œ+¶�ŽÆ�*+¶�Ž¶�‘±����,���B����Ä��Å�
                                    ! �Æ��Ç��É��Ê��Í�%�Î�.�Ð�8�Ñ�B�Ó�H�Ô�P�Ö�\�×�c�Ø�k�Ú�-���>����l�.�/�����l�“�”���g�•�f��
                                    ! �b�–�f��%�G�e�f��.�>�g�f���—�r�����X�����+¶�ŽÆ�*+¶�Ž¶�˜*+¶�‰¶�˜±����,�������Þ��ß��á��â�-��������.�/������“�”���š�r�����G�����*+¶�›„+¶�†¶�ž±����,���
                                    ! ����æ��ç�-��������.�/������“�”��� �r�����A�����	*+¶�›¶�˜±����,���
                                    ! ����ë��ì�-�������	�.�/�����	�“�”���¡�3�����5�����*¢¶�£±����,���
                                    ! ����ð��ñ�-��������.�/����¥�3�����5�����*¦¶�£±����,���
                                    ! ����õ��ö�-��������.�/����\������A�����	*´�K+¶�§±����,���
                                    ! ����ú��û�-�������	�.�/�����	�¨�
                                      ���\�]�����A�����	*´�K¶�©±����,���
                                    ! ����ÿ���-�������	�.�/�����	�ª�«���¬�­�����Z�����*+¶�®*,¶�^*+¶�°±����,��������
                                    ! ��-��� �����.�/������“�”�����²�
                                    ! ���³�­�����Z�����*+¶�´*,¶�^*+¶�¶±����,��������
                                    ! 
                                    ��-��� �����.�/������“�”�����²�
                                      ���¸�¹�����������W�����*+,²�º-¶�À±����,���
                                    ! ����
                                    ! �-���*�����.�/�������
                                      ������
                                      �����Å�Æ���¸�Â����������Â�	���H*»�YÇ·�,¶�ɶ�¶�%¶�^**´�O¶�^*˶�^*Ͷ�‘*϶�‘*+¶�^*϶�˜*´�QÆ�x*´�Q¶�О�n»�ÔY·�Ö:*´�Q¶�×W/¶�Úd¶�Û �¶�Úd¶�Ú¶�ßW*´�4¶�ã*´�S¶�ã¶�ж�è¶�×W*ì½�|YîS½�|Y¶�ðS¶�ñ*ó½�|YõSY÷S½�|Y»�Y*´�M¸�ù·�ý¶�¶�%SYÿS¶�Œ*¶�^*ó¶�˜*½�|YSYS½�|Y	SY»�Y·�,¶�¶�%S¶�ñ*½�|Y
                                    SYS½�|YSYS¶�ñ-¹�:§�5¹�À�|:*½�|Y
                                    SYS½�|YSYS¶�ñ¹!�šÿǹ%�¹+�:§�‰¹�À�|:¹.�À2:6	§�a	2:
                                      *3½�|Y5SY÷SYîSYÏS½�|Y7SY9SY»�Y*´�M¸�ù·�;¶�
                                    ! ¶�¶�%SYS¶�ñ„		¾¡ÿ¹!�šÿs*Ͷ�˜±����,���Þ�7����!�'�-�3�8 �>!�O"�X#�b$�s%�…'�Ÿ(�¢)�«*�·(�º,�½-�Ë.�í,�ð/�÷0�ý123/12465F6V4Y7a8d9p:t;„<“:–8 ?®@±A½BËDÑEØFÜGõHûHI)F,D7@AMGN�-���„�
                                    ��H�.�/����H��
                                      ���H��
                                      ���H =���H�Å�Æ��X�b>?�a�ç@A�p�&B�
                                      �®�šCA�½�zD�
                                      ��lE�f��i�h�i�	�TF�
                                      �
                                      �G�3�����6�����*H¶�˜±����,���
                                    ! ���R�S�-��������.�/���J�3�����6�����*´�K¶K±����,���
                                    ! ���W�X�-��������.�/���M�r�����F�����*N„+¶�†¶�ž±����,���
                                    ! ���\�
                                    ]�-��������.�/������“�”��MP�����\�����*N„+¶�†,-¶Q±����,���
                                    ! ���a�b�-���*�����.�/������“�”�����e�f�����g�f��S�3�����6�����*T¶�‘±����,���
                                    ! ���f�g�-��������.�/���S�r�����N�����*T„+¶�†+¶�s+¶�y¶Q±����,���
                                    ! ���k�l�-��������.�/������“�”��SV�����L�����
                                      *T+,¶�ž±����,���
                                    ! ���p�	q�-��� ����
                                      �.�/�����
                                      W�
                                      ����
                                      X�
                                      ��Y�3�����6�����*Z¶�‘±����,���
                                    ! ���u�v�-��������.�/���YV�����L�����
                                      *Z+,¶�ž±����,���
                                    ! ���z�	{�-��� ����
                                      �.�/�����
                                      W�
                                      ����
                                      X�
                                      ��Y�r�����N�����*Z„+¶�†+¶�s+¶�y¶Q±����,���
                                    ! ����€�-��������.�/������“�”��\�3�����6�����*Z¶�˜±����,���
                                    ! ���„�…�-��������.�/���]�­�����Y�����*+¶^*,¶�^*¶`±����,������‰�Š�
                                    ! ‹�Œ�-��� �����.�/������“�”�����²�
                                      ��b�3�����6�����*T¶�˜±����,���
                                    ! ����‘�-��������.�/���c�­����������'*+¶d*fh¶j*+¶�®*,¶�^*+¶�°*¶`*¶l±����,���"���•�–�—�˜�™�š�"›�&œ�-��� ����'�.�/�����'�“�”����'�²�
                                      ��n�3�����6�����*N¶�˜±����,���
                                    ! ��� �¡�-��������.�/���o������C�����*pî+¶�ž±����,���
                                    ! ���¥�
                                    ! ¦�-��������.�/������ï�
                                    ! ��oV�����p�����"*p½�|YîSYÏS½�|Y+SY,S¶�Œ±����,������ª�«�¬�ª�!­�-��� ����"�.�/�����"�ï�
                                      ����"��
                                    ! ��o�a�����„�����,*p½�|YîSYÏSYrS½�|Y+SY,SY-S¶�Œ±����,������±�²�³�(±�+´�-���*����,�.�/�����,�ï�
                                      ����,��
                                      ����,s�
                                      ��t�3�����6�����*p¶�˜±����,���
                                    ! ���¸�¹�-��������.�/���uV�����Y�����*+¶v*,¶�^*¶x±����,������½�¾�
                                    ! ¿�À�-��� �����.�/������ï�
                                      ����z�
                                      ��{������\�����$*p½�|Y
                                    SY|S½�|Y+SY+S¶�ñ±����,���
                                    ! ����#�-�������$�.�/�����$�
                                    ! ��~�(�����/�����*´�M°����,������É�-��������.�/����r�����?�����*+¶€±����,���
                                    ! ���Î�Ï�-��������.�/������“�”��‚�����¸�����V™�-*ƒ½�|Y„SY…S½�|Y+¶�†SY‡S¶�Œ§�**ƒ½�|Y„SY…S½�|Y+¶�†SY‰S¶�Œ±����,���*�
                                    ! ��Ó�Ô�Õ�Ö�(Ô�.Ú�2Û�AÜ�RÚ�Uß�-��� ����V�.�/�����V�“�”����V‹Œ���3�����6�����*ƒ¶�˜±����,���
                                    ! ���ã�ä�-��������.�/���Ž�����������A�����	+*´�K¸±����,���
                                    ! ���é�ê�-�������	�.�/�����	–—��˜™�����F�����*+,¶š°����,������î�-��� �����.�/�����>�
                                      �����
                                    ! ��˜œ�����Ü�����^»�ÔY·�Ö:¶�×W+¶�×WŸ¶�×W-Æ�¡¶�×W-¶�×WŸ¶�×W£¶�×W,¶�×W¥¶�×W¶�ð°����,���2���ó�	ô�õ�ö�"÷�&ø�/ù�6ú�?ü�Hý�Oþ�Xÿ�-���4����^�.�/�����^>�
                                      ����^�
                                      ����^��
                                    ! ��	�U§?��¨©�����/�����*´�4°����,�������-��������.�/���ª���«
                                    \ No newline at end of file
                                    --- 72,176 ----
                                      �����
                                      ����
                                    ������
                                      �������3���������������	����!*+,-»�Y·�,¶�#¶�¶�%·�)±����,���
                                    ! ����P� �Q�-���>����!�.�/�����!������!�	�
                                      ����!�0�
                                      ����!��
                                    ! ����!�
                                    �����+������������	���]*·�1*+µ�4»�6Y+·�8:-Æ�»�;Y-·�=:§�»�;Y·�@:*»�CY»�EY·�G·�Jµ�K*,µ�M*µ�O*µ�Q*µ�S±����,���:����S��V�	�W��Y��Z��[��Z�&�^�1�`�E�a�J�b�P�c�V�d�\�e�-���f�
                                      ���]�.�/�����]������]�	�
                                      ����]�0�
                                      ����]��
                                      ����]�
                                    �����]��
                                    ! ���J�U�V��#��W�X��1�,�W�X���Y������R�����*<¶�Z*+¶�^*>¶�Z±����,�������i��j��k��l�-��������.�/������`�
                                      ���Y�a����� �����4*<¶�Z*+¶�^* ¶�Z*,¶�^*=¶�Z*"¶�Z*-¶�^*"¶�Z*>¶�Z±����,���*�
                                    ! ���p��q��r��s��t��u�"�v�'�w�-�x�3�y�-���*����4�.�/�����4�`�
                                      ����4�b�
                                      ����4�c�
                                    ! ���Y�d�����Ó�����Q*<¶�Z*+¶�^6§�5-2Æ�+* ¶�Z*,2¶�^*=¶�Z*"¶�Z*-2¶�^*"¶�Z„,¾¡ÿÊ*>¶�Z±����,���6�
                                    ���}��~����€����‚�&�ƒ�,�„�2�…�:�†�@��J�‰�P�Š�-���4����Q�.�/�����Q�`�
                                    ! ����Q�e�f����Q�g�f���<�h�i���Y�j����.�����|*<¶�Z*+¶�^* ¶�Z*,¶�^*=¶�Z*"¶�Z*-¶�^*"¶�ZÆ�F6§�82Æ�-* ¶�Z*2¶�^*=¶�Z*"¶�Z*2¶�^*"¶�Z„¾¡ÿÆ*>¶�Z±����,���R����Ž������‘��’��“�"�”�'�•�-�–�2�—�8�˜�@�™�F�š�O�›�U�œ�[��d�ž�j�—�u�¢�{�£�-���H����|�.�/�����|�`�
                                      ����|�b�
                                      ����|�c�
                                    ! ����|�e�f����|�g�f��5�@�h�i���k������R�����*<¶�Z*+¶�^*l¶�^±����,�������§��¨��©��ª�-��������.�/������`�
                                      ���k�a����� �����4*<¶�Z*+¶�^* ¶�Z*,¶�^*=¶�Z*"¶�Z*-¶�^*"¶�Z*l¶�^±����,���*�
                                    ! ���®��¯��°��±��²��³�"�´�'�µ�-�¶�3�·�-���*����4�.�/�����4�`�
                                      ����4�b�
                                      ����4�c�
                                    ! ���k�d�����Ó�����Q*<¶�Z*+¶�^6§�5-2Æ�+* ¶�Z*,2¶�^*=¶�Z*"¶�Z*-2¶�^*"¶�Z„,¾¡ÿÊ*l¶�^±����,���6�
                                    ���»��¼��½��¾��¿��À�&�Á�,�Â�2�Ã�:�Ä�@�½�J�Ç�P�È�-���4����Q�.�/�����Q�`�
                                    ! ����Q�e�f����Q�g�f���<�h�i���n������R�����*o¶�^*+¶�^*>¶�Z±����,�������Í��Î��Ï��Ð�-��������.�/������`�
                                    ! ���q�r���������l+¶�sM+¶�yN,Ç�½�|M-Ç�½�|N,¾`½�|:-¾`½�|:,,¾¸�~-,¾¸�~„S+¶�†S*+¶�‰¶�Œ+¶�ŽÆ�*+¶�Ž¶�‘±����,���B����Õ��Ö�
                                    ! �×��Ø��Ú��Û��Þ�%�ß�.�á�8�â�B�ä�H�å�P�ç�\�è�c�é�k�ë�-���>����l�.�/�����l�“�”���g�•�f��
                                    ! �b�–�f��%�G�e�f��.�>�g�f���—�r�����X�����+¶�ŽÆ�*+¶�Ž¶�˜*+¶�‰¶�˜±����,�������ï��ð��ò��ó�-��������.�/������“�”���š�r�����G�����*+¶�›„+¶�†¶�ž±����,���
                                    ! ����÷��ø�-��������.�/������“�”��� �r�����A�����	*+¶�›¶�˜±����,���
                                    ! ����ü��ý�-�������	�.�/�����	�“�”���¡�3�����5�����*¢¶�£±����,���
                                    ! �����-��������.�/����¥�3�����5�����*¦¶�£±����,���
                                    ! �����-��������.�/����\������A�����	*´�K+¶�§±����,���
                                    ! �����-�������	�.�/�����	�¨�
                                      ���\�]�����A�����	*´�K¶�©±����,���
                                    ! �����-�������	�.�/�����	�ª�«���¬�­�����Z�����*+¶�®*,¶�^*+¶�°±����,��������
                                    ! ��-��� �����.�/������“�”�����²�
                                    ! ���³�­�����Z�����*+¶�´*,¶�^*+¶�¶±����,��������
                                    ! ��-��� �����.�/������“�”�����²�
                                      ���¸�¹�����������W�����*+,²�º-¶�À±����,���
                                    ! ���$�
                                    ! %�-���*�����.�/�������
                                      ������
                                      �����Å�Æ���¸�Â����������Â�	���H*»�YÇ·�,¶�ɶ�¶�%¶�^**´�O¶�^*˶�^*Ͷ�‘*϶�‘*+¶�^*϶�˜*´�QÆ�x*´�Q¶�О�n»�ÔY·�Ö:*´�Q¶�×W/¶�Úd¶�Û �¶�Úd¶�Ú¶�ßW*´�4¶�ã*´�S¶�ã¶�ж�è¶�×W*ì½�|YîS½�|Y¶�ðS¶�ñ*ó½�|YõSY÷S½�|Y»�Y*´�M¸�ù·�ý¶�¶�%SYÿS¶�Œ*¶�^*ó¶�˜*½�|YSYS½�|Y	SY»�Y·�,¶�¶�%S¶�ñ*½�|Y
                                    SYS½�|YSYS¶�ñ-¹�:§�5¹�À�|:*½�|Y
                                    SYS½�|YSYS¶�ñ¹!�šÿǹ%�¹+�:§�‰¹�À�|:¹.�À2:6	§�a	2:
                                      *3½�|Y5SY÷SYîSYÏS½�|Y7SY9SY»�Y*´�M¸�ù·�;¶�
                                    ! ¶�¶�%SYS¶�ñ„		¾¡ÿ¹!�šÿs*Ͷ�˜±����,���Þ�7��+�,�!-�'.�-/�30�81�>2�O3�X4�b5�s6�…8�Ÿ9�¢:�«;�·9�º=�½>�Ë?�í=�ð@�÷A�ýBCD/B2E6FFGVEYHaIdJpKtL„M“K–I P®Q±R½SËUÑVØWÜXõYûYZ)W,U7QA^G_�-���„�
                                    ��H�.�/����H��
                                      ���H��
                                      ���H =���H�Å�Æ��X�b>?�a�ç@A�p�&B�
                                      �®�šCA�½�zD�
                                      ��lE�f��i�h�i�	�TF�
                                      �
                                      �G�3�����6�����*H¶�˜±����,���
                                    ! ���c�d�-��������.�/���J�3�����6�����*´�K¶K±����,���
                                    ! ���h�i�-��������.�/���M�r�����F�����*N„+¶�†¶�ž±����,���
                                    ! ���m�
                                    n�-��������.�/������“�”��MP�����\�����*N„+¶�†,-¶Q±����,���
                                    ! ���r�s�-���*�����.�/������“�”�����e�f�����g�f��S�3�����6�����*T¶�‘±����,���
                                    ! ���w�x�-��������.�/���S�r�����N�����*T„+¶�†+¶�s+¶�y¶Q±����,���
                                    ! ���|�}�-��������.�/������“�”��SV�����L�����
                                      *T+,¶�ž±����,���
                                    ! ����	‚�-��� ����
                                      �.�/�����
                                      W�
                                      ����
                                      X�
                                      ��Y�3�����6�����*Z¶�‘±����,���
                                    ! ���†�‡�-��������.�/���YV�����L�����
                                      *Z+,¶�ž±����,���
                                    ! ���‹�	Œ�-��� ����
                                      �.�/�����
                                      W�
                                      ����
                                      X�
                                      ��Y�r�����N�����*Z„+¶�†+¶�s+¶�y¶Q±����,���
                                    ! ����‘�-��������.�/������“�”��\�3�����6�����*Z¶�˜±����,���
                                    ! ���•�–�-��������.�/���]�­�����Y�����*+¶^*,¶�^*¶`±����,������š�›�
                                    ! œ��-��� �����.�/������“�”�����²�
                                      ��b�3�����6�����*T¶�˜±����,���
                                    ! ���¡�¢�-��������.�/���c�­����������'*+¶d*fh¶j*+¶�®*,¶�^*+¶�°*¶`*¶l±����,���"���¦�§�¨�©�ª�«�"¬�&­�-��� ����'�.�/�����'�“�”����'�²�
                                      ��n�3�����6�����*N¶�˜±����,���
                                    ! ���±�²�-��������.�/���o������C�����*pî+¶�ž±����,���
                                    ! ���¶�
                                    ! ·�-��������.�/������ï�
                                    ! ��oV�����p�����"*p½�|YîSYÏS½�|Y+SY,S¶�Œ±����,������»�¼�½�»�!¾�-��� ����"�.�/�����"�ï�
                                      ����"��
                                    ! ��o�a�����„�����,*p½�|YîSYÏSYrS½�|Y+SY,SY-S¶�Œ±����,������Â�Ã�Ä�(Â�+Å�-���*����,�.�/�����,�ï�
                                      ����,��
                                      ����,s�
                                      ��t�3�����6�����*p¶�˜±����,���
                                    ! ���É�Ê�-��������.�/���uV�����Y�����*+¶v*,¶�^*¶x±����,������Î�Ï�
                                    ! Ð�Ñ�-��� �����.�/������ï�
                                      ����z�
                                      ��{������\�����$*p½�|Y
                                    SY|S½�|Y+SY+S¶�ñ±����,���
                                    ! ����#�-�������$�.�/�����$�
                                    ! ��~�(�����/�����*´�M°����,������Ú�-��������.�/����r�����?�����*+¶€±����,���
                                    ! ���ß�à�-��������.�/������“�”��‚�����¸�����V™�-*ƒ½�|Y„SY…S½�|Y+¶�†SY‡S¶�Œ§�**ƒ½�|Y„SY…S½�|Y+¶�†SY‰S¶�Œ±����,���*�
                                    ! ��ä�å�æ�ç�(å�.ë�2ì�Aí�Rë�Uð�-��� ����V�.�/�����V�“�”����V‹Œ���3�����6�����*ƒ¶�˜±����,���
                                    ! ���ô�õ�-��������.�/���Ž�����������A�����	+*´�K¸±����,���
                                    ! ���ú�û�-�������	�.�/�����	–—��˜™�����F�����*+,¶š°����,������ÿ�-��� �����.�/�����>�
                                      �����
                                    ! ��˜œ�����Ü�����^»�ÔY·�Ö:¶�×W+¶�×WŸ¶�×W-Æ�¡¶�×W-¶�×WŸ¶�×W£¶�×W,¶�×W¥¶�×W¶�ð°����,���2����	���"�&	�/
                                    ! �6�?
                                    �H�O�X�-���4����^�.�/�����^>�
                                      ����^�
                                      ����^��
                                    ! ��	�U§?��¨©�����/�����*´�4°����,�������-��������.�/���ª���«
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                      Êþº¾���1���8gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext��)gnu/classpath/tools/taglets/TagletContext�output�1Lgnu/classpath/tools/doclets/htmldoclet/HtmlPage;�isOnSerializedPage�Z�<init>�J(Lcom/sun/javadoc/Doc;Lgnu/classpath/tools/doclets/htmldoclet/HtmlPage;Z)V�Code
                                      ��
                                    �	��(Lcom/sun/javadoc/Doc;)V	����	�����LineNumberTable�LocalVariableTable�this�:Lgnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext;�doc�Lcom/sun/javadoc/Doc;�	getOutput�3()Lgnu/classpath/tools/doclets/htmldoclet/HtmlPage;�()Z�
                                      SourceFile�HtmlTagletContext.java�!������������������	�
                                    ! �����d�����*+·�*,µ�*µ�±�����������"��#�
                                    ! �$��%����*����������������������������������/�����*´�°�����������)��������������������/�����*´�¬�����������.������������������
                                    \ No newline at end of file
                                    --- 1,5 ----
                                      Êþº¾���1���8gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext��)gnu/classpath/tools/taglets/TagletContext�output�1Lgnu/classpath/tools/doclets/htmldoclet/HtmlPage;�isOnSerializedPage�Z�<init>�J(Lcom/sun/javadoc/Doc;Lgnu/classpath/tools/doclets/htmldoclet/HtmlPage;Z)V�Code
                                      ��
                                    �	��(Lcom/sun/javadoc/Doc;)V	����	�����LineNumberTable�LocalVariableTable�this�:Lgnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext;�doc�Lcom/sun/javadoc/Doc;�	getOutput�3()Lgnu/classpath/tools/doclets/htmldoclet/HtmlPage;�()Z�
                                      SourceFile�HtmlTagletContext.java�!������������������	�
                                    ! �����d�����*+·�*,µ�*µ�±�����������3��4�
                                    ! �5��6����*����������������������������������/�����*´�°�����������:��������������������/�����*´�¬�����������?������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 6,11 ****
                                      SourceFile�Driver.java�EnclosingMethod�+�,gnu/classpath/tools/doclets/xmldoclet/Driver�-��createIndexByName�InnerClasses� �������������	�
                                      �����8�����
                                      *+µ�*·�±�������
                                    ! �������������
                                    ! ������������P�����+¶�¶�,¶�¶�¶� ¬�������������� ������������$�%�����&�%���'����(�)����*�,�.���
                                      ��������
                                    \ No newline at end of file
                                    --- 6,11 ----
                                      SourceFile�Driver.java�EnclosingMethod�+�,gnu/classpath/tools/doclets/xmldoclet/Driver�-��createIndexByName�InnerClasses� �������������	�
                                      �����8�����
                                      *+µ�*·�±�������
                                    ! �����!��������
                                    ! ������������P�����+¶�¶�,¶�¶�¶� ¬����������#���� ������������$�%�����&�%���'����(�)����*�,�.���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,6 ****
                                      �����LineNumberTable�LocalVariableTable�this�@Lgnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter;�
                                      printError�(Ljava/lang/String;)V�ignore�Ljava/lang/String;�printWarning�printNotice�
                                      SourceFile�Driver.java�InnerClasses��,gnu/classpath/tools/doclets/xmldoclet/Driver�NullErrorReporter� ������������	���/�����*·�
                                    ! ±�����������W�
                                    ����������������	���5������±�����������X�
                                    ����������������������	���5������±�����������Y�
                                    ����������������������	���5������±�����������Z�
                                    ���������������������������
                                      �����
                                    --- 2,6 ----
                                      �����LineNumberTable�LocalVariableTable�this�@Lgnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter;�
                                      printError�(Ljava/lang/String;)V�ignore�Ljava/lang/String;�printWarning�printNotice�
                                      SourceFile�Driver.java�InnerClasses��,gnu/classpath/tools/doclets/xmldoclet/Driver�NullErrorReporter� ������������	���/�����*·�
                                    ! ±�����������h�
                                    ����������������	���5������±�����������i�
                                    ����������������������	���5������±�����������j�
                                    ����������������������	���5������±�����������k�
                                    ���������������������������
                                      �����
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 6,13 ****
                                      �;�A�B�C�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�E�}
                                      �;�G�9�:�getId�
                                      SourceFile�Driver.java�InnerClasses�M�,gnu/classpath/tools/doclets/xmldoclet/Driver�	UsageType� ����������������������	�����
                                    ! ���������������
                                    ������������‘������U»�Y·�³�»�Y·�³�»�Y·�³� »�Y"·�³�$»�Y&·�³�(»�Y*·�³�,»�Y.·�³�0±����2���"���Ÿ� �¡�$¢�0£�<¤�H¥�T�3�������������F�����
                                    ! *·�4*+µ�6±����2������¨�ª�	«�3�������
                                      �8������
                                    ! �
                                    ����9�:�����C�����»�;Y=·�?*´�6¶�@D¶�@¶�F°����2������®�3��������8�����H�:�����/�����*´�6°����2������²�3��������8�����I����J�K���
                                      ���L�N�
                                    --- 6,13 ----
                                      �;�A�B�C�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�E�}
                                      �;�G�9�:�getId�
                                      SourceFile�Driver.java�InnerClasses�M�,gnu/classpath/tools/doclets/xmldoclet/Driver�	UsageType� ����������������������	�����
                                    ! ���������������
                                    ������������‘������U»�Y·�³�»�Y·�³�»�Y·�³� »�Y"·�³�$»�Y&·�³�(»�Y*·�³�,»�Y.·�³�0±����2���"���°�±�²�$³�0´�<µ�H¶�T®�3�������������F�����
                                    ! *·�4*+µ�6±����2������¹�»�	¼�3�������
                                      �8������
                                    ! �
                                    ����9�:�����C�����»�;Y=·�?*´�6¶�@D¶�@¶�F°����2������¿�3��������8�����H�:�����/�����*´�6°����2������Ã�3��������8�����I����J�K���
                                      ���L�N�
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class	Tue Oct 12 15:55:12 2010
                                    *************** usage-typeä�referencing-package�pa
                                    *** 262,270 ****
                                      SourceFile�Driver.java�InnerClasses	�>gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter�NullErrorReporter�	UsageType�EmailReplacement�!�����"�����������
                                      ���������
                                    �������������������������������������������������
                                      ��������������������������� ����!� ����"�#����$�����%�����&�����'� ����(�����)�*����+�,����-�������.��0�����1�2����3�4����5�6����7�8����9�#����:�;����<�#����=�>����?�8���8��@�A��B���)������³�C±����E���
                                    ! ����p��P�F�������G�A��B���è�����~*·�H*µ�J*µ�L*µ�N*µ�P*µ�R*»�TY·�Vµ�W*Y¸�[µ�a*µ�c*»�eY·�gµ�h*µ�j*»�lY·�nµ�o*»�qY·�sµ�t*»�vY·�xµ�y*»�qY·�sµ�{*»�}Y·�µ�€±����E���F����P��v�	�|��‚��Š��”��£�(�»�1�È�6�Î�A�Þ�F�ö�Q�ý�\�g�r¹�}�P�F�������~�‚�ƒ���	�„�…��B���<�����»�Y·�†*¶�‡À�¶�¬����E������
                                    �F��������“�”���	�„�’��B���Y�����»�ˆY*·�•LK»�Y·�†+¶�‡À�¶�¬����E�������	��F��������˜�,���	��™�”���š�›��B���U�����	*,-¶�œ±����E���
                                    ! ���&�'�F���*����	�‚�ƒ�����	�Ÿ�����	� �����	�¡�¢���š�ž��B��~�����Ú6-¹�£�::Æ�¹�©�6¹�¯�¹�³�:*»�¹Y»·�½,¶�ÀĶ�À-¹�Æ�¶�Àɶ�À˶�À-¹�Í�¶�Àɶ�À-¹�Ð�¶�Óš�Ù§�»�¹YÛ·�½-¹�Ð�¶�Àɶ�À¶�ݶ�À™�à§�Ù¶�ÀÆ�»�¹Yâ·�½¶�Àɶ�À¶�ݧ�Ù¶�À™�ä§�Ù¶�Àæ¶�À¶�ݶ�è±����E���:���+�,�-�.�/�0�*2�L3�_4�5�œ6�¿7�Ö2�Ù8�F���R����Ú�‚�ƒ�����Ú�Ÿ�����Ú� �����Ú�¡�¢����Ú�ì����×�­����Ï�í�2���Ì�î����ï�ð��B��¥�����Ó*,µ�ñ*,¶�ó,¹�÷�N6-¾6§�3-2:*»�¹Yý·�½¹�ÿ�¶�Àɶ�À¶�ݹ�¶„¡ÿÌ,¹�:6¾6§�2:*¶„¡ÿè*»�¹Y
                                    ·�½,¹�¶�À¶�À,¹�¶�Àɶ�À¶�ݶ,¹�™�*¶,¹�™�*!¶±����E���J���<�>�@�A�B�"C�IA�SF�[G�fH�mI�wG�L�°N�¹O�ÁR�ÊS�ÒU�F���p����Ó�‚�ƒ�����Ó�Ÿ�����Ó"�6���Á�û#���>$����:%���"�'&'��[�x()��^�#$���c�%���m�
                                    ! *�2��+,��B���—�����E*¶-*»�¹Y/·�½,¹1�¶�Àɶ�À¶�ݶ4*`,¶7*`9,¹;�¶*>¶@±����E������X�Y�$Z�,[�<\�D]�F��� ����E�‚�ƒ�����E�Ÿ�����ECD���õ�ö��B���R�����*,µE*,¶G±����E������`�a�b�F��� �����‚�ƒ������Ÿ�����"�4��KL��B���ƒ�����1*M,¹N�¶,¹Q�™�*T¶,¹U�™�*X¶±����E������e�f�g�i�(j�0l�F��� ����1�‚�ƒ�����1�Ÿ�����1YZ��[L��B��������=*¶-*»�¹Y\·�½,¹^�¶�Àɶ�À¶�ݶ4*`,¶�ó*`,¶_*a¶@±����E������o�p�$q�,r�4s�<t�F��� ����=�‚�ƒ�����=�Ÿ�����=YZ��cd��B���ƒ�����5*¶-*»�¹Ye·�½,¹g�¶�Àɶ�À¶�ݶ4*`,¶7*j¶@±����E������w�x�$y�,z�4{�F��� ����5�‚�ƒ�����5�Ÿ�����5lm��no��B���³�����;,Æ�9,¹p�N-Æ�#6-¾6§�*s-2¶„¡ÿí*,¹u�¶x±����E���"���~��€��‚�%�/…�:‡�F���>����;�‚�ƒ�����;�Ÿ�����;z�2���/r)���$����%���{|��B��Š�����ì*¶-*»�¹Y}·�½+¹�¶�À€¶�À+¹‚�¶�À…¶�À¶�ݶ4+¹u�Æ�*‡+¹u�¶+¹p�M>,¾6§�*ˆ,2¶„¡ÿï*+¹u�¶x*»�¹YŠ·�½+¹�¯�¹�³�¶�Àɶ�À¶�ݶ+¹Œ�™�*¶+¹�™�*“¶+¹”�™�*—¶+¹˜�™�*›¶*œ¶@±����E���R���Š�‹�4Œ�=�K�R‘�[’�f‘�o”�z–�Ÿ—�¨˜�°š�¹›�Á�Êž�Ò �Û¡�ã¤�ë¥�F���4����ì�‚�ƒ�����ìz�2��R�šr)��T�$���X�%���žŸ��B��`�����Ò*¶-*»�¹Y ·�½+¹�³�¶�Àɶ�À¶�ݶ4+¹¢�¾ž�?*¦¶§*+¹¢�¶ª*¦¶@*®¶§*+¹°�¶ª*®¶@+¹²�¾ž� *µ¶4*+¹²�¶ª*µ¶@+¹¶�¾ž� *º¶4*+¹¶�¶ª*º¶@+¹»�¶¾À¿M,¸Â*ȶ@±����E���V���¨�©�$ª�.«�7¬�D­�L®�U¯�b°�j³�t´�|µ�‰¶�‘¹�›º�£»�°¼�¸¿�ÅÀ�ÉÈ�ÑÉ�F��� ����Ò�‚�ƒ�����ÒÊË��Å�
                                    ½)��Ì|�Í����Î�B����
                                    ��'*+µÐ*¶-*»�¹YÒ·�½+¹�¶�À€¶�À+¹‚�¶�Àɶ�À¶�ݶ4+¹p�M>,¾6§�*ˆ,2¶„¡ÿï*+¹u�¶x*+¶G+¹Ô�™�*׶+¹Ø�™�*Û¶+¹Ü�™�*߶+¹à�™�*ã¶+¹ä�N6-¾6§�*-2¶è„¡ÿð+¹ê�:6¾6§�*2¶î„¡ÿï+¹ð�:6¾6§�*2·ô„¡ÿï+¹ö�¾ž�:*ù¶4+¹ö�:6¾6§�*2·ô„¡ÿï*ù¶@»úY·ü:»ýY·ÿ:�¶W¶W¶
                                      +¹�Ç�{*´�y´™�q*¶4»Y·:»Y+¹�¯�À¹�»�¹Y+¹�¸!·�½%¶�À¶�Ý·':	»*Y	·,:
                                      
                                      ¸/*¶5	¶9¶<¶@*¶@+¹u�:§�æ*‡¶�œ*»�¹YŠ·�½¹�¯�¹�³�¶�Àɶ�À¶�ݶ¹ê�:		Æ�O6
                                    --- 262,270 ----
                                      SourceFile�Driver.java�InnerClasses	�>gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter�NullErrorReporter�	UsageType�EmailReplacement�!�����"�����������
                                      ���������
                                    �������������������������������������������������
                                      ��������������������������� ����!� ����"�#����$�����%�����&�����'� ����(�����)�*����+�,����-�������.��0�����1�2����3�4����5�6����7�8����9�#����:�;����<�#����=�>����?�8���8��@�A��B���)������³�C±����E���
                                    ! ������a�F�������G�A��B���è�����~*·�H*µ�J*µ�L*µ�N*µ�P*µ�R*»�TY·�Vµ�W*Y¸�[µ�a*µ�c*»�eY·�gµ�h*µ�j*»�lY·�nµ�o*»�qY·�sµ�t*»�vY·�xµ�y*»�qY·�sµ�{*»�}Y·�µ�€±����E���F����a��‡�	���“��›��¥��´�(�Ì�1�Ù�6�ß�A�ï�F�Q�\�g�rÊ�}�a�F�������~�‚�ƒ���	�„�…��B���<�����»�Y·�†*¶�‡À�¶�¬����E�������F��������“�”���	�„�’��B���Y�����»�ˆY*·�•LK»�Y·�†+¶�‡À�¶�¬����E������'�	(�)�F��������˜�,���	��™�”���š�›��B���U�����	*,-¶�œ±����E���
                                    ! ���7�8�F���*����	�‚�ƒ�����	�Ÿ�����	� �����	�¡�¢���š�ž��B��~�����Ú6-¹�£�::Æ�¹�©�6¹�¯�¹�³�:*»�¹Y»·�½,¶�ÀĶ�À-¹�Æ�¶�Àɶ�À˶�À-¹�Í�¶�Àɶ�À-¹�Ð�¶�Óš�Ù§�»�¹YÛ·�½-¹�Ð�¶�Àɶ�À¶�ݶ�À™�à§�Ù¶�ÀÆ�»�¹Yâ·�½¶�Àɶ�À¶�ݧ�Ù¶�À™�ä§�Ù¶�Àæ¶�À¶�ݶ�è±����E���:���<�=�>�?�@�A�*C�LD�_E�F�œG�¿H�ÖC�ÙI�F���R����Ú�‚�ƒ�����Ú�Ÿ�����Ú� �����Ú�¡�¢����Ú�ì����×�­����Ï�í�2���Ì�î����ï�ð��B��¥�����Ó*,µ�ñ*,¶�ó,¹�÷�N6-¾6§�3-2:*»�¹Yý·�½¹�ÿ�¶�Àɶ�À¶�ݹ�¶„¡ÿÌ,¹�:6¾6§�2:*¶„¡ÿè*»�¹Y
                                    ·�½,¹�¶�À¶�À,¹�¶�Àɶ�À¶�ݶ,¹�™�*¶,¹�™�*!¶±����E���J���M�O�Q�R�S�"T�IR�SW�[X�fY�mZ�wX�]�°_�¹`�Ác�Êd�Òf�F���p����Ó�‚�ƒ�����Ó�Ÿ�����Ó"�6���Á�û#���>$����:%���"�'&'��[�x()��^�#$���c�%���m�
                                    ! *�2��+,��B���—�����E*¶-*»�¹Y/·�½,¹1�¶�Àɶ�À¶�ݶ4*`,¶7*`9,¹;�¶*>¶@±����E������i�j�$k�,l�<m�Dn�F��� ����E�‚�ƒ�����E�Ÿ�����ECD���õ�ö��B���R�����*,µE*,¶G±����E������q�r�s�F��� �����‚�ƒ������Ÿ�����"�4��KL��B���ƒ�����1*M,¹N�¶,¹Q�™�*T¶,¹U�™�*X¶±����E������v�w�x�z�({�0}�F��� ����1�‚�ƒ�����1�Ÿ�����1YZ��[L��B��������=*¶-*»�¹Y\·�½,¹^�¶�Àɶ�À¶�ݶ4*`,¶�ó*`,¶_*a¶@±����E������€��$‚�,ƒ�4„�<…�F��� ����=�‚�ƒ�����=�Ÿ�����=YZ��cd��B���ƒ�����5*¶-*»�¹Ye·�½,¹g�¶�Àɶ�À¶�ݶ4*`,¶7*j¶@±����E������ˆ�‰�$Š�,‹�4Œ�F��� ����5�‚�ƒ�����5�Ÿ�����5lm��no��B���³�����;,Æ�9,¹p�N-Æ�#6-¾6§�*s-2¶„¡ÿí*,¹u�¶x±����E���"�����‘�’�“�%’�/–�:˜�F���>����;�‚�ƒ�����;�Ÿ�����;z�2���/r)���$����%���{|��B��Š�����ì*¶-*»�¹Y}·�½+¹�¶�À€¶�À+¹‚�¶�À…¶�À¶�ݶ4+¹u�Æ�*‡+¹u�¶+¹p�M>,¾6§�*ˆ,2¶„¡ÿï*+¹u�¶x*»�¹YŠ·�½+¹�¯�¹�³�¶�Àɶ�À¶�ݶ+¹Œ�™�*¶+¹�™�*“¶+¹”�™�*—¶+¹˜�™�*›¶*œ¶@±����E���R���›�œ�4�=ž�K¡�R¢�[£�f¢�o¥�z§�Ÿ¨�¨©�°«�¹¬�Á®�ʯ�Ò±�Û²�ãµ�ë¶�F���4����ì�‚�ƒ�����ìz�2��R�šr)��T�$���X�%���žŸ��B��`�����Ò*¶-*»�¹Y ·�½+¹�³�¶�Àɶ�À¶�ݶ4+¹¢�¾ž�?*¦¶§*+¹¢�¶ª*¦¶@*®¶§*+¹°�¶ª*®¶@+¹²�¾ž� *µ¶4*+¹²�¶ª*µ¶@+¹¶�¾ž� *º¶4*+¹¶�¶ª*º¶@+¹»�¶¾À¿M,¸Â*ȶ@±����E���V���¹�º�$»�.¼�7½�D¾�L¿�UÀ�bÁ�jÄ�tÅ�|Æ�‰Ç�‘Ê�›Ë�£Ì�°Í�¸Ð�ÅÑ�ÉÙ�ÑÚ�F��� ����Ò�‚�ƒ�����ÒÊË��Å�
                                    ½)��Ì|�Í����Î�B����
                                    ��'*+µÐ*¶-*»�¹YÒ·�½+¹�¶�À€¶�À+¹‚�¶�Àɶ�À¶�ݶ4+¹p�M>,¾6§�*ˆ,2¶„¡ÿï*+¹u�¶x*+¶G+¹Ô�™�*׶+¹Ø�™�*Û¶+¹Ü�™�*߶+¹à�™�*ã¶+¹ä�N6-¾6§�*-2¶è„¡ÿð+¹ê�:6¾6§�*2¶î„¡ÿï+¹ð�:6¾6§�*2·ô„¡ÿï+¹ö�¾ž�:*ù¶4+¹ö�:6¾6§�*2·ô„¡ÿï*ù¶@»úY·ü:»ýY·ÿ:�¶W¶W¶
                                      +¹�Ç�{*´�y´™�q*¶4»Y·:»Y+¹�¯�À¹�»�¹Y+¹�¸!·�½%¶�À¶�Ý·':	»*Y	·,:
                                      
                                      ¸/*¶5	¶9¶<¶@*¶@+¹u�:§�æ*‡¶�œ*»�¹YŠ·�½¹�¯�¹�³�¶�Àɶ�À¶�ݶ¹ê�:		Æ�O6
                                    *************** SourceFile�Driver.java�InnerClasses
                                    *** 276,295 ****
                                      
                                      �<6
                                      ¾6§�**»�¹Y\·�½
                                    ! 2¹^�¶�Àɶ�À¶�ݶ„¡ÿÕ*‡¶@¹u�:Çÿ*+·F*œ¶@*µÐ*µE*µ�ñ±����E��*�J��Í�Ï�	Ð�8Ò�?Ó�HÔ�SÓ�\Ö�gØ�mÙ�vÚ�~Û�‡Ü�Ý�˜Þ� ß�©à�±ã�¸ä�Âå�Ëä�Õè�Ýé�èê�òé�üíîïî#ò-ó5õ=öH÷Rö\ùdümývþ‚ÿŽ�•¨°¹Ëäéôû	
                                    ! 
                                    !,R[`k¢¬µºÅéó!û#	&(*+!,&-�F��$���'�‚�ƒ����'z�2��?èr)��A�$���E�%���¸oæJ��»�$���¿�%���ÝJìK��à�$���å�%��#òL��$���%��=�'ML�@�$��E�%��mºNO�v±PQ�¹�]RS�é�-T� �	ô�"UV�
                                      	W�2�[�©XK�	c�I$��
                                      h�D%��µ�OYL�
                                    ! ½�6$��Â�1%���Z[��B���}�����!,¹u�N-Æ�
                                    *-¶\<„*^,¶�œ¬����E������1�2�3�4�6�7�F���*����!�‚�ƒ�����!�Ÿ�����!z�2���`�2��ao��B���t�����,¹u�N-Æ�*`-¶b*^¶@±����E������<�=�>�@�A�F���*�����‚�ƒ������Ÿ�����z�2���`�2��de��B����
                                    ! ��b>,¹f�™�\*k¶,À�ª:*´l¹n�:6¾6§�"2¹u�¦�*q2¶„¡ÿÝ*¶\W*¶b,¹s�™�
                                    *v¶>,¹w�™�*¶,¹x�™�*“¶,¹y�™�
                                    *|¶>,¹}�™�*~¶,¹�™�‚*—¶,À�ª:*´l¹n�:6¾6§�W2¹p�:6	§�:	2¦�-¹”�™�*€2¶§�*‚2¶§�„		¾¡ÿÄ„¡ÿ¨,¹„�™�
                                    *‡¶>,¹ˆ�™�*›¶,¹‰�¾ž�#*®¶§*`,¹‰�¶ª*®¶@,¹Š�¾ž�#*¦¶§*`,¹Š�¶ª*¦¶@,¹‹�¾ž�"*µ¶4*`,¹‹�¶Œ*µ¶@,¹�¾ž�"*º¶4*`,¹�¶ª*º¶@,¹�:Æ�G*»�¹Y”·�½¹–�¶›¶�Àž¶�À¹ �¶£¦¶�À¹¨�¶£ɶ�À¶�ݶ±����E���ú�>��E�G�H�J�K�%L�0M�?N�LL�VR�^S�eU�nV�vW�xY�Z�‰\�’]�š_�£`�«a�­c�¶d�¾f�Çg�Ïi�Õj�àk�ël�÷m�ýnop!s.u1m<kFzO{W|Y~bj‚tƒ}„Œ…”ˆž‰§Š¶‹¾ŽÈÐß‘ç”ñ•ù–—š›œaž�F���˜���b�‚�ƒ����b�Ÿ����b«¬��_­����Kz�2��%�@p)��(�.$���-�)%���Õ�qz�2��à�fp)��ã�c$���è�^%���÷�E®)��ú�B¯��	�J’°��IJ��B��—�����ß*,¶±*»�¹YŠ·�½,¹³�¹�³�¶�Àɶ�À¶�ݶ,¹¶�Æ�*·,¹¶�¶,¹¸�™�
                                      »N§�R,¹½�™�
                                      ÀN§�B,¹Â�™�
                                      ÅN§�2,¹Ç�™�
                                    ! ÊN§�"»ÌY»�¹Yη�½,¶ÐÓ¶�À¶�Ý·Õ¿*»�¹YÖ·�½-¶�Àɶ�À¶�ݶ,¹Ø�™�*Û¶,¹Ü�™�*߶±����E���N���¡�¢�+£�4¤�B§�K¨�R©�[ª�b«�k¬�r­�{®�‚°�¡±�¼²�ų�Í´�Öµ�Þ¶�F���R����ß�‚�ƒ�����ß�Ÿ�����ßàá��O�â���_�â���o�â����â���¡�>â���¬­��B���“�����+6§� *,2,¾d �§�¶ã„,¾¡ÿß±����E������º�»� º�*½�F���>����+�‚�ƒ�����+�Ÿ�����+´ç����+è�����+­����'$���åæ��B��Ü��
                                    ! ��@é+¹ë�¶îš�3*»�¹Yò·�½+¹ô�¶�À÷¶�À+¹ë�¶�Àɶ�À¶�ݶ§+Áù™^+Àù:¹û�Æ�*`ý¹û�¶§i»þY�·:¹�¶W	¶W*´�ñÁ2™�8*´�ñÀ2:¹;�¹�Æ�¶W¹;�¹�Ð�¶W ¶W*´й‚�¶W.¶W*´�ñ¹�¶W(¶W*´�ñ¹�÷�:6	§�[	2¹�¹�Æ�¶W	2¹�¹�Ð�¶W ¶W	2¹�ÿ�¶W	¾dŸ�¶W„		¾¡ÿ£)¶W*¶·*`»�¹Y·�½¹�¶�Àɶ�À¶�ݶ§�2+Á™�++À:*`»�¹Yý·�½¹�¶�Àɶ�À¶�ݶ+¹�Æ�E*´�P™�**´+¹�¶!¶@§�?*»�¹Y&·�½*+¹�·(¶�À+¶�À¶�ݶ@§�*»�¹Y-·�½+¶ж�Ý·™�!/+¹ë�¶îš�!1+¹ë�¶îš�3+¹ë�¶î™�]+¹5�¾ž�&*`¦¶§*`+¹5�¶ª*¦¶@+¹6�¾ž�&*`®¶§*`+¹5�¶ª*®¶@*´�P™�$™�*´¶7:Æ�¶�Óž�	*¶@é+¹ë�¶îš�P*´�o+¹ë�¶:¹>�ÀD:Æ�*¹F�™� *I¶§*+¹K�¶@*I¶@*N¶O±����E���ö�=��Á�Â�Ã�<Â�?Å�FÆ�LÇ�VÈ�jË�vÌ�ƒÍ�ŒÎ�–Ï�ŸÐ�±Ñ�ÃÒ�ËÔ�ÚÕ�âÖ�ñ×�ùØÙ
                                    ! ÚÛ4Ü<ÝLÞVß_Ùjárâ{ä¡ç¨è®éÐìÙîàïôò÷0úaûküvý†þŽ˜£³»Ç	Ð
                                    ! Ýãò
                                    ! ".6?�F���Ž���@�‚�ƒ����@� Q���@�Ÿ����@è����@­����@R���LUST��v(UV��Ÿ�,WD��šX#��c¯��	®�"YZ�Ð�9��
                                      �5[\���Ž­��B��	��
                                    ��Å*´�o¹]�¹a�:§ª¹g�À�Ô:*´�o¹>�:ÀD:¹F�š€ �^¹l�š�T �N¹o�š�D �>¹r�š�4 �.¹u�š�$ �¹x�š� �
                                    ¹{�™»�TY·�V:	6
                                      ,¾6§�',
                                      2¹ë�¶:¶î™�	,
                                    --- 276,294 ----
                                      
                                      �<6
                                      ¾6§�**»�¹Y\·�½
                                    ! 2¹^�¶�Àɶ�À¶�ݶ„¡ÿÕ*‡¶@¹u�:Çÿ*+·F*œ¶@*µÐ*µE*µ�ñ±����E��*�J��Þ�à�	á�8ã�?ä�Hå�Sä�\ç�gé�mê�vë�~ì�‡í�î�˜ï� ð�©ñ�±ô�¸õ�Âö�Ëõ�Õù�Ýú�èû�òú�üþÿ�ÿ#-5=HR\
                                    ! d
                                    mv‚Ž•¨°¹Ëäéôû! ,#R%[&`'k(¢'¬,µ-º.Å/é.ó2û4	79;<!=&>�F��$���'�‚�ƒ����'z�2��?èr)��A�$���E�%���¸oæJ��»�$���¿�%���ÝJìK��à�$���å�%��#òL��$���%��=�'ML�@�$��E�%��mºNO�v±PQ�¹�]RS�é�-T� �	ô�"UV�
                                      	W�2�[�©XK�	c�I$��
                                      h�D%��µ�OYL�
                                    ! ½�6$��Â�1%���Z[��B���}�����!,¹u�N-Æ�
                                    *-¶\<„*^,¶�œ¬����E������B�C�D�E�G�H�F���*����!�‚�ƒ�����!�Ÿ�����!z�2���`�2��ao��B���t�����,¹u�N-Æ�*`-¶b*^¶@±����E������M�N�O�Q�R�F���*�����‚�ƒ������Ÿ�����z�2���`�2��de��B����
                                    ! ��b>,¹f�™�\*k¶,À�ª:*´l¹n�:6¾6§�"2¹u�¦�*q2¶„¡ÿÝ*¶\W*¶b,¹s�™�
                                    *v¶>,¹w�™�*¶,¹x�™�*“¶,¹y�™�
                                    *|¶>,¹}�™�*~¶,¹�™�‚*—¶,À�ª:*´l¹n�:6¾6§�W2¹p�:6	§�:	2¦�-¹”�™�*€2¶§�*‚2¶§�„		¾¡ÿÄ„¡ÿ¨,¹„�™�
                                    *‡¶>,¹ˆ�™�*›¶,¹‰�¾ž�#*®¶§*`,¹‰�¶ª*®¶@,¹Š�¾ž�#*¦¶§*`,¹Š�¶ª*¦¶@,¹‹�¾ž�"*µ¶4*`,¹‹�¶Œ*µ¶@,¹�¾ž�"*º¶4*`,¹�¶ª*º¶@,¹�:Æ�G*»�¹Y”·�½¹–�¶›¶�Àž¶�À¹ �¶£¦¶�À¹¨�¶£ɶ�À¶�ݶ±����E���ú�>��V�X�Y�[�\�%]�0^�?_�L]�Vc�^d�ef�ng�vh�xj�k�‰m�’n�šp�£q�«r�­t�¶u�¾w�Çx�Ïz�Õ{�à|�ë}�÷~�ý€!„.†1~<|F‹OŒWYbj“t”}•Œ–”™žš§›¶œ¾ŸÈ Ð¡ß¢ç¥ñ¦ù§¨«¬­a¯�F���˜���b�‚�ƒ����b�Ÿ����b«¬��_­����Kz�2��%�@p)��(�.$���-�)%���Õ�qz�2��à�fp)��ã�c$���è�^%���÷�E®)��ú�B¯��	�J’°��IJ��B��—�����ß*,¶±*»�¹YŠ·�½,¹³�¹�³�¶�Àɶ�À¶�ݶ,¹¶�Æ�*·,¹¶�¶,¹¸�™�
                                      »N§�R,¹½�™�
                                      ÀN§�B,¹Â�™�
                                      ÅN§�2,¹Ç�™�
                                    ! ÊN§�"»ÌY»�¹Yη�½,¶ÐÓ¶�À¶�Ý·Õ¿*»�¹YÖ·�½-¶�Àɶ�À¶�ݶ,¹Ø�™�*Û¶,¹Ü�™�*߶±����E���N���²�³�+´�4µ�B¸�K¹�Rº�[»�b¼�k½�r¾�{¿�‚Á�¡Â�¼Ã�ÅÄ�ÍÅ�ÖÆ�ÞÇ�F���R����ß�‚�ƒ�����ß�Ÿ�����ßàá��O�â���_�â���o�â����â���¡�>â���¬­��B���“�����+6§� *,2,¾d �§�¶ã„,¾¡ÿß±����E������Ë�Ì� Ë�*Î�F���>����+�‚�ƒ�����+�Ÿ�����+´ç����+è�����+­����'$���åæ��B��Ü��
                                    ! ��@é+¹ë�¶îš�3*»�¹Yò·�½+¹ô�¶�À÷¶�À+¹ë�¶�Àɶ�À¶�ݶ§+Áù™^+Àù:¹û�Æ�*`ý¹û�¶§i»þY�·:¹�¶W	¶W*´�ñÁ2™�8*´�ñÀ2:¹;�¹�Æ�¶W¹;�¹�Ð�¶W ¶W*´й‚�¶W.¶W*´�ñ¹�¶W(¶W*´�ñ¹�÷�:6	§�[	2¹�¹�Æ�¶W	2¹�¹�Ð�¶W ¶W	2¹�ÿ�¶W	¾dŸ�¶W„		¾¡ÿ£)¶W*¶·*`»�¹Y·�½¹�¶�Àɶ�À¶�ݶ§�2+Á™�++À:*`»�¹Yý·�½¹�¶�Àɶ�À¶�ݶ+¹�Æ�E*´�P™�**´+¹�¶!¶@§�?*»�¹Y&·�½*+¹�·(¶�À+¶�À¶�ݶ@§�*»�¹Y-·�½+¶ж�Ý·™�!/+¹ë�¶îš�!1+¹ë�¶îš�3+¹ë�¶î™�]+¹5�¾ž�&*`¦¶§*`+¹5�¶ª*¦¶@+¹6�¾ž�&*`®¶§*`+¹5�¶ª*®¶@*´�P™�$™�*´¶7:Æ�¶�Óž�	*¶@é+¹ë�¶îš�P*´�o+¹ë�¶:¹>�ÀD:Æ�*¹F�™� *I¶§*+¹K�¶@*I¶@*N¶O±����E���ö�=��Ò�Ó�Ô�<Ó�?Ö�F×�LØ�VÙ�jÜ�vÝ�ƒÞ�Œß�–à�Ÿá�±â�Ãã�Ëå�Úæ�âç�ñè�ùéê
                                    ! ëì4í<îLïVð_êjòró{õ¡ø¨ù®úÐýÙÿà�ô0ak
                                    v†Ž˜£³»ÇÐÝã ò"
                                    ! #$"%.&6)?+�F���Ž���@�‚�ƒ����@� Q���@�Ÿ����@è����@­����@R���LUST��v(UV��Ÿ�,WD��šX#��c¯��	®�"YZ�Ð�9��
                                      �5[\���Ž­��B��	��
                                    ��Å*´�o¹]�¹a�:§ª¹g�À�Ô:*´�o¹>�:ÀD:¹F�š€ �^¹l�š�T �N¹o�š�D �>¹r�š�4 �.¹u�š�$ �¹x�š� �
                                    ¹{�™»�TY·�V:	6
                                      ,¾6§�',
                                      2¹ë�¶:¶î™�	,
                                    *************** SourceFile�Driver.java�InnerClasses
                                    *** 297,303 ****
                                      
                                      ¡ÿØ	¹ƒ�š�×		¹†�½ì¹‰�À:
                                      ÁŽ™�A	¹�:§�(¹g�Àì:*¹‘�™�§�¶ã¹‘�šÿÔ§�{
                                    ! ¹”�:Æ�k*»�¹Y—·�½¶�À™¶�À¶�ݶ4*´�P™�**´¶!¶@**´¶7¶@§�#*»�¹Y&·�½*·(¶�À+¶�À¶�ݶ@*N¶O¹‘�šþR±����E���Š�"���� �,!�3#�=$�M%�]&�m'�}(�)�ž+�§,�±-�Æ.�Ò,�Ü2�æ3�ü45
                                    67856B<M=R>o?v@ƒA‘D±FºÄL�F���¢���Å�‚�ƒ����Å�Ÿ����Å´ç���Åè����Å­���´›œ��›���,ŽžŸ��3‡ \��§¡�#�	�ª�2$��
                                      �®�.%���ü�¾¢ç�
                                      
                                    �5£œ��� Q�M�m¤����‘�’��B��$��
                                      ���B*+µlL=*»¥Y·§·¨*»¬Y·®·¨*»ŽY¯·±·¨*»ŽY²·±·¨*»ŽY´·±·¨¸¶¸º¸»¸¾N»ÁYøÅ*´�R·Ë:6*´l¹Î�¾6§
                                    --- 296,302 ----
                                      
                                      ¡ÿØ	¹ƒ�š�×		¹†�½ì¹‰�À:
                                      ÁŽ™�A	¹�:§�(¹g�Àì:*¹‘�™�§�¶ã¹‘�šÿÔ§�{
                                    ! ¹”�:Æ�k*»�¹Y—·�½¶�À™¶�À¶�ݶ4*´�P™�**´¶!¶@**´¶7¶@§�#*»�¹Y&·�½*·(¶�À+¶�À¶�ݶ@*N¶O¹‘�šþR±����E���Š�"��/�0�1�,2�34�=5�M6�]7�m8�}9�:�ž<�§=�±>�Æ?�Ò=�ÜC�æD�üEF
                                    GHI5GBMMNROoPvQƒR‘U±Wº/Ä]�F���¢���Å�‚�ƒ����Å�Ÿ����Å´ç���Åè����Å­���´›œ��›���,ŽžŸ��3‡ \��§¡�#�	�ª�2$��
                                      �®�.%���ü�¾¢ç�
                                      
                                    �5£œ��� Q�M�m¤����‘�’��B��$��
                                      ���B*+µlL=*»¥Y·§·¨*»¬Y·®·¨*»ŽY¯·±·¨*»ŽY²·±·¨*»ŽY´·±·¨¸¶¸º¸»¸¾N»ÁYøÅ*´�R·Ë:6*´l¹Î�¾6§
                                    *************** S*´l¹Î�2:2:Ò¶î™�(*´�RÇ�*
                                    *** 330,414 ****
                                      „¡ÿØ„
                                    ¡ÿ**»"Y*´l*´�L*´�N*´Ð*´E·wµ*·z*}·é*¶*„¶�è*†¶ˆ*¶-*Š¶4*¶-*Œ¶�è*´l¹Ž�¾ž�$*¦¶§**´l¹Ž�¶ª*¦¶@*´l¹�¾ž�#*®¶4**´l¹�¶ª*®¶@*´#Æ�*¶4**´#¶@*¶@*´+Æ�*’¶4**´+¶�è*’¶@*“¶4*²•¸›»¡Y·£¶¤¶�è*“¶@™�*¨¶™�*ª¶™�*¬¶™�*®¶	™�*°¶
                                      ™�*²¶*¶-*´¶�è*´l¹¶�:6¾6
                                    §�>2:*»�¹Y¹·�½¹‚�¶�À÷¶�À¹�¶�Àɶ�À¶�ݶ„
                                    ¡ÿÁÀ¿:*¶-*»¶�è*´l¹½�:6
                                    ¾6§�.
                                    2:*»�¹YÁ·�½¹�³�¶�Àɶ�À¶�ݶ„
                                    
                                    ¡ÿÑÀÃ:*¶-*Ŷ�è*´�{¹�:
                                    §�¬
                                    ¹g�ÀÇ:¶É:¹Í�™�%*»�¹Yз�½¶Ò¶�ÀÓ¶�À¶�Ý·§�m*»�¹YÕ·�½¶Ò¶�Àɶ�À¶�ݶ4¹×�:§�0¹g�À�´:*»�¹YØ·�½¹�³�¶�Àɶ�À¶�ݶ¹‘�šÿÌ*Ú¶@
                                    ¹‘�šÿP*µ�{*¶-*ܶ�è*´l¹½�:
                                    6
                                    ¾6§�
                                    2:*¶Þ„¡ÿìÀÃ:
                                    *¶-*à¶�è*´l¹n�:6¾6§�2:*¶â„¡ÿìÀ¿:*¶-*ä¶@*¶æ*·é*¶-*ì¶�è*´l¹n�::6¾6§�²2:*·î™�'*»�¹Yñ·�½¹‚�¶�Àó¶�À¶�Ý·é§�@¹�¯�¹�³�:Æ�
                                    ¶îš�#*»�¹Yñ·�½¶�Àó¶�À¶�Ý·é:*»�¹Y¹‚�/.¶õ¸!·�½ù¶�À¶�ݶ*„¶ˆ*†¶ˆ*¶û*¶æ„¡ÿMÀ¿:½�ÔYýSYÿSYSYSYSYSY	SYSY
                                    SY	SY
                                      SYSYSY
                                    SYSYSYSYSY!SY#SY%SY'SN»Y*´T)·':»Y+·':¶hš�¶_™�J¶hš�¶_™�:6§�*»�¹Y-·�½-2¶�À¶�Ý»Y-2·'¸/„-¾¡ÿÕ§�K*»�¹Y3·�½¶ж�Ý·Ü*´ßÆ�%*´߸áš�*»�¹Yå·�½*´߶ж�Ý·*ç·é¬*´l¹½�:6¾6§�2:		Á™�*	À·5„¡ÿá¸9*µÐ*µE*µ�ñ¸>*´�W¹�:§�0¹g�ÀÁ:¶A*´�y¶E¶A*´T¶I*´l¶L¹‘�šÿÌ*µ�W¸>¸P¶V*´ßÆ�%*´߸áš�*»�¹Yå·�½*´߶ж�Ý·*ç·é¬N-¶Y*-¶^·Ü-¶_:Æ�#§�
                                    ! ¶c:¶cÇÿô²fj¶l¶o*´ßÆ�%*´߸áš�*»�¹Yå·�½*´߶ж�Ý·*ç·é¬:*´ßÆ�%*´߸áš�*»�¹Yå·�½*´߶ж�Ý·*ç·é¿�p‚…pp…ˆrp…ªsp…Õzp…�p…+‚p…Vp�Y�Û£Z
                                    z£Z¬£ZDî£Z Q£Zƒ×£Z
                                    	Ÿ£ZÑq£Z�Y�Û
                                    ��
                                    z
                                    ��¬
                                    ��Dî
                                    �� Q
                                    ��ƒ×
                                    ��
                                    	Ÿ
                                    ��Ñq
                                    ��£Û
                                    ����E��Æ1��S�T�V�	Z�[�]�-^�;_�Ic�Md�Qe�Uf�Ym�[p�eq�ip�lo�ns�€u�Žv�”x�Ÿy�¦z�µ|�¹}�Ä�Ï‚�Ôƒ�ÛŽ�â�ì‘•„
                                    †‡ ‰+Š3Œ>FQ^’i“”ˆ“‘–œ—¥˜³™¸›ÃÍžÑԜ՟à ç¡î¢ó¤ø¦§
                                    ¨§© ª'«.¬6¯A±K²O±R°S´^µe¶l·tº»„½¿œÀ¥Á¬Ã¯Ä¹ÃÆÆËÇÔÈÙÉáËìÍ÷ÏÑ
                                    ÓÕÖ*ÙOÜZÞ]àcáhâpé€è…ë†îíñ¡ð£ó±ôÒöÛ÷üù
                                    ! ú+ý4þDÿG�]kyˆ‰ª	¬
                                    ! Õ×
                                    �+-VWuzŽ‹‘£•ª¬·¾É Ð"Û#â%í&ô(ÿ*+-".+081A3N4W7^9a<l=v?@‹B–CžE©F¶G¹HÈGÓKÞLéNôOÿQ
                                    ! RT U+W6XAZL[W]b^m`xa†c‘d¬f·gÒiÝjëlömopr(s6uAvLxWyb{m||}¡~¤¯‚µƒ¸„Á…Ɔևۈú‹	Œ	'	3’	?“	P˜	]™	pš	z›	}œ	‹	œž	®Ÿ	´£	¿¤	§	Ũ	È©	˪	Ϋ	Ѭ	Ô­	×°	à±
                                    ! 0³
                                    ! 3´
                                    ! 6¶
                                    ! 9·
                                    ! <¸
                                    ! ?¹
                                    ! Bº
                                    ! E»
                                    ! H¼
                                    ! K¾
                                    ! N¿
                                    ! QÁ
                                    ! TÂ
                                    ! WÄ
                                    ! ZÅ
                                    ! ]Ç
                                    ! `È
                                    ! cÊ
                                    ! fË
                                    ! iÍ
                                    ! lÎ
                                    ! oÐ
                                    ! rÑ
                                    ! u°
                                    ! Õ
                                    ! „×
                                    ! ŠØ
                                    ! ŒÙ
                                    ! ŽÚ
                                    ! Û
                                    ! ’Ü
                                    ! ”Ý
                                    ! –Þ
                                    ! ˜×
                                    ! ›Ö
                                    ! ß
                                    ! ˆ
                                    ! µá
                                    ! Áå
                                    ! Ææ
                                    ! Ís
                                    ! ×ì
                                    ! Þí
                                    ! ïï
                                    ! óð
                                    ! ûõ÷Ž#‘;•BøDþTÿbp|	…“ž«ËÕîŽõÿ‘• 08 QŽXb‘z•!ƒ$‰)“*ž+­*°,º-Å.Ô-׎Þè‘
                                    �•
                                    /
                                    	5
                                    6
                                    7
                                    8
                                    9
                                    :
                                    =
                                    &>
                                    1?
                                    8@
                                    DA
                                    OB
                                    YC
                                    _E
                                    iF
                                    oH
                                    yI
                                    L
                                    ‚P
                                    ‹Q
                                    –R
                                    S
                                    ©T
                                    ´U
                                    ·Q
                                    ÁY
                                    ÊZ
                                    Õ[
                                    Ü\
                                    è]
                                    ó^
                                    öZ�>
                                    ! de#f'd*h.l5p<tDuKvOwWy[zc|p}y~‰‘‚žƒ¦„¶…¾ˆÅ‰ÍŠÕ‹ÝŽäìõ‘ý”•–#˜0™=šJ›Wœdq¡u¢}£ˆ¤“¥š¦Ë¤Õ¨Û¬ß­ç®ò¯ý°±%¯/³5¸9¹A»L¼O½[¾b¿lÀwÁˆÀŽÄ­Å¶Æ¹ÇÅÈæÆðÊø¼ÍÓÔÕÖ)×0Ø6Ö@ÚFâJãRä]åhæoçuåé…í‰î‘ð•ò™ùú¥û°ü³ý¾þÅ�Ìðþ
                                    )-R
                                    Y`fjýtz‡“ ™!Ÿ"¦#­$´%»&Â'É(Ð)×*Þ+å,ì-ó.ú/0125$628B9R:X;l<y;|:‰@ŸŽ¦°‘È•ÏAÑGÜHçIîJöKÿH	RTUVX],_8gDiMjRkViY]cphrksqŽx‚‘š•¡u£w¤|¨}°¶€»¾‚ÅÍ„Ö…ÛŽâì‘•ˆ
                                    ŠŽ ‘8•?–�F�� �ƒ��B�‚�ƒ����B�˜�,��	9t���[�‡uv�
                                    tuv�¬muv�D�±uv� �8uv�ƒ�[uv�
                                    	quv��n�twv�
                                    twv�¬mwv�D�±wv� �8wv�ƒ�[wv�
                                    	qwv��q�q$��
                                    t$��¬+$���}�e%��
                                    t%��¬+%���Ž�Txy�
                                    txy�¬!xy��”�Nz��
                                    tz��¬!z��œ�E{V�	¥�<|S�
                                      ¬�5}~�¯�
                                      ��Ã���]$€��	c��
                                      ‚�‚U��ù‚U�£�僄�4�Q…�8�
                                    ]�(�·��k� \�¬�&†‡�×�&†ˆ��&†‰�-�&†Š�¶�‹Œ�	µ��	¸Ž��
                                      Á��Ö�z \�	]d��	zG��
                                    	}D‘��	Å�ü’��	È�ù“��	Ë�ö”��	Î�ó•��	Ñ�ð–��	Ô�í—��	×�ê˜��	Ý�¢™��
                                      �$ š�m�"›œ�|�	›v�«�Jœ� � �8œ� �ƒ�œ� �0�(� �ƒ�� �
                                    n©��
                                    k«��
                                    h­��
                                    e¯��
                                    b±��	
                                    _³��
                                      
                                    &�äp)�
                                    )�á$��
                                    .�Ü%��
                                    
                                    8�Ȟ�2�
                                    D�¼Ÿç�
                                    ‹�uìK�
                                    Ž�3¯��
                                    “�. ��
                                    �WD�
                                    Ê�6òL�
                                    Í�3¯��
                                    Ò�. ��
                                    Ü�¡Z�ˆò¸)�‹�J$���E%��
                                    š�1¢�2�òˆ¿Ä�õ�:$��
                                    ú�5%���!£Ë�L�»¤œ�
                                    [�¥¦�b�–§¨�¶�B©œ�Å�!ªË�\«Ä�
                                    !�$��&�%��0�žË�]¬)�`�$��e�%��o�ž�2�°�Êp)�³�Ç­��¶�¾$��»�¹%��Å�¥ž�2�þ�/�î���’®y�Ñ�§®y�$�‚¯� �Ñ�§¯� �2�t°� �Ñ�§°� �U�1$��Ü�-«Ä�ß�*$��ä�%%��î�žË�	)�:›œ�8�!±v�¤�>†²�¶�,³´��
                                    ! ãä��B���Ø�����\<*¶µM>,¾6§�:,2:¶¹™�¸á™�™�§�<§�¶¼™�™�§�<„¡ÿÆ*¶¼™�	™�¬¬����E���&�	��¡�£�¥�§�©�«�2¯�D¥�M³�F���>����\¿� ����ZÀ����UÁÂ��	�D$���
                                    �@%����/š� ���ê�¿��B���A�����	*´Ã+¶ű����E���
                                    ! ���»�¼�F�������	�‚�ƒ�����	È���B�¿��B���A�����	*´Ã+¶ɱ����E���
                                    ! ���Ã�Ä�F�������	�‚�ƒ�����	È����ê�A��B���A�����*´�Jš�
                                    ! *´öʱ����E������Ì�Í�Ï�F��������‚�ƒ���B�ë��B���¼�����N*´�J™�*´Ã,¶ɧ�>»þY·ËN6§�
                                    - ¶W„²�Ch¡ÿï*´û�¹Y·Ì-¶Ð,¶�À¶�ݶɱ����E���"���Ö�×�Ú�Û� Ü�'Û�4Þ�Mà�F���4����N�‚�ƒ�����NÍ�����NÎ����3ÏV���$����ê�ë��B���[�����*,¶Ð*´�Jš�
                                    ! *´öʱ����E������ç�è�é�F��� �����‚�ƒ�����Í�����Î����ë��B���a�����*»�¹Y»·�½,¸Ò¶�ÀÕ¶�À¶�ݶ�è±����E���
                                    ! ���ï�ð�F��� �����‚�ƒ������Ÿ������ ���6�ë��B���M�����*,¸Ò¶§±����E���
                                    ! ���ö�
                                    ! ÷�F��� �����‚�ƒ������Ÿ������ ���6©��B��������I™�**´�Jš�#*»�¹Y»·�½,¸Ò¶�Àæ¶�À¶�ݶ�è§� *»�¹Y»·�½,¸Ò¶�Àæ¶�À¶�ݶб����E������þ�ÿ�+�H�F���*����I�‚�ƒ�����I�Ÿ�����I� �����I×���B�ë��B���J�����*,¶O±����E���
                                    ! ���
                                    ! ��F��� �����‚�ƒ������Ÿ������ ���B©��B���Ÿ�����K™�+*´�Jš�$*»�¹YØ·�½,¸Ò¶�Àæ¶�À¶�ݶ�è§�!*»�¹YØ·�½,¸Ò¶�Àæ¶�À¶�ݶб����E��������,�J�F���*����K�‚�ƒ�����K�Ÿ�����K� �����K×���	Úù��B��Ü����Ò*¶î™�¬Û*¶î™�¬ì*¶î™�¬î*¶î™�¬ð*¶î™�¬ò*¶î™�¬Ý*¶î™�¬ß*¶î™�¬á*¶î™�¬�*¶î™�¬*¶î™�¬*¶î™�¬*¶î™�¬*¶î™�¬-*¶î™�¬)*¶î™�¬/*¶î™�¬4*¶î™�¬Ž*¶î™�¬±*¶î™�¬¶*¶î™�¬Î*¶î™�¬Ø*¶î™�¬Ó*¶î™�¬Ý*¶î™�¬É*¶î™�¬â*¶î™�¬†*¶î™�¬ˆ*¶î™�¬Š*¶î™�¬Œ*¶î™�¬ç*¶î™�¬é*¶î™�¬î*¶î™�¬ú*¶î™�¬'*¶î™�¬ÿ*¶î™�¬*¶î™�¬	*¶î™�¬*¶î™�¬*¶î™�¬*¶î™�¬*¶î™�¬¬����E���²�,�����$�0�< �H!�T"�`#�l$�x%�„&�'�œ(�¨)�´*�À+�Ì,�Ø-�ä.�ð/�ü012 3,485D6P7\8h9t:€;Œ<˜=¤>°?¼@ÈAÔBàCìDøEG�F������x����	ãä��B���,�����¬����E������K�F�������Ðå���
                                    ! Ô�`��B���b�����*æè¸êæî¸êðò¸ê°����E���"���_�`�^�
                                    ! b�]�d�\�[�F���������
                                    ! ìí��B���’�����6*+¶õ>œ�*°»�¹Y*¶>¸!·�½,¶�À*+¶�Ó`¶:+,¸ê¶�À¶�Ý°����E������q�r�
                                    ! s�u� v�2u�F���*����6÷������6ø�����6ù����0ú���ƒ�¿�Í����Î�B���x�	����2»ûY»Y*´T+·'·ýM*»ÆY»þY»�Y,···
                                    ! µñ����E������{�|�1}�F��� ����2�‚�ƒ�����2����
                                    ��è�A��B���A�����*´ö*´ö±����E�������‚�ƒ�F��������‚�ƒ���*�`��B�������™+Ç�+°»þY·ËM>§�|+¶A6	Ÿ�@
                                      Ÿ�9
                                    Ÿ�2 ¡�¤�#¡�¤�¡�£�
                                    ,¶W§�$*»�¹Y·�½¸¶�À¶�À¶�Ý·„+¶�Ó¡ÿ‚,¶°����E���*�
                                    ! ��‡�ˆ�‹�Œ��Ž�^�h’�‰Œ�”–�F���4����™�‚�ƒ�����™È����‹V���„$����ož��12�Í����Î�B���Þ�����T*¶M,Æ�2»ûY+·ýN�¼:§�-¶!,¶$Y6œÿî-¶)§�»ÎY»�¹Y*·�½*¶�À¶�Ý·,¿±����E���*�
                                    ! ��›��Ÿ�¡�¢�£�'¢�3¥�:©�S«�F���H����T-������T±� ���M./���&�0���	ˆ���0�
                                    ! ˆ����12��Þ�¿��B���l�����,*´lÆ�*´l+¹3�§�²f»�¹Y4·�½+¶�À¶�ݶl±����E������®�¯�²�+´�F�������,�‚�ƒ�����,6����¿��B���l�����,*´lÆ�*´l+¹7�§�²f»�¹Y8·�½+¶�À¶�ݶl±����E������·�¸�»�+½�F�������,�‚�ƒ�����,:���ë�¿��B���\�����*´lÆ�*´l+¹;�§�
                                    ! ²f+¶l±����E������À�Á�Ä�Æ�F��������‚�ƒ�����<���78�Í����Î�B���Í�����U»Y+¹�=·'M»Y*´�R+¹?�.²@¶õ·'N,¶h™�%*»�¹YC·�½,¶ж�Ý·é,-*´�c*´�h¸E±����E���6�
                                    ��Î�Í�Ð�Ñ�'Ð�*Ï�+Ò�2Ó�GÔ�IÕ�MÖ�QÔ�TØ�F���*����U�‚�ƒ�����UÊI���DJ� ��+�*K� ��
                                    ! GH�Í����Î�B��h�����Æ+¶hš�#+¶mš�»ÎY»�¹YL·�½+¶ж�Ý·,¿*¶µ:6§�2¶¹™�g™�{-Æ�-2¶9¹N�š�f»Y+2¶9·':¶hš�¶_™�2¸E§�5»ÎY»�¹YL·�½¶ж�Ý·,¿2»Y+2¶9·'¸O„¾¡ÿq±����E���B���á�â�'å�-æ�3ç�>è�Fé�Wê�\ë�dê�iì�yí�ˆð�¢õ�ºæ�Åø�F���H����ÆS� �����ÆT� ����ÆU�����ÆV�*��-�™WÂ��0�•$���i�9X� ��
                                    ! QR�Í����Î�B���À�����:»YY*·[M»ûY+·ýN�¼:§�-¶\,¶$Y6œÿî,¶_-¶`±����E���&�	����	����%�1�5�9	�F���H����:T� �����:a� ��	�1./���(�
                                    ���	���.�����!}2��ë�A�Í����Î�B��:����N»bY»dY*·f·iL*´l¹½�M>,¾6§�,2:+¹�³�¹j�W„¡ÿå*´l¹n�N6-¾6§-2:¹�Ç�+¹�¹j�W§�'+¹�¹�¹�¶�Ó`¶:¹j�W¹ð�:6¾6	§�+2¹^�2¹j�W„	¡ÿã¹ê�:6	¾6
                                      §�}	2:»þY·Ë:¹1�¶W(¶W¹l�:
                                    6
                                    ¾6§�$ž�¶W
                                    2¹m�¶W„¡ÿÛ)¶W+¶¹j�W„		
                                      ¡ÿ‚„¡þé*n¶*„¶�è*p¶ˆ*¶-*r¶4+¹]�¹a�:66§†¹g�À�Ô:+¹>�Àg:¶A¸t6		Ÿ�3™�*z¶@*»�¹Y|·�½	¶~ɶ�À¶�ݶ46	6*»�¹Y·�½¶�Àɶ�À¶�ݶ4Á�´™�*ƒ¶§¤Á�ª™�¹*k¶À�ª:
                                      *
                                    --- 329,413 ----
                                      „¡ÿØ„
                                    ¡ÿ**»"Y*´l*´�L*´�N*´Ð*´E·wµ*·z*}·é*¶*„¶�è*†¶ˆ*¶-*Š¶4*¶-*Œ¶�è*´l¹Ž�¾ž�$*¦¶§**´l¹Ž�¶ª*¦¶@*´l¹�¾ž�#*®¶4**´l¹�¶ª*®¶@*´#Æ�*¶4**´#¶@*¶@*´+Æ�*’¶4**´+¶�è*’¶@*“¶4*²•¸›»¡Y·£¶¤¶�è*“¶@™�*¨¶™�*ª¶™�*¬¶™�*®¶	™�*°¶
                                      ™�*²¶*¶-*´¶�è*´l¹¶�:6¾6
                                    §�>2:*»�¹Y¹·�½¹‚�¶�À÷¶�À¹�¶�Àɶ�À¶�ݶ„
                                    ¡ÿÁÀ¿:*¶-*»¶�è*´l¹½�:6
                                    ¾6§�.
                                    2:*»�¹YÁ·�½¹�³�¶�Àɶ�À¶�ݶ„
                                    
                                    ¡ÿÑÀÃ:*¶-*Ŷ�è*´�{¹�:
                                    §�¬
                                    ¹g�ÀÇ:¶É:¹Í�™�%*»�¹Yз�½¶Ò¶�ÀÓ¶�À¶�Ý·§�m*»�¹YÕ·�½¶Ò¶�Àɶ�À¶�ݶ4¹×�:§�0¹g�À�´:*»�¹YØ·�½¹�³�¶�Àɶ�À¶�ݶ¹‘�šÿÌ*Ú¶@
                                    ¹‘�šÿP*µ�{*¶-*ܶ�è*´l¹½�:
                                    6
                                    ¾6§�
                                    2:*¶Þ„¡ÿìÀÃ:
                                    *¶-*à¶�è*´l¹n�:6¾6§�2:*¶â„¡ÿìÀ¿:*¶-*ä¶@*¶æ*·é*¶-*ì¶�è*´l¹n�::6¾6§�²2:*·î™�'*»�¹Yñ·�½¹‚�¶�Àó¶�À¶�Ý·é§�@¹�¯�¹�³�:Æ�
                                    ¶îš�#*»�¹Yñ·�½¶�Àó¶�À¶�Ý·é:*»�¹Y¹‚�/.¶õ¸!·�½ù¶�À¶�ݶ*„¶ˆ*†¶ˆ*¶û*¶æ„¡ÿMÀ¿:½�ÔYýSYÿSYSYSYSYSY	SYSY
                                    SY	SY
                                      SYSYSY
                                    SYSYSYSYSY!SY#SY%SY'SN»Y*´T)·':»Y+·':¶hš�¶_™�J¶hš�¶_™�:6§�*»�¹Y-·�½-2¶�À¶�Ý»Y-2·'¸/„-¾¡ÿÕ§�K*»�¹Y3·�½¶ж�Ý·Ü*´ßÆ�%*´߸áš�*»�¹Yå·�½*´߶ж�Ý·*ç·é¬*´l¹½�:6¾6§�2:		Á™�*	À·5„¡ÿá¸9*µÐ*µE*µ�ñ¸>*´�W¹�:§�0¹g�ÀÁ:¶A*´�y¶E¶A*´T¶I*´l¶L¹‘�šÿÌ*µ�W¸>¸P¶V*´ßÆ�%*´߸áš�*»�¹Yå·�½*´߶ж�Ý·*ç·é¬N-¶Y*-¶^·Ü-¶_:Æ�#§�
                                    ! ¶c:¶cÇÿô²fj¶l¶o*´ßÆ�%*´߸áš�*»�¹Yå·�½*´߶ж�Ý·*ç·é¬:*´ßÆ�%*´߸áš�*»�¹Yå·�½*´߶ж�Ý·*ç·é¿�p‚…pp…ˆrp…ªsp…Õzp…�p…+‚p…Vp�Y�Û£Z
                                    z£Z¬£ZDî£Z Q£Zƒ×£Z
                                    	Ÿ£ZÑq£Z�Y�Û
                                    ��
                                    z
                                    ��¬
                                    ��Dî
                                    �� Q
                                    ��ƒ×
                                    ��
                                    	Ÿ
                                    ��Ñq
                                    ��£Û
                                    ����E��Æ1��d�e�g�	k�l�n�-o�;p�It�Mu�Qv�Uw�Y~�[�e‚�i�l€�n„�€†�Ž‡�”‰�ŸŠ�¦‹�µ�¹Ž�Ä’�Ï“�Ô”�ÛŸ�â¡�좦•
                                    —˜ š+›3>žF Q¡^£i¤¥ˆ¤‘§œ¨¥©³ª¸¬Ã®Í¯Ñ®Ô­Õ°à±ç²î³óµø·¸
                                    ¹¸º »'¼.½6ÀAÂKÃOÂRÁSÅ^ÆeÇlÈtËÌ„ÎМѥҬԯչÔÆ×ËØÔÙÙÚáÜìÞ÷àâ
                                    äæç*êOíZï]ñcòhópú€ù…ü†ÿþ¡£±ÒÛü
                                    ! 
                                    ! +4DG]kyˆ‰ª¬Õ×� !+#-$V&W'u)zŸ¡‹¢£¦ª*¬-·.¾0É1Ð3Û4â6í7ô9ÿ;<>"?+A8BADNEWH^JaMlNvPQ‹S–TžV©W¶X¹YÈXÓ\Þ]é_ô`ÿb
                                    ! ce f+h6iAkLlWnbomqxr†t‘u¬w·xÒzÝ{ë}ö~€ƒ(„6†A‡L‰WŠbŒm|Ž¡¤’¯“µ”¸•Á–Æ—Ö˜Û™úœ		' 	3£	?¤	P©	]ª	p«	z¬	}­	‹®	œ¯	®°	´´	¿µ	¸	Ź	Ⱥ	Ë»	μ	ѽ	Ô¾	×Á	àÂ
                                    ! 0Ä
                                    ! 3Å
                                    ! 6Ç
                                    ! 9È
                                    ! <É
                                    ! ?Ê
                                    ! BË
                                    ! EÌ
                                    ! HÍ
                                    ! KÏ
                                    ! NÐ
                                    ! QÒ
                                    ! TÓ
                                    ! WÕ
                                    ! ZÖ
                                    ! ]Ø
                                    ! `Ù
                                    ! cÛ
                                    ! fÜ
                                    ! iÞ
                                    ! lß
                                    ! oá
                                    ! râ
                                    ! uÁ
                                    ! æ
                                    ! „è
                                    ! Šé
                                    ! ΐ
                                    ! Žë
                                    ! ì
                                    ! ’í
                                    ! Ӕ
                                    ! –ï
                                    ! ˜è
                                    ! ݍ
                                    ! ð
                                    ! –
                                    ! µò
                                    ! Áö
                                    ! Æ÷
                                    ! Í„
                                    ! ×ý
                                    ! Þþ
                                    ! ï�
                                    ! ó
                                    ! ûŸ¡#¢;¦B	DTbp|…“!ž%«'Ë)Õ*îŸõ¡ÿ¢¦+ .0081QŸX¡b¢z¦2ƒ5‰:“;ž<­;°=º>Å?Ô>ןÞ¡è¢
                                    �¦
                                    @
                                    	F
                                    G
                                    H
                                    I
                                    J
                                    K
                                    N
                                    &O
                                    1P
                                    8Q
                                    DR
                                    OS
                                    YT
                                    _V
                                    iW
                                    oY
                                    yZ
                                    ]
                                    ‚a
                                    ‹b
                                    –c
                                    d
                                    ©e
                                    ´f
                                    ·b
                                    Áj
                                    Êk
                                    Õl
                                    Üm
                                    èn
                                    óo
                                    ök�O
                                    ! uv#w'u*y.}5<…D†K‡OˆWŠ[‹cpŽy‰‘“ž”¦•¶–¾™ÅšÍ›ÕœÝŸä ì¡õ¢ý¥¦§#©0ª=«J¬W­d®q²u³}´ˆµ“¶š·ËµÕ¹Û½ß¾ç¿òÀýÁÂ%À/Ä5É9ÊAÌLÍOÎ[ÏbÐlÑw҈юխֶ׹ØÅÙæ×ðÛøÍÞäåæç)è0é6ç@ëFóJôRõ]öh÷oøuöú…þ‰ÿ‘•™
                                    ! ¥°
                                    ³¾ÅÌðþ
                                    )-RY`!f#jt%z-.‡/0“1™2Ÿ3¦4­5´6»7Â8É9Ð:×;Þ<å=ì>ó?ú@ABC-F$G2IBJRKXLlMyL|K‰QŸŸ¦¡°¢È¦ÏRÑXÜYçZî[ö\ÿY	cefgin,p8xDzM{R|VzYnchƒk„qŸx¡‚¢š¦¡†£ˆ¤¨Ž°¶‘»’¾“Å’Í•Ö–ÛŸâ¡ì¢¦™
                                    ›Ÿ¡ ¢8¦?§�F�� �ƒ��B�‚�ƒ����B�˜�,��	9t���[�‡uv�
                                    tuv�¬muv�D�±uv� �8uv�ƒ�[uv�
                                    	quv��n�twv�
                                    twv�¬mwv�D�±wv� �8wv�ƒ�[wv�
                                    	qwv��q�q$��
                                    t$��¬+$���}�e%��
                                    t%��¬+%���Ž�Txy�
                                    txy�¬!xy��”�Nz��
                                    tz��¬!z��œ�E{V�	¥�<|S�
                                      ¬�5}~�¯�
                                      ��Ã���]$€��	c��
                                      ‚�‚U��ù‚U�£�僄�4�Q…�8�
                                    ]�(�·��k� \�¬�&†‡�×�&†ˆ��&†‰�-�&†Š�¶�‹Œ�	µ��	¸Ž��
                                      Á��Ö�z \�	]d��	zG��
                                    	}D‘��	Å�ü’��	È�ù“��	Ë�ö”��	Î�ó•��	Ñ�ð–��	Ô�í—��	×�ê˜��	Ý�¢™��
                                      �$ š�m�"›œ�|�	›v�«�Jœ� � �8œ� �ƒ�œ� �0�(� �ƒ�� �
                                    n©��
                                    k«��
                                    h­��
                                    e¯��
                                    b±��	
                                    _³��
                                      
                                    &�äp)�
                                    )�á$��
                                    .�Ü%��
                                    
                                    8�Ȟ�2�
                                    D�¼Ÿç�
                                    ‹�uìK�
                                    Ž�3¯��
                                    “�. ��
                                    �WD�
                                    Ê�6òL�
                                    Í�3¯��
                                    Ò�. ��
                                    Ü�¡Z�ˆò¸)�‹�J$���E%��
                                    š�1¢�2�òˆ¿Ä�õ�:$��
                                    ú�5%���!£Ë�L�»¤œ�
                                    [�¥¦�b�–§¨�¶�B©œ�Å�!ªË�\«Ä�
                                    !�$��&�%��0�žË�]¬)�`�$��e�%��o�ž�2�°�Êp)�³�Ç­��¶�¾$��»�¹%��Å�¥ž�2�þ�/�î���’®y�Ñ�§®y�$�‚¯� �Ñ�§¯� �2�t°� �Ñ�§°� �U�1$��Ü�-«Ä�ß�*$��ä�%%��î�žË�	)�:›œ�8�!±v�¤�>†²�¶�,³´��
                                    ! ãä��B���Ø�����\<*¶µM>,¾6§�:,2:¶¹™�¸á™�™�§�<§�¶¼™�™�§�<„¡ÿÆ*¶¼™�	™�¬¬����E���&�	��²�´�¶�¸�º�¼�2À�D¶�MÄ�F���>����\¿� ����ZÀ����UÁÂ��	�D$���
                                    �@%����/š� ���ê�¿��B���A�����	*´Ã+¶ű����E���
                                    ! ���Ì�Í�F�������	�‚�ƒ�����	È���B�¿��B���A�����	*´Ã+¶ɱ����E���
                                    ! ���Ô�Õ�F�������	�‚�ƒ�����	È����ê�A��B���A�����*´�Jš�
                                    ! *´öʱ����E������Ý�Þ�à�F��������‚�ƒ���B�ë��B���¼�����N*´�J™�*´Ã,¶ɧ�>»þY·ËN6§�
                                    - ¶W„²�Ch¡ÿï*´û�¹Y·Ì-¶Ð,¶�À¶�ݶɱ����E���"���ç�è�ë�ì� í�'ì�4ï�Mñ�F���4����N�‚�ƒ�����NÍ�����NÎ����3ÏV���$����ê�ë��B���[�����*,¶Ð*´�Jš�
                                    ! *´öʱ����E������ø�ù�ú�F��� �����‚�ƒ�����Í�����Î����ë��B���a�����*»�¹Y»·�½,¸Ò¶�ÀÕ¶�À¶�ݶ�è±����E���
                                    ! ������F��� �����‚�ƒ������Ÿ������ ���6�ë��B���M�����*,¸Ò¶§±����E���
                                    ! ����
                                    ! �F��� �����‚�ƒ������Ÿ������ ���6©��B��������I™�**´�Jš�#*»�¹Y»·�½,¸Ò¶�Àæ¶�À¶�ݶ�è§� *»�¹Y»·�½,¸Ò¶�Àæ¶�À¶�ݶб����E��������+�H�F���*����I�‚�ƒ�����I�Ÿ�����I� �����I×���B�ë��B���J�����*,¶O±����E���
                                    ! �����F��� �����‚�ƒ������Ÿ������ ���B©��B���Ÿ�����K™�+*´�Jš�$*»�¹YØ·�½,¸Ò¶�Àæ¶�À¶�ݶ�è§�!*»�¹YØ·�½,¸Ò¶�Àæ¶�À¶�ݶб����E������#�$�,'�J)�F���*����K�‚�ƒ�����K�Ÿ�����K� �����K×���	Úù��B��Ü����Ò*¶î™�¬Û*¶î™�¬ì*¶î™�¬î*¶î™�¬ð*¶î™�¬ò*¶î™�¬Ý*¶î™�¬ß*¶î™�¬á*¶î™�¬�*¶î™�¬*¶î™�¬*¶î™�¬*¶î™�¬*¶î™�¬-*¶î™�¬)*¶î™�¬/*¶î™�¬4*¶î™�¬Ž*¶î™�¬±*¶î™�¬¶*¶î™�¬Î*¶î™�¬Ø*¶î™�¬Ó*¶î™�¬Ý*¶î™�¬É*¶î™�¬â*¶î™�¬†*¶î™�¬ˆ*¶î™�¬Š*¶î™�¬Œ*¶î™�¬ç*¶î™�¬é*¶î™�¬î*¶î™�¬ú*¶î™�¬'*¶î™�¬ÿ*¶î™�¬*¶î™�¬	*¶î™�¬*¶î™�¬*¶î™�¬*¶î™�¬*¶î™�¬¬����E���²�,��,�-�.�$/�00�<1�H2�T3�`4�l5�x6�„7�8�œ9�¨:�´;�À<�Ì=�Ø>�ä?�ð@�üABC D,E8FDGPH\IhJtK€LŒM˜N¤O°P¼QÈRÔSàTìUøVX�F������x����	ãä��B���,�����¬����E������\�F�������Ðå���
                                    ! Ô�`��B���b�����*æè¸êæî¸êðò¸ê°����E���"���p�q�o�
                                    ! s�n�u�m�l�F���������
                                    ! ìí��B���’�����6*+¶õ>œ�*°»�¹Y*¶>¸!·�½,¶�À*+¶�Ó`¶:+,¸ê¶�À¶�Ý°����E������‚�ƒ�
                                    ! „�†� ‡�2†�F���*����6÷������6ø�����6ù����0ú���ƒ�¿�Í����Î�B���x�	����2»ûY»Y*´T+·'·ýM*»ÆY»þY»�Y,···
                                    ! µñ����E������Œ��1Ž�F��� ����2�‚�ƒ�����2����
                                    ��è�A��B���A�����*´ö*´ö±����E������’�“�”�F��������‚�ƒ���*�`��B�������™+Ç�+°»þY·ËM>§�|+¶A6	Ÿ�@
                                      Ÿ�9
                                    Ÿ�2 ¡�¤�#¡�¤�¡�£�
                                    ,¶W§�$*»�¹Y·�½¸¶�À¶�À¶�Ý·„+¶�Ó¡ÿ‚,¶°����E���*�
                                    ! ��˜�™�œ��ž�Ÿ�^ �h£�‰�”§�F���4����™�‚�ƒ�����™È����‹V���„$����ož��12�Í����Î�B���Þ�����T*¶M,Æ�2»ûY+·ýN�¼:§�-¶!,¶$Y6œÿî-¶)§�»ÎY»�¹Y*·�½*¶�À¶�Ý·,¿±����E���*�
                                    ! ��¬�®�°�²�³�´�'³�3¶�:º�S¼�F���H����T-������T±� ���M./���&�0���	ˆ���0�
                                    ! ˆ����12��Þ�¿��B���l�����,*´lÆ�*´l+¹3�§�²f»�¹Y4·�½+¶�À¶�ݶl±����E������¿�À�Ã�+Å�F�������,�‚�ƒ�����,6����¿��B���l�����,*´lÆ�*´l+¹7�§�²f»�¹Y8·�½+¶�À¶�ݶl±����E������È�É�Ì�+Î�F�������,�‚�ƒ�����,:���ë�¿��B���\�����*´lÆ�*´l+¹;�§�
                                    ! ²f+¶l±����E������Ñ�Ò�Õ�×�F��������‚�ƒ�����<���78�Í����Î�B���Í�����U»Y+¹�=·'M»Y*´�R+¹?�.²@¶õ·'N,¶h™�%*»�¹YC·�½,¶ж�Ý·é,-*´�c*´�h¸E±����E���6�
                                    ��ß�Þ�á�â�'á�*à�+ã�2ä�Gå�Iæ�Mç�Qå�Té�F���*����U�‚�ƒ�����UÊI���DJ� ��+�*K� ��
                                    ! GH�Í����Î�B��h�����Æ+¶hš�#+¶mš�»ÎY»�¹YL·�½+¶ж�Ý·,¿*¶µ:6§�2¶¹™�g™�{-Æ�-2¶9¹N�š�f»Y+2¶9·':¶hš�¶_™�2¸E§�5»ÎY»�¹YL·�½¶ж�Ý·,¿2»Y+2¶9·'¸O„¾¡ÿq±����E���B���ò�ó�'ö�-÷�3ø�>ù�Fú�Wû�\ü�dû�iý�yþ�ˆ�¢�º÷�Å	�F���H����ÆS� �����ÆT� ����ÆU�����ÆV�*��-�™WÂ��0�•$���i�9X� ��
                                    ! QR�Í����Î�B���À�����:»YY*·[M»ûY+·ýN�¼:§�-¶\,¶$Y6œÿî,¶_-¶`±����E���&�	���	����%�1�5�9�F���H����:T� �����:a� ��	�1./���(�
                                    ���	���.�����!}2��ë�A�Í����Î�B��:����N»bY»dY*·f·iL*´l¹½�M>,¾6§�,2:+¹�³�¹j�W„¡ÿå*´l¹n�N6-¾6§-2:¹�Ç�+¹�¹j�W§�'+¹�¹�¹�¶�Ó`¶:¹j�W¹ð�:6¾6	§�+2¹^�2¹j�W„	¡ÿã¹ê�:6	¾6
                                      §�}	2:»þY·Ë:¹1�¶W(¶W¹l�:
                                    6
                                    ¾6§�$ž�¶W
                                    2¹m�¶W„¡ÿÛ)¶W+¶¹j�W„		
                                      ¡ÿ‚„¡þé*n¶*„¶�è*p¶ˆ*¶-*r¶4+¹]�¹a�:66§†¹g�À�Ô:+¹>�Àg:¶A¸t6		Ÿ�3™�*z¶@*»�¹Y|·�½	¶~ɶ�À¶�ݶ46	6*»�¹Y·�½¶�Àɶ�À¶�ݶ4Á�´™�*ƒ¶§¤Á�ª™�¹*k¶À�ª:
                                      *
                                    *************** u°
                                    *** 429,440 ****
                                      ¹Š�™�*|¶¹Š�:
                                      6
                                      ¾6§�8
                                    ! 2:
                                    
                                    ¹5�¾ž�#*¦¶§*
                                    ¹5�¶ª*¦¶@„¡ÿÇ*‹¶@¹‘�šýv™�*z¶@*¶@*¶æ±����E��~�_�����#�(�8�A �K!�U"�[#�e$�x'�œ)�¥*�°+�Æ*�Ð-�Ù.�ä/�ë0�ô12	345"6+8;4E:M;[.e!oAvE~F…G‰H‘JžL¡M¤O§P³QÀSËTÒU×VßXûYþZ]^&_1a9bAcHdNetf~g¤i®j¶lÀmÈoÒpÚräsïv÷wþx	y/zU{_|g}n~ŸÀÊ‚Ò†Û‡æˆí‰øŠ‹Œ‡"‘*O4”9•A˜IšM›�F��V�"��N�‚�ƒ���>�8��4«Ä���%$��� �!%���(�žË��K¬)��N!$���R%���[
                                      ž�2��¥�ÀòL��¨�(¯���­�# ��	�Ù�ŒìK��Ü�‰¯��	�á�„ ��
                                      �ë�pD��ô�gV��I�û#�
                                    �0‘���+’��ž°›œ�¡­“�¤ª”��³w•��ÀjŒ¬�Ë_–�	H�§—�2�
                                      þ�Ô˜á�
                                      n�R™�6�Û�O´ç�
                                    ! Þ�D$��ã�?%��í�+� Q�
                                    �š›��B��&�����‚*´�€+¹>�À?:Ç�»�}Y·�:*´�€+¹j�W¹>�À?:Ç�»�}Y·�:¹j�W,¹>�Àb:Ç�»œY·ž:,¹j�W-¹Å�W±����E���:���½�¾�¿�À�*Ã�8Ä�=Å�FÆ�RÉ�_Ê�dË�mÌ�xÎ�Ï�F���R����‚�‚�ƒ�����‚Ÿ�2����‚ ¡����‚¢¬����‚£Ë���s¤�8��8�J¥�8��_�#¦�*��|�A��B������*´l¹n�L=+¾>§î+2:¹u�:§�*²§¹�¯�·¬¹u�:Çÿã¹ð�:6¾6§�22:¹N�¹�£�:		Æ�*	²®¹�¯�·¬„¡ÿ͹ê�:6¾6§�¯2:		¹;�¹�£�:
                                      
                                      �*
                                      ²±	¹�¯�·¬	¹l�:6§�22:
                                    
                                    ¹�¹�£�:Æ�*²´	¹�¯�·¬„¾¡ÿÌ	¹·�:6
                                    ¾6§�
                                    2:*²¸	¹�¯�·¬„
                                    
                                    ¡ÿà„¡ÿP¹ä�:6¾6	§�Ž2:
                                    --- 428,439 ----
                                      ¹Š�™�*|¶¹Š�:
                                      6
                                      ¾6§�8
                                    ! 2:
                                    
                                    ¹5�¾ž�#*¦¶§*
                                    ¹5�¶ª*¦¶@„¡ÿÇ*‹¶@¹‘�šýv™�*z¶@*¶@*¶æ±����E��~�_��!�)�*�#+�(,�8*�A1�K2�U3�[4�e5�x8�œ:�¥;�°<�Æ;�Ð>�Ù?�ä@�ëA�ôBC	DEF"G+I;EEKML[?e2oRvV~W…X‰Y‘[ž]¡^¤`§a³bÀdËeÒf×gßiûjþkno&p1r9sAtHuNvtw~x¤z®{¶}À~È€ÒÚƒä„ï‡÷ˆþ‰	Š/‹UŒ_gŽnŸÀ’Ê“Ò—Û˜æ™íšø›œ˜"¢*`4¥9¦A©I«M¬�F��V�"��N�‚�ƒ���>�8��4«Ä���%$��� �!%���(�žË��K¬)��N!$���R%���[
                                      ž�2��¥�ÀòL��¨�(¯���­�# ��	�Ù�ŒìK��Ü�‰¯��	�á�„ ��
                                      �ë�pD��ô�gV��I�û#�
                                    �0‘���+’��ž°›œ�¡­“�¤ª”��³w•��ÀjŒ¬�Ë_–�	H�§—�2�
                                      þ�Ô˜á�
                                      n�R™�6�Û�O´ç�
                                    ! Þ�D$��ã�?%��í�+� Q�
                                    �š›��B��&�����‚*´�€+¹>�À?:Ç�»�}Y·�:*´�€+¹j�W¹>�À?:Ç�»�}Y·�:¹j�W,¹>�Àb:Ç�»œY·ž:,¹j�W-¹Å�W±����E���:���Î�Ï�Ð�Ñ�*Ô�8Õ�=Ö�F×�RÚ�_Û�dÜ�mÝ�xß�à�F���R����‚�‚�ƒ�����‚Ÿ�2����‚ ¡����‚¢¬����‚£Ë���s¤�8��8�J¥�8��_�#¦�*��|�A��B������*´l¹n�L=+¾>§î+2:¹u�:§�*²§¹�¯�·¬¹u�:Çÿã¹ð�:6¾6§�22:¹N�¹�£�:		Æ�*	²®¹�¯�·¬„¡ÿ͹ê�:6¾6§�¯2:		¹;�¹�£�:
                                      
                                      �*
                                      ²±	¹�¯�·¬	¹l�:6§�22:
                                    
                                    ¹�¹�£�:Æ�*²´	¹�¯�·¬„¾¡ÿÌ	¹·�:6
                                    ¾6§�
                                    2:*²¸	¹�¯�·¬„
                                    
                                    ¡ÿà„¡ÿP¹ä�:6¾6	§�Ž2:
                                    *************** u°
                                    *** 442,460 ****
                                      ¹»�:6¾6
                                    §�22:¹�¹�£�:Æ�*²¼
                                      ¹�¯�·¬„
                                    ¡ÿÍ
                                      ¹¿�:6
                                    ¾6§�
                                    2:*²À
                                    ! ¹�¯�·¬„
                                    
                                    ¡ÿà„	¡ÿq„¡þ±����E���þ�?��Ö�
                                    ! ×�Ø�Û�#Ý�5Ü�>Û�Cà�Lá�Wâ�^å�læ�qç�wè�€ç�ƒá�ì�–í�¡î�¨ò�¶ó�»ô�Áõ�Êô�Í÷�Öø�Üü�ãý�ñþ�öÿ�ü	�ÿø		'	.		4	
                                    ! =		@	JíT	]	h	o	x	ƒ	Š	˜		£	¬	¯	¹	"Â	#Í	$Ô	%Ú	&ã	%æ	#ð	ú×	*�F��t�%���‚�ƒ���
                                      ùp)��ö$���ó%���ãÃ�2�� �#w�2��L®òL��O�>¯���T�9 ���^�%ÄZ��l�Å�2�	�–dìK��™�»¯���ž�¶ ���¨�¢D�	�¶�”=�2�
                                      �Ö�t�û#��Ù�:‘���ã�%&'�
                                    �ñ�Æ�2��.	)��+‘��
                                    $�&’��.��2�]�æJ�`�š¯��e�• ��	o�Çm�
                                      x�x�û#�{�>‘��€�9’��
                                    Š�%&'�˜�Æ�2�Â�.	)�Å�+‘��
                                    Ê�&’��Ô��2��HI��B��Ñ��
                                    ��_*´�€+¹>�À?N-ÆO*ȶ4-¹]�¹a�:§%¹g�À�´:*`»�¹YÊ·�½¹�³�¶�Àɶ�À¶�ݶ4-¹>�À?:¹]�¹a�:§Ä¹g�À¨:*`»�¹YÌ·�½¶ζ�Àɶ�À¶�ݶ4¹>�Àb:		¹a�:
                                      §i
                                      ¹g�Àg:Á�ª™�,*`»�¹YÑ·�½À�ª¹�¶�Àɶ�À¶�ݶ§,ÁO™�JÀO:*`»�¹YÑ·�½¹Ó�¹�¶�Àɶ�ÀÔ¶�À¹^�¶�Àɶ�À¶�ݶ§�ÝÁ2™�tÀ2:*`»�¹YÑ·�½¹Ö�¹�¶�Àɶ�À׶�À¹1�¶�Àɶ�ÀÙ¶�À¹E�¶�Àɶ�ÀÛ¶�À¹Ý�¶�Àɶ�À¶�ݶ§�dÁh™�\Àh:*`»�¹YÑ·�½¹Þ�¹�¶�Àɶ�ÀÙ¶�À¹ß�¶�Àɶ�ÀÛ¶�À¹à�¶�Àɶ�À¶�ݶ
                                    ! ¹‘�šþ“*`á¶@¹‘�šþ8*`ã¶@¹‘�šý×*ȶ@±����E���Â�0��	.�	/�	0�	2�'	4�*	5�6	6�Y	7�f	8�t	9�w	:�ƒ	;�¤	<�²	=�»	>�¾	?�Ê	@�Ò	A�à	B�õ	A�û	D	E
                                    ! 	F	G,	HD	FJ	JR	KY	Lg	M{	N	O¥	P½	LÃ	RË	SÒ	Tà	Uô	V		W!	T$	>.	Z8	9B	\L	4V	_^	a�F���˜���_�‚�ƒ����_Ã�2���_�Ÿ���Q¤�8��'7åœ��6ÊË��fæ¥�8��tØæœ��ƒµ ¡��²†ç�*�	�»}èœ�
                                      �ÊZ¢¬�
                                    ! �@YZ�Y�jCD�Ò�Rlm��!"��B���ë�����U»éY·ëN»¿Y,ì·î:§�¶Â:-¶ñ¶Æšÿî-*´l¹½�¶ô:*´�{»ÇY+·ø¹~�W¬W¬����P�Rû��E���.���	f�	h�	i�	j�	k�%	i�-	n�<	p�P	r�R	t�S	u�F���H����U�‚�ƒ�����Uý�����Uþ����Jÿ����=Œ������<�¨��ª«��B���J�����*´�o+¹�+¹j�W±����E���
                                    ! ���	{�	|�F��������‚�ƒ����� \��ð�®��B���,�����¬����E������	€�F��������‚�ƒ���������"�d�������
                                      �
                                      ¨��
                                      —¬�	
                                    \ No newline at end of file
                                    --- 441,458 ----
                                      ¹»�:6¾6
                                    §�22:¹�¹�£�:Æ�*²¼
                                      ¹�¯�·¬„
                                    ¡ÿÍ
                                      ¹¿�:6
                                    ¾6§�
                                    2:*²À
                                    ! ¹�¯�·¬„
                                    
                                    ¡ÿà„	¡ÿq„¡þ±����E���þ�?��ç�
                                    ! è�é�ì�#î�5í�>ì�Cñ�Lò�Wó�^ö�l÷�qø�wù�€ø�ƒò�ý�–þ�¡ÿ�¨	�¶	�»	�Á	�Ê	�Í	�Ö		�Ü	
                                    �ã	�ñ	�ö	�ü						'	.	4	=	@	JþT	]	 h	"o	$x	%ƒ	)Š	*˜	+	,£	-¬	,¯	%¹	3Â	4Í	5Ô	6Ú	7ã	6æ	4ð	 úè	;�F��t�%���‚�ƒ���
                                      ùp)��ö$���ó%���ãÃ�2�� �#w�2��L®òL��O�>¯���T�9 ���^�%ÄZ��l�Å�2�	�–dìK��™�»¯���ž�¶ ���¨�¢D�	�¶�”=�2�
                                      �Ö�t�û#��Ù�:‘���ã�%&'�
                                    �ñ�Æ�2��.	)��+‘��
                                    $�&’��.��2�]�æJ�`�š¯��e�• ��	o�Çm�
                                      x�x�û#�{�>‘��€�9’��
                                    Š�%&'�˜�Æ�2�Â�.	)�Å�+‘��
                                    Ê�&’��Ô��2��HI��B��Ñ��
                                    ��_*´�€+¹>�À?N-ÆO*ȶ4-¹]�¹a�:§%¹g�À�´:*`»�¹YÊ·�½¹�³�¶�Àɶ�À¶�ݶ4-¹>�À?:¹]�¹a�:§Ä¹g�À¨:*`»�¹YÌ·�½¶ζ�Àɶ�À¶�ݶ4¹>�Àb:		¹a�:
                                      §i
                                      ¹g�Àg:Á�ª™�,*`»�¹YÑ·�½À�ª¹�¶�Àɶ�À¶�ݶ§,ÁO™�JÀO:*`»�¹YÑ·�½¹Ó�¹�¶�Àɶ�ÀÔ¶�À¹^�¶�Àɶ�À¶�ݶ§�ÝÁ2™�tÀ2:*`»�¹YÑ·�½¹Ö�¹�¶�Àɶ�À׶�À¹1�¶�Àɶ�ÀÙ¶�À¹E�¶�Àɶ�ÀÛ¶�À¹Ý�¶�Àɶ�À¶�ݶ§�dÁh™�\Àh:*`»�¹YÑ·�½¹Þ�¹�¶�Àɶ�ÀÙ¶�À¹ß�¶�Àɶ�ÀÛ¶�À¹à�¶�Àɶ�À¶�ݶ
                                    ! ¹‘�šþ“*`á¶@¹‘�šþ8*`ã¶@¹‘�šý×*ȶ@±����E���Â�0��	?�	@�	A�	C�'	E�*	F�6	G�Y	H�f	I�t	J�w	K�ƒ	L�¤	M�²	N�»	O�¾	P�Ê	Q�Ò	R�à	S�õ	R�û	U	V
                                    ! 	W	X,	YD	WJ	[R	\Y	]g	^{	_	`¥	a½	]Ã	cË	dÒ	eà	fô	g		h!	e$	O.	k8	JB	mL	EV	p^	r�F���˜���_�‚�ƒ����_Ã�2���_�Ÿ���Q¤�8��'7åœ��6ÊË��fæ¥�8��tØæœ��ƒµ ¡��²†ç�*�	�»}èœ�
                                      �ÊZ¢¬�
                                    ! �@YZ�Y�jCD�Ò�Rlm��!"��B���ë�����U»éY·ëN»¿Y,ì·î:§�¶Â:-¶ñ¶Æšÿî-*´l¹½�¶ô:*´�{»ÇY+·ø¹~�W¬W¬����P�Rû��E���.���	w�	y�	z�	{�	|�%	z�-	�<	�P	ƒ�R	…�S	†�F���H����U�‚�ƒ�����Uý�����Uþ����Jÿ����=Œ������<�¨��ª«��B���J�����*´�o+¹�+¹j�W±����E���
                                    ! ���	Œ�	�F��������‚�ƒ����� \��ð�®��B���,�����¬����E������	‘�F��������‚�ƒ���������"�d�������
                                      �
                                      ¨��
                                      —¬�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��java/io/IOException
                                    *** 6,14 ****
                                      �����classDoc�Lcom/sun/javadoc/ClassDoc;�outputFieldDocBody�(ILcom/sun/javadoc/FieldDoc;)V
                                      ��"�� �level�I�fieldDoc�Lcom/sun/javadoc/FieldDoc;�
                                      SourceFile�Driver1_4.java�!���������������/�����*·�±����
                                    ! �������"����������
                                    ���	�������6�����»�Y·�*¶�¬����
                                    ! �������*��������������������������>�����*+·�±����
                                      ���
                                    ! ����:��<����������
                                    ����������� �����I�����*,·�!±����
                                      ���
                                    ! ����?��A���� ������
                                    ������#�$�����%�&���'����(
                                    \ No newline at end of file
                                    --- 6,14 ----
                                      �����classDoc�Lcom/sun/javadoc/ClassDoc;�outputFieldDocBody�(ILcom/sun/javadoc/FieldDoc;)V
                                      ��"�� �level�I�fieldDoc�Lcom/sun/javadoc/FieldDoc;�
                                      SourceFile�Driver1_4.java�!���������������/�����*·�±����
                                    ! �������3����������
                                    ���	�������6�����»�Y·�*¶�¬����
                                    ! �������;��������������������������>�����*+·�±����
                                      ���
                                    ! ����K��M����������
                                    ����������� �����I�����*,·�!±����
                                      ���
                                    ! ����P��R���� ������
                                    ������#�$�����%�&���'����(
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class	Tue Oct 12 15:55:12 2010
                                    *************** parentTags�Ljava/util/Set;�<init>�
                                    *** 3,8 ****
                                      �����()V��java/util/HashSet
                                      �
                                    �	��������
                                    java/util/Set���add�(Ljava/lang/Object;)Z�LineNumberTable�LocalVariableTable�this�<Lgnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo;�	parentTag�Ljava/lang/String;�([Ljava/lang/String;)V�parentTagArr�[Ljava/lang/String;�i�I�isLegalParentTag�(Ljava/lang/String;)Z��&�'��contains�tag�
                                      SourceFile�HtmlRepairer.java�InnerClasses�-�2gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer�TagInfo� ����������������	���[�����*·�
                                    ! *»�
                                    Y·�µ�*´�+¹��W±�����������(��&��)��*�����������������������	���}�����+*·�
                                    ! *»�
                                    Y·�µ�=§�*´�+2¹��W„+¾¡ÿí±�����������,��&��-��.�!�-�*�0���� ����+�������+�� ����!�"���#�$��	���?�����*´�+¹�%�¬�����������3����������������(����)����*�+���
                                      ���,�.�
                                    --- 3,8 ----
                                      �����()V��java/util/HashSet
                                      �
                                    �	��������
                                    java/util/Set���add�(Ljava/lang/Object;)Z�LineNumberTable�LocalVariableTable�this�<Lgnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo;�	parentTag�Ljava/lang/String;�([Ljava/lang/String;)V�parentTagArr�[Ljava/lang/String;�i�I�isLegalParentTag�(Ljava/lang/String;)Z��&�'��contains�tag�
                                      SourceFile�HtmlRepairer.java�InnerClasses�-�2gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer�TagInfo� ����������������	���[�����*·�
                                    ! *»�
                                    Y·�µ�*´�+¹��W±�����������9��7��:��;�����������������������	���}�����+*·�
                                    ! *»�
                                    Y·�µ�=§�*´�+2¹��W„+¾¡ÿí±�����������=��7��>��?�!�>�*�A���� ����+�������+�� ����!�"���#�$��	���?�����*´�+¹�%�¬�����������D����������������(����)����*�+���
                                      ���,�.�
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�HtmlRepairer.java�InnerCl
                                    *** 62,72 ****
                                      ������
                                    �����������������������
                                      �����
                                      ����������������»�Y·�³� ²� "»�$Y½�&Y(SY*SY,SY.SY0S·�2¹�5�W²� ;»�$Y½�&Y=S·�2¹�5�W²� ?»�$Y½�&Y=S·�2¹�5�W²� =»�$Y½�&YAS·�2¹�5�W²� C»�$Y½�&YES·�2¹�5�W²� G»�$Y½�&YES·�2¹�5�W²� I»�$Y½�&YKS·�2¹�5�W½�&YMSYOSYQSYSSYGSYCSYUSYWSYYSY	[SY
                                    ! ]SY_SYaSY
                                    cSY*SYeSYISYgSYASYiSYkSYmSY=SY(SK»�oY·�q³�r<§�²�r*2¹�t�W„*¾¡ÿî±����z���J����F�
                                    ! �G�9�H�T�I�o�J�Š�K�¥�L�À�M�Û�O�â�P�QC�Rj�Ok�Uu�Vz�W†�V�"�{����k�%�|�}��w��~�����€�����Ø�����F*·�*»�‚Y·�„µ�…*»�‡Y·�‰µ�Š*µ�Œ*µ�Ž*+µ�*µ�’*µ�”*µ�–*µ�˜*µ�Ž±����z���2����[��<��=��>��?�$�_�)�`�.�a�3�b�9�c�?�d�E�e�{���H����F�š�›�����F������F������F�	�����F�
                                      �����F��
                                    ����F����
                                    ! �œ������’�����6*+¶�ž>œ�*°»�¢Y*¶�¤¸�¨·�¬,¶�¯*+¶�³`¶�·+,¸�º¶�¯¶�¼°����z�������h��i�
                                    ! �j��l� �m�2�l�{���*����6�À�Á�����6�Â�Á����6�Ã�Á���0�Ä����Å�®����X�����Ú*´�Œ™�*´�Ž™�+¶�ƶ�³™�*µ�Œ*´�Š¶�Éš�²�r*´�Š¶�͹�Ñ�š�„+ÔÖ¸�ºL+ØÚ¸�ºL+ÜÞ¸�ºL+àâ¸�ºL+äæ¸�ºL+èê¸�ºL0=§�-+»�¢Yì·�¬¶�î¶�¼»�¢Yñ·�¬¶�î¶�¼¸�ºL`’=9¤ÿÓ+óõ¸�ºL*´�…+¶�÷W§�"*»�¢Yú·�¬*´�Š¶�Ͷ�üÿ¶�¯¶�¼·±����z���F����r��s��t��x�9�z�B�{�K�|�T�}�]�~�f��o�€�u��š�€�¥�‚�®�ƒ�º�†�Ù�ˆ�{��� ����Ú�š�›�����Ú�Á��r�3���®����4����„*´�Œ=*µ�Œ+¶�ÆL+¶
                                      >+¶6™�™�++¶�³d¶�¤L+¶�³¢�*·±+™�§�™�+¶�³d§�+¶�³¶�¤::6§�/¶¶›�¶�·¶�Æ:¶�¤:§�„¶�³¡ÿÍš�P@¶ž�F*´�”š�*»�¢Y·�¬¶�¯ ¶�¯¶�¼·*´�…»�¢Y"·�¬+¶�¯$¶�¯¶�¼¶�÷W±¶&:™�)¶+™�š�*´�Ž™�±)¶+š�S¶+š�
                                    W¶+™�%™�±š�»�¢Y+¸�¨·�¬¶�¯¶�¼L6™�Œ*´�Š¶.™�b*´�Š¶/À�&:¶+š�*»�¢Y2·�¬¶�¯ ¶�¯¶�¼·*´�…»�¢Y4·�¬¶�¯ ¶�¯¶�¼¶�÷W¶+™ÿ§§¼*»�¢Y6·�¬+¶�¯ ¶�¯¶�¼·§ž6::	»�‚Y·�„:
                                      ¶8:6¾`6
                                    §¤¾¢�
                                    46§�6ª��‡���������)���O��“��ì��;��\���Ķ›�§S �§J6
                                      ’¶<W§;= �
                                    --- 62,72 ----
                                      ������
                                    �����������������������
                                      �����
                                      ����������������»�Y·�³� ²� "»�$Y½�&Y(SY*SY,SY.SY0S·�2¹�5�W²� ;»�$Y½�&Y=S·�2¹�5�W²� ?»�$Y½�&Y=S·�2¹�5�W²� =»�$Y½�&YAS·�2¹�5�W²� C»�$Y½�&YES·�2¹�5�W²� G»�$Y½�&YES·�2¹�5�W²� I»�$Y½�&YKS·�2¹�5�W½�&YMSYOSYQSYSSYGSYCSYUSYWSYYSY	[SY
                                    ! ]SY_SYaSY
                                    cSY*SYeSYISYgSYASYiSYkSYmSY=SY(SK»�oY·�q³�r<§�²�r*2¹�t�W„*¾¡ÿî±����z���J����W�
                                    ! �X�9�Y�T�Z�o�[�Š�\�¥�]�À�^�Û�`�â�a�bC�cj�`k�fu�gz�h†�g�3�{����k�%�|�}��w��~�����€�����Ø�����F*·�*»�‚Y·�„µ�…*»�‡Y·�‰µ�Š*µ�Œ*µ�Ž*+µ�*µ�’*µ�”*µ�–*µ�˜*µ�Ž±����z���2����l��M��N��O��P�$�p�)�q�.�r�3�s�9�t�?�u�E�v�{���H����F�š�›�����F������F������F�	�����F�
                                      �����F��
                                    ����F����
                                    ! �œ������’�����6*+¶�ž>œ�*°»�¢Y*¶�¤¸�¨·�¬,¶�¯*+¶�³`¶�·+,¸�º¶�¯¶�¼°����z�������y��z�
                                    ! �{��}� �~�2�}�{���*����6�À�Á�����6�Â�Á����6�Ã�Á���0�Ä����Å�®����X�����Ú*´�Œ™�*´�Ž™�+¶�ƶ�³™�*µ�Œ*´�Š¶�Éš�²�r*´�Š¶�͹�Ñ�š�„+ÔÖ¸�ºL+ØÚ¸�ºL+ÜÞ¸�ºL+àâ¸�ºL+äæ¸�ºL+èê¸�ºL0=§�-+»�¢Yì·�¬¶�î¶�¼»�¢Yñ·�¬¶�î¶�¼¸�ºL`’=9¤ÿÓ+óõ¸�ºL*´�…+¶�÷W§�"*»�¢Yú·�¬*´�Š¶�Ͷ�üÿ¶�¯¶�¼·±����z���F����ƒ��„��…��‰�9�‹�B�Œ�K��T�Ž�]��f��o�‘�u�’�š�‘�¥�“�®�”�º�—�Ù�™�{��� ����Ú�š�›�����Ú�Á��r�3���®����4����„*´�Œ=*µ�Œ+¶�ÆL+¶
                                      >+¶6™�™�++¶�³d¶�¤L+¶�³¢�*·±+™�§�™�+¶�³d§�+¶�³¶�¤::6§�/¶¶›�¶�·¶�Æ:¶�¤:§�„¶�³¡ÿÍš�P@¶ž�F*´�”š�*»�¢Y·�¬¶�¯ ¶�¯¶�¼·*´�…»�¢Y"·�¬+¶�¯$¶�¯¶�¼¶�÷W±¶&:™�)¶+™�š�*´�Ž™�±)¶+š�S¶+š�
                                    W¶+™�%™�±š�»�¢Y+¸�¨·�¬¶�¯¶�¼L6™�Œ*´�Š¶.™�b*´�Š¶/À�&:¶+š�*»�¢Y2·�¬¶�¯ ¶�¯¶�¼·*´�…»�¢Y4·�¬¶�¯ ¶�¯¶�¼¶�÷W¶+™ÿ§§¼*»�¢Y6·�¬+¶�¯ ¶�¯¶�¼·§ž6::	»�‚Y·�„:
                                      ¶8:6¾`6
                                    §¤¾¢�
                                    46§�6ª��‡���������)���O��“��ì��;��\���Ķ›�§S �§J6
                                      ’¶<W§;= �
                                    *************** SourceFile�HtmlRepairer.java�InnerCl
                                    *** 90,101 ****
                                      ’¶<W§�O" �?6»�¢Y¸�¨·�¬J¶�¯	¶�¯L¶�¯
                                      ¶?¶�¯H¶�¯¶�¼:
                                      ¶@§�
                                    ! ’¶<W„
                                    ¡ý[š�¤*´�Š¶�Éš�Y*´�Š¶�ͶN™�J*»�¢YO·�¬¶�¯ ¶�¯¶�¼·*´�…»�¢Y4·�¬¶�¯ ¶�¯¶�¼¶�÷W*´�Š¶/W§�**´�Š*´�…·QW*´�Š¶UW*´�…»�¢YY·�¬¶�¯¶�¯ ¶�¯¶�¼¶�÷W§�(*´�…»�¢YY·�¬¶�¯¶�¯[¶�¯¶�¼¶�÷W±����z��â�x���Œ���
                                    ! ���‘��’� �”�)�—�5�š�=�›�D�œ�E�Ÿ�f� �k�¢�q�£��¤��¥�—�¦�š�¢�§�ª�µ�«�¼�¬�Ø�®�÷�¯�ø�²�ÿ�´�µ�¸9�º=�»>�¾C�¿X�À[�Ä_�Èk�Ëw�Ì�Í�ν�ÐÄ�ÊÊ�Ôè�áë�ãð�äó�åü�ç�è�ê�ë"�í%�ïP�ò[�ó^�õd�ög�ùj�ús�üv�ÿ}�„Š‘—ž¤Í	Ø
                                    ! ß
                                    èëöù�!Gt} €"ƒ%Ž&‘(˜)ž+¥,«/®0·2º5Ë6Î7þ8;=@ABMCVF_HbKiLlMœN¥Q®�è¸X½^Ö_ò`ad,i6k^nƒq�{���¶���„�š�›����„]�Á��^���m_��� d`���fa�Á��kb�Á��n�9�~��w�Sc�Á�ë˜d��ð“e�Á�óf�Á�	ü‡g��
                                      €hi�²�~��
                                    «j��
                                    ���%‰���ST����Z����� ²� +¹k�À�$:Æ�Ž:,¶n:§� ¹r�À�&:¶w™�
                                    ! :§�
                                    ¹z�šÿÜÆ�V§�E,¶/À�&:-»�¢Y4·�¬¶�¯ ¶�¯¶�¼¶�÷W*»�¢YO·�¬¶�¯ ¶�¯¶�¼·,¶�ÍÀ�&¦ÿµ¬¬����z���F���u�v�x�y�z�+{�5|�9}�<y�F€�K�N‚�Wƒ�t„��œ†�ž‰�{���\�	��� �š�›����� a�Á���� ������ �����’}~���ˆ�Á���*€��+�]�Á��W�9‚�Á��ƒ������›�����S§�H*´�Š¶/À�&L*»�¢YO·�¬+¶�¯ ¶�¯¶�¼·*´�…»�¢Y4·�¬+¶�¯ ¶�¯¶�¼¶�÷W*´�Š¶�É™ÿ´±����z��������‘�)’�H�R”�{�������S�š�›����:a�Á��„…����ñ��	��‘=*´�…¶@»�‚Y·�„N+¶8:6¾`6§`¾¢�
                                    46§�6ª��D���������%��“��%��³��ý���Œ< �=-¶†ž*-¶?·‡-¶@§> �-$¶�÷W§ð& �	=§ã �-¶†žÖ*-¶?·‡-¶@§Æ-’¶<W§»< �#-ñ¶�÷W=-¶†ž¤*-¶?·‡-¶@§”> �-ñ¶�÷W-$¶�÷W=§y& �-ñ¶�÷W-ñ¶�÷W=§_ �-ñ¶�÷W*-¶?·‡-¶@=§@# �-ì¶�÷W-’¶<W=§%’¸‰™�W`6§�E;4 �-ì¶�÷W-’¶<W=§õ’¸‰š�’¸š�’’¶œ�§�„d¡ÿ¸-ñ¶�÷W-’¶<W=§´¶›�*»�¢Y"·�¬¶”¶�¼·‡=§Ž/ �-’¶<W=§z< �*—·‡=§g> �*™·‡=§T’¸‰š�*»�¢Y"·�¬’¶�î¶�¼·‡=§/-’¶<W=§"" �-’¶<W=§' �-’¶<W=§�ú> �=*-¶?·›-¶@§�á< �*-¶?·›-¶@§�Ê �(*»�¢Y·�¬-¶�ü¶�¼·*-¶?·›-¶@§�Ÿ-’¶<W§�”" �-’¶<W=§�€ �(*Ÿ·*»�¢Y-¶?¸�¨·�¬H¶�¯¶�¼·›§�U-’¶<W§�J' �-’¶<W=§�6 �(*Ÿ·*»�¢Y-¶?¸�¨·�¬¡¶�¯¶�¼·›§�-’¶<W„¡üŸ*´�…¶?°����z��â�x��ª�«�
                                    ! ®�¯�²�%µ�-¶�7¹�:¼�`¿�gÀ�iÁ�pÂ�xÃ�€Æ�‡È�’Ê�™Ë�ŸÍ�¥Î�¬Ï�´Ð�¹Ò�¼Õ�Ä×�ÇÚ�ÎÛ�ÕÜ�×Ý�ÞÞ�æß�îâ�õä�üåæ	èéêë#í)î0ï8ð=ñ?òBöI÷PøXùZú]üfýoþyÿ€�ˆŠ–Ÿ«
                                    ! ®ýºÁÉË Î#Ù'ï(ô*û+,.013"5)6.97;N<S?[@]B`EgFoGtI{JƒKˆMN‘O™P¡R¨T°U¸W¾XÓYÛZã]ë_îbõcýdfgh-k5m8p?qGrLtRuYvwy²‰�{���f�
                                    ! ��‘�š�›����‘�Á��d���g���y£i��n�~���"gj���4����:E��l�N¤���¥�¿�����“�����G*´�–Æ�A»�‚Y·�„L+*´�–¹¦�¶�÷W*´�˜Æ�+»�¢Y«·�¬*´�˜¶­¶�¯¶�¼¶�÷W+¶?°°����z������ƒ�„�…�†�$‡�@‰�EŒ�{�������G�š�›����6®����®�����®�����\*´�Æ�W*´�’š�P*·¯M,Æ�-*´�»�¢Y±·�¬*·¯¶�¯³¶�¯+¶�¯¶�¼¹µ�§�*´�»�¢Y¸·�¬+¶�¯¶�¼¹µ�±����z������‘�’�“�”�A—�[š�{��� ����\�š�›�����\º�Á���H»�Á��¼�¿�����F�����*´�…¶@*·½*´�…¶?°����z�������ž�Ÿ�{��������š�›���¿���ÀÁ���
                                      ��$��
                                    --- 90,101 ----
                                      ’¶<W§�O" �?6»�¢Y¸�¨·�¬J¶�¯	¶�¯L¶�¯
                                      ¶?¶�¯H¶�¯¶�¼:
                                      ¶@§�
                                    ! ’¶<W„
                                    ¡ý[š�¤*´�Š¶�Éš�Y*´�Š¶�ͶN™�J*»�¢YO·�¬¶�¯ ¶�¯¶�¼·*´�…»�¢Y4·�¬¶�¯ ¶�¯¶�¼¶�÷W*´�Š¶/W§�**´�Š*´�…·QW*´�Š¶UW*´�…»�¢YY·�¬¶�¯¶�¯ ¶�¯¶�¼¶�÷W§�(*´�…»�¢YY·�¬¶�¯¶�¯[¶�¯¶�¼¶�÷W±����z��â�x�����ž�
                                    ! � ��¢��£� �¥�)�¨�5�«�=�¬�D�­�E�°�f�±�k�³�q�´��µ��¶�—�·�š�³�§�»�µ�¼�¼�½�Ø�¿�÷�À�ø�Ã�ÿ�Å�Æ�É9�Ë=�Ì>�ÏC�ÐX�Ñ[�Õ_�Ùk�Üw�Ý�Þ�ß½�áÄ�ÛÊ�åè�òë�ôð�õó�öü�ø�ù�û�ü"�þ%�P[^dg
                                    ! js
                                    v}„Š‘—ž¤ÍØßè ë#ö$ù&�'(),-!.G/t0}1€3ƒ6Ž7‘9˜:ž<¥=«@®A·CºFËGÎHþILNQRSMTVW_Yb\i]l^œ_¥b®�ù¸i½oÖpòqru,z6|^ƒ‚�{���¶���„�š�›����„]�Á��^���m_��� d`���fa�Á��kb�Á��n�9�~��w�Sc�Á�ë˜d��ð“e�Á�óf�Á�	ü‡g��
                                      €hi�²�~��
                                    «j��
                                    ���%‰���ST����Z����� ²� +¹k�À�$:Æ�Ž:,¶n:§� ¹r�À�&:¶w™�
                                    ! :§�
                                    ¹z�šÿÜÆ�V§�E,¶/À�&:-»�¢Y4·�¬¶�¯ ¶�¯¶�¼¶�÷W*»�¢YO·�¬¶�¯ ¶�¯¶�¼·,¶�ÍÀ�&¦ÿµ¬¬����z���F���†�‡�‰�Š�‹�+Œ�5�9Ž�<Š�F‘�K’�N“�W”�t•�’�œ—�žš�{���\�	��� �š�›����� a�Á���� ������ �����’}~���ˆ�Á���*€��+�]�Á��W�9‚�Á��ƒ������›�����S§�H*´�Š¶/À�&L*»�¢YO·�¬+¶�¯ ¶�¯¶�¼·*´�…»�¢Y4·�¬+¶�¯ ¶�¯¶�¼¶�÷W*´�Š¶�É™ÿ´±����z������ �¡�¢�)£�H �R¥�{�������S�š�›����:a�Á��„…����ñ��	��‘=*´�…¶@»�‚Y·�„N+¶8:6¾`6§`¾¢�
                                    46§�6ª��D���������%��“��%��³��ý���Œ< �=-¶†ž*-¶?·‡-¶@§> �-$¶�÷W§ð& �	=§ã �-¶†žÖ*-¶?·‡-¶@§Æ-’¶<W§»< �#-ñ¶�÷W=-¶†ž¤*-¶?·‡-¶@§”> �-ñ¶�÷W-$¶�÷W=§y& �-ñ¶�÷W-ñ¶�÷W=§_ �-ñ¶�÷W*-¶?·‡-¶@=§@# �-ì¶�÷W-’¶<W=§%’¸‰™�W`6§�E;4 �-ì¶�÷W-’¶<W=§õ’¸‰š�’¸š�’’¶œ�§�„d¡ÿ¸-ñ¶�÷W-’¶<W=§´¶›�*»�¢Y"·�¬¶”¶�¼·‡=§Ž/ �-’¶<W=§z< �*—·‡=§g> �*™·‡=§T’¸‰š�*»�¢Y"·�¬’¶�î¶�¼·‡=§/-’¶<W=§"" �-’¶<W=§' �-’¶<W=§�ú> �=*-¶?·›-¶@§�á< �*-¶?·›-¶@§�Ê �(*»�¢Y·�¬-¶�ü¶�¼·*-¶?·›-¶@§�Ÿ-’¶<W§�”" �-’¶<W=§�€ �(*Ÿ·*»�¢Y-¶?¸�¨·�¬H¶�¯¶�¼·›§�U-’¶<W§�J' �-’¶<W=§�6 �(*Ÿ·*»�¢Y-¶?¸�¨·�¬¡¶�¯¶�¼·›§�-’¶<W„¡üŸ*´�…¶?°����z��â�x��»�¼�
                                    ! ¿�À�Ã�%Æ�-Ç�7Ê�:Í�`Ð�gÑ�iÒ�pÓ�xÔ�€×�‡Ù�’Û�™Ü�ŸÞ�¥ß�¬à�´á�¹ã�¼æ�Äè�Çë�Îì�Õí�×î�Þï�æð�îó�õõ�üö÷	ùúûü#þ)ÿ0�8=?BIP	X
                                    ! Z]
                                    foy€ˆŠ–Ÿ«®º Á!É"Ë1Î4Ù8ï9ô;û<=?ABD"F)G.J7LNMSP[Q]S`VgWoXtZ{[ƒ\ˆ^_‘`™a¡c¨e°f¸h¾iÓjÛkãnëpîsõtýuwxy-|5~8?‚GƒL…R†Y‡wŠÃ‰�{���f�
                                    ! ��‘�š�›����‘�Á��d���g���y£i��n�~���"gj���4����:E��l�N¤���¥�¿�����“�����G*´�–Æ�A»�‚Y·�„L+*´�–¹¦�¶�÷W*´�˜Æ�+»�¢Y«·�¬*´�˜¶­¶�¯¶�¼¶�÷W+¶?°°����z������”�•�–�—�$˜�@š�E�{�������G�š�›����6®����®�����®�����\*´�Æ�W*´�’š�P*·¯M,Æ�-*´�»�¢Y±·�¬*·¯¶�¯³¶�¯+¶�¯¶�¼¹µ�§�*´�»�¢Y¸·�¬+¶�¯¶�¼¹µ�±����z������¢�£�¤�¥�A¨�[«�{��� ����\�š�›�����\º�Á���H»�Á��¼�¿�����F�����*´�…¶@*·½*´�…¶?°����z������®�¯�°�{��������š�›���¿���ÀÁ���
                                      ��$��
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,7 ****
                                      ���
                                      ��()V	����	�����LineNumberTable�LocalVariableTable�this�5Lgnu/classpath/tools/doclets/xmldoclet/TargetContext;�getTargetDirectory�()Ljava/io/File;�setTargetDirectory�(Ljava/io/File;)V�getDocTranslet�A()Lgnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet;�setDocTranslet�B(Lgnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet;)V�
                                      SourceFile�TargetContext.java�!�����������������	������
                                    ! ������Y�����*·�
                                    *+µ�*,µ�±�����������B��C�	�D��E���� ����������������������������/�����*´�°�����������H��������������������>�����*+µ�±�������
                                    ! ����L��M��������������������������/�����*´�°�����������P��������������������>�����*+µ�±�������
                                    ! ����T��U�������������������� ����!
                                    \ No newline at end of file
                                    --- 2,7 ----
                                      ���
                                      ��()V	����	�����LineNumberTable�LocalVariableTable�this�5Lgnu/classpath/tools/doclets/xmldoclet/TargetContext;�getTargetDirectory�()Ljava/io/File;�setTargetDirectory�(Ljava/io/File;)V�getDocTranslet�A()Lgnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet;�setDocTranslet�B(Lgnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet;)V�
                                      SourceFile�TargetContext.java�!�����������������	������
                                    ! ������Y�����*·�
                                    *+µ�*,µ�±�����������S��T�	�U��V���� ����������������������������/�����*´�°�����������Y��������������������>�����*+µ�±�������
                                    ! ����]��^��������������������������/�����*´�°�����������a��������������������>�����*+µ�±�������
                                    ! ����e��f�������������������� ����!
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 5,10 ****
                                      ��� �!�toString�()Ljava/lang/String;�#�%�$� com/sun/javadoc/DocErrorReporter�&�'�printNotice�(Ljava/lang/String;)V
                                      ��)�*��reset�ch�I�
                                      SourceFile�DocTranslet.java�InnerClasses�1�=gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet�DocErrorReporterOutputStream� ������������������	�
                                    ! �����U�����*·�*»�Y·�µ�*+µ�±�����������R��O��S��T��������������������������j�����&*´�¶�
                                    !  �*´�*´�¶�¹�"�*´�¶�(±�����������W��X��Y��Z�%�\��������&�������&�+�,���-����.�/���
                                      ���0�2�
                                    --- 5,10 ----
                                      ��� �!�toString�()Ljava/lang/String;�#�%�$� com/sun/javadoc/DocErrorReporter�&�'�printNotice�(Ljava/lang/String;)V
                                      ��)�*��reset�ch�I�
                                      SourceFile�DocTranslet.java�InnerClasses�1�=gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet�DocErrorReporterOutputStream� ������������������	�
                                    ! �����U�����*·�*»�Y·�µ�*+µ�±�����������c��`��d��e��������������������������j�����&*´�¶�
                                    !  �*´�*´�¶�¹�"�*´�¶�(±�����������h��i��j��k�%�m��������&�������&�+�,���-����.�/���
                                      ���0�2�
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class	Tue Oct 12 15:55:12 2010
                                    *************** getMessage
                                    *** 104,117 ****
                                      SourceFile�DocTranslet.java�InnerClasses�DocErrorReporterOutputStream�!������������	�
                                      ���������
                                    ����
                                      �������������)������³�±�������
                                    ! ����ƒ��J��������������������‡�����1*·�*»�Y·�!µ�"+¶�$ž�+¶�*/ �	+¶�.L*+µ�2*,µ�4±�����������d��a��h� �i�&�k�+�l�0�m���� ����1�6�7�����1������1�	�
                                      ��
                                    ! �8�9�����@�����*¶�:+¶�:¶�@¬�����������p���������D�E������F�E��
                                    ! �G�H�����˜�����>*¶�:L+²�I¶�L™�++¶�$d¶�PL+²�S¶�W=ž�
                                    +¶�PL§�²�IL»�;Y+·�[°�������"����t��u��v��x�#�y�'�z�1�}�5�€���� ����>�^�E����9�_���#��`�a���b�c�������d���P����ò²�f:*´�4Ç�
                                    *´�2¸�l§�*´�4*´�2¶�r:Ç�#»�dY»�uYw·�y*´�2¶�z~¶�z¶�€·�ƒ¿»�Y·�!:„†¹�ˆ�WŽ*´�´�’¸�—¹�ˆ�W›*´�´�¸�—¹�ˆ�W *´�´�¢¸�—¹�ˆ�W¥*´�´�§¸�—¹�ˆ�Wª*´�´�¬¸�—¹�ˆ�W¯*´�´�±¸�—¹�ˆ�W´*´�´�¶¸�—¹�ˆ�W¹*´�´�»¸�—¹�ˆ�W¾*´�´�À¸�—¹�ˆ�WÃ*´�´�Ź�ˆ�WÈ*´�´�ʹ�ˆ�WÍ*´�´�Ϲ�ˆ�WÒ*´�´�Ô¹�ˆ�W×*´�´�Ù¹�ˆ�WÜ*´�´�Þ¹�ˆ�Wá*´�´�ã¹�ˆ�W*+·�æ:-ê¹�ì�¸�ñ:*¶�÷¶�û¶�ÿ¶�@6	¹�:
                                      §á	™�¸¸¶
                                      ¹�À:»�;Y,¶ ·!:¸$:
                                    
                                    ¶&š�+
                                    ¶*š�#»�dY»�uY-·�y
                                    ¶/2¶�z¶�€·�ƒ¿*´�´�¶™�W»�;Y,4·!:»�;Y¶ ·!:¸$:¶&š�+¶*š�#»�dY»�uY-·�y
                                    ¶/2¶�z¶�€·�ƒ¿*´�´�À™�W»�;Y,6·!:»�;Y¶ ·!:¸$:¶&š�+¶*š�#»�dY»�uY-·�y
                                    ¶/2¶�z¶�€·�ƒ¿¶8Æ�Y-»�uY;·�y¶=¶�z@¶�z¶�€¹�ì�»BY¶8·D¶G:»KY¶�:·M:¸N¶T¶Y§g-»�uYZ·�y¶=¶�z@¶�z¶�€¹�ì�\:¸$:§�!»�uY¸^·�yb¶�z¶�€:¸$:,¸d™ÿÜ»fY¶�:·h:»iY»�;Y+k·!¶�:·m:»BY¶n·D:»iY¶q·m:¶tÆ�w¶t¹�ˆ�Wy¹�ˆ�W*´�"¶{¹~�À‚:Ç�#¶„:²�™�*´�"¶{¹�ˆ�W¶ˆ¹‹�¹�:§�&¹�À�%:¹~�À�%:¶’¹–�šÿÖ*¶™»šY-·œ:»ŸY·¡¸¤¶¨¶¬
                                    ! ¹–�šý§�B:»�dY·¯¿:»�dY·¯¿:»�dY¶²··¿:»�dY·¯¿:¸¤¿¸¤±��ª­º�ª¹¼�ªÅ³�ªÖ¾�ââ������ª�j���‰��Œ����Ž�!�Œ�#��(�‘�H�•�Q�–�]�˜�q�™�…�š�™�›�­�œ�Á��Õ�ž�é�Ÿ�ý� �¡"�¢3�£D�¤U�¥f�¦w�§ˆ�©‹�ªŒ�«Ž�©“�­›�°ž�¯ �²¦�µ´�´¶�·Â�¹Ç�ºÊ�»Ð�¾Ü�Àë�Áò�Ã�Ä"�Ç,�È9�ÉI�ÊP�Ì`�Í€�ÑŠ�Ò—�Ó§�Ô®�Ö¾�×Þ�Ûæ�Ý�Þ�ß(�à/�á4�â<�æ]�èb�él�êƒ�é“�í¡�ï¸�ðÈ�óÖ�õÞ�öî�øû�û�ü�ý�þ"�ÿ38IUclv
                                    ! |„†
                                    ’› �·­¯¹»ÅÇÖØâ ä!é"ì!ñ#���t�%��ò�6�7����òÀ�E���òÁ�E���òÂÃ��í�j�k��#ŠÄÅ��Q\Æ��“ÇÈ� 
                                    ÉÊ�¶÷Ë��	¿ëÌÍ�
                                      ÜÄÎÏ�ëµÐ�E�ò®Ñ�E�
                                    9�GÒ�E�I�7Ó�E�P�0Ô�E�—�GÕ�E�§�7Ö�E�®�0×�E��"ØÙ�(�ÚÛ�b>Ü��i�*�^�E�¡�ÿÚÝ�¸�èØÞ�È�ØßÅ�Ö�ÊàÞ��’áâ�F�0ãÍ�U�ä��c�	å��†�æç�¯�
                                      èé�»�
                                      èê�Ç�èë�Ø�
                                    --- 104,116 ----
                                      SourceFile�DocTranslet.java�InnerClasses�DocErrorReporterOutputStream�!������������	�
                                      ���������
                                    ����
                                      �������������)������³�±�������
                                    ! ����”��[��������������������‡�����1*·�*»�Y·�!µ�"+¶�$ž�+¶�*/ �	+¶�.L*+µ�2*,µ�4±�����������u��r��y� �z�&�|�+�}�0�~���� ����1�6�7�����1������1�	�
                                      ��
                                    ! �8�9�����@�����*¶�:+¶�:¶�@¬��������������������D�E������F�E��
                                    ! �G�H�����˜�����>*¶�:L+²�I¶�L™�++¶�$d¶�PL+²�S¶�W=ž�
                                    +¶�PL§�²�IL»�;Y+·�[°�������"����…��†��‡��‰�#�Š�'�‹�1�Ž�5�‘���� ����>�^�E����9�_���#��`�a���b�c�������d���P����ò²�f:*´�4Ç�
                                    *´�2¸�l§�*´�4*´�2¶�r:Ç�#»�dY»�uYw·�y*´�2¶�z~¶�z¶�€·�ƒ¿»�Y·�!:„†¹�ˆ�WŽ*´�´�’¸�—¹�ˆ�W›*´�´�¸�—¹�ˆ�W *´�´�¢¸�—¹�ˆ�W¥*´�´�§¸�—¹�ˆ�Wª*´�´�¬¸�—¹�ˆ�W¯*´�´�±¸�—¹�ˆ�W´*´�´�¶¸�—¹�ˆ�W¹*´�´�»¸�—¹�ˆ�W¾*´�´�À¸�—¹�ˆ�WÃ*´�´�Ź�ˆ�WÈ*´�´�ʹ�ˆ�WÍ*´�´�Ϲ�ˆ�WÒ*´�´�Ô¹�ˆ�W×*´�´�Ù¹�ˆ�WÜ*´�´�Þ¹�ˆ�Wá*´�´�ã¹�ˆ�W*+·�æ:-ê¹�ì�¸�ñ:*¶�÷¶�û¶�ÿ¶�@6	¹�:
                                      §á	™�¸¸¶
                                      ¹�À:»�;Y,¶ ·!:¸$:
                                    
                                    ¶&š�+
                                    ¶*š�#»�dY»�uY-·�y
                                    ¶/2¶�z¶�€·�ƒ¿*´�´�¶™�W»�;Y,4·!:»�;Y¶ ·!:¸$:¶&š�+¶*š�#»�dY»�uY-·�y
                                    ¶/2¶�z¶�€·�ƒ¿*´�´�À™�W»�;Y,6·!:»�;Y¶ ·!:¸$:¶&š�+¶*š�#»�dY»�uY-·�y
                                    ¶/2¶�z¶�€·�ƒ¿¶8Æ�Y-»�uY;·�y¶=¶�z@¶�z¶�€¹�ì�»BY¶8·D¶G:»KY¶�:·M:¸N¶T¶Y§g-»�uYZ·�y¶=¶�z@¶�z¶�€¹�ì�\:¸$:§�!»�uY¸^·�yb¶�z¶�€:¸$:,¸d™ÿÜ»fY¶�:·h:»iY»�;Y+k·!¶�:·m:»BY¶n·D:»iY¶q·m:¶tÆ�w¶t¹�ˆ�Wy¹�ˆ�W*´�"¶{¹~�À‚:Ç�#¶„:²�™�*´�"¶{¹�ˆ�W¶ˆ¹‹�¹�:§�&¹�À�%:¹~�À�%:¶’¹–�šÿÖ*¶™»šY-·œ:»ŸY·¡¸¤¶¨¶¬
                                    ! ¹–�šý§�B:»�dY·¯¿:»�dY·¯¿:»�dY¶²··¿:»�dY·¯¿:¸¤¿¸¤±��ª­º�ª¹¼�ªÅ³�ªÖ¾�ââ������ª�j���š����ž��Ÿ�!��#�¡�(�¢�H�¦�Q�§�]�©�q�ª�…�«�™�¬�­�­�Á�®�Õ�¯�é�°�ý�±�²"�³3�´D�µU�¶f�·w�¸ˆ�º‹�»Œ�¼Ž�º“�¾›�Áž�À �æ�Æ´�Ŷ�ÈÂ�ÊÇ�ËÊ�ÌÐ�ÏÜ�Ñë�Òò�Ô�Õ"�Ø,�Ù9�ÚI�ÛP�Ý`�Þ€�âŠ�ã—�ä§�å®�ç¾�èÞ�ìæ�î�ï�ð(�ñ/�ò4�ó<�÷]�ùb�úl�ûƒ�ú“�þ¡�¸ÈÖÞî	û
                                    "38IUclv|„†’ ›! �È­%¯&¹(»)Å+Ç,Ö.Ø/â1ä2é3ì2ñ4���t�%��ò�6�7����òÀ�E���òÁ�E���òÂÃ��í�j�k��#ŠÄÅ��Q\Æ��“ÇÈ� 
                                    ÉÊ�¶÷Ë��	¿ëÌÍ�
                                      ÜÄÎÏ�ëµÐ�E�ò®Ñ�E�
                                    9�GÒ�E�I�7Ó�E�P�0Ô�E�—�GÕ�E�§�7Ö�E�®�0×�E��"ØÙ�(�ÚÛ�b>Ü��i�*�^�E�¡�ÿÚÝ�¸�èØÞ�È�ØßÅ�Ö�ÊàÞ��’áâ�F�0ãÍ�U�ä��c�	å��†�æç�¯�
                                      èé�»�
                                      èê�Ç�èë�Ø�
                                    *************** SourceFile�DocTranslet.java�InnerCla
                                    *** 121,136 ****
                                      §�þ	
                                      ¹�À:*¹�¹�·:#¹�¹�Æ�*#¹�¹�·§�:
                                    %¹�¹�Æ�*%¹�¹�·§�:*'¹�¹�·::)¹�¹�ž�9)¹�¹�¹+�Æ�*)¹�¹�·:§�\:»Y
                                    ·1¹4�W„
                                      
                                    ! 	¹�¡þü°:»�dY·¯¿:»�dY¶²··¿:»�dY·¯¿���Çȼ��ÇÔ³��Çå7�����º�.��+�-�.�/�0�$2�14�65�?7�D8�T9�`:�m;�v8�€>�‹?�—@�™>�œD�¨E�¸G�¾H�ÌI�âK�õLM
                                    JO"P9Q:N<RRSUTgUV˜Y\¶GÅ_ÈaÊbÔdÖeågçh������ñ�6�7����ñßÅ���ñÀ�E���ñÆ���¸9È��½:;��¶<=��¯>?��$¤@A��1�k$Þ�	�6�fÉÊ�
                                      �?�]áâ��Q�/ãÍ��`�ä��
                                    �m�	å���¨BC�	�»
                                      D�a�
                                      �Ì�êEF��â�Ô���§$��
                                    <�z&��R�d(��U�a*���
                                      èê�Ö�èë�ç�
                                      èG��!"�����Ö�����L»HY·JM+¹K�N6§�*-¹�:Æ�¹O�:Æ�
                                      ,¶RW„-¹�¡ÿÑ,¶U°�������*�
                                    ! ��n�o�p�q�r�$s�-t�2u�9p�Gy����H����L�6�7�����LEV���D9W���=XC���5D�a���V��-�å���YZ�����>�����*+µ�±�������
                                    ! ���}�~���������6�7������
                                    ���	[\�����������@�����»�Y*¶]·a°����������„�…�
                                    ! „��������c����	de���������������»fY*·hL+¶kM,Ç�"»�Y»�uYo·�y*¶/q¶�z¶�€·s¿,¶tN-z¶|:Ç�"»�Y»�uY‚·�y*¶/„¶�z¶�€·s¿»�Y»†Y+·ˆ·a°L»�Y+·‹¿����v�w¾�����6�
                                    ��Œ�Ž��’�3•�8—�A™�F›�ež�kŸ�sž�w¡�x¢����>����Œ�E����lŽ���g��8�?‘’��A�6“���x�	èì��
                                    ! �™�š�����8�����™�	”§�\°����������§��������–����—˜������³����6�����+¿����������­���������6�7�����™ë��š˜������³����6�����+¿����������³���������6�7�����™ë��›˜������³����S�����²�f»�uYœ·�y+¶ž¶�z¶�€¶¡±�������
                                    ! ���¹�º���������6�7�����™ë��¤���¥¦���
                                      �š�§�
                                    --- 120,135 ----
                                      §�þ	
                                      ¹�À:*¹�¹�·:#¹�¹�Æ�*#¹�¹�·§�:
                                    %¹�¹�Æ�*%¹�¹�·§�:*'¹�¹�·::)¹�¹�ž�9)¹�¹�¹+�Æ�*)¹�¹�·:§�\:»Y
                                    ·1¹4�W„
                                      
                                    ! 	¹�¡þü°:»�dY·¯¿:»�dY¶²··¿:»�dY·¯¿���Çȼ��ÇÔ³��Çå7�����º�.��<�>�?�@�A�$C�1E�6F�?H�DI�TJ�`K�mL�vI�€O�‹P�—Q�™O�œU�¨V�¸X�¾Y�ÌZ�â\�õ]^
                                    [`"a9b:_<cRdUegfg˜jm¶XÅpÈrÊsÔuÖvåxçy������ñ�6�7����ñßÅ���ñÀ�E���ñÆ���¸9È��½:;��¶<=��¯>?��$¤@A��1�k$Þ�	�6�fÉÊ�
                                      �?�]áâ��Q�/ãÍ��`�ä��
                                    �m�	å���¨BC�	�»
                                      D�a�
                                      �Ì�êEF��â�Ô���§$��
                                    <�z&��R�d(��U�a*���
                                      èê�Ö�èë�ç�
                                      èG��!"�����Ö�����L»HY·JM+¹K�N6§�*-¹�:Æ�¹O�:Æ�
                                      ,¶RW„-¹�¡ÿÑ,¶U°�������*�
                                    ! ���€��‚�ƒ�$„�-…�2†�9�GŠ����H����L�6�7�����LEV���D9W���=XC���5D�a���V��-�å���YZ�����>�����*+µ�±�������
                                    ! ���Ž����������6�7������
                                    ���	[\�����������@�����»�Y*¶]·a°����������•�–�
                                    ! •��������c����	de���������������»fY*·hL+¶kM,Ç�"»�Y»�uYo·�y*¶/q¶�z¶�€·s¿,¶tN-z¶|:Ç�"»�Y»�uY‚·�y*¶/„¶�z¶�€·s¿»�Y»†Y+·ˆ·a°L»�Y+·‹¿����v�w¾�����6�
                                    ���Ÿ�¡�£�3¦�8¨�Aª�F¬�e¯�k°�s¯�w²�x³����>����Œ�E����lŽ���g��8�?‘’��A�6“���x�	èì��
                                    ! �™�š�����8�����™�	”§�\°����������¸��������–����—˜������³����6�����+¿����������¾���������6�7�����™ë��š˜������³����6�����+¿����������Ä���������6�7�����™ë��›˜������³����S�����²�f»�uYœ·�y+¶ž¶�z¶�€¶¡±�������
                                    ! ���Ê�Ë���������6�7�����™ë��¤���¥¦���
                                      �š�§�
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 4,11 ****
                                      �����
                                      SourceFile�&DocTransletConfigurationException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����������������
                                    ����������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������>�����*+·�±����
                                      ���
                                    ! ����"��#����������
                                    ��������������
                                    \ No newline at end of file
                                    --- 4,11 ----
                                      �����
                                      SourceFile�&DocTransletConfigurationException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����+��,����������
                                    ����������������I�����*+,·�±����
                                      ���
                                    ! ����/��0���� ������
                                    ����������������������>�����*+·�±����
                                      ���
                                    ! ����3��4����������
                                    ��������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 7,17 ****
                                      ��.��/�()V�
                                      SourceFile�DocTransletException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����������������
                                    ����������������h�����$*¶�½�YS¶�*½�Y+S¶�"W§�W±�����"���
                                    ! ������� �"�"�#�$��������$��
                                    �����$�(�)����*�����Q�����*+·�*,·�+±����
                                    ! �������'��(�
                                    ! �)���� ������
                                    ������������(�)���������F�����
                                      *·�-*+·�+±����
                                    ! �������+��,�	�-��������
                                      ��
                                    �����
                                      �(�)���0����1
                                    \ No newline at end of file
                                    --- 7,17 ----
                                      ��.��/�()V�
                                      SourceFile�DocTransletException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����+��,����������
                                    ����������������h�����$*¶�½�YS¶�*½�Y+S¶�"W§�W±�����"���
                                    ! �������1�"�3�#�5��������$��
                                    �����$�(�)����*�����Q�����*+·�*,·�+±����
                                    ! �������8��9�
                                    ! �:���� ������
                                    ������������(�)���������F�����
                                      *·�-*+·�+±����
                                    ! �������<��=�	�>��������
                                      ��
                                    �����
                                      �(�)���0����1
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class	Tue Oct 12 15:55:12 2010
                                    *************** splitindex�
                                    *** 3,7 ****
                                      linksource�nodeprecatedlist�uses�windowtitle�Ljava/lang/String;�helpfile�stylesheetfile�header�footer�bottom�doctitle�<init>�()V�Code
                                      �������	����	��!��	��#��	��%��	��'��	��)��	��+���LineNumberTable�LocalVariableTable�this�FLgnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions;�
                                      SourceFile�DocTransletOptions.java�!����������������������	�����
                                    ! ���������������
                                    ����������������������������������������������������y�����/*·�*µ�*µ� *µ�"*µ�$*µ�&*µ�(*µ�*±����,���&�	�����&�
                                    ! �'��(��)��*�"�+�(�,�.��-�������/�.�/����0����1
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      linksource�nodeprecatedlist�uses�windowtitle�Ljava/lang/String;�helpfile�stylesheetfile�header�footer�bottom�doctitle�<init>�()V�Code
                                      �������	����	��!��	��#��	��%��	��'��	��)��	��+���LineNumberTable�LocalVariableTable�this�FLgnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions;�
                                      SourceFile�DocTransletOptions.java�!����������������������	�����
                                    ! ���������������
                                    ����������������������������������������������������y�����/*·�*µ�*µ� *µ�"*µ�$*µ�&*µ�(*µ�*±����,���&�	���,��7�
                                    ! �8��9��:��;�"�<�(�=�.�,�-�������/�.�/����0����1
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions�� java/lang/ClassNotFoundE
                                    *** 17,25 ****
                                      �_�e�f��close�in�Ljava/io/InputStream;�size�J�result�nread�I�offset�
                                      SourceFile�JarClassLoader.java�!����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±�����������"��#�	�$��������
                                      �������
                                      ��������������	���R�����*+·�M*+,,¾¶�°�������
                                    ! ����)��*���� ������������ �!���
                                    ! �"�#������������	���°�����D»�$Y+.²�&¶�,¸�2·�69¶�;¶�?M*´�
                                    ,¶�CN-Æ�**´�
                                    -¶�I-¶�M·�S°W»�Y+·�W¿���9�:�X�����"����0��3�%�4�)�5�2�6�6�5�:�9�;�;����*����D�������D�Z�!���(�[�!��%��\�]���U�V�������X�	���±�����9 ˆ¼:66§�
                                    ! `6… ”œ�+ …eˆ¶�^Y6œÿà+¶�d°�������"����A��B�	�C��D��E��D�2�G�6�H����>����9�������9�g�h����9�i�j���3�k�#��	�0�l�m���-�n�m���o����p
                                    \ No newline at end of file
                                    --- 17,25 ----
                                      �_�e�f��close�in�Ljava/io/InputStream;�size�J�result�nread�I�offset�
                                      SourceFile�JarClassLoader.java�!����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±�����������3��4�	�5��������
                                      �������
                                      ��������������	���R�����*+·�M*+,,¾¶�°�������
                                    ! ����:��;���� ������������ �!���
                                    ! �"�#������������	���°�����D»�$Y+.²�&¶�,¸�2·�69¶�;¶�?M*´�
                                    ,¶�CN-Æ�**´�
                                    -¶�I-¶�M·�S°W»�Y+·�W¿���9�:�X�����"����A��D�%�E�)�F�2�G�6�F�:�J�;�L����*����D�������D�Z�!���(�[�!��%��\�]���U�V�������X�	���±�����9 ˆ¼:66§�
                                    ! `6… ”œ�+ …eˆ¶�^Y6œÿà+¶�d°�������"����R��S�	�T��U��V��U�2�X�6�Y����>����9�������9�g�h����9�i�j���3�k�#��	�0�l�m���-�n�m���o����p
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class	Tue Oct 12 15:55:12 2010
                                    *************** getComment�getInfo�toString�'�jav
                                    *** 6,10 ****
                                      �&�.�/�0�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�2�,source=�4�,sheet=�6�	,comment=�8�,info=�:�}
                                      �&�<�%� �
                                      SourceFile�OutputFileInfo.java�!����������������������	�����
                                    ! ���������
                                    ���”����� *·�*+µ�*,µ�*-µ�*µ�*µ�±�����������"��#�	�$��%��&��'��(����>���� ������� ������ ������ ������ �	����� �
                                    ! ����� ��
                                    ���/�����*´�°�����������*��������������!� ��
                                    ���/�����*´�°�����������+��������������"� ��
                                    ���/�����*´�°�����������,��������������#� ��
                                    ���/�����*´�°�����������-��������������$� ��
                                    ���/�����*´�°�����������.��������������%� ��
                                    ���s�����I»�&Y(·�**´�¶�-1¶�-*´�¶�-3¶�-*´�¶�-5¶�-*´�¶�-7¶�-*´�¶�-9¶�-¶�;°�����������0��������I������=����>
                                    \ No newline at end of file
                                    --- 6,10 ----
                                      �&�.�/�0�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�2�,source=�4�,sheet=�6�	,comment=�8�,info=�:�}
                                      �&�<�%� �
                                      SourceFile�OutputFileInfo.java�!����������������������	�����
                                    ! ���������
                                    ���”����� *·�*+µ�*,µ�*-µ�*µ�*µ�±�����������3��4�	�5��6��7��8��9����>���� ������� ������ ������ ������ �	����� �
                                    ! ����� ��
                                    ���/�����*´�°�����������;��������������!� ��
                                    ���/�����*´�°�����������<��������������"� ��
                                    ���/�����*´�°�����������=��������������#� ��
                                    ���/�����*´�°�����������>��������������$� ��
                                    ���/�����*´�°�����������?��������������%� ��
                                    ���s�����I»�&Y(·�**´�¶�-1¶�-*´�¶�-3¶�-*´�¶�-5¶�-*´�¶�-7¶�-*´�¶�-9¶�-¶�;°�����������A��������I������=����>
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** inlineTags�()[Lcom/sun/javadoc/Tag;
                                    *** 23,31 ****
                                      SourceFile�AbstractTagImpl.java!��������	�
                                      ���������
                                    ����
                                      ��������,������½�³�±�������
                                    ! ��������������������F�����
                                    ! *·�*+µ�±�����������"��#�	�$��������
                                      �������
                                    ! �����������—�����A*¶�L+Æ�$=§�+2*¥�+2À�¶�#„+¾¡ÿê§�²�%»�+Y-·�/*¶�1¶�5¶�9±�����������'��(�	�)��*��)�*�.�@�0���� ����A������<�>�
                                    ! ����?�@���A�B�����}�����*+¶�C+¶�I,-*¸�Mµ�S±�������&�	���3��4��5�
                                    ! �6��7��8�
                                    �9��3��:����*������������U������V�W�����X�Y���Z�"�����F�����*´�SÆ�*´�S[¹�]�À�c§�²�°�����������=��������������!�"�����F�����*´�SÆ�*´�Sd¹�]�À�c§�²�°�����������@��������������f�8�����/�����*¶�g°�����������D���������������8�����/�����*´�°�����������H��������������j�k�����/�����*´�S°�����������L��������������7�8�����|�����>»�+Y*¶�l¶�p¸�u·�/y¶�{*¶�~¶�{€¶�{*¶�‚¶�{„¶�{*¶�†¶�1ˆ¶�{¶�5°�����������T��U��V�)�W�5�X�:�T��������>������Š����‹
                                    \ No newline at end of file
                                    --- 23,31 ----
                                      SourceFile�AbstractTagImpl.java!��������	�
                                      ���������
                                    ����
                                      ��������,������½�³�±�������
                                    ! ����.��+��������������F�����
                                    ! *·�*+µ�±�����������3��4�	�5��������
                                      �������
                                    ! �����������—�����A*¶�L+Æ�$=§�+2*¥�+2À�¶�#„+¾¡ÿê§�²�%»�+Y-·�/*¶�1¶�5¶�9±�����������8��9�	�:��;��:�*�?�@�A���� ����A������<�>�
                                    ! ����?�@���A�B�����}�����*+¶�C+¶�I,-*¸�Mµ�S±�������&�	���D��E��F�
                                    ! �G��H��I�
                                    �J��D��K����*������������U������V�W�����X�Y���Z�"�����F�����*´�SÆ�*´�S[¹�]�À�c§�²�°�����������N��������������!�"�����F�����*´�SÆ�*´�Sd¹�]�À�c§�²�°�����������Q��������������f�8�����/�����*¶�g°�����������U���������������8�����/�����*´�°�����������Y��������������j�k�����/�����*´�S°�����������]��������������7�8�����|�����>»�+Y*¶�l¶�p¸�u·�/y¶�{*¶�~¶�{€¶�{*¶�‚¶�{„¶�{*¶�†¶�1ˆ¶�{¶�5°�����������e��f��g�)�h�5�i�:�e��������>������Š����‹
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�ArrayCharacterIterator.java
                                    *** 11,29 ****
                                      �����
                                      ���
                                    ��
                                    ������L�����
                                      *++¾·�±�������
                                    ! ����"�	�#���� ����
                                      �������
                                      ������
                                      �	�
                                      ���
                                    ������U�����	*+·�±�������
                                    ! ����(��)����*����	�������	������	�	�
                                      ����	��
                                    ! ���
                                    ������€�����*·�*+µ�*µ�*µ�*µ�!±�����������+��/�	�0��1��2��3����4������������������	�
                                      ������
                                      ������
                                    ! ���#�$�����B�����»�Y*´�*´�*´�*´�!·�°�����������7��������������%�&�����O�����%*´�!*´�¡�*´�!*´�¢�*´�*´�!4§�'¬�����������<��������%������(�&�����9�����*´�**´�Zµ�!4¬�����������A��������������)�*�����/�����*´�¬�����������F��������������+�*�����/�����*´�¬�����������K��������������,�*�����/�����*´�!¬�����������P��������������-�&�����M�����#*´�**´�*´�¤�*´�d§�*´�Zµ�!4¬�����������U��������#������.�&�����K�����!*Y´�!`Zµ�!*´�¢�*´�*´�!4§�'¬�����������Z��������!������/�&�����K�����!*Y´�!dZµ�!*´�¡�*´�*´�!4§�'¬�����������_��������!������0�1�����B�����
                                      *µ�!*¶�2¬�������
                                    ! ����d��e��������
                                      �������
                                      �4�
                                      ���5����6
                                    \ No newline at end of file
                                    --- 11,29 ----
                                      �����
                                      ���
                                    ��
                                    ������L�����
                                      *++¾·�±�������
                                    ! ����3�	�4���� ����
                                      �������
                                      ������
                                      �	�
                                      ���
                                    ������U�����	*+·�±�������
                                    ! ����9��:����*����	�������	������	�	�
                                      ����	��
                                    ! ���
                                    ������€�����*·�*+µ�*µ�*µ�*µ�!±�����������<��@�	�A��B��C��D����4������������������	�
                                      ������
                                      ������
                                    ! ���#�$�����B�����»�Y*´�*´�*´�*´�!·�°�����������H��������������%�&�����O�����%*´�!*´�¡�*´�!*´�¢�*´�*´�!4§�'¬�����������M��������%������(�&�����9�����*´�**´�Zµ�!4¬�����������R��������������)�*�����/�����*´�¬�����������W��������������+�*�����/�����*´�¬�����������\��������������,�*�����/�����*´�!¬�����������a��������������-�&�����M�����#*´�**´�*´�¤�*´�d§�*´�Zµ�!4¬�����������f��������#������.�&�����K�����!*Y´�!`Zµ�!*´�¢�*´�*´�!4§�'¬�����������k��������!������/�&�����K�����!*Y´�!dZµ�!*´�¡�*´�*´�!4§�'¬�����������p��������!������0�1�����B�����
                                      *µ�!*¶�2¬�������
                                    ! ����u��v��������
                                      �������
                                      �4�
                                      ���5����6
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      Exceptions��(gnu/classpath/tools/gjdoc/ParseException
                                      ���� gnu/classpath/tools/gjdoc/Parser���skipExpression�([CIIC)I�source�[C�endIndex�I�
                                      SourceFile�Parser.java ����������������/�����*·�±����
                                    ! �������9����������
                                    �����������������F�����+¸�¬����
                                    ! �������<���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      Exceptions��(gnu/classpath/tools/gjdoc/ParseException
                                      ���� gnu/classpath/tools/gjdoc/Parser���skipExpression�([CIIC)I�source�[C�endIndex�I�
                                      SourceFile�Parser.java ����������������/�����*·�±����
                                    ! �������J����������
                                    �����������������F�����+¸�¬����
                                    ! �������M���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��(gnu/classpath/tools/gjdo
                                    *** 4,10 ****
                                      ���� gnu/classpath/tools/gjdoc/Parser���classClosed�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������M����������
                                    �����������T�����+4} �`¬¬����
                                    ! �������P��Q��T���� ������
                                    ������������������������������]�����+¶�¬����
                                      ���
                                    ! ����[��\����4������
                                    ������ �!�����������"������#����$����%
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ���� gnu/classpath/tools/gjdoc/Parser���classClosed�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������^����������
                                    �����������T�����+4} �`¬¬����
                                    ! �������a��b��e���� ������
                                    ������������������������������]�����+¶�¬����
                                      ���
                                    ! ����l��m����4������
                                    ������ �!�����������"������#����$����%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions�#�(gnu/classpath/tools/gjdo
                                    *** 17,24 ****
                                      �'�k�l�m�parse�2([CI[Lgnu/classpath/tools/gjdoc/SourceComponent;)I�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�depth�a�rc�
                                      SourceFile�Parser.java�InnerClasses�Context� ����������������/�����*·�±����
                                    ! ������	����������
                                    ��������������%>§	+4«������ù������(���õ���/���<���;���õ���=���õ���@���—���{���÷+¾d¢�¸+`46/ �„§�„+¾¢�›+4
                                       ÿò§�* �‰„§�„+¾¢�z+d4* ÿð+4/ ÿè§�e„§�„+¾¢�+4¸�šÿñ+¾¢�G+4( �?6„§�$+4( �„+4) �„ÿ„š�§�+¾¢�ÿק�¬>™�§�„+¾¢�™þó™�	+¾¡�¬`¬����
                                    ! ���¢�(���
                                    ��D�L�S�Z�]�`�c�t�{�~��„�œ�Ÿ!�¢"�¥#�¨"�·%�Å&�È'�Ë(�Î)�Ö*�Ù+�á,�ä-�ç.�ì/�ï(�ú2�ý6�ÿ8;
                                    =>!@����>���%��
                                    ����%�����%����#����S�I����È�2������� ��!�����"�$���d�����¤+,¶�&+¶�,™�+´�0´�4+¶�:¶�>+¶�D+´�0´�4¶�G™�h66§�W	»�JYL·�N¶�P¶�T¸�W,4{ �]¸�W„,4} �#ž�_¸�W„ÿ§�a¸�W+¶�c`¬„,¾¡ÿ¨+,+¶�f¶�j6¬����
                                    ! ���V���E�F�G�H�"I�/K�2L�9N�OO�XQ�^R�aT�jV�oX�uY�{]�^�…_�ŠL�”d�¡e����R����¤��
                                    �����¤�n�o����¤������¤�p�����¤�q���2�b�r���6�^�s���¡��t����u����v�w���
                                      ��5�'�x��
                                    \ No newline at end of file
                                    --- 17,24 ----
                                      �'�k�l�m�parse�2([CI[Lgnu/classpath/tools/gjdoc/SourceComponent;)I�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�depth�a�rc�
                                      SourceFile�Parser.java�InnerClasses�Context� ����������������/�����*·�±����
                                    ! ����������������
                                    ��������������%>§	+4«������ù������(���õ���/���<���;���õ���=���õ���@���—���{���÷+¾d¢�¸+`46/ �„§�„+¾¢�›+4
                                       ÿò§�* �‰„§�„+¾¢�z+d4* ÿð+4/ ÿè§�e„§�„+¾¢�+4¸�šÿñ+¾¢�G+4( �?6„§�$+4( �„+4) �„ÿ„š�§�+¾¢�ÿק�¬>™�§�„+¾¢�™þó™�	+¾¡�¬`¬����
                                    ! ���¢�(�����D!�L"�S#�Z$�]%�`&�c%�t)�{*�~+�,�„+�œ0�Ÿ2�¢3�¥4�¨3�·6�Å7�È8�Ë9�Î:�Ö;�Ù<�á=�ä>�ç?�ì@�ï9�úC�ýG�ÿILNO!Q����>���%��
                                    ����%�����%����#����S�I����È�2������� ��!�����"�$���d�����¤+,¶�&+¶�,™�+´�0´�4+¶�:¶�>+¶�D+´�0´�4¶�G™�h66§�W	»�JYL·�N¶�P¶�T¸�W,4{ �]¸�W„,4} �#ž�_¸�W„ÿ§�a¸�W+¶�c`¬„,¾¡ÿ¨+,+¶�f¶�j6¬����
                                    ! ���V���V�W�X�Y�"Z�/\�2]�9_�O`�Xb�^c�ae�jg�oi�uj�{n�o�…p�Š]�”u�¡v����R����¤��
                                    �����¤�n�o����¤������¤�p�����¤�q���2�b�r���6�^�s���¡��t����u����v�w���
                                      ��5�'�x��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** _fieldName�	_classDoc�isPrimitive�	c
                                    *** 134,152 ****
                                      parameters�	variables�	parameter�parts�variable�,Lgnu/classpath/tools/gjdoc/TypeVariableImpl;�bounds�bound�nameSep�packageName�	boundName8�com/sun/javadoc/TypeVariable�.�
                                      SourceFile�ClassDocImpl.java�!������	��������
                                    �����������������������������
                                      �������������������������� �����!�����"�����#�����$�����%�����&�����'�����(�����)�����*�+����,�+����-�.����/�����0�����1����
                                    ! �2�����3�4����5�4���]��6�7��8���µ������m»�9Y·�;³�>²�>@¹�B�W²�>H¹�B�W²�>J¹�B�W²�>L¹�B�W²�>N¹�B�W²�>P¹�B�W²�>R¹�B�W²�>T¹�B�W»�VY·�X³�Y±����[���.����[�
                                    ! �\��]� �^�+�_�6�`�A�a�L�b�W�c�b
                                    �l��\�������=�]��8���¹�����3*+,·�^*`µ�b*»�VY·�Xµ�d*µ�f*µ�h*µ�j**µ�l±����[���&�	���1��2�
                                    �)��f�Ý�#ï�(�-�3�2�4�\���H����3�n�o�����3�p�����3�q�r����3�s�t����3�u�����3�v�����3�w�x���=�y��8���½�����9*+,·�z*`µ�b*»�VY·�Xµ�d*µ�f*µ�h*µ�j*-µ�}*µ�**µ�l±����[���.����;��<��)��f�Ý�ï�#�(�=�-�>�3�?�8�@�\���>����9�n�o�����9�p�����9�q�r����9�
                                    �����9������9�w�x����‚��8���0�����*¶�ƒ°����[�������D�\��������n�o�����…��8���D�����™�
                                    ! *´�†§�*´�ˆ°����[�������H�\��������n�o������Š�����‹��8���/�����*´�Œ¬����[�������M�\��������n�o����Ž���8���0�����*¶�°����[�������R�\��������n�o����Ž�’��8���D�����™�
                                    ! *´�“§�*´�•°����[�������V�\��������n�o������Š����—�˜��8��5�����‹*´�d»�™Y+¸�›·�¡,¶�¤¶�¨¹�¬�À�N-Æ�-°*+¶�²:Æ�[¹�µ�,¶�·™�°À�¹�º�À�:À�,¹�¾�*´�d»�™Y+¸�›·�¡,¶�¤¶�¨¹�Á�W°:»�ÅY·�Ç¿°��1�A�}�Ê�B�|�}�Ê��[���:����j��k�#�l�%�o�,�q�1�s�?�t�B�w�Q�x�\�y�z�z�}�}��~�‰�‚�\���H����‹�n�o�����‹������‹�����l�Ì���,�_�Í���Q�,�Î����
                                    ! �Ï�Ð���—�´��8��$�����Š¸�Ñ+*¶�×M¸�Ñ,¶�ÝN-Ç�v*:§�k:§�VÁ�à™�¸�ѹ�â�¶�Ý:Æ�:¸�Ñ»�™Y¹�â�¸�›·�¡å¶�¤+¶�¤¶�¨¶�ÝN-Æ�-°¹�ç�:Çÿ«¹�ê�:Çÿ–-°����[���:����‰�	�Š��Œ����Ž�"��*��9�‘�>�’�B�•�f�–�l�Ž�z��ˆ�›�\���H����Š�n�o�����Š����	��ä����y�Î����p�ì����[�í���9�	�î����
                                    �ï��8���/�����*´�}°����[������� �\��������n�o�����ð��8���/�����*´�°����[�������¥�\��������n�o����ñ�ï��8���0�����*¶�ò°����[�������ª�\��������n�o����ñ�ô��8���D�����™�
                                    ! *´�õ§�*´�÷°����[�������®�\��������n�o������ù�����ú�û��8���>�����*+µ�õ±����[���
                                    ! ����²��³�\��������n�o������#�����ü�û��8���>�����*+µ�÷±����[���
                                    ! ����¶��·�\��������n�o������$����"�ï��8���/�����*´�ý°����[�������»�\��������n�o����ÿ�û��8���>�����*+µ�ý±����[���
                                    ! ����¿��À�\��������n�o������"�����‹��8���<�����*´�š�*¶š�¬¬����[�������Ä�\��������n�o�����‹��8���/�����*´¬����[�������È�\��������n�o���� �‹��8���/�����*´¬����[�������Ì�\��������n�o����!�‹��8���/�����*´¬����[�������Ñ�\��������n�o���
                                      ��8���>�����*µ�±����[���
                                    ! �������\��������n�o��������
                                    �‹��8���2�����*¶¬����[�������Û�\��������n�o����‹��8���2�����*¶¬����[�������à�\��������n�o�����8���¼�����F*M§�>,Á�™�0,¹�N-Æ�%6§�-2¹�â�+¶�·™�¬„-¾¡ÿç,¹�ç�M,ÇÿĬ����[���*�
                                    ! ���ä��å��æ��ç��è��é�-�ê�/�è�9�ä�D�ò�\���4����F�n�o�����F����B�ì����&�����t����8���0�����*¶°����[�������÷�\��������n�o��� ��8���D�����™�
                                    ! *´!§�*´#°����[�������ü�\��������n�o������Š����'���8���C�����*´%Æ�*´%°*´'°����[���������\��������n�o������8���/�����*´)°����[�������\��������n�o���+,��8���q�����#*¶-À�M§�,+¶.™�¬,¶-À�M,Çÿí¬����[����������!�\��� ����#�n�o�����#/�����ì�o���0�é��8���/�����*´0°����[�������\��������n�o���2�é��8���,�����*°����[������ �\��������n�o���3�«��8���/�����*¶4°����[������#�\��������n�o���6�«��8���h�����>*¶7Æ�5*¶7²:¶@š�(»�™Y*¶7¹C�¸�›·�¡å¶�¤*¶4¶�¤¶�¨§�*¶4°����[������&�\�������>�n�o����ä�«��8���/�����*¶F°����[������)�\��������n�o�����«��8���/�����*´�b°����[������+�\��������n�o����ª�«��8���E�����»�™YH·�¡*¶F¶�¤J¶�¤¶�¨°����[������-�\��������n�o���LM��8���,�����°����[������/�\��������n�o���	NO�P����QS�8��Š�	���zU:»�Y*+,-·W:		¶Y»]Y·_:
                                      `:66
                                    6666§i �
                                      §�466
                                     �
                                       ?6
                                    6§6
                                     �/ )* "6
                                    6§/ �%/ �6
                                    6¶`d¶d:6§@* �%/ �6
                                    6¶`d¶d:6§@ �6
                                    »�™Y¸�›·�¡¶h¶�¨:§�ô( �%
                                     �„»�™Y¸�›·�¡¶h¶�¨:§�Ë) �-
                                     �'„ÿ»�™Y¸�›·�¡¶h¶�¨:š� 6
                                    §�š< �„»�™Y¸�›·�¡¶h¶�¨:§�w> �„ÿ»�™Y¸�›·�¡¶h¶�¨:§�T{ �™�), �
                                    š�™�k¶m›�š�š�66
                                    §�»�™Y¸�›·�¡¶h¶�¨:™ž¶`ž–š�¯	¶qšƒt¶�·™�	¶v§ox¶�·™�	¶z6§X}¶�·™�	¶6§A‚¶�·™�	¶z6§*„¶�·™�	¶z	¶†6§
                                    ‰¶�·š¸�Ñ»�™Y‹·�¡¶�¤¶�¤¶�¨¶§�á’¶�·™�	¶”š�	¶™�	6§�À6§�º–¶�·™�	¶”š�	6§�¡ �>˜¶š6 �
                                    	¶§�	¶d¶	¶`¶d¸ §�` �'˜¶š6 �
                                    --- 134,152 ----
                                      parameters�	variables�	parameter�parts�variable�,Lgnu/classpath/tools/gjdoc/TypeVariableImpl;�bounds�bound�nameSep�packageName�	boundName8�com/sun/javadoc/TypeVariable�.�
                                      SourceFile�ClassDocImpl.java�!������	��������
                                    �����������������������������
                                      �������������������������� �����!�����"�����#�����$�����%�����&�����'�����(�����)�����*�+����,�+����-�.����/�����0�����1����
                                    ! �2�����3�4����5�4���]��6�7��8���µ������m»�9Y·�;³�>²�>@¹�B�W²�>H¹�B�W²�>J¹�B�W²�>L¹�B�W²�>N¹�B�W²�>P¹�B�W²�>R¹�B�W²�>T¹�B�W»�VY·�X³�Y±����[���.����l�
                                    ! �m��n� �o�+�p�6�q�A�r�L�s�W�t�b�l�0�\�������=�]��8���¹�����3*+,·�^*`µ�b*»�VY·�Xµ�d*µ�f*µ�h*µ�j**µ�l±����[���&�	���B��C�
                                    �:��w�î�#��(�-�D�2�E�\���H����3�n�o�����3�p�����3�q�r����3�s�t����3�u�����3�v�����3�w�x���=�y��8���½�����9*+,·�z*`µ�b*»�VY·�Xµ�d*µ�f*µ�h*µ�j*-µ�}*µ�**µ�l±����[���.����L��M��:��w�î���#�(�N�-�O�3�P�8�Q�\���>����9�n�o�����9�p�����9�q�r����9�
                                    �����9������9�w�x����‚��8���0�����*¶�ƒ°����[�������U�\��������n�o�����…��8���D�����™�
                                    ! *´�†§�*´�ˆ°����[�������Y�\��������n�o������Š�����‹��8���/�����*´�Œ¬����[�������^�\��������n�o����Ž���8���0�����*¶�°����[�������c�\��������n�o����Ž�’��8���D�����™�
                                    ! *´�“§�*´�•°����[�������g�\��������n�o������Š����—�˜��8��5�����‹*´�d»�™Y+¸�›·�¡,¶�¤¶�¨¹�¬�À�N-Æ�-°*+¶�²:Æ�[¹�µ�,¶�·™�°À�¹�º�À�:À�,¹�¾�*´�d»�™Y+¸�›·�¡,¶�¤¶�¨¹�Á�W°:»�ÅY·�Ç¿°��1�A�}�Ê�B�|�}�Ê��[���:����{��|�#�}�%�€�,�‚�1�„�?�…�B�ˆ�Q�‰�\�Š�z�‹�}�Ž���‰�“�\���H����‹�n�o�����‹������‹�����l�Ì���,�_�Í���Q�,�Î����
                                    ! �Ï�Ð���—�´��8��$�����Š¸�Ñ+*¶�×M¸�Ñ,¶�ÝN-Ç�v*:§�k:§�VÁ�à™�¸�ѹ�â�¶�Ý:Æ�:¸�Ñ»�™Y¹�â�¸�›·�¡å¶�¤+¶�¤¶�¨¶�ÝN-Æ�-°¹�ç�:Çÿ«¹�ê�:Çÿ–-°����[���:����š�	�›����ž��Ÿ�"� �*�¡�9�¢�>�£�B�¦�f�§�l�Ÿ�z�ž�ˆ�¬�\���H����Š�n�o�����Š����	��ä����y�Î����p�ì����[�í���9�	�î����
                                    �ï��8���/�����*´�}°����[�������±�\��������n�o�����ð��8���/�����*´�°����[�������¶�\��������n�o����ñ�ï��8���0�����*¶�ò°����[�������»�\��������n�o����ñ�ô��8���D�����™�
                                    ! *´�õ§�*´�÷°����[�������¿�\��������n�o������ù�����ú�û��8���>�����*+µ�õ±����[���
                                    ! ����Ã��Ä�\��������n�o������#�����ü�û��8���>�����*+µ�÷±����[���
                                    ! ����Ç��È�\��������n�o������$����"�ï��8���/�����*´�ý°����[�������Ì�\��������n�o����ÿ�û��8���>�����*+µ�ý±����[���
                                    ! ����Ð��Ñ�\��������n�o������"�����‹��8���<�����*´�š�*¶š�¬¬����[�������Õ�\��������n�o�����‹��8���/�����*´¬����[�������Ù�\��������n�o���� �‹��8���/�����*´¬����[�������Ý�\��������n�o����!�‹��8���/�����*´¬����[�������â�\��������n�o���
                                      ��8���>�����*µ�±����[���
                                    ! ����ç��è�\��������n�o��������
                                    �‹��8���2�����*¶¬����[�������ì�\��������n�o����‹��8���2�����*¶¬����[�������ñ�\��������n�o�����8���¼�����F*M§�>,Á�™�0,¹�N-Æ�%6§�-2¹�â�+¶�·™�¬„-¾¡ÿç,¹�ç�M,ÇÿĬ����[���*�
                                    ! ���õ��ö��÷��ø��ù��ú�-�û�/�ù�9�õ�D�\���4����F�n�o�����F����B�ì����&�����t����8���0�����*¶°����[�������\��������n�o��� ��8���D�����™�
                                    ! *´!§�*´#°����[������
                                    �\��������n�o������Š����'���8���C�����*´%Æ�*´%°*´'°����[���������\��������n�o������8���/�����*´)°����[�������\��������n�o���+,��8���q�����#*¶-À�M§�,+¶.™�¬,¶-À�M,Çÿí¬����[������!�"�#�!�!%�\��� ����#�n�o�����#/�����ì�o���0�é��8���/�����*´0°����[������*�\��������n�o���2�é��8���,�����*°����[������1�\��������n�o���3�«��8���/�����*¶4°����[������4�\��������n�o���6�«��8���h�����>*¶7Æ�5*¶7²:¶@š�(»�™Y*¶7¹C�¸�›·�¡å¶�¤*¶4¶�¤¶�¨§�*¶4°����[������7�\�������>�n�o����ä�«��8���/�����*¶F°����[������:�\��������n�o�����«��8���/�����*´�b°����[������<�\��������n�o����ª�«��8���E�����»�™YH·�¡*¶F¶�¤J¶�¤¶�¨°����[������>�\��������n�o���LM��8���,�����°����[������@�\��������n�o���	NO�P����QS�8��Š�	���zU:»�Y*+,-·W:		¶Y»]Y·_:
                                      `:66
                                    6666§i �
                                      §�466
                                     �
                                       ?6
                                    6§6
                                     �/ )* "6
                                    6§/ �%/ �6
                                    6¶`d¶d:6§@* �%/ �6
                                    6¶`d¶d:6§@ �6
                                    »�™Y¸�›·�¡¶h¶�¨:§�ô( �%
                                     �„»�™Y¸�›·�¡¶h¶�¨:§�Ë) �-
                                     �'„ÿ»�™Y¸�›·�¡¶h¶�¨:š� 6
                                    §�š< �„»�™Y¸�›·�¡¶h¶�¨:§�w> �„ÿ»�™Y¸�›·�¡¶h¶�¨:§�T{ �™�), �
                                    š�™�k¶m›�š�š�66
                                    §�»�™Y¸�›·�¡¶h¶�¨:™ž¶`ž–š�¯	¶qšƒt¶�·™�	¶v§ox¶�·™�	¶z6§X}¶�·™�	¶6§A‚¶�·™�	¶z6§*„¶�·™�	¶z	¶†6§
                                    ‰¶�·š¸�Ñ»�™Y‹·�¡¶�¤¶�¤¶�¨¶§�á’¶�·™�	¶”š�	¶™�	6§�À6§�º–¶�·™�	¶”š�	6§�¡ �>˜¶š6 �
                                    	¶§�	¶d¶	¶`¶d¸ §�` �'˜¶š6 �
                                    *************** SourceFile�ClassDocImpl.java�!����
                                    *** 155,205 ****
                                      ¶d¹¤�W`:{ �
                                     �§�6„¤ü–*Æ�*¹§�™�		µ¨	¶4Ç�1»QY»�™Yª·�¡»�œYd·¬¶�¤¯¶�¤¶�¨·±¿		¸²¶¶»�àY	·º:	¶½U¶�·š�
                                      	¶¾
                                      ¹Â�½�:6§� »�àY
                                    ! ¹Å�À�œ	·ºS„¾¡ÿÞ	¶È	¶™�	¶ÊÆ�		¶Ë	°����[��ò�|��8�:�
                                    ! ;�<�=�
                                    >�:�?�@�#B�'C�*J�-K�0L�3M�6N�=O�PP�SQ�YR�`S�cT�iW�oX�}Y�€Z�†^�”_�—`�ša�©b�¯d�½e�Àf�Ãg�Òh�Øj�ßk�âl�ûnop$r1s4tJuOvUx\z_{x}‚€›‚§ƒ¸„ͅІ։ìŒùþŽ‘“'”-•3—>™DšJœU[ža l¡r¢x£~¥‰¨ª«½¬Å­Ë°Ñ³ä´ê¶ð·ú¸�¹
                                    ! ¼½¾"½+Á1Ã;ÄAÅHÉUÌ[ÍeÎkÏxӈ֌ٜ۠NªÞ®ß·à½ãÅäóçéëì#ï/ð5ñOðZóaõqöwø�\�����z�p�����z�q�r���z�
                                    ����z�����zÎÏ���zÐ�t���zÑ�t���z�5�4��uÒ���g�Î�o�	�#WÓ�4�
                                      �'S���*P�t��-M�t�
                                    �0J×�t��3GØ�t��6DÙÚ��:pÛ�t��PPÜÚ��SMÝ��ú�1Þ�t�;�Þ�t�e�#Þ�t��lß��/�K�"��2�(�t��àá��8���>�����*+µ�•±����[���
                                    ! ���ü�ý�\��������n�o������Ž���âá��8���>�����*+µ�“±����[���
                                    ! ������\��������n�o������Ž���ãá��8���>�����*+µ'±����[���
                                    ! �����\��������n�o�����ä���åæ��8���>�����*+µ#±����[���
                                    ! ����	�\��������n�o��������çæ��8���>�����*+µ!±����[���
                                    ! ����
                                    �\��������n�o��������èé��8���>�����*+µ�ˆ±����[���
                                    ! �����\��������n�o�������+��êé��8���>�����*+µ�†±����[���
                                    ! �����\��������n�o�������+���«��8���a�����/*´ëÇ�*´�f°»�™Y*´ë¹í�¸�›·�¡å¶�¤*´�f¶�¤¶�¨°����[���������\�������/�n�o���î�«��8���/�����*´�f°����[������"�\��������n�o���Ÿ�£��8���>�����*+µ�f±����[���
                                    ! ���&�'�\��������n�o����������ÀÁ��8���>�����*+µ0±����[���
                                    ! ���*�+�\��������n�o������0���ï�7�P����Q�8��/����ç*´�hšâ*µ�h*´ëÆ�
                                    *´ëÀ�¶ð*´0Á�à™�**´0¹�â�¶�²L+Æ�*+µ0*´�ýÆ�;<§�-*´�ý2Á�à™�**´�ý2¹�â�¶�²M,Æ�
                                      *´�ý,S„*´�ý¾¡ÿÐ*´�•Æ�J<§�<*´�•2Àò¶ô*´�•2¹õ�ø¶�·™�*½öY*´�•2Sµ%*µ�Œ„*´�•¾¡ÿÁ*´#Æ� <§�*´#2Àù¶û„*´#¾¡ÿë*´�ˆÆ� <§�*´�ˆ2Àü¶þ„*´�ˆ¾¡ÿë»]Y·_L*´ÿÆ�Ç*´ÿ¹�M§�›,¹�ÀùN-¶û-¶
                                      ¶�·™�-¶
                                    ¶�·š�k-¶
                                      ¶�·™�-¶
                                    ¶�·š�Q-¶
                                      ¶�·™�-¶
                                    ¶�·š�7-¶
                                      ¶�·™�-¶
                                    ¶�·š�-¶
                                    ! ¶�·™�-¶
                                     ¶�·™�+-¹¤�W,¹"�šÿb*+½%¹'�À+µ)*µÿ±����[���Ê�2��.�/�1�2�;�'=�5?�9G�>K�EL�JM�VO�fP�jY�qL�}_�„`�‰a�•b�©c�ºd�¿`�Ëi�Òj�×k�ãj�ïo�öp�ûqpuw"x/y9z=|J}W~dq€~‹‚˜ƒ¥„²…¿‡ÇxЊá‹æŽ�\���f�
                                    ! ��ç�n�o���5�	,���G�6�t��f�,���†�E�t��Ô��t��ø��t��Ë-�4�,�¤./�9�Ž01��23��8���:�����*+¸4°����[������‘�\��������n�o��������
                                    ! 26��8���Æ�����H*+¸7M,Æ�,°*¹�N6§�-2+¸4M,Æ�,°„-¾¡ÿê*¹�ç�Æ�*¹�ç�+¸4°°����[���2���–�—�
                                    ! ˜�›�œ��"ž�&Ÿ�(œ�2¢�;£�F¦�\���4����H�Í������H����B:;���5�"�����t��
                                    ! 96��8���‡�����+*¹<�M>§�,2¹õ�+¶�·™�,2°„,¾¡ÿç°����[������­�®�
                                    ¯�°� ®�)³�\���*����+�Í������+����#�Ž���
                                      ��t��93��8���z�����,=§�*´�“2¹õ�+¶�·™�
                                    ! *´�“2°„*´�“¾¡ÿÞ°����[������·�¸�¹�·�*¼�\��� ����,�n�o�����,=����(�t��>�7��8��3�����™*·?*´�•Æ� <§�*´�•2Àò¶A„*´�•¾¡ÿë*´'Æ� <§�*´'2Àò¶A„*´'¾¡ÿë*´#Æ� <§�*´#2Àù¶B„*´#¾¡ÿë*´�ˆÆ� <§�*´�ˆ2Àü¶C„*´�ˆ¾¡ÿë*¶D±����[���N���Á�Ã�Ä�Å�Ä�(É�/Ê�4Ë�@Ê�LÎ�SÏ�XÐ�dÏ�pÓ�wÔ�|Õ�ˆÔ�”Ù�˜Ú�\���4����™�n�o���
                                    ��t��1��t��U��t��y��t��G�‹��8���7�����
                                    *´™�§�¬����[������õ�\�������
                                    �n�o����1�‹��8���k�����1**´�l¦�"*´�jš�*´ëÆ�¸H*´¨¶Lš�¬¬*´�l¹P�¬����[������ú�û�ü�&û�'ÿ�\�������1�n�o����R��8���>�����*µ�j±����[���
                                    ! �����\��������n�o���������S�û��8���>�����*+µ�}±����[���
                                    ! ���
                                    ! ��\��������n�o������
                                    ����TU�P����Q�8��Š����`+[¶m=`N›�F6§�-V+¶X¶m›�»�™Y-¸�›·�¡+¶X¶h¶�¨N„+¶`¡ÿÐ+¶d¶\L*+-¶_:Æ�°²�Y»�™Y+¸�›·�¡-¶�¤¶�¨¹�¬�Àa:Æ�@¹c�-¶�·™�°À�¹�º�Àa:À�-¹�¾�°:»QY¶d·±¿T+¶�·š�LJ+¶�·š�CN+¶�·š�:L+¶�·š�1@+¶�·š�(H+¶�·š�e+¶�·š�P+¶�·š�R+¶�·™�/»gY+-·i:²�Y»�™Y+¸�›·�¡-¶�¤¶�¨¹�Á�W°¸H¶lW»�àY+*·º:À�-¹�¾�°��…�•�³�Ê�–�²�³�Ê��[���’�$����
                                    ! ���#�;�G�Q�Y�^�a!�€"�…$�“%�–(�¥)�°*�³-�µ.�Â2�Ë3�Ô4�Ý5�æ6�ï7�ø89:; <==@@GDRE]F�\���p���`�n�o����`3���YÛ�t��
                                    ! Vo����6�t��Y�Í���€�àpq��¥��Îq��µ�
                                    �Ï�Ð� � �Îq�R��Îq��r�‹��8���o�����#*L§�s+¹�â�¶�·™�¬+¹�ç�L+Çÿç¬����[������J�K�N�O�L�K�!Q�\�������#�n�o�����ì���u�‹��8���g�����#*L§�v+¹�â�¶�·™�¬+¹�ç�L+Çÿç¬����[������U�V�W�U�!Y�\�������#�n�o�����ì���x�‹��8���C�����*¶yš�*¶{š�*¶š�¬¬����[������]�\��������n�o���|��8���>�����*µ±����[���
                                    ! ���a�b�\��������n�o��������ˆ��8���>�����*µ±����[���
                                    ! ���e�f�\��������n�o����������8���>�����*µ±����[���
                                    ! ���j�k�\��������n�o��������}~��8���°�����6*N§�.-+¸M,Æ�,°-+¸ƒM,Æ�,°-¹�ç�:Ç�§�
                                    ! N-ÇÿÔ°����[���.���p�q�r�s�t�v�%w�*x�-{�0p�4~�\���4����6�n�o�����6‡����%�Έ���2�ì���%�‰���	…†��8���‡�����#+(¶m=�°*+¶Š¸N*+¶d-¸‘°����[���"���‚�ƒ�„�
                                    †�‡�ˆ�‰�‡�\���*����#�Í������#‡����Û�t���”���	…“��8���»�����C*¹•�N-Æ�86§�+-2:¹–�+¶�·™�¹™�,¶�·™�°„-¾¡ÿÔ°����[���"���Ž���‘�’�4“�7�A–�\���>����C�Í������C�����C����;�*�+���2�t���š›��	‚��8��������'+(¶m=�°+¶dN*+¶Š¸:*-¸œ°����[������š�›�œ�
                                    Ÿ� �¡�\���4����'�Í������'‡���� Û�t�������”���
                                      ��8��•�����Í++¶`d¶d¶\L+¶`š� °»ŸY+¡·£M»¦Y¨·ªN§�‰,¶«¶\:¶`6§�„ÿž�d¶X[Ÿÿíd¶X]Ÿÿ߶Š:¶d:*¹®�:-¶¯¤�-¡¶°WÆ�-¹�â�¶°W§�
                                    ! -¶°W-¶°W,¶³šÿv-)¶¶W-¶¹°����[���^���§�¨�©�«�&¬�1­�4®�=¯�D°�G±�J°�k³�t´�~µ�ˆ¶�·�˜¹�º�¬½�³¿�º­�ÁÁ�ÈÂ�\���R����Í�Í������Í���&�§º»��1�œ”¼��=�}p���D�vÛ�t��t�Fo���ˆ�2½���	ž��8���»�����C*¹¾�N-Æ�86§�+-2:¹¿�+¶�·™�¹À�,¶�·™�°„-¾¡ÿÔ°����[���"���Æ�Ç�È�É�Ê�4Ë�7È�AÎ�\���>����C�Í������C�����C����;�(����2�t���0Á���¹�G��8���V�����"+Æ�+Á�™�+À�¹�â�*¶½¶�·™�¬¬����[������Ò�\�������"�n�o�����"ÂÃ���Ä\��8���>�����*+µÿ±����[���
                                    ! ���Ø�Ù�\��������n�o������3�4���À�£��8���>�����*+µ�b±����[���
                                    ! ���Ü�Ý�\��������n�o����������¼�½�P�����Ê�8���N�����*·ÅÀ�L+*´�lµ�l+°����[������à�á�â�\��������n�o����
                                    ! Æ�o��Çc��8���/�����*·Ȭ����[������ç�\��������n�o���Êc��8���2�����*¶F¶ˬ����[������ì�\��������n�o���Ì�é��8���/�����*´�l°����[������ñ�\��������n�o���Í3��8���z�����,=§�+*´�•2¹õ�¶�·™�
                                    ! *´�•2°„*´�•¾¡ÿÞ°����[������ö�÷�ø�ö�*û�\��� ����,�n�o�����,����(�t��ÎÏ��8���š�����>>§�1+*´#2¹¿�¶�·™�,*´#2¹À�¶�·™�
                                    ! *´#2°„*´#¾¡ÿÌ°����[����������)�0��<�\���*����>�n�o�����>�����>����:�t��ÐÑ��8���z�����,=§�+*´�ˆ2¹™�¶�·™�
                                    ! *´�ˆ2°„*´�ˆ¾¡ÿÞ°����[�������
                                    ���*�\��� ����,�n�o�����,����(�t��ÒÓ�P����ÔÖ�8��{�����­§� ,Á�™�4,À�-¶ØÀò:¹Ú�™�»ÝYß·á¿Æ�i¶â°,¹�:Æ�T6§�F2Á�™�82À�-¶ØÀò:¹Ú�™�»ÝYß·á¿Æ�¶â°„¾¡ÿ¸,¹�ç�M,Çÿb»ÔY+·æ¿����[���Z�����
                                    ! ���#�.!�3"�;&�C'�H(�N)�Y+�h*�j,�v-�/�†0�Ž(�™6� �¤8�\���\�	���­�n�o�����­ç�����­�Í�����­=�����­è����$éê��C�Vë���K�N�t��j�$éê��ìí�P����ÔÖ�8���Ì�����F+.¶î>›�5+¶d:+`¶Š:*¶�²:Æ�*+,·ñ°»ÔY+·æ¿*+*+,·ñ°����[���&�	��>�?�@�A�C�$D�)E�4H�=L�\���H����F�n�o�����Fç�����Fè����?Û�t���*ó����!ô���$�õ���ö�‹��8���,�����¬����[������R�\��������n�o���÷ø��8��p�����¤+Á�™�ž*N+À�:-¶ÊÆ�¶ÊÇ�-¶Ê¹ù�=š�=¬-¶ÊÇ�¶ÊÆ�-¶ʶû=š�=¬-¶ÊÆ� ¶ÊÆ�-¶Ê¶ʹù�=™�¬*+·ü=š�"¸H¶ý*¶7¹C�+À�¶7¹C�¶¬¬¬����[���b���Y�[�	\�^�_�*`�.a�0c�2e�Af�Kg�Oh�Qj�Sl�bm�qn�uo�ws�}t�u�v�œu� y�¢}�\���R����¤�n�o�����¤ÂÃ��*��Î�t��K��Î�t��q��Î�t��}�%�Î�t��	�™�o���“�o��[\��8���S�����*»	Y·µ*´+¹�W±����[������…�†�‡�\��������n�o������5�4����8���/�����*´°����[������‹�\��������n�o����-��8���/�����*´°����[�������\��������n�o���	¢£�P����Q�8����
                                    ���õM»ŸY+·£N»]Y·_:§�Ð-¶«:»ŸYk·£:»Y*¶½¶«`*·:¶³™�‹¶«’¶�·š�»QY»�™Y·�¡¶�¤¶�¨·±¿»ŸY¶« ·£:»]Y·_M§�?¶«:		å¶"6
                                      	
                                      ¶d:	
                                    ! 	¶`¶d:,»gY`·i¹¤�W¶³šÿ¿,Æ�	,¶$¹¤�W-¶³šÿ/*¶'±����[���Š�"��«�¬�­�
                                    ! ¬�¯�°�²� ³�&´�)³�.µ�6¶�=·�>µ�C¸�Kº�Y»�s¼�|½�¼�„¿�ŒÀ�Â�–Ã�ŸÄ�©Å�·Æ�ËÀ�ÓÉ�×Ê�ÝË�ç°�îÍ�ôÎ�\���„�
                                    ���õ�Î�o�����õ*����ó+�4���ç,»���Þ-�4�� �Ç.���.�¹/»��C�¤01��„�O2»��–�53��	�Ÿ�,4�t�
                                    ! �©�"5���·�6����)\��8���W�����*++¹Â�½7¹'�À9µ±����[������×�Ø�×�Ù�\��������n�o�����-�4��:���;
                                    \ No newline at end of file
                                    --- 155,204 ----
                                      ¶d¹¤�W`:{ �
                                     �§�6„¤ü–*Æ�*¹§�™�		µ¨	¶4Ç�1»QY»�™Yª·�¡»�œYd·¬¶�¤¯¶�¤¶�¨·±¿		¸²¶¶»�àY	·º:	¶½U¶�·š�
                                      	¶¾
                                      ¹Â�½�:6§� »�àY
                                    ! ¹Å�À�œ	·ºS„¾¡ÿÞ	¶È	¶™�	¶ÊÆ�		¶Ë	°����[��ò�|��I�K�
                                    ! L�M�N�
                                    O�K�P�Q�#S�'T�*[�-\�0]�3^�6_�=`�Pa�Sb�Yc�`d�ce�ih�oi�}j�€k�†o�”p�—q�šr�©s�¯u�½v�Àw�Ãx�Òy�Ø{�ß|�â}�û€$ƒ1„4…J†O‡U‰\‹_ŒxŽ‚‘›“§”¸•Í–З֚ìùžþŸ¡¢¤'¥-¦3¨>ªD«J­U®[¯a±l²r³x´~¶‰¹ª¼½½Å¾ËÁÑÄäÅêÇðÈúÉ�Ê
                                    ! ÍÎÏ"Î+Ò1Ô;ÕAÖHÚUÝ[ÞeßkàxäˆçŒêœì _ªï®ð·ñ½ôÅõóøúüý#�/5OZaqw	�\�����z�p�����z�q�r���z�
                                    ����z�����zÎÏ���zÐ�t���zÑ�t���z�5�4��uÒ���g�Î�o�	�#WÓ�4�
                                      �'S���*P�t��-M�t�
                                    �0J×�t��3GØ�t��6DÙÚ��:pÛ�t��PPÜÚ��SMÝ��ú�1Þ�t�;�Þ�t�e�#Þ�t��lß��/�K�"��2�(�t��àá��8���>�����*+µ�•±����[���
                                    ! ���
                                    ��\��������n�o������Ž���âá��8���>�����*+µ�“±����[���
                                    ! �����\��������n�o������Ž���ãá��8���>�����*+µ'±����[���
                                    ! �����\��������n�o�����ä���åæ��8���>�����*+µ#±����[���
                                    ! �����\��������n�o��������çæ��8���>�����*+µ!±����[���
                                    ! �����\��������n�o��������èé��8���>�����*+µ�ˆ±����[���
                                    ! ���!�"�\��������n�o�������+��êé��8���>�����*+µ�†±����[���
                                    ! ���%�&�\��������n�o�������+���«��8���a�����/*´ëÇ�*´�f°»�™Y*´ë¹í�¸�›·�¡å¶�¤*´�f¶�¤¶�¨°����[������*�+�.�\�������/�n�o���î�«��8���/�����*´�f°����[������3�\��������n�o���Ÿ�£��8���>�����*+µ�f±����[���
                                    ! ���7�8�\��������n�o����������ÀÁ��8���>�����*+µ0±����[���
                                    ! ���;�<�\��������n�o������0���ï�7�P����Q�8��/����ç*´�hšâ*µ�h*´ëÆ�
                                    *´ëÀ�¶ð*´0Á�à™�**´0¹�â�¶�²L+Æ�*+µ0*´�ýÆ�;<§�-*´�ý2Á�à™�**´�ý2¹�â�¶�²M,Æ�
                                      *´�ý,S„*´�ý¾¡ÿÐ*´�•Æ�J<§�<*´�•2Àò¶ô*´�•2¹õ�ø¶�·™�*½öY*´�•2Sµ%*µ�Œ„*´�•¾¡ÿÁ*´#Æ� <§�*´#2Àù¶û„*´#¾¡ÿë*´�ˆÆ� <§�*´�ˆ2Àü¶þ„*´�ˆ¾¡ÿë»]Y·_L*´ÿÆ�Ç*´ÿ¹�M§�›,¹�ÀùN-¶û-¶
                                      ¶�·™�-¶
                                    ¶�·š�k-¶
                                      ¶�·™�-¶
                                    ¶�·š�Q-¶
                                      ¶�·™�-¶
                                    ¶�·š�7-¶
                                      ¶�·™�-¶
                                    ¶�·š�-¶
                                    ! ¶�·™�-¶
                                     ¶�·™�+-¹¤�W,¹"�šÿb*+½%¹'�À+µ)*µÿ±����[���Ê�2��?�@�B�C�L�'N�5P�9X�>\�E]�J^�V`�fa�jj�q]�}p�„q�‰r�•s�©t�ºu�¿q�Ëz�Ò{�×|�ã{�ï€�ö�û‚†ˆ"‰/Š9‹=JŽWdq‘~’‹“˜”¥•²–¿˜Ç‰Ð›áœæŸ�\���f�
                                    ! ��ç�n�o���5�	,���G�6�t��f�,���†�E�t��Ô��t��ø��t��Ë-�4�,�¤./�9�Ž01��23��8���:�����*+¸4°����[������¢�\��������n�o��������
                                    ! 26��8���Æ�����H*+¸7M,Æ�,°*¹�N6§�-2+¸4M,Æ�,°„-¾¡ÿê*¹�ç�Æ�*¹�ç�+¸4°°����[���2���§�¨�
                                    ! ©�¬�­�®�"¯�&°�(­�2³�;´�F·�\���4����H�Í������H����B:;���5�"�����t��
                                    ! 96��8���‡�����+*¹<�M>§�,2¹õ�+¶�·™�,2°„,¾¡ÿç°����[������¾�¿�
                                    À�Á� ¿�)Ä�\���*����+�Í������+����#�Ž���
                                      ��t��93��8���z�����,=§�*´�“2¹õ�+¶�·™�
                                    ! *´�“2°„*´�“¾¡ÿÞ°����[������È�É�Ê�È�*Í�\��� ����,�n�o�����,=����(�t��>�7��8��3�����™*·?*´�•Æ� <§�*´�•2Àò¶A„*´�•¾¡ÿë*´'Æ� <§�*´'2Àò¶A„*´'¾¡ÿë*´#Æ� <§�*´#2Àù¶B„*´#¾¡ÿë*´�ˆÆ� <§�*´�ˆ2Àü¶C„*´�ˆ¾¡ÿë*¶D±����[���N���Ò�Ô�Õ�Ö�Õ�(Ú�/Û�4Ü�@Û�Lß�Sà�Xá�dà�pä�wå�|æ�ˆå�”ê�˜ë�\���4����™�n�o���
                                    ��t��1��t��U��t��y��t��G�‹��8���7�����
                                    *´™�§�¬����[�������\�������
                                    �n�o����1�‹��8���k�����1**´�l¦�"*´�jš�*´ëÆ�¸H*´¨¶Lš�¬¬*´�l¹P�¬����[��������
                                    �&�'�\�������1�n�o����R��8���>�����*µ�j±����[���
                                    ! �����\��������n�o���������S�û��8���>�����*+µ�}±����[���
                                    ! �����\��������n�o������
                                    ����TU�P����Q�8��Š����`+[¶m=`N›�F6§�-V+¶X¶m›�»�™Y-¸�›·�¡+¶X¶h¶�¨N„+¶`¡ÿÐ+¶d¶\L*+-¶_:Æ�°²�Y»�™Y+¸�›·�¡-¶�¤¶�¨¹�¬�Àa:Æ�@¹c�-¶�·™�°À�¹�º�Àa:À�-¹�¾�°:»QY¶d·±¿T+¶�·š�LJ+¶�·š�CN+¶�·š�:L+¶�·š�1@+¶�·š�(H+¶�·š�e+¶�·š�P+¶�·š�R+¶�·™�/»gY+-·i:²�Y»�™Y+¸�›·�¡-¶�¤¶�¨¹�Á�W°¸H¶lW»�àY+*·º:À�-¹�¾�°��…�•�³�Ê�–�²�³�Ê��[���’�$��"�#�
                                    ! $�%�&�#'�;%�G*�Q-�Y.�^/�a2�€3�…5�“6�–9�¥:�°;�³>�µ?�ÂC�ËD�ÔE�ÝF�æG�ïH�øIJKL M=N@QGURV]W�\���p���`�n�o����`3���YÛ�t��
                                    ! Vo����6�t��Y�Í���€�àpq��¥��Îq��µ�
                                    �Ï�Ð� � �Îq�R��Îq��r�‹��8���o�����#*L§�s+¹�â�¶�·™�¬+¹�ç�L+Çÿç¬����[������[�\�_�`�]�\�!b�\�������#�n�o�����ì���u�‹��8���g�����#*L§�v+¹�â�¶�·™�¬+¹�ç�L+Çÿç¬����[������f�g�h�f�!j�\�������#�n�o�����ì���x�‹��8���C�����*¶yš�*¶{š�*¶š�¬¬����[������n�\��������n�o���|��8���>�����*µ±����[���
                                    ! ���r�s�\��������n�o��������ˆ��8���>�����*µ±����[���
                                    ! ���v�w�\��������n�o����������8���>�����*µ±����[���
                                    ! ���{�|�\��������n�o��������}~��8���°�����6*N§�.-+¸M,Æ�,°-+¸ƒM,Æ�,°-¹�ç�:Ç�§�
                                    ! N-ÇÿÔ°����[���.����‚�ƒ�„�…�‡�%ˆ�*‰�-Œ�0�4�\���4����6�n�o�����6‡����%�Έ���2�ì���%�‰���	…†��8���‡�����#+(¶m=�°*+¶Š¸N*+¶d-¸‘°����[���"���“�”�•�
                                    —�˜�™�š�˜�\���*����#�Í������#‡����Û�t���”���	…“��8���»�����C*¹•�N-Æ�86§�+-2:¹–�+¶�·™�¹™�,¶�·™�°„-¾¡ÿÔ°����[���"���Ÿ� �¡�¢�£�4¤�7¡�A§�\���>����C�Í������C�����C����;�*�+���2�t���š›��	‚��8��������'+(¶m=�°+¶dN*+¶Š¸:*-¸œ°����[������«�¬�­�
                                    °�±�²�\���4����'�Í������'‡���� Û�t�������”���
                                      ��8��•�����Í++¶`d¶d¶\L+¶`š� °»ŸY+¡·£M»¦Y¨·ªN§�‰,¶«¶\:¶`6§�„ÿž�d¶X[Ÿÿíd¶X]Ÿÿ߶Š:¶d:*¹®�:-¶¯¤�-¡¶°WÆ�-¹�â�¶°W§�
                                    ! -¶°W-¶°W,¶³šÿv-)¶¶W-¶¹°����[���^���¸�¹�º�¼�&½�1¾�4¿�=À�DÁ�GÂ�JÁ�kÄ�tÅ�~Æ�ˆÇ�È�˜Ê�Ë�¬Î�³Ð�º¾�ÁÒ�ÈÓ�\���R����Í�Í������Í���&�§º»��1�œ”¼��=�}p���D�vÛ�t��t�Fo���ˆ�2½���	ž��8���»�����C*¹¾�N-Æ�86§�+-2:¹¿�+¶�·™�¹À�,¶�·™�°„-¾¡ÿÔ°����[���"���×�Ø�Ù�Ú�Û�4Ü�7Ù�Aß�\���>����C�Í������C�����C����;�(����2�t���0Á���¹�G��8���V�����"+Æ�+Á�™�+À�¹�â�*¶½¶�·™�¬¬����[������ã�\�������"�n�o�����"ÂÃ���Ä\��8���>�����*+µÿ±����[���
                                    ! ���é�ê�\��������n�o������3�4���À�£��8���>�����*+µ�b±����[���
                                    ! ���í�î�\��������n�o����������¼�½�P�����Ê�8���N�����*·ÅÀ�L+*´�lµ�l+°����[������ñ�ò�ó�\��������n�o����
                                    ! Æ�o��Çc��8���/�����*·Ȭ����[������ø�\��������n�o���Êc��8���2�����*¶F¶ˬ����[������ý�\��������n�o���Ì�é��8���/�����*´�l°����[�������\��������n�o���Í3��8���z�����,=§�+*´�•2¹õ�¶�·™�
                                    ! *´�•2°„*´�•¾¡ÿÞ°����[��������	��*�\��� ����,�n�o�����,����(�t��ÎÏ��8���š�����>>§�1+*´#2¹¿�¶�·™�,*´#2¹À�¶�·™�
                                    ! *´#2°„*´#¾¡ÿÌ°����[���������)�0�<�\���*����>�n�o�����>�����>����:�t��ÐÑ��8���z�����,=§�+*´�ˆ2¹™�¶�·™�
                                    ! *´�ˆ2°„*´�ˆ¾¡ÿÞ°����[����������*"�\��� ����,�n�o�����,����(�t��ÒÓ�P����ÔÖ�8��{�����­§� ,Á�™�4,À�-¶ØÀò:¹Ú�™�»ÝYß·á¿Æ�i¶â°,¹�:Æ�T6§�F2Á�™�82À�-¶ØÀò:¹Ú�™�»ÝYß·á¿Æ�¶â°„¾¡ÿ¸,¹�ç�M,Çÿb»ÔY+·æ¿����[���Z���+�,�
                                    ! .�-�/�#0�.2�33�;7�C8�H9�N:�Y<�h;�j=�v>�@�†A�Ž9�™G� +�¤I�\���\�	���­�n�o�����­ç�����­�Í�����­=�����­è����$éê��C�Vë���K�N�t��j�$éê��ìí�P����ÔÖ�8���Ì�����F+.¶î>›�5+¶d:+`¶Š:*¶�²:Æ�*+,·ñ°»ÔY+·æ¿*+*+,·ñ°����[���&�	��O�P�Q�R�T�$U�)V�4Y�=]�\���H����F�n�o�����Fç�����Fè����?Û�t���*ó����!ô���$�õ���ö�‹��8���,�����¬����[������c�\��������n�o���÷ø��8��p�����¤+Á�™�ž*N+À�:-¶ÊÆ�¶ÊÇ�-¶Ê¹ù�=š�=¬-¶ÊÇ�¶ÊÆ�-¶ʶû=š�=¬-¶ÊÆ� ¶ÊÆ�-¶Ê¶ʹù�=™�¬*+·ü=š�"¸H¶ý*¶7¹C�+À�¶7¹C�¶¬¬¬����[���b���j�l�	m�o�p�*q�.r�0t�2v�Aw�Kx�Oy�Q{�S}�b~�q�u€�w„�}…�†�‡�œ†� Š�¢Ž�\���R����¤�n�o�����¤ÂÃ��*��Î�t��K��Î�t��q��Î�t��}�%�Î�t��	�™�o���“�o��[\��8���S�����*»	Y·µ*´+¹�W±����[������–�—�˜�\��������n�o������5�4����8���/�����*´°����[������œ�\��������n�o����-��8���/�����*´°����[������¡�\��������n�o���	¢£�P����Q�8����
                                    ���õM»ŸY+·£N»]Y·_:§�Ð-¶«:»ŸYk·£:»Y*¶½¶«`*·:¶³™�‹¶«’¶�·š�»QY»�™Y·�¡¶�¤¶�¨·±¿»ŸY¶« ·£:»]Y·_M§�?¶«:		å¶"6
                                      	
                                      ¶d:	
                                    ! 	¶`¶d:,»gY`·i¹¤�W¶³šÿ¿,Æ�	,¶$¹¤�W-¶³šÿ/*¶'±����[���Š�"��¼�½�¾�
                                    ! ½�À�Á�Ã� Ä�&Å�)Ä�.Æ�6Ç�=È�>Æ�CÉ�KË�YÌ�sÍ�|Î�Í�„Ð�ŒÑ�Ó�–Ô�ŸÕ�©Ö�·×�ËÑ�ÓÚ�×Û�ÝÜ�çÁ�îÞ�ôß�\���„�
                                    ���õ�Î�o�����õ*����ó+�4���ç,»���Þ-�4�� �Ç.���.�¹/»��C�¤01��„�O2»��–�53��	�Ÿ�,4�t�
                                    ! �©�"5���·�6����)\��8���W�����*++¹Â�½7¹'�À9µ±����[������è�é�è�ê�\��������n�o�����-�4��:���;
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions�¹�$java/lang/CloneNotSuppor
                                    *** 29,39 ****
                                      SourceFile�ClassDocProxy.java�!��������	�
                                      �����
                                      �����
                                    �����
                                    ! ���?��������µ�����=*·�*µ�*¸�+,À�¶�!µ�'*,µ�)+.¶�+>›�*+`¶�1µ�5§�*+µ�5±����7���6�
                                    ���"�� �
                                    ! �$��%��&��%��$��'��(�%�)�)�*�7�-�<�/�8���*����=�9�:�����=��
                                    ! ����=��
                                    ��%��;�<���=�>�����C�����»�?YA·�C*´�'¶�FJ¶�F¶�L°����7�������3�8��������9�:����O�P�����/�����½�Q°����7�������6�8��������9�:����O�S�����9�����½�Q°����7�������7�8��������9�:������T�U���V�W�����,�����¬����7�������8�8��������9�:����X�Y�����/�����½�Z°����7�������9�8��������9�:����X�\�����9�����½�Z°����7�������:�8��������9�:������T�U���]�^�����6�����°����7�������;�8��������9�:������_�
                                    ! ���`�a�����/�����½�°����7�������<�8��������9�:����b�c�����/�����½�d°����7�������=�8��������9�:����f�a�����/�����½�°����7�������>�8��������9�:����f�g�����9�����½�°����7�������?�8��������9�:������T�U���h�a�����/�����½�°����7�������@�8��������9�:����i�W�����,�����¬����7�������A�8��������9�:����j�W�����,�����¬����7�������B�8��������9�:����k�W�����,�����¬����7�������C�8��������9�:����l�m�����/�����½�n°����7�������D�8��������9�:����l�p�����9�����½�n°����7�������E�8��������9�:������T�U���q�Y�����/�����½�Z°����7�������F�8��������9�:����r�m�����/�����½�n°����7�������G�8��������9�:����s�t�����6�����¬����7�������H�8��������9�:������u�
                                    ���v�w�����,�����°����7�������I�8��������9�:����x�w�����,�����°����7�������J�8��������9�:����y�z�����.�����²�{°����7�������\�8��������9�:�����W�����,�����¬����7�������_�8��������9�:����‚�W�����,�����¬����7�������`�8��������9�:����ƒ�W�����,�����¬����7�������a�8��������9�:����„�W�����,�����¬����7�������b�8��������9�:����…�W�����,�����¬����7�������c�8��������9�:����†�W�����,�����¬����7�������d�8��������9�:����‡�>�����-�����°����7�������e�8��������9�:����ˆ�‰�����,�����¬����7�������f�8��������9�:�����>�����/�����*´�'°����7�������g�8��������9�:����Š�>�����,�����°����7�������h�8��������9�:����‹�Œ�����/�����½�°����7�������i�8��������9�:�����>�����,�����°����7�������j�8��������9�:�����Œ�����/�����½�°����7�������k�8��������9�:����‘�W�����,�����¬����7�������l�8��������9�:����’�W�����,�����¬����7�������m�8��������9�:����“�W�����,�����¬����7�������n�8��������9�:����”�W�����,�����¬����7�������o�8��������9�:����•�W�����,�����¬����7�������p�8��������9�:����–�W�����,�����¬����7�������q�8��������9�:����—�W�����,�����¬����7�������r�8��������9�:����˜�W�����,�����¬����7�������s�8��������9�:����™�W�����,�����¬����7�������t�8��������9�:����	�>�����/�����*´�5°����7�������u�8��������9�:����š�›�����,�����°����7�������v�8��������9�:����œ������/�����½�ž°����7�������w�8��������9�:���� �E�����5������±����7�������x�8��������9�:������¡�
                                    ! ���¢�Œ�����/�����½�°����7�������y�8��������9�:����¢�£�����9�����½�°����7�������z�8��������9�:������¤�
                                    ! ���¥�>�����/�����*´�5°����7�������{�8��������9�:����¦�>�����/�����*´�'°����7�������|�8��������9�:�����>�����/�����*´�°����7�������}�8��������9�:����§�w�����,�����*°����7�������~�8��������9�:����¨�©�����,�����°����7��������8��������9�:����ª�W�����,�����¬����7�������€�8��������9�:����N�>�����O�����%»�?Y«·�C*´�'¶�F­¶�F*´�)¶�¯²¶�F¶�L°����7�������‚�8�������%�9�:����´�E�����>�����*+µ�±����7���
                                    ! ����…��†�8��������9�:�������
                                    ! ���µ�¶��·�����¸����/�����*·�º°����7�������‰�8��������9�:����¼�½�����\����� +Á�¾™�¸�À¶�Ä*¶�È+À�¾¹�Ê�¶�ˬ¬����7�������Ž����’�8������� �9�:����� �Ñ�Ò���Ó�Ô�����/�����½�Õ°����7�������–�8��������9�:����×����Ø
                                    \ No newline at end of file
                                    --- 29,39 ----
                                      SourceFile�ClassDocProxy.java�!��������	�
                                      �����
                                      �����
                                    �����
                                    ! ���?��������µ�����=*·�*µ�*¸�+,À�¶�!µ�'*,µ�)+.¶�+>›�*+`¶�1µ�5§�*+µ�5±����7���6�
                                    ���3��1�
                                    ! �5��6��7��6��5��8��9�%�:�)�;�7�>�<�@�8���*����=�9�:�����=��
                                    ! ����=��
                                    ��%��;�<���=�>�����C�����»�?YA·�C*´�'¶�FJ¶�F¶�L°����7�������D�8��������9�:����O�P�����/�����½�Q°����7�������G�8��������9�:����O�S�����9�����½�Q°����7�������H�8��������9�:������T�U���V�W�����,�����¬����7�������I�8��������9�:����X�Y�����/�����½�Z°����7�������J�8��������9�:����X�\�����9�����½�Z°����7�������K�8��������9�:������T�U���]�^�����6�����°����7�������L�8��������9�:������_�
                                    ! ���`�a�����/�����½�°����7�������M�8��������9�:����b�c�����/�����½�d°����7�������N�8��������9�:����f�a�����/�����½�°����7�������O�8��������9�:����f�g�����9�����½�°����7�������P�8��������9�:������T�U���h�a�����/�����½�°����7�������Q�8��������9�:����i�W�����,�����¬����7�������R�8��������9�:����j�W�����,�����¬����7�������S�8��������9�:����k�W�����,�����¬����7�������T�8��������9�:����l�m�����/�����½�n°����7�������U�8��������9�:����l�p�����9�����½�n°����7�������V�8��������9�:������T�U���q�Y�����/�����½�Z°����7�������W�8��������9�:����r�m�����/�����½�n°����7�������X�8��������9�:����s�t�����6�����¬����7�������Y�8��������9�:������u�
                                    ���v�w�����,�����°����7�������Z�8��������9�:����x�w�����,�����°����7�������[�8��������9�:����y�z�����.�����²�{°����7�������m�8��������9�:�����W�����,�����¬����7�������p�8��������9�:����‚�W�����,�����¬����7�������q�8��������9�:����ƒ�W�����,�����¬����7�������r�8��������9�:����„�W�����,�����¬����7�������s�8��������9�:����…�W�����,�����¬����7�������t�8��������9�:����†�W�����,�����¬����7�������u�8��������9�:����‡�>�����-�����°����7�������v�8��������9�:����ˆ�‰�����,�����¬����7�������w�8��������9�:�����>�����/�����*´�'°����7�������x�8��������9�:����Š�>�����,�����°����7�������y�8��������9�:����‹�Œ�����/�����½�°����7�������z�8��������9�:�����>�����,�����°����7�������{�8��������9�:�����Œ�����/�����½�°����7�������|�8��������9�:����‘�W�����,�����¬����7�������}�8��������9�:����’�W�����,�����¬����7�������~�8��������9�:����“�W�����,�����¬����7��������8��������9�:����”�W�����,�����¬����7�������€�8��������9�:����•�W�����,�����¬����7��������8��������9�:����–�W�����,�����¬����7�������‚�8��������9�:����—�W�����,�����¬����7�������ƒ�8��������9�:����˜�W�����,�����¬����7�������„�8��������9�:����™�W�����,�����¬����7�������…�8��������9�:����	�>�����/�����*´�5°����7�������†�8��������9�:����š�›�����,�����°����7�������‡�8��������9�:����œ������/�����½�ž°����7�������ˆ�8��������9�:���� �E�����5������±����7�������‰�8��������9�:������¡�
                                    ! ���¢�Œ�����/�����½�°����7�������Š�8��������9�:����¢�£�����9�����½�°����7�������‹�8��������9�:������¤�
                                    ! ���¥�>�����/�����*´�5°����7�������Œ�8��������9�:����¦�>�����/�����*´�'°����7��������8��������9�:�����>�����/�����*´�°����7�������Ž�8��������9�:����§�w�����,�����*°����7��������8��������9�:����¨�©�����,�����°����7��������8��������9�:����ª�W�����,�����¬����7�������‘�8��������9�:����N�>�����O�����%»�?Y«·�C*´�'¶�F­¶�F*´�)¶�¯²¶�F¶�L°����7�������“�8�������%�9�:����´�E�����>�����*+µ�±����7���
                                    ! ����–��—�8��������9�:�������
                                    ! ���µ�¶��·�����¸����/�����*·�º°����7�������š�8��������9�:����¼�½�����\����� +Á�¾™�¸�À¶�Ä*¶�È+À�¾¹�Ê�¶�ˬ¬����7�������Ÿ�� ��£�8������� �9�:����� �Ñ�Ò���Ó�Ô�����/�����½�Õ°����7�������§�8��������9�:����×����Ø
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions�$java/lang/CloneNotSuppor
                                    *** 37,48 ****
                                      SourceFile�ClassDocReflectedImpl.java�!��������	�
                                      ���������
                                    ��������������
                                      �����@��������/������»�Y·�³�±�������
                                    ! ����$�
                                    ! ��������	� �!�����`�����²�*¹�"�À�L+Æ�+°»�Y*·�(°�����������)��(�
                                    �*��+��.���������	�
                                    ! ���
                                    ��+�,����*����‰�����Ï*·�-*.µ�0²�+*¹�2�W*+µ�6+¶�8M,.¶�>>›�*,`¶�Dµ�H§�*,µ�H+¶�J:Æ�4+¶�8N¶�Pš�(*²�¹�"�À�µ�T*´�TÇ�*»�Y·�(µ�T+¶�V:*¾½�µ�Z6§�:*´�Z²�2¹�"�À�S*´�Z2Ç�*´�Z»�Y2·�(S„¾¡ÿı�������Z����2��"�
                                    ! �4��8��9��:�&�;�*�<�8�?�=�B�C�C�T�D�e�E�l�F�y�J��K�‰�L��M�¦�N�°�O�Ã�L�Î�S����H����Ï�\�,�����Ï�	�
                                      ���°�]���&�©�^�_��C�Œ�`�
                                    ! ���P�a�b��Œ�B�c�_���d�e�����/�����½�f°�����������U���������\�,����d�h�����9�����½�f°�����������V���������\�,������i�j���k�l�����,�����¬�����������W���������\�,����m�n�����/�����½�o°�����������X���������\�,����m�q�����9�����½�o°�����������Y���������\�,������i�j���r�s�����6�����°�����������Z���������\�,������]����t�u�����/�����½�°�����������[���������\�,����v�w�����/�����½�x°�����������\���������\�,����z�u�����/�����½�°�����������]���������\�,����z�{�����J�����™�½�°*´�Z°�����������`��a�	�d���������\�,������i�j���|�u�����/�����½�°�����������h���������\�,����}�l�����,�����¬�����������i���������\�,����~�l�����,�����¬�����������j���������\�,�����l�����,�����¬�����������k���������\�,����€������/�����½�‚°�����������l���������\�,����€�„�����9�����½�‚°�����������m���������\�,������i�j���…�n�����/�����½�o°�����������n���������\�,����†������/�����½�‚°�����������o���������\�,����‡�ˆ�����6�����¬�����������p���������\�,������‰����`�Š�����/�����*´�T°�����������r���������\�,����‹�Š�����W�����*´�6¶�ŒL+Æ�»�Y+·�(°°�����������v��w��x��{���������\�,������
                                    ! ����‘�����·�����=*´�6L§�+¶�ŒL+¶�ŒÇÿ÷+¶�8M,.¶�>>ž�
                                    ,¶�’M§�.M¸�•,¶�›:°�������.����€����‚�
                                    ���…��†� �‡�$�ˆ�.�‹�1��:�Ž����4����=�\�,����8�¡�
                                    ! ���$�¢��� ��^�_��:��+�£���¤�l�����,�����¬�����������‘���������\�,����¥�l�����,�����¬�����������’���������\�,����¦�l�����,�����¬�����������“���������\�,����§�l�����,�����¬�����������”���������\�,����¨�l�����,�����¬�����������•���������\�,����©�l�����,�����¬�����������–���������\�,����ª�=�����-�����.°�����������—���������\�,����«�¬�����,�����¬�����������˜���������\�,����­�=�����9�����*´�6¶�8$.¶�®°�����������™���������\�,����²�=�����,�����°�����������š���������\�,����³�´�����/�����½�µ°�����������›���������\�,����·�=�����,�����°�����������œ���������\�,����¸�´�����/�����½�µ°��������������������\�,����¹�l�����,�����¬�����������ž���������\�,����º�l�����,�����¬�����������Ÿ���������\�,����»�l�����,�����¬����������� ���������\�,����¼�l�����,�����¬�����������¡���������\�,����½�l�����,�����¬�����������¢���������\�,����¾�l�����,�����¬�����������£���������\�,����¿�l�����,�����¬�����������¤���������\�,����À�l�����,�����¬�����������¥���������\�,����Á�l�����,�����¬�����������¦���������\�,�����=�����/�����*´�H°�����������§���������\�,����Â�Ã�����,�����°�����������¨���������\�,����Ä�Å�����/�����½�Æ°�����������©���������\�,����È�É�����5������±�����������ª���������\�,������Ê����Ë�´�����/�����½�µ°�����������«���������\�,����Ë�Ì�����9�����½�µ°�����������¬���������\�,������Í����Î�=�����/�����*´�H°�����������­���������\�,����Ï�=�����/�����*¶�а�����������®���������\�,����Ò�Š�����,�����*°�����������¯���������\�,����Ó�Ô�����,�����°�����������°���������\�,����Õ�l�����,�����¬�����������±���������\�,����Ö�=�����C�����»�×YÙ·�Û*¶�ж�Ýá¶�ݶ�ã°�����������³���������\�,����å�æ�����\����� +Á�ç™�¸�é¶�í*¶�ñ+À�ç¹�ó�¶�ô¬¬�����������¶��·��º�������� �\�,����� �ú�û����=�����/�����*´�0°�����������¾���������\�,����ü�É�����>�����*+µ�0±�������
                                    ! ����Á��Â���������\�,����������ý�þ��ÿ���������/�����*·°�����������Å���������\�,��������/�����½°�����������È���������\�,������	
                                    \ No newline at end of file
                                    --- 37,48 ----
                                      SourceFile�ClassDocReflectedImpl.java�!��������	�
                                      ���������
                                    ��������������
                                      �����@��������/������»�Y·�³�±�������
                                    ! ����5�
                                    ! �,�������	� �!�����`�����²�*¹�"�À�L+Æ�+°»�Y*·�(°�����������:��9�
                                    �;��<��?���������	�
                                    ! ���
                                    ��+�,����*����‰�����Ï*·�-*.µ�0²�+*¹�2�W*+µ�6+¶�8M,.¶�>>›�*,`¶�Dµ�H§�*,µ�H+¶�J:Æ�4+¶�8N¶�Pš�(*²�¹�"�À�µ�T*´�TÇ�*»�Y·�(µ�T+¶�V:*¾½�µ�Z6§�:*´�Z²�2¹�"�À�S*´�Z2Ç�*´�Z»�Y2·�(S„¾¡ÿı�������Z����C��3�
                                    ! �E��I��J��K�&�L�*�M�8�P�=�S�C�T�T�U�e�V�l�W�y�[��\�‰�]��^�¦�_�°�`�Ã�]�Î�d����H����Ï�\�,�����Ï�	�
                                      ���°�]���&�©�^�_��C�Œ�`�
                                    ! ���P�a�b��Œ�B�c�_���d�e�����/�����½�f°�����������f���������\�,����d�h�����9�����½�f°�����������g���������\�,������i�j���k�l�����,�����¬�����������h���������\�,����m�n�����/�����½�o°�����������i���������\�,����m�q�����9�����½�o°�����������j���������\�,������i�j���r�s�����6�����°�����������k���������\�,������]����t�u�����/�����½�°�����������l���������\�,����v�w�����/�����½�x°�����������m���������\�,����z�u�����/�����½�°�����������n���������\�,����z�{�����J�����™�½�°*´�Z°�����������q��r�	�u���������\�,������i�j���|�u�����/�����½�°�����������y���������\�,����}�l�����,�����¬�����������z���������\�,����~�l�����,�����¬�����������{���������\�,�����l�����,�����¬�����������|���������\�,����€������/�����½�‚°�����������}���������\�,����€�„�����9�����½�‚°�����������~���������\�,������i�j���…�n�����/�����½�o°��������������������\�,����†������/�����½�‚°�����������€���������\�,����‡�ˆ�����6�����¬��������������������\�,������‰����`�Š�����/�����*´�T°�����������ƒ���������\�,����‹�Š�����W�����*´�6¶�ŒL+Æ�»�Y+·�(°°�����������‡��ˆ��‰��Œ���������\�,������
                                    ! ����‘�����·�����=*´�6L§�+¶�ŒL+¶�ŒÇÿ÷+¶�8M,.¶�>>ž�
                                    ,¶�’M§�.M¸�•,¶�›:°�������.����‘��’��“�
                                    �’��–��—� �˜�$�™�.�œ�1�ž�:�Ÿ����4����=�\�,����8�¡�
                                    ! ���$�¢��� ��^�_��:��+�£���¤�l�����,�����¬�����������¢���������\�,����¥�l�����,�����¬�����������£���������\�,����¦�l�����,�����¬�����������¤���������\�,����§�l�����,�����¬�����������¥���������\�,����¨�l�����,�����¬�����������¦���������\�,����©�l�����,�����¬�����������§���������\�,����ª�=�����-�����.°�����������¨���������\�,����«�¬�����,�����¬�����������©���������\�,����­�=�����9�����*´�6¶�8$.¶�®°�����������ª���������\�,����²�=�����,�����°�����������«���������\�,����³�´�����/�����½�µ°�����������¬���������\�,����·�=�����,�����°�����������­���������\�,����¸�´�����/�����½�µ°�����������®���������\�,����¹�l�����,�����¬�����������¯���������\�,����º�l�����,�����¬�����������°���������\�,����»�l�����,�����¬�����������±���������\�,����¼�l�����,�����¬�����������²���������\�,����½�l�����,�����¬�����������³���������\�,����¾�l�����,�����¬�����������´���������\�,����¿�l�����,�����¬�����������µ���������\�,����À�l�����,�����¬�����������¶���������\�,����Á�l�����,�����¬�����������·���������\�,�����=�����/�����*´�H°�����������¸���������\�,����Â�Ã�����,�����°�����������¹���������\�,����Ä�Å�����/�����½�Æ°�����������º���������\�,����È�É�����5������±�����������»���������\�,������Ê����Ë�´�����/�����½�µ°�����������¼���������\�,����Ë�Ì�����9�����½�µ°�����������½���������\�,������Í����Î�=�����/�����*´�H°�����������¾���������\�,����Ï�=�����/�����*¶�а�����������¿���������\�,����Ò�Š�����,�����*°�����������À���������\�,����Ó�Ô�����,�����°�����������Á���������\�,����Õ�l�����,�����¬�����������Â���������\�,����Ö�=�����C�����»�×YÙ·�Û*¶�ж�Ýá¶�ݶ�ã°�����������Ä���������\�,����å�æ�����\����� +Á�ç™�¸�é¶�í*¶�ñ+À�ç¹�ó�¶�ô¬¬�����������Ç��È��Ë�������� �\�,����� �ú�û����=�����/�����*´�0°�����������Ï���������\�,����ü�É�����>�����*+µ�0±�������
                                    ! ����Ò��Ó���������\�,����������ý�þ��ÿ���������/�����*·°�����������Ö���������\�,��������/�����½°�����������Ù���������\�,������	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��(gnu/classpath/tools/gjdo
                                    *** 12,18 ****
                                      �$�@�A��setBoilerplateComment�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�boilerplateComment�Ljava/lang/String;�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������`����������
                                    �����������������£�����M`+¾¢�F+4/ �>+`4* �4„§�+4* �+`4/ �`¬„`+¾¡ÿâ»�Y·�¿¬����
                                    ! �������c��d� �e�2�f�6�d�A�h�K�j���� ����M��
                                    �����M������M������������ç�����k,`4/ �+,`4* �!,`4* �+»�Y,d·� ¶�#§�9+¶�(Ç�2¸�,¶�2™�)»�Y,`dd·� :¶�69¶�;›�	+¶�?¬����
                                    ! ���&�	���o�
                                    ! �p��q��s�2�u�B�v�U�w�b�x�h�|����>����k��
                                    �����k�B�C����k������k�D�����k�E���U��F�G���H����I
                                    \ No newline at end of file
                                    --- 12,18 ----
                                      �$�@�A��setBoilerplateComment�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�boilerplateComment�Ljava/lang/String;�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������q����������
                                    �����������������£�����M`+¾¢�F+4/ �>+`4* �4„§�+4* �+`4/ �`¬„`+¾¡ÿâ»�Y·�¿¬����
                                    ! �������t��u� �v�2�w�6�u�A�y�K�{���� ����M��
                                    �����M������M������������ç�����k,`4/ �+,`4* �!,`4* �+»�Y,d·� ¶�#§�9+¶�(Ç�2¸�,¶�2™�)»�Y,`dd·� :¶�69¶�;›�	+¶�?¬����
                                    ! ���&�	���€�
                                    ! ���‚��„�2�†�B�‡�U�ˆ�b�‰�h�����>����k��
                                    �����k�B�C����k������k�D�����k�E���U��F�G���H����I
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                      Êþº¾���1���,gnu/classpath/tools/gjdoc/ConstructorDocImpl��1gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl��com/sun/javadoc/ConstructorDoc�<init>�Y(Lcom/sun/javadoc/ClassDoc;Lcom/sun/javadoc/PackageDoc;Lcom/sun/javadoc/SourcePosition;)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�.Lgnu/classpath/tools/gjdoc/ConstructorDocImpl;�containingClass�Lcom/sun/javadoc/ClassDoc;�containingPackage�Lcom/sun/javadoc/PackageDoc;�position� Lcom/sun/javadoc/SourcePosition;�
                                    isConstructor�()Z�
                                      SourceFile�ConstructorDocImpl.java�!������������	���\�����*+,-·�
                                    ! ±����������� ��!��"��#�
                                    ���*�������������������������������	���,�����¬�����������'�
                                    �����������������
                                    \ No newline at end of file
                                    --- 1,4 ----
                                      Êþº¾���1���,gnu/classpath/tools/gjdoc/ConstructorDocImpl��1gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl��com/sun/javadoc/ConstructorDoc�<init>�Y(Lcom/sun/javadoc/ClassDoc;Lcom/sun/javadoc/PackageDoc;Lcom/sun/javadoc/SourcePosition;)V�Code
                                      �����LineNumberTable�LocalVariableTable�this�.Lgnu/classpath/tools/gjdoc/ConstructorDocImpl;�containingClass�Lcom/sun/javadoc/ClassDoc;�containingPackage�Lcom/sun/javadoc/PackageDoc;�position� Lcom/sun/javadoc/SourcePosition;�
                                    isConstructor�()Z�
                                      SourceFile�ConstructorDocImpl.java�!������������	���\�����*+,-·�
                                    ! ±�����������1��2��3��4�
                                    ���*�������������������������������	���,�����¬�����������8�
                                    �����������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class	Tue Oct 12 15:55:12 2010
                                    *************** Debug.java�1������
                                    *** 13,22 ****
                                      ����������	���L�����³�
                                      ¸�K*Æ�
                                      *¸�³�
                                    ! ±��������������
                                    ! ���������
                                    ! ����������	���/�����*·�±��������������������!�"����#�$��	���6�����²�%*¶�)±�������
                                    ! ����"��#���������.�����#�/��	���K�����²�
                                      £�
                                    ! ²�%+¶�)±�����������&��'��)���������0�������.����1�2��	���…�����7²�
                                    ! £�2=§�'²�%»�3Y5·�7¶�9=¶�?+2¶�B¶�E¶�)„+¾¡ÿÙ±�����������,��-��.�-�-�6�1���� ����7�0������7�I�J��	�-�K����L����M
                                    \ No newline at end of file
                                    --- 13,22 ----
                                      ����������	���L�����³�
                                      ¸�K*Æ�
                                      *¸�³�
                                    ! ±�����������+��.�
                                    ! �/��(������
                                    ! ����������	���/�����*·�±�����������(���������!�"����#�$��	���6�����²�%*¶�)±�������
                                    ! ����3��4���������.�����#�/��	���K�����²�
                                      £�
                                    ! ²�%+¶�)±�����������7��8��:���������0�������.����1�2��	���…�����7²�
                                    ! £�2=§�'²�%»�3Y5·�7¶�9=¶�?+2¶�B¶�E¶�)„+¾¡ÿÙ±�����������=��>��?�-�>�6�B���� ����7�0������7�I�J��	�-�K����L����M
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 5,9 ****
                                      �����	listFiles�()[Ljava/io/File;	�� ��
                                      ��"���LineNumberTable�LocalVariableTable�this�2Lgnu/classpath/tools/gjdoc/DirectoryTree$FileNode;�subFiles�[Ljava/io/File;�i�I�
                                      SourceFile�DirectoryTree.java�InnerClasses�/�'gnu/classpath/tools/gjdoc/DirectoryTree�FileNode� ������������������	�
                                    ! ���������
                                    ���¯�����G*+µ�*·�*,µ�,¶�™�4,¶�N*-¾½�µ�6§�*´�»�Y+-2·�!S„-¾¡ÿæ±����#���&�	���(���	� ��!��"��#�#�$�)�%�<�$�$���*����G�%�&�����G�����,�'�(��&� �)�*���+����,�-���
                                      ���.�0��
                                    \ No newline at end of file
                                    --- 5,9 ----
                                      �����	listFiles�()[Ljava/io/File;	�� ��
                                      ��"���LineNumberTable�LocalVariableTable�this�2Lgnu/classpath/tools/gjdoc/DirectoryTree$FileNode;�subFiles�[Ljava/io/File;�i�I�
                                      SourceFile�DirectoryTree.java�InnerClasses�/�'gnu/classpath/tools/gjdoc/DirectoryTree�FileNode� ������������������	�
                                    ! ���������
                                    ���¯�����G*+µ�*·�*,µ�,¶�™�4,¶�N*-¾½�µ�6§�*´�»�Y+-2·�!S„-¾¡ÿæ±����#���&�	���9��0�	�1��2��3��4�#�5�)�6�<�5�$���*����G�%�&�����G�����,�'�(��&� �)�*���+����,�-���
                                      ���.�0��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 10,14 ****
                                      ��<�"�=�(J)Ljava/lang/StringBuilder;�?� ms
                                      �*�A�B��println�LineNumberTable�LocalVariableTable�this�)Lgnu/classpath/tools/gjdoc/DirectoryTree;�path�Ljava/io/File;�now1�J�now2�
                                      SourceFile�DirectoryTree.java�InnerClasses�FileNode�!������������������	���·�����W*·�
                                    ! ²�
                                    »�Y·�+¶�¶� $¶� ¶�&¶�)¸�.A*»�2Y*+·�4µ�7¸�.7²�
                                    »�Y9·� e¶�;>¶� ¶�&¶�@±����C�������-��/�"�1�&�3�3�5�8�7�V�8�D���*����W�E�F�����W�G�H��&�1�I�J��8��K�J���L����M�N���
                                      ��2��O��
                                    \ No newline at end of file
                                    --- 10,14 ----
                                      ��<�"�=�(J)Ljava/lang/StringBuilder;�?� ms
                                      �*�A�B��println�LineNumberTable�LocalVariableTable�this�)Lgnu/classpath/tools/gjdoc/DirectoryTree;�path�Ljava/io/File;�now1�J�now2�
                                      SourceFile�DirectoryTree.java�InnerClasses�FileNode�!������������������	���·�����W*·�
                                    ! ²�
                                    »�Y·�+¶�¶� $¶� ¶�&¶�)¸�.A*»�2Y*+·�4µ�7¸�.7²�
                                    »�Y9·� e¶�;>¶� ¶�&¶�@±����C�������>��@�"�B�&�D�3�F�8�H�V�I�D���*����W�E�F�����W�G�H��&�1�I�J��8��K�J���L����M�N���
                                      ��2��O��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�DocImpl.java!������
                                    �
                                    *** 120,144 ****
                                      ������������������
                                      �����
                                      ��������������������
                                    ! �����.����� ���|������<½�!³�#½�%³�'½�)³�+½�-³�/»�1Y·�3³�68¼³�9³�;»�=Y·�?³�@±����B���&�	���#��$��%��&��&�-�1d�;�!�C�������D�E�� ���›�����;»�1Y·�3L*´�FH¹�J�À�PM,Æ�>§�+,2¹�Q�¶�UW„,¾¡ÿí+¶�Y°����B�������-��/��0��1� �2�-�1�6�5�C���*����;�\�]����3�^����$�_�
                                    ! ����`����a�b�� ���K�����¸�c¶�i*¶�m+À�¹�p�¶�q¬����B�������:�C��������\�]������w�x���y�z�� ���V�����*´�F{¹�J�À�PL+Ç�½�RL+°����B�������@��A��B�C��������\�]�����^�
                                    ! ���}�E�� ���\�����"*´�~Æ�*´�~°*´�€	”›�¸�‚*´�€¶�†°°����B�������G��H��I��J� �L�C�������"�\�]����Œ�z�� ���V�����*´�F¹�J�À�PL+Ç�½�RL+°����B�������R��S��T�C��������\�]�����^�
                                    ! ������ ���,�����¬����B�������Y�C��������\�]����‘��� ���,�����¬����B�������^�C��������\�]����’��� ���,�����¬����B�������c�C��������\�]����“��� ���,�����¬����B�������h�C��������\�]����”��� ���,�����¬����B�������m�C��������\�]����•��� ���,�����¬����B�������r�C��������\�]����–��� ���,�����¬����B�������w�C��������\�]����—��� ���,�����¬����B�������|�C��������\�]����˜��� ���,�����¬����B�������€�C��������\�]����™��� ���,�����¬����B�������…�C��������\�]����š�›�� ���7�����
                                    *œ²�#¶�žÀ�¢°����B�������Š�C�������
                                    �\�]���� �¡�� ���f�����*´�F+¹�J�À�PN-Ç�,N-°����B�������Ž�����C���*�����\�]������¤������¥�
                                      ����^�
                                      ���¦�§�� ���>�����*+µ�~±����B���
                                    ! ����•��–�C��������\�]����������¨��� ��²�����ô*´�~Æ�’*´�F¹�©�™�†*´�~¶�¬L*´�~¶�²=>6+4/ �,+4* �$+4* �+d4* �+d4/ �>6*+d*·�¶*·�º*´�¾¸�Àµ�F¸�c¶�Ä™�*¸�‚*´�~¶�ǵ�€*µ�~*¶�˧�`*´�F¹�©�™�T*´�¾Æ�M*´�Fν�RY»�ÐYÒ*´�¾*·�¶·�ÔS¹�×�W*´�FÒ½�RY»�ÐYÒ*´�¾*·�¶·�ÔS¹�×�W±����B���r����š��›��œ�#��%�ž�(�Ÿ�0� �8�¡�@�¢�J�£�T�¥�V�¦�Y�©�[�ª�\�«�`�¬�d�­�h�®�i�¯�m�©�s�±�|�²�Š�³��¶�–�¸�©�¹�Î�º�ó�¼�C���4����ô�\�]����{�Û���#�s�´���%�q�Ü���(�n�Ý���	�Þ�ß�� ���r�����§�*4=¸�àš�§�„*¾¡ÿì¬����B�������¿��À��Á��Â��Å��¿��È�C��� �����æ�������ç����
                                    �è�é��
                                    ! �ê�ë�� �������j¸�c¶�ì™�]»�ïY*d·�ñN¸�c¶�ô¸�ø:-¶�þ¶6 �¬¬*4. �"`Ÿ�*`4¸š�*`¸™�¬„¡ÿÔ¬����B���B����Û�	�Ü��Ý�!�Þ�'�ß�.�à�4�á�6�ä�9�é�A�ê�H�ë�S�ì�^�î�`�ñ�c�è�h�ó�C���>����j�I������j�ç�����j����#
                                    ��!���.����
                                      
                                      �� ��d��	���ª½�­YSYSYSYSYSYSYSY SY"SY	$SY
                                    ! &SN*4< �V6§�I-2:¶�²6`¢�16§�"¶(6*``4¸,Ÿ�§�„¡ÿݬ„-¾¡ÿ¶¬����B���F����ü��ý�A�þ�L�ü�M�U�[�a�h�p�v	�
                                    ! ��’�œ�ž�¨�C���\�	���ª�I������ª0�����ª1���M�]23��X�P�`���a�=4���h�65���s�)6�����è�é��
                                    ! 78�� ���K�����²�;²�9¾¢�²�9²�;Y`³�;U±����B�������
                                    ! �"�C��������è�é���
                                    ! 79�� ���`�����*²�;*¶:`²�9¾£�**¶:²�9²�;¶;²�;*¶:`³�;±����B������&�'�(�)-�C�������*?����
                                      @A�� ���3�����³�;±����B���
                                    ! ���1�2�C��������´����
                                    ! B�E�� ���/������»�­Y²�9²�;·C°����B������6�C������
                                    ! D�µ�� ���$������²�;¬����B������;�C������	�Â�Ã�� ��S����a*¸E66*¾¤�O**¾¸G6œ�-²I¸�ø:		»OY*·Q¶�þ	¶TW	¶W	¶V6*¾¢�.*4 �„6	6
                                      ¸Y²�6¶[^:^:»�=Y·�?:
                                    
                                    »`Y·b¹�×�W
                                    {»`Y·b¹�×�W
                                    λ`Y·b¹�×�W6§¯¢�
                                      *4§�c6d¢�*`4§�c6	ª����e������
                                      ���7��§��I����Ë��†��S���ý��³��' �#
                                    H¸d-¸f:Æ�:¸Y¸�àš* � *Ÿ@ŸcŸÿ6	§ø@Ÿ�{ �
                                    --- 120,143 ----
                                      ������������������
                                      �����
                                      ��������������������
                                    ! �����.����� ���|������<½�!³�#½�%³�'½�)³�+½�-³�/»�1Y·�3³�68¼³�9³�;»�=Y·�?³�@±����B���&�	���4��5��6��7�'�&(�-)�1u�;�2�C�������D�E�� ���›�����;»�1Y·�3L*´�FH¹�J�À�PM,Æ�>§�+,2¹�Q�¶�UW„,¾¡ÿí+¶�Y°����B�������>��@��A��B� �C�-�B�6�F�C���*����;�\�]����3�^����$�_�
                                    ! ����`����a�b�� ���K�����¸�c¶�i*¶�m+À�¹�p�¶�q¬����B�������K�C��������\�]������w�x���y�z�� ���V�����*´�F{¹�J�À�PL+Ç�½�RL+°����B�������Q��R��S�C��������\�]�����^�
                                    ! ���}�E�� ���\�����"*´�~Æ�*´�~°*´�€	”›�¸�‚*´�€¶�†°°����B�������X��Y��Z��[� �]�C�������"�\�]����Œ�z�� ���V�����*´�F¹�J�À�PL+Ç�½�RL+°����B�������c��d��e�C��������\�]�����^�
                                    ! ������ ���,�����¬����B�������j�C��������\�]����‘��� ���,�����¬����B�������o�C��������\�]����’��� ���,�����¬����B�������t�C��������\�]����“��� ���,�����¬����B�������y�C��������\�]����”��� ���,�����¬����B�������~�C��������\�]����•��� ���,�����¬����B�������ƒ�C��������\�]����–��� ���,�����¬����B�������ˆ�C��������\�]����—��� ���,�����¬����B��������C��������\�]����˜��� ���,�����¬����B�������‘�C��������\�]����™��� ���,�����¬����B�������–�C��������\�]����š�›�� ���7�����
                                    *œ²�#¶�žÀ�¢°����B�������›�C�������
                                    �\�]���� �¡�� ���f�����*´�F+¹�J�À�PN-Ç�,N-°����B�������Ÿ�� ��¡�C���*�����\�]������¤������¥�
                                      ����^�
                                      ���¦�§�� ���>�����*+µ�~±����B���
                                    ! ����¦��§�C��������\�]����������¨��� ��²�����ô*´�~Æ�’*´�F¹�©�™�†*´�~¶�¬L*´�~¶�²=>6+4/ �,+4* �$+4* �+d4* �+d4/ �>6*+d*·�¶*·�º*´�¾¸�Àµ�F¸�c¶�Ä™�*¸�‚*´�~¶�ǵ�€*µ�~*¶�˧�`*´�F¹�©�™�T*´�¾Æ�M*´�Fν�RY»�ÐYÒ*´�¾*·�¶·�ÔS¹�×�W*´�FÒ½�RY»�ÐYÒ*´�¾*·�¶·�ÔS¹�×�W±����B���r����«��¬��­�#�®�%�¯�(�°�0�±�8�²�@�³�J�´�T�¶�V�·�Y�º�[�»�\�¼�`�½�d�¾�h�¿�i�À�m�º�s�Â�|�Ã�Š�Ä��Ç�–�É�©�Ê�Î�Ë�ó�Í�C���4����ô�\�]����{�Û���#�s�´���%�q�Ü���(�n�Ý���	�Þ�ß�� ���r�����§�*4=¸�àš�§�„*¾¡ÿì¬����B�������Ð��Ñ��Ò��Ó��Ö��Ð��Ù�C��� �����æ�������ç����
                                    �è�é��
                                    ! �ê�ë�� �������j¸�c¶�ì™�]»�ïY*d·�ñN¸�c¶�ô¸�ø:-¶�þ¶6 �¬¬*4. �"`Ÿ�*`4¸š�*`¸™�¬„¡ÿÔ¬����B���B����ì�	�í��î�!�ï�'�ð�.�ñ�4�ò�6�õ�9�ú�A�û�H�ü�S�ý�^�ÿ�`�c�ù�h�C���>����j�I������j�ç�����j����#
                                    ��!���.����
                                      
                                      �� ��d��	���ª½�­YSYSYSYSYSYSYSY SY"SY	$SY
                                    ! &SN*4< �V6§�I-2:¶�²6`¢�16§�"¶(6*``4¸,Ÿ�§�„¡ÿݬ„-¾¡ÿ¶¬����B���F���
                                    ��A�L
                                    �M�U�[�a�h�p�v���’�œ�ž�¨#�C���\�	���ª�I������ª0�����ª1���M�]23��X�P�`���a�=4���h�65���s�)6�����è�é��
                                    ! 78�� ���K�����²�;²�9¾¢�²�9²�;Y`³�;U±����B������-�
                                    ! .�3�C��������è�é���
                                    ! 79�� ���`�����*²�;*¶:`²�9¾£�**¶:²�9²�;¶;²�;*¶:`³�;±����B������7�8�9�)>�C�������*?����
                                      @A�� ���3�����³�;±����B���
                                    ! ���B�C�C��������´����
                                    ! B�E�� ���/������»�­Y²�9²�;·C°����B������G�C������
                                    ! D�µ�� ���$������²�;¬����B������L�C������	�Â�Ã�� ��S����a*¸E66*¾¤�O**¾¸G6œ�-²I¸�ø:		»OY*·Q¶�þ	¶TW	¶W	¶V6*¾¢�.*4 �„6	6
                                      ¸Y²�6¶[^:^:»�=Y·�?:
                                    
                                    »`Y·b¹�×�W
                                    {»`Y·b¹�×�W
                                    λ`Y·b¹�×�W6§¯¢�
                                      *4§�c6d¢�*`4§�c6	ª����e������
                                      ���7��§��I����Ë��†��S���ý��³��' �#
                                    H¸d-¸f:Æ�:¸Y¸�àš* � *Ÿ@ŸcŸÿ6	§ø@Ÿ�{ �
                                    *************** SourceFile�DocImpl.java!������
                                    �
                                    *** 155,163 ****
                                      6	¸Y§×¸n§Ï¸�àšÇ* �¢º*Ÿ³
                                      6	§¬c �3¸jžž
                                    H¸d¢�§�-¸f:Æ{:§t6	²�6¸l²�6¶[¸n§[
                                       �²�6¶pW	6	§D¸�à™�²�6¶pW§0c �7¸jž"
                                    H¸d¢�§�-¸f:Æ�:¸Y§�ô²�6¸l²�6¶[¸n6	§�Û �#
                                    H¸d-¸f:Æ�:¸Yc �1¸d:
                                    H¢�§�-¸f:Æ�…:§�~
                                    !  �¸n6	§�l{ �C@ �<¸d:
                                    H¢�§�-¸f:Æ�:„¸Y6	§�%¸n§�»sY»uYw·y	¶{¶~·¿„¤úQÇ� Æ�¸�c¶€™�
                                    Ò-¸fW»�=Y·�?:
                                    ¹ƒ�¹‡�:§�®¹�À�­:
                                    ¹�J�À’:œ¶”™�¹˜�½›:§�h¶”™�¹˜�½Ÿ:§�N¡¶”™�¹˜�½£:§�4¥¶”š�§¶”™�¹˜�½©:§�¹˜�½�R:¹«�¹�×�W¹¯�šÿN°����B��R�Ô��B�D�
                                    ! F�H�J� K�(L�7M�=N�CO�JS�QT�ZU�]d�`e�cg�gh�nj�xl�m�’n�£o�´s�»t�Íu�ãwz#{6|;}?C‚K…R‡hˆo‹ŒŒ’¯Ž³º‘½’ĕʙ͚ӛڜߞâ¡é¢ü£¤¦	©ª«­'®3°P±V²t³y´}¶¸ˆ¹‹º’½˜ÁžÂ¥ÃªÄ­Æ°É·Ê¿ÌÇÏÎ×ÝØâÙÿÚÛÝÞßàã#ç&è+ê.í>îFðMñRòVó\öa÷eøhúkýrÿw�•šž¢©¹Á
                                    ! ÈÍÑ
                                    ØÝáåèðõ%* 0#5%8(?)D*K,Z-_.|/0…2‰36•8˜; >§@´A»DÃEÉFçGìHóM÷NýOP	RUVW#Y+Z7\?]E^c_h`lbsfyg€h…i‰kŒn“o¦p«q¯s³v»wÀxÝyâzé}ð~õû	‚ƒ+„0…4‡7ˆ;‰BŒGŽJ‘dsm–€—š˜œ©µŸÃ¡Í¢Ü£ç¤ö¥¦§&¨5ªA­Tœ^°�C��ˆ�'��a²�����a�ç����a����a³´���aµ¶���a·¸���a����Z¹���
                                      Wº���(�"»�	�`¼��	�cþ½��
                                      �sî¾���xé¿���àÀ��
                                    �¸µ�`���Í—�è�é��ãÁ�é�6�
                                    ¸�ü�
                                    ¸�t�
                                    ¸�ÿ�$¸�•�¸��¸�|�¸�ç�	¸�c�
                                    ¸�¦�
                                    ¸�Ý�¸�+�¸�˜�É�^��¦�¸ÃÄ�µ�ŸÅ��Ù�Æ�
                                      �ó�Æ�
                                    --- 154,161 ----
                                      6	¸Y§×¸n§Ï¸�àšÇ* �¢º*Ÿ³
                                      6	§¬c �3¸jžž
                                    H¸d¢�§�-¸f:Æ{:§t6	²�6¸l²�6¶[¸n§[
                                       �²�6¶pW	6	§D¸�à™�²�6¶pW§0c �7¸jž"
                                    H¸d¢�§�-¸f:Æ�:¸Y§�ô²�6¸l²�6¶[¸n6	§�Û �#
                                    H¸d-¸f:Æ�:¸Yc �1¸d:
                                    H¢�§�-¸f:Æ�…:§�~
                                    !  �¸n6	§�l{ �C@ �<¸d:
                                    H¢�§�-¸f:Æ�:„¸Y6	§�%¸n§�»sY»uYw·y	¶{¶~·¿„¤úQÇ� Æ�¸�c¶€™�
                                    Ò-¸fW»�=Y·�?:
                                    ¹ƒ�¹‡�:§�®¹�À�­:
                                    ¹�J�À’:œ¶”™�¹˜�½›:§�h¶”™�¹˜�½Ÿ:§�N¡¶”™�¹˜�½£:§�4¥¶”š�§¶”™�¹˜�½©:§�¹˜�½�R:¹«�¹�×�W¹¯�šÿN°����B��R�Ô��S�U�
                                    ! W�Y�[� \�(]�7^�=_�C`�Jd�Qe�Zf�]u�`v�cx�gy�n{�x}�~�’�£€�´„�»…�͆�㈋#Œ6;Ž?C“K–R˜h™oœŒ’ž¯Ÿ³¡º¢½£Ä¦ÊªÍ«Ó¬Ú­ß¯â²é³ü´µ·	º»¼¾'¿3ÁPÂVÃtÄyÅ}ÇɈʋ˒ΘҞӥԪխװڷۿÝÇàÎèÝéâêÿëìîïðñô#ø&ù+û.þ>ÿFMRV\ae	hkrw•šž¢©¹ÁÈÍÑØ!Ý"á#å%è(ð)õ*+,/%0*1045689?:D;K=Z>_?|@A…C‰DG•I˜L O§Q´R»UÃVÉWçXìYó^÷_ý`a	cfgh#j+k7m?nEocphqlsswyx€y…z‰|Œ“€¦«‚¯„³‡»ˆÀ‰ÝŠâ‹éŽðõû’	“”+•0–4˜7™;šBGŸJ¢d„m§€¨«˜­©®µ°Ã²Í³Ü´çµö¶·¸&¹5»A¾T­^Á�C��ˆ�'��a²�����a�ç����a����a³´���aµ¶���a·¸���a����Z¹���
                                      Wº���(�"»�	�`¼��	�cþ½��
                                      �sî¾���xé¿���àÀ��
                                    �¸µ�`���Í—�è�é��ãÁ�é�6�
                                    ¸�ü�
                                    ¸�t�
                                    ¸�ÿ�$¸�•�¸��¸�|�¸�ç�	¸�c�
                                    ¸�¦�
                                    ¸�Ý�¸�+�¸�˜�É�^��¦�¸ÃÄ�µ�ŸÅ��Ù�Æ�
                                      �ó�Æ�
                                    *************** SourceFile�DocImpl.java!������
                                    �
                                    *** 166,173 ****
                                      �A��
                                      �Ã�‘ÇÈ���¸�¹�� ���o�����5*¶Éš�
                                      *¶Ë™�*ÀÍ°*¶Ïš�*¶Ñš�
                                    ! *¶Ó™�*ÀÕ¶×ÀÍ°°����B������´�µ�·�(¸�3»�C�������5�\�]����¼�½�� ���N�����*¶Ïš�*¶Ñš�
                                    ! *¶Ó™�*ÀÕ°°����B������À�Á�Ä�C��������\�]���hi�� ��å����c:,¶Û¶�²™�§�6	»uYÞ·y+¶àã¶à¶~W+¶”™�	™6»�)Y,·å:§%+œ¶”™�	™»�!Y,·è:§+붔š�
                                    +í¶”™�+	™�ï»�%Y»uYï·y+¶à¶~,·ñ:6§�Ì+ô¶”™�	™�½»öY,·ø:6§�«+ù¶”™�»ûY·ý:6§�Œ+¡¶”™�	™�}»�Y,·:§�l+¥¶”š�
                                    +§¶”™�	™�»�-Y,·:¥L§�>+H¶”™�»Y,·:6§�%»�ÐY»uYï·y+¶à¶~,¶Û·�Ô:Æ�ñ™�ž*¹�J�À’¹�W™�š+H¶”™�hÀ¶
                                      :
                                      
                                      
                                    ¶™�»Y
                                    --- 164,171 ----
                                      �A��
                                      �Ã�‘ÇÈ���¸�¹�� ���o�����5*¶Éš�
                                      *¶Ë™�*ÀÍ°*¶Ïš�*¶Ñš�
                                    ! *¶Ó™�*ÀÕ¶×ÀÍ°°����B������Å�Æ�È�(É�3Ì�C�������5�\�]����¼�½�� ���N�����*¶Ïš�*¶Ñš�
                                    ! *¶Ó™�*ÀÕ°°����B������Ñ�Ò�Õ�C��������\�]���hi�� ��å����c:,¶Û¶�²™�§�6	»uYÞ·y+¶àã¶à¶~W+¶”™�	™6»�)Y,·å:§%+œ¶”™�	™»�!Y,·è:§+붔š�
                                    +í¶”™�+	™�ï»�%Y»uYï·y+¶à¶~,·ñ:6§�Ì+ô¶”™�	™�½»öY,·ø:6§�«+ù¶”™�»ûY·ý:6§�Œ+¡¶”™�	™�}»�Y,·:§�l+¥¶”š�
                                    +§¶”™�	™�»�-Y,·:¥L§�>+H¶”™�»Y,·:6§�%»�ÐY»uYï·y+¶à¶~,¶Û·�Ô:Æ�ñ™�ž*¹�J�À’¹�W™�š+H¶”™�hÀ¶
                                      :
                                      
                                      
                                    ¶™�»Y
                                    *************** SourceFile�DocImpl.java!������
                                    �
                                    *** 179,199 ****
                                      Ç�»`Y·b:
                                      *+
                                      ¹�×�W
                                    ! ¹�W™�§�°°����B���Ò�4��Ï�Ñ�Ó�,Õ�6Ö�;×�LÝ�UÞ�Zß�iå�}æ�‚ç�Ÿè�¥î�¯ï�´ð�Àñ�Æ÷�Ðû�ßü�åþ�ïÿ�ô�,
                                    3<FLnsx‹˜¢­ ¿"Ê#ã&ç(ý,1&42576@7J9T;a>�C���˜���cÀ�����c�o����cõ����c ���c³´���cµ¶���c·¸���c! ��`4¸��O" �	¢�[#��
                                      ¼�Â$�à�Â$�ç�Â$�2�/%È�
                                    ! �À�z�� ���V�����*´�Fι�J�À�PL+Ç�½�RL+°����B������D�E�F�C��������\�]�����^�
                                    ! ��À&�� ���_�����*´�F+¹�J�À�PM,Ç�½�RM,°����B������K�L�M�C��� �����\�]�����'�����^�
                                    ! ��()�� ���/�����*´�F°����B������U�C��������\�]����Í��� ���«�����9*¶*L=§�+2À,¶.„+¾¡ÿñ*¶1M>§�,2À,¶.„,¾¡ÿñ±����B���&�	��Y�Z�
                                    ! [�Z�^�!_�&`�/_�8b�C���4����9�\�]����4À�
                                      ����`���!��Œ�
                                      ��#��`���
                                    ! 34�� ���™�����M²�@*¹�J�À5L+Ç�=»5Y*¹7�À=¹?�»uY*¹C�¸D·yH¶à¶~·JL²�@*+¹�×�W+°����B������g�
                                    h�i�#j�<i�@k�Km�C�������MMN���
                                    �@O��	PQ�� ���8�����»RY*¸T·V°����B������r�C�������MN���	PY�� �������[>66§�#
                                    ! +4 �„>§�
                                    +4Ÿ�„„¡ÿÝ*¹Z�:Æ�	K§ÿð*¸T:»RY``·V°����B���>���w�x�y�z�{�|�~�%�(y�1ƒ�9„�>…�A‚�DŒ�JŽ�C���R����[MN�����[[�����[�ç����Y\����V]����)�`���9�^N��J�_O���`�� ���/�����*´a°����B������“�C��������\�]����5c�� ���`�����*·d*eµ�€*»�=Y·�?µ�F*+µa±����B������–�Q�S�˜�™�C��������\�]���������gc�� ���>�����*+µa±����B���
                                    ! ����ž�C��������\�]���������
                                      hi�� ��c����C*ÁÍš�N§�s+Ç�*À�N§�g+¶j™�*ÀÍ+¶k¶lÀ�N§�N+¶p™�*ÀÍ+¶k+Àq¹s�¶vÀ�N§�,+¶z™�*ÀÍ+À{¹}�¶~À�N§�»‚Y„·†¿-Æ�·+Æ�³,Æ�¯:-¶*:6§�•2¹‡�,¶Š¶”™�~‹,¶Š¶”™�(2À�)¶,À�)¶¶”™�Y2À�:§�W,¶Š¶”™�(2À�-¶’,À�-¶’¶”™�'2À�:§�%•,¶Š¶”™�
                                    2À�:„¾¡ÿi°-Æ�
                                    ! -¶—™�°-°����B���Ž�#��¦�§�©�ª�¬�­�1¯�8°�@±�I°�S³�Z´�q¸�|»�€¼�„½�ˆ¿�‹Á�‘Â�—Ã�«Ä�¸Å�ÐÆ�ÚÇ�ÝÊ�êËÌÍÐÑ&Â1Ö4Ù?ÚAÝ�C���z���CMN����Cš¶���C4¸��	��]����]��.��]��P��]��n��]��|�Ç�]��‹�©›œ��‘�£À�
                                    ! ��”��`���	i�� ��s�����“*¹ž�:Æ�%6§�2+,¸¢N-Æ�-°„¾¡ÿçÆ�%6§�2+,¸¤N-Æ�-°„¾¡ÿç*¹¦�:*¹©�š�-Æ�(ª*¹¬�¶”š�+,¸¢N-Æ�-°+,¸¤°°����B���b���ö�÷�
                                    ø�ù�ú�"û�$ø�/�4�:�E�I	�K�V�^�g�l�{�ƒ�‡�‰ �‹!� �‘$�C���f�
                                      ���“MN�����“š¶����“4¸���	œ��E�	œ��ƒ�œ���‹ ¯����`���7��`���^�5°N��™��� ���4�����
                                    ! *´�F¹�©�¬����B������*�C�������
                                      �\�]����±�§�� ���>�����*+µ�¾±����B���
                                    ! ���/�0�C��������\�]���������²���³
                                    \ No newline at end of file
                                    --- 177,198 ----
                                      Ç�»`Y·b:
                                      *+
                                      ¹�×�W
                                    ! ¹�W™�§�°°����B���Ò�4��à�â�ä�,æ�6ç�;è�Lî�Uï�Zð�iö�}÷�‚ø�Ÿù�¥ÿ�¯��´�À�Æ�Ð�ß
                                    �å�ï�ô,3 <!F"L%n)s*x+‹,-˜.¢0­1¿3Ê4ã7ç9ý=B&E2F7G@HJJTLaO�C���˜���cÀ�����c�o����cõ����c ���c³´���cµ¶���c·¸���c! ��`4¸��O" �	¢�[#��
                                      ¼�Â$�à�Â$�ç�Â$�2�/%È�
                                    ! �À�z�� ���V�����*´�Fι�J�À�PL+Ç�½�RL+°����B������U�V�W�C��������\�]�����^�
                                    ! ��À&�� ���_�����*´�F+¹�J�À�PM,Ç�½�RM,°����B������\�]�^�C��� �����\�]�����'�����^�
                                    ! ��()�� ���/�����*´�F°����B������f�C��������\�]����Í��� ���«�����9*¶*L=§�+2À,¶.„+¾¡ÿñ*¶1M>§�,2À,¶.„,¾¡ÿñ±����B���&�	��j�k�
                                    ! l�k�o�!p�&q�/p�8s�C���4����9�\�]����4À�
                                      ����`���!��Œ�
                                      ��#��`���
                                    ! 34�� ���™�����M²�@*¹�J�À5L+Ç�=»5Y*¹7�À=¹?�»uY*¹C�¸D·yH¶à¶~·JL²�@*+¹�×�W+°����B������x�
                                    y�z�#{�<z�@|�K~�C�������MMN���
                                    �@O��	PQ�� ���8�����»RY*¸T·V°����B������ƒ�C�������MN���	PY�� �������[>66§�#
                                    ! +4 �„>§�
                                    +4Ÿ�„„¡ÿÝ*¹Z�:Æ�	K§ÿð*¸T:»RY``·V°����B���>���ˆ�‰�Š�‹�Œ���%�(Š�1”�9•�>–�A“�D�JŸ�C���R����[MN�����[[�����[�ç����Y\����V]����)�`���9�^N��J�_O���`�� ���/�����*´a°����B������¤�C��������\�]����5c�� ���`�����*·d*eµ�€*»�=Y·�?µ�F*+µa±����B������§�b�d�©�ª�C��������\�]���������gc�� ���>�����*+µa±����B���
                                    ! ���®�¯�C��������\�]���������
                                      hi�� ��c����C*ÁÍš�N§�s+Ç�*À�N§�g+¶j™�*ÀÍ+¶k¶lÀ�N§�N+¶p™�*ÀÍ+¶k+Àq¹s�¶vÀ�N§�,+¶z™�*ÀÍ+À{¹}�¶~À�N§�»‚Y„·†¿-Æ�·+Æ�³,Æ�¯:-¶*:6§�•2¹‡�,¶Š¶”™�~‹,¶Š¶”™�(2À�)¶,À�)¶¶”™�Y2À�:§�W,¶Š¶”™�(2À�-¶’,À�-¶’¶”™�'2À�:§�%•,¶Š¶”™�
                                    2À�:„¾¡ÿi°-Æ�
                                    ! -¶—™�°-°����B���Ž�#��·�¸�º�»�½�¾�1À�8Á�@Â�IÁ�SÄ�ZÅ�qÉ�|Ì�€Í�„Î�ˆÐ�‹Ò�‘Ó�—Ô�«Õ�¸Ö�Ð×�ÚØ�ÝÛ�êÜÝÞáâ&Ó1ç4ê?ëAî�C���z���CMN����Cš¶���C4¸��	��]����]��.��]��P��]��n��]��|�Ç�]��‹�©›œ��‘�£À�
                                    ! ��”��`���	i�� ��s�����“*¹ž�:Æ�%6§�2+,¸¢N-Æ�-°„¾¡ÿçÆ�%6§�2+,¸¤N-Æ�-°„¾¡ÿç*¹¦�:*¹©�š�-Æ�(ª*¹¬�¶”š�+,¸¢N-Æ�-°+,¸¤°°����B���b�����
                                    	�
                                    ! ��"�$	�/�4�:�E�I�K�V�^#�g$�l%�{)�ƒ*�‡+�‰1�‹2�1�‘5�C���f�
                                      ���“MN�����“š¶����“4¸���	œ��E�	œ��ƒ�œ���‹ ¯����`���7��`���^�5°N��™��� ���4�����
                                    ! *´�F¹�©�¬����B������;�C�������
                                      �\�]����±�§�� ���>�����*+µ�¾±����B���
                                    ! ���@�A�C��������\�]���������²���³
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,6 ****
                                      ��	���LineNumberTable�LocalVariableTable�this�3Lgnu/classpath/tools/gjdoc/EmptyStatementComponent;�match�([CI)I
                                      ���� gnu/classpath/tools/gjdoc/Parser���isWhitespace�(C)Z�source�[C�index�I�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �����������������
                                    �����������ƒ�����)§�„+¾¢�+4¸�šÿñ+¾¢�+4; �`¬¬����
                                    ! ���"����’��”��’��“��’��–�#�—�'�š���� ����)��
                                    �����)������)���������
                                    \ No newline at end of file
                                    --- 2,6 ----
                                      ��	���LineNumberTable�LocalVariableTable�this�3Lgnu/classpath/tools/gjdoc/EmptyStatementComponent;�match�([CI)I
                                      ���� gnu/classpath/tools/gjdoc/Parser���isWhitespace�(C)Z�source�[C�index�I�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! ������� ����������
                                    �����������ƒ�����)§�„+¾¢�+4¸�šÿñ+¾¢�+4; �`¬¬����
                                    ! ���"����£��¥��£��¤��£��§�#�¨�'�«���� ����)��
                                    �����)������)���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class	Tue Oct 12 15:55:12 2010
                                    *************** printFatal�@�FATAL: 
                                    *** 12,17 ****
                                      ��B�C�D�exit�(I)V�printNotice�printWarning�H�	WARNING: �
                                    getErrorCount�()I�getWarningCount�setQuiet�(Z)V�
                                      SourceFile�ErrorReporter.java�!������������	�
                                      �����
                                    ! �����
                                    �����
                                    �����������b����� *·�*µ�*µ�*µ�*µ�*²�µ�!±����#�������:��(�	�.��3��8��<��=�$������� �%�&����'�(�����^�����"*´�!»�)Y+·�-+¶�/¶�3¶�7*Y´�`µ�±����#�������A��B�!�C�$�������"�%�&�����"�<�=���>�(�����Y�����*´�!»�)Y?·�-+¶�/¶�3¶�7
                                    ! ¸�A±����#�������G��H��I�$��������%�&������<�=���E�(�����L�����*´�š�*´�!+¶�7±����#�������M��N��P�$��������%�&������<�=���F�(�����i�����)*´�š�$*´�!»�)YG·�-+¶�/¶�3¶�7*Y´�`µ�±����#�������T��U��V�(�X�$�������)�%�&�����)�<�=���I�J�����/�����*´�¬����#�������[�$��������%�&����K�J�����/�����*´�¬����#�������_�$��������%�&����L�M�����>�����*µ�±����#���
                                    ! ����f��g�$��������%�&�������
                                    ���N����O
                                    \ No newline at end of file
                                    --- 12,17 ----
                                      ��B�C�D�exit�(I)V�printNotice�printWarning�H�	WARNING: �
                                    getErrorCount�()I�getWarningCount�setQuiet�(Z)V�
                                      SourceFile�ErrorReporter.java�!������������	�
                                      �����
                                    ! �����
                                    �����
                                    �����������b����� *·�*µ�*µ�*µ�*µ�*²�µ�!±����#�������K��9�	�?��D��I��M��N�$������� �%�&����'�(�����^�����"*´�!»�)Y+·�-+¶�/¶�3¶�7*Y´�`µ�±����#�������R��S�!�T�$�������"�%�&�����"�<�=���>�(�����Y�����*´�!»�)Y?·�-+¶�/¶�3¶�7
                                    ! ¸�A±����#�������X��Y��Z�$��������%�&������<�=���E�(�����L�����*´�š�*´�!+¶�7±����#�������^��_��a�$��������%�&������<�=���F�(�����i�����)*´�š�$*´�!»�)YG·�-+¶�/¶�3¶�7*Y´�`µ�±����#�������e��f��g�(�i�$�������)�%�&�����)�<�=���I�J�����/�����*´�¬����#�������l�$��������%�&����K�J�����/�����*´�¬����#�������p�$��������%�&����L�M�����>�����*µ�±����#���
                                    ! ����w��x�$��������%�&�������
                                    ���N����O
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** methodName�Ljava/lang/StringBuffer;�
                                    *** 59,70 ****
                                      �.^Z_�(Ljava/lang/String;)I
                                      ��^�`bZ[�other�Ljava/lang/Object;�otherMember�)Lgnu/classpath/tools/gjdoc/MemberDocImpl;�
                                      SourceFile�ExecutableMemberDocImpl.java�!������������	�����
                                    ! ����������
                                    ����������������������w�����*+,-·�*µ�*µ�*µ�±�����������!��"��#��;��<��=��$����*������ ������!�"�����#�$�����%�&���'�(�����œ�����<*+·�)™�¬++¶�-™�
                                      *µ�¬+3¶�-™�
                                      *µ�¬+5¶�-™�
                                    ! *µ�¬¬�������2����'��(�
                                    ! �*��+��,��.�#�/�(�0�*�2�3�3�8�4�:�7��������<�� �����<�7�����8�����/�����*´�¬�����������?���������� ����	�8�����/�����*´�¬�����������A���������� ����
                                    ! �8�����/�����*´�¬�����������C���������� �����9�����/�����*´�:°�����������E���������� ����
                                    �<�����/�����*´�=°�����������G���������� ����?�@�����7�����
                                    *A²�C¶�GÀ�K°�����������J��������
                                    �� ����M�N�����7�����
                                    *O²�Q¶�GÀ�T°�����������N��������
                                    �� �����V�����/�����*´�W°�����������Q���������� �����V�����/�����*´�Y°�����������R���������� ����[�\�����o�����+*¶�]¹�_�L§�+*¶�d*¶�g¸�iÆ�+°+¹�_�L+Çÿç°�����������U�
                                    �V��W��U�)�Y��������+�� ���
                                      ��o�"��	�p�q��r�����s�u���
                                      8����" 6»�wY·�y:6§�g|¶�~›�|,4¶�~›�] �+|,4¶�~œ�[,4Ÿ�¶�‚,4¶�†W§�|,4¶�~œ�
                                    ,4¶�†W,46„¢�,4( ÿ*,¸�Š:¶�*À�j¶�“¶�-™�»�–Y*+·�˜:§�»�™Y*+·�›:*¹�œ�™�	µ�Ÿ,¶�£6	»�wY·�y:
                                      6§�£ �\	d¢� ,	4/ �,	`4/ �„	6§�t	d¢� ,	4/ �,	`4* �„	6§�N
                                    --- 59,70 ----
                                      �.^Z_�(Ljava/lang/String;)I
                                      ��^�`bZ[�other�Ljava/lang/Object;�otherMember�)Lgnu/classpath/tools/gjdoc/MemberDocImpl;�
                                      SourceFile�ExecutableMemberDocImpl.java�!������������	�����
                                    ! ����������
                                    ����������������������w�����*+,-·�*µ�*µ�*µ�±�����������2��3��4��L��M��N��5����*������ ������!�"�����#�$�����%�&���'�(�����œ�����<*+·�)™�¬++¶�-™�
                                      *µ�¬+3¶�-™�
                                      *µ�¬+5¶�-™�
                                    ! *µ�¬¬�������2����8��9�
                                    ! �;��<��=��?�#�@�(�A�*�C�3�D�8�E�:�H��������<�� �����<�7�����8�����/�����*´�¬�����������P���������� ����	�8�����/�����*´�¬�����������R���������� ����
                                    ! �8�����/�����*´�¬�����������T���������� �����9�����/�����*´�:°�����������V���������� ����
                                    �<�����/�����*´�=°�����������X���������� ����?�@�����7�����
                                    *A²�C¶�GÀ�K°�����������[��������
                                    �� ����M�N�����7�����
                                    *O²�Q¶�GÀ�T°�����������_��������
                                    �� �����V�����/�����*´�W°�����������b���������� �����V�����/�����*´�Y°�����������c���������� ����[�\�����o�����+*¶�]¹�_�L§�+*¶�d*¶�g¸�iÆ�+°+¹�_�L+Çÿç°�����������f�
                                    �g��h��f�)�j��������+�� ���
                                      ��o�"��	�p�q��r�����s�u���
                                      8����" 6»�wY·�y:6§�g|¶�~›�|,4¶�~›�] �+|,4¶�~œ�[,4Ÿ�¶�‚,4¶�†W§�|,4¶�~œ�
                                    ,4¶�†W,46„¢�,4( ÿ*,¸�Š:¶�*À�j¶�“¶�-™�»�–Y*+·�˜:§�»�™Y*+·�›:*¹�œ�™�	µ�Ÿ,¶�£6	»�wY·�y:
                                      6§�£ �\	d¢� ,	4/ �,	`4/ �„	6§�t	d¢� ,	4/ �,	`4* �„	6§�N
                                    *************** SourceFile�ExecutableMemberDocImpl.jav
                                    *** 73,83 ****
                                      	¡ÿS
                                      ¶�¶�§¶�ª6„	®:
                                    »�°Y·�²:	6§| �,4
                                       X6§R � ,4* C,`4/ 86„§/,4/ �,`4* �6„§,4/ �,`4/ �6„§õ,4,Ÿ�,4) Ë
                                    ¶�§:
                                    
                                    ¶�³žÔ
                                    ¶�³d66§�0
                                    ¶�·6[Ÿ�]Ÿ�
                                    |¶�~›�`6§�„ÿœÿѧ�„ÿ›�*[
                                    ¶�·Ÿÿï]
                                    ¶�·Ÿÿã|
                                    ¶�·¶�~œÿÔ`66§�0
                                    ¶�·6[Ÿ�]Ÿ�
                                    |¶�~›�`6§�„ÿœÿÑ™�
                                    ¶�»:
                                    ¶�¿:§�S®:»�wY·�y:6§�/
                                    ¶�·6[Ÿ�]Ÿ�|¶�~œ�¶�†W„
                                    ¶�³¡ÿͶ�:®:6§�([
                                    ¶�· �»�ÂY¸�Ä·�Èʶ�̶�Ï:„
                                    ¶�³¡ÿÔ»�ÂY¸�Ä·�ȶ�̶�Ï:ж�Ò™�#²�Õ»�ÂYÛ·�ȶ�Ýà¶�Ì*¶�ݶ�϶�â»�çY*À�j¶�é·�í¹�ð�W®:
                                    §�»�ÂY
                                    ¸�Ä·�È,4¶�õ¶�Ï:
                                    ,4) � �§�
                                    „¡ýƒ½�ø¹�ú�À�þ¶�ÿ„®:®:6»�°Y·�²:6§v �,4
                                    !  d6§^ � ,4* O,`4/ D6„§;,4/ �,`4* �6„§,4/ �,`4/ �6„§|,4¶�~›�F¶�§:š�é¶�³ž�áA¶�-™�	6§�²�Õ»�ÂY·�ȶ�̶�϶�â®:§�²,4[Ÿ�,4] �»�ÂY¸�Ä·�È,4¶�õ¶�Ï:§�…,4,Ÿ�,4{Ÿ�,4; �R¶�§:¶�³ž�0¶�]¹�:Ç�»	Y¶�]·:¹�ð�W,4{ �§�,®:§�»�ÂY¸�Ä·�È,4¶�õ¶�Ï:„¡þ‰¶�³ž�»�ÂY¶¸�Ä·�ȶ�̶�϶½�`¹�ú�À¶°������Š�¢���`��a�
                                    �b��c�)�d�E�e�K�f�X�h�d�i�n�k�t�b�‡�p��r�¡�v�¦�w�§�x�©�v�±�~�¶��·�€�¹�~�¾�ƒ�Ç�„�Í�†�Ø�‡�á��ä��ç��í�‘
                                    ! �’
                                    �“�•0�–3�—9�šF�L�žU�Ÿ[�¡a�¢~�£�¤„�§‡�—�©¤�«§�­ª�¯®�°·�±¾�²Ä�³Í�´Ó�·Ù�¸í�¹ð�ºö�½
                                    ! �¾
                                    �¿�Á'�Â*�Ã0�ÅB�ÆI�ÇQ�ÈZ�É]�Ê`�Ëi�Ì�͇�Ί�Ñ�Ê’�Ô•�ט�Ô©�Õµ�ÖÄ�ÙÊ�ÚÍ�ÛÐ�ÜÙ�Ýñ�Þ÷�ßú�âý�Û�è�é�ê�í"�î+�ï1�ð:�ñR�òZ�ïg�õn�÷r�ùx�ú„�ûš�ù§�þ½�Ççñý
                                    ! "
                                    14�±>QTX\_hkntƒ‰  !¦$º%½&Ã(×)Ú*à,ì-ó.�/0(1/4A5\7w8~9†:”;™<Ÿ=¤<©?³A¼B¿EÆIÞèMðNQS���t�%��"�!�"����"�#�$���"���"�¢���"�¢���¢��
                                    ���w �¢��®�!� ��¾d!� ��“�%�&��ØJ"�¢�	�áA�f�
                                      �ä>#�¢�»g$�¢�®t�P��
                                    ·k%&�Z­'�¢�]ª(�¢�i�$)*�Ê=+�¢�Í:,�¢�Ù�$)*��-��n�™-���.��"�å.��+�C/�.�9 �¢�:� )*�r�•0��u�2 �¢�XÊ�7��\Æ0��_Ã1��hº2&�”�3�"��������>�����*+µ�=±�������
                                    ! ���\�]���������� ������
                                    ���������>�����*+µ�:±�������
                                    ! ���`�a���������� ����������4�{����Ú����<§�4*´�:2Á	™�%*´�:2¹5�M*¶�],¹�N-Æ�
                                    ! *´�:-S„*´�:¾¡ÿÉ»�wY·�yL»�wY·�yM>§�*´�=2À�ç*¶�]¶8+¶;ž�+<¶>W,<¶>W+*´�=2¹A�¹E�¶>W,*´�=2¹A�¹J�¶>W+*´�=2¹A�¹M�¶>W,*´�=2¹A�¹M�¶>W„*´�=¾¡ÿ|*»�ÂYP·�È+¶�¶�ÌR¶�̶�ϵ�W*»�ÂYP·�È,¶�¶�ÌR¶�̶�ϵ�Y*·T±�������^���e�f�g�h�(i�,j�3e�?n�Go�Oq�Tr�dt�ku�sv�{x�y�¥z�º{�Ïq�Û}�ù~€‚����H����� ����= �¢���V���(�W�"��G�ÕX��O�ÍY��Q�Š �¢��Z[�����Ç�����M+Á�™�E+À�N*¶�d-¶\¶]=š�2+Á�™�$*¶�g+À�¶�g¶]=š�*¶�]-¶`¹a�¬=§�=¬�������.���†�‡�ˆ�‰�Š�#‹�2Œ�6�D‘�I–�K˜����4����M�� �����Mcd���1!�¢��K�!�¢���=ef��g���h
                                    \ No newline at end of file
                                    --- 73,85 ----
                                      	¡ÿS
                                      ¶�¶�§¶�ª6„	®:
                                    »�°Y·�²:	6§| �,4
                                       X6§R � ,4* C,`4/ 86„§/,4/ �,`4* �6„§,4/ �,`4/ �6„§õ,4,Ÿ�,4) Ë
                                    ¶�§:
                                    
                                    ¶�³žÔ
                                    ¶�³d66§�0
                                    ¶�·6[Ÿ�]Ÿ�
                                    |¶�~›�`6§�„ÿœÿѧ�„ÿ›�*[
                                    ¶�·Ÿÿï]
                                    ¶�·Ÿÿã|
                                    ¶�·¶�~œÿÔ`66§�0
                                    ¶�·6[Ÿ�]Ÿ�
                                    |¶�~›�`6§�„ÿœÿÑ™�
                                    ¶�»:
                                    ¶�¿:§�S®:»�wY·�y:6§�/
                                    ¶�·6[Ÿ�]Ÿ�|¶�~œ�¶�†W„
                                    ¶�³¡ÿͶ�:®:6§�([
                                    ¶�· �»�ÂY¸�Ä·�Èʶ�̶�Ï:„
                                    ¶�³¡ÿÔ»�ÂY¸�Ä·�ȶ�̶�Ï:ж�Ò™�#²�Õ»�ÂYÛ·�ȶ�Ýà¶�Ì*¶�ݶ�϶�â»�çY*À�j¶�é·�í¹�ð�W®:
                                    §�»�ÂY
                                    ¸�Ä·�È,4¶�õ¶�Ï:
                                    ,4) � �§�
                                    „¡ýƒ½�ø¹�ú�À�þ¶�ÿ„®:®:6»�°Y·�²:6§v �,4
                                    !  d6§^ � ,4* O,`4/ D6„§;,4/ �,`4* �6„§,4/ �,`4/ �6„§|,4¶�~›�F¶�§:š�é¶�³ž�áA¶�-™�	6§�²�Õ»�ÂY·�ȶ�̶�϶�â®:§�²,4[Ÿ�,4] �»�ÂY¸�Ä·�È,4¶�õ¶�Ï:§�…,4,Ÿ�,4{Ÿ�,4; �R¶�§:¶�³ž�0¶�]¹�:Ç�»	Y¶�]·:¹�ð�W,4{ �§�,®:§�»�ÂY¸�Ä·�È,4¶�õ¶�Ï:„¡þ‰¶�³ž�»�ÂY¶¸�Ä·�ȶ�̶�϶½�`¹�ú�À¶°������Š�¢���q��r�
                                    �s��t�)�u�E�v�K�w�X�y�d�z�n�|�t�s�‡���ƒ�¡�‡�¦�ˆ�§�‰�©�‡�±��¶��·�‘�¹��¾�”�Ç�•�Í�—�Ø�˜�á�ž�ä� �ç�¡�í�¢
                                    ! �£
                                    �¤�¦0�§3�¨9�«F�®L�¯U�°[�²a�³~�´�µ„�¸‡� —�º¤�¼§�¾ª�À®�Á·�¾�ÃÄ�ÄÍ�ÅÓ�ÈÙ�Éí�Êð�Ëö�Î
                                    ! �Ï
                                    �Ð�Ò'�Ó*�Ô0�ÖB�×I�ØQ�ÙZ�Ú]�Û`�Üi�Ý�Þ‡�ߊ�â�Û’�å•�è˜�å©�æµ�çÄ�êÊ�ëÍ�ìÐ�íÙ�îñ�ï÷�ðú�óý�ì�ù�ú�û�þ"�ÿ+�1:RZ�gnr
                                    ! x„š
                                    ! §½Ççñý
                                    ! "14�Â>"Q$T%X&\'_(h*k+n,t-ƒ/‰01 2¦5º6½7Ã9×:Ú;à=ì>ó?�@A(B/EAF\HwI~J†K”L™MŸN¤M©P³R¼S¿VÆZÞ+è^ð_bd���t�%��"�!�"����"�#�$���"���"�¢���"�¢���¢��
                                    ���w �¢��®�!� ��¾d!� ��“�%�&��ØJ"�¢�	�áA�f�
                                      �ä>#�¢�»g$�¢�®t�P��
                                    ·k%&�Z­'�¢�]ª(�¢�i�$)*�Ê=+�¢�Í:,�¢�Ù�$)*��-��n�™-���.��"�å.��+�C/�.�9 �¢�:� )*�r�•0��u�2 �¢�XÊ�7��\Æ0��_Ã1��hº2&�”�3�"��������>�����*+µ�=±�������
                                    ! ���m�n���������� ������
                                    ���������>�����*+µ�:±�������
                                    ! ���q�r���������� ����������4�{����Ú����<§�4*´�:2Á	™�%*´�:2¹5�M*¶�],¹�N-Æ�
                                    ! *´�:-S„*´�:¾¡ÿÉ»�wY·�yL»�wY·�yM>§�*´�=2À�ç*¶�]¶8+¶;ž�+<¶>W,<¶>W+*´�=2¹A�¹E�¶>W,*´�=2¹A�¹J�¶>W+*´�=2¹A�¹M�¶>W,*´�=2¹A�¹M�¶>W„*´�=¾¡ÿ|*»�ÂYP·�È+¶�¶�ÌR¶�̶�ϵ�W*»�ÂYP·�È,¶�¶�ÌR¶�̶�ϵ�Y*·T±�������^���v�w�x�y�(z�,{�3v�?�G€�O‚�Tƒ�d…�k†�s‡�{‰�Š�¥‹�ºŒ�Ï‚�ÛŽ�ù‘“����H����� ����= �¢���V���(�W�"��G�ÕX��O�ÍY��Q�Š �¢��Z[�����Ç�����M+Á�™�E+À�N*¶�d-¶\¶]=š�2+Á�™�$*¶�g+À�¶�g¶]=š�*¶�]-¶`¹a�¬=§�=¬�������.���—�˜�™�š�›�#œ�2�6ž�D¢�I§�K©����4����M�� �����Mcd���1!�¢��K�!�¢���=ef��g���h
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class	Tue Oct 12 15:55:12 2010
                                    *************** sfieldList�A�l�m�I�hasNext
                                    *** 15,28 ****
                                      ��o�p�Z�setLastComment�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�fields�Ljava/util/Collection;�it�Ljava/util/Iterator;�field�(Lgnu/classpath/tools/gjdoc/FieldDocImpl;�fieldHasSerialTag�
                                      SourceFile�Parser.java�InnerClasses�Context� ����������������/�����*·�±����
                                    ! �����������������
                                    ����������������S����í>666§· �'+¾d¢Ÿ+4* —+`4/ „6§ƒ �+4
                                       u6§n �!+4\ �
                                      6§Y+4" Q6§J �	6§= �!+4\ �
                                      6§'+4' 6§ �
                                      6§
                                       �Œ+4/ �9+¾d¢�+`4* �6„§�á+¾d¢�Ù+`4/ �Ï6„§�Æ+4{ �	„§�¸+4} �	„ÿ§�ª+4" �	6§�œ+4' �
                                      6§�+4; �…š�€>§�+4«���u������(���g���/���1���;���s���=���i���{���g+¾d¢�+`4* �6„§�,+¾d¢�$+`4/ �6„§�¬66§�>™�§�„+¾¢�™þE™�	+¾ �¬+4;Ÿ�+;¸�=`¬����
                                    ! ���A���Û��å��æ��è��ê��ë��ì�.�í�1�î�8�ñ�>�ò�F�ó�M�ö�S�÷�[�ø�b�ú�j�û�q�þ�x�ÿ�~�…��”�œ�£	�ª
                                    ! �±�·
                                    �¿�Ñ�Ô�Ú�ì�ï�õ�ý '!.#;$=%@(t*†+‰,.¡/¤0§2ª5¬7¯8³9¶;¸>¿�êÌ@ÖAØFàGéI����H���í��
                                    ����í�����í����ë����è����å� ���â�!�����"�#����{��	���½d£�¬+´�$´�(+´�$´�(¶�.,¸�4:¹�:�:§�}¹�@�À�5:¶�Fš�¶�Jš�§�6¶�Mš�™�+¶�P™�+¶�S¶�W+´�$´�[¹�_�W¶�M™�+´�$´�e¹�_�W™�+´�$´�h¹�_�W¹�k�šÿ+¶�n¬����
                                    ! ���J���S�V�W�X� V�%Z�1[�=\�T]�h^�q`�€a�ˆb�—d�œe�«Z�µi�ºj����\�	���½��
                                    �����½�q�r����½������½�s�����½�t���%�˜�u�v��.�‡�w�x��=�n�y�z��T�W�{����|����}�~���
                                      ��)����
                                    \ No newline at end of file
                                    --- 15,27 ----
                                      ��o�p�Z�setLastComment�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�fields�Ljava/util/Collection;�it�Ljava/util/Iterator;�field�(Lgnu/classpath/tools/gjdoc/FieldDocImpl;�fieldHasSerialTag�
                                      SourceFile�Parser.java�InnerClasses�Context� ����������������/�����*·�±����
                                    ! ����������������
                                    ����������������S����í>666§· �'+¾d¢Ÿ+4* —+`4/ „6§ƒ �+4
                                       u6§n �!+4\ �
                                      6§Y+4" Q6§J �	6§= �!+4\ �
                                      6§'+4' 6§ �
                                      6§
                                       �Œ+4/ �9+¾d¢�+`4* �6„§�á+¾d¢�Ù+`4/ �Ï6„§�Æ+4{ �	„§�¸+4} �	„ÿ§�ª+4" �	6§�œ+4' �
                                      6§�+4; �…š�€>§�+4«���u������(���g���/���1���;���s���=���i���{���g+¾d¢�+`4* �6„§�,+¾d¢�$+`4/ �6„§�¬66§�>™�§�„+¾¢�™þE™�	+¾ �¬+4;Ÿ�+;¸�=`¬����
                                    ! ���A���ì��ö��÷��ù��û��ü��ý�.�þ�1�ÿ�8�>�F�M�S�[	�b�j�q�x�~�…��”�œ�£�ª�±�·�¿�Ñ �Ô!�Ú#�ì$�ï%�õ(�ý)+,./1'2.4;5=6@9t;†<‰=?¡@¤A§CªF¬H¯I³J¶L¸O¿�ûÌQÖRØWàXéZ����H���í��
                                    ����í�����í����ë����è����å� ���â�!�����"�#����{��	���½d£�¬+´�$´�(+´�$´�(¶�.,¸�4:¹�:�:§�}¹�@�À�5:¶�Fš�¶�Jš�§�6¶�Mš�™�+¶�P™�+¶�S¶�W+´�$´�[¹�_�W¶�M™�+´�$´�e¹�_�W™�+´�$´�h¹�_�W¹�k�šÿ+¶�n¬����
                                    ! ���J���d�g�h�i� g�%k�1l�=m�Tn�ho�qq�€r�ˆs�—u�œv�«k�µz�º{����\�	���½��
                                    �����½�q�r����½������½�s�����½�t���%�˜�u�v��.�‡�w�x��=�n�y�z��T�W�{����|����}�~���
                                      ��)����
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** expression�<Lgnu/classpath/tools/gjdoc/
                                    *** 63,70 ****
                                      SourceFile�FieldDocImpl.java�!��������	�
                                      �����
                                      �����
                                    ����������
                                    ! �����������\�����*+,-·�±�����������.��/��0��1����*���������������������������
                                    ! � �!����;�����“,Æ�,¶�"š�M*¶�(À�N.:§�2+¶�0L»�4Y++¶�"d¶�6¸�:·�>¶�A¶�E:++¶�"d¶�HL+¶�0L¶�NšÿÈ+¶�0R¶�Nšÿ¼-»�4Y-¶�T¸�W·�>¶�A¶�E¶�Z-+¶�0¶�]-,¶�`-°N-¶�c°��
                                    �‹�Œ�d�����J����7��8�
                                    �<��=��>��@�!�A�?�B�K�>�W�?�`�>�c�E�}�F�…�G�Š�H�Œ�J��L�‘�M����>����“�i������“�j�
                                    ����“�k�
                                    ���w�l����s�m�
                                    ����n�o��	�p�q����ñ����Å»�rY·�t:»�Y*+*,¸�v·�|:,¶�}6*¹��™�	µ�‡66	6
                                      »�‹Y·�:»�‹Y·�:6
                                    §H,
                                    466
                                    `¢�,
                                    `46ª��&���������-���½�� ��ç��Ã��õ����/ �/ �6	6§ã/ �* �6	6§Ê,Ÿ�
                                      ; �¶�Ž¸�¹�‘�W¶�—§ = �	6§“ ŸŒ
                                      Ÿ…
                                    Ÿ~	Ÿw¶�›W§l/ �/ �6	6§S/ �* �6	6§:" �6	6¶�›W§!' �6	6¶�›W§{Ÿ�
                                    --- 63,70 ----
                                      SourceFile�FieldDocImpl.java�!��������	�
                                      �����
                                      �����
                                    ����������
                                    ! �����������\�����*+,-·�±�����������?��@��A��B����*���������������������������
                                    ! � �!����;�����“,Æ�,¶�"š�M*¶�(À�N.:§�2+¶�0L»�4Y++¶�"d¶�6¸�:·�>¶�A¶�E:++¶�"d¶�HL+¶�0L¶�NšÿÈ+¶�0R¶�Nšÿ¼-»�4Y-¶�T¸�W·�>¶�A¶�E¶�Z-+¶�0¶�]-,¶�`-°N-¶�c°��
                                    �‹�Œ�d�����J����H��I�
                                    �M��N��O��Q�!�R�?�S�K�O�W�P�`�O�c�V�}�W�…�X�Š�Y�Œ�[��]�‘�^����>����“�i������“�j�
                                    ����“�k�
                                    ���w�l����s�m�
                                    ����n�o��	�p�q����ñ����Å»�rY·�t:»�Y*+*,¸�v·�|:,¶�}6*¹��™�	µ�‡66	6
                                      »�‹Y·�:»�‹Y·�:6
                                    §H,
                                    466
                                    `¢�,
                                    `46ª��&���������-���½�� ��ç��Ã��õ����/ �/ �6	6§ã/ �* �6	6§Ê,Ÿ�
                                      ; �¶�Ž¸�¹�‘�W¶�—§ = �	6§“ ŸŒ
                                      Ÿ…
                                    Ÿ~	Ÿw¶�›W§l/ �/ �6	6§S/ �* �6	6§:" �6	6¶�›W§!' �6	6¶�›W§{Ÿ�
                                    *************** SourceFile�FieldDocImpl.java�!����
                                    *** 76,90 ****
                                      ; �,¶�Ž¶�Ž¸�¹�‘�W¶�—¶�—6§�”¶�›W§�‰¶�›W\ �	6§�t" �m	6§�f¶�›W\ �
                                      6§�P' �I	6§�B¶�›W6§�4¶�›W6§�&
                                       �	6§�* �/ �
                                    ! „
                                    	6„
                                    
                                    ¡ý·¶�žž�¶�Ž¶�Ž¸�¹�‘�W°������r�\���U�	�W��X��Y��W��[�%�]�.�^�4�k�7�l�;�n�>�p�G�q�P�s�W�u�]�v�`�w�i�x�q�z� �|�®�}�²�~�¹�€�Ç��Ë�‚�Ò�„�à�…�ó�†�ü�ˆ�‰	�‹%�Œ-�Ž0�‘>�’B�“I�•W�–[�—b�™i�šm�›p�œ{�ž‚�Ÿ†� ‰�¡”�£¢�¤¥�¥°�§¾�¨Á�©Ì�«ß�¬è�­í�¬ö�®ü�¯�°�³�µ�¸�¹"�º(�¼/�½3�¿6�Â>�ÃE�ÄL�ÆS�ÇW�ÉZ�Ìb�Íe�Îh�Ñp�Òs�Óv�Ö}�×�Ù„�Ü’�Ý•�Þ™�s£�ä«�å´�æ¹�åÂ�é����¢���Å������Å�����Å�Ÿ� ���Å�¡�Š���Å�¢�Š��	¼�£�¤��«�¥���% �¦�Š��7Ž�§�Š��;Š�¨�Š�	�>‡�©�Š�
                                    ! �G~�ª�«��Pu�¬�«��TO�­�Š�
                                    �]<�®�¯��`9�°�¯���±�†�����,�����¬�����������í��������������	�†�����/�����*´�²¬�����������ð���������������†�����/�����*´�´¬�����������ò��������������¶�·�����/�����½�¸°�����������ô��������������º�'�����\�����"*·�»*¶�½™�@§�€*¶�¿™�	�€§�€¬�����������÷��ø��÷��ù� �÷��������"������Á�Q�����€�����,*+·�™�¬+Ķ�Æ™�
                                      *µ�²¬+ɶ�Æ™�
                                    ! *µ�´¬¬�������&�	���þ��ÿ�
                                    ! ����#�(�*
                                    ! ��������,�������,��
                                    ����Ì�h�����3�����*¶�ͱ�������
                                    ! ������������������Ð�†�����,�����¬������������������������G�3�����/�����*¶�Ñ°�������������������������-�����6�����*»�ÔY·�Ö¶�×°�������������������������Ù����u�����Ù*¶�Ú™�=*¶�Ý™�6*¶�à¹�ä�š�é*¶�à¹�ë�¶�Æ™�*´�î¹�ñ�¶�"�
                                    ! *´�ôÇ�°*´�öš�+*¹�ø�W»�4Yû·�>*¶�à¹�ý�¶�A�¶�A*´�ô¶�A¶�A¶�EM*,+*¶À¸	µ§�AN²»�4Y·�>*´¹�¶�A¶�A*¶�Ѷ�A¶�A-¶ ¶�A¶�E¶%§�W*µ�ö*´°��~�Ž�‘!�~�Ž�Î*�����J������+ �:!�A#�C'�J)�R+�~-�€.�/�ˆ-�‘1�’3�Î5�Ï7�Ô9����*����Ù�������Ù,-��~�V.�
                                    ��’�9�n/��
                                      01����…�����å«�����š���������C���	���N���
                                    ! ���Y������d���
                                    ���o���"���z���'���…*2¶4W§�˜*7¶4W§�*9¶4W§�‚*;¶4W§�w*=¶4W§�l*?¶4W§�a*™�	A§�C¶4W§�L ¡�£�*¶�›W§�7*E¶4W¸GN-¶�"d66§�
                                    *0¶�›W„¡ÿò*-¶4W±�������J���?�D@�OA�ZB�eC�pD�{E�†F�›H�§I�°L�¸M�¿N�ÇO�ÍP�ÔO�ÞR�äU����>����åK�«�����å�®�¯����åL�
                                    ! ��¿�%M�
                                    ��Ç�N�Š��Ê��­�Š��O�3����g�����»*¶PL+Ç�R°+Á�#™�<»�‹YT·VM+À�#¶WN6§�,-4¸[„-¾¡ÿð,T¶4W,¶�Ž°+Á]™�»�4Y+¶_¸�W·�>`¶�A¶�E°+Áb™�»�4Y+¶_¸�W·�>d¶�A¶�E°+Áf™�'»�‹YC·VM,+Àf¶h¸[,C¶4W,¶�Ž°+¶_°�������V���X�Z�	[�
                                    ]�^�_�'`�-a�6`�@c�Hd�Mf�Tg�li�sj�‹l�’m�n�©o�±p�¶v����>����»������¶l����.K�«��'�&m� ��*��­�Š���K�«����b�@�����>�����*+µ�ô±�������
                                    ! ���|�}�����������������
                                    ���Ü�†�����A�����*·nš�*¶¹��š�¬¬������������������������ß�†�����A�����*·oš�*¶¹��š�¬¬����������†�������������p���q
                                    \ No newline at end of file
                                    --- 76,90 ----
                                      ; �,¶�Ž¶�Ž¸�¹�‘�W¶�—¶�—6§�”¶�›W§�‰¶�›W\ �	6§�t" �m	6§�f¶�›W\ �
                                      6§�P' �I	6§�B¶�›W6§�4¶�›W6§�&
                                       �	6§�* �/ �
                                    ! „
                                    	6„
                                    
                                    ¡ý·¶�žž�¶�Ž¶�Ž¸�¹�‘�W°������r�\���f�	�h��i��j��h��l�%�n�.�o�4�|�7�}�;��>��G�‚�P�„�W�†�]�‡�`�ˆ�i�‰�q�‹� ��®�Ž�²��¹�‘�Ç�’�Ë�“�Ò�•�à�–�ó�—�ü�™�š	�œ%�-�Ÿ0�¢>�£B�¤I�¦W�§[�¨b�ªi�«m�¬p�­{�¯‚�°†�±‰�²”�´¢�µ¥�¶°�¸¾�¹Á�ºÌ�¼ß�½è�¾í�½ö�¿ü�À�Á�Ä�Æ�É�Ê"�Ë(�Í/�Î3�Ð6�Ó>�ÔE�ÕL�×S�ØW�ÚZ�Ýb�Þe�ßh�âp�ãs�äv�ç}�è�ê„�í’�î•�ï™�„£�õ«�ö´�÷¹�öÂ�ú����¢���Å������Å�����Å�Ÿ� ���Å�¡�Š���Å�¢�Š��	¼�£�¤��«�¥���% �¦�Š��7Ž�§�Š��;Š�¨�Š�	�>‡�©�Š�
                                    ! �G~�ª�«��Pu�¬�«��TO�­�Š�
                                    �]<�®�¯��`9�°�¯���±�†�����,�����¬�����������þ��������������	�†�����/�����*´�²¬�������������������������†�����/�����*´�´¬������������������������¶�·�����/�����½�¸°������������������������º�'�����\�����"*·�»*¶�½™�@§�€*¶�¿™�	�€§�€¬�����������	��
                                    ! � ��������"������Á�Q�����€�����,*+·�™�¬+Ķ�Æ™�
                                      *µ�²¬+ɶ�Æ™�
                                    ! *µ�´¬¬�������&�	����
                                    ! ����#�(�*��������,�������,��
                                    ����Ì�h�����3�����*¶�ͱ�������
                                    ! ��� �!��������������Ð�†�����,�����¬����������$��������������G�3�����/�����*¶�Ñ°����������'���������������-�����6�����*»�ÔY·�Ö¶�×°����������*���������������Ù����u�����Ù*¶�Ú™�=*¶�Ý™�6*¶�à¹�ä�š�é*¶�à¹�ë�¶�Æ™�*´�î¹�ñ�¶�"�
                                    ! *´�ôÇ�°*´�öš�+*¹�ø�W»�4Yû·�>*¶�à¹�ý�¶�A�¶�A*´�ô¶�A¶�A¶�EM*,+*¶À¸	µ§�AN²»�4Y·�>*´¹�¶�A¶�A*¶�Ѷ�A¶�A-¶ ¶�A¶�E¶%§�W*µ�ö*´°��~�Ž�‘!�~�Ž�Î*�����J���.�/�0�+1�:2�A4�C8�J:�R<�~>�€?�@�ˆ>�‘B�’D�ÎF�ÏH�ÔJ����*����Ù�������Ù,-��~�V.�
                                    ��’�9�n/��
                                      01����…�����å«�����š���������C���	���N���
                                    ! ���Y������d���
                                    ���o���"���z���'���…*2¶4W§�˜*7¶4W§�*9¶4W§�‚*;¶4W§�w*=¶4W§�l*?¶4W§�a*™�	A§�C¶4W§�L ¡�£�*¶�›W§�7*E¶4W¸GN-¶�"d66§�
                                    *0¶�›W„¡ÿò*-¶4W±�������J���P�DQ�OR�ZS�eT�pU�{V�†W�›Y�§Z�°]�¸^�¿_�Ç`�Ía�Ô`�Þc�äf����>����åK�«�����å�®�¯����åL�
                                    ! ��¿�%M�
                                    ��Ç�N�Š��Ê��­�Š��O�3����g�����»*¶PL+Ç�R°+Á�#™�<»�‹YT·VM+À�#¶WN6§�,-4¸[„-¾¡ÿð,T¶4W,¶�Ž°+Á]™�»�4Y+¶_¸�W·�>`¶�A¶�E°+Áb™�»�4Y+¶_¸�W·�>d¶�A¶�E°+Áf™�'»�‹YC·VM,+Àf¶h¸[,C¶4W,¶�Ž°+¶_°�������V���i�k�	l�
                                    n�o�p�'q�-r�6q�@t�Hu�Mw�Tx�lz�s{�‹}�’~��©€�±�¶‡����>����»������¶l����.K�«��'�&m� ��*��­�Š���K�«����b�@�����>�����*+µ�ô±�������
                                    ! ����Ž�����������������
                                    ���Ü�†�����A�����*·nš�*¶¹��š�¬¬����������’��������������ß�†�����A�����*·oš�*¶¹��š�¬¬����������—�������������p���q
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class	Tue Oct 12 15:55:12 2010
                                    *************** readObject
                                    *** 17,28 ****
                                      �e�g�f�java/lang/String�h�R�equals�j�writeObject�l�readExternal�n�
                                    writeExternal�p�readResolve	�$�r�s�L�maybeSerMethodList�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�execDoc�3Lgnu/classpath/tools/gjdoc/ExecutableMemberDocImpl;�match�index�isFunc�Z�state�
                                      SourceFile�Parser.java�InnerClasses�Context� ����������������/�����*·�±����
                                    ! ������p����������
                                    �����������������Y�����+d4; �¬*+·�¬����
                                    ! ������s�
                                    ! t�w���� ������
                                    �����������������������������‘�����á+´�´�#+´�´�#¶�),¸�/:+¶�5™�+¶�9¶�=+¶�C¶�F™�,+´�´�I¹�M�W¶�S™�;+´�´�V¹�M�W§�)+´�´�Y¹�M�W¶�S™�+´�´�\¹�M�W¶�F™�S¶�_b¶�dš�7¶�_i¶�dš�*¶�_k¶�dš�¶�_m¶�dš�¶�_o¶�d™�+´�´�q¹�M�W¬����
                                    ! ���Z���€��‚�€�„�!…�*‡�/‰�7Š�F‹�NŒ�`�o‘�w’�†–�Ž—�›˜�¨™�µš�›�Ïž�Þ¡����>����á��
                                    �����á�t�u����á������á�v�����á�����Ç�w�x����y�����&����H>6§�£ �+4* �‹+`4/ �„6§�x �+4
                                       �j6§�d+4«������^������(���\���/���4���;���Z���=���Z���{���Z+`4* �6„§�+`4/ �6„§�¬>™�§�„+¾¢�™ÿY™�	+¾ �o¬ �+4
                                       �	6§�V+¾d¢�N �+4* �@+`4/ �66§�0+4/ �+`4* �	6§�+4/ �+`4/ �6„+¾¢� ÿ+4{Ÿ�+4; ÿ}`¬����
                                    ! ���’�$��¥�©�ª�«�¬� ­�#®�)±�/²�7³�=¶�t¸�~¹�º�‡¼�‘½�”¾�—À�šÄ�œÆ�žÉ�¥ª�²Ë�¼Ì�¾Ï�ÌÐ�ÒÒ�ÚÓ�àÔ�òÕ�øÙ
                                    ! ÚÜ"Ý%ÎDá����4���H��
                                    ����H�����H�z���F�{�|��C�}����~�����€���
                                      ��$����
                                    \ No newline at end of file
                                    --- 17,28 ----
                                      �e�g�f�java/lang/String�h�R�equals�j�writeObject�l�readExternal�n�
                                    writeExternal�p�readResolve	�$�r�s�L�maybeSerMethodList�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�execDoc�3Lgnu/classpath/tools/gjdoc/ExecutableMemberDocImpl;�match�index�isFunc�Z�state�
                                      SourceFile�Parser.java�InnerClasses�Context� ����������������/�����*·�±����
                                    ! ����������������
                                    �����������������Y�����+d4; �¬*+·�¬����
                                    ! ������„�
                                    ! …�ˆ���� ������
                                    �����������������������������‘�����á+´�´�#+´�´�#¶�),¸�/:+¶�5™�+¶�9¶�=+¶�C¶�F™�,+´�´�I¹�M�W¶�S™�;+´�´�V¹�M�W§�)+´�´�Y¹�M�W¶�S™�+´�´�\¹�M�W¶�F™�S¶�_b¶�dš�7¶�_i¶�dš�*¶�_k¶�dš�¶�_m¶�dš�¶�_o¶�d™�+´�´�q¹�M�W¬����
                                    ! ���Z���‘�’�“�‘�•�!–�*˜�/š�7›�Fœ�N�`¡�o¢�w£�†§�Ž¨�›©�¨ª�µ«�¬�ϯ�Þ²����>����á��
                                    �����á�t�u����á������á�v�����á�����Ç�w�x����y�����&����H>6§�£ �+4* �‹+`4/ �„6§�x �+4
                                       �j6§�d+4«������^������(���\���/���4���;���Z���=���Z���{���Z+`4* �6„§�+`4/ �6„§�¬>™�§�„+¾¢�™ÿY™�	+¾ �o¬ �+4
                                       �	6§�V+¾d¢�N �+4* �@+`4/ �66§�0+4/ �+`4* �	6§�+4/ �+`4/ �6„+¾¢� ÿ+4{Ÿ�+4; ÿ}`¬����
                                    ! ���’�$��¶�º�»�¼�½� ¾�#¿�)Â�/Ã�7Ä�=Ç�tÉ�~Ê�Ë�‡Í�‘Î�”Ï�—Ñ�šÕ�œ×�žÚ�¥»�²Ü�¼Ý�¾à�Ìá�Òã�Úä�àå�òæ�øê
                                    ! ëí"î%ßDò����4���H��
                                    ����H�����H�z���F�{�|��C�}����~�����€���
                                      ��$����
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                      Êþº¾���1���3gnu/classpath/tools/gjdoc/IgnoredFileParseException��(gnu/classpath/tools/gjdoc/ParseException�<init>�()V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�5Lgnu/classpath/tools/gjdoc/IgnoredFileParseException;�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������'����������
                                    ��������
                                    \ No newline at end of file
                                    --- 1,4 ----
                                      Êþº¾���1���3gnu/classpath/tools/gjdoc/IgnoredFileParseException��(gnu/classpath/tools/gjdoc/ParseException�<init>�()V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�5Lgnu/classpath/tools/gjdoc/IgnoredFileParseException;�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������8����������
                                    ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions� �(gnu/classpath/tools/gjdo
                                    *** 8,13 ****
                                      �+�-�,� gnu/classpath/tools/gjdoc/Parser�.�/�importEncountered�(Ljava/lang/String;)V�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�importString�Ljava/lang/String;�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������Ÿ����������
                                    �����������Ö�����p`+¾¢�h+`4i �^+`4m �T+`4p �J+`4o �@+`4r �6+`4t �,+`4¶�›�„§�„+¾¢�+4; ÿò`¬¬����
                                    ! ���.����¢�	�£��¤��¥�'�¦�1�§�;�¨�E�©�S�«�j�®�n�±���� ����p��
                                    �����p������p���������������!����‡�����#»�Y,`ddd·�#¶�&:+¶�*¬����
                                    ! �������µ��¶� �·����>����#��
                                    �����#�0�1����#������#�2�����#�3����	�4�5���6����7
                                    \ No newline at end of file
                                    --- 8,13 ----
                                      �+�-�,� gnu/classpath/tools/gjdoc/Parser�.�/�importEncountered�(Ljava/lang/String;)V�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�importString�Ljava/lang/String;�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������°����������
                                    �����������Ö�����p`+¾¢�h+`4i �^+`4m �T+`4p �J+`4o �@+`4r �6+`4t �,+`4¶�›�„§�„+¾¢�+4; ÿò`¬¬����
                                    ! ���.����³�	�´��µ��¶�'�·�1�¸�;�¹�E�º�S�¼�j�¿�n�Â���� ����p��
                                    �����p������p���������������!����‡�����#»�Y,`ddd·�#¶�&:+¶�*¬����
                                    ! ���������� �����>����#��
                                    �����#�0�1����#������#�2�����#�3����	�4�5���6����7
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** contextTag�+Lgnu/classpath/tools/gjdoc/
                                    *** 6,12 ****
                                      ��5�(�)�7�9�8�&gnu/classpath/tools/gjdoc/TagContainer�2�3�
                                    _inheritedDoc�
                                      inlineTags�7�=�;�3�
                                      SourceFile�InheritDocTagImpl.java�!�����������������	�
                                    ! ���������
                                    ������������w�����*·�*µ�*+µ�*,µ�*-µ�±�����������)��8��*��+��,��-� ���*�����!�"������������������	�
                                    ! ���#�$�����-�����%°�����������0� ��������!�"����'�$�����-�����%°�����������4� ��������!�"����(�)�����Z�����$*´�š�**´�*´�*´�¸�*µ�0*µ�*´�0°�����������<��=��>��@� �������$�!�"����2�3�����R�����*·�4L+Æ�
                                    ! +¹�6�°°�����������D��E�	�F��I� ��������!�"����
                                    �:����;�3�����R�����*·�4L+Æ�
                                    ! +¹�<�°°�����������N��O�	�P��S� ��������!�"����
                                    �:����>����?
                                    \ No newline at end of file
                                    --- 6,12 ----
                                      ��5�(�)�7�9�8�&gnu/classpath/tools/gjdoc/TagContainer�2�3�
                                    _inheritedDoc�
                                      inlineTags�7�=�;�3�
                                      SourceFile�InheritDocTagImpl.java�!�����������������	�
                                    ! ���������
                                    ������������w�����*·�*µ�*+µ�*,µ�*-µ�±�����������:��I��;��<��=��>� ���*�����!�"������������������	�
                                    ! ���#�$�����-�����%°�����������A� ��������!�"����'�$�����-�����%°�����������E� ��������!�"����(�)�����Z�����$*´�š�**´�*´�*´�¸�*µ�0*µ�*´�0°�����������M��N��O��Q� �������$�!�"����2�3�����R�����*·�4L+Æ�
                                    ! +¹�6�°°�����������U��V�	�W��Z� ��������!�"����
                                    �:����;�3�����R�����*·�4L+Æ�
                                    ! +¹�<�°°�����������_��`�	�a��d� ��������!�"����
                                    �:����>����?
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��java/lang/Exception
                                    *** 6,10 ****
                                      ��$�%�&�	getMethod�@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
                                      �(�*�)�java/lang/reflect/Method�+�,�invoke�9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;�args�sunJavadocMain�Ljava/lang/Class;�
                                      SourceFile�JavadocWrapper.java�!���������������/�����*·�±����
                                    ! �����������������
                                    ���	�������������f�����&¸�¸�L+ ½�Y!S¶�#½�Y*S¶�'W±����
                                    ! ��������� �	�!�%�"��������&�-�"���	��.�/���0����1
                                    \ No newline at end of file
                                    --- 6,10 ----
                                      ��$�%�&�	getMethod�@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
                                      �(�*�)�java/lang/reflect/Method�+�,�invoke�9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;�args�sunJavadocMain�Ljava/lang/Class;�
                                      SourceFile�JavadocWrapper.java�!���������������/�����*·�±����
                                    ! �������,����������
                                    ���	�������������f�����&¸�¸�L+ ½�Y!S¶�#½�Y*S¶�'W±����
                                    ! �������0��1�	�2�%�3��������&�-�"���	��.�/���0����1
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,5 ****
                                      �����=(Ljava/lang/String;Lgnu/classpath/tools/gjdoc/ClassDocImpl;)V	�����LineNumberTable�LocalVariableTable�this�'Lgnu/classpath/tools/gjdoc/LinkTagImpl;�_text�contextClass�(Lgnu/classpath/tools/gjdoc/ClassDocImpl;�()Ljava/lang/String;�firstSentenceTags�()[Lcom/sun/javadoc/Tag;��com/sun/javadoc/Tag�
                                      inlineTags�
                                      SourceFile�LinkTagImpl.java�!����������������	���\�����*,-·�
                                    ! *+µ�
                                    ±����������� ��!��"����*�������������������������������	���/�����*´�
                                    °�����������$�����������������	���/�����½�°�����������'�����������������	���/�����½�°�����������+������������������
                                    \ No newline at end of file
                                    --- 2,5 ----
                                      �����=(Ljava/lang/String;Lgnu/classpath/tools/gjdoc/ClassDocImpl;)V	�����LineNumberTable�LocalVariableTable�this�'Lgnu/classpath/tools/gjdoc/LinkTagImpl;�_text�contextClass�(Lgnu/classpath/tools/gjdoc/ClassDocImpl;�()Ljava/lang/String;�firstSentenceTags�()[Lcom/sun/javadoc/Tag;��com/sun/javadoc/Tag�
                                      inlineTags�
                                      SourceFile�LinkTagImpl.java�!����������������	���\�����*,-·�
                                    ! *+µ�
                                    ±�����������1��2��3����*�������������������������������	���/�����*´�
                                    °�����������5�����������������	���/�����½�°�����������8�����������������	���/�����½�°�����������<������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,9 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$0�5(Lgnu/classpath/tools/gjdoc/Main;Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����Ú������������������������	���C�����*´�
                                      +2¸�±�������
                                    ! ����
                                    ! ������������������������ �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,9 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$0�5(Lgnu/classpath/tools/gjdoc/Main;Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����ë������������������������	���C�����*´�
                                      +2¸�±�������
                                    ! ���ð�
                                    ! ����������������������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 6,14 ****
                                      �,�1��2�(Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�9�:�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����%������������������������	���Š�����B*´�
                                      +2¸�*´�
                                      ¸�¶�"š�+(*´�
                                      ¸�¶�"š�**´�
                                    ! ¸�¶�"š�
                                    »�,Y.·�0¿±����������*�
                                    ! +�,�(-�7/�A2��������B�������B�3�4���5����6�7�����8�;��������������<
                                    \ No newline at end of file
                                    --- 6,14 ----
                                      �,�1��2�(Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�9�:�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����6������������������������	���Š�����B*´�
                                      +2¸�*´�
                                      ¸�¶�"š�+(*´�
                                      ¸�¶�"š�**´�
                                    ! ¸�¶�"š�
                                    »�,Y.·�0¿±����������;�
                                    ! <�=�(>�7@�AC��������B�������B�3�4���5����6�7�����8�;��������������<
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 13,17 ****
                                      �-�T�U�?�
                                    hasMoreTokens�args�[Ljava/lang/String;�st�Ljava/util/StringTokenizer;�path�file�Ljava/io/File;�
                                      SourceFile�	Main.java�EnclosingMethod�a�b�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����4������������������������	�������w»�Y·�+2¶�!¶�¶�#¸�'»�-Y+2²�/·�5M§�F,¶�8N»�0Y-·�;:¶�<š� »�@Y»�YB·�-¶�D¶�¶�#·�F¿*´�
                                    ! ¸�G¹�M�W,¶�Sšÿ¹±�������>���7�8�"9�%8�)9�,;�1<�;=�C?�T@�\?�`B�o9�s8�vD����4����w�������w�V�W��)�M�X�Y��1�>�Z�4��;�4�[�\���]����^�_����H�`�c�������������H�d
                                    \ No newline at end of file
                                    --- 13,17 ----
                                      �-�T�U�?�
                                    hasMoreTokens�args�[Ljava/lang/String;�st�Ljava/util/StringTokenizer;�path�file�Ljava/io/File;�
                                      SourceFile�	Main.java�EnclosingMethod�a�b�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����E������������������������	�������w»�Y·�+2¶�!¶�¶�#¸�'»�-Y+2²�/·�5M§�F,¶�8N»�0Y-·�;:¶�<š� »�@Y»�YB·�-¶�D¶�¶�#·�F¿*´�
                                    ! ¸�G¹�M�W,¶�Sšÿ¹±�������>���H�I�"J�%I�)J�,L�1M�;N�CP�TQ�\P�`S�oJ�sI�vU����4����w�������w�V�W��)�M�X�Y��1�>�Z�4��;�4�[�\���]����^�_����H�`�c�������������H�d
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class	Tue Oct 12 15:55:12 2010
                                    *************** startsWith�(Ljava/lang/String;)Z
                                    *** 15,19 ****
                                      ��X�Y�Z�
                                    hasMoreTokens�()Z�args�[Ljava/lang/String;�st�Ljava/util/StringTokenizer;�packageName�Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�e�f�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����H������������������������	���ì�����l»�Y+2·�M§�W,¶�N-!¶�#š�-!¶�)š�-,¶�.�-2¸�4š� »�:Y»�<Y>·�@-¶�CG¶�C¶�I·�L¿*´�
                                    ! ¸�M-¹�Q�W,¶�Wšÿ¨±�������>���L�
                                    M�N�P�Q�'R�0S�1T�3S�9U�FV�RU�VX�dM�kZ����*����l�������l�[�\��
                                    �_�]�^���O�_�`���a����b�c����5�d�g�������������5�h
                                    \ No newline at end of file
                                    --- 15,19 ----
                                      ��X�Y�Z�
                                    hasMoreTokens�()Z�args�[Ljava/lang/String;�st�Ljava/util/StringTokenizer;�packageName�Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�e�f�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����Y������������������������	���ì�����l»�Y+2·�M§�W,¶�N-!¶�#š�-!¶�)š�-,¶�.�-2¸�4š� »�:Y»�<Y>·�@-¶�CG¶�C¶�I·�L¿*´�
                                    ! ¸�M-¹�Q�W,¶�Wšÿ¨±�������>���]�
                                    ^�_�a�b�'c�0d�1e�3d�9f�Fg�Rf�Vi�d^�kk����*����l�������l�[�\��
                                    �_�]�^���O�_�`���a����b�c����5�d�g�������������5�h
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class	Tue Oct 12 15:55:12 2010
                                    *************** startsWith�(Ljava/lang/String;)Z
                                    *** 15,19 ****
                                      ��X�Y�Z�
                                    hasMoreTokens�()Z�args�[Ljava/lang/String;�st�Ljava/util/StringTokenizer;�packageName�Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�e�f�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����\������������������������	���ì�����l»�Y+2·�M§�W,¶�N-!¶�#š�-!¶�)š�-,¶�.�-2¸�4š� »�:Y»�<Y>·�@-¶�CG¶�C¶�I·�L¿*´�
                                    ! ¸�M-¹�Q�W,¶�Wšÿ¨±�������>���`�
                                    a�b�d�e�'f�0g�1h�3g�9i�Fj�Ri�Vl�da�kn����*����l�������l�[�\��
                                    �_�]�^���O�_�`���a����b�c����5�d�g�������������5�h
                                    \ No newline at end of file
                                    --- 15,19 ----
                                      ��X�Y�Z�
                                    hasMoreTokens�()Z�args�[Ljava/lang/String;�st�Ljava/util/StringTokenizer;�packageName�Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�e�f�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����m������������������������	���ì�����l»�Y+2·�M§�W,¶�N-!¶�#š�-!¶�)š�-,¶�.�-2¸�4š� »�:Y»�<Y>·�@-¶�CG¶�C¶�I·�L¿*´�
                                    ! ¸�M-¹�Q�W,¶�Wšÿ¨±�������>���q�
                                    r�s�u�v�'w�0x�1y�3x�9z�F{�Rz�V}�dr�k����*����l�������l�[�\��
                                    �_�]�^���O�_�`���a����b�c����5�d�g�������������5�h
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 4,8 ****
                                      �%�'�&�java/io/PrintStream�(�)�println�(Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�0�1�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����q������������������������	���M�����*´�
                                    ! ¸�²�"¶�$±����������v�w�x����������������*�+���,����-�.�����/�2��������������3
                                    \ No newline at end of file
                                    --- 4,8 ----
                                      �%�'�&�java/io/PrintStream�(�)�println�(Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�0�1�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����‚������������������������	���M�����*´�
                                    ! ¸�²�"¶�$±����������‡�ˆ�‰����������������*�+���,����-�.�����/�2��������������3
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 4,9 ****
                                      ����'gnu/classpath/tools/gjdoc/ErrorReporter� �!�setQuiet�(Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�(�)�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����z������������������������	���D�����*´�
                                      ¸�¶�±�������
                                    ! ����€����������������"�#���$����%�&�����'�*��������������+
                                    \ No newline at end of file
                                    --- 4,9 ----
                                      ����'gnu/classpath/tools/gjdoc/ErrorReporter� �!�setQuiet�(Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�(�)�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����‹������������������������	���D�����*´�
                                      ¸�¶�±�������
                                    ! ����‘����������������"�#���$����%�&�����'�*��������������+
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 14,22 ****
                                      localeName�Ljava/lang/String;�language�country�variant�st�Ljava/util/StringTokenizer;�
                                      SourceFile�	Main.java�EnclosingMethod�R�S�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����‚������������������������	��b�����¬+2MN::»�Y,·�:¶�™�	¶�!N¶�™�
                                      ¶�!:¶�™�
                                      ¶�!:Æ�*´�
                                      »�%Y-·�'¸�*§�OÆ�*´�
                                      »�%Y-·�0¸�*§�6-Æ�*´�
                                    ! »�%Y-·�1¸�*§� »�4Y»�6Y8·�:,¶�;?¶�;¶�A·�D¿±�������V���‡�ˆ�‰�	Š�‹�Œ� �&�.�5’�=“�D•�I–�_˜�d™�x›�|œ�ŽŸ�› �§Ÿ�«¢����H����¬�������¬�E�F���¨�G�H���¦�I�H��	�£�J�H��� �K�H���”�L�M���N����O�P����+�Q�T�������������+�U
                                    \ No newline at end of file
                                    --- 14,22 ----
                                      localeName�Ljava/lang/String;�language�country�variant�st�Ljava/util/StringTokenizer;�
                                      SourceFile�	Main.java�EnclosingMethod�R�S�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����“������������������������	��b�����¬+2MN::»�Y,·�:¶�™�	¶�!N¶�™�
                                      ¶�!:¶�™�
                                      ¶�!:Æ�*´�
                                      »�%Y-·�'¸�*§�OÆ�*´�
                                      »�%Y-·�0¸�*§�6-Æ�*´�
                                    ! »�%Y-·�1¸�*§� »�4Y»�6Y8·�:,¶�;?¶�;¶�A·�D¿±�������V���˜�™�š�	›�œ�� ž�& �.¡�5£�=¤�D¦�I§�_©�dª�x¬�|­�Ž°�›±�§°�«³����H����¬�������¬�E�F���¨�G�H���¦�I�H��	�£�J�H��� �K�H���”�L�M���N����O�P����+�Q�T�������������+�U
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,9 ****
                                      ����gnu/classpath/tools/gjdoc/Main���	access$14�5(Lgnu/classpath/tools/gjdoc/Main;Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����¤������������������������	���C�����*´�
                                      +2¸�±�������
                                    ! ���©�
                                    ! ª������������������������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,9 ----
                                      ����gnu/classpath/tools/gjdoc/Main���	access$14�5(Lgnu/classpath/tools/gjdoc/Main;Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����µ������������������������	���C�����*´�
                                      +2¸�±�������
                                    ! ���º�
                                    ! »������������������������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���	access$15�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����¬������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���°�±��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���	access$15�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����½������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���Á�Â��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���	access$16�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����³������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���·�¸��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���	access$16�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����Ä������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ������������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$1�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�!�"�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����â������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���ç�è��������	�������	��������������� �#��������������$
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$1�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�!�"�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����ó������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���ø�ù��������	�������	��������������� �#��������������$
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class	Tue Oct 12 15:55:12 2010
                                    *************** getMessage�()Ljava/lang/String;
                                    *** 13,16 ****
                                      �*��args�[Ljava/lang/String;�e�Ljava/io/IOException;�
                                      SourceFile�	Main.java�EnclosingMethod�G�H�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����º������������������������	���…�����3¸�»�Y+2·�¸�!¶�'§�M»�*Y»�,Y.·�0,¶�1¶�7¶�;·�>¿±������2��������¿�Á�Â�2Ä���� ����3�������3�?�@����A�B���C����D�E�����F�I��������������J
                                    \ No newline at end of file
                                    --- 13,16 ----
                                      �*��args�[Ljava/lang/String;�e�Ljava/io/IOException;�
                                      SourceFile�	Main.java�EnclosingMethod�G�H�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����Ë������������������������	���…�����3¸�»�Y+2·�¸�!¶�'§�M»�*Y»�,Y.·�0,¶�1¶�7¶�;·�>¿±������2��������Ð�Ò�Ó�2Õ���� ����3�������3�?�@����A�B���C����D�E�����F�I��������������J
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 8,13 ****
                                      �7�9�8�java/lang/System�:�;�setProperty�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�B�C�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����Æ������������������������	���w�����7*´�
                                      ¸�¶�*´�
                                    ! ¸�»�$Y&·�(+2¶�*.¶�*¶�0¶�4+2¸�6W±����������Ê�Ë�-Ì�6Í��������7�������7�<�=���>����?�@�����A�D��������������E
                                    \ No newline at end of file
                                    --- 8,13 ----
                                      �7�9�8�java/lang/System�:�;�setProperty�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�B�C�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����×������������������������	���w�����7*´�
                                      ¸�¶�*´�
                                    ! ¸�»�$Y&·�(+2¶�*.¶�*¶�0¶�4+2¸�6W±����������Û�Ü�-Ý�6Þ��������7�������7�<�=���>����?�@�����A�D��������������E
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���	access$17�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����Ï������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ������������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���	access$17�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����à������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���ä�å��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���	access$18�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����Ö������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ������������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���	access$18�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����ç������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���ë�ì��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���	access$19�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����Ý������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���á�â��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���	access$19�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����î������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���ò�ó��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���	access$20�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����ä������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���è�é��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���	access$20�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����õ������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���ù�ú��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$1�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�!�"�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����ê������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���ï�ð��������	�������	��������������� �#��������������$
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$1�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�!�"�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����û������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! �������������	�������	��������������� �#��������������$
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$1�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�!�"�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����ò������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���÷�ø��������	�������	��������������� �#��������������$
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$1�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�!�"�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����	��������	�������	��������������� �#��������������$
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$1�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�!�"�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����ú������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���ÿ����������	�������	��������������� �#��������������$
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$1�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�!�"�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ������������	�������	��������������� �#��������������$
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$2�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ������������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$2�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ������������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,9 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$3�5(Lgnu/classpath/tools/gjdoc/Main;Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����
                                    ������������������������	���C�����*´�
                                      +2¸�±�������
                                    ! ����
                                    ! ������������������������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,9 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$3�5(Lgnu/classpath/tools/gjdoc/Main;Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����������������������������	���C�����*´�
                                      +2¸�±�������
                                    ! ���#�
                                    ! $������������������������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,9 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$4�5(Lgnu/classpath/tools/gjdoc/Main;Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����������������������������	���C�����*´�
                                      +2¸�±�������
                                    ! ����
                                    ! ������������������������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,9 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$4�5(Lgnu/classpath/tools/gjdoc/Main;Ljava/lang/String;)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����&������������������������	���C�����*´�
                                      +2¸�±�������
                                    ! ���+�
                                    ! ,������������������������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      ����gnu/classpath/tools/gjdoc/Main���access$5�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���"�#��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      ����gnu/classpath/tools/gjdoc/Main���access$5�$(Lgnu/classpath/tools/gjdoc/Main;Z)V�args�[Ljava/lang/String;�
                                      SourceFile�	Main.java�EnclosingMethod�"�#�initOptions�()V�InnerClasses�OptionProcessor� ����������������	���D�����*+µ�
                                      *+·�±�������
                                    ! �����.������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ���3�4��������	�������	���������� �����!�$��������������%
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,5 ****
                                      Êþº¾���1�!��.gnu/classpath/tools/gjdoc/Main$OptionProcessor��java/lang/Object�argCount�I�this$0� Lgnu/classpath/tools/gjdoc/Main;�<init>�$(Lgnu/classpath/tools/gjdoc/Main;I)V�Code	��
                                    ��
                                      ���	��()V	�����LineNumberTable�LocalVariableTable�this�0Lgnu/classpath/tools/gjdoc/Main$OptionProcessor;�process�([Ljava/lang/String;)V�access$0�3(Lgnu/classpath/tools/gjdoc/Main$OptionProcessor;)I�
                                      SourceFile�	Main.java�InnerClasses��gnu/classpath/tools/gjdoc/Main�OptionProcessor �����������������	�
                                    ! �����K�����*+µ�*·�*µ�±����������º�·�	¹������������������������������%�����*´�¬����������¯����������������
                                      ���� 
                                    \ No newline at end of file
                                    --- 1,5 ----
                                      Êþº¾���1�!��.gnu/classpath/tools/gjdoc/Main$OptionProcessor��java/lang/Object�argCount�I�this$0� Lgnu/classpath/tools/gjdoc/Main;�<init>�$(Lgnu/classpath/tools/gjdoc/Main;I)V�Code	��
                                    ��
                                      ���	��()V	�����LineNumberTable�LocalVariableTable�this�0Lgnu/classpath/tools/gjdoc/Main$OptionProcessor;�process�([Ljava/lang/String;)V�access$0�3(Lgnu/classpath/tools/gjdoc/Main$OptionProcessor;)I�
                                      SourceFile�	Main.java�InnerClasses��gnu/classpath/tools/gjdoc/Main�OptionProcessor �����������������	�
                                    ! �����K�����*+µ�*·�*µ�±����������Ë�È�	Ê������������������������������%�����*´�¬����������À����������������
                                      ���� 
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�	Main.java�InnerClasses�
                                    *** 257,263 ****
                                      ���
                                    ���������
                                    ���������
                                    ���������������������
                                      �����
                                      ����������������� �����!�����"�����#�
                                    ����$�����%�����&�����'�(����)�����*�����+�����,�-����.�����/�(����0�����1�(����2�(����3�����4�����5�6����7�����8�����9�����:����
                                    ! �;�<���2��=�>��?���–������V½�@Y¼YTSY¼YTYTSY¼YTYTYTSY¼YTYTYTYTS³�B»�Y·�D³�G³�I±����K���&�	���S��T��V��X�0�Z�D�R�G�`�QË�U�"�L�������F�>��?���¨�����V*·�M*µ�N*Pµ�R*µ�T*»�VY·�Xµ�Y*»�[Y]_·�aµ�d*»�fY·�hµ�i*kµ�m*»�VY·�Xµ�o*»�VY·�Xµ�q±����K���.����e��v�	�}��‡��œ��°�.�º�9�À�?�Æ�J�Ë�U�g�L�������V�s�����t�u��?��®����úv¸�x*´�~Æ�L»�€Y*´�~·�‚N²�…»�‹Y·�*´�R¶�”¶�*´�~¶�¶�–¶�š-*´�R¶�ŸM§�W*´�R¸�£M§�*´�R¸�£M¨¸�xN:::,ª½�¤Y¬S¶�®:§�W,²½�¤Y´SY¶S¶�®:§�W,¸½�¤YºS¶�®N§�W,¸½�¤Y¼S¶�®:»�fY·�h:»�fY·�h:+¹�¾�:	§	¹�Ä�À�¬:
                                      	»�‹YÊ·�
                                      ¶�̶�¶�–¸�x
                                      ζ�ЙZ
                                    --- 257,263 ----
                                      ���
                                    ���������
                                    ���������
                                    ���������������������
                                      �����
                                      ����������������� �����!�����"�����#�
                                    ����$�����%�����&�����'�(����)�����*�����+�����,�-����.�����/�(����0�����1�(����2�(����3�����4�����5�6����7�����8�����9�����:����
                                    ! �;�<���2��=�>��?���–������V½�@Y¼YTSY¼YTYTSY¼YTYTYTSY¼YTYTYTYTS³�B»�Y·�D³�G³�I±����K���&�	���d��e��g��i�0�k�D�c�G�q�QÜ�U�3�L�������F�>��?���¨�����V*·�M*µ�N*Pµ�R*µ�T*»�VY·�Xµ�Y*»�[Y]_·�aµ�d*»�fY·�hµ�i*kµ�m*»�VY·�Xµ�o*»�VY·�Xµ�q±����K���.����v��‡�	�Ž��˜��­��Á�.�Ë�9�Ñ�?�×�J�Ü�U�x�L�������V�s�����t�u��?��®����úv¸�x*´�~Æ�L»�€Y*´�~·�‚N²�…»�‹Y·�*´�R¶�”¶�*´�~¶�¶�–¶�š-*´�R¶�ŸM§�W*´�R¸�£M§�*´�R¸�£M¨¸�xN:::,ª½�¤Y¬S¶�®:§�W,²½�¤Y´SY¶S¶�®:§�W,¸½�¤YºS¶�®N§�W,¸½�¤Y¼S¶�®:»�fY·�h:»�fY·�h:+¹�¾�:	§	¹�Ä�À�¬:
                                      	»�‹YÊ·�
                                      ¶�̶�¶�–¸�x
                                      ζ�ЙZ
                                    *************** S6
                                    §�:	¹�š�*´�ñ»�‹Y·�
                                    *** 303,339 ****
                                      S¶�×W§�½�Y
                                      ¶¹S¶�×W*´�ñ¶¼ž�$*´�ñ»�‹Y*´�ñ¶¼¸¿·�Á¶�¶�–¶*´�ñ¶Þ�$*´�ñ»�‹Y*´�ñ¶ø¿·�ƶ�¶�–¶¸£¬M,¶È¬��
                                    �G�JÉ�o�€�ƒÍ�„�š�Í�ž�®�±É��—óÉ™óÉ
                                      @óÉBñóÉóóÉ|óÉ~«óÉ­ìóÉî
                                    ! óÉBóÉDñóÉ��K��.�Ë����
                                    ��	�>
                                    ! �J�K
                                    �V�^�d�f�i�l�o �r!�{ �ƒ#�„-�‡.�•-�0�ž:�¡;�ª:�±=�²A�µB�¾A�ÃG�ÌJ�ÕL�àN�ìPRW["^%_.^2a8c;dDcJdMcOfUiZkdmlnuozp—q™t£u®v¹yÄ{æ€ÿ‚
                                    ! Š‹ŒŽ'@‘B•QŒ[›hžp¤zL„¨Œ²š´¦µ¯·½¸É¹Þºè·ò½ú²ÀÁÂ"Ã.Ä9ÂCÆJÇVÈbÉgÊlÌtÇ~ЊӖՙפزپÚËÛÛÜãÝæÞéØøáýâãä å#ê(í3î>ïIðKñNðTóbôoósùwúzùÿ‰�¦·ÈÒ	å
                                    ! î	ñóý#,/2> F!N"Q#T^&c'|(~/—С6¨7«8­>¯?½>¿@ÄAÇB×AÝBãEìFîI÷JK
                                    ! LOQU$V.W8YBZD_G`JdOhYjelonspuq~p…uˆv”u˜{¢}À͂î…ñˆóŠôŒø�L��ö�2��ú�s�����úÏ�(��G�ÐÑ��S�ÐÑ��^•ÐÑ���1ÒÓ��fÔÕ��iŠÖÕ��l‡×Õ��o„ØÕ��Ì'�;�(��ÕÙ�(��ݧÚÛ�	�ìŽÜ��
                                      P�
                                    �l�M��u�D�
                                    �
                                    £�à��®�á���Tâã��Aä�
                                    �
                                    —�mÚÛ�	¦�Tå��
                                      ¯�Kæç�º�8èÛ�É�éê�
                                    Þ�
                                      ëê��jæç�	�$èÛ�
                                      .�éê�S�+ìÛ�
                                      b�í��‡ÚÛ�	–î��
                                      ™þï��¯�IèÛ�¾�+éê�
                                    Ë�ðê��ðê�ñ��‰ò�(�
                                    ¦�ñó�(�·�àô��È�Ïõ��,�RöÛ�/�O÷��>�ëê�¿4ø�µ�	e�Žùú�
                                    ! ô�ûü��67��?��¦��	���Ø,¹ý�™�*´�ñ»�‹Yþ·�+¶�¶�–¶	§�¶>,¹<�:§�r¹�Ä�À�¬:6*´�q¹�¾�:§�<¹�Ä�À�¬:¶�š� »�‹Y¸k·�¶�¶�–¶�Й�	6§�
                                    ¹�šÿÀš�
                                    ²?¶A>¹�šÿŠš�,+Æ�*´�ñ»�‹Y·�+¶�¶�–¶	§�
                                    *´�ñ¶	±����K���Z���“�	”�$—�&˜�1™�=š�@œ�N�Zž�dŸ� �„¡�‡œ�‘¥�–¦�ž§� ˜�ªª�®«�²¬�ͯ�׳�L���\�	���Ø�s������Øå�����Øæç��&�±	���.�|
                                      ��=�c���@�`���K�F
                                    ��Z�-�����?����
                                      ��–»Y»Y+··N66»Y·:6§?:	ª����þ����������;������.* �à/ �Ù6§�Ó
                                    !  �Ì6§�Æ/ �2* �+¶d¶W¶ž�¶":	¶#6§�/ �2/ �+¶d¶W¶ž�¶":	¶#6§�Z'¶�í›�¶ž�G¶":	¶#§�7 �(; �!¶ž�¶":	¶#§�-¶)¬’¶.W	Æ�3š�1	¶�š�-¶):,¶�¬ �-¶),	¶�¬„6-¶3Y6œþ½-¶)¬N*´�ñ»�‹Y6·�+¶8;¶�-¶8¶�–¶	¬���q=Hq=IYq=Zoq=��K���Ò�4��½�¿�Å�Ç�È�"Ê�%Ë�(Í�DÏ�RÐ�UÒ�XÕ�_Ö�bØ�eÛ�sÜ�€Ý�ˆÞ�ß�•á�›ã�©ä�¶å�¾æ�Åç�Ëé�Ñë�Üì�äí�ëî�ôñò	óôøùý(-=AIOS	Z]aÊkoqr”�L���z���–�s�����–?ê���–@���aAB��%<C�
                                    �h�	C�
                                    ��^D�
                                    ��[E�
                                    ��RFG��"OH�
                                    ��(9I��	r�$ûJ��23��?��š�����À,¶K:Æ�·6§�M2:¶Nš�;¶OF¶H™�-*+·R™�#:+¶�™�-¹T�W§�-+¹T�W§�„¾¡ÿ±6§�Q2:¶N™�?+Æ�++¶ž�$»�‹Y+¸k·�V¶�¶O¶�¶�–:§�
                                    ! ¶O:*-·0„¾¡ÿ­±����K���R���%�&�'�(�)�.*�8+�B,�M/�U1�X'�c5�i6�p7�x9�ƒ:�¤=�«?�´5�¿C�L���p����À�s������Àå�����Àëê����ÀUç���ºVW���Uä�
                                    ���@?ê��f�Yä�
                                    ��p�D?ê��¡�X���«�	X���
                                      �³Y��?���«�����5=>§�)*2:2Z¶\™�™�+_¹a�¬=„*¾¡ÿ׬����K���*�
                                    ! ��L�M�O�P�R�T�&U�(Y�*M�3^�L���4����5�;�µ�����5�b���3c����/ä�
                                    ���dã��	ef��?��� �����2¸g²�G*¶l<œ�
                                      ¸o§�ž�
                                    ! ¸o§�¸o§�L+¶È¸o±����%�(É��K���.���o�s�u�w�y�{�!�(‚�)…�-†�1ˆ�L��� ����2rã����U�
                                    ��)�ûü��	sn��?���y�����²�G*¶l<œ�¬ž�¬¬W¬�����É���É��K���"���”�•�—�™�›�Ÿ�¢�¥�L�������rã����U�
                                    ��	st��?���9�����+¸u¬����K������±�L�������w������rã���¹n�x����b=�?��Ì��
                                      ��4»�VY+¾·yM>§�’+2{¶�К�,+2¹�W§�v»}Y+2¶�é·:»€Y·‚:¶…ˆ¶‰"¶'¶  ¶		¶
                                    
                                    ¶
                                      
                                    ! ¶§�,´“¹�W¶– ÿî„+¾¡ÿn*·™»�fY·�hN»�f·�h»BY·œ³?*²?¶µ�ñ,¹�¾�:§�Ÿ¹�Ä�À�¬:¸�Ô6ž�‡½�¬:S66	§�5¹�™�%	¹�Ä�À�¬S	2ζ�Й�6§�6„		¢�šÿÅ™�-¹�W§�"*´�ñ»�‹Y·�¶�V¶�¶�–¶¡¹�šÿ]--¹¤�Å�´¹�À�´:²?¸§™�“*·©*´¬™�!²®»�‹Y±·�*¶³¶�¶�–¶�š¸o*´¶™�
                                    *´�ñ¸¶	*´�Y¹¤�š�*´�Y»#YV·U¹�W*´ºÆ�²?*´º¶¼§�²?¿¸Á¶¼²?*´�Y¶Å*,·Éš�¬*´�ñ¶ì����K���ò�<��ô�
                                    ! ö�ø�ú�(þ�8ÿ�C��H�Q�X�_�h�q�z�ƒ�†
                                    ! �’�›ö�¤�¨�° �¶"�À#�Ê'�Õ*�á/�è9�í;�ô<�ú=�ý>@
                                    BC)E/J2>AMFNRTq'{[}\‡[‘`œf¢j©kÃlÇoÎpØväwø{ÿ|ƒ"‡*ˆ,Œ�L���Ž���4�s�����4rã��
                                    ! *Ë�(���˜ä�
                                    ��8�cÌÍ��C�XÎÏ��°„�;�(��Ò�©ÚÛ��á�Ð���è�‰Ý�
                                    ��ô�}Üã��ý�tÑ����AÒ�
                                    �	‘�£Ó�µ��Ô�>�x����=�?�� �����x»�‹YÕ·�*´�m¶�׶�¶�–L*¶Ù+¶ÝM»áY»ãY,·å·æN§�9¶ç:¶ž�*»êY»ìYî·ð·ñ:¶ô²?¶÷-¶ûY:Çÿñ����K���>���’�“�$”�4–�7˜�>™�F›�Uœ�V�Y›�\š�^ž�eŸ�m–�w¢�L���R����x�s�����]þ���$�TAB��4�DÌÿ��7�6����t�����>�/���^���›�>��?��ì����6»Y·³�I²�I»	Y*·¹�W²�I»Y*·¹�W²�I»Y*·¹�W²�I» Y*·"¹�W²�I#»%Y*·'¹�W»(Y*·*L²�I++¹�W²�I-+¹�W²�IZ»/Y*·1¹�W²�I2»4Y*·6¹�W²�I7»9Y*·;¹�W²�I<»>Y*·@¹�W»AY*·CM²�ID,¹�W²�IF,¹�W²�IH»JY*·L¹�W²�IM»OY*·Q¹�W²�IR»TY*·V¹�W²�IW»YY*·[¹�W²�I\»^Y*·`¹�W²�Ia»cY*·e¹�W²�If»hY*·j¹�W²�Ik»mY*·o¹�W²�I»pY*·r¹�W²�Is»uY*·w¹�W²�Ix»zY*·|¹�W²�I}»Y*·¹�W²�I‚»„Y*·†¹�W²�I‡»‰Y*·‹¹�W±����K���~���Õ�
                                    ! Ú�â�4ê�Iò�^ú�s�}�Š�—
                                    �¬�Á�Ö%�ë4�õFGH$\9qNzc‚x¤¬¢³·ºÌÆáÏöÖÝ ä5ë�L��� ���6�s����}¹Œ��õAŽ��
                                    ! �«�Ö��?���[�����²�I*¶¹’�À–L+Æ�+¸˜¬¬����K������ö�÷�ø�ú�L�������Ü�����œ��«’��?���º�����B=§�9+2N-¾d½�¬:--¾d¸²�I-2¶¹’�À–:¶¡„+¾¡ÿDZ����K���"����
                                    �	���1�8�A�L���>����B�s������BÓ�µ���?ä�
                                    ��	�/dã���&rã��1�œ��
                                      €�>��?���2������
                                    ! ²®¤¶¦±����K��������	‘�L������	©ª��?���$������²?°����K������š�L������	«¬��?���$������²�G°����K������¤�L������­®��?���?�����²�B*´�T23¬����K������°�L��������s������¯�
                                    ��°��?���/�����*´�N¬����K������º�L��������s����	`a��?���n����� =§�+*¶±¶�íœ�¬„*¶¡ÿê¬����K������Ê�Ì�Í�Ê�Ï�L��� ���� µ������ ¶����ä�
                                    ��	·�>��?���+������²?¶¸±����K���
                                    ! ���×�Ø�L������»��?���P�����*´¼š�*¶¾¶²Ŷ¶�™�¬¬����K������ß�à�ß�L��������s����È��?���/�����*´ɬ����K������è�L��������s����ÀÁ��?���/�����*´�d°����K������ñ�L��������s����ËÌ��?��z�����Ð*´ÍÇ�Ç*¶¾L*+¸ϵ͸ÔM*´ÍÇ�€,+¶ך�x*,¸ϵÍ*´ÍÆ�4*´�ñ»�‹YØ·�+¶Ú¶�ݶ�,¶Ú¶�V¶�¶�–¶	§�8*¸ßµÍ*´�ñ»�‹Yá·�+¶Ú¶�ã¶�,¶Ú¶�å¶�¶�–¶	*´ÍÇ�+*¸ßµÍ*´�ñ»�‹YØ·�+¶Ú¶�å¶�¶�–¶	*´Í°����K���r���û�ü�ý�þ�ÿ���'�/�6�D�K�Q�X�a�g
                                    ! �n�|�ƒ
                                    �‰��™�œ�£�ª�¸�¿�È�Ë�L��� ����Ð�s�����¿ç�-���³è�-��é��?���,�����¬����K�������L��������s����µ�™��?���E�����*´êÇ�
                                    ! *ìµê*´ê°����K������#�$�&�L��������s����î��?���/�����*´ï¬����K������+�L��������s���šñ��?���&�����*+µò±����K�������‚�L�����ô
                                    ��?���&�����*µ�T±����K�������‡�L�����õö��?���&�����*µ|±����K�������Œ�L�����÷ñ��?���&�����*+µ�R±����K�������}�L�����øñ��?���&�����*+µ�~±����K�������‘�L�����ùö��?���&�����*µú±����K�������«�L�����üñ��?���&�����*+µ�m±����K�������À�L�����ýþ��?���%�����*´�m°����K�������À�L�����ÿ���?���%�����*´�Y°����K�������œ�L��������?���%�����*´�o°����K�������Æ�L��������?���%�����*´�q°����K�������Ë�L�����ö��?���&�����*µ±����K�������¦�L�������?���%�����*´�ñ°����K�������k�L�����	��?���&�����*+µ�d±����K�������°�L�����
                                    ! ñ��?���&�����*+µº±����K�������µ�L�����ö��?���&�����*µ¼±����K�������Ñ�L�����ö��?���&�����*µɱ����K�������Ö�L�����
                                    ö��?���&�����*µ¬±����K�������à�L�����ö��?���&�����*µ¶±����K�������å�L�����ö��?���&�����*µ8±����K�������ê�L�����ö��?���&�����*µï±����K�������ï�L������������Ò�	������>������A������J������O������T������Y������^������c������h������m������������p������u������z������������„������‰������������ ������%������(������/������4������9������–�
                                    \ No newline at end of file
                                    --- 303,338 ----
                                      S¶�×W§�½�Y
                                      ¶¹S¶�×W*´�ñ¶¼ž�$*´�ñ»�‹Y*´�ñ¶¼¸¿·�Á¶�¶�–¶*´�ñ¶Þ�$*´�ñ»�‹Y*´�ñ¶ø¿·�ƶ�¶�–¶¸£¬M,¶È¬��
                                    �G�JÉ�o�€�ƒÍ�„�š�Í�ž�®�±É��—óÉ™óÉ
                                      @óÉBñóÉóóÉ|óÉ~«óÉ­ìóÉî
                                    ! óÉBóÉDñóÉ��K��.�Ë����
                                    ���>�J�K�V"�^&�d(�f)�i*�l+�o1�r2�{1�ƒ4�„>�‡?�•>�A�žK�¡L�ªK�±N�²R�µS�¾R�ÃX�Ì[�Õ]�à_�ìachl"o%p.o2r8t;uDtJuMtOwUzZ|d~lu€z—‚™…£†®‡¹ŠÄŒæ‘ÿ’“
                                    ! ›œŸ'¡@¢B¦Q[¬h¯pµz]„¹ŒÃšÅ¦Æ¯È½ÉÉÊÞËèÈòÎúÃÑÒÓ"Ô.Õ9ÓC×JØVÙbÚgÛlÝtØ~áŠä–æ™è¤é²ê¾ëËìÛíãîæïééøòýóôõ ö#û(þ3ÿ>�IKNTbos
                                    ! wz
                                    ! ‰¦·ÈÒåîñó"ý$%$&,#-,.//20>1F2N3Q4T/^7c8|9~@—á¡G¨H«I­O¯P½O¿QÄRÇS×RÝSãVìWîZ÷[\
                                    ! ]`bf$g.h8jBkDpGqJuOyY{e}osu‚~…†ˆ‡”†˜Œ¢ŽÃ‘Í“î–ñ™ó›ôøž�L��ö�2��ú�s�����úÏ�(��G�ÐÑ��S�ÐÑ��^•ÐÑ���1ÒÓ��fÔÕ��iŠÖÕ��l‡×Õ��o„ØÕ��Ì'�;�(��ÕÙ�(��ݧÚÛ�	�ìŽÜ��
                                      P�
                                    �l�M��u�D�
                                    �
                                    £�à��®�á���Tâã��Aä�
                                    �
                                    —�mÚÛ�	¦�Tå��
                                      ¯�Kæç�º�8èÛ�É�éê�
                                    Þ�
                                      ëê��jæç�	�$èÛ�
                                      .�éê�S�+ìÛ�
                                      b�í��‡ÚÛ�	–î��
                                      ™þï��¯�IèÛ�¾�+éê�
                                    Ë�ðê��ðê�ñ��‰ò�(�
                                    ¦�ñó�(�·�àô��È�Ïõ��,�RöÛ�/�O÷��>�ëê�¿4ø�µ�	e�Žùú�
                                    ! ô�ûü��67��?��¦��	���Ø,¹ý�™�*´�ñ»�‹Yþ·�+¶�¶�–¶	§�¶>,¹<�:§�r¹�Ä�À�¬:6*´�q¹�¾�:§�<¹�Ä�À�¬:¶�š� »�‹Y¸k·�¶�¶�–¶�Й�	6§�
                                    ¹�šÿÀš�
                                    ²?¶A>¹�šÿŠš�,+Æ�*´�ñ»�‹Y·�+¶�¶�–¶	§�
                                    *´�ñ¶	±����K���Z���¤�	¥�$¨�&©�1ª�=«�@­�N®�Z¯�d°�±�„²�‡­�‘¶�–·�ž¸� ©�ª»�®¼�²½�ÍÀ�×Ä�L���\�	���Ø�s������Øå�����Øæç��&�±	���.�|
                                      ��=�c���@�`���K�F
                                    ��Z�-�����?����
                                      ��–»Y»Y+··N66»Y·:6§?:	ª����þ����������;������.* �à/ �Ù6§�Ó
                                    !  �Ì6§�Æ/ �2* �+¶d¶W¶ž�¶":	¶#6§�/ �2/ �+¶d¶W¶ž�¶":	¶#6§�Z'¶�í›�¶ž�G¶":	¶#§�7 �(; �!¶ž�¶":	¶#§�-¶)¬’¶.W	Æ�3š�1	¶�š�-¶):,¶�¬ �-¶),	¶�¬„6-¶3Y6œþ½-¶)¬N*´�ñ»�‹Y6·�+¶8;¶�-¶8¶�–¶	¬���q=Hq=IYq=Zoq=��K���Ò�4��Î�Ð�Ö�Ø�Ù�"Û�%Ü�(Þ�Dà�Rá�Uã�Xæ�_ç�bé�eì�sí�€î�ˆï�ð�•ò�›ô�©õ�¶ö�¾÷�Åø�Ëú�Ñü�Üý�äþ�ëÿ�ô		
                                    ! (-=AIOSZ]aÛk$o%q'r(”)�L���z���–�s�����–?ê���–@���aAB��%<C�
                                    �h�	C�
                                    ��^D�
                                    ��[E�
                                    ��RFG��"OH�
                                    ��(9I��	r�$ûJ��23��?��š�����À,¶K:Æ�·6§�M2:¶Nš�;¶OF¶H™�-*+·R™�#:+¶�™�-¹T�W§�-+¹T�W§�„¾¡ÿ±6§�Q2:¶N™�?+Æ�++¶ž�$»�‹Y+¸k·�V¶�¶O¶�¶�–:§�
                                    ! ¶O:*-·0„¾¡ÿ­±����K���R���6�7�8�9�:�.;�8<�B=�M@�UB�X8�cF�iG�pH�xJ�ƒK�¤N�«P�´F�¿T�L���p����À�s������Àå�����Àëê����ÀUç���ºVW���Uä�
                                    ���@?ê��f�Yä�
                                    ��p�D?ê��¡�X���«�	X���
                                      �³Y��?���«�����5=>§�)*2:2Z¶\™�™�+_¹a�¬=„*¾¡ÿ׬����K���*�
                                    ! ��]�^�`�a�c�e�&f�(j�*^�3o�L���4����5�;�µ�����5�b���3c����/ä�
                                    ���dã��	ef��?��� �����2¸g²�G*¶l<œ�
                                      ¸o§�ž�
                                    ! ¸o§�¸o§�L+¶È¸o±����%�(É��K���.���€�„�†�ˆ�Š�Œ�!�(“�)–�-—�1™�L��� ����2rã����U�
                                    ��)�ûü��	sn��?���y�����²�G*¶l<œ�¬ž�¬¬W¬�����É���É��K���"���¥�¦�¨�ª�¬�°�³�¶�L�������rã����U�
                                    ��	st��?���9�����+¸u¬����K������Â�L�������w������rã���¹n�x����b=�?��Ì��
                                      ��4»�VY+¾·yM>§�’+2{¶�К�,+2¹�W§�v»}Y+2¶�é·:»€Y·‚:¶…ˆ¶‰"¶'¶  ¶		¶
                                    
                                    ¶
                                      
                                    ! ¶§�,´“¹�W¶– ÿî„+¾¡ÿn*·™»�fY·�hN»�f·�h»BY·œ³?*²?¶µ�ñ,¹�¾�:§�Ÿ¹�Ä�À�¬:¸�Ô6ž�‡½�¬:S66	§�5¹�™�%	¹�Ä�À�¬S	2ζ�Й�6§�6„		¢�šÿÅ™�-¹�W§�"*´�ñ»�‹Y·�¶�V¶�¶�–¶¡¹�šÿ]--¹¤�Å�´¹�À�´:²?¸§™�“*·©*´¬™�!²®»�‹Y±·�*¶³¶�¶�–¶�š¸o*´¶™�
                                    *´�ñ¸¶	*´�Y¹¤�š�*´�Y»#YV·U¹�W*´ºÆ�²?*´º¶¼§�²?¿¸Á¶¼²?*´�Y¶Å*,·Éš�¬*´�ñ¶ì����K���ò�<���
                                    ! �	��(�8�C�H�Q�X�_�h�q�z�ƒ�†�’�›�¤"�¨)�°1�¶3�À4�Ê8�Õ;�á@�èJ�íL�ôM�úN�ýOQ
                                    ST)V/[2OA^F_Req8{l}m‡l‘qœw¢{©|Ã}Ç€Î؇äˆøŒÿ’”"˜*™,�L���Ž���4�s�����4rã��
                                    ! *Ë�(���˜ä�
                                    ��8�cÌÍ��C�XÎÏ��°„�;�(��Ò�©ÚÛ��á�Ð���è�‰Ý�
                                    ��ô�}Üã��ý�tÑ����AÒ�
                                    �	‘�£Ó�µ��Ô�>�x����=�?�� �����x»�‹YÕ·�*´�m¶�׶�¶�–L*¶Ù+¶ÝM»áY»ãY,·å·æN§�9¶ç:¶ž�*»êY»ìYî·ð·ñ:¶ô²?¶÷-¶ûY:Çÿñ����K���>���£�¤�$¥�4§�7©�>ª�F¬�U­�V®�Y¬�\«�^¯�e°�m§�w³�L���R����x�s�����]þ���$�TAB��4�DÌÿ��7�6����t�����>�/���^���›�>��?��ì����6»Y·³�I²�I»	Y*·¹�W²�I»Y*·¹�W²�I»Y*·¹�W²�I» Y*·"¹�W²�I#»%Y*·'¹�W»(Y*·*L²�I++¹�W²�I-+¹�W²�IZ»/Y*·1¹�W²�I2»4Y*·6¹�W²�I7»9Y*·;¹�W²�I<»>Y*·@¹�W»AY*·CM²�ID,¹�W²�IF,¹�W²�IH»JY*·L¹�W²�IM»OY*·Q¹�W²�IR»TY*·V¹�W²�IW»YY*·[¹�W²�I\»^Y*·`¹�W²�Ia»cY*·e¹�W²�If»hY*·j¹�W²�Ik»mY*·o¹�W²�I»pY*·r¹�W²�Is»uY*·w¹�W²�Ix»zY*·|¹�W²�I}»Y*·¹�W²�I‚»„Y*·†¹�W²�I‡»‰Y*·‹¹�W±����K���~���æ�
                                    ! ë�ó�4û�I�^�s�}�Š�—�¬&�Á.�Ö6�ëE�õWXY$m9‚N‹c“xµ½¢Ä·ËÌ×áàöçî õ5ü�L��� ���6�s����}¹Œ��õAŽ��
                                    ! �«�Ö��?���[�����²�I*¶¹’�À–L+Æ�+¸˜¬¬����K��������	��L�������Ü�����œ��«’��?���º�����B=§�9+2N-¾d½�¬:--¾d¸²�I-2¶¹’�À–:¶¡„+¾¡ÿDZ����K���"�����	� �!�1"�8�A$�L���>����B�s������BÓ�µ���?ä�
                                    ��	�/dã���&rã��1�œ��
                                      €�>��?���2������
                                    ! ²®¤¶¦±����K������+�,�	¢�L������	©ª��?���$������²?°����K������«�L������	«¬��?���$������²�G°����K������µ�L������­®��?���?�����²�B*´�T23¬����K������Á�L��������s������¯�
                                    ��°��?���/�����*´�N¬����K������Ë�L��������s����	`a��?���n����� =§�+*¶±¶�íœ�¬„*¶¡ÿê¬����K������Û�Ý�Þ�Û�à�L��� ���� µ������ ¶����ä�
                                    ��	·�>��?���+������²?¶¸±����K���
                                    ! ���è�é�L������»��?���P�����*´¼š�*¶¾¶²Ŷ¶�™�¬¬����K������ð�ñ�ð�L��������s����È��?���/�����*´ɬ����K������ù�L��������s����ÀÁ��?���/�����*´�d°����K�������L��������s����ËÌ��?��z�����Ð*´ÍÇ�Ç*¶¾L*+¸ϵ͸ÔM*´ÍÇ�€,+¶ך�x*,¸ϵÍ*´ÍÆ�4*´�ñ»�‹YØ·�+¶Ú¶�ݶ�,¶Ú¶�V¶�¶�–¶	§�8*¸ßµÍ*´�ñ»�‹Yá·�+¶Ú¶�ã¶�,¶Ú¶�å¶�¶�–¶	*´ÍÇ�+*¸ßµÍ*´�ñ»�‹YØ·�+¶Ú¶�å¶�¶�–¶	*´Í°����K���r����
                                    �����'�/�6�D�K�Q�X�a�g�n�|�ƒ�‰� �™�œ#�£$�ª%�¸&�¿'�È%�Ë*�L��� ����Ð�s�����¿ç�-���³è�-��é��?���,�����¬����K������/�L��������s����µ�™��?���E�����*´êÇ�
                                    ! *ìµê*´ê°����K������4�5�7�L��������s����î��?���/�����*´ï¬����K������<�L��������s���šñ��?���&�����*+µò±����K�������“�L�����ô
                                    ��?���&�����*µ�T±����K�������˜�L�����õö��?���&�����*µ|±����K��������L�����÷ñ��?���&�����*+µ�R±����K�������Ž�L�����øñ��?���&�����*+µ�~±����K�������¢�L�����ùö��?���&�����*µú±����K�������¼�L�����üñ��?���&�����*+µ�m±����K�������Ñ�L�����ýþ��?���%�����*´�m°����K�������Ñ�L�����ÿ���?���%�����*´�Y°����K�������­�L��������?���%�����*´�o°����K�������×�L��������?���%�����*´�q°����K�������Ü�L�����ö��?���&�����*µ±����K�������·�L�������?���%�����*´�ñ°����K�������|�L�����	��?���&�����*+µ�d±����K�������Á�L�����
                                    ! ñ��?���&�����*+µº±����K�������Æ�L�����ö��?���&�����*µ¼±����K�������â�L�����ö��?���&�����*µɱ����K�������ç�L�����
                                    ö��?���&�����*µ¬±����K�������ñ�L�����ö��?���&�����*µ¶±����K�������ö�L�����ö��?���&�����*µ8±����K�������û�L�����ö��?���&�����*µï±����K��������L������������Ò�	������>������A������J������O������T������Y������^������c������h������m������������p������u������z������������„������‰������������ ������%������(������/������4������9������–�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** isIncluded
                                    *** 33,42 ****
                                      ��Ð�Î�O	��Ò�Ó�Ô�tagMap�Ljava/util/Map;�Ö�Ø�×�
                                    java/util/Map�Ù�;�isEmpty
                                      �‚�Û�Ü�Ý�findInheritedDoc�˜(Lcom/sun/javadoc/ClassDoc;Lgnu/classpath/tools/gjdoc/MemberDocImpl;Lgnu/classpath/tools/gjdoc/AbstractTagImpl;)Lgnu/classpath/tools/gjdoc/TagContainer;�ß�á�à�&gnu/classpath/tools/gjdoc/TagContainer�â�ã�	getTagMap�()Ljava/util/Map;�inheritedTagMap�(Lgnu/classpath/tools/gjdoc/TagContainer;�
                                      SourceFile�MemberDocImpl.java!������������	�
                                    ! ��������
                                    ���
                                    �����\�����*+,-·�±�����������#��$��%��&����*����������������������������������M�����#»�Y*¶�¹�"�¸�&·�,/¶�1*¶�5¶�1¶�7°�����������)��������#������:�;�����,�����¬�����������-���������������<�=����¹��
                                      ��‘	»�Y>·�,»�'Y+d·�@¶�1C¶�1¶�7¸�E6»�KY·�M:»�KY·�M:666	§> �%d¢.+4* &+`4/ „6§ �+4
                                       6§�ÿd¢�+4/ �+`4* �„6§�Ý+4=Ÿ�+4(Ÿ�+4; �*¶�Pµ�Q¬S+4¶�Uœ�ž�ˆ+d4] �~+4[Ÿ�v¶�Yž�	.Ÿ�‰*¶�P¶�]š�O¶�Yš�*¶�aš�¶�d¶�hW§�/[Ÿ�
                                    ! ] �*¶�aš�¶�hW§�*¶�Pµ�Q¬¶�d6§�%œ�6+46	¶�Yš�	6	’¶�kW„¡þÃ*¶�Pµ�Q¬�������ª�*���2�%�8�(�:�1�;�:�<�=�=�@�>�C�?�F�@�L�A�e�B�h�C�n�F�t�G�|�H�‚�K�›�L�ž�M�¤�O�¼�P�Å�Q�È�S�Ó�T�é�U�ø�V�X�Y�Z$�\9�]D�`M�aP�cV�d\�hd�ii�jq�ku�m~�?†�q�r����f�
                                    ! ��‘������‘�n�o���‘�p�q���‘�r�q��(i�s�q��1`�t�u��:W�v�u��=T�w�q��@Q�x�q��CN�y�q�	��	�z�����£�����O	»�Y{·�,*¶�¶�}/¶�1*¶�}¶�7¸�E*´�€Ç�%**¶�À�‚*´�Q¶�„µ�€§�L²�ˆŽ¶�+¶�•*´�€°��(�:�=�–���������w�!�x�(�z�=�{�>�|�F�}�J�€��������O�����>��š�›���œ�.�����>�����*+µ�±�������
                                    ! ����…��†��������������������������/�����*´�°�����������‹��������������Ÿ�.�����G�����*+µ�Q*µ�€±��������������
                                    ! �‘�������������������� ������/�����*´�Q°�����������”��������������¡�;�����5�����¸�¢*´�¨¶�«¬�����������™��������������¯�°����������;+Á�™�1*¶�5+À�¶�5¶�±=š�*¶�¹�"�+À�¶�¹�"�¶�±=¬*+·�´¬�������������ž��Ÿ�� �3�¡�5�¤���� ����;�������;�¶�·����¸�q����¹�O�����ø�����Š*´�€Ç�S*´�QÆ�L»�Yº·�,*´�Q¶�1¶�7¸�E**¶�À�‚*´�Q¶�„µ�€§� W»�Y¼·�,*´�Q¶�1C¶�1¶�7¸�E*´�€Á�¾™�+*´�€¹�À�L*¶�À�‚+*´�€¹�Å�¶�ÈM,Æ�*,µ�€±��%�7�:�–�����.����ª��«�%�­�:�®�;�±�W�µ�a�¶�k�·�€�¸�„�¹�‰�Ë���� ����Š�����k��Ì���€�	�Í����Î�O�����}�����)*·�Ï*´�ѹ�Õ�™�*¶�*¸�ÚL+Æ�
                                    *+¹�Þ�µ�ѱ�������&�	���Ï��Ñ��Ò��Ó��Ô��Ò��Õ��Ö�(�Ù��������)�������ä�å���æ����ç
                                    \ No newline at end of file
                                    --- 33,42 ----
                                      ��Ð�Î�O	��Ò�Ó�Ô�tagMap�Ljava/util/Map;�Ö�Ø�×�
                                    java/util/Map�Ù�;�isEmpty
                                      �‚�Û�Ü�Ý�findInheritedDoc�˜(Lcom/sun/javadoc/ClassDoc;Lgnu/classpath/tools/gjdoc/MemberDocImpl;Lgnu/classpath/tools/gjdoc/AbstractTagImpl;)Lgnu/classpath/tools/gjdoc/TagContainer;�ß�á�à�&gnu/classpath/tools/gjdoc/TagContainer�â�ã�	getTagMap�()Ljava/util/Map;�inheritedTagMap�(Lgnu/classpath/tools/gjdoc/TagContainer;�
                                      SourceFile�MemberDocImpl.java!������������	�
                                    ! ��������
                                    ���
                                    �����\�����*+,-·�±�����������4��5��6��7����*����������������������������������M�����#»�Y*¶�¹�"�¸�&·�,/¶�1*¶�5¶�1¶�7°�����������:��������#������:�;�����,�����¬�����������>���������������<�=����¹��
                                      ��‘	»�Y>·�,»�'Y+d·�@¶�1C¶�1¶�7¸�E6»�KY·�M:»�KY·�M:666	§> �%d¢.+4* &+`4/ „6§ �+4
                                       6§�ÿd¢�+4/ �+`4* �„6§�Ý+4=Ÿ�+4(Ÿ�+4; �*¶�Pµ�Q¬S+4¶�Uœ�ž�ˆ+d4] �~+4[Ÿ�v¶�Yž�	.Ÿ�‰*¶�P¶�]š�O¶�Yš�*¶�aš�¶�d¶�hW§�/[Ÿ�
                                    ! ] �*¶�aš�¶�hW§�*¶�Pµ�Q¬¶�d6§�%œ�6+46	¶�Yš�	6	’¶�kW„¡þÃ*¶�Pµ�Q¬�������ª�*���C�%�I�(�K�1�L�:�M�=�N�@�O�C�P�F�Q�L�R�e�S�h�T�n�W�t�X�|�Y�‚�\�›�]�ž�^�¤�`�¼�a�Å�b�È�d�Ó�e�é�f�ø�g�i�j�k$�m9�nD�qM�rP�tV�u\�yd�zi�{q�|u�~~�P†�‚�ƒ����f�
                                    ! ��‘������‘�n�o���‘�p�q���‘�r�q��(i�s�q��1`�t�u��:W�v�u��=T�w�q��@Q�x�q��CN�y�q�	��	�z�����£�����O	»�Y{·�,*¶�¶�}/¶�1*¶�}¶�7¸�E*´�€Ç�%**¶�À�‚*´�Q¶�„µ�€§�L²�ˆŽ¶�+¶�•*´�€°��(�:�=�–���������ˆ�!�‰�(�‹�=�Œ�>��F�Ž�J�‘��������O�����>��š�›���œ�.�����>�����*+µ�±�������
                                    ! ����–��—��������������������������/�����*´�°�����������œ��������������Ÿ�.�����G�����*+µ�Q*µ�€±����������� ��¡�
                                    ! �¢�������������������� ������/�����*´�Q°�����������¥��������������¡�;�����5�����¸�¢*´�¨¶�«¬�����������ª��������������¯�°����������;+Á�™�1*¶�5+À�¶�5¶�±=š�*¶�¹�"�+À�¶�¹�"�¶�±=¬*+·�´¬�����������®��¯��°��±�3�²�5�µ���� ����;�������;�¶�·����¸�q����¹�O�����ø�����Š*´�€Ç�S*´�QÆ�L»�Yº·�,*´�Q¶�1¶�7¸�E**¶�À�‚*´�Q¶�„µ�€§� W»�Y¼·�,*´�Q¶�1C¶�1¶�7¸�E*´�€Á�¾™�+*´�€¹�À�L*¶�À�‚+*´�€¹�Å�¶�ÈM,Æ�*,µ�€±��%�7�:�–�����.����»��¼�%�¾�:�¿�;�Â�W�Æ�a�Ç�k�È�€�É�„�Ê�‰�Ü���� ����Š�����k��Ì���€�	�Í����Î�O�����}�����)*·�Ï*´�ѹ�Õ�™�*¶�*¸�ÚL+Æ�
                                    *+¹�Þ�µ�ѱ�������&�	���à��â��ã��ä��å��ã��æ��ç�(�ê��������)�������ä�å���æ����ç
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** returnType�()Lcom/sun/javadoc/Type;
                                    *** 9,12 ****
                                      ��3�4�5�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                      ��7���
                                      SourceFile�MethodDocImpl.java�!������������	���\�����*+,-·�
                                    ! ±����������� ��!��"��#�
                                    ���*�������������������������������	���,�����¬�����������'�
                                    ����������������	���/�����*·�°�����������+�
                                    ����������������	���O�����%»�Y*¶�!¸�$·�**¶�-Ç�0§�*¶�-¶�2¶�6°�����������.�
                                    �������%������8����9
                                    \ No newline at end of file
                                    --- 9,12 ----
                                      ��3�4�5�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                      ��7���
                                      SourceFile�MethodDocImpl.java�!������������	���\�����*+,-·�
                                    ! ±�����������1��2��3��4�
                                    ���*�������������������������������	���,�����¬�����������8�
                                    ����������������	���/�����*·�°�����������<�
                                    ����������������	���O�����%»�Y*¶�!¸�$·�**¶�-Ç�0§�*¶�-¶�2¶�6°�����������?�
                                    �������%������8����9
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 7,13 ****
                                      �&�(�'� gnu/classpath/tools/gjdoc/Parser�)�*�
                                    packageOpened�(Ljava/lang/String;)V�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�packageName�Ljava/lang/String;�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������»����������
                                    ���������������{
                                      `+¾¢�s+`4p �i+`4a �_+`4c �U+`4k �K+`4a �A+`4g �7+`4e �,+`4¶�›�„§�„+¾¢�+4; ÿò`¬¬����
                                    ! ���2����¾�	�¿��À��Á�'�Â�1�Ã�;�Ä�E�Å�P�Æ�^�È�u�Ë�y�Î���� ����{��
                                    �����{������{������������‡�����#»�Y,`ddd·�¶�!:+¶�%¬����
                                    ! ���������� �����>����#��
                                    �����#�+�,����#������#�-�����#�.����	�/�0���1����2
                                    \ No newline at end of file
                                    --- 7,13 ----
                                      �&�(�'� gnu/classpath/tools/gjdoc/Parser�)�*�
                                    packageOpened�(Ljava/lang/String;)V�parser�"Lgnu/classpath/tools/gjdoc/Parser;�
                                      startIndex�endIndex�packageName�Ljava/lang/String;�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �����������������
                                    ���������������{
                                      `+¾¢�s+`4p �i+`4a �_+`4c �U+`4k �K+`4a �A+`4g �7+`4e �,+`4¶�›�„§�„+¾¢�+4; ÿò`¬¬����
                                    ! ���2�����	������'��1��;��E��P��^��u��y����� ����{��
                                    �����{������{������������‡�����#»�Y,`ddd·�¶�!:+¶�%¬����
                                    ! �������ã��ä� �å����>����#��
                                    �����#�+�,����#������#�-�����#�.����	�/�0���1����2
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** classNamed�dump�(I)V�í�All classe
                                    *** 40,49 ****
                                      �()Ljava/io/File;�
                                      SourceFile�PackageDocImpl.java� ������������	�
                                      ���������
                                    ��������������������������������������������������������������1������
                                    »�Y·�!³�%±����'���
                                    ! ����Ÿ���(��������#�$�����›�����G*·�)*»�,Y·�.µ�0*»�2Y·�4µ�5*»�2Y·�4µ�7*»�2Y·�4µ�9*»�2Y·�4µ�;*µ�=*+µ�?±����'���&�	���-�� ��!��"�&�#�1�$�<�­�A�.�F�/�(�������G�A������G�����B�C�����X�����¸�D+À�J´�L¶�P™�*´�0+¹�T�W±����'�������2��3��5�(��������A�������Z�[���\����������‰*´�0¹�]�L§�u+¹�a�À�JM,¶�g§�N²�i»�oYq·�s-¶�t¶�x¶�|,¶�™�*´�9,¹�…�W§�8,¶�ˆ™�*´�7,¹�…�W§�#,¶�‹™�*´�;,¹�…�W§�*´�5,¹�…�W+¹�Ž�šÿˆ±�����‘��'���B����8�
                                    �9��;��<��=�+�>�2�=�5�A�<�B�J�D�Q�E�_�G�f�H�t�K��8�ˆ�N�(���*����‰�A����
                                    ! �~�“�”���h�Z�•����–�—���˜������x�����&*´�™Æ�**´�™¶�œ*´�™¶�¢¸�¦µ�ª*¶�®±����'���.����Q��R��S��T��U��V��W��X��R�!�[�%�\�(�������&�A�����±�{�����/�����*´�?°����'�������_�(��������A������²�����J�����*´�³Ç�***´�0·�µµ�³*´�³°����'�������d��e��g�(��������A������²�����J�����*´�¹Ç�***´�5·�µµ�¹*´�¹°����'�������l��m��o�(��������A������²�����J�����*´�»Ç�***´�7·�µµ�»*´�»°����'�������u��v��x�(��������A������²�����J�����*´�½Ç�***´�9·�µµ�½*´�½°����'�������}��~��€�(��������A������²�����J�����*´�¿Ç�***´�;·�µµ�¿*´�¿°����'�������…��†��ˆ�(��������A�����·�¸�����_�����++¹�Á�½�ƹ�È�À�ÌM,¸�Í,°����'���������Ž���(��� �����A�������Ó�Ô����Õ����Ö�×�����U�����!¸�Ø»�oY*´�?¸�Ü·�sà¶�â+¶�â¶�x¶�å°����'�������“�(�������!�A������!�±����ê�ë�����a�����ì¸�î*¶�ô¸�öú¸�î*¶�ü¸�ö±����'�������—��˜��š��›���(��������A�������þ�O���ÿ�„�����,�����¬����'�������¢�(��������A������„�����/�����*´�=¬����'�������¦�(��������A�����������>�����*µ�=±����'���
                                    ! ����ª��«�(��������A����������z�{�����/�����*´�?°����'�������°�(��������A���������X�����+Æ�+Á�™�*¶+À�¶¶¬¬����'�������´��µ��·�(��������A������
                                    ! ���Y�����X�����+Æ�+Á�™�*¶+À�¶¶
                                    ¬¬����'�������»��¼��¾�(��������A������
                                      �������>�����*+µ±����'���
                                    ! �������(��������A�������	�
                                    ! ���	�����/�����*´°����'�������Ì�(��������A�������
                                    \ No newline at end of file
                                    --- 40,49 ----
                                      �()Ljava/io/File;�
                                      SourceFile�PackageDocImpl.java� ������������	�
                                      ���������
                                    ��������������������������������������������������������������1������
                                    »�Y·�!³�%±����'���
                                    ! ����°��,�(��������#�$�����›�����G*·�)*»�,Y·�.µ�0*»�2Y·�4µ�5*»�2Y·�4µ�7*»�2Y·�4µ�9*»�2Y·�4µ�;*µ�=*+µ�?±����'���&�	���>��1��2��3�&�4�1�5�<�¾�A�?�F�@�(�������G�A������G�����B�C�����X�����¸�D+À�J´�L¶�P™�*´�0+¹�T�W±����'�������C��D��F�(��������A�������Z�[���\����������‰*´�0¹�]�L§�u+¹�a�À�JM,¶�g§�N²�i»�oYq·�s-¶�t¶�x¶�|,¶�™�*´�9,¹�…�W§�8,¶�ˆ™�*´�7,¹�…�W§�#,¶�‹™�*´�;,¹�…�W§�*´�5,¹�…�W+¹�Ž�šÿˆ±�����‘��'���B����I�
                                    �J��L��M��N�+�O�2�N�5�R�<�S�J�U�Q�V�_�X�f�Y�t�\��I�ˆ�_�(���*����‰�A����
                                    ! �~�“�”���h�Z�•����–�—���˜������x�����&*´�™Æ�**´�™¶�œ*´�™¶�¢¸�¦µ�ª*¶�®±����'���.����b��c��d��e��f��g��h��i��c�!�l�%�m�(�������&�A�����±�{�����/�����*´�?°����'�������p�(��������A������²�����J�����*´�³Ç�***´�0·�µµ�³*´�³°����'�������u��v��x�(��������A������²�����J�����*´�¹Ç�***´�5·�µµ�¹*´�¹°����'�������}��~��€�(��������A������²�����J�����*´�»Ç�***´�7·�µµ�»*´�»°����'�������†��‡��‰�(��������A������²�����J�����*´�½Ç�***´�9·�µµ�½*´�½°����'�������Ž����‘�(��������A������²�����J�����*´�¿Ç�***´�;·�µµ�¿*´�¿°����'�������–��—��™�(��������A�����·�¸�����_�����++¹�Á�½�ƹ�È�À�ÌM,¸�Í,°����'�������ž��Ÿ�� �(��� �����A�������Ó�Ô����Õ����Ö�×�����U�����!¸�Ø»�oY*´�?¸�Ü·�sà¶�â+¶�â¶�x¶�å°����'�������¤�(�������!�A������!�±����ê�ë�����a�����ì¸�î*¶�ô¸�öú¸�î*¶�ü¸�ö±����'�������¨��©��«��¬��®�(��������A�������þ�O���ÿ�„�����,�����¬����'�������³�(��������A������„�����/�����*´�=¬����'�������·�(��������A�����������>�����*µ�=±����'���
                                    ! ����»��¼�(��������A����������z�{�����/�����*´�?°����'�������Á�(��������A���������X�����+Æ�+Á�™�*¶+À�¶¶¬¬����'�������Å��Æ��È�(��������A������
                                    ! ���Y�����X�����+Æ�+Á�™�*¶+À�¶¶
                                    ¬¬����'�������Ì��Í��Ï�(��������A������
                                      �������>�����*+µ±����'���
                                    ! �������(��������A�������	�
                                    ! ���	�����/�����*´°����'�������Ý�(��������A�������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 8,11 ****
                                      �� �!�"�trim�()Ljava/lang/String;	��$��	��&�	�
                                      ��(�)��setBody�LineNumberTable�LocalVariableTable�this�(Lgnu/classpath/tools/gjdoc/ParamTagImpl;�text�contextClass�(Lgnu/classpath/tools/gjdoc/ClassDocImpl;�
                                    contextMember�)Lgnu/classpath/tools/gjdoc/MemberDocImpl;�textarr�[C�i�I�kind�9�@param�
                                      SourceFile�ParamTagImpl.java�!������������	������
                                    ! ����������ƒ*+·�
                                    +¶�:6§�4¸�š�§�M„¾¡ÿê§�?4¸�™�1*»�Y·�¶�µ�#*»�Y¾d·�¶�µ�%§�„¾¡ÿ¿*´�%Æ�
                                    **´�%,-¶�'±����*���>����#��$��%��&��'��&�*�)�-�*�8�+�K�,�c�-�f�)�q�0�x�1�‚�3�+���>����ƒ�,�-�����ƒ�.�����ƒ�/�0����ƒ�1�2���x�3�4���u�5�6���	�"�����/�����*´�%°����*�������6�+��������,�-�����"�����/�����*´�#°����*�������:�+��������,�-����7�"�����-�����8°����*�������>�+��������,�-����:����;
                                    \ No newline at end of file
                                    --- 8,11 ----
                                      �� �!�"�trim�()Ljava/lang/String;	��$��	��&�	�
                                      ��(�)��setBody�LineNumberTable�LocalVariableTable�this�(Lgnu/classpath/tools/gjdoc/ParamTagImpl;�text�contextClass�(Lgnu/classpath/tools/gjdoc/ClassDocImpl;�
                                    contextMember�)Lgnu/classpath/tools/gjdoc/MemberDocImpl;�textarr�[C�i�I�kind�9�@param�
                                      SourceFile�ParamTagImpl.java�!������������	������
                                    ! ����������ƒ*+·�
                                    +¶�:6§�4¸�š�§�M„¾¡ÿê§�?4¸�™�1*»�Y·�¶�µ�#*»�Y¾d·�¶�µ�%§�„¾¡ÿ¿*´�%Æ�
                                    **´�%,-¶�'±����*���>����4��5��6��7��8��7�*�:�-�;�8�<�K�=�c�>�f�:�q�A�x�B�‚�D�+���>����ƒ�,�-�����ƒ�.�����ƒ�/�0����ƒ�1�2���x�3�4���u�5�6���	�"�����/�����*´�%°����*�������G�+��������,�-�����"�����/�����*´�#°����*�������K�+��������,�-����7�"�����-�����8°����*�������O�+��������,�-����:����;
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 7,13 ****
                                      �5�C�D�E�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                      �5�G�4�%�
                                      SourceFile�ParameterImpl.java�!��������������	������
                                    ! ��������
                                    �����l�����*·�*+µ�*,µ�*-µ�±�������������!�	�"��#��$����*������������������	������
                                    ! ����������Œ�����0*´�Á�™�(*´�¹� �M+À�&,*´�¹�(�¶�+N-Æ�*-µ�±�����������'�
                                    ! �(��)�&�*�*�+�/�.����*����0�������0�/�0����1���&�	�2�0����%�����/�����*´�°�����������0��������������	�%�����/�����*´�°�����������1��������������
                                    ! �3�����/�����*´�°�����������2��������������4�%�����H�����»�5Y*´�¸�7·�=@¶�B*´�¶�B¶�F°�����������3��������������H����I
                                    \ No newline at end of file
                                    --- 7,13 ----
                                      �5�C�D�E�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                      �5�G�4�%�
                                      SourceFile�ParameterImpl.java�!��������������	������
                                    ! ��������
                                    �����l�����*·�*+µ�*,µ�*-µ�±�����������0��2�	�3��4��5����*������������������	������
                                    ! ����������Œ�����0*´�Á�™�(*´�¹� �M+À�&,*´�¹�(�¶�+N-Æ�*-µ�±�����������8�
                                    ! �9��:�&�;�*�<�/�?����*����0�������0�/�0����1���&�	�2�0����%�����/�����*´�°�����������A��������������	�%�����/�����*´�°�����������B��������������
                                    ! �3�����/�����*´�°�����������C��������������4�%�����H�����»�5Y*´�¸�7·�=@¶�B*´�¶�B¶�F°�����������D��������������H����I
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      �����msg�Ljava/lang/String;�
                                      SourceFile�ParseException.java� ���������������3�����*·�±����
                                      ���
                                    ! ����������������
                                    ����������>�����*+·�±����
                                      ���
                                    ! ������ ����������
                                    ��������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      �����msg�Ljava/lang/String;�
                                      SourceFile�ParseException.java� ���������������3�����*·�±����
                                      ���
                                    ! ����*��,����������
                                    ����������>�����*+·�±����
                                      ���
                                    ! ����0��1����������
                                    ��������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class	Tue Oct 12 15:55:12 2010
                                    *************** getRootDoc�)()Lgnu/classpath/tools/gjdo
                                    *** 15,20 ****
                                      SourceFile�Parser.java�EnclosingMethod�V� gnu/classpath/tools/gjdoc/Parser�X�Y�loadFile�$(Ljava/io/File;Ljava/lang/String;)[C�InnerClasses� �������������	�
                                      �����8�����
                                      *+µ�*·�±�������
                                    ! �����²��������
                                    ! ������������ �����T¸�»�Y·�!*´�¶�$(¶�*+¶�-¶�36¶�*+¶�8¶�3¶�;¶�?¸�*´�+¶�-¸�D¶�?¸�+¶�8¸�J¶�?§�W±��1�O�R�N��������´�1¶�B·�R¹�S»��������T�������T�P�Q���R����S�T����U�W�Z���
                                      ��������
                                    \ No newline at end of file
                                    --- 15,20 ----
                                      SourceFile�Parser.java�EnclosingMethod�V� gnu/classpath/tools/gjdoc/Parser�X�Y�loadFile�$(Ljava/io/File;Ljava/lang/String;)[C�InnerClasses� �������������	�
                                      �����8�����
                                      *+µ�*·�±�������
                                    ! �������������
                                    ! ������������ �����T¸�»�Y·�!*´�¶�$(¶�*+¶�-¶�36¶�*+¶�8¶�3¶�;¶�?¸�*´�+¶�-¸�D¶�?¸�+¶�8¸�J¶�?§�W±��1�O�R�N��������Å�1Ç�BÈ�RÊ�SÌ��������T�������T�P�Q���R����S�T����U�W�Z���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class	Tue Oct 12 15:55:12 2010
                                    *************** methodList�filteredMethodList�maybeS
                                    *** 5,9 ****
                                      ��	��"��	��$�	�	��&�
                                      �	��(��	��*��	��,�
                                    �	��.��	��0��	��2��	��4���LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/gjdoc/Parser$Context;�
                                      SourceFile�Parser.java�InnerClasses�=� gnu/classpath/tools/gjdoc/Parser�Context� ��������������������	������
                                    ! ������������������
                                    �����������������������������������������æ�����‚*+µ�*·�*µ�*»�Y·� µ�!*»�Y·� µ�#*»�Y·� µ�%*»�Y·� µ�'*»�Y·� µ�)*»�Y·� µ�+*»�Y·� µ�-*»�Y·� µ�/*»�Y·� µ�1*»�Y·� µ�3*,µ�±����5���6�
                                    ��Ñ�Ñ�	Ò�Ó�Ô�$Õ�/Ö�:×�EØ�PÙ�[Ú�fÛ�qÜ�6�������‚�7�8�����‚�����9����:�;���
                                      ���<�>��
                                    \ No newline at end of file
                                    --- 5,9 ----
                                      ��	��"��	��$�	�	��&�
                                      �	��(��	��*��	��,�
                                    �	��.��	��0��	��2��	��4���LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/gjdoc/Parser$Context;�
                                      SourceFile�Parser.java�InnerClasses�=� gnu/classpath/tools/gjdoc/Parser�Context� ��������������������	������
                                    ! ������������������
                                    �����������������������������������������æ�����‚*+µ�*·�*µ�*»�Y·� µ�!*»�Y·� µ�#*»�Y·� µ�%*»�Y·� µ�'*»�Y·� µ�)*»�Y·� µ�+*»�Y·� µ�-*»�Y·� µ�/*»�Y·� µ�1*»�Y·� µ�3*,µ�±����5���6�
                                    ��â�â�	ã�ä�å�$æ�/ç�:è�Eé�Pê�[ë�fì�qí�6�������‚�7�8�����‚�����9����:�;���
                                      ���<�>��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class	Tue Oct 12 15:55:12 2010
                                    *************** setMethods�([Lcom/sun/javadoc/MethodDo
                                    *** 89,111 ****
                                      �AIJK�	substring�(II)Ljava/lang/String;�importString�setLastComment�getLastComment�getBoilerplateComment�
                                      SourceFile�Parser.java�InnerClasses�Context�!���������������	����
                                      ���
                                    �������������������������������������������������������������������� ������!�"�����#�"�����$�"�����%�"�����&�"�����'�"�����(�"�����)�"�����*������+�,��-���/������»�.Y·�0³�3±����5���
                                    ! ���î�
                                    ! k�6�������7�8��9�����:�-��'����O666§*46 �y} �	„ÿ§�ï{ �	„§�â/ �/ �66§�Ë* �/ �66§�´' �\Ÿ�66§�" �–\Ÿ�66§�† �
                                    !  �y6§�s �+' �\Ÿ�	6§�Y\ �R\ �K6§�E �+" �\Ÿ�	6§�+\ �$\ �6§�/ �* �	666„š� �™�*4Ÿ�	*¾¡þÝž�
                                    »�:Y<·�>¿»�A*d·�C¬����5���n���p�x�y�	z�{�|�}�$~�1�H€�_�v‚�„�“…� ‡�¦ˆ�º‰�΋�ÔŒ�è�ü’z2”6•@—M˜�6���R���O�F�G����O�H�
                                    ���O�I�
                                    ���O�J�K��L�L�
                                    ��I�M�
                                    ��	F�N�
                                    ���O�
                                    ���P�Q��-���/�����*´�R¬����5������ �6��������T�U����V�W��-���L�����" Ÿ�	Ÿ�
                                    ! Ÿ�
                                    Ÿ�Ÿ�¬¬����5������¦�6�������"�O�K����X�Y��9�����Z�-���´�����8»�\Y*·�^M»�aY,+·�cN-»�fY*·�h¶�i»�mY-·�o:¸�r:¶�x°����5���&�	��¯�	±�°�²�¾�'½�)¿�0À�5Á�6���>����8�}������8�~���	�/��€���%��‚��)��ƒ�„��0��…�G���†�‡��-���/�����*´�ˆ°����5������É�6��������T�U����2�,��-��<����X*·�Š*µ�R*µ�‹*»�Y·�µ�*µ�’*µ�”*µ�–*µ�˜*µ�š*µ�œ*µ�ž*»� Y·�¢µ�£*»� Y·�¢µ�¥*»� Y·�¢µ�§*»� Y·�¢µ�©*»� Y·�¢µ�«*»� Y·�¢µ�­*»� Y·�¢µ�¯*»� Y·�¢µ�±*µ�³*½�µY»�·Y·�¹SY»�ºY·�¼SY»�½Y·�¿SY»�ÀY·�ÂSY»�ÃY·�ÅSY»�ÆY·�ÈSY»�ÉY·�ËSµ�Ì*	½�µY»�·Y·�¹SY»�ÎY·�ÐSY»�ºY·�¼SY»�½Y·�¿SY»�ÑY·�ÓSY»�ÔY·�ÖSY»�ÆY·�ÈSY»�ÉY·�ËSY»�×Y·�ÙSµ�ˆ§�L+¶�Ú±��™OR�Û��5���®�+��Ì�œ�	Î�Ï�ß�à�#á�(â�-ã�2ä�7å�<æ�Gç�Rè�]ê�hë�sì�~í�‰ï�”ñ�™Ï�¡Ð�«Ñ�µÒ�¿Ó�ÉÔ�ÓÕ�ÞÖ�æÏ�éÙ�ñÚ�ûÛÜÝÞ#ß.à9áDâLÙRåSæWè�6������X�T�U��S��ß�à���á�â��-���3�����	²�3¹�ã�¬����5������ë�6�������	�T�U�����è�é��9�����Z�:�-������$*+µ�’*µ�š*µ�˜*µ�–*µ�ž*µ�³*µ�R²�3+¹�ê�™�°²�3+¹�î�W»�ñYó·�õ+¶�ö¶�ú¸�þ*´�¶*µ�‹*´�©¹�*´�«¹�*´�­¹�*´�¯¹�*µ
                                      +-¸:**´�̶W*´�©½¹�À:*´�­½¹�ÀW6§�¸*´�œ2¹$�¶'„¾¡ÿä*´�¶-ž�»�ñY.·�õ*´�¶-¶0¶�ú¸�þ*´�ž°:»�ñY3·�õ¶�ö¶�ú¸�þ°��Œ	
                                    ! 5��5���~���õ�ö�
                                    ! ÷�ø�ù�ú�ü�$þ�0ÿ�2�<�P�W�\	�e
                                    ! �n�w�€�…�Œ�˜�ª�»�Á�Õ�à�ê #
                                    ! %&"'�6���\�	��$�T�U����$�}����$�����$�~����$����Œ�˜�F�G��ª�`7��¾�"8�
                                    ��9:�����9�����:�Z�-��_�
                                      ����½§�µ66§�-2+¶;Y6›�§�
                                    „-¾¡ÿç-¾¢�R-2+¶?6	»�ñYB·�õ»�AY+d·�C¶DG¶D-2¶�ö¶�ú¸�þ-2*+¶I=œ�=¬»�:Y»�ñYM·�õ*´
                                    ! ¶0O¶D»�AY+2+¾d¸Q·�C¶D¶�ú·�>¿+¾¡ÿK¬����5���B���-�/�0�	1�2�4�1�(8�/9�;:�j;�w<�{>�~C�µ-�»H�6���H����½�T�U�����½�F�G����½W�
                                    ����½X����¯=�
                                    ��	�¬8�
                                    ��;�C�H�
                                    ��
                                      YZ��-���l�����<=§�„*
                                    ! ¶[`Y<ÿò¬����5������L�M�N�O�
                                    ! N�P�6��� �����F�����8�
                                    ���^�
                                    ��_`��9�����Z�:�-���ß�����g	»�ñYB·�õ+¶a¶g¶Dj¶D+¶g¶D¶�ú¸�þ+¶l:Æ�56§�'2¶g¶ps¶u™�*2,-¶yW„¾¡ÿ×±����5���"���V�)W�/X�4Y�:Z�N[�[Y�f_�6���>����g�T�U�����g{�����g�~�����g����/�8|}��7�/8�
                                    ���~�E��9�����:�Z�-�������*´�±¹�*´�šÇ�†*´�–Æ�Z*´�˜Æ�*´�˜*´�–¶š�E¸»�ñY‚·�õ*´�’¶�ö„¶D*´�˜¶D†¶D*´�–¶Dˆ¶D¶�ú¶Š»5Y·¿*´�˜Æ�*¸*´�˜¶Žµ�š§�*¸’¶Žµ�š*´�˜Æ�$*´�¯»�ñY*´�˜¸”·�õ˜¶D¶�ú¹š�W*´�¯›¹š�W*´�‹Æ�
                                    *´�‹´§�*´�š*´�­½¹�À+*´�¯¸¢:*´�‹Æ�)*´�‹´¨¹š�W¶«™�*´�‹´®¹š�W*´�©¹±�™�8*´�«¹´�:§� *´�©»¸Y¹º�À�A·À¹š�W¹Ã�šÿÜ*´�©½¹�À¶Æ*´�š¶Ê*µ�œ*´�žÇ�	*µ�ž¶ÐÆ�*´�±¶йš�W»�ñYÔ·�õ¶�öÖ¶D¶ж�ö¶�ú¸�þ»�ñYØ·�õ*´�‹¶�ö¶�ú¸�þ*´�*´�‹¶ÚW*»žY*·Þµ�‹±����5���¢�(��c�	e�g�h�i�,k�fl�np�uq�†t�“x�šy�»z�È}�Þ~�ß�ï€�ò�ö}�ù|�ûƒ„…†(Š4‹BŒ_‹i~‘‡“•”–š™¢š±œÕížùŸ¡�6���>����T�U�����F�G���á�
                                    ����H�
                                    ��û
                                    ¡��?�*âã��ä��-���Y�����
                                    +,¹�ÀåN-°����5���
                                    ! ���¥�¦�6���*����
                                    �T�U�����
                                    ç�"����
                                    èæ����…æ���é�,��9�����:�Z�-��5����›*´�‹´**´�‹´ê½í·ïÀñ¶ó*´�‹´**´�‹´÷½í·ïÀñ¶ú*´�‹´**´�‹´ý½í·ïÀñ¶�*´�‹´**´�‹´½·ïÀ¶
                                    ! *´�‹´**´�‹´½·ïÀ¶*´�‹´*´�‹´¶*´�‹´**´�‹´½·ïÀ ¶"*´�‹´**´�‹´&½·ïÀ ¶)*´�‹´**´�‹´¨½£·ïÀ,¶.*´�‹´**´�‹´®½£·ïÀ,¶1*´�‹´*´�³¶4¸*´�‹´¶7»�ñY:·�õ*´�‹´¶�ö¶�ú¸�þ**´�¶<Àžµ�‹»�ñY?·�õ*´�‹¶�ö¶�ú¸�þ*´�±½¹�ÀL=§�¸*´�œ+2¹$�¶'„+¾¡ÿè±����5���b���ª�«�ª�¬�+­�/¬�8®�T¯�p°�Œ±�²�¹³�Õµ�ñ¶
                                    ·¹(ÁCÃQÄiÅzÈÉ‘ÈšÌ�6��� ���›�T�U��z�!A�|�8�
                                    ���B�@��-���>�����*+µ�˜±����5���
                                    ! ���ô�õ�6��������T�U�����C����D�@��9�����:�Z�-���ƒ�����?*´�¯+¹š�W+˜¶u™�!*´�­¸++¶Ed¶H¶Ž¹š�W§�*´�«+¹š�W±����5������ú�ü�ý�3��>�6�������?�T�U�����?L����M�@��-���>�����*+µ�”±����5���
                                    ! �����6��������T�U����������N�ý��-���/�����*´�”°����5������
                                    ! �6��������T�U����6�@��-���>�����*+µ�³±����5���
                                    ! �����6��������T�U������*����O�ý��-���/�����*´�³°����5�������6��������T�U���P���QR�����f������ž�S��
                                    \ No newline at end of file
                                    --- 89,110 ----
                                      �AIJK�	substring�(II)Ljava/lang/String;�importString�setLastComment�getLastComment�getBoilerplateComment�
                                      SourceFile�Parser.java�InnerClasses�Context�!���������������	����
                                      ���
                                    �������������������������������������������������������������������� ������!�"�����#�"�����$�"�����%�"�����&�"�����'�"�����(�"�����)�"�����*������+�,��-���/������»�.Y·�0³�3±����5���
                                    ! ���ÿ�
                                    ! |�6�������7�8��9�����:�-��'����O666§*46 �y} �	„ÿ§�ï{ �	„§�â/ �/ �66§�Ë* �/ �66§�´' �\Ÿ�66§�" �–\Ÿ�66§�† �
                                    !  �y6§�s �+' �\Ÿ�	6§�Y\ �R\ �K6§�E �+" �\Ÿ�	6§�+\ �$\ �6§�/ �* �	666„š� �™�*4Ÿ�	*¾¡þÝž�
                                    »�:Y<·�>¿»�A*d·�C¬����5���n����‰�Š�	‹�Œ��Ž�$�1�H‘�_’�v“�•�“–� ˜�¦™�ºš�Îœ�Ô�èž�ü¡£‹2¥6¦@¨M©�6���R���O�F�G����O�H�
                                    ���O�I�
                                    ���O�J�K��L�L�
                                    ��I�M�
                                    ��	F�N�
                                    ���O�
                                    ���P�Q��-���/�����*´�R¬����5������±�6��������T�U����V�W��-���L�����" Ÿ�	Ÿ�
                                    ! Ÿ�
                                    Ÿ�Ÿ�¬¬����5������·�6�������"�O�K����X�Y��9�����Z�-���´�����8»�\Y*·�^M»�aY,+·�cN-»�fY*·�h¶�i»�mY-·�o:¸�r:¶�x°����5���&�	��À�	Â�Á�Ã�Ï�'Î�)Ð�0Ñ�5Ò�6���>����8�}������8�~���	�/��€���%��‚��)��ƒ�„��0��…�G���†�‡��-���/�����*´�ˆ°����5������Ú�6��������T�U����2�,��-��<����X*·�Š*µ�R*µ�‹*»�Y·�µ�*µ�’*µ�”*µ�–*µ�˜*µ�š*µ�œ*µ�ž*»� Y·�¢µ�£*»� Y·�¢µ�¥*»� Y·�¢µ�§*»� Y·�¢µ�©*»� Y·�¢µ�«*»� Y·�¢µ�­*»� Y·�¢µ�¯*»� Y·�¢µ�±*µ�³*½�µY»�·Y·�¹SY»�ºY·�¼SY»�½Y·�¿SY»�ÀY·�ÂSY»�ÃY·�ÅSY»�ÆY·�ÈSY»�ÉY·�ËSµ�Ì*	½�µY»�·Y·�¹SY»�ÎY·�ÐSY»�ºY·�¼SY»�½Y·�¿SY»�ÑY·�ÓSY»�ÔY·�ÖSY»�ÆY·�ÈSY»�ÉY·�ËSY»�×Y·�ÙSµ�ˆ§�L+¶�Ú±��™OR�Û��5���®�+��Ý�­�	ß�à�ð�ñ�#ò�(ó�-ô�2õ�7ö�<÷�Gø�Rù�]û�hü�sý�~þ�‰��”�™à�¡á�«â�µã�¿ä�Éå�Óæ�Þç�æà�éê�ñë�ûìíîï#ð.ñ9òDóLêRöS÷Wù�6������X�T�U��S��ß�à���á�â��-���3�����	²�3¹�ã�¬����5������ü�6�������	�T�U�����è�é��9�����Z�:�-������$*+µ�’*µ�š*µ�˜*µ�–*µ�ž*µ�³*µ�R²�3+¹�ê�™�°²�3+¹�î�W»�ñYó·�õ+¶�ö¶�ú¸�þ*´�¶*µ�‹*´�©¹�*´�«¹�*´�­¹�*´�¯¹�*µ
                                      +-¸:**´�̶W*´�©½¹�À:*´�­½¹�ÀW6§�¸*´�œ2¹$�¶'„¾¡ÿä*´�¶-ž�»�ñY.·�õ*´�¶-¶0¶�ú¸�þ*´�ž°:»�ñY3·�õ¶�ö¶�ú¸�þ°��Œ	
                                    ! 5��5���~�����
                                    ! �	�
                                    ! ��
                                    �$�0�2�<�P�W�\�e�n�w�€�…!�Œ$�˜&�ª'�»*�Á+�Õ*�à0�ê14
                                    ! 67"8�6���\�	��$�T�U����$�}����$�����$�~����$����Œ�˜�F�G��ª�`7��¾�"8�
                                    ��9:�����9�����:�Z�-��_�
                                      ����½§�µ66§�-2+¶;Y6›�§�
                                    „-¾¡ÿç-¾¢�R-2+¶?6	»�ñYB·�õ»�AY+d·�C¶DG¶D-2¶�ö¶�ú¸�þ-2*+¶I=œ�=¬»�:Y»�ñYM·�õ*´
                                    ! ¶0O¶D»�AY+2+¾d¸Q·�C¶D¶�ú·�>¿+¾¡ÿK¬����5���B���>�@�A�	B�C�E�B�(I�/J�;K�jL�wM�{O�~T�µ>�»Y�6���H����½�T�U�����½�F�G����½W�
                                    ����½X����¯=�
                                    ��	�¬8�
                                    ��;�C�H�
                                    ��
                                      YZ��-���l�����<=§�„*
                                    ! ¶[`Y<ÿò¬����5������]�^�_�`�
                                    ! _�a�6��� �����F�����8�
                                    ���^�
                                    ��_`��9�����Z�:�-���ß�����g	»�ñYB·�õ+¶a¶g¶Dj¶D+¶g¶D¶�ú¸�þ+¶l:Æ�56§�'2¶g¶ps¶u™�*2,-¶yW„¾¡ÿ×±����5���"���g�)h�/i�4j�:k�Nl�[j�fp�6���>����g�T�U�����g{�����g�~�����g����/�8|}��7�/8�
                                    ���~�E��9�����:�Z�-�������*´�±¹�*´�šÇ�†*´�–Æ�Z*´�˜Æ�*´�˜*´�–¶š�E¸»�ñY‚·�õ*´�’¶�ö„¶D*´�˜¶D†¶D*´�–¶Dˆ¶D¶�ú¶Š»5Y·¿*´�˜Æ�*¸*´�˜¶Žµ�š§�*¸’¶Žµ�š*´�˜Æ�$*´�¯»�ñY*´�˜¸”·�õ˜¶D¶�ú¹š�W*´�¯›¹š�W*´�‹Æ�
                                    *´�‹´§�*´�š*´�­½¹�À+*´�¯¸¢:*´�‹Æ�)*´�‹´¨¹š�W¶«™�*´�‹´®¹š�W*´�©¹±�™�8*´�«¹´�:§� *´�©»¸Y¹º�À�A·À¹š�W¹Ã�šÿÜ*´�©½¹�À¶Æ*´�š¶Ê*µ�œ*´�žÇ�	*µ�ž¶ÐÆ�*´�±¶йš�W»�ñYÔ·�õ¶�öÖ¶D¶ж�ö¶�ú¸�þ»�ñYØ·�õ*´�‹¶�ö¶�ú¸�þ*´�*´�‹¶ÚW*»žY*·Þµ�‹±����5���¢�(��t�	v�x�y�z�,|�f}�n�u‚�†…�“‰�šŠ�»‹�ÈŽ�Þ�ß�ï‘�ò’�öŽ�ù�û”•–—(›4œB_œi ~¢‡¤¦”§šª¢«±­Õ®í¯ù°²�6���>����T�U�����F�G���á�
                                    ����H�
                                    ��û
                                    ¡��?�*âã��ä��-���Y�����
                                    +,¹�ÀåN-°����5���
                                    ! ���¶�·�6���*����
                                    �T�U�����
                                    ç�"����
                                    èæ����…æ���é�,��9�����:�Z�-��5����›*´�‹´**´�‹´ê½í·ïÀñ¶ó*´�‹´**´�‹´÷½í·ïÀñ¶ú*´�‹´**´�‹´ý½í·ïÀñ¶�*´�‹´**´�‹´½·ïÀ¶
                                    ! *´�‹´**´�‹´½·ïÀ¶*´�‹´*´�‹´¶*´�‹´**´�‹´½·ïÀ ¶"*´�‹´**´�‹´&½·ïÀ ¶)*´�‹´**´�‹´¨½£·ïÀ,¶.*´�‹´**´�‹´®½£·ïÀ,¶1*´�‹´*´�³¶4¸*´�‹´¶7»�ñY:·�õ*´�‹´¶�ö¶�ú¸�þ**´�¶<Àžµ�‹»�ñY?·�õ*´�‹¶�ö¶�ú¸�þ*´�±½¹�ÀL=§�¸*´�œ+2¹$�¶'„+¾¡ÿè±����5���b���»�¼�»�½�+¾�/½�8¿�TÀ�pÁ�ŒÂ�Ã�¹Ä�ÕÆ�ñÇ
                                    ÈÊ(ÒCÔQÕiÖzÙÚ‘ÙšÝ�6��� ���›�T�U��z�!A�|�8�
                                    ���B�@��-���>�����*+µ�˜±����5���
                                    ! �����6��������T�U�����C����D�@��9�����:�Z�-���ƒ�����?*´�¯+¹š�W+˜¶u™�!*´�­¸++¶Ed¶H¶Ž¹š�W§�*´�«+¹š�W±����5�������
                                    ��3�>�6�������?�T�U�����?L����M�@��-���>�����*+µ�”±����5���
                                    ! �����6��������T�U����������N�ý��-���/�����*´�”°����5�������6��������T�U����6�@��-���>�����*+µ�³±����5���
                                    ! ��� �!�6��������T�U������*����O�ý��-���/�����*´�³°����5������%�6��������T�U���P���QR�����f������ž�S��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** protected �%���'�private 	��)��
                                    *** 16,29 ****
                                      SourceFile�ProgramElementDocImpl.java!�����
                                      �������	�
                                      ���������
                                    ����������������������������������������������������������@������½�Y SY"SY$SY&S³�(±����*���
                                    ! ����(���+�������,�-�����m�����*-·�.*µ�1*+µ�3*,µ�5±����*�������-��!�
                                    ! �.��/��0�+���*�����7�8������������	�
                                    ! �����9�:���,�;�����h�����*,·�.*µ�1*+µ�3*+¹�<�µ�5±����*�������2��!�
                                    ! �3��4��5�+��� �����7�8������������9�:���,�A�����©�����'*·�.*µ�1*+µ�3*,µ�5*µ�1*µ�B*µ�D±����*���"����<��!��=��>��?��@� �A�&�B�+���H����'�7�8�����'������'�	�
                                    ! ����'������'������'�
                                    �����'�9�:����F�����/�����*´�3°����*�������F�+��������7�8����	�@�����/�����*´�5°����*�������K�+��������7�8�����G�����/�����*´�B¬����*�������P�+��������7�8����H�G�����6�����*´�1 �¬¬����*�������U�+��������7�8����I�G�����6�����*´�1 �¬¬����*�������Z�+��������7�8����J�G�����6�����*´�1 �¬¬����*�������_�+��������7�8����K�G�����5�����*´�1š�¬¬����*�������d�+��������7�8����
                                    �G�����/�����*´�D¬����*�������i�+��������7�8����L�M�����y�����;»�NY²�(*´�12¸�P·�T*¶�W™�Y§�$¶�[*¶�_™�a§�$¶�[¶�c¶�f°����*�������o��p�#�q�4�o�7�q�:�n�+�������;�7�8����i�j����������C*¶�W™�§�*¶�_™�§�€*¶�k™�§�€*¶�m™�§�€*¶�o™�§�€¬����*���&�	���v�
                                    �w��v��x�'�v�(�y�4�v�5�z�A�v�+�������C�7�8���q�M����r�s�����Â�����R+t¶�v™�
                                      *µ�1¬+z¶�v™�
                                      *µ�1¬+|¶�v™�
                                      *µ�1¬+~¶�v™�
                                      *µ�D¬+€¶�v™�
                                    ! *µ�B¬¬����*���B����ƒ�	�„��…��‡��ˆ��‰� �‹�)�Œ�.��0��9��>�‘�@�“�I�”�N�•�P�˜�+�������R�7�8�����R�‚�ƒ����„�…�����>�����*µ�D±����*���
                                    ! ������ž�+��������7�8������†����‡����ˆ
                                    \ No newline at end of file
                                    --- 16,29 ----
                                      SourceFile�ProgramElementDocImpl.java!�����
                                      �������	�
                                      ���������
                                    ����������������������������������������������������������@������½�Y SY"SY$SY&S³�(±����*���
                                    ! ����9��+�+�������,�-�����m�����*-·�.*µ�1*+µ�3*,µ�5±����*�������>��2�
                                    ! �?��@��A�+���*�����7�8������������	�
                                    ! �����9�:���,�;�����h�����*,·�.*µ�1*+µ�3*+¹�<�µ�5±����*�������C��2�
                                    ! �D��E��F�+��� �����7�8������������9�:���,�A�����©�����'*·�.*µ�1*+µ�3*,µ�5*µ�1*µ�B*µ�D±����*���"����M��2��N��O��P��Q� �R�&�S�+���H����'�7�8�����'������'�	�
                                    ! ����'������'������'�
                                    �����'�9�:����F�����/�����*´�3°����*�������W�+��������7�8����	�@�����/�����*´�5°����*�������\�+��������7�8�����G�����/�����*´�B¬����*�������a�+��������7�8����H�G�����6�����*´�1 �¬¬����*�������f�+��������7�8����I�G�����6�����*´�1 �¬¬����*�������k�+��������7�8����J�G�����6�����*´�1 �¬¬����*�������p�+��������7�8����K�G�����5�����*´�1š�¬¬����*�������u�+��������7�8����
                                    �G�����/�����*´�D¬����*�������z�+��������7�8����L�M�����y�����;»�NY²�(*´�12¸�P·�T*¶�W™�Y§�$¶�[*¶�_™�a§�$¶�[¶�c¶�f°����*�������€���#�‚�4�€�7�‚�:��+�������;�7�8����i�j����������C*¶�W™�§�*¶�_™�§�€*¶�k™�§�€*¶�m™�§�€*¶�o™�§�€¬����*���&�	���‡�
                                    �ˆ��‡��‰�'�‡�(�Š�4�‡�5�‹�A�‡�+�������C�7�8���q�M����r�s�����Â�����R+t¶�v™�
                                      *µ�1¬+z¶�v™�
                                      *µ�1¬+|¶�v™�
                                      *µ�1¬+~¶�v™�
                                      *µ�D¬+€¶�v™�
                                    ! *µ�B¬¬����*���B����”�	�•��–��˜��™��š� �œ�)��.�ž�0� �9�¡�>�¢�@�¤�I�¥�N�¦�P�©�+�������R�7�8�����R�‚�ƒ����„�…�����>�����*µ�D±����*���
                                    ! ����®��¯�+��������7�8������†����‡����ˆ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 21,35 ****
                                      SourceFile�RootDocImpl.java�InnerClasses�ResolvedImport�ResolvedImportClassFile� ������������	�
                                      �����
                                      �����
                                    ����������
                                    ! ����������������†����� *+µ�*·�*,µ�*-µ�*µ�*µ�!±����#������N�H�	J�K�L�M�$���4���� �%�&����� ������ �	�
                                      ���� ��
                                      ���� ��
                                    ! ���'�(�����O�����%»�)Y+·�-*´�¶�04¶�6*´�¶�69¶�6¶�;°����#������R�$�������%�%�&����=�>�����Í�����S+M,.¶�?>:ž�,`¶�E:,¶�IM*´�,¶�L™�)Ç�*´�!°»�)Y*´�!¸�P·�-T¶�6¶�6¶�;°°����#���.���W�X�	Z�[�\�]� `�+a�0b�5e�Qi�$���4����S�%�&�����S��
                                      ���Q�V�
                                      ��	�J�W�X���G�Y�
                                    ! ���Z�[�����@�����*+¶�\Ç�¬¬����#������o�$��������%�&�������
                                    ! ���^�_�����Û�����i*+¶�\Æ�bM*´�`™�*´�bM§�>*µ�`*´�¸�d*´�*´�¸�j¶�nM§�W*´�»�)Yt·�-*´�¶�0¶�;¶�v,Ç�°*´�,*´�¸�y°°���6�9�}��#���2���t�u�
                                    ! v�w�z�|�9~�:�T‚�Xƒ�Z†�gŠ�$��� ����i�%�&�����i��
                                      ��
                                    ! �]��
                                    ���€�(�����W�����%*´�Æ�»�)Y*´�¸�P·�-*´�¶�6¶�;°*´�°����#�������‘� ”�$�������%�%�&��������‚�ƒ������e�„
                                      ��e�…�
                                    \ No newline at end of file
                                    --- 21,35 ----
                                      SourceFile�RootDocImpl.java�InnerClasses�ResolvedImport�ResolvedImportClassFile� ������������	�
                                      �����
                                      �����
                                    ����������
                                    ! ����������������†����� *+µ�*·�*,µ�*-µ�*µ�*µ�!±����#������_�Y�	[�\�]�^�$���4���� �%�&����� ������ �	�
                                      ���� ��
                                      ���� ��
                                    ! ���'�(�����O�����%»�)Y+·�-*´�¶�04¶�6*´�¶�69¶�6¶�;°����#������c�$�������%�%�&����=�>�����Í�����S+M,.¶�?>:ž�,`¶�E:,¶�IM*´�,¶�L™�)Ç�*´�!°»�)Y*´�!¸�P·�-T¶�6¶�6¶�;°°����#���.���h�i�	k�l�m�n� q�+r�0s�5v�Qz�$���4����S�%�&�����S��
                                      ���Q�V�
                                      ��	�J�W�X���G�Y�
                                    ! ���Z�[�����@�����*+¶�\Ç�¬¬����#������€�$��������%�&�������
                                    ! ���^�_�����Û�����i*+¶�\Æ�bM*´�`™�*´�bM§�>*µ�`*´�¸�d*´�*´�¸�j¶�nM§�W*´�»�)Yt·�-*´�¶�0¶�;¶�v,Ç�°*´�,*´�¸�y°°���6�9�}��#���2���…�†�
                                    ! ‡�ˆ�‹��9�:�T“�X”�Z—�g›�$��� ����i�%�&�����i��
                                      ��
                                    ! �]��
                                    ���€�(�����W�����%*´�Æ�»�)Y*´�¸�P·�-*´�¶�6¶�;°*´�°����#������¡�¢� ¥�$�������%�%�&��������‚�ƒ������e�„
                                      ��e�…�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 8,12 ****
                                      �*�8�(�)�match�&(Ljava/lang/String;)Ljava/lang/String;
                                      ��<�=�>�equals�(Ljava/lang/Object;)Z�mismatch�(Ljava/lang/String;)Z�tryFetch�.(Ljava/lang/String;)Lcom/sun/javadoc/ClassDoc;�
                                      SourceFile�RootDocImpl.java�InnerClasses�G�%gnu/classpath/tools/gjdoc/RootDocImpl�ResolvedImport�ResolvedImportNotFound� ������������	����
                                    ! ��������
                                    �����ƒ�����-*+µ�*·�*,µ�,.¶�>›�*,`¶�µ� §�*,µ� ±����"������«�¡�	£�¤�¥�¦�'©�#��� ����-�$�%�����-������&�'���(�)�����C�����»�*Y,·�.*´�¶�15¶�1¶�7°����"������¯�#��������$�%����9�:�����Y�����+*´� ¶�;š�*´�+¶�;™�*´� °°����"������´�µ�·�#��������$�%������	����?�@�����6�����¬����"������¼�#��������$�%������	����A�B�����6�����°����"������Á�#��������$�%������	����C����D�E������F�H
                                      ��F�I�
                                    \ No newline at end of file
                                    --- 8,12 ----
                                      �*�8�(�)�match�&(Ljava/lang/String;)Ljava/lang/String;
                                      ��<�=�>�equals�(Ljava/lang/Object;)Z�mismatch�(Ljava/lang/String;)Z�tryFetch�.(Ljava/lang/String;)Lcom/sun/javadoc/ClassDoc;�
                                      SourceFile�RootDocImpl.java�InnerClasses�G�%gnu/classpath/tools/gjdoc/RootDocImpl�ResolvedImport�ResolvedImportNotFound� ������������	����
                                    ! ��������
                                    �����ƒ�����-*+µ�*·�*,µ�,.¶�>›�*,`¶�µ� §�*,µ� ±����"������¼�²�	´�µ�¶�·�'º�#��� ����-�$�%�����-������&�'���(�)�����C�����»�*Y,·�.*´�¶�15¶�1¶�7°����"������À�#��������$�%����9�:�����Y�����+*´� ¶�;š�*´�+¶�;™�*´� °°����"������Å�Æ�È�#��������$�%������	����?�@�����6�����¬����"������Í�#��������$�%������	����A�B�����6�����°����"������Ò�#��������$�%������	����C����D�E������F�H
                                      ��F�I�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class	Tue Oct 12 15:55:12 2010
                                    *************** classNamed�.(Ljava/lang/String;)Lcom/su
                                    *** 26,33 ****
                                      �i�£�¤�^�printWarning�‡�¦�§�¨�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                                      �i�ª�«�¬�access$2�o(Lgnu/classpath/tools/gjdoc/RootDocImpl;Lcom/sun/javadoc/ClassDoc;Ljava/lang/String;)Lcom/sun/javadoc/ClassDoc;�®�java/lang/Exception�innerClassName�
                                    topLevelClass�	classFile�³�ResolvedImportPackageFile{�µ�,�·�}�
                                      SourceFile�RootDocImpl.java�InnerClasses�ResolvedImport�ResolvedImportPackageFile� ������������	�
                                    ! ���������
                                    ���������������������*+µ�*·�*»�Y·�µ�*,µ�*-µ� *»�"Y·�$µ�%,¶�':6§�F2¶�-š�82¶�15¶�7™�(2¶�1:¶�=d¶�A:*´�%¹�E�W„¾¡ÿ¸±����K���:���Û�Í�	Ë�Ï�Ð�Ñ�)Ò�/Ó�5Ô�PÕ�Z×�gÖ�iØ�uÓ�L���>�����M�N������	�
                                      ��������/�R�O�P��2�N�Q�R��Z��S����T�U�����ñ�����w*´�»�VY*´� ¸�X·�\_¶�a+¶�a¶�e¶�hM,Æ�
                                    ! ,¹�n�°+N-.¶�s6ž�-`¶�wW-¶�AN*´�%-¹�z�™�»�VY*´� ¸�X·�\_¶�a+¶�a¶�e°°����K���.���ß�"à�&á�-ä�/å�7ç�<è�Eé�Mì�Zî�uò�L���4����w�M�N�����w�}���"�U�~���/�H�€���7�@��R���‚�<�����@�����*+¶�ƒÇ�¬¬����K������ù�L��������M�N������}����…�m����¦�����Þ*´�»�VY*´� ¸�X·�\_¶�a+¶�a¶�e¶�hM,Æ�,°*+¶�ƒÆ�¯+N-.¶�s6:ž�-`¶�w:-¶�AN*´�-¹�†�À�o:Ç�c»�(Y*´�»�VY-¸�X·�\5¶�a¶�e·�Œ:*´�¸�*´�¸�“¶�—:§�W*´�»�VY·�\¶�Ÿ¶�e¶�¢*´�-¹�¥�WÇ�°*´�¸�©°°��ˆ�Ÿ�¢�­��K���V���þ�"ÿ�&��(�0�2�:�=�B�L	�T�c
                                    �h�ˆ�¢�£�»�È�Í�Ð�Ü �L���R����Þ�M�N�����Þ�}���"�¼�~���2�ª�€���:�¢��R��=�Ÿ�¯���c�y�°���ˆ�@�±�
                                    ! ���g�4�����O�����%»�VY²·�\*´�¶�Ÿ´¶�a*´� ¶�a¶¶�a¶�e°����K������&�L�������%�M�N����¸����¹�º������i�»
                                      ��i�¼�
                                    \ No newline at end of file
                                    --- 26,34 ----
                                      �i�£�¤�^�printWarning�‡�¦�§�¨�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                                      �i�ª�«�¬�access$2�o(Lgnu/classpath/tools/gjdoc/RootDocImpl;Lcom/sun/javadoc/ClassDoc;Ljava/lang/String;)Lcom/sun/javadoc/ClassDoc;�®�java/lang/Exception�innerClassName�
                                    topLevelClass�	classFile�³�ResolvedImportPackageFile{�µ�,�·�}�
                                      SourceFile�RootDocImpl.java�InnerClasses�ResolvedImport�ResolvedImportPackageFile� ������������	�
                                    ! ���������
                                    ���������������������*+µ�*·�*»�Y·�µ�*,µ�*-µ� *»�"Y·�$µ�%,¶�':6§�F2¶�-š�82¶�15¶�7™�(2¶�1:¶�=d¶�A:*´�%¹�E�W„¾¡ÿ¸±����K���:���ì�Þ�	Ü�à�á�â�)ã�/ä�5å�Pæ�Zè�gç�ié�uä�L���>�����M�N������	�
                                      ��������/�R�O�P��2�N�Q�R��Z��S����T�U�����ñ�����w*´�»�VY*´� ¸�X·�\_¶�a+¶�a¶�e¶�hM,Æ�
                                    ! ,¹�n�°+N-.¶�s6ž�-`¶�wW-¶�AN*´�%-¹�z�™�»�VY*´� ¸�X·�\_¶�a+¶�a¶�e°°����K���.���ð�"ñ�&ò�-õ�/ö�7ø�<ù�Eú�Mý�Zÿ�u�L���4����w�M�N�����w�}���"�U�~���/�H�€���7�@��R���‚�<�����@�����*+¶�ƒÇ�¬¬����K������
                                    ! �L��������M�N������}����…�m����¦�����Þ*´�»�VY*´� ¸�X·�\_¶�a+¶�a¶�e¶�hM,Æ�,°*+¶�ƒÆ�¯+N-.¶�s6:ž�-`¶�w:-¶�AN*´�-¹�†�À�o:Ç�c»�(Y*´�»�VY-¸�X·�\5¶�a¶�e·�Œ:*´�¸�*´�¸�“¶�—:§�W*´�»�VY·�\¶�Ÿ¶�e¶�¢*´�-¹�¥�WÇ�°*´�¸�©°°��ˆ�Ÿ�¢�­��K���V����"�&�(�0�2�:�=�B�L�T�c�h�ˆ"�¢$�£%�»'�È)�Í*�Ð-�Ü1�L���R����Þ�M�N�����Þ�}���"�¼�~���2�ª�€���:�¢��R��=�Ÿ�¯���c�y�°���ˆ�@�±�
                                    ! ���g�4�����O�����%»�VY²·�\*´�¶�Ÿ´¶�a*´� ¶�a¶¶�a¶�e°����K������7�L�������%�M�N����¸����¹�º������i�»
                                      ��i�¼�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 11,19 ****
                                      ��I�@�A�tryFetch�.(Ljava/lang/String;)Lcom/sun/javadoc/ClassDoc;�M�/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl
                                      �L�O�
                                    �P�(Ljava/lang/Class;)V�
                                      SourceFile�RootDocImpl.java�InnerClasses�U�%gnu/classpath/tools/gjdoc/RootDocImpl�ResolvedImport�ResolvedImportReflectionClass� ������������	�
                                    ! ����������
                                    ������™�����5*+µ�*·�*,µ�,¶�N-.¶�6›�*-`¶�#µ�'§�*-µ�'±����)���"���ª�Ÿ�	¡�¢�£�¤� ¥�/¨�*���*����5�+�,�����5�����"�-�
                                    ! ����.�/���0������F�����»�1Y3·�5*´�¶�¶�8<¶�8¶�>°����)������®�*��������+�,����@�A�����_�����#*´�'+¶�Bš�*´�¶�+¶�B™�*´�¶�°°����)������³�´�!·�*�������#�+�,�����#�	�
                                    ! ���F�G�����@�����*+¶�HÇ�¬¬����)������½�*��������+�,������	�
                                    ! ���J�K�����R�����*+¶�HÆ�»�LY*´�·�N°°����)������Â�Ã�Ç�*��������+�,������	�
                                    ! ���������/�����*´�'°����)������Í�*��������+�,����Q����R�S������T�V
                                      ��T�W�
                                    \ No newline at end of file
                                    --- 11,19 ----
                                      ��I�@�A�tryFetch�.(Ljava/lang/String;)Lcom/sun/javadoc/ClassDoc;�M�/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl
                                      �L�O�
                                    �P�(Ljava/lang/Class;)V�
                                      SourceFile�RootDocImpl.java�InnerClasses�U�%gnu/classpath/tools/gjdoc/RootDocImpl�ResolvedImport�ResolvedImportReflectionClass� ������������	�
                                    ! ����������
                                    ������™�����5*+µ�*·�*,µ�,¶�N-.¶�6›�*-`¶�#µ�'§�*-µ�'±����)���"���»�°�	²�³�´�µ� ¶�/¹�*���*����5�+�,�����5�����"�-�
                                    ! ����.�/���0������F�����»�1Y3·�5*´�¶�¶�8<¶�8¶�>°����)������¿�*��������+�,����@�A�����_�����#*´�'+¶�Bš�*´�¶�+¶�B™�*´�¶�°°����)������Ä�Å�!È�*�������#�+�,�����#�	�
                                    ! ���F�G�����@�����*+¶�HÇ�¬¬����)������Î�*��������+�,������	�
                                    ! ���J�K�����R�����*+¶�HÆ�»�LY*´�·�N°°����)������Ó�Ô�Ø�*��������+�,������	�
                                    ! ���������/�����*´�'°����)������Þ�*��������+�,����Q����R�S������T�V
                                      ��T�W�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 10,14 ****
                                      ��E�*�+�tryFetch�.(Ljava/lang/String;)Lcom/sun/javadoc/ClassDoc;
                                      �I�K�J�/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl�L�M�newInstance�D(Ljava/lang/Class;)Lgnu/classpath/tools/gjdoc/ClassDocReflectedImpl;�
                                      SourceFile�RootDocImpl.java�InnerClasses�R�%gnu/classpath/tools/gjdoc/RootDocImpl�ResolvedImport�ResolvedImportReflectionPackage� �����������	�
                                    ! ���������
                                    ���K�����*+µ�*·�*,µ�±����������Ù�Ö�	Ø�����������������������
                                    ���C�����»�Y·�*´�¶�"&¶�"¶�(°����������Ý��������������*�+��
                                    ���x�����&»�Y*´�¸�,·�2¶�"+¶�"¶�(¸�4M,¶�:°W°����"�#�=��������ã�ä�#æ�$ç���� ����&�������&�?�����@�A���B�C��
                                    ���@�����*+¶�DÇ�¬¬����������í����������������?����F�G��
                                    ���s�����!»�Y*´�¸�,·�+¶�"¶�(¸�4M,¸�H°W°������=��������ó�ô�ö�÷���� ����!�������!�?�����@�A���<���
                                    ���/�����*´�°����������ý��������������N����O�P������Q�S
                                      ��Q�T�
                                    \ No newline at end of file
                                    --- 10,14 ----
                                      ��E�*�+�tryFetch�.(Ljava/lang/String;)Lcom/sun/javadoc/ClassDoc;
                                      �I�K�J�/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl�L�M�newInstance�D(Ljava/lang/Class;)Lgnu/classpath/tools/gjdoc/ClassDocReflectedImpl;�
                                      SourceFile�RootDocImpl.java�InnerClasses�R�%gnu/classpath/tools/gjdoc/RootDocImpl�ResolvedImport�ResolvedImportReflectionPackage� �����������	�
                                    ! ���������
                                    ���K�����*+µ�*·�*,µ�±����������ê�ç�	é�����������������������
                                    ���C�����»�Y·�*´�¶�"&¶�"¶�(°����������î��������������*�+��
                                    ���x�����&»�Y*´�¸�,·�2¶�"+¶�"¶�(¸�4M,¶�:°W°����"�#�=��������ô�õ�#÷�$ø���� ����&�������&�?�����@�A���B�C��
                                    ���@�����*+¶�DÇ�¬¬����������þ����������������?����F�G��
                                    ���s�����!»�Y*´�¸�,·�+¶�"¶�(¸�4M,¸�H°W°������=��������������� ����!�������!�?�����@�A���<���
                                    ���/�����*´�°������������������������N����O�P������Q�S
                                      ��Q�T�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 5,9 ****
                                      ��%�&�'�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�)�}
                                      ��+���
                                      SourceFile�RootDocImpl.java�InnerClasses�0�%gnu/classpath/tools/gjdoc/RootDocImpl�ScheduledClass� ������������������	�
                                    ! ���������
                                    ���^�����*+µ�*·�*,µ�*-µ�±����������Ù�Ö�	×�Ø���� �������������������������
                                    ���C�����»�Y·�!*´�¶�$(¶�$¶�*°����������Û��������������,����-�.���
                                      ���/�1��
                                    \ No newline at end of file
                                    --- 5,9 ----
                                      ��%�&�'�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�)�}
                                      ��+���
                                      SourceFile�RootDocImpl.java�InnerClasses�0�%gnu/classpath/tools/gjdoc/RootDocImpl�ScheduledClass� ������������������	�
                                    ! ���������
                                    ���^�����*+µ�*·�*,µ�*-µ�±����������ê�ç�	è�é���� �������������������������
                                    ���C�����»�Y·�!*´�¶�$(¶�$¶�*°����������ì��������������,����-�.���
                                      ���/�1��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** setOptions�([[Ljava/lang/String;)V�
                                    s
                                    *** 124,166 ****
                                      ��
                                      SourceFile�RootDocImpl.java�InnerClasses�ResolvedImport�ResolvedImportClassFile�ResolvedImportNotFound�ResolvedImportPackageFile�ResolvedImportReflectionClass�ResolvedImportReflectionPackage�ScheduledClass�!������������	�
                                      ���������
                                    ����������������������������������������������������������������� �����!�����"�����#����	�$�%���/��&�'��(���)������³�)±����+���
                                    ! ���Ã���,��������-��(���/�����*´�.°����+�������‰�,��������0�1����2�3��(���B�����*´�4+¹�6�À�<°����+�������”�,��������0�1������>����?�@��(���/�����*´�A°����+�������š�,��������0�1����C�D��(���B�����*´�E+¹�6�À�G°����+�������ž�,��������0�1������I�����-��(���;�����*´�J½�L¹�N�À�T°����+�������¥�,��������0�1�����U��(���;�����*´�V½�X¹�Z�À�]°����+�������«�,��������0�1����_�`��(���A�����	*´�a+¶�c±����+���
                                    ! ����°��±�,�������	�0�1�����	�g����h�`��(���A�����	*´�a+¶�i±����+���
                                    ! ����µ��¶�,�������	�0�1�����	�g����k�`��(���A�����	*´�a+¶�l±����+���
                                    ! ����º��»�,�������	�0�1�����	�g����n�`��(���A�����	*´�a+¶�o±����+���
                                    ! ����¿��À�,�������	�0�1�����	�g����I�q��(���-�����r°����+�������Ã�,��������0�1����t�u��(���/�����*´�a°����+�������Ç�,��������0�1����v�'��w�����x�z�(����
                                      ��i»�|Y~·�€L+¶�ƒ*»�†Y+ˆ·�Šµ�*¶�‘M,¹�•�š�3,¹�™�N§�-¹��À�|:*´�£*´�¥§¶�©-¹�¯�šÿà§�»�²Y´·�¶*´�·¶�¹¶�½¸�À*´�ƹ�È�N§�µ-¹��À�É::Æ�¶�Ëš�Ï:*»�²YÑ·�¶¶�ÓÖ¶�Ó¶�½¶�ØÆ�.²�Ù¶�Ý:§�á:*¶�‘:¹�•�š�7¹�™�:§�¹��À�|:	*´�£	*´�¥¶�©¹�¯�šÿÞ§�*»�²Yã·�¶¶�Óå¶�Ó¶�½¶�ç-¹�¯�šÿH*»�èY·�êµ�J*´�ì¹�™�N§�e-¹��À�|:*»�²Yî·�¶¶�¹ð¶�Ó¶�½¶�Ø*´�£*´�¥¶�ò:Æ�**´�J¹�ö�W*´�ú¹�ö�W¶�ü*¶�¶-¹�¯�šÿ˜*¶�Ø**´�£¶
                                    ! *¶�Ø*¶*¶�Ø*´�4¹�¹�N§�-¹��À�<:Á�L™�À�L¶-¹�¯�šÿß*¶�Ø*´�E¹�¹�N§�-¹��À�X:¶!-¹�¯�šÿê*»"Y·$µ�V*´�ƹ�È�N§�n-¹��À�É:*´�E¹�6�À�G:Æ�NÀ�X¶%*´�V¹&�W¹'�:6§�"2À�L:¶�ü*´�ú¹�ö�W„¾¡ÿÜ-¹�¯�šÿ**¶�Ø*´�4¹�¹�N§�-¹��À�<:Á�L™�À�L¶,-¹�¯�šÿß*-¶�Ø*´�E¹�¹�N§�-¹��À�X:¶/-¹�¯�šÿê**´�ú½�L¹�N�À�Tµ�.*´�.¸0*µ�£¸6¸6±����+��b�X���Ï�
                                    ! �Ð��Ñ��Õ�#�Ö�,�×�3�Ø�6�Ù�A�Ú�G�Û�M�Ú�P�Ø�\�à�s�ê�€�ì�‹�í��î�œ�ï� �ñ�º�ó�¿�ô�Î�÷�Ò�ù�Ú�ú�ä�û�í�ü�ð�ý�ü�þ�ü2�ê;F
                                    ! S^
                                    x‰Žš¦¬µ
                                    ! ¾ÅÍ Ô"Ø&ß(ñ)ü*+(13.495>3G:R;_<j=z>?ˆ@”BC£D­F³G¿CÊ;ÓNÚPìQ÷RÿSPY[)\4]9[BbVc]gbheihj�,��.���i�0�1���
                                    ! _;<��#F=���3�)>?��A�@<��}�¾>?��‹�§A����£B���Ë�C���Ò�`C���Ú�XD���í�+E?��ü�F<�	P�n>?�^�WG<�‰�,HI�î�'>?�ü�JK�+�>?�9�LM�\�w>?�j�`A��z�PNO��-PQ� �*RS�­�TI�é�'>?�÷�JK�&�>?�4�LM��UV��(���¹�����C*´�¶WA+[¶]:*´�¾¶a*´�¶e ­M*»�²Yi·�¶,¶k¶�Ó¶�½¶no­����%�&�z��+���"���n�p�q�r�$s�&u�'v�?w�,���4����C�0�1�����Cq����rs���tu��'�vw��xy��(���Å�����K*´�¶z*´�¶~>¼:*´�¶W»�ÉY[·…°N-¶ˆ*»�²Y‹·�¶-¶k¶�Ó¶�½¶n°����+�,�z��+���&�	��}�~��€��,„�-…�1†�I‡�,���4����K�0�1�����Krs���S���tu��-�vw����“�”��(���À�����H»�èY·�êM*´�·¹�™�N§�+-¹��À�|:»�|Y+·Ž:¶™�,¹�ö�W-¹�¯�šÿÒ,°����+���"����Ž�� �,‘�4’�=Ž�F–�,���>����H�0�1�����HC����@’����4>?�� �“<��,�”<���•–��(��³��
                                    ! ���Ï*+¶—M,Ç�Æ»�XY+·šM*´�Æ+¹›�™�«+.²�Ù¶�ÝN*-¶�‘:¹�™�:6§�g¹��À�|:»�|Yž·Ž:,¶ 6Æ�?¶™�7,¸¤¶¨§�5:	*»�²Y«·�¶+¶�Ó­¶�Ó	¶k¶�Ó¶�½¶¯§�
                                    ¹�¯�šÿ•š�*»�²Y°·�¶+¶�Ó¶�½¶�Ø*,¶,°��p�y�|�z��+���^���š�›�
                                    ! œ�� ž�*Ÿ�1 �:¡�=¢�@£�L¤�Z¥�`¦�c§�p©�|«�~¬�¡®�¤¢�®±�³²�ȵ�Í·�,���f�
                                      ���Ï�0�1�����ϲ����ɳM��*�ž´���1�—µ���:�Ž>?��=�‹¶�%��L�X·<��Z�J¸<��~�#vw�	�¹º��(���J�����*´�4+¹»�+¹½�W±����+���
                                    ! ���»�¼�,��������0�1�����JK��Áº��(���‹�����/*´�4+¹»�+¹½�W+¹Â�M>§�
                                    *,2¶Æ„,¾¡ÿó±����+������¿�À�Á�Â�%Á�.Ä�,���*����/�0�1�����/JK���ÄQ���RS����(���J�����*´�E+¹È�+¹½�W±����+���
                                    ! ���Ç�È�,��������0�1�����LO��™–��(���B�����*´�E+¹�6�À�X°����+������Ë�,��������0�1������I���ÊË��(���B�����*´�4+¹�6�À�L°����+������Ï�,��������0�1������>���ÌÍ��w�����x�z�(���h�����"*´�4,¹�6�Ç�*´λÐY*+,·Ò¹�ö�W±����+������à�
                                    å�!ç�,��� ����"�0�1�����"ÕK����"�>���
                                    ��w�����x�z�(�������‡§�z*´Î½й�N�ÀÖM*´ιØ�>§�U,2´Û:,2´Ý:*´�4¹�6�Æ�§�1*+·à§�%W*»�²Yä·�¶¶�Óæ¶�Ó¶�¹¶�½¶¯„,¾¡ÿ«*´ι�•�™ÿ€±��C�L�O�x��+���:����
                                    ! ���"�*�2�@�C$�O&�PG�q�z�†M�,���>����‡�0�1�����‡�����fè×���[RS��*�Gé���2�?êK��âã��w�����x�z�(��ï�����ë-,¹ë�:Æ�Áî™�×*,-¶ð:Æ�?Áô™�¸ö¶Æ¹ü�Æ�°¹ü�Áî™�£*¹ü�¹»�¶�§�Ž6+¶6-¹�:§�>¹ü�:	§�	Áî™�À�L¶6	¹ü�:		Æ�™ÿݹ�:Æ�™ÿ¾-,¹ë�:+¶6		¤�§�6
                                      Ç�™�
                                    ! ™�	*-,¶�±����+���r���Q�	S�U�V�#X�+Y�3]�=^�J_�_e�bg�hi�pj�sk�|l�m�‡n�o�’q�›l�¥s�®j�¸y�Á{�Ç}�Õ‚�äƒ�ê’�,���z����ë�0�1�����ë������ëé�����ëêK��	�âK���ÌHK��b�ˆ	�%��h�‚
                                      S��p�zK��|�2K�	��#
                                    S�	���%�
                                    ! ���(�������x»Y,·N§�c-¶:+¹�:6§�!2¹�¶™�2L§�4„¾¡ÿÝ*»�²Y!·�¶,¶�Ó#¶�Ó+¹»�¶�Ó¶�½¶¯°-¶%šÿœ+°����+���6�
                                    ��,�/�0�1�2�#3�54�;5�>2�I8�m9�o/�v;�,���H����x�0�1�����x(K����x)����l*+���Z,����RÄQ�� �)RS��-.��(���{�����)*+·/M,Ç�¸2¶6™�	*+·9M,Ç�
                                    »<Y*+·>M,°����+���������	�
                                    ! �'�,��� ����)�0�1�����)A����#’B��;.��(��� �����4+M,C¶E™�,,¶�Ëd¶IM»MY*,·O°+¸PN»VY*-·X°W°��"�0�1[��+���"�������"�'�1�2�,���*����4�0�1�����4A����2]���'�
                                      ^_��1.��(��‚��
                                    ! ��Z*´`¹�™�M§�,¹��À�ÉN+-¶b™�°,¹�¯�šÿæáM*´�·¹�™�N§-¹��À�|:»eY·g:»Y+·:§�¸¶:h¶™�»jY*¶ld¶m·n°¶qW.¶tW»�|Y»�²Y¸w·�¶{¶�Ó¶�½·Ž:¶™�I»eY·g:	§�"¶:	¶lž�	.¶tW	¶qW¶%šÿÜ»}Y*	¶+·€°»�|Y·Ž:¶%™�¶ƒšÿ>¶%™�¶l,¶�ˤ�	¶M-¹�¯�šþ÷,¶�Ëž�*´`,¹�ö�W°����+���–�%��&�
                                    '�(�)�!&�*-�-/�:1�E3�N4�[5�^6�e7�p8�w9�„8�ˆ<�=�˜>�¸@�ÀA�ÉB�ÌC�ÓD�ÛE�ãG�ëB�óIL5#P+Q7R=/FWMXX[�,���z���Z�0�1����ZA���
                                      � >?���
                                    ! †���--‡���7>?��E�øˆ<��N���[�â*+��e�®‹���¸�[Œ<��É�=)Š�	�.��(���x�����&*´Ž+¹�6�ÀM,Ç�*+·’M*´Ž+,¹½�W,°����+������c�
                                    b�d�e�f�$h�,��� ����&�0�1�����&A����’B��”•��(���Ã�����=,¶–¹�™�N§�(-¹��À�É:*·š:+¹œ�:Æ�°-¹�¯�šÿÕ+°����+���&�	��m�
                                    ! n�
                                    o�p� q�*s�/t�2n�;w�,���H����=�0�1�����= �����=ÕI��
                                    ! �3>?���A��� �¡B��*�¢���òó��w�����x�z�(������qN,Á�L™�ƒ,À�L¶–¹�™�:§�e¹��À�É:*·š:+¹œ�N-Æ�D+¹£�:Æ�°*´¦+¹›�š�#*´¦+¹&�W*»�²Y¨·�¶+¶�Ó¶�½¶¯°¹�¯�šÿ—§�$²ª»�²Y®·�¶+¶�Ó°¶�Ó,¶�¹¶�½¶²*+·/:Æ�Á}™�À}¶·¹£�°*´º+¹›�š�U¸2¶6™�A+¸P:*»�²Y¼·�¶+¶�Ó¾¶�Ó¶�½¶¯»ôY·À:°W*´º+¹&�W§�*´º+¹&�W-Ç�+N*´Ã-¹›�š�2*´Ã-¹&�W*»�²Y¼·�¶-¶�ÓŶ�Ó,¹»�¶�Ó¶�½¶¯°��ä[��+���Ž�#��~�€�	ƒ�„�…�&†�.ˆ�7‰�;Š�E‹�JŒ�M�Z�e‘�z”�|„�‰š�ªŸ�± �¾¡�Φ�Û§�ä©�ꪫ¬®¯"³-·1¸3º@»K¼o¾�,���p���q�0�1����qé����qêK��o¢����r>?��&�VA���.�N¡B��E�7’K��±�ÀÇB��ê�)È_��’K��É�`��(���D�����*´�Æ+¹&�W±����+���
                                    ! ���Æ�Ç�,��������0�1�����²���Ê£��(���D�����*´�ì+¹�ö�W±����+���
                                    ! ���Ê�Ë�,��������0�1�����Ë<��Ì�˜��(���N�����*´�ƹÍ�™�*´�ì¹�•�™�¬¬����+������Î�Ï�Î�,��������0�1���ÎÏ��(���>�����*+µ�A±����+���
                                    ! ���Ó�Ô�,��������0�1���������ÐÑ��(���>�����*+µ�·±����+���
                                    ! ���×�Ø�,��������0�1���������Ò�'��w����[�(���3�����*·Ó±����+���
                                    ! ���Û�Ü�,��������0�1���×�'��(���Ï�����Y*´�¶ا�W*Û¶�ç*µ�*µ�A*µ�Æ*µ�ú*µ�4*µ�E*µ�.*µ�J*µ�V*µÎ*µ�·*µ�£*µÃ*µ¦±�����
                                    ! �z��+���J���á�
                                    ! ã�ä�ç�è�é�!ê�&ë�+ì�0í�5î�:ï�?ð�Dñ�Iò�Nó�Sô�Xõ�,�������Y�0�1���Ý�`��(���>�����*+µ�¥±����+���
                                    ! ���ù�ú�,��������0�1����������‚�'��(���÷�����•*·Þ*»�dY·áµ�a*»�èY·�êµ�ì*»"Y·$µ�Æ*»�èY·�êµ�ú*»âY·äµ�4*»âY·äµ�E*»�èY·�êµÎ*»�ªY·åµ�£*»æY·èµÃ*»æY·èµ¦*»�èY·�êµ`*»âY·äµŽ*»æY·èµº±����+���>���þ�� ��2��:�&�C�1�L�<�U�G�t�R�z�]�|�h�~�s�~^�‰Á�”ÿ�,�������•�0�1���	¦§��w�����z�(����
                                    ! ���¾»éY*·ëL*¶íA ˆ¼:6+ ˆ¶ï6§�`6 …eA+ ˆ¶ï6ÿå+¶ò»�ÉY·ó:ö¶ø6 �
                                    ü¶ø6þ¶ø6		 �
                                    �¶ø6	Ÿ�.	Ÿ�(>¶`6Ÿ�	¢�	¶I:¶°����+���^����	����#	�&
                                    ! �-�3�?	�D�H�S�]�c�m�w�}�‡�“� �­�¸�,���\�	���¾”<���	�µ	���°
                                    ! s���ª���§
                                    S��#�›RS��S�k���]�aS��w�GS�	���(���/�����*´�£°����+������#�,��������0�1����(���%�����*´�£°����+�������z�,�������(���%�����*´�¥°����+�������x�,�������(���'�����*+,·°����+������*�,������������:��
                                      }��<� �j�!�V�"�M�#��$��
                                    \ No newline at end of file
                                    --- 124,163 ----
                                      ��
                                      SourceFile�RootDocImpl.java�InnerClasses�ResolvedImport�ResolvedImportClassFile�ResolvedImportNotFound�ResolvedImportPackageFile�ResolvedImportReflectionClass�ResolvedImportReflectionPackage�ScheduledClass�!������������	�
                                      ���������
                                    ����������������������������������������������������������������� �����!�����"�����#����	�$�%���/��&�'��(���)������³�)±����+���
                                    ! ���Ô��-�,��������-��(���/�����*´�.°����+�������š�,��������0�1����2�3��(���B�����*´�4+¹�6�À�<°����+�������¥�,��������0�1������>����?�@��(���/�����*´�A°����+�������«�,��������0�1����C�D��(���B�����*´�E+¹�6�À�G°����+�������¯�,��������0�1������I�����-��(���;�����*´�J½�L¹�N�À�T°����+�������¶�,��������0�1�����U��(���;�����*´�V½�X¹�Z�À�]°����+�������¼�,��������0�1����_�`��(���A�����	*´�a+¶�c±����+���
                                    ! ����Á��Â�,�������	�0�1�����	�g����h�`��(���A�����	*´�a+¶�i±����+���
                                    ! ����Æ��Ç�,�������	�0�1�����	�g����k�`��(���A�����	*´�a+¶�l±����+���
                                    ! ����Ë��Ì�,�������	�0�1�����	�g����n�`��(���A�����	*´�a+¶�o±����+���
                                    ! ����Ð��Ñ�,�������	�0�1�����	�g����I�q��(���-�����r°����+�������Ô�,��������0�1����t�u��(���/�����*´�a°����+�������Ø�,��������0�1����v�'��w�����x�z�(����
                                      ��i»�|Y~·�€L+¶�ƒ*»�†Y+ˆ·�Šµ�*¶�‘M,¹�•�š�3,¹�™�N§�-¹��À�|:*´�£*´�¥§¶�©-¹�¯�šÿà§�»�²Y´·�¶*´�·¶�¹¶�½¸�À*´�ƹ�È�N§�µ-¹��À�É::Æ�¶�Ëš�Ï:*»�²YÑ·�¶¶�ÓÖ¶�Ó¶�½¶�ØÆ�.²�Ù¶�Ý:§�á:*¶�‘:¹�•�š�7¹�™�:§�¹��À�|:	*´�£	*´�¥¶�©¹�¯�šÿÞ§�*»�²Yã·�¶¶�Óå¶�Ó¶�½¶�ç-¹�¯�šÿH*»�èY·�êµ�J*´�ì¹�™�N§�e-¹��À�|:*»�²Yî·�¶¶�¹ð¶�Ó¶�½¶�Ø*´�£*´�¥¶�ò:Æ�**´�J¹�ö�W*´�ú¹�ö�W¶�ü*¶�¶-¹�¯�šÿ˜*¶�Ø**´�£¶
                                    ! *¶�Ø*¶*¶�Ø*´�4¹�¹�N§�-¹��À�<:Á�L™�À�L¶-¹�¯�šÿß*¶�Ø*´�E¹�¹�N§�-¹��À�X:¶!-¹�¯�šÿê*»"Y·$µ�V*´�ƹ�È�N§�n-¹��À�É:*´�E¹�6�À�G:Æ�NÀ�X¶%*´�V¹&�W¹'�:6§�"2À�L:¶�ü*´�ú¹�ö�W„¾¡ÿÜ-¹�¯�šÿ**¶�Ø*´�4¹�¹�N§�-¹��À�<:Á�L™�À�L¶,-¹�¯�šÿß*-¶�Ø*´�E¹�¹�N§�-¹��À�X:¶/-¹�¯�šÿê**´�ú½�L¹�N�À�Tµ�.*´�.¸0*µ�£¸6¸6±����+��b�X���à�
                                    ! �á��â��æ�#�ç�,�è�3�é�6�ê�A�ë�G�ì�M�ë�P�é�\�ñ�s�û�€�ý�‹�þ��ÿ�œ�� �º�¿�Î�Ò
                                    ! �Ú�ä�í
                                    �ð�ü
                                    2�û;FS^x‰ Ž!š"¦#¬$µ¾+Å/Í1Ô3Ø7ß9ñ:ü;<9BD.E9F>DGKRL_MjNzOPˆQ”ST£U­W³X¿TÊLÓ_Úaìb÷cÿdajl)m4n9lBsVt]xbyezh{�,��.���i�0�1���
                                    ! _;<��#F=���3�)>?��A�@<��}�¾>?��‹�§A����£B���Ë�C���Ò�`C���Ú�XD���í�+E?��ü�F<�	P�n>?�^�WG<�‰�,HI�î�'>?�ü�JK�+�>?�9�LM�\�w>?�j�`A��z�PNO��-PQ� �*RS�­�TI�é�'>?�÷�JK�&�>?�4�LM��UV��(���¹�����C*´�¶WA+[¶]:*´�¾¶a*´�¶e ­M*»�²Yi·�¶,¶k¶�Ó¶�½¶no­����%�&�z��+���"�����‚�ƒ�$„�&†�'‡�?ˆ�,���4����C�0�1�����Cq����rs���tu��'�vw��xy��(���Å�����K*´�¶z*´�¶~>¼:*´�¶W»�ÉY[·…°N-¶ˆ*»�²Y‹·�¶-¶k¶�Ó¶�½¶n°����+�,�z��+���&�	��Ž���‘�’�,•�-–�1—�I˜�,���4����K�0�1�����Krs���S���tu��-�vw����“�”��(���À�����H»�èY·�êM*´�·¹�™�N§�+-¹��À�|:»�|Y+·Ž:¶™�,¹�ö�W-¹�¯�šÿÒ,°����+���"���ž�Ÿ� � ¡�,¢�4£�=Ÿ�F§�,���>����H�0�1�����HC����@’����4>?�� �“<��,�”<���•–��(��³��
                                    ! ���Ï*+¶—M,Ç�Æ»�XY+·šM*´�Æ+¹›�™�«+.²�Ù¶�ÝN*-¶�‘:¹�™�:6§�g¹��À�|:»�|Yž·Ž:,¶ 6Æ�?¶™�7,¸¤¶¨§�5:	*»�²Y«·�¶+¶�Ó­¶�Ó	¶k¶�Ó¶�½¶¯§�
                                    ¹�¯�šÿ•š�*»�²Y°·�¶+¶�Ó¶�½¶�Ø*,¶,°��p�y�|�z��+���^���«�¬�
                                    ! ­�®� ¯�*°�1±�:²�=³�@´�Lµ�Z¶�`·�c¸�pº�|¼�~½�¡¿�¤³�®Â�³Ã�ÈÆ�ÍÈ�,���f�
                                      ���Ï�0�1�����ϲ����ɳM��*�ž´���1�—µ���:�Ž>?��=�‹¶�%��L�X·<��Z�J¸<��~�#vw�	�¹º��(���J�����*´�4+¹»�+¹½�W±����+���
                                    ! ���Ì�Í�,��������0�1�����JK��Áº��(���‹�����/*´�4+¹»�+¹½�W+¹Â�M>§�
                                    *,2¶Æ„,¾¡ÿó±����+������Ð�Ñ�Ò�Ó�%Ò�.Õ�,���*����/�0�1�����/JK���ÄQ���RS����(���J�����*´�E+¹È�+¹½�W±����+���
                                    ! ���Ø�Ù�,��������0�1�����LO��™–��(���B�����*´�E+¹�6�À�X°����+������Ü�,��������0�1������I���ÊË��(���B�����*´�4+¹�6�À�L°����+������à�,��������0�1������>���ÌÍ��w�����x�z�(���h�����"*´�4,¹�6�Ç�*´λÐY*+,·Ò¹�ö�W±����+������ñ�
                                    ö�!ø�,��� ����"�0�1�����"ÕK����"�>���
                                    ��w�����x�z�(�������‡§�z*´Î½й�N�ÀÖM*´ιØ�>§�U,2´Û:,2´Ý:*´�4¹�6�Æ�§�1*+·à§�%W*»�²Yä·�¶¶�Óæ¶�Ó¶�¹¶�½¶¯„,¾¡ÿ«*´ι�•�™ÿ€±��C�L�O�x��+���:������ �"%�**�2.�@/�C5�O7�PX�q �z�†^�,���>����‡�0�1�����‡�����fè×���[RS��*�Gé���2�?êK��âã��w�����x�z�(��ï�����ë-,¹ë�:Æ�Áî™�×*,-¶ð:Æ�?Áô™�¸ö¶Æ¹ü�Æ�°¹ü�Áî™�£*¹ü�¹»�¶�§�Ž6+¶6-¹�:§�>¹ü�:	§�	Áî™�À�L¶6	¹ü�:		Æ�™ÿݹ�:Æ�™ÿ¾-,¹ë�:+¶6		¤�§�6
                                      Ç�™�
                                    ! ™�	*-,¶�±����+���r���b�	d�f�g�#i�+j�3n�=o�Jp�_v�bx�hz�p{�s|�|}�~�‡�€�’‚�›}�¥„�®{�¸Š�ÁŒ�ÇŽ�Õ“�ä”�ê£�,���z����ë�0�1�����ë������ëé�����ëêK��	�âK���ÌHK��b�ˆ	�%��h�‚
                                      S��p�zK��|�2K�	��#
                                    S�	���%�
                                    ! ���(�������x»Y,·N§�c-¶:+¹�:6§�!2¹�¶™�2L§�4„¾¡ÿÝ*»�²Y!·�¶,¶�Ó#¶�Ó+¹»�¶�Ó¶�½¶¯°-¶%šÿœ+°����+���6�
                                    ��=�@�A�B�C�#D�5E�;F�>C�II�mJ�o@�vL�,���H����x�0�1�����x(K����x)����l*+���Z,����RÄQ�� �)RS��-.��(���{�����)*+·/M,Ç�¸2¶6™�	*+·9M,Ç�
                                    »<Y*+·>M,°����+�����������'�,��� ����)�0�1�����)A����#’B��;.��(��� �����4+M,C¶E™�,,¶�Ëd¶IM»MY*,·O°+¸PN»VY*-·X°W°��"�0�1[��+���"���"�#�$�&�",�'-�1/�20�,���*����4�0�1�����4A����2]���'�
                                      ^_��1.��(��‚��
                                    ! ��Z*´`¹�™�M§�,¹��À�ÉN+-¶b™�°,¹�¯�šÿæáM*´�·¹�™�N§-¹��À�|:»eY·g:»Y+·:§�¸¶:h¶™�»jY*¶ld¶m·n°¶qW.¶tW»�|Y»�²Y¸w·�¶{¶�Ó¶�½·Ž:¶™�I»eY·g:	§�"¶:	¶lž�	.¶tW	¶qW¶%šÿÜ»}Y*	¶+·€°»�|Y·Ž:¶%™�¶ƒšÿ>¶%™�¶l,¶�ˤ�	¶M-¹�¯�šþ÷,¶�Ëž�*´`,¹�ö�W°����+���–�%��7�
                                    8�9�:�!7�*>�-@�:B�ED�NE�[F�^G�eH�pI�wJ�„I�ˆM�N�˜O�¸Q�ÀR�ÉS�ÌT�ÓU�ÛV�ãX�ëS�óZ]F#a+b7c=@FhMiXl�,���z���Z�0�1����ZA���
                                      � >?���
                                    ! †���--‡���7>?��E�øˆ<��N���[�â*+��e�®‹���¸�[Œ<��É�=)Š�	�.��(���x�����&*´Ž+¹�6�ÀM,Ç�*+·’M*´Ž+,¹½�W,°����+������t�
                                    s�u�v�w�$y�,��� ����&�0�1�����&A����’B��”•��(���Ã�����=,¶–¹�™�N§�(-¹��À�É:*·š:+¹œ�:Æ�°-¹�¯�šÿÕ+°����+���&�	��~�
                                    ! �
                                    €�� ‚�*„�/…�2�;ˆ�,���H����=�0�1�����= �����=ÕI��
                                    ! �3>?���A��� �¡B��*�¢���òó��w�����x�z�(������qN,Á�L™�ƒ,À�L¶–¹�™�:§�e¹��À�É:*·š:+¹œ�N-Æ�D+¹£�:Æ�°*´¦+¹›�š�#*´¦+¹&�W*»�²Y¨·�¶+¶�Ó¶�½¶¯°¹�¯�šÿ—§�$²ª»�²Y®·�¶+¶�Ó°¶�Ó,¶�¹¶�½¶²*+·/:Æ�Á}™�À}¶·¹£�°*´º+¹›�š�U¸2¶6™�A+¸P:*»�²Y¼·�¶+¶�Ó¾¶�Ó¶�½¶¯»ôY·À:°W*´º+¹&�W§�*´º+¹&�W-Ç�+N*´Ã-¹›�š�2*´Ã-¹&�W*»�²Y¼·�¶-¶�ÓŶ�Ó,¹»�¶�Ó¶�½¶¯°��ä[��+���Ž�#���‘�	”�•�–�&—�.™�7š�;›�Eœ�J�M �Z¡�e¢�z¥�|•�‰«�ª°�±±�¾²�η�Û¸�äº�껼½¿À"Ä-È1É3Ë@ÌKÍoÏ�,���p���q�0�1����qé����qêK��o¢����r>?��&�VA���.�N¡B��E�7’K��±�ÀÇB��ê�)È_��’K��É�`��(���D�����*´�Æ+¹&�W±����+���
                                    ! ���×�Ø�,��������0�1�����²���Ê£��(���D�����*´�ì+¹�ö�W±����+���
                                    ! ���Û�Ü�,��������0�1�����Ë<��Ì�˜��(���N�����*´�ƹÍ�™�*´�ì¹�•�™�¬¬����+������ß�à�ß�,��������0�1���ÎÏ��(���>�����*+µ�A±����+���
                                    ! ���ä�å�,��������0�1���������ÐÑ��(���>�����*+µ�·±����+���
                                    ! ���è�é�,��������0�1���������Ò�'��w����[�(���3�����*·Ó±����+���
                                    ! ���ì�í�,��������0�1���×�'��(���Ï�����Y*´�¶ا�W*Û¶�ç*µ�*µ�A*µ�Æ*µ�ú*µ�4*µ�E*µ�.*µ�J*µ�V*µÎ*µ�·*µ�£*µÃ*µ¦±�����
                                    ! �z��+���J���ò�
                                    ! ô�õ�ø�ù�ú�!û�&ü�+ý�0þ�5ÿ�:��?�D�I�N�S�X�,�������Y�0�1���Ý�`��(���>�����*+µ�¥±����+���
                                    ! ���
                                    ! ��,��������0�1����������‚�'��(���÷�����•*·Þ*»�dY·áµ�a*»�èY·�êµ�ì*»"Y·$µ�Æ*»�èY·�êµ�ú*»âY·äµ�4*»âY·äµ�E*»�èY·�êµÎ*»�ªY·åµ�£*»æY·èµÃ*»æY·èµ¦*»�èY·�êµ`*»âY·äµŽ*»æY·èµº±����+���>�����1��C��K�&�T�1�]�<�f�G�…�R�‹�]��h��s�~o�‰Ò�”�,�������•�0�1���	¦§��w�����z�(����
                                    ! ���¾»éY*·ëL*¶íA ˆ¼:6+ ˆ¶ï6§�`6 …eA+ ˆ¶ï6ÿå+¶ò»�ÉY·ó:ö¶ø6 �
                                    ü¶ø6þ¶ø6		 �
                                    �¶ø6	Ÿ�.	Ÿ�(>¶`6Ÿ�	¢�	¶I:¶°����+���^����	����#�&�-�3�?�D�H"�S#�]$�c%�m&�w'�}(�‡)�“+� ,�­-�¸/�,���\�	���¾”<���	�µ	���°
                                    ! s���ª���§
                                    S��#�›RS��S�k���]�aS��w�GS�	���(���/�����*´�£°����+������4�,��������0�1����(���%�����*´�£°����+�������‹�,�������(���%�����*´�¥°����+�������‰�,�������(���'�����*+,·°����+������;�,������������:��
                                      }��<� �j�!�V�"�M�#��$��
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** isIncluded�()Z�w�}�~��containingP
                                    *** 30,36 ****
                                      inlineTags�³�com/sun/javadoc/Tag�µ�%gnu/classpath/tools/gjdoc/TextTagImpl
                                      �´��
                                      SourceFile�SeeTagImpl.java�!������������	�����
                                    ! ����������
                                    ���������������������������Q�����*+·�*,µ�±�����������'��(�
                                    ! �)���� ������������ ����������!�"����¹����S*·�#**´�%¶�'µ�%*´�%-¶�/š�*´�%3¶�/™�**´�%µ�5±*´�%;¶�7<›�
                                    ! *;µ�5±=§�=*´�%¶�?¶�7›�<§�„*´�%¶�C¡ÿà*´�%(¶�7=›�¢�*´�%)¶�G<›�„›�*´�%¶�C¡�**´�%¶�'µ�J*;µ�5§�"**´�%¶�L¶�'µ�J**´�%¶�P¶�'µ�5*´�J#¶�7>œ�*´�J:§�*´�J¶�L:**´�J`¶�Pµ�S¶�'¶�Cž�/*µ�U*´�Ç�*¸�W¶�]µ�c§�!**´�¶�eµ�c§�*;µ�U**´�µ�c*´�cÇ�*¸�W»�jYl·�n¶�o¶�s¶�]µ�c*´�cÆ�*´�c¹�v�š�*µ�c*´�cÆ�Ë**´�c¹�|�µ�€**´�c¹�‚�µ�U*´�SÆ�ª*´�S(¶�7œ�€**´�cÀ�f*´�S¶�…µ�‰*´�‰Ç�W*´�cÀ�f¶�‹:6§�:2¹��*´�S¶�”™�#*´�‰Ç�*2µ�‰§�*µ�c*µ�‰§�?„¾¡ÿħ�1**´�‰¹�˜�µ�c§�!**´�cÀ�f*´�S¶�žµ�‰*´�‰Ç�*µ�c±�������ò�<���-��/��1�'�2�/�3�0�6�:�7�>�8�D�9�E�<�J�=�Z�>�\�?�_�<�m�C�w�D�€�E�‹�F��G�’�K�¡�L�¬�M�µ�P�Å�Q�Ô�T�Þ�V�â�W�ë�Z�ö�[�a�b�c�d+�f;�iA�jI�mP�nk�qƒ�sŠ�t—�u¤�w«�y·�zÉ�{Ð�|Ü�}â�~ö�ý�€	�ƒ�„�†�}$�Œ4�F�‘M�“R�����\�	��S�����:�¢�£��G�&�¤�£��wÜ�¥�£��Þu�¦�£��è��§���ö]�§��Ü�H��¨�ß�B�¤�£���������/�����*´�c°����������� ��������������	�,�����/�����*´�U°�����������¤��������������
                                    �©�����/�����*´�‰°�����������¨��������������
                                    ! �,�����/�����*´�S°�����������¬��������������������/�����*´�€°�����������°���������������,�����/�����*´�5°�����������´��������������ª�,�����-�����«°�����������¸��������������“�,�����-�����«°�����������¼��������������­�®�����/�����*¶�¯°�����������À��������������±�®�����=�����½�²Y»�´Y*´�U·�¶S°�����������Ä��������������·����¸
                                    \ No newline at end of file
                                    --- 30,36 ----
                                      inlineTags�³�com/sun/javadoc/Tag�µ�%gnu/classpath/tools/gjdoc/TextTagImpl
                                      �´��
                                      SourceFile�SeeTagImpl.java�!������������	�����
                                    ! ����������
                                    ���������������������������Q�����*+·�*,µ�±�����������8��9�
                                    ! �:���� ������������ ����������!�"����¹����S*·�#**´�%¶�'µ�%*´�%-¶�/š�*´�%3¶�/™�**´�%µ�5±*´�%;¶�7<›�
                                    ! *;µ�5±=§�=*´�%¶�?¶�7›�<§�„*´�%¶�C¡ÿà*´�%(¶�7=›�¢�*´�%)¶�G<›�„›�*´�%¶�C¡�**´�%¶�'µ�J*;µ�5§�"**´�%¶�L¶�'µ�J**´�%¶�P¶�'µ�5*´�J#¶�7>œ�*´�J:§�*´�J¶�L:**´�J`¶�Pµ�S¶�'¶�Cž�/*µ�U*´�Ç�*¸�W¶�]µ�c§�!**´�¶�eµ�c§�*;µ�U**´�µ�c*´�cÇ�*¸�W»�jYl·�n¶�o¶�s¶�]µ�c*´�cÆ�*´�c¹�v�š�*µ�c*´�cÆ�Ë**´�c¹�|�µ�€**´�c¹�‚�µ�U*´�SÆ�ª*´�S(¶�7œ�€**´�cÀ�f*´�S¶�…µ�‰*´�‰Ç�W*´�cÀ�f¶�‹:6§�:2¹��*´�S¶�”™�#*´�‰Ç�*2µ�‰§�*µ�c*µ�‰§�?„¾¡ÿħ�1**´�‰¹�˜�µ�c§�!**´�cÀ�f*´�S¶�žµ�‰*´�‰Ç�*µ�c±�������ò�<���>��@��B�'�C�/�D�0�G�:�H�>�I�D�J�E�M�J�N�Z�O�\�P�_�M�m�T�w�U�€�V�‹�W��X�’�\�¡�]�¬�^�µ�a�Å�b�Ô�e�Þ�g�â�h�ë�k�ö�l�r�s�t�u+�w;�zA�{I�~P�k�‚ƒ�„Š�…—�†¤�ˆ«�Š·�‹É�ŒÐ�Ü�Žâ�ö�ý�‘	�”�•�—�Ž$�4�¡F�¢M�¤R�®����\�	��S�����:�¢�£��G�&�¤�£��wÜ�¥�£��Þu�¦�£��è��§���ö]�§��Ü�H��¨�ß�B�¤�£���������/�����*´�c°�����������±��������������	�,�����/�����*´�U°�����������µ��������������
                                    �©�����/�����*´�‰°�����������¹��������������
                                    ! �,�����/�����*´�S°�����������½��������������������/�����*´�€°�����������Á���������������,�����/�����*´�5°�����������Å��������������ª�,�����-�����«°�����������É��������������“�,�����-�����«°�����������Í��������������­�®�����/�����*¶�¯°�����������Ñ��������������±�®�����=�����½�²Y»�´Y*´�U·�¶S°�����������Õ��������������·����¸
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** asClassDoc�()Lcom/sun/javadoc/ClassDoc
                                    *** 16,21 ****
                                      ��y��9
                                      � �{�v�|�(Ljava/lang/String;)I�o�Ljava/lang/Object;�
                                      SourceFile�SerialFieldTagImpl.java�!������������	�����
                                    ! ����������
                                    �����������µ�����í*+·�*,µ�*´�Ç�	*µ�*´�Ç�	*µ�*´�Ç�	*µ�6+¶�:6§�46ª�����Ž������������G���s¸�%™�	6§�h*Y´�»�+Z_¸�-·�1¶�2¶�6µ�§�J¸�%™�	6§�<*Y´�»�+Z_¸�-·�1¶�2¶�6µ�§�*Y´�»�+Z_¸�-·�1¶�2¶�6µ�„¾¡ÿa**´�,-¶�:±����=���^����&��'�
                                    ! �)��*��+��,�$�-�+�.�1�0�4�1�:�2�@�3�G�4�d�6�r�7��8��:�ž�;�¹�<�¼�>�×�2�â�C�ì�E�>���R����í�?�@�����í�A�����í�
                                    �����í�B�C��4�¹�D�E��:�³�F�G��=�¥�H�E��G��I�J���K�L�����—�����5*·�M*´�*´�¶�OL*+¹�U�µ�[§�L²�]»�+Yc·�1+¶�e¶�6¶�h±�����m��=���"����I��K��L��M��N�*�O�1�N�4�Q�>��� ����5�?�@����
                                    �o�p����q�r����Z�����/�����*´�[°����=�������T�>��������?�@�����9�����/�����*´�°����=�������X�>��������?�@����	�9�����/�����*´�°����=�������\�>��������?�@����
                                    ! �9�����/�����*´�°����=�������`�>��������?�@����s�9�����-�����t°����=�������d�>��������?�@����v�w�����X�����+Æ�+Á�™�*¶�x+À�¶�x¶�z¬¬����=�������h��i��l�>��������?�@������}�~�������€
                                    \ No newline at end of file
                                    --- 16,21 ----
                                      ��y��9
                                      � �{�v�|�(Ljava/lang/String;)I�o�Ljava/lang/Object;�
                                      SourceFile�SerialFieldTagImpl.java�!������������	�����
                                    ! ����������
                                    �����������µ�����í*+·�*,µ�*´�Ç�	*µ�*´�Ç�	*µ�*´�Ç�	*µ�6+¶�:6§�46ª�����Ž������������G���s¸�%™�	6§�h*Y´�»�+Z_¸�-·�1¶�2¶�6µ�§�J¸�%™�	6§�<*Y´�»�+Z_¸�-·�1¶�2¶�6µ�§�*Y´�»�+Z_¸�-·�1¶�2¶�6µ�„¾¡ÿa**´�,-¶�:±����=���^����7��8�
                                    ! �:��;��<��=�$�>�+�?�1�A�4�B�:�C�@�D�G�E�d�G�r�H��I��K�ž�L�¹�M�¼�O�×�C�â�T�ì�V�>���R����í�?�@�����í�A�����í�
                                    �����í�B�C��4�¹�D�E��:�³�F�G��=�¥�H�E��G��I�J���K�L�����—�����5*·�M*´�*´�¶�OL*+¹�U�µ�[§�L²�]»�+Yc·�1+¶�e¶�6¶�h±�����m��=���"����Z��\��]��^��_�*�`�1�_�4�b�>��� ����5�?�@����
                                    �o�p����q�r����Z�����/�����*´�[°����=�������e�>��������?�@�����9�����/�����*´�°����=�������i�>��������?�@����	�9�����/�����*´�°����=�������m�>��������?�@����
                                    ! �9�����/�����*´�°����=�������q�>��������?�@����s�9�����-�����t°����=�������u�>��������?�@����v�w�����X�����+Æ�+Á�™�*¶�x+À�¶�x¶�z¬¬����=�������y��z��}�>��������?�@������}�~�������€
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,6 ****
                                      Êþº¾���1���4gnu/classpath/tools/gjdoc/SlashSlashCommentComponent��)gnu/classpath/tools/gjdoc/SourceComponent�<init>�()V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�6Lgnu/classpath/tools/gjdoc/SlashSlashCommentComponent;�match�([CI)I�source�[C�index�I�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������€����������
                                    �����������‹�����5`+¾¢�.+4/ �&+`4/ �„§�„+¾¢�+4
                                       ÿò¬¬����
                                    ! �������ƒ��„��…� �†�#�…�1�‡�3�Š���� ����5��
                                    �����5������5���������
                                    \ No newline at end of file
                                    --- 1,6 ----
                                      Êþº¾���1���4gnu/classpath/tools/gjdoc/SlashSlashCommentComponent��)gnu/classpath/tools/gjdoc/SourceComponent�<init>�()V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�6Lgnu/classpath/tools/gjdoc/SlashSlashCommentComponent;�match�([CI)I�source�[C�index�I�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������‘����������
                                    �����������‹�����5`+¾¢�.+4/ �&+`4/ �„§�„+¾¢�+4
                                       ÿò¬¬����
                                    ! �������”��•��–� �—�#�–�1�˜�3�›���� ����5��
                                    �����5������5���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      Exceptions��(gnu/classpath/tools/gjdoc/ParseException�process�)(Lgnu/classpath/tools/gjdoc/Parser;[CII)I��java/io/IOException�parser�"Lgnu/classpath/tools/gjdoc/Parser;�source�[C�
                                      startIndex�I�endIndex�getEndIndex�
                                      SourceFile�Parser.java ����������������/�����*·�±����
                                    ! �������,����������
                                    ����������������������������U�����¬����
                                    ! �������1����4������
                                    �����������������������������������������@�����¬����
                                    ! �������5���� ������
                                    �������������������� 
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      Exceptions��(gnu/classpath/tools/gjdoc/ParseException�process�)(Lgnu/classpath/tools/gjdoc/Parser;[CII)I��java/io/IOException�parser�"Lgnu/classpath/tools/gjdoc/Parser;�source�[C�
                                      startIndex�I�endIndex�getEndIndex�
                                      SourceFile�Parser.java ����������������/�����*·�±����
                                    ! �������=����������
                                    ����������������������������U�����¬����
                                    ! �������B����4������
                                    �����������������������������������������@�����¬����
                                    ! �������F���� ������
                                    �������������������� 
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 9,14 ****
                                      � �0���
                                      SourceFile�SourcePositionImpl.java�!������������	�
                                      �����
                                    ! ������
                                    �����l�����*·�*+µ�*µ�*µ�±�����������"��$�	�%��&��'����*������������������	�
                                      ������
                                    ! ���������/�����*´�°�����������+��������������	������/�����*´�¬�����������0��������������������/�����*´�¬�����������5��������������������H�����»� Y·�"*´�¶�#'¶�)*´�¶�,¶�/°�����������:��������������1����2
                                    \ No newline at end of file
                                    --- 9,14 ----
                                      � �0���
                                      SourceFile�SourcePositionImpl.java�!������������	�
                                      �����
                                    ! ������
                                    �����l�����*·�*+µ�*µ�*µ�±�����������3��5�	�6��7��8����*������������������	�
                                      ������
                                    ! ���������/�����*´�°�����������<��������������	������/�����*´�¬�����������A��������������������/�����*´�¬�����������F��������������������H�����»� Y·�"*´�¶�#'¶�)*´�¶�,¶�/°�����������K��������������1����2
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class	Tue Oct 12 15:55:12 2010
                                    *************** startIndex�I�endIndex�match�([CI
                                    *** 5,11 ****
                                      
                                      �"�$�#�java/lang/String�%�&�indexOf�(I)I�index�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! ���������������
                                    �����������^�����+¶�¬����
                                      ���
                                    ! ���ì�í����4������
                                    �����������������������������������ï�����+4{ �`¬`+¾¢�m+`4s �c+`4t �Y+`4a �O+`4t �E+`4i �;+`4c �1„§�„+¾¢�+4¶�!œÿï+¾¢�+4{ �`¬¬¬����
                                    ! ���6�
                                    ��ñ�ó�ô�õ�)ö�3÷�=ø�Gù�Qû�kþ�yÿ�}����� ������
                                    ������������'����(����)
                                    \ No newline at end of file
                                    --- 5,12 ----
                                      
                                      �"�$�#�java/lang/String�%�&�indexOf�(I)I�index�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! ������ø����������
                                    �����������^�����+¶�¬����
                                      ���
                                    ! ���ý�þ����4������
                                    �����������������������������������ï�����+4{ �`¬`+¾¢�m+`4s �c+`4t �Y+`4a �O+`4t �E+`4i �;+`4c �1„§�„+¾¢�+4¶�!œÿï+¾¢�+4{ �`¬¬¬����
                                    ! ���6�
                                    ������)�3�=	�G
                                    ! �Q�k�y�}����� ������
                                    ������������'����(����)
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 9,13 ****
                                      ��5��!
                                      �#�7�"�!�
                                      SourceFile�TagImpl.java�!������������	�������
                                    ! ������z�����*,·�
                                    *+µ�*+µ�*,-¶�±����������� ��!�
                                    ! �"��$��%����4������������	������������������� ����!�����/�����*´�°�����������'��������������	�!�����/�����*´�°�����������(��������������"�!�����H�����»�#Y*¶�%¸�'·�-.¶�0*¶�4¶�0¶�6°�����������)��������������8����9
                                    \ No newline at end of file
                                    --- 9,13 ----
                                      ��5��!
                                      �#�7�"�!�
                                      SourceFile�TagImpl.java�!������������	�������
                                    ! ������z�����*,·�
                                    *+µ�*+µ�*,-¶�±�����������1��2�
                                    ! �3��5��6����4������������	������������������� ����!�����/�����*´�°�����������8��������������	�!�����/�����*´�°�����������9��������������"�!�����H�����»�#Y*¶�%¸�'·�-.¶�0*¶�4¶�0¶�6°�����������:��������������8����9
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,8 ****
                                      �����()V	�����LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/gjdoc/TemporaryStore;�getAndClear�()Ljava/lang/Object;�rc�
                                      SourceFile�TemporaryStore.java�!����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±�����������[��\�	�]��������
                                      �������
                                    ! ��������	���H�����*´�
                                    L*µ�
                                    +°�����������o��p�
                                    ! �q�����������������������
                                    \ No newline at end of file
                                    --- 2,8 ----
                                      �����()V	�����LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/gjdoc/TemporaryStore;�getAndClear�()Ljava/lang/Object;�rc�
                                      SourceFile�TemporaryStore.java�!����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±�����������l��m�	�n��������
                                      �������
                                    ! ��������	���H�����*´�
                                    L*µ�
                                    +°�����������€���
                                    ! �‚�����������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** inlineTags�kind�()Ljava/lang/String;
                                    *** 6,9 ****
                                      ��(���getText�
                                      SourceFile�TextTagImpl.java�!�������������	���>�����*+·�
                                      ±�������
                                    ! �������
                                    ����������������������	���3�����	½�Y*S°����������� �
                                    �������	���������	���3�����	½�Y*S°�����������!�
                                    �������	���������	���-�����°�����������"�
                                    ����������������	���C�����»�Y·�*´�¶�!%¶�!¶�'°�����������$�
                                    �������������)���	���/�����*´�°�����������&�
                                    �������������*����+
                                    \ No newline at end of file
                                    --- 6,9 ----
                                      ��(���getText�
                                      SourceFile�TextTagImpl.java�!�������������	���>�����*+·�
                                      ±�������
                                    ! ����.��/�
                                    ����������������������	���3�����	½�Y*S°�����������1�
                                    �������	���������	���3�����	½�Y*S°�����������2�
                                    �������	���������	���-�����°�����������3�
                                    ����������������	���C�����»�Y·�*´�¶�!%¶�!¶�'°�����������5�
                                    �������������)���	���/�����*´�°�����������7�
                                    �������������*����+
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** startsWith�(Ljava/lang/String;)Z�H�
                                    *** 23,27 ****
                                      ��h�i�
                                    �setBody�LineNumberTable�LocalVariableTable�this�)Lgnu/classpath/tools/gjdoc/ThrowsTagImpl;�text�contextClass�(Lgnu/classpath/tools/gjdoc/ClassDocImpl;�
                                    contextMember�)Lgnu/classpath/tools/gjdoc/MemberDocImpl;�textarr�[C�i�I�()Lcom/sun/javadoc/ClassDoc;�kind�z�@throws�
                                      SourceFile�ThrowsTagImpl.java�!������������	�
                                      �����
                                    ! ������
                                    ����Õ����*+·�+¶�:6§�4¸�š�§�M„¾¡ÿê§�?4¸�™�1*»�Y·�¶�!µ�%*»�Y¾d·�¶�!µ�'§�„¾¡ÿ¿*´�%Æ�l,Ç�*¸�)*´�%¶�/µ�5§�*,*´�%¶�7µ�5*´�5Æ�**´�5¹�<�µ�%§�^+¶�!A¶�C™�R¸�)»�GYI·�K+¶�LP¶�L,¶�R¶�L¶�U¶�X§�-¸�)»�GY[·�K,¶�]¶�L^¶�L-¶�`¶�Le¶�L¶�U¶�X*´�'Æ�
                                    **´�',-¶�g±����j���b����$��&��'��(��)��(�*�+�-�,�8�-�K�.�c�/�f�+�q�2�x�3�|�4��7�™�9� �:�°�<�¼�=�á�B�D�E�G�k���>����l�m�����n�
                                    ! ����o�p����q�r���s�t���u�v����w�����/�����*´�5°����j�������J�k��������l�m����	�$�����/�����*´�%°����j�������N�k��������l�m�����$�����/�����*´�'°����j�������R�k��������l�m����x�$�����-�����y°����j�������V�k��������l�m����{����|
                                    \ No newline at end of file
                                    --- 23,27 ----
                                      ��h�i�
                                    �setBody�LineNumberTable�LocalVariableTable�this�)Lgnu/classpath/tools/gjdoc/ThrowsTagImpl;�text�contextClass�(Lgnu/classpath/tools/gjdoc/ClassDocImpl;�
                                    contextMember�)Lgnu/classpath/tools/gjdoc/MemberDocImpl;�textarr�[C�i�I�()Lcom/sun/javadoc/ClassDoc;�kind�z�@throws�
                                      SourceFile�ThrowsTagImpl.java�!������������	�
                                      �����
                                    ! ������
                                    ����Õ����*+·�+¶�:6§�4¸�š�§�M„¾¡ÿê§�?4¸�™�1*»�Y·�¶�!µ�%*»�Y¾d·�¶�!µ�'§�„¾¡ÿ¿*´�%Æ�l,Ç�*¸�)*´�%¶�/µ�5§�*,*´�%¶�7µ�5*´�5Æ�**´�5¹�<�µ�%§�^+¶�!A¶�C™�R¸�)»�GYI·�K+¶�LP¶�L,¶�R¶�L¶�U¶�X§�-¸�)»�GY[·�K,¶�]¶�L^¶�L-¶�`¶�Le¶�L¶�U¶�X*´�'Æ�
                                    **´�',-¶�g±����j���b����5��7��8��9��:��9�*�<�-�=�8�>�K�?�c�@�f�<�q�C�x�D�|�E��H�™�J� �K�°�M�¼�N�á�S�U�V�X�k���>����l�m�����n�
                                    ! ����o�p����q�r���s�t���u�v����w�����/�����*´�5°����j�������[�k��������l�m����	�$�����/�����*´�%°����j�������_�k��������l�m�����$�����/�����*´�'°����j�������c�k��������l�m����x�$�����-�����y°����j�������g�k��������l�m����{����|
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class	Tue Oct 12 15:55:12 2010
                                    *************** Timer.java�!������
                                    *** 29,36 ****
                                      �
                                      ����
                                      ��������
                                    �����1������
                                    �³��³�±�������
                                    ! ���������������
                                    �����/�����*·�±��������������������������
                                    ����ë����o²�	”š�±»�Y»�!Y#·�%·�(K*»�+Y-·�/²�0²�2eŠ�4o¶�6:¶�<¶�?¶�C*»�+YF·�/²�²�0eŠ�4o¶�6:¶�<¶�?¶�C*H¶�C*»�+YJ·�/²�L�Nm¶�PS¶�<¶�?¶�C*»�+YU·�/²�	”œ�W§�»�+Y²��Nm¸�Y·�/S¶�<¶�?¶�<¶�?¶�C*»�+Y_·�/²�	”œ�W§�»�+Y²��Nm¸�Y·�/S¶�<¶�?¶�<¶�?¶�C*H¶�C*»�+Ya·�/²�²�2eŠ�4o¶�6:¶�<¶�?¶�C*»�+Yc·�/²�	”œ�W§�"»�+Y²�²�¸�e�Nm¸�Y·�/S¶�<¶�?¶�<¶�?¶�C*¶�k§�K*¶�n±����i�o�	fi�o�����>���� �	�!��"�>�#�b�$�h�%�‡�&�À�'�ù�(�ÿ�)#�*b�+i�-j�.n�0������O�s�t��j��u�v���	�w�
                                    �����+������¸�x³�2±�������
                                    ! ����3��4�������	�~�
                                    �����+������¸�x³�±�������
                                    ! ����7��8�������	��
                                    �����?������¸�x³�0¸�€¶�†¸�€¶�‰e³�L±�����������;��<��=�������	�Œ������3�����³�±�������
                                    ! ����@��A���������Ž����	�������3�����³�±�������
                                    ! ����D��E���������Ž���������‘
                                    \ No newline at end of file
                                    --- 29,36 ----
                                      �
                                      ����
                                      ��������
                                    �����1������
                                    �³��³�±�������
                                    ! ����-��+���������
                                    �����/�����*·�±�����������+���������������
                                    ����ë����o²�	”š�±»�Y»�!Y#·�%·�(K*»�+Y-·�/²�0²�2eŠ�4o¶�6:¶�<¶�?¶�C*»�+YF·�/²�²�0eŠ�4o¶�6:¶�<¶�?¶�C*H¶�C*»�+YJ·�/²�L�Nm¶�PS¶�<¶�?¶�C*»�+YU·�/²�	”œ�W§�»�+Y²��Nm¸�Y·�/S¶�<¶�?¶�<¶�?¶�C*»�+Y_·�/²�	”œ�W§�»�+Y²��Nm¸�Y·�/S¶�<¶�?¶�<¶�?¶�C*H¶�C*»�+Ya·�/²�²�2eŠ�4o¶�6:¶�<¶�?¶�C*»�+Yc·�/²�	”œ�W§�"»�+Y²�²�¸�e�Nm¸�Y·�/S¶�<¶�?¶�<¶�?¶�C*¶�k§�K*¶�n±����i�o�	fi�o�����>����1�	�2��3�>�4�b�5�h�6�‡�7�À�8�ù�9�ÿ�:#�;b�<i�>j�?n�A������O�s�t��j��u�v���	�w�
                                    �����+������¸�x³�2±�������
                                    ! ����D��E�������	�~�
                                    �����+������¸�x³�±�������
                                    ! ����H��I�������	��
                                    �����?������¸�x³�0¸�€¶�†¸�€¶�‰e³�L±�����������L��M��N�������	�Œ������3�����³�±�������
                                    ! ����Q��R���������Ž����	�������3�����³�±�������
                                    ! ����U��V���������Ž���������‘
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class	Tue Oct 12 15:55:12 2010
                                    *************** freeMemory
                                    *** 12,17 ****
                                      ��1�2�3�access$0�()Z�5�java/lang/Exception�
                                      SourceFile�TimerDoclet.java�EnclosingMethod�:��init�InnerClasses� ����������������3�����*·�±����
                                      ���
                                    ! ����&������������
                                    ����������™�����7§�0YL¸�¸�¶�¸�¶�e¸�!¸�'+ç�+ÿ�+¸�-§�W¸�0šÿб��� �#���#�%�#���&�,�/�4��
                                    ! ���&�	���)��*��+��,��+��*�&�.�0�)�6�0��������7��
                                    ����6����7�8�����9�;���
                                      ��������
                                    \ No newline at end of file
                                    --- 12,17 ----
                                      ��1�2�3�access$0�()Z�5�java/lang/Exception�
                                      SourceFile�TimerDoclet.java�EnclosingMethod�:��init�InnerClasses� ����������������3�����*·�±����
                                      ���
                                    ! ����7������������
                                    ����������™�����7§�0YL¸�¸�¶�¸�¶�e¸�!¸�'+ç�+ÿ�+¸�-§�W¸�0šÿб��� �#���#�%�#���&�,�/�4��
                                    ! ���&�	���:��;��<��=��<��;�&�?�0�:�6�A��������7��
                                    ����6����7�8�����9�;���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�TimerDoclet.java�InnerCla
                                    *** 22,30 ****
                                      �����
                                      �	�
                                      ���
                                    ! �����	��
                                    ������;������³��³�³�±��������������
                                    ! �!����������������/�����*·�±������������������������
                                    ! ���� �����!����H������²�Ç�#¸�%¶�+³�»�/Y·�1³�2±�����������$��%��&��4�������	�4�5�� �����!����k�����3¸�6²�¶�8<½�&Y=SY?S¶�A½�Y*SY+S¶�EÀ�K¶�M¬�������
                                    ! ����9��:��������3�Q�>�����3�R�S��	�T�U�� �����!����X�����*¸�6²�¶�8V½�&YWS¶�A½�Y*S¶�EÀ�Y¶�[¬�������
                                    ! ����?��@��������*�_�`���	�a�b�� �����!����ç�����i¸�cYL²�¸�h�³�+ç�+ÿ*¹�l�*¸�q™�$²�¶�8s½�&YmS¶�A½�Y*S¶�EW³�¸�tYL²�¸�w+ç�+ÿ¸�z¬������������V�^�a���a�c�a�������:����D��E��F��G��E��L�)�M�J�O�N�P�Q�Q�V�R�\�Q�d�T�g�U��������i�}�~����P�����$������²�¬�����������!�������€������$������²�­������������������‚�k�����%�����³�±�������������������ƒ����„�…���
                                      ��/������
                                    \ No newline at end of file
                                    --- 22,30 ----
                                      �����
                                      �	�
                                      ���
                                    ! �����	��
                                    ������;������³��³�³�±�����������,��.�
                                    ! �2��*��������������/�����*·�±�����������*�������������
                                    ! ���� �����!����H������²�Ç�#¸�%¶�+³�»�/Y·�1³�2±�����������5��6��7��E�������	�4�5�� �����!����k�����3¸�6²�¶�8<½�&Y=SY?S¶�A½�Y*SY+S¶�EÀ�K¶�M¬�������
                                    ! ����J��K��������3�Q�>�����3�R�S��	�T�U�� �����!����X�����*¸�6²�¶�8V½�&YWS¶�A½�Y*S¶�EÀ�Y¶�[¬�������
                                    ! ����P��Q��������*�_�`���	�a�b�� �����!����ç�����i¸�cYL²�¸�h�³�+ç�+ÿ*¹�l�*¸�q™�$²�¶�8s½�&YmS¶�A½�Y*S¶�EW³�¸�tYL²�¸�w+ç�+ÿ¸�z¬������������V�^�a���a�c�a�������:����U��V��W��X��V��]�)�^�J�`�N�a�Q�b�V�c�\�b�d�e�g�f��������i�}�~����P�����$������²�¬�����������2�������€������$������²�­�����������.�������‚�k�����%�����³�±�����������.��������ƒ����„�…���
                                      ��/������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions�w�$java/lang/CloneNotSuppor
                                    *** 20,27 ****
                                      SourceFile�
                                    TypeImpl.java�!��������	�
                                      �����
                                      �����
                                    ! ����
                                    ������������ª�����X»�Y·�K*¹��W*¹��W*!¹��W*#¹��W*%¹��W*'¹��W*)¹��W*+¹��W*¸�-³�3±����5���.����H��I��J��K�#�L�,�M�5�N�>�O�G�P�P�Q�W��6������P�7�������8����������0*·�9*+µ�:*,µ�<*-µ�>,[¶�@œ�,]¶�@›�
                                    »�FYH·�J¿±����5�������"��#�	�$��%��'�%�(�/�*�6���*����0�M�N�����0�	�
                                      ����0��
                                      ����0��
                                    ! ���O�P�����F�����*Á�Q™�*À�QÀ�S¶�U°°����5�������.��/��1�6��������M�N�����X�����/�����*´�<°����5�������4�6��������M�N����Y�X�����V�����,*´�:Æ�#»�ZY*´�:¸�\·�`a¶�c*´�<¶�c¶�g§�*´�<°����5�������6�6�������,�M�N�����X�����/�����*´�>°����5�������8�6��������M�N����j�L�����:�����*+µ�>±����5�������9�6��������M�N�������
                                    ! ���i�X�����J����� »�ZYk·�`*¶�m¶�c*¶�o¶�cq¶�c¶�g°����5�������;�6������� �M�N����s�t��u�����v����/�����*·�x°����5�������>�6��������M�N����z�{�����D�����*´�:Ç�²�3*´�<¹�|�™�¬¬����5�������C�6��������M�N�����€�����@�����*Á�™�*À�°°����5�������V��W��Y�6��������M�N����ƒ����„
                                    \ No newline at end of file
                                    --- 20,27 ----
                                      SourceFile�
                                    TypeImpl.java�!��������	�
                                      �����
                                      �����
                                    ! ����
                                    ������������ª�����X»�Y·�K*¹��W*¹��W*!¹��W*#¹��W*%¹��W*'¹��W*)¹��W*+¹��W*¸�-³�3±����5���.����Y��Z��[��\�#�]�,�^�5�_�>�`�G�a�P�b�W�-�6������P�7�������8����������0*·�9*+µ�:*,µ�<*-µ�>,[¶�@œ�,]¶�@›�
                                    »�FYH·�J¿±����5�������3��4�	�5��6��8�%�9�/�;�6���*����0�M�N�����0�	�
                                      ����0��
                                      ����0��
                                    ! ���O�P�����F�����*Á�Q™�*À�QÀ�S¶�U°°����5�������?��@��B�6��������M�N�����X�����/�����*´�<°����5�������E�6��������M�N����Y�X�����V�����,*´�:Æ�#»�ZY*´�:¸�\·�`a¶�c*´�<¶�c¶�g§�*´�<°����5�������G�6�������,�M�N�����X�����/�����*´�>°����5�������I�6��������M�N����j�L�����:�����*+µ�>±����5�������J�6��������M�N�������
                                    ! ���i�X�����J����� »�ZYk·�`*¶�m¶�c*¶�o¶�cq¶�c¶�g°����5�������L�6������� �M�N����s�t��u�����v����/�����*·�x°����5�������O�6��������M�N����z�{�����D�����*´�:Ç�²�3*´�<¹�|�™�¬¬����5�������T�6��������M�N�����€�����@�����*Á�™�*À�°°����5�������g��h��j�6��������M�N����ƒ����„
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      	��-�	�
                                      �parsedBounds�Ljava/util/List;�()[Lcom/sun/javadoc/Type;�%()Lcom/sun/javadoc/ProgramElementDoc;�
                                      SourceFile�TypeVariableImpl.java�!���������	�
                                    ! ������������
                                    ������h�����*+,-·�*µ�±�����������7��8�
                                    �9����4�����������������������������������������O�����*++¹��½�%¹�'�À�+µ�,±�������
                                    ! ����B��C����������������.�/���	�0�����/�����*´�,°�����������L���������������1�����/�����*´�°�����������W��������������2����3
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      	��-�	�
                                      �parsedBounds�Ljava/util/List;�()[Lcom/sun/javadoc/Type;�%()Lcom/sun/javadoc/ProgramElementDoc;�
                                      SourceFile�TypeVariableImpl.java�!���������	�
                                    ! ������������
                                    ������h�����*+,-·�*µ�±�����������H��I�
                                    �J����4�����������������������������������������O�����*++¹��½�%¹�'�À�+µ�,±�������
                                    ! ����S��T����������������.�/���	�0�����/�����*´�,°�����������]���������������1�����/�����*´�°�����������h��������������2����3
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class	Tue Oct 12 15:55:12 2010
                                    *************** inlineTags	�����	reference
                                    *** 7,13 ****
                                      �)�,��-�(Ljava/lang/String;)V�
                                      SourceFile�ValueTagImpl.java�!���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������-�����°����
                                    ! �������!����������
                                    ����������/�����*¶�°����
                                    ! �������$����������
                                    ����������^�����,*´�Æ�#*´�¶�¶�#ž�½�'Y»�)Y*´�·�+S°½�'°����
                                    ! �������(��)�'�,��������,��
                                    ����.����/
                                    \ No newline at end of file
                                    --- 7,13 ----
                                      �)�,��-�(Ljava/lang/String;)V�
                                      SourceFile�ValueTagImpl.java�!���������������I�����*+,·�±����
                                      ���
                                    ! ����/��0���� ������
                                    ����������������������-�����°����
                                    ! �������2����������
                                    ����������/�����*¶�°����
                                    ! �������5����������
                                    ����������^�����,*´�Æ�#*´�¶�¶�#ž�½�'Y»�)Y*´�·�+S°½�'°����
                                    ! �������9��:�'�=��������,��
                                    ����.����/
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      
                                      ����java/lang/String���indexOf�(I)I�source�[C�index�I�rc�slen�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������A����������
                                    �����������†�����(>+¾6§�„¢�+4¶�œÿïŸ�§�¬����
                                    ! �������E��F��G��I����4����(��
                                    �����(������(�����&�����"���������
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      
                                      ����java/lang/String���indexOf�(I)I�source�[C�index�I�rc�slen�
                                      SourceFile�Parser.java� ����������������/�����*·�±����
                                    ! �������R����������
                                    �����������†�����(>+¾6§�„¢�+4¶�œÿïŸ�§�¬����
                                    ! �������V��W��X��Z����4����(��
                                    �����(������(�����&�����"���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions� �9gnu/classpath/tools/gjdo
                                    *** 13,21 ****
                                      ��S��T�›(Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;)Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�AdditionExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����')c¯����
                                    ! �������!���� ������
                                    ����������������������B�����#$b®����
                                    ! �������&���� ������
                                    ����������������������B�����!a­����
                                    ! �������+���� ������
                                    ����������������������B�����`¬����
                                    ! �������0���� ������
                                    ����������������������������»�����W*´�!+¹�#�M*´�'+¹�#�N²�),¶�/¥�
                                    ²�)-¶�/¦�)»�5Y»�7Y,¶�9¶�=¸�C·�I-¶�9¶�=¶�L¶�P·�Q°*,-·�R°����
                                    ! ���"����6��7��9� �:�*�<�?�=�L�<�P�@����*����W��
                                    �����W�U�V���L��W���A��W���X����Y
                                    \ No newline at end of file
                                    --- 13,21 ----
                                      ��S��T�›(Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;)Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�AdditionExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����')c¯����
                                    ! �������2���� ������
                                    ����������������������B�����#$b®����
                                    ! �������7���� ������
                                    ����������������������B�����!a­����
                                    ! �������<���� ������
                                    ����������������������B�����`¬����
                                    ! �������A���� ������
                                    ����������������������������»�����W*´�!+¹�#�M*´�'+¹�#�N²�),¶�/¥�
                                    ²�)-¶�/¦�)»�5Y»�7Y,¶�9¶�=¸�C·�I-¶�9¶�=¶�L¶�P·�Q°*,-·�R°����
                                    ! ���"����G��H��J� �K�*�M�?�N�L�M�P�Q����*����W��
                                    �����W�U�V���L��W���A��W���X����Y
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      rightValue�(II)I�I�
                                      SourceFile�AndExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����!­����
                                    ! �������!���� ������
                                    ����������������������B�����~¬����
                                    ! �������&���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      rightValue�(II)I�I�
                                      SourceFile�AndExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����!­����
                                    ! �������2���� ������
                                    ����������������������B�����~¬����
                                    ! �������7���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��9gnu/classpath/tools/gjdo
                                    *** 12,17 ****
                                      rightValue�
                                      SourceFile�BinaryBitwiseExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������������Ê�����^*´�+¹��M*´�+¹��N²�,¶�$¥�
                                    ²�-¶�$¦�»�*Y*,¶�,¶�0-¶�,¶�0¶�6·�:°»�=Y*,¶�,¶�?-¶�,¶�?¶�C·�F°����
                                      ���*�
                                    ! ���"��#��%� �&�*�(�6�)�=�(�D�,�P�-�W�,����*����^��
                                    �����^�I�J���S�K�L���H�M�L��8�9���8�E����N����O
                                    \ No newline at end of file
                                    --- 12,17 ----
                                      rightValue�
                                      SourceFile�BinaryBitwiseExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������������Ê�����^*´�+¹��M*´�+¹��N²�,¶�$¥�
                                    ²�-¶�$¦�»�*Y*,¶�,¶�0-¶�,¶�0¶�6·�:°»�=Y*,¶�,¶�?-¶�,¶�?¶�C·�F°����
                                      ���*�
                                    ! ���3��4��6� �7�*�9�6�:�=�9�D�=�P�>�W�=����*����^��
                                    �����^�I�J���S�K�L���H�M�L��8�9���8�E����N����O
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** floatValue�()F
                                    *** 26,32 ****
                                      ��x�
                                      SourceFile� BinaryComputationExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������������m�����*´�+¹��M*´�+¹��N*,-¶�°����
                                    ! �������"��#��%����*������
                                    ������!�"����#�$����%�$���� ����������c�����Ù²�&+¶�,¥�
                                    ²�&,¶�,¦�»�2Y*+¶�4¶�8,¶�4¶�8¶�>·�B°²�E+¶�,¥�
                                    ²�E,¶�,¦�»�HY*+¶�4¶�J,¶�4¶�J¶�N·�Q°²�T+¶�,¥�
                                    ²�T,¶�,¦�»�WY*+¶�4¶�Y,¶�4¶�Y¶�]·�`°+¶�c™�$,¶�c™�»�gY*+¶�4¶�i,¶�4¶�i¶�m·�p°»�Y»�sYu·�w+¶�,¶�z~¶�€,¶�,¶�z¶�ƒ·�‡¿����
                                    ! ���R����,�
                                    ! �-��/� �0�'�/�.�2�8�3�B�5�N�6�U�5�\�8�f�9�p�;�|�<�ƒ�;�Š�>�˜�?�¤�@�«�?�²�C���� ����Ù��
                                    �����Ù�#�$����Ù�%�$��@�A���@�P���@�_���@�o����ˆ����‰
                                    \ No newline at end of file
                                    --- 26,32 ----
                                      ��x�
                                      SourceFile� BinaryComputationExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������������m�����*´�+¹��M*´�+¹��N*,-¶�°����
                                    ! �������3��4��6����*������
                                    ������!�"����#�$����%�$���� ����������c�����Ù²�&+¶�,¥�
                                    ²�&,¶�,¦�»�2Y*+¶�4¶�8,¶�4¶�8¶�>·�B°²�E+¶�,¥�
                                    ²�E,¶�,¦�»�HY*+¶�4¶�J,¶�4¶�J¶�N·�Q°²�T+¶�,¥�
                                    ²�T,¶�,¦�»�WY*+¶�4¶�Y,¶�4¶�Y¶�]·�`°+¶�c™�$,¶�c™�»�gY*+¶�4¶�i,¶�4¶�i¶�m·�p°»�Y»�sYu·�w+¶�,¶�z~¶�€,¶�,¶�z¶�ƒ·�‡¿����
                                    ! ���R����=�
                                    ! �>��@� �A�'�@�.�C�8�D�B�F�N�G�U�F�\�I�f�J�p�L�|�M�ƒ�L�Š�O�˜�P�¤�Q�«�P�²�T���� ����Ù��
                                    �����Ù�#�$����Ù�%�$��@�A���@�P���@�_���@�o����ˆ����‰
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** floatValue�()F
                                    *** 18,22 ****
                                      rightValue�
                                      SourceFile�BinaryEqualityExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ��������������������������������è*´�+¹��M*´�+¹��N²�,¶�$¥�
                                    ²�-¶�$¦�»�*Y*,¶�,¶�0-¶�,¶�0¶�6·�:°²�=,¶�$¥�
                                    ²�=-¶�$¦�»�*Y*,¶�,¶�@-¶�,¶�@¶�D·�:°²�G,¶�$¥�
                                    ²�G-¶�$¦�»�*Y*,¶�,¶�J-¶�,¶�J¶�N·�:°²�Q,¶�$¦�'²�Q-¶�$¦�»�*Y*,À�*¶�T-À�*¶�T¶�X·�:°»�*Y*,¶�,¶�[-¶�,¶�[¶�_·�:°����
                                    ! ���f����"��#��%� �&�*�(�6�)�=�(�D�+�N�,�X�.�d�/�k�.�r�1�|�2�†�4�’�5�™�4� �7�ª�8�´�:�À�;�Ç�:�Î�>�Ú�?�á�>����*����è��
                                    �����è�b�c���Ý�d�e���Ò�f�e��8�9���8�F���8�P���8�a���8�Z����g����h
                                    \ No newline at end of file
                                    --- 18,22 ----
                                      rightValue�
                                      SourceFile�BinaryEqualityExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ��������������������������������è*´�+¹��M*´�+¹��N²�,¶�$¥�
                                    ²�-¶�$¦�»�*Y*,¶�,¶�0-¶�,¶�0¶�6·�:°²�=,¶�$¥�
                                    ²�=-¶�$¦�»�*Y*,¶�,¶�@-¶�,¶�@¶�D·�:°²�G,¶�$¥�
                                    ²�G-¶�$¦�»�*Y*,¶�,¶�J-¶�,¶�J¶�N·�:°²�Q,¶�$¦�'²�Q-¶�$¦�»�*Y*,À�*¶�T-À�*¶�T¶�X·�:°»�*Y*,¶�,¶�[-¶�,¶�[¶�_·�:°����
                                    ! ���f����3��4��6� �7�*�9�6�:�=�9�D�<�N�=�X�?�d�@�k�?�r�B�|�C�†�E�’�F�™�E� �H�ª�I�´�K�À�L�Ç�K�Î�O�Ú�P�á�O����*����è��
                                    �����è�b�c���Ý�d�e���Ò�f�e��8�9���8�F���8�P���8�a���8�Z����g����h
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,5 ****
                                      ���
                                      ��()V	����	���	��LineNumberTable�LocalVariableTable�this�1Lgnu/classpath/tools/gjdoc/expr/BinaryExpression;�
                                      SourceFile�BinaryExpression.java ������������	������
                                    ! ������Y�����*·�
                                    *+µ�*,µ�±��������������	� ��!���� ������������������	��������
                                    \ No newline at end of file
                                    --- 2,5 ----
                                      ���
                                      ��()V	����	���	��LineNumberTable�LocalVariableTable�this�1Lgnu/classpath/tools/gjdoc/expr/BinaryExpression;�
                                      SourceFile�BinaryExpression.java ������������	������
                                    ! ������Y�����*·�
                                    *+µ�*,µ�±�����������.��0�	�1��2���� ������������������	��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��9gnu/classpath/tools/gjdo
                                    *** 9,13 ****
                                      rightValue�
                                      SourceFile�BinaryLogicalExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������������®�����N*´�+¹��M*´�+¹��N,¶�²�$¦�
                                    -¶�²�$¥�
                                    »�Y*·�,¿»�/Y*,À�/¶�1-À�/¶�1¶�5·�9°����
                                    ! �������"��#��%�*�&�4�)�@�*�G�)����*����N��
                                    �����N�<�=���C�>�?���8�@�?��7�8����A����B
                                    \ No newline at end of file
                                    --- 9,13 ----
                                      rightValue�
                                      SourceFile�BinaryLogicalExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������������®�����N*´�+¹��M*´�+¹��N,¶�²�$¦�
                                    -¶�²�$¥�
                                    »�Y*·�,¿»�/Y*,À�/¶�1-À�/¶�1¶�5·�9°����
                                    ! �������3��4��6�*�7�4�:�@�;�G�:����*����N��
                                    �����N�<�=���C�>�?���8�@�?��7�8����A����B
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** floatValue�()F
                                    *** 16,20 ****
                                      rightValue�
                                      SourceFile�BinaryRelationExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ���������������������������N�����º*´�+¹��M*´�+¹��N²�,¶�$¥�
                                    ²�-¶�$¦�»�*Y*,¶�,¶�0-¶�,¶�0¶�6·�:°²�=,¶�$¥�
                                    ²�=-¶�$¦�»�*Y*,¶�,¶�@-¶�,¶�@¶�D·�:°²�G,¶�$¥�
                                    ²�G-¶�$¦�»�*Y*,¶�,¶�J-¶�,¶�J¶�N·�:°»�*Y*,¶�,¶�Q-¶�,¶�Q¶�U·�:°����
                                    ! ���R����"��#��%� �&�*�(�6�)�=�(�D�+�N�,�X�.�d�/�k�.�r�1�|�2�†�4�’�5�™�4� �8�¬�9�³�8����*����º��
                                    �����º�X�Y���¯�Z�[���¤�\�[��8�9���8�F���8�P���8�W����]����^
                                    \ No newline at end of file
                                    --- 16,20 ----
                                      rightValue�
                                      SourceFile�BinaryRelationExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ���������������������������N�����º*´�+¹��M*´�+¹��N²�,¶�$¥�
                                    ²�-¶�$¦�»�*Y*,¶�,¶�0-¶�,¶�0¶�6·�:°²�=,¶�$¥�
                                    ²�=-¶�$¦�»�*Y*,¶�,¶�@-¶�,¶�@¶�D·�:°²�G,¶�$¥�
                                    ²�G-¶�$¦�»�*Y*,¶�,¶�J-¶�,¶�J¶�N·�:°»�*Y*,¶�,¶�Q-¶�,¶�Q¶�U·�:°����
                                    ! ���R����3��4��6� �7�*�9�6�:�=�9�D�<�N�=�X�?�d�@�k�?�r�B�|�C�†�E�’�F�™�E� �I�¬�J�³�I����*����º��
                                    �����º�X�Y���¯�Z�[���¤�\�[��8�9���8�F���8�P���8�W����]����^
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��9gnu/classpath/tools/gjdo
                                    *** 12,16 ****
                                      rightValue�
                                      SourceFile�BinaryShiftExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������������¼�����T*´�+¹��M*´�+¹��N²�,¶�$¦�»�*Y*,¶�,¶�0-¶�,¶�6¶�:·�>°»�AY*,¶�,¶�6-¶�,¶�6¶�C·�F°����
                                    ! ���&�	���"��#��%� �&�,�'�3�&�:�*�F�+�M�*����*����T��
                                    �����T�I�J���I�K�L���>�M�L��<�=���<�E����N����O
                                    \ No newline at end of file
                                    --- 12,16 ----
                                      rightValue�
                                      SourceFile�BinaryShiftExpression.java ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������������¼�����T*´�+¹��M*´�+¹��N²�,¶�$¦�»�*Y*,¶�,¶�0-¶�,¶�6¶�:·�>°»�AY*,¶�,¶�6-¶�,¶�6¶�C·�F°����
                                    ! ���&�	���3��4��6� �7�,�8�3�7�:�;�F�<�M�;����*����T��
                                    �����T�I�J���I�K�L���>�M�L��<�=���<�E����N����O
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      rightValue�I�(II)I�
                                      SourceFile�BitShiftRightExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����}­����
                                    ! �������!���� ������
                                    ����������������������B�����|¬����
                                    ! �������&���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      rightValue�I�(II)I�
                                      SourceFile�BitShiftRightExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����}­����
                                    ! �������2���� ������
                                    ����������������������B�����|¬����
                                    ! �������7���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      �����cause�Ljava/lang/Throwable;�
                                      SourceFile� CircularExpressionException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����������������
                                    ����������������>�����*+·�±����
                                      ���
                                    ! ����!��"����������
                                    ��������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      �����cause�Ljava/lang/Throwable;�
                                      SourceFile� CircularExpressionException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����-��.����������
                                    ����������������>�����*+·�±����
                                      ���
                                    ! ����2��3����������
                                    ��������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��9gnu/classpath/tools/gjdo
                                    *** 6,11 ****
                                      ��1��2�(Ljava/lang/String;)V�4�.gnu/classpath/tools/gjdoc/expr/ConstantBoolean
                                      �3�6�7�8�booleanValue�()Z�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�conditionValue�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�ifTrueValue�ifFalseValue�cond�Z�
                                      SourceFile�ConditionalExpression.java� ������������	�����
                                    ! ����������
                                    ���l�����*·�*+µ�*,µ�*-µ�±������������� �	�!��"��#����*������������������	������
                                    ! �������������
                                    ���Å�����I*´�+¹� �M*´�+¹� �N*´�+¹� �:²�",¶�(¥�
                                    »�Y.·�0¿,À�3¶�56™�-°°�������&�	���(��)��*�"�,�,�-�6�0�?�1�D�2�F�5����>����I�������I�9�:���>�;�<���3�=�<��"�'�>�<��?�
                                      �?�@���A����B
                                    \ No newline at end of file
                                    --- 6,11 ----
                                      ��1��2�(Ljava/lang/String;)V�4�.gnu/classpath/tools/gjdoc/expr/ConstantBoolean
                                      �3�6�7�8�booleanValue�()Z�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�conditionValue�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�ifTrueValue�ifFalseValue�cond�Z�
                                      SourceFile�ConditionalExpression.java� ������������	�����
                                    ! ����������
                                    ���l�����*·�*+µ�*,µ�*-µ�±�����������/��1�	�2��3��4����*������������������	������
                                    ! �������������
                                    ���Å�����I*´�+¹� �M*´�+¹� �N*´�+¹� �:²�",¶�(¥�
                                    »�Y.·�0¿,À�3¶�56™�-°°�������&�	���9��:��;�"�=�,�>�6�A�?�B�D�C�F�F����>����I�������I�9�:���>�;�<���3�=�<��"�'�>�<��?�
                                      �?�@���A����B
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 4,11 ****
                                      �-�0���toString�()Ljava/lang/String;
                                      �-�4�1�5�(Z)Ljava/lang/String;�
                                      SourceFile�ConstantBoolean.java� ����������������	���K�����*·�
                                    ! *
                                    +¶�µ�±��������������������������������������	���F�����
                                      *·�
                                    ! *µ�±�����������!��#�	�$��������
                                      �������
                                    ! ��������	���/�����*´�¬�����������(�������������� �!��	���.�����²�"°�����������-��������������(�)��	���,�����°�����������2��������������*���	���,�����¬�����������7��������������+�,��	���6�����»�-Y*´�·�/°�����������<��������������1�2��	���2�����*´�¸�3°�����������A��������������6����7
                                    \ No newline at end of file
                                    --- 4,11 ----
                                      �-�0���toString�()Ljava/lang/String;
                                      �-�4�1�5�(Z)Ljava/lang/String;�
                                      SourceFile�ConstantBoolean.java� ����������������	���K�����*·�
                                    ! *
                                    +¶�µ�±�����������-��/��0�����������������������	���F�����
                                      *·�
                                    ! *µ�±�����������2��4�	�5��������
                                      �������
                                    ! ��������	���/�����*´�¬�����������9�������������� �!��	���.�����²�"°�����������>��������������(�)��	���,�����°�����������C��������������*���	���,�����¬�����������H��������������+�,��	���6�����»�-Y*´�·�/°�����������M��������������1�2��	���2�����*´�¸�3°�����������R��������������6����7
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 5,10 ****
                                      ��+�(�,�(B)Ljava/lang/String;�
                                      SourceFile�ConstantByte.java� ����������������	���F�����
                                      *·�
                                    ! *µ�
                                    ±��������������	���������
                                      �������
                                    ! ��������	���.�����²�°�����������#�����������������	���6�����»�Y*´�
                                    ·� °�����������(��������������"�#��	���,�����¬�����������-��������������$�%��	���/�����*¶�&°�����������2��������������(�)��	���2�����*´�
                                    ¸�*°�����������7��������������-����.
                                    \ No newline at end of file
                                    --- 5,10 ----
                                      ��+�(�,�(B)Ljava/lang/String;�
                                      SourceFile�ConstantByte.java� ����������������	���F�����
                                      *·�
                                    ! *µ�
                                    ±�����������-��/�	�0��������
                                      �������
                                    ! ��������	���.�����²�°�����������4�����������������	���6�����»�Y*´�
                                    ·� °�����������9��������������"�#��	���,�����¬�����������>��������������$�%��	���/�����*¶�&°�����������C��������������(�)��	���2�����*´�
                                    ¸�*°�����������H��������������-����.
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 9,16 ****
                                      �;�D�A�E�(C)Ljava/lang/String;�
                                      SourceFile�ConstantChar.java� ����������������	�������™*·�
                                      *+¶�
                                    µ�*´�\ �…+¶�
                                    «���}������b���]���f���K���n���9���r���T���t���B���u���f*
                                    ! µ�§�>*	µ�§�5*µ�§�,*
                                    µ�§�#*µ�§�++¶�d¶�M*,¸�’µ�±����#���2�������
                                    ��� �T�!�]�"�f�#�o�$�x�%��(��.�˜�2�$��� ����™�%�&�����™�'�(����)�(����*��	���F�����
                                      *·�
                                    ! *µ�±����#�������4��6�	�7�$�������
                                      �%�&�����
                                    ! �+����,�-��	���.�����²�.°����#�������;�$��������%�&����4�5��	���6�����»�Y*´�·�6°����#�������@�$��������%�&����9�:��	���6�����»�;Y*´�·�=°����#�������E�$��������%�&����?�@��	���,�����¬����#�������J�$��������%�&����A�B��	���2�����*´�¸�C°����#�������O�$��������%�&����F����G
                                    \ No newline at end of file
                                    --- 9,16 ----
                                      �;�D�A�E�(C)Ljava/lang/String;�
                                      SourceFile�ConstantChar.java� ����������������	�������™*·�
                                      *+¶�
                                    µ�*´�\ �…+¶�
                                    «���}������b���]���f���K���n���9���r���T���t���B���u���f*
                                    ! µ�§�>*	µ�§�5*µ�§�,*
                                    µ�§�#*µ�§�++¶�d¶�M*,¸�’µ�±����#���2����-��/�
                                    �0��1�T�2�]�3�f�4�o�5�x�6��9��?�˜�C�$��� ����™�%�&�����™�'�(����)�(����*��	���F�����
                                      *·�
                                    ! *µ�±����#�������E��G�	�H�$�������
                                      �%�&�����
                                    ! �+����,�-��	���.�����²�.°����#�������L�$��������%�&����4�5��	���6�����»�Y*´�·�6°����#�������Q�$��������%�&����9�:��	���6�����»�;Y*´�·�=°����#�������V�$��������%�&����?�@��	���,�����¬����#�������[�$��������%�&����A�B��	���2�����*´�¸�C°����#�������`�$��������%�&����F����G
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 5,12 ****
                                      ��.�%�&�toString�()Ljava/lang/String;
                                      ��2�/�3�(D)Ljava/lang/String;�
                                      SourceFile�ConstantDouble.java� ����������������	���I�����
                                    *·�
                                    ! *+¸�
                                    µ�±�����������������������
                                    �������
                                    ��������	���F�����
                                      *·�
                                    ! *'µ�±�����������!��#�	�$��������
                                      �������
                                    ! ��������	���.�����²�°�����������(��������������%�&��	���6�����»�Y*´�·�'°�����������-��������������)�*��	���,�����¬�����������2��������������+�,��	���/�����*¶�-°�����������7��������������/�0��	���2�����*´�¸�1°�����������<��������������4����5
                                    \ No newline at end of file
                                    --- 5,12 ----
                                      ��.�%�&�toString�()Ljava/lang/String;
                                      ��2�/�3�(D)Ljava/lang/String;�
                                      SourceFile�ConstantDouble.java� ����������������	���I�����
                                    *·�
                                    ! *+¸�
                                    µ�±�����������-��/��0��������
                                    �������
                                    ��������	���F�����
                                      *·�
                                    ! *'µ�±�����������2��4�	�5��������
                                      �������
                                    ! ��������	���.�����²�°�����������9��������������%�&��	���6�����»�Y*´�·�'°�����������>��������������)�*��	���,�����¬�����������C��������������+�,��	���/�����*¶�-°�����������H��������������/�0��	���2�����*´�¸�1°�����������M��������������4����5
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                      Êþº¾���1���1gnu/classpath/tools/gjdoc/expr/ConstantExpression��java/lang/Object��)gnu/classpath/tools/gjdoc/expr/Expression�<init>�()V�Code
                                      �����LineNumberTable�LocalVariableTable�this�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�getType�'()Lgnu/classpath/tools/gjdoc/expr/Type;�asNumber�()Ljava/lang/Number;�asObject�()Ljava/lang/Object;�isNumber�()Z�evaluate�](Lgnu/classpath/tools/gjdoc/expr/Context;)Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�
                                      SourceFile�ConstantExpression.java �������������	���/�����*·�
                                    ! ±������������
                                    ��������������������������������	���6�����*°�����������!�
                                    �����������������������
                                    \ No newline at end of file
                                    --- 1,4 ----
                                      Êþº¾���1���1gnu/classpath/tools/gjdoc/expr/ConstantExpression��java/lang/Object��)gnu/classpath/tools/gjdoc/expr/Expression�<init>�()V�Code
                                      �����LineNumberTable�LocalVariableTable�this�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�getType�'()Lgnu/classpath/tools/gjdoc/expr/Type;�asNumber�()Ljava/lang/Number;�asObject�()Ljava/lang/Object;�isNumber�()Z�evaluate�](Lgnu/classpath/tools/gjdoc/expr/Context;)Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�
                                      SourceFile�ConstantExpression.java �������������	���/�����*·�
                                    ! ±�����������(�
                                    ��������������������������������	���6�����*°�����������2�
                                    �����������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class	Tue Oct 12 15:55:12 2010
                                    *************** floatValue�getType�'()Lgnu/classpath/
                                    *** 10,17 ****
                                      �1�>�9�?�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                      �1�A�/�0�
                                      SourceFile�ConstantFloat.java� ����������������	���I�����
                                    *·�
                                    ! *+¸�
                                    µ�±�����������������������
                                    �������
                                    ��������	���F�����
                                      *·�
                                    ! *#µ�±�����������!��#�	�$��������
                                      �������
                                    ! ��������	���.�����²�°�����������(��������������%�&��	���6�����»�Y*´�·�'°�����������-��������������)�*��	���,�����¬�����������2��������������+�,��	���/�����*¶�-°�����������7��������������/�0��	���C�����»�1Y3·�5*´�¶�7;¶�=¶�@°�����������<��������������B����C
                                    \ No newline at end of file
                                    --- 10,17 ----
                                      �1�>�9�?�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                      �1�A�/�0�
                                      SourceFile�ConstantFloat.java� ����������������	���I�����
                                    *·�
                                    ! *+¸�
                                    µ�±�����������-��/��0��������
                                    �������
                                    ��������	���F�����
                                      *·�
                                    ! *#µ�±�����������2��4�	�5��������
                                      �������
                                    ! ��������	���.�����²�°�����������9��������������%�&��	���6�����»�Y*´�·�'°�����������>��������������)�*��	���,�����¬�����������C��������������+�,��	���/�����*¶�-°�����������H��������������/�0��	���C�����»�1Y3·�5*´�¶�7;¶�=¶�@°�����������M��������������B����C
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 5,10 ****
                                      �1�4���toString�()Ljava/lang/String;
                                      �(�8�5�9�(J)Ljava/lang/String;�
                                      SourceFile�ConstantInteger.java� ����������������	���I�����
                                    *·�
                                    ! *+¸�
                                    µ�±�����������������������
                                    �������
                                    ��������	���G�����*·�
                                    ! *…µ�±�����������!��#�
                                    ! �$�����������������������	���.�����²� °�����������(��������������&�'��	���6�����»�(Y*´�·�*°�����������-��������������-�.��	���,�����¬�����������2��������������/�0��	���7�����
                                    »�1Y*´�ˆ·�3°�����������7��������
                                    ������5�6��	���2�����*´�¸�7°�����������<��������������:����;
                                    \ No newline at end of file
                                    --- 5,10 ----
                                      �1�4���toString�()Ljava/lang/String;
                                      �(�8�5�9�(J)Ljava/lang/String;�
                                      SourceFile�ConstantInteger.java� ����������������	���I�����
                                    *·�
                                    ! *+¸�
                                    µ�±�����������-��/��0��������
                                    �������
                                    ��������	���G�����*·�
                                    ! *…µ�±�����������2��4�
                                    ! �5�����������������������	���.�����²� °�����������9��������������&�'��	���6�����»�(Y*´�·�*°�����������>��������������-�.��	���,�����¬�����������C��������������/�0��	���7�����
                                    »�1Y*´�ˆ·�3°�����������H��������
                                    ������5�6��	���2�����*´�¸�7°�����������M��������������:����;
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 10,17 ****
                                      ��H�=�>�toString�()Ljava/lang/String;
                                      �?�L�I�M�(J)Ljava/lang/String;�
                                      SourceFile�ConstantLong.java� ����������������	���ƒ�����?*·�
                                    ! l++¶�
                                    d¶�¸� �*++¶�
                                    d¶�¸�!µ�'§�*++¶�
                                    d¶�¸�)…µ�'±����-������������+�"�>�$�.�������?�/�0�����?�1�2����3��	���F�����
                                      *·�
                                    ! *µ�'±����-�������&��(�	�)�.�������
                                      �/�0�����
                                    ! �4����5�6��	���.�����²�7°����-�������-�.��������/�0����=�>��	���6�����»�?Y*´�'·�A°����-�������2�.��������/�0����C�D��	���,�����¬����-�������7�.��������/�0����E�F��	���/�����*¶�G°����-�������<�.��������/�0����I�J��	���2�����*´�'¸�K°����-�������A�.��������/�0����N����O
                                    \ No newline at end of file
                                    --- 10,17 ----
                                      ��H�=�>�toString�()Ljava/lang/String;
                                      �?�L�I�M�(J)Ljava/lang/String;�
                                      SourceFile�ConstantLong.java� ����������������	���ƒ�����?*·�
                                    ! l++¶�
                                    d¶�¸� �*++¶�
                                    d¶�¸�!µ�'§�*++¶�
                                    d¶�¸�)…µ�'±����-�������-��/��0�+�3�>�5�.�������?�/�0�����?�1�2����3��	���F�����
                                      *·�
                                    ! *µ�'±����-�������7��9�	�:�.�������
                                      �/�0�����
                                    ! �4����5�6��	���.�����²�7°����-�������>�.��������/�0����=�>��	���6�����»�?Y*´�'·�A°����-�������C�.��������/�0����C�D��	���,�����¬����-�������H�.��������/�0����E�F��	���/�����*¶�G°����-�������M�.��������/�0����I�J��	���2�����*´�'¸�K°����-�������R�.��������/�0����N����O
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,9 ****
                                      ��	���LineNumberTable�LocalVariableTable�this�-Lgnu/classpath/tools/gjdoc/expr/ConstantNull;�getType�'()Lgnu/classpath/tools/gjdoc/expr/Type;	����#gnu/classpath/tools/gjdoc/expr/Type���NULL�%Lgnu/classpath/tools/gjdoc/expr/Type;�asNumber�()Ljava/lang/Number;�isNumber�()Z�asObject�()Ljava/lang/Object;�
                                      SourceFile�ConstantNull.java� ���������������3�����*·�±����
                                      ���
                                    ! ����������������
                                    ����������.�����²�°����
                                    ! ������� ����������
                                    ����������,�����°����
                                    ! �������%����������
                                    ����������,�����¬����
                                    ! �������*����������
                                    ����������,�����°����
                                    ! �������/����������
                                    ��������
                                    \ No newline at end of file
                                    --- 2,9 ----
                                      ��	���LineNumberTable�LocalVariableTable�this�-Lgnu/classpath/tools/gjdoc/expr/ConstantNull;�getType�'()Lgnu/classpath/tools/gjdoc/expr/Type;	����#gnu/classpath/tools/gjdoc/expr/Type���NULL�%Lgnu/classpath/tools/gjdoc/expr/Type;�asNumber�()Ljava/lang/Number;�isNumber�()Z�asObject�()Ljava/lang/Object;�
                                      SourceFile�ConstantNull.java� ���������������3�����*·�±����
                                      ���
                                    ! ����+��-����������
                                    ����������.�����²�°����
                                    ! �������1����������
                                    ����������,�����°����
                                    ! �������6����������
                                    ����������,�����¬����
                                    ! �������;����������
                                    ����������,�����°����
                                    ! �������@����������
                                    ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class	Tue Oct 12 15:55:12 2010
                                    *************** shortValue�getType�'()Lgnu/classpath/
                                    *** 6,11 ****
                                      ��+�(�,�(S)Ljava/lang/String;�
                                      SourceFile�ConstantShort.java� ����������������	���F�����
                                      *·�
                                    ! *µ�
                                    ±��������������	���������
                                      �������
                                    ! ��������	���.�����²�°�����������#�����������������	���6�����»�Y*´�
                                    ·� °�����������(��������������"�#��	���,�����¬�����������-��������������$�%��	���/�����*¶�&°�����������2��������������(�)��	���2�����*´�
                                    ¸�*°�����������7��������������-����.
                                    \ No newline at end of file
                                    --- 6,11 ----
                                      ��+�(�,�(S)Ljava/lang/String;�
                                      SourceFile�ConstantShort.java� ����������������	���F�����
                                      *·�
                                    ! *µ�
                                    ±�����������-��/�	�0��������
                                      �������
                                    ! ��������	���.�����²�°�����������4�����������������	���6�����»�Y*´�
                                    ·� °�����������9��������������"�#��	���,�����¬�����������>��������������$�%��	���/�����*¶�&°�����������C��������������(�)��	���2�����*´�
                                    ¸�*°�����������H��������������-����.
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,7 ****
                                      �����()V	�����LineNumberTable�LocalVariableTable�this�/Lgnu/classpath/tools/gjdoc/expr/ConstantString;�getType�'()Lgnu/classpath/tools/gjdoc/expr/Type;	����#gnu/classpath/tools/gjdoc/expr/Type���STRING�%Lgnu/classpath/tools/gjdoc/expr/Type;�asNumber�()Ljava/lang/Number;�isNumber�()Z�asObject�()Ljava/lang/Object;�toString�()Ljava/lang/String;�
                                      SourceFile�ConstantString.java� ����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±��������������	���������
                                      �������
                                    ! ��������	���.�����²�°�����������#�����������������	���,�����°�����������(�����������������	���,�����¬�����������-��������������� ��	���/�����*´�
                                    °�����������2��������������!�"��	���/�����*´�
                                    °�����������7��������������#����$
                                    \ No newline at end of file
                                    --- 2,7 ----
                                      �����()V	�����LineNumberTable�LocalVariableTable�this�/Lgnu/classpath/tools/gjdoc/expr/ConstantString;�getType�'()Lgnu/classpath/tools/gjdoc/expr/Type;	����#gnu/classpath/tools/gjdoc/expr/Type���STRING�%Lgnu/classpath/tools/gjdoc/expr/Type;�asNumber�()Ljava/lang/Number;�isNumber�()Z�asObject�()Ljava/lang/Object;�toString�()Ljava/lang/String;�
                                      SourceFile�ConstantString.java� ����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±�����������-��/�	�0��������
                                      �������
                                    ! ��������	���.�����²�°�����������4�����������������	���,�����°�����������9�����������������	���,�����¬�����������>��������������� ��	���/�����*´�
                                    °�����������C��������������!�"��	���/�����*´�
                                    °�����������H��������������#����$
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                      Êþº¾���1���&gnu/classpath/tools/gjdoc/expr/Context��java/lang/Object�evaluatorEnvironment�5Lgnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment;�
                                    visitedFields�Ljava/util/Set;�<init>�G(Lgnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment;Ljava/util/Set;)V�Code
                                      ��
                                    �	��()V	����	�����LineNumberTable�LocalVariableTable�this�(Lgnu/classpath/tools/gjdoc/expr/Context;�getEvaluatorEnvironment�7()Lgnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment;�getVisitedFields�()Ljava/util/Set;�
                                      SourceFile�Context.java� �������������������	�
                                    ! �����Y�����*·�*+µ�*,µ�±������������� �	�!��"���� ����������������������������/�����*´�°�����������&��������������������/�����*´�°�����������+������������������
                                    \ No newline at end of file
                                    --- 1,4 ----
                                      Êþº¾���1���&gnu/classpath/tools/gjdoc/expr/Context��java/lang/Object�evaluatorEnvironment�5Lgnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment;�
                                    visitedFields�Ljava/util/Set;�<init>�G(Lgnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment;Ljava/util/Set;)V�Code
                                      ��
                                    �	��()V	����	�����LineNumberTable�LocalVariableTable�this�(Lgnu/classpath/tools/gjdoc/expr/Context;�getEvaluatorEnvironment�7()Lgnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment;�getVisitedFields�()Ljava/util/Set;�
                                      SourceFile�Context.java� �������������������	�
                                    ! �����Y�����*·�*+µ�*,µ�±�����������/��1�	�2��3���� ����������������������������/�����*´�°�����������7��������������������/�����*´�°�����������<������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,10 ****
                                      rightValue�(FF)F�F�(JJ)J�J�(II)I�I�
                                      SourceFile�DivisionExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����')o¯����
                                    ! �������!���� ������
                                    ����������������������B�����#$n®����
                                    ! �������&���� ������
                                    ����������������������B�����!m­����
                                    ! �������+���� ������
                                    ����������������������B�����l¬����
                                    ! �������0���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,10 ----
                                      rightValue�(FF)F�F�(JJ)J�J�(II)I�I�
                                      SourceFile�DivisionExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����')o¯����
                                    ! �������2���� ������
                                    ����������������������B�����#$n®����
                                    ! �������7���� ������
                                    ����������������������B�����!m­����
                                    ! �������<���� ������
                                    ����������������������B�����l¬����
                                    ! �������A���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,23 ****
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�(ZZ)Z�Z�
                                      SourceFile�EqualExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������H�����
                                      ')—š�¬¬����
                                    ! �������!���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$•š�¬¬����
                                    ! �������&���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”š�¬¬����
                                    ! �������+���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	 �¬¬����
                                    ! �������0���� ����	��
                                    �����	������	�����������G�����	 �¬¬����
                                    ! �������5���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    --- 3,23 ----
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�(ZZ)Z�Z�
                                      SourceFile�EqualExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������H�����
                                      ')—š�¬¬����
                                    ! �������2���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$•š�¬¬����
                                    ! �������7���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”š�¬¬����
                                    ! �������<���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	 �¬¬����
                                    ! �������A���� ����	��
                                    �����	������	�����������G�����	 �¬¬����
                                    ! �������F���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class	Tue Oct 12 15:55:12 2010
                                    *************** startsWith�(Ljava/lang/String;)Z
                                    *** 25,34 ****
                                      �‘�”��•�(Ljava/lang/String;I)V
                                      �‘�—�˜�™�	longValue�()J�bigInt�Ljava/math/BigInteger;�
                                      SourceFile�Evaluator.java�!���������������/�����*·�±����
                                    ! �����������������
                                    ���	�������������÷�����M»�Y»�Y*·�·�N»�Y-·�:¶�":»�&Y,+·�(¹�+�:¶�0°N»�Y-·�6¿N»�Y-·�6¿����8�9�9���8�C�;��
                                    ! ���&�	���;��<��=�!�>�3�?�9�A�:�B�C�D�D�E����\�	���M�$�=�����M�>�?����M�@�A���)�B�C����D�E��!��F�G��3��H�I��:�	�F�J��D�	�F�K���L�M����H�����¾
                                      <*N¶�P™�<*¶�VK§�&*¶�Z¤�*^¶�P™�<*¶�VK§�	*¶�VK*¶�Z¤�*^¶�Pšÿì
                                       �*¸�`¬*¸�dA �j”ž�	 �leA �j”ž�#»�nY»�pY ¸�r·�vw¶�y}¶�~¶�·�…¿ �†”œ�#»�nY»�pY ¸�r·�vˆ¶�yŠ¶�~¶�·�…¿ ˆ¬����
                                    ! ���R����K��M��N��O��Q�)�R�,�S�2�U�5�V�;�U�L�Y�R�Z�W�]�]�_�e�`�k�c�s�d�“�f�›�g�»�j���� ����¾�‹�=����»�Œ���]�a�Ž����h������Õ�����]
                                      <*N¶�P™�<*¶�VK§�&*¶�Z¤�*^¶�P™�<*¶�VK§�	*¶�VK*¶�Z¤�*^¶�Pšÿì»�‘Y*·�“M,¶�–B!­����
                                    ! ���6�
                                    ���q��s��t��u��w�)�x�,�y�2�{�5�|�;�{�L��V�€�[�����*����]�‹�=����Z�Œ���V��š�›��[��Ž����œ����
                                    \ No newline at end of file
                                    --- 25,34 ----
                                      �‘�”��•�(Ljava/lang/String;I)V
                                      �‘�—�˜�™�	longValue�()J�bigInt�Ljava/math/BigInteger;�
                                      SourceFile�Evaluator.java�!���������������/�����*·�±����
                                    ! �������.����������
                                    ���	�������������÷�����M»�Y»�Y*·�·�N»�Y-·�:¶�":»�&Y,+·�(¹�+�:¶�0°N»�Y-·�6¿N»�Y-·�6¿����8�9�9���8�C�;��
                                    ! ���&�	���L��M��N�!�O�3�P�9�R�:�S�C�U�D�V����\�	���M�$�=�����M�>�?����M�@�A���)�B�C����D�E��!��F�G��3��H�I��:�	�F�J��D�	�F�K���L�M����H�����¾
                                      <*N¶�P™�<*¶�VK§�&*¶�Z¤�*^¶�P™�<*¶�VK§�	*¶�VK*¶�Z¤�*^¶�Pšÿì
                                       �*¸�`¬*¸�dA �j”ž�	 �leA �j”ž�#»�nY»�pY ¸�r·�vw¶�y}¶�~¶�·�…¿ �†”œ�#»�nY»�pY ¸�r·�vˆ¶�yŠ¶�~¶�·�…¿ ˆ¬����
                                    ! ���R����\��^��_��`��b�)�c�,�d�2�f�5�g�;�f�L�j�R�k�W�n�]�p�e�q�k�t�s�u�“�w�›�x�»�{���� ����¾�‹�=����»�Œ���]�a�Ž����h������Õ�����]
                                      <*N¶�P™�<*¶�VK§�&*¶�Z¤�*^¶�P™�<*¶�VK§�	*¶�VK*¶�Z¤�*^¶�Pšÿì»�‘Y*·�“M,¶�–B!­����
                                    ! ���6�
                                    ���‚��„��…��†��ˆ�)�‰�,�Š�2�Œ�5��;�Œ�L��V�‘�[�’����*����]�‹�=����Z�Œ���V��š�›��[��Ž����œ����
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      rightValue�(II)I�I�
                                      SourceFile�ExclusiveOrExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����!ƒ­����
                                    ! �������!���� ������
                                    ����������������������B�����‚¬����
                                    ! �������&���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      rightValue�(II)I�I�
                                      SourceFile�ExclusiveOrExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����!ƒ­����
                                    ! �������2���� ������
                                    ����������������������B�����‚¬����
                                    ! �������7���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,22 ****
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�
                                      SourceFile�GreaterThanExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������H�����
                                      ')—ž�¬¬����
                                    ! �������!���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$•ž�¬¬����
                                    ! �������&���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”ž�¬¬����
                                    ! �������+���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	¤�¬¬����
                                    ! �������0���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    --- 3,22 ----
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�
                                      SourceFile�GreaterThanExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������H�����
                                      ')—ž�¬¬����
                                    ! �������2���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$•ž�¬¬����
                                    ! �������7���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”ž�¬¬����
                                    ! �������<���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	¤�¬¬����
                                    ! �������A���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,22 ****
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�
                                      SourceFile�!GreaterThanOrEqualExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������H�����
                                      ')—›�¬¬����
                                    ! �������!���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$•›�¬¬����
                                    ! �������&���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”›�¬¬����
                                    ! �������+���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	¡�¬¬����
                                    ! �������0���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    --- 3,22 ----
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�
                                      SourceFile�!GreaterThanOrEqualExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������H�����
                                      ')—›�¬¬����
                                    ! �������2���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$•›�¬¬����
                                    ! �������7���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”›�¬¬����
                                    ! �������<���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	¡�¬¬����
                                    ! �������A���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** floatValue�()F
                                    *** 32,37 ****
                                      ��‡�¢�Cannot resolve identifier �context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�Ljava/lang/Object;�
                                      SourceFile�IdentifierExpression.java� �������������	�
                                      �����F�����
                                    ! *·�*+µ�±��������������	���������
                                      �������
                                    ! ����������������°����+¶�*´�+¶� ¹�$�M,Á�*™�»�,Y,À�*¶�.·�2°,Á�5™�»�7Y,À�5¶�9·�=°,Á�@™�»�BY,À�@¶�D·�H°,Á�K™�»�MY,À�K¶�O·�S°,Á�V™�»�XY,À�V¶�Z·�^°,Á�a™�»�cY,À�a¶�e·�i°,Á�l™�»�nY,À�l¶�p·�t°,Á�w™�»�yY,À�w¶�{·�°,Á�‚™�»�„Y,À�‚·�†°,Æ�-»�Y»�ˆYŠ·�Œ,¶�¶�‘¶�—›¶�—*´�¶�—¶�·� ¿»�Y»�ˆY¡·�Œ*´�¶�—¶�·� ¿�������Z����$��&��'�(�)�/�*�>�,�E�-�T�/�[�0�j�2�q�3�€�5�‡�6�–�8��9�¬�;�³�<�Â�>�É�?�Õ�A�Ù�B�E���� ����������£�¤���¥�¦���§����¨
                                    \ No newline at end of file
                                    --- 32,37 ----
                                      ��‡�¢�Cannot resolve identifier �context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�Ljava/lang/Object;�
                                      SourceFile�IdentifierExpression.java� �������������	�
                                      �����F�����
                                    ! *·�*+µ�±�����������-��/�	�0��������
                                      �������
                                    ! ����������������°����+¶�*´�+¶� ¹�$�M,Á�*™�»�,Y,À�*¶�.·�2°,Á�5™�»�7Y,À�5¶�9·�=°,Á�@™�»�BY,À�@¶�D·�H°,Á�K™�»�MY,À�K¶�O·�S°,Á�V™�»�XY,À�V¶�Z·�^°,Á�a™�»�cY,À�a¶�e·�i°,Á�l™�»�nY,À�l¶�p·�t°,Á�w™�»�yY,À�w¶�{·�°,Á�‚™�»�„Y,À�‚·�†°,Æ�-»�Y»�ˆYŠ·�Œ,¶�¶�‘¶�—›¶�—*´�¶�—¶�·� ¿»�Y»�ˆY¡·�Œ*´�¶�—¶�·� ¿�������Z����5��7��8�(�:�/�;�>�=�E�>�T�@�[�A�j�C�q�D�€�F�‡�G�–�I��J�¬�L�³�M�Â�O�É�P�Õ�R�Ù�S�V���� ����������£�¤���¥�¦���§����¨
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      �����cause�Ljava/lang/Throwable;�
                                      SourceFile�IllegalExpressionException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����������������
                                    ����������������>�����*+·�±����
                                      ���
                                    ! ����!��"����������
                                    ��������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      �����cause�Ljava/lang/Throwable;�
                                      SourceFile�IllegalExpressionException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����-��.����������
                                    ����������������>�����*+·�±����
                                      ���
                                    ! ����2��3����������
                                    ��������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      rightValue�(II)I�I�
                                      SourceFile�InclusiveOrExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����!­����
                                    ! �������!���� ������
                                    ����������������������B�����€¬����
                                    ! �������&���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      rightValue�(II)I�I�
                                      SourceFile�InclusiveOrExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����!­����
                                    ! �������2���� ������
                                    ����������������������B�����€¬����
                                    ! �������7���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,22 ****
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�
                                      SourceFile�LessThanExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������H�����
                                      ')˜œ�¬¬����
                                    ! �������!���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$–œ�¬¬����
                                    ! �������&���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”œ�¬¬����
                                    ! �������+���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	¢�¬¬����
                                    ! �������0���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    --- 3,22 ----
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�
                                      SourceFile�LessThanExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������H�����
                                      ')˜œ�¬¬����
                                    ! �������2���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$–œ�¬¬����
                                    ! �������7���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”œ�¬¬����
                                    ! �������<���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	¢�¬¬����
                                    ! �������A���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,22 ****
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�
                                      SourceFile�LessThanOrEqualExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������H�����
                                      ')˜�¬¬����
                                    ! �������!���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$–�¬¬����
                                    ! �������&���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”�¬¬����
                                    ! �������+���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	£�¬¬����
                                    ! �������0���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    --- 3,22 ----
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�
                                      SourceFile�LessThanOrEqualExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������H�����
                                      ')˜�¬¬����
                                    ! �������2���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$–�¬¬����
                                    ! �������7���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”�¬¬����
                                    ! �������<���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	£�¬¬����
                                    ! �������A���� ����	��
                                    �����	������	���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      rightValue�
                                      SourceFile�LogicalAndExpression.java� ����������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������J�����™�	™�¬¬����
                                    ! �������!���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      rightValue�
                                      SourceFile�LogicalAndExpression.java� ����������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������J�����™�	™�¬¬����
                                    ! �������2���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��9gnu/classpath/tools/gjdo
                                    *** 10,14 ****
                                      ��5�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�LogicalNotExpression.java� ���������������>�����*+·�±����
                                      ���
                                    ! ����������������
                                    ����������������������‘�����G*´�+¹��M²�,¶�!¦�»�'Y,À�'¶�)™�§�·�-°»�Y»�0Y2·�4,¶�!¶�7¶�;·�?¿����
                                    ! �������"��$��%�,�(���� ����G��
                                    �����G�@�A���<�B�C���D����E
                                    \ No newline at end of file
                                    --- 10,14 ----
                                      ��5�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�LogicalNotExpression.java� ���������������>�����*+·�±����
                                      ���
                                    ! ����-��.����������
                                    ����������������������‘�����G*´�+¹��M²�,¶�!¦�»�'Y,À�'¶�)™�§�·�-°»�Y»�0Y2·�4,¶�!¶�7¶�;·�?¿����
                                    ! �������3��5��6�,�9���� ����G��
                                    �����G�@�A���<�B�C���D����E
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      rightValue�
                                      SourceFile�LogicalOrExpression.java� ����������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������J�����š�	š�¬¬����
                                    ! �������!���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      rightValue�
                                      SourceFile�LogicalOrExpression.java� ����������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������J�����š�	š�¬¬����
                                    ! �������2���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,10 ****
                                      rightValue�(FF)F�F�(JJ)J�J�(II)I�I�
                                      SourceFile�ModuloExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����')s¯����
                                    ! �������!���� ������
                                    ����������������������B�����#$r®����
                                    ! �������&���� ������
                                    ����������������������B�����!q­����
                                    ! �������+���� ������
                                    ����������������������B�����p¬����
                                    ! �������0���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,10 ----
                                      rightValue�(FF)F�F�(JJ)J�J�(II)I�I�
                                      SourceFile�ModuloExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����')s¯����
                                    ! �������2���� ������
                                    ����������������������B�����#$r®����
                                    ! �������7���� ������
                                    ����������������������B�����!q­����
                                    ! �������<���� ������
                                    ����������������������B�����p¬����
                                    ! �������A���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,10 ****
                                      rightValue�(FF)F�F�(JJ)J�J�(II)I�I�
                                      SourceFile�MultiplicationExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����')k¯����
                                    ! �������!���� ������
                                    ����������������������B�����#$j®����
                                    ! �������&���� ������
                                    ����������������������B�����!i­����
                                    ! �������+���� ������
                                    ����������������������B�����h¬����
                                    ! �������0���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,10 ----
                                      rightValue�(FF)F�F�(JJ)J�J�(II)I�I�
                                      SourceFile�MultiplicationExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����')k¯����
                                    ! �������2���� ������
                                    ����������������������B�����#$j®����
                                    ! �������7���� ������
                                    ����������������������B�����!i­����
                                    ! �������<���� ������
                                    ����������������������B�����h¬����
                                    ! �������A���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** floatValue�()F�J�.gnu/classpath/tool
                                    *** 13,17 ****
                                      �I�P��Q�(I)V�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�NegateExpression.java� ���������������>�����*+·�±����
                                      ���
                                    ! ����������������
                                    ����������������������Ä�����j*´�+¹��M²�,¶�!¦�»�'Y,¶�)¶�-u·�3°²�6,¶�!¦�»�9Y,¶�)¶�;w·�?°²�B,¶�!¦�»�9Y,¶�)¶�Ev·�?°»�IY,¶�)¶�Kt·�O°����
                                    ! ���"����"��$��%�%�'�/�(�?�*�I�+�Z�.���� ����j��
                                    �����j�R�S���_�T�U���V����W
                                    \ No newline at end of file
                                    --- 13,17 ----
                                      �I�P��Q�(I)V�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�NegateExpression.java� ���������������>�����*+·�±����
                                      ���
                                    ! ����-��.����������
                                    ����������������������Ä�����j*´�+¹��M²�,¶�!¦�»�'Y,¶�)¶�-u·�3°²�6,¶�!¦�»�9Y,¶�)¶�;w·�?°²�B,¶�!¦�»�9Y,¶�)¶�Ev·�?°»�IY,¶�)¶�Kt·�O°����
                                    ! ���"����3��5��6�%�8�/�9�?�;�I�<�Z�?���� ����j��
                                    �����j�R�S���_�T�U���V����W
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,23 ****
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�(ZZ)Z�Z�
                                      SourceFile�NotEqualExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������H�����
                                      ')—™�¬¬����
                                    ! �������!���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$•™�¬¬����
                                    ! �������&���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”™�¬¬����
                                    ! �������+���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	Ÿ�¬¬����
                                    ! �������0���� ����	��
                                    �����	������	�����������B�����‚¬����
                                    ! �������5���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,23 ----
                                      rightValue�(FF)Z�F�(JJ)Z�J�(II)Z�I�(ZZ)Z�Z�
                                      SourceFile�NotEqualExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������H�����
                                      ')—™�¬¬����
                                    ! �������2���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      #$•™�¬¬����
                                    ! �������7���� ����
                                      ��
                                    �����
                                      ������
                                      �����������H�����
                                      !”™�¬¬����
                                    ! �������<���� ����
                                      ��
                                    �����
                                      ������
                                      �����������G�����	Ÿ�¬¬����
                                    ! �������A���� ����	��
                                    �����	������	�����������B�����‚¬����
                                    ! �������F���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��9gnu/classpath/tools/gjdo
                                    *** 9,13 ****
                                      �8�?��@�(I)V�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�NotExpression.java� ���������������>�����*+·�±����
                                      ���
                                    ! ����������������
                                    ����������������������ƒ�����9*´�+¹��M²�,¶�!¦�»�'Y,¶�)¶�-�3ƒ·�5°»�8Y,¶�)¶�:‚·�>°����
                                    ! �������"��$��%�(�(���� ����9��
                                    �����9�A�B���.�C�D���E����F
                                    \ No newline at end of file
                                    --- 9,13 ----
                                      �8�?��@�(I)V�context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�NotExpression.java� ���������������>�����*+·�±����
                                      ���
                                    ! ����-��.����������
                                    ����������������������ƒ�����9*´�+¹��M²�,¶�!¦�»�'Y,¶�)¶�-�3ƒ·�5°»�8Y,¶�)¶�:‚·�>°����
                                    ! �������3��5��6�(�9���� ����9��
                                    �����9�A�B���.�C�D���E����F
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      rightValue�I�(II)I�
                                      SourceFile�ShiftLeftExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����y­����
                                    ! �������!���� ������
                                    ����������������������B�����x¬����
                                    ! �������&���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      rightValue�I�(II)I�
                                      SourceFile�ShiftLeftExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����y­����
                                    ! �������2���� ������
                                    ����������������������B�����x¬����
                                    ! �������7���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      rightValue�I�(II)I�
                                      SourceFile�ShiftRightExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����{­����
                                    ! �������!���� ������
                                    ����������������������B�����z¬����
                                    ! �������&���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      rightValue�I�(II)I�
                                      SourceFile�ShiftRightExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����{­����
                                    ! �������2���� ������
                                    ����������������������B�����z¬����
                                    ! �������7���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,10 ****
                                      rightValue�(FF)F�F�(JJ)J�J�(II)I�I�
                                      SourceFile�SubtractionExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ���������� ������
                                    ����������������������B�����')g¯����
                                    ! �������!���� ������
                                    ����������������������B�����#$f®����
                                    ! �������&���� ������
                                    ����������������������B�����!e­����
                                    ! �������+���� ������
                                    ����������������������B�����d¬����
                                    ! �������0���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,10 ----
                                      rightValue�(FF)F�F�(JJ)J�J�(II)I�I�
                                      SourceFile�SubtractionExpression.java� ���������������I�����*+,·�±����
                                      ���
                                    ! ����-��.���� ������
                                    ����������������������B�����')g¯����
                                    ! �������2���� ������
                                    ����������������������B�����#$f®����
                                    ! �������7���� ������
                                    ����������������������B�����!e­����
                                    ! �������<���� ������
                                    ����������������������B�����d¬����
                                    ! �������A���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,9 ****
                                      �	�6��7�java/lang/Character	��9��	�;��<�java/lang/Byte	��>��	�@��A�java/lang/Short	��C�
                                    �	�E��F�java/lang/Void	��H���J�java/lang/String	��L��	��N���LineNumberTable�LocalVariableTable
                                      ��R��	��T���this�
                                      SourceFile�	Type.java� ����������������������	�����
                                    ! ���������������
                                    ��������������������������������Ù������»�Y²�·�³�»�Y²�!·�³�$»�Y²�&·�³�)»�Y²�+·�³�.»�Y²�0·�³�3»�Y²�5·�³�8»�Y²�:·�³�=»�Y²�?·�³�B»�Y²�D·�³�G»�YI·�³�K»�Y·�³�M±����O���2�����
                                    ����'��4��A��N��[� �h�!�u�"��#�Œ��P�������������F�����
                                    ! *·�Q*+µ�S±����O�������'��)�	�*�P�������
                                      �U������
                                      �����V����W
                                    \ No newline at end of file
                                    --- 3,9 ----
                                      �	�6��7�java/lang/Character	��9��	�;��<�java/lang/Byte	��>��	�@��A�java/lang/Short	��C�
                                    �	�E��F�java/lang/Void	��H���J�java/lang/String	��L��	��N���LineNumberTable�LocalVariableTable
                                      ��R��	��T���this�
                                      SourceFile�	Type.java� ����������������������	�����
                                    ! ���������������
                                    ��������������������������������Ù������»�Y²�·�³�»�Y²�!·�³�$»�Y²�&·�³�)»�Y²�+·�³�.»�Y²�0·�³�3»�Y²�5·�³�8»�Y²�:·�³�=»�Y²�?·�³�B»�Y²�D·�³�G»�YI·�³�K»�Y·�³�M±����O���2����*�
                                    �+��,�'�-�4�.�A�/�N�0�[�1�h�2�u�3��4�Œ�(�P�������������F�����
                                    ! *·�Q*+µ�S±����O�������8��:�	�;�P�������
                                      �U������
                                      �����V����W
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class	Tue Oct 12 15:55:12 2010
                                    *************** shortValue�()S
                                    *** 21,25 ****
                                      �|��Ž��toString�()Ljava/lang/String;
                                      ���context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�TypeCastExpression.java� ����������������	���Q�����*,·�
                                    ! *+µ�
                                    ±��������������
                                    ! � ���� �������������������������������	��›����*´�+¹��M²� *´�
                                    ¦�»�%Y,¶�'¶�-·�3°²�6*´�
                                    ¦�»�9Y,¶�'¶�;·�?°²�B*´�
                                    ¦�»�EY,¶�'¶�G·�K°²�N*´�
                                    ¦�»�QY,¶�'¶�S·�W°²�Z*´�
                                    ¦�»�]Y,¶�'¶�G’·�_°²�b*´�
                                    ¦�»�eY,¶�'¶�G†·�g°²�j*´�
                                    ¦�»�mY,¶�'¶�G†·�o°²�r*´�
                                    ¦�²�r,¶�u¦�,°²�y*´�
                                    ¦�²�y,¶�u¦�,°»�Y»�|Y~·�€,¶�u¶�ƒ‡¶�‰*´�
                                    ¶�ƒ¶�Œ·�¿�������R����%��'��(�$�*�.�+�=�-�G�.�V�0�`�1�o�3�y�4�‰�6�“�7�£�9�­�:�¾�<�Ò�=�Ô�?�è�@�ê�C���� ����������‘�’���“�”���•����–
                                    \ No newline at end of file
                                    --- 21,25 ----
                                      �|��Ž��toString�()Ljava/lang/String;
                                      ���context�(Lgnu/classpath/tools/gjdoc/expr/Context;�value�3Lgnu/classpath/tools/gjdoc/expr/ConstantExpression;�
                                      SourceFile�TypeCastExpression.java� ����������������	���Q�����*,·�
                                    ! *+µ�
                                    ±�����������/��0�
                                    ! �1���� �������������������������������	��›����*´�+¹��M²� *´�
                                    ¦�»�%Y,¶�'¶�-·�3°²�6*´�
                                    ¦�»�9Y,¶�'¶�;·�?°²�B*´�
                                    ¦�»�EY,¶�'¶�G·�K°²�N*´�
                                    ¦�»�QY,¶�'¶�S·�W°²�Z*´�
                                    ¦�»�]Y,¶�'¶�G’·�_°²�b*´�
                                    ¦�»�eY,¶�'¶�G†·�g°²�j*´�
                                    ¦�»�mY,¶�'¶�G†·�o°²�r*´�
                                    ¦�²�r,¶�u¦�,°²�y*´�
                                    ¦�²�y,¶�u¦�,°»�Y»�|Y~·�€,¶�u¶�ƒ‡¶�‰*´�
                                    ¶�ƒ¶�Œ·�¿�������R����6��8��9�$�;�.�<�=�>�G�?�V�A�`�B�o�D�y�E�‰�G�“�H�£�J�­�K�¾�M�Ò�N�Ô�P�è�Q�ê�T���� ����������‘�’���“�”���•����–
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,7 ****
                                      ��
                                    �	��()V	�����LineNumberTable�LocalVariableTable�this�0Lgnu/classpath/tools/gjdoc/expr/UnaryExpression;�
                                      SourceFile�UnaryExpression.java �������������	�
                                      �����F�����
                                    ! *·�*+µ�±��������������	���������
                                      �������
                                      ���������
                                    \ No newline at end of file
                                    --- 2,7 ----
                                      ��
                                    �	��()V	�����LineNumberTable�LocalVariableTable�this�0Lgnu/classpath/tools/gjdoc/expr/UnaryExpression;�
                                      SourceFile�UnaryExpression.java �������������	�
                                      �����F�����
                                    ! *·�*+µ�±�����������-��/�	�0��������
                                      �������
                                      ���������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,6 ****
                                      identifier�Ljava/lang/String;�
                                      SourceFile�UnknownIdentifierException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����������������
                                    ��������������
                                    \ No newline at end of file
                                    --- 3,6 ----
                                      identifier�Ljava/lang/String;�
                                      SourceFile�UnknownIdentifierException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����-��.����������
                                    ��������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 4,10 ****
                                      ���this�
                                      SourceFile�Java2xhtml.java�InnerClasses�/�)gnu/classpath/tools/java2xhtml/Java2xhtml�State�1�����	�����������������	�����
                                      ���������������
                                    �����������������Ÿ������[»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�!»�Y·�³�#»�Y·�³�%±����'���*�
                                    ! ��¡�
                                    ! ¢�£�¤�(¥�2¦�<§�F¨�P©�ZŸ�(�������������3�����*·�)±����'���
                                    ! ���¬�¯�(��������*�����+����,�-���
                                      ���.�0�
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ���this�
                                      SourceFile�Java2xhtml.java�InnerClasses�/�)gnu/classpath/tools/java2xhtml/Java2xhtml�State�1�����	�����������������	�����
                                      ���������������
                                    �����������������Ÿ������[»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�»�Y·�³�!»�Y·�³�#»�Y·�³�%±����'���*�
                                    ! ��²�
                                    ! ³�´�µ�(¶�2·�<¸�F¹�Pº�Z°�(�������������3�����*·�)±����'���
                                    ! ���½�À�(��������*�����+����,�-���
                                      ���.�0�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class	Tue Oct 12 15:55:12 2010
                                    *************** identifier�
                                    *** 210,220 ****
                                      SourceFile�Java2xhtml.java�InnerClasses�State�!�����*�����������
                                      ���������
                                    ������������������������������������������������������������� ��"�������#��%�������&��(�������)��+�������,��.�������/��1�������2��4�������5��7�������8��:�������;��=�������>��@�������A��C�������D��F�G����H�G����I�G����J�G�����K�L�����M�L�����N�L�����O�P�����Q�P�����R�P�����S�P�����T�P�����U�P�����V�P�����W�P�����X�P�����Y�P�����Z�P�����[�P�����\�P�����]������^�_��`��‡����Ç(½�aYcSYeSYgSYiSYkSYmSYoSYqSYsSY	uSY
                                      wSYySY{SY
                                    }SYSYSYƒSY…SY‡SY‰SY‹SYSYSY‘SY“SY•SY—SY™SY›SYSYŸSY¡SY £SY!¥SY"§SY#©SY$«SY%­SY&¯SY'±SK»�³Y*¸�µ·�»³�¿	½�aYÁSYÃSYÅSYÇSYÉSYËSYÍSYÏSYÑSL»�³Y+¸�µ·�»³�Ó½�aYÕSY×SYÙSM»�³Y,¸�µ·�»³�Û½�aYÝSYßSYáSYãSYSYåSYçSYqSYéSY	ëSY
                                    ! íSYïSYñSY
                                    óSN»�³Y-¸�µ·�»³�õ±����÷���~����ð��ñ��ò�2�ó�J�ô�b�õ�z�ö�’�÷�ª�ø�Â�ù�Ú�ú�ï�ï�ð�ü�þ�þ�ÿ�3�ý4?BHUV	adkŠ
                                    ¨·
                                    ! ¸Æ�&�ø���*��ð�×�ù�ú��4�“�û�ú�V�q�ü�ú�¸��ý�ú��	�þ�ÿ��`��è����z*¾¡�	*¾¤Ú²�¶²�¶²�¶²�¶²�¶²�¶²�¶²�¶²�¶²�¶²� ¶²�"¶²�¶²�$¶²�&¶²�(¶²�*¶²�,¶²�.¶²�0¶²�2¶²�4¶²�6¶²�8¶²�:¶²�<¶²�>¶²�@¶²�B¶²�D¶²�F¶²�H¶²�J¶²�L¶²�N¶²�P¶²�R¶²�T¶²�V¶²�X¶²�¶²�Z¶²�\¶²�^¶²�¶²�`¶²�b¶²�d¶²�f¶²�h¶²�j¶²�l¶§�™*2L»nY+·pM,¶r™�svN»xY+._¶z¸~·‚ƒ¶…¶‰:*¾Ÿ�	*¾ �*2¶™�
                                      *2N§�*2:*¾ �*2¶™�
                                    ! *2N§�*2:»�-,·“§�²�–¶²�˜¶±����÷��"�H���J��L��M��O�'�Q�0�R�9�S�B�T�K�U�T�V�]�X�f�Y�o�Z�x�]��^�Š�_�“�a�œ�c�¥�e�®�g�·�h�À�j�É�k�Ò�m�Û�n�ä�p�í�r�ö�t�ÿ�v�x�z�|#�~,�€5�‚>�„G�†P�ˆY�‰b�‹k�t�Ž}�†��‘˜�’¡�“ª�”³�•¼�–Å�—Î�˜×�šã�¡ç�£ð�¤÷�¨û�«�¬$�®0�±7�¶<�¹B�»N�¾U�ÃZ�Æ_�Ça�Æg�Ëp�Íy�Ñ�ø���4���zš�ú��ç�’›��ð�‰œ�û�lž���OŸ����½�_��`���Î�����\*· *µ¢*µ¤*µ¦*µ¨*µª*µ¬*µ®*µ°*µ²*µ´*µ¶*µ¸*µº*µ¼*µ¾*µÀ*µı����÷���N�����Ú�	�Û��Ü��Ý��Þ��ß�"�à�'�á�,�â�1�ã�6�ä�;�å�@�æ�E�ç�J�è�O�é�T�ê�[�ø�������\�®Æ�����½•��`��8����*· *µ¢*µ¤*µ¦*µ¨*µª*µ¬*µ®*µ°*µ²*µ´*µ¶*µ¸*µº*µ¼*µ¾*µÀ*µÄ»nY+·p:¶r™�5»ÇY+·É:»ÊY·Ì:¶Í¶Ñ*¶Ö§�
                                    :²�¶Ú,¶Ý™�*,-¶à§�_,¶ä™�X,¶ç:6§�D2¶ë�0»xY2¶ë._¶z¸~·‚ƒ¶…¶‰N*2-¶à„¾¡ÿº±��m�’�•ð��÷���¦�)����Ú�	�Û��Ü��Ý��Þ��ß�"�à�'�á�,�â�1�ã�6�ä�;�å�@�æ�E�ç�J�è�O�é�T�ê�[�e�m$�u#�w%�€&�‡'�Œ(�•*�—,�Ÿ/�¦2�¯4�¶7�¼8�Â:�Ó?�×?�ß@�ò?�öA�8E�ø���f�
                                    ! ���®Æ����ž����œ���Ÿ���e�§ò��w�óô��€�õö��—��æ÷��¼�Oøù��¿�Lú�L��ØÙ��`��Õ����9*+ûÕ¶ü¸�¶µ¨*+	¶ü¸µ¢*+¶ü¸µ¤*+Õ¶ü¸�¶µª*+¶ü¸µ¦*+Õ¶ü¸�¶µ¬*+Õ¶ü¸�¶µ®*+Õ¶ü¸�¶µ°*+Õ¶ü¸�¶µ²*+Ù¶ü¸�¶µ´*+Ù¶ü¸�¶µ¸*+Õ¶ü¸�¶µ¶*+Õ¶ü¸�¶µº*+ Õ¶ü¸�¶µ¼*+!Ù¶ü¸�¶µ¾*+"Ù¶ü¸�¶µÀ*+#¶üµı����÷��n�[��I�J�K�J�
                                    K�I�L�M�!L�$N�%O�2N�5P�6Q�:R�<Q�BR�EP�HS�IT�VS�YU�ZV�^W�`V�fW�iU�lX�mY�qZ�sY�yZ�|X�[�€\�„]�†\�Œ]�[�’^�“_�—`�™_�Ÿ`�¢^�¥a�¦b�ªc�¬b�²c�µa�¸d�¹e�½f�¿e�Åf�Èd�Ëg�Ìh�Ði�Òh�Øi�Ûg�Þj�ßk�ãl�åk�ël�îj�ñm�òn�öo�øn�þompq	rqrpstut$u's*v+w5v8x�ø������9�®Æ����9õö���âã��`��t�����š»$Y»&Y+·(·+N».Y·0:66§�-¶16›�	’§�6¶5W ÿá-¶8»9Y»;Y,·=·>:*+¶ë¶A¶E¶H²�»xY+¶ë¸~·‚I¶…,¶…¶‰¶§�N²�-¶Ú±����Ž�‘ð��÷���^���ƒ�‚�„�…�†�ˆ�"‹�(Œ�6�>ˆ�D�H‘�W�Y’�^“�b’�h”�m•�„–�‹•�‘˜�’š�™œ�ø���\�	���š�®Æ�����šœ����šŸ����KL���xMN���uO�L���rPQ��Y�8RS��’��æ÷��CD��`��à����p>666666	6
                                      6²T:».Y �·Z:
                                    *´¶š]
                                    ]¶_W*´¸™�!
                                    b¶_W
                                    d¶_W
                                    f¶_W§�
                                    h¶_W
                                    j¶_W
                                    l¶_W
                                    n¶_W
                                    p¶_W
                                    »xYr·‚,¶…t¶…¶‰¶_W
                                    v¶_W
                                    x¶_W
                                    z¶_W*´¾™Š
                                    |¶_W
                                    ~¶_W
                                    ۦ_W
                                    ‚¶_W
                                    „¶_W
                                    †¶_W*´¼™�
                                    ˆ¶_W
                                    Š¶_W
                                    Φ_W
                                    ‚¶_W
                                    Ž¶_W
                                    „¶_W
                                    ¶_W
                                    Š¶_W*´¦ž�ò
                                    ’¶_W
                                    ‚¶_W
                                    ˆ¶_W
                                    „¶_W
                                    Ӧ_W
                                    –¶_W
                                    Š¶_W*´¬™�K
                                    ˜¶_W
                                    ‚¶_W
                                    š¶_W
                                    Ϧ_W
                                    „¶_W
                                    Ӧ_W
                                    –¶_W
                                    Š¶_W*´®™�]
                                    ž¶_W
                                    ‚¶_W
                                     ¶_W
                                    Š¶_W
                                    ¢¶_W
                                    ‚¶_W
                                    „¶_W
                                    Ӧ_W
                                    ¤¶_W
                                    Š¶_W
                                    ¦¶_W
                                    ‚¶_W
                                    ¨¶_W
                                    ¶_W
                                    Š¶_W
                                    ª¶_W
                                    ‚¶_W
                                    ¦_W
                                    ¶_W
                                    Š¶_W
                                    ®¶_W
                                    ‚¶_W
                                    °¶_W
                                    ¶_W
                                    Š¶_W
                                    ²¶_W
                                    ‚¶_W
                                    ´¶_W
                                    ¶_W
                                    Š¶_W
                                    ¶¶_W
                                    ‚¶_W
                                    ¸¶_W
                                    ¶_W
                                    Š¶_W
                                    º¶_W
                                    ‚¶_W
                                    ¼¶_W
                                    ¶_W
                                    Š¶_W
                                    ¾¶_W
                                    ‚¶_W
                                    ˦_W
                                    ¶_W
                                    Š¶_W
                                    ¶_W
                                    ‚¶_W
                                    Ķ_W
                                    ¶_W
                                    Š¶_W
                                    ƶ_W
                                    ‚¶_W
                                    ȶ_W
                                    ¶_W
                                    Š¶_W
                                    ʶ_W
                                    ‚¶_W
                                    ̶_W
                                    ¶_W
                                    Š¶_W
                                    ζ_W
                                    ‚¶_W
                                    ж_W
                                    ¶_W
                                    Š¶_W
                                    Ò¶_W
                                    ‚¶_W
                                    Ô¶_W
                                    ¶_W
                                    Š¶_W
                                    Ö¶_W
                                    ‚¶_W
                                    ض_W
                                    ¶_W
                                    Š¶_W
                                    Ú¶_W
                                    ‚¶_W
                                    ܶ_W
                                    ¶_W
                                    Þ¶_W
                                    Š¶_W
                                    à¶_W
                                    ‚¶_W
                                    â¶_W
                                    ¶_W
                                    ä¶_W
                                    Š¶_W
                                    æ¶_W
                                    ‚¶_W
                                    è¶_W
                                    ¶_W
                                    Š¶_W
                                    ê¶_W
                                    ‚¶_W
                                    ì¶_W
                                    ¶_W
                                    Š¶_W*´²™�'
                                    î¶_W
                                    ‚¶_W
                                    ð¶_W
                                    Š¶_W*´º™�0
                                    ò¶_W
                                    ‚¶_W
                                    ô¶_W
                                    ö¶_W
                                    Š¶_W*´¨™�]
                                    ø¶_W
                                    ‚¶_W
                                    ô¶_W
                                    ú¶_W
                                    Š¶_W
                                    ü¶_W
                                    ‚¶_W
                                    þ¶_W
                                    �¶_W
                                    Š¶_W*´°™�'
                                    ¶_W
                                    ‚¶_W
                                    ¶_W
                                    Š¶_W
                                    ¶_W
                                    ¶_W*´À™�#
                                    »xY
                                      ·‚*´Ķ…¶…¶‰¶_W
                                    ¶_W
                                    ¶_W*´º™�;
                                    ¶_W
                                    »xYr·‚,¶…t¶…¶‰¶_W
                                    ¶_W
                                    ¶_W*´¨™�ö
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                     ¶_W
                                    "¶_W
                                    $¶_W
                                    &¶_W
                                    (¶_W
                                    *¶_W
                                    ,¶_W
                                    .¶_W
                                    0¶_W
                                    2¶_W
                                    4¶_W
                                    6¶_W
                                    8¶_W
                                    :¶_W
                                    <¶_W
                                    >¶_W
                                    @¶_W
                                    B¶_W
                                    D¶_W
                                    F¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W*´®™�
                                    H¶_W§û
                                    J¶_W§ï6§�
                                    L¶_W„*´¢¡ÿî*´ªš�
                                      *´®™%™ „'p>*´¦ž�™*´®™�’*´¦p �ˆ™�w²N¥�²Q¦�
                                    
                                    ¶Tt¶WdX¶ZW
                                    ^¶_W
                                    `¶_W
                                    b¶_W
                                    d¶_W
                                    f¶_W²N¦�
                                    h¶_W²Q¦�
                                    j¶_W™�§�6è¢�
                                    L¶_Wd¢�
                                    L¶_W
                                    --- 210,220 ----
                                      SourceFile�Java2xhtml.java�InnerClasses�State�!�����*�����������
                                      ���������
                                    ������������������������������������������������������������� ��"�������#��%�������&��(�������)��+�������,��.�������/��1�������2��4�������5��7�������8��:�������;��=�������>��@�������A��C�������D��F�G����H�G����I�G����J�G�����K�L�����M�L�����N�L�����O�P�����Q�P�����R�P�����S�P�����T�P�����U�P�����V�P�����W�P�����X�P�����Y�P�����Z�P�����[�P�����\�P�����]������^�_��`��‡����Ç(½�aYcSYeSYgSYiSYkSYmSYoSYqSYsSY	uSY
                                      wSYySY{SY
                                    }SYSYSYƒSY…SY‡SY‰SY‹SYSYSY‘SY“SY•SY—SY™SY›SYSYŸSY¡SY £SY!¥SY"§SY#©SY$«SY%­SY&¯SY'±SK»�³Y*¸�µ·�»³�¿	½�aYÁSYÃSYÅSYÇSYÉSYËSYÍSYÏSYÑSL»�³Y+¸�µ·�»³�Ó½�aYÕSY×SYÙSM»�³Y,¸�µ·�»³�Û½�aYÝSYßSYáSYãSYSYåSYçSYqSYéSY	ëSY
                                    ! íSYïSYñSY
                                    óSN»�³Y-¸�µ·�»³�õ±����÷���~������2�J�b�z�’�ª	�Â
                                    ! �Ú�ï��ð
                                    �þ34?BHUVadkŠ¨·¸!Æ�7�ø���*��ð�×�ù�ú��4�“�û�ú�V�q�ü�ú�¸��ý�ú��	�þ�ÿ��`��è����z*¾¡�	*¾¤Ú²�¶²�¶²�¶²�¶²�¶²�¶²�¶²�¶²�¶²�¶²� ¶²�"¶²�¶²�$¶²�&¶²�(¶²�*¶²�,¶²�.¶²�0¶²�2¶²�4¶²�6¶²�8¶²�:¶²�<¶²�>¶²�@¶²�B¶²�D¶²�F¶²�H¶²�J¶²�L¶²�N¶²�P¶²�R¶²�T¶²�V¶²�X¶²�¶²�Z¶²�\¶²�^¶²�¶²�`¶²�b¶²�d¶²�f¶²�h¶²�j¶²�l¶§�™*2L»nY+·pM,¶r™�svN»xY+._¶z¸~·‚ƒ¶…¶‰:*¾Ÿ�	*¾ �*2¶™�
                                      *2N§�*2:*¾ �*2¶™�
                                    ! *2N§�*2:»�-,·“§�²�–¶²�˜¶±����÷��"�H���[��]��^��`�'�b�0�c�9�d�B�e�K�f�T�g�]�i�f�j�o�k�x�n��o�Š�p�“�r�œ�t�¥�v�®�x�·�y�À�{�É�|�Ò�~�Û��ä��í�ƒ�ö�…�ÿ�‡�‰�‹�#�,�‘5�“>�•G�—P�™Y�šb�œk�žt�Ÿ}� †�¡�¢˜�£¡�¤ª�¥³�¦¼�§Å�¨Î�©×�«ã�²ç�´ð�µ÷�¹û�¼�½$�¿0�Â7�Ç<�ÊB�ÌN�ÏU�ÔZ�×_�Øa�×g�Üp�Þy�â�ø���4���zš�ú��ç�’›��ð�‰œ�û�lž���OŸ����½�_��`���Î�����\*· *µ¢*µ¤*µ¦*µ¨*µª*µ¬*µ®*µ°*µ²*µ´*µ¶*µ¸*µº*µ¼*µ¾*µÀ*µı����÷���N���$��ë�	�ì��í��î��ï��ð�"�ñ�'�ò�,�ó�1�ô�6�õ�;�ö�@�÷�E�ø�J�ù�O�ú�T�û�[&�ø�������\�®Æ�����½•��`��8����*· *µ¢*µ¤*µ¦*µ¨*µª*µ¬*µ®*µ°*µ²*µ´*µ¶*µ¸*µº*µ¼*µ¾*µÀ*µÄ»nY+·p:¶r™�5»ÇY+·É:»ÊY·Ì:¶Í¶Ñ*¶Ö§�
                                    :²�¶Ú,¶Ý™�*,-¶à§�_,¶ä™�X,¶ç:6§�D2¶ë�0»xY2¶ë._¶z¸~·‚ƒ¶…¶‰N*2-¶à„¾¡ÿº±��m�’�•ð��÷���¦�)��*��ë�	�ì��í��î��ï��ð�"�ñ�'�ò�,�ó�1�ô�6�õ�;�ö�@�÷�E�ø�J�ù�O�ú�T�û�[.�e/�m5�u4�w6�€7�‡8�Œ9�•;�—=�Ÿ@�¦C�¯E�¶H�¼I�ÂK�ÓP�×P�ßQ�òP�öR�IV�ø���f�
                                    ! ���®Æ����ž����œ���Ÿ���e�§ò��w�óô��€�õö��—��æ÷��¼�Oøù��¿�Lú�L��ØÙ��`��Õ����9*+ûÕ¶ü¸�¶µ¨*+	¶ü¸µ¢*+¶ü¸µ¤*+Õ¶ü¸�¶µª*+¶ü¸µ¦*+Õ¶ü¸�¶µ¬*+Õ¶ü¸�¶µ®*+Õ¶ü¸�¶µ°*+Õ¶ü¸�¶µ²*+Ù¶ü¸�¶µ´*+Ù¶ü¸�¶µ¸*+Õ¶ü¸�¶µ¶*+Õ¶ü¸�¶µº*+ Õ¶ü¸�¶µ¼*+!Ù¶ü¸�¶µ¾*+"Ù¶ü¸�¶µÀ*+#¶üµı����÷��n�[��Z�[�\�[�
                                    \�Z�]�^�!]�$_�%`�2_�5a�6b�:c�<b�Bc�Ea�Hd�Ie�Vd�Yf�Zg�^h�`g�fh�if�li�mj�qk�sj�yk�|i�l�€m�„n�†m�Œn�l�’o�“p�—q�™p�Ÿq�¢o�¥r�¦s�ªt�¬s�²t�µr�¸u�¹v�½w�¿v�Åw�Èu�Ëx�Ìy�Ðz�Òy�Øz�Ûx�Þ{�ß|�ã}�å|�ë}�î{�ñ~�ò�ö€�ø�þ€~‚	ƒ‚ƒ„…†…$†'„*‡+ˆ5‡8‰�ø������9�®Æ����9õö���âã��`��t�����š»$Y»&Y+·(·+N».Y·0:66§�-¶16›�	’§�6¶5W ÿá-¶8»9Y»;Y,·=·>:*+¶ë¶A¶E¶H²�»xY+¶ë¸~·‚I¶…,¶…¶‰¶§�N²�-¶Ú±����Ž�‘ð��÷���^���”�“�•�–�—�™�"œ�(�6ž�>™�D �H¢�W¡�Y£�^¤�b£�h¥�m¦�„§�‹¦�‘©�’«�™­�ø���\�	���š�®Æ�����šœ����šŸ����KL���xMN���uO�L���rPQ��Y�8RS��’��æ÷��CD��`��à����p>666666	6
                                      6²T:».Y �·Z:
                                    *´¶š]
                                    ]¶_W*´¸™�!
                                    b¶_W
                                    d¶_W
                                    f¶_W§�
                                    h¶_W
                                    j¶_W
                                    l¶_W
                                    n¶_W
                                    p¶_W
                                    »xYr·‚,¶…t¶…¶‰¶_W
                                    v¶_W
                                    x¶_W
                                    z¶_W*´¾™Š
                                    |¶_W
                                    ~¶_W
                                    ۦ_W
                                    ‚¶_W
                                    „¶_W
                                    †¶_W*´¼™�
                                    ˆ¶_W
                                    Š¶_W
                                    Φ_W
                                    ‚¶_W
                                    Ž¶_W
                                    „¶_W
                                    ¶_W
                                    Š¶_W*´¦ž�ò
                                    ’¶_W
                                    ‚¶_W
                                    ˆ¶_W
                                    „¶_W
                                    Ӧ_W
                                    –¶_W
                                    Š¶_W*´¬™�K
                                    ˜¶_W
                                    ‚¶_W
                                    š¶_W
                                    Ϧ_W
                                    „¶_W
                                    Ӧ_W
                                    –¶_W
                                    Š¶_W*´®™�]
                                    ž¶_W
                                    ‚¶_W
                                     ¶_W
                                    Š¶_W
                                    ¢¶_W
                                    ‚¶_W
                                    „¶_W
                                    Ӧ_W
                                    ¤¶_W
                                    Š¶_W
                                    ¦¶_W
                                    ‚¶_W
                                    ¨¶_W
                                    ¶_W
                                    Š¶_W
                                    ª¶_W
                                    ‚¶_W
                                    ¦_W
                                    ¶_W
                                    Š¶_W
                                    ®¶_W
                                    ‚¶_W
                                    °¶_W
                                    ¶_W
                                    Š¶_W
                                    ²¶_W
                                    ‚¶_W
                                    ´¶_W
                                    ¶_W
                                    Š¶_W
                                    ¶¶_W
                                    ‚¶_W
                                    ¸¶_W
                                    ¶_W
                                    Š¶_W
                                    º¶_W
                                    ‚¶_W
                                    ¼¶_W
                                    ¶_W
                                    Š¶_W
                                    ¾¶_W
                                    ‚¶_W
                                    ˦_W
                                    ¶_W
                                    Š¶_W
                                    ¶_W
                                    ‚¶_W
                                    Ķ_W
                                    ¶_W
                                    Š¶_W
                                    ƶ_W
                                    ‚¶_W
                                    ȶ_W
                                    ¶_W
                                    Š¶_W
                                    ʶ_W
                                    ‚¶_W
                                    ̶_W
                                    ¶_W
                                    Š¶_W
                                    ζ_W
                                    ‚¶_W
                                    ж_W
                                    ¶_W
                                    Š¶_W
                                    Ò¶_W
                                    ‚¶_W
                                    Ô¶_W
                                    ¶_W
                                    Š¶_W
                                    Ö¶_W
                                    ‚¶_W
                                    ض_W
                                    ¶_W
                                    Š¶_W
                                    Ú¶_W
                                    ‚¶_W
                                    ܶ_W
                                    ¶_W
                                    Þ¶_W
                                    Š¶_W
                                    à¶_W
                                    ‚¶_W
                                    â¶_W
                                    ¶_W
                                    ä¶_W
                                    Š¶_W
                                    æ¶_W
                                    ‚¶_W
                                    è¶_W
                                    ¶_W
                                    Š¶_W
                                    ê¶_W
                                    ‚¶_W
                                    ì¶_W
                                    ¶_W
                                    Š¶_W*´²™�'
                                    î¶_W
                                    ‚¶_W
                                    ð¶_W
                                    Š¶_W*´º™�0
                                    ò¶_W
                                    ‚¶_W
                                    ô¶_W
                                    ö¶_W
                                    Š¶_W*´¨™�]
                                    ø¶_W
                                    ‚¶_W
                                    ô¶_W
                                    ú¶_W
                                    Š¶_W
                                    ü¶_W
                                    ‚¶_W
                                    þ¶_W
                                    �¶_W
                                    Š¶_W*´°™�'
                                    ¶_W
                                    ‚¶_W
                                    ¶_W
                                    Š¶_W
                                    ¶_W
                                    ¶_W*´À™�#
                                    »xY
                                      ·‚*´Ķ…¶…¶‰¶_W
                                    ¶_W
                                    ¶_W*´º™�;
                                    ¶_W
                                    »xYr·‚,¶…t¶…¶‰¶_W
                                    ¶_W
                                    ¶_W*´¨™�ö
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                     ¶_W
                                    "¶_W
                                    $¶_W
                                    &¶_W
                                    (¶_W
                                    *¶_W
                                    ,¶_W
                                    .¶_W
                                    0¶_W
                                    2¶_W
                                    4¶_W
                                    6¶_W
                                    8¶_W
                                    :¶_W
                                    <¶_W
                                    >¶_W
                                    @¶_W
                                    B¶_W
                                    D¶_W
                                    F¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W*´®™�
                                    H¶_W§û
                                    J¶_W§ï6§�
                                    L¶_W„*´¢¡ÿî*´ªš�
                                      *´®™%™ „'p>*´¦ž�™*´®™�’*´¦p �ˆ™�w²N¥�²Q¦�
                                    
                                    ¶Tt¶WdX¶ZW
                                    ^¶_W
                                    `¶_W
                                    b¶_W
                                    d¶_W
                                    f¶_W²N¦�
                                    h¶_W²Q¦�
                                    j¶_W™�§�6è¢�
                                    L¶_Wd¢�
                                    L¶_W
                                    *************** SourceFile�Java2xhtml.java�InnerClas
                                    *** 232,286 ****
                                      ¶w, � 
                                    
                                    ¶Td™¶ZW
                                    X¶_W§�”+`d¶w. �„
                                    
                                    ¶Td™¶ZW
                                    X¶_W§�d²�Û¹›�™� 
                                    
                                    ¶TdöZW
                                    X¶_W§�:`dž�+`d¶w. �„
                                    
                                    ¶TdŶZW
                                    X¶_W66«����1������������	��H���
                                      ��@���
                                    ��@���"������&���k���'���Ö���*��e���/��Õ���<���w���>���ƒ���\��
                                    Ƕ_W§Å
                                    ɶ_W§¹
                                    ˶_W§­
                                    Ͷ_W²T¦� ²Ï:
                                    
                                    ¶TͶWdÒ¶ZW§²Ï¦w²T:
                                    X¶_W§f
                                    Ô¶_W²T¦� ²Ö:
                                    
                                    ¶TÔ¶WdÙ¶ZW§8²Ö¦0²T:
                                    X¶_W§
                                    Û¶_W²Ï¥�²Ö¦
                                    +„¶w¶5W§ô6§�
                                     ¶5W„*´¤¡ÿï§×
                                    ݶ_W²T¦Æ+d¶w/ ¹+¶Td¤�-+`¶w* � ²Q:
                                    
                                    ¶T߶Wdj¶ZW§„²N:
                                    
                                    ¶T߶Wdh¶ZW§g
                                    á¶_W²N¥�²Q¦�+d¶w* �
                                    X¶_W²T:²T¦+ž&+d¶w/ 
                                    
                                    ¶Tã¶Wdå¶ZW²ç:§�ü+¶w
                                     �+¶Td¤�+`¶w
                                       �„²ç¦�
                                    X¶_W²T:*´¦ž�ƒ*´®™�|*´¦pš�sš�n²N¥�²Q¦�
                                    X¶_W
                                    t¶_W
                                    ^¶_W
                                    F¶_W
                                    ê¶_W
                                    f¶_W²N¦�
                                    h¶_W²Q¦�
                                    j¶_W§�
                                    t¶_W6§�*²ç¦�"+¶Td �
                                    X¶_W§�
                                    ¶5W6„+¶Td¡÷	²ç¦�
                                    ì¶_W
                                    ^¶_W*´¦ž�!*´®™�š�*´¦p™�
                                    F¶_W
                                    ¶_W*´¶š7*´°™
                                    ¶_W
                                    î¶_W*´²™@*´´™�T
                                    ð¶_W
                                    ò¶_W
                                    ô¶_W
                                    ö¶_W
                                    ø¶_W
                                    ú¶_W
                                    ü¶_W
                                    þ¶_W
                                    �¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    
                                    ! ¶_W*´¸™�
                                    ¶_W
                                    ¶_W§�
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                     ¶_W
                                    "¶_W
                                    $¶_W
                                    &¶_W
                                    (¶_W
                                    ¶_W§�¿
                                    *¶_W
                                    ,¶_W
                                    .¶_W*´¸™�
                                    0¶_W§�
                                    2¶_W
                                    4¶_W
                                    ,¶_W
                                    6¶_W
                                    ¶_W
                                    8¶_W
                                    :¶_W*´´™�K
                                    ð¶_W
                                    ò¶_W
                                    ô¶_W
                                    <¶_W
                                    >¶_W
                                    t¶_W
                                    þ¶_W
                                    �¶_W
                                    ¶_W
                                    @¶_W
                                    B¶_W
                                    ¶D°����÷��	¢h��¸�¹�º�»�¼�½�¾�¿�À�Á�Â�+Ã�2Å�;Æ�BÈ�KÊ�TÌ�`Ñ�iÓ�rÕ�{Ø�„Ù�Ú�ªÛ�³Ü�¼Ý�ÅÞ�Ìà�Õá�Þâ�çã�ðä�ùåæ	èêë$ì-í6î?ïHðQñXóaôjõsö|÷…øŽù—úžü§ý°þ¹ÿÂ�ËÔÝæíöÿ	
                                    ! #
                                    ,5>GPYbkt}†˜¡ª³¼ Å!Î"×#à$é%ò&û'(
                                    )*+(,1-:.C/L0U1^2g3p4y5‚6‹7”89¦:¯;¸<Á=Ê>Ó?Ü@åAîB÷C�D	EFG$H-I6J?KHLQMZNcOlPuQ~R‡ST™U¢V«W´X½YÆZÏ[Ø\á]ê^ó_ü`abc d)e2f;gDhMiVj]lfmonxoqˆs‘tšu£v¬wµy¼{Å|Î}×~àé€òû‚ƒ
                                    „†ˆ&‰/Š8‹AJŽS‘Z“f•v“z—ƒ˜Œš“œœ¹žÂŸË¡Ò£Û¤ä¥í¦ö§ÿ¨©ª«#¬,®5°>²G´P¶Y¸bºk¼t¾}À†ÂĘơȪʳ˼ÌÅÎÎÏÕÑáÕêÙíÛóÝüÛßã$ä2å<çAéIêQìXí_îbìfðoñxòóŠô“õ›÷¤ú¬üµ�ÁÈÑ×	àæ
                                    ïøÿ				(	/	8	?	B$	M&	S(	_&	k*	n+	q-	|0	…1	“6	–7	˜6	Ÿ8	¢:	¥	° 	¶	¼!	Ç>	Ò?	Ó@	Õ?	ÞB	áE	çG	îH	ôG	øJ	ÿK
                                    ! 	J
                                    ! 
                                    M
                                    ! S
                                    ! T
                                    ! #U
                                    ! ,X
                                    ! /Z
                                    ! 8]
                                    ! @^
                                    ! H_
                                    ! Wb
                                    ! _c
                                    ! bd
                                    ! ef
                                    ! ji
                                    ! lj
                                    ! qk
                                    ! |n
                                    ! „o
                                    ! ‡p
                                    ! Šq
                                    ! t
                                    ! ”u
                                    ! —t
                                    ! šs
                                    ! œv
                                    ! ¤z
                                    ! «{
                                    ! ®|
                                    ! ±z
                                    ! µ}
                                    ! ¾~
                                    ! ƀ
                                    ! ΃
                                    ! Û„
                                    ! Þ…
                                    ! ã„
                                    ! æ…
                                    ! è„
                                    ! ëˆ
                                    ! õ‰
                                    ! øˆ
                                    ! üŠ‹“–&—)˜,–0™9šAœIŸP S¡VŸZ¢c£k¥s§€ª‡«Š¬ª‘­š®¤²¬´¶¸¾»Ë¾Ò¿ÕÀؾÜÁèÃõÄÇÈÉÇÊÌ*Ð.Ò7Ñ=ÖKØRÙUÚXØ\Üháoârãuáyå…è‘éží¢ï«î±ó´õ¿÷ÆøÉùÌ÷ÐúÜüçÿî�ñôÿø
                                    
                                    	
                                    	
                                    ! 
                                    ! 	
                                    
                                    
                                    ! 
                                    
                                    
                                    
                                    
                                    !
                                    $
                                    (
                                    4
                                    A
                                    H
                                    N
                                    R
                                    ^!
                                    `"
                                    d!
                                    h#
                                    k$
                                    p#
                                    s$
                                    u#
                                    x&
                                    {(
                                    ‚)
                                    …*
                                    ˆ(
                                    Œ,
                                    •0
                                    ˜1
                                    ›478:; =)>,@5A=CBDPESDZGbIgJpLsN|O„Q‰R—SšR¡U©W®X·Zº\Ã]Ë^Óaâcåfëhófÿjlmn p+q8s=tDuNtUzZ{a|k{o€r‚{ƒƒ„‹…˜‡¡ˆ¦Š®‹³ŒÀŽÎюՑړݘè™óš�œŸ¡¢¥'¦5©=ªE¬N®W¯`°i±r²{´ƒ¶Œ¹”» Â©Ä¬Å¯Ç·ÈÂÊËÌÎÎÖÐÙÙçÒïÓøÖØÙÛ&Ý/ß6â=äFåOæVè]êfëoìxíîŠï“ðœñ¥ò®ô·õÀöÉ÷ÒøÛùâûëü÷��	$-6?	H
                                    ! QZc
                                    lu~‡“œ¥®µÁÊ Ó!Ü"å#î$÷%�&()*"++,4-=.F/O2X4a5j7�ø���¶���p�®Æ����pMN���pE���nF�L��kG�P��hH�P��eI�L��bJ�L��_K�L��\L�L�	�YM�L�
                                      �VPQ��QNY��+EON�
                                    ð�ú�L�	P�ú�L�
                                      œÿP��è�ú�L��Q���RS���
                                      �U�T�
                                    \ No newline at end of file
                                    --- 232,285 ----
                                      ¶w, � 
                                    
                                    ¶Td™¶ZW
                                    X¶_W§�”+`d¶w. �„
                                    
                                    ¶Td™¶ZW
                                    X¶_W§�d²�Û¹›�™� 
                                    
                                    ¶TdöZW
                                    X¶_W§�:`dž�+`d¶w. �„
                                    
                                    ¶TdŶZW
                                    X¶_W66«����1������������	��H���
                                      ��@���
                                    ��@���"������&���k���'���Ö���*��e���/��Õ���<���w���>���ƒ���\��
                                    Ƕ_W§Å
                                    ɶ_W§¹
                                    ˶_W§­
                                    Ͷ_W²T¦� ²Ï:
                                    
                                    ¶TͶWdÒ¶ZW§²Ï¦w²T:
                                    X¶_W§f
                                    Ô¶_W²T¦� ²Ö:
                                    
                                    ¶TÔ¶WdÙ¶ZW§8²Ö¦0²T:
                                    X¶_W§
                                    Û¶_W²Ï¥�²Ö¦
                                    +„¶w¶5W§ô6§�
                                     ¶5W„*´¤¡ÿï§×
                                    ݶ_W²T¦Æ+d¶w/ ¹+¶Td¤�-+`¶w* � ²Q:
                                    
                                    ¶T߶Wdj¶ZW§„²N:
                                    
                                    ¶T߶Wdh¶ZW§g
                                    á¶_W²N¥�²Q¦�+d¶w* �
                                    X¶_W²T:²T¦+ž&+d¶w/ 
                                    
                                    ¶Tã¶Wdå¶ZW²ç:§�ü+¶w
                                     �+¶Td¤�+`¶w
                                       �„²ç¦�
                                    X¶_W²T:*´¦ž�ƒ*´®™�|*´¦pš�sš�n²N¥�²Q¦�
                                    X¶_W
                                    t¶_W
                                    ^¶_W
                                    F¶_W
                                    ê¶_W
                                    f¶_W²N¦�
                                    h¶_W²Q¦�
                                    j¶_W§�
                                    t¶_W6§�*²ç¦�"+¶Td �
                                    X¶_W§�
                                    ¶5W6„+¶Td¡÷	²ç¦�
                                    ì¶_W
                                    ^¶_W*´¦ž�!*´®™�š�*´¦p™�
                                    F¶_W
                                    ¶_W*´¶š7*´°™
                                    ¶_W
                                    î¶_W*´²™@*´´™�T
                                    ð¶_W
                                    ò¶_W
                                    ô¶_W
                                    ö¶_W
                                    ø¶_W
                                    ú¶_W
                                    ü¶_W
                                    þ¶_W
                                    �¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    
                                    ! ¶_W*´¸™�
                                    ¶_W
                                    ¶_W§�
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                    ¶_W
                                     ¶_W
                                    "¶_W
                                    $¶_W
                                    &¶_W
                                    (¶_W
                                    ¶_W§�¿
                                    *¶_W
                                    ,¶_W
                                    .¶_W*´¸™�
                                    0¶_W§�
                                    2¶_W
                                    4¶_W
                                    ,¶_W
                                    6¶_W
                                    ¶_W
                                    8¶_W
                                    :¶_W*´´™�K
                                    ð¶_W
                                    ò¶_W
                                    ô¶_W
                                    <¶_W
                                    >¶_W
                                    t¶_W
                                    þ¶_W
                                    �¶_W
                                    ¶_W
                                    @¶_W
                                    B¶_W
                                    ¶D°����÷��	¢h��É�Ê�Ë�Ì�Í�Î�Ï�Ð�Ñ�Ò�Ó�+Ô�2Ö�;×�BÙ�KÛ�TÝ�`â�iä�ræ�{é�„ê�ë�ªì�³í�¼î�Åï�Ìñ�Õò�Þó�çô�ðõ�ùö÷	ùûü$ý-þ6ÿ?�HQXajs|…	Ž
                                    ! —ž
                                    §°¹ÂËÔÝæíöÿ#,5 >!G$P%Y&b'k(t)}*†+,˜-¡.ª/³0¼1Å2Î3×4à5é6ò7û89
                                    :;<(=1>:?C@LAUB^CgDpEyF‚G‹H”IJ¦K¯L¸MÁNÊOÓPÜQåRîS÷T�U	VWX$Y-Z6[?\H]Q^Z_c`laub~c‡de™f¢g«h´i½jÆkÏlØmánêoópüqrst u)v2w;xDyMzV{]}f~ox€‚ˆ„‘…š†£‡¬ˆµŠ¼ŒÅÎŽ×àé‘ò’û“”
                                    •—™&š/›8œAžJŸS¢Z¤f¦v¤z¨ƒ©Œ«“­œ®¹¯Â°Ë²Ò´Ûµä¶í·ö¸ÿ¹º»¼#½,¿5Á>ÃGÅPÇYÉbËkÍtÏ}цÓ՘ס٪۳ܼÝÅßÎàÕâáæêêíìóîüìðô$õ2ö<øAúIûQýXþ_ÿbýfoxŠ“›¤¬
                                    µÁÈÑ×àæï ø!ÿ"	$	&	(	(*	/+	8,	?/	B5	M7	S9	_7	k;	n<	q>	|A	…B	“G	–H	˜G	ŸI	¢K	¥/	°1	¶0	¼2	ÇO	ÒP	ÓQ	ÕP	ÞS	áV	çX	îY	ôX	ø[	ÿ\
                                    ! 	[
                                    ! 
                                    ^
                                    ! d
                                    ! e
                                    ! #f
                                    ! ,i
                                    ! /k
                                    ! 8n
                                    ! @o
                                    ! Hp
                                    ! Ws
                                    ! _t
                                    ! bu
                                    ! ew
                                    ! jz
                                    ! l{
                                    ! q|
                                    ! |
                                    ! „€
                                    ! ‡
                                    ! Š‚
                                    ! …
                                    ! Ӡ
                                    ! —…
                                    ! š„
                                    ! œ‡
                                    ! ¤‹
                                    ! «Œ
                                    ! ®
                                    ! ±‹
                                    ! µŽ
                                    ! ¾
                                    ! Æ‘
                                    ! Δ
                                    ! Û•
                                    ! Þ–
                                    ! ã•
                                    ! æ–
                                    ! è•
                                    ! ë™
                                    ! õš
                                    ! ø™
                                    ! ü›œ ¤§&¨)©,§0ª9«A­I°P±S²V°Z³c´k¶s¸€»‡¼Š½»‘¾š¿¤Ã¬Å¶É¾ÌËÏÒÐÕÑØÏÜÒèÔõÕØÙÚØÛÝ*á.ã7â=çKéRêUëXé\íhòoórôuòyö…ù‘úžþ¢�«ÿ±´¿Æ	É
                                    ! ÌÐÜ
                                    çîñôø
                                    
                                    
                                    	
                                    ! 
                                    
                                    
                                    
                                    
                                    
                                     
                                    !!
                                    $
                                    ("
                                    4'
                                    A*
                                    H+
                                    N*
                                    R-
                                    ^2
                                    `3
                                    d2
                                    h4
                                    k5
                                    p4
                                    s5
                                    u4
                                    x7
                                    {9
                                    ‚:
                                    …;
                                    ˆ9
                                    Œ=
                                    •A
                                    ˜B
                                    ›EHIKL N)O,Q5R=TBUPVSUZXbZg[p]s_|`„b‰c—dšc¡f©h®i·kºmÃnËoÓrâtåwëyówÿ{}~ +‚8„=…D†N…U‹ZŒakŒo‘r“{”ƒ•‹–˜˜¡™¦›®œ³ÀŸÎ ÑŸÕ¢Ú¤Ý©èªó«�­°²³¶'·5º=»E½N¿WÀ`ÁiÂrÃ{Ńnjʔ̠өլ֯طÙÂÛËÝÎßÖáÙêçãïäøçéêì&î/ð6ó=õFöO÷Vù]ûfüoýxþÿŠ�“œ¥®·ÀÉÒ	Û
                                    ! âë
                                    ÷�	$-6?HQZclu ~!‡"“&œ'¥(®)µ+Á/Ê1Ó2Ü3å4î5÷6�79:;"<+=4>=?F@OCXEaFjH�ø���¶���p�®Æ����pMN���pE���nF�L��kG�P��hH�P��eI�L��bJ�L��_K�L��\L�L�	�YM�L�
                                      �VPQ��QNY��+EON�
                                    ð�ú�L�	P�ú�L�
                                      œÿP��è�ú�L��Q���RS���
                                      �U�T�
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,95 ****
                                    ! Êþº¾���1‚��&gnu/classpath/tools/javah/ClassWrapper�� org/objectweb/asm/tree/ClassNode�	classpath� Lgnu/classpath/tools/javah/Main;�
                                    ! superClass�(Lgnu/classpath/tools/javah/ClassWrapper;�interfaceClasses�Ljava/util/ArrayList;�vtable�
                                    bridgeTargets�Ljava/util/HashSet;�methodNames�
                                    methodNameMap�Ljava/util/HashMap;�$assertionsDisabled�Z�<clinit>�()V�Code
                                    ! ����java/lang/Class���desiredAssertionStatus�()Z	�����LineNumberTable�LocalVariableTable�<init>�#(Lgnu/classpath/tools/javah/Main;)V
                                    ! ��#� ��%�java/util/HashSet
                                    ! �$�#	��(��
                                    �*�java/util/HashMap
                                    ! �)�#	��-��	��/���this�hasNativeMethod	��3�4�5�methods�Ljava/util/List;�7�9�8�java/util/List�:�;�iterator�()Ljava/util/Iterator;�=�?�>�java/util/Iterator�@�A�next�()Ljava/lang/Object;�C�!org/objectweb/asm/tree/MethodNode	�B�E�F�G�access�I
                                    ! �I�K�J�java/lang/reflect/Modifier�L�M�isNative�(I)Z�=�O�P��hasNext�i�Ljava/util/Iterator;�method�#Lorg/objectweb/asm/tree/MethodNode;�isThrowable�
                                    ! Exceptions�X�java/io/IOException
                                    ! ��Z�[��
                                    ! linkSupers	��]�^�_�name�Ljava/lang/String;�a�java/lang/Throwable
                                    ! �c�e�d�java/lang/String�f�g�equals�(Ljava/lang/Object;)Z	��i���self	��l�m�_�	superName
                                    ! �o�q�p�gnu/classpath/tools/javah/Main�r�s�getClass�<(Ljava/lang/String;)Lgnu/classpath/tools/javah/ClassWrapper;	��u�	�
                                    ! �w�java/lang/AssertionError
                                    ! �v�#�z�java/util/ArrayList
                                    ! �y�#	��}�~�5�
                                    ! interfaces�7�€��‚�get�(I)Ljava/lang/Object;
                                    ! �y�„�…�g�add�7�‡�ˆ�‰�size�()I�ifname�iface�findSlot�&(Lorg/objectweb/asm/tree/MethodNode;)I	����
                                      
                                    ! �y�‡
                                    ! �y�€
                                    ! �“�•�”�&gnu/classpath/tools/javah/MethodHelper�–�—�	overrides�I(Lorg/objectweb/asm/tree/MethodNode;Lorg/objectweb/asm/tree/MethodNode;)Z�base�addInterfaceMethods�+(Lgnu/classpath/tools/javah/ClassWrapper;)V
                                    ! ��œ�Œ��7�„
                                    ! ��Ÿ� �š�
                                    addInterfaces�im�slot
                                    ! �y�9
                                    ! ��¥�™�š�addLocalMethods	�B�]
                                    ! �$�„
                                    ! �I�ª�«�M�isStatic
                                    ! �y�­�®�¯�set�'(ILjava/lang/Object;)Ljava/lang/Object;�meth�
                                      makeVtable
                                    ! ��³�±�
                                    ! �y�µ� �¶�(Ljava/util/Collection;)V	��¸��
                                    ! �$�µ
                                    ! �)�»� �¼�(Ljava/util/Map;)V
                                    ! ��¾�¦�
                                    ! �“�À�Á�Â�getBridgeTarget�7(Lorg/objectweb/asm/tree/MethodNode;)Ljava/lang/String;�Ä�java/lang/StringBuilder
                                    ! �c�Æ�Ç�È�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �Ã�Ê� �Ë�(Ljava/lang/String;)V
                                    ! �Ã�Í�Î�Ï�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �Ã�Ñ�Ò�Ó�toString�()Ljava/lang/String;
                                    ! �c�Õ�Ö�×�lastIndexOf�(I)I
                                    ! �c�Ù�Ú�Û�	substring�(I)Ljava/lang/String;�Ý�$
                                    ! �)�ß�à�á�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�m�desc�sum�	newTarget�cname�index�printFields�-(Lgnu/classpath/tools/javah/CniPrintStream;)V	��ë�ì�5�fields�î� org/objectweb/asm/tree/FieldNode	�í�]
                                    ! �$�ñ�ò�g�contains
                                    ! �ô�ö�õ�%gnu/classpath/tools/javah/FieldHelper�÷�ø�print�x(Lgnu/classpath/tools/javah/CniPrintStream;Lorg/objectweb/asm/tree/FieldNode;Lgnu/classpath/tools/javah/ClassWrapper;Z)Z�out�*Lgnu/classpath/tools/javah/CniPrintStream;�f�"Lorg/objectweb/asm/tree/FieldNode;�
                                    hasMethodName�printMethods	�B��ã�_
                                    ! �)��&(Ljava/lang/Object;)Ljava/lang/Object;
                                    ! �“�÷�Š(Lgnu/classpath/tools/javah/CniPrintStream;Lorg/objectweb/asm/tree/MethodNode;Lgnu/classpath/tools/javah/ClassWrapper;Ljava/lang/String;)V�	nameToUse�
                                    printTextList�.(Ljava/io/PrintStream;ILjava/util/ArrayList;)V�gnu/classpath/tools/javah/Text	
                                    ! 
                                    �G�type
                                    ! �java/io/PrintStream��println�	  friend 
                                    ! �÷�Ë	
                                    ! �_�text
                                    ! ��Ljava/io/PrintStream;�what�textList�first�item� Lgnu/classpath/tools/javah/Text;$�::
                                    ! &'�(gnu/classpath/tools/javah/CniPrintStream
                                    ! &)*��	printName�
                                    printContents�B(Lgnu/classpath/tools/javah/CniPrintStream;Ljava/util/ArrayList;)V
                                    ! �.	
                                    ! &1�class 3�
                                       : public 
                                    ! �5�÷�é7�{
                                    ! &
                                    ! �:�þ�é
                                    ! �<�è�é
                                    ! &>?@�setModifiers�(I)VB�$  static ::java::lang::Class class$;D�}	��E
                                    ! �IGH�M�isInterfaceJ�! __attribute__ ((java_interface))L�;�
                                      printFully�(Ljava/io/PrintStream;)V
                                    ! �oPQR�getClassTextList�)(Ljava/lang/String;)Ljava/util/ArrayList;T�>// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-V�__X�/Z�_
                                    ! �c\]^�
                                    ! replaceAll�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;`�#ifndef b�#define d�#pragma interfacef�
                                    ! #include <h�.h>j�java/io/ByteArrayOutputStream
                                    ! i�#
                                    ! &m� n�(Ljava/io/OutputStream;)V
                                    ! &pq�š�addClass
                                    ! �s+,
                                    ! &uvN�printNamespaces
                                    ! ixyn�writeTo{�
                                      #endif // �xname�bytes�Ljava/io/ByteArrayOutputStream;�cxxOut�
                                      SourceFile�ClassWrapper.java�!��������������������	�
                                    ! ������
                                    ! ������
                                    ������
                                    ���������������������1������¶�š�§�³�±�����������6�������� �!�����d����� *·�"*»�$Y·�&µ�'*»�)Y·�+µ�,*+µ�.±�����������M��F��K��O��P�������� �0������ �����1������„�����.*´�2¹�6�L§�+¹�<�À�BM,´�D¸�H™�¬+¹�N�šÿä¬�����������T�
                                    ! �U�
                                    �W��X�!�Y�#�U�,�[���� ����.�0����
                                    ! �$�Q�R����S�T���U���V�����W����r�����"*·�Y*L§�+´�\`¶�b™�¬+´�hL+Çÿì¬�������"����`��a��b�	�d��e��f��b� �h��������"�0������j����[���V�����W����û�����*´�kÇ�±*´�hÇ�k**´�.*´�k¶�nµ�h²�š�*´�tÆ�»�vY·�x¿*»�yY·�{µ�t<§�**´�|¹��À�cM*´�.,¶�nN-·�Y*´�t-¶�ƒW„*´�|¹�†�¡ÿÏ*´�h·�Y±�������:����m��p��r��t��u�3�v�>�w�C�y�Q�z�Z�{�^�|�g�w�w��~�€����*�����0����@�7�Q�G��Q��Š�_��Z�
                                    �‹����Œ������ˆ�����,*´�Ž¶�d=§�*´�Ž¶�‘À�BN+-¸�’™�¬„ÿœÿæ¬�����������„�
                                    �†��‡�!�ˆ�#�„�*�Š����*����,�0������,�S�T��
                                    ! � �Q�G���
                                    ! �˜�T���™�š�����½�����G+´�2¹�6�M§�.,¹�<�À�BN*-·�›6 �*´�Ž-¶�ƒW*´�2-¹��W,¹�N�šÿÏ*+·�ž±�������*�
                                      ����
                                    ! ��
                                    �’��“��”�$�–�-�˜�8��A�›�F�œ����4����G�0������G�‹���
                                    ! �=�Q�R���!�¡�T����¢�G��� �š����������,+´�tÇ�±+´�t¶�£M§�,¹�<�À�N*-·�¤,¹�N�šÿë±�������"���� ��¡��¢��£��¥��¦�"�£�+�¨����*����,�0������,�˜�����Q�R����‹����¦������Ï�����[*´�2¹�6�L§�G+¹�<�À�BM*´�',´�§¶�¨W,´�D¸�©™�§�$*,·�›> �*´�Ž,¶�ƒW§�
                                    *´�Ž,¶�¬W+¹�N�šÿ¶±�������2����¬�
                                    ! �­�
                                    �¯��°�#�±�-�²�0�³�6�´�;�µ�G�·�Q�­�Z�¹����*����[�0����
                                    ! �Q�Q�R���:�°�T��6��¢�G���±���V�����W���Ý����	*´�ŽÆ�±*´�hÆ�C*´�h·�²*»�yY*´�h´�Ž·�´µ�Ž*»�$Y*´�h´�··�¹µ�·*»�)Y*´�h´�,·�ºµ�,§�$*»�yY·�{µ�Ž*»�$Y·�&µ�·*»�)Y·�+µ�,*·�½**·�ž*´�2¹�6�L§�|+¹�<�À�BM,¸�¿N-Æ�i»�ÃY,´�§¸�Å·�É-¶�̶�Ð:*´�·¶�¨6™�B*´�\:/¶�Ô6`¶�Ø:*´�,»�ÃY¸�Å·�Éܶ�Ì,´�§¶�̶�ж�ÞW+¹�N�šÿ±�������j����½��¾��¿��Á��Â�(�Ã�:�Ä�O�É�Z�Ê�e�Ë�p�Í�t�Î�y�Ö�ƒ�×�†�Ù��Ú�•�Û�™�Ý�°�Þ�»�ß�À�â�Æ�ã�Ï�ä�Ú�å�ÿ�×�é����R���	�0����ƒ�†�Q�R���o�â�T��•�j�ã�_��°�O�ä�_��»�D�å���Æ�9�æ�_��Ï�0�ç�G���è�é�����¿�����C*´�ê¹�6�M*´�hN§�*,¹�<�À�í:*´�'´�ï¶�ð6+-¸�ó™�N,¹�N�šÿÓ±�������&�	���í�
                                    ! �î��ï��ñ��ò�+�ó�7�ô�9�ï�B�ö����>����C�0������C�ù�ú��
                                    ! �9�Q�R���4�j�����û�ü��+��ý����þ�é��V�����W��������v*·�²*´�2¹�6�M§�^,¹�<�À�BN»�ÃY-´�§¸�Å·�É-´�ÿ¶�̶�Ð:*´�·¶�ð™�*´�,¶À�c:§�	-´�§:*´�,¶�ÞW+-*¸,¹�N�šÿŸ±�������2����ú��þ��ÿ���5�A�R�X�d	�l�ÿ�u����H����v�0������v�ù�ú���h�Q�R���Q�â�T��O��_��X��_��5�7�ä�_��	�����ð�����R-Ç�±-¶�£:6§�9¹�<�À
                                    ! :´ �$™�
                                    ! +¶6 �
                                    ! +¶+´¶¹�N�šÿñ�������>����������&�+�/�2�7�>�G�Q"����H����R�0������R�ù����R�G����R�
                                    ! ���G�Q�R���D ����*!"���÷�é�����L�����+#¶%+*´�\¶(±����������&�'�(���������0�������ù�ú��+,��V�����W��������Š*+,·-+¶/+0¶%+*´�\¶(*´�hÆ�+2¶%*´�h+¶4+¶/+6¶8*+,·-+¶/*+·9*+·;+¶=+A¶8*+,·-+C¶%*´E¸F™�
                                    ! +I¶%+K¶8*+,·-±�������Z���.�/�1�3�4�!6�(7�09�4:�;<�B=�FA�KB�PD�UE�\G�cI�jJ�tK�{L�‚N�‰O���� ����Š�0������Š�ù�ú����Š�
                                    ! ��MN��V�����W��������Ü*·�Y*´�.*´�\¶OM+S¶+¶»�ÃYU·�É*´�\WY¶[¶�ÌU¶�̶�ÐN+»�ÃY_·�É-¶�̶�ж+»�ÃYa·�É-¶�̶�ж+¶+c¶+¶*´�hÆ�+e¶+*´�k¶+g¶»iY·k:»&Y·l:*¶o*,·r+¶t+¶w+¶+»�ÃYz·�É-¶�̶�ж±�������^���S�U�W�X�Y�?Z�T[�i\�m]�t^�x`�b�†c�Žd�•i�žj�©k�¯l�¶m�¼n�Âp�Æq�Ûr����>����Ü�0������Ü�ù���Ì�
                                    ! ��?�|�_��ž�>}~��©�3�ú���Ò�Ó�����/�����*´�\°����������v���������0����€���
                                    \ No newline at end of file
                                    --- 1,97 ----
                                    ! Êþº¾���1��&gnu/classpath/tools/javah/ClassWrapper�� org/objectweb/asm/tree/ClassNode�	classpath� Lgnu/classpath/tools/javah/Main;�
                                    ! superClass�(Lgnu/classpath/tools/javah/ClassWrapper;�interfaceClasses�Ljava/util/ArrayList;�	Signature�?Ljava/util/ArrayList<Lgnu/classpath/tools/javah/ClassWrapper;>;�vtable�:Ljava/util/ArrayList<Lorg/objectweb/asm/tree/MethodNode;>;�
                                    bridgeTargets�Ljava/util/HashSet;�'Ljava/util/HashSet<Ljava/lang/String;>;�methodNames�
                                    methodNameMap�Ljava/util/HashMap;�9Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;�$assertionsDisabled�Z�<clinit>�()V�Code
                                    ! ����java/lang/Class�� �desiredAssertionStatus�()Z	��"���LineNumberTable�LocalVariableTable�<init>�#(Lgnu/classpath/tools/javah/Main;)V
                                    ! ��(�%��*�java/util/HashSet
                                    ! �)�(	��-���/�java/util/HashMap
                                    ! �.�(	��2��	��4���this�hasNativeMethod	��8�9�:�methods�Ljava/util/List;�<�>�=�java/util/List�?�@�iterator�()Ljava/util/Iterator;�B�D�C�java/util/Iterator�E�F�next�()Ljava/lang/Object;�H�!org/objectweb/asm/tree/MethodNode	�G�J�K�L�access�I
                                    ! �N�P�O�java/lang/reflect/Modifier�Q�R�isNative�(I)Z�B�T�U� �hasNext�i�Ljava/util/Iterator;�method�#Lorg/objectweb/asm/tree/MethodNode;�LocalVariableTypeTable�Ljava/util/Iterator<*>;�isThrowable�
                                    ! Exceptions�_�java/io/IOException
                                    ! ��a�b��
                                    ! linkSupers	��d�e�f�name�Ljava/lang/String;�h�java/lang/Throwable
                                    ! �j�l�k�java/lang/String�m�n�equals�(Ljava/lang/Object;)Z	��p���self	��s�t�f�	superName
                                    ! �v�x�w�gnu/classpath/tools/javah/Main�y�z�getClass�<(Ljava/lang/String;)Lgnu/classpath/tools/javah/ClassWrapper;	��|�	�
                                    ! �~�java/lang/AssertionError
                                    ! �}�(��java/util/ArrayList
                                    ! �€�(	��„�…�:�
                                    ! interfaces�<�‡�ˆ�‰�get�(I)Ljava/lang/Object;
                                    ! �€�‹�Œ�n�add�<�Ž���size�()I�ifname�iface�findSlot�&(Lorg/objectweb/asm/tree/MethodNode;)I	��–�
                                    �
                                      
                                    ! �€�Ž
                                    ! �€�‡
                                    ! �š�œ�›�&gnu/classpath/tools/javah/MethodHelper��ž�	overrides�I(Lorg/objectweb/asm/tree/MethodNode;Lorg/objectweb/asm/tree/MethodNode;)Z�base�addInterfaceMethods�+(Lgnu/classpath/tools/javah/ClassWrapper;)V
                                    ! ��£�“�”�<�‹
                                    ! ��¦�§�¡�
                                    addInterfaces�im�slot
                                    ! �€�>
                                    ! ��¬� �¡�addLocalMethods	�G�d
                                    ! �)�‹
                                    ! �N�±�²�R�isStatic
                                    ! �€�´�µ�¶�set�'(ILjava/lang/Object;)Ljava/lang/Object;�meth�
                                      makeVtable
                                    ! ��º�¸�
                                    ! �€�¼�%�½�(Ljava/util/Collection;)V	��¿��
                                    ! �)�¼
                                    ! �.�Â�%�Ã�(Ljava/util/Map;)V
                                    ! ��Å�­�
                                    ! �š�Ç�È�É�getBridgeTarget�7(Lorg/objectweb/asm/tree/MethodNode;)Ljava/lang/String;�Ë�java/lang/StringBuilder
                                    ! �j�Í�Î�Ï�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �Ê�Ñ�%�Ò�(Ljava/lang/String;)V
                                    ! �Ê�Ô�Õ�Ö�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �Ê�Ø�Ù�Ú�toString�()Ljava/lang/String;
                                    ! �j�Ü�Ý�Þ�lastIndexOf�(I)I
                                    ! �j�à�á�â�	substring�(I)Ljava/lang/String;�ä�$
                                    ! �.�æ�ç�è�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�m�desc�sum�	newTarget�cname�index�printFields�-(Lgnu/classpath/tools/javah/CniPrintStream;)V	��ò�ó�:�fields�õ� org/objectweb/asm/tree/FieldNode	�ô�d
                                    ! �)�ø�ù�n�contains
                                    ! �û�ý�ü�%gnu/classpath/tools/javah/FieldHelper�þ�ÿ�print�x(Lgnu/classpath/tools/javah/CniPrintStream;Lorg/objectweb/asm/tree/FieldNode;Lgnu/classpath/tools/javah/ClassWrapper;Z)Z�out�*Lgnu/classpath/tools/javah/CniPrintStream;�f�"Lorg/objectweb/asm/tree/FieldNode;�
                                    hasMethodName�printMethods	�G�ê�f
                                    ! �.	�ˆ
                                    ! �&(Ljava/lang/Object;)Ljava/lang/Object;
                                    ! �š�þ
                                    �Š(Lgnu/classpath/tools/javah/CniPrintStream;Lorg/objectweb/asm/tree/MethodNode;Lgnu/classpath/tools/javah/ClassWrapper;Ljava/lang/String;)V�	nameToUse�
                                    printTextList�.(Ljava/io/PrintStream;ILjava/util/ArrayList;)V�P(Ljava/io/PrintStream;ILjava/util/ArrayList<Lgnu/classpath/tools/javah/Text;>;)V�gnu/classpath/tools/javah/Text	�L�type
                                    ! �java/io/PrintStream��println�	  friend 
                                    ! �þ�Ò	!"�f�text
                                    ! $�Ò�Ljava/io/PrintStream;�what�textList�first�item� Lgnu/classpath/tools/javah/Text;�7Ljava/util/ArrayList<Lgnu/classpath/tools/javah/Text;>;�6Ljava/util/Iterator<Lgnu/classpath/tools/javah/Text;>;.�::
                                    ! 01�(gnu/classpath/tools/javah/CniPrintStream
                                    ! 034�Ò�	printName�
                                    printContents�B(Lgnu/classpath/tools/javah/CniPrintStream;Ljava/util/ArrayList;)V�d(Lgnu/classpath/tools/javah/CniPrintStream;Ljava/util/ArrayList<Lgnu/classpath/tools/javah/Text;>;)V
                                    ! �9
                                    ! 0<�class >�
                                       : public 
                                    ! �@�þ�ðB�{
                                    ! 0$
                                    ! �E�ð
                                    ! �G�ï�ð
                                    ! 0IJK�setModifiers�(I)VM�$  static ::java::lang::Class class$;O�}	��J
                                    ! �NRS�R�isInterfaceU�! __attribute__ ((java_interface))W�;�
                                      printFully�(Ljava/io/PrintStream;)V
                                    ! �v[\]�getClassTextList�)(Ljava/lang/String;)Ljava/util/ArrayList;_�>// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-a�__c�/e�_
                                    ! �jghi�
                                    ! replaceAll�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;k�#ifndef m�#define o�#pragma interfaceq�
                                    ! #include <s�.h>u�java/io/ByteArrayOutputStream
                                    ! t�(
                                    ! 0x�%y�(Ljava/io/OutputStream;)V
                                    ! 0{|�¡�addClass
                                    ! �~56
                                    ! 0€Y�printNamespaces
                                    ! tƒ„y�writeTo†�
                                      #endif // �xname�bytes�Ljava/io/ByteArrayOutputStream;�cxxOut�
                                      SourceFile�ClassWrapper.java�!��������������������	�
                                    ! ���������
                                    �
                                    ! �������������������������������������������������1������¶�š�§�³�!±����#�������6�$�������%�&�����d����� *·�'*»�)Y·�+µ�,*»�.Y·�0µ�1*+µ�3±����#�������M��F��K��O��P�$������� �5������ �����6� �����–�����.*´�7¹�;�L§�+¹�A�À�GM,´�I¸�M™�¬+¹�S�šÿä¬����#�������T�
                                    ! �U�
                                    �W��X�!�Y�#�U�,�[�$��� ����.�5����
                                    ! �$�V�W����X�Y��Z�����
                                    ! �$�V�[���\� ��]�����^����r�����"*¶�`*L§�+´�cg¶�i™�¬+´�oL+Çÿì¬����#���"����`��a��b�	�d��e��f��b� �h�$�������"�5������q�����b���]�����^����û�����*´�rÇ�±*´�oÇ�k**´�3*´�r¶�uµ�o²�!š�*´�{Æ�»�}Y·�¿*»�€Y·�‚µ�{<§�**´�ƒ¹�†�À�jM*´�3,¶�uN-¶�`*´�{-¶�ŠW„*´�ƒ¹��¡ÿÏ*´�o¶�`±����#���:����m��p��r��t��u�3�v�>�w�C�y�Q�z�Z�{�^�|�g�w�w��~�€�$���*�����5����@�7�V�L��Q��‘�f��Z�
                                    �’����“�”�����ˆ�����,*´�•¶�—d=§�*´�•¶�˜À�GN+-¸�™™�¬„ÿœÿæ¬����#�������„�
                                    �†��‡�!�ˆ�#�„�*�Š�$���*����,�5������,�X�Y��
                                    ! � �V�L���
                                    ! �Ÿ�Y��� �¡�����Ï�����G+´�7¹�;�M§�.,¹�A�À�GN*-·�¢6 �*´�•-¶�ŠW*´�7-¹�¤�W,¹�S�šÿÏ*+·�¥±����#���*�
                                      ����
                                    ! ��
                                    �’��“��”�$�–�-�˜�8��A�›�F�œ�$���4����G�5������G�’���
                                    ! �=�V�W���!�¨�Y����©�L��Z�����
                                    ! �=�V�[���§�¡�����¢�����,+´�{Ç�±+´�{¶�ªM§�,¹�A�À�N*-·�«,¹�S�šÿë±����#���"���� ��¡��¢��£��¥��¦�"�£�+�¨�$���*����,�5������,�Ÿ�����V�W����’���Z�������V�[���­������á�����[*´�7¹�;�L§�G+¹�A�À�GM*´�,,´�®¶�¯W,´�I¸�°™�§�$*,·�¢> �*´�•,¶�ŠW§�
                                    *´�•,¶�³W+¹�S�šÿ¶±����#���2����¬�
                                    ! �­�
                                    �¯��°�#�±�-�²�0�³�6�´�;�µ�G�·�Q�­�Z�¹�$���*����[�5����
                                    ! �Q�V�W���:�·�Y��6��©�L��Z�����
                                    ! �Q�V�[���¸���]�����^���ï����	*´�•Æ�±*´�oÆ�C*´�o·�¹*»�€Y*´�o´�•·�»µ�•*»�)Y*´�o´�¾·�Àµ�¾*»�.Y*´�o´�1·�Áµ�1§�$*»�€Y·�‚µ�•*»�)Y·�+µ�¾*»�.Y·�0µ�1*·�Ä**·�¥*´�7¹�;�L§�|+¹�A�À�GM,¸�ÆN-Æ�i»�ÊY,´�®¸�Ì·�Ð-¶�Ó¶�×:*´�¾¶�¯6™�B*´�c:/¶�Û6`¶�ß:*´�1»�ÊY¸�Ì·�Ðã¶�Ó,´�®¶�Ó¶�׶�åW+¹�S�šÿ±����#���j����½��¾��¿��Á��Â�(�Ã�:�Ä�O�É�Z�Ê�e�Ë�p�Í�t�Î�y�Ö�ƒ�×�†�Ù��Ú�•�Û�™�Ý�°�Þ�»�ß�À�â�Æ�ã�Ï�ä�Ú�å�ÿ�×�é�$���R���	�5����ƒ�†�V�W���o�é�Y��•�j�ê�f��°�O�ë�f��»�D�ì���Æ�9�í�f��Ï�0�î�L��Z�����ƒ�†�V�[���ï�ð�����Ñ�����C*´�ñ¹�;�M*´�oN§�*,¹�A�À�ô:*´�,´�ö¶�÷6+-¸�ú™�N,¹�S�šÿÓ±����#���&�	���í�
                                    ! �î��ï��ñ��ò�+�ó�7�ô�9�ï�B�ö�$���>����C�5������C���
                                    ! �9�V�W���4�q������+����Z�����
                                    ! �9�V�[���ð��]�����^��������v*·�¹*´�7¹�;�M§�^,¹�A�À�GN»�ÊY-´�®¸�Ì·�Ð-´¶�Ó¶�×:*´�¾¶�÷™�*´�1¶À�j:§�	-´�®:*´�1¶�åW+-*¸,¹�S�šÿŸ±����#���2����ú��þ��ÿ���5�A�R�X�d	�l�ÿ�u�$���H����v�5������v����h�V�W���Q�é�Y��O��f��X��f��5�7�ë�f��Z������h�V�[���������������R-Ç�±-¶�ª:6§�9¹�A�À:´ �$™�
                                    ! +¶6 �
                                    ! +¶+´ ¶#¹�S�šÿñ����#���>����������&�+�/�2�7�>�G�Q"�$���H����R�5������R�%����R&�L����R'�
                                    ! ���G�V�W���D(����*)*��Z�������R'+���G�V,���þ�ð�����L�����+-¶/+*´�c¶2±����#������&�'�(�$��������5���������56��]�����^����7���.�����Š*+,·8+¶:+;¶/+*´�c¶2*´�oÆ�+=¶/*´�o+¶?+¶:+A¶C*+,·8+¶:*+·D*+·F+¶H+L¶C*+,·8+N¶/*´P¸Q™�
                                    ! +T¶/+V¶C*+,·8±����#���Z���.�/�1�3�4�!6�(7�09�4:�;<�B=�FA�KB�PD�UE�\G�cI�jJ�tK�{L�‚N�‰O�$��� ����Š�5������Š�����Š'�
                                    ! ��Z�������Š'+��XY��]�����^���¢�����Ü*¶�`*´�3*´�c¶ZM+^¶#+¶»�ÊY`·�Ð*´�cbd¶f¶�Ó`¶�Ó¶�×N+»�ÊYj·�Ð-¶�Ó¶�׶#+»�ÊYl·�Ð-¶�Ó¶�׶#+¶+n¶#+¶*´�oÆ�+p¶+*´�r¶+r¶#»tY·v:»0Y·w:*¶z*,·}+¶+¶‚+¶+»�ÊY…·�Ð-¶�Ó¶�׶#±����#���^���S�U�W�X�Y�?Z�T[�i\�m]�t^�x`�b�†c�Žd�•i�žj�©k�¯l�¶m�¼n�Âp�Æq�Ûr�$���>����Ü�5������Ü�%���Ì'�
                                    ! ��?�‡�f��ž�>ˆ‰��©�3Š��Z������Ì'+���Ù�Ú�����/�����*´�c°����#������v�$��������5����‹���Œ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,60 ****
                                    ! Êþº¾���1��(gnu/classpath/tools/javah/CniPrintStream��java/io/PrintStream�currentModifiers�I�sawArray�Z�
                                    ! allClasses�Ljava/util/HashSet;�previousPackage�[Ljava/lang/String;�$assertionsDisabled�<clinit>�()V�Code
                                    ! ����java/lang/Class���desiredAssertionStatus�()Z	���
                                    ��LineNumberTable�LocalVariableTable�<init>�(Ljava/io/OutputStream;)V
                                    ! ����	�� ���"�java/util/HashSet
                                    ! �!�$��	��&�	�
                                    ! �(�java/lang/String	��*���this�*Lgnu/classpath/tools/javah/CniPrintStream;�out�Ljava/io/OutputStream;�addClass�+(Lgnu/classpath/tools/javah/ClassWrapper;)V	�2�4�3�&gnu/classpath/tools/javah/ClassWrapper�5�6�name�Ljava/lang/String;
                                    ! �!�8�9�:�add�(Ljava/lang/Object;)Z�cw�(Lgnu/classpath/tools/javah/ClassWrapper;�setModifiers�(I)V�@�public:
                                    ! ��B�C�D�println�(Ljava/lang/String;)V�F�public: // actually protected�H�private:�J�#public: // actually package-private�newMods�getName�,(Lorg/objectweb/asm/Type;)Ljava/lang/String;	�O�Q�P�org/objectweb/asm/Type�R�S�BOOLEAN_TYPE�Lorg/objectweb/asm/Type;�U�jboolean	�O�W�X�S�	BYTE_TYPE�Z�jbyte	�O�\�]�S�	CHAR_TYPE�_�jchar	�O�a�b�S�
                                    ! SHORT_TYPE�d�jshort	�O�f�g�S�INT_TYPE�i�jint	�O�k�l�S�	LONG_TYPE�n�jlong	�O�p�q�S�
                                    ! FLOAT_TYPE�s�jfloat	�O�u�v�S�DOUBLE_TYPE�x�jdouble	�O�z�{�S�	VOID_TYPE�}�java/lang/AssertionError
                                    ! �|�$�€�void�type�getClassName
                                    ! �O�„�…�†�toString�()Ljava/lang/String;
                                    ! �'�ˆ�‰�Š�length�()I
                                    ! �'�Œ��Ž�	substring�(II)Ljava/lang/String;�print�(Lorg/objectweb/asm/Type;)V
                                    ! �O�’�“�Š�getSort
                                    ! �O�•�–�Š�
                                    getDimensions�˜�JArray< 
                                    ! ��š��D
                                    ! �O�œ��ž�getElementType�()Lorg/objectweb/asm/Type;	�� ���¢�::
                                    ! ��¤�‚�M
                                    ! ��¦�§�D�	printName�©� *
                                    ! ��«�L�M�­� > *�
                                    ! arrayCount�i�*(Ljava/io/PrintStream;Ljava/lang/String;)V�²�::|/
                                    ! �'�´�µ�¶�split�'(Ljava/lang/String;)[Ljava/lang/String;
                                    ! ��š
                                    ! �¹�»�º�"gnu/classpath/tools/javah/Keywords�¼�½�
                                      getCxxName�&(Ljava/lang/String;)Ljava/lang/String;�Ljava/io/PrintStream;�parts�printlnName
                                    ! ��Â�§�°
                                    ! ��Ä�C��indent�(Ljava/io/PrintStream;I)V�È�  �n�
                                    moveToPackage�+(Ljava/io/PrintStream;[Ljava/lang/String;)V
                                    ! �'�Í�Î�:�equals
                                    ! ��Ð�Å�Æ�Ò�}
                                    ! ��B��
                                      namespace 
                                    ! ��×�À�°�Ù�{�pkgParts�commonIndex�j�
                                      writeClass
                                    ! �'�ß�à�á�lastIndexOf�(I)I�ã���å�/
                                    ! �'�ç��è�(I)Ljava/lang/String;
                                    ! ��ê�Ê�Ë�ì�class �î�;�klass�index�pkg�	className�printNamespaces�(Ljava/io/PrintStream;)V�ö�#include <gcj/array.h>
                                    ! �!�ø�ù�ú�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�
                                    ! �ý�ÿ�þ�java/util/Arrays��sort�([Ljava/lang/Object;)V�
                                      java/lang/
                                    ! �'�
                                    ! startsWith�(Ljava/lang/String;)Z	�java/io/�
                                    ! java/util/
                                    �
                                    extern "Java"
                                    ! ��Ý�°�classes�first�seen�
                                      SourceFile�CniPrintStream.java�!��������������������	�
                                    ! ���������
                                    ������������1������¶�š�§�³�±�����������1��������������b�����*+·�*µ�*»�!Y·�#µ�%*½�'µ�)±�����������@��4�
                                    ! �:��<��A���������+�,������-�.���/�0�����E�����
                                    *´�%+´�1¶�7W±�������
                                    ! ����E��F��������
                                    �+�,�����
                                    �;�<���=�>�����³�����S~<*´�Ÿ�Hª����9������������0���9���'*?¶�A§�*E¶�A§�*G¶�A§�	*I¶�A*µ�±�������2����J��K�
                                    �M�,�P�2�Q�5�S�;�T�>�V�D�W�G�Y�M�\�R�^��������S�+�,�����S�K����L�M�����à�����h+²�N¦�T°+²�V¦�Y°+²�[¦�^°+²�`¦�c°+²�e¦�h°+²�j¦�m°+²�o¦�r°+²�t¦�w°²�š�+²�y¥�»�|Y·�~¿°�������J����b��c�
                                    ! �d��e��f��g��h�%�i�(�j�/�k�2�l�9�m�<�n�C�o�F�p�M�q�P�t�e�u��������h�+�,�����h��S���‚�M�����f�����+¶�ƒM,,¶�‡d¶�‹M*´�%,¶�7W,°�����������{��|����€���� �����+�,�������S����5�6���������ø�����l=+¶�‘	 �%+¶�”=>§�*—¶�™„¡ÿõ+¶�›L*µ�Ÿ+¶�‘
                                    !  �*¡¶�™**+¶�£¶�¥*¨¶�™§�**+·�ª¶�™ž�§�	*¬¶�™„ÿÿö±�������J����†��‡��‰��Š��‹��Š�#�Œ�(��-��6�‘�<�’�E�“�N�—�W�™�[�›�^��d�›�k� ����*����l�+�,�����l��S���j�®�����¯����§�°�����Š�����*+±¶�³M>§�™�	*¡¶�·*,2¸�¸¶�·„,¾¡ÿæ±�����������¦��§��©��ª��«� �§�)�­����*����*�-�¾�����*�5�6���#�¿���	� �¯����À�°�����F�����
                                    ! *+¸�Á*¶�ñ�����������³��´�	�µ��������
                                    ! �-�¾�����
                                    ! �5�6���§�D�����>�����*+¸�Á±�������
                                    ! ����»��¼���������+�,������5�6���Å�Æ�����h�����>§�+Ƕ�·„¡ÿõ±�����������À��Â��À��Ä����*�����+�,������-�¾�����É�����¯����Ê�Ë����0�����Œ>§�!,¾¡�§�!*´�)2,2¶�Ìš�§�„*´�)¾¡ÿÜ*´�)¾d6§�*+`·�Ï+Ѷ�Ó„ÿ¢ÿë6§�,*+`·�Ï+Ô¶�·+,2¸�Ö*+`·�Ï+ض�Ó„,¾¡ÿÓ*,µ�)±�������N����Ê��Ì��Í��Î��Ï� �Ê�,�Ò�8�Ô�A�Õ�G�Ò�P�Ø�V�Ú�_�Û�e�Ü�m�Ý�v�Þ�|�Ø�†�à�‹�á����>����Œ�+�,�����Œ�-�¾����Œ�Ú����Š�Û���5��Ü���S�3�Ü����Ý�°�����î�����d,/¶�Þ> �â§�	,¶�‹: �
                                    ! ½�'§�
                                    ! ä¶�³: �,§�
                                    ! ,`¶�æ:*+·�é*+¾`·�Ï+ë¶�·+¸�Á+í¶�Ó±�������*�
                                    ! ���å��æ��ç�.�è�@�é�G�ê�Q�ë�W�ì�]�í�c�î����H����d�+�,�����d�-�¾����d�ï�6���]�ð����K�ñ�6��.�6�Ú���@�$�ò�6���ó�ô����S�����•*´�Ÿ™�
                                    +õ¶�Ó+¶�Ã*´�%½�'¶�÷À�ûM,¸�ü>66§�M,2:¶š�9¶š�.
                                    ! ¶™�§� ™�+¶�Ó+ض�Ó>6*+·„,¾¡ÿ²™�*+½�'·�é+Ѷ�Ó±�������^����ò��ô�
                                    �õ��ø� �ù�$�û�&�ü�)�ý�/�ÿ�5��K�V�Y�]�d�j�l�o
                                    ! �v�ý�€�…�Ž�”����H����•�+�,�����•�-�¾�� �u���&�o���)�l���,�T�¯���5�A�ï�6�����
                                    \ No newline at end of file
                                    --- 1,60 ----
                                    ! Êþº¾���1��(gnu/classpath/tools/javah/CniPrintStream��java/io/PrintStream�currentModifiers�I�sawArray�Z�
                                    ! allClasses�Ljava/util/HashSet;�	Signature�'Ljava/util/HashSet<Ljava/lang/String;>;�previousPackage�[Ljava/lang/String;�$assertionsDisabled�<clinit>�()V�Code
                                    ! ����java/lang/Class���desiredAssertionStatus�()Z	�����LineNumberTable�LocalVariableTable�<init>�(Ljava/io/OutputStream;)V
                                    ! �� ��	��"���$�java/util/HashSet
                                    ! �#�&��	��(�	�
                                    ! �*�java/lang/String	��,�
                                    ��this�*Lgnu/classpath/tools/javah/CniPrintStream;�out�Ljava/io/OutputStream;�addClass�+(Lgnu/classpath/tools/javah/ClassWrapper;)V	�4�6�5�&gnu/classpath/tools/javah/ClassWrapper�7�8�name�Ljava/lang/String;
                                    ! �#�:�;�<�add�(Ljava/lang/Object;)Z�cw�(Lgnu/classpath/tools/javah/ClassWrapper;�setModifiers�(I)V�B�public:
                                    ! ��D�E�F�println�(Ljava/lang/String;)V�H�public: // actually protected�J�private:�L�#public: // actually package-private�newMods�getName�,(Lorg/objectweb/asm/Type;)Ljava/lang/String;	�Q�S�R�org/objectweb/asm/Type�T�U�BOOLEAN_TYPE�Lorg/objectweb/asm/Type;�W�jboolean	�Q�Y�Z�U�	BYTE_TYPE�\�jbyte	�Q�^�_�U�	CHAR_TYPE�a�jchar	�Q�c�d�U�
                                    ! SHORT_TYPE�f�jshort	�Q�h�i�U�INT_TYPE�k�jint	�Q�m�n�U�	LONG_TYPE�p�jlong	�Q�r�s�U�
                                    ! FLOAT_TYPE�u�jfloat	�Q�w�x�U�DOUBLE_TYPE�z�jdouble	�Q�|�}�U�	VOID_TYPE��java/lang/AssertionError
                                    ! �~�&�‚�void�type�getClassName
                                    ! �Q�†�‡�ˆ�toString�()Ljava/lang/String;
                                    ! �)�Š�‹�Œ�length�()I
                                    ! �)�Ž���	substring�(II)Ljava/lang/String;�print�(Lorg/objectweb/asm/Type;)V
                                    ! �Q�”�•�Œ�getSort
                                    ! �Q�—�˜�Œ�
                                    getDimensions�š�JArray< 
                                    ! ��œ�‘�F
                                    ! �Q�ž�Ÿ� �getElementType�()Lorg/objectweb/asm/Type;	��¢���¤�::
                                    ! ��¦�„�O
                                    ! ��¨�©�F�	printName�«� *
                                    ! ��­�N�O�¯� > *�
                                    ! arrayCount�i�*(Ljava/io/PrintStream;Ljava/lang/String;)V�´�::|/
                                    ! �)�¶�·�¸�split�'(Ljava/lang/String;)[Ljava/lang/String;
                                    ! ��œ
                                    ! �»�½�¼�"gnu/classpath/tools/javah/Keywords�¾�¿�
                                      getCxxName�&(Ljava/lang/String;)Ljava/lang/String;�Ljava/io/PrintStream;�parts�printlnName
                                    ! ��Ä�©�²
                                    ! ��Æ�E��indent�(Ljava/io/PrintStream;I)V�Ê�  �n�
                                    moveToPackage�+(Ljava/io/PrintStream;[Ljava/lang/String;)V
                                    ! �)�Ï�Ð�<�equals
                                    ! ��Ò�Ç�È�Ô�}
                                    ! ��D��
                                      namespace 
                                    ! ��Ù�Â�²�Û�{�pkgParts�commonIndex�j�
                                      writeClass
                                    ! �)�á�â�ã�lastIndexOf�(I)I�å���ç�/
                                    ! �)�é��ê�(I)Ljava/lang/String;
                                    ! ��ì�Ì�Í�î�class �ð�;�klass�index�pkg�	className�printNamespaces�(Ljava/io/PrintStream;)V�ø�#include <gcj/array.h>
                                    ! �#�ú�û�ü�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�
                                    ! �ÿ��java/util/Arrays�sort�([Ljava/lang/Object;)V�
                                      java/lang/
                                    ! �)	�
                                    ! startsWith�(Ljava/lang/String;)Z�java/io/
                                    �
                                    ! java/util/�
                                    extern "Java"
                                    ! ��ß�²�classes�first�seen�
                                      SourceFile�CniPrintStream.java�!��������������������	�
                                    ! ���������
                                    ����������������1������¶�š�§�³�±�����������1��������������b�����*+·�*µ�!*»�#Y·�%µ�'*½�)µ�+±�����������@��4�
                                    ! �:��<��A���������-�.������/�0���1�2�����E�����
                                    *´�'+´�3¶�9W±�������
                                    ! ����E��F��������
                                    �-�.�����
                                    �=�>���?�@�����³�����S~<*´�!Ÿ�Hª����9������������0���9���'*A¶�C§�*G¶�C§�*I¶�C§�	*K¶�C*µ�!±�������2����J��K�
                                    �M�,�P�2�Q�5�S�;�T�>�V�D�W�G�Y�M�\�R�^��������S�-�.�����S�M����N�O�����à�����h+²�P¦�V°+²�X¦�[°+²�]¦�`°+²�b¦�e°+²�g¦�j°+²�l¦�o°+²�q¦�t°+²�v¦�y°²�š�+²�{¥�»�~Y·�€¿°�������J����b��c�
                                    ! �d��e��f��g��h�%�i�(�j�/�k�2�l�9�m�<�n�C�o�F�p�M�q�P�t�e�u��������h�-�.�����h�ƒ�U���„�O�����f�����+¶�…M,,¶�‰d¶�M*´�',¶�9W,°�����������{��|����€���� �����-�.������ƒ�U����7�8���‘�’�����ø�����l=+¶�“	 �%+¶�–=>§�*™¶�›„¡ÿõ+¶�L*µ�¡+¶�“
                                    !  �*£¶�›**+¶�¥¶�§*ª¶�›§�**+·�¬¶�›ž�§�	*®¶�›„ÿÿö±�������J����†��‡��‰��Š��‹��Š�#�Œ�(��-��6�‘�<�’�E�“�N�—�W�™�[�›�^��d�›�k� ����*����l�-�.�����l�ƒ�U���j�°�����±����©�²�����Š�����*+³¶�µM>§�™�	*£¶�¹*,2¸�º¶�¹„,¾¡ÿæ±�����������¦��§��©��ª��«� �§�)�­����*����*�/�À�����*�7�8���#�Á���	� �±����Â�²�����F�����
                                    ! *+¸�Ã*¶�ű�����������³��´�	�µ��������
                                    ! �/�À�����
                                    ! �7�8���©�F�����>�����*+¸�ñ�������
                                    ! ����»��¼���������-�.������7�8���Ç�È�����h�����>§�+ɶ�¹„¡ÿõ±�����������À��Â��À��Ä����*�����-�.������/�À�����Ë�����±����Ì�Í����0�����Œ>§�!,¾¡�§�!*´�+2,2¶�Κ�§�„*´�+¾¡ÿÜ*´�+¾d6§�*+`·�Ñ+Ó¶�Õ„ÿ¢ÿë6§�,*+`·�Ñ+Ö¶�¹+,2¸�Ø*+`·�Ñ+Ú¶�Õ„,¾¡ÿÓ*,µ�+±�������N����Ê��Ì��Í��Î��Ï� �Ê�,�Ò�8�Ô�A�Õ�G�Ò�P�Ø�V�Ú�_�Û�e�Ü�m�Ý�v�Þ�|�Ø�†�à�‹�á����>����Œ�-�.�����Œ�/�À����Œ�Ü����Š�Ý���5��Þ���S�3�Þ����ß�²�����î�����d,/¶�à> �ä§�	,¶�: �
                                    ! ½�)§�
                                    ! æ¶�µ: �,§�
                                    ! ,`¶�è:*+·�ë*+¾`·�Ñ+í¶�¹+¸�Ã+ï¶�Õ±�������*�
                                    ! ���å��æ��ç�.�è�@�é�G�ê�Q�ë�W�ì�]�í�c�î����H����d�-�.�����d�/�À����d�ñ�8���]�ò����K�ó�8��.�6�Ü���@�$�ô�8���õ�ö����S�����•*´�¡™�
                                    +÷¶�Õ+¶�Å*´�'½�)¶�ùÀ�ýM,¸�þ>66§�M,2:¶š�9
                                    ! ¶š�.¶™�§� ™�+¶�Õ+Ú¶�Õ>6*+·„,¾¡ÿ²™�*+½�)·�ë+Ó¶�Õ±�������^����ò��ô�
                                    �õ��ø� �ù�$�û�&�ü�)�ý�/�ÿ�5��K�V�Y�]�d�j�l�o
                                    ! �v�ý�€�…�Ž�”����H����•�-�.�����•�/�À�� �u���&�o���)�l���,�T�±���5�A�ñ�8�����
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�É��(gnu/classpath/tools/javah/CniStubPrinter��!gnu/classpath/tools/javah/Printer�<init>�3(Lgnu/classpath/tools/javah/Main;Ljava/io/File;ZZ)V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/javah/CniStubPrinter;�	classpath� Lgnu/classpath/tools/javah/Main;�outFile�Ljava/io/File;�isDir�Z�force�	printDecl�b(Lgnu/classpath/tools/javah/CniPrintStream;Ljava/lang/String;Lorg/objectweb/asm/tree/MethodNode;)V
                                      ����(gnu/classpath/tools/javah/CniPrintStream���	printName�(Ljava/lang/String;)V��::
                                      �� �!��print	�#�%�$�!org/objectweb/asm/tree/MethodNode�&�'�name�Ljava/lang/String;�)�(	�#�+�,�'�desc
                                    --- 1,4 ----
                                    ! Êþº¾���1�Ë��(gnu/classpath/tools/javah/CniStubPrinter��!gnu/classpath/tools/javah/Printer�<init>�3(Lgnu/classpath/tools/javah/Main;Ljava/io/File;ZZ)V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/javah/CniStubPrinter;�	classpath� Lgnu/classpath/tools/javah/Main;�outFile�Ljava/io/File;�isDir�Z�force�	printDecl�b(Lgnu/classpath/tools/javah/CniPrintStream;Ljava/lang/String;Lorg/objectweb/asm/tree/MethodNode;)V
                                      ����(gnu/classpath/tools/javah/CniPrintStream���	printName�(Ljava/lang/String;)V��::
                                      �� �!��print	�#�%�$�!org/objectweb/asm/tree/MethodNode�&�'�name�Ljava/lang/String;�)�(	�#�+�,�'�desc
                                    *************** replaceAll�8(Ljava/lang/String;Ljava/la
                                    *** 24,30 ****
                                      �¨�ª�©�java/lang/reflect/Modifier�«�¬�isNative�(I)Z
                                      �.�®�¯�°�
                                    getReturnType�,(Ljava/lang/String;)Lorg/objectweb/asm/Type;
                                      ��²���´�{�¶�8  throw new ::java::lang::UnsupportedOperationException(�¸�JvNewStringLatin1 ("�º�"));�¼�}�Ÿ�¾�¿�m�hasNext
                                    ! ��Á�Â�T�close�filename�i�Ljava/util/Iterator;�first�
                                      SourceFile�CniStubPrinter.java�!���������������`�����
                                      *+,·�±����
                                      ���
                                    --- 24,30 ----
                                      �¨�ª�©�java/lang/reflect/Modifier�«�¬�isNative�(I)Z
                                      �.�®�¯�°�
                                    getReturnType�,(Ljava/lang/String;)Lorg/objectweb/asm/Type;
                                      ��²���´�{�¶�8  throw new ::java::lang::UnsupportedOperationException(�¸�JvNewStringLatin1 ("�º�"));�¼�}�Ÿ�¾�¿�m�hasNext
                                    ! ��Á�Â�T�close�filename�i�Ljava/util/Iterator;�first�LocalVariableTypeTable�Ljava/util/Iterator<*>;�
                                      SourceFile�CniStubPrinter.java�!���������������`�����
                                      *+,·�±����
                                      ���
                                    *************** SourceFile�CniStubPrinter.java�!����
                                    *** 36,40 ****
                                      �����������Ö�����N+,¶�+¶�+-´�"¶�+(¶�-´�*¸�-:6§�ž�	+3¶�+2¶�5„¾¡ÿä+8¶�±����
                                      ���2����>��?��@��A��B�"�C�(�E�-�F�3�G�<�C�G�I�M�J����>����N��
                                    �����N�:�;����N�<�'����N�=�>��"�,�?�@��%�"�A�B���C�D�����y�����)+E¶�G+L¶�G+N¶�G+P¶�G+¶�R+U¶�G+W¶�G±����
                                      ���"����N��O��P��Q��R��S�"�T�(�U��������)��
                                    �����)�:�Y���Z�[�����G�����	»�Y+·�\°����
                                    ! �������Z���� ����	��
                                    �����	�_�`����	�a�b���c�d��e�����f���â�����ò,¶�hš�±,´�no¶�qN*»�wY·�y+¶�{¶�¶�„,¶�ˆÀ�:Ç�±¶�Œ»�wY·�,´�n¶�‘¶�¶�„¶�“¶�Œ,´�”¹�˜�:6§�v¹�ž�À�#:´�¤¸�§š�§�\š�¶�Œ6´�*¸�­¶�5¶�Œ*-·�±¶�Œ³¶�“µ¶�·¶�*-·�±¹¶�“»¶�“¹�½�šÿ†¶�À±����
                                    ! ���†�!���_��`��a��b�(�c�)�b�1�d�6�e�7�f�<�g�Y�h�^�j�i�k�l�l�o�n�{�o�†�p�‰�q�Ž�r�“�s�–�t�£�u�¨�v�±�w�¶�x�½�y�Ä�z�Ë�{�Ô�|�Û�}�â�l�ì��ñ�€����R����ò��
                                    �����ò�Ã�����ò�a�b���Þ�<�'��1�Á�:�;��i�‰�Ä�Å��l�†�Æ���{�g�=�>���Ç����È
                                    \ No newline at end of file
                                    --- 36,40 ----
                                      �����������Ö�����N+,¶�+¶�+-´�"¶�+(¶�-´�*¸�-:6§�ž�	+3¶�+2¶�5„¾¡ÿä+8¶�±����
                                      ���2����>��?��@��A��B�"�C�(�E�-�F�3�G�<�C�G�I�M�J����>����N��
                                    �����N�:�;����N�<�'����N�=�>��"�,�?�@��%�"�A�B���C�D�����y�����)+E¶�G+L¶�G+N¶�G+P¶�G+¶�R+U¶�G+W¶�G±����
                                      ���"����N��O��P��Q��R��S�"�T�(�U��������)��
                                    �����)�:�Y���Z�[�����G�����	»�Y+·�\°����
                                    ! �������Z���� ����	��
                                    �����	�_�`����	�a�b���c�d��e�����f���ô�����ò,¶�hš�±,´�no¶�qN*»�wY·�y+¶�{¶�¶�„,¶�ˆÀ�:Ç�±¶�Œ»�wY·�,´�n¶�‘¶�¶�„¶�“¶�Œ,´�”¹�˜�:6§�v¹�ž�À�#:´�¤¸�§š�§�\š�¶�Œ6´�*¸�­¶�5¶�Œ*-·�±¶�Œ³¶�“µ¶�·¶�*-·�±¹¶�“»¶�“¹�½�šÿ†¶�À±����
                                    ! ���†�!���_��`��a��b�(�c�)�b�1�d�6�e�7�f�<�g�Y�h�^�j�i�k�l�l�o�n�{�o�†�p�‰�q�Ž�r�“�s�–�t�£�u�¨�v�±�w�¶�x�½�y�Ä�z�Ë�{�Ô�|�Û�}�â�l�ì��ñ�€����R����ò��
                                    �����ò�Ã�����ò�a�b���Þ�<�'��1�Á�:�;��i�‰�Ä�Å��l�†�Æ���{�g�=�>��Ç�����i�‰�Ä�È���É����Ê
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,25 ****
                                    ! Êþº¾���1���"gnu/classpath/tools/javah/GcjhMain��gnu/classpath/tools/javah/Main�commands�Ljava/util/ArrayList;�<init>�()V�Code
                                    ! �����
                                    �java/util/ArrayList
                                    ! ��	����	�����cni�Z�LineNumberTable�LocalVariableTable�this�$Lgnu/classpath/tools/javah/GcjhMain;�getName�()Ljava/lang/String;��gcjh�	getParser�2()Lgnu/classpath/tools/common/ClasspathToolParser;
                                    ! �� ���"� usage: gcjh [OPTION]... CLASS...
                                    ! �$�&�%�.gnu/classpath/tools/common/ClasspathToolParser�'�(�	setHeader�(Ljava/lang/String;)V�*�&gnu/classpath/tools/getopt/OptionGroup�,�CNI text options
                                    ! �)�.��(�0�$gnu/classpath/tools/javah/GcjhMain$1�2�add�4�Insert TEXT into class body�6�TEXT
                                    ! �/�8��9�](Lgnu/classpath/tools/javah/GcjhMain;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
                                    ! �)�;�2�<�&(Lgnu/classpath/tools/getopt/Option;)V�>�$gnu/classpath/tools/javah/GcjhMain$2�@�append�B�#Append TEXT after class declaration
                                    ! �=�8�E�$gnu/classpath/tools/javah/GcjhMain$3�G�friend�I�%Insert TEXT as a 'friend' declaration
                                    ! �D�8�L�$gnu/classpath/tools/javah/GcjhMain$4�N�prepend�P�!Insert TEXT before start of class
                                    ! �K�8
                                    ! �$�S�2�T�+(Lgnu/classpath/tools/getopt/OptionGroup;)V�V�Compatibility options (unused)�X�$gnu/classpath/tools/javah/GcjhMain$5�Z�td�\�Unused compatibility option�^�	DIRECTORY
                                    ! �W�8�a�$gnu/classpath/tools/javah/GcjhMain$6�c�M
                                    ! �`�e��f�K(Lgnu/classpath/tools/javah/GcjhMain;Ljava/lang/String;Ljava/lang/String;)V�h�$gnu/classpath/tools/javah/GcjhMain$7�j�MM
                                    ! �g�e�m�$gnu/classpath/tools/javah/GcjhMain$8�o�MD
                                    ! �l�e�r�$gnu/classpath/tools/javah/GcjhMain$9�t�MMD
                                    ! �q�e�result�0Lgnu/classpath/tools/common/ClasspathToolParser;�text�(Lgnu/classpath/tools/getopt/OptionGroup;�compat�	postParse�([Ljava/lang/String;)V	��~��€�textMap�Ljava/util/HashMap;
                                    ! �‚�„�ƒ�java/lang/String�…�†�replace�(CC)Ljava/lang/String;
                                    ! �ˆ�Š�‰�java/util/HashMap�‹�Œ�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�names�[Ljava/lang/String;�i�I�main�
                                    ! Exceptions�”�java/io/IOException
                                    ! ��
                                    ! ��—�˜�|�run�args�
                                    ! SourceFile�
                                    GcjhMain.java�InnerClasses�!�����������������	���K�����*·�
                                    ! *»�Y·�µ�*µ�±�����������6��4��8��9�����������������	���-�����°�����������=�����������������	��Y�����Å*·�L+!¶�#»�)Y+·�-M,»�/Y*135·�7¶�:,»�=Y*?A5·�C¶�:,»�DY*FH5·�J¶�:,»�KY*MO5·�Q¶�:+,¶�R»�)YU·�-N-»�WY*Y[]·�_¶�:-»�`Y*b[·�d¶�:-»�gY*i[·�k¶�:-»�lY*n[·�p¶�:-»�qY*s[·�u¶�:+-¶�R+°�������R����B��D��F��G�'�N�1�O�6�N�9�V�C�W�H�V�K�^�]�e�b�g�l�j�~�q�Ž�w�ž�}�®�ƒ�¾�Š�Ã�Œ����*����Å������À�v�w���°�x�y��l�Y�z�y���{�|��	���o�����%=§�*´�}+2./¶�*´�¶�‡W„+¾¡ÿä±�����������‘��’��‘�$�“���� ����%�������%��Ž���"����	�‘�|��’�����“�	���:�����»�Y·�•*¶�–±�������
                                    ! ����—��˜���������™�Ž����š����›�œ���J�	�/�������=�������D�������K�������W�������`�������g�������l�������q������
                                    \ No newline at end of file
                                    --- 1,26 ----
                                    ! Êþº¾���1�Ÿ��"gnu/classpath/tools/javah/GcjhMain��gnu/classpath/tools/javah/Main�commands�Ljava/util/ArrayList;�	Signature�7Ljava/util/ArrayList<Lgnu/classpath/tools/javah/Text;>;�<init>�()V�Code
                                    ! ��
                                    �	�
                                    ! ��java/util/ArrayList
                                    ! ��
                                    	����	�����cni�Z�LineNumberTable�LocalVariableTable�this�$Lgnu/classpath/tools/javah/GcjhMain;�getName�()Ljava/lang/String;��gcjh�	getParser�2()Lgnu/classpath/tools/common/ClasspathToolParser;
                                    ! ��"�� �$� usage: gcjh [OPTION]... CLASS...
                                    ! �&�(�'�.gnu/classpath/tools/common/ClasspathToolParser�)�*�	setHeader�(Ljava/lang/String;)V�,�&gnu/classpath/tools/getopt/OptionGroup�.�CNI text options
                                    ! �+�0�	�*�2�$gnu/classpath/tools/javah/GcjhMain$1�4�add�6�Insert TEXT into class body�8�TEXT
                                    ! �1�:�	�;�](Lgnu/classpath/tools/javah/GcjhMain;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
                                    ! �+�=�4�>�&(Lgnu/classpath/tools/getopt/Option;)V�@�$gnu/classpath/tools/javah/GcjhMain$2�B�append�D�#Append TEXT after class declaration
                                    ! �?�:�G�$gnu/classpath/tools/javah/GcjhMain$3�I�friend�K�%Insert TEXT as a 'friend' declaration
                                    ! �F�:�N�$gnu/classpath/tools/javah/GcjhMain$4�P�prepend�R�!Insert TEXT before start of class
                                    ! �M�:
                                    ! �&�U�4�V�+(Lgnu/classpath/tools/getopt/OptionGroup;)V�X�Compatibility options (unused)�Z�$gnu/classpath/tools/javah/GcjhMain$5�\�td�^�Unused compatibility option�`�	DIRECTORY
                                    ! �Y�:�c�$gnu/classpath/tools/javah/GcjhMain$6�e�M
                                    ! �b�g�	�h�K(Lgnu/classpath/tools/javah/GcjhMain;Ljava/lang/String;Ljava/lang/String;)V�j�$gnu/classpath/tools/javah/GcjhMain$7�l�MM
                                    ! �i�g�o�$gnu/classpath/tools/javah/GcjhMain$8�q�MD
                                    ! �n�g�t�$gnu/classpath/tools/javah/GcjhMain$9�v�MMD
                                    ! �s�g�result�0Lgnu/classpath/tools/common/ClasspathToolParser;�text�(Lgnu/classpath/tools/getopt/OptionGroup;�compat�	postParse�([Ljava/lang/String;)V	��€��‚�textMap�Ljava/util/HashMap;
                                    ! �„�†�…�java/lang/String�‡�ˆ�replace�(CC)Ljava/lang/String;
                                    ! �Š�Œ�‹�java/util/HashMap��Ž�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�names�[Ljava/lang/String;�i�I�main�
                                    ! Exceptions�–�java/io/IOException
                                    ! ��
                                    ! ��™�š�~�run�args�
                                    ! SourceFile�
                                    GcjhMain.java�InnerClasses�!������������������	�
                                    ! �����K�����*·�*»�Y·�µ�*µ�±�����������6��4��8��9��������������������-�����°�����������=��������������� ����Y�����Å*·�!L+#¶�%»�+Y-·�/M,»�1Y*357·�9¶�<,»�?Y*AC7·�E¶�<,»�FY*HJ7·�L¶�<,»�MY*OQ7·�S¶�<+,¶�T»�+YW·�/N-»�YY*[]_·�a¶�<-»�bY*d]·�f¶�<-»�iY*k]·�m¶�<-»�nY*p]·�r¶�<-»�sY*u]·�w¶�<+-¶�T+°�������R����B��D��F��G�'�N�1�O�6�N�9�V�C�W�H�V�K�^�]�e�b�g�l�j�~�q�Ž�w�ž�}�®�ƒ�¾�Š�Ã�Œ����*����Å������À�x�y���°�z�{��l�Y�|�{���}�~�����o�����%=§�*´�+2./¶�ƒ*´�¶�‰W„+¾¡ÿä±�����������‘��’��‘�$�“���� ����%�������%�����"�‘�’��	�“�~��”�����•����:�����»�Y·�—*¶�˜±�������
                                    ! ����—��˜���������›�����œ�����ž���J�	�1�������?�������F�������M�������Y�������b�������i�������n�������s������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,34 ****
                                    ! Êþº¾���1�é��+gnu/classpath/tools/javah/JniIncludePrinter��!gnu/classpath/tools/javah/Printer�<init>�3(Lgnu/classpath/tools/javah/Main;Ljava/io/File;ZZ)V�Code
                                    ! ��	���LineNumberTable�LocalVariableTable�this�-Lgnu/classpath/tools/javah/JniIncludePrinter;�	classpath� Lgnu/classpath/tools/javah/Main;�outFile�Ljava/io/File;�isDir�Z�force�writeFields�U(Lgnu/classpath/tools/javah/ClassWrapper;Lgnu/classpath/tools/javah/JniPrintStream;)V	����&gnu/classpath/tools/javah/ClassWrapper���fields�Ljava/util/List;�� ��java/util/List�!�"�iterator�()Ljava/util/Iterator;�$�&�%�java/util/Iterator�'�(�next�()Ljava/lang/Object;�*� org/objectweb/asm/tree/FieldNode	�)�,�-�.�access�I
                                    ! �0�2�1�java/lang/reflect/Modifier�3�4�isStatic�(I)Z
                                    ! �0�6�7�4�isFinal	�)�9�:�;�value�Ljava/lang/Object;�=�java/lang/Integer�?�java/lang/Long�A�java/lang/StringBuilder	��C�D�E�name�Ljava/lang/String;
                                    ! �G�I�H�#gnu/classpath/tools/javah/JniHelper�J�K�mangle�&(Ljava/lang/String;)Ljava/lang/String;
                                    ! �M�O�N�java/lang/String�P�Q�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �@�S��T�(Ljava/lang/String;)V�V�_
                                    ! �@�X�Y�Z�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;	�)�C
                                    ! �@�]�^�_�toString�()Ljava/lang/String;�a�#undef 
                                    ! �c�e�d�(gnu/classpath/tools/javah/JniPrintStream�f�T�print
                                    ! �c�h�i�T�println�k�#define �m� 
                                    ! �c�o�f�p�(Ljava/lang/Object;)V�r�L�t�LL
                                    ! �c�v�i�w�()V�$�y�z�{�hasNext�()Z	��}�~��
                                    ! superClass�(Lgnu/classpath/tools/javah/ClassWrapper;�klass�out�*Lgnu/classpath/tools/javah/JniPrintStream;�wroteAny�i�Ljava/util/Iterator;�field�"Lorg/objectweb/asm/tree/FieldNode;�writePreambleImpl�(Ljava/io/PrintStream;)V�‹�5/* DO NOT EDIT THIS FILE - it is machine generated */
                                    ! ��h�Ž�java/io/PrintStream
                                    ! ��v�‘�#include <jni.h>�Ljava/io/PrintStream;�getPrintStreamImpl�Y(Ljava/io/FileOutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)Ljava/io/PrintStream;	��–��
                                    ! �c�˜��™�a(Lgnu/classpath/tools/javah/Main;Ljava/io/OutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)V�fos�Ljava/io/FileOutputStream;�
                                    ! printClass�9(Ljava/io/File;Lgnu/classpath/tools/javah/ClassWrapper;)V�
                                    ! Exceptions� �java/io/IOException
                                    ! �M�¢�£�¤�replace�(CC)Ljava/lang/String;�¦�.h
                                    ! ��¨�©�ª�getPrintStream�Q(Ljava/lang/String;Lgnu/classpath/tools/javah/ClassWrapper;)Ljava/io/PrintStream;�¬�
                                    ! #ifndef __�®�__�°�
                                    ! #define __�²�#ifdef __cplusplus�´�
                                    ! extern "C"�¶�{�¸�#endif	��º�»��methods�½�!org/objectweb/asm/tree/MethodNode	�¼�,
                                    ! �0�À�Á�4�isNative�Ã�
                                    ! JNIEXPORT 	�¼�Å�Æ�E�desc
                                    ! ����org/objectweb/asm/Type���
                                    getReturnType�,(Ljava/lang/String;)Lorg/objectweb/asm/Type;
                                    ! �c�Î�f�Ï�(Lorg/objectweb/asm/Type;)V�Ñ�	 JNICALL 
                                    ! �c�Ó�f�Ô�8(Lorg/objectweb/asm/tree/MethodNode;Ljava/lang/String;)V�Ö�;
                                    ! ��Ø���Ú�}�Ü�#endif /* __�Þ�__ */
                                    ! �c�à�á�w�close�file�xname�filename�method�#Lorg/objectweb/asm/tree/MethodNode;�
                                      SourceFile�JniIncludePrinter.java�!���������������`�����
                                      *+,·�±����
                                      ���
                                    --- 1,36 ----
                                    ! Êþº¾���1�î��+gnu/classpath/tools/javah/JniIncludePrinter��!gnu/classpath/tools/javah/Printer�<init>�3(Lgnu/classpath/tools/javah/Main;Ljava/io/File;ZZ)V�Code
                                    ! ��	���LineNumberTable�LocalVariableTable�this�-Lgnu/classpath/tools/javah/JniIncludePrinter;�	classpath� Lgnu/classpath/tools/javah/Main;�outFile�Ljava/io/File;�isDir�Z�force�writeFields�U(Lgnu/classpath/tools/javah/ClassWrapper;Lgnu/classpath/tools/javah/JniPrintStream;)V�
                                    ! Exceptions��java/io/IOException
                                    ! ����&gnu/classpath/tools/javah/ClassWrapper���
                                    ! linkSupers�()V	��!�"�#�fields�Ljava/util/List;�%�'�&�java/util/List�(�)�iterator�()Ljava/util/Iterator;�+�-�,�java/util/Iterator�.�/�next�()Ljava/lang/Object;�1� org/objectweb/asm/tree/FieldNode	�0�3�4�5�access�I
                                    ! �7�9�8�java/lang/reflect/Modifier�:�;�isStatic�(I)Z
                                    ! �7�=�>�;�isFinal	�0�@�A�B�value�Ljava/lang/Object;�D�java/lang/Integer�F�java/lang/Long�H�java/lang/StringBuilder	��J�K�L�name�Ljava/lang/String;
                                    ! �N�P�O�#gnu/classpath/tools/javah/JniHelper�Q�R�mangle�&(Ljava/lang/String;)Ljava/lang/String;
                                    ! �T�V�U�java/lang/String�W�X�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �G�Z��[�(Ljava/lang/String;)V�]�_
                                    ! �G�_�`�a�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;	�0�J
                                    ! �G�d�e�f�toString�()Ljava/lang/String;�h�#undef 
                                    ! �j�l�k�(gnu/classpath/tools/javah/JniPrintStream�m�[�print
                                    ! �j�o�p�[�println�r�#define �t� 
                                    ! �j�v�m�w�(Ljava/lang/Object;)V�y�L�{�LL
                                    ! �j�}�p��+��€��hasNext�()Z	��ƒ�„�…�
                                    ! superClass�(Lgnu/classpath/tools/javah/ClassWrapper;�klass�out�*Lgnu/classpath/tools/javah/JniPrintStream;�wroteAny�i�Ljava/util/Iterator;�field�"Lorg/objectweb/asm/tree/FieldNode;�LocalVariableTypeTable�Ljava/util/Iterator<*>;�writePreambleImpl�(Ljava/io/PrintStream;)V�“�5/* DO NOT EDIT THIS FILE - it is machine generated */
                                    ! �•�o�–�java/io/PrintStream
                                    ! �•�}�™�#include <jni.h>�Ljava/io/PrintStream;�getPrintStreamImpl�Y(Ljava/io/FileOutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)Ljava/io/PrintStream;	��ž��
                                    ! �j� ��¡�a(Lgnu/classpath/tools/javah/Main;Ljava/io/OutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)V�fos�Ljava/io/FileOutputStream;�
                                    ! printClass�9(Ljava/io/File;Lgnu/classpath/tools/javah/ClassWrapper;)V
                                    ! �T�§�¨�©�replace�(CC)Ljava/lang/String;�«�.h
                                    ! ��­�®�¯�getPrintStream�Q(Ljava/lang/String;Lgnu/classpath/tools/javah/ClassWrapper;)Ljava/io/PrintStream;�±�
                                    ! #ifndef __�³�__�µ�
                                    ! #define __�·�#ifdef __cplusplus�¹�
                                    ! extern "C"�»�{�½�#endif	��¿�À�#�methods�Â�!org/objectweb/asm/tree/MethodNode	�Á�3
                                    ! �7�Å�Æ�;�isNative�È�
                                    ! JNIEXPORT 	�Á�Ê�Ë�L�desc
                                    ! ����org/objectweb/asm/Type���
                                    getReturnType�,(Ljava/lang/String;)Lorg/objectweb/asm/Type;
                                    ! �j�Ó�m�Ô�(Lorg/objectweb/asm/Type;)V�Ö�	 JNICALL 
                                    ! �j�Ø�m�Ù�8(Lorg/objectweb/asm/tree/MethodNode;Ljava/lang/String;)V�Û�;
                                    ! ��Ý���ß�}�á�#endif /* __�ã�__ */
                                    ! �j�å�æ��close�file�xname�filename�method�#Lorg/objectweb/asm/tree/MethodNode;�
                                      SourceFile�JniIncludePrinter.java�!���������������`�����
                                      *+,·�±����
                                      ���
                                    *************** SourceFile�JniIncludePrinter.java�!��
                                    *** 37,45 ****
                                      ������
                                      ������
                                      ������
                                    ! ����������¸�����â>§�Ó+´�¹��:§�¶¹�#�À�):´�+¸�/™�Ÿ´�+¸�5š�§�‘´�8Á�<š�´�8Á�>š�§�x»�@Y+´�B¸�F¸�L·�RU¶�W´�[¶�W¶�\:,`¶�b,¶�g,j¶�b,¶�b,l¶�b,´�8¶�n´�8Á�<™�,q¶�b§�´�8Á�>™�	,s¶�b,¶�u>¹�x�šÿF+´�|L+Çÿ/™�,¶�u±����
                                    ! ���v����?��@��B��C��E��F�*�G�5�H�8�I�C�J�N�K�Q�N�t�O�z�P�€�Q�†�R�Œ�S�’�T�›�U�¦�V�¯�W�º�X�À�Y�Ä�Z�Æ�C�Ð�@�Ù�]�Ý�^�á�_����H����â��
                                    �����â�€�����â��‚���à�ƒ����À�„�…���§�†�‡��t�R�D�E���ˆ�‰�����Q�����+Š¶�Œ+¶�+¶�Œ±����
                                    ! �������c��d�
                                    ! �e��f����������
                                    �������’���“�”�����L�����»�cY*´�•+,·�—°����
                                    ! �������k���� ������
                                    ������š�›�����€����œ���ž�����Ÿ���S����;,´�B¸�FN,´�B:/_¶�¡:$_¶�¡:»�@Y¸�L·�R¥¶�W¶�\:*,¶�§À�c:Ç�±¶�u«¶�b-¶�b­¶�g¯¶�b-¶�b­¶�g¶�u±¶�g³¶�gµ¶�g·¶�g¶�u,´�¹¹��:§�G¹�#�À�¼:´�¾¸�¿š�§�-¶�b´�ĸ�Ƕ�Íж�b-¶�ÒÕ¶�g¹�x�šÿµ¶�u*,·�×±¶�gÙ¶�g·¶�g¶�uÛ¶�b-¶�bݶ�g¶�ß±����
                                    ! ���®�+���q��t��v��w�$�x�:�z�F�|�K�}�L��Q�€�X��^�‚�e�ƒ�l�„�r�…�y�†�~�‡�…�ˆ�Œ�‰�“�Š�š�‹�Ÿ��ª�Ž�­��¹�‘�Ä�’�Ç�“�Î�”�Û�•�â�–�ê�—�ñ�Ž�û�š��œ�ž�Ÿ� �¡!�¢(�£.�¤5�¥:�¦����R���;��
                                    ����;�â����;�€���3�ã�E��-�ä�E��F�õ��‚��ª�‘�„�…��¹�8�å�æ���ç����è
                                    \ No newline at end of file
                                    --- 39,47 ----
                                      ������
                                      ������
                                      ������
                                    ! ����������������Ò�����æ+¶�>§�Ó+´� ¹�$�:§�¶¹�*�À�0:´�2¸�6™�Ÿ´�2¸�<š�§�‘´�?Á�Cš�´�?Á�Eš�§�x»�GY+´�I¸�M¸�S·�Y\¶�^´�b¶�^¶�c:,g¶�i,¶�n,q¶�i,¶�i,s¶�i,´�?¶�u´�?Á�C™�,x¶�i§�´�?Á�E™�	,z¶�i,¶�|>¹�~�šÿF+´�‚L+Çÿ/™�,¶�|±����
                                    ! ���z����@��A��B�	�D��E��G�#�H�.�I�9�J�<�K�G�L�R�M�U�P�x�Q�~�R�„�S�Š�T��U�–�V�Ÿ�W�ª�X�³�Y�¾�Z�Ä�[�È�\�Ê�E�Ô�B�Ý�_�á�`�å�a����H����æ��
                                    �����æ�†�…����æ�‡�ˆ���à�‰����À�Š�‹��#�§�Œ���x�R�K�L��Ž������À�Š�����‘�����Q�����+’¶�”+¶�—+˜¶�”±����
                                    ! �������e��f�
                                    ! �g��h����������
                                    ������‡�š���›�œ�����L�����»�jY*´�+,·�Ÿ°����
                                    ! �������m���� ������
                                    ������¢�£�����†�…���¤�¥����������e����;,´�I¸�MN,´�I:/_¶�¦:$_¶�¦:»�GY¸�S·�Yª¶�^¶�c:*,¶�¬À�j:Ç�±¶�|°¶�i-¶�i²¶�n´¶�i-¶�i²¶�n¶�|¶¶�n¸¶�nº¶�n¼¶�n¶�|,´�¾¹�$�:§�G¹�*�À�Á:´�ø�Äš�§�-Ƕ�i´�ɸ�̶�ÒÕ¶�i-¶�×Ú¶�n¹�~�šÿµ¶�|*,·�ܶ¶�nÞ¶�n¼¶�n¶�|à¶�i-¶�iâ¶�n¶�ä±����
                                    ! ���®�+���s��v��x��y�$�z�:�|�F�~�K��L��Q�‚�X�ƒ�^�„�e�…�l�†�r�‡�y�ˆ�~�‰�…�Š�Œ�‹�“�Œ�š��Ÿ��ª��­�’�¹�“�Ä�”�Ç�•�Î�–�Û�—�â�˜�ê�™�ñ��û�œ��ž� �¡�¢�£!�¤(�¥.�¦5�§:�¨����R���;��
                                    ����;�ç����;�†�…��3�è�L��-�é�L��F�õ�‡�ˆ��ª�‘�Š�‹��¹�8�ê�ë��Ž�����ª�‘�Š����ì����í
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class	Mon Dec 18 21:51:42 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,25 ****
                                    ! Êþº¾���1�©��(gnu/classpath/tools/javah/JniPrintStream��java/io/PrintStream�	classpath� Lgnu/classpath/tools/javah/Main;�
                                    methodNameMap�Ljava/util/HashMap;�<init>�a(Lgnu/classpath/tools/javah/Main;Ljava/io/OutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)V�Code
                                    ! ��
                                    �	��(Ljava/io/OutputStream;)V��java/util/HashMap
                                    ! ���	��()V	����	����
                                    ! �����computeOverloads�+(Lgnu/classpath/tools/javah/ClassWrapper;)V�LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/javah/JniPrintStream;�out�Ljava/io/OutputStream;�klass�(Lgnu/classpath/tools/javah/ClassWrapper;	�%�'�&�&gnu/classpath/tools/javah/ClassWrapper�(�)�methods�Ljava/util/List;�+�-�,�java/util/List�.�/�iterator�()Ljava/util/Iterator;�1�3�2�java/util/Iterator�4�5�next�()Ljava/lang/Object;�7�!org/objectweb/asm/tree/MethodNode	�6�9�:�;�access�I
                                    ! �=�?�>�java/lang/reflect/Modifier�@�A�isNative�(I)Z	�6�C�D�E�name�Ljava/lang/String;
                                    ! ��G�H�I�containsKey�(Ljava/lang/Object;)Z
                                    ! ��K�L�M�get�&(Ljava/lang/Object;)Ljava/lang/Object;�O�java/lang/Integer
                                    ! �N�Q�R�S�intValue�()I
                                    ! �N�U�	�V�(I)V
                                    ! ��X�Y�Z�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�1�\�]�^�hasNext�()Z�i�Ljava/util/Iterator;�method�#Lorg/objectweb/asm/tree/MethodNode;�val�Ljava/lang/Integer;�print�(Lorg/objectweb/asm/Type;)V�
                                    ! Exceptions�i�java/io/IOException
                                    ! �k�m�l�#gnu/classpath/tools/javah/JniHelper�n�o�getName�L(Lgnu/classpath/tools/javah/Main;Lorg/objectweb/asm/Type;)Ljava/lang/String;
                                    ! ��q�e�r�(Ljava/lang/String;)V�type�Lorg/objectweb/asm/Type;�8(Lorg/objectweb/asm/tree/MethodNode;Ljava/lang/String;)V�w�Java_�y�_
                                    ! �k�{�|�}�mangle�&(Ljava/lang/String;)Ljava/lang/String;��__	�6��‚�E�desc
                                    ! �„�†�…�java/lang/String�‡�ˆ�lastIndexOf�(I)I
                                    ! �„�Š�‹�Œ�	substring�(II)Ljava/lang/String;�Ž�
                                     (JNIEnv *env
                                    ! �=��‘�A�isStatic�“�, jclass�•�	, jobject
                                    ! �—�™�˜�org/objectweb/asm/Type�š�›�getArgumentTypes�-(Ljava/lang/String;)[Lorg/objectweb/asm/Type;��, 
                                    ! ��Ÿ�e�f�¡�)�	className�
                                    overloadCount�
                                      lastOffset�types�[Lorg/objectweb/asm/Type;�
                                    ! SourceFile�JniPrintStream.java�!��������������������	�
                                    ! �����s�����*,·�*»�Y·�µ�*+µ�*-·�±�����������=��9��>��?��@����*������������������ �!�����"�#���������÷�����}+´�$¹�*�M§�i,¹�0�À�6N-´�8¸�<š�§�R*´�-´�B¶�F™�0*´�-´�B¶�JÀ�N:*´�-´�B»�NY¶�P`·�T¶�WW§�*´�-´�B»�NY·�T¶�WW,¹�[�šÿ”±�������.����D�
                                    ! �E�
                                    �G��H�!�I�$�J�2�L�B�M�_�P�s�E�|�R����4����}�������}�"�#��
                                    ! �s�_�`���\�a�b��B��c�d���e�f��g�����h����E�����
                                    **´�+¸�j¶�p±�������
                                    ! ����V��W��������
                                    �������
                                    �s�t���e�u��g�����h���V�����¤*v¶�p*,¶�p*x¶�p*+´�B¸�z¶�p*´�+´�B¶�JÀ�NN-¶�P¤�%*~¶�p+´�€)¶�ƒ6*+´�€¶�‰¸�z¶�p*¶�p+´�8¸�™�*’¶�p§�	*”¶�p+´�€¸�–:6§�*œ¶�p*2¶�ž„¾¡ÿé* ¶�p±�������R����[��\��]��^��_�+�`�3�b�9�c�D�d�U�f�[�g�e�h�n�j�t�k�}�l�ƒ�n�‰�o�’�l��q�£�r����H����¤�������¤�a�b����¤�¢�E��+�y�£�d��D��¤�;��}�'�¥�¦��€��_�;���§����¨
                                    \ No newline at end of file
                                    --- 1,26 ----
                                    ! Êþº¾���1�®��(gnu/classpath/tools/javah/JniPrintStream��java/io/PrintStream�	classpath� Lgnu/classpath/tools/javah/Main;�
                                    methodNameMap�Ljava/util/HashMap;�	Signature�:Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;�<init>�a(Lgnu/classpath/tools/javah/Main;Ljava/io/OutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)V�Code
                                    ! �����(Ljava/io/OutputStream;)V��java/util/HashMap
                                    ! �����()V	����	����
                                    ! �����computeOverloads�+(Lgnu/classpath/tools/javah/ClassWrapper;)V�LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/javah/JniPrintStream;�out�Ljava/io/OutputStream;�klass�(Lgnu/classpath/tools/javah/ClassWrapper;	�'�)�(�&gnu/classpath/tools/javah/ClassWrapper�*�+�methods�Ljava/util/List;�-�/�.�java/util/List�0�1�iterator�()Ljava/util/Iterator;�3�5�4�java/util/Iterator�6�7�next�()Ljava/lang/Object;�9�!org/objectweb/asm/tree/MethodNode	�8�;�<�=�access�I
                                    ! �?�A�@�java/lang/reflect/Modifier�B�C�isNative�(I)Z	�8�E�F�G�name�Ljava/lang/String;
                                    ! ��I�J�K�containsKey�(Ljava/lang/Object;)Z
                                    ! ��M�N�O�get�&(Ljava/lang/Object;)Ljava/lang/Object;�Q�java/lang/Integer
                                    ! �P�S�T�U�intValue�()I
                                    ! �P�W�X�Y�valueOf�(I)Ljava/lang/Integer;
                                    ! ��[�\�]�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�3�_�`�a�hasNext�()Z�i�Ljava/util/Iterator;�method�#Lorg/objectweb/asm/tree/MethodNode;�val�Ljava/lang/Integer;�LocalVariableTypeTable�Ljava/util/Iterator<*>;�print�(Lorg/objectweb/asm/Type;)V�
                                    ! Exceptions�n�java/io/IOException
                                    ! �p�r�q�#gnu/classpath/tools/javah/JniHelper�s�t�getName�L(Lgnu/classpath/tools/javah/Main;Lorg/objectweb/asm/Type;)Ljava/lang/String;
                                    ! ��v�j�w�(Ljava/lang/String;)V�type�Lorg/objectweb/asm/Type;�8(Lorg/objectweb/asm/tree/MethodNode;Ljava/lang/String;)V�|�Java_�~�_
                                    ! �p�€��‚�mangle�&(Ljava/lang/String;)Ljava/lang/String;�„�__	�8�†�‡�G�desc
                                    ! �‰�‹�Š�java/lang/String�Œ��lastIndexOf�(I)I
                                    ! �‰���‘�	substring�(II)Ljava/lang/String;�“�
                                     (JNIEnv *env
                                    ! �?�•�–�C�isStatic�˜�, jclass�š�	, jobject
                                    ! �œ�ž��org/objectweb/asm/Type�Ÿ� �getArgumentTypes�-(Ljava/lang/String;)[Lorg/objectweb/asm/Type;�¢�, 
                                    ! ��¤�j�k�¦�)�	className�
                                    overloadCount�
                                      lastOffset�types�[Lorg/objectweb/asm/Type;�
                                    ! SourceFile�JniPrintStream.java�!�����������������	����
                                    ! ������
                                    ���s�����*,·�*»�Y·�µ�*+µ�*-·�±�����������=��9��>��?��@����*����� �!������������"�#�����$�%������
                                    �������u+´�&¹�,�M§�a,¹�2�À�8N-´�:¸�>š�§�J*´�-´�D¶�H™�,*´�-´�D¶�LÀ�P:*´�-´�D¶�R`¸�V¶�ZW§�*´�-´�D¸�V¶�ZW,¹�^�šÿœ±�������.����D�
                                    ! �E�
                                    �G��H�!�I�$�J�2�L�B�M�[�P�k�E�t�R����4����u� �!�����u�$�%��
                                    ! �k�b�c���T�d�e��B��f�g��h�����
                                    ! �k�b�i���j�k��l�����m�
                                    ���E�����
                                    **´�+¸�o¶�u±�������
                                    ! ����V��W��������
                                    � �!�����
                                    �x�y���j�z��l�����m�
                                    ��V�����¤*{¶�u*,¶�u*}¶�u*+´�D¸�¶�u*´�+´�D¶�LÀ�PN-¶�R¤�%*ƒ¶�u+´�…)¶�ˆ6*+´�…¶�Ž¸�¶�u*’¶�u+´�:¸�”™�*—¶�u§�	*™¶�u+´�…¸�›:6§�*¡¶�u*2¶�£„¾¡ÿé*¥¶�u±�������R����[��\��]��^��_�+�`�3�b�9�c�D�d�U�f�[�g�e�h�n�j�t�k�}�l�ƒ�n�‰�o�’�l��q�£�r����H����¤� �!�����¤�d�e����¤�§�G��+�y�¨�g��D��©�=��}�'�ª�«��€��b�=���¬����­
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class	Fri Mar 16 22:48:27 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,4 ****
                                    ! Êþº¾���1�²��(gnu/classpath/tools/javah/JniStubPrinter��!gnu/classpath/tools/javah/Printer�<init>�3(Lgnu/classpath/tools/javah/Main;Ljava/io/File;ZZ)V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/javah/JniStubPrinter;�	classpath� Lgnu/classpath/tools/javah/Main;�outFile�Ljava/io/File;�isDir�Z�force�writePreambleImpl�(Ljava/io/PrintStream;)V��H/* This file is intended to give you a head start on implementing native
                                      ����java/io/PrintStream���println�(Ljava/lang/String;)V� �   methods using JNI.�"�K   Be aware: running gcjh or compatible tool with '-stubs' option once more�$�M   for the same input may overwrite any edits you have made to this file.  */�out�Ljava/io/PrintStream;�getPrintStreamImpl�Y(Ljava/io/FileOutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)Ljava/io/PrintStream;�*�(gnu/classpath/tools/javah/JniPrintStream	��,��
                                      �)�.��/�a(Lgnu/classpath/tools/javah/Main;Ljava/io/OutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)V�fos�Ljava/io/FileOutputStream;�klass�(Lgnu/classpath/tools/javah/ClassWrapper;�
                                    --- 1,4 ----
                                    ! Êþº¾���1�´��(gnu/classpath/tools/javah/JniStubPrinter��!gnu/classpath/tools/javah/Printer�<init>�3(Lgnu/classpath/tools/javah/Main;Ljava/io/File;ZZ)V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�*Lgnu/classpath/tools/javah/JniStubPrinter;�	classpath� Lgnu/classpath/tools/javah/Main;�outFile�Ljava/io/File;�isDir�Z�force�writePreambleImpl�(Ljava/io/PrintStream;)V��H/* This file is intended to give you a head start on implementing native
                                      ����java/io/PrintStream���println�(Ljava/lang/String;)V� �   methods using JNI.�"�K   Be aware: running gcjh or compatible tool with '-stubs' option once more�$�M   for the same input may overwrite any edits you have made to this file.  */�out�Ljava/io/PrintStream;�getPrintStreamImpl�Y(Ljava/io/FileOutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)Ljava/io/PrintStream;�*�(gnu/classpath/tools/javah/JniPrintStream	��,��
                                      �)�.��/�a(Lgnu/classpath/tools/javah/Main;Ljava/io/OutputStream;Lgnu/classpath/tools/javah/ClassWrapper;)V�fos�Ljava/io/FileOutputStream;�klass�(Lgnu/classpath/tools/javah/ClassWrapper;�
                                    *************** Exceptions�8�java/io/IOException
                                    *** 20,26 ****
                                      ��’�‘�org/objectweb/asm/Type�“�”�
                                    getReturnType�,(Ljava/lang/String;)Lorg/objectweb/asm/Type;
                                      �)�–�l�—�(Lorg/objectweb/asm/Type;)V
                                      �)�™�l�š�8(Lorg/objectweb/asm/tree/MethodNode;Ljava/lang/String;)V�œ�{�ž�  (*env)->FatalError (env, "� � not implemented");�¢�}�{�¤�¥�>�hasNext
                                    ! �)�§�¨�g�close�filename�xname�*Lgnu/classpath/tools/javah/JniPrintStream;�i�Ljava/util/Iterator;�method�#Lorg/objectweb/asm/tree/MethodNode;�
                                      SourceFile�JniStubPrinter.java�!���������������`�����
                                      *+,·�±����
                                      ���
                                    --- 20,26 ----
                                      ��’�‘�org/objectweb/asm/Type�“�”�
                                    getReturnType�,(Ljava/lang/String;)Lorg/objectweb/asm/Type;
                                      �)�–�l�—�(Lorg/objectweb/asm/Type;)V
                                      �)�™�l�š�8(Lorg/objectweb/asm/tree/MethodNode;Ljava/lang/String;)V�œ�{�ž�  (*env)->FatalError (env, "� � not implemented");�¢�}�{�¤�¥�>�hasNext
                                    ! �)�§�¨�g�close�filename�xname�*Lgnu/classpath/tools/javah/JniPrintStream;�i�Ljava/util/Iterator;�method�#Lorg/objectweb/asm/tree/MethodNode;�LocalVariableTypeTable�Ljava/util/Iterator<*>;�
                                      SourceFile�JniStubPrinter.java�!���������������`�����
                                      *+,·�±����
                                      ���
                                    *************** SourceFile�JniStubPrinter.java�!����
                                    *** 31,35 ****
                                      ������
                                      �����������]�����+¶�+¶�+!¶�+#¶�±����
                                      �������>��?��@��A��B����������
                                    ������%�&���'�(�����L�����»�)Y*´�++,·�-°����
                                    ! �������G���� ������
                                    ������0�1�����2�3���4�5��6�����7���¾�����à,¶�9š�±,´�?¸�CN*»�IY,´�?/_¶�K¸�Q·�UW¶�Y¶�],¶�aÀ�):Ç�±¶�eh¶�j,´�?/_¶�K¶�jm¶�o,´�p¹�t�:§�e¹�z�À�€:´�‚¸�†š�§�K¶�e´�Œ¸�¶�•¶�e-¶�˜¶�e›¶�o¶�j-¶�˜Ÿ¶�o¡¶�o¹�£�šÿ—¶�¦±����
                                    ! ���~����M��N��O��Q�.�R�/�Q�5�P�7�S�<�T�=�U�B�V�I�W�Y�X�`�Z�k�[�n�]�z�^�…�_�ˆ�`��a�š�b�Ÿ�c�§�d�¬�e�³�f�º�g�Â�h�É�i�Ð�[�Ú�k�ß�l����H����à��
                                    �����à�©�����à�2�3���Ð�ª�B��7�©�%�«��k�u�¬�­��z�V�®�¯���°����±
                                    \ No newline at end of file
                                    --- 31,35 ----
                                      ������
                                      �����������]�����+¶�+¶�+!¶�+#¶�±����
                                      �������>��?��@��A��B����������
                                    ������%�&���'�(�����L�����»�)Y*´�++,·�-°����
                                    ! �������G���� ������
                                    ������0�1�����2�3���4�5��6�����7���Ð�����à,¶�9š�±,´�?¸�CN*»�IY,´�?/_¶�K¸�Q·�UW¶�Y¶�],¶�aÀ�):Ç�±¶�eh¶�j,´�?/_¶�K¶�jm¶�o,´�p¹�t�:§�e¹�z�À�€:´�‚¸�†š�§�K¶�e´�Œ¸�¶�•¶�e-¶�˜¶�e›¶�o¶�j-¶�˜Ÿ¶�o¡¶�o¹�£�šÿ—¶�¦±����
                                    ! ���~����M��N��O��Q�.�R�/�Q�5�P�7�S�<�T�=�U�B�V�I�W�Y�X�`�Z�k�[�n�]�z�^�…�_�ˆ�`��a�š�b�Ÿ�c�§�d�¬�e�³�f�º�g�Â�h�É�i�Ð�[�Ú�k�ß�l����H����à��
                                    �����à�©�����à�2�3���Ð�ª�B��7�©�%�«��k�u�¬�­��z�V�®�¯��°�����k�u�¬�±���²����³
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,26 ****
                                    ! Êþº¾���1��"gnu/classpath/tools/javah/Keywords��java/lang/Object�words�[Ljava/lang/String;�keywords�Ljava/util/HashSet;�<clinit>�()V�Code�
                                    �java/lang/String��_Complex��	__alignof��__alignof__��__asm��__asm__��__attribute��
                                    __attribute__��__builtin_va_arg��	__complex�!�__complex__�#�__const�%�	__const__�'�
                                    __extension__�)�__imag�+�__imag__�-�__inline�/�
                                    ! __inline__�1�	__label__�3�__null�5�__real�7�__real__�9�
                                    ! __restrict�;�__restrict__�=�__signed�?�
                                    ! __signed__�A�__typeof�C�
                                    ! __typeof__�E�
                                    ! __volatile�G�__volatile__�I�and�K�and_eq�M�asm�O�auto�Q�bitand�S�bitor�U�bool�W�break�Y�case�[�catch�]�char�_�class�a�compl�c�const�e�
                                    ! const_cast�g�continue�i�default�k�delete�m�do�o�double�q�dynamic_cast�s�else�u�enum�w�explicit�y�export�{�extern�}�false��float��for�ƒ�friend�…�goto�‡�if�‰�inline�‹�int��long��mutable�‘�	namespace�“�new�•�not�—�not_eq�™�operator�›�or��or_eq�Ÿ�private�¡�	protected�£�public�¥�register�§�reinterpret_cast�©�return�«�short�­�signed�¯�sizeof�±�static�³�static_cast�µ�struct�·�switch�¹�template�»�this�½�throw�¿�true�Á�try�Ã�typedef�Å�typeid�Ç�typename�É�typeof�Ë�union�Í�unsigned�Ï�using�Ñ�virtual�Ó�void�Õ�volatile�×�wchar_t�Ù�while�Û�xor�Ý�xor_eq	��ß���á�java/util/HashSet
                                    ! �à�ã�ä�
                                    ! �<init>	��æ��
                                    ! �à�è�é�ê�add�(Ljava/lang/Object;)Z�LineNumberTable�LocalVariableTable�i�I
                                    ! ��ã�$Lgnu/classpath/tools/javah/Keywords;�
                                      getCxxName�&(Ljava/lang/String;)Ljava/lang/String;
                                    ! ��ô�õ�ö�length�()I
                                    ! ��ø�ù�ú�charAt�(I)C
                                    ! ��ü�ý�þ�	substring�(II)Ljava/lang/String;
                                    ! �à��ê�contains�java/lang/StringBuilder
                                    ! ��valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! 	�ä
                                    ! �(Ljava/lang/String;)V�$
                                    ! �append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �toString�()Ljava/lang/String;�name�Ljava/lang/String;�
                                    ! SourceFile�
                                    Keywords.java�!������������������	�
                                    ! ����{����™h½�YSYSYSYSYSYSYSYSYSY	 SY
                                    ! "SY$SY&SY
                                    (SY*SY,SY.SY0SY2SY4SY6SY8SY:SY<SY>SY@SYBSYDSYFSYHSYJSYLSY NSY!PSY"RSY#TSY$VSY%XSY&ZSY'\SY(^SY)`SY*bSY+dSY,fSY-hSY.jSY/lSY0nSY1pSY2rSY3tSY4vSY5xSY6zSY7|SY8~SY9€SY:‚SY;„SY<†SY=ˆSY>ŠSY?ŒSY@ŽSYASYB’SYC”SYD–SYE˜SYFšSYGœSYHžSYI SYJ¢SYK¤SYL¦SYM¨SYNªSYO¬SYP®SYQ°SYR²SYS´SYT¶SYU¸SYVºSYW¼SYX¾SYYÀSYZÂSY[ÄSY\ÆSY]ÈSY^ÊSY_ÌSY`ÎSYaÐSYbÒSYcÔSYdÖSYeØSYfÚSYgÜS³�Þ»�àY·�â³�å;§�²�å²�Þ2¶�çW„�²�Þ¾¡ÿì±����ë��¾�o���0��1��2��3��4��5� �6�&�7�,�8�2�9�8�:�>�;�D�<�J�=�P�>�V�?�\�@�b�A�h�B�n�C�t�D�z�E�€�F�†�G�Œ�H�’�I�˜�J�ž�K�¤�L�ª�M�°�N�¶�O�¼�P�Â�Q�È�R�Î�S�Ô�T�Ú�U�à�V�æ�W�ì�X�ò�Y�ø�Z�þ�[�\
                                    ! �]�^�_�`"�a(�b.�c4�d:�e@�fF�gL�hR�iX�j^�kd�lj�mp�nv�o|�p‚�qˆ�rŽ�s”�tš�u �v¦�w¬�x²�y¸�z¾�{Ä�|Ê�}Ð�~Ö�Ü�€â�è�‚î�ƒô�„ú�…��†�‡�ˆ�‰�Š�‹$�Œ*�0�Ž6�<�B�‘H�’N�“T�”Z�•`�–f�—l�˜o�/r�ž|�Ÿ� �Ÿ˜�+�ì����~��í�î����ä�
                                    ! �����/�����*·�ï±����ë�������+�ì��������»�ð���	�ñ�ò�����ƒ�����C*¶�ód<§�„ÿ›�
                                    *¶�÷$Ÿÿò²�å*`¶�û¶�ÿ™�»Y*¸·¶
                                    ¶°*°����ë�������¦��¨�,�©�A�ª�ì�������C����<�í�î�����
                                    \ No newline at end of file
                                    --- 1,24 ----
                                    ! Êþº¾���1��"gnu/classpath/tools/javah/Keywords��java/lang/Object�words�[Ljava/lang/String;�keywords�Ljava/util/HashSet;�	Signature�'Ljava/util/HashSet<Ljava/lang/String;>;�<clinit>�()V�Code��java/lang/String��_Complex��	__alignof��__alignof__��__asm��__asm__��__attribute��
                                    __attribute__��__builtin_va_arg�!�	__complex�#�__complex__�%�__const�'�	__const__�)�
                                    __extension__�+�__imag�-�__imag__�/�__inline�1�
                                    ! __inline__�3�	__label__�5�__null�7�__real�9�__real__�;�
                                    ! __restrict�=�__restrict__�?�__signed�A�
                                    ! __signed__�C�__typeof�E�
                                    ! __typeof__�G�
                                    ! __volatile�I�__volatile__�K�and�M�and_eq�O�asm�Q�auto�S�bitand�U�bitor�W�bool�Y�break�[�case�]�catch�_�char�a�class�c�compl�e�const�g�
                                    ! const_cast�i�continue�k�default�m�delete�o�do�q�double�s�dynamic_cast�u�else�w�enum�y�explicit�{�export�}�extern��false��float�ƒ�for�…�friend�‡�goto�‰�if�‹�inline��int��long�‘�mutable�“�	namespace�•�new�—�not�™�not_eq�›�operator��or�Ÿ�or_eq�¡�private�£�	protected�¥�public�§�register�©�reinterpret_cast�«�return�­�short�¯�signed�±�sizeof�³�static�µ�static_cast�·�struct�¹�switch�»�template�½�this�¿�throw�Á�true�Ã�try�Å�typedef�Ç�typeid�É�typename�Ë�typeof�Í�union�Ï�unsigned�Ñ�using�Ó�virtual�Õ�void�×�volatile�Ù�wchar_t�Û�while�Ý�xor�ß�xor_eq	��á���ã�java/util/HashSet
                                    ! �â�å�æ��<init>	��è��
                                    ! �â�ê�ë�ì�add�(Ljava/lang/Object;)Z�LineNumberTable�LocalVariableTable�i�I
                                    ! ��å�$Lgnu/classpath/tools/javah/Keywords;�
                                      getCxxName�&(Ljava/lang/String;)Ljava/lang/String;
                                    ! ��ö�÷�ø�length�()I
                                    ! ��ú�û�ü�charAt�(I)C
                                    ! ��þ�ÿ��	substring�(II)Ljava/lang/String;
                                    ! �â�ì�contains�java/lang/StringBuilder
                                    ! �	�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! �æ�(Ljava/lang/String;)V�$
                                    ! �append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;
                                    ! �toString�()Ljava/lang/String;�name�Ljava/lang/String;�
                                    ! SourceFile�
                                    Keywords.java�!���������������	����
                                    ! ������
                                    ��{����™h½�YSYSYSYSYSYSYSYSY SY	"SY
                                    ! $SY&SY(SY
                                    *SY,SY.SY0SY2SY4SY6SY8SY:SY<SY>SY@SYBSYDSYFSYHSYJSYLSYNSY PSY!RSY"TSY#VSY$XSY%ZSY&\SY'^SY(`SY)bSY*dSY+fSY,hSY-jSY.lSY/nSY0pSY1rSY2tSY3vSY4xSY5zSY6|SY7~SY8€SY9‚SY:„SY;†SY<ˆSY=ŠSY>ŒSY?ŽSY@SYA’SYB”SYC–SYD˜SYEšSYFœSYGžSYH SYI¢SYJ¤SYK¦SYL¨SYMªSYN¬SYO®SYP°SYQ²SYR´SYS¶SYT¸SYUºSYV¼SYW¾SYXÀSYYÂSYZÄSY[ÆSY\ÈSY]ÊSY^ÌSY_ÎSY`ÐSYaÒSYbÔSYcÖSYdØSYeÚSYfÜSYgÞS³�à»�âY·�ä³�ç;§�²�ç²�à2¶�éW„�²�ྡÿì±����í��¾�o���0��1��2��3��4��5� �6�&�7�,�8�2�9�8�:�>�;�D�<�J�=�P�>�V�?�\�@�b�A�h�B�n�C�t�D�z�E�€�F�†�G�Œ�H�’�I�˜�J�ž�K�¤�L�ª�M�°�N�¶�O�¼�P�Â�Q�È�R�Î�S�Ô�T�Ú�U�à�V�æ�W�ì�X�ò�Y�ø�Z�þ�[�\
                                    ! �]�^�_�`"�a(�b.�c4�d:�e@�fF�gL�hR�iX�j^�kd�lj�mp�nv�o|�p‚�qˆ�rŽ�s”�tš�u �v¦�w¬�x²�y¸�z¾�{Ä�|Ê�}Ð�~Ö�Ü�€â�è�‚î�ƒô�„ú�…��†�‡�ˆ�‰�Š�‹$�Œ*�0�Ž6�<�B�‘H�’N�“T�”Z�•`�–f�—l�˜o�/r�ž|�Ÿ� �Ÿ˜�+�î����~��ï�ð����æ���
                                    ���/�����*·�ñ±����í�������+�î��������½�ò���	�ó�ô��
                                    ���ƒ�����C*¶�õd<§�„ÿ›�
                                    *¶�ù$Ÿÿò²�ç*`¶�ý¶™�»Y*¸·
                                    ! 
                                    ¶¶°*°����í�������¦��¨�,�©�A�ª�î�������C����<�ï�ð�����
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,115 ****
                                    ! Êþº¾���1��gnu/classpath/tools/javah/Main��java/lang/Object�	classpath�+Lgnu/classpath/tools/javah/PathOptionGroup;�	outputDir�Ljava/lang/String;�outFileName�loader�Ljava/net/URLClassLoader;�allDirectory�verbose�Z�stubs�cni�cniOrJniSeen�force�classMap�Ljava/util/HashMap;�textMap�<init>�()V�Code
                                    ! ������)gnu/classpath/tools/javah/PathOptionGroup
                                    ! ��	�����!�java/util/HashMap
                                    ! � �	��$��	��&���LineNumberTable�LocalVariableTable�this� Lgnu/classpath/tools/javah/Main;�readCommandFile�(Ljava/lang/String;)V�
                                    ! Exceptions�/�*gnu/classpath/tools/getopt/OptionException�1�java/io/FileInputStream
                                    ! �0�3��,�5�java/lang/StringBuilder�7�file "
                                    ! �4�3
                                    ! �4�:�;�<�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�>�" not found
                                    ! �4�@�A�B�toString�()Ljava/lang/String;
                                    ! �.�3�E�java/io/BufferedReader�G�java/io/InputStreamReader
                                    ! �F�I��J�(Ljava/io/InputStream;)V
                                    ! �D�L��M�(Ljava/io/Reader;)V
                                    ! �D�O�P�B�readLine
                                    ! �R�T�S�java/lang/String�U�B�trim
                                    ! �R�W�X�Y�length�()I
                                    ! �R�[�\�]�charAt�(I)C
                                    ! �R�_�`�a�indexOf�(I)I
                                    ! �R�c�d�e�	substring�(II)Ljava/lang/String;
                                    ! �R�g�d�h�(I)Ljava/lang/String;�j�class
                                    ! �R�l�m�n�equals�(Ljava/lang/Object;)Z
                                    ! � �p�q�r�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�t�java/util/ArrayList
                                    ! �s��w�no class set�y�add�;�|�prepend�~�friend�€�unrecognized command: �‚�gnu/classpath/tools/javah/Text
                                    ! ��„��…�(ILjava/lang/String;)V
                                    ! �s�‡�y�n�‰�java/io/FileNotFoundException�‹�java/io/IOException�textFileName�fis�Ljava/io/FileInputStream;�reader�Ljava/io/BufferedReader;�currentClass�
                                    currentValues�Ljava/util/ArrayList;�line�index�I�cmd�value�cmdValue�
                                    scanDirectory�$(Ljava/io/File;Ljava/util/HashSet;)V�� gnu/classpath/tools/javah/Main$1
                                    ! �œ�Ÿ�� �6(Lgnu/classpath/tools/javah/Main;Ljava/util/HashSet;)V
                                    ! �¢�¤�£�java/io/File�¥�¦�	listFiles�%(Ljava/io/FileFilter;)[Ljava/io/File;
                                    ! �¨�ª�©�java/util/Arrays�«�¬�asList�%([Ljava/lang/Object;)Ljava/util/List;
                                    ! �®�°�¯�java/util/HashSet�±�²�addAll�(Ljava/util/Collection;)Z�dir�Ljava/io/File;�results�Ljava/util/HashSet;�files�[Ljava/io/File;�getName�»�javah�	getParser�2()Lgnu/classpath/tools/common/ClasspathToolParser;�¿�.gnu/classpath/tools/common/ClasspathToolParser
                                    ! ��Á�¹�B
                                    ! �¾�Ã��Ä�(Ljava/lang/String;Z)V�Æ�usage: javah [OPTIONS] CLASS...
                                    ! �¾�È�É�,�	setHeader
                                    ! �¾�Ë�y�Ì�+(Lgnu/classpath/tools/getopt/OptionGroup;)V�Î� gnu/classpath/tools/javah/Main$2�Ð�Set output directory�Ò�DIR
                                    ! �Í�Ô��Õ�H(Lgnu/classpath/tools/javah/Main;CLjava/lang/String;Ljava/lang/String;)V
                                    ! �¾�×�y�Ø�&(Lgnu/classpath/tools/getopt/Option;)V�Ú� gnu/classpath/tools/javah/Main$3�Ü�2Set output file (only one of -d or -o may be used)�Þ�FILE
                                    ! �Ù�Ô�á� gnu/classpath/tools/javah/Main$4�ã�cmdfile�å�Read command file
                                    ! �à�ç��è�Y(Lgnu/classpath/tools/javah/Main;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V�ê� gnu/classpath/tools/javah/Main$5�ì�all�î�*Operate on all class files under directory
                                    ! �é�ç�ñ� gnu/classpath/tools/javah/Main$6��ô�Emit stub implementation
                                    ! �ð�ö��÷�G(Lgnu/classpath/tools/javah/Main;Ljava/lang/String;Ljava/lang/String;)V�ù� gnu/classpath/tools/javah/Main$7�û�jni�ý�"Emit JNI stubs or header (default)
                                    ! �ø�ö�� gnu/classpath/tools/javah/Main$8��&Emit CNI stubs or header (default JNI)
                                    ! �ÿ�ö� gnu/classpath/tools/javah/Main$9�
                                    	�Set verbose mode
                                    ! ��H(Lgnu/classpath/tools/javah/Main;Ljava/lang/String;CLjava/lang/String;)V�!gnu/classpath/tools/javah/Main$10��%Output files should always be written
                                    ! 
                                    �ö�result�0Lgnu/classpath/tools/common/ClasspathToolParser;�makeOutputDirectory�()Ljava/io/File;	����.
                                    ! �¢�3�
                                    ! outputFile�makeOutputFile	��	�
                                    ! �¢!"#�exists�()Z
                                    ! �¢%&#�isFile(�'*�' is not a file
                                    ! �Š�3	�-��	�/�
                                    �	132�java/lang/System45�err�Ljava/io/PrintStream;7�[9�* already exists.  Use -force to overwrite]
                                    ! ;=<�java/io/PrintStream>�,�println
                                    ! �¢@A#�deleteC�$Was unable to delete existing file: �writeHeaders�9(Ljava/util/HashMap;Lgnu/classpath/tools/javah/Printer;)V
                                    ! � GHI�entrySet�()Ljava/util/Set;KML�
                                    java/util/SetNO�iterator�()Ljava/util/Iterator;QSR�java/util/IteratorTU�next�()Ljava/lang/Object;W�java/util/Map$EntryVYZU�getKeyV\]U�getValue_�&gnu/classpath/tools/javah/ClassWrappera�	[writing 
                                    ! �4c�;d�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;f� as h�]
                                    ! jlk�!gnu/classpath/tools/javah/Printermn�
                                    ! printClass�9(Ljava/io/File;Lgnu/classpath/tools/javah/ClassWrapper;)VQpq#�hasNext�klasses�printer�#Lgnu/classpath/tools/javah/Printer;�i�Ljava/util/Iterator;�e�Ljava/util/Map$Entry;�file�klass�(Lgnu/classpath/tools/javah/ClassWrapper;�	postParse�([Ljava/lang/String;)V�names�[Ljava/lang/String;�run
                                    ! �‚�¼�½
                                    ! �¾„…†�parse�)([Ljava/lang/String;Z)[Ljava/lang/String;
                                    ! �ˆ|}
                                    ! �Š‹Œ�	getLoader�()Ljava/net/URLClassLoader;	�Ž�
                                      �
                                    ! �
                                    ! �’	�”��	�–��˜�(gnu/classpath/tools/javah/JniStubPrinter
                                    ! —š�›�3(Lgnu/classpath/tools/javah/Main;Ljava/io/File;ZZ)V�+gnu/classpath/tools/javah/JniIncludePrinter
                                    ! œš �(gnu/classpath/tools/javah/CniStubPrinter
                                    ! Ÿš£�+gnu/classpath/tools/javah/CniIncludePrinter
                                    ! ¢š
                                    ! �®�	�§��
                                    ! �©�š�›«�.class
                                    ! �R­®¯�endsWith�(Ljava/lang/String;)Z
                                    ! �®�‡
                                    ! �®M³�[reading file 
                                    ! �µ¶·�getClass�8(Ljava/io/File;)Lgnu/classpath/tools/javah/ClassWrapper;	^¹º��name
                                    ! �R¼½¾�replace�(CC)Ljava/lang/String;À�[reading class 
                                    ! �Â¶Ã�<(Ljava/lang/String;)Lgnu/classpath/tools/javah/ClassWrapper;
                                    ! �ÅDE�args�p�
                                    ! classNames�isDirectory�item�Ljava/lang/Object;�filename�	className�getClassTextList�)(Ljava/lang/String;)Ljava/util/ArrayList;
                                    ! � ÑÒÓ�get�&(Ljava/lang/Object;)Ljava/lang/Object;�	readClass�?(Ljava/io/InputStream;)Lgnu/classpath/tools/javah/ClassWrapper;×�org/objectweb/asm/ClassReader
                                    ! Ö�I
                                    ! ^Ú�Û�#(Lgnu/classpath/tools/javah/Main;)V
                                    ! ÖÝÞß�accept�$(Lorg/objectweb/asm/ClassVisitor;Z)V
                                    ! áãâ�java/io/InputStreamä��close�is�Ljava/io/InputStream;�r�Lorg/objectweb/asm/ClassReader;
                                    ! �0ê�ë�(Ljava/io/File;)V
                                    ! �íÔÕ
                                    ! � ïð�n�containsKeyò�"java/lang/IllegalArgumentExceptionô�class ö� already loaded
                                    ! ñ�3�fileName
                                    ! �Rúûü�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! þ�ÿ�java/net/URLClassLoader�findResource�"(Ljava/lang/String;)Ljava/net/URL;�can't find class file � in 
                                    ! 
                                    ! 	�java/net/URL�
                                      openStream�()Ljava/io/InputStream;�resource�url�Ljava/net/URL;�main
                                    ! ��
                                    ! �€}�m�
                                    ! SourceFile�	Main.java�InnerClasses�
                                    java/util/Map�Entry�!��������������������	������
                                    ! ������������
                                    ������������������������������������������������`�����&*·�*»�Y·�µ�*»� Y·�"µ�#*»� Y·�"µ�%±����'�������A��E��c��f�%�A�(�������&�)�*�����+�,��-�����.���»����I»�0Y+·�2M§�!W»�.Y»�4Y6·�8+¶�9=¶�9¶�?·�C¿»�DY»�FY,·�H·�KN::-¶�N:§�W§�íÇ�§�å¶�Q:¶�V™ÿ߶�Z# �§ÿÑ ¶�^6¶�b:`¶�f:	i¶�k™�$Æ�*´�%¶�oW	:»�sY·�u:§ÿˆÇ�
                                    »�.Yv·�C¿x¶�k™�	6
                                    ! §�Lz¶�k™�	6
                                    ! §�<{¶�k™�	6
                                    ! §�,}¶�k™�	6
                                    ! §�»�.Y»�4Y·�8¶�9¶�?·�C¿»�Y
                                    ! 	·�ƒ¶�†W§ÿÆ�*´�%¶�oW±����	��ˆ�@�F�I�Š��'���ž�'���m��o�
                                    �q�*�s�:�t�=�u�@�{�I�}�J��M��R�‚�U�ƒ�\�„�o�…�r�†�{�‡�…�ˆ��Š�š�Œ�Ÿ�Ž�«��¯�‘�¸�’�»�”�À�•�Ê�–�Ô�—�Ú�˜�ä�™�ê�š�ô�›�ú�œ�
                                    ! �Ÿ#� 4�v7�¢<�¤H�¦�(���¬���I�)�*����I�Œ���	���Ž��*��Ž��:����=�‘���@	�’�“��F��”���M�ç�”���{�¹�•�–��…�¯�—����¤�˜��	�×��™�–�
                                    ! �ç��™�–�
                                    ! �÷��™�–�
                                    ! ��™�–�
                                    ! #��™�–�
                                    ! ���š�›�����p�����+»�œY*,·�ž¶�¡N-Æ�,-¸�§¶�­W±����'�������ª��¶��·��¸�(���*�����)�*������³�´�����µ�¶����·�¸���¹�B�����-�����º°����'�������¼�(��������)�*����¼�½����5�����½»�¾Y*¶�À·�ÂL+Ŷ�Ç+*´�¶�Ê+»�ÍY*dÏÑ·�Ó¶�Ö+»�ÙY*oÛÝ·�߶�Ö+»�àY*âäÝ·�æ¶�Ö+»�éY*ëíÑ·�ï¶�Ö+»�ðY*òó·�õ¶�Ö+»�øY*úü·�þ¶�Ö+»�ÿY*·¶�Ö+»Y*v·
                                    ! ¶�Ö+»
                                    Y*·¶�Ö+°����'���J����Á�
                                    �Â��Ã��Ä�-�Ï�5�Ð�7�Ñ�<�Ï�?�Ü�Q�ã�[�ä�`�ã�c�î�s�õ�ƒ�ÿ�•	�©�»�(�������½�)�*���
                                    �°����-�����Š����m�����#*´Ç�»�¢Y·L§�»�¢Y*´·L+°����'�������� �!!�(��� ����#�)�*�����´��!��´����-�����Š����ý�����‘»�¢Y*´·L+¶ ™�+¶$š�%»�ŠY»�4Y'·�8*´¶�9)¶�9¶�?·+¿*´,š�,*´.™�#²0»�4Y6·�8*´¶�98¶�9¶�?¶:°+¶?š�»�ŠY»�4YB·�8*´¶�9¶�?·+¿+°����'���>���-�.�0�1�<2�C4�J5�^6�g5�j7�l9�s:�;�‹:�=�(�������‘�)�*����…�´��DE��-�����Š����ü�����r+¶F¹J�N§�^-¹P�ÀV:¹X�À�¢:¹[�À^:*´.™�,²0»�4Y`·�8¶be¶�9¶bg¶�9¶�?¶:,¶i-¹o�šÿŸ±����'���*�
                                      ��C�
                                    ! D�
                                    F�G�$H�0I�7J�`K�hD�qM�(���H����r�)�*�����rr�����rst��
                                    ! �huv���Pwx��$�Dy�´��0�8z{��|}�����5������±����'������R�(��������)�*�����~��€}��-�����Š���T����Ì*¶M,+¶ƒN*-¶‡**´�¶‰µ*´Ç�§�6™�
                                    ! *·§�*·‘:Ç�±*´“š�4*´•™�»—Y**´,·™:§�F»œY**´,·ž:§�1*´•™�»ŸY**´,·¡:§�»¢Y**´,·¤:»�®Y·¥:*´¦Æ�*»�¢Y*´¦·¶¨6§�1-2ª¶¬™�»�¢Y-2·¶°W§�
                                    -2¶°W„-¾¡ÿζ±:»� Y·�":	§�¥¹P�:
                                      
                                    ! Á�¢™�D*´.™�!²0»�4Y²·�8
                                    ! ¶bg¶�9¶�?¶:*
                                    ! À�¢·´:»�¢Y´¸·:§�I
                                    ! À�R./¶»:
                                    *´.™�!²0»�4Y¿·�8
                                    ¶�9g¶�9¶�?¶:»�¢Y
                                    ·:*
                                    ¶Á:	¶�oW¹o�šÿW*	·ı����'���¦�)��V�W�X�Y�[�*\�<]�A^�Ba�Ic�Pd�ef�zj�k�–m�¨s�±t�¸u�Éx�Ïz�Ü|�ð€�úx„…†Š (/‘M’X“i˜w™~šœ§ž¯ ¹†Ã£Ë¤�(���Ê���Ì�)�*����ÌÆ��ÇÇ��ÀÈ��*¢É���<�´��b�st��w�st��“�st��¨$st��±r�¶��Ì�8u�–��Áuv��¸�µ��	 �™ÊË�
                                    ! X�z{�¯�
                                    ! z{�f�Ì�´�§�Ì�´�w�8Í��
                                    �ÎÏ�����@�����*´�%+¶ÐÀ�s°����'������¨�(��������)�*�����º���ÔÕ��-�����Š����v�����»ÖY+·ØM»^Y*·ÙN,-¶Ü+¶à-°����'������­�	®�¯�°�±�(���*�����)�*�����åæ��	�çè���{��¶·��-�����Š����²�����N»�0Y+·éM*,·ìN*´�#-´¸¶î™�%»ñY»�4Yó·�8-´¸¶�9õ¶�9¶�?·÷¿*´�#-´¸-¶�oW-°����'���"���¶�	·�¸�¹�2º�;¹�?»�L¼�(���*����N�)�*�����Nø�´��	�Eåæ���?{��¶Ã��-�����Š��������*´�#+¶îš�k»�4Y+./¶»¸ù·�8ª¶�9¶�?M*´,¶ýN-Ç�)»�ŠY»�4Y·�8,¶�9¶�9*´¶b¶�?·+¿-¶:*·ì:*´�#+¶�oW*´�#+¶ÐÀ^°����'���.���Á�Ã�'Ä�0Å�4Æ�FÇ�VÆ�ZÈ�`É�hÊ�sÌ�(���>�����)�*�����º���'�L
                                    ���0�C��`�åæ��h�{��	}��-�����Š����J�����»�Y·L+*¶±����'������Ñ�Ò�
                                    Ó�(�������Æ�����*��������Z��œ������
                                    �������Í�������Ù�������à�������é�������ð�������ø�������ÿ������������V	
                                    \ No newline at end of file
                                    --- 1,116 ----
                                    ! Êþº¾���1(��gnu/classpath/tools/javah/Main��java/lang/Object�	classpath�+Lgnu/classpath/tools/javah/PathOptionGroup;�	outputDir�Ljava/lang/String;�outFileName�loader�Ljava/net/URLClassLoader;�allDirectory�verbose�Z�stubs�cni�cniOrJniSeen�force�classMap�Ljava/util/HashMap;�	Signature�OLjava/util/HashMap<Ljava/lang/String;Lgnu/classpath/tools/javah/ClassWrapper;>;�textMap�^Ljava/util/HashMap<Ljava/lang/String;Ljava/util/ArrayList<Lgnu/classpath/tools/javah/Text;>;>;�<init>�()V�Code
                                    ! ������)gnu/classpath/tools/javah/PathOptionGroup
                                    ! ��	��"���$�java/util/HashMap
                                    ! �#�	��'��	��)���LineNumberTable�LocalVariableTable�this� Lgnu/classpath/tools/javah/Main;�readCommandFile�(Ljava/lang/String;)V�
                                    ! Exceptions�2�*gnu/classpath/tools/getopt/OptionException�4�java/io/FileInputStream
                                    ! �3�6��/�8�java/lang/StringBuilder�:�file "
                                    ! �7�6
                                    ! �7�=�>�?�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�A�" not found
                                    ! �7�C�D�E�toString�()Ljava/lang/String;
                                    ! �1�6�H�java/io/BufferedReader�J�java/io/InputStreamReader
                                    ! �I�L��M�(Ljava/io/InputStream;)V
                                    ! �G�O��P�(Ljava/io/Reader;)V
                                    ! �G�R�S�E�readLine
                                    ! �U�W�V�java/lang/String�X�E�trim
                                    ! �U�Z�[�\�length�()I
                                    ! �U�^�_�`�charAt�(I)C
                                    ! �U�b�c�d�indexOf�(I)I
                                    ! �U�f�g�h�	substring�(II)Ljava/lang/String;
                                    ! �U�j�g�k�(I)Ljava/lang/String;�m�class
                                    ! �U�o�p�q�equals�(Ljava/lang/Object;)Z
                                    ! �#�s�t�u�put�8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;�w�java/util/ArrayList
                                    ! �v��z�no class set�|�add�>��prepend��friend�ƒ�unrecognized command: �…�gnu/classpath/tools/javah/Text
                                    ! �„�‡��ˆ�(ILjava/lang/String;)V
                                    ! �v�Š�|�q�Œ�java/io/FileNotFoundException�Ž�java/io/IOException�textFileName�fis�Ljava/io/FileInputStream;�reader�Ljava/io/BufferedReader;�currentClass�
                                    currentValues�Ljava/util/ArrayList;�line�index�I�cmd�value�cmdValue�LocalVariableTypeTable�7Ljava/util/ArrayList<Lgnu/classpath/tools/javah/Text;>;�
                                    scanDirectory�$(Ljava/io/File;Ljava/util/HashSet;)V�8(Ljava/io/File;Ljava/util/HashSet<Ljava/lang/Object;>;)V�£� gnu/classpath/tools/javah/Main$1
                                    ! �¢�¥��¦�6(Lgnu/classpath/tools/javah/Main;Ljava/util/HashSet;)V
                                    ! �¨�ª�©�java/io/File�«�¬�	listFiles�%(Ljava/io/FileFilter;)[Ljava/io/File;
                                    ! �®�°�¯�java/util/Arrays�±�²�asList�%([Ljava/lang/Object;)Ljava/util/List;
                                    ! �´�¶�µ�java/util/HashSet�·�¸�addAll�(Ljava/util/Collection;)Z�dir�Ljava/io/File;�results�Ljava/util/HashSet;�files�[Ljava/io/File;�'Ljava/util/HashSet<Ljava/lang/Object;>;�getName�Â�javah�	getParser�2()Lgnu/classpath/tools/common/ClasspathToolParser;�Æ�.gnu/classpath/tools/common/ClasspathToolParser
                                    ! ��È�À�E
                                    ! �Å�Ê��Ë�(Ljava/lang/String;Z)V�Í�usage: javah [OPTIONS] CLASS...
                                    ! �Å�Ï�Ð�/�	setHeader
                                    ! �Å�Ò�|�Ó�+(Lgnu/classpath/tools/getopt/OptionGroup;)V�Õ� gnu/classpath/tools/javah/Main$2�×�Set output directory�Ù�DIR
                                    ! �Ô�Û��Ü�H(Lgnu/classpath/tools/javah/Main;CLjava/lang/String;Ljava/lang/String;)V
                                    ! �Å�Þ�|�ß�&(Lgnu/classpath/tools/getopt/Option;)V�á� gnu/classpath/tools/javah/Main$3�ã�2Set output file (only one of -d or -o may be used)�å�FILE
                                    ! �à�Û�è� gnu/classpath/tools/javah/Main$4�ê�cmdfile�ì�Read command file
                                    ! �ç�î��ï�Y(Lgnu/classpath/tools/javah/Main;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V�ñ� gnu/classpath/tools/javah/Main$5�ó�all�õ�*Operate on all class files under directory
                                    ! �ð�î�ø� gnu/classpath/tools/javah/Main$6��û�Emit stub implementation
                                    ! �÷�ý��þ�G(Lgnu/classpath/tools/javah/Main;Ljava/lang/String;Ljava/lang/String;)V�� gnu/classpath/tools/javah/Main$7�jni�"Emit JNI stubs or header (default)
                                    ! �ÿ�ý� gnu/classpath/tools/javah/Main$8�
                                    ! �&Emit CNI stubs or header (default JNI)
                                    ! �ý
                                    � gnu/classpath/tools/javah/Main$9�
                                    �Set verbose mode
                                    ! ��H(Lgnu/classpath/tools/javah/Main;Ljava/lang/String;CLjava/lang/String;)V�!gnu/classpath/tools/javah/Main$10��%Output files should always be written
                                    ! �ý�result�0Lgnu/classpath/tools/common/ClasspathToolParser;�makeOutputDirectory�()Ljava/io/File;	���!�.
                                    ! �¨�6�
                                    ! outputFile�makeOutputFile	�&�	�
                                    ! �¨()*�exists�()Z
                                    ! �¨,-*�isFile/�'1�' is not a file
                                    ! ��6	�4��	�6�
                                    �	8:9�java/lang/System;<�err�Ljava/io/PrintStream;>�[@�* already exists.  Use -force to overwrite]
                                    ! BDC�java/io/PrintStreamE�/�println
                                    ! �¨GH*�deleteJ�$Was unable to delete existing file: �writeHeaders�9(Ljava/util/HashMap;Lgnu/classpath/tools/javah/Printer;)V�q(Ljava/util/HashMap<Ljava/io/File;Lgnu/classpath/tools/javah/ClassWrapper;>;Lgnu/classpath/tools/javah/Printer;)V
                                    ! �#OPQ�entrySet�()Ljava/util/Set;SUT�
                                    java/util/SetVW�iterator�()Ljava/util/Iterator;Y[Z�java/util/Iterator\]�next�()Ljava/lang/Object;_�java/util/Map$Entry^ab]�getKey^de]�getValueg�&gnu/classpath/tools/javah/ClassWrapperi�	[writing 
                                    ! �7k�>l�-(Ljava/lang/Object;)Ljava/lang/StringBuilder;n� as p�]
                                    ! rts�!gnu/classpath/tools/javah/Printeruv�
                                    ! printClass�9(Ljava/io/File;Lgnu/classpath/tools/javah/ClassWrapper;)VYxy*�hasNext�klasses�printer�#Lgnu/classpath/tools/javah/Printer;�i�Ljava/util/Iterator;�e�Ljava/util/Map$Entry;�file�klass�(Lgnu/classpath/tools/javah/ClassWrapper;�KLjava/util/HashMap<Ljava/io/File;Lgnu/classpath/tools/javah/ClassWrapper;>;�cLjava/util/Iterator<Ljava/util/Map$Entry<Ljava/io/File;Lgnu/classpath/tools/javah/ClassWrapper;>;>;�MLjava/util/Map$Entry<Ljava/io/File;Lgnu/classpath/tools/javah/ClassWrapper;>;�	postParse�([Ljava/lang/String;)V�names�[Ljava/lang/String;�run
                                    ! ��Ã�Ä
                                    ! �Å‘�parse�)([Ljava/lang/String;Z)[Ljava/lang/String;
                                    ! �“‡ˆ
                                    ! �•–—�	getLoader�()Ljava/net/URLClassLoader;	�™�
                                      �
                                    ! �›
                                    ! �$	�Ÿ��	�¡��£�(gnu/classpath/tools/javah/JniStubPrinter
                                    ! ¢¥�¦�3(Lgnu/classpath/tools/javah/Main;Ljava/io/File;ZZ)V¨�+gnu/classpath/tools/javah/JniIncludePrinter
                                    ! §¥«�(gnu/classpath/tools/javah/CniStubPrinter
                                    ! ª¥®�+gnu/classpath/tools/javah/CniIncludePrinter
                                    ! ­¥
                                    ! �´�	�²��
                                    ! �´�Ÿ� ¶�.class
                                    ! �U¸¹º�endsWith�(Ljava/lang/String;)Z
                                    ! �´�Š
                                    ! �´U¾�[reading file 
                                    ! �ÀÁÂ�getClass�8(Ljava/io/File;)Lgnu/classpath/tools/javah/ClassWrapper;	fÄÅ��name
                                    ! �UÇÈÉ�replace�(CC)Ljava/lang/String;Ë�[reading class 
                                    ! �ÍÁÎ�<(Ljava/lang/String;)Lgnu/classpath/tools/javah/ClassWrapper;
                                    ! �ÐKL�args�p�
                                    ! classNames�isDirectory�item�Ljava/lang/Object;�filename�	className�(Ljava/util/Iterator<Ljava/lang/Object;>;�getClassTextList�)(Ljava/lang/String;)Ljava/util/ArrayList;�K(Ljava/lang/String;)Ljava/util/ArrayList<Lgnu/classpath/tools/javah/Text;>;
                                    ! �#Þßà�get�&(Ljava/lang/Object;)Ljava/lang/Object;�	readClass�?(Ljava/io/InputStream;)Lgnu/classpath/tools/javah/ClassWrapper;ä�org/objectweb/asm/ClassReader
                                    ! ã�L
                                    ! fç�è�#(Lgnu/classpath/tools/javah/Main;)V
                                    ! ãêëì�accept�$(Lorg/objectweb/asm/ClassVisitor;Z)V
                                    ! îðï�java/io/InputStreamñ��close�is�Ljava/io/InputStream;�r�Lorg/objectweb/asm/ClassReader;
                                    ! �3÷�ø�(Ljava/io/File;)V
                                    ! �úáâ
                                    ! �#üý�q�containsKeyÿ�"java/lang/IllegalArgumentException�class � already loaded
                                    ! þ�6�fileName
                                    ! �U	�valueOf�&(Ljava/lang/Object;)Ljava/lang/String;
                                    ! 
                                    �java/net/URLClassLoader�findResource�"(Ljava/lang/String;)Ljava/net/URL;�can't find class file � in 
                                    ! �java/net/URL�
                                      openStream�()Ljava/io/InputStream;�resource�url�Ljava/net/URL;�main
                                    ! ��
                                    ! � ‹ˆ�m�
                                    ! SourceFile�	Main.java�InnerClasses&�
                                    java/util/Map�Entry�!��������������������	������
                                    ! ������������
                                    ��������������������������������������������������������`�����&*·�*»�Y·� µ�!*»�#Y·�%µ�&*»�#Y·�%µ�(±����*�������A��E��c��f�%�A�+�������&�,�-�����.�/��0�����1���Í����I»�3Y+·�5M§�!W»�1Y»�7Y9·�;+¶�<@¶�<¶�B·�F¿»�GY»�IY,·�K·�NN::-¶�Q:§�W§�íÇ�§�å¶�T:¶�Y™ÿ߶�]# �§ÿÑ ¶�a6¶�e:`¶�i:	l¶�n™�$Æ�*´�(¶�rW	:»�vY·�x:§ÿˆÇ�
                                    »�1Yy·�F¿{¶�n™�	6
                                    ! §�L}¶�n™�	6
                                    ! §�<~¶�n™�	6
                                    ! §�,€¶�n™�	6
                                    ! §�»�1Y»�7Y‚·�;¶�<¶�B·�F¿»�„Y
                                    ! 	·�†¶�‰W§ÿÆ�*´�(¶�rW±����	��‹�@�F�I���*���ž�'���m��o�
                                    �q�*�s�:�t�=�u�@�{�I�}�J��M��R�‚�U�ƒ�\�„�o�…�r�†�{�‡�…�ˆ��Š�š�Œ�Ÿ�Ž�«��¯�‘�¸�’�»�”�À�•�Ê�–�Ô�—�Ú�˜�ä�™�ê�š�ô�›�ú�œ�
                                    ! �Ÿ#� 4�v7�¢<�¤H�¦�+���¬���I�,�-����I����	���‘��*��‘��:�’�“��=�”���@	�•�–��F��—���M�ç�—���{�¹�˜�™��…�¯�š����¤�›��	�×��œ�™�
                                    ! �ç��œ�™�
                                    ! �÷��œ�™�
                                    ! ��œ�™�
                                    ! #��œ�™�
                                    ! ������@	�•�ž����Ÿ� ������¡����‚�����+»�¢Y*,·�¤¶�§N-Æ�,-¸�­¶�³W±����*�������ª��¶��·��¸�+���*�����,�-������¹�º�����»�¼����½�¾����������»�¿���À�E�����-�����Á°����*�������¼�+��������,�-����Ã�Ä����7�����¿»�ÅY*¶�Ç·�ÉL+̶�Î+*´�!¶�Ñ+»�ÔY*dÖØ·�Ú¶�Ý+»�àY*oâä·�æ¶�Ý+»�çY*éëä·�í¶�Ý+»�ðY*òôØ·�ö¶�Ý+»�÷Y*ùú·�ü¶�Ý+»�ÿY*·¶�Ý+»Y*	·¶�Ý+»Y*v·¶�Ý+»Y*·¶�Ý+°����*���J����Á�
                                    �Â��Ã��Ä�-�Ï�5�Ð�7�Ñ�<�Ï�?�Ü�Q�ã�[�ä�`�ã�c�î�s�õ�…�ÿ�—	�«�½�+�������¿�,�-���
                                    �²����0���������m�����#*´Ç�»�¨Y ·"L§�»�¨Y*´·"L+°����*�������� �!!�+��� ����#�,�-����#�º��!�#�º��$��0���������ý�����‘»�¨Y*´%·"L+¶'™�+¶+š�%»�Y»�7Y.·�;*´%¶�<0¶�<¶�B·2¿*´3š�,*´5™�#²7»�7Y=·�;*´%¶�<?¶�<¶�B¶A°+¶Fš�»�Y»�7YI·�;*´%¶�<¶�B·2¿+°����*���>���-�.�0�1�<2�C4�J5�^6�g5�j7�l9�s:�;�‹:�=�+�������‘�,�-����…�º��KL��0���������M���"�����r+¶N¹R�N§�^-¹X�À^:¹`�À�¨:¹c�Àf:*´5™�,²7»�7Yh·�;¶jm¶�<¶jo¶�<¶�B¶A,¶q-¹w�šÿŸ±����*���*�
                                      ��C�
                                    ! D�
                                    F�G�$H�0I�7J�`K�hD�qM�+���H����r�,�-�����rz�����r{|��
                                    ! �h}~���P€��$�D�º��0�8‚ƒ����� ����rz„��
                                    ! �h}…���P†��‡ˆ�����5������±����*������R�+��������,�-�����‰Š��‹ˆ��0��������z����Ì*¶ŒM,+¶ŽN*-¶’**´�!¶”µ˜*´%Ç�§�6™�
                                    ! *·š§�*·œ:Ç�±*´žš�4*´ ™�»¢Y**´3·¤:§�F»§Y**´3·©:§�1*´ ™�»ªY**´3·¬:§�»­Y**´3·¯:»�´Y·°:*´±Æ�*»�¨Y*´±·"¶³6§�1-2µ¶·™�»�¨Y-2·"¶»W§�
                                    -2¶»W„-¾¡ÿζ¼:»�#Y·�%:	§�¥¹X�:
                                      
                                    ! Á�¨™�D*´5™�!²7»�7Y½·�;
                                    ! ¶jo¶�<¶�B¶A*
                                    ! À�¨·¿:»�¨Y´÷":§�I
                                    ! À�U./¶Æ:
                                    *´5™�!²7»�7YÊ·�;
                                    ¶�<o¶�<¶�B¶A»�¨Y
                                    ·":*
                                    ¶Ì:	¶�rW¹w�šÿW*	·ϱ����*���¦�)��V�W�X�Y�[�*\�<]�A^�Ba�Ic�Pd�ef�zj�k�–m�¨s�±t�¸u�Éx�Ïz�Ü|�ð€�úx„…†Š (/‘M’X“i˜w™~šœ§ž¯ ¹†Ã£Ë¤�+���Ê���Ì�,�-����ÌÑŠ��ÇÒ��ÀÓŠ��*¢Ô���<#�º��b�{|��w�{|��“�{|��¨${|��±z�¼��Ì�8}�™��Á}~��¸�»��	 �™ÕÖ�
                                    ! X�‚ƒ�¯�
                                    ! ‚ƒ�f�×�º�§�×�º�w�8Ø��
                                    ���� ��±z�¿��Á}Ù��¸�»„�	�ÚÛ�����Ü����@�����*´�(+¶ÝÀ�v°����*������¨�+��������,�-�����Å���áâ��0���������v�����»ãY+·åM»fY*·æN,-¶é+¶í-°����*������­�	®�¯�°�±�+���*�����,�-�����òó��	�ôõ���ƒ��ÁÂ��0���������²�����N»�3Y+·öM*,·ùN*´�&-´öû™�%»þY»�7Y�·�;-´ö�<¶�<¶�B·¿*´�&-´Ã-¶�rW-°����*���"���¶�	·�¸�¹�2º�;¹�?»�L¼�+���*����N�,�-�����N�º��	�Eòó���?ƒ��ÁÎ��0�������������*´�&+¶ûš�k»�7Y+./¶Ƹ·�;µ¶�<¶�BM*´˜,¶
                                    ! N-Ç�)»�Y»�7Y·�;,¶�<¶�<*´˜¶j¶�B·2¿-¶:*·ù:*´�&+¶�rW*´�&+¶ÝÀf°����*���.���Á�Ã�'Ä�0Å�4Æ�FÇ�VÆ�ZÈ�`É�hÊ�sÌ�+���>�����,�-�����Å���'�L���0�C��`�òó��h�ƒ��	ˆ��0���������J�����»�Y·L+*¶±����*������Ñ�Ò�
                                    Ó�+�������ÑŠ����!�-��"���#$���Z��¢�������������Ô�������à�������ç�������ð�������÷�������ÿ������������������^%'	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,24 ****
                                    ! Êþº¾���1� ��&gnu/classpath/tools/javah/MethodHelper��java/lang/Object�<init>�()V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�(Lgnu/classpath/tools/javah/MethodHelper;�	overrides�I(Lorg/objectweb/asm/tree/MethodNode;Lorg/objectweb/asm/tree/MethodNode;)Z	����!org/objectweb/asm/tree/MethodNode���name�Ljava/lang/String;
                                    ! ����java/lang/String���equals�(Ljava/lang/Object;)Z	�����desc�derived�#Lorg/objectweb/asm/tree/MethodNode;�base�getBridgeTarget�7(Lorg/objectweb/asm/tree/MethodNode;)Ljava/lang/String;	��%�&�'�access�I	��)�*�+�instructions�Ljava/util/List;�-�/�.�java/util/List�0�1�iterator�()Ljava/util/Iterator;�3�5�4�java/util/Iterator�6�7�next�()Ljava/lang/Object;�9�'org/objectweb/asm/tree/AbstractInsnNode�;�%org/objectweb/asm/tree/MethodInsnNode	�:��3�>�?�@�hasNext�()Z�meth�i�Ljava/util/Iterator;�insn�)Lorg/objectweb/asm/tree/AbstractInsnNode;�print�Š(Lgnu/classpath/tools/javah/CniPrintStream;Lorg/objectweb/asm/tree/MethodNode;Lgnu/classpath/tools/javah/ClassWrapper;Ljava/lang/String;)V�I�<clinit>�
                                    ! �L�N�M�(gnu/classpath/tools/javah/CniPrintStream�O�P�setModifiers�(I)V�R�  
                                    ! �L�T�F�U�(Ljava/lang/String;)V
                                    ! �W�Y�X�java/lang/reflect/Modifier�Z�[�isStatic�(I)Z�]�static 
                                    ! �W�_�`�[�	isPrivate	�b�%�c�&gnu/classpath/tools/javah/ClassWrapper
                                    ! �W�e�f�[�isFinal�h�virtual 
                                    ! �j�l�k�org/objectweb/asm/Type�m�n�
                                    getReturnType�,(Ljava/lang/String;)Lorg/objectweb/asm/Type;
                                    ! �L�p�F�q�(Lorg/objectweb/asm/Type;)V�s� 
                                    ! �L�u�v�U�	printName	�b�
                                    ! ��y�z�{�lastIndexOf�(I)I
                                    ! ��}�~��	substring�(I)Ljava/lang/String;��(
                                    ! �j�ƒ�„�…�getArgumentTypes�-(Ljava/lang/String;)[Lorg/objectweb/asm/Type;�‡�, �‰�)
                                    ! �W�‹�Œ�[�
                                    ! isAbstract�Ž� = 0��;
                                    ! �L�’�“�U�println�out�*Lgnu/classpath/tools/javah/CniPrintStream;�declarer�(Lgnu/classpath/tools/javah/ClassWrapper;�realMethodName�isInit�Z�index�argTypes�[Lorg/objectweb/asm/Type;�
                                      SourceFile�MethodHelper.java�!���������������/�����*·�±����
                                      �������2����������
                                    ���	�������f�����"*´�+´�¶�š�¬*´�+´�¶�š�¬¬����
                                    ! �������7��8��9��:� �<��������"�� �����"�!� ��	�"�#�����¢�����@*´�$@~š�°*´�(¹�,�L§�+¹�2�À�8M,Á�:š�§�,À�:´�<°+¹�=�šÿÞ°����
                                      ���*�
                                      ���A�
                                    ! �B��C��D��F�#�G�*�H�-�I�5�D�>�K���� ����@�A� ����*�B�C��#��D�E��	�F�G����Õ�����çH+´�¶�™�±J+´�¶�6*+´�$¶�K*Q¶�S+´�$¸�V™�*\¶�S§�"š�+´�$¸�^š�,´�a¸�dš�	*g¶�Sš�*+´�¸�i¶�o*r¶�S*-¶�t§�#,´�w:/¶�x6`¶�|:*¶�t*€¶�S+´�¸�‚:6§�ž�	*†¶�S*2¶�o„¾¡ÿä*ˆ¶�S+´�$¸�Š™�	*¶�S*¶�‘±����
                                    ! ���z����Q��R�
                                    �S��T� �U�&�V�0�W�9�]�H�^�R�_�X�`�]�b�h�c�n�d�v�h�|�i�…�j��k�–�m�œ�n�¥�o�«�q�°�r�¶�s�¿�o�Ê�u�Ð�v�Ú�w�à�x�æ�y����\�	���ç�”�•�����ç�A� ����ç�–�—����ç�˜����Ï�™�š��|�����…��›�'��¥�B�œ���¨�"�B�'���ž����Ÿ
                                    \ No newline at end of file
                                    --- 1,24 ----
                                    ! Êþº¾���1�¢��&gnu/classpath/tools/javah/MethodHelper��java/lang/Object�<init>�()V�Code
                                      ��	���LineNumberTable�LocalVariableTable�this�(Lgnu/classpath/tools/javah/MethodHelper;�	overrides�I(Lorg/objectweb/asm/tree/MethodNode;Lorg/objectweb/asm/tree/MethodNode;)Z	����!org/objectweb/asm/tree/MethodNode���name�Ljava/lang/String;
                                    ! ����java/lang/String���equals�(Ljava/lang/Object;)Z	�����desc�derived�#Lorg/objectweb/asm/tree/MethodNode;�base�getBridgeTarget�7(Lorg/objectweb/asm/tree/MethodNode;)Ljava/lang/String;	��%�&�'�access�I	��)�*�+�instructions�Ljava/util/List;�-�/�.�java/util/List�0�1�iterator�()Ljava/util/Iterator;�3�5�4�java/util/Iterator�6�7�next�()Ljava/lang/Object;�9�'org/objectweb/asm/tree/AbstractInsnNode�;�%org/objectweb/asm/tree/MethodInsnNode	�:��3�>�?�@�hasNext�()Z�meth�i�Ljava/util/Iterator;�insn�)Lorg/objectweb/asm/tree/AbstractInsnNode;�LocalVariableTypeTable�Ljava/util/Iterator<*>;�print�Š(Lgnu/classpath/tools/javah/CniPrintStream;Lorg/objectweb/asm/tree/MethodNode;Lgnu/classpath/tools/javah/ClassWrapper;Ljava/lang/String;)V�K�<clinit>�
                                    ! �N�P�O�(gnu/classpath/tools/javah/CniPrintStream�Q�R�setModifiers�(I)V�T�  
                                    ! �N�V�H�W�(Ljava/lang/String;)V
                                    ! �Y�[�Z�java/lang/reflect/Modifier�\�]�isStatic�(I)Z�_�static 
                                    ! �Y�a�b�]�	isPrivate	�d�%�e�&gnu/classpath/tools/javah/ClassWrapper
                                    ! �Y�g�h�]�isFinal�j�virtual 
                                    ! �l�n�m�org/objectweb/asm/Type�o�p�
                                    getReturnType�,(Ljava/lang/String;)Lorg/objectweb/asm/Type;
                                    ! �N�r�H�s�(Lorg/objectweb/asm/Type;)V�u� 
                                    ! �N�w�x�W�	printName	�d�
                                    ! ��{�|�}�lastIndexOf�(I)I
                                    ! ���€��	substring�(I)Ljava/lang/String;�ƒ�(
                                    ! �l�…�†�‡�getArgumentTypes�-(Ljava/lang/String;)[Lorg/objectweb/asm/Type;�‰�, �‹�)
                                    ! �Y��Ž�]�
                                    ! isAbstract�� = 0�’�;
                                    ! �N�”�•�W�println�out�*Lgnu/classpath/tools/javah/CniPrintStream;�declarer�(Lgnu/classpath/tools/javah/ClassWrapper;�realMethodName�isInit�Z�index�argTypes�[Lorg/objectweb/asm/Type;�
                                      SourceFile�MethodHelper.java�!���������������/�����*·�±����
                                      �������2����������
                                    ���	�������f�����"*´�+´�¶�š�¬*´�+´�¶�š�¬¬����
                                    ! �������7��8��9��:� �<��������"�� �����"�!� ��	�"�#�����´�����@*´�$@~š�°*´�(¹�,�L§�+¹�2�À�8M,Á�:š�§�,À�:´�<°+¹�=�šÿÞ°����
                                      ���*�
                                      ���A�
                                    ! �B��C��D��F�#�G�*�H�-�I�5�D�>�K���� ����@�A� ����*�B�C��#��D�E��F������*�B�G��	�H�I����Õ�����çJ+´�¶�™�±L+´�¶�6*+´�$¶�M*S¶�U+´�$¸�X™�*^¶�U§�"š�+´�$¸�`š�,´�c¸�fš�	*i¶�Uš�*+´�¸�k¶�q*t¶�U*-¶�v§�#,´�y:/¶�z6`¶�~:*¶�v*‚¶�U+´�¸�„:6§�ž�	*ˆ¶�U*2¶�q„¾¡ÿä*Š¶�U+´�$¸�Œ™�	*¶�U*‘¶�“±����
                                    ! ���z����Q��R�
                                    �S��T� �U�&�V�0�W�9�]�H�^�R�_�X�`�]�b�h�c�n�d�v�h�|�i�…�j��k�–�m�œ�n�¥�o�«�q�°�r�¶�s�¿�o�Ê�u�Ð�v�Ú�w�à�x�æ�y����\�	���ç�–�—�����ç�A� ����ç�˜�™����ç�š����Ï�›�œ��|�����…���'��¥�B�ž�Ÿ��¨�"�B�'��� ����¡
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 1,32 ****
                                    ! Êþº¾���1�³��)gnu/classpath/tools/javah/PathOptionGroup��&gnu/classpath/tools/getopt/OptionGroup�	classpath�Ljava/util/ArrayList;�
                                    bootclasspath�setPath�*(Ljava/util/ArrayList;Ljava/lang/String;)V�Code
                                    ! ���
                                    �java/util/ArrayList���clear�()V��java/util/StringTokenizer	����java/io/File���
                                    pathSeparator�Ljava/lang/String;
                                    ! �����<init>�'(Ljava/lang/String;Ljava/lang/String;)V
                                    ! ���� �	nextToken�()Ljava/lang/String;
                                    ! ��"�#�$�add�(Ljava/lang/Object;)Z
                                    ! ��&�'�(�
                                    hasMoreTokens�()Z�LineNumberTable�LocalVariableTable�this�+Lgnu/classpath/tools/javah/PathOptionGroup;�list�path�st�Ljava/util/StringTokenizer;�
                                      addExtDirs
                                    ! ��3��4�(Ljava/lang/String;)V�6�+gnu/classpath/tools/javah/PathOptionGroup$1
                                    ! �5�8��9�.(Lgnu/classpath/tools/javah/PathOptionGroup;)V
                                    ! ��;�-�<�-(Ljava/io/FilenameFilter;)[Ljava/lang/String;
                                    ! �>�@�?�java/util/Arrays�A�B�asList�%([Ljava/lang/Object;)Ljava/util/List;
                                    ! ��D�E�F�addAll�(Ljava/util/Collection;)Z�tok�dir�Ljava/io/File;�K�Class path options
                                    ! ��3
                                    ! ��N��	��P��	��R���T�sun.boot.class.path
                                    ! �V�X�W�java/lang/System�Y�Z�getProperty�&(Ljava/lang/String;)Ljava/lang/String;
                                    ! ��\��	�^�+gnu/classpath/tools/javah/PathOptionGroup$2��a�Set the class path�c�PATH
                                    ! �]�e��f�d(Lgnu/classpath/tools/javah/PathOptionGroup;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
                                    ! ��h�#�i�&(Lgnu/classpath/tools/getopt/Option;)V�k�+gnu/classpath/tools/javah/PathOptionGroup$3�m�cp
                                    ! �j�e�p�+gnu/classpath/tools/javah/PathOptionGroup$4�r�Add directory to class path�t�DIR
                                    ! �o�v��w�T(Lgnu/classpath/tools/javah/PathOptionGroup;CLjava/lang/String;Ljava/lang/String;Z)V�y�+gnu/classpath/tools/javah/PathOptionGroup$5��|�Set the boot class path
                                    ! �x�e��+gnu/classpath/tools/javah/PathOptionGroup$6��extdirs�ƒ� Set the extension directory path
                                    ! �~�e�boot�	getLoader�()Ljava/net/URLClassLoader;�
                                    ! Exceptions�Š�java/net/MalformedURLException
                                    ! ��Œ��Ž�iterator�()Ljava/util/Iterator;��’�‘�java/util/Iterator�“�”�next�()Ljava/lang/Object;�–�java/lang/String
                                    ! ��˜�™�š�toURL�()Ljava/net/URL;��œ��(�hasNext�Ÿ�java/net/URL
                                    ! ��¡�¢�£�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�¥�[Ljava/net/URL;�§�java/net/URLClassLoader
                                    ! �¦�©��ª�([Ljava/net/URL;)V�urls�i�Ljava/util/Iterator;�f�urlArray�
                                    ! SourceFile�PathOptionGroup.java�InnerClasses�!����������������������	��
                                    ! ���€�����$+¶�»�Y,²�·�N§�+-¶�¶�!W-¶�%šÿó±����)�������@��A��B��D��B�#�F�*���*����$�+�,�����$�-�����$�.�����/�0����1�	��
                                    ! ���Ÿ�����9»�Y,²�·�N§�%»�Y-¶�·�2:+»�5Y*·�7¶�:¸�=¶�CW-¶�%šÿÚ±����)�������J��K��M��N�1�K�8�V�*���4����9�+�,�����9�-�����9�.����-�G�0����H�I������
                                    ! ���ë�����‹*J·�L*»�Y·�Mµ�O*»�Y·�Mµ�QS¸�UL+Æ�**´�Q+¶�[*»�]Y*_`b·�d¶�g*»�jY*l`b·�n¶�g*»�oY*Iqs·�u¶�g*»�xY*z{b·�}¶�g*»�~Y*€‚b·�„¶�g±����)���2����Z��:��<��]�"�^�&�_�/�a�A�h�S�o�f�v�x�}�Š�„�*�������‹�+�,���"�i�…����†�‡��ˆ�����‰�
                                    ! ���É�����W»�Y·�ML*´�O*´�Q¶�CW*´�O¶�‹M§�,¹��À�•N+»�Y-·�2¶�—¶�!W,¹�›�šÿà+½�ž¶� À�¤N»�¦Y-·�¨°����)���&�	���ˆ��‰��Š��‹���)�Ž�9�‹�B��N�‘�*���4����W�+�,����O�«����;�¬�­��)��®���N�	�¯�¥���°����±�²���2��5�������]�������j�������o�������x�������~������
                                    \ No newline at end of file
                                    --- 1,30 ----
                                    ! Êþº¾���1�¹��)gnu/classpath/tools/javah/PathOptionGroup��&gnu/classpath/tools/getopt/OptionGroup�	classpath�Ljava/util/ArrayList;�	Signature�)Ljava/util/ArrayList<Ljava/lang/String;>;�
                                    bootclasspath�setPath�*(Ljava/util/ArrayList;Ljava/lang/String;)V�>(Ljava/util/ArrayList<Ljava/lang/String;>;Ljava/lang/String;)V�Code
                                    ! ����java/util/ArrayList���clear�()V��java/util/StringTokenizer	����java/io/File���
                                    pathSeparator�Ljava/lang/String;
                                    ! �����<init>�'(Ljava/lang/String;Ljava/lang/String;)V
                                    ! ��!�"�#�	nextToken�()Ljava/lang/String;
                                    ! ��%�&�'�add�(Ljava/lang/Object;)Z
                                    ! ��)�*�+�
                                    hasMoreTokens�()Z�LineNumberTable�LocalVariableTable�this�+Lgnu/classpath/tools/javah/PathOptionGroup;�list�path�st�Ljava/util/StringTokenizer;�LocalVariableTypeTable�
                                      addExtDirs
                                    ! ��7��8�(Ljava/lang/String;)V�:�+gnu/classpath/tools/javah/PathOptionGroup$1
                                    ! �9�<��=�.(Lgnu/classpath/tools/javah/PathOptionGroup;)V
                                    ! ��?�0�@�-(Ljava/io/FilenameFilter;)[Ljava/lang/String;
                                    ! �B�D�C�java/util/Arrays�E�F�asList�%([Ljava/lang/Object;)Ljava/util/List;
                                    ! ��H�I�J�addAll�(Ljava/util/Collection;)Z�tok�dir�Ljava/io/File;�O�Class path options
                                    ! ��7
                                    ! ��R��	��T��	��V�	��X�sun.boot.class.path
                                    ! �Z�\�[�java/lang/System�]�^�getProperty�&(Ljava/lang/String;)Ljava/lang/String;
                                    ! ��`�
                                    ! ��b�+gnu/classpath/tools/javah/PathOptionGroup$2��e�Set the class path�g�PATH
                                    ! �a�i��j�d(Lgnu/classpath/tools/javah/PathOptionGroup;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
                                    ! ��l�&�m�&(Lgnu/classpath/tools/getopt/Option;)V�o�+gnu/classpath/tools/javah/PathOptionGroup$3�q�cp
                                    ! �n�i�t�+gnu/classpath/tools/javah/PathOptionGroup$4�v�Add directory to class path�x�DIR
                                    ! �s�z��{�T(Lgnu/classpath/tools/javah/PathOptionGroup;CLjava/lang/String;Ljava/lang/String;Z)V�}�+gnu/classpath/tools/javah/PathOptionGroup$5�	�€�Set the boot class path
                                    ! �|�i�ƒ�+gnu/classpath/tools/javah/PathOptionGroup$6�…�extdirs�‡� Set the extension directory path
                                    ! �‚�i�boot�	getLoader�()Ljava/net/URLClassLoader;�
                                    ! Exceptions�Ž�java/net/MalformedURLException
                                    ! ���‘�’�iterator�()Ljava/util/Iterator;�”�–�•�java/util/Iterator�—�˜�next�()Ljava/lang/Object;�š�java/lang/String
                                    ! ��œ��ž�toURL�()Ljava/net/URL;�”� �¡�+�hasNext�£�java/net/URL
                                    ! ��¥�¦�§�toArray�(([Ljava/lang/Object;)[Ljava/lang/Object;�©�[Ljava/net/URL;�«�java/net/URLClassLoader
                                    ! �ª�­��®�([Ljava/net/URL;)V�urls�i�Ljava/util/Iterator;�f�urlArray�%Ljava/util/ArrayList<Ljava/net/URL;>;�(Ljava/util/Iterator<Ljava/lang/String;>;�
                                    ! SourceFile�PathOptionGroup.java�InnerClasses�!������������������	�����������
                                    ! ��������
                                    ���’�����$+¶�»�Y,²�·�N§�+-¶� ¶�$W-¶�(šÿó±����,�������@��A��B��D��B�#�F�-���*����$�.�/�����$�0�����$�1�����2�3��4�������$�0�����5��������
                                    ���±�����9»�Y,²�·�N§�%»�Y-¶� ·�6:+»�9Y*·�;¶�>¸�A¶�GW-¶�(šÿÚ±����,�������J��K��M��N�1�K�8�V�-���4����9�.�/�����9�0�����9�1����-�K�3����L�M��4�������9�0�������
                                    ���ë�����‹*N·�P*»�Y·�Qµ�S*»�Y·�Qµ�UW¸�YL+Æ�**´�U+¶�_*»�aY*cdf·�h¶�k*»�nY*pdf·�r¶�k*»�sY*Iuw·�y¶�k*»�|Y*~f·�¶�k*»�‚Y*„†f·�ˆ¶�k±����,���2����Z��:��<��]�"�^�&�_�/�a�A�h�S�o�f�v�x�}�Š�„�-�������‹�.�/���"�i�‰����Š�‹��Œ������
                                    ���å�����W»�Y·�QL*´�S*´�U¶�GW*´�S¶�M§�,¹�“�À�™N+»�Y-·�6¶�›¶�$W,¹�Ÿ�šÿà+½�¢¶�¤À�¨N»�ªY-·�¬°����,���&�	���ˆ��‰��Š��‹���)�Ž�9�‹�B��N�‘�-���4����W�.�/����O�¯����;�°�±��)��²���N�	�³�©��4������O�¯�´���;�°�µ���¶����·�¸���2��9�������a�������n�������s�������|�������‚������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class	Tue Oct 12 15:55:12 2010
                                    *************** exceptions�Ljava/util/List;�sig�Lj
                                    *** 14,22 ****
                                      �V�
                                      �Z�\�[�java/lang/Class�]�^�isAssignableFrom�(Ljava/lang/Class;)Z�`�b�a�java/util/List�c�M�add�classes�list�	candidate�Ljava/lang/Class;�Z�j�intersectExceptions�`�l�m�n�get�(I)Ljava/lang/Object;�`�p�q�r�size�()I�incoming�updated�outer�addOuter�inner�
                                      SourceFile�ClassRmicCompiler.java�InnerClasses�|�*gnu/classpath/tools/rmic/ClassRmicCompiler�	MethodRef� ��������������	�
                                    ! ����������
                                    �������������p�����(*·�*+µ�**´�¸�µ�*+¸�µ�%*+¶�'¸�-µ�1±����3������É�Ê�	Ë�Ì�Î�'Ï�4�������(�5�6�����(�7����8�9����������)+À�M*´�¶�:,´�¶�:¶�>>š�*´�,´�¶�>¬¬����3������Ò�Ó�Ô�Õ�'×�4���*����)�5�6�����)�C�D���$�E�6����F�G���H�I�����Á�����K*´�¶�:+¶�:¶�Jš�¬*´�¶�NM+¶�NN,¾-¾Ÿ�¬6§�,2-2¶�Qš�¬„,¾¡ÿé¬����3���*�
                                    ! ��Ü�Ý�ß�à� á�'â�)ä�/å�?ä�Iç�4���4����K�5�6�����K�7����0�R�S�� �+�T�S��,��U�G��
                                    ! �/�0�����ä�����X»�VY·�XL=§�F*2N66§�"*2-¶�Q™�§�*2-¶�Y™�6„*¾¡ÿÝ™�+-¹�_�W„*¾¡ÿº+°����3���6�
                                    ��ì�í�
                                    ï�ð�ñ�ó�%ô�(õ�3ö�6ñ�@ø�Mí�Vû�4���>����X�d�S����P�e���
                                    ! �L�U�G���<�f�g���9�c�h���)�i�G���j�����V��	���œ+¶�'¸�-M»�VY·�XN6§�u*´�1¹�k�À�Z:66§�@,¹�k�À�Z:¶�Qš�
                                    ¶�Y™�	6§�¶�Y™�-¹�_�W„,¹�o�¡ÿ»™�-¹�_�W„*´�1¹�o�¡ÿƒ*-µ�1±����3���F��������&�)�/
                                    ! �<�P
                                    �V�`�i�w�|�…�–�›�4���\�	���œ�5�6�����œ�7����”�s����Œ�t����ƒ�U�G��&�_�u�g��)�\�v�h��,�K�i�G��<�-�w�g���x����y�z���
                                      ���{�}�
                                    --- 14,21 ----
                                      �V�
                                      �Z�\�[�java/lang/Class�]�^�isAssignableFrom�(Ljava/lang/Class;)Z�`�b�a�java/util/List�c�M�add�classes�list�	candidate�Ljava/lang/Class;�Z�j�intersectExceptions�`�l�m�n�get�(I)Ljava/lang/Object;�`�p�q�r�size�()I�incoming�updated�outer�addOuter�inner�
                                      SourceFile�ClassRmicCompiler.java�InnerClasses�|�*gnu/classpath/tools/rmic/ClassRmicCompiler�	MethodRef� ��������������	�
                                    ! ����������
                                    �������������p�����(*·�*+µ�**´�¸�µ�*+¸�µ�%*+¶�'¸�-µ�1±����3������Ú�Û�	Ü�Ý�ß�'à�4�������(�5�6�����(�7����8�9����������)+À�M*´�¶�:,´�¶�:¶�>>š�*´�,´�¶�>¬¬����3������ã�ä�å�æ�'è�4���*����)�5�6�����)�C�D���$�E�6����F�G���H�I�����Á�����K*´�¶�:+¶�:¶�Jš�¬*´�¶�NM+¶�NN,¾-¾Ÿ�¬6§�,2-2¶�Qš�¬„,¾¡ÿé¬����3���*�
                                    ! ��í�î�ð�ñ� ò�'ó�)õ�/ö�?õ�Iø�4���4����K�5�6�����K�7����0�R�S�� �+�T�S��,��U�G��
                                    ! �/�0�����ä�����X»�VY·�XL=§�F*2N66§�"*2-¶�Q™�§�*2-¶�Y™�6„*¾¡ÿÝ™�+-¹�_�W„*¾¡ÿº+°����3���6�
                                    ��ý�þ�
                                    �����%�(�3�6�@	�Mþ�V�4���>����X�d�S����P�e���
                                    ! �L�U�G���<�f�g���9�c�h���)�i�G���j�����V��	���œ+¶�'¸�-M»�VY·�XN6§�u*´�1¹�k�À�Z:66§�@,¹�k�À�Z:¶�Qš�
                                    ¶�Y™�	6§�¶�Y™�-¹�_�W„,¹�o�¡ÿ»™�-¹�_�W„*´�1¹�o�¡ÿƒ*-µ�1±����3���F�������&�)�/�<�P�V�` �i�w#�|$�…�–'�›(�4���\�	���œ�5�6�����œ�7����”�s����Œ�t����ƒ�U�G��&�_�u�g��)�\�v�h��,�K�i�G��<�-�w�g���x����y�z���
                                      ���{�}�
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class	Tue Oct 12 15:55:12 2010
                                    *************** interfaces�remoteInterface�meths�[
                                    *** 139,160 ****
                                      �Üàá«�getComponentType�str�count�
                                      SourceFile�ClassRmicCompiler.java�InnerClasses�	MethodRef�!������������	�
                                      ���������
                                    ����������������������������������������������
                                    ! ������������������������� ����!�����"�����#�����$���%����&�!��(�)��*���o�����)*·�+*»�-Y·�/µ�0*µ�2*µ�4*µ�6*µ�8*µ�:±����<���"����9��>��?��@��A��B�#�H�(�9�=�������)�>�?����@�A��*��t�����º*+µ�B*´�D*´�B¾¡�¬*´�D=§�]*´�F™�#²�H»�NYP·�R*´�B2¶�UY¶�U¶�[¶�_**´�B2²�d.¶�j·�p§�N*´�0-¹�s�W§�N*´�0-¹�s�W„*´�B¾¡ÿ *´�0¹�y�ž�(*´�0¹�}�M§�,¹��À�†N*-·�ˆ,¹�Œ�šÿë*´�:š�¬¬���T�W���T�f�’��<���J����X��Z��[��]��a�"�b�B�c�W�e�X�g�f�i�g�k�r�]�~�n�Š�p�—�r�¡�s�¦�p�¯�w�=���H����º�>�?�����º�”����f�•�
                                    ! ��X��–�—��g��–�˜��”��™�š��¡��›�œ���r�T��������’�*���§�����C*µ�ž*µ� *µ�¢*µ�¤*µ�¦*µ�¨*µ�ª*»�-Y·�/µ�¬*+·�®*·�±*´�4™�*·�´±����<���6�
                                    ���}��~�
                                    ! ���€����‚��ƒ�#�„�.�†�3�‡�7�ˆ�>�‰�B�Š�=�������C�>�?�����C�·����°�T�������’�*���±�����O*´�F™�²�H»�NY¸·�R+¶�Uº¶�U¶�[¶�_+.¶�¼=Ÿ�*+`¶�Àµ� §�*+µ� *+µ�¤*·�Ä*·�DZ����<���*�
                                    ! ������"�‘�)�’�.�“�<�•�A�–�F�˜�J�™�N�š�=��� ����O�>�?�����O�Ê���)�&�Ë�
                                    ! ���Ì�Í��Î�����*���H�����*´�0¹�y�š�§�*´�0¹�Ï�À�†°����<�������¡�=��������>�?����Æ�)�������’�*���ö�����t*´�ÓÇ�	¸�Õ§�*´�ÓL**´�¤+¸�Ûµ�ž§�%M»�’Y»�NYà·�R*´�¤¶�Uâ¶�U¶�[,·�ä¿ç*´�ž¶�éš�&»�’Y»�NYà·�R*´�ž¶�í¶�Uð¶�U¶�[·�ò¿±����"�ó��<���B����§��¨�
                                    �©��§��¬�"�®�#�°�'�±�@�°�D�´�P�¶�T�·�g�¸�l�·�o�¶�s�º�=��� ����t�>�?����b�õ���#�!�ö�÷��
                                    ! �ø�ù��*���m�����*¾½�úL=§�+*2¸�üS„*¾¡ÿñ+°����<�������¾��¿��Á��¿��Ä�=��� �����·���������•�
                                      ��
                                    ! ��*���m�����*¾½�kL=§�+*2¶S„*¾¡ÿñ+°����<�������É��Ê��Ì��Ê��Ï�=��� �������������•�
                                      ��
                                      	��*���2�����*¸
                                    ! ¸°����<�������Ô�=�����������
                                    ! ��*���k�����!»�-Y·�/M,*¹�s�W,»Y·¹�s�W,°����<�������Û��Ü��Ý��Þ�=��� ����!�����!�
                                      ������
                                      ��*��õ�	���*
                                    ! &ܸ�ü½�úYk¸�üS¸¹ �L»&Y·(M+,¹)�+¹/�+�¸ܸ36ܸ�ü½�úYk¸�üS¸¹7�+�°¹;�»&Y·(N+-¹)�+:¹/�+�»>¸@¹C�+Y¹;�+¹/�+�¶ó¸3Gk¸�ü½�ú¸¹7�+�·>¸3I²J½�úYk¸�üS¸¹7�+�¿¹;�+,--ó¸3¹N�+¹R�±����<���²�,���ä��å��ç��æ��è��ä�!�ã�"�ê�*�ë�1�ì�:�í�;�î�>�ï�C�ð�F�ò�W�ñ�Z�í�_�ó�h�õ�p�ö�w�÷�€�ø��ù�—�ú� �û�¡�ü�¤�ý�©�þ�¬�ÿ�¸�û�½��¾�Á�Ç�Ê�Ù�Ü��á�ê�ë�î	�ó�ø
                                    ! ��=���*����·U���"�ßVW��*�×XY��p�‘ZY��[\��*���	����ý,¶]™�Ë,²`¶e™�
                                      aN§�¤,²h¶e™�
                                      iN§�“,²k¶e™�
                                      lN§�‚,²n¶e™�
                                    --- 139,160 ----
                                      �Üàá«�getComponentType�str�count�
                                      SourceFile�ClassRmicCompiler.java�InnerClasses�	MethodRef�!������������	�
                                      ���������
                                    ����������������������������������������������
                                    ! ������������������������� ����!�����"�����#�����$���%����&�!��(�)��*���o�����)*·�+*»�-Y·�/µ�0*µ�2*µ�4*µ�6*µ�8*µ�:±����<���"����J��O��P��Q��R��S�#�Y�(�J�=�������)�>�?����@�A��*��t�����º*+µ�B*´�D*´�B¾¡�¬*´�D=§�]*´�F™�#²�H»�NYP·�R*´�B2¶�UY¶�U¶�[¶�_**´�B2²�d.¶�j·�p§�N*´�0-¹�s�W§�N*´�0-¹�s�W„*´�B¾¡ÿ *´�0¹�y�ž�(*´�0¹�}�M§�,¹��À�†N*-·�ˆ,¹�Œ�šÿë*´�:š�¬¬���T�W���T�f�’��<���J����i��k��l��n��r�"�s�B�t�W�v�X�x�f�z�g�|�r�n�~��Š��—�ƒ�¡�„�¦��¯�ˆ�=���H����º�>�?�����º�”����f�•�
                                    ! ��X��–�—��g��–�˜��”��™�š��¡��›�œ���r�T��������’�*���§�����C*µ�ž*µ� *µ�¢*µ�¤*µ�¦*µ�¨*µ�ª*»�-Y·�/µ�¬*+·�®*·�±*´�4™�*·�´±����<���6�
                                    ���Ž���
                                    ! ���‘��’��“��”�#�•�.�—�3�˜�7�™�>�š�B�›�=�������C�>�?�����C�·����°�T�������’�*���±�����O*´�F™�²�H»�NY¸·�R+¶�Uº¶�U¶�[¶�_+.¶�¼=Ÿ�*+`¶�Àµ� §�*+µ� *+µ�¤*·�Ä*·�DZ����<���*�
                                    ! ��� ��¡�"�¢�)�£�.�¤�<�¦�A�§�F�©�J�ª�N�«�=��� ����O�>�?�����O�Ê���)�&�Ë�
                                    ! ���Ì�Í��Î�����*���H�����*´�0¹�y�š�§�*´�0¹�Ï�À�†°����<�������²�=��������>�?����Æ�)�������’�*���ö�����t*´�ÓÇ�	¸�Õ§�*´�ÓL**´�¤+¸�Ûµ�ž§�%M»�’Y»�NYà·�R*´�¤¶�Uâ¶�U¶�[,·�ä¿ç*´�ž¶�éš�&»�’Y»�NYà·�R*´�ž¶�í¶�Uð¶�U¶�[·�ò¿±����"�ó��<���B����¸��¹�
                                    �º��¸��½�"�¿�#�Á�'�Â�@�Á�D�Å�P�Ç�T�È�g�É�l�È�o�Ç�s�Ë�=��� ����t�>�?����b�õ���#�!�ö�÷��
                                    ! �ø�ù��*���m�����*¾½�úL=§�+*2¸�üS„*¾¡ÿñ+°����<�������Ï��Ð��Ò��Ð��Õ�=��� �����·���������•�
                                      ��
                                    ! ��*���m�����*¾½�kL=§�+*2¶S„*¾¡ÿñ+°����<�������Ú��Û��Ý��Û��à�=��� �������������•�
                                      ��
                                      	��*���2�����*¸
                                    ! ¸°����<�������å�=�����������
                                    ! ��*���k�����!»�-Y·�/M,*¹�s�W,»Y·¹�s�W,°����<�������ì��í��î��ï�=��� ����!�����!�
                                      ������
                                      ��*��õ�	���*
                                    ! &ܸ�ü½�úYk¸�üS¸¹ �L»&Y·(M+,¹)�+¹/�+�¸ܸ36ܸ�ü½�úYk¸�üS¸¹7�+�°¹;�»&Y·(N+-¹)�+:¹/�+�»>¸@¹C�+Y¹;�+¹/�+�¶ó¸3Gk¸�ü½�ú¸¹7�+�·>¸3I²J½�úYk¸�üS¸¹7�+�¿¹;�+,--ó¸3¹N�+¹R�±����<���²�,���õ��ö��ø��÷��ù��õ�!�ô�"�û�*�ü�1�ý�:�þ�;�ÿ�>��C�F�W�Z�þ�_�h�p�w�€	�
                                    ! �—� �¡
                                    �¤�©�¬�¸�½�¾�Á�Ç�Ê�Ù�Ü�á�ê�ë�î�ó�ø��=���*����·U���"�ßVW��*�×XY��p�‘ZY��[\��*���	����ý,¶]™�Ë,²`¶e™�
                                      aN§�¤,²h¶e™�
                                      iN§�“,²k¶e™�
                                      lN§�‚,²n¶e™�
                                    *************** SourceFile�ClassRmicCompiler.java�In
                                    *** 163,173 ****
                                      sN§�O,²u¶e™�
                                      vN§�>,²x¶e™�
                                      yN§�-,²{¶e™�
                                    ! |N§�»~Y»�NY€·�R,¶‚¶�[·…¿+�²-¸3†ܸ‡¹Š�±+,¶�í¹�+�¸*´�¢&ܸ�ü½�úYk¸�üS¸¹7�±����<���†�!������"�)�3�:�D�K�U�\�f�m�w�~�ˆ �!�™"� $�¹&�º'�Ä(�É&�Î)�Ï+�Ù,�Ú-�ã/�è0�ô.�÷,�ü1�=���„�
                                    ���ý�>�?�����ýVW����ý�·����‘���&�‘���7�‘���H�‘���Y�‘���j�‘���{�‘���Œ�‘����‘���¹�‘���’“��*���º�����R+»Y,¾·¹�+�½ܸ@¹C�>§�,+Y¹;�+»Y·¹�*+,2·”+S¹;�„,¾¡ÿÔ±����<���&�	��5�6�7�"9�*:�8;�@<�H7�Q>�=���*����R�>�?�����R–W����R—����2�•�
                                    ! ��˜™��*��1�	���C+»Y*´�¦¾·¹�+�½š¸@¹C�+�³*´�¢œž¸‡¹Š�=§�*´�¦2´ N»�NY·¥:»�NY-¶¦¸¬¸¯·�R³¶�U¶�[¶�UW»�NY-¶µ¸¯·�R¶¶�U¶�[¶�UW-¶¸:6§�'2¸¬¶�UW`¾¢�¼¶�UW„¾¡ÿ×+�²*´�¢œž¸‡¹Š�+»Y·¹�+�»š¸@¹C�+Y¹;�+¶�[¹�+�·š¸3I²J½�úYk¸�üS¸¹7�+S¹;�„*´�¦¾¡þý±����<���Ž�#��C�D�!E�"F�,G�2E�7I�<K�FM�ON�oO�ŒR�’S�˜U�¦V�°W�¹S�Ä[�Å\�Ï]�Õ[�Ú`�èc�÷d�ÿe
                                    ! fghik&j)f.n6IBp�=���H���C�>�?����C¾W��9	�•�
                                      ��F�ð��O�ç¿À��’�¤Á���•�/Â�
                                    ! ��Ù��*��B�	����œ=§�*´�¦2´ N»�NYÄ·�R-¶µ¶�Uƶ�U¶ȶ�[:*+-¶Ë·”+-¶µ¹�*+-¶¸·Î+�¶ܸ3Ч¸�ü½�úYk¸�üSYÒ¸�üS¸¹7�+�³*´�¢§¸‡¹Š�„*´�¦¾¡ÿm±����<���Z���t�v�}�/~�8�B€�K�L‚�Oƒ�T„�W†�]‡�c‡�kˆ�r…�u�zŠ�{‹�„Œ�ŠŠ�t�›Ž�=���4����œ�>�?�����œ¾W���™�•�
                                      ���€��/�`Ó����³�)��������*��¿�
                                      ���
                                    ƒ*»�NY*´�¤¸¯·�RÔ¶�U¶�[µ�¨»�NY*´� ¸¯·�RÔ¶�U¶�[W»�eY»�NY*´ÖÇ�	ا�*´Ö¸¯·�R²Ú¶�U*´�¨.²�d¶�j¶�Uݶ�U¶�[·ßL*´�F™�"²�H»�NYà·�R*´�¨¶�Uº¶�U¶�[¶�_»âY·äM**´�¨./¶�jµ�¢ç¸�ü¶N*´�¬½�ܹé�ÀÒ¸í:,.*´�¢-¶ï*´�6™�,ó²õ¶ø»sYú·ü¶ÿW*´�4™�M,²õ¶ø»sY*´�ž¸·ü¶ÿW*´�6™�,
                                      ²
                                    ¶ø¶ÿW,œž¸‡¶ÿW*´�6™�U6§�E*´�¦2´ :»�NYÄ·�R¶µ¶�Uƶ�U¶ȶ�[:,
                                    --- 163,173 ----
                                      sN§�O,²u¶e™�
                                      vN§�>,²x¶e™�
                                      yN§�-,²{¶e™�
                                    ! |N§�»~Y»�NY€·�R,¶‚¶�[·…¿+�²-¸3†ܸ‡¹Š�±+,¶�í¹�+�¸*´�¢&ܸ�ü½�úYk¸�üS¸¹7�±����<���†�!���"�#�$�"%�)&�3'�:(�D)�K*�U+�\,�f-�m.�w/�~0�ˆ1�2�™3� 5�¹7�º8�Ä9�É7�Î:�Ï<�Ù=�Ú>�ã@�èA�ô?�÷=�üB�=���„�
                                    ���ý�>�?�����ýVW����ý�·����‘���&�‘���7�‘���H�‘���Y�‘���j�‘���{�‘���Œ�‘����‘���¹�‘���’“��*���º�����R+»Y,¾·¹�+�½ܸ@¹C�>§�,+Y¹;�+»Y·¹�*+,2·”+S¹;�„,¾¡ÿÔ±����<���&�	��F�G�H�"J�*K�8L�@M�HH�QO�=���*����R�>�?�����R–W����R—����2�•�
                                    ! ��˜™��*��1�	���C+»Y*´�¦¾·¹�+�½š¸@¹C�+�³*´�¢œž¸‡¹Š�=§�*´�¦2´ N»�NY·¥:»�NY-¶¦¸¬¸¯·�R³¶�U¶�[¶�UW»�NY-¶µ¸¯·�R¶¶�U¶�[¶�UW-¶¸:6§�'2¸¬¶�UW`¾¢�¼¶�UW„¾¡ÿ×+�²*´�¢œž¸‡¹Š�+»Y·¹�+�»š¸@¹C�+Y¹;�+¶�[¹�+�·š¸3I²J½�úYk¸�üS¸¹7�+S¹;�„*´�¦¾¡þý±����<���Ž�#��T�U�!V�"W�,X�2V�7Z�<\�F^�O_�o`�Œc�’d�˜f�¦g�°h�¹d�Äl�Åm�Ïn�Õl�Úq�èt�÷u�ÿv
                                    ! wxyz|&{)w.6ZB�=���H���C�>�?����C¾W��9	�•�
                                      ��F�ð��O�ç¿À��’�¤Á���•�/Â�
                                    ! ��Ù��*��B�	����œ=§�*´�¦2´ N»�NYÄ·�R-¶µ¶�Uƶ�U¶ȶ�[:*+-¶Ë·”+-¶µ¹�*+-¶¸·Î+�¶ܸ3Ч¸�ü½�úYk¸�üSYÒ¸�üS¸¹7�+�³*´�¢§¸‡¹Š�„*´�¦¾¡ÿm±����<���Z���…�‡�Ž�/�8�B‘�K’�L“�O”�T•�W—�]˜�c˜�k™�r–�u’�z›�{œ�„�Š›�…�›Ÿ�=���4����œ�>�?�����œ¾W���™�•�
                                      ���€��/�`Ó����³�)��������*��¿�
                                      ���
                                    ƒ*»�NY*´�¤¸¯·�RÔ¶�U¶�[µ�¨»�NY*´� ¸¯·�RÔ¶�U¶�[W»�eY»�NY*´ÖÇ�	ا�*´Ö¸¯·�R²Ú¶�U*´�¨.²�d¶�j¶�Uݶ�U¶�[·ßL*´�F™�"²�H»�NYà·�R*´�¨¶�Uº¶�U¶�[¶�_»âY·äM**´�¨./¶�jµ�¢ç¸�ü¶N*´�¬½�ܹé�ÀÒ¸í:,.*´�¢-¶ï*´�6™�,ó²õ¶ø»sYú·ü¶ÿW*´�4™�M,²õ¶ø»sY*´�ž¸·ü¶ÿW*´�6™�,
                                      ²
                                    ¶ø¶ÿW,œž¸‡¶ÿW*´�6™�U6§�E*´�¦2´ :»�NYÄ·�R¶µ¶�Uƶ�U¶ȶ�[:,
                                    *************** SourceFile�ClassRmicCompiler.java�In
                                    *** 191,244 ****
                                      ¸y¸�ü½�ú¸¹7�6
                                      ¶]š�
                                      ¶eš�	6§�6™��À
                                    ! ¸@¹C�
                                    /¶?¹/��´B¸3D¸‡¹Š�
                                    f¶R¹/��¹¸3|²J½�úYa¸�üS¸¹7�¹;�»&Y·(:¹)�:
                                    o¶H¹/��»~¸@¹C�Y¹;�€¹�
                                    o¶R¹/��·~¸3I²J½�úYk¸�üSY†¸�üS¸¹7��¿¹;�»&·(¸3¹N�™�ó¸3¹N�»&Y·(:¹)��¿¹;�66§�2†¦�6„¾¡ÿë6§�2¸3¹N�„¾¡ÿã™�º‚¸3¹N�»&Y·(:¹)�„::
                                    o¶H¹/��»†¸@¹C�Y¹;�¹�
                                    o¶R¹/��·†¸3I²J½�úYk¸�üSY†¸�üS¸¹7��¿¹;�†¸3¹N�¹R�„*´�¦¾¡öÓ,¶ˆ,¶‹:*´š�9+¶‘™�+¶”W+¶—Æ�+¶—¶›W»žY+· :¶£¶§¶ª±����<��BÐ��“�”�3•�R–�X—�g˜�p•�tš�{›�š�£ž�² �»Ÿ�¼£�Ï¢�Ѥ�Ò¥�Ú¦�Þ¤�á¨�èª�é«�î¬�ÿª¯
                                    ! ±²
                                    ³´%±)¶0¸1¹6º>¸B½C¾E¿P½TÃ[ÅaÇmÈÉʔ˜ɠŭϮгѿÏÄÓËÕÑÖØ×âÚéÝòàûáäêëìí2î<ì?ïAðDñIòLôRõXõ`ögójïoùwúyûƒü‰úŽÿ”ž§®¶¸	Â
                                    ! ÈÍÚêóýÿ",.4:?#H%L(S+T,X-b.d+i/s0u1|2†0‹3•5ž9Ÿ:£<³;¶=¸9½>Ç?Ñ@ÓAÚCêBí@òDüEHJKL%M&N<MAPBQCRHSUTVU^PcWlZt[z\Ž[™^¢_«a²c»dÂgÄhÎiÔgÙjånöoøpq
                                    ! ot wBxDyMzSxX}^~i‚zƒ‰…’†£ˆ©Š²‹¼ŒÕŽæö’û”
                                    ! •–(—*˜-™2š5œ8G›J—R g¢pˆ{¥Œ©¤ª¦«©¬¯­²¯·°½°Å±Î²×³Û®Þªãµî·õ¹¸º
                                    ! »º!¼)¿+À.Á6Â;ÄDÃG¿LÇXÊbÍiÎrÑyÕŠÖŒ×ؕ٘ڞ֣ݴà¶áÀâÆàËåÛèÝéçêíèòìôí÷îýï�ñòòóô$õ(ð+ì0ø9ùBúSü\ýe�gjps}€�…‹
                                    ! ”
                                    ¯ÄÆÈËÑÙÜèëðû		
                                     	!	""	+%	<&	L'	U(	_)	p*	r+	u,	{-	~/	0	‡0	1	•.	˜*	2	§4	°5	²6	¸7	½5	Â:	Ó;	Õ<	Þ=	ç;	ì>	ý?	ÿ@
                                    ! A
                                    ! B
                                    ! D
                                    ! E
                                    ! C
                                    ! ?
                                    ! #H
                                    ! &J
                                    ! /K
                                    ! 8M
                                    ! ?O
                                    ! JR
                                    ! [S
                                    ! ]T
                                    ! `U
                                    ! fV
                                    ! iX
                                    ! sW
                                    ! vS
                                    ! {[
                                    ! ŠZ
                                    ! Œ\
                                    ! Ž]
                                    ! ‘^
                                    ! —_
                                    ! œa
                                    ! ¥`
                                    ! ¨\
                                    ! ­c
                                    ! °e
                                    ! ¸g
                                    ! Âh
                                    ! Èj
                                    ! Ëm
                                    ! Ðn
                                    ! ßt
                                    ! ðu
                                    ! òv
                                    ! õw
                                    ! ûx
                                    ! þyu	z{|}%~(€+8;{@„I‡Rˆ[‰lŒ|…Ž ¢‘¥’«“®•±–·–¿—Å”È͘ךÝßžåŸêï¡ô¤ö¥ü¦¤ª«­"¯%°+²5³8°C¶I¸K¹QºY¸^¶i½nÀpÁvÂ|ÀÄŠÅ“Æ˜É©Ê¹ËÂÌËÍÜÎÞÏáÐçÑêÓíÔóÔûÕ
                                    Ò
                                    Î
                                    	Ö
                                    Ø
                                    Ù
                                    Ú
                                     Ø
                                    %Ý
                                    .H
                                    ;à
                                    ?á
                                    Eâ
                                    Lä
                                    Så
                                    Xæ
                                    _ç
                                    gè
                                    qé
                                    xê
                                    }ë
                                    ‚í�=��â�0��
                                    ƒ�>�?���t
                                    ­®��£௰��¼DZ���Ñ²²��^�O�•�
                                      �m�3��³��Ä¿¾W�òM´Y�ûDZY�i�5–W�½	ƵW�	3�•�
                                      �	�	Á��	%		¶��
                                      Aí·��cË–W�l¸¹�
                                    w�"�
                                    --- 191,244 ----
                                      ¸y¸�ü½�ú¸¹7�6
                                      ¶]š�
                                      ¶eš�	6§�6™��À
                                    ! ¸@¹C�
                                    /¶?¹/��´B¸3D¸‡¹Š�
                                    f¶R¹/��¹¸3|²J½�úYa¸�üS¸¹7�¹;�»&Y·(:¹)�:
                                    o¶H¹/��»~¸@¹C�Y¹;�€¹�
                                    o¶R¹/��·~¸3I²J½�úYk¸�üSY†¸�üS¸¹7��¿¹;�»&·(¸3¹N�™�ó¸3¹N�»&Y·(:¹)��¿¹;�66§�2†¦�6„¾¡ÿë6§�2¸3¹N�„¾¡ÿã™�º‚¸3¹N�»&Y·(:¹)�„::
                                    o¶H¹/��»†¸@¹C�Y¹;�¹�
                                    o¶R¹/��·†¸3I²J½�úYk¸�üSY†¸�üS¸¹7��¿¹;�†¸3¹N�¹R�„*´�¦¾¡öÓ,¶ˆ,¶‹:*´š�9+¶‘™�+¶”W+¶—Æ�+¶—¶›W»žY+· :¶£¶§¶ª±����<��BÐ��¤�¥�3¦�R§�X¨�g©�p¦�t«�{¬�š®�£¯�²±�»°�¼´�ϳ�ѵ�Ò¶�Ú·�Þµ�á¹�è»�é¼�î½�ÿ»À
                                    ! ÂÃ
                                    ÄÅ%Â)Ç0É1Ê6Ë>ÉBÎCÏEÐPÎTÔ[ÖaØmÙÚ۔ܜڠ֭à®á³â¿àÄäËæÑçØèâëéîòñûòõûüýþ2ÿ<ý?�ADILRX`gj�o
                                    ! wyƒ
                                    ‰Ž”ž§®¶¸ÂÈÍÚ!ê"ó#ý$ÿ%&')*($"+,../40:.?4H6L9S<T=X>b?d<i@sAuB|C†A‹D•FžJŸK£M³L¶N¸J½OÇPÑQÓRÚTêSíQòUüVY[\]%^&_<^AaBbCcHdUeVf^achlktlzmŽl™o¢p«r²t»uÂxÄyÎzÔxÙ{åö€ø‚
                                    ! €… ˆB‰DŠM‹S‰XŽ^i“z”‰–’—£™©›²œ¼ÕŸæ ö£û¥
                                    ! ¦§(¨*©-ª2«5­8®G¬J¨R±g³p™{¶Œº¤»¦¼©½¯¾²À·Á½ÁÅÂÎÃ×ÄÛ¿Þ»ãÆîÈõÊÉË
                                    ! ÌË!Í)Ð+Ñ.Ò6Ó;ÕDÔGÐLØXÛbÞißrâyæŠçŒèé•ê˜ëžç£î´ñ¶òÀóÆñËöÛùÝúçûíùòýôþ÷ÿý��$(+ý0	9
                                    ! BS
                                    \egjps}€…‹”¯!Ä Æ$È%Ë&Ñ'Ù)Ü*è(ë$ðû.	0	
                                    1	2	"3	+6	<7	L8	U9	_:	p;	r<	u=	{>	~@	A	‡A	B	•?	˜;	C	§E	°F	²G	¸H	½F	ÂK	ÓL	ÕM	ÞN	çL	ìO	ýP	ÿQ
                                    ! R
                                    ! S
                                    ! U
                                    ! V
                                    ! T
                                    ! P
                                    ! #Y
                                    ! &[
                                    ! /\
                                    ! 8^
                                    ! ?`
                                    ! Jc
                                    ! [d
                                    ! ]e
                                    ! `f
                                    ! fg
                                    ! ii
                                    ! sh
                                    ! vd
                                    ! {l
                                    ! Šk
                                    ! Œm
                                    ! Žn
                                    ! ‘o
                                    ! —p
                                    ! œr
                                    ! ¥q
                                    ! ¨m
                                    ! ­t
                                    ! °v
                                    ! ¸x
                                    ! Ây
                                    ! È{
                                    ! Ë~
                                    ! Ð
                                    ! ß…
                                    ! ð†
                                    ! ò‡
                                    ! õˆ
                                    ! û‰
                                    ! þŠ†	‹ŒŽ%(‘+’8;Œ@•I˜R™[šl|ž…Ÿ  ¡¢¢¥£«¤®¦±§·§¿¨Å¥È¡Í©×«Ý®ß¯å°ê®ï²ôµö¶ü·µ»¼¾"À%Á+Ã5Ä8ÁCÇIÉKÊQËYÉ^ÇiÎnÑpÒvÓ|ÑÕŠÖ“×˜Ú©Û¹ÜÂÝËÞÜßÞàááçâêäíåóåûæ
                                    ã
                                    ß
                                    	ç
                                    é
                                    ê
                                    ë
                                     é
                                    %î
                                    .Y
                                    ;ñ
                                    ?ò
                                    Eó
                                    Lõ
                                    Sö
                                    X÷
                                    _ø
                                    gù
                                    qú
                                    xû
                                    }ü
                                    ‚þ�=��â�0��
                                    ƒ�>�?���t
                                    ­®��£௰��¼DZ���Ñ²²��^�O�•�
                                      �m�3��³��Ä¿¾W�òM´Y�ûDZY�i�5–W�½	ƵW�	3�•�
                                      �	�	Á��	%		¶��
                                      Aí·��cË–W�l¸¹�
                                    w�"�
                                    *************** vS
                                    *** 263,271 ****
                                      *´�¦¾¡ÿx»&Y·(:
                                      �§
                                      ¹;�¹)�ã¶?¹/��²*´�¢²õ¶ø¹Š��”¹;��™	¹;�
                                    ! ¹)��»ç¸@¹C�Y¹;�é¹��·ç¸3I²J½�úYk¸�üS¸¹7��¿¹;�	¹)�ݶ?¹/��À*´�ž¸@¹C�:ݶ?¹/�»&Y·(:*´�¦¾½&:6
                                    §�
                                    »&Y·(S„
                                    
                                    ¾¡ÿìá¶?¹/�*´�¦¾d¹ë�6
                                    §�(
                                    2¹)�*´�¦
                                    2´ :*·ï„
                                    
                                    *´�¦¾¡ÿÔ¹)��»~¸@¹C�Y¹;�ó¹��·~¸3I²J½�úYk¸�üS¸¹7��¿¹;�¹R�,¶ˆ,¶‹:
                                    *´š�9+¶‘™�+¶”W+¶—Æ�+¶—¶›W»žY+· :
                                    ¶£¶§¶ª±����<��Š�¢��ñ�ò�3ó�Rô�Xõ�gö�pó�t÷�{ø�šú�£û�²ü�³ý�¸þ�Âÿ�Òü�Õ�Ö�Û�â�ð�ô�õ�ú
                                    ! 
                                    ! !*237CHRT_inx"‚#†%$“&•"š'œ(¦)¬'±*³+»,Ã-Ç,Ê*Ï.ß/é0ò3ó4ô5÷7ú8�89:6:;+30=9>A?I@QAYBaHrI{J„KM–P§Q¿RÈSÒTÞWîXÿYZM!^*_6a?dPeRfYgbeghqi}k†lˆm‘l–nŸo©p«q®r´s·uÆtÉpÎvØyá{ò|}€'-‚9D…U†W‡c†hŠnŒz†ŽŠ‘¦’¶“¿”ɕ˖ΗԘךæ™é•î›øŸ ¡£¤¥%¦-§7¨>©CªH¬�=���Ê���I�>�?���tÕ­®��£¦õ°�-¾W�HöW�š¯÷W�0ÜW�9¸¹�{ÎøY�„ÅùY�	“�Ž�•�
                                      �
                                      È�LúY�*ûY�
                                      ,üY�'"ýþ�*��•�
                                    --- 263,269 ----
                                      *´�¦¾¡ÿx»&Y·(:
                                      �§
                                      ¹;�¹)�ã¶?¹/��²*´�¢²õ¶ø¹Š��”¹;��™	¹;�
                                    ! ¹)��»ç¸@¹C�Y¹;�é¹��·ç¸3I²J½�úYk¸�üS¸¹7��¿¹;�	¹)�ݶ?¹/��À*´�ž¸@¹C�:ݶ?¹/�»&Y·(:*´�¦¾½&:6
                                    §�
                                    »&Y·(S„
                                    
                                    ¾¡ÿìá¶?¹/�*´�¦¾d¹ë�6
                                    §�(
                                    2¹)�*´�¦
                                    2´ :*·ï„
                                    
                                    *´�¦¾¡ÿÔ¹)��»~¸@¹C�Y¹;�ó¹��·~¸3I²J½�úYk¸�üS¸¹7��¿¹;�¹R�,¶ˆ,¶‹:
                                    *´š�9+¶‘™�+¶”W+¶—Æ�+¶—¶›W»žY+· :
                                    ¶£¶§¶ª±����<��Š�¢����3�R�X�g�p�t�{	�š�£�²
                                    �³�¸�Â�Ò
                                    �Õ�Ö�Û�â�ð�ô�õ�ú! *"2%3&7'C%H(R)T*_+i)n,x-3‚4†65“7•3š8œ9¦:¬8±;³<»=Ã>Ç=Ê;Ï?ß@éAòDóEôF÷HúI�IJKGKL+D0N9OAPIQQRYSaYrZ{[„\^–a§b¿cÈdÒeÞhîiÿjk^!o*p6r?uPvRwYxbvgyqz}|†}ˆ~‘}–Ÿ€©«‚®ƒ´„·†Æ…É·؊áŒòŽ‘'’-“9’D–U—W˜c—h›nzž†Ÿ›¢¦£¶¤¿¥É¦Ë§Î¨Ô©×«æªé¦î¬ø®°±²´µ¶%·-¸7¹>ºC»H½�=���Ê���I�>�?���tÕ­®��£¦õ°�-¾W�HöW�š¯÷W�0ÜW�9¸¹�{ÎøY�„ÅùY�	“�Ž�•�
                                      �
                                      È�LúY�*ûY�
                                      ,üY�'"ýþ�*��•�
                                    *************** vS
                                    *** 286,299 ****
                                      ¶]™�
                                      §�:+�¹j¸3
                                      ¸l²J½�úY¸�üS¸¹7�+�±¹;�»&Y·(:+¹)�+:-o¶H¹/�+�»q¸@¹C�+Y¹;�+¹�+-o¶R¹/�+�·q¸3I²J½�úYk¸�üSY†¸�üS¸¹7�+�¿¹;�+¸3¹N�±����<��
                                    ! �‚��°�²�³�µ�¸�)¹�*º�-»�6½�@¼�C¹�H¾�WÀ�]Ã�lÅ�ƒÈ�„É�‡Ê�Ë�•Í�žÌ�¡È�¦Ï�¾Ñ�ÁÒ�ÒÖ�Ó×�íÖ�òÀ�ýÚÜÝß"à-ã6ä>åMæ\çdèmé|ê}ë€ì†í‰ïšð î£ê¨ñ·òÂóÑôÚöÛ÷æöëøðúñû÷üýú�
                                    ! (),25?DT	\d
                                    sy‘œ«¯´ºÅÆ×Üåíü !"
                                    #%& $# ((3+E,V-W.Z/`0e2t1w-|5…8Ž9–:¥;´<¼=Å>Ô?Õ@ØAÞBáDòEøCû?�F	G
                                    ! HIGJ�=���¬����>�?����VW������¸¹��Á���Y��Ã���Z�£�•�
                                      ��ƒ�oÆ��
                                    Y�Y�6åZY�	v�&�•�
                                      �
                                      ºa¶��
                                      å6Y�V�&��Ž�Y��
                                    ! B5��*���C�����*¶ ™�*¸‡°*¸3°����<������N�O�Q�=��������·����
                                      {5��*��s�����£*²{¶e™�»~Y#·…¿*²`¶e™�
                                      %L§�~*²k¶e™�
                                      'L§�m*²h¶e™�
                                    --- 284,297 ----
                                      ¶]™�
                                      §�:+�¹j¸3
                                      ¸l²J½�úY¸�üS¸¹7�+�±¹;�»&Y·(:+¹)�+:-o¶H¹/�+�»q¸@¹C�+Y¹;�+¹�+-o¶R¹/�+�·q¸3I²J½�úYk¸�üSY†¸�üS¸¹7�+�¿¹;�+¸3¹N�±����<��
                                    ! �‚��Á�Ã�Ä�Æ�É�)Ê�*Ë�-Ì�6Î�@Í�CÊ�HÏ�WÑ�]Ô�lÖ�ƒÙ�„Ú�‡Û�Ü�•Þ�žÝ�¡Ù�¦à�¾â�Áã�Òç�Óè�íç�òÑ�ýëíîð"ñ-ô6õ>öM÷\ødùmú|û}ü€ý†þ‰�š ÿ£û¨·ÂÑÚÛæë	ðñ÷
                                    ý
                                    ! (),25?DT\dsy ‘œ!"«#¯!´%º&Å(Æ)×(Ü-å.í/ü0123
                                    467 5#1(93<E=V>W?Z@`AeCtBw>|F…IŽJ–K¥L´M¼NÅOÔPÕQØRÞSáUòVøTûP�W	X
                                    ! YZX[�=���¬����>�?����VW������¸¹��Á���Y��Ã���Z�£�•�
                                      ��ƒ�oÆ��
                                    Y�Y�6åZY�	v�&�•�
                                      �
                                      ºa¶��
                                      å6Y�V�&��Ž�Y��
                                    ! B5��*���C�����*¶ ™�*¸‡°*¸3°����<������_�`�b�=��������·����
                                      {5��*��s�����£*²{¶e™�»~Y#·…¿*²`¶e™�
                                      %L§�~*²k¶e™�
                                      'L§�m*²h¶e™�
                                    *************** vS
                                    *** 302,309 ****
                                      -L§�:*²r¶e™�
                                      /L§�)*²u¶e™�
                                      1L§�*²x¶e™�
                                    ! 3L§�5L+°����<���R���V�
                                    ! W�Z�[�&\�0]�7^�A_�H`�Ra�Yb�cc�jd�te�{f�…g�Œh�–i�k�¡m�=���f�
                                      ���£�·����#�7���4�7���E�7���V�7���g�7���x�7���‰�7���š�7���¡�7���
                                      n5��*��s�����£*²{¶e™�»~Y#·…¿*²`¶e™�
                                      8L§�~*²k¶e™�
                                    --- 300,307 ----
                                      -L§�:*²r¶e™�
                                      /L§�)*²u¶e™�
                                      1L§�*²x¶e™�
                                    ! 3L§�5L+°����<���R���g�
                                    ! h�k�l�&m�0n�7o�Ap�Hq�Rr�Ys�ct�ju�tv�{w�…x�Œy�–z�|�¡~�=���f�
                                      ���£�·����#�7���4�7���E�7���V�7���g�7���x�7���‰�7���š�7���¡�7���
                                      n5��*��s�����£*²{¶e™�»~Y#·…¿*²`¶e™�
                                      8L§�~*²k¶e™�
                                    *************** vS
                                    *** 313,320 ****
                                      @L§�:*²r¶e™�
                                      BL§�)*²u¶e™�
                                      DL§�*²x¶e™�
                                    ! FL§�HL+°����<���R���r�
                                    ! s�v�w�&x�0y�7z�A{�H|�R}�Y~�c�j€�t�{‚�…ƒ�Œ„�–…�‡�¡‰�=���f�
                                      ���£�·����#�7���4�7���E�7���V�7���g�7���x�7���‰�7���š�7���¡�7���
                                      [7��*��y�����Ÿ*²`¶e™�
                                      �¬<§�*²k¶e™�
                                    --- 311,318 ----
                                      @L§�:*²r¶e™�
                                      BL§�)*²u¶e™�
                                      DL§�*²x¶e™�
                                    ! FL§�HL+°����<���R���ƒ�
                                    ! „�‡�ˆ�&‰�0Š�7‹�AŒ�H�RŽ�Y�c�j‘�t’�{“�…”�Œ•�––�˜�¡š�=���f�
                                      ���£�·����#�7���4�7���E�7���V�7���g�7���x�7���‰�7���š�7���¡�7���
                                      [7��*��y�����Ÿ*²`¶e™�
                                      �¬<§�*²k¶e™�
                                    *************** vS
                                    *** 325,332 ****
                                      �­<§�:*²u¶e™�
                                      �®<§�)*²x¶e™�
                                      �¯<§�*²{¶e™�
                                    ! �±<§��°<¬����<���R����
                                    ! �‘�’�"“�,”�3•�=–�D—�N˜�U™�_š�f›�pœ�w�ž�ˆŸ�’ �™¢�¤�=���p����Ÿ�·�����Å�
                                      ����
                                      ��0��
                                      ��A��
                                    --- 323,330 ----
                                      �­<§�:*²u¶e™�
                                      �®<§�)*²x¶e™�
                                      �¯<§�*²{¶e™�
                                    ! �±<§��°<¬����<���R��� �
                                    ! ¡�¢�£�"¤�,¥�3¦�=§�D¨�N©�Uª�_«�f¬�p­�w®�¯�ˆ°�’±�™³�µ�=���p����Ÿ�·�����Å�
                                      ����
                                      ��0��
                                      ��A��
                                    *************** vS
                                    *** 337,344 ****
                                      ��–�Å�
                                      ����
                                      ��
                                    ! M7��*��j�����š*²{¶e™�»~YJ·…¿*²`¶e™�	<§�v*²k¶e™�	<§�f*²h¶e™�	<§�V*²n¶e™�	<§�F*²q¶e™�	<§�6*²r¶e™�	<§�&*²u¶e™�	<§�*²x¶e™�	<§�<¬����<���R���©�
                                    ! ª�­�®�%¯�/°�5±�?²�E³�O´�Uµ�_¶�e·�o¸�u¹�º�…»�¼�•¾�˜À�=���f�
                                      ���š�·����"�L�
                                      ��2�L�
                                      ��B�L�
                                    --- 335,342 ----
                                      ��–�Å�
                                      ����
                                      ��
                                    ! M7��*��j�����š*²{¶e™�»~YJ·…¿*²`¶e™�	<§�v*²k¶e™�	<§�f*²h¶e™�	<§�V*²n¶e™�	<§�F*²q¶e™�	<§�6*²r¶e™�	<§�&*²u¶e™�	<§�*²x¶e™�	<§�<¬����<���R���º�
                                    ! »�¾�¿�%À�/Á�5Â�?Ã�EÄ�OÅ�UÆ�_Ç�eÈ�oÉ�uÊ�Ë�…Ì�Í�•Ï�˜Ñ�=���f�
                                      ���š�·����"�L�
                                      ��2�L�
                                      ��B�L�
                                    *************** vS
                                    *** 349,356 ****
                                      ��’�L�
                                      ��˜�L�
                                      ��
                                    ! 7��*��j�����š*²{¶e™�»~YJ·…¿*²`¶e™�	6<§�v*²k¶e™�	6<§�f*²h¶e™�	6<§�V*²n¶e™�	6<§�F*²q¶e™�	6<§�6*²r¶e™�	7<§�&*²u¶e™�	8<§�*²x¶e™�	9<§�:<¬����<���R���Å�
                                    ! Æ�É�Ê�%Ë�/Ì�5Í�?Î�EÏ�OÐ�UÑ�_Ò�eÓ�oÔ�uÕ�Ö�…×�Ø�•Ú�˜Ü�=���f�
                                      ���š�·����"�M�
                                      ��2�M�
                                      ��B�M�
                                    --- 347,354 ----
                                      ��’�L�
                                      ��˜�L�
                                      ��
                                    ! 7��*��j�����š*²{¶e™�»~YJ·…¿*²`¶e™�	6<§�v*²k¶e™�	6<§�f*²h¶e™�	6<§�V*²n¶e™�	6<§�F*²q¶e™�	6<§�6*²r¶e™�	7<§�&*²u¶e™�	8<§�*²x¶e™�	9<§�:<¬����<���R���Ö�
                                    ! ×�Ú�Û�%Ü�/Ý�5Þ�?ß�Eà�Oá�Uâ�_ã�eä�oå�uæ�ç�…è�é�•ë�˜í�=���f�
                                      ���š�·����"�M�
                                      ��2�M�
                                      ��B�M�
                                    *************** vS
                                    *** 369,375 ****
                                      XL§�O*²r¶e™�
                                      ZL§�>*²u¶e™�
                                      \L§�-*²x¶e™�
                                    ! ^L§�»`Y»�NYb·�R*¶‚¶�[·d¿+°����<���R���á�â�å�æ�#ç�-è�4é�>ê�Eë�Oì�Ví�`î�gï�qð�xñ�‚ò�‰ó�“ô�šö�³ø�=���f�
                                      ���µe���� �7���1�7���B�7���S�7���d�7���u�7���†�7���—�7���³�7���	PQ��*��…�����µ*¶]š�»~Yf·…¿*²`¶e™�
                                      aL§�“*²k¶e™�
                                      lL§�‚*²h¶e™�
                                    --- 367,373 ----
                                      XL§�O*²r¶e™�
                                      ZL§�>*²u¶e™�
                                      \L§�-*²x¶e™�
                                    ! ^L§�»`Y»�NYb·�R*¶‚¶�[·d¿+°����<���R���ò�ó�ö�÷�#ø�-ù�4ú�>û�Eü�Oý�Vþ�`ÿ�g��q�x�‚�‰�“�š�³	�=���f�
                                      ���µe���� �7���1�7���B�7���S�7���d�7���u�7���†�7���—�7���³�7���	PQ��*��…�����µ*¶]š�»~Yf·…¿*²`¶e™�
                                      aL§�“*²k¶e™�
                                      lL§�‚*²h¶e™�
                                    *************** vS
                                    *** 378,396 ****
                                      L§�O*²r¶e™�
                                      sL§�>*²u¶e™�
                                      vL§�-*²x¶e™�
                                    ! yL§�»`Y»�NY€·�R*¶‚¶�[·d¿+°����<���R���ý�þ���#�-�4�>�E�O�V	�`
                                    ! �g�q�x
                                    �‚�‰�“�š�³�=���f�
                                      ���µ�·���� �P���1�P���B�P���S�P���d�P���u�P���†�P���—�P���³�P���
                                    ! �{7��*���J�����*²r¶eš�
                                    *²x¶e™�¬¬����<���������=��������·����*+��*���®�����<=§�2`>§�"+2+2¶�é™�+2:++2S+S„+¾¡ÿÞ„+¾¡ÿÎ+°����<���&�	��#�%�'�)�*�#+�(%�1#�:/�=���4����<�>�?�����<·����8�•�
                                      ��	�(�
                                    ! ���h���ij��*��Ñ�����•*µ�2*µ�4*µ�6*	µ�F*µ*µk»mY²o·r:¶u½x:6§�=¶z:»�eY·ß:¶}S§�W*»�NY·�R¶�U¶�[·ƒ±„¾¡ÿÁ*»…Y·‡µ�Ó*µÖ±��Q�[�^Š��<���R���7�8�
                                    ! 9�:�;�>�!@�-?�/A�9B�?D�FE�QH�^J�_L�uM�vB�P�ŽR�”S�=���Ê����•�>�?�����•�
                                    �����•������•������•Œ�����•�����•Ž�����•�����•������•���	���•��
                                      ���•������•‘�����•’��
                                    ���•“���/�f”•��9�\–—��<�E�•�
                                      ��F�0˜���Q�%™®���É�)�������’�*��e����±»�-Y·�/L*´�žM§�æ,¶šN6§�Ïç-2¶�é™�À-2:*´�F™�#²�H»�NY·�R¶�í¶�Uº¶�U¶�[¶�_¶Ÿ:6§�r2:¶£:	6
                                      6§�	2¦¶�é™�6
                                      „	¾¡ÿç
                                      š�.»�’Y»�NY¨·�R¶‚ª¶�U¶‚¬¶�U¶�[·�ò¿+¹�s�W„¾¡ÿŒ*´�¬¹�s�W„-¾¡ÿ0,¶®M,Çÿ+¹�y�¼M>§�
                                    ! ,T„,¾¡ÿö»�-Y·�/N6§�k,3™�§�^+¹�Ï�À§:»¡Y·±:`6§�)+¹�Ï�À§:¶´™�¶¸,T„+¹�y�¡ÿÒ-¹�s�W„+¹�y�¡ÿ*--¹�y�½¡¹é�À»µ�¦*´�¦¸¼±����<���Ò�4��X�Y�[�\�^�'`�-a�4b�7c�Qb�Tf�[g�ai�hj�ol�rm�xo�†p�‰m�”s�™u�v�·w�½v�Àu�Äz�Íg�Ø}�ä\�îY�÷ƒ�„…	„†‡ ‰*Š7‹BŒKŽXb‘i’nŒ|•…‡“™”š¦™©›°œ�=���Ê���±�>�?���©Â���
                                    �êÃ����ÙÄ����Ö�•�
                                      ��-�·Å���[�‰ÆÇ��^�zÂ�
                                      ��h�e��o�^��	�r�[��
                                      �u��
                                    --- 376,393 ----
                                      L§�O*²r¶e™�
                                      sL§�>*²u¶e™�
                                      vL§�-*²x¶e™�
                                    ! yL§�»`Y»�NY€·�R*¶‚¶�[·d¿+°����<���R�������#�-�4�>�E�O�V�`�g�q�x�‚�‰ �“!�š#�³%�=���f�
                                      ���µ�·���� �P���1�P���B�P���S�P���d�P���u�P���†�P���—�P���³�P���
                                    ! �{7��*���J�����*²r¶eš�
                                    *²x¶e™�¬¬����<������)�*�,�=��������·����*+��*���®�����<=§�2`>§�"+2+2¶�é™�+2:++2S+S„+¾¡ÿÞ„+¾¡ÿÎ+°����<���&�	��4�6�8�:�;�#<�(6�14�:@�=���4����<�>�?�����<·����8�•�
                                      ��	�(�
                                    ! ���h���ij��*��Ñ�����•*µ�2*µ�4*µ�6*	µ�F*µ*µk»mY²o·r:¶u½x:6§�=¶z:»�eY·ß:¶}S§�W*»�NY·�R¶�U¶�[·ƒ±„¾¡ÿÁ*»…Y·‡µ�Ó*µÖ±��Q�[�^Š��<���R���H�I�
                                    ! J�K�L�O�!Q�-P�/R�9S�?U�FV�QY�^[�_]�u^�vS�a�Žc�”d�=���Ê����•�>�?�����•�
                                    �����•������•������•Œ�����•�����•Ž�����•�����•������•���	���•��
                                      ���•������•‘�����•’��
                                    ���•“���/�f”•��9�\–—��<�E�•�
                                      ��F�0˜���Q�%™®���É�)�������’�*��e����±»�-Y·�/L*´�žM§�æ,¶šN6§�Ïç-2¶�é™�À-2:*´�F™�#²�H»�NY·�R¶�í¶�Uº¶�U¶�[¶�_¶Ÿ:6§�r2:¶£:	6
                                      6§�	2¦¶�é™�6
                                      „	¾¡ÿç
                                      š�.»�’Y»�NY¨·�R¶‚ª¶�U¶‚¬¶�U¶�[·�ò¿+¹�s�W„¾¡ÿŒ*´�¬¹�s�W„-¾¡ÿ0,¶®M,Çÿ+¹�y�¼M>§�
                                    ! ,T„,¾¡ÿö»�-Y·�/N6§�k,3™�§�^+¹�Ï�À§:»¡Y·±:`6§�)+¹�Ï�À§:¶´™�¶¸,T„+¹�y�¡ÿÒ-¹�s�W„+¹�y�¡ÿ*--¹�y�½¡¹é�À»µ�¦*´�¦¸¼±����<���Ò�4��i�j�l�m�o�'q�-r�4s�7t�Qs�Tw�[x�az�h{�o}�r~�x€�†�‰~�”„�™†�‡�·ˆ�½‡�À†�Ä‹�Íx�ØŽ�äm�îj�÷”�•–	•—˜ š*›7œBKŸX b¢i£n|¦…˜“ª”«¦ª©¬°­�=���Ê���±�>�?���©Â���
                                    �êÃ����ÙÄ����Ö�•�
                                      ��-�·Å���[�‰ÆÇ��^�zÂ�
                                      ��h�e��o�^��	�r�[��
                                      �u��
                                    *************** vS
                                    *** 398,408 ****
                                      ��—Í���v�•�
                                      �7�N�B�CE�H�4�
                                      �X�Ð���Š�‹��*���W�����*+¶Ñ·ƒ*´�F™�
                                    ! +²Ó¶Ö±����<������£�¤�¥�¦�=��������>�?�����Ú�œ���Š�T��*���^�����"*Y´�:`µ�:²Ó»�NYÛ·�R+¶�U¶�[¶�_±����<������­�
                                    ! ®�!¯�=�������"�>�?�����"Ú���
                                      ®5��*���ž�����<»�NY·¥L=*¶ š�#+*¶�í¶�UW§�+ݶ�UW„ÿÿô+¶�[°*¶ßK„§ÿÑ����<���*�
                                    ! ��³�´�
                                    ! ¶�¸�¹�º�%¹�,»�1½�6´�=��� ����<�·�����4âÀ��
                                      �2ã�
                                      ��ä���åæ���
                                      �¡�ç�
                                    --- 395,405 ----
                                      ��—Í���v�•�
                                      �7�N�B�CE�H�4�
                                      �X�Ð���Š�‹��*���W�����*+¶Ñ·ƒ*´�F™�
                                    ! +²Ó¶Ö±����<������´�µ�¶�·�=��������>�?�����Ú�œ���Š�T��*���^�����"*Y´�:`µ�:²Ó»�NYÛ·�R+¶�U¶�[¶�_±����<������¾�
                                    ! ¿�!À�=�������"�>�?�����"Ú���
                                      ®5��*���ž�����<»�NY·¥L=*¶ š�#+*¶�í¶�UW§�+ݶ�UW„ÿÿô+¶�[°*¶ßK„§ÿÑ����<���*�
                                    ! ����
                                    ! Ç�É�Ê�Ë�%Ê�,Ì�1Î�6Å�=��� ����<�·�����4âÀ��
                                      �2ã�
                                      ��ä���åæ���
                                      �¡�ç�
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class	Mon Dec 18 21:51:42 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 5,10 ****
                                      ��
                                      SourceFile�CompilationError.java�!�����������������
                                      ������I�����*+,·�
                                    ±�������
                                    ! ����*��+���� ����������������������
                                      ������>�����*+·�±�������
                                    ! ����2��3������������������������
                                    \ No newline at end of file
                                    --- 5,10 ----
                                      ��
                                      SourceFile�CompilationError.java�!�����������������
                                      ������I�����*+,·�
                                    ±�������
                                    ! ����;��<���� ����������������������
                                      ������>�����*+·�±�������
                                    ! ����C��D������������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class	Tue Oct 12 15:55:12 2010
                                    *************** replaceAll�5(Ljava/lang/String;Ljava/ut
                                    *** 24,32 ****
                                      �/�„�u�…�(Ljava/lang/String;)I�n�‡�ˆ�‰�get�&(Ljava/lang/Object;)Ljava/lang/Object;
                                      �/�‹�a�Œ�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;�~�Ž���hasNext�()Z�’���template�	variables�Ljava/util/Map;�iter�Ljava/util/Iterator;�vars�Ljava/util/Collection;�variable�
                                      SourceFile�Generator.java�!���������������/�����*·�±����
                                    ! �������&����������
                                    ���������‰��	���¯»�Y·�+¶�¶�M*¶�,¶�#N-Ç�(»�)Y»�Y*¶�¶�+¸�.·�4¶�,¶�¶�·�6¿»�7Y»�9Y-·�;·�>:»�Y·�A:§�¶�W
                                      ¶�BW¶�EY:Çÿè¶�H§�):»�)Y»�YK·�+¶�¶�·�6:¶�MW¿¶�°��]�€�ƒ�Q��
                                    ! ���J����0��1��3��4�8�5�?�4�C�7�T�8�]�=�`�?�h�@�p�=�{�B�ƒ�D�…�F�ž�G�¦�H�©�K����p����¯��
                                    �����¯�S�T���ž�U�T���•�V�W��T�[�X�Y��]�R�Z�[��`��\�T��x��\�T��©��\�T��…�$�]�^��ž��_�`���a�b����¯��	���±»�7Y»�cY+·�e·�>N»�Y+¶�f·�j:,¹�m�:§�]#¶�s›�C¹�w�:§�-¹�}�À�/:¶�ƒ›�,¹�†�À�/¶�Š:¹��šÿ϶�W
                                      ¶�BW-¶�EY:ÇÿŸ-¶�H§�:»�)Y‘·�6:¶�MW¿¶�°����“�Q��
                                    ! ���Z����[��]��a�%�b�(�f�2�h�;�j�>�l�J�m�T�n�X�o�c�n�h�j�r�r�z�s�‚�b�Œ�u�“�w�•�z� �{�¨�|�«�~����„�
                                    ���±��
                                    �����±�“�T����±�”�•���¡�X�Y��(�Z�\�T��‰�
                                      �\�T��«��\�T���”�Z�[��;�7�–�—��%�n�˜�™��J��š�T��•��]�^�� ��_�`���›����œ
                                    \ No newline at end of file
                                    --- 24,32 ----
                                      �/�„�u�…�(Ljava/lang/String;)I�n�‡�ˆ�‰�get�&(Ljava/lang/Object;)Ljava/lang/Object;
                                      �/�‹�a�Œ�8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;�~�Ž���hasNext�()Z�’���template�	variables�Ljava/util/Map;�iter�Ljava/util/Iterator;�vars�Ljava/util/Collection;�variable�
                                      SourceFile�Generator.java�!���������������/�����*·�±����
                                    ! �������7����������
                                    ���������‰��	���¯»�Y·�+¶�¶�M*¶�,¶�#N-Ç�(»�)Y»�Y*¶�¶�+¸�.·�4¶�,¶�¶�·�6¿»�7Y»�9Y-·�;·�>:»�Y·�A:§�¶�W
                                      ¶�BW¶�EY:Çÿè¶�H§�):»�)Y»�YK·�+¶�¶�·�6:¶�MW¿¶�°��]�€�ƒ�Q��
                                    ! ���J����A��B��D��E�8�F�?�E�C�H�T�I�]�N�`�P�h�Q�p�N�{�S�ƒ�U�…�W�ž�X�¦�Y�©�\����p����¯��
                                    �����¯�S�T���ž�U�T���•�V�W��T�[�X�Y��]�R�Z�[��`��\�T��x��\�T��©��\�T��…�$�]�^��ž��_�`���a�b����¯��	���±»�7Y»�cY+·�e·�>N»�Y+¶�f·�j:,¹�m�:§�]#¶�s›�C¹�w�:§�-¹�}�À�/:¶�ƒ›�,¹�†�À�/¶�Š:¹��šÿ϶�W
                                      ¶�BW-¶�EY:ÇÿŸ-¶�H§�:»�)Y‘·�6:¶�MW¿¶�°����“�Q��
                                    ! ���Z����l��n��r�%�s�(�w�2�y�;�{�>�}�J�~�T��X�€�c��h�{�r�ƒ�z�„�‚�s�Œ�†�“�ˆ�•�‹� �Œ�¨��«�����„�
                                    ���±��
                                    �����±�“�T����±�”�•���¡�X�Y��(�Z�\�T��‰�
                                      �\�T��«��\�T���”�Z�[��;�7�–�—��%�n�˜�™��J��š�T��•��]�^�� ��_�`���›����œ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class	Mon Dec 18 21:51:42 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 7,14 ****
                                      �Q�S�R�java/lang/Class�T�U�isAssignableFrom�(Ljava/lang/Class;)Z�W�Util.writeRemoteObject(out, �Y�!org/omg/CORBA/portable/ObjectImpl�[�out.write_Object(�]�out.write_value(�_�, 
                                      �a�c�b�/gnu/classpath/tools/rmic/SourceGiopRmicCompiler�d�e�name�%(Ljava/lang/Class;)Ljava/lang/String;�g�.class);�c�variable�Ljava/lang/String;�r�1Lgnu/classpath/tools/rmic/SourceGiopRmicCompiler;�getReadStatement�V(Ljava/lang/Class;Lgnu/classpath/tools/rmic/SourceGiopRmicCompiler;)Ljava/lang/String;�p�in.read_boolean();�r�in.read_octet();�t�in.read_int();�v�in.read_long();�x�in.read_long_long();�z�in.read_double();�|�in.read_float();�~�in.read_char();�€�(�‚�/) PortableRemoteObject.narrow(in.read_Object(),�„�in.read_Object();�†�) in.read_value(�
                                      SourceFile�GiopIo.java�!���������������/�����*·�±����
                                    ! �������!����������
                                    ���	������ï����a*²�¶�™�»�Y·�+¶�!%¶�!¶�'°*²�+¶�™�»�Y.·�+¶�!%¶�!¶�'°*²�0¶�™�»�Y3·�+¶�!%¶�!¶�'°*²�5¶�™�»�Y8·�+¶�!%¶�!¶�'°*²�:¶�™�»�Y=·�+¶�!%¶�!¶�'°*²�?¶�™�»�YB·�+¶�!%¶�!¶�'°*²�D¶�™�»�YG·�+¶�!%¶�!¶�'°*²�I¶�™�»�YL·�+¶�!%¶�!¶�'°N*¶�P™�»�YV·�+¶�!%¶�!¶�'°X*¶�P™�»�YZ·�+¶�!%¶�!¶�'°»�Y\·�+¶�!^¶�!,*¶�`¶�!f¶�!¶�'°����
                                    ! ���V����1�
                                    ! �2� �3�*�4�@�5�J�6�`�7�j�8�€�9�Š�:� �;�ª�<�À�=�Ê�>�à�?�ê�@��A	�B�C(�D>�F���� ���a�h�����a�i�j���a�k�l��	�m�n����c�����Ë*²�¶�™�o°*²�+¶�™�q°*²�0¶�™�s°*²�5¶�™�u°*²�:¶�™�w°*²�?¶�™�y°*²�D¶�™�{°*²�I¶�™�}°N*¶�P™�*»�Y·�+*¶�`¶�!¶�!+*¶�`¶�!f¶�!¶�'°X*¶�P™�ƒ°»�Y·�+*¶�`¶�!…¶�!+*¶�`¶�!f¶�!¶�'°����
                                    ! ���j����U�
                                    ! �V�
                                    �W��X��Y�$�Z�'�[�1�\�4�]�>�^�A�_�K�`�N�a�X�b�[�c�e�d�h�e�q�f�‚�g��h�”�f�˜�i�¡�j�¤�l�µ�m�Ç�l��������Ë�h������Ë�k�l���‡����ˆ
                                    \ No newline at end of file
                                    --- 7,14 ----
                                      �Q�S�R�java/lang/Class�T�U�isAssignableFrom�(Ljava/lang/Class;)Z�W�Util.writeRemoteObject(out, �Y�!org/omg/CORBA/portable/ObjectImpl�[�out.write_Object(�]�out.write_value(�_�, 
                                      �a�c�b�/gnu/classpath/tools/rmic/SourceGiopRmicCompiler�d�e�name�%(Ljava/lang/Class;)Ljava/lang/String;�g�.class);�c�variable�Ljava/lang/String;�r�1Lgnu/classpath/tools/rmic/SourceGiopRmicCompiler;�getReadStatement�V(Ljava/lang/Class;Lgnu/classpath/tools/rmic/SourceGiopRmicCompiler;)Ljava/lang/String;�p�in.read_boolean();�r�in.read_octet();�t�in.read_int();�v�in.read_long();�x�in.read_long_long();�z�in.read_double();�|�in.read_float();�~�in.read_char();�€�(�‚�/) PortableRemoteObject.narrow(in.read_Object(),�„�in.read_Object();�†�) in.read_value(�
                                      SourceFile�GiopIo.java�!���������������/�����*·�±����
                                    ! �������2����������
                                    ���	������ï����a*²�¶�™�»�Y·�+¶�!%¶�!¶�'°*²�+¶�™�»�Y.·�+¶�!%¶�!¶�'°*²�0¶�™�»�Y3·�+¶�!%¶�!¶�'°*²�5¶�™�»�Y8·�+¶�!%¶�!¶�'°*²�:¶�™�»�Y=·�+¶�!%¶�!¶�'°*²�?¶�™�»�YB·�+¶�!%¶�!¶�'°*²�D¶�™�»�YG·�+¶�!%¶�!¶�'°*²�I¶�™�»�YL·�+¶�!%¶�!¶�'°N*¶�P™�»�YV·�+¶�!%¶�!¶�'°X*¶�P™�»�YZ·�+¶�!%¶�!¶�'°»�Y\·�+¶�!^¶�!,*¶�`¶�!f¶�!¶�'°����
                                    ! ���V����B�
                                    ! �C� �D�*�E�@�F�J�G�`�H�j�I�€�J�Š�K� �L�ª�M�À�N�Ê�O�à�P�ê�Q��R	�S�T(�U>�W���� ���a�h�����a�i�j���a�k�l��	�m�n����c�����Ë*²�¶�™�o°*²�+¶�™�q°*²�0¶�™�s°*²�5¶�™�u°*²�:¶�™�w°*²�?¶�™�y°*²�D¶�™�{°*²�I¶�™�}°N*¶�P™�*»�Y·�+*¶�`¶�!¶�!+*¶�`¶�!f¶�!¶�'°X*¶�P™�ƒ°»�Y·�+*¶�`¶�!…¶�!+*¶�`¶�!f¶�!¶�'°����
                                    ! ���j����f�
                                    ! �g�
                                    �h��i��j�$�k�'�l�1�m�4�n�>�o�A�p�K�q�N�r�X�s�[�t�e�u�h�v�q�w�‚�x��y�”�w�˜�z�¡�{�¤�}�µ�~�Ç�}��������Ë�h������Ë�k�l���‡����ˆ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class	Mon Dec 18 21:51:42 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 7,12 ****
                                      ��#�$�%�add�(Ljava/lang/Object;)Z
                                      ��'�(��size�strings�[Ljava/lang/String;�l�I�i�	charLists�[Ljava/util/HashSet;�p�m�v�
                                      SourceFile�HashFinder.java�!���������������/�����*·�±����
                                    ! �������"����������
                                    ���������˜�����¶+2¶�=>§�+2¶�¢�
                                      +2¶�=„+¾¡ÿé½�N6§�-»�Y+¾·�S„-¾¡ÿì6§�-6§�-2»�Y+2¶�·�!¶�"W„¡ÿâ„+¾¡ÿÒ6-2¶�&66§�-2¶�&¡�6-2¶�&6„-¾¡ÿà¬����
                                    ! ���Z����0��1��3��4��1�&�8�+�:�1�<�>�:�H�?�N�@�T�B�l�@�u�?��E�‚�F�Š�H��L�œ�N� �O�©�H�³�R����p����¶��
                                    �����¶�)�*���¯�+�,��	��-�,��+�‹�.�/��.��-�,��K�4�-�,��Q�$�0�,��‚�4�1�,��Š�,�2�,���&�-�,���3����4
                                    \ No newline at end of file
                                    --- 7,12 ----
                                      ��#�$�%�add�(Ljava/lang/Object;)Z
                                      ��'�(��size�strings�[Ljava/lang/String;�l�I�i�	charLists�[Ljava/util/HashSet;�p�m�v�
                                      SourceFile�HashFinder.java�!���������������/�����*·�±����
                                    ! �������2����������
                                    ���������˜�����¶+2¶�=>§�+2¶�¢�
                                      +2¶�=„+¾¡ÿé½�N6§�-»�Y+¾·�S„-¾¡ÿì6§�-6§�-2»�Y+2¶�·�!¶�"W„¡ÿâ„+¾¡ÿÒ6-2¶�&66§�-2¶�&¡�6-2¶�&6„-¾¡ÿà¬����
                                    ! ���Z����@��A��C��D��A�&�H�+�J�1�L�>�J�H�O�N�P�T�R�l�P�u�O��U�‚�V�Š�X��\�œ�^� �_�©�X�³�b����p����¶��
                                    �����¶�)�*���¯�+�,��	��-�,��+�‹�.�/��.��-�,��K�4�-�,��Q�$�0�,��‚�4�1�,��Š�,�2�,���&�-�,���3����4
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$0�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������;���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����@��A��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$0�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������L���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����Q��R��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$6�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������…���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����Š��‹��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$6�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������–���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����›��œ��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      Exceptions��*gnu/classpath/tools/getopt/OptionException�argument�
                                      SourceFile�	Main.java�EnclosingMethod� �gnu/classpath/tools/rmic/Main�"�#�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ���������� �������������������������������	���5������±�����������’������������������������������!�$���
                                      ��������
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      Exceptions��*gnu/classpath/tools/getopt/OptionException�argument�
                                      SourceFile�	Main.java�EnclosingMethod� �gnu/classpath/tools/rmic/Main�"�#�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������ž���� �������������������������������	���5������±�����������£������������������������������!�$���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$7�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������”���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����™��š��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$7�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������¥���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����ª��«��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$8�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������œ���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����¡��¢��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$8�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������­���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����²��³��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$8�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������¤���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����©��ª��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$8�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������µ���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����º��»��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 6,13 ****
                                      ��%�&� �	access$11�argument�
                                      SourceFile�	Main.java�EnclosingMethod�,�-�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������¬���� �������������������������������	���Y�����*´�
                                      ¸�*´�
                                      ¸�!*´�
                                    ! ¸�$±�����������±��²��³��´����������������'����(����)�*�����+�.���
                                      ��������
                                    \ No newline at end of file
                                    --- 6,13 ----
                                      ��%�&� �	access$11�argument�
                                      SourceFile�	Main.java�EnclosingMethod�,�-�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������½���� �������������������������������	���Y�����*´�
                                      ¸�*´�
                                      ¸�!*´�
                                    ! ¸�$±�����������Â��Ã��Ä��Å����������������'����(����)�*�����+�.���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �	access$11�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������¶���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����»��¼��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �	access$11�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������Ç���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ��������������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 6,13 ****
                                      ��%�&� �	access$11�argument�
                                      SourceFile�	Main.java�EnclosingMethod�,�-�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������¾���� �������������������������������	���Y�����*´�
                                      ¸�*´�
                                      ¸�!*´�
                                    ! ¸�$±�����������Ã��Ä��Å��Æ����������������'����(����)�*�����+�.���
                                      ��������
                                    \ No newline at end of file
                                    --- 6,13 ----
                                      ��%�&� �	access$11�argument�
                                      SourceFile�	Main.java�EnclosingMethod�,�-�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������Ï���� �������������������������������	���Y�����*´�
                                      ¸�*´�
                                      ¸�!*´�
                                    ! ¸�$±�����������Ô��Õ��Ö��×����������������'����(����)�*�����+�.���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      Exceptions��*gnu/classpath/tools/getopt/OptionException�argument�
                                      SourceFile�	Main.java�EnclosingMethod� �gnu/classpath/tools/rmic/Main�"�#�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������È���� �������������������������������	���5������±�����������Í������������������������������!�$���
                                      ��������
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      Exceptions��*gnu/classpath/tools/getopt/OptionException�argument�
                                      SourceFile�	Main.java�EnclosingMethod� �gnu/classpath/tools/rmic/Main�"�#�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������Ù���� �������������������������������	���5������±�����������Þ������������������������������!�$���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$1�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������C���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����H��I��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$1�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������T���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����Y��Z��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$2�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������K���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����P��Q��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$2�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������\���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����a��b��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main� �!�access$3�4(Lgnu/classpath/tools/rmic/Main;Ljava/lang/String;)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�'�(�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������S����*�������������������������������������	���A�����	*´�
                                      +¸�±�������
                                    ! ����Y��Z��������	�������	�"����#����$�%�����&�)���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main� �!�access$3�4(Lgnu/classpath/tools/rmic/Main;Ljava/lang/String;)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�'�(�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������d����*�������������������������������������	���A�����	*´�
                                      +¸�±�������
                                    ! ����j��k��������	�������	�"����#����$�%�����&�)���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main� �!�access$4�4(Lgnu/classpath/tools/rmic/Main;Ljava/lang/String;)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�'�(�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������\����*�������������������������������������	���A�����	*´�
                                      +¸�±�������
                                    ! ����b��c��������	�������	�"����#����$�%�����&�)���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main� �!�access$4�4(Lgnu/classpath/tools/rmic/Main;Ljava/lang/String;)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�'�(�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������m����*�������������������������������������	���A�����	*´�
                                      +¸�±�������
                                    ! ����s��t��������	�������	�"����#����$�%�����&�)���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      Exceptions��*gnu/classpath/tools/getopt/OptionException�argument�
                                      SourceFile�	Main.java�EnclosingMethod�!�gnu/classpath/tools/rmic/Main�#�$�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������e����*�������������������������������������	���5������±�����������k����������������������������� �"�%���
                                      ��������
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      Exceptions��*gnu/classpath/tools/getopt/OptionException�argument�
                                      SourceFile�	Main.java�EnclosingMethod�!�gnu/classpath/tools/rmic/Main�#�$�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������v����*�������������������������������������	���5������±�����������|����������������������������� �"�%���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,7 ****
                                      Exceptions��*gnu/classpath/tools/getopt/OptionException�argument�
                                      SourceFile�	Main.java�EnclosingMethod�!�gnu/classpath/tools/rmic/Main�#�$�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������m����*�������������������������������������	���5������±�����������s����������������������������� �"�%���
                                      ��������
                                    \ No newline at end of file
                                    --- 3,7 ----
                                      Exceptions��*gnu/classpath/tools/getopt/OptionException�argument�
                                      SourceFile�	Main.java�EnclosingMethod�!�gnu/classpath/tools/rmic/Main�#�$�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������~����*�������������������������������������	���5������±�����������„����������������������������� �"�%���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$5�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������u���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����z��{��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$5�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������†���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����‹��Œ��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 4,10 ****
                                      ����gnu/classpath/tools/rmic/Main�� �access$6�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������}���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����‚��ƒ��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    --- 4,10 ----
                                      ����gnu/classpath/tools/rmic/Main�� �access$6�#(Lgnu/classpath/tools/rmic/Main;Z)V�argument�
                                      SourceFile�	Main.java�EnclosingMethod�&�'�initializeParser�%()Lgnu/classpath/tools/getopt/Parser;�InnerClasses� ����������������	���N�����*+µ�
                                      *,-·�±�������
                                    ! ������Ž���� �������������������������������	���A�����	*´�
                                      ¸�±�������
                                    ! ����“��”��������	�������	�!����"����#�$�����%�(���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class	Tue Oct 12 15:55:12 2010
                                    *************** Main.Usage
                                    *** 41,48 ****
                                       �java/io/PrintStream!�>�println
                                      #%$�java/lang/Exception&'�printStackTrace�(Ljava/io/PrintStream;)V�rmicprogram�e�Ljava/lang/Exception;�access$0�#(Lgnu/classpath/tools/rmic/Main;Z)V�access$1�access$2�access$3�4(Lgnu/classpath/tools/rmic/Main;Ljava/lang/String;)V�access$4�access$5�access$6�access$7�access$8�access$9�	access$10�	access$11�
                                      SourceFile�	Main.java�InnerClasses�!����������������������	�����
                                    ! ����������
                                    �������������������������������������b����� *·�*µ�*µ�*µ�*µ� *µ�"±����$�������$��'�	�*��+��-��.��$�%������� �&�'����(�)����¤����€»�*Y,·�.L+1¸�3¶�9+»�?Y*AC¸�3·�E¶�H+»�LY*NP¸�3·�R¶�H+»�SY*UV¸�3·�X¶�H+»�YY*[]¸�3_¸�3·�a¶�H+»�dY*fg¸�3i¸�3·�k¶�H+»�lY*np¸�3r¸�3·�t¶�H+»�uY*wy¸�3{¸�3·�}¶�H+»�~Y*€¸�3·�ƒ¶�H+»�„Y*†ˆ¸�3·�Š¶�H+»�‹Y*¸�3·�‘¶�H+»�’Y*”–¸�3·�˜¶�H+»�™Y*›œ¸�3·�ž¶�H+»�ŸY*¡¢¸�3·�¤¶�H+»�¥Y*§©¸�3·�«¶�H+»�¬Y*®°¸�3·�²¶�H+»�³Y*µ·¸�3·�¹¶�H+»�ºY*¼¾¸�3·�À¶�H+»�ÁY*ß�3·�Ƕ�H+°����$���ö�=���8��9��;��<�$�;�'�C�/�D�7�C�:�K�B�L�J�K�M�S�U�T�Z�U�b�S�e�\�m�]�r�^�z�\�}�e�…�f�Š�g�’�e�•�m��n�¢�o�ª�m�­�u�µ�v�½�u�À�}�È�~�Ð�}�Ó�…�Û�†�ã�…�æ��î�Ž�ö��ù�”�•	�”�œ��œ�¤'�¥/�¤2�¬:�­B�¬E�¶M�·U�¶X�¾`�¿h�¾k�Ès�É{�È~�Ð�%������€�&�'���u�È�É���Ê�Ë����°�����æ*·�ÌM,+¶�ÎN-¾š�,¶�Ò¸�Õ»�ÛY·�Ý:*´�Þ™�;»�àY·�â¶�ãW*´�æ™�H»�èY·�ê¶�ãW*´�ë™�4»�íY·�ï¶�ãW§�$»�èY·�ê¶�ãW*´�ë™�»�íY·�ï¶�ãW6§�W¶�ðÀ�ô:*´�ë*´� *´�"*´�Þ*´�ö*´�*´�ø*´�ú*´�ü*´�*´�¹�þ�-¹�š�¸�Õ„¶¡ÿ¥±����$���j����Õ��Ö��Ø��Ú��Û��Þ�!�â�(�ä�5�æ�<�é�I�ë�P�ì�`�ñ�m�ò�t�ó��ö�‡�ø�“�ù�¡�ú�®�û�¾�ü�Ä�ù�É�ý�Ô�þ�Ø�ö�å��%���H����æ�&�'�����æ	
                                      ���á�É���Û
                                    ! ��!�Å
                                    ��„�a��“�E��	�Ë�����‡�����)»�Y·L+*·§�M²¸�3¶,²¶"¸�Õ±���
                                    �#��$�������
                                    ! ����$�(�%��� ����)	
                                    ! ����!(�'���)*�+,�����&�����*µ�±����$�������'�%�����-,�����&�����*µ�ø±����$�������&�%�����.,�����&�����*µ�ú±����$�������(�%�����/0�����&�����*+µ�±����$�������+�%�����10�����&�����*+µ�±����$�������*�%�����2,�����&�����*µ�Þ±����$�������0�%�����3,�����&�����*µ�ü±����$�������)�%�����4,�����&�����*µ�ö±����$�������,�%�����5,�����&�����*µ�ë±����$�������/�%�����6,�����&�����*µ� ±����$�������-�%�����7,�����&�����*µ�"±����$�������.�%�����8,�����&�����*µ�æ±����$�������4�%������9���:;���’��?�������‹�������’�������™�������Ÿ�������¥�������¬�������³�������º�������Á�������L�������S�������Y�������d�������l�������u�������~�������„������
                                    \ No newline at end of file
                                    --- 41,49 ----
                                       �java/io/PrintStream!�>�println
                                      #%$�java/lang/Exception&'�printStackTrace�(Ljava/io/PrintStream;)V�rmicprogram�e�Ljava/lang/Exception;�access$0�#(Lgnu/classpath/tools/rmic/Main;Z)V�access$1�access$2�access$3�4(Lgnu/classpath/tools/rmic/Main;Ljava/lang/String;)V�access$4�access$5�access$6�access$7�access$8�access$9�	access$10�	access$11�
                                      SourceFile�	Main.java�InnerClasses�!����������������������	�����
                                    ! ����������
                                    �������������������������������������b����� *·�*µ�*µ�*µ�*µ� *µ�"±����$�������5��8�	�;��<��>��?��5�%������� �&�'����(�)����¤����€»�*Y,·�.L+1¸�3¶�9+»�?Y*AC¸�3·�E¶�H+»�LY*NP¸�3·�R¶�H+»�SY*UV¸�3·�X¶�H+»�YY*[]¸�3_¸�3·�a¶�H+»�dY*fg¸�3i¸�3·�k¶�H+»�lY*np¸�3r¸�3·�t¶�H+»�uY*wy¸�3{¸�3·�}¶�H+»�~Y*€¸�3·�ƒ¶�H+»�„Y*†ˆ¸�3·�Š¶�H+»�‹Y*¸�3·�‘¶�H+»�’Y*”–¸�3·�˜¶�H+»�™Y*›œ¸�3·�ž¶�H+»�ŸY*¡¢¸�3·�¤¶�H+»�¥Y*§©¸�3·�«¶�H+»�¬Y*®°¸�3·�²¶�H+»�³Y*µ·¸�3·�¹¶�H+»�ºY*¼¾¸�3·�À¶�H+»�ÁY*ß�3·�Ƕ�H+°����$���ö�=���I��J��L��M�$�L�'�T�/�U�7�T�:�\�B�]�J�\�M�d�U�e�Z�f�b�d�e�m�m�n�r�o�z�m�}�v�…�w�Š�x�’�v�•�~���¢�€�ª�~�­�†�µ�‡�½�†�À�Ž�È��Ð�Ž�Ó�–�Û�—�ã�–�æ�ž�î�Ÿ�ö�ž�ù�¥�¦	�¥�­�®�­�µ'�¶/�µ2�½:�¾B�½E�ÇM�ÈU�ÇX�Ï`�Ðh�Ïk�Ùs�Ú{�Ù~�á�%������€�&�'���u�È�É���Ê�Ë����°�����æ*·�ÌM,+¶�ÎN-¾š�,¶�Ò¸�Õ»�ÛY·�Ý:*´�Þ™�;»�àY·�â¶�ãW*´�æ™�H»�èY·�ê¶�ãW*´�ë™�4»�íY·�ï¶�ãW§�$»�èY·�ê¶�ãW*´�ë™�»�íY·�ï¶�ãW6§�W¶�ðÀ�ô:*´�ë*´� *´�"*´�Þ*´�ö*´�*´�ø*´�ú*´�ü*´�*´�¹�þ�-¹�š�¸�Õ„¶¡ÿ¥±����$���j����æ��ç��é��ë��ì��ï�!�ó�(�õ�5�÷�<�ú�I�ü�P�ý�`�m�t��‡	�“
                                    ! �¡�®�¾
                                    �Ä
                                    ! �É�Ô�Ø�å�%���H����æ�&�'�����æ	
                                      ���á�É���Û
                                    ! ��!�Å
                                    ��„�a��“�E��	�Ë�����‡�����)»�Y·L+*·§�M²¸�3¶,²¶"¸�Õ±���
                                    �#��$���������� �$!�(#�%��� ����)	
                                    ! ����!(�'���)*�+,�����&�����*µ�±����$�������8�%�����-,�����&�����*µ�ø±����$�������7�%�����.,�����&�����*µ�ú±����$�������9�%�����/0�����&�����*+µ�±����$�������<�%�����10�����&�����*+µ�±����$�������;�%�����2,�����&�����*µ�Þ±����$�������A�%�����3,�����&�����*µ�ü±����$�������:�%�����4,�����&�����*µ�ö±����$�������=�%�����5,�����&�����*µ�ë±����$�������@�%�����6,�����&�����*µ� ±����$�������>�%�����7,�����&�����*µ�"±����$�������?�%�����8,�����&�����*µ�æ±����$�������E�%������9���:;���’��?�������‹�������’�������™�������Ÿ�������¥�������¬�������³�������º�������Á�������L�������S�������Y�������d�������l�������u�������~�������„������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class	Tue Oct 12 15:55:12 2010
                                    *************** replaceAll�5(Ljava/lang/String;Ljava/ut
                                    *** 37,46 ****
                                      �*�í�î�ï�charAt�(I)C�
                                      SourceFile�MethodGenerator.java�!��������������	�
                                      �����������
                                    ����
                                    ! ��������b�����*·�*µ�*+µ�*,µ�±�����������C��3�	�E��F��G���� �������������������
                                    ! ��� �!�����–�����N*´�¶�"L+'¶�)™�»�/Y1·�3+'¶�6¶�:¶�>¶�B°+E¶�)™�»�/YG·�3+E¶�6¶�:¶�>¶�B°+°�����������P��Q��R�*�S�3�T�L�V��������N������F�I�J���K�!�����¾�����V»�/Y·�LL*´�¶�MM>§�9+*´�,2¶�Q¶�>W+»�/YW·�3¶�Y¶�B¶�>W,¾d¢�
                                    ! +\¶�>W„,¾¡ÿÇ+¶�B°�������&�	���`��b��d��f�$�g�9�h�A�i�H�d�Q�k����*����V������N�^�_���F�`�a���?�b����c�!�����«�����G»�/Y·�LL*´�¶�MM>§�*+»�/YW·�3¶�Y¶�B¶�>W,¾d¢�
                                    ! +\¶�>W„,¾¡ÿÖ+¶�B°�������"����v��x��z��|�*�}�2�~�9�z�B�€����*����G������?�^�_���7�`�a���0�b����d�!�����¥�����A»�/Y·�LL*´�¶�eM>§�$+*´�,2¶�Q¶�>W,¾d¢�
                                    ! +\¶�>W„,¾¡ÿÜ+¶�B°�������"����Š��Œ��Ž���$�‘�,�’�3�Ž�<�”����*����A������9�^�_���1�`�a���*�b����h�!����ì����»�iY*´�´�k·�oM,r*´�*´�¶�t¶�Q¶�xW,|*´�¶�"¶�xW,~*¶�€¶�xW,‚*¶�„¶�xW,†*¶�ˆ¶�xW,Š*¶�Œ¶�xW*´�¶�t²�¶�•™�,™›¶�xW§�',™»�/Y·�3*´�¶�t*´�¸�Ÿ¶�>¶�B¶�xW*¶�¥N-¶�6ž�,§»�/Y©·�3-¶�>¶�B¶�xW§�,§«¶�xW*´�¶�t²�¶�•™�	­L§�,¯*´�¶�t±*´�¸�³¶�xW·L*´�+¶�¹:*´�,¶�½:°�������v���� ��¡�$�¢�2�£�=�¤�H�¥�S�§�^�©�n�ª�z�¬�}�­�†�®�—�­�š�¬�ž�¯�£�°�ª�±�Ä�³�Í�µ�Ý�¶�ã�¹�æ�º�ï�»�ó�º�ö�¹�ú�¼�ý�¿�À�Á����H��������à��Á�J��ý��Á�J���m�n��£�s�Â�J���Ã�J���Ä�J���Å�!����¶����»�iY*´�´�k·�oM,r*´�*´�¶�t¶�Q¶�xW,|*´�¶�"¶�xW,~*¶�€¶�xW,‚*¶�„¶�xW,†*¶�ˆ¶�xW,Š*¶�Œ¶�xW*´�Æ�*´�¶�Æ*¶�ÆŸ�%,Ê»�/YÌ·�3*¶�ƶ�ÎѶ�>¶�B¶�xW§�",Ê»�/YÓ·�3*¶�ƶ�ÎѶ�>¶�B¶�xW*´�¶�t²�¶�•™�	ÕL§�,¯*´�¶�t±*´�¸�³¶�xW×L,Ù*¶�Û¶�xW*´�+¶�¹N*´�-,¶�½:°�������Z����Í��Î�$�Ï�2�Ð�=�Ñ�H�Ò�S�Ô�^�Ö�s�×�•�Ù�´�Û�Ä�Ü�Ê�ß�Í�à�Ö�á�Ú�à�Ý�ß�á�â�ä�ä�ï�æ�ø�ç�è����>��������Ç��Á�J��ä�"�Á�J���÷�m�n��ø��Ã�J���Ä�J���Ý�!�����ò�����z»�/Y·�LL*´�¶�MM>§�]+Þ¶�>W+*´�,2¶�Q¶�>W+à¶�>W+»�/Yâ·�3¶�Y¶�B¶�>W+ä¶�>W+,2*´�¸�Ÿ¶�>W,¾d¢�
                                    ! +æ¶�>W„,¾¡ÿ£+¶�B°�������6�
                                    ���ò��ó��õ��÷��ø�+�ù�2�ú�G�û�N�ü�]�ý�e�þ�l�õ�u�����*����z������r�^�_���j�`�a���c�b����Ž�!�����´�����P»�/Y·�LL*´�¶�MM>§�3+è¶�>W+,2»�/Yâ·�3¶�Y¶�B*´�¸�³¶�>W+æ¶�>W„,¾¡ÿÍ+¶�B°�������"���
                                    ! ��
                                    ���;�B
                                    �K����*����P������H�^�_���@�`�a���9�b����È�É�����6�����*¶�€*´�ê¶�ì¬������������������������ð����ñ
                                    \ No newline at end of file
                                    --- 37,46 ----
                                      �*�í�î�ï�charAt�(I)C�
                                      SourceFile�MethodGenerator.java�!��������������	�
                                      �����������
                                    ����
                                    ! ��������b�����*·�*µ�*+µ�*,µ�±�����������T��D�	�V��W��X���� �������������������
                                    ! ��� �!�����–�����N*´�¶�"L+'¶�)™�»�/Y1·�3+'¶�6¶�:¶�>¶�B°+E¶�)™�»�/YG·�3+E¶�6¶�:¶�>¶�B°+°�����������a��b��c�*�d�3�e�L�g��������N������F�I�J���K�!�����¾�����V»�/Y·�LL*´�¶�MM>§�9+*´�,2¶�Q¶�>W+»�/YW·�3¶�Y¶�B¶�>W,¾d¢�
                                    ! +\¶�>W„,¾¡ÿÇ+¶�B°�������&�	���q��s��u��w�$�x�9�y�A�z�H�u�Q�|����*����V������N�^�_���F�`�a���?�b����c�!�����«�����G»�/Y·�LL*´�¶�MM>§�*+»�/YW·�3¶�Y¶�B¶�>W,¾d¢�
                                    ! +\¶�>W„,¾¡ÿÖ+¶�B°�������"����‡��‰��‹���*�Ž�2��9�‹�B�‘����*����G������?�^�_���7�`�a���0�b����d�!�����¥�����A»�/Y·�LL*´�¶�eM>§�$+*´�,2¶�Q¶�>W,¾d¢�
                                    ! +\¶�>W„,¾¡ÿÜ+¶�B°�������"����›����Ÿ��¡�$�¢�,�£�3�Ÿ�<�¥����*����A������9�^�_���1�`�a���*�b����h�!����ì����»�iY*´�´�k·�oM,r*´�*´�¶�t¶�Q¶�xW,|*´�¶�"¶�xW,~*¶�€¶�xW,‚*¶�„¶�xW,†*¶�ˆ¶�xW,Š*¶�Œ¶�xW*´�¶�t²�¶�•™�,™›¶�xW§�',™»�/Y·�3*´�¶�t*´�¸�Ÿ¶�>¶�B¶�xW*¶�¥N-¶�6ž�,§»�/Y©·�3-¶�>¶�B¶�xW§�,§«¶�xW*´�¶�t²�¶�•™�	­L§�,¯*´�¶�t±*´�¸�³¶�xW·L*´�+¶�¹:*´�,¶�½:°�������v����±��²�$�³�2�´�=�µ�H�¶�S�¸�^�º�n�»�z�½�}�¾�†�¿�—�¾�š�½�ž�À�£�Á�ª�Â�Ä�Ä�Í�Æ�Ý�Ç�ã�Ê�æ�Ë�ï�Ì�ó�Ë�ö�Ê�ú�Í�ý�Ð�Ñ�Ò����H��������à��Á�J��ý��Á�J���m�n��£�s�Â�J���Ã�J���Ä�J���Å�!����¶����»�iY*´�´�k·�oM,r*´�*´�¶�t¶�Q¶�xW,|*´�¶�"¶�xW,~*¶�€¶�xW,‚*¶�„¶�xW,†*¶�ˆ¶�xW,Š*¶�Œ¶�xW*´�Æ�*´�¶�Æ*¶�ÆŸ�%,Ê»�/YÌ·�3*¶�ƶ�ÎѶ�>¶�B¶�xW§�",Ê»�/YÓ·�3*¶�ƶ�ÎѶ�>¶�B¶�xW*´�¶�t²�¶�•™�	ÕL§�,¯*´�¶�t±*´�¸�³¶�xW×L,Ù*¶�Û¶�xW*´�+¶�¹N*´�-,¶�½:°�������Z����Þ��ß�$�à�2�á�=�â�H�ã�S�å�^�ç�s�è�•�ê�´�ì�Ä�í�Ê�ð�Í�ñ�Ö�ò�Ú�ñ�Ý�ð�á�ó�ä�õ�ï�÷�ø�ø�ù����>��������Ç��Á�J��ä�"�Á�J���÷�m�n��ø��Ã�J���Ä�J���Ý�!�����ò�����z»�/Y·�LL*´�¶�MM>§�]+Þ¶�>W+*´�,2¶�Q¶�>W+à¶�>W+»�/Yâ·�3¶�Y¶�B¶�>W+ä¶�>W+,2*´�¸�Ÿ¶�>W,¾d¢�
                                    ! +æ¶�>W„,¾¡ÿ£+¶�B°�������6�
                                    ������	�+
                                    ! �2�G�N
                                    �]�e�l�u����*����z������r�^�_���j�`�a���c�b����Ž�!�����´�����P»�/Y·�LL*´�¶�MM>§�3+è¶�>W+,2»�/Yâ·�3¶�Y¶�B*´�¸�³¶�>W+æ¶�>W„,¾¡ÿÍ+¶�B°�������"������ �!�;"�B�K$����*����P������H�^�_���@�`�a���9�b����È�É�����6�����*¶�€*´�ê¶�ì¬����������,��������������ð����ñ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class	Mon Dec 18 21:51:42 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,8 ****
                                      �����cause�Ljava/lang/Throwable;�
                                      SourceFile�RMICException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����)��*����������
                                    ����������������I�����*+,·�±����
                                      ���
                                    ! ����4��5���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    --- 3,8 ----
                                      �����cause�Ljava/lang/Throwable;�
                                      SourceFile�RMICException.java�!���������������>�����*+·�±����
                                      ���
                                    ! ����9��:����������
                                    ����������������I�����*+,·�±����
                                      ���
                                    ! ����D��E���� ������
                                    ��������������������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class	Tue Oct 12 15:55:12 2010
                                    *************** replaceAll�5(Ljava/lang/String;Ljava/ut
                                    *** 35,45 ****
                                      �ä�æ�å�gnu/java/rmi/server/RMIHashes�ç�è�
                                    getMethodHash�(Ljava/lang/reflect/Method;)J
                                      �€�ê�ë�ì�valueOf�(J)Ljava/lang/String;�î�L�convertStubName�
                                      SourceFile�RmiMethodGenerator.java�!��������������	�
                                    ! ��������
                                    ���t�����"*·�*+µ�*,µ�*´�¶�¾š�*´�µ�±����!�������>��@�	�A��B��C�!�D�"��� ����"�#�$�����"�%�����"�&�
                                      ���'�(��
                                    ���¾�����V»�)Y·�+L*´�¶�M>§�9+*´�,2¶�,¶�0W+»�)Y4·�6¶�9¶�<¶�0W,¾d¢�
                                    ! +?¶�0W„,¾¡ÿÇ+¶�<°����!���&�	���M��O��Q��S�$�T�9�U�A�V�H�Q�Q�X�"���*����V�#�$����N�A�B���F�C�D���?�E�F���G�(��
                                    ���«�����G»�)Y·�+L*´�¶�M>§�*+»�)Y4·�6¶�9¶�<¶�0W,¾d¢�
                                    ! +?¶�0W„,¾¡ÿÖ+¶�<°����!���"����c��e��g��i�*�j�2�k�9�g�B�m�"���*����G�#�$����?�A�B���7�C�D���0�E�F���H�(��
                                    ���¥�����A»�)Y·�+L*´�¶�IM>§�$+*´�,2¶�,¶�0W,¾d¢�
                                    ! +?¶�0W„,¾¡ÿÜ+¶�<°����!���"����w��y��{��}�$�~�,��3�{�<��"���*����A�#�$����9�A�B���1�C�D���*�E�F���L�(��
                                    �������ß»�MY*´�´�O·�SM,V*´�*´�¶�X¶�,¶�\W,`*´�¶�b¶�\W,e*¶�g¶�\W,j*¶�l¶�\W,n*¶�p¶�\W,s*´�*´�¶�u¶�,¶�\W,x*¶�z¶�\W*¶�}N-¶�ž�,…»�)Y‡·�6-¶�0¶�<¶�\W§�,…‰¶�\W*´�¶�X²�‹¶�‘™�	•L§�—L,™*¶�›¶�\W*´�+¶�ž:*´�,¶�¢:°����!���N������Ž�$��2��=�‘�H�’�S�“�h�”�s�–�x�—��˜�™�š�¢�œ�²��¸� �»�¡�Æ�¤�Ð�¥�Ü�¦�"���H����ß�#�$���µ��¦�§��»�$�¦�§���Ð�Q�R��x�g�¨�§��Ð��©�§��Ü��ª�§���«�(��
                                    ���ß�����k»�)Y·�+L*´�¶�M>§�N+¬¶�0W+*´�,2¶�,¶�0W+®¶�0W+»�)Y°·�6¶�9¶�<¶�0W+²¶�0W,¾d¢�
                                    ! +´¶�0W„,¾¡ÿ²+¶�<°����!���2����°��±��³��µ��¶�+�·�2�¸�G�¹�N�º�V�»�]�³�f�½�"���*����k�#�$����c�A�B���[�C�D���T�E�F���r�(��
                                    �������Ÿ*´�¶�L+¾š�¶°»�)Y¸·�6M>§�q+2¶�ºš�,»�)Y°·�6¶�9¶�<¶�0W§�>,»�)YÀ·�6*´�+2¸�¶�,¶�0¶�<¶�0W,»�)YÈ·�6¶�9ʶ�0¶�<¶�0W+¾d¢�
                                    ! ,?¶�0W„+¾¡ÿ,̶�0W,¶�<°����!���:����Ç��É�
                                    �Ê��Ì��Î��Ð�(�Ñ�@�Ô�a�Õ�{�×�ƒ�Ø�Š�Î�“�Ú�š�Û�"���*����Ÿ�#�$����—�C�D���…�A�B���w�E�F����(��
                                    ���Å�����g*´�¶�XL+²�‹¶�‘™�‰°+¶�º™�1*´�+¸�¶�,M»�)Yη�6,¶�0ж�0+¸�Ò¶�0Õ¶�0¶�<°»�)Y×·�6*´�+¶�,¶�0Ù¶�0¶�<°����!���&�	���ä��å��æ��é��ë�(�ì�:�í�F�ì�J�ð�"��� ����g�#�$����_�Û���(�"�Ü�§���|�(��
                                    ���°�����H»�)Y·�+L*´�¶�M>§�++*´�,2¶�,¶�0W+ݶ�0W,¾d¢�
                                    ! +?¶�0W„,¾¡ÿÕ+¶�<°����!���&�	���ù��ú��ü��þ�$�ÿ�+��3�:�ü�C�"���*����H�#�$����@�A�B���8�C�D���1�E�F���ß�(��
                                    ���2�����»�àY·�â¿����!�������"��������#�$����i�(��
                                    ���D�����»�)Y*´�¸�ã¸�é·�6í¶�0¶�<°����!�������"��������#�$����ï�¡��
                                    ���6�����+°����!�������"��������#�$������.�§���ð����ñ
                                    \ No newline at end of file
                                    --- 35,46 ----
                                      �ä�æ�å�gnu/java/rmi/server/RMIHashes�ç�è�
                                    getMethodHash�(Ljava/lang/reflect/Method;)J
                                      �€�ê�ë�ì�valueOf�(J)Ljava/lang/String;�î�L�convertStubName�
                                      SourceFile�RmiMethodGenerator.java�!��������������	�
                                    ! ��������
                                    ���t�����"*·�*+µ�*,µ�*´�¶�¾š�*´�µ�±����!�������H��J�	�K��L��M�!�N�"��� ����"�#�$�����"�%�����"�&�
                                      ���'�(��
                                    ���¾�����V»�)Y·�+L*´�¶�M>§�9+*´�,2¶�,¶�0W+»�)Y4·�6¶�9¶�<¶�0W,¾d¢�
                                    ! +?¶�0W„,¾¡ÿÇ+¶�<°����!���&�	���W��Y��[��]�$�^�9�_�A�`�H�[�Q�b�"���*����V�#�$����N�A�B���F�C�D���?�E�F���G�(��
                                    ���«�����G»�)Y·�+L*´�¶�M>§�*+»�)Y4·�6¶�9¶�<¶�0W,¾d¢�
                                    ! +?¶�0W„,¾¡ÿÖ+¶�<°����!���"����m��o��q��s�*�t�2�u�9�q�B�w�"���*����G�#�$����?�A�B���7�C�D���0�E�F���H�(��
                                    ���¥�����A»�)Y·�+L*´�¶�IM>§�$+*´�,2¶�,¶�0W,¾d¢�
                                    ! +?¶�0W„,¾¡ÿÜ+¶�<°����!���"������ƒ��…��‡�$�ˆ�,�‰�3�…�<�‹�"���*����A�#�$����9�A�B���1�C�D���*�E�F���L�(��
                                    �������ß»�MY*´�´�O·�SM,V*´�*´�¶�X¶�,¶�\W,`*´�¶�b¶�\W,e*¶�g¶�\W,j*¶�l¶�\W,n*¶�p¶�\W,s*´�*´�¶�u¶�,¶�\W,x*¶�z¶�\W*¶�}N-¶�ž�,…»�)Y‡·�6-¶�0¶�<¶�\W§�,…‰¶�\W*´�¶�X²�‹¶�‘™�	•L§�—L,™*¶�›¶�\W*´�+¶�ž:*´�,¶�¢:°����!���N����—��˜�$�™�2�š�=�›�H�œ�S��h�ž�s� �x�¡��¢�™�¤�¢�¦�²�§�¸�ª�»�«�Æ�®�Ð�¯�Ü�°�"���H����ß�#�$���µ��¦�§��»�$�¦�§���Ð�Q�R��x�g�¨�§��Ð��©�§��Ü��ª�§���«�(��
                                    ���ß�����k»�)Y·�+L*´�¶�M>§�N+¬¶�0W+*´�,2¶�,¶�0W+®¶�0W+»�)Y°·�6¶�9¶�<¶�0W+²¶�0W,¾d¢�
                                    ! +´¶�0W„,¾¡ÿ²+¶�<°����!���2����º��»��½��¿��À�+�Á�2�Â�G�Ã�N�Ä�V�Å�]�½�f�Ç�"���*����k�#�$����c�A�B���[�C�D���T�E�F���r�(��
                                    �������Ÿ*´�¶�L+¾š�¶°»�)Y¸·�6M>§�q+2¶�ºš�,»�)Y°·�6¶�9¶�<¶�0W§�>,»�)YÀ·�6*´�+2¸�¶�,¶�0¶�<¶�0W,»�)YÈ·�6¶�9ʶ�0¶�<¶�0W+¾d¢�
                                    ! ,?¶�0W„+¾¡ÿ,̶�0W,¶�<°����!���:����Ñ��Ó�
                                    �Ô��Ö��Ø��Ú�(�Û�@�Þ�a�ß�{�á�ƒ�â�Š�Ø�“�ä�š�å�"���*����Ÿ�#�$����—�C�D���…�A�B���w�E�F����(��
                                    ���Å�����g*´�¶�XL+²�‹¶�‘™�‰°+¶�º™�1*´�+¸�¶�,M»�)Yη�6,¶�0ж�0+¸�Ò¶�0Õ¶�0¶�<°»�)Y×·�6*´�+¶�,¶�0Ù¶�0¶�<°����!���&�	���î��ï��ð��ó��õ�(�ö�:�÷�F�ö�J�ú�"��� ����g�#�$����_�Û���(�"�Ü�§���|�(��
                                    ���°�����H»�)Y·�+L*´�¶�M>§�++*´�,2¶�,¶�0W+ݶ�0W,¾d¢�
                                    ! +?¶�0W„,¾¡ÿÕ+¶�<°����!���&�	������$	�+
                                    ! �3�:�C
                                    �"���*����H�#�$����@�A�B���8�C�D���1�E�F����(��
                                    ���2�����»�àY·�â¿����!�������"��������#�$����i�(��
                                    ���D�����»�)Y*´�¸�ã¸�é·�6í¶�0¶�<°����!�������"��������#�$����ï�¡��
                                    ���6�����+°����!������&�"��������#�$������.�§���ð����ñ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class	Tue Oct 12 15:55:12 2010
                                    *************** NO_ARGSc);�¢�2new Class[]
                                    *** 26,38 ****
                                                       }�©�);�reset
                                      ��¬�ª��convertStubName�	outputTie�"(Ljava/io/File;Ljava/lang/Class;)Z�fw�Ljava/io/File;�c�Ljava/lang/Class;�
                                      SourceFile�SourceRmicCompiler.java�!����������������	���/�����*·�
                                    ! ±�����������)�
                                    ����������������	��|�����È*¶�L»�Y·�M*´�¹��N§�-¹�%�À�+:,¶�-¶�0W-¹�4�šÿå*´�8<,¶�>¶�AW*´�8G*¶�I¶�AW*´�8L*¶�N¶�AW*´�8Q*¶�S¶�AW*´�8V*¶�X¶�AW*´�[™�*´�8]_¶�AW*´�8ac¶�AW§�*´�8]e¶�AW*´�8ae¶�AW*+*´�8¶�g:°�������^����8��;��<��=��?�'�@�1�=�:�C�H�D�V�E�d�F�r�G�€�H�‡�J��K��J�“�L�™�M�›�L�¢�Q�®�R�º�U�Å�V�
                                    ���>����È������Á�k�l���¹�m�n���¯�o�p��'�
                                      �q�r����s�l���t�u��	���>�����
                                    ! »�+Y+*·�v°�����������^�
                                    �������
                                      �������
                                      �q�y���U���	���Ò�����^»�Y·�L*´�¹��M§�>,¹�%�À�+N+z¶�0W+|¶�0W+-´�~¶�¶�0W+;¶�†W,¹�4�™�
                                      +
                                    ! ¶�†W,¹�4�šÿ¿+¶�>°�������2����f��h��j��l��m�&�n�-�o�9�p�@�q�I�r�P�j�Y�t�
                                    ���*����^������V�m�n���L�o�p���1�€�r���Z���	��U�����¹»�Y·�L*´�¹��M§�™,¹�%�À�+N+‰¶�0W+‹¶�0W+-´�~¶�¶�0W+¶�0W+*-´�~¶�¶�“¶�0W+—¶�0W+"¶�†W+-´�~¶�¶�0W+™¶�0W-´�~¶�›¾š�
                                    +Ÿ¶�0W§�!+¡¶�0W+-¶�£¶�0W+¦¶�0W+¨¶�0W+
                                    ! ¶�†W,¹�4�šÿd+¶�>°�������Z����}������ƒ��„�&�…�-�†�9�‡�@�ˆ�P�‰�W�Š�^�‹�j�Œ�q��|�Ž�†�‘��’�–�“��”�¤�–�«��´�˜�
                                    ���*����¹������±�m�n���§�o�p���Œ�€�r���ª���	���<�����
                                    ! *µ�[*·�«±����������� ��¡�	�¢�
                                    �������
                                    ! ������­���	���6�����+°�����������©�
                                    ���������������•�l���®�¯��	���@�����¬�����������±�
                                    ��� ������������°�±�����²�³���´����µ
                                    \ No newline at end of file
                                    --- 26,38 ----
                                                       }�©�);�reset
                                      ��¬�ª��convertStubName�	outputTie�"(Ljava/io/File;Ljava/lang/Class;)Z�fw�Ljava/io/File;�c�Ljava/lang/Class;�
                                      SourceFile�SourceRmicCompiler.java�!����������������	���/�����*·�
                                    ! ±�����������3�
                                    ����������������	��|�����È*¶�L»�Y·�M*´�¹��N§�-¹�%�À�+:,¶�-¶�0W-¹�4�šÿå*´�8<,¶�>¶�AW*´�8G*¶�I¶�AW*´�8L*¶�N¶�AW*´�8Q*¶�S¶�AW*´�8V*¶�X¶�AW*´�[™�*´�8]_¶�AW*´�8ac¶�AW§�*´�8]e¶�AW*´�8ae¶�AW*+*´�8¶�g:°�������^����B��E��F��G��I�'�J�1�G�:�M�H�N�V�O�d�P�r�Q�€�R�‡�T��U��T�“�V�™�W�›�V�¢�[�®�\�º�_�Å�`�
                                    ���>����È������Á�k�l���¹�m�n���¯�o�p��'�
                                      �q�r����s�l���t�u��	���>�����
                                    ! »�+Y+*·�v°�����������h�
                                    �������
                                      �������
                                      �q�y���U���	���Ò�����^»�Y·�L*´�¹��M§�>,¹�%�À�+N+z¶�0W+|¶�0W+-´�~¶�¶�0W+;¶�†W,¹�4�™�
                                      +
                                    ! ¶�†W,¹�4�šÿ¿+¶�>°�������2����p��r��t��v��w�&�x�-�y�9�z�@�{�I�|�P�t�Y�~�
                                    ���*����^������V�m�n���L�o�p���1�€�r���Z���	��U�����¹»�Y·�L*´�¹��M§�™,¹�%�À�+N+‰¶�0W+‹¶�0W+-´�~¶�¶�0W+¶�0W+*-´�~¶�¶�“¶�0W+—¶�0W+"¶�†W+-´�~¶�¶�0W+™¶�0W-´�~¶�›¾š�
                                    +Ÿ¶�0W§�!+¡¶�0W+-¶�£¶�0W+¦¶�0W+¨¶�0W+
                                    ! ¶�†W,¹�4�šÿd+¶�>°�������Z����‡��‰��‹����Ž�&��-��9�‘�@�’�P�“�W�”�^�•�j�–�q�—�|�˜�†�›��œ�–���ž�¤� �«�‹�´�¢�
                                    ���*����¹������±�m�n���§�o�p���Œ�€�r���ª���	���<�����
                                    ! *µ�[*·�«±�����������ª��«�	�¬�
                                    �������
                                    ! ������­���	���6�����+°�����������³�
                                    ���������������•�l���®�¯��	���@�����¬�����������»�
                                    ��� ������������°�±�����²�³���´����µ
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class	Mon Dec 18 21:51:42 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class	Tue Oct 12 15:55:12 2010
                                    *************** deallocate�ƒ�no variable 
                                    *** 28,34 ****
                                      ���y��
                                      SourceFile�Variables.java� �����������������	�����
                                      ���������
                                    ! ���
                                    ������x�����6*·�*»�Y·�µ�*»�Y·�µ�*»�Y·�µ�*»�Y·�µ�*µ� ±����"������������� �%�!�0�"�5��#�������6�$�%����&�'�����?�����*+¶�(±����"���
                                    ! ����&��'�#��������$�%������+�,���-�'�����?�����*+¶�(±����"���
                                    ! ����+��,�#��������$�%������+�,���&�*�����·�����Y*´� ™�
                                    »�.Y0·�2¿Ÿ�Ÿ�
                                    »�5Y7·�9¿*´�+¶�:™�»�.Y»�>Y@·�B+¶�C¶�G·�2¿*+·�KW*´�+¶�OW±����"���&�	���0��1��2��3�%�4�0�5�H�7�O�8�X�9�#��� ����Y�$�%�����Y�+�,����Y�R�S���M�N����������9*´�¶�T*´�¶�W`*´�¶�T`>*´�+»�XY·�Z¶�]W �*´�+¶�OW¬����"�������>��?�)�@�7�A�#���*����9�$�%�����9�+�,����9�R�S���!�a�S���b�c�����;�����*+¶�d¬����"�������F�#��������$�%������+�,���f�c�����;�����*+¶�d¬����"�������K�#��������$�%������+�,���b�N���� �����æ*µ� Ÿ�Ÿ�
                                    »�5Y7·�9¿*´�+¶�:™�»�.Y»�>Y@·�B+¶�C¶�G·�2¿ �o*´�¶�gN§�X-¹�k�À�X:»�XY¶�q`·�Z:*´�¶�t™�1*´�¶�wW*´�¶�wW*´�+¶�OW*´�+¶�]W¶�q¬-¹�z�šÿ¥§�5*´�¶�Tž�+*´�¶�g¹�k�À�XN*´�-¶�wW*´�+-¶�]W-¶�q¬*+·�K¬����"���Z����P��Q��R��S�$�T�<�V�A�Y�L�[�W�\�g�]�s�_�}�`�‡�a��b�›�c�¡�Y�­�g�·�i�Ç�j�Ð�k�Ú�l�ß�o�#���H����æ�$�%�����æ�+�,����æ�R�S��I�a�~���W�J�a�€��g�:�o�€��Ç��a�€����c�����î�����Œ*´�+¶�:š�»�5Y»�>Y‚·�B+¶�C¶�G·�9¿*´�+¶�t™�»�.Y»�>Y·�„+¶�C…¶�‡¶�G·�2¿*´�+¶�ŠÀ�XM*´�+¶�ŽW*´�,¶�OW*´�+¶�w™�*´�»�XY,¶�q`·�Z¶�OW,¶�q¬����"���*�
                                    ! ���t��u�#�w�.�x�I�z�U�{�^�|�g�}�r�~�‡��#��� ����Œ�$�%�����Œ�+�,��U�7�a�€���Œ�c�����n�����2*´�+¶�:š�»�5Y»�>Y‚·�B+¶�C¶�G·�9¿*´�+¶�ŠÀ�X¶�q¬����"�������„��…�#�‡�#�������2�$�%�����2�+�,�������‘
                                    \ No newline at end of file
                                    --- 28,34 ----
                                      ���y��
                                      SourceFile�Variables.java� �����������������	�����
                                      ���������
                                    ! ���
                                    ������x�����6*·�*»�Y·�µ�*»�Y·�µ�*»�Y·�µ�*»�Y·�µ�*µ� ±����"�������-��/��0��1�%�2�0�3�5�-�#�������6�$�%����&�'�����?�����*+¶�(±����"���
                                    ! ����7��8�#��������$�%������+�,���-�'�����?�����*+¶�(±����"���
                                    ! ����<��=�#��������$�%������+�,���&�*�����·�����Y*´� ™�
                                    »�.Y0·�2¿Ÿ�Ÿ�
                                    »�5Y7·�9¿*´�+¶�:™�»�.Y»�>Y@·�B+¶�C¶�G·�2¿*+·�KW*´�+¶�OW±����"���&�	���A��B��C��D�%�E�0�F�H�H�O�I�X�J�#��� ����Y�$�%�����Y�+�,����Y�R�S���M�N����������9*´�¶�T*´�¶�W`*´�¶�T`>*´�+»�XY·�Z¶�]W �*´�+¶�OW¬����"�������O��P�)�Q�7�R�#���*����9�$�%�����9�+�,����9�R�S���!�a�S���b�c�����;�����*+¶�d¬����"�������W�#��������$�%������+�,���f�c�����;�����*+¶�d¬����"�������\�#��������$�%������+�,���b�N���� �����æ*µ� Ÿ�Ÿ�
                                    »�5Y7·�9¿*´�+¶�:™�»�.Y»�>Y@·�B+¶�C¶�G·�2¿ �o*´�¶�gN§�X-¹�k�À�X:»�XY¶�q`·�Z:*´�¶�t™�1*´�¶�wW*´�¶�wW*´�+¶�OW*´�+¶�]W¶�q¬-¹�z�šÿ¥§�5*´�¶�Tž�+*´�¶�g¹�k�À�XN*´�-¶�wW*´�+-¶�]W-¶�q¬*+·�K¬����"���Z����a��b��c��d�$�e�<�g�A�j�L�l�W�m�g�n�s�p�}�q�‡�r��s�›�t�¡�j�­�x�·�z�Ç�{�Ð�|�Ú�}�ß�€�#���H����æ�$�%�����æ�+�,����æ�R�S��I�a�~���W�J�a�€��g�:�o�€��Ç��a�€����c�����î�����Œ*´�+¶�:š�»�5Y»�>Y‚·�B+¶�C¶�G·�9¿*´�+¶�t™�»�.Y»�>Y·�„+¶�C…¶�‡¶�G·�2¿*´�+¶�ŠÀ�XM*´�+¶�ŽW*´�,¶�OW*´�+¶�w™�*´�»�XY,¶�q`·�Z¶�OW,¶�q¬����"���*�
                                    ! ���…��†�#�ˆ�.�‰�I�‹�U�Œ�^��g�Ž�r��‡��#��� ����Œ�$�%�����Œ�+�,��U�7�a�€���Œ�c�����n�����2*´�+¶�:š�»�5Y»�>Y‚·�B+¶�C¶�G·�9¿*´�+¶�ŠÀ�X¶�q¬����"�������•��–�#�˜�#�������2�$�%�����2�+�,�������‘
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class	Mon Dec 18 21:51:42 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 3,10 ****
                                      �����equals�(Ljava/lang/Object;)Z	����java/lang/Integer	����java/lang/Long	�!��"�java/lang/Boolean	�$��%�java/lang/Double	�'��(�java/lang/Float	�*��+�java/lang/Character�	primitive�getUnwrappingMethod�%(Ljava/lang/Class;)Ljava/lang/String;�0�byteValue()�2�
                                      intValue()�4�longValue()�6�booleanValue()�8�
                                    doubleValue()�:�floatValue()�<�charValue()�
                                      SourceFile�WrapUnWrapper.java�!���������������/�����*·�±����
                                    ! �����������������
                                    ���	�������¿�����]*²�¶�™�°*²�¶�™�°*²�¶�™�°*²� ¶�™�!°*²�#¶�™�$°*²�&¶�™�'°*²�)¶�™�*°°����
                                    ! ���>����%�
                                    ! �&�
                                    �'��(��)�$�*�'�+�1�,�4�-�>�.�A�/�K�0�N�1�X�2�[�4��������]�,����	�-�.�����¿�����]*²�¶�™�/°*²�¶�™�1°*²�¶�™�3°*²� ¶�™�5°*²�#¶�™�7°*²�&¶�™�9°*²�)¶�™�;°°����
                                    ! ���>����@�
                                    ! �A�
                                    �B��C��D�$�E�'�F�1�G�4�H�>�I�A�J�K�K�N�L�X�M�[�O��������]�,�����=����>
                                    \ No newline at end of file
                                    --- 3,10 ----
                                      �����equals�(Ljava/lang/Object;)Z	����java/lang/Integer	����java/lang/Long	�!��"�java/lang/Boolean	�$��%�java/lang/Double	�'��(�java/lang/Float	�*��+�java/lang/Character�	primitive�getUnwrappingMethod�%(Ljava/lang/Class;)Ljava/lang/String;�0�byteValue()�2�
                                      intValue()�4�longValue()�6�booleanValue()�8�
                                    doubleValue()�:�floatValue()�<�charValue()�
                                      SourceFile�WrapUnWrapper.java�!���������������/�����*·�±����
                                    ! �������*����������
                                    ���	�������¿�����]*²�¶�™�°*²�¶�™�°*²�¶�™�°*²� ¶�™�!°*²�#¶�™�$°*²�&¶�™�'°*²�)¶�™�*°°����
                                    ! ���>����5�
                                    ! �6�
                                    �7��8��9�$�:�'�;�1�<�4�=�>�>�A�?�K�@�N�A�X�B�[�D��������]�,����	�-�.�����¿�����]*²�¶�™�/°*²�¶�™�1°*²�¶�™�3°*²� ¶�™�5°*²�#¶�™�7°*²�&¶�™�9°*²�)¶�™�;°°����
                                    ! ���>����P�
                                    ! �Q�
                                    �R��S��T�$�U�'�V�1�W�4�X�>�Y�A�Z�K�[�N�\�X�]�[�_��������]�,�����=����>
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 6,11 ****
                                      ��1��2�(Ljava/lang/String;)V�
                                      SourceFile�SerialVer.java�EnclosingMethod�7�8�run�([Ljava/lang/String;)V�InnerClasses� ����������������	���N�����*+µ�
                                      *,·�±�������
                                    ! ������l���� �������������������������������	���M�����*´�
                                    ! ´�¶�"™�»�Y(¸�*·�0¿±�����������p�
                                    �q��r��������������3����4�5�����6�9���
                                      ��������
                                    \ No newline at end of file
                                    --- 6,11 ----
                                      ��1��2�(Ljava/lang/String;)V�
                                      SourceFile�SerialVer.java�EnclosingMethod�7�8�run�([Ljava/lang/String;)V�InnerClasses� ����������������	���N�����*+µ�
                                      *,·�±�������
                                    ! ������|���� �������������������������������	���M�����*´�
                                    ! ´�¶�"™�»�Y(¸�*·�0¿±�����������€�
                                    ���‚��������������3����4�5�����6�9���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 5,12 ****
                                      ��*���argument�
                                      SourceFile�SerialVer.java�EnclosingMethod�0�1�run�([Ljava/lang/String;)V�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������v����*�������������������������������������	���`����� *´�
                                      ´�Æ�»�Y!¸�#·�)¿*´�
                                    ! +µ�±�����������z�
                                    ! �{��|��}�������� ������� �+����,����-�.�����/�2���
                                      ��������
                                    \ No newline at end of file
                                    --- 5,12 ----
                                      ��*���argument�
                                      SourceFile�SerialVer.java�EnclosingMethod�0�1�run�([Ljava/lang/String;)V�InnerClasses� ����������������	���Z�����*+µ�
                                      *,-·�±�������
                                    ! ������†����*�������������������������������������	���`����� *´�
                                      ´�Æ�»�Y!¸�#·�)¿*´�
                                    ! +µ�±�����������Š�
                                    ! �‹��Œ���������� ������� �+����,����-�.�����/�2���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class	Wed Jan  6 17:46:48 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class	Tue Oct 12 15:55:12 2010
                                    *************** Exceptions��*gnu/classpath/tools/geto
                                    *** 6,13 ****
                                      SourceFile�SerialVer.java�EnclosingMethod�*�+�run�([Ljava/lang/String;)V�InnerClasses� ����������������	���8�����
                                      *+µ�
                                      *·�±�������
                                    ! ������€��������
                                      ���������������	���E�����
                                    *´�
                                      ´�+¶�W±�������
                                    ! ����„��…��������
                                    �������
                                    �$�%���&����'�(�����)�,���
                                      ��������
                                    \ No newline at end of file
                                    --- 6,13 ----
                                      SourceFile�SerialVer.java�EnclosingMethod�*�+�run�([Ljava/lang/String;)V�InnerClasses� ����������������	���8�����
                                      *+µ�
                                      *·�±�������
                                    ! ��������������
                                      ���������������	���E�����
                                    *´�
                                      ´�+¶�W±�������
                                    ! ����”��•��������
                                    �������
                                    �$�%���&����'�(�����)�,���
                                      ��������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class	Fri Jul 27 21:14:19 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class	Tue Oct 12 15:55:12 2010
                                    *************** addFileURL�*(Ljava/util/ArrayList;Ljava
                                    *** 39,50 ****
                                      ��
                                      ��ø�u�v�
                                      SourceFile�SerialVer.java�InnerClasses�!������������������	�
                                    ! ��������
                                    ���B�����*·�*»�Y·�µ�±�����������-��0��-�������������
                                    ! ���������
                                    ���k�����*»�Y+·�¶�!¶�%W§�W±������)���������9��;��>���������+�������,�
                                    ! ��-��������+�.����/�0��
                                    ��:�����„*´�1Ç�½�3L§�o»�5Y*´�1²�7·�:M»�Y·�N§�<,¶�=:²�7¶�A™�-F¸�H§�"-¸�H,¶�J™�,¶�=W,¶�Jš�	-F¸�H,¶�JšÿÃ-¶�N½�3L-+¶�RÀ�VL»�XY+·�Z°�������N����E��F��I��J��I��K�'�L�*�N�0�O�;�P�D�S�J�T�Q�W�V�Z�]�[�c�L�j�_�r�`�{�b����>����„�������]�W��r��]�W���\�^�_��'�T�+���0�3�`�
                                      ��-�����'�T�+�.���a�b��
                                    ���U�����²�c+½�Y,S¸�i¶�o±�������
                                    ! ����g��h���� ������������m�
                                      �����t�
                                    ! ���u�v��
                                    ��†�����»�wY*y·�{M,~¸�€¶�†,»�‹Y*¸�€¸�€‘·�“¶�–,+»�™Y*·�›¶�ž*·�¢N*´�¶�¤:§�o¹�¨�À�B:-¶�®:¸�´:Æ�5²�º»�½Y¶�¿¸�Ä·�Èɶ�Ë϶�˶�Ѷ�Õض�˶�Ú¶�o§�*ݸ�€·�ߧ�W*á¸�€·�ß¹�ã�šÿ±��W�¨�«�æ�����R����l��t��v�-�€�:�ˆ�?�‰�H�Š�K�Œ�W��_��f�‘�k�’�‚�“�‡�”�—�’��–�«�˜�¬�š�·�Š�Á�����R����Â�������Â�è�é���¶�ê�ë��?�ƒ�ì�í��H�z�î�ï��W�`�ð�
                                      ��_�L�ñ�ò��f�E�ó�ô��	�õ�v��
                                    ���:�����»�Y·�ö*¶�÷±�������
                                    ! ����¡��¢���������è�é����ù����ú�û�����w�������‹�������™������
                                    \ No newline at end of file
                                    --- 39,50 ----
                                      ��
                                      ��ø�u�v�
                                      SourceFile�SerialVer.java�InnerClasses�!������������������	�
                                    ! ��������
                                    ���B�����*·�*»�Y·�µ�±�����������=��@��=�������������
                                    ! ���������
                                    ���k�����*»�Y+·�¶�!¶�%W§�W±������)���������I��K��N���������+�������,�
                                    ! ��-��������+�.����/�0��
                                    ��:�����„*´�1Ç�½�3L§�o»�5Y*´�1²�7·�:M»�Y·�N§�<,¶�=:²�7¶�A™�-F¸�H§�"-¸�H,¶�J™�,¶�=W,¶�Jš�	-F¸�H,¶�JšÿÃ-¶�N½�3L-+¶�RÀ�VL»�XY+·�Z°�������N����U��V��Y��Z��Y��[�'�\�*�^�0�_�;�`�D�c�J�d�Q�g�V�j�]�k�c�\�j�o�r�p�{�r����>����„�������]�W��r��]�W���\�^�_��'�T�+���0�3�`�
                                      ��-�����'�T�+�.���a�b��
                                    ���U�����²�c+½�Y,S¸�i¶�o±�������
                                    ! ����w��x���� ������������m�
                                      �����t�
                                    ! ���u�v��
                                    ��†�����»�wY*y·�{M,~¸�€¶�†,»�‹Y*¸�€¸�€‘·�“¶�–,+»�™Y*·�›¶�ž*·�¢N*´�¶�¤:§�o¹�¨�À�B:-¶�®:¸�´:Æ�5²�º»�½Y¶�¿¸�Ä·�Èɶ�Ë϶�˶�Ѷ�Õض�˶�Ú¶�o§�*ݸ�€·�ߧ�W*á¸�€·�ß¹�ã�šÿ±��W�¨�«�æ�����R����|��„��†�-��:�˜�?�™�H�š�K�œ�W�Ÿ�_� �f�¡�k�¢�‚�£�‡�¤�—�¢��¦�«�¨�¬�ª�·�š�Á�­����R����Â�������Â�è�é���¶�ê�ë��?�ƒ�ì�í��H�z�î�ï��W�`�ð�
                                      ��_�L�ñ�ò��f�E�ó�ô��	�õ�v��
                                    ���:�����»�Y·�ö*¶�÷±�������
                                    ! ����±��²���������è�é����ù����ú�û�����w�������‹�������™������
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 2,7 ****
                                      �����<init>	����	����	����	���	��LineNumberTable�LocalVariableTable
                                      ���this�
                                      SourceFile�AuthorTaglet.java�InnerClasses� �(gnu/classpath/tools/taglets/AuthorTaglet�EmailReplacement�!����������������������	������
                                    ! ������Y������)»�Y·�
                                    ³�»�Y·�
                                    ³�»�Y·�
                                    ³�»�Y·�
                                    ³�±�����������1�
                                    ! �8��?��H�(�+��������������/�����*·�±�����������,����������������������
                                      ����!�	
                                    \ No newline at end of file
                                    --- 2,7 ----
                                      �����<init>	����	����	����	���	��LineNumberTable�LocalVariableTable
                                      ���this�
                                      SourceFile�AuthorTaglet.java�InnerClasses� �(gnu/classpath/tools/taglets/AuthorTaglet�EmailReplacement�!����������������������	������
                                    ! ������Y������)»�Y·�
                                    ³�»�Y·�
                                    ³�»�Y·�
                                    ³�»�Y·�
                                    ³�±�����������B�
                                    ! �I��P��Y�(�<��������������/�����*·�±�����������=����������������������
                                      ����!�	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** SourceFile�AuthorTaglet.java�InnerCl
                                    *** 36,51 ****
                                      ��
                                    �������
                                      ��
                                    �������
                                      ��
                                    �����
                                    ! ����������������������������m������-²�³�$&³�(*³�,³�.0¸�2³�8:¸�2³�<>¸�2³�@±����B���&�	���K��L��M��S��X��]�$�c�)�b�,�%�C�������D������/�����*·�E±����B�������%�C��������G�H����I�J�����-�����°����B�������x�C��������G�H����K�L�����,�����¬����B�������|�C��������G�H����M�L�����,�����¬����B�������€�C��������G�H����N�L�����,�����¬����B�������„�C��������G�H����O�L�����,�����¬����B�������ˆ�C��������G�H����P�L�����,�����¬����B�������Œ�C��������G�H����Q�L�����,�����¬����B��������C��������G�H����R�L�����,�����¬����B�������”�C��������G�H���	�S�T�����Q�����»�Y·�UL*+¶�V+¹�X�W±����B�������˜��™��š�C��������^�_����
                                    �`�H���a�b�����Q�����²�.™�*½�cY+S¶�e°°����B���������ž��¡�C��������G�H������h�i���a�g����[�����§²�.™�+¾š�°=>§�+2¹�j�¶�mž�=„+¾¢�™ÿæ™�s»�sY·�uN-v¶�xW-|¶�xW+¾ �
                                    -¶�xW§�
                                    ! -¶�xW-~¶�xW6§�&-€¶�xW-*+2¹�j�·�‚¶�xW-†¶�xW„+¾¡ÿÙ-ˆ¶�xW-¶�Š°°����B���^����¦��§�
                                    �ª��«��¬�"�­�$�«�1�±�5�²�=�³�D�´�K�µ�Q�¶�[�¹�b�»�i�¼�o�½�v�¾�ˆ�¿��¼�™�Á� �Â�¥�Å�C���>����§�G�H�����§�Œ����˜�Ž���� ����=�h�‘�’��l�-�����„�…����€�����в�²�$¦�+°²�@+¶�“M,¶�—™�·,¶�œN,¶�œ:²� ²�$¦�#»�£Y¥·�§¶�ª­¶�ª-¶�ª¯¶�ª¶�±°²�²²�$¦�+»�£Y-¸�µ·�§¹¶�ª¶�ª­¶�ª¶�ª»¶�ª¶�±°²�½²�$¦�E²�8¶�“:²�<²�,¶�À¶�“:²�(¶�À:»�£Y-¸�µ·�§ö�ª¶�ªŶ�ª¶�±°+°+°����B���F����Ï�	�Ð��Ó��Ô��Õ� �Ö�'�×�0�Ø�P�Ú�Y�Û��Ý�Š�Þ�”�ß�¤�à�®�á�Ì�å�Î�é�C���R����Ð�G�H�����Ð�l�
                                      ���½�•�Ç�� �®�È�
                                      ��'�§�É�
                                      ��”�8�Ê�Ç��¤�(�Ë�Ç��®��Ì�
                                    ! ��	�Í�Î�����G�����*Ç�»�ÏY·�Ñ¿*³�$±����B�������ó��ô��ö��÷�C������������	�Ò�©�����3�����*³�(±����B���
                                    ! ������C��������	�
                                      ���	�Ó�©�����3�����*³�,±����B���
                                    ! ���
                                    ! ��C���������
                                      ���	�Ô�Õ�����3�����³�.±����B���
                                    ! �����C���������������������
                                      �� ���	
                                    \ No newline at end of file
                                    --- 36,50 ----
                                      ��
                                    �������
                                      ��
                                    �������
                                      ��
                                    �����
                                    ! ����������������������������m������-²�³�$&³�(*³�,³�.0¸�2³�8:¸�2³�<>¸�2³�@±����B���&�	���\��]��^��d��i��n�$�t�)�s�,�6�C�������D������/�����*·�E±����B�������6�C��������G�H����I�J�����-�����°����B�������‰�C��������G�H����K�L�����,�����¬����B��������C��������G�H����M�L�����,�����¬����B�������‘�C��������G�H����N�L�����,�����¬����B�������•�C��������G�H����O�L�����,�����¬����B�������™�C��������G�H����P�L�����,�����¬����B��������C��������G�H����Q�L�����,�����¬����B�������¡�C��������G�H����R�L�����,�����¬����B�������¥�C��������G�H���	�S�T�����Q�����»�Y·�UL*+¶�V+¹�X�W±����B�������©��ª��«�C��������^�_����
                                    �`�H���a�b�����Q�����²�.™�*½�cY+S¶�e°°����B�������®��¯��²�C��������G�H������h�i���a�g����[�����§²�.™�+¾š�°=>§�+2¹�j�¶�mž�=„+¾¢�™ÿæ™�s»�sY·�uN-v¶�xW-|¶�xW+¾ �
                                    -¶�xW§�
                                    ! -¶�xW-~¶�xW6§�&-€¶�xW-*+2¹�j�·�‚¶�xW-†¶�xW„+¾¡ÿÙ-ˆ¶�xW-¶�Š°°����B���^����·��¸�
                                    �»��¼��½�"�¾�$�¼�1�Â�5�Ã�=�Ä�D�Å�K�Æ�Q�Ç�[�Ê�b�Ì�i�Í�o�Î�v�Ï�ˆ�Ð��Í�™�Ò� �Ó�¥�Ö�C���>����§�G�H�����§�Œ����˜�Ž���� ����=�h�‘�’��l�-�����„�…����€�����в�²�$¦�+°²�@+¶�“M,¶�—™�·,¶�œN,¶�œ:²� ²�$¦�#»�£Y¥·�§¶�ª­¶�ª-¶�ª¯¶�ª¶�±°²�²²�$¦�+»�£Y-¸�µ·�§¹¶�ª¶�ª­¶�ª¶�ª»¶�ª¶�±°²�½²�$¦�E²�8¶�“:²�<²�,¶�À¶�“:²�(¶�À:»�£Y-¸�µ·�§ö�ª¶�ªŶ�ª¶�±°+°+°����B���F����à�	�á��ä��å��æ� �ç�'�è�0�é�P�ë�Y�ì��î�Š�ï�”�ð�¤�ñ�®�ò�Ì�ö�Î�ú�C���R����Ð�G�H�����Ð�l�
                                      ���½�•�Ç�� �®�È�
                                      ��'�§�É�
                                      ��”�8�Ê�Ç��¤�(�Ë�Ç��®��Ì�
                                    ! ��	�Í�Î�����G�����*Ç�»�ÏY·�Ñ¿*³�$±����B����������C������������	�Ò�©�����3�����*³�(±����B���
                                    ! �����C��������	�
                                      ���	�Ó�©�����3�����*³�,±����B���
                                    ! �����C���������
                                      ���	�Ô�Õ�����3�����³�.±����B���
                                    ! ���#�$�C���������������������
                                      �� ���	
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** inOverview�	inPackage�inType�isInli
                                    *** 5,9 ****
                                      �!�.�/�0�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�2�</code>
                                      �!�4���tag�Lcom/sun/javadoc/Tag;�*([Lcom/sun/javadoc/Tag;)Ljava/lang/String;�[Lcom/sun/javadoc/Tag;�
                                      SourceFile�CodeTaglet.java�!����������	����
                                    ! ����
                                    �����/�����*·�±�����������'��������������������-�����
                                    ! °�����������-��������������������,�����¬�����������1��������������������,�����¬�����������5��������������������,�����¬�����������9��������������������,�����¬�����������=��������������������,�����¬�����������A��������������������,�����¬�����������E��������������������,�����¬�����������I��������������� �����O�����»�!Y#·�%+¹�(�¶�-1¶�-¶�3°�����������M����������������5�6����7�����6�����°�����������Q����������������5�8���9����:
                                    \ No newline at end of file
                                    --- 5,9 ----
                                      �!�.�/�0�append�-(Ljava/lang/String;)Ljava/lang/StringBuilder;�2�</code>
                                      �!�4���tag�Lcom/sun/javadoc/Tag;�*([Lcom/sun/javadoc/Tag;)Ljava/lang/String;�[Lcom/sun/javadoc/Tag;�
                                      SourceFile�CodeTaglet.java�!����������	����
                                    ! ����
                                    �����/�����*·�±�����������8��������������������-�����
                                    ! °�����������>��������������������,�����¬�����������B��������������������,�����¬�����������F��������������������,�����¬�����������J��������������������,�����¬�����������N��������������������,�����¬�����������R��������������������,�����¬�����������V��������������������,�����¬�����������Z��������������� �����O�����»�!Y#·�%+¹�(�¶�-1¶�-¶�3°�����������^����������������5�6����7�����6�����°�����������b����������������5�8���9����:
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** inOverview�	inPackage�inType�isInli
                                    *** 13,17 ****
                                      �K�X�0��Z�</dl>
                                      �B�X�tags�[Lcom/sun/javadoc/Tag;�haveValidTag�Z�i�I�result�Ljava/lang/StringBuffer;�
                                      SourceFile�CopyrightTaglet.java�!����������	����
                                    ! �����	����
                                    ���������/�����*·�±����������� ��������������������-�����
                                    ! °�����������&��������������������,�����¬�����������*��������������������,�����¬�����������.��������������������,�����¬�����������2��������������������,�����¬�����������6��������������������,�����¬�����������:�������������� ������,�����¬�����������>��������������!������,�����¬�����������B�������������	�"�#�����Q�����»�Y·�$L*+¶�%+¹�'�W±�����������F��G��H���������-�.����
                                    �/����0�1�����A�����
                                    *½�2Y+S¶�4°�����������K��������
                                    �������
                                    �7�8���0�6����)�����+¾š�°=>§�+2¹�9�¶�<ž�=„+¾¢�™ÿæ™�_»�BY·�DN-E¶�GW6§�7+2¹�9�¶�<ž�%-»�KYM·�O+2¹�9�¶�RU¶�R¶�W¶�GW„+¾¡ÿÈ-Y¶�GW-¶�[°°�������F����O��P��S�	�T��U��V��T�+�Z�/�[�7�\�>�]�D�^�S�_�u�]��b�†�c�‹�f����>������������\�]��	�„�^�_��� �`�a��7�T�b�c��A�>�`�a���d����e
                                    \ No newline at end of file
                                    --- 13,17 ----
                                      �K�X�0��Z�</dl>
                                      �B�X�tags�[Lcom/sun/javadoc/Tag;�haveValidTag�Z�i�I�result�Ljava/lang/StringBuffer;�
                                      SourceFile�CopyrightTaglet.java�!����������	����
                                    ! �����	����
                                    ���������/�����*·�±�����������1��������������������-�����
                                    ! °�����������7��������������������,�����¬�����������;��������������������,�����¬�����������?��������������������,�����¬�����������C��������������������,�����¬�����������G��������������������,�����¬�����������K�������������� ������,�����¬�����������O��������������!������,�����¬�����������S�������������	�"�#�����Q�����»�Y·�$L*+¶�%+¹�'�W±�����������W��X��Y���������-�.����
                                    �/����0�1�����A�����
                                    *½�2Y+S¶�4°�����������\��������
                                    �������
                                    �7�8���0�6����)�����+¾š�°=>§�+2¹�9�¶�<ž�=„+¾¢�™ÿæ™�_»�BY·�DN-E¶�GW6§�7+2¹�9�¶�<ž�%-»�KYM·�O+2¹�9�¶�RU¶�R¶�W¶�GW„+¾¡ÿÈ-Y¶�GW-¶�[°°�������F����`��a��d�	�e��f��g��e�+�k�/�l�7�m�>�n�D�o�S�p�u�n��s�†�t�‹�w����>������������\�]��	�„�^�_��� �`�a��7�T�b�c��A�>�`�a���d����e
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** inOverview�	inPackage�inType�isInli
                                    *** 11,16 ****
                                      SourceFile�DeprecatedTaglet.java�!����������	����
                                      �����	����
                                    �
                                      �������������)������³�±�������
                                    ! ����'��"��������������/�����*·�±�����������"��������������������-�����
                                    ! °�����������*��������������� �����,�����¬�����������.��������������!� �����,�����¬�����������2��������������"� �����,�����¬�����������6��������������#� �����,�����¬�����������:��������������$� �����,�����¬�����������>��������������%� �����,�����¬�����������B��������������&� �����,�����¬�����������F�������������	�'�(�����Q�����»�Y·�)L*+¶�*+¹�,�W±�����������J��K��L���������2�3����
                                    �4����5�6�����Q�����²�™�*½�7Y+S¶�9°°�����������O��P��S����������������<�=���5�;�����â�����f²�™�+¾š�°»�>Y·�@M,A¶�CW,
                                    ¶�CW,G¶�CW,I¶�CW>§�!,K¶�CW,+2¹�M�¶�CW,P¶�CW„+¾¡ÿß,R¶�CW,¶�T°�������:����X��Y�
                                    �]��^��_�#�`�*�a�1�b�6�c�=�d�J�e�Q�b�Z�g�a�h����*����f�������f�V�W���Q�X�Y��3�'�Z�[��	�\�]�����3�����³�±�������
                                    ! ����q��r��������������^����_
                                    \ No newline at end of file
                                    --- 11,16 ----
                                      SourceFile�DeprecatedTaglet.java�!����������	����
                                      �����	����
                                    �
                                      �������������)������³�±�������
                                    ! ����8��3��������������/�����*·�±�����������3��������������������-�����
                                    ! °�����������;��������������� �����,�����¬�����������?��������������!� �����,�����¬�����������C��������������"� �����,�����¬�����������G��������������#� �����,�����¬�����������K��������������$� �����,�����¬�����������O��������������%� �����,�����¬�����������S��������������&� �����,�����¬�����������W�������������	�'�(�����Q�����»�Y·�)L*+¶�*+¹�,�W±�����������[��\��]���������2�3����
                                    �4����5�6�����Q�����²�™�*½�7Y+S¶�9°°�����������`��a��d����������������<�=���5�;�����â�����f²�™�+¾š�°»�>Y·�@M,A¶�CW,
                                    ¶�CW,G¶�CW,I¶�CW>§�!,K¶�CW,+2¹�M�¶�CW,P¶�CW„+¾¡ÿß,R¶�CW,¶�T°�������:����i��j�
                                    �n��o��p�#�q�*�r�1�s�6�t�=�u�J�v�Q�s�Z�x�a�y����*����f�������f�V�W���Q�X�Y��3�'�Z�[��	�\�]�����3�����³�±�������
                                    ! ����‚��ƒ��������������^����_
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** inOverview�	inPackage�inType�isInli
                                    *** 9,16 ****
                                      �Q�W�X�Y�append�,(Ljava/lang/String;)Ljava/lang/StringBuffer;�[�</div>�]�<dl class="classdoc-list">�_�<dt>�J�a�b�3�text�d�</dt>�f�</dl>
                                      �Q�h�H�3�tags�[Lcom/sun/javadoc/Tag;�result�Ljava/lang/StringBuffer;�i�I�setTagletEnabled�(Z)V�
                                      SourceFile�GenericTaglet.java�!�����	�������	�����
                                    ! ����������
                                    ������������������������
                                    ��������í��	���C*·�*µ�*µ�*µ� *+µ�*,µ�*µ�"*µ�$*µ�&*µ�(*µ�**µ�,±����.���6�
                                    ���0��$�
                                    ! �%��.��9��:��;�$�<�*�=�0�>�6�?�<�@�B�A�/���\�	���C�0�1�����C������C�	�����C�
                                    ! �����C������C�
                                    �����C������C������C�����2�3�����/�����*´�°����.�������D�/��������0�1����4�5�����/�����*´�,¬����.�������H�/��������0�1����6�5�����/�����*´�(¬����.�������L�/��������0�1����7�5�����/�����*´�*¬����.�������P�/��������0�1����8�5�����/�����*´�"¬����.�������T�/��������0�1����9�5�����/�����*´�$¬����.�������X�/��������0�1����:�5�����/�����*´�&¬����.�������\�/��������0�1����;�5�����,�����¬����.�������`�/��������0�1����<�=�����E�����
                                    +*¶�>*¹�@�W±����.���
                                    ! ����d��e�/�������
                                    �0�1�����
                                    �F�G���H�I�����R�����*´� ™�*½�JY+S¶�L°°����.�������h��i��l�/��������0�1������O�P���H�N�����å�����i*´� ™�+¾š�°»�QY·�SM,T¶�VW,*´�¶�VW,Z¶�VW,\¶�VW>§�!,^¶�VW,+2¹�`�¶�VW,c¶�VW„+¾¡ÿß,e¶�VW,¶�g°����.���:����q��r��v��w��x�&�y�-�z�4�{�9�|�@�}�M�~�T�{�]�€�d��/���*����i�0�1�����i�i�j���S�k�l��6�'�m�n���o�p�����>�����*µ� ±����.���
                                    ! ����Š��‹�/��������0�1����������q����r
                                    \ No newline at end of file
                                    --- 9,16 ----
                                      �Q�W�X�Y�append�,(Ljava/lang/String;)Ljava/lang/StringBuffer;�[�</div>�]�<dl class="classdoc-list">�_�<dt>�J�a�b�3�text�d�</dt>�f�</dl>
                                      �Q�h�H�3�tags�[Lcom/sun/javadoc/Tag;�result�Ljava/lang/StringBuffer;�i�I�setTagletEnabled�(Z)V�
                                      SourceFile�GenericTaglet.java�!�����	�������	�����
                                    ! ����������
                                    ������������������������
                                    ��������í��	���C*·�*µ�*µ�*µ� *+µ�*,µ�*µ�"*µ�$*µ�&*µ�(*µ�**µ�,±����.���6�
                                    ���A��5�
                                    ! �6��?��J��K��L�$�M�*�N�0�O�6�P�<�Q�B�R�/���\�	���C�0�1�����C������C�	�����C�
                                    ! �����C������C�
                                    �����C������C������C�����2�3�����/�����*´�°����.�������U�/��������0�1����4�5�����/�����*´�,¬����.�������Y�/��������0�1����6�5�����/�����*´�(¬����.�������]�/��������0�1����7�5�����/�����*´�*¬����.�������a�/��������0�1����8�5�����/�����*´�"¬����.�������e�/��������0�1����9�5�����/�����*´�$¬����.�������i�/��������0�1����:�5�����/�����*´�&¬����.�������m�/��������0�1����;�5�����,�����¬����.�������q�/��������0�1����<�=�����E�����
                                    +*¶�>*¹�@�W±����.���
                                    ! ����u��v�/�������
                                    �0�1�����
                                    �F�G���H�I�����R�����*´� ™�*½�JY+S¶�L°°����.�������y��z��}�/��������0�1������O�P���H�N�����å�����i*´� ™�+¾š�°»�QY·�SM,T¶�VW,*´�¶�VW,Z¶�VW,\¶�VW>§�!,^¶�VW,+2¹�`�¶�VW,c¶�VW„+¾¡ÿß,e¶�VW,¶�g°����.���:����‚��ƒ��‡��ˆ��‰�&�Š�-�‹�4�Œ�9��@�Ž�M��T�Œ�]�‘�d�’�/���*����i�0�1�����i�i�j���S�k�l��6�'�m�n���o�p�����>�����*µ� ±����.���
                                    ! ����›��œ�/��������0�1����������q����r
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** inlineTags�()[Lcom/sun/javadoc/Tag;�Z
                                    *** 11,19 ****
                                      SourceFile�SinceTaglet.java�!����������	����
                                      �����	����
                                    �
                                      ������������������)������³�±�������
                                    ! ����)��$��������������F�����
                                    ! *·�*+µ�±�����������-��/�	�0��������
                                      � �!�����
                                      �����"�#�����-�����
                                    ! °�����������3��������� �!����$�%�����,�����¬�����������7��������� �!����&�%�����,�����¬�����������;��������� �!����'�%�����,�����¬�����������?��������� �!����(�%�����,�����¬�����������C��������� �!����)�%�����,�����¬�����������G��������� �!����*�%�����,�����¬�����������K��������� �!����+�%�����,�����¬�����������O��������� �!����,�-�����Q�����²�™�*½�.Y+S¶�0°°�����������T��U��X��������� �!������3�4���,�2�����;�����*+¶�5°�����������^��������� �!������8�9���,�:�����@�����°�����������c���� ����� �!������3�4�����;�<���,�7����s�����¹²�™�+¾š�°>6§�+2¹�=�¶�@ž�>„+¾¢�™ÿä™�‚»�FY·�H:I¶�KWO¶�KW
                                    ¶�KWQ¶�KW6§�>+2¹�=�¶�@ž�,S¶�KW*´�+2¹�U�,¹�Y�¶�KW^¶�KW„+¾¡ÿÁ`¶�KW¶�b°°�������Z����h��i�
                                    �l��m��n�$�o�&�m�4�s�8�t�A�u�I�v�Q�w�Y�x�a�y�g�z�v�{�~�|�—�}�Ÿ�y�©�€�±��·�„����H����¹� �!�����¹�8�9����¹�;�<���ª�d����"�e�f��A�v�g�h��d�E�e�f��	�i�j�����3�����³�±�������
                                    ! ����Ž����������������k����l
                                    \ No newline at end of file
                                    --- 11,19 ----
                                      SourceFile�SinceTaglet.java�!����������	����
                                      �����	����
                                    �
                                      ������������������)������³�±�������
                                    ! ����:��5��������������F�����
                                    ! *·�*+µ�±�����������>��@�	�A��������
                                      � �!�����
                                      �����"�#�����-�����
                                    ! °�����������D��������� �!����$�%�����,�����¬�����������H��������� �!����&�%�����,�����¬�����������L��������� �!����'�%�����,�����¬�����������P��������� �!����(�%�����,�����¬�����������T��������� �!����)�%�����,�����¬�����������X��������� �!����*�%�����,�����¬�����������\��������� �!����+�%�����,�����¬�����������`��������� �!����,�-�����Q�����²�™�*½�.Y+S¶�0°°�����������e��f��i��������� �!������3�4���,�2�����;�����*+¶�5°�����������o��������� �!������8�9���,�:�����@�����°�����������t���� ����� �!������3�4�����;�<���,�7����s�����¹²�™�+¾š�°>6§�+2¹�=�¶�@ž�>„+¾¢�™ÿä™�‚»�FY·�H:I¶�KWO¶�KW
                                    ¶�KWQ¶�KW6§�>+2¹�=�¶�@ž�,S¶�KW*´�+2¹�U�,¹�Y�¶�KW^¶�KW„+¾¡ÿÁ`¶�KW¶�b°°�������Z����y��z�
                                    �}��~���$�€�&�~�4�„�8�…�A�†�I�‡�Q�ˆ�Y�‰�a�Š�g�‹�v�Œ�~��—�Ž�Ÿ�Š�©�‘�±�’�·�•����H����¹� �!�����¹�8�9����¹�;�<���ª�d����"�e�f��A�v�g�h��d�E�e�f��	�i�j�����3�����³�±�������
                                    ! ����Ÿ�� ��������������k����l
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 6,11 ****
                                      ��(���
                                      SourceFile�TagletContext.java�!����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±�����������	���	���������
                                      �������
                                    ! ��������	���/�����*´�
                                    °����������������������������	���C�����»�Y·�*´�
                                    ¶�"¶�$¶�'°�������������������������)����*
                                    \ No newline at end of file
                                    --- 6,11 ----
                                      ��(���
                                      SourceFile�TagletContext.java�!����������������	���F�����
                                      *·�
                                    ! *+µ�
                                    ±�����������.��0�	�1��������
                                      �������
                                    ! ��������	���/�����*´�
                                    °�����������5�����������������	���C�����»�Y·�*´�
                                    ¶�"¶�$¶�'°�����������:��������������)����*
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** inOverview�	inPackage�inType�isInli
                                    *** 6,11 ****
                                      inlineTags�()[Lcom/sun/javadoc/Tag;
                                      �9�;�:�)gnu/classpath/tools/taglets/TagletContext�<�=�getDoc�()Lcom/sun/javadoc/Doc;�?�A�@�com/sun/javadoc/Doc�B��isField�D�com/sun/javadoc/FieldDoc�C�F�G��isStatic�C�I�J��isFinal�C�L�M��constantValueExpression�O�com/sun/javadoc/SeeTag�N�Q�R�S�referencedMember�()Lcom/sun/javadoc/MemberDoc;�U�A�V�com/sun/javadoc/MemberDoc�X���context�+Lgnu/classpath/tools/taglets/TagletContext;�fieldDoc�Lcom/sun/javadoc/FieldDoc;�Lcom/sun/javadoc/MemberDoc;�*([Lcom/sun/javadoc/Tag;)Ljava/lang/String;�tags�[Lcom/sun/javadoc/Tag;�U([Lcom/sun/javadoc/Tag;Lgnu/classpath/tools/taglets/TagletContext;)Ljava/lang/String;�
                                      SourceFile�ValueTaglet.java�!����������	����
                                    ! ����
                                    �����/�����*·�±�����������&��������������������-�����
                                    ! °�����������,��������������������,�����¬�����������0��������������������,�����¬�����������4��������������������,�����¬�����������8��������������������,�����¬�����������<��������������������,�����¬�����������@��������������������,�����¬�����������D��������������������,�����¬�����������H�������������	�� �����Q�����»�Y·�!L*+¶�"+¹�$�W±�����������L��M��N���������*�+����
                                    �,����-�.�����6�����°�����������Q����������������/�0���-�1�����÷�����s+¹�2�¾š�0,¶�8¹�>�™�],¶�8À�CN-¹�E�™�L-¹�H�™�C-¹�K�°+À�N¹�P�N-Æ�.-¹�T�™�%-À�C:¹�E�™�¹�H�™�¹�K�°W°�������.����U�
                                    ! �V��W��X�0�Y�7�^�A�_�N�`�T�a�h�b�p�f����>����s�������s�/�0����s�Y�Z����[�\��A�/�R�]��T��[�\���-�^�����6�����°�����������j����������������_�`���-�a�����@�����°�����������n���� ������������_�`�����Y�Z���b����c
                                    \ No newline at end of file
                                    --- 6,11 ----
                                      inlineTags�()[Lcom/sun/javadoc/Tag;
                                      �9�;�:�)gnu/classpath/tools/taglets/TagletContext�<�=�getDoc�()Lcom/sun/javadoc/Doc;�?�A�@�com/sun/javadoc/Doc�B��isField�D�com/sun/javadoc/FieldDoc�C�F�G��isStatic�C�I�J��isFinal�C�L�M��constantValueExpression�O�com/sun/javadoc/SeeTag�N�Q�R�S�referencedMember�()Lcom/sun/javadoc/MemberDoc;�U�A�V�com/sun/javadoc/MemberDoc�X���context�+Lgnu/classpath/tools/taglets/TagletContext;�fieldDoc�Lcom/sun/javadoc/FieldDoc;�Lcom/sun/javadoc/MemberDoc;�*([Lcom/sun/javadoc/Tag;)Ljava/lang/String;�tags�[Lcom/sun/javadoc/Tag;�U([Lcom/sun/javadoc/Tag;Lgnu/classpath/tools/taglets/TagletContext;)Ljava/lang/String;�
                                      SourceFile�ValueTaglet.java�!����������	����
                                    ! ����
                                    �����/�����*·�±�����������7��������������������-�����
                                    ! °�����������=��������������������,�����¬�����������A��������������������,�����¬�����������E��������������������,�����¬�����������I��������������������,�����¬�����������M��������������������,�����¬�����������Q��������������������,�����¬�����������U��������������������,�����¬�����������Y�������������	�� �����Q�����»�Y·�!L*+¶�"+¹�$�W±�����������]��^��_���������*�+����
                                    �,����-�.�����6�����°�����������b����������������/�0���-�1�����÷�����s+¹�2�¾š�0,¶�8¹�>�™�],¶�8À�CN-¹�E�™�L-¹�H�™�C-¹�K�°+À�N¹�P�N-Æ�.-¹�T�™�%-À�C:¹�E�™�¹�H�™�¹�K�°W°�������.����f�
                                    ! �g��h��i�0�j�7�o�A�p�N�q�T�r�h�s�p�w����>����s�������s�/�0����s�Y�Z����[�\��A�/�R�]��T��[�\���-�^�����6�����°�����������{����������������_�`���-�a�����@�����°��������������� ������������_�`�����Y�Z���b����c
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class
                                    *** gcc-4.5.2/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class	Tue Oct 12 15:55:12 2010
                                    *************** firstEntry�setTagletEnabled�(Z)V�
                                    *** 12,17 ****
                                      SourceFile�VersionTaglet.java�!����������	����
                                      �����	����
                                    �
                                      �������������)������³�±�������
                                    ! ����'��"��������������/�����*·�±�����������"��������������������-�����
                                    ! °�����������*��������������� �����,�����¬�����������.��������������!� �����,�����¬�����������2��������������"� �����,�����¬�����������6��������������#� �����,�����¬�����������:��������������$� �����,�����¬�����������>��������������%� �����,�����¬�����������B��������������&� �����,�����¬�����������F�������������	�'�(�����Q�����»�Y·�)L*+¶�*+¹�,�W±�����������J��K��L���������2�3����
                                    �4����5�6�����Q�����²�™�*½�7Y+S¶�9°°�����������O��P��S����������������<�=���5�;���������·²�™�+¾š�°=>§�+2¹�>�¶�Až�=„+¾¢�™ÿæ™�ƒ»�GY·�IN-J¶�LW-P¶�LW-R¶�LW-
                                    ¶�LW-T¶�LW66§�5+2¹�>�¶�Až�#š�
                                    -V¶�LW§�6-+2¹�>�¶�LW„+¾¡ÿÊ-X¶�LW-P¶�LW-¶�Z°°�������j����X��Y�
                                    �\��]��^�"�_�$�]�1�c�5�e�=�f�D�g�K�h�R�i�Y�j�`�k�c�l�i�m�x�n�}�o�‡�r�Š�t�˜�l�¢�w�©�x�°�y�µ�|����H����·�������·�\�]���¨�^���� �_�`��=�x�a�b��c�R�c���f�<�_�`��	�d�e�����3�����³�±�������
                                    ! ����†��‡��������������f����g
                                    \ No newline at end of file
                                    --- 12,17 ----
                                      SourceFile�VersionTaglet.java�!����������	����
                                      �����	����
                                    �
                                      �������������)������³�±�������
                                    ! ����8��3��������������/�����*·�±�����������3��������������������-�����
                                    ! °�����������;��������������� �����,�����¬�����������?��������������!� �����,�����¬�����������C��������������"� �����,�����¬�����������G��������������#� �����,�����¬�����������K��������������$� �����,�����¬�����������O��������������%� �����,�����¬�����������S��������������&� �����,�����¬�����������W�������������	�'�(�����Q�����»�Y·�)L*+¶�*+¹�,�W±�����������[��\��]���������2�3����
                                    �4����5�6�����Q�����²�™�*½�7Y+S¶�9°°�����������`��a��d����������������<�=���5�;���������·²�™�+¾š�°=>§�+2¹�>�¶�Až�=„+¾¢�™ÿæ™�ƒ»�GY·�IN-J¶�LW-P¶�LW-R¶�LW-
                                    ¶�LW-T¶�LW66§�5+2¹�>�¶�Až�#š�
                                    -V¶�LW§�6-+2¹�>�¶�LW„+¾¡ÿÊ-X¶�LW-P¶�LW-¶�Z°°�������j����i��j�
                                    �m��n��o�"�p�$�n�1�t�5�v�=�w�D�x�K�y�R�z�Y�{�`�|�c�}�i�~�x��}�€�‡�ƒ�Š�…�˜�}�¢�ˆ�©�‰�°�Š�µ�����H����·�������·�\�]���¨�^���� �_�`��=�x�a�b��c�R�c���f�<�_�`��	�d�e�����3�����³�±�������
                                    ! ����—��˜��������������f����g
                                    \ No newline at end of file
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ClassDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ClassDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ClassDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ClassDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** TypeVariable[]
                                    *** 319,322 ****
                                      typeParameters();
                                      
                                      } // interface ClassDoc
                                    - 
                                    --- 319,321 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ConstructorDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ConstructorDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ConstructorDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ConstructorDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract String
                                    *** 54,57 ****
                                      qualifiedName();
                                      
                                      } // interface ConstructorDoc
                                    - 
                                    --- 54,56 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Doc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Doc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Doc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Doc.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract SourcePosition
                                    *** 262,265 ****
                                      position();
                                      
                                      } // interface Doc
                                    - 
                                    --- 262,264 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/DocErrorReporter.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/DocErrorReporter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/DocErrorReporter.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/DocErrorReporter.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract void
                                    *** 74,77 ****
                                      printNotice(String notice);
                                      
                                      } // interface DocErrorReporter
                                    - 
                                    --- 74,76 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Doclet.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Doclet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Doclet.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Doclet.java	Tue Jan 11 19:46:05 2011
                                    *************** validOptions(String[][] opts, DocErrorRe
                                    *** 96,99 ****
                                      }
                                      
                                      } // class Doclet
                                    - 
                                    --- 96,98 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract String
                                    *** 135,138 ****
                                      flatSignature();
                                      
                                      } // interface ExecutableMemberDoc
                                    - 
                                    --- 135,137 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/FieldDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/FieldDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/FieldDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/FieldDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** constantValueExpression();
                                    *** 110,113 ****
                                      
                                      
                                      } // interface FieldDoc
                                    - 
                                    --- 110,112 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/MemberDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/MemberDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/MemberDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/MemberDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract boolean
                                    *** 57,60 ****
                                      isSynthetic();
                                      
                                      } // interface MemberDoc
                                    - 
                                    --- 57,59 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/MethodDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/MethodDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/MethodDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/MethodDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract ClassDoc
                                    *** 77,80 ****
                                      overriddenClass();
                                      
                                      } // interface MethodDoc
                                    - 
                                    --- 77,79 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/PackageDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/PackageDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/PackageDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/PackageDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract ClassDoc
                                    *** 106,109 ****
                                      findClass(String cls);
                                      
                                      } // interface PackageDoc
                                    - 
                                    --- 106,108 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ParamTag.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ParamTag.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ParamTag.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ParamTag.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract String
                                    *** 63,66 ****
                                      parameterName();
                                      
                                      } // interface ParamTag
                                    - 
                                    --- 63,65 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Parameter.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Parameter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Parameter.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Parameter.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract String
                                    *** 85,88 ****
                                      toString();
                                      
                                      } // interaface Parameter
                                    - 
                                    --- 85,87 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ProgramElementDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ProgramElementDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ProgramElementDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ProgramElementDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract boolean
                                    *** 167,170 ****
                                      isFinal();
                                      
                                      } // interface ProgramElementDoc
                                    - 
                                    --- 167,169 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/RootDoc.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/RootDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/RootDoc.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/RootDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface RootDoc extends Doc, Do
                                    *** 48,54 ****
                                        /**
                                         * This method returns the command line element used to invoke this instance
                                         * of javadoc.
                                    !    * 
                                         * @return The command line arguments for this run.
                                         */
                                        public abstract String[][] options();
                                    --- 48,54 ----
                                        /**
                                         * This method returns the command line element used to invoke this instance
                                         * of javadoc.
                                    !    *
                                         * @return The command line arguments for this run.
                                         */
                                        public abstract String[][] options();
                                    *************** public interface RootDoc extends Doc, Do
                                    *** 58,64 ****
                                        /**
                                         * This method returns the list of packages that were specified on the command
                                         * line.
                                    !    * 
                                         * @return The packages specified on the command line.
                                         */
                                        public abstract PackageDoc[] specifiedPackages();
                                    --- 58,64 ----
                                        /**
                                         * This method returns the list of packages that were specified on the command
                                         * line.
                                    !    *
                                         * @return The packages specified on the command line.
                                         */
                                        public abstract PackageDoc[] specifiedPackages();
                                    *************** public interface RootDoc extends Doc, Do
                                    *** 68,74 ****
                                        /**
                                         * This method returns the list of classes that were specified on the command
                                         * line.
                                    !    * 
                                         * @return The classes specified on the command line.
                                         */
                                        public abstract ClassDoc[] specifiedClasses();
                                    --- 68,74 ----
                                        /**
                                         * This method returns the list of classes that were specified on the command
                                         * line.
                                    !    *
                                         * @return The classes specified on the command line.
                                         */
                                        public abstract ClassDoc[] specifiedClasses();
                                    *************** public interface RootDoc extends Doc, Do
                                    *** 77,83 ****
                                      
                                        /**
                                         * This method returns the list of classes and interfaces to be documented.
                                    !    * 
                                         * @return The list of classes and interfaces to be documented.
                                         */
                                        public abstract ClassDoc[] classes();
                                    --- 77,83 ----
                                      
                                        /**
                                         * This method returns the list of classes and interfaces to be documented.
                                    !    *
                                         * @return The list of classes and interfaces to be documented.
                                         */
                                        public abstract ClassDoc[] classes();
                                    *************** public interface RootDoc extends Doc, Do
                                    *** 87,93 ****
                                        /**
                                         * This method returns a <code>ClassDoc</code> instance for the name class
                                         * or interface.
                                    !    * 
                                         * @param name
                                         *          The class or interface to look up.
                                         * @return The requested <code>ClassDoc</code>, or null if the specified
                                    --- 87,93 ----
                                        /**
                                         * This method returns a <code>ClassDoc</code> instance for the name class
                                         * or interface.
                                    !    *
                                         * @param name
                                         *          The class or interface to look up.
                                         * @return The requested <code>ClassDoc</code>, or null if the specified
                                    *************** public interface RootDoc extends Doc, Do
                                    *** 100,106 ****
                                        /**
                                         * This method returns a <code>PackageDoc</code> instance for the named
                                         * package.
                                    !    * 
                                         * @param name
                                         *          The package to look up.
                                         * @return The requested <code>PackageDoc</code>, or null if the specified
                                    --- 100,106 ----
                                        /**
                                         * This method returns a <code>PackageDoc</code> instance for the named
                                         * package.
                                    !    *
                                         * @param name
                                         *          The package to look up.
                                         * @return The requested <code>PackageDoc</code>, or null if the specified
                                    *************** public interface RootDoc extends Doc, Do
                                    *** 109,112 ****
                                        public abstract PackageDoc packageNamed(String name);
                                      
                                      } // interface RootDoc
                                    - 
                                    --- 109,111 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/SeeTag.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/SeeTag.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/SeeTag.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/SeeTag.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract MemberDoc
                                    *** 106,109 ****
                                      referencedMember();
                                      
                                      } // interface SeeTag
                                    - 
                                    --- 106,108 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/SerialFieldTag.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/SerialFieldTag.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/SerialFieldTag.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/SerialFieldTag.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract int
                                    *** 99,102 ****
                                      compareTo(Object obj);
                                      
                                      } // interface SerialFieldTag
                                    - 
                                    --- 99,101 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Tag.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Tag.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Tag.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Tag.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract Tag[]
                                    *** 104,107 ****
                                      firstSentenceTags();
                                      
                                      } // interface Tag
                                    - 
                                    --- 104,106 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ThrowsTag.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ThrowsTag.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/ThrowsTag.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/ThrowsTag.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract ClassDoc
                                    *** 73,76 ****
                                      exception();
                                      
                                      } // interface ThrowsTag
                                    - 
                                    --- 73,75 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Type.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Type.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/Type.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/Type.java	Tue Jan 11 19:46:05 2011
                                    *************** TypeVariable
                                    *** 117,120 ****
                                      asTypeVariable();
                                      
                                      } // interface Type
                                    - 
                                    --- 117,119 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/TypeVariable.java gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/TypeVariable.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/javadoc/TypeVariable.java	Tue Mar 13 05:48:03 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/javadoc/TypeVariable.java	Tue Jan 11 19:46:05 2011
                                    *************** package com.sun.javadoc;
                                    *** 48,55 ****
                                       *
                                       * @since 1.5
                                       * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
                                    !  */ 
                                    ! public interface TypeVariable 
                                        extends Type
                                      {
                                      
                                    --- 48,55 ----
                                       *
                                       * @since 1.5
                                       * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
                                    !  */
                                    ! public interface TypeVariable
                                        extends Type
                                      {
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/tools/javadoc/Main.java gcc-4.6.0/libjava/classpath/tools/com/sun/tools/javadoc/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/tools/javadoc/Main.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/tools/javadoc/Main.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,9 ****
                                      package com.sun.tools.javadoc;
                                      
                                      public class Main
                                      {
                                    ! 	 public static void main(String[] args)
                                    ! 	 {
                                    ! 	 	gnu.classpath.tools.gjdoc.Main.main(args);
                                    ! 	 }
                                      }
                                    --- 1,46 ----
                                    + /* com.sun.tools.javadoc.Main - Main wrapper for GJDoc
                                    +    Copyright (C) 2007 Free Software Foundation, Inc.
                                    + 
                                    + This file is part of GNU Classpath.
                                    + 
                                    + GNU Classpath is free software; you can redistribute it and/or modify
                                    + it under the terms of the GNU General Public License as published by
                                    + the Free Software Foundation; either version 2, or (at your option)
                                    + any later version.
                                    + 
                                    + GNU Classpath 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 for more details.
                                    + 
                                    + You should have received a copy of the GNU General Public License
                                    + along with GNU Classpath; see the file COPYING.  If not, write to the
                                    + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    + 02111-1307 USA.
                                    + 
                                    + Linking this library statically or dynamically with other modules is
                                    + making a combined work based on this library.  Thus, the terms and
                                    + conditions of the GNU General Public License cover the whole
                                    + combination.
                                    + 
                                    + As a special exception, the copyright holders of this library give you
                                    + permission to link this library with independent modules to produce an
                                    + executable, regardless of the license terms of these independent
                                    + modules, and to copy and distribute the resulting executable under
                                    + terms of your choice, provided that you also meet, for each linked
                                    + independent module, the terms and conditions of the license of that
                                    + module.  An independent module is a module which is not derived from
                                    + or based on this library.  If you modify this library, you may extend
                                    + this exception to your version of the library, but you are not
                                    + obligated to do so.  If you do not wish to do so, delete this
                                    + exception statement from your version. */
                                    + 
                                      package com.sun.tools.javadoc;
                                      
                                      public class Main
                                      {
                                    !          public static void main(String[] args)
                                    !          {
                                    !                 gnu.classpath.tools.gjdoc.Main.main(args);
                                    !          }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/com/sun/tools/javah/Main.java gcc-4.6.0/libjava/classpath/tools/com/sun/tools/javah/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/com/sun/tools/javah/Main.java	Fri Jul 27 22:49:25 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/com/sun/tools/javah/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Main
                                    *** 47,58 ****
                                        {
                                          try
                                            {
                                    ! 	gnu.classpath.tools.javah.Main.main(args);
                                            }
                                          catch (IOException e)
                                            {
                                    ! 	throw new IllegalArgumentException("An I/O error occurred " +
                                    ! 					   "in executing javah", e);
                                            }
                                        }
                                      }
                                    --- 47,58 ----
                                        {
                                          try
                                            {
                                    !         gnu.classpath.tools.javah.Main.main(args);
                                            }
                                          catch (IOException e)
                                            {
                                    !         throw new IllegalArgumentException("An I/O error occurred " +
                                    !                                            "in executing javah", e);
                                            }
                                        }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 31,37 ****
                                      
                                      /**
                                       * A visitor to visit a Java annotation. The methods of this interface must be
                                    !  * called in the following order: (<tt>visit<tt> | <tt>visitEnum<tt> | 
                                       * <tt>visitAnnotation<tt> | <tt>visitArray<tt>)* <tt>visitEnd<tt>.
                                       *
                                       * @author Eric Bruneton
                                    --- 31,37 ----
                                      
                                      /**
                                       * A visitor to visit a Java annotation. The methods of this interface must be
                                    !  * called in the following order: (<tt>visit<tt> | <tt>visitEnum<tt> |
                                       * <tt>visitAnnotation<tt> | <tt>visitArray<tt>)* <tt>visitEnd<tt>.
                                       *
                                       * @author Eric Bruneton
                                    *************** public interface AnnotationVisitor {
                                    *** 41,47 ****
                                      
                                          /**
                                           * Visits a primitive value of the annotation.
                                    !      * 
                                           * @param name the value name.
                                           * @param value the actual value, whose type must be {@link Byte},
                                           *        {@link Boolean}, {@link Character}, {@link Short},
                                    --- 41,47 ----
                                      
                                          /**
                                           * Visits a primitive value of the annotation.
                                    !      *
                                           * @param name the value name.
                                           * @param value the actual value, whose type must be {@link Byte},
                                           *        {@link Boolean}, {@link Character}, {@link Short},
                                    *************** public interface AnnotationVisitor {
                                    *** 52,58 ****
                                      
                                          /**
                                           * Visits an enumeration value of the annotation.
                                    !      * 
                                           * @param name the value name.
                                           * @param desc the class descriptor of the enumeration class.
                                           * @param value the actual enumeration value.
                                    --- 52,58 ----
                                      
                                          /**
                                           * Visits an enumeration value of the annotation.
                                    !      *
                                           * @param name the value name.
                                           * @param desc the class descriptor of the enumeration class.
                                           * @param value the actual enumeration value.
                                    *************** public interface AnnotationVisitor {
                                    *** 61,67 ****
                                      
                                          /**
                                           * Visits a nested annotation value of the annotation.
                                    !      * 
                                           * @param name the value name.
                                           * @param desc the class descriptor of the nested annotation class.
                                           * @return a non null visitor to visit the actual nested annotation value.
                                    --- 61,67 ----
                                      
                                          /**
                                           * Visits a nested annotation value of the annotation.
                                    !      *
                                           * @param name the value name.
                                           * @param desc the class descriptor of the nested annotation class.
                                           * @return a non null visitor to visit the actual nested annotation value.
                                    *************** public interface AnnotationVisitor {
                                    *** 72,78 ****
                                      
                                          /**
                                           * Visits an array value of the annotation.
                                    !      * 
                                           * @param name the value name.
                                           * @return a non null visitor to visit the actual array value elements. The
                                           *         'name' parameters passed to the methods of this visitor are
                                    --- 72,78 ----
                                      
                                          /**
                                           * Visits an array value of the annotation.
                                    !      *
                                           * @param name the value name.
                                           * @return a non null visitor to visit the actual array value elements. The
                                           *         'name' parameters passed to the methods of this visitor are
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 31,37 ****
                                      
                                      /**
                                       * An {@link AnnotationVisitor} that generates annotations in bytecode form.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    --- 31,37 ----
                                      
                                      /**
                                       * An {@link AnnotationVisitor} that generates annotations in bytecode form.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    *************** final class AnnotationWriter implements 
                                    *** 48,54 ****
                                          private int size;
                                      
                                          /**
                                    !      * <tt>true<tt> if values are named, <tt>false</tt> otherwise. Annotation 
                                           * writers used for annotation default and annotation arrays use unnamed
                                           * values.
                                           */
                                    --- 48,54 ----
                                          private int size;
                                      
                                          /**
                                    !      * <tt>true<tt> if values are named, <tt>false</tt> otherwise. Annotation
                                           * writers used for annotation default and annotation arrays use unnamed
                                           * values.
                                           */
                                    *************** final class AnnotationWriter implements 
                                    *** 89,100 ****
                                      
                                          /**
                                           * Constructs a new {@link AnnotationWriter}.
                                    !      * 
                                           * @param cw the class writer to which this annotation must be added.
                                           * @param named <tt>true<tt> if values are named, <tt>false</tt> otherwise.
                                           * @param bv where the annotation values must be stored.
                                           * @param parent where the number of annotation values must be stored.
                                    !      * @param offset where in <tt>parent</tt> the number of annotation values must 
                                           *      be stored.
                                           */
                                          AnnotationWriter(
                                    --- 89,100 ----
                                      
                                          /**
                                           * Constructs a new {@link AnnotationWriter}.
                                    !      *
                                           * @param cw the class writer to which this annotation must be added.
                                           * @param named <tt>true<tt> if values are named, <tt>false</tt> otherwise.
                                           * @param bv where the annotation values must be stored.
                                           * @param parent where the number of annotation values must be stored.
                                    !      * @param offset where in <tt>parent</tt> the number of annotation values must
                                           *      be stored.
                                           */
                                          AnnotationWriter(
                                    *************** final class AnnotationWriter implements 
                                    *** 236,242 ****
                                      
                                          /**
                                           * Returns the size of this annotation writer list.
                                    !      * 
                                           * @return the size of this annotation writer list.
                                           */
                                          int getSize() {
                                    --- 236,242 ----
                                      
                                          /**
                                           * Returns the size of this annotation writer list.
                                    !      *
                                           * @return the size of this annotation writer list.
                                           */
                                          int getSize() {
                                    *************** final class AnnotationWriter implements 
                                    *** 252,258 ****
                                          /**
                                           * Puts the annotations of this annotation writer list into the given byte
                                           * vector.
                                    !      * 
                                           * @param out where the annotations must be put.
                                           */
                                          void put(final ByteVector out) {
                                    --- 252,258 ----
                                          /**
                                           * Puts the annotations of this annotation writer list into the given byte
                                           * vector.
                                    !      *
                                           * @param out where the annotations must be put.
                                           */
                                          void put(final ByteVector out) {
                                    *************** final class AnnotationWriter implements 
                                    *** 279,285 ****
                                      
                                          /**
                                           * Puts the given annotation lists into the given byte vector.
                                    !      * 
                                           * @param panns an array of annotation writer lists.
                                           * @param out where the annotations must be put.
                                           */
                                    --- 279,285 ----
                                      
                                          /**
                                           * Puts the given annotation lists into the given byte vector.
                                    !      *
                                           * @param panns an array of annotation writer lists.
                                           * @param out where the annotations must be put.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 31,37 ****
                                      
                                      /**
                                       * A non standard class, field, method or code attribute.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    --- 31,37 ----
                                      
                                      /**
                                       * A non standard class, field, method or code attribute.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    *************** public class Attribute {
                                    *** 46,52 ****
                                           * The raw value of this attribute, used only for unknown attributes.
                                           */
                                          byte[] value;
                                    !     
                                          /**
                                           * The next attribute in this attribute list. May be <tt>null</tt>.
                                           */
                                    --- 46,52 ----
                                           * The raw value of this attribute, used only for unknown attributes.
                                           */
                                          byte[] value;
                                    ! 
                                          /**
                                           * The next attribute in this attribute list. May be <tt>null</tt>.
                                           */
                                    *************** public class Attribute {
                                    *** 54,60 ****
                                      
                                          /**
                                           * Constructs a new empty attribute.
                                    !      * 
                                           * @param type the type of the attribute.
                                           */
                                          protected Attribute(final String type) {
                                    --- 54,60 ----
                                      
                                          /**
                                           * Constructs a new empty attribute.
                                    !      *
                                           * @param type the type of the attribute.
                                           */
                                          protected Attribute(final String type) {
                                    *************** public class Attribute {
                                    *** 64,70 ****
                                          /**
                                           * Returns <tt>true</tt> if this type of attribute is unknown. The default
                                           * implementation of this method always returns <tt>true</tt>.
                                    !      * 
                                           * @return <tt>true</tt> if this type of attribute is unknown.
                                           */
                                          public boolean isUnknown() {
                                    --- 64,70 ----
                                          /**
                                           * Returns <tt>true</tt> if this type of attribute is unknown. The default
                                           * implementation of this method always returns <tt>true</tt>.
                                    !      *
                                           * @return <tt>true</tt> if this type of attribute is unknown.
                                           */
                                          public boolean isUnknown() {
                                    *************** public class Attribute {
                                    *** 73,79 ****
                                      
                                          /**
                                           * Returns <tt>true</tt> if this type of attribute is a code attribute.
                                    !      * 
                                           * @return <tt>true</tt> if this type of attribute is a code attribute.
                                           */
                                          public boolean isCodeAttribute() {
                                    --- 73,79 ----
                                      
                                          /**
                                           * Returns <tt>true</tt> if this type of attribute is a code attribute.
                                    !      *
                                           * @return <tt>true</tt> if this type of attribute is a code attribute.
                                           */
                                          public boolean isCodeAttribute() {
                                    *************** public class Attribute {
                                    *** 82,88 ****
                                      
                                          /**
                                           * Returns the labels corresponding to this attribute.
                                    !      * 
                                           * @return the labels corresponding to this attribute, or <tt>null</tt> if
                                           *         this attribute is not a code attribute that contains labels.
                                           */
                                    --- 82,88 ----
                                      
                                          /**
                                           * Returns the labels corresponding to this attribute.
                                    !      *
                                           * @return the labels corresponding to this attribute, or <tt>null</tt> if
                                           *         this attribute is not a code attribute that contains labels.
                                           */
                                    *************** public class Attribute {
                                    *** 95,101 ****
                                           * {@link Attribute} object, of type {@link #type type}, corresponding to
                                           * the <tt>len</tt> bytes starting at the given offset, in the given class
                                           * reader.
                                    !      * 
                                           * @param cr the class that contains the attribute to be read.
                                           * @param off index of the first byte of the attribute's content in {@link
                                           *        ClassReader#b cr.b}. The 6 attribute header bytes, containing the
                                    --- 95,101 ----
                                           * {@link Attribute} object, of type {@link #type type}, corresponding to
                                           * the <tt>len</tt> bytes starting at the given offset, in the given class
                                           * reader.
                                    !      *
                                           * @param cr the class that contains the attribute to be read.
                                           * @param off index of the first byte of the attribute's content in {@link
                                           *        ClassReader#b cr.b}. The 6 attribute header bytes, containing the
                                    *************** public class Attribute {
                                    *** 132,138 ****
                                      
                                          /**
                                           * Returns the byte array form of this attribute.
                                    !      * 
                                           * @param cw the class to which this attribute must be added. This parameter
                                           *        can be used to add to the constant pool of this class the items
                                           *        that corresponds to this attribute.
                                    --- 132,138 ----
                                      
                                          /**
                                           * Returns the byte array form of this attribute.
                                    !      *
                                           * @param cw the class to which this attribute must be added. This parameter
                                           *        can be used to add to the constant pool of this class the items
                                           *        that corresponds to this attribute.
                                    *************** public class Attribute {
                                    *** 165,171 ****
                                      
                                          /**
                                           * Returns the length of the attribute list that begins with this attribute.
                                    !      * 
                                           * @return the length of the attribute list that begins with this attribute.
                                           */
                                          final int getCount() {
                                    --- 165,171 ----
                                      
                                          /**
                                           * Returns the length of the attribute list that begins with this attribute.
                                    !      *
                                           * @return the length of the attribute list that begins with this attribute.
                                           */
                                          final int getCount() {
                                    *************** public class Attribute {
                                    *** 180,186 ****
                                      
                                          /**
                                           * Returns the size of all the attributes in this attribute list.
                                    !      * 
                                           * @param cw the class writer to be used to convert the attributes into byte
                                           *        arrays, with the {@link #write write} method.
                                           * @param code the bytecode of the method corresponding to these code
                                    --- 180,186 ----
                                      
                                          /**
                                           * Returns the size of all the attributes in this attribute list.
                                    !      *
                                           * @param cw the class writer to be used to convert the attributes into byte
                                           *        arrays, with the {@link #write write} method.
                                           * @param code the bytecode of the method corresponding to these code
                                    *************** public class Attribute {
                                    *** 218,224 ****
                                          /**
                                           * Writes all the attributes of this attribute list in the given byte
                                           * vector.
                                    !      * 
                                           * @param cw the class writer to be used to convert the attributes into byte
                                           *        arrays, with the {@link #write write} method.
                                           * @param code the bytecode of the method corresponding to these code
                                    --- 218,224 ----
                                          /**
                                           * Writes all the attributes of this attribute list in the given byte
                                           * vector.
                                    !      *
                                           * @param cw the class writer to be used to convert the attributes into byte
                                           *        arrays, with the {@link #write write} method.
                                           * @param code the bytecode of the method corresponding to these code
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 32,38 ****
                                      /**
                                       * A dynamically extensible vector of bytes. This class is roughly equivalent to
                                       * a DataOutputStream on top of a ByteArrayOutputStream, but is more efficient.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ByteVector {
                                    --- 32,38 ----
                                      /**
                                       * A dynamically extensible vector of bytes. This class is roughly equivalent to
                                       * a DataOutputStream on top of a ByteArrayOutputStream, but is more efficient.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ByteVector {
                                    *************** public class ByteVector {
                                    *** 58,64 ****
                                          /**
                                           * Constructs a new {@link ByteVector ByteVector} with the given initial
                                           * size.
                                    !      * 
                                           * @param initialSize the initial size of the byte vector to be constructed.
                                           */
                                          public ByteVector(final int initialSize) {
                                    --- 58,64 ----
                                          /**
                                           * Constructs a new {@link ByteVector ByteVector} with the given initial
                                           * size.
                                    !      *
                                           * @param initialSize the initial size of the byte vector to be constructed.
                                           */
                                          public ByteVector(final int initialSize) {
                                    *************** public class ByteVector {
                                    *** 68,74 ****
                                          /**
                                           * Puts a byte into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      * 
                                           * @param b a byte.
                                           * @return this byte vector.
                                           */
                                    --- 68,74 ----
                                          /**
                                           * Puts a byte into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      *
                                           * @param b a byte.
                                           * @return this byte vector.
                                           */
                                    *************** public class ByteVector {
                                    *** 85,91 ****
                                          /**
                                           * Puts two bytes into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      * 
                                           * @param b1 a byte.
                                           * @param b2 another byte.
                                           * @return this byte vector.
                                    --- 85,91 ----
                                          /**
                                           * Puts two bytes into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      *
                                           * @param b1 a byte.
                                           * @param b2 another byte.
                                           * @return this byte vector.
                                    *************** public class ByteVector {
                                    *** 105,111 ****
                                          /**
                                           * Puts a short into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      * 
                                           * @param s a short.
                                           * @return this byte vector.
                                           */
                                    --- 105,111 ----
                                          /**
                                           * Puts a short into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      *
                                           * @param s a short.
                                           * @return this byte vector.
                                           */
                                    *************** public class ByteVector {
                                    *** 124,130 ****
                                          /**
                                           * Puts a byte and a short into this byte vector. The byte vector is
                                           * automatically enlarged if necessary.
                                    !      * 
                                           * @param b a byte.
                                           * @param s a short.
                                           * @return this byte vector.
                                    --- 124,130 ----
                                          /**
                                           * Puts a byte and a short into this byte vector. The byte vector is
                                           * automatically enlarged if necessary.
                                    !      *
                                           * @param b a byte.
                                           * @param s a short.
                                           * @return this byte vector.
                                    *************** public class ByteVector {
                                    *** 145,151 ****
                                          /**
                                           * Puts an int into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      * 
                                           * @param i an int.
                                           * @return this byte vector.
                                           */
                                    --- 145,151 ----
                                          /**
                                           * Puts an int into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      *
                                           * @param i an int.
                                           * @return this byte vector.
                                           */
                                    *************** public class ByteVector {
                                    *** 166,172 ****
                                          /**
                                           * Puts a long into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      * 
                                           * @param l a long.
                                           * @return this byte vector.
                                           */
                                    --- 166,172 ----
                                          /**
                                           * Puts a long into this byte vector. The byte vector is automatically
                                           * enlarged if necessary.
                                    !      *
                                           * @param l a long.
                                           * @return this byte vector.
                                           */
                                    *************** public class ByteVector {
                                    *** 193,199 ****
                                          /**
                                           * Puts an UTF8 string into this byte vector. The byte vector is
                                           * automatically enlarged if necessary.
                                    !      * 
                                           * @param s a String.
                                           * @return this byte vector.
                                           */
                                    --- 193,199 ----
                                          /**
                                           * Puts an UTF8 string into this byte vector. The byte vector is
                                           * automatically enlarged if necessary.
                                    !      *
                                           * @param s a String.
                                           * @return this byte vector.
                                           */
                                    *************** public class ByteVector {
                                    *** 258,264 ****
                                          /**
                                           * Puts an array of bytes into this byte vector. The byte vector is
                                           * automatically enlarged if necessary.
                                    !      * 
                                           * @param b an array of bytes. May be <tt>null</tt> to put <tt>len</tt>
                                           *        null bytes into this byte vector.
                                           * @param off index of the fist byte of b that must be copied.
                                    --- 258,264 ----
                                          /**
                                           * Puts an array of bytes into this byte vector. The byte vector is
                                           * automatically enlarged if necessary.
                                    !      *
                                           * @param b an array of bytes. May be <tt>null</tt> to put <tt>len</tt>
                                           *        null bytes into this byte vector.
                                           * @param off index of the fist byte of b that must be copied.
                                    *************** public class ByteVector {
                                    *** 279,285 ****
                                      
                                          /**
                                           * Enlarge this byte vector so that it can receive n more bytes.
                                    !      * 
                                           * @param size number of additional bytes that this byte vector should be
                                           *        able to receive.
                                           */
                                    --- 279,285 ----
                                      
                                          /**
                                           * Enlarge this byte vector so that it can receive n more bytes.
                                    !      *
                                           * @param size number of additional bytes that this byte vector should be
                                           *        able to receive.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 33,39 ****
                                       * An empty {@link ClassVisitor} that delegates to another {@link ClassVisitor}.
                                       * This class can be used as a super class to quickly implement usefull class
                                       * adapter classes, just by overriding the necessary methods.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ClassAdapter implements ClassVisitor {
                                    --- 33,39 ----
                                       * An empty {@link ClassVisitor} that delegates to another {@link ClassVisitor}.
                                       * This class can be used as a super class to quickly implement usefull class
                                       * adapter classes, just by overriding the necessary methods.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ClassAdapter implements ClassVisitor {
                                    *************** public class ClassAdapter implements Cla
                                    *** 45,51 ****
                                      
                                          /**
                                           * Constructs a new {@link ClassAdapter} object.
                                    !      * 
                                           * @param cv the class visitor to which this adapter must delegate calls.
                                           */
                                          public ClassAdapter(final ClassVisitor cv) {
                                    --- 45,51 ----
                                      
                                          /**
                                           * Constructs a new {@link ClassAdapter} object.
                                    !      *
                                           * @param cv the class visitor to which this adapter must delegate calls.
                                           */
                                          public ClassAdapter(final ClassVisitor cv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.io.IOException;
                                    *** 37,43 ****
                                       * This class parses a byte array conforming to the Java class file format and
                                       * calls the appropriate visit methods of a given class visitor for each field,
                                       * method and bytecode instruction encountered.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    --- 37,43 ----
                                       * This class parses a byte array conforming to the Java class file format and
                                       * calls the appropriate visit methods of a given class visitor for each field,
                                       * method and bytecode instruction encountered.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    *************** public class ClassReader {
                                    *** 85,91 ****
                                      
                                          /**
                                           * Constructs a new {@link ClassReader} object.
                                    !      * 
                                           * @param b the bytecode of the class to be read.
                                           */
                                          public ClassReader(final byte[] b) {
                                    --- 85,91 ----
                                      
                                          /**
                                           * Constructs a new {@link ClassReader} object.
                                    !      *
                                           * @param b the bytecode of the class to be read.
                                           */
                                          public ClassReader(final byte[] b) {
                                    *************** public class ClassReader {
                                    *** 94,100 ****
                                      
                                          /**
                                           * Constructs a new {@link ClassReader} object.
                                    !      * 
                                           * @param b the bytecode of the class to be read.
                                           * @param off the start offset of the class data.
                                           * @param len the length of the class data.
                                    --- 94,100 ----
                                      
                                          /**
                                           * Constructs a new {@link ClassReader} object.
                                    !      *
                                           * @param b the bytecode of the class to be read.
                                           * @param off the start offset of the class data.
                                           * @param len the length of the class data.
                                    *************** public class ClassReader {
                                    *** 147,153 ****
                                          /**
                                           * Copies the constant pool data into the given {@link ClassWriter}. Should
                                           * be called before the {@link #accept(ClassVisitor,boolean)} method.
                                    !      * 
                                           * @param classWriter the {@link ClassWriter} to copy constant pool into.
                                           */
                                          void copyPool(final ClassWriter classWriter) {
                                    --- 147,153 ----
                                          /**
                                           * Copies the constant pool data into the given {@link ClassWriter}. Should
                                           * be called before the {@link #accept(ClassVisitor,boolean)} method.
                                    !      *
                                           * @param classWriter the {@link ClassWriter} to copy constant pool into.
                                           */
                                          void copyPool(final ClassWriter classWriter) {
                                    *************** public class ClassReader {
                                    *** 228,234 ****
                                      
                                          /**
                                           * Constructs a new {@link ClassReader} object.
                                    !      * 
                                           * @param is an input stream from which to read the class.
                                           * @throws IOException if a problem occurs during reading.
                                           */
                                    --- 228,234 ----
                                      
                                          /**
                                           * Constructs a new {@link ClassReader} object.
                                    !      *
                                           * @param is an input stream from which to read the class.
                                           * @throws IOException if a problem occurs during reading.
                                           */
                                    *************** public class ClassReader {
                                    *** 238,244 ****
                                      
                                          /**
                                           * Constructs a new {@link ClassReader} object.
                                    !      * 
                                           * @param name the fully qualified name of the class to be read.
                                           * @throws IOException if an exception occurs during reading.
                                           */
                                    --- 238,244 ----
                                      
                                          /**
                                           * Constructs a new {@link ClassReader} object.
                                    !      *
                                           * @param name the fully qualified name of the class to be read.
                                           * @throws IOException if an exception occurs during reading.
                                           */
                                    *************** public class ClassReader {
                                    *** 249,255 ****
                                      
                                          /**
                                           * Reads the bytecode of a class.
                                    !      * 
                                           * @param is an input stream from which to read the class.
                                           * @return the bytecode read from the given input stream.
                                           * @throws IOException if a problem occurs during reading.
                                    --- 249,255 ----
                                      
                                          /**
                                           * Reads the bytecode of a class.
                                    !      *
                                           * @param is an input stream from which to read the class.
                                           * @return the bytecode read from the given input stream.
                                           * @throws IOException if a problem occurs during reading.
                                    *************** public class ClassReader {
                                    *** 287,293 ****
                                           * Makes the given visitor visit the Java class of this {@link ClassReader}.
                                           * This class is the one specified in the constructor (see
                                           * {@link #ClassReader(byte[]) ClassReader}).
                                    !      * 
                                           * @param classVisitor the visitor that must visit this class.
                                           * @param skipDebug <tt>true</tt> if the debug information of the class
                                           *        must not be visited. In this case the
                                    --- 287,293 ----
                                           * Makes the given visitor visit the Java class of this {@link ClassReader}.
                                           * This class is the one specified in the constructor (see
                                           * {@link #ClassReader(byte[]) ClassReader}).
                                    !      *
                                           * @param classVisitor the visitor that must visit this class.
                                           * @param skipDebug <tt>true</tt> if the debug information of the class
                                           *        must not be visited. In this case the
                                    *************** public class ClassReader {
                                    *** 304,310 ****
                                           * Makes the given visitor visit the Java class of this {@link ClassReader}.
                                           * This class is the one specified in the constructor (see
                                           * {@link #ClassReader(byte[]) ClassReader}).
                                    !      * 
                                           * @param classVisitor the visitor that must visit this class.
                                           * @param attrs prototypes of the attributes that must be parsed during the
                                           *        visit of the class. Any attribute whose type is not equal to the
                                    --- 304,310 ----
                                           * Makes the given visitor visit the Java class of this {@link ClassReader}.
                                           * This class is the one specified in the constructor (see
                                           * {@link #ClassReader(byte[]) ClassReader}).
                                    !      *
                                           * @param classVisitor the visitor that must visit this class.
                                           * @param attrs prototypes of the attributes that must be parsed during the
                                           *        visit of the class. Any attribute whose type is not equal to the
                                    *************** public class ClassReader {
                                    *** 861,867 ****
                                                          if (handler == null) {
                                                              labels[label] = handler = new Label();
                                                          }
                                    !                     
                                                          int type = readUnsignedShort(v + 6);
                                                          if (type == 0) {
                                                              mv.visitTryCatchBlock(start, end, handler, null);
                                    --- 861,867 ----
                                                          if (handler == null) {
                                                              labels[label] = handler = new Label();
                                                          }
                                    ! 
                                                          int type = readUnsignedShort(v + 6);
                                                          if (type == 0) {
                                                              mv.visitTryCatchBlock(start, end, handler, null);
                                    *************** public class ClassReader {
                                    *** 1149,1155 ****
                                      
                                          /**
                                           * Reads parameter annotations and makes the given visitor visit them.
                                    !      * 
                                           * @param v start offset in {@link #b b} of the annotations to be read.
                                           * @param buf buffer to be used to call {@link #readUTF8 readUTF8},
                                           *        {@link #readClass(int,char[]) readClass} or
                                    --- 1149,1155 ----
                                      
                                          /**
                                           * Reads parameter annotations and makes the given visitor visit them.
                                    !      *
                                           * @param v start offset in {@link #b b} of the annotations to be read.
                                           * @param buf buffer to be used to call {@link #readUTF8 readUTF8},
                                           *        {@link #readClass(int,char[]) readClass} or
                                    *************** public class ClassReader {
                                    *** 1181,1187 ****
                                      
                                          /**
                                           * Reads the values of an annotation and makes the given visitor visit them.
                                    !      * 
                                           * @param v the start offset in {@link #b b} of the values to be read
                                           *        (including the unsigned short that gives the number of values).
                                           * @param buf buffer to be used to call {@link #readUTF8 readUTF8},
                                    --- 1181,1187 ----
                                      
                                          /**
                                           * Reads the values of an annotation and makes the given visitor visit them.
                                    !      *
                                           * @param v the start offset in {@link #b b} of the values to be read
                                           *        (including the unsigned short that gives the number of values).
                                           * @param buf buffer to be used to call {@link #readUTF8 readUTF8},
                                    *************** public class ClassReader {
                                    *** 1208,1214 ****
                                      
                                          /**
                                           * Reads a value of an annotation and makes the given visitor visit it.
                                    !      * 
                                           * @param v the start offset in {@link #b b} of the value to be read (<i>not
                                           *        including the value name constant pool index</i>).
                                           * @param buf buffer to be used to call {@link #readUTF8 readUTF8},
                                    --- 1208,1214 ----
                                      
                                          /**
                                           * Reads a value of an annotation and makes the given visitor visit it.
                                    !      *
                                           * @param v the start offset in {@link #b b} of the value to be read (<i>not
                                           *        including the value name constant pool index</i>).
                                           * @param buf buffer to be used to call {@link #readUTF8 readUTF8},
                                    *************** public class ClassReader {
                                    *** 1364,1370 ****
                                      
                                          /**
                                           * Reads an attribute in {@link #b b}.
                                    !      * 
                                           * @param attrs prototypes of the attributes that must be parsed during the
                                           *        visit of the class. Any attribute whose type is not equal to the
                                           *        type of one the prototypes is ignored (i.e. an empty
                                    --- 1364,1370 ----
                                      
                                          /**
                                           * Reads an attribute in {@link #b b}.
                                    !      *
                                           * @param attrs prototypes of the attributes that must be parsed during the
                                           *        visit of the class. Any attribute whose type is not equal to the
                                           *        type of one the prototypes is ignored (i.e. an empty
                                    *************** public class ClassReader {
                                    *** 1412,1418 ****
                                           * Returns the start index of the constant pool item in {@link #b b}, plus
                                           * one. <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      * 
                                           * @param item the index a constant pool item.
                                           * @return the start index of the constant pool item in {@link #b b}, plus
                                           *         one.
                                    --- 1412,1418 ----
                                           * Returns the start index of the constant pool item in {@link #b b}, plus
                                           * one. <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      *
                                           * @param item the index a constant pool item.
                                           * @return the start index of the constant pool item in {@link #b b}, plus
                                           *         one.
                                    *************** public class ClassReader {
                                    *** 1425,1431 ****
                                           * Reads a byte value in {@link #b b}. <i>This method is intended for
                                           * {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      * 
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    --- 1425,1431 ----
                                           * Reads a byte value in {@link #b b}. <i>This method is intended for
                                           * {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      *
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    *************** public class ClassReader {
                                    *** 1437,1443 ****
                                           * Reads an unsigned short value in {@link #b b}. <i>This method is
                                           * intended for {@link Attribute} sub classes, and is normally not needed by
                                           * class generators or adapters.</i>
                                    !      * 
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    --- 1437,1443 ----
                                           * Reads an unsigned short value in {@link #b b}. <i>This method is
                                           * intended for {@link Attribute} sub classes, and is normally not needed by
                                           * class generators or adapters.</i>
                                    !      *
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    *************** public class ClassReader {
                                    *** 1450,1456 ****
                                           * Reads a signed short value in {@link #b b}. <i>This method is intended
                                           * for {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      * 
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    --- 1450,1456 ----
                                           * Reads a signed short value in {@link #b b}. <i>This method is intended
                                           * for {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      *
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    *************** public class ClassReader {
                                    *** 1463,1469 ****
                                           * Reads a signed int value in {@link #b b}. <i>This method is intended for
                                           * {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      * 
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    --- 1463,1469 ----
                                           * Reads a signed int value in {@link #b b}. <i>This method is intended for
                                           * {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      *
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    *************** public class ClassReader {
                                    *** 1477,1483 ****
                                           * Reads a signed long value in {@link #b b}. <i>This method is intended
                                           * for {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      * 
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    --- 1477,1483 ----
                                           * Reads a signed long value in {@link #b b}. <i>This method is intended
                                           * for {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      *
                                           * @param index the start index of the value to be read in {@link #b b}.
                                           * @return the read value.
                                           */
                                    *************** public class ClassReader {
                                    *** 1491,1497 ****
                                           * Reads an UTF8 string constant pool item in {@link #b b}. <i>This method
                                           * is intended for {@link Attribute} sub classes, and is normally not needed
                                           * by class generators or adapters.</i>
                                    !      * 
                                           * @param index the start index of an unsigned short value in {@link #b b},
                                           *        whose value is the index of an UTF8 constant pool item.
                                           * @param buf buffer to be used to read the item. This buffer must be
                                    --- 1491,1497 ----
                                           * Reads an UTF8 string constant pool item in {@link #b b}. <i>This method
                                           * is intended for {@link Attribute} sub classes, and is normally not needed
                                           * by class generators or adapters.</i>
                                    !      *
                                           * @param index the start index of an unsigned short value in {@link #b b},
                                           *        whose value is the index of an UTF8 constant pool item.
                                           * @param buf buffer to be used to read the item. This buffer must be
                                    *************** public class ClassReader {
                                    *** 1510,1516 ****
                                      
                                          /**
                                           * Reads UTF8 string in {@link #b b}.
                                    !      * 
                                           * @param index start offset of the UTF8 string to be read.
                                           * @param utfLen length of the UTF8 string to be read.
                                           * @param buf buffer to be used to read the string. This buffer must be
                                    --- 1510,1516 ----
                                      
                                          /**
                                           * Reads UTF8 string in {@link #b b}.
                                    !      *
                                           * @param index start offset of the UTF8 string to be read.
                                           * @param utfLen length of the UTF8 string to be read.
                                           * @param buf buffer to be used to read the string. This buffer must be
                                    *************** public class ClassReader {
                                    *** 1558,1564 ****
                                           * Reads a class constant pool item in {@link #b b}. <i>This method is
                                           * intended for {@link Attribute} sub classes, and is normally not needed by
                                           * class generators or adapters.</i>
                                    !      * 
                                           * @param index the start index of an unsigned short value in {@link #b b},
                                           *        whose value is the index of a class constant pool item.
                                           * @param buf buffer to be used to read the item. This buffer must be
                                    --- 1558,1564 ----
                                           * Reads a class constant pool item in {@link #b b}. <i>This method is
                                           * intended for {@link Attribute} sub classes, and is normally not needed by
                                           * class generators or adapters.</i>
                                    !      *
                                           * @param index the start index of an unsigned short value in {@link #b b},
                                           *        whose value is the index of a class constant pool item.
                                           * @param buf buffer to be used to read the item. This buffer must be
                                    *************** public class ClassReader {
                                    *** 1576,1582 ****
                                           * Reads a numeric or string constant pool item in {@link #b b}. <i>This
                                           * method is intended for {@link Attribute} sub classes, and is normally not
                                           * needed by class generators or adapters.</i>
                                    !      * 
                                           * @param item the index of a constant pool item.
                                           * @param buf buffer to be used to read the item. This buffer must be
                                           *        sufficiently large. It is not automatically resized.
                                    --- 1576,1582 ----
                                           * Reads a numeric or string constant pool item in {@link #b b}. <i>This
                                           * method is intended for {@link Attribute} sub classes, and is normally not
                                           * needed by class generators or adapters.</i>
                                    !      *
                                           * @param item the index of a constant pool item.
                                           * @param buf buffer to be used to read the item. This buffer must be
                                           *        sufficiently large. It is not automatically resized.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 35,48 ****
                                       * <tt>visitOuterClass</tt> ] ( <tt>visitAnnotation</tt> |
                                       * <tt>visitAttribute</tt> )* (<tt>visitInnerClass</tt> |
                                       * <tt>visitField</tt> | <tt>visitMethod</tt> )* <tt>visitEnd</tt>.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public interface ClassVisitor {
                                      
                                          /**
                                           * Visits the header of the class.
                                    !      * 
                                           * @param version the class version.
                                           * @param access the class's access flags (see {@link Opcodes}). This
                                           *        parameter also indicates if the class is deprecated.
                                    --- 35,48 ----
                                       * <tt>visitOuterClass</tt> ] ( <tt>visitAnnotation</tt> |
                                       * <tt>visitAttribute</tt> )* (<tt>visitInnerClass</tt> |
                                       * <tt>visitField</tt> | <tt>visitMethod</tt> )* <tt>visitEnd</tt>.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public interface ClassVisitor {
                                      
                                          /**
                                           * Visits the header of the class.
                                    !      *
                                           * @param version the class version.
                                           * @param access the class's access flags (see {@link Opcodes}). This
                                           *        parameter also indicates if the class is deprecated.
                                    *************** public interface ClassVisitor {
                                    *** 69,75 ****
                                      
                                          /**
                                           * Visits the source of the class.
                                    !      * 
                                           * @param source the name of the source file from which the class was
                                           *        compiled. May be <tt>null</tt>.
                                           * @param debug additional debug information to compute the correspondance
                                    --- 69,75 ----
                                      
                                          /**
                                           * Visits the source of the class.
                                    !      *
                                           * @param source the name of the source file from which the class was
                                           *        compiled. May be <tt>null</tt>.
                                           * @param debug additional debug information to compute the correspondance
                                    *************** public interface ClassVisitor {
                                    *** 81,87 ****
                                          /**
                                           * Visits the enclosing class of the class. This method must be called only
                                           * if the class has an enclosing class.
                                    !      * 
                                           * @param owner internal name of the enclosing class of the class.
                                           * @param name the name of the method that contains the class, or
                                           *        <tt>null</tt> if the class is not enclosed in a method of its
                                    --- 81,87 ----
                                          /**
                                           * Visits the enclosing class of the class. This method must be called only
                                           * if the class has an enclosing class.
                                    !      *
                                           * @param owner internal name of the enclosing class of the class.
                                           * @param name the name of the method that contains the class, or
                                           *        <tt>null</tt> if the class is not enclosed in a method of its
                                    *************** public interface ClassVisitor {
                                    *** 94,100 ****
                                      
                                          /**
                                           * Visits an annotation of the class.
                                    !      * 
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a non null visitor to visit the annotation values.
                                    --- 94,100 ----
                                      
                                          /**
                                           * Visits an annotation of the class.
                                    !      *
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a non null visitor to visit the annotation values.
                                    *************** public interface ClassVisitor {
                                    *** 103,109 ****
                                      
                                          /**
                                           * Visits a non standard attribute of the class.
                                    !      * 
                                           * @param attr an attribute.
                                           */
                                          void visitAttribute(Attribute attr);
                                    --- 103,109 ----
                                      
                                          /**
                                           * Visits a non standard attribute of the class.
                                    !      *
                                           * @param attr an attribute.
                                           */
                                          void visitAttribute(Attribute attr);
                                    *************** public interface ClassVisitor {
                                    *** 111,117 ****
                                          /**
                                           * Visits information about an inner class. This inner class is not
                                           * necessarily a member of the class being visited.
                                    !      * 
                                           * @param name the internal name of an inner class (see
                                           *        {@link Type#getInternalName() getInternalName}).
                                           * @param outerName the internal name of the class to which the inner class
                                    --- 111,117 ----
                                          /**
                                           * Visits information about an inner class. This inner class is not
                                           * necessarily a member of the class being visited.
                                    !      *
                                           * @param name the internal name of an inner class (see
                                           *        {@link Type#getInternalName() getInternalName}).
                                           * @param outerName the internal name of the class to which the inner class
                                    *************** public interface ClassVisitor {
                                    *** 131,137 ****
                                      
                                          /**
                                           * Visits a field of the class.
                                    !      * 
                                           * @param access the field's access flags (see {@link Opcodes}). This
                                           *        parameter also indicates if the field is synthetic and/or
                                           *        deprecated.
                                    --- 131,137 ----
                                      
                                          /**
                                           * Visits a field of the class.
                                    !      *
                                           * @param access the field's access flags (see {@link Opcodes}). This
                                           *        parameter also indicates if the field is synthetic and/or
                                           *        deprecated.
                                    *************** public interface ClassVisitor {
                                    *** 163,169 ****
                                           * Visits a method of the class. This method <i>must</i> return a new
                                           * {@link MethodVisitor} instance (or <tt>null</tt>) each time it is
                                           * called, i.e., it should not return a previously returned visitor.
                                    !      * 
                                           * @param access the method's access flags (see {@link Opcodes}). This
                                           *        parameter also indicates if the method is synthetic and/or
                                           *        deprecated.
                                    --- 163,169 ----
                                           * Visits a method of the class. This method <i>must</i> return a new
                                           * {@link MethodVisitor} instance (or <tt>null</tt>) each time it is
                                           * called, i.e., it should not return a previously returned visitor.
                                    !      *
                                           * @param access the method's access flags (see {@link Opcodes}). This
                                           *        parameter also indicates if the method is synthetic and/or
                                           *        deprecated.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 35,41 ****
                                       * file format. It can be used alone, to generate a Java class "from scratch",
                                       * or with one or more {@link ClassReader ClassReader} and adapter class visitor
                                       * to generate a modified class from one or more existing Java classes.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ClassWriter implements ClassVisitor {
                                    --- 35,41 ----
                                       * file format. It can be used alone, to generate a Java class "from scratch",
                                       * or with one or more {@link ClassReader ClassReader} and adapter class visitor
                                       * to generate a modified class from one or more existing Java classes.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ClassWriter implements ClassVisitor {
                                    *************** public class ClassWriter implements Clas
                                    *** 442,448 ****
                                      
                                          /**
                                           * Constructs a new {@link ClassWriter ClassWriter} object.
                                    !      * 
                                           * @param computeMaxs <tt>true</tt> if the maximum stack size and the
                                           *        maximum number of local variables must be automatically computed.
                                           *        If this flag is <tt>true</tt>, then the arguments of the
                                    --- 442,448 ----
                                      
                                          /**
                                           * Constructs a new {@link ClassWriter ClassWriter} object.
                                    !      *
                                           * @param computeMaxs <tt>true</tt> if the maximum stack size and the
                                           *        maximum number of local variables must be automatically computed.
                                           *        If this flag is <tt>true</tt>, then the arguments of the
                                    *************** public class ClassWriter implements Clas
                                    *** 458,464 ****
                                      
                                          /**
                                           * Constructs a new {@link ClassWriter} object.
                                    !      * 
                                           * @param computeMaxs <tt>true</tt> if the maximum stack size and the
                                           *        maximum number of local variables must be automatically computed.
                                           *        If this flag is <tt>true</tt>, then the arguments of the
                                    --- 458,464 ----
                                      
                                          /**
                                           * Constructs a new {@link ClassWriter} object.
                                    !      *
                                           * @param computeMaxs <tt>true</tt> if the maximum stack size and the
                                           *        maximum number of local variables must be automatically computed.
                                           *        If this flag is <tt>true</tt>, then the arguments of the
                                    *************** public class ClassWriter implements Clas
                                    *** 488,494 ****
                                           * Constructs a new {@link ClassWriter} object and enables optimizations for
                                           * "mostly add" bytecode transformations. These optimizations are the
                                           * following:
                                    !      * 
                                           * <ul> <li>The constant pool from the original class is copied as is in
                                           * the new class, which saves time. New constant pool entries will be added
                                           * at the end if necessary, but unused constant pool entries <i>won't be
                                    --- 488,494 ----
                                           * Constructs a new {@link ClassWriter} object and enables optimizations for
                                           * "mostly add" bytecode transformations. These optimizations are the
                                           * following:
                                    !      *
                                           * <ul> <li>The constant pool from the original class is copied as is in
                                           * the new class, which saves time. New constant pool entries will be added
                                           * at the end if necessary, but unused constant pool entries <i>won't be
                                    *************** public class ClassWriter implements Clas
                                    *** 500,506 ****
                                           * that come from a {@link ClassWriter} (and not from a custom
                                           * {@link ClassAdapter} or any other {@link ClassVisitor} instance).</li>
                                           * </ul>
                                    !      * 
                                           * @param classReader the {@link ClassReader} used to read the original
                                           *        class. It will be used to copy the entire constant pool from the
                                           *        original class and also to copy other fragments of original
                                    --- 500,506 ----
                                           * that come from a {@link ClassWriter} (and not from a custom
                                           * {@link ClassAdapter} or any other {@link ClassVisitor} instance).</li>
                                           * </ul>
                                    !      *
                                           * @param classReader the {@link ClassReader} used to read the original
                                           *        class. It will be used to copy the entire constant pool from the
                                           *        original class and also to copy other fragments of original
                                    *************** public class ClassWriter implements Clas
                                    *** 642,648 ****
                                      
                                          /**
                                           * Returns the bytecode of the class that was build with this class writer.
                                    !      * 
                                           * @return the bytecode of the class that was build with this class writer.
                                           */
                                          public byte[] toByteArray() {
                                    --- 642,648 ----
                                      
                                          /**
                                           * Returns the bytecode of the class that was build with this class writer.
                                    !      *
                                           * @return the bytecode of the class that was build with this class writer.
                                           */
                                          public byte[] toByteArray() {
                                    *************** public class ClassWriter implements Clas
                                    *** 807,813 ****
                                          /**
                                           * Adds a number or string constant to the constant pool of the class being
                                           * build. Does nothing if the constant pool already contains a similar item.
                                    !      * 
                                           * @param cst the value of the constant to be added to the constant pool.
                                           *        This parameter must be an {@link Integer}, a {@link Float}, a
                                           *        {@link Long}, a {@link Double}, a {@link String} or a
                                    --- 807,813 ----
                                          /**
                                           * Adds a number or string constant to the constant pool of the class being
                                           * build. Does nothing if the constant pool already contains a similar item.
                                    !      *
                                           * @param cst the value of the constant to be added to the constant pool.
                                           *        This parameter must be an {@link Integer}, a {@link Float}, a
                                           *        {@link Long}, a {@link Double}, a {@link String} or a
                                    *************** public class ClassWriter implements Clas
                                    *** 856,862 ****
                                           * build. Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      * 
                                           * @param cst the value of the constant to be added to the constant pool.
                                           *        This parameter must be an {@link Integer}, a {@link Float}, a
                                           *        {@link Long}, a {@link Double} or a {@link String}.
                                    --- 856,862 ----
                                           * build. Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      *
                                           * @param cst the value of the constant to be added to the constant pool.
                                           *        This parameter must be an {@link Integer}, a {@link Float}, a
                                           *        {@link Long}, a {@link Double} or a {@link String}.
                                    *************** public class ClassWriter implements Clas
                                    *** 872,878 ****
                                           * nothing if the constant pool already contains a similar item. <i>This
                                           * method is intended for {@link Attribute} sub classes, and is normally not
                                           * needed by class generators or adapters.</i>
                                    !      * 
                                           * @param value the String value.
                                           * @return the index of a new or already existing UTF8 item.
                                           */
                                    --- 872,878 ----
                                           * nothing if the constant pool already contains a similar item. <i>This
                                           * method is intended for {@link Attribute} sub classes, and is normally not
                                           * needed by class generators or adapters.</i>
                                    !      *
                                           * @param value the String value.
                                           * @return the index of a new or already existing UTF8 item.
                                           */
                                    *************** public class ClassWriter implements Clas
                                    *** 892,898 ****
                                           * Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      * 
                                           * @param value the internal name of the class.
                                           * @return the index of a new or already existing class reference item.
                                           */
                                    --- 892,898 ----
                                           * Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      *
                                           * @param value the internal name of the class.
                                           * @return the index of a new or already existing class reference item.
                                           */
                                    *************** public class ClassWriter implements Clas
                                    *** 905,911 ****
                                           * Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      * 
                                           * @param value the internal name of the class.
                                           * @return a new or already existing class reference item.
                                           */
                                    --- 905,911 ----
                                           * Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      *
                                           * @param value the internal name of the class.
                                           * @return a new or already existing class reference item.
                                           */
                                    *************** public class ClassWriter implements Clas
                                    *** 925,931 ****
                                           * Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      * 
                                           * @param owner the internal name of the field's owner class.
                                           * @param name the field's name.
                                           * @param desc the field's descriptor.
                                    --- 925,931 ----
                                           * Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      *
                                           * @param owner the internal name of the field's owner class.
                                           * @param name the field's name.
                                           * @param desc the field's descriptor.
                                    *************** public class ClassWriter implements Clas
                                    *** 946,952 ****
                                          /**
                                           * Adds a method reference to the constant pool of the class being build.
                                           * Does nothing if the constant pool already contains a similar item.
                                    !      * 
                                           * @param owner the internal name of the method's owner class.
                                           * @param name the method's name.
                                           * @param desc the method's descriptor.
                                    --- 946,952 ----
                                          /**
                                           * Adds a method reference to the constant pool of the class being build.
                                           * Does nothing if the constant pool already contains a similar item.
                                    !      *
                                           * @param owner the internal name of the method's owner class.
                                           * @param name the method's name.
                                           * @param desc the method's descriptor.
                                    *************** public class ClassWriter implements Clas
                                    *** 975,981 ****
                                           * Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      * 
                                           * @param owner the internal name of the method's owner class.
                                           * @param name the method's name.
                                           * @param desc the method's descriptor.
                                    --- 975,981 ----
                                           * Does nothing if the constant pool already contains a similar item.
                                           * <i>This method is intended for {@link Attribute} sub classes, and is
                                           * normally not needed by class generators or adapters.</i>
                                    !      *
                                           * @param owner the internal name of the method's owner class.
                                           * @param name the method's name.
                                           * @param desc the method's descriptor.
                                    *************** public class ClassWriter implements Clas
                                    *** 994,1000 ****
                                          /**
                                           * Adds an integer to the constant pool of the class being build. Does
                                           * nothing if the constant pool already contains a similar item.
                                    !      * 
                                           * @param value the int value.
                                           * @return a new or already existing int item.
                                           */
                                    --- 994,1000 ----
                                          /**
                                           * Adds an integer to the constant pool of the class being build. Does
                                           * nothing if the constant pool already contains a similar item.
                                    !      *
                                           * @param value the int value.
                                           * @return a new or already existing int item.
                                           */
                                    *************** public class ClassWriter implements Clas
                                    *** 1012,1018 ****
                                          /**
                                           * Adds a float to the constant pool of the class being build. Does nothing
                                           * if the constant pool already contains a similar item.
                                    !      * 
                                           * @param value the float value.
                                           * @return a new or already existing float item.
                                           */
                                    --- 1012,1018 ----
                                          /**
                                           * Adds a float to the constant pool of the class being build. Does nothing
                                           * if the constant pool already contains a similar item.
                                    !      *
                                           * @param value the float value.
                                           * @return a new or already existing float item.
                                           */
                                    *************** public class ClassWriter implements Clas
                                    *** 1030,1036 ****
                                          /**
                                           * Adds a long to the constant pool of the class being build. Does nothing
                                           * if the constant pool already contains a similar item.
                                    !      * 
                                           * @param value the long value.
                                           * @return a new or already existing long item.
                                           */
                                    --- 1030,1036 ----
                                          /**
                                           * Adds a long to the constant pool of the class being build. Does nothing
                                           * if the constant pool already contains a similar item.
                                    !      *
                                           * @param value the long value.
                                           * @return a new or already existing long item.
                                           */
                                    *************** public class ClassWriter implements Clas
                                    *** 1049,1055 ****
                                          /**
                                           * Adds a double to the constant pool of the class being build. Does nothing
                                           * if the constant pool already contains a similar item.
                                    !      * 
                                           * @param value the double value.
                                           * @return a new or already existing double item.
                                           */
                                    --- 1049,1055 ----
                                          /**
                                           * Adds a double to the constant pool of the class being build. Does nothing
                                           * if the constant pool already contains a similar item.
                                    !      *
                                           * @param value the double value.
                                           * @return a new or already existing double item.
                                           */
                                    *************** public class ClassWriter implements Clas
                                    *** 1068,1074 ****
                                          /**
                                           * Adds a string to the constant pool of the class being build. Does nothing
                                           * if the constant pool already contains a similar item.
                                    !      * 
                                           * @param value the String value.
                                           * @return a new or already existing string item.
                                           */
                                    --- 1068,1074 ----
                                          /**
                                           * Adds a string to the constant pool of the class being build. Does nothing
                                           * if the constant pool already contains a similar item.
                                    !      *
                                           * @param value the String value.
                                           * @return a new or already existing string item.
                                           */
                                    *************** public class ClassWriter implements Clas
                                    *** 1088,1094 ****
                                           * nothing if the constant pool already contains a similar item. <i>This
                                           * method is intended for {@link Attribute} sub classes, and is normally not
                                           * needed by class generators or adapters.</i>
                                    !      * 
                                           * @param name a name.
                                           * @param desc a type descriptor.
                                           * @return the index of a new or already existing name and type item.
                                    --- 1088,1094 ----
                                           * nothing if the constant pool already contains a similar item. <i>This
                                           * method is intended for {@link Attribute} sub classes, and is normally not
                                           * needed by class generators or adapters.</i>
                                    !      *
                                           * @param name a name.
                                           * @param desc a type descriptor.
                                           * @return the index of a new or already existing name and type item.
                                    *************** public class ClassWriter implements Clas
                                    *** 1107,1113 ****
                                          /**
                                           * Returns the constant pool's hash table item which is equal to the given
                                           * item.
                                    !      * 
                                           * @param key a constant pool item.
                                           * @return the constant pool's hash table item which is equal to the given
                                           *         item, or <tt>null</tt> if there is no such item.
                                    --- 1107,1113 ----
                                          /**
                                           * Returns the constant pool's hash table item which is equal to the given
                                           * item.
                                    !      *
                                           * @param key a constant pool item.
                                           * @return the constant pool's hash table item which is equal to the given
                                           *         item, or <tt>null</tt> if there is no such item.
                                    *************** public class ClassWriter implements Clas
                                    *** 1123,1129 ****
                                          /**
                                           * Puts the given item in the constant pool's hash table. The hash table
                                           * <i>must</i> not already contains this item.
                                    !      * 
                                           * @param i the item to be added to the constant pool's hash table.
                                           */
                                          private void put(final Item i) {
                                    --- 1123,1129 ----
                                          /**
                                           * Puts the given item in the constant pool's hash table. The hash table
                                           * <i>must</i> not already contains this item.
                                    !      *
                                           * @param i the item to be added to the constant pool's hash table.
                                           */
                                          private void put(final Item i) {
                                    *************** public class ClassWriter implements Clas
                                    *** 1151,1157 ****
                                      
                                          /**
                                           * Puts one byte and two shorts into the constant pool.
                                    !      * 
                                           * @param b a byte.
                                           * @param s1 a short.
                                           * @param s2 another short.
                                    --- 1151,1157 ----
                                      
                                          /**
                                           * Puts one byte and two shorts into the constant pool.
                                    !      *
                                           * @param b a byte.
                                           * @param s1 a short.
                                           * @param s2 another short.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 31,37 ****
                                      
                                      /**
                                       * An edge in the control flow graph of a method body. See {@link Label Label}.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      class Edge {
                                    --- 31,37 ----
                                      
                                      /**
                                       * An edge in the control flow graph of a method body. See {@link Label Label}.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      class Edge {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 33,46 ****
                                       * A visitor to visit a Java field. The methods of this interface must be called
                                       * in the following order: ( <tt>visitAnnotation</tt> |
                                       * <tt>visitAttribute</tt> )* <tt>visitEnd</tt>.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public interface FieldVisitor {
                                      
                                          /**
                                           * Visits an annotation of the field.
                                    !      * 
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a non null visitor to visit the annotation values.
                                    --- 33,46 ----
                                       * A visitor to visit a Java field. The methods of this interface must be called
                                       * in the following order: ( <tt>visitAnnotation</tt> |
                                       * <tt>visitAttribute</tt> )* <tt>visitEnd</tt>.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public interface FieldVisitor {
                                      
                                          /**
                                           * Visits an annotation of the field.
                                    !      *
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a non null visitor to visit the annotation values.
                                    *************** public interface FieldVisitor {
                                    *** 49,55 ****
                                      
                                          /**
                                           * Visits a non standard attribute of the field.
                                    !      * 
                                           * @param attr an attribute.
                                           */
                                          void visitAttribute(Attribute attr);
                                    --- 49,55 ----
                                      
                                          /**
                                           * Visits a non standard attribute of the field.
                                    !      *
                                           * @param attr an attribute.
                                           */
                                          void visitAttribute(Attribute attr);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 31,37 ****
                                      
                                      /**
                                       * An {@link FieldVisitor} that generates Java fields in bytecode form.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      final class FieldWriter implements FieldVisitor {
                                    --- 31,37 ----
                                      
                                      /**
                                       * An {@link FieldVisitor} that generates Java fields in bytecode form.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      final class FieldWriter implements FieldVisitor {
                                    *************** final class FieldWriter implements Field
                                    *** 96,102 ****
                                      
                                          /**
                                           * Constructs a new {@link FieldWriter}.
                                    !      * 
                                           * @param cw the class writer to which this field must be added.
                                           * @param access the field's access flags (see {@link Opcodes}).
                                           * @param name the field's name.
                                    --- 96,102 ----
                                      
                                          /**
                                           * Constructs a new {@link FieldWriter}.
                                    !      *
                                           * @param cw the class writer to which this field must be added.
                                           * @param access the field's access flags (see {@link Opcodes}).
                                           * @param name the field's name.
                                    *************** final class FieldWriter implements Field
                                    *** 166,172 ****
                                      
                                          /**
                                           * Returns the size of this field.
                                    !      * 
                                           * @return the size of this field.
                                           */
                                          int getSize() {
                                    --- 166,172 ----
                                      
                                          /**
                                           * Returns the size of this field.
                                    !      *
                                           * @return the size of this field.
                                           */
                                          int getSize() {
                                    *************** final class FieldWriter implements Field
                                    *** 209,215 ****
                                      
                                          /**
                                           * Puts the content of this field into the given byte vector.
                                    !      * 
                                           * @param out where the content of this field must be put.
                                           */
                                          void put(final ByteVector out) {
                                    --- 209,215 ----
                                      
                                          /**
                                           * Puts the content of this field into the given byte vector.
                                    !      *
                                           * @param out where the content of this field must be put.
                                           */
                                          void put(final ByteVector out) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 31,37 ****
                                      
                                      /**
                                       * Information about an exception handler block.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      class Handler {
                                    --- 31,37 ----
                                      
                                      /**
                                       * Information about an exception handler block.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      class Handler {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 32,38 ****
                                      /**
                                       * A constant pool item. Constant pool items can be created with the 'newXXX'
                                       * methods in the {@link ClassWriter} class.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      final class Item {
                                    --- 32,38 ----
                                      /**
                                       * A constant pool item. Constant pool items can be created with the 'newXXX'
                                       * methods in the {@link ClassWriter} class.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      final class Item {
                                    *************** final class Item {
                                    *** 115,121 ****
                                      
                                          /**
                                           * Constructs a copy of the given item.
                                    !      * 
                                           * @param index index of the item to be constructed.
                                           * @param i the item that must be copied into the item to be constructed.
                                           */
                                    --- 115,121 ----
                                      
                                          /**
                                           * Constructs a copy of the given item.
                                    !      *
                                           * @param index index of the item to be constructed.
                                           * @param i the item that must be copied into the item to be constructed.
                                           */
                                    *************** final class Item {
                                    *** 134,140 ****
                                      
                                          /**
                                           * Sets this item to an integer item.
                                    !      * 
                                           * @param intVal the value of this item.
                                           */
                                          void set(final int intVal) {
                                    --- 134,140 ----
                                      
                                          /**
                                           * Sets this item to an integer item.
                                    !      *
                                           * @param intVal the value of this item.
                                           */
                                          void set(final int intVal) {
                                    *************** final class Item {
                                    *** 145,151 ****
                                      
                                          /**
                                           * Sets this item to a long item.
                                    !      * 
                                           * @param longVal the value of this item.
                                           */
                                          void set(final long longVal) {
                                    --- 145,151 ----
                                      
                                          /**
                                           * Sets this item to a long item.
                                    !      *
                                           * @param longVal the value of this item.
                                           */
                                          void set(final long longVal) {
                                    *************** final class Item {
                                    *** 156,162 ****
                                      
                                          /**
                                           * Sets this item to a float item.
                                    !      * 
                                           * @param floatVal the value of this item.
                                           */
                                          void set(final float floatVal) {
                                    --- 156,162 ----
                                      
                                          /**
                                           * Sets this item to a float item.
                                    !      *
                                           * @param floatVal the value of this item.
                                           */
                                          void set(final float floatVal) {
                                    *************** final class Item {
                                    *** 167,173 ****
                                      
                                          /**
                                           * Sets this item to a double item.
                                    !      * 
                                           * @param doubleVal the value of this item.
                                           */
                                          void set(final double doubleVal) {
                                    --- 167,173 ----
                                      
                                          /**
                                           * Sets this item to a double item.
                                    !      *
                                           * @param doubleVal the value of this item.
                                           */
                                          void set(final double doubleVal) {
                                    *************** final class Item {
                                    *** 178,184 ****
                                      
                                          /**
                                           * Sets this item to an item that do not hold a primitive value.
                                    !      * 
                                           * @param type the type of this item.
                                           * @param strVal1 first part of the value of this item.
                                           * @param strVal2 second part of the value of this item.
                                    --- 178,184 ----
                                      
                                          /**
                                           * Sets this item to an item that do not hold a primitive value.
                                    !      *
                                           * @param type the type of this item.
                                           * @param strVal1 first part of the value of this item.
                                           * @param strVal2 second part of the value of this item.
                                    *************** final class Item {
                                    *** 206,212 ****
                                                      return;
                                                  // ClassWriter.FIELD:
                                                  // ClassWriter.METH:
                                    !             // ClassWriter.IMETH:                    
                                                  default:
                                                      hashCode = 0x7FFFFFFF & (type + strVal1.hashCode()
                                                              * strVal2.hashCode() * strVal3.hashCode());
                                    --- 206,212 ----
                                                      return;
                                                  // ClassWriter.FIELD:
                                                  // ClassWriter.METH:
                                    !             // ClassWriter.IMETH:
                                                  default:
                                                      hashCode = 0x7FFFFFFF & (type + strVal1.hashCode()
                                                              * strVal2.hashCode() * strVal3.hashCode());
                                    *************** final class Item {
                                    *** 215,221 ****
                                      
                                          /**
                                           * Indicates if the given item is equal to this one.
                                    !      * 
                                           * @param i the item to be compared to this one.
                                           * @return <tt>true</tt> if the given item if equal to this one,
                                           *         <tt>false</tt> otherwise.
                                    --- 215,221 ----
                                      
                                          /**
                                           * Indicates if the given item is equal to this one.
                                    !      *
                                           * @param i the item to be compared to this one.
                                           * @return <tt>true</tt> if the given item if equal to this one,
                                           *         <tt>false</tt> otherwise.
                                    *************** final class Item {
                                    *** 240,246 ****
                                                                  && i.strVal2.equals(strVal2);
                                                      // ClassWriter.FIELD:
                                                      // ClassWriter.METH:
                                    !                 // ClassWriter.IMETH:                    
                                                      default:
                                                          return i.strVal1.equals(strVal1)
                                                                  && i.strVal2.equals(strVal2)
                                    --- 240,246 ----
                                                                  && i.strVal2.equals(strVal2);
                                                      // ClassWriter.FIELD:
                                                      // ClassWriter.METH:
                                    !                 // ClassWriter.IMETH:
                                                      default:
                                                          return i.strVal1.equals(strVal1)
                                                                  && i.strVal2.equals(strVal2)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 32,38 ****
                                      /**
                                       * A label represents a position in the bytecode of a method. Labels are used
                                       * for jump, goto, and switch instructions, and for try catch blocks.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class Label {
                                    --- 32,38 ----
                                      /**
                                       * A label represents a position in the bytecode of a method. Labels are used
                                       * for jump, goto, and switch instructions, and for try catch blocks.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class Label {
                                    *************** public class Label {
                                    *** 136,142 ****
                                           * from the start of the method's bytecode. <i>This method is intended for
                                           * {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      * 
                                           * @return the offset corresponding to this label.
                                           * @throws IllegalStateException if this label is not resolved yet.
                                           */
                                    --- 136,142 ----
                                           * from the start of the method's bytecode. <i>This method is intended for
                                           * {@link Attribute} sub classes, and is normally not needed by class
                                           * generators or adapters.</i>
                                    !      *
                                           * @return the offset corresponding to this label.
                                           * @throws IllegalStateException if this label is not resolved yet.
                                           */
                                    *************** public class Label {
                                    *** 152,158 ****
                                           * position of the label is known, the offset is computed and written
                                           * directly. Otherwise, a null offset is written and a new forward reference
                                           * is declared for this label.
                                    !      * 
                                           * @param owner the code writer that calls this method.
                                           * @param out the bytecode of the method.
                                           * @param source the position of first byte of the bytecode instruction that
                                    --- 152,158 ----
                                           * position of the label is known, the offset is computed and written
                                           * directly. Otherwise, a null offset is written and a new forward reference
                                           * is declared for this label.
                                    !      *
                                           * @param owner the code writer that calls this method.
                                           * @param out the bytecode of the method.
                                           * @param source the position of first byte of the bytecode instruction that
                                    *************** public class Label {
                                    *** 190,196 ****
                                           * for a true forward reference, i.e. only if this label is not resolved
                                           * yet. For backward references, the offset of the reference can be, and
                                           * must be, computed and stored directly.
                                    !      * 
                                           * @param sourcePosition the position of the referencing instruction. This
                                           *        position will be used to compute the offset of this forward
                                           *        reference.
                                    --- 190,196 ----
                                           * for a true forward reference, i.e. only if this label is not resolved
                                           * yet. For backward references, the offset of the reference can be, and
                                           * must be, computed and stored directly.
                                    !      *
                                           * @param sourcePosition the position of the referencing instruction. This
                                           *        position will be used to compute the offset of this forward
                                           *        reference.
                                    *************** public class Label {
                                    *** 222,228 ****
                                           * when this label is added to the bytecode of the method, i.e. when its
                                           * position becomes known. This method fills in the blanks that where left
                                           * in the bytecode by each forward reference previously added to this label.
                                    !      * 
                                           * @param owner the code writer that calls this method.
                                           * @param position the position of this label in the bytecode.
                                           * @param data the bytecode of the method.
                                    --- 222,228 ----
                                           * when this label is added to the bytecode of the method, i.e. when its
                                           * position becomes known. This method fills in the blanks that where left
                                           * in the bytecode by each forward reference previously added to this label.
                                    !      *
                                           * @param owner the code writer that calls this method.
                                           * @param position the position of this label in the bytecode.
                                           * @param data the bytecode of the method.
                                    *************** public class Label {
                                    *** 290,296 ****
                                      
                                          /**
                                           * Returns a string representation of this label.
                                    !      * 
                                           * @return a string representation of this label.
                                           */
                                          public String toString() {
                                    --- 290,296 ----
                                      
                                          /**
                                           * Returns a string representation of this label.
                                    !      *
                                           * @return a string representation of this label.
                                           */
                                          public String toString() {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 34,40 ****
                                       * {@link MethodVisitor}. This class can be used as a super class to quickly
                                       * implement usefull method adapter classes, just by overriding the necessary
                                       * methods.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class MethodAdapter implements MethodVisitor {
                                    --- 34,40 ----
                                       * {@link MethodVisitor}. This class can be used as a super class to quickly
                                       * implement usefull method adapter classes, just by overriding the necessary
                                       * methods.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class MethodAdapter implements MethodVisitor {
                                    *************** public class MethodAdapter implements Me
                                    *** 46,52 ****
                                      
                                          /**
                                           * Constructs a new {@link MethodAdapter} object.
                                    !      * 
                                           * @param mv the code visitor to which this adapter must delegate calls.
                                           */
                                          public MethodAdapter(final MethodVisitor mv) {
                                    --- 46,52 ----
                                      
                                          /**
                                           * Constructs a new {@link MethodAdapter} object.
                                    !      *
                                           * @param mv the code visitor to which this adapter must delegate calls.
                                           */
                                          public MethodAdapter(final MethodVisitor mv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 41,47 ****
                                       * of the visited code, and the <tt>visitLocalVariable</tt> and <tt>visitLineNumber</tt>
                                       * methods must be called <i>after</i> the labels passed as arguments have been
                                       * visited.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public interface MethodVisitor {
                                    --- 41,47 ----
                                       * of the visited code, and the <tt>visitLocalVariable</tt> and <tt>visitLineNumber</tt>
                                       * methods must be called <i>after</i> the labels passed as arguments have been
                                       * visited.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public interface MethodVisitor {
                                    *************** public interface MethodVisitor {
                                    *** 52,58 ****
                                      
                                          /**
                                           * Visits the default value of this annotation interface method.
                                    !      * 
                                           * @return a non null visitor to the visit the actual default value of this
                                           *         annotation interface method. The 'name' parameters passed to the
                                           *         methods of this annotation visitor are ignored. Moreover, exacly
                                    --- 52,58 ----
                                      
                                          /**
                                           * Visits the default value of this annotation interface method.
                                    !      *
                                           * @return a non null visitor to the visit the actual default value of this
                                           *         annotation interface method. The 'name' parameters passed to the
                                           *         methods of this annotation visitor are ignored. Moreover, exacly
                                    *************** public interface MethodVisitor {
                                    *** 63,69 ****
                                      
                                          /**
                                           * Visits an annotation of this method.
                                    !      * 
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a non null visitor to visit the annotation values.
                                    --- 63,69 ----
                                      
                                          /**
                                           * Visits an annotation of this method.
                                    !      *
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a non null visitor to visit the annotation values.
                                    *************** public interface MethodVisitor {
                                    *** 72,78 ****
                                      
                                          /**
                                           * Visits an annotation of a parameter this method.
                                    !      * 
                                           * @param parameter the parameter index.
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                    --- 72,78 ----
                                      
                                          /**
                                           * Visits an annotation of a parameter this method.
                                    !      *
                                           * @param parameter the parameter index.
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                    *************** public interface MethodVisitor {
                                    *** 85,91 ****
                                      
                                          /**
                                           * Visits a non standard attribute of this method.
                                    !      * 
                                           * @param attr an attribute.
                                           */
                                          void visitAttribute(Attribute attr);
                                    --- 85,91 ----
                                      
                                          /**
                                           * Visits a non standard attribute of this method.
                                    !      *
                                           * @param attr an attribute.
                                           */
                                          void visitAttribute(Attribute attr);
                                    *************** public interface MethodVisitor {
                                    *** 101,107 ****
                                      
                                          /**
                                           * Visits a zero operand instruction.
                                    !      * 
                                           * @param opcode the opcode of the instruction to be visited. This opcode is
                                           *        either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2,
                                           *        ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0,
                                    --- 101,107 ----
                                      
                                          /**
                                           * Visits a zero operand instruction.
                                    !      *
                                           * @param opcode the opcode of the instruction to be visited. This opcode is
                                           *        either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2,
                                           *        ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0,
                                    *************** public interface MethodVisitor {
                                    *** 121,127 ****
                                      
                                          /**
                                           * Visits an instruction with a single int operand.
                                    !      * 
                                           * @param opcode the opcode of the instruction to be visited. This opcode is
                                           *        either BIPUSH, SIPUSH or NEWARRAY.
                                           * @param operand the operand of the instruction to be visited.<br>
                                    --- 121,127 ----
                                      
                                          /**
                                           * Visits an instruction with a single int operand.
                                    !      *
                                           * @param opcode the opcode of the instruction to be visited. This opcode is
                                           *        either BIPUSH, SIPUSH or NEWARRAY.
                                           * @param operand the operand of the instruction to be visited.<br>
                                    *************** public interface MethodVisitor {
                                    *** 140,146 ****
                                          /**
                                           * Visits a local variable instruction. A local variable instruction is an
                                           * instruction that loads or stores the value of a local variable.
                                    !      * 
                                           * @param opcode the opcode of the local variable instruction to be visited.
                                           *        This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE,
                                           *        LSTORE, FSTORE, DSTORE, ASTORE or RET.
                                    --- 140,146 ----
                                          /**
                                           * Visits a local variable instruction. A local variable instruction is an
                                           * instruction that loads or stores the value of a local variable.
                                    !      *
                                           * @param opcode the opcode of the local variable instruction to be visited.
                                           *        This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE,
                                           *        LSTORE, FSTORE, DSTORE, ASTORE or RET.
                                    *************** public interface MethodVisitor {
                                    *** 152,158 ****
                                          /**
                                           * Visits a type instruction. A type instruction is an instruction that
                                           * takes a type descriptor as parameter.
                                    !      * 
                                           * @param opcode the opcode of the type instruction to be visited. This
                                           *        opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.
                                           * @param desc the operand of the instruction to be visited. This operand is
                                    --- 152,158 ----
                                          /**
                                           * Visits a type instruction. A type instruction is an instruction that
                                           * takes a type descriptor as parameter.
                                    !      *
                                           * @param opcode the opcode of the type instruction to be visited. This
                                           *        opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.
                                           * @param desc the operand of the instruction to be visited. This operand is
                                    *************** public interface MethodVisitor {
                                    *** 164,170 ****
                                          /**
                                           * Visits a field instruction. A field instruction is an instruction that
                                           * loads or stores the value of a field of an object.
                                    !      * 
                                           * @param opcode the opcode of the type instruction to be visited. This
                                           *        opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.
                                           * @param owner the internal name of the field's owner class (see {@link
                                    --- 164,170 ----
                                          /**
                                           * Visits a field instruction. A field instruction is an instruction that
                                           * loads or stores the value of a field of an object.
                                    !      *
                                           * @param opcode the opcode of the type instruction to be visited. This
                                           *        opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.
                                           * @param owner the internal name of the field's owner class (see {@link
                                    *************** public interface MethodVisitor {
                                    *** 177,183 ****
                                          /**
                                           * Visits a method instruction. A method instruction is an instruction that
                                           * invokes a method.
                                    !      * 
                                           * @param opcode the opcode of the type instruction to be visited. This
                                           *        opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or
                                           *        INVOKEINTERFACE.
                                    --- 177,183 ----
                                          /**
                                           * Visits a method instruction. A method instruction is an instruction that
                                           * invokes a method.
                                    !      *
                                           * @param opcode the opcode of the type instruction to be visited. This
                                           *        opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or
                                           *        INVOKEINTERFACE.
                                    *************** public interface MethodVisitor {
                                    *** 191,197 ****
                                          /**
                                           * Visits a jump instruction. A jump instruction is an instruction that may
                                           * jump to another instruction.
                                    !      * 
                                           * @param opcode the opcode of the type instruction to be visited. This
                                           *        opcode is either IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ,
                                           *        IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ,
                                    --- 191,197 ----
                                          /**
                                           * Visits a jump instruction. A jump instruction is an instruction that may
                                           * jump to another instruction.
                                    !      *
                                           * @param opcode the opcode of the type instruction to be visited. This
                                           *        opcode is either IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ,
                                           *        IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ,
                                    *************** public interface MethodVisitor {
                                    *** 205,211 ****
                                          /**
                                           * Visits a label. A label designates the instruction that will be visited
                                           * just after it.
                                    !      * 
                                           * @param label a {@link Label Label} object.
                                           */
                                          void visitLabel(Label label);
                                    --- 205,211 ----
                                          /**
                                           * Visits a label. A label designates the instruction that will be visited
                                           * just after it.
                                    !      *
                                           * @param label a {@link Label Label} object.
                                           */
                                          void visitLabel(Label label);
                                    *************** public interface MethodVisitor {
                                    *** 216,222 ****
                                      
                                          /**
                                           * Visits a LDC instruction.
                                    !      * 
                                           * @param cst the constant to be loaded on the stack. This parameter must be
                                           *        a non null {@link Integer}, a {@link Float}, a {@link Long}, a
                                           *        {@link Double} a {@link String} (or a {@link Type} for
                                    --- 216,222 ----
                                      
                                          /**
                                           * Visits a LDC instruction.
                                    !      *
                                           * @param cst the constant to be loaded on the stack. This parameter must be
                                           *        a non null {@link Integer}, a {@link Float}, a {@link Long}, a
                                           *        {@link Double} a {@link String} (or a {@link Type} for
                                    *************** public interface MethodVisitor {
                                    *** 227,233 ****
                                      
                                          /**
                                           * Visits an IINC instruction.
                                    !      * 
                                           * @param var index of the local variable to be incremented.
                                           * @param increment amount to increment the local variable by.
                                           */
                                    --- 227,233 ----
                                      
                                          /**
                                           * Visits an IINC instruction.
                                    !      *
                                           * @param var index of the local variable to be incremented.
                                           * @param increment amount to increment the local variable by.
                                           */
                                    *************** public interface MethodVisitor {
                                    *** 235,241 ****
                                      
                                          /**
                                           * Visits a TABLESWITCH instruction.
                                    !      * 
                                           * @param min the minimum key value.
                                           * @param max the maximum key value.
                                           * @param dflt beginning of the default handler block.
                                    --- 235,241 ----
                                      
                                          /**
                                           * Visits a TABLESWITCH instruction.
                                    !      *
                                           * @param min the minimum key value.
                                           * @param max the maximum key value.
                                           * @param dflt beginning of the default handler block.
                                    *************** public interface MethodVisitor {
                                    *** 246,252 ****
                                      
                                          /**
                                           * Visits a LOOKUPSWITCH instruction.
                                    !      * 
                                           * @param dflt beginning of the default handler block.
                                           * @param keys the values of the keys.
                                           * @param labels beginnings of the handler blocks. <tt>labels[i]</tt> is
                                    --- 246,252 ----
                                      
                                          /**
                                           * Visits a LOOKUPSWITCH instruction.
                                    !      *
                                           * @param dflt beginning of the default handler block.
                                           * @param keys the values of the keys.
                                           * @param labels beginnings of the handler blocks. <tt>labels[i]</tt> is
                                    *************** public interface MethodVisitor {
                                    *** 256,262 ****
                                      
                                          /**
                                           * Visits a MULTIANEWARRAY instruction.
                                    !      * 
                                           * @param desc an array type descriptor (see {@link Type Type}).
                                           * @param dims number of dimensions of the array to allocate.
                                           */
                                    --- 256,262 ----
                                      
                                          /**
                                           * Visits a MULTIANEWARRAY instruction.
                                    !      *
                                           * @param desc an array type descriptor (see {@link Type Type}).
                                           * @param dims number of dimensions of the array to allocate.
                                           */
                                    *************** public interface MethodVisitor {
                                    *** 269,275 ****
                                      
                                          /**
                                           * Visits a try catch block.
                                    !      * 
                                           * @param start beginning of the exception handler's scope (inclusive).
                                           * @param end end of the exception handler's scope (exclusive).
                                           * @param handler beginning of the exception handler's code.
                                    --- 269,275 ----
                                      
                                          /**
                                           * Visits a try catch block.
                                    !      *
                                           * @param start beginning of the exception handler's scope (inclusive).
                                           * @param end end of the exception handler's scope (exclusive).
                                           * @param handler beginning of the exception handler's code.
                                    *************** public interface MethodVisitor {
                                    *** 281,287 ****
                                      
                                          /**
                                           * Visits a local variable declaration.
                                    !      * 
                                           * @param name the name of a local variable.
                                           * @param desc the type descriptor of this local variable.
                                           * @param signature the type signature of this local variable. May be
                                    --- 281,287 ----
                                      
                                          /**
                                           * Visits a local variable declaration.
                                    !      *
                                           * @param name the name of a local variable.
                                           * @param desc the type descriptor of this local variable.
                                           * @param signature the type signature of this local variable. May be
                                    *************** public interface MethodVisitor {
                                    *** 306,312 ****
                                      
                                          /**
                                           * Visits a line number declaration.
                                    !      * 
                                           * @param line a line number. This number refers to the source file from
                                           *        which the class was compiled.
                                           * @param start the first instruction corresponding to this line number.
                                    --- 306,312 ----
                                      
                                          /**
                                           * Visits a line number declaration.
                                    !      *
                                           * @param line a line number. This number refers to the source file from
                                           *        which the class was compiled.
                                           * @param start the first instruction corresponding to this line number.
                                    *************** public interface MethodVisitor {
                                    *** 319,325 ****
                                          /**
                                           * Visits the maximum stack size and the maximum number of local variables
                                           * of the method.
                                    !      * 
                                           * @param maxStack maximum stack size of the method.
                                           * @param maxLocals maximum number of local variables for the method.
                                           */
                                    --- 319,325 ----
                                          /**
                                           * Visits the maximum stack size and the maximum number of local variables
                                           * of the method.
                                    !      *
                                           * @param maxStack maximum stack size of the method.
                                           * @param maxLocals maximum number of local variables for the method.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 33,39 ****
                                       * A {@link MethodVisitor} that generates methods in bytecode form. Each visit
                                       * method of this class appends the bytecode corresponding to the visited
                                       * instruction to a byte vector, in the order these methods are called.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    --- 33,39 ----
                                       * A {@link MethodVisitor} that generates methods in bytecode form. Each visit
                                       * method of this class appends the bytecode corresponding to the visited
                                       * instruction to a byte vector, in the order these methods are called.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    *************** class MethodWriter implements MethodVisi
                                    *** 500,506 ****
                                      
                                          /**
                                           * Constructs a new {@link MethodWriter}.
                                    !      * 
                                           * @param cw the class writer in which the method must be added.
                                           * @param access the method's access flags (see {@link Opcodes}).
                                           * @param name the method's name.
                                    --- 500,506 ----
                                      
                                          /**
                                           * Constructs a new {@link MethodWriter}.
                                    !      *
                                           * @param cw the class writer in which the method must be added.
                                           * @param access the method's access flags (see {@link Opcodes}).
                                           * @param name the method's name.
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1056,1062 ****
                                                      .putShort(cw.newUTF8(name))
                                                      .putShort(cw.newUTF8(desc))
                                                      .putShort(index);
                                    !         
                                              if(computeMaxs) {
                                                  // updates max locals
                                                  char c = desc.charAt(0);
                                    --- 1056,1062 ----
                                                      .putShort(cw.newUTF8(name))
                                                      .putShort(cw.newUTF8(desc))
                                                      .putShort(index);
                                    ! 
                                              if(computeMaxs) {
                                                  // updates max locals
                                                  char c = desc.charAt(0);
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1136,1142 ****
                                      
                                          /**
                                           * Computes the size of the arguments and of the return value of a method.
                                    !      * 
                                           * @param desc the descriptor of a method.
                                           * @return the size of the arguments of the method (plus one for the
                                           *         implicit this argument), argSize, and the size of its return
                                    --- 1136,1142 ----
                                      
                                          /**
                                           * Computes the size of the arguments and of the return value of a method.
                                    !      *
                                           * @param desc the descriptor of a method.
                                           * @return the size of the arguments of the method (plus one for the
                                           *         implicit this argument), argSize, and the size of its return
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1174,1180 ****
                                      
                                          /**
                                           * Adds a successor to the {@link #currentBlock currentBlock} block.
                                    !      * 
                                           * @param stackSize the current (relative) stack size in the current block.
                                           * @param successor the successor block to be added to the current block.
                                           */
                                    --- 1174,1180 ----
                                      
                                          /**
                                           * Adds a successor to the {@link #currentBlock currentBlock} block.
                                    !      *
                                           * @param stackSize the current (relative) stack size in the current block.
                                           * @param successor the successor block to be added to the current block.
                                           */
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1194,1200 ****
                                      
                                          /**
                                           * Returns the size of the bytecode of this method.
                                    !      * 
                                           * @return the size of the bytecode of this method.
                                           */
                                          final int getSize() {
                                    --- 1194,1200 ----
                                      
                                          /**
                                           * Returns the size of the bytecode of this method.
                                    !      *
                                           * @return the size of the bytecode of this method.
                                           */
                                          final int getSize() {
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1292,1298 ****
                                      
                                          /**
                                           * Puts the bytecode of this method in the given byte vector.
                                    !      * 
                                           * @param out the byte vector into which the bytecode of this method must be
                                           *        copied.
                                           */
                                    --- 1292,1298 ----
                                      
                                          /**
                                           * Puts the bytecode of this method in the given byte vector.
                                    !      *
                                           * @param out the byte vector into which the bytecode of this method must be
                                           *        copied.
                                           */
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1484,1490 ****
                                           * that is being built has been visited</i>. In particular, the
                                           * {@link Label Label} objects used to construct the method are no longer
                                           * valid after this method has been called.
                                    !      * 
                                           * @param indexes current positions of the instructions to be resized. Each
                                           *        instruction must be designated by the index of its <i>last</i>
                                           *        byte, plus one (or, in other words, by the index of the <i>first</i>
                                    --- 1484,1490 ----
                                           * that is being built has been visited</i>. In particular, the
                                           * {@link Label Label} objects used to construct the method are no longer
                                           * valid after this method has been called.
                                    !      *
                                           * @param indexes current positions of the instructions to be resized. Each
                                           *        instruction must be designated by the index of its <i>last</i>
                                           *        byte, plus one (or, in other words, by the index of the <i>first</i>
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1518,1534 ****
                                               * so on. The first step of the algorithm consists in finding all the
                                               * instructions that need to be resized, without modifying the code.
                                               * This is done by the following "fix point" algorithm:
                                    !          * 
                                               * Parse the code to find the jump instructions whose offset will need
                                               * more than 2 bytes to be stored (the future offset is computed from
                                               * the current offset and from the number of bytes that will be inserted
                                               * or removed between the source and target instructions). For each such
                                               * instruction, adds an entry in (a copy of) the indexes and sizes
                                               * arrays (if this has not already been done in a previous iteration!).
                                    !          * 
                                               * If at least one entry has been added during the previous step, go
                                               * back to the beginning, otherwise stop.
                                    !          * 
                                               * In fact the real algorithm is complicated by the fact that the size
                                               * of TABLESWITCH and LOOKUPSWITCH instructions depends on their
                                               * position in the bytecode (because of padding). In order to ensure the
                                    --- 1518,1534 ----
                                               * so on. The first step of the algorithm consists in finding all the
                                               * instructions that need to be resized, without modifying the code.
                                               * This is done by the following "fix point" algorithm:
                                    !          *
                                               * Parse the code to find the jump instructions whose offset will need
                                               * more than 2 bytes to be stored (the future offset is computed from
                                               * the current offset and from the number of bytes that will be inserted
                                               * or removed between the source and target instructions). For each such
                                               * instruction, adds an entry in (a copy of) the indexes and sizes
                                               * arrays (if this has not already been done in a previous iteration!).
                                    !          *
                                               * If at least one entry has been added during the previous step, go
                                               * back to the beginning, otherwise stop.
                                    !          *
                                               * In fact the real algorithm is complicated by the fact that the size
                                               * of TABLESWITCH and LOOKUPSWITCH instructions depends on their
                                               * position in the bytecode (because of padding). In order to ensure the
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1909,1915 ****
                                      
                                          /**
                                           * Reads an unsigned short value in the given byte array.
                                    !      * 
                                           * @param b a byte array.
                                           * @param index the start index of the value to be read.
                                           * @return the read value.
                                    --- 1909,1915 ----
                                      
                                          /**
                                           * Reads an unsigned short value in the given byte array.
                                    !      *
                                           * @param b a byte array.
                                           * @param index the start index of the value to be read.
                                           * @return the read value.
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1920,1926 ****
                                      
                                          /**
                                           * Reads a signed short value in the given byte array.
                                    !      * 
                                           * @param b a byte array.
                                           * @param index the start index of the value to be read.
                                           * @return the read value.
                                    --- 1920,1926 ----
                                      
                                          /**
                                           * Reads a signed short value in the given byte array.
                                    !      *
                                           * @param b a byte array.
                                           * @param index the start index of the value to be read.
                                           * @return the read value.
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1931,1937 ****
                                      
                                          /**
                                           * Reads a signed int value in the given byte array.
                                    !      * 
                                           * @param b a byte array.
                                           * @param index the start index of the value to be read.
                                           * @return the read value.
                                    --- 1931,1937 ----
                                      
                                          /**
                                           * Reads a signed int value in the given byte array.
                                    !      *
                                           * @param b a byte array.
                                           * @param index the start index of the value to be read.
                                           * @return the read value.
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1943,1949 ****
                                      
                                          /**
                                           * Writes a short value in the given byte array.
                                    !      * 
                                           * @param b a byte array.
                                           * @param index where the first byte of the short value must be written.
                                           * @param s the value to be written in the given byte array.
                                    --- 1943,1949 ----
                                      
                                          /**
                                           * Writes a short value in the given byte array.
                                    !      *
                                           * @param b a byte array.
                                           * @param index where the first byte of the short value must be written.
                                           * @param s the value to be written in the given byte array.
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1958,1964 ****
                                           * to have several entries for the same instruction in the <tt>indexes</tt>
                                           * and <tt>sizes</tt>: two entries (index=a,size=b) and (index=a,size=b')
                                           * are equivalent to a single entry (index=a,size=b+b').
                                    !      * 
                                           * @param indexes current positions of the instructions to be resized. Each
                                           *        instruction must be designated by the index of its <i>last</i>
                                           *        byte, plus one (or, in other words, by the index of the <i>first</i>
                                    --- 1958,1964 ----
                                           * to have several entries for the same instruction in the <tt>indexes</tt>
                                           * and <tt>sizes</tt>: two entries (index=a,size=b) and (index=a,size=b')
                                           * are equivalent to a single entry (index=a,size=b+b').
                                    !      *
                                           * @param indexes current positions of the instructions to be resized. Each
                                           *        instruction must be designated by the index of its <i>last</i>
                                           *        byte, plus one (or, in other words, by the index of the <i>first</i>
                                    *************** class MethodWriter implements MethodVisi
                                    *** 1992,2001 ****
                                              }
                                              return offset;
                                          }
                                    !     
                                          /**
                                           * Updates the offset of the given label.
                                    !      * 
                                           * @param indexes current positions of the instructions to be resized. Each
                                           *        instruction must be designated by the index of its <i>last</i>
                                           *        byte, plus one (or, in other words, by the index of the <i>first</i>
                                    --- 1992,2001 ----
                                              }
                                              return offset;
                                          }
                                    ! 
                                          /**
                                           * Updates the offset of the given label.
                                    !      *
                                           * @param indexes current positions of the instructions to be resized. Each
                                           *        instruction must be designated by the index of its <i>last</i>
                                           *        byte, plus one (or, in other words, by the index of the <i>first</i>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm;
                                    *** 37,43 ****
                                       * opcodes are therefore not defined in this interface. Likewise for LDC,
                                       * automatically replaced by LDC_W or LDC2_W when necessary, WIDE, GOTO_W and
                                       * JSR_W.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    --- 37,43 ----
                                       * opcodes are therefore not defined in this interface. Likewise for LDC,
                                       * automatically replaced by LDC_W or LDC2_W when necessary, WIDE, GOTO_W and
                                       * JSR_W.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.lang.reflect.Method;
                                    *** 34,40 ****
                                      /**
                                       * A Java type. This class can be used to make it easier to manipulate type and
                                       * method descriptors.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Chris Nokleberg
                                       */
                                    --- 34,40 ----
                                      /**
                                       * A Java type. This class can be used to make it easier to manipulate type and
                                       * method descriptors.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Chris Nokleberg
                                       */
                                    *************** public class Type {
                                    *** 172,178 ****
                                      
                                          /**
                                           * Constructs a primitive type.
                                    !      * 
                                           * @param sort the sort of the primitive type to be constructed.
                                           */
                                          private Type(final int sort) {
                                    --- 172,178 ----
                                      
                                          /**
                                           * Constructs a primitive type.
                                    !      *
                                           * @param sort the sort of the primitive type to be constructed.
                                           */
                                          private Type(final int sort) {
                                    *************** public class Type {
                                    *** 182,188 ****
                                      
                                          /**
                                           * Constructs a reference type.
                                    !      * 
                                           * @param sort the sort of the reference type to be constructed.
                                           * @param buf a buffer containing the descriptor of the previous type.
                                           * @param off the offset of this descriptor in the previous buffer.
                                    --- 182,188 ----
                                      
                                          /**
                                           * Constructs a reference type.
                                    !      *
                                           * @param sort the sort of the reference type to be constructed.
                                           * @param buf a buffer containing the descriptor of the previous type.
                                           * @param off the offset of this descriptor in the previous buffer.
                                    *************** public class Type {
                                    *** 198,204 ****
                                      
                                          /**
                                           * Returns the Java type corresponding to the given type descriptor.
                                    !      * 
                                           * @param typeDescriptor a type descriptor.
                                           * @return the Java type corresponding to the given type descriptor.
                                           */
                                    --- 198,204 ----
                                      
                                          /**
                                           * Returns the Java type corresponding to the given type descriptor.
                                    !      *
                                           * @param typeDescriptor a type descriptor.
                                           * @return the Java type corresponding to the given type descriptor.
                                           */
                                    *************** public class Type {
                                    *** 208,214 ****
                                      
                                          /**
                                           * Returns the Java type corresponding to the given class.
                                    !      * 
                                           * @param c a class.
                                           * @return the Java type corresponding to the given class.
                                           */
                                    --- 208,214 ----
                                      
                                          /**
                                           * Returns the Java type corresponding to the given class.
                                    !      *
                                           * @param c a class.
                                           * @return the Java type corresponding to the given class.
                                           */
                                    *************** public class Type {
                                    *** 241,247 ****
                                          /**
                                           * Returns the Java types corresponding to the argument types of the given
                                           * method descriptor.
                                    !      * 
                                           * @param methodDescriptor a method descriptor.
                                           * @return the Java types corresponding to the argument types of the given
                                           *         method descriptor.
                                    --- 241,247 ----
                                          /**
                                           * Returns the Java types corresponding to the argument types of the given
                                           * method descriptor.
                                    !      *
                                           * @param methodDescriptor a method descriptor.
                                           * @return the Java types corresponding to the argument types of the given
                                           *         method descriptor.
                                    *************** public class Type {
                                    *** 276,282 ****
                                          /**
                                           * Returns the Java types corresponding to the argument types of the given
                                           * method.
                                    !      * 
                                           * @param method a method.
                                           * @return the Java types corresponding to the argument types of the given
                                           *         method.
                                    --- 276,282 ----
                                          /**
                                           * Returns the Java types corresponding to the argument types of the given
                                           * method.
                                    !      *
                                           * @param method a method.
                                           * @return the Java types corresponding to the argument types of the given
                                           *         method.
                                    *************** public class Type {
                                    *** 293,299 ****
                                          /**
                                           * Returns the Java type corresponding to the return type of the given
                                           * method descriptor.
                                    !      * 
                                           * @param methodDescriptor a method descriptor.
                                           * @return the Java type corresponding to the return type of the given
                                           *         method descriptor.
                                    --- 293,299 ----
                                          /**
                                           * Returns the Java type corresponding to the return type of the given
                                           * method descriptor.
                                    !      *
                                           * @param methodDescriptor a method descriptor.
                                           * @return the Java type corresponding to the return type of the given
                                           *         method descriptor.
                                    *************** public class Type {
                                    *** 306,312 ****
                                          /**
                                           * Returns the Java type corresponding to the return type of the given
                                           * method.
                                    !      * 
                                           * @param method a method.
                                           * @return the Java type corresponding to the return type of the given
                                           *         method.
                                    --- 306,312 ----
                                          /**
                                           * Returns the Java type corresponding to the return type of the given
                                           * method.
                                    !      *
                                           * @param method a method.
                                           * @return the Java type corresponding to the return type of the given
                                           *         method.
                                    *************** public class Type {
                                    *** 317,323 ****
                                      
                                          /**
                                           * Returns the Java type corresponding to the given type descriptor.
                                    !      * 
                                           * @param buf a buffer containing a type descriptor.
                                           * @param off the offset of this descriptor in the previous buffer.
                                           * @return the Java type corresponding to the given type descriptor.
                                    --- 317,323 ----
                                      
                                          /**
                                           * Returns the Java type corresponding to the given type descriptor.
                                    !      *
                                           * @param buf a buffer containing a type descriptor.
                                           * @param off the offset of this descriptor in the previous buffer.
                                           * @return the Java type corresponding to the given type descriptor.
                                    *************** public class Type {
                                    *** 371,377 ****
                                      
                                          /**
                                           * Returns the sort of this Java type.
                                    !      * 
                                           * @return {@link #VOID VOID}, {@link #BOOLEAN BOOLEAN},
                                           *         {@link #CHAR CHAR}, {@link #BYTE BYTE}, {@link #SHORT SHORT},
                                           *         {@link #INT INT}, {@link #FLOAT FLOAT}, {@link #LONG LONG},
                                    --- 371,377 ----
                                      
                                          /**
                                           * Returns the sort of this Java type.
                                    !      *
                                           * @return {@link #VOID VOID}, {@link #BOOLEAN BOOLEAN},
                                           *         {@link #CHAR CHAR}, {@link #BYTE BYTE}, {@link #SHORT SHORT},
                                           *         {@link #INT INT}, {@link #FLOAT FLOAT}, {@link #LONG LONG},
                                    *************** public class Type {
                                    *** 385,391 ****
                                          /**
                                           * Returns the number of dimensions of this array type. This method should
                                           * only be used for an array type.
                                    !      * 
                                           * @return the number of dimensions of this array type.
                                           */
                                          public int getDimensions() {
                                    --- 385,391 ----
                                          /**
                                           * Returns the number of dimensions of this array type. This method should
                                           * only be used for an array type.
                                    !      *
                                           * @return the number of dimensions of this array type.
                                           */
                                          public int getDimensions() {
                                    *************** public class Type {
                                    *** 399,405 ****
                                          /**
                                           * Returns the type of the elements of this array type. This method should
                                           * only be used for an array type.
                                    !      * 
                                           * @return Returns the type of the elements of this array type.
                                           */
                                          public Type getElementType() {
                                    --- 399,405 ----
                                          /**
                                           * Returns the type of the elements of this array type. This method should
                                           * only be used for an array type.
                                    !      *
                                           * @return Returns the type of the elements of this array type.
                                           */
                                          public Type getElementType() {
                                    *************** public class Type {
                                    *** 408,414 ****
                                      
                                          /**
                                           * Returns the name of the class corresponding to this type.
                                    !      * 
                                           * @return the fully qualified name of the class corresponding to this type.
                                           */
                                          public String getClassName() {
                                    --- 408,414 ----
                                      
                                          /**
                                           * Returns the name of the class corresponding to this type.
                                    !      *
                                           * @return the fully qualified name of the class corresponding to this type.
                                           */
                                          public String getClassName() {
                                    *************** public class Type {
                                    *** 447,453 ****
                                           * Returns the internal name of the class corresponding to this object type.
                                           * The internal name of a class is its fully qualified name, where '.' are
                                           * replaced by '/'. This method should only be used for an object type.
                                    !      * 
                                           * @return the internal name of the class corresponding to this object type.
                                           */
                                          public String getInternalName() {
                                    --- 447,453 ----
                                           * Returns the internal name of the class corresponding to this object type.
                                           * The internal name of a class is its fully qualified name, where '.' are
                                           * replaced by '/'. This method should only be used for an object type.
                                    !      *
                                           * @return the internal name of the class corresponding to this object type.
                                           */
                                          public String getInternalName() {
                                    *************** public class Type {
                                    *** 460,466 ****
                                      
                                          /**
                                           * Returns the descriptor corresponding to this Java type.
                                    !      * 
                                           * @return the descriptor corresponding to this Java type.
                                           */
                                          public String getDescriptor() {
                                    --- 460,466 ----
                                      
                                          /**
                                           * Returns the descriptor corresponding to this Java type.
                                    !      *
                                           * @return the descriptor corresponding to this Java type.
                                           */
                                          public String getDescriptor() {
                                    *************** public class Type {
                                    *** 472,478 ****
                                          /**
                                           * Returns the descriptor corresponding to the given argument and return
                                           * types.
                                    !      * 
                                           * @param returnType the return type of the method.
                                           * @param argumentTypes the argument types of the method.
                                           * @return the descriptor corresponding to the given argument and return
                                    --- 472,478 ----
                                          /**
                                           * Returns the descriptor corresponding to the given argument and return
                                           * types.
                                    !      *
                                           * @param returnType the return type of the method.
                                           * @param argumentTypes the argument types of the method.
                                           * @return the descriptor corresponding to the given argument and return
                                    *************** public class Type {
                                    *** 495,501 ****
                                          /**
                                           * Appends the descriptor corresponding to this Java type to the given
                                           * string buffer.
                                    !      * 
                                           * @param buf the string buffer to which the descriptor must be appended.
                                           */
                                          private void getDescriptor(final StringBuffer buf) {
                                    --- 495,501 ----
                                          /**
                                           * Appends the descriptor corresponding to this Java type to the given
                                           * string buffer.
                                    !      *
                                           * @param buf the string buffer to which the descriptor must be appended.
                                           */
                                          private void getDescriptor(final StringBuffer buf) {
                                    *************** public class Type {
                                    *** 542,548 ****
                                          /**
                                           * Returns the internal name of the given class. The internal name of a
                                           * class is its fully qualified name, where '.' are replaced by '/'.
                                    !      * 
                                           * @param c an object class.
                                           * @return the internal name of the given class.
                                           */
                                    --- 542,548 ----
                                          /**
                                           * Returns the internal name of the given class. The internal name of a
                                           * class is its fully qualified name, where '.' are replaced by '/'.
                                    !      *
                                           * @param c an object class.
                                           * @return the internal name of the given class.
                                           */
                                    *************** public class Type {
                                    *** 552,558 ****
                                      
                                          /**
                                           * Returns the descriptor corresponding to the given Java type.
                                    !      * 
                                           * @param c an object class, a primitive class or an array class.
                                           * @return the descriptor corresponding to the given class.
                                           */
                                    --- 552,558 ----
                                      
                                          /**
                                           * Returns the descriptor corresponding to the given Java type.
                                    !      *
                                           * @param c an object class, a primitive class or an array class.
                                           * @return the descriptor corresponding to the given class.
                                           */
                                    *************** public class Type {
                                    *** 564,570 ****
                                      
                                          /**
                                           * Returns the descriptor corresponding to the given method.
                                    !      * 
                                           * @param m a {@link Method Method} object.
                                           * @return the descriptor of the given method.
                                           */
                                    --- 564,570 ----
                                      
                                          /**
                                           * Returns the descriptor corresponding to the given method.
                                    !      *
                                           * @param m a {@link Method Method} object.
                                           * @return the descriptor of the given method.
                                           */
                                    *************** public class Type {
                                    *** 582,588 ****
                                      
                                          /**
                                           * Appends the descriptor of the given class to the given string buffer.
                                    !      * 
                                           * @param buf the string buffer to which the descriptor must be appended.
                                           * @param c the class whose descriptor must be computed.
                                           */
                                    --- 582,588 ----
                                      
                                          /**
                                           * Appends the descriptor of the given class to the given string buffer.
                                    !      *
                                           * @param buf the string buffer to which the descriptor must be appended.
                                           * @param c the class whose descriptor must be computed.
                                           */
                                    *************** public class Type {
                                    *** 635,641 ****
                                      
                                          /**
                                           * Returns the size of values of this type.
                                    !      * 
                                           * @return the size of values of this type, i.e., 2 for <tt>long</tt> and
                                           *         <tt>double</tt>, and 1 otherwise.
                                           */
                                    --- 635,641 ----
                                      
                                          /**
                                           * Returns the size of values of this type.
                                    !      *
                                           * @return the size of values of this type, i.e., 2 for <tt>long</tt> and
                                           *         <tt>double</tt>, and 1 otherwise.
                                           */
                                    *************** public class Type {
                                    *** 645,651 ****
                                      
                                          /**
                                           * Returns a JVM instruction opcode adapted to this Java type.
                                    !      * 
                                           * @param opcode a JVM instruction opcode. This opcode must be one of ILOAD,
                                           *        ISTORE, IALOAD, IASTORE, IADD, ISUB, IMUL, IDIV, IREM, INEG, ISHL,
                                           *        ISHR, IUSHR, IAND, IOR, IXOR and IRETURN.
                                    --- 645,651 ----
                                      
                                          /**
                                           * Returns a JVM instruction opcode adapted to this Java type.
                                    !      *
                                           * @param opcode a JVM instruction opcode. This opcode must be one of ILOAD,
                                           *        ISTORE, IALOAD, IASTORE, IADD, ISUB, IMUL, IDIV, IREM, INEG, ISHL,
                                           *        ISHR, IUSHR, IAND, IOR, IXOR and IRETURN.
                                    *************** public class Type {
                                    *** 706,712 ****
                                      
                                          /**
                                           * Tests if the given object is equal to this type.
                                    !      * 
                                           * @param o the object to be compared to this type.
                                           * @return <tt>true</tt> if the given object is equal to this type.
                                           */
                                    --- 706,712 ----
                                      
                                          /**
                                           * Tests if the given object is equal to this type.
                                    !      *
                                           * @param o the object to be compared to this type.
                                           * @return <tt>true</tt> if the given object is equal to this type.
                                           */
                                    *************** public class Type {
                                    *** 736,742 ****
                                      
                                          /**
                                           * Returns a hash code value for this type.
                                    !      * 
                                           * @return a hash code value for this type.
                                           */
                                          public int hashCode() {
                                    --- 736,742 ----
                                      
                                          /**
                                           * Returns a hash code value for this type.
                                    !      *
                                           * @return a hash code value for this type.
                                           */
                                          public int hashCode() {
                                    *************** public class Type {
                                    *** 751,757 ****
                                      
                                          /**
                                           * Returns a string representation of this type.
                                    !      * 
                                           * @return the descriptor of this type.
                                           */
                                          public String toString() {
                                    --- 751,757 ----
                                      
                                          /**
                                           * Returns a string representation of this type.
                                    !      *
                                           * @return the descriptor of this type.
                                           */
                                          public String toString() {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Label;
                                    *** 56,62 ****
                                       * represents the type u4.</li> <li>If the maximum size of the operand stack
                                       * is 65535 or less, then <tt>ustack</tt> represents the type u2; otherwise
                                       * ustack represents the type u4.</li> </ul>
                                    !  * 
                                       * <pre>
                                       * stack_map { // attribute StackMap
                                       *   u2 attribute_name_index;
                                    --- 56,62 ----
                                       * represents the type u4.</li> <li>If the maximum size of the operand stack
                                       * is 65535 or less, then <tt>ustack</tt> represents the type u2; otherwise
                                       * ustack represents the type u4.</li> </ul>
                                    !  *
                                       * <pre>
                                       * stack_map { // attribute StackMap
                                       *   u2 attribute_name_index;
                                    *************** import org.objectweb.asm.Label;
                                    *** 65,73 ****
                                       *   stack_map_frame entries[number_of_entries];
                                       * }
                                       * </pre>
                                    !  * 
                                       * Each stack map frame has the following format:
                                    !  * 
                                       * <pre>
                                       * stack_map_frame {
                                       *   uoffset offset;
                                    --- 65,73 ----
                                       *   stack_map_frame entries[number_of_entries];
                                       * }
                                       * </pre>
                                    !  *
                                       * Each stack map frame has the following format:
                                    !  *
                                       * <pre>
                                       * stack_map_frame {
                                       *   uoffset offset;
                                    *************** import org.objectweb.asm.Label;
                                    *** 77,88 ****
                                       *   verification_type_info stack[number_of_stack_items];
                                       * }
                                       * </pre>
                                    !  * 
                                       * The <tt>verification_type_info</tt> structure consists of a one-byte tag
                                       * followed by zero or more bytes, giving more information about the tag. Each
                                       * <tt>verification_type_info</tt> structure specifies the verification type
                                       * of one or two locations.
                                    !  * 
                                       * <pre>
                                       * union verification_type_info {
                                       *   Top_variable_info;
                                    --- 77,88 ----
                                       *   verification_type_info stack[number_of_stack_items];
                                       * }
                                       * </pre>
                                    !  *
                                       * The <tt>verification_type_info</tt> structure consists of a one-byte tag
                                       * followed by zero or more bytes, giving more information about the tag. Each
                                       * <tt>verification_type_info</tt> structure specifies the verification type
                                       * of one or two locations.
                                    !  *
                                       * <pre>
                                       * union verification_type_info {
                                       *   Top_variable_info;
                                    *************** import org.objectweb.asm.Label;
                                    *** 95,143 ****
                                       *   Object_variable_info;
                                       *   Uninitialized_variable_info;
                                       * }
                                    !  *      
                                       * Top_variable_info {
                                       *   u1 tag = ITEM_Top; // 0
                                       * }
                                    !  *      
                                       * Integer_variable_info {
                                       *   u1 tag = ITEM_Integer; // 1
                                       * }
                                    !  *      
                                       * Float_variable_info {
                                       *   u1 tag = ITEM_Float; // 2
                                       * }
                                    !  *      
                                       * Long_variable_info {
                                       *   u1 tag = ITEM_Long; // 4
                                       * }
                                    !  *      
                                       * Double_variable_info {
                                       *   u1 tag = ITEM_Double; // 3
                                       * }
                                    !  *      
                                       * Null_variable_info {
                                       *  u1 tag = ITEM_Null; // 5
                                       * }
                                    !  *      
                                       * UninitializedThis_variable_info {
                                       *   u1 tag = ITEM_UninitializedThis; // 6
                                       * }
                                    !  *      
                                       * Object_variable_info {
                                       *   u1 tag = ITEM_Object; // 7
                                       *   u2 cpool_index;
                                       * }
                                    !  *      
                                       * Uninitialized_variable_info {
                                       *   u1 tag = ITEM_Uninitialized // 8
                                       *   uoffset offset;
                                       * }
                                       * </pre>
                                    !  * 
                                       * @see <a href="http://www.jcp.org/en/jsr/detail?id=139">JSR 139 : Connected
                                       *      Limited Device Configuration 1.1</a>
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class StackMapAttribute extends Attribute {
                                    --- 95,143 ----
                                       *   Object_variable_info;
                                       *   Uninitialized_variable_info;
                                       * }
                                    !  *
                                       * Top_variable_info {
                                       *   u1 tag = ITEM_Top; // 0
                                       * }
                                    !  *
                                       * Integer_variable_info {
                                       *   u1 tag = ITEM_Integer; // 1
                                       * }
                                    !  *
                                       * Float_variable_info {
                                       *   u1 tag = ITEM_Float; // 2
                                       * }
                                    !  *
                                       * Long_variable_info {
                                       *   u1 tag = ITEM_Long; // 4
                                       * }
                                    !  *
                                       * Double_variable_info {
                                       *   u1 tag = ITEM_Double; // 3
                                       * }
                                    !  *
                                       * Null_variable_info {
                                       *  u1 tag = ITEM_Null; // 5
                                       * }
                                    !  *
                                       * UninitializedThis_variable_info {
                                       *   u1 tag = ITEM_UninitializedThis; // 6
                                       * }
                                    !  *
                                       * Object_variable_info {
                                       *   u1 tag = ITEM_Object; // 7
                                       *   u2 cpool_index;
                                       * }
                                    !  *
                                       * Uninitialized_variable_info {
                                       *   u1 tag = ITEM_Uninitialized // 8
                                       *   uoffset offset;
                                       * }
                                       * </pre>
                                    !  *
                                       * @see <a href="http://www.jcp.org/en/jsr/detail?id=139">JSR 139 : Connected
                                       *      Limited Device Configuration 1.1</a>
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class StackMapAttribute extends Attribute {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Label;
                                    *** 36,50 ****
                                      /**
                                       * Holds the state of the stack and local variables for a single execution
                                       * branch.
                                    !  * 
                                       * <i>Note that Long and Double types are represented by two entries in locals
                                       * and stack. Second entry should be always of type Top.</i>
                                    !  * 
                                       * @see <a href="http://www.jcp.org/en/jsr/detail?id=139">JSR 139 : Connected
                                       *      Limited Device Configuration 1.1</a>
                                    !  * 
                                       * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM"
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class StackMapFrame {
                                    --- 36,50 ----
                                      /**
                                       * Holds the state of the stack and local variables for a single execution
                                       * branch.
                                    !  *
                                       * <i>Note that Long and Double types are represented by two entries in locals
                                       * and stack. Second entry should be always of type Top.</i>
                                    !  *
                                       * @see <a href="http://www.jcp.org/en/jsr/detail?id=139">JSR 139 : Connected
                                       *      Limited Device Configuration 1.1</a>
                                    !  *
                                       * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM"
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class StackMapFrame {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 67,73 ****
                                       * represents the type u2; otherwise ulocalvar represents the type u4. If the
                                       * maximum size of the operand stack is 65535 or less, then <code>ustack</code>
                                       * represents the type u2; otherwise ustack represents the type u4.
                                    !  * 
                                       * <pre>
                                       * stack_map { // attribute StackMapTable
                                       *   u2 attribute_name_index;
                                    --- 67,73 ----
                                       * represents the type u2; otherwise ulocalvar represents the type u4. If the
                                       * maximum size of the operand stack is 65535 or less, then <code>ustack</code>
                                       * represents the type u2; otherwise ustack represents the type u4.
                                    !  *
                                       * <pre>
                                       * stack_map { // attribute StackMapTable
                                       *   u2 attribute_name_index;
                                    *************** import org.objectweb.asm.Type;
                                    *** 76,82 ****
                                       *   stack_map_frame entries[number_of_entries];
                                       * }
                                       * </pre>
                                    !  * 
                                       * Each stack_map_frame structure specifies the type state at a particular byte
                                       * code offset. Each frame type specifies (explicitly or implicitly) a value,
                                       * offset_delta, that is used to calulate the actual byte code offset at which
                                    --- 76,82 ----
                                       *   stack_map_frame entries[number_of_entries];
                                       * }
                                       * </pre>
                                    !  *
                                       * Each stack_map_frame structure specifies the type state at a particular byte
                                       * code offset. Each frame type specifies (explicitly or implicitly) a value,
                                       * offset_delta, that is used to calulate the actual byte code offset at which
                                    *************** import org.objectweb.asm.Type;
                                    *** 97,103 ****
                                       * <br> <br> The stack_map_frame structure consists of a one-byte tag followed
                                       * by zero or more bytes, giving more information, depending upon the tag. <br>
                                       * <br> A stack map frame may belong to one of several frame types
                                    !  * 
                                       * <pre>
                                       * union stack_map_frame {
                                       *   same_frame;
                                    --- 97,103 ----
                                       * <br> <br> The stack_map_frame structure consists of a one-byte tag followed
                                       * by zero or more bytes, giving more information, depending upon the tag. <br>
                                       * <br> A stack map frame may belong to one of several frame types
                                    !  *
                                       * <pre>
                                       * union stack_map_frame {
                                       *   same_frame;
                                    *************** import org.objectweb.asm.Type;
                                    *** 108,172 ****
                                       *   full_frame;
                                       * }
                                       * </pre>
                                    !  * 
                                       * The frame type same_frame is represented by tags in the range [0-63]. If the
                                       * frame type is same_frame, it means the frame has exactly the same locals as
                                       * the previous stack map frame and that the number of stack items is zero. The
                                       * offset_delta value for the frame is the value of the tag field, frame_type.
                                       * The form of such a frame is then:
                                    !  * 
                                       * <pre>
                                       * same_frame {
                                       *   u1 frame_type = SAME;  // 0-63
                                       * }
                                       * </pre>
                                    !  * 
                                       * The frame type same_locals_1_stack_item_frame is represented by tags in the
                                       * range [64, 127]. If the frame_type is same_locals_1_stack_item_frame, it
                                       * means the frame has exactly the same locals as the previous stack map frame
                                       * and that the number of stack items is 1. The offset_delta value for the frame
                                       * is the value (frame_type - 64). There is a verification_type_info following
                                       * the frame_type for the one stack item. The form of such a frame is then:
                                    !  * 
                                       * <pre>
                                       * same_locals_1_stack_item_frame {
                                       *   u1 frame_type = SAME_LOCALS_1_STACK_ITEM;  // 64-127
                                       *    verification_type_info stack[1];
                                       * }
                                       * </pre>
                                    !  * 
                                       * Tags in the range [128-247] are reserved for future use. <br> <br> The frame
                                       * type chop_frame is represented by tags in the range [248-250]. If the
                                       * frame_type is chop_frame, it means that the current locals are the same as
                                       * the locals in the previous frame, except that the k last locals are absent.
                                       * The value of k is given by the formula 251-frame_type. <br> <br> The form of
                                       * such a frame is then:
                                    !  * 
                                       * <pre>
                                       * chop_frame {
                                       *   u1 frame_type=CHOP;  // 248-250
                                       *   uoffset offset_delta;
                                       * }
                                       * </pre>
                                    !  * 
                                       * The frame type same_frame_extended is represented by the tag value 251. If
                                       * the frame type is same_frame_extended, it means the frame has exactly the
                                       * same locals as the previous stack map frame and that the number of stack
                                       * items is zero. The form of such a frame is then:
                                    !  * 
                                       * <pre>
                                       * same_frame_extended {
                                       *   u1 frame_type = SAME_FRAME_EXTENDED;  // 251
                                       *   uoffset offset_delta;
                                       * }
                                       * </pre>
                                    !  * 
                                       * The frame type append_frame is represented by tags in the range [252-254]. If
                                       * the frame_type is append_frame, it means that the current locals are the same
                                       * as the locals in the previous frame, except that k additional locals are
                                       * defined. The value of k is given by the formula frame_type-251. <br> <br> The
                                       * form of such a frame is then:
                                    !  * 
                                       * <pre>
                                       * append_frame {
                                       *   u1 frame_type =APPEND;  // 252-254
                                    --- 108,172 ----
                                       *   full_frame;
                                       * }
                                       * </pre>
                                    !  *
                                       * The frame type same_frame is represented by tags in the range [0-63]. If the
                                       * frame type is same_frame, it means the frame has exactly the same locals as
                                       * the previous stack map frame and that the number of stack items is zero. The
                                       * offset_delta value for the frame is the value of the tag field, frame_type.
                                       * The form of such a frame is then:
                                    !  *
                                       * <pre>
                                       * same_frame {
                                       *   u1 frame_type = SAME;  // 0-63
                                       * }
                                       * </pre>
                                    !  *
                                       * The frame type same_locals_1_stack_item_frame is represented by tags in the
                                       * range [64, 127]. If the frame_type is same_locals_1_stack_item_frame, it
                                       * means the frame has exactly the same locals as the previous stack map frame
                                       * and that the number of stack items is 1. The offset_delta value for the frame
                                       * is the value (frame_type - 64). There is a verification_type_info following
                                       * the frame_type for the one stack item. The form of such a frame is then:
                                    !  *
                                       * <pre>
                                       * same_locals_1_stack_item_frame {
                                       *   u1 frame_type = SAME_LOCALS_1_STACK_ITEM;  // 64-127
                                       *    verification_type_info stack[1];
                                       * }
                                       * </pre>
                                    !  *
                                       * Tags in the range [128-247] are reserved for future use. <br> <br> The frame
                                       * type chop_frame is represented by tags in the range [248-250]. If the
                                       * frame_type is chop_frame, it means that the current locals are the same as
                                       * the locals in the previous frame, except that the k last locals are absent.
                                       * The value of k is given by the formula 251-frame_type. <br> <br> The form of
                                       * such a frame is then:
                                    !  *
                                       * <pre>
                                       * chop_frame {
                                       *   u1 frame_type=CHOP;  // 248-250
                                       *   uoffset offset_delta;
                                       * }
                                       * </pre>
                                    !  *
                                       * The frame type same_frame_extended is represented by the tag value 251. If
                                       * the frame type is same_frame_extended, it means the frame has exactly the
                                       * same locals as the previous stack map frame and that the number of stack
                                       * items is zero. The form of such a frame is then:
                                    !  *
                                       * <pre>
                                       * same_frame_extended {
                                       *   u1 frame_type = SAME_FRAME_EXTENDED;  // 251
                                       *   uoffset offset_delta;
                                       * }
                                       * </pre>
                                    !  *
                                       * The frame type append_frame is represented by tags in the range [252-254]. If
                                       * the frame_type is append_frame, it means that the current locals are the same
                                       * as the locals in the previous frame, except that k additional locals are
                                       * defined. The value of k is given by the formula frame_type-251. <br> <br> The
                                       * form of such a frame is then:
                                    !  *
                                       * <pre>
                                       * append_frame {
                                       *   u1 frame_type =APPEND;  // 252-254
                                    *************** import org.objectweb.asm.Type;
                                    *** 174,180 ****
                                       *   verification_type_info locals[frame_type -251];
                                       * }
                                       * </pre>
                                    !  * 
                                       * The 0th entry in locals represents the type of the first additional local
                                       * variable. If locals[M] represents local variable N, then locals[M+1]
                                       * represents local variable N+1 if locals[M] is one of Top_variable_info,
                                    --- 174,180 ----
                                       *   verification_type_info locals[frame_type -251];
                                       * }
                                       * </pre>
                                    !  *
                                       * The 0th entry in locals represents the type of the first additional local
                                       * variable. If locals[M] represents local variable N, then locals[M+1]
                                       * represents local variable N+1 if locals[M] is one of Top_variable_info,
                                    *************** import org.objectweb.asm.Type;
                                    *** 185,191 ****
                                       * variable whose index is greater than the maximum number of local variables
                                       * for the method. <br> <br> The frame type full_frame is represented by the tag
                                       * value 255. The form of such a frame is then:
                                    !  * 
                                       * <pre>
                                       * full_frame {
                                       *   u1 frame_type = FULL_FRAME;  // 255
                                    --- 185,191 ----
                                       * variable whose index is greater than the maximum number of local variables
                                       * for the method. <br> <br> The frame type full_frame is represented by the tag
                                       * value 255. The form of such a frame is then:
                                    !  *
                                       * <pre>
                                       * full_frame {
                                       *   u1 frame_type = FULL_FRAME;  // 255
                                    *************** import org.objectweb.asm.Type;
                                    *** 196,202 ****
                                       *   verification_type_info stack[number_of_stack_items];
                                       * }
                                       * </pre>
                                    !  * 
                                       * The 0th entry in locals represents the type of local variable 0. If locals[M]
                                       * represents local variable N, then locals[M+1] represents local variable N+1
                                       * if locals[M] is one of Top_variable_info, Integer_variable_info,
                                    --- 196,202 ----
                                       *   verification_type_info stack[number_of_stack_items];
                                       * }
                                       * </pre>
                                    !  *
                                       * The 0th entry in locals represents the type of local variable 0. If locals[M]
                                       * represents local variable N, then locals[M+1] represents local variable N+1
                                       * if locals[M] is one of Top_variable_info, Integer_variable_info,
                                    *************** import org.objectweb.asm.Type;
                                    *** 222,228 ****
                                       * or more bytes, giving more information about the tag. Each
                                       * verification_type_info structure specifies the verification type of one or
                                       * two locations.
                                    !  * 
                                       * <pre>
                                       * union verification_type_info {
                                       *   Top_variable_info;
                                    --- 222,228 ----
                                       * or more bytes, giving more information about the tag. Each
                                       * verification_type_info structure specifies the verification type of one or
                                       * two locations.
                                    !  *
                                       * <pre>
                                       * union verification_type_info {
                                       *   Top_variable_info;
                                    *************** import org.objectweb.asm.Type;
                                    *** 236,354 ****
                                       *   Uninitialized_variable_info;
                                       * }
                                       * </pre>
                                    !  * 
                                       * The Top_variable_info type indicates that the local variable has the
                                       * verification type top (T.)
                                    !  * 
                                       * <pre>
                                       * Top_variable_info {
                                       *   u1 tag = ITEM_Top; // 0
                                       * }
                                       * </pre>
                                    !  * 
                                       * The Integer_variable_info type indicates that the location contains the
                                       * verification type int.
                                    !  * 
                                       * <pre>
                                       * Integer_variable_info {
                                       *   u1 tag = ITEM_Integer; // 1
                                       * }
                                       * </pre>
                                    !  * 
                                       * The Float_variable_info type indicates that the location contains the
                                       * verification type float.
                                    !  * 
                                       * <pre>
                                       * Float_variable_info {
                                       *   u1 tag = ITEM_Float; // 2
                                       * }
                                       * </pre>
                                    !  * 
                                       * The Long_variable_info type indicates that the location contains the
                                       * verification type long. If the location is a local variable, then:
                                    !  * 
                                       * <ul> <li>It must not be the local variable with the highest index.</li>
                                       * <li>The next higher numbered local variable contains the verification type
                                       * T.</li> </ul>
                                    !  * 
                                       * If the location is an operand stack entry, then:
                                    !  * 
                                       * <ul> <li>The current location must not be the topmost location of the
                                       * operand stack.</li> <li>the next location closer to the top of the operand
                                       * stack contains the verification type T.</li> </ul>
                                    !  * 
                                       * This structure gives the contents of two locations in the operand stack or in
                                       * the local variables.
                                    !  * 
                                       * <pre>
                                       * Long_variable_info {
                                       *   u1 tag = ITEM_Long; // 4
                                       * }
                                       * </pre>
                                    !  * 
                                       * The Double_variable_info type indicates that the location contains the
                                       * verification type double. If the location is a local variable, then:
                                    !  * 
                                       * <ul> <li>It must not be the local variable with the highest index.</li>
                                       * <li>The next higher numbered local variable contains the verification type
                                       * T. <li> </ul>
                                    !  * 
                                       * If the location is an operand stack entry, then:
                                    !  * 
                                       * <ul> <li>The current location must not be the topmost location of the
                                       * operand stack.</li> <li>the next location closer to the top of the operand
                                       * stack contains the verification type T.</li> </ul>
                                    !  * 
                                       * This structure gives the contents of two locations in in the operand stack or
                                       * in the local variables.
                                    !  * 
                                       * <pre>
                                       * Double_variable_info {
                                       *   u1 tag = ITEM_Double; // 3
                                       * }
                                       * </pre>
                                    !  * 
                                       * The Null_variable_info type indicates that location contains the verification
                                       * type null.
                                    !  * 
                                       * <pre>
                                       * Null_variable_info {
                                       *   u1 tag = ITEM_Null; // 5
                                       * }
                                       * </pre>
                                    !  * 
                                       * The UninitializedThis_variable_info type indicates that the location contains
                                       * the verification type uninitializedThis.
                                    !  * 
                                       * <pre>
                                       * UninitializedThis_variable_info {
                                       *   u1 tag = ITEM_UninitializedThis; // 6
                                       * }
                                       * </pre>
                                    !  * 
                                       * The Object_variable_info type indicates that the location contains an
                                       * instance of the class referenced by the constant pool entry.
                                    !  * 
                                       * <pre>
                                       * Object_variable_info {
                                       *   u1 tag = ITEM_Object; // 7
                                       *   u2 cpool_index;
                                       * }
                                       * </pre>
                                    !  * 
                                       * The Uninitialized_variable_info indicates that the location contains the
                                       * verification type uninitialized(offset). The offset item indicates the offset
                                       * of the new instruction that created the object being stored in the location.
                                    !  * 
                                       * <pre>
                                       * Uninitialized_variable_info {
                                       *   u1 tag = ITEM_Uninitialized // 8
                                       *   uoffset offset;
                                       * }
                                       * </pre>
                                    !  * 
                                       * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM"
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class StackMapTableAttribute extends Attribute {
                                    --- 236,354 ----
                                       *   Uninitialized_variable_info;
                                       * }
                                       * </pre>
                                    !  *
                                       * The Top_variable_info type indicates that the local variable has the
                                       * verification type top (T.)
                                    !  *
                                       * <pre>
                                       * Top_variable_info {
                                       *   u1 tag = ITEM_Top; // 0
                                       * }
                                       * </pre>
                                    !  *
                                       * The Integer_variable_info type indicates that the location contains the
                                       * verification type int.
                                    !  *
                                       * <pre>
                                       * Integer_variable_info {
                                       *   u1 tag = ITEM_Integer; // 1
                                       * }
                                       * </pre>
                                    !  *
                                       * The Float_variable_info type indicates that the location contains the
                                       * verification type float.
                                    !  *
                                       * <pre>
                                       * Float_variable_info {
                                       *   u1 tag = ITEM_Float; // 2
                                       * }
                                       * </pre>
                                    !  *
                                       * The Long_variable_info type indicates that the location contains the
                                       * verification type long. If the location is a local variable, then:
                                    !  *
                                       * <ul> <li>It must not be the local variable with the highest index.</li>
                                       * <li>The next higher numbered local variable contains the verification type
                                       * T.</li> </ul>
                                    !  *
                                       * If the location is an operand stack entry, then:
                                    !  *
                                       * <ul> <li>The current location must not be the topmost location of the
                                       * operand stack.</li> <li>the next location closer to the top of the operand
                                       * stack contains the verification type T.</li> </ul>
                                    !  *
                                       * This structure gives the contents of two locations in the operand stack or in
                                       * the local variables.
                                    !  *
                                       * <pre>
                                       * Long_variable_info {
                                       *   u1 tag = ITEM_Long; // 4
                                       * }
                                       * </pre>
                                    !  *
                                       * The Double_variable_info type indicates that the location contains the
                                       * verification type double. If the location is a local variable, then:
                                    !  *
                                       * <ul> <li>It must not be the local variable with the highest index.</li>
                                       * <li>The next higher numbered local variable contains the verification type
                                       * T. <li> </ul>
                                    !  *
                                       * If the location is an operand stack entry, then:
                                    !  *
                                       * <ul> <li>The current location must not be the topmost location of the
                                       * operand stack.</li> <li>the next location closer to the top of the operand
                                       * stack contains the verification type T.</li> </ul>
                                    !  *
                                       * This structure gives the contents of two locations in in the operand stack or
                                       * in the local variables.
                                    !  *
                                       * <pre>
                                       * Double_variable_info {
                                       *   u1 tag = ITEM_Double; // 3
                                       * }
                                       * </pre>
                                    !  *
                                       * The Null_variable_info type indicates that location contains the verification
                                       * type null.
                                    !  *
                                       * <pre>
                                       * Null_variable_info {
                                       *   u1 tag = ITEM_Null; // 5
                                       * }
                                       * </pre>
                                    !  *
                                       * The UninitializedThis_variable_info type indicates that the location contains
                                       * the verification type uninitializedThis.
                                    !  *
                                       * <pre>
                                       * UninitializedThis_variable_info {
                                       *   u1 tag = ITEM_UninitializedThis; // 6
                                       * }
                                       * </pre>
                                    !  *
                                       * The Object_variable_info type indicates that the location contains an
                                       * instance of the class referenced by the constant pool entry.
                                    !  *
                                       * <pre>
                                       * Object_variable_info {
                                       *   u1 tag = ITEM_Object; // 7
                                       *   u2 cpool_index;
                                       * }
                                       * </pre>
                                    !  *
                                       * The Uninitialized_variable_info indicates that the location contains the
                                       * verification type uninitialized(offset). The offset item indicates the offset
                                       * of the new instruction that created the object being stored in the location.
                                    !  *
                                       * <pre>
                                       * Uninitialized_variable_info {
                                       *   u1 tag = ITEM_Uninitialized // 8
                                       *   uoffset offset;
                                       * }
                                       * </pre>
                                    !  *
                                       * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM"
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class StackMapTableAttribute extends Attribute {
                                    *************** public class StackMapTableAttribute exte
                                    *** 786,792 ****
                                      
                                          /**
                                           * Use method signature and access flags to resolve initial locals state.
                                    !      * 
                                           * @param className name of the method's owner class.
                                           * @param access access flags of the method.
                                           * @param methodName name of the method.
                                    --- 786,792 ----
                                      
                                          /**
                                           * Use method signature and access flags to resolve initial locals state.
                                    !      *
                                           * @param className name of the method's owner class.
                                           * @param access access flags of the method.
                                           * @param methodName name of the method.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Label;
                                    *** 34,45 ****
                                      
                                      /**
                                       * Verification type info used by {@link StackMapAttribute}.
                                    !  * 
                                       * @see <a href="http://www.jcp.org/en/jsr/detail?id=139">JSR 139 : Connected
                                       *      Limited Device Configuration 1.1</a>
                                    !  * 
                                       * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM"
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      
                                    --- 34,45 ----
                                      
                                      /**
                                       * Verification type info used by {@link StackMapAttribute}.
                                    !  *
                                       * @see <a href="http://www.jcp.org/en/jsr/detail?id=139">JSR 139 : Connected
                                       *      Limited Device Configuration 1.1</a>
                                    !  *
                                       * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM"
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 42,57 ****
                                       * <p>
                                       * The behavior is like this:
                                       * <ol>
                                    !  * 
                                       * <li>as long as the INVOKESPECIAL for the object initialization has not been
                                       *     reached, every bytecode instruction is dispatched in the ctor code visitor</li>
                                    !  * 
                                       * <li>when this one is reached, it is only added in the ctor code visitor and
                                       *     a JP invoke is added</li>
                                       * <li>after that, only the other code visitor receives the instructions</li>
                                    !  * 
                                       * </ol>
                                    !  * 
                                       * @author Eugene Kuleshov
                                       * @author Eric Bruneton
                                       */
                                    --- 42,57 ----
                                       * <p>
                                       * The behavior is like this:
                                       * <ol>
                                    !  *
                                       * <li>as long as the INVOKESPECIAL for the object initialization has not been
                                       *     reached, every bytecode instruction is dispatched in the ctor code visitor</li>
                                    !  *
                                       * <li>when this one is reached, it is only added in the ctor code visitor and
                                       *     a JP invoke is added</li>
                                       * <li>after that, only the other code visitor receives the instructions</li>
                                    !  *
                                       * </ol>
                                    !  *
                                       * @author Eugene Kuleshov
                                       * @author Eric Bruneton
                                       */
                                    *************** public abstract class AdviceAdapter exte
                                    *** 61,76 ****
                                      
                                          protected int methodAccess;
                                          protected String methodDesc;
                                    !     
                                          private boolean constructor;
                                          private boolean superInitialized;
                                          private ArrayList stackFrame;
                                          private HashMap branches;
                                      
                                    !     
                                          /**
                                           * Creates a new {@link AdviceAdapter}.
                                    !      * 
                                           * @param mv the method visitor to which this adapter delegates calls.
                                           * @param access the method's access flags (see {@link Opcodes}).
                                           * @param name the method's name.
                                    --- 61,76 ----
                                      
                                          protected int methodAccess;
                                          protected String methodDesc;
                                    ! 
                                          private boolean constructor;
                                          private boolean superInitialized;
                                          private ArrayList stackFrame;
                                          private HashMap branches;
                                      
                                    ! 
                                          /**
                                           * Creates a new {@link AdviceAdapter}.
                                    !      *
                                           * @param mv the method visitor to which this adapter delegates calls.
                                           * @param access the method's access flags (see {@link Opcodes}).
                                           * @param name the method's name.
                                    *************** public abstract class AdviceAdapter exte
                                    *** 484,491 ****
                                                          if (type == THIS && !superInitialized) {
                                                              onMethodEnter();
                                                              superInitialized = true;
                                    !                         // once super has been initialized it is no longer 
                                    !                         // necessary to keep track of stack state                        
                                                              constructor = false;
                                                          }
                                                          break;
                                    --- 484,491 ----
                                                          if (type == THIS && !superInitialized) {
                                                              onMethodEnter();
                                                              superInitialized = true;
                                    !                         // once super has been initialized it is no longer
                                    !                         // necessary to keep track of stack state
                                                              constructor = false;
                                                          }
                                                          break;
                                    *************** public abstract class AdviceAdapter exte
                                    *** 583,598 ****
                                          private Object peekValue() {
                                              return stackFrame.get(stackFrame.size()-1);
                                          }
                                    !     
                                          private void pushValue(Object o) {
                                              stackFrame.add(o);
                                          }
                                    !     
                                          /**
                                    !      * Called at the beginning of the method or after super 
                                           * class class call in the constructor.
                                           * <br><br>
                                    !      * 
                                           * <i>Custom code can use or change all the local variables,
                                           * but should not change state of the stack.</i>
                                           */
                                    --- 583,598 ----
                                          private Object peekValue() {
                                              return stackFrame.get(stackFrame.size()-1);
                                          }
                                    ! 
                                          private void pushValue(Object o) {
                                              stackFrame.add(o);
                                          }
                                    ! 
                                          /**
                                    !      * Called at the beginning of the method or after super
                                           * class class call in the constructor.
                                           * <br><br>
                                    !      *
                                           * <i>Custom code can use or change all the local variables,
                                           * but should not change state of the stack.</i>
                                           */
                                    *************** public abstract class AdviceAdapter exte
                                    *** 600,608 ****
                                      
                                          /**
                                           * Called before explicit exit from the method using either
                                    !      * return or throw. Top element on the stack contains the 
                                           * return value or exception instance. For example:
                                    !      * 
                                           * <pre>
                                           *   public void onMethodExit(int opcode) {
                                           *     if(opcode==RETURN) {
                                    --- 600,608 ----
                                      
                                          /**
                                           * Called before explicit exit from the method using either
                                    !      * return or throw. Top element on the stack contains the
                                           * return value or exception instance. For example:
                                    !      *
                                           * <pre>
                                           *   public void onMethodExit(int opcode) {
                                           *     if(opcode==RETURN) {
                                    *************** public abstract class AdviceAdapter exte
                                    *** 625,643 ****
                                           *   public static void onExit(int opcode, Object param) {
                                           *     ...
                                           * </pre>
                                    !      * 
                                           * <br><br>
                                    !      * 
                                           * <i>Custom code can use or change all the local variables,
                                           * but should not change state of the stack.</i>
                                    !      * 
                                    !      * @param opcode one of the RETURN, IRETURN, FRETURN, 
                                           *   ARETURN, LRETURN, DRETURN or ATHROW
                                    !      * 
                                           */
                                          protected abstract void onMethodExit(int opcode);
                                      
                                          // TODO onException, onMethodCall
                                    -     
                                    - }
                                      
                                    --- 625,642 ----
                                           *   public static void onExit(int opcode, Object param) {
                                           *     ...
                                           * </pre>
                                    !      *
                                           * <br><br>
                                    !      *
                                           * <i>Custom code can use or change all the local variables,
                                           * but should not change state of the stack.</i>
                                    !      *
                                    !      * @param opcode one of the RETURN, IRETURN, FRETURN,
                                           *   ARETURN, LRETURN, DRETURN or ATHROW
                                    !      *
                                           */
                                          protected abstract void onMethodExit(int opcode);
                                      
                                          // TODO onException, onMethodCall
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 38,44 ****
                                      
                                      /**
                                       * An empty implementation of the ASM visitor interfaces.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class EmptyVisitor implements
                                    --- 38,44 ----
                                      
                                      /**
                                       * An empty implementation of the ASM visitor interfaces.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class EmptyVisitor implements
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 42,48 ****
                                      /**
                                       * A {@link org.objectweb.asm.MethodAdapter} with convenient methods to generate
                                       * code. For example, using this adapter, the class below
                                    !  * 
                                       * <pre>
                                       * public class Example {
                                       *     public static void main(String[] args) {
                                    --- 42,48 ----
                                      /**
                                       * A {@link org.objectweb.asm.MethodAdapter} with convenient methods to generate
                                       * code. For example, using this adapter, the class below
                                    !  *
                                       * <pre>
                                       * public class Example {
                                       *     public static void main(String[] args) {
                                    *************** import org.objectweb.asm.Type;
                                    *** 50,69 ****
                                       *     }
                                       * }
                                       * </pre>
                                    !  * 
                                       * can be generated as follows:
                                    !  * 
                                       * <pre>
                                       * ClassWriter cw = new ClassWriter(true);
                                       * cw.visit(V1_1, ACC_PUBLIC, "Example", null, "java/lang/Object", null);
                                    !  * 
                                       * Method m = Method.getMethod("void <init> ()");
                                       * GeneratorAdapter mg = new GeneratorAdapter(ACC_PUBLIC, m, null, null, cw);
                                       * mg.loadThis();
                                       * mg.invokeConstructor(Type.getType(Object.class), m);
                                       * mg.returnValue();
                                       * mg.endMethod();
                                    !  * 
                                       * m = Method.getMethod("void main (String[])");
                                       * mg = new GeneratorAdapter(ACC_PUBLIC + ACC_STATIC, m, null, null, cw);
                                       * mg.getStatic(Type.getType(System.class), "out", Type.getType(PrintStream.class));
                                    --- 50,69 ----
                                       *     }
                                       * }
                                       * </pre>
                                    !  *
                                       * can be generated as follows:
                                    !  *
                                       * <pre>
                                       * ClassWriter cw = new ClassWriter(true);
                                       * cw.visit(V1_1, ACC_PUBLIC, "Example", null, "java/lang/Object", null);
                                    !  *
                                       * Method m = Method.getMethod("void <init> ()");
                                       * GeneratorAdapter mg = new GeneratorAdapter(ACC_PUBLIC, m, null, null, cw);
                                       * mg.loadThis();
                                       * mg.invokeConstructor(Type.getType(Object.class), m);
                                       * mg.returnValue();
                                       * mg.endMethod();
                                    !  *
                                       * m = Method.getMethod("void main (String[])");
                                       * mg = new GeneratorAdapter(ACC_PUBLIC + ACC_STATIC, m, null, null, cw);
                                       * mg.getStatic(Type.getType(System.class), "out", Type.getType(PrintStream.class));
                                    *************** import org.objectweb.asm.Type;
                                    *** 71,80 ****
                                       * mg.invokeVirtual(Type.getType(PrintStream.class), Method.getMethod("void println (String)"));
                                       * mg.returnValue();
                                       * mg.endMethod();
                                    !  * 
                                       * cw.visitEnd();
                                       * </pre>
                                    !  * 
                                       * @author Juozas Baliuka
                                       * @author Chris Nokleberg
                                       * @author Eric Bruneton
                                    --- 71,80 ----
                                       * mg.invokeVirtual(Type.getType(PrintStream.class), Method.getMethod("void println (String)"));
                                       * mg.returnValue();
                                       * mg.endMethod();
                                    !  *
                                       * cw.visitEnd();
                                       * </pre>
                                    !  *
                                       * @author Juozas Baliuka
                                       * @author Chris Nokleberg
                                       * @author Eric Bruneton
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 225,231 ****
                                      
                                          /**
                                           * Creates a new {@link GeneratorAdapter}.
                                    !      * 
                                           * @param mv the method visitor to which this adapter delegates calls.
                                           * @param access the method's access flags (see {@link Opcodes}).
                                           * @param name the method's name.
                                    --- 225,231 ----
                                      
                                          /**
                                           * Creates a new {@link GeneratorAdapter}.
                                    !      *
                                           * @param mv the method visitor to which this adapter delegates calls.
                                           * @param access the method's access flags (see {@link Opcodes}).
                                           * @param name the method's name.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 246,252 ****
                                      
                                          /**
                                           * Creates a new {@link GeneratorAdapter}.
                                    !      * 
                                           * @param access access flags of the adapted method.
                                           * @param method the adapted method.
                                           * @param mv the method visitor to which this adapter delegates calls.
                                    --- 246,252 ----
                                      
                                          /**
                                           * Creates a new {@link GeneratorAdapter}.
                                    !      *
                                           * @param access access flags of the adapted method.
                                           * @param method the adapted method.
                                           * @param mv the method visitor to which this adapter delegates calls.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 265,271 ****
                                      
                                          /**
                                           * Creates a new {@link GeneratorAdapter}.
                                    !      * 
                                           * @param access access flags of the adapted method.
                                           * @param method the adapted method.
                                           * @param signature the signature of the adapted method (may be
                                    --- 265,271 ----
                                      
                                          /**
                                           * Creates a new {@link GeneratorAdapter}.
                                    !      *
                                           * @param access access flags of the adapted method.
                                           * @param method the adapted method.
                                           * @param signature the signature of the adapted method (may be
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 290,296 ****
                                      
                                          /**
                                           * Returns the internal names of the given types.
                                    !      * 
                                           * @param types a set of types.
                                           * @return the internal names of the given types.
                                           */
                                    --- 290,296 ----
                                      
                                          /**
                                           * Returns the internal names of the given types.
                                    !      *
                                           * @param types a set of types.
                                           * @return the internal names of the given types.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 311,317 ****
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      * 
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final boolean value) {
                                    --- 311,317 ----
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      *
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final boolean value) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 320,326 ****
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      * 
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final int value) {
                                    --- 320,326 ----
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      *
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final int value) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 337,343 ****
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      * 
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final long value) {
                                    --- 337,343 ----
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      *
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final long value) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 350,356 ****
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      * 
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final float value) {
                                    --- 350,356 ----
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      *
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final float value) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 364,370 ****
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      * 
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final double value) {
                                    --- 364,370 ----
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      *
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final double value) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 378,384 ****
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      * 
                                           * @param value the value to be pushed on the stack. May be <tt>null</tt>.
                                           */
                                          public void push(final String value) {
                                    --- 378,384 ----
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      *
                                           * @param value the value to be pushed on the stack. May be <tt>null</tt>.
                                           */
                                          public void push(final String value) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 391,397 ****
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      * 
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final Type value) {
                                    --- 391,397 ----
                                      
                                          /**
                                           * Generates the instruction to push the given value on the stack.
                                    !      *
                                           * @param value the value to be pushed on the stack.
                                           */
                                          public void push(final Type value) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 409,415 ****
                                          /**
                                           * Returns the index of the given method argument in the frame's local
                                           * variables array.
                                    !      * 
                                           * @param arg the index of a method argument.
                                           * @return the index of the given method argument in the frame's local
                                           *         variables array.
                                    --- 409,415 ----
                                          /**
                                           * Returns the index of the given method argument in the frame's local
                                           * variables array.
                                    !      *
                                           * @param arg the index of a method argument.
                                           * @return the index of the given method argument in the frame's local
                                           *         variables array.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 424,430 ****
                                      
                                          /**
                                           * Generates the instruction to push a local variable on the stack.
                                    !      * 
                                           * @param type the type of the local variable to be loaded.
                                           * @param index an index in the frame's local variables array.
                                           */
                                    --- 424,430 ----
                                      
                                          /**
                                           * Generates the instruction to push a local variable on the stack.
                                    !      *
                                           * @param type the type of the local variable to be loaded.
                                           * @param index an index in the frame's local variables array.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 435,441 ****
                                          /**
                                           * Generates the instruction to store the top stack value in a local
                                           * variable.
                                    !      * 
                                           * @param type the type of the local variable to be stored.
                                           * @param index an index in the frame's local variables array.
                                           */
                                    --- 435,441 ----
                                          /**
                                           * Generates the instruction to store the top stack value in a local
                                           * variable.
                                    !      *
                                           * @param type the type of the local variable to be stored.
                                           * @param index an index in the frame's local variables array.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 455,461 ****
                                      
                                          /**
                                           * Generates the instruction to load the given method argument on the stack.
                                    !      * 
                                           * @param arg the index of a method argument.
                                           */
                                          public void loadArg(final int arg) {
                                    --- 455,461 ----
                                      
                                          /**
                                           * Generates the instruction to load the given method argument on the stack.
                                    !      *
                                           * @param arg the index of a method argument.
                                           */
                                          public void loadArg(final int arg) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 465,471 ****
                                          /**
                                           * Generates the instructions to load the given method arguments on the
                                           * stack.
                                    !      * 
                                           * @param arg the index of the first method argument to be loaded.
                                           * @param count the number of method arguments to be loaded.
                                           */
                                    --- 465,471 ----
                                          /**
                                           * Generates the instructions to load the given method arguments on the
                                           * stack.
                                    !      *
                                           * @param arg the index of the first method argument to be loaded.
                                           * @param count the number of method arguments to be loaded.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 504,510 ****
                                          /**
                                           * Generates the instruction to store the top stack value in the given
                                           * method argument.
                                    !      * 
                                           * @param arg the index of a method argument.
                                           */
                                          public void storeArg(final int arg) {
                                    --- 504,510 ----
                                          /**
                                           * Generates the instruction to store the top stack value in the given
                                           * method argument.
                                    !      *
                                           * @param arg the index of a method argument.
                                           */
                                          public void storeArg(final int arg) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 517,523 ****
                                      
                                          /**
                                           * Creates a new local variable of the given type.
                                    !      * 
                                           * @param type the type of the local variable to be created.
                                           * @return the identifier of the newly created local variable.
                                           */
                                    --- 517,523 ----
                                      
                                          /**
                                           * Creates a new local variable of the given type.
                                    !      *
                                           * @param type the type of the local variable to be created.
                                           * @return the identifier of the newly created local variable.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 529,535 ****
                                      
                                          /**
                                           * Returns the type of the given local variable.
                                    !      * 
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           * @return the type of the given local variable.
                                    --- 529,535 ----
                                      
                                          /**
                                           * Returns the type of the given local variable.
                                    !      *
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           * @return the type of the given local variable.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 540,546 ****
                                      
                                          /**
                                           * Sets the current type of the given local variable.
                                    !      * 
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           * @param type the type of the value being stored in the local variable
                                    --- 540,546 ----
                                      
                                          /**
                                           * Sets the current type of the given local variable.
                                    !      *
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           * @param type the type of the value being stored in the local variable
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 554,560 ****
                                      
                                          /**
                                           * Generates the instruction to load the given local variable on the stack.
                                    !      * 
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           */
                                    --- 554,560 ----
                                      
                                          /**
                                           * Generates the instruction to load the given local variable on the stack.
                                    !      *
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 564,570 ****
                                      
                                          /**
                                           * Generates the instruction to load the given local variable on the stack.
                                    !      * 
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           * @param type the type of this local variable.
                                    --- 564,570 ----
                                      
                                          /**
                                           * Generates the instruction to load the given local variable on the stack.
                                    !      *
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           * @param type the type of this local variable.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 577,583 ****
                                          /**
                                           * Generates the instruction to store the top stack value in the given local
                                           * variable.
                                    !      * 
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           */
                                    --- 577,583 ----
                                          /**
                                           * Generates the instruction to store the top stack value in the given local
                                           * variable.
                                    !      *
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 588,594 ****
                                          /**
                                           * Generates the instruction to store the top stack value in the given local
                                           * variable.
                                    !      * 
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           * @param type the type of this local variable.
                                    --- 588,594 ----
                                          /**
                                           * Generates the instruction to store the top stack value in the given local
                                           * variable.
                                    !      *
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           * @param type the type of this local variable.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 600,606 ****
                                      
                                          /**
                                           * Generates the instruction to load an element from an array.
                                    !      * 
                                           * @param type the type of the array element to be loaded.
                                           */
                                          public void arrayLoad(final Type type) {
                                    --- 600,606 ----
                                      
                                          /**
                                           * Generates the instruction to load an element from an array.
                                    !      *
                                           * @param type the type of the array element to be loaded.
                                           */
                                          public void arrayLoad(final Type type) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 609,615 ****
                                      
                                          /**
                                           * Generates the instruction to store an element in an array.
                                    !      * 
                                           * @param type the type of the array element to be stored.
                                           */
                                          public void arrayStore(final Type type) {
                                    --- 609,615 ----
                                      
                                          /**
                                           * Generates the instruction to store an element in an array.
                                    !      *
                                           * @param type the type of the array element to be stored.
                                           */
                                          public void arrayStore(final Type type) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 685,691 ****
                                      
                                          /**
                                           * Generates the instructions to swap the top two stack values.
                                    !      * 
                                           * @param prev type of the top - 1 stack value.
                                           * @param type type of the top stack value.
                                           */
                                    --- 685,691 ----
                                      
                                          /**
                                           * Generates the instructions to swap the top two stack values.
                                    !      *
                                           * @param prev type of the top - 1 stack value.
                                           * @param type type of the top stack value.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 715,721 ****
                                          /**
                                           * Generates the instruction to do the specified mathematical or logical
                                           * operation.
                                    !      * 
                                           * @param op a mathematical or logical operation. Must be one of ADD, SUB,
                                           *        MUL, DIV, REM, NEG, SHL, SHR, USHR, AND, OR, XOR.
                                           * @param type the type of the operand(s) for this operation.
                                    --- 715,721 ----
                                          /**
                                           * Generates the instruction to do the specified mathematical or logical
                                           * operation.
                                    !      *
                                           * @param op a mathematical or logical operation. Must be one of ADD, SUB,
                                           *        MUL, DIV, REM, NEG, SHL, SHR, USHR, AND, OR, XOR.
                                           * @param type the type of the operand(s) for this operation.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 735,741 ****
                                      
                                          /**
                                           * Generates the instruction to increment the given local variable.
                                    !      * 
                                           * @param local the local variable to be incremented.
                                           * @param amount the amount by which the local variable must be incremented.
                                           */
                                    --- 735,741 ----
                                      
                                          /**
                                           * Generates the instruction to increment the given local variable.
                                    !      *
                                           * @param local the local variable to be incremented.
                                           * @param amount the amount by which the local variable must be incremented.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 746,752 ****
                                          /**
                                           * Generates the instructions to cast a numerical value from one type to
                                           * another.
                                    !      * 
                                           * @param from the type of the top stack value
                                           * @param to the type into which this value must be cast.
                                           */
                                    --- 746,752 ----
                                          /**
                                           * Generates the instructions to cast a numerical value from one type to
                                           * another.
                                    !      *
                                           * @param from the type of the top stack value
                                           * @param to the type into which this value must be cast.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 804,810 ****
                                          /**
                                           * Generates the instructions to box the top stack value. This value is
                                           * replaced by its boxed equivalent on top of the stack.
                                    !      * 
                                           * @param type the type of the top stack value.
                                           */
                                          public void box(final Type type) {
                                    --- 804,810 ----
                                          /**
                                           * Generates the instructions to box the top stack value. This value is
                                           * replaced by its boxed equivalent on top of the stack.
                                    !      *
                                           * @param type the type of the top stack value.
                                           */
                                          public void box(final Type type) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 861,867 ****
                                          /**
                                           * Generates the instructions to unbox the top stack value. This value is
                                           * replaced by its unboxed equivalent on top of the stack.
                                    !      * 
                                           * @param type the type of the top stack value.
                                           */
                                          public void unbox(final Type type) {
                                    --- 861,867 ----
                                          /**
                                           * Generates the instructions to unbox the top stack value. This value is
                                           * replaced by its unboxed equivalent on top of the stack.
                                    !      *
                                           * @param type the type of the top stack value.
                                           */
                                          public void unbox(final Type type) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 906,912 ****
                                      
                                          /**
                                           * Creates a new {@link Label}.
                                    !      * 
                                           * @return a new {@link Label}.
                                           */
                                          public Label newLabel() {
                                    --- 906,912 ----
                                      
                                          /**
                                           * Creates a new {@link Label}.
                                    !      *
                                           * @return a new {@link Label}.
                                           */
                                          public Label newLabel() {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 915,921 ****
                                      
                                          /**
                                           * Marks the current code position with the given label.
                                    !      * 
                                           * @param label a label.
                                           */
                                          public void mark(final Label label) {
                                    --- 915,921 ----
                                      
                                          /**
                                           * Marks the current code position with the given label.
                                    !      *
                                           * @param label a label.
                                           */
                                          public void mark(final Label label) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 924,930 ****
                                      
                                          /**
                                           * Marks the current code position with a new label.
                                    !      * 
                                           * @return the label that was created to mark the current code position.
                                           */
                                          public Label mark() {
                                    --- 924,930 ----
                                      
                                          /**
                                           * Marks the current code position with a new label.
                                    !      *
                                           * @return the label that was created to mark the current code position.
                                           */
                                          public Label mark() {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 936,942 ****
                                          /**
                                           * Generates the instructions to jump to a label based on the comparison of
                                           * the top two stack values.
                                    !      * 
                                           * @param type the type of the top two stack values.
                                           * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT,
                                           *        LE.
                                    --- 936,942 ----
                                          /**
                                           * Generates the instructions to jump to a label based on the comparison of
                                           * the top two stack values.
                                    !      *
                                           * @param type the type of the top two stack values.
                                           * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT,
                                           *        LE.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1005,1011 ****
                                          /**
                                           * Generates the instructions to jump to a label based on the comparison of
                                           * the top two integer stack values.
                                    !      * 
                                           * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT,
                                           *        LE.
                                           * @param label where to jump if the comparison result is <tt>true</tt>.
                                    --- 1005,1011 ----
                                          /**
                                           * Generates the instructions to jump to a label based on the comparison of
                                           * the top two integer stack values.
                                    !      *
                                           * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT,
                                           *        LE.
                                           * @param label where to jump if the comparison result is <tt>true</tt>.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1017,1023 ****
                                          /**
                                           * Generates the instructions to jump to a label based on the comparison of
                                           * the top integer stack value with zero.
                                    !      * 
                                           * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT,
                                           *        LE.
                                           * @param label where to jump if the comparison result is <tt>true</tt>.
                                    --- 1017,1023 ----
                                          /**
                                           * Generates the instructions to jump to a label based on the comparison of
                                           * the top integer stack value with zero.
                                    !      *
                                           * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT,
                                           *        LE.
                                           * @param label where to jump if the comparison result is <tt>true</tt>.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1029,1035 ****
                                          /**
                                           * Generates the instruction to jump to the given label if the top stack
                                           * value is null.
                                    !      * 
                                           * @param label where to jump if the condition is <tt>true</tt>.
                                           */
                                          public void ifNull(final Label label) {
                                    --- 1029,1035 ----
                                          /**
                                           * Generates the instruction to jump to the given label if the top stack
                                           * value is null.
                                    !      *
                                           * @param label where to jump if the condition is <tt>true</tt>.
                                           */
                                          public void ifNull(final Label label) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1039,1045 ****
                                          /**
                                           * Generates the instruction to jump to the given label if the top stack
                                           * value is not null.
                                    !      * 
                                           * @param label where to jump if the condition is <tt>true</tt>.
                                           */
                                          public void ifNonNull(final Label label) {
                                    --- 1039,1045 ----
                                          /**
                                           * Generates the instruction to jump to the given label if the top stack
                                           * value is not null.
                                    !      *
                                           * @param label where to jump if the condition is <tt>true</tt>.
                                           */
                                          public void ifNonNull(final Label label) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1048,1054 ****
                                      
                                          /**
                                           * Generates the instruction to jump to the given label.
                                    !      * 
                                           * @param label where to jump if the condition is <tt>true</tt>.
                                           */
                                          public void goTo(final Label label) {
                                    --- 1048,1054 ----
                                      
                                          /**
                                           * Generates the instruction to jump to the given label.
                                    !      *
                                           * @param label where to jump if the condition is <tt>true</tt>.
                                           */
                                          public void goTo(final Label label) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1057,1063 ****
                                      
                                          /**
                                           * Generates a RET instruction.
                                    !      * 
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           */
                                    --- 1057,1063 ----
                                      
                                          /**
                                           * Generates a RET instruction.
                                    !      *
                                           * @param local a local variable identifier, as returned by {@link #newLocal
                                           *        newLocal}.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1067,1073 ****
                                      
                                          /**
                                           * Generates the instructions for a switch statement.
                                    !      * 
                                           * @param keys the switch case keys.
                                           * @param generator a generator to generate the code for the switch cases.
                                           */
                                    --- 1067,1073 ----
                                      
                                          /**
                                           * Generates the instructions for a switch statement.
                                    !      *
                                           * @param keys the switch case keys.
                                           * @param generator a generator to generate the code for the switch cases.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1087,1093 ****
                                      
                                          /**
                                           * Generates the instructions for a switch statement.
                                    !      * 
                                           * @param keys the switch case keys.
                                           * @param generator a generator to generate the code for the switch cases.
                                           * @param useTable <tt>true</tt> to use a TABLESWITCH instruction, or
                                    --- 1087,1093 ----
                                      
                                          /**
                                           * Generates the instructions for a switch statement.
                                    !      *
                                           * @param keys the switch case keys.
                                           * @param generator a generator to generate the code for the switch cases.
                                           * @param useTable <tt>true</tt> to use a TABLESWITCH instruction, or
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1154,1160 ****
                                      
                                          /**
                                           * Generates a get field or set field instruction.
                                    !      * 
                                           * @param opcode the instruction's opcode.
                                           * @param ownerType the class in which the field is defined.
                                           * @param name the name of the field.
                                    --- 1154,1160 ----
                                      
                                          /**
                                           * Generates a get field or set field instruction.
                                    !      *
                                           * @param opcode the instruction's opcode.
                                           * @param ownerType the class in which the field is defined.
                                           * @param name the name of the field.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1175,1181 ****
                                          /**
                                           * Generates the instruction to push the value of a static field on the
                                           * stack.
                                    !      * 
                                           * @param owner the class in which the field is defined.
                                           * @param name the name of the field.
                                           * @param type the type of the field.
                                    --- 1175,1181 ----
                                          /**
                                           * Generates the instruction to push the value of a static field on the
                                           * stack.
                                    !      *
                                           * @param owner the class in which the field is defined.
                                           * @param name the name of the field.
                                           * @param type the type of the field.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1187,1193 ****
                                      
                                          /**
                                           * Generates the instruction to store the top stack value in a static field.
                                    !      * 
                                           * @param owner the class in which the field is defined.
                                           * @param name the name of the field.
                                           * @param type the type of the field.
                                    --- 1187,1193 ----
                                      
                                          /**
                                           * Generates the instruction to store the top stack value in a static field.
                                    !      *
                                           * @param owner the class in which the field is defined.
                                           * @param name the name of the field.
                                           * @param type the type of the field.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1200,1206 ****
                                          /**
                                           * Generates the instruction to push the value of a non static field on the
                                           * stack.
                                    !      * 
                                           * @param owner the class in which the field is defined.
                                           * @param name the name of the field.
                                           * @param type the type of the field.
                                    --- 1200,1206 ----
                                          /**
                                           * Generates the instruction to push the value of a non static field on the
                                           * stack.
                                    !      *
                                           * @param owner the class in which the field is defined.
                                           * @param name the name of the field.
                                           * @param type the type of the field.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1212,1218 ****
                                          /**
                                           * Generates the instruction to store the top stack value in a non static
                                           * field.
                                    !      * 
                                           * @param owner the class in which the field is defined.
                                           * @param name the name of the field.
                                           * @param type the type of the field.
                                    --- 1212,1218 ----
                                          /**
                                           * Generates the instruction to store the top stack value in a non static
                                           * field.
                                    !      *
                                           * @param owner the class in which the field is defined.
                                           * @param name the name of the field.
                                           * @param type the type of the field.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1227,1233 ****
                                      
                                          /**
                                           * Generates an invoke method instruction.
                                    !      * 
                                           * @param opcode the instruction's opcode.
                                           * @param type the class in which the method is defined.
                                           * @param method the method to be invoked.
                                    --- 1227,1233 ----
                                      
                                          /**
                                           * Generates an invoke method instruction.
                                    !      *
                                           * @param opcode the instruction's opcode.
                                           * @param type the class in which the method is defined.
                                           * @param method the method to be invoked.
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1248,1254 ****
                                      
                                          /**
                                           * Generates the instruction to invoke a normal method.
                                    !      * 
                                           * @param owner the class in which the method is defined.
                                           * @param method the method to be invoked.
                                           */
                                    --- 1248,1254 ----
                                      
                                          /**
                                           * Generates the instruction to invoke a normal method.
                                    !      *
                                           * @param owner the class in which the method is defined.
                                           * @param method the method to be invoked.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1258,1264 ****
                                      
                                          /**
                                           * Generates the instruction to invoke a constructor.
                                    !      * 
                                           * @param type the class in which the constructor is defined.
                                           * @param method the constructor to be invoked.
                                           */
                                    --- 1258,1264 ----
                                      
                                          /**
                                           * Generates the instruction to invoke a constructor.
                                    !      *
                                           * @param type the class in which the constructor is defined.
                                           * @param method the constructor to be invoked.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1268,1274 ****
                                      
                                          /**
                                           * Generates the instruction to invoke a static method.
                                    !      * 
                                           * @param owner the class in which the method is defined.
                                           * @param method the method to be invoked.
                                           */
                                    --- 1268,1274 ----
                                      
                                          /**
                                           * Generates the instruction to invoke a static method.
                                    !      *
                                           * @param owner the class in which the method is defined.
                                           * @param method the method to be invoked.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1278,1284 ****
                                      
                                          /**
                                           * Generates the instruction to invoke an interface method.
                                    !      * 
                                           * @param owner the class in which the method is defined.
                                           * @param method the method to be invoked.
                                           */
                                    --- 1278,1284 ----
                                      
                                          /**
                                           * Generates the instruction to invoke an interface method.
                                    !      *
                                           * @param owner the class in which the method is defined.
                                           * @param method the method to be invoked.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1292,1298 ****
                                      
                                          /**
                                           * Generates a type dependent instruction.
                                    !      * 
                                           * @param opcode the instruction's opcode.
                                           * @param type the instruction's operand.
                                           */
                                    --- 1292,1298 ----
                                      
                                          /**
                                           * Generates a type dependent instruction.
                                    !      *
                                           * @param opcode the instruction's opcode.
                                           * @param type the instruction's operand.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1308,1314 ****
                                      
                                          /**
                                           * Generates the instruction to create a new object.
                                    !      * 
                                           * @param type the class of the object to be created.
                                           */
                                          public void newInstance(final Type type) {
                                    --- 1308,1314 ----
                                      
                                          /**
                                           * Generates the instruction to create a new object.
                                    !      *
                                           * @param type the class of the object to be created.
                                           */
                                          public void newInstance(final Type type) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1317,1323 ****
                                      
                                          /**
                                           * Generates the instruction to create a new array.
                                    !      * 
                                           * @param type the type of the array elements.
                                           */
                                          public void newArray(final Type type) {
                                    --- 1317,1323 ----
                                      
                                          /**
                                           * Generates the instruction to create a new array.
                                    !      *
                                           * @param type the type of the array elements.
                                           */
                                          public void newArray(final Type type) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1375,1381 ****
                                          /**
                                           * Generates the instructions to create and throw an exception. The
                                           * exception class must have a constructor with a single String argument.
                                    !      * 
                                           * @param type the class of the exception to be thrown.
                                           * @param msg the detailed message of the exception.
                                           */
                                    --- 1375,1381 ----
                                          /**
                                           * Generates the instructions to create and throw an exception. The
                                           * exception class must have a constructor with a single String argument.
                                    !      *
                                           * @param type the class of the exception to be thrown.
                                           * @param msg the detailed message of the exception.
                                           */
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1390,1396 ****
                                          /**
                                           * Generates the instruction to check that the top stack value is of the
                                           * given type.
                                    !      * 
                                           * @param type a class or interface type.
                                           */
                                          public void checkCast(final Type type) {
                                    --- 1390,1396 ----
                                          /**
                                           * Generates the instruction to check that the top stack value is of the
                                           * given type.
                                    !      *
                                           * @param type a class or interface type.
                                           */
                                          public void checkCast(final Type type) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1402,1408 ****
                                          /**
                                           * Generates the instruction to test if the top stack value is of the given
                                           * type.
                                    !      * 
                                           * @param type a class or interface type.
                                           */
                                          public void instanceOf(final Type type) {
                                    --- 1402,1408 ----
                                          /**
                                           * Generates the instruction to test if the top stack value is of the given
                                           * type.
                                    !      *
                                           * @param type a class or interface type.
                                           */
                                          public void instanceOf(final Type type) {
                                    *************** public class GeneratorAdapter extends Lo
                                    *** 1438,1444 ****
                                      
                                          /**
                                           * Marks the start of an exception handler.
                                    !      * 
                                           * @param start beginning of the exception handler's scope (inclusive).
                                           * @param end end of the exception handler's scope (exclusive).
                                           * @param exception internal name of the type of exceptions handled by the
                                    --- 1438,1444 ----
                                      
                                          /**
                                           * Marks the start of an exception handler.
                                    !      *
                                           * @param start beginning of the exception handler's scope (inclusive).
                                           * @param end end of the exception handler's scope (exclusive).
                                           * @param exception internal name of the type of exceptions handled by the
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 39,45 ****
                                       * A {@link MethodAdapter} that renumbers local variables in their order of
                                       * appearance. This adapter allows one to easily add new local variables to a
                                       * method.
                                    !  * 
                                       * @author Chris Nokleberg
                                       * @author Eric Bruneton
                                       */
                                    --- 39,45 ----
                                       * A {@link MethodAdapter} that renumbers local variables in their order of
                                       * appearance. This adapter allows one to easily add new local variables to a
                                       * method.
                                    !  *
                                       * @author Chris Nokleberg
                                       * @author Eric Bruneton
                                       */
                                    *************** public class LocalVariablesSorter extend
                                    *** 132,136 ****
                                              }
                                              return value - 1;
                                          }
                                    !     
                                      }
                                    --- 132,136 ----
                                              }
                                              return value - 1;
                                          }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 36,42 ****
                                      
                                      /**
                                       * A named method descriptor.
                                    !  * 
                                       * @author Juozas Baliuka
                                       * @author Chris Nokleberg
                                       * @author Eric Bruneton
                                    --- 36,42 ----
                                      
                                      /**
                                       * A named method descriptor.
                                    !  *
                                       * @author Juozas Baliuka
                                       * @author Chris Nokleberg
                                       * @author Eric Bruneton
                                    *************** public class Method {
                                    *** 73,79 ****
                                      
                                          /**
                                           * Creates a new {@link Method}.
                                    !      * 
                                           * @param name the method's name.
                                           * @param desc the method's descriptor.
                                           */
                                    --- 73,79 ----
                                      
                                          /**
                                           * Creates a new {@link Method}.
                                    !      *
                                           * @param name the method's name.
                                           * @param desc the method's descriptor.
                                           */
                                    *************** public class Method {
                                    *** 84,90 ****
                                      
                                          /**
                                           * Creates a new {@link Method}.
                                    !      * 
                                           * @param name the method's name.
                                           * @param returnType the method's return type.
                                           * @param argumentTypes the method's argument types.
                                    --- 84,90 ----
                                      
                                          /**
                                           * Creates a new {@link Method}.
                                    !      *
                                           * @param name the method's name.
                                           * @param returnType the method's return type.
                                           * @param argumentTypes the method's argument types.
                                    *************** public class Method {
                                    *** 100,106 ****
                                          /**
                                           * Returns a {@link Method} corresponding to the given Java method
                                           * declaration.
                                    !      * 
                                           * @param method a Java method declaration, without argument names, of the
                                           *        form "returnType name (argumentType1, ... argumentTypeN)", where
                                           *        the types are in plain Java (e.g. "int", "float",
                                    --- 100,106 ----
                                          /**
                                           * Returns a {@link Method} corresponding to the given Java method
                                           * declaration.
                                    !      *
                                           * @param method a Java method declaration, without argument names, of the
                                           *        form "returnType name (argumentType1, ... argumentTypeN)", where
                                           *        the types are in plain Java (e.g. "int", "float",
                                    *************** public class Method {
                                    *** 168,174 ****
                                      
                                          /**
                                           * Returns the name of the method described by this object.
                                    !      * 
                                           * @return the name of the method described by this object.
                                           */
                                          public String getName() {
                                    --- 168,174 ----
                                      
                                          /**
                                           * Returns the name of the method described by this object.
                                    !      *
                                           * @return the name of the method described by this object.
                                           */
                                          public String getName() {
                                    *************** public class Method {
                                    *** 177,183 ****
                                      
                                          /**
                                           * Returns the descriptor of the method described by this object.
                                    !      * 
                                           * @return the descriptor of the method described by this object.
                                           */
                                          public String getDescriptor() {
                                    --- 177,183 ----
                                      
                                          /**
                                           * Returns the descriptor of the method described by this object.
                                    !      *
                                           * @return the descriptor of the method described by this object.
                                           */
                                          public String getDescriptor() {
                                    *************** public class Method {
                                    *** 186,192 ****
                                      
                                          /**
                                           * Returns the return type of the method described by this object.
                                    !      * 
                                           * @return the return type of the method described by this object.
                                           */
                                          public Type getReturnType() {
                                    --- 186,192 ----
                                      
                                          /**
                                           * Returns the return type of the method described by this object.
                                    !      *
                                           * @return the return type of the method described by this object.
                                           */
                                          public Type getReturnType() {
                                    *************** public class Method {
                                    *** 195,201 ****
                                      
                                          /**
                                           * Returns the argument types of the method described by this object.
                                    !      * 
                                           * @return the argument types of the method described by this object.
                                           */
                                          public Type[] getArgumentTypes() {
                                    --- 195,201 ----
                                      
                                          /**
                                           * Returns the argument types of the method described by this object.
                                    !      *
                                           * @return the argument types of the method described by this object.
                                           */
                                          public Type[] getArgumentTypes() {
                                    *************** public class Method {
                                    *** 217,220 ****
                                          public int hashCode() {
                                              return name.hashCode() ^ desc.hashCode();
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 217,220 ----
                                          public int hashCode() {
                                              return name.hashCode() ^ desc.hashCode();
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 46,63 ****
                                      /**
                                       * A {@link ClassAdapter} that adds a serial version unique identifier to a
                                       * class if missing. Here is typical usage of this class:
                                    !  * 
                                       * <pre>
                                       *   ClassWriter cw = new ClassWriter(...);
                                       *   ClassVisitor sv = new SerialVersionUIDAdder(cw);
                                       *   ClassVisitor ca = new MyClassAdapter(sv);
                                       *   new ClassReader(orginalClass).accept(ca, false);
                                       * </pre>
                                    !  * 
                                       * The SVUID algorithm can be found <a href=
                                       * "http://java.sun.com/j2se/1.4.2/docs/guide/serialization/spec/class.html"
                                       * >http://java.sun.com/j2se/1.4.2/docs/guide/serialization/spec/class.html</a>:
                                    !  * 
                                       * <pre>
                                       * The serialVersionUID is computed using the signature of a stream of bytes
                                       * that reflect the class definition. The National Institute of Standards and
                                    --- 46,63 ----
                                      /**
                                       * A {@link ClassAdapter} that adds a serial version unique identifier to a
                                       * class if missing. Here is typical usage of this class:
                                    !  *
                                       * <pre>
                                       *   ClassWriter cw = new ClassWriter(...);
                                       *   ClassVisitor sv = new SerialVersionUIDAdder(cw);
                                       *   ClassVisitor ca = new MyClassAdapter(sv);
                                       *   new ClassReader(orginalClass).accept(ca, false);
                                       * </pre>
                                    !  *
                                       * The SVUID algorithm can be found <a href=
                                       * "http://java.sun.com/j2se/1.4.2/docs/guide/serialization/spec/class.html"
                                       * >http://java.sun.com/j2se/1.4.2/docs/guide/serialization/spec/class.html</a>:
                                    !  *
                                       * <pre>
                                       * The serialVersionUID is computed using the signature of a stream of bytes
                                       * that reflect the class definition. The National Institute of Standards and
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 93,101 ****
                                       * 8. The SHA-1 algorithm is executed on the stream of bytes produced by
                                       * DataOutputStream and produces five 32-bit values sha[0..4].
                                       *
                                    !  * 9. The hash value is assembled from the first and second 32-bit values of 
                                       * the SHA-1 message digest. If the result of the message digest, the five
                                    !  * 32-bit words H0 H1 H2 H3 H4, is in an array of five int values named 
                                       * sha, the hash value would be computed as follows:
                                       *
                                       * long hash = ((sha[0] >>> 24) & 0xFF) |
                                    --- 93,101 ----
                                       * 8. The SHA-1 algorithm is executed on the stream of bytes produced by
                                       * DataOutputStream and produces five 32-bit values sha[0..4].
                                       *
                                    !  * 9. The hash value is assembled from the first and second 32-bit values of
                                       * the SHA-1 message digest. If the result of the message digest, the five
                                    !  * 32-bit words H0 H1 H2 H3 H4, is in an array of five int values named
                                       * sha, the hash value would be computed as follows:
                                       *
                                       * long hash = ((sha[0] >>> 24) & 0xFF) |
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 107,113 ****
                                       * ((sha[1] >>> 8) & 0xFF) << 48 |
                                       * ((sha[1] >>> 0) & 0xFF) << 56;
                                       * </pre>
                                    !  * 
                                       * @author Rajendra Inamdar, Vishal Vishnoi
                                       */
                                      public class SerialVersionUIDAdder extends ClassAdapter {
                                    --- 107,113 ----
                                       * ((sha[1] >>> 8) & 0xFF) << 48 |
                                       * ((sha[1] >>> 0) & 0xFF) << 56;
                                       * </pre>
                                    !  *
                                       * @author Rajendra Inamdar, Vishal Vishnoi
                                       */
                                      public class SerialVersionUIDAdder extends ClassAdapter {
                                    *************** public class SerialVersionUIDAdder exten
                                    *** 160,166 ****
                                      
                                          /**
                                           * Creates a new {@link SerialVersionUIDAdder}.
                                    !      * 
                                           * @param cv a {@link ClassVisitor} to which this visitor will delegate
                                           *        calls.
                                           */
                                    --- 160,166 ----
                                      
                                          /**
                                           * Creates a new {@link SerialVersionUIDAdder}.
                                    !      *
                                           * @param cv a {@link ClassVisitor} to which this visitor will delegate
                                           *        calls.
                                           */
                                    *************** public class SerialVersionUIDAdder exten
                                    *** 306,312 ****
                                           * Returns the value of SVUID if the class doesn't have one already. Please
                                           * note that 0 is returned if the class already has SVUID, thus use
                                           * <code>isHasSVUID</code> to determine if the class already had an SVUID.
                                    !      * 
                                           * @return Returns the serial version UID
                                           * @throws IOException
                                           */
                                    --- 306,312 ----
                                           * Returns the value of SVUID if the class doesn't have one already. Please
                                           * note that 0 is returned if the class already has SVUID, thus use
                                           * <code>isHasSVUID</code> to determine if the class already had an SVUID.
                                    !      *
                                           * @return Returns the serial version UID
                                           * @throws IOException
                                           */
                                    *************** public class SerialVersionUIDAdder exten
                                    *** 347,357 ****
                                                  /*
                                                   * 4. For each field of the class sorted by field name (except
                                                   * private static and private transient fields):
                                    !              * 
                                                   * 1. The name of the field in UTF encoding. 2. The modifiers of the
                                                   * field written as a 32-bit integer. 3. The descriptor of the field
                                                   * in UTF encoding
                                    !              * 
                                                   * Note that field signatutes are not dot separated. Method and
                                                   * constructor signatures are dot separated. Go figure...
                                                   */
                                    --- 347,357 ----
                                                  /*
                                                   * 4. For each field of the class sorted by field name (except
                                                   * private static and private transient fields):
                                    !              *
                                                   * 1. The name of the field in UTF encoding. 2. The modifiers of the
                                                   * field written as a 32-bit integer. 3. The descriptor of the field
                                                   * in UTF encoding
                                    !              *
                                                   * Note that field signatutes are not dot separated. Method and
                                                   * constructor signatures are dot separated. Go figure...
                                                   */
                                    *************** public class SerialVersionUIDAdder exten
                                    *** 401,407 ****
                                                   * digest, the five 32-bit words H0 H1 H2 H3 H4, is in an array of
                                                   * five int values named sha, the hash value would be computed as
                                                   * follows:
                                    !              * 
                                                   * long hash = ((sha[0] >>> 24) & 0xFF) | ((sha[0] >>> 16) & 0xFF) <<
                                                   * 8 | ((sha[0] >>> 8) & 0xFF) << 16 | ((sha[0] >>> 0) & 0xFF) <<
                                                   * 24 | ((sha[1] >>> 24) & 0xFF) << 32 | ((sha[1] >>> 16) & 0xFF) <<
                                    --- 401,407 ----
                                                   * digest, the five 32-bit words H0 H1 H2 H3 H4, is in an array of
                                                   * five int values named sha, the hash value would be computed as
                                                   * follows:
                                    !              *
                                                   * long hash = ((sha[0] >>> 24) & 0xFF) | ((sha[0] >>> 16) & 0xFF) <<
                                                   * 8 | ((sha[0] >>> 8) & 0xFF) << 16 | ((sha[0] >>> 0) & 0xFF) <<
                                                   * 24 | ((sha[1] >>> 24) & 0xFF) << 32 | ((sha[1] >>> 16) & 0xFF) <<
                                    *************** public class SerialVersionUIDAdder exten
                                    *** 423,429 ****
                                      
                                          /**
                                           * Returns the SHA-1 message digest of the given value.
                                    !      * 
                                           * @param value the value whose SHA message digest must be computed.
                                           * @return the SHA-1 message digest of the given value.
                                           */
                                    --- 423,429 ----
                                      
                                          /**
                                           * Returns the SHA-1 message digest of the given value.
                                    !      *
                                           * @param value the value whose SHA message digest must be computed.
                                           * @return the SHA-1 message digest of the given value.
                                           */
                                    *************** public class SerialVersionUIDAdder exten
                                    *** 437,443 ****
                                      
                                          /**
                                           * Sorts the items in the collection and writes it to the data output stream
                                    !      * 
                                           * @param itemCollection collection of items
                                           * @param dos a <code>DataOutputStream</code> value
                                           * @param dotted a <code>boolean</code> value
                                    --- 437,443 ----
                                      
                                          /**
                                           * Sorts the items in the collection and writes it to the data output stream
                                    !      *
                                           * @param itemCollection collection of items
                                           * @param dos a <code>DataOutputStream</code> value
                                           * @param dotted a <code>boolean</code> value
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 36,42 ****
                                      
                                      /**
                                       * A {@link ClassAdapter} that merges clinit methods into a single one.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class StaticInitMerger extends ClassAdapter {
                                    --- 36,42 ----
                                      
                                      /**
                                       * A {@link ClassAdapter} that merges clinit methods into a single one.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class StaticInitMerger extends ClassAdapter {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Label;
                                    *** 33,39 ****
                                      
                                      /**
                                       * A code generator for switch statements.
                                    !  * 
                                       * @author Juozas Baliuka
                                       * @author Chris Nokleberg
                                       * @author Eric Bruneton
                                    --- 33,39 ----
                                      
                                      /**
                                       * A code generator for switch statements.
                                    !  *
                                       * @author Juozas Baliuka
                                       * @author Chris Nokleberg
                                       * @author Eric Bruneton
                                    *************** public interface TableSwitchGenerator {
                                    *** 42,48 ****
                                      
                                          /**
                                           * Generates the code for a switch case.
                                    !      * 
                                           * @param key the switch case key.
                                           * @param end a label that corresponds to the end of the switch statement.
                                           */
                                    --- 42,48 ----
                                      
                                          /**
                                           * Generates the code for a switch case.
                                    !      *
                                           * @param key the switch case key.
                                           * @param end a label that corresponds to the end of the switch statement.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 35,41 ****
                                      /**
                                       * An {@link AnnotationVisitor} that collects the {@link Constant}s of the
                                       * annotations it visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class AnnotationConstantsCollector implements AnnotationVisitor {
                                    --- 35,41 ----
                                      /**
                                       * An {@link AnnotationVisitor} that collects the {@link Constant}s of the
                                       * annotations it visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class AnnotationConstantsCollector implements AnnotationVisitor {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 40,46 ****
                                      /**
                                       * A {@link ClassVisitor} that collects the {@link Constant}s of the classes it
                                       * visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ClassConstantsCollector extends ClassAdapter {
                                    --- 40,46 ----
                                      /**
                                       * A {@link ClassVisitor} that collects the {@link Constant}s of the classes it
                                       * visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ClassConstantsCollector extends ClassAdapter {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 40,46 ****
                                      /**
                                       * A {@link ClassAdapter} that renames fields and methods, and removes debug
                                       * info.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ClassOptimizer extends ClassAdapter {
                                    --- 40,46 ----
                                      /**
                                       * A {@link ClassAdapter} that renames fields and methods, and removes debug
                                       * info.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ClassOptimizer extends ClassAdapter {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.ClassWriter;
                                    *** 33,39 ****
                                      
                                      /**
                                       * A constant pool item.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      class Constant {
                                    --- 33,39 ----
                                      
                                      /**
                                       * A constant pool item.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      class Constant {
                                    *************** class Constant {
                                    *** 108,114 ****
                                      
                                          /**
                                           * Sets this item to an integer item.
                                    !      * 
                                           * @param intVal the value of this item.
                                           */
                                          void set(final int intVal) {
                                    --- 108,114 ----
                                      
                                          /**
                                           * Sets this item to an integer item.
                                    !      *
                                           * @param intVal the value of this item.
                                           */
                                          void set(final int intVal) {
                                    *************** class Constant {
                                    *** 119,125 ****
                                      
                                          /**
                                           * Sets this item to a long item.
                                    !      * 
                                           * @param longVal the value of this item.
                                           */
                                          void set(final long longVal) {
                                    --- 119,125 ----
                                      
                                          /**
                                           * Sets this item to a long item.
                                    !      *
                                           * @param longVal the value of this item.
                                           */
                                          void set(final long longVal) {
                                    *************** class Constant {
                                    *** 130,136 ****
                                      
                                          /**
                                           * Sets this item to a float item.
                                    !      * 
                                           * @param floatVal the value of this item.
                                           */
                                          void set(final float floatVal) {
                                    --- 130,136 ----
                                      
                                          /**
                                           * Sets this item to a float item.
                                    !      *
                                           * @param floatVal the value of this item.
                                           */
                                          void set(final float floatVal) {
                                    *************** class Constant {
                                    *** 141,147 ****
                                      
                                          /**
                                           * Sets this item to a double item.
                                    !      * 
                                           * @param doubleVal the value of this item.
                                           */
                                          void set(final double doubleVal) {
                                    --- 141,147 ----
                                      
                                          /**
                                           * Sets this item to a double item.
                                    !      *
                                           * @param doubleVal the value of this item.
                                           */
                                          void set(final double doubleVal) {
                                    *************** class Constant {
                                    *** 152,158 ****
                                      
                                          /**
                                           * Sets this item to an item that do not hold a primitive value.
                                    !      * 
                                           * @param type the type of this item.
                                           * @param strVal1 first part of the value of this item.
                                           * @param strVal2 second part of the value of this item.
                                    --- 152,158 ----
                                      
                                          /**
                                           * Sets this item to an item that do not hold a primitive value.
                                    !      *
                                           * @param type the type of this item.
                                           * @param strVal1 first part of the value of this item.
                                           * @param strVal2 second part of the value of this item.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 35,41 ****
                                      
                                      /**
                                       * A constant pool.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ConstantPool extends HashMap {
                                    --- 35,41 ----
                                      
                                      /**
                                       * A constant pool.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ConstantPool extends HashMap {
                                    *************** public class ConstantPool extends HashMa
                                    *** 195,198 ****
                                          private void put(final Constant cst) {
                                              put(cst, cst);
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 195,198 ----
                                          private void put(final Constant cst) {
                                              put(cst, cst);
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.FieldVisitor;
                                    *** 36,42 ****
                                      /**
                                       * A {@link FieldVisitor} that collects the {@link Constant}s of the fields it
                                       * visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class FieldConstantsCollector implements FieldVisitor {
                                    --- 36,42 ----
                                      /**
                                       * A {@link FieldVisitor} that collects the {@link Constant}s of the fields it
                                       * visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class FieldConstantsCollector implements FieldVisitor {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.zip.ZipOutputStream;
                                    *** 40,46 ****
                                      
                                      /**
                                       * A Jar file optimizer.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class JarOptimizer {
                                    --- 40,46 ----
                                      
                                      /**
                                       * A Jar file optimizer.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class JarOptimizer {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 38,44 ****
                                      /**
                                       * An {@link MethodVisitor} that collects the {@link Constant}s of the methods
                                       * it visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class MethodConstantsCollector extends MethodAdapter {
                                    --- 38,44 ----
                                      /**
                                       * An {@link MethodVisitor} that collects the {@link Constant}s of the methods
                                       * it visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class MethodConstantsCollector extends MethodAdapter {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 37,43 ****
                                      /**
                                       * A {@link MethodAdapter} that renames fields and methods, and removes debug
                                       * info.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class MethodOptimizer extends MethodAdapter {
                                    --- 37,43 ----
                                      /**
                                       * A {@link MethodAdapter} that renames fields and methods, and removes debug
                                       * info.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class MethodOptimizer extends MethodAdapter {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 39,51 ****
                                      
                                      /**
                                       * A mapping from names to names, used to rename classes, fields and methods.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class NameMapping extends Properties {
                                      
                                          public final Set unused;
                                    !     
                                          public NameMapping(final String file) throws IOException {
                                              load(new FileInputStream(file));
                                              unused = new HashSet(keySet());
                                    --- 39,51 ----
                                      
                                      /**
                                       * A mapping from names to names, used to rename classes, fields and methods.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class NameMapping extends Properties {
                                      
                                          public final Set unused;
                                    ! 
                                          public NameMapping(final String file) throws IOException {
                                              load(new FileInputStream(file));
                                              unused = new HashSet(keySet());
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.ClassWriter;
                                    *** 44,50 ****
                                      
                                      /**
                                       * A class file shrinker utility.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class Shrinker {
                                    --- 44,50 ----
                                      
                                      /**
                                       * A class file shrinker utility.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class Shrinker {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm.signature;
                                    *** 32,38 ****
                                      /**
                                       * A type signature parser to make a signature visitor visit an existing
                                       * signature.
                                    !  * 
                                       * @author Thomas Hallgren
                                       * @author Eric Bruneton
                                       */
                                    --- 32,38 ----
                                      /**
                                       * A type signature parser to make a signature visitor visit an existing
                                       * signature.
                                    !  *
                                       * @author Thomas Hallgren
                                       * @author Eric Bruneton
                                       */
                                    *************** public class SignatureReader {
                                    *** 45,51 ****
                                      
                                          /**
                                           * Constructs a {@link SignatureReader} for the given signature.
                                    !      * 
                                           * @param signature A <i>ClassSignature</i>, <i>MethodTypeSignature</i>,
                                           *        or <i>FieldTypeSignature</i>.
                                           */
                                    --- 45,51 ----
                                      
                                          /**
                                           * Constructs a {@link SignatureReader} for the given signature.
                                    !      *
                                           * @param signature A <i>ClassSignature</i>, <i>MethodTypeSignature</i>,
                                           *        or <i>FieldTypeSignature</i>.
                                           */
                                    *************** public class SignatureReader {
                                    *** 65,71 ****
                                           * parameter of the
                                           * {@link org.objectweb.asm.ClassVisitor#visitMethod ClassVisitor.visitMethod}
                                           * method).
                                    !      * 
                                           * @param v the visitor that must visit this signature.
                                           */
                                          public void accept(final SignatureVisitor v) {
                                    --- 65,71 ----
                                           * parameter of the
                                           * {@link org.objectweb.asm.ClassVisitor#visitMethod ClassVisitor.visitMethod}
                                           * method).
                                    !      *
                                           * @param v the visitor that must visit this signature.
                                           */
                                          public void accept(final SignatureVisitor v) {
                                    *************** public class SignatureReader {
                                    *** 122,132 ****
                                           * method is intended to be called on a {@link SignatureReader} that was
                                           * created using a <i>FieldTypeSignature</i>, such as the
                                           * <code>signature</code> parameter of the
                                    !      * {@link org.objectweb.asm.ClassVisitor#visitField 
                                    !      * ClassVisitor.visitField} or {@link 
                                           * org.objectweb.asm.MethodVisitor#visitLocalVariable
                                           * MethodVisitor.visitLocalVariable} methods.
                                    !      * 
                                           * @param v the visitor that must visit this signature.
                                           */
                                          public void acceptType(final SignatureVisitor v) {
                                    --- 122,132 ----
                                           * method is intended to be called on a {@link SignatureReader} that was
                                           * created using a <i>FieldTypeSignature</i>, such as the
                                           * <code>signature</code> parameter of the
                                    !      * {@link org.objectweb.asm.ClassVisitor#visitField
                                    !      * ClassVisitor.visitField} or {@link
                                           * org.objectweb.asm.MethodVisitor#visitLocalVariable
                                           * MethodVisitor.visitLocalVariable} methods.
                                    !      *
                                           * @param v the visitor that must visit this signature.
                                           */
                                          public void acceptType(final SignatureVisitor v) {
                                    *************** public class SignatureReader {
                                    *** 135,141 ****
                                      
                                          /**
                                           * Parses a field type signature and makes the given visitor visit it.
                                    !      * 
                                           * @param signature a string containing the signature that must be parsed.
                                           * @param pos index of the first character of the signature to parsed.
                                           * @param v the visitor that must visit this signature.
                                    --- 135,141 ----
                                      
                                          /**
                                           * Parses a field type signature and makes the given visitor visit it.
                                    !      *
                                           * @param signature a string containing the signature that must be parsed.
                                           * @param pos index of the first character of the signature to parsed.
                                           * @param v the visitor that must visit this signature.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm.signature;
                                    *** 34,54 ****
                                       * called in one of the three following orders (the last one is the only valid
                                       * order for a {@link SignatureVisitor} that is returned by a method of this
                                       * interface): <ul> <li><i>ClassSignature</i> = (
                                    !  * <tt>visitFormalTypeParameter</tt> 
                                       *   <tt>visitClassBound</tt>?
                                    !  * <tt>visitInterfaceBound</tt>* )* ( <tt>visitSuperClass</tt> 
                                       *   <tt>visitInterface</tt>* )</li>
                                    !  * <li><i>MethodSignature</i> = ( <tt>visitFormalTypeParameter</tt> 
                                       *   <tt>visitClassBound</tt>?
                                       * <tt>visitInterfaceBound</tt>* )* ( <tt>visitParameterType</tt>*
                                    !  * <tt>visitReturnType</tt> 
                                       *   <tt>visitExceptionType</tt>* )</li> <li><i>TypeSignature</i> =
                                       * <tt>visitBaseType</tt> | <tt>visitTypeVariable</tt> |
                                       * <tt>visitArrayType</tt> | (
                                       * <tt>visitClassType</tt> <tt>visitTypeArgument</tt>* (
                                       * <tt>visitInnerClassType</tt> <tt>visitTypeArgument</tt>* )*
                                       * <tt>visitEnd</tt> ) )</li> </ul>
                                    !  * 
                                       * @author Thomas Hallgren
                                       * @author Eric Bruneton
                                       */
                                    --- 34,54 ----
                                       * called in one of the three following orders (the last one is the only valid
                                       * order for a {@link SignatureVisitor} that is returned by a method of this
                                       * interface): <ul> <li><i>ClassSignature</i> = (
                                    !  * <tt>visitFormalTypeParameter</tt>
                                       *   <tt>visitClassBound</tt>?
                                    !  * <tt>visitInterfaceBound</tt>* )* ( <tt>visitSuperClass</tt>
                                       *   <tt>visitInterface</tt>* )</li>
                                    !  * <li><i>MethodSignature</i> = ( <tt>visitFormalTypeParameter</tt>
                                       *   <tt>visitClassBound</tt>?
                                       * <tt>visitInterfaceBound</tt>* )* ( <tt>visitParameterType</tt>*
                                    !  * <tt>visitReturnType</tt>
                                       *   <tt>visitExceptionType</tt>* )</li> <li><i>TypeSignature</i> =
                                       * <tt>visitBaseType</tt> | <tt>visitTypeVariable</tt> |
                                       * <tt>visitArrayType</tt> | (
                                       * <tt>visitClassType</tt> <tt>visitTypeArgument</tt>* (
                                       * <tt>visitInnerClassType</tt> <tt>visitTypeArgument</tt>* )*
                                       * <tt>visitEnd</tt> ) )</li> </ul>
                                    !  *
                                       * @author Thomas Hallgren
                                       * @author Eric Bruneton
                                       */
                                    *************** public interface SignatureVisitor {
                                    *** 71,98 ****
                                      
                                          /**
                                           * Visits a formal type parameter.
                                    !      * 
                                           * @param name the name of the formal parameter.
                                           */
                                          void visitFormalTypeParameter(String name);
                                      
                                          /**
                                           * Visits the class bound of the last visited formal type parameter.
                                    !      * 
                                           * @return a non null visitor to visit the signature of the class bound.
                                           */
                                          SignatureVisitor visitClassBound();
                                      
                                          /**
                                           * Visits an interface bound of the last visited formal type parameter.
                                    !      * 
                                           * @return a non null visitor to visit the signature of the interface bound.
                                           */
                                          SignatureVisitor visitInterfaceBound();
                                      
                                          /**
                                           * Visits the type of the super class.
                                    !      * 
                                           * @return a non null visitor to visit the signature of the super class
                                           *         type.
                                           */
                                    --- 71,98 ----
                                      
                                          /**
                                           * Visits a formal type parameter.
                                    !      *
                                           * @param name the name of the formal parameter.
                                           */
                                          void visitFormalTypeParameter(String name);
                                      
                                          /**
                                           * Visits the class bound of the last visited formal type parameter.
                                    !      *
                                           * @return a non null visitor to visit the signature of the class bound.
                                           */
                                          SignatureVisitor visitClassBound();
                                      
                                          /**
                                           * Visits an interface bound of the last visited formal type parameter.
                                    !      *
                                           * @return a non null visitor to visit the signature of the interface bound.
                                           */
                                          SignatureVisitor visitInterfaceBound();
                                      
                                          /**
                                           * Visits the type of the super class.
                                    !      *
                                           * @return a non null visitor to visit the signature of the super class
                                           *         type.
                                           */
                                    *************** public interface SignatureVisitor {
                                    *** 100,134 ****
                                      
                                          /**
                                           * Visits the type of an interface implemented by the class.
                                    !      * 
                                           * @return a non null visitor to visit the signature of the interface type.
                                           */
                                          SignatureVisitor visitInterface();
                                      
                                          /**
                                           * Visits the type of a method parameter.
                                    !      * 
                                           * @return a non null visitor to visit the signature of the parameter type.
                                           */
                                          SignatureVisitor visitParameterType();
                                      
                                          /**
                                           * Visits the return type of the method.
                                    !      * 
                                           * @return a non null visitor to visit the signature of the return type.
                                           */
                                          SignatureVisitor visitReturnType();
                                      
                                          /**
                                           * Visits the type of a method exception.
                                    !      * 
                                           * @return a non null visitor to visit the signature of the exception type.
                                           */
                                          SignatureVisitor visitExceptionType();
                                      
                                          /**
                                           * Visits a signature corresponding to a primitive type.
                                    !      * 
                                           * @param descriptor the descriptor of the primitive type, or 'V' for
                                           *        <tt>void</tt>.
                                           */
                                    --- 100,134 ----
                                      
                                          /**
                                           * Visits the type of an interface implemented by the class.
                                    !      *
                                           * @return a non null visitor to visit the signature of the interface type.
                                           */
                                          SignatureVisitor visitInterface();
                                      
                                          /**
                                           * Visits the type of a method parameter.
                                    !      *
                                           * @return a non null visitor to visit the signature of the parameter type.
                                           */
                                          SignatureVisitor visitParameterType();
                                      
                                          /**
                                           * Visits the return type of the method.
                                    !      *
                                           * @return a non null visitor to visit the signature of the return type.
                                           */
                                          SignatureVisitor visitReturnType();
                                      
                                          /**
                                           * Visits the type of a method exception.
                                    !      *
                                           * @return a non null visitor to visit the signature of the exception type.
                                           */
                                          SignatureVisitor visitExceptionType();
                                      
                                          /**
                                           * Visits a signature corresponding to a primitive type.
                                    !      *
                                           * @param descriptor the descriptor of the primitive type, or 'V' for
                                           *        <tt>void</tt>.
                                           */
                                    *************** public interface SignatureVisitor {
                                    *** 136,149 ****
                                      
                                          /**
                                           * Visits a signature corresponding to a type variable.
                                    !      * 
                                           * @param name the name of the type variable.
                                           */
                                          void visitTypeVariable(String name);
                                      
                                          /**
                                           * Visits a signature corresponding to an array type.
                                    !      * 
                                           * @return a non null visitor to visit the signature of the array element
                                           *         type.
                                           */
                                    --- 136,149 ----
                                      
                                          /**
                                           * Visits a signature corresponding to a type variable.
                                    !      *
                                           * @param name the name of the type variable.
                                           */
                                          void visitTypeVariable(String name);
                                      
                                          /**
                                           * Visits a signature corresponding to an array type.
                                    !      *
                                           * @return a non null visitor to visit the signature of the array element
                                           *         type.
                                           */
                                    *************** public interface SignatureVisitor {
                                    *** 152,165 ****
                                          /**
                                           * Starts the visit of a signature corresponding to a class or interface
                                           * type.
                                    !      * 
                                           * @param name the internal name of the class or interface.
                                           */
                                          void visitClassType(String name);
                                      
                                          /**
                                           * Visits an inner class.
                                    !      * 
                                           * @param name the local name of the inner class in its enclosing class.
                                           */
                                          void visitInnerClassType(String name);
                                    --- 152,165 ----
                                          /**
                                           * Starts the visit of a signature corresponding to a class or interface
                                           * type.
                                    !      *
                                           * @param name the internal name of the class or interface.
                                           */
                                          void visitClassType(String name);
                                      
                                          /**
                                           * Visits an inner class.
                                    !      *
                                           * @param name the local name of the inner class in its enclosing class.
                                           */
                                          void visitInnerClassType(String name);
                                    *************** public interface SignatureVisitor {
                                    *** 172,178 ****
                                      
                                          /**
                                           * Visits a type argument of the last visited class or inner class type.
                                    !      * 
                                           * @param wildcard '+', '-' or '='.
                                           * @return a non null visitor to visit the signature of the type argument.
                                           */
                                    --- 172,178 ----
                                      
                                          /**
                                           * Visits a type argument of the last visited class or inner class type.
                                    !      *
                                           * @param wildcard '+', '-' or '='.
                                           * @return a non null visitor to visit the signature of the type argument.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm.signature;
                                    *** 31,37 ****
                                      
                                      /**
                                       * A signature visitor that generates signatures in string format.
                                    !  * 
                                       * @author Thomas Hallgren
                                       * @author Eric Bruneton
                                       */
                                    --- 31,37 ----
                                      
                                      /**
                                       * A signature visitor that generates signatures in string format.
                                    !  *
                                       * @author Thomas Hallgren
                                       * @author Eric Bruneton
                                       */
                                    *************** public class SignatureWriter implements 
                                    *** 174,180 ****
                                      
                                          /**
                                           * Returns the signature that was built by this signature writer.
                                    !      * 
                                           * @return the signature that was built by this signature writer.
                                           */
                                          public String toString() {
                                    --- 174,180 ----
                                      
                                          /**
                                           * Returns the signature that was built by this signature writer.
                                    !      *
                                           * @return the signature that was built by this signature writer.
                                           */
                                          public String toString() {
                                    *************** public class SignatureWriter implements 
                                    *** 204,207 ****
                                              }
                                              argumentStack /= 2;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 204,207 ----
                                              }
                                              argumentStack /= 2;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 33,39 ****
                                      
                                      /**
                                       * A node that represents a bytecode instruction.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public abstract class AbstractInsnNode {
                                    --- 33,39 ----
                                      
                                      /**
                                       * A node that represents a bytecode instruction.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public abstract class AbstractInsnNode {
                                    *************** public abstract class AbstractInsnNode {
                                    *** 110,116 ****
                                      
                                          /**
                                           * Constructs a new {@link AbstractInsnNode}.
                                    !      * 
                                           * @param opcode the opcode of the instruction to be constructed.
                                           */
                                          protected AbstractInsnNode(final int opcode) {
                                    --- 110,116 ----
                                      
                                          /**
                                           * Constructs a new {@link AbstractInsnNode}.
                                    !      *
                                           * @param opcode the opcode of the instruction to be constructed.
                                           */
                                          protected AbstractInsnNode(final int opcode) {
                                    *************** public abstract class AbstractInsnNode {
                                    *** 119,125 ****
                                      
                                          /**
                                           * Returns the opcode of this instruction.
                                    !      * 
                                           * @return the opcode of this instruction.
                                           */
                                          public int getOpcode() {
                                    --- 119,125 ----
                                      
                                          /**
                                           * Returns the opcode of this instruction.
                                    !      *
                                           * @return the opcode of this instruction.
                                           */
                                          public int getOpcode() {
                                    *************** public abstract class AbstractInsnNode {
                                    *** 128,134 ****
                                      
                                          /**
                                           * Returns the type of this instruction.
                                    !      * 
                                           * @return the type of this instruction, i.e. one the constants defined in
                                           *         this class.
                                           */
                                    --- 128,134 ----
                                      
                                          /**
                                           * Returns the type of this instruction.
                                    !      *
                                           * @return the type of this instruction, i.e. one the constants defined in
                                           *         this class.
                                           */
                                    *************** public abstract class AbstractInsnNode {
                                    *** 136,142 ****
                                      
                                          /**
                                           * Makes the given code visitor visit this instruction.
                                    !      * 
                                           * @param cv a code visitor.
                                           */
                                          public abstract void accept(final MethodVisitor cv);
                                    --- 136,142 ----
                                      
                                          /**
                                           * Makes the given code visitor visit this instruction.
                                    !      *
                                           * @param cv a code visitor.
                                           */
                                          public abstract void accept(final MethodVisitor cv);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.AnnotationVisit
                                    *** 36,42 ****
                                      
                                      /**
                                       * A node that represents an annotationn.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class AnnotationNode implements AnnotationVisitor {
                                    --- 36,42 ----
                                      
                                      /**
                                       * A node that represents an annotationn.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class AnnotationNode implements AnnotationVisitor {
                                    *************** public class AnnotationNode implements A
                                    *** 61,67 ****
                                      
                                          /**
                                           * Constructs a new {@link AnnotationNode}.
                                    !      * 
                                           * @param desc the class descriptor of the annotation class.
                                           */
                                          public AnnotationNode(final String desc) {
                                    --- 61,67 ----
                                      
                                          /**
                                           * Constructs a new {@link AnnotationNode}.
                                    !      *
                                           * @param desc the class descriptor of the annotation class.
                                           */
                                          public AnnotationNode(final String desc) {
                                    *************** public class AnnotationNode implements A
                                    *** 70,76 ****
                                      
                                          /**
                                           * Constructs a new {@link AnnotationNode} to visit an array value.
                                    !      * 
                                           * @param values where the visited values must be stored.
                                           */
                                          AnnotationNode(final List values) {
                                    --- 70,76 ----
                                      
                                          /**
                                           * Constructs a new {@link AnnotationNode} to visit an array value.
                                    !      *
                                           * @param values where the visited values must be stored.
                                           */
                                          AnnotationNode(final List values) {
                                    *************** public class AnnotationNode implements A
                                    *** 141,147 ****
                                      
                                          /**
                                           * Makes the given visitor visit this annotation.
                                    !      * 
                                           * @param av an annotation visitor.
                                           */
                                          public void accept(final AnnotationVisitor av) {
                                    --- 141,147 ----
                                      
                                          /**
                                           * Makes the given visitor visit this annotation.
                                    !      *
                                           * @param av an annotation visitor.
                                           */
                                          public void accept(final AnnotationVisitor av) {
                                    *************** public class AnnotationNode implements A
                                    *** 157,163 ****
                                      
                                          /**
                                           * Makes the given visitor visit a given annotation value.
                                    !      * 
                                           * @param av an annotation visitor.
                                           * @param name the value name.
                                           * @param value the actual value.
                                    --- 157,163 ----
                                      
                                          /**
                                           * Makes the given visitor visit a given annotation value.
                                    !      *
                                           * @param av an annotation visitor.
                                           * @param name the value name.
                                           * @param value the actual value.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Arrays;
                                    *** 40,46 ****
                                      
                                      /**
                                       * A node that represents a class.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ClassNode extends MemberNode implements ClassVisitor {
                                    --- 40,46 ----
                                      
                                      /**
                                       * A node that represents a class.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ClassNode extends MemberNode implements ClassVisitor {
                                    *************** public class ClassNode extends MemberNod
                                    *** 115,121 ****
                                          /**
                                           * Informations about the inner classes of this class. This list is a list
                                           * of {@link InnerClassNode} objects.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.InnerClassNode
                                           */
                                          public List innerClasses;
                                    --- 115,121 ----
                                          /**
                                           * Informations about the inner classes of this class. This list is a list
                                           * of {@link InnerClassNode} objects.
                                    !      *
                                           * @associates org.objectweb.asm.tree.InnerClassNode
                                           */
                                          public List innerClasses;
                                    *************** public class ClassNode extends MemberNod
                                    *** 123,129 ****
                                          /**
                                           * The fields of this class. This list is a list of {@link FieldNode}
                                           * objects.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.FieldNode
                                           */
                                          public List fields;
                                    --- 123,129 ----
                                          /**
                                           * The fields of this class. This list is a list of {@link FieldNode}
                                           * objects.
                                    !      *
                                           * @associates org.objectweb.asm.tree.FieldNode
                                           */
                                          public List fields;
                                    *************** public class ClassNode extends MemberNod
                                    *** 131,137 ****
                                          /**
                                           * The methods of this class. This list is a list of {@link MethodNode}
                                           * objects.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.MethodNode
                                           */
                                          public List methods;
                                    --- 131,137 ----
                                          /**
                                           * The methods of this class. This list is a list of {@link MethodNode}
                                           * objects.
                                    !      *
                                           * @associates org.objectweb.asm.tree.MethodNode
                                           */
                                          public List methods;
                                    *************** public class ClassNode extends MemberNod
                                    *** 233,239 ****
                                      
                                          /**
                                           * Makes the given class visitor visit this class.
                                    !      * 
                                           * @param cv a class visitor.
                                           */
                                          public void accept(final ClassVisitor cv) {
                                    --- 233,239 ----
                                      
                                          /**
                                           * Makes the given class visitor visit this class.
                                    !      *
                                           * @param cv a class visitor.
                                           */
                                          public void accept(final ClassVisitor cv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 34,40 ****
                                      /**
                                       * A node that represents a field instruction. A field instruction is an
                                       * instruction that loads or stores the value of a field of an object.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class FieldInsnNode extends AbstractInsnNode {
                                    --- 34,40 ----
                                      /**
                                       * A node that represents a field instruction. A field instruction is an
                                       * instruction that loads or stores the value of a field of an object.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class FieldInsnNode extends AbstractInsnNode {
                                    *************** public class FieldInsnNode extends Abstr
                                    *** 57,63 ****
                                      
                                          /**
                                           * Constructs a new {@link FieldInsnNode}.
                                    !      * 
                                           * @param opcode the opcode of the type instruction to be constructed. This
                                           *        opcode must be GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.
                                           * @param owner the internal name of the field's owner class (see
                                    --- 57,63 ----
                                      
                                          /**
                                           * Constructs a new {@link FieldInsnNode}.
                                    !      *
                                           * @param opcode the opcode of the type instruction to be constructed. This
                                           *        opcode must be GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.
                                           * @param owner the internal name of the field's owner class (see
                                    *************** public class FieldInsnNode extends Abstr
                                    *** 79,85 ****
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      * 
                                           * @param opcode the new instruction opcode. This opcode must be GETSTATIC,
                                           *        PUTSTATIC, GETFIELD or PUTFIELD.
                                           */
                                    --- 79,85 ----
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      *
                                           * @param opcode the new instruction opcode. This opcode must be GETSTATIC,
                                           *        PUTSTATIC, GETFIELD or PUTFIELD.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.FieldVisitor;
                                    *** 35,41 ****
                                      
                                      /**
                                       * A node that represents a field.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class FieldNode extends MemberNode implements FieldVisitor {
                                    --- 35,41 ----
                                      
                                      /**
                                       * A node that represents a field.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class FieldNode extends MemberNode implements FieldVisitor {
                                    *************** public class FieldNode extends MemberNod
                                    *** 70,76 ****
                                      
                                          /**
                                           * Constructs a new {@link FieldNode}.
                                    !      * 
                                           * @param access the field's access flags (see
                                           *        {@link org.objectweb.asm.Opcodes}). This parameter also indicates
                                           *        if the field is synthetic and/or deprecated.
                                    --- 70,76 ----
                                      
                                          /**
                                           * Constructs a new {@link FieldNode}.
                                    !      *
                                           * @param access the field's access flags (see
                                           *        {@link org.objectweb.asm.Opcodes}). This parameter also indicates
                                           *        if the field is synthetic and/or deprecated.
                                    *************** public class FieldNode extends MemberNod
                                    *** 98,104 ****
                                      
                                          /**
                                           * Makes the given class visitor visit this field.
                                    !      * 
                                           * @param cv a class visitor.
                                           */
                                          public void accept(final ClassVisitor cv) {
                                    --- 98,104 ----
                                      
                                          /**
                                           * Makes the given class visitor visit this field.
                                    !      *
                                           * @param cv a class visitor.
                                           */
                                          public void accept(final ClassVisitor cv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 34,40 ****
                                      
                                      /**
                                       * A node that represents an IINC instruction.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class IincInsnNode extends AbstractInsnNode {
                                    --- 34,40 ----
                                      
                                      /**
                                       * A node that represents an IINC instruction.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class IincInsnNode extends AbstractInsnNode {
                                    *************** public class IincInsnNode extends Abstra
                                    *** 51,57 ****
                                      
                                          /**
                                           * Constructs a new {@link IincInsnNode}.
                                    !      * 
                                           * @param var index of the local variable to be incremented.
                                           * @param incr increment amount to increment the local variable by.
                                           */
                                    --- 51,57 ----
                                      
                                          /**
                                           * Constructs a new {@link IincInsnNode}.
                                    !      *
                                           * @param var index of the local variable to be incremented.
                                           * @param incr increment amount to increment the local variable by.
                                           */
                                    *************** public class IincInsnNode extends Abstra
                                    *** 68,71 ****
                                          public int getType() {
                                              return IINC_INSN;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 68,71 ----
                                          public int getType() {
                                              return IINC_INSN;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.ClassVisitor;
                                    *** 33,39 ****
                                      
                                      /**
                                       * A node that represents an inner class.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class InnerClassNode {
                                    --- 33,39 ----
                                      
                                      /**
                                       * A node that represents an inner class.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class InnerClassNode {
                                    *************** public class InnerClassNode {
                                    *** 65,71 ****
                                      
                                          /**
                                           * Constructs a new {@link InnerClassNode}.
                                    !      * 
                                           * @param name the internal name of an inner class (see
                                           *        {@link org.objectweb.asm.Type#getInternalName() getInternalName}).
                                           * @param outerName the internal name of the class to which the inner class
                                    --- 65,71 ----
                                      
                                          /**
                                           * Constructs a new {@link InnerClassNode}.
                                    !      *
                                           * @param name the internal name of an inner class (see
                                           *        {@link org.objectweb.asm.Type#getInternalName() getInternalName}).
                                           * @param outerName the internal name of the class to which the inner class
                                    *************** public class InnerClassNode {
                                    *** 92,98 ****
                                      
                                          /**
                                           * Makes the given class visitor visit this inner class.
                                    !      * 
                                           * @param cv a class visitor.
                                           */
                                          public void accept(final ClassVisitor cv) {
                                    --- 92,98 ----
                                      
                                          /**
                                           * Makes the given class visitor visit this inner class.
                                    !      *
                                           * @param cv a class visitor.
                                           */
                                          public void accept(final ClassVisitor cv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 33,39 ****
                                      
                                      /**
                                       * A node that represents a zero operand instruction.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class InsnNode extends AbstractInsnNode {
                                    --- 33,39 ----
                                      
                                      /**
                                       * A node that represents a zero operand instruction.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class InsnNode extends AbstractInsnNode {
                                    *************** public class InsnNode extends AbstractIn
                                    *** 49,57 ****
                                      
                                          /**
                                           * Returns the {@link InsnNode} corresponding to the given opcode.
                                    !      * 
                                           * @deprecated uses the constructor instead.
                                    !      * 
                                           * @param opcode an instruction opcode.
                                           * @return the {@link InsnNode} corresponding to the given opcode.
                                           */
                                    --- 49,57 ----
                                      
                                          /**
                                           * Returns the {@link InsnNode} corresponding to the given opcode.
                                    !      *
                                           * @deprecated uses the constructor instead.
                                    !      *
                                           * @param opcode an instruction opcode.
                                           * @return the {@link InsnNode} corresponding to the given opcode.
                                           */
                                    *************** public class InsnNode extends AbstractIn
                                    *** 61,67 ****
                                      
                                          /**
                                           * Constructs a new {@link InsnNode}.
                                    !      * 
                                           * @param opcode the opcode of the instruction to be constructed. This
                                           *        opcode must be NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1,
                                           *        ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1,
                                    --- 61,67 ----
                                      
                                          /**
                                           * Constructs a new {@link InsnNode}.
                                    !      *
                                           * @param opcode the opcode of the instruction to be constructed. This
                                           *        opcode must be NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1,
                                           *        ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1,
                                    *************** public class InsnNode extends AbstractIn
                                    *** 83,89 ****
                                      
                                          /**
                                           * Makes the given visitor visit this instruction.
                                    !      * 
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    --- 83,89 ----
                                      
                                          /**
                                           * Makes the given visitor visit this instruction.
                                    !      *
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 33,39 ****
                                      
                                      /**
                                       * A node that represents an instruction with a single int operand.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class IntInsnNode extends AbstractInsnNode {
                                    --- 33,39 ----
                                      
                                      /**
                                       * A node that represents an instruction with a single int operand.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class IntInsnNode extends AbstractInsnNode {
                                    *************** public class IntInsnNode extends Abstrac
                                    *** 45,51 ****
                                      
                                          /**
                                           * Constructs a new {@link IntInsnNode}.
                                    !      * 
                                           * @param opcode the opcode of the instruction to be constructed. This
                                           *        opcode must be BIPUSH, SIPUSH or NEWARRAY.
                                           * @param operand the operand of the instruction to be constructed.
                                    --- 45,51 ----
                                      
                                          /**
                                           * Constructs a new {@link IntInsnNode}.
                                    !      *
                                           * @param opcode the opcode of the instruction to be constructed. This
                                           *        opcode must be BIPUSH, SIPUSH or NEWARRAY.
                                           * @param operand the operand of the instruction to be constructed.
                                    *************** public class IntInsnNode extends Abstrac
                                    *** 57,63 ****
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      * 
                                           * @param opcode the new instruction opcode. This opcode must be BIPUSH,
                                           *        SIPUSH or NEWARRAY.
                                           */
                                    --- 57,63 ----
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      *
                                           * @param opcode the new instruction opcode. This opcode must be BIPUSH,
                                           *        SIPUSH or NEWARRAY.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 35,41 ****
                                      /**
                                       * A node that represents a jump instruction. A jump instruction is an
                                       * instruction that may jump to another instruction.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class JumpInsnNode extends AbstractInsnNode {
                                    --- 35,41 ----
                                      /**
                                       * A node that represents a jump instruction. A jump instruction is an
                                       * instruction that may jump to another instruction.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class JumpInsnNode extends AbstractInsnNode {
                                    *************** public class JumpInsnNode extends Abstra
                                    *** 48,54 ****
                                      
                                          /**
                                           * Constructs a new {@link JumpInsnNode}.
                                    !      * 
                                           * @param opcode the opcode of the type instruction to be constructed. This
                                           *        opcode must be IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ,
                                           *        IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ,
                                    --- 48,54 ----
                                      
                                          /**
                                           * Constructs a new {@link JumpInsnNode}.
                                    !      *
                                           * @param opcode the opcode of the type instruction to be constructed. This
                                           *        opcode must be IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ,
                                           *        IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ,
                                    *************** public class JumpInsnNode extends Abstra
                                    *** 64,70 ****
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      * 
                                           * @param opcode the new instruction opcode. This opcode must be IFEQ, IFNE,
                                           *        IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT,
                                           *        IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, IF_ACMPNE, GOTO, JSR,
                                    --- 64,70 ----
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      *
                                           * @param opcode the new instruction opcode. This opcode must be IFEQ, IFNE,
                                           *        IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT,
                                           *        IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, IF_ACMPNE, GOTO, JSR,
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java	Tue Jan 11 19:46:05 2011
                                    *************** public class LabelNode extends AbstractI
                                    *** 51,54 ****
                                          public int getType() {
                                              return LABEL;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 51,54 ----
                                          public int getType() {
                                              return LABEL;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Opcodes;
                                    *** 34,40 ****
                                      
                                      /**
                                       * A node that represents an LDC instruction.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class LdcInsnNode extends AbstractInsnNode {
                                    --- 34,40 ----
                                      
                                      /**
                                       * A node that represents an LDC instruction.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class LdcInsnNode extends AbstractInsnNode {
                                    *************** public class LdcInsnNode extends Abstrac
                                    *** 48,54 ****
                                      
                                          /**
                                           * Constructs a new {@link LdcInsnNode}.
                                    !      * 
                                           * @param cst the constant to be loaded on the stack. This parameter must be
                                           *        a non null {@link Integer}, a {@link Float}, a {@link Long}, a
                                           *        {@link Double} or a {@link String}.
                                    --- 48,54 ----
                                      
                                          /**
                                           * Constructs a new {@link LdcInsnNode}.
                                    !      *
                                           * @param cst the constant to be loaded on the stack. This parameter must be
                                           *        a non null {@link Integer}, a {@link Float}, a {@link Long}, a
                                           *        {@link Double} or a {@link String}.
                                    *************** public class LdcInsnNode extends Abstrac
                                    *** 65,68 ****
                                          public int getType() {
                                              return LDC_INSN;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 65,68 ----
                                          public int getType() {
                                              return LDC_INSN;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 34,40 ****
                                      
                                      /**
                                       * A node that represents a line number declaration.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class LineNumberNode {
                                    --- 34,40 ----
                                      
                                      /**
                                       * A node that represents a line number declaration.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class LineNumberNode {
                                    *************** public class LineNumberNode {
                                    *** 52,58 ****
                                      
                                          /**
                                           * Constructs a new {@link LineNumberNode}.
                                    !      * 
                                           * @param line a line number. This number refers to the source file from
                                           *        which the class was compiled.
                                           * @param start the first instruction corresponding to this line number.
                                    --- 52,58 ----
                                      
                                          /**
                                           * Constructs a new {@link LineNumberNode}.
                                    !      *
                                           * @param line a line number. This number refers to the source file from
                                           *        which the class was compiled.
                                           * @param start the first instruction corresponding to this line number.
                                    *************** public class LineNumberNode {
                                    *** 64,70 ****
                                      
                                          /**
                                           * Makes the given visitor visit this line number declaration.
                                    !      * 
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    --- 64,70 ----
                                      
                                          /**
                                           * Makes the given visitor visit this line number declaration.
                                    !      *
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Label;
                                    *** 34,40 ****
                                      
                                      /**
                                       * A node that represents a local variable declaration.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class LocalVariableNode {
                                    --- 34,40 ----
                                      
                                      /**
                                       * A node that represents a local variable declaration.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class LocalVariableNode {
                                    *************** public class LocalVariableNode {
                                    *** 73,79 ****
                                      
                                          /**
                                           * Constructs a new {@link LocalVariableNode}.
                                    !      * 
                                           * @param name the name of a local variable.
                                           * @param desc the type descriptor of this local variable.
                                           * @param signature the signature of this local variable. May be
                                    --- 73,79 ----
                                      
                                          /**
                                           * Constructs a new {@link LocalVariableNode}.
                                    !      *
                                           * @param name the name of a local variable.
                                           * @param desc the type descriptor of this local variable.
                                           * @param signature the signature of this local variable. May be
                                    *************** public class LocalVariableNode {
                                    *** 102,108 ****
                                      
                                          /**
                                           * Makes the given visitor visit this local variable declaration.
                                    !      * 
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    --- 102,108 ----
                                      
                                          /**
                                           * Makes the given visitor visit this local variable declaration.
                                    !      *
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Arrays;
                                    *** 39,45 ****
                                      
                                      /**
                                       * A node that represents a LOOKUPSWITCH instruction.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class LookupSwitchInsnNode extends AbstractInsnNode {
                                    --- 39,45 ----
                                      
                                      /**
                                       * A node that represents a LOOKUPSWITCH instruction.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class LookupSwitchInsnNode extends AbstractInsnNode {
                                    *************** public class LookupSwitchInsnNode extend
                                    *** 62,68 ****
                                      
                                          /**
                                           * Constructs a new {@link LookupSwitchInsnNode}.
                                    !      * 
                                           * @param dflt beginning of the default handler block.
                                           * @param keys the values of the keys.
                                           * @param labels beginnings of the handler blocks. <tt>labels[i]</tt> is
                                    --- 62,68 ----
                                      
                                          /**
                                           * Constructs a new {@link LookupSwitchInsnNode}.
                                    !      *
                                           * @param dflt beginning of the default handler block.
                                           * @param keys the values of the keys.
                                           * @param labels beginnings of the handler blocks. <tt>labels[i]</tt> is
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Attribute;
                                    *** 37,43 ****
                                      
                                      /**
                                       * An abstract class, field or method node.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public abstract class MemberNode {
                                    --- 37,43 ----
                                      
                                      /**
                                       * An abstract class, field or method node.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public abstract class MemberNode {
                                    *************** public abstract class MemberNode {
                                    *** 45,51 ****
                                          /**
                                           * The runtime visible annotations of this class, field or method. This list
                                           * is a list of {@link AnnotationNode} objects. May be <tt>null</tt>.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.AnnotationNode
                                           * @label visible
                                           */
                                    --- 45,51 ----
                                          /**
                                           * The runtime visible annotations of this class, field or method. This list
                                           * is a list of {@link AnnotationNode} objects. May be <tt>null</tt>.
                                    !      *
                                           * @associates org.objectweb.asm.tree.AnnotationNode
                                           * @label visible
                                           */
                                    *************** public abstract class MemberNode {
                                    *** 54,60 ****
                                          /**
                                           * The runtime invisible annotations of this class, field or method. This
                                           * list is a list of {@link AnnotationNode} objects. May be <tt>null</tt>.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.AnnotationNode
                                           * @label invisible
                                           */
                                    --- 54,60 ----
                                          /**
                                           * The runtime invisible annotations of this class, field or method. This
                                           * list is a list of {@link AnnotationNode} objects. May be <tt>null</tt>.
                                    !      *
                                           * @associates org.objectweb.asm.tree.AnnotationNode
                                           * @label invisible
                                           */
                                    *************** public abstract class MemberNode {
                                    *** 63,69 ****
                                          /**
                                           * The non standard attributes of this class, field or method. This list is
                                           * a list of {@link Attribute} objects. May be <tt>null</tt>.
                                    !      * 
                                           * @associates org.objectweb.asm.Attribute
                                           */
                                          public List attrs;
                                    --- 63,69 ----
                                          /**
                                           * The non standard attributes of this class, field or method. This list is
                                           * a list of {@link Attribute} objects. May be <tt>null</tt>.
                                    !      *
                                           * @associates org.objectweb.asm.Attribute
                                           */
                                          public List attrs;
                                    *************** public abstract class MemberNode {
                                    *** 76,82 ****
                                      
                                          /**
                                           * Visits an annotation of this class, field or method.
                                    !      * 
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a visitor to visit the annotation values.
                                    --- 76,82 ----
                                      
                                          /**
                                           * Visits an annotation of this class, field or method.
                                    !      *
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a visitor to visit the annotation values.
                                    *************** public abstract class MemberNode {
                                    *** 102,108 ****
                                      
                                          /**
                                           * Visits a non standard attribute of this class, field or method.
                                    !      * 
                                           * @param attr an attribute.
                                           */
                                          public void visitAttribute(final Attribute attr) {
                                    --- 102,108 ----
                                      
                                          /**
                                           * Visits a non standard attribute of this class, field or method.
                                    !      *
                                           * @param attr an attribute.
                                           */
                                          public void visitAttribute(final Attribute attr) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 34,40 ****
                                      /**
                                       * A node that represents a method instruction. A method instruction is an
                                       * instruction that invokes a method.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class MethodInsnNode extends AbstractInsnNode {
                                    --- 34,40 ----
                                      /**
                                       * A node that represents a method instruction. A method instruction is an
                                       * instruction that invokes a method.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class MethodInsnNode extends AbstractInsnNode {
                                    *************** public class MethodInsnNode extends Abst
                                    *** 57,63 ****
                                      
                                          /**
                                           * Constructs a new {@link MethodInsnNode}.
                                    !      * 
                                           * @param opcode the opcode of the type instruction to be constructed. This
                                           *        opcode must be INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or
                                           *        INVOKEINTERFACE.
                                    --- 57,63 ----
                                      
                                          /**
                                           * Constructs a new {@link MethodInsnNode}.
                                    !      *
                                           * @param opcode the opcode of the type instruction to be constructed. This
                                           *        opcode must be INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or
                                           *        INVOKEINTERFACE.
                                    *************** public class MethodInsnNode extends Abst
                                    *** 80,86 ****
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      * 
                                           * @param opcode the new instruction opcode. This opcode must be
                                           *        INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or INVOKEINTERFACE.
                                           */
                                    --- 80,86 ----
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      *
                                           * @param opcode the new instruction opcode. This opcode must be
                                           *        INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or INVOKEINTERFACE.
                                           */
                                    *************** public class MethodInsnNode extends Abst
                                    *** 95,98 ****
                                          public int getType() {
                                              return METHOD_INSN;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 95,98 ----
                                          public int getType() {
                                              return METHOD_INSN;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Arrays;
                                    *** 43,49 ****
                                      
                                      /**
                                       * A node that represents a method.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class MethodNode extends MemberNode implements MethodVisitor {
                                    --- 43,49 ----
                                      
                                      /**
                                       * A node that represents a method.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class MethodNode extends MemberNode implements MethodVisitor {
                                    *************** public class MethodNode extends MemberNo
                                    *** 89,95 ****
                                          /**
                                           * The runtime visible parameter annotations of this method. These lists are
                                           * lists of {@link AnnotationNode} objects. May be <tt>null</tt>.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.AnnotationNode
                                           * @label invisible parameters
                                           */
                                    --- 89,95 ----
                                          /**
                                           * The runtime visible parameter annotations of this method. These lists are
                                           * lists of {@link AnnotationNode} objects. May be <tt>null</tt>.
                                    !      *
                                           * @associates org.objectweb.asm.tree.AnnotationNode
                                           * @label invisible parameters
                                           */
                                    *************** public class MethodNode extends MemberNo
                                    *** 98,104 ****
                                          /**
                                           * The runtime invisible parameter annotations of this method. These lists
                                           * are lists of {@link AnnotationNode} objects. May be <tt>null</tt>.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.AnnotationNode
                                           * @label visible parameters
                                           */
                                    --- 98,104 ----
                                          /**
                                           * The runtime invisible parameter annotations of this method. These lists
                                           * are lists of {@link AnnotationNode} objects. May be <tt>null</tt>.
                                    !      *
                                           * @associates org.objectweb.asm.tree.AnnotationNode
                                           * @label visible parameters
                                           */
                                    *************** public class MethodNode extends MemberNo
                                    *** 107,113 ****
                                          /**
                                           * The instructions of this method. This list is a list of
                                           * {@link AbstractInsnNode} objects.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.AbstractInsnNode
                                           * @label instructions
                                           */
                                    --- 107,113 ----
                                          /**
                                           * The instructions of this method. This list is a list of
                                           * {@link AbstractInsnNode} objects.
                                    !      *
                                           * @associates org.objectweb.asm.tree.AbstractInsnNode
                                           * @label instructions
                                           */
                                    *************** public class MethodNode extends MemberNo
                                    *** 116,122 ****
                                          /**
                                           * The try catch blocks of this method. This list is a list of
                                           * {@link TryCatchBlockNode} objects.
                                    !      * 
                                           * @associates org.objectweb.asm.tree.TryCatchBlockNode
                                           */
                                          public List tryCatchBlocks;
                                    --- 116,122 ----
                                          /**
                                           * The try catch blocks of this method. This list is a list of
                                           * {@link TryCatchBlockNode} objects.
                                    !      *
                                           * @associates org.objectweb.asm.tree.TryCatchBlockNode
                                           */
                                          public List tryCatchBlocks;
                                    *************** public class MethodNode extends MemberNo
                                    *** 134,140 ****
                                          /**
                                           * The local variables of this method. This list is a list of
                                           * {@link LocalVariableNode} objects. May be <tt>null</tt>
                                    !      * 
                                           * @associates org.objectweb.asm.tree.LocalVariableNode
                                           */
                                          public List localVariables;
                                    --- 134,140 ----
                                          /**
                                           * The local variables of this method. This list is a list of
                                           * {@link LocalVariableNode} objects. May be <tt>null</tt>
                                    !      *
                                           * @associates org.objectweb.asm.tree.LocalVariableNode
                                           */
                                          public List localVariables;
                                    *************** public class MethodNode extends MemberNo
                                    *** 142,155 ****
                                          /**
                                           * The line numbers of this method. This list is a list of
                                           * {@link LineNumberNode} objects. May be <tt>null</tt>
                                    !      * 
                                           * @associates org.objectweb.asm.tree.LineNumberNode
                                           */
                                          public List lineNumbers;
                                      
                                          /**
                                           * Constructs a new {@link MethodNode}.
                                    !      * 
                                           * @param access the method's access flags (see {@link Opcodes}). This
                                           *        parameter also indicates if the method is synthetic and/or
                                           *        deprecated.
                                    --- 142,155 ----
                                          /**
                                           * The line numbers of this method. This list is a list of
                                           * {@link LineNumberNode} objects. May be <tt>null</tt>
                                    !      *
                                           * @associates org.objectweb.asm.tree.LineNumberNode
                                           */
                                          public List lineNumbers;
                                      
                                          /**
                                           * Constructs a new {@link MethodNode}.
                                    !      *
                                           * @param access the method's access flags (see {@link Opcodes}). This
                                           *        parameter also indicates if the method is synthetic and/or
                                           *        deprecated.
                                    *************** public class MethodNode extends MemberNo
                                    *** 341,347 ****
                                      
                                          /**
                                           * Makes the given class visitor visit this method.
                                    !      * 
                                           * @param cv a class visitor.
                                           */
                                          public void accept(final ClassVisitor cv) {
                                    --- 341,347 ----
                                      
                                          /**
                                           * Makes the given class visitor visit this method.
                                    !      *
                                           * @param cv a class visitor.
                                           */
                                          public void accept(final ClassVisitor cv) {
                                    *************** public class MethodNode extends MemberNo
                                    *** 356,365 ****
                                                  accept(mv);
                                              }
                                          }
                                    !     
                                          /**
                                           * Makes the given method visitor visit this method.
                                    !      * 
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    --- 356,365 ----
                                                  accept(mv);
                                              }
                                          }
                                    ! 
                                          /**
                                           * Makes the given method visitor visit this method.
                                    !      *
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 34,40 ****
                                      
                                      /**
                                       * A node that represents a MULTIANEWARRAY instruction.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class MultiANewArrayInsnNode extends AbstractInsnNode {
                                    --- 34,40 ----
                                      
                                      /**
                                       * A node that represents a MULTIANEWARRAY instruction.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class MultiANewArrayInsnNode extends AbstractInsnNode {
                                    *************** public class MultiANewArrayInsnNode exte
                                    *** 51,57 ****
                                      
                                          /**
                                           * Constructs a new {@link MultiANewArrayInsnNode}.
                                    !      * 
                                           * @param desc an array type descriptor (see {@link org.objectweb.asm.Type}).
                                           * @param dims number of dimensions of the array to allocate.
                                           */
                                    --- 51,57 ----
                                      
                                          /**
                                           * Constructs a new {@link MultiANewArrayInsnNode}.
                                    !      *
                                           * @param desc an array type descriptor (see {@link org.objectweb.asm.Type}).
                                           * @param dims number of dimensions of the array to allocate.
                                           */
                                    *************** public class MultiANewArrayInsnNode exte
                                    *** 68,71 ****
                                          public int getType() {
                                              return MULTIANEWARRAY_INSN;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 68,71 ----
                                          public int getType() {
                                              return MULTIANEWARRAY_INSN;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.List;
                                    *** 39,45 ****
                                      
                                      /**
                                       * A node that represents a TABLESWITCH instruction.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class TableSwitchInsnNode extends AbstractInsnNode {
                                    --- 39,45 ----
                                      
                                      /**
                                       * A node that represents a TABLESWITCH instruction.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class TableSwitchInsnNode extends AbstractInsnNode {
                                    *************** public class TableSwitchInsnNode extends
                                    *** 67,73 ****
                                      
                                          /**
                                           * Constructs a new {@link TableSwitchInsnNode}.
                                    !      * 
                                           * @param min the minimum key value.
                                           * @param max the maximum key value.
                                           * @param dflt beginning of the default handler block.
                                    --- 67,73 ----
                                      
                                          /**
                                           * Constructs a new {@link TableSwitchInsnNode}.
                                    !      *
                                           * @param min the minimum key value.
                                           * @param max the maximum key value.
                                           * @param dflt beginning of the default handler block.
                                    *************** public class TableSwitchInsnNode extends
                                    *** 99,102 ****
                                          public int getType() {
                                              return TABLESWITCH_INSN;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 99,102 ----
                                          public int getType() {
                                              return TABLESWITCH_INSN;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 34,40 ****
                                      
                                      /**
                                       * A node that represents a try catch block.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class TryCatchBlockNode {
                                    --- 34,40 ----
                                      
                                      /**
                                       * A node that represents a try catch block.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class TryCatchBlockNode {
                                    *************** public class TryCatchBlockNode {
                                    *** 62,68 ****
                                      
                                          /**
                                           * Constructs a new {@link TryCatchBlockNode}.
                                    !      * 
                                           * @param start beginning of the exception handler's scope (inclusive).
                                           * @param end end of the exception handler's scope (exclusive).
                                           * @param handler beginning of the exception handler's code.
                                    --- 62,68 ----
                                      
                                          /**
                                           * Constructs a new {@link TryCatchBlockNode}.
                                    !      *
                                           * @param start beginning of the exception handler's scope (inclusive).
                                           * @param end end of the exception handler's scope (exclusive).
                                           * @param handler beginning of the exception handler's code.
                                    *************** public class TryCatchBlockNode {
                                    *** 84,90 ****
                                      
                                          /**
                                           * Makes the given visitor visit this try catch block.
                                    !      * 
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    --- 84,90 ----
                                      
                                          /**
                                           * Makes the given visitor visit this try catch block.
                                    !      *
                                           * @param mv a method visitor.
                                           */
                                          public void accept(final MethodVisitor mv) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 34,40 ****
                                      /**
                                       * A node that represents a type instruction. A type instruction is an
                                       * instruction that takes a type descriptor as parameter.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class TypeInsnNode extends AbstractInsnNode {
                                    --- 34,40 ----
                                      /**
                                       * A node that represents a type instruction. A type instruction is an
                                       * instruction that takes a type descriptor as parameter.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class TypeInsnNode extends AbstractInsnNode {
                                    *************** public class TypeInsnNode extends Abstra
                                    *** 47,53 ****
                                      
                                          /**
                                           * Constructs a new {@link TypeInsnNode}.
                                    !      * 
                                           * @param opcode the opcode of the type instruction to be constructed. This
                                           *        opcode must be NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.
                                           * @param desc the operand of the instruction to be constructed. This
                                    --- 47,53 ----
                                      
                                          /**
                                           * Constructs a new {@link TypeInsnNode}.
                                    !      *
                                           * @param opcode the opcode of the type instruction to be constructed. This
                                           *        opcode must be NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.
                                           * @param desc the operand of the instruction to be constructed. This
                                    *************** public class TypeInsnNode extends Abstra
                                    *** 60,66 ****
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      * 
                                           * @param opcode the new instruction opcode. This opcode must be NEW,
                                           *        ANEWARRAY, CHECKCAST or INSTANCEOF.
                                           */
                                    --- 60,66 ----
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      *
                                           * @param opcode the new instruction opcode. This opcode must be NEW,
                                           *        ANEWARRAY, CHECKCAST or INSTANCEOF.
                                           */
                                    *************** public class TypeInsnNode extends Abstra
                                    *** 75,78 ****
                                          public int getType() {
                                              return TYPE_INSN;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 75,78 ----
                                          public int getType() {
                                              return TYPE_INSN;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.MethodVisitor;
                                    *** 35,41 ****
                                       * A node that represents a local variable instruction. A local variable
                                       * instruction is an instruction that loads or stores the value of a local
                                       * variable.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class VarInsnNode extends AbstractInsnNode {
                                    --- 35,41 ----
                                       * A node that represents a local variable instruction. A local variable
                                       * instruction is an instruction that loads or stores the value of a local
                                       * variable.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class VarInsnNode extends AbstractInsnNode {
                                    *************** public class VarInsnNode extends Abstrac
                                    *** 48,54 ****
                                      
                                          /**
                                           * Constructs a new {@link VarInsnNode}.
                                    !      * 
                                           * @param opcode the opcode of the local variable instruction to be
                                           *        constructed. This opcode must be ILOAD, LLOAD, FLOAD, DLOAD,
                                           *        ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET.
                                    --- 48,54 ----
                                      
                                          /**
                                           * Constructs a new {@link VarInsnNode}.
                                    !      *
                                           * @param opcode the opcode of the local variable instruction to be
                                           *        constructed. This opcode must be ILOAD, LLOAD, FLOAD, DLOAD,
                                           *        ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET.
                                    *************** public class VarInsnNode extends Abstrac
                                    *** 62,68 ****
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      * 
                                           * @param opcode the new instruction opcode. This opcode must be ILOAD,
                                           *        LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE
                                           *        or RET.
                                    --- 62,68 ----
                                      
                                          /**
                                           * Sets the opcode of this instruction.
                                    !      *
                                           * @param opcode the new instruction opcode. This opcode must be ILOAD,
                                           *        LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE
                                           *        or RET.
                                    *************** public class VarInsnNode extends Abstrac
                                    *** 78,81 ****
                                          public int getType() {
                                              return VAR_INSN;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 78,81 ----
                                          public int getType() {
                                              return VAR_INSN;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.VarInsnNod
                                    *** 47,53 ****
                                      
                                      /**
                                       * A semantic bytecode analyzer.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class Analyzer implements Opcodes {
                                    --- 47,53 ----
                                      
                                      /**
                                       * A semantic bytecode analyzer.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class Analyzer implements Opcodes {
                                    *************** public class Analyzer implements Opcodes
                                    *** 74,80 ****
                                      
                                          /**
                                           * Constructs a new {@link Analyzer}.
                                    !      * 
                                           * @param interpreter the interpreter to be used to symbolically interpret
                                           *        the bytecode instructions.
                                           */
                                    --- 74,80 ----
                                      
                                          /**
                                           * Constructs a new {@link Analyzer}.
                                    !      *
                                           * @param interpreter the interpreter to be used to symbolically interpret
                                           *        the bytecode instructions.
                                           */
                                    *************** public class Analyzer implements Opcodes
                                    *** 84,90 ****
                                      
                                          /**
                                           * Analyzes the given method.
                                    !      * 
                                           * @param owner the internal name of the class to which the method belongs.
                                           * @param m the method to be analyzed.
                                           * @return the symbolic state of the execution stack frame at each bytecode
                                    --- 84,90 ----
                                      
                                          /**
                                           * Analyzes the given method.
                                    !      *
                                           * @param owner the internal name of the class to which the method belongs.
                                           * @param m the method to be analyzed.
                                           * @return the symbolic state of the execution stack frame at each bytecode
                                    *************** public class Analyzer implements Opcodes
                                    *** 263,269 ****
                                          /**
                                           * Returns the symbolic stack frame for each instruction of the last
                                           * recently analyzed method.
                                    !      * 
                                           * @return the symbolic state of the execution stack frame at each bytecode
                                           *         instruction of the method. The size of the returned array is
                                           *         equal to the number of instructions (and labels) of the method. A
                                    --- 263,269 ----
                                          /**
                                           * Returns the symbolic stack frame for each instruction of the last
                                           * recently analyzed method.
                                    !      *
                                           * @return the symbolic state of the execution stack frame at each bytecode
                                           *         instruction of the method. The size of the returned array is
                                           *         equal to the number of instructions (and labels) of the method. A
                                    *************** public class Analyzer implements Opcodes
                                    *** 277,283 ****
                                      
                                          /**
                                           * Returns the index of the given instruction.
                                    !      * 
                                           * @param insn a {@link Label} or {@link AbstractInsnNode} of the last
                                           *        recently analyzed method.
                                           * @return the index of the given instruction of the last recently analyzed
                                    --- 277,283 ----
                                      
                                          /**
                                           * Returns the index of the given instruction.
                                    !      *
                                           * @param insn a {@link Label} or {@link AbstractInsnNode} of the last
                                           *        recently analyzed method.
                                           * @return the index of the given instruction of the last recently analyzed
                                    *************** public class Analyzer implements Opcodes
                                    *** 289,295 ****
                                      
                                          /**
                                           * Returns the exception handlers for the given instruction.
                                    !      * 
                                           * @param insn the index of an instruction of the last recently analyzed
                                           *        method.
                                           * @return a list of {@link TryCatchBlockNode} objects.
                                    --- 289,295 ----
                                      
                                          /**
                                           * Returns the exception handlers for the given instruction.
                                    !      *
                                           * @param insn the index of an instruction of the last recently analyzed
                                           *        method.
                                           * @return a list of {@link TryCatchBlockNode} objects.
                                    *************** public class Analyzer implements Opcodes
                                    *** 300,306 ****
                                      
                                          /**
                                           * Constructs a new frame with the given size.
                                    !      * 
                                           * @param nLocals the maximum number of local variables of the frame.
                                           * @param nStack the maximum stack size of the frame.
                                           * @return the created frame.
                                    --- 300,306 ----
                                      
                                          /**
                                           * Constructs a new frame with the given size.
                                    !      *
                                           * @param nLocals the maximum number of local variables of the frame.
                                           * @param nStack the maximum stack size of the frame.
                                           * @return the created frame.
                                    *************** public class Analyzer implements Opcodes
                                    *** 311,317 ****
                                      
                                          /**
                                           * Constructs a new frame that is identical to the given frame.
                                    !      * 
                                           * @param src a frame.
                                           * @return the created frame.
                                           */
                                    --- 311,317 ----
                                      
                                          /**
                                           * Constructs a new frame that is identical to the given frame.
                                    !      *
                                           * @param src a frame.
                                           * @return the created frame.
                                           */
                                    *************** public class Analyzer implements Opcodes
                                    *** 324,330 ****
                                           * method does nothing. It can be overriden in order to construct the
                                           * control flow graph of a method (this method is called by the
                                           * {@link #analyze analyze} method during its visit of the method's code).
                                    !      * 
                                           * @param frame the frame corresponding to an instruction.
                                           * @param successor the frame corresponding to a successor instruction.
                                           */
                                    --- 324,330 ----
                                           * method does nothing. It can be overriden in order to construct the
                                           * control flow graph of a method (this method is called by the
                                           * {@link #analyze analyze} method during its visit of the method's code).
                                    !      *
                                           * @param frame the frame corresponding to an instruction.
                                           * @param successor the frame corresponding to a successor instruction.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm.tree.analysis;
                                    *** 31,37 ****
                                      
                                      /**
                                       * Thrown if a problem occurs during the analysis of a method.
                                    !  * 
                                       * @author Bing Ran
                                       * @author Eric Bruneton
                                       */
                                    --- 31,37 ----
                                      
                                      /**
                                       * Thrown if a problem occurs during the analysis of a method.
                                    !  *
                                       * @author Bing Ran
                                       * @author Eric Bruneton
                                       */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.TypeInsnNo
                                    *** 43,49 ****
                                      
                                      /**
                                       * An {@link Interpreter} for {@link BasicValue} values.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Bing Ran
                                       */
                                    --- 43,49 ----
                                      
                                      /**
                                       * An {@link Interpreter} for {@link BasicValue} values.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Bing Ran
                                       */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 35,41 ****
                                       * A {@link Value} that is represented by its type in a seven types type sytem.
                                       * This type system distinguishes the UNINITIALZED, INT, FLOAT, LONG, DOUBLE,
                                       * REFERENCE and RETURNADDRESS types.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class BasicValue implements Value {
                                    --- 35,41 ----
                                       * A {@link Value} that is represented by its type in a seven types type sytem.
                                       * This type system distinguishes the UNINITIALZED, INT, FLOAT, LONG, DOUBLE,
                                       * REFERENCE and RETURNADDRESS types.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class BasicValue implements Value {
                                    *************** public class BasicValue implements Value
                                    *** 102,105 ****
                                                  return type.getDescriptor();
                                              }
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 102,105 ----
                                                  return type.getDescriptor();
                                              }
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.MethodInsn
                                    *** 39,45 ****
                                      /**
                                       * An extended {@link BasicInterpreter} that checks that bytecode instructions
                                       * are correctly used.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Bing Ran
                                       */
                                    --- 39,45 ----
                                      /**
                                       * An extended {@link BasicInterpreter} that checks that bytecode instructions
                                       * are correctly used.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Bing Ran
                                       */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.MethodInsn
                                    *** 42,48 ****
                                      
                                      /**
                                       * An {@link Interpreter} for {@link DataflowValue} values.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class DataflowInterpreter implements Opcodes, Interpreter {
                                    --- 42,48 ----
                                      
                                      /**
                                       * An {@link Interpreter} for {@link DataflowValue} values.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class DataflowInterpreter implements Opcodes, Interpreter {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.AbstractIn
                                    *** 36,42 ****
                                      /**
                                       * A {@link Value} that is represented by its type in a two types type system.
                                       * This type system distinguishes the ONEWORD and TWOWORDS types.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class DataflowValue implements Value {
                                    --- 36,42 ----
                                      /**
                                       * A {@link Value} that is represented by its type in a two types type system.
                                       * This type system distinguishes the ONEWORD and TWOWORDS types.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class DataflowValue implements Value {
                                    *************** public class DataflowValue implements Va
                                    *** 50,56 ****
                                           * The instructions that can produce this value. For example, for the Java
                                           * code below, the instructions that can produce the value of <tt>i</tt>
                                           * at line 5 are the txo ISTORE instructions at line 1 and 3:
                                    !      * 
                                           * <pre>
                                           * 1: i = 0;
                                           * 2: if (...) {
                                    --- 50,56 ----
                                           * The instructions that can produce this value. For example, for the Java
                                           * code below, the instructions that can produce the value of <tt>i</tt>
                                           * at line 5 are the txo ISTORE instructions at line 1 and 3:
                                    !      *
                                           * <pre>
                                           * 1: i = 0;
                                           * 2: if (...) {
                                    *************** public class DataflowValue implements Va
                                    *** 58,64 ****
                                           * 4: }
                                           * 5: return i;
                                           * </pre>
                                    !      * 
                                           * This field is a set of {@link AbstractInsnNode} objects.
                                           */
                                          public final Set insns;
                                    --- 58,64 ----
                                           * 4: }
                                           * 5: return i;
                                           * </pre>
                                    !      *
                                           * This field is a set of {@link AbstractInsnNode} objects.
                                           */
                                          public final Set insns;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.VarInsnNod
                                    *** 45,51 ****
                                       * variable slots, and an operand stack. Warning: long and double values are
                                       * represented by <i>two</i> slots in local variables, and by <i>one</i> slot
                                       * in the operand stack.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class Frame {
                                    --- 45,51 ----
                                       * variable slots, and an operand stack. Warning: long and double values are
                                       * represented by <i>two</i> slots in local variables, and by <i>one</i> slot
                                       * in the operand stack.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class Frame {
                                    *************** public class Frame {
                                    *** 67,73 ****
                                      
                                          /**
                                           * Constructs a new frame with the given size.
                                    !      * 
                                           * @param nLocals the maximum number of local variables of the frame.
                                           * @param nStack the maximum stack size of the frame.
                                           */
                                    --- 67,73 ----
                                      
                                          /**
                                           * Constructs a new frame with the given size.
                                    !      *
                                           * @param nLocals the maximum number of local variables of the frame.
                                           * @param nStack the maximum stack size of the frame.
                                           */
                                    *************** public class Frame {
                                    *** 78,84 ****
                                      
                                          /**
                                           * Constructs a new frame that is identical to the given frame.
                                    !      * 
                                           * @param src a frame.
                                           */
                                          public Frame(final Frame src) {
                                    --- 78,84 ----
                                      
                                          /**
                                           * Constructs a new frame that is identical to the given frame.
                                    !      *
                                           * @param src a frame.
                                           */
                                          public Frame(final Frame src) {
                                    *************** public class Frame {
                                    *** 88,94 ****
                                      
                                          /**
                                           * Copies the state of the given frame into this frame.
                                    !      * 
                                           * @param src a frame.
                                           * @return this frame.
                                           */
                                    --- 88,94 ----
                                      
                                          /**
                                           * Copies the state of the given frame into this frame.
                                    !      *
                                           * @param src a frame.
                                           * @return this frame.
                                           */
                                    *************** public class Frame {
                                    *** 100,106 ****
                                      
                                          /**
                                           * Returns the maximum number of local variables of this frame.
                                    !      * 
                                           * @return the maximum number of local variables of this frame.
                                           */
                                          public int getLocals() {
                                    --- 100,106 ----
                                      
                                          /**
                                           * Returns the maximum number of local variables of this frame.
                                    !      *
                                           * @return the maximum number of local variables of this frame.
                                           */
                                          public int getLocals() {
                                    *************** public class Frame {
                                    *** 109,115 ****
                                      
                                          /**
                                           * Returns the value of the given local variable.
                                    !      * 
                                           * @param i a local variable index.
                                           * @return the value of the given local variable.
                                           * @throws IndexOutOfBoundsException if the variable does not exist.
                                    --- 109,115 ----
                                      
                                          /**
                                           * Returns the value of the given local variable.
                                    !      *
                                           * @param i a local variable index.
                                           * @return the value of the given local variable.
                                           * @throws IndexOutOfBoundsException if the variable does not exist.
                                    *************** public class Frame {
                                    *** 123,129 ****
                                      
                                          /**
                                           * Sets the value of the given local variable.
                                    !      * 
                                           * @param i a local variable index.
                                           * @param value the new value of this local variable.
                                           * @throws IndexOutOfBoundsException if the variable does not exist.
                                    --- 123,129 ----
                                      
                                          /**
                                           * Sets the value of the given local variable.
                                    !      *
                                           * @param i a local variable index.
                                           * @param value the new value of this local variable.
                                           * @throws IndexOutOfBoundsException if the variable does not exist.
                                    *************** public class Frame {
                                    *** 140,146 ****
                                          /**
                                           * Returns the number of values in the operand stack of this frame. Long and
                                           * double values are treated as single values.
                                    !      * 
                                           * @return the number of values in the operand stack of this frame.
                                           */
                                          public int getStackSize() {
                                    --- 140,146 ----
                                          /**
                                           * Returns the number of values in the operand stack of this frame. Long and
                                           * double values are treated as single values.
                                    !      *
                                           * @return the number of values in the operand stack of this frame.
                                           */
                                          public int getStackSize() {
                                    *************** public class Frame {
                                    *** 149,155 ****
                                      
                                          /**
                                           * Returns the value of the given operand stack slot.
                                    !      * 
                                           * @param i the index of an operand stack slot.
                                           * @return the value of the given operand stack slot.
                                           * @throws IndexOutOfBoundsException if the operand stack slot does not
                                    --- 149,155 ----
                                      
                                          /**
                                           * Returns the value of the given operand stack slot.
                                    !      *
                                           * @param i the index of an operand stack slot.
                                           * @return the value of the given operand stack slot.
                                           * @throws IndexOutOfBoundsException if the operand stack slot does not
                                    *************** public class Frame {
                                    *** 171,177 ****
                                      
                                          /**
                                           * Pops a value from the operand stack of this frame.
                                    !      * 
                                           * @return the value that has been popped from the stack.
                                           * @throws IndexOutOfBoundsException if the operand stack is empty.
                                           */
                                    --- 171,177 ----
                                      
                                          /**
                                           * Pops a value from the operand stack of this frame.
                                    !      *
                                           * @return the value that has been popped from the stack.
                                           * @throws IndexOutOfBoundsException if the operand stack is empty.
                                           */
                                    *************** public class Frame {
                                    *** 184,190 ****
                                      
                                          /**
                                           * Pushes a value into the operand stack of this frame.
                                    !      * 
                                           * @param value the value that must be pushed into the stack.
                                           * @throws IndexOutOfBoundsException if the operand stack is full.
                                           */
                                    --- 184,190 ----
                                      
                                          /**
                                           * Pushes a value into the operand stack of this frame.
                                    !      *
                                           * @param value the value that must be pushed into the stack.
                                           * @throws IndexOutOfBoundsException if the operand stack is full.
                                           */
                                    *************** public class Frame {
                                    *** 607,613 ****
                                      
                                          /**
                                           * Merges this frame with the given frame.
                                    !      * 
                                           * @param frame a frame.
                                           * @param interpreter the interpreter used to merge values.
                                           * @return <tt>true</tt> if this frame has been changed as a result of the
                                    --- 607,613 ----
                                      
                                          /**
                                           * Merges this frame with the given frame.
                                    !      *
                                           * @param frame a frame.
                                           * @param interpreter the interpreter used to merge values.
                                           * @return <tt>true</tt> if this frame has been changed as a result of the
                                    *************** public class Frame {
                                    *** 633,639 ****
                                      
                                          /**
                                           * Merges this frame with the given frame (case of a RET instruction).
                                    !      * 
                                           * @param frame a frame
                                           * @param access the local variables that have been accessed by the
                                           *        subroutine to which the RET instruction corresponds.
                                    --- 633,639 ----
                                      
                                          /**
                                           * Merges this frame with the given frame (case of a RET instruction).
                                    !      *
                                           * @param frame a frame
                                           * @param access the local variables that have been accessed by the
                                           *        subroutine to which the RET instruction corresponds.
                                    *************** public class Frame {
                                    *** 653,659 ****
                                      
                                          /**
                                           * Returns a string representation of this frame.
                                    !      * 
                                           * @return a string representation of this frame.
                                           */
                                          public String toString() {
                                    --- 653,659 ----
                                      
                                          /**
                                           * Returns a string representation of this frame.
                                    !      *
                                           * @return a string representation of this frame.
                                           */
                                          public String toString() {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm.tree.analysis;
                                    *** 31,37 ****
                                      
                                      /**
                                       * A fixed size map of integer values.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      class IntMap {
                                    --- 31,37 ----
                                      
                                      /**
                                       * A fixed size map of integer values.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      class IntMap {
                                    *************** class IntMap {
                                    *** 50,56 ****
                                      
                                          public int get(final Object key) {
                                              int n = size;
                                    !         int h = (key.hashCode() & 0x7FFFFFFF) % n; 
                                              int i = h;
                                              while (keys[i] != key) {
                                                  i = (i + 1) % n;
                                    --- 50,56 ----
                                      
                                          public int get(final Object key) {
                                              int n = size;
                                    !         int h = (key.hashCode() & 0x7FFFFFFF) % n;
                                              int i = h;
                                              while (keys[i] != key) {
                                                  i = (i + 1) % n;
                                    *************** class IntMap {
                                    *** 70,73 ****
                                              keys[i] = key;
                                              values[i] = value;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 70,73 ----
                                              keys[i] = key;
                                              values[i] = value;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.AbstractIn
                                    *** 41,58 ****
                                       * This separation allows a generic bytecode {@link Analyzer} to work with
                                       * various semantic interpreters, without needing to duplicate the code to
                                       * simulate the transfer of values.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public interface Interpreter {
                                      
                                          /**
                                           * Creates a new value that represents the given type.
                                    !      * 
                                           * Called for method parameters (including <code>this</code>),
                                    !      * exception handler variable and with <code>null</code> type 
                                           * for variables reserved by long and double types.
                                    !      * 
                                           * @param type a primitive or reference type, or <tt>null</tt> to
                                           *        represent an uninitialized value.
                                           * @return a value that represents the given type. The size of the returned
                                    --- 41,58 ----
                                       * This separation allows a generic bytecode {@link Analyzer} to work with
                                       * various semantic interpreters, without needing to duplicate the code to
                                       * simulate the transfer of values.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public interface Interpreter {
                                      
                                          /**
                                           * Creates a new value that represents the given type.
                                    !      *
                                           * Called for method parameters (including <code>this</code>),
                                    !      * exception handler variable and with <code>null</code> type
                                           * for variables reserved by long and double types.
                                    !      *
                                           * @param type a primitive or reference type, or <tt>null</tt> to
                                           *        represent an uninitialized value.
                                           * @return a value that represents the given type. The size of the returned
                                    *************** public interface Interpreter {
                                    *** 63,73 ****
                                          /**
                                           * Interprets a bytecode instruction without arguments. This method is
                                           * called for the following opcodes:
                                    !      * 
                                           * ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4,
                                           * ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0,
                                           * DCONST_1, BIPUSH, SIPUSH, LDC, JSR, GETSTATIC, NEW
                                    !      * 
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @return the result of the interpretation of the given instruction.
                                           * @throws AnalyzerException if an error occured during the interpretation.
                                    --- 63,73 ----
                                          /**
                                           * Interprets a bytecode instruction without arguments. This method is
                                           * called for the following opcodes:
                                    !      *
                                           * ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4,
                                           * ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0,
                                           * DCONST_1, BIPUSH, SIPUSH, LDC, JSR, GETSTATIC, NEW
                                    !      *
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @return the result of the interpretation of the given instruction.
                                           * @throws AnalyzerException if an error occured during the interpretation.
                                    *************** public interface Interpreter {
                                    *** 77,86 ****
                                          /**
                                           * Interprets a bytecode instruction that moves a value on the stack or to
                                           * or from local variables. This method is called for the following opcodes:
                                    !      * 
                                           * ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE,
                                           * ASTORE, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP
                                    !      * 
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param value the value that must be moved by the instruction.
                                           * @return the result of the interpretation of the given instruction. The
                                    --- 77,86 ----
                                          /**
                                           * Interprets a bytecode instruction that moves a value on the stack or to
                                           * or from local variables. This method is called for the following opcodes:
                                    !      *
                                           * ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE,
                                           * ASTORE, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP
                                    !      *
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param value the value that must be moved by the instruction.
                                           * @return the result of the interpretation of the given instruction. The
                                    *************** public interface Interpreter {
                                    *** 93,105 ****
                                          /**
                                           * Interprets a bytecode instruction with a single argument. This method is
                                           * called for the following opcodes:
                                    !      * 
                                           * INEG, LNEG, FNEG, DNEG, IINC, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L,
                                           * F2D, D2I, D2L, D2F, I2B, I2C, I2S, IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE,
                                           * TABLESWITCH, LOOKUPSWITCH, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN,
                                           * PUTSTATIC, GETFIELD, NEWARRAY, ANEWARRAY, ARRAYLENGTH, ATHROW, CHECKCAST,
                                           * INSTANCEOF, MONITORENTER, MONITOREXIT, IFNULL, IFNONNULL
                                    !      * 
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param value the argument of the instruction to be interpreted.
                                           * @return the result of the interpretation of the given instruction.
                                    --- 93,105 ----
                                          /**
                                           * Interprets a bytecode instruction with a single argument. This method is
                                           * called for the following opcodes:
                                    !      *
                                           * INEG, LNEG, FNEG, DNEG, IINC, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L,
                                           * F2D, D2I, D2L, D2F, I2B, I2C, I2S, IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE,
                                           * TABLESWITCH, LOOKUPSWITCH, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN,
                                           * PUTSTATIC, GETFIELD, NEWARRAY, ANEWARRAY, ARRAYLENGTH, ATHROW, CHECKCAST,
                                           * INSTANCEOF, MONITORENTER, MONITOREXIT, IFNULL, IFNONNULL
                                    !      *
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param value the argument of the instruction to be interpreted.
                                           * @return the result of the interpretation of the given instruction.
                                    *************** public interface Interpreter {
                                    *** 111,124 ****
                                          /**
                                           * Interprets a bytecode instruction with two arguments. This method is
                                           * called for the following opcodes:
                                    !      * 
                                           * IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IADD,
                                           * LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV,
                                           * LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, ISHL, LSHL, ISHR, LSHR, IUSHR,
                                           * LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, LCMP, FCMPL, FCMPG, DCMPL,
                                           * DCMPG, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE,
                                           * IF_ACMPEQ, IF_ACMPNE, PUTFIELD
                                    !      * 
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param value1 the first argument of the instruction to be interpreted.
                                           * @param value2 the second argument of the instruction to be interpreted.
                                    --- 111,124 ----
                                          /**
                                           * Interprets a bytecode instruction with two arguments. This method is
                                           * called for the following opcodes:
                                    !      *
                                           * IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IADD,
                                           * LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV,
                                           * LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, ISHL, LSHL, ISHR, LSHR, IUSHR,
                                           * LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, LCMP, FCMPL, FCMPG, DCMPL,
                                           * DCMPG, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE,
                                           * IF_ACMPEQ, IF_ACMPNE, PUTFIELD
                                    !      *
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param value1 the first argument of the instruction to be interpreted.
                                           * @param value2 the second argument of the instruction to be interpreted.
                                    *************** public interface Interpreter {
                                    *** 131,139 ****
                                          /**
                                           * Interprets a bytecode instruction with three arguments. This method is
                                           * called for the following opcodes:
                                    !      * 
                                           * IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE
                                    !      * 
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param value1 the first argument of the instruction to be interpreted.
                                           * @param value2 the second argument of the instruction to be interpreted.
                                    --- 131,139 ----
                                          /**
                                           * Interprets a bytecode instruction with three arguments. This method is
                                           * called for the following opcodes:
                                    !      *
                                           * IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE
                                    !      *
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param value1 the first argument of the instruction to be interpreted.
                                           * @param value2 the second argument of the instruction to be interpreted.
                                    *************** public interface Interpreter {
                                    *** 150,159 ****
                                          /**
                                           * Interprets a bytecode instruction with a variable number of arguments.
                                           * This method is called for the following opcodes:
                                    !      * 
                                           * INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC, INVOKEINTERFACE,
                                           * MULTIANEWARRAY
                                    !      * 
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param values the arguments of the instruction to be interpreted.
                                           * @return the result of the interpretation of the given instruction.
                                    --- 150,159 ----
                                          /**
                                           * Interprets a bytecode instruction with a variable number of arguments.
                                           * This method is called for the following opcodes:
                                    !      *
                                           * INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC, INVOKEINTERFACE,
                                           * MULTIANEWARRAY
                                    !      *
                                           * @param insn the bytecode instruction to be interpreted.
                                           * @param values the arguments of the instruction to be interpreted.
                                           * @return the result of the interpretation of the given instruction.
                                    *************** public interface Interpreter {
                                    *** 168,174 ****
                                           * the merged value must be a common super type of the two types. If the two
                                           * values are integer intervals, the merged value must be an interval that
                                           * contains the previous ones. Likewise for other types of values).
                                    !      * 
                                           * @param v a value.
                                           * @param w another value.
                                           * @return the merged value. If the merged value is equal to <tt>v</tt>,
                                    --- 168,174 ----
                                           * the merged value must be a common super type of the two types. If the two
                                           * values are integer intervals, the merged value must be an interval that
                                           * contains the previous ones. Likewise for other types of values).
                                    !      *
                                           * @param v a value.
                                           * @param w another value.
                                           * @return the merged value. If the merged value is equal to <tt>v</tt>,
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 37,43 ****
                                       * An extended {@link BasicVerifier} that performs more precise verifications.
                                       * This verifier computes exact class types, instead of using a single "object
                                       * reference" type (as done in the {@link BasicVerifier}).
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Bing Ran
                                       */
                                    --- 37,43 ----
                                       * An extended {@link BasicVerifier} that performs more precise verifications.
                                       * This verifier computes exact class types, instead of using a single "object
                                       * reference" type (as done in the {@link BasicVerifier}).
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Bing Ran
                                       */
                                    *************** public class SimpleVerifier extends Basi
                                    *** 73,79 ****
                                          /**
                                           * Constructs a new {@link SimpleVerifier} to verify a specific class. This
                                           * class will not be loaded into the JVM since it may be incorrect.
                                    !      * 
                                           * @param currentClass the class that is verified.
                                           * @param currentSuperClass the super class of the class that is verified.
                                           * @param isInterface if the class that is verified is an interface.
                                    --- 73,79 ----
                                          /**
                                           * Constructs a new {@link SimpleVerifier} to verify a specific class. This
                                           * class will not be loaded into the JVM since it may be incorrect.
                                    !      *
                                           * @param currentClass the class that is verified.
                                           * @param currentSuperClass the super class of the class that is verified.
                                           * @param isInterface if the class that is verified is an interface.
                                    *************** public class SimpleVerifier extends Basi
                                    *** 89,95 ****
                                          /**
                                           * Constructs a new {@link SimpleVerifier} to verify a specific class. This
                                           * class will not be loaded into the JVM since it may be incorrect.
                                    !      * 
                                           * @param currentClass the class that is verified.
                                           * @param currentSuperClass the super class of the class that is verified.
                                           * @param currentClassInterfaces the interfaces implemented by the class
                                    --- 89,95 ----
                                          /**
                                           * Constructs a new {@link SimpleVerifier} to verify a specific class. This
                                           * class will not be loaded into the JVM since it may be incorrect.
                                    !      *
                                           * @param currentClass the class that is verified.
                                           * @param currentSuperClass the super class of the class that is verified.
                                           * @param currentClassInterfaces the interfaces implemented by the class
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Set;
                                    *** 36,42 ****
                                      
                                      /**
                                       * A set of at most two elements.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      class SmallSet extends AbstractSet implements Iterator {
                                    --- 36,42 ----
                                      
                                      /**
                                       * A set of at most two elements.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      class SmallSet extends AbstractSet implements Iterator {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.JumpInsnNo
                                    *** 37,43 ****
                                      
                                      /**
                                       * A method subroutine (corresponds to a JSR instruction).
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      class Subroutine {
                                    --- 37,43 ----
                                      
                                      /**
                                       * A method subroutine (corresponds to a JSR instruction).
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      class Subroutine {
                                    *************** class Subroutine {
                                    *** 93,96 ****
                                              }
                                              return changes;
                                          }
                                    ! }
                                    \ No newline at end of file
                                    --- 93,96 ----
                                              }
                                              return changes;
                                          }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java	Tue Jan 11 19:46:05 2011
                                    *************** package org.objectweb.asm.tree.analysis;
                                    *** 31,44 ****
                                      
                                      /**
                                       * An immutable symbolic value for semantic interpretation of bytecode.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public interface Value {
                                      
                                          /**
                                           * Returns the size of this value in words.
                                    !      * 
                                           * @return either 1 or 2.
                                           */
                                          int getSize();
                                    --- 31,44 ----
                                      
                                      /**
                                       * An immutable symbolic value for semantic interpretation of bytecode.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public interface Value {
                                      
                                          /**
                                           * Returns the size of this value in words.
                                    !      *
                                           * @return either 1 or 2.
                                           */
                                          int getSize();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.util.attrs.ASMi
                                    *** 38,44 ****
                                      
                                      /**
                                       * An abstract ASMifier visitor.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ASMifierAbstractVisitor extends AbstractVisitor {
                                    --- 38,44 ----
                                      
                                      /**
                                       * An abstract ASMifier visitor.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ASMifierAbstractVisitor extends AbstractVisitor {
                                    *************** public class ASMifierAbstractVisitor ext
                                    *** 56,62 ****
                                      
                                          /**
                                           * Constructs a new {@link ASMifierAbstractVisitor}.
                                    !      * 
                                           * @param name the name of the variable for this visitor in the produced
                                           *        code.
                                           */
                                    --- 56,62 ----
                                      
                                          /**
                                           * Constructs a new {@link ASMifierAbstractVisitor}.
                                    !      *
                                           * @param name the name of the variable for this visitor in the produced
                                           *        code.
                                           */
                                    *************** public class ASMifierAbstractVisitor ext
                                    *** 66,72 ****
                                      
                                          /**
                                           * Prints the ASM code that generates the given annotation.
                                    !      * 
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a visitor to visit the annotation values.
                                    --- 66,72 ----
                                      
                                          /**
                                           * Prints the ASM code that generates the given annotation.
                                    !      *
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a visitor to visit the annotation values.
                                    *************** public class ASMifierAbstractVisitor ext
                                    *** 91,97 ****
                                      
                                          /**
                                           * Prints the ASM code that generates the given attribute.
                                    !      * 
                                           * @param attr an attribute.
                                           */
                                          public void visitAttribute(final Attribute attr) {
                                    --- 91,97 ----
                                      
                                          /**
                                           * Prints the ASM code that generates the given attribute.
                                    !      *
                                           * @param attr an attribute.
                                           */
                                          public void visitAttribute(final Attribute attr) {
                                    *************** public class ASMifierAbstractVisitor ext
                                    *** 121,127 ****
                                          /**
                                           * Appends a string representation of the given constant to the given
                                           * buffer.
                                    !      * 
                                           * @param cst an {@link Integer}, {@link Float}, {@link Long},
                                           *        {@link Double} or {@link String} object. May be <tt>null</tt>.
                                           */
                                    --- 121,127 ----
                                          /**
                                           * Appends a string representation of the given constant to the given
                                           * buffer.
                                    !      *
                                           * @param cst an {@link Integer}, {@link Float}, {@link Long},
                                           *        {@link Double} or {@link String} object. May be <tt>null</tt>.
                                           */
                                    *************** public class ASMifierAbstractVisitor ext
                                    *** 132,138 ****
                                          /**
                                           * Appends a string representation of the given constant to the given
                                           * buffer.
                                    !      * 
                                           * @param buf a string buffer.
                                           * @param cst an {@link Integer}, {@link Float}, {@link Long},
                                           *        {@link Double} or {@link String} object. May be <tt>null</tt>.
                                    --- 132,138 ----
                                          /**
                                           * Appends a string representation of the given constant to the given
                                           * buffer.
                                    !      *
                                           * @param buf a string buffer.
                                           * @param cst an {@link Integer}, {@link Float}, {@link Long},
                                           *        {@link Double} or {@link String} object. May be <tt>null</tt>.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.AnnotationVisit
                                    *** 34,40 ****
                                      /**
                                       * An {@link AnnotationVisitor} that prints the ASM code that generates the
                                       * annotations it visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ASMifierAnnotationVisitor extends AbstractVisitor implements
                                    --- 34,40 ----
                                      /**
                                       * An {@link AnnotationVisitor} that prints the ASM code that generates the
                                       * annotations it visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ASMifierAnnotationVisitor extends AbstractVisitor implements
                                    *************** public class ASMifierAnnotationVisitor e
                                    *** 48,54 ****
                                      
                                          /**
                                           * Constructs a new {@link ASMifierAnnotationVisitor}.
                                    !      * 
                                           * @param id identifier of the annotation visitor variable in the produced
                                           *        code.
                                           */
                                    --- 48,54 ----
                                      
                                          /**
                                           * Constructs a new {@link ASMifierAnnotationVisitor}.
                                    !      *
                                           * @param id identifier of the annotation visitor variable in the produced
                                           *        code.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 49,76 ****
                                       * {@link #main main} method);</li> <li>edit the generated source code, if
                                       * necessary.</li> </ul> The source code printed when visiting the
                                       * <tt>Hello</tt> class is the following: <p> <blockquote>
                                    !  * 
                                       * <pre>
                                       * import org.objectweb.asm.*;
                                    !  * 
                                       * public class HelloDump implements Opcodes {
                                    !  * 
                                       *     public static byte[] dump() throws Exception {
                                    !  * 
                                       *         ClassWriter cw = new ClassWriter(false);
                                       *         FieldVisitor fv;
                                       *         MethodVisitor mv;
                                       *         AnnotationVisitor av0;
                                    !  * 
                                       *         cw.visit(49,
                                       *                 ACC_PUBLIC + ACC_SUPER,
                                       *                 "Hello",
                                       *                 null,
                                       *                 "java/lang/Object",
                                       *                 null);
                                    !  * 
                                       *         cw.visitSource("Hello.java", null);
                                    !  * 
                                       *         {
                                       *             mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
                                       *             mv.visitVarInsn(ALOAD, 0);
                                    --- 49,76 ----
                                       * {@link #main main} method);</li> <li>edit the generated source code, if
                                       * necessary.</li> </ul> The source code printed when visiting the
                                       * <tt>Hello</tt> class is the following: <p> <blockquote>
                                    !  *
                                       * <pre>
                                       * import org.objectweb.asm.*;
                                    !  *
                                       * public class HelloDump implements Opcodes {
                                    !  *
                                       *     public static byte[] dump() throws Exception {
                                    !  *
                                       *         ClassWriter cw = new ClassWriter(false);
                                       *         FieldVisitor fv;
                                       *         MethodVisitor mv;
                                       *         AnnotationVisitor av0;
                                    !  *
                                       *         cw.visit(49,
                                       *                 ACC_PUBLIC + ACC_SUPER,
                                       *                 "Hello",
                                       *                 null,
                                       *                 "java/lang/Object",
                                       *                 null);
                                    !  *
                                       *         cw.visitSource("Hello.java", null);
                                    !  *
                                       *         {
                                       *             mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
                                       *             mv.visitVarInsn(ALOAD, 0);
                                    *************** import org.objectweb.asm.Type;
                                    *** 102,127 ****
                                       *             mv.visitEnd();
                                       *         }
                                       *         cw.visitEnd();
                                    !  * 
                                       *         return cw.toByteArray();
                                       *     }
                                       * }
                                    !  * 
                                       * </pre>
                                    !  * 
                                       * </blockquote> where <tt>Hello</tt> is defined by: <p> <blockquote>
                                    !  * 
                                       * <pre>
                                       * public class Hello {
                                    !  * 
                                       *     public static void main(String[] args) {
                                       *         System.out.println("hello");
                                       *     }
                                       * }
                                       * </pre>
                                    !  * 
                                       * </blockquote>
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    --- 102,127 ----
                                       *             mv.visitEnd();
                                       *         }
                                       *         cw.visitEnd();
                                    !  *
                                       *         return cw.toByteArray();
                                       *     }
                                       * }
                                    !  *
                                       * </pre>
                                    !  *
                                       * </blockquote> where <tt>Hello</tt> is defined by: <p> <blockquote>
                                    !  *
                                       * <pre>
                                       * public class Hello {
                                    !  *
                                       *     public static void main(String[] args) {
                                       *         System.out.println("hello");
                                       *     }
                                       * }
                                       * </pre>
                                    !  *
                                       * </blockquote>
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    *************** public class ASMifierClassVisitor extend
                                    *** 153,161 ****
                                           * Prints the ASM source code to generate the given class to the standard
                                           * output. <p> Usage: ASMifierClassVisitor [-debug] <fully qualified
                                           * class name or class file name>
                                    !      * 
                                           * @param args the command line arguments.
                                    !      * 
                                           * @throws Exception if the class cannot be found, or if an IO exception
                                           *         occurs.
                                           */
                                    --- 153,161 ----
                                           * Prints the ASM source code to generate the given class to the standard
                                           * output. <p> Usage: ASMifierClassVisitor [-debug] <fully qualified
                                           * class name or class file name>
                                    !      *
                                           * @param args the command line arguments.
                                    !      *
                                           * @throws Exception if the class cannot be found, or if an IO exception
                                           *         occurs.
                                           */
                                    *************** public class ASMifierClassVisitor extend
                                    *** 194,200 ****
                                      
                                          /**
                                           * Constructs a new {@link ASMifierClassVisitor} object.
                                    !      * 
                                           * @param pw the print writer to be used to print the class.
                                           */
                                          public ASMifierClassVisitor(final PrintWriter pw) {
                                    --- 194,200 ----
                                      
                                          /**
                                           * Constructs a new {@link ASMifierClassVisitor} object.
                                    !      *
                                           * @param pw the print writer to be used to print the class.
                                           */
                                          public ASMifierClassVisitor(final PrintWriter pw) {
                                    *************** public class ASMifierClassVisitor extend
                                    *** 423,429 ****
                                          /**
                                           * Appends a string representation of the given access modifiers to {@link
                                           * #buf buf}.
                                    !      * 
                                           * @param access some access modifiers.
                                           */
                                          void appendAccess(final int access) {
                                    --- 423,429 ----
                                          /**
                                           * Appends a string representation of the given access modifiers to {@link
                                           * #buf buf}.
                                    !      *
                                           * @param access some access modifiers.
                                           */
                                          void appendAccess(final int access) {
                                    *************** public class ASMifierClassVisitor extend
                                    *** 578,584 ****
                                          /**
                                           * Appends a string representation of the given constant to the given
                                           * buffer.
                                    !      * 
                                           * @param buf a string buffer.
                                           * @param cst an {@link java.lang.Integer Integer}, {@link java.lang.Float
                                           *        Float}, {@link java.lang.Long Long},
                                    --- 578,584 ----
                                          /**
                                           * Appends a string representation of the given constant to the given
                                           * buffer.
                                    !      *
                                           * @param buf a string buffer.
                                           * @param cst an {@link java.lang.Integer Integer}, {@link java.lang.Float
                                           *        Float}, {@link java.lang.Long Long},
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.FieldVisitor;
                                    *** 34,40 ****
                                      /**
                                       * A {@link FieldVisitor} that prints the ASM code that generates the fields it
                                       * visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class ASMifierFieldVisitor extends ASMifierAbstractVisitor implements
                                    --- 34,40 ----
                                      /**
                                       * A {@link FieldVisitor} that prints the ASM code that generates the fields it
                                       * visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class ASMifierFieldVisitor extends ASMifierAbstractVisitor implements
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.HashMap;
                                    *** 39,45 ****
                                      /**
                                       * A {@link MethodVisitor} that prints the ASM code that generates the methods
                                       * it visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    --- 39,45 ----
                                      /**
                                       * A {@link MethodVisitor} that prints the ASM code that generates the methods
                                       * it visits.
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    *************** public class ASMifierMethodVisitor exten
                                    *** 322,328 ****
                                           * Appends a declaration of the given label to {@link #buf buf}. This
                                           * declaration is of the form "Label lXXX = new Label();". Does nothing if
                                           * the given label has already been declared.
                                    !      * 
                                           * @param l a label.
                                           */
                                          private void declareLabel(final Label l) {
                                    --- 322,328 ----
                                           * Appends a declaration of the given label to {@link #buf buf}. This
                                           * declaration is of the form "Label lXXX = new Label();". Does nothing if
                                           * the given label has already been declared.
                                    !      *
                                           * @param l a label.
                                           */
                                          private void declareLabel(final Label l) {
                                    *************** public class ASMifierMethodVisitor exten
                                    *** 338,344 ****
                                           * Appends the name of the given label to {@link #buf buf}. The given label
                                           * <i>must</i> already have a name. One way to ensure this is to always
                                           * call {@link #declareLabel declared} before calling this method.
                                    !      * 
                                           * @param l a label.
                                           */
                                          private void appendLabel(final Label l) {
                                    --- 338,344 ----
                                           * Appends the name of the given label to {@link #buf buf}. The given label
                                           * <i>must</i> already have a name. One way to ensure this is to always
                                           * call {@link #declareLabel declared} before calling this method.
                                    !      *
                                           * @param l a label.
                                           */
                                          private void appendLabel(final Label l) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.util.attrs.ASMS
                                    *** 39,45 ****
                                      
                                      /**
                                       * An abstract visitor.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public abstract class AbstractVisitor {
                                    --- 39,45 ----
                                      
                                      /**
                                       * An abstract visitor.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public abstract class AbstractVisitor {
                                    *************** public abstract class AbstractVisitor {
                                    *** 124,130 ****
                                      
                                          /**
                                           * Returns the text printed by this visitor.
                                    !      * 
                                           * @return the text printed by this visitor.
                                           */
                                          public List getText() {
                                    --- 124,130 ----
                                      
                                          /**
                                           * Returns the text printed by this visitor.
                                    !      *
                                           * @return the text printed by this visitor.
                                           */
                                          public List getText() {
                                    *************** public abstract class AbstractVisitor {
                                    *** 133,139 ****
                                      
                                          /**
                                           * Appends a quoted string to a given buffer.
                                    !      * 
                                           * @param buf the buffer where the string must be added.
                                           * @param s the string to be added.
                                           */
                                    --- 133,139 ----
                                      
                                          /**
                                           * Appends a quoted string to a given buffer.
                                    !      *
                                           * @param buf the buffer where the string must be added.
                                           * @param s the string to be added.
                                           */
                                    *************** public abstract class AbstractVisitor {
                                    *** 168,174 ****
                                      
                                          /**
                                           * Prints the given string tree.
                                    !      * 
                                           * @param pw the writer to be used to print the tree.
                                           * @param l a string tree, i.e., a string list that can contain other string
                                           *        lists, and so on recursively.
                                    --- 168,174 ----
                                      
                                          /**
                                           * Prints the given string tree.
                                    !      *
                                           * @param pw the writer to be used to print the tree.
                                           * @param l a string tree, i.e., a string list that can contain other string
                                           *        lists, and so on recursively.
                                    *************** public abstract class AbstractVisitor {
                                    *** 186,192 ****
                                      
                                          /**
                                           * Returns the default {@link ASMifiable} prototypes.
                                    !      * 
                                           * @return the default {@link ASMifiable} prototypes.
                                           */
                                          public static Attribute[] getDefaultAttributes() {
                                    --- 186,192 ----
                                      
                                          /**
                                           * Returns the default {@link ASMifiable} prototypes.
                                    !      *
                                           * @return the default {@link ASMifiable} prototypes.
                                           */
                                          public static Attribute[] getDefaultAttributes() {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 34,40 ****
                                      
                                      /**
                                       * An {@link AnnotationVisitor} that checks that its methods are properly used.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class CheckAnnotationAdapter implements AnnotationVisitor {
                                    --- 34,40 ----
                                      
                                      /**
                                       * An {@link AnnotationVisitor} that checks that its methods are properly used.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class CheckAnnotationAdapter implements AnnotationVisitor {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.tree.analysis.F
                                    *** 58,64 ****
                                       * <tt>visitField(ACC_PUBLIC, "i", "I", null)</tt> <tt>visitField(ACC_PUBLIC,
                                       * "i", "D", null)</tt>
                                       * will <i>not</i> be detected by this class adapter.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class CheckClassAdapter extends ClassAdapter {
                                    --- 58,64 ----
                                       * <tt>visitField(ACC_PUBLIC, "i", "I", null)</tt> <tt>visitField(ACC_PUBLIC,
                                       * "i", "D", null)</tt>
                                       * will <i>not</i> be detected by this class adapter.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class CheckClassAdapter extends ClassAdapter {
                                    *************** public class CheckClassAdapter extends C
                                    *** 86,94 ****
                                          /**
                                           * Checks a given class. <p> Usage: CheckClassAdapter <fully qualified
                                           * class name or class file name>
                                    !      * 
                                           * @param args the command line arguments.
                                    !      * 
                                           * @throws Exception if the class cannot be found, or if an IO exception
                                           *         occurs.
                                           */
                                    --- 86,94 ----
                                          /**
                                           * Checks a given class. <p> Usage: CheckClassAdapter <fully qualified
                                           * class name or class file name>
                                    !      *
                                           * @param args the command line arguments.
                                    !      *
                                           * @throws Exception if the class cannot be found, or if an IO exception
                                           *         occurs.
                                           */
                                    *************** public class CheckClassAdapter extends C
                                    *** 111,118 ****
                                      
                                          /**
                                           * Checks a given class
                                    !      * 
                                    !      * @param cr a <code>ClassReader</code> that contains bytecode for the analysis. 
                                           * @param dump true if bytecode should be printed out not only when errors are found.
                                           * @param pw write where results going to be printed
                                           */
                                    --- 111,118 ----
                                      
                                          /**
                                           * Checks a given class
                                    !      *
                                    !      * @param cr a <code>ClassReader</code> that contains bytecode for the analysis.
                                           * @param dump true if bytecode should be printed out not only when errors are found.
                                           * @param pw write where results going to be printed
                                           */
                                    *************** public class CheckClassAdapter extends C
                                    *** 143,149 ****
                                                      pw.println(method.name + method.desc);
                                                      for (int j = 0; j < method.instructions.size(); ++j) {
                                                          ((AbstractInsnNode) method.instructions.get(j)).accept(mv);
                                    !                     
                                                          StringBuffer s = new StringBuffer();
                                                          Frame f = frames[j];
                                                          if (f == null) {
                                    --- 143,149 ----
                                                      pw.println(method.name + method.desc);
                                                      for (int j = 0; j < method.instructions.size(); ++j) {
                                                          ((AbstractInsnNode) method.instructions.get(j)).accept(mv);
                                    ! 
                                                          StringBuffer s = new StringBuffer();
                                                          Frame f = frames[j];
                                                          if (f == null) {
                                    *************** public class CheckClassAdapter extends C
                                    *** 184,190 ****
                                      
                                          /**
                                           * Constructs a new {@link CheckClassAdapter}.
                                    !      * 
                                           * @param cv the class visitor to which this adapter must delegate calls.
                                           */
                                          public CheckClassAdapter(final ClassVisitor cv) {
                                    --- 184,190 ----
                                      
                                          /**
                                           * Constructs a new {@link CheckClassAdapter}.
                                    !      *
                                           * @param cv the class visitor to which this adapter must delegate calls.
                                           */
                                          public CheckClassAdapter(final ClassVisitor cv) {
                                    *************** public class CheckClassAdapter extends C
                                    *** 390,396 ****
                                           * Checks that the given access flags do not contain invalid flags. This
                                           * method also checks that mutually incompatible flags are not set
                                           * simultaneously.
                                    !      * 
                                           * @param access the access flags to be checked
                                           * @param possibleAccess the valid access flags.
                                           */
                                    --- 390,396 ----
                                           * Checks that the given access flags do not contain invalid flags. This
                                           * method also checks that mutually incompatible flags are not set
                                           * simultaneously.
                                    !      *
                                           * @param access the access flags to be checked
                                           * @param possibleAccess the valid access flags.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.HashMap;
                                    *** 48,54 ****
                                       * in a method whose signature is <tt>void m ()</tt>, the invalid instruction
                                       * IRETURN, or the invalid sequence IADD L2I will <i>not</i> be detected by
                                       * this code adapter.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class CheckMethodAdapter extends MethodAdapter {
                                    --- 48,54 ----
                                       * in a method whose signature is <tt>void m ()</tt>, the invalid instruction
                                       * IRETURN, or the invalid sequence IADD L2I will <i>not</i> be detected by
                                       * this code adapter.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class CheckMethodAdapter extends MethodAdapter {
                                    *************** public class CheckMethodAdapter extends 
                                    *** 304,310 ****
                                      
                                          /**
                                           * Constructs a new {@link CheckMethodAdapter} object.
                                    !      * 
                                           * @param cv the code visitor to which this adapter must delegate calls.
                                           */
                                          public CheckMethodAdapter(final MethodVisitor cv) {
                                    --- 304,310 ----
                                      
                                          /**
                                           * Constructs a new {@link CheckMethodAdapter} object.
                                    !      *
                                           * @param cv the code visitor to which this adapter must delegate calls.
                                           */
                                          public CheckMethodAdapter(final MethodVisitor cv) {
                                    *************** public class CheckMethodAdapter extends 
                                    *** 622,628 ****
                                      
                                          /**
                                           * Checks that the type of the given opcode is equal to the given type.
                                    !      * 
                                           * @param opcode the opcode to be checked.
                                           * @param type the expected opcode type.
                                           */
                                    --- 622,628 ----
                                      
                                          /**
                                           * Checks that the type of the given opcode is equal to the given type.
                                    !      *
                                           * @param opcode the opcode to be checked.
                                           * @param type the expected opcode type.
                                           */
                                    *************** public class CheckMethodAdapter extends 
                                    *** 634,640 ****
                                      
                                          /**
                                           * Checks that the given value is a signed byte.
                                    !      * 
                                           * @param value the value to be checked.
                                           * @param msg an message to be used in case of error.
                                           */
                                    --- 634,640 ----
                                      
                                          /**
                                           * Checks that the given value is a signed byte.
                                    !      *
                                           * @param value the value to be checked.
                                           * @param msg an message to be used in case of error.
                                           */
                                    *************** public class CheckMethodAdapter extends 
                                    *** 647,653 ****
                                      
                                          /**
                                           * Checks that the given value is a signed short.
                                    !      * 
                                           * @param value the value to be checked.
                                           * @param msg an message to be used in case of error.
                                           */
                                    --- 647,653 ----
                                      
                                          /**
                                           * Checks that the given value is a signed short.
                                    !      *
                                           * @param value the value to be checked.
                                           * @param msg an message to be used in case of error.
                                           */
                                    *************** public class CheckMethodAdapter extends 
                                    *** 660,666 ****
                                      
                                          /**
                                           * Checks that the given value is an unsigned short.
                                    !      * 
                                           * @param value the value to be checked.
                                           * @param msg an message to be used in case of error.
                                           */
                                    --- 660,666 ----
                                      
                                          /**
                                           * Checks that the given value is an unsigned short.
                                    !      *
                                           * @param value the value to be checked.
                                           * @param msg an message to be used in case of error.
                                           */
                                    *************** public class CheckMethodAdapter extends 
                                    *** 674,680 ****
                                          /**
                                           * Checks that the given value is an {@link Integer}, a{@link Float}, a
                                           * {@link Long}, a {@link Double} or a {@link String}.
                                    !      * 
                                           * @param cst the value to be checked.
                                           */
                                          static void checkConstant(final Object cst) {
                                    --- 674,680 ----
                                          /**
                                           * Checks that the given value is an {@link Integer}, a{@link Float}, a
                                           * {@link Long}, a {@link Double} or a {@link String}.
                                    !      *
                                           * @param cst the value to be checked.
                                           */
                                          static void checkConstant(final Object cst) {
                                    *************** public class CheckMethodAdapter extends 
                                    *** 688,694 ****
                                      
                                          /**
                                           * Checks that the given string is a valid Java identifier.
                                    !      * 
                                           * @param name the string to be checked.
                                           * @param msg a message to be used in case of error.
                                           */
                                    --- 688,694 ----
                                      
                                          /**
                                           * Checks that the given string is a valid Java identifier.
                                    !      *
                                           * @param name the string to be checked.
                                           * @param msg a message to be used in case of error.
                                           */
                                    *************** public class CheckMethodAdapter extends 
                                    *** 698,704 ****
                                      
                                          /**
                                           * Checks that the given substring is a valid Java identifier.
                                    !      * 
                                           * @param name the string to be checked.
                                           * @param start index of the first character of the identifier (inclusive).
                                           * @param end index of the last character of the identifier (exclusive). -1
                                    --- 698,704 ----
                                      
                                          /**
                                           * Checks that the given substring is a valid Java identifier.
                                    !      *
                                           * @param name the string to be checked.
                                           * @param start index of the first character of the identifier (inclusive).
                                           * @param end index of the last character of the identifier (exclusive). -1
                                    *************** public class CheckMethodAdapter extends 
                                    *** 733,739 ****
                                          /**
                                           * Checks that the given string is a valid Java identifier or is equal to
                                           * '<init>' or '<clinit>'.
                                    !      * 
                                           * @param name the string to be checked.
                                           * @param msg a message to be used in case of error.
                                           */
                                    --- 733,739 ----
                                          /**
                                           * Checks that the given string is a valid Java identifier or is equal to
                                           * '<init>' or '<clinit>'.
                                    !      *
                                           * @param name the string to be checked.
                                           * @param msg a message to be used in case of error.
                                           */
                                    *************** public class CheckMethodAdapter extends 
                                    *** 763,769 ****
                                      
                                          /**
                                           * Checks that the given string is a valid internal class name.
                                    !      * 
                                           * @param name the string to be checked.
                                           * @param msg a message to be used in case of error.
                                           */
                                    --- 763,769 ----
                                      
                                          /**
                                           * Checks that the given string is a valid internal class name.
                                    !      *
                                           * @param name the string to be checked.
                                           * @param msg a message to be used in case of error.
                                           */
                                    *************** public class CheckMethodAdapter extends 
                                    *** 773,779 ****
                                      
                                          /**
                                           * Checks that the given substring is a valid internal class name.
                                    !      * 
                                           * @param name the string to be checked.
                                           * @param start index of the first character of the identifier (inclusive).
                                           * @param end index of the last character of the identifier (exclusive). -1
                                    --- 773,779 ----
                                      
                                          /**
                                           * Checks that the given substring is a valid internal class name.
                                    !      *
                                           * @param name the string to be checked.
                                           * @param start index of the first character of the identifier (inclusive).
                                           * @param end index of the last character of the identifier (exclusive). -1
                                    *************** public class CheckMethodAdapter extends 
                                    *** 813,819 ****
                                      
                                          /**
                                           * Checks that the given string is a valid type descriptor.
                                    !      * 
                                           * @param desc the string to be checked.
                                           * @param canBeVoid <tt>true</tt> if <tt>V</tt> can be considered valid.
                                           */
                                    --- 813,819 ----
                                      
                                          /**
                                           * Checks that the given string is a valid type descriptor.
                                    !      *
                                           * @param desc the string to be checked.
                                           * @param canBeVoid <tt>true</tt> if <tt>V</tt> can be considered valid.
                                           */
                                    *************** public class CheckMethodAdapter extends 
                                    *** 826,832 ****
                                      
                                          /**
                                           * Checks that a the given substring is a valid type descriptor.
                                    !      * 
                                           * @param desc the string to be checked.
                                           * @param start index of the first character of the identifier (inclusive).
                                           * @param canBeVoid <tt>true</tt> if <tt>V</tt> can be considered valid.
                                    --- 826,832 ----
                                      
                                          /**
                                           * Checks that a the given substring is a valid type descriptor.
                                    !      *
                                           * @param desc the string to be checked.
                                           * @param start index of the first character of the identifier (inclusive).
                                           * @param canBeVoid <tt>true</tt> if <tt>V</tt> can be considered valid.
                                    *************** public class CheckMethodAdapter extends 
                                    *** 890,896 ****
                                      
                                          /**
                                           * Checks that the given string is a valid method descriptor.
                                    !      * 
                                           * @param desc the string to be checked.
                                           */
                                          static void checkMethodDesc(final String desc) {
                                    --- 890,896 ----
                                      
                                          /**
                                           * Checks that the given string is a valid method descriptor.
                                    !      *
                                           * @param desc the string to be checked.
                                           */
                                          static void checkMethodDesc(final String desc) {
                                    *************** public class CheckMethodAdapter extends 
                                    *** 919,925 ****
                                          /**
                                           * Checks that the given label is not null. This method can also check that
                                           * the label has been visited.
                                    !      * 
                                           * @param label the label to be checked.
                                           * @param checkVisited <tt>true</tt> to check that the label has been
                                           *        visited.
                                    --- 919,925 ----
                                          /**
                                           * Checks that the given label is not null. This method can also check that
                                           * the label has been visited.
                                    !      *
                                           * @param label the label to be checked.
                                           * @param checkVisited <tt>true</tt> to check that the label has been
                                           *        visited.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.util.attrs.Trac
                                    *** 35,41 ****
                                      
                                      /**
                                       * An abstract trace visitor.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public abstract class TraceAbstractVisitor extends AbstractVisitor {
                                    --- 35,41 ----
                                      
                                      /**
                                       * An abstract trace visitor.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public abstract class TraceAbstractVisitor extends AbstractVisitor {
                                    *************** public abstract class TraceAbstractVisit
                                    *** 102,108 ****
                                      
                                          /**
                                           * Prints a disassembled view of the given annotation.
                                    !      * 
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a visitor to visit the annotation values.
                                    --- 102,108 ----
                                      
                                          /**
                                           * Prints a disassembled view of the given annotation.
                                    !      *
                                           * @param desc the class descriptor of the annotation class.
                                           * @param visible <tt>true</tt> if the annotation is visible at runtime.
                                           * @return a visitor to visit the annotation values.
                                    *************** public abstract class TraceAbstractVisit
                                    *** 124,130 ****
                                      
                                          /**
                                           * Prints a disassembled view of the given attribute.
                                    !      * 
                                           * @param attr an attribute.
                                           */
                                          public void visitAttribute(final Attribute attr) {
                                    --- 124,130 ----
                                      
                                          /**
                                           * Prints a disassembled view of the given attribute.
                                    !      *
                                           * @param attr an attribute.
                                           */
                                          public void visitAttribute(final Attribute attr) {
                                    *************** public abstract class TraceAbstractVisit
                                    *** 159,165 ****
                                          /**
                                           * Appends an internal name, a type descriptor or a type signature to
                                           * {@link #buf buf}.
                                    !      * 
                                           * @param type indicates if desc is an internal name, a field descriptor, a
                                           *        method descriptor, a class signature, ...
                                           * @param desc an internal name, type descriptor, or type signature. May be
                                    --- 159,165 ----
                                          /**
                                           * Appends an internal name, a type descriptor or a type signature to
                                           * {@link #buf buf}.
                                    !      *
                                           * @param type indicates if desc is an internal name, a field descriptor, a
                                           *        method descriptor, a class signature, ...
                                           * @param desc an internal name, type descriptor, or type signature. May be
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.Type;
                                    *** 35,41 ****
                                      /**
                                       * An {@link AnnotationVisitor} that prints a disassembled view of the
                                       * annotations it visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class TraceAnnotationVisitor extends TraceAbstractVisitor implements
                                    --- 35,41 ----
                                      /**
                                       * An {@link AnnotationVisitor} that prints a disassembled view of the
                                       * annotations it visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class TraceAnnotationVisitor extends TraceAbstractVisitor implements
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.signature.Signa
                                    *** 48,54 ****
                                       * visitor chain to trace the class that is visited at a given point in this
                                       * chain. This may be uselful for debugging purposes. <p> The trace printed when
                                       * visiting the <tt>Hello</tt> class is the following: <p> <blockquote>
                                    !  * 
                                       * <pre>
                                       * // class version 49.0 (49)
                                       * // access flags 33
                                    --- 48,54 ----
                                       * visitor chain to trace the class that is visited at a given point in this
                                       * chain. This may be uselful for debugging purposes. <p> The trace printed when
                                       * visiting the <tt>Hello</tt> class is the following: <p> <blockquote>
                                    !  *
                                       * <pre>
                                       * // class version 49.0 (49)
                                       * // access flags 33
                                    *************** import org.objectweb.asm.signature.Signa
                                    *** 74,82 ****
                                       *     MAXLOCALS = 1
                                       * }
                                       * </pre>
                                    !  * 
                                       * </blockquote> where <tt>Hello</tt> is defined by: <p> <blockquote>
                                    !  * 
                                       * <pre>
                                       * public class Hello {
                                       *
                                    --- 74,82 ----
                                       *     MAXLOCALS = 1
                                       * }
                                       * </pre>
                                    !  *
                                       * </blockquote> where <tt>Hello</tt> is defined by: <p> <blockquote>
                                    !  *
                                       * <pre>
                                       * public class Hello {
                                       *
                                    *************** import org.objectweb.asm.signature.Signa
                                    *** 85,93 ****
                                       *     }
                                       * }
                                       * </pre>
                                    !  * 
                                       * </blockquote>
                                    !  * 
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    --- 85,93 ----
                                       *     }
                                       * }
                                       * </pre>
                                    !  *
                                       * </blockquote>
                                    !  *
                                       * @author Eric Bruneton
                                       * @author Eugene Kuleshov
                                       */
                                    *************** public class TraceClassVisitor extends T
                                    *** 110,118 ****
                                           * Prints a disassembled view of the given class to the standard output. <p>
                                           * Usage: TraceClassVisitor [-debug] <fully qualified class name or class
                                           * file name >
                                    !      * 
                                           * @param args the command line arguments.
                                    !      * 
                                           * @throws Exception if the class cannot be found, or if an IO exception
                                           *         occurs.
                                           */
                                    --- 110,118 ----
                                           * Prints a disassembled view of the given class to the standard output. <p>
                                           * Usage: TraceClassVisitor [-debug] <fully qualified class name or class
                                           * file name >
                                    !      *
                                           * @param args the command line arguments.
                                    !      *
                                           * @throws Exception if the class cannot be found, or if an IO exception
                                           *         occurs.
                                           */
                                    *************** public class TraceClassVisitor extends T
                                    *** 152,158 ****
                                      
                                          /**
                                           * Constructs a new {@link TraceClassVisitor}.
                                    !      * 
                                           * @param pw the print writer to be used to print the class.
                                           */
                                          public TraceClassVisitor(final PrintWriter pw) {
                                    --- 152,158 ----
                                      
                                          /**
                                           * Constructs a new {@link TraceClassVisitor}.
                                    !      *
                                           * @param pw the print writer to be used to print the class.
                                           */
                                          public TraceClassVisitor(final PrintWriter pw) {
                                    *************** public class TraceClassVisitor extends T
                                    *** 161,167 ****
                                      
                                          /**
                                           * Constructs a new {@link TraceClassVisitor}.
                                    !      * 
                                           * @param cv the {@link ClassVisitor} to which this visitor delegates calls.
                                           *        May be <tt>null</tt>.
                                           * @param pw the print writer to be used to print the class.
                                    --- 161,167 ----
                                      
                                          /**
                                           * Constructs a new {@link TraceClassVisitor}.
                                    !      *
                                           * @param cv the {@link ClassVisitor} to which this visitor delegates calls.
                                           *        May be <tt>null</tt>.
                                           * @param pw the print writer to be used to print the class.
                                    *************** public class TraceClassVisitor extends T
                                    *** 490,496 ****
                                          /**
                                           * Appends a string representation of the given access modifiers to {@link
                                           * #buf buf}.
                                    !      * 
                                           * @param access some access modifiers.
                                           */
                                          private void appendAccess(final int access) {
                                    --- 490,496 ----
                                          /**
                                           * Appends a string representation of the given access modifiers to {@link
                                           * #buf buf}.
                                    !      *
                                           * @param access some access modifiers.
                                           */
                                          private void appendAccess(final int access) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.FieldVisitor;
                                    *** 36,42 ****
                                      /**
                                       * A {@link FieldVisitor} that prints a disassembled view of the fields it
                                       * visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class TraceFieldVisitor extends TraceAbstractVisitor implements
                                    --- 36,42 ----
                                      /**
                                       * A {@link FieldVisitor} that prints a disassembled view of the fields it
                                       * visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class TraceFieldVisitor extends TraceAbstractVisitor implements
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.HashMap;
                                    *** 43,49 ****
                                      /**
                                       * A {@link MethodVisitor} that prints a disassembled view of the methods it
                                       * visits.
                                    !  * 
                                       * @author Eric Bruneton
                                       */
                                      public class TraceMethodVisitor extends TraceAbstractVisitor implements
                                    --- 43,49 ----
                                      /**
                                       * A {@link MethodVisitor} that prints a disassembled view of the methods it
                                       * visits.
                                    !  *
                                       * @author Eric Bruneton
                                       */
                                      public class TraceMethodVisitor extends TraceAbstractVisitor implements
                                    *************** public class TraceMethodVisitor extends 
                                    *** 85,91 ****
                                      
                                          /**
                                           * Constructs a new {@link TraceMethodVisitor}.
                                    !      * 
                                           * @param mv the {@link MethodVisitor} to which this visitor delegates
                                           *        calls. May be <tt>null</tt>.
                                           */
                                    --- 85,91 ----
                                      
                                          /**
                                           * Constructs a new {@link TraceMethodVisitor}.
                                    !      *
                                           * @param mv the {@link MethodVisitor} to which this visitor delegates
                                           *        calls. May be <tt>null</tt>.
                                           */
                                    *************** public class TraceMethodVisitor extends 
                                    *** 472,478 ****
                                          /**
                                           * Appends the name of the given label to {@link #buf buf}. Creates a new
                                           * label name if the given label does not yet have one.
                                    !      * 
                                           * @param l a label.
                                           */
                                          public void appendLabel(final Label l) {
                                    --- 472,478 ----
                                          /**
                                           * Appends the name of the given label to {@link #buf buf}. Creates a new
                                           * label name if the given label does not yet have one.
                                    !      *
                                           * @param l a label.
                                           */
                                          public void appendLabel(final Label l) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.signature.Signa
                                    *** 35,41 ****
                                      /**
                                       * A {@link SignatureVisitor} that prints a disassembled view of the signature
                                       * it visits.
                                    !  * 
                                       * @author Eugene Kuleshov
                                       * @author Eric Bruneton
                                       */
                                    --- 35,41 ----
                                      /**
                                       * A {@link SignatureVisitor} that prints a disassembled view of the signature
                                       * it visits.
                                    !  *
                                       * @author Eugene Kuleshov
                                       * @author Eric Bruneton
                                       */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.attrs.StackMapT
                                    *** 41,47 ****
                                      
                                      /**
                                       * An {@link ASMifiable} {@link StackMapAttribute} sub class.
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class ASMStackMapAttribute extends StackMapAttribute implements
                                    --- 41,47 ----
                                      
                                      /**
                                       * An {@link ASMifiable} {@link StackMapAttribute} sub class.
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class ASMStackMapAttribute extends StackMapAttribute implements
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.objectweb.asm.attrs.StackMapT
                                    *** 41,47 ****
                                      
                                      /**
                                       * An {@link ASMifiable} {@link StackMapTableAttribute} sub class.
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class ASMStackMapTableAttribute extends StackMapTableAttribute implements
                                    --- 41,47 ----
                                      
                                      /**
                                       * An {@link ASMifiable} {@link StackMapTableAttribute} sub class.
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class ASMStackMapTableAttribute extends StackMapTableAttribute implements
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Map;
                                    *** 33,49 ****
                                      
                                      /**
                                       * An attribute that can print the ASM code to create an equivalent attribute.
                                    !  * 
                                       * Implementation should print the ASM code that generates attribute data
                                       * structures for current attribute state.
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public interface ASMifiable {
                                      
                                          /**
                                           * Prints the ASM code to create an attribute equal to this attribute.
                                    !      * 
                                           * @param buf A buffer used for printing Java code.
                                           * @param varName name of the variable in a printed code used to store
                                           *        attribute instance.
                                    --- 33,49 ----
                                      
                                      /**
                                       * An attribute that can print the ASM code to create an equivalent attribute.
                                    !  *
                                       * Implementation should print the ASM code that generates attribute data
                                       * structures for current attribute state.
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public interface ASMifiable {
                                      
                                          /**
                                           * Prints the ASM code to create an attribute equal to this attribute.
                                    !      *
                                           * @param buf A buffer used for printing Java code.
                                           * @param varName name of the variable in a printed code used to store
                                           *        attribute instance.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Map;
                                    *** 33,50 ****
                                      
                                      /**
                                       * An attribute that can print eadable representation of the attribute.
                                    !  * 
                                       * Implementation should construct readable output from an attribute data
                                       * structures for current attribute state. Such representation could be used in
                                       * unit test assertions.
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public interface Traceable {
                                      
                                          /**
                                           * Build a human readable representation of the attribute.
                                    !      * 
                                           * @param buf A buffer used for printing Java code.
                                           * @param labelNames map of label instances to their names.
                                           */
                                    --- 33,50 ----
                                      
                                      /**
                                       * An attribute that can print eadable representation of the attribute.
                                    !  *
                                       * Implementation should construct readable output from an attribute data
                                       * structures for current attribute state. Such representation could be used in
                                       * unit test assertions.
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public interface Traceable {
                                      
                                          /**
                                           * Build a human readable representation of the attribute.
                                    !      *
                                           * @param buf A buffer used for printing Java code.
                                           * @param labelNames map of label instances to their names.
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.xml.sax.helpers.DefaultHandle
                                    *** 54,63 ****
                                       * A {@link org.xml.sax.ContentHandler ContentHandler} that transforms XML
                                       * document into Java class file. This class can be feeded by any kind of SAX
                                       * 2.0 event producers, e.g. XML parser, XSLT or XPath engines, or custom code.
                                    !  * 
                                       * @see org.objectweb.asm.xml.SAXClassAdapter
                                       * @see org.objectweb.asm.xml.Processor
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class ASMContentHandler extends DefaultHandler implements Opcodes {
                                    --- 54,63 ----
                                       * A {@link org.xml.sax.ContentHandler ContentHandler} that transforms XML
                                       * document into Java class file. This class can be feeded by any kind of SAX
                                       * 2.0 event producers, e.g. XML parser, XSLT or XPath engines, or custom code.
                                    !  *
                                       * @see org.objectweb.asm.xml.SAXClassAdapter
                                       * @see org.objectweb.asm.xml.Processor
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class ASMContentHandler extends DefaultHandler implements Opcodes {
                                    *************** public class ASMContentHandler extends D
                                    *** 321,327 ****
                                      
                                          /**
                                           * Constructs a new {@link ASMContentHandler ASMContentHandler} object.
                                    !      * 
                                           * @param os output stream to write generated class.
                                           * @param computeMax <tt>true</tt> if the maximum stack size and the
                                           *        maximum number of local variables must be automatically computed.
                                    --- 321,327 ----
                                      
                                          /**
                                           * Constructs a new {@link ASMContentHandler ASMContentHandler} object.
                                    !      *
                                           * @param os output stream to write generated class.
                                           * @param computeMax <tt>true</tt> if the maximum stack size and the
                                           *        maximum number of local variables must be automatically computed.
                                    *************** public class ASMContentHandler extends D
                                    *** 335,341 ****
                                          /**
                                           * Returns the bytecode of the class that was build with underneath class
                                           * writer.
                                    !      * 
                                           * @return the bytecode of the class that was build with underneath class
                                           *         writer or null if there are no classwriter created.
                                           */
                                    --- 335,341 ----
                                          /**
                                           * Returns the bytecode of the class that was build with underneath class
                                           * writer.
                                    !      *
                                           * @return the bytecode of the class that was build with underneath class
                                           *         writer or null if there are no classwriter created.
                                           */
                                    *************** public class ASMContentHandler extends D
                                    *** 345,351 ****
                                      
                                          /**
                                           * Process notification of the start of an XML element being reached.
                                    !      * 
                                           * @param ns - The Namespace URI, or the empty string if the element has no
                                           *        Namespace URI or if Namespace processing is not being performed.
                                           * @param localName - The local name (without prefix), or the empty string
                                    --- 345,351 ----
                                      
                                          /**
                                           * Process notification of the start of an XML element being reached.
                                    !      *
                                           * @param ns - The Namespace URI, or the empty string if the element has no
                                           *        Namespace URI or if Namespace processing is not being performed.
                                           * @param localName - The local name (without prefix), or the empty string
                                    *************** public class ASMContentHandler extends D
                                    *** 385,398 ****
                                      
                                          /**
                                           * Process notification of the end of an XML element being reached.
                                    !      * 
                                           * @param ns - The Namespace URI, or the empty string if the element has no
                                           *        Namespace URI or if Namespace processing is not being performed.
                                           * @param localName - The local name (without prefix), or the empty string
                                           *        if Namespace processing is not being performed.
                                           * @param qName - The qualified XML 1.0 name (with prefix), or the empty
                                           *        string if qualified names are not available.
                                    !      * 
                                           * @exception SAXException if a parsing error is to be reported
                                           */
                                          public final void endElement(String ns, String localName, String qName)
                                    --- 385,398 ----
                                      
                                          /**
                                           * Process notification of the end of an XML element being reached.
                                    !      *
                                           * @param ns - The Namespace URI, or the empty string if the element has no
                                           *        Namespace URI or if Namespace processing is not being performed.
                                           * @param localName - The local name (without prefix), or the empty string
                                           *        if Namespace processing is not being performed.
                                           * @param qName - The qualified XML 1.0 name (with prefix), or the empty
                                           *        string if qualified names are not available.
                                    !      *
                                           * @exception SAXException if a parsing error is to be reported
                                           */
                                          public final void endElement(String ns, String localName, String qName)
                                    *************** public class ASMContentHandler extends D
                                    *** 422,428 ****
                                          /**
                                           * Process notification of the end of a document and write generated
                                           * bytecode into output stream.
                                    !      * 
                                           * @exception SAXException if parsing or writing error is to be reported.
                                           */
                                          public final void endDocument() throws SAXException {
                                    --- 422,428 ----
                                          /**
                                           * Process notification of the end of a document and write generated
                                           * bytecode into output stream.
                                    !      *
                                           * @exception SAXException if parsing or writing error is to be reported.
                                           */
                                          public final void endDocument() throws SAXException {
                                    *************** public class ASMContentHandler extends D
                                    *** 436,442 ****
                                          /**
                                           * Return the top object on the stack without removing it. If there are no
                                           * objects on the stack, return <code>null</code>.
                                    !      * 
                                           * @return the top object on the stack without removing it.
                                           */
                                          final Object peek() {
                                    --- 436,442 ----
                                          /**
                                           * Return the top object on the stack without removing it. If there are no
                                           * objects on the stack, return <code>null</code>.
                                    !      *
                                           * @return the top object on the stack without removing it.
                                           */
                                          final Object peek() {
                                    *************** public class ASMContentHandler extends D
                                    *** 447,453 ****
                                           * Return the n'th object down the stack, where 0 is the top element and
                                           * [getCount()-1] is the bottom element. If the specified index is out of
                                           * range, return <code>null</code>.
                                    !      * 
                                           * @param n Index of the desired element, where 0 is the top of the stack, 1
                                           *        is the next element down, and so on.
                                           * @return the n'th object down the stack.
                                    --- 447,453 ----
                                           * Return the n'th object down the stack, where 0 is the top element and
                                           * [getCount()-1] is the bottom element. If the specified index is out of
                                           * range, return <code>null</code>.
                                    !      *
                                           * @param n Index of the desired element, where 0 is the top of the stack, 1
                                           *        is the next element down, and so on.
                                           * @return the n'th object down the stack.
                                    *************** public class ASMContentHandler extends D
                                    *** 459,465 ****
                                          /**
                                           * Pop the top object off of the stack, and return it. If there are no
                                           * objects on the stack, return <code>null</code>.
                                    !      * 
                                           * @return the top object off of the stack.
                                           */
                                          final Object pop() {
                                    --- 459,465 ----
                                          /**
                                           * Pop the top object off of the stack, and return it. If there are no
                                           * objects on the stack, return <code>null</code>.
                                    !      *
                                           * @return the top object off of the stack.
                                           */
                                          final Object pop() {
                                    *************** public class ASMContentHandler extends D
                                    *** 468,474 ****
                                      
                                          /**
                                           * Push a new object onto the top of the object stack.
                                    !      * 
                                           * @param object The new object
                                           */
                                          final void push(Object object) {
                                    --- 468,474 ----
                                      
                                          /**
                                           * Push a new object onto the top of the object stack.
                                    !      *
                                           * @param object The new object
                                           */
                                          final void push(Object object) {
                                    *************** public class ASMContentHandler extends D
                                    *** 653,659 ****
                                              protected final MethodVisitor getCodeVisitor() {
                                                  return (MethodVisitor) peek();
                                              }
                                    !         
                                              protected final int getAccess(String s) {
                                                  int access = 0;
                                                  if (s.indexOf("public") != -1)
                                    --- 653,659 ----
                                              protected final MethodVisitor getCodeVisitor() {
                                                  return (MethodVisitor) peek();
                                              }
                                    ! 
                                              protected final int getAccess(String s) {
                                                  int access = 0;
                                                  if (s.indexOf("public") != -1)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.xml.sax.helpers.XMLReaderFact
                                    *** 71,90 ****
                                       * directed by XSL transformation. <p> In order to use a concrete XSLT engine,
                                       * system property <tt>javax.xml.transform.TransformerFactory</tt> must be set
                                       * to one of the following values.
                                    !  * 
                                       * <blockquote> <table border="1" cellspacing="0" cellpadding="3"> <tr> <td>jd.xslt</td>
                                       * <td>jd.xml.xslt.trax.TransformerFactoryImpl</td> </tr>
                                    !  * 
                                       * <tr> <td>Saxon</td> <td>net.sf.saxon.TransformerFactoryImpl</td> </tr>
                                    !  * 
                                       * <tr> <td>Caucho</td> <td>com.caucho.xsl.Xsl</td> </tr>
                                    !  * 
                                       * <tr> <td>Xalan interpeter</td> <td>org.apache.xalan.processor.TransformerFactory</td>
                                       * </tr>
                                    !  * 
                                       * <tr> <td>Xalan xsltc</td> <td>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</td>
                                       * </tr> </table> </blockquote>
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class Processor {
                                    --- 71,90 ----
                                       * directed by XSL transformation. <p> In order to use a concrete XSLT engine,
                                       * system property <tt>javax.xml.transform.TransformerFactory</tt> must be set
                                       * to one of the following values.
                                    !  *
                                       * <blockquote> <table border="1" cellspacing="0" cellpadding="3"> <tr> <td>jd.xslt</td>
                                       * <td>jd.xml.xslt.trax.TransformerFactoryImpl</td> </tr>
                                    !  *
                                       * <tr> <td>Saxon</td> <td>net.sf.saxon.TransformerFactoryImpl</td> </tr>
                                    !  *
                                       * <tr> <td>Caucho</td> <td>com.caucho.xsl.Xsl</td> </tr>
                                    !  *
                                       * <tr> <td>Xalan interpeter</td> <td>org.apache.xalan.processor.TransformerFactory</td>
                                       * </tr>
                                    !  *
                                       * <tr> <td>Xalan xsltc</td> <td>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</td>
                                       * </tr> </table> </blockquote>
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class Processor {
                                    *************** public class Processor {
                                    *** 358,364 ****
                                      
                                          /*
                                           * (non-Javadoc)
                                    !      * 
                                           * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
                                           */
                                          protected void update(Object arg, int n) {
                                    --- 358,364 ----
                                      
                                          /*
                                           * (non-Javadoc)
                                    !      *
                                           * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
                                           */
                                          protected void update(Object arg, int n) {
                                    *************** public class Processor {
                                    *** 479,485 ****
                                      
                                              /**
                                               * Creates an instance of the content handler.
                                    !          * 
                                               * @return content handler
                                               */
                                              ContentHandler createContentHandler();
                                    --- 479,485 ----
                                      
                                              /**
                                               * Creates an instance of the content handler.
                                    !          *
                                               * @return content handler
                                               */
                                              ContentHandler createContentHandler();
                                    *************** public class Processor {
                                    *** 583,589 ****
                                           * A {@link org.xml.sax.ContentHandler ContentHandler} and
                                           * {@link org.xml.sax.ext.LexicalHandler LexicalHandler} that serializes XML
                                           * from SAX 2.0 events into {@link java.io.Writer Writer}.
                                    !      * 
                                           * <i><blockquote> This implementation does not support namespaces, entity
                                           * definitions (uncluding DTD), CDATA and text elements. </blockquote></i>
                                           */
                                    --- 583,589 ----
                                           * A {@link org.xml.sax.ContentHandler ContentHandler} and
                                           * {@link org.xml.sax.ext.LexicalHandler LexicalHandler} that serializes XML
                                           * from SAX 2.0 events into {@link java.io.Writer Writer}.
                                    !      *
                                           * <i><blockquote> This implementation does not support namespaces, entity
                                           * definitions (uncluding DTD), CDATA and text elements. </blockquote></i>
                                           */
                                    *************** public class Processor {
                                    *** 602,608 ****
                                      
                                              /**
                                               * Creates <code>SAXWriter</code>.
                                    !          * 
                                               * @param w writer
                                               * @param optimizeEmptyElements if set to <code>true</code>, short
                                               *        XML syntax will be used for empty elements
                                    --- 602,608 ----
                                      
                                              /**
                                               * Creates <code>SAXWriter</code>.
                                    !          *
                                               * @param w writer
                                               * @param optimizeEmptyElements if set to <code>true</code>, short
                                               *        XML syntax will be used for empty elements
                                    *************** public class Processor {
                                    *** 720,726 ****
                                      
                                              /**
                                               * Encode string with escaping.
                                    !          * 
                                               * @param str string to encode.
                                               * @return encoded string
                                               */
                                    --- 720,726 ----
                                      
                                              /**
                                               * Encode string with escaping.
                                    !          *
                                               * @param str string to encode.
                                               * @return encoded string
                                               */
                                    *************** public class Processor {
                                    *** 804,810 ****
                                              /**
                                               * Constructs a new {@link InputSlicingHandler SubdocumentHandler}
                                               * object.
                                    !          * 
                                               * @param subdocumentRoot name/path to the root element of the
                                               *        subdocument
                                               * @param rootHandler content handler for the entire document
                                    --- 804,810 ----
                                              /**
                                               * Constructs a new {@link InputSlicingHandler SubdocumentHandler}
                                               * object.
                                    !          *
                                               * @param subdocumentRoot name/path to the root element of the
                                               *        subdocument
                                               * @param rootHandler content handler for the entire document
                                    *************** public class Processor {
                                    *** 914,920 ****
                                              /**
                                               * Constructs a new {@link OutputSlicingHandler SubdocumentHandler}
                                               * object.
                                    !          * 
                                               * @param subdocumentHandlerFactory a
                                               *        {@link ContentHandlerFactory ContentHandlerFactory} used to
                                               *        create {@link ContentHandler ContentHandler} instances for
                                    --- 914,920 ----
                                              /**
                                               * Constructs a new {@link OutputSlicingHandler SubdocumentHandler}
                                               * object.
                                    !          *
                                               * @param subdocumentHandlerFactory a
                                               *        {@link ContentHandlerFactory ContentHandlerFactory} used to
                                               *        create {@link ContentHandler ContentHandler} instances for
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.xml.sax.SAXException;
                                    *** 35,41 ****
                                      
                                      /**
                                       * SAXAdapter
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public abstract class SAXAdapter {
                                    --- 35,41 ----
                                      
                                      /**
                                       * SAXAdapter
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public abstract class SAXAdapter {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.xml.sax.helpers.AttributesImp
                                    *** 36,42 ****
                                      
                                      /**
                                       * SAXAnnotationAdapter
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class SAXAnnotationAdapter extends SAXAdapter implements
                                    --- 36,42 ----
                                      
                                      /**
                                       * SAXAnnotationAdapter
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class SAXAnnotationAdapter extends SAXAdapter implements
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.xml.sax.helpers.AttributesImp
                                    *** 43,52 ****
                                       * events from the visited class. It can feed any kind of
                                       * {@link org.xml.sax.ContentHandler ContentHandler}, e.g. XML serializer, XSLT
                                       * or XQuery engines.
                                    !  * 
                                       * @see org.objectweb.asm.xml.Processor
                                       * @see org.objectweb.asm.xml.ASMContentHandler
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public final class SAXClassAdapter extends SAXAdapter implements ClassVisitor {
                                    --- 43,52 ----
                                       * events from the visited class. It can feed any kind of
                                       * {@link org.xml.sax.ContentHandler ContentHandler}, e.g. XML serializer, XSLT
                                       * or XQuery engines.
                                    !  *
                                       * @see org.objectweb.asm.xml.Processor
                                       * @see org.objectweb.asm.xml.ASMContentHandler
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public final class SAXClassAdapter extends SAXAdapter implements ClassVisitor {
                                    *************** public final class SAXClassAdapter exten
                                    *** 54,60 ****
                                      
                                          /**
                                           * Constructs a new {@link SAXClassAdapter SAXClassAdapter} object.
                                    !      * 
                                           * @param h content handler that will be used to send SAX 2.0 events.
                                           * @param singleDocument if <tt>true</tt> adapter will not produce
                                           *        {@link ContentHandler#startDocument() startDocument()} and
                                    --- 54,60 ----
                                      
                                          /**
                                           * Constructs a new {@link SAXClassAdapter SAXClassAdapter} object.
                                    !      *
                                           * @param h content handler that will be used to send SAX 2.0 events.
                                           * @param singleDocument if <tt>true</tt> adapter will not produce
                                           *        {@link ContentHandler#startDocument() startDocument()} and
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.xml.sax.helpers.AttributesImp
                                    *** 45,54 ****
                                      /**
                                       * A {@link MethodVisitor} that generates SAX 2.0 events from the visited
                                       * method.
                                    !  * 
                                       * @see org.objectweb.asm.xml.SAXClassAdapter
                                       * @see org.objectweb.asm.xml.Processor
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public final class SAXCodeAdapter extends SAXAdapter implements MethodVisitor {
                                    --- 45,54 ----
                                      /**
                                       * A {@link MethodVisitor} that generates SAX 2.0 events from the visited
                                       * method.
                                    !  *
                                       * @see org.objectweb.asm.xml.SAXClassAdapter
                                       * @see org.objectweb.asm.xml.Processor
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public final class SAXCodeAdapter extends SAXAdapter implements MethodVisitor {
                                    *************** public final class SAXCodeAdapter extend
                                    *** 56,62 ****
                                      
                                          /**
                                           * Constructs a new {@link SAXCodeAdapter SAXCodeAdapter} object.
                                    !      * 
                                           * @param h content handler that will be used to send SAX 2.0 events.
                                           * @param access
                                           */
                                    --- 56,62 ----
                                      
                                          /**
                                           * Constructs a new {@link SAXCodeAdapter SAXCodeAdapter} object.
                                    !      *
                                           * @param h content handler that will be used to send SAX 2.0 events.
                                           * @param access
                                           */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.xml.sax.helpers.AttributesImp
                                    *** 38,44 ****
                                      
                                      /**
                                       * SAXFieldAdapter
                                    !  * 
                                       * @author Eugene Kuleshov
                                       */
                                      public class SAXFieldAdapter implements FieldVisitor {
                                    --- 38,44 ----
                                      
                                      /**
                                       * SAXFieldAdapter
                                    !  *
                                       * @author Eugene Kuleshov
                                       */
                                      public class SAXFieldAdapter implements FieldVisitor {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java gcc-4.6.0/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java	Tue Oct 21 15:18:44 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,6 ****
                                      // $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaLexer.java"$
                                    !  
                                    !    package gnu.classpath.tools.gjdoc.expr; 
                                      
                                      import java.io.InputStream;
                                      import antlr.TokenStreamException;
                                    --- 1,6 ----
                                      // $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaLexer.java"$
                                    ! 
                                    !    package gnu.classpath.tools.gjdoc.expr;
                                      
                                      import java.io.InputStream;
                                      import antlr.TokenStreamException;
                                    *************** import antlr.SemanticException;
                                    *** 29,1962 ****
                                      public class JavaLexer extends antlr.CharScanner implements JavaTokenTypes, TokenStream
                                       {
                                      public JavaLexer(InputStream in) {
                                    ! 	this(new ByteBuffer(in));
                                      }
                                      public JavaLexer(Reader in) {
                                    ! 	this(new CharBuffer(in));
                                      }
                                      public JavaLexer(InputBuffer ib) {
                                    ! 	this(new LexerSharedInputState(ib));
                                      }
                                      public JavaLexer(LexerSharedInputState state) {
                                    ! 	super(state);
                                    ! 	caseSensitiveLiterals = true;
                                    ! 	setCaseSensitive(true);
                                    ! 	literals = new Hashtable();
                                    ! 	literals.put(new ANTLRHashString("String", this), new Integer(55));
                                    ! 	literals.put(new ANTLRHashString("final", this), new Integer(39));
                                    ! 	literals.put(new ANTLRHashString("false", this), new Integer(84));
                                    ! 	literals.put(new ANTLRHashString("true", this), new Integer(83));
                                    ! 	literals.put(new ANTLRHashString("void", this), new Integer(46));
                                    ! 	literals.put(new ANTLRHashString("float", this), new Integer(52));
                                    ! 	literals.put(new ANTLRHashString("boolean", this), new Integer(47));
                                    ! 	literals.put(new ANTLRHashString("long", this), new Integer(53));
                                    ! 	literals.put(new ANTLRHashString("null", this), new Integer(85));
                                    ! 	literals.put(new ANTLRHashString("short", this), new Integer(50));
                                    ! 	literals.put(new ANTLRHashString("char", this), new Integer(49));
                                    ! 	literals.put(new ANTLRHashString("abstract", this), new Integer(40));
                                    ! 	literals.put(new ANTLRHashString("byte", this), new Integer(48));
                                    ! 	literals.put(new ANTLRHashString("int", this), new Integer(51));
                                    ! 	literals.put(new ANTLRHashString("double", this), new Integer(54));
                                    ! 	literals.put(new ANTLRHashString("strictfp", this), new Integer(41));
                                      }
                                      
                                      public Token nextToken() throws TokenStreamException {
                                    ! 	Token theRetToken=null;
                                      tryAgain:
                                    ! 	for (;;) {
                                    ! 		Token _token = null;
                                    ! 		int _ttype = Token.INVALID_TYPE;
                                    ! 		resetText();
                                    ! 		try {   // for char stream error handling
                                    ! 			try {   // for lexical error handling
                                    ! 				switch ( LA(1)) {
                                    ! 				case '?':
                                    ! 				{
                                    ! 					mQUESTION(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '(':
                                    ! 				{
                                    ! 					mLPAREN(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case ')':
                                    ! 				{
                                    ! 					mRPAREN(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '[':
                                    ! 				{
                                    ! 					mLBRACK(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case ']':
                                    ! 				{
                                    ! 					mRBRACK(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '{':
                                    ! 				{
                                    ! 					mLCURLY(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '}':
                                    ! 				{
                                    ! 					mRCURLY(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case ':':
                                    ! 				{
                                    ! 					mCOLON(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case ',':
                                    ! 				{
                                    ! 					mCOMMA(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '~':
                                    ! 				{
                                    ! 					mBNOT(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case ';':
                                    ! 				{
                                    ! 					mSEMI(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '\t':  case '\n':  case '\u000c':  case '\r':
                                    ! 				case ' ':
                                    ! 				{
                                    ! 					mWS(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '\'':
                                    ! 				{
                                    ! 					mCHAR_LITERAL(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '"':
                                    ! 				{
                                    ! 					mSTRING_LITERAL(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '$':  case 'A':  case 'B':  case 'C':
                                    ! 				case 'D':  case 'E':  case 'F':  case 'G':
                                    ! 				case 'H':  case 'I':  case 'J':  case 'K':
                                    ! 				case 'L':  case 'M':  case 'N':  case 'O':
                                    ! 				case 'P':  case 'Q':  case 'R':  case 'S':
                                    ! 				case 'T':  case 'U':  case 'V':  case 'W':
                                    ! 				case 'X':  case 'Y':  case 'Z':  case '_':
                                    ! 				case 'a':  case 'b':  case 'c':  case 'd':
                                    ! 				case 'e':  case 'f':  case 'g':  case 'h':
                                    ! 				case 'i':  case 'j':  case 'k':  case 'l':
                                    ! 				case 'm':  case 'n':  case 'o':  case 'p':
                                    ! 				case 'q':  case 'r':  case 's':  case 't':
                                    ! 				case 'u':  case 'v':  case 'w':  case 'x':
                                    ! 				case 'y':  case 'z':
                                    ! 				{
                                    ! 					mIDENT(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				case '.':  case '0':  case '1':  case '2':
                                    ! 				case '3':  case '4':  case '5':  case '6':
                                    ! 				case '7':  case '8':  case '9':
                                    ! 				{
                                    ! 					mNUM_INT(true);
                                    ! 					theRetToken=_returnToken;
                                    ! 					break;
                                    ! 				}
                                    ! 				default:
                                    ! 					if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='>') && (LA(4)=='=')) {
                                    ! 						mBSR_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='=')) {
                                    ! 						mSR_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='>') && (true)) {
                                    ! 						mBSR(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='<') && (LA(2)=='<') && (LA(3)=='=')) {
                                    ! 						mSL_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='=') && (LA(2)=='=')) {
                                    ! 						mEQUAL(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='!') && (LA(2)=='=')) {
                                    ! 						mNOT_EQUAL(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='/') && (LA(2)=='=')) {
                                    ! 						mDIV_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='+') && (LA(2)=='=')) {
                                    ! 						mPLUS_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='+') && (LA(2)=='+')) {
                                    ! 						mINC(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='-') && (LA(2)=='=')) {
                                    ! 						mMINUS_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='-') && (LA(2)=='-')) {
                                    ! 						mDEC(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='*') && (LA(2)=='=')) {
                                    ! 						mSTAR_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='%') && (LA(2)=='=')) {
                                    ! 						mMOD_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='>') && (LA(2)=='>') && (true)) {
                                    ! 						mSR(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='>') && (LA(2)=='=')) {
                                    ! 						mGE(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='<') && (LA(2)=='<') && (true)) {
                                    ! 						mSL(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='<') && (LA(2)=='=')) {
                                    ! 						mLE(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='^') && (LA(2)=='=')) {
                                    ! 						mBXOR_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='|') && (LA(2)=='=')) {
                                    ! 						mBOR_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='|') && (LA(2)=='|')) {
                                    ! 						mLOR(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='&') && (LA(2)=='=')) {
                                    ! 						mBAND_ASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='&') && (LA(2)=='&')) {
                                    ! 						mLAND(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='/') && (LA(2)=='/')) {
                                    ! 						mSL_COMMIT(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='/') && (LA(2)=='*')) {
                                    ! 						mML_COMMENT(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='=') && (true)) {
                                    ! 						mASSIGN(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='!') && (true)) {
                                    ! 						mLNOT(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='/') && (true)) {
                                    ! 						mDIV(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='+') && (true)) {
                                    ! 						mPLUS(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='-') && (true)) {
                                    ! 						mMINUS(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='*') && (true)) {
                                    ! 						mSTAR(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='%') && (true)) {
                                    ! 						mMOD(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='>') && (true)) {
                                    ! 						mGT(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='<') && (true)) {
                                    ! 						mLT(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='^') && (true)) {
                                    ! 						mBXOR(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='|') && (true)) {
                                    ! 						mBOR(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 					else if ((LA(1)=='&') && (true)) {
                                    ! 						mBAND(true);
                                    ! 						theRetToken=_returnToken;
                                    ! 					}
                                    ! 				else {
                                    ! 					if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
                                    ! 				else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 				}
                                    ! 				}
                                    ! 				if ( _returnToken==null ) continue tryAgain; // found SKIP token
                                    ! 				_ttype = _returnToken.getType();
                                    ! 				_returnToken.setType(_ttype);
                                    ! 				return _returnToken;
                                    ! 			}
                                    ! 			catch (RecognitionException e) {
                                    ! 				throw new TokenStreamRecognitionException(e);
                                    ! 			}
                                    ! 		}
                                    ! 		catch (CharStreamException cse) {
                                    ! 			if ( cse instanceof CharStreamIOException ) {
                                    ! 				throw new TokenStreamIOException(((CharStreamIOException)cse).io);
                                    ! 			}
                                    ! 			else {
                                    ! 				throw new TokenStreamException(cse.getMessage());
                                    ! 			}
                                    ! 		}
                                    ! 	}
                                      }
                                      
                                    ! 	public final void mQUESTION(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = QUESTION;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('?');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mLPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = LPAREN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('(');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mRPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = RPAREN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(')');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mLBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = LBRACK;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('[');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mRBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = RBRACK;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(']');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mLCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = LCURLY;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('{');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mRCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = RCURLY;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('}');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mCOLON(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = COLON;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(':');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mCOMMA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = COMMA;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(',');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('=');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mEQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = EQUAL;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("==");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mLNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = LNOT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('!');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BNOT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('~');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mNOT_EQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = NOT_EQUAL;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("!=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mDIV(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = DIV;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('/');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mDIV_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = DIV_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("/=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mPLUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = PLUS;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('+');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mPLUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = PLUS_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("+=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mINC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = INC;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("++");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mMINUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = MINUS;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('-');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mMINUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = MINUS_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("-=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mDEC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = DEC;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("--");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSTAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = STAR;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('*');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSTAR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = STAR_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("*=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mMOD(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = MOD;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('%');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mMOD_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = MOD_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("%=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = SR;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(">>");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = SR_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(">>=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BSR;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(">>>");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BSR_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(">>>=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mGE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = GE;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(">=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mGT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = GT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(">");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = SL;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("<<");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSL_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = SL_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("<<=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mLE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = LE;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("<=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mLT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = LT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('<');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBXOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BXOR;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('^');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBXOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BXOR_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("^=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BOR;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('|');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BOR_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("|=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mLOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = LOR;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("||");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BAND;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('&');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mBAND_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = BAND_ASSIGN;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("&=");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mLAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = LAND;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("&&");
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSEMI(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = SEMI;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match(';');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mWS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = WS;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		{
                                    ! 		int _cnt105=0;
                                    ! 		_loop105:
                                    ! 		do {
                                    ! 			switch ( LA(1)) {
                                    ! 			case ' ':
                                    ! 			{
                                    ! 				match(' ');
                                    ! 				break;
                                    ! 			}
                                    ! 			case '\t':
                                    ! 			{
                                    ! 				match('\t');
                                    ! 				break;
                                    ! 			}
                                    ! 			case '\u000c':
                                    ! 			{
                                    ! 				match('\f');
                                    ! 				break;
                                    ! 			}
                                    ! 			case '\n':  case '\r':
                                    ! 			{
                                    ! 				{
                                    ! 				if ((LA(1)=='\r') && (LA(2)=='\n') && (true) && (true)) {
                                    ! 					match("\r\n");
                                    ! 				}
                                    ! 				else if ((LA(1)=='\r') && (true) && (true) && (true)) {
                                    ! 					match('\r');
                                    ! 				}
                                    ! 				else if ((LA(1)=='\n')) {
                                    ! 					match('\n');
                                    ! 				}
                                    ! 				else {
                                    ! 					throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 				}
                                    ! 				
                                    ! 				}
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					newline();
                                    ! 				}
                                    ! 				break;
                                    ! 			}
                                    ! 			default:
                                    ! 			{
                                    ! 				if ( _cnt105>=1 ) { break _loop105; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 			}
                                    ! 			}
                                    ! 			_cnt105++;
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		if ( inputState.guessing==0 ) {
                                    ! 			_ttype = Token.SKIP;
                                    ! 		}
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSL_COMMIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = SL_COMMIT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("//");
                                    ! 		{
                                    ! 		_loop109:
                                    ! 		do {
                                    ! 			if ((_tokenSet_0.member(LA(1)))) {
                                    ! 				{
                                    ! 				match(_tokenSet_0);
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop109;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		{
                                    ! 		switch ( LA(1)) {
                                    ! 		case '\n':
                                    ! 		{
                                    ! 			match('\n');
                                    ! 			break;
                                    ! 		}
                                    ! 		case '\r':
                                    ! 		{
                                    ! 			match('\r');
                                    ! 			{
                                    ! 			if ((LA(1)=='\n')) {
                                    ! 				match('\n');
                                    ! 			}
                                    ! 			else {
                                    ! 			}
                                    ! 			
                                    ! 			}
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 		}
                                    ! 		}
                                    ! 		}
                                    ! 		if ( inputState.guessing==0 ) {
                                    ! 			_ttype = Token.SKIP; newline();
                                    ! 		}
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mML_COMMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = ML_COMMENT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match("/*");
                                    ! 		{
                                    ! 		_loop115:
                                    ! 		do {
                                    ! 			if ((LA(1)=='\r') && (LA(2)=='\n') && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')) && ((LA(4) >= '\u0003' && LA(4) <= '\uffff'))) {
                                    ! 				match('\r');
                                    ! 				match('\n');
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					newline();
                                    ! 				}
                                    ! 			}
                                    ! 			else if (((LA(1)=='*') && ((LA(2) >= '\u0003' && LA(2) <= '\uffff')) && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')))&&( LA(2)!='/' )) {
                                    ! 				match('*');
                                    ! 			}
                                    ! 			else if ((LA(1)=='\r') && ((LA(2) >= '\u0003' && LA(2) <= '\uffff')) && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')) && (true)) {
                                    ! 				match('\r');
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					newline();
                                    ! 				}
                                    ! 			}
                                    ! 			else if ((LA(1)=='\n')) {
                                    ! 				match('\n');
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					newline();
                                    ! 				}
                                    ! 			}
                                    ! 			else if ((_tokenSet_1.member(LA(1)))) {
                                    ! 				{
                                    ! 				match(_tokenSet_1);
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop115;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		match("*/");
                                    ! 		if ( inputState.guessing==0 ) {
                                    ! 			_ttype = Token.SKIP;
                                    ! 		}
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mCHAR_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = CHAR_LITERAL;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('\'');
                                    ! 		{
                                    ! 		if ((LA(1)=='\\')) {
                                    ! 			mESC(false);
                                    ! 		}
                                    ! 		else if ((_tokenSet_2.member(LA(1)))) {
                                    ! 			{
                                    ! 			match(_tokenSet_2);
                                    ! 			}
                                    ! 		}
                                    ! 		else {
                                    ! 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 		}
                                    ! 		
                                    ! 		}
                                    ! 		match('\'');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = ESC;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('\\');
                                    ! 		{
                                    ! 		switch ( LA(1)) {
                                    ! 		case 'n':
                                    ! 		{
                                    ! 			match('n');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'r':
                                    ! 		{
                                    ! 			match('r');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 't':
                                    ! 		{
                                    ! 			match('t');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'b':
                                    ! 		{
                                    ! 			match('b');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'f':
                                    ! 		{
                                    ! 			match('f');
                                    ! 			break;
                                    ! 		}
                                    ! 		case '"':
                                    ! 		{
                                    ! 			match('"');
                                    ! 			break;
                                    ! 		}
                                    ! 		case '\'':
                                    ! 		{
                                    ! 			match('\'');
                                    ! 			break;
                                    ! 		}
                                    ! 		case '\\':
                                    ! 		{
                                    ! 			match('\\');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'u':
                                    ! 		{
                                    ! 			{
                                    ! 			int _cnt126=0;
                                    ! 			_loop126:
                                    ! 			do {
                                    ! 				if ((LA(1)=='u')) {
                                    ! 					match('u');
                                    ! 				}
                                    ! 				else {
                                    ! 					if ( _cnt126>=1 ) { break _loop126; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 				}
                                    ! 				
                                    ! 				_cnt126++;
                                    ! 			} while (true);
                                    ! 			}
                                    ! 			mHEX_DIGIT(false);
                                    ! 			mHEX_DIGIT(false);
                                    ! 			mHEX_DIGIT(false);
                                    ! 			mHEX_DIGIT(false);
                                    ! 			break;
                                    ! 		}
                                    ! 		case '0':  case '1':  case '2':  case '3':
                                    ! 		{
                                    ! 			matchRange('0','3');
                                    ! 			{
                                    ! 			if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
                                    ! 				matchRange('0','7');
                                    ! 				{
                                    ! 				if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
                                    ! 					matchRange('0','7');
                                    ! 				}
                                    ! 				else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
                                    ! 				}
                                    ! 				else {
                                    ! 					throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 				}
                                    ! 				
                                    ! 				}
                                    ! 			}
                                    ! 			else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
                                    ! 			}
                                    ! 			else {
                                    ! 				throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 			}
                                    ! 			
                                    ! 			}
                                    ! 			break;
                                    ! 		}
                                    ! 		case '4':  case '5':  case '6':  case '7':
                                    ! 		{
                                    ! 			matchRange('4','7');
                                    ! 			{
                                    ! 			if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
                                    ! 				matchRange('0','7');
                                    ! 			}
                                    ! 			else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
                                    ! 			}
                                    ! 			else {
                                    ! 				throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 			}
                                    ! 			
                                    ! 			}
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 		}
                                    ! 		}
                                    ! 		}
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mSTRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = STRING_LITERAL;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		match('"');
                                    ! 		{
                                    ! 		_loop122:
                                    ! 		do {
                                    ! 			if ((LA(1)=='\\')) {
                                    ! 				mESC(false);
                                    ! 			}
                                    ! 			else if ((_tokenSet_3.member(LA(1)))) {
                                    ! 				{
                                    ! 				match(_tokenSet_3);
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop122;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		match('"');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	protected final void mHEX_DIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = HEX_DIGIT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		{
                                    ! 		switch ( LA(1)) {
                                    ! 		case '0':  case '1':  case '2':  case '3':
                                    ! 		case '4':  case '5':  case '6':  case '7':
                                    ! 		case '8':  case '9':
                                    ! 		{
                                    ! 			matchRange('0','9');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'A':  case 'B':  case 'C':  case 'D':
                                    ! 		case 'E':  case 'F':
                                    ! 		{
                                    ! 			matchRange('A','F');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'a':  case 'b':  case 'c':  case 'd':
                                    ! 		case 'e':  case 'f':
                                    ! 		{
                                    ! 			matchRange('a','f');
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 		}
                                    ! 		}
                                    ! 		}
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	protected final void mVOCAB(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = VOCAB;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		matchRange('\3','\377');
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mIDENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = IDENT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		{
                                    ! 		switch ( LA(1)) {
                                    ! 		case 'a':  case 'b':  case 'c':  case 'd':
                                    ! 		case 'e':  case 'f':  case 'g':  case 'h':
                                    ! 		case 'i':  case 'j':  case 'k':  case 'l':
                                    ! 		case 'm':  case 'n':  case 'o':  case 'p':
                                    ! 		case 'q':  case 'r':  case 's':  case 't':
                                    ! 		case 'u':  case 'v':  case 'w':  case 'x':
                                    ! 		case 'y':  case 'z':
                                    ! 		{
                                    ! 			matchRange('a','z');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'A':  case 'B':  case 'C':  case 'D':
                                    ! 		case 'E':  case 'F':  case 'G':  case 'H':
                                    ! 		case 'I':  case 'J':  case 'K':  case 'L':
                                    ! 		case 'M':  case 'N':  case 'O':  case 'P':
                                    ! 		case 'Q':  case 'R':  case 'S':  case 'T':
                                    ! 		case 'U':  case 'V':  case 'W':  case 'X':
                                    ! 		case 'Y':  case 'Z':
                                    ! 		{
                                    ! 			matchRange('A','Z');
                                    ! 			break;
                                    ! 		}
                                    ! 		case '_':
                                    ! 		{
                                    ! 			match('_');
                                    ! 			break;
                                    ! 		}
                                    ! 		case '$':
                                    ! 		{
                                    ! 			match('$');
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 		}
                                    ! 		}
                                    ! 		}
                                    ! 		{
                                    ! 		_loop136:
                                    ! 		do {
                                    ! 			switch ( LA(1)) {
                                    ! 			case 'a':  case 'b':  case 'c':  case 'd':
                                    ! 			case 'e':  case 'f':  case 'g':  case 'h':
                                    ! 			case 'i':  case 'j':  case 'k':  case 'l':
                                    ! 			case 'm':  case 'n':  case 'o':  case 'p':
                                    ! 			case 'q':  case 'r':  case 's':  case 't':
                                    ! 			case 'u':  case 'v':  case 'w':  case 'x':
                                    ! 			case 'y':  case 'z':
                                    ! 			{
                                    ! 				matchRange('a','z');
                                    ! 				break;
                                    ! 			}
                                    ! 			case 'A':  case 'B':  case 'C':  case 'D':
                                    ! 			case 'E':  case 'F':  case 'G':  case 'H':
                                    ! 			case 'I':  case 'J':  case 'K':  case 'L':
                                    ! 			case 'M':  case 'N':  case 'O':  case 'P':
                                    ! 			case 'Q':  case 'R':  case 'S':  case 'T':
                                    ! 			case 'U':  case 'V':  case 'W':  case 'X':
                                    ! 			case 'Y':  case 'Z':
                                    ! 			{
                                    ! 				matchRange('A','Z');
                                    ! 				break;
                                    ! 			}
                                    ! 			case '_':
                                    ! 			{
                                    ! 				match('_');
                                    ! 				break;
                                    ! 			}
                                    ! 			case '0':  case '1':  case '2':  case '3':
                                    ! 			case '4':  case '5':  case '6':  case '7':
                                    ! 			case '8':  case '9':
                                    ! 			{
                                    ! 				matchRange('0','9');
                                    ! 				break;
                                    ! 			}
                                    ! 			case '$':
                                    ! 			{
                                    ! 				match('$');
                                    ! 				break;
                                    ! 			}
                                    ! 			default:
                                    ! 			{
                                    ! 				break _loop136;
                                    ! 			}
                                    ! 			}
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		_ttype = testLiteralsTable(_ttype);
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	public final void mNUM_INT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = NUM_INT;
                                    ! 		int _saveIndex;
                                    ! 		Token f1=null;
                                    ! 		Token f2=null;
                                    ! 		Token f3=null;
                                    ! 		Token f4=null;
                                    ! 		boolean isDecimal=false; Token t=null;
                                    ! 		
                                    ! 		switch ( LA(1)) {
                                    ! 		case '.':
                                    ! 		{
                                    ! 			match('.');
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				_ttype = DOT;
                                    ! 			}
                                    ! 			{
                                    ! 			if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    ! 				{
                                    ! 				int _cnt140=0;
                                    ! 				_loop140:
                                    ! 				do {
                                    ! 					if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    ! 						matchRange('0','9');
                                    ! 					}
                                    ! 					else {
                                    ! 						if ( _cnt140>=1 ) { break _loop140; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 					}
                                    ! 					
                                    ! 					_cnt140++;
                                    ! 				} while (true);
                                    ! 				}
                                    ! 				{
                                    ! 				if ((LA(1)=='E'||LA(1)=='e')) {
                                    ! 					mEXPONENT(false);
                                    ! 				}
                                    ! 				else {
                                    ! 				}
                                    ! 				
                                    ! 				}
                                    ! 				{
                                    ! 				if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
                                    ! 					mFLOAT_SUFFIX(true);
                                    ! 					f1=_returnToken;
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						t=f1;
                                    ! 					}
                                    ! 				}
                                    ! 				else {
                                    ! 				}
                                    ! 				
                                    ! 				}
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					
                                    ! 									if (t != null && t.getText().toUpperCase().indexOf('F')>=0) {
                                    ! 						_ttype = NUM_FLOAT;
                                    ! 									}
                                    ! 									else {
                                    ! 						_ttype = NUM_DOUBLE; // assume double
                                    ! 									}
                                    ! 									
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 			}
                                    ! 			
                                    ! 			}
                                    ! 			break;
                                    ! 		}
                                    ! 		case '0':  case '1':  case '2':  case '3':
                                    ! 		case '4':  case '5':  case '6':  case '7':
                                    ! 		case '8':  case '9':
                                    ! 		{
                                    ! 			{
                                    ! 			switch ( LA(1)) {
                                    ! 			case '0':
                                    ! 			{
                                    ! 				match('0');
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					isDecimal = true;
                                    ! 				}
                                    ! 				{
                                    ! 				if ((LA(1)=='X'||LA(1)=='x')) {
                                    ! 					{
                                    ! 					switch ( LA(1)) {
                                    ! 					case 'x':
                                    ! 					{
                                    ! 						match('x');
                                    ! 						break;
                                    ! 					}
                                    ! 					case 'X':
                                    ! 					{
                                    ! 						match('X');
                                    ! 						break;
                                    ! 					}
                                    ! 					default:
                                    ! 					{
                                    ! 						throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 					}
                                    ! 					}
                                    ! 					}
                                    ! 					{
                                    ! 					int _cnt147=0;
                                    ! 					_loop147:
                                    ! 					do {
                                    ! 						if ((_tokenSet_4.member(LA(1))) && (true) && (true) && (true)) {
                                    ! 							mHEX_DIGIT(false);
                                    ! 						}
                                    ! 						else {
                                    ! 							if ( _cnt147>=1 ) { break _loop147; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 						}
                                    ! 						
                                    ! 						_cnt147++;
                                    ! 					} while (true);
                                    ! 					}
                                    ! 				}
                                    ! 				else {
                                    ! 					boolean synPredMatched152 = false;
                                    ! 					if ((((LA(1) >= '0' && LA(1) <= '9')) && (true) && (true) && (true))) {
                                    ! 						int _m152 = mark();
                                    ! 						synPredMatched152 = true;
                                    ! 						inputState.guessing++;
                                    ! 						try {
                                    ! 							{
                                    ! 							{
                                    ! 							int _cnt150=0;
                                    ! 							_loop150:
                                    ! 							do {
                                    ! 								if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    ! 									matchRange('0','9');
                                    ! 								}
                                    ! 								else {
                                    ! 									if ( _cnt150>=1 ) { break _loop150; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 								}
                                    ! 								
                                    ! 								_cnt150++;
                                    ! 							} while (true);
                                    ! 							}
                                    ! 							{
                                    ! 							switch ( LA(1)) {
                                    ! 							case '.':
                                    ! 							{
                                    ! 								match('.');
                                    ! 								break;
                                    ! 							}
                                    ! 							case 'E':  case 'e':
                                    ! 							{
                                    ! 								mEXPONENT(false);
                                    ! 								break;
                                    ! 							}
                                    ! 							case 'D':  case 'F':  case 'd':  case 'f':
                                    ! 							{
                                    ! 								mFLOAT_SUFFIX(false);
                                    ! 								break;
                                    ! 							}
                                    ! 							default:
                                    ! 							{
                                    ! 								throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 							}
                                    ! 							}
                                    ! 							}
                                    ! 							}
                                    ! 						}
                                    ! 						catch (RecognitionException pe) {
                                    ! 							synPredMatched152 = false;
                                    ! 						}
                                    ! 						rewind(_m152);
                                      inputState.guessing--;
                                    ! 					}
                                    ! 					if ( synPredMatched152 ) {
                                    ! 						{
                                    ! 						int _cnt154=0;
                                    ! 						_loop154:
                                    ! 						do {
                                    ! 							if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    ! 								matchRange('0','9');
                                    ! 							}
                                    ! 							else {
                                    ! 								if ( _cnt154>=1 ) { break _loop154; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 							}
                                    ! 							
                                    ! 							_cnt154++;
                                    ! 						} while (true);
                                    ! 						}
                                    ! 					}
                                    ! 					else if (((LA(1) >= '0' && LA(1) <= '7')) && (true) && (true) && (true)) {
                                    ! 						{
                                    ! 						int _cnt156=0;
                                    ! 						_loop156:
                                    ! 						do {
                                    ! 							if (((LA(1) >= '0' && LA(1) <= '7'))) {
                                    ! 								matchRange('0','7');
                                    ! 							}
                                    ! 							else {
                                    ! 								if ( _cnt156>=1 ) { break _loop156; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 							}
                                    ! 							
                                    ! 							_cnt156++;
                                    ! 						} while (true);
                                    ! 						}
                                    ! 					}
                                    ! 					else {
                                    ! 					}
                                    ! 					}
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case '1':  case '2':  case '3':  case '4':
                                    ! 				case '5':  case '6':  case '7':  case '8':
                                    ! 				case '9':
                                    ! 				{
                                    ! 					{
                                    ! 					matchRange('1','9');
                                    ! 					}
                                    ! 					{
                                    ! 					_loop159:
                                    ! 					do {
                                    ! 						if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    ! 							matchRange('0','9');
                                    ! 						}
                                    ! 						else {
                                    ! 							break _loop159;
                                    ! 						}
                                    ! 						
                                    ! 					} while (true);
                                    ! 					}
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						isDecimal=true;
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				default:
                                    ! 				{
                                    ! 					throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 				}
                                    ! 				}
                                    ! 				}
                                    ! 				{
                                    ! 				if ((LA(1)=='L'||LA(1)=='l')) {
                                    ! 					{
                                    ! 					switch ( LA(1)) {
                                    ! 					case 'l':
                                    ! 					{
                                    ! 						match('l');
                                    ! 						break;
                                    ! 					}
                                    ! 					case 'L':
                                    ! 					{
                                    ! 						match('L');
                                    ! 						break;
                                    ! 					}
                                    ! 					default:
                                    ! 					{
                                    ! 						throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 					}
                                    ! 					}
                                    ! 					}
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						_ttype = NUM_LONG;
                                    ! 					}
                                    ! 				}
                                    ! 				else if (((LA(1)=='.'||LA(1)=='D'||LA(1)=='E'||LA(1)=='F'||LA(1)=='d'||LA(1)=='e'||LA(1)=='f'))&&(isDecimal)) {
                                    ! 					{
                                    ! 					switch ( LA(1)) {
                                    ! 					case '.':
                                    ! 					{
                                    ! 						match('.');
                                    ! 						{
                                    ! 						_loop164:
                                    ! 						do {
                                    ! 							if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    ! 								matchRange('0','9');
                                    ! 							}
                                    ! 							else {
                                    ! 								break _loop164;
                                    ! 							}
                                    ! 							
                                    ! 						} while (true);
                                    ! 						}
                                    ! 						{
                                    ! 						if ((LA(1)=='E'||LA(1)=='e')) {
                                    ! 							mEXPONENT(false);
                                    ! 						}
                                    ! 						else {
                                    ! 						}
                                    ! 						
                                    ! 						}
                                    ! 						{
                                    ! 						if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
                                    ! 							mFLOAT_SUFFIX(true);
                                    ! 							f2=_returnToken;
                                    ! 							if ( inputState.guessing==0 ) {
                                    ! 								t=f2;
                                    ! 							}
                                    ! 						}
                                    ! 						else {
                                    ! 						}
                                    ! 						
                                    ! 						}
                                    ! 						break;
                                    ! 					}
                                    ! 					case 'E':  case 'e':
                                    ! 					{
                                    ! 						mEXPONENT(false);
                                    ! 						{
                                    ! 						if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
                                    ! 							mFLOAT_SUFFIX(true);
                                    ! 							f3=_returnToken;
                                    ! 							if ( inputState.guessing==0 ) {
                                    ! 								t=f3;
                                    ! 							}
                                    ! 						}
                                    ! 						else {
                                    ! 						}
                                    ! 						
                                    ! 						}
                                    ! 						break;
                                    ! 					}
                                    ! 					case 'D':  case 'F':  case 'd':  case 'f':
                                    ! 					{
                                    ! 						mFLOAT_SUFFIX(true);
                                    ! 						f4=_returnToken;
                                    ! 						if ( inputState.guessing==0 ) {
                                    ! 							t=f4;
                                    ! 						}
                                    ! 						break;
                                    ! 					}
                                    ! 					default:
                                    ! 					{
                                    ! 						throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 					}
                                    ! 					}
                                    ! 					}
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						
                                    ! 									if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
                                    ! 						_ttype = NUM_FLOAT;
                                    ! 									}
                                    ! 						else {
                                    ! 							           	_ttype = NUM_DOUBLE; // assume double
                                    ! 									}
                                    ! 									
                                    ! 					}
                                    ! 				}
                                    ! 				else {
                                    ! 				}
                                    ! 				
                                    ! 				}
                                    ! 				break;
                                    ! 			}
                                    ! 			default:
                                    ! 			{
                                    ! 				throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 			}
                                    ! 			}
                                    ! 			if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 				_token = makeToken(_ttype);
                                    ! 				_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 			}
                                    ! 			_returnToken = _token;
                                    ! 		}
                                    ! 		
                                    ! 	protected final void mEXPONENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = EXPONENT;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		{
                                    ! 		switch ( LA(1)) {
                                    ! 		case 'e':
                                    ! 		{
                                    ! 			match('e');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'E':
                                    ! 		{
                                    ! 			match('E');
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 		}
                                    ! 		}
                                    ! 		}
                                    ! 		{
                                    ! 		switch ( LA(1)) {
                                    ! 		case '+':
                                    ! 		{
                                    ! 			match('+');
                                    ! 			break;
                                    ! 		}
                                    ! 		case '-':
                                    ! 		{
                                    ! 			match('-');
                                    ! 			break;
                                    ! 		}
                                    ! 		case '0':  case '1':  case '2':  case '3':
                                    ! 		case '4':  case '5':  case '6':  case '7':
                                    ! 		case '8':  case '9':
                                    ! 		{
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 		}
                                    ! 		}
                                    ! 		}
                                    ! 		{
                                    ! 		int _cnt172=0;
                                    ! 		_loop172:
                                    ! 		do {
                                    ! 			if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    ! 				matchRange('0','9');
                                    ! 			}
                                    ! 			else {
                                    ! 				if ( _cnt172>=1 ) { break _loop172; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    ! 			}
                                    ! 			
                                    ! 			_cnt172++;
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	protected final void mFLOAT_SUFFIX(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    ! 		int _ttype; Token _token=null; int _begin=text.length();
                                    ! 		_ttype = FLOAT_SUFFIX;
                                    ! 		int _saveIndex;
                                    ! 		
                                    ! 		switch ( LA(1)) {
                                    ! 		case 'f':
                                    ! 		{
                                    ! 			match('f');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'F':
                                    ! 		{
                                    ! 			match('F');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'd':
                                    ! 		{
                                    ! 			match('d');
                                    ! 			break;
                                    ! 		}
                                    ! 		case 'D':
                                    ! 		{
                                    ! 			match('D');
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    ! 		}
                                    ! 		}
                                    ! 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    ! 			_token = makeToken(_ttype);
                                    ! 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    ! 		}
                                    ! 		_returnToken = _token;
                                    ! 	}
                                    ! 	
                                    ! 	
                                    ! 	private static final long[] mk_tokenSet_0() {
                                    ! 		long[] data = new long[2048];
                                    ! 		data[0]=-9224L;
                                    ! 		for (int i = 1; i<=1023; i++) { data[i]=-1L; }
                                    ! 		return data;
                                    ! 	}
                                    ! 	public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
                                    ! 	private static final long[] mk_tokenSet_1() {
                                    ! 		long[] data = new long[2048];
                                    ! 		data[0]=-4398046520328L;
                                    ! 		for (int i = 1; i<=1023; i++) { data[i]=-1L; }
                                    ! 		return data;
                                    ! 	}
                                    ! 	public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
                                    ! 	private static final long[] mk_tokenSet_2() {
                                    ! 		long[] data = new long[2048];
                                    ! 		data[0]=-549755823112L;
                                    ! 		data[1]=-268435457L;
                                    ! 		for (int i = 2; i<=1023; i++) { data[i]=-1L; }
                                    ! 		return data;
                                    ! 	}
                                    ! 	public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
                                    ! 	private static final long[] mk_tokenSet_3() {
                                    ! 		long[] data = new long[2048];
                                    ! 		data[0]=-17179878408L;
                                    ! 		data[1]=-268435457L;
                                    ! 		for (int i = 2; i<=1023; i++) { data[i]=-1L; }
                                    ! 		return data;
                                    ! 	}
                                    ! 	public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());
                                    ! 	private static final long[] mk_tokenSet_4() {
                                    ! 		long[] data = new long[1025];
                                    ! 		data[0]=287948901175001088L;
                                    ! 		data[1]=541165879422L;
                                    ! 		return data;
                                    ! 	}
                                    ! 	public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4());
                                    ! 	
                                    ! 	}
                                    --- 29,1962 ----
                                      public class JavaLexer extends antlr.CharScanner implements JavaTokenTypes, TokenStream
                                       {
                                      public JavaLexer(InputStream in) {
                                    !         this(new ByteBuffer(in));
                                      }
                                      public JavaLexer(Reader in) {
                                    !         this(new CharBuffer(in));
                                      }
                                      public JavaLexer(InputBuffer ib) {
                                    !         this(new LexerSharedInputState(ib));
                                      }
                                      public JavaLexer(LexerSharedInputState state) {
                                    !         super(state);
                                    !         caseSensitiveLiterals = true;
                                    !         setCaseSensitive(true);
                                    !         literals = new Hashtable();
                                    !         literals.put(new ANTLRHashString("String", this), new Integer(55));
                                    !         literals.put(new ANTLRHashString("final", this), new Integer(39));
                                    !         literals.put(new ANTLRHashString("false", this), new Integer(84));
                                    !         literals.put(new ANTLRHashString("true", this), new Integer(83));
                                    !         literals.put(new ANTLRHashString("void", this), new Integer(46));
                                    !         literals.put(new ANTLRHashString("float", this), new Integer(52));
                                    !         literals.put(new ANTLRHashString("boolean", this), new Integer(47));
                                    !         literals.put(new ANTLRHashString("long", this), new Integer(53));
                                    !         literals.put(new ANTLRHashString("null", this), new Integer(85));
                                    !         literals.put(new ANTLRHashString("short", this), new Integer(50));
                                    !         literals.put(new ANTLRHashString("char", this), new Integer(49));
                                    !         literals.put(new ANTLRHashString("abstract", this), new Integer(40));
                                    !         literals.put(new ANTLRHashString("byte", this), new Integer(48));
                                    !         literals.put(new ANTLRHashString("int", this), new Integer(51));
                                    !         literals.put(new ANTLRHashString("double", this), new Integer(54));
                                    !         literals.put(new ANTLRHashString("strictfp", this), new Integer(41));
                                      }
                                      
                                      public Token nextToken() throws TokenStreamException {
                                    !         Token theRetToken=null;
                                      tryAgain:
                                    !         for (;;) {
                                    !                 Token _token = null;
                                    !                 int _ttype = Token.INVALID_TYPE;
                                    !                 resetText();
                                    !                 try {   // for char stream error handling
                                    !                         try {   // for lexical error handling
                                    !                                 switch ( LA(1)) {
                                    !                                 case '?':
                                    !                                 {
                                    !                                         mQUESTION(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '(':
                                    !                                 {
                                    !                                         mLPAREN(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case ')':
                                    !                                 {
                                    !                                         mRPAREN(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '[':
                                    !                                 {
                                    !                                         mLBRACK(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case ']':
                                    !                                 {
                                    !                                         mRBRACK(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '{':
                                    !                                 {
                                    !                                         mLCURLY(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '}':
                                    !                                 {
                                    !                                         mRCURLY(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case ':':
                                    !                                 {
                                    !                                         mCOLON(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case ',':
                                    !                                 {
                                    !                                         mCOMMA(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '~':
                                    !                                 {
                                    !                                         mBNOT(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case ';':
                                    !                                 {
                                    !                                         mSEMI(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '\t':  case '\n':  case '\u000c':  case '\r':
                                    !                                 case ' ':
                                    !                                 {
                                    !                                         mWS(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '\'':
                                    !                                 {
                                    !                                         mCHAR_LITERAL(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '"':
                                    !                                 {
                                    !                                         mSTRING_LITERAL(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '$':  case 'A':  case 'B':  case 'C':
                                    !                                 case 'D':  case 'E':  case 'F':  case 'G':
                                    !                                 case 'H':  case 'I':  case 'J':  case 'K':
                                    !                                 case 'L':  case 'M':  case 'N':  case 'O':
                                    !                                 case 'P':  case 'Q':  case 'R':  case 'S':
                                    !                                 case 'T':  case 'U':  case 'V':  case 'W':
                                    !                                 case 'X':  case 'Y':  case 'Z':  case '_':
                                    !                                 case 'a':  case 'b':  case 'c':  case 'd':
                                    !                                 case 'e':  case 'f':  case 'g':  case 'h':
                                    !                                 case 'i':  case 'j':  case 'k':  case 'l':
                                    !                                 case 'm':  case 'n':  case 'o':  case 'p':
                                    !                                 case 'q':  case 'r':  case 's':  case 't':
                                    !                                 case 'u':  case 'v':  case 'w':  case 'x':
                                    !                                 case 'y':  case 'z':
                                    !                                 {
                                    !                                         mIDENT(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 case '.':  case '0':  case '1':  case '2':
                                    !                                 case '3':  case '4':  case '5':  case '6':
                                    !                                 case '7':  case '8':  case '9':
                                    !                                 {
                                    !                                         mNUM_INT(true);
                                    !                                         theRetToken=_returnToken;
                                    !                                         break;
                                    !                                 }
                                    !                                 default:
                                    !                                         if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='>') && (LA(4)=='=')) {
                                    !                                                 mBSR_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='=')) {
                                    !                                                 mSR_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='>') && (true)) {
                                    !                                                 mBSR(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='<') && (LA(2)=='<') && (LA(3)=='=')) {
                                    !                                                 mSL_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='=') && (LA(2)=='=')) {
                                    !                                                 mEQUAL(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='!') && (LA(2)=='=')) {
                                    !                                                 mNOT_EQUAL(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='/') && (LA(2)=='=')) {
                                    !                                                 mDIV_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='+') && (LA(2)=='=')) {
                                    !                                                 mPLUS_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='+') && (LA(2)=='+')) {
                                    !                                                 mINC(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='-') && (LA(2)=='=')) {
                                    !                                                 mMINUS_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='-') && (LA(2)=='-')) {
                                    !                                                 mDEC(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='*') && (LA(2)=='=')) {
                                    !                                                 mSTAR_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='%') && (LA(2)=='=')) {
                                    !                                                 mMOD_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='>') && (LA(2)=='>') && (true)) {
                                    !                                                 mSR(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='>') && (LA(2)=='=')) {
                                    !                                                 mGE(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='<') && (LA(2)=='<') && (true)) {
                                    !                                                 mSL(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='<') && (LA(2)=='=')) {
                                    !                                                 mLE(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='^') && (LA(2)=='=')) {
                                    !                                                 mBXOR_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='|') && (LA(2)=='=')) {
                                    !                                                 mBOR_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='|') && (LA(2)=='|')) {
                                    !                                                 mLOR(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='&') && (LA(2)=='=')) {
                                    !                                                 mBAND_ASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='&') && (LA(2)=='&')) {
                                    !                                                 mLAND(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='/') && (LA(2)=='/')) {
                                    !                                                 mSL_COMMIT(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='/') && (LA(2)=='*')) {
                                    !                                                 mML_COMMENT(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='=') && (true)) {
                                    !                                                 mASSIGN(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='!') && (true)) {
                                    !                                                 mLNOT(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='/') && (true)) {
                                    !                                                 mDIV(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='+') && (true)) {
                                    !                                                 mPLUS(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='-') && (true)) {
                                    !                                                 mMINUS(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='*') && (true)) {
                                    !                                                 mSTAR(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='%') && (true)) {
                                    !                                                 mMOD(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='>') && (true)) {
                                    !                                                 mGT(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='<') && (true)) {
                                    !                                                 mLT(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='^') && (true)) {
                                    !                                                 mBXOR(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='|') && (true)) {
                                    !                                                 mBOR(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                         else if ((LA(1)=='&') && (true)) {
                                    !                                                 mBAND(true);
                                    !                                                 theRetToken=_returnToken;
                                    !                                         }
                                    !                                 else {
                                    !                                         if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
                                    !                                 else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                                 }
                                    !                                 }
                                    !                                 if ( _returnToken==null ) continue tryAgain; // found SKIP token
                                    !                                 _ttype = _returnToken.getType();
                                    !                                 _returnToken.setType(_ttype);
                                    !                                 return _returnToken;
                                    !                         }
                                    !                         catch (RecognitionException e) {
                                    !                                 throw new TokenStreamRecognitionException(e);
                                    !                         }
                                    !                 }
                                    !                 catch (CharStreamException cse) {
                                    !                         if ( cse instanceof CharStreamIOException ) {
                                    !                                 throw new TokenStreamIOException(((CharStreamIOException)cse).io);
                                    !                         }
                                    !                         else {
                                    !                                 throw new TokenStreamException(cse.getMessage());
                                    !                         }
                                    !                 }
                                    !         }
                                      }
                                      
                                    !         public final void mQUESTION(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = QUESTION;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('?');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mLPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = LPAREN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('(');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mRPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = RPAREN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(')');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mLBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = LBRACK;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('[');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mRBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = RBRACK;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(']');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mLCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = LCURLY;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('{');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mRCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = RCURLY;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('}');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mCOLON(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = COLON;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(':');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mCOMMA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = COMMA;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(',');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('=');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mEQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = EQUAL;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("==");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mLNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = LNOT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('!');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BNOT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('~');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mNOT_EQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = NOT_EQUAL;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("!=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mDIV(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = DIV;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('/');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mDIV_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = DIV_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("/=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mPLUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = PLUS;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('+');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mPLUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = PLUS_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("+=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mINC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = INC;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("++");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mMINUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = MINUS;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('-');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mMINUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = MINUS_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("-=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mDEC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = DEC;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("--");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSTAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = STAR;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('*');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSTAR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = STAR_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("*=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mMOD(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = MOD;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('%');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mMOD_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = MOD_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("%=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = SR;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(">>");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = SR_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(">>=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BSR;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(">>>");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BSR_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(">>>=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mGE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = GE;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(">=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mGT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = GT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(">");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = SL;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("<<");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSL_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = SL_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("<<=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mLE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = LE;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("<=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mLT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = LT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('<');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBXOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BXOR;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('^');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBXOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BXOR_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("^=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BOR;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('|');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BOR_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("|=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mLOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = LOR;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("||");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BAND;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('&');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mBAND_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = BAND_ASSIGN;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("&=");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mLAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = LAND;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("&&");
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSEMI(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = SEMI;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match(';');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mWS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = WS;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 {
                                    !                 int _cnt105=0;
                                    !                 _loop105:
                                    !                 do {
                                    !                         switch ( LA(1)) {
                                    !                         case ' ':
                                    !                         {
                                    !                                 match(' ');
                                    !                                 break;
                                    !                         }
                                    !                         case '\t':
                                    !                         {
                                    !                                 match('\t');
                                    !                                 break;
                                    !                         }
                                    !                         case '\u000c':
                                    !                         {
                                    !                                 match('\f');
                                    !                                 break;
                                    !                         }
                                    !                         case '\n':  case '\r':
                                    !                         {
                                    !                                 {
                                    !                                 if ((LA(1)=='\r') && (LA(2)=='\n') && (true) && (true)) {
                                    !                                         match("\r\n");
                                    !                                 }
                                    !                                 else if ((LA(1)=='\r') && (true) && (true) && (true)) {
                                    !                                         match('\r');
                                    !                                 }
                                    !                                 else if ((LA(1)=='\n')) {
                                    !                                         match('\n');
                                    !                                 }
                                    !                                 else {
                                    !                                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                                 }
                                    ! 
                                    !                                 }
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         newline();
                                    !                                 }
                                    !                                 break;
                                    !                         }
                                    !                         default:
                                    !                         {
                                    !                                 if ( _cnt105>=1 ) { break _loop105; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                         }
                                    !                         }
                                    !                         _cnt105++;
                                    !                 } while (true);
                                    !                 }
                                    !                 if ( inputState.guessing==0 ) {
                                    !                         _ttype = Token.SKIP;
                                    !                 }
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSL_COMMIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = SL_COMMIT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("//");
                                    !                 {
                                    !                 _loop109:
                                    !                 do {
                                    !                         if ((_tokenSet_0.member(LA(1)))) {
                                    !                                 {
                                    !                                 match(_tokenSet_0);
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop109;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 {
                                    !                 switch ( LA(1)) {
                                    !                 case '\n':
                                    !                 {
                                    !                         match('\n');
                                    !                         break;
                                    !                 }
                                    !                 case '\r':
                                    !                 {
                                    !                         match('\r');
                                    !                         {
                                    !                         if ((LA(1)=='\n')) {
                                    !                                 match('\n');
                                    !                         }
                                    !                         else {
                                    !                         }
                                    ! 
                                    !                         }
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                 }
                                    !                 }
                                    !                 }
                                    !                 if ( inputState.guessing==0 ) {
                                    !                         _ttype = Token.SKIP; newline();
                                    !                 }
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mML_COMMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = ML_COMMENT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match("/*");
                                    !                 {
                                    !                 _loop115:
                                    !                 do {
                                    !                         if ((LA(1)=='\r') && (LA(2)=='\n') && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')) && ((LA(4) >= '\u0003' && LA(4) <= '\uffff'))) {
                                    !                                 match('\r');
                                    !                                 match('\n');
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         newline();
                                    !                                 }
                                    !                         }
                                    !                         else if (((LA(1)=='*') && ((LA(2) >= '\u0003' && LA(2) <= '\uffff')) && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')))&&( LA(2)!='/' )) {
                                    !                                 match('*');
                                    !                         }
                                    !                         else if ((LA(1)=='\r') && ((LA(2) >= '\u0003' && LA(2) <= '\uffff')) && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')) && (true)) {
                                    !                                 match('\r');
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         newline();
                                    !                                 }
                                    !                         }
                                    !                         else if ((LA(1)=='\n')) {
                                    !                                 match('\n');
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         newline();
                                    !                                 }
                                    !                         }
                                    !                         else if ((_tokenSet_1.member(LA(1)))) {
                                    !                                 {
                                    !                                 match(_tokenSet_1);
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop115;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 match("*/");
                                    !                 if ( inputState.guessing==0 ) {
                                    !                         _ttype = Token.SKIP;
                                    !                 }
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mCHAR_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = CHAR_LITERAL;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('\'');
                                    !                 {
                                    !                 if ((LA(1)=='\\')) {
                                    !                         mESC(false);
                                    !                 }
                                    !                 else if ((_tokenSet_2.member(LA(1)))) {
                                    !                         {
                                    !                         match(_tokenSet_2);
                                    !                         }
                                    !                 }
                                    !                 else {
                                    !                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                 }
                                    ! 
                                    !                 }
                                    !                 match('\'');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = ESC;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('\\');
                                    !                 {
                                    !                 switch ( LA(1)) {
                                    !                 case 'n':
                                    !                 {
                                    !                         match('n');
                                    !                         break;
                                    !                 }
                                    !                 case 'r':
                                    !                 {
                                    !                         match('r');
                                    !                         break;
                                    !                 }
                                    !                 case 't':
                                    !                 {
                                    !                         match('t');
                                    !                         break;
                                    !                 }
                                    !                 case 'b':
                                    !                 {
                                    !                         match('b');
                                    !                         break;
                                    !                 }
                                    !                 case 'f':
                                    !                 {
                                    !                         match('f');
                                    !                         break;
                                    !                 }
                                    !                 case '"':
                                    !                 {
                                    !                         match('"');
                                    !                         break;
                                    !                 }
                                    !                 case '\'':
                                    !                 {
                                    !                         match('\'');
                                    !                         break;
                                    !                 }
                                    !                 case '\\':
                                    !                 {
                                    !                         match('\\');
                                    !                         break;
                                    !                 }
                                    !                 case 'u':
                                    !                 {
                                    !                         {
                                    !                         int _cnt126=0;
                                    !                         _loop126:
                                    !                         do {
                                    !                                 if ((LA(1)=='u')) {
                                    !                                         match('u');
                                    !                                 }
                                    !                                 else {
                                    !                                         if ( _cnt126>=1 ) { break _loop126; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                                 }
                                    ! 
                                    !                                 _cnt126++;
                                    !                         } while (true);
                                    !                         }
                                    !                         mHEX_DIGIT(false);
                                    !                         mHEX_DIGIT(false);
                                    !                         mHEX_DIGIT(false);
                                    !                         mHEX_DIGIT(false);
                                    !                         break;
                                    !                 }
                                    !                 case '0':  case '1':  case '2':  case '3':
                                    !                 {
                                    !                         matchRange('0','3');
                                    !                         {
                                    !                         if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
                                    !                                 matchRange('0','7');
                                    !                                 {
                                    !                                 if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
                                    !                                         matchRange('0','7');
                                    !                                 }
                                    !                                 else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
                                    !                                 }
                                    !                                 else {
                                    !                                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                                 }
                                    ! 
                                    !                                 }
                                    !                         }
                                    !                         else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
                                    !                         }
                                    !                         else {
                                    !                                 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                         }
                                    ! 
                                    !                         }
                                    !                         break;
                                    !                 }
                                    !                 case '4':  case '5':  case '6':  case '7':
                                    !                 {
                                    !                         matchRange('4','7');
                                    !                         {
                                    !                         if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
                                    !                                 matchRange('0','7');
                                    !                         }
                                    !                         else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
                                    !                         }
                                    !                         else {
                                    !                                 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                         }
                                    ! 
                                    !                         }
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                 }
                                    !                 }
                                    !                 }
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mSTRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = STRING_LITERAL;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 match('"');
                                    !                 {
                                    !                 _loop122:
                                    !                 do {
                                    !                         if ((LA(1)=='\\')) {
                                    !                                 mESC(false);
                                    !                         }
                                    !                         else if ((_tokenSet_3.member(LA(1)))) {
                                    !                                 {
                                    !                                 match(_tokenSet_3);
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop122;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 match('"');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         protected final void mHEX_DIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = HEX_DIGIT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 {
                                    !                 switch ( LA(1)) {
                                    !                 case '0':  case '1':  case '2':  case '3':
                                    !                 case '4':  case '5':  case '6':  case '7':
                                    !                 case '8':  case '9':
                                    !                 {
                                    !                         matchRange('0','9');
                                    !                         break;
                                    !                 }
                                    !                 case 'A':  case 'B':  case 'C':  case 'D':
                                    !                 case 'E':  case 'F':
                                    !                 {
                                    !                         matchRange('A','F');
                                    !                         break;
                                    !                 }
                                    !                 case 'a':  case 'b':  case 'c':  case 'd':
                                    !                 case 'e':  case 'f':
                                    !                 {
                                    !                         matchRange('a','f');
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                 }
                                    !                 }
                                    !                 }
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         protected final void mVOCAB(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = VOCAB;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 matchRange('\3','\377');
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mIDENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = IDENT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 {
                                    !                 switch ( LA(1)) {
                                    !                 case 'a':  case 'b':  case 'c':  case 'd':
                                    !                 case 'e':  case 'f':  case 'g':  case 'h':
                                    !                 case 'i':  case 'j':  case 'k':  case 'l':
                                    !                 case 'm':  case 'n':  case 'o':  case 'p':
                                    !                 case 'q':  case 'r':  case 's':  case 't':
                                    !                 case 'u':  case 'v':  case 'w':  case 'x':
                                    !                 case 'y':  case 'z':
                                    !                 {
                                    !                         matchRange('a','z');
                                    !                         break;
                                    !                 }
                                    !                 case 'A':  case 'B':  case 'C':  case 'D':
                                    !                 case 'E':  case 'F':  case 'G':  case 'H':
                                    !                 case 'I':  case 'J':  case 'K':  case 'L':
                                    !                 case 'M':  case 'N':  case 'O':  case 'P':
                                    !                 case 'Q':  case 'R':  case 'S':  case 'T':
                                    !                 case 'U':  case 'V':  case 'W':  case 'X':
                                    !                 case 'Y':  case 'Z':
                                    !                 {
                                    !                         matchRange('A','Z');
                                    !                         break;
                                    !                 }
                                    !                 case '_':
                                    !                 {
                                    !                         match('_');
                                    !                         break;
                                    !                 }
                                    !                 case '$':
                                    !                 {
                                    !                         match('$');
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                 }
                                    !                 }
                                    !                 }
                                    !                 {
                                    !                 _loop136:
                                    !                 do {
                                    !                         switch ( LA(1)) {
                                    !                         case 'a':  case 'b':  case 'c':  case 'd':
                                    !                         case 'e':  case 'f':  case 'g':  case 'h':
                                    !                         case 'i':  case 'j':  case 'k':  case 'l':
                                    !                         case 'm':  case 'n':  case 'o':  case 'p':
                                    !                         case 'q':  case 'r':  case 's':  case 't':
                                    !                         case 'u':  case 'v':  case 'w':  case 'x':
                                    !                         case 'y':  case 'z':
                                    !                         {
                                    !                                 matchRange('a','z');
                                    !                                 break;
                                    !                         }
                                    !                         case 'A':  case 'B':  case 'C':  case 'D':
                                    !                         case 'E':  case 'F':  case 'G':  case 'H':
                                    !                         case 'I':  case 'J':  case 'K':  case 'L':
                                    !                         case 'M':  case 'N':  case 'O':  case 'P':
                                    !                         case 'Q':  case 'R':  case 'S':  case 'T':
                                    !                         case 'U':  case 'V':  case 'W':  case 'X':
                                    !                         case 'Y':  case 'Z':
                                    !                         {
                                    !                                 matchRange('A','Z');
                                    !                                 break;
                                    !                         }
                                    !                         case '_':
                                    !                         {
                                    !                                 match('_');
                                    !                                 break;
                                    !                         }
                                    !                         case '0':  case '1':  case '2':  case '3':
                                    !                         case '4':  case '5':  case '6':  case '7':
                                    !                         case '8':  case '9':
                                    !                         {
                                    !                                 matchRange('0','9');
                                    !                                 break;
                                    !                         }
                                    !                         case '$':
                                    !                         {
                                    !                                 match('$');
                                    !                                 break;
                                    !                         }
                                    !                         default:
                                    !                         {
                                    !                                 break _loop136;
                                    !                         }
                                    !                         }
                                    !                 } while (true);
                                    !                 }
                                    !                 _ttype = testLiteralsTable(_ttype);
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         public final void mNUM_INT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = NUM_INT;
                                    !                 int _saveIndex;
                                    !                 Token f1=null;
                                    !                 Token f2=null;
                                    !                 Token f3=null;
                                    !                 Token f4=null;
                                    !                 boolean isDecimal=false; Token t=null;
                                    ! 
                                    !                 switch ( LA(1)) {
                                    !                 case '.':
                                    !                 {
                                    !                         match('.');
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 _ttype = DOT;
                                    !                         }
                                    !                         {
                                    !                         if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    !                                 {
                                    !                                 int _cnt140=0;
                                    !                                 _loop140:
                                    !                                 do {
                                    !                                         if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    !                                                 matchRange('0','9');
                                    !                                         }
                                    !                                         else {
                                    !                                                 if ( _cnt140>=1 ) { break _loop140; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                                         }
                                    ! 
                                    !                                         _cnt140++;
                                    !                                 } while (true);
                                    !                                 }
                                    !                                 {
                                    !                                 if ((LA(1)=='E'||LA(1)=='e')) {
                                    !                                         mEXPONENT(false);
                                    !                                 }
                                    !                                 else {
                                    !                                 }
                                    ! 
                                    !                                 }
                                    !                                 {
                                    !                                 if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
                                    !                                         mFLOAT_SUFFIX(true);
                                    !                                         f1=_returnToken;
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 t=f1;
                                    !                                         }
                                    !                                 }
                                    !                                 else {
                                    !                                 }
                                    ! 
                                    !                                 }
                                    !                                 if ( inputState.guessing==0 ) {
                                    ! 
                                    !                                                                         if (t != null && t.getText().toUpperCase().indexOf('F')>=0) {
                                    !                                                 _ttype = NUM_FLOAT;
                                    !                                                                         }
                                    !                                                                         else {
                                    !                                                 _ttype = NUM_DOUBLE; // assume double
                                    !                                                                         }
                                    ! 
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                         }
                                    ! 
                                    !                         }
                                    !                         break;
                                    !                 }
                                    !                 case '0':  case '1':  case '2':  case '3':
                                    !                 case '4':  case '5':  case '6':  case '7':
                                    !                 case '8':  case '9':
                                    !                 {
                                    !                         {
                                    !                         switch ( LA(1)) {
                                    !                         case '0':
                                    !                         {
                                    !                                 match('0');
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         isDecimal = true;
                                    !                                 }
                                    !                                 {
                                    !                                 if ((LA(1)=='X'||LA(1)=='x')) {
                                    !                                         {
                                    !                                         switch ( LA(1)) {
                                    !                                         case 'x':
                                    !                                         {
                                    !                                                 match('x');
                                    !                                                 break;
                                    !                                         }
                                    !                                         case 'X':
                                    !                                         {
                                    !                                                 match('X');
                                    !                                                 break;
                                    !                                         }
                                    !                                         default:
                                    !                                         {
                                    !                                                 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                                         }
                                    !                                         }
                                    !                                         }
                                    !                                         {
                                    !                                         int _cnt147=0;
                                    !                                         _loop147:
                                    !                                         do {
                                    !                                                 if ((_tokenSet_4.member(LA(1))) && (true) && (true) && (true)) {
                                    !                                                         mHEX_DIGIT(false);
                                    !                                                 }
                                    !                                                 else {
                                    !                                                         if ( _cnt147>=1 ) { break _loop147; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                                                 }
                                    ! 
                                    !                                                 _cnt147++;
                                    !                                         } while (true);
                                    !                                         }
                                    !                                 }
                                    !                                 else {
                                    !                                         boolean synPredMatched152 = false;
                                    !                                         if ((((LA(1) >= '0' && LA(1) <= '9')) && (true) && (true) && (true))) {
                                    !                                                 int _m152 = mark();
                                    !                                                 synPredMatched152 = true;
                                    !                                                 inputState.guessing++;
                                    !                                                 try {
                                    !                                                         {
                                    !                                                         {
                                    !                                                         int _cnt150=0;
                                    !                                                         _loop150:
                                    !                                                         do {
                                    !                                                                 if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    !                                                                         matchRange('0','9');
                                    !                                                                 }
                                    !                                                                 else {
                                    !                                                                         if ( _cnt150>=1 ) { break _loop150; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                                                                 }
                                    ! 
                                    !                                                                 _cnt150++;
                                    !                                                         } while (true);
                                    !                                                         }
                                    !                                                         {
                                    !                                                         switch ( LA(1)) {
                                    !                                                         case '.':
                                    !                                                         {
                                    !                                                                 match('.');
                                    !                                                                 break;
                                    !                                                         }
                                    !                                                         case 'E':  case 'e':
                                    !                                                         {
                                    !                                                                 mEXPONENT(false);
                                    !                                                                 break;
                                    !                                                         }
                                    !                                                         case 'D':  case 'F':  case 'd':  case 'f':
                                    !                                                         {
                                    !                                                                 mFLOAT_SUFFIX(false);
                                    !                                                                 break;
                                    !                                                         }
                                    !                                                         default:
                                    !                                                         {
                                    !                                                                 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                                                         }
                                    !                                                         }
                                    !                                                         }
                                    !                                                         }
                                    !                                                 }
                                    !                                                 catch (RecognitionException pe) {
                                    !                                                         synPredMatched152 = false;
                                    !                                                 }
                                    !                                                 rewind(_m152);
                                      inputState.guessing--;
                                    !                                         }
                                    !                                         if ( synPredMatched152 ) {
                                    !                                                 {
                                    !                                                 int _cnt154=0;
                                    !                                                 _loop154:
                                    !                                                 do {
                                    !                                                         if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    !                                                                 matchRange('0','9');
                                    !                                                         }
                                    !                                                         else {
                                    !                                                                 if ( _cnt154>=1 ) { break _loop154; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                                                         }
                                    ! 
                                    !                                                         _cnt154++;
                                    !                                                 } while (true);
                                    !                                                 }
                                    !                                         }
                                    !                                         else if (((LA(1) >= '0' && LA(1) <= '7')) && (true) && (true) && (true)) {
                                    !                                                 {
                                    !                                                 int _cnt156=0;
                                    !                                                 _loop156:
                                    !                                                 do {
                                    !                                                         if (((LA(1) >= '0' && LA(1) <= '7'))) {
                                    !                                                                 matchRange('0','7');
                                    !                                                         }
                                    !                                                         else {
                                    !                                                                 if ( _cnt156>=1 ) { break _loop156; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                                                         }
                                    ! 
                                    !                                                         _cnt156++;
                                    !                                                 } while (true);
                                    !                                                 }
                                    !                                         }
                                    !                                         else {
                                    !                                         }
                                    !                                         }
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case '1':  case '2':  case '3':  case '4':
                                    !                                 case '5':  case '6':  case '7':  case '8':
                                    !                                 case '9':
                                    !                                 {
                                    !                                         {
                                    !                                         matchRange('1','9');
                                    !                                         }
                                    !                                         {
                                    !                                         _loop159:
                                    !                                         do {
                                    !                                                 if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    !                                                         matchRange('0','9');
                                    !                                                 }
                                    !                                                 else {
                                    !                                                         break _loop159;
                                    !                                                 }
                                    ! 
                                    !                                         } while (true);
                                    !                                         }
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 isDecimal=true;
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 default:
                                    !                                 {
                                    !                                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                                 }
                                    !                                 }
                                    !                                 }
                                    !                                 {
                                    !                                 if ((LA(1)=='L'||LA(1)=='l')) {
                                    !                                         {
                                    !                                         switch ( LA(1)) {
                                    !                                         case 'l':
                                    !                                         {
                                    !                                                 match('l');
                                    !                                                 break;
                                    !                                         }
                                    !                                         case 'L':
                                    !                                         {
                                    !                                                 match('L');
                                    !                                                 break;
                                    !                                         }
                                    !                                         default:
                                    !                                         {
                                    !                                                 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                                         }
                                    !                                         }
                                    !                                         }
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 _ttype = NUM_LONG;
                                    !                                         }
                                    !                                 }
                                    !                                 else if (((LA(1)=='.'||LA(1)=='D'||LA(1)=='E'||LA(1)=='F'||LA(1)=='d'||LA(1)=='e'||LA(1)=='f'))&&(isDecimal)) {
                                    !                                         {
                                    !                                         switch ( LA(1)) {
                                    !                                         case '.':
                                    !                                         {
                                    !                                                 match('.');
                                    !                                                 {
                                    !                                                 _loop164:
                                    !                                                 do {
                                    !                                                         if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    !                                                                 matchRange('0','9');
                                    !                                                         }
                                    !                                                         else {
                                    !                                                                 break _loop164;
                                    !                                                         }
                                    ! 
                                    !                                                 } while (true);
                                    !                                                 }
                                    !                                                 {
                                    !                                                 if ((LA(1)=='E'||LA(1)=='e')) {
                                    !                                                         mEXPONENT(false);
                                    !                                                 }
                                    !                                                 else {
                                    !                                                 }
                                    ! 
                                    !                                                 }
                                    !                                                 {
                                    !                                                 if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
                                    !                                                         mFLOAT_SUFFIX(true);
                                    !                                                         f2=_returnToken;
                                    !                                                         if ( inputState.guessing==0 ) {
                                    !                                                                 t=f2;
                                    !                                                         }
                                    !                                                 }
                                    !                                                 else {
                                    !                                                 }
                                    ! 
                                    !                                                 }
                                    !                                                 break;
                                    !                                         }
                                    !                                         case 'E':  case 'e':
                                    !                                         {
                                    !                                                 mEXPONENT(false);
                                    !                                                 {
                                    !                                                 if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
                                    !                                                         mFLOAT_SUFFIX(true);
                                    !                                                         f3=_returnToken;
                                    !                                                         if ( inputState.guessing==0 ) {
                                    !                                                                 t=f3;
                                    !                                                         }
                                    !                                                 }
                                    !                                                 else {
                                    !                                                 }
                                    ! 
                                    !                                                 }
                                    !                                                 break;
                                    !                                         }
                                    !                                         case 'D':  case 'F':  case 'd':  case 'f':
                                    !                                         {
                                    !                                                 mFLOAT_SUFFIX(true);
                                    !                                                 f4=_returnToken;
                                    !                                                 if ( inputState.guessing==0 ) {
                                    !                                                         t=f4;
                                    !                                                 }
                                    !                                                 break;
                                    !                                         }
                                    !                                         default:
                                    !                                         {
                                    !                                                 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                                         }
                                    !                                         }
                                    !                                         }
                                    !                                         if ( inputState.guessing==0 ) {
                                    ! 
                                    !                                                                         if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
                                    !                                                 _ttype = NUM_FLOAT;
                                    !                                                                         }
                                    !                                                 else {
                                    !                                                                         _ttype = NUM_DOUBLE; // assume double
                                    !                                                                         }
                                    ! 
                                    !                                         }
                                    !                                 }
                                    !                                 else {
                                    !                                 }
                                    ! 
                                    !                                 }
                                    !                                 break;
                                    !                         }
                                    !                         default:
                                    !                         {
                                    !                                 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                         }
                                    !                         }
                                    !                         if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                                 _token = makeToken(_ttype);
                                    !                                 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                         }
                                    !                         _returnToken = _token;
                                    !                 }
                                    ! 
                                    !         protected final void mEXPONENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = EXPONENT;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 {
                                    !                 switch ( LA(1)) {
                                    !                 case 'e':
                                    !                 {
                                    !                         match('e');
                                    !                         break;
                                    !                 }
                                    !                 case 'E':
                                    !                 {
                                    !                         match('E');
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                 }
                                    !                 }
                                    !                 }
                                    !                 {
                                    !                 switch ( LA(1)) {
                                    !                 case '+':
                                    !                 {
                                    !                         match('+');
                                    !                         break;
                                    !                 }
                                    !                 case '-':
                                    !                 {
                                    !                         match('-');
                                    !                         break;
                                    !                 }
                                    !                 case '0':  case '1':  case '2':  case '3':
                                    !                 case '4':  case '5':  case '6':  case '7':
                                    !                 case '8':  case '9':
                                    !                 {
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                 }
                                    !                 }
                                    !                 }
                                    !                 {
                                    !                 int _cnt172=0;
                                    !                 _loop172:
                                    !                 do {
                                    !                         if (((LA(1) >= '0' && LA(1) <= '9'))) {
                                    !                                 matchRange('0','9');
                                    !                         }
                                    !                         else {
                                    !                                 if ( _cnt172>=1 ) { break _loop172; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
                                    !                         }
                                    ! 
                                    !                         _cnt172++;
                                    !                 } while (true);
                                    !                 }
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    !         protected final void mFLOAT_SUFFIX(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
                                    !                 int _ttype; Token _token=null; int _begin=text.length();
                                    !                 _ttype = FLOAT_SUFFIX;
                                    !                 int _saveIndex;
                                    ! 
                                    !                 switch ( LA(1)) {
                                    !                 case 'f':
                                    !                 {
                                    !                         match('f');
                                    !                         break;
                                    !                 }
                                    !                 case 'F':
                                    !                 {
                                    !                         match('F');
                                    !                         break;
                                    !                 }
                                    !                 case 'd':
                                    !                 {
                                    !                         match('d');
                                    !                         break;
                                    !                 }
                                    !                 case 'D':
                                    !                 {
                                    !                         match('D');
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
                                    !                 }
                                    !                 }
                                    !                 if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
                                    !                         _token = makeToken(_ttype);
                                    !                         _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
                                    !                 }
                                    !                 _returnToken = _token;
                                    !         }
                                    ! 
                                    ! 
                                    !         private static final long[] mk_tokenSet_0() {
                                    !                 long[] data = new long[2048];
                                    !                 data[0]=-9224L;
                                    !                 for (int i = 1; i<=1023; i++) { data[i]=-1L; }
                                    !                 return data;
                                    !         }
                                    !         public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
                                    !         private static final long[] mk_tokenSet_1() {
                                    !                 long[] data = new long[2048];
                                    !                 data[0]=-4398046520328L;
                                    !                 for (int i = 1; i<=1023; i++) { data[i]=-1L; }
                                    !                 return data;
                                    !         }
                                    !         public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
                                    !         private static final long[] mk_tokenSet_2() {
                                    !                 long[] data = new long[2048];
                                    !                 data[0]=-549755823112L;
                                    !                 data[1]=-268435457L;
                                    !                 for (int i = 2; i<=1023; i++) { data[i]=-1L; }
                                    !                 return data;
                                    !         }
                                    !         public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
                                    !         private static final long[] mk_tokenSet_3() {
                                    !                 long[] data = new long[2048];
                                    !                 data[0]=-17179878408L;
                                    !                 data[1]=-268435457L;
                                    !                 for (int i = 2; i<=1023; i++) { data[i]=-1L; }
                                    !                 return data;
                                    !         }
                                    !         public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());
                                    !         private static final long[] mk_tokenSet_4() {
                                    !                 long[] data = new long[1025];
                                    !                 data[0]=287948901175001088L;
                                    !                 data[1]=541165879422L;
                                    !                 return data;
                                    !         }
                                    !         public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4());
                                    ! 
                                    !         }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java gcc-4.6.0/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java	Tue Oct 21 15:18:44 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,6 ****
                                      // $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaRecognizer.java"$
                                    !  
                                    !    package gnu.classpath.tools.gjdoc.expr; 
                                      
                                      import antlr.TokenBuffer;
                                      import antlr.TokenStreamException;
                                    --- 1,6 ----
                                      // $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaRecognizer.java"$
                                    ! 
                                    !    package gnu.classpath.tools.gjdoc.expr;
                                      
                                      import antlr.TokenBuffer;
                                      import antlr.TokenStreamException;
                                    *************** public JavaRecognizer(ParserSharedInputS
                                    *** 53,1406 ****
                                        astFactory = new ASTFactory(getTokenTypeToASTClassMap());
                                      }
                                      
                                    ! 	public final Type  builtInTypeSpec(
                                    ! 		boolean addImagNode
                                    ! 	) throws RecognitionException, TokenStreamException {
                                    ! 		Type t = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST builtInTypeSpec_AST = null;
                                    ! 		Token  lb = null;
                                    ! 		AST lb_AST = null;
                                    ! 		
                                    ! 		t=builtInType();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop3:
                                    ! 		do {
                                    ! 			if ((LA(1)==LBRACK)) {
                                    ! 				lb = LT(1);
                                    ! 				lb_AST = astFactory.create(lb);
                                    ! 				astFactory.makeASTRoot(currentAST, lb_AST);
                                    ! 				match(LBRACK);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					lb_AST.setType(ARRAY_DECLARATOR);
                                    ! 				}
                                    ! 				match(RBRACK);
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop3;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		if ( inputState.guessing==0 ) {
                                    ! 			builtInTypeSpec_AST = (AST)currentAST.root;
                                    ! 			
                                    ! 						if ( addImagNode ) {
                                    ! 							builtInTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(builtInTypeSpec_AST));
                                    ! 						}
                                    ! 					
                                    ! 			currentAST.root = builtInTypeSpec_AST;
                                    ! 			currentAST.child = builtInTypeSpec_AST!=null &&builtInTypeSpec_AST.getFirstChild()!=null ?
                                    ! 				builtInTypeSpec_AST.getFirstChild() : builtInTypeSpec_AST;
                                    ! 			currentAST.advanceChildToEnd();
                                    ! 		}
                                    ! 		builtInTypeSpec_AST = (AST)currentAST.root;
                                    ! 		returnAST = builtInTypeSpec_AST;
                                    ! 		return t;
                                    ! 	}
                                    ! 	
                                    ! 	public final Type  builtInType() throws RecognitionException, TokenStreamException {
                                    ! 		Type t = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST builtInType_AST = null;
                                    ! 		
                                    ! 		switch ( LA(1)) {
                                    ! 		case LITERAL_void:
                                    ! 		{
                                    ! 			AST tmp2_AST = null;
                                    ! 			tmp2_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp2_AST);
                                    ! 			match(LITERAL_void);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.VOID;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_boolean:
                                    ! 		{
                                    ! 			AST tmp3_AST = null;
                                    ! 			tmp3_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp3_AST);
                                    ! 			match(LITERAL_boolean);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.BOOLEAN;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_byte:
                                    ! 		{
                                    ! 			AST tmp4_AST = null;
                                    ! 			tmp4_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp4_AST);
                                    ! 			match(LITERAL_byte);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.BYTE;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_char:
                                    ! 		{
                                    ! 			AST tmp5_AST = null;
                                    ! 			tmp5_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp5_AST);
                                    ! 			match(LITERAL_char);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.CHAR;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_short:
                                    ! 		{
                                    ! 			AST tmp6_AST = null;
                                    ! 			tmp6_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp6_AST);
                                    ! 			match(LITERAL_short);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.SHORT;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_int:
                                    ! 		{
                                    ! 			AST tmp7_AST = null;
                                    ! 			tmp7_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp7_AST);
                                    ! 			match(LITERAL_int);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.INTEGER;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_float:
                                    ! 		{
                                    ! 			AST tmp8_AST = null;
                                    ! 			tmp8_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp8_AST);
                                    ! 			match(LITERAL_float);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.FLOAT;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_long:
                                    ! 		{
                                    ! 			AST tmp9_AST = null;
                                    ! 			tmp9_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp9_AST);
                                    ! 			match(LITERAL_long);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.LONG;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_double:
                                    ! 		{
                                    ! 			AST tmp10_AST = null;
                                    ! 			tmp10_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp10_AST);
                                    ! 			match(LITERAL_double);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.DOUBLE;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_String:
                                    ! 		{
                                    ! 			AST tmp11_AST = null;
                                    ! 			tmp11_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp11_AST);
                                    ! 			match(LITERAL_String);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				t=Type.STRING;
                                    ! 			}
                                    ! 			builtInType_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltException(LT(1), getFilename());
                                    ! 		}
                                    ! 		}
                                    ! 		returnAST = builtInType_AST;
                                    ! 		return t;
                                    ! 	}
                                    ! 	
                                    ! 	public final Type  type() throws RecognitionException, TokenStreamException {
                                    ! 		Type t;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST type_AST = null;
                                    ! 		
                                    ! 		t=builtInType();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		type_AST = (AST)currentAST.root;
                                    ! 		returnAST = type_AST;
                                    ! 		return t;
                                    ! 	}
                                    ! 	
                                    ! 	public final String  identifier() throws RecognitionException, TokenStreamException {
                                    ! 		String s = null;;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST identifier_AST = null;
                                    ! 		Token  i = null;
                                    ! 		AST i_AST = null;
                                    ! 		Token  i2 = null;
                                    ! 		AST i2_AST = null;
                                    ! 		
                                    ! 		i = LT(1);
                                    ! 		i_AST = astFactory.create(i);
                                    ! 		astFactory.addASTChild(currentAST, i_AST);
                                    ! 		match(IDENT);
                                    ! 		if ( inputState.guessing==0 ) {
                                    ! 			s=i.getText();
                                    ! 		}
                                    ! 		{
                                    ! 		_loop8:
                                    ! 		do {
                                    ! 			if ((LA(1)==DOT)) {
                                    ! 				AST tmp12_AST = null;
                                    ! 				tmp12_AST = astFactory.create(LT(1));
                                    ! 				astFactory.makeASTRoot(currentAST, tmp12_AST);
                                    ! 				match(DOT);
                                    ! 				i2 = LT(1);
                                    ! 				i2_AST = astFactory.create(i2);
                                    ! 				astFactory.addASTChild(currentAST, i2_AST);
                                    ! 				match(IDENT);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					s+="."+i2.getText();
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop8;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		identifier_AST = (AST)currentAST.root;
                                    ! 		returnAST = identifier_AST;
                                    ! 		return s;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  expression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST expression_AST = null;
                                    ! 		
                                    ! 		e=conditionalExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		match(Token.EOF_TYPE);
                                    ! 		expression_AST = (AST)currentAST.root;
                                    ! 		returnAST = expression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  conditionalExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST conditionalExpression_AST = null;
                                    ! 		Expression a,b,c;
                                    ! 		
                                    ! 		e=logicalOrExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		switch ( LA(1)) {
                                    ! 		case QUESTION:
                                    ! 		{
                                    ! 			AST tmp14_AST = null;
                                    ! 			tmp14_AST = astFactory.create(LT(1));
                                    ! 			astFactory.makeASTRoot(currentAST, tmp14_AST);
                                    ! 			match(QUESTION);
                                    ! 			b=conditionalExpression();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			match(COLON);
                                    ! 			c=conditionalExpression();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConditionalExpression(e,b,c);
                                    ! 			}
                                    ! 			break;
                                    ! 		}
                                    ! 		case EOF:
                                    ! 		case COLON:
                                    ! 		case RPAREN:
                                    ! 		{
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltException(LT(1), getFilename());
                                    ! 		}
                                    ! 		}
                                    ! 		}
                                    ! 		conditionalExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = conditionalExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  logicalOrExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST logicalOrExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=logicalAndExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop14:
                                    ! 		do {
                                    ! 			if ((LA(1)==LOR)) {
                                    ! 				AST tmp16_AST = null;
                                    ! 				tmp16_AST = astFactory.create(LT(1));
                                    ! 				astFactory.makeASTRoot(currentAST, tmp16_AST);
                                    ! 				match(LOR);
                                    ! 				b=logicalAndExpression();
                                    ! 				astFactory.addASTChild(currentAST, returnAST);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					e=new LogicalOrExpression(e,b);
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop14;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		logicalOrExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = logicalOrExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  logicalAndExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST logicalAndExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=inclusiveOrExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop17:
                                    ! 		do {
                                    ! 			if ((LA(1)==LAND)) {
                                    ! 				AST tmp17_AST = null;
                                    ! 				tmp17_AST = astFactory.create(LT(1));
                                    ! 				astFactory.makeASTRoot(currentAST, tmp17_AST);
                                    ! 				match(LAND);
                                    ! 				b=inclusiveOrExpression();
                                    ! 				astFactory.addASTChild(currentAST, returnAST);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					e=new LogicalAndExpression(e,b);
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop17;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		logicalAndExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = logicalAndExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  inclusiveOrExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST inclusiveOrExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=exclusiveOrExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop20:
                                    ! 		do {
                                    ! 			if ((LA(1)==BOR)) {
                                    ! 				AST tmp18_AST = null;
                                    ! 				tmp18_AST = astFactory.create(LT(1));
                                    ! 				astFactory.makeASTRoot(currentAST, tmp18_AST);
                                    ! 				match(BOR);
                                    ! 				b=exclusiveOrExpression();
                                    ! 				astFactory.addASTChild(currentAST, returnAST);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					e=new InclusiveOrExpression(e,b);
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop20;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		inclusiveOrExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = inclusiveOrExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  exclusiveOrExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST exclusiveOrExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=andExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop23:
                                    ! 		do {
                                    ! 			if ((LA(1)==BXOR)) {
                                    ! 				AST tmp19_AST = null;
                                    ! 				tmp19_AST = astFactory.create(LT(1));
                                    ! 				astFactory.makeASTRoot(currentAST, tmp19_AST);
                                    ! 				match(BXOR);
                                    ! 				b=andExpression();
                                    ! 				astFactory.addASTChild(currentAST, returnAST);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					e=new ExclusiveOrExpression(e,b);
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop23;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		exclusiveOrExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = exclusiveOrExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  andExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST andExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=equalityExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop26:
                                    ! 		do {
                                    ! 			if ((LA(1)==BAND)) {
                                    ! 				AST tmp20_AST = null;
                                    ! 				tmp20_AST = astFactory.create(LT(1));
                                    ! 				astFactory.makeASTRoot(currentAST, tmp20_AST);
                                    ! 				match(BAND);
                                    ! 				b=equalityExpression();
                                    ! 				astFactory.addASTChild(currentAST, returnAST);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					e=new AndExpression(e,b);
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop26;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		andExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = andExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  equalityExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST equalityExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=relationalExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop30:
                                    ! 		do {
                                    ! 			if ((LA(1)==NOT_EQUAL||LA(1)==EQUAL)) {
                                    ! 				{
                                    ! 				switch ( LA(1)) {
                                    ! 				case NOT_EQUAL:
                                    ! 				{
                                    ! 					AST tmp21_AST = null;
                                    ! 					tmp21_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp21_AST);
                                    ! 					match(NOT_EQUAL);
                                    ! 					a=relationalExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new NotEqualExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case EQUAL:
                                    ! 				{
                                    ! 					AST tmp22_AST = null;
                                    ! 					tmp22_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp22_AST);
                                    ! 					match(EQUAL);
                                    ! 					a=relationalExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new EqualExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				default:
                                    ! 				{
                                    ! 					throw new NoViableAltException(LT(1), getFilename());
                                    ! 				}
                                    ! 				}
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop30;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		equalityExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = equalityExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  relationalExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST relationalExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=shiftExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		{
                                    ! 		_loop35:
                                    ! 		do {
                                    ! 			if (((LA(1) >= LT && LA(1) <= GE))) {
                                    ! 				{
                                    ! 				switch ( LA(1)) {
                                    ! 				case LT:
                                    ! 				{
                                    ! 					AST tmp23_AST = null;
                                    ! 					tmp23_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp23_AST);
                                    ! 					match(LT);
                                    ! 					a=shiftExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new LessThanExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case GT:
                                    ! 				{
                                    ! 					AST tmp24_AST = null;
                                    ! 					tmp24_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp24_AST);
                                    ! 					match(GT);
                                    ! 					a=shiftExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new GreaterThanExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case LE:
                                    ! 				{
                                    ! 					AST tmp25_AST = null;
                                    ! 					tmp25_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp25_AST);
                                    ! 					match(LE);
                                    ! 					a=shiftExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new LessThanOrEqualExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case GE:
                                    ! 				{
                                    ! 					AST tmp26_AST = null;
                                    ! 					tmp26_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp26_AST);
                                    ! 					match(GE);
                                    ! 					a=shiftExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new GreaterThanOrEqualExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				default:
                                    ! 				{
                                    ! 					throw new NoViableAltException(LT(1), getFilename());
                                    ! 				}
                                    ! 				}
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop35;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		}
                                    ! 		relationalExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = relationalExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  shiftExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST shiftExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=additiveExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop39:
                                    ! 		do {
                                    ! 			if (((LA(1) >= SL && LA(1) <= BSR))) {
                                    ! 				{
                                    ! 				switch ( LA(1)) {
                                    ! 				case SL:
                                    ! 				{
                                    ! 					AST tmp27_AST = null;
                                    ! 					tmp27_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp27_AST);
                                    ! 					match(SL);
                                    ! 					a=additiveExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new ShiftLeftExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case SR:
                                    ! 				{
                                    ! 					AST tmp28_AST = null;
                                    ! 					tmp28_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp28_AST);
                                    ! 					match(SR);
                                    ! 					a=additiveExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new ShiftRightExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case BSR:
                                    ! 				{
                                    ! 					AST tmp29_AST = null;
                                    ! 					tmp29_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp29_AST);
                                    ! 					match(BSR);
                                    ! 					a=additiveExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new BitShiftRightExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				default:
                                    ! 				{
                                    ! 					throw new NoViableAltException(LT(1), getFilename());
                                    ! 				}
                                    ! 				}
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop39;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		shiftExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = shiftExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  additiveExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST additiveExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=multiplicativeExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop43:
                                    ! 		do {
                                    ! 			if ((LA(1)==PLUS||LA(1)==MINUS)) {
                                    ! 				{
                                    ! 				switch ( LA(1)) {
                                    ! 				case PLUS:
                                    ! 				{
                                    ! 					AST tmp30_AST = null;
                                    ! 					tmp30_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp30_AST);
                                    ! 					match(PLUS);
                                    ! 					a=multiplicativeExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new AdditionExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case MINUS:
                                    ! 				{
                                    ! 					AST tmp31_AST = null;
                                    ! 					tmp31_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp31_AST);
                                    ! 					match(MINUS);
                                    ! 					a=multiplicativeExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new SubtractionExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				default:
                                    ! 				{
                                    ! 					throw new NoViableAltException(LT(1), getFilename());
                                    ! 				}
                                    ! 				}
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop43;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		additiveExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = additiveExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  multiplicativeExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST multiplicativeExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		e=unaryExpression();
                                    ! 		astFactory.addASTChild(currentAST, returnAST);
                                    ! 		{
                                    ! 		_loop47:
                                    ! 		do {
                                    ! 			if (((LA(1) >= STAR && LA(1) <= MOD))) {
                                    ! 				{
                                    ! 				switch ( LA(1)) {
                                    ! 				case STAR:
                                    ! 				{
                                    ! 					AST tmp32_AST = null;
                                    ! 					tmp32_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp32_AST);
                                    ! 					match(STAR);
                                    ! 					a=unaryExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new MultiplicationExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case DIV:
                                    ! 				{
                                    ! 					AST tmp33_AST = null;
                                    ! 					tmp33_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp33_AST);
                                    ! 					match(DIV);
                                    ! 					a=unaryExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new DivisionExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				case MOD:
                                    ! 				{
                                    ! 					AST tmp34_AST = null;
                                    ! 					tmp34_AST = astFactory.create(LT(1));
                                    ! 					astFactory.makeASTRoot(currentAST, tmp34_AST);
                                    ! 					match(MOD);
                                    ! 					a=unaryExpression();
                                    ! 					astFactory.addASTChild(currentAST, returnAST);
                                    ! 					if ( inputState.guessing==0 ) {
                                    ! 						e=new ModuloExpression(e,a);
                                    ! 					}
                                    ! 					break;
                                    ! 				}
                                    ! 				default:
                                    ! 				{
                                    ! 					throw new NoViableAltException(LT(1), getFilename());
                                    ! 				}
                                    ! 				}
                                    ! 				}
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop47;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		multiplicativeExpression_AST = (AST)currentAST.root;
                                    ! 		returnAST = multiplicativeExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  unaryExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST unaryExpression_AST = null;
                                    ! 		Expression a,b;
                                    ! 		
                                    ! 		switch ( LA(1)) {
                                    ! 		case MINUS:
                                    ! 		{
                                    ! 			AST tmp35_AST = null;
                                    ! 			tmp35_AST = astFactory.create(LT(1));
                                    ! 			astFactory.makeASTRoot(currentAST, tmp35_AST);
                                    ! 			match(MINUS);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				tmp35_AST.setType(UNARY_MINUS);
                                    ! 			}
                                    ! 			a=unaryExpression();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new NegateExpression(a);
                                    ! 			}
                                    ! 			unaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case PLUS:
                                    ! 		{
                                    ! 			AST tmp36_AST = null;
                                    ! 			tmp36_AST = astFactory.create(LT(1));
                                    ! 			astFactory.makeASTRoot(currentAST, tmp36_AST);
                                    ! 			match(PLUS);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				tmp36_AST.setType(UNARY_PLUS);
                                    ! 			}
                                    ! 			e=unaryExpression();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			unaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case IDENT:
                                    ! 		case BNOT:
                                    ! 		case LNOT:
                                    ! 		case LPAREN:
                                    ! 		case LITERAL_true:
                                    ! 		case LITERAL_false:
                                    ! 		case LITERAL_null:
                                    ! 		case NUM_INT:
                                    ! 		case CHAR_LITERAL:
                                    ! 		case STRING_LITERAL:
                                    ! 		case NUM_FLOAT:
                                    ! 		case NUM_LONG:
                                    ! 		case NUM_DOUBLE:
                                    ! 		{
                                    ! 			e=unaryExpressionNotPlusMinus();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			unaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltException(LT(1), getFilename());
                                    ! 		}
                                    ! 		}
                                    ! 		returnAST = unaryExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  unaryExpressionNotPlusMinus() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST unaryExpressionNotPlusMinus_AST = null;
                                    ! 		Token  lpb = null;
                                    ! 		AST lpb_AST = null;
                                    ! 		Expression a; Type t;
                                    ! 		
                                    ! 		switch ( LA(1)) {
                                    ! 		case BNOT:
                                    ! 		{
                                    ! 			AST tmp37_AST = null;
                                    ! 			tmp37_AST = astFactory.create(LT(1));
                                    ! 			astFactory.makeASTRoot(currentAST, tmp37_AST);
                                    ! 			match(BNOT);
                                    ! 			a=unaryExpression();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new NotExpression(a);
                                    ! 			}
                                    ! 			unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LNOT:
                                    ! 		{
                                    ! 			AST tmp38_AST = null;
                                    ! 			tmp38_AST = astFactory.create(LT(1));
                                    ! 			astFactory.makeASTRoot(currentAST, tmp38_AST);
                                    ! 			match(LNOT);
                                    ! 			a=unaryExpression();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new LogicalNotExpression(a);
                                    ! 			}
                                    ! 			unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 			boolean synPredMatched51 = false;
                                    ! 			if (((LA(1)==LPAREN) && ((LA(2) >= LITERAL_void && LA(2) <= LITERAL_String)))) {
                                    ! 				int _m51 = mark();
                                    ! 				synPredMatched51 = true;
                                    ! 				inputState.guessing++;
                                    ! 				try {
                                    ! 					{
                                    ! 					match(LPAREN);
                                    ! 					builtInTypeSpec(true);
                                    ! 					match(RPAREN);
                                    ! 					}
                                    ! 				}
                                    ! 				catch (RecognitionException pe) {
                                    ! 					synPredMatched51 = false;
                                    ! 				}
                                    ! 				rewind(_m51);
                                      inputState.guessing--;
                                    ! 			}
                                    ! 			if ( synPredMatched51 ) {
                                    ! 				lpb = LT(1);
                                    ! 				lpb_AST = astFactory.create(lpb);
                                    ! 				astFactory.makeASTRoot(currentAST, lpb_AST);
                                    ! 				match(LPAREN);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					lpb_AST.setType(TYPECAST);
                                    ! 				}
                                    ! 				t=builtInTypeSpec(true);
                                    ! 				astFactory.addASTChild(currentAST, returnAST);
                                    ! 				match(RPAREN);
                                    ! 				a=unaryExpression();
                                    ! 				astFactory.addASTChild(currentAST, returnAST);
                                    ! 				if ( inputState.guessing==0 ) {
                                    ! 					e=new TypeCastExpression(t,a);
                                    ! 				}
                                    ! 				unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
                                    ! 			}
                                    ! 			else if ((_tokenSet_0.member(LA(1))) && (_tokenSet_1.member(LA(2)))) {
                                    ! 				e=primaryExpression();
                                    ! 				astFactory.addASTChild(currentAST, returnAST);
                                    ! 				unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
                                    ! 			}
                                    ! 		else {
                                    ! 			throw new NoViableAltException(LT(1), getFilename());
                                    ! 		}
                                    ! 		}
                                    ! 		returnAST = unaryExpressionNotPlusMinus_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  primaryExpression() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null; String i = null;;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST primaryExpression_AST = null;
                                    ! 		
                                    ! 		switch ( LA(1)) {
                                    ! 		case NUM_INT:
                                    ! 		case CHAR_LITERAL:
                                    ! 		case STRING_LITERAL:
                                    ! 		case NUM_FLOAT:
                                    ! 		case NUM_LONG:
                                    ! 		case NUM_DOUBLE:
                                    ! 		{
                                    ! 			e=constant();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			primaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case IDENT:
                                    ! 		{
                                    ! 			i=identifier();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new IdentifierExpression(i);
                                    ! 			}
                                    ! 			primaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_true:
                                    ! 		{
                                    ! 			AST tmp40_AST = null;
                                    ! 			tmp40_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp40_AST);
                                    ! 			match(LITERAL_true);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantBoolean(true);
                                    ! 			}
                                    ! 			primaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_false:
                                    ! 		{
                                    ! 			AST tmp41_AST = null;
                                    ! 			tmp41_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp41_AST);
                                    ! 			match(LITERAL_false);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantBoolean(false);
                                    ! 			}
                                    ! 			primaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LITERAL_null:
                                    ! 		{
                                    ! 			AST tmp42_AST = null;
                                    ! 			tmp42_AST = astFactory.create(LT(1));
                                    ! 			astFactory.addASTChild(currentAST, tmp42_AST);
                                    ! 			match(LITERAL_null);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantNull();
                                    ! 			}
                                    ! 			primaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case LPAREN:
                                    ! 		{
                                    ! 			match(LPAREN);
                                    ! 			e=conditionalExpression();
                                    ! 			astFactory.addASTChild(currentAST, returnAST);
                                    ! 			match(RPAREN);
                                    ! 			primaryExpression_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltException(LT(1), getFilename());
                                    ! 		}
                                    ! 		}
                                    ! 		returnAST = primaryExpression_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	public final Expression  constant() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST constant_AST = null;
                                    ! 		Token  l1 = null;
                                    ! 		AST l1_AST = null;
                                    ! 		Token  l2 = null;
                                    ! 		AST l2_AST = null;
                                    ! 		Token  l3 = null;
                                    ! 		AST l3_AST = null;
                                    ! 		Token  l4 = null;
                                    ! 		AST l4_AST = null;
                                    ! 		Token  l5 = null;
                                    ! 		AST l5_AST = null;
                                    ! 		Token  l6 = null;
                                    ! 		AST l6_AST = null;
                                    ! 		
                                    ! 		switch ( LA(1)) {
                                    ! 		case NUM_INT:
                                    ! 		{
                                    ! 			l1 = LT(1);
                                    ! 			l1_AST = astFactory.create(l1);
                                    ! 			astFactory.addASTChild(currentAST, l1_AST);
                                    ! 			match(NUM_INT);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantInteger(l1.getText());
                                    ! 			}
                                    ! 			constant_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case CHAR_LITERAL:
                                    ! 		{
                                    ! 			l2 = LT(1);
                                    ! 			l2_AST = astFactory.create(l2);
                                    ! 			astFactory.addASTChild(currentAST, l2_AST);
                                    ! 			match(CHAR_LITERAL);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantChar(l2.getText());
                                    ! 			}
                                    ! 			constant_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case STRING_LITERAL:
                                    ! 		{
                                    ! 			l3 = LT(1);
                                    ! 			l3_AST = astFactory.create(l3);
                                    ! 			astFactory.addASTChild(currentAST, l3_AST);
                                    ! 			match(STRING_LITERAL);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantString(l3.getText().substring(1, l3.getText().length()-1));
                                    ! 			}
                                    ! 			constant_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case NUM_FLOAT:
                                    ! 		{
                                    ! 			l4 = LT(1);
                                    ! 			l4_AST = astFactory.create(l4);
                                    ! 			astFactory.addASTChild(currentAST, l4_AST);
                                    ! 			match(NUM_FLOAT);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantFloat(l4.getText());
                                    ! 			}
                                    ! 			constant_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case NUM_LONG:
                                    ! 		{
                                    ! 			l5 = LT(1);
                                    ! 			l5_AST = astFactory.create(l5);
                                    ! 			astFactory.addASTChild(currentAST, l5_AST);
                                    ! 			match(NUM_LONG);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantLong(l5.getText());
                                    ! 			}
                                    ! 			constant_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		case NUM_DOUBLE:
                                    ! 		{
                                    ! 			l6 = LT(1);
                                    ! 			l6_AST = astFactory.create(l6);
                                    ! 			astFactory.addASTChild(currentAST, l6_AST);
                                    ! 			match(NUM_DOUBLE);
                                    ! 			if ( inputState.guessing==0 ) {
                                    ! 				e=new ConstantDouble(l6.getText());
                                    ! 			}
                                    ! 			constant_AST = (AST)currentAST.root;
                                    ! 			break;
                                    ! 		}
                                    ! 		default:
                                    ! 		{
                                    ! 			throw new NoViableAltException(LT(1), getFilename());
                                    ! 		}
                                    ! 		}
                                    ! 		returnAST = constant_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                      /** Match a, a.b.c refs
                                       */
                                    ! 	public final Expression  identPrimary() throws RecognitionException, TokenStreamException {
                                    ! 		Expression e = null;
                                    ! 		
                                    ! 		returnAST = null;
                                    ! 		ASTPair currentAST = new ASTPair();
                                    ! 		AST identPrimary_AST = null;
                                    ! 		
                                    ! 		AST tmp45_AST = null;
                                    ! 		tmp45_AST = astFactory.create(LT(1));
                                    ! 		astFactory.addASTChild(currentAST, tmp45_AST);
                                    ! 		match(IDENT);
                                    ! 		{
                                    ! 		_loop55:
                                    ! 		do {
                                    ! 			if ((LA(1)==DOT)) {
                                    ! 				AST tmp46_AST = null;
                                    ! 				tmp46_AST = astFactory.create(LT(1));
                                    ! 				astFactory.makeASTRoot(currentAST, tmp46_AST);
                                    ! 				match(DOT);
                                    ! 				AST tmp47_AST = null;
                                    ! 				tmp47_AST = astFactory.create(LT(1));
                                    ! 				astFactory.addASTChild(currentAST, tmp47_AST);
                                    ! 				match(IDENT);
                                    ! 			}
                                    ! 			else {
                                    ! 				break _loop55;
                                    ! 			}
                                    ! 			
                                    ! 		} while (true);
                                    ! 		}
                                    ! 		identPrimary_AST = (AST)currentAST.root;
                                    ! 		returnAST = identPrimary_AST;
                                    ! 		return e;
                                    ! 	}
                                    ! 	
                                    ! 	
                                    ! 	public static final String[] _tokenNames = {
                                    ! 		"<0>",
                                    ! 		"EOF",
                                    ! 		"<2>",
                                    ! 		"NULL_TREE_LOOKAHEAD",
                                    ! 		"BLOCK",
                                    ! 		"MODIFIERS",
                                    ! 		"OBJBLOCK",
                                    ! 		"SLIST",
                                    ! 		"CTOR_DEF",
                                    ! 		"METHOD_DEF",
                                    ! 		"VARIABLE_DEF",
                                    ! 		"INSTANCE_INIT",
                                    ! 		"STATIC_INIT",
                                    ! 		"TYPE",
                                    ! 		"CLASS_DEF",
                                    ! 		"INTERFACE_DEF",
                                    ! 		"PACKAGE_DEF",
                                    ! 		"ARRAY_DECLARATOR",
                                    ! 		"EXTENDS_CLAUSE",
                                    ! 		"IMPLEMENTS_CLAUSE",
                                    ! 		"PARAMETERS",
                                    ! 		"PARAMETER_DEF",
                                    ! 		"LABELED_STAT",
                                    ! 		"TYPECAST",
                                    ! 		"INDEX_OP",
                                    ! 		"POST_INC",
                                    ! 		"POST_DEC",
                                    ! 		"METHOD_CALL",
                                    ! 		"EXPR",
                                    ! 		"ARRAY_INIT",
                                    ! 		"IMPORT",
                                    ! 		"UNARY_MINUS",
                                    ! 		"UNARY_PLUS",
                                    ! 		"CASE_GROUP",
                                    ! 		"ELIST",
                                    ! 		"FOR_INIT",
                                    ! 		"FOR_CONDITION",
                                    ! 		"FOR_ITERATOR",
                                    ! 		"EMPTY_STAT",
                                    ! 		"\"final\"",
                                    ! 		"\"abstract\"",
                                    ! 		"\"strictfp\"",
                                    ! 		"SUPER_CTOR_CALL",
                                    ! 		"CTOR_CALL",
                                    ! 		"LBRACK",
                                    ! 		"RBRACK",
                                    ! 		"\"void\"",
                                    ! 		"\"boolean\"",
                                    ! 		"\"byte\"",
                                    ! 		"\"char\"",
                                    ! 		"\"short\"",
                                    ! 		"\"int\"",
                                    ! 		"\"float\"",
                                    ! 		"\"long\"",
                                    ! 		"\"double\"",
                                    ! 		"\"String\"",
                                    ! 		"IDENT",
                                    ! 		"DOT",
                                    ! 		"QUESTION",
                                    ! 		"COLON",
                                    ! 		"LOR",
                                    ! 		"LAND",
                                    ! 		"BOR",
                                    ! 		"BXOR",
                                    ! 		"BAND",
                                    ! 		"NOT_EQUAL",
                                    ! 		"EQUAL",
                                    ! 		"LT",
                                    ! 		"GT",
                                    ! 		"LE",
                                    ! 		"GE",
                                    ! 		"SL",
                                    ! 		"SR",
                                    ! 		"BSR",
                                    ! 		"PLUS",
                                    ! 		"MINUS",
                                    ! 		"STAR",
                                    ! 		"DIV",
                                    ! 		"MOD",
                                    ! 		"BNOT",
                                    ! 		"LNOT",
                                    ! 		"LPAREN",
                                    ! 		"RPAREN",
                                    ! 		"\"true\"",
                                    ! 		"\"false\"",
                                    ! 		"\"null\"",
                                    ! 		"NUM_INT",
                                    ! 		"CHAR_LITERAL",
                                    ! 		"STRING_LITERAL",
                                    ! 		"NUM_FLOAT",
                                    ! 		"NUM_LONG",
                                    ! 		"NUM_DOUBLE",
                                    ! 		"LCURLY",
                                    ! 		"RCURLY",
                                    ! 		"COMMA",
                                    ! 		"ASSIGN",
                                    ! 		"DIV_ASSIGN",
                                    ! 		"PLUS_ASSIGN",
                                    ! 		"INC",
                                    ! 		"MINUS_ASSIGN",
                                    ! 		"DEC",
                                    ! 		"STAR_ASSIGN",
                                    ! 		"MOD_ASSIGN",
                                    ! 		"SR_ASSIGN",
                                    ! 		"BSR_ASSIGN",
                                    ! 		"SL_ASSIGN",
                                    ! 		"BXOR_ASSIGN",
                                    ! 		"BOR_ASSIGN",
                                    ! 		"BAND_ASSIGN",
                                    ! 		"SEMI",
                                    ! 		"WS",
                                    ! 		"SL_COMMIT",
                                    ! 		"ML_COMMENT",
                                    ! 		"ESC",
                                    ! 		"HEX_DIGIT",
                                    ! 		"VOCAB",
                                    ! 		"EXPONENT",
                                    ! 		"FLOAT_SUFFIX"
                                    ! 	};
                                    ! 	
                                    ! 	protected void buildTokenTypeASTClassMap() {
                                    ! 		tokenTypeToASTClassMap=null;
                                    ! 	};
                                    ! 	
                                    ! 	private static final long[] mk_tokenSet_0() {
                                    ! 		long[] data = { 72057594037927936L, 268042240L, 0L, 0L};
                                    ! 		return data;
                                    ! 	}
                                    ! 	public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
                                    ! 	private static final long[] mk_tokenSet_1() {
                                    ! 		long[] data = { -72057594037927934L, 268435455L, 0L, 0L};
                                    ! 		return data;
                                    ! 	}
                                    ! 	public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
                                    ! 	
                                    ! 	}
                                    --- 53,1406 ----
                                        astFactory = new ASTFactory(getTokenTypeToASTClassMap());
                                      }
                                      
                                    !         public final Type  builtInTypeSpec(
                                    !                 boolean addImagNode
                                    !         ) throws RecognitionException, TokenStreamException {
                                    !                 Type t = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST builtInTypeSpec_AST = null;
                                    !                 Token  lb = null;
                                    !                 AST lb_AST = null;
                                    ! 
                                    !                 t=builtInType();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop3:
                                    !                 do {
                                    !                         if ((LA(1)==LBRACK)) {
                                    !                                 lb = LT(1);
                                    !                                 lb_AST = astFactory.create(lb);
                                    !                                 astFactory.makeASTRoot(currentAST, lb_AST);
                                    !                                 match(LBRACK);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         lb_AST.setType(ARRAY_DECLARATOR);
                                    !                                 }
                                    !                                 match(RBRACK);
                                    !                         }
                                    !                         else {
                                    !                                 break _loop3;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 if ( inputState.guessing==0 ) {
                                    !                         builtInTypeSpec_AST = (AST)currentAST.root;
                                    ! 
                                    !                                                 if ( addImagNode ) {
                                    !                                                         builtInTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(builtInTypeSpec_AST));
                                    !                                                 }
                                    ! 
                                    !                         currentAST.root = builtInTypeSpec_AST;
                                    !                         currentAST.child = builtInTypeSpec_AST!=null &&builtInTypeSpec_AST.getFirstChild()!=null ?
                                    !                                 builtInTypeSpec_AST.getFirstChild() : builtInTypeSpec_AST;
                                    !                         currentAST.advanceChildToEnd();
                                    !                 }
                                    !                 builtInTypeSpec_AST = (AST)currentAST.root;
                                    !                 returnAST = builtInTypeSpec_AST;
                                    !                 return t;
                                    !         }
                                    ! 
                                    !         public final Type  builtInType() throws RecognitionException, TokenStreamException {
                                    !                 Type t = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST builtInType_AST = null;
                                    ! 
                                    !                 switch ( LA(1)) {
                                    !                 case LITERAL_void:
                                    !                 {
                                    !                         AST tmp2_AST = null;
                                    !                         tmp2_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp2_AST);
                                    !                         match(LITERAL_void);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.VOID;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_boolean:
                                    !                 {
                                    !                         AST tmp3_AST = null;
                                    !                         tmp3_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp3_AST);
                                    !                         match(LITERAL_boolean);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.BOOLEAN;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_byte:
                                    !                 {
                                    !                         AST tmp4_AST = null;
                                    !                         tmp4_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp4_AST);
                                    !                         match(LITERAL_byte);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.BYTE;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_char:
                                    !                 {
                                    !                         AST tmp5_AST = null;
                                    !                         tmp5_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp5_AST);
                                    !                         match(LITERAL_char);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.CHAR;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_short:
                                    !                 {
                                    !                         AST tmp6_AST = null;
                                    !                         tmp6_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp6_AST);
                                    !                         match(LITERAL_short);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.SHORT;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_int:
                                    !                 {
                                    !                         AST tmp7_AST = null;
                                    !                         tmp7_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp7_AST);
                                    !                         match(LITERAL_int);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.INTEGER;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_float:
                                    !                 {
                                    !                         AST tmp8_AST = null;
                                    !                         tmp8_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp8_AST);
                                    !                         match(LITERAL_float);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.FLOAT;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_long:
                                    !                 {
                                    !                         AST tmp9_AST = null;
                                    !                         tmp9_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp9_AST);
                                    !                         match(LITERAL_long);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.LONG;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_double:
                                    !                 {
                                    !                         AST tmp10_AST = null;
                                    !                         tmp10_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp10_AST);
                                    !                         match(LITERAL_double);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.DOUBLE;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_String:
                                    !                 {
                                    !                         AST tmp11_AST = null;
                                    !                         tmp11_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp11_AST);
                                    !                         match(LITERAL_String);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 t=Type.STRING;
                                    !                         }
                                    !                         builtInType_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltException(LT(1), getFilename());
                                    !                 }
                                    !                 }
                                    !                 returnAST = builtInType_AST;
                                    !                 return t;
                                    !         }
                                    ! 
                                    !         public final Type  type() throws RecognitionException, TokenStreamException {
                                    !                 Type t;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST type_AST = null;
                                    ! 
                                    !                 t=builtInType();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 type_AST = (AST)currentAST.root;
                                    !                 returnAST = type_AST;
                                    !                 return t;
                                    !         }
                                    ! 
                                    !         public final String  identifier() throws RecognitionException, TokenStreamException {
                                    !                 String s = null;;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST identifier_AST = null;
                                    !                 Token  i = null;
                                    !                 AST i_AST = null;
                                    !                 Token  i2 = null;
                                    !                 AST i2_AST = null;
                                    ! 
                                    !                 i = LT(1);
                                    !                 i_AST = astFactory.create(i);
                                    !                 astFactory.addASTChild(currentAST, i_AST);
                                    !                 match(IDENT);
                                    !                 if ( inputState.guessing==0 ) {
                                    !                         s=i.getText();
                                    !                 }
                                    !                 {
                                    !                 _loop8:
                                    !                 do {
                                    !                         if ((LA(1)==DOT)) {
                                    !                                 AST tmp12_AST = null;
                                    !                                 tmp12_AST = astFactory.create(LT(1));
                                    !                                 astFactory.makeASTRoot(currentAST, tmp12_AST);
                                    !                                 match(DOT);
                                    !                                 i2 = LT(1);
                                    !                                 i2_AST = astFactory.create(i2);
                                    !                                 astFactory.addASTChild(currentAST, i2_AST);
                                    !                                 match(IDENT);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         s+="."+i2.getText();
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop8;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 identifier_AST = (AST)currentAST.root;
                                    !                 returnAST = identifier_AST;
                                    !                 return s;
                                    !         }
                                    ! 
                                    !         public final Expression  expression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST expression_AST = null;
                                    ! 
                                    !                 e=conditionalExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 match(Token.EOF_TYPE);
                                    !                 expression_AST = (AST)currentAST.root;
                                    !                 returnAST = expression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  conditionalExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST conditionalExpression_AST = null;
                                    !                 Expression a,b,c;
                                    ! 
                                    !                 e=logicalOrExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 switch ( LA(1)) {
                                    !                 case QUESTION:
                                    !                 {
                                    !                         AST tmp14_AST = null;
                                    !                         tmp14_AST = astFactory.create(LT(1));
                                    !                         astFactory.makeASTRoot(currentAST, tmp14_AST);
                                    !                         match(QUESTION);
                                    !                         b=conditionalExpression();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         match(COLON);
                                    !                         c=conditionalExpression();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConditionalExpression(e,b,c);
                                    !                         }
                                    !                         break;
                                    !                 }
                                    !                 case EOF:
                                    !                 case COLON:
                                    !                 case RPAREN:
                                    !                 {
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltException(LT(1), getFilename());
                                    !                 }
                                    !                 }
                                    !                 }
                                    !                 conditionalExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = conditionalExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  logicalOrExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST logicalOrExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=logicalAndExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop14:
                                    !                 do {
                                    !                         if ((LA(1)==LOR)) {
                                    !                                 AST tmp16_AST = null;
                                    !                                 tmp16_AST = astFactory.create(LT(1));
                                    !                                 astFactory.makeASTRoot(currentAST, tmp16_AST);
                                    !                                 match(LOR);
                                    !                                 b=logicalAndExpression();
                                    !                                 astFactory.addASTChild(currentAST, returnAST);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         e=new LogicalOrExpression(e,b);
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop14;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 logicalOrExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = logicalOrExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  logicalAndExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST logicalAndExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=inclusiveOrExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop17:
                                    !                 do {
                                    !                         if ((LA(1)==LAND)) {
                                    !                                 AST tmp17_AST = null;
                                    !                                 tmp17_AST = astFactory.create(LT(1));
                                    !                                 astFactory.makeASTRoot(currentAST, tmp17_AST);
                                    !                                 match(LAND);
                                    !                                 b=inclusiveOrExpression();
                                    !                                 astFactory.addASTChild(currentAST, returnAST);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         e=new LogicalAndExpression(e,b);
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop17;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 logicalAndExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = logicalAndExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  inclusiveOrExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST inclusiveOrExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=exclusiveOrExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop20:
                                    !                 do {
                                    !                         if ((LA(1)==BOR)) {
                                    !                                 AST tmp18_AST = null;
                                    !                                 tmp18_AST = astFactory.create(LT(1));
                                    !                                 astFactory.makeASTRoot(currentAST, tmp18_AST);
                                    !                                 match(BOR);
                                    !                                 b=exclusiveOrExpression();
                                    !                                 astFactory.addASTChild(currentAST, returnAST);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         e=new InclusiveOrExpression(e,b);
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop20;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 inclusiveOrExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = inclusiveOrExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  exclusiveOrExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST exclusiveOrExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=andExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop23:
                                    !                 do {
                                    !                         if ((LA(1)==BXOR)) {
                                    !                                 AST tmp19_AST = null;
                                    !                                 tmp19_AST = astFactory.create(LT(1));
                                    !                                 astFactory.makeASTRoot(currentAST, tmp19_AST);
                                    !                                 match(BXOR);
                                    !                                 b=andExpression();
                                    !                                 astFactory.addASTChild(currentAST, returnAST);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         e=new ExclusiveOrExpression(e,b);
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop23;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 exclusiveOrExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = exclusiveOrExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  andExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST andExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=equalityExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop26:
                                    !                 do {
                                    !                         if ((LA(1)==BAND)) {
                                    !                                 AST tmp20_AST = null;
                                    !                                 tmp20_AST = astFactory.create(LT(1));
                                    !                                 astFactory.makeASTRoot(currentAST, tmp20_AST);
                                    !                                 match(BAND);
                                    !                                 b=equalityExpression();
                                    !                                 astFactory.addASTChild(currentAST, returnAST);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         e=new AndExpression(e,b);
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop26;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 andExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = andExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  equalityExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST equalityExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=relationalExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop30:
                                    !                 do {
                                    !                         if ((LA(1)==NOT_EQUAL||LA(1)==EQUAL)) {
                                    !                                 {
                                    !                                 switch ( LA(1)) {
                                    !                                 case NOT_EQUAL:
                                    !                                 {
                                    !                                         AST tmp21_AST = null;
                                    !                                         tmp21_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp21_AST);
                                    !                                         match(NOT_EQUAL);
                                    !                                         a=relationalExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new NotEqualExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case EQUAL:
                                    !                                 {
                                    !                                         AST tmp22_AST = null;
                                    !                                         tmp22_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp22_AST);
                                    !                                         match(EQUAL);
                                    !                                         a=relationalExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new EqualExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 default:
                                    !                                 {
                                    !                                         throw new NoViableAltException(LT(1), getFilename());
                                    !                                 }
                                    !                                 }
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop30;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 equalityExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = equalityExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  relationalExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST relationalExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=shiftExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 {
                                    !                 _loop35:
                                    !                 do {
                                    !                         if (((LA(1) >= LT && LA(1) <= GE))) {
                                    !                                 {
                                    !                                 switch ( LA(1)) {
                                    !                                 case LT:
                                    !                                 {
                                    !                                         AST tmp23_AST = null;
                                    !                                         tmp23_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp23_AST);
                                    !                                         match(LT);
                                    !                                         a=shiftExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new LessThanExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case GT:
                                    !                                 {
                                    !                                         AST tmp24_AST = null;
                                    !                                         tmp24_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp24_AST);
                                    !                                         match(GT);
                                    !                                         a=shiftExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new GreaterThanExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case LE:
                                    !                                 {
                                    !                                         AST tmp25_AST = null;
                                    !                                         tmp25_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp25_AST);
                                    !                                         match(LE);
                                    !                                         a=shiftExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new LessThanOrEqualExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case GE:
                                    !                                 {
                                    !                                         AST tmp26_AST = null;
                                    !                                         tmp26_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp26_AST);
                                    !                                         match(GE);
                                    !                                         a=shiftExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new GreaterThanOrEqualExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 default:
                                    !                                 {
                                    !                                         throw new NoViableAltException(LT(1), getFilename());
                                    !                                 }
                                    !                                 }
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop35;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 }
                                    !                 relationalExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = relationalExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  shiftExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST shiftExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=additiveExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop39:
                                    !                 do {
                                    !                         if (((LA(1) >= SL && LA(1) <= BSR))) {
                                    !                                 {
                                    !                                 switch ( LA(1)) {
                                    !                                 case SL:
                                    !                                 {
                                    !                                         AST tmp27_AST = null;
                                    !                                         tmp27_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp27_AST);
                                    !                                         match(SL);
                                    !                                         a=additiveExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new ShiftLeftExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case SR:
                                    !                                 {
                                    !                                         AST tmp28_AST = null;
                                    !                                         tmp28_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp28_AST);
                                    !                                         match(SR);
                                    !                                         a=additiveExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new ShiftRightExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case BSR:
                                    !                                 {
                                    !                                         AST tmp29_AST = null;
                                    !                                         tmp29_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp29_AST);
                                    !                                         match(BSR);
                                    !                                         a=additiveExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new BitShiftRightExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 default:
                                    !                                 {
                                    !                                         throw new NoViableAltException(LT(1), getFilename());
                                    !                                 }
                                    !                                 }
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop39;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 shiftExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = shiftExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  additiveExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST additiveExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=multiplicativeExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop43:
                                    !                 do {
                                    !                         if ((LA(1)==PLUS||LA(1)==MINUS)) {
                                    !                                 {
                                    !                                 switch ( LA(1)) {
                                    !                                 case PLUS:
                                    !                                 {
                                    !                                         AST tmp30_AST = null;
                                    !                                         tmp30_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp30_AST);
                                    !                                         match(PLUS);
                                    !                                         a=multiplicativeExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new AdditionExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case MINUS:
                                    !                                 {
                                    !                                         AST tmp31_AST = null;
                                    !                                         tmp31_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp31_AST);
                                    !                                         match(MINUS);
                                    !                                         a=multiplicativeExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new SubtractionExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 default:
                                    !                                 {
                                    !                                         throw new NoViableAltException(LT(1), getFilename());
                                    !                                 }
                                    !                                 }
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop43;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 additiveExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = additiveExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  multiplicativeExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST multiplicativeExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 e=unaryExpression();
                                    !                 astFactory.addASTChild(currentAST, returnAST);
                                    !                 {
                                    !                 _loop47:
                                    !                 do {
                                    !                         if (((LA(1) >= STAR && LA(1) <= MOD))) {
                                    !                                 {
                                    !                                 switch ( LA(1)) {
                                    !                                 case STAR:
                                    !                                 {
                                    !                                         AST tmp32_AST = null;
                                    !                                         tmp32_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp32_AST);
                                    !                                         match(STAR);
                                    !                                         a=unaryExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new MultiplicationExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case DIV:
                                    !                                 {
                                    !                                         AST tmp33_AST = null;
                                    !                                         tmp33_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp33_AST);
                                    !                                         match(DIV);
                                    !                                         a=unaryExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new DivisionExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 case MOD:
                                    !                                 {
                                    !                                         AST tmp34_AST = null;
                                    !                                         tmp34_AST = astFactory.create(LT(1));
                                    !                                         astFactory.makeASTRoot(currentAST, tmp34_AST);
                                    !                                         match(MOD);
                                    !                                         a=unaryExpression();
                                    !                                         astFactory.addASTChild(currentAST, returnAST);
                                    !                                         if ( inputState.guessing==0 ) {
                                    !                                                 e=new ModuloExpression(e,a);
                                    !                                         }
                                    !                                         break;
                                    !                                 }
                                    !                                 default:
                                    !                                 {
                                    !                                         throw new NoViableAltException(LT(1), getFilename());
                                    !                                 }
                                    !                                 }
                                    !                                 }
                                    !                         }
                                    !                         else {
                                    !                                 break _loop47;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 multiplicativeExpression_AST = (AST)currentAST.root;
                                    !                 returnAST = multiplicativeExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  unaryExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST unaryExpression_AST = null;
                                    !                 Expression a,b;
                                    ! 
                                    !                 switch ( LA(1)) {
                                    !                 case MINUS:
                                    !                 {
                                    !                         AST tmp35_AST = null;
                                    !                         tmp35_AST = astFactory.create(LT(1));
                                    !                         astFactory.makeASTRoot(currentAST, tmp35_AST);
                                    !                         match(MINUS);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 tmp35_AST.setType(UNARY_MINUS);
                                    !                         }
                                    !                         a=unaryExpression();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new NegateExpression(a);
                                    !                         }
                                    !                         unaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case PLUS:
                                    !                 {
                                    !                         AST tmp36_AST = null;
                                    !                         tmp36_AST = astFactory.create(LT(1));
                                    !                         astFactory.makeASTRoot(currentAST, tmp36_AST);
                                    !                         match(PLUS);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 tmp36_AST.setType(UNARY_PLUS);
                                    !                         }
                                    !                         e=unaryExpression();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         unaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case IDENT:
                                    !                 case BNOT:
                                    !                 case LNOT:
                                    !                 case LPAREN:
                                    !                 case LITERAL_true:
                                    !                 case LITERAL_false:
                                    !                 case LITERAL_null:
                                    !                 case NUM_INT:
                                    !                 case CHAR_LITERAL:
                                    !                 case STRING_LITERAL:
                                    !                 case NUM_FLOAT:
                                    !                 case NUM_LONG:
                                    !                 case NUM_DOUBLE:
                                    !                 {
                                    !                         e=unaryExpressionNotPlusMinus();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         unaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltException(LT(1), getFilename());
                                    !                 }
                                    !                 }
                                    !                 returnAST = unaryExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  unaryExpressionNotPlusMinus() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST unaryExpressionNotPlusMinus_AST = null;
                                    !                 Token  lpb = null;
                                    !                 AST lpb_AST = null;
                                    !                 Expression a; Type t;
                                    ! 
                                    !                 switch ( LA(1)) {
                                    !                 case BNOT:
                                    !                 {
                                    !                         AST tmp37_AST = null;
                                    !                         tmp37_AST = astFactory.create(LT(1));
                                    !                         astFactory.makeASTRoot(currentAST, tmp37_AST);
                                    !                         match(BNOT);
                                    !                         a=unaryExpression();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new NotExpression(a);
                                    !                         }
                                    !                         unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LNOT:
                                    !                 {
                                    !                         AST tmp38_AST = null;
                                    !                         tmp38_AST = astFactory.create(LT(1));
                                    !                         astFactory.makeASTRoot(currentAST, tmp38_AST);
                                    !                         match(LNOT);
                                    !                         a=unaryExpression();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new LogicalNotExpression(a);
                                    !                         }
                                    !                         unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                         boolean synPredMatched51 = false;
                                    !                         if (((LA(1)==LPAREN) && ((LA(2) >= LITERAL_void && LA(2) <= LITERAL_String)))) {
                                    !                                 int _m51 = mark();
                                    !                                 synPredMatched51 = true;
                                    !                                 inputState.guessing++;
                                    !                                 try {
                                    !                                         {
                                    !                                         match(LPAREN);
                                    !                                         builtInTypeSpec(true);
                                    !                                         match(RPAREN);
                                    !                                         }
                                    !                                 }
                                    !                                 catch (RecognitionException pe) {
                                    !                                         synPredMatched51 = false;
                                    !                                 }
                                    !                                 rewind(_m51);
                                      inputState.guessing--;
                                    !                         }
                                    !                         if ( synPredMatched51 ) {
                                    !                                 lpb = LT(1);
                                    !                                 lpb_AST = astFactory.create(lpb);
                                    !                                 astFactory.makeASTRoot(currentAST, lpb_AST);
                                    !                                 match(LPAREN);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         lpb_AST.setType(TYPECAST);
                                    !                                 }
                                    !                                 t=builtInTypeSpec(true);
                                    !                                 astFactory.addASTChild(currentAST, returnAST);
                                    !                                 match(RPAREN);
                                    !                                 a=unaryExpression();
                                    !                                 astFactory.addASTChild(currentAST, returnAST);
                                    !                                 if ( inputState.guessing==0 ) {
                                    !                                         e=new TypeCastExpression(t,a);
                                    !                                 }
                                    !                                 unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
                                    !                         }
                                    !                         else if ((_tokenSet_0.member(LA(1))) && (_tokenSet_1.member(LA(2)))) {
                                    !                                 e=primaryExpression();
                                    !                                 astFactory.addASTChild(currentAST, returnAST);
                                    !                                 unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
                                    !                         }
                                    !                 else {
                                    !                         throw new NoViableAltException(LT(1), getFilename());
                                    !                 }
                                    !                 }
                                    !                 returnAST = unaryExpressionNotPlusMinus_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  primaryExpression() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null; String i = null;;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST primaryExpression_AST = null;
                                    ! 
                                    !                 switch ( LA(1)) {
                                    !                 case NUM_INT:
                                    !                 case CHAR_LITERAL:
                                    !                 case STRING_LITERAL:
                                    !                 case NUM_FLOAT:
                                    !                 case NUM_LONG:
                                    !                 case NUM_DOUBLE:
                                    !                 {
                                    !                         e=constant();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         primaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case IDENT:
                                    !                 {
                                    !                         i=identifier();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new IdentifierExpression(i);
                                    !                         }
                                    !                         primaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_true:
                                    !                 {
                                    !                         AST tmp40_AST = null;
                                    !                         tmp40_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp40_AST);
                                    !                         match(LITERAL_true);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantBoolean(true);
                                    !                         }
                                    !                         primaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_false:
                                    !                 {
                                    !                         AST tmp41_AST = null;
                                    !                         tmp41_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp41_AST);
                                    !                         match(LITERAL_false);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantBoolean(false);
                                    !                         }
                                    !                         primaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LITERAL_null:
                                    !                 {
                                    !                         AST tmp42_AST = null;
                                    !                         tmp42_AST = astFactory.create(LT(1));
                                    !                         astFactory.addASTChild(currentAST, tmp42_AST);
                                    !                         match(LITERAL_null);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantNull();
                                    !                         }
                                    !                         primaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case LPAREN:
                                    !                 {
                                    !                         match(LPAREN);
                                    !                         e=conditionalExpression();
                                    !                         astFactory.addASTChild(currentAST, returnAST);
                                    !                         match(RPAREN);
                                    !                         primaryExpression_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltException(LT(1), getFilename());
                                    !                 }
                                    !                 }
                                    !                 returnAST = primaryExpression_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    !         public final Expression  constant() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST constant_AST = null;
                                    !                 Token  l1 = null;
                                    !                 AST l1_AST = null;
                                    !                 Token  l2 = null;
                                    !                 AST l2_AST = null;
                                    !                 Token  l3 = null;
                                    !                 AST l3_AST = null;
                                    !                 Token  l4 = null;
                                    !                 AST l4_AST = null;
                                    !                 Token  l5 = null;
                                    !                 AST l5_AST = null;
                                    !                 Token  l6 = null;
                                    !                 AST l6_AST = null;
                                    ! 
                                    !                 switch ( LA(1)) {
                                    !                 case NUM_INT:
                                    !                 {
                                    !                         l1 = LT(1);
                                    !                         l1_AST = astFactory.create(l1);
                                    !                         astFactory.addASTChild(currentAST, l1_AST);
                                    !                         match(NUM_INT);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantInteger(l1.getText());
                                    !                         }
                                    !                         constant_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case CHAR_LITERAL:
                                    !                 {
                                    !                         l2 = LT(1);
                                    !                         l2_AST = astFactory.create(l2);
                                    !                         astFactory.addASTChild(currentAST, l2_AST);
                                    !                         match(CHAR_LITERAL);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantChar(l2.getText());
                                    !                         }
                                    !                         constant_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case STRING_LITERAL:
                                    !                 {
                                    !                         l3 = LT(1);
                                    !                         l3_AST = astFactory.create(l3);
                                    !                         astFactory.addASTChild(currentAST, l3_AST);
                                    !                         match(STRING_LITERAL);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantString(l3.getText().substring(1, l3.getText().length()-1));
                                    !                         }
                                    !                         constant_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case NUM_FLOAT:
                                    !                 {
                                    !                         l4 = LT(1);
                                    !                         l4_AST = astFactory.create(l4);
                                    !                         astFactory.addASTChild(currentAST, l4_AST);
                                    !                         match(NUM_FLOAT);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantFloat(l4.getText());
                                    !                         }
                                    !                         constant_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case NUM_LONG:
                                    !                 {
                                    !                         l5 = LT(1);
                                    !                         l5_AST = astFactory.create(l5);
                                    !                         astFactory.addASTChild(currentAST, l5_AST);
                                    !                         match(NUM_LONG);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantLong(l5.getText());
                                    !                         }
                                    !                         constant_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 case NUM_DOUBLE:
                                    !                 {
                                    !                         l6 = LT(1);
                                    !                         l6_AST = astFactory.create(l6);
                                    !                         astFactory.addASTChild(currentAST, l6_AST);
                                    !                         match(NUM_DOUBLE);
                                    !                         if ( inputState.guessing==0 ) {
                                    !                                 e=new ConstantDouble(l6.getText());
                                    !                         }
                                    !                         constant_AST = (AST)currentAST.root;
                                    !                         break;
                                    !                 }
                                    !                 default:
                                    !                 {
                                    !                         throw new NoViableAltException(LT(1), getFilename());
                                    !                 }
                                    !                 }
                                    !                 returnAST = constant_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                      /** Match a, a.b.c refs
                                       */
                                    !         public final Expression  identPrimary() throws RecognitionException, TokenStreamException {
                                    !                 Expression e = null;
                                    ! 
                                    !                 returnAST = null;
                                    !                 ASTPair currentAST = new ASTPair();
                                    !                 AST identPrimary_AST = null;
                                    ! 
                                    !                 AST tmp45_AST = null;
                                    !                 tmp45_AST = astFactory.create(LT(1));
                                    !                 astFactory.addASTChild(currentAST, tmp45_AST);
                                    !                 match(IDENT);
                                    !                 {
                                    !                 _loop55:
                                    !                 do {
                                    !                         if ((LA(1)==DOT)) {
                                    !                                 AST tmp46_AST = null;
                                    !                                 tmp46_AST = astFactory.create(LT(1));
                                    !                                 astFactory.makeASTRoot(currentAST, tmp46_AST);
                                    !                                 match(DOT);
                                    !                                 AST tmp47_AST = null;
                                    !                                 tmp47_AST = astFactory.create(LT(1));
                                    !                                 astFactory.addASTChild(currentAST, tmp47_AST);
                                    !                                 match(IDENT);
                                    !                         }
                                    !                         else {
                                    !                                 break _loop55;
                                    !                         }
                                    ! 
                                    !                 } while (true);
                                    !                 }
                                    !                 identPrimary_AST = (AST)currentAST.root;
                                    !                 returnAST = identPrimary_AST;
                                    !                 return e;
                                    !         }
                                    ! 
                                    ! 
                                    !         public static final String[] _tokenNames = {
                                    !                 "<0>",
                                    !                 "EOF",
                                    !                 "<2>",
                                    !                 "NULL_TREE_LOOKAHEAD",
                                    !                 "BLOCK",
                                    !                 "MODIFIERS",
                                    !                 "OBJBLOCK",
                                    !                 "SLIST",
                                    !                 "CTOR_DEF",
                                    !                 "METHOD_DEF",
                                    !                 "VARIABLE_DEF",
                                    !                 "INSTANCE_INIT",
                                    !                 "STATIC_INIT",
                                    !                 "TYPE",
                                    !                 "CLASS_DEF",
                                    !                 "INTERFACE_DEF",
                                    !                 "PACKAGE_DEF",
                                    !                 "ARRAY_DECLARATOR",
                                    !                 "EXTENDS_CLAUSE",
                                    !                 "IMPLEMENTS_CLAUSE",
                                    !                 "PARAMETERS",
                                    !                 "PARAMETER_DEF",
                                    !                 "LABELED_STAT",
                                    !                 "TYPECAST",
                                    !                 "INDEX_OP",
                                    !                 "POST_INC",
                                    !                 "POST_DEC",
                                    !                 "METHOD_CALL",
                                    !                 "EXPR",
                                    !                 "ARRAY_INIT",
                                    !                 "IMPORT",
                                    !                 "UNARY_MINUS",
                                    !                 "UNARY_PLUS",
                                    !                 "CASE_GROUP",
                                    !                 "ELIST",
                                    !                 "FOR_INIT",
                                    !                 "FOR_CONDITION",
                                    !                 "FOR_ITERATOR",
                                    !                 "EMPTY_STAT",
                                    !                 "\"final\"",
                                    !                 "\"abstract\"",
                                    !                 "\"strictfp\"",
                                    !                 "SUPER_CTOR_CALL",
                                    !                 "CTOR_CALL",
                                    !                 "LBRACK",
                                    !                 "RBRACK",
                                    !                 "\"void\"",
                                    !                 "\"boolean\"",
                                    !                 "\"byte\"",
                                    !                 "\"char\"",
                                    !                 "\"short\"",
                                    !                 "\"int\"",
                                    !                 "\"float\"",
                                    !                 "\"long\"",
                                    !                 "\"double\"",
                                    !                 "\"String\"",
                                    !                 "IDENT",
                                    !                 "DOT",
                                    !                 "QUESTION",
                                    !                 "COLON",
                                    !                 "LOR",
                                    !                 "LAND",
                                    !                 "BOR",
                                    !                 "BXOR",
                                    !                 "BAND",
                                    !                 "NOT_EQUAL",
                                    !                 "EQUAL",
                                    !                 "LT",
                                    !                 "GT",
                                    !                 "LE",
                                    !                 "GE",
                                    !                 "SL",
                                    !                 "SR",
                                    !                 "BSR",
                                    !                 "PLUS",
                                    !                 "MINUS",
                                    !                 "STAR",
                                    !                 "DIV",
                                    !                 "MOD",
                                    !                 "BNOT",
                                    !                 "LNOT",
                                    !                 "LPAREN",
                                    !                 "RPAREN",
                                    !                 "\"true\"",
                                    !                 "\"false\"",
                                    !                 "\"null\"",
                                    !                 "NUM_INT",
                                    !                 "CHAR_LITERAL",
                                    !                 "STRING_LITERAL",
                                    !                 "NUM_FLOAT",
                                    !                 "NUM_LONG",
                                    !                 "NUM_DOUBLE",
                                    !                 "LCURLY",
                                    !                 "RCURLY",
                                    !                 "COMMA",
                                    !                 "ASSIGN",
                                    !                 "DIV_ASSIGN",
                                    !                 "PLUS_ASSIGN",
                                    !                 "INC",
                                    !                 "MINUS_ASSIGN",
                                    !                 "DEC",
                                    !                 "STAR_ASSIGN",
                                    !                 "MOD_ASSIGN",
                                    !                 "SR_ASSIGN",
                                    !                 "BSR_ASSIGN",
                                    !                 "SL_ASSIGN",
                                    !                 "BXOR_ASSIGN",
                                    !                 "BOR_ASSIGN",
                                    !                 "BAND_ASSIGN",
                                    !                 "SEMI",
                                    !                 "WS",
                                    !                 "SL_COMMIT",
                                    !                 "ML_COMMENT",
                                    !                 "ESC",
                                    !                 "HEX_DIGIT",
                                    !                 "VOCAB",
                                    !                 "EXPONENT",
                                    !                 "FLOAT_SUFFIX"
                                    !         };
                                    ! 
                                    !         protected void buildTokenTypeASTClassMap() {
                                    !                 tokenTypeToASTClassMap=null;
                                    !         };
                                    ! 
                                    !         private static final long[] mk_tokenSet_0() {
                                    !                 long[] data = { 72057594037927936L, 268042240L, 0L, 0L};
                                    !                 return data;
                                    !         }
                                    !         public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
                                    !         private static final long[] mk_tokenSet_1() {
                                    !                 long[] data = { -72057594037927934L, 268435455L, 0L, 0L};
                                    !                 return data;
                                    !         }
                                    !         public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
                                    ! 
                                    !         }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java gcc-4.6.0/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java
                                    *** gcc-4.5.2/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java	Tue Oct 21 15:18:44 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,122 ****
                                      // $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaLexer.java"$
                                    !  
                                    !    package gnu.classpath.tools.gjdoc.expr; 
                                      
                                      public interface JavaTokenTypes {
                                    ! 	int EOF = 1;
                                    ! 	int NULL_TREE_LOOKAHEAD = 3;
                                    ! 	int BLOCK = 4;
                                    ! 	int MODIFIERS = 5;
                                    ! 	int OBJBLOCK = 6;
                                    ! 	int SLIST = 7;
                                    ! 	int CTOR_DEF = 8;
                                    ! 	int METHOD_DEF = 9;
                                    ! 	int VARIABLE_DEF = 10;
                                    ! 	int INSTANCE_INIT = 11;
                                    ! 	int STATIC_INIT = 12;
                                    ! 	int TYPE = 13;
                                    ! 	int CLASS_DEF = 14;
                                    ! 	int INTERFACE_DEF = 15;
                                    ! 	int PACKAGE_DEF = 16;
                                    ! 	int ARRAY_DECLARATOR = 17;
                                    ! 	int EXTENDS_CLAUSE = 18;
                                    ! 	int IMPLEMENTS_CLAUSE = 19;
                                    ! 	int PARAMETERS = 20;
                                    ! 	int PARAMETER_DEF = 21;
                                    ! 	int LABELED_STAT = 22;
                                    ! 	int TYPECAST = 23;
                                    ! 	int INDEX_OP = 24;
                                    ! 	int POST_INC = 25;
                                    ! 	int POST_DEC = 26;
                                    ! 	int METHOD_CALL = 27;
                                    ! 	int EXPR = 28;
                                    ! 	int ARRAY_INIT = 29;
                                    ! 	int IMPORT = 30;
                                    ! 	int UNARY_MINUS = 31;
                                    ! 	int UNARY_PLUS = 32;
                                    ! 	int CASE_GROUP = 33;
                                    ! 	int ELIST = 34;
                                    ! 	int FOR_INIT = 35;
                                    ! 	int FOR_CONDITION = 36;
                                    ! 	int FOR_ITERATOR = 37;
                                    ! 	int EMPTY_STAT = 38;
                                    ! 	int FINAL = 39;
                                    ! 	int ABSTRACT = 40;
                                    ! 	int STRICTFP = 41;
                                    ! 	int SUPER_CTOR_CALL = 42;
                                    ! 	int CTOR_CALL = 43;
                                    ! 	int LBRACK = 44;
                                    ! 	int RBRACK = 45;
                                    ! 	int LITERAL_void = 46;
                                    ! 	int LITERAL_boolean = 47;
                                    ! 	int LITERAL_byte = 48;
                                    ! 	int LITERAL_char = 49;
                                    ! 	int LITERAL_short = 50;
                                    ! 	int LITERAL_int = 51;
                                    ! 	int LITERAL_float = 52;
                                    ! 	int LITERAL_long = 53;
                                    ! 	int LITERAL_double = 54;
                                    ! 	int LITERAL_String = 55;
                                    ! 	int IDENT = 56;
                                    ! 	int DOT = 57;
                                    ! 	int QUESTION = 58;
                                    ! 	int COLON = 59;
                                    ! 	int LOR = 60;
                                    ! 	int LAND = 61;
                                    ! 	int BOR = 62;
                                    ! 	int BXOR = 63;
                                    ! 	int BAND = 64;
                                    ! 	int NOT_EQUAL = 65;
                                    ! 	int EQUAL = 66;
                                    ! 	int LT = 67;
                                    ! 	int GT = 68;
                                    ! 	int LE = 69;
                                    ! 	int GE = 70;
                                    ! 	int SL = 71;
                                    ! 	int SR = 72;
                                    ! 	int BSR = 73;
                                    ! 	int PLUS = 74;
                                    ! 	int MINUS = 75;
                                    ! 	int STAR = 76;
                                    ! 	int DIV = 77;
                                    ! 	int MOD = 78;
                                    ! 	int BNOT = 79;
                                    ! 	int LNOT = 80;
                                    ! 	int LPAREN = 81;
                                    ! 	int RPAREN = 82;
                                    ! 	int LITERAL_true = 83;
                                    ! 	int LITERAL_false = 84;
                                    ! 	int LITERAL_null = 85;
                                    ! 	int NUM_INT = 86;
                                    ! 	int CHAR_LITERAL = 87;
                                    ! 	int STRING_LITERAL = 88;
                                    ! 	int NUM_FLOAT = 89;
                                    ! 	int NUM_LONG = 90;
                                    ! 	int NUM_DOUBLE = 91;
                                    ! 	int LCURLY = 92;
                                    ! 	int RCURLY = 93;
                                    ! 	int COMMA = 94;
                                    ! 	int ASSIGN = 95;
                                    ! 	int DIV_ASSIGN = 96;
                                    ! 	int PLUS_ASSIGN = 97;
                                    ! 	int INC = 98;
                                    ! 	int MINUS_ASSIGN = 99;
                                    ! 	int DEC = 100;
                                    ! 	int STAR_ASSIGN = 101;
                                    ! 	int MOD_ASSIGN = 102;
                                    ! 	int SR_ASSIGN = 103;
                                    ! 	int BSR_ASSIGN = 104;
                                    ! 	int SL_ASSIGN = 105;
                                    ! 	int BXOR_ASSIGN = 106;
                                    ! 	int BOR_ASSIGN = 107;
                                    ! 	int BAND_ASSIGN = 108;
                                    ! 	int SEMI = 109;
                                    ! 	int WS = 110;
                                    ! 	int SL_COMMIT = 111;
                                    ! 	int ML_COMMENT = 112;
                                    ! 	int ESC = 113;
                                    ! 	int HEX_DIGIT = 114;
                                    ! 	int VOCAB = 115;
                                    ! 	int EXPONENT = 116;
                                    ! 	int FLOAT_SUFFIX = 117;
                                      }
                                    --- 1,122 ----
                                      // $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaLexer.java"$
                                    ! 
                                    !    package gnu.classpath.tools.gjdoc.expr;
                                      
                                      public interface JavaTokenTypes {
                                    !         int EOF = 1;
                                    !         int NULL_TREE_LOOKAHEAD = 3;
                                    !         int BLOCK = 4;
                                    !         int MODIFIERS = 5;
                                    !         int OBJBLOCK = 6;
                                    !         int SLIST = 7;
                                    !         int CTOR_DEF = 8;
                                    !         int METHOD_DEF = 9;
                                    !         int VARIABLE_DEF = 10;
                                    !         int INSTANCE_INIT = 11;
                                    !         int STATIC_INIT = 12;
                                    !         int TYPE = 13;
                                    !         int CLASS_DEF = 14;
                                    !         int INTERFACE_DEF = 15;
                                    !         int PACKAGE_DEF = 16;
                                    !         int ARRAY_DECLARATOR = 17;
                                    !         int EXTENDS_CLAUSE = 18;
                                    !         int IMPLEMENTS_CLAUSE = 19;
                                    !         int PARAMETERS = 20;
                                    !         int PARAMETER_DEF = 21;
                                    !         int LABELED_STAT = 22;
                                    !         int TYPECAST = 23;
                                    !         int INDEX_OP = 24;
                                    !         int POST_INC = 25;
                                    !         int POST_DEC = 26;
                                    !         int METHOD_CALL = 27;
                                    !         int EXPR = 28;
                                    !         int ARRAY_INIT = 29;
                                    !         int IMPORT = 30;
                                    !         int UNARY_MINUS = 31;
                                    !         int UNARY_PLUS = 32;
                                    !         int CASE_GROUP = 33;
                                    !         int ELIST = 34;
                                    !         int FOR_INIT = 35;
                                    !         int FOR_CONDITION = 36;
                                    !         int FOR_ITERATOR = 37;
                                    !         int EMPTY_STAT = 38;
                                    !         int FINAL = 39;
                                    !         int ABSTRACT = 40;
                                    !         int STRICTFP = 41;
                                    !         int SUPER_CTOR_CALL = 42;
                                    !         int CTOR_CALL = 43;
                                    !         int LBRACK = 44;
                                    !         int RBRACK = 45;
                                    !         int LITERAL_void = 46;
                                    !         int LITERAL_boolean = 47;
                                    !         int LITERAL_byte = 48;
                                    !         int LITERAL_char = 49;
                                    !         int LITERAL_short = 50;
                                    !         int LITERAL_int = 51;
                                    !         int LITERAL_float = 52;
                                    !         int LITERAL_long = 53;
                                    !         int LITERAL_double = 54;
                                    !         int LITERAL_String = 55;
                                    !         int IDENT = 56;
                                    !         int DOT = 57;
                                    !         int QUESTION = 58;
                                    !         int COLON = 59;
                                    !         int LOR = 60;
                                    !         int LAND = 61;
                                    !         int BOR = 62;
                                    !         int BXOR = 63;
                                    !         int BAND = 64;
                                    !         int NOT_EQUAL = 65;
                                    !         int EQUAL = 66;
                                    !         int LT = 67;
                                    !         int GT = 68;
                                    !         int LE = 69;
                                    !         int GE = 70;
                                    !         int SL = 71;
                                    !         int SR = 72;
                                    !         int BSR = 73;
                                    !         int PLUS = 74;
                                    !         int MINUS = 75;
                                    !         int STAR = 76;
                                    !         int DIV = 77;
                                    !         int MOD = 78;
                                    !         int BNOT = 79;
                                    !         int LNOT = 80;
                                    !         int LPAREN = 81;
                                    !         int RPAREN = 82;
                                    !         int LITERAL_true = 83;
                                    !         int LITERAL_false = 84;
                                    !         int LITERAL_null = 85;
                                    !         int NUM_INT = 86;
                                    !         int CHAR_LITERAL = 87;
                                    !         int STRING_LITERAL = 88;
                                    !         int NUM_FLOAT = 89;
                                    !         int NUM_LONG = 90;
                                    !         int NUM_DOUBLE = 91;
                                    !         int LCURLY = 92;
                                    !         int RCURLY = 93;
                                    !         int COMMA = 94;
                                    !         int ASSIGN = 95;
                                    !         int DIV_ASSIGN = 96;
                                    !         int PLUS_ASSIGN = 97;
                                    !         int INC = 98;
                                    !         int MINUS_ASSIGN = 99;
                                    !         int DEC = 100;
                                    !         int STAR_ASSIGN = 101;
                                    !         int MOD_ASSIGN = 102;
                                    !         int SR_ASSIGN = 103;
                                    !         int BSR_ASSIGN = 104;
                                    !         int SL_ASSIGN = 105;
                                    !         int BXOR_ASSIGN = 106;
                                    !         int BOR_ASSIGN = 107;
                                    !         int BAND_ASSIGN = 108;
                                    !         int SEMI = 109;
                                    !         int WS = 110;
                                    !         int SL_COMMIT = 111;
                                    !         int ML_COMMENT = 112;
                                    !         int ESC = 113;
                                    !         int HEX_DIGIT = 114;
                                    !         int VOCAB = 115;
                                    !         int EXPONENT = 116;
                                    !         int FLOAT_SUFFIX = 117;
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,296 ****
                                    ! /* gnu.classpath.tools.FileSystemClassLoader
                                    !    Copyright (C) 2004 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools;
                                    ! 
                                    ! import java.io.File;
                                    ! import java.io.FileInputStream;
                                    ! import java.io.FileNotFoundException;
                                    ! import java.io.InputStream;
                                    ! import java.io.IOException;
                                    ! import java.io.StreamTokenizer;
                                    ! import java.io.StringReader;
                                    ! 
                                    ! import java.net.MalformedURLException;
                                    ! import java.net.URL;
                                    ! 
                                    ! import java.util.LinkedList;
                                    ! import java.util.List;
                                    ! import java.util.ArrayList;
                                    ! import java.util.StringTokenizer;
                                    ! 
                                    ! import java.util.jar.JarEntry;
                                    ! import java.util.jar.JarFile;
                                    ! import java.util.jar.Manifest;
                                    ! import java.util.jar.Attributes;
                                    ! 
                                    ! /**
                                    !  *  A <code>ClassLoader</code> implementation which looks for classes
                                    !  *  on the local filesystem given a standard search path.
                                    !  */
                                    ! public class FileSystemClassLoader extends ClassLoader {
                                    ! 
                                    !    private File[] pathComponents;
                                    ! 
                                    !    /**
                                    !     *  Initialize the class loader with a normal path string. The path
                                    !     *  string should contain path components separated by {@link
                                    !     *  File.pathSeparator}. Each path component should either denote a
                                    !     *  directory or a .jar or .zip file.
                                    !     */
                                    !    public FileSystemClassLoader(String path)
                                    !    {
                                    !       List components = new ArrayList();
                                    !       for (StringTokenizer st = new StringTokenizer(path, File.pathSeparator); st.hasMoreTokens(); ) {
                                    !          File pathComponent = new File(st.nextToken());
                                    !          components.add(pathComponent);
                                    !          if (pathComponent.exists() && !pathComponent.isDirectory()) {
                                    !             List subComponents = tryGetJarFileClassPathComponents(pathComponent);
                                    !             if (null != subComponents) {
                                    !                components.addAll(subComponents);
                                    !             }
                                    !          }
                                    !       }
                                    !       File[] componentArray = new File[components.size()];
                                    !       this.pathComponents = (File[])components.toArray(componentArray);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Initialize the class loader with an array of path
                                    !     *  components. Each path component should either denote a
                                    !     *  directory or a .jar or .zip file.
                                    !     */
                                    !    public FileSystemClassLoader(File[] pathComponents)
                                    !    {
                                    !       this.pathComponents = pathComponents;
                                    !       for (int i = 0; i < pathComponents.length; ++i) {
                                    !          if (!pathComponents[i].exists()) {
                                    !             System.err.println("WARNING: Path component '" + pathComponents[i] + "' not found.");
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    public Class loadClass(String name)
                                    !       throws ClassNotFoundException {
                                    ! 
                                    !       return super.loadClass(name);
                                    !    }
                                    ! 
                                    !    public Class findClass(String name)
                                    !       throws ClassNotFoundException {
                                    ! 
                                    !       byte[] b = loadClassData(name);
                                    !       return defineClass(name, b, 0, b.length);
                                    !    }
                                    ! 
                                    !    public URL findResource(String name)
                                    !    {
                                    !       StreamInfo streamInfo = getResourceStream(name);
                                    !       if (null == streamInfo) {
                                    !          return super.findResource(name);
                                    !       }
                                    !       else {
                                    !          try {
                                    !             return streamInfo.getURL();
                                    !          }
                                    !          catch (MalformedURLException e) {
                                    !             System.err.println("WARNING: In FileSystemClassLoader: could not derive URL from file or jar entry: " + e.toString());
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    private byte[] readFromStream(InputStream in, long size) 
                                    !       throws IOException
                                    !    {
                                    !       byte[] result = new byte[(int)size];
                                    !       int nread = 0;
                                    !       int offset = 0;
                                    !       while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
                                    !          offset += nread;
                                    !       }
                                    !       in.close();
                                    !       return result;
                                    !    }
                                    ! 
                                    !    private byte[] readFromStream(StreamInfo streamInfo)
                                    !       throws IOException
                                    !    {
                                    !       InputStream in = streamInfo.openStream();
                                    !       long size = streamInfo.getSize();
                                    ! 
                                    !       byte[] result = new byte[(int)size];
                                    !       int nread = 0;
                                    !       int offset = 0;
                                    !       while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
                                    !          offset += nread;
                                    !       }
                                    !       in.close();
                                    !       return result;
                                    !    }
                                    ! 
                                    !    private static interface StreamInfo
                                    !    {
                                    !       public InputStream openStream()
                                    !          throws IOException;
                                    !       public long getSize();
                                    !       public URL getURL()
                                    !          throws MalformedURLException;
                                    !    }
                                    ! 
                                    !    private static class FileStreamInfo
                                    !       implements StreamInfo
                                    !    {
                                    !       File file;
                                    ! 
                                    !       FileStreamInfo(File file)
                                    !       {
                                    !          this.file = file;
                                    !       }
                                    ! 
                                    !       public InputStream openStream()
                                    !          throws IOException
                                    !       {
                                    !          return new FileInputStream(file);
                                    !       }
                                    ! 
                                    !       public long getSize()
                                    !       {
                                    !          return file.length();
                                    !       }
                                    ! 
                                    !       public URL getURL()
                                    !          throws MalformedURLException
                                    !       {
                                    !          return file.toURL();
                                    !       }
                                    !    }
                                    ! 
                                    !    private static class JarStreamInfo
                                    !       implements StreamInfo
                                    !    {
                                    !       private File file;
                                    !       private JarFile jarFile;
                                    !       private JarEntry jarEntry;
                                    ! 
                                    !       JarStreamInfo(File file, JarFile jarFile, JarEntry jarEntry)
                                    !       {
                                    !          this.file = file;
                                    !          this.jarFile = jarFile;
                                    !          this.jarEntry = jarEntry;
                                    !       }
                                    ! 
                                    !       public InputStream openStream()
                                    !          throws IOException
                                    !       {
                                    !          return jarFile.getInputStream(jarEntry);
                                    !       }
                                    ! 
                                    !       public long getSize()
                                    !       {
                                    !          return jarEntry.getSize();
                                    !       }
                                    ! 
                                    !       public URL getURL()
                                    !          throws MalformedURLException
                                    !       {
                                    !          String urlString = "jar:" + file.toURL() + "!/" + jarEntry.getName();
                                    !          return new URL(urlString);
                                    !       }
                                    !    }
                                    !    
                                    !    private StreamInfo getResourceStream(String path)
                                    !    {
                                    !       for (int i = 0; i < pathComponents.length; ++i) {
                                    !          try {
                                    !             File parent = pathComponents[i];
                                    !             if (parent.isDirectory()) {
                                    !                File file = new File(parent, path);
                                    !                if (file.exists()) {
                                    !                   return new FileStreamInfo(file);
                                    !                }
                                    !             }
                                    !             else {
                                    !                JarFile jarFile = new JarFile(parent, false, JarFile.OPEN_READ);
                                    !                JarEntry jarEntry = jarFile.getJarEntry(path);
                                    !                if (null != jarEntry) {
                                    !                   return new JarStreamInfo(parent, jarFile, jarEntry);
                                    !                }
                                    !             }
                                    !          }
                                    !          catch (IOException ignore) {
                                    !          }
                                    !       }
                                    !       return null;
                                    !    }
                                    ! 
                                    !    private byte[] loadClassData(String className) 
                                    !       throws ClassNotFoundException 
                                    !    {
                                    !       String classFileName = className.replace('.', File.separatorChar) + ".class";
                                    !       StreamInfo streamInfo = getResourceStream(classFileName);
                                    ! 
                                    !       try {
                                    !          if (null != streamInfo) {
                                    !             return readFromStream(streamInfo);
                                    !          }
                                    !       }
                                    !       catch (IOException ignore) {
                                    !       }
                                    ! 
                                    !       throw new ClassNotFoundException(className);
                                    !    }
                                    ! 
                                    !    private static List tryGetJarFileClassPathComponents(File file)
                                    !    {
                                    !       try {
                                    !          JarFile jarFile = new JarFile(file, false, JarFile.OPEN_READ);
                                    !          Manifest manifest = jarFile.getManifest();
                                    !          if (null != manifest) {
                                    !             Attributes mainAttributes = manifest.getMainAttributes();
                                    !             if (null != mainAttributes) {
                                    !                String classPath = mainAttributes.getValue(Attributes.Name.CLASS_PATH);
                                    !                if (null != classPath) {
                                    !                   List result = new LinkedList();
                                    !                   StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(classPath));
                                    !                   tokenizer.resetSyntax();
                                    !                   tokenizer.wordChars(0, Integer.MAX_VALUE);
                                    !                   tokenizer.whitespaceChars(9, 9);   // tab
                                    !                   tokenizer.whitespaceChars(10, 10); // lf
                                    !                   tokenizer.whitespaceChars(13, 13); // cr
                                    !                   tokenizer.whitespaceChars(32, 32); // space
                                    !                   tokenizer.quoteChar('"');
                                    !                   int token;
                                    !                   while ((token = tokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
                                    !                      if (StreamTokenizer.TT_WORD == token) {
                                    !                         result.add(new File(file.getParentFile(), tokenizer.sval));
                                    !                      }
                                    !                   }
                                    !                   return result;
                                    !                }
                                    !             }
                                    !          }
                                    !       }
                                    !       catch (IOException ignore) {
                                    !       }
                                    !       return null;
                                    !    }
                                    ! }
                                    ! 
                                    --- 1,312 ----
                                    ! /* gnu.classpath.tools.FileSystemClassLoader
                                    !    Copyright (C) 2004 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools;
                                    ! 
                                    ! import java.io.File;
                                    ! import java.io.FileInputStream;
                                    ! import java.io.FileNotFoundException;
                                    ! import java.io.InputStream;
                                    ! import java.io.IOException;
                                    ! import java.io.StreamTokenizer;
                                    ! import java.io.StringReader;
                                    ! 
                                    ! import java.net.MalformedURLException;
                                    ! import java.net.URL;
                                    ! 
                                    ! import java.util.LinkedList;
                                    ! import java.util.List;
                                    ! import java.util.ArrayList;
                                    ! import java.util.StringTokenizer;
                                    ! 
                                    ! import java.util.jar.JarEntry;
                                    ! import java.util.jar.JarFile;
                                    ! import java.util.jar.Manifest;
                                    ! import java.util.jar.Attributes;
                                    ! 
                                    ! /**
                                    !  *  A <code>ClassLoader</code> implementation which looks for classes
                                    !  *  on the local filesystem given a standard search path.
                                    !  */
                                    ! public class FileSystemClassLoader extends ClassLoader {
                                    ! 
                                    !    private File[] pathComponents;
                                    ! 
                                    !    /**
                                    !     *  Initialize the class loader with a normal path string. The path
                                    !     *  string should contain path components separated by {@link
                                    !     *  File.pathSeparator}. Each path component should either denote a
                                    !     *  directory or a .jar or .zip file.
                                    !     */
                                    !    public FileSystemClassLoader(String path)
                                    !    {
                                    !       List components = new ArrayList();
                                    !       for (StringTokenizer st = new StringTokenizer(path, File.pathSeparator); st.hasMoreTokens(); ) {
                                    !          File pathComponent = new File(st.nextToken());
                                    !          components.add(pathComponent);
                                    !          if (pathComponent.exists() && !pathComponent.isDirectory()) {
                                    !             List subComponents = tryGetJarFileClassPathComponents(pathComponent);
                                    !             if (null != subComponents) {
                                    !                components.addAll(subComponents);
                                    !             }
                                    !          }
                                    !       }
                                    !       File[] componentArray = new File[components.size()];
                                    !       this.pathComponents = (File[])components.toArray(componentArray);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Initialize the class loader with an array of path
                                    !     *  components. Each path component should either denote a
                                    !     *  directory or a .jar or .zip file.
                                    !     */
                                    !    public FileSystemClassLoader(File[] pathComponents)
                                    !    {
                                    !       this.pathComponents = pathComponents;
                                    !       for (int i = 0; i < pathComponents.length; ++i) {
                                    !          if (!pathComponents[i].exists()) {
                                    !             System.err.println("WARNING: Path component '" + pathComponents[i] + "' not found.");
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    public Class loadClass(String name)
                                    !       throws ClassNotFoundException {
                                    ! 
                                    !       return super.loadClass(name);
                                    !    }
                                    ! 
                                    !    public Class findClass(String name)
                                    !       throws ClassNotFoundException {
                                    ! 
                                    !       byte[] b = loadClassData(name);
                                    !       return defineClass(name, b, 0, b.length);
                                    !    }
                                    ! 
                                    !    public URL findResource(String name)
                                    !    {
                                    !       StreamInfo streamInfo = getResourceStream(name);
                                    !       if (null == streamInfo) {
                                    !          return super.findResource(name);
                                    !       }
                                    !       else {
                                    !          try {
                                    !             return streamInfo.getURL();
                                    !          }
                                    !          catch (MalformedURLException e) {
                                    !             System.err.println("WARNING: In FileSystemClassLoader: could not derive URL from file or jar entry: " + e.toString());
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    private byte[] readFromStream(InputStream in, long size)
                                    !       throws IOException
                                    !    {
                                    !       byte[] result = new byte[(int)size];
                                    !       int nread = 0;
                                    !       int offset = 0;
                                    !       while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
                                    !          offset += nread;
                                    !       }
                                    !       in.close();
                                    !       return result;
                                    !    }
                                    ! 
                                    !    private byte[] readFromStream(StreamInfo streamInfo)
                                    !       throws IOException
                                    !    {
                                    !       InputStream in = streamInfo.openStream();
                                    !       long size = streamInfo.getSize();
                                    ! 
                                    !       byte[] result = new byte[(int)size];
                                    !       int nread = 0;
                                    !       int offset = 0;
                                    !       while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
                                    !          offset += nread;
                                    !       }
                                    !       in.close();
                                    !       return result;
                                    !    }
                                    ! 
                                    !    private static interface StreamInfo
                                    !    {
                                    !       public InputStream openStream()
                                    !          throws IOException;
                                    !       public long getSize();
                                    !       public URL getURL()
                                    !          throws MalformedURLException;
                                    !    }
                                    ! 
                                    !    private static class FileStreamInfo
                                    !       implements StreamInfo
                                    !    {
                                    !       File file;
                                    ! 
                                    !       FileStreamInfo(File file)
                                    !       {
                                    !          this.file = file;
                                    !       }
                                    ! 
                                    !       public InputStream openStream()
                                    !          throws IOException
                                    !       {
                                    !          return new FileInputStream(file);
                                    !       }
                                    ! 
                                    !       public long getSize()
                                    !       {
                                    !          return file.length();
                                    !       }
                                    ! 
                                    !       public URL getURL()
                                    !          throws MalformedURLException
                                    !       {
                                    !          return file.toURL();
                                    !       }
                                    !    }
                                    ! 
                                    !    private static class JarStreamInfo
                                    !       implements StreamInfo
                                    !    {
                                    !       private File file;
                                    !       private JarFile jarFile;
                                    !       private JarEntry jarEntry;
                                    ! 
                                    !       JarStreamInfo(File file, JarFile jarFile, JarEntry jarEntry)
                                    !       {
                                    !          this.file = file;
                                    !          this.jarFile = jarFile;
                                    !          this.jarEntry = jarEntry;
                                    !       }
                                    ! 
                                    !       public InputStream openStream()
                                    !          throws IOException
                                    !       {
                                    !          return jarFile.getInputStream(jarEntry);
                                    !       }
                                    ! 
                                    !       public long getSize()
                                    !       {
                                    !          return jarEntry.getSize();
                                    !       }
                                    ! 
                                    !       public URL getURL()
                                    !          throws MalformedURLException
                                    !       {
                                    !          String urlString = "jar:" + file.toURL() + "!/" + jarEntry.getName();
                                    !          return new URL(urlString);
                                    !       }
                                    !    }
                                    ! 
                                    !    private StreamInfo getResourceStream(String path)
                                    !    {
                                    !       for (int i = 0; i < pathComponents.length; ++i) {
                                    !          try {
                                    !             File parent = pathComponents[i];
                                    !             if (parent.isDirectory()) {
                                    !                File file = new File(parent, path);
                                    !                if (file.exists()) {
                                    !                   return new FileStreamInfo(file);
                                    !                }
                                    !             }
                                    !             else {
                                    !                JarFile jarFile = new JarFile(parent, false, JarFile.OPEN_READ);
                                    !                JarEntry jarEntry = jarFile.getJarEntry(path);
                                    !                if (null != jarEntry) {
                                    !                   return new JarStreamInfo(parent, jarFile, jarEntry);
                                    !                }
                                    !             }
                                    !          }
                                    !          catch (IOException ignore) {
                                    !          }
                                    !       }
                                    !       return null;
                                    !    }
                                    ! 
                                    !    private byte[] loadClassData(String className)
                                    !       throws ClassNotFoundException
                                    !    {
                                    !       String classFileName = className.replace('.', File.separatorChar) + ".class";
                                    !       StreamInfo streamInfo = getResourceStream(classFileName);
                                    ! 
                                    !       try {
                                    !          if (null != streamInfo) {
                                    !             return readFromStream(streamInfo);
                                    !          }
                                    !       }
                                    !       catch (IOException ignore) {
                                    !       }
                                    ! 
                                    !       throw new ClassNotFoundException(className);
                                    !    }
                                    ! 
                                    !    private static List tryGetJarFileClassPathComponents(File file)
                                    !    {
                                    !       try {
                                    !          JarFile jarFile = new JarFile(file, false, JarFile.OPEN_READ);
                                    !          Manifest manifest = jarFile.getManifest();
                                    !          if (null != manifest) {
                                    !             Attributes mainAttributes = manifest.getMainAttributes();
                                    !             if (null != mainAttributes) {
                                    !                String classPath = mainAttributes.getValue(Attributes.Name.CLASS_PATH);
                                    !                if (null != classPath) {
                                    !                   List result = new LinkedList();
                                    !                   StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(classPath));
                                    !                   tokenizer.resetSyntax();
                                    !                   tokenizer.wordChars(0, Integer.MAX_VALUE);
                                    !                   tokenizer.whitespaceChars(9, 9);   // tab
                                    !                   tokenizer.whitespaceChars(10, 10); // lf
                                    !                   tokenizer.whitespaceChars(13, 13); // cr
                                    !                   tokenizer.whitespaceChars(32, 32); // space
                                    !                   tokenizer.quoteChar('"');
                                    !                   int token;
                                    !                   while ((token = tokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
                                    !                      if (StreamTokenizer.TT_WORD == token) {
                                    !                         result.add(new File(file.getParentFile(), tokenizer.sval));
                                    !                      }
                                    !                   }
                                    !                   return result;
                                    !                }
                                    !             }
                                    !          }
                                    !       }
                                    !       catch (IOException ignore) {
                                    !       }
                                    !       return null;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    *************** public class IOToolkit
                                    *** 73,79 ****
                                          *  @param out the Writer to which to write character data
                                          */
                                         public static void copyStream(Reader in, Writer out)
                                    !       throws IOException 
                                         {
                                            char[] buf = new char[256];
                                            int nread;
                                    --- 90,96 ----
                                          *  @param out the Writer to which to write character data
                                          */
                                         public static void copyStream(Reader in, Writer out)
                                    !       throws IOException
                                         {
                                            char[] buf = new char[256];
                                            int nread;
                                    *************** public class IOToolkit
                                    *** 97,106 ****
                                          *  subdirectory of the source directory which should be excluded
                                          *  from recursive copying.
                                          */
                                    !    public static void copyDirectory(File sourceDir, File targetDir, 
                                                                          boolean recursive,
                                    !                                     Set excludeDirs) 
                                    !       throws IOException 
                                         {
                                            if (!targetDir.exists() && !targetDir.mkdirs()) {
                                               throw new IOException("Cannot create directory " + targetDir);
                                    --- 114,123 ----
                                          *  subdirectory of the source directory which should be excluded
                                          *  from recursive copying.
                                          */
                                    !    public static void copyDirectory(File sourceDir, File targetDir,
                                                                          boolean recursive,
                                    !                                     Set excludeDirs)
                                    !       throws IOException
                                         {
                                            if (!targetDir.exists() && !targetDir.mkdirs()) {
                                               throw new IOException("Cannot create directory " + targetDir);
                                    *************** public class IOToolkit
                                    *** 109,117 ****
                                            File[] sourceFiles = sourceDir.listFiles();
                                            for (int i=0; i<sourceFiles.length; ++i) {
                                               if (sourceFiles[i].isDirectory()) {
                                    !             if (recursive && (null == excludeDirs 
                                                                    || !excludeDirs.contains(sourceFiles[i].getName()))) {
                                    !                File targetSubDir = new File(targetDir, 
                                                                                  sourceFiles[i].getName());
                                                     if (targetSubDir.exists() || targetSubDir.mkdir()) {
                                                        copyDirectory(sourceFiles[i], targetSubDir, recursive, null);
                                    --- 126,134 ----
                                            File[] sourceFiles = sourceDir.listFiles();
                                            for (int i=0; i<sourceFiles.length; ++i) {
                                               if (sourceFiles[i].isDirectory()) {
                                    !             if (recursive && (null == excludeDirs
                                                                    || !excludeDirs.contains(sourceFiles[i].getName()))) {
                                    !                File targetSubDir = new File(targetDir,
                                                                                  sourceFiles[i].getName());
                                                     if (targetSubDir.exists() || targetSubDir.mkdir()) {
                                                        copyDirectory(sourceFiles[i], targetSubDir, recursive, null);
                                    *************** public class IOToolkit
                                    *** 134,141 ****
                                          *  @param sourceFile  specifies the file to copy
                                          *  @param targetFile  specifies the file to create
                                          */
                                    !    public static void copyFile(File sourceFile, File targetFile) 
                                    !       throws IOException 
                                         {
                                            InputStream in = new FileInputStream(sourceFile);
                                            OutputStream out = new FileOutputStream(targetFile);
                                    --- 151,158 ----
                                          *  @param sourceFile  specifies the file to copy
                                          *  @param targetFile  specifies the file to create
                                          */
                                    !    public static void copyFile(File sourceFile, File targetFile)
                                    !       throws IOException
                                         {
                                            InputStream in = new FileInputStream(sourceFile);
                                            OutputStream out = new FileOutputStream(targetFile);
                                    *************** public class IOToolkit
                                    *** 163,169 ****
                                            char[] chunk = new char[readBufferSize];
                                            int nread;
                                            while ((nread=reader.read(chunk))>=0) {
                                    ! 	 writer.write(chunk,0,nread);
                                            }
                                            StringBuffer buffer = writer.getBuffer();
                                            char[] result = new char[buffer.length()];
                                    --- 180,186 ----
                                            char[] chunk = new char[readBufferSize];
                                            int nread;
                                            while ((nread=reader.read(chunk))>=0) {
                                    !          writer.write(chunk,0,nread);
                                            }
                                            StringBuffer buffer = writer.getBuffer();
                                            char[] result = new char[buffer.length()];
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    *************** import java.util.Set;
                                    *** 64,70 ****
                                       *
                                       *  @author Julian Scheid
                                       */
                                    ! public class NotifyingInputStreamReader 
                                         extends Reader
                                      {
                                         /**
                                    --- 81,87 ----
                                       *
                                       *  @author Julian Scheid
                                       */
                                    ! public class NotifyingInputStreamReader
                                         extends Reader
                                      {
                                         /**
                                    *************** public class NotifyingInputStreamReader 
                                    *** 104,110 ****
                                          *  read().
                                          */
                                         private CharBuffer charBuffer;
                                    !    
                                         /**
                                          *  This is the primitive byte array wrapped in byteBuffer for
                                          *  passing to to InputStream.read().
                                    --- 121,127 ----
                                          *  read().
                                          */
                                         private CharBuffer charBuffer;
                                    ! 
                                         /**
                                          *  This is the primitive byte array wrapped in byteBuffer for
                                          *  passing to to InputStream.read().
                                    *************** public class NotifyingInputStreamReader 
                                    *** 282,288 ****
                                                        byteBuffer.get(readBuffer, 0, nRemainingBytes);
                                                     }
                                                     byteBuffer.rewind();
                                    !                int nread = in.read(readBuffer, nRemainingBytes, 
                                                                         readBuffer.length - nRemainingBytes);
                                                     if (nread < 0) {
                                                        allInputConsumed = true;
                                    --- 299,305 ----
                                                        byteBuffer.get(readBuffer, 0, nRemainingBytes);
                                                     }
                                                     byteBuffer.rewind();
                                    !                int nread = in.read(readBuffer, nRemainingBytes,
                                                                         readBuffer.length - nRemainingBytes);
                                                     if (nread < 0) {
                                                        allInputConsumed = true;
                                    *************** public class NotifyingInputStreamReader 
                                    *** 336,342 ****
                                               listener.malformedInputEncountered(event);
                                            }
                                         }
                                    !    
                                         public int read(char[] cbuf, int offset, int length)
                                            throws IOException
                                         {
                                    --- 353,359 ----
                                               listener.malformedInputEncountered(event);
                                            }
                                         }
                                    ! 
                                         public int read(char[] cbuf, int offset, int length)
                                            throws IOException
                                         {
                                    *************** public class NotifyingInputStreamReader 
                                    *** 347,353 ****
                                               int nread = 0;
                                               while (nread < length && !flushed) {
                                                  while (charBuffer.hasRemaining() && nread < length) {
                                    !                int copyLen = Math.min(length - nread, 
                                                                            charBuffer.remaining());
                                                     charBuffer.get(cbuf, offset + nread, copyLen);
                                                     nread += copyLen;
                                    --- 364,370 ----
                                               int nread = 0;
                                               while (nread < length && !flushed) {
                                                  while (charBuffer.hasRemaining() && nread < length) {
                                    !                int copyLen = Math.min(length - nread,
                                                                            charBuffer.remaining());
                                                     charBuffer.get(cbuf, offset + nread, copyLen);
                                                     nread += copyLen;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java	Fri Jun  9 16:07:07 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.PropertyPermission;
                                    *** 46,52 ****
                                      class AppletSecurityManager extends SecurityManager
                                      {
                                        private boolean plugin;
                                    !   
                                        AppletSecurityManager(boolean plugin)
                                        {
                                          this.plugin = plugin;
                                    --- 46,52 ----
                                      class AppletSecurityManager extends SecurityManager
                                      {
                                        private boolean plugin;
                                    ! 
                                        AppletSecurityManager(boolean plugin)
                                        {
                                          this.plugin = plugin;
                                    *************** class AppletSecurityManager extends Secu
                                    *** 63,81 ****
                                          // to be able to execute "addr2line" to get proper stack traces.
                                          if (permission instanceof FilePermission)
                                            return;
                                    !     
                                          // FIXME: we need to restrict this.
                                          if (permission instanceof SecurityPermission)
                                            return;
                                    !     
                                          // FIXME: is this really needed ?
                                          if (permission instanceof PropertyPermission)
                                            return;
                                    !     
                                          // Needed to allow to access AWT event queue.
                                          if (permission.getName().equals("accessEventQueue"))
                                            return;
                                    !     
                                          // Needed to create a class loader for each codebase.
                                          if (permission.getName().equals("createClassLoader"))
                                            return;
                                    --- 63,81 ----
                                          // to be able to execute "addr2line" to get proper stack traces.
                                          if (permission instanceof FilePermission)
                                            return;
                                    ! 
                                          // FIXME: we need to restrict this.
                                          if (permission instanceof SecurityPermission)
                                            return;
                                    ! 
                                          // FIXME: is this really needed ?
                                          if (permission instanceof PropertyPermission)
                                            return;
                                    ! 
                                          // Needed to allow to access AWT event queue.
                                          if (permission.getName().equals("accessEventQueue"))
                                            return;
                                    ! 
                                          // Needed to create a class loader for each codebase.
                                          if (permission.getName().equals("createClassLoader"))
                                            return;
                                    *************** class AppletSecurityManager extends Secu
                                    *** 83,94 ****
                                          // FIXME: we need to allow access to codebase here.
                                      
                                          if (permission instanceof SocketPermission      // for net access
                                    ! 	|| permission instanceof RuntimePermission) // for checkWrite(FileDescriptor)
                                            return;
                                      
                                          if (! plugin && permission.getName().equals("exitVM"))
                                            return;
                                    !     
                                          // Reject all other permissions.
                                          throw new SecurityException();
                                        }
                                    --- 83,94 ----
                                          // FIXME: we need to allow access to codebase here.
                                      
                                          if (permission instanceof SocketPermission      // for net access
                                    !         || permission instanceof RuntimePermission) // for checkWrite(FileDescriptor)
                                            return;
                                      
                                          if (! plugin && permission.getName().equals("exitVM"))
                                            return;
                                    ! 
                                          // Reject all other permissions.
                                          throw new SecurityException();
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java	Fri Jun  9 16:07:07 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletTag.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Locale;
                                    *** 62,98 ****
                                       */
                                      class AppletTag
                                      {
                                    !   
                                        /**
                                         * The document base of this applet.
                                         */
                                        URL documentbase;
                                    !   
                                        /**
                                    !    * name of applet tag. 
                                         */
                                        String name = "";
                                    !   
                                        /**
                                         * code of applet tag.
                                         */
                                        String code = "";
                                    !   
                                        /**
                                         * codebase of applet tag.
                                         */
                                        String codebase = "";
                                    !   
                                        /**
                                         * The archives.
                                         */
                                        ArrayList archives = new ArrayList();
                                    !   
                                        /**
                                         * The parameters.
                                         */
                                        HashMap parameters = new HashMap();
                                    !     
                                        /**
                                         * The screen size.
                                         */
                                    --- 62,98 ----
                                       */
                                      class AppletTag
                                      {
                                    ! 
                                        /**
                                         * The document base of this applet.
                                         */
                                        URL documentbase;
                                    ! 
                                        /**
                                    !    * name of applet tag.
                                         */
                                        String name = "";
                                    ! 
                                        /**
                                         * code of applet tag.
                                         */
                                        String code = "";
                                    ! 
                                        /**
                                         * codebase of applet tag.
                                         */
                                        String codebase = "";
                                    ! 
                                        /**
                                         * The archives.
                                         */
                                        ArrayList archives = new ArrayList();
                                    ! 
                                        /**
                                         * The parameters.
                                         */
                                        HashMap parameters = new HashMap();
                                    ! 
                                        /**
                                         * The screen size.
                                         */
                                    *************** class AppletTag
                                    *** 105,118 ****
                                        {
                                          // Do nothing.
                                        }
                                    !   
                                        /**
                                         * Constructs an AppletTag and parses the given applet element.
                                    !    * 
                                         * @param appElement - the Applet element to parse.
                                         */
                                        AppletTag(DomHTMLAppletElement appElement)
                                    !   {    
                                          name = appElement.getName();
                                          parameters.put("name", name);
                                      
                                    --- 105,118 ----
                                        {
                                          // Do nothing.
                                        }
                                    ! 
                                        /**
                                         * Constructs an AppletTag and parses the given applet element.
                                    !    *
                                         * @param appElement - the Applet element to parse.
                                         */
                                        AppletTag(DomHTMLAppletElement appElement)
                                    !   {
                                          name = appElement.getName();
                                          parameters.put("name", name);
                                      
                                    *************** class AppletTag
                                    *** 123,131 ****
                                          parameters.put("hspace", Integer.toString(appElement.getHspace()));
                                          parameters.put("vspace", Integer.toString(appElement.getVspace()));
                                          parameters.put("width", appElement.getWidth());
                                    !     
                                          TagParser.parseParams(appElement, this);
                                    !     
                                          if (code.equals(""))
                                            {
                                              code = appElement.getCode();
                                    --- 123,131 ----
                                          parameters.put("hspace", Integer.toString(appElement.getHspace()));
                                          parameters.put("vspace", Integer.toString(appElement.getVspace()));
                                          parameters.put("width", appElement.getWidth());
                                    ! 
                                          TagParser.parseParams(appElement, this);
                                    ! 
                                          if (code.equals(""))
                                            {
                                              code = appElement.getCode();
                                    *************** class AppletTag
                                    *** 140,165 ****
                                              if (codebase.equals(""))
                                                codebase = appElement.getSrc();
                                            }
                                    !     
                                          if (archives.size() == 0)
                                            {
                                              String arcs = "";
                                              String arch = appElement.getArchive();
                                    !         
                                              if (code.indexOf(".") < 0)
                                                arcs = code + ".jar";
                                    !         
                                              if (!arch.equals(""))
                                                arcs += "," + arch;
                                    !         
                                              if (!arcs.equals(""))
                                                archives = TagParser.parseArchives(arcs, this);
                                            }
                                        }
                                    !   
                                        /**
                                         * Constructs an AppletTag and parses the given embed element.
                                    !    * 
                                         * @param embElement - the Embed element to parse.
                                         */
                                        AppletTag(DomHTMLEmbedElement embElement)
                                    --- 140,165 ----
                                              if (codebase.equals(""))
                                                codebase = appElement.getSrc();
                                            }
                                    ! 
                                          if (archives.size() == 0)
                                            {
                                              String arcs = "";
                                              String arch = appElement.getArchive();
                                    ! 
                                              if (code.indexOf(".") < 0)
                                                arcs = code + ".jar";
                                    ! 
                                              if (!arch.equals(""))
                                                arcs += "," + arch;
                                    ! 
                                              if (!arcs.equals(""))
                                                archives = TagParser.parseArchives(arcs, this);
                                            }
                                        }
                                    ! 
                                        /**
                                         * Constructs an AppletTag and parses the given embed element.
                                    !    *
                                         * @param embElement - the Embed element to parse.
                                         */
                                        AppletTag(DomHTMLEmbedElement embElement)
                                    *************** class AppletTag
                                    *** 172,181 ****
                                          // should be interpreted as a parameter. For example if "java_code"
                                          // and "code" attributes are present in the EMBED tag then the
                                          // "code" attribute is interpreted as a parameter.
                                    !     
                                          name = embElement.getName();
                                          parameters.put("name", name);
                                    !     
                                          String jobj = embElement.getJavaObject();
                                          if (!jobj.equals(""))
                                            parameters.put("java_object", jobj);
                                    --- 172,181 ----
                                          // should be interpreted as a parameter. For example if "java_code"
                                          // and "code" attributes are present in the EMBED tag then the
                                          // "code" attribute is interpreted as a parameter.
                                    ! 
                                          name = embElement.getName();
                                          parameters.put("name", name);
                                    ! 
                                          String jobj = embElement.getJavaObject();
                                          if (!jobj.equals(""))
                                            parameters.put("java_object", jobj);
                                    *************** class AppletTag
                                    *** 193,199 ****
                                          parameters.put("type", embElement.getType());
                                          parameters.put("java_type", embElement.getJavaType());
                                          parameters.put("vspace", Integer.toString(embElement.getVspace()));
                                    !     
                                          TagParser.parseParams(embElement, this);
                                      
                                          // Must initialize codebase before archives
                                    --- 193,199 ----
                                          parameters.put("type", embElement.getType());
                                          parameters.put("java_type", embElement.getJavaType());
                                          parameters.put("vspace", Integer.toString(embElement.getVspace()));
                                    ! 
                                          TagParser.parseParams(embElement, this);
                                      
                                          // Must initialize codebase before archives
                                    *************** class AppletTag
                                    *** 212,234 ****
                                              if (!jcode.equals(""))
                                                code = jcode;
                                              else
                                    !           code = embElement.getCode(); 
                                            }
                                    !     
                                          if (archives.size() == 0)
                                            {
                                              String arcs = "";
                                              String jarch = embElement.getJavaArchive();
                                              String arch = embElement.getArchive();
                                    !         
                                              if (code.indexOf(".") < 0)
                                                arcs = code + ".jar";
                                    !         
                                              if (!jarch.equals(""))
                                                arcs += "," + jarch;
                                              else if (!arch.equals(""))
                                                arcs += "," + arch;
                                    !         
                                              if (!arcs.equals(""))
                                                archives = TagParser.parseArchives(arcs, this);
                                            }
                                    --- 212,234 ----
                                              if (!jcode.equals(""))
                                                code = jcode;
                                              else
                                    !           code = embElement.getCode();
                                            }
                                    ! 
                                          if (archives.size() == 0)
                                            {
                                              String arcs = "";
                                              String jarch = embElement.getJavaArchive();
                                              String arch = embElement.getArchive();
                                    ! 
                                              if (code.indexOf(".") < 0)
                                                arcs = code + ".jar";
                                    ! 
                                              if (!jarch.equals(""))
                                                arcs += "," + jarch;
                                              else if (!arch.equals(""))
                                                arcs += "," + arch;
                                    ! 
                                              if (!arcs.equals(""))
                                                archives = TagParser.parseArchives(arcs, this);
                                            }
                                    *************** class AppletTag
                                    *** 236,242 ****
                                      
                                        /**
                                         * Constructs an AppletTag and parses the given object element.
                                    !    * 
                                         * @param objElement - the Object element to parse.
                                         */
                                        AppletTag(DomHTMLObjectElement objElement)
                                    --- 236,242 ----
                                      
                                        /**
                                         * Constructs an AppletTag and parses the given object element.
                                    !    *
                                         * @param objElement - the Object element to parse.
                                         */
                                        AppletTag(DomHTMLObjectElement objElement)
                                    *************** class AppletTag
                                    *** 294,324 ****
                                              if (!jcode.equals(""))
                                                code = jcode;
                                              else
                                    !           code = objElement.getCode(); 
                                            }
                                    !     
                                          if (archives.size() == 0)
                                            {
                                              String arcs = "";
                                              String jarch = objElement.getJavaArchive();
                                              String arch = objElement.getArchive();
                                    !         
                                              if (code.indexOf(".") < 0)
                                                arcs = code + ".jar";
                                    !         
                                              if (!jarch.equals(""))
                                                arcs += "," + jarch;
                                              else if (!arch.equals(""))
                                                arcs += "," + arch;
                                    !         
                                              if (!arcs.equals(""))
                                                archives = TagParser.parseArchives(arcs, this);
                                            }
                                        }
                                    !   
                                        /**
                                         * String representation of the tag.
                                    !    * 
                                         * @return the string representation.
                                         */
                                        public String toString()
                                    --- 294,324 ----
                                              if (!jcode.equals(""))
                                                code = jcode;
                                              else
                                    !           code = objElement.getCode();
                                            }
                                    ! 
                                          if (archives.size() == 0)
                                            {
                                              String arcs = "";
                                              String jarch = objElement.getJavaArchive();
                                              String arch = objElement.getArchive();
                                    ! 
                                              if (code.indexOf(".") < 0)
                                                arcs = code + ".jar";
                                    ! 
                                              if (!jarch.equals(""))
                                                arcs += "," + jarch;
                                              else if (!arch.equals(""))
                                                arcs += "," + arch;
                                    ! 
                                              if (!arcs.equals(""))
                                                archives = TagParser.parseArchives(arcs, this);
                                            }
                                        }
                                    ! 
                                        /**
                                         * String representation of the tag.
                                    !    *
                                         * @return the string representation.
                                         */
                                        public String toString()
                                    *************** class AppletTag
                                    *** 327,336 ****
                                                  + codebase + "\n" + "  archive=" + archives + "\n" + "  parameters="
                                                  + parameters + "\n" + "  documentbase=" + documentbase + "\n");
                                        }
                                    !   
                                        /**
                                         * Returns the size of the applet.
                                    !    * 
                                         * @return the size.
                                         */
                                        Dimension getSize()
                                    --- 327,336 ----
                                                  + codebase + "\n" + "  archive=" + archives + "\n" + "  parameters="
                                                  + parameters + "\n" + "  documentbase=" + documentbase + "\n");
                                        }
                                    ! 
                                        /**
                                         * Returns the size of the applet.
                                    !    *
                                         * @return the size.
                                         */
                                        Dimension getSize()
                                    *************** class AppletTag
                                    *** 340,346 ****
                                          try
                                            {
                                              String widthStr = (String) parameters.get("width");
                                    !         
                                              if (widthStr != null && ! widthStr.equals(""))
                                                {
                                                  if (widthStr.charAt(widthStr.length() - 1) == '%')
                                    --- 340,346 ----
                                          try
                                            {
                                              String widthStr = (String) parameters.get("width");
                                    ! 
                                              if (widthStr != null && ! widthStr.equals(""))
                                                {
                                                  if (widthStr.charAt(widthStr.length() - 1) == '%')
                                    *************** class AppletTag
                                    *** 379,428 ****
                                      
                                          return size;
                                        }
                                    !   
                                        /**
                                         * Gets the code base.
                                    !    *  
                                         * @return the codebase.
                                         */
                                        String getCodeBase()
                                        {
                                          return codebase;
                                        }
                                    !   
                                        /**
                                         * Gets the archive list.
                                    !    *  
                                         * @return the archive list.
                                         */
                                        ArrayList getArchives()
                                        {
                                          return archives;
                                        }
                                    !   
                                        /**
                                         * Gets the code.
                                    !    * 
                                         * @return the code.
                                         */
                                        String getCode()
                                        {
                                          return code;
                                        }
                                    !   
                                        /**
                                         * Gets the document base.
                                    !    *  
                                         * @return the document base.
                                         */
                                        URL getDocumentBase()
                                        {
                                          return documentbase;
                                        }
                                    !   
                                        /**
                                         * Gets the specified parameter.
                                    !    * 
                                         * @param name - the specified parameter.
                                         * @return the parameter.
                                         */
                                    --- 379,428 ----
                                      
                                          return size;
                                        }
                                    ! 
                                        /**
                                         * Gets the code base.
                                    !    *
                                         * @return the codebase.
                                         */
                                        String getCodeBase()
                                        {
                                          return codebase;
                                        }
                                    ! 
                                        /**
                                         * Gets the archive list.
                                    !    *
                                         * @return the archive list.
                                         */
                                        ArrayList getArchives()
                                        {
                                          return archives;
                                        }
                                    ! 
                                        /**
                                         * Gets the code.
                                    !    *
                                         * @return the code.
                                         */
                                        String getCode()
                                        {
                                          return code;
                                        }
                                    ! 
                                        /**
                                         * Gets the document base.
                                    !    *
                                         * @return the document base.
                                         */
                                        URL getDocumentBase()
                                        {
                                          return documentbase;
                                        }
                                    ! 
                                        /**
                                         * Gets the specified parameter.
                                    !    *
                                         * @param name - the specified parameter.
                                         * @return the parameter.
                                         */
                                    *************** class AppletTag
                                    *** 430,446 ****
                                        {
                                          return (String) parameters.get(name.toLowerCase());
                                        }
                                    !   
                                        /**
                                         * Prepends the base to the codebase.
                                    !    * 
                                         * @return the new URL.
                                         */
                                        URL prependCodeBase(String base) throws MalformedURLException
                                        {
                                          if (documentbase == null)
                                            documentbase = TagParser.db;
                                    !         
                                          URL fullcodebase;
                                      
                                          //If no codebase was specified, default to documentbase.
                                    --- 430,446 ----
                                        {
                                          return (String) parameters.get(name.toLowerCase());
                                        }
                                    ! 
                                        /**
                                         * Prepends the base to the codebase.
                                    !    *
                                         * @return the new URL.
                                         */
                                        URL prependCodeBase(String base) throws MalformedURLException
                                        {
                                          if (documentbase == null)
                                            documentbase = TagParser.db;
                                    ! 
                                          URL fullcodebase;
                                      
                                          //If no codebase was specified, default to documentbase.
                                    *************** class AppletTag
                                    *** 470,476 ****
                                            {
                                              // codebase was specified.
                                              URL codebaseURL = new URL(documentbase, codebase);
                                    !         
                                              if ("file".equals(codebaseURL.getProtocol()))
                                                {
                                                  if (new File(codebaseURL.getFile()).isDirectory() && !codebase.endsWith(File.separator))
                                    --- 470,476 ----
                                            {
                                              // codebase was specified.
                                              URL codebaseURL = new URL(documentbase, codebase);
                                    ! 
                                              if ("file".equals(codebaseURL.getProtocol()))
                                                {
                                                  if (new File(codebaseURL.getFile()).isDirectory() && !codebase.endsWith(File.separator))
                                    *************** class AppletTag
                                    *** 483,489 ****
                                              else
                                                fullcodebase = new URL(documentbase, codebase + File.separator);
                                            }
                                    !     
                                          return new URL(fullcodebase, base);
                                        }
                                      }
                                    --- 483,489 ----
                                              else
                                                fullcodebase = new URL(documentbase, codebase + File.separator);
                                            }
                                    ! 
                                          return new URL(fullcodebase, base);
                                        }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java	Fri Jun  9 16:07:07 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java	Tue Jan 11 19:46:05 2011
                                    *************** abstract class CommonAppletContext
                                    *** 90,100 ****
                                      
                                          while (i.hasNext())
                                            {
                                    ! 	a = (Applet) i.next();
                                      
                                    ! 	appletName = a.getParameter("name");
                                    ! 	if (a != null && appletName != null && appletName.equals(name))
                                    ! 	  return a;
                                            }
                                          return null;
                                        }
                                    --- 90,100 ----
                                      
                                          while (i.hasNext())
                                            {
                                    !         a = (Applet) i.next();
                                      
                                    !         appletName = a.getParameter("name");
                                    !         if (a != null && appletName != null && appletName.equals(name))
                                    !           return a;
                                            }
                                          return null;
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java	Tue Jan 11 19:46:05 2011
                                    *************** class CommonAppletStub
                                    *** 61,67 ****
                                        ////////////////////////////////
                                        ////// AppletStub Methods //////
                                        ////////////////////////////////
                                    !   
                                        /**
                                         * Tests whether or not this applet is currently active. An applet
                                         * becomes active just before the browser invokes start (), and
                                    --- 61,67 ----
                                        ////////////////////////////////
                                        ////// AppletStub Methods //////
                                        ////////////////////////////////
                                    ! 
                                        /**
                                         * Tests whether or not this applet is currently active. An applet
                                         * becomes active just before the browser invokes start (), and
                                    *************** class CommonAppletStub
                                    *** 94,100 ****
                                        {
                                          try
                                            {
                                    ! 	return tag.prependCodeBase("");
                                            }
                                          catch (MalformedURLException e)
                                            {
                                    --- 94,100 ----
                                        {
                                          try
                                            {
                                    !         return tag.prependCodeBase("");
                                            }
                                          catch (MalformedURLException e)
                                            {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.List;
                                    *** 60,66 ****
                                      class Main
                                      {
                                        private static HashMap classLoaderCache = new HashMap();
                                    !   
                                        private static ClassLoader getClassLoader(URL codebase, ArrayList archives)
                                        {
                                          // Should load class loader each time. It is possible that there
                                    --- 60,66 ----
                                      class Main
                                      {
                                        private static HashMap classLoaderCache = new HashMap();
                                    ! 
                                        private static ClassLoader getClassLoader(URL codebase, ArrayList archives)
                                        {
                                          // Should load class loader each time. It is possible that there
                                    *************** class Main
                                    *** 70,76 ****
                                      
                                          return loader;
                                        }
                                    !   
                                        private static String code = null;
                                        private static String codebase = null;
                                        private static String archive = null;
                                    --- 70,76 ----
                                      
                                          return loader;
                                        }
                                    ! 
                                        private static String code = null;
                                        private static String codebase = null;
                                        private static String archive = null;
                                    *************** class Main
                                    *** 254,266 ****
                                          if (pluginMode)
                                            {
                                              // Plugin will warn user about missing security manager.
                                    ! 	InputStream in;
                                    ! 	OutputStream out;
                                      
                                              in = new FileInputStream(pipeInName);
                                              out = new FileOutputStream(pipeOutName);
                                      
                                    ! 	PluginAppletViewer.start(in, out);
                                            }
                                          else
                                            {
                                    --- 254,266 ----
                                          if (pluginMode)
                                            {
                                              // Plugin will warn user about missing security manager.
                                    !         InputStream in;
                                    !         OutputStream out;
                                      
                                              in = new FileInputStream(pipeInName);
                                              out = new FileOutputStream(pipeOutName);
                                      
                                    !         PluginAppletViewer.start(in, out);
                                            }
                                          else
                                            {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java	Tue Jan 11 19:46:05 2011
                                    *************** class PluginAppletViewer
                                    *** 82,136 ****
                                      
                                          while (true)
                                            {
                                    ! 	if (message.startsWith("instance"))
                                    ! 	  {
                                    ! 	    // Read applet instance identifier.
                                    ! 	    String key = message.substring(9);
                                      
                                    ! 	    if (appletWindows.get(key) == null)
                                    ! 	      appletWindows.put(key, new PluginAppletWindow());
                                      
                                    ! 	    currentWindow = (PluginAppletWindow) appletWindows.get(key);
                                    ! 	  }
                                    ! 	else if (message.startsWith("tag"))
                                    ! 	  {
                                    ! 	    int pos = message.indexOf(' ', 4);
                                    ! 	    String documentbase = message.substring(4, pos);
                                              String tag = message.substring(pos + 1);
                                              currentWindow.setParser(tag, documentbase);
                                    ! 	  }
                                    ! 	else if (message.startsWith("handle"))
                                    ! 	  {
                                    ! 	    long handle = Long.parseLong(message.substring(7));
                                      
                                    ! 	    currentWindow.setHandle(handle);
                                    ! 	  }
                                    ! 	else if (message.startsWith("width"))
                                    ! 	  {
                                    ! 	    int width = Integer.parseInt(message.substring(6));
                                      
                                    ! 	    currentWindow.setSize(width, currentWindow.getHeight());
                                    ! 	  }
                                    ! 	else if (message.startsWith("height"))
                                    ! 	  {
                                    ! 	    int height = Integer.parseInt(message.substring(7));
                                      
                                    ! 	    currentWindow.setSize(currentWindow.getWidth(), height);
                                    ! 	  }
                                    ! 	else if (message.startsWith("destroy"))
                                    ! 	  {
                                    ! 	    appletWindows.remove(currentWindow);
                                    ! 	    currentWindow.dispose();
                                    ! 	  }
                                      
                                    ! 	// Read next message.
                                    ! 	message = read();
                                            }
                                        }
                                      
                                        /**
                                         * Write string to plugin.
                                    !    * 
                                         * @param message the message to write
                                         *
                                         * @exception IOException if an error occurs
                                    --- 82,136 ----
                                      
                                          while (true)
                                            {
                                    !         if (message.startsWith("instance"))
                                    !           {
                                    !             // Read applet instance identifier.
                                    !             String key = message.substring(9);
                                      
                                    !             if (appletWindows.get(key) == null)
                                    !               appletWindows.put(key, new PluginAppletWindow());
                                      
                                    !             currentWindow = (PluginAppletWindow) appletWindows.get(key);
                                    !           }
                                    !         else if (message.startsWith("tag"))
                                    !           {
                                    !             int pos = message.indexOf(' ', 4);
                                    !             String documentbase = message.substring(4, pos);
                                              String tag = message.substring(pos + 1);
                                              currentWindow.setParser(tag, documentbase);
                                    !           }
                                    !         else if (message.startsWith("handle"))
                                    !           {
                                    !             long handle = Long.parseLong(message.substring(7));
                                      
                                    !             currentWindow.setHandle(handle);
                                    !           }
                                    !         else if (message.startsWith("width"))
                                    !           {
                                    !             int width = Integer.parseInt(message.substring(6));
                                      
                                    !             currentWindow.setSize(width, currentWindow.getHeight());
                                    !           }
                                    !         else if (message.startsWith("height"))
                                    !           {
                                    !             int height = Integer.parseInt(message.substring(7));
                                      
                                    !             currentWindow.setSize(currentWindow.getWidth(), height);
                                    !           }
                                    !         else if (message.startsWith("destroy"))
                                    !           {
                                    !             appletWindows.remove(currentWindow);
                                    !             currentWindow.dispose();
                                    !           }
                                      
                                    !         // Read next message.
                                    !         message = read();
                                            }
                                        }
                                      
                                        /**
                                         * Write string to plugin.
                                    !    *
                                         * @param message the message to write
                                         *
                                         * @exception IOException if an error occurs
                                    *************** class PluginAppletViewer
                                    *** 163,176 ****
                                      
                                          if (message == null || message.equals("shutdown"))
                                            {
                                    ! 	// Close input/output channels to plugin.
                                    ! 	pluginInputStream.close();
                                    ! 	pluginOutputStream.close();
                                      
                                    ! 	System.err.println
                                                (Messages.getString("PluginAppletViewer.AppletViewerExiting"));
                                      
                                    ! 	System.exit(0);
                                            }
                                      
                                          return message;
                                    --- 163,176 ----
                                      
                                          if (message == null || message.equals("shutdown"))
                                            {
                                    !         // Close input/output channels to plugin.
                                    !         pluginInputStream.close();
                                    !         pluginOutputStream.close();
                                      
                                    !         System.err.println
                                                (Messages.getString("PluginAppletViewer.AppletViewerExiting"));
                                      
                                    !         System.exit(0);
                                            }
                                      
                                          return message;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java	Tue Jan 11 19:46:05 2011
                                    *************** class PluginAppletWindow
                                    *** 68,79 ****
                                          MouseMotionListener, InputMethodListener, HierarchyListener,
                                          HierarchyBoundsListener
                                      {
                                    !   
                                        // This class implements various listeners because the author of an applet
                                    !   // may attach listeners to it, unaware of the applet's parent (this class). 
                                        // So, we must pass all listener events on this plugin applet window to the
                                        // actual applet.
                                    !   
                                        private static HashMap contexts = new HashMap();
                                        private Applet applet;
                                        private TagParser parser;
                                    --- 68,79 ----
                                          MouseMotionListener, InputMethodListener, HierarchyListener,
                                          HierarchyBoundsListener
                                      {
                                    ! 
                                        // This class implements various listeners because the author of an applet
                                    !   // may attach listeners to it, unaware of the applet's parent (this class).
                                        // So, we must pass all listener events on this plugin applet window to the
                                        // actual applet.
                                    ! 
                                        private static HashMap contexts = new HashMap();
                                        private Applet applet;
                                        private TagParser parser;
                                    *************** class PluginAppletWindow
                                    *** 89,103 ****
                                          addInputMethodListener(this);
                                          addHierarchyListener(this);
                                          addHierarchyBoundsListener(this);
                                    !   }  
                                    !   
                                        ///////////////////////////////////
                                        /// ContainerListener Methods /////
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when a component is added to the container.
                                    !    * 
                                         * @param event the <code>ContainerEvent</code> indicating component
                                         *          addition
                                         */
                                    --- 89,103 ----
                                          addInputMethodListener(this);
                                          addHierarchyListener(this);
                                          addHierarchyBoundsListener(this);
                                    !   }
                                    ! 
                                        ///////////////////////////////////
                                        /// ContainerListener Methods /////
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when a component is added to the container.
                                    !    *
                                         * @param event the <code>ContainerEvent</code> indicating component
                                         *          addition
                                         */
                                    *************** class PluginAppletWindow
                                    *** 113,119 ****
                                      
                                        /**
                                         * This method is called when a component is removed from the container.
                                    !    * 
                                         * @param event the <code>ContainerEvent</code> indicating component removal
                                         */
                                        public void componentRemoved(ContainerEvent event)
                                    --- 113,119 ----
                                      
                                        /**
                                         * This method is called when a component is removed from the container.
                                    !    *
                                         * @param event the <code>ContainerEvent</code> indicating component removal
                                         */
                                        public void componentRemoved(ContainerEvent event)
                                    *************** class PluginAppletWindow
                                    *** 125,135 ****
                                                l[i].componentRemoved(event);
                                            }
                                        }
                                    !   
                                        ///////////////////////////////////
                                        /// ComponentListener Methods /////
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when the component is resized.
                                         *
                                    --- 125,135 ----
                                                l[i].componentRemoved(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        /// ComponentListener Methods /////
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when the component is resized.
                                         *
                                    *************** class PluginAppletWindow
                                    *** 189,199 ****
                                                l[i].componentHidden(event);
                                            }
                                        }
                                    !      
                                        ///////////////////////////////////
                                        ////// MouseListener Methods //////
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when the mouse is clicked (pressed and released
                                         * in short succession) on a component.
                                    --- 189,199 ----
                                                l[i].componentHidden(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        ////// MouseListener Methods //////
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when the mouse is clicked (pressed and released
                                         * in short succession) on a component.
                                    *************** class PluginAppletWindow
                                    *** 255,261 ****
                                            }
                                        }
                                      
                                    !   /** 
                                         * This method is called when the mouse exits a component.
                                         *
                                         * @param event the <code>MouseEvent</code> for the exit
                                    --- 255,261 ----
                                            }
                                        }
                                      
                                    !   /**
                                         * This method is called when the mouse exits a component.
                                         *
                                         * @param event the <code>MouseEvent</code> for the exit
                                    *************** class PluginAppletWindow
                                    *** 269,279 ****
                                                l[i].mouseExited(event);
                                            }
                                        }
                                    !   
                                        ///////////////////////////////////
                                        /// MouseMotionListener Methods ///
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when the mouse is moved over a component
                                         * while a button has been pressed.
                                    --- 269,279 ----
                                                l[i].mouseExited(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        /// MouseMotionListener Methods ///
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when the mouse is moved over a component
                                         * while a button has been pressed.
                                    *************** class PluginAppletWindow
                                    *** 305,315 ****
                                                l[i].mouseMoved(event);
                                            }
                                        }
                                    !   
                                        ///////////////////////////////////
                                        /// InputMethodListener Methods ///
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when the text is changed.
                                         *
                                    --- 305,315 ----
                                                l[i].mouseMoved(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        /// InputMethodListener Methods ///
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when the text is changed.
                                         *
                                    *************** class PluginAppletWindow
                                    *** 339,349 ****
                                                l[i].caretPositionChanged(event);
                                            }
                                        }
                                    !   
                                        ///////////////////////////////////
                                        //// HierarchyListener Methods ////
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * Called when the hierarchy of this component changes. Use
                                         * <code>getChangeFlags()</code> on the event to see what exactly changed.
                                    --- 339,349 ----
                                                l[i].caretPositionChanged(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        //// HierarchyListener Methods ////
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * Called when the hierarchy of this component changes. Use
                                         * <code>getChangeFlags()</code> on the event to see what exactly changed.
                                    *************** class PluginAppletWindow
                                    *** 359,369 ****
                                                l[i].hierarchyChanged(event);
                                            }
                                        }
                                    !   
                                        /////////////////////////////////////////
                                        //// HierarchyBoundsListener Methods ////
                                        /////////////////////////////////////////
                                    !   
                                        /**
                                         * Called when an ancestor component of the source is moved.
                                         *
                                    --- 359,369 ----
                                                l[i].hierarchyChanged(event);
                                            }
                                        }
                                    ! 
                                        /////////////////////////////////////////
                                        //// HierarchyBoundsListener Methods ////
                                        /////////////////////////////////////////
                                    ! 
                                        /**
                                         * Called when an ancestor component of the source is moved.
                                         *
                                    *************** class PluginAppletWindow
                                    *** 393,399 ****
                                                l[i].ancestorResized(e);
                                            }
                                        }
                                    !   
                                        void setParser(String tag, String documentbase) throws MalformedURLException, IOException
                                        {
                                          URL documentbaseURL = TagParser.getLocationToURL(documentbase);
                                    --- 393,399 ----
                                                l[i].ancestorResized(e);
                                            }
                                        }
                                    ! 
                                        void setParser(String tag, String documentbase) throws MalformedURLException, IOException
                                        {
                                          URL documentbaseURL = TagParser.getLocationToURL(documentbase);
                                    *************** class PluginAppletWindow
                                    *** 407,413 ****
                                      
                                        /**
                                         * Set the native handle of the window system to embed the window in.
                                    !    * 
                                         * @param handle the native handle.
                                         */
                                        public void setHandle(long handle)
                                    --- 407,413 ----
                                      
                                        /**
                                         * Set the native handle of the window system to embed the window in.
                                    !    *
                                         * @param handle the native handle.
                                         */
                                        public void setHandle(long handle)
                                    *************** class PluginAppletWindow
                                    *** 435,442 ****
                                              Dimension size = getSize();
                                              if (size.width == 0 || size.height == 0)
                                                size = tag.getSize();
                                    !         applet.setSize(size);          
                                    !         
                                              // Initialize the applet before showing this window so that
                                              // the applet doesn't receive events before it has been
                                              // initialized.
                                    --- 435,442 ----
                                              Dimension size = getSize();
                                              if (size.width == 0 || size.height == 0)
                                                size = tag.getSize();
                                    !         applet.setSize(size);
                                    ! 
                                              // Initialize the applet before showing this window so that
                                              // the applet doesn't receive events before it has been
                                              // initialized.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java	Tue Jan 11 19:46:05 2011
                                    *************** class StandaloneAppletViewer extends Mai
                                    *** 83,89 ****
                                                  (Messages.getString("StandaloneAppletViewer.CodeOptionError"));
                                                System.exit(1);
                                              }
                                    !       
                                            String tagString =
                                              "<EMBED"
                                              + " CODE=\"" + code + "\""
                                    --- 83,89 ----
                                                  (Messages.getString("StandaloneAppletViewer.CodeOptionError"));
                                                System.exit(1);
                                              }
                                    ! 
                                            String tagString =
                                              "<EMBED"
                                              + " CODE=\"" + code + "\""
                                    *************** class StandaloneAppletViewer extends Mai
                                    *** 102,108 ****
                                                  "<PARAM NAME=" + paramTokenizer.nextToken().trim() + " VALUE="
                                                  + paramTokenizer.nextToken().trim() + ">";
                                              }
                                    !       
                                            tagString += "</EMBED>";
                                      
                                            StringReader reader = new StringReader(tagString);
                                    --- 102,108 ----
                                                  "<PARAM NAME=" + paramTokenizer.nextToken().trim() + " VALUE="
                                                  + paramTokenizer.nextToken().trim() + ">";
                                              }
                                    ! 
                                            tagString += "</EMBED>";
                                      
                                            StringReader reader = new StringReader(tagString);
                                    *************** class StandaloneAppletViewer extends Mai
                                    *** 139,145 ****
                                          for (int i = 0; i < appletTags.size(); i++)
                                            {
                                              AppletTag tag = (AppletTag) appletTags.get(i);
                                    !           
                                              // Create a StandaloneAppletWindow and add it to the
                                              // appletWindows list.
                                              new StandaloneAppletWindow(tag, appletWindows);
                                    --- 139,145 ----
                                          for (int i = 0; i < appletTags.size(); i++)
                                            {
                                              AppletTag tag = (AppletTag) appletTags.get(i);
                                    ! 
                                              // Create a StandaloneAppletWindow and add it to the
                                              // appletWindows list.
                                              new StandaloneAppletWindow(tag, appletWindows);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java	Tue Jan 11 19:46:05 2011
                                    *************** class StandaloneAppletWindow
                                    *** 72,83 ****
                                          MouseListener, MouseMotionListener, InputMethodListener, HierarchyListener,
                                          HierarchyBoundsListener
                                      {
                                    !   
                                        // This class implements various listeners because the author of an applet
                                    !   // may attach listeners to it, unaware of the applet's parent (this class). 
                                        // So, we must pass all listener events on this plugin applet window to the
                                        // actual applet.
                                    !   
                                        private static int testWindowCount;
                                        private static HashMap contexts = new HashMap();
                                        private Applet applet;
                                    --- 72,83 ----
                                          MouseListener, MouseMotionListener, InputMethodListener, HierarchyListener,
                                          HierarchyBoundsListener
                                      {
                                    ! 
                                        // This class implements various listeners because the author of an applet
                                    !   // may attach listeners to it, unaware of the applet's parent (this class).
                                        // So, we must pass all listener events on this plugin applet window to the
                                        // actual applet.
                                    ! 
                                        private static int testWindowCount;
                                        private static HashMap contexts = new HashMap();
                                        private Applet applet;
                                    *************** class StandaloneAppletWindow
                                    *** 112,125 ****
                                      
                                          addWindowListener(new WindowAdapter()
                                              {
                                    ! 	  public void windowClosing(WindowEvent event)
                                    ! 	  {
                                    ! 	    applet.stop();
                                    ! 	    StandaloneAppletWindow.this.hide();
                                    ! 	    System.exit(0);
                                    ! 	  }
                                              });
                                    !     
                                          addContainerListener(this);
                                          addComponentListener(this);
                                          addMouseListener(this);
                                    --- 112,125 ----
                                      
                                          addWindowListener(new WindowAdapter()
                                              {
                                    !           public void windowClosing(WindowEvent event)
                                    !           {
                                    !             applet.stop();
                                    !             StandaloneAppletWindow.this.hide();
                                    !             System.exit(0);
                                    !           }
                                              });
                                    ! 
                                          addContainerListener(this);
                                          addComponentListener(this);
                                          addMouseListener(this);
                                    *************** class StandaloneAppletWindow
                                    *** 127,133 ****
                                          addInputMethodListener(this);
                                          addHierarchyListener(this);
                                          addHierarchyBoundsListener(this);
                                    !     
                                          restartItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuRestart"));
                                          restartItem.setEnabled(false);
                                          restartItem.addActionListener(this);
                                    --- 127,133 ----
                                          addInputMethodListener(this);
                                          addHierarchyListener(this);
                                          addHierarchyBoundsListener(this);
                                    ! 
                                          restartItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuRestart"));
                                          restartItem.setEnabled(false);
                                          restartItem.addActionListener(this);
                                    *************** class StandaloneAppletWindow
                                    *** 240,250 ****
                                            }
                                          else if (e.getSource() == closeItem)
                                            {
                                    ! 	// Close current window.
                                    ! 	closeWindow();
                                    ! 	
                                    ! 	// Exit if there are other windows left.
                                    ! 	if (StandaloneAppletViewer.appletWindows.isEmpty())
                                                System.exit(0);
                                            }
                                        }
                                    --- 240,250 ----
                                            }
                                          else if (e.getSource() == closeItem)
                                            {
                                    !         // Close current window.
                                    !         closeWindow();
                                    ! 
                                    !         // Exit if there are other windows left.
                                    !         if (StandaloneAppletViewer.appletWindows.isEmpty())
                                                System.exit(0);
                                            }
                                        }
                                    *************** class StandaloneAppletWindow
                                    *** 253,267 ****
                                        {
                                          this.status.setText(status);
                                        }
                                    !   
                                      
                                        ///////////////////////////////////
                                        /// ContainerListener Methods /////
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when a component is added to the container.
                                    !    * 
                                         * @param event the <code>ContainerEvent</code> indicating component
                                         *          addition
                                         */
                                    --- 253,267 ----
                                        {
                                          this.status.setText(status);
                                        }
                                    ! 
                                      
                                        ///////////////////////////////////
                                        /// ContainerListener Methods /////
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when a component is added to the container.
                                    !    *
                                         * @param event the <code>ContainerEvent</code> indicating component
                                         *          addition
                                         */
                                    *************** class StandaloneAppletWindow
                                    *** 277,283 ****
                                      
                                        /**
                                         * This method is called when a component is removed from the container.
                                    !    * 
                                         * @param event the <code>ContainerEvent</code> indicating component removal
                                         */
                                        public void componentRemoved(ContainerEvent event)
                                    --- 277,283 ----
                                      
                                        /**
                                         * This method is called when a component is removed from the container.
                                    !    *
                                         * @param event the <code>ContainerEvent</code> indicating component removal
                                         */
                                        public void componentRemoved(ContainerEvent event)
                                    *************** class StandaloneAppletWindow
                                    *** 289,299 ****
                                                l[i].componentRemoved(event);
                                            }
                                        }
                                    !   
                                        ///////////////////////////////////
                                        /// ComponentListener Methods /////
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when the component is resized.
                                         *
                                    --- 289,299 ----
                                                l[i].componentRemoved(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        /// ComponentListener Methods /////
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when the component is resized.
                                         *
                                    *************** class StandaloneAppletWindow
                                    *** 353,363 ****
                                                l[i].componentHidden(event);
                                            }
                                        }
                                    !      
                                        ///////////////////////////////////
                                        ////// MouseListener Methods //////
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when the mouse is clicked (pressed and released
                                         * in short succession) on a component.
                                    --- 353,363 ----
                                                l[i].componentHidden(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        ////// MouseListener Methods //////
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when the mouse is clicked (pressed and released
                                         * in short succession) on a component.
                                    *************** class StandaloneAppletWindow
                                    *** 419,425 ****
                                            }
                                        }
                                      
                                    !   /** 
                                         * This method is called when the mouse exits a component.
                                         *
                                         * @param event the <code>MouseEvent</code> for the exit
                                    --- 419,425 ----
                                            }
                                        }
                                      
                                    !   /**
                                         * This method is called when the mouse exits a component.
                                         *
                                         * @param event the <code>MouseEvent</code> for the exit
                                    *************** class StandaloneAppletWindow
                                    *** 433,443 ****
                                                l[i].mouseExited(event);
                                            }
                                        }
                                    !   
                                        ///////////////////////////////////
                                        /// MouseMotionListener Methods ///
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when the mouse is moved over a component
                                         * while a button has been pressed.
                                    --- 433,443 ----
                                                l[i].mouseExited(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        /// MouseMotionListener Methods ///
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when the mouse is moved over a component
                                         * while a button has been pressed.
                                    *************** class StandaloneAppletWindow
                                    *** 469,479 ****
                                                l[i].mouseMoved(event);
                                            }
                                        }
                                    !   
                                        ///////////////////////////////////
                                        /// InputMethodListener Methods ///
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * This method is called when the text is changed.
                                         *
                                    --- 469,479 ----
                                                l[i].mouseMoved(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        /// InputMethodListener Methods ///
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * This method is called when the text is changed.
                                         *
                                    *************** class StandaloneAppletWindow
                                    *** 503,513 ****
                                                l[i].caretPositionChanged(event);
                                            }
                                        }
                                    !   
                                        ///////////////////////////////////
                                        //// HierarchyListener Methods ////
                                        ///////////////////////////////////
                                    !   
                                        /**
                                         * Called when the hierarchy of this component changes. Use
                                         * <code>getChangeFlags()</code> on the event to see what exactly changed.
                                    --- 503,513 ----
                                                l[i].caretPositionChanged(event);
                                            }
                                        }
                                    ! 
                                        ///////////////////////////////////
                                        //// HierarchyListener Methods ////
                                        ///////////////////////////////////
                                    ! 
                                        /**
                                         * Called when the hierarchy of this component changes. Use
                                         * <code>getChangeFlags()</code> on the event to see what exactly changed.
                                    *************** class StandaloneAppletWindow
                                    *** 523,533 ****
                                                l[i].hierarchyChanged(event);
                                            }
                                        }
                                    !   
                                        /////////////////////////////////////////
                                        //// HierarchyBoundsListener Methods ////
                                        /////////////////////////////////////////
                                    !   
                                        /**
                                         * Called when an ancestor component of the source is moved.
                                         *
                                    --- 523,533 ----
                                                l[i].hierarchyChanged(event);
                                            }
                                        }
                                    ! 
                                        /////////////////////////////////////////
                                        //// HierarchyBoundsListener Methods ////
                                        /////////////////////////////////////////
                                    ! 
                                        /**
                                         * Called when an ancestor component of the source is moved.
                                         *
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.w3c.dom.NodeList;
                                    *** 64,90 ****
                                      
                                      public class TagParser
                                      {
                                    !     
                                        /**
                                         * Parsed document.
                                         */
                                        DomHTMLDocument document;
                                    !   
                                        /**
                                         * The document base of this applet.
                                         */
                                        URL documentbase;
                                    !   
                                        /**
                                         * The document base of all the applets.
                                         */
                                        static URL db;
                                    !   
                                    !   /** 
                                         * The tags in the document.
                                         */
                                        Vector tags = new Vector();
                                    !   
                                        /**
                                         * Default constructor.
                                         */
                                    --- 64,90 ----
                                      
                                      public class TagParser
                                      {
                                    ! 
                                        /**
                                         * Parsed document.
                                         */
                                        DomHTMLDocument document;
                                    ! 
                                        /**
                                         * The document base of this applet.
                                         */
                                        URL documentbase;
                                    ! 
                                        /**
                                         * The document base of all the applets.
                                         */
                                        static URL db;
                                    ! 
                                    !   /**
                                         * The tags in the document.
                                         */
                                        Vector tags = new Vector();
                                    ! 
                                        /**
                                         * Default constructor.
                                         */
                                    *************** public class TagParser
                                    *** 95,101 ****
                                      
                                        /**
                                         * Constructs and parses document using the given location.
                                    !    * 
                                         * @param location - location of applet
                                         */
                                        TagParser(String location) throws IOException
                                    --- 95,101 ----
                                      
                                        /**
                                         * Constructs and parses document using the given location.
                                    !    *
                                         * @param location - location of applet
                                         */
                                        TagParser(String location) throws IOException
                                    *************** public class TagParser
                                    *** 108,114 ****
                                      
                                        /**
                                         * Constructs and parses document.
                                    !    * 
                                         * @param in - Reader to parse document from.
                                         * @param documentBase - the URL of the applet
                                         * @throws IOException - is thrown if any IO error occurs.
                                    --- 108,114 ----
                                      
                                        /**
                                         * Constructs and parses document.
                                    !    *
                                         * @param in - Reader to parse document from.
                                         * @param documentBase - the URL of the applet
                                         * @throws IOException - is thrown if any IO error occurs.
                                    *************** public class TagParser
                                    *** 119,137 ****
                                          db = documentbase;
                                          document = (DomHTMLDocument) (new DomHTMLParser(HTML_401F.getInstance()).parseDocument(in));
                                        }
                                    !   
                                        /**
                                         * Parses all applet tags in document.
                                    !    * 
                                         * @return a list of AppletTag objects representing the applet tags
                                         * in document
                                         */
                                        ArrayList parseAppletTags()
                                    !   {    
                                          ArrayList allTags = new ArrayList();
                                          if (document == null)
                                            return null;
                                    !     
                                          recurseDocument(document.getChildNodes());
                                      
                                          int sz = tags.size();
                                    --- 119,137 ----
                                          db = documentbase;
                                          document = (DomHTMLDocument) (new DomHTMLParser(HTML_401F.getInstance()).parseDocument(in));
                                        }
                                    ! 
                                        /**
                                         * Parses all applet tags in document.
                                    !    *
                                         * @return a list of AppletTag objects representing the applet tags
                                         * in document
                                         */
                                        ArrayList parseAppletTags()
                                    !   {
                                          ArrayList allTags = new ArrayList();
                                          if (document == null)
                                            return null;
                                    ! 
                                          recurseDocument(document.getChildNodes());
                                      
                                          int sz = tags.size();
                                    *************** public class TagParser
                                    *** 151,163 ****
                                              a.documentbase = documentbase;
                                              allTags.add(a);
                                            }
                                    !     
                                          return allTags;
                                        }
                                    !   
                                        /**
                                         * Recurses the document in search for the appropriate tags.
                                    !    * 
                                         * @param list - the Node list.
                                         */
                                        private void recurseDocument(NodeList list)
                                    --- 151,163 ----
                                              a.documentbase = documentbase;
                                              allTags.add(a);
                                            }
                                    ! 
                                          return allTags;
                                        }
                                    ! 
                                        /**
                                         * Recurses the document in search for the appropriate tags.
                                    !    *
                                         * @param list - the Node list.
                                         */
                                        private void recurseDocument(NodeList list)
                                    *************** public class TagParser
                                    *** 167,183 ****
                                          for (int i = 0; i < length; i++)
                                            {
                                              DomNode curr = (DomNode) list.item(i);
                                    !         if ((curr instanceof DomHTMLEmbedElement) || 
                                                  (curr instanceof DomHTMLAppletElement) ||
                                                  (curr instanceof DomHTMLObjectElement))
                                                tags.add(curr);
                                              recurseDocument(curr.getChildNodes());
                                            }
                                        }
                                    !   
                                        /**
                                         * Parses the param elements for a given node.
                                    !    * 
                                         * @param node - the node element to parse.
                                         */
                                        static void parseParams(DomNode node, AppletTag t)
                                    --- 167,183 ----
                                          for (int i = 0; i < length; i++)
                                            {
                                              DomNode curr = (DomNode) list.item(i);
                                    !         if ((curr instanceof DomHTMLEmbedElement) ||
                                                  (curr instanceof DomHTMLAppletElement) ||
                                                  (curr instanceof DomHTMLObjectElement))
                                                tags.add(curr);
                                              recurseDocument(curr.getChildNodes());
                                            }
                                        }
                                    ! 
                                        /**
                                         * Parses the param elements for a given node.
                                    !    *
                                         * @param node - the node element to parse.
                                         */
                                        static void parseParams(DomNode node, AppletTag t)
                                    *************** public class TagParser
                                    *** 187,193 ****
                                          boolean jc = false;
                                          NodeList l = node.getChildNodes();
                                          int size = l.getLength();
                                    !     
                                          if (size != 0)
                                            for (int i = 0; i < size; i++)
                                              {
                                    --- 187,193 ----
                                          boolean jc = false;
                                          NodeList l = node.getChildNodes();
                                          int size = l.getLength();
                                    ! 
                                          if (size != 0)
                                            for (int i = 0; i < size; i++)
                                              {
                                    *************** public class TagParser
                                    *** 197,203 ****
                                                DomHTMLParamElement curr = (DomHTMLParamElement) c;
                                                String key = curr.getName();
                                                String val = curr.getValue();
                                    !           
                                                if (key.equals("java_code"))
                                                  {
                                                    jc = true;
                                    --- 197,203 ----
                                                DomHTMLParamElement curr = (DomHTMLParamElement) c;
                                                String key = curr.getName();
                                                String val = curr.getValue();
                                    ! 
                                                if (key.equals("java_code"))
                                                  {
                                                    jc = true;
                                    *************** public class TagParser
                                    *** 234,243 ****
                                                t.parameters.put(key.toLowerCase(), val);
                                              }
                                        }
                                    !   
                                        /**
                                         * This method does the same thing as the g_strcompress function in glib.
                                    !    * 
                                         * @param value
                                         * @return value in its original one-byte equivalence.
                                         */
                                    --- 234,243 ----
                                                t.parameters.put(key.toLowerCase(), val);
                                              }
                                        }
                                    ! 
                                        /**
                                         * This method does the same thing as the g_strcompress function in glib.
                                    !    *
                                         * @param value
                                         * @return value in its original one-byte equivalence.
                                         */
                                    *************** public class TagParser
                                    *** 288,297 ****
                                            }
                                          return unescVal;
                                        }
                                    !   
                                        /**
                                         * Parses the archive string and returns a list.
                                    !    * 
                                         * @param arcs the list of archives (comma-separated) in a String.
                                         */
                                        static ArrayList parseArchives(String arcs, AppletTag t)
                                    --- 288,297 ----
                                            }
                                          return unescVal;
                                        }
                                    ! 
                                        /**
                                         * Parses the archive string and returns a list.
                                    !    *
                                         * @param arcs the list of archives (comma-separated) in a String.
                                         */
                                        static ArrayList parseArchives(String arcs, AppletTag t)
                                    *************** public class TagParser
                                    *** 311,320 ****
                                            }
                                          return null;
                                        }
                                    !   
                                        /**
                                         * Gets the location to the URL, given a location.
                                    !    * 
                                         * @param location - the given location.
                                         * @return the URL.
                                         */
                                    --- 311,320 ----
                                            }
                                          return null;
                                        }
                                    ! 
                                        /**
                                         * Gets the location to the URL, given a location.
                                    !    *
                                         * @param location - the given location.
                                         * @return the URL.
                                         */
                                    *************** public class TagParser
                                    *** 323,332 ****
                                          URL tmpDocumentBase = null;
                                      
                                          try
                                    !       {        
                                              // Try parsing location as a URL.
                                              tmpDocumentBase = new URL(location);
                                    !         
                                              // If no file was specified in the URL the assume the user
                                              // meant the root page.
                                              String f = tmpDocumentBase.getFile();
                                    --- 323,332 ----
                                          URL tmpDocumentBase = null;
                                      
                                          try
                                    !       {
                                              // Try parsing location as a URL.
                                              tmpDocumentBase = new URL(location);
                                    ! 
                                              // If no file was specified in the URL the assume the user
                                              // meant the root page.
                                              String f = tmpDocumentBase.getFile();
                                    *************** public class TagParser
                                    *** 346,356 ****
                                                                + location).getCanonicalPath();
                                      
                                              tmpDocumentBase = new URL("file", "", path);
                                    !         
                                              if (new File(tmpDocumentBase.getFile()).isDirectory())
                                                tmpDocumentBase = new URL("file", "", path + File.separator);
                                            }
                                    !     
                                          return tmpDocumentBase;
                                        }
                                      }
                                    --- 346,356 ----
                                                                + location).getCanonicalPath();
                                      
                                              tmpDocumentBase = new URL("file", "", path);
                                    ! 
                                              if (new File(tmpDocumentBase.getFile()).isDirectory())
                                                tmpDocumentBase = new URL("file", "", path + File.separator);
                                            }
                                    ! 
                                          return tmpDocumentBase;
                                        }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/CallbackUtil.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/CallbackUtil.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/CallbackUtil.java	Wed May 17 12:49:17 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/CallbackUtil.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class CallbackUtil
                                    *** 66,72 ****
                                         * <p>
                                         * If no <i>Security Provider</i> for this type of callback was found, this
                                         * method returns the default GNU implementation.
                                    !    * 
                                         * @return a console {@link CallbackHandler} implementation.
                                         */
                                        public static final CallbackHandler getConsoleHandler()
                                    --- 66,72 ----
                                         * <p>
                                         * If no <i>Security Provider</i> for this type of callback was found, this
                                         * method returns the default GNU implementation.
                                    !    *
                                         * @return a console {@link CallbackHandler} implementation.
                                         */
                                        public static final CallbackHandler getConsoleHandler()
                                    *************** public abstract class CallbackUtil
                                    *** 89,95 ****
                                         * the handler from those providers. As soon as one provider returns a non-
                                         * null instance of the callback handler, the search stops and that instance
                                         * is returned.
                                    !    * 
                                         * @return a {@link CallbackHandler} of the designated type, or
                                         *         <code>null</code> if no provider was found for theis type of
                                         *         callback.
                                    --- 89,95 ----
                                         * the handler from those providers. As soon as one provider returns a non-
                                         * null instance of the callback handler, the search stops and that instance
                                         * is returned.
                                    !    *
                                         * @return a {@link CallbackHandler} of the designated type, or
                                         *         <code>null</code> if no provider was found for theis type of
                                         *         callback.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ClasspathToolParser
                                    *** 63,69 ****
                                        private static String getVersionString(String programName)
                                        {
                                          String fmt = (Messages.getString("ClasspathToolParser.VersionFormat")); //$NON-NLS-1$
                                    !     return MessageFormat.format(fmt, 
                                                                      new Object[]
                                                                        {
                                                                          programName,
                                    --- 63,69 ----
                                        private static String getVersionString(String programName)
                                        {
                                          String fmt = (Messages.getString("ClasspathToolParser.VersionFormat")); //$NON-NLS-1$
                                    !     return MessageFormat.format(fmt,
                                                                      new Object[]
                                                                        {
                                                                          programName,
                                    *************** public class ClasspathToolParser
                                    *** 93,107 ****
                                        }
                                      
                                        public void parse(String[] inArgs, FileArgumentCallback files,
                                    ! 		    boolean handleFileLists)
                                        {
                                          FileArgumentCallback cb;
                                    !     
                                          if (handleFileLists)
                                            cb = new AtFileArgumentCallback(files);
                                          else
                                            cb = files;
                                    !     
                                          parse(inArgs, cb);
                                        }
                                      
                                    --- 93,107 ----
                                        }
                                      
                                        public void parse(String[] inArgs, FileArgumentCallback files,
                                    !                     boolean handleFileLists)
                                        {
                                          FileArgumentCallback cb;
                                    ! 
                                          if (handleFileLists)
                                            cb = new AtFileArgumentCallback(files);
                                          else
                                            cb = files;
                                    ! 
                                          parse(inArgs, cb);
                                        }
                                      
                                    *************** public class ClasspathToolParser
                                    *** 111,132 ****
                                      
                                          final FileArgumentCallback cb = new FileArgumentCallback()
                                            {
                                    !     	public void notifyFile(String fileArgument)
                                    !     	{
                                    !     	  fileResult.add(fileArgument);
                                    !     	}
                                            };
                                    !     
                                          if (handleFileLists)
                                            parse(inArgs, new AtFileArgumentCallback(cb));
                                          else
                                            parse(inArgs, cb);
                                    !     
                                          return fileResult.toArray(new String[fileResult.size()]);
                                        }
                                      
                                      
                                    !   /** 
                                         * Simple function that takes the given {@link Reader}, treats it like
                                         * a textfile and reads all the whitespace separated entries from it
                                         * and adds them to the @{link FileArgumentCallback} instance.
                                    --- 111,132 ----
                                      
                                          final FileArgumentCallback cb = new FileArgumentCallback()
                                            {
                                    !         public void notifyFile(String fileArgument)
                                    !         {
                                    !           fileResult.add(fileArgument);
                                    !         }
                                            };
                                    ! 
                                          if (handleFileLists)
                                            parse(inArgs, new AtFileArgumentCallback(cb));
                                          else
                                            parse(inArgs, cb);
                                    ! 
                                          return fileResult.toArray(new String[fileResult.size()]);
                                        }
                                      
                                      
                                    !   /**
                                         * Simple function that takes the given {@link Reader}, treats it like
                                         * a textfile and reads all the whitespace separated entries from it
                                         * and adds them to the @{link FileArgumentCallback} instance.
                                    *************** public class ClasspathToolParser
                                    *** 136,142 ****
                                         * @throws OptionException if an error occurs reading the list.
                                         */
                                        public void parseFileList(Reader reader, FileArgumentCallback cb)
                                    ! 	throws OptionException
                                        {
                                          BufferedReader breader = new BufferedReader(reader);
                                          String line = null;
                                    --- 136,142 ----
                                         * @throws OptionException if an error occurs reading the list.
                                         */
                                        public void parseFileList(Reader reader, FileArgumentCallback cb)
                                    !         throws OptionException
                                        {
                                          BufferedReader breader = new BufferedReader(reader);
                                          String line = null;
                                    *************** public class ClasspathToolParser
                                    *** 145,161 ****
                                            {
                                              while ((line = breader.readLine()) != null)
                                                parseLine(line, cb);
                                    !           
                                              reader.close();
                                            }
                                          catch (IOException ioe)
                                            {
                                              throw new OptionException("I/O error while reading a file list", ioe);
                                            }
                                    !       
                                        }
                                    !   
                                    !   /** 
                                         * Parses whitespace separated file entries.
                                         *
                                         * Note: This is not coping with whitespace in files or quoting.
                                    --- 145,161 ----
                                            {
                                              while ((line = breader.readLine()) != null)
                                                parseLine(line, cb);
                                    ! 
                                              reader.close();
                                            }
                                          catch (IOException ioe)
                                            {
                                              throw new OptionException("I/O error while reading a file list", ioe);
                                            }
                                    ! 
                                        }
                                    ! 
                                    !   /**
                                         * Parses whitespace separated file entries.
                                         *
                                         * Note: This is not coping with whitespace in files or quoting.
                                    *************** public class ClasspathToolParser
                                    *** 172,202 ****
                                          int start = 0;
                                          int end = 0;
                                      
                                    ! 		// While not reached end of line ...
                                          while (start < length)
                                            {
                                    ! 	// Search for first non-whitespace character for the start of a word.
                                              while (Character.isWhitespace(line.codePointAt(start)))
                                                {
                                                  start++;
                                    ! 	    
                                                  if (start == length)
                                                    return;
                                                }
                                    ! 	
                                              end = start + 1;
                                    ! 	
                                    ! 	// Search for first whitespace character for the end of a word.
                                              while (end < length && !Character.isWhitespace(line.codePointAt(end)))
                                                end++;
                                    ! 	
                                              cb.notifyFile(line.substring(start, end));
                                    ! 	
                                              start = end + 1;
                                            }
                                        }
                                      
                                    !   /** 
                                         * Implementation of {@link FileArgumentCallback} that handles
                                         * file arguments in {@link #notifyFile} starting with a <code>@</code>
                                         * through {@link ClasspathToolParser#parseFileList}.
                                    --- 172,202 ----
                                          int start = 0;
                                          int end = 0;
                                      
                                    !                 // While not reached end of line ...
                                          while (start < length)
                                            {
                                    !         // Search for first non-whitespace character for the start of a word.
                                              while (Character.isWhitespace(line.codePointAt(start)))
                                                {
                                                  start++;
                                    ! 
                                                  if (start == length)
                                                    return;
                                                }
                                    ! 
                                              end = start + 1;
                                    ! 
                                    !         // Search for first whitespace character for the end of a word.
                                              while (end < length && !Character.isWhitespace(line.codePointAt(end)))
                                                end++;
                                    ! 
                                              cb.notifyFile(line.substring(start, end));
                                    ! 
                                              start = end + 1;
                                            }
                                        }
                                      
                                    !   /**
                                         * Implementation of {@link FileArgumentCallback} that handles
                                         * file arguments in {@link #notifyFile} starting with a <code>@</code>
                                         * through {@link ClasspathToolParser#parseFileList}.
                                    *************** public class ClasspathToolParser
                                    *** 204,210 ****
                                        class AtFileArgumentCallback extends FileArgumentCallback
                                        {
                                          FileArgumentCallback cb;
                                    !     
                                          AtFileArgumentCallback(FileArgumentCallback cb)
                                          {
                                            this.cb = cb;
                                    --- 204,210 ----
                                        class AtFileArgumentCallback extends FileArgumentCallback
                                        {
                                          FileArgumentCallback cb;
                                    ! 
                                          AtFileArgumentCallback(FileArgumentCallback cb)
                                          {
                                            this.cb = cb;
                                    *************** public class ClasspathToolParser
                                    *** 215,239 ****
                                            throws OptionException
                                          {
                                            if (fileArgument.codePointAt(0) == '@')
                                    ! 	{
                                    ! 	  FileReader fr = null;
                                    ! 	  
                                    ! 	  try
                                    ! 	    {
                                    ! 	      fr = new FileReader(fileArgument.substring(1));
                                    ! 	    }
                                    ! 	  catch (FileNotFoundException fnfe)
                                    ! 	    {
                                    ! 	      throw new OptionException("File not found: " + fileArgument.substring(1),
                                    ! 					fnfe);
                                    ! 	    }
                                    ! 	  
                                    ! 	  ClasspathToolParser.this.parseFileList(fr, cb);
                                    ! 	}
                                            else
                                    ! 	cb.notifyFile(fileArgument);
                                          }
                                    !     
                                        }
                                      
                                      }
                                    --- 215,239 ----
                                            throws OptionException
                                          {
                                            if (fileArgument.codePointAt(0) == '@')
                                    !         {
                                    !           FileReader fr = null;
                                    ! 
                                    !           try
                                    !             {
                                    !               fr = new FileReader(fileArgument.substring(1));
                                    !             }
                                    !           catch (FileNotFoundException fnfe)
                                    !             {
                                    !               throw new OptionException("File not found: " + fileArgument.substring(1),
                                    !                                         fnfe);
                                    !             }
                                    ! 
                                    !           ClasspathToolParser.this.parseFileList(fr, cb);
                                    !         }
                                            else
                                    !         cb.notifyFile(fileArgument);
                                          }
                                    ! 
                                        }
                                      
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.TimerTask;
                                    *** 43,49 ****
                                      /**
                                       * The static fields, shared by the multiple classes, implementing the
                                       * persistent work.
                                    !  * 
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public interface Persistent
                                    --- 43,49 ----
                                      /**
                                       * The static fields, shared by the multiple classes, implementing the
                                       * persistent work.
                                    !  *
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public interface Persistent
                                    *************** public interface Persistent
                                    *** 58,64 ****
                                            System.exit(0);
                                          }
                                        }
                                    !   
                                        /**
                                         * The timer, sheduling all disk database update events, shared by all
                                         * instances.
                                    --- 58,64 ----
                                            System.exit(0);
                                          }
                                        }
                                    ! 
                                        /**
                                         * The timer, sheduling all disk database update events, shared by all
                                         * instances.
                                    *************** public interface Persistent
                                    *** 78,87 ****
                                         * be stored to the disk.
                                         */
                                        static long ALWAYS_UPDATE = 300000;
                                    !   
                                        /**
                                         * Write the database content to the disk.
                                         */
                                    !   void writeContent();  
                                    !   
                                      }
                                    --- 78,87 ----
                                         * be stored to the disk.
                                         */
                                        static long ALWAYS_UPDATE = 300000;
                                    ! 
                                        /**
                                         * Write the database content to the disk.
                                         */
                                    !   void writeContent();
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/ProviderUtil.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/ProviderUtil.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/ProviderUtil.java	Wed May 17 12:49:17 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/ProviderUtil.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class ProviderUtil
                                    *** 64,70 ****
                                         * <p>
                                         * <b>IMPORTANT</b>: This method overrides the security check usually carried
                                         * out by the security manager when inserting a new {@link Provider}.
                                    !    * 
                                         * @param providerClass a fully qualified, non-null, class name of a
                                         *          <i>Security Provider</i> to add if it is not already installed.
                                         * @return an instance of {@link SecurityProviderInfo} referencing the
                                    --- 64,70 ----
                                         * <p>
                                         * <b>IMPORTANT</b>: This method overrides the security check usually carried
                                         * out by the security manager when inserting a new {@link Provider}.
                                    !    *
                                         * @param providerClass a fully qualified, non-null, class name of a
                                         *          <i>Security Provider</i> to add if it is not already installed.
                                         * @return an instance of {@link SecurityProviderInfo} referencing the
                                    *************** public abstract class ProviderUtil
                                    *** 110,116 ****
                                         * <p>
                                         * <b>IMPORTANT</b>: This method overrides the security check usually carried
                                         * out by the security manager when inserting a new {@link Provider}.
                                    !    * 
                                         * @param provider a non-null <i>Security Provider</i> to add if it is not
                                         *          already installed.
                                         * @return the new position of the designated provider in the list if it was
                                    --- 110,116 ----
                                         * <p>
                                         * <b>IMPORTANT</b>: This method overrides the security check usually carried
                                         * out by the security manager when inserting a new {@link Provider}.
                                    !    *
                                         * @param provider a non-null <i>Security Provider</i> to add if it is not
                                         *          already installed.
                                         * @return the new position of the designated provider in the list if it was
                                    *************** public abstract class ProviderUtil
                                    *** 142,148 ****
                                         * <p>
                                         * <b>IMPORTANT</b>: This method overrides the security check usually carried
                                         * out by the security manager when removing a {@link Provider}.
                                    !    * 
                                         * @param providerName the name of the {@link Provider} to remove.
                                         */
                                        public static final void removeProvider(final String providerName)
                                    --- 142,148 ----
                                         * <p>
                                         * <b>IMPORTANT</b>: This method overrides the security check usually carried
                                         * out by the security manager when removing a {@link Provider}.
                                    !    *
                                         * @param providerName the name of the {@link Provider} to remove.
                                         */
                                        public static final void removeProvider(final String providerName)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/SecurityProviderInfo.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/SecurityProviderInfo.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/common/SecurityProviderInfo.java	Wed May 17 12:49:17 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/common/SecurityProviderInfo.java	Tue Jan 11 19:46:05 2011
                                    *************** public class SecurityProviderInfo
                                    *** 56,62 ****
                                         * <p>
                                         * Used by {@link ProviderUtil} to indicate the result of adding a provider,
                                         * given its class name.
                                    !    * 
                                         * @param provider the possibly <code>null</code> {@link Provider}.
                                         * @param position the position of <code>provider</code> in the list of
                                         * <i>Security Providers</i> in the underlying JVM runtime. <code>-1</code>
                                    --- 56,62 ----
                                         * <p>
                                         * Used by {@link ProviderUtil} to indicate the result of adding a provider,
                                         * given its class name.
                                    !    *
                                         * @param provider the possibly <code>null</code> {@link Provider}.
                                         * @param position the position of <code>provider</code> in the list of
                                         * <i>Security Providers</i> in the underlying JVM runtime. <code>-1</code>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    *************** public abstract class AbstractDoclet
                                    *** 124,130 ****
                                         protected abstract void run()
                                            throws DocletConfigurationException, IOException;
                                      
                                    !    public static boolean start(RootDoc rootDoc) 
                                         {
                                            try {
                                      
                                    --- 141,147 ----
                                         protected abstract void run()
                                            throws DocletConfigurationException, IOException;
                                      
                                    !    public static boolean start(RootDoc rootDoc)
                                         {
                                            try {
                                      
                                    *************** public abstract class AbstractDoclet
                                    *** 172,178 ****
                                            // Process command line options
                                      
                                            for (int i=0, ilim=rootDoc.options().length; i<ilim; ++i) {
                                    !             
                                               String[] optionArr = rootDoc.options()[i];
                                               String _optionTag = optionArr[0];
                                      
                                    --- 189,195 ----
                                            // Process command line options
                                      
                                            for (int i=0, ilim=rootDoc.options().length; i<ilim; ++i) {
                                    ! 
                                               String[] optionArr = rootDoc.options()[i];
                                               String _optionTag = optionArr[0];
                                      
                                    *************** public abstract class AbstractDoclet
                                    *** 192,198 ****
                                      
                                            if (!getTargetDirectory().exists()) {
                                               if (!getTargetDirectory().mkdirs()) {
                                    !             throw new DocletConfigurationException("Cannot create target directory " 
                                                                                         + getTargetDirectory());
                                               }
                                            }
                                    --- 209,215 ----
                                      
                                            if (!getTargetDirectory().exists()) {
                                               if (!getTargetDirectory().mkdirs()) {
                                    !             throw new DocletConfigurationException("Cannot create target directory "
                                                                                         + getTargetDirectory());
                                               }
                                            }
                                    *************** public abstract class AbstractDoclet
                                    *** 205,248 ****
                                            return optionTargetDirectory.getValue();
                                         }
                                      
                                    !    private DocletOptionFile optionTargetDirectory = 
                                    !      new DocletOptionFile("-d", 
                                                                new File(System.getProperty("user.dir")));
                                      
                                    !    private DocletOptionFlag optionNoEmailWarn = 
                                           new DocletOptionFlag("-noemailwarn");
                                      
                                    !    private DocletOptionFlag optionAuthor = 
                                           new DocletOptionFlag("-author");
                                      
                                    !    private DocletOptionFlag optionVersion = 
                                           new DocletOptionFlag("-version");
                                      
                                    !    private DocletOptionFlag optionNoSince = 
                                           new DocletOptionFlag("-nosince");
                                      
                                    !    private DocletOptionFlag optionNoDeprecated = 
                                           new DocletOptionFlag("-nodeprecated");
                                      
                                    !    private DocletOptionGroup optionGroup = 
                                           new DocletOptionGroup("-group");
                                      
                                    !    private DocletOptionPackageWildcard optionNoQualifier = 
                                           new DocletOptionPackageWildcard("-noqualifier", true);
                                      
                                    !    private DocletOptionFlag optionDocFilesSubDirs = 
                                           new DocletOptionFlag("-docfilessubdirs");
                                      
                                    !    private DocletOptionColonSeparated optionExcludeDocFilesSubDir = 
                                           new DocletOptionColonSeparated("-excludedocfilessubdir");
                                      
                                    !    private DocletOptionTagletPath optionTagletPath = 
                                           new DocletOptionTagletPath("-tagletpath");
                                      
                                    !    private DocletOptionTag optionTaglet = 
                                           new DocletOptionTag("-taglet");
                                      
                                    !    private DocletOptionTag optionTag = 
                                           new DocletOptionTag("-tag");
                                      
                                         private class DocletOptionTaglet
                                    --- 222,265 ----
                                            return optionTargetDirectory.getValue();
                                         }
                                      
                                    !    private DocletOptionFile optionTargetDirectory =
                                    !      new DocletOptionFile("-d",
                                                                new File(System.getProperty("user.dir")));
                                      
                                    !    private DocletOptionFlag optionNoEmailWarn =
                                           new DocletOptionFlag("-noemailwarn");
                                      
                                    !    private DocletOptionFlag optionAuthor =
                                           new DocletOptionFlag("-author");
                                      
                                    !    private DocletOptionFlag optionVersion =
                                           new DocletOptionFlag("-version");
                                      
                                    !    private DocletOptionFlag optionNoSince =
                                           new DocletOptionFlag("-nosince");
                                      
                                    !    private DocletOptionFlag optionNoDeprecated =
                                           new DocletOptionFlag("-nodeprecated");
                                      
                                    !    private DocletOptionGroup optionGroup =
                                           new DocletOptionGroup("-group");
                                      
                                    !    private DocletOptionPackageWildcard optionNoQualifier =
                                           new DocletOptionPackageWildcard("-noqualifier", true);
                                      
                                    !    private DocletOptionFlag optionDocFilesSubDirs =
                                           new DocletOptionFlag("-docfilessubdirs");
                                      
                                    !    private DocletOptionColonSeparated optionExcludeDocFilesSubDir =
                                           new DocletOptionColonSeparated("-excludedocfilessubdir");
                                      
                                    !    private DocletOptionTagletPath optionTagletPath =
                                           new DocletOptionTagletPath("-tagletpath");
                                      
                                    !    private DocletOptionTag optionTaglet =
                                           new DocletOptionTag("-taglet");
                                      
                                    !    private DocletOptionTag optionTag =
                                           new DocletOptionTag("-tag");
                                      
                                         private class DocletOptionTaglet
                                    *************** public abstract class AbstractDoclet
                                    *** 252,258 ****
                                            {
                                               super(optionName);
                                            }
                                    !       
                                            public int getLength()
                                            {
                                               return 2;
                                    --- 269,275 ----
                                            {
                                               super(optionName);
                                            }
                                    ! 
                                            public int getLength()
                                            {
                                               return 2;
                                    *************** public abstract class AbstractDoclet
                                    *** 323,336 ****
                                            }
                                         }
                                      
                                    !    private class DocletOptionGroup 
                                            extends DocletOption
                                         {
                                            DocletOptionGroup(String optionName)
                                            {
                                               super(optionName);
                                            }
                                    !       
                                            public int getLength()
                                            {
                                               return 3;
                                    --- 340,353 ----
                                            }
                                         }
                                      
                                    !    private class DocletOptionGroup
                                            extends DocletOption
                                         {
                                            DocletOptionGroup(String optionName)
                                            {
                                               super(optionName);
                                            }
                                    ! 
                                            public int getLength()
                                            {
                                               return 3;
                                    *************** public abstract class AbstractDoclet
                                    *** 346,352 ****
                                                     String packageWildcard = tokenizer.nextToken();
                                                     packageMatcher.addWildcard(packageWildcard);
                                                  }
                                    !             
                                                  SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());
                                      
                                                  packageGroups.add(new PackageGroup(optionArr[1], groupPackages));
                                    --- 363,369 ----
                                                     String packageWildcard = tokenizer.nextToken();
                                                     packageMatcher.addWildcard(packageWildcard);
                                                  }
                                    ! 
                                                  SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());
                                      
                                                  packageGroups.add(new PackageGroup(optionArr[1], groupPackages));
                                    *************** public abstract class AbstractDoclet
                                    *** 367,373 ****
                                            {
                                               super(optionName);
                                            }
                                    !       
                                            public int getLength()
                                            {
                                               return 2;
                                    --- 384,390 ----
                                            {
                                               super(optionName);
                                            }
                                    ! 
                                            public int getLength()
                                            {
                                               return 2;
                                    *************** public abstract class AbstractDoclet
                                    *** 387,393 ****
                                            {
                                               super(optionName);
                                            }
                                    !       
                                            public int getLength()
                                            {
                                               return 2;
                                    --- 404,410 ----
                                            {
                                               super(optionName);
                                            }
                                    ! 
                                            public int getLength()
                                            {
                                               return 2;
                                    *************** public abstract class AbstractDoclet
                                    *** 409,415 ****
                                                     }
                                                     else {
                                                        mentionedTags.add(taglet);
                                    !                            
                                                        // re-append taglet
                                                        tagletMap.remove(tagSpec);
                                                        tagletMap.put(tagSpec, taglet);
                                    --- 426,432 ----
                                                     }
                                                     else {
                                                        mentionedTags.add(taglet);
                                    ! 
                                                        // re-append taglet
                                                        tagletMap.remove(tagSpec);
                                                        tagletMap.put(tagSpec, taglet);
                                    *************** public abstract class AbstractDoclet
                                    *** 439,449 ****
                                                     boolean tagScopeMethods = false;
                                                     boolean tagScopeFields = false;
                                                     boolean tagDisabled = false;
                                    !                         
                                                  tag_option_loop:
                                                     for (int n=ndx1+1; n<ndx2; ++n) {
                                                        switch (tagSpec.charAt(n)) {
                                    !                   case 'X': 
                                                           tagDisabled = true;
                                                           break;
                                                        case 'a':
                                    --- 456,466 ----
                                                     boolean tagScopeMethods = false;
                                                     boolean tagScopeFields = false;
                                                     boolean tagDisabled = false;
                                    ! 
                                                  tag_option_loop:
                                                     for (int n=ndx1+1; n<ndx2; ++n) {
                                                        switch (tagSpec.charAt(n)) {
                                    !                   case 'X':
                                                           tagDisabled = true;
                                                           break;
                                                        case 'a':
                                    *************** public abstract class AbstractDoclet
                                    *** 477,483 ****
                                                           break tag_option_loop;
                                                        }
                                                     }
                                    !                         
                                                     if (validTagSpec) {
                                                        GenericTaglet taglet
                                                           = new GenericTaglet(tagName,
                                    --- 494,500 ----
                                                           break tag_option_loop;
                                                        }
                                                     }
                                    ! 
                                                     if (validTagSpec) {
                                                        GenericTaglet taglet
                                                           = new GenericTaglet(tagName,
                                    *************** public abstract class AbstractDoclet
                                    *** 501,507 ****
                                            }
                                         }
                                      
                                    !    private DocletOption[] commonOptions = 
                                            {
                                               optionTargetDirectory,
                                               optionAuthor,
                                    --- 518,524 ----
                                            }
                                         }
                                      
                                    !    private DocletOption[] commonOptions =
                                            {
                                               optionTargetDirectory,
                                               optionAuthor,
                                    *************** public abstract class AbstractDoclet
                                    *** 536,542 ****
                                      
                                         private boolean optionsRegistered = false;
                                      
                                    !    private void registerOption(DocletOption option) 
                                         {
                                            nameToOptionMap.put(option.getName(), option);
                                         }
                                    --- 553,559 ----
                                      
                                         private boolean optionsRegistered = false;
                                      
                                    !    private void registerOption(DocletOption option)
                                         {
                                            nameToOptionMap.put(option.getName(), option);
                                         }
                                    *************** public abstract class AbstractDoclet
                                    *** 601,614 ****
                                               return name;
                                            }
                                         }
                                    !    
                                         private Map categorizedIndex;
                                      
                                         protected Map getCategorizedIndex()
                                         {
                                            if (null == categorizedIndex) {
                                               categorizedIndex = new LinkedHashMap();
                                    !          
                                               Map indexMap = getIndexByName();
                                               LinkedList keys = new LinkedList(); //indexMap.keySet().size());
                                               keys.addAll(indexMap.keySet());
                                    --- 618,631 ----
                                               return name;
                                            }
                                         }
                                    ! 
                                         private Map categorizedIndex;
                                      
                                         protected Map getCategorizedIndex()
                                         {
                                            if (null == categorizedIndex) {
                                               categorizedIndex = new LinkedHashMap();
                                    ! 
                                               Map indexMap = getIndexByName();
                                               LinkedList keys = new LinkedList(); //indexMap.keySet().size());
                                               keys.addAll(indexMap.keySet());
                                    *************** public abstract class AbstractDoclet
                                    *** 641,647 ****
                                               // Create index
                                      
                                               // Collect index
                                    !             
                                               indexByName = new HashMap(); //TreeMap();
                                      
                                               // Add packages to index
                                    --- 658,664 ----
                                               // Create index
                                      
                                               // Collect index
                                    ! 
                                               indexByName = new HashMap(); //TreeMap();
                                      
                                               // Add packages to index
                                    *************** public abstract class AbstractDoclet
                                    *** 690,696 ****
                                            tagletMap.put(taglet.getName(), taglet);
                                         }
                                      
                                    !    protected void printTaglets(Tag[] tags, TagletContext context, TagletPrinter output, boolean inline) 
                                         {
                                            for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {
                                               String tagName = (String)it.next();
                                    --- 707,713 ----
                                            tagletMap.put(taglet.getName(), taglet);
                                         }
                                      
                                    !    protected void printTaglets(Tag[] tags, TagletContext context, TagletPrinter output, boolean inline)
                                         {
                                            for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {
                                               String tagName = (String)it.next();
                                    *************** public abstract class AbstractDoclet
                                    *** 698,706 ****
                                               Taglet taglet = (Taglet)o;
                                               Doc doc = context.getDoc();
                                               if (inline == taglet.isInlineTag()
                                    !              && ((doc == null 
                                                        && taglet.inOverview())
                                    !                  || (doc != null 
                                                           && ((doc.isConstructor() && taglet.inConstructor())
                                                               || (doc.isField() && taglet.inField())
                                                               || (doc.isMethod() && taglet.inMethod())
                                    --- 715,723 ----
                                               Taglet taglet = (Taglet)o;
                                               Doc doc = context.getDoc();
                                               if (inline == taglet.isInlineTag()
                                    !              && ((doc == null
                                                        && taglet.inOverview())
                                    !                  || (doc != null
                                                           && ((doc.isConstructor() && taglet.inConstructor())
                                                               || (doc.isField() && taglet.inField())
                                                               || (doc.isMethod() && taglet.inMethod())
                                    *************** public abstract class AbstractDoclet
                                    *** 733,739 ****
                                            }
                                         }
                                      
                                    !    protected void printInlineTaglet(Tag tag, TagletContext context, TagletPrinter output) 
                                         {
                                            Taglet taglet = (Taglet)tagletMap.get(tag.name().substring(1));
                                            if (null != taglet) {
                                    --- 750,756 ----
                                            }
                                         }
                                      
                                    !    protected void printInlineTaglet(Tag tag, TagletContext context, TagletPrinter output)
                                         {
                                            Taglet taglet = (Taglet)tagletMap.get(tag.name().substring(1));
                                            if (null != taglet) {
                                    *************** public abstract class AbstractDoclet
                                    *** 753,759 ****
                                            }
                                         }
                                      
                                    !    protected void printMainTaglets(Tag[] tags, TagletContext context, TagletPrinter output) 
                                         {
                                            printTaglets(tags, context, output, false);
                                         }
                                    --- 770,776 ----
                                            }
                                         }
                                      
                                    !    protected void printMainTaglets(Tag[] tags, TagletContext context, TagletPrinter output)
                                         {
                                            printTaglets(tags, context, output, false);
                                         }
                                    *************** public abstract class AbstractDoclet
                                    *** 794,800 ****
                                            ClassDoc[] classes = rootDoc.classes();
                                            for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
                                               ClassDoc clazz = classes[i];
                                    !          
                                               if (clazz.isInterface()) {
                                                  // classes implementing
                                                  InterfaceRelation relation
                                    --- 811,817 ----
                                            ClassDoc[] classes = rootDoc.classes();
                                            for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
                                               ClassDoc clazz = classes[i];
                                    ! 
                                               if (clazz.isInterface()) {
                                                  // classes implementing
                                                  InterfaceRelation relation
                                    *************** public abstract class AbstractDoclet
                                    *** 808,814 ****
                                               }
                                               else {
                                                  // classes derived from
                                    !             for (ClassDoc superclass = clazz.superclass(); superclass != null; 
                                                       superclass = superclass.superclass()) {
                                                     addUsedBy(_usedClassToPackagesMap,
                                                               superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
                                    --- 825,831 ----
                                               }
                                               else {
                                                  // classes derived from
                                    !             for (ClassDoc superclass = clazz.superclass(); superclass != null;
                                                       superclass = superclass.superclass()) {
                                                     addUsedBy(_usedClassToPackagesMap,
                                                               superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
                                    *************** public abstract class AbstractDoclet
                                    *** 819,829 ****
                                               for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
                                                  FieldDoc field = fields[j];
                                      
                                    !             // fields of type                  
                                                  ClassDoc fieldType = field.type().asClassDoc();
                                                  if (null != fieldType) {
                                                     addUsedBy(_usedClassToPackagesMap,
                                    !                          fieldType, UsageType.FIELD_OF_TYPE, 
                                                               field, clazz.containingPackage());
                                                  }
                                               }
                                    --- 836,846 ----
                                               for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
                                                  FieldDoc field = fields[j];
                                      
                                    !             // fields of type
                                                  ClassDoc fieldType = field.type().asClassDoc();
                                                  if (null != fieldType) {
                                                     addUsedBy(_usedClassToPackagesMap,
                                    !                          fieldType, UsageType.FIELD_OF_TYPE,
                                                               field, clazz.containingPackage());
                                                  }
                                               }
                                    *************** public abstract class AbstractDoclet
                                    *** 837,843 ****
                                                  ClassDoc returnType = method.returnType().asClassDoc();
                                                  if (null != returnType) {
                                                     addUsedBy(_usedClassToPackagesMap,
                                    !                          returnType, UsageType.METHOD_WITH_RETURN_TYPE, 
                                                               method, clazz.containingPackage());
                                                  }
                                                  Parameter[] parameters = method.parameters();
                                    --- 854,860 ----
                                                  ClassDoc returnType = method.returnType().asClassDoc();
                                                  if (null != returnType) {
                                                     addUsedBy(_usedClassToPackagesMap,
                                    !                          returnType, UsageType.METHOD_WITH_RETURN_TYPE,
                                                               method, clazz.containingPackage());
                                                  }
                                                  Parameter[] parameters = method.parameters();
                                    *************** public abstract class AbstractDoclet
                                    *** 849,855 ****
                                                     ClassDoc parameterType = parameter.type().asClassDoc();
                                                     if (null != parameterType) {
                                                        addUsedBy(_usedClassToPackagesMap,
                                    !                             parameterType, UsageType.METHOD_WITH_PARAMETER_TYPE, 
                                                                  method, clazz.containingPackage());
                                                     }
                                                  }
                                    --- 866,872 ----
                                                     ClassDoc parameterType = parameter.type().asClassDoc();
                                                     if (null != parameterType) {
                                                        addUsedBy(_usedClassToPackagesMap,
                                    !                             parameterType, UsageType.METHOD_WITH_PARAMETER_TYPE,
                                                                  method, clazz.containingPackage());
                                                     }
                                                  }
                                    *************** public abstract class AbstractDoclet
                                    *** 860,870 ****
                                                  for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
                                                     ClassDoc thrownException = thrownExceptions[k];
                                                     addUsedBy(_usedClassToPackagesMap,
                                    !                          thrownException, UsageType.METHOD_WITH_THROWN_TYPE, 
                                                               method, clazz.containingPackage());
                                                  }
                                               }
                                    !                   
                                               ConstructorDoc[] constructors = clazz.constructors();
                                               for (int j = 0, jlim = constructors.length; j < jlim; ++ j) {
                                      
                                    --- 877,887 ----
                                                  for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
                                                     ClassDoc thrownException = thrownExceptions[k];
                                                     addUsedBy(_usedClassToPackagesMap,
                                    !                          thrownException, UsageType.METHOD_WITH_THROWN_TYPE,
                                                               method, clazz.containingPackage());
                                                  }
                                               }
                                    ! 
                                               ConstructorDoc[] constructors = clazz.constructors();
                                               for (int j = 0, jlim = constructors.length; j < jlim; ++ j) {
                                      
                                    *************** public abstract class AbstractDoclet
                                    *** 874,885 ****
                                                  for (int k = 0, klim = parameters.length; k < klim; ++ k) {
                                      
                                                     // constructors with parameter type
                                    !                      
                                                     Parameter parameter = parameters[k];
                                                     ClassDoc parameterType = parameter.type().asClassDoc();
                                                     if (null != parameterType) {
                                                        addUsedBy(_usedClassToPackagesMap,
                                    !                             parameterType, UsageType.CONSTRUCTOR_WITH_PARAMETER_TYPE, 
                                                                  constructor, clazz.containingPackage());
                                                     }
                                                  }
                                    --- 891,902 ----
                                                  for (int k = 0, klim = parameters.length; k < klim; ++ k) {
                                      
                                                     // constructors with parameter type
                                    ! 
                                                     Parameter parameter = parameters[k];
                                                     ClassDoc parameterType = parameter.type().asClassDoc();
                                                     if (null != parameterType) {
                                                        addUsedBy(_usedClassToPackagesMap,
                                    !                             parameterType, UsageType.CONSTRUCTOR_WITH_PARAMETER_TYPE,
                                                                  constructor, clazz.containingPackage());
                                                     }
                                                  }
                                    *************** public abstract class AbstractDoclet
                                    *** 890,896 ****
                                                  for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
                                                     ClassDoc thrownException = thrownExceptions[k];
                                                     addUsedBy(_usedClassToPackagesMap,
                                    !                          thrownException, UsageType.CONSTRUCTOR_WITH_THROWN_TYPE, 
                                                               constructor, clazz.containingPackage());
                                                  }
                                               }
                                    --- 907,913 ----
                                                  for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
                                                     ClassDoc thrownException = thrownExceptions[k];
                                                     addUsedBy(_usedClassToPackagesMap,
                                    !                          thrownException, UsageType.CONSTRUCTOR_WITH_THROWN_TYPE,
                                                               constructor, clazz.containingPackage());
                                                  }
                                               }
                                    *************** public abstract class AbstractDoclet
                                    *** 931,938 ****
                                               return this.id.compareTo(((UsageType)other).id);
                                            }
                                      
                                    !       public String toString() { 
                                    !          return "UsageType{id=" + id + "}"; 
                                            }
                                      
                                            public String getId() {
                                    --- 948,955 ----
                                               return this.id.compareTo(((UsageType)other).id);
                                            }
                                      
                                    !       public String toString() {
                                    !          return "UsageType{id=" + id + "}";
                                            }
                                      
                                            public String getId() {
                                    *************** public abstract class AbstractDoclet
                                    *** 1045,1077 ****
                                            throw new IOException("Couldn't locate source file for class " + classDoc.qualifiedTypeName());
                                         }
                                      
                                    !    protected void printError(String error) 
                                         {
                                            if (null != rootDoc) {
                                    ! 	 rootDoc.printError(error);
                                            }
                                            else {
                                    ! 	 System.err.println("ERROR: "+error);
                                            }
                                         }
                                      
                                    !    protected void printWarning(String warning) 
                                         {
                                            if (null != rootDoc) {
                                    ! 	 rootDoc.printWarning(warning);
                                            }
                                            else {
                                    ! 	 System.err.println("WARNING: "+warning);
                                            }
                                         }
                                      
                                    !    protected void printNotice(String notice) 
                                         {
                                            if (null != rootDoc) {
                                    ! 	 rootDoc.printNotice(notice);
                                            }
                                            else {
                                    ! 	 System.err.println(notice);
                                            }
                                         }
                                      
                                    --- 1062,1094 ----
                                            throw new IOException("Couldn't locate source file for class " + classDoc.qualifiedTypeName());
                                         }
                                      
                                    !    protected void printError(String error)
                                         {
                                            if (null != rootDoc) {
                                    !          rootDoc.printError(error);
                                            }
                                            else {
                                    !          System.err.println("ERROR: "+error);
                                            }
                                         }
                                      
                                    !    protected void printWarning(String warning)
                                         {
                                            if (null != rootDoc) {
                                    !          rootDoc.printWarning(warning);
                                            }
                                            else {
                                    !          System.err.println("WARNING: "+warning);
                                            }
                                         }
                                      
                                    !    protected void printNotice(String notice)
                                         {
                                            if (null != rootDoc) {
                                    !          rootDoc.printNotice(notice);
                                            }
                                            else {
                                    !          System.err.println(notice);
                                            }
                                         }
                                      
                                    *************** public abstract class AbstractDoclet
                                    *** 1113,1119 ****
                                      
                                         protected String possiblyQualifiedName(Type type)
                                         {
                                    !       if (null == type.asClassDoc() 
                                                || !omitPackageQualifier(type.asClassDoc().containingPackage())) {
                                               return type.qualifiedTypeName();
                                            }
                                    --- 1130,1136 ----
                                      
                                         protected String possiblyQualifiedName(Type type)
                                         {
                                    !       if (null == type.asClassDoc()
                                                || !omitPackageQualifier(type.asClassDoc().containingPackage())) {
                                               return type.qualifiedTypeName();
                                            }
                                    *************** public abstract class AbstractDoclet
                                    *** 1207,1213 ****
                                               Iterator it = interfaceRelations.keySet().iterator();
                                               while (it.hasNext()) {
                                                  ClassDoc interfaceDoc = (ClassDoc)it.next();
                                    !             InterfaceRelation relation 
                                                     = (InterfaceRelation)interfaceRelations.get(interfaceDoc);
                                                  Iterator superIt = relation.superInterfaces.iterator();
                                                  while (superIt.hasNext()) {
                                    --- 1224,1230 ----
                                               Iterator it = interfaceRelations.keySet().iterator();
                                               while (it.hasNext()) {
                                                  ClassDoc interfaceDoc = (ClassDoc)it.next();
                                    !             InterfaceRelation relation
                                                     = (InterfaceRelation)interfaceRelations.get(interfaceDoc);
                                                  Iterator superIt = relation.superInterfaces.iterator();
                                                  while (superIt.hasNext()) {
                                    *************** public abstract class AbstractDoclet
                                    *** 1289,1295 ****
                                         }
                                      
                                         protected abstract String renderTag(String tagName, Tag[] tags, TagletContext context);
                                    !    
                                         protected abstract String getDocletVersion();
                                      
                                         protected SortedSet getThrownExceptions(ExecutableMemberDoc execMemberDoc)
                                    --- 1306,1312 ----
                                         }
                                      
                                         protected abstract String renderTag(String tagName, Tag[] tags, TagletContext context);
                                    ! 
                                         protected abstract String getDocletVersion();
                                      
                                         protected SortedSet getThrownExceptions(ExecutableMemberDoc execMemberDoc)
                                    *************** public abstract class AbstractDoclet
                                    *** 1302,1308 ****
                                            return result;
                                         }
                                      
                                    !    protected boolean isUncheckedException(ClassDoc classDoc) 
                                         {
                                            if (classDoc.isException()) {
                                               while (null != classDoc) {
                                    --- 1319,1325 ----
                                            return result;
                                         }
                                      
                                    !    protected boolean isUncheckedException(ClassDoc classDoc)
                                         {
                                            if (classDoc.isException()) {
                                               while (null != classDoc) {
                                    *************** public abstract class AbstractDoclet
                                    *** 1343,1349 ****
                                                  ClassDoc[] interfaces = cd.interfaces();
                                                  for (int i=0; i<interfaces.length; ++i) {
                                                     result.add(interfaces[i]);
                                    !                InterfaceRelation relation 
                                                        = (InterfaceRelation)getInterfaceRelations().get(interfaces[i]);
                                                     if (null != relation) {
                                                        result.addAll(relation.superInterfaces);
                                    --- 1360,1366 ----
                                                  ClassDoc[] interfaces = cd.interfaces();
                                                  for (int i=0; i<interfaces.length; ++i) {
                                                     result.add(interfaces[i]);
                                    !                InterfaceRelation relation
                                                        = (InterfaceRelation)getInterfaceRelations().get(interfaces[i]);
                                                     if (null != relation) {
                                                        result.addAll(relation.superInterfaces);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    *************** package gnu.classpath.tools.doclets;
                                    *** 27,33 ****
                                       *
                                       *  @see AbstractDoclet
                                       */
                                    ! public class DocletConfigurationException 
                                         extends Exception
                                      {
                                         public DocletConfigurationException(String message)
                                    --- 44,50 ----
                                       *
                                       *  @see AbstractDoclet
                                       */
                                    ! public class DocletConfigurationException
                                         extends Exception
                                      {
                                         public DocletConfigurationException(String message)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    *************** public class DocletOptionColonSeparated
                                    *** 37,43 ****
                                         {
                                            super(optionName);
                                         }
                                    !       
                                         public int getLength()
                                         {
                                            return 2;
                                    --- 54,60 ----
                                         {
                                            super(optionName);
                                         }
                                    ! 
                                         public int getLength()
                                         {
                                            return 2;
                                    *************** public class DocletOptionColonSeparated
                                    *** 57,60 ****
                                            return components;
                                         }
                                      }
                                    - 
                                    --- 74,76 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    *************** public class DocletOptionPackageWildcard
                                    *** 45,51 ****
                                            super(optionName);
                                            this.allowAll = allowAll;
                                         }
                                    !       
                                         public int getLength()
                                         {
                                            return 2;
                                    --- 62,68 ----
                                            super(optionName);
                                            this.allowAll = allowAll;
                                         }
                                    ! 
                                         public int getLength()
                                         {
                                            return 2;
                                    *************** public class DocletOptionPackageWildcard
                                    *** 65,71 ****
                                               }
                                               else {
                                                  packageMatcher = new PackageMatcher();
                                    !             
                                                  StringTokenizer tokenizer = new StringTokenizer(optionArr[2], ":");
                                                  while (tokenizer.hasMoreTokens()) {
                                                     String packageWildcard = tokenizer.nextToken();
                                    --- 82,88 ----
                                               }
                                               else {
                                                  packageMatcher = new PackageMatcher();
                                    ! 
                                                  StringTokenizer tokenizer = new StringTokenizer(optionArr[2], ":");
                                                  while (tokenizer.hasMoreTokens()) {
                                                     String packageWildcard = tokenizer.nextToken();
                                    *************** public class DocletOptionPackageWildcard
                                    *** 105,108 ****
                                            }
                                         }
                                      }
                                    - 
                                    --- 122,124 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    *************** public class InvalidPackageWildcardExcep
                                    *** 32,35 ****
                                            super(msg);
                                         }
                                      }
                                    - 
                                    --- 49,51 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    *************** import com.sun.javadoc.PackageDoc;
                                    *** 37,43 ****
                                      public class PackageMatcher
                                      {
                                         private Set patterns = new HashSet();
                                    !    
                                         /**
                                          *  Add a wildcard to be matched. Wildcards can contain asterisk
                                          *  characters which match zero or more characters.
                                    --- 54,60 ----
                                      public class PackageMatcher
                                      {
                                         private Set patterns = new HashSet();
                                    ! 
                                         /**
                                          *  Add a wildcard to be matched. Wildcards can contain asterisk
                                          *  characters which match zero or more characters.
                                    *************** public class PackageMatcher
                                    *** 45,51 ****
                                          *  @throw InvalidPackageWildcardException if the wildcard cannot
                                          *  match any valid package name.
                                          */
                                    !    public void addWildcard(String wildcard) 
                                            throws InvalidPackageWildcardException
                                         {
                                            final int STATE_ID_START = 0;
                                    --- 62,68 ----
                                          *  @throw InvalidPackageWildcardException if the wildcard cannot
                                          *  match any valid package name.
                                          */
                                    !    public void addWildcard(String wildcard)
                                            throws InvalidPackageWildcardException
                                         {
                                            final int STATE_ID_START = 0;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    *************** public class StandardTaglet
                                    *** 46,56 ****
                                         public boolean inConstructor() {
                                            return true;
                                         }
                                    !     
                                         public boolean inMethod() {
                                            return true;
                                         }
                                    !    
                                         public boolean inOverview() {
                                            return true;
                                         }
                                    --- 63,73 ----
                                         public boolean inConstructor() {
                                            return true;
                                         }
                                    ! 
                                         public boolean inMethod() {
                                            return true;
                                         }
                                    ! 
                                         public boolean inOverview() {
                                            return true;
                                         }
                                    *************** public class StandardTaglet
                                    *** 62,75 ****
                                         public boolean inType() {
                                            return true;
                                         }
                                    !    
                                         public boolean isInlineTag() {
                                            return false;
                                         }
                                      
                                         public String getName() {
                                            return this.name;
                                    !    }   
                                      
                                         public String toString(Tag tag) {
                                            //assert(false);
                                    --- 79,92 ----
                                         public boolean inType() {
                                            return true;
                                         }
                                    ! 
                                         public boolean isInlineTag() {
                                            return false;
                                         }
                                      
                                         public String getName() {
                                            return this.name;
                                    !    }
                                      
                                         public String toString(Tag tag) {
                                            //assert(false);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets;
                                      
                                    *************** public interface TagletPrinter
                                    *** 27,30 ****
                                      {
                                         public void printTagletString(String s);
                                      }
                                    - 
                                    --- 44,46 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,3 ****
                                    --- 1,40 ----
                                    + /* DebugDoclet.java - Doclet for debugging
                                    +    Copyright (C) 2004 Free Software Foundation, Inc.
                                    + 
                                    + This file is part of GNU Classpath.
                                    + 
                                    + GNU Classpath is free software; you can redistribute it and/or modify
                                    + it under the terms of the GNU General Public License as published by
                                    + the Free Software Foundation; either version 2, or (at your option)
                                    + any later version.
                                    + 
                                    + GNU Classpath 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 for more details.
                                    + 
                                    + You should have received a copy of the GNU General Public License
                                    + along with GNU Classpath; see the file COPYING.  If not, write to the
                                    + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    + 02111-1307 USA.
                                    + 
                                    + Linking this library statically or dynamically with other modules is
                                    + making a combined work based on this library.  Thus, the terms and
                                    + conditions of the GNU General Public License cover the whole
                                    + combination.
                                    + 
                                    + As a special exception, the copyright holders of this library give you
                                    + permission to link this library with independent modules to produce an
                                    + executable, regardless of the license terms of these independent
                                    + modules, and to copy and distribute the resulting executable under
                                    + terms of your choice, provided that you also meet, for each linked
                                    + independent module, the terms and conditions of the license of that
                                    + module.  An independent module is a module which is not derived from
                                    + or based on this library.  If you modify this library, you may extend
                                    + this exception to your version of the library, but you are not
                                    + obligated to do so.  If you do not wish to do so, delete this
                                    + exception statement from your version. */
                                    + 
                                      package gnu.classpath.tools.doclets.debugdoclet;
                                      
                                      import com.sun.javadoc.ClassDoc;
                                    *************** public class DebugDoclet
                                    *** 18,24 ****
                                            new DebugDoclet().run(rootDoc);
                                            return true;
                                         }
                                    !    
                                         private PrintStream out;
                                      
                                         public DebugDoclet()
                                    --- 55,61 ----
                                            new DebugDoclet().run(rootDoc);
                                            return true;
                                         }
                                    ! 
                                         private PrintStream out;
                                      
                                         public DebugDoclet()
                                    *************** public class DebugDoclet
                                    *** 47,53 ****
                                            out.println();
                                         }
                                      
                                    !    private void run(RootDoc rootDoc) 
                                         {
                                            printHeader("Overview");
                                      
                                    --- 84,90 ----
                                            out.println();
                                         }
                                      
                                    !    private void run(RootDoc rootDoc)
                                         {
                                            printHeader("Overview");
                                      
                                    *************** public class DebugDoclet
                                    *** 122,128 ****
                                      
                                         private void printTag(Tag tag)
                                         {
                                    !       if (null != tag.text()) { 
                                               System.out.println(tag.text());
                                            }
                                         }
                                    --- 159,165 ----
                                      
                                         private void printTag(Tag tag)
                                         {
                                    !       if (null != tag.text()) {
                                               System.out.println(tag.text());
                                            }
                                         }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                    *************** public class ExternalDocSet
                                    *** 98,104 ****
                                                    Properties properties = new Properties();
                                                    properties.load(propertiesIn);
                                                    propertiesIn.close();
                                    !          
                                                    String gjdocCompatProperty = properties.getProperty("gjdoc.compat");
                                                    if (null != gjdocCompatProperty) {
                                                        javadocCompatible = "true".equals(properties.getProperty("gjdoc.compat"));
                                    --- 115,121 ----
                                                    Properties properties = new Properties();
                                                    properties.load(propertiesIn);
                                                    propertiesIn.close();
                                    ! 
                                                    String gjdocCompatProperty = properties.getProperty("gjdoc.compat");
                                                    if (null != gjdocCompatProperty) {
                                                        javadocCompatible = "true".equals(properties.getProperty("gjdoc.compat"));
                                    *************** public class ExternalDocSet
                                    *** 110,116 ****
                                                else {
                                                    javadocCompatible = true;
                                                }
                                    !       } 
                                            catch (FileNotFoundException e) {
                                                javadocCompatible = true;
                                            }
                                    --- 127,133 ----
                                                else {
                                                    javadocCompatible = true;
                                                }
                                    !       }
                                            catch (FileNotFoundException e) {
                                                javadocCompatible = true;
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java	Tue Jun 16 13:22:43 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                    *************** public class HtmlDoclet
                                    *** 142,148 ****
                                                     output.endAnchor();
                                                     output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
                                                  }
                                    !             
                                                  output.print(" ");
                                               }
                                      
                                    --- 159,165 ----
                                                     output.endAnchor();
                                                     output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
                                                  }
                                    ! 
                                                  output.print(" ");
                                               }
                                      
                                    *************** public class HtmlDoclet
                                    *** 223,229 ****
                                                  if (optionLinkSource.getValue()) {
                                                     output.print(" ");
                                      
                                    !                
                                                     if ("source".equals(currentPage)) {
                                                        output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
                                                        output.print("Source");
                                    --- 240,246 ----
                                                  if (optionLinkSource.getValue()) {
                                                     output.print(" ");
                                      
                                    ! 
                                                     if ("source".equals(currentPage)) {
                                                        output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
                                                        output.print("Source");
                                    *************** public class HtmlDoclet
                                    *** 232,238 ****
                                                     else {
                                      
                                                        if (null != currentClass) {
                                    !                      
                                                           output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
                                                           String targetClassName = currentClass.name();
                                                           String targetAnchor = "";
                                    --- 249,255 ----
                                                     else {
                                      
                                                        if (null != currentClass) {
                                    ! 
                                                           output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
                                                           String targetClassName = currentClass.name();
                                                           String targetAnchor = "";
                                    *************** public class HtmlDoclet
                                    *** 258,264 ****
                                               if (!optionNoTree.getValue()) {
                                                  output.print(" ");
                                      
                                    !             if ("full-tree".equals(currentPage) 
                                                      || "package-tree".equals(currentPage)) {
                                                     output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
                                                     output.print("Tree");
                                    --- 275,281 ----
                                               if (!optionNoTree.getValue()) {
                                                  output.print(" ");
                                      
                                    !             if ("full-tree".equals(currentPage)
                                                      || "package-tree".equals(currentPage)) {
                                                     output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
                                                     output.print("Tree");
                                    *************** public class HtmlDoclet
                                    *** 324,330 ****
                                               if (outputHelpPage) {
                                                  if (!optionNoHelp.getValue()) {
                                                     output.print(" ");
                                    !                
                                                     if ("help".equals(currentPage)) {
                                                        output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
                                                        output.print("Help");
                                    --- 341,347 ----
                                               if (outputHelpPage) {
                                                  if (!optionNoHelp.getValue()) {
                                                     output.print(" ");
                                    ! 
                                                     if ("help".equals(currentPage)) {
                                                        output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
                                                        output.print("Help");
                                    *************** public class HtmlDoclet
                                    *** 393,399 ****
                                            printNavBarTop(output, currentPage, null, null, null);
                                         }
                                      
                                    !    private void printNavBarTop(HtmlPage output, String currentPage, 
                                                                     ClassDoc currentClass, Object prev, Object next)
                                         {
                                            if (!optionNoNavBar.getValue()) {
                                    --- 410,416 ----
                                            printNavBarTop(output, currentPage, null, null, null);
                                         }
                                      
                                    !    private void printNavBarTop(HtmlPage output, String currentPage,
                                                                     ClassDoc currentClass, Object prev, Object next)
                                         {
                                            if (!optionNoNavBar.getValue()) {
                                    *************** public class HtmlDoclet
                                    *** 451,466 ****
                                      
                                                  output.beginCell(CssClass.NAVBAR_TOP_NAVI);
                                                  output.print("Summary: ");
                                    !             
                                                  if (currentClass.innerClasses().length > 0) {
                                    !                output.anchor("#summary-inner", "Nested");               
                                                  }
                                                  else {
                                                     output.print("Nested");
                                                  }
                                      
                                                  output.print(" | ");
                                    !             
                                                  if (currentClass.fields().length > 0) {
                                                     output.anchor("#summary-fields", "Field");
                                                  }
                                    --- 468,483 ----
                                      
                                                  output.beginCell(CssClass.NAVBAR_TOP_NAVI);
                                                  output.print("Summary: ");
                                    ! 
                                                  if (currentClass.innerClasses().length > 0) {
                                    !                output.anchor("#summary-inner", "Nested");
                                                  }
                                                  else {
                                                     output.print("Nested");
                                                  }
                                      
                                                  output.print(" | ");
                                    ! 
                                                  if (currentClass.fields().length > 0) {
                                                     output.anchor("#summary-fields", "Field");
                                                  }
                                    *************** public class HtmlDoclet
                                    *** 469,475 ****
                                                  }
                                      
                                                  output.print(" | ");
                                    !             
                                                  if (currentClass.methods().length > 0) {
                                                     output.anchor("#summary-methods", "Method");
                                                  }
                                    --- 486,492 ----
                                                  }
                                      
                                                  output.print(" | ");
                                    ! 
                                                  if (currentClass.methods().length > 0) {
                                                     output.anchor("#summary-methods", "Method");
                                                  }
                                    *************** public class HtmlDoclet
                                    *** 478,484 ****
                                                  }
                                      
                                                  output.print(" | ");
                                    !             
                                                  if (currentClass.constructors().length > 0) {
                                                     output.anchor("#summary-constructors", "Constr");
                                                  }
                                    --- 495,501 ----
                                                  }
                                      
                                                  output.print(" | ");
                                    ! 
                                                  if (currentClass.constructors().length > 0) {
                                                     output.anchor("#summary-constructors", "Constr");
                                                  }
                                    *************** public class HtmlDoclet
                                    *** 490,505 ****
                                      
                                                  output.beginCell(CssClass.NAVBAR_TOP_NAVI);
                                                  output.print("Detail: ");
                                    !             
                                                  if (currentClass.innerClasses().length > 0) {
                                    !                output.anchor("#detail-inner", "Nested");               
                                                  }
                                                  else {
                                                     output.print("Nested");
                                                  }
                                      
                                                  output.print(" | ");
                                    !             
                                                  if (currentClass.fields().length > 0) {
                                                     output.anchor("#detail-fields", "Field");
                                                  }
                                    --- 507,522 ----
                                      
                                                  output.beginCell(CssClass.NAVBAR_TOP_NAVI);
                                                  output.print("Detail: ");
                                    ! 
                                                  if (currentClass.innerClasses().length > 0) {
                                    !                output.anchor("#detail-inner", "Nested");
                                                  }
                                                  else {
                                                     output.print("Nested");
                                                  }
                                      
                                                  output.print(" | ");
                                    ! 
                                                  if (currentClass.fields().length > 0) {
                                                     output.anchor("#detail-fields", "Field");
                                                  }
                                    *************** public class HtmlDoclet
                                    *** 508,514 ****
                                                  }
                                      
                                                  output.print(" | ");
                                    !             
                                                  if (currentClass.methods().length > 0) {
                                                     output.anchor("#detail-methods", "Method");
                                                  }
                                    --- 525,531 ----
                                                  }
                                      
                                                  output.print(" | ");
                                    ! 
                                                  if (currentClass.methods().length > 0) {
                                                     output.anchor("#detail-methods", "Method");
                                                  }
                                    *************** public class HtmlDoclet
                                    *** 517,523 ****
                                                  }
                                      
                                                  output.print(" | ");
                                    !             
                                                  if (currentClass.constructors().length > 0) {
                                                     output.anchor("#detail-constructors", "Constr");
                                                  }
                                    --- 534,540 ----
                                                  }
                                      
                                                  output.print(" | ");
                                    ! 
                                                  if (currentClass.constructors().length > 0) {
                                                     output.anchor("#detail-constructors", "Constr");
                                                  }
                                    *************** public class HtmlDoclet
                                    *** 532,538 ****
                                            }
                                         }
                                      
                                    !    private void printNavBarTopPackage(HtmlPage output, String currentPage, 
                                                                            PackageDoc prevPackage, PackageDoc nextPackage)
                                         {
                                            if (!optionNoNavBar.getValue()) {
                                    --- 549,555 ----
                                            }
                                         }
                                      
                                    !    private void printNavBarTopPackage(HtmlPage output, String currentPage,
                                                                            PackageDoc prevPackage, PackageDoc nextPackage)
                                         {
                                            if (!optionNoNavBar.getValue()) {
                                    *************** public class HtmlDoclet
                                    *** 620,626 ****
                                                  ClassDoc classDoc = classDocs[i];
                                                  if (classDoc.isIncluded()) {
                                                     output.beginRow();
                                    !             
                                                     output.beginCell(CssClass.PACKAGE_SUMMARY_LEFT);
                                                     printType(output, classDoc);
                                                     output.endCell();
                                    --- 637,643 ----
                                                  ClassDoc classDoc = classDocs[i];
                                                  if (classDoc.isIncluded()) {
                                                     output.beginRow();
                                    ! 
                                                     output.beginCell(CssClass.PACKAGE_SUMMARY_LEFT);
                                                     printType(output, classDoc);
                                                     output.endCell();
                                    *************** public class HtmlDoclet
                                    *** 656,664 ****
                                            out.close();
                                         }
                                      
                                    !    private void printPackagePage(File packageDir, String pathToRoot, 
                                    !                                  PackageDoc packageDoc, 
                                    !                                  PackageDoc prevPackageDoc, 
                                                                       PackageDoc nextPackageDoc)
                                            throws IOException
                                         {
                                    --- 673,681 ----
                                            out.close();
                                         }
                                      
                                    !    private void printPackagePage(File packageDir, String pathToRoot,
                                    !                                  PackageDoc packageDoc,
                                    !                                  PackageDoc prevPackageDoc,
                                                                       PackageDoc nextPackageDoc)
                                            throws IOException
                                         {
                                    *************** public class HtmlDoclet
                                    *** 686,699 ****
                                            output.beginDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
                                            printTags(output, packageDoc, packageDoc.firstSentenceTags(), true);
                                            output.endDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
                                    !       
                                    !       printPackagePageClasses(output, packageDoc.interfaces(), 
                                                                    "Interface Summary");
                                    !       printPackagePageClasses(output, packageDoc.ordinaryClasses(), 
                                                                    "Class Summary");
                                    !       printPackagePageClasses(output, packageDoc.exceptions(), 
                                                                    "Exception Summary");
                                    !       printPackagePageClasses(output, packageDoc.errors(), 
                                                                    "Error Summary");
                                      
                                            output.anchorName("description");
                                    --- 703,716 ----
                                            output.beginDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
                                            printTags(output, packageDoc, packageDoc.firstSentenceTags(), true);
                                            output.endDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
                                    ! 
                                    !       printPackagePageClasses(output, packageDoc.interfaces(),
                                                                    "Interface Summary");
                                    !       printPackagePageClasses(output, packageDoc.ordinaryClasses(),
                                                                    "Class Summary");
                                    !       printPackagePageClasses(output, packageDoc.exceptions(),
                                                                    "Exception Summary");
                                    !       printPackagePageClasses(output, packageDoc.errors(),
                                                                    "Error Summary");
                                      
                                            output.anchorName("description");
                                    *************** public class HtmlDoclet
                                    *** 716,722 ****
                                            TreeNode(ClassDoc classDoc) {
                                               TreeNode.this.classDoc = classDoc;
                                            }
                                    !       
                                            public boolean equals(Object other)
                                            {
                                               return classDoc.equals(((TreeNode)other).classDoc);
                                    --- 733,739 ----
                                            TreeNode(ClassDoc classDoc) {
                                               TreeNode.this.classDoc = classDoc;
                                            }
                                    ! 
                                            public boolean equals(Object other)
                                            {
                                               return classDoc.equals(((TreeNode)other).classDoc);
                                    *************** public class HtmlDoclet
                                    *** 797,803 ****
                                            if (null != parentNode) {
                                               parentClassDoc = parentNode.classDoc;
                                            }
                                    !       if (interfaces.length > 0 
                                                && !(interfaces.length == 1 && interfaces[0].equals(parentClassDoc))) {
                                               if (node.classDoc.isInterface()) {
                                                  output.print(" (also implements ");
                                    --- 814,820 ----
                                            if (null != parentNode) {
                                               parentClassDoc = parentNode.classDoc;
                                            }
                                    !       if (interfaces.length > 0
                                                && !(interfaces.length == 1 && interfaces[0].equals(parentClassDoc))) {
                                               if (node.classDoc.isInterface()) {
                                                  output.print(" (also implements ");
                                    *************** public class HtmlDoclet
                                    *** 843,849 ****
                                         }
                                      
                                         private void printClassTree(HtmlPage output, ClassDoc[] classDocs)
                                    !    {      
                                            Map classTreeMap = new HashMap();
                                      
                                            for (int i=0; i<classDocs.length; ++i) {
                                    --- 860,866 ----
                                         }
                                      
                                         private void printClassTree(HtmlPage output, ClassDoc[] classDocs)
                                    !    {
                                            Map classTreeMap = new HashMap();
                                      
                                            for (int i=0; i<classDocs.length; ++i) {
                                    *************** public class HtmlDoclet
                                    *** 895,901 ****
                                            HtmlPage output = newHtmlPage(new File(packageDir,
                                                                                   "tree" + filenameExtension),
                                                                          pathToRoot);
                                    !       output.beginPage(getPageTitle(packageDoc.name() + " Hierarchy"), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_PACKAGE_TREE);
                                    --- 912,918 ----
                                            HtmlPage output = newHtmlPage(new File(packageDir,
                                                                                   "tree" + filenameExtension),
                                                                          pathToRoot);
                                    !       output.beginPage(getPageTitle(packageDoc.name() + " Hierarchy"),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_PACKAGE_TREE);
                                    *************** public class HtmlDoclet
                                    *** 919,925 ****
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "tree" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Hierarchy"), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_FULL_TREE);
                                    --- 936,942 ----
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "tree" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Hierarchy"),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_FULL_TREE);
                                    *************** public class HtmlDoclet
                                    *** 1036,1066 ****
                                                                                   "index" + filenameExtension),
                                                                          ".",
                                                                          HtmlPage.DOCTYPE_FRAMESET);
                                    !       
                                            String title = getWindowTitle();
                                            output.beginPage(title, getOutputCharset(), getStylesheets());
                                            output.beginElement("frameset", "cols", "20%,80%");
                                      
                                            String contentURL;
                                            if (isSinglePackage()) {
                                    !          output.atomicElement("frame", 
                                    !                               new String[] { "src", "name" }, 
                                                                    new String[] { getPackageURL(getSinglePackage()) + "classes" + filenameExtension, "classes" });
                                               contentURL = getPackageURL(getSinglePackage()) + "package-summary.html";
                                            }
                                            else {
                                               output.beginElement("frameset", "rows", "25%,75%");
                                    !          output.atomicElement("frame", 
                                    !                               new String[] { "src", "name" }, 
                                                                    new String[] { "all-packages" + filenameExtension, "packages" });
                                    !          output.atomicElement("frame", 
                                    !                               new String[] { "src", "name" }, 
                                                                    new String[] { "all-classes" + filenameExtension, "classes" });
                                               output.endElement("frameset");
                                               contentURL = "overview-summary" + filenameExtension;
                                            }
                                    !       output.atomicElement("frame", 
                                    !                            new String[] { "src", "name" }, 
                                                                 new String[] { contentURL, "content" });
                                            output.endElement("frameset");
                                            output.endPage();
                                    --- 1053,1083 ----
                                                                                   "index" + filenameExtension),
                                                                          ".",
                                                                          HtmlPage.DOCTYPE_FRAMESET);
                                    ! 
                                            String title = getWindowTitle();
                                            output.beginPage(title, getOutputCharset(), getStylesheets());
                                            output.beginElement("frameset", "cols", "20%,80%");
                                      
                                            String contentURL;
                                            if (isSinglePackage()) {
                                    !          output.atomicElement("frame",
                                    !                               new String[] { "src", "name" },
                                                                    new String[] { getPackageURL(getSinglePackage()) + "classes" + filenameExtension, "classes" });
                                               contentURL = getPackageURL(getSinglePackage()) + "package-summary.html";
                                            }
                                            else {
                                               output.beginElement("frameset", "rows", "25%,75%");
                                    !          output.atomicElement("frame",
                                    !                               new String[] { "src", "name" },
                                                                    new String[] { "all-packages" + filenameExtension, "packages" });
                                    !          output.atomicElement("frame",
                                    !                               new String[] { "src", "name" },
                                                                    new String[] { "all-classes" + filenameExtension, "classes" });
                                               output.endElement("frameset");
                                               contentURL = "overview-summary" + filenameExtension;
                                            }
                                    !       output.atomicElement("frame",
                                    !                            new String[] { "src", "name" },
                                                                 new String[] { contentURL, "content" });
                                            output.endElement("frameset");
                                            output.endPage();
                                    *************** public class HtmlDoclet
                                    *** 1117,1123 ****
                                         {
                                            CssClass entryClass;
                                            if (classDoc.isInterface()) {
                                    !          entryClass = CssClass.CLASS_MENU_ENTRY_INTERFACE;        
                                            }
                                            else {
                                               entryClass = CssClass.CLASS_MENU_ENTRY_CLASS;
                                    --- 1134,1140 ----
                                         {
                                            CssClass entryClass;
                                            if (classDoc.isInterface()) {
                                    !          entryClass = CssClass.CLASS_MENU_ENTRY_INTERFACE;
                                            }
                                            else {
                                               entryClass = CssClass.CLASS_MENU_ENTRY_CLASS;
                                    *************** public class HtmlDoclet
                                    *** 1211,1217 ****
                                                                                   "classes" + filenameExtension),
                                                                          pathToRoot);
                                      
                                    !       output.beginPage(getPageTitle(packageDoc.name() + " Class Menu"), 
                                                             getOutputCharset(), getStylesheets());
                                            output.beginBody(CssClass.BODY_MENU_CLASSES, false);
                                      
                                    --- 1228,1234 ----
                                                                                   "classes" + filenameExtension),
                                                                          pathToRoot);
                                      
                                    !       output.beginPage(getPageTitle(packageDoc.name() + " Class Menu"),
                                                             getOutputCharset(), getStylesheets());
                                            output.beginBody(CssClass.BODY_MENU_CLASSES, false);
                                      
                                    *************** public class HtmlDoclet
                                    *** 1263,1269 ****
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   pageName + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Alphabetical Index"), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_INDEX);
                                    --- 1280,1286 ----
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   pageName + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Alphabetical Index"),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_INDEX);
                                    *************** public class HtmlDoclet
                                    *** 1272,1278 ****
                                            }
                                            else {
                                               printNavBarTop(output, "split-index", null,
                                    !                         (index > 1) ? new Integer(index - 1) : null, 
                                                              (index < maxIndex) ? new Integer(index + 1) : null);
                                            }
                                      
                                    --- 1289,1295 ----
                                            }
                                            else {
                                               printNavBarTop(output, "split-index", null,
                                    !                         (index > 1) ? new Integer(index - 1) : null,
                                                              (index < maxIndex) ? new Integer(index + 1) : null);
                                            }
                                      
                                    *************** public class HtmlDoclet
                                    *** 1302,1308 ****
                                                     }
                                                     output.print(c.toString());
                                                     output.endAnchor();
                                    !                output.endSpan(CssClass.INDEX_LETTER);     
                                                     output.beginSpan(CssClass.INDEX_LETTER_SPACER);
                                                     output.print(" ");
                                                     output.endSpan(CssClass.INDEX_LETTER_SPACER);
                                    --- 1319,1325 ----
                                                     }
                                                     output.print(c.toString());
                                                     output.endAnchor();
                                    !                output.endSpan(CssClass.INDEX_LETTER);
                                                     output.beginSpan(CssClass.INDEX_LETTER_SPACER);
                                                     output.print(" ");
                                                     output.endSpan(CssClass.INDEX_LETTER_SPACER);
                                    *************** public class HtmlDoclet
                                    *** 1358,1364 ****
                                               while (it.hasNext()) {
                                                  Doc doc = (Doc)it.next();
                                                  output.beginRow();
                                    !             
                                                  output.beginCell(CssClass.DEPRECATION_SUMMARY_LEFT);
                                                  if (doc instanceof Type) {
                                                     printType(output, (Type)doc);
                                    --- 1375,1381 ----
                                               while (it.hasNext()) {
                                                  Doc doc = (Doc)it.next();
                                                  output.beginRow();
                                    ! 
                                                  output.beginCell(CssClass.DEPRECATION_SUMMARY_LEFT);
                                                  if (doc instanceof Type) {
                                                     printType(output, (Type)doc);
                                    *************** public class HtmlDoclet
                                    *** 1395,1401 ****
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "serialized-form" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Serialized Form"), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
                                    --- 1412,1418 ----
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "serialized-form" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Serialized Form"),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
                                    *************** public class HtmlDoclet
                                    *** 1449,1460 ****
                                                           output.endDiv(CssClass.SERIALIZED_SVUID_OUTER);
                                                        }
                                                     }
                                    !                printMemberDetails(output, 
                                    !                                   classDoc.serializationMethods(), 
                                                                        "Serialization Methods",
                                                                        true, null);
                                    !                printMemberDetails(output, 
                                    !                                   classDoc.serializableFields(), 
                                                                        "Serialized Fields",
                                                                        true, null);
                                                  }
                                    --- 1466,1477 ----
                                                           output.endDiv(CssClass.SERIALIZED_SVUID_OUTER);
                                                        }
                                                     }
                                    !                printMemberDetails(output,
                                    !                                   classDoc.serializationMethods(),
                                                                        "Serialization Methods",
                                                                        true, null);
                                    !                printMemberDetails(output,
                                    !                                   classDoc.serializableFields(),
                                                                        "Serialized Fields",
                                                                        true, null);
                                                  }
                                    *************** public class HtmlDoclet
                                    *** 1475,1481 ****
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "deprecated" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Deprecated API"), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
                                    --- 1492,1498 ----
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "deprecated" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Deprecated API"),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
                                    *************** public class HtmlDoclet
                                    *** 1611,1617 ****
                                               output.beginDiv(CssClass.DEPRECATION_EMPTY);
                                               output.print("No deprecated classes or class members in this API.");
                                               output.endDiv(CssClass.DEPRECATION_EMPTY);
                                    !          
                                            }
                                      
                                            printNavBarBottom(output, "deprecated");
                                    --- 1628,1634 ----
                                               output.beginDiv(CssClass.DEPRECATION_EMPTY);
                                               output.print("No deprecated classes or class members in this API.");
                                               output.endDiv(CssClass.DEPRECATION_EMPTY);
                                    ! 
                                            }
                                      
                                            printNavBarBottom(output, "deprecated");
                                    *************** public class HtmlDoclet
                                    *** 1626,1632 ****
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "about" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("About"), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_ABOUT);
                                    --- 1643,1649 ----
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "about" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("About"),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_ABOUT);
                                    *************** public class HtmlDoclet
                                    *** 1646,1655 ****
                                            output.endAnchor();
                                            output.print(", on ");
                                            DateFormat format = DateFormat.getDateTimeInstance(DateFormat.LONG,
                                    ! 							 DateFormat.LONG,
                                    ! 							 Locale.US);
                                            Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"),
                                    ! 					  Locale.US);
                                            format.setCalendar(cal);
                                            output.print(format.format(new Date()));
                                            output.print(".");
                                    --- 1663,1672 ----
                                            output.endAnchor();
                                            output.print(", on ");
                                            DateFormat format = DateFormat.getDateTimeInstance(DateFormat.LONG,
                                    !                                                          DateFormat.LONG,
                                    !                                                          Locale.US);
                                            Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"),
                                    !                                           Locale.US);
                                            format.setCalendar(cal);
                                            output.print(format.format(new Date()));
                                            output.print(".");
                                    *************** public class HtmlDoclet
                                    *** 1665,1674 ****
                                         private void printSourcePage(File packageDir, ClassDoc classDoc, String sourceXhtml)
                                            throws IOException
                                         {
                                    !       HtmlPage output = newHtmlPage(new File(packageDir, 
                                                                                   classDoc.name() + "-source" + filenameExtension),
                                                                          getPathToRoot(packageDir, getTargetDirectory()));
                                    !       output.beginPage(getPageTitle("Source for " + classDoc.qualifiedTypeName()), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                      
                                    --- 1682,1691 ----
                                         private void printSourcePage(File packageDir, ClassDoc classDoc, String sourceXhtml)
                                            throws IOException
                                         {
                                    !       HtmlPage output = newHtmlPage(new File(packageDir,
                                                                                   classDoc.name() + "-source" + filenameExtension),
                                                                          getPathToRoot(packageDir, getTargetDirectory()));
                                    !       output.beginPage(getPageTitle("Source for " + classDoc.qualifiedTypeName()),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                      
                                    *************** public class HtmlDoclet
                                    *** 1695,1701 ****
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "help" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Help"), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_HELP);
                                    --- 1712,1718 ----
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "help" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getPageTitle("Help"),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_HELP);
                                    *************** public class HtmlDoclet
                                    *** 1703,1709 ****
                                            printNavBarTop(output, "help");
                                      
                                            InputStream helpIn;
                                    !       if (null != optionHelpFile.getValue()){ 
                                               helpIn = new FileInputStream(optionHelpFile.getValue());
                                            }
                                            else {
                                    --- 1720,1726 ----
                                            printNavBarTop(output, "help");
                                      
                                            InputStream helpIn;
                                    !       if (null != optionHelpFile.getValue()){
                                               helpIn = new FileInputStream(optionHelpFile.getValue());
                                            }
                                            else {
                                    *************** public class HtmlDoclet
                                    *** 1725,1731 ****
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "overview-summary" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getWindowTitle(), 
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_OVERVIEW);
                                    --- 1742,1748 ----
                                            HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
                                                                                   "overview-summary" + filenameExtension),
                                                                          ".");
                                    !       output.beginPage(getWindowTitle(),
                                                             getOutputCharset(),
                                                             getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_OVERVIEW);
                                    *************** public class HtmlDoclet
                                    *** 1754,1760 ****
                                            List packageGroups = getPackageGroups();
                                      
                                            if (packageGroups.isEmpty()) {
                                    !       
                                               printOverviewPackages(output, getAllPackages(),
                                                                     "All Packages");
                                            }
                                    --- 1771,1777 ----
                                            List packageGroups = getPackageGroups();
                                      
                                            if (packageGroups.isEmpty()) {
                                    ! 
                                               printOverviewPackages(output, getAllPackages(),
                                                                     "All Packages");
                                            }
                                    *************** public class HtmlDoclet
                                    *** 1765,1778 ****
                                               Iterator it = packageGroups.iterator();
                                               while (it.hasNext()) {
                                                  PackageGroup packageGroup = (PackageGroup)it.next();
                                    !             printOverviewPackages(output, 
                                                                        packageGroup.getPackages(),
                                                                        packageGroup.getName());
                                                  otherPackages.removeAll(packageGroup.getPackages());
                                               }
                                      
                                               if (!otherPackages.isEmpty()) {
                                    !             printOverviewPackages(output, 
                                                                        otherPackages,
                                                                        "Other Packages");
                                               }
                                    --- 1782,1795 ----
                                               Iterator it = packageGroups.iterator();
                                               while (it.hasNext()) {
                                                  PackageGroup packageGroup = (PackageGroup)it.next();
                                    !             printOverviewPackages(output,
                                                                        packageGroup.getPackages(),
                                                                        packageGroup.getName());
                                                  otherPackages.removeAll(packageGroup.getPackages());
                                               }
                                      
                                               if (!otherPackages.isEmpty()) {
                                    !             printOverviewPackages(output,
                                                                        otherPackages,
                                                                        "Other Packages");
                                               }
                                    *************** public class HtmlDoclet
                                    *** 1799,1805 ****
                                            while (it.hasNext()) {
                                               PackageDoc packageDoc = (PackageDoc)it.next();
                                               output.beginRow();
                                    !          
                                               output.beginCell(CssClass.OVERVIEW_SUMMARY_LEFT);
                                               output.beginAnchor(getPackageURL(packageDoc) + "package-summary" + filenameExtension);
                                               output.print(packageDoc.name());
                                    --- 1816,1822 ----
                                            while (it.hasNext()) {
                                               PackageDoc packageDoc = (PackageDoc)it.next();
                                               output.beginRow();
                                    ! 
                                               output.beginCell(CssClass.OVERVIEW_SUMMARY_LEFT);
                                               output.beginAnchor(getPackageURL(packageDoc) + "package-summary" + filenameExtension);
                                               output.print(packageDoc.name());
                                    *************** public class HtmlDoclet
                                    *** 1825,1832 ****
                                            output.beginBody(CssClass.BODY_CONTENT_USES);
                                            printNavBarTop(output, "uses", classDoc, null, null);
                                      
                                    !       output.div(CssClass.USAGE_TITLE, 
                                    !                  "Uses of " + getClassTypeName(classDoc) 
                                                       + " " + classDoc.qualifiedName());
                                      
                                            Map packageToUsageTypeMap = getUsageOfClass(classDoc);
                                    --- 1842,1849 ----
                                            output.beginBody(CssClass.BODY_CONTENT_USES);
                                            printNavBarTop(output, "uses", classDoc, null, null);
                                      
                                    !       output.div(CssClass.USAGE_TITLE,
                                    !                  "Uses of " + getClassTypeName(classDoc)
                                                       + " " + classDoc.qualifiedName());
                                      
                                            Map packageToUsageTypeMap = getUsageOfClass(classDoc);
                                    *************** public class HtmlDoclet
                                    *** 1842,1850 ****
                                                  Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();
                                                  while (usageTypeIterator.hasNext()) {
                                                     UsageType usageType = (UsageType)usageTypeIterator.next();
                                    !                
                                                     output.beginTable(CssClass.USAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
                                    !                output.rowDiv(CssClass.USAGE_TABLE_HEADER, format("usagetype." + usageType.getId(), 
                                                                                                       classDoc.qualifiedName()));
                                      
                                                     Set users = (Set)usageTypeToUsersMap.get(usageType);
                                    --- 1859,1867 ----
                                                  Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();
                                                  while (usageTypeIterator.hasNext()) {
                                                     UsageType usageType = (UsageType)usageTypeIterator.next();
                                    ! 
                                                     output.beginTable(CssClass.USAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
                                    !                output.rowDiv(CssClass.USAGE_TABLE_HEADER, format("usagetype." + usageType.getId(),
                                                                                                       classDoc.qualifiedName()));
                                      
                                                     Set users = (Set)usageTypeToUsersMap.get(usageType);
                                    *************** public class HtmlDoclet
                                    *** 1922,1928 ****
                                                           printParameters(output, (ExecutableMemberDoc)user);
                                                           output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
                                                           output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
                                    !                      printTags(output, ((ConstructorDoc)user), 
                                                                     ((ConstructorDoc)user).firstSentenceTags(), true);
                                                           output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
                                                           output.endCell();
                                    --- 1939,1945 ----
                                                           printParameters(output, (ExecutableMemberDoc)user);
                                                           output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
                                                           output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
                                    !                      printTags(output, ((ConstructorDoc)user),
                                                                     ((ConstructorDoc)user).firstSentenceTags(), true);
                                                           output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
                                                           output.endCell();
                                    *************** public class HtmlDoclet
                                    *** 1936,1942 ****
                                            }
                                            else {
                                               output.div(CssClass.USAGE_EMPTY,
                                    !                     getClassTypeName(classDoc) 
                                                          + " " + classDoc.qualifiedName() + " is not used by any class in this documentation set.");
                                            }
                                            printNavBarBottom(output, "uses", classDoc);
                                    --- 1953,1959 ----
                                            }
                                            else {
                                               output.div(CssClass.USAGE_EMPTY,
                                    !                     getClassTypeName(classDoc)
                                                          + " " + classDoc.qualifiedName() + " is not used by any class in this documentation set.");
                                            }
                                            printNavBarBottom(output, "uses", classDoc);
                                    *************** public class HtmlDoclet
                                    *** 1972,1978 ****
                                            }
                                         }
                                      
                                    !    private static boolean isSubInterface(ClassDoc classDoc, ClassDoc otherClassDoc) 
                                         {
                                            ClassDoc[] interfaces = otherClassDoc.interfaces();
                                            for (int i=0; i<interfaces.length; ++i) {
                                    --- 1989,1995 ----
                                            }
                                         }
                                      
                                    !    private static boolean isSubInterface(ClassDoc classDoc, ClassDoc otherClassDoc)
                                         {
                                            ClassDoc[] interfaces = otherClassDoc.interfaces();
                                            for (int i=0; i<interfaces.length; ++i) {
                                    *************** public class HtmlDoclet
                                    *** 1987,1994 ****
                                         }
                                      
                                         private void printCommaSeparatedTypes(HtmlPage output,
                                    !                                          Collection list, 
                                    !                                          String header, 
                                                                               CssClass cssClass)
                                         {
                                            if (!list.isEmpty()) {
                                    --- 2004,2011 ----
                                         }
                                      
                                         private void printCommaSeparatedTypes(HtmlPage output,
                                    !                                          Collection list,
                                    !                                          String header,
                                                                               CssClass cssClass)
                                         {
                                            if (!list.isEmpty()) {
                                    *************** public class HtmlDoclet
                                    *** 2008,2014 ****
                                            }
                                         }
                                      
                                    !    private void printClassPage(File packageDir, String pathToRoot, 
                                                                     ClassDoc classDoc, ClassDoc prevClassDoc, ClassDoc nextClassDoc)
                                            throws IOException
                                         {
                                    --- 2025,2031 ----
                                            }
                                         }
                                      
                                    !    private void printClassPage(File packageDir, String pathToRoot,
                                                                     ClassDoc classDoc, ClassDoc prevClassDoc, ClassDoc nextClassDoc)
                                            throws IOException
                                         {
                                    *************** public class HtmlDoclet
                                    *** 2031,2049 ****
                                               }
                                            }
                                            String parameters = getTypeParameters(classDoc);
                                    !       
                                            output.beginPage(getPageTitle(classDoc.name()), getOutputCharset(),
                                                             keywords, getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_CLASS);
                                            printNavBarTop(output, "class", classDoc, prevClassDoc, nextClassDoc);
                                    !       
                                            output.beginDiv(CssClass.CLASS_TITLE);
                                    !       output.div(CssClass.CLASS_TITLE_PACKAGE, 
                                                       classDoc.containingPackage().name());
                                    !       output.div(CssClass.CLASS_TITLE_CLASS, 
                                    !                  getClassTypeName(classDoc) 
                                                       + " " + classDoc.name()
                                    ! 		 + parameters);
                                            output.endDiv(CssClass.CLASS_TITLE);
                                      
                                            boolean needSep = false;
                                    --- 2048,2066 ----
                                               }
                                            }
                                            String parameters = getTypeParameters(classDoc);
                                    ! 
                                            output.beginPage(getPageTitle(classDoc.name()), getOutputCharset(),
                                                             keywords, getStylesheets());
                                            output.beginBody(CssClass.BODY_CONTENT_CLASS);
                                            printNavBarTop(output, "class", classDoc, prevClassDoc, nextClassDoc);
                                    ! 
                                            output.beginDiv(CssClass.CLASS_TITLE);
                                    !       output.div(CssClass.CLASS_TITLE_PACKAGE,
                                                       classDoc.containingPackage().name());
                                    !       output.div(CssClass.CLASS_TITLE_CLASS,
                                    !                  getClassTypeName(classDoc)
                                                       + " " + classDoc.name()
                                    !                  + parameters);
                                            output.endDiv(CssClass.CLASS_TITLE);
                                      
                                            boolean needSep = false;
                                    *************** public class HtmlDoclet
                                    *** 2054,2070 ****
                                                  = (InterfaceRelation)getInterfaceRelations().get(classDoc);
                                      
                                               printCommaSeparatedTypes(output,
                                    !                                   relation.superInterfaces, 
                                                                        "All Superinterfaces:",
                                                                        CssClass.CLASS_KNOWNIMPLEMENTING);
                                      
                                               printCommaSeparatedTypes(output,
                                    !                                   relation.subInterfaces, 
                                                                        "Known Subinterfaces:",
                                                                        CssClass.CLASS_KNOWNIMPLEMENTING);
                                      
                                               printCommaSeparatedTypes(output,
                                    !                                   relation.implementingClasses, 
                                                                        "Known Implementing Classes:",
                                                                        CssClass.CLASS_KNOWNIMPLEMENTING);
                                      
                                    --- 2071,2087 ----
                                                  = (InterfaceRelation)getInterfaceRelations().get(classDoc);
                                      
                                               printCommaSeparatedTypes(output,
                                    !                                   relation.superInterfaces,
                                                                        "All Superinterfaces:",
                                                                        CssClass.CLASS_KNOWNIMPLEMENTING);
                                      
                                               printCommaSeparatedTypes(output,
                                    !                                   relation.subInterfaces,
                                                                        "Known Subinterfaces:",
                                                                        CssClass.CLASS_KNOWNIMPLEMENTING);
                                      
                                               printCommaSeparatedTypes(output,
                                    !                                   relation.implementingClasses,
                                                                        "Known Implementing Classes:",
                                                                        CssClass.CLASS_KNOWNIMPLEMENTING);
                                      
                                    *************** public class HtmlDoclet
                                    *** 2072,2078 ****
                                                  || !relation.subInterfaces.isEmpty()
                                                  || !relation.implementingClasses.isEmpty();
                                            }
                                    !       else {   
                                               needSep = true;
                                      
                                               if (!"java.lang.Object".equals(classDoc.qualifiedName())) {
                                    --- 2089,2095 ----
                                                  || !relation.subInterfaces.isEmpty()
                                                  || !relation.implementingClasses.isEmpty();
                                            }
                                    !       else {
                                               needSep = true;
                                      
                                               if (!"java.lang.Object".equals(classDoc.qualifiedName())) {
                                    *************** public class HtmlDoclet
                                    *** 2085,2091 ****
                                                  printSuperTreeRec(output, superClasses.listIterator(superClasses.size()), 0);
                                                  output.endElement("ul");
                                                  output.endDiv(CssClass.CLASS_INHERITANCETREE);
                                    !             
                                                  if (null != classDoc.containingClass()) {
                                                     output.beginDiv(CssClass.CLASS_ENCLOSINGCLASS);
                                                     output.div(CssClass.CLASS_ENCLOSINGCLASS_HEADER, "Enclosing Class:");
                                    --- 2102,2108 ----
                                                  printSuperTreeRec(output, superClasses.listIterator(superClasses.size()), 0);
                                                  output.endElement("ul");
                                                  output.endDiv(CssClass.CLASS_INHERITANCETREE);
                                    ! 
                                                  if (null != classDoc.containingClass()) {
                                                     output.beginDiv(CssClass.CLASS_ENCLOSINGCLASS);
                                                     output.div(CssClass.CLASS_ENCLOSINGCLASS_HEADER, "Enclosing Class:");
                                    *************** public class HtmlDoclet
                                    *** 2098,2104 ****
                                                  Set implementedInterfaces = getImplementedInterfaces(classDoc);
                                      
                                                  printCommaSeparatedTypes(output,
                                    !                                      implementedInterfaces, 
                                                                           "Implemented Interfaces:",
                                                                           CssClass.CLASS_KNOWNIMPLEMENTING);
                                      
                                    --- 2115,2121 ----
                                                  Set implementedInterfaces = getImplementedInterfaces(classDoc);
                                      
                                                  printCommaSeparatedTypes(output,
                                    !                                      implementedInterfaces,
                                                                           "Implemented Interfaces:",
                                                                           CssClass.CLASS_KNOWNIMPLEMENTING);
                                      
                                    *************** public class HtmlDoclet
                                    *** 2128,2134 ****
                                      
                                            output.beginDiv(CssClass.CLASS_SYNOPSIS);
                                            output.beginDiv(CssClass.CLASS_SYNOPSIS_DECLARATION);
                                    !       output.print(getFullModifiers(classDoc) + ' ' + getClassTypeKeyword(classDoc) 
                                                         + ' ');
                                            output.beginSpan(CssClass.CLASS_SYNOPSIS_NAME);
                                            if (optionLinkSource.getValue() && null != classDoc.position()) {
                                    --- 2145,2151 ----
                                      
                                            output.beginDiv(CssClass.CLASS_SYNOPSIS);
                                            output.beginDiv(CssClass.CLASS_SYNOPSIS_DECLARATION);
                                    !       output.print(getFullModifiers(classDoc) + ' ' + getClassTypeKeyword(classDoc)
                                                         + ' ');
                                            output.beginSpan(CssClass.CLASS_SYNOPSIS_NAME);
                                            if (optionLinkSource.getValue() && null != classDoc.position()) {
                                    *************** public class HtmlDoclet
                                    *** 2190,2196 ****
                                               if (!classDoc.isInterface()) {
                                                  ClassDoc superClassDoc = classDoc.superclass();
                                                  while (null != superClassDoc
                                    !                    && (!haveInheritedFields 
                                                             || !haveInheritedMethods
                                                             || !haveInheritedClasses)) {
                                                     if (superClassDoc.fields().length > 0) {
                                    --- 2207,2213 ----
                                               if (!classDoc.isInterface()) {
                                                  ClassDoc superClassDoc = classDoc.superclass();
                                                  while (null != superClassDoc
                                    !                    && (!haveInheritedFields
                                                             || !haveInheritedMethods
                                                             || !haveInheritedClasses)) {
                                                     if (superClassDoc.fields().length > 0) {
                                    *************** public class HtmlDoclet
                                    *** 2206,2213 ****
                                                  }
                                               }
                                            }
                                    !       
                                    !       printProgramElementDocs(output, getSortedInnerClasses(classDoc), 
                                                                    "Nested Class Summary", haveInheritedClasses,
                                                                    "summary-inner");
                                      
                                    --- 2223,2230 ----
                                                  }
                                               }
                                            }
                                    ! 
                                    !       printProgramElementDocs(output, getSortedInnerClasses(classDoc),
                                                                    "Nested Class Summary", haveInheritedClasses,
                                                                    "summary-inner");
                                      
                                    *************** public class HtmlDoclet
                                    *** 2221,2227 ****
                                               }
                                            }
                                      
                                    !       printProgramElementDocs(output, getSortedFields(classDoc), 
                                                                    "Field Summary", haveInheritedFields,
                                                                    "summary-fields");
                                      
                                    --- 2238,2244 ----
                                               }
                                            }
                                      
                                    !       printProgramElementDocs(output, getSortedFields(classDoc),
                                                                    "Field Summary", haveInheritedFields,
                                                                    "summary-fields");
                                      
                                    *************** public class HtmlDoclet
                                    *** 2238,2244 ****
                                            {
                                               Iterator it = implementedInterfaces.iterator();
                                               while (it.hasNext()) {
                                    !             ClassDoc implementedInterface 
                                                     = (ClassDoc)it.next();
                                                  if (!"java.io.Serializable".equals(implementedInterface.qualifiedName())
                                                      && !"java.io.Externalizable".equals(implementedInterface.qualifiedName())) {
                                    --- 2255,2261 ----
                                            {
                                               Iterator it = implementedInterfaces.iterator();
                                               while (it.hasNext()) {
                                    !             ClassDoc implementedInterface
                                                     = (ClassDoc)it.next();
                                                  if (!"java.io.Serializable".equals(implementedInterface.qualifiedName())
                                                      && !"java.io.Externalizable".equals(implementedInterface.qualifiedName())) {
                                    *************** public class HtmlDoclet
                                    *** 2246,2255 ****
                                                                           "Fields inherited from interface {0}",
                                                                           implementedInterface);
                                                  }
                                    !          } 
                                            }
                                      
                                    !       printProgramElementDocs(output, getSortedConstructors(classDoc), 
                                                                    "Constructor Summary", false,
                                                                    "summary-constructors");
                                            printProgramElementDocs(output, getSortedMethods(classDoc),
                                    --- 2263,2272 ----
                                                                           "Fields inherited from interface {0}",
                                                                           implementedInterface);
                                                  }
                                    !          }
                                            }
                                      
                                    !       printProgramElementDocs(output, getSortedConstructors(classDoc),
                                                                    "Constructor Summary", false,
                                                                    "summary-constructors");
                                            printProgramElementDocs(output, getSortedMethods(classDoc),
                                    *************** public class HtmlDoclet
                                    *** 2257,2263 ****
                                                                    "summary-methods");
                                      
                                            if (classDoc.isInterface()) {
                                    !          InterfaceRelation relation 
                                                  = (InterfaceRelation)getInterfaceRelations().get(classDoc);
                                               Iterator it = relation.superInterfaces.iterator();
                                               while (it.hasNext()) {
                                    --- 2274,2280 ----
                                                                    "summary-methods");
                                      
                                            if (classDoc.isInterface()) {
                                    !          InterfaceRelation relation
                                                  = (InterfaceRelation)getInterfaceRelations().get(classDoc);
                                               Iterator it = relation.superInterfaces.iterator();
                                               while (it.hasNext()) {
                                    *************** public class HtmlDoclet
                                    *** 2277,2285 ****
                                               }
                                            }
                                      
                                    !       printMemberDetails(output, getSortedFields(classDoc), 
                                                               "Field Details", false, "detail-fields");
                                    !       printMemberDetails(output, getSortedConstructors(classDoc), 
                                                               "Constructor Details", false, "detail-constructors");
                                            printMemberDetails(output, getSortedMethods(classDoc),
                                                               "Method Details", false, "detail-methods");
                                    --- 2294,2302 ----
                                               }
                                            }
                                      
                                    !       printMemberDetails(output, getSortedFields(classDoc),
                                                               "Field Details", false, "detail-fields");
                                    !       printMemberDetails(output, getSortedConstructors(classDoc),
                                                               "Constructor Details", false, "detail-constructors");
                                            printMemberDetails(output, getSortedMethods(classDoc),
                                                               "Method Details", false, "detail-methods");
                                    *************** public class HtmlDoclet
                                    *** 2292,2298 ****
                                         }
                                      
                                         private void printInheritedMembers(HtmlPage output,
                                    !                                       ProgramElementDoc[] memberDocs, 
                                                                            String headerFormat,
                                                                            ClassDoc superclass)
                                         {
                                    --- 2309,2315 ----
                                         }
                                      
                                         private void printInheritedMembers(HtmlPage output,
                                    !                                       ProgramElementDoc[] memberDocs,
                                                                            String headerFormat,
                                                                            ClassDoc superclass)
                                         {
                                    *************** public class HtmlDoclet
                                    *** 2308,2316 ****
                                               else {
                                                  superclassLink = createTypeHref(output, superclass, true);
                                               }
                                    !          output.rowDiv(CssClass.TABLE_SUB_HEADER, 
                                    !                        new MessageFormat(headerFormat).format(new Object[] { 
                                    !                           superclassLink 
                                                             }));
                                      
                                               output.beginRow();
                                    --- 2325,2333 ----
                                               else {
                                                  superclassLink = createTypeHref(output, superclass, true);
                                               }
                                    !          output.rowDiv(CssClass.TABLE_SUB_HEADER,
                                    !                        new MessageFormat(headerFormat).format(new Object[] {
                                    !                           superclassLink
                                                             }));
                                      
                                               output.beginRow();
                                    *************** public class HtmlDoclet
                                    *** 2326,2332 ****
                                                  }
                                                  else if (memberDoc.isInterface()) {
                                                     title = "interface " + ((ClassDoc)memberDoc).qualifiedName();
                                    !             } 
                                                  else if (memberDoc.isClass()) {
                                                     title = "class " + ((ClassDoc)memberDoc).qualifiedName();
                                                  }
                                    --- 2343,2349 ----
                                                  }
                                                  else if (memberDoc.isInterface()) {
                                                     title = "interface " + ((ClassDoc)memberDoc).qualifiedName();
                                    !             }
                                                  else if (memberDoc.isClass()) {
                                                     title = "class " + ((ClassDoc)memberDoc).qualifiedName();
                                                  }
                                    *************** public class HtmlDoclet
                                    *** 2343,2349 ****
                                            }
                                         }
                                      
                                    !    private void collectSpecifiedByRecursive(Set specifyingInterfaces, 
                                                                                  ClassDoc classDoc,
                                                                                  MethodDoc methodDoc)
                                         {
                                    --- 2360,2366 ----
                                            }
                                         }
                                      
                                    !    private void collectSpecifiedByRecursive(Set specifyingInterfaces,
                                                                                  ClassDoc classDoc,
                                                                                  MethodDoc methodDoc)
                                         {
                                    *************** public class HtmlDoclet
                                    *** 2416,2422 ****
                                                     else {
                                                        type = ((FieldDoc)memberDoc).type();
                                                     }
                                    !                
                                                     synopsis.append(" ");
                                                     synopsisLength ++;
                                                     synopsis.append(createTypeHref(output, type, false));
                                    --- 2433,2439 ----
                                                     else {
                                                        type = ((FieldDoc)memberDoc).type();
                                                     }
                                    ! 
                                                     synopsis.append(" ");
                                                     synopsisLength ++;
                                                     synopsis.append(createTypeHref(output, type, false));
                                    *************** public class HtmlDoclet
                                    *** 2510,2523 ****
                                                        Set specifyingInterfaces = new LinkedHashSet();
                                                        if (memberDoc.containingClass().isInterface()) {
                                                           collectSpecifiedByRecursive(specifyingInterfaces,
                                    !                                                  memberDoc.containingClass(), 
                                                                                       (MethodDoc)memberDoc);
                                                        }
                                                        else {
                                                           for (ClassDoc cd = memberDoc.containingClass();
                                                                null != cd; cd = cd.superclass()) {
                                                              collectSpecifiedByRecursive(specifyingInterfaces,
                                    !                                                     cd, 
                                                                                          (MethodDoc)memberDoc);
                                                           }
                                                        }
                                    --- 2527,2540 ----
                                                        Set specifyingInterfaces = new LinkedHashSet();
                                                        if (memberDoc.containingClass().isInterface()) {
                                                           collectSpecifiedByRecursive(specifyingInterfaces,
                                    !                                                  memberDoc.containingClass(),
                                                                                       (MethodDoc)memberDoc);
                                                        }
                                                        else {
                                                           for (ClassDoc cd = memberDoc.containingClass();
                                                                null != cd; cd = cd.superclass()) {
                                                              collectSpecifiedByRecursive(specifyingInterfaces,
                                    !                                                     cd,
                                                                                          (MethodDoc)memberDoc);
                                                           }
                                                        }
                                    *************** public class HtmlDoclet
                                    *** 2530,2536 ****
                                                           while (it.hasNext()) {
                                                              MethodDoc specifyingInterfaceMethod = (MethodDoc)it.next();
                                                              output.beginDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_ITEM);
                                    !                         output.beginAnchor(getMemberDocURL(output, 
                                                                                                 specifyingInterfaceMethod));
                                                              output.print(memberDoc.name());
                                                              output.endAnchor();
                                    --- 2547,2553 ----
                                                           while (it.hasNext()) {
                                                              MethodDoc specifyingInterfaceMethod = (MethodDoc)it.next();
                                                              output.beginDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_ITEM);
                                    !                         output.beginAnchor(getMemberDocURL(output,
                                                                                                 specifyingInterfaceMethod));
                                                              output.print(memberDoc.name());
                                                              output.endAnchor();
                                    *************** public class HtmlDoclet
                                    *** 2540,2553 ****
                                                           }
                                                           output.endDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_LIST);
                                                        }
                                    !                   
                                                        ClassDoc overriddenClassDoc = null;
                                                        MemberDoc specifyingSuperMethod = null;
                                      
                                                        for (ClassDoc superclassDoc = memberDoc.containingClass().superclass();
                                                             null != superclassDoc && null == overriddenClassDoc;
                                                             superclassDoc = superclassDoc.superclass()) {
                                    !                      
                                                           MethodDoc[] methods = superclassDoc.methods();
                                                           for (int j=0; j<methods.length; ++j) {
                                                              if (methods[j].name().equals(memberDoc.name())
                                    --- 2557,2570 ----
                                                           }
                                                           output.endDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_LIST);
                                                        }
                                    ! 
                                                        ClassDoc overriddenClassDoc = null;
                                                        MemberDoc specifyingSuperMethod = null;
                                      
                                                        for (ClassDoc superclassDoc = memberDoc.containingClass().superclass();
                                                             null != superclassDoc && null == overriddenClassDoc;
                                                             superclassDoc = superclassDoc.superclass()) {
                                    ! 
                                                           MethodDoc[] methods = superclassDoc.methods();
                                                           for (int j=0; j<methods.length; ++j) {
                                                              if (methods[j].name().equals(memberDoc.name())
                                    *************** public class HtmlDoclet
                                    *** 2564,2570 ****
                                                           output.div(CssClass.MEMBER_DETAIL_OVERRIDDEN_HEADER, "Overrides:");
                                                           output.beginDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_ITEM);
                                      
                                    !                      output.beginAnchor(getMemberDocURL(output, 
                                                                                              specifyingSuperMethod));
                                                           output.print(memberDoc.name());
                                                           output.endAnchor();
                                    --- 2581,2587 ----
                                                           output.div(CssClass.MEMBER_DETAIL_OVERRIDDEN_HEADER, "Overrides:");
                                                           output.beginDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_ITEM);
                                      
                                    !                      output.beginAnchor(getMemberDocURL(output,
                                                                                              specifyingSuperMethod));
                                                           output.print(memberDoc.name());
                                                           output.endAnchor();
                                    *************** public class HtmlDoclet
                                    *** 2595,2601 ****
                                                                    break;
                                                                 }
                                                              }
                                    !                      
                                                              if (null != paramTag) {
                                                                 output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM);
                                                                 output.beginSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_NAME);
                                    --- 2612,2618 ----
                                                                    break;
                                                                 }
                                                              }
                                    ! 
                                                              if (null != paramTag) {
                                                                 output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM);
                                                                 output.beginSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_NAME);
                                    *************** public class HtmlDoclet
                                    *** 2613,2619 ****
                                                           output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST);
                                                        }
                                      
                                    !                   if (execMemberDoc.isMethod() 
                                                            && !"void".equals(((MethodDoc)execMemberDoc).returnType().typeName())) {
                                      
                                                           Tag[] returnTags = execMemberDoc.tags("return");
                                    --- 2630,2636 ----
                                                           output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST);
                                                        }
                                      
                                    !                   if (execMemberDoc.isMethod()
                                                            && !"void".equals(((MethodDoc)execMemberDoc).returnType().typeName())) {
                                      
                                                           Tag[] returnTags = execMemberDoc.tags("return");
                                    *************** public class HtmlDoclet
                                    *** 2680,2686 ****
                                                        if (null != fieldDoc.constantValue()) {
                                                           output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
                                                           output.div(CssClass.MEMBER_DETAIL_THROWN_HEADER, "Field Value:");
                                    !                      output.div(CssClass.MEMBER_DETAIL_THROWN_ITEM, 
                                                                      fieldDoc.constantValueExpression().toString());
                                                           output.endDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
                                                        }
                                    --- 2697,2703 ----
                                                        if (null != fieldDoc.constantValue()) {
                                                           output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
                                                           output.div(CssClass.MEMBER_DETAIL_THROWN_HEADER, "Field Value:");
                                    !                      output.div(CssClass.MEMBER_DETAIL_THROWN_ITEM,
                                                                      fieldDoc.constantValueExpression().toString());
                                                           output.endDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
                                                        }
                                    *************** public class HtmlDoclet
                                    *** 2714,2720 ****
                                         }
                                      
                                         private void printProgramElementDocs(HtmlPage output,
                                    !                                         ProgramElementDoc[] memberDocs, 
                                                                              String header,
                                                                              boolean forceOutputHeader,
                                                                              String anchor)
                                    --- 2731,2737 ----
                                         }
                                      
                                         private void printProgramElementDocs(HtmlPage output,
                                    !                                         ProgramElementDoc[] memberDocs,
                                                                              String header,
                                                                              boolean forceOutputHeader,
                                                                              String anchor)
                                    *************** public class HtmlDoclet
                                    *** 2798,2804 ****
                                            }
                                         }
                                      
                                    !    private void printTag(final HtmlPage output, 
                                                               HtmlRepairer repairer,
                                                               Tag tag, boolean firstSentence,
                                                               boolean inline,
                                    --- 2815,2821 ----
                                            }
                                         }
                                      
                                    !    private void printTag(final HtmlPage output,
                                                               HtmlRepairer repairer,
                                                               Tag tag, boolean firstSentence,
                                                               boolean inline,
                                    *************** public class HtmlDoclet
                                    *** 2827,2833 ****
                                            /*
                                            if (!optionNoComment.getValue()) {
                                               output.print(renderInlineTags(tag.firstSentenceTags(), output));
                                    !          HtmlRepairer repairer = new HtmlRepairer(getRootDoc(), 
                                                                                        true, false,
                                                                                        null, null,
                                                                                        true);
                                    --- 2844,2850 ----
                                            /*
                                            if (!optionNoComment.getValue()) {
                                               output.print(renderInlineTags(tag.firstSentenceTags(), output));
                                    !          HtmlRepairer repairer = new HtmlRepairer(getRootDoc(),
                                                                                        true, false,
                                                                                        null, null,
                                                                                        true);
                                    *************** public class HtmlDoclet
                                    *** 2841,2849 ****
                                      
                                         private String getClassDocURL(HtmlPage output, ClassDoc classDoc)
                                         {
                                    !       return output.getPathToRoot() 
                                               + "/"
                                    !          + getPackageURL(classDoc.containingPackage()) 
                                               + classDoc.name() + filenameExtension;
                                         }
                                      
                                    --- 2858,2866 ----
                                      
                                         private String getClassDocURL(HtmlPage output, ClassDoc classDoc)
                                         {
                                    !       return output.getPathToRoot()
                                               + "/"
                                    !          + getPackageURL(classDoc.containingPackage())
                                               + classDoc.name() + filenameExtension;
                                         }
                                      
                                    *************** public class HtmlDoclet
                                    *** 2888,2894 ****
                                               if (type.qualifiedTypeName().length() > type.typeName().length()) {
                                                  String packageName = type.qualifiedTypeName();
                                                  packageName = packageName.substring(0, packageName.length() - type.typeName().length() - 1);
                                    !             
                                                  ExternalDocSet externalDocSet
                                                     = (ExternalDocSet)packageNameToDocSet.get(packageName);
                                                  if (null != externalDocSet) {
                                    --- 2905,2911 ----
                                               if (type.qualifiedTypeName().length() > type.typeName().length()) {
                                                  String packageName = type.qualifiedTypeName();
                                                  packageName = packageName.substring(0, packageName.length() - type.typeName().length() - 1);
                                    ! 
                                                  ExternalDocSet externalDocSet
                                                     = (ExternalDocSet)packageNameToDocSet.get(packageName);
                                                  if (null != externalDocSet) {
                                    *************** public class HtmlDoclet
                                    *** 2898,2906 ****
                                            }
                                      
                                            StringBuffer result = new StringBuffer();
                                    !       
                                            if (null != url && null != asClassDoc) {
                                    ! 	String parameters = getTypeParameters(asClassDoc);
                                               if (fullyQualified) {
                                                  result.append(output.createHrefString(url,possiblyQualifiedName(asClassDoc) + parameters));
                                               }
                                    --- 2915,2923 ----
                                            }
                                      
                                            StringBuffer result = new StringBuffer();
                                    ! 
                                            if (null != url && null != asClassDoc) {
                                    !         String parameters = getTypeParameters(asClassDoc);
                                               if (fullyQualified) {
                                                  result.append(output.createHrefString(url,possiblyQualifiedName(asClassDoc) + parameters));
                                               }
                                    *************** public class HtmlDoclet
                                    *** 2919,2925 ****
                                            return result.toString();
                                         }
                                      
                                    !    private void printTaglets(final HtmlPage output, Tag[] tags, TagletContext context) 
                                         {
                                            super.printMainTaglets(tags, context, new TagletPrinter() {
                                                  public void printTagletString(String tagletString) {
                                    --- 2936,2942 ----
                                            return result.toString();
                                         }
                                      
                                    !    private void printTaglets(final HtmlPage output, Tag[] tags, TagletContext context)
                                         {
                                            super.printMainTaglets(tags, context, new TagletPrinter() {
                                                  public void printTagletString(String tagletString) {
                                    *************** public class HtmlDoclet
                                    *** 2960,2966 ****
                                               externalDocSet = (ExternalDocSet)packageNameToDocSet.get(classDoc.containingPackage().name());
                                            }
                                            if (null != externalDocSet) {
                                    !          return externalDocSet.getClassDocURL(classDoc.containingPackage().name(), 
                                                                                    classDoc.name());
                                            }
                                            else {
                                    --- 2977,2983 ----
                                               externalDocSet = (ExternalDocSet)packageNameToDocSet.get(classDoc.containingPackage().name());
                                            }
                                            if (null != externalDocSet) {
                                    !          return externalDocSet.getClassDocURL(classDoc.containingPackage().name(),
                                                                                    classDoc.name());
                                            }
                                            else {
                                    *************** public class HtmlDoclet
                                    *** 2989,2995 ****
                                               Iterator it = externalDocSets.iterator();
                                               while (it.hasNext()) {
                                                  ExternalDocSet externalDocSet = (ExternalDocSet)it.next();
                                    !             printNotice("Fetching package list for external documentation set.");     
                                                  try {
                                                     externalDocSet.load(getTargetDirectory());
                                                     if (!isJavadocCompatibleNames() && externalDocSet.isJavadocCompatible()
                                    --- 3006,3012 ----
                                               Iterator it = externalDocSets.iterator();
                                               while (it.hasNext()) {
                                                  ExternalDocSet externalDocSet = (ExternalDocSet)it.next();
                                    !             printNotice("Fetching package list for external documentation set.");
                                                  try {
                                                     externalDocSet.load(getTargetDirectory());
                                                     if (!isJavadocCompatibleNames() && externalDocSet.isJavadocCompatible()
                                    *************** public class HtmlDoclet
                                    *** 3064,3070 ****
                                                                          resourceName);
                                               InputStream in = getClass().getResourceAsStream("/htmldoclet/" + resourceName);
                                               if (in == null) {
                                    !         	in = new FileInputStream("src/resources/htmldoclet/" + resourceName);
                                               }
                                               FileOutputStream out = new FileOutputStream(targetFile);
                                               IOToolkit.copyStream(in, out);
                                    --- 3081,3087 ----
                                                                          resourceName);
                                               InputStream in = getClass().getResourceAsStream("/htmldoclet/" + resourceName);
                                               if (in == null) {
                                    !                 in = new FileInputStream("src/resources/htmldoclet/" + resourceName);
                                               }
                                               FileOutputStream out = new FileOutputStream(targetFile);
                                               IOToolkit.copyStream(in, out);
                                    *************** public class HtmlDoclet
                                    *** 3074,3080 ****
                                      
                                            // Copy stylesheets
                                      
                                    !       if (null != optionAddStylesheet.getValue()) { 
                                               File addStylesheetTargetFile = new File(resourcesDir,
                                                                                       "user.css");
                                      
                                    --- 3091,3097 ----
                                      
                                            // Copy stylesheets
                                      
                                    !       if (null != optionAddStylesheet.getValue()) {
                                               File addStylesheetTargetFile = new File(resourcesDir,
                                                                                       "user.css");
                                      
                                    *************** public class HtmlDoclet
                                    *** 3082,3088 ****
                                                                  addStylesheetTargetFile);
                                            }
                                      
                                    !       if (null != optionStylesheetFile.getValue()) { 
                                               File stylesheetTargetFile = new File(resourcesDir,
                                                                                    "user.css");
                                      
                                    --- 3099,3105 ----
                                                                  addStylesheetTargetFile);
                                            }
                                      
                                    !       if (null != optionStylesheetFile.getValue()) {
                                               File stylesheetTargetFile = new File(resourcesDir,
                                                                                    "user.css");
                                      
                                    *************** public class HtmlDoclet
                                    *** 3150,3156 ****
                                               for (int j=0; j<classDocs.length; ++j) {
                                                  ClassDoc classDoc = classDocs[j];
                                                  if (classDoc.isIncluded()) {
                                    !                printClassPage(packageDir, pathToRoot, 
                                                                    classDocs[j],
                                                                    (j > 0) ? classDocs[j - 1] : null,
                                                                    (j < classDocs.length - 1) ? classDocs[j + 1] : null
                                    --- 3167,3173 ----
                                               for (int j=0; j<classDocs.length; ++j) {
                                                  ClassDoc classDoc = classDocs[j];
                                                  if (classDoc.isIncluded()) {
                                    !                printClassPage(packageDir, pathToRoot,
                                                                    classDocs[j],
                                                                    (j > 0) ? classDocs[j - 1] : null,
                                                                    (j < classDocs.length - 1) ? classDocs[j + 1] : null
                                    *************** public class HtmlDoclet
                                    *** 3167,3179 ****
                                                           properties.setProperty("isCodeSnippet", "true");
                                                           properties.setProperty("hasLineNumbers", "true");
                                                           java2xhtml.setProperties(properties);
                                    !                      
                                                           StringWriter sourceBuffer = new StringWriter();
                                                           FileReader sourceReader = new FileReader(sourceFile);
                                                           IOToolkit.copyStream(sourceReader, sourceBuffer);
                                                           sourceReader.close();
                                                           String result = java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName());
                                    !                      
                                                           printSourcePage(packageDir,
                                                                           classDoc,
                                                                           result);
                                    --- 3184,3196 ----
                                                           properties.setProperty("isCodeSnippet", "true");
                                                           properties.setProperty("hasLineNumbers", "true");
                                                           java2xhtml.setProperties(properties);
                                    ! 
                                                           StringWriter sourceBuffer = new StringWriter();
                                                           FileReader sourceReader = new FileReader(sourceFile);
                                                           IOToolkit.copyStream(sourceReader, sourceBuffer);
                                                           sourceReader.close();
                                                           String result = java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName());
                                    ! 
                                                           printSourcePage(packageDir,
                                                                           classDoc,
                                                                           result);
                                    *************** public class HtmlDoclet
                                    *** 3203,3209 ****
                                            return result.toString();
                                         }
                                      
                                    !    private String getClassTypeName(ClassDoc classDoc) 
                                         {
                                            if (classDoc.isInterface()) {
                                               return "Interface";
                                    --- 3220,3226 ----
                                            return result.toString();
                                         }
                                      
                                    !    private String getClassTypeName(ClassDoc classDoc)
                                         {
                                            if (classDoc.isInterface()) {
                                               return "Interface";
                                    *************** public class HtmlDoclet
                                    *** 3213,3219 ****
                                            }
                                         }
                                      
                                    !    private String getClassTypeKeyword(ClassDoc classDoc) 
                                         {
                                            if (classDoc.isInterface()) {
                                               return "interface";
                                    --- 3230,3236 ----
                                            }
                                         }
                                      
                                    !    private String getClassTypeKeyword(ClassDoc classDoc)
                                         {
                                            if (classDoc.isInterface()) {
                                               return "interface";
                                    *************** public class HtmlDoclet
                                    *** 3294,3356 ****
                                            return options;
                                         }
                                      
                                    !    private DocletOptionFlag optionNoNavBar = 
                                           new DocletOptionFlag("-nonavbar");
                                      
                                    !    private DocletOptionFlag optionNoTree = 
                                           new DocletOptionFlag("-notree");
                                      
                                    !    private DocletOptionFlag optionNoDeprecatedList = 
                                           new DocletOptionFlag("-nodeprecatedlist");
                                      
                                    !    private DocletOptionFlag optionNoIndex = 
                                           new DocletOptionFlag("-noindex");
                                      
                                    !    private DocletOptionFlag optionUse = 
                                           new DocletOptionFlag("-use");
                                      
                                    !    private DocletOptionFlag optionNoHelp = 
                                           new DocletOptionFlag("-nohelp");
                                      
                                    !    private DocletOptionFlag optionNoComment = 
                                           new DocletOptionFlag("-nocomment");
                                      
                                    !    private DocletOptionFlag optionSerialWarn = 
                                           new DocletOptionFlag("-serialwarn");
                                      
                                    !    private DocletOptionFlag optionSplitIndex = 
                                           new DocletOptionFlag("-splitindex");
                                      
                                    !    private DocletOptionString optionHeader = 
                                           new DocletOptionString("-header");
                                      
                                    !    private DocletOptionString optionFooter = 
                                           new DocletOptionString("-footer");
                                      
                                    !    private DocletOptionString optionBottom = 
                                           new DocletOptionString("-bottom");
                                      
                                    !    private DocletOptionString optionWindowTitle = 
                                           new DocletOptionString("-windowtitle");
                                      
                                    !    private DocletOptionString optionDocTitle = 
                                           new DocletOptionString("-doctitle");
                                      
                                    !    private DocletOptionString optionTitle = 
                                           new DocletOptionString("-title");
                                      
                                    !    private DocletOptionFile optionHelpFile = 
                                           new DocletOptionFile("-helpfile");
                                      
                                    !    private DocletOptionFile optionStylesheetFile = 
                                           new DocletOptionFile("-stylesheetfile");
                                      
                                    !    private DocletOptionFlag optionLinkSource = 
                                           new DocletOptionFlag("-linksource");
                                      
                                    !    private DocletOption optionLink = 
                                           new DocletOption("-link") {
                                    !         
                                              public int getLength()
                                              {
                                                 return 2;
                                    --- 3311,3373 ----
                                            return options;
                                         }
                                      
                                    !    private DocletOptionFlag optionNoNavBar =
                                           new DocletOptionFlag("-nonavbar");
                                      
                                    !    private DocletOptionFlag optionNoTree =
                                           new DocletOptionFlag("-notree");
                                      
                                    !    private DocletOptionFlag optionNoDeprecatedList =
                                           new DocletOptionFlag("-nodeprecatedlist");
                                      
                                    !    private DocletOptionFlag optionNoIndex =
                                           new DocletOptionFlag("-noindex");
                                      
                                    !    private DocletOptionFlag optionUse =
                                           new DocletOptionFlag("-use");
                                      
                                    !    private DocletOptionFlag optionNoHelp =
                                           new DocletOptionFlag("-nohelp");
                                      
                                    !    private DocletOptionFlag optionNoComment =
                                           new DocletOptionFlag("-nocomment");
                                      
                                    !    private DocletOptionFlag optionSerialWarn =
                                           new DocletOptionFlag("-serialwarn");
                                      
                                    !    private DocletOptionFlag optionSplitIndex =
                                           new DocletOptionFlag("-splitindex");
                                      
                                    !    private DocletOptionString optionHeader =
                                           new DocletOptionString("-header");
                                      
                                    !    private DocletOptionString optionFooter =
                                           new DocletOptionString("-footer");
                                      
                                    !    private DocletOptionString optionBottom =
                                           new DocletOptionString("-bottom");
                                      
                                    !    private DocletOptionString optionWindowTitle =
                                           new DocletOptionString("-windowtitle");
                                      
                                    !    private DocletOptionString optionDocTitle =
                                           new DocletOptionString("-doctitle");
                                      
                                    !    private DocletOptionString optionTitle =
                                           new DocletOptionString("-title");
                                      
                                    !    private DocletOptionFile optionHelpFile =
                                           new DocletOptionFile("-helpfile");
                                      
                                    !    private DocletOptionFile optionStylesheetFile =
                                           new DocletOptionFile("-stylesheetfile");
                                      
                                    !    private DocletOptionFlag optionLinkSource =
                                           new DocletOptionFlag("-linksource");
                                      
                                    !    private DocletOption optionLink =
                                           new DocletOption("-link") {
                                    ! 
                                              public int getLength()
                                              {
                                                 return 2;
                                    *************** public class HtmlDoclet
                                    *** 3363,3371 ****
                                              }
                                           };
                                      
                                    !    private DocletOption optionLinkOffline = 
                                           new DocletOption("-linkoffline") {
                                    !         
                                              public int getLength()
                                              {
                                                 return 3;
                                    --- 3380,3388 ----
                                              }
                                           };
                                      
                                    !    private DocletOption optionLinkOffline =
                                           new DocletOption("-linkoffline") {
                                    ! 
                                              public int getLength()
                                              {
                                                 return 3;
                                    *************** public class HtmlDoclet
                                    *** 3387,3402 ****
                                         private DocletOptionString optionCharset =
                                           new DocletOptionString("-charset");
                                      
                                    !    private DocletOptionFile optionAddStylesheet = 
                                           new DocletOptionFile("-addstylesheet");
                                      
                                    !    private DocletOptionFlag optionValidHtml = 
                                           new DocletOptionFlag("-validhtml");
                                      
                                    !    private DocletOptionString optionBaseUrl = 
                                           new DocletOptionString("-baseurl");
                                      
                                    !    private DocletOption[] options = 
                                            {
                                               optionNoNavBar,
                                               optionNoTree,
                                    --- 3404,3419 ----
                                         private DocletOptionString optionCharset =
                                           new DocletOptionString("-charset");
                                      
                                    !    private DocletOptionFile optionAddStylesheet =
                                           new DocletOptionFile("-addstylesheet");
                                      
                                    !    private DocletOptionFlag optionValidHtml =
                                           new DocletOptionFlag("-validhtml");
                                      
                                    !    private DocletOptionString optionBaseUrl =
                                           new DocletOptionString("-baseurl");
                                      
                                    !    private DocletOption[] options =
                                            {
                                               optionNoNavBar,
                                               optionNoTree,
                                    *************** public class HtmlDoclet
                                    *** 3480,3486 ****
                                         {
                                            StringBuffer result = new StringBuffer();
                                      
                                    !       HtmlRepairer repairer = new HtmlRepairer(getRootDoc(), 
                                                                                     true, false,
                                                                                     null, null,
                                                                                     true);
                                    --- 3497,3503 ----
                                         {
                                            StringBuffer result = new StringBuffer();
                                      
                                    !       HtmlRepairer repairer = new HtmlRepairer(getRootDoc(),
                                                                                     true, false,
                                                                                     null, null,
                                                                                     true);
                                    *************** public class HtmlDoclet
                                    *** 3498,3504 ****
                                               else if ("@linkplain".equals(tag.name())) {
                                                  result.append(renderSeeTag((SeeTag)tag, context, true));
                                               }
                                    !          else if ("@docRoot".equals(tag.name())) {         
                                                  result.append(((HtmlTagletContext)context).getOutput().getPathToRoot());
                                               }
                                               else {
                                    --- 3515,3521 ----
                                               else if ("@linkplain".equals(tag.name())) {
                                                  result.append(renderSeeTag((SeeTag)tag, context, true));
                                               }
                                    !          else if ("@docRoot".equals(tag.name())) {
                                                  result.append(((HtmlTagletContext)context).getOutput().getPathToRoot());
                                               }
                                               else {
                                    *************** public class HtmlDoclet
                                    *** 3598,3604 ****
                                                     if (null != referencedMemberName) {
                                                        label += '.';
                                                        label += referencedMemberName;
                                    !                   href  += '#' + transformReferencedMemberName(referencedMemberName, 
                                                                                                     externalDocSet.isJavadocCompatible());
                                                     }
                                                     else if (null != seeTag.referencedMemberName()) {
                                    --- 3615,3621 ----
                                                     if (null != referencedMemberName) {
                                                        label += '.';
                                                        label += referencedMemberName;
                                    !                   href  += '#' + transformReferencedMemberName(referencedMemberName,
                                                                                                     externalDocSet.isJavadocCompatible());
                                                     }
                                                     else if (null != seeTag.referencedMemberName()) {
                                    *************** public class HtmlDoclet
                                    *** 3607,3613 ****
                                                  }
                                               }
                                            }
                                    !       
                                            if (null != seeTag.label()
                                                && seeTag.label().length() > 0) {
                                               label = seeTag.label();
                                    --- 3624,3630 ----
                                                  }
                                               }
                                            }
                                    ! 
                                            if (null != seeTag.label()
                                                && seeTag.label().length() > 0) {
                                               label = seeTag.label();
                                    *************** public class HtmlDoclet
                                    *** 3623,3629 ****
                                               }
                                               label.trim();
                                            }
                                    !          
                                            if (null != href) {
                                               result.append("<a href=\"");
                                               result.append(href);
                                    --- 3640,3646 ----
                                               }
                                               label.trim();
                                            }
                                    ! 
                                            if (null != href) {
                                               result.append("<a href=\"");
                                               result.append(href);
                                    *************** public class HtmlDoclet
                                    *** 3659,3665 ****
                                                    || (doc.isClass()
                                                        && (((ClassDoc)doc).isSerializable()
                                                            || ((ClassDoc)doc).isExternalizable())))) {
                                    !          
                                               StringBuffer result = new StringBuffer();
                                               result.append("<dl class=\"tag list\">");
                                               result.append("<dt class=\"tag section header\"><b>");
                                    --- 3676,3682 ----
                                                    || (doc.isClass()
                                                        && (((ClassDoc)doc).isSerializable()
                                                            || ((ClassDoc)doc).isExternalizable())))) {
                                    ! 
                                               StringBuffer result = new StringBuffer();
                                               result.append("<dl class=\"tag list\">");
                                               result.append("<dt class=\"tag section header\"><b>");
                                    *************** public class HtmlDoclet
                                    *** 3702,3708 ****
                                               result.append("</dl>");
                                               return result.toString();
                                            }
                                    !       else if (tags.length > 0 
                                                     && "serial".equals(tagName)
                                                     && ((HtmlTagletContext)context).isOnSerializedPage()) {
                                      
                                    --- 3719,3725 ----
                                               result.append("</dl>");
                                               return result.toString();
                                            }
                                    !       else if (tags.length > 0
                                                     && "serial".equals(tagName)
                                                     && ((HtmlTagletContext)context).isOnSerializedPage()) {
                                      
                                    *************** public class HtmlDoclet
                                    *** 3745,3752 ****
                                         {
                                            Map sheets = new HashMap();
                                            if (null != optionStylesheetFile.getValue()) {
                                    !          sheets.put("User-specified", new String[] { 
                                    !             "resources/user.css" 
                                               });
                                            }
                                            else {
                                    --- 3762,3769 ----
                                         {
                                            Map sheets = new HashMap();
                                            if (null != optionStylesheetFile.getValue()) {
                                    !          sheets.put("User-specified", new String[] {
                                    !             "resources/user.css"
                                               });
                                            }
                                            else {
                                    *************** public class HtmlDoclet
                                    *** 3766,3772 ****
                                            if (getRootDoc().firstSentenceTags().length > 0) {
                                               return false;
                                            }
                                    !       else if (null != optionDocTitle.getValue() 
                                                     || null != optionTitle.getValue()) {
                                               return false;
                                            }
                                    --- 3783,3789 ----
                                            if (getRootDoc().firstSentenceTags().length > 0) {
                                               return false;
                                            }
                                    !       else if (null != optionDocTitle.getValue()
                                                     || null != optionTitle.getValue()) {
                                               return false;
                                            }
                                    *************** public class HtmlDoclet
                                    *** 3781,3805 ****
                                          TypeVariable[] params = classDoc.typeParameters();
                                          if (params != null && params.length > 0)
                                            {
                                    ! 	parameters = "<";
                                    ! 	for (int a = 0; a < params.length; ++a)
                                    ! 	  {
                                    ! 	    parameters += params[a].typeName();
                                    ! 	    Type[] bounds = params[a].bounds();
                                    ! 	    if (bounds != null)
                                    ! 	      {
                                    ! 		parameters += " extends ";
                                    ! 		for (int b = 0; a < bounds.length; ++b)
                                    ! 		  {
                                    ! 		    parameters += bounds[a];
                                    ! 		    if (b != bounds.length - 1)
                                    ! 		      parameters += " & ";
                                    ! 		  }
                                    ! 	      }
                                    ! 	    if (a != params.length - 1)
                                    ! 	      parameters += ",";
                                    ! 	  }
                                    ! 	parameters += ">";
                                            }
                                          return parameters;
                                        }
                                    --- 3798,3822 ----
                                          TypeVariable[] params = classDoc.typeParameters();
                                          if (params != null && params.length > 0)
                                            {
                                    !         parameters = "<";
                                    !         for (int a = 0; a < params.length; ++a)
                                    !           {
                                    !             parameters += params[a].typeName();
                                    !             Type[] bounds = params[a].bounds();
                                    !             if (bounds != null)
                                    !               {
                                    !                 parameters += " extends ";
                                    !                 for (int b = 0; a < bounds.length; ++b)
                                    !                   {
                                    !                     parameters += bounds[a];
                                    !                     if (b != bounds.length - 1)
                                    !                       parameters += " & ";
                                    !                   }
                                    !               }
                                    !             if (a != params.length - 1)
                                    !               parameters += ",";
                                    !           }
                                    !         parameters += ">";
                                            }
                                          return parameters;
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                    *************** import com.sun.javadoc.Tag;
                                    *** 46,52 ****
                                       *  Allows outputting an HTML document without having to build the
                                       *  document tree in-memory.
                                       */
                                    ! public class HtmlPage 
                                      {
                                         private File file;
                                         private PrintWriter out;
                                    --- 63,69 ----
                                       *  Allows outputting an HTML document without having to build the
                                       *  document tree in-memory.
                                       */
                                    ! public class HtmlPage
                                      {
                                         private File file;
                                         private PrintWriter out;
                                    *************** public class HtmlPage 
                                    *** 190,196 ****
                                            print('>');
                                         }
                                      
                                    !    
                                         public void beginDiv(CssClass cssClass)
                                         {
                                            String[] divAttributeNames = cssClass.getAttributeNames();
                                    --- 207,213 ----
                                            print('>');
                                         }
                                      
                                    ! 
                                         public void beginDiv(CssClass cssClass)
                                         {
                                            String[] divAttributeNames = cssClass.getAttributeNames();
                                    *************** public class HtmlPage 
                                    *** 204,210 ****
                                      
                                            String[] attributeNames = new String[1 + divAttributeNames.length];
                                            String[] attributeValues = new String[1 + divAttributeValues.length];
                                    !       
                                            System.arraycopy(divAttributeNames, 0, attributeNames, 1, divAttributeNames.length);
                                            System.arraycopy(divAttributeValues, 0, attributeValues, 1, divAttributeNames.length);
                                      
                                    --- 221,227 ----
                                      
                                            String[] attributeNames = new String[1 + divAttributeNames.length];
                                            String[] attributeValues = new String[1 + divAttributeValues.length];
                                    ! 
                                            System.arraycopy(divAttributeNames, 0, attributeNames, 1, divAttributeNames.length);
                                            System.arraycopy(divAttributeValues, 0, attributeValues, 1, divAttributeNames.length);
                                      
                                    *************** public class HtmlPage 
                                    *** 244,250 ****
                                         {
                                            atomicElement("br");
                                         }
                                    !    
                                         public void print(String text)
                                         {
                                            out.print(text);
                                    --- 261,267 ----
                                         {
                                            atomicElement("br");
                                         }
                                    ! 
                                         public void print(String text)
                                         {
                                            out.print(text);
                                    *************** public class HtmlPage 
                                    *** 275,281 ****
                                            beginPage(title, charset, Collections.EMPTY_SET, stylesheets);
                                         }
                                      
                                    !    public void beginPage(String title, String charset, 
                                                               Collection keywords, Map stylesheets)
                                            throws IOException
                                         {
                                    --- 292,298 ----
                                            beginPage(title, charset, Collections.EMPTY_SET, stylesheets);
                                         }
                                      
                                    !    public void beginPage(String title, String charset,
                                                               Collection keywords, Map stylesheets)
                                            throws IOException
                                         {
                                    *************** public class HtmlPage 
                                    *** 293,317 ****
                                                  url.delete(url.length() - 1, url.length());
                                               }
                                               url.append(file.getCanonicalPath().substring(rootDir.getCanonicalPath().length()));
                                    !          atomicElement("base", 
                                                             new String[] { "href" },
                                                             new String[] { url.toString() });
                                            }
                                    !       beginElement("script", 
                                                          new String[] { "src", "type" },
                                                          new String[] { pathToRoot + "/resources/gjdoc.js", "text/javascript" });
                                            print("<!-- this comment required for konqueror 3.2.2 -->");
                                            endElement("script");
                                    !       atomicElement("meta", 
                                                          new String[] { "http-equiv", "content" },
                                                          new String[] { "Content-Type", "text/html; charset=" + charset });
                                    !       atomicElement("meta", 
                                                          new String[] { "name", "content" },
                                                          new String[] { "generator", "GNU Gjdoc Standard Doclet" });
                                            Iterator keywordIt = keywords.iterator();
                                            while (keywordIt.hasNext()) {
                                               String keyword = (String)keywordIt.next();
                                    !          atomicElement("meta", 
                                                             new String[] { "name", "content" },
                                                             new String[] { "keywords", keyword });
                                            }
                                    --- 310,334 ----
                                                  url.delete(url.length() - 1, url.length());
                                               }
                                               url.append(file.getCanonicalPath().substring(rootDir.getCanonicalPath().length()));
                                    !          atomicElement("base",
                                                             new String[] { "href" },
                                                             new String[] { url.toString() });
                                            }
                                    !       beginElement("script",
                                                          new String[] { "src", "type" },
                                                          new String[] { pathToRoot + "/resources/gjdoc.js", "text/javascript" });
                                            print("<!-- this comment required for konqueror 3.2.2 -->");
                                            endElement("script");
                                    !       atomicElement("meta",
                                                          new String[] { "http-equiv", "content" },
                                                          new String[] { "Content-Type", "text/html; charset=" + charset });
                                    !       atomicElement("meta",
                                                          new String[] { "name", "content" },
                                                          new String[] { "generator", "GNU Gjdoc Standard Doclet" });
                                            Iterator keywordIt = keywords.iterator();
                                            while (keywordIt.hasNext()) {
                                               String keyword = (String)keywordIt.next();
                                    !          atomicElement("meta",
                                                             new String[] { "name", "content" },
                                                             new String[] { "keywords", keyword });
                                            }
                                    *************** public class HtmlPage 
                                    *** 323,331 ****
                                      
                                               for (int i=0; i<sheetFiles.length; ++i) {
                                                  String sheetFile = sheetFiles[i];
                                    !             atomicElement("link", 
                                                                new String[] { "rel", "type", "href", "title" },
                                    !                           new String[] { "stylesheet", "text/css", 
                                                                               pathToRoot + "/" + sheetFile, sheetName });
                                               }
                                            }
                                    --- 340,348 ----
                                      
                                               for (int i=0; i<sheetFiles.length; ++i) {
                                                  String sheetFile = sheetFiles[i];
                                    !             atomicElement("link",
                                                                new String[] { "rel", "type", "href", "title" },
                                    !                           new String[] { "stylesheet", "text/css",
                                                                               pathToRoot + "/" + sheetFile, sheetName });
                                               }
                                            }
                                    *************** public class HtmlPage 
                                    *** 423,436 ****
                                      
                                         public void beginAnchor(String href, String title)
                                         {
                                    !       beginElement("a", 
                                                         new String[] { "href", "title" },
                                                         new String[] { href, title });
                                         }
                                      
                                         public void beginAnchor(String href, String title, String target)
                                         {
                                    !       beginElement("a", 
                                                         new String[] { "href", "title", "target" },
                                                         new String[] { href, title, target });
                                         }
                                    --- 440,453 ----
                                      
                                         public void beginAnchor(String href, String title)
                                         {
                                    !       beginElement("a",
                                                         new String[] { "href", "title" },
                                                         new String[] { href, title });
                                         }
                                      
                                         public void beginAnchor(String href, String title, String target)
                                         {
                                    !       beginElement("a",
                                                         new String[] { "href", "title", "target" },
                                                         new String[] { href, title, target });
                                         }
                                    *************** public class HtmlPage 
                                    *** 465,471 ****
                                         public void beginBody(CssClass cssClass, boolean setTitle)
                                         {
                                            if (setTitle) {
                                    !          beginElement("body", 
                                                            new String[] { "class", "onload" },
                                                            new String[] { cssClass.getName(), "if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)" }
                                                            );
                                    --- 482,488 ----
                                         public void beginBody(CssClass cssClass, boolean setTitle)
                                         {
                                            if (setTitle) {
                                    !          beginElement("body",
                                                            new String[] { "class", "onload" },
                                                            new String[] { cssClass.getName(), "if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)" }
                                                            );
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,29 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                      import com.sun.javadoc.Doc;
                                      import gnu.classpath.tools.taglets.TagletContext;
                                      
                                    ! public class HtmlTagletContext 
                                         extends TagletContext
                                      {
                                         private HtmlPage output;
                                    --- 16,46 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.htmldoclet;
                                      
                                      import com.sun.javadoc.Doc;
                                      import gnu.classpath.tools.taglets.TagletContext;
                                      
                                    ! public class HtmlTagletContext
                                         extends TagletContext
                                      {
                                         private HtmlPage output;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,2434 ****
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.Driver
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet;
                                    ! 
                                    ! import com.sun.javadoc.*;
                                    ! import java.io.*;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import java.lang.reflect.InvocationTargetException;
                                    ! import java.lang.reflect.Method;
                                    ! import java.lang.reflect.Modifier;
                                    ! 
                                    ! import java.text.DateFormat;
                                    ! 
                                    ! import java.util.ArrayList;
                                    ! import java.util.Arrays;
                                    ! import java.util.Comparator;
                                    ! import java.util.HashSet;
                                    ! import java.util.TreeSet;
                                    ! import java.util.Iterator;
                                    ! import java.util.LinkedHashMap;
                                    ! import java.util.LinkedList;
                                    ! import java.util.List;
                                    ! import java.util.Locale;
                                    ! import java.util.Map;
                                    ! import java.util.HashMap;
                                    ! import java.util.Properties;
                                    ! import java.util.Set;
                                    ! import java.util.SortedSet;
                                    ! import java.util.StringTokenizer;
                                    ! import java.util.TreeMap;
                                    ! 
                                    ! import gnu.classpath.tools.gjdoc.TemporaryStore;
                                    ! import gnu.classpath.tools.gjdoc.GjdocPackageDoc;
                                    ! 
                                    ! import gnu.classpath.tools.doclets.PackageGroup;
                                    ! import gnu.classpath.tools.doclets.PackageMatcher;
                                    ! import gnu.classpath.tools.doclets.InvalidPackageWildcardException;
                                    ! 
                                    ! import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
                                    ! import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletOptions;
                                    ! 
                                    ! import gnu.classpath.tools.taglets.AuthorTaglet;
                                    ! import gnu.classpath.tools.taglets.VersionTaglet;
                                    ! import gnu.classpath.tools.taglets.SinceTaglet;
                                    ! import gnu.classpath.tools.taglets.DeprecatedTaglet;
                                    ! import gnu.classpath.tools.taglets.GenericTaglet;
                                    ! import gnu.classpath.tools.doclets.StandardTaglet;
                                    ! 
                                    ! import gnu.classpath.tools.java2xhtml.Java2xhtml;
                                    ! 
                                    ! import gnu.classpath.tools.IOToolkit;
                                    ! import gnu.classpath.tools.FileSystemClassLoader;
                                    ! 
                                    ! /**
                                    !  *  A Doclet which retrieves all information presented by the Doclet
                                    !  *  API, dumping it to stdout in XML format.
                                    !  *
                                    !  *  @author Julian Scheid
                                    !  */
                                    ! public class Driver {
                                    ! 
                                    !    public static final String XMLDOCLET_VERSION = "0.6.1";
                                    ! 
                                    !    /**
                                    !     *  Used for redirecting error messages to <code>/dev/null</code>.
                                    !     */
                                    !    private static class NullErrorReporter implements DocErrorReporter {
                                    !       public void printError(String ignore) {}
                                    !       public void printWarning(String ignore) {}
                                    !       public void printNotice(String ignore) {}
                                    !    }
                                    ! 
                                    !    /*
                                    !     *  Taglet context constants.
                                    !     */
                                    !    private static final int CONTEXT_CONSTRUCTOR  = 1;
                                    !    private static final int CONTEXT_FIELD        = 2;
                                    !    private static final int CONTEXT_METHOD       = 3;
                                    !    private static final int CONTEXT_OVERVIEW     = 4;
                                    !    private static final int CONTEXT_PACKAGE      = 5;
                                    !    private static final int CONTEXT_TYPE         = 6;
                                    ! 
                                    !    /**
                                    !     *  All XML output will go to this stream.
                                    !     */
                                    !    private PrintWriter out;
                                    ! 
                                    !    /**
                                    !     *  How many spaces to indent each XML node level,
                                    !     *  i.e. Tab size for output.
                                    !     */
                                    !    private static int indentStep = 1;
                                    ! 
                                    !    /**
                                    !     *  Won't output superfluous spaces if set to true.
                                    !     *  If set to false, output will be more legible.
                                    !     */
                                    !    private boolean compress = false;
                                    ! 
                                    !    /**
                                    !     *  Won't output warning messages while fixing
                                    !     *  HTML code if set to true.
                                    !     */
                                    !    private boolean noHTMLWarn = false;
                                    ! 
                                    !    /**
                                    !     *  Won't output warning messages when encountering tags
                                    !     *  that look like an email address if set to true.
                                    !     */
                                    !    private boolean noEmailWarn = false;
                                    ! 
                                    !    /**
                                    !     *  Will fix HTML if necessary so that each comment
                                    !     *  contains valid XML code if set to true. If set
                                    !     *  to false, HTML code will not be modified and
                                    !     *  instead encapsulated in a CDATA section.
                                    !     */
                                    !    private boolean fixHTML = true;
                                    ! 
                                    !    /**
                                    !     *  User-specified name of the directory where the final version of
                                    !     *  the generated files will be written to.
                                    !     *
                                    !     *  If no XSLT sheet is given, the XML output will go directly into
                                    !     *  this directory. Otherwise, XML output will go to a temporary
                                    !     *  directory and XSLT output will go to this directory.
                                    !     */
                                    !    private File targetDirectory = null;
                                    ! 
                                    !    /**
                                    !     *  Directory where XML output will be written to. If no XSLT
                                    !     *  sheet was given, this is the target directory specified
                                    !     *  by the user. Otherwise, this is a temporary directory.
                                    !     */
                                    !    private File xmlTargetDirectory;
                                    ! 
                                    !    /**
                                    !     *  Contains a number of TargetContexts which describe which XSLT
                                    !     *  sheet to apply to the output of this doclet, to what directory
                                    !     *  the XSLT output is written, and which postprocess driver to use
                                    !     *  to process XSLT output.
                                    !     */
                                    !    private List targets = new ArrayList();
                                    ! 
                                    !    /**
                                    !     *  XML text to include at the end of every generated page. Read
                                    !     *  from the file specified on the command line using -bottomnote.
                                    !     *  If present, this will be written to the main output file
                                    !     *  (index.xml) in node /gjdoc:rootDoc/gjdoc:bottomnote.
                                    !     */
                                    !    private String bottomNote;
                                    ! 
                                    !    /**
                                    !     *  Brief description of the package set. Can be specified on the
                                    !     *  command line using -title.  This will be written to the main
                                    !     *  output file (index.xml) in node
                                    !     *  /gjdoc:rootDoc/gjdoc:title. The HTML generating XSLT sheet
                                    !     *  uses this for example in window titles.
                                    !     */
                                    !    private String title;
                                    ! 
                                    !    /**
                                    !     *  Path to the directory where temporary files should be stored.
                                    !     *  Defaults to system tempdir, but can be overridden by user 
                                    !     *  with -workpath.
                                    !     */
                                    !    private String workingPath = System.getProperty("java.io.tmpdir");
                                    ! 
                                    !    /**
                                    !     *  Temporary directory created by this doclet where all 
                                    !     *  temporary files will be stored in. If no temporary
                                    !     *  files are needed (i.e. no XSLT postprocessing stage
                                    !     *  specified by user), this is <code>null</code>.
                                    !     */
                                    !     private File workingDirectory;
                                    ! 
                                    !    /**
                                    !     *  Whether to deep-copy the doc-files subdirectory.
                                    !     */
                                    !     private boolean docFilesSubdirsEnabled = false;
                                    ! 
                                    !    /**
                                    !     *  Which direct subdirectories of the doc-files directories to exclude.
                                    !     *  Set of String.
                                    !     */
                                    !     private Set excludeDocFilesSubDirs = new HashSet();
                                    ! 
                                    !    /**
                                    !     *  Stores the Doclet API RootDoc we are operating on.
                                    !     */
                                    !    private RootDoc rootDoc;
                                    ! 
                                    !    /**
                                    !     *  XML namespace prefix used for all tags, except for HTML
                                    !     *  tags copied from Javadoc comments. Excluding colon.
                                    !     */
                                    !    public static final String tagPrefix = "gjdoc";
                                    ! 
                                    !    /**
                                    !     *  Classpath for loading Taglet classes.
                                    !     */
                                    !    private String tagletPath = null;
                                    ! 
                                    !    /**
                                    !     *  The current class that is being processed.
                                    !     *  Set in outputClassDoc().
                                    !     */
                                    !    private ClassDoc currentClass;
                                    ! 
                                    !    /**
                                    !     *  The current member that is being processed.
                                    !     *  Set in outputMemberDoc().
                                    !     */
                                    !    private MemberDoc currentMember;
                                    ! 
                                    !    /**
                                    !     *  The current constructor/method that is being processed.
                                    !     *  Set in outputExecutableMemberDoc().
                                    !     */
                                    !    private ExecutableMemberDoc currentExecMember;
                                    ! 
                                    !    /**
                                    !     *  Mapping from tag type to Taglet for user Taglets specified on
                                    !     *  the command line.
                                    !     */
                                    !    private Map tagletMap = new LinkedHashMap();
                                    ! 
                                    !    /**
                                    !     *  Keeps track of the tags mentioned by the user during option
                                    !     *  processiong so that an error can be emitted if a tag is
                                    !     *  mentioned more than once.
                                    !     */
                                    !    private List mentionedTags = new LinkedList();
                                    ! 
                                    !    /**
                                    !     *  Stores options to be passed to the DocTranslet.
                                    !     */
                                    !    private DocTransletOptions docTransletOptions = new DocTransletOptions();   
                                    ! 
                                    !    /**
                                    !     *  Stores the package groups specified in the user
                                    !     *  options. Contains objects of type PackageGroup.
                                    !     */
                                    !    private List packageGroups = new LinkedList();
                                    ! 
                                    !    private HtmlRepairer htmlRepairer;
                                    ! 
                                    !    public static boolean start(TemporaryStore _rootDocWrapper) {
                                    !       return new Driver().instanceStart((RootDoc)_rootDocWrapper.getAndClear());
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Official Doclet entry point.
                                    !     */
                                    !    public static boolean start(RootDoc _rootDoc) {
                                    ! 
                                    !       // Create a new XmlDoclet instance and delegate control.
                                    !       TemporaryStore tstore = new TemporaryStore(_rootDoc);
                                    !       _rootDoc = null;
                                    !       return new Driver().instanceStart((RootDoc)tstore.getAndClear());
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Output an XML tag describing a com.sun.javadoc.Type object.
                                    !     *  Assumes that the tag does not have subtags.
                                    !     *
                                    !     *  @param level  Level of indentation. Will be multiplied by 
                                    !     *                <code>indentStep</code> to yield actual amount
                                    !     *                of whitespace inserted at start of line.
                                    !     *  @param tag    Identifier for the XML tag being output.
                                    !     *  @param type   The Javadoc Type to be output.
                                    !     */
                                    !    protected void outputType(int level, String tag, Type type) {
                                    !       outputType(level, tag, type, true);
                                    !    }
                                    ! 
                                    !    protected void outputType(int level, String tag, Type type, boolean atomic) {
                                    ! 
                                    !       boolean isIncluded = false;
                                    !       ClassDoc typeAsClassDoc = type.asClassDoc();
                                    !       String packageName = null;
                                    !       if (null != typeAsClassDoc) {
                                    !          isIncluded = typeAsClassDoc.isIncluded();
                                    !          packageName = typeAsClassDoc.containingPackage().name();
                                    !       }
                                    !       println(level, "<"+tagPrefix+":"+tag + " typename=\""+type.typeName()+"\""+
                                    ! 	      " qualifiedtypename=\""+type.qualifiedTypeName()+"\""
                                    ! 	      +(type.dimension().length()==0?"":" dimension=\""+type.dimension()+"\"")
                                    !               +(isIncluded?" isIncluded=\"true\"" : "")
                                    !               +((null != packageName)?" package=\"" + packageName + "\"" : "")
                                    ! 	      +(atomic?"/":"")+">");
                                    !    }
                                    ! 
                                    !    protected void outputExecutableMemberDocBody(int level, ExecutableMemberDoc memberDoc) {
                                    ! 
                                    !       currentExecMember = memberDoc;
                                    ! 
                                    !       outputMemberDocBody(level, memberDoc);
                                    ! 
                                    !       Parameter[] parameters = memberDoc.parameters();
                                    !       for (int i=0, ilim=parameters.length; i<ilim; ++i) {
                                    ! 	 Parameter parameter = parameters[i];
                                    ! 	 outputType(level, "parameter name=\""+parameter.name()+"\"", parameter.type());
                                    !       }
                                    ! 
                                    !       ClassDoc[] exceptions = memberDoc.thrownExceptions();
                                    !       for (int i=0, ilim=exceptions.length; i<ilim; ++i) {
                                    ! 	 ClassDoc exception = exceptions[i];
                                    ! 	 outputType(level, "thrownException", exception);
                                    !        }
                                    ! 
                                    !       printAtomTag(level, "signature full=\""+memberDoc.signature()+"\" flat=\""+memberDoc.flatSignature()+"\"");
                                    ! 
                                    !       if (memberDoc.isNative()) {
                                    ! 	 printAtomTag(level, "isNative");
                                    !       }
                                    ! 
                                    !       if (memberDoc.isSynchronized()) {
                                    ! 	 printAtomTag(level, "isSynchronized");
                                    !       }
                                    !    }
                                    ! 
                                    !    protected void outputMethodDoc(int level, MethodDoc methodDoc) {
                                    !       println();
                                    !       printOpenTag(level, "methoddoc name=\""+methodDoc.name()+"\"");
                                    !       outputExecutableMemberDocBody(level+1, methodDoc);
                                    !       outputType(level+1, "returns", methodDoc.returnType());
                                    !       printCloseTag(level, "methoddoc");
                                    !    }
                                    ! 
                                    !    protected void outputMemberDocBody(int level, MemberDoc memberDoc) {
                                    !       currentMember = memberDoc;
                                    !       outputProgramElementDocBody(level, memberDoc);
                                    !    }
                                    ! 
                                    !    protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {
                                    !       outputType(level, "type", fieldDoc.type());
                                    !       if (fieldDoc.isTransient()) {
                                    ! 	 printAtomTag(level, "isTransient");
                                    !       }
                                    !       if (fieldDoc.isVolatile()) {
                                    ! 	 printAtomTag(level, "isVolatile");
                                    !       }
                                    !    }
                                    ! 
                                    !    private void outputFieldDoc(int level, FieldDoc fieldDoc) {
                                    !       println();
                                    !       printOpenTag(level, "fielddoc name=\""+fieldDoc.name()+"\"");
                                    !       outputMemberDocBody(level+1, fieldDoc);
                                    !       outputFieldDocBody(level+1, fieldDoc);
                                    !       printCloseTag(level, "fielddoc");
                                    !    }
                                    ! 
                                    !    protected void outputConstructorDoc(int level, ConstructorDoc constructorDoc) {
                                    !       println();
                                    !       printOpenTag(level, "constructordoc name=\""+constructorDoc.name()+"\"");
                                    !       outputExecutableMemberDocBody(level+1, constructorDoc);
                                    !       printCloseTag(level, "constructordoc");
                                    !    }
                                    ! 
                                    !    protected void outputSuperInterfacesRec(int level, ClassDoc classDoc) {
                                    !       if (null!=classDoc) {
                                    ! 	 ClassDoc[] interfaces = classDoc.interfaces();
                                    !          if (null != interfaces) {
                                    !             for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
                                    !                outputType(level, "superimplements", interfaces[i]);
                                    !             }
                                    !          }
                                    ! 	 outputSuperInterfacesRec(level, classDoc.superclass());
                                    !       }
                                    !    }
                                    ! 
                                    !    protected void outputClassDocSummary(ClassDoc classDoc) {
                                    !       println();
                                    !       printOpenTag(1, "classdoc name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\" isIncluded=\"true\"");
                                    !       if (null!=classDoc.superclass()) {
                                    ! 	 outputType(2, "superclass", classDoc.superclass());
                                    !       }
                                    ! 
                                    !       ClassDoc[] interfaces = classDoc.interfaces();
                                    !       for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
                                    ! 	 outputType(2, "implements", interfaces[i]);
                                    !       }
                                    !       outputSuperInterfacesRec(2, classDoc.superclass());
                                    ! 
                                    !       printAtomTag(2, "containingPackage name=\""+classDoc.containingPackage().name()+"\"");
                                    !       if (classDoc.isError()) {
                                    !          printAtomTag(2, "isError");
                                    !       }
                                    !       if (classDoc.isException()) {
                                    !          printAtomTag(2, "isException");
                                    !       }
                                    !       if (classDoc.isInterface()) {
                                    !          printAtomTag(2, "isInterface");
                                    !       }
                                    !       if (classDoc.isOrdinaryClass()) {
                                    !          printAtomTag(2, "isOrdinaryClass");
                                    !       }
                                    ! 
                                    !       printCloseTag(1, "classdoc");
                                    !    }
                                    ! 
                                    !    protected void outputPackageDoc(PackageDoc packageDoc) {
                                    !       println();
                                    !       printOpenTag(1, "packagedoc name=\""+packageDoc.name()+"\"");
                                    !       if (packageDoc.firstSentenceTags().length > 0) {
                                    ! 	 printOpenTag(2, "firstSentenceTags", false);
                                    ! 	 outputTags(3, packageDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);
                                    ! 	 printCloseTag(0, "firstSentenceTags");
                                    ! 	 printOpenTag(2, "inlineTags", false);
                                    ! 	 outputTags(3, packageDoc.inlineTags(), true, CONTEXT_PACKAGE);
                                    ! 	 printCloseTag(0, "inlineTags");
                                    !       }
                                    ! 
                                    !       if (packageDoc.tags().length > 0) {
                                    ! 	 printOpenTag(2, "tags");
                                    ! 	 outputTags(3, packageDoc.tags(), true, CONTEXT_PACKAGE);
                                    ! 	 printCloseTag(2, "tags");
                                    !       }
                                    ! 
                                    !       if (packageDoc.seeTags().length > 0) {
                                    ! 	 printOpenTag(2, "seeTags");
                                    ! 	 outputTags(3, packageDoc.seeTags(), true, CONTEXT_PACKAGE);
                                    ! 	 printCloseTag(2, "seeTags");
                                    !       }
                                    ! 
                                    !       ClassDoc[] allClasses = (ClassDoc[]) packageDoc.allClasses().clone();
                                    !       Arrays.sort(allClasses);
                                    ! 
                                    !       if (false) {
                                    ! 	 for (int i = 0, ilim = allClasses.length; i < ilim; ++ i) {
                                    ! 	    printAtomTag(2, "containsClass qualifiedtypename=\""+allClasses[i].qualifiedTypeName()+"\"");
                                    ! 	 }
                                    !       }
                                    ! 
                                    !       printCloseTag(1, "packagedoc");
                                    !    }
                                    ! 
                                    !    protected void outputClassDoc(ClassDoc classDoc) throws IOException {
                                    ! 
                                    !       currentClass = classDoc;
                                    ! 
                                    !       println();
                                    !       printOpenTag(1, "classdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:"+tagPrefix+"=\"http://www.gnu.org/software/cp-tools/gjdocxml\" name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\"");
                                    ! 
                                    !       ClassDoc[] interfaces = classDoc.interfaces();
                                    !       for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
                                    ! 	 outputType(2, "implements", interfaces[i]);
                                    !       }
                                    !       outputSuperInterfacesRec(2, classDoc.superclass());
                                    ! 
                                    !       outputProgramElementDocBody(2, classDoc);
                                    !       if (classDoc.isAbstract())
                                    ! 	 printAtomTag(2, "isAbstract");
                                    !       if (classDoc.isSerializable())
                                    ! 	 printAtomTag(2, "isSerializable");
                                    !       if (classDoc.isExternalizable())
                                    ! 	 printAtomTag(2, "isExternalizable");
                                    !       if (classDoc.definesSerializableFields()) {
                                    ! 	 printAtomTag(2, "definesSerializableFields");
                                    !       }
                                    ! 
                                    !       ConstructorDoc[] constructors = classDoc.constructors();
                                    !       for (int i=0, ilim=constructors.length; i<ilim; ++i) {
                                    ! 	 outputConstructorDoc(2, constructors[i]);
                                    !       }
                                    ! 
                                    !       MethodDoc[] methods = classDoc.methods();
                                    !       for (int i=0, ilim=methods.length; i<ilim; ++i) {
                                    ! 	 outputMethodDoc(2, methods[i]);
                                    !       }
                                    ! 
                                    !       FieldDoc[] fields = classDoc.fields();
                                    !       for (int i=0, ilim=fields.length; i<ilim; ++i) {
                                    ! 	 outputFieldDoc(2, fields[i]);
                                    !       }
                                    ! 
                                    !       if (classDoc.serializableFields().length > 0) {
                                    ! 	 printOpenTag(2, "serializableFields");
                                    ! 
                                    !          FieldDoc[] sfields = classDoc.serializableFields();
                                    !          for (int i=0, ilim=sfields.length; i<ilim; ++i) {
                                    !             outputFieldDoc(2, sfields[i]);
                                    !          }
                                    ! 	 printCloseTag(2, "serializableFields");
                                    !       }
                                    ! 
                                    !       Java2xhtml java2xhtml = new Java2xhtml();
                                    !       Properties properties = new Properties();
                                    !       properties.setProperty("isCodeSnippet", "true");
                                    !       properties.setProperty("hasLineNumbers", "true");
                                    !       java2xhtml.setProperties(properties);
                                    ! 
                                    !       if (null == classDoc.containingClass() && docTransletOptions.linksource) {
                                    !          printOpenTag(2, "source");
                                    !          StringWriter sourceBuffer = new StringWriter();
                                    !          File sourceFile = new File(((GjdocPackageDoc)classDoc.containingPackage()).packageDirectory(),
                                    !                                     classDoc.name() + ".java");
                                    !          FileReader sourceReader = new FileReader(sourceFile);
                                    !          IOToolkit.copyStream(sourceReader, sourceBuffer);
                                    !          print(java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName()));
                                    !          printCloseTag(2, "source");      
                                    !       }
                                    ! 
                                    !       ClassDoc superclassDoc = classDoc.superclass();
                                    !       while (superclassDoc != null) {
                                    ! 	 outputType(2, "superclass", superclassDoc, false);
                                    ! 
                                    !          // FIXME: remove the following after adjusting the XSLT sheets:
                                    !          printAtomTag(3, "containingPackage name=\"" + superclassDoc.containingPackage().name() + "\"");
                                    ! 
                                    !          MethodDoc[] superMethods = superclassDoc.methods();
                                    !          if (null != superMethods) {
                                    !             for (int i=0, ilim=superMethods.length; i<ilim; ++i) {
                                    !                printAtomTag(3, "methoddoc name=\"" + superMethods[i].name() + "\" signature=\"" + superMethods[i].signature() + "\"");
                                    !             }
                                    !          }
                                    !          
                                    !          FieldDoc[] superFields = superclassDoc.fields();
                                    !          if (null != superFields) {
                                    !             for (int i=0, ilim=superFields.length; i<ilim; ++i) {
                                    !                printAtomTag(3, "fielddoc name=\"" + superFields[i].name() + "\"");
                                    !             }
                                    !          }
                                    !          printCloseTag(2, "superclass");
                                    !          
                                    !          superclassDoc = superclassDoc.superclass();
                                    !       }
                                    ! 
                                    !       outputUsage(classDoc, 2);
                                    ! 
                                    !       printCloseTag(1, "classdoc");
                                    ! 
                                    !       currentClass = null;
                                    !       currentMember = null;
                                    !       currentExecMember = null;
                                    !    }
                                    ! 
                                    !    protected int outputHeritageOpen(int level, ClassDoc classDoc) {
                                    ! 
                                    !       ClassDoc superClassDoc = classDoc.superclass();
                                    !       if (null != superClassDoc) {
                                    !          level = outputHeritageOpen(level, superClassDoc);
                                    !          ++ level;
                                    !       }
                                    !       outputType(level, "heritage", classDoc, false);
                                    !       return level;
                                    !    }
                                    ! 
                                    !    protected void outputHeritageClose(int level, ClassDoc classDoc) {
                                    ! 
                                    !       ClassDoc superClassDoc = classDoc.superclass();
                                    !       if (null != superClassDoc) {
                                    !          outputHeritageClose(level + 1, superClassDoc);
                                    !       }
                                    !       printCloseTag(level, "heritage");
                                    !    }
                                    ! 
                                    !    protected void outputDocBody(int level, Doc doc) {
                                    ! 
                                    !       int context = CONTEXT_TYPE;
                                    ! 
                                    !       if (doc.isClass()) {
                                    ! 	 printAtomTag(level, "isClass");
                                    ! 
                                    !          ClassDoc classDoc = (ClassDoc)doc;
                                    !          ClassDoc[] classes = rootDoc.classes();
                                    !          for (int i=0, ilim=classes.length; i<ilim; ++i) {
                                    !             if (classes[i].superclass() == classDoc) {
                                    !                outputType(level, "extended-by", classes[i]);
                                    !             }
                                    !          }
                                    ! 
                                    !          outputHeritageOpen(level, classDoc);
                                    !          outputHeritageClose(level, classDoc);
                                    !       }
                                    !       if (doc.isConstructor()) {
                                    ! 	 printAtomTag(level, "isConstructor");
                                    !          context = CONTEXT_CONSTRUCTOR;
                                    !       }
                                    !       if (doc.isError()) {
                                    ! 	 printAtomTag(level, "isError");
                                    !       }
                                    !       if (doc.isException()) {
                                    ! 	 printAtomTag(level, "isException");
                                    !       }
                                    !       if (doc.isField()) {
                                    ! 	 printAtomTag(level, "isField");
                                    !          context = CONTEXT_FIELD;
                                    !       }
                                    !       if (doc.isIncluded()) {
                                    ! 	 printAtomTag(level, "isIncluded");
                                    !       }
                                    !       if (doc.isInterface()) {
                                    ! 	 printAtomTag(level, "isInterface");
                                    ! 
                                    !          ClassDoc classDoc = (ClassDoc)doc;
                                    !          ClassDoc[] classes = rootDoc.classes();
                                    !          for (int i=0, ilim=classes.length; i<ilim; ++i) {
                                    !             ClassDoc[] implementedInterfaces = classes[i].interfaces();
                                    !             for (int j=0; j<implementedInterfaces.length; ++j) {
                                    !                if (implementedInterfaces[j] == classDoc) {
                                    !                   if (classDoc.isInterface()) {
                                    !                         outputType(level, "subinterface", classes[i]);
                                    !                   }
                                    !                   else {
                                    !                      outputType(level, "implemented-by", classes[i]);
                                    !                   }
                                    !                   break;
                                    !                }
                                    !             }
                                    !          }
                                    !       }
                                    !       if (doc.isMethod()) {
                                    ! 	 printAtomTag(level, "isMethod");
                                    !          context = CONTEXT_METHOD;
                                    !       }
                                    !       if (doc.isOrdinaryClass()) {
                                    ! 	 printAtomTag(level, "isOrdinaryClass");
                                    !       }
                                    ! 
                                    !       if (doc.inlineTags().length > 0) {
                                    ! 	 printOpenTag(level, "inlineTags", false);
                                    ! 	 outputTags(level+1, doc.inlineTags(), true, context);
                                    ! 	 printCloseTag(0, "inlineTags");
                                    !       }
                                    ! 
                                    !       if (doc.firstSentenceTags().length > 0) {
                                    ! 	 printOpenTag(level, "firstSentenceTags", false);
                                    ! 	 outputTags(level+1, doc.firstSentenceTags(), true, context);
                                    ! 	 printCloseTag(0, "firstSentenceTags");
                                    !       }
                                    ! 
                                    !       if (doc.tags().length > 0) {
                                    ! 	 printOpenTag(level, "tags");
                                    !          outputTaglets(level+1, doc.tags(), true, context);
                                    ! 	 printCloseTag(level, "tags");
                                    !       }
                                    ! 
                                    !       if (doc.seeTags().length > 0) {
                                    ! 	 printOpenTag(level, "seeTags");
                                    ! 	 outputTags(level+1, doc.seeTags(), true, context);
                                    ! 	 printCloseTag(level, "seeTags");
                                    !       }
                                    ! 
                                    !       SourcePosition position = doc.position();
                                    !       if (null != position) {
                                    ! 	 printAtomTag(level, "position file=\"" + position.file().getAbsolutePath() + "\" line=\"" + position.line() + "\" column=\"" + position.column() + "\"");
                                    !       }
                                    !    }
                                    ! 
                                    !    protected void outputProgramElementDocBody(int level, ProgramElementDoc programElementDoc) {
                                    !       outputDocBody(level, programElementDoc);
                                    !       printAtomTag(level, "containingPackage name=\""+programElementDoc.containingPackage().name()+"\"");
                                    !       if (null!=programElementDoc.containingClass()) {
                                    ! 	 outputType(level, "containingClass", programElementDoc.containingClass());
                                    !       }
                                    !       String access;
                                    !       if (programElementDoc.isPublic()) 
                                    ! 	 access="public";
                                    !       else if (programElementDoc.isProtected()) 
                                    ! 	 access="protected";
                                    !       else if (programElementDoc.isPrivate()) 
                                    ! 	 access="private";
                                    !       else if (programElementDoc.isPackagePrivate()) 
                                    ! 	 access="package";
                                    !       else
                                    ! 	 throw new RuntimeException("Huh? "+programElementDoc+" is neither public, protected, private nor package protected.");
                                    !       printAtomTag(level, "access scope=\""+access+"\"");
                                    !       if (programElementDoc.isFinal())
                                    ! 	 printAtomTag(level, "isFinal");
                                    !       if (programElementDoc.isStatic())
                                    ! 	 printAtomTag(level, "isStatic");
                                    !    }
                                    ! 
                                    !    protected void outputTags(int level, Tag[] tags, boolean descend, int context) {
                                    ! 
                                    !       for (int i=0; i<tags.length; ++i) {
                                    !          outputTag(tags[i], level, descend, context, i == tags.length-1);
                                    !       }
                                    !    }
                                    ! 
                                    !    protected void outputTag(Tag tag, int level, boolean descend, int context, boolean lastTag) {
                                    ! 
                                    !       if (!"Text".equals(tag.name())) {
                                    !          printOpenTag(0 /* don't introduce additional whitespace */, 
                                    !                       "tag kind=\""+tag.kind()+"\" name=\""+tag.name()+"\"", false);
                                    !       }
                                    !       if (tag instanceof ThrowsTag) {
                                    !          ThrowsTag throwsTag = (ThrowsTag)tag;
                                    !          if (null!=throwsTag.exception()) {
                                    !             outputType(level+1, "exception", throwsTag.exception());
                                    !          }
                                    !          else {
                                    !             StringBuffer sb = new StringBuffer("Exception ");
                                    !             sb.append(throwsTag.exceptionName());
                                    !             sb.append(" not found in ");
                                    !             if (currentExecMember instanceof MethodDoc) {
                                    !                MethodDoc m = (MethodDoc)currentExecMember;
                                    !                sb.append(m.returnType().typeName());
                                    !                sb.append(m.returnType().dimension());
                                    !                sb.append(' ');
                                    !             }
                                    !             sb.append(currentClass.qualifiedName());
                                    !             sb.append('.');
                                    !             sb.append(currentExecMember.name());
                                    !             sb.append('(');
                                    !             Parameter[] params = currentExecMember.parameters();
                                    !             for (int j=0; j < params.length; j++) {
                                    !                sb.append(params[j].type().typeName());
                                    !                sb.append(params[j].type().dimension());
                                    !                sb.append(' ');
                                    !                sb.append(params[j].name());
                                    !                if (j != params.length-1)
                                    !                   sb.append(", ");
                                    !             }
                                    !             sb.append(')');
                                    !             printWarning(sb.toString());
                                    ! 
                                    !             printAtomTag(level+1, "exception typename=\""+throwsTag.exceptionName()+"\"");
                                    !          }
                                    !       }
                                    !       else if (tag instanceof ParamTag) {
                                    !          ParamTag paramTag = (ParamTag)tag;
                                    !          printAtomTag(level+1, "parameter name=\""+paramTag.parameterName()+"\"");
                                    !       }
                                    ! 
                                    !       if (null != tag.text()) {
                                    !          //printOpenTag(level+1, "text", false);
                                    !          if (fixHTML) {
                                    !             print(htmlRepairer.getWellformedHTML(tag.text()));
                                    !          }
                                    !          else {
                                    !             print("<![CDATA["+cdata(tag.text())+"]]>");
                                    !          }
                                    !          //printCloseTag(0 /* don't introduce additional whitespace */, "text");
                                    !       }
                                    !       else {
                                    !          printWarning("Tag got null text: "+tag);
                                    !       }
                                    ! 
                                    !       if ((descend && ("@throws".equals(tag.name()) || "@param".equals(tag.name()))) || "@deprecated".equals(tag.name())) {
                                    !          if (tag.firstSentenceTags().length>0) {
                                    !             printOpenTag(level+1, "firstSentenceTags", false);
                                    !             outputTags(level+2, tag.firstSentenceTags(), false, context);
                                    !             printCloseTag(0, "firstSentenceTags");
                                    !          }
                                    ! 	    
                                    !          if (tag.inlineTags().length>0) {
                                    !             printOpenTag(level+1, "inlineTags", false);
                                    !             outputTags(level+2, tag.firstSentenceTags(), false, context);
                                    !             printCloseTag(0, "inlineTags");
                                    !          }
                                    !       }
                                    ! 
                                    !       if (fixHTML && lastTag) {
                                    !          String terminateText = htmlRepairer.terminateText();
                                    !          if (null != terminateText && terminateText.length() > 0) {
                                    !             print(terminateText);
                                    !          }
                                    !       }
                                    ! 
                                    !       if (!"Text".equals(tag.name())) {
                                    ! 
                                    !          Taglet inlineTaglet = (Taglet)tagletMap.get(tag.name().substring(1));
                                    !          if (null != inlineTaglet && inlineTaglet.isInlineTag()) {
                                    !             printOpenTag(0, "inlineTagletText", false);
                                    !             print(inlineTaglet.toString(tag));
                                    !             printCloseTag(0, "inlineTagletText");
                                    !          }
                                    ! 
                                    !          printCloseTag(0, "tag", false);
                                    !       }
                                    !    }
                                    ! 
                                    !    void outputTaglets(int level, Tag[] tags, boolean descend, int context) 
                                    !    {
                                    !       for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {
                                    !          String tagName = (String)it.next();
                                    !          Object o = tagletMap.get(tagName);
                                    !          Taglet taglet = (Taglet)o;
                                    ! 
                                    !          if (!taglet.isInlineTag()
                                    !              && ((context != CONTEXT_CONSTRUCTOR || taglet.inConstructor())
                                    !                  || (context != CONTEXT_FIELD || taglet.inField())
                                    !                  || (context != CONTEXT_METHOD || taglet.inMethod())
                                    !                  || (context != CONTEXT_OVERVIEW || taglet.inOverview())
                                    !                  || (context != CONTEXT_PACKAGE || taglet.inPackage())
                                    !                  || (context != CONTEXT_TYPE || taglet.inType()))) {
                                    !             
                                    !             List tagsOfThisType = new ArrayList();
                                    !             for (int i=0, ilim=tags.length; i<ilim; ++i) {
                                    !                if (tags[i].name().substring(1).equals(tagName)) {
                                    !                   tagsOfThisType.add(tags[i]);
                                    !                }
                                    !             }
                                    ! 
                                    !             if (!tagsOfThisType.isEmpty()) {
                                    !                Tag[] tagletTags = (Tag[])tagsOfThisType.toArray(new Tag[tagsOfThisType.size()]);
                                    !                if (taglet instanceof StandardTaglet) {
                                    !                   Iterator tagIterator = tagsOfThisType.iterator();
                                    !                   while (tagIterator.hasNext()) {
                                    !                      Tag tag = (Tag)tagIterator.next();
                                    !                      outputTag(tag, level, descend, context, !tagIterator.hasNext());
                                    !                   }
                                    !                }
                                    !                else {
                                    !                   String tagletString = taglet.toString(tagletTags);
                                    !                   if (null != tagletString) {
                                    !                      printOpenTag(0, "tag name=\"" + tagName + "\" taglet-generated=\"true\"");
                                    !                      if (fixHTML) {
                                    !                         print(htmlRepairer.getWellformedHTML(tagletString));
                                    !                         print(htmlRepairer.terminateText());
                                    !                      }
                                    !                      else {
                                    !                         print("<![CDATA["+cdata(tagletString)+"]]>");
                                    !                      }
                                    !                      printCloseTag(0, "tag", false);
                                    !                   }
                                    !                }
                                    !             }
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Inofficial entry point. We got an instance here.
                                    !     */
                                    !    protected boolean instanceStart(RootDoc _rootDoc) {
                                    ! 
                                    !       this.rootDoc = _rootDoc;
                                    !       _rootDoc = null;
                                    ! 
                                    !       boolean xmlOnly = true;
                                    ! 
                                    !       // Set the default Taglet order
                                    ! 
                                    !       registerTaglet(new VersionTaglet());
                                    !       registerTaglet(new AuthorTaglet());
                                    !       //registerTaglet(new SinceTaglet());
                                    !       registerTaglet(new StandardTaglet("deprecated"));
                                    !       registerTaglet(new StandardTaglet("see"));
                                    !       registerTaglet(new StandardTaglet("param"));
                                    ! 
                                    !       // Set the built-in Taglet filter
                                    ! 
                                    !       AuthorTaglet.setTagletEnabled(false);
                                    !       VersionTaglet.setTagletEnabled(false);
                                    !       SinceTaglet.setTagletEnabled(true);
                                    !       DeprecatedTaglet.setTagletEnabled(true);
                                    ! 
                                    !       try {
                                    ! 	 {
                                    ! 
                                    ! 	    // Process command line options passed through to this doclet
                                    ! 	    
                                    ! 	    TargetContext targetContext = null;
                                    ! 	    
                                    ! 	    TargetContext htmlTargetContext
                                    !                = new TargetContext(DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl"), 
                                    !                                    targetDirectory);
                                    ! 
                                    ! 	    for (int i=0, ilim=rootDoc.options().length; i<ilim; ++i) {
                                    ! 
                                    ! 	       String[] option = rootDoc.options()[i];
                                    ! 	       String optionTag = option[0];
                                    ! 
                                    ! 	       if ("-d".equals(optionTag)) {
                                    ! 		  if (null == targetDirectory) {
                                    ! 		     targetDirectory = new File(option[1]);
                                    ! 		  }
                                    ! 		  if (null != targetContext) {
                                    ! 		     targetContext.setTargetDirectory(targetDirectory);
                                    ! 		  }
                                    ! 	       }
                                    ! 
                                    ! 	       else if ("-nofixhtml".equals(optionTag)) {
                                    ! 		  fixHTML = false;
                                    !                   printError("-nofixhtml currently not supported.");
                                    !                   return false;
                                    ! 	       }
                                    ! 	       else if ("-compress".equals(optionTag)) {
                                    ! 		  compress = true;
                                    ! 	       }
                                    ! 	       else if ("-nohtmlwarn".equals(optionTag)) {
                                    ! 		  noHTMLWarn = true;
                                    ! 	       }
                                    ! 	       else if ("-noemailwarn".equals(optionTag)) {
                                    ! 		  noEmailWarn = true;
                                    ! 	       }
                                    ! 	       else if ("-indentstep".equals(optionTag)) {
                                    ! 		  indentStep = Integer.parseInt(option[1]);
                                    ! 	       }
                                    ! 	       else if ("-doctranslet".equals(optionTag)) {
                                    ! 		  targets.add(targetContext = new TargetContext(DocTranslet.fromJarFile(new File(option[1])), 
                                    !                                                                 targetDirectory));
                                    ! 	       }
                                    ! 	       else if ("-genhtml".equals(optionTag)) {
                                    ! 		  htmlTargetContext.setTargetDirectory(targetDirectory);
                                    ! 		  targets.add(targetContext = htmlTargetContext);
                                    !                   xmlOnly = false;
                                    ! 	       } 
                                    ! 	       else if ("-geninfo".equals(optionTag)) {
                                    !                   targetContext
                                    !                               = new TargetContext(DocTranslet.fromClasspath("/doctranslets/info/gengj.xsl"), 
                                    !                                                   targetDirectory);
                                    ! 		  targets.add(targetContext);
                                    ! 		  if (!fixHTML) {
                                    ! 		     printNotice("NOTE: -geninfo implies -fixhtml.");
                                    ! 		     fixHTML = true;
                                    ! 		  }
                                    !                   xmlOnly = false;
                                    ! 	       }
                                    ! 	       else if ("-gendocbook".equals(optionTag)) {
                                    !                   targetContext = new TargetContext(DocTranslet.fromClasspath("/doctranslets/docbook/gengj.xsl"), 
                                    !                                                     targetDirectory);
                                    ! 		  targets.add(targetContext);
                                    ! 		  if (!fixHTML) {
                                    ! 		     printNotice("NOTE: -gendocbook implies -fixhtml.");
                                    ! 		     fixHTML = true;
                                    ! 		  }
                                    ! 	       }
                                    ! 	       else if ("-genpdf".equals(optionTag)) {
                                    !                   targetContext
                                    !                      = new TargetContext(DocTranslet.fromClasspath("/doctranslets/docbook/gengj.xsl"), 
                                    !                                          targetDirectory);
                                    !                                          /** "gnu.classpath.tools.doclets.xmldoclet.DocBookPostprocessor") **/
                                    ! 		  targets.add(targetContext);
                                    ! 		  if (!fixHTML) {
                                    ! 		     printNotice("NOTE: -genpdf implies -fixhtml.");
                                    ! 		     fixHTML = true;
                                    ! 		  }
                                    ! 	       }
                                    ! 	       else if ("-xmlonly".equals(optionTag)) {
                                    ! 		  xmlOnly = true;
                                    ! 	       }
                                    ! 	       else if ("-bottomnote".equals(optionTag)) {
                                    ! 
                                    ! 		  FileReader reader = new FileReader(option[1]);
                                    ! 		  StringWriter writer = new StringWriter();
                                    ! 		  char[] buf = new char[256];
                                    ! 		  int nread;
                                    ! 		  while ((nread = reader.read(buf)) >= 0) {
                                    ! 		     writer.write(buf, 0, nread);
                                    ! 		  }
                                    ! 		  writer.flush();
                                    ! 		  bottomNote = writer.toString();
                                    ! 		  writer.close();
                                    ! 		  reader.close();
                                    ! 	       }
                                    ! 	       else if ("-title".equals(optionTag)) {
                                    ! 
                                    ! 		  title = option[1];
                                    ! 	       }
                                    ! 	       else if ("-workpath".equals(optionTag)) {
                                    ! 
                                    ! 		  workingPath = option[1];
                                    ! 	       }
                                    ! 	       else if ("-tagletpath".equals(optionTag)) {
                                    ! 
                                    !                   if (null == tagletPath) {
                                    !                      tagletPath = option[1];
                                    !                   }
                                    !                   else {
                                    !                      tagletPath = tagletPath + File.pathSeparator + option[1];
                                    !                   }
                                    ! 	       }
                                    !                else if ("-taglet".equals(optionTag)) {
                                    ! 
                                    !                   boolean tagletLoaded = false;
                                    ! 
                                    !                   String useTagletPath = this.tagletPath;
                                    !                   if (null == useTagletPath) {
                                    !                      useTagletPath = System.getProperty("java.class.path");
                                    !                   }
                                    ! 
                                    !                   try {
                                    !                      Class tagletClass;
                                    !                      try {
                                    !                         tagletClass
                                    !                            = new FileSystemClassLoader(useTagletPath).loadClass(option[1]);
                                    !                      }
                                    !                      catch (ClassNotFoundException e) {
                                    !                         // If not found on specified tagletpath, try default classloader
                                    !                         tagletClass
                                    !                            = Class.forName(option[1]);
                                    !                      }
                                    !                      Method registerTagletMethod
                                    !                         = tagletClass.getDeclaredMethod("register", new Class[] { java.util.Map.class });
                                    ! 
                                    !                      if (!registerTagletMethod.getReturnType().equals(Void.TYPE)) {
                                    !                         printError("Taglet class '" + option[1] + "' found, but register method doesn't return void.");
                                    !                      }
                                    !                      else if (registerTagletMethod.getExceptionTypes().length > 0) {
                                    !                         printError("Taglet class '" + option[1] + "' found, but register method contains throws clause.");
                                    !                      }
                                    !                      else if ((registerTagletMethod.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC | Modifier.ABSTRACT)) != (Modifier.STATIC | Modifier.PUBLIC)) {
                                    !                         printError("Taglet class '" + option[1] + "' found, but register method isn't public static, or is abstract..");
                                    !                      }
                                    !                      else {
                                    !                         Map tempMap = new HashMap();
                                    !                         registerTagletMethod.invoke(null, new Object[] { tempMap });
                                    !                         tagletLoaded = true;
                                    !                         String name = (String)tempMap.keySet().iterator().next();
                                    !                         Taglet taglet = (Taglet)tempMap.get(name);
                                    !                         tagletMap.put(name, taglet);
                                    !                         mentionedTags.add(taglet);
                                    !                      }
                                    !                   }
                                    !                   catch (NoSuchMethodException e) {
                                    !                      printError("Taglet class '" + option[1] + "' found, but doesn't contain the register method.");
                                    !                   }
                                    !                   catch (SecurityException e) {
                                    !                      printError("Taglet class '" + option[1] + "' cannot be loaded: " + e.getMessage());
                                    !                   }
                                    !                   catch (InvocationTargetException e) {
                                    !                      printError("Taglet class '" + option[1] + "' found, but register method throws exception: " + e.toString());
                                    !                   }
                                    !                   catch (IllegalAccessException e) {
                                    !                      printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
                                    !                   }
                                    !                   catch (IllegalArgumentException e) {
                                    !                      printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
                                    !                   }
                                    !                   catch (ClassNotFoundException e) {
                                    !                      printError("Taglet class '" + option[1] + "' cannot be found.");
                                    !                   }
                                    !                   if (!tagletLoaded) {
                                    !                      return false;
                                    !                   }
                                    !                }
                                    ! 	       else if ("-author".equals(optionTag)) {
                                    !                   AuthorTaglet.setTagletEnabled(true);
                                    !                }
                                    ! 	       else if ("-version".equals(optionTag)) {
                                    !                   VersionTaglet.setTagletEnabled(true);
                                    !                }
                                    ! 	       else if ("-nosince".equals(optionTag)) {
                                    !                   SinceTaglet.setTagletEnabled(false);
                                    !                }
                                    ! 	       else if ("-nodeprecated".equals(optionTag)) {
                                    !                   DeprecatedTaglet.setTagletEnabled(false);
                                    !                }
                                    ! 	       else if ("-authormail".equals(optionTag)) {
                                    !                   
                                    ! 		  if ("no-replace".equalsIgnoreCase(option[1])) {
                                    !                      AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NO_REPLACEMENT);
                                    !                   }
                                    ! 		  else if ("mailto-name".equalsIgnoreCase(option[1])) {
                                    !                      AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.MAILTO_NAME);
                                    !                   }
                                    ! 		  else if ("name-mailto-address".equalsIgnoreCase(option[1])) {
                                    !                      AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MAILTO_ADDRESS);
                                    !                   }
                                    ! 		  else if ("name-mangled-address".equalsIgnoreCase(option[1])) {
                                    !                      AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MANGLED_ADDRESS);
                                    !                   }
                                    !                   else {
                                    !                      printError("Invalid value for option '-authortag-email'. Allowed values are:"
                                    !                                 + " no-replace, mailto-name, name-mailto-address, name-mangled-address.");
                                    !                      return false;
                                    !                   }
                                    ! 	       }
                                    ! 	       else if ("-mailmangledot".equals(optionTag)) {
                                    !                   AuthorTaglet.setDotReplacement(option[1]);
                                    !                }
                                    ! 	       else if ("-mailmangleat".equals(optionTag)) {
                                    !                   AuthorTaglet.setAtReplacement(option[1]);
                                    !                }
                                    ! 	       else if ("-docfilessubdirs".equals(optionTag)) {
                                    !                   docFilesSubdirsEnabled = true;
                                    !                }
                                    ! 	       else if ("-excludedocfilessubdir".equals(optionTag)) {
                                    !                   StringTokenizer st = new StringTokenizer(option[1]);
                                    !                   while (st.hasMoreTokens()) {
                                    !                      excludeDocFilesSubDirs.add(st.nextToken());
                                    !                   }
                                    !                }
                                    ! 	       else if ("-nonavbar".equals(optionTag)) {
                                    !                   docTransletOptions.nonavbar = true;
                                    !                }
                                    ! 	       else if ("-noindex".equals(optionTag)) {
                                    !                   docTransletOptions.noindex = true;
                                    !                }
                                    ! 	       else if ("-notree".equals(optionTag)) {
                                    !                   docTransletOptions.notree = true;
                                    !                }
                                    ! 	       else if ("-nocomment".equals(optionTag)) {
                                    !                   docTransletOptions.nocomment = true;
                                    !                }
                                    ! 	       else if ("-nohelp".equals(optionTag)) {
                                    !                   docTransletOptions.nohelp = true;
                                    !                }
                                    ! 	       else if ("-splitindex".equals(optionTag)) {
                                    !                   docTransletOptions.splitindex = true;
                                    !                }
                                    ! 	       else if ("-linksource".equals(optionTag)) {
                                    !                   docTransletOptions.linksource = true;
                                    !                }
                                    ! 	       else if ("-windowtitle".equals(optionTag)) {
                                    !                   docTransletOptions.windowtitle = option[1];
                                    !                }
                                    ! 	       else if ("-helpfile".equals(optionTag)) {
                                    !                   docTransletOptions.helpfile = new File(option[1]).toURL().toString();
                                    !                }
                                    ! 	       else if ("-stylesheetfile".equals(optionTag)) {
                                    !                   docTransletOptions.stylesheetfile = new File(option[1]).toURL().toString();
                                    !                }
                                    ! 	       else if ("-header".equals(optionTag)) {
                                    !                   docTransletOptions.header = option[1];
                                    !                }
                                    ! 	       else if ("-footer".equals(optionTag)) {
                                    !                   docTransletOptions.footer = option[1];
                                    !                }
                                    ! 	       else if ("-bottom".equals(optionTag)) {
                                    !                   docTransletOptions.bottom = option[1];
                                    !                }
                                    ! 	       else if ("-doctitle".equals(optionTag)) {
                                    !                   docTransletOptions.doctitle = option[1];
                                    !                }
                                    ! 	       else if ("-nodeprecatedlist".equals(optionTag)) {
                                    !                   docTransletOptions.nodeprecatedlist = true;
                                    !                }
                                    ! 	       else if ("-uses".equals(optionTag)) {
                                    !                   docTransletOptions.uses = true;
                                    !                }
                                    ! 	       else if ("-group".equals(optionTag)) {
                                    !                   if (!processGroupOption(option[1], option[2])) {
                                    !                      printError("Invalid package wildcard list in -group option \"" + option[1] + "\" " + option[2]);
                                    !                      return false;
                                    !                   }
                                    !                }
                                    ! 	       else if ("-tag".equals(optionTag)) {
                                    !                   String tagSpec = option[1];
                                    !                   boolean validTagSpec = false;
                                    !                   int ndx1 = tagSpec.indexOf(':');
                                    !                   if (ndx1 < 0) {
                                    !                      Taglet taglet = (Taglet)tagletMap.get(tagSpec);
                                    !                      if (null == taglet) {
                                    !                         printError("There is no standard tag '" + tagSpec + "'.");
                                    !                      }
                                    !                      else {
                                    !                         if (mentionedTags.contains(taglet)) {
                                    !                            printError("Tag '" + tagSpec + "' has been added or moved before.");
                                    !                         }
                                    !                         else {
                                    !                            mentionedTags.add(taglet);
                                    !                            
                                    !                            // re-append taglet
                                    !                            tagletMap.remove(tagSpec);
                                    !                            tagletMap.put(tagSpec, taglet);
                                    !                         }
                                    !                      }
                                    !                   }
                                    !                   else {
                                    !                      int ndx2 = tagSpec.indexOf(':', ndx1 + 1);
                                    !                      if (ndx2 > ndx1 && ndx2 < tagSpec.length() - 1) {
                                    !                         String tagName = tagSpec.substring(0, ndx1);
                                    !                         String tagHead = null;
                                    !                         if (tagSpec.charAt(ndx2 + 1) == '\"') {
                                    !                            if (tagSpec.charAt(tagSpec.length() - 1) == '\"') {
                                    !                               tagHead = tagSpec.substring(ndx2 + 2, tagSpec.length() - 1);
                                    !                               validTagSpec = true;
                                    !                            }
                                    !                         }
                                    !                         else {
                                    !                            tagHead = tagSpec.substring(ndx2 + 1);
                                    !                            validTagSpec = true;
                                    !                         }
                                    ! 
                                    !                         boolean tagScopeOverview = false;
                                    !                         boolean tagScopePackages = false;
                                    !                         boolean tagScopeTypes = false;
                                    !                         boolean tagScopeConstructors = false;
                                    !                         boolean tagScopeMethods = false;
                                    !                         boolean tagScopeFields = false;
                                    !                         boolean tagDisabled = false;
                                    !                         
                                    !                      tag_option_loop:
                                    !                         for (int n=ndx1+1; n<ndx2; ++n) {
                                    !                            switch (tagSpec.charAt(n)) {
                                    !                            case 'X': 
                                    !                               tagDisabled = true;
                                    !                               break;
                                    !                            case 'a':
                                    !                               tagScopeOverview = true;
                                    !                               tagScopePackages = true;
                                    !                               tagScopeTypes = true;
                                    !                               tagScopeConstructors = true;
                                    !                               tagScopeMethods = true;
                                    !                               tagScopeFields = true;
                                    !                               break;
                                    !                            case 'o':
                                    !                               tagScopeOverview = true;
                                    !                               break;
                                    !                            case 'p':
                                    !                               tagScopePackages = true;
                                    !                               break;
                                    !                            case 't':
                                    !                               tagScopeTypes = true;
                                    !                               break;
                                    !                            case 'c':
                                    !                               tagScopeConstructors = true;
                                    !                               break;
                                    !                            case 'm':
                                    !                               tagScopeMethods = true;
                                    !                               break;
                                    !                            case 'f':
                                    !                               tagScopeFields = true;
                                    !                               break;
                                    !                            default:
                                    !                               validTagSpec = false;
                                    !                               break tag_option_loop;
                                    !                            }
                                    !                         }
                                    !                         
                                    !                         if (validTagSpec) {
                                    !                            GenericTaglet taglet
                                    !                               = new GenericTaglet(tagName,
                                    !                                                   tagHead,
                                    !                                                   tagScopeOverview,
                                    !                                                   tagScopePackages,
                                    !                                                   tagScopeTypes,
                                    !                                                   tagScopeConstructors,
                                    !                                                   tagScopeMethods,
                                    !                                                   tagScopeFields);
                                    !                            taglet.setTagletEnabled(!tagDisabled);
                                    !                            taglet.register(tagletMap);
                                    !                            mentionedTags.add(taglet);
                                    !                         }
                                    !                      }
                                    !                   }
                                    !                   if (!validTagSpec) {
                                    !                      printError("Value for option -tag must be in format \"<tagname>:Xaoptcmf:<taghead>\".");
                                    !                   }
                                    !                }
                                    ! 	    }
                                    ! 
                                    !             // Use current directory if target directory hasn't been set.
                                    !             if (null == targetDirectory) {
                                    !                targetDirectory = new File(System.getProperty("user.dir"));
                                    !             }
                                    !             if (null != targetContext) {
                                    !                targetContext.setTargetDirectory(targetDirectory);
                                    !             }
                                    ! 
                                    ! 	    // It is illegal to specify targets AND -xmlonly.
                                    ! 
                                    ! 	    if (xmlOnly && targets.size() > 0) {
                                    ! 
                                    ! 	       printError("You can only specify one of -xmlonly and a target format.");
                                    ! 	       return false;
                                    ! 	    }
                                    ! 
                                    ! 	    // If no target was specified and XML only was not
                                    ! 	    // requested, use HTML as default target.
                                    ! 
                                    ! 	    if (!xmlOnly && targets.size() == 0) {
                                    ! 	       targets.add(targetContext = htmlTargetContext);
                                    ! 	    }
                                    ! 
                                    ! 	    // Set the same target directory for all output.
                                    ! 
                                    ! 	    // FIXME: Allow separate target directories for different
                                    ! 	    // output formats.
                                    ! 
                                    ! 	    for (Iterator it = targets.iterator(); it.hasNext(); ) {
                                    ! 	       TargetContext t = (TargetContext)it.next();
                                    ! 	       t.setTargetDirectory(targetDirectory);
                                    ! 	    }
                                    ! 
                                    ! 	    // Create temporary directory if necessary
                                    ! 
                                    ! 	    if (xmlOnly) {
                                    ! 
                                    ! 	       xmlTargetDirectory = targetDirectory;
                                    ! 	    }
                                    ! 	    else {
                                    ! 
                                    ! 	       File workingTopDirectory = new File(workingPath);
                                    ! 
                                    ! 	       workingDirectory = new File(workingTopDirectory, "gjdoc.tmp."+System.currentTimeMillis());
                                    ! 	    
                                    ! 	       if (!workingDirectory.mkdir()) {
                                    ! 		  printError("Cannot create temporary directory at "+System.getProperty("java.io.tmpdir"));
                                    ! 		  return false;
                                    ! 	       }
                                    ! 
                                    ! 	       File xmlTempDirectory = new File(workingDirectory, "xmloutput");
                                    ! 
                                    ! 	       if (!xmlTempDirectory.mkdir()) {
                                    ! 		  printError("Cannot create temporary directory for XML output at "+System.getProperty("java.io.tmpdir"));
                                    ! 		  return false;
                                    ! 	       }
                                    ! 
                                    ! 	       xmlTargetDirectory = xmlTempDirectory;
                                    ! 	    }
                                    ! 
                                    !             // Create target directory if necessary
                                    ! 
                                    !             if (!targetDirectory.exists()) {
                                    !                printNotice("Creating destination directory: \""
                                    !                            + targetDirectory + "\"");
                                    !                if (!targetDirectory.mkdirs()) {
                                    !                   printError("Failed to create destination directory \""
                                    !                              + targetDirectory + "\"");
                                    !                   return false;
                                    !                }
                                    !             }
                                    ! 
                                    !             // Check for deprecation
                                    ! 
                                    !             boolean hasDeprecatedClasses = false;
                                    !             boolean hasDeprecatedInterfaces = false;
                                    !             boolean hasDeprecatedExceptions = false;
                                    !             boolean hasDeprecatedErrors = false;
                                    !             boolean hasDeprecatedMethods = false;
                                    !             boolean hasDeprecatedFields = false;
                                    ! 
                                    !             {
                                    !                ClassDoc[] classes = rootDoc.classes();
                                    !                for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
                                    !                   ClassDoc c = classes[i];
                                    !                   Tag[] deprecatedTags = c.tags("deprecated");
                                    !                   if (null != deprecatedTags && 0 != deprecatedTags.length) {
                                    !                      if (c.isInterface()) {
                                    !                         hasDeprecatedInterfaces = true;
                                    !                      }
                                    !                      else if (c.isException()) {
                                    !                         hasDeprecatedExceptions = true;
                                    !                      }
                                    !                      else if (c.isError()) {
                                    !                         hasDeprecatedErrors = true;
                                    !                      }
                                    !                      else /*if (c.isOrdinaryClass())*/ {
                                    !                         hasDeprecatedClasses = true;
                                    !                      }
                                    !                   }
                                    !                   
                                    !                   MethodDoc[] methods = c.methods();
                                    !                   for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
                                    !                      MethodDoc m = methods[j];
                                    !                      deprecatedTags = m.tags("deprecated");
                                    !                      if (null != deprecatedTags && 0 != deprecatedTags.length) {
                                    !                         hasDeprecatedMethods = true;
                                    !                      }
                                    !                   }
                                    !                   
                                    !                   FieldDoc[] fields = c.fields();
                                    !                   for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
                                    !                      FieldDoc f = fields[j];
                                    !                      deprecatedTags = f.tags("deprecated");
                                    !                      if (null != deprecatedTags && 0 != deprecatedTags.length) {
                                    !                         hasDeprecatedFields = true;
                                    !                      }
                                    !                   }
                                    !                }
                                    !             }
                                    ! 
                                    !             htmlRepairer = new HtmlRepairer(rootDoc, noHTMLWarn, noEmailWarn,
                                    !                                             currentClass, currentMember,
                                    !                                             false);
                                    ! 
                                    !             collectUsage();
                                    ! 
                                    !             // Begin XML generation
                                    ! 
                                    ! 	    printNotice("Writing XML Index file...");
                                    ! 
                                    ! 	    // Assign output stream
                                    ! 
                                    ! 	    setTargetFile("index.xml");
                                    ! 
                                    ! 	    // Output XML document header
                                    ! 
                                    ! 	    println(0, "<?xml version=\"1.0\"?>");
                                    ! 	    println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc.dtd\">");
                                    ! 	    println();
                                    ! 	    printOpenTag(0, "rootdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");
                                    ! 
                                    ! 	    println();
                                    ! 	    println(1, "<!-- Tags from overview page, if available -->");
                                    ! 
                                    !             if (rootDoc.firstSentenceTags().length > 0) {
                                    !                printOpenTag(2, "firstSentenceTags", false);
                                    !                outputTags(3, rootDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);
                                    !                printCloseTag(0, "firstSentenceTags");
                                    !             }
                                    ! 
                                    !             if (rootDoc.inlineTags().length > 0) {
                                    !                printOpenTag(2, "inlineTags");
                                    !                outputTags(3, rootDoc.inlineTags(), true, CONTEXT_PACKAGE);
                                    !                printCloseTag(2, "inlineTags");
                                    !             }
                                    ! 	 
                                    ! 	    if (null != bottomNote) {
                                    ! 	       printOpenTag(1, "bottomnote");
                                    ! 	       print(bottomNote);
                                    ! 	       printCloseTag(1, "bottomnote");
                                    ! 	    }
                                    ! 
                                    ! 	    if (null != title) {
                                    ! 	       printOpenTag(1, "title");
                                    ! 	       println(2, title);
                                    ! 	       printCloseTag(1, "title");
                                    ! 	    }
                                    ! 	 
                                    ! 	    printOpenTag(1, "created");
                                    ! 	    println(2, DateFormat.getDateInstance(DateFormat.LONG, Locale.US).format(new java.util.Date()));
                                    ! 	    printCloseTag(1, "created");
                                    ! 
                                    !             if (hasDeprecatedClasses) printAtomTag(1, "hasDeprecatedClasses");
                                    !             if (hasDeprecatedInterfaces) printAtomTag(1, "hasDeprecatedInterfaces");
                                    !             if (hasDeprecatedExceptions) printAtomTag(1, "hasDeprecatedExceptions");
                                    !             if (hasDeprecatedErrors) printAtomTag(1, "hasDeprecatedErrors");
                                    !             if (hasDeprecatedMethods) printAtomTag(1, "hasDeprecatedMethods");
                                    !             if (hasDeprecatedFields) printAtomTag(1, "hasDeprecatedFields");
                                    ! 
                                    ! 	    // Output summary of all classes specified on command line
                                    ! 
                                    ! 	    println();
                                    ! 	    println(1, "<!-- Classes specified by user on command line -->");
                                    ! 	    ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
                                    ! 	    for (int i=0, ilim=specifiedClasses.length; i<ilim; ++i) {
                                    ! 	       ClassDoc sc = specifiedClasses[i];
                                    ! 	       printAtomTag(1, "specifiedclass fqname=\""+sc.qualifiedName()+"\" name=\""+sc.name()+"\"");
                                    ! 	    }
                                    ! 	    specifiedClasses = null;
                                    ! 
                                    ! 	    // Output summary of all packages specified on command line
                                    ! 
                                    ! 	    println();
                                    ! 	    println(1, "<!-- Packages specified by user on command line -->");
                                    ! 	    PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
                                    ! 	    for (int i=0, ilim=specifiedPackages.length; i<ilim; ++i) {
                                    ! 	       PackageDoc sp = specifiedPackages[i];
                                    ! 	       printAtomTag(1, "specifiedpackage name=\""+sp.name()+"\"");
                                    ! 	    }
                                    ! 	    specifiedPackages = null;
                                    ! 
                                    ! 	    // Output package group information specified on the
                                    ! 	    // command line
                                    ! 
                                    ! 	    println();
                                    ! 	    println(1, "<!-- Package groups specified by user on command line -->");
                                    !             {
                                    !                Iterator packageGroupIt = packageGroups.iterator();
                                    !                while (packageGroupIt.hasNext()) {
                                    !                   PackageGroup packageGroup = (PackageGroup)packageGroupIt.next();
                                    !                   SortedSet groupedPackages = packageGroup.getPackages();
                                    !                   if (groupedPackages.isEmpty()) {
                                    !                      printWarning("Package group named '" 
                                    !                                   + packageGroup.getName() + "' didn't match any packages.");
                                    !                   }
                                    !                   else {
                                    !                      printOpenTag(1, "packagegroup name=\"" + packageGroup.getName() + "\"");
                                    !                      Iterator groupedPackageIt = groupedPackages.iterator();
                                    !                      while (groupedPackageIt.hasNext()) {
                                    !                         PackageDoc groupedPackageDoc = (PackageDoc)groupedPackageIt.next();
                                    !                         printAtomTag(2, "package name=\"" + groupedPackageDoc.name() + "\"");
                                    !                      }
                                    !                      printCloseTag(1, "packagegroup");
                                    !                   }
                                    !                }
                                    !                packageGroups = null;
                                    !             }
                                    ! 
                                    ! 	    // Output information on all packages for which documentation
                                    ! 	    // has been made available via the Doclet API
                                    ! 
                                    ! 	    println();
                                    ! 	    println(1, "<!-- Documentation for all packages -->");
                                    ! 	    PackageDoc[] packages = rootDoc.specifiedPackages();
                                    ! 	    for (int i=0, ilim=packages.length; i<ilim; ++i) {
                                    ! 	       PackageDoc c = packages[i];
                                    ! 	       outputPackageDoc(c);
                                    ! 	    }
                                    ! 	    packages = null;
                                    ! 
                                    ! 	    // Output brief summary on all classes for which documentation
                                    ! 	    // has been made available via the Doclet API.
                                    ! 	    //
                                    ! 	    // While this is redundant, it can speed up XSLT
                                    ! 	    // processing by orders of magnitude
                                    ! 
                                    ! 	    println();
                                    ! 	    println(1, "<!-- Brief summary for all classes -->");
                                    ! 	    ClassDoc[] sumclasses = rootDoc.classes();
                                    ! 	    for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {
                                    ! 	       ClassDoc c = sumclasses[i];
                                    ! 	       outputClassDocSummary(c);
                                    ! 	    }
                                    ! 	    sumclasses = null;
                                    ! 	    
                                    ! 	    // Output closing tag, finish output stream
                                    ! 
                                    ! 	    println();
                                    ! 	    printCloseTag(0, "rootdoc");
                                    ! 
                                    ! 	    closeTargetFile();
                                    ! 
                                    !             createIndexByName();
                                    ! 
                                    ! 
                                    ! 
                                    ! 	    // Output information on all classes for which documentation
                                    ! 	    // has been made available via the Doclet API
                                    ! 	    
                                    ! 	    println();
                                    ! 	    println(1, "<!-- Documentation for all classes -->");
                                    ! 	    ClassDoc[] classes = rootDoc.classes();
                                    !             String prevPackageName = null;
                                    ! 	    for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
                                    ! 	       ClassDoc c = classes[i];
                                    ! 
                                    !                if (isVerbose()) {
                                    !                   printNotice("Writing XML information for "+c.qualifiedName()+"...");
                                    !                }
                                    !                else {
                                    !                   String packageName = c.containingPackage().name();
                                    !                   if (null == prevPackageName || !packageName.equals(prevPackageName)) {
                                    !                      printNotice("Writing XML information for "+packageName+"...");
                                    !                      prevPackageName = packageName;
                                    !                   }
                                    !                }
                                    ! 	       
                                    ! 	       setTargetFile(c.qualifiedName().replace('/','.')+".xml");
                                    ! 	       
                                    ! 	       println("<?xml version=\"1.0\"?>");
                                    !                println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc.dtd\">");
                                    ! 	       
                                    ! 	       outputClassDoc(c);
                                    ! 	       
                                    ! 	       closeTargetFile();
                                    ! 	    }
                                    ! 	    classes = null;
                                    ! 	 }
                                    ! 	 
                                    !          // Copy DTD files to temporary directory
                                    !          
                                    !          // FIXME: try to solve this via jar: URLs. but this will
                                    !          // probably break libxmlj compatibility (?)
                                    !          
                                    !          String[] resources = new String[] {
                                    !             "gjdoc.dtd",
                                    !             "gjdoc-alphaindex.dtd",
                                    !             "dbcentx.mod",
                                    !             "ent/iso-amsa.ent",
                                    !             "ent/iso-amsb.ent",
                                    !             "ent/iso-amsc.ent",
                                    !             "ent/iso-amsn.ent",
                                    !             "ent/iso-amso.ent",
                                    !             "ent/iso-amsr.ent",
                                    !             "ent/iso-box.ent",
                                    !             "ent/iso-cyr1.ent",
                                    !             "ent/iso-cyr2.ent",
                                    !             "ent/iso-dia.ent",
                                    !             "ent/iso-grk1.ent",
                                    !             "ent/iso-grk2.ent",
                                    !             "ent/iso-grk3.ent",
                                    !             "ent/iso-grk4.ent",
                                    !             "ent/iso-lat1.ent",
                                    !             "ent/iso-lat2.ent",
                                    !             "ent/iso-num.ent",
                                    !             "ent/iso-pub.ent",
                                    !             "ent/iso-tech.ent",
                                    !          };
                                    ! 
                                    !          File tempDtdDirectory = new File(xmlTargetDirectory, "dtd");
                                    !          File tempDtdEntDirectory = new File(tempDtdDirectory, "ent");
                                    ! 
                                    !          if ((tempDtdDirectory.exists() || tempDtdDirectory.mkdir())
                                    !              && (tempDtdEntDirectory.exists() || tempDtdEntDirectory.mkdir())) {
                                    !             for (int i = 0; i < resources.length; ++ i) {
                                    !                copyResourceToFile("/dtd/" + resources[i], 
                                    !                                   new File(tempDtdDirectory, resources[i]));
                                    !             }
                                    !          }
                                    !          else {
                                    !             printError("Cannot create temporary directories for DTD data at " + tempDtdDirectory);
                                    !             return false;
                                    !          }
                                    ! 
                                    !          // Copy package data-dir directory
                                    ! 
                                    !          {
                                    !             PackageDoc[] packages = rootDoc.specifiedPackages();
                                    !             for (int i=0, ilim=packages.length; i<ilim; ++i) {
                                    !                PackageDoc c = packages[i];
                                    !                if (c instanceof GjdocPackageDoc) {
                                    !                   copyPackageDataDir((GjdocPackageDoc)c);
                                    !                }
                                    !             }
                                    !          }
                                    ! 
                                    ! 	 // All information has been output. Apply stylesheet if given.
                                    ! 
                                    ! 	 gnu.classpath.tools.gjdoc.Main.releaseRootDoc();
                                    !          
                                    ! 	 this.currentClass = null;
                                    ! 	 this.currentMember = null;
                                    ! 	 this.currentExecMember = null;
                                    ! 	 
                                    ! 	 System.gc();	 
                                    ! 
                                    ! 	 // From this point we are only operating on files, so we don't
                                    ! 	 // need this anymore and can free up some memory
                                    ! 
                                    !          for (Iterator it = targets.iterator(); it.hasNext(); ) {
                                    ! 
                                    !             TargetContext target = (TargetContext)it.next();
                                    ! 
                                    ! 	    // We have XSLT postprocessing, run DocTranslet.
                                    ! 
                                    !             //DocTranslet docTranslet = DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl");
                                    !             
                                    !             //docTranslet.setOptions(docTransletOptions);
                                    ! 
                                    !             target.getDocTranslet().setOptions(docTransletOptions);
                                    ! 
                                    !             target.getDocTranslet().apply(xmlTargetDirectory, 
                                    !                                           target.getTargetDirectory(), 
                                    !                                           rootDoc);
                                    ! 	 }
                                    ! 
                                    ! 	 // Done
                                    ! 
                                    ! 	 targets = null;
                                    ! 
                                    ! 	 System.gc();
                                    !          Runtime.getRuntime().runFinalization();
                                    ! 
                                    ! 	 return true;
                                    !       }
                                    !       catch (Exception e) {
                                    ! 
                                    ! 	 // Something went wrong. Report to stderr and pass error to
                                    ! 	 // Javadoc Reporter
                                    ! 
                                    ! 	 e.printStackTrace();
                                    ! 	 printError(e.toString());
                                    ! 
                                    !          Throwable rootCause = e.getCause();
                                    !          if (null != rootCause) {
                                    !             while (null != rootCause.getCause()) {
                                    !                rootCause = rootCause.getCause();
                                    !             }
                                    !             System.err.println("Root cause:");
                                    !             rootCause.printStackTrace();
                                    !          }
                                    ! 
                                    ! 	 return false;
                                    !       }
                                    !       finally {
                                    ! 
                                    ! 	 // In any case, delete the working directory if we created one
                                    ! 
                                    ! 	 if (null != workingDirectory) {
                                    ! 
                                    ! 	    if (!deleteRecursive(workingDirectory)) {
                                    ! 	       printWarning("Could not delete temporary directory at "+workingDirectory);
                                    ! 	    }
                                    ! 	 }
                                    ! 
                                    ! 	 printNotice("Done.");
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     * Recursively delete the specified directory and its contents,
                                    !     * like <code>rm -Rf directory</code>
                                    !     *
                                    !     * @return <code>true</code> on success
                                    !     */
                                    !    private static boolean deleteRecursive(File directory) {
                                    ! 
                                    !       boolean success = true;
                                    ! 
                                    !       File[] files = directory.listFiles();
                                    ! 
                                    !       for (int i=0, ilim=files.length; i<ilim; ++i) {
                                    ! 
                                    ! 	 File file = files[i];
                                    ! 
                                    ! 	 if (file.isDirectory()) {
                                    ! 
                                    ! 	    success = deleteRecursive(file) && success;
                                    ! 	 }
                                    ! 	 else {
                                    ! 
                                    ! 	    success = file.delete() && success;
                                    ! 	 }
                                    !       }
                                    ! 
                                    !       return directory.delete() && success;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints a string to stdout and appends a newline.  Convenience
                                    !     *  method.  
                                    !     */
                                    !    protected void println(String str) {
                                    !       out.println(str);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints a string to stdout without appending a newline.
                                    !     *  Convenience method.  
                                    !     */
                                    !    protected void print(String str) {
                                    !       out.print(str);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  In standard mode, prints an empty line to stdout.
                                    !     *  In thight mode, nothing happens.
                                    !     *  Convenience method.  
                                    !     */
                                    !    protected void println() {
                                    !       if (!compress) {
                                    ! 	 out.println();
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  In standard mode, prints the given text indented to stdout and appends newline. 
                                    !     *  In tight mode, doesn't print indentation or newlines.
                                    !     */
                                    !    protected void print(int indentLevel, String msg) {
                                    !       if (compress) {
                                    ! 	 out.print(msg);
                                    !       }
                                    !       else {
                                    ! 	 StringBuffer indentation = new StringBuffer();
                                    ! 	 for (int i=0; i<indentLevel*indentStep; ++i) {
                                    ! 	    indentation.append(' ');
                                    ! 	 }
                                    ! 	 out.print(indentation+msg);
                                    !       }
                                    !    }
                                    !    
                                    !    /**
                                    !     *  In tight mode, prints a message at a given indentation level.
                                    !     *  In standard mode, appends a newline in addition.
                                    !     */
                                    !    protected void println(int indentLevel, String msg) {
                                    !       print(indentLevel, msg);
                                    !       if (!compress) out.println();
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints an atom tag at the given indentation level.
                                    !     */
                                    !    protected void printAtomTag(int level, String tag) {
                                    !       println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+"/>");
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints an open tag at the given indentation level.
                                    !     */
                                    !    protected void printOpenTag(int level, String tag) {
                                    !       printOpenTag(level, replaceCharsInTag(tag), true);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints an open tag at the given indentation level and
                                    !     *  conditionally appends a newline (if not in tight mode).
                                    !     */
                                    !    protected void printOpenTag(int level, String tag, boolean appendNewline) {
                                    !       if (appendNewline && !compress) {
                                    ! 	 println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");
                                    !       }
                                    !       else {
                                    ! 	 print(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints a close tag at the given indentation level.
                                    !     */
                                    !    protected void printCloseTag(int level, String tag) {
                                    !       printCloseTag(level, tag, true);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints a close tag at the given indentation level and
                                    !     *  conditionally appends a newline (if not in tight mode).
                                    !     */
                                    !    protected void printCloseTag(int level, String tag, boolean appendNewline) {
                                    !       if (appendNewline && !compress) {
                                    ! 	 println(level, "</"+tagPrefix+":"+replaceCharsInTag(tag)+">");
                                    !       }
                                    !       else {
                                    ! 	 print(level, "</"+tagPrefix+":"+replaceCharsInTag(tag)+">");
                                    !       }
                                    !    }
                                    ! 
                                    !    public static int optionLength(String option) {
                                    !       if ("-d".equals(option)) return 2;
                                    !       else if ("-fixhtml".equals(option)) return 1;
                                    !       else if ("-compress".equals(option)) return 1;
                                    !       else if ("-nohtmlwarn".equals(option)) return 1;
                                    !       else if ("-noemailwarn".equals(option)) return 1;
                                    !       else if ("-indentstep".equals(option)) return 2;
                                    !       else if ("-xslsheet".equals(option)) return 2;
                                    !       else if ("-xsltdriver".equals(option)) return 2;
                                    !       else if ("-postprocess".equals(option)) return 2;
                                    !       else if ("-genhtml".equals(option)) return 1;
                                    !       else if ("-geninfo".equals(option)) return 1;
                                    !       else if ("-gendocbook".equals(option)) return 1;
                                    !       else if ("-xmlonly".equals(option)) return 1;
                                    !       else if ("-bottomnote".equals(option)) return 2;
                                    !       else if ("-workpath".equals(option)) return 2;
                                    !       else if ("-title".equals(option)) return 2;
                                    !       else if ("-tagletpath".equals(option)) return 2;
                                    !       else if ("-taglet".equals(option)) return 2;
                                    !       else if ("-authormail".equals(option)) return 2;
                                    !       else if ("-mailmangledot".equals(option)) return 2;
                                    !       else if ("-mailmangleat".equals(option)) return 2;
                                    !       else if ("-noindex".equals(option)) return 1;
                                    !       else if ("-nocomment".equals(option)) return 1;
                                    !       else if ("-notree".equals(option)) return 1;
                                    !       else if ("-nohelp".equals(option)) return 1;
                                    !       else if ("-nonavbar".equals(option)) return 1;
                                    !       else if ("-splitindex".equals(option)) return 1;
                                    !       else if ("-author".equals(option)) return 1;
                                    !       else if ("-version".equals(option)) return 1;
                                    !       else if ("-nosince".equals(option)) return 1;
                                    !       else if ("-nodeprecated".equals(option)) return 1;
                                    !       else if ("-linksource".equals(option)) return 1;
                                    !       else if ("-windowtitle".equals(option)) return 2;
                                    !       else if ("-helpfile".equals(option)) return 2;
                                    !       else if ("-stylesheetfile".equals(option)) return 2;
                                    !       else if ("-tag".equals(option)) return 2;
                                    !       else if ("-header".equals(option)) return 2;
                                    !       else if ("-footer".equals(option)) return 2;
                                    !       else if ("-bottom".equals(option)) return 2;
                                    !       else if ("-doctitle".equals(option)) return 2;
                                    !       else if ("-nodeprecatedlist".equals(option)) return 1;
                                    !       else if ("-uses".equals(option)) return 1;
                                    !       else if ("-group".equals(option)) return 3;
                                    ! 
                                    !       else return -1;
                                    !    }
                                    ! 
                                    !    public static boolean validOptions(String[][] options) {
                                    !       return true;
                                    !    }
                                    ! 
                                    ! 
                                    !    /**
                                    !     *  Workaround for non well-formed comments: fix tag contents
                                    !     *  by replacing <code><</code> with <code>&lt;</code>,
                                    !     *  <code>></code> with <code>&gt;</code> and
                                    !     *  <code>&</code> with <code>&amp;</code>.
                                    !     *
                                    !     *  @param tagContent  String to process
                                    !     *
                                    !     *  @return given String with all special characters replaced by 
                                    !     *          HTML entities.
                                    !     */
                                    !    private static String replaceCharsInTag(String tagContent) {
                                    !       return 
                                    ! 	 replaceString(
                                    ! 	    replaceString(
                                    ! 	       replaceString(
                                    ! 		  tagContent, 
                                    ! 		  "<", "<"
                                    ! 		  ), 
                                    ! 	       ">", ">"
                                    ! 	       ),
                                    ! 	    "&", "&"
                                    ! 	    );
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Replaces all occurences of string <code>needle</code> within string
                                    !     *  <code>haystack</code> by string <code>replacement</code>.
                                    !     *
                                    !     *  @param haystack    The string to search and replace in.
                                    !     *  @param needle      The string which is searched for.
                                    !     *  @param replacement The string by which every occurence of <code>needle</code> is replaced.
                                    !     */
                                    !    private static String replaceString(String haystack, String needle, String replacement) {
                                    !       int ndx = haystack.indexOf(needle);
                                    !       if (ndx<0)
                                    ! 	 return haystack;
                                    !       else
                                    ! 	 return haystack.substring(0, ndx) + replacement 
                                    ! 	    + replaceString(haystack.substring(ndx+needle.length()), needle, replacement);
                                    !    }
                                    ! 
                                    !    protected void setTargetFile(String filename) throws IOException {
                                    ! 
                                    !       OutputStream fileOut = new FileOutputStream(new File(xmlTargetDirectory, filename));
                                    !       out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fileOut, "UTF8")));;
                                    !    }
                                    ! 
                                    !    protected void closeTargetFile() {
                                    ! 
                                    !       out.flush();
                                    !       out.close();
                                    !    }
                                    ! 
                                    !    private String cdata(String str) {
                                    ! 
                                    !       if (null==str) {
                                    ! 	 return str;
                                    !       } // end of if ((null==str)
                                    ! 
                                    !       StringBuffer rc = new StringBuffer();
                                    !       for (int i=0; i<str.length(); ++i) {
                                    ! 	 char c = str.charAt(i);
                                    ! 	 if (c==0x09 || c==0x0a || c==0x0d || (c>=0x20 && c<=0xd7ff) || (c>=0xe000 && c<=0xfffd) || (c>=0x10000 && c<=0x10ffff)) {
                                    ! 	    rc.append(c);
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    printWarning("Invalid Unicode character 0x"+Integer.toString(c, 16)+" in javadoc markup has been stripped.");
                                    ! 	 } // end of else
                                    ! 	 
                                    !       }
                                    !       return rc.toString();
                                    !    }
                                    ! 
                                    !    static void copyResourceToFile(String resourceName, File target) throws IOException {
                                    !       
                                    !       InputStream in = Driver.class.getResourceAsStream(resourceName);
                                    ! 
                                    !       if (null != in) {
                                    ! 
                                    ! 	 FileOutputStream out = new FileOutputStream(target);
                                    ! 	 int size;
                                    ! 	 byte[] buffer = new byte[512];
                                    ! 	 while ((size = in.read(buffer)) >= 0) {
                                    ! 	    out.write(buffer, 0, size);
                                    ! 	 }
                                    ! 	 out.close();
                                    !       }
                                    !       else {
                                    ! 
                                    ! 	 throw new IOException("Can't find resource named "+resourceName);
                                    !       }
                                    !    }
                                    ! 
                                    !    private void printError(String error) {
                                    !       if (null != rootDoc) {
                                    ! 	 rootDoc.printError(error);
                                    !       }
                                    !       else {
                                    ! 	 System.err.println("ERROR: "+error);
                                    !       }
                                    !    }
                                    ! 
                                    !    private void printWarning(String warning) {
                                    !       if (null != rootDoc) {
                                    ! 	 rootDoc.printWarning(warning);
                                    !       }
                                    !       else {
                                    ! 	 System.err.println("WARNING: "+warning);
                                    !       }
                                    !    }
                                    ! 
                                    !    private void printNotice(String notice) {
                                    !       if (null != rootDoc) {
                                    ! 	 rootDoc.printNotice(notice);
                                    !       }
                                    !       else {
                                    ! 	 System.err.println(notice);
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Copy the contents of the input directory to the output
                                    !     *  directory. The output directory must exist.
                                    !     */
                                    !    private void copyPackageDataDir(GjdocPackageDoc packageDoc) throws IOException {
                                    !       File docFilesSourceDirectory
                                    !          = new File(packageDoc.packageDirectory(), "doc-files");
                                    !       File docFilesTargetDirectory
                                    !          = new File(this.targetDirectory, 
                                    !                     packageDoc.name().replace('.', File.separatorChar));
                                    !       if (docFilesSourceDirectory.exists()) {
                                    !          printNotice("Copying files from " + docFilesSourceDirectory);
                                    !          copyDirectory(docFilesSourceDirectory, docFilesTargetDirectory,
                                    !                        docFilesSubdirsEnabled,
                                    !                        excludeDocFilesSubDirs);
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Recursively copy the contents of the input directory to the
                                    !     *  output directory. The output directory must exist.
                                    !     */
                                    !    private static void copyDirectory(File sourceDir, File targetDir, 
                                    !                                      boolean recursive,
                                    !                                      Set excludeDirs) throws IOException {
                                    !       if (!targetDir.exists() && !targetDir.mkdirs()) {
                                    !          throw new IOException("Cannot create directory " + targetDir);
                                    !       }
                                    ! 
                                    !       File[] sourceFiles = sourceDir.listFiles();
                                    !       for (int i=0; i<sourceFiles.length; ++i) {
                                    !          if (sourceFiles[i].isDirectory()) {
                                    !             if (recursive && (null == excludeDirs 
                                    !                               || !excludeDirs.contains(sourceFiles[i].getName()))) {
                                    !                File targetSubDir = new File(targetDir, 
                                    !                                             sourceFiles[i].getName());
                                    !                if (targetSubDir.exists() || targetSubDir.mkdir()) {
                                    !                   copyDirectory(sourceFiles[i], targetSubDir, recursive, null);
                                    !                }
                                    !                else {
                                    !                   throw new IOException("Cannot create directory " + targetSubDir);
                                    !                }
                                    !             }
                                    !          }
                                    !          else {
                                    !             copyFile(sourceFiles[i], new File(targetDir, sourceFiles[i].getName()));
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Copy the contents of the input file to the output file. The
                                    !     *  output file's parent directory must exist.
                                    !     */
                                    !    private static void copyFile(File sourceFile, File targetFile) throws IOException {
                                    ! 
                                    !       InputStream in = new FileInputStream(sourceFile);
                                    !       OutputStream out = new FileOutputStream(targetFile);
                                    !       int nread;
                                    !       byte[] buf = new byte[512];
                                    !       while ((nread = in.read(buf)) >= 0) {
                                    !          out.write(buf, 0, nread);
                                    !       }
                                    !       in.close();
                                    !       out.close();
                                    !    }
                                    ! 
                                    !    private void createIndexByName() throws IOException {
                                    !       // Create index
                                    ! 
                                    !       // Collect index
                                    !             
                                    !       Map indexMap = new TreeMap(new Comparator() {
                                    !             public int compare(Object o1, Object o2) {
                                    !                return o1.toString().toLowerCase().compareTo(o2.toString().toLowerCase());
                                    !             }
                                    !          });
                                    ! 
                                    !       // Add packages to index
                                    ! 
                                    !       PackageDoc[] packages = rootDoc.specifiedPackages();
                                    !       for (int i=0, ilim=packages.length; i<ilim; ++i) {
                                    !          PackageDoc c = packages[i];
                                    !          indexMap.put(c.name(), c);
                                    !       }
                                    ! 
                                    !       // Add classes, fields and methods to index
                                    ! 
                                    !       ClassDoc[] sumclasses = rootDoc.classes();
                                    !       for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {
                                    !          ClassDoc c = sumclasses[i];
                                    !          if (null == c.containingClass()) {
                                    !             indexMap.put(c.name(), c);
                                    !          }
                                    !          else {
                                    !             indexMap.put(c.name().substring(c.containingClass().name().length() + 1), c);
                                    !          }
                                    !          FieldDoc[] fields = c.fields();
                                    !          for (int j=0, jlim=fields.length; j<jlim; ++j) {
                                    !             indexMap.put(fields[j].name(), fields[j]);
                                    !          }
                                    !          MethodDoc[] methods = c.methods();
                                    !          for (int j=0, jlim=methods.length; j<jlim; ++j) {
                                    !             MethodDoc method = methods[j];
                                    !             StringBuffer signature = new StringBuffer();
                                    !             signature.append(method.name());
                                    !             signature.append('(');
                                    !             Parameter[] parameters = method.parameters();
                                    !             for (int k=0, klim=parameters.length; k<klim; ++k) {
                                    !                if (k > 0) {
                                    !                   signature.append(", ");
                                    !                }
                                    !                signature.append(parameters[k].typeName());
                                    !             }
                                    !             signature.append(')');
                                    !             indexMap.put(signature.toString(), method);
                                    !          }
                                    !       }
                                    ! 
                                    !       // Assign output stream
                                    ! 
                                    !       setTargetFile("alphaindex.xml");
                                    ! 
                                    !       // Output XML document header
                                    ! 
                                    !       println(0, "<?xml version=\"1.0\"?>");
                                    !       println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc-alphaindex.dtd\">");
                                    !       println();
                                    !       printOpenTag(0, "alphaindex xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");
                                    !       
                                    !       Iterator it = indexMap.keySet().iterator();
                                    ! 
                                    !       char previousCategoryLetter = '\0';
                                    !       boolean categoryOpen = false;
                                    ! 
                                    !       while (it.hasNext()) {
                                    !          String key = (String)it.next();
                                    !          Doc entry = (Doc)indexMap.get(key);
                                    ! 
                                    !          char firstChar = Character.toUpperCase(key.charAt(0));
                                    !          if (firstChar != previousCategoryLetter) {
                                    !             if (categoryOpen) {
                                    !                printCloseTag(1, "category");
                                    !             }
                                    !             printOpenTag(1, "category letter=\"" + firstChar + "\"");
                                    !             categoryOpen = true;
                                    !             previousCategoryLetter = firstChar;
                                    !          }
                                    ! 
                                    !          printOpenTag(2, "entry name=\"" + key + "\"");
                                    !          if (entry instanceof PackageDoc) {
                                    !             printAtomTag(3, "isPackage");
                                    !          }
                                    !          else if (entry instanceof ClassDoc) {
                                    !             printAtomTag(3, "isClass");
                                    !             ClassDoc centry = (ClassDoc)entry;
                                    !             currentClass = centry;
                                    !             printAtomTag(3, "containingPackage name=\"" + centry.containingPackage().name() + "\"");
                                    !             if (null != centry.containingClass()) {
                                    !                printAtomTag(3, "containingClass name=\"" + centry.containingClass().name() + "\"");
                                    !             }
                                    !             if (centry.isInterface()) {
                                    !                printAtomTag(3, "isInterface");
                                    !             }
                                    !             if (centry.isException()) {
                                    !                printAtomTag(3, "isException");
                                    !             }
                                    !             if (centry.isError()) {
                                    !                printAtomTag(3, "isError");
                                    !             }
                                    !             if (centry.isOrdinaryClass()) {
                                    !                printAtomTag(3, "isOrdinaryClass");
                                    !             }
                                    !          }
                                    !          else if (entry instanceof ProgramElementDoc) {
                                    !             ProgramElementDoc pentry = (ProgramElementDoc)entry;
                                    !             currentClass = pentry.containingClass();
                                    !             printAtomTag(3, "containingPackage name=\"" + pentry.containingPackage().name() + "\"");
                                    !             printAtomTag(3, "containingClass name=\"" + pentry.containingClass().name() + "\"");
                                    !             if (pentry.isMethod()) {
                                    !                printAtomTag(3, "isMethod");
                                    !                ExecutableMemberDoc mentry = (ExecutableMemberDoc)pentry;
                                    !                printAtomTag(3, "signature full=\""+mentry.signature()+"\" flat=\""+mentry.flatSignature()+"\"");
                                    !                printAtomTag(3, "method name=\"" + mentry.name() + "\"");
                                    !             }
                                    !             if (pentry.isField()) {
                                    !                printAtomTag(3, "isField");
                                    !             }
                                    !          }
                                    ! 
                                    !          Tag[] tags = entry.firstSentenceTags();
                                    !          for (int i=0, ilim=tags.length; i<ilim; ++i) {
                                    !             Tag tag = tags[i];
                                    !             if (tag.firstSentenceTags().length>0) {
                                    !                printOpenTag(3, "firstSentenceTags", false);
                                    !                outputTags(4, tag.firstSentenceTags(), false, CONTEXT_TYPE);
                                    !                printCloseTag(3, "firstSentenceTags");
                                    !             }
                                    !          }
                                    ! 
                                    ! 
                                    !          printCloseTag(2, "entry");
                                    !       }
                                    ! 
                                    !       if (categoryOpen) {
                                    !          printCloseTag(1, "category");
                                    !       }
                                    ! 
                                    !       printCloseTag(0, "alphaindex");
                                    ! 
                                    !       closeTargetFile();
                                    !    }
                                    ! 
                                    !    private static class UsageType
                                    !    {
                                    !       public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from");
                                    !       public static final UsageType FIELD_OF_TYPE = new UsageType("field-of-type");
                                    !       public static final UsageType METHOD_WITH_RETURN_TYPE = new UsageType("method-with-return-type");
                                    !       public static final UsageType METHOD_WITH_PARAMETER_TYPE = new UsageType("method-with-parameter-type");
                                    !       public static final UsageType METHOD_WITH_THROWN_TYPE = new UsageType("method-with-thrown-type");
                                    !       public static final UsageType CONSTRUCTOR_WITH_PARAMETER_TYPE = new UsageType("constructor-with-parameter-type");
                                    !       public static final UsageType CONSTRUCTOR_WITH_THROWN_TYPE = new UsageType("constructor-with-thrown-type");
                                    !       private String id;
                                    ! 
                                    !       private UsageType(String id)
                                    !       {
                                    !          this.id = id;
                                    !       }
                                    ! 
                                    !       public String toString() { 
                                    !          return "UsageType{id=" + id + "}"; 
                                    !       }
                                    ! 
                                    !       public String getId() {
                                    !          return id;
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  ClassDoc -> (PackageDoc -> (UsageType -> (Set of Doc)))
                                    !     */
                                    !    private Map usedClassToPackagesMap = new HashMap();
                                    ! 
                                    !    private void addUsedBy(ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage)
                                    !    {
                                    !       Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(usedClass);
                                    !       if (null == packageToUsageTypeMap) {
                                    !          packageToUsageTypeMap = new HashMap();
                                    !          usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap);
                                    !       }
                                    ! 
                                    !       Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(userPackage);
                                    !       if (null == usageTypeToUsersMap) {
                                    !          usageTypeToUsersMap = new HashMap();
                                    !          packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap);
                                    !       }
                                    ! 
                                    !       Set userSet = (Set)usageTypeToUsersMap.get(usageType);
                                    !       if (null == userSet) {
                                    !          userSet = new TreeSet(); // FIXME: we need the collator from Main here
                                    !          usageTypeToUsersMap.put(usageType, userSet);
                                    !       }
                                    !       userSet.add(user);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Create the cross reference database.
                                    !     */
                                    !    private void collectUsage() {
                                    ! 
                                    !       ClassDoc[] classes = rootDoc.classes();
                                    !       for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
                                    !          ClassDoc clazz = classes[i];
                                    ! 
                                    !          // classes derived from
                                    !          for (ClassDoc superclass = clazz.superclass(); superclass != null; 
                                    !               superclass = superclass.superclass()) {
                                    !             addUsedBy(superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
                                    !          }
                                    ! 
                                    !          FieldDoc[] fields = clazz.fields();
                                    !          for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
                                    !             FieldDoc field = fields[j];
                                    ! 
                                    !             // fields of type                  
                                    !             ClassDoc fieldType = field.type().asClassDoc();
                                    !             if (null != fieldType) {
                                    !                addUsedBy(fieldType, UsageType.FIELD_OF_TYPE, 
                                    !                          field, clazz.containingPackage());
                                    !             }
                                    !          }
                                    ! 
                                    !          MethodDoc[] methods = clazz.methods();
                                    !          for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
                                    !             MethodDoc method = methods[j];
                                    ! 
                                    !             // methods with return type
                                    ! 
                                    !             ClassDoc returnType = method.returnType().asClassDoc();
                                    !             if (null != returnType) {
                                    !                addUsedBy(returnType, UsageType.METHOD_WITH_RETURN_TYPE, 
                                    !                          method, clazz.containingPackage());
                                    !             }
                                    !             Parameter[] parameters = method.parameters();
                                    !             for (int k=0; k<parameters.length; ++k) {
                                    ! 
                                    !                // methods with parameter type
                                    ! 
                                    !                Parameter parameter = parameters[k];
                                    !                ClassDoc parameterType = parameter.type().asClassDoc();
                                    !                if (null != parameterType) {
                                    !                   addUsedBy(parameterType, UsageType.METHOD_WITH_PARAMETER_TYPE, 
                                    !                             method, clazz.containingPackage());
                                    !                }
                                    !             }
                                    ! 
                                    !             // methods which throw
                                    ! 
                                    !             ClassDoc[] thrownExceptions = method.thrownExceptions();
                                    !             for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
                                    !                ClassDoc thrownException = thrownExceptions[k];
                                    !                addUsedBy(thrownException, UsageType.METHOD_WITH_THROWN_TYPE, 
                                    !                          method, clazz.containingPackage());
                                    !             }
                                    !          }
                                    !                   
                                    !          ConstructorDoc[] constructors = clazz.constructors();
                                    !          for (int j = 0, jlim = constructors.length; j < jlim; ++ j) {
                                    ! 
                                    !             ConstructorDoc constructor = constructors[j];
                                    ! 
                                    !             Parameter[] parameters = constructor.parameters();
                                    !             for (int k = 0, klim = parameters.length; k < klim; ++ k) {
                                    ! 
                                    !                // constructors with parameter type
                                    !                      
                                    !                Parameter parameter = parameters[k];
                                    !                ClassDoc parameterType = parameter.type().asClassDoc();
                                    !                if (null != parameterType) {
                                    !                   addUsedBy(parameterType, UsageType.CONSTRUCTOR_WITH_PARAMETER_TYPE, 
                                    !                             constructor, clazz.containingPackage());
                                    !                }
                                    !             }
                                    ! 
                                    !             // constructors which throw
                                    ! 
                                    !             ClassDoc[] thrownExceptions = constructor.thrownExceptions();
                                    !             for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
                                    !                ClassDoc thrownException = thrownExceptions[k];
                                    !                addUsedBy(thrownException, UsageType.CONSTRUCTOR_WITH_THROWN_TYPE, 
                                    !                          constructor, clazz.containingPackage());
                                    !             }
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    private void outputUsage(ClassDoc clazz, int level) {
                                    ! 
                                    !       Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(clazz);
                                    !       if (null != packageToUsageTypeMap) {
                                    !          printOpenTag(level, "references");
                                    ! 
                                    !          Iterator packagesIterator = packageToUsageTypeMap.keySet().iterator();
                                    ! 
                                    !          while (packagesIterator.hasNext()) {
                                    !             PackageDoc packageDoc = (PackageDoc)packagesIterator.next();
                                    !             printOpenTag(level + 1, "referencing-package name=\"" + packageDoc.name() + "\"");
                                    !             Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(packageDoc);
                                    !             Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();
                                    !             while (usageTypeIterator.hasNext()) {
                                    !                UsageType usageType = (UsageType)usageTypeIterator.next();
                                    !                printOpenTag(level + 2, "usage-type id=\"" + usageType.getId() + "\"");
                                    !                Set users = (Set)usageTypeToUsersMap.get(usageType);
                                    !                Iterator userIterator = users.iterator();
                                    !                while (userIterator.hasNext()) {
                                    !                   Doc user = (Doc)userIterator.next();
                                    !                   if (user instanceof ClassDoc) {
                                    !                      printAtomTag(level + 3, "user"
                                    !                                   + " class=\"" + ((ClassDoc)user).name() + "\"");
                                    !                   }
                                    !                   else if (user instanceof FieldDoc) {
                                    !                      FieldDoc fieldDoc = (FieldDoc)user;
                                    !                      printAtomTag(level + 3, "user"
                                    !                                   + " class=\"" + fieldDoc.containingClass().name() + "\""
                                    !                                   + " field=\"" + fieldDoc.name() + "\"");
                                    !                   }
                                    !                   else if (user instanceof MethodDoc) {
                                    !                      MethodDoc methodDoc = (MethodDoc)user;
                                    !                      printAtomTag(level + 3, "user"
                                    !                                   + " class=\"" + methodDoc.containingClass().name() + "\""
                                    !                                   + " method=\"" + methodDoc.name() + "\""
                                    !                                   + " signature=\"" + methodDoc.signature() + "\""
                                    !                                   + " flatSignature=\"" + methodDoc.flatSignature() + "\"");
                                    !                   }
                                    !                   else if (user instanceof ConstructorDoc) {
                                    !                      ConstructorDoc constructorDoc = (ConstructorDoc)user;
                                    !                      printAtomTag(level + 3, "user"
                                    !                                   + " class=\"" + constructorDoc.containingClass().name() + "\""
                                    !                                   + " signature=\"" + constructorDoc.signature() + "\""
                                    !                                   + " flatSignature=\"" + constructorDoc.flatSignature() + "\"");
                                    !                   }
                                    !                }
                                    !                printCloseTag(level +2, "usage-type");
                                    !             }
                                    !             printCloseTag(level + 1, "referencing-package");
                                    !          }
                                    ! 
                                    !          printCloseTag(level, "references");
                                    !       }
                                    !    }
                                    ! 
                                    !    private boolean processGroupOption(String groupName, String colonSeparatedPackageList)
                                    !    {
                                    !       try {
                                    !          PackageMatcher packageMatcher = new PackageMatcher();
                                    ! 
                                    !          StringTokenizer tokenizer = new StringTokenizer(colonSeparatedPackageList, ":");
                                    !          while (tokenizer.hasMoreTokens()) {
                                    !             String packageWildcard = tokenizer.nextToken();
                                    !             packageMatcher.addWildcard(packageWildcard);
                                    !          }
                                    ! 
                                    !          SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());
                                    ! 
                                    !          packageGroups.add(new PackageGroup(groupName, groupPackages));
                                    ! 
                                    !          return true;
                                    !       }
                                    !       catch (InvalidPackageWildcardException e) {
                                    !          return false;
                                    !       }
                                    !    }
                                    ! 
                                    !    private void registerTaglet(Taglet taglet)
                                    !    {
                                    !       tagletMap.put(taglet.getName(), taglet);
                                    !    }
                                    ! 
                                    !    private boolean isVerbose()
                                    !    {
                                    !       return false;
                                    !    }
                                    ! }
                                    --- 1,2451 ----
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.Driver
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet;
                                    ! 
                                    ! import com.sun.javadoc.*;
                                    ! import java.io.*;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import java.lang.reflect.InvocationTargetException;
                                    ! import java.lang.reflect.Method;
                                    ! import java.lang.reflect.Modifier;
                                    ! 
                                    ! import java.text.DateFormat;
                                    ! 
                                    ! import java.util.ArrayList;
                                    ! import java.util.Arrays;
                                    ! import java.util.Comparator;
                                    ! import java.util.HashSet;
                                    ! import java.util.TreeSet;
                                    ! import java.util.Iterator;
                                    ! import java.util.LinkedHashMap;
                                    ! import java.util.LinkedList;
                                    ! import java.util.List;
                                    ! import java.util.Locale;
                                    ! import java.util.Map;
                                    ! import java.util.HashMap;
                                    ! import java.util.Properties;
                                    ! import java.util.Set;
                                    ! import java.util.SortedSet;
                                    ! import java.util.StringTokenizer;
                                    ! import java.util.TreeMap;
                                    ! 
                                    ! import gnu.classpath.tools.gjdoc.TemporaryStore;
                                    ! import gnu.classpath.tools.gjdoc.GjdocPackageDoc;
                                    ! 
                                    ! import gnu.classpath.tools.doclets.PackageGroup;
                                    ! import gnu.classpath.tools.doclets.PackageMatcher;
                                    ! import gnu.classpath.tools.doclets.InvalidPackageWildcardException;
                                    ! 
                                    ! import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
                                    ! import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletOptions;
                                    ! 
                                    ! import gnu.classpath.tools.taglets.AuthorTaglet;
                                    ! import gnu.classpath.tools.taglets.VersionTaglet;
                                    ! import gnu.classpath.tools.taglets.SinceTaglet;
                                    ! import gnu.classpath.tools.taglets.DeprecatedTaglet;
                                    ! import gnu.classpath.tools.taglets.GenericTaglet;
                                    ! import gnu.classpath.tools.doclets.StandardTaglet;
                                    ! 
                                    ! import gnu.classpath.tools.java2xhtml.Java2xhtml;
                                    ! 
                                    ! import gnu.classpath.tools.IOToolkit;
                                    ! import gnu.classpath.tools.FileSystemClassLoader;
                                    ! 
                                    ! /**
                                    !  *  A Doclet which retrieves all information presented by the Doclet
                                    !  *  API, dumping it to stdout in XML format.
                                    !  *
                                    !  *  @author Julian Scheid
                                    !  */
                                    ! public class Driver {
                                    ! 
                                    !    public static final String XMLDOCLET_VERSION = "0.6.1";
                                    ! 
                                    !    /**
                                    !     *  Used for redirecting error messages to <code>/dev/null</code>.
                                    !     */
                                    !    private static class NullErrorReporter implements DocErrorReporter {
                                    !       public void printError(String ignore) {}
                                    !       public void printWarning(String ignore) {}
                                    !       public void printNotice(String ignore) {}
                                    !    }
                                    ! 
                                    !    /*
                                    !     *  Taglet context constants.
                                    !     */
                                    !    private static final int CONTEXT_CONSTRUCTOR  = 1;
                                    !    private static final int CONTEXT_FIELD        = 2;
                                    !    private static final int CONTEXT_METHOD       = 3;
                                    !    private static final int CONTEXT_OVERVIEW     = 4;
                                    !    private static final int CONTEXT_PACKAGE      = 5;
                                    !    private static final int CONTEXT_TYPE         = 6;
                                    ! 
                                    !    /**
                                    !     *  All XML output will go to this stream.
                                    !     */
                                    !    private PrintWriter out;
                                    ! 
                                    !    /**
                                    !     *  How many spaces to indent each XML node level,
                                    !     *  i.e. Tab size for output.
                                    !     */
                                    !    private static int indentStep = 1;
                                    ! 
                                    !    /**
                                    !     *  Won't output superfluous spaces if set to true.
                                    !     *  If set to false, output will be more legible.
                                    !     */
                                    !    private boolean compress = false;
                                    ! 
                                    !    /**
                                    !     *  Won't output warning messages while fixing
                                    !     *  HTML code if set to true.
                                    !     */
                                    !    private boolean noHTMLWarn = false;
                                    ! 
                                    !    /**
                                    !     *  Won't output warning messages when encountering tags
                                    !     *  that look like an email address if set to true.
                                    !     */
                                    !    private boolean noEmailWarn = false;
                                    ! 
                                    !    /**
                                    !     *  Will fix HTML if necessary so that each comment
                                    !     *  contains valid XML code if set to true. If set
                                    !     *  to false, HTML code will not be modified and
                                    !     *  instead encapsulated in a CDATA section.
                                    !     */
                                    !    private boolean fixHTML = true;
                                    ! 
                                    !    /**
                                    !     *  User-specified name of the directory where the final version of
                                    !     *  the generated files will be written to.
                                    !     *
                                    !     *  If no XSLT sheet is given, the XML output will go directly into
                                    !     *  this directory. Otherwise, XML output will go to a temporary
                                    !     *  directory and XSLT output will go to this directory.
                                    !     */
                                    !    private File targetDirectory = null;
                                    ! 
                                    !    /**
                                    !     *  Directory where XML output will be written to. If no XSLT
                                    !     *  sheet was given, this is the target directory specified
                                    !     *  by the user. Otherwise, this is a temporary directory.
                                    !     */
                                    !    private File xmlTargetDirectory;
                                    ! 
                                    !    /**
                                    !     *  Contains a number of TargetContexts which describe which XSLT
                                    !     *  sheet to apply to the output of this doclet, to what directory
                                    !     *  the XSLT output is written, and which postprocess driver to use
                                    !     *  to process XSLT output.
                                    !     */
                                    !    private List targets = new ArrayList();
                                    ! 
                                    !    /**
                                    !     *  XML text to include at the end of every generated page. Read
                                    !     *  from the file specified on the command line using -bottomnote.
                                    !     *  If present, this will be written to the main output file
                                    !     *  (index.xml) in node /gjdoc:rootDoc/gjdoc:bottomnote.
                                    !     */
                                    !    private String bottomNote;
                                    ! 
                                    !    /**
                                    !     *  Brief description of the package set. Can be specified on the
                                    !     *  command line using -title.  This will be written to the main
                                    !     *  output file (index.xml) in node
                                    !     *  /gjdoc:rootDoc/gjdoc:title. The HTML generating XSLT sheet
                                    !     *  uses this for example in window titles.
                                    !     */
                                    !    private String title;
                                    ! 
                                    !    /**
                                    !     *  Path to the directory where temporary files should be stored.
                                    !     *  Defaults to system tempdir, but can be overridden by user
                                    !     *  with -workpath.
                                    !     */
                                    !    private String workingPath = System.getProperty("java.io.tmpdir");
                                    ! 
                                    !    /**
                                    !     *  Temporary directory created by this doclet where all
                                    !     *  temporary files will be stored in. If no temporary
                                    !     *  files are needed (i.e. no XSLT postprocessing stage
                                    !     *  specified by user), this is <code>null</code>.
                                    !     */
                                    !     private File workingDirectory;
                                    ! 
                                    !    /**
                                    !     *  Whether to deep-copy the doc-files subdirectory.
                                    !     */
                                    !     private boolean docFilesSubdirsEnabled = false;
                                    ! 
                                    !    /**
                                    !     *  Which direct subdirectories of the doc-files directories to exclude.
                                    !     *  Set of String.
                                    !     */
                                    !     private Set excludeDocFilesSubDirs = new HashSet();
                                    ! 
                                    !    /**
                                    !     *  Stores the Doclet API RootDoc we are operating on.
                                    !     */
                                    !    private RootDoc rootDoc;
                                    ! 
                                    !    /**
                                    !     *  XML namespace prefix used for all tags, except for HTML
                                    !     *  tags copied from Javadoc comments. Excluding colon.
                                    !     */
                                    !    public static final String tagPrefix = "gjdoc";
                                    ! 
                                    !    /**
                                    !     *  Classpath for loading Taglet classes.
                                    !     */
                                    !    private String tagletPath = null;
                                    ! 
                                    !    /**
                                    !     *  The current class that is being processed.
                                    !     *  Set in outputClassDoc().
                                    !     */
                                    !    private ClassDoc currentClass;
                                    ! 
                                    !    /**
                                    !     *  The current member that is being processed.
                                    !     *  Set in outputMemberDoc().
                                    !     */
                                    !    private MemberDoc currentMember;
                                    ! 
                                    !    /**
                                    !     *  The current constructor/method that is being processed.
                                    !     *  Set in outputExecutableMemberDoc().
                                    !     */
                                    !    private ExecutableMemberDoc currentExecMember;
                                    ! 
                                    !    /**
                                    !     *  Mapping from tag type to Taglet for user Taglets specified on
                                    !     *  the command line.
                                    !     */
                                    !    private Map tagletMap = new LinkedHashMap();
                                    ! 
                                    !    /**
                                    !     *  Keeps track of the tags mentioned by the user during option
                                    !     *  processiong so that an error can be emitted if a tag is
                                    !     *  mentioned more than once.
                                    !     */
                                    !    private List mentionedTags = new LinkedList();
                                    ! 
                                    !    /**
                                    !     *  Stores options to be passed to the DocTranslet.
                                    !     */
                                    !    private DocTransletOptions docTransletOptions = new DocTransletOptions();
                                    ! 
                                    !    /**
                                    !     *  Stores the package groups specified in the user
                                    !     *  options. Contains objects of type PackageGroup.
                                    !     */
                                    !    private List packageGroups = new LinkedList();
                                    ! 
                                    !    private HtmlRepairer htmlRepairer;
                                    ! 
                                    !    public static boolean start(TemporaryStore _rootDocWrapper) {
                                    !       return new Driver().instanceStart((RootDoc)_rootDocWrapper.getAndClear());
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Official Doclet entry point.
                                    !     */
                                    !    public static boolean start(RootDoc _rootDoc) {
                                    ! 
                                    !       // Create a new XmlDoclet instance and delegate control.
                                    !       TemporaryStore tstore = new TemporaryStore(_rootDoc);
                                    !       _rootDoc = null;
                                    !       return new Driver().instanceStart((RootDoc)tstore.getAndClear());
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Output an XML tag describing a com.sun.javadoc.Type object.
                                    !     *  Assumes that the tag does not have subtags.
                                    !     *
                                    !     *  @param level  Level of indentation. Will be multiplied by
                                    !     *                <code>indentStep</code> to yield actual amount
                                    !     *                of whitespace inserted at start of line.
                                    !     *  @param tag    Identifier for the XML tag being output.
                                    !     *  @param type   The Javadoc Type to be output.
                                    !     */
                                    !    protected void outputType(int level, String tag, Type type) {
                                    !       outputType(level, tag, type, true);
                                    !    }
                                    ! 
                                    !    protected void outputType(int level, String tag, Type type, boolean atomic) {
                                    ! 
                                    !       boolean isIncluded = false;
                                    !       ClassDoc typeAsClassDoc = type.asClassDoc();
                                    !       String packageName = null;
                                    !       if (null != typeAsClassDoc) {
                                    !          isIncluded = typeAsClassDoc.isIncluded();
                                    !          packageName = typeAsClassDoc.containingPackage().name();
                                    !       }
                                    !       println(level, "<"+tagPrefix+":"+tag + " typename=\""+type.typeName()+"\""+
                                    !               " qualifiedtypename=\""+type.qualifiedTypeName()+"\""
                                    !               +(type.dimension().length()==0?"":" dimension=\""+type.dimension()+"\"")
                                    !               +(isIncluded?" isIncluded=\"true\"" : "")
                                    !               +((null != packageName)?" package=\"" + packageName + "\"" : "")
                                    !               +(atomic?"/":"")+">");
                                    !    }
                                    ! 
                                    !    protected void outputExecutableMemberDocBody(int level, ExecutableMemberDoc memberDoc) {
                                    ! 
                                    !       currentExecMember = memberDoc;
                                    ! 
                                    !       outputMemberDocBody(level, memberDoc);
                                    ! 
                                    !       Parameter[] parameters = memberDoc.parameters();
                                    !       for (int i=0, ilim=parameters.length; i<ilim; ++i) {
                                    !          Parameter parameter = parameters[i];
                                    !          outputType(level, "parameter name=\""+parameter.name()+"\"", parameter.type());
                                    !       }
                                    ! 
                                    !       ClassDoc[] exceptions = memberDoc.thrownExceptions();
                                    !       for (int i=0, ilim=exceptions.length; i<ilim; ++i) {
                                    !          ClassDoc exception = exceptions[i];
                                    !          outputType(level, "thrownException", exception);
                                    !        }
                                    ! 
                                    !       printAtomTag(level, "signature full=\""+memberDoc.signature()+"\" flat=\""+memberDoc.flatSignature()+"\"");
                                    ! 
                                    !       if (memberDoc.isNative()) {
                                    !          printAtomTag(level, "isNative");
                                    !       }
                                    ! 
                                    !       if (memberDoc.isSynchronized()) {
                                    !          printAtomTag(level, "isSynchronized");
                                    !       }
                                    !    }
                                    ! 
                                    !    protected void outputMethodDoc(int level, MethodDoc methodDoc) {
                                    !       println();
                                    !       printOpenTag(level, "methoddoc name=\""+methodDoc.name()+"\"");
                                    !       outputExecutableMemberDocBody(level+1, methodDoc);
                                    !       outputType(level+1, "returns", methodDoc.returnType());
                                    !       printCloseTag(level, "methoddoc");
                                    !    }
                                    ! 
                                    !    protected void outputMemberDocBody(int level, MemberDoc memberDoc) {
                                    !       currentMember = memberDoc;
                                    !       outputProgramElementDocBody(level, memberDoc);
                                    !    }
                                    ! 
                                    !    protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {
                                    !       outputType(level, "type", fieldDoc.type());
                                    !       if (fieldDoc.isTransient()) {
                                    !          printAtomTag(level, "isTransient");
                                    !       }
                                    !       if (fieldDoc.isVolatile()) {
                                    !          printAtomTag(level, "isVolatile");
                                    !       }
                                    !    }
                                    ! 
                                    !    private void outputFieldDoc(int level, FieldDoc fieldDoc) {
                                    !       println();
                                    !       printOpenTag(level, "fielddoc name=\""+fieldDoc.name()+"\"");
                                    !       outputMemberDocBody(level+1, fieldDoc);
                                    !       outputFieldDocBody(level+1, fieldDoc);
                                    !       printCloseTag(level, "fielddoc");
                                    !    }
                                    ! 
                                    !    protected void outputConstructorDoc(int level, ConstructorDoc constructorDoc) {
                                    !       println();
                                    !       printOpenTag(level, "constructordoc name=\""+constructorDoc.name()+"\"");
                                    !       outputExecutableMemberDocBody(level+1, constructorDoc);
                                    !       printCloseTag(level, "constructordoc");
                                    !    }
                                    ! 
                                    !    protected void outputSuperInterfacesRec(int level, ClassDoc classDoc) {
                                    !       if (null!=classDoc) {
                                    !          ClassDoc[] interfaces = classDoc.interfaces();
                                    !          if (null != interfaces) {
                                    !             for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
                                    !                outputType(level, "superimplements", interfaces[i]);
                                    !             }
                                    !          }
                                    !          outputSuperInterfacesRec(level, classDoc.superclass());
                                    !       }
                                    !    }
                                    ! 
                                    !    protected void outputClassDocSummary(ClassDoc classDoc) {
                                    !       println();
                                    !       printOpenTag(1, "classdoc name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\" isIncluded=\"true\"");
                                    !       if (null!=classDoc.superclass()) {
                                    !          outputType(2, "superclass", classDoc.superclass());
                                    !       }
                                    ! 
                                    !       ClassDoc[] interfaces = classDoc.interfaces();
                                    !       for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
                                    !          outputType(2, "implements", interfaces[i]);
                                    !       }
                                    !       outputSuperInterfacesRec(2, classDoc.superclass());
                                    ! 
                                    !       printAtomTag(2, "containingPackage name=\""+classDoc.containingPackage().name()+"\"");
                                    !       if (classDoc.isError()) {
                                    !          printAtomTag(2, "isError");
                                    !       }
                                    !       if (classDoc.isException()) {
                                    !          printAtomTag(2, "isException");
                                    !       }
                                    !       if (classDoc.isInterface()) {
                                    !          printAtomTag(2, "isInterface");
                                    !       }
                                    !       if (classDoc.isOrdinaryClass()) {
                                    !          printAtomTag(2, "isOrdinaryClass");
                                    !       }
                                    ! 
                                    !       printCloseTag(1, "classdoc");
                                    !    }
                                    ! 
                                    !    protected void outputPackageDoc(PackageDoc packageDoc) {
                                    !       println();
                                    !       printOpenTag(1, "packagedoc name=\""+packageDoc.name()+"\"");
                                    !       if (packageDoc.firstSentenceTags().length > 0) {
                                    !          printOpenTag(2, "firstSentenceTags", false);
                                    !          outputTags(3, packageDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);
                                    !          printCloseTag(0, "firstSentenceTags");
                                    !          printOpenTag(2, "inlineTags", false);
                                    !          outputTags(3, packageDoc.inlineTags(), true, CONTEXT_PACKAGE);
                                    !          printCloseTag(0, "inlineTags");
                                    !       }
                                    ! 
                                    !       if (packageDoc.tags().length > 0) {
                                    !          printOpenTag(2, "tags");
                                    !          outputTags(3, packageDoc.tags(), true, CONTEXT_PACKAGE);
                                    !          printCloseTag(2, "tags");
                                    !       }
                                    ! 
                                    !       if (packageDoc.seeTags().length > 0) {
                                    !          printOpenTag(2, "seeTags");
                                    !          outputTags(3, packageDoc.seeTags(), true, CONTEXT_PACKAGE);
                                    !          printCloseTag(2, "seeTags");
                                    !       }
                                    ! 
                                    !       ClassDoc[] allClasses = (ClassDoc[]) packageDoc.allClasses().clone();
                                    !       Arrays.sort(allClasses);
                                    ! 
                                    !       if (false) {
                                    !          for (int i = 0, ilim = allClasses.length; i < ilim; ++ i) {
                                    !             printAtomTag(2, "containsClass qualifiedtypename=\""+allClasses[i].qualifiedTypeName()+"\"");
                                    !          }
                                    !       }
                                    ! 
                                    !       printCloseTag(1, "packagedoc");
                                    !    }
                                    ! 
                                    !    protected void outputClassDoc(ClassDoc classDoc) throws IOException {
                                    ! 
                                    !       currentClass = classDoc;
                                    ! 
                                    !       println();
                                    !       printOpenTag(1, "classdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:"+tagPrefix+"=\"http://www.gnu.org/software/cp-tools/gjdocxml\" name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\"");
                                    ! 
                                    !       ClassDoc[] interfaces = classDoc.interfaces();
                                    !       for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
                                    !          outputType(2, "implements", interfaces[i]);
                                    !       }
                                    !       outputSuperInterfacesRec(2, classDoc.superclass());
                                    ! 
                                    !       outputProgramElementDocBody(2, classDoc);
                                    !       if (classDoc.isAbstract())
                                    !          printAtomTag(2, "isAbstract");
                                    !       if (classDoc.isSerializable())
                                    !          printAtomTag(2, "isSerializable");
                                    !       if (classDoc.isExternalizable())
                                    !          printAtomTag(2, "isExternalizable");
                                    !       if (classDoc.definesSerializableFields()) {
                                    !          printAtomTag(2, "definesSerializableFields");
                                    !       }
                                    ! 
                                    !       ConstructorDoc[] constructors = classDoc.constructors();
                                    !       for (int i=0, ilim=constructors.length; i<ilim; ++i) {
                                    !          outputConstructorDoc(2, constructors[i]);
                                    !       }
                                    ! 
                                    !       MethodDoc[] methods = classDoc.methods();
                                    !       for (int i=0, ilim=methods.length; i<ilim; ++i) {
                                    !          outputMethodDoc(2, methods[i]);
                                    !       }
                                    ! 
                                    !       FieldDoc[] fields = classDoc.fields();
                                    !       for (int i=0, ilim=fields.length; i<ilim; ++i) {
                                    !          outputFieldDoc(2, fields[i]);
                                    !       }
                                    ! 
                                    !       if (classDoc.serializableFields().length > 0) {
                                    !          printOpenTag(2, "serializableFields");
                                    ! 
                                    !          FieldDoc[] sfields = classDoc.serializableFields();
                                    !          for (int i=0, ilim=sfields.length; i<ilim; ++i) {
                                    !             outputFieldDoc(2, sfields[i]);
                                    !          }
                                    !          printCloseTag(2, "serializableFields");
                                    !       }
                                    ! 
                                    !       Java2xhtml java2xhtml = new Java2xhtml();
                                    !       Properties properties = new Properties();
                                    !       properties.setProperty("isCodeSnippet", "true");
                                    !       properties.setProperty("hasLineNumbers", "true");
                                    !       java2xhtml.setProperties(properties);
                                    ! 
                                    !       if (null == classDoc.containingClass() && docTransletOptions.linksource) {
                                    !          printOpenTag(2, "source");
                                    !          StringWriter sourceBuffer = new StringWriter();
                                    !          File sourceFile = new File(((GjdocPackageDoc)classDoc.containingPackage()).packageDirectory(),
                                    !                                     classDoc.name() + ".java");
                                    !          FileReader sourceReader = new FileReader(sourceFile);
                                    !          IOToolkit.copyStream(sourceReader, sourceBuffer);
                                    !          print(java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName()));
                                    !          printCloseTag(2, "source");
                                    !       }
                                    ! 
                                    !       ClassDoc superclassDoc = classDoc.superclass();
                                    !       while (superclassDoc != null) {
                                    !          outputType(2, "superclass", superclassDoc, false);
                                    ! 
                                    !          // FIXME: remove the following after adjusting the XSLT sheets:
                                    !          printAtomTag(3, "containingPackage name=\"" + superclassDoc.containingPackage().name() + "\"");
                                    ! 
                                    !          MethodDoc[] superMethods = superclassDoc.methods();
                                    !          if (null != superMethods) {
                                    !             for (int i=0, ilim=superMethods.length; i<ilim; ++i) {
                                    !                printAtomTag(3, "methoddoc name=\"" + superMethods[i].name() + "\" signature=\"" + superMethods[i].signature() + "\"");
                                    !             }
                                    !          }
                                    ! 
                                    !          FieldDoc[] superFields = superclassDoc.fields();
                                    !          if (null != superFields) {
                                    !             for (int i=0, ilim=superFields.length; i<ilim; ++i) {
                                    !                printAtomTag(3, "fielddoc name=\"" + superFields[i].name() + "\"");
                                    !             }
                                    !          }
                                    !          printCloseTag(2, "superclass");
                                    ! 
                                    !          superclassDoc = superclassDoc.superclass();
                                    !       }
                                    ! 
                                    !       outputUsage(classDoc, 2);
                                    ! 
                                    !       printCloseTag(1, "classdoc");
                                    ! 
                                    !       currentClass = null;
                                    !       currentMember = null;
                                    !       currentExecMember = null;
                                    !    }
                                    ! 
                                    !    protected int outputHeritageOpen(int level, ClassDoc classDoc) {
                                    ! 
                                    !       ClassDoc superClassDoc = classDoc.superclass();
                                    !       if (null != superClassDoc) {
                                    !          level = outputHeritageOpen(level, superClassDoc);
                                    !          ++ level;
                                    !       }
                                    !       outputType(level, "heritage", classDoc, false);
                                    !       return level;
                                    !    }
                                    ! 
                                    !    protected void outputHeritageClose(int level, ClassDoc classDoc) {
                                    ! 
                                    !       ClassDoc superClassDoc = classDoc.superclass();
                                    !       if (null != superClassDoc) {
                                    !          outputHeritageClose(level + 1, superClassDoc);
                                    !       }
                                    !       printCloseTag(level, "heritage");
                                    !    }
                                    ! 
                                    !    protected void outputDocBody(int level, Doc doc) {
                                    ! 
                                    !       int context = CONTEXT_TYPE;
                                    ! 
                                    !       if (doc.isClass()) {
                                    !          printAtomTag(level, "isClass");
                                    ! 
                                    !          ClassDoc classDoc = (ClassDoc)doc;
                                    !          ClassDoc[] classes = rootDoc.classes();
                                    !          for (int i=0, ilim=classes.length; i<ilim; ++i) {
                                    !             if (classes[i].superclass() == classDoc) {
                                    !                outputType(level, "extended-by", classes[i]);
                                    !             }
                                    !          }
                                    ! 
                                    !          outputHeritageOpen(level, classDoc);
                                    !          outputHeritageClose(level, classDoc);
                                    !       }
                                    !       if (doc.isConstructor()) {
                                    !          printAtomTag(level, "isConstructor");
                                    !          context = CONTEXT_CONSTRUCTOR;
                                    !       }
                                    !       if (doc.isError()) {
                                    !          printAtomTag(level, "isError");
                                    !       }
                                    !       if (doc.isException()) {
                                    !          printAtomTag(level, "isException");
                                    !       }
                                    !       if (doc.isField()) {
                                    !          printAtomTag(level, "isField");
                                    !          context = CONTEXT_FIELD;
                                    !       }
                                    !       if (doc.isIncluded()) {
                                    !          printAtomTag(level, "isIncluded");
                                    !       }
                                    !       if (doc.isInterface()) {
                                    !          printAtomTag(level, "isInterface");
                                    ! 
                                    !          ClassDoc classDoc = (ClassDoc)doc;
                                    !          ClassDoc[] classes = rootDoc.classes();
                                    !          for (int i=0, ilim=classes.length; i<ilim; ++i) {
                                    !             ClassDoc[] implementedInterfaces = classes[i].interfaces();
                                    !             for (int j=0; j<implementedInterfaces.length; ++j) {
                                    !                if (implementedInterfaces[j] == classDoc) {
                                    !                   if (classDoc.isInterface()) {
                                    !                         outputType(level, "subinterface", classes[i]);
                                    !                   }
                                    !                   else {
                                    !                      outputType(level, "implemented-by", classes[i]);
                                    !                   }
                                    !                   break;
                                    !                }
                                    !             }
                                    !          }
                                    !       }
                                    !       if (doc.isMethod()) {
                                    !          printAtomTag(level, "isMethod");
                                    !          context = CONTEXT_METHOD;
                                    !       }
                                    !       if (doc.isOrdinaryClass()) {
                                    !          printAtomTag(level, "isOrdinaryClass");
                                    !       }
                                    ! 
                                    !       if (doc.inlineTags().length > 0) {
                                    !          printOpenTag(level, "inlineTags", false);
                                    !          outputTags(level+1, doc.inlineTags(), true, context);
                                    !          printCloseTag(0, "inlineTags");
                                    !       }
                                    ! 
                                    !       if (doc.firstSentenceTags().length > 0) {
                                    !          printOpenTag(level, "firstSentenceTags", false);
                                    !          outputTags(level+1, doc.firstSentenceTags(), true, context);
                                    !          printCloseTag(0, "firstSentenceTags");
                                    !       }
                                    ! 
                                    !       if (doc.tags().length > 0) {
                                    !          printOpenTag(level, "tags");
                                    !          outputTaglets(level+1, doc.tags(), true, context);
                                    !          printCloseTag(level, "tags");
                                    !       }
                                    ! 
                                    !       if (doc.seeTags().length > 0) {
                                    !          printOpenTag(level, "seeTags");
                                    !          outputTags(level+1, doc.seeTags(), true, context);
                                    !          printCloseTag(level, "seeTags");
                                    !       }
                                    ! 
                                    !       SourcePosition position = doc.position();
                                    !       if (null != position) {
                                    !          printAtomTag(level, "position file=\"" + position.file().getAbsolutePath() + "\" line=\"" + position.line() + "\" column=\"" + position.column() + "\"");
                                    !       }
                                    !    }
                                    ! 
                                    !    protected void outputProgramElementDocBody(int level, ProgramElementDoc programElementDoc) {
                                    !       outputDocBody(level, programElementDoc);
                                    !       printAtomTag(level, "containingPackage name=\""+programElementDoc.containingPackage().name()+"\"");
                                    !       if (null!=programElementDoc.containingClass()) {
                                    !          outputType(level, "containingClass", programElementDoc.containingClass());
                                    !       }
                                    !       String access;
                                    !       if (programElementDoc.isPublic())
                                    !          access="public";
                                    !       else if (programElementDoc.isProtected())
                                    !          access="protected";
                                    !       else if (programElementDoc.isPrivate())
                                    !          access="private";
                                    !       else if (programElementDoc.isPackagePrivate())
                                    !          access="package";
                                    !       else
                                    !          throw new RuntimeException("Huh? "+programElementDoc+" is neither public, protected, private nor package protected.");
                                    !       printAtomTag(level, "access scope=\""+access+"\"");
                                    !       if (programElementDoc.isFinal())
                                    !          printAtomTag(level, "isFinal");
                                    !       if (programElementDoc.isStatic())
                                    !          printAtomTag(level, "isStatic");
                                    !    }
                                    ! 
                                    !    protected void outputTags(int level, Tag[] tags, boolean descend, int context) {
                                    ! 
                                    !       for (int i=0; i<tags.length; ++i) {
                                    !          outputTag(tags[i], level, descend, context, i == tags.length-1);
                                    !       }
                                    !    }
                                    ! 
                                    !    protected void outputTag(Tag tag, int level, boolean descend, int context, boolean lastTag) {
                                    ! 
                                    !       if (!"Text".equals(tag.name())) {
                                    !          printOpenTag(0 /* don't introduce additional whitespace */,
                                    !                       "tag kind=\""+tag.kind()+"\" name=\""+tag.name()+"\"", false);
                                    !       }
                                    !       if (tag instanceof ThrowsTag) {
                                    !          ThrowsTag throwsTag = (ThrowsTag)tag;
                                    !          if (null!=throwsTag.exception()) {
                                    !             outputType(level+1, "exception", throwsTag.exception());
                                    !          }
                                    !          else {
                                    !             StringBuffer sb = new StringBuffer("Exception ");
                                    !             sb.append(throwsTag.exceptionName());
                                    !             sb.append(" not found in ");
                                    !             if (currentExecMember instanceof MethodDoc) {
                                    !                MethodDoc m = (MethodDoc)currentExecMember;
                                    !                sb.append(m.returnType().typeName());
                                    !                sb.append(m.returnType().dimension());
                                    !                sb.append(' ');
                                    !             }
                                    !             sb.append(currentClass.qualifiedName());
                                    !             sb.append('.');
                                    !             sb.append(currentExecMember.name());
                                    !             sb.append('(');
                                    !             Parameter[] params = currentExecMember.parameters();
                                    !             for (int j=0; j < params.length; j++) {
                                    !                sb.append(params[j].type().typeName());
                                    !                sb.append(params[j].type().dimension());
                                    !                sb.append(' ');
                                    !                sb.append(params[j].name());
                                    !                if (j != params.length-1)
                                    !                   sb.append(", ");
                                    !             }
                                    !             sb.append(')');
                                    !             printWarning(sb.toString());
                                    ! 
                                    !             printAtomTag(level+1, "exception typename=\""+throwsTag.exceptionName()+"\"");
                                    !          }
                                    !       }
                                    !       else if (tag instanceof ParamTag) {
                                    !          ParamTag paramTag = (ParamTag)tag;
                                    !          printAtomTag(level+1, "parameter name=\""+paramTag.parameterName()+"\"");
                                    !       }
                                    ! 
                                    !       if (null != tag.text()) {
                                    !          //printOpenTag(level+1, "text", false);
                                    !          if (fixHTML) {
                                    !             print(htmlRepairer.getWellformedHTML(tag.text()));
                                    !          }
                                    !          else {
                                    !             print("<![CDATA["+cdata(tag.text())+"]]>");
                                    !          }
                                    !          //printCloseTag(0 /* don't introduce additional whitespace */, "text");
                                    !       }
                                    !       else {
                                    !          printWarning("Tag got null text: "+tag);
                                    !       }
                                    ! 
                                    !       if ((descend && ("@throws".equals(tag.name()) || "@param".equals(tag.name()))) || "@deprecated".equals(tag.name())) {
                                    !          if (tag.firstSentenceTags().length>0) {
                                    !             printOpenTag(level+1, "firstSentenceTags", false);
                                    !             outputTags(level+2, tag.firstSentenceTags(), false, context);
                                    !             printCloseTag(0, "firstSentenceTags");
                                    !          }
                                    ! 
                                    !          if (tag.inlineTags().length>0) {
                                    !             printOpenTag(level+1, "inlineTags", false);
                                    !             outputTags(level+2, tag.firstSentenceTags(), false, context);
                                    !             printCloseTag(0, "inlineTags");
                                    !          }
                                    !       }
                                    ! 
                                    !       if (fixHTML && lastTag) {
                                    !          String terminateText = htmlRepairer.terminateText();
                                    !          if (null != terminateText && terminateText.length() > 0) {
                                    !             print(terminateText);
                                    !          }
                                    !       }
                                    ! 
                                    !       if (!"Text".equals(tag.name())) {
                                    ! 
                                    !          Taglet inlineTaglet = (Taglet)tagletMap.get(tag.name().substring(1));
                                    !          if (null != inlineTaglet && inlineTaglet.isInlineTag()) {
                                    !             printOpenTag(0, "inlineTagletText", false);
                                    !             print(inlineTaglet.toString(tag));
                                    !             printCloseTag(0, "inlineTagletText");
                                    !          }
                                    ! 
                                    !          printCloseTag(0, "tag", false);
                                    !       }
                                    !    }
                                    ! 
                                    !    void outputTaglets(int level, Tag[] tags, boolean descend, int context)
                                    !    {
                                    !       for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {
                                    !          String tagName = (String)it.next();
                                    !          Object o = tagletMap.get(tagName);
                                    !          Taglet taglet = (Taglet)o;
                                    ! 
                                    !          if (!taglet.isInlineTag()
                                    !              && ((context != CONTEXT_CONSTRUCTOR || taglet.inConstructor())
                                    !                  || (context != CONTEXT_FIELD || taglet.inField())
                                    !                  || (context != CONTEXT_METHOD || taglet.inMethod())
                                    !                  || (context != CONTEXT_OVERVIEW || taglet.inOverview())
                                    !                  || (context != CONTEXT_PACKAGE || taglet.inPackage())
                                    !                  || (context != CONTEXT_TYPE || taglet.inType()))) {
                                    ! 
                                    !             List tagsOfThisType = new ArrayList();
                                    !             for (int i=0, ilim=tags.length; i<ilim; ++i) {
                                    !                if (tags[i].name().substring(1).equals(tagName)) {
                                    !                   tagsOfThisType.add(tags[i]);
                                    !                }
                                    !             }
                                    ! 
                                    !             if (!tagsOfThisType.isEmpty()) {
                                    !                Tag[] tagletTags = (Tag[])tagsOfThisType.toArray(new Tag[tagsOfThisType.size()]);
                                    !                if (taglet instanceof StandardTaglet) {
                                    !                   Iterator tagIterator = tagsOfThisType.iterator();
                                    !                   while (tagIterator.hasNext()) {
                                    !                      Tag tag = (Tag)tagIterator.next();
                                    !                      outputTag(tag, level, descend, context, !tagIterator.hasNext());
                                    !                   }
                                    !                }
                                    !                else {
                                    !                   String tagletString = taglet.toString(tagletTags);
                                    !                   if (null != tagletString) {
                                    !                      printOpenTag(0, "tag name=\"" + tagName + "\" taglet-generated=\"true\"");
                                    !                      if (fixHTML) {
                                    !                         print(htmlRepairer.getWellformedHTML(tagletString));
                                    !                         print(htmlRepairer.terminateText());
                                    !                      }
                                    !                      else {
                                    !                         print("<![CDATA["+cdata(tagletString)+"]]>");
                                    !                      }
                                    !                      printCloseTag(0, "tag", false);
                                    !                   }
                                    !                }
                                    !             }
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Inofficial entry point. We got an instance here.
                                    !     */
                                    !    protected boolean instanceStart(RootDoc _rootDoc) {
                                    ! 
                                    !       this.rootDoc = _rootDoc;
                                    !       _rootDoc = null;
                                    ! 
                                    !       boolean xmlOnly = true;
                                    ! 
                                    !       // Set the default Taglet order
                                    ! 
                                    !       registerTaglet(new VersionTaglet());
                                    !       registerTaglet(new AuthorTaglet());
                                    !       //registerTaglet(new SinceTaglet());
                                    !       registerTaglet(new StandardTaglet("deprecated"));
                                    !       registerTaglet(new StandardTaglet("see"));
                                    !       registerTaglet(new StandardTaglet("param"));
                                    ! 
                                    !       // Set the built-in Taglet filter
                                    ! 
                                    !       AuthorTaglet.setTagletEnabled(false);
                                    !       VersionTaglet.setTagletEnabled(false);
                                    !       SinceTaglet.setTagletEnabled(true);
                                    !       DeprecatedTaglet.setTagletEnabled(true);
                                    ! 
                                    !       try {
                                    !          {
                                    ! 
                                    !             // Process command line options passed through to this doclet
                                    ! 
                                    !             TargetContext targetContext = null;
                                    ! 
                                    !             TargetContext htmlTargetContext
                                    !                = new TargetContext(DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl"),
                                    !                                    targetDirectory);
                                    ! 
                                    !             for (int i=0, ilim=rootDoc.options().length; i<ilim; ++i) {
                                    ! 
                                    !                String[] option = rootDoc.options()[i];
                                    !                String optionTag = option[0];
                                    ! 
                                    !                if ("-d".equals(optionTag)) {
                                    !                   if (null == targetDirectory) {
                                    !                      targetDirectory = new File(option[1]);
                                    !                   }
                                    !                   if (null != targetContext) {
                                    !                      targetContext.setTargetDirectory(targetDirectory);
                                    !                   }
                                    !                }
                                    ! 
                                    !                else if ("-nofixhtml".equals(optionTag)) {
                                    !                   fixHTML = false;
                                    !                   printError("-nofixhtml currently not supported.");
                                    !                   return false;
                                    !                }
                                    !                else if ("-compress".equals(optionTag)) {
                                    !                   compress = true;
                                    !                }
                                    !                else if ("-nohtmlwarn".equals(optionTag)) {
                                    !                   noHTMLWarn = true;
                                    !                }
                                    !                else if ("-noemailwarn".equals(optionTag)) {
                                    !                   noEmailWarn = true;
                                    !                }
                                    !                else if ("-indentstep".equals(optionTag)) {
                                    !                   indentStep = Integer.parseInt(option[1]);
                                    !                }
                                    !                else if ("-doctranslet".equals(optionTag)) {
                                    !                   targets.add(targetContext = new TargetContext(DocTranslet.fromJarFile(new File(option[1])),
                                    !                                                                 targetDirectory));
                                    !                }
                                    !                else if ("-genhtml".equals(optionTag)) {
                                    !                   htmlTargetContext.setTargetDirectory(targetDirectory);
                                    !                   targets.add(targetContext = htmlTargetContext);
                                    !                   xmlOnly = false;
                                    !                }
                                    !                else if ("-geninfo".equals(optionTag)) {
                                    !                   targetContext
                                    !                               = new TargetContext(DocTranslet.fromClasspath("/doctranslets/info/gengj.xsl"),
                                    !                                                   targetDirectory);
                                    !                   targets.add(targetContext);
                                    !                   if (!fixHTML) {
                                    !                      printNotice("NOTE: -geninfo implies -fixhtml.");
                                    !                      fixHTML = true;
                                    !                   }
                                    !                   xmlOnly = false;
                                    !                }
                                    !                else if ("-gendocbook".equals(optionTag)) {
                                    !                   targetContext = new TargetContext(DocTranslet.fromClasspath("/doctranslets/docbook/gengj.xsl"),
                                    !                                                     targetDirectory);
                                    !                   targets.add(targetContext);
                                    !                   if (!fixHTML) {
                                    !                      printNotice("NOTE: -gendocbook implies -fixhtml.");
                                    !                      fixHTML = true;
                                    !                   }
                                    !                }
                                    !                else if ("-genpdf".equals(optionTag)) {
                                    !                   targetContext
                                    !                      = new TargetContext(DocTranslet.fromClasspath("/doctranslets/docbook/gengj.xsl"),
                                    !                                          targetDirectory);
                                    !                                          /** "gnu.classpath.tools.doclets.xmldoclet.DocBookPostprocessor") **/
                                    !                   targets.add(targetContext);
                                    !                   if (!fixHTML) {
                                    !                      printNotice("NOTE: -genpdf implies -fixhtml.");
                                    !                      fixHTML = true;
                                    !                   }
                                    !                }
                                    !                else if ("-xmlonly".equals(optionTag)) {
                                    !                   xmlOnly = true;
                                    !                }
                                    !                else if ("-bottomnote".equals(optionTag)) {
                                    ! 
                                    !                   FileReader reader = new FileReader(option[1]);
                                    !                   StringWriter writer = new StringWriter();
                                    !                   char[] buf = new char[256];
                                    !                   int nread;
                                    !                   while ((nread = reader.read(buf)) >= 0) {
                                    !                      writer.write(buf, 0, nread);
                                    !                   }
                                    !                   writer.flush();
                                    !                   bottomNote = writer.toString();
                                    !                   writer.close();
                                    !                   reader.close();
                                    !                }
                                    !                else if ("-title".equals(optionTag)) {
                                    ! 
                                    !                   title = option[1];
                                    !                }
                                    !                else if ("-workpath".equals(optionTag)) {
                                    ! 
                                    !                   workingPath = option[1];
                                    !                }
                                    !                else if ("-tagletpath".equals(optionTag)) {
                                    ! 
                                    !                   if (null == tagletPath) {
                                    !                      tagletPath = option[1];
                                    !                   }
                                    !                   else {
                                    !                      tagletPath = tagletPath + File.pathSeparator + option[1];
                                    !                   }
                                    !                }
                                    !                else if ("-taglet".equals(optionTag)) {
                                    ! 
                                    !                   boolean tagletLoaded = false;
                                    ! 
                                    !                   String useTagletPath = this.tagletPath;
                                    !                   if (null == useTagletPath) {
                                    !                      useTagletPath = System.getProperty("java.class.path");
                                    !                   }
                                    ! 
                                    !                   try {
                                    !                      Class tagletClass;
                                    !                      try {
                                    !                         tagletClass
                                    !                            = new FileSystemClassLoader(useTagletPath).loadClass(option[1]);
                                    !                      }
                                    !                      catch (ClassNotFoundException e) {
                                    !                         // If not found on specified tagletpath, try default classloader
                                    !                         tagletClass
                                    !                            = Class.forName(option[1]);
                                    !                      }
                                    !                      Method registerTagletMethod
                                    !                         = tagletClass.getDeclaredMethod("register", new Class[] { java.util.Map.class });
                                    ! 
                                    !                      if (!registerTagletMethod.getReturnType().equals(Void.TYPE)) {
                                    !                         printError("Taglet class '" + option[1] + "' found, but register method doesn't return void.");
                                    !                      }
                                    !                      else if (registerTagletMethod.getExceptionTypes().length > 0) {
                                    !                         printError("Taglet class '" + option[1] + "' found, but register method contains throws clause.");
                                    !                      }
                                    !                      else if ((registerTagletMethod.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC | Modifier.ABSTRACT)) != (Modifier.STATIC | Modifier.PUBLIC)) {
                                    !                         printError("Taglet class '" + option[1] + "' found, but register method isn't public static, or is abstract..");
                                    !                      }
                                    !                      else {
                                    !                         Map tempMap = new HashMap();
                                    !                         registerTagletMethod.invoke(null, new Object[] { tempMap });
                                    !                         tagletLoaded = true;
                                    !                         String name = (String)tempMap.keySet().iterator().next();
                                    !                         Taglet taglet = (Taglet)tempMap.get(name);
                                    !                         tagletMap.put(name, taglet);
                                    !                         mentionedTags.add(taglet);
                                    !                      }
                                    !                   }
                                    !                   catch (NoSuchMethodException e) {
                                    !                      printError("Taglet class '" + option[1] + "' found, but doesn't contain the register method.");
                                    !                   }
                                    !                   catch (SecurityException e) {
                                    !                      printError("Taglet class '" + option[1] + "' cannot be loaded: " + e.getMessage());
                                    !                   }
                                    !                   catch (InvocationTargetException e) {
                                    !                      printError("Taglet class '" + option[1] + "' found, but register method throws exception: " + e.toString());
                                    !                   }
                                    !                   catch (IllegalAccessException e) {
                                    !                      printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
                                    !                   }
                                    !                   catch (IllegalArgumentException e) {
                                    !                      printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
                                    !                   }
                                    !                   catch (ClassNotFoundException e) {
                                    !                      printError("Taglet class '" + option[1] + "' cannot be found.");
                                    !                   }
                                    !                   if (!tagletLoaded) {
                                    !                      return false;
                                    !                   }
                                    !                }
                                    !                else if ("-author".equals(optionTag)) {
                                    !                   AuthorTaglet.setTagletEnabled(true);
                                    !                }
                                    !                else if ("-version".equals(optionTag)) {
                                    !                   VersionTaglet.setTagletEnabled(true);
                                    !                }
                                    !                else if ("-nosince".equals(optionTag)) {
                                    !                   SinceTaglet.setTagletEnabled(false);
                                    !                }
                                    !                else if ("-nodeprecated".equals(optionTag)) {
                                    !                   DeprecatedTaglet.setTagletEnabled(false);
                                    !                }
                                    !                else if ("-authormail".equals(optionTag)) {
                                    ! 
                                    !                   if ("no-replace".equalsIgnoreCase(option[1])) {
                                    !                      AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NO_REPLACEMENT);
                                    !                   }
                                    !                   else if ("mailto-name".equalsIgnoreCase(option[1])) {
                                    !                      AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.MAILTO_NAME);
                                    !                   }
                                    !                   else if ("name-mailto-address".equalsIgnoreCase(option[1])) {
                                    !                      AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MAILTO_ADDRESS);
                                    !                   }
                                    !                   else if ("name-mangled-address".equalsIgnoreCase(option[1])) {
                                    !                      AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MANGLED_ADDRESS);
                                    !                   }
                                    !                   else {
                                    !                      printError("Invalid value for option '-authortag-email'. Allowed values are:"
                                    !                                 + " no-replace, mailto-name, name-mailto-address, name-mangled-address.");
                                    !                      return false;
                                    !                   }
                                    !                }
                                    !                else if ("-mailmangledot".equals(optionTag)) {
                                    !                   AuthorTaglet.setDotReplacement(option[1]);
                                    !                }
                                    !                else if ("-mailmangleat".equals(optionTag)) {
                                    !                   AuthorTaglet.setAtReplacement(option[1]);
                                    !                }
                                    !                else if ("-docfilessubdirs".equals(optionTag)) {
                                    !                   docFilesSubdirsEnabled = true;
                                    !                }
                                    !                else if ("-excludedocfilessubdir".equals(optionTag)) {
                                    !                   StringTokenizer st = new StringTokenizer(option[1]);
                                    !                   while (st.hasMoreTokens()) {
                                    !                      excludeDocFilesSubDirs.add(st.nextToken());
                                    !                   }
                                    !                }
                                    !                else if ("-nonavbar".equals(optionTag)) {
                                    !                   docTransletOptions.nonavbar = true;
                                    !                }
                                    !                else if ("-noindex".equals(optionTag)) {
                                    !                   docTransletOptions.noindex = true;
                                    !                }
                                    !                else if ("-notree".equals(optionTag)) {
                                    !                   docTransletOptions.notree = true;
                                    !                }
                                    !                else if ("-nocomment".equals(optionTag)) {
                                    !                   docTransletOptions.nocomment = true;
                                    !                }
                                    !                else if ("-nohelp".equals(optionTag)) {
                                    !                   docTransletOptions.nohelp = true;
                                    !                }
                                    !                else if ("-splitindex".equals(optionTag)) {
                                    !                   docTransletOptions.splitindex = true;
                                    !                }
                                    !                else if ("-linksource".equals(optionTag)) {
                                    !                   docTransletOptions.linksource = true;
                                    !                }
                                    !                else if ("-windowtitle".equals(optionTag)) {
                                    !                   docTransletOptions.windowtitle = option[1];
                                    !                }
                                    !                else if ("-helpfile".equals(optionTag)) {
                                    !                   docTransletOptions.helpfile = new File(option[1]).toURL().toString();
                                    !                }
                                    !                else if ("-stylesheetfile".equals(optionTag)) {
                                    !                   docTransletOptions.stylesheetfile = new File(option[1]).toURL().toString();
                                    !                }
                                    !                else if ("-header".equals(optionTag)) {
                                    !                   docTransletOptions.header = option[1];
                                    !                }
                                    !                else if ("-footer".equals(optionTag)) {
                                    !                   docTransletOptions.footer = option[1];
                                    !                }
                                    !                else if ("-bottom".equals(optionTag)) {
                                    !                   docTransletOptions.bottom = option[1];
                                    !                }
                                    !                else if ("-doctitle".equals(optionTag)) {
                                    !                   docTransletOptions.doctitle = option[1];
                                    !                }
                                    !                else if ("-nodeprecatedlist".equals(optionTag)) {
                                    !                   docTransletOptions.nodeprecatedlist = true;
                                    !                }
                                    !                else if ("-uses".equals(optionTag)) {
                                    !                   docTransletOptions.uses = true;
                                    !                }
                                    !                else if ("-group".equals(optionTag)) {
                                    !                   if (!processGroupOption(option[1], option[2])) {
                                    !                      printError("Invalid package wildcard list in -group option \"" + option[1] + "\" " + option[2]);
                                    !                      return false;
                                    !                   }
                                    !                }
                                    !                else if ("-tag".equals(optionTag)) {
                                    !                   String tagSpec = option[1];
                                    !                   boolean validTagSpec = false;
                                    !                   int ndx1 = tagSpec.indexOf(':');
                                    !                   if (ndx1 < 0) {
                                    !                      Taglet taglet = (Taglet)tagletMap.get(tagSpec);
                                    !                      if (null == taglet) {
                                    !                         printError("There is no standard tag '" + tagSpec + "'.");
                                    !                      }
                                    !                      else {
                                    !                         if (mentionedTags.contains(taglet)) {
                                    !                            printError("Tag '" + tagSpec + "' has been added or moved before.");
                                    !                         }
                                    !                         else {
                                    !                            mentionedTags.add(taglet);
                                    ! 
                                    !                            // re-append taglet
                                    !                            tagletMap.remove(tagSpec);
                                    !                            tagletMap.put(tagSpec, taglet);
                                    !                         }
                                    !                      }
                                    !                   }
                                    !                   else {
                                    !                      int ndx2 = tagSpec.indexOf(':', ndx1 + 1);
                                    !                      if (ndx2 > ndx1 && ndx2 < tagSpec.length() - 1) {
                                    !                         String tagName = tagSpec.substring(0, ndx1);
                                    !                         String tagHead = null;
                                    !                         if (tagSpec.charAt(ndx2 + 1) == '\"') {
                                    !                            if (tagSpec.charAt(tagSpec.length() - 1) == '\"') {
                                    !                               tagHead = tagSpec.substring(ndx2 + 2, tagSpec.length() - 1);
                                    !                               validTagSpec = true;
                                    !                            }
                                    !                         }
                                    !                         else {
                                    !                            tagHead = tagSpec.substring(ndx2 + 1);
                                    !                            validTagSpec = true;
                                    !                         }
                                    ! 
                                    !                         boolean tagScopeOverview = false;
                                    !                         boolean tagScopePackages = false;
                                    !                         boolean tagScopeTypes = false;
                                    !                         boolean tagScopeConstructors = false;
                                    !                         boolean tagScopeMethods = false;
                                    !                         boolean tagScopeFields = false;
                                    !                         boolean tagDisabled = false;
                                    ! 
                                    !                      tag_option_loop:
                                    !                         for (int n=ndx1+1; n<ndx2; ++n) {
                                    !                            switch (tagSpec.charAt(n)) {
                                    !                            case 'X':
                                    !                               tagDisabled = true;
                                    !                               break;
                                    !                            case 'a':
                                    !                               tagScopeOverview = true;
                                    !                               tagScopePackages = true;
                                    !                               tagScopeTypes = true;
                                    !                               tagScopeConstructors = true;
                                    !                               tagScopeMethods = true;
                                    !                               tagScopeFields = true;
                                    !                               break;
                                    !                            case 'o':
                                    !                               tagScopeOverview = true;
                                    !                               break;
                                    !                            case 'p':
                                    !                               tagScopePackages = true;
                                    !                               break;
                                    !                            case 't':
                                    !                               tagScopeTypes = true;
                                    !                               break;
                                    !                            case 'c':
                                    !                               tagScopeConstructors = true;
                                    !                               break;
                                    !                            case 'm':
                                    !                               tagScopeMethods = true;
                                    !                               break;
                                    !                            case 'f':
                                    !                               tagScopeFields = true;
                                    !                               break;
                                    !                            default:
                                    !                               validTagSpec = false;
                                    !                               break tag_option_loop;
                                    !                            }
                                    !                         }
                                    ! 
                                    !                         if (validTagSpec) {
                                    !                            GenericTaglet taglet
                                    !                               = new GenericTaglet(tagName,
                                    !                                                   tagHead,
                                    !                                                   tagScopeOverview,
                                    !                                                   tagScopePackages,
                                    !                                                   tagScopeTypes,
                                    !                                                   tagScopeConstructors,
                                    !                                                   tagScopeMethods,
                                    !                                                   tagScopeFields);
                                    !                            taglet.setTagletEnabled(!tagDisabled);
                                    !                            taglet.register(tagletMap);
                                    !                            mentionedTags.add(taglet);
                                    !                         }
                                    !                      }
                                    !                   }
                                    !                   if (!validTagSpec) {
                                    !                      printError("Value for option -tag must be in format \"<tagname>:Xaoptcmf:<taghead>\".");
                                    !                   }
                                    !                }
                                    !             }
                                    ! 
                                    !             // Use current directory if target directory hasn't been set.
                                    !             if (null == targetDirectory) {
                                    !                targetDirectory = new File(System.getProperty("user.dir"));
                                    !             }
                                    !             if (null != targetContext) {
                                    !                targetContext.setTargetDirectory(targetDirectory);
                                    !             }
                                    ! 
                                    !             // It is illegal to specify targets AND -xmlonly.
                                    ! 
                                    !             if (xmlOnly && targets.size() > 0) {
                                    ! 
                                    !                printError("You can only specify one of -xmlonly and a target format.");
                                    !                return false;
                                    !             }
                                    ! 
                                    !             // If no target was specified and XML only was not
                                    !             // requested, use HTML as default target.
                                    ! 
                                    !             if (!xmlOnly && targets.size() == 0) {
                                    !                targets.add(targetContext = htmlTargetContext);
                                    !             }
                                    ! 
                                    !             // Set the same target directory for all output.
                                    ! 
                                    !             // FIXME: Allow separate target directories for different
                                    !             // output formats.
                                    ! 
                                    !             for (Iterator it = targets.iterator(); it.hasNext(); ) {
                                    !                TargetContext t = (TargetContext)it.next();
                                    !                t.setTargetDirectory(targetDirectory);
                                    !             }
                                    ! 
                                    !             // Create temporary directory if necessary
                                    ! 
                                    !             if (xmlOnly) {
                                    ! 
                                    !                xmlTargetDirectory = targetDirectory;
                                    !             }
                                    !             else {
                                    ! 
                                    !                File workingTopDirectory = new File(workingPath);
                                    ! 
                                    !                workingDirectory = new File(workingTopDirectory, "gjdoc.tmp."+System.currentTimeMillis());
                                    ! 
                                    !                if (!workingDirectory.mkdir()) {
                                    !                   printError("Cannot create temporary directory at "+System.getProperty("java.io.tmpdir"));
                                    !                   return false;
                                    !                }
                                    ! 
                                    !                File xmlTempDirectory = new File(workingDirectory, "xmloutput");
                                    ! 
                                    !                if (!xmlTempDirectory.mkdir()) {
                                    !                   printError("Cannot create temporary directory for XML output at "+System.getProperty("java.io.tmpdir"));
                                    !                   return false;
                                    !                }
                                    ! 
                                    !                xmlTargetDirectory = xmlTempDirectory;
                                    !             }
                                    ! 
                                    !             // Create target directory if necessary
                                    ! 
                                    !             if (!targetDirectory.exists()) {
                                    !                printNotice("Creating destination directory: \""
                                    !                            + targetDirectory + "\"");
                                    !                if (!targetDirectory.mkdirs()) {
                                    !                   printError("Failed to create destination directory \""
                                    !                              + targetDirectory + "\"");
                                    !                   return false;
                                    !                }
                                    !             }
                                    ! 
                                    !             // Check for deprecation
                                    ! 
                                    !             boolean hasDeprecatedClasses = false;
                                    !             boolean hasDeprecatedInterfaces = false;
                                    !             boolean hasDeprecatedExceptions = false;
                                    !             boolean hasDeprecatedErrors = false;
                                    !             boolean hasDeprecatedMethods = false;
                                    !             boolean hasDeprecatedFields = false;
                                    ! 
                                    !             {
                                    !                ClassDoc[] classes = rootDoc.classes();
                                    !                for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
                                    !                   ClassDoc c = classes[i];
                                    !                   Tag[] deprecatedTags = c.tags("deprecated");
                                    !                   if (null != deprecatedTags && 0 != deprecatedTags.length) {
                                    !                      if (c.isInterface()) {
                                    !                         hasDeprecatedInterfaces = true;
                                    !                      }
                                    !                      else if (c.isException()) {
                                    !                         hasDeprecatedExceptions = true;
                                    !                      }
                                    !                      else if (c.isError()) {
                                    !                         hasDeprecatedErrors = true;
                                    !                      }
                                    !                      else /*if (c.isOrdinaryClass())*/ {
                                    !                         hasDeprecatedClasses = true;
                                    !                      }
                                    !                   }
                                    ! 
                                    !                   MethodDoc[] methods = c.methods();
                                    !                   for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
                                    !                      MethodDoc m = methods[j];
                                    !                      deprecatedTags = m.tags("deprecated");
                                    !                      if (null != deprecatedTags && 0 != deprecatedTags.length) {
                                    !                         hasDeprecatedMethods = true;
                                    !                      }
                                    !                   }
                                    ! 
                                    !                   FieldDoc[] fields = c.fields();
                                    !                   for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
                                    !                      FieldDoc f = fields[j];
                                    !                      deprecatedTags = f.tags("deprecated");
                                    !                      if (null != deprecatedTags && 0 != deprecatedTags.length) {
                                    !                         hasDeprecatedFields = true;
                                    !                      }
                                    !                   }
                                    !                }
                                    !             }
                                    ! 
                                    !             htmlRepairer = new HtmlRepairer(rootDoc, noHTMLWarn, noEmailWarn,
                                    !                                             currentClass, currentMember,
                                    !                                             false);
                                    ! 
                                    !             collectUsage();
                                    ! 
                                    !             // Begin XML generation
                                    ! 
                                    !             printNotice("Writing XML Index file...");
                                    ! 
                                    !             // Assign output stream
                                    ! 
                                    !             setTargetFile("index.xml");
                                    ! 
                                    !             // Output XML document header
                                    ! 
                                    !             println(0, "<?xml version=\"1.0\"?>");
                                    !             println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc.dtd\">");
                                    !             println();
                                    !             printOpenTag(0, "rootdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");
                                    ! 
                                    !             println();
                                    !             println(1, "<!-- Tags from overview page, if available -->");
                                    ! 
                                    !             if (rootDoc.firstSentenceTags().length > 0) {
                                    !                printOpenTag(2, "firstSentenceTags", false);
                                    !                outputTags(3, rootDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);
                                    !                printCloseTag(0, "firstSentenceTags");
                                    !             }
                                    ! 
                                    !             if (rootDoc.inlineTags().length > 0) {
                                    !                printOpenTag(2, "inlineTags");
                                    !                outputTags(3, rootDoc.inlineTags(), true, CONTEXT_PACKAGE);
                                    !                printCloseTag(2, "inlineTags");
                                    !             }
                                    ! 
                                    !             if (null != bottomNote) {
                                    !                printOpenTag(1, "bottomnote");
                                    !                print(bottomNote);
                                    !                printCloseTag(1, "bottomnote");
                                    !             }
                                    ! 
                                    !             if (null != title) {
                                    !                printOpenTag(1, "title");
                                    !                println(2, title);
                                    !                printCloseTag(1, "title");
                                    !             }
                                    ! 
                                    !             printOpenTag(1, "created");
                                    !             println(2, DateFormat.getDateInstance(DateFormat.LONG, Locale.US).format(new java.util.Date()));
                                    !             printCloseTag(1, "created");
                                    ! 
                                    !             if (hasDeprecatedClasses) printAtomTag(1, "hasDeprecatedClasses");
                                    !             if (hasDeprecatedInterfaces) printAtomTag(1, "hasDeprecatedInterfaces");
                                    !             if (hasDeprecatedExceptions) printAtomTag(1, "hasDeprecatedExceptions");
                                    !             if (hasDeprecatedErrors) printAtomTag(1, "hasDeprecatedErrors");
                                    !             if (hasDeprecatedMethods) printAtomTag(1, "hasDeprecatedMethods");
                                    !             if (hasDeprecatedFields) printAtomTag(1, "hasDeprecatedFields");
                                    ! 
                                    !             // Output summary of all classes specified on command line
                                    ! 
                                    !             println();
                                    !             println(1, "<!-- Classes specified by user on command line -->");
                                    !             ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
                                    !             for (int i=0, ilim=specifiedClasses.length; i<ilim; ++i) {
                                    !                ClassDoc sc = specifiedClasses[i];
                                    !                printAtomTag(1, "specifiedclass fqname=\""+sc.qualifiedName()+"\" name=\""+sc.name()+"\"");
                                    !             }
                                    !             specifiedClasses = null;
                                    ! 
                                    !             // Output summary of all packages specified on command line
                                    ! 
                                    !             println();
                                    !             println(1, "<!-- Packages specified by user on command line -->");
                                    !             PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
                                    !             for (int i=0, ilim=specifiedPackages.length; i<ilim; ++i) {
                                    !                PackageDoc sp = specifiedPackages[i];
                                    !                printAtomTag(1, "specifiedpackage name=\""+sp.name()+"\"");
                                    !             }
                                    !             specifiedPackages = null;
                                    ! 
                                    !             // Output package group information specified on the
                                    !             // command line
                                    ! 
                                    !             println();
                                    !             println(1, "<!-- Package groups specified by user on command line -->");
                                    !             {
                                    !                Iterator packageGroupIt = packageGroups.iterator();
                                    !                while (packageGroupIt.hasNext()) {
                                    !                   PackageGroup packageGroup = (PackageGroup)packageGroupIt.next();
                                    !                   SortedSet groupedPackages = packageGroup.getPackages();
                                    !                   if (groupedPackages.isEmpty()) {
                                    !                      printWarning("Package group named '"
                                    !                                   + packageGroup.getName() + "' didn't match any packages.");
                                    !                   }
                                    !                   else {
                                    !                      printOpenTag(1, "packagegroup name=\"" + packageGroup.getName() + "\"");
                                    !                      Iterator groupedPackageIt = groupedPackages.iterator();
                                    !                      while (groupedPackageIt.hasNext()) {
                                    !                         PackageDoc groupedPackageDoc = (PackageDoc)groupedPackageIt.next();
                                    !                         printAtomTag(2, "package name=\"" + groupedPackageDoc.name() + "\"");
                                    !                      }
                                    !                      printCloseTag(1, "packagegroup");
                                    !                   }
                                    !                }
                                    !                packageGroups = null;
                                    !             }
                                    ! 
                                    !             // Output information on all packages for which documentation
                                    !             // has been made available via the Doclet API
                                    ! 
                                    !             println();
                                    !             println(1, "<!-- Documentation for all packages -->");
                                    !             PackageDoc[] packages = rootDoc.specifiedPackages();
                                    !             for (int i=0, ilim=packages.length; i<ilim; ++i) {
                                    !                PackageDoc c = packages[i];
                                    !                outputPackageDoc(c);
                                    !             }
                                    !             packages = null;
                                    ! 
                                    !             // Output brief summary on all classes for which documentation
                                    !             // has been made available via the Doclet API.
                                    !             //
                                    !             // While this is redundant, it can speed up XSLT
                                    !             // processing by orders of magnitude
                                    ! 
                                    !             println();
                                    !             println(1, "<!-- Brief summary for all classes -->");
                                    !             ClassDoc[] sumclasses = rootDoc.classes();
                                    !             for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {
                                    !                ClassDoc c = sumclasses[i];
                                    !                outputClassDocSummary(c);
                                    !             }
                                    !             sumclasses = null;
                                    ! 
                                    !             // Output closing tag, finish output stream
                                    ! 
                                    !             println();
                                    !             printCloseTag(0, "rootdoc");
                                    ! 
                                    !             closeTargetFile();
                                    ! 
                                    !             createIndexByName();
                                    ! 
                                    ! 
                                    ! 
                                    !             // Output information on all classes for which documentation
                                    !             // has been made available via the Doclet API
                                    ! 
                                    !             println();
                                    !             println(1, "<!-- Documentation for all classes -->");
                                    !             ClassDoc[] classes = rootDoc.classes();
                                    !             String prevPackageName = null;
                                    !             for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
                                    !                ClassDoc c = classes[i];
                                    ! 
                                    !                if (isVerbose()) {
                                    !                   printNotice("Writing XML information for "+c.qualifiedName()+"...");
                                    !                }
                                    !                else {
                                    !                   String packageName = c.containingPackage().name();
                                    !                   if (null == prevPackageName || !packageName.equals(prevPackageName)) {
                                    !                      printNotice("Writing XML information for "+packageName+"...");
                                    !                      prevPackageName = packageName;
                                    !                   }
                                    !                }
                                    ! 
                                    !                setTargetFile(c.qualifiedName().replace('/','.')+".xml");
                                    ! 
                                    !                println("<?xml version=\"1.0\"?>");
                                    !                println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc.dtd\">");
                                    ! 
                                    !                outputClassDoc(c);
                                    ! 
                                    !                closeTargetFile();
                                    !             }
                                    !             classes = null;
                                    !          }
                                    ! 
                                    !          // Copy DTD files to temporary directory
                                    ! 
                                    !          // FIXME: try to solve this via jar: URLs. but this will
                                    !          // probably break libxmlj compatibility (?)
                                    ! 
                                    !          String[] resources = new String[] {
                                    !             "gjdoc.dtd",
                                    !             "gjdoc-alphaindex.dtd",
                                    !             "dbcentx.mod",
                                    !             "ent/iso-amsa.ent",
                                    !             "ent/iso-amsb.ent",
                                    !             "ent/iso-amsc.ent",
                                    !             "ent/iso-amsn.ent",
                                    !             "ent/iso-amso.ent",
                                    !             "ent/iso-amsr.ent",
                                    !             "ent/iso-box.ent",
                                    !             "ent/iso-cyr1.ent",
                                    !             "ent/iso-cyr2.ent",
                                    !             "ent/iso-dia.ent",
                                    !             "ent/iso-grk1.ent",
                                    !             "ent/iso-grk2.ent",
                                    !             "ent/iso-grk3.ent",
                                    !             "ent/iso-grk4.ent",
                                    !             "ent/iso-lat1.ent",
                                    !             "ent/iso-lat2.ent",
                                    !             "ent/iso-num.ent",
                                    !             "ent/iso-pub.ent",
                                    !             "ent/iso-tech.ent",
                                    !          };
                                    ! 
                                    !          File tempDtdDirectory = new File(xmlTargetDirectory, "dtd");
                                    !          File tempDtdEntDirectory = new File(tempDtdDirectory, "ent");
                                    ! 
                                    !          if ((tempDtdDirectory.exists() || tempDtdDirectory.mkdir())
                                    !              && (tempDtdEntDirectory.exists() || tempDtdEntDirectory.mkdir())) {
                                    !             for (int i = 0; i < resources.length; ++ i) {
                                    !                copyResourceToFile("/dtd/" + resources[i],
                                    !                                   new File(tempDtdDirectory, resources[i]));
                                    !             }
                                    !          }
                                    !          else {
                                    !             printError("Cannot create temporary directories for DTD data at " + tempDtdDirectory);
                                    !             return false;
                                    !          }
                                    ! 
                                    !          // Copy package data-dir directory
                                    ! 
                                    !          {
                                    !             PackageDoc[] packages = rootDoc.specifiedPackages();
                                    !             for (int i=0, ilim=packages.length; i<ilim; ++i) {
                                    !                PackageDoc c = packages[i];
                                    !                if (c instanceof GjdocPackageDoc) {
                                    !                   copyPackageDataDir((GjdocPackageDoc)c);
                                    !                }
                                    !             }
                                    !          }
                                    ! 
                                    !          // All information has been output. Apply stylesheet if given.
                                    ! 
                                    !          gnu.classpath.tools.gjdoc.Main.releaseRootDoc();
                                    ! 
                                    !          this.currentClass = null;
                                    !          this.currentMember = null;
                                    !          this.currentExecMember = null;
                                    ! 
                                    !          System.gc();
                                    ! 
                                    !          // From this point we are only operating on files, so we don't
                                    !          // need this anymore and can free up some memory
                                    ! 
                                    !          for (Iterator it = targets.iterator(); it.hasNext(); ) {
                                    ! 
                                    !             TargetContext target = (TargetContext)it.next();
                                    ! 
                                    !             // We have XSLT postprocessing, run DocTranslet.
                                    ! 
                                    !             //DocTranslet docTranslet = DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl");
                                    ! 
                                    !             //docTranslet.setOptions(docTransletOptions);
                                    ! 
                                    !             target.getDocTranslet().setOptions(docTransletOptions);
                                    ! 
                                    !             target.getDocTranslet().apply(xmlTargetDirectory,
                                    !                                           target.getTargetDirectory(),
                                    !                                           rootDoc);
                                    !          }
                                    ! 
                                    !          // Done
                                    ! 
                                    !          targets = null;
                                    ! 
                                    !          System.gc();
                                    !          Runtime.getRuntime().runFinalization();
                                    ! 
                                    !          return true;
                                    !       }
                                    !       catch (Exception e) {
                                    ! 
                                    !          // Something went wrong. Report to stderr and pass error to
                                    !          // Javadoc Reporter
                                    ! 
                                    !          e.printStackTrace();
                                    !          printError(e.toString());
                                    ! 
                                    !          Throwable rootCause = e.getCause();
                                    !          if (null != rootCause) {
                                    !             while (null != rootCause.getCause()) {
                                    !                rootCause = rootCause.getCause();
                                    !             }
                                    !             System.err.println("Root cause:");
                                    !             rootCause.printStackTrace();
                                    !          }
                                    ! 
                                    !          return false;
                                    !       }
                                    !       finally {
                                    ! 
                                    !          // In any case, delete the working directory if we created one
                                    ! 
                                    !          if (null != workingDirectory) {
                                    ! 
                                    !             if (!deleteRecursive(workingDirectory)) {
                                    !                printWarning("Could not delete temporary directory at "+workingDirectory);
                                    !             }
                                    !          }
                                    ! 
                                    !          printNotice("Done.");
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     * Recursively delete the specified directory and its contents,
                                    !     * like <code>rm -Rf directory</code>
                                    !     *
                                    !     * @return <code>true</code> on success
                                    !     */
                                    !    private static boolean deleteRecursive(File directory) {
                                    ! 
                                    !       boolean success = true;
                                    ! 
                                    !       File[] files = directory.listFiles();
                                    ! 
                                    !       for (int i=0, ilim=files.length; i<ilim; ++i) {
                                    ! 
                                    !          File file = files[i];
                                    ! 
                                    !          if (file.isDirectory()) {
                                    ! 
                                    !             success = deleteRecursive(file) && success;
                                    !          }
                                    !          else {
                                    ! 
                                    !             success = file.delete() && success;
                                    !          }
                                    !       }
                                    ! 
                                    !       return directory.delete() && success;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints a string to stdout and appends a newline.  Convenience
                                    !     *  method.
                                    !     */
                                    !    protected void println(String str) {
                                    !       out.println(str);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints a string to stdout without appending a newline.
                                    !     *  Convenience method.
                                    !     */
                                    !    protected void print(String str) {
                                    !       out.print(str);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  In standard mode, prints an empty line to stdout.
                                    !     *  In thight mode, nothing happens.
                                    !     *  Convenience method.
                                    !     */
                                    !    protected void println() {
                                    !       if (!compress) {
                                    !          out.println();
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  In standard mode, prints the given text indented to stdout and appends newline.
                                    !     *  In tight mode, doesn't print indentation or newlines.
                                    !     */
                                    !    protected void print(int indentLevel, String msg) {
                                    !       if (compress) {
                                    !          out.print(msg);
                                    !       }
                                    !       else {
                                    !          StringBuffer indentation = new StringBuffer();
                                    !          for (int i=0; i<indentLevel*indentStep; ++i) {
                                    !             indentation.append(' ');
                                    !          }
                                    !          out.print(indentation+msg);
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  In tight mode, prints a message at a given indentation level.
                                    !     *  In standard mode, appends a newline in addition.
                                    !     */
                                    !    protected void println(int indentLevel, String msg) {
                                    !       print(indentLevel, msg);
                                    !       if (!compress) out.println();
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints an atom tag at the given indentation level.
                                    !     */
                                    !    protected void printAtomTag(int level, String tag) {
                                    !       println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+"/>");
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints an open tag at the given indentation level.
                                    !     */
                                    !    protected void printOpenTag(int level, String tag) {
                                    !       printOpenTag(level, replaceCharsInTag(tag), true);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints an open tag at the given indentation level and
                                    !     *  conditionally appends a newline (if not in tight mode).
                                    !     */
                                    !    protected void printOpenTag(int level, String tag, boolean appendNewline) {
                                    !       if (appendNewline && !compress) {
                                    !          println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");
                                    !       }
                                    !       else {
                                    !          print(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints a close tag at the given indentation level.
                                    !     */
                                    !    protected void printCloseTag(int level, String tag) {
                                    !       printCloseTag(level, tag, true);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Prints a close tag at the given indentation level and
                                    !     *  conditionally appends a newline (if not in tight mode).
                                    !     */
                                    !    protected void printCloseTag(int level, String tag, boolean appendNewline) {
                                    !       if (appendNewline && !compress) {
                                    !          println(level, "</"+tagPrefix+":"+replaceCharsInTag(tag)+">");
                                    !       }
                                    !       else {
                                    !          print(level, "</"+tagPrefix+":"+replaceCharsInTag(tag)+">");
                                    !       }
                                    !    }
                                    ! 
                                    !    public static int optionLength(String option) {
                                    !       if ("-d".equals(option)) return 2;
                                    !       else if ("-fixhtml".equals(option)) return 1;
                                    !       else if ("-compress".equals(option)) return 1;
                                    !       else if ("-nohtmlwarn".equals(option)) return 1;
                                    !       else if ("-noemailwarn".equals(option)) return 1;
                                    !       else if ("-indentstep".equals(option)) return 2;
                                    !       else if ("-xslsheet".equals(option)) return 2;
                                    !       else if ("-xsltdriver".equals(option)) return 2;
                                    !       else if ("-postprocess".equals(option)) return 2;
                                    !       else if ("-genhtml".equals(option)) return 1;
                                    !       else if ("-geninfo".equals(option)) return 1;
                                    !       else if ("-gendocbook".equals(option)) return 1;
                                    !       else if ("-xmlonly".equals(option)) return 1;
                                    !       else if ("-bottomnote".equals(option)) return 2;
                                    !       else if ("-workpath".equals(option)) return 2;
                                    !       else if ("-title".equals(option)) return 2;
                                    !       else if ("-tagletpath".equals(option)) return 2;
                                    !       else if ("-taglet".equals(option)) return 2;
                                    !       else if ("-authormail".equals(option)) return 2;
                                    !       else if ("-mailmangledot".equals(option)) return 2;
                                    !       else if ("-mailmangleat".equals(option)) return 2;
                                    !       else if ("-noindex".equals(option)) return 1;
                                    !       else if ("-nocomment".equals(option)) return 1;
                                    !       else if ("-notree".equals(option)) return 1;
                                    !       else if ("-nohelp".equals(option)) return 1;
                                    !       else if ("-nonavbar".equals(option)) return 1;
                                    !       else if ("-splitindex".equals(option)) return 1;
                                    !       else if ("-author".equals(option)) return 1;
                                    !       else if ("-version".equals(option)) return 1;
                                    !       else if ("-nosince".equals(option)) return 1;
                                    !       else if ("-nodeprecated".equals(option)) return 1;
                                    !       else if ("-linksource".equals(option)) return 1;
                                    !       else if ("-windowtitle".equals(option)) return 2;
                                    !       else if ("-helpfile".equals(option)) return 2;
                                    !       else if ("-stylesheetfile".equals(option)) return 2;
                                    !       else if ("-tag".equals(option)) return 2;
                                    !       else if ("-header".equals(option)) return 2;
                                    !       else if ("-footer".equals(option)) return 2;
                                    !       else if ("-bottom".equals(option)) return 2;
                                    !       else if ("-doctitle".equals(option)) return 2;
                                    !       else if ("-nodeprecatedlist".equals(option)) return 1;
                                    !       else if ("-uses".equals(option)) return 1;
                                    !       else if ("-group".equals(option)) return 3;
                                    ! 
                                    !       else return -1;
                                    !    }
                                    ! 
                                    !    public static boolean validOptions(String[][] options) {
                                    !       return true;
                                    !    }
                                    ! 
                                    ! 
                                    !    /**
                                    !     *  Workaround for non well-formed comments: fix tag contents
                                    !     *  by replacing <code><</code> with <code>&lt;</code>,
                                    !     *  <code>></code> with <code>&gt;</code> and
                                    !     *  <code>&</code> with <code>&amp;</code>.
                                    !     *
                                    !     *  @param tagContent  String to process
                                    !     *
                                    !     *  @return given String with all special characters replaced by
                                    !     *          HTML entities.
                                    !     */
                                    !    private static String replaceCharsInTag(String tagContent) {
                                    !       return
                                    !          replaceString(
                                    !             replaceString(
                                    !                replaceString(
                                    !                   tagContent,
                                    !                   "<", "<"
                                    !                   ),
                                    !                ">", ">"
                                    !                ),
                                    !             "&", "&"
                                    !             );
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Replaces all occurences of string <code>needle</code> within string
                                    !     *  <code>haystack</code> by string <code>replacement</code>.
                                    !     *
                                    !     *  @param haystack    The string to search and replace in.
                                    !     *  @param needle      The string which is searched for.
                                    !     *  @param replacement The string by which every occurence of <code>needle</code> is replaced.
                                    !     */
                                    !    private static String replaceString(String haystack, String needle, String replacement) {
                                    !       int ndx = haystack.indexOf(needle);
                                    !       if (ndx<0)
                                    !          return haystack;
                                    !       else
                                    !          return haystack.substring(0, ndx) + replacement
                                    !             + replaceString(haystack.substring(ndx+needle.length()), needle, replacement);
                                    !    }
                                    ! 
                                    !    protected void setTargetFile(String filename) throws IOException {
                                    ! 
                                    !       OutputStream fileOut = new FileOutputStream(new File(xmlTargetDirectory, filename));
                                    !       out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fileOut, "UTF8")));;
                                    !    }
                                    ! 
                                    !    protected void closeTargetFile() {
                                    ! 
                                    !       out.flush();
                                    !       out.close();
                                    !    }
                                    ! 
                                    !    private String cdata(String str) {
                                    ! 
                                    !       if (null==str) {
                                    !          return str;
                                    !       } // end of if ((null==str)
                                    ! 
                                    !       StringBuffer rc = new StringBuffer();
                                    !       for (int i=0; i<str.length(); ++i) {
                                    !          char c = str.charAt(i);
                                    !          if (c==0x09 || c==0x0a || c==0x0d || (c>=0x20 && c<=0xd7ff) || (c>=0xe000 && c<=0xfffd) || (c>=0x10000 && c<=0x10ffff)) {
                                    !             rc.append(c);
                                    !          }
                                    !          else {
                                    !             printWarning("Invalid Unicode character 0x"+Integer.toString(c, 16)+" in javadoc markup has been stripped.");
                                    !          } // end of else
                                    ! 
                                    !       }
                                    !       return rc.toString();
                                    !    }
                                    ! 
                                    !    static void copyResourceToFile(String resourceName, File target) throws IOException {
                                    ! 
                                    !       InputStream in = Driver.class.getResourceAsStream(resourceName);
                                    ! 
                                    !       if (null != in) {
                                    ! 
                                    !          FileOutputStream out = new FileOutputStream(target);
                                    !          int size;
                                    !          byte[] buffer = new byte[512];
                                    !          while ((size = in.read(buffer)) >= 0) {
                                    !             out.write(buffer, 0, size);
                                    !          }
                                    !          out.close();
                                    !       }
                                    !       else {
                                    ! 
                                    !          throw new IOException("Can't find resource named "+resourceName);
                                    !       }
                                    !    }
                                    ! 
                                    !    private void printError(String error) {
                                    !       if (null != rootDoc) {
                                    !          rootDoc.printError(error);
                                    !       }
                                    !       else {
                                    !          System.err.println("ERROR: "+error);
                                    !       }
                                    !    }
                                    ! 
                                    !    private void printWarning(String warning) {
                                    !       if (null != rootDoc) {
                                    !          rootDoc.printWarning(warning);
                                    !       }
                                    !       else {
                                    !          System.err.println("WARNING: "+warning);
                                    !       }
                                    !    }
                                    ! 
                                    !    private void printNotice(String notice) {
                                    !       if (null != rootDoc) {
                                    !          rootDoc.printNotice(notice);
                                    !       }
                                    !       else {
                                    !          System.err.println(notice);
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Copy the contents of the input directory to the output
                                    !     *  directory. The output directory must exist.
                                    !     */
                                    !    private void copyPackageDataDir(GjdocPackageDoc packageDoc) throws IOException {
                                    !       File docFilesSourceDirectory
                                    !          = new File(packageDoc.packageDirectory(), "doc-files");
                                    !       File docFilesTargetDirectory
                                    !          = new File(this.targetDirectory,
                                    !                     packageDoc.name().replace('.', File.separatorChar));
                                    !       if (docFilesSourceDirectory.exists()) {
                                    !          printNotice("Copying files from " + docFilesSourceDirectory);
                                    !          copyDirectory(docFilesSourceDirectory, docFilesTargetDirectory,
                                    !                        docFilesSubdirsEnabled,
                                    !                        excludeDocFilesSubDirs);
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Recursively copy the contents of the input directory to the
                                    !     *  output directory. The output directory must exist.
                                    !     */
                                    !    private static void copyDirectory(File sourceDir, File targetDir,
                                    !                                      boolean recursive,
                                    !                                      Set excludeDirs) throws IOException {
                                    !       if (!targetDir.exists() && !targetDir.mkdirs()) {
                                    !          throw new IOException("Cannot create directory " + targetDir);
                                    !       }
                                    ! 
                                    !       File[] sourceFiles = sourceDir.listFiles();
                                    !       for (int i=0; i<sourceFiles.length; ++i) {
                                    !          if (sourceFiles[i].isDirectory()) {
                                    !             if (recursive && (null == excludeDirs
                                    !                               || !excludeDirs.contains(sourceFiles[i].getName()))) {
                                    !                File targetSubDir = new File(targetDir,
                                    !                                             sourceFiles[i].getName());
                                    !                if (targetSubDir.exists() || targetSubDir.mkdir()) {
                                    !                   copyDirectory(sourceFiles[i], targetSubDir, recursive, null);
                                    !                }
                                    !                else {
                                    !                   throw new IOException("Cannot create directory " + targetSubDir);
                                    !                }
                                    !             }
                                    !          }
                                    !          else {
                                    !             copyFile(sourceFiles[i], new File(targetDir, sourceFiles[i].getName()));
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Copy the contents of the input file to the output file. The
                                    !     *  output file's parent directory must exist.
                                    !     */
                                    !    private static void copyFile(File sourceFile, File targetFile) throws IOException {
                                    ! 
                                    !       InputStream in = new FileInputStream(sourceFile);
                                    !       OutputStream out = new FileOutputStream(targetFile);
                                    !       int nread;
                                    !       byte[] buf = new byte[512];
                                    !       while ((nread = in.read(buf)) >= 0) {
                                    !          out.write(buf, 0, nread);
                                    !       }
                                    !       in.close();
                                    !       out.close();
                                    !    }
                                    ! 
                                    !    private void createIndexByName() throws IOException {
                                    !       // Create index
                                    ! 
                                    !       // Collect index
                                    ! 
                                    !       Map indexMap = new TreeMap(new Comparator() {
                                    !             public int compare(Object o1, Object o2) {
                                    !                return o1.toString().toLowerCase().compareTo(o2.toString().toLowerCase());
                                    !             }
                                    !          });
                                    ! 
                                    !       // Add packages to index
                                    ! 
                                    !       PackageDoc[] packages = rootDoc.specifiedPackages();
                                    !       for (int i=0, ilim=packages.length; i<ilim; ++i) {
                                    !          PackageDoc c = packages[i];
                                    !          indexMap.put(c.name(), c);
                                    !       }
                                    ! 
                                    !       // Add classes, fields and methods to index
                                    ! 
                                    !       ClassDoc[] sumclasses = rootDoc.classes();
                                    !       for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {
                                    !          ClassDoc c = sumclasses[i];
                                    !          if (null == c.containingClass()) {
                                    !             indexMap.put(c.name(), c);
                                    !          }
                                    !          else {
                                    !             indexMap.put(c.name().substring(c.containingClass().name().length() + 1), c);
                                    !          }
                                    !          FieldDoc[] fields = c.fields();
                                    !          for (int j=0, jlim=fields.length; j<jlim; ++j) {
                                    !             indexMap.put(fields[j].name(), fields[j]);
                                    !          }
                                    !          MethodDoc[] methods = c.methods();
                                    !          for (int j=0, jlim=methods.length; j<jlim; ++j) {
                                    !             MethodDoc method = methods[j];
                                    !             StringBuffer signature = new StringBuffer();
                                    !             signature.append(method.name());
                                    !             signature.append('(');
                                    !             Parameter[] parameters = method.parameters();
                                    !             for (int k=0, klim=parameters.length; k<klim; ++k) {
                                    !                if (k > 0) {
                                    !                   signature.append(", ");
                                    !                }
                                    !                signature.append(parameters[k].typeName());
                                    !             }
                                    !             signature.append(')');
                                    !             indexMap.put(signature.toString(), method);
                                    !          }
                                    !       }
                                    ! 
                                    !       // Assign output stream
                                    ! 
                                    !       setTargetFile("alphaindex.xml");
                                    ! 
                                    !       // Output XML document header
                                    ! 
                                    !       println(0, "<?xml version=\"1.0\"?>");
                                    !       println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc-alphaindex.dtd\">");
                                    !       println();
                                    !       printOpenTag(0, "alphaindex xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");
                                    ! 
                                    !       Iterator it = indexMap.keySet().iterator();
                                    ! 
                                    !       char previousCategoryLetter = '\0';
                                    !       boolean categoryOpen = false;
                                    ! 
                                    !       while (it.hasNext()) {
                                    !          String key = (String)it.next();
                                    !          Doc entry = (Doc)indexMap.get(key);
                                    ! 
                                    !          char firstChar = Character.toUpperCase(key.charAt(0));
                                    !          if (firstChar != previousCategoryLetter) {
                                    !             if (categoryOpen) {
                                    !                printCloseTag(1, "category");
                                    !             }
                                    !             printOpenTag(1, "category letter=\"" + firstChar + "\"");
                                    !             categoryOpen = true;
                                    !             previousCategoryLetter = firstChar;
                                    !          }
                                    ! 
                                    !          printOpenTag(2, "entry name=\"" + key + "\"");
                                    !          if (entry instanceof PackageDoc) {
                                    !             printAtomTag(3, "isPackage");
                                    !          }
                                    !          else if (entry instanceof ClassDoc) {
                                    !             printAtomTag(3, "isClass");
                                    !             ClassDoc centry = (ClassDoc)entry;
                                    !             currentClass = centry;
                                    !             printAtomTag(3, "containingPackage name=\"" + centry.containingPackage().name() + "\"");
                                    !             if (null != centry.containingClass()) {
                                    !                printAtomTag(3, "containingClass name=\"" + centry.containingClass().name() + "\"");
                                    !             }
                                    !             if (centry.isInterface()) {
                                    !                printAtomTag(3, "isInterface");
                                    !             }
                                    !             if (centry.isException()) {
                                    !                printAtomTag(3, "isException");
                                    !             }
                                    !             if (centry.isError()) {
                                    !                printAtomTag(3, "isError");
                                    !             }
                                    !             if (centry.isOrdinaryClass()) {
                                    !                printAtomTag(3, "isOrdinaryClass");
                                    !             }
                                    !          }
                                    !          else if (entry instanceof ProgramElementDoc) {
                                    !             ProgramElementDoc pentry = (ProgramElementDoc)entry;
                                    !             currentClass = pentry.containingClass();
                                    !             printAtomTag(3, "containingPackage name=\"" + pentry.containingPackage().name() + "\"");
                                    !             printAtomTag(3, "containingClass name=\"" + pentry.containingClass().name() + "\"");
                                    !             if (pentry.isMethod()) {
                                    !                printAtomTag(3, "isMethod");
                                    !                ExecutableMemberDoc mentry = (ExecutableMemberDoc)pentry;
                                    !                printAtomTag(3, "signature full=\""+mentry.signature()+"\" flat=\""+mentry.flatSignature()+"\"");
                                    !                printAtomTag(3, "method name=\"" + mentry.name() + "\"");
                                    !             }
                                    !             if (pentry.isField()) {
                                    !                printAtomTag(3, "isField");
                                    !             }
                                    !          }
                                    ! 
                                    !          Tag[] tags = entry.firstSentenceTags();
                                    !          for (int i=0, ilim=tags.length; i<ilim; ++i) {
                                    !             Tag tag = tags[i];
                                    !             if (tag.firstSentenceTags().length>0) {
                                    !                printOpenTag(3, "firstSentenceTags", false);
                                    !                outputTags(4, tag.firstSentenceTags(), false, CONTEXT_TYPE);
                                    !                printCloseTag(3, "firstSentenceTags");
                                    !             }
                                    !          }
                                    ! 
                                    ! 
                                    !          printCloseTag(2, "entry");
                                    !       }
                                    ! 
                                    !       if (categoryOpen) {
                                    !          printCloseTag(1, "category");
                                    !       }
                                    ! 
                                    !       printCloseTag(0, "alphaindex");
                                    ! 
                                    !       closeTargetFile();
                                    !    }
                                    ! 
                                    !    private static class UsageType
                                    !    {
                                    !       public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from");
                                    !       public static final UsageType FIELD_OF_TYPE = new UsageType("field-of-type");
                                    !       public static final UsageType METHOD_WITH_RETURN_TYPE = new UsageType("method-with-return-type");
                                    !       public static final UsageType METHOD_WITH_PARAMETER_TYPE = new UsageType("method-with-parameter-type");
                                    !       public static final UsageType METHOD_WITH_THROWN_TYPE = new UsageType("method-with-thrown-type");
                                    !       public static final UsageType CONSTRUCTOR_WITH_PARAMETER_TYPE = new UsageType("constructor-with-parameter-type");
                                    !       public static final UsageType CONSTRUCTOR_WITH_THROWN_TYPE = new UsageType("constructor-with-thrown-type");
                                    !       private String id;
                                    ! 
                                    !       private UsageType(String id)
                                    !       {
                                    !          this.id = id;
                                    !       }
                                    ! 
                                    !       public String toString() {
                                    !          return "UsageType{id=" + id + "}";
                                    !       }
                                    ! 
                                    !       public String getId() {
                                    !          return id;
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  ClassDoc -> (PackageDoc -> (UsageType -> (Set of Doc)))
                                    !     */
                                    !    private Map usedClassToPackagesMap = new HashMap();
                                    ! 
                                    !    private void addUsedBy(ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage)
                                    !    {
                                    !       Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(usedClass);
                                    !       if (null == packageToUsageTypeMap) {
                                    !          packageToUsageTypeMap = new HashMap();
                                    !          usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap);
                                    !       }
                                    ! 
                                    !       Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(userPackage);
                                    !       if (null == usageTypeToUsersMap) {
                                    !          usageTypeToUsersMap = new HashMap();
                                    !          packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap);
                                    !       }
                                    ! 
                                    !       Set userSet = (Set)usageTypeToUsersMap.get(usageType);
                                    !       if (null == userSet) {
                                    !          userSet = new TreeSet(); // FIXME: we need the collator from Main here
                                    !          usageTypeToUsersMap.put(usageType, userSet);
                                    !       }
                                    !       userSet.add(user);
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Create the cross reference database.
                                    !     */
                                    !    private void collectUsage() {
                                    ! 
                                    !       ClassDoc[] classes = rootDoc.classes();
                                    !       for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
                                    !          ClassDoc clazz = classes[i];
                                    ! 
                                    !          // classes derived from
                                    !          for (ClassDoc superclass = clazz.superclass(); superclass != null;
                                    !               superclass = superclass.superclass()) {
                                    !             addUsedBy(superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
                                    !          }
                                    ! 
                                    !          FieldDoc[] fields = clazz.fields();
                                    !          for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
                                    !             FieldDoc field = fields[j];
                                    ! 
                                    !             // fields of type
                                    !             ClassDoc fieldType = field.type().asClassDoc();
                                    !             if (null != fieldType) {
                                    !                addUsedBy(fieldType, UsageType.FIELD_OF_TYPE,
                                    !                          field, clazz.containingPackage());
                                    !             }
                                    !          }
                                    ! 
                                    !          MethodDoc[] methods = clazz.methods();
                                    !          for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
                                    !             MethodDoc method = methods[j];
                                    ! 
                                    !             // methods with return type
                                    ! 
                                    !             ClassDoc returnType = method.returnType().asClassDoc();
                                    !             if (null != returnType) {
                                    !                addUsedBy(returnType, UsageType.METHOD_WITH_RETURN_TYPE,
                                    !                          method, clazz.containingPackage());
                                    !             }
                                    !             Parameter[] parameters = method.parameters();
                                    !             for (int k=0; k<parameters.length; ++k) {
                                    ! 
                                    !                // methods with parameter type
                                    ! 
                                    !                Parameter parameter = parameters[k];
                                    !                ClassDoc parameterType = parameter.type().asClassDoc();
                                    !                if (null != parameterType) {
                                    !                   addUsedBy(parameterType, UsageType.METHOD_WITH_PARAMETER_TYPE,
                                    !                             method, clazz.containingPackage());
                                    !                }
                                    !             }
                                    ! 
                                    !             // methods which throw
                                    ! 
                                    !             ClassDoc[] thrownExceptions = method.thrownExceptions();
                                    !             for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
                                    !                ClassDoc thrownException = thrownExceptions[k];
                                    !                addUsedBy(thrownException, UsageType.METHOD_WITH_THROWN_TYPE,
                                    !                          method, clazz.containingPackage());
                                    !             }
                                    !          }
                                    ! 
                                    !          ConstructorDoc[] constructors = clazz.constructors();
                                    !          for (int j = 0, jlim = constructors.length; j < jlim; ++ j) {
                                    ! 
                                    !             ConstructorDoc constructor = constructors[j];
                                    ! 
                                    !             Parameter[] parameters = constructor.parameters();
                                    !             for (int k = 0, klim = parameters.length; k < klim; ++ k) {
                                    ! 
                                    !                // constructors with parameter type
                                    ! 
                                    !                Parameter parameter = parameters[k];
                                    !                ClassDoc parameterType = parameter.type().asClassDoc();
                                    !                if (null != parameterType) {
                                    !                   addUsedBy(parameterType, UsageType.CONSTRUCTOR_WITH_PARAMETER_TYPE,
                                    !                             constructor, clazz.containingPackage());
                                    !                }
                                    !             }
                                    ! 
                                    !             // constructors which throw
                                    ! 
                                    !             ClassDoc[] thrownExceptions = constructor.thrownExceptions();
                                    !             for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
                                    !                ClassDoc thrownException = thrownExceptions[k];
                                    !                addUsedBy(thrownException, UsageType.CONSTRUCTOR_WITH_THROWN_TYPE,
                                    !                          constructor, clazz.containingPackage());
                                    !             }
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    private void outputUsage(ClassDoc clazz, int level) {
                                    ! 
                                    !       Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(clazz);
                                    !       if (null != packageToUsageTypeMap) {
                                    !          printOpenTag(level, "references");
                                    ! 
                                    !          Iterator packagesIterator = packageToUsageTypeMap.keySet().iterator();
                                    ! 
                                    !          while (packagesIterator.hasNext()) {
                                    !             PackageDoc packageDoc = (PackageDoc)packagesIterator.next();
                                    !             printOpenTag(level + 1, "referencing-package name=\"" + packageDoc.name() + "\"");
                                    !             Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(packageDoc);
                                    !             Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();
                                    !             while (usageTypeIterator.hasNext()) {
                                    !                UsageType usageType = (UsageType)usageTypeIterator.next();
                                    !                printOpenTag(level + 2, "usage-type id=\"" + usageType.getId() + "\"");
                                    !                Set users = (Set)usageTypeToUsersMap.get(usageType);
                                    !                Iterator userIterator = users.iterator();
                                    !                while (userIterator.hasNext()) {
                                    !                   Doc user = (Doc)userIterator.next();
                                    !                   if (user instanceof ClassDoc) {
                                    !                      printAtomTag(level + 3, "user"
                                    !                                   + " class=\"" + ((ClassDoc)user).name() + "\"");
                                    !                   }
                                    !                   else if (user instanceof FieldDoc) {
                                    !                      FieldDoc fieldDoc = (FieldDoc)user;
                                    !                      printAtomTag(level + 3, "user"
                                    !                                   + " class=\"" + fieldDoc.containingClass().name() + "\""
                                    !                                   + " field=\"" + fieldDoc.name() + "\"");
                                    !                   }
                                    !                   else if (user instanceof MethodDoc) {
                                    !                      MethodDoc methodDoc = (MethodDoc)user;
                                    !                      printAtomTag(level + 3, "user"
                                    !                                   + " class=\"" + methodDoc.containingClass().name() + "\""
                                    !                                   + " method=\"" + methodDoc.name() + "\""
                                    !                                   + " signature=\"" + methodDoc.signature() + "\""
                                    !                                   + " flatSignature=\"" + methodDoc.flatSignature() + "\"");
                                    !                   }
                                    !                   else if (user instanceof ConstructorDoc) {
                                    !                      ConstructorDoc constructorDoc = (ConstructorDoc)user;
                                    !                      printAtomTag(level + 3, "user"
                                    !                                   + " class=\"" + constructorDoc.containingClass().name() + "\""
                                    !                                   + " signature=\"" + constructorDoc.signature() + "\""
                                    !                                   + " flatSignature=\"" + constructorDoc.flatSignature() + "\"");
                                    !                   }
                                    !                }
                                    !                printCloseTag(level +2, "usage-type");
                                    !             }
                                    !             printCloseTag(level + 1, "referencing-package");
                                    !          }
                                    ! 
                                    !          printCloseTag(level, "references");
                                    !       }
                                    !    }
                                    ! 
                                    !    private boolean processGroupOption(String groupName, String colonSeparatedPackageList)
                                    !    {
                                    !       try {
                                    !          PackageMatcher packageMatcher = new PackageMatcher();
                                    ! 
                                    !          StringTokenizer tokenizer = new StringTokenizer(colonSeparatedPackageList, ":");
                                    !          while (tokenizer.hasMoreTokens()) {
                                    !             String packageWildcard = tokenizer.nextToken();
                                    !             packageMatcher.addWildcard(packageWildcard);
                                    !          }
                                    ! 
                                    !          SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());
                                    ! 
                                    !          packageGroups.add(new PackageGroup(groupName, groupPackages));
                                    ! 
                                    !          return true;
                                    !       }
                                    !       catch (InvalidPackageWildcardException e) {
                                    !          return false;
                                    !       }
                                    !    }
                                    ! 
                                    !    private void registerTaglet(Taglet taglet)
                                    !    {
                                    !       tagletMap.put(taglet.getName(), taglet);
                                    !    }
                                    ! 
                                    !    private boolean isVerbose()
                                    !    {
                                    !       return false;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,67 ****
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.Driver1_4
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet;
                                    ! 
                                    ! import com.sun.javadoc.*;
                                    ! import java.io.IOException;
                                    ! 
                                    ! /**
                                    !  *  A Doclet which retrieves all information presented by the Doclet
                                    !  *  API, dumping it to stdout in XML format.
                                    !  *
                                    !  *  Supports Doclet API Version 1.4.
                                    !  *
                                    !  *  @author Julian Scheid
                                    !  */
                                    ! public class Driver1_4 extends Driver {
                                    ! 
                                    !    /**
                                    !     *  Official Doclet entry point.
                                    !     */
                                    !    public static boolean start(RootDoc root) {
                                    ! 
                                    !       // Create a new XmlDoclet instance and delegate control.
                                    !       return new Driver1_4().instanceStart(root);
                                    !    }
                                    ! 
                                    !    /* since 1.4
                                    !    private void outputSourcePosition(int level, SourcePosition sourcePosition) {
                                    !       println(level, "<sourceposition"
                                    ! 	      + " file=\""+sourcePosition.file().toString()+"\""
                                    ! 	      + " line=\""+sourcePosition.line()+"\""
                                    ! 	      + " column=\""+sourceposition.column()+"\""
                                    ! 	      + "/>");
                                    !    }
                                    !    */
                                    ! 
                                    !    protected void outputClassDoc(ClassDoc classDoc) 
                                    !       throws IOException 
                                    !    {
                                    !       super.outputClassDoc(classDoc);
                                    !       //outputSourcePosition(level, doc.position());
                                    !    }
                                    ! 
                                    !    protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {
                                    !       super.outputFieldDocBody(level, fieldDoc);
                                    !       //println(level, "<constantValueExpression>"+fieldDoc.constantValueExpression()+"</constantValueExpression>");
                                    !    }
                                    ! 
                                    ! }
                                    --- 1,84 ----
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.Driver1_4
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet;
                                    ! 
                                    ! import com.sun.javadoc.*;
                                    ! import java.io.IOException;
                                    ! 
                                    ! /**
                                    !  *  A Doclet which retrieves all information presented by the Doclet
                                    !  *  API, dumping it to stdout in XML format.
                                    !  *
                                    !  *  Supports Doclet API Version 1.4.
                                    !  *
                                    !  *  @author Julian Scheid
                                    !  */
                                    ! public class Driver1_4 extends Driver {
                                    ! 
                                    !    /**
                                    !     *  Official Doclet entry point.
                                    !     */
                                    !    public static boolean start(RootDoc root) {
                                    ! 
                                    !       // Create a new XmlDoclet instance and delegate control.
                                    !       return new Driver1_4().instanceStart(root);
                                    !    }
                                    ! 
                                    !    /* since 1.4
                                    !    private void outputSourcePosition(int level, SourcePosition sourcePosition) {
                                    !       println(level, "<sourceposition"
                                    !               + " file=\""+sourcePosition.file().toString()+"\""
                                    !               + " line=\""+sourcePosition.line()+"\""
                                    !               + " column=\""+sourceposition.column()+"\""
                                    !               + "/>");
                                    !    }
                                    !    */
                                    ! 
                                    !    protected void outputClassDoc(ClassDoc classDoc)
                                    !       throws IOException
                                    !    {
                                    !       super.outputClassDoc(classDoc);
                                    !       //outputSourcePosition(level, doc.position());
                                    !    }
                                    ! 
                                    !    protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {
                                    !       super.outputFieldDocBody(level, fieldDoc);
                                    !       //println(level, "<constantValueExpression>"+fieldDoc.constantValueExpression()+"</constantValueExpression>");
                                    !    }
                                    ! 
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,674 ****
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.HtmlRepairer.java
                                    !    Copyright (C) 2003 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet;
                                    ! 
                                    ! import java.io.*;
                                    ! import java.util.*;
                                    ! import com.sun.javadoc.DocErrorReporter;
                                    ! import com.sun.javadoc.ClassDoc;
                                    ! import com.sun.javadoc.MemberDoc;
                                    ! 
                                    ! /**
                                    !  *  Provides methods for tidying up HTML source.
                                    !  *
                                    !  *  @author Julian Scheid
                                    !  */
                                    ! public final class HtmlRepairer {
                                    ! 
                                    !    private static class TagInfo {
                                    ! 
                                    !       private Set parentTags = new HashSet();
                                    ! 
                                    !       public TagInfo(String parentTag) {
                                    ! 	 this.parentTags.add(parentTag);
                                    !       }
                                    ! 
                                    !       public TagInfo(String[] parentTagArr) {
                                    ! 	 for (int i=0; i<parentTagArr.length; ++i) {
                                    ! 	    this.parentTags.add(parentTagArr[i]);
                                    ! 	 }
                                    !       }
                                    ! 
                                    !       public boolean isLegalParentTag(String tag) {
                                    ! 	 return this.parentTags.contains(tag);
                                    !       }
                                    !    }
                                    ! 
                                    !    private DocErrorReporter warningReporter;
                                    !    private boolean noWarn;
                                    !    private boolean noEmailWarn;
                                    !    private ClassDoc contextClass;
                                    !    private MemberDoc contextMember;
                                    !    private StringBuffer output = new StringBuffer();
                                    !    private Stack tagStack = new Stack();
                                    !    private boolean isLeadingTag = true;
                                    !    private boolean throwAwayLeadingPara = false;
                                    ! 
                                    !    private static Map tagInfoMap;
                                    ! 
                                    !    private static Set noTextParentTags;
                                    ! 
                                    !    static {
                                    !       tagInfoMap = new HashMap();
                                    !       tagInfoMap.put("li", new TagInfo(new String[] { "ul", "ol", "nl", "menu", "dir" }));
                                    !       tagInfoMap.put("td", new TagInfo(new String[] { "tr" }));
                                    !       tagInfoMap.put("th", new TagInfo(new String[] { "tr" }));
                                    !       tagInfoMap.put("tr", new TagInfo(new String[] { "table" }));
                                    !       tagInfoMap.put("dt", new TagInfo(new String[] { "dl" }));
                                    !       tagInfoMap.put("dd", new TagInfo(new String[] { "dl" }));
                                    !       tagInfoMap.put("param", new TagInfo(new String[] { "applet" }));
                                    ! 
                                    !       String[] noTextParentTagArr = {
                                    !          "area", "base", "body", "br", "dd", "dt", "head", "hr", "html", 
                                    !          "img", "input", "link", "map", "meta", "ol", "optgroup", "param",
                                    !          "select", "table", "tbody", "tfoot", "thead", "tr", "ul",
                                    !       };
                                    ! 
                                    !       noTextParentTags = new HashSet();
                                    !       for (int i=0; i<noTextParentTagArr.length; ++i) {
                                    !          noTextParentTags.add(noTextParentTagArr[i]);
                                    !       }
                                    !    }
                                    ! 
                                    !    public HtmlRepairer(DocErrorReporter warningReporter, 
                                    ! 		       boolean noWarn, boolean noEmailWarn,
                                    ! 		       ClassDoc contextClass, MemberDoc contextMember,
                                    !                        boolean throwAwayLeadingPara) {
                                    !       this.warningReporter = warningReporter;
                                    !       this.noWarn = noWarn;
                                    !       this.noEmailWarn = noEmailWarn;
                                    !       this.contextClass = contextClass;
                                    !       this.contextMember = contextMember;
                                    !       this.throwAwayLeadingPara = throwAwayLeadingPara;
                                    !    }
                                    !   
                                    !    private static String replaceStr(String haystack, String needle, String replacement) {
                                    !       int ndx=haystack.indexOf(needle);
                                    !       if (ndx<0) 
                                    ! 	 return haystack;
                                    !       else 
                                    ! 	 return haystack.substring(0, ndx)+replacement
                                    ! 	    + replaceStr(haystack.substring(ndx+needle.length()), needle, replacement);
                                    !    }
                                    !  
                                    !    private void haveText(String text) {
                                    ! 
                                    !       if (isLeadingTag && throwAwayLeadingPara) {
                                    !          if (0 != text.trim().length()) {
                                    !             isLeadingTag = false;
                                    !          }
                                    !       }
                                    ! 
                                    !       if (tagStack.isEmpty() || !noTextParentTags.contains(tagStack.peek())) {
                                    ! 
                                    !          text = replaceStr(text, "<1", "<1");
                                    !          text = replaceStr(text, "&&", "&&");
                                    !          text = replaceStr(text, "& ", "& ");
                                    !          text = replaceStr(text, "&\t", "&\t");
                                    !          text = replaceStr(text, "&\r", "&\r");
                                    !          text = replaceStr(text, "&\n", "&\n");
                                    !          for (char c='0'; c<='9'; ++c)
                                    !             text = replaceStr(text, "&"+c, "&"+c);
                                    !          text = replaceStr(text, "\u00a7", "§");
                                    !          output.append(text);
                                    !       }
                                    !       else {
                                    !          printWarning("Discarded text in <" + tagStack.peek() + "> element");
                                    !       }
                                    !    }
                                    ! 
                                    !    private void haveStartOrEndTag(String tag) {
                                    ! 
                                    !       boolean _isLeadingTag = isLeadingTag;
                                    !       isLeadingTag = false;
                                    ! 
                                    !       tag = tag.trim();
                                    ! 
                                    !       boolean isEndTag = tag.startsWith("/");
                                    !       boolean isAtomTag = tag.endsWith("/");
                                    ! 
                                    !       if (isEndTag && isAtomTag) {
                                    ! 	 // got something like '</a/>' which is invalid.
                                    ! 	 // suppose a close tag was intended.
                                    ! 	 tag = tag.substring(0, tag.length()-1);
                                    !       }
                                    ! 
                                    !       if (tag.length() < 1) {
                                    !          printWarning("Deleting broken tag");
                                    !          return;
                                    !       }
                                    ! 
                                    !       String tagName = tag.substring(isEndTag?1:0, isAtomTag?tag.length()-1:tag.length());
                                    !       String tagAttributes = "";
                                    ! 
                                    !       for (int i=0; i<tagName.length(); ++i) {
                                    ! 	 if (" \t\r\n".indexOf(tagName.charAt(i))>=0) {
                                    ! 	    tagAttributes = tagName.substring(i).trim();
                                    ! 	    tagName = tagName.substring(0, i);
                                    ! 	    break;
                                    ! 	 }
                                    !       }
                                    ! 
                                    !       if (!isEndTag && tagName.indexOf('@')>0) {
                                    ! 	 if (!noEmailWarn) {
                                    ! 	    printWarning("Tag looks like email address: <"+tagName+">");
                                    ! 	 }
                                    ! 	 output.append("<"+tag+">");
                                    ! 	 return;
                                    !       }
                                    ! 
                                    !       tagName = tagName.toLowerCase();
                                    ! 
                                    !       if (_isLeadingTag && "p".equals(tagName) && !isEndTag && throwAwayLeadingPara) {
                                    !          return;
                                    !       }
                                    ! 
                                    !       if ("p".equals(tagName) || "br".equals(tagName) || "hr".equals(tagName)) {
                                    ! 	 // throw away </p> and </br>
                                    ! 	 if (isEndTag) {
                                    ! 	    return;
                                    ! 	 }
                                    ! 	 // make sure every <p> is a <p/> and every <br> is a <br/>
                                    ! 	 else if (!isAtomTag) {
                                    ! 	    tag += "/";
                                    ! 	    isAtomTag = true;
                                    ! 	 }
                                    !       }
                                    ! 
                                    !       if (isEndTag) {
                                    ! 
                                    ! 	 // check whether this close tag is on the stack
                                    ! 	 // if yes, close all tags up to this tag
                                    ! 	 if (tagStack.contains(tagName)) {
                                    ! 	    String popped;
                                    ! 	    do {
                                    ! 	       popped = (String)tagStack.pop();
                                    ! 	       if (!popped.equals(tagName)) 
                                    ! 		  printWarning("Inserting '</"+popped+">");
                                    ! 	       output.append("</"+popped+">");
                                    ! 	    }
                                    ! 	    while (!popped.equals(tagName));
                                    ! 	 }
                                    ! 	 // if not, just throw it away
                                    ! 	 else {
                                    ! 	    printWarning("Deleting <"+tag+">");
                                    ! 	 }
                                    !       }
                                    !       else {
                                    ! 
                                    ! 	 final int STATE_INITIAL = 1;
                                    ! 	 final int STATE_EXPECT_ATTRIBUTENAME = 2;
                                    ! 	 final int STATE_UNQUOTED_ATTRIBUTEVALUE = 3;
                                    ! 	 final int STATE_SINGLEQUOTE_ATTRIBUTEVALUE = 4;
                                    ! 	 final int STATE_DOUBLEQUOTE_ATTRIBUTEVALUE = 5;
                                    ! 	 final int STATE_EXPECT_ATTRIBUTEVALUE = 6;
                                    ! 	 final int STATE_EXPECT_EQUALSIGN = 7;
                                    ! 
                                    ! 	 int state = STATE_INITIAL;
                                    ! 	       
                                    ! 	 String newAttributes = "";
                                    ! 	 String attributeName = null;
                                    ! 	 StringBuffer buf = new StringBuffer();
                                    ! 
                                    ! 	 char[] attrsAsChars = tagAttributes.toCharArray();
                                    ! 	 for (int i=0, ilim=attrsAsChars.length+1; i<ilim; ++i) {
                                    ! 	    int c;
                                    ! 	    if (i<attrsAsChars.length)
                                    ! 	       c = (int)attrsAsChars[i];
                                    ! 	    else
                                    ! 	       c = -1;
                                    ! 
                                    ! 	    switch (state) {
                                    ! 
                                    ! 	    case STATE_INITIAL:
                                    ! 	       if (" \t\r\n".indexOf(c)>=0){
                                    ! 		  continue;
                                    ! 	       }
                                    ! 	       else if (-1==c) {
                                    ! 		  continue;
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  state = STATE_EXPECT_ATTRIBUTENAME;
                                    ! 		  buf.append((char)c);
                                    ! 	       }
                                    ! 	       break;
                                    ! 
                                    ! 	    case STATE_EXPECT_ATTRIBUTENAME:
                                    ! 	       if ('='==c) {
                                    ! 		  attributeName = buf.toString();
                                    ! 		  buf.setLength(0);
                                    ! 		  state = STATE_EXPECT_ATTRIBUTEVALUE;
                                    ! 	       }
                                    ! 	       else if (-1==c) {
                                    ! 		  attributeName = buf.toString();
                                    ! 		  buf.setLength(0);
                                    ! 		  printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");
                                    ! 	       }
                                    ! 	       else if (" \t\r\n".indexOf(c)>=0) {
                                    ! 		  state = STATE_EXPECT_EQUALSIGN;
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  buf.append((char)c);
                                    ! 	       }
                                    ! 	       break;
                                    ! 
                                    ! 	    case STATE_EXPECT_EQUALSIGN:
                                    ! 	       if (" \t\r\n".indexOf(c)>=0){
                                    ! 		  continue;
                                    ! 	       }
                                    ! 	       else if ('='==c) {
                                    ! 		  state = STATE_EXPECT_ATTRIBUTEVALUE;
                                    ! 		  attributeName = buf.toString();
                                    ! 		  buf.setLength(0);
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  attributeName = buf.toString();
                                    ! 		  buf.setLength(0);
                                    ! 		  printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");
                                    ! 		  newAttributes += " "+attributeName+"=\""+attributeName+"\"";
                                    ! 		  buf.append((char)c);
                                    ! 		  state = STATE_EXPECT_ATTRIBUTENAME;
                                    ! 	       }
                                    ! 	       break;
                                    ! 
                                    ! 	    case STATE_EXPECT_ATTRIBUTEVALUE:
                                    ! 	       if (" \t\r\n".indexOf(c)>=0){
                                    ! 		  continue;
                                    ! 	       }
                                    ! 	       else if ('\"'==c) {
                                    ! 		  state = STATE_DOUBLEQUOTE_ATTRIBUTEVALUE;
                                    ! 	       }
                                    ! 	       else if ('\''==c) {
                                    ! 		  state = STATE_SINGLEQUOTE_ATTRIBUTEVALUE;
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  state = STATE_UNQUOTED_ATTRIBUTEVALUE;
                                    ! 		  buf.append((char)c);
                                    ! 	       }
                                    ! 	       break;
                                    ! 
                                    ! 	    case STATE_UNQUOTED_ATTRIBUTEVALUE:
                                    ! 	       if (-1==c || " \t\r\n".indexOf(c)>=0){
                                    ! 		  state = STATE_INITIAL;
                                    ! 		  newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
                                    ! 		  buf.setLength(0);
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  buf.append((char)c);
                                    ! 	       }
                                    ! 	       break;
                                    ! 
                                    ! 	    case STATE_SINGLEQUOTE_ATTRIBUTEVALUE:
                                    ! 	       if ('\''==c) {
                                    ! 		  state = STATE_INITIAL;
                                    ! 		  newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
                                    ! 		  buf.setLength(0);
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  buf.append((char)c);
                                    ! 	       }
                                    ! 	       break;
                                    ! 
                                    ! 	    case STATE_DOUBLEQUOTE_ATTRIBUTEVALUE:
                                    ! 	       if ('\"'==c) {
                                    ! 		  state = STATE_INITIAL;
                                    ! 		  newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
                                    ! 		  buf.setLength(0);
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  buf.append((char)c);
                                    ! 	       }
                                    ! 	       break;
                                    ! 	    }
                                    ! 	 }
                                    ! 
                                    ! 
                                    ! 	 if (!isAtomTag) {
                                    ! 
                                    ! 	    // check whether this open tag is equal to the topmost
                                    ! 	    // entry on the stack; if yes, emit a close tag first
                                    ! 	    
                                    ! 	    // corrects stuff like '<tr><td>...<td>...');
                                    ! 	    if (!tagStack.isEmpty() && tagStack.peek().equals(tagName)) {
                                    ! 	       printWarning("Inserting </"+tagName+">");
                                    ! 	       output.append("</"+tagName+">");
                                    ! 	       tagStack.pop();
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       processKnownChildTags(tagName, tagStack, output);
                                    ! 	    }
                                    ! 
                                    ! 	    // otherwise, we assume there are no close tags required 
                                    ! 	    // before this open tag.
                                    ! 	    tagStack.push(tagName);
                                    ! 
                                    ! 	    output.append("<"+tagName+newAttributes+">");
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    output.append("<"+tagName+newAttributes+"/>");
                                    ! 	 }
                                    !       }
                                    !    }
                                    ! 
                                    !    private boolean processKnownChildTags(String tagName, Stack tagStack, StringBuffer output) {
                                    ! 
                                    !       TagInfo tagInfo = (TagInfo)tagInfoMap.get(tagName);
                                    !       if (null != tagInfo) {
                                    ! 
                                    ! 	 String parentTag = null;
                                    ! 	 for (Enumeration en = tagStack.elements(); en.hasMoreElements(); ) {
                                    ! 	    String tag = (String)en.nextElement();
                                    ! 	    if (tagInfo.isLegalParentTag(tag)) {
                                    ! 	       parentTag = tag;
                                    ! 	       break;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 if (parentTag != null) {
                                    ! 	    while (((String)tagStack.peek()) != parentTag) {
                                    ! 	       String poppedTagName = (String)tagStack.pop();
                                    ! 	       output.append("</"+poppedTagName+">");
                                    ! 	       printWarning("Inserting </"+poppedTagName+">");
                                    ! 	    }
                                    ! 	    return true;
                                    ! 	 }
                                    !       }
                                    !       return false;
                                    !    }
                                    ! 
                                    !    private void flush() {
                                    !       
                                    !       // close all pending tags
                                    !       while (!tagStack.isEmpty()) {
                                    ! 	 String tagName = (String)tagStack.pop();
                                    ! 	 printWarning("Inserting </"+tagName+">");
                                    ! 	 output.append("</"+tagName+">");
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Takes HTML fragment and returns a well-formed XHTML
                                    !     *  equivalent.
                                    !     *
                                    !     *  In the returned String, all tags are properly closed and
                                    !     *  nested.
                                    !     *
                                    !     *  Currently, the returned String is not guaranteed to be
                                    !     *  well-formed. In particular there are no checks on the tag
                                    !     *  names, attribute names and entity names.  
                                    !     */
                                    !    public String getWellformedHTML(String text) {
                                    ! 
                                    !       final int	STATE_INITIAL	      = 1;
                                    !       final int	STATE_TAG_START	      = 2;
                                    !       final int	STATE_TAG	      = 3;
                                    !       final int	STATE_TAG_DOUBLEQUOTE = 4;
                                    !       final int	STATE_TAG_SINGLEQUOTE = 5;
                                    !       final int	STATE_AMP	      = 6;
                                    ! 
                                    !       int state = STATE_INITIAL;
                                    !       output.setLength(0);
                                    ! 
                                    ! 
                                    !       StringBuffer buf = new StringBuffer();
                                    !       char[] textAsChars = text.toCharArray();
                                    !       
                                    !    outer_loop:
                                    !       for (int i=0, ilim=textAsChars.length+1; i<ilim; ++i) {
                                    ! 	 int c;
                                    ! 
                                    ! 	 if (i<textAsChars.length) {
                                    ! 	    c = textAsChars[i];
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    c = -1;
                                    ! 	 }
                                    ! 
                                    ! 	 switch (state) {
                                    ! 
                                    ! 	 case STATE_INITIAL:
                                    ! 	    if ('<'==c) {
                                    ! 	       state = STATE_TAG_START;
                                    ! 	       if (buf.length()>0) {
                                    ! 		  haveText(buf.toString());
                                    ! 		  buf.setLength(0);
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if ('>'==c) {
                                    ! 	       // assume this is a greater-than sign
                                    ! 	       buf.append(">");
                                    ! 	    }
                                    ! 	    else if ('&'==c) {
                                    ! 	       state = STATE_AMP;
                                    ! 	    }
                                    ! 	    else if (-1==c) {
                                    ! 	       if (buf.length()>0) {
                                    ! 		  haveText(buf.toString());
                                    ! 		  buf.setLength(0);
                                    ! 	       }
                                    ! 	       continue;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       buf.append((char)c);
                                    ! 	    }
                                    ! 	    break;
                                    ! 
                                    ! 	 case STATE_AMP:
                                    ! 	    if ('<'==c) {
                                    ! 	       buf.append("&");
                                    ! 	       state = STATE_TAG_START;
                                    ! 	       if (buf.length()>0) {
                                    ! 		  haveText(buf.toString());
                                    ! 		  buf.setLength(0);
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if ('>'==c) {
                                    ! 	       // assume this is a greater-than sign
                                    ! 	       buf.append("&");
                                    ! 	       buf.append(">");
                                    ! 	       state = STATE_INITIAL;
                                    ! 	    }
                                    ! 	    else if ('&'==c) {
                                    ! 	       buf.append("&");
                                    ! 	       buf.append("&");
                                    ! 	       state = STATE_INITIAL;
                                    ! 	    }
                                    ! 	    else if (-1==c) {
                                    ! 	       buf.append("&");
                                    ! 	       haveText(buf.toString());
                                    ! 	       buf.setLength(0);
                                    ! 	       state = STATE_INITIAL;
                                    ! 	       continue;
                                    ! 	    }
                                    !             else {
                                    !                // peek forward and see whether this is a valid entity.
                                    !                if ('#'==c) {
                                    !                   buf.append("&");
                                    !                   buf.append((char)c);
                                    !                   state = STATE_INITIAL;
                                    !                   continue outer_loop;
                                    !                }
                                    !                else if (Character.isLetter((char)c)) {
                                    !                   for (int i2=i+1; i2<ilim-1; i2++) {
                                    !                      if (';' == textAsChars[i2]) {
                                    !                         buf.append("&");
                                    !                         buf.append((char)c);
                                    !                         state = STATE_INITIAL;
                                    !                         continue outer_loop;
                                    !                      }
                                    !                      else if (!Character.isLetter((char)c)
                                    !                               && !Character.isDigit((char)c)
                                    !                               && ".-_:".indexOf((char)c) < 0
                                    !                               //&& !isCombiningChar(c)  // FIXME
                                    !                               //&& !isExtender(c)       // FIXME
                                    !                               ) {
                                    !                         break;
                                    !                      }
                                    !                   }
                                    !                   // not a valid entity declaration; assume &
                                    !                }
                                    !                buf.append("&");
                                    !                buf.append((char)c);
                                    !                state = STATE_INITIAL;                  
                                    !             }
                                    ! 
                                    !             /*
                                    ! 	    else if ('#'==c || Character.isLetter((char)c)) {
                                    ! 	       buf.append("&");
                                    ! 	       buf.append((char)c);
                                    ! 	       state = STATE_INITIAL;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       buf.append("&");
                                    ! 	       buf.append((char)c);
                                    ! 	       state = STATE_INITIAL;	       
                                    ! 	    }
                                    !             */
                                    ! 	    break;
                                    ! 	    
                                    ! 	 case STATE_TAG_START:
                                    ! 	    if (" \t\r\n".indexOf(c)>=0) {
                                    ! 	       //continue;
                                    ! 
                                    ! 	       // new: assume this is a less-sign
                                    ! 	       haveText("<"+c);
                                    ! 	       state = STATE_INITIAL;
                                    ! 	    }
                                    ! 	    else if ('/'==c) {
                                    ! 	       buf.append((char)c);
                                    ! 	       state = STATE_TAG;
                                    ! 	    }
                                    ! 	    else if ('<'==c) {
                                    ! 	       // assume this is a less-sign
                                    ! 	       haveText("<<");
                                    ! 	       state = STATE_INITIAL;	       
                                    ! 	    }
                                    ! 	    else if ('>'==c) {
                                    ! 	       // assume this is a less-sign
                                    ! 	       haveText("<>");
                                    ! 	       state = STATE_INITIAL;	       
                                    ! 	    }
                                    ! 	    //else if ('-'==c || '+'==c || '='==c || '\''==c || "0123456789".indexOf(c)>=0) {
                                    ! 	    else if (!Character.isLetter((char)c)) {
                                    ! 	       // assume this is a less-sign
                                    ! 	       haveText("<"+(char)c);
                                    ! 	       state = STATE_INITIAL;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       buf.append((char)c);
                                    ! 	       state = STATE_TAG;
                                    ! 	    }
                                    ! 	    break;
                                    ! 	    
                                    ! 	 case STATE_TAG:
                                    ! 	    if ('\"'==c) {
                                    ! 	       buf.append((char)c);
                                    ! 	       state = STATE_TAG_DOUBLEQUOTE;
                                    ! 	    }
                                    ! 	    else if ('\''==c) {
                                    ! 	       buf.append((char)c);
                                    ! 	       state = STATE_TAG_SINGLEQUOTE;
                                    ! 	    }
                                    ! 	    else if ('>'==c) {
                                    ! 	       state = STATE_INITIAL;
                                    ! 	       haveStartOrEndTag(buf.toString());
                                    ! 	       buf.setLength(0);
                                    ! 	    }
                                    ! 	    else if ('<'==c) {
                                    ! 	       // notify user, missing greater-than sign
                                    ! 	       haveStartOrEndTag(buf.toString());
                                    ! 	       buf.setLength(0);
                                    ! 	    }
                                    ! 	    else if (-1==c) {
                                    ! 	       printWarning("Unclosed tag at end-of-comment: <"+buf);
                                    ! 	       haveStartOrEndTag(buf.toString());
                                    ! 	       buf.setLength(0);
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       buf.append((char)c);
                                    ! 	    }
                                    ! 	    break;
                                    ! 
                                    ! 	 case STATE_TAG_DOUBLEQUOTE:
                                    ! 	    if ('\"'==c) {
                                    ! 	       buf.append((char)c);
                                    ! 	       state = STATE_TAG;
                                    ! 	    }
                                    ! 	    else if (-1==c) {
                                    ! 	       printWarning("Unclosed attribute value at end-of-comment.");
                                    ! 	       haveStartOrEndTag(buf.toString()+"\"");
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       buf.append((char)c);
                                    ! 	    }
                                    ! 	    break;
                                    ! 
                                    ! 	 case STATE_TAG_SINGLEQUOTE:
                                    ! 	    if ('\''==c) {
                                    ! 	       buf.append((char)c);
                                    ! 	       state = STATE_TAG;
                                    ! 	    }
                                    ! 	    else if (-1==c) {
                                    ! 	       printWarning("Unclosed attribute value at end-of-comment.");
                                    ! 	       haveStartOrEndTag(buf.toString()+"'");
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       buf.append((char)c);
                                    ! 	    }
                                    ! 	    break;
                                    ! 	 }
                                    !       }
                                    ! 
                                    !       return output.toString();
                                    !    }
                                    ! 
                                    !    private String getContext() {
                                    !       if (null != contextClass) {
                                    !          StringBuffer rc = new StringBuffer();
                                    !          rc.append(contextClass.qualifiedTypeName());
                                    !          if (null != contextMember) {
                                    !             rc.append("."+contextMember.toString());
                                    !          }
                                    !          return rc.toString();
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    private void printWarning(String msg) {
                                    !       if (null != warningReporter && !noWarn) {
                                    !          String context = getContext();
                                    !          if (null != context) {
                                    !             warningReporter.printWarning("In "+getContext()+": "+msg);
                                    !          }
                                    !          else {
                                    !             warningReporter.printWarning("In overview page: "+msg);
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    public String terminateText() {
                                    !       output.setLength(0);
                                    !       flush();
                                    !       return output.toString();
                                    !    }
                                    ! }
                                    ! 
                                    --- 1,690 ----
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.HtmlRepairer.java
                                    !    Copyright (C) 2003 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet;
                                    ! 
                                    ! import java.io.*;
                                    ! import java.util.*;
                                    ! import com.sun.javadoc.DocErrorReporter;
                                    ! import com.sun.javadoc.ClassDoc;
                                    ! import com.sun.javadoc.MemberDoc;
                                    ! 
                                    ! /**
                                    !  *  Provides methods for tidying up HTML source.
                                    !  *
                                    !  *  @author Julian Scheid
                                    !  */
                                    ! public final class HtmlRepairer {
                                    ! 
                                    !    private static class TagInfo {
                                    ! 
                                    !       private Set parentTags = new HashSet();
                                    ! 
                                    !       public TagInfo(String parentTag) {
                                    !          this.parentTags.add(parentTag);
                                    !       }
                                    ! 
                                    !       public TagInfo(String[] parentTagArr) {
                                    !          for (int i=0; i<parentTagArr.length; ++i) {
                                    !             this.parentTags.add(parentTagArr[i]);
                                    !          }
                                    !       }
                                    ! 
                                    !       public boolean isLegalParentTag(String tag) {
                                    !          return this.parentTags.contains(tag);
                                    !       }
                                    !    }
                                    ! 
                                    !    private DocErrorReporter warningReporter;
                                    !    private boolean noWarn;
                                    !    private boolean noEmailWarn;
                                    !    private ClassDoc contextClass;
                                    !    private MemberDoc contextMember;
                                    !    private StringBuffer output = new StringBuffer();
                                    !    private Stack tagStack = new Stack();
                                    !    private boolean isLeadingTag = true;
                                    !    private boolean throwAwayLeadingPara = false;
                                    ! 
                                    !    private static Map tagInfoMap;
                                    ! 
                                    !    private static Set noTextParentTags;
                                    ! 
                                    !    static {
                                    !       tagInfoMap = new HashMap();
                                    !       tagInfoMap.put("li", new TagInfo(new String[] { "ul", "ol", "nl", "menu", "dir" }));
                                    !       tagInfoMap.put("td", new TagInfo(new String[] { "tr" }));
                                    !       tagInfoMap.put("th", new TagInfo(new String[] { "tr" }));
                                    !       tagInfoMap.put("tr", new TagInfo(new String[] { "table" }));
                                    !       tagInfoMap.put("dt", new TagInfo(new String[] { "dl" }));
                                    !       tagInfoMap.put("dd", new TagInfo(new String[] { "dl" }));
                                    !       tagInfoMap.put("param", new TagInfo(new String[] { "applet" }));
                                    ! 
                                    !       String[] noTextParentTagArr = {
                                    !          "area", "base", "body", "br", "dd", "dt", "head", "hr", "html",
                                    !          "img", "input", "link", "map", "meta", "ol", "optgroup", "param",
                                    !          "select", "table", "tbody", "tfoot", "thead", "tr", "ul",
                                    !       };
                                    ! 
                                    !       noTextParentTags = new HashSet();
                                    !       for (int i=0; i<noTextParentTagArr.length; ++i) {
                                    !          noTextParentTags.add(noTextParentTagArr[i]);
                                    !       }
                                    !    }
                                    ! 
                                    !    public HtmlRepairer(DocErrorReporter warningReporter,
                                    !                        boolean noWarn, boolean noEmailWarn,
                                    !                        ClassDoc contextClass, MemberDoc contextMember,
                                    !                        boolean throwAwayLeadingPara) {
                                    !       this.warningReporter = warningReporter;
                                    !       this.noWarn = noWarn;
                                    !       this.noEmailWarn = noEmailWarn;
                                    !       this.contextClass = contextClass;
                                    !       this.contextMember = contextMember;
                                    !       this.throwAwayLeadingPara = throwAwayLeadingPara;
                                    !    }
                                    ! 
                                    !    private static String replaceStr(String haystack, String needle, String replacement) {
                                    !       int ndx=haystack.indexOf(needle);
                                    !       if (ndx<0)
                                    !          return haystack;
                                    !       else
                                    !          return haystack.substring(0, ndx)+replacement
                                    !             + replaceStr(haystack.substring(ndx+needle.length()), needle, replacement);
                                    !    }
                                    ! 
                                    !    private void haveText(String text) {
                                    ! 
                                    !       if (isLeadingTag && throwAwayLeadingPara) {
                                    !          if (0 != text.trim().length()) {
                                    !             isLeadingTag = false;
                                    !          }
                                    !       }
                                    ! 
                                    !       if (tagStack.isEmpty() || !noTextParentTags.contains(tagStack.peek())) {
                                    ! 
                                    !          text = replaceStr(text, "<1", "<1");
                                    !          text = replaceStr(text, "&&", "&&");
                                    !          text = replaceStr(text, "& ", "& ");
                                    !          text = replaceStr(text, "&\t", "&\t");
                                    !          text = replaceStr(text, "&\r", "&\r");
                                    !          text = replaceStr(text, "&\n", "&\n");
                                    !          for (char c='0'; c<='9'; ++c)
                                    !             text = replaceStr(text, "&"+c, "&"+c);
                                    !          text = replaceStr(text, "\u00a7", "§");
                                    !          output.append(text);
                                    !       }
                                    !       else {
                                    !          printWarning("Discarded text in <" + tagStack.peek() + "> element");
                                    !       }
                                    !    }
                                    ! 
                                    !    private void haveStartOrEndTag(String tag) {
                                    ! 
                                    !       boolean _isLeadingTag = isLeadingTag;
                                    !       isLeadingTag = false;
                                    ! 
                                    !       tag = tag.trim();
                                    ! 
                                    !       boolean isEndTag = tag.startsWith("/");
                                    !       boolean isAtomTag = tag.endsWith("/");
                                    ! 
                                    !       if (isEndTag && isAtomTag) {
                                    !          // got something like '</a/>' which is invalid.
                                    !          // suppose a close tag was intended.
                                    !          tag = tag.substring(0, tag.length()-1);
                                    !       }
                                    ! 
                                    !       if (tag.length() < 1) {
                                    !          printWarning("Deleting broken tag");
                                    !          return;
                                    !       }
                                    ! 
                                    !       String tagName = tag.substring(isEndTag?1:0, isAtomTag?tag.length()-1:tag.length());
                                    !       String tagAttributes = "";
                                    ! 
                                    !       for (int i=0; i<tagName.length(); ++i) {
                                    !          if (" \t\r\n".indexOf(tagName.charAt(i))>=0) {
                                    !             tagAttributes = tagName.substring(i).trim();
                                    !             tagName = tagName.substring(0, i);
                                    !             break;
                                    !          }
                                    !       }
                                    ! 
                                    !       if (!isEndTag && tagName.indexOf('@')>0) {
                                    !          if (!noEmailWarn) {
                                    !             printWarning("Tag looks like email address: <"+tagName+">");
                                    !          }
                                    !          output.append("<"+tag+">");
                                    !          return;
                                    !       }
                                    ! 
                                    !       tagName = tagName.toLowerCase();
                                    ! 
                                    !       if (_isLeadingTag && "p".equals(tagName) && !isEndTag && throwAwayLeadingPara) {
                                    !          return;
                                    !       }
                                    ! 
                                    !       if ("p".equals(tagName) || "br".equals(tagName) || "hr".equals(tagName)) {
                                    !          // throw away </p> and </br>
                                    !          if (isEndTag) {
                                    !             return;
                                    !          }
                                    !          // make sure every <p> is a <p/> and every <br> is a <br/>
                                    !          else if (!isAtomTag) {
                                    !             tag += "/";
                                    !             isAtomTag = true;
                                    !          }
                                    !       }
                                    ! 
                                    !       if (isEndTag) {
                                    ! 
                                    !          // check whether this close tag is on the stack
                                    !          // if yes, close all tags up to this tag
                                    !          if (tagStack.contains(tagName)) {
                                    !             String popped;
                                    !             do {
                                    !                popped = (String)tagStack.pop();
                                    !                if (!popped.equals(tagName))
                                    !                   printWarning("Inserting '</"+popped+">");
                                    !                output.append("</"+popped+">");
                                    !             }
                                    !             while (!popped.equals(tagName));
                                    !          }
                                    !          // if not, just throw it away
                                    !          else {
                                    !             printWarning("Deleting <"+tag+">");
                                    !          }
                                    !       }
                                    !       else {
                                    ! 
                                    !          final int STATE_INITIAL = 1;
                                    !          final int STATE_EXPECT_ATTRIBUTENAME = 2;
                                    !          final int STATE_UNQUOTED_ATTRIBUTEVALUE = 3;
                                    !          final int STATE_SINGLEQUOTE_ATTRIBUTEVALUE = 4;
                                    !          final int STATE_DOUBLEQUOTE_ATTRIBUTEVALUE = 5;
                                    !          final int STATE_EXPECT_ATTRIBUTEVALUE = 6;
                                    !          final int STATE_EXPECT_EQUALSIGN = 7;
                                    ! 
                                    !          int state = STATE_INITIAL;
                                    ! 
                                    !          String newAttributes = "";
                                    !          String attributeName = null;
                                    !          StringBuffer buf = new StringBuffer();
                                    ! 
                                    !          char[] attrsAsChars = tagAttributes.toCharArray();
                                    !          for (int i=0, ilim=attrsAsChars.length+1; i<ilim; ++i) {
                                    !             int c;
                                    !             if (i<attrsAsChars.length)
                                    !                c = (int)attrsAsChars[i];
                                    !             else
                                    !                c = -1;
                                    ! 
                                    !             switch (state) {
                                    ! 
                                    !             case STATE_INITIAL:
                                    !                if (" \t\r\n".indexOf(c)>=0){
                                    !                   continue;
                                    !                }
                                    !                else if (-1==c) {
                                    !                   continue;
                                    !                }
                                    !                else {
                                    !                   state = STATE_EXPECT_ATTRIBUTENAME;
                                    !                   buf.append((char)c);
                                    !                }
                                    !                break;
                                    ! 
                                    !             case STATE_EXPECT_ATTRIBUTENAME:
                                    !                if ('='==c) {
                                    !                   attributeName = buf.toString();
                                    !                   buf.setLength(0);
                                    !                   state = STATE_EXPECT_ATTRIBUTEVALUE;
                                    !                }
                                    !                else if (-1==c) {
                                    !                   attributeName = buf.toString();
                                    !                   buf.setLength(0);
                                    !                   printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");
                                    !                }
                                    !                else if (" \t\r\n".indexOf(c)>=0) {
                                    !                   state = STATE_EXPECT_EQUALSIGN;
                                    !                }
                                    !                else {
                                    !                   buf.append((char)c);
                                    !                }
                                    !                break;
                                    ! 
                                    !             case STATE_EXPECT_EQUALSIGN:
                                    !                if (" \t\r\n".indexOf(c)>=0){
                                    !                   continue;
                                    !                }
                                    !                else if ('='==c) {
                                    !                   state = STATE_EXPECT_ATTRIBUTEVALUE;
                                    !                   attributeName = buf.toString();
                                    !                   buf.setLength(0);
                                    !                }
                                    !                else {
                                    !                   attributeName = buf.toString();
                                    !                   buf.setLength(0);
                                    !                   printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");
                                    !                   newAttributes += " "+attributeName+"=\""+attributeName+"\"";
                                    !                   buf.append((char)c);
                                    !                   state = STATE_EXPECT_ATTRIBUTENAME;
                                    !                }
                                    !                break;
                                    ! 
                                    !             case STATE_EXPECT_ATTRIBUTEVALUE:
                                    !                if (" \t\r\n".indexOf(c)>=0){
                                    !                   continue;
                                    !                }
                                    !                else if ('\"'==c) {
                                    !                   state = STATE_DOUBLEQUOTE_ATTRIBUTEVALUE;
                                    !                }
                                    !                else if ('\''==c) {
                                    !                   state = STATE_SINGLEQUOTE_ATTRIBUTEVALUE;
                                    !                }
                                    !                else {
                                    !                   state = STATE_UNQUOTED_ATTRIBUTEVALUE;
                                    !                   buf.append((char)c);
                                    !                }
                                    !                break;
                                    ! 
                                    !             case STATE_UNQUOTED_ATTRIBUTEVALUE:
                                    !                if (-1==c || " \t\r\n".indexOf(c)>=0){
                                    !                   state = STATE_INITIAL;
                                    !                   newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
                                    !                   buf.setLength(0);
                                    !                }
                                    !                else {
                                    !                   buf.append((char)c);
                                    !                }
                                    !                break;
                                    ! 
                                    !             case STATE_SINGLEQUOTE_ATTRIBUTEVALUE:
                                    !                if ('\''==c) {
                                    !                   state = STATE_INITIAL;
                                    !                   newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
                                    !                   buf.setLength(0);
                                    !                }
                                    !                else {
                                    !                   buf.append((char)c);
                                    !                }
                                    !                break;
                                    ! 
                                    !             case STATE_DOUBLEQUOTE_ATTRIBUTEVALUE:
                                    !                if ('\"'==c) {
                                    !                   state = STATE_INITIAL;
                                    !                   newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
                                    !                   buf.setLength(0);
                                    !                }
                                    !                else {
                                    !                   buf.append((char)c);
                                    !                }
                                    !                break;
                                    !             }
                                    !          }
                                    ! 
                                    ! 
                                    !          if (!isAtomTag) {
                                    ! 
                                    !             // check whether this open tag is equal to the topmost
                                    !             // entry on the stack; if yes, emit a close tag first
                                    ! 
                                    !             // corrects stuff like '<tr><td>...<td>...');
                                    !             if (!tagStack.isEmpty() && tagStack.peek().equals(tagName)) {
                                    !                printWarning("Inserting </"+tagName+">");
                                    !                output.append("</"+tagName+">");
                                    !                tagStack.pop();
                                    !             }
                                    !             else {
                                    !                processKnownChildTags(tagName, tagStack, output);
                                    !             }
                                    ! 
                                    !             // otherwise, we assume there are no close tags required
                                    !             // before this open tag.
                                    !             tagStack.push(tagName);
                                    ! 
                                    !             output.append("<"+tagName+newAttributes+">");
                                    !          }
                                    !          else {
                                    !             output.append("<"+tagName+newAttributes+"/>");
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    private boolean processKnownChildTags(String tagName, Stack tagStack, StringBuffer output) {
                                    ! 
                                    !       TagInfo tagInfo = (TagInfo)tagInfoMap.get(tagName);
                                    !       if (null != tagInfo) {
                                    ! 
                                    !          String parentTag = null;
                                    !          for (Enumeration en = tagStack.elements(); en.hasMoreElements(); ) {
                                    !             String tag = (String)en.nextElement();
                                    !             if (tagInfo.isLegalParentTag(tag)) {
                                    !                parentTag = tag;
                                    !                break;
                                    !             }
                                    !          }
                                    !          if (parentTag != null) {
                                    !             while (((String)tagStack.peek()) != parentTag) {
                                    !                String poppedTagName = (String)tagStack.pop();
                                    !                output.append("</"+poppedTagName+">");
                                    !                printWarning("Inserting </"+poppedTagName+">");
                                    !             }
                                    !             return true;
                                    !          }
                                    !       }
                                    !       return false;
                                    !    }
                                    ! 
                                    !    private void flush() {
                                    ! 
                                    !       // close all pending tags
                                    !       while (!tagStack.isEmpty()) {
                                    !          String tagName = (String)tagStack.pop();
                                    !          printWarning("Inserting </"+tagName+">");
                                    !          output.append("</"+tagName+">");
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Takes HTML fragment and returns a well-formed XHTML
                                    !     *  equivalent.
                                    !     *
                                    !     *  In the returned String, all tags are properly closed and
                                    !     *  nested.
                                    !     *
                                    !     *  Currently, the returned String is not guaranteed to be
                                    !     *  well-formed. In particular there are no checks on the tag
                                    !     *  names, attribute names and entity names.
                                    !     */
                                    !    public String getWellformedHTML(String text) {
                                    ! 
                                    !       final int STATE_INITIAL         = 1;
                                    !       final int STATE_TAG_START       = 2;
                                    !       final int STATE_TAG             = 3;
                                    !       final int STATE_TAG_DOUBLEQUOTE = 4;
                                    !       final int STATE_TAG_SINGLEQUOTE = 5;
                                    !       final int STATE_AMP             = 6;
                                    ! 
                                    !       int state = STATE_INITIAL;
                                    !       output.setLength(0);
                                    ! 
                                    ! 
                                    !       StringBuffer buf = new StringBuffer();
                                    !       char[] textAsChars = text.toCharArray();
                                    ! 
                                    !    outer_loop:
                                    !       for (int i=0, ilim=textAsChars.length+1; i<ilim; ++i) {
                                    !          int c;
                                    ! 
                                    !          if (i<textAsChars.length) {
                                    !             c = textAsChars[i];
                                    !          }
                                    !          else {
                                    !             c = -1;
                                    !          }
                                    ! 
                                    !          switch (state) {
                                    ! 
                                    !          case STATE_INITIAL:
                                    !             if ('<'==c) {
                                    !                state = STATE_TAG_START;
                                    !                if (buf.length()>0) {
                                    !                   haveText(buf.toString());
                                    !                   buf.setLength(0);
                                    !                }
                                    !             }
                                    !             else if ('>'==c) {
                                    !                // assume this is a greater-than sign
                                    !                buf.append(">");
                                    !             }
                                    !             else if ('&'==c) {
                                    !                state = STATE_AMP;
                                    !             }
                                    !             else if (-1==c) {
                                    !                if (buf.length()>0) {
                                    !                   haveText(buf.toString());
                                    !                   buf.setLength(0);
                                    !                }
                                    !                continue;
                                    !             }
                                    !             else {
                                    !                buf.append((char)c);
                                    !             }
                                    !             break;
                                    ! 
                                    !          case STATE_AMP:
                                    !             if ('<'==c) {
                                    !                buf.append("&");
                                    !                state = STATE_TAG_START;
                                    !                if (buf.length()>0) {
                                    !                   haveText(buf.toString());
                                    !                   buf.setLength(0);
                                    !                }
                                    !             }
                                    !             else if ('>'==c) {
                                    !                // assume this is a greater-than sign
                                    !                buf.append("&");
                                    !                buf.append(">");
                                    !                state = STATE_INITIAL;
                                    !             }
                                    !             else if ('&'==c) {
                                    !                buf.append("&");
                                    !                buf.append("&");
                                    !                state = STATE_INITIAL;
                                    !             }
                                    !             else if (-1==c) {
                                    !                buf.append("&");
                                    !                haveText(buf.toString());
                                    !                buf.setLength(0);
                                    !                state = STATE_INITIAL;
                                    !                continue;
                                    !             }
                                    !             else {
                                    !                // peek forward and see whether this is a valid entity.
                                    !                if ('#'==c) {
                                    !                   buf.append("&");
                                    !                   buf.append((char)c);
                                    !                   state = STATE_INITIAL;
                                    !                   continue outer_loop;
                                    !                }
                                    !                else if (Character.isLetter((char)c)) {
                                    !                   for (int i2=i+1; i2<ilim-1; i2++) {
                                    !                      if (';' == textAsChars[i2]) {
                                    !                         buf.append("&");
                                    !                         buf.append((char)c);
                                    !                         state = STATE_INITIAL;
                                    !                         continue outer_loop;
                                    !                      }
                                    !                      else if (!Character.isLetter((char)c)
                                    !                               && !Character.isDigit((char)c)
                                    !                               && ".-_:".indexOf((char)c) < 0
                                    !                               //&& !isCombiningChar(c)  // FIXME
                                    !                               //&& !isExtender(c)       // FIXME
                                    !                               ) {
                                    !                         break;
                                    !                      }
                                    !                   }
                                    !                   // not a valid entity declaration; assume &
                                    !                }
                                    !                buf.append("&");
                                    !                buf.append((char)c);
                                    !                state = STATE_INITIAL;
                                    !             }
                                    ! 
                                    !             /*
                                    !             else if ('#'==c || Character.isLetter((char)c)) {
                                    !                buf.append("&");
                                    !                buf.append((char)c);
                                    !                state = STATE_INITIAL;
                                    !             }
                                    !             else {
                                    !                buf.append("&");
                                    !                buf.append((char)c);
                                    !                state = STATE_INITIAL;
                                    !             }
                                    !             */
                                    !             break;
                                    ! 
                                    !          case STATE_TAG_START:
                                    !             if (" \t\r\n".indexOf(c)>=0) {
                                    !                //continue;
                                    ! 
                                    !                // new: assume this is a less-sign
                                    !                haveText("<"+c);
                                    !                state = STATE_INITIAL;
                                    !             }
                                    !             else if ('/'==c) {
                                    !                buf.append((char)c);
                                    !                state = STATE_TAG;
                                    !             }
                                    !             else if ('<'==c) {
                                    !                // assume this is a less-sign
                                    !                haveText("<<");
                                    !                state = STATE_INITIAL;
                                    !             }
                                    !             else if ('>'==c) {
                                    !                // assume this is a less-sign
                                    !                haveText("<>");
                                    !                state = STATE_INITIAL;
                                    !             }
                                    !             //else if ('-'==c || '+'==c || '='==c || '\''==c || "0123456789".indexOf(c)>=0) {
                                    !             else if (!Character.isLetter((char)c)) {
                                    !                // assume this is a less-sign
                                    !                haveText("<"+(char)c);
                                    !                state = STATE_INITIAL;
                                    !             }
                                    !             else {
                                    !                buf.append((char)c);
                                    !                state = STATE_TAG;
                                    !             }
                                    !             break;
                                    ! 
                                    !          case STATE_TAG:
                                    !             if ('\"'==c) {
                                    !                buf.append((char)c);
                                    !                state = STATE_TAG_DOUBLEQUOTE;
                                    !             }
                                    !             else if ('\''==c) {
                                    !                buf.append((char)c);
                                    !                state = STATE_TAG_SINGLEQUOTE;
                                    !             }
                                    !             else if ('>'==c) {
                                    !                state = STATE_INITIAL;
                                    !                haveStartOrEndTag(buf.toString());
                                    !                buf.setLength(0);
                                    !             }
                                    !             else if ('<'==c) {
                                    !                // notify user, missing greater-than sign
                                    !                haveStartOrEndTag(buf.toString());
                                    !                buf.setLength(0);
                                    !             }
                                    !             else if (-1==c) {
                                    !                printWarning("Unclosed tag at end-of-comment: <"+buf);
                                    !                haveStartOrEndTag(buf.toString());
                                    !                buf.setLength(0);
                                    !             }
                                    !             else {
                                    !                buf.append((char)c);
                                    !             }
                                    !             break;
                                    ! 
                                    !          case STATE_TAG_DOUBLEQUOTE:
                                    !             if ('\"'==c) {
                                    !                buf.append((char)c);
                                    !                state = STATE_TAG;
                                    !             }
                                    !             else if (-1==c) {
                                    !                printWarning("Unclosed attribute value at end-of-comment.");
                                    !                haveStartOrEndTag(buf.toString()+"\"");
                                    !             }
                                    !             else {
                                    !                buf.append((char)c);
                                    !             }
                                    !             break;
                                    ! 
                                    !          case STATE_TAG_SINGLEQUOTE:
                                    !             if ('\''==c) {
                                    !                buf.append((char)c);
                                    !                state = STATE_TAG;
                                    !             }
                                    !             else if (-1==c) {
                                    !                printWarning("Unclosed attribute value at end-of-comment.");
                                    !                haveStartOrEndTag(buf.toString()+"'");
                                    !             }
                                    !             else {
                                    !                buf.append((char)c);
                                    !             }
                                    !             break;
                                    !          }
                                    !       }
                                    ! 
                                    !       return output.toString();
                                    !    }
                                    ! 
                                    !    private String getContext() {
                                    !       if (null != contextClass) {
                                    !          StringBuffer rc = new StringBuffer();
                                    !          rc.append(contextClass.qualifiedTypeName());
                                    !          if (null != contextMember) {
                                    !             rc.append("."+contextMember.toString());
                                    !          }
                                    !          return rc.toString();
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    private void printWarning(String msg) {
                                    !       if (null != warningReporter && !noWarn) {
                                    !          String context = getContext();
                                    !          if (null != context) {
                                    !             warningReporter.printWarning("In "+getContext()+": "+msg);
                                    !          }
                                    !          else {
                                    !             warningReporter.printWarning("In overview page: "+msg);
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    public String terminateText() {
                                    !       output.setLength(0);
                                    !       flush();
                                    !       return output.toString();
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,86 ****
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.TargetContext
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet;
                                    ! 
                                    ! import java.io.File;
                                    ! import java.io.InputStream;
                                    ! import java.io.OutputStream;
                                    ! import java.io.FileInputStream;
                                    ! import java.io.FileOutputStream;
                                    ! import java.io.IOException;
                                    ! 
                                    ! import java.net.URL;
                                    ! 
                                    ! import java.util.List;
                                    ! import java.util.Iterator;
                                    ! import java.util.Map;
                                    ! import java.util.HashMap;
                                    ! 
                                    ! import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
                                    ! 
                                    ! /**
                                    !  *  Stores any XSL transformation and postprocessing-specific
                                    !  *  information given by the user on the doclet command line.
                                    !  *
                                    !  *  @author Julian Scheid
                                    !  */
                                    ! public class TargetContext {
                                    ! 
                                    !    /**
                                    !     *  The DocTranslet to use for processing doclet output.
                                    !     */
                                    !    private DocTranslet docTranslet;
                                    ! 
                                    !    /**
                                    !     *  Directory to write final output to.
                                    !     */
                                    !    private File targetDirectory;
                                    ! 
                                    !    /**
                                    !     *  Directory where XSLT output will be written to. If an XSLT
                                    !     *  sheet was specified, but no postprocessing driver was given,
                                    !     *  this is the target directory specified by the user. Otherwise,
                                    !     *  this is a temporary directory.
                                    !     */
                                    !    private File xsltTargetDirectory;
                                    ! 
                                    ! 
                                    !    public TargetContext(DocTranslet docTranslet, File targetDirectory) {
                                    !       this.docTranslet = docTranslet;
                                    !       this.targetDirectory = targetDirectory;
                                    !    }
                                    ! 
                                    !    public File getTargetDirectory() {
                                    !       return targetDirectory;
                                    !    }
                                    ! 
                                    !    public void setTargetDirectory(File targetDirectory) {
                                    !       this.targetDirectory = targetDirectory;
                                    !    }
                                    ! 
                                    !    public DocTranslet getDocTranslet() {
                                    !       return docTranslet;
                                    !    }
                                    ! 
                                    !    public void setDocTranslet(DocTranslet docTranslet) {
                                    !       this.docTranslet = docTranslet;
                                    !    }
                                    ! }
                                    --- 1,103 ----
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.TargetContext
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet;
                                    ! 
                                    ! import java.io.File;
                                    ! import java.io.InputStream;
                                    ! import java.io.OutputStream;
                                    ! import java.io.FileInputStream;
                                    ! import java.io.FileOutputStream;
                                    ! import java.io.IOException;
                                    ! 
                                    ! import java.net.URL;
                                    ! 
                                    ! import java.util.List;
                                    ! import java.util.Iterator;
                                    ! import java.util.Map;
                                    ! import java.util.HashMap;
                                    ! 
                                    ! import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
                                    ! 
                                    ! /**
                                    !  *  Stores any XSL transformation and postprocessing-specific
                                    !  *  information given by the user on the doclet command line.
                                    !  *
                                    !  *  @author Julian Scheid
                                    !  */
                                    ! public class TargetContext {
                                    ! 
                                    !    /**
                                    !     *  The DocTranslet to use for processing doclet output.
                                    !     */
                                    !    private DocTranslet docTranslet;
                                    ! 
                                    !    /**
                                    !     *  Directory to write final output to.
                                    !     */
                                    !    private File targetDirectory;
                                    ! 
                                    !    /**
                                    !     *  Directory where XSLT output will be written to. If an XSLT
                                    !     *  sheet was specified, but no postprocessing driver was given,
                                    !     *  this is the target directory specified by the user. Otherwise,
                                    !     *  this is a temporary directory.
                                    !     */
                                    !    private File xsltTargetDirectory;
                                    ! 
                                    ! 
                                    !    public TargetContext(DocTranslet docTranslet, File targetDirectory) {
                                    !       this.docTranslet = docTranslet;
                                    !       this.targetDirectory = targetDirectory;
                                    !    }
                                    ! 
                                    !    public File getTargetDirectory() {
                                    !       return targetDirectory;
                                    !    }
                                    ! 
                                    !    public void setTargetDirectory(File targetDirectory) {
                                    !       this.targetDirectory = targetDirectory;
                                    !    }
                                    ! 
                                    !    public DocTranslet getDocTranslet() {
                                    !       return docTranslet;
                                    !    }
                                    ! 
                                    !    public void setDocTranslet(DocTranslet docTranslet) {
                                    !       this.docTranslet = docTranslet;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    *************** public class DocTranslet implements Erro
                                    *** 96,102 ****
                                         private ClassLoader classLoader;
                                         private Map transformerMap = new java.util.HashMap(); //WeakHashMap();
                                         private DocTransletOptions options;
                                    !    
                                         protected DocTranslet(String mainResourceFilename,
                                                               ClassLoader classLoader)
                                            throws DocTransletConfigurationException {
                                    --- 113,119 ----
                                         private ClassLoader classLoader;
                                         private Map transformerMap = new java.util.HashMap(); //WeakHashMap();
                                         private DocTransletOptions options;
                                    ! 
                                         protected DocTranslet(String mainResourceFilename,
                                                               ClassLoader classLoader)
                                            throws DocTransletConfigurationException {
                                    *************** public class DocTranslet implements Erro
                                    *** 138,151 ****
                                      
                                            try{
                                               URL mainResourceURL = classLoader == null ?
                                    ! 	     ClassLoader.getSystemResource(mainResourceFilename):
                                    ! 	     classLoader.getResource(mainResourceFilename);
                                      
                                               if (null == mainResourceURL) {
                                                  throw new DocTransletException("Cannot find resource '" + mainResourceFilename + "'");
                                               }
                                      
                                    !          
                                               Map parameters = new HashMap();
                                               parameters.put("gjdoc.xmldoclet.version", Driver.XMLDOCLET_VERSION);
                                      
                                    --- 155,168 ----
                                      
                                            try{
                                               URL mainResourceURL = classLoader == null ?
                                    !              ClassLoader.getSystemResource(mainResourceFilename):
                                    !              classLoader.getResource(mainResourceFilename);
                                      
                                               if (null == mainResourceURL) {
                                                  throw new DocTransletException("Cannot find resource '" + mainResourceFilename + "'");
                                               }
                                      
                                    ! 
                                               Map parameters = new HashMap();
                                               parameters.put("gjdoc.xmldoclet.version", Driver.XMLDOCLET_VERSION);
                                      
                                    *************** public class DocTranslet implements Erro
                                    *** 171,183 ****
                                                                                       parameters);
                                      
                                               reporter.printNotice("Running DocTranslet...");
                                    !             
                                    !          TransformerFactory transformerFactory 
                                                  = TransformerFactory.newInstance();
                                      
                                               transformerFactory.setErrorListener(this);
                                      
                                    !          boolean isLibxmlJ 
                                                  = transformerFactory.getClass().getName().equals("gnu.xml.libxmlj.transform.TransformerFactoryImpl");
                                      
                                               for (Iterator it = outputFileList.iterator(); it.hasNext(); ) {
                                    --- 188,200 ----
                                                                                       parameters);
                                      
                                               reporter.printNotice("Running DocTranslet...");
                                    ! 
                                    !          TransformerFactory transformerFactory
                                                  = TransformerFactory.newInstance();
                                      
                                               transformerFactory.setErrorListener(this);
                                      
                                    !          boolean isLibxmlJ
                                                  = transformerFactory.getClass().getName().equals("gnu.xml.libxmlj.transform.TransformerFactoryImpl");
                                      
                                               for (Iterator it = outputFileList.iterator(); it.hasNext(); ) {
                                    *************** public class DocTranslet implements Erro
                                    *** 217,223 ****
                                                  }
                                      
                                                  if (null != fileInfo.getSource()) {
                                    !             
                                                     reporter.printNotice("Copying " + fileInfo.getComment() + "...");
                                                     InputStream in = new URL(mainResourceURL, fileInfo.getSource()).openStream();
                                                     FileOutputStream out = new FileOutputStream(targetFile.getAbsolutePath());
                                    --- 234,240 ----
                                                  }
                                      
                                                  if (null != fileInfo.getSource()) {
                                    ! 
                                                     reporter.printNotice("Copying " + fileInfo.getComment() + "...");
                                                     InputStream in = new URL(mainResourceURL, fileInfo.getSource()).openStream();
                                                     FileOutputStream out = new FileOutputStream(targetFile.getAbsolutePath());
                                    *************** public class DocTranslet implements Erro
                                    *** 226,239 ****
                                                     out.close();
                                                  }
                                                  else {
                                    !             
                                                     reporter.printNotice("Generating " + fileInfo.getComment() + "...");
                                      
                                                     String pathToRoot = "";
                                                     for (File file = getParentFile(targetFile); !equalsFile(file, targetDirectory); file = getParentFile(file)) {
                                                        pathToRoot += "../";
                                                     }
                                    !             
                                                     StreamResult out = new StreamResult(targetFile.getAbsolutePath());
                                      
                                                     StreamSource in = new StreamSource(new File(xmlSourceDirectory, "index.xml").getAbsolutePath());
                                    --- 243,256 ----
                                                     out.close();
                                                  }
                                                  else {
                                    ! 
                                                     reporter.printNotice("Generating " + fileInfo.getComment() + "...");
                                      
                                                     String pathToRoot = "";
                                                     for (File file = getParentFile(targetFile); !equalsFile(file, targetDirectory); file = getParentFile(file)) {
                                                        pathToRoot += "../";
                                                     }
                                    ! 
                                                     StreamResult out = new StreamResult(targetFile.getAbsolutePath());
                                      
                                                     StreamSource in = new StreamSource(new File(xmlSourceDirectory, "index.xml").getAbsolutePath());
                                    *************** public class DocTranslet implements Erro
                                    *** 274,333 ****
                                               }
                                            }
                                            catch (MalformedURLException e) {
                                    ! 	 throw new DocTransletException(e);
                                            }
                                            catch (TransformerFactoryConfigurationError e) {
                                    ! 	 throw new DocTransletException(e);
                                            }
                                            catch (TransformerException e) {
                                    ! 	 throw new DocTransletException(e.getMessageAndLocation(), e);
                                            }
                                            catch (IOException e) {
                                    ! 	 throw new DocTransletException(e);
                                            }
                                            finally {
                                               System.setErr(err);
                                            }
                                         }
                                      
                                    !    private List getOutputFileList(URL resource, File xmlSourceDirectory, Map parameters) 
                                            throws DocTransletException {
                                      
                                            try {
                                    ! 	 List result;
                                      
                                    ! 	 OutputStream out = new ByteArrayOutputStream();
                                      
                                               DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
                                               DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
                                               Document document = documentBuilder.newDocument();
                                    !          DOMResult domResult = new DOMResult(document);         
                                               {
                                                  StreamSource source = new StreamSource(resource.toExternalForm());
                                    !             
                                                  TransformerFactory transformerFactory = TransformerFactory.newInstance();
                                                  Transformer transformer = (Transformer)transformerFactory.newTransformer(source);
                                    !             
                                                  transformer.clearParameters();
                                                  for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {
                                                     String key = (String)pit.next();
                                                     String value = (String)parameters.get(key);
                                                     transformer.setParameter(key, value);
                                                  }
                                    !             
                                    !             transformer.transform(new StreamSource(new File(xmlSourceDirectory, 
                                    !                                                             "index.xml").getAbsolutePath()), 
                                                                        domResult);
                                               }
                                      
                                    !          {	 
                                                  NodeList nodeList = document.getElementsByTagName("outputfile");
                                                  result = new ArrayList(nodeList.getLength());
                                      
                                                  for (int i=0; i<nodeList.getLength(); ++i) {
                                                     Element elem = (Element)nodeList.item(i);
                                                     String name    = getTextContent(elem.getElementsByTagName("name").item(0));
                                    !                String source  
                                                        = (null != elem.getElementsByTagName("source").item(0))
                                                        ? getTextContent(elem.getElementsByTagName("source").item(0))
                                                        : null;
                                    --- 291,350 ----
                                               }
                                            }
                                            catch (MalformedURLException e) {
                                    !          throw new DocTransletException(e);
                                            }
                                            catch (TransformerFactoryConfigurationError e) {
                                    !          throw new DocTransletException(e);
                                            }
                                            catch (TransformerException e) {
                                    !          throw new DocTransletException(e.getMessageAndLocation(), e);
                                            }
                                            catch (IOException e) {
                                    !          throw new DocTransletException(e);
                                            }
                                            finally {
                                               System.setErr(err);
                                            }
                                         }
                                      
                                    !    private List getOutputFileList(URL resource, File xmlSourceDirectory, Map parameters)
                                            throws DocTransletException {
                                      
                                            try {
                                    !          List result;
                                      
                                    !          OutputStream out = new ByteArrayOutputStream();
                                      
                                               DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
                                               DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
                                               Document document = documentBuilder.newDocument();
                                    !          DOMResult domResult = new DOMResult(document);
                                               {
                                                  StreamSource source = new StreamSource(resource.toExternalForm());
                                    ! 
                                                  TransformerFactory transformerFactory = TransformerFactory.newInstance();
                                                  Transformer transformer = (Transformer)transformerFactory.newTransformer(source);
                                    ! 
                                                  transformer.clearParameters();
                                                  for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {
                                                     String key = (String)pit.next();
                                                     String value = (String)parameters.get(key);
                                                     transformer.setParameter(key, value);
                                                  }
                                    ! 
                                    !             transformer.transform(new StreamSource(new File(xmlSourceDirectory,
                                    !                                                             "index.xml").getAbsolutePath()),
                                                                        domResult);
                                               }
                                      
                                    !          {
                                                  NodeList nodeList = document.getElementsByTagName("outputfile");
                                                  result = new ArrayList(nodeList.getLength());
                                      
                                                  for (int i=0; i<nodeList.getLength(); ++i) {
                                                     Element elem = (Element)nodeList.item(i);
                                                     String name    = getTextContent(elem.getElementsByTagName("name").item(0));
                                    !                String source
                                                        = (null != elem.getElementsByTagName("source").item(0))
                                                        ? getTextContent(elem.getElementsByTagName("source").item(0))
                                                        : null;
                                    *************** public class DocTranslet implements Erro
                                    *** 351,363 ****
                                               return result;
                                            }
                                            catch (TransformerFactoryConfigurationError e) {
                                    ! 	 throw new DocTransletException(e);
                                            }
                                            catch (TransformerException e) {
                                    ! 	 throw new DocTransletException(e.getMessageAndLocation(), e);
                                            }
                                            catch (ParserConfigurationException e) {
                                    ! 	 throw new DocTransletException(e);
                                            }
                                         }
                                      
                                    --- 368,380 ----
                                               return result;
                                            }
                                            catch (TransformerFactoryConfigurationError e) {
                                    !          throw new DocTransletException(e);
                                            }
                                            catch (TransformerException e) {
                                    !          throw new DocTransletException(e.getMessageAndLocation(), e);
                                            }
                                            catch (ParserConfigurationException e) {
                                    !          throw new DocTransletException(e);
                                            }
                                         }
                                      
                                    *************** public class DocTranslet implements Erro
                                    *** 382,417 ****
                                         }
                                      
                                      
                                    !    public static DocTranslet fromClasspath(String resourceName) 
                                            throws DocTransletConfigurationException {
                                      
                                    !       return new DocTranslet(resourceName, 
                                                                   DocTranslet.class.getClassLoader());
                                         }
                                      
                                    !    public static DocTranslet fromJarFile(File jarFile) 
                                            throws DocTransletConfigurationException {
                                      
                                            try {
                                               JarFile inputJarFile = new JarFile(jarFile, false, JarFile.OPEN_READ);
                                    !       
                                               Manifest manifest = inputJarFile.getManifest();
                                    !          
                                               if (null == manifest) {
                                    !          
                                                  throw new DocTransletConfigurationException("Jar file '" + jarFile + "' doesn't contain a manifest.");
                                               }
                                    !          
                                               Attributes mainAttributes = manifest.getMainAttributes();
                                    !       
                                               String docTransletMainEntry = mainAttributes.getValue("doctranslet-main-entry");
                                      
                                               if (null == docTransletMainEntry) {
                                    !             
                                                  throw new DocTransletConfigurationException("Manifest in Jar file '" + jarFile + "' doesn't contain a doctranslet-main-entry specification.");
                                               }
                                    !          
                                    !          return new DocTranslet(docTransletMainEntry, 
                                                                      new JarClassLoader(inputJarFile));
                                            }
                                            catch (IOException e) {
                                    --- 399,434 ----
                                         }
                                      
                                      
                                    !    public static DocTranslet fromClasspath(String resourceName)
                                            throws DocTransletConfigurationException {
                                      
                                    !       return new DocTranslet(resourceName,
                                                                   DocTranslet.class.getClassLoader());
                                         }
                                      
                                    !    public static DocTranslet fromJarFile(File jarFile)
                                            throws DocTransletConfigurationException {
                                      
                                            try {
                                               JarFile inputJarFile = new JarFile(jarFile, false, JarFile.OPEN_READ);
                                    ! 
                                               Manifest manifest = inputJarFile.getManifest();
                                    ! 
                                               if (null == manifest) {
                                    ! 
                                                  throw new DocTransletConfigurationException("Jar file '" + jarFile + "' doesn't contain a manifest.");
                                               }
                                    ! 
                                               Attributes mainAttributes = manifest.getMainAttributes();
                                    ! 
                                               String docTransletMainEntry = mainAttributes.getValue("doctranslet-main-entry");
                                      
                                               if (null == docTransletMainEntry) {
                                    ! 
                                                  throw new DocTransletConfigurationException("Manifest in Jar file '" + jarFile + "' doesn't contain a doctranslet-main-entry specification.");
                                               }
                                    ! 
                                    !          return new DocTranslet(docTransletMainEntry,
                                                                      new JarClassLoader(inputJarFile));
                                            }
                                            catch (IOException e) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                      
                                    *************** public class JarClassLoader extends Clas
                                    *** 42,65 ****
                                            return defineClass(name, b, 0, b.length);
                                         }
                                      
                                    !    private byte[] loadClassData(String className) 
                                    !       throws ClassNotFoundException 
                                         {
                                            String classFileName = className.replace('.', File.separatorChar) + ".class";
                                      
                                            try {
                                               JarEntry jarEntry = jarFile.getJarEntry(classFileName);
                                               if (null != jarEntry) {
                                    !             return readFromStream(jarFile.getInputStream(jarEntry), 
                                                                        jarEntry.getSize());
                                               }
                                            }
                                            catch (IOException ignore_) {
                                            }
                                            throw new ClassNotFoundException(className);
                                    !    }      
                                      
                                    !    private byte[] readFromStream(InputStream in, long size) 
                                            throws IOException
                                         {
                                            byte[] result = new byte[(int)size];
                                    --- 59,82 ----
                                            return defineClass(name, b, 0, b.length);
                                         }
                                      
                                    !    private byte[] loadClassData(String className)
                                    !       throws ClassNotFoundException
                                         {
                                            String classFileName = className.replace('.', File.separatorChar) + ".class";
                                      
                                            try {
                                               JarEntry jarEntry = jarFile.getJarEntry(classFileName);
                                               if (null != jarEntry) {
                                    !             return readFromStream(jarFile.getInputStream(jarEntry),
                                                                        jarEntry.getSize());
                                               }
                                            }
                                            catch (IOException ignore_) {
                                            }
                                            throw new ClassNotFoundException(className);
                                    !    }
                                      
                                    !    private byte[] readFromStream(InputStream in, long size)
                                            throws IOException
                                         {
                                            byte[] result = new byte[(int)size];
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,49 ****
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.doctranslet.OutputFileInfo
                                    !    Copyright (C) 2003 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                    ! 
                                    ! /**
                                    !  *  Holds information about a file to be generated by the DocTranslet.
                                    !  */
                                    ! public class OutputFileInfo {
                                    ! 
                                    !    private String name;
                                    !    private String source;
                                    !    private String sheet;
                                    !    private String comment;
                                    !    private String info;
                                    ! 
                                    !    public OutputFileInfo(String name, String source, String sheet, String comment, String info) {
                                    !       this.name = name;
                                    !       this.source = source;
                                    !       this.sheet = sheet;
                                    !       this.comment = comment;
                                    !       this.info = info;
                                    !    }
                                    ! 
                                    !    public String getName() { return name; }
                                    !    public String getSource() { return source; }
                                    !    public String getSheet() { return sheet; }
                                    !    public String getComment() { return comment; }
                                    !    public String getInfo() { return info; }
                                    ! 
                                    !    public String toString() { return "OutputFileInfo{name="+name+",source="+source+",sheet="+sheet+",comment="+comment+",info="+info+"}"; }
                                    ! }
                                    --- 1,66 ----
                                    ! /* gnu.classpath.tools.doclets.xmldoclet.doctranslet.OutputFileInfo
                                    !    Copyright (C) 2003 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
                                    ! 
                                    ! /**
                                    !  *  Holds information about a file to be generated by the DocTranslet.
                                    !  */
                                    ! public class OutputFileInfo {
                                    ! 
                                    !    private String name;
                                    !    private String source;
                                    !    private String sheet;
                                    !    private String comment;
                                    !    private String info;
                                    ! 
                                    !    public OutputFileInfo(String name, String source, String sheet, String comment, String info) {
                                    !       this.name = name;
                                    !       this.source = source;
                                    !       this.sheet = sheet;
                                    !       this.comment = comment;
                                    !       this.info = info;
                                    !    }
                                    ! 
                                    !    public String getName() { return name; }
                                    !    public String getSource() { return source; }
                                    !    public String getSheet() { return sheet; }
                                    !    public String getComment() { return comment; }
                                    !    public String getInfo() { return info; }
                                    ! 
                                    !    public String toString() { return "OutputFileInfo{name="+name+",source="+source+",sheet="+sheet+",comment="+comment+",info="+info+"}"; }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java	Fri Jun  9 16:07:07 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class FileArgumentCallba
                                    *** 54,60 ****
                                      
                                        /**
                                         * This is called when a file argument is seen.
                                    !    * 
                                         * @param fileArgument the file name
                                         */
                                        public abstract void notifyFile(String fileArgument)
                                    --- 54,60 ----
                                      
                                        /**
                                         * This is called when a file argument is seen.
                                    !    *
                                         * @param fileArgument the file name
                                         */
                                        public abstract void notifyFile(String fileArgument)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java	Tue Jan 11 19:46:05 2011
                                    *************** public abstract class Option
                                    *** 63,69 ****
                                      
                                        /**
                                         * Create a new option with the given short name and description.
                                    !    * 
                                         * @param shortName the short name
                                         * @param description the description
                                         */
                                    --- 63,69 ----
                                      
                                        /**
                                         * Create a new option with the given short name and description.
                                    !    *
                                         * @param shortName the short name
                                         * @param description the description
                                         */
                                    *************** public abstract class Option
                                    *** 77,83 ****
                                      
                                        /**
                                         * Create a new option with the given short name and description.
                                    !    * 
                                         * @param shortName the short name
                                         * @param description the description
                                         * @param argumentName the descriptive name of the argument, if this option
                                    --- 77,83 ----
                                      
                                        /**
                                         * Create a new option with the given short name and description.
                                    !    *
                                         * @param shortName the short name
                                         * @param description the description
                                         * @param argumentName the descriptive name of the argument, if this option
                                    *************** public abstract class Option
                                    *** 94,100 ****
                                      
                                        /**
                                         * Create a new option with the given short name and description.
                                    !    * 
                                         * @param shortName the short name
                                         * @param description the description
                                         * @param argumentName the descriptive name of the argument, if this option
                                    --- 94,100 ----
                                      
                                        /**
                                         * Create a new option with the given short name and description.
                                    !    *
                                         * @param shortName the short name
                                         * @param description the description
                                         * @param argumentName the descriptive name of the argument, if this option
                                    *************** public abstract class Option
                                    *** 115,121 ****
                                        /**
                                         * Create a new option with the given long name and description. The long name
                                         * should be specified without any leading dashes.
                                    !    * 
                                         * @param longName the long name
                                         * @param description the description
                                         */
                                    --- 115,121 ----
                                        /**
                                         * Create a new option with the given long name and description. The long name
                                         * should be specified without any leading dashes.
                                    !    *
                                         * @param longName the long name
                                         * @param description the description
                                         */
                                    *************** public abstract class Option
                                    *** 128,134 ****
                                        /**
                                         * Create a new option with the given long name and description. The long name
                                         * should be specified without any leading dashes.
                                    !    * 
                                         * @param longName the long name
                                         * @param description the description
                                         * @param argumentName the descriptive name of the argument, if this option
                                    --- 128,134 ----
                                        /**
                                         * Create a new option with the given long name and description. The long name
                                         * should be specified without any leading dashes.
                                    !    *
                                         * @param longName the long name
                                         * @param description the description
                                         * @param argumentName the descriptive name of the argument, if this option
                                    *************** public abstract class Option
                                    *** 144,150 ****
                                        /**
                                         * Create a new option with the given short and long names and description.
                                         * The long name should be specified without any leading dashes.
                                    !    * 
                                         * @param longName the long name
                                         * @param shortName the short name
                                         * @param description the description
                                    --- 144,150 ----
                                        /**
                                         * Create a new option with the given short and long names and description.
                                         * The long name should be specified without any leading dashes.
                                    !    *
                                         * @param longName the long name
                                         * @param shortName the short name
                                         * @param description the description
                                    *************** public abstract class Option
                                    *** 161,167 ****
                                        /**
                                         * Create a new option with the given short and long names and description.
                                         * The long name should be specified without any leading dashes.
                                    !    * 
                                         * @param longName the long name
                                         * @param shortName the short name
                                         * @param description the description
                                    --- 161,167 ----
                                        /**
                                         * Create a new option with the given short and long names and description.
                                         * The long name should be specified without any leading dashes.
                                    !    *
                                         * @param longName the long name
                                         * @param shortName the short name
                                         * @param description the description
                                    *************** public abstract class Option
                                    *** 182,188 ****
                                        /**
                                         * Create a new option with the given short and long names and description.
                                         * The long name should be specified without any leading dashes.
                                    !    * 
                                         * @param longName the long name
                                         * @param shortName the short name
                                         * @param description the description
                                    --- 182,188 ----
                                        /**
                                         * Create a new option with the given short and long names and description.
                                         * The long name should be specified without any leading dashes.
                                    !    *
                                         * @param longName the long name
                                         * @param shortName the short name
                                         * @param description the description
                                    *************** public abstract class Option
                                    *** 258,264 ****
                                         * called multiple times during a single parse. If this option takes an
                                         * argument, the argument will be passed in. Otherwise the argument will be
                                         * null.
                                    !    * 
                                         * @param argument the argument
                                         * @throws OptionException if the option or its argument is somehow invalid
                                         */
                                    --- 258,264 ----
                                         * called multiple times during a single parse. If this option takes an
                                         * argument, the argument will be passed in. Otherwise the argument will be
                                         * null.
                                    !    *
                                         * @param argument the argument
                                         * @throws OptionException if the option or its argument is somehow invalid
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java	Tue Jan 11 19:46:05 2011
                                    *************** public class OptionGroup
                                    *** 66,72 ****
                                      
                                        /**
                                         * Create a new option group with the indicated name.
                                    !    * 
                                         * @param name the name
                                         */
                                        public OptionGroup(String name)
                                    --- 66,72 ----
                                      
                                        /**
                                         * Create a new option group with the indicated name.
                                    !    *
                                         * @param name the name
                                         */
                                        public OptionGroup(String name)
                                    *************** public class OptionGroup
                                    *** 82,88 ****
                                         * <p>
                                         * The text to print may contain <code>\n</code> characters. This method will
                                         * force a line-break for each such character.
                                    !    * 
                                         * @param out the {@link PrintStream} destination of the formatted text.
                                         * @param text the text to print.
                                         * @param leftMargin a positive value indicating the column position of the
                                    --- 82,88 ----
                                         * <p>
                                         * The text to print may contain <code>\n</code> characters. This method will
                                         * force a line-break for each such character.
                                    !    *
                                         * @param out the {@link PrintStream} destination of the formatted text.
                                         * @param text the text to print.
                                         * @param leftMargin a positive value indicating the column position of the
                                    *************** public class OptionGroup
                                    *** 107,113 ****
                                         * <p>
                                         * The text to print may contain <code>\n</code> characters. This method will
                                         * force a line-break for each such character.
                                    !    * 
                                         * @param out the {@link PrintStream} destination of the formatted text.
                                         * @param text the text to print.
                                         * @param leftMargin a positive value indicating the column position of the
                                    --- 107,113 ----
                                         * <p>
                                         * The text to print may contain <code>\n</code> characters. This method will
                                         * force a line-break for each such character.
                                    !    *
                                         * @param out the {@link PrintStream} destination of the formatted text.
                                         * @param text the text to print.
                                         * @param leftMargin a positive value indicating the column position of the
                                    *************** public class OptionGroup
                                    *** 155,161 ****
                                      
                                        /**
                                         * Add an option to this option group.
                                    !    * 
                                         * @param opt the option to add
                                         */
                                        public void add(Option opt)
                                    --- 155,161 ----
                                      
                                        /**
                                         * Add an option to this option group.
                                    !    *
                                         * @param opt the option to add
                                         */
                                        public void add(Option opt)
                                    *************** public class OptionGroup
                                    *** 165,171 ****
                                      
                                        /**
                                         * Print the help output for this option group.
                                    !    * 
                                         * @param out the stream to which to print
                                         */
                                        public void printHelp(PrintStream out, boolean longOnly)
                                    --- 165,171 ----
                                      
                                        /**
                                         * Print the help output for this option group.
                                    !    *
                                         * @param out the stream to which to print
                                         */
                                        public void printHelp(PrintStream out, boolean longOnly)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Parser
                                    *** 84,90 ****
                                        /**
                                         * Create a new parser. The program name is used when printing error messages.
                                         * The version string is printed verbatim in response to "--version".
                                    !    * 
                                         * @param programName the name of the program
                                         * @param versionString the program's version information
                                         */
                                    --- 84,90 ----
                                        /**
                                         * Create a new parser. The program name is used when printing error messages.
                                         * The version string is printed verbatim in response to "--version".
                                    !    *
                                         * @param programName the name of the program
                                         * @param versionString the program's version information
                                         */
                                    *************** public class Parser
                                    *** 101,107 ****
                                         * <p>
                                         * The text to print may contain <code>\n</code> characters. This method will
                                         * force a line-break for each such character.
                                    !    * 
                                         * @param out the {@link PrintStream} destination of the formatted text.
                                         * @param text the text to print.
                                         * @see Parser#MAX_LINE_LENGTH
                                    --- 101,107 ----
                                         * <p>
                                         * The text to print may contain <code>\n</code> characters. This method will
                                         * force a line-break for each such character.
                                    !    *
                                         * @param out the {@link PrintStream} destination of the formatted text.
                                         * @param text the text to print.
                                         * @see Parser#MAX_LINE_LENGTH
                                    *************** public class Parser
                                    *** 122,128 ****
                                         * <p>
                                         * The text to print may contain <code>\n</code> characters. This method will
                                         * force a line-break for each such character.
                                    !    * 
                                         * @param out the {@link PrintStream} destination of the formatted text.
                                         * @param text the text to print.
                                         * @param aLocale the {@link Locale} instance to use when constructing the
                                    --- 122,128 ----
                                         * <p>
                                         * The text to print may contain <code>\n</code> characters. This method will
                                         * force a line-break for each such character.
                                    !    *
                                         * @param out the {@link PrintStream} destination of the formatted text.
                                         * @param text the text to print.
                                         * @param aLocale the {@link Locale} instance to use when constructing the
                                    *************** public class Parser
                                    *** 159,165 ****
                                        /**
                                         * Create a new parser. The program name is used when printing error messages.
                                         * The version string is printed verbatim in response to "--version".
                                    !    * 
                                         * @param programName the name of the program
                                         * @param versionString the program's version information
                                         * @param longOnly true if the parser should work in long-option-only mode
                                    --- 159,165 ----
                                        /**
                                         * Create a new parser. The program name is used when printing error messages.
                                         * The version string is printed verbatim in response to "--version".
                                    !    *
                                         * @param programName the name of the program
                                         * @param versionString the program's version information
                                         * @param longOnly true if the parser should work in long-option-only mode
                                    *************** public class Parser
                                    *** 194,200 ****
                                      
                                        /**
                                         * Set the header text that is printed by --help.
                                    !    * 
                                         * @param headerText the header text
                                         */
                                        public synchronized void setHeader(String headerText)
                                    --- 194,200 ----
                                      
                                        /**
                                         * Set the header text that is printed by --help.
                                    !    *
                                         * @param headerText the header text
                                         */
                                        public synchronized void setHeader(String headerText)
                                    *************** public class Parser
                                    *** 204,210 ****
                                      
                                        /**
                                         * Set the footer text that is printed by --help.
                                    !    * 
                                         * @param footerText the footer text
                                         */
                                        public synchronized void setFooter(String footerText)
                                    --- 204,210 ----
                                      
                                        /**
                                         * Set the footer text that is printed by --help.
                                    !    *
                                         * @param footerText the footer text
                                         */
                                        public synchronized void setFooter(String footerText)
                                    *************** public class Parser
                                    *** 215,221 ****
                                        /**
                                         * Add an option to this parser. The option is added to the default option
                                         * group; this affects where it is placed in the help output.
                                    !    * 
                                         * @param opt the option
                                         */
                                        public synchronized void add(Option opt)
                                    --- 215,221 ----
                                        /**
                                         * Add an option to this parser. The option is added to the default option
                                         * group; this affects where it is placed in the help output.
                                    !    *
                                         * @param opt the option
                                         */
                                        public synchronized void add(Option opt)
                                    *************** public class Parser
                                    *** 237,243 ****
                                        /**
                                         * Add an option group to this parser. All the options in this group will be
                                         * recognized by the parser.
                                    !    * 
                                         * @param group the option group
                                         */
                                        public synchronized void add(OptionGroup group)
                                    --- 237,243 ----
                                        /**
                                         * Add an option group to this parser. All the options in this group will be
                                         * recognized by the parser.
                                    !    *
                                         * @param group the option group
                                         */
                                        public synchronized void add(OptionGroup group)
                                    *************** public class Parser
                                    *** 259,266 ****
                                          Iterator it = optionGroups.iterator();
                                          while (it.hasNext())
                                            {
                                    ! 	OptionGroup group = (OptionGroup) it.next();
                                    ! 	options.addAll(group.options);
                                            }
                                        }
                                      
                                    --- 259,266 ----
                                          Iterator it = optionGroups.iterator();
                                          while (it.hasNext())
                                            {
                                    !         OptionGroup group = (OptionGroup) it.next();
                                    !         options.addAll(group.options);
                                            }
                                        }
                                      
                                    *************** public class Parser
                                    *** 308,314 ****
                                         * user to the <code>--help</code> option.
                                         * <p>
                                         * The base implementation does nothing.
                                    !    * 
                                         * @throws OptionException the error encountered
                                         */
                                        protected void validate() throws OptionException
                                    --- 308,314 ----
                                         * user to the <code>--help</code> option.
                                         * <p>
                                         * The base implementation does nothing.
                                    !    *
                                         * @throws OptionException the error encountered
                                         */
                                        protected void validate() throws OptionException
                                    *************** public class Parser
                                    *** 426,432 ****
                                         * Parse a command line. Any files which are found will be passed to the file
                                         * argument callback. This method will exit on error or when --help or
                                         * --version is specified.
                                    !    * 
                                         * @param inArgs the command-line arguments
                                         * @param files the file argument callback
                                         */
                                    --- 426,432 ----
                                         * Parse a command line. Any files which are found will be passed to the file
                                         * argument callback. This method will exit on error or when --help or
                                         * --version is specified.
                                    !    *
                                         * @param inArgs the command-line arguments
                                         * @param files the file argument callback
                                         */
                                    *************** public class Parser
                                    *** 477,483 ****
                                        /**
                                         * Parse a command line. Any files which are found will be returned. This
                                         * method will exit on error or when --help or --version is specified.
                                    !    * 
                                         * @param inArgs the command-line arguments
                                         */
                                        public String[] parse(String[] inArgs)
                                    --- 477,483 ----
                                        /**
                                         * Parse a command line. Any files which are found will be returned. This
                                         * method will exit on error or when --help or --version is specified.
                                    !    *
                                         * @param inArgs the command-line arguments
                                         */
                                        public String[] parse(String[] inArgs)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,31 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                      import com.sun.javadoc.*;
                                      import java.util.*;
                                      
                                    ! public abstract class AbstractTagImpl 
                                         implements Tag, TagContainer {
                                    !    
                                         private static final Tag[] emptyTags = new Tag[0];
                                      
                                         protected String text;
                                    --- 16,48 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                      import com.sun.javadoc.*;
                                      import java.util.*;
                                      
                                    ! public abstract class AbstractTagImpl
                                         implements Tag, TagContainer {
                                    ! 
                                         private static final Tag[] emptyTags = new Tag[0];
                                      
                                         protected String text;
                                    *************** public abstract class AbstractTagImpl 
                                    *** 49,67 ****
                                      
                                         protected void setBody(String body, ClassDocImpl contextClass, MemberDocImpl contextMember) {
                                            this.tagMap=DocImpl.parseCommentTags(body.toCharArray(),
                                    ! 					   0,
                                    ! 					   body.length(),
                                    ! 					   contextClass,
                                                                                 contextMember,
                                                                                 this,
                                                                                 null);
                                         }
                                      
                                    !    public Tag[] firstSentenceTags() { 
                                    !       return (tagMap!=null)? (Tag[])tagMap.get("first") : emptyTags; 
                                         }
                                    !    public Tag[] inlineTags() { 
                                    !       return (tagMap!=null)? (Tag[])tagMap.get("inline") : emptyTags; 
                                         }
                                      
                                         public String name() {
                                    --- 66,84 ----
                                      
                                         protected void setBody(String body, ClassDocImpl contextClass, MemberDocImpl contextMember) {
                                            this.tagMap=DocImpl.parseCommentTags(body.toCharArray(),
                                    !                                            0,
                                    !                                            body.length(),
                                    !                                            contextClass,
                                                                                 contextMember,
                                                                                 this,
                                                                                 null);
                                         }
                                      
                                    !    public Tag[] firstSentenceTags() {
                                    !       return (tagMap!=null)? (Tag[])tagMap.get("first") : emptyTags;
                                         }
                                    !    public Tag[] inlineTags() {
                                    !       return (tagMap!=null)? (Tag[])tagMap.get("inline") : emptyTags;
                                         }
                                      
                                         public String name() {
                                    *************** public abstract class AbstractTagImpl 
                                    *** 72,79 ****
                                            return text;
                                         }
                                      
                                    !    public Map getTagMap() { 
                                    !       return tagMap; 
                                         }
                                      
                                         /**
                                    --- 89,96 ----
                                            return text;
                                         }
                                      
                                    !    public Map getTagMap() {
                                    !       return tagMap;
                                         }
                                      
                                         /**
                                    *************** public abstract class AbstractTagImpl 
                                    *** 82,90 ****
                                         public String toString()
                                         {
                                           return (this.getClass().getName()
                                    ! 	     + "[name=" + name()
                                    ! 	     + ", text=" + text()
                                    ! 	     + ", tagMap=" + getTagMap()
                                    ! 	     + "]");
                                         }
                                      }
                                    --- 99,107 ----
                                         public String toString()
                                         {
                                           return (this.getClass().getName()
                                    !              + "[name=" + name()
                                    !              + ", text=" + text()
                                    !              + ", tagMap=" + getTagMap()
                                    !              + "]");
                                         }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public final class ArrayCharacterIterato
                                    *** 30,101 ****
                                         private int currentIndex;
                                      
                                         public ArrayCharacterIterator(char[] data,
                                    ! 				 int beginIndex) {
                                            this(data,beginIndex,data.length,beginIndex);
                                         }
                                      
                                         public ArrayCharacterIterator(char[] data,
                                    ! 				 int beginIndex,
                                    ! 				 int endIndex) {
                                            this(data,beginIndex,endIndex,beginIndex);
                                         }
                                      
                                         public ArrayCharacterIterator(char[] data,
                                    ! 				 int beginIndex,
                                    ! 				 int endIndex,
                                    ! 				 int currentIndex) {
                                            this.data=data;
                                            this.beginIndex=beginIndex;
                                            this.endIndex=endIndex;
                                            this.currentIndex=currentIndex;
                                         }
                                      
                                    !    // Create a copy of this iterator 
                                         public Object clone() {
                                            return new ArrayCharacterIterator(data,beginIndex,endIndex,currentIndex);
                                         }
                                      
                                    !    // Gets the character at the current position (as returned by getIndex()). 
                                         public char current() {
                                            return (currentIndex>=beginIndex && currentIndex<endIndex) ? data[currentIndex] : DONE;
                                         }
                                      
                                    !    // Sets the position to getBeginIndex() and returns the character at that position. 
                                         public char first() {
                                            return data[currentIndex=beginIndex];
                                         }
                                      
                                    !    // Returns the start index of the text. 
                                         public int getBeginIndex() {
                                            return beginIndex;
                                         }
                                      
                                    !    // Returns the end index of the text. 
                                         public int getEndIndex() {
                                            return endIndex;
                                         }
                                      
                                    !    // Returns the current index. 
                                         public int getIndex() {
                                            return currentIndex;
                                         }
                                      
                                    !    // Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position. 
                                         public char last() {
                                            return data[currentIndex=((endIndex>beginIndex)?endIndex-1:endIndex)];
                                         }
                                      
                                    !    // Increments the iterator's index by one and returns the character at the new index. 
                                         public char next() {
                                            return (++currentIndex<endIndex)?data[currentIndex]:DONE;
                                         }
                                      
                                    !    // Decrements the iterator's index by one and returns the character at the new index. 
                                         public char previous() {
                                            return (--currentIndex>=beginIndex)?data[currentIndex]:DONE;
                                         }
                                      
                                    !    // Sets the position to the specified position in the text and returns that character. 
                                         public char setIndex(int position) {
                                            this.currentIndex=position;
                                            return current();
                                    --- 47,118 ----
                                         private int currentIndex;
                                      
                                         public ArrayCharacterIterator(char[] data,
                                    !                                  int beginIndex) {
                                            this(data,beginIndex,data.length,beginIndex);
                                         }
                                      
                                         public ArrayCharacterIterator(char[] data,
                                    !                                  int beginIndex,
                                    !                                  int endIndex) {
                                            this(data,beginIndex,endIndex,beginIndex);
                                         }
                                      
                                         public ArrayCharacterIterator(char[] data,
                                    !                                  int beginIndex,
                                    !                                  int endIndex,
                                    !                                  int currentIndex) {
                                            this.data=data;
                                            this.beginIndex=beginIndex;
                                            this.endIndex=endIndex;
                                            this.currentIndex=currentIndex;
                                         }
                                      
                                    !    // Create a copy of this iterator
                                         public Object clone() {
                                            return new ArrayCharacterIterator(data,beginIndex,endIndex,currentIndex);
                                         }
                                      
                                    !    // Gets the character at the current position (as returned by getIndex()).
                                         public char current() {
                                            return (currentIndex>=beginIndex && currentIndex<endIndex) ? data[currentIndex] : DONE;
                                         }
                                      
                                    !    // Sets the position to getBeginIndex() and returns the character at that position.
                                         public char first() {
                                            return data[currentIndex=beginIndex];
                                         }
                                      
                                    !    // Returns the start index of the text.
                                         public int getBeginIndex() {
                                            return beginIndex;
                                         }
                                      
                                    !    // Returns the end index of the text.
                                         public int getEndIndex() {
                                            return endIndex;
                                         }
                                      
                                    !    // Returns the current index.
                                         public int getIndex() {
                                            return currentIndex;
                                         }
                                      
                                    !    // Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position.
                                         public char last() {
                                            return data[currentIndex=((endIndex>beginIndex)?endIndex-1:endIndex)];
                                         }
                                      
                                    !    // Increments the iterator's index by one and returns the character at the new index.
                                         public char next() {
                                            return (++currentIndex<endIndex)?data[currentIndex]:DONE;
                                         }
                                      
                                    !    // Decrements the iterator's index by one and returns the character at the new index.
                                         public char previous() {
                                            return (--currentIndex>=beginIndex)?data[currentIndex]:DONE;
                                         }
                                      
                                    !    // Sets the position to the specified position in the text and returns that character.
                                         public char setIndex(int position) {
                                            this.currentIndex=position;
                                            return current();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import gnu.classpath.tools.gjdoc.expr.Il
                                    *** 29,35 ****
                                      import gnu.classpath.tools.gjdoc.expr.UnknownIdentifierException;
                                      
                                      public class ClassDocImpl
                                    !    extends ProgramElementDocImpl 
                                         implements ClassDoc, WritableType, EvaluatorEnvironment {
                                      
                                         private ClassDoc baseClassDoc;
                                    --- 46,52 ----
                                      import gnu.classpath.tools.gjdoc.expr.UnknownIdentifierException;
                                      
                                      public class ClassDocImpl
                                    !    extends ProgramElementDocImpl
                                         implements ClassDoc, WritableType, EvaluatorEnvironment {
                                      
                                         private ClassDoc baseClassDoc;
                                    *************** public class ClassDocImpl
                                    *** 41,50 ****
                                         private String dimension = "";
                                      
                                         public ClassDocImpl(ClassDoc containingClass,
                                    ! 		       PackageDoc containingPackage,
                                    ! 		       int accessLevel,
                                    ! 		       boolean isFinal,
                                    ! 		       boolean isStatic,
                                                             SourcePosition position) {
                                            super(containingClass, containingPackage, accessLevel, isFinal, isStatic,
                                                  position);
                                    --- 58,67 ----
                                         private String dimension = "";
                                      
                                         public ClassDocImpl(ClassDoc containingClass,
                                    !                        PackageDoc containingPackage,
                                    !                        int accessLevel,
                                    !                        boolean isFinal,
                                    !                        boolean isStatic,
                                                             SourcePosition position) {
                                            super(containingClass, containingPackage, accessLevel, isFinal, isStatic,
                                                  position);
                                    *************** public class ClassDocImpl
                                    *** 52,90 ****
                                         }
                                      
                                         public ClassDocImpl(ClassDoc containingClass,
                                    ! 		       PackageDoc containingPackage,
                                    ! 		       ClassDoc[] importedClasses,
                                    ! 		       PackageDoc[] importedPackages,
                                                             SourcePosition position) {
                                            super(containingClass, containingPackage,
                                                  position);
                                            this.importedClasses=importedClasses;
                                            this.importedPackages=importedPackages;
                                            this.baseClassDoc = this;
                                    !    }   
                                      
                                    !    // Return constructors in class. 
                                         public ConstructorDoc[] constructors() {
                                            return constructors(true);
                                    !    } 
                                      
                                         public ConstructorDoc[] constructors(boolean filter) {
                                            return filter ? filteredConstructors : unfilteredConstructors;
                                    !    } 
                                      
                                    !    // Return true if Serializable fields are explicitly defined with the special class member serialPersistentFields. 
                                         public boolean definesSerializableFields() {
                                            return definesSerializableFields;
                                    !    } 
                                      
                                    !    // Return fields in class. 
                                         public FieldDoc[] fields() {
                                            return fields(true);
                                    !    } 
                                      
                                         public FieldDoc[] fields(boolean filter) {
                                            return filter ? filteredFields : unfilteredFields;
                                    !    } 
                                      
                                         private static Set primitiveNames;
                                         static {
                                    --- 69,107 ----
                                         }
                                      
                                         public ClassDocImpl(ClassDoc containingClass,
                                    !                        PackageDoc containingPackage,
                                    !                        ClassDoc[] importedClasses,
                                    !                        PackageDoc[] importedPackages,
                                                             SourcePosition position) {
                                            super(containingClass, containingPackage,
                                                  position);
                                            this.importedClasses=importedClasses;
                                            this.importedPackages=importedPackages;
                                            this.baseClassDoc = this;
                                    !    }
                                      
                                    !    // Return constructors in class.
                                         public ConstructorDoc[] constructors() {
                                            return constructors(true);
                                    !    }
                                      
                                         public ConstructorDoc[] constructors(boolean filter) {
                                            return filter ? filteredConstructors : unfilteredConstructors;
                                    !    }
                                      
                                    !    // Return true if Serializable fields are explicitly defined with the special class member serialPersistentFields.
                                         public boolean definesSerializableFields() {
                                            return definesSerializableFields;
                                    !    }
                                      
                                    !    // Return fields in class.
                                         public FieldDoc[] fields() {
                                            return fields(true);
                                    !    }
                                      
                                         public FieldDoc[] fields(boolean filter) {
                                            return filter ? filteredFields : unfilteredFields;
                                    !    }
                                      
                                         private static Set primitiveNames;
                                         static {
                                    *************** public class ClassDocImpl
                                    *** 132,146 ****
                                            }
                                         }
                                      
                                    !    public ClassDoc findClass(String className) 
                                         {
                                            String qualifiedName = Main.getRootDoc().resolveClassName(className, this);
                                            ClassDoc rc=Main.getRootDoc().classNamed(qualifiedName);
                                      
                                    !       if (null == rc) { 
                                               for (ClassDoc cdi=this; cdi!=null; cdi=cdi.containingClass()) {
                                                  for (ClassDoc sdi=cdi; sdi!=null; sdi=sdi.superclass()) {
                                    !                if (sdi instanceof ClassDocProxy) { 
                                                        ClassDoc realClass = Main.getRootDoc().classNamed(sdi.qualifiedName());
                                                        if (null != realClass) {
                                                           sdi = realClass;
                                    --- 149,163 ----
                                            }
                                         }
                                      
                                    !    public ClassDoc findClass(String className)
                                         {
                                            String qualifiedName = Main.getRootDoc().resolveClassName(className, this);
                                            ClassDoc rc=Main.getRootDoc().classNamed(qualifiedName);
                                      
                                    !       if (null == rc) {
                                               for (ClassDoc cdi=this; cdi!=null; cdi=cdi.containingClass()) {
                                                  for (ClassDoc sdi=cdi; sdi!=null; sdi=sdi.superclass()) {
                                    !                if (sdi instanceof ClassDocProxy) {
                                                        ClassDoc realClass = Main.getRootDoc().classNamed(sdi.qualifiedName());
                                                        if (null != realClass) {
                                                           sdi = realClass;
                                    *************** public class ClassDocImpl
                                    *** 155,178 ****
                                            return rc;
                                         }
                                      
                                    !    // Get the list of classes declared as imported. 
                                         public ClassDoc[] importedClasses() {
                                            return importedClasses;
                                    !    } 
                                      
                                    !    // Get the list of packages declared as imported. 
                                         public PackageDoc[] importedPackages() {
                                            return importedPackages;
                                    !    } 
                                      
                                    !    // Return inner classes within this class. 
                                         public ClassDoc[] innerClasses() {
                                            return innerClasses(true);
                                    !    } 
                                      
                                         public ClassDoc[] innerClasses(boolean filtered) {
                                            return filtered ? filteredInnerClasses : unfilteredInnerClasses;
                                    !    } 
                                      
                                         void setFilteredInnerClasses(ClassDoc[] filteredInnerClasses) {
                                            this.filteredInnerClasses=filteredInnerClasses;
                                    --- 172,195 ----
                                            return rc;
                                         }
                                      
                                    !    // Get the list of classes declared as imported.
                                         public ClassDoc[] importedClasses() {
                                            return importedClasses;
                                    !    }
                                      
                                    !    // Get the list of packages declared as imported.
                                         public PackageDoc[] importedPackages() {
                                            return importedPackages;
                                    !    }
                                      
                                    !    // Return inner classes within this class.
                                         public ClassDoc[] innerClasses() {
                                            return innerClasses(true);
                                    !    }
                                      
                                         public ClassDoc[] innerClasses(boolean filtered) {
                                            return filtered ? filteredInnerClasses : unfilteredInnerClasses;
                                    !    }
                                      
                                         void setFilteredInnerClasses(ClassDoc[] filteredInnerClasses) {
                                            this.filteredInnerClasses=filteredInnerClasses;
                                    *************** public class ClassDocImpl
                                    *** 182,200 ****
                                            this.unfilteredInnerClasses=unfilteredInnerClasses;
                                         }
                                      
                                    !    // Return interfaces implemented by this class or interfaces extended by this interface. 
                                         public ClassDoc[] interfaces() {
                                            return interfaces;
                                    !    } 
                                      
                                         public void setInterfaces(ClassDoc[] interfaces) {
                                            this.interfaces=interfaces;
                                    !    } 
                                      
                                    !    // Return true if this class is abstract 
                                         public boolean isAbstract() {
                                            return isAbstract || isInterface();
                                    !    } 
                                      
                                         public boolean isInterface() {
                                            return isInterface;
                                    --- 199,217 ----
                                            this.unfilteredInnerClasses=unfilteredInnerClasses;
                                         }
                                      
                                    !    // Return interfaces implemented by this class or interfaces extended by this interface.
                                         public ClassDoc[] interfaces() {
                                            return interfaces;
                                    !    }
                                      
                                         public void setInterfaces(ClassDoc[] interfaces) {
                                            this.interfaces=interfaces;
                                    !    }
                                      
                                    !    // Return true if this class is abstract
                                         public boolean isAbstract() {
                                            return isAbstract || isInterface();
                                    !    }
                                      
                                         public boolean isInterface() {
                                            return isInterface;
                                    *************** public class ClassDocImpl
                                    *** 209,285 ****
                                          return isEnum;
                                        }
                                      
                                    !    // Return true if this class is abstract 
                                         public void setIsAbstract(boolean b) {
                                            this.isAbstract=b;
                                    !    } 
                                      
                                    !    // Return true if this class implements java.io.Externalizable. 
                                         public boolean isExternalizable() {
                                            return implementsInterface("java.io.Externalizable");
                                    !    } 
                                      
                                    !    // Return true if this class implements java.io.Serializable. 
                                         public boolean isSerializable() {
                                            return implementsInterface("java.io.Serializable");
                                    !    } 
                                      
                                         public boolean implementsInterface(String name) {
                                            for (ClassDoc cdi=this; cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
                                    ! 	 if (cdi instanceof ClassDocImpl) {
                                    ! 	    ClassDoc[] cdiInterfaces=(ClassDoc[])cdi.interfaces();
                                                  if (null != cdiInterfaces) {
                                                     for (int i=0; i<cdiInterfaces.length; ++i) {
                                                        if (cdiInterfaces[i].qualifiedName().equals(name))
                                                           return true;
                                                     }
                                                  }
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    //throw new RuntimeException("implementsInterface(\""+name+"\") failed: Not a ClassDocImpl:"+cdi);
                                    ! 	 }
                                            }
                                            return false;
                                         }
                                      
                                    !    // Return methods in class. 
                                         public MethodDoc[] methods() {
                                            return methods(true);
                                    !    } 
                                      
                                    !    // Return methods in class. 
                                         public MethodDoc[] methods(boolean filter) {
                                            return filter ? filteredMethods : unfilteredMethods;
                                    !    } 
                                      
                                    !    // Return the Serializable fields of class. Return either a list of default fields documented by serial tag or return a single FieldDoc for serialPersistentField member. 
                                         public FieldDoc[] serializableFields() {
                                            if (serialPersistentField!=null) {
                                    ! 	 return serialPersistentField;
                                            }
                                            else{
                                    ! 	 return serializableFields;
                                            }
                                    !    } 
                                      
                                    !    // Return the serialization methods for this class. 
                                         public MethodDoc[] serializationMethods() {
                                            return serializationMethods;
                                    !    } 
                                      
                                    !    // Test whether this class is a subclass of the specified class. 
                                         public boolean subclassOf(ClassDoc cd) {
                                            for (ClassDocImpl cdi=(ClassDocImpl)superclass(); cdi!=null; cdi=(ClassDocImpl)cdi.superclass()) {
                                    ! 	 if (cdi.equals(cd))
                                    ! 	    return true;
                                            }
                                            return false;
                                    !    } 
                                      
                                    !    // Return the superclass of this class 
                                         public ClassDoc superclass() {
                                            return superclass;
                                    !    } 
                                      
                                         // Implementation of Interface Type
                                      
                                    --- 226,302 ----
                                          return isEnum;
                                        }
                                      
                                    !    // Return true if this class is abstract
                                         public void setIsAbstract(boolean b) {
                                            this.isAbstract=b;
                                    !    }
                                      
                                    !    // Return true if this class implements java.io.Externalizable.
                                         public boolean isExternalizable() {
                                            return implementsInterface("java.io.Externalizable");
                                    !    }
                                      
                                    !    // Return true if this class implements java.io.Serializable.
                                         public boolean isSerializable() {
                                            return implementsInterface("java.io.Serializable");
                                    !    }
                                      
                                         public boolean implementsInterface(String name) {
                                            for (ClassDoc cdi=this; cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
                                    !          if (cdi instanceof ClassDocImpl) {
                                    !             ClassDoc[] cdiInterfaces=(ClassDoc[])cdi.interfaces();
                                                  if (null != cdiInterfaces) {
                                                     for (int i=0; i<cdiInterfaces.length; ++i) {
                                                        if (cdiInterfaces[i].qualifiedName().equals(name))
                                                           return true;
                                                     }
                                                  }
                                    !          }
                                    !          else {
                                    !             //throw new RuntimeException("implementsInterface(\""+name+"\") failed: Not a ClassDocImpl:"+cdi);
                                    !          }
                                            }
                                            return false;
                                         }
                                      
                                    !    // Return methods in class.
                                         public MethodDoc[] methods() {
                                            return methods(true);
                                    !    }
                                      
                                    !    // Return methods in class.
                                         public MethodDoc[] methods(boolean filter) {
                                            return filter ? filteredMethods : unfilteredMethods;
                                    !    }
                                      
                                    !    // Return the Serializable fields of class. Return either a list of default fields documented by serial tag or return a single FieldDoc for serialPersistentField member.
                                         public FieldDoc[] serializableFields() {
                                            if (serialPersistentField!=null) {
                                    !          return serialPersistentField;
                                            }
                                            else{
                                    !          return serializableFields;
                                            }
                                    !    }
                                      
                                    !    // Return the serialization methods for this class.
                                         public MethodDoc[] serializationMethods() {
                                            return serializationMethods;
                                    !    }
                                      
                                    !    // Test whether this class is a subclass of the specified class.
                                         public boolean subclassOf(ClassDoc cd) {
                                            for (ClassDocImpl cdi=(ClassDocImpl)superclass(); cdi!=null; cdi=(ClassDocImpl)cdi.superclass()) {
                                    !          if (cdi.equals(cd))
                                    !             return true;
                                            }
                                            return false;
                                    !    }
                                      
                                    !    // Return the superclass of this class
                                         public ClassDoc superclass() {
                                            return superclass;
                                    !    }
                                      
                                         // Implementation of Interface Type
                                      
                                    *************** public class ClassDocImpl
                                    *** 289,297 ****
                                         }
                                      
                                         public String typeName() { return name(); }
                                    !    
                                    !    public String qualifiedTypeName() { 
                                    !       return (containingPackage()!=null && !containingPackage().equals(PackageDocImpl.DEFAULT_PACKAGE))?(containingPackage().name()+"."+name()):(name()); 
                                         }
                                      
                                         public String qualifiedName() { return qualifiedTypeName(); }
                                    --- 306,314 ----
                                         }
                                      
                                         public String typeName() { return name(); }
                                    ! 
                                    !    public String qualifiedTypeName() {
                                    !       return (containingPackage()!=null && !containingPackage().equals(PackageDocImpl.DEFAULT_PACKAGE))?(containingPackage().name()+"."+name()):(name());
                                         }
                                      
                                         public String qualifiedName() { return qualifiedTypeName(); }
                                    *************** public class ClassDocImpl
                                    *** 303,327 ****
                                         public TypeVariable asTypeVariable() { return null; }
                                      
                                         public static ClassDocImpl createInstance(ClassDoc containingClass,
                                    ! 					     PackageDoc containingPackage,
                                    ! 					     ClassDoc[] importedClasses,
                                    ! 					     PackageDoc[] importedPackages,
                                    ! 					     char[] source, int startIndex, int endIndex,
                                                                                   List importStatementList) throws ParseException, IOException {
                                      
                                            String superclassName = "java.lang.Object";
                                      
                                            ClassDocImpl rc=new ClassDocImpl(containingClass,
                                    ! 				       containingPackage,
                                    ! 				       importedClasses,
                                    ! 				       importedPackages,
                                                                             null);
                                            rc.setImportStatementList(importStatementList);
                                            List implementedInterfaces = new ArrayList();
                                    !       
                                            String word="";
                                            int item=0;
                                    !       
                                            final int STATE_NORMAL = 1;
                                            final int STATE_SLASHC = 2;
                                            final int STATE_STARC  = 3;
                                    --- 320,344 ----
                                         public TypeVariable asTypeVariable() { return null; }
                                      
                                         public static ClassDocImpl createInstance(ClassDoc containingClass,
                                    !                                              PackageDoc containingPackage,
                                    !                                              ClassDoc[] importedClasses,
                                    !                                              PackageDoc[] importedPackages,
                                    !                                              char[] source, int startIndex, int endIndex,
                                                                                   List importStatementList) throws ParseException, IOException {
                                      
                                            String superclassName = "java.lang.Object";
                                      
                                            ClassDocImpl rc=new ClassDocImpl(containingClass,
                                    !                                        containingPackage,
                                    !                                        importedClasses,
                                    !                                        importedPackages,
                                                                             null);
                                            rc.setImportStatementList(importStatementList);
                                            List implementedInterfaces = new ArrayList();
                                    ! 
                                            String word="";
                                            int item=0;
                                    ! 
                                            final int STATE_NORMAL = 1;
                                            final int STATE_SLASHC = 2;
                                            final int STATE_STARC  = 3;
                                    *************** public class ClassDocImpl
                                    *** 332,478 ****
                                            int parLevel=0;
                                            char prev=0;
                                            for (int ndx=startIndex; ndx<=endIndex; ++ndx) {
                                    ! 	 char c=(ndx==endIndex)?10:source[ndx];
                                    ! 	 boolean processWord=false;
                                    ! 	 if (state==STATE_SLASHC) {
                                    ! 	    if (c=='\n') {
                                    ! 	       state=STATE_NORMAL;
                                    ! 	       c=0;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else if (state==STATE_STARC) {
                                    ! 	    if (c=='/' && prev=='*') {
                                    ! 	       state=STATE_NORMAL;
                                    ! 	       c=0;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    if (c=='/' && prev=='/') {
                                    ! 	       state=STATE_SLASHC;
                                    ! 	       c=0;
                                    ! 	       word=word.substring(0,word.length()-1);
                                    ! 	       processWord=true;
                                    ! 	    }
                                    ! 	    else if (c=='*' && prev=='/') {
                                    ! 	       state=STATE_STARC;
                                    ! 	       c=0;
                                    ! 	       word=word.substring(0,word.length()-1);
                                    ! 	       processWord=true;
                                    ! 	    }
                                    ! 	    else if (c=='@') {
                                                     state=STATE_ANNO;
                                    ! 	       word += c;
                                    ! 	    }
                                    ! 	    else if (c=='(' && state==STATE_ANNO) {
                                                     ++parLevel;
                                                     word += c;
                                                  }
                                                  else if (c==')' && state==STATE_ANNO) {
                                                     --parLevel;
                                                     word += c;
                                    ! 	       if (parLevel == 0)
                                                         state=STATE_NORMAL;
                                                  }
                                    ! 	    else if (c=='<')
                                    ! 	      {
                                    ! 		++varLevel;
                                    ! 		word += c;
                                    ! 	      }
                                    ! 	    else if (c=='>')
                                    ! 	      {
                                    ! 		--varLevel;
                                    ! 		word += c;
                                    ! 	      }
                                    ! 	    else if (c=='{' && parLevel == 0 || 
                                    ! 	             c==',' && varLevel == 0 && parLevel == 0 || 
                                    ! 		     Parser.WHITESPACE.indexOf(c)>=0 && parLevel == 0 && varLevel == 0) {
                                    ! 	       processWord=true;
                                    ! 	       state=STATE_NORMAL;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       word+=c;
                                    ! 	    }
                                      
                                    ! 	    if (processWord && word.length()>0) {
                                    ! 	       if (item==0) {
                                    ! 		  if (rc.processModifier(word)) {
                                    ! 		  }
                                    ! 		  else if (word.equals("abstract")) {
                                    ! 		     rc.setIsAbstract(true);
                                    ! 		  }
                                    ! 		  else if (word.equals("class")) {
                                    ! 		     rc.setIsInterface(false);
                                    ! 		     item=1;
                                    ! 		  }
                                    ! 		  else if (word.equals("enum")) 
                                    ! 		    {
                                    ! 		      rc.setIsEnum(true);
                                    ! 		      item = 1;
                                    ! 		    }
                                    ! 		  else if (word.equals("interface")) {
                                    ! 		     rc.setIsInterface(true);
                                    ! 		     item=1;
                                    ! 		  }
                                    ! 		  else if (word.equals("@interface")) {
                                    ! 		     rc.setIsInterface(true);
                                                           rc.setIsAnnotation(true);
                                    ! 		     item=1;
                                    ! 		  }
                                    ! 		  else if (word.equals("strictfp")) {
                                    ! 		  }
                                    ! 		  else {
                                    ! 		     Main.getRootDoc().printWarning("unknown modifier '"+word+"'");
                                    ! 		  }
                                    ! 	       }
                                    ! 	       else if (word.equals("extends") && !rc.isAnnotation()) {
                                                        if (rc.isInterface()) {
                                                           item=3;
                                                        }
                                                        else {
                                                           item=2;
                                                        }
                                    ! 	       }
                                    ! 	       else if (word.equals("implements") && !rc.isAnnotation()) {
                                    ! 		  item=3;
                                    ! 	       }
                                    ! 	       else if (item==1) {
                                    ! 		 int parameterIndex = word.indexOf("<");
                                    ! 		 if (parameterIndex == -1)
                                    ! 		   rc.setClass(word);
                                    ! 		 else
                                    ! 		   {
                                    ! 		     rc.setClass(word.substring(0, parameterIndex));
                                    ! 		     parseTypeVariables(rc,word.substring(parameterIndex,
                                    ! 							  word.length()));
                                    ! 		   }
                                    ! 	       }
                                    ! 	       else if (item==2) {
                                    ! 		  //Debug.log(9,"setting baseclass of "+rc+" to "+word);
                                    ! 		 int parameterIndex = word.indexOf("<");
                                    ! 		 if (parameterIndex == -1)
                                    ! 		   superclassName=word;
                                    ! 		 else
                                    ! 		   {
                                    ! 		     /* FIXME: Parse type parameters */
                                    ! 		     superclassName=word.substring(0,parameterIndex);
                                    ! 		   }
                                    ! 	       }
                                    ! 	       else if (item==3) {
                                    ! 		 int parameterIndex = word.indexOf("<");
                                    ! 		 if (parameterIndex == -1)
                                    ! 		   implementedInterfaces.add(word);
                                    ! 		 else
                                    ! 		   {
                                    ! 		     /* FIXME: Parse type parameters */
                                    ! 		     implementedInterfaces.add(word.substring(0,parameterIndex));
                                    ! 		   }
                                    ! 	       }      
                                    ! 	       word="";
                                    ! 	    }
                                      
                                    ! 	    if (c=='{' && state==STATE_NORMAL) break;
                                    ! 	 }
                                    ! 	 prev=c;
                                            }
                                      
                                            if (null != containingClass
                                    --- 349,495 ----
                                            int parLevel=0;
                                            char prev=0;
                                            for (int ndx=startIndex; ndx<=endIndex; ++ndx) {
                                    !          char c=(ndx==endIndex)?10:source[ndx];
                                    !          boolean processWord=false;
                                    !          if (state==STATE_SLASHC) {
                                    !             if (c=='\n') {
                                    !                state=STATE_NORMAL;
                                    !                c=0;
                                    !             }
                                    !          }
                                    !          else if (state==STATE_STARC) {
                                    !             if (c=='/' && prev=='*') {
                                    !                state=STATE_NORMAL;
                                    !                c=0;
                                    !             }
                                    !          }
                                    !          else {
                                    !             if (c=='/' && prev=='/') {
                                    !                state=STATE_SLASHC;
                                    !                c=0;
                                    !                word=word.substring(0,word.length()-1);
                                    !                processWord=true;
                                    !             }
                                    !             else if (c=='*' && prev=='/') {
                                    !                state=STATE_STARC;
                                    !                c=0;
                                    !                word=word.substring(0,word.length()-1);
                                    !                processWord=true;
                                    !             }
                                    !             else if (c=='@') {
                                                     state=STATE_ANNO;
                                    !                word += c;
                                    !             }
                                    !             else if (c=='(' && state==STATE_ANNO) {
                                                     ++parLevel;
                                                     word += c;
                                                  }
                                                  else if (c==')' && state==STATE_ANNO) {
                                                     --parLevel;
                                                     word += c;
                                    !                if (parLevel == 0)
                                                         state=STATE_NORMAL;
                                                  }
                                    !             else if (c=='<')
                                    !               {
                                    !                 ++varLevel;
                                    !                 word += c;
                                    !               }
                                    !             else if (c=='>')
                                    !               {
                                    !                 --varLevel;
                                    !                 word += c;
                                    !               }
                                    !             else if (c=='{' && parLevel == 0 ||
                                    !                      c==',' && varLevel == 0 && parLevel == 0 ||
                                    !                      Parser.WHITESPACE.indexOf(c)>=0 && parLevel == 0 && varLevel == 0) {
                                    !                processWord=true;
                                    !                state=STATE_NORMAL;
                                    !             }
                                    !             else {
                                    !                word+=c;
                                    !             }
                                      
                                    !             if (processWord && word.length()>0) {
                                    !                if (item==0) {
                                    !                   if (rc.processModifier(word)) {
                                    !                   }
                                    !                   else if (word.equals("abstract")) {
                                    !                      rc.setIsAbstract(true);
                                    !                   }
                                    !                   else if (word.equals("class")) {
                                    !                      rc.setIsInterface(false);
                                    !                      item=1;
                                    !                   }
                                    !                   else if (word.equals("enum"))
                                    !                     {
                                    !                       rc.setIsEnum(true);
                                    !                       item = 1;
                                    !                     }
                                    !                   else if (word.equals("interface")) {
                                    !                      rc.setIsInterface(true);
                                    !                      item=1;
                                    !                   }
                                    !                   else if (word.equals("@interface")) {
                                    !                      rc.setIsInterface(true);
                                                           rc.setIsAnnotation(true);
                                    !                      item=1;
                                    !                   }
                                    !                   else if (word.equals("strictfp")) {
                                    !                   }
                                    !                   else {
                                    !                      Main.getRootDoc().printWarning("unknown modifier '"+word+"'");
                                    !                   }
                                    !                }
                                    !                else if (word.equals("extends") && !rc.isAnnotation()) {
                                                        if (rc.isInterface()) {
                                                           item=3;
                                                        }
                                                        else {
                                                           item=2;
                                                        }
                                    !                }
                                    !                else if (word.equals("implements") && !rc.isAnnotation()) {
                                    !                   item=3;
                                    !                }
                                    !                else if (item==1) {
                                    !                  int parameterIndex = word.indexOf("<");
                                    !                  if (parameterIndex == -1)
                                    !                    rc.setClass(word);
                                    !                  else
                                    !                    {
                                    !                      rc.setClass(word.substring(0, parameterIndex));
                                    !                      parseTypeVariables(rc,word.substring(parameterIndex,
                                    !                                                           word.length()));
                                    !                    }
                                    !                }
                                    !                else if (item==2) {
                                    !                   //Debug.log(9,"setting baseclass of "+rc+" to "+word);
                                    !                  int parameterIndex = word.indexOf("<");
                                    !                  if (parameterIndex == -1)
                                    !                    superclassName=word;
                                    !                  else
                                    !                    {
                                    !                      /* FIXME: Parse type parameters */
                                    !                      superclassName=word.substring(0,parameterIndex);
                                    !                    }
                                    !                }
                                    !                else if (item==3) {
                                    !                  int parameterIndex = word.indexOf("<");
                                    !                  if (parameterIndex == -1)
                                    !                    implementedInterfaces.add(word);
                                    !                  else
                                    !                    {
                                    !                      /* FIXME: Parse type parameters */
                                    !                      implementedInterfaces.add(word.substring(0,parameterIndex));
                                    !                    }
                                    !                }
                                    !                word="";
                                    !             }
                                      
                                    !             if (c=='{' && state==STATE_NORMAL) break;
                                    !          }
                                    !          prev=c;
                                            }
                                      
                                            if (null != containingClass
                                    *************** public class ClassDocImpl
                                    *** 481,487 ****
                                            }
                                      
                                            if (rc.name()==null) {
                                    ! 	 throw new ParseException("No classdef found in expression \""+new String(source,startIndex,endIndex-startIndex)+"\"");
                                            }
                                      
                                            rc.setPosition(ClassDocImpl.getPosition(rc, source, startIndex));
                                    --- 498,504 ----
                                            }
                                      
                                            if (rc.name()==null) {
                                    !          throw new ParseException("No classdef found in expression \""+new String(source,startIndex,endIndex-startIndex)+"\"");
                                            }
                                      
                                            rc.setPosition(ClassDocImpl.getPosition(rc, source, startIndex));
                                    *************** public class ClassDocImpl
                                    *** 489,495 ****
                                            ClassDoc superclassProxy=new ClassDocProxy(superclassName, rc);
                                      
                                            if (!rc.qualifiedName().equals("java.lang.Object")) {
                                    ! 	 rc.setSuperclass(superclassProxy);
                                            }
                                      
                                            ClassDoc[] interfaces=new ClassDoc[implementedInterfaces.size()];
                                    --- 506,512 ----
                                            ClassDoc superclassProxy=new ClassDocProxy(superclassName, rc);
                                      
                                            if (!rc.qualifiedName().equals("java.lang.Object")) {
                                    !          rc.setSuperclass(superclassProxy);
                                            }
                                      
                                            ClassDoc[] interfaces=new ClassDoc[implementedInterfaces.size()];
                                    *************** public class ClassDocImpl
                                    *** 499,505 ****
                                            rc.setInterfaces(interfaces);
                                      
                                            if (rc.isInterface() && rc.containingClass()!=null) {
                                    ! 	 rc.setIsStatic(true);
                                            }
                                            return rc;
                                         }
                                    --- 516,522 ----
                                            rc.setInterfaces(interfaces);
                                      
                                            if (rc.isInterface() && rc.containingClass()!=null) {
                                    !          rc.setIsStatic(true);
                                            }
                                            return rc;
                                         }
                                    *************** public class ClassDocImpl
                                    *** 532,546 ****
                                            this.filteredConstructors=constructors;
                                         }
                                      
                                    !    // Returns the name of this Doc item. 
                                         public String name() {
                                            if (containingClass==null) {
                                    ! 	 return className;
                                            }
                                            else {
                                    ! 	 return containingClass.name()+"."+className;
                                            }
                                    !    } 
                                      
                                         public String getClassName() {
                                            return className;
                                    --- 549,563 ----
                                            this.filteredConstructors=constructors;
                                         }
                                      
                                    !    // Returns the name of this Doc item.
                                         public String name() {
                                            if (containingClass==null) {
                                    !          return className;
                                            }
                                            else {
                                    !          return containingClass.name()+"."+className;
                                            }
                                    !    }
                                      
                                         public String getClassName() {
                                            return className;
                                    *************** public class ClassDocImpl
                                    *** 556,588 ****
                                      
                                         public void resolve() throws ParseException {
                                            if (!resolved) {
                                    ! 	 resolved=true;
                                      
                                    ! 	 if (containingClass!=null)
                                    ! 	    ((ClassDocImpl)containingClass).resolve();
                                      
                                    ! 	 //Debug.log(9,"resolving class '"+qualifiedName()+"'");
                                    ! 	 /*
                                    ! 	 for (int i=0; i<importedPackages.length; ++i) {
                                    ! 	       Debug.log(9,"class "+qualifiedName()+" imports "+importedPackages[i].name());
                                    ! 	 }
                                    ! 	 */
                                      
                                    ! 	 if (superclass instanceof ClassDocProxy) {
                                      
                                    ! 	    ClassDoc realClassDoc=findClass(superclass.qualifiedName());
                                      
                                    ! 	    if (realClassDoc==null) {
                                    ! 	       /*
                                    ! 	       if (true) { // Main.recursiveClasses) {
                                    ! 		  throw new ParseException("In class '"+qualifiedName()+"': class '"+className+"' not found.");
                                    ! 	       }
                                    ! 	       */
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       superclass=realClassDoc;
                                    ! 	    }
                                    ! 	 }
                                      
                                               if (null != interfaces) {
                                                  for (int i=0; i<interfaces.length; ++i) {
                                    --- 573,605 ----
                                      
                                         public void resolve() throws ParseException {
                                            if (!resolved) {
                                    !          resolved=true;
                                      
                                    !          if (containingClass!=null)
                                    !             ((ClassDocImpl)containingClass).resolve();
                                      
                                    !          //Debug.log(9,"resolving class '"+qualifiedName()+"'");
                                    !          /*
                                    !          for (int i=0; i<importedPackages.length; ++i) {
                                    !                Debug.log(9,"class "+qualifiedName()+" imports "+importedPackages[i].name());
                                    !          }
                                    !          */
                                      
                                    !          if (superclass instanceof ClassDocProxy) {
                                      
                                    !             ClassDoc realClassDoc=findClass(superclass.qualifiedName());
                                      
                                    !             if (realClassDoc==null) {
                                    !                /*
                                    !                if (true) { // Main.recursiveClasses) {
                                    !                   throw new ParseException("In class '"+qualifiedName()+"': class '"+className+"' not found.");
                                    !                }
                                    !                */
                                    !             }
                                    !             else {
                                    !                superclass=realClassDoc;
                                    !             }
                                    !          }
                                      
                                               if (null != interfaces) {
                                                  for (int i=0; i<interfaces.length; ++i) {
                                    *************** public class ClassDocImpl
                                    *** 604,610 ****
                                                  }
                                               }
                                      
                                    ! 	 if (unfilteredFields!=null) {
                                                  for (int i=0; i<unfilteredFields.length; ++i) {
                                                     ((FieldDocImpl)unfilteredFields[i]).resolve();
                                                     if (unfilteredFields[i].name().equals("serialPersistentField")) {
                                    --- 621,627 ----
                                                  }
                                               }
                                      
                                    !          if (unfilteredFields!=null) {
                                                  for (int i=0; i<unfilteredFields.length; ++i) {
                                                     ((FieldDocImpl)unfilteredFields[i]).resolve();
                                                     if (unfilteredFields[i].name().equals("serialPersistentField")) {
                                    *************** public class ClassDocImpl
                                    *** 626,632 ****
                                                  }
                                               }
                                      
                                    ! 	 List isSerMethodList=new ArrayList();
                                      
                                               if (null != maybeSerMethodList) {
                                                  for (Iterator it=maybeSerMethodList.iterator(); it.hasNext(); ) {
                                    --- 643,649 ----
                                                  }
                                               }
                                      
                                    !          List isSerMethodList=new ArrayList();
                                      
                                               if (null != maybeSerMethodList) {
                                                  for (Iterator it=maybeSerMethodList.iterator(); it.hasNext(); ) {
                                    *************** public class ClassDocImpl
                                    *** 693,701 ****
                                      
                                         public FieldDoc findField(String fieldName) {
                                            for (int i=0; i<filteredFields.length; ++i) {
                                    ! 	 if (filteredFields[i].name().equals(fieldName)) {
                                    ! 	    return filteredFields[i];
                                    ! 	 }
                                            }
                                            return null;
                                         }
                                    --- 710,718 ----
                                      
                                         public FieldDoc findField(String fieldName) {
                                            for (int i=0; i<filteredFields.length; ++i) {
                                    !          if (filteredFields[i].name().equals(fieldName)) {
                                    !             return filteredFields[i];
                                    !          }
                                            }
                                            return null;
                                         }
                                    *************** public class ClassDocImpl
                                    *** 752,763 ****
                                      
                                         private ClassDoc superclass;
                                      
                                    !    // Is this Doc item a class. 
                                         public boolean isClass() {
                                            return !isInterface;
                                    !    } 
                                      
                                    !    // return true if this Doc is include in the active set. 
                                         public boolean isIncluded() {
                                            if (this == baseClassDoc) {
                                               return isIncluded
                                    --- 769,780 ----
                                      
                                         private ClassDoc superclass;
                                      
                                    !    // Is this Doc item a class.
                                         public boolean isClass() {
                                            return !isInterface;
                                    !    }
                                      
                                    !    // return true if this Doc is include in the active set.
                                         public boolean isIncluded() {
                                            if (this == baseClassDoc) {
                                               return isIncluded
                                    *************** public class ClassDocImpl
                                    *** 766,772 ****
                                            else {
                                               return baseClassDoc.isIncluded();
                                            }
                                    !    } 
                                      
                                         void setIsIncluded(boolean b) {
                                            this.isIncluded=b;
                                    --- 783,789 ----
                                            else {
                                               return baseClassDoc.isIncluded();
                                            }
                                    !    }
                                      
                                         void setIsIncluded(boolean b) {
                                            this.isIncluded=b;
                                    *************** public class ClassDocImpl
                                    *** 785,796 ****
                                            int ndx=typeName.indexOf('[');
                                            String dim="";
                                            if (ndx>=0) {
                                    ! 	 for (int i=ndx; i<typeName.length(); ++i) {
                                    ! 	    if ("[]".indexOf(typeName.charAt(i))>=0) {
                                    ! 	       dim+=typeName.charAt(i);
                                    ! 	    }
                                    ! 	 }
                                    ! 	 typeName=typeName.substring(0,ndx).trim();
                                            }
                                      
                                            ClassDoc classDoc = findClass(typeName, dim);
                                    --- 802,813 ----
                                            int ndx=typeName.indexOf('[');
                                            String dim="";
                                            if (ndx>=0) {
                                    !          for (int i=ndx; i<typeName.length(); ++i) {
                                    !             if ("[]".indexOf(typeName.charAt(i))>=0) {
                                    !                dim+=typeName.charAt(i);
                                    !             }
                                    !          }
                                    !          typeName=typeName.substring(0,ndx).trim();
                                            }
                                      
                                            ClassDoc classDoc = findClass(typeName, dim);
                                    *************** public class ClassDocImpl
                                    *** 800,806 ****
                                      
                                            Type type = (Type)typeMap.get(typeName+dim);
                                            if (null!=type) {
                                    ! 	 try {
                                                  if (type.dimension().equals(dim)) {
                                                     return type;
                                                  }
                                    --- 817,823 ----
                                      
                                            Type type = (Type)typeMap.get(typeName+dim);
                                            if (null!=type) {
                                    !          try {
                                                  if (type.dimension().equals(dim)) {
                                                     return type;
                                                  }
                                    *************** public class ClassDocImpl
                                    *** 809,837 ****
                                                     ((WritableType)rc).setDimension(dim);
                                                     return rc;
                                                  }
                                    ! 	 }
                                    ! 	 catch (CloneNotSupportedException e) {
                                    ! 	    throw new ParseException(e.toString());
                                    ! 	 }
                                            }
                                    !       
                                            if ("boolean".equals(typeName)
                                    ! 	  || "char".equals(typeName)
                                    ! 	  || "byte".equals(typeName)
                                    ! 	  || "short".equals(typeName)
                                    ! 	  || "int".equals(typeName)
                                    ! 	  || "long".equals(typeName)
                                    ! 	  || "void".equals(typeName)
                                    ! 	  || "float".equals(typeName)
                                    ! 	  || "double".equals(typeName)) {
                                    ! 	 Type rc=new TypeImpl(null, typeName, dim);
                                    ! 	 typeMap.put(typeName+dim, rc);
                                    ! 	 return rc;
                                            }
                                      
                                            if (Main.getInstance().isDocletRunning()) {
                                    ! 	 //System.err.println(findClass("java.lang.String"));
                                    ! 	 //throw new ParseException("Doclet running, class not found: "+typeName+" ("+orgTypename+")");
                                            }
                                            Type rc=new ClassDocProxy(typeName, this);
                                            ((WritableType)rc).setDimension(dim);
                                    --- 826,854 ----
                                                     ((WritableType)rc).setDimension(dim);
                                                     return rc;
                                                  }
                                    !          }
                                    !          catch (CloneNotSupportedException e) {
                                    !             throw new ParseException(e.toString());
                                    !          }
                                            }
                                    ! 
                                            if ("boolean".equals(typeName)
                                    !           || "char".equals(typeName)
                                    !           || "byte".equals(typeName)
                                    !           || "short".equals(typeName)
                                    !           || "int".equals(typeName)
                                    !           || "long".equals(typeName)
                                    !           || "void".equals(typeName)
                                    !           || "float".equals(typeName)
                                    !           || "double".equals(typeName)) {
                                    !          Type rc=new TypeImpl(null, typeName, dim);
                                    !          typeMap.put(typeName+dim, rc);
                                    !          return rc;
                                            }
                                      
                                            if (Main.getInstance().isDocletRunning()) {
                                    !          //System.err.println(findClass("java.lang.String"));
                                    !          //throw new ParseException("Doclet running, class not found: "+typeName+" ("+orgTypename+")");
                                            }
                                            Type rc=new ClassDocProxy(typeName, this);
                                            ((WritableType)rc).setDimension(dim);
                                    *************** public class ClassDocImpl
                                    *** 839,858 ****
                                         }
                                      
                                         public boolean isException() {
                                    !       for (ClassDoc cdi=this; 
                                    ! 	   cdi!=null; 
                                    ! 	   cdi=cdi.superclass()) {
                                      
                                    ! 	 if ("java.lang.Exception".equals(cdi.qualifiedName()))
                                    ! 	    return true;
                                            }
                                            return false;
                                         }
                                      
                                         public boolean isError() {
                                            for (ClassDoc cdi=this; cdi!=null; cdi=cdi.superclass()) {
                                    ! 	 if ("java.lang.Error".equals(cdi.qualifiedName()))
                                    ! 	    return true;
                                            }
                                            return false;
                                         }
                                    --- 856,875 ----
                                         }
                                      
                                         public boolean isException() {
                                    !       for (ClassDoc cdi=this;
                                    !            cdi!=null;
                                    !            cdi=cdi.superclass()) {
                                      
                                    !          if ("java.lang.Exception".equals(cdi.qualifiedName()))
                                    !             return true;
                                            }
                                            return false;
                                         }
                                      
                                         public boolean isError() {
                                            for (ClassDoc cdi=this; cdi!=null; cdi=cdi.superclass()) {
                                    !          if ("java.lang.Error".equals(cdi.qualifiedName()))
                                    !             return true;
                                            }
                                            return false;
                                         }
                                    *************** public class ClassDocImpl
                                    *** 878,906 ****
                                      
                                            ExecutableMemberDoc rc;
                                            for (ClassDoc cdi=this; cdi!=null; ) {
                                    ! 	 rc=findMethod(cdi, nameAndSignature);
                                    ! 	 if (rc!=null) return rc;
                                    ! 	 rc=findConstructor(cdi, nameAndSignature);
                                    ! 	 if (rc!=null) return rc;
                                      
                                    ! 	 ClassDoc _superclass = cdi.superclass();
                                    ! 	 if (null == _superclass) {
                                    ! 	    break;
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    cdi = _superclass;
                                    ! 	 }
                                            }
                                    !       return null; 
                                    !   } 
                                      
                                         public static ConstructorDoc findConstructor(ClassDoc classDoc, String nameAndSignature) {
                                            int ndx=nameAndSignature.indexOf('(');
                                            if (ndx<=0)
                                    ! 	 return null;
                                            else {
                                               String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
                                    ! 	 return findConstructor(classDoc,
                                                                      nameAndSignature.substring(0,ndx),
                                                                      fullSignature);
                                            }
                                    --- 895,923 ----
                                      
                                            ExecutableMemberDoc rc;
                                            for (ClassDoc cdi=this; cdi!=null; ) {
                                    !          rc=findMethod(cdi, nameAndSignature);
                                    !          if (rc!=null) return rc;
                                    !          rc=findConstructor(cdi, nameAndSignature);
                                    !          if (rc!=null) return rc;
                                      
                                    !          ClassDoc _superclass = cdi.superclass();
                                    !          if (null == _superclass) {
                                    !             break;
                                    !          }
                                    !          else {
                                    !             cdi = _superclass;
                                    !          }
                                            }
                                    !       return null;
                                    !   }
                                      
                                         public static ConstructorDoc findConstructor(ClassDoc classDoc, String nameAndSignature) {
                                            int ndx=nameAndSignature.indexOf('(');
                                            if (ndx<=0)
                                    !          return null;
                                            else {
                                               String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
                                    !          return findConstructor(classDoc,
                                                                      nameAndSignature.substring(0,ndx),
                                                                      fullSignature);
                                            }
                                    *************** public class ClassDocImpl
                                    *** 921,936 ****
                                         public static MethodDoc findMethod(ClassDoc classDoc, String nameAndSignature) {
                                            int ndx=nameAndSignature.indexOf('(');
                                            if (ndx<=0) {
                                    ! 	 return null;
                                            }
                                            else {
                                               String name = nameAndSignature.substring(0,ndx);
                                               String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
                                    ! 	 return findMethod(classDoc, name, fullSignature);
                                            }
                                         }
                                      
                                    !    private static String resolveSignature(ClassDoc classDoc, String signature) 
                                         {
                                            signature = signature.substring(1, signature.length() - 1).trim();
                                            if (0 == signature.length()) {
                                    --- 938,953 ----
                                         public static MethodDoc findMethod(ClassDoc classDoc, String nameAndSignature) {
                                            int ndx=nameAndSignature.indexOf('(');
                                            if (ndx<=0) {
                                    !          return null;
                                            }
                                            else {
                                               String name = nameAndSignature.substring(0,ndx);
                                               String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
                                    !          return findMethod(classDoc, name, fullSignature);
                                            }
                                         }
                                      
                                    !    private static String resolveSignature(ClassDoc classDoc, String signature)
                                         {
                                            signature = signature.substring(1, signature.length() - 1).trim();
                                            if (0 == signature.length()) {
                                    *************** public class ClassDocImpl
                                    *** 979,985 ****
                                         }
                                      
                                         private List maybeSerMethodList;
                                    !    
                                         void setMaybeSerMethodList(List maybeSerMethodList) {
                                            this.maybeSerMethodList=maybeSerMethodList;
                                         }
                                    --- 996,1002 ----
                                         }
                                      
                                         private List maybeSerMethodList;
                                    ! 
                                         void setMaybeSerMethodList(List maybeSerMethodList) {
                                            this.maybeSerMethodList=maybeSerMethodList;
                                         }
                                    *************** public class ClassDocImpl
                                    *** 1008,1014 ****
                                         {
                                            return baseClassDoc;
                                         }
                                    !    
                                         public FieldDoc getFieldDoc(String name)
                                         {
                                            for (int i=0; i<unfilteredFields.length; ++i) {
                                    --- 1025,1031 ----
                                         {
                                            return baseClassDoc;
                                         }
                                    ! 
                                         public FieldDoc getFieldDoc(String name)
                                         {
                                            for (int i=0; i<unfilteredFields.length; ++i) {
                                    *************** public class ClassDocImpl
                                    *** 1042,1055 ****
                                         }
                                      
                                         private Object findFieldValue(String identifier,
                                    !                                  ClassDoc classDoc, 
                                                                       String fieldName,
                                                                       Set visitedFields)
                                            throws UnknownIdentifierException, IllegalExpressionException
                                         {
                                            while (classDoc != null) {
                                               if (classDoc instanceof ClassDocImpl) {
                                    !             FieldDocImpl fieldDoc 
                                                     = (FieldDocImpl)((ClassDocImpl)classDoc).getFieldDoc(fieldName);
                                                  if (visitedFields.contains(fieldDoc)) {
                                                     throw new CircularExpressionException("Circular reference detected");
                                    --- 1059,1072 ----
                                         }
                                      
                                         private Object findFieldValue(String identifier,
                                    !                                  ClassDoc classDoc,
                                                                       String fieldName,
                                                                       Set visitedFields)
                                            throws UnknownIdentifierException, IllegalExpressionException
                                         {
                                            while (classDoc != null) {
                                               if (classDoc instanceof ClassDocImpl) {
                                    !             FieldDocImpl fieldDoc
                                                     = (FieldDocImpl)((ClassDocImpl)classDoc).getFieldDoc(fieldName);
                                                  if (visitedFields.contains(fieldDoc)) {
                                                     throw new CircularExpressionException("Circular reference detected");
                                    *************** public class ClassDocImpl
                                    *** 1062,1069 ****
                                                  ClassDoc[] _interfaces = classDoc.interfaces();
                                                  if (null != _interfaces) {
                                                     for (int i=0; i<_interfaces.length; ++i) {
                                    !                   if (_interfaces[i] instanceof ClassDocImpl) { 
                                    !                      FieldDocImpl fieldDoc 
                                                              = (FieldDocImpl)((ClassDocImpl)_interfaces[i]).getFieldDoc(fieldName);
                                                           if (visitedFields.contains(fieldDoc)) {
                                                              throw new CircularExpressionException("Circular reference detected");
                                    --- 1079,1086 ----
                                                  ClassDoc[] _interfaces = classDoc.interfaces();
                                                  if (null != _interfaces) {
                                                     for (int i=0; i<_interfaces.length; ++i) {
                                    !                   if (_interfaces[i] instanceof ClassDocImpl) {
                                    !                      FieldDocImpl fieldDoc
                                                              = (FieldDocImpl)((ClassDocImpl)_interfaces[i]).getFieldDoc(fieldName);
                                                           if (visitedFields.contains(fieldDoc)) {
                                                              throw new CircularExpressionException("Circular reference detected");
                                    *************** public class ClassDocImpl
                                    *** 1079,1085 ****
                                            }
                                            throw new UnknownIdentifierException(identifier);
                                         }
                                    !    
                                         public Object getValue(String identifier, Set visitedFields)
                                            throws UnknownIdentifierException, IllegalExpressionException
                                         {
                                    --- 1096,1102 ----
                                            }
                                            throw new UnknownIdentifierException(identifier);
                                         }
                                    ! 
                                         public Object getValue(String identifier, Set visitedFields)
                                            throws UnknownIdentifierException, IllegalExpressionException
                                         {
                                    *************** public class ClassDocImpl
                                    *** 1106,1117 ****
                                            return false;
                                         }
                                      
                                    !    // Compares this Object with the specified Object for order. 
                                         public int compareTo(java.lang.Object o) {
                                            int rc;
                                      
                                            if (o instanceof ClassDocImpl) {
                                    !       
                                               ClassDocImpl c1 = this;
                                               ClassDocImpl c2 = (ClassDocImpl)o;
                                      
                                    --- 1123,1134 ----
                                            return false;
                                         }
                                      
                                    !    // Compares this Object with the specified Object for order.
                                         public int compareTo(java.lang.Object o) {
                                            int rc;
                                      
                                            if (o instanceof ClassDocImpl) {
                                    ! 
                                               ClassDocImpl c1 = this;
                                               ClassDocImpl c2 = (ClassDocImpl)o;
                                      
                                    *************** public class ClassDocImpl
                                    *** 1138,1144 ****
                                      
                                               rc = super.compareTo(o);
                                               if (0 == rc) {
                                    !             return Main.getInstance().getCollator().compare(containingPackage().name(), 
                                                                                                  ((ClassDocImpl)o).containingPackage().name());
                                               }
                                               else {
                                    --- 1155,1161 ----
                                      
                                               rc = super.compareTo(o);
                                               if (0 == rc) {
                                    !             return Main.getInstance().getCollator().compare(containingPackage().name(),
                                                                                                  ((ClassDocImpl)o).containingPackage().name());
                                               }
                                               else {
                                    *************** public class ClassDocImpl
                                    *** 1148,1154 ****
                                            else {
                                               return 1;
                                            }
                                    !    } 
                                      
                                         private List importStatementList;
                                      
                                    --- 1165,1171 ----
                                            else {
                                               return 1;
                                            }
                                    !    }
                                      
                                         private List importStatementList;
                                      
                                    *************** public class ClassDocImpl
                                    *** 1157,1163 ****
                                            this.importStatementList = new LinkedList();
                                            this.importStatementList.addAll(importStatementList);
                                         }
                                    !    
                                         public List getImportSpecifierList()
                                         {
                                            return importStatementList;
                                    --- 1174,1180 ----
                                            this.importStatementList = new LinkedList();
                                            this.importStatementList.addAll(importStatementList);
                                         }
                                    ! 
                                         public List getImportSpecifierList()
                                         {
                                            return importStatementList;
                                    *************** public class ClassDocImpl
                                    *** 1189,1230 ****
                                         * @throws ParseException if parsing fails.
                                         */
                                        public static void parseTypeVariables(ClassDocImpl rc,
                                    ! 					String typeVariables)
                                          throws ParseException
                                        {
                                          List parsedBounds = null;
                                          StringTokenizer parameters = new StringTokenizer(typeVariables,
                                    ! 						     Parser.WHITESPACE +
                                    ! 						     "<>,");
                                          List variables = new ArrayList();
                                          while (parameters.hasMoreTokens())
                                            {
                                    ! 	String parameter = parameters.nextToken();
                                    ! 	StringTokenizer parts = new StringTokenizer(parameter,
                                    ! 						    Parser.WHITESPACE);
                                    ! 	TypeVariableImpl variable = new TypeVariableImpl(rc.qualifiedName(),
                                    ! 							 parts.nextToken(),"",
                                    ! 							 rc);
                                    ! 	if (parts.hasMoreTokens())
                                    ! 	  {
                                    ! 	    if (!parts.nextToken().equals("extends"))
                                    ! 	      throw new ParseException("Invalid type parameter: " + parameter);
                                    ! 	    StringTokenizer bounds = new StringTokenizer(parts.nextToken(),
                                    ! 							 Parser.WHITESPACE
                                    ! 							 + "&");
                                    ! 	    parsedBounds = new ArrayList();
                                    ! 	    while (bounds.hasMoreTokens())
                                    ! 	      {
                                    ! 		String bound = bounds.nextToken();
                                    ! 		int nameSep = bound.lastIndexOf(".");
                                    ! 		String packageName = bound.substring(0, nameSep);
                                    ! 		String boundName = bound.substring(nameSep, bound.length());
                                    ! 		parsedBounds.add(new TypeImpl(packageName,boundName,""));
                                    ! 	      }
                                    ! 	  }
                                    ! 	if (parsedBounds != null)
                                    ! 	  variable.setBounds(parsedBounds);
                                    ! 	variables.add(variable);
                                            }
                                          rc.setTypeParameters(variables);
                                        }
                                    --- 1206,1247 ----
                                         * @throws ParseException if parsing fails.
                                         */
                                        public static void parseTypeVariables(ClassDocImpl rc,
                                    !                                         String typeVariables)
                                          throws ParseException
                                        {
                                          List parsedBounds = null;
                                          StringTokenizer parameters = new StringTokenizer(typeVariables,
                                    !                                                      Parser.WHITESPACE +
                                    !                                                      "<>,");
                                          List variables = new ArrayList();
                                          while (parameters.hasMoreTokens())
                                            {
                                    !         String parameter = parameters.nextToken();
                                    !         StringTokenizer parts = new StringTokenizer(parameter,
                                    !                                                     Parser.WHITESPACE);
                                    !         TypeVariableImpl variable = new TypeVariableImpl(rc.qualifiedName(),
                                    !                                                          parts.nextToken(),"",
                                    !                                                          rc);
                                    !         if (parts.hasMoreTokens())
                                    !           {
                                    !             if (!parts.nextToken().equals("extends"))
                                    !               throw new ParseException("Invalid type parameter: " + parameter);
                                    !             StringTokenizer bounds = new StringTokenizer(parts.nextToken(),
                                    !                                                          Parser.WHITESPACE
                                    !                                                          + "&");
                                    !             parsedBounds = new ArrayList();
                                    !             while (bounds.hasMoreTokens())
                                    !               {
                                    !                 String bound = bounds.nextToken();
                                    !                 int nameSep = bound.lastIndexOf(".");
                                    !                 String packageName = bound.substring(0, nameSep);
                                    !                 String boundName = bound.substring(nameSep, bound.length());
                                    !                 parsedBounds.add(new TypeImpl(packageName,boundName,""));
                                    !               }
                                    !           }
                                    !         if (parsedBounds != null)
                                    !           variable.setBounds(parsedBounds);
                                    !         variables.add(variable);
                                            }
                                          rc.setTypeParameters(variables);
                                        }
                                    *************** public class ClassDocImpl
                                    *** 1236,1244 ****
                                         */
                                        void setTypeParameters(List variables)
                                        {
                                    !     typeParameters = 
                                            (TypeVariable[]) variables.toArray(new TypeVariable[variables.size()]);
                                        }
                                      
                                      }
                                    - 
                                    --- 1253,1260 ----
                                         */
                                        void setTypeParameters(List variables)
                                        {
                                    !     typeParameters =
                                            (TypeVariable[]) variables.toArray(new TypeVariable[variables.size()]);
                                        }
                                      
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class ClassDocProxy implements Cl
                                    *** 31,124 ****
                                         private ClassDoc classContext;
                                         private String dimension = "";
                                      
                                    !    public ClassDocProxy(String qualifiedName, ClassDoc classContext) 
                                         {
                                            this.qualifiedName
                                    !          = Main.getRootDoc().resolveClassName(qualifiedName, 
                                                                                    (ClassDocImpl)classContext);
                                            this.classContext=classContext;
                                            int pndx=qualifiedName.lastIndexOf('.');
                                            if (pndx>=0) {
                                    ! 	 this.name=qualifiedName.substring(pndx+1);
                                            }
                                            else {
                                    ! 	 this.name=qualifiedName;
                                            }
                                         }
                                      
                                    !    private final String errorText() 
                                         {
                                            return "CLASS "+qualifiedName+" NOT LOADED.";
                                         }
                                      
                                    !    public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; } 
                                         public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
                                    !    public boolean definesSerializableFields() { return false; } 
                                    !    public FieldDoc[] fields() { return new FieldDoc[0]; } 
                                    !    public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; } 
                                    !    public ClassDoc findClass(java.lang.String className) { return null; } 
                                    !    public ClassDoc[] importedClasses() { return new ClassDoc[0]; } 
                                    !    public PackageDoc[] importedPackages() { return new PackageDoc[0]; } 
                                    !    public ClassDoc[] innerClasses() { return new ClassDoc[0]; } 
                                    !    public ClassDoc[] innerClasses(boolean filtered) { return new ClassDoc[0]; } 
                                    !    public ClassDoc[] interfaces() { return new ClassDoc[0]; } 
                                    !    public boolean isAbstract() { return false; } 
                                    !    public boolean isExternalizable() { return false; } 
                                    !    public boolean isSerializable() { return false; } 
                                    !    public MethodDoc[] methods() { return new MethodDoc[0]; } 
                                    !    public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; } 
                                    !    public FieldDoc[] serializableFields() { return new FieldDoc[0]; } 
                                    !    public MethodDoc[] serializationMethods() { return new MethodDoc[0]; } 
                                    !    public boolean subclassOf(ClassDoc cd) { return false; } 
                                    !    public ClassDoc superclass() { return null; } 
                                    !    public ClassDoc containingClass() { return null; } 
                                    !    public PackageDoc containingPackage() { 
                                            /*
                                            try {
                                    ! 	 File file=Main.getRootDoc().findScheduledClass(qualifiedName, classContext);
                                    ! 	 if (file!=null) {
                                    ! 	    //String clsName=file.getCanonicalFile().getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getCanonicalFile().getAbsolutePath().length()+1);
                                    ! 	    String clsName=file.getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getAbsolutePath().length()+1);
                                    ! 	    clsName=clsName.substring(0,clsName.length()-5).replace(File.separatorChar,'.');
                                    ! 	    Debug.log(9,"ClassDocProxy '"+qualifiedName+"': found class "+clsName);
                                    ! 	    qualifiedName=clsName;
                                    ! 	 }
                                    ! 	 return new PackageDocImpl("test.");
                                            }
                                            catch (Exception e) {
                                    ! 	 return PackageDocImpl.DEFAULT_PACKAGE; 
                                            }
                                            */
                                            return PackageDocImpl.DEFAULT_PACKAGE;
                                    !    } 
                                      
                                    !    public boolean isFinal() { return false; } 
                                    !    public boolean isPackagePrivate() { return false; } 
                                    !    public boolean isPrivate() { return false; } 
                                    !    public boolean isProtected() { return false; } 
                                    !    public boolean isPublic() { return false; } 
                                    !    public boolean isStatic() { return false; } 
                                    !    public String modifiers() { return ""; } 
                                    !    public int modifierSpecifier() { return 0; } 
                                    !    public String qualifiedName() { return qualifiedName; } 
                                    !    public String commentText() { return null; } 
                                    !    public Tag[] firstSentenceTags() { return new Tag[0]; } 
                                    !    public String getRawCommentText() { return null; } 
                                    !    public Tag[] inlineTags() { return new Tag[0]; } 
                                    !    public boolean isClass() { return false; } 
                                    !    public boolean isConstructor() { return false; } 
                                    !    public boolean isError() { return false; } 
                                    !    public boolean isException() { return false; } 
                                    !    public boolean isField() { return false; } 
                                    !    public boolean isIncluded() { return false; } 
                                    !    public boolean isInterface() { return false; } 
                                    !    public boolean isMethod() { return false; } 
                                    !    public boolean isOrdinaryClass() { return false; } 
                                    !    public String name() { return name; } 
                                         public SourcePosition position() { return null; }
                                    !    public SeeTag[] seeTags() { return new SeeTag[0]; } 
                                    !    public void setRawCommentText(java.lang.String rawDocumentation) {} 
                                    !    public Tag[] tags() { return new Tag[0]; } 
                                         public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
                                         public String typeName() { return name; }
                                         public String qualifiedTypeName() { return qualifiedName; }
                                    --- 48,141 ----
                                         private ClassDoc classContext;
                                         private String dimension = "";
                                      
                                    !    public ClassDocProxy(String qualifiedName, ClassDoc classContext)
                                         {
                                            this.qualifiedName
                                    !          = Main.getRootDoc().resolveClassName(qualifiedName,
                                                                                    (ClassDocImpl)classContext);
                                            this.classContext=classContext;
                                            int pndx=qualifiedName.lastIndexOf('.');
                                            if (pndx>=0) {
                                    !          this.name=qualifiedName.substring(pndx+1);
                                            }
                                            else {
                                    !          this.name=qualifiedName;
                                            }
                                         }
                                      
                                    !    private final String errorText()
                                         {
                                            return "CLASS "+qualifiedName+" NOT LOADED.";
                                         }
                                      
                                    !    public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; }
                                         public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
                                    !    public boolean definesSerializableFields() { return false; }
                                    !    public FieldDoc[] fields() { return new FieldDoc[0]; }
                                    !    public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; }
                                    !    public ClassDoc findClass(java.lang.String className) { return null; }
                                    !    public ClassDoc[] importedClasses() { return new ClassDoc[0]; }
                                    !    public PackageDoc[] importedPackages() { return new PackageDoc[0]; }
                                    !    public ClassDoc[] innerClasses() { return new ClassDoc[0]; }
                                    !    public ClassDoc[] innerClasses(boolean filtered) { return new ClassDoc[0]; }
                                    !    public ClassDoc[] interfaces() { return new ClassDoc[0]; }
                                    !    public boolean isAbstract() { return false; }
                                    !    public boolean isExternalizable() { return false; }
                                    !    public boolean isSerializable() { return false; }
                                    !    public MethodDoc[] methods() { return new MethodDoc[0]; }
                                    !    public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; }
                                    !    public FieldDoc[] serializableFields() { return new FieldDoc[0]; }
                                    !    public MethodDoc[] serializationMethods() { return new MethodDoc[0]; }
                                    !    public boolean subclassOf(ClassDoc cd) { return false; }
                                    !    public ClassDoc superclass() { return null; }
                                    !    public ClassDoc containingClass() { return null; }
                                    !    public PackageDoc containingPackage() {
                                            /*
                                            try {
                                    !          File file=Main.getRootDoc().findScheduledClass(qualifiedName, classContext);
                                    !          if (file!=null) {
                                    !             //String clsName=file.getCanonicalFile().getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getCanonicalFile().getAbsolutePath().length()+1);
                                    !             String clsName=file.getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getAbsolutePath().length()+1);
                                    !             clsName=clsName.substring(0,clsName.length()-5).replace(File.separatorChar,'.');
                                    !             Debug.log(9,"ClassDocProxy '"+qualifiedName+"': found class "+clsName);
                                    !             qualifiedName=clsName;
                                    !          }
                                    !          return new PackageDocImpl("test.");
                                            }
                                            catch (Exception e) {
                                    !          return PackageDocImpl.DEFAULT_PACKAGE;
                                            }
                                            */
                                            return PackageDocImpl.DEFAULT_PACKAGE;
                                    !    }
                                      
                                    !    public boolean isFinal() { return false; }
                                    !    public boolean isPackagePrivate() { return false; }
                                    !    public boolean isPrivate() { return false; }
                                    !    public boolean isProtected() { return false; }
                                    !    public boolean isPublic() { return false; }
                                    !    public boolean isStatic() { return false; }
                                    !    public String modifiers() { return ""; }
                                    !    public int modifierSpecifier() { return 0; }
                                    !    public String qualifiedName() { return qualifiedName; }
                                    !    public String commentText() { return null; }
                                    !    public Tag[] firstSentenceTags() { return new Tag[0]; }
                                    !    public String getRawCommentText() { return null; }
                                    !    public Tag[] inlineTags() { return new Tag[0]; }
                                    !    public boolean isClass() { return false; }
                                    !    public boolean isConstructor() { return false; }
                                    !    public boolean isError() { return false; }
                                    !    public boolean isException() { return false; }
                                    !    public boolean isField() { return false; }
                                    !    public boolean isIncluded() { return false; }
                                    !    public boolean isInterface() { return false; }
                                    !    public boolean isMethod() { return false; }
                                    !    public boolean isOrdinaryClass() { return false; }
                                    !    public String name() { return name; }
                                         public SourcePosition position() { return null; }
                                    !    public SeeTag[] seeTags() { return new SeeTag[0]; }
                                    !    public void setRawCommentText(java.lang.String rawDocumentation) {}
                                    !    public Tag[] tags() { return new Tag[0]; }
                                         public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
                                         public String typeName() { return name; }
                                         public String qualifiedTypeName() { return qualifiedName; }
                                    *************** public class ClassDocProxy implements Cl
                                    *** 137,143 ****
                                            return super.clone();
                                         }
                                      
                                    !    // Compares this Object with the specified Object for order. 
                                         public int compareTo(java.lang.Object o) {
                                            if (o instanceof Doc) {
                                               return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
                                    --- 154,160 ----
                                            return super.clone();
                                         }
                                      
                                    !    // Compares this Object with the specified Object for order.
                                         public int compareTo(java.lang.Object o) {
                                            if (o instanceof Doc) {
                                               return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
                                    *************** public class ClassDocProxy implements Cl
                                    *** 147,152 ****
                                            }
                                         }
                                      
                                    !    public TypeVariable[] typeParameters() { return new TypeVariable[0]; } 
                                      
                                      }
                                    --- 164,169 ----
                                            }
                                         }
                                      
                                    !    public TypeVariable[] typeParameters() { return new TypeVariable[0]; }
                                      
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 7,13 ****
                                         it under the terms of the GNU General Public License as published by
                                         the Free Software Foundation; either version 2, or (at your option)
                                         any later version.
                                    !  
                                         GNU Classpath 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
                                    --- 7,13 ----
                                         it under the terms of the GNU General Public License as published by
                                         the Free Software Foundation; either version 2, or (at your option)
                                         any later version.
                                    ! 
                                         GNU Classpath 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
                                    ***************
                                    *** 16,22 ****
                                         You should have received a copy of the GNU General Public License
                                         along with GNU Classpath; see the file COPYING.  If not, write to the
                                         Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    !    02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                         You should have received a copy of the GNU General Public License
                                         along with GNU Classpath; see the file COPYING.  If not, write to the
                                         Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    !    02111-1307 USA.
                                    ! 
                                    !    Linking this library statically or dynamically with other modules is
                                    !    making a combined work based on this library.  Thus, the terms and
                                    !    conditions of the GNU General Public License cover the whole
                                    !    combination.
                                    ! 
                                    !    As a special exception, the copyright holders of this library give you
                                    !    permission to link this library with independent modules to produce an
                                    !    executable, regardless of the license terms of these independent
                                    !    modules, and to copy and distribute the resulting executable under
                                    !    terms of your choice, provided that you also meet, for each linked
                                    !    independent module, the terms and conditions of the license of that
                                    !    module.  An independent module is a module which is not derived from
                                    !    or based on this library.  If you modify this library, you may extend
                                    !    this exception to your version of the library, but you are not
                                    !    obligated to do so.  If you do not wish to do so, delete this
                                    !    exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class ClassDocReflectedImpl
                                    *** 37,43 ****
                                      
                                         public static ClassDocReflectedImpl newInstance(Class clazz)
                                         {
                                    !       ClassDocReflectedImpl result 
                                               = (ClassDocReflectedImpl)reflectionCache.get(clazz);
                                            if (null != result) {
                                               return result;
                                    --- 54,60 ----
                                      
                                         public static ClassDocReflectedImpl newInstance(Class clazz)
                                         {
                                    !       ClassDocReflectedImpl result
                                               = (ClassDocReflectedImpl)reflectionCache.get(clazz);
                                            if (null != result) {
                                               return result;
                                    *************** public class ClassDocReflectedImpl
                                    *** 52,58 ****
                                            reflectionCache.put(clazz, this);
                                      
                                            //System.err.println("ClassDocReflectedImpl: " + clazz);
                                    !       
                                            this.clazz = clazz;
                                            String className = clazz.getName();
                                            int ndx = className.lastIndexOf('.');
                                    --- 69,75 ----
                                            reflectionCache.put(clazz, this);
                                      
                                            //System.err.println("ClassDocReflectedImpl: " + clazz);
                                    ! 
                                            this.clazz = clazz;
                                            String className = clazz.getName();
                                            int ndx = className.lastIndexOf('.');
                                    *************** public class ClassDocReflectedImpl
                                    *** 82,98 ****
                                            }
                                         }
                                      
                                    !    public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; } 
                                         public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
                                    !    public boolean definesSerializableFields() { return false; } 
                                    !    public FieldDoc[] fields() { return new FieldDoc[0]; } 
                                    !    public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; } 
                                    !    public ClassDoc findClass(java.lang.String className) { return null; } 
                                    !    public ClassDoc[] importedClasses() { return new ClassDoc[0]; } 
                                    !    public PackageDoc[] importedPackages() { return new PackageDoc[0]; } 
                                    !    public ClassDoc[] innerClasses() { return new ClassDoc[0]; } 
                                    !    public ClassDoc[] innerClasses(boolean filtered) 
                                    !    { 
                                            if (filtered) {
                                               return new ClassDoc[0];
                                            }
                                    --- 99,115 ----
                                            }
                                         }
                                      
                                    !    public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; }
                                         public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
                                    !    public boolean definesSerializableFields() { return false; }
                                    !    public FieldDoc[] fields() { return new FieldDoc[0]; }
                                    !    public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; }
                                    !    public ClassDoc findClass(java.lang.String className) { return null; }
                                    !    public ClassDoc[] importedClasses() { return new ClassDoc[0]; }
                                    !    public PackageDoc[] importedPackages() { return new PackageDoc[0]; }
                                    !    public ClassDoc[] innerClasses() { return new ClassDoc[0]; }
                                    !    public ClassDoc[] innerClasses(boolean filtered)
                                    !    {
                                            if (filtered) {
                                               return new ClassDoc[0];
                                            }
                                    *************** public class ClassDocReflectedImpl
                                    *** 100,119 ****
                                               return unfilteredInnerClasses;
                                            }
                                         }
                                    !    
                                    !    public ClassDoc[] interfaces() { return new ClassDoc[0]; } 
                                    !    public boolean isAbstract() { return false; } 
                                    !    public boolean isExternalizable() { return false; } 
                                    !    public boolean isSerializable() { return false; } 
                                    !    public MethodDoc[] methods() { return new MethodDoc[0]; } 
                                    !    public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; } 
                                    !    public FieldDoc[] serializableFields() { return new FieldDoc[0]; } 
                                    !    public MethodDoc[] serializationMethods() { return new MethodDoc[0]; } 
                                    !    public boolean subclassOf(ClassDoc cd) { return false; } 
                                    !    public ClassDoc superclass() { 
                                            return superclassDoc;
                                    !    } 
                                    !    public ClassDoc containingClass() 
                                         {
                                            Class declaringClass = clazz.getDeclaringClass();
                                            if (null != declaringClass) {
                                    --- 117,136 ----
                                               return unfilteredInnerClasses;
                                            }
                                         }
                                    ! 
                                    !    public ClassDoc[] interfaces() { return new ClassDoc[0]; }
                                    !    public boolean isAbstract() { return false; }
                                    !    public boolean isExternalizable() { return false; }
                                    !    public boolean isSerializable() { return false; }
                                    !    public MethodDoc[] methods() { return new MethodDoc[0]; }
                                    !    public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; }
                                    !    public FieldDoc[] serializableFields() { return new FieldDoc[0]; }
                                    !    public MethodDoc[] serializationMethods() { return new MethodDoc[0]; }
                                    !    public boolean subclassOf(ClassDoc cd) { return false; }
                                    !    public ClassDoc superclass() {
                                            return superclassDoc;
                                    !    }
                                    !    public ClassDoc containingClass()
                                         {
                                            Class declaringClass = clazz.getDeclaringClass();
                                            if (null != declaringClass) {
                                    *************** public class ClassDocReflectedImpl
                                    *** 122,129 ****
                                            else {
                                               return null;
                                            }
                                    !    } 
                                    !    public PackageDoc containingPackage() 
                                         {
                                            Class outerClass = clazz;
                                            while (null != outerClass.getDeclaringClass()) {
                                    --- 139,146 ----
                                            else {
                                               return null;
                                            }
                                    !    }
                                    !    public PackageDoc containingPackage()
                                         {
                                            Class outerClass = clazz;
                                            while (null != outerClass.getDeclaringClass()) {
                                    *************** public class ClassDocReflectedImpl
                                    *** 142,174 ****
                                            return result;
                                         }
                                      
                                    !    public boolean isFinal() { return false; } 
                                    !    public boolean isPackagePrivate() { return false; } 
                                    !    public boolean isPrivate() { return false; } 
                                    !    public boolean isProtected() { return false; } 
                                    !    public boolean isPublic() { return false; } 
                                    !    public boolean isStatic() { return false; } 
                                    !    public String modifiers() { return ""; } 
                                    !    public int modifierSpecifier() { return 0; } 
                                    !    public String qualifiedName() { return clazz.getName().replace('$', '.'); } 
                                    !    public String commentText() { return null; } 
                                    !    public Tag[] firstSentenceTags() { return new Tag[0]; } 
                                    !    public String getRawCommentText() { return null; } 
                                    !    public Tag[] inlineTags() { return new Tag[0]; } 
                                    !    public boolean isClass() { return false; } 
                                    !    public boolean isConstructor() { return false; } 
                                    !    public boolean isError() { return false; } 
                                    !    public boolean isException() { return false; } 
                                    !    public boolean isField() { return false; } 
                                    !    public boolean isIncluded() { return false; } 
                                    !    public boolean isInterface() { return false; } 
                                    !    public boolean isMethod() { return false; } 
                                    !    public boolean isOrdinaryClass() { return false; } 
                                    !    public String name() { return name; } 
                                         public SourcePosition position() { return null; }
                                    !    public SeeTag[] seeTags() { return new SeeTag[0]; } 
                                    !    public void setRawCommentText(java.lang.String rawDocumentation) {} 
                                    !    public Tag[] tags() { return new Tag[0]; } 
                                         public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
                                         public String typeName() { return name; }
                                         public String qualifiedTypeName() { return qualifiedName(); }
                                    --- 159,191 ----
                                            return result;
                                         }
                                      
                                    !    public boolean isFinal() { return false; }
                                    !    public boolean isPackagePrivate() { return false; }
                                    !    public boolean isPrivate() { return false; }
                                    !    public boolean isProtected() { return false; }
                                    !    public boolean isPublic() { return false; }
                                    !    public boolean isStatic() { return false; }
                                    !    public String modifiers() { return ""; }
                                    !    public int modifierSpecifier() { return 0; }
                                    !    public String qualifiedName() { return clazz.getName().replace('$', '.'); }
                                    !    public String commentText() { return null; }
                                    !    public Tag[] firstSentenceTags() { return new Tag[0]; }
                                    !    public String getRawCommentText() { return null; }
                                    !    public Tag[] inlineTags() { return new Tag[0]; }
                                    !    public boolean isClass() { return false; }
                                    !    public boolean isConstructor() { return false; }
                                    !    public boolean isError() { return false; }
                                    !    public boolean isException() { return false; }
                                    !    public boolean isField() { return false; }
                                    !    public boolean isIncluded() { return false; }
                                    !    public boolean isInterface() { return false; }
                                    !    public boolean isMethod() { return false; }
                                    !    public boolean isOrdinaryClass() { return false; }
                                    !    public String name() { return name; }
                                         public SourcePosition position() { return null; }
                                    !    public SeeTag[] seeTags() { return new SeeTag[0]; }
                                    !    public void setRawCommentText(java.lang.String rawDocumentation) {}
                                    !    public Tag[] tags() { return new Tag[0]; }
                                         public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
                                         public String typeName() { return name; }
                                         public String qualifiedTypeName() { return qualifiedName(); }
                                    *************** public class ClassDocReflectedImpl
                                    *** 197,202 ****
                                            return super.clone();
                                         }
                                      
                                    !    public TypeVariable[] typeParameters() { return new TypeVariable[0]; } 
                                      
                                      }
                                    --- 214,219 ----
                                            return super.clone();
                                         }
                                      
                                    !    public TypeVariable[] typeParameters() { return new TypeVariable[0]; }
                                      
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import com.sun.javadoc.*;
                                    *** 26,42 ****
                                      public class ConstructorDocImpl extends ExecutableMemberDocImpl implements ConstructorDoc {
                                      
                                         public ConstructorDocImpl(ClassDoc containingClass,
                                    ! 			     PackageDoc containingPackage,
                                                                   SourcePosition position) {
                                    !       
                                            super(containingClass,
                                    ! 	    containingPackage,
                                                  position);
                                         }
                                      
                                    !    // Is this Doc item a constructor. 
                                         public boolean isConstructor() {
                                            return true;
                                    !    } 
                                      
                                      }
                                    --- 43,59 ----
                                      public class ConstructorDocImpl extends ExecutableMemberDocImpl implements ConstructorDoc {
                                      
                                         public ConstructorDocImpl(ClassDoc containingClass,
                                    !                              PackageDoc containingPackage,
                                                                   SourcePosition position) {
                                    ! 
                                            super(containingClass,
                                    !             containingPackage,
                                                  position);
                                         }
                                      
                                    !    // Is this Doc item a constructor.
                                         public boolean isConstructor() {
                                            return true;
                                    !    }
                                      
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public final class Debug {
                                    *** 36,50 ****
                                      
                                         public static final void log(int level, String msg) {
                                            if (level<=logLevel) {
                                    ! 	 System.err.println(msg);
                                            }
                                         }
                                      
                                         public static final void dumpArray(int level, Object[] array) {
                                            if (level<=logLevel) {
                                    ! 	 for (int i=0; i<array.length; ++i) {
                                    ! 	    System.err.println("  #"+i+": "+array[i]);
                                    ! 	 }
                                            }
                                         }
                                      }
                                    --- 53,67 ----
                                      
                                         public static final void log(int level, String msg) {
                                            if (level<=logLevel) {
                                    !          System.err.println(msg);
                                            }
                                         }
                                      
                                         public static final void dumpArray(int level, Object[] array) {
                                            if (level<=logLevel) {
                                    !          for (int i=0; i<array.length; ++i) {
                                    !             System.err.println("  #"+i+": "+array[i]);
                                    !          }
                                            }
                                         }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class DirectoryTree {
                                    *** 29,42 ****
                                            FileNode[] subNodes;
                                      
                                            FileNode(File file) {
                                    ! 	 this.file=file;
                                    ! 	 if (file.isDirectory()) {
                                    ! 	    File[] subFiles=file.listFiles();
                                    ! 	    subNodes=new FileNode[subFiles.length];
                                    ! 	    for (int i=0; i<subFiles.length; ++i) {
                                    ! 	       subNodes[i]=new FileNode(subFiles[i]);
                                    ! 	    }
                                    ! 	 }
                                            }
                                         }
                                      
                                    --- 46,59 ----
                                            FileNode[] subNodes;
                                      
                                            FileNode(File file) {
                                    !          this.file=file;
                                    !          if (file.isDirectory()) {
                                    !             File[] subFiles=file.listFiles();
                                    !             subNodes=new FileNode[subFiles.length];
                                    !             for (int i=0; i<subFiles.length; ++i) {
                                    !                subNodes[i]=new FileNode(subFiles[i]);
                                    !             }
                                    !          }
                                            }
                                         }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public abstract class DocImpl implements
                                    *** 39,64 ****
                                         protected SourcePosition position;
                                         private String boilerplateComment;
                                      
                                    !    // Return the text of the comment for this doc item. 
                                         public String commentText() {
                                      
                                            StringBuffer rc=new StringBuffer();
                                      
                                            Tag[] textTags=(Tag[])tagMap.get("text");
                                            if (textTags!=null) {
                                    ! 	 for (int i=0; i<textTags.length; ++i) {
                                    ! 	    rc.append(textTags[i].text());
                                    ! 	 }
                                            }
                                            return rc.toString();
                                         }
                                      
                                    !    // Compares this Object with the specified Object for order. 
                                         public int compareTo(java.lang.Object o) {
                                            return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
                                    !    } 
                                      
                                    !    // Return the first sentence of the comment as tags. 
                                         public Tag[] firstSentenceTags() {
                                      
                                            Tag[] rc=(Tag[])tagMap.get("first");
                                    --- 56,81 ----
                                         protected SourcePosition position;
                                         private String boilerplateComment;
                                      
                                    !    // Return the text of the comment for this doc item.
                                         public String commentText() {
                                      
                                            StringBuffer rc=new StringBuffer();
                                      
                                            Tag[] textTags=(Tag[])tagMap.get("text");
                                            if (textTags!=null) {
                                    !          for (int i=0; i<textTags.length; ++i) {
                                    !             rc.append(textTags[i].text());
                                    !          }
                                            }
                                            return rc.toString();
                                         }
                                      
                                    !    // Compares this Object with the specified Object for order.
                                         public int compareTo(java.lang.Object o) {
                                            return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
                                    !    }
                                      
                                    !    // Return the first sentence of the comment as tags.
                                         public Tag[] firstSentenceTags() {
                                      
                                            Tag[] rc=(Tag[])tagMap.get("first");
                                    *************** public abstract class DocImpl implements
                                    *** 66,82 ****
                                            return rc;
                                         }
                                      
                                    !    // Return the full unprocessed text of the comment. 
                                         public String getRawCommentText() {
                                            if (rawDocumentation!=null)
                                    ! 	  return rawDocumentation;
                                            else if (rawDocOffset>=0)
                                    ! 	 return Main.getRootDoc().readRawComment(rawDocOffset);      
                                            else
                                    ! 	 return null;
                                    !    } 
                                      
                                    !    // Return comment as tags. 
                                         public Tag[] inlineTags() {
                                      
                                            Tag[] rc=(Tag[])tagMap.get("inline");
                                    --- 83,99 ----
                                            return rc;
                                         }
                                      
                                    !    // Return the full unprocessed text of the comment.
                                         public String getRawCommentText() {
                                            if (rawDocumentation!=null)
                                    !           return rawDocumentation;
                                            else if (rawDocOffset>=0)
                                    !          return Main.getRootDoc().readRawComment(rawDocOffset);
                                            else
                                    !          return null;
                                    !    }
                                      
                                    !    // Return comment as tags.
                                         public Tag[] inlineTags() {
                                      
                                            Tag[] rc=(Tag[])tagMap.get("inline");
                                    *************** public abstract class DocImpl implements
                                    *** 84,139 ****
                                            return rc;
                                         }
                                      
                                    !    // Is this Doc item a class. 
                                         public boolean isClass() {
                                            return false;
                                    !    } 
                                      
                                    !    // Is this Doc item a constructor? False until overridden. 
                                         public boolean isConstructor() {
                                            return false;
                                    !    } 
                                      
                                    !    // Is this Doc item a error class? False until overridden. 
                                         public boolean isError() {
                                            return false;
                                    !    } 
                                      
                                    !    // Is this Doc item a exception class? False until overridden. 
                                         public boolean isException() {
                                            return false;
                                    !    } 
                                      
                                    !    // Is this Doc item a field? False until overridden. 
                                         public boolean isField() {
                                            return false;
                                    !    } 
                                      
                                    !    // return true if this Doc is include in the active set. 
                                         public boolean isIncluded() {
                                            return false;
                                    !    } 
                                      
                                    !    // Is this Doc item a interface? False until overridden. 
                                         public boolean isInterface() {
                                            return false;
                                    !    } 
                                      
                                    !    // Is this Doc item a simple method (i.e. 
                                         public boolean isMethod() {
                                            return false;
                                    !    } 
                                      
                                         public boolean isPackage() {
                                            return false;
                                    !    } 
                                      
                                    !    // Is this Doc item a ordinary class (i.e. 
                                         public boolean isOrdinaryClass() {
                                            return false;
                                    !    } 
                                      
                                    !    // Return the see also tags in this Doc item. 
                                         public SeeTag[] seeTags() {
                                            return (SeeTag[])getTagArr("see", seeTagEmptyArr);
                                         }
                                    --- 101,156 ----
                                            return rc;
                                         }
                                      
                                    !    // Is this Doc item a class.
                                         public boolean isClass() {
                                            return false;
                                    !    }
                                      
                                    !    // Is this Doc item a constructor? False until overridden.
                                         public boolean isConstructor() {
                                            return false;
                                    !    }
                                      
                                    !    // Is this Doc item a error class? False until overridden.
                                         public boolean isError() {
                                            return false;
                                    !    }
                                      
                                    !    // Is this Doc item a exception class? False until overridden.
                                         public boolean isException() {
                                            return false;
                                    !    }
                                      
                                    !    // Is this Doc item a field? False until overridden.
                                         public boolean isField() {
                                            return false;
                                    !    }
                                      
                                    !    // return true if this Doc is include in the active set.
                                         public boolean isIncluded() {
                                            return false;
                                    !    }
                                      
                                    !    // Is this Doc item a interface? False until overridden.
                                         public boolean isInterface() {
                                            return false;
                                    !    }
                                      
                                    !    // Is this Doc item a simple method (i.e.
                                         public boolean isMethod() {
                                            return false;
                                    !    }
                                      
                                         public boolean isPackage() {
                                            return false;
                                    !    }
                                      
                                    !    // Is this Doc item a ordinary class (i.e.
                                         public boolean isOrdinaryClass() {
                                            return false;
                                    !    }
                                      
                                    !    // Return the see also tags in this Doc item.
                                         public SeeTag[] seeTags() {
                                            return (SeeTag[])getTagArr("see", seeTagEmptyArr);
                                         }
                                    *************** public abstract class DocImpl implements
                                    *** 142,163 ****
                                            Tag[] rc=(Tag[])tagMap.get(kindOfTag);
                                            if (rc==null) rc=defaultRc;
                                            return rc;
                                    !    } 
                                      
                                    !    // Set the full unprocessed text of the comment. 
                                         public void setRawCommentText(String rawDocumentation) {
                                            this.rawDocumentation=rawDocumentation;
                                    !    } 
                                      
                                         public void resolveComments() {
                                    !       
                                            if (rawDocumentation!=null && tagMap.isEmpty()) {
                                               char[] charArray = rawDocumentation.toCharArray();
                                               int length = rawDocumentation.length();
                                               int startOffset = 0;
                                               int endOffset = 0;
                                    !          if (charArray[0] == '/' 
                                    !              && charArray[1] == '*' 
                                                   && charArray[2] == '*'
                                                   && charArray[length - 2] == '*'
                                                   && charArray[length - 1] == '/') {
                                    --- 159,180 ----
                                            Tag[] rc=(Tag[])tagMap.get(kindOfTag);
                                            if (rc==null) rc=defaultRc;
                                            return rc;
                                    !    }
                                      
                                    !    // Set the full unprocessed text of the comment.
                                         public void setRawCommentText(String rawDocumentation) {
                                            this.rawDocumentation=rawDocumentation;
                                    !    }
                                      
                                         public void resolveComments() {
                                    ! 
                                            if (rawDocumentation!=null && tagMap.isEmpty()) {
                                               char[] charArray = rawDocumentation.toCharArray();
                                               int length = rawDocumentation.length();
                                               int startOffset = 0;
                                               int endOffset = 0;
                                    !          if (charArray[0] == '/'
                                    !              && charArray[1] == '*'
                                                   && charArray[2] == '*'
                                                   && charArray[length - 2] == '*'
                                                   && charArray[length - 1] == '/') {
                                    *************** public abstract class DocImpl implements
                                    *** 179,185 ****
                                                  rawDocumentation=null;
                                               }
                                      
                                    ! 	 resolveTags();
                                            }
                                            else if (tagMap.isEmpty() && null != boilerplateComment) {
                                               tagMap.put("all", new Tag[] { new TagImpl("@boilerplate", boilerplateComment,getContextClass(),null) });
                                    --- 196,202 ----
                                                  rawDocumentation=null;
                                               }
                                      
                                    !          resolveTags();
                                            }
                                            else if (tagMap.isEmpty() && null != boilerplateComment) {
                                               tagMap.put("all", new Tag[] { new TagImpl("@boilerplate", boilerplateComment,getContextClass(),null) });
                                    *************** public abstract class DocImpl implements
                                    *** 189,195 ****
                                      
                                         public static int skipHtmlWhitespace(char[] buffer, int startIndex) {
                                            while (startIndex < buffer.length) {
                                    ! 	 char c=buffer[startIndex];
                                               if (!Parser.isWhitespace(c)) {
                                                  break;
                                               }
                                    --- 206,212 ----
                                      
                                         public static int skipHtmlWhitespace(char[] buffer, int startIndex) {
                                            while (startIndex < buffer.length) {
                                    !          char c=buffer[startIndex];
                                               if (!Parser.isWhitespace(c)) {
                                                  break;
                                               }
                                    *************** public abstract class DocImpl implements
                                    *** 199,220 ****
                                            }
                                            return startIndex;
                                         }
                                    !    
                                         /**
                                          *  Looks for an end-of-sentence marker in <code>text</code>,
                                          *  starting at <code>startIndex</code> and stopping at
                                    !     *  <code>endIndex</code>. 
                                          *
                                          *  @param text  the text to be searched
                                          *  @param startIndex  index in <code>text</code> at which to start
                                          *  @param endIndex  index in <code>text</code> at which to stop
                                          *
                                    !     *  @return the index of the character following the end-of-sentence 
                                          *    marker, <code>endIndex</code> if no end-of-sentence
                                          *    marker could be found, or -1 if not implemented.
                                          */
                                         private static int findEndOfSentence(char[] text, int startIndex,
                                    ! 		   			int endIndex)
                                         {
                                            if (Main.getInstance().isUseBreakIterator()) {
                                               Segment segment = new Segment(text, startIndex, endIndex - startIndex);
                                    --- 216,237 ----
                                            }
                                            return startIndex;
                                         }
                                    ! 
                                         /**
                                          *  Looks for an end-of-sentence marker in <code>text</code>,
                                          *  starting at <code>startIndex</code> and stopping at
                                    !     *  <code>endIndex</code>.
                                          *
                                          *  @param text  the text to be searched
                                          *  @param startIndex  index in <code>text</code> at which to start
                                          *  @param endIndex  index in <code>text</code> at which to stop
                                          *
                                    !     *  @return the index of the character following the end-of-sentence
                                          *    marker, <code>endIndex</code> if no end-of-sentence
                                          *    marker could be found, or -1 if not implemented.
                                          */
                                         private static int findEndOfSentence(char[] text, int startIndex,
                                    !                                         int endIndex)
                                         {
                                            if (Main.getInstance().isUseBreakIterator()) {
                                               Segment segment = new Segment(text, startIndex, endIndex - startIndex);
                                    *************** public abstract class DocImpl implements
                                    *** 237,244 ****
                                                          )) {
                                                     return startIndex;
                                                  }
                                    !             
                                    ! 	    startIndex++;
                                               }
                                               return endIndex;
                                            }
                                    --- 254,261 ----
                                                          )) {
                                                     return startIndex;
                                                  }
                                    ! 
                                    !             startIndex++;
                                               }
                                               return endIndex;
                                            }
                                    *************** public abstract class DocImpl implements
                                    *** 315,321 ****
                                            return bufPos;
                                         }
                                      
                                    !    public static Map parseCommentTags(char[] comment, int startIndex, int endIndex, 
                                                                            ClassDocImpl contextClass, MemberDocImpl contextMember,
                                                                            AbstractTagImpl contextTag, String boilerplateComment) {
                                      
                                    --- 332,338 ----
                                            return bufPos;
                                         }
                                      
                                    !    public static Map parseCommentTags(char[] comment, int startIndex, int endIndex,
                                                                            ClassDocImpl contextClass, MemberDocImpl contextMember,
                                                                            AbstractTagImpl contextTag, String boilerplateComment) {
                                      
                                    *************** public abstract class DocImpl implements
                                    *** 325,357 ****
                                      
                                            if (comment.length>rawDocStart) {
                                      
                                    ! 	 firstSentenceEnd = findEndOfSentence(comment, rawDocStart, comment.length);
                                    ! 	 
                                    ! 	 if (firstSentenceEnd < 0) {
                                    ! 	    BreakIterator boundary = BreakIterator.getSentenceInstance(Locale.ENGLISH);
                                    ! 	    boundary.setText(new ArrayCharacterIterator(comment, rawDocStart));
                                    ! 	    boundary.first();
                                    ! 	    boundary.next();
                                    ! 	    firstSentenceEnd = boundary.current();
                                    ! 	 }
                                      
                                    ! 	 // Always include period at end of sentence if there is one.
                                    ! 	 if (firstSentenceEnd < comment.length
                                    ! 			 && '.' == comment[firstSentenceEnd]) {
                                    ! 	    ++ firstSentenceEnd;
                                    ! 	 }
                                            }
                                      
                                    !       final int	STATE_BEGOFLINE		   = 1;
                                    !       final int	STATE_TEXT		   = 2;
                                    !       final int	STATE_PARAM		   = 3;
                                    !       final int	STATE_PARAMVALUE	   = 4;
                                    !       final int	STATE_PARAMWRAP		   = 5;
                                    !       final int	STATE_INLINEPARAM	   = 6;
                                    !       final int	STATE_INLINEPARAMVALUE	   = 7;
                                    !       final int	STATE_WHITESPACE	   = 8;
                                    !       final int	STATE_INLINEPARAMVALUE_BOL = 9;
                                    !       final int	STATE_IPV_WHITESPACE       = 10;
                                      
                                            int state=STATE_BEGOFLINE;
                                            int prevState=STATE_TEXT;
                                    --- 342,374 ----
                                      
                                            if (comment.length>rawDocStart) {
                                      
                                    !          firstSentenceEnd = findEndOfSentence(comment, rawDocStart, comment.length);
                                      
                                    !          if (firstSentenceEnd < 0) {
                                    !             BreakIterator boundary = BreakIterator.getSentenceInstance(Locale.ENGLISH);
                                    !             boundary.setText(new ArrayCharacterIterator(comment, rawDocStart));
                                    !             boundary.first();
                                    !             boundary.next();
                                    !             firstSentenceEnd = boundary.current();
                                    !          }
                                    ! 
                                    !          // Always include period at end of sentence if there is one.
                                    !          if (firstSentenceEnd < comment.length
                                    !                          && '.' == comment[firstSentenceEnd]) {
                                    !             ++ firstSentenceEnd;
                                    !          }
                                            }
                                      
                                    !       final int STATE_BEGOFLINE            = 1;
                                    !       final int STATE_TEXT                 = 2;
                                    !       final int STATE_PARAM                = 3;
                                    !       final int STATE_PARAMVALUE           = 4;
                                    !       final int STATE_PARAMWRAP            = 5;
                                    !       final int STATE_INLINEPARAM          = 6;
                                    !       final int STATE_INLINEPARAMVALUE     = 7;
                                    !       final int STATE_WHITESPACE           = 8;
                                    !       final int STATE_INLINEPARAMVALUE_BOL = 9;
                                    !       final int STATE_IPV_WHITESPACE       = 10;
                                      
                                            int state=STATE_BEGOFLINE;
                                            int prevState=STATE_TEXT;
                                    *************** public abstract class DocImpl implements
                                    *** 369,661 ****
                                            final char EOL=(char)-1;
                                      
                                            for (int i=rawDocStart; i<=endIndex; ++i) {
                                    ! 	 char c=(i<endIndex)?comment[i]:EOL;
                                    ! 	 char peek=(i<endIndex-1)?comment[i+1]:EOL;
                                      
                                    ! 	 switch (state){
                                      
                                    ! 	 case STATE_BEGOFLINE:
                                    ! 	    if (i==firstSentenceEnd) {
                                    ! 	       AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    ! 	       setBufLength(0);
                                    ! 	    }
                                      
                                    ! 	    if (Parser.isWhitespace(c)) {
                                    ! 	       // ignore
                                    ! 	    }
                                    ! 	    else if (c=='*') {
                                    ! 	       // ignore, but go to STATE_TEXT
                                    ! 	       if (peek!='*' && peek!='@' && peek!=EOL) {
                                    ! 		  state=STATE_WHITESPACE;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if (c=='@' || (c=='{' && peek=='@') || c==EOL) {
                                    ! 	       if (bufLength()>0) { 
                                    ! 		  addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                    ! 		  setBufLength(0);
                                    ! 	       }
                                    ! 	       if (c=='{') {
                                    ! 		  ++i;
                                    ! 		  state=STATE_INLINEPARAM;
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  state=STATE_PARAM;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       state=STATE_TEXT;
                                    ! 	       appendToBuf(whitespaceBuf);
                                    ! 	       whitespaceBuf.setLength(0);
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_WHITESPACE:
                                    ! 	    if (i==firstSentenceEnd) {
                                    ! 	       AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    ! 	       setBufLength(0);
                                    ! 	    }
                                      
                                    ! 	    if (c=='\n') {
                                    ! 	       whitespaceBuf.append(c);
                                    ! 	       state=STATE_BEGOFLINE;
                                    ! 	    }
                                    ! 	    else if (Parser.isWhitespace(c)) {
                                    ! 	       whitespaceBuf.append(c);
                                    ! 	    }
                                    ! 	    else if (c=='@' || (c=='{' && peek=='@') || c==EOL) {
                                    ! 	       if (bufLength()>0) { 
                                    ! 		  AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                        if (null != newTag) {
                                                           contextTag = newTag;
                                                        }
                                    ! 		  setBufLength(0);
                                    ! 	       }
                                    ! 	       if (c=='{') {
                                    ! 		  ++i;
                                    ! 		  state=STATE_INLINEPARAM;
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  state=STATE_PARAM;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       appendToBuf(whitespaceBuf);
                                    ! 	       whitespaceBuf.setLength(0);
                                    ! 	       appendToBuf(c);
                                    ! 	       state=STATE_TEXT;
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_PARAMWRAP:
                                    ! 	    if (c=='\n') {
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    else if (Parser.isWhitespace(c)) {
                                    ! 	       // ignore
                                    ! 	    }
                                    ! 	    else if (c=='*') {
                                    ! 	       // ignore, but go to STATE_TEXT
                                    ! 	       /*
                                    ! 	       if (i<endIndex && comment[i+1]!='*' && comment[i+1]!='@') {
                                    ! 		  state=STATE_PARAMVALUE;
                                    ! 	       }
                                    ! 	       */
                                    ! 	    }
                                    ! 	    else if (c=='@' || c==EOL) {
                                    ! 	       paramValue=bufToString();
                                    ! 	       AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    ! 	       setBufLength(0);
                                    ! 	       if (c=='{') {
                                    ! 		  ++i;
                                    ! 		  state=STATE_INLINEPARAM;
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  state=STATE_PARAM;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       state=STATE_PARAMVALUE;
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_PARAM:
                                    ! 	    if (!(c==EOL || Parser.isWhitespace(c))) {
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    else if (c=='\n') {
                                    ! 	       paramName=bufToString();
                                    ! 	       setBufLength(0);
                                    ! 	       state=STATE_PARAMWRAP;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       paramName=bufToString();
                                    ! 	       setBufLength(0);
                                    ! 	       state=STATE_PARAMVALUE;
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_INLINEPARAM:
                                    ! 	    if (c=='}') {
                                                     // tag without value
                                    ! 	       paramName=bufToString();
                                    ! 	       AbstractTagImpl newTag = addTag(tags, paramName, "", i<firstSentenceEnd, contextClass, contextMember, contextTag, true);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                                     state=prevState;
                                                     setBufLength(0);
                                                  }
                                    ! 	    else if (!(c==EOL || Parser.isWhitespace(c))) {
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    else if (c=='\n') {
                                    ! 	       paramName=bufToString();
                                    ! 	       setBufLength(0);
                                    ! 	       state=STATE_INLINEPARAMVALUE_BOL;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       paramName=bufToString();
                                    ! 	       setBufLength(0);
                                    ! 	       state=STATE_INLINEPARAMVALUE;
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_PARAMVALUE:
                                    ! 	    if (c==EOL) {
                                    ! 	       paramValue=bufToString();
                                    ! 	       AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    ! 	    }
                                    ! 	    else if (c=='\n') {
                                    ! 	       appendToBuf(c);
                                    ! 	       state=STATE_PARAMWRAP;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_INLINEPARAMVALUE:
                                    ! 	    if (c=='\n') {
                                    ! 	       appendToBuf(c);
                                    ! 	       state=STATE_INLINEPARAMVALUE_BOL;
                                    ! 	    }
                                    ! 	    else if (c==EOL || c=='}') {
                                    ! 	       paramValue=bufToString();
                                    ! 	       AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, true);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    ! 	       state=prevState;
                                    ! 	       setBufLength(0);
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_INLINEPARAMVALUE_BOL:
                                    ! 	    if (Parser.isWhitespace(c)) {
                                    ! 	       // ignore
                                    ! 	    }
                                    ! 	    else if (c=='*') {
                                    ! 	       // ignore, but go to STATE_TEXT
                                    ! 	       if (i<endIndex && peek!='*') {
                                    ! 		  state=STATE_IPV_WHITESPACE;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if (c==EOL) {
                                    ! 	       if (bufLength()>0) { 
                                    ! 		  AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                        if (null != newTag) {
                                                           contextTag = newTag;
                                                        }
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       state=STATE_INLINEPARAMVALUE;
                                    ! 	       appendToBuf(whitespaceBuf);
                                    ! 	       whitespaceBuf.setLength(0);
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_IPV_WHITESPACE:
                                    ! 	    if (c=='\n') {
                                    ! 	       whitespaceBuf.append(c);
                                    ! 	       state=STATE_INLINEPARAMVALUE_BOL;
                                    ! 	    }
                                    ! 	    else if (Parser.isWhitespace(c)) {
                                    ! 	       whitespaceBuf.append(c);
                                    ! 	    }
                                    ! 	    else if (c==EOL) {
                                    ! 	       if (bufLength()>0) { 
                                    ! 		  AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                        if (null != newTag) {
                                                           contextTag = newTag;
                                                        }
                                    ! 		  setBufLength(0);
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       appendToBuf(whitespaceBuf);
                                    ! 	       whitespaceBuf.setLength(0);
                                    ! 	       appendToBuf(c);
                                    ! 	       state=STATE_INLINEPARAMVALUE;
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 case STATE_TEXT:
                                    ! 	    if (i==firstSentenceEnd) {
                                    ! 	       AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    ! 	       setBufLength(0);
                                    ! 	    }
                                      
                                    ! 	    if (c==EOL) {
                                    ! 	       paramValue=bufToString();
                                    ! 	       AbstractTagImpl newTag = addTag(tags, "text", paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    ! 	    }
                                    ! 	    else if (c=='\n') {
                                    ! 	       appendToBuf(c);
                                    ! 	       state=STATE_BEGOFLINE;
                                    ! 	    }
                                    ! 	    else if (c=='{' && peek=='@') {
                                    ! 	       paramValue=bufToString();
                                    ! 	       AbstractTagImpl newTag = addTag(tags, "text", paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    ! 	       ++i;
                                                     setBufLength(0);
                                    ! 	       state=STATE_INLINEPARAM;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       appendToBuf(c);
                                    ! 	    }
                                    ! 	    break;
                                      
                                    ! 	 default:
                                    ! 	    throw new Error("illegal state "+state);
                                    ! 	 }
                                            }
                                      
                                      
                                    --- 386,678 ----
                                            final char EOL=(char)-1;
                                      
                                            for (int i=rawDocStart; i<=endIndex; ++i) {
                                    !          char c=(i<endIndex)?comment[i]:EOL;
                                    !          char peek=(i<endIndex-1)?comment[i+1]:EOL;
                                      
                                    !          switch (state){
                                      
                                    !          case STATE_BEGOFLINE:
                                    !             if (i==firstSentenceEnd) {
                                    !                AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    !                setBufLength(0);
                                    !             }
                                      
                                    !             if (Parser.isWhitespace(c)) {
                                    !                // ignore
                                    !             }
                                    !             else if (c=='*') {
                                    !                // ignore, but go to STATE_TEXT
                                    !                if (peek!='*' && peek!='@' && peek!=EOL) {
                                    !                   state=STATE_WHITESPACE;
                                    !                }
                                    !             }
                                    !             else if (c=='@' || (c=='{' && peek=='@') || c==EOL) {
                                    !                if (bufLength()>0) {
                                    !                   addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                    !                   setBufLength(0);
                                    !                }
                                    !                if (c=='{') {
                                    !                   ++i;
                                    !                   state=STATE_INLINEPARAM;
                                    !                }
                                    !                else {
                                    !                   state=STATE_PARAM;
                                    !                }
                                    !             }
                                    !             else {
                                    !                state=STATE_TEXT;
                                    !                appendToBuf(whitespaceBuf);
                                    !                whitespaceBuf.setLength(0);
                                    !                appendToBuf(c);
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_WHITESPACE:
                                    !             if (i==firstSentenceEnd) {
                                    !                AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    !                setBufLength(0);
                                    !             }
                                      
                                    !             if (c=='\n') {
                                    !                whitespaceBuf.append(c);
                                    !                state=STATE_BEGOFLINE;
                                    !             }
                                    !             else if (Parser.isWhitespace(c)) {
                                    !                whitespaceBuf.append(c);
                                    !             }
                                    !             else if (c=='@' || (c=='{' && peek=='@') || c==EOL) {
                                    !                if (bufLength()>0) {
                                    !                   AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                        if (null != newTag) {
                                                           contextTag = newTag;
                                                        }
                                    !                   setBufLength(0);
                                    !                }
                                    !                if (c=='{') {
                                    !                   ++i;
                                    !                   state=STATE_INLINEPARAM;
                                    !                }
                                    !                else {
                                    !                   state=STATE_PARAM;
                                    !                }
                                    !             }
                                    !             else {
                                    !                appendToBuf(whitespaceBuf);
                                    !                whitespaceBuf.setLength(0);
                                    !                appendToBuf(c);
                                    !                state=STATE_TEXT;
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_PARAMWRAP:
                                    !             if (c=='\n') {
                                    !                appendToBuf(c);
                                    !             }
                                    !             else if (Parser.isWhitespace(c)) {
                                    !                // ignore
                                    !             }
                                    !             else if (c=='*') {
                                    !                // ignore, but go to STATE_TEXT
                                    !                /*
                                    !                if (i<endIndex && comment[i+1]!='*' && comment[i+1]!='@') {
                                    !                   state=STATE_PARAMVALUE;
                                    !                }
                                    !                */
                                    !             }
                                    !             else if (c=='@' || c==EOL) {
                                    !                paramValue=bufToString();
                                    !                AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    !                setBufLength(0);
                                    !                if (c=='{') {
                                    !                   ++i;
                                    !                   state=STATE_INLINEPARAM;
                                    !                }
                                    !                else {
                                    !                   state=STATE_PARAM;
                                    !                }
                                    !             }
                                    !             else {
                                    !                state=STATE_PARAMVALUE;
                                    !                appendToBuf(c);
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_PARAM:
                                    !             if (!(c==EOL || Parser.isWhitespace(c))) {
                                    !                appendToBuf(c);
                                    !             }
                                    !             else if (c=='\n') {
                                    !                paramName=bufToString();
                                    !                setBufLength(0);
                                    !                state=STATE_PARAMWRAP;
                                    !             }
                                    !             else {
                                    !                paramName=bufToString();
                                    !                setBufLength(0);
                                    !                state=STATE_PARAMVALUE;
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_INLINEPARAM:
                                    !             if (c=='}') {
                                                     // tag without value
                                    !                paramName=bufToString();
                                    !                AbstractTagImpl newTag = addTag(tags, paramName, "", i<firstSentenceEnd, contextClass, contextMember, contextTag, true);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                                     state=prevState;
                                                     setBufLength(0);
                                                  }
                                    !             else if (!(c==EOL || Parser.isWhitespace(c))) {
                                    !                appendToBuf(c);
                                    !             }
                                    !             else if (c=='\n') {
                                    !                paramName=bufToString();
                                    !                setBufLength(0);
                                    !                state=STATE_INLINEPARAMVALUE_BOL;
                                    !             }
                                    !             else {
                                    !                paramName=bufToString();
                                    !                setBufLength(0);
                                    !                state=STATE_INLINEPARAMVALUE;
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_PARAMVALUE:
                                    !             if (c==EOL) {
                                    !                paramValue=bufToString();
                                    !                AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    !             }
                                    !             else if (c=='\n') {
                                    !                appendToBuf(c);
                                    !                state=STATE_PARAMWRAP;
                                    !             }
                                    !             else {
                                    !                appendToBuf(c);
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_INLINEPARAMVALUE:
                                    !             if (c=='\n') {
                                    !                appendToBuf(c);
                                    !                state=STATE_INLINEPARAMVALUE_BOL;
                                    !             }
                                    !             else if (c==EOL || c=='}') {
                                    !                paramValue=bufToString();
                                    !                AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, true);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    !                state=prevState;
                                    !                setBufLength(0);
                                    !             }
                                    !             else {
                                    !                appendToBuf(c);
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_INLINEPARAMVALUE_BOL:
                                    !             if (Parser.isWhitespace(c)) {
                                    !                // ignore
                                    !             }
                                    !             else if (c=='*') {
                                    !                // ignore, but go to STATE_TEXT
                                    !                if (i<endIndex && peek!='*') {
                                    !                   state=STATE_IPV_WHITESPACE;
                                    !                }
                                    !             }
                                    !             else if (c==EOL) {
                                    !                if (bufLength()>0) {
                                    !                   AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                        if (null != newTag) {
                                                           contextTag = newTag;
                                                        }
                                    !                }
                                    !             }
                                    !             else {
                                    !                state=STATE_INLINEPARAMVALUE;
                                    !                appendToBuf(whitespaceBuf);
                                    !                whitespaceBuf.setLength(0);
                                    !                appendToBuf(c);
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_IPV_WHITESPACE:
                                    !             if (c=='\n') {
                                    !                whitespaceBuf.append(c);
                                    !                state=STATE_INLINEPARAMVALUE_BOL;
                                    !             }
                                    !             else if (Parser.isWhitespace(c)) {
                                    !                whitespaceBuf.append(c);
                                    !             }
                                    !             else if (c==EOL) {
                                    !                if (bufLength()>0) {
                                    !                   AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                        if (null != newTag) {
                                                           contextTag = newTag;
                                                        }
                                    !                   setBufLength(0);
                                    !                }
                                    !             }
                                    !             else {
                                    !                appendToBuf(whitespaceBuf);
                                    !                whitespaceBuf.setLength(0);
                                    !                appendToBuf(c);
                                    !                state=STATE_INLINEPARAMVALUE;
                                    !             }
                                    !             break;
                                      
                                    !          case STATE_TEXT:
                                    !             if (i==firstSentenceEnd) {
                                    !                AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    !                setBufLength(0);
                                    !             }
                                      
                                    !             if (c==EOL) {
                                    !                paramValue=bufToString();
                                    !                AbstractTagImpl newTag = addTag(tags, "text", paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    !             }
                                    !             else if (c=='\n') {
                                    !                appendToBuf(c);
                                    !                state=STATE_BEGOFLINE;
                                    !             }
                                    !             else if (c=='{' && peek=='@') {
                                    !                paramValue=bufToString();
                                    !                AbstractTagImpl newTag = addTag(tags, "text", paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
                                                     if (null != newTag) {
                                                        contextTag = newTag;
                                                     }
                                    !                ++i;
                                                     setBufLength(0);
                                    !                state=STATE_INLINEPARAM;
                                    !             }
                                    !             else {
                                    !                appendToBuf(c);
                                    !             }
                                    !             break;
                                      
                                    !          default:
                                    !             throw new Error("illegal state "+state);
                                    !          }
                                            }
                                      
                                      
                                    *************** public abstract class DocImpl implements
                                    *** 666,688 ****
                                            Map rc=new HashMap();
                                      
                                            for (Iterator it=tags.keySet().iterator(); it.hasNext(); ) {
                                    ! 	 String key=(String)it.next();
                                    ! 	 Tag[] templateArr;
                                    ! 	 List list=(List)tags.get(key);
                                      
                                    ! 	 if ("see".equals(key))
                                    ! 	    templateArr=new SeeTag[list.size()];
                                    ! 	 else if ("param".equals(key))
                                    ! 	    templateArr=new ParamTag[list.size()];
                                    ! 	 else if ("serialField".equals(key))
                                    ! 	    templateArr=new SerialFieldTag[list.size()];
                                    ! 	 else if ("throws".equals(key) || "exception".equals(key))
                                    ! 	    templateArr=new ThrowsTag[list.size()];
                                    ! 	 else {
                                    ! 	    templateArr=new Tag[list.size()];
                                    ! 	 }
                                      
                                    ! 	 rc.put(key, list.toArray(templateArr));
                                            }
                                      
                                            return rc;
                                    --- 683,705 ----
                                            Map rc=new HashMap();
                                      
                                            for (Iterator it=tags.keySet().iterator(); it.hasNext(); ) {
                                    !          String key=(String)it.next();
                                    !          Tag[] templateArr;
                                    !          List list=(List)tags.get(key);
                                      
                                    !          if ("see".equals(key))
                                    !             templateArr=new SeeTag[list.size()];
                                    !          else if ("param".equals(key))
                                    !             templateArr=new ParamTag[list.size()];
                                    !          else if ("serialField".equals(key))
                                    !             templateArr=new SerialFieldTag[list.size()];
                                    !          else if ("throws".equals(key) || "exception".equals(key))
                                    !             templateArr=new ThrowsTag[list.size()];
                                    !          else {
                                    !             templateArr=new Tag[list.size()];
                                    !          }
                                      
                                    !          rc.put(key, list.toArray(templateArr));
                                            }
                                      
                                            return rc;
                                    *************** public abstract class DocImpl implements
                                    *** 690,711 ****
                                      
                                         private ClassDocImpl getContextClass() {
                                            if (isClass() || isInterface()) {
                                    ! 	 return (ClassDocImpl)this;
                                            }
                                            else if (isField() || isMethod() || isConstructor()) {
                                    ! 	 return (ClassDocImpl)((MemberDocImpl)this).containingClass();
                                            }
                                            else {
                                    ! 	 return null;
                                            }
                                         }
                                      
                                         private MemberDocImpl getContextMember() {
                                            if (isField() || isMethod() || isConstructor()) {
                                    ! 	 return (MemberDocImpl)this;
                                            }
                                            else {
                                    ! 	 return null;
                                            }
                                         }
                                      
                                    --- 707,728 ----
                                      
                                         private ClassDocImpl getContextClass() {
                                            if (isClass() || isInterface()) {
                                    !          return (ClassDocImpl)this;
                                            }
                                            else if (isField() || isMethod() || isConstructor()) {
                                    !          return (ClassDocImpl)((MemberDocImpl)this).containingClass();
                                            }
                                            else {
                                    !          return null;
                                            }
                                         }
                                      
                                         private MemberDocImpl getContextMember() {
                                            if (isField() || isMethod() || isConstructor()) {
                                    !          return (MemberDocImpl)this;
                                            }
                                            else {
                                    !          return null;
                                            }
                                         }
                                      
                                    *************** public abstract class DocImpl implements
                                    *** 760,766 ****
                                               if (haveValue) {
                                                  //printWarning("@inheritDoc tags are not supposed to have any content.");
                                               }
                                    ! 	 tag=new InheritDocTagImpl(contextClass, contextMember, contextTag);
                                               isInline = true;
                                            }
                                            else if (name.equals("serialField")) {
                                    --- 777,783 ----
                                               if (haveValue) {
                                                  //printWarning("@inheritDoc tags are not supposed to have any content.");
                                               }
                                    !          tag=new InheritDocTagImpl(contextClass, contextMember, contextTag);
                                               isInline = true;
                                            }
                                            else if (name.equals("serialField")) {
                                    *************** public abstract class DocImpl implements
                                    *** 778,791 ****
                                               else {
                                                  //printWarning(emptyWarning);
                                               }
                                    ! 	 name="throws";
                                            }
                                            else if (name.equals("text")) {
                                    ! 	 tag=new TextTagImpl(value);
                                               isInline = true;
                                            }
                                            else {
                                    ! 	 tag=new TagImpl("@"+name, value.trim(), contextClass, contextMember);
                                               // FIXME: consider taglets
                                            }
                                      
                                    --- 795,808 ----
                                               else {
                                                  //printWarning(emptyWarning);
                                               }
                                    !          name="throws";
                                            }
                                            else if (name.equals("text")) {
                                    !          tag=new TextTagImpl(value);
                                               isInline = true;
                                            }
                                            else {
                                    !          tag=new TagImpl("@"+name, value.trim(), contextClass, contextMember);
                                               // FIXME: consider taglets
                                            }
                                      
                                    *************** public abstract class DocImpl implements
                                    *** 806,812 ****
                                                           newTag = tag;
                                                        }
                                                        ((List)tags.get("first")).add(newTag);
                                    !                
                                                     }
                                                     else {
                                                        ((List)tags.get("first")).add(tag);
                                    --- 823,829 ----
                                                           newTag = tag;
                                                        }
                                                        ((List)tags.get("first")).add(newTag);
                                    ! 
                                                     }
                                                     else {
                                                        ((List)tags.get("first")).add(tag);
                                    *************** public abstract class DocImpl implements
                                    *** 831,849 ****
                                            }
                                         }
                                      
                                    !    // Return all tags in this Doc item. 
                                         public Tag[] tags() {
                                            Tag[] rc=(Tag[])tagMap.get("all");
                                            if (rc==null) rc=new Tag[0];
                                            return rc;
                                    !    } 
                                      
                                    !    // Return tags of the specified kind in this Doc item. 
                                         public Tag[] tags(java.lang.String tagname) {
                                            Tag[] rc=(Tag[])tagMap.get(tagname);
                                            if (rc==null) rc=new Tag[0];
                                            return rc;
                                    !    } 
                                      
                                         protected String rawDocumentation;
                                         protected long rawDocOffset=-1;
                                    --- 848,866 ----
                                            }
                                         }
                                      
                                    !    // Return all tags in this Doc item.
                                         public Tag[] tags() {
                                            Tag[] rc=(Tag[])tagMap.get("all");
                                            if (rc==null) rc=new Tag[0];
                                            return rc;
                                    !    }
                                      
                                    !    // Return tags of the specified kind in this Doc item.
                                         public Tag[] tags(java.lang.String tagname) {
                                            Tag[] rc=(Tag[])tagMap.get(tagname);
                                            if (rc==null) rc=new Tag[0];
                                            return rc;
                                    !    }
                                      
                                         protected String rawDocumentation;
                                         protected long rawDocOffset=-1;
                                    *************** public abstract class DocImpl implements
                                    *** 856,867 ****
                                      
                                            Tag[] tags=tags();
                                            for (int i=0; i<tags.length; ++i) {
                                    ! 	 ((AbstractTagImpl)tags[i]).resolve();
                                            }
                                      
                                            Tag[] inlineTags=inlineTags();
                                            for (int i=0; i<inlineTags.length; ++i) {
                                    ! 	 ((AbstractTagImpl)inlineTags[i]).resolve();
                                            }
                                         }
                                      
                                    --- 873,884 ----
                                      
                                            Tag[] tags=tags();
                                            for (int i=0; i<tags.length; ++i) {
                                    !          ((AbstractTagImpl)tags[i]).resolve();
                                            }
                                      
                                            Tag[] inlineTags=inlineTags();
                                            for (int i=0; i<inlineTags.length; ++i) {
                                    !          ((AbstractTagImpl)inlineTags[i]).resolve();
                                            }
                                         }
                                      
                                    *************** public abstract class DocImpl implements
                                    *** 906,912 ****
                                            }
                                      
                                            File file = getFile(classDoc);
                                    !       
                                            return new SourcePositionImpl(file, line + 1, column + 1);
                                         }
                                      
                                    --- 923,929 ----
                                            }
                                      
                                            File file = getFile(classDoc);
                                    ! 
                                            return new SourcePositionImpl(file, line + 1, column + 1);
                                         }
                                      
                                    *************** public abstract class DocImpl implements
                                    *** 941,947 ****
                                               result = (DocImpl)((ClassDocImpl)classDoc).getFieldDoc(memberDoc.name());
                                            }
                                            else if (memberDoc.isMethod()) {
                                    !          result = (DocImpl)((ClassDocImpl)classDoc).getMethodDoc(memberDoc.name(), 
                                                                                                       ((MethodDoc)memberDoc).signature());
                                            }
                                            else if (memberDoc.isConstructor()) {
                                    --- 958,964 ----
                                               result = (DocImpl)((ClassDocImpl)classDoc).getFieldDoc(memberDoc.name());
                                            }
                                            else if (memberDoc.isMethod()) {
                                    !          result = (DocImpl)((ClassDocImpl)classDoc).getMethodDoc(memberDoc.name(),
                                                                                                       ((MethodDoc)memberDoc).signature());
                                            }
                                            else if (memberDoc.isConstructor()) {
                                    *************** public abstract class DocImpl implements
                                    *** 990,997 ****
                                            }
                                         }
                                      
                                    !    public static TagContainer findInheritedDoc(ClassDoc classDoc, 
                                    !                                                MemberDocImpl memberDoc, 
                                                                                     AbstractTagImpl tag)
                                         {
                                            TagContainer result;
                                    --- 1007,1014 ----
                                            }
                                         }
                                      
                                    !    public static TagContainer findInheritedDoc(ClassDoc classDoc,
                                    !                                                MemberDocImpl memberDoc,
                                                                                     AbstractTagImpl tag)
                                         {
                                            TagContainer result;
                                    *************** public abstract class DocImpl implements
                                    *** 1010,1016 ****
                                            // in the order they appear following the word implements (or
                                            // extends) in the method declaration. Use the first doc comment
                                            // found for this method.
                                    !       
                                            ClassDoc[] interfaces = classDoc.interfaces();
                                            if (null != interfaces) {
                                               for (int i=0; i<interfaces.length; ++i) {
                                    --- 1027,1033 ----
                                            // in the order they appear following the word implements (or
                                            // extends) in the method declaration. Use the first doc comment
                                            // found for this method.
                                    ! 
                                            ClassDoc[] interfaces = classDoc.interfaces();
                                            if (null != interfaces) {
                                               for (int i=0; i<interfaces.length; ++i) {
                                    *************** public abstract class DocImpl implements
                                    *** 1039,1045 ****
                                      
                                            // 3. If step 2 failed to find a doc comment and this is a class
                                            // other than Object (not an interface):
                                    !       if (!classDoc.isInterface() 
                                                && null != superclassDoc
                                                && !"java.lang.Object".equals(classDoc.qualifiedTypeName())) {
                                      
                                    --- 1056,1062 ----
                                      
                                            // 3. If step 2 failed to find a doc comment and this is a class
                                            // other than Object (not an interface):
                                    !       if (!classDoc.isInterface()
                                                && null != superclassDoc
                                                && !"java.lang.Object".equals(classDoc.qualifiedTypeName())) {
                                      
                                    *************** public abstract class DocImpl implements
                                    *** 1060,1066 ****
                                               return null;
                                            }
                                         }
                                    !    
                                         public boolean isEmptyDoc()
                                         {
                                            return tagMap.isEmpty();
                                    --- 1077,1083 ----
                                               return null;
                                            }
                                         }
                                    ! 
                                         public boolean isEmptyDoc()
                                         {
                                            return tagMap.isEmpty();
                                    *************** public abstract class DocImpl implements
                                    *** 1071,1074 ****
                                            this.boilerplateComment = boilerplateComment;
                                         }
                                      }
                                    - 
                                    --- 1088,1090 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,104 ****
                                    ! /* gnu.classpath.tools.gjdoc.ErrorReporter
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.gjdoc;
                                    ! 
                                    ! import com.sun.javadoc.*;
                                    ! import java.io.*;
                                    ! import java.util.*;
                                    ! import java.lang.reflect.*;
                                    ! 
                                    ! /**
                                    !  *  Simple implementation of a <code>DocErrorReporter</code>: writes
                                    !  *  to <code>System.err</code>.
                                    !  */
                                    ! public class ErrorReporter implements DocErrorReporter {
                                    ! 
                                    !    private PrintStream out;
                                    ! 
                                    !    /**
                                    !     *  Keeps track of the number of errors occured
                                    !     *  during generation.
                                    !     */
                                    !    private int errorCount=0;
                                    ! 
                                    !    /**
                                    !     *  Keeps track of the number of warnings occured
                                    !     *  during generation.
                                    !     */
                                    !    private int warningCount=0;
                                    ! 
                                    !    /*
                                    !     *  When <code>true</code>, no notices will be emitted.
                                    !     */
                                    !    private boolean quiet = false;
                                    !    
                                    !    /*
                                    !     *  When <code>true</code>, no warnings will be emitted.
                                    !     */
                                    !    private boolean noWarn = false;
                                    ! 
                                    !    public ErrorReporter()
                                    !    {
                                    !       this.out = System.err;
                                    !    }
                                    ! 
                                    !    // Print error message, increment error count. 
                                    !    public void printError(java.lang.String msg) {
                                    !       out.println("ERROR: "+msg);
                                    !       ++errorCount;
                                    !    }
                                    ! 
                                    !    // Print error message, increment error count. 
                                    !    public void printFatal(java.lang.String msg) {
                                    !       out.println("FATAL: "+msg);
                                    !       System.exit(10);
                                    !    }
                                    ! 
                                    !    // Print a message. 
                                    !    public void printNotice(java.lang.String msg) {
                                    !       if (!quiet) {
                                    ! 	 out.println(msg);
                                    !       }
                                    !    }
                                    !    
                                    !    // Print warning message, increment warning count. 
                                    !    public void printWarning(java.lang.String msg) {
                                    !       if (!noWarn) {
                                    ! 	 out.println("WARNING: "+msg);
                                    ! 	 ++warningCount;;
                                    !       }
                                    !    }
                                    ! 
                                    !    public int getErrorCount() {
                                    !       return errorCount;
                                    !    }
                                    ! 
                                    !    public int getWarningCount() {
                                    !       return warningCount;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Specify whether notices should be printed.
                                    !     */
                                    !    public void setQuiet(boolean quiet) {
                                    !       this.quiet = quiet;
                                    !    }
                                    ! }
                                    --- 1,121 ----
                                    ! /* gnu.classpath.tools.gjdoc.ErrorReporter
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.gjdoc;
                                    ! 
                                    ! import com.sun.javadoc.*;
                                    ! import java.io.*;
                                    ! import java.util.*;
                                    ! import java.lang.reflect.*;
                                    ! 
                                    ! /**
                                    !  *  Simple implementation of a <code>DocErrorReporter</code>: writes
                                    !  *  to <code>System.err</code>.
                                    !  */
                                    ! public class ErrorReporter implements DocErrorReporter {
                                    ! 
                                    !    private PrintStream out;
                                    ! 
                                    !    /**
                                    !     *  Keeps track of the number of errors occured
                                    !     *  during generation.
                                    !     */
                                    !    private int errorCount=0;
                                    ! 
                                    !    /**
                                    !     *  Keeps track of the number of warnings occured
                                    !     *  during generation.
                                    !     */
                                    !    private int warningCount=0;
                                    ! 
                                    !    /*
                                    !     *  When <code>true</code>, no notices will be emitted.
                                    !     */
                                    !    private boolean quiet = false;
                                    ! 
                                    !    /*
                                    !     *  When <code>true</code>, no warnings will be emitted.
                                    !     */
                                    !    private boolean noWarn = false;
                                    ! 
                                    !    public ErrorReporter()
                                    !    {
                                    !       this.out = System.err;
                                    !    }
                                    ! 
                                    !    // Print error message, increment error count.
                                    !    public void printError(java.lang.String msg) {
                                    !       out.println("ERROR: "+msg);
                                    !       ++errorCount;
                                    !    }
                                    ! 
                                    !    // Print error message, increment error count.
                                    !    public void printFatal(java.lang.String msg) {
                                    !       out.println("FATAL: "+msg);
                                    !       System.exit(10);
                                    !    }
                                    ! 
                                    !    // Print a message.
                                    !    public void printNotice(java.lang.String msg) {
                                    !       if (!quiet) {
                                    !          out.println(msg);
                                    !       }
                                    !    }
                                    ! 
                                    !    // Print warning message, increment warning count.
                                    !    public void printWarning(java.lang.String msg) {
                                    !       if (!noWarn) {
                                    !          out.println("WARNING: "+msg);
                                    !          ++warningCount;;
                                    !       }
                                    !    }
                                    ! 
                                    !    public int getErrorCount() {
                                    !       return errorCount;
                                    !    }
                                    ! 
                                    !    public int getWarningCount() {
                                    !       return warningCount;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Specify whether notices should be printed.
                                    !     */
                                    !    public void setQuiet(boolean quiet) {
                                    !       this.quiet = quiet;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import com.sun.javadoc.*;
                                    *** 27,58 ****
                                      public class ExecutableMemberDocImpl extends MemberDocImpl implements ExecutableMemberDoc {
                                      
                                         protected ExecutableMemberDocImpl(ClassDoc containingClass,
                                    ! 				     PackageDoc containingPackage,
                                                                           SourcePosition position) {
                                    !       
                                            super(containingClass,
                                    ! 	    containingPackage,
                                                  position);
                                         }
                                      
                                         protected boolean processModifier(String word) {
                                            if (super.processModifier(word)) {
                                    ! 	 return true;
                                            }
                                            else if (word.equals("synchronized")) {
                                    ! 	 isSynchronized=true;
                                    ! 	 return true;	 
                                            }
                                            else if (word.equals("native")) {
                                    ! 	 isNative=true;
                                    ! 	 return true;	 
                                            }
                                            else if (word.equals("abstract")) {
                                    ! 	 isAbstract=true;
                                    ! 	 return true;	 
                                            }
                                            else {
                                    ! 	 return false;
                                            }
                                         }
                                      
                                    --- 44,75 ----
                                      public class ExecutableMemberDocImpl extends MemberDocImpl implements ExecutableMemberDoc {
                                      
                                         protected ExecutableMemberDocImpl(ClassDoc containingClass,
                                    !                                      PackageDoc containingPackage,
                                                                           SourcePosition position) {
                                    ! 
                                            super(containingClass,
                                    !             containingPackage,
                                                  position);
                                         }
                                      
                                         protected boolean processModifier(String word) {
                                            if (super.processModifier(word)) {
                                    !          return true;
                                            }
                                            else if (word.equals("synchronized")) {
                                    !          isSynchronized=true;
                                    !          return true;
                                            }
                                            else if (word.equals("native")) {
                                    !          isNative=true;
                                    !          return true;
                                            }
                                            else if (word.equals("abstract")) {
                                    !          isAbstract=true;
                                    !          return true;
                                            }
                                            else {
                                    !          return false;
                                            }
                                         }
                                      
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 70,110 ****
                                      
                                         public Parameter[] parameters() { return parameters; }
                                      
                                    !    public ThrowsTag[] throwsTags() { 
                                            return (ThrowsTag[])getTagArr("throws", throwsTagEmptyArr);
                                         }
                                      
                                    !    public ParamTag[] paramTags() { 
                                            return (ParamTag[])getTagArr("param", paramTagEmptyArr);
                                         }
                                      
                                         public String signature() { return signature; }
                                         public String flatSignature() { return flatSignature; }
                                      
                                    !    public ClassDoc overriddenClass() { 
                                            for (ClassDoc cdi=(ClassDoc)containingClass().superclass(); cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
                                    ! 	 if (null!=ClassDocImpl.findMethod(cdi, name(), signature()))
                                    ! 	    return cdi;
                                            }
                                            return null;
                                         }
                                      
                                         public static ExecutableMemberDocImpl createFromSource(ClassDoc containingClass,
                                    ! 							  PackageDoc containingPackage,
                                    ! 							  char[] source, int startIndex, int endIndex) throws IOException, ParseException {
                                      
                                            int lastchar=32;
                                            StringBuffer methodName=new StringBuffer();
                                            for (int i=startIndex; i<endIndex && source[i]!='('; ++i) {
                                    ! 	 if ((Parser.WHITESPACE.indexOf(lastchar)>=0 && Parser.WHITESPACE.indexOf(source[i])<0)
                                                   || (lastchar == ']' && Parser.WHITESPACE.indexOf(source[i])<0 && '[' != source[i])) {
                                                  methodName.setLength(0);
                                                  methodName.append(source[i]);
                                               }
                                    ! 	 else if (Parser.WHITESPACE.indexOf(source[i])<0) {
                                                  methodName.append(source[i]);
                                               }
                                    ! 	 lastchar=source[i];
                                            }
                                      
                                            ExecutableMemberDocImpl rc;
                                    --- 87,127 ----
                                      
                                         public Parameter[] parameters() { return parameters; }
                                      
                                    !    public ThrowsTag[] throwsTags() {
                                            return (ThrowsTag[])getTagArr("throws", throwsTagEmptyArr);
                                         }
                                      
                                    !    public ParamTag[] paramTags() {
                                            return (ParamTag[])getTagArr("param", paramTagEmptyArr);
                                         }
                                      
                                         public String signature() { return signature; }
                                         public String flatSignature() { return flatSignature; }
                                      
                                    !    public ClassDoc overriddenClass() {
                                            for (ClassDoc cdi=(ClassDoc)containingClass().superclass(); cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
                                    !          if (null!=ClassDocImpl.findMethod(cdi, name(), signature()))
                                    !             return cdi;
                                            }
                                            return null;
                                         }
                                      
                                         public static ExecutableMemberDocImpl createFromSource(ClassDoc containingClass,
                                    !                                                           PackageDoc containingPackage,
                                    !                                                           char[] source, int startIndex, int endIndex) throws IOException, ParseException {
                                      
                                            int lastchar=32;
                                            StringBuffer methodName=new StringBuffer();
                                            for (int i=startIndex; i<endIndex && source[i]!='('; ++i) {
                                    !          if ((Parser.WHITESPACE.indexOf(lastchar)>=0 && Parser.WHITESPACE.indexOf(source[i])<0)
                                                   || (lastchar == ']' && Parser.WHITESPACE.indexOf(source[i])<0 && '[' != source[i])) {
                                                  methodName.setLength(0);
                                                  methodName.append(source[i]);
                                               }
                                    !          else if (Parser.WHITESPACE.indexOf(source[i])<0) {
                                                  methodName.append(source[i]);
                                               }
                                    !          lastchar=source[i];
                                            }
                                      
                                            ExecutableMemberDocImpl rc;
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 112,135 ****
                                            SourcePosition position = DocImpl.getPosition(containingClass, source, startIndex);
                                      
                                            if (methodName.toString().equals(((ClassDocImpl)containingClass).getClassName())) {
                                    - 	 
                                    - 	 // Constructor
                                      
                                    ! 	 rc=new ConstructorDocImpl(containingClass,
                                    ! 				   containingPackage,
                                                                         position);
                                            }
                                            else {
                                      
                                    ! 	 // Normal method
                                      
                                    ! 	 rc=new MethodDocImpl(containingClass,
                                    ! 			      containingPackage,
                                                                    position);
                                            }
                                    !       
                                            if (containingClass.isInterface())
                                    ! 	 rc.accessLevel=ACCESS_PUBLIC;
                                      
                                            int ndx=rc.parseModifiers(source, startIndex, endIndex);
                                            StringBuffer name = new StringBuffer();
                                    --- 129,152 ----
                                            SourcePosition position = DocImpl.getPosition(containingClass, source, startIndex);
                                      
                                            if (methodName.toString().equals(((ClassDocImpl)containingClass).getClassName())) {
                                      
                                    !          // Constructor
                                    ! 
                                    !          rc=new ConstructorDocImpl(containingClass,
                                    !                                    containingPackage,
                                                                         position);
                                            }
                                            else {
                                      
                                    !          // Normal method
                                      
                                    !          rc=new MethodDocImpl(containingClass,
                                    !                               containingPackage,
                                                                    position);
                                            }
                                    ! 
                                            if (containingClass.isInterface())
                                    !          rc.accessLevel=ACCESS_PUBLIC;
                                      
                                            int ndx=rc.parseModifiers(source, startIndex, endIndex);
                                            StringBuffer name = new StringBuffer();
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 141,209 ****
                                            int state=STATE_NORMAL;
                                      
                                            while (source[ndx]!='(' && ndx<endIndex) {
                                    ! 	 if (state==STATE_NORMAL) {
                                    ! 	    if (ndx<endIndex-1 && source[ndx]=='/' && source[ndx+1]=='/') {
                                    ! 	       ++ndx;
                                    ! 	       state=STATE_SLASHC;
                                    ! 	    }
                                    ! 	    else if (ndx<endIndex-1 && source[ndx]=='/' && source[ndx+1]=='*') {
                                    ! 	       ++ndx;
                                    ! 	       state=STATE_STARC;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       name.append(source[ndx]);
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else if (state==STATE_SLASHC) {
                                    ! 	    if (source[ndx]=='\n')
                                    ! 	       state=STATE_NORMAL;
                                    ! 	 }
                                    ! 	 else if (state==STATE_STARC) {
                                    ! 	    if (ndx<endIndex-1 && source[ndx]=='*' && source[ndx+1]=='/') {
                                    ! 	       ++ndx;
                                    ! 	       state=STATE_NORMAL;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 ++ndx;
                                            }
                                            rc.setName(name.toString().trim());
                                      
                                            state=STATE_NORMAL;
                                    !       
                                            ++ndx;
                                            int endx;
                                            String param="";
                                            List parameterList=new ArrayList();
                                            for (endx=ndx; endx<endIndex; ++endx) {
                                    ! 	 if (state==STATE_SLASHC) {
                                    ! 	    if (source[endx]=='\n') {
                                    ! 	       state=STATE_NORMAL;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else if (state==STATE_STARC) {
                                    ! 	    if (source[endx]=='*' && source[endx+1]=='/') {
                                    ! 	       state=STATE_NORMAL;
                                    ! 	       ++endx;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else if (source[endx]=='/' && source[endx+1]=='*') {
                                    ! 	    state=STATE_STARC;
                                    ! 	    ++endx;
                                    ! 	 }
                                    ! 	 else if (source[endx]=='/' && source[endx+1]=='/') {
                                    ! 	    state=STATE_SLASHC;
                                    ! 	    ++endx;
                                    ! 	 }
                                    ! 	 else if (source[endx]==',' || source[endx]==')') {
                                    ! 	    param=param.trim();
                                    ! 	    if (param.length()>0) {
                                    ! 	       int n = param.length()-1;
                                                     int paramNameStart = 0;
                                                     while (n >= 0) {
                                                        char c = param.charAt(n);
                                    ! 		  if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
                                                           paramNameStart = n + 1;
                                    ! 		     break;
                                                        }
                                                        else {
                                                           -- n;
                                    --- 158,226 ----
                                            int state=STATE_NORMAL;
                                      
                                            while (source[ndx]!='(' && ndx<endIndex) {
                                    !          if (state==STATE_NORMAL) {
                                    !             if (ndx<endIndex-1 && source[ndx]=='/' && source[ndx+1]=='/') {
                                    !                ++ndx;
                                    !                state=STATE_SLASHC;
                                    !             }
                                    !             else if (ndx<endIndex-1 && source[ndx]=='/' && source[ndx+1]=='*') {
                                    !                ++ndx;
                                    !                state=STATE_STARC;
                                    !             }
                                    !             else {
                                    !                name.append(source[ndx]);
                                    !             }
                                    !          }
                                    !          else if (state==STATE_SLASHC) {
                                    !             if (source[ndx]=='\n')
                                    !                state=STATE_NORMAL;
                                    !          }
                                    !          else if (state==STATE_STARC) {
                                    !             if (ndx<endIndex-1 && source[ndx]=='*' && source[ndx+1]=='/') {
                                    !                ++ndx;
                                    !                state=STATE_NORMAL;
                                    !             }
                                    !          }
                                    !          ++ndx;
                                            }
                                            rc.setName(name.toString().trim());
                                      
                                            state=STATE_NORMAL;
                                    ! 
                                            ++ndx;
                                            int endx;
                                            String param="";
                                            List parameterList=new ArrayList();
                                            for (endx=ndx; endx<endIndex; ++endx) {
                                    !          if (state==STATE_SLASHC) {
                                    !             if (source[endx]=='\n') {
                                    !                state=STATE_NORMAL;
                                    !             }
                                    !          }
                                    !          else if (state==STATE_STARC) {
                                    !             if (source[endx]=='*' && source[endx+1]=='/') {
                                    !                state=STATE_NORMAL;
                                    !                ++endx;
                                    !             }
                                    !          }
                                    !          else if (source[endx]=='/' && source[endx+1]=='*') {
                                    !             state=STATE_STARC;
                                    !             ++endx;
                                    !          }
                                    !          else if (source[endx]=='/' && source[endx+1]=='/') {
                                    !             state=STATE_SLASHC;
                                    !             ++endx;
                                    !          }
                                    !          else if (source[endx]==',' || source[endx]==')') {
                                    !             param=param.trim();
                                    !             if (param.length()>0) {
                                    !                int n = param.length()-1;
                                                     int paramNameStart = 0;
                                                     while (n >= 0) {
                                                        char c = param.charAt(n);
                                    !                   if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
                                                           paramNameStart = n + 1;
                                    !                      break;
                                                        }
                                                        else {
                                                           -- n;
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 218,238 ****
                                                     int paramTypeStart = 0;
                                                     while (n >= 0) {
                                                        char c = param.charAt(n);
                                    ! 		  if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
                                                           paramTypeStart = n + 1;
                                    ! 		     break;
                                                        }
                                                        else {
                                                           -- n;
                                                        }
                                                     }
                                      
                                    ! 	       String paramType;
                                    ! 	       String paramName;
                                    ! 	       if (0 != paramNameStart) {
                                    ! 		  paramType=param.substring(paramTypeStart, paramTypeEnd);
                                    ! 		  paramName=param.substring(paramNameStart);
                                    ! 	       }
                                                     else {
                                                        paramName = "";
                                                        StringBuffer paramTypeBuffer = new StringBuffer();
                                    --- 235,255 ----
                                                     int paramTypeStart = 0;
                                                     while (n >= 0) {
                                                        char c = param.charAt(n);
                                    !                   if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
                                                           paramTypeStart = n + 1;
                                    !                      break;
                                                        }
                                                        else {
                                                           -- n;
                                                        }
                                                     }
                                      
                                    !                String paramType;
                                    !                String paramName;
                                    !                if (0 != paramNameStart) {
                                    !                   paramType=param.substring(paramTypeStart, paramTypeEnd);
                                    !                   paramName=param.substring(paramNameStart);
                                    !                }
                                                     else {
                                                        paramName = "";
                                                        StringBuffer paramTypeBuffer = new StringBuffer();
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 244,277 ****
                                                        }
                                                        paramType = paramTypeBuffer.toString();
                                                     }
                                    ! 	       String dimSuffix="";
                                      
                                                     for (int i=0; i<param.length(); ++i) {
                                                        if ('[' == param.charAt(i)) {
                                                           dimSuffix += "[]";
                                                        }
                                                     }
                                    ! 	       paramType+=dimSuffix;
                                      
                                                     if (paramType.startsWith("[")) {
                                                        System.err.println("broken param type in " + rc + " in " +containingClass);
                                                     }
                                      
                                    ! 	       parameterList.add(new ParameterImpl(paramName, paramType, 
                                    ! 						   ((ClassDocImpl)containingClass).typeForString(paramType)));
                                      
                                    ! 	       param="";
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else
                                    ! 	    param+=source[endx];
                                      
                                    ! 	 if (source[endx]==')' && state==STATE_NORMAL)
                                    ! 	    break;
                                            }
                                      
                                            rc.setParameters((Parameter[])parameterList.toArray(new Parameter[0]));
                                    !       
                                            ++endx;
                                            String word="";
                                            String dimSuffix="";
                                    --- 261,294 ----
                                                        }
                                                        paramType = paramTypeBuffer.toString();
                                                     }
                                    !                String dimSuffix="";
                                      
                                                     for (int i=0; i<param.length(); ++i) {
                                                        if ('[' == param.charAt(i)) {
                                                           dimSuffix += "[]";
                                                        }
                                                     }
                                    !                paramType+=dimSuffix;
                                      
                                                     if (paramType.startsWith("[")) {
                                                        System.err.println("broken param type in " + rc + " in " +containingClass);
                                                     }
                                      
                                    !                parameterList.add(new ParameterImpl(paramName, paramType,
                                    !                                                    ((ClassDocImpl)containingClass).typeForString(paramType)));
                                      
                                    !                param="";
                                    !             }
                                    !          }
                                    !          else
                                    !             param+=source[endx];
                                      
                                    !          if (source[endx]==')' && state==STATE_NORMAL)
                                    !             break;
                                            }
                                      
                                            rc.setParameters((Parameter[])parameterList.toArray(new Parameter[0]));
                                    ! 
                                            ++endx;
                                            String word="";
                                            String dimSuffix="";
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 280,337 ****
                                      
                                            state=STATE_NORMAL;
                                            for (; endx<endIndex; ++endx) {
                                    ! 	 if (state==STATE_SLASHC) {
                                    ! 	    if (source[endx]=='\n') state=STATE_NORMAL;
                                    ! 	 }
                                    ! 	 else if (state==STATE_STARC) {
                                    ! 	    if (source[endx]=='*' && source[endx+1]=='/') {
                                    ! 	       state=STATE_NORMAL;
                                    ! 	       ++endx;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else if (source[endx]=='/' && source[endx+1]=='*') {
                                    ! 	    state=STATE_STARC;
                                    ! 	    ++endx;
                                    ! 	 }
                                    ! 	 else if (source[endx]=='/' && source[endx+1]=='/') {
                                    ! 	    state=STATE_SLASHC;
                                    ! 	    ++endx;
                                    ! 	 }
                                    ! 	 else if (Parser.WHITESPACE.indexOf(source[endx])>=0) {
                                    ! 	    word=word.trim();
                                    ! 	    if (!haveThrowsKeyword && word.length()>0) {
                                    ! 	       if (word.equals("throws")) haveThrowsKeyword=true;
                                    ! 	       else System.err.println("ARGH! "+word);
                                    ! 	       word="";
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else if (source[endx]=='[' || source[endx]==']') {
                                    ! 	    dimSuffix += source[endx];
                                    ! 	 }
                                    ! 	 else if (source[endx]==',' || source[endx]=='{' || source[endx]==';') {
                                    ! 	    word=word.trim();
                                    ! 	    if (word.length()>0) {
                                    ! 	       ClassDoc exceptionType=rc.containingClass().findClass(word);
                                    ! 	       if (exceptionType==null) {
                                    ! 		  exceptionType=new ClassDocProxy(word, 
                                                                                        rc.containingClass());
                                    ! 	       }
                                    ! 	       thrownExceptionsList.add(exceptionType);
                                    ! 	    }
                                    ! 	    if (source[endx]=='{') {
                                    ! 	       break;
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       word="";
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    word+=source[endx];
                                    ! 	 }
                                            }
                                      
                                            if (dimSuffix.length()>0) {
                                    ! 	 rc.setTypeName(rc.getTypeName()+dimSuffix);
                                            }
                                      
                                            rc.setThrownExceptions((ClassDoc[])thrownExceptionsList.toArray(new ClassDoc[0]));
                                    --- 297,354 ----
                                      
                                            state=STATE_NORMAL;
                                            for (; endx<endIndex; ++endx) {
                                    !          if (state==STATE_SLASHC) {
                                    !             if (source[endx]=='\n') state=STATE_NORMAL;
                                    !          }
                                    !          else if (state==STATE_STARC) {
                                    !             if (source[endx]=='*' && source[endx+1]=='/') {
                                    !                state=STATE_NORMAL;
                                    !                ++endx;
                                    !             }
                                    !          }
                                    !          else if (source[endx]=='/' && source[endx+1]=='*') {
                                    !             state=STATE_STARC;
                                    !             ++endx;
                                    !          }
                                    !          else if (source[endx]=='/' && source[endx+1]=='/') {
                                    !             state=STATE_SLASHC;
                                    !             ++endx;
                                    !          }
                                    !          else if (Parser.WHITESPACE.indexOf(source[endx])>=0) {
                                    !             word=word.trim();
                                    !             if (!haveThrowsKeyword && word.length()>0) {
                                    !                if (word.equals("throws")) haveThrowsKeyword=true;
                                    !                else System.err.println("ARGH! "+word);
                                    !                word="";
                                    !             }
                                    !          }
                                    !          else if (source[endx]=='[' || source[endx]==']') {
                                    !             dimSuffix += source[endx];
                                    !          }
                                    !          else if (source[endx]==',' || source[endx]=='{' || source[endx]==';') {
                                    !             word=word.trim();
                                    !             if (word.length()>0) {
                                    !                ClassDoc exceptionType=rc.containingClass().findClass(word);
                                    !                if (exceptionType==null) {
                                    !                   exceptionType=new ClassDocProxy(word,
                                                                                        rc.containingClass());
                                    !                }
                                    !                thrownExceptionsList.add(exceptionType);
                                    !             }
                                    !             if (source[endx]=='{') {
                                    !                break;
                                    !             }
                                    !             else {
                                    !                word="";
                                    !             }
                                    !          }
                                    !          else {
                                    !             word+=source[endx];
                                    !          }
                                            }
                                      
                                            if (dimSuffix.length()>0) {
                                    !          rc.setTypeName(rc.getTypeName()+dimSuffix);
                                            }
                                      
                                            rc.setThrownExceptions((ClassDoc[])thrownExceptionsList.toArray(new ClassDoc[0]));
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 355,380 ****
                                         void resolve() {
                                      
                                            for (int i=0; i<thrownExceptions.length; ++i) {
                                    ! 	 if (thrownExceptions[i] instanceof ClassDocProxy) {
                                    ! 	    String className=thrownExceptions[i].qualifiedName();
                                    ! 	    ClassDoc realClassDoc=containingClass().findClass(className);
                                    ! 	    if (realClassDoc!=null)
                                    ! 	       thrownExceptions[i]=realClassDoc;
                                    ! 	 }
                                            }
                                      
                                            StringBuffer signatureBuf=new StringBuffer();
                                            StringBuffer flatSignatureBuf=new StringBuffer();
                                      
                                            for (int i=0; i<parameters.length; ++i) {
                                    ! 	 ((ParameterImpl)parameters[i]).resolve(containingClass());
                                      
                                    ! 	 if (signatureBuf.length()>0) {
                                    ! 	    signatureBuf.append(",");
                                    ! 	    flatSignatureBuf.append(",");
                                    ! 	 }
                                    ! 	 signatureBuf.append(parameters[i].type().qualifiedTypeName());
                                    ! 	 flatSignatureBuf.append(parameters[i].type().typeName());
                                               signatureBuf.append(parameters[i].type().dimension());
                                               flatSignatureBuf.append(parameters[i].type().dimension());
                                            }
                                    --- 372,397 ----
                                         void resolve() {
                                      
                                            for (int i=0; i<thrownExceptions.length; ++i) {
                                    !          if (thrownExceptions[i] instanceof ClassDocProxy) {
                                    !             String className=thrownExceptions[i].qualifiedName();
                                    !             ClassDoc realClassDoc=containingClass().findClass(className);
                                    !             if (realClassDoc!=null)
                                    !                thrownExceptions[i]=realClassDoc;
                                    !          }
                                            }
                                      
                                            StringBuffer signatureBuf=new StringBuffer();
                                            StringBuffer flatSignatureBuf=new StringBuffer();
                                      
                                            for (int i=0; i<parameters.length; ++i) {
                                    !          ((ParameterImpl)parameters[i]).resolve(containingClass());
                                      
                                    !          if (signatureBuf.length()>0) {
                                    !             signatureBuf.append(",");
                                    !             flatSignatureBuf.append(",");
                                    !          }
                                    !          signatureBuf.append(parameters[i].type().qualifiedTypeName());
                                    !          flatSignatureBuf.append(parameters[i].type().typeName());
                                               signatureBuf.append(parameters[i].type().dimension());
                                               flatSignatureBuf.append(parameters[i].type().dimension());
                                            }
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 389,395 ****
                                            int rc;
                                            if (other instanceof MemberDocImpl) {
                                               MemberDocImpl otherMember = (MemberDocImpl)other;
                                    ! 	 rc = name().compareTo(otherMember.name());
                                               if (0 == rc) {
                                                  if (other instanceof ExecutableMemberDocImpl) {
                                                     rc = signature().compareTo(((ExecutableMemberDocImpl)other).signature());
                                    --- 406,412 ----
                                            int rc;
                                            if (other instanceof MemberDocImpl) {
                                               MemberDocImpl otherMember = (MemberDocImpl)other;
                                    !          rc = name().compareTo(otherMember.name());
                                               if (0 == rc) {
                                                  if (other instanceof ExecutableMemberDocImpl) {
                                                     rc = signature().compareTo(((ExecutableMemberDocImpl)other).signature());
                                    *************** public class ExecutableMemberDocImpl ext
                                    *** 403,411 ****
                                               }
                                            }
                                            else {
                                    ! 	 rc = 1;
                                            }
                                            return rc;
                                         }
                                      }
                                    - 
                                    --- 420,427 ----
                                               }
                                            }
                                            else {
                                    !          rc = 1;
                                            }
                                            return rc;
                                         }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import gnu.classpath.tools.gjdoc.expr.Ev
                                    *** 28,36 ****
                                      import gnu.classpath.tools.gjdoc.expr.CircularExpressionException;
                                      import gnu.classpath.tools.gjdoc.expr.IllegalExpressionException;
                                      
                                    ! public class FieldDocImpl 
                                    !    extends MemberDocImpl 
                                    !    implements FieldDoc, Cloneable 
                                      {
                                      
                                         private boolean isTransient;
                                    --- 45,53 ----
                                      import gnu.classpath.tools.gjdoc.expr.CircularExpressionException;
                                      import gnu.classpath.tools.gjdoc.expr.IllegalExpressionException;
                                      
                                    ! public class FieldDocImpl
                                    !    extends MemberDocImpl
                                    !    implements FieldDoc, Cloneable
                                      {
                                      
                                         private boolean isTransient;
                                    *************** public class FieldDocImpl 
                                    *** 44,50 ****
                                                              SourcePosition position) {
                                      
                                            super(containingClass,
                                    ! 	    containingPackage,
                                                  position);
                                         }
                                      
                                    --- 61,67 ----
                                                              SourcePosition position) {
                                      
                                            super(containingClass,
                                    !             containingPackage,
                                                  position);
                                         }
                                      
                                    *************** public class FieldDocImpl 
                                    *** 65,71 ****
                                                  dimSuffix=fieldDef.charAt(fieldDef.length()-1)+dimSuffix;
                                                  fieldDef=fieldDef.substring(0,fieldDef.length()-1);
                                               }
                                    !          
                                               fieldDoc.setTypeName(fieldDoc.getTypeName()+dimSuffix);
                                               fieldDoc.setName(fieldDef.trim());
                                               fieldDoc.setValueLiteral(fieldValueLiteral);
                                    --- 82,88 ----
                                                  dimSuffix=fieldDef.charAt(fieldDef.length()-1)+dimSuffix;
                                                  fieldDef=fieldDef.substring(0,fieldDef.length()-1);
                                               }
                                    ! 
                                               fieldDoc.setTypeName(fieldDoc.getTypeName()+dimSuffix);
                                               fieldDoc.setName(fieldDef.trim());
                                               fieldDoc.setValueLiteral(fieldValueLiteral);
                                    *************** public class FieldDocImpl 
                                    *** 79,91 ****
                                         }
                                      
                                         public static Collection createFromSource(ClassDoc containingClass,
                                    ! 					     PackageDoc containingPackage,
                                    ! 					     char[] source, int startIndex, int endIndex) {
                                    !       
                                            List rcList=new ArrayList();
                                      
                                            FieldDocImpl fd=new FieldDocImpl(containingClass,
                                    ! 				       containingPackage,
                                                                             DocImpl.getPosition(containingClass, source, startIndex));
                                      
                                            int ndx=fd.parseModifiers(source, startIndex, endIndex);
                                    --- 96,108 ----
                                         }
                                      
                                         public static Collection createFromSource(ClassDoc containingClass,
                                    !                                              PackageDoc containingPackage,
                                    !                                              char[] source, int startIndex, int endIndex) {
                                    ! 
                                            List rcList=new ArrayList();
                                      
                                            FieldDocImpl fd=new FieldDocImpl(containingClass,
                                    !                                        containingPackage,
                                                                             DocImpl.getPosition(containingClass, source, startIndex));
                                      
                                            int ndx=fd.parseModifiers(source, startIndex, endIndex);
                                    *************** public class FieldDocImpl 
                                    *** 114,125 ****
                                      
                                            for (int i=ndx; i<endIndex; ++i) {
                                      
                                    ! 	 char c = source[i];
                                               char nextChar = '\0';
                                               if (i + 1 < endIndex) {
                                                  nextChar = source[i + 1];
                                               }
                                    ! 	 switch (state) {
                                               case STATE_FIELDNAME:
                                                  if ('/' == c && '/' == nextChar) {
                                                     prevState = state;
                                    --- 131,142 ----
                                      
                                            for (int i=ndx; i<endIndex; ++i) {
                                      
                                    !          char c = source[i];
                                               char nextChar = '\0';
                                               if (i + 1 < endIndex) {
                                                  nextChar = source[i + 1];
                                               }
                                    !          switch (state) {
                                               case STATE_FIELDNAME:
                                                  if ('/' == c && '/' == nextChar) {
                                                     prevState = state;
                                    *************** public class FieldDocImpl 
                                    *** 141,147 ****
                                                  }
                                                  break;
                                      
                                    ! 	 case STATE_FIELDVALUE:
                                                  if ('/' == c && '/' == nextChar) {
                                                     prevState = state;
                                                     state = STATE_LINECOMMENT;
                                    --- 158,164 ----
                                                  }
                                                  break;
                                      
                                    !          case STATE_FIELDVALUE:
                                                  if ('/' == c && '/' == nextChar) {
                                                     prevState = state;
                                                     state = STATE_LINECOMMENT;
                                    *************** public class FieldDocImpl 
                                    *** 150,214 ****
                                                     prevState = state;
                                                     state = STATE_COMMENT;
                                                  }
                                    ! 	    else if ('\"' == c) {
                                                     prevState = state;
                                    ! 	       state = STATE_QUOTE;
                                                     fieldValueLiteralBuf.append(c);
                                    ! 	    }
                                    ! 	    else if ('\'' == c) {
                                                     prevState = state;
                                    ! 	       state = STATE_SQUOTE;
                                                     fieldValueLiteralBuf.append(c);
                                    ! 	    }
                                    ! 	    else if ('{' == c || '(' == c) {
                                                     ++ bracketCount;
                                                     fieldValueLiteralBuf.append(c);
                                    ! 	    }
                                    ! 	    else if ('}' == c || ')' == c) {
                                                     -- bracketCount;
                                                     fieldValueLiteralBuf.append(c);
                                    ! 	    }
                                    ! 	    else if (0 == bracketCount && (',' == c || ';' == c)) {
                                    !                rcList.add(createFieldDoc(fd, fieldNameBuf.toString(), 
                                                                               fieldValueLiteralBuf.toString()));
                                                     fieldNameBuf.setLength(0);
                                                     fieldValueLiteralBuf.setLength(0);
                                    ! 	       state = STATE_FIELDNAME;
                                    ! 	    }
                                                  else {
                                                     fieldValueLiteralBuf.append(c);
                                                  }
                                    ! 	    break;
                                    ! 	    
                                    ! 	 case STATE_QUOTE:
                                                  fieldValueLiteralBuf.append(c);
                                    ! 	    if ('\\' == c) {
                                    ! 	       state = STATE_QUOTEBS;
                                    ! 	    }
                                    ! 	    else if ('\"' == c) {
                                    ! 	       state = prevState;
                                    ! 	    }
                                    ! 	    break;
                                    ! 	    
                                    ! 	 case STATE_SQUOTE:
                                                  fieldValueLiteralBuf.append(c);
                                    ! 	    if ('\\' == c) {
                                    ! 	       state = STATE_SQUOTEBS;
                                    ! 	    }
                                    ! 	    else if ('\'' == c) {
                                    ! 	       state = prevState;
                                    ! 	    }
                                    ! 	    break;
                                    ! 	    
                                    ! 	 case STATE_QUOTEBS:
                                                  fieldValueLiteralBuf.append(c);
                                    ! 	    state = STATE_QUOTE;
                                    ! 	    break;
                                      
                                    ! 	 case STATE_SQUOTEBS:
                                                  fieldValueLiteralBuf.append(c);
                                    ! 	    state = STATE_SQUOTE;
                                    ! 	    break;
                                      
                                               case STATE_LINECOMMENT:
                                                  if ('\n' == c) {
                                    --- 167,231 ----
                                                     prevState = state;
                                                     state = STATE_COMMENT;
                                                  }
                                    !             else if ('\"' == c) {
                                                     prevState = state;
                                    !                state = STATE_QUOTE;
                                                     fieldValueLiteralBuf.append(c);
                                    !             }
                                    !             else if ('\'' == c) {
                                                     prevState = state;
                                    !                state = STATE_SQUOTE;
                                                     fieldValueLiteralBuf.append(c);
                                    !             }
                                    !             else if ('{' == c || '(' == c) {
                                                     ++ bracketCount;
                                                     fieldValueLiteralBuf.append(c);
                                    !             }
                                    !             else if ('}' == c || ')' == c) {
                                                     -- bracketCount;
                                                     fieldValueLiteralBuf.append(c);
                                    !             }
                                    !             else if (0 == bracketCount && (',' == c || ';' == c)) {
                                    !                rcList.add(createFieldDoc(fd, fieldNameBuf.toString(),
                                                                               fieldValueLiteralBuf.toString()));
                                                     fieldNameBuf.setLength(0);
                                                     fieldValueLiteralBuf.setLength(0);
                                    !                state = STATE_FIELDNAME;
                                    !             }
                                                  else {
                                                     fieldValueLiteralBuf.append(c);
                                                  }
                                    !             break;
                                    ! 
                                    !          case STATE_QUOTE:
                                                  fieldValueLiteralBuf.append(c);
                                    !             if ('\\' == c) {
                                    !                state = STATE_QUOTEBS;
                                    !             }
                                    !             else if ('\"' == c) {
                                    !                state = prevState;
                                    !             }
                                    !             break;
                                    ! 
                                    !          case STATE_SQUOTE:
                                                  fieldValueLiteralBuf.append(c);
                                    !             if ('\\' == c) {
                                    !                state = STATE_SQUOTEBS;
                                    !             }
                                    !             else if ('\'' == c) {
                                    !                state = prevState;
                                    !             }
                                    !             break;
                                    ! 
                                    !          case STATE_QUOTEBS:
                                                  fieldValueLiteralBuf.append(c);
                                    !             state = STATE_QUOTE;
                                    !             break;
                                      
                                    !          case STATE_SQUOTEBS:
                                                  fieldValueLiteralBuf.append(c);
                                    !             state = STATE_SQUOTE;
                                    !             break;
                                      
                                               case STATE_LINECOMMENT:
                                                  if ('\n' == c) {
                                    *************** public class FieldDocImpl 
                                    *** 224,232 ****
                                                  break;
                                               }
                                            }
                                    !       
                                            if (fieldNameBuf.length() > 0) {
                                    !          rcList.add(createFieldDoc(fd, fieldNameBuf.toString(), 
                                                                         fieldValueLiteralBuf.toString()));
                                            }
                                      
                                    --- 241,249 ----
                                                  break;
                                               }
                                            }
                                    ! 
                                            if (fieldNameBuf.length() > 0) {
                                    !          rcList.add(createFieldDoc(fd, fieldNameBuf.toString(),
                                                                         fieldValueLiteralBuf.toString()));
                                            }
                                      
                                    *************** public class FieldDocImpl 
                                    *** 235,241 ****
                                      
                                         public boolean isField() {
                                            return true;
                                    !    } 
                                      
                                         public boolean isTransient() { return isTransient; }
                                      
                                    --- 252,258 ----
                                      
                                         public boolean isField() {
                                            return true;
                                    !    }
                                      
                                         public boolean isTransient() { return isTransient; }
                                      
                                    *************** public class FieldDocImpl 
                                    *** 245,269 ****
                                      
                                         public int modifierSpecifier() {
                                            return super.modifierSpecifier()
                                    ! 	 | (isVolatile()?Modifier.VOLATILE:0)
                                    ! 	 | (isTransient()?Modifier.TRANSIENT:0)
                                    ! 	 ;
                                         }
                                      
                                         protected boolean processModifier(String word) {
                                            if (super.processModifier(word)) {
                                    ! 	 return true;
                                            }
                                            else if (word.equals("transient")) {
                                    ! 	 isTransient=true;
                                    ! 	 return true;	 
                                            }
                                            else if (word.equals("volatile")) {
                                    ! 	 isVolatile=true;
                                    ! 	 return true;	 
                                            }
                                            else {
                                    ! 	 return false;
                                            }
                                         }
                                      
                                    --- 262,286 ----
                                      
                                         public int modifierSpecifier() {
                                            return super.modifierSpecifier()
                                    !          | (isVolatile()?Modifier.VOLATILE:0)
                                    !          | (isTransient()?Modifier.TRANSIENT:0)
                                    !          ;
                                         }
                                      
                                         protected boolean processModifier(String word) {
                                            if (super.processModifier(word)) {
                                    !          return true;
                                            }
                                            else if (word.equals("transient")) {
                                    !          isTransient=true;
                                    !          return true;
                                            }
                                            else if (word.equals("volatile")) {
                                    !          isVolatile=true;
                                    !          return true;
                                            }
                                            else {
                                    !          return false;
                                            }
                                         }
                                      
                                    *************** public class FieldDocImpl 
                                    *** 282,291 ****
                                         }
                                      
                                         public Object constantValue(Set visitedFields) {
                                    !       if (!isStatic() 
                                    !           || !isFinal() 
                                                || (!type().isPrimitive() && !"java.lang.String".equals(type().qualifiedTypeName()))
                                    !           || type.dimension().length()>0 
                                                || null == valueLiteral) {
                                      
                                               return null;
                                    --- 299,308 ----
                                         }
                                      
                                         public Object constantValue(Set visitedFields) {
                                    !       if (!isStatic()
                                    !           || !isFinal()
                                                || (!type().isPrimitive() && !"java.lang.String".equals(type().qualifiedTypeName()))
                                    !           || type.dimension().length()>0
                                                || null == valueLiteral) {
                                      
                                               return null;
                                    *************** public class FieldDocImpl 
                                    *** 298,304 ****
                                      
                                                  String expression = "(" + type().typeName() + ")(" + valueLiteral + ")";
                                                  try {
                                    !                this.constantValue = Evaluator.evaluate(expression, 
                                                                                             visitedFields,
                                                                                             (ClassDocImpl)containingClass());
                                                  }
                                    --- 315,321 ----
                                      
                                                  String expression = "(" + type().typeName() + ")(" + valueLiteral + ")";
                                                  try {
                                    !                this.constantValue = Evaluator.evaluate(expression,
                                                                                             visitedFields,
                                                                                             (ClassDocImpl)containingClass());
                                                  }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import java.text.*;
                                    *** 27,33 ****
                                      /**
                                       *  Represents the <code>inheritDoc</code> tag.
                                       */
                                    ! public class InheritDocTagImpl 
                                         extends AbstractTagImpl
                                      {
                                         private ClassDocImpl contextClass;
                                    --- 44,50 ----
                                      /**
                                       *  Represents the <code>inheritDoc</code> tag.
                                       */
                                    ! public class InheritDocTagImpl
                                         extends AbstractTagImpl
                                      {
                                         private ClassDocImpl contextClass;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java	Tue Jun 16 13:22:43 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public final class Main
                                    *** 72,78 ****
                                        /*
                                         *  FIXME: This should come from a ResourceBundle
                                         */
                                    !   private static final String STRING_TRY_GJDOC_HELP = 
                                           "Try `gjdoc --help' for more information.";
                                      
                                        /**
                                    --- 89,95 ----
                                        /*
                                         *  FIXME: This should come from a ResourceBundle
                                         */
                                    !   private static final String STRING_TRY_GJDOC_HELP =
                                           "Try `gjdoc --help' for more information.";
                                      
                                        /**
                                    *************** public final class Main
                                    *** 222,233 ****
                                         * true when --version has been specified on the command line.
                                         */
                                        private boolean option_showVersion;
                                    !   
                                        /**
                                         * true when -bootclasspath has been specified on the command line.
                                         */
                                        private boolean option_bootclasspath_specified;
                                    !   
                                        /**
                                         * true when -all has been specified on the command line.
                                         */
                                    --- 239,250 ----
                                         * true when --version has been specified on the command line.
                                         */
                                        private boolean option_showVersion;
                                    ! 
                                        /**
                                         * true when -bootclasspath has been specified on the command line.
                                         */
                                        private boolean option_bootclasspath_specified;
                                    ! 
                                        /**
                                         * true when -all has been specified on the command line.
                                         */
                                    *************** public final class Main
                                    *** 237,249 ****
                                         * true when -reflection has been specified on the command line.
                                         */
                                        private boolean option_reflection;
                                    !   
                                        // TODO: add the rest of the options as instance variables
                                    !   
                                        /**
                                         * Parse all source files/packages and subsequentially start the Doclet given
                                         * on the command line.
                                    !    * 
                                         * @param allOptions List of all command line tokens
                                         */
                                        private boolean startDoclet(List allOptions)
                                    --- 254,266 ----
                                         * true when -reflection has been specified on the command line.
                                         */
                                        private boolean option_reflection;
                                    ! 
                                        // TODO: add the rest of the options as instance variables
                                    ! 
                                        /**
                                         * Parse all source files/packages and subsequentially start the Doclet given
                                         * on the command line.
                                    !    *
                                         * @param allOptions List of all command line tokens
                                         */
                                        private boolean startDoclet(List allOptions)
                                    *************** public final class Main
                                    *** 483,489 ****
                                                  if (sourceFile.exists() && !sourceFile.isDirectory()) {
                                                    rootDoc.addSpecifiedSourceFile(sourceFile);
                                                    foundSourceFile = true;
                                    !             } 
                                                }
                                              }
                                      
                                    --- 500,506 ----
                                                  if (sourceFile.exists() && !sourceFile.isDirectory()) {
                                                    rootDoc.addSpecifiedSourceFile(sourceFile);
                                                    foundSourceFile = true;
                                    !             }
                                                }
                                              }
                                      
                                    *************** public final class Main
                                    *** 655,661 ****
                                        }
                                      
                                        private void addFoundPackages(String subpackage, Set foundPackages)
                                    !   {        
                                          if (foundPackages.isEmpty()) {
                                            reporter.printWarning("No classes found under subpackage " + subpackage);
                                          }
                                    --- 672,678 ----
                                        }
                                      
                                        private void addFoundPackages(String subpackage, Set foundPackages)
                                    !   {
                                          if (foundPackages.isEmpty()) {
                                            reporter.printWarning("No classes found under subpackage " + subpackage);
                                          }
                                    *************** public final class Main
                                    *** 798,805 ****
                                         *  package specified by its name and its directory. Add the names
                                         *  of all valid packages to the result list.
                                         */
                                    !   private void findPackages(String subpackage, 
                                    !                             File packageDir, 
                                                                  Set result)
                                        {
                                          File[] files = packageDir.listFiles();
                                    --- 815,822 ----
                                         *  package specified by its name and its directory. Add the names
                                         *  of all valid packages to the result list.
                                         */
                                    !   private void findPackages(String subpackage,
                                    !                             File packageDir,
                                                                  Set result)
                                        {
                                          File[] files = packageDir.listFiles();
                                    *************** public final class Main
                                    *** 865,871 ****
                                        /**
                                         * Main entry point. This is the method called when gjdoc is invoked from the
                                         * command line.
                                    !    * 
                                         * @param args
                                         *          command line arguments
                                         */
                                    --- 882,888 ----
                                        /**
                                         * Main entry point. This is the method called when gjdoc is invoked from the
                                         * command line.
                                    !    *
                                         * @param args
                                         *          command line arguments
                                         */
                                    *************** public final class Main
                                    *** 906,912 ****
                                        /**
                                         * Parses command line arguments and subsequentially handles control to the
                                         * startDoclet() method
                                    !    *   
                                         * @param args The command line parameters.
                                         */
                                         public static int execute(String[] args)
                                    --- 923,929 ----
                                        /**
                                         * Parses command line arguments and subsequentially handles control to the
                                         * startDoclet() method
                                    !    *
                                         * @param args The command line parameters.
                                         */
                                         public static int execute(String[] args)
                                    *************** public final class Main
                                    *** 944,950 ****
                                        {
                                          return execute(args);
                                        }
                                    !  
                                        /**
                                         * @param programName Name of the program (for error messages).
                                         * @param defaultDocletClassName Fully qualified class name.
                                    --- 961,967 ----
                                        {
                                          return execute(args);
                                        }
                                    ! 
                                        /**
                                         * @param programName Name of the program (for error messages).
                                         * @param defaultDocletClassName Fully qualified class name.
                                    *************** public final class Main
                                    *** 957,963 ****
                                        {
                                          // not yet implemented
                                        }*/
                                    !  
                                        /**
                                         * @param programName Name of the program (for error messages).
                                         * @param defaultDocletClassName Fully qualified class name.
                                    --- 974,980 ----
                                        {
                                          // not yet implemented
                                        }*/
                                    ! 
                                        /**
                                         * @param programName Name of the program (for error messages).
                                         * @param defaultDocletClassName Fully qualified class name.
                                    *************** public final class Main
                                    *** 970,976 ****
                                        {
                                          // not yet implemented
                                        }*/
                                    !  
                                        /**
                                         * @param programName Name of the program (for error messages).
                                         * @param errWriter PrintWriter to receive error messages.
                                    --- 987,993 ----
                                        {
                                          // not yet implemented
                                        }*/
                                    ! 
                                        /**
                                         * @param programName Name of the program (for error messages).
                                         * @param errWriter PrintWriter to receive error messages.
                                    *************** public final class Main
                                    *** 993,999 ****
                                        /**
                                         * Parses command line arguments and subsequentially handles control to the
                                         * startDoclet() method
                                    !    * 
                                         * @param args
                                         *          Command line arguments, as passed to the main() method
                                         * @return {@code -1} in case of a fatal error (invalid arguments),
                                    --- 1010,1016 ----
                                        /**
                                         * Parses command line arguments and subsequentially handles control to the
                                         * startDoclet() method
                                    !    *
                                         * @param args
                                         *          Command line arguments, as passed to the main() method
                                         * @return {@code -1} in case of a fatal error (invalid arguments),
                                    *************** public final class Main
                                    *** 1143,1149 ****
                                              option_sourcepath.add(new File("."));
                                      
                                            //--- We have all information we need to start the doclet at this time
                                    !     
                                            if (null != option_encoding) {
                                              rootDoc.setSourceEncoding(option_encoding);
                                            }
                                    --- 1160,1166 ----
                                              option_sourcepath.add(new File("."));
                                      
                                            //--- We have all information we need to start the doclet at this time
                                    ! 
                                            if (null != option_encoding) {
                                              rootDoc.setSourceEncoding(option_encoding);
                                            }
                                    *************** public final class Main
                                    *** 1172,1178 ****
                                          BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                                          String line;
                                          while ((line = reader.readLine()) != null) {
                                    !       
                                            String className = line.trim();
                                            if (className.length() > 0) {
                                              ClassDocImpl classDoc =
                                    --- 1189,1195 ----
                                          BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                                          String line;
                                          while ((line = reader.readLine()) != null) {
                                    ! 
                                            String className = line.trim();
                                            if (className.length() > 0) {
                                              ClassDocImpl classDoc =
                                    *************** public final class Main
                                    *** 1200,1206 ****
                                      
                                          /**
                                           * Initializes this instance.
                                    !      * 
                                           * @param argCount
                                           *          number of arguments
                                           */
                                    --- 1217,1223 ----
                                      
                                          /**
                                           * Initializes this instance.
                                    !      *
                                           * @param argCount
                                           *          number of arguments
                                           */
                                    *************** public final class Main
                                    *** 1212,1218 ****
                                          /**
                                           * Overridden by derived classes with behavior to parse the arguments
                                           * specified with this option.
                                    !      * 
                                           * @param args
                                           *          command line arguments
                                           */
                                    --- 1229,1235 ----
                                          /**
                                           * Overridden by derived classes with behavior to parse the arguments
                                           * specified with this option.
                                    !      *
                                           * @param args
                                           *          command line arguments
                                           */
                                    *************** public final class Main
                                    *** 1320,1326 ****
                                                void process(String[] args)
                                                {
                                                  option_source = args[0];
                                    !             if (!"1.2".equals(option_source) 
                                                      && !"1.3".equals(option_source)
                                                      && !"1.4".equals(option_source)) {
                                      
                                    --- 1337,1343 ----
                                                void process(String[] args)
                                                {
                                                  option_source = args[0];
                                    !             if (!"1.2".equals(option_source)
                                                      && !"1.3".equals(option_source)
                                                      && !"1.4".equals(option_source)) {
                                      
                                    *************** public final class Main
                                    *** 1353,1359 ****
                                            {
                                              void process(String[] args)
                                              {
                                    !           StringTokenizer st = new StringTokenizer(args[0], ":"); 
                                                while (st.hasMoreTokens()) {
                                                  String packageName = st.nextToken();
                                      
                                    --- 1370,1376 ----
                                            {
                                              void process(String[] args)
                                              {
                                    !           StringTokenizer st = new StringTokenizer(args[0], ":");
                                                while (st.hasMoreTokens()) {
                                                  String packageName = st.nextToken();
                                      
                                    *************** public final class Main
                                    *** 1373,1379 ****
                                            {
                                              void process(String[] args)
                                              {
                                    !           StringTokenizer st = new StringTokenizer(args[0], ":"); 
                                                while (st.hasMoreTokens()) {
                                                  String packageName = st.nextToken();
                                      
                                    --- 1390,1396 ----
                                            {
                                              void process(String[] args)
                                              {
                                    !           StringTokenizer st = new StringTokenizer(args[0], ":");
                                                while (st.hasMoreTokens()) {
                                                  String packageName = st.nextToken();
                                      
                                    *************** public final class Main
                                    *** 1470,1476 ****
                                                try {
                                                  getRootDoc().setRawCommentText(RootDocImpl.readHtmlBody(new File(args[0])));
                                                }
                                    !           catch (IOException e) { 
                                                  throw new RuntimeException("Cannot read file specified in option -overview: " + e.getMessage());
                                                }
                                              }
                                    --- 1487,1493 ----
                                                try {
                                                  getRootDoc().setRawCommentText(RootDocImpl.readHtmlBody(new File(args[0])));
                                                }
                                    !           catch (IOException e) {
                                                  throw new RuntimeException("Cannot read file specified in option -overview: " + e.getMessage());
                                                }
                                              }
                                    *************** public final class Main
                                    *** 1516,1522 ****
                                      
                                        /**
                                         * Determine how many arguments the given option requires.
                                    !    * 
                                         * @param option
                                         *          The name of the option without leading dash.
                                         */
                                    --- 1533,1539 ----
                                      
                                        /**
                                         * Determine how many arguments the given option requires.
                                    !    *
                                         * @param option
                                         *          The name of the option without leading dash.
                                         */
                                    *************** public final class Main
                                    *** 1533,1539 ****
                                        /**
                                         * Process all given options. Assumes that the options have been validated
                                         * before.
                                    !    * 
                                         * @param optionArr
                                         *          Each element is a series of Strings where [0] is the name of the
                                         *          option and [1..n] are the arguments to the option.
                                    --- 1550,1556 ----
                                        /**
                                         * Process all given options. Assumes that the options have been validated
                                         * before.
                                    !    *
                                         * @param optionArr
                                         *          Each element is a series of Strings where [0] is the name of the
                                         *          option and [1..n] are the arguments to the option.
                                    *************** public final class Main
                                    *** 1682,1688 ****
                                      
                                        /**
                                         * The root of the gjdoc tool.
                                    !    * 
                                         * @return all the options of the gjdoc application.
                                         */
                                        public static RootDocImpl getRootDoc()
                                    --- 1699,1705 ----
                                      
                                        /**
                                         * The root of the gjdoc tool.
                                    !    *
                                         * @return all the options of the gjdoc application.
                                         */
                                        public static RootDocImpl getRootDoc()
                                    *************** public final class Main
                                    *** 1692,1698 ****
                                      
                                        /**
                                         * Get the gjdoc singleton.
                                    !    * 
                                         * @return the gjdoc instance.
                                         */
                                        public static Main getInstance()
                                    --- 1709,1715 ----
                                      
                                        /**
                                         * Get the gjdoc singleton.
                                    !    *
                                         * @return the gjdoc instance.
                                         */
                                        public static Main getInstance()
                                    *************** public final class Main
                                    *** 1702,1708 ****
                                      
                                        /**
                                         * Is this access level covered?
                                    !    * 
                                         * @param accessLevel
                                         *          the access level we want to know if it is covered.
                                         * @return true if the access level is covered.
                                    --- 1719,1725 ----
                                      
                                        /**
                                         * Is this access level covered?
                                    !    *
                                         * @param accessLevel
                                         *          the access level we want to know if it is covered.
                                         * @return true if the access level is covered.
                                    *************** public final class Main
                                    *** 1714,1720 ****
                                      
                                        /**
                                         * Is the doclet running?
                                    !    * 
                                         * @return true if it's running
                                         */
                                        public boolean isDocletRunning()
                                    --- 1731,1737 ----
                                      
                                        /**
                                         * Is the doclet running?
                                    !    *
                                         * @return true if it's running
                                         */
                                        public boolean isDocletRunning()
                                    *************** public final class Main
                                    *** 1726,1732 ****
                                         * Check the charset. Check that all the characters of the string 'toCheck'
                                         * and query if they exist in the 'charSet'. The order does not matter. The
                                         * number of times a character is in the variable does not matter.
                                    !    * 
                                         * @param toCheck
                                         *          the charset to check.
                                         * @param charSet
                                    --- 1743,1749 ----
                                         * Check the charset. Check that all the characters of the string 'toCheck'
                                         * and query if they exist in the 'charSet'. The order does not matter. The
                                         * number of times a character is in the variable does not matter.
                                    !    *
                                         * @param toCheck
                                         *          the charset to check.
                                         * @param charSet
                                    *************** public final class Main
                                    *** 1792,1816 ****
                                                && !defaultLocale.equals(locale)) {
                                              this.collator = Collator.getInstance(defaultLocale);
                                              if (null != this.collator) {
                                    !           reporter.printWarning("No collator found for locale " 
                                    !                                 + locale.getDisplayName() 
                                    !                                 + "; using collator for default locale " 
                                                                      + defaultLocale.getDisplayName()
                                                                      + ".");
                                              }
                                              else {
                                                this.collator = Collator.getInstance();
                                    !           reporter.printWarning("No collator found for specified locale " 
                                    !                                 + locale.getDisplayName() 
                                    !                                 + " or default locale " 
                                                                      + defaultLocale.getDisplayName()
                                                                      + ": using default collator.");
                                              }
                                            }
                                            if (null == this.collator) {
                                              this.collator = Collator.getInstance();
                                    !         reporter.printWarning("No collator found for locale " 
                                    !                               + locale.getDisplayName() 
                                                                    + ": using default collator.");
                                            }
                                          }
                                    --- 1809,1833 ----
                                                && !defaultLocale.equals(locale)) {
                                              this.collator = Collator.getInstance(defaultLocale);
                                              if (null != this.collator) {
                                    !           reporter.printWarning("No collator found for locale "
                                    !                                 + locale.getDisplayName()
                                    !                                 + "; using collator for default locale "
                                                                      + defaultLocale.getDisplayName()
                                                                      + ".");
                                              }
                                              else {
                                                this.collator = Collator.getInstance();
                                    !           reporter.printWarning("No collator found for specified locale "
                                    !                                 + locale.getDisplayName()
                                    !                                 + " or default locale "
                                                                      + defaultLocale.getDisplayName()
                                                                      + ": using default collator.");
                                              }
                                            }
                                            if (null == this.collator) {
                                              this.collator = Collator.getInstance();
                                    !         reporter.printWarning("No collator found for locale "
                                    !                               + locale.getDisplayName()
                                                                    + ": using default collator.");
                                            }
                                          }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public abstract class MemberDocImpl exte
                                    *** 29,39 ****
                                         protected Type   type;
                                      
                                         public MemberDocImpl(ClassDoc containingClass,
                                    ! 			PackageDoc containingPackage,
                                                              SourcePosition position) {
                                      
                                            super(containingClass,
                                    ! 	    containingPackage,
                                                  position);
                                         }
                                      
                                    --- 46,56 ----
                                         protected Type   type;
                                      
                                         public MemberDocImpl(ClassDoc containingClass,
                                    !                         PackageDoc containingPackage,
                                                              SourcePosition position) {
                                      
                                            super(containingClass,
                                    !             containingPackage,
                                                  position);
                                         }
                                      
                                    *************** public abstract class MemberDocImpl exte
                                    *** 61,113 ****
                                            int firstChar = 0;
                                            int lastChar = 0;
                                            for (; startIndex<endIndex; ++startIndex) {
                                    ! 	 if (state==STATE_STARC) {
                                    ! 	    if (startIndex<endIndex-1 && source[startIndex]=='*' && source[startIndex+1]=='/') {
                                    ! 	       ++startIndex;
                                    ! 	       state=STATE_NORMAL;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else if (state==STATE_SLASHC) {
                                    ! 	    if (source[startIndex]=='\n') {
                                    ! 	       state=STATE_NORMAL;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else if (startIndex<endIndex-1 && source[startIndex]=='/' && source[startIndex+1]=='*') {
                                    ! 	    ++startIndex;
                                    ! 	    state=STATE_STARC;
                                    ! 	 }
                                    ! 	 else if (source[startIndex]=='=' || source[startIndex]=='(' || source[startIndex]==';') {
                                                  typeName = typeNameBuf.toString();
                                                  return lastWordStart;
                                    ! 	 }
                                    ! 	 else if (Parser.WHITESPACE.indexOf(source[startIndex])>=0
                                                        || (startIndex > 0 && source[startIndex-1] == ']' && source[startIndex] != '[')) {
                                    ! 	    if (word.length()>0 && lastChar != '.') {
                                    ! 	       if (processModifier(word.toString())) {
                                    ! 	       }
                                    ! 	       else if (typeNameBuf.length()==0 && !isConstructor()) {
                                                        typeNameBuf.setLength(0);
                                    ! 		  typeNameBuf.append(word);
                                    ! 	       }
                                    ! 	       else if ((firstChar=='[' || firstChar==']') && !isConstructor()) {
                                    ! 		  typeNameBuf.append(word);
                                    ! 	       }
                                    ! 	       else {
                                                        typeName = typeNameBuf.toString();
                                    ! 		  return lastWordStart;
                                    ! 	       }
                                    ! 	       word.setLength(0);
                                    ! 	       lastWordStart=startIndex;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    if (lastWordStart<0) lastWordStart=startIndex;
                                                  lastChar = source[startIndex];
                                                  if (0 == word.length()) {
                                                     firstChar = lastChar;
                                                  }
                                    ! 	    word.append((char)lastChar);
                                    ! 	 }
                                            }
                                      
                                            typeName = typeNameBuf.toString();
                                    --- 78,130 ----
                                            int firstChar = 0;
                                            int lastChar = 0;
                                            for (; startIndex<endIndex; ++startIndex) {
                                    !          if (state==STATE_STARC) {
                                    !             if (startIndex<endIndex-1 && source[startIndex]=='*' && source[startIndex+1]=='/') {
                                    !                ++startIndex;
                                    !                state=STATE_NORMAL;
                                    !             }
                                    !          }
                                    !          else if (state==STATE_SLASHC) {
                                    !             if (source[startIndex]=='\n') {
                                    !                state=STATE_NORMAL;
                                    !             }
                                    !          }
                                    !          else if (startIndex<endIndex-1 && source[startIndex]=='/' && source[startIndex+1]=='*') {
                                    !             ++startIndex;
                                    !             state=STATE_STARC;
                                    !          }
                                    !          else if (source[startIndex]=='=' || source[startIndex]=='(' || source[startIndex]==';') {
                                                  typeName = typeNameBuf.toString();
                                                  return lastWordStart;
                                    !          }
                                    !          else if (Parser.WHITESPACE.indexOf(source[startIndex])>=0
                                                        || (startIndex > 0 && source[startIndex-1] == ']' && source[startIndex] != '[')) {
                                    !             if (word.length()>0 && lastChar != '.') {
                                    !                if (processModifier(word.toString())) {
                                    !                }
                                    !                else if (typeNameBuf.length()==0 && !isConstructor()) {
                                                        typeNameBuf.setLength(0);
                                    !                   typeNameBuf.append(word);
                                    !                }
                                    !                else if ((firstChar=='[' || firstChar==']') && !isConstructor()) {
                                    !                   typeNameBuf.append(word);
                                    !                }
                                    !                else {
                                                        typeName = typeNameBuf.toString();
                                    !                   return lastWordStart;
                                    !                }
                                    !                word.setLength(0);
                                    !                lastWordStart=startIndex;
                                    !             }
                                    !          }
                                    !          else {
                                    !             if (lastWordStart<0) lastWordStart=startIndex;
                                                  lastChar = source[startIndex];
                                                  if (0 == word.length()) {
                                                     firstChar = lastChar;
                                                  }
                                    !             word.append((char)lastChar);
                                    !          }
                                            }
                                      
                                            typeName = typeNameBuf.toString();
                                    *************** public abstract class MemberDocImpl exte
                                    *** 115,131 ****
                                         }
                                      
                                          public Type type() {
                                    ! 	//public Type type() throws ParseException { 
                                    ! 	Debug.log(9,"type() called on "+containingClass()+"."+this);
                                    ! 	if (type==null) {
                                    ! 	    try {
                                    ! 		type=((ClassDocImpl)containingClass()).typeForString(typeName);
                                    ! 	    } catch (ParseException e) {
                                    ! 	       System.err.println("FIXME: add try-catch to force compilation");
                                    ! 	       e.printStackTrace();
                                    ! 	    }
                                    ! 	}
                                    ! 	return type;
                                          }
                                      
                                      
                                    --- 132,148 ----
                                         }
                                      
                                          public Type type() {
                                    !         //public Type type() throws ParseException {
                                    !         Debug.log(9,"type() called on "+containingClass()+"."+this);
                                    !         if (type==null) {
                                    !             try {
                                    !                 type=((ClassDocImpl)containingClass()).typeForString(typeName);
                                    !             } catch (ParseException e) {
                                    !                System.err.println("FIXME: add try-catch to force compilation");
                                    !                e.printStackTrace();
                                    !             }
                                    !         }
                                    !         return type;
                                          }
                                      
                                      
                                    *************** public abstract class MemberDocImpl exte
                                    *** 139,145 ****
                                            return name;
                                         }
                                      
                                    !    public void setTypeName(String typeName) { 
                                            this.typeName=typeName;
                                            this.type=null;
                                         }
                                    --- 156,162 ----
                                            return name;
                                         }
                                      
                                    !    public void setTypeName(String typeName) {
                                            this.typeName=typeName;
                                            this.type=null;
                                         }
                                    *************** public abstract class MemberDocImpl exte
                                    *** 148,204 ****
                                            return typeName;
                                         }
                                      
                                    !    // return true if this Doc is include in the active set. 
                                         public boolean isIncluded() {
                                            return Main.getInstance().includeAccessLevel(accessLevel);
                                    !    } 
                                      
                                         public int compareTo(Object o) {
                                            if (o instanceof MemberDocImpl) {
                                    ! 	 int rc=name().compareTo(((MemberDocImpl)o).name());
                                    ! 	 if (rc==0) 
                                    ! 	    rc=containingClass().qualifiedName().compareTo(((MemberDocImpl)o).containingClass().qualifiedName());
                                    ! 	 return rc;
                                            }
                                            else {
                                    ! 	 return super.compareTo(o);
                                            }
                                         }
                                      
                                         void resolve() {
                                      
                                            if (type==null && typeName!=null) {
                                    ! 	 Debug.log(1, "MemberDocImpl.resolve(), looking up type named "+typeName);
                                    ! 	 try {
                                    ! 	    type=((ClassDocImpl)containingClass()).typeForString(typeName);
                                    ! 	 } catch (ParseException e) {
                                    ! 	    //System.err.println("FIXME: add try-catch to force compilation");
                                    ! 	    //e.printStackTrace();
                                    ! 	    Debug.log(1, "INTERNAL WARNING: Couldn't find type for name '"+typeName+"'");
                                    ! 	 }
                                            }
                                      
                                            if (type instanceof ClassDocProxy) {
                                    ! 	 String className=type.qualifiedTypeName();
                                    ! 	 ClassDoc realClassDoc=((ClassDocImpl)containingClass()).findClass(className, type.dimension());
                                    ! 	 if (realClassDoc!=null) {
                                                  type=realClassDoc;
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    //throw new Error("Class not found: "+className);
                                    ! 	    /*** This is not an error, the class was not included
                                    ! 	     * on the command line. Perhaps emit a notice here.
                                    ! 	     *
                                      
                                    ! 	    Main.getRootDoc().printError("Class not found '"
                                    ! 			                 + className
                                    ! 					 + "' in class '"
                                    ! 					 + containingClass().qualifiedName()
                                    ! 					 + "' member '"
                                    ! 					 + name()
                                    ! 					 + "'");
                                    ! 	    */
                                    ! 	 }
                                            }
                                         }
                                      
                                    --- 165,221 ----
                                            return typeName;
                                         }
                                      
                                    !    // return true if this Doc is include in the active set.
                                         public boolean isIncluded() {
                                            return Main.getInstance().includeAccessLevel(accessLevel);
                                    !    }
                                      
                                         public int compareTo(Object o) {
                                            if (o instanceof MemberDocImpl) {
                                    !          int rc=name().compareTo(((MemberDocImpl)o).name());
                                    !          if (rc==0)
                                    !             rc=containingClass().qualifiedName().compareTo(((MemberDocImpl)o).containingClass().qualifiedName());
                                    !          return rc;
                                            }
                                            else {
                                    !          return super.compareTo(o);
                                            }
                                         }
                                      
                                         void resolve() {
                                      
                                            if (type==null && typeName!=null) {
                                    !          Debug.log(1, "MemberDocImpl.resolve(), looking up type named "+typeName);
                                    !          try {
                                    !             type=((ClassDocImpl)containingClass()).typeForString(typeName);
                                    !          } catch (ParseException e) {
                                    !             //System.err.println("FIXME: add try-catch to force compilation");
                                    !             //e.printStackTrace();
                                    !             Debug.log(1, "INTERNAL WARNING: Couldn't find type for name '"+typeName+"'");
                                    !          }
                                            }
                                      
                                            if (type instanceof ClassDocProxy) {
                                    !          String className=type.qualifiedTypeName();
                                    !          ClassDoc realClassDoc=((ClassDocImpl)containingClass()).findClass(className, type.dimension());
                                    !          if (realClassDoc!=null) {
                                                  type=realClassDoc;
                                    !          }
                                    !          else {
                                    !             //throw new Error("Class not found: "+className);
                                    !             /*** This is not an error, the class was not included
                                    !              * on the command line. Perhaps emit a notice here.
                                    !              *
                                      
                                    !             Main.getRootDoc().printError("Class not found '"
                                    !                                          + className
                                    !                                          + "' in class '"
                                    !                                          + containingClass().qualifiedName()
                                    !                                          + "' member '"
                                    !                                          + name()
                                    !                                          + "'");
                                    !             */
                                    !          }
                                            }
                                         }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import com.sun.javadoc.*;
                                    *** 26,46 ****
                                      public class MethodDocImpl extends ExecutableMemberDocImpl implements MethodDoc {
                                      
                                         public MethodDocImpl(ClassDoc containingClass,
                                    ! 			PackageDoc containingPackage,
                                                              SourcePosition position) {
                                    !       
                                            super(containingClass,
                                    ! 	    containingPackage,
                                                  position);
                                         }
                                      
                                    !    // Is this Doc item a class. 
                                         public boolean isMethod() {
                                            return true;
                                    !    } 
                                      
                                    !    public Type returnType() { 
                                    !       return super.type(); 
                                         }
                                      
                                         public String toString() { return name()+((signature()==null)?"()":signature()); }
                                    --- 43,63 ----
                                      public class MethodDocImpl extends ExecutableMemberDocImpl implements MethodDoc {
                                      
                                         public MethodDocImpl(ClassDoc containingClass,
                                    !                         PackageDoc containingPackage,
                                                              SourcePosition position) {
                                    ! 
                                            super(containingClass,
                                    !             containingPackage,
                                                  position);
                                         }
                                      
                                    !    // Is this Doc item a class.
                                         public boolean isMethod() {
                                            return true;
                                    !    }
                                      
                                    !    public Type returnType() {
                                    !       return super.type();
                                         }
                                      
                                         public String toString() { return name()+((signature()==null)?"()":signature()); }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** class PackageDocImpl extends DocImpl imp
                                    *** 33,39 ****
                                         private List   ordinaryClassesList = new ArrayList();
                                         private List   exceptionsList      = new ArrayList();
                                         private List   interfacesList      = new ArrayList();
                                    !    private List   errorsList          = new ArrayList();   
                                      
                                         private ClassDoc[] allClasses;
                                         private ClassDoc[] ordinaryClasses;
                                    --- 50,56 ----
                                         private List   ordinaryClassesList = new ArrayList();
                                         private List   exceptionsList      = new ArrayList();
                                         private List   interfacesList      = new ArrayList();
                                    !    private List   errorsList          = new ArrayList();
                                      
                                         private ClassDoc[] allClasses;
                                         private ClassDoc[] ordinaryClasses;
                                    *************** class PackageDocImpl extends DocImpl imp
                                    *** 48,88 ****
                                      
                                         public void addClass(ClassDoc classDoc) {
                                            if (Main.getInstance().includeAccessLevel(((ClassDocImpl)classDoc).accessLevel)) {
                                    ! 	 allClassesSet.add(classDoc);
                                            }
                                         }
                                      
                                         public void resolve() {
                                            for (Iterator it=allClassesSet.iterator(); it.hasNext(); ) {
                                    ! 	 ClassDocImpl classDoc=(ClassDocImpl)it.next();
                                    ! 	 try {
                                    ! 	     classDoc.resolve();
                                    ! 	 } catch (ParseException e) {
                                    ! 	     System.err.println("FIXME: add try-catch to force compilation"
                                    ! 				+ e);
                                    ! 	 }
                                      
                                    ! 	 if (classDoc.isInterface()) {
                                    ! 	    interfacesList.add(classDoc);
                                    ! 	 }
                                    ! 	 else if (classDoc.isException()) {
                                    ! 	    exceptionsList.add(classDoc);
                                    ! 	 }
                                    ! 	 else if (classDoc.isError()) {
                                    ! 	    errorsList.add(classDoc);
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    ordinaryClassesList.add(classDoc);
                                    ! 	 }
                                            }
                                         }
                                      
                                         public void resolveComments() {
                                            if (rawDocumentation!=null) {
                                    ! 	 this.tagMap=parseCommentTags(rawDocumentation.toCharArray(),
                                    ! 				      0,
                                    ! 				      rawDocumentation.length(),
                                    ! 				      null,
                                                                            null,
                                                                            null,
                                                                            null);
                                    --- 65,105 ----
                                      
                                         public void addClass(ClassDoc classDoc) {
                                            if (Main.getInstance().includeAccessLevel(((ClassDocImpl)classDoc).accessLevel)) {
                                    !          allClassesSet.add(classDoc);
                                            }
                                         }
                                      
                                         public void resolve() {
                                            for (Iterator it=allClassesSet.iterator(); it.hasNext(); ) {
                                    !          ClassDocImpl classDoc=(ClassDocImpl)it.next();
                                    !          try {
                                    !              classDoc.resolve();
                                    !          } catch (ParseException e) {
                                    !              System.err.println("FIXME: add try-catch to force compilation"
                                    !                                 + e);
                                    !          }
                                      
                                    !          if (classDoc.isInterface()) {
                                    !             interfacesList.add(classDoc);
                                    !          }
                                    !          else if (classDoc.isException()) {
                                    !             exceptionsList.add(classDoc);
                                    !          }
                                    !          else if (classDoc.isError()) {
                                    !             errorsList.add(classDoc);
                                    !          }
                                    !          else {
                                    !             ordinaryClassesList.add(classDoc);
                                    !          }
                                            }
                                         }
                                      
                                         public void resolveComments() {
                                            if (rawDocumentation!=null) {
                                    !          this.tagMap=parseCommentTags(rawDocumentation.toCharArray(),
                                    !                                       0,
                                    !                                       rawDocumentation.length(),
                                    !                                       null,
                                                                            null,
                                                                            null,
                                                                            null);
                                    *************** class PackageDocImpl extends DocImpl imp
                                    *** 91,110 ****
                                            resolveTags();
                                         }
                                      
                                    !    public String name() { 
                                    !       return packageName; 
                                         }
                                      
                                    !    public ClassDoc[] allClasses() 
                                    !    { 
                                            if (null == this.allClasses) {
                                               this.allClasses = toClassDocArray(allClassesSet);
                                            }
                                            return this.allClasses;
                                         }
                                      
                                    !    public ClassDoc[] ordinaryClasses() 
                                    !    { 
                                            if (null == this.ordinaryClasses) {
                                               this.ordinaryClasses = toClassDocArray(ordinaryClassesList);
                                            }
                                    --- 108,127 ----
                                            resolveTags();
                                         }
                                      
                                    !    public String name() {
                                    !       return packageName;
                                         }
                                      
                                    !    public ClassDoc[] allClasses()
                                    !    {
                                            if (null == this.allClasses) {
                                               this.allClasses = toClassDocArray(allClassesSet);
                                            }
                                            return this.allClasses;
                                         }
                                      
                                    !    public ClassDoc[] ordinaryClasses()
                                    !    {
                                            if (null == this.ordinaryClasses) {
                                               this.ordinaryClasses = toClassDocArray(ordinaryClassesList);
                                            }
                                    *************** class PackageDocImpl extends DocImpl imp
                                    *** 112,135 ****
                                         }
                                      
                                      
                                    !    public ClassDoc[] exceptions() 
                                    !    { 
                                            if (null == this.exceptions) {
                                               this.exceptions = toClassDocArray(exceptionsList);
                                            }
                                            return this.exceptions;
                                         }
                                      
                                    !    public ClassDoc[] interfaces() 
                                    !    { 
                                            if (null == this.interfaces) {
                                               this.interfaces = toClassDocArray(interfacesList);
                                            }
                                            return this.interfaces;
                                         }
                                      
                                    !    public ClassDoc[] errors() 
                                    !    { 
                                            if (null == this.errors) {
                                               this.errors = toClassDocArray(errorsList);
                                            }
                                    --- 129,152 ----
                                         }
                                      
                                      
                                    !    public ClassDoc[] exceptions()
                                    !    {
                                            if (null == this.exceptions) {
                                               this.exceptions = toClassDocArray(exceptionsList);
                                            }
                                            return this.exceptions;
                                         }
                                      
                                    !    public ClassDoc[] interfaces()
                                    !    {
                                            if (null == this.interfaces) {
                                               this.interfaces = toClassDocArray(interfacesList);
                                            }
                                            return this.interfaces;
                                         }
                                      
                                    !    public ClassDoc[] errors()
                                    !    {
                                            if (null == this.errors) {
                                               this.errors = toClassDocArray(errorsList);
                                            }
                                    *************** class PackageDocImpl extends DocImpl imp
                                    *** 143,149 ****
                                            return result;
                                         }
                                      
                                    !    public ClassDoc findClass(String name) { 
                                            return Main.getRootDoc().classNamed(packageName+"."+name);
                                         }
                                      
                                    --- 160,166 ----
                                            return result;
                                         }
                                      
                                    !    public ClassDoc findClass(String name) {
                                            return Main.getRootDoc().classNamed(packageName+"."+name);
                                         }
                                      
                                    *************** class PackageDocImpl extends DocImpl imp
                                    *** 153,159 ****
                                      
                                            Debug.log(level, "Ordinary classes:");
                                            Debug.dumpArray(level, ordinaryClasses());
                                    !       
                                         }
                                      
                                         public static final PackageDocImpl DEFAULT_PACKAGE = new PackageDocImpl("");
                                    --- 170,176 ----
                                      
                                            Debug.log(level, "Ordinary classes:");
                                            Debug.dumpArray(level, ordinaryClasses());
                                    ! 
                                         }
                                      
                                         public static final PackageDocImpl DEFAULT_PACKAGE = new PackageDocImpl("");
                                    *************** class PackageDocImpl extends DocImpl imp
                                    *** 178,193 ****
                                      
                                         public int compareTo(Object o) {
                                            if (o!=null && o instanceof PackageDocImpl)
                                    ! 	 return name().compareTo(((PackageDocImpl)o).name());
                                            else
                                    ! 	 return 0;
                                         }
                                      
                                         public boolean equals(Object o) {
                                            if (o!=null && o instanceof PackageDocImpl)
                                    ! 	 return name().equals(((PackageDocImpl)o).name());
                                            else
                                    ! 	 return false;
                                         }
                                      
                                         /**
                                    --- 195,210 ----
                                      
                                         public int compareTo(Object o) {
                                            if (o!=null && o instanceof PackageDocImpl)
                                    !          return name().compareTo(((PackageDocImpl)o).name());
                                            else
                                    !          return 0;
                                         }
                                      
                                         public boolean equals(Object o) {
                                            if (o!=null && o instanceof PackageDocImpl)
                                    !          return name().equals(((PackageDocImpl)o).name());
                                            else
                                    !          return false;
                                         }
                                      
                                         /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class ParamTagImpl extends Abstra
                                    *** 28,34 ****
                                      
                                         private String parameterName;
                                         private String parameterComment;
                                    !    
                                         public ParamTagImpl(String text,
                                                             ClassDocImpl contextClass,
                                                             MemberDocImpl contextMember) {
                                    --- 45,51 ----
                                      
                                         private String parameterName;
                                         private String parameterComment;
                                    ! 
                                         public ParamTagImpl(String text,
                                                             ClassDocImpl contextClass,
                                                             MemberDocImpl contextMember) {
                                    *************** public class ParamTagImpl extends Abstra
                                    *** 36,49 ****
                                            char[] textarr=text.toCharArray();
                                            int i=0;
                                            for (; i<textarr.length; ++i) {
                                    ! 	 if (!Parser.isWhitespace(textarr[i])) break;
                                            }
                                            for (; i<textarr.length; ++i) {
                                    ! 	 if (Parser.isWhitespace(textarr[i])) {
                                    ! 	    parameterName=new String(textarr,0,i).trim();
                                    ! 	    parameterComment=new String(textarr,i,textarr.length-i).trim();
                                    ! 	    break;
                                    ! 	 }
                                            }
                                            if (parameterComment!=null) {
                                               setBody(parameterComment, contextClass, contextMember);
                                    --- 53,66 ----
                                            char[] textarr=text.toCharArray();
                                            int i=0;
                                            for (; i<textarr.length; ++i) {
                                    !          if (!Parser.isWhitespace(textarr[i])) break;
                                            }
                                            for (; i<textarr.length; ++i) {
                                    !          if (Parser.isWhitespace(textarr[i])) {
                                    !             parameterName=new String(textarr,0,i).trim();
                                    !             parameterComment=new String(textarr,i,textarr.length-i).trim();
                                    !             break;
                                    !          }
                                            }
                                            if (parameterComment!=null) {
                                               setBody(parameterComment, contextClass, contextMember);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class ParameterImpl implements Pa
                                    *** 37,45 ****
                                      
                                         public void resolve(ClassDoc classContext) {
                                            if (type instanceof ClassDocProxy) {
                                    ! 	 String className=type.qualifiedTypeName();
                                    ! 	 ClassDoc realClassDoc=((ClassDocImpl)classContext).findClass(className, type.dimension());
                                    ! 	 if (realClassDoc!=null) {
                                                  type=realClassDoc;
                                               }
                                            }
                                    --- 54,62 ----
                                      
                                         public void resolve(ClassDoc classContext) {
                                            if (type instanceof ClassDocProxy) {
                                    !          String className=type.qualifiedTypeName();
                                    !          ClassDoc realClassDoc=((ClassDocImpl)classContext).findClass(className, type.dimension());
                                    !          if (realClassDoc!=null) {
                                                  type=realClassDoc;
                                               }
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,35 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                      class ParseException extends Exception {
                                      
                                    !    public ParseException() 
                                         {
                                         }
                                      
                                    !    public ParseException(String msg) 
                                         {
                                            super(msg);
                                         }
                                      
                                      }
                                    - 
                                    --- 16,51 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                      class ParseException extends Exception {
                                      
                                    !    public ParseException()
                                         {
                                         }
                                      
                                    !    public ParseException(String msg)
                                         {
                                            super(msg);
                                         }
                                      
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 7,13 ****
                                         it under the terms of the GNU General Public License as published by
                                         the Free Software Foundation; either version 2, or (at your option)
                                         any later version.
                                    !  
                                         GNU Classpath 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
                                    --- 7,13 ----
                                         it under the terms of the GNU General Public License as published by
                                         the Free Software Foundation; either version 2, or (at your option)
                                         any later version.
                                    ! 
                                         GNU Classpath 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
                                    ***************
                                    *** 16,22 ****
                                         You should have received a copy of the GNU General Public License
                                         along with GNU Classpath; see the file COPYING.  If not, write to the
                                         Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    !    02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                         You should have received a copy of the GNU General Public License
                                         along with GNU Classpath; see the file COPYING.  If not, write to the
                                         Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    !    02111-1307 USA.
                                    ! 
                                    !    Linking this library statically or dynamically with other modules is
                                    !    making a combined work based on this library.  Thus, the terms and
                                    !    conditions of the GNU General Public License cover the whole
                                    !    combination.
                                    ! 
                                    !    As a special exception, the copyright holders of this library give you
                                    !    permission to link this library with independent modules to produce an
                                    !    executable, regardless of the license terms of these independent
                                    !    modules, and to copy and distribute the resulting executable under
                                    !    terms of your choice, provided that you also meet, for each linked
                                    !    independent module, the terms and conditions of the license of that
                                    !    module.  An independent module is a module which is not derived from
                                    !    or based on this library.  If you modify this library, you may extend
                                    !    this exception to your version of the library, but you are not
                                    !    obligated to do so.  If you do not wish to do so, delete this
                                    !    exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import gnu.classpath.tools.NotifyingInpu
                                    *** 36,42 ****
                                      import gnu.classpath.tools.MalformedInputListener;
                                      import gnu.classpath.tools.MalformedInputEvent;
                                      
                                    !    class IgnoredFileParseException extends ParseException 
                                         {
                                            // marker exception
                                         }
                                    --- 53,59 ----
                                      import gnu.classpath.tools.MalformedInputListener;
                                      import gnu.classpath.tools.MalformedInputEvent;
                                      
                                    !    class IgnoredFileParseException extends ParseException
                                         {
                                            // marker exception
                                         }
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 46,63 ****
                                            abstract int match(char[] source, int index) throws ParseException;
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
                                    ! 	 return endIndex;
                                            }
                                      
                                            int getEndIndex(char[] source, int endIndex) throws ParseException {
                                    ! 	 return endIndex;
                                            }
                                         }
                                      
                                         abstract class BlockSourceComponent extends SourceComponent {
                                      
                                            int getEndIndex(char[] source, int endIndex) throws ParseException {
                                    ! 	 return Parser.skipExpression(source, endIndex, 1, '\0');
                                            }
                                      
                                         }
                                    --- 63,80 ----
                                            abstract int match(char[] source, int index) throws ParseException;
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
                                    !          return endIndex;
                                            }
                                      
                                            int getEndIndex(char[] source, int endIndex) throws ParseException {
                                    !          return endIndex;
                                            }
                                         }
                                      
                                         abstract class BlockSourceComponent extends SourceComponent {
                                      
                                            int getEndIndex(char[] source, int endIndex) throws ParseException {
                                    !          return Parser.skipExpression(source, endIndex, 1, '\0');
                                            }
                                      
                                         }
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 66,92 ****
                                      
                                            int match(char[] source, int index) {
                                      
                                    ! 	 int rc=index;
                                    ! 	 int slen=source.length;
                                    ! 	 while (rc<slen && Parser.WHITESPACE.indexOf(source[rc])>=0) ++rc;
                                      
                                    ! 	 return (rc!=index) ? rc : -1;
                                            }
                                         }
                                      
                                         class BracketClose extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    ! 	 if (source[index]=='}') {
                                    ! 	    return index+1;
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    return -1;
                                    ! 	 }
                                            }
                                      
                                    !      int process(Parser parser, char[] source, int startIndex, int endIndex) 
                                    !        throws ParseException, IOException 
                                           {
                                             parser.classClosed();
                                             return endIndex;
                                    --- 83,109 ----
                                      
                                            int match(char[] source, int index) {
                                      
                                    !          int rc=index;
                                    !          int slen=source.length;
                                    !          while (rc<slen && Parser.WHITESPACE.indexOf(source[rc])>=0) ++rc;
                                      
                                    !          return (rc!=index) ? rc : -1;
                                            }
                                         }
                                      
                                         class BracketClose extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    !          if (source[index]=='}') {
                                    !             return index+1;
                                    !          }
                                    !          else {
                                    !             return -1;
                                    !          }
                                            }
                                      
                                    !      int process(Parser parser, char[] source, int startIndex, int endIndex)
                                    !        throws ParseException, IOException
                                           {
                                             parser.classClosed();
                                             return endIndex;
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 96,119 ****
                                         class CommentComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) throws ParseException {
                                    ! 	 if (index+1<source.length && source[index]=='/' && source[index+1]=='*') {
                                    ! 	    for (index+=2; index+1<source.length; ++index) {
                                    ! 	       if (source[index]=='*' && source[index+1]=='/')
                                    ! 		  return index+2;
                                    ! 	    }
                                    ! 	    throw new ParseException("unexpected end of input");
                                    ! 	 }
                                    ! 	 return -1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) {
                                      
                                    ! 	 if (source[startIndex+0]=='/' 
                                    ! 	     && source[startIndex+1]=='*' 
                                    ! 	     && source[startIndex+2]=='*') {
                                      
                                    ! 	    parser.setLastComment(new String(source, startIndex, endIndex-startIndex));
                                    ! 	 }
                                               else if (null == parser.getBoilerplateComment() && Main.getInstance().isCopyLicenseText()) {
                                                  String boilerplateComment = new String(source, startIndex + 2, endIndex-startIndex - 4);
                                                  if (boilerplateComment.toLowerCase().indexOf("copyright") >= 0) {
                                    --- 113,136 ----
                                         class CommentComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) throws ParseException {
                                    !          if (index+1<source.length && source[index]=='/' && source[index+1]=='*') {
                                    !             for (index+=2; index+1<source.length; ++index) {
                                    !                if (source[index]=='*' && source[index+1]=='/')
                                    !                   return index+2;
                                    !             }
                                    !             throw new ParseException("unexpected end of input");
                                    !          }
                                    !          return -1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) {
                                      
                                    !          if (source[startIndex+0]=='/'
                                    !              && source[startIndex+1]=='*'
                                    !              && source[startIndex+2]=='*') {
                                      
                                    !             parser.setLastComment(new String(source, startIndex, endIndex-startIndex));
                                    !          }
                                               else if (null == parser.getBoilerplateComment() && Main.getInstance().isCopyLicenseText()) {
                                                  String boilerplateComment = new String(source, startIndex + 2, endIndex-startIndex - 4);
                                                  if (boilerplateComment.toLowerCase().indexOf("copyright") >= 0) {
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 121,142 ****
                                                  }
                                               }
                                      
                                    ! 	 return endIndex;
                                            }
                                         }
                                      
                                         class SlashSlashCommentComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    ! 	 if (index+1<source.length && source[index]=='/' && source[index+1]=='/') {
                                    ! 	    index+=2;
                                    ! 	    while (index<source.length && source[index]!='\n')
                                    ! 	       ++index;
                                    ! 	    return index;
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    return -1;
                                    ! 	 }
                                            }
                                         }
                                      
                                    --- 138,159 ----
                                                  }
                                               }
                                      
                                    !          return endIndex;
                                            }
                                         }
                                      
                                         class SlashSlashCommentComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    !          if (index+1<source.length && source[index]=='/' && source[index+1]=='/') {
                                    !             index+=2;
                                    !             while (index<source.length && source[index]!='\n')
                                    !                ++index;
                                    !             return index;
                                    !          }
                                    !          else {
                                    !             return -1;
                                    !          }
                                            }
                                         }
                                      
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 159,278 ****
                                         class ImportComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    ! 	 if (index+7<source.length) {
                                    ! 	    if (source[index+0]=='i' 
                                    ! 		&& source[index+1]=='m'
                                    ! 		&& source[index+2]=='p'
                                    ! 		&& source[index+3]=='o'
                                    ! 		&& source[index+4]=='r'
                                    ! 		&& source[index+5]=='t'
                                    ! 		&& Parser.WHITESPACE.indexOf(source[index+6])>=0) {
                                      
                                    ! 	       for (index+=7; index<source.length && source[index]!=';'; ++index)
                                    ! 		  ;
                                      
                                    ! 	       return index+1;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 return -1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
                                    ! 	 String importString=new String(source,startIndex+7,endIndex-startIndex-7-1).trim();
                                    ! 	 parser.importEncountered(importString);     
                                    ! 	 return endIndex;
                                            }
                                         }
                                      
                                         class PackageComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    ! 	 if (index+10<source.length) {
                                    ! 	    if (source[index+0]=='p' 
                                    ! 		&& source[index+1]=='a'
                                    ! 		&& source[index+2]=='c'
                                    ! 		&& source[index+3]=='k'
                                    ! 		&& source[index+4]=='a'
                                    ! 		&& source[index+5]=='g'
                                    ! 		&& source[index+6]=='e'
                                    ! 		&& Parser.WHITESPACE.indexOf(source[index+7])>=0) {
                                      
                                    ! 	       for (index+=7; index<source.length && source[index]!=';'; ++index)
                                    ! 		  ;
                                      
                                    ! 	       return index+1;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 return -1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) {
                                    ! 	 String packageName=new String(source,startIndex+8,endIndex-startIndex-8-1).trim();
                                    ! 	 parser.packageOpened(packageName);
                                    ! 	 return endIndex;
                                            }
                                         }
                                      
                                         class FieldComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) throws ParseException {
                                    ! 	 boolean isField=false;
                                    ! 	 final int STATE_NORMAL=1;
                                    ! 	 final int STATE_SLASHC=2;
                                    ! 	 final int STATE_STARC=3;
                                    ! 	 final int STATE_FIELDVAL=4;
                                    ! 	 final int STATE_STRING=5;
                                    ! 	 final int STATE_SINGLEQUOTED=6;
                                    ! 	 final int STATE_STRING_BS=7;
                                    ! 	 final int STATE_SINGLEQUOTED_BS=8;
                                      
                                    ! 	 int state=STATE_NORMAL;
                                               int prevState=STATE_NORMAL;
                                      
                                               int fieldValueLevel = 0;
                                      
                                    ! 	 for (; index<source.length && !isField; ++index) {
                                    ! 	    if (state==STATE_STARC) {
                                    ! 	       if (index<source.length-1 && source[index]=='*' && source[index+1]=='/') {
                                    ! 		  ++index;
                                    ! 		  state=prevState;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if (state==STATE_SLASHC) {
                                    ! 	       if (source[index]=='\n') {
                                    ! 		  state=prevState;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if (state==STATE_STRING) {
                                    ! 	       if (source[index]=='\\') {
                                    ! 		  state=STATE_STRING_BS;
                                    ! 	       }
                                    ! 	       else if (source[index]=='\"') {
                                    ! 		  state=prevState;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if (state==STATE_STRING_BS) {
                                                     state=STATE_STRING;
                                                  }
                                    ! 	    else if (state==STATE_SINGLEQUOTED) {
                                    ! 	       if (source[index]=='\\') {
                                    ! 		  state=STATE_SINGLEQUOTED_BS;
                                    ! 	       }
                                    ! 	       else if (source[index]=='\'') {
                                    ! 		  state=prevState;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if (state==STATE_SINGLEQUOTED_BS) {
                                                     state=STATE_SINGLEQUOTED;
                                                  }
                                                  else if (state==STATE_FIELDVAL) {
                                                     if (source[index]=='/') {
                                                        if (index<source.length-1 && source[index+1]=='*') {
                                    !                      state=STATE_STARC; 
                                                           ++index;
                                                        }
                                                        else if (index<source.length-1 && source[index+1]=='/') {
                                    !                      state=STATE_SLASHC; 
                                                           ++index;
                                                        }
                                                     }
                                    --- 176,295 ----
                                         class ImportComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    !          if (index+7<source.length) {
                                    !             if (source[index+0]=='i'
                                    !                 && source[index+1]=='m'
                                    !                 && source[index+2]=='p'
                                    !                 && source[index+3]=='o'
                                    !                 && source[index+4]=='r'
                                    !                 && source[index+5]=='t'
                                    !                 && Parser.WHITESPACE.indexOf(source[index+6])>=0) {
                                      
                                    !                for (index+=7; index<source.length && source[index]!=';'; ++index)
                                    !                   ;
                                      
                                    !                return index+1;
                                    !             }
                                    !          }
                                    !          return -1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
                                    !          String importString=new String(source,startIndex+7,endIndex-startIndex-7-1).trim();
                                    !          parser.importEncountered(importString);
                                    !          return endIndex;
                                            }
                                         }
                                      
                                         class PackageComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    !          if (index+10<source.length) {
                                    !             if (source[index+0]=='p'
                                    !                 && source[index+1]=='a'
                                    !                 && source[index+2]=='c'
                                    !                 && source[index+3]=='k'
                                    !                 && source[index+4]=='a'
                                    !                 && source[index+5]=='g'
                                    !                 && source[index+6]=='e'
                                    !                 && Parser.WHITESPACE.indexOf(source[index+7])>=0) {
                                      
                                    !                for (index+=7; index<source.length && source[index]!=';'; ++index)
                                    !                   ;
                                      
                                    !                return index+1;
                                    !             }
                                    !          }
                                    !          return -1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) {
                                    !          String packageName=new String(source,startIndex+8,endIndex-startIndex-8-1).trim();
                                    !          parser.packageOpened(packageName);
                                    !          return endIndex;
                                            }
                                         }
                                      
                                         class FieldComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) throws ParseException {
                                    !          boolean isField=false;
                                    !          final int STATE_NORMAL=1;
                                    !          final int STATE_SLASHC=2;
                                    !          final int STATE_STARC=3;
                                    !          final int STATE_FIELDVAL=4;
                                    !          final int STATE_STRING=5;
                                    !          final int STATE_SINGLEQUOTED=6;
                                    !          final int STATE_STRING_BS=7;
                                    !          final int STATE_SINGLEQUOTED_BS=8;
                                      
                                    !          int state=STATE_NORMAL;
                                               int prevState=STATE_NORMAL;
                                      
                                               int fieldValueLevel = 0;
                                      
                                    !          for (; index<source.length && !isField; ++index) {
                                    !             if (state==STATE_STARC) {
                                    !                if (index<source.length-1 && source[index]=='*' && source[index+1]=='/') {
                                    !                   ++index;
                                    !                   state=prevState;
                                    !                }
                                    !             }
                                    !             else if (state==STATE_SLASHC) {
                                    !                if (source[index]=='\n') {
                                    !                   state=prevState;
                                    !                }
                                    !             }
                                    !             else if (state==STATE_STRING) {
                                    !                if (source[index]=='\\') {
                                    !                   state=STATE_STRING_BS;
                                    !                }
                                    !                else if (source[index]=='\"') {
                                    !                   state=prevState;
                                    !                }
                                    !             }
                                    !             else if (state==STATE_STRING_BS) {
                                                     state=STATE_STRING;
                                                  }
                                    !             else if (state==STATE_SINGLEQUOTED) {
                                    !                if (source[index]=='\\') {
                                    !                   state=STATE_SINGLEQUOTED_BS;
                                    !                }
                                    !                else if (source[index]=='\'') {
                                    !                   state=prevState;
                                    !                }
                                    !             }
                                    !             else if (state==STATE_SINGLEQUOTED_BS) {
                                                     state=STATE_SINGLEQUOTED;
                                                  }
                                                  else if (state==STATE_FIELDVAL) {
                                                     if (source[index]=='/') {
                                                        if (index<source.length-1 && source[index+1]=='*') {
                                    !                      state=STATE_STARC;
                                                           ++index;
                                                        }
                                                        else if (index<source.length-1 && source[index+1]=='/') {
                                    !                      state=STATE_SLASHC;
                                                           ++index;
                                                        }
                                                     }
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 293,394 ****
                                                        break;
                                                     }
                                                  }
                                    ! 	    else switch (source[index]) {
                                    ! 	    case '/': 
                                    ! 	       if (index<source.length-1 && source[index+1]=='*') {
                                    ! 		  state=STATE_STARC; 
                                    ! 		  ++index;
                                    ! 	       }
                                    ! 	       else if (index<source.length-1 && source[index+1]=='/') {
                                    ! 		  state=STATE_SLASHC; 
                                    ! 		  ++index;
                                    ! 	       }
                                    ! 	       break;
                                    ! 	    case '{':  // class
                                    ! 	    case '(':  // method
                                    ! 	       return -1;
                                    ! 	    case '=':  // field
                                                     state=STATE_FIELDVAL;
                                                     prevState=state;
                                                     continue;
                                    ! 	    case ';':  // field
                                    ! 	       isField=true;
                                    ! 	       break;
                                    ! 	    }
                                    ! 	    if (isField) break;
                                    ! 	 }
                                    ! 	 if (!isField || index==source.length) {
                                    ! 	    return -1;
                                    ! 	 }
                                      
                                    ! 	 //System.err.println("char is "+source[index]);
                                      
                                    ! 	 if (source[index]!=';') {
                                    ! 	    index=Parser.skipExpression(source, index, 0, ';');
                                    ! 	 }
                                    ! 	 return index+1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) {
                                      
                                    ! 	 //Debug.log(9,"found package statement: \""+str+"\"");
                                    ! 	 //Debug.log(9,"found function component: '"+str+"'");
                                    ! 	 //xxx(new FieldDocImpl(ctx.classDoc, ctx.classDoc.containingPackage(), 0, false, false));
                                      
                                    ! 	 // Ignore superfluous semicoli after class definition
                                    ! 	 if (endIndex-startIndex<=1) return endIndex;
                                      
                                    ! 	 //assert (parser.ctx!=null);
                                    ! 	 Collection fields=FieldDocImpl.createFromSource(parser.ctx.classDoc, 
                                    ! 							 parser.ctx.classDoc.containingPackage(), 
                                    ! 							 source, startIndex, endIndex);
                                      
                                    ! 	 for (Iterator it=fields.iterator(); it.hasNext(); ) {
                                    ! 	    FieldDocImpl field=(FieldDocImpl)it.next();
                                    ! 	    boolean fieldHasSerialTag=!field.isTransient() && !field.isStatic(); //field.hasSerialTag();
                                    ! 	    if ((field.isIncluded() || fieldHasSerialTag) && parser.getAddComments()) {
                                    ! 	       field.setRawCommentText(parser.getLastComment());
                                    ! 	    }
                                                  parser.ctx.fieldList.add(field);
                                    ! 	    if (field.isIncluded()) {
                                    ! 	       parser.ctx.filteredFieldList.add(field);
                                    ! 	    }
                                    ! 	    if (fieldHasSerialTag) {
                                    ! 	       parser.ctx.sfieldList.add(field);
                                    ! 	    }
                                    ! 	 }
                                      
                                    ! 	 parser.setLastComment(null);
                                    ! 	 return endIndex;
                                            }
                                    !    
                                      
                                         }
                                      
                                         class FunctionComponent extends BlockSourceComponent {
                                      
                                            int getEndIndex(char[] source, int endIndex) throws ParseException {
                                    ! 	 if (source[endIndex-1]==';') {
                                    ! 	    return endIndex;
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    return super.getEndIndex(source, endIndex);
                                    ! 	 }
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) throws IOException, ParseException {
                                      
                                    ! 	 //ctx.fieldList.add(FieldDocImpl.createFromSource(source, startIndex, endIndex));
                                      
                                    ! 	 //System.out.println("function match '"+new String(source,startIndex,endIndex-startIndex)+"'");
                                    ! 	 ExecutableMemberDocImpl execDoc=MethodDocImpl.createFromSource(parser.ctx.classDoc, 
                                    ! 									parser.ctx.classDoc.containingPackage(), 
                                    ! 									source, startIndex, endIndex);
                                      
                                    ! 	 if (parser.getAddComments())
                                    ! 	    execDoc.setRawCommentText(parser.getLastComment());
                                      
                                    ! 	 parser.setLastComment(null);
                                      
                                               if (execDoc.isMethod()) {
                                                  parser.ctx.methodList.add(execDoc);
                                    --- 310,411 ----
                                                        break;
                                                     }
                                                  }
                                    !             else switch (source[index]) {
                                    !             case '/':
                                    !                if (index<source.length-1 && source[index+1]=='*') {
                                    !                   state=STATE_STARC;
                                    !                   ++index;
                                    !                }
                                    !                else if (index<source.length-1 && source[index+1]=='/') {
                                    !                   state=STATE_SLASHC;
                                    !                   ++index;
                                    !                }
                                    !                break;
                                    !             case '{':  // class
                                    !             case '(':  // method
                                    !                return -1;
                                    !             case '=':  // field
                                                     state=STATE_FIELDVAL;
                                                     prevState=state;
                                                     continue;
                                    !             case ';':  // field
                                    !                isField=true;
                                    !                break;
                                    !             }
                                    !             if (isField) break;
                                    !          }
                                    !          if (!isField || index==source.length) {
                                    !             return -1;
                                    !          }
                                      
                                    !          //System.err.println("char is "+source[index]);
                                      
                                    !          if (source[index]!=';') {
                                    !             index=Parser.skipExpression(source, index, 0, ';');
                                    !          }
                                    !          return index+1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) {
                                      
                                    !          //Debug.log(9,"found package statement: \""+str+"\"");
                                    !          //Debug.log(9,"found function component: '"+str+"'");
                                    !          //xxx(new FieldDocImpl(ctx.classDoc, ctx.classDoc.containingPackage(), 0, false, false));
                                      
                                    !          // Ignore superfluous semicoli after class definition
                                    !          if (endIndex-startIndex<=1) return endIndex;
                                      
                                    !          //assert (parser.ctx!=null);
                                    !          Collection fields=FieldDocImpl.createFromSource(parser.ctx.classDoc,
                                    !                                                          parser.ctx.classDoc.containingPackage(),
                                    !                                                          source, startIndex, endIndex);
                                      
                                    !          for (Iterator it=fields.iterator(); it.hasNext(); ) {
                                    !             FieldDocImpl field=(FieldDocImpl)it.next();
                                    !             boolean fieldHasSerialTag=!field.isTransient() && !field.isStatic(); //field.hasSerialTag();
                                    !             if ((field.isIncluded() || fieldHasSerialTag) && parser.getAddComments()) {
                                    !                field.setRawCommentText(parser.getLastComment());
                                    !             }
                                                  parser.ctx.fieldList.add(field);
                                    !             if (field.isIncluded()) {
                                    !                parser.ctx.filteredFieldList.add(field);
                                    !             }
                                    !             if (fieldHasSerialTag) {
                                    !                parser.ctx.sfieldList.add(field);
                                    !             }
                                    !          }
                                      
                                    !          parser.setLastComment(null);
                                    !          return endIndex;
                                            }
                                    ! 
                                      
                                         }
                                      
                                         class FunctionComponent extends BlockSourceComponent {
                                      
                                            int getEndIndex(char[] source, int endIndex) throws ParseException {
                                    !          if (source[endIndex-1]==';') {
                                    !             return endIndex;
                                    !          }
                                    !          else {
                                    !             return super.getEndIndex(source, endIndex);
                                    !          }
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) throws IOException, ParseException {
                                      
                                    !          //ctx.fieldList.add(FieldDocImpl.createFromSource(source, startIndex, endIndex));
                                      
                                    !          //System.out.println("function match '"+new String(source,startIndex,endIndex-startIndex)+"'");
                                    !          ExecutableMemberDocImpl execDoc=MethodDocImpl.createFromSource(parser.ctx.classDoc,
                                    !                                                                         parser.ctx.classDoc.containingPackage(),
                                    !                                                                         source, startIndex, endIndex);
                                      
                                    !          if (parser.getAddComments())
                                    !             execDoc.setRawCommentText(parser.getLastComment());
                                      
                                    !          parser.setLastComment(null);
                                      
                                               if (execDoc.isMethod()) {
                                                  parser.ctx.methodList.add(execDoc);
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 403,519 ****
                                                  }
                                               }
                                      
                                    ! 	 if (execDoc.isMethod() 
                                    ! 		  && (execDoc.name().equals("readObject")
                                    ! 		      || execDoc.name().equals("writeObject")
                                    ! 		      || execDoc.name().equals("readExternal")
                                    ! 		      || execDoc.name().equals("writeExternal")
                                    ! 		      || execDoc.name().equals("readResolve"))) {
                                                 // FIXME: add readExternal here?
                                      
                                    ! 	    parser.ctx.maybeSerMethodList.add(execDoc);
                                    ! 	 }
                                      
                                    ! 	 return endIndex;
                                            }
                                      
                                            int match(char[] source, int index) {
                                    ! 	 boolean isFunc=false;
                                    ! 	 final int STATE_NORMAL=1;
                                    ! 	 final int STATE_SLASHC=2;
                                    ! 	 final int STATE_STARC=3;
                                    ! 	 int state=STATE_NORMAL;
                                    ! 	 for (; index<source.length && !isFunc; ++index) {
                                    ! 	    if (state==STATE_STARC) {
                                    ! 	       if (source[index]=='*' && source[index+1]=='/') {
                                    ! 		  ++index;
                                    ! 		  state=STATE_NORMAL;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else if (state==STATE_SLASHC) {
                                    ! 	       if (source[index]=='\n') {
                                    ! 		  state=STATE_NORMAL;
                                    ! 	       }
                                    ! 	    }
                                    ! 	    else switch (source[index]) {
                                    ! 	    case '/': 
                                    ! 	       if (source[index+1]=='*') {
                                    ! 		  state=STATE_STARC; 
                                    ! 		  ++index;
                                    ! 	       }
                                    ! 	       else if (source[index+1]=='/') {
                                    ! 		  state=STATE_SLASHC; 
                                    ! 		  ++index;
                                    ! 	       }
                                    ! 	       break;
                                    ! 	    case '=':  // field
                                    ! 	    case ';':  // field
                                    ! 	    case '{':  // class
                                    ! 	       return -1;
                                    ! 	    case '(':
                                    ! 	       isFunc=true;
                                    ! 	       break;
                                    ! 	    }
                                    ! 	    if (isFunc) break;
                                    ! 	 }
                                    ! 	 if (!isFunc || index==source.length)
                                    ! 	    return -1;
                                      
                                    ! 	 for (; index<source.length && (state!=STATE_NORMAL || (source[index]!='{' && source[index]!=';')); ++index)
                                    ! 	    if (state==STATE_SLASHC && source[index]=='\n') {
                                    ! 	       state=STATE_NORMAL;
                                    ! 	    }
                                    ! 	    else if (index<source.length-1) {
                                    ! 	       if (state==STATE_STARC) {
                                    ! 		  if (source[index]=='*' && source[index+1]=='/') {
                                    ! 		     state=STATE_NORMAL;
                                    ! 		  }
                                    ! 	       }
                                    ! 	       else {
                                    ! 		  if (source[index]=='/' && source[index+1]=='*') {
                                    ! 		     state=STATE_STARC;
                                    ! 		  }
                                    ! 		  else if (source[index]=='/' && source[index+1]=='/') {
                                    ! 		     state=STATE_SLASHC;
                                    ! 		  }
                                    ! 	       }
                                    ! 	    }
                                    ! 	 return index+1;
                                            }
                                    !    
                                      
                                         }
                                      
                                         class StaticBlockComponent extends BlockSourceComponent {
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) {
                                    ! 	 //Debug.log(9,"found package statement: \""+str+"\"");
                                    ! 	 //Debug.log(9,"found function component: '"+str+"'");
                                    ! 	 parser.setLastComment(null);
                                    ! 	 return endIndex;
                                            }
                                    !    
                                            int match(char[] source, int index) {
                                    ! 	 if (source[index]=='{') return index+1;
                                      
                                    ! 	 if (index+7<source.length) {
                                    ! 	    if (source[index+0]=='s' 
                                    ! 		&& source[index+1]=='t'
                                    ! 		&& source[index+2]=='a'
                                    ! 		&& source[index+3]=='t'
                                    ! 		&& source[index+4]=='i'
                                    ! 		&& source[index+5]=='c') {
                                      
                                    ! 	       for (index+=6; index<source.length && Parser.WHITESPACE.indexOf(source[index])>=0; ++index)
                                    ! 		  ;
                                      
                                    ! 	       if (index<source.length && source[index]=='{')
                                    ! 		  return index+1;
                                    ! 	       else
                                    ! 		  return -1;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 return -1;
                                            }
                                      
                                         }
                                    --- 420,536 ----
                                                  }
                                               }
                                      
                                    !          if (execDoc.isMethod()
                                    !                   && (execDoc.name().equals("readObject")
                                    !                       || execDoc.name().equals("writeObject")
                                    !                       || execDoc.name().equals("readExternal")
                                    !                       || execDoc.name().equals("writeExternal")
                                    !                       || execDoc.name().equals("readResolve"))) {
                                                 // FIXME: add readExternal here?
                                      
                                    !             parser.ctx.maybeSerMethodList.add(execDoc);
                                    !          }
                                      
                                    !          return endIndex;
                                            }
                                      
                                            int match(char[] source, int index) {
                                    !          boolean isFunc=false;
                                    !          final int STATE_NORMAL=1;
                                    !          final int STATE_SLASHC=2;
                                    !          final int STATE_STARC=3;
                                    !          int state=STATE_NORMAL;
                                    !          for (; index<source.length && !isFunc; ++index) {
                                    !             if (state==STATE_STARC) {
                                    !                if (source[index]=='*' && source[index+1]=='/') {
                                    !                   ++index;
                                    !                   state=STATE_NORMAL;
                                    !                }
                                    !             }
                                    !             else if (state==STATE_SLASHC) {
                                    !                if (source[index]=='\n') {
                                    !                   state=STATE_NORMAL;
                                    !                }
                                    !             }
                                    !             else switch (source[index]) {
                                    !             case '/':
                                    !                if (source[index+1]=='*') {
                                    !                   state=STATE_STARC;
                                    !                   ++index;
                                    !                }
                                    !                else if (source[index+1]=='/') {
                                    !                   state=STATE_SLASHC;
                                    !                   ++index;
                                    !                }
                                    !                break;
                                    !             case '=':  // field
                                    !             case ';':  // field
                                    !             case '{':  // class
                                    !                return -1;
                                    !             case '(':
                                    !                isFunc=true;
                                    !                break;
                                    !             }
                                    !             if (isFunc) break;
                                    !          }
                                    !          if (!isFunc || index==source.length)
                                    !             return -1;
                                      
                                    !          for (; index<source.length && (state!=STATE_NORMAL || (source[index]!='{' && source[index]!=';')); ++index)
                                    !             if (state==STATE_SLASHC && source[index]=='\n') {
                                    !                state=STATE_NORMAL;
                                    !             }
                                    !             else if (index<source.length-1) {
                                    !                if (state==STATE_STARC) {
                                    !                   if (source[index]=='*' && source[index+1]=='/') {
                                    !                      state=STATE_NORMAL;
                                    !                   }
                                    !                }
                                    !                else {
                                    !                   if (source[index]=='/' && source[index+1]=='*') {
                                    !                      state=STATE_STARC;
                                    !                   }
                                    !                   else if (source[index]=='/' && source[index+1]=='/') {
                                    !                      state=STATE_SLASHC;
                                    !                   }
                                    !                }
                                    !             }
                                    !          return index+1;
                                            }
                                    ! 
                                      
                                         }
                                      
                                         class StaticBlockComponent extends BlockSourceComponent {
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) {
                                    !          //Debug.log(9,"found package statement: \""+str+"\"");
                                    !          //Debug.log(9,"found function component: '"+str+"'");
                                    !          parser.setLastComment(null);
                                    !          return endIndex;
                                            }
                                    ! 
                                            int match(char[] source, int index) {
                                    !          if (source[index]=='{') return index+1;
                                      
                                    !          if (index+7<source.length) {
                                    !             if (source[index+0]=='s'
                                    !                 && source[index+1]=='t'
                                    !                 && source[index+2]=='a'
                                    !                 && source[index+3]=='t'
                                    !                 && source[index+4]=='i'
                                    !                 && source[index+5]=='c') {
                                      
                                    !                for (index+=6; index<source.length && Parser.WHITESPACE.indexOf(source[index])>=0; ++index)
                                    !                   ;
                                      
                                    !                if (index<source.length && source[index]=='{')
                                    !                   return index+1;
                                    !                else
                                    !                   return -1;
                                    !             }
                                    !          }
                                    !          return -1;
                                            }
                                      
                                         }
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 521,529 ****
                                         class ClassComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    ! 	 boolean isClass=false;
                                    ! 	 for (; index<source.length && !isClass; ++index) {
                                    ! 	    switch (source[index]) {
                                                  case '/':  // possible comment
                                                     if (index<source.length-1) {
                                                        char c = source[index+1];
                                    --- 538,546 ----
                                         class ClassComponent extends SourceComponent {
                                      
                                            int match(char[] source, int index) {
                                    !          boolean isClass=false;
                                    !          for (; index<source.length && !isClass; ++index) {
                                    !             switch (source[index]) {
                                                  case '/':  // possible comment
                                                     if (index<source.length-1) {
                                                        char c = source[index+1];
                                    *************** import gnu.classpath.tools.MalformedInpu
                                    *** 547,616 ****
                                                         ++ index;
                                                     }
                                                     if (index<source.length && source[index]=='(') {
                                    ! 		   int parLevel = 1;
                                                         index += 1;
                                    !                    while (index<source.length && parLevel>0) { 
                                    ! 		       if (source[index] == '(')
                                                                ++ parLevel;
                                    ! 		       if (source[index] == ')')
                                    ! 			  -- parLevel;
                                                             ++ index;
                                    ! 		       if (parLevel==0)
                                    ! 		           break;
                                    !                    } 
                                                     }
                                                     break;
                                    ! 	    case '=':  // field
                                    ! 	    case ';':  // field
                                    ! 	    case '(':  // function
                                    ! 	       return -1;
                                    ! 	    case '{':
                                    ! 	       isClass=true;
                                    ! 	       break;
                                    ! 	    }
                                    ! 	    if (isClass) break;
                                    ! 	 }
                                    ! 	 if (!isClass || index>=source.length)
                                    ! 	    return -1;
                                      
                                    ! 	 return index+1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
                                      
                                    ! 	 parser.classOpened(source, startIndex, endIndex);
                                    ! 	 if (parser.getAddComments())
                                    ! 	    parser.ctx.classDoc.setRawCommentText(parser.getLastComment());
                                    ! 	 parser.setLastComment(null);
                                    ! 	 if (parser.ctx.classDoc.isEnum())
                                    ! 	   {
                                    ! 	     int depth = 0;
                                    ! 	     for (int a = endIndex; a < source.length; ++a)
                                    ! 	     {
                                    ! 	       Debug.log(9, "Enum skipping " + a);
                                    ! 	       if (source[a] == '{')
                                    ! 		 {
                                    ! 		   Debug.log(1, "Found inner { in enum");
                                    ! 		   ++depth;
                                    ! 		 }
                                    ! 	       if (source[a] == '}')
                                    ! 		 {
                                    ! 		   if (depth > 0)
                                    ! 		     {
                                    ! 		       Debug.log(1, "Found inner } in enum");
                                    ! 		       --depth;
                                    ! 		     }
                                    ! 		   else
                                    ! 		     {
                                    ! 		       Debug.log(1, "Found enum }");
                                    ! 		       parser.classClosed();
                                    ! 		       return a + 1;
                                    ! 		     }
                                    ! 		 }
                                    ! 	     }
                                    ! 	   }
                                    ! 	 int rc=parser.parse(source, endIndex, parser.getClassLevelComponents());
                                    ! 	 return rc;
                                            }
                                      
                                         }
                                    --- 564,633 ----
                                                         ++ index;
                                                     }
                                                     if (index<source.length && source[index]=='(') {
                                    !                    int parLevel = 1;
                                                         index += 1;
                                    !                    while (index<source.length && parLevel>0) {
                                    !                        if (source[index] == '(')
                                                                ++ parLevel;
                                    !                        if (source[index] == ')')
                                    !                           -- parLevel;
                                                             ++ index;
                                    !                        if (parLevel==0)
                                    !                            break;
                                    !                    }
                                                     }
                                                     break;
                                    !             case '=':  // field
                                    !             case ';':  // field
                                    !             case '(':  // function
                                    !                return -1;
                                    !             case '{':
                                    !                isClass=true;
                                    !                break;
                                    !             }
                                    !             if (isClass) break;
                                    !          }
                                    !          if (!isClass || index>=source.length)
                                    !             return -1;
                                      
                                    !          return index+1;
                                            }
                                      
                                            int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
                                      
                                    !          parser.classOpened(source, startIndex, endIndex);
                                    !          if (parser.getAddComments())
                                    !             parser.ctx.classDoc.setRawCommentText(parser.getLastComment());
                                    !          parser.setLastComment(null);
                                    !          if (parser.ctx.classDoc.isEnum())
                                    !            {
                                    !              int depth = 0;
                                    !              for (int a = endIndex; a < source.length; ++a)
                                    !              {
                                    !                Debug.log(9, "Enum skipping " + a);
                                    !                if (source[a] == '{')
                                    !                  {
                                    !                    Debug.log(1, "Found inner { in enum");
                                    !                    ++depth;
                                    !                  }
                                    !                if (source[a] == '}')
                                    !                  {
                                    !                    if (depth > 0)
                                    !                      {
                                    !                        Debug.log(1, "Found inner } in enum");
                                    !                        --depth;
                                    !                      }
                                    !                    else
                                    !                      {
                                    !                        Debug.log(1, "Found enum }");
                                    !                        parser.classClosed();
                                    !                        return a + 1;
                                    !                      }
                                    !                  }
                                    !              }
                                    !            }
                                    !          int rc=parser.parse(source, endIndex, parser.getClassLevelComponents());
                                    !          return rc;
                                            }
                                      
                                         }
                                    *************** public class Parser {
                                    *** 632,667 ****
                                            int state=STATE_NORMAL;
                                            int prev=0;
                                            for (; !((level==0 && state==STATE_NORMAL && (delimiter=='\0' || source[endIndex]==delimiter))) && endIndex<source.length; ++endIndex) {
                                    ! 	 int c=source[endIndex];
                                    ! 	 if (state==STATE_NORMAL) {
                                    ! 	    if (c=='}') --level;
                                    ! 	    else if (c=='{') ++level;
                                    ! 	    else if (c=='/' && prev=='/') { state=STATE_SLASHC; c=0; }
                                    ! 	    else if (c=='*' && prev=='/') { state=STATE_STARC; c=0; }
                                    ! 	    else if (c=='\'' && prev!='\\') { state=STATE_CHAR; c=0; }
                                    ! 	    else if (c=='\"' && prev!='\\') { state=STATE_STRING; c=0; }
                                    ! 	 }
                                    ! 	 else if (state==STATE_SLASHC) {
                                    ! 	    if (c=='\n') state=STATE_NORMAL;
                                    ! 	 }
                                    ! 	 else if (state==STATE_CHAR) {
                                    ! 	    if (c=='\'' && prev!='\\') state=STATE_NORMAL;
                                    ! 	    else if (c=='\\' && prev=='\\') c=0;
                                    ! 	 }
                                    ! 	 else if (state==STATE_STRING) {
                                    ! 	    if (c=='\"' && prev!='\\') state=STATE_NORMAL;
                                    ! 	    else if (c=='\\' && prev=='\\') c=0;
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    if (c=='/' && prev=='*') { state=STATE_NORMAL; c=0; }
                                    ! 	 }
                                    ! 	 prev=c;
                                            }
                                            if (level>0)
                                    ! 	 throw new ParseException("Unexpected end of source.");
                                            else {
                                    ! 	 String rc=new String(source, orgEndIndex, endIndex-orgEndIndex);
                                    ! 	 return endIndex;
                                            }
                                         }
                                      
                                    --- 649,684 ----
                                            int state=STATE_NORMAL;
                                            int prev=0;
                                            for (; !((level==0 && state==STATE_NORMAL && (delimiter=='\0' || source[endIndex]==delimiter))) && endIndex<source.length; ++endIndex) {
                                    !          int c=source[endIndex];
                                    !          if (state==STATE_NORMAL) {
                                    !             if (c=='}') --level;
                                    !             else if (c=='{') ++level;
                                    !             else if (c=='/' && prev=='/') { state=STATE_SLASHC; c=0; }
                                    !             else if (c=='*' && prev=='/') { state=STATE_STARC; c=0; }
                                    !             else if (c=='\'' && prev!='\\') { state=STATE_CHAR; c=0; }
                                    !             else if (c=='\"' && prev!='\\') { state=STATE_STRING; c=0; }
                                    !          }
                                    !          else if (state==STATE_SLASHC) {
                                    !             if (c=='\n') state=STATE_NORMAL;
                                    !          }
                                    !          else if (state==STATE_CHAR) {
                                    !             if (c=='\'' && prev!='\\') state=STATE_NORMAL;
                                    !             else if (c=='\\' && prev=='\\') c=0;
                                    !          }
                                    !          else if (state==STATE_STRING) {
                                    !             if (c=='\"' && prev!='\\') state=STATE_NORMAL;
                                    !             else if (c=='\\' && prev=='\\') c=0;
                                    !          }
                                    !          else {
                                    !             if (c=='/' && prev=='*') { state=STATE_NORMAL; c=0; }
                                    !          }
                                    !          prev=c;
                                            }
                                            if (level>0)
                                    !          throw new ParseException("Unexpected end of source.");
                                            else {
                                    !          String rc=new String(source, orgEndIndex, endIndex-orgEndIndex);
                                    !          return endIndex;
                                            }
                                         }
                                      
                                    *************** public class Parser {
                                    *** 676,688 ****
                                      
                                         public static final boolean isWhitespace(char c) {
                                            return (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '');
                                    !       //return WHITESPACE.indexOf(c)>=0; 
                                         }
                                      
                                         private int currentLine;
                                      
                                    !    static char[] loadFile(final File file, String encoding) 
                                    !       throws IOException 
                                         {
                                            InputStream in = new FileInputStream(file);
                                            NotifyingInputStreamReader notifyingInput
                                    --- 693,705 ----
                                      
                                         public static final boolean isWhitespace(char c) {
                                            return (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '');
                                    !       //return WHITESPACE.indexOf(c)>=0;
                                         }
                                      
                                         private int currentLine;
                                      
                                    !    static char[] loadFile(final File file, String encoding)
                                    !       throws IOException
                                         {
                                            InputStream in = new FileInputStream(file);
                                            NotifyingInputStreamReader notifyingInput
                                    *************** public class Parser {
                                    *** 716,745 ****
                                         public Parser() {
                                            try {
                                      
                                    ! 	 sourceLevelComponents=new SourceComponent[] {
                                    ! 	    new Whitespace(),
                                    ! 	    new CommentComponent(),
                                    ! 	    new SlashSlashCommentComponent(),
                                    ! 	    new PackageComponent(),
                                    ! 	    new EmptyStatementComponent(),
                                    ! 	    new ImportComponent(),
                                    ! 	    new ClassComponent(),
                                    ! 	 };
                                      
                                    ! 	 classLevelComponents=new SourceComponent[] {
                                    ! 	    new Whitespace(),
                                    ! 	    new BracketClose(),
                                    ! 	    new CommentComponent(),
                                    ! 	    new SlashSlashCommentComponent(),
                                    ! 	    new FunctionComponent(),
                                    ! 	    new StaticBlockComponent(),
                                    ! 	    new ImportComponent(),
                                    ! 	    new ClassComponent(),
                                    ! 	    new FieldComponent(),
                                    ! 	 };
                                            }
                                            catch (Exception e) {
                                    ! 	 e.printStackTrace();
                                            }
                                         }
                                      
                                    --- 733,762 ----
                                         public Parser() {
                                            try {
                                      
                                    !          sourceLevelComponents=new SourceComponent[] {
                                    !             new Whitespace(),
                                    !             new CommentComponent(),
                                    !             new SlashSlashCommentComponent(),
                                    !             new PackageComponent(),
                                    !             new EmptyStatementComponent(),
                                    !             new ImportComponent(),
                                    !             new ClassComponent(),
                                    !          };
                                      
                                    !          classLevelComponents=new SourceComponent[] {
                                    !             new Whitespace(),
                                    !             new BracketClose(),
                                    !             new CommentComponent(),
                                    !             new SlashSlashCommentComponent(),
                                    !             new FunctionComponent(),
                                    !             new StaticBlockComponent(),
                                    !             new ImportComponent(),
                                    !             new ClassComponent(),
                                    !             new FieldComponent(),
                                    !          };
                                            }
                                            catch (Exception e) {
                                    !          e.printStackTrace();
                                            }
                                         }
                                      
                                    *************** public class Parser {
                                    *** 749,756 ****
                                      
                                         static Set processedFiles = new HashSet();
                                      
                                    !    ClassDocImpl processSourceFile(File file, boolean addComments, 
                                    !                                   String encoding, String expectedPackageName) 
                                            throws IOException, ParseException
                                         {
                                           //System.err.println("Processing " + file + "...");
                                    --- 766,773 ----
                                      
                                         static Set processedFiles = new HashSet();
                                      
                                    !    ClassDocImpl processSourceFile(File file, boolean addComments,
                                    !                                   String encoding, String expectedPackageName)
                                            throws IOException, ParseException
                                         {
                                           //System.err.println("Processing " + file + "...");
                                    *************** public class Parser {
                                    *** 768,776 ****
                                            }
                                      
                                            processedFiles.add(file);
                                    !          
                                            Debug.log(1,"Processing file "+file);
                                    !       
                                            contextStack.clear();
                                            ctx=null;
                                      
                                    --- 785,793 ----
                                            }
                                      
                                            processedFiles.add(file);
                                    ! 
                                            Debug.log(1,"Processing file "+file);
                                    ! 
                                            contextStack.clear();
                                            ctx=null;
                                      
                                    *************** public class Parser {
                                    *** 778,784 ****
                                            importedStringList.clear();
                                            importedPackagesList.clear();
                                            importedStatementList.clear();
                                    !       
                                            currentLine = 1;
                                      
                                            char[] source = loadFile(file, encoding);
                                    --- 795,801 ----
                                            importedStringList.clear();
                                            importedPackagesList.clear();
                                            importedStatementList.clear();
                                    ! 
                                            currentLine = 1;
                                      
                                            char[] source = loadFile(file, encoding);
                                    *************** public class Parser {
                                    *** 788,839 ****
                                      
                                               ClassDoc[] importedClasses=(ClassDoc[])importedClassesList.toArray(new ClassDoc[0]);
                                               PackageDoc[] importedPackages=(PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]);
                                    !          
                                               if (Main.DESCEND_IMPORTED) {
                                                  for (int i=0; i<importedClasses.length; ++i) {
                                                     Main.getRootDoc().scheduleClass(currentClass, importedClasses[i].qualifiedName());
                                                  }
                                               }
                                    !        
                                    !          
                                                 if (contextStack.size()>0) {
                                    ! 	     Debug.log(1,"-->contextStack not empty! size is "+contextStack.size());
                                                 }
                                    !          
                                               return outerClass;
                                            }
                                            catch (IgnoredFileParseException ignore) {
                                    ! 	Debug.log(1, "File ignored: " + ignore);
                                               return null;
                                            }
                                         }
                                    !       
                                         int parse(char[] source, int index, SourceComponent[] componentTypes) throws ParseException, IOException {
                                      
                                            while (index<source.length) {
                                      
                                    ! 	 int match=-1;
                                    ! 	 int i=0;
                                    ! 	 for (; i<componentTypes.length; ++i) {
                                    ! 	    if ((match=componentTypes[i].match(source, index))>=0) {
                                    ! 	      //Debug.log(1,componentTypes[i].getClass().getName()+" ("+match+"/"+source.length+")");
                                    ! 	       break;
                                    ! 	    }
                                    ! 	 }
                                      
                                    ! 	 if (i<componentTypes.length) {
                                    ! 	    int endIndex=componentTypes[i].getEndIndex(source, match);
                                    ! 	    Debug.log(9, "Processing " + new String(source,index,endIndex-index) + " with " + componentTypes[i]);
                                    ! 	    index=componentTypes[i].process(this, source, index, endIndex);
                                    ! 	    if (index<0) {
                                    ! 	      //Debug.log(9,"exiting parse because of "+componentTypes[i].getClass().getName()+" (\""+new String(source, index, endIndex-index)+"\")");
                                    ! 	       return endIndex;
                                    ! 	    }
                                    ! 	 }
                                    ! 	 else {
                                    ! 	   //Debug.log(9,"index="+index+", source.length()="+source.length);
                                    ! 	    throw new ParseException("unmatched input in line "+currentLine+": "+new String(source, index, Math.min(50,source.length-index)));
                                    ! 	 }
                                      
                                            }
                                            //Debug.log(9,"exiting parse normally, index="+index+" source.length="+source.length);
                                    --- 805,856 ----
                                      
                                               ClassDoc[] importedClasses=(ClassDoc[])importedClassesList.toArray(new ClassDoc[0]);
                                               PackageDoc[] importedPackages=(PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]);
                                    ! 
                                               if (Main.DESCEND_IMPORTED) {
                                                  for (int i=0; i<importedClasses.length; ++i) {
                                                     Main.getRootDoc().scheduleClass(currentClass, importedClasses[i].qualifiedName());
                                                  }
                                               }
                                    ! 
                                    ! 
                                                 if (contextStack.size()>0) {
                                    !              Debug.log(1,"-->contextStack not empty! size is "+contextStack.size());
                                                 }
                                    ! 
                                               return outerClass;
                                            }
                                            catch (IgnoredFileParseException ignore) {
                                    !         Debug.log(1, "File ignored: " + ignore);
                                               return null;
                                            }
                                         }
                                    ! 
                                         int parse(char[] source, int index, SourceComponent[] componentTypes) throws ParseException, IOException {
                                      
                                            while (index<source.length) {
                                      
                                    !          int match=-1;
                                    !          int i=0;
                                    !          for (; i<componentTypes.length; ++i) {
                                    !             if ((match=componentTypes[i].match(source, index))>=0) {
                                    !               //Debug.log(1,componentTypes[i].getClass().getName()+" ("+match+"/"+source.length+")");
                                    !                break;
                                    !             }
                                    !          }
                                      
                                    !          if (i<componentTypes.length) {
                                    !             int endIndex=componentTypes[i].getEndIndex(source, match);
                                    !             Debug.log(9, "Processing " + new String(source,index,endIndex-index) + " with " + componentTypes[i]);
                                    !             index=componentTypes[i].process(this, source, index, endIndex);
                                    !             if (index<0) {
                                    !               //Debug.log(9,"exiting parse because of "+componentTypes[i].getClass().getName()+" (\""+new String(source, index, endIndex-index)+"\")");
                                    !                return endIndex;
                                    !             }
                                    !          }
                                    !          else {
                                    !            //Debug.log(9,"index="+index+", source.length()="+source.length);
                                    !             throw new ParseException("unmatched input in line "+currentLine+": "+new String(source, index, Math.min(50,source.length-index)));
                                    !          }
                                      
                                            }
                                            //Debug.log(9,"exiting parse normally, index="+index+" source.length="+source.length);
                                    *************** public class Parser {
                                    *** 843,864 ****
                                         private static int countNewLines(String source) {
                                            int i=0;
                                            int rc=0;
                                    !       while ((i=source.indexOf('\n',i)+1)>0) 
                                    ! 	 ++rc;
                                            return rc;
                                         }
                                      
                                    !    public void processSourceDir(File dir, String encoding, String expectedPackageName) 
                                    !       throws IOException, ParseException 
                                         {
                                            Debug.log(9,"Processing "+dir.getParentFile().getName()+"."+dir.getName());
                                            File[] files=dir.listFiles();
                                            if (null!=files) {
                                    ! 	 for (int i=0; i<files.length; ++i) {
                                    ! 	    if (files[i].getName().toLowerCase().endsWith(".java")) {
                                    ! 	       processSourceFile(files[i], true, encoding, expectedPackageName);
                                    ! 	    }
                                    ! 	 }
                                            }
                                         }
                                      
                                    --- 860,881 ----
                                         private static int countNewLines(String source) {
                                            int i=0;
                                            int rc=0;
                                    !       while ((i=source.indexOf('\n',i)+1)>0)
                                    !          ++rc;
                                            return rc;
                                         }
                                      
                                    !    public void processSourceDir(File dir, String encoding, String expectedPackageName)
                                    !       throws IOException, ParseException
                                         {
                                            Debug.log(9,"Processing "+dir.getParentFile().getName()+"."+dir.getName());
                                            File[] files=dir.listFiles();
                                            if (null!=files) {
                                    !          for (int i=0; i<files.length; ++i) {
                                    !             if (files[i].getName().toLowerCase().endsWith(".java")) {
                                    !                processSourceFile(files[i], true, encoding, expectedPackageName);
                                    !             }
                                    !          }
                                            }
                                         }
                                      
                                    *************** public class Parser {
                                    *** 886,899 ****
                                            }
                                      
                                            if (currentPackageName != null)
                                    ! 	 importedStatementList.add(currentPackageName + ".*");
                                            importedStatementList.add("java.lang.*");
                                      
                                            ClassDocImpl classDoc
                                    ! 	 = ClassDocImpl.createInstance((ctx!=null)?(ctx.classDoc):null, currentPackage, 
                                    ! 				       null,
                                    ! 				       (PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]),
                                    ! 				       source, startIndex, endIndex,
                                                                             importedStatementList);
                                      
                                            if (ctx != null) {
                                    --- 903,916 ----
                                            }
                                      
                                            if (currentPackageName != null)
                                    !          importedStatementList.add(currentPackageName + ".*");
                                            importedStatementList.add("java.lang.*");
                                      
                                            ClassDocImpl classDoc
                                    !          = ClassDocImpl.createInstance((ctx!=null)?(ctx.classDoc):null, currentPackage,
                                    !                                        null,
                                    !                                        (PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]),
                                    !                                        source, startIndex, endIndex,
                                                                             importedStatementList);
                                      
                                            if (ctx != null) {
                                    *************** public class Parser {
                                    *** 904,912 ****
                                            }
                                      
                                            if (importedClassesList.isEmpty()) {
                                    ! 	 for (Iterator it=importedStringList.iterator(); it.hasNext(); ) {
                                    ! 	    importedClassesList.add(new ClassDocProxy((String)it.next(), classDoc));
                                    ! 	 }
                                            }
                                            classDoc.setImportedClasses((ClassDoc[])importedClassesList.toArray(new ClassDoc[0]));
                                      
                                    --- 921,929 ----
                                            }
                                      
                                            if (importedClassesList.isEmpty()) {
                                    !          for (Iterator it=importedStringList.iterator(); it.hasNext(); ) {
                                    !             importedClassesList.add(new ClassDocProxy((String)it.next(), classDoc));
                                    !          }
                                            }
                                            classDoc.setImportedClasses((ClassDoc[])importedClassesList.toArray(new ClassDoc[0]));
                                      
                                    *************** public class Parser {
                                    *** 919,925 ****
                                            }
                                      
                                            if (classDoc.superclass()!=null)
                                    ! 	 referencedClassesList.add(classDoc.superclass());
                                      
                                            Debug.log(1,"classOpened "+classDoc+", adding superclass "+classDoc.superclass());
                                            Debug.log(1,"Pushing " + ctx);
                                    --- 936,942 ----
                                            }
                                      
                                            if (classDoc.superclass()!=null)
                                    !          referencedClassesList.add(classDoc.superclass());
                                      
                                            Debug.log(1,"classOpened "+classDoc+", adding superclass "+classDoc.superclass());
                                            Debug.log(1,"Pushing " + ctx);
                                    *************** public class Parser {
                                    *** 935,943 ****
                                         }
                                      
                                         void classClosed() throws ParseException, IOException {
                                    !       ctx.classDoc.setFields((FieldDoc[])toArray(ctx.fieldList, 
                                                                                                   new FieldDoc[0]));
                                    !       ctx.classDoc.setFilteredFields((FieldDoc[])toArray(ctx.filteredFieldList, 
                                                                                                           new FieldDoc[0]));
                                            ctx.classDoc.setSerializableFields((FieldDoc[])toArray(ctx.sfieldList, new FieldDoc[0]));
                                            ctx.classDoc.setMethods((MethodDoc[])toArray(ctx.methodList, new MethodDoc[0]));
                                    --- 952,960 ----
                                         }
                                      
                                         void classClosed() throws ParseException, IOException {
                                    !       ctx.classDoc.setFields((FieldDoc[])toArray(ctx.fieldList,
                                                                                                   new FieldDoc[0]));
                                    !       ctx.classDoc.setFilteredFields((FieldDoc[])toArray(ctx.filteredFieldList,
                                                                                                           new FieldDoc[0]));
                                            ctx.classDoc.setSerializableFields((FieldDoc[])toArray(ctx.sfieldList, new FieldDoc[0]));
                                            ctx.classDoc.setMethods((MethodDoc[])toArray(ctx.methodList, new MethodDoc[0]));
                                    *************** public class Parser {
                                    *** 951,961 ****
                                            ctx.classDoc.setBoilerplateComment(boilerplateComment);
                                      
                                            Main.getRootDoc().addClassDoc(ctx.classDoc);
                                    !       
                                            if (Main.DESCEND_INTERFACES) {
                                    ! 	 for (int i=0; i<ctx.classDoc.interfaces().length; ++i) {
                                    ! 	    Main.getRootDoc().scheduleClass(ctx.classDoc, ctx.classDoc.interfaces()[i].qualifiedName());
                                    ! 	 }
                                            }
                                      
                                            Debug.log(1,"classClosed: "+ctx.classDoc);
                                    --- 968,978 ----
                                            ctx.classDoc.setBoilerplateComment(boilerplateComment);
                                      
                                            Main.getRootDoc().addClassDoc(ctx.classDoc);
                                    ! 
                                            if (Main.DESCEND_INTERFACES) {
                                    !          for (int i=0; i<ctx.classDoc.interfaces().length; ++i) {
                                    !             Main.getRootDoc().scheduleClass(ctx.classDoc, ctx.classDoc.interfaces()[i].qualifiedName());
                                    !          }
                                            }
                                      
                                            Debug.log(1,"classClosed: "+ctx.classDoc);
                                    *************** public class Parser {
                                    *** 965,993 ****
                                            ClassDoc[] referencedClasses=(ClassDoc[])referencedClassesList.toArray(new ClassDoc[0]);
                                      
                                            if (Main.DESCEND_SUPERCLASS) {
                                    ! 	 for (int i=0; i<referencedClasses.length; ++i) {
                                    ! 	    Main.getRootDoc().scheduleClass(currentClass, referencedClasses[i].qualifiedName());
                                    ! 	 }
                                            }
                                         }
                                    !    
                                         Context      ctx             = null;
                                         Stack        contextStack    = new Stack();
                                         class Context {
                                            Context(ClassDocImpl classDoc) { this.classDoc=classDoc; }
                                            ClassDocImpl      classDoc                 = null;
                                    !       List	        fieldList                = new LinkedList();
                                    !       List	        filteredFieldList        = new LinkedList();
                                    !       List	        sfieldList               = new LinkedList();
                                    !       List	        methodList               = new LinkedList();
                                    !       List	        filteredMethodList       = new LinkedList();
                                            List              maybeSerMethodList       = new LinkedList();
                                    !       List	        constructorList          = new LinkedList();
                                    !       List	        filteredConstructorList  = new LinkedList();
                                            List              innerClassesList         = new LinkedList();
                                            List              filteredInnerClassesList = new LinkedList();
                                         }
                                    !    
                                         File currentFile = null;
                                         String lastComment = null;
                                         String expectedPackageName = null;
                                    --- 982,1010 ----
                                            ClassDoc[] referencedClasses=(ClassDoc[])referencedClassesList.toArray(new ClassDoc[0]);
                                      
                                            if (Main.DESCEND_SUPERCLASS) {
                                    !          for (int i=0; i<referencedClasses.length; ++i) {
                                    !             Main.getRootDoc().scheduleClass(currentClass, referencedClasses[i].qualifiedName());
                                    !          }
                                            }
                                         }
                                    ! 
                                         Context      ctx             = null;
                                         Stack        contextStack    = new Stack();
                                         class Context {
                                            Context(ClassDocImpl classDoc) { this.classDoc=classDoc; }
                                            ClassDocImpl      classDoc                 = null;
                                    !       List              fieldList                = new LinkedList();
                                    !       List              filteredFieldList        = new LinkedList();
                                    !       List              sfieldList               = new LinkedList();
                                    !       List              methodList               = new LinkedList();
                                    !       List              filteredMethodList       = new LinkedList();
                                            List              maybeSerMethodList       = new LinkedList();
                                    !       List              constructorList          = new LinkedList();
                                    !       List              filteredConstructorList  = new LinkedList();
                                            List              innerClassesList         = new LinkedList();
                                            List              filteredInnerClassesList = new LinkedList();
                                         }
                                    ! 
                                         File currentFile = null;
                                         String lastComment = null;
                                         String expectedPackageName = null;
                                    *************** public class Parser {
                                    *** 1011,1027 ****
                                         void packageOpened(String packageName) {
                                            currentPackageName = packageName;
                                         }
                                    !    
                                         void importEncountered(String importString) throws ParseException, IOException {
                                            //Debug.log(9,"importing '"+importString+"'");
                                      
                                            importedStatementList.add(importString);
                                      
                                            if (importString.endsWith(".*")) {
                                    ! 	 importedPackagesList.add(Main.getRootDoc().findOrCreatePackageDoc(importString.substring(0,importString.length()-2)));
                                            }
                                            else {
                                    ! 	 importedStringList.add(importString);
                                            }
                                         }
                                      
                                    --- 1028,1044 ----
                                         void packageOpened(String packageName) {
                                            currentPackageName = packageName;
                                         }
                                    ! 
                                         void importEncountered(String importString) throws ParseException, IOException {
                                            //Debug.log(9,"importing '"+importString+"'");
                                      
                                            importedStatementList.add(importString);
                                      
                                            if (importString.endsWith(".*")) {
                                    !          importedPackagesList.add(Main.getRootDoc().findOrCreatePackageDoc(importString.substring(0,importString.length()-2)));
                                            }
                                            else {
                                    !          importedStringList.add(importString);
                                            }
                                         }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public abstract class ProgramElementDocI
                                    *** 32,61 ****
                                         protected boolean isStatic;
                                         protected int     accessLevel=ProgramElementDocImpl.ACCESS_PACKAGEPRIVATE;
                                      
                                    !    public static final int ACCESS_PUBLIC	  = 0;
                                    !    public static final int ACCESS_PROTECTED	  = 1;
                                         public static final int ACCESS_PACKAGEPRIVATE  = 2;
                                    !    public static final int ACCESS_PRIVATE	  = 3;
                                      
                                         private static final String[] accessModifiers = { "public ", "protected ", "", "private "};
                                      
                                    !    public ProgramElementDocImpl(ClassDoc containingClass, 
                                                                      PackageDoc containingPackage,
                                                                      SourcePosition position) {
                                            super(position);
                                            this.containingClass=containingClass;
                                            this.containingPackage=containingPackage;
                                    !    }   
                                         public ProgramElementDocImpl(ClassDoc containingClass, SourcePosition position) {
                                            super(position);
                                            this.containingClass=containingClass;
                                            this.containingPackage=containingClass.containingPackage();
                                    !    }   
                                         public ProgramElementDocImpl(ClassDoc containingClass,
                                    ! 				PackageDoc containingPackage,
                                    ! 				int accessLevel,
                                    ! 				boolean isFinal,
                                    ! 				boolean isStatic,
                                                                      SourcePosition position) {
                                            super(position);
                                            this.containingClass=containingClass;
                                    --- 49,78 ----
                                         protected boolean isStatic;
                                         protected int     accessLevel=ProgramElementDocImpl.ACCESS_PACKAGEPRIVATE;
                                      
                                    !    public static final int ACCESS_PUBLIC          = 0;
                                    !    public static final int ACCESS_PROTECTED       = 1;
                                         public static final int ACCESS_PACKAGEPRIVATE  = 2;
                                    !    public static final int ACCESS_PRIVATE         = 3;
                                      
                                         private static final String[] accessModifiers = { "public ", "protected ", "", "private "};
                                      
                                    !    public ProgramElementDocImpl(ClassDoc containingClass,
                                                                      PackageDoc containingPackage,
                                                                      SourcePosition position) {
                                            super(position);
                                            this.containingClass=containingClass;
                                            this.containingPackage=containingPackage;
                                    !    }
                                         public ProgramElementDocImpl(ClassDoc containingClass, SourcePosition position) {
                                            super(position);
                                            this.containingClass=containingClass;
                                            this.containingPackage=containingClass.containingPackage();
                                    !    }
                                         public ProgramElementDocImpl(ClassDoc containingClass,
                                    !                                 PackageDoc containingPackage,
                                    !                                 int accessLevel,
                                    !                                 boolean isFinal,
                                    !                                 boolean isStatic,
                                                                      SourcePosition position) {
                                            super(position);
                                            this.containingClass=containingClass;
                                    *************** public abstract class ProgramElementDocI
                                    *** 65,155 ****
                                            this.isStatic=isStatic;
                                         }
                                      
                                    !    //Get the containing class of this program element. 
                                         public ClassDoc containingClass() {
                                            return containingClass;
                                         }
                                      
                                    !    // Get the package that this program element is contained in. 
                                         public PackageDoc containingPackage() {
                                            return containingPackage;
                                         }
                                    !  
                                    !    // Return true if this program element is final 
                                         public boolean isFinal() {
                                            return isFinal;
                                         }
                                    !  
                                    !    // Return true if this program element is package private 
                                         public boolean isPackagePrivate() {
                                            return accessLevel==ACCESS_PACKAGEPRIVATE;
                                         }
                                    !  
                                    !    // Return true if this program element is private 
                                         public boolean isPrivate() {
                                            return accessLevel==ACCESS_PRIVATE;
                                         }
                                    !  
                                    !    // Return true if this program element is protected 
                                         public boolean isProtected() {
                                            return accessLevel==ACCESS_PROTECTED;
                                         }
                                    !  
                                    !    // Return true if this program element is public 
                                         public boolean isPublic() {
                                            return accessLevel==ACCESS_PUBLIC;
                                         }
                                    !  
                                    !    // Return true if this program element is static 
                                         public boolean isStatic() {
                                            return isStatic;
                                         }
                                    !  
                                    !    // Get modifiers string. 
                                         public String modifiers() {
                                    !       return 
                                    ! 	 (accessModifiers[accessLevel]+
                                    ! 	  (isStatic()?"static ":"")+
                                    ! 	  (isFinal()?"final ":"")).trim();
                                         }
                                    !  
                                    !    // Get the modifier specifier integer. 
                                         public int modifierSpecifier() {
                                            return (isStatic()?Modifier.STATIC:0)
                                    ! 	 | (isFinal()?Modifier.FINAL:0)
                                    ! 	 | (isPublic()?Modifier.PUBLIC:0)
                                    ! 	 | (isProtected()?Modifier.PROTECTED:0)
                                    ! 	 | (isPrivate()?Modifier.PRIVATE:0)
                                    ! //	 | (isAbstract()?Modifier.ABSTRACT:0)
                                    ! 	 ;
                                         }
                                    !  
                                    !    // Get the fully qualified name. 
                                         public abstract String qualifiedName();
                                      
                                         protected boolean processModifier(String word) {
                                            if (word.equals("public")) {
                                    ! 	 accessLevel=ACCESS_PUBLIC;
                                    ! 	 return true;
                                            }
                                            else if (word.equals("protected")) {
                                    ! 	 accessLevel=ACCESS_PROTECTED;
                                    ! 	 return true;
                                            }
                                            else if (word.equals("private")) {
                                    ! 	 accessLevel=ACCESS_PRIVATE;
                                    ! 	 return true;
                                            }
                                            else if (word.equals("static")) {
                                    ! 	 isStatic=true;
                                    ! 	 return true;
                                            }
                                            else if (word.equals("final")) {
                                    ! 	 isFinal=true;
                                    ! 	 return true;
                                            }
                                            else {
                                    ! 	 return false;
                                            }
                                         }
                                      
                                    --- 82,172 ----
                                            this.isStatic=isStatic;
                                         }
                                      
                                    !    //Get the containing class of this program element.
                                         public ClassDoc containingClass() {
                                            return containingClass;
                                         }
                                      
                                    !    // Get the package that this program element is contained in.
                                         public PackageDoc containingPackage() {
                                            return containingPackage;
                                         }
                                    ! 
                                    !    // Return true if this program element is final
                                         public boolean isFinal() {
                                            return isFinal;
                                         }
                                    ! 
                                    !    // Return true if this program element is package private
                                         public boolean isPackagePrivate() {
                                            return accessLevel==ACCESS_PACKAGEPRIVATE;
                                         }
                                    ! 
                                    !    // Return true if this program element is private
                                         public boolean isPrivate() {
                                            return accessLevel==ACCESS_PRIVATE;
                                         }
                                    ! 
                                    !    // Return true if this program element is protected
                                         public boolean isProtected() {
                                            return accessLevel==ACCESS_PROTECTED;
                                         }
                                    ! 
                                    !    // Return true if this program element is public
                                         public boolean isPublic() {
                                            return accessLevel==ACCESS_PUBLIC;
                                         }
                                    ! 
                                    !    // Return true if this program element is static
                                         public boolean isStatic() {
                                            return isStatic;
                                         }
                                    ! 
                                    !    // Get modifiers string.
                                         public String modifiers() {
                                    !       return
                                    !          (accessModifiers[accessLevel]+
                                    !           (isStatic()?"static ":"")+
                                    !           (isFinal()?"final ":"")).trim();
                                         }
                                    ! 
                                    !    // Get the modifier specifier integer.
                                         public int modifierSpecifier() {
                                            return (isStatic()?Modifier.STATIC:0)
                                    !          | (isFinal()?Modifier.FINAL:0)
                                    !          | (isPublic()?Modifier.PUBLIC:0)
                                    !          | (isProtected()?Modifier.PROTECTED:0)
                                    !          | (isPrivate()?Modifier.PRIVATE:0)
                                    ! //       | (isAbstract()?Modifier.ABSTRACT:0)
                                    !          ;
                                         }
                                    ! 
                                    !    // Get the fully qualified name.
                                         public abstract String qualifiedName();
                                      
                                         protected boolean processModifier(String word) {
                                            if (word.equals("public")) {
                                    !          accessLevel=ACCESS_PUBLIC;
                                    !          return true;
                                            }
                                            else if (word.equals("protected")) {
                                    !          accessLevel=ACCESS_PROTECTED;
                                    !          return true;
                                            }
                                            else if (word.equals("private")) {
                                    !          accessLevel=ACCESS_PRIVATE;
                                    !          return true;
                                            }
                                            else if (word.equals("static")) {
                                    !          isStatic=true;
                                    !          return true;
                                            }
                                            else if (word.equals("final")) {
                                    !          isFinal=true;
                                    !          return true;
                                            }
                                            else {
                                    !          return false;
                                            }
                                         }
                                      
                                    *************** public abstract class ProgramElementDocI
                                    *** 158,161 ****
                                         }
                                      
                                      }
                                    - 
                                    --- 175,177 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 7,13 ****
                                         it under the terms of the GNU General Public License as published by
                                         the Free Software Foundation; either version 2, or (at your option)
                                         any later version.
                                    !  
                                         GNU Classpath 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
                                    --- 7,13 ----
                                         it under the terms of the GNU General Public License as published by
                                         the Free Software Foundation; either version 2, or (at your option)
                                         any later version.
                                    ! 
                                         GNU Classpath 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
                                    ***************
                                    *** 16,22 ****
                                         You should have received a copy of the GNU General Public License
                                         along with GNU Classpath; see the file COPYING.  If not, write to the
                                         Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    !    02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                         You should have received a copy of the GNU General Public License
                                         along with GNU Classpath; see the file COPYING.  If not, write to the
                                         Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    !    02111-1307 USA.
                                    ! 
                                    !    Linking this library statically or dynamically with other modules is
                                    !    making a combined work based on this library.  Thus, the terms and
                                    !    conditions of the GNU General Public License cover the whole
                                    !    combination.
                                    ! 
                                    !    As a special exception, the copyright holders of this library give you
                                    !    permission to link this library with independent modules to produce an
                                    !    executable, regardless of the license terms of these independent
                                    !    modules, and to copy and distribute the resulting executable under
                                    !    terms of your choice, provided that you also meet, for each linked
                                    !    independent module, the terms and conditions of the license of that
                                    !    module.  An independent module is a module which is not derived from
                                    !    or based on this library.  If you modify this library, you may extend
                                    !    this exception to your version of the library, but you are not
                                    !    obligated to do so.  If you do not wish to do so, delete this
                                    !    exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import java.util.*;
                                    *** 25,32 ****
                                      import java.io.*;
                                      import java.lang.reflect.*;
                                      
                                    ! public class RootDocImpl 
                                    !    extends DocImpl 
                                         implements GjdocRootDoc {
                                      
                                         private ErrorReporter reporter = new ErrorReporter();
                                    --- 42,49 ----
                                      import java.io.*;
                                      import java.lang.reflect.*;
                                      
                                    ! public class RootDocImpl
                                    !    extends DocImpl
                                         implements GjdocRootDoc {
                                      
                                         private ErrorReporter reporter = new ErrorReporter();
                                    *************** public class RootDocImpl 
                                    *** 36,42 ****
                                         /**
                                          *  All options and their corresponding values which are not recognized
                                          *  by Gjdoc. These are passed to the Doclet as "custom options".
                                    !     *  Each element in this array is again a String array, with the 
                                          *  option name as first element (including prefix dash) and possible
                                          *  option values as following elements.
                                          */
                                    --- 53,59 ----
                                         /**
                                          *  All options and their corresponding values which are not recognized
                                          *  by Gjdoc. These are passed to the Doclet as "custom options".
                                    !     *  Each element in this array is again a String array, with the
                                          *  option name as first element (including prefix dash) and possible
                                          *  option values as following elements.
                                          */
                                    *************** public class RootDocImpl 
                                    *** 50,56 ****
                                         private List specifiedSourceFiles = new LinkedList();
                                      
                                         /**
                                    !     *  The names of all packages explicitly specified on the 
                                          *  command line.
                                          *
                                          *  @contains String
                                    --- 67,73 ----
                                         private List specifiedSourceFiles = new LinkedList();
                                      
                                         /**
                                    !     *  The names of all packages explicitly specified on the
                                          *  command line.
                                          *
                                          *  @contains String
                                    *************** public class RootDocImpl 
                                    *** 68,74 ****
                                      
                                         /**
                                          *  Stores all classes loaded in the course of preparing
                                    !     *  the documentation data. Maps the fully qualified name 
                                          *  of a class to its ClassDocImpl representation.
                                          *
                                          *  @contains String->ClassDocImpl
                                    --- 85,91 ----
                                      
                                         /**
                                          *  Stores all classes loaded in the course of preparing
                                    !     *  the documentation data. Maps the fully qualified name
                                          *  of a class to its ClassDocImpl representation.
                                          *
                                          *  @contains String->ClassDocImpl
                                    *************** public class RootDocImpl 
                                    *** 77,83 ****
                                      
                                         /**
                                          *  Stores all packages loaded in the course of preparing
                                    !     *  the documentation data. Maps the package name 
                                          *  to its PackageDocImpl representation.
                                          *
                                          *  @contains String->PackageDocImpl
                                    --- 94,100 ----
                                      
                                         /**
                                          *  Stores all packages loaded in the course of preparing
                                    !     *  the documentation data. Maps the package name
                                          *  to its PackageDocImpl representation.
                                          *
                                          *  @contains String->PackageDocImpl
                                    *************** public class RootDocImpl 
                                    *** 89,101 ****
                                          *  individually specified on the command line and those contained
                                          *  in packages specified on the command line (as Array for quick
                                          *  retrieval by Doclet).  This is created from classesList after
                                    !     *  all classes have been loaded.  
                                          */
                                         private ClassDocImpl[] classes;
                                      
                                         /**
                                    !     *  All classes which were individually specified on the command 
                                    !     *  line (as Array for quick retrieval by Doclet). This is created 
                                          *  from specifiedClassNames after all classes have been loaded.
                                          */
                                         private List specifiedClasses;
                                    --- 106,118 ----
                                          *  individually specified on the command line and those contained
                                          *  in packages specified on the command line (as Array for quick
                                          *  retrieval by Doclet).  This is created from classesList after
                                    !     *  all classes have been loaded.
                                          */
                                         private ClassDocImpl[] classes;
                                      
                                         /**
                                    !     *  All classes which were individually specified on the command
                                    !     *  line (as Array for quick retrieval by Doclet). This is created
                                          *  from specifiedClassNames after all classes have been loaded.
                                          */
                                         private List specifiedClasses;
                                    *************** public class RootDocImpl 
                                    *** 103,109 ****
                                         /**
                                          *  All packages which were specified on the command line (as Array
                                          *  for quick retrieval by Doclet). This is created from
                                    !     *  specifiedPackageNames after all classes have been loaded.  
                                          */
                                         private Set specifiedPackages;
                                      
                                    --- 120,126 ----
                                         /**
                                          *  All packages which were specified on the command line (as Array
                                          *  for quick retrieval by Doclet). This is created from
                                    !     *  specifiedPackageNames after all classes have been loaded.
                                          */
                                         private Set specifiedPackages;
                                      
                                    *************** public class RootDocImpl 
                                    *** 124,130 ****
                                         private Set unlocatableReportedSet = new HashSet();
                                      
                                         private Set inaccessibleReportedSet = new HashSet();
                                    !    
                                         //--------------------------------------------------------------------------
                                         //
                                         // Implementation of RootDoc interface
                                    --- 141,147 ----
                                         private Set unlocatableReportedSet = new HashSet();
                                      
                                         private Set inaccessibleReportedSet = new HashSet();
                                    ! 
                                         //--------------------------------------------------------------------------
                                         //
                                         // Implementation of RootDoc interface
                                    *************** public class RootDocImpl 
                                    *** 132,192 ****
                                         //--------------------------------------------------------------------------
                                      
                                         /**
                                    !     *  Return classes and interfaces to be documented. 
                                          */
                                    !    public ClassDoc[] classes() { return classes; } 
                                      
                                         /**
                                    !     *  Return a ClassDoc object for the specified class/interface 
                                          *  name.
                                          *
                                    !     *  @return a ClassDoc object describing the given class, or 
                                          *  <code>null</code> if no corresponding ClassDoc object
                                          *  has been constructed.
                                          */
                                    !    public ClassDoc classNamed(String qualifiedName) { 
                                    !       return (ClassDoc)classDocMap.get(qualifiedName); 
                                    !    } 
                                      
                                         /**
                                          *  Return an xxx
                                          */
                                    !    public String[][] options() { return customOptionArr; } 
                                      
                                    !    // Return a PackageDoc for the specified package name 
                                    !    public PackageDoc packageNamed(String name) { 
                                    !       return (PackageDoc)packageDocMap.get(name); 
                                         }
                                      
                                      
                                    !   // classes and interfaces specified on the command line. 
                                    !   public ClassDoc[] specifiedClasses() 
                                    !   { 
                                    !     return (ClassDocImpl[]) specifiedClasses.toArray(new ClassDocImpl[0]); 
                                    !   } 
                                      
                                    !    // packages specified on the command line. 
                                    !   public PackageDoc[] specifiedPackages() 
                                        {
                                          return (PackageDocImpl[])specifiedPackages.toArray(new PackageDocImpl[0]);
                                        }
                                      
                                    !    // Print error message, increment error count. 
                                         public void printError(java.lang.String msg) {
                                            reporter.printError(msg);
                                         }
                                      
                                    !    // Print error message, increment error count. 
                                         public void printFatal(java.lang.String msg) {
                                            reporter.printFatal(msg);
                                         }
                                      
                                    !    // Print a message. 
                                         public void printNotice(java.lang.String msg) {
                                            reporter.printNotice(msg);
                                         }
                                    !    
                                    !    // Print warning message, increment warning count. 
                                         public void printWarning(java.lang.String msg) {
                                            reporter.printWarning(msg);
                                         }
                                    --- 149,209 ----
                                         //--------------------------------------------------------------------------
                                      
                                         /**
                                    !     *  Return classes and interfaces to be documented.
                                          */
                                    !    public ClassDoc[] classes() { return classes; }
                                      
                                         /**
                                    !     *  Return a ClassDoc object for the specified class/interface
                                          *  name.
                                          *
                                    !     *  @return a ClassDoc object describing the given class, or
                                          *  <code>null</code> if no corresponding ClassDoc object
                                          *  has been constructed.
                                          */
                                    !    public ClassDoc classNamed(String qualifiedName) {
                                    !       return (ClassDoc)classDocMap.get(qualifiedName);
                                    !    }
                                      
                                         /**
                                          *  Return an xxx
                                          */
                                    !    public String[][] options() { return customOptionArr; }
                                      
                                    !    // Return a PackageDoc for the specified package name
                                    !    public PackageDoc packageNamed(String name) {
                                    !       return (PackageDoc)packageDocMap.get(name);
                                         }
                                      
                                      
                                    !   // classes and interfaces specified on the command line.
                                    !   public ClassDoc[] specifiedClasses()
                                    !   {
                                    !     return (ClassDocImpl[]) specifiedClasses.toArray(new ClassDocImpl[0]);
                                    !   }
                                      
                                    !    // packages specified on the command line.
                                    !   public PackageDoc[] specifiedPackages()
                                        {
                                          return (PackageDocImpl[])specifiedPackages.toArray(new PackageDocImpl[0]);
                                        }
                                      
                                    !    // Print error message, increment error count.
                                         public void printError(java.lang.String msg) {
                                            reporter.printError(msg);
                                         }
                                      
                                    !    // Print error message, increment error count.
                                         public void printFatal(java.lang.String msg) {
                                            reporter.printFatal(msg);
                                         }
                                      
                                    !    // Print a message.
                                         public void printNotice(java.lang.String msg) {
                                            reporter.printNotice(msg);
                                         }
                                    ! 
                                    !    // Print warning message, increment warning count.
                                         public void printWarning(java.lang.String msg) {
                                            reporter.printWarning(msg);
                                         }
                                    *************** public class RootDocImpl 
                                    *** 215,244 ****
                                               Iterator it = javaLangSourceDirs.iterator();
                                               while (it.hasNext()) {
                                                  File javaLangSourceDir = (File)it.next();
                                    !             parser.processSourceDir(javaLangSourceDir, 
                                                                          sourceEncoding, "java.lang");
                                               }
                                            }
                                            else {
                                      
                                    ! 	 Debug.log(1, "Sourcepath is "+sourcePath);
                                      
                                    ! 	 // Core docs not included in source-path: 
                                    ! 	 // we need to gather the information about java.lang
                                    ! 	 // classes via reflection...
                                      
                                            }
                                      
                                            //--- Parse all files in explicitly specified package directories.
                                    ! 	 
                                            for (Iterator it=specifiedPackageNames.iterator(); it.hasNext(); ) {
                                      
                                    ! 	 String specifiedPackageName = (String)it.next();
                                               String displayPackageName = specifiedPackageName;
                                               if (null == displayPackageName || 0 == displayPackageName.length()) {
                                                  displayPackageName = "<unnamed>";
                                               }
                                    ! 	 printNotice("Loading classes for package "+displayPackageName+"...");
                                               String relPath;
                                               if (null != specifiedPackageName) {
                                                  relPath = specifiedPackageName.replace('.',File.separatorChar);
                                    --- 232,261 ----
                                               Iterator it = javaLangSourceDirs.iterator();
                                               while (it.hasNext()) {
                                                  File javaLangSourceDir = (File)it.next();
                                    !             parser.processSourceDir(javaLangSourceDir,
                                                                          sourceEncoding, "java.lang");
                                               }
                                            }
                                            else {
                                      
                                    !          Debug.log(1, "Sourcepath is "+sourcePath);
                                      
                                    !          // Core docs not included in source-path:
                                    !          // we need to gather the information about java.lang
                                    !          // classes via reflection...
                                      
                                            }
                                      
                                            //--- Parse all files in explicitly specified package directories.
                                    ! 
                                            for (Iterator it=specifiedPackageNames.iterator(); it.hasNext(); ) {
                                      
                                    !          String specifiedPackageName = (String)it.next();
                                               String displayPackageName = specifiedPackageName;
                                               if (null == displayPackageName || 0 == displayPackageName.length()) {
                                                  displayPackageName = "<unnamed>";
                                               }
                                    !          printNotice("Loading classes for package "+displayPackageName+"...");
                                               String relPath;
                                               if (null != specifiedPackageName) {
                                                  relPath = specifiedPackageName.replace('.',File.separatorChar);
                                    *************** public class RootDocImpl 
                                    *** 246,262 ****
                                               else {
                                                  relPath = "";
                                               }
                                    ! 	 List sourceDirs = findSourceFiles(relPath);
                                    ! 	 if (!sourceDirs.isEmpty()) {
                                                  Iterator sourceDirIt = sourceDirs.iterator();
                                                  while (sourceDirIt.hasNext()) {
                                                     File sourceDir = (File)sourceDirIt.next();
                                                     parser.processSourceDir(sourceDir, sourceEncoding, specifiedPackageName);
                                                  }
                                    ! 	 }
                                    ! 	 else {
                                    ! 	    printError("Package '"+specifiedPackageName+"' not found.");
                                    ! 	 }
                                            }
                                      
                                            specifiedClasses = new LinkedList();
                                    --- 263,279 ----
                                               else {
                                                  relPath = "";
                                               }
                                    !          List sourceDirs = findSourceFiles(relPath);
                                    !          if (!sourceDirs.isEmpty()) {
                                                  Iterator sourceDirIt = sourceDirs.iterator();
                                                  while (sourceDirIt.hasNext()) {
                                                     File sourceDir = (File)sourceDirIt.next();
                                                     parser.processSourceDir(sourceDir, sourceEncoding, specifiedPackageName);
                                                  }
                                    !          }
                                    !          else {
                                    !             printError("Package '"+specifiedPackageName+"' not found.");
                                    !          }
                                            }
                                      
                                            specifiedClasses = new LinkedList();
                                    *************** public class RootDocImpl 
                                    *** 265,281 ****
                                      
                                            for (Iterator it=specifiedSourceFiles.iterator(); it.hasNext(); ) {
                                      
                                    ! 	 File specifiedSourceFile = (File)it.next();
                                    ! 	 printNotice("Loading source file "+specifiedSourceFile+" ...");
                                               ClassDocImpl classDoc = parser.processSourceFile(specifiedSourceFile, true, sourceEncoding, null);
                                               if (null != classDoc) {
                                    ! 	   specifiedClasses.add(classDoc);
                                    ! 	   classesList.add(classDoc);
                                    ! 	   classDoc.setIsIncluded(true);
                                    ! 	   addPackageDoc(classDoc.containingPackage());
                                               }
                                            }
                                    !    
                                      
                                            //--- Let the user know that all specified classes are loaded.
                                      
                                    --- 282,298 ----
                                      
                                            for (Iterator it=specifiedSourceFiles.iterator(); it.hasNext(); ) {
                                      
                                    !          File specifiedSourceFile = (File)it.next();
                                    !          printNotice("Loading source file "+specifiedSourceFile+" ...");
                                               ClassDocImpl classDoc = parser.processSourceFile(specifiedSourceFile, true, sourceEncoding, null);
                                               if (null != classDoc) {
                                    !            specifiedClasses.add(classDoc);
                                    !            classesList.add(classDoc);
                                    !            classDoc.setIsIncluded(true);
                                    !            addPackageDoc(classDoc.containingPackage());
                                               }
                                            }
                                    ! 
                                      
                                            //--- Let the user know that all specified classes are loaded.
                                      
                                    *************** public class RootDocImpl 
                                    *** 294,300 ****
                                            printNotice("Resolving references in classes...");
                                      
                                            for (Iterator it = classDocMap.values().iterator(); it.hasNext(); ) {
                                    ! 	 ClassDoc cd=(ClassDoc)it.next();
                                               if (cd instanceof ClassDocImpl) {
                                                  ((ClassDocImpl)cd).resolve();
                                               }
                                    --- 311,317 ----
                                            printNotice("Resolving references in classes...");
                                      
                                            for (Iterator it = classDocMap.values().iterator(); it.hasNext(); ) {
                                    !          ClassDoc cd=(ClassDoc)it.next();
                                               if (cd instanceof ClassDocImpl) {
                                                  ((ClassDocImpl)cd).resolve();
                                               }
                                    *************** public class RootDocImpl 
                                    *** 305,332 ****
                                            printNotice("Resolving references in packages...");
                                      
                                            for (Iterator it = packageDocMap.values().iterator(); it.hasNext(); ) {
                                    ! 	 PackageDocImpl pd=(PackageDocImpl)it.next();
                                    ! 	 pd.resolve();
                                            }
                                      
                                            //--- Assemble the array with all specified packages
                                      
                                            specifiedPackages = new LinkedHashSet();
                                            for (Iterator it = specifiedPackageNames.iterator(); it.hasNext(); ) {
                                    ! 	 String specifiedPackageName = (String)it.next();
                                    ! 	 PackageDoc specifiedPackageDoc = (PackageDoc)packageDocMap.get(specifiedPackageName);
                                    ! 	 if (null!=specifiedPackageDoc) {
                                    ! 	    ((PackageDocImpl)specifiedPackageDoc).setIsIncluded(true);
                                    ! 	    specifiedPackages.add(specifiedPackageDoc);
                                      
                                    ! 	    ClassDoc[] packageClassDocs=specifiedPackageDoc.allClasses();
                                    ! 	    for (int i=0; i<packageClassDocs.length; ++i) {
                                    ! 	       ClassDocImpl specifiedPackageClassDoc=(ClassDocImpl)packageClassDocs[i];
                                    !             
                                    ! 	       specifiedPackageClassDoc.setIsIncluded(true);
                                    ! 	       classesList.add(specifiedPackageClassDoc);
                                    ! 	    }
                                    ! 	 }
                                            }
                                      
                                            //--- Resolve pending references in comment data of all classes
                                    --- 322,349 ----
                                            printNotice("Resolving references in packages...");
                                      
                                            for (Iterator it = packageDocMap.values().iterator(); it.hasNext(); ) {
                                    !          PackageDocImpl pd=(PackageDocImpl)it.next();
                                    !          pd.resolve();
                                            }
                                      
                                            //--- Assemble the array with all specified packages
                                      
                                            specifiedPackages = new LinkedHashSet();
                                            for (Iterator it = specifiedPackageNames.iterator(); it.hasNext(); ) {
                                    !          String specifiedPackageName = (String)it.next();
                                    !          PackageDoc specifiedPackageDoc = (PackageDoc)packageDocMap.get(specifiedPackageName);
                                    !          if (null!=specifiedPackageDoc) {
                                    !             ((PackageDocImpl)specifiedPackageDoc).setIsIncluded(true);
                                    !             specifiedPackages.add(specifiedPackageDoc);
                                      
                                    !             ClassDoc[] packageClassDocs=specifiedPackageDoc.allClasses();
                                    !             for (int i=0; i<packageClassDocs.length; ++i) {
                                    !                ClassDocImpl specifiedPackageClassDoc=(ClassDocImpl)packageClassDocs[i];
                                    ! 
                                    !                specifiedPackageClassDoc.setIsIncluded(true);
                                    !                classesList.add(specifiedPackageClassDoc);
                                    !             }
                                    !          }
                                            }
                                      
                                            //--- Resolve pending references in comment data of all classes
                                    *************** public class RootDocImpl 
                                    *** 334,340 ****
                                            printNotice("Resolving references in class comments...");
                                      
                                            for (Iterator it=classDocMap.values().iterator(); it.hasNext(); ) {
                                    ! 	 ClassDoc cd=(ClassDoc)it.next();
                                               if (cd instanceof ClassDocImpl) {
                                                  ((ClassDocImpl)cd).resolveComments();
                                               }
                                    --- 351,357 ----
                                            printNotice("Resolving references in class comments...");
                                      
                                            for (Iterator it=classDocMap.values().iterator(); it.hasNext(); ) {
                                    !          ClassDoc cd=(ClassDoc)it.next();
                                               if (cd instanceof ClassDocImpl) {
                                                  ((ClassDocImpl)cd).resolveComments();
                                               }
                                    *************** public class RootDocImpl 
                                    *** 345,352 ****
                                            printNotice("Resolving references in package comments...");
                                      
                                            for (Iterator it=packageDocMap.values().iterator(); it.hasNext(); ) {
                                    ! 	 PackageDocImpl pd=(PackageDocImpl)it.next();
                                    ! 	 pd.resolveComments();
                                            }
                                      
                                            //--- Create array with all loaded classes
                                    --- 362,369 ----
                                            printNotice("Resolving references in package comments...");
                                      
                                            for (Iterator it=packageDocMap.values().iterator(); it.hasNext(); ) {
                                    !          PackageDocImpl pd=(PackageDocImpl)it.next();
                                    !          pd.resolveComments();
                                            }
                                      
                                            //--- Create array with all loaded classes
                                    *************** public class RootDocImpl 
                                    *** 363,394 ****
                                      
                                         public long writeRawComment(String rawComment) {
                                            try {
                                    ! 	 long pos=rawCommentCache.getFilePointer();
                                    ! 	 //rawCommentCache.writeUTF(rawComment);
                                               byte[] bytes = rawComment.getBytes("utf-8");
                                               rawCommentCache.writeInt(bytes.length);
                                               rawCommentCache.write(bytes);
                                    ! 	 return pos;
                                            }
                                            catch (IOException e) {
                                    ! 	 printFatal("Cannot write to comment cache: "+e.getMessage());
                                    ! 	 return -1;
                                            }
                                         }
                                      
                                         public String readRawComment(long pos) {
                                            try {
                                    ! 	 rawCommentCache.seek(pos);
                                               int sz = rawCommentCache.readInt();
                                               byte[] bytes = new byte[sz];
                                               rawCommentCache.read(bytes);
                                               return new String(bytes, "utf-8");
                                    ! 	 //return rawCommentCache.readUTF();
                                            }
                                            catch (IOException e) {
                                               e.printStackTrace();
                                    ! 	 printFatal("Cannot read from comment cache: "+e.getMessage());
                                    ! 	 return null;
                                            }
                                         }
                                      
                                    --- 380,411 ----
                                      
                                         public long writeRawComment(String rawComment) {
                                            try {
                                    !          long pos=rawCommentCache.getFilePointer();
                                    !          //rawCommentCache.writeUTF(rawComment);
                                               byte[] bytes = rawComment.getBytes("utf-8");
                                               rawCommentCache.writeInt(bytes.length);
                                               rawCommentCache.write(bytes);
                                    !          return pos;
                                            }
                                            catch (IOException e) {
                                    !          printFatal("Cannot write to comment cache: "+e.getMessage());
                                    !          return -1;
                                            }
                                         }
                                      
                                         public String readRawComment(long pos) {
                                            try {
                                    !          rawCommentCache.seek(pos);
                                               int sz = rawCommentCache.readInt();
                                               byte[] bytes = new byte[sz];
                                               rawCommentCache.read(bytes);
                                               return new String(bytes, "utf-8");
                                    !          //return rawCommentCache.readUTF();
                                            }
                                            catch (IOException e) {
                                               e.printStackTrace();
                                    !          printFatal("Cannot read from comment cache: "+e.getMessage());
                                    !          return null;
                                            }
                                         }
                                      
                                    *************** public class RootDocImpl 
                                    *** 396,404 ****
                                      
                                            List result = new LinkedList();
                                            for (Iterator it = sourcePath.iterator(); it.hasNext(); ) {
                                    ! 	 File path = (File)it.next();
                                    ! 	 File file = new File(path, relPath);
                                    ! 	 if (file.exists()) {
                                                  result.add(file);
                                               }
                                            }
                                    --- 413,421 ----
                                      
                                            List result = new LinkedList();
                                            for (Iterator it = sourcePath.iterator(); it.hasNext(); ) {
                                    !          File path = (File)it.next();
                                    !          File file = new File(path, relPath);
                                    !          if (file.exists()) {
                                                  result.add(file);
                                               }
                                            }
                                    *************** public class RootDocImpl 
                                    *** 409,416 ****
                                         PackageDocImpl findOrCreatePackageDoc(String packageName) {
                                            PackageDocImpl rc=(PackageDocImpl)getPackageDoc(packageName);
                                            if (null==rc) {
                                    ! 	 rc=new PackageDocImpl(packageName);
                                    ! 	 if (specifiedPackageNames.contains(packageName)) {
                                                  String packageDirectoryName = packageName.replace('.', File.separatorChar);
                                                  List packageDirectories = findSourceFiles(packageDirectoryName);
                                                  Iterator it = packageDirectories.iterator();
                                    --- 426,433 ----
                                         PackageDocImpl findOrCreatePackageDoc(String packageName) {
                                            PackageDocImpl rc=(PackageDocImpl)getPackageDoc(packageName);
                                            if (null==rc) {
                                    !          rc=new PackageDocImpl(packageName);
                                    !          if (specifiedPackageNames.contains(packageName)) {
                                                  String packageDirectoryName = packageName.replace('.', File.separatorChar);
                                                  List packageDirectories = findSourceFiles(packageDirectoryName);
                                                  Iterator it = packageDirectories.iterator();
                                    *************** public class RootDocImpl 
                                    *** 433,440 ****
                                                  if (!packageDocFound) {
                                                     printNotice("No description found for package "+packageName);
                                                  }
                                    ! 	 }
                                    ! 	 addPackageDoc(rc);
                                            }
                                            return rc;
                                         }
                                    --- 450,457 ----
                                                  if (!packageDocFound) {
                                                     printNotice("No description found for package "+packageName);
                                                  }
                                    !          }
                                    !          addPackageDoc(rc);
                                            }
                                            return rc;
                                         }
                                    *************** public class RootDocImpl 
                                    *** 468,477 ****
                                            ClassDoc contextClass;
                                            String qualifiedName;
                                            ScheduledClass(ClassDoc contextClass, String qualifiedName) {
                                    ! 	 this.contextClass=contextClass;
                                    ! 	 this.qualifiedName=qualifiedName;
                                            }
                                    !       
                                            public String toString() { return "ScheduledClass{"+qualifiedName+"}"; }
                                         }
                                      
                                    --- 485,494 ----
                                            ClassDoc contextClass;
                                            String qualifiedName;
                                            ScheduledClass(ClassDoc contextClass, String qualifiedName) {
                                    !          this.contextClass=contextClass;
                                    !          this.qualifiedName=qualifiedName;
                                            }
                                    ! 
                                            public String toString() { return "ScheduledClass{"+qualifiedName+"}"; }
                                         }
                                      
                                    *************** public class RootDocImpl 
                                    *** 479,488 ****
                                      
                                            if (classDocMap.get(qualifiedName)==null) {
                                      
                                    ! 	 //Debug.log(9,"Scheduling "+qualifiedName+", context "+context+".");
                                               //System.err.println("Scheduling " + qualifiedName + ", context " + context);
                                      
                                    ! 	 scheduledClasses.add(new ScheduledClass(context, qualifiedName));
                                            }
                                         }
                                      
                                    --- 496,505 ----
                                      
                                            if (classDocMap.get(qualifiedName)==null) {
                                      
                                    !          //Debug.log(9,"Scheduling "+qualifiedName+", context "+context+".");
                                               //System.err.println("Scheduling " + qualifiedName + ", context " + context);
                                      
                                    !          scheduledClasses.add(new ScheduledClass(context, qualifiedName));
                                            }
                                         }
                                      
                                    *************** public class RootDocImpl 
                                    *** 504,510 ****
                                          *  The task of this method is to ensure that Gjdoc has all this
                                          *  information at hand when it exits.
                                          *
                                    !     * 
                                          */
                                         public void loadScheduledClasses(Parser parser) throws ParseException, IOException {
                                      
                                    --- 521,527 ----
                                          *  The task of this method is to ensure that Gjdoc has all this
                                          *  information at hand when it exits.
                                          *
                                    !     *
                                          */
                                         public void loadScheduledClasses(Parser parser) throws ParseException, IOException {
                                      
                                    *************** public class RootDocImpl 
                                    *** 514,590 ****
                                      
                                            while (!scheduledClasses.isEmpty()) {
                                      
                                    ! 	 // Make a copy of scheduledClasses and empty it. This 
                                    ! 	 // prevents any Concurrent Modification issues.
                                    ! 	 // As the copy won't need to grow (as it won't change)
                                    ! 	 // we make it an Array for performance reasons.
                                      
                                    ! 	 ScheduledClass[] scheduledClassesArr = (ScheduledClass[])scheduledClasses.toArray(new ScheduledClass[0]);
                                    ! 	 scheduledClasses.clear();
                                      
                                    ! 	 // Load each class specified in our array copy
                                    ! 	 
                                    ! 	 for (int i=0; i<scheduledClassesArr.length; ++i) {
                                      
                                    ! 	    // The name of the class we are looking for. This name
                                    ! 	    // needs not be fully qualified.
                                    ! 	    
                                    ! 	    String scheduledClassName=scheduledClassesArr[i].qualifiedName;
                                      
                                    ! 	    // The ClassDoc in whose context the scheduled class was looked for.
                                    ! 	    // This is necessary in order to resolve non-fully qualified 
                                    ! 	    // class names.
                                    ! 	    ClassDoc scheduledClassContext=scheduledClassesArr[i].contextClass;
                                      
                                    ! 	    // If there already is a class doc with this name, skip. There's
                                    ! 	    // nothing to do for us.
                                    ! 	    if (classDocMap.get(scheduledClassName)!=null) {
                                    ! 	       continue;
                                    ! 	    }
                                      
                                    ! 	    try {
                                    ! 	       // Try to load the class
                                                     //printNotice("Trying to load " + scheduledClassName);
                                    ! 	       loadScheduledClass(parser, scheduledClassName, scheduledClassContext);
                                    ! 	    }
                                    ! 	    catch (ParseException e) {
                                      
                                    ! 	       /**********************************************************
                                      
                                                     // Check whether the following is necessary at all.
                                      
                                      
                                    ! 	       if (scheduledClassName.indexOf('.')>0) {
                                      
                                    ! 	       // Maybe the dotted notation doesn't mean a package
                                    ! 	       // name but instead an inner class, as in 'Outer.Inner'.
                                    ! 	       // so let's assume this and try to load the outer class.
                                      
                                    ! 		  String outerClass="";
                                    ! 		  for (StringTokenizer st=new StringTokenizer(scheduledClassName,"."); st.hasMoreTokens(); ) {
                                    ! 		     if (outerClass.length()>0) outerClass+=".";
                                    ! 		     outerClass+=st.nextToken();
                                    ! 		     if (!st.hasMoreTokens()) break;
                                    ! 		     try {
                                    ! 			loadClass(outerClass);
                                    ! 			//FIXME: shouldn't this be loadScheduledClass(outerClass, scheduledClassContext); ???
                                    ! 			continue;
                                    ! 		     }
                                    ! 		     catch (Exception ee) {
                                    ! 		     // Ignore: try next level
                                    ! 		     }
                                    ! 		  }
                                    ! 	       }
                                      
                                    ! 	       **********************************************************/
                                      
                                    ! 	       // If we arrive here, the class could not be found
                                      
                                    ! 	       printWarning("Couldn't load class "+scheduledClassName+" referenced by "+scheduledClassContext);
                                      
                                    ! 	       //FIXME: shouldn't this be throw new Error("cannot load: "+scheduledClassName);
                                    ! 	    }
                                    ! 	 }
                                            }
                                         }
                                      
                                    --- 531,607 ----
                                      
                                            while (!scheduledClasses.isEmpty()) {
                                      
                                    !          // Make a copy of scheduledClasses and empty it. This
                                    !          // prevents any Concurrent Modification issues.
                                    !          // As the copy won't need to grow (as it won't change)
                                    !          // we make it an Array for performance reasons.
                                      
                                    !          ScheduledClass[] scheduledClassesArr = (ScheduledClass[])scheduledClasses.toArray(new ScheduledClass[0]);
                                    !          scheduledClasses.clear();
                                      
                                    !          // Load each class specified in our array copy
                                      
                                    !          for (int i=0; i<scheduledClassesArr.length; ++i) {
                                      
                                    !             // The name of the class we are looking for. This name
                                    !             // needs not be fully qualified.
                                      
                                    !             String scheduledClassName=scheduledClassesArr[i].qualifiedName;
                                      
                                    !             // The ClassDoc in whose context the scheduled class was looked for.
                                    !             // This is necessary in order to resolve non-fully qualified
                                    !             // class names.
                                    !             ClassDoc scheduledClassContext=scheduledClassesArr[i].contextClass;
                                    ! 
                                    !             // If there already is a class doc with this name, skip. There's
                                    !             // nothing to do for us.
                                    !             if (classDocMap.get(scheduledClassName)!=null) {
                                    !                continue;
                                    !             }
                                    ! 
                                    !             try {
                                    !                // Try to load the class
                                                     //printNotice("Trying to load " + scheduledClassName);
                                    !                loadScheduledClass(parser, scheduledClassName, scheduledClassContext);
                                    !             }
                                    !             catch (ParseException e) {
                                      
                                    !                /**********************************************************
                                      
                                                     // Check whether the following is necessary at all.
                                      
                                      
                                    !                if (scheduledClassName.indexOf('.')>0) {
                                      
                                    !                // Maybe the dotted notation doesn't mean a package
                                    !                // name but instead an inner class, as in 'Outer.Inner'.
                                    !                // so let's assume this and try to load the outer class.
                                      
                                    !                   String outerClass="";
                                    !                   for (StringTokenizer st=new StringTokenizer(scheduledClassName,"."); st.hasMoreTokens(); ) {
                                    !                      if (outerClass.length()>0) outerClass+=".";
                                    !                      outerClass+=st.nextToken();
                                    !                      if (!st.hasMoreTokens()) break;
                                    !                      try {
                                    !                         loadClass(outerClass);
                                    !                         //FIXME: shouldn't this be loadScheduledClass(outerClass, scheduledClassContext); ???
                                    !                         continue;
                                    !                      }
                                    !                      catch (Exception ee) {
                                    !                      // Ignore: try next level
                                    !                      }
                                    !                   }
                                    !                }
                                      
                                    !                **********************************************************/
                                      
                                    !                // If we arrive here, the class could not be found
                                      
                                    !                printWarning("Couldn't load class "+scheduledClassName+" referenced by "+scheduledClassContext);
                                      
                                    !                //FIXME: shouldn't this be throw new Error("cannot load: "+scheduledClassName);
                                    !             }
                                    !          }
                                            }
                                         }
                                      
                                    *************** public class RootDocImpl 
                                    *** 594,600 ****
                                      
                                            if (loadedClass==null || loadedClass instanceof ClassDocProxy) {
                                      
                                    ! 	 ClassDoc classDoc = findScheduledClassFile(scheduledClassName, scheduledClassContext);
                                               if (null != classDoc) {
                                      
                                                  if (classDoc instanceof ClassDocReflectedImpl) {
                                    --- 611,617 ----
                                      
                                            if (loadedClass==null || loadedClass instanceof ClassDocProxy) {
                                      
                                    !          ClassDoc classDoc = findScheduledClassFile(scheduledClassName, scheduledClassContext);
                                               if (null != classDoc) {
                                      
                                                  if (classDoc instanceof ClassDocReflectedImpl) {
                                    *************** public class RootDocImpl 
                                    *** 602,659 ****
                                                  }
                                      
                                                  if (Main.DESCEND_SUPERCLASS
                                    !                 && null != classDoc.superclass() 
                                                      && (classDoc.superclass() instanceof ClassDocProxy)) {
                                                     scheduleClass(classDoc, classDoc.superclass().qualifiedName());
                                                  }
                                               }
                                               else {
                                    ! 	    // It might be an inner class of one of the outer/super classes.
                                    ! 	    // But we can only check that when they are all fully loaded.
                                    ! 	    boolean retryLater = false;
                                      
                                    ! 	    int numberOfProcessedFilesBefore = parser.getNumberOfProcessedFiles();
                                      
                                    ! 	    ClassDoc cc = scheduledClassContext.containingClass();
                                    ! 	    while (cc != null && !retryLater) {
                                    ! 	       ClassDoc sc = cc.superclass();
                                    ! 	       while (sc != null && !retryLater) {
                                    ! 		  if (sc instanceof ClassDocProxy) {
                                    ! 		     ((ClassDocImpl)cc).resolve();
                                    ! 		     retryLater = true;
                                    ! 		  }
                                    ! 		  sc = sc.superclass();
                                    ! 	       }
                                    ! 	       cc = cc.containingClass();
                                    ! 	    }
                                      
                                    ! 	    // Now that outer/super references have been resolved, try again
                                    ! 	    // to find the class.
                                      
                                    ! 	    loadedClass = (ClassDoc)scheduledClassContext.findClass(scheduledClassName);
                                      
                                    ! 	    int numberOfProcessedFilesAfter = parser.getNumberOfProcessedFiles();
                                      
                                    ! 	    boolean filesWereProcessed = numberOfProcessedFilesAfter > numberOfProcessedFilesBefore;
                                      
                                    ! 	    // Only re-schedule class if additional files have been processed
                                    ! 	    // If there haven't, there's no point in re-scheduling.
                                    ! 	    // Will avoid infinite loops of re-scheduling
                                    ! 	    if (null == loadedClass && retryLater && filesWereProcessed)
                                    ! 	       scheduleClass(scheduledClassContext, scheduledClassName);
                                      
                                    ! 	    /* A warning needn't be emitted - this is normal, can happen
                                    ! 	       if the scheduled class is in a package which is not
                                    ! 	       included on the command line.
                                      
                                    ! 	       else if (null == loadedClass)
                                    ! 	       printWarning("Can't find scheduled class '"
                                    ! 	       + scheduledClassName
                                    ! 	       + "' in context '"
                                    ! 	       + scheduledClassContext.qualifiedName()
                                    ! 	       + "'");
                                    ! 	    */
                                    ! 	 }
                                            }
                                         }
                                      
                                    --- 619,676 ----
                                                  }
                                      
                                                  if (Main.DESCEND_SUPERCLASS
                                    !                 && null != classDoc.superclass()
                                                      && (classDoc.superclass() instanceof ClassDocProxy)) {
                                                     scheduleClass(classDoc, classDoc.superclass().qualifiedName());
                                                  }
                                               }
                                               else {
                                    !             // It might be an inner class of one of the outer/super classes.
                                    !             // But we can only check that when they are all fully loaded.
                                    !             boolean retryLater = false;
                                      
                                    !             int numberOfProcessedFilesBefore = parser.getNumberOfProcessedFiles();
                                      
                                    !             ClassDoc cc = scheduledClassContext.containingClass();
                                    !             while (cc != null && !retryLater) {
                                    !                ClassDoc sc = cc.superclass();
                                    !                while (sc != null && !retryLater) {
                                    !                   if (sc instanceof ClassDocProxy) {
                                    !                      ((ClassDocImpl)cc).resolve();
                                    !                      retryLater = true;
                                    !                   }
                                    !                   sc = sc.superclass();
                                    !                }
                                    !                cc = cc.containingClass();
                                    !             }
                                      
                                    !             // Now that outer/super references have been resolved, try again
                                    !             // to find the class.
                                      
                                    !             loadedClass = (ClassDoc)scheduledClassContext.findClass(scheduledClassName);
                                      
                                    !             int numberOfProcessedFilesAfter = parser.getNumberOfProcessedFiles();
                                      
                                    !             boolean filesWereProcessed = numberOfProcessedFilesAfter > numberOfProcessedFilesBefore;
                                      
                                    !             // Only re-schedule class if additional files have been processed
                                    !             // If there haven't, there's no point in re-scheduling.
                                    !             // Will avoid infinite loops of re-scheduling
                                    !             if (null == loadedClass && retryLater && filesWereProcessed)
                                    !                scheduleClass(scheduledClassContext, scheduledClassName);
                                      
                                    !             /* A warning needn't be emitted - this is normal, can happen
                                    !                if the scheduled class is in a package which is not
                                    !                included on the command line.
                                      
                                    !                else if (null == loadedClass)
                                    !                printWarning("Can't find scheduled class '"
                                    !                + scheduledClassName
                                    !                + "' in context '"
                                    !                + scheduledClassContext.qualifiedName()
                                    !                + "'");
                                    !             */
                                    !          }
                                            }
                                         }
                                      
                                    *************** public class RootDocImpl 
                                    *** 689,697 ****
                                      
                                            public String match(String name)
                                            {
                                    ! 	 if ((name.equals(this.name)) || (importSpecifier.equals(name)))
                                    ! 	    return this.name;
                                    ! 	 // FIXME: note that we don't handle on-demand imports here.
                                               return null;
                                            }
                                      
                                    --- 706,714 ----
                                      
                                            public String match(String name)
                                            {
                                    !          if ((name.equals(this.name)) || (importSpecifier.equals(name)))
                                    !             return this.name;
                                    !          // FIXME: note that we don't handle on-demand imports here.
                                               return null;
                                            }
                                      
                                    *************** public class RootDocImpl 
                                    *** 744,750 ****
                                                     innerClassName = topLevelName.substring(ndx + 1);
                                                     topLevelName = topLevelName.substring(0, ndx);
                                                  }
                                    !             
                                                  if (topLevelClassNames.contains(topLevelName)) {
                                                     //System.err.println(this + ".match returns " + packageName + "." + name);
                                                     return packageName + "." + name;
                                    --- 761,767 ----
                                                     innerClassName = topLevelName.substring(ndx + 1);
                                                     topLevelName = topLevelName.substring(0, ndx);
                                                  }
                                    ! 
                                                  if (topLevelClassNames.contains(topLevelName)) {
                                                     //System.err.println(this + ".match returns " + packageName + "." + name);
                                                     return packageName + "." + name;
                                    *************** public class RootDocImpl 
                                    *** 811,817 ****
                                         {
                                            StringTokenizer st = new StringTokenizer(innerClassName, ".");
                                         outer:
                                    !       
                                            while (st.hasMoreTokens()) {
                                               String innerClassNameComponent = st.nextToken();
                                               ClassDoc[] innerClasses = topLevelClass.innerClasses();
                                    --- 828,834 ----
                                         {
                                            StringTokenizer st = new StringTokenizer(innerClassName, ".");
                                         outer:
                                    ! 
                                            while (st.hasMoreTokens()) {
                                               String innerClassNameComponent = st.nextToken();
                                               ClassDoc[] innerClasses = topLevelClass.innerClasses();
                                    *************** public class RootDocImpl 
                                    *** 917,923 ****
                                               }
                                            }
                                         }
                                    !    
                                         private class ResolvedImportReflectionClass
                                            implements ResolvedImport
                                         {
                                    --- 934,940 ----
                                               }
                                            }
                                         }
                                    ! 
                                         private class ResolvedImportReflectionClass
                                            implements ResolvedImport
                                         {
                                    *************** public class RootDocImpl 
                                    *** 1043,1049 ****
                                               importedPackageOrClass = importedPackageOrClass.substring(0, importedPackageOrClass.length() - 2);
                                      
                                               return new ResolvedImportReflectionPackage(importedPackageOrClass);
                                    !          
                                               //return null;
                                            }
                                            else {
                                    --- 1060,1066 ----
                                               importedPackageOrClass = importedPackageOrClass.substring(0, importedPackageOrClass.length() - 2);
                                      
                                               return new ResolvedImportReflectionPackage(importedPackageOrClass);
                                    ! 
                                               //return null;
                                            }
                                            else {
                                    *************** public class RootDocImpl 
                                    *** 1069,1075 ****
                                            String longestUnlocatablePrefix = "";
                                      
                                            for (Iterator it=sourcePath.iterator(); it.hasNext(); ) {
                                    !             
                                               File _sourcePath = (File)it.next();
                                      
                                               StringBuffer packageOrClassPrefix = new StringBuffer();
                                    --- 1086,1092 ----
                                            String longestUnlocatablePrefix = "";
                                      
                                            for (Iterator it=sourcePath.iterator(); it.hasNext(); ) {
                                    ! 
                                               File _sourcePath = (File)it.next();
                                      
                                               StringBuffer packageOrClassPrefix = new StringBuffer();
                                    *************** public class RootDocImpl 
                                    *** 1077,1083 ****
                                               while (st.hasMoreTokens() && _sourcePath.isDirectory()) {
                                                  String token = st.nextToken();
                                                  if ("*".equals(token)) {
                                    !                return new ResolvedImportPackageFile(_sourcePath, 
                                                                                          packageOrClassPrefix.substring(0, packageOrClassPrefix.length() - 1));
                                                  }
                                                  else {
                                    --- 1094,1100 ----
                                               while (st.hasMoreTokens() && _sourcePath.isDirectory()) {
                                                  String token = st.nextToken();
                                                  if ("*".equals(token)) {
                                    !                return new ResolvedImportPackageFile(_sourcePath,
                                                                                          packageOrClassPrefix.substring(0, packageOrClassPrefix.length() - 1));
                                                  }
                                                  else {
                                    *************** public class RootDocImpl 
                                    *** 1119,1125 ****
                                      
                                         private ResolvedImport getResolvedImport(String importSpecifier)
                                         {
                                    !       ResolvedImport result 
                                               = (ResolvedImport)resolvedImportCache.get(importSpecifier);
                                            if (null == result) {
                                               result = resolveImport(importSpecifier);
                                    --- 1136,1142 ----
                                      
                                         private ResolvedImport getResolvedImport(String importSpecifier)
                                         {
                                    !       ResolvedImport result
                                               = (ResolvedImport)resolvedImportCache.get(importSpecifier);
                                            if (null == result) {
                                               result = resolveImport(importSpecifier);
                                    *************** public class RootDocImpl 
                                    *** 1143,1151 ****
                                            return className;
                                         }
                                      
                                    !    public ClassDoc findScheduledClassFile(String scheduledClassName, 
                                                                                ClassDoc scheduledClassContext)
                                    !       throws ParseException, IOException 
                                         {
                                            String resolvedScheduledClassName = null;
                                      
                                    --- 1160,1168 ----
                                            return className;
                                         }
                                      
                                    !    public ClassDoc findScheduledClassFile(String scheduledClassName,
                                                                                ClassDoc scheduledClassContext)
                                    !       throws ParseException, IOException
                                         {
                                            String resolvedScheduledClassName = null;
                                      
                                    *************** public class RootDocImpl 
                                    *** 1278,1284 ****
                                            super(null);
                                         }
                                      
                                    !    public static String readHtmlBody(File file) 
                                            throws IOException
                                         {
                                            FileReader fr=new FileReader(file);
                                    --- 1295,1301 ----
                                            super(null);
                                         }
                                      
                                    !    public static String readHtmlBody(File file)
                                            throws IOException
                                         {
                                            FileReader fr=new FileReader(file);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class SeeTagImpl extends Abstract
                                    *** 53,60 ****
                                      
                                            int labelNdx=text.indexOf(';');
                                            if (labelNdx>=0) {
                                    ! 	 label="";
                                    ! 	 return;
                                            }
                                      
                                            for (int i=0; i<text.length(); ++i) {
                                    --- 70,77 ----
                                      
                                            int labelNdx=text.indexOf(';');
                                            if (labelNdx>=0) {
                                    !          label="";
                                    !          return;
                                            }
                                      
                                            for (int i=0; i<text.length(); ++i) {
                                    *************** public class SeeTagImpl extends Abstract
                                    *** 73,109 ****
                                            }
                                      
                                            if (labelNdx<0 || labelNdx>=text.length()) {
                                    ! 	 reference=text.trim();
                                    ! 	 label="";
                                            }
                                            else {
                                    ! 	 reference=text.substring(0,labelNdx).trim();
                                    ! 	 label=text.substring(labelNdx).trim();
                                    !       }  
                                      
                                            int mspecNdx=reference.indexOf('#');
                                            String referencedFqName;
                                            if (mspecNdx<0) {
                                    ! 	 referencedFqName=reference;
                                            }
                                            else {
                                    ! 	 referencedFqName=reference.substring(0,mspecNdx);
                                    ! 	 referencedMemberName=reference.substring(mspecNdx+1); 
                                           }
                                      
                                            // the following is in contradiction to the api docs, but
                                            // conform to sun javadoc: return fully qualified classname
                                            // with referencedClassName().
                                            if (referencedFqName.trim().length()>0) {
                                    ! 	 referencedClassName=referencedFqName;
                                    ! 	 if (contextClass==null)
                                    ! 	    referencedClass=Main.getRootDoc().classNamed(referencedFqName);
                                    ! 	 else
                                    ! 	    referencedClass=contextClass.findClass(referencedFqName);
                                            }
                                            else {
                                    ! 	 referencedClassName="";
                                    ! 	 referencedClass=contextClass;
                                            }
                                      
                                            if (referencedClass==null) {
                                    --- 90,126 ----
                                            }
                                      
                                            if (labelNdx<0 || labelNdx>=text.length()) {
                                    !          reference=text.trim();
                                    !          label="";
                                            }
                                            else {
                                    !          reference=text.substring(0,labelNdx).trim();
                                    !          label=text.substring(labelNdx).trim();
                                    !       }
                                      
                                            int mspecNdx=reference.indexOf('#');
                                            String referencedFqName;
                                            if (mspecNdx<0) {
                                    !          referencedFqName=reference;
                                            }
                                            else {
                                    !          referencedFqName=reference.substring(0,mspecNdx);
                                    !          referencedMemberName=reference.substring(mspecNdx+1);
                                           }
                                      
                                            // the following is in contradiction to the api docs, but
                                            // conform to sun javadoc: return fully qualified classname
                                            // with referencedClassName().
                                            if (referencedFqName.trim().length()>0) {
                                    !          referencedClassName=referencedFqName;
                                    !          if (contextClass==null)
                                    !             referencedClass=Main.getRootDoc().classNamed(referencedFqName);
                                    !          else
                                    !             referencedClass=contextClass.findClass(referencedFqName);
                                            }
                                            else {
                                    !          referencedClassName="";
                                    !          referencedClass=contextClass;
                                            }
                                      
                                            if (referencedClass==null) {
                                    *************** public class SeeTagImpl extends Abstract
                                    *** 113,125 ****
                                            if (referencedClass!=null && !referencedClass.isIncluded()) referencedClass=null;
                                      
                                            if (referencedClass!=null) {
                                    ! 	 referencedPackage=referencedClass.containingPackage();
                                    ! 	 referencedClassName=referencedClass.qualifiedName();
                                      
                                    ! 	 if (referencedMemberName!=null) {
                                      
                                    ! 	    if (referencedMemberName.indexOf('(')<0) {
                                    ! 	       referencedMember=((ClassDocImpl)referencedClass).findFieldRec(referencedMemberName);
                                                     if (null == referencedMember) {
                                                        MethodDoc[] methods = ((ClassDocImpl)referencedClass).methods();
                                                        for (int i=0; i<methods.length; ++i) {
                                    --- 130,142 ----
                                            if (referencedClass!=null && !referencedClass.isIncluded()) referencedClass=null;
                                      
                                            if (referencedClass!=null) {
                                    !          referencedPackage=referencedClass.containingPackage();
                                    !          referencedClassName=referencedClass.qualifiedName();
                                      
                                    !          if (referencedMemberName!=null) {
                                      
                                    !             if (referencedMemberName.indexOf('(')<0) {
                                    !                referencedMember=((ClassDocImpl)referencedClass).findFieldRec(referencedMemberName);
                                                     if (null == referencedMember) {
                                                        MethodDoc[] methods = ((ClassDocImpl)referencedClass).methods();
                                                        for (int i=0; i<methods.length; ++i) {
                                    *************** public class SeeTagImpl extends Abstract
                                    *** 139,157 ****
                                                     else {
                                                        referencedClass = referencedMember.containingClass();
                                                     }
                                    ! 	    }
                                    ! 	    else {
                                    ! 	       referencedMember=((ClassDocImpl)referencedClass).findExecutableRec(referencedMemberName);
                                                     if (referencedMember==null) {
                                                        //System.err.println("cannot find member for '"+referencedMemberName+"'");
                                                        referencedClass = null;
                                                     }
                                    ! 	    }
                                    ! 	 }
                                            }
                                            /*
                                            else {
                                    ! 	 System.err.println("class not found: '"+referencedFqName + "' in context class " + contextClass + " in " + this);
                                            }
                                            */
                                         }
                                    --- 156,174 ----
                                                     else {
                                                        referencedClass = referencedMember.containingClass();
                                                     }
                                    !             }
                                    !             else {
                                    !                referencedMember=((ClassDocImpl)referencedClass).findExecutableRec(referencedMemberName);
                                                     if (referencedMember==null) {
                                                        //System.err.println("cannot find member for '"+referencedMemberName+"'");
                                                        referencedClass = null;
                                                     }
                                    !             }
                                    !          }
                                            }
                                            /*
                                            else {
                                    !          System.err.println("class not found: '"+referencedFqName + "' in context class " + contextClass + " in " + this);
                                            }
                                            */
                                         }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class SerialFieldTagImpl extends 
                                    *** 32,39 ****
                                         private ClassDoc     fieldTypeDoc;
                                         private ClassDocImpl contextClass;
                                      
                                    !    public SerialFieldTagImpl(String text, 
                                    !                              ClassDocImpl contextClass, 
                                                                   MemberDocImpl contextMember) {
                                            super(text);
                                            this.contextClass=contextClass;
                                    --- 49,56 ----
                                         private ClassDoc     fieldTypeDoc;
                                         private ClassDocImpl contextClass;
                                      
                                    !    public SerialFieldTagImpl(String text,
                                    !                              ClassDocImpl contextClass,
                                                                   MemberDocImpl contextMember) {
                                            super(text);
                                            this.contextClass=contextClass;
                                    *************** public class SerialFieldTagImpl extends 
                                    *** 48,69 ****
                                            int state=1;
                                            char[] textArr=text.toCharArray();
                                            for (int i=0; i<textArr.length; ++i) {
                                    ! 	 char c=textArr[i];
                                    ! 	 switch (state) {
                                    ! 	 case 1:
                                    ! 	    if (Parser.isWhitespace(c)) state=2;
                                    ! 	    else fieldName+=c;
                                    ! 	    break;
                                    ! 	 case 2:
                                    ! 	    if (Parser.isWhitespace(c)) state=3;
                                    ! 	    else fieldType+=c;
                                    ! 	    break;
                                    ! 	 case 3:
                                    ! 	    description+=c;
                                    ! 	    break;
                                    ! 	 }
                                            }
                                    !       
                                            setBody(description, contextClass, contextMember);
                                      
                                         }
                                    --- 65,86 ----
                                            int state=1;
                                            char[] textArr=text.toCharArray();
                                            for (int i=0; i<textArr.length; ++i) {
                                    !          char c=textArr[i];
                                    !          switch (state) {
                                    !          case 1:
                                    !             if (Parser.isWhitespace(c)) state=2;
                                    !             else fieldName+=c;
                                    !             break;
                                    !          case 2:
                                    !             if (Parser.isWhitespace(c)) state=3;
                                    !             else fieldType+=c;
                                    !             break;
                                    !          case 3:
                                    !             description+=c;
                                    !             break;
                                    !          }
                                            }
                                    ! 
                                            setBody(description, contextClass, contextMember);
                                      
                                         }
                                    *************** public class SerialFieldTagImpl extends 
                                    *** 72,82 ****
                                      
                                            super.resolve();
                                            try {
                                    ! 	  Type type=contextClass.typeForString(fieldType);
                                    ! 	  this.fieldTypeDoc=type.asClassDoc();
                                            } catch (ParseException e) {
                                    ! 	  System.err.println("FIXME: add try-catch to force compilation"
                                    ! 			     + e);
                                            }
                                         }
                                      
                                    --- 89,99 ----
                                      
                                            super.resolve();
                                            try {
                                    !           Type type=contextClass.typeForString(fieldType);
                                    !           this.fieldTypeDoc=type.asClassDoc();
                                            } catch (ParseException e) {
                                    !           System.err.println("FIXME: add try-catch to force compilation"
                                    !                              + e);
                                            }
                                         }
                                      
                                    *************** public class SerialFieldTagImpl extends 
                                    *** 102,111 ****
                                      
                                         public int compareTo(Object o) {
                                            if (o!=null && o instanceof SerialFieldTagImpl) {
                                    ! 	 return fieldName().compareTo(((SerialFieldTagImpl)o).fieldName());
                                            }
                                            else {
                                    ! 	 return 0;
                                            }
                                         }
                                      }
                                    --- 119,128 ----
                                      
                                         public int compareTo(Object o) {
                                            if (o!=null && o instanceof SerialFieldTagImpl) {
                                    !          return fieldName().compareTo(((SerialFieldTagImpl)o).fieldName());
                                            }
                                            else {
                                    !          return 0;
                                            }
                                         }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import com.sun.javadoc.SourcePosition;
                                    *** 24,30 ****
                                      
                                      import java.io.File;
                                      
                                    ! public class SourcePositionImpl 
                                         implements SourcePosition
                                      {
                                         private File file;
                                    --- 41,47 ----
                                      
                                      import java.io.File;
                                      
                                    ! public class SourcePositionImpl
                                         implements SourcePosition
                                      {
                                         private File file;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,115 ****
                                    ! /* gnu.classpath.tools.gjdoc.TemporaryStore
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.gjdoc;
                                    ! 
                                    ! /**
                                    !  *  Useful for passing big objects that are no longer needed by the
                                    !  *  calling method, reducing memory usage.  <p/>
                                    !  *
                                    !  *  Consider the following problem:
                                    !  *  <pre>
                                    !  *   public class A {
                                    !  *     public static void foo() {
                                    !  *       long[] hugeArray = new long[1000000]; // takes around 8 MB
                                    !  *       // ... fill hugeArray with some information ...
                                    !  *       bar(hugeArray);
                                    !  *       // ... hugeArray is no more required at this point
                                    !  *     }
                                    !  *     public static void bar(long[] arr) {
                                    !  *       // ... process contents of arr ...
                                    !  *       arr = null;
                                    !  *       System.gc();      // NOTE: will not collect arr!
                                    !  *       // ... do something memory-intensive where arr is not needed
                                    !  *     }
                                    !  *  }
                                    !  *  </pre>
                                    !  *
                                    !  *  In method <code>bar()</code>, the array cannot be garbage
                                    !  *  collected because the local variable <code>hugeArray</code> in
                                    !  *  method <code>foo()</code> still holds a reference to the array.
                                    !  *  <p/>
                                    !  *
                                    !  *  When calling <code>bar(new long[1000000]);</code> in
                                    !  *  <code>arr</code> the array <i>can</i> be collected in
                                    !  *  <code>bar()</code>, but that way it can't be initialized in
                                    !  *  <code>foo()</code>. A local variable is needed for
                                    !  *  initialization, but the variable can't be cleared before it is
                                    !  *  passed to <code>bar()</code>!  <p/>
                                    !  *
                                    !  *  <code>TemporaryStore</code> is the solution for this
                                    !  *  dilemma. The modified method <code>foo()</code> which uses a
                                    !  *  <code>TemporaryStore</code> object would look like this:
                                    !  *
                                    !  *  <pre>
                                    !  *     public static void foo() {
                                    !  *       long[] hugeArray = new long[1000000]; // takes around 7 MB
                                    !  *       // ... fill hugeArray with some very important information ...
                                    !  *       TemporaryStore tstore = new TemporaryStore(hugeArray);
                                    !  *       hugeArray = null;
                                    !  *       bar((long[])tstore.getAndClear());
                                    !  *     }
                                    !  *  </pre>
                                    !  *
                                    !  *  When control flow is transferred to <code>bar()</code>,
                                    !  *  <code>foo()</code> will hold no more references to the array
                                    !  *  and so it can be garbage collected in <code>bar()</code>.
                                    !  * 
                                    !  */
                                    ! public class TemporaryStore {
                                    ! 
                                    !    private Object storedObject;
                                    ! 
                                    !    /**
                                    !     *  Temporarily store the given object for passing it to a
                                    !     *  different method.  <p/>
                                    !     *
                                    !     *  The method constructing a new TemporaryStore object should
                                    !     *  clear all other references to the stored object, so that
                                    !     *  this TemporaryStore is the only object referencing it.
                                    !     *
                                    !     *  @param storedObject  the object to store temporarily
                                    !     *
                                    !     */
                                    !    public TemporaryStore(Object storedObject) {
                                    !       this.storedObject = storedObject;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Return the stored object after clearing the reference to it.
                                    !     *  <p/>
                                    !     *
                                    !     *  When the user of this class followed the recommendations in
                                    !     *  the documentation of @link{TemporaryStore(Object)}, the
                                    !     *  returned reference will be the only reference to the stored
                                    !     *  object after this method returns. If the returned reference
                                    !     *  is passed in a method call, the called method will hold the
                                    !     *  only reference to the stored object and can release it by
                                    !     *  nulling the corresponding parameter.
                                    !     *
                                    !     *  @return the object which was passed to the constructor.
                                    !     *
                                    !     */
                                    !    public Object getAndClear() {
                                    !       Object rc = this.storedObject;
                                    !       this.storedObject = null;
                                    !       return rc;
                                    !    }
                                    ! }
                                    --- 1,132 ----
                                    ! /* gnu.classpath.tools.gjdoc.TemporaryStore
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.gjdoc;
                                    ! 
                                    ! /**
                                    !  *  Useful for passing big objects that are no longer needed by the
                                    !  *  calling method, reducing memory usage.  <p/>
                                    !  *
                                    !  *  Consider the following problem:
                                    !  *  <pre>
                                    !  *   public class A {
                                    !  *     public static void foo() {
                                    !  *       long[] hugeArray = new long[1000000]; // takes around 8 MB
                                    !  *       // ... fill hugeArray with some information ...
                                    !  *       bar(hugeArray);
                                    !  *       // ... hugeArray is no more required at this point
                                    !  *     }
                                    !  *     public static void bar(long[] arr) {
                                    !  *       // ... process contents of arr ...
                                    !  *       arr = null;
                                    !  *       System.gc();      // NOTE: will not collect arr!
                                    !  *       // ... do something memory-intensive where arr is not needed
                                    !  *     }
                                    !  *  }
                                    !  *  </pre>
                                    !  *
                                    !  *  In method <code>bar()</code>, the array cannot be garbage
                                    !  *  collected because the local variable <code>hugeArray</code> in
                                    !  *  method <code>foo()</code> still holds a reference to the array.
                                    !  *  <p/>
                                    !  *
                                    !  *  When calling <code>bar(new long[1000000]);</code> in
                                    !  *  <code>arr</code> the array <i>can</i> be collected in
                                    !  *  <code>bar()</code>, but that way it can't be initialized in
                                    !  *  <code>foo()</code>. A local variable is needed for
                                    !  *  initialization, but the variable can't be cleared before it is
                                    !  *  passed to <code>bar()</code>!  <p/>
                                    !  *
                                    !  *  <code>TemporaryStore</code> is the solution for this
                                    !  *  dilemma. The modified method <code>foo()</code> which uses a
                                    !  *  <code>TemporaryStore</code> object would look like this:
                                    !  *
                                    !  *  <pre>
                                    !  *     public static void foo() {
                                    !  *       long[] hugeArray = new long[1000000]; // takes around 7 MB
                                    !  *       // ... fill hugeArray with some very important information ...
                                    !  *       TemporaryStore tstore = new TemporaryStore(hugeArray);
                                    !  *       hugeArray = null;
                                    !  *       bar((long[])tstore.getAndClear());
                                    !  *     }
                                    !  *  </pre>
                                    !  *
                                    !  *  When control flow is transferred to <code>bar()</code>,
                                    !  *  <code>foo()</code> will hold no more references to the array
                                    !  *  and so it can be garbage collected in <code>bar()</code>.
                                    !  *
                                    !  */
                                    ! public class TemporaryStore {
                                    ! 
                                    !    private Object storedObject;
                                    ! 
                                    !    /**
                                    !     *  Temporarily store the given object for passing it to a
                                    !     *  different method.  <p/>
                                    !     *
                                    !     *  The method constructing a new TemporaryStore object should
                                    !     *  clear all other references to the stored object, so that
                                    !     *  this TemporaryStore is the only object referencing it.
                                    !     *
                                    !     *  @param storedObject  the object to store temporarily
                                    !     *
                                    !     */
                                    !    public TemporaryStore(Object storedObject) {
                                    !       this.storedObject = storedObject;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Return the stored object after clearing the reference to it.
                                    !     *  <p/>
                                    !     *
                                    !     *  When the user of this class followed the recommendations in
                                    !     *  the documentation of @link{TemporaryStore(Object)}, the
                                    !     *  returned reference will be the only reference to the stored
                                    !     *  object after this method returns. If the returned reference
                                    !     *  is passed in a method call, the called method will hold the
                                    !     *  only reference to the stored object and can release it by
                                    !     *  nulling the corresponding parameter.
                                    !     *
                                    !     *  @return the object which was passed to the constructor.
                                    !     *
                                    !     */
                                    !    public Object getAndClear() {
                                    !       Object rc = this.storedObject;
                                    !       this.storedObject = null;
                                    !       return rc;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class ThrowsTagImpl extends Abstr
                                    *** 30,36 ****
                                         private String exceptionName;
                                         private String exceptionComment;
                                      
                                    !    public ThrowsTagImpl(String text, 
                                                              ClassDocImpl contextClass,
                                                              MemberDocImpl contextMember) {
                                            super(text);
                                    --- 47,53 ----
                                         private String exceptionName;
                                         private String exceptionComment;
                                      
                                    !    public ThrowsTagImpl(String text,
                                                              ClassDocImpl contextClass,
                                                              MemberDocImpl contextMember) {
                                            super(text);
                                    *************** public class ThrowsTagImpl extends Abstr
                                    *** 38,51 ****
                                            char[] textarr=text.toCharArray();
                                            int i=0;
                                            for (; i<textarr.length; ++i) {
                                    ! 	 if (!Parser.isWhitespace(textarr[i])) break;
                                            }
                                            for (; i<textarr.length; ++i) {
                                    ! 	 if (Parser.isWhitespace(textarr[i])) {
                                    ! 	    this.exceptionName=new String(textarr,0,i).trim();
                                    ! 	    this.exceptionComment=new String(textarr,i,textarr.length-i).trim();
                                    ! 	    break;
                                    ! 	 }
                                            }
                                            if (null != exceptionName) {
                                               if (contextClass==null) {
                                    --- 55,68 ----
                                            char[] textarr=text.toCharArray();
                                            int i=0;
                                            for (; i<textarr.length; ++i) {
                                    !          if (!Parser.isWhitespace(textarr[i])) break;
                                            }
                                            for (; i<textarr.length; ++i) {
                                    !          if (Parser.isWhitespace(textarr[i])) {
                                    !             this.exceptionName=new String(textarr,0,i).trim();
                                    !             this.exceptionComment=new String(textarr,i,textarr.length-i).trim();
                                    !             break;
                                    !          }
                                            }
                                            if (null != exceptionName) {
                                               if (contextClass==null) {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class Timer {
                                    *** 29,49 ****
                                      
                                         static void shutdown() {
                                            try{
                                    ! 	 if (stopTime==0) return;
                                    ! 	 PrintWriter pw=new PrintWriter(new FileWriter("timer.out"));
                                    ! 	 pw.println("Preparation (driver) took "+(((double)(beforeDocletTime-startTime))/1000.)+" s");
                                    ! 	 pw.println("Generation (doclet) took "+(((double)(stopTime-beforeDocletTime))/1000.)+" s");
                                    ! 	 pw.println("");
                                    ! 	 pw.println("Memory used for documentation tree: "+(memoryUsed/(1024*1024))+" MB");
                                    ! 	 pw.println("Max. heap used for driver: "+((maxDriverHeap<0)?"N/A":((maxDriverHeap/(1024*1024))+" MB")));
                                    ! 	 pw.println("Max. heap used for doclet: "+((maxDocletHeap<0)?"N/A":((maxDocletHeap/(1024*1024))+" MB")));
                                    ! 	 pw.println("");
                                    ! 	 pw.println("TOTAL TIME: "+(((double)(stopTime-startTime))/1000.)+" s");
                                    ! 	 pw.println("TOTAL HEAP: "+((maxDocletHeap<0)?"N/A":(Math.max(maxDocletHeap,maxDriverHeap)/(1024*1024))+" MB"));
                                    ! 	 pw.close();
                                            }
                                            catch (IOException e) {
                                    ! 	 e.printStackTrace();
                                            }
                                         }
                                      
                                    --- 46,66 ----
                                      
                                         static void shutdown() {
                                            try{
                                    !          if (stopTime==0) return;
                                    !          PrintWriter pw=new PrintWriter(new FileWriter("timer.out"));
                                    !          pw.println("Preparation (driver) took "+(((double)(beforeDocletTime-startTime))/1000.)+" s");
                                    !          pw.println("Generation (doclet) took "+(((double)(stopTime-beforeDocletTime))/1000.)+" s");
                                    !          pw.println("");
                                    !          pw.println("Memory used for documentation tree: "+(memoryUsed/(1024*1024))+" MB");
                                    !          pw.println("Max. heap used for driver: "+((maxDriverHeap<0)?"N/A":((maxDriverHeap/(1024*1024))+" MB")));
                                    !          pw.println("Max. heap used for doclet: "+((maxDocletHeap<0)?"N/A":((maxDocletHeap/(1024*1024))+" MB")));
                                    !          pw.println("");
                                    !          pw.println("TOTAL TIME: "+(((double)(stopTime-startTime))/1000.)+" s");
                                    !          pw.println("TOTAL HEAP: "+((maxDocletHeap<0)?"N/A":(Math.max(maxDocletHeap,maxDriverHeap)/(1024*1024))+" MB"));
                                    !          pw.close();
                                            }
                                            catch (IOException e) {
                                    !          e.printStackTrace();
                                            }
                                         }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class TimerDoclet {
                                    *** 27,57 ****
                                         private static Object doclet = null;
                                      
                                         private static long maximumHeap = -1;
                                    !    
                                         private static Thread memThread;
                                      
                                         private static boolean runMemThread = true;
                                      
                                         private static void init() throws Exception {
                                            if (doclet==null) {
                                    ! 	 doclet=Class.forName("com.sun.tools.doclets.standard.Standard").newInstance();
                                    ! 	 memThread=new Thread() {
                                    ! 	       
                                    ! 	       public void run() {
                                    ! 		  while (runMemThread) {
                                    ! 		     synchronized (TimerDoclet.class) {
                                    ! 			TimerDoclet.maximumHeap=Math.max(TimerDoclet.maximumHeap,
                                    ! 							 Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory());
                                    ! 		     }
                                    ! 		     try { Thread.sleep(50); } catch (Exception e) {}
                                    ! 		  }
                                    ! 	       }
                                    ! 	    };
                                    ! 	 //memThread.start();
                                            }
                                         }
                                      
                                    !    public static boolean validOptions(String[][] options, DocErrorReporter reporter)  
                                            throws Exception {
                                      
                                            init();
                                    --- 44,74 ----
                                         private static Object doclet = null;
                                      
                                         private static long maximumHeap = -1;
                                    ! 
                                         private static Thread memThread;
                                      
                                         private static boolean runMemThread = true;
                                      
                                         private static void init() throws Exception {
                                            if (doclet==null) {
                                    !          doclet=Class.forName("com.sun.tools.doclets.standard.Standard").newInstance();
                                    !          memThread=new Thread() {
                                    ! 
                                    !                public void run() {
                                    !                   while (runMemThread) {
                                    !                      synchronized (TimerDoclet.class) {
                                    !                         TimerDoclet.maximumHeap=Math.max(TimerDoclet.maximumHeap,
                                    !                                                          Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory());
                                    !                      }
                                    !                      try { Thread.sleep(50); } catch (Exception e) {}
                                    !                   }
                                    !                }
                                    !             };
                                    !          //memThread.start();
                                            }
                                         }
                                      
                                    !    public static boolean validOptions(String[][] options, DocErrorReporter reporter)
                                            throws Exception {
                                      
                                            init();
                                    *************** public class TimerDoclet {
                                    *** 67,85 ****
                                         public static boolean start(RootDoc root) throws Exception {
                                            Timer.setBeforeDocletTime();
                                            synchronized (TimerDoclet.class) {
                                    ! 	 Timer.setMaxDriverHeap(maximumHeap);
                                    ! 	 maximumHeap=-1;
                                            }
                                            //new com.sun.tools.doclets.standard.Standard().validOptions(root.options(), root);
                                            //new com.sun.tools.doclets.standard.Standard().start(root);
                                    !       
                                            if (validOptions(root.options(), root)) {
                                    ! 	 doclet.getClass().getMethod("start", new Class[]{RootDoc.class}).invoke(null, new Object[]{root});
                                            }
                                            runMemThread=false;
                                            Timer.setStopTime();
                                            synchronized (TimerDoclet.class) {
                                    ! 	 Timer.setMaxDocletHeap(maximumHeap);
                                            }
                                            Timer.shutdown();
                                            return true;
                                    --- 84,102 ----
                                         public static boolean start(RootDoc root) throws Exception {
                                            Timer.setBeforeDocletTime();
                                            synchronized (TimerDoclet.class) {
                                    !          Timer.setMaxDriverHeap(maximumHeap);
                                    !          maximumHeap=-1;
                                            }
                                            //new com.sun.tools.doclets.standard.Standard().validOptions(root.options(), root);
                                            //new com.sun.tools.doclets.standard.Standard().start(root);
                                    ! 
                                            if (validOptions(root.options(), root)) {
                                    !          doclet.getClass().getMethod("start", new Class[]{RootDoc.class}).invoke(null, new Object[]{root});
                                            }
                                            runMemThread=false;
                                            Timer.setStopTime();
                                            synchronized (TimerDoclet.class) {
                                    !          Timer.setMaxDocletHeap(maximumHeap);
                                            }
                                            Timer.shutdown();
                                            return true;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** public class TypeImpl implements Type, W
                                    *** 44,56 ****
                                         public ClassDoc asClassDoc() {
                                      
                                            if (this instanceof ClassDoc)
                                    ! 	 return ((ClassDocImpl)(ClassDoc)this).getBaseClassDoc();
                                            else
                                    ! 	 return null;
                                         }
                                      
                                         public String typeName() { return typeName; }
                                    !    
                                         public String qualifiedTypeName() { return (packageName!=null)?(packageName+"."+typeName):(typeName); }
                                      
                                         public String dimension() { return dimension; }
                                    --- 61,73 ----
                                         public ClassDoc asClassDoc() {
                                      
                                            if (this instanceof ClassDoc)
                                    !          return ((ClassDocImpl)(ClassDoc)this).getBaseClassDoc();
                                            else
                                    !          return null;
                                         }
                                      
                                         public String typeName() { return typeName; }
                                    ! 
                                         public String qualifiedTypeName() { return (packageName!=null)?(packageName+"."+typeName):(typeName); }
                                      
                                         public String dimension() { return dimension; }
                                    *************** public class TypeImpl implements Type, W
                                    *** 81,87 ****
                                            primitiveNames = Collections.unmodifiableSet(_primitiveNames);
                                         }
                                      
                                    !   public TypeVariable asTypeVariable() 
                                        {
                                          if (this instanceof TypeVariable)
                                            return (TypeVariable) this;
                                    --- 98,104 ----
                                            primitiveNames = Collections.unmodifiableSet(_primitiveNames);
                                         }
                                      
                                    !   public TypeVariable asTypeVariable()
                                        {
                                          if (this instanceof TypeVariable)
                                            return (TypeVariable) this;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    *************** import com.sun.javadoc.TypeVariable;
                                    *** 26,34 ****
                                      
                                      import java.util.List;
                                      
                                    ! public class TypeVariableImpl 
                                        extends TypeImpl
                                    !   implements TypeVariable, WritableType 
                                      {
                                      
                                        /**
                                    --- 43,51 ----
                                      
                                      import java.util.List;
                                      
                                    ! public class TypeVariableImpl
                                        extends TypeImpl
                                    !   implements TypeVariable, WritableType
                                      {
                                      
                                        /**
                                    *************** public class TypeVariableImpl 
                                    *** 50,56 ****
                                         * @param owner the owning program element of the type variable.
                                         */
                                        TypeVariableImpl(String packageName, String typeName, String dimension,
                                    ! 		   ProgramElementDoc owner) 
                                        {
                                          super(packageName, typeName, dimension);
                                          this.owner = owner;
                                    --- 67,73 ----
                                         * @param owner the owning program element of the type variable.
                                         */
                                        TypeVariableImpl(String packageName, String typeName, String dimension,
                                    !                    ProgramElementDoc owner)
                                        {
                                          super(packageName, typeName, dimension);
                                          this.owner = owner;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,27 ****
                                    ! /* gnu.classpath.tools.gjdoc.WritableType
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.gjdoc;
                                    ! 
                                    ! public interface WritableType extends Cloneable {
                                    ! 
                                    !    public void setDimension(String dimension);
                                    !    public Object clone() throws CloneNotSupportedException;
                                    ! }
                                    --- 1,44 ----
                                    ! /* gnu.classpath.tools.gjdoc.WritableType
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.gjdoc;
                                    ! 
                                    ! public interface WritableType extends Cloneable {
                                    ! 
                                    !    public void setDimension(String dimension);
                                    !    public Object clone() throws CloneNotSupportedException;
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    *************** class AdditionExpression
                                    *** 56,62 ****
                                      
                                            if (Type.STRING == leftValue.getType()
                                                || Type.STRING == rightValue.getType()) {
                                    !          
                                               return new ConstantString(leftValue.asObject().toString()
                                                                         + rightValue.asObject().toString());
                                            }
                                    --- 73,79 ----
                                      
                                            if (Type.STRING == leftValue.getType()
                                                || Type.STRING == rightValue.getType()) {
                                    ! 
                                               return new ConstantString(leftValue.asObject().toString()
                                                                         + rightValue.asObject().toString());
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    *************** class ConditionalExpression
                                    *** 26,32 ****
                                         private Expression condition;
                                         private Expression ifTrue;
                                         private Expression ifFalse;
                                    !    
                                         ConditionalExpression(Expression condition, Expression ifTrue, Expression ifFalse)
                                         {
                                            this.condition = condition;
                                    --- 43,49 ----
                                         private Expression condition;
                                         private Expression ifTrue;
                                         private Expression ifFalse;
                                    ! 
                                         ConditionalExpression(Expression condition, Expression ifTrue, Expression ifFalse)
                                         {
                                            this.condition = condition;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    *************** class ConstantChar
                                    *** 35,41 ****
                                               case 'f': value = '\f'; break;
                                               case 'r': value = '\r'; break;
                                               case 'b': value = '\b'; break;
                                    !          case 'u': 
                                                  {
                                                     String stringVal = stringValue.substring(3, stringValue.length() - 1);
                                                     /*
                                    --- 52,58 ----
                                               case 'f': value = '\f'; break;
                                               case 'r': value = '\r'; break;
                                               case 'b': value = '\b'; break;
                                    !          case 'u':
                                                  {
                                                     String stringVal = stringValue.substring(3, stringValue.length() - 1);
                                                     /*
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    *************** class ConstantString
                                    *** 55,58 ****
                                            return value;
                                         }
                                      }
                                    - 
                                    --- 72,74 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    *************** public class Evaluator
                                    *** 50,56 ****
                                          *  invalid, uses unsupported syntax constructs (e.g. method calls,
                                          *  array access) or references unknown static fields.
                                          */
                                    !    public static Object evaluate(String expression, 
                                                                       Set visitedFields,
                                                                       EvaluatorEnvironment environment)
                                            throws IllegalExpressionException
                                    --- 67,73 ----
                                          *  invalid, uses unsupported syntax constructs (e.g. method calls,
                                          *  array access) or references unknown static fields.
                                          */
                                    !    public static Object evaluate(String expression,
                                                                       Set visitedFields,
                                                                       EvaluatorEnvironment environment)
                                            throws IllegalExpressionException
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.gjdoc.expr;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java	Thu Oct 22 15:41:32 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Creator
                                    *** 146,152 ****
                                            {
                                              if (filename.charAt(filename.length() - 1) != '/')
                                                filename += '/';
                                    ! 	writeFile(isDirectory, null, filename, verbose);
                                            }
                                          else
                                            {
                                    --- 146,152 ----
                                            {
                                              if (filename.charAt(filename.length() - 1) != '/')
                                                filename += '/';
                                    !         writeFile(isDirectory, null, filename, verbose);
                                            }
                                          else
                                            {
                                    *************** public class Creator
                                    *** 218,228 ****
                                           * as Sun's jar tool */
                                          if (parameters.wantManifest)
                                            {
                                    ! 	  Attributes attr = manifest.getMainAttributes();
                                    ! 	  if (attr.getValue(Attributes.Name.MANIFEST_VERSION) == null)
                                    ! 	      attr.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
                                    ! 	  attr.putValue("Created-By", System.getProperty("java.version") +
                                    ! 		  " (" + System.getProperty("java.vendor") + ")");
                                            }
                                          outputStream = new JarOutputStream(os, manifest);
                                          // FIXME: this sets the method too late for the manifest file.
                                    --- 218,228 ----
                                           * as Sun's jar tool */
                                          if (parameters.wantManifest)
                                            {
                                    !           Attributes attr = manifest.getMainAttributes();
                                    !           if (attr.getValue(Attributes.Name.MANIFEST_VERSION) == null)
                                    !               attr.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
                                    !           attr.putValue("Created-By", System.getProperty("java.version") +
                                    !                   " (" + System.getProperty("java.vendor") + ")");
                                            }
                                          outputStream = new JarOutputStream(os, manifest);
                                          // FIXME: this sets the method too late for the manifest file.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java	Wed Oct 22 18:19:29 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Indexer
                                    *** 89,95 ****
                                              result.append(fileName);
                                              // Any line ending will do.
                                              result.append('\n');
                                    ! 	for (String s : entries)
                                                {
                                                  result.append(s);
                                                  result.append('\n');
                                    --- 89,95 ----
                                              result.append(fileName);
                                              // Any line ending will do.
                                              result.append('\n');
                                    !         for (String s : entries)
                                                {
                                                  result.append(s);
                                                  result.append('\n');
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Main
                                    *** 238,244 ****
                                          {
                                            public void parsed(String argument) throws OptionException
                                            {
                                    ! 	readNamesFromStdin = true;
                                            }
                                          });
                                          p.add(grp);
                                    --- 238,244 ----
                                          {
                                            public void parsed(String argument) throws OptionException
                                            {
                                    !         readNamesFromStdin = true;
                                            }
                                          });
                                          p.add(grp);
                                    *************** public class Main
                                    *** 251,264 ****
                                          String line;
                                          try
                                            {
                                    ! 	BufferedReader br
                                    ! 	  = new BufferedReader(new InputStreamReader(System.in));
                                    ! 	while ((line = br.readLine()) != null)
                                    ! 	  entries.add(new Entry(new File(line)));
                                            }
                                          catch (IOException _)
                                            {
                                    ! 	// Ignore.
                                            }
                                        }
                                      
                                    --- 251,264 ----
                                          String line;
                                          try
                                            {
                                    !         BufferedReader br
                                    !           = new BufferedReader(new InputStreamReader(System.in));
                                    !         while ((line = br.readLine()) != null)
                                    !           entries.add(new Entry(new File(line)));
                                            }
                                          catch (IOException _)
                                            {
                                    !         // Ignore.
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Updater
                                    *** 72,78 ****
                                      
                                          // Write all the new entries to a temporary file.
                                          File tmpFile = File.createTempFile("jarcopy", null,
                                    ! 				       parameters.archiveFile.getParentFile());
                                          OutputStream os = new BufferedOutputStream(new FileOutputStream(tmpFile));
                                          writeCommandLineEntries(parameters, os);
                                      
                                    --- 72,78 ----
                                      
                                          // Write all the new entries to a temporary file.
                                          File tmpFile = File.createTempFile("jarcopy", null,
                                    !                                        parameters.archiveFile.getParentFile());
                                          OutputStream os = new BufferedOutputStream(new FileOutputStream(tmpFile));
                                          writeCommandLineEntries(parameters, os);
                                      
                                    *************** public class Updater
                                    *** 90,97 ****
                                          close();
                                          if (!tmpFile.renameTo(parameters.archiveFile))
                                            {
                                    ! 	  throw new IOException("Couldn't rename new JAR file " + tmpFile +
                                    ! 				"to " + parameters.archiveFile);
                                            }
                                        }
                                      
                                    --- 90,97 ----
                                          close();
                                          if (!tmpFile.renameTo(parameters.archiveFile))
                                            {
                                    !           throw new IOException("Couldn't rename new JAR file " + tmpFile +
                                    !                                 "to " + parameters.archiveFile);
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarVerifier.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarVerifier.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarVerifier.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jarsigner/JarVerifier.java	Tue Jan 11 19:46:05 2011
                                    *************** public class JarVerifier
                                    *** 243,249 ****
                                         * <p>
                                         * This method, uses the contents of the corresponding <code>.SF</code> file
                                         * to compute and verify the hashes of the manifest entries in the JAR file.
                                    !    * 
                                         * @param alias the name of the signature file; i.e. the name to use for both
                                         *          the .SF and .DSA files.
                                         * @return <code>true</code> if all the entries in the corresponding
                                    --- 243,249 ----
                                         * <p>
                                         * This method, uses the contents of the corresponding <code>.SF</code> file
                                         * to compute and verify the hashes of the manifest entries in the JAR file.
                                    !    *
                                         * @param alias the name of the signature file; i.e. the name to use for both
                                         *          the .SF and .DSA files.
                                         * @return <code>true</code> if all the entries in the corresponding
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Main
                                    *** 166,172 ****
                                        /**
                                         * Read the command line arguments setting the tool's parameters in
                                         * preparation for the user desired action.
                                    !    * 
                                         * @param args an array of options (strings).
                                         * @throws Exception if an exception occurs during the process.
                                         */
                                    --- 166,172 ----
                                        /**
                                         * Read the command line arguments setting the tool's parameters in
                                         * preparation for the user desired action.
                                    !    *
                                         * @param args an array of options (strings).
                                         * @throws Exception if an exception occurs during the process.
                                         */
                                    *************** public class Main
                                    *** 223,229 ****
                                         * <p>
                                         * Depending on the result of processing the command line arguments, this
                                         * handler may be one for signing the jar, or verifying it.
                                    !    * 
                                         * @throws Exception if an exception occurs during the process.
                                         */
                                        private void start() throws Exception
                                    --- 223,229 ----
                                         * <p>
                                         * Depending on the result of processing the command line arguments, this
                                         * handler may be one for signing the jar, or verifying it.
                                    !    *
                                         * @throws Exception if an exception occurs during the process.
                                         */
                                        private void start() throws Exception
                                    *************** public class Main
                                    *** 271,277 ****
                                         * <p>
                                         * Common parameters are those which are allowed in both signing and
                                         * verification modes.
                                    !    * 
                                         * @throws InstantiationException if a security provider class name is
                                         *           specified but that class name is that of either an interface or
                                         *           an abstract class.
                                    --- 271,277 ----
                                         * <p>
                                         * Common parameters are those which are allowed in both signing and
                                         * verification modes.
                                    !    *
                                         * @throws InstantiationException if a security provider class name is
                                         *           specified but that class name is that of either an interface or
                                         *           an abstract class.
                                    *************** public class Main
                                    *** 342,348 ****
                                         * After processing the command line arguments, this method is invoked to
                                         * process the parameters which may have been encountered among the actual
                                         * arguments, and which are specific to the signing action of the tool.
                                    !    * 
                                         * @throws KeyStoreException if no implementation of the designated (or
                                         *           default type) of a key store is availabe.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                    --- 342,348 ----
                                         * After processing the command line arguments, this method is invoked to
                                         * process the parameters which may have been encountered among the actual
                                         * arguments, and which are specific to the signing action of the tool.
                                    !    *
                                         * @throws KeyStoreException if no implementation of the designated (or
                                         *           default type) of a key store is availabe.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                    *************** public class Main
                                    *** 524,530 ****
                                         * If no installed providers were found, this method falls back on the GNU
                                         * provider, by-passing the Security search mechanism. The default console
                                         * callback handler implementation is {@link ConsoleCallbackHandler}.
                                    !    * 
                                         * @return a console-based {@link CallbackHandler}.
                                         */
                                        protected CallbackHandler getCallbackHandler()
                                    --- 524,530 ----
                                         * If no installed providers were found, this method falls back on the GNU
                                         * provider, by-passing the Security search mechanism. The default console
                                         * callback handler implementation is {@link ConsoleCallbackHandler}.
                                    !    *
                                         * @return a console-based {@link CallbackHandler}.
                                         */
                                        protected CallbackHandler getCallbackHandler()
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jarsigner/SFHelper.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jarsigner/SFHelper.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/jarsigner/SFHelper.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/jarsigner/SFHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public class SFHelper
                                    *** 122,128 ****
                                         * Writes the contents of the <code>.SF</code> file to the designated JAR
                                         * output stream. Line-endings are platform-independent and consist of the
                                         * 2-codepoint sequence <code>0x0D</code> and <code>0x0A</code>.
                                    !    * 
                                         * @param jar the JAR output stream to write a <code>.SF</code> file to.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                         */
                                    --- 122,128 ----
                                         * Writes the contents of the <code>.SF</code> file to the designated JAR
                                         * output stream. Line-endings are platform-independent and consist of the
                                         * 2-codepoint sequence <code>0x0D</code> and <code>0x0A</code>.
                                    !    *
                                         * @param jar the JAR output stream to write a <code>.SF</code> file to.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                         */
                                    *************** public class SFHelper
                                    *** 153,159 ****
                                         *   contentType     ContentType,
                                         *   content     [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL
                                         * }
                                    !    * 
                                         * ContentType ::= OBJECT IDENTIFIER
                                         * </pre>
                                         * <p>
                                    --- 153,159 ----
                                         *   contentType     ContentType,
                                         *   content     [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL
                                         * }
                                    !    *
                                         * ContentType ::= OBJECT IDENTIFIER
                                         * </pre>
                                         * <p>
                                    *************** public class SFHelper
                                    *** 171,179 ****
                                         *   crls         [1] IMPLICIT CertificateRevocationLists OPTIONAL,
                                         *   signerInfos      SignerInfos
                                         * }
                                    !    * 
                                         * DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
                                    !    * 
                                         * SignerInfos ::= SET OF SignerInfo
                                         * </pre>
                                         * <p>
                                    --- 171,179 ----
                                         *   crls         [1] IMPLICIT CertificateRevocationLists OPTIONAL,
                                         *   signerInfos      SignerInfos
                                         * }
                                    !    *
                                         * DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
                                    !    *
                                         * SignerInfos ::= SET OF SignerInfo
                                         * </pre>
                                         * <p>
                                    *************** public class SFHelper
                                    *** 189,206 ****
                                         *   encryptedDigest               EncryptedDigest,
                                         *   unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
                                         * }
                                    !    * 
                                         * EncryptedDigest ::= OCTET STRING
                                         * </pre>
                                    !    * 
                                         * @param jar the JAR output stream to write a <code>.DSA</code> file to.
                                         * @param signerKey the private key to sign with.
                                         * @param certificates the possibly null signer certificate chain.
                                         * @param internalSF if <code>true</code> then include the .SF file contents
                                    !    * in the signed .DSA file; otherwise don't. 
                                         * @throws IOException if an I/O related exception occurs during the process.
                                    !    * @throws CRLException 
                                    !    * @throws CertificateEncodingException 
                                         */
                                        void writeDSA(JarOutputStream jar, PrivateKey signerKey,
                                                      Certificate[] certificates, boolean internalSF)
                                    --- 189,206 ----
                                         *   encryptedDigest               EncryptedDigest,
                                         *   unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
                                         * }
                                    !    *
                                         * EncryptedDigest ::= OCTET STRING
                                         * </pre>
                                    !    *
                                         * @param jar the JAR output stream to write a <code>.DSA</code> file to.
                                         * @param signerKey the private key to sign with.
                                         * @param certificates the possibly null signer certificate chain.
                                         * @param internalSF if <code>true</code> then include the .SF file contents
                                    !    * in the signed .DSA file; otherwise don't.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                    !    * @throws CRLException
                                    !    * @throws CertificateEncodingException
                                         */
                                        void writeDSA(JarOutputStream jar, PrivateKey signerKey,
                                                      Certificate[] certificates, boolean internalSF)
                                    *************** public class SFHelper
                                    *** 335,341 ****
                                        {
                                          if (this.state != STARTED)
                                            throw new IllegalStateException(Messages.getString("SFHelper.10")); //$NON-NLS-1$
                                    !       
                                          String name = entry.getName();
                                          InputStream jeis = jar.getInputStream(entry);
                                          String hash = util.hashStream(jeis);
                                    --- 335,341 ----
                                        {
                                          if (this.state != STARTED)
                                            throw new IllegalStateException(Messages.getString("SFHelper.10")); //$NON-NLS-1$
                                    ! 
                                          String name = entry.getName();
                                          InputStream jeis = jar.getInputStream(entry);
                                          String hash = util.hashStream(jeis);
                                    *************** public class SFHelper
                                    *** 396,402 ****
                                        /**
                                         * Given an X.509 certificate this method returns the string representation of
                                         * the Issuer Distinguished Name.
                                    !    * 
                                         * @param cert an X.509 certificate.
                                         * @return the string representation of the Issuer's DN.
                                         */
                                    --- 396,402 ----
                                        /**
                                         * Given an X.509 certificate this method returns the string representation of
                                         * the Issuer Distinguished Name.
                                    !    *
                                         * @param cert an X.509 certificate.
                                         * @return the string representation of the Issuer's DN.
                                         */
                                    *************** public class SFHelper
                                    *** 424,430 ****
                                        /**
                                         * Given an X.509 certificate this method returns the string representation of
                                         * the Subject Distinguished Name.
                                    !    * 
                                         * @param cert an X.509 certificate.
                                         * @return the string representation of the Subject's DN.
                                         */
                                    --- 424,430 ----
                                        /**
                                         * Given an X.509 certificate this method returns the string representation of
                                         * the Subject Distinguished Name.
                                    !    *
                                         * @param cert an X.509 certificate.
                                         * @return the string representation of the Subject's DN.
                                         */
                                    *************** public class SFHelper
                                    *** 450,458 ****
                                        }
                                      
                                        /**
                                    !    * Given an X.509 certificate this method returns the end validity date of 
                                         * this certificate.
                                    !    * 
                                         * @param cert an X.509 certificate.
                                         * @return the date when this certificate stops being valid.
                                         */
                                    --- 450,458 ----
                                        }
                                      
                                        /**
                                    !    * Given an X.509 certificate this method returns the end validity date of
                                         * this certificate.
                                    !    *
                                         * @param cert an X.509 certificate.
                                         * @return the date when this certificate stops being valid.
                                         */
                                    *************** public class SFHelper
                                    *** 472,478 ****
                                        /**
                                         * Given an X.509 certificate this method returns the start validity date of
                                         * this certificate.
                                    !    * 
                                         * @param cert an X.509 certificate.
                                         * @return the date when this certificate starts being valid.
                                         */
                                    --- 472,478 ----
                                        /**
                                         * Given an X.509 certificate this method returns the start validity date of
                                         * this certificate.
                                    !    *
                                         * @param cert an X.509 certificate.
                                         * @return the date when this certificate starts being valid.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      /** Java2xhtml.java  Version 0.9
                                       *  Produces an XHTML file from Java source code with syntax highlighting,
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      /** Java2xhtml.java  Version 0.9
                                       *  Produces an XHTML file from Java source code with syntax highlighting,
                                    *************** Free Software Foundation, Inc., 59 Templ
                                    *** 25,31 ****
                                       * NOTE: Common java naming structure is assumed
                                       *       Capitalize the first letter that appears in a class or interface name
                                       *       Use lowercase for the first letter in a method or variable name
                                    !  *       Use only uppercase letters when naming constants 
                                       *
                                       * @version     0.9, March 2003
                                       * @author      Shayne Steele
                                    --- 42,48 ----
                                       * NOTE: Common java naming structure is assumed
                                       *       Capitalize the first letter that appears in a class or interface name
                                       *       Use lowercase for the first letter in a method or variable name
                                    !  *       Use only uppercase letters when naming constants
                                       *
                                       * @version     0.9, March 2003
                                       * @author      Shayne Steele
                                    *************** public class Java2xhtml
                                    *** 70,76 ****
                                          // call the HTMLifier on good input
                                          public static void main(String args[])
                                          {
                                    !         // parse the invokation arguments 
                                              if (args.length < 1 || args.length > 3) // invoked program incorrectly
                                              {
                                                  System.out.println("Java2xhtml Version 0.9 (C) 2005 Free Software Foundation");
                                    --- 87,93 ----
                                          // call the HTMLifier on good input
                                          public static void main(String args[])
                                          {
                                    !         // parse the invokation arguments
                                              if (args.length < 1 || args.length > 3) // invoked program incorrectly
                                              {
                                                  System.out.println("Java2xhtml Version 0.9 (C) 2005 Free Software Foundation");
                                    *************** public class Java2xhtml
                                    *** 123,137 ****
                                                                     " (default false)");
                                                  System.out.println("        hasLineNumbers=boolean" +
                                                                     " (default false)");
                                    !             System.out.println("        hasLineModulusDrawnLines=boolean" + 
                                                                     " (default false)");
                                                  System.out.println("        hasLineModulusCodeBlocks=boolean" +
                                                                     " (default false)");
                                    !             System.out.println("        hasFooter=boolean" + 
                                                                     " (default false)");
                                    !             System.out.println("        hasFooterIcons=boolean" + 
                                                                     " (default false)");
                                    !             System.out.println("        hasFooterDate=boolean" + 
                                                                     " (default true)");
                                                  System.out.println("    NOTE: filename must end with '.prop'");
                                                  System.out.println("    Default [options file] is " +
                                    --- 140,154 ----
                                                                     " (default false)");
                                                  System.out.println("        hasLineNumbers=boolean" +
                                                                     " (default false)");
                                    !             System.out.println("        hasLineModulusDrawnLines=boolean" +
                                                                     " (default false)");
                                                  System.out.println("        hasLineModulusCodeBlocks=boolean" +
                                                                     " (default false)");
                                    !             System.out.println("        hasFooter=boolean" +
                                                                     " (default false)");
                                    !             System.out.println("        hasFooterIcons=boolean" +
                                                                     " (default false)");
                                    !             System.out.println("        hasFooterDate=boolean" +
                                                                     " (default true)");
                                                  System.out.println("    NOTE: filename must end with '.prop'");
                                                  System.out.println("    Default [options file] is " +
                                    *************** public class Java2xhtml
                                    *** 153,159 ****
                                                                     "given options file (options.prop)):");
                                                  System.out.println("    java  Java2xhtml  C:\\HOME options.prop");
                                              }
                                    !         else  
                                              {
                                                  // invoked program correctly, now get command line arguments
                                                  // get the source file name
                                    --- 170,176 ----
                                                                     "given options file (options.prop)):");
                                                  System.out.println("    java  Java2xhtml  C:\\HOME options.prop");
                                              }
                                    !         else
                                              {
                                                  // invoked program correctly, now get command line arguments
                                                  // get the source file name
                                    *************** public class Java2xhtml
                                    *** 161,172 ****
                                                  sourceName = args[0];
                                                  // make sure that the source file exist and if so HTMLify it
                                                  File sourceFilePath = new File(sourceName);
                                    !             if (sourceFilePath.exists())  
                                                  {
                                                      // good pathname so HTMLify it
                                                      // get the default html options file name
                                                      String propertiesFileName = "options.prop";
                                    !                 // create a unique default html file name, 
                                                      // bubba.java -> bubba_java.html
                                                      String htmlFileName = sourceName.replace('.', '_') + ".html";
                                                      if (args.length == 2 || args.length == 3)
                                    --- 178,189 ----
                                                  sourceName = args[0];
                                                  // make sure that the source file exist and if so HTMLify it
                                                  File sourceFilePath = new File(sourceName);
                                    !             if (sourceFilePath.exists())
                                                  {
                                                      // good pathname so HTMLify it
                                                      // get the default html options file name
                                                      String propertiesFileName = "options.prop";
                                    !                 // create a unique default html file name,
                                                      // bubba.java -> bubba_java.html
                                                      String htmlFileName = sourceName.replace('.', '_') + ".html";
                                                      if (args.length == 2 || args.length == 3)
                                    *************** public class Java2xhtml
                                    *** 182,188 ****
                                                              htmlFileName = args[1];
                                                          }
                                                      }
                                    !                 if (args.length == 3) 
                                                      {
                                                          if (args[2].endsWith(".prop"))
                                                          {
                                    --- 199,205 ----
                                                              htmlFileName = args[1];
                                                          }
                                                      }
                                    !                 if (args.length == 3)
                                                      {
                                                          if (args[2].endsWith(".prop"))
                                                          {
                                    *************** public class Java2xhtml
                                    *** 195,201 ****
                                                              htmlFileName = args[2];
                                                          }
                                                      }
                                    !                 new Java2xhtml(propertiesFileName, sourceFilePath, 
                                                                     htmlFileName);
                                                  }
                                                  else // source file does not exist, print message and exit normally
                                    --- 212,218 ----
                                                              htmlFileName = args[2];
                                                          }
                                                      }
                                    !                 new Java2xhtml(propertiesFileName, sourceFilePath,
                                                                     htmlFileName);
                                                  }
                                                  else // source file does not exist, print message and exit normally
                                    *************** public class Java2xhtml
                                    *** 204,213 ****
                                                                         " file or directory");
                                                      System.out.println("Run Java2xHtml without parameters for " +
                                                                         "help");
                                    !             }                 
                                              }
                                          }
                                    !     
                                          // collect various sets of keywords
                                          static Collection keywordCollection;
                                          static Collection primitiveTypeCollection;
                                    --- 221,230 ----
                                                                         " file or directory");
                                                      System.out.println("Run Java2xHtml without parameters for " +
                                                                         "help");
                                    !             }
                                              }
                                          }
                                    ! 
                                          // collect various sets of keywords
                                          static Collection keywordCollection;
                                          static Collection primitiveTypeCollection;
                                    *************** public class Java2xhtml
                                    *** 233,253 ****
                                          boolean hasExternalStyleSheet = true;
                                          String externalStyleSheetName = "style.css";
                                      
                                    !     static 
                                          {
                                    !         // collection type is Hashset for unique elements and fast retieval 
                                              String keywordArray[] =
                                                  {
                                    !                 "abstract", "default",      "if",           "private",      
                                                      "do",       "implements",   "protected",    "throws",
                                                      "break",    "import",       "public",       "transient",
                                                      "else",     "instanceof",   "return",       "try",
                                                      "case",     "extends",      "throw",        "static",
                                    !                 "catch",    "final",        "interface",    "while",       
                                                      "volatile", "finally",      "super",        "synchronized",
                                                      "class",    "native",       "switch",       "package",
                                                      "const",    "for",          "new",          "goto",
                                    !                 "continue", "this",         "assert",       "strictfp"       
                                                  };
                                              keywordCollection = new HashSet(Arrays.asList(keywordArray));
                                              String primitiveTypeArray[] =
                                    --- 250,270 ----
                                          boolean hasExternalStyleSheet = true;
                                          String externalStyleSheetName = "style.css";
                                      
                                    !     static
                                          {
                                    !         // collection type is Hashset for unique elements and fast retieval
                                              String keywordArray[] =
                                                  {
                                    !                 "abstract", "default",      "if",           "private",
                                                      "do",       "implements",   "protected",    "throws",
                                                      "break",    "import",       "public",       "transient",
                                                      "else",     "instanceof",   "return",       "try",
                                                      "case",     "extends",      "throw",        "static",
                                    !                 "catch",    "final",        "interface",    "while",
                                                      "volatile", "finally",      "super",        "synchronized",
                                                      "class",    "native",       "switch",       "package",
                                                      "const",    "for",          "new",          "goto",
                                    !                 "continue", "this",         "assert",       "strictfp"
                                                  };
                                              keywordCollection = new HashSet(Arrays.asList(keywordArray));
                                              String primitiveTypeArray[] =
                                    *************** public class Java2xhtml
                                    *** 255,284 ****
                                                      "boolean",  "char",     "byte",         "short",        "int",
                                                      "long",     "float",    "double",       "void"
                                                  };
                                    !         primitiveTypeCollection = 
                                                  new HashSet(Arrays.asList(primitiveTypeArray));
                                              String primitiveLiteralArray[]=
                                                  {
                                                      "false", "null", "true"
                                                  };
                                    !         primitiveLiteralCollection = 
                                                  new HashSet(Arrays.asList(primitiveLiteralArray));
                                              String javadocTagArray[]=
                                                  {
                                    !                 "see", "author", "version", "param", "return", "exception", 
                                    !                 "deprecated", "throws", "link", "since", "serial", 
                                                      "serialField","serialData", "beaninfo"
                                                  };
                                              javadocTagCollection = new HashSet(Arrays.asList(javadocTagArray));
                                          }
                                    !     
                                          public Java2xhtml()
                                          {
                                          }
                                      
                                    !     // create the various keyword collections 
                                          // parse the html options file
                                    !     Java2xhtml(String propertiesFileName, File sourceFilePath, 
                                                     String htmlFileName)
                                          {
                                              // get html properties (use defaults if necessary)
                                    --- 272,301 ----
                                                      "boolean",  "char",     "byte",         "short",        "int",
                                                      "long",     "float",    "double",       "void"
                                                  };
                                    !         primitiveTypeCollection =
                                                  new HashSet(Arrays.asList(primitiveTypeArray));
                                              String primitiveLiteralArray[]=
                                                  {
                                                      "false", "null", "true"
                                                  };
                                    !         primitiveLiteralCollection =
                                                  new HashSet(Arrays.asList(primitiveLiteralArray));
                                              String javadocTagArray[]=
                                                  {
                                    !                 "see", "author", "version", "param", "return", "exception",
                                    !                 "deprecated", "throws", "link", "since", "serial",
                                                      "serialField","serialData", "beaninfo"
                                                  };
                                              javadocTagCollection = new HashSet(Arrays.asList(javadocTagArray));
                                          }
                                    ! 
                                          public Java2xhtml()
                                          {
                                          }
                                      
                                    !     // create the various keyword collections
                                          // parse the html options file
                                    !     Java2xhtml(String propertiesFileName, File sourceFilePath,
                                                     String htmlFileName)
                                          {
                                              // get html properties (use defaults if necessary)
                                    *************** public class Java2xhtml
                                    *** 286,308 ****
                                              if (propertiesFilePath.exists())
                                              {
                                                  // html properies file exist try parsing it
                                    !             try 
                                                  {
                                    !                 InputStream propertiesFile = 
                                                          new FileInputStream(propertiesFileName);
                                                      Properties htmlProperties = new Properties();
                                                      htmlProperties.load(propertiesFile);
                                                      propertiesFile.close();
                                                      setProperties(htmlProperties);
                                                  }
                                    !             catch (IOException exception) 
                                                  {
                                    !                 System.out.println(exception);  
                                                  }
                                              }
                                              if (sourceFilePath.isFile())
                                              {
                                    !             // process the file 
                                                  processFile(sourceFilePath, htmlFileName);
                                              }
                                              else if (sourceFilePath.isDirectory())
                                    --- 303,325 ----
                                              if (propertiesFilePath.exists())
                                              {
                                                  // html properies file exist try parsing it
                                    !             try
                                                  {
                                    !                 InputStream propertiesFile =
                                                          new FileInputStream(propertiesFileName);
                                                      Properties htmlProperties = new Properties();
                                                      htmlProperties.load(propertiesFile);
                                                      propertiesFile.close();
                                                      setProperties(htmlProperties);
                                                  }
                                    !             catch (IOException exception)
                                                  {
                                    !                 System.out.println(exception);
                                                  }
                                              }
                                              if (sourceFilePath.isFile())
                                              {
                                    !             // process the file
                                                  processFile(sourceFilePath, htmlFileName);
                                              }
                                              else if (sourceFilePath.isDirectory())
                                    *************** public class Java2xhtml
                                    *** 313,320 ****
                                                  {
                                                      if (((sourceFilePathArray[i]).getName()).endsWith(".java"))
                                                      {
                                    !                     // process each file that ends in .java 
                                    !                     // create a unique default html file name, 
                                                          // bubba.java -> bubba_java.html
                                                          htmlFileName = ((sourceFilePathArray[i]).getName()).replace(
                                                              '.', '_') + ".html";
                                    --- 330,337 ----
                                                  {
                                                      if (((sourceFilePathArray[i]).getName()).endsWith(".java"))
                                                      {
                                    !                     // process each file that ends in .java
                                    !                     // create a unique default html file name,
                                                          // bubba.java -> bubba_java.html
                                                          htmlFileName = ((sourceFilePathArray[i]).getName()).replace(
                                                              '.', '_') + ".html";
                                    *************** public class Java2xhtml
                                    *** 327,333 ****
                                          public void setProperties(Properties htmlProperties)
                                          {
                                              hasLegend
                                    !             = Boolean.valueOf(htmlProperties.getProperty("hasLegend", 
                                                                                               "false")).booleanValue();
                                              extraIndentation
                                                  = Integer.parseInt(htmlProperties.getProperty("extraIndentation", "0"));
                                    --- 344,350 ----
                                          public void setProperties(Properties htmlProperties)
                                          {
                                              hasLegend
                                    !             = Boolean.valueOf(htmlProperties.getProperty("hasLegend",
                                                                                               "false")).booleanValue();
                                              extraIndentation
                                                  = Integer.parseInt(htmlProperties.getProperty("extraIndentation", "0"));
                                    *************** public class Java2xhtml
                                    *** 374,395 ****
                                              externalStyleSheetName
                                                  = htmlProperties.getProperty("externalStyleSheetName", "style.css");
                                          }
                                    !     
                                    !     
                                          // read the file and put it into a stringbuffer
                                          void processFile(File sourceFilePath, String htmlFileName)
                                          {
                                    !         // open the file, copy it to a Stringbuffer , process into an 
                                              // HTMLified String and convert result into an HTML file
                                              try
                                              {
                                    !             BufferedReader sourceReader = 
                                                      new BufferedReader(new FileReader(sourceFilePath));
                                                  StringBuffer bufferIn = new StringBuffer();
                                                  int readInInt = 0;
                                                  char presentChar = 0;
                                                  // copy file into a Stringbuffer
                                    !             while (readInInt != -1) // -1 value means end of stream/file 
                                                  {
                                                      // put the file into a Stringbuffer
                                                      readInInt= sourceReader.read();
                                    --- 391,412 ----
                                              externalStyleSheetName
                                                  = htmlProperties.getProperty("externalStyleSheetName", "style.css");
                                          }
                                    ! 
                                    ! 
                                          // read the file and put it into a stringbuffer
                                          void processFile(File sourceFilePath, String htmlFileName)
                                          {
                                    !         // open the file, copy it to a Stringbuffer , process into an
                                              // HTMLified String and convert result into an HTML file
                                              try
                                              {
                                    !             BufferedReader sourceReader =
                                                      new BufferedReader(new FileReader(sourceFilePath));
                                                  StringBuffer bufferIn = new StringBuffer();
                                                  int readInInt = 0;
                                                  char presentChar = 0;
                                                  // copy file into a Stringbuffer
                                    !             while (readInInt != -1) // -1 value means end of stream/file
                                                  {
                                                      // put the file into a Stringbuffer
                                                      readInInt= sourceReader.read();
                                    *************** public class Java2xhtml
                                    *** 397,417 ****
                                                      bufferIn.append(presentChar);
                                                  }
                                                  sourceReader.close();
                                    !             BufferedWriter tempBufferedWriter = 
                                                      new BufferedWriter(new FileWriter(htmlFileName));
                                    !             tempBufferedWriter.write(makeHTML(bufferIn, 
                                                                                    sourceFilePath.getName()));
                                    !             tempBufferedWriter.close();     
                                    !             System.out.println(sourceFilePath.getName() + " --> " + 
                                                                     htmlFileName);
                                              }
                                    !         catch (IOException exception) 
                                              {
                                    !             System.out.println(exception);  
                                              }
                                          }
                                    !     
                                    !     // constant 'States' java source code can be in 
                                          public final static class State
                                          {
                                              public final static State TEXT = new State();
                                    --- 414,434 ----
                                                      bufferIn.append(presentChar);
                                                  }
                                                  sourceReader.close();
                                    !             BufferedWriter tempBufferedWriter =
                                                      new BufferedWriter(new FileWriter(htmlFileName));
                                    !             tempBufferedWriter.write(makeHTML(bufferIn,
                                                                                    sourceFilePath.getName()));
                                    !             tempBufferedWriter.close();
                                    !             System.out.println(sourceFilePath.getName() + " --> " +
                                                                     htmlFileName);
                                              }
                                    !         catch (IOException exception)
                                              {
                                    !             System.out.println(exception);
                                              }
                                          }
                                    ! 
                                    !     // constant 'States' java source code can be in
                                          public final static class State
                                          {
                                              public final static State TEXT = new State();
                                    *************** public class Java2xhtml
                                    *** 423,440 ****
                                              public final static State SINGLE_QUOTE = new State();
                                              public final static State TRADITIONAL_COMMENT = new State();
                                              public final static State LINE_COMMENT = new State();
                                    !         
                                    !         // empty constructor 
                                              private State()
                                              {
                                                  // empty body
                                              }
                                          }
                                    !     
                                    !     // Convert java source code StringBufffer into colorized (and tab spaced) 
                                          // HTML String .
                                          // Assumes that Java naming convention is used
                                    !     // Uses a very basic state machine design.   
                                          public String makeHTML(StringBuffer bufferIn, String sourceFileName)
                                          {
                                              int codeLineNumber = 0;
                                    --- 440,457 ----
                                              public final static State SINGLE_QUOTE = new State();
                                              public final static State TRADITIONAL_COMMENT = new State();
                                              public final static State LINE_COMMENT = new State();
                                    ! 
                                    !         // empty constructor
                                              private State()
                                              {
                                                  // empty body
                                              }
                                          }
                                    ! 
                                    !     // Convert java source code StringBufffer into colorized (and tab spaced)
                                          // HTML String .
                                          // Assumes that Java naming convention is used
                                    !     // Uses a very basic state machine design.
                                          public String makeHTML(StringBuffer bufferIn, String sourceFileName)
                                          {
                                              int codeLineNumber = 0;
                                    *************** public class Java2xhtml
                                    *** 450,456 ****
                                              StringBuffer bufferOut = new StringBuffer(8192);
                                              if (!isCodeSnippet)
                                              {
                                    !             bufferOut.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); 
                                                  if (isXHTML_1_1)
                                                  {
                                                      bufferOut.append("<!DOCTYPE html PUBLIC " +
                                    --- 467,473 ----
                                              StringBuffer bufferOut = new StringBuffer(8192);
                                              if (!isCodeSnippet)
                                              {
                                    !             bufferOut.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
                                                  if (isXHTML_1_1)
                                                  {
                                                      bufferOut.append("<!DOCTYPE html PUBLIC " +
                                    *************** public class Java2xhtml
                                    *** 500,506 ****
                                                          bufferOut.append("     {\r\n");
                                                          bufferOut.append("       font-weight: bold;\r\n");
                                                          bufferOut.append("       color: #000000;\r\n");
                                    !                     bufferOut.append("       background-color: "); 
                                                          bufferOut.append("transparent;\r\n");
                                                          bufferOut.append("     }\r\n");
                                                          if (hasLineModulusDrawnLines)
                                    --- 517,523 ----
                                                          bufferOut.append("     {\r\n");
                                                          bufferOut.append("       font-weight: bold;\r\n");
                                                          bufferOut.append("       color: #000000;\r\n");
                                    !                     bufferOut.append("       background-color: ");
                                                          bufferOut.append("transparent;\r\n");
                                                          bufferOut.append("     }\r\n");
                                                          if (hasLineModulusDrawnLines)
                                    *************** public class Java2xhtml
                                    *** 524,530 ****
                                                              bufferOut.append("     {\r\n");
                                                              bufferOut.append("       color: #000000;\r\n");
                                                              bufferOut.append("       background-color: ");
                                    !                         bufferOut.append("#CCCCCC;\r\n"); 
                                                              bufferOut.append("     }\r\n");
                                                          }
                                                      }
                                    --- 541,547 ----
                                                              bufferOut.append("     {\r\n");
                                                              bufferOut.append("       color: #000000;\r\n");
                                                              bufferOut.append("       background-color: ");
                                    !                         bufferOut.append("#CCCCCC;\r\n");
                                                              bufferOut.append("     }\r\n");
                                                          }
                                                      }
                                    *************** public class Java2xhtml
                                    *** 535,546 ****
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + methodStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #0000FF;\r\n"); 
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + variableStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #CC9933;\r\n"); 
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + singleLineCommentStyle + "\r\n");
                                    --- 552,563 ----
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + methodStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #0000FF;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + variableStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #CC9933;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + singleLineCommentStyle + "\r\n");
                                    *************** public class Java2xhtml
                                    *** 550,556 ****
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + traditionalCommentStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #FF0000;\r\n"); 
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + javadocCommentStyle + "\r\n");
                                    --- 567,573 ----
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + traditionalCommentStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #FF0000;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + javadocCommentStyle + "\r\n");
                                    *************** public class Java2xhtml
                                    *** 583,589 ****
                                                      bufferOut.append("       color: #009966;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                    !                 bufferOut.append("    ." + constructorStyle + "\r\n"); 
                                                      bufferOut.append("     {\r\n");
                                                      bufferOut.append("       color: #3300CC;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                    --- 600,606 ----
                                                      bufferOut.append("       color: #009966;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                    !                 bufferOut.append("    ." + constructorStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                                      bufferOut.append("       color: #3300CC;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                    *************** public class Java2xhtml
                                    *** 605,631 ****
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("       font-style: oblique;\r\n");
                                                      bufferOut.append("     }\r\n");
                                    !                 bufferOut.append("    ." + numericLiteralStyle + "\r\n"); 
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #333300;\r\n"); 
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + primitiveLiteralStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #006600;\r\n"); 
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      if (hasFooterIcons)
                                                      {
                                                          bufferOut.append("    ." + iconStyle + "\r\n");
                                                          bufferOut.append("     {\r\n");
                                    !                     bufferOut.append("       border-style: none;\r\n"); 
                                                          bufferOut.append("     }\r\n");
                                                      }
                                                      if (hasTitle)
                                                      {
                                                          bufferOut.append("    #title\r\n");
                                    !                     bufferOut.append("     {\r\n"); 
                                                          bufferOut.append("       text-align: center;\r\n");
                                                          bufferOut.append("       font-size: xx-large;\r\n");
                                                          bufferOut.append("     }\r\n");
                                    --- 622,648 ----
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("       font-style: oblique;\r\n");
                                                      bufferOut.append("     }\r\n");
                                    !                 bufferOut.append("    ." + numericLiteralStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #333300;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      bufferOut.append("    ." + primitiveLiteralStyle + "\r\n");
                                                      bufferOut.append("     {\r\n");
                                    !                 bufferOut.append("       color: #006600;\r\n");
                                                      bufferOut.append("       background-color: transparent;\r\n");
                                                      bufferOut.append("     }\r\n");
                                                      if (hasFooterIcons)
                                                      {
                                                          bufferOut.append("    ." + iconStyle + "\r\n");
                                                          bufferOut.append("     {\r\n");
                                    !                     bufferOut.append("       border-style: none;\r\n");
                                                          bufferOut.append("     }\r\n");
                                                      }
                                                      if (hasTitle)
                                                      {
                                                          bufferOut.append("    #title\r\n");
                                    !                     bufferOut.append("     {\r\n");
                                                          bufferOut.append("       text-align: center;\r\n");
                                                          bufferOut.append("       font-size: xx-large;\r\n");
                                                          bufferOut.append("     }\r\n");
                                    *************** public class Java2xhtml
                                    *** 633,652 ****
                                                      if (hasLegend)
                                                      {
                                                          bufferOut.append("    #legendTitle\r\n");
                                    !                     bufferOut.append("     {\r\n"); 
                                                          bufferOut.append("       text-align: center;\r\n");
                                                          bufferOut.append("       font-size: x-large;\r\n");
                                                          bufferOut.append("     }\r\n");
                                                          bufferOut.append("    #legend\r\n");
                                    !                     bufferOut.append("     {\r\n"); 
                                                          bufferOut.append("       font-family: monospace;\r\n");
                                                          bufferOut.append("       font-size: large;\r\n");
                                                          bufferOut.append("     }\r\n");
                                    !                 }                
                                                      if (hasFooter)
                                                      {
                                                          bufferOut.append("    #footer\r\n");
                                    !                     bufferOut.append("     {\r\n"); 
                                                          bufferOut.append("       font-size: xx-small;\r\n");
                                                          bufferOut.append("     }\r\n");
                                                      }
                                    --- 650,669 ----
                                                      if (hasLegend)
                                                      {
                                                          bufferOut.append("    #legendTitle\r\n");
                                    !                     bufferOut.append("     {\r\n");
                                                          bufferOut.append("       text-align: center;\r\n");
                                                          bufferOut.append("       font-size: x-large;\r\n");
                                                          bufferOut.append("     }\r\n");
                                                          bufferOut.append("    #legend\r\n");
                                    !                     bufferOut.append("     {\r\n");
                                                          bufferOut.append("       font-family: monospace;\r\n");
                                                          bufferOut.append("       font-size: large;\r\n");
                                                          bufferOut.append("     }\r\n");
                                    !                 }
                                                      if (hasFooter)
                                                      {
                                                          bufferOut.append("    #footer\r\n");
                                    !                     bufferOut.append("     {\r\n");
                                                          bufferOut.append("       font-size: xx-small;\r\n");
                                                          bufferOut.append("     }\r\n");
                                                      }
                                    *************** public class Java2xhtml
                                    *** 657,663 ****
                                                  if (hasExternalStyleSheet)
                                                  {
                                                      bufferOut.append("  <link rel=\"stylesheet\" " +
                                    !                                  "type=\"text/css\" href=\"" + 
                                                                       externalStyleSheetName + "\" />\r\n");
                                                  }
                                                  bufferOut.append(" </head>\r\n");
                                    --- 674,680 ----
                                                  if (hasExternalStyleSheet)
                                                  {
                                                      bufferOut.append("  <link rel=\"stylesheet\" " +
                                    !                                  "type=\"text/css\" href=\"" +
                                                                       externalStyleSheetName + "\" />\r\n");
                                                  }
                                                  bufferOut.append(" </head>\r\n");
                                    *************** public class Java2xhtml
                                    *** 737,743 ****
                                                      // add line numbers if desired
                                                      // line numbers are 1 - 9999 then rotate line numbers
                                                      codeLineNumber = (++codeLineNumber)%10000;
                                    !                 if ((lineModulus > 0) && hasLineModulusCodeBlocks && 
                                                          (codeLineNumber%lineModulus == 1))
                                                      {
                                                          if (isNewBlock)
                                    --- 754,760 ----
                                                      // add line numbers if desired
                                                      // line numbers are 1 - 9999 then rotate line numbers
                                                      codeLineNumber = (++codeLineNumber)%10000;
                                    !                 if ((lineModulus > 0) && hasLineModulusCodeBlocks &&
                                                          (codeLineNumber%lineModulus == 1))
                                                      {
                                                          if (isNewBlock)
                                    *************** public class Java2xhtml
                                    *** 745,752 ****
                                                              if ((State.TRADITIONAL_COMMENT == presentState) ||
                                                                  (State.JAVADOC == presentState))
                                                              {
                                    !                                 bufferOut.insert((bufferOut.length() - 
                                    !                                                   ("\r\n").length()), 
                                                                                       "</span>");
                                                              }
                                                              bufferOut.append("</pre>\r\n");
                                    --- 762,769 ----
                                                              if ((State.TRADITIONAL_COMMENT == presentState) ||
                                                                  (State.JAVADOC == presentState))
                                                              {
                                    !                                 bufferOut.insert((bufferOut.length() -
                                    !                                                   ("\r\n").length()),
                                                                                       "</span>");
                                                              }
                                                              bufferOut.append("</pre>\r\n");
                                    *************** public class Java2xhtml
                                    *** 800,806 ****
                                                                           bufferIn.charAt(presentIndex))) ||
                                                                          (bufferIn.charAt(presentIndex) == '\t')))
                                                                  {
                                    !                                 // for each tab, insert tabSize spaces 
                                                                      if (bufferIn.charAt(presentIndex) == '\t')
                                                                      {
                                                                          for (int i = 0; i < tabSize; i++)
                                    --- 817,823 ----
                                                                           bufferIn.charAt(presentIndex))) ||
                                                                          (bufferIn.charAt(presentIndex) == '\t')))
                                                                  {
                                    !                                 // for each tab, insert tabSize spaces
                                                                      if (bufferIn.charAt(presentIndex) == '\t')
                                                                      {
                                                                          for (int i = 0; i < tabSize; i++)
                                    *************** public class Java2xhtml
                                    *** 825,831 ****
                                                                      }
                                                                      presentIndex++;
                                                                  }
                                    !                             // check if line is empty 
                                                                  // (no printable characters on line)
                                                                  if ((presentIndex == (bufferIn.length() - 1)) ||
                                                                      (Character.isWhitespace(bufferIn.charAt(
                                    --- 842,848 ----
                                                                      }
                                                                      presentIndex++;
                                                                  }
                                    !                             // check if line is empty
                                                                  // (no printable characters on line)
                                                                  if ((presentIndex == (bufferIn.length() - 1)) ||
                                                                      (Character.isWhitespace(bufferIn.charAt(
                                    *************** public class Java2xhtml
                                    *** 836,853 ****
                                                                  // draw the line
                                                                  if (spaceLength > 1)
                                                                  {
                                    !                                 bufferOut.insert((bufferOut.length() - 
                                                                                        spaceLength), "<span class=" +
                                                                                       "\"modulusLineStyle\">");
                                    !                                 bufferOut.insert((bufferOut.length() - 
                                                                                        (" ").length()), "</span>");
                                                                  }
                                                                  spaceLength = 0;
                                                              }
                                                          }
                                    !                     else 
                                                          {
                                    !                         // line numbers are in lineNumberColor 
                                                              bufferOut.append("<span class=\"" + lineNumberStyle + "\">");
                                                              bufferOut.append(codeLineNumber);
                                                              bufferOut.append(":</span> ");
                                    --- 853,870 ----
                                                                  // draw the line
                                                                  if (spaceLength > 1)
                                                                  {
                                    !                                 bufferOut.insert((bufferOut.length() -
                                                                                        spaceLength), "<span class=" +
                                                                                       "\"modulusLineStyle\">");
                                    !                                 bufferOut.insert((bufferOut.length() -
                                                                                        (" ").length()), "</span>");
                                                                  }
                                                                  spaceLength = 0;
                                                              }
                                                          }
                                    !                     else
                                                          {
                                    !                         // line numbers are in lineNumberColor
                                                              bufferOut.append("<span class=\"" + lineNumberStyle + "\">");
                                                              bufferOut.append(codeLineNumber);
                                                              bufferOut.append(":</span> ");
                                    *************** public class Java2xhtml
                                    *** 866,892 ****
                                                      bufferOut.append(presentChar);
                                                      identifierLength++;
                                                      continue; // keep adding characters until identifier is done
                                    !             } 
                                                  if (identifierLength > 0)
                                                  {
                                                      // identifier
                                    !                 qualifiedIdentifierLength = 
                                                          qualifiedIdentifierLength + identifierLength;
                                                      if (bufferIn.charAt(presentIndex) == '.')
                                                      {
                                    !                     // qualified identifier 
                                                          bufferOut.append(presentChar);
                                                          qualifiedIdentifierLength++;
                                                          identifierLength = 0;
                                                          continue;  // keep adding characters to qualified identifier
                                                      }
                                    !                 String identifier = 
                                    !                     bufferOut.substring(bufferOut.length() - 
                                                                              identifierLength);
                                                      if ((State.PARAM_VARIABLE == presentState))
                                                      {
                                                          // any identifier after a param in a javadoc is assumed to
                                    !                     // be a variable 
                                                          bufferOut.insert(bufferOut.length() -
                                                                           qualifiedIdentifierLength,
                                                                           "<span class=\"" + variableStyle + "\">");
                                    --- 883,909 ----
                                                      bufferOut.append(presentChar);
                                                      identifierLength++;
                                                      continue; // keep adding characters until identifier is done
                                    !             }
                                                  if (identifierLength > 0)
                                                  {
                                                      // identifier
                                    !                 qualifiedIdentifierLength =
                                                          qualifiedIdentifierLength + identifierLength;
                                                      if (bufferIn.charAt(presentIndex) == '.')
                                                      {
                                    !                     // qualified identifier
                                                          bufferOut.append(presentChar);
                                                          qualifiedIdentifierLength++;
                                                          identifierLength = 0;
                                                          continue;  // keep adding characters to qualified identifier
                                                      }
                                    !                 String identifier =
                                    !                     bufferOut.substring(bufferOut.length() -
                                                                              identifierLength);
                                                      if ((State.PARAM_VARIABLE == presentState))
                                                      {
                                                          // any identifier after a param in a javadoc is assumed to
                                    !                     // be a variable
                                                          bufferOut.insert(bufferOut.length() -
                                                                           qualifiedIdentifierLength,
                                                                           "<span class=\"" + variableStyle + "\">");
                                    *************** public class Java2xhtml
                                    *** 895,903 ****
                                                      }
                                                      else if (State.JAVADOC == presentState)
                                                      {
                                    !                     // in javadoc state 
                                                          if ((javadocTagCollection.contains(identifier)) &&
                                    !                         (bufferIn.charAt(presentIndex - 
                                                                               (identifierLength + 1)) == '@'))
                                                          {
                                                              // identifier is a javadocTag
                                    --- 912,920 ----
                                                      }
                                                      else if (State.JAVADOC == presentState)
                                                      {
                                    !                     // in javadoc state
                                                          if ((javadocTagCollection.contains(identifier)) &&
                                    !                         (bufferIn.charAt(presentIndex -
                                                                               (identifierLength + 1)) == '@'))
                                                          {
                                                              // identifier is a javadocTag
                                    *************** public class Java2xhtml
                                    *** 907,913 ****
                                                              if (("param").equals(identifier))
                                                              {
                                                                  // any identifier after a param is assumed to
                                    !                             // be a variable, get into a state to do this 
                                                                  presentState = State.PARAM_VARIABLE;
                                                              }
                                                          }
                                    --- 924,930 ----
                                                              if (("param").equals(identifier))
                                                              {
                                                                  // any identifier after a param is assumed to
                                    !                             // be a variable, get into a state to do this
                                                                  presentState = State.PARAM_VARIABLE;
                                                              }
                                                          }
                                    *************** public class Java2xhtml
                                    *** 915,921 ****
                                                      else if (State.IMPORT_NAME == presentState)
                                                      {
                                                          // import identifier
                                    !                     bufferOut.insert(bufferOut.length() - 
                                                                           qualifiedIdentifierLength,
                                                                           "<span class=\"" + importNameStyle + "\">");
                                                          bufferOut.append("</span>");
                                    --- 932,938 ----
                                                      else if (State.IMPORT_NAME == presentState)
                                                      {
                                                          // import identifier
                                    !                     bufferOut.insert(bufferOut.length() -
                                                                           qualifiedIdentifierLength,
                                                                           "<span class=\"" + importNameStyle + "\">");
                                                          bufferOut.append("</span>");
                                    *************** public class Java2xhtml
                                    *** 924,930 ****
                                                      else if (State.PACKAGE_NAME == presentState)
                                                      {
                                                          // package identifier
                                    !                     bufferOut.insert(bufferOut.length() - 
                                                                           qualifiedIdentifierLength,
                                                                           "<span class=\"" + packageNameStyle + "\">");
                                                          bufferOut.append("</span>");
                                    --- 941,947 ----
                                                      else if (State.PACKAGE_NAME == presentState)
                                                      {
                                                          // package identifier
                                    !                     bufferOut.insert(bufferOut.length() -
                                                                           qualifiedIdentifierLength,
                                                                           "<span class=\"" + packageNameStyle + "\">");
                                                          bufferOut.append("</span>");
                                    *************** public class Java2xhtml
                                    *** 934,960 ****
                                                      {
                                                          if (keywordCollection.contains(identifier))
                                                          {
                                    !                         // identifier is a keyword 
                                    !                         bufferOut.insert(bufferOut.length() - 
                                                                               qualifiedIdentifierLength,
                                                                               "<span class=\"" + keywordStyle + "\">");
                                                              bufferOut.append("</span>");
                                                              if (("import").equals(identifier))
                                                              {
                                    !                             // anything after an import in text mode must be 
                                                                  // an import name, so enter state to process this
                                                                  presentState = State.IMPORT_NAME;
                                                              }
                                                              else if (("package").equals(identifier))
                                                              {
                                    !                             // anything after an package in text mode must be 
                                                                  // an package name, so enter state to process this
                                                                  presentState = State.PACKAGE_NAME;
                                                              }
                                                          }
                                                          else if (primitiveTypeCollection.contains(identifier))
                                                          {
                                    !                         // identifier is a primitive type  
                                                              bufferOut.insert(bufferOut.length() -
                                                                               qualifiedIdentifierLength,
                                                                               "<span class=\"" + primitiveTypeStyle + "\">");
                                    --- 951,977 ----
                                                      {
                                                          if (keywordCollection.contains(identifier))
                                                          {
                                    !                         // identifier is a keyword
                                    !                         bufferOut.insert(bufferOut.length() -
                                                                               qualifiedIdentifierLength,
                                                                               "<span class=\"" + keywordStyle + "\">");
                                                              bufferOut.append("</span>");
                                                              if (("import").equals(identifier))
                                                              {
                                    !                             // anything after an import in text mode must be
                                                                  // an import name, so enter state to process this
                                                                  presentState = State.IMPORT_NAME;
                                                              }
                                                              else if (("package").equals(identifier))
                                                              {
                                    !                             // anything after an package in text mode must be
                                                                  // an package name, so enter state to process this
                                                                  presentState = State.PACKAGE_NAME;
                                                              }
                                                          }
                                                          else if (primitiveTypeCollection.contains(identifier))
                                                          {
                                    !                         // identifier is a primitive type
                                                              bufferOut.insert(bufferOut.length() -
                                                                               qualifiedIdentifierLength,
                                                                               "<span class=\"" + primitiveTypeStyle + "\">");
                                    *************** public class Java2xhtml
                                    *** 965,978 ****
                                                          {
                                                              // identifier is a constant
                                                              bufferOut.insert(bufferOut.length() -
                                    !                                          qualifiedIdentifierLength, 
                                                                               "<span class=\"" + constantStyle + "\">");
                                                              bufferOut.append("</span>");
                                                          }
                                                          else if (Character.isUpperCase(identifier.charAt(0)))
                                                          {
                                                              // identifier is a constructor or non-primitive type
                                    !                         // eat white space 
                                                              saveIndex = presentIndex;
                                                              while (Character.isWhitespace(
                                                                         bufferIn.charAt(saveIndex++)))
                                    --- 982,995 ----
                                                          {
                                                              // identifier is a constant
                                                              bufferOut.insert(bufferOut.length() -
                                    !                                          qualifiedIdentifierLength,
                                                                               "<span class=\"" + constantStyle + "\">");
                                                              bufferOut.append("</span>");
                                                          }
                                                          else if (Character.isUpperCase(identifier.charAt(0)))
                                                          {
                                                              // identifier is a constructor or non-primitive type
                                    !                         // eat white space
                                                              saveIndex = presentIndex;
                                                              while (Character.isWhitespace(
                                                                         bufferIn.charAt(saveIndex++)))
                                    *************** public class Java2xhtml
                                    *** 989,998 ****
                                                              }
                                                              else
                                                              {
                                    !                             // identifier is a non-primitive type 
                                                                  bufferOut.insert(bufferOut.length() -
                                                                                   qualifiedIdentifierLength,
                                    !                                              "<span class=" + 
                                                                                   "\"" + nonPrimitiveTypeStyle + "\">");
                                                                  bufferOut.append("</span>");
                                                              }
                                    --- 1006,1015 ----
                                                              }
                                                              else
                                                              {
                                    !                             // identifier is a non-primitive type
                                                                  bufferOut.insert(bufferOut.length() -
                                                                                   qualifiedIdentifierLength,
                                    !                                              "<span class=" +
                                                                                   "\"" + nonPrimitiveTypeStyle + "\">");
                                                                  bufferOut.append("</span>");
                                                              }
                                    *************** public class Java2xhtml
                                    *** 1012,1044 ****
                                                              // identifier is a method
                                                              if (bufferIn.charAt(saveIndex) == '(')
                                                              {
                                    !                             bufferOut.insert(bufferOut.length() - 
                                    !                                              qualifiedIdentifierLength, 
                                                                                   "<span class=\"" + methodStyle + "\">");
                                    !                             bufferOut.append("</span>");                 
                                                              }
                                                              else if (bufferIn.charAt(saveIndex) == ',')
                                                              {
                                                                  // comma seperated variables
                                    !                             bufferOut.insert(bufferOut.length() - 
                                    !                                              qualifiedIdentifierLength, 
                                                                                   "<span class=\"" + variableStyle + "\">");
                                    !                             bufferOut.append("</span>"); 
                                                              }
                                                              else
                                                              {
                                                                  // a variable
                                                                  // take care of cases such as array[index].variable
                                    !                             if (bufferIn.charAt(presentIndex - 
                                    !                                                 (qualifiedIdentifierLength 
                                                                                       + 1)) == '.')
                                                                  {
                                                                      qualifiedIdentifierLength++;
                                                                  }
                                    !                             bufferOut.insert(bufferOut.length() - 
                                    !                                              qualifiedIdentifierLength, 
                                                                                   "<span class=\"" + variableStyle + "\">");
                                    !                             bufferOut.append("</span>");                        
                                                              }
                                                          }
                                                          else
                                    --- 1029,1061 ----
                                                              // identifier is a method
                                                              if (bufferIn.charAt(saveIndex) == '(')
                                                              {
                                    !                             bufferOut.insert(bufferOut.length() -
                                    !                                              qualifiedIdentifierLength,
                                                                                   "<span class=\"" + methodStyle + "\">");
                                    !                             bufferOut.append("</span>");
                                                              }
                                                              else if (bufferIn.charAt(saveIndex) == ',')
                                                              {
                                                                  // comma seperated variables
                                    !                             bufferOut.insert(bufferOut.length() -
                                    !                                              qualifiedIdentifierLength,
                                                                                   "<span class=\"" + variableStyle + "\">");
                                    !                             bufferOut.append("</span>");
                                                              }
                                                              else
                                                              {
                                                                  // a variable
                                                                  // take care of cases such as array[index].variable
                                    !                             if (bufferIn.charAt(presentIndex -
                                    !                                                 (qualifiedIdentifierLength
                                                                                       + 1)) == '.')
                                                                  {
                                                                      qualifiedIdentifierLength++;
                                                                  }
                                    !                             bufferOut.insert(bufferOut.length() -
                                    !                                              qualifiedIdentifierLength,
                                                                                   "<span class=\"" + variableStyle + "\">");
                                    !                             bufferOut.append("</span>");
                                                              }
                                                          }
                                                          else
                                    *************** public class Java2xhtml
                                    *** 1052,1068 ****
                                                                  bufferOut.append("</span>");
                                                              }
                                                              // a numeric literal
                                    !                         else 
                                                              {
                                    !                             if (((presentIndex - 
                                    !                                   (qualifiedIdentifierLength + 1)) > 0) && 
                                    !                                 (bufferIn.charAt(presentIndex - 
                                                                           (qualifiedIdentifierLength + 1)) == '.'))
                                                                  {
                                                                      qualifiedIdentifierLength++;
                                                                  }
                                    !                             bufferOut.insert(bufferOut.length() - 
                                    !                                              qualifiedIdentifierLength, 
                                                                                   "<span class=" +
                                                                                   "\"" + numericLiteralStyle + "\">");
                                                                  bufferOut.append("</span>");
                                    --- 1069,1085 ----
                                                                  bufferOut.append("</span>");
                                                              }
                                                              // a numeric literal
                                    !                         else
                                                              {
                                    !                             if (((presentIndex -
                                    !                                   (qualifiedIdentifierLength + 1)) > 0) &&
                                    !                                 (bufferIn.charAt(presentIndex -
                                                                           (qualifiedIdentifierLength + 1)) == '.'))
                                                                  {
                                                                      qualifiedIdentifierLength++;
                                                                  }
                                    !                             bufferOut.insert(bufferOut.length() -
                                    !                                              qualifiedIdentifierLength,
                                                                                   "<span class=" +
                                                                                   "\"" + numericLiteralStyle + "\">");
                                                                  bufferOut.append("</span>");
                                    *************** public class Java2xhtml
                                    *** 1072,1078 ****
                                                      qualifiedIdentifierLength = 0;
                                                      identifierLength = 0;
                                                  }
                                    !             // process characters NOT in identifiers 
                                                  switch (presentChar)
                                                  {
                                                      case '&': //ampersand
                                    --- 1089,1095 ----
                                                      qualifiedIdentifierLength = 0;
                                                      identifierLength = 0;
                                                  }
                                    !             // process characters NOT in identifiers
                                                  switch (presentChar)
                                                  {
                                                      case '&': //ampersand
                                    *************** public class Java2xhtml
                                    *** 1091,1097 ****
                                                              presentState = State.DOUBLE_QUOTE;
                                                              bufferOut.insert(bufferOut.length()-(""").length(),
                                                                               "<span class=\"" + doubleQuoteStyle + "\">");
                                    !                     }   
                                                          else if (State.DOUBLE_QUOTE == presentState)
                                                          {
                                                              presentState = State.TEXT;
                                    --- 1108,1114 ----
                                                              presentState = State.DOUBLE_QUOTE;
                                                              bufferOut.insert(bufferOut.length()-(""").length(),
                                                                               "<span class=\"" + doubleQuoteStyle + "\">");
                                    !                     }
                                                          else if (State.DOUBLE_QUOTE == presentState)
                                                          {
                                                              presentState = State.TEXT;
                                    *************** public class Java2xhtml
                                    *** 1103,1109 ****
                                                          if (State.TEXT == presentState)
                                                          {
                                                              presentState = State.SINGLE_QUOTE;
                                    !                         bufferOut.insert(bufferOut.length() - ("\'").length(), 
                                                                               "<span class=\"" + singleQuoteStyle + "\">");
                                                          }
                                                          else if (State.SINGLE_QUOTE == presentState)
                                    --- 1120,1126 ----
                                                          if (State.TEXT == presentState)
                                                          {
                                                              presentState = State.SINGLE_QUOTE;
                                    !                         bufferOut.insert(bufferOut.length() - ("\'").length(),
                                                                               "<span class=\"" + singleQuoteStyle + "\">");
                                                          }
                                                          else if (State.SINGLE_QUOTE == presentState)
                                    *************** public class Java2xhtml
                                    *** 1114,1150 ****
                                                          break;
                                                      case '\\': // backslash
                                                          bufferOut.append("\\");
                                    !                     if ((State.DOUBLE_QUOTE == presentState) || 
                                                               (State.SINGLE_QUOTE == presentState))
                                                          {
                                    !                         // treat as a character escape sequence 
                                                              bufferOut.append(bufferIn.charAt(++presentIndex));
                                                          }
                                                          break;
                                                      case '\t': // tab
                                                          // replace tabs with tabsize number of spaces
                                    !                     for (int i = 0; i < tabSize; i++) 
                                                          {
                                                              bufferOut.append(' ');
                                                          }
                                                          break;
                                                      case '*': // star
                                                          bufferOut.append("*");
                                    !                     if ((State.TEXT ==  presentState) && 
                                                              (bufferIn.charAt(presentIndex - 1) == '/'))
                                                          {
                                                              if (((bufferIn.length() - 1) > presentIndex)  &&
                                                                  (bufferIn.charAt(presentIndex + 1) == '*'))
                                                              {
                                                                  presentState = State.JAVADOC;
                                    !                             bufferOut.insert(bufferOut.length() - 
                                                                                   ("/*").length(), "<span class=" +
                                                                                   "\"" + javadocCommentStyle + "\">");
                                                              }
                                                              else
                                    !                         {                        
                                                                  presentState = State.TRADITIONAL_COMMENT;
                                    !                             bufferOut.insert(bufferOut.length() - 
                                                                                   ("/*").length(), "<span class=" +
                                                                                   "\"" + traditionalCommentStyle + "\">");
                                                              }
                                    --- 1131,1167 ----
                                                          break;
                                                      case '\\': // backslash
                                                          bufferOut.append("\\");
                                    !                     if ((State.DOUBLE_QUOTE == presentState) ||
                                                               (State.SINGLE_QUOTE == presentState))
                                                          {
                                    !                         // treat as a character escape sequence
                                                              bufferOut.append(bufferIn.charAt(++presentIndex));
                                                          }
                                                          break;
                                                      case '\t': // tab
                                                          // replace tabs with tabsize number of spaces
                                    !                     for (int i = 0; i < tabSize; i++)
                                                          {
                                                              bufferOut.append(' ');
                                                          }
                                                          break;
                                                      case '*': // star
                                                          bufferOut.append("*");
                                    !                     if ((State.TEXT ==  presentState) &&
                                                              (bufferIn.charAt(presentIndex - 1) == '/'))
                                                          {
                                                              if (((bufferIn.length() - 1) > presentIndex)  &&
                                                                  (bufferIn.charAt(presentIndex + 1) == '*'))
                                                              {
                                                                  presentState = State.JAVADOC;
                                    !                             bufferOut.insert(bufferOut.length() -
                                                                                   ("/*").length(), "<span class=" +
                                                                                   "\"" + javadocCommentStyle + "\">");
                                                              }
                                                              else
                                    !                         {
                                                                  presentState = State.TRADITIONAL_COMMENT;
                                    !                             bufferOut.insert(bufferOut.length() -
                                                                                   ("/*").length(), "<span class=" +
                                                                                   "\"" + traditionalCommentStyle + "\">");
                                                              }
                                    *************** public class Java2xhtml
                                    *** 1152,1182 ****
                                                          break;
                                                      case '/': // foward slash
                                                          bufferOut.append("/");
                                    !                     if (((State.TRADITIONAL_COMMENT == presentState) || 
                                                               (State.JAVADOC == presentState)) &&
                                                              (bufferIn.charAt(presentIndex - 1) == '*'))
                                                          {
                                                              bufferOut.append("</span>");
                                                              presentState = State.TEXT;
                                                          }
                                    !                     if ((State.TEXT == presentState) && 
                                                              (presentIndex > 0)  &&
                                                              (bufferIn.charAt(presentIndex - 1) == '/'))
                                    !                     {   
                                    !                         bufferOut.insert(bufferOut.length() - ("//").length(), 
                                    !                                          "<span class=" + 
                                                                               "\"" + singleLineCommentStyle + "\">");
                                                              presentState = State.LINE_COMMENT;
                                    !                     } 
                                                          break;
                                                      case '\r': // carriage return
                                    !                     // fall through  
                                                      case '\n': // line feed
                                                          // all HTML lines end in \r\n
                                                          if ((bufferIn.charAt(presentIndex) == '\r') &&
                                                              ((bufferIn.length() - 1) > presentIndex)  &&
                                                              (bufferIn.charAt(presentIndex + 1) == '\n'))
                                    !                     {    
                                                              ++presentIndex;
                                                          }
                                                          // end single line comments
                                    --- 1169,1199 ----
                                                          break;
                                                      case '/': // foward slash
                                                          bufferOut.append("/");
                                    !                     if (((State.TRADITIONAL_COMMENT == presentState) ||
                                                               (State.JAVADOC == presentState)) &&
                                                              (bufferIn.charAt(presentIndex - 1) == '*'))
                                                          {
                                                              bufferOut.append("</span>");
                                                              presentState = State.TEXT;
                                                          }
                                    !                     if ((State.TEXT == presentState) &&
                                                              (presentIndex > 0)  &&
                                                              (bufferIn.charAt(presentIndex - 1) == '/'))
                                    !                     {
                                    !                         bufferOut.insert(bufferOut.length() - ("//").length(),
                                    !                                          "<span class=" +
                                                                               "\"" + singleLineCommentStyle + "\">");
                                                              presentState = State.LINE_COMMENT;
                                    !                     }
                                                          break;
                                                      case '\r': // carriage return
                                    !                     // fall through
                                                      case '\n': // line feed
                                                          // all HTML lines end in \r\n
                                                          if ((bufferIn.charAt(presentIndex) == '\r') &&
                                                              ((bufferIn.length() - 1) > presentIndex)  &&
                                                              (bufferIn.charAt(presentIndex + 1) == '\n'))
                                    !                     {
                                                              ++presentIndex;
                                                          }
                                                          // end single line comments
                                    *************** public class Java2xhtml
                                    *** 1185,1192 ****
                                                              bufferOut.append("</span>");
                                                              presentState = State.TEXT;
                                                          }
                                    !                     // end of block  
                                    !                     if ((lineModulus > 0) && hasLineModulusCodeBlocks && 
                                                              ((codeLineNumber%lineModulus == 0) && !isNewBlock))
                                                          {
                                                              // end multi-line spanning states
                                    --- 1202,1209 ----
                                                              bufferOut.append("</span>");
                                                              presentState = State.TEXT;
                                                          }
                                    !                     // end of block
                                    !                     if ((lineModulus > 0) && hasLineModulusCodeBlocks &&
                                                              ((codeLineNumber%lineModulus == 0) && !isNewBlock))
                                                          {
                                                              // end multi-line spanning states
                                    *************** public class Java2xhtml
                                    *** 1214,1232 ****
                                                          }
                                                          else
                                                          {
                                    !                         // div automatically starts new line 
                                                              bufferOut.append("\r\n");
                                                          }
                                                          isNewLine = true;
                                                          break;
                                                      case 0: // nul character
                                    !                     if ((State.LINE_COMMENT == presentState) && 
                                                              (presentIndex == (bufferIn.length() - 1)))
                                                          {
                                                              bufferOut.append("</span>");
                                                          }
                                                          break;
                                    !                 default:  // everything else 
                                                          bufferOut.append(presentChar);
                                                  }
                                                  qualifiedIdentifierLength = 0;
                                    --- 1231,1249 ----
                                                          }
                                                          else
                                                          {
                                    !                         // div automatically starts new line
                                                              bufferOut.append("\r\n");
                                                          }
                                                          isNewLine = true;
                                                          break;
                                                      case 0: // nul character
                                    !                     if ((State.LINE_COMMENT == presentState) &&
                                                              (presentIndex == (bufferIn.length() - 1)))
                                                          {
                                                              bufferOut.append("</span>");
                                                          }
                                                          break;
                                    !                 default:  // everything else
                                                          bufferOut.append(presentChar);
                                                  }
                                                  qualifiedIdentifierLength = 0;
                                    *************** public class Java2xhtml
                                    *** 1237,1243 ****
                                      
                                              bufferOut.append("</pre>\r\n");
                                              // end block early if no more source code
                                    !         if ((lineModulus > 0) && hasLineModulusCodeBlocks && !isNewBlock && 
                                                  (codeLineNumber%lineModulus != 0))
                                              {
                                                  bufferOut.append("   </div>\r\n");
                                    --- 1254,1260 ----
                                      
                                              bufferOut.append("</pre>\r\n");
                                              // end block early if no more source code
                                    !         if ((lineModulus > 0) && hasLineModulusCodeBlocks && !isNewBlock &&
                                                  (codeLineNumber%lineModulus != 0))
                                              {
                                                  bufferOut.append("   </div>\r\n");
                                    *************** public class Java2xhtml
                                    *** 1298,1305 ****
                                                      }
                                                      else
                                                      {
                                    !                     bufferOut.append("   This is a valid\r\n"); 
                                    !                     bufferOut.append("   <a href=\"http://"); 
                                                          bufferOut.append("validator.w3.org/check/referer");
                                                          if (isXHTML_1_1)
                                                          {
                                    --- 1315,1322 ----
                                                      }
                                                      else
                                                      {
                                    !                     bufferOut.append("   This is a valid\r\n");
                                    !                     bufferOut.append("   <a href=\"http://");
                                                          bufferOut.append("validator.w3.org/check/referer");
                                                          if (isXHTML_1_1)
                                                          {
                                    *************** public class Java2xhtml
                                    *** 1314,1320 ****
                                                          bufferOut.append("jigsaw.w3.org");
                                                          bufferOut.append("/css-validator/check/referer");
                                                          bufferOut.append("\">CSS</a>\r\n");
                                    !                     bufferOut.append("   document \r\n"); 
                                                          if (hasFooterDate)
                                                          {
                                                              bufferOut.append("   <script type=\"text/javaScript\"");
                                    --- 1331,1337 ----
                                                          bufferOut.append("jigsaw.w3.org");
                                                          bufferOut.append("/css-validator/check/referer");
                                                          bufferOut.append("\">CSS</a>\r\n");
                                    !                     bufferOut.append("   document \r\n");
                                                          if (hasFooterDate)
                                                          {
                                                              bufferOut.append("   <script type=\"text/javaScript\"");
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ClassWrapper
                                    *** 58,78 ****
                                      
                                        ClassWrapper superClass;
                                      
                                    !   ArrayList interfaceClasses;
                                      
                                        // The virtual table for this class.
                                    !   ArrayList vtable;
                                      
                                        // A set of all the bridge method targets we've found.
                                    !   HashSet bridgeTargets;
                                      
                                        // A set of all the method names in this class.
                                    !   HashSet methodNames = new HashSet();
                                      
                                        // This maps a method name + descriptor, e.g. "method()V", to the
                                        // name chosen for the method.  This is used when computing the
                                        // names of bridge method targets.
                                    !   HashMap methodNameMap = new HashMap();
                                      
                                        public ClassWrapper(Main classpath)
                                        {
                                    --- 58,78 ----
                                      
                                        ClassWrapper superClass;
                                      
                                    !   ArrayList<ClassWrapper> interfaceClasses;
                                      
                                        // The virtual table for this class.
                                    !   ArrayList<MethodNode> vtable;
                                      
                                        // A set of all the bridge method targets we've found.
                                    !   HashSet<String> bridgeTargets;
                                      
                                        // A set of all the method names in this class.
                                    !   HashSet<String> methodNames = new HashSet<String>();
                                      
                                        // This maps a method name + descriptor, e.g. "method()V", to the
                                        // name chosen for the method.  This is used when computing the
                                        // names of bridge method targets.
                                    !   HashMap<String,String> methodNameMap = new HashMap<String,String>();
                                      
                                        public ClassWrapper(Main classpath)
                                        {
                                    *************** public class ClassWrapper
                                    *** 81,87 ****
                                      
                                        public boolean hasNativeMethod()
                                        {
                                    !     Iterator i = methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode method = (MethodNode) i.next();
                                    --- 81,87 ----
                                      
                                        public boolean hasNativeMethod()
                                        {
                                    !     Iterator<?> i = methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode method = (MethodNode) i.next();
                                    *************** public class ClassWrapper
                                    *** 104,110 ****
                                          return false;
                                        }
                                      
                                    !   private void linkSupers() throws IOException
                                        {
                                          if (superName == null)
                                            {
                                    --- 104,110 ----
                                          return false;
                                        }
                                      
                                    !   void linkSupers() throws IOException
                                        {
                                          if (superName == null)
                                            {
                                    *************** public class ClassWrapper
                                    *** 115,121 ****
                                            {
                                              superClass = classpath.getClass(superName);
                                              assert interfaceClasses == null;
                                    !         interfaceClasses = new ArrayList();
                                              for (int i = 0; i < interfaces.size(); ++i)
                                                {
                                                  String ifname = (String) interfaces.get(i);
                                    --- 115,121 ----
                                            {
                                              superClass = classpath.getClass(superName);
                                              assert interfaceClasses == null;
                                    !         interfaceClasses = new ArrayList<ClassWrapper>();
                                              for (int i = 0; i < interfaces.size(); ++i)
                                                {
                                                  String ifname = (String) interfaces.get(i);
                                    *************** public class ClassWrapper
                                    *** 131,137 ****
                                        {
                                          for (int i = vtable.size() - 1; i >= 0; --i)
                                            {
                                    !         MethodNode base = (MethodNode) vtable.get(i);
                                              if (MethodHelper.overrides(method, base))
                                                return i;
                                            }
                                    --- 131,137 ----
                                        {
                                          for (int i = vtable.size() - 1; i >= 0; --i)
                                            {
                                    !         MethodNode base = vtable.get(i);
                                              if (MethodHelper.overrides(method, base))
                                                return i;
                                            }
                                    *************** public class ClassWrapper
                                    *** 140,146 ****
                                      
                                        private void addInterfaceMethods(ClassWrapper iface)
                                        {
                                    !     Iterator i = iface.methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode im = (MethodNode) i.next();
                                    --- 140,146 ----
                                      
                                        private void addInterfaceMethods(ClassWrapper iface)
                                        {
                                    !     Iterator<?> i = iface.methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode im = (MethodNode) i.next();
                                    *************** public class ClassWrapper
                                    *** 159,165 ****
                                        {
                                          if (base.interfaceClasses == null)
                                            return;
                                    !     Iterator i = base.interfaceClasses.iterator();
                                          while (i.hasNext())
                                            {
                                              ClassWrapper iface = (ClassWrapper) i.next();
                                    --- 159,165 ----
                                        {
                                          if (base.interfaceClasses == null)
                                            return;
                                    !     Iterator<?> i = base.interfaceClasses.iterator();
                                          while (i.hasNext())
                                            {
                                              ClassWrapper iface = (ClassWrapper) i.next();
                                    *************** public class ClassWrapper
                                    *** 169,175 ****
                                      
                                        private void addLocalMethods()
                                        {
                                    !     Iterator i = methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode meth = (MethodNode) i.next();
                                    --- 169,175 ----
                                      
                                        private void addLocalMethods()
                                        {
                                    !     Iterator<?> i = methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode meth = (MethodNode) i.next();
                                    *************** public class ClassWrapper
                                    *** 191,206 ****
                                          if (superClass != null)
                                            {
                                              superClass.makeVtable();
                                    !         vtable = new ArrayList(superClass.vtable);
                                    !         bridgeTargets = new HashSet(superClass.bridgeTargets);
                                    ! 	methodNameMap = new HashMap(superClass.methodNameMap);
                                            }
                                          else
                                            {
                                              // Object.
                                    !         vtable = new ArrayList();
                                    !         bridgeTargets = new HashSet();
                                    ! 	methodNameMap = new HashMap();
                                            }
                                          addLocalMethods();
                                          addInterfaces(this);
                                    --- 191,206 ----
                                          if (superClass != null)
                                            {
                                              superClass.makeVtable();
                                    !         vtable = new ArrayList<MethodNode>(superClass.vtable);
                                    !         bridgeTargets = new HashSet<String>(superClass.bridgeTargets);
                                    !         methodNameMap = new HashMap<String,String>(superClass.methodNameMap);
                                            }
                                          else
                                            {
                                              // Object.
                                    !         vtable = new ArrayList<MethodNode>();
                                    !         bridgeTargets = new HashSet<String>();
                                    !         methodNameMap = new HashMap<String,String>();
                                            }
                                          addLocalMethods();
                                          addInterfaces(this);
                                    *************** public class ClassWrapper
                                    *** 211,240 ****
                                          // methods by definition override a method from the superclass --
                                          // and we have to consider the superclass' header as an
                                          // unchangeable entity.
                                    !     Iterator i = methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode m = (MethodNode) i.next();
                                              String desc = MethodHelper.getBridgeTarget(m);
                                              if (desc != null)
                                    ! 	  {
                                    ! 	    String sum = m.name + desc;
                                    ! 	    boolean newTarget = bridgeTargets.add(sum);
                                    ! 	    if (newTarget)
                                    ! 	      {
                                    ! 		// Bridge target that is new in this class.
                                    ! 		String cname = this.name;
                                    ! 		int index = cname.lastIndexOf('/');
                                    ! 		cname = cname.substring(index + 1);
                                    ! 		methodNameMap.put(sum, cname + "$" + m.name);
                                    ! 	      }
                                    ! 	  }
                                            }
                                        }
                                      
                                        private void printFields(CniPrintStream out)
                                        {
                                    !     Iterator i = fields.iterator();
                                          ClassWrapper self = superClass;
                                          while (i.hasNext())
                                            {
                                    --- 211,240 ----
                                          // methods by definition override a method from the superclass --
                                          // and we have to consider the superclass' header as an
                                          // unchangeable entity.
                                    !     Iterator<?> i = methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode m = (MethodNode) i.next();
                                              String desc = MethodHelper.getBridgeTarget(m);
                                              if (desc != null)
                                    !           {
                                    !             String sum = m.name + desc;
                                    !             boolean newTarget = bridgeTargets.add(sum);
                                    !             if (newTarget)
                                    !               {
                                    !                 // Bridge target that is new in this class.
                                    !                 String cname = this.name;
                                    !                 int index = cname.lastIndexOf('/');
                                    !                 cname = cname.substring(index + 1);
                                    !                 methodNameMap.put(sum, cname + "$" + m.name);
                                    !               }
                                    !           }
                                            }
                                        }
                                      
                                        private void printFields(CniPrintStream out)
                                        {
                                    !     Iterator<?> i = fields.iterator();
                                          ClassWrapper self = superClass;
                                          while (i.hasNext())
                                            {
                                    *************** public class ClassWrapper
                                    *** 251,280 ****
                                      
                                          // A given method is either static, overrides a super method, or
                                          // is already in vtable order.
                                    !     Iterator i = methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode m = (MethodNode) i.next();
                                    ! 	String nameToUse;
                                    ! 	String sum = m.name + m.desc;
                                    ! 	if (bridgeTargets.contains(sum))
                                    ! 	  nameToUse = (String) methodNameMap.get(sum);
                                    ! 	else
                                    ! 	  nameToUse = m.name;
                                    ! 	methodNameMap.put(sum, nameToUse);
                                              MethodHelper.print(out, m, this, nameToUse);
                                            }
                                        }
                                      
                                    !   private void printTextList(PrintStream out, int what, ArrayList textList)
                                        {
                                          if (textList == null)
                                            return;
                                    !     Iterator i = textList.iterator();
                                          boolean first = true;
                                          while (i.hasNext())
                                            {
                                    !         Text item = (Text) i.next();
                                              if (item.type == what)
                                                {
                                                  if (first)
                                    --- 251,280 ----
                                      
                                          // A given method is either static, overrides a super method, or
                                          // is already in vtable order.
                                    !     Iterator<?> i = methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode m = (MethodNode) i.next();
                                    !         String nameToUse;
                                    !         String sum = m.name + m.desc;
                                    !         if (bridgeTargets.contains(sum))
                                    !           nameToUse = (String) methodNameMap.get(sum);
                                    !         else
                                    !           nameToUse = m.name;
                                    !         methodNameMap.put(sum, nameToUse);
                                              MethodHelper.print(out, m, this, nameToUse);
                                            }
                                        }
                                      
                                    !   private void printTextList(PrintStream out, int what, ArrayList<Text> textList)
                                        {
                                          if (textList == null)
                                            return;
                                    !     Iterator<Text> i = textList.iterator();
                                          boolean first = true;
                                          while (i.hasNext())
                                            {
                                    !         Text item = i.next();
                                              if (item.type == what)
                                                {
                                                  if (first)
                                    *************** public class ClassWrapper
                                    *** 296,302 ****
                                        }
                                      
                                        // This prints the body of a class to a CxxPrintStream.
                                    !   private void printContents(CniPrintStream out, ArrayList textList)
                                            throws IOException
                                        {
                                          printTextList(out, Text.PREPEND, textList);
                                    --- 296,302 ----
                                        }
                                      
                                        // This prints the body of a class to a CxxPrintStream.
                                    !   private void printContents(CniPrintStream out, ArrayList<Text> textList)
                                            throws IOException
                                        {
                                          printTextList(out, Text.PREPEND, textList);
                                    *************** public class ClassWrapper
                                    *** 338,344 ****
                                        {
                                          linkSupers();
                                      
                                    !     ArrayList textList = classpath.getClassTextList(name);
                                      
                                          out.println("// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-");
                                          out.println();
                                    --- 338,344 ----
                                        {
                                          linkSupers();
                                      
                                    !     ArrayList<Text> textList = classpath.getClassTextList(name);
                                      
                                          out.println("// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-");
                                          out.println();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* CniPrintStream.java - PrintStream that emits CNI declarations 
                                       Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                       This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* CniPrintStream.java - PrintStream that emits CNI declarations
                                       Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                       This file is part of GNU Classpath.
                                    *************** public class CniPrintStream
                                    *** 55,61 ****
                                        boolean sawArray;
                                      
                                        // All the classes referenced by this header.
                                    !   HashSet allClasses = new HashSet();
                                      
                                        String[] previousPackage = new String[0];
                                      
                                    --- 55,61 ----
                                        boolean sawArray;
                                      
                                        // All the classes referenced by this header.
                                    !   HashSet<String> allClasses = new HashSet<String>();
                                      
                                        String[] previousPackage = new String[0];
                                      
                                    *************** public class CniPrintStream
                                    *** 125,131 ****
                                          // Add the plain class name; we'll handle it when
                                          // we process namespaces.
                                          allClasses.add(name);
                                    !     return name; 
                                        }
                                      
                                        // Print the C++ form of TYPE, mangling C++ keywords.
                                    --- 125,131 ----
                                          // Add the plain class name; we'll handle it when
                                          // we process namespaces.
                                          allClasses.add(name);
                                    !     return name;
                                        }
                                      
                                        // Print the C++ form of TYPE, mangling C++ keywords.
                                    *************** public class CniPrintStream
                                    *** 142,150 ****
                                            }
                                          if (type.getSort() == Type.OBJECT)
                                            {
                                    ! 	print("::");
                                              printName(getClassName(type));
                                    ! 	print(" *");
                                            }
                                          else
                                            {
                                    --- 142,150 ----
                                            }
                                          if (type.getSort() == Type.OBJECT)
                                            {
                                    !         print("::");
                                              printName(getClassName(type));
                                    !         print(" *");
                                            }
                                          else
                                            {
                                    *************** public class CniPrintStream
                                    *** 166,174 ****
                                          String[] parts = name.split("::|/");
                                          for (int i = 0; i < parts.length; i++)
                                            {
                                    ! 	if (i != 0)
                                    ! 	  out.print("::");
                                    ! 	out.print(Keywords.getCxxName(parts[i]));
                                            }
                                        }
                                      
                                    --- 166,174 ----
                                          String[] parts = name.split("::|/");
                                          for (int i = 0; i < parts.length; i++)
                                            {
                                    !         if (i != 0)
                                    !           out.print("::");
                                    !         out.print(Keywords.getCxxName(parts[i]));
                                            }
                                        }
                                      
                                    *************** public class CniPrintStream
                                    *** 245,251 ****
                                              out.println();
                                            }
                                      
                                    !     String[] classes = (String[]) allClasses.toArray(new String[0]);
                                          Arrays.sort(classes);
                                      
                                          boolean first = true;
                                    --- 245,251 ----
                                              out.println();
                                            }
                                      
                                    !     String[] classes = allClasses.toArray(new String[0]);
                                          Arrays.sort(classes);
                                      
                                          boolean first = true;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java	Tue Oct 12 15:55:12 2010
                                    *************** public class CniStubPrinter
                                    *** 103,109 ****
                                          out.println("#include <" + klass.name + ".h>");
                                          out.println();
                                      
                                    !     Iterator i = klass.methods.iterator();
                                          boolean first = true;
                                          while (i.hasNext())
                                            {
                                    --- 103,109 ----
                                          out.println("#include <" + klass.name + ".h>");
                                          out.println();
                                      
                                    !     Iterator<?> i = klass.methods.iterator();
                                          boolean first = true;
                                          while (i.hasNext())
                                            {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.ArrayList;
                                    *** 49,55 ****
                                      
                                      public class GcjhMain extends Main
                                      {
                                    !   ArrayList commands = new ArrayList();
                                      
                                        public GcjhMain()
                                        {
                                    --- 49,55 ----
                                      
                                      public class GcjhMain extends Main
                                      {
                                    !   ArrayList<Text> commands = new ArrayList<Text>();
                                      
                                        public GcjhMain()
                                        {
                                    *************** public class GcjhMain extends Main
                                    *** 70,102 ****
                                          OptionGroup text = new OptionGroup("CNI text options");
                                          text.add(new Option("add", "Insert TEXT into class body", "TEXT")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	  commands.add(new Text(Text.ADD, arg));
                                    ! 	}
                                            });
                                          text.add(new Option("append", "Append TEXT after class declaration",
                                    ! 			"TEXT")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	  commands.add(new Text(Text.APPEND, arg));
                                    ! 	}
                                            });
                                          text.add(new Option("friend", "Insert TEXT as a 'friend' declaration",
                                    ! 			"TEXT")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	  commands.add(new Text(Text.FRIEND, arg));
                                    ! 	}
                                            });
                                          text.add(new Option("prepend", "Insert TEXT before start of class", "TEXT")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	  commands.add(new Text(Text.PREPEND, arg));
                                    ! 	}
                                            });
                                          result.add(text);
                                      
                                    --- 70,102 ----
                                          OptionGroup text = new OptionGroup("CNI text options");
                                          text.add(new Option("add", "Insert TEXT into class body", "TEXT")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !           commands.add(new Text(Text.ADD, arg));
                                    !         }
                                            });
                                          text.add(new Option("append", "Append TEXT after class declaration",
                                    !                         "TEXT")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !           commands.add(new Text(Text.APPEND, arg));
                                    !         }
                                            });
                                          text.add(new Option("friend", "Insert TEXT as a 'friend' declaration",
                                    !                         "TEXT")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !           commands.add(new Text(Text.FRIEND, arg));
                                    !         }
                                            });
                                          text.add(new Option("prepend", "Insert TEXT before start of class", "TEXT")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !           commands.add(new Text(Text.PREPEND, arg));
                                    !         }
                                            });
                                          result.add(text);
                                      
                                    *************** public class GcjhMain extends Main
                                    *** 105,138 ****
                                          // didn't add them here since they should really be unused by now.
                                          compat.add(new Option("td", "Unused compatibility option", "DIRECTORY")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	}
                                            });
                                          // I don't believe anyone ever used these options.
                                          compat.add(new Option("M", "Unused compatibility option")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	}
                                            });
                                          compat.add(new Option("MM", "Unused compatibility option")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	}
                                            });
                                          compat.add(new Option("MD", "Unused compatibility option")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	}
                                            });
                                          compat.add(new Option("MMD", "Unused compatibility option")
                                            {
                                    ! 	public void parsed(String arg) throws OptionException
                                    ! 	{
                                    ! 	}
                                            });
                                      
                                          result.add(compat);
                                    --- 105,138 ----
                                          // didn't add them here since they should really be unused by now.
                                          compat.add(new Option("td", "Unused compatibility option", "DIRECTORY")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !         }
                                            });
                                          // I don't believe anyone ever used these options.
                                          compat.add(new Option("M", "Unused compatibility option")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !         }
                                            });
                                          compat.add(new Option("MM", "Unused compatibility option")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !         }
                                            });
                                          compat.add(new Option("MD", "Unused compatibility option")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !         }
                                            });
                                          compat.add(new Option("MMD", "Unused compatibility option")
                                            {
                                    !         public void parsed(String arg) throws OptionException
                                    !         {
                                    !         }
                                            });
                                      
                                          result.add(compat);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* JniHelper.java - name mangling and other JNI support 
                                       Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                       This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* JniHelper.java - name mangling and other JNI support
                                       Copyright (C) 2006 Free Software Foundation, Inc.
                                      
                                       This file is part of GNU Classpath.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java	Tue Jan 11 19:46:05 2011
                                    *************** public class JniIncludePrinter
                                    *** 59,69 ****
                                        }
                                      
                                        private void writeFields(ClassWrapper klass, JniPrintStream out)
                                        {
                                          boolean wroteAny = false;
                                          for (; klass != null; klass = klass.superClass)
                                            {
                                    !         Iterator i = klass.fields.iterator();
                                              while (i.hasNext())
                                                {
                                                  FieldNode field = (FieldNode) i.next();
                                    --- 59,71 ----
                                        }
                                      
                                        private void writeFields(ClassWrapper klass, JniPrintStream out)
                                    +     throws IOException
                                        {
                                    +     klass.linkSupers();
                                          boolean wroteAny = false;
                                          for (; klass != null; klass = klass.superClass)
                                            {
                                    !         Iterator<?> i = klass.fields.iterator();
                                              while (i.hasNext())
                                                {
                                                  FieldNode field = (FieldNode) i.next();
                                    *************** public class JniIncludePrinter
                                    *** 73,79 ****
                                                  if (! (field.value instanceof Integer)
                                                      && ! (field.value instanceof Long))
                                                    continue;
                                    !             
                                                  // Note that we don't want to mangle the field name.
                                                  String name = (JniHelper.mangle(klass.name) + "_" + field.name);
                                                  out.print("#undef ");
                                    --- 75,81 ----
                                                  if (! (field.value instanceof Integer)
                                                      && ! (field.value instanceof Long))
                                                    continue;
                                    ! 
                                                  // Note that we don't want to mangle the field name.
                                                  String name = (JniHelper.mangle(klass.name) + "_" + field.name);
                                                  out.print("#undef ");
                                    *************** public class JniIncludePrinter
                                    *** 138,144 ****
                                          out.println("#endif");
                                          out.println();
                                      
                                    !     Iterator i = klass.methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode method = (MethodNode) i.next();
                                    --- 140,146 ----
                                          out.println("#endif");
                                          out.println();
                                      
                                    !     Iterator<?> i = klass.methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode method = (MethodNode) i.next();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java	Tue Oct 12 15:55:12 2010
                                    *************** public class JniPrintStream
                                    *** 54,60 ****
                                        Main classpath;
                                      
                                        // This is used to determine whether a method has an overload.
                                    !   HashMap methodNameMap = new HashMap();
                                      
                                        public JniPrintStream(Main classpath, OutputStream out, ClassWrapper klass)
                                        {
                                    --- 54,60 ----
                                        Main classpath;
                                      
                                        // This is used to determine whether a method has an overload.
                                    !   HashMap<String,Integer> methodNameMap = new HashMap<String,Integer>();
                                      
                                        public JniPrintStream(Main classpath, OutputStream out, ClassWrapper klass)
                                        {
                                    *************** public class JniPrintStream
                                    *** 65,71 ****
                                      
                                        private void computeOverloads(ClassWrapper klass)
                                        {
                                    !     Iterator i = klass.methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode method = (MethodNode) i.next();
                                    --- 65,71 ----
                                      
                                        private void computeOverloads(ClassWrapper klass)
                                        {
                                    !     Iterator<?> i = klass.methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode method = (MethodNode) i.next();
                                    *************** public class JniPrintStream
                                    *** 73,83 ****
                                                continue;
                                              if (methodNameMap.containsKey(method.name))
                                                {
                                    !             Integer val = (Integer) methodNameMap.get(method.name);
                                    !             methodNameMap.put(method.name, new Integer(val.intValue() + 1));
                                                }
                                              else
                                    !           methodNameMap.put(method.name, new Integer(1));
                                            }
                                        }
                                      
                                    --- 73,83 ----
                                                continue;
                                              if (methodNameMap.containsKey(method.name))
                                                {
                                    !             Integer val = methodNameMap.get(method.name);
                                    !             methodNameMap.put(method.name, Integer.valueOf(val.intValue() + 1));
                                                }
                                              else
                                    !           methodNameMap.put(method.name, Integer.valueOf(1));
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java	Fri Mar 16 22:48:27 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java	Tue Jan 11 19:46:05 2011
                                    *************** public class JniStubPrinter
                                    *** 77,85 ****
                                          if (! klass.hasNativeMethod())
                                            return;
                                          String xname = JniHelper.mangle(klass.name);
                                    !     JniPrintStream out 
                                    !       = (JniPrintStream) getPrintStream(klass.name.replace('/', '_') + ".c", 
                                    ! 					klass);
                                          if (out == null)
                                            return;
                                          out.println();
                                    --- 77,85 ----
                                          if (! klass.hasNativeMethod())
                                            return;
                                          String xname = JniHelper.mangle(klass.name);
                                    !     JniPrintStream out
                                    !       = (JniPrintStream) getPrintStream(klass.name.replace('/', '_') + ".c",
                                    !                                         klass);
                                          if (out == null)
                                            return;
                                          out.println();
                                    *************** public class JniStubPrinter
                                    *** 87,93 ****
                                          out.print(klass.name.replace('/', '_'));
                                          out.println(".h>");
                                      
                                    !     Iterator i = klass.methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode method = (MethodNode) i.next();
                                    --- 87,93 ----
                                          out.print(klass.name.replace('/', '_'));
                                          out.println(".h>");
                                      
                                    !     Iterator<?> i = klass.methods.iterator();
                                          while (i.hasNext())
                                            {
                                              MethodNode method = (MethodNode) i.next();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Keywords
                                    *** 44,50 ****
                                      {
                                      /* A sorted list of all C++ keywords.  This is identical to the list
                                         in gcc/java/mangle.c.  */
                                    !   private static final String[] words = 
                                          {
                                            "_Complex",
                                            "__alignof",
                                    --- 44,50 ----
                                      {
                                      /* A sorted list of all C++ keywords.  This is identical to the list
                                         in gcc/java/mangle.c.  */
                                    !   private static final String[] words =
                                          {
                                            "_Complex",
                                            "__alignof",
                                    *************** public class Keywords
                                    *** 152,161 ****
                                            "xor_eq"
                                          };
                                      
                                    !   private static final HashSet keywords;
                                        static
                                          {
                                    !       keywords = new HashSet();
                                            for (int i = 0; i < words.length; ++i)
                                              keywords.add(words[i]);
                                          }
                                    --- 152,161 ----
                                            "xor_eq"
                                          };
                                      
                                    !   private static final HashSet<String> keywords;
                                        static
                                          {
                                    !       keywords = new HashSet<String>();
                                            for (int i = 0; i < words.length; ++i)
                                              keywords.add(words[i]);
                                          }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Main
                                    *** 96,105 ****
                                        boolean force;
                                      
                                        // Map class names to class wrappers.
                                    !   HashMap classMap = new HashMap();
                                      
                                        // Map class names to lists of Text objects.
                                    !   HashMap textMap = new HashMap();
                                      
                                        void readCommandFile(String textFileName) throws OptionException
                                        {
                                    --- 96,105 ----
                                        boolean force;
                                      
                                        // Map class names to class wrappers.
                                    !   HashMap<String,ClassWrapper> classMap = new HashMap<String,ClassWrapper>();
                                      
                                        // Map class names to lists of Text objects.
                                    !   HashMap<String,ArrayList<Text>> textMap = new HashMap<String,ArrayList<Text>>();
                                      
                                        void readCommandFile(String textFileName) throws OptionException
                                        {
                                    *************** public class Main
                                    *** 114,120 ****
                                            }
                                          BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
                                          String currentClass = null;
                                    !     ArrayList currentValues = null;
                                          while (true)
                                            {
                                              String line;
                                    --- 114,120 ----
                                            }
                                          BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
                                          String currentClass = null;
                                    !     ArrayList<Text> currentValues = null;
                                          while (true)
                                            {
                                              String line;
                                    *************** public class Main
                                    *** 142,148 ****
                                                      textMap.put(currentClass, currentValues);
                                                    }
                                                  currentClass = value;
                                    !             currentValues = new ArrayList();
                                                  continue;
                                                }
                                              if (currentClass == null)
                                    --- 142,148 ----
                                                      textMap.put(currentClass, currentValues);
                                                    }
                                                  currentClass = value;
                                    !             currentValues = new ArrayList<Text>();
                                                  continue;
                                                }
                                              if (currentClass == null)
                                    *************** public class Main
                                    *** 165,171 ****
                                            }
                                        }
                                      
                                    !   void scanDirectory(File dir, final HashSet results)
                                        {
                                          File[] files = dir.listFiles(new FileFilter()
                                          {
                                    --- 165,171 ----
                                            }
                                        }
                                      
                                    !   void scanDirectory(File dir, final HashSet<Object> results)
                                        {
                                          File[] files = dir.listFiles(new FileFilter()
                                          {
                                    *************** public class Main
                                    *** 248,254 ****
                                            {
                                              if (cniOrJniSeen && cni)
                                                throw new OptionException("only one of -jni or -cni may be used");
                                    ! 	cniOrJniSeen = true;
                                              cni = false;
                                            }
                                          });
                                    --- 248,254 ----
                                            {
                                              if (cniOrJniSeen && cni)
                                                throw new OptionException("only one of -jni or -cni may be used");
                                    !         cniOrJniSeen = true;
                                              cni = false;
                                            }
                                          });
                                    *************** public class Main
                                    *** 258,264 ****
                                            {
                                              if (cniOrJniSeen && ! cni)
                                                throw new OptionException("only one of -jni or -cni may be used");
                                    ! 	cniOrJniSeen = true;
                                              cni = true;
                                            }
                                          });
                                    --- 258,264 ----
                                            {
                                              if (cniOrJniSeen && ! cni)
                                                throw new OptionException("only one of -jni or -cni may be used");
                                    !         cniOrJniSeen = true;
                                              cni = true;
                                            }
                                          });
                                    *************** public class Main
                                    *** 317,331 ****
                                          return result;
                                        }
                                      
                                    !   private void writeHeaders(HashMap klasses, Printer printer)
                                            throws IOException
                                        {
                                    !     Iterator i = klasses.entrySet().iterator();
                                          while (i.hasNext())
                                            {
                                    ! 	Map.Entry e = (Map.Entry) i.next();
                                    ! 	File file = (File) e.getKey();
                                    !         ClassWrapper klass = (ClassWrapper) e.getValue();
                                              if (verbose)
                                                System.err.println("[writing " + klass + " as " + file + "]");
                                              printer.printClass(file, klass);
                                    --- 317,331 ----
                                          return result;
                                        }
                                      
                                    !   private void writeHeaders(HashMap<File,ClassWrapper> klasses, Printer printer)
                                            throws IOException
                                        {
                                    !     Iterator<Map.Entry<File,ClassWrapper>> i = klasses.entrySet().iterator();
                                          while (i.hasNext())
                                            {
                                    !         Map.Entry<File,ClassWrapper> e = i.next();
                                    !         File file = e.getKey();
                                    !         ClassWrapper klass = e.getValue();
                                              if (verbose)
                                                System.err.println("[writing " + klass + " as " + file + "]");
                                              printer.printClass(file, klass);
                                    *************** public class Main
                                    *** 368,374 ****
                                          // First we load all of the files. That way if
                                          // there are references between the files we will
                                          // be loading the set that the user asked for.
                                    !     HashSet klasses = new HashSet();
                                          if (allDirectory != null)
                                            scanDirectory(new File(allDirectory), klasses);
                                          // Add the command-line arguments. We use the type of
                                    --- 368,374 ----
                                          // First we load all of the files. That way if
                                          // there are references between the files we will
                                          // be loading the set that the user asked for.
                                    !     HashSet<Object> klasses = new HashSet<Object>();
                                          if (allDirectory != null)
                                            scanDirectory(new File(allDirectory), klasses);
                                          // Add the command-line arguments. We use the type of
                                    *************** public class Main
                                    *** 385,406 ****
                                                }
                                            }
                                      
                                    !     Iterator i = klasses.iterator();
                                    !     HashMap results = new HashMap();
                                          while (i.hasNext())
                                            {
                                              // Let user specify either kind of class name or a
                                              // file name.
                                              Object item = i.next();
                                              ClassWrapper klass;
                                    ! 	File filename;
                                              if (item instanceof File)
                                                {
                                                  // Load class from file.
                                                  if (verbose)
                                                    System.err.println("[reading file " + item + "]");
                                                  klass = getClass((File) item);
                                    ! 	    filename = new File(klass.name);
                                                }
                                              else
                                                {
                                    --- 385,406 ----
                                                }
                                            }
                                      
                                    !     Iterator<Object> i = klasses.iterator();
                                    !     HashMap<File,ClassWrapper> results = new HashMap<File,ClassWrapper>();
                                          while (i.hasNext())
                                            {
                                              // Let user specify either kind of class name or a
                                              // file name.
                                              Object item = i.next();
                                              ClassWrapper klass;
                                    !         File filename;
                                              if (item instanceof File)
                                                {
                                                  // Load class from file.
                                                  if (verbose)
                                                    System.err.println("[reading file " + item + "]");
                                                  klass = getClass((File) item);
                                    !             filename = new File(klass.name);
                                                }
                                              else
                                                {
                                    *************** public class Main
                                    *** 408,416 ****
                                                  String className = ((String) item).replace('.', '/');
                                                  if (verbose)
                                                    System.err.println("[reading class " + className + "]");
                                    ! 	    // Use the name the user specified, even if it is
                                    ! 	    // different from the ultimate class name.
                                    ! 	    filename = new File(className);
                                                  klass = getClass(className);
                                                }
                                              results.put(filename, klass);
                                    --- 408,416 ----
                                                  String className = ((String) item).replace('.', '/');
                                                  if (verbose)
                                                    System.err.println("[reading class " + className + "]");
                                    !             // Use the name the user specified, even if it is
                                    !             // different from the ultimate class name.
                                    !             filename = new File(className);
                                                  klass = getClass(className);
                                                }
                                              results.put(filename, klass);
                                    *************** public class Main
                                    *** 419,427 ****
                                          writeHeaders(results, printer);
                                        }
                                      
                                    !   public ArrayList getClassTextList(String name)
                                        {
                                    !     return (ArrayList) textMap.get(name);
                                        }
                                      
                                        private ClassWrapper readClass(InputStream is) throws IOException
                                    --- 419,427 ----
                                          writeHeaders(results, printer);
                                        }
                                      
                                    !   public ArrayList<Text> getClassTextList(String name)
                                        {
                                    !     return textMap.get(name);
                                        }
                                      
                                        private ClassWrapper readClass(InputStream is) throws IOException
                                    *************** public class Main
                                    *** 452,458 ****
                                              URL url = loader.findResource(resource);
                                              if (url == null)
                                                throw new IOException("can't find class file " + resource
                                    ! 				+ " in " + loader);
                                              InputStream is = url.openStream();
                                              ClassWrapper result = readClass(is);
                                              classMap.put(name, result);
                                    --- 452,458 ----
                                              URL url = loader.findResource(resource);
                                              if (url == null)
                                                throw new IOException("can't find class file " + resource
                                    !                                 + " in " + loader);
                                              InputStream is = url.openStream();
                                              ClassWrapper result = readClass(is);
                                              classMap.put(name, result);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java	Tue Jan 11 19:46:05 2011
                                    *************** public class MethodHelper
                                    *** 64,70 ****
                                        {
                                          if ((meth.access & Opcodes.ACC_BRIDGE) == 0)
                                            return null;
                                    !     Iterator i = meth.instructions.iterator();
                                          while (i.hasNext())
                                            {
                                              AbstractInsnNode insn = (AbstractInsnNode) i.next();
                                    --- 64,70 ----
                                        {
                                          if ((meth.access & Opcodes.ACC_BRIDGE) == 0)
                                            return null;
                                    !     Iterator<?> i = meth.instructions.iterator();
                                          while (i.hasNext())
                                            {
                                              AbstractInsnNode insn = (AbstractInsnNode) i.next();
                                    *************** public class MethodHelper
                                    *** 97,103 ****
                                            {
                                              out.print(Type.getReturnType(meth.desc));
                                              out.print(" ");
                                    ! 	out.printName(realMethodName);
                                            }
                                          else
                                            {
                                    --- 97,103 ----
                                            {
                                              out.print(Type.getReturnType(meth.desc));
                                              out.print(" ");
                                    !         out.printName(realMethodName);
                                            }
                                          else
                                            {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java	Tue Oct 12 15:55:12 2010
                                    *************** import java.util.StringTokenizer;
                                    *** 55,65 ****
                                      public class PathOptionGroup
                                          extends OptionGroup
                                      {
                                    !   ArrayList classpath = new ArrayList();
                                      
                                    !   ArrayList bootclasspath = new ArrayList();
                                      
                                    !   void setPath(ArrayList list, String path)
                                        {
                                          list.clear();
                                          StringTokenizer st = new StringTokenizer(path, File.pathSeparator);
                                    --- 55,65 ----
                                      public class PathOptionGroup
                                          extends OptionGroup
                                      {
                                    !   ArrayList<String> classpath = new ArrayList<String>();
                                      
                                    !   ArrayList<String> bootclasspath = new ArrayList<String>();
                                      
                                    !   void setPath(ArrayList<String> list, String path)
                                        {
                                          list.clear();
                                          StringTokenizer st = new StringTokenizer(path, File.pathSeparator);
                                    *************** public class PathOptionGroup
                                    *** 69,75 ****
                                            }
                                        }
                                      
                                    !   void addExtDirs(ArrayList list, String path)
                                        {
                                          StringTokenizer tok = new StringTokenizer(path, File.pathSeparator);
                                          while (tok.hasMoreTokens())
                                    --- 69,75 ----
                                            }
                                        }
                                      
                                    !   void addExtDirs(ArrayList<String> list, String path)
                                        {
                                          StringTokenizer tok = new StringTokenizer(path, File.pathSeparator);
                                          while (tok.hasMoreTokens())
                                    *************** public class PathOptionGroup
                                    *** 133,147 ****
                                      
                                        public URLClassLoader getLoader() throws MalformedURLException
                                        {
                                    !     ArrayList urls = new ArrayList();
                                          classpath.addAll(bootclasspath);
                                    !     Iterator i = classpath.iterator();
                                          while (i.hasNext())
                                            {
                                    !         String f = (String) i.next();
                                              urls.add(new File(f).toURL());
                                            }
                                    !     URL[] urlArray = (URL[]) urls.toArray(new URL[0]);
                                          return new URLClassLoader(urlArray);
                                        }
                                      }
                                    --- 133,147 ----
                                      
                                        public URLClassLoader getLoader() throws MalformedURLException
                                        {
                                    !     ArrayList<URL> urls = new ArrayList<URL>();
                                          classpath.addAll(bootclasspath);
                                    !     Iterator<String> i = classpath.iterator();
                                          while (i.hasNext())
                                            {
                                    !         String f = i.next();
                                              urls.add(new File(f).toURL());
                                            }
                                    !     URL[] urlArray = urls.toArray(new URL[0]);
                                          return new URLClassLoader(urlArray);
                                        }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.logging.Logger;
                                    *** 65,71 ****
                                       *      <dd>The fully qualified path of the file containing the trusted CA
                                       *      certificate to import. If omitted, the tool will process STDIN.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 65,71 ----
                                       *      <dd>The fully qualified path of the file containing the trusted CA
                                       *      certificate to import. If omitted, the tool will process STDIN.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import java.util.logging.Logger;
                                    *** 73,79 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 73,79 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import java.util.logging.Logger;
                                    *** 86,98 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 86,98 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import java.util.logging.Logger;
                                    *** 100,106 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 100,106 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    *************** public class CACertCmd
                                    *** 278,284 ****
                                         * replaces any space and dot characters with underscores. For example the
                                         * input string <code>brasil.gov.br.cert</code> will result in
                                         * <code>brasil_gov_br</code> as its alias.
                                    !    * 
                                         * @param fileName the name of the file containing the CA certificate
                                         * @return a string which can, and will, be used as the Alias of this CA
                                         *         certificate.
                                    --- 278,284 ----
                                         * replaces any space and dot characters with underscores. For example the
                                         * input string <code>brasil.gov.br.cert</code> will result in
                                         * <code>brasil_gov_br</code> as its alias.
                                    !    *
                                         * @param fileName the name of the file containing the CA certificate
                                         * @return a string which can, and will, be used as the Alias of this CA
                                         *         certificate.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 84,97 ****
                                       *   signatureAlgorithm        AlgorithmIdentifier,
                                       *   signature                 BIT STRING
                                       * }
                                    !  * 
                                       * CertificationRequestInfo ::= SEQUENCE {
                                       *   version           INTEGER -- v1(0)
                                       *   subject           Name,
                                       *   subjectPKInfo     SubjectPublicKeyInfo,
                                       *   attributes    [0] IMPLICIT Attributes -- see note later
                                       * }
                                    !  * 
                                       * SubjectPublicKeyInfo ::= SEQUENCE {
                                       *   algorithm         AlgorithmIdentifier,
                                       *   subjectPublicKey  BIT STRING
                                    --- 84,97 ----
                                       *   signatureAlgorithm        AlgorithmIdentifier,
                                       *   signature                 BIT STRING
                                       * }
                                    !  *
                                       * CertificationRequestInfo ::= SEQUENCE {
                                       *   version           INTEGER -- v1(0)
                                       *   subject           Name,
                                       *   subjectPKInfo     SubjectPublicKeyInfo,
                                       *   attributes    [0] IMPLICIT Attributes -- see note later
                                       * }
                                    !  *
                                       * SubjectPublicKeyInfo ::= SEQUENCE {
                                       *   algorithm         AlgorithmIdentifier,
                                       *   subjectPublicKey  BIT STRING
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 114,120 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-sigalg ALGORITHM</dt>
                                       *      <dd>The canonical name of the digital signature algorithm to use for
                                       *      signing the certificate. If this option is omitted, a default value will
                                    --- 114,120 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-sigalg ALGORITHM</dt>
                                       *      <dd>The canonical name of the digital signature algorithm to use for
                                       *      signing the certificate. If this option is omitted, a default value will
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 124,134 ****
                                       *      If on the other hand the private key is an <code>RSA</code> one, then
                                       *      the tool will use <code>MD5withRSA</code> as the signature algorithm.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-file FILE_NAME</dt>
                                    !  *      
                                       *      <dt>-keypass PASSWORD</dt>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 124,134 ----
                                       *      If on the other hand the private key is an <code>RSA</code> one, then
                                       *      the tool will use <code>MD5withRSA</code> as the signature algorithm.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-file FILE_NAME</dt>
                                    !  *
                                       *      <dt>-keypass PASSWORD</dt>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 136,142 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 136,142 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 149,161 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 149,161 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 163,173 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-attributes</dt>
                                       *      <dd>Use this option to force the tool to encode a NULL DER value in the
                                       *      CSR as the value of the Attributes field.</dd>
                                    --- 163,173 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-attributes</dt>
                                       *      <dd>Use this option to force the tool to encode a NULL DER value in the
                                       *      CSR as the value of the Attributes field.</dd>
                                    *************** class CertReqCmd extends Command
                                    *** 421,429 ****
                                         * @param publicKey
                                         * @param privateKey
                                         * @return the DER encoded Certificate Signing Request.
                                    !    * @throws IOException 
                                    !    * @throws InvalidKeyException 
                                    !    * @throws SignatureException 
                                         */
                                        private byte[] getCSR(X500Principal aliasName, PublicKey publicKey,
                                                              PrivateKey privateKey)
                                    --- 421,429 ----
                                         * @param publicKey
                                         * @param privateKey
                                         * @return the DER encoded Certificate Signing Request.
                                    !    * @throws IOException
                                    !    * @throws InvalidKeyException
                                    !    * @throws SignatureException
                                         */
                                        private byte[] getCSR(X500Principal aliasName, PublicKey publicKey,
                                                              PrivateKey privateKey)
                                    *************** class CertReqCmd extends Command
                                    *** 454,460 ****
                                          sigAlgorithm.trimToSize();
                                          DERValue derSignatureAlgorithm = new DERValue(DER.CONSTRUCTED | DER.SEQUENCE,
                                                                                        sigAlgorithm);
                                    !     
                                          signatureAlgorithm.initSign(privateKey);
                                          signatureAlgorithm.update(derCertRequestInfo.getEncoded());
                                          byte[] sigBytes = signatureAlgorithm.sign();
                                    --- 454,460 ----
                                          sigAlgorithm.trimToSize();
                                          DERValue derSignatureAlgorithm = new DERValue(DER.CONSTRUCTED | DER.SEQUENCE,
                                                                                        sigAlgorithm);
                                    ! 
                                          signatureAlgorithm.initSign(privateKey);
                                          signatureAlgorithm.update(derCertRequestInfo.getEncoded());
                                          byte[] sigBytes = signatureAlgorithm.sign();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java	Tue Jan 11 19:46:05 2011
                                    *************** abstract class Command
                                    *** 192,198 ****
                                         * implementation attempts to release any resources that may have been
                                         * allocated at the time the exception occurs, before re-throwing that
                                         * exception.
                                    !    * 
                                         * @throws Exception if an exception occurs during the processing of this
                                         *           command. For a more comprehensive list of exceptions that may
                                         *           occur, see the documentation of the {@link #setup()} and
                                    --- 192,198 ----
                                         * implementation attempts to release any resources that may have been
                                         * allocated at the time the exception occurs, before re-throwing that
                                         * exception.
                                    !    *
                                         * @throws Exception if an exception occurs during the processing of this
                                         *           command. For a more comprehensive list of exceptions that may
                                         *           occur, see the documentation of the {@link #setup()} and
                                    *************** abstract class Command
                                    *** 235,241 ****
                                         * <code>startIndex</code> argument pointing to the keyword argument that
                                         * uniquelly identifies the command itself; e.g. <code>-genkey</code> or
                                         * <code>-list</code>, etc...
                                    !    * 
                                         * @param args an array of options for this handler and possibly other
                                         *          commands and their options.
                                         * @return the remaining un-processed <code>args</code>.
                                    --- 235,241 ----
                                         * <code>startIndex</code> argument pointing to the keyword argument that
                                         * uniquelly identifies the command itself; e.g. <code>-genkey</code> or
                                         * <code>-list</code>, etc...
                                    !    *
                                         * @param args an array of options for this handler and possibly other
                                         *          commands and their options.
                                         * @return the remaining un-processed <code>args</code>.
                                    *************** abstract class Command
                                    *** 257,263 ****
                                         * <p>
                                         * Handlers usually initialize their local variables and resources within the
                                         * scope of this call.
                                    !    * 
                                         * @throws IOException if an I/O related exception, such as opening an input
                                         *           stream, occurs during the execution of this method.
                                         * @throws UnsupportedCallbackException if a requested callback handler
                                    --- 257,263 ----
                                         * <p>
                                         * Handlers usually initialize their local variables and resources within the
                                         * scope of this call.
                                    !    *
                                         * @throws IOException if an I/O related exception, such as opening an input
                                         *           stream, occurs during the execution of this method.
                                         * @throws UnsupportedCallbackException if a requested callback handler
                                    *************** abstract class Command
                                    *** 284,290 ****
                                         * <p>
                                         * The code in this (abstract) class throws a <i>Not implemented yet</i>
                                         * runtime exception. Concrete implementations MUST override this method.
                                    !    * 
                                         * @throws CertificateException If no concrete implementation was found for a
                                         *           certificate Factory of a designated type. In this tool, the type
                                         *           is usually X.509 v1.
                                    --- 284,290 ----
                                         * <p>
                                         * The code in this (abstract) class throws a <i>Not implemented yet</i>
                                         * runtime exception. Concrete implementations MUST override this method.
                                    !    *
                                         * @throws CertificateException If no concrete implementation was found for a
                                         *           certificate Factory of a designated type. In this tool, the type
                                         *           is usually X.509 v1.
                                    *************** abstract class Command
                                    *** 378,384 ****
                                         * <code>false</code> to the first argument implying that no attempt to
                                         * create the keystore will be made if one was not found at the designated
                                         * location.
                                    !    * 
                                         * @param className the potentially null fully qualified class name of a
                                         *          security provider to add at runtime, if no installed provider is
                                         *          able to provide a key store implementation of the desired type.
                                    --- 378,384 ----
                                         * <code>false</code> to the first argument implying that no attempt to
                                         * create the keystore will be made if one was not found at the designated
                                         * location.
                                    !    *
                                         * @param className the potentially null fully qualified class name of a
                                         *          security provider to add at runtime, if no installed provider is
                                         *          able to provide a key store implementation of the desired type.
                                    *************** abstract class Command
                                    *** 398,404 ****
                                        /**
                                         * Convenience method to setup the key store given its type, its password, its
                                         * location and portentially a specialized security provider.
                                    !    * 
                                         * @param createIfNotFound if <code>true</code> then create the keystore if
                                         *          it was not found; otherwise do not.
                                         * @param className the potentially null fully qualified class name of a
                                    --- 398,404 ----
                                        /**
                                         * Convenience method to setup the key store given its type, its password, its
                                         * location and portentially a specialized security provider.
                                    !    *
                                         * @param createIfNotFound if <code>true</code> then create the keystore if
                                         *          it was not found; otherwise do not.
                                         * @param className the potentially null fully qualified class name of a
                                    *************** abstract class Command
                                    *** 422,428 ****
                                        /**
                                         * Set a security provider class name to (install and) use for key store
                                         * related operations.
                                    !    * 
                                         * @param className the possibly null, fully qualified class name of a
                                         *          security provider to add, if it is not already installed, to the
                                         *          set of available providers.
                                    --- 422,428 ----
                                        /**
                                         * Set a security provider class name to (install and) use for key store
                                         * related operations.
                                    !    *
                                         * @param className the possibly null, fully qualified class name of a
                                         *          security provider to add, if it is not already installed, to the
                                         *          set of available providers.
                                    *************** abstract class Command
                                    *** 447,453 ****
                                      
                                        /**
                                         * Set the type of key store to initialize, load and use.
                                    !    * 
                                         * @param type the possibly null type of the key store. if this argument is
                                         *          <code>null</code>, or is an empty string, then this method sets
                                         *          the type of the key store to be the default value returned from
                                    --- 447,453 ----
                                      
                                        /**
                                         * Set the type of key store to initialize, load and use.
                                    !    *
                                         * @param type the possibly null type of the key store. if this argument is
                                         *          <code>null</code>, or is an empty string, then this method sets
                                         *          the type of the key store to be the default value returned from
                                    *************** abstract class Command
                                    *** 468,474 ****
                                        /**
                                         * Set the key password given a command line option argument. If no value was
                                         * present on the command line then prompt the user to provide one.
                                    !    * 
                                         * @param password a possibly null key password gleaned from the command line.
                                         * @throws IOException if an I/O related exception occurs.
                                         * @throws UnsupportedCallbackException if no concrete implementation of a
                                    --- 468,474 ----
                                        /**
                                         * Set the key password given a command line option argument. If no value was
                                         * present on the command line then prompt the user to provide one.
                                    !    *
                                         * @param password a possibly null key password gleaned from the command line.
                                         * @throws IOException if an I/O related exception occurs.
                                         * @throws UnsupportedCallbackException if no concrete implementation of a
                                    *************** abstract class Command
                                    *** 485,491 ****
                                        /**
                                         * Set the Alias to use when associating Key Entries and Trusted Certificates
                                         * in the current key store.
                                    !    * 
                                         * @param name the possibly null alias to use. If this arfument is
                                         *          <code>null</code>, then a default value of <code>mykey</code>
                                         *          will be used instead.
                                    --- 485,491 ----
                                        /**
                                         * Set the Alias to use when associating Key Entries and Trusted Certificates
                                         * in the current key store.
                                    !    *
                                         * @param name the possibly null alias to use. If this arfument is
                                         *          <code>null</code>, then a default value of <code>mykey</code>
                                         *          will be used instead.
                                    *************** abstract class Command
                                    *** 497,503 ****
                                      
                                        /**
                                         * Set the key password given a command line option argument.
                                    !    * 
                                         * @param password a possibly null key password gleaned from the command line.
                                         */
                                        protected void setKeyPasswordNoPrompt(String password)
                                    --- 497,503 ----
                                      
                                        /**
                                         * Set the key password given a command line option argument.
                                    !    *
                                         * @param password a possibly null key password gleaned from the command line.
                                         */
                                        protected void setKeyPasswordNoPrompt(String password)
                                    *************** abstract class Command
                                    *** 509,515 ****
                                        /**
                                         * Prompt the user to provide a password to protect a Key Entry in the key
                                         * store.
                                    !    * 
                                         * @throws IOException if an I/O related exception occurs.
                                         * @throws UnsupportedCallbackException if no concrete implementation of a
                                         *           password callback was found at runtime.
                                    --- 509,515 ----
                                        /**
                                         * Prompt the user to provide a password to protect a Key Entry in the key
                                         * store.
                                    !    *
                                         * @throws IOException if an I/O related exception occurs.
                                         * @throws UnsupportedCallbackException if no concrete implementation of a
                                         *           password callback was found at runtime.
                                    *************** abstract class Command
                                    *** 545,551 ****
                                      
                                        /**
                                         * Set the key store URL to use.
                                    !    * 
                                         * @param createIfNotFound when <code>true</code> an attempt to create a
                                         *          keystore at the designated location will be made. If
                                         *          <code>false</code> then no file creation is carried out, which
                                    --- 545,551 ----
                                      
                                        /**
                                         * Set the key store URL to use.
                                    !    *
                                         * @param createIfNotFound when <code>true</code> an attempt to create a
                                         *          keystore at the designated location will be made. If
                                         *          <code>false</code> then no file creation is carried out, which
                                    *************** abstract class Command
                                    *** 699,705 ****
                                        /**
                                         * Set both the key-pair generation algorithm, and the digital signature
                                         * algorithm instances to use when generating new entries.
                                    !    * 
                                         * @param kpAlg the possibly null name of a key-pair generator algorithm.
                                         *          if this argument is <code>null</code> or is an empty string, the
                                         *          "DSS" algorithm will be used.
                                    --- 699,705 ----
                                        /**
                                         * Set both the key-pair generation algorithm, and the digital signature
                                         * algorithm instances to use when generating new entries.
                                    !    *
                                         * @param kpAlg the possibly null name of a key-pair generator algorithm.
                                         *          if this argument is <code>null</code> or is an empty string, the
                                         *          "DSS" algorithm will be used.
                                    *************** abstract class Command
                                    *** 754,760 ****
                                         * <code>MD5withRSA</code>. If the private key is neither a private DSA nor
                                         * a private RSA key, then this method throws an
                                         * {@link IllegalArgumentException}.
                                    !    * 
                                         * @param algorithm the possibly null name of a digital signature algorithm.
                                         * @param privateKey an instance of a private key to use as a fal-back option
                                         *          when <code>algorithm</code> is invalid.
                                    --- 754,760 ----
                                         * <code>MD5withRSA</code>. If the private key is neither a private DSA nor
                                         * a private RSA key, then this method throws an
                                         * {@link IllegalArgumentException}.
                                    !    *
                                         * @param algorithm the possibly null name of a digital signature algorithm.
                                         * @param privateKey an instance of a private key to use as a fal-back option
                                         *          when <code>algorithm</code> is invalid.
                                    *************** abstract class Command
                                    *** 780,786 ****
                                        /**
                                         * Set the validity period, in number of days, to use when issuing new
                                         * certificates.
                                    !    * 
                                         * @param days the number of days, as a string, the generated certificate will
                                         *          be valid for, starting from today's date. if this argument is
                                         *          <code>null</code>, a default value of <code>90</code> days
                                    --- 780,786 ----
                                        /**
                                         * Set the validity period, in number of days, to use when issuing new
                                         * certificates.
                                    !    *
                                         * @param days the number of days, as a string, the generated certificate will
                                         *          be valid for, starting from today's date. if this argument is
                                         *          <code>null</code>, a default value of <code>90</code> days
                                    *************** abstract class Command
                                    *** 807,820 ****
                                         * RFC-2459 (http://rfc.net/rfc2459.html) fully describes the structure and
                                         * semantics of X.509 certificates. The ASN.1 structures below are gleaned
                                         * from that reference.
                                    !    * 
                                         * <pre>
                                         *  Certificate ::= SEQUENCE {
                                         *    tbsCertificate      TBSCertificate,
                                         *    signatureAlgorithm  AlgorithmIdentifier,
                                         *    signatureValue      BIT STRING
                                         *  }
                                    !    *  
                                         *  TBSCertificate ::= SEQUENCE {
                                         *    version           [0] EXPLICIT Version DEFAULT v1,
                                         *    serialNumber          CertificateSerialNumber,
                                    --- 807,820 ----
                                         * RFC-2459 (http://rfc.net/rfc2459.html) fully describes the structure and
                                         * semantics of X.509 certificates. The ASN.1 structures below are gleaned
                                         * from that reference.
                                    !    *
                                         * <pre>
                                         *  Certificate ::= SEQUENCE {
                                         *    tbsCertificate      TBSCertificate,
                                         *    signatureAlgorithm  AlgorithmIdentifier,
                                         *    signatureValue      BIT STRING
                                         *  }
                                    !    *
                                         *  TBSCertificate ::= SEQUENCE {
                                         *    version           [0] EXPLICIT Version DEFAULT v1,
                                         *    serialNumber          CertificateSerialNumber,
                                    *************** abstract class Command
                                    *** 824,852 ****
                                         *    subject               Name,
                                         *    subjectPublicKeyInfo  SubjectPublicKeyInfo
                                         *  }
                                    !    *  
                                         *  Version ::= INTEGER { v1(0), v2(1), v3(2) }
                                    !    *  
                                         *  CertificateSerialNumber ::= INTEGER
                                    !    *  
                                         *  Validity ::= SEQUENCE {
                                         *    notBefore  Time,
                                         *    notAfter   Time
                                         *  }
                                    !    *  
                                         *  Time ::= CHOICE {
                                         *    utcTime      UTCTime,
                                         *    generalTime  GeneralizedTime
                                         *  }
                                    !    *  
                                         *  UniqueIdentifier ::= BIT STRING
                                    !    *  
                                         *  SubjectPublicKeyInfo ::= SEQUENCE {
                                         *    algorithm         AlgorithmIdentifier,
                                         *    subjectPublicKey  BIT STRING
                                         *  }
                                         * </pre>
                                    !    * 
                                         * @param distinguishedName the X.500 Distinguished Name to use as both the
                                         *          Issuer and Subject of the self-signed certificate to generate.
                                         * @param publicKey the public key of the issuer/subject.
                                    --- 824,852 ----
                                         *    subject               Name,
                                         *    subjectPublicKeyInfo  SubjectPublicKeyInfo
                                         *  }
                                    !    *
                                         *  Version ::= INTEGER { v1(0), v2(1), v3(2) }
                                    !    *
                                         *  CertificateSerialNumber ::= INTEGER
                                    !    *
                                         *  Validity ::= SEQUENCE {
                                         *    notBefore  Time,
                                         *    notAfter   Time
                                         *  }
                                    !    *
                                         *  Time ::= CHOICE {
                                         *    utcTime      UTCTime,
                                         *    generalTime  GeneralizedTime
                                         *  }
                                    !    *
                                         *  UniqueIdentifier ::= BIT STRING
                                    !    *
                                         *  SubjectPublicKeyInfo ::= SEQUENCE {
                                         *    algorithm         AlgorithmIdentifier,
                                         *    subjectPublicKey  BIT STRING
                                         *  }
                                         * </pre>
                                    !    *
                                         * @param distinguishedName the X.500 Distinguished Name to use as both the
                                         *          Issuer and Subject of the self-signed certificate to generate.
                                         * @param publicKey the public key of the issuer/subject.
                                    *************** abstract class Command
                                    *** 890,896 ****
                                          // algorithm field in an AlgorithmIdentifier, the encoding shall omit
                                          // the parameters field.  That is, the AlgorithmIdentifier shall be a
                                          // SEQUENCE of one component - the OBJECT IDENTIFIER id-dsa-with-sha1.
                                    !     // 
                                          // for RSA signatures:
                                          // ...When any of these three OIDs (i.e. xxxWithRSAEncryption) appears
                                          // within the ASN.1 type AlgorithmIdentifier, the parameters component of
                                    --- 890,896 ----
                                          // algorithm field in an AlgorithmIdentifier, the encoding shall omit
                                          // the parameters field.  That is, the AlgorithmIdentifier shall be a
                                          // SEQUENCE of one component - the OBJECT IDENTIFIER id-dsa-with-sha1.
                                    !     //
                                          // for RSA signatures:
                                          // ...When any of these three OIDs (i.e. xxxWithRSAEncryption) appears
                                          // within the ASN.1 type AlgorithmIdentifier, the parameters component of
                                    *************** abstract class Command
                                    *** 905,911 ****
                                      
                                          long notBefore = System.currentTimeMillis();
                                          long notAfter = notBefore + validityInDays * MILLIS_IN_A_DAY;
                                    !     
                                          ArrayList validity = new ArrayList(2);
                                          validity.add(new DERValue(DER.UTC_TIME, new Date(notBefore)));
                                          validity.add(new DERValue(DER.UTC_TIME, new Date(notAfter)));
                                    --- 905,911 ----
                                      
                                          long notBefore = System.currentTimeMillis();
                                          long notAfter = notBefore + validityInDays * MILLIS_IN_A_DAY;
                                    ! 
                                          ArrayList validity = new ArrayList(2);
                                          validity.add(new DERValue(DER.UTC_TIME, new Date(notBefore)));
                                          validity.add(new DERValue(DER.UTC_TIME, new Date(notAfter)));
                                    *************** abstract class Command
                                    *** 958,987 ****
                                         * signature algorithm used to sign the certificate. The OIDs returned are
                                         * those described in RFC-2459. They are listed here for the sake of
                                         * completness.
                                    !    * 
                                         * <pre>
                                         *  id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
                                         *    iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3
                                         *  }
                                    !    *  
                                         *  md2WithRSAEncryption OBJECT IDENTIFIER ::= {
                                         *    iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 2
                                         *  }
                                    !    *  
                                         *  md5WithRSAEncryption OBJECT IDENTIFIER ::= {
                                         *    iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 4
                                         *  }
                                    !    *  
                                         *  sha-1WithRSAEncryption OBJECT IDENTIFIER ::= {
                                         *    iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 5
                                         *  }
                                         * </pre>
                                    !    * 
                                         * <b>IMPORTANT</b>: This method checks the signature algorithm name against
                                         * (a) The GNU algorithm implementation's name, and (b) publicly referenced
                                         * names of the same algorithm. In other words this search is not
                                         * comprehensive and may fail for uncommon names of the same algorithms.
                                    !    * 
                                         * @return the OID of the signature algorithm in use.
                                         * @throws InvalidParameterException if the concrete signature algorithm does
                                         *           not know its name, no OID is known/supported for that name, or we
                                    --- 958,987 ----
                                         * signature algorithm used to sign the certificate. The OIDs returned are
                                         * those described in RFC-2459. They are listed here for the sake of
                                         * completness.
                                    !    *
                                         * <pre>
                                         *  id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
                                         *    iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3
                                         *  }
                                    !    *
                                         *  md2WithRSAEncryption OBJECT IDENTIFIER ::= {
                                         *    iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 2
                                         *  }
                                    !    *
                                         *  md5WithRSAEncryption OBJECT IDENTIFIER ::= {
                                         *    iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 4
                                         *  }
                                    !    *
                                         *  sha-1WithRSAEncryption OBJECT IDENTIFIER ::= {
                                         *    iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 5
                                         *  }
                                         * </pre>
                                    !    *
                                         * <b>IMPORTANT</b>: This method checks the signature algorithm name against
                                         * (a) The GNU algorithm implementation's name, and (b) publicly referenced
                                         * names of the same algorithm. In other words this search is not
                                         * comprehensive and may fail for uncommon names of the same algorithms.
                                    !    *
                                         * @return the OID of the signature algorithm in use.
                                         * @throws InvalidParameterException if the concrete signature algorithm does
                                         *           not know its name, no OID is known/supported for that name, or we
                                    *************** abstract class Command
                                    *** 1001,1007 ****
                                          if (algorithm.equalsIgnoreCase(Registry.DSS_SIG)
                                              || algorithm.equalsIgnoreCase("SHA1withDSA")) //$NON-NLS-1$
                                            return SHA1_WITH_DSA;
                                    !     
                                          if (algorithm.equalsIgnoreCase(Registry.RSA_PKCS1_V1_5_SIG + "-" //$NON-NLS-1$
                                                                         + Registry.MD2_HASH)
                                              || algorithm.equalsIgnoreCase("MD2withRSA")) //$NON-NLS-1$
                                    --- 1001,1007 ----
                                          if (algorithm.equalsIgnoreCase(Registry.DSS_SIG)
                                              || algorithm.equalsIgnoreCase("SHA1withDSA")) //$NON-NLS-1$
                                            return SHA1_WITH_DSA;
                                    ! 
                                          if (algorithm.equalsIgnoreCase(Registry.RSA_PKCS1_V1_5_SIG + "-" //$NON-NLS-1$
                                                                         + Registry.MD2_HASH)
                                              || algorithm.equalsIgnoreCase("MD2withRSA")) //$NON-NLS-1$
                                    *************** abstract class Command
                                    *** 1027,1033 ****
                                         * by handlers if/when the key store password has changed, or amendements have
                                         * been made to the contents of the store; e.g. addition of a new Key Entry or
                                         * a Trusted Certificate.
                                    !    * 
                                         * @param password the password protecting the key store.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                         * @throws CertificateException if any of the certificates in the current key
                                    --- 1027,1033 ----
                                         * by handlers if/when the key store password has changed, or amendements have
                                         * been made to the contents of the store; e.g. addition of a new Key Entry or
                                         * a Trusted Certificate.
                                    !    *
                                         * @param password the password protecting the key store.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                         * @throws CertificateException if any of the certificates in the current key
                                    *************** abstract class Command
                                    *** 1057,1064 ****
                                      
                                        /**
                                         * Convenience method. Calls the method with the same name passing it the
                                    !    * same password characters used to initially load the key-store. 
                                    !    * 
                                         * @throws IOException if an I/O related exception occurs during the process.
                                         * @throws KeyStoreException if the key store has not been loaded previously.
                                         * @throws NoSuchAlgorithmException if a required data integrity algorithm
                                    --- 1057,1064 ----
                                      
                                        /**
                                         * Convenience method. Calls the method with the same name passing it the
                                    !    * same password characters used to initially load the key-store.
                                    !    *
                                         * @throws IOException if an I/O related exception occurs during the process.
                                         * @throws KeyStoreException if the key store has not been loaded previously.
                                         * @throws NoSuchAlgorithmException if a required data integrity algorithm
                                    *************** abstract class Command
                                    *** 1075,1081 ****
                                        /**
                                         * Prints a human-readable form of the designated certificate to a designated
                                         * {@link PrintWriter}.
                                    !    * 
                                         * @param certificate the certificate to process.
                                         * @param writer where to print it.
                                         * @throws CertificateEncodingException if an exception occurs while obtaining
                                    --- 1075,1081 ----
                                        /**
                                         * Prints a human-readable form of the designated certificate to a designated
                                         * {@link PrintWriter}.
                                    !    *
                                         * @param certificate the certificate to process.
                                         * @param writer where to print it.
                                         * @throws CertificateEncodingException if an exception occurs while obtaining
                                    *************** abstract class Command
                                    *** 1099,1105 ****
                                        /**
                                         * Convenience method. Prints a human-readable form of the designated
                                         * certificate to <code>System.out</code>.
                                    !    * 
                                         * @param certificate the certificate to process.
                                         * @throws CertificateEncodingException if an exception occurs while obtaining
                                         *           the DER encoded form <code>certificate</code>.
                                    --- 1099,1105 ----
                                        /**
                                         * Convenience method. Prints a human-readable form of the designated
                                         * certificate to <code>System.out</code>.
                                    !    *
                                         * @param certificate the certificate to process.
                                         * @throws CertificateEncodingException if an exception occurs while obtaining
                                         *           the DER encoded form <code>certificate</code>.
                                    *************** abstract class Command
                                    *** 1114,1120 ****
                                         * Digest the designated contents with MD5 and return a string representation
                                         * suitable for use as a fingerprint; i.e. sequence of hexadecimal pairs of
                                         * characters separated by a colon.
                                    !    * 
                                         * @param contents the non-null contents to digest.
                                         * @return a sequence of hexadecimal pairs of characters separated by colons.
                                         */
                                    --- 1114,1120 ----
                                         * Digest the designated contents with MD5 and return a string representation
                                         * suitable for use as a fingerprint; i.e. sequence of hexadecimal pairs of
                                         * characters separated by a colon.
                                    !    *
                                         * @param contents the non-null contents to digest.
                                         * @return a sequence of hexadecimal pairs of characters separated by colons.
                                         */
                                    *************** abstract class Command
                                    *** 1138,1144 ****
                                        /**
                                         * Ensure that the currently set Alias is contained in the currently set key
                                         * store; otherwise throw an exception.
                                    !    * 
                                         * @throws KeyStoreException if the keystore has not been loaded.
                                         * @throws IllegalArgumentException if the currently set alias is not known to
                                         *           the currently set key store.
                                    --- 1138,1144 ----
                                        /**
                                         * Ensure that the currently set Alias is contained in the currently set key
                                         * store; otherwise throw an exception.
                                    !    *
                                         * @throws KeyStoreException if the keystore has not been loaded.
                                         * @throws IllegalArgumentException if the currently set alias is not known to
                                         *           the currently set key store.
                                    *************** abstract class Command
                                    *** 1153,1159 ****
                                        /**
                                         * Ensure that the currently set Alias is associated with a Key Entry in the
                                         * currently set key store; otherwise throw an exception.
                                    !    * 
                                         * @throws KeyStoreException if the keystore has not been loaded.
                                         * @throws SecurityException if the currently set alias is not a Key Entry in
                                         *           the currently set key store.
                                    --- 1153,1159 ----
                                        /**
                                         * Ensure that the currently set Alias is associated with a Key Entry in the
                                         * currently set key store; otherwise throw an exception.
                                    !    *
                                         * @throws KeyStoreException if the keystore has not been loaded.
                                         * @throws SecurityException if the currently set alias is not a Key Entry in
                                         *           the currently set key store.
                                    *************** abstract class Command
                                    *** 1204,1210 ****
                                         * provider, by-passing the Security search mechanism. The default console
                                         * callback handler implementation is
                                         * {@link gnu.javax.security.auth.callback.ConsoleCallbackHandler}.
                                    !    * 
                                         * @return a console-based {@link CallbackHandler}.
                                         */
                                        protected CallbackHandler getCallbackHandler()
                                    --- 1204,1210 ----
                                         * provider, by-passing the Security search mechanism. The default console
                                         * callback handler implementation is
                                         * {@link gnu.javax.security.auth.callback.ConsoleCallbackHandler}.
                                    !    *
                                         * @return a console-based {@link CallbackHandler}.
                                         */
                                        protected CallbackHandler getCallbackHandler()
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 70,76 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 70,76 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 78,84 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 78,84 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 91,103 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 91,103 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 105,111 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 105,111 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    *************** class DeleteCmd extends Command
                                    *** 257,263 ****
                                         * Unlike in other keytool handlers, the default value (<i>mykey</i>) for the
                                         * Alias is not used. Instead, if an alias was not found on the command line,
                                         * the user is prompted to enter one.
                                    !    * 
                                         * @param anAlias a possibly null Alias gleaned from the command line.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                         * @throws UnsupportedCallbackException if no implementation of a password
                                    --- 257,263 ----
                                         * Unlike in other keytool handlers, the default value (<i>mykey</i>) for the
                                         * Alias is not used. Instead, if an alias was not found on the command line,
                                         * the user is prompted to enter one.
                                    !    *
                                         * @param anAlias a possibly null Alias gleaned from the command line.
                                         * @throws IOException if an I/O related exception occurs during the process.
                                         * @throws UnsupportedCallbackException if no implementation of a password
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.logging.Logger;
                                    *** 69,80 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-file FILE_NAME</dt>
                                       *      <dd>The fully qualified path of the file where the certificate will be
                                       *      exported to. If omitted, STDOUT will be used instead.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 69,80 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-file FILE_NAME</dt>
                                       *      <dd>The fully qualified path of the file where the certificate will be
                                       *      exported to. If omitted, STDOUT will be used instead.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import java.util.logging.Logger;
                                    *** 82,88 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 82,88 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import java.util.logging.Logger;
                                    *** 95,107 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 95,107 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import java.util.logging.Logger;
                                    *** 109,119 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-rfc</dt>
                                       *      <dd>Use RFC-1421 specifications when encoding the output.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Output the certificate in binary DER encoding. This is the default
                                       *      output format of the command if neither <code>-rfc</code> nor
                                    --- 109,119 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-rfc</dt>
                                       *      <dd>Use RFC-1421 specifications when encoding the output.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Output the certificate in binary DER encoding. This is the default
                                       *      output format of the command if neither <code>-rfc</code> nor
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 83,103 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keyalg ALGORITHM</dt>
                                       *      <dd>Use this option to specify the canonical name of the key-pair
                                       *      generation algorithm. The default value for this option is
                                       *      <code>DSS</code> (a synonym for the Digital Signature Algorithm also
                                       *      known as <code>DSA</code>).
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keysize KEY_SIZE</dt>
                                       *      <dd>Use this option to specify the number of bits of the shared modulus
                                       *      (for both the public and private keys) to use when generating new keys.
                                       *      A default value of <code>1024</code> will be used if this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-sigalg ALGORITHM</dt>
                                       *      <dd>The canonical name of the digital signature algorithm to use for
                                       *      signing certificates. If this option is omitted, a default value will be
                                    --- 83,103 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keyalg ALGORITHM</dt>
                                       *      <dd>Use this option to specify the canonical name of the key-pair
                                       *      generation algorithm. The default value for this option is
                                       *      <code>DSS</code> (a synonym for the Digital Signature Algorithm also
                                       *      known as <code>DSA</code>).
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keysize KEY_SIZE</dt>
                                       *      <dd>Use this option to specify the number of bits of the shared modulus
                                       *      (for both the public and private keys) to use when generating new keys.
                                       *      A default value of <code>1024</code> will be used if this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-sigalg ALGORITHM</dt>
                                       *      <dd>The canonical name of the digital signature algorithm to use for
                                       *      signing certificates. If this option is omitted, a default value will be
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 108,114 ****
                                       *      key-pair generation algorithm is <code>RSA</code>, then the tool will
                                       *      use <code>MD5withRSA</code> as the signature algorithm.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-dname NAME</dt>
                                       *      <dd>This a mandatory value for this command. If this option is omitted
                                       *      the tool will prompt you to enter a <i>Distinguished Name</i> to use as
                                    --- 108,114 ----
                                       *      key-pair generation algorithm is <code>RSA</code>, then the tool will
                                       *      use <code>MD5withRSA</code> as the signature algorithm.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-dname NAME</dt>
                                       *      <dd>This a mandatory value for this command. If this option is omitted
                                       *      the tool will prompt you to enter a <i>Distinguished Name</i> to use as
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 122,140 ****
                                       *      <dl>
                                       *              <dt>CN</dt>
                                       *              <dd>The Common Name; e.g. "host.domain.com"</dd>
                                    !  *              
                                       *              <dt>OU</dt>
                                       *              <dd>The Organizational Unit; e.g. "IT Department"</dd>
                                    !  *              
                                       *              <dt>O</dt>
                                       *              <dd>The Organization Name; e.g. "The Sample Company"</dd>
                                    !  *              
                                       *              <dt>L</dt>
                                       *              <dd>The Locality Name; e.g. "Sydney"</dd>
                                    !  *              
                                       *              <dt>ST</dt>
                                       *              <dd>The State Name; e.g. "New South Wales"</dd>
                                    !  *              
                                       *              <dt>C</dt>
                                       *              <dd>The 2-letter Country identifier; e.g. "AU"</dd>
                                       *      </dl>
                                    --- 122,140 ----
                                       *      <dl>
                                       *              <dt>CN</dt>
                                       *              <dd>The Common Name; e.g. "host.domain.com"</dd>
                                    !  *
                                       *              <dt>OU</dt>
                                       *              <dd>The Organizational Unit; e.g. "IT Department"</dd>
                                    !  *
                                       *              <dt>O</dt>
                                       *              <dd>The Organization Name; e.g. "The Sample Company"</dd>
                                    !  *
                                       *              <dt>L</dt>
                                       *              <dd>The Locality Name; e.g. "Sydney"</dd>
                                    !  *
                                       *              <dt>ST</dt>
                                       *              <dd>The State Name; e.g. "New South Wales"</dd>
                                    !  *
                                       *              <dt>C</dt>
                                       *              <dd>The 2-letter Country identifier; e.g. "AU"</dd>
                                       *      </dl>
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 149,164 ****
                                       *      If this option is omitted, the tool will prompt you to enter the
                                       *      information through the console.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keypass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password which the tool will use to
                                       *      protect the newly created Key Entry.
                                       *      <p>
                                       *      If this option is omitted, you will be prompted to provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-validity DAY_COUNT</dt>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 149,164 ----
                                       *      If this option is omitted, the tool will prompt you to enter the
                                       *      information through the console.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keypass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password which the tool will use to
                                       *      protect the newly created Key Entry.
                                       *      <p>
                                       *      If this option is omitted, you will be prompted to provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-validity DAY_COUNT</dt>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 166,172 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 166,172 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 179,191 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 179,191 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 193,199 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 193,199 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.logging.Logger;
                                    *** 61,67 ****
                                       *      <dd>The fully qualified path of the identity file to import. If this
                                       *      option is omitted, the tool will process STDIN.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 61,67 ----
                                       *      <dd>The fully qualified path of the identity file to import. If this
                                       *      option is omitted, the tool will process STDIN.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import java.util.logging.Logger;
                                    *** 69,75 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 69,75 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import java.util.logging.Logger;
                                    *** 82,94 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 82,94 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import java.util.logging.Logger;
                                    *** 96,102 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 96,102 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 120,131 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-file FILE_NAME</dt>
                                       *      <dd>The fully qualified path of the file to read from. If omitted, the
                                       *      tool will process STDIN.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keypass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password which the tool will use to
                                       *      protect the <i>Key Entry</i> associated with the designated <i>Alias</i>,
                                    --- 120,131 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-file FILE_NAME</dt>
                                       *      <dd>The fully qualified path of the file to read from. If omitted, the
                                       *      tool will process STDIN.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keypass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password which the tool will use to
                                       *      protect the <i>Key Entry</i> associated with the designated <i>Alias</i>,
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 137,154 ****
                                       *      <i>Key Entry</i> using the same password protecting the key store. If
                                       *      this fails, you will then be prompted to provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-noprompt</dt>
                                       *      <dd>Use this option to prevent the tool from prompting the user.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-trustcacerts</dt>
                                       *      <dd>Use this option to indicate to the tool that a key store, of type
                                       *      <code>JKS</code>, named <code>cacerts</code>, and usually located in
                                       *      <code>lib/security</code> in an installed Java Runtime Environment
                                       *      should be considered when trying to establish chain-of-trusts.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 137,154 ----
                                       *      <i>Key Entry</i> using the same password protecting the key store. If
                                       *      this fails, you will then be prompted to provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-noprompt</dt>
                                       *      <dd>Use this option to prevent the tool from prompting the user.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-trustcacerts</dt>
                                       *      <dd>Use this option to indicate to the tool that a key store, of type
                                       *      <code>JKS</code>, named <code>cacerts</code>, and usually located in
                                       *      <code>lib/security</code> in an installed Java Runtime Environment
                                       *      should be considered when trying to establish chain-of-trusts.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 156,162 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 156,162 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 169,181 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 169,181 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 183,189 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 183,189 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    *************** class ImportCmd extends Command
                                    *** 468,481 ****
                                         * with the option of aborting the import operation. If however the option
                                         * <code>-noprompt</code> was detected on the command line, no interaction
                                         * with the user will take place and the import operation will abort.
                                    !    * 
                                         * @throws CertificateException
                                         * @throws KeyStoreException
                                         * @throws NoSuchAlgorithmException
                                    !    * @throws UnsupportedCallbackException 
                                    !    * @throws IOException 
                                    !    * @throws UnrecoverableKeyException 
                                    !    * @throws CertPathValidatorException 
                                         */
                                        private void importNewTrustedCertificate() throws CertificateException,
                                            KeyStoreException, NoSuchAlgorithmException, IOException,
                                    --- 468,481 ----
                                         * with the option of aborting the import operation. If however the option
                                         * <code>-noprompt</code> was detected on the command line, no interaction
                                         * with the user will take place and the import operation will abort.
                                    !    *
                                         * @throws CertificateException
                                         * @throws KeyStoreException
                                         * @throws NoSuchAlgorithmException
                                    !    * @throws UnsupportedCallbackException
                                    !    * @throws IOException
                                    !    * @throws UnrecoverableKeyException
                                    !    * @throws CertPathValidatorException
                                         */
                                        private void importNewTrustedCertificate() throws CertificateException,
                                            KeyStoreException, NoSuchAlgorithmException, IOException,
                                    *************** class ImportCmd extends Command
                                    *** 514,520 ****
                                         * found in the key store, of type <code>JKS</code> named <code>cacerts</code>
                                         * located in <code>${JAVA_HOME}/lib/security</code>, where
                                         * <code>${JAVA_HOME}</code> is the root folder location of a Java runtime.
                                    !    * 
                                         * @throws CertificateException
                                         * @throws UnsupportedCallbackException
                                         * @throws IOException
                                    --- 514,520 ----
                                         * found in the key store, of type <code>JKS</code> named <code>cacerts</code>
                                         * located in <code>${JAVA_HOME}/lib/security</code>, where
                                         * <code>${JAVA_HOME}</code> is the root folder location of a Java runtime.
                                    !    *
                                         * @throws CertificateException
                                         * @throws UnsupportedCallbackException
                                         * @throws IOException
                                    *************** class ImportCmd extends Command
                                    *** 552,566 ****
                                         * out the certificate, nor does it prompt the user to verify it. This is
                                         * because it is very hard (if not impossible) for a user to determine the
                                         * authenticity of the certificate reply.
                                    !    * 
                                         * @param certificate the certificate reply to import into the key store.
                                    !    * @throws NoSuchAlgorithmException 
                                    !    * @throws CertPathValidatorException 
                                    !    * @throws UnsupportedCallbackException 
                                    !    * @throws IOException 
                                    !    * @throws UnrecoverableKeyException 
                                    !    * @throws KeyStoreException 
                                    !    * @throws CertificateException 
                                         */
                                        private void importCertificate(Certificate certificate)
                                            throws NoSuchAlgorithmException, CertPathValidatorException,
                                    --- 552,566 ----
                                         * out the certificate, nor does it prompt the user to verify it. This is
                                         * because it is very hard (if not impossible) for a user to determine the
                                         * authenticity of the certificate reply.
                                    !    *
                                         * @param certificate the certificate reply to import into the key store.
                                    !    * @throws NoSuchAlgorithmException
                                    !    * @throws CertPathValidatorException
                                    !    * @throws UnsupportedCallbackException
                                    !    * @throws IOException
                                    !    * @throws UnrecoverableKeyException
                                    !    * @throws KeyStoreException
                                    !    * @throws CertificateException
                                         */
                                        private void importCertificate(Certificate certificate)
                                            throws NoSuchAlgorithmException, CertPathValidatorException,
                                    *************** class ImportCmd extends Command
                                    *** 596,611 ****
                                         * The user then has the option of aborting the import operation. If the
                                         * -noprompt option is given, however, there will be no interaction with the
                                         * user.
                                    !    * 
                                         * @param chain the collection of certificates parsed from the user
                                         *          designated input.
                                    !    * @throws UnsupportedCallbackException 
                                    !    * @throws IOException 
                                    !    * @throws UnrecoverableKeyException 
                                    !    * @throws KeyStoreException 
                                    !    * @throws CertPathValidatorException 
                                    !    * @throws NoSuchAlgorithmException 
                                    !    * @throws CertificateException 
                                         */
                                        private void importChain(Collection chain) throws NoSuchAlgorithmException,
                                            CertPathValidatorException, KeyStoreException, UnrecoverableKeyException,
                                    --- 596,611 ----
                                         * The user then has the option of aborting the import operation. If the
                                         * -noprompt option is given, however, there will be no interaction with the
                                         * user.
                                    !    *
                                         * @param chain the collection of certificates parsed from the user
                                         *          designated input.
                                    !    * @throws UnsupportedCallbackException
                                    !    * @throws IOException
                                    !    * @throws UnrecoverableKeyException
                                    !    * @throws KeyStoreException
                                    !    * @throws CertPathValidatorException
                                    !    * @throws NoSuchAlgorithmException
                                    !    * @throws CertificateException
                                         */
                                        private void importChain(Collection chain) throws NoSuchAlgorithmException,
                                            CertPathValidatorException, KeyStoreException, UnrecoverableKeyException,
                                    *************** class ImportCmd extends Command
                                    *** 629,635 ****
                                         * Check to ensure that alias's public key is the subject of the first
                                         * certificate in the passed certificate collection. Throws an exception if
                                         * the public keys do not match.
                                    !    * 
                                         * @param certificates a {@link Collection} of certificate replies (either a
                                         *          signle certificate reply, or a PKCS#7 certificate reply chain)
                                         *          usually sent by a CA as a response to a Certificate Signing
                                    --- 629,635 ----
                                         * Check to ensure that alias's public key is the subject of the first
                                         * certificate in the passed certificate collection. Throws an exception if
                                         * the public keys do not match.
                                    !    *
                                         * @param certificates a {@link Collection} of certificate replies (either a
                                         *          signle certificate reply, or a PKCS#7 certificate reply chain)
                                         *          usually sent by a CA as a response to a Certificate Signing
                                    *************** class ImportCmd extends Command
                                    *** 720,726 ****
                                         * designated collection which can be used as the start of the chain, or (b)
                                         * if a chain can not be constructed using all the certificates in the
                                         * designated collection.
                                    !    * 
                                         * @param chain a collection of certificates, not necessarily ordered, but
                                         *          assumed to include a CA certificate authenticating our alias
                                         *          public key, which is the subject of the alias self-signed
                                    --- 720,726 ----
                                         * designated collection which can be used as the start of the chain, or (b)
                                         * if a chain can not be constructed using all the certificates in the
                                         * designated collection.
                                    !    *
                                         * @param chain a collection of certificates, not necessarily ordered, but
                                         *          assumed to include a CA certificate authenticating our alias
                                         *          public key, which is the subject of the alias self-signed
                                    *************** class ImportCmd extends Command
                                    *** 772,778 ****
                                         * the import operation. On the other hand if the <code>promptUser</code>
                                         * parameter is <code>false</code> then this method will throw an exception
                                         * if no trust anchor is to be found.
                                    !    * 
                                         * @param reply an ordered certificate path, where the last entry is the CA's
                                         *          self-signed certificate.
                                         * @param promptUser a boolean flag indicating whether or not to prompt the
                                    --- 772,778 ----
                                         * the import operation. On the other hand if the <code>promptUser</code>
                                         * parameter is <code>false</code> then this method will throw an exception
                                         * if no trust anchor is to be found.
                                    !    *
                                         * @param reply an ordered certificate path, where the last entry is the CA's
                                         *          self-signed certificate.
                                         * @param promptUser a boolean flag indicating whether or not to prompt the
                                    *************** class ImportCmd extends Command
                                    *** 863,869 ****
                                        /**
                                         * Return an instance of {@link PKIXParameters} constructed using a key store
                                         * of the designated type and located at the designated path.
                                    !    * 
                                         * @param type the type of the key-store to load.
                                         * @param pathName the local File System fully qualified path name to the key
                                         *          store.
                                    --- 863,869 ----
                                        /**
                                         * Return an instance of {@link PKIXParameters} constructed using a key store
                                         * of the designated type and located at the designated path.
                                    !    *
                                         * @param type the type of the key-store to load.
                                         * @param pathName the local File System fully qualified path name to the key
                                         *          store.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 77,88 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-dest ALIAS</dt>
                                       *      <dd>Use this option to specify the new <i>Alias</i> which will be used
                                       *      to identify the cloned copy of the <i>Key Entry</i>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keypass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password which the tool will use to
                                       *      unlock the <i>Key Entry</i> associated with the designated <i>Alias</i>.
                                    --- 77,88 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-dest ALIAS</dt>
                                       *      <dd>Use this option to specify the new <i>Alias</i> which will be used
                                       *      to identify the cloned copy of the <i>Key Entry</i>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keypass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password which the tool will use to
                                       *      unlock the <i>Key Entry</i> associated with the designated <i>Alias</i>.
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 91,102 ****
                                       *      <i>Key Entry</i> using the same password protecting the key store. If
                                       *      this fails, you will then be prompted to provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-new PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the private key
                                       *      material of the newly cloned copy of the <i>Key Entry</i>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 91,102 ----
                                       *      <i>Key Entry</i> using the same password protecting the key store. If
                                       *      this fails, you will then be prompted to provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-new PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the private key
                                       *      material of the newly cloned copy of the <i>Key Entry</i>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 104,110 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 104,110 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 117,129 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 117,129 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 131,137 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 131,137 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 77,83 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keypass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password which the tool will use to
                                       *      unlock the <i>Key Entry</i> associated with the designated <i>Alias</i>.
                                    --- 77,83 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keypass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password which the tool will use to
                                       *      unlock the <i>Key Entry</i> associated with the designated <i>Alias</i>.
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 86,97 ****
                                       *      <i>Key Entry</i> using the same password protecting the key store. If
                                       *      this fails, you will then be prompted to provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-new PASSWORD</dt>
                                       *      <dd>The new, and different, password which will be used to protect the
                                       *      private key material of the designated Key Entry.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 86,97 ----
                                       *      <i>Key Entry</i> using the same password protecting the key store. If
                                       *      this fails, you will then be prompted to provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-new PASSWORD</dt>
                                       *      <dd>The new, and different, password which will be used to protect the
                                       *      private key material of the designated Key Entry.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 99,105 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 99,105 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 112,124 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 112,124 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 126,132 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 126,132 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    *************** class KeyPasswdCmd extends Command
                                    *** 317,323 ****
                                      
                                        /**
                                         * Set the new password to use for protecting Alias's private key.
                                    !    * 
                                         * @param password the new key password. if <code>null</code> prompt the
                                         *          user to provide one. When prompting, the password is entered twice
                                         *          and compared for a match.
                                    --- 317,323 ----
                                      
                                        /**
                                         * Set the new password to use for protecting Alias's private key.
                                    !    *
                                         * @param password the new key password. if <code>null</code> prompt the
                                         *          user to provide one. When prompting, the password is entered twice
                                         *          and compared for a match.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.logging.Logger;
                                    *** 69,75 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 69,75 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import java.util.logging.Logger;
                                    *** 77,83 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 77,83 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import java.util.logging.Logger;
                                    *** 90,102 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 90,102 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import java.util.logging.Logger;
                                    *** 104,114 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-rfc</dt>
                                       *      <dd>Use RFC-1421 specifications when encoding the output.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Output the certificate in human-readable format. If both this option
                                       *      and the <code>-rfc</code> option are detected on the command line, the
                                    --- 104,114 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-rfc</dt>
                                       *      <dd>Use RFC-1421 specifications when encoding the output.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Output the certificate in human-readable format. If both this option
                                       *      and the <code>-rfc</code> option are detected on the command line, the
                                    *************** class ListCmd extends Command
                                    *** 307,313 ****
                                      
                                        /**
                                         * Prints the certificate(s) associated with the designated alias.
                                    !    * 
                                         * @param anAlias a non-null string denoting an alias in the key-store.
                                         * @param writer where to print.
                                         * @throws KeyStoreException if an exception occurs while obtaining the
                                    --- 307,313 ----
                                      
                                        /**
                                         * Prints the certificate(s) associated with the designated alias.
                                    !    *
                                         * @param anAlias a non-null string denoting an alias in the key-store.
                                         * @param writer where to print.
                                         * @throws KeyStoreException if an exception occurs while obtaining the
                                    *************** class ListCmd extends Command
                                    *** 355,361 ****
                                         * is generated.
                                         * <p>Note that both <code>v</code> and <code>rfc</code> cannot both be
                                         * <code>true</code> at the same time.
                                    !    * 
                                         * @param chain the certificate chain to process.
                                         * @param writer where to print.
                                         * @throws CertificateEncodingException if an exception occurs while obtaining
                                    --- 355,361 ----
                                         * is generated.
                                         * <p>Note that both <code>v</code> and <code>rfc</code> cannot both be
                                         * <code>true</code> at the same time.
                                    !    *
                                         * @param chain the certificate chain to process.
                                         * @param writer where to print.
                                         * @throws CertificateEncodingException if an exception occurs while obtaining
                                    *************** class ListCmd extends Command
                                    *** 395,401 ****
                                         * is generated.
                                         * <p>Note that both <code>v</code> and <code>rfc</code> cannot both be
                                         * <code>true</code> at the same time.
                                    !    * 
                                         * @param certificate the certificate to process.
                                         * @param writer where to print.
                                         * @throws CertificateEncodingException if an exception occurs while obtaining
                                    --- 395,401 ----
                                         * is generated.
                                         * <p>Note that both <code>v</code> and <code>rfc</code> cannot both be
                                         * <code>true</code> at the same time.
                                    !    *
                                         * @param certificate the certificate to process.
                                         * @param writer where to print.
                                         * @throws CertificateEncodingException if an exception occurs while obtaining
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.logging.Logger;
                                    *** 62,68 ****
                                       *      <dd>The fully qualified path of the file to read the certificate from.
                                       *      If this option is omitted, the tool will process STDIN.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 62,68 ----
                                       *      <dd>The fully qualified path of the file to read the certificate from.
                                       *      If this option is omitted, the tool will process STDIN.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 81,87 ****
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-sigalg ALGORITHM</dt>
                                       *      <dd>The canonical name of the digital signature algorithm to use for
                                       *      signing the certificate. If this option is omitted, a default value will
                                    --- 81,87 ----
                                       *      a default value of <code>mykey</code> shall be used when this option is
                                       *      omitted from the command line.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-sigalg ALGORITHM</dt>
                                       *      <dd>The canonical name of the digital signature algorithm to use for
                                       *      signing the certificate. If this option is omitted, a default value will
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 91,97 ****
                                       *      If on the other hand the private key is an <code>RSA</code> one, then
                                       *      the tool will use <code>MD5withRSA</code> as the signature algorithm.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-dname NAME</dt>
                                       *      <dd>Use this option to specify the <i>Distinguished Name</i> of the
                                       *      newly generated self-signed certificate. If this option is omitted, the
                                    --- 91,97 ----
                                       *      If on the other hand the private key is an <code>RSA</code> one, then
                                       *      the tool will use <code>MD5withRSA</code> as the signature algorithm.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-dname NAME</dt>
                                       *      <dd>Use this option to specify the <i>Distinguished Name</i> of the
                                       *      newly generated self-signed certificate. If this option is omitted, the
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 105,123 ****
                                       *      <dl>
                                       *              <dt>CN</dt>
                                       *              <dd>The Common Name; e.g. "host.domain.com"</dd>
                                    !  *              
                                       *              <dt>OU</dt>
                                       *              <dd>The Organizational Unit; e.g. "IT Department"</dd>
                                    !  *              
                                       *              <dt>O</dt>
                                       *              <dd>The Organization Name; e.g. "The Sample Company"</dd>
                                    !  *              
                                       *              <dt>L</dt>
                                       *              <dd>The Locality Name; e.g. "Sydney"</dd>
                                    !  *              
                                       *              <dt>ST</dt>
                                       *              <dd>The State Name; e.g. "New South Wales"</dd>
                                    !  *              
                                       *              <dt>C</dt>
                                       *              <dd>The 2-letter Country identifier; e.g. "AU"</dd>
                                       *      </dl>
                                    --- 105,123 ----
                                       *      <dl>
                                       *              <dt>CN</dt>
                                       *              <dd>The Common Name; e.g. "host.domain.com"</dd>
                                    !  *
                                       *              <dt>OU</dt>
                                       *              <dd>The Organizational Unit; e.g. "IT Department"</dd>
                                    !  *
                                       *              <dt>O</dt>
                                       *              <dd>The Organization Name; e.g. "The Sample Company"</dd>
                                    !  *
                                       *              <dt>L</dt>
                                       *              <dd>The Locality Name; e.g. "Sydney"</dd>
                                    !  *
                                       *              <dt>ST</dt>
                                       *              <dd>The State Name; e.g. "New South Wales"</dd>
                                    !  *
                                       *              <dt>C</dt>
                                       *              <dd>The 2-letter Country identifier; e.g. "AU"</dd>
                                       *      </dl>
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 130,140 ****
                                       *        CN=host.domain.com, O=The Sample Company, L=Sydney, ST=NSW, C=AU
                                       *      </pre>
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-validity DAY_COUNT</dt>
                                    !  *      
                                       *      <dt>-keypass PASSWORD</dt>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 130,140 ----
                                       *        CN=host.domain.com, O=The Sample Company, L=Sydney, ST=NSW, C=AU
                                       *      </pre>
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-validity DAY_COUNT</dt>
                                    !  *
                                       *      <dt>-keypass PASSWORD</dt>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 142,148 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 142,148 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 155,167 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 155,167 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import javax.security.auth.x500.X500Prin
                                    *** 169,175 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 169,175 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java	Tue Jan 11 19:46:05 2011
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 70,76 ****
                                       *      <dd>The new, and different, password which will be used to protect the
                                       *      designated key store.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    --- 70,76 ----
                                       *      <dd>The new, and different, password which will be used to protect the
                                       *      designated key store.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storetype STORE_TYPE</dt>
                                       *      <dd>Use this option to specify the type of the key store to use. The
                                       *      default value, if this option is omitted, is that of the property
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 78,84 ****
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    --- 78,84 ----
                                       *      obtained by invoking the {@link java.security.KeyStore#getDefaultType()}
                                       *      static method.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-keystore URL</dt>
                                       *      <dd>Use this option to specify the location of the key store to use.
                                       *      The default value is a file {@link java.net.URL} referencing the file
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 91,103 ****
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    --- 91,103 ----
                                       *      name (with absolute or relative path-name) of a key store --as if the
                                       *      protocol was <code>file:</code>.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-storepass PASSWORD</dt>
                                       *      <dd>Use this option to specify the password protecting the key store. If
                                       *      this option is omitted from the command line, you will be prompted to
                                       *      provide a password.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-provider PROVIDER_CLASS_NAME</dt>
                                       *      <dd>A fully qualified class name of a Security Provider to add to the
                                       *      current list of Security Providers already installed in the JVM in-use.
                                    *************** import javax.security.auth.callback.Unsu
                                    *** 105,111 ****
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *      
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    --- 105,111 ----
                                       *      added to the runtime --i.e. it was not already installed-- then the tool
                                       *      will attempt to removed this Security Provider before exiting.
                                       *      <p></dd>
                                    !  *
                                       *      <dt>-v</dt>
                                       *      <dd>Use this option to enable more verbose output.</dd>
                                       * </dl>
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java	Sat Jan  9 00:00:42 2010
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,5 ****
                                      /* NamingServicePersistent.java -- The persistent naming service.
                                    !    Copyright (C) 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    --- 1,5 ----
                                      /* NamingServicePersistent.java -- The persistent naming service.
                                    !    Copyright (C) 2006, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    *************** import java.io.PrintStream;
                                    *** 54,65 ****
                                      import java.io.UnsupportedEncodingException;
                                      
                                      /**
                                    !  * The server for the GNU Classpath persistent naming service. 
                                    !  * 
                                       * GNU Classpath currently works with this naming service and is also
                                       * interoperable with the Sun Microsystems naming services from releases 1.3 and
                                       * 1.4, both transient <i>tnameserv</i> and persistent <i>orbd</i>.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public class Main
                                    --- 54,65 ----
                                      import java.io.UnsupportedEncodingException;
                                      
                                      /**
                                    !  * The server for the GNU Classpath persistent naming service.
                                    !  *
                                       * GNU Classpath currently works with this naming service and is also
                                       * interoperable with the Sun Microsystems naming services from releases 1.3 and
                                       * 1.4, both transient <i>tnameserv</i> and persistent <i>orbd</i>.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public class Main
                                    *************** public class Main
                                    *** 78,84 ****
                                        /**
                                         * Get the object key for the naming service. The default key is the string
                                         * "NameService" in ASCII.
                                    !    * 
                                         * @return the byte array.
                                         */
                                        public static byte[] getDefaultKey()
                                    --- 78,84 ----
                                        /**
                                         * Get the object key for the naming service. The default key is the string
                                         * "NameService" in ASCII.
                                    !    *
                                         * @return the byte array.
                                         */
                                        public static byte[] getDefaultKey()
                                    *************** public class Main
                                    *** 179,185 ****
                                              System.out.println("GNU Classpath persistent naming service "
                                                                 + "started at " + iorr.Internet.host + ":"
                                                                 + iorr.Internet.port + " key 'NameService'.\n\n"
                                    !                            + "Copyright (C) 2010 Free Software Foundation\n"
                                                                 + "This tool comes with ABSOLUTELY NO WARRANTY. "
                                                                 + "This is free software, and you are\nwelcome to "
                                                                 + "redistribute it under conditions, defined in "
                                    --- 179,185 ----
                                              System.out.println("GNU Classpath persistent naming service "
                                                                 + "started at " + iorr.Internet.host + ":"
                                                                 + iorr.Internet.port + " key 'NameService'.\n\n"
                                    !                            + "Copyright (C) 2011 Free Software Foundation\n"
                                                                 + "This tool comes with ABSOLUTELY NO WARRANTY. "
                                                                 + "This is free software, and you are\nwelcome to "
                                                                 + "redistribute it under conditions, defined in "
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CosNaming.NamingContextPa
                                    *** 55,61 ****
                                       * This class implements the persistent naming service, defined by
                                       * {@link NamingContext}. The 'persistent' means that the service remembers the
                                       * mappings, stored between restarts.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public class PersistentContext
                                    --- 55,61 ----
                                       * This class implements the persistent naming service, defined by
                                       * {@link NamingContext}. The 'persistent' means that the service remembers the
                                       * mappings, stored between restarts.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public class PersistentContext
                                    *************** public class PersistentContext
                                    *** 65,91 ****
                                         * Use serial version UID for interoperability.
                                         */
                                        private static final long serialVersionUID = 2;
                                    !   
                                        /**
                                         * The folder, where the persistent context information is stored.
                                         */
                                        File contextFolder;
                                    !   
                                        /**
                                         * The uinque context identifier.
                                         */
                                        static long num = System.currentTimeMillis();
                                    !   
                                        /**
                                         * The naming service orb.
                                         */
                                        ORB orb;
                                    !   
                                        /**
                                         * Create the persistent naming context that will store the files in the given
                                         * folder of the local file system. This method also connects object to the
                                         * passed ORB.
                                    !    * 
                                         * @param an_orb the naming service ORB, used to obtain and produce the object
                                         *          stringified references.
                                         * @param folder the folder, where the persistent information is stored.
                                    --- 65,91 ----
                                         * Use serial version UID for interoperability.
                                         */
                                        private static final long serialVersionUID = 2;
                                    ! 
                                        /**
                                         * The folder, where the persistent context information is stored.
                                         */
                                        File contextFolder;
                                    ! 
                                        /**
                                         * The uinque context identifier.
                                         */
                                        static long num = System.currentTimeMillis();
                                    ! 
                                        /**
                                         * The naming service orb.
                                         */
                                        ORB orb;
                                    ! 
                                        /**
                                         * Create the persistent naming context that will store the files in the given
                                         * folder of the local file system. This method also connects object to the
                                         * passed ORB.
                                    !    *
                                         * @param an_orb the naming service ORB, used to obtain and produce the object
                                         *          stringified references.
                                         * @param folder the folder, where the persistent information is stored.
                                    *************** public class PersistentContext
                                    *** 97,119 ****
                                        {
                                          super(
                                               new PersistentContextMap(an_orb, new File(folder, "contexts.txt"), reset),
                                    !          new PersistentMap(an_orb, new File(folder, "objects.txt"), reset));         
                                          contextFolder = folder;
                                          folder.mkdirs();
                                          orb = an_orb;
                                          orb.connect(this);
                                        }
                                    !   
                                        /**
                                         * Get the unique context number;
                                    !    * 
                                         * @return the context number
                                         */
                                        static synchronized String getNum()
                                        {
                                          return Long.toHexString(num++);
                                        }
                                    !   
                                        /**
                                         * Create new persistent context.
                                         */
                                    --- 97,119 ----
                                        {
                                          super(
                                               new PersistentContextMap(an_orb, new File(folder, "contexts.txt"), reset),
                                    !          new PersistentMap(an_orb, new File(folder, "objects.txt"), reset));
                                          contextFolder = folder;
                                          folder.mkdirs();
                                          orb = an_orb;
                                          orb.connect(this);
                                        }
                                    ! 
                                        /**
                                         * Get the unique context number;
                                    !    *
                                         * @return the context number
                                         */
                                        static synchronized String getNum()
                                        {
                                          return Long.toHexString(num++);
                                        }
                                    ! 
                                        /**
                                         * Create new persistent context.
                                         */
                                    *************** public class PersistentContext
                                    *** 122,132 ****
                                          File ctxFolder = new File(contextFolder, "ctx_"+getNum());
                                          return new PersistentContext(orb, ctxFolder, true);
                                        }
                                    !   
                                        /**
                                         * Create a new context and give it a given name (bound it) in the current
                                         * context. The method benefits from passing the better readable context name.
                                    !    * 
                                         * @param a_name the name being given to the new context.
                                         * @return the newly created context.
                                         * @throws AlreadyBound if the name is already in use.
                                    --- 122,132 ----
                                          File ctxFolder = new File(contextFolder, "ctx_"+getNum());
                                          return new PersistentContext(orb, ctxFolder, true);
                                        }
                                    ! 
                                        /**
                                         * Create a new context and give it a given name (bound it) in the current
                                         * context. The method benefits from passing the better readable context name.
                                    !    *
                                         * @param a_name the name being given to the new context.
                                         * @return the newly created context.
                                         * @throws AlreadyBound if the name is already in use.
                                    *************** public class PersistentContext
                                    *** 148,152 ****
                                          NamingContext child = new PersistentContext(orb, ctxFolder, true);
                                          bind_context(a_name, child);
                                          return child;
                                    !   }  
                                      }
                                    --- 148,152 ----
                                          NamingContext child = new PersistentContext(orb, ctxFolder, true);
                                          bind_context(a_name, child);
                                          return child;
                                    !   }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CORBA.ORB;
                                    *** 44,51 ****
                                      import org.omg.CORBA.Object;
                                      
                                      /**
                                    !  * The persistent context naming map for the persistent naming service. 
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public class PersistentContextMap extends PersistentMap
                                    --- 44,51 ----
                                      import org.omg.CORBA.Object;
                                      
                                      /**
                                    !  * The persistent context naming map for the persistent naming service.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public class PersistentContextMap extends PersistentMap
                                    *************** public class PersistentContextMap extend
                                    *** 53,59 ****
                                        /**
                                         * Create the persistent context map that stores information in the given
                                         * file.
                                    !    * 
                                         * @param an_orb the naming service ORB, used to obtain and produce the object
                                         *          stringified references.
                                         * @param mapFile the file, where the persistent information is stored.
                                    --- 53,59 ----
                                        /**
                                         * Create the persistent context map that stores information in the given
                                         * file.
                                    !    *
                                         * @param an_orb the naming service ORB, used to obtain and produce the object
                                         *          stringified references.
                                         * @param mapFile the file, where the persistent information is stored.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java	Tue Jan 11 19:46:05 2011
                                    *************** import org.omg.CosNaming.NamingContextPa
                                    *** 61,67 ****
                                       * inherited (super.) naming map implementation is transient and is used as a
                                       * cache. During the normal work, the naming map does not read from the disk,
                                       * just stores the changes there. Map only reads from the disk when it starts.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public class PersistentMap
                                    --- 61,67 ----
                                       * inherited (super.) naming map implementation is transient and is used as a
                                       * cache. During the normal work, the naming map does not read from the disk,
                                       * just stores the changes there. Map only reads from the disk when it starts.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
                                       */
                                      public class PersistentMap
                                    *************** public class PersistentMap
                                    *** 158,164 ****
                                      
                                          /**
                                           * Get the key value from the name component.
                                    !      * 
                                           * @param id the component id
                                           * @param kind the component kind
                                           * @return the key value
                                    --- 158,164 ----
                                      
                                          /**
                                           * Get the key value from the name component.
                                    !      *
                                           * @param id the component id
                                           * @param kind the component kind
                                           * @return the key value
                                    *************** public class PersistentMap
                                    *** 176,182 ****
                                          /**
                                           * Append the contents of the string to this string buffer, inserting the
                                           * escape sequences, where required.
                                    !      * 
                                           * @param b a buffer to append the contents to.
                                           * @param s a string to append.
                                           */
                                    --- 176,182 ----
                                          /**
                                           * Append the contents of the string to this string buffer, inserting the
                                           * escape sequences, where required.
                                    !      *
                                           * @param b a buffer to append the contents to.
                                           * @param s a string to append.
                                           */
                                    *************** public class PersistentMap
                                    *** 214,220 ****
                                         * references.
                                         */
                                        ORB orb;
                                    !   
                                        /**
                                         * If true, all existing data on the file system are discarded.
                                         */
                                    --- 214,220 ----
                                         * references.
                                         */
                                        ORB orb;
                                    ! 
                                        /**
                                         * If true, all existing data on the file system are discarded.
                                         */
                                    *************** public class PersistentMap
                                    *** 222,228 ****
                                      
                                        /**
                                         * Create the persistent map that stores information in the given file.
                                    !    * 
                                         * @param an_orb the naming service ORB, used to obtain and produce the object
                                         *          stringified references.
                                         * @param mapFile the file, where the persistent information is stored.
                                    --- 222,228 ----
                                      
                                        /**
                                         * Create the persistent map that stores information in the given file.
                                    !    *
                                         * @param an_orb the naming service ORB, used to obtain and produce the object
                                         *          stringified references.
                                         * @param mapFile the file, where the persistent information is stored.
                                    *************** public class PersistentMap
                                    *** 264,291 ****
                                                }
                                            }
                                        }
                                    !   
                                        /**
                                         * Restore object from its string description.
                                    !    * 
                                         * @param description the string, describing the object
                                    !    * 
                                         * @return the object.
                                         */
                                        protected org.omg.CORBA.Object string_to_object(String description)
                                        {
                                          return orb.string_to_object(description);
                                        }
                                    !   
                                        /**
                                         * Convert the object to its string description
                                    !    * 
                                         * @param object the object to convert
                                         * @return the string description of the object
                                         */
                                        protected String object_to_string(org.omg.CORBA .Object object)
                                        {
                                    !       return orb.object_to_string(object);    
                                        }
                                      
                                        /**
                                    --- 264,291 ----
                                                }
                                            }
                                        }
                                    ! 
                                        /**
                                         * Restore object from its string description.
                                    !    *
                                         * @param description the string, describing the object
                                    !    *
                                         * @return the object.
                                         */
                                        protected org.omg.CORBA.Object string_to_object(String description)
                                        {
                                          return orb.string_to_object(description);
                                        }
                                    ! 
                                        /**
                                         * Convert the object to its string description
                                    !    *
                                         * @param object the object to convert
                                         * @return the string description of the object
                                         */
                                        protected String object_to_string(org.omg.CORBA .Object object)
                                        {
                                    !       return orb.object_to_string(object);
                                        }
                                      
                                        /**
                                    *************** public class PersistentMap
                                    *** 293,299 ****
                                         * with the given name already exists, or if the given object is already
                                         * mapped under another name, the {@link AlreadyBound} exception will be
                                         * thrown.
                                    !    * 
                                         * @param name the name
                                         * @param object the object
                                         */
                                    --- 293,299 ----
                                         * with the given name already exists, or if the given object is already
                                         * mapped under another name, the {@link AlreadyBound} exception will be
                                         * thrown.
                                    !    *
                                         * @param name the name
                                         * @param object the object
                                         */
                                    *************** public class PersistentMap
                                    *** 312,318 ****
                                        /**
                                         * Put the given CORBA object, specifying the given name as a key. Remove all
                                         * pre - existing mappings for the given name and object.
                                    !    * 
                                         * @param name the name.
                                         * @param object the object
                                         */
                                    --- 312,318 ----
                                        /**
                                         * Put the given CORBA object, specifying the given name as a key. Remove all
                                         * pre - existing mappings for the given name and object.
                                    !    *
                                         * @param name the name.
                                         * @param object the object
                                         */
                                    *************** public class PersistentMap
                                    *** 324,330 ****
                                              org.omg.CORBA.Object existing = get(name);
                                              String ior = object_to_string(object);
                                              String xior = object_to_string(existing);
                                    !         
                                              // Same name and same ior - nothing to do.
                                              if (ior.equals(xior))
                                                return;
                                    --- 324,330 ----
                                              org.omg.CORBA.Object existing = get(name);
                                              String ior = object_to_string(object);
                                              String xior = object_to_string(existing);
                                    ! 
                                              // Same name and same ior - nothing to do.
                                              if (ior.equals(xior))
                                                return;
                                    *************** public class PersistentMap
                                    *** 349,355 ****
                                      
                                        /**
                                         * Removes the given name, if present.
                                    !    * 
                                         * @param name a name to remove.
                                         */
                                        public void remove(NameComponent name)
                                    --- 349,355 ----
                                      
                                        /**
                                         * Removes the given name, if present.
                                    !    *
                                         * @param name a name to remove.
                                         */
                                        public void remove(NameComponent name)
                                    *************** public class PersistentMap
                                    *** 360,366 ****
                                      
                                        /**
                                         * Register this name - object pair in the persistent storage.
                                    !    * 
                                         * @param name the name.
                                         * @param object the object
                                         */
                                    --- 360,366 ----
                                      
                                        /**
                                         * Register this name - object pair in the persistent storage.
                                    !    *
                                         * @param name the name.
                                         * @param object the object
                                         */
                                    *************** public class PersistentMap
                                    *** 399,405 ****
                                      
                                        /**
                                         * Remove this name from the persistent storage.
                                    !    * 
                                         * @param name the name to remove
                                         */
                                        public void unregister(NameComponent name)
                                    --- 399,405 ----
                                      
                                        /**
                                         * Remove this name from the persistent storage.
                                    !    *
                                         * @param name the name to remove
                                         */
                                        public void unregister(NameComponent name)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java	Tue Jan 11 19:46:05 2011
                                    *************** public interface AbstractMethodGenerator
                                    *** 44,53 ****
                                         * Generate this method for the Stub (remote caller) class.
                                         */
                                        String generateStubMethod();
                                    !   
                                        /**
                                         * Generate this method for the Tie (remote servant) class.
                                         */
                                        String generateTieMethod();
                                    !   
                                      }
                                    --- 44,53 ----
                                         * Generate this method for the Stub (remote caller) class.
                                         */
                                        String generateStubMethod();
                                    ! 
                                        /**
                                         * Generate this method for the Tie (remote servant) class.
                                         */
                                        String generateTieMethod();
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java	Tue Jan 11 19:46:05 2011
                                    *************** General Public License for more details.
                                    *** 17,23 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    --- 17,40 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    *************** public class ClassRmicCompiler
                                    *** 92,103 ****
                                      
                                          for (int i = next; i < args.length; i++)
                                            {
                                    ! 	try
                                    ! 	  {
                                                  if (verbose)
                                    ! 	      System.out.println("[Processing class " + args[i] + ".class]");
                                    ! 	    processClass(args[i].replace(File.separatorChar, '.'));
                                    ! 	  }
                                              catch (IOException e)
                                                {
                                                  errors.add(e);
                                    --- 109,120 ----
                                      
                                          for (int i = next; i < args.length; i++)
                                            {
                                    !         try
                                    !           {
                                                  if (verbose)
                                    !               System.out.println("[Processing class " + args[i] + ".class]");
                                    !             processClass(args[i].replace(File.separatorChar, '.'));
                                    !           }
                                              catch (IOException e)
                                                {
                                                  errors.add(e);
                                    *************** public class ClassRmicCompiler
                                    *** 1570,1584 ****
                                        {
                                          for (int i = 0; i < except.length; i++)
                                            {
                                    ! 	for (int j = i + 1; j < except.length; j++)
                                    ! 	  {
                                    ! 	    if (except[i].isAssignableFrom(except[j]))
                                    ! 	      {
                                    ! 		Class tmp = except[i];
                                    ! 		except[i] = except[j];
                                    ! 		except[j] = tmp;
                                    ! 	      }
                                    ! 	  }
                                            }
                                          return (except);
                                        }
                                    --- 1587,1601 ----
                                        {
                                          for (int i = 0; i < except.length; i++)
                                            {
                                    !         for (int j = i + 1; j < except.length; j++)
                                    !           {
                                    !             if (except[i].isAssignableFrom(except[j]))
                                    !               {
                                    !                 Class tmp = except[i];
                                    !                 except[i] = except[j];
                                    !                 except[j] = tmp;
                                    !               }
                                    !           }
                                            }
                                          return (except);
                                        }
                                    *************** public class ClassRmicCompiler
                                    *** 1715,1728 ****
                                          StringBuilder str = new StringBuilder();
                                          for (int count = 0;; count++)
                                            {
                                    ! 	if (! cls.isArray())
                                    ! 	  {
                                    ! 	    str.append(cls.getName());
                                    ! 	    for (; count > 0; count--)
                                    ! 	      str.append("[]");
                                    ! 	    return (str.toString());
                                    ! 	  }
                                    ! 	cls = cls.getComponentType();
                                            }
                                        }
                                      
                                    --- 1732,1745 ----
                                          StringBuilder str = new StringBuilder();
                                          for (int count = 0;; count++)
                                            {
                                    !         if (! cls.isArray())
                                    !           {
                                    !             str.append(cls.getName());
                                    !             for (; count > 0; count--)
                                    !               str.append("[]");
                                    !             return (str.toString());
                                    !           }
                                    !         cls = cls.getComponentType();
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java	Tue Jan 11 19:46:05 2011
                                    *************** You should have received a copy of the G
                                    *** 17,38 ****
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                      /**
                                       * This error is thrown when the target being compiled has illegal
                                       * strutures.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class CompilationError extends Error
                                      {
                                    !   /** 
                                    !    * Use serialVersionUID for interoperability. 
                                         */
                                    !   private static final long serialVersionUID = 1;  
                                      
                                        /**
                                         * Create error with explaining message and cause.
                                    --- 17,55 ----
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                      /**
                                       * This error is thrown when the target being compiled has illegal
                                       * strutures.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class CompilationError extends Error
                                      {
                                    !   /**
                                    !    * Use serialVersionUID for interoperability.
                                         */
                                    !   private static final long serialVersionUID = 1;
                                      
                                        /**
                                         * Create error with explaining message and cause.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java	Tue Jan 11 19:46:05 2011
                                    *************** You should have received a copy of the G
                                    *** 17,23 ****
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    --- 17,40 ----
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    *************** import java.util.Map;
                                    *** 32,45 ****
                                      
                                      /**
                                       * Contains basic methods, used in code generation.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class Generator
                                      {
                                        /**
                                         * Get resource with the given name, as string.
                                    !    * 
                                         * @param name the resource name
                                         * @return the resourse string (in subfolder /templates).
                                         */
                                    --- 49,62 ----
                                      
                                      /**
                                       * Contains basic methods, used in code generation.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class Generator
                                      {
                                        /**
                                         * Get resource with the given name, as string.
                                    !    *
                                         * @param name the resource name
                                         * @return the resourse string (in subfolder /templates).
                                         */
                                    *************** public class Generator
                                    *** 79,85 ****
                                         * Replace the variable references (starting from #) in the template string by
                                         * the values, present in the given map. The strings, not present in the
                                         * variable map, are ignored.
                                    !    * 
                                         * @param template
                                         *          the template string
                                         * @param variables
                                    --- 96,102 ----
                                         * Replace the variable references (starting from #) in the template string by
                                         * the values, present in the given map. The strings, not present in the
                                         * variable map, are ignored.
                                    !    *
                                         * @param template
                                         *          the template string
                                         * @param variables
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java	Tue Jan 11 19:46:05 2011
                                    *************** You should have received a copy of the G
                                    *** 17,23 ****
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    --- 17,40 ----
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    *************** import org.omg.CORBA.portable.ObjectImpl
                                    *** 27,33 ****
                                      
                                      /**
                                       * Generates the code for reading and writing data over GIOP stream.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class GiopIo
                                    --- 44,50 ----
                                      
                                      /**
                                       * Generates the code for reading and writing data over GIOP stream.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class GiopIo
                                    *************** public class GiopIo
                                    *** 35,41 ****
                                        /**
                                         * Get the statement for writing the variable of the given type to the GIOP ({@link org.omg.CORBA_2_3.portable.OutputStream) stream. The
                                         * stream is always named "out".
                                    !    * 
                                         * @param c
                                         *          the class of the object being written
                                         * @param variable
                                    --- 52,58 ----
                                        /**
                                         * Get the statement for writing the variable of the given type to the GIOP ({@link org.omg.CORBA_2_3.portable.OutputStream) stream. The
                                         * stream is always named "out".
                                    !    *
                                         * @param c
                                         *          the class of the object being written
                                         * @param variable
                                    *************** public class GiopIo
                                    *** 73,79 ****
                                        /**
                                         * Get the statement for reading the value of the given type from to the GIOP ({@link org.omg.CORBA_2_3.portable.InputStream) stream. The
                                         * stream is always named "in".
                                    !    * 
                                         * @param c
                                         *          the class of the object being written
                                         * @param r
                                    --- 90,96 ----
                                        /**
                                         * Get the statement for reading the value of the given type from to the GIOP ({@link org.omg.CORBA_2_3.portable.InputStream) stream. The
                                         * stream is always named "in".
                                    !    *
                                         * @param c
                                         *          the class of the object being written
                                         * @param r
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java	Tue Jan 11 19:46:05 2011
                                    *************** You should have received a copy of the G
                                    *** 17,23 ****
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! */
                                      
                                      
                                      package gnu.classpath.tools.rmic;
                                    --- 17,39 ----
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      
                                      package gnu.classpath.tools.rmic;
                                    *************** import java.util.HashSet;
                                    *** 29,43 ****
                                       * the passed array of strings). This character is used to accelerate the
                                       * method invocation by name.
                                       *
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) 
                                       */
                                      public class HashFinder
                                      {
                                         /**
                                         * Find the hash char position in the given collection of strings.
                                    !    * 
                                         * @param strings the string collection
                                    !    * 
                                         * @return the optimal hash character position, always less then the
                                         * length of the shortest string.
                                         */
                                    --- 45,59 ----
                                       * the passed array of strings). This character is used to accelerate the
                                       * method invocation by name.
                                       *
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public class HashFinder
                                      {
                                         /**
                                         * Find the hash char position in the given collection of strings.
                                    !    *
                                         * @param strings the string collection
                                    !    *
                                         * @return the optimal hash character position, always less then the
                                         * length of the shortest string.
                                         */
                                    *************** public class HashFinder
                                    *** 65,74 ****
                                              {
                                                charLists[p].add(new Integer(strings[i].charAt(p)));
                                              }
                                    !     
                                          int m = 0;
                                          int v = charLists[0].size();
                                    !     
                                          for (int i = 1; i < charLists.length; i++)
                                            {
                                              // Replace on equality also, seeking the hash char closer to the end
                                    --- 81,90 ----
                                              {
                                                charLists[p].add(new Integer(strings[i].charAt(p)));
                                              }
                                    ! 
                                          int m = 0;
                                          int v = charLists[0].size();
                                    ! 
                                          for (int i = 1; i < charLists.length; i++)
                                            {
                                              // Replace on equality also, seeking the hash char closer to the end
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** You should have received a copy of the G
                                    *** 17,23 ****
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    --- 17,40 ----
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    *************** import java.util.ArrayList;
                                    *** 30,37 ****
                                      
                                      /**
                                       * Generates the ordinary stubs (not GIOP based) for java.rmi.*  package.
                                    !  * 
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) 
                                       */
                                      public class Main
                                      {
                                    --- 47,54 ----
                                      
                                      /**
                                       * Generates the ordinary stubs (not GIOP based) for java.rmi.*  package.
                                    !  *
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public class Main
                                      {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java	Tue Jan 11 19:46:05 2011
                                    *************** You should have received a copy of the G
                                    *** 17,23 ****
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    --- 17,40 ----
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    *************** import java.util.Properties;
                                    *** 29,35 ****
                                      /**
                                       * Keeps information about the single method and generates the code fragments,
                                       * related to that method.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class MethodGenerator implements AbstractMethodGenerator
                                    --- 46,52 ----
                                      /**
                                       * Keeps information about the single method and generates the code fragments,
                                       * related to that method.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class MethodGenerator implements AbstractMethodGenerator
                                    *************** public class MethodGenerator implements 
                                    *** 43,55 ****
                                         * The parent code generator.
                                         */
                                        SourceGiopRmicCompiler rmic;
                                    !   
                                        /**
                                    !    * The previous method in the list, null for the first element. 
                                         * Used to avoid repretetive inclusion of the same hash code label.
                                         */
                                        MethodGenerator previous = null;
                                    !   
                                        /**
                                         * The hash character position.
                                         */
                                    --- 60,72 ----
                                         * The parent code generator.
                                         */
                                        SourceGiopRmicCompiler rmic;
                                    ! 
                                        /**
                                    !    * The previous method in the list, null for the first element.
                                         * Used to avoid repretetive inclusion of the same hash code label.
                                         */
                                        MethodGenerator previous = null;
                                    ! 
                                        /**
                                         * The hash character position.
                                         */
                                    *************** public class MethodGenerator implements 
                                    *** 57,63 ****
                                      
                                        /**
                                         * Create the new method generator for the given method.
                                    !    * 
                                         * @param aMethod
                                         *          the related method.
                                         * @param aRmic
                                    --- 74,80 ----
                                      
                                        /**
                                         * Create the new method generator for the given method.
                                    !    *
                                         * @param aMethod
                                         *          the related method.
                                         * @param aRmic
                                    *************** public class MethodGenerator implements 
                                    *** 69,78 ****
                                          method = aMethod;
                                          rmic = aRmic;
                                        }
                                    !   
                                        /**
                                         * Get the method name.
                                    !    * 
                                         * @return the name of the method.
                                         */
                                        public String getGiopMethodName()
                                    --- 86,95 ----
                                          method = aMethod;
                                          rmic = aRmic;
                                        }
                                    ! 
                                        /**
                                         * Get the method name.
                                    !    *
                                         * @return the name of the method.
                                         */
                                        public String getGiopMethodName()
                                    *************** public class MethodGenerator implements 
                                    *** 88,94 ****
                                      
                                        /**
                                         * Get the method parameter declaration.
                                    !    * 
                                         * @return the string - method parameter declaration.
                                         */
                                        public String getArgumentList()
                                    --- 105,111 ----
                                      
                                        /**
                                         * Get the method parameter declaration.
                                    !    *
                                         * @return the string - method parameter declaration.
                                         */
                                        public String getArgumentList()
                                    *************** public class MethodGenerator implements 
                                    *** 110,116 ****
                                        /**
                                         * Get the method parameter list only (no type declarations). This is used to
                                         * generate the method invocations statement.
                                    !    * 
                                         * @return the string - method parameter list.
                                         */
                                        public String getArgumentNames()
                                    --- 127,133 ----
                                        /**
                                         * Get the method parameter list only (no type declarations). This is used to
                                         * generate the method invocations statement.
                                    !    *
                                         * @return the string - method parameter list.
                                         */
                                        public String getArgumentNames()
                                    *************** public class MethodGenerator implements 
                                    *** 130,136 ****
                                      
                                        /**
                                         * Get the list of exceptions, thrown by this method.
                                    !    * 
                                         * @return the list of exceptions.
                                         */
                                        public String getThrows()
                                    --- 147,153 ----
                                      
                                        /**
                                         * Get the list of exceptions, thrown by this method.
                                    !    *
                                         * @return the list of exceptions.
                                         */
                                        public String getThrows()
                                    *************** public class MethodGenerator implements 
                                    *** 150,156 ****
                                      
                                        /**
                                         * Generate this method for the Stub class.
                                    !    * 
                                         * @return the method body for the stub class.
                                         */
                                        public String generateStubMethod()
                                    --- 167,173 ----
                                      
                                        /**
                                         * Generate this method for the Stub class.
                                    !    *
                                         * @return the method body for the stub class.
                                         */
                                        public String generateStubMethod()
                                    *************** public class MethodGenerator implements 
                                    *** 160,166 ****
                                          Properties vars = new Properties(rmic.vars);
                                          vars.put("#return_type", rmic.name(method.getReturnType()));
                                          vars.put("#method_name", method.getName());
                                    !     vars.put("#giop_method_name", getGiopMethodName());    
                                          vars.put("#argument_list", getArgumentList());
                                          vars.put("#argument_names", getArgumentNames());
                                      
                                    --- 177,183 ----
                                          Properties vars = new Properties(rmic.vars);
                                          vars.put("#return_type", rmic.name(method.getReturnType()));
                                          vars.put("#method_name", method.getName());
                                    !     vars.put("#giop_method_name", getGiopMethodName());
                                          vars.put("#argument_list", getArgumentList());
                                          vars.put("#argument_names", getArgumentNames());
                                      
                                    *************** public class MethodGenerator implements 
                                    *** 187,201 ****
                                                                                rmic));
                                              templateName = "StubMethod.jav";
                                            }
                                    !     
                                    !     String template = rmic.getResource(templateName);        
                                          String generated = rmic.replaceAll(template, vars);
                                          return generated;
                                        }
                                    !   
                                        /**
                                         * Generate this method handling fragment for the Tie class.
                                    !    * 
                                         * @return the fragment to handle this method for the Tie class.
                                         */
                                        public String generateTieMethod()
                                    --- 204,218 ----
                                                                                rmic));
                                              templateName = "StubMethod.jav";
                                            }
                                    ! 
                                    !     String template = rmic.getResource(templateName);
                                          String generated = rmic.replaceAll(template, vars);
                                          return generated;
                                        }
                                    ! 
                                        /**
                                         * Generate this method handling fragment for the Tie class.
                                    !    *
                                         * @return the fragment to handle this method for the Tie class.
                                         */
                                        public String generateTieMethod()
                                    *************** public class MethodGenerator implements 
                                    *** 205,216 ****
                                          Properties vars = new Properties(rmic.vars);
                                          vars.put("#return_type", rmic.name(method.getReturnType()));
                                          vars.put("#method_name", method.getName());
                                    !     vars.put("#giop_method_name", getGiopMethodName());    
                                          vars.put("#argument_list", getArgumentList());
                                          vars.put("#argument_names", getArgumentNames());
                                      
                                          vars.put("#argument_write", getStubParaWriteStatement());
                                    !     
                                          if (previous == null || previous.getHashChar()!=getHashChar())
                                            vars.put("#hashCodeLabel","    case '"+getHashChar()+"':");
                                          else
                                    --- 222,233 ----
                                          Properties vars = new Properties(rmic.vars);
                                          vars.put("#return_type", rmic.name(method.getReturnType()));
                                          vars.put("#method_name", method.getName());
                                    !     vars.put("#giop_method_name", getGiopMethodName());
                                          vars.put("#argument_list", getArgumentList());
                                          vars.put("#argument_names", getArgumentNames());
                                      
                                          vars.put("#argument_write", getStubParaWriteStatement());
                                    ! 
                                          if (previous == null || previous.getHashChar()!=getHashChar())
                                            vars.put("#hashCodeLabel","    case '"+getHashChar()+"':");
                                          else
                                    *************** public class MethodGenerator implements 
                                    *** 230,240 ****
                                          String template = rmic.getResource(templateName);
                                          String generated = rmic.replaceAll(template, vars);
                                          return generated;
                                    !   }  
                                    !   
                                        /**
                                         * Generate sentences for Reading and Defining Arguments.
                                    !    * 
                                         * @return the sequence of sentences for reading and defining arguments.
                                         */
                                        public String getRda()
                                    --- 247,257 ----
                                          String template = rmic.getResource(templateName);
                                          String generated = rmic.replaceAll(template, vars);
                                          return generated;
                                    !   }
                                    ! 
                                        /**
                                         * Generate sentences for Reading and Defining Arguments.
                                    !    *
                                         * @return the sequence of sentences for reading and defining arguments.
                                         */
                                        public String getRda()
                                    *************** public class MethodGenerator implements 
                                    *** 258,264 ****
                                      
                                        /**
                                         * Get the write statement for writing parameters inside the stub.
                                    !    * 
                                         * @return the write statement.
                                         */
                                        public String getStubParaWriteStatement()
                                    --- 275,281 ----
                                      
                                        /**
                                         * Get the write statement for writing parameters inside the stub.
                                    !    *
                                         * @return the write statement.
                                         */
                                        public String getStubParaWriteStatement()
                                    *************** public class MethodGenerator implements 
                                    *** 274,280 ****
                                            }
                                          return b.toString();
                                        }
                                    !   
                                        /**
                                         * Get the hash char.
                                         */
                                    --- 291,297 ----
                                            }
                                          return b.toString();
                                        }
                                    ! 
                                        /**
                                         * Get the hash char.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,38 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                      /**
                                       * Thrown by the underlying compiler used by RMIC when it fails to compile a
                                       * file.
                                    !  * 
                                    !  * @author Dalibor Topic <robilad@kaffe.org>
                                       */
                                      public class RMICException
                                          extends Exception
                                      {
                                        /**
                                         * Create an exception with a message. The cause remains uninitialized.
                                    !    * 
                                         * @param message the message string
                                         * @see #initCause(Throwable)
                                         */
                                    --- 16,54 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                      
                                    + As a special exception, the copyright holders of this library give you
                                    + permission to link this library with independent modules to produce an
                                    + executable, regardless of the license terms of these independent
                                    + modules, and to copy and distribute the resulting executable under
                                    + terms of your choice, provided that you also meet, for each linked
                                    + independent module, the terms and conditions of the license of that
                                    + module.  An independent module is a module which is not derived from
                                    + or based on this library.  If you modify this library, you may extend
                                    + this exception to your version of the library, but you are not
                                    + obligated to do so.  If you do not wish to do so, delete this
                                    + exception statement from your version. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                      /**
                                       * Thrown by the underlying compiler used by RMIC when it fails to compile a
                                       * file.
                                    !  *
                                    !  * @author Dalibor Topic (robilad@kaffe.org)
                                       */
                                      public class RMICException
                                          extends Exception
                                      {
                                        /**
                                         * Create an exception with a message. The cause remains uninitialized.
                                    !    *
                                         * @param message the message string
                                         * @see #initCause(Throwable)
                                         */
                                    *************** public class RMICException
                                    *** 43,49 ****
                                      
                                        /**
                                         * Create an exception with a message and a cause.
                                    !    * 
                                         * @param message the message string
                                         * @param cause the cause of this exception
                                         */
                                    --- 59,65 ----
                                      
                                        /**
                                         * Create an exception with a message and a cause.
                                    !    *
                                         * @param message the message string
                                         * @param cause the cause of this exception
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 22,29 ****
                                       making a combined work based on this library.  Thus, the terms and
                                       conditions of the GNU General Public License cover the whole
                                       combination.
                                    - */
                                      
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    --- 22,39 ----
                                       making a combined work based on this library.  Thus, the terms and
                                       conditions of the GNU General Public License cover the whole
                                       combination.
                                      
                                    +  As a special exception, the copyright holders of this library give you
                                    +  permission to link this library with independent modules to produce an
                                    +  executable, regardless of the license terms of these independent
                                    +  modules, and to copy and distribute the resulting executable under
                                    +  terms of your choice, provided that you also meet, for each linked
                                    +  independent module, the terms and conditions of the license of that
                                    +  module.  An independent module is a module which is not derived from
                                    +  or based on this library.  If you modify this library, you may extend
                                    +  this exception to your version of the library, but you are not
                                    +  obligated to do so.  If you do not wish to do so, delete this
                                    +  exception statement from your version. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    *************** import java.util.Properties;
                                    *** 36,42 ****
                                      /**
                                       * Keeps information about the single method and generates the code fragments,
                                       * related to that method.
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class RmiMethodGenerator
                                    --- 46,52 ----
                                      /**
                                       * Keeps information about the single method and generates the code fragments,
                                       * related to that method.
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class RmiMethodGenerator
                                    *************** public class RmiMethodGenerator
                                    *** 51,60 ****
                                         * The parent code generator.
                                         */
                                        SourceRmicCompiler rmic;
                                    !   
                                        /**
                                         * Create the new method generator for the given method.
                                    !    * 
                                         * @param aMethod the related method.
                                         * @param aRmic the Rmic generator instance, where more class - related
                                         *          information is defined.
                                    --- 61,70 ----
                                         * The parent code generator.
                                         */
                                        SourceRmicCompiler rmic;
                                    ! 
                                        /**
                                         * Create the new method generator for the given method.
                                    !    *
                                         * @param aMethod the related method.
                                         * @param aRmic the Rmic generator instance, where more class - related
                                         *          information is defined.
                                    *************** public class RmiMethodGenerator
                                    *** 69,75 ****
                                      
                                        /**
                                         * Get the method parameter declaration.
                                    !    * 
                                         * @return the string - method parameter declaration.
                                         */
                                        public String getArgumentList()
                                    --- 79,85 ----
                                      
                                        /**
                                         * Get the method parameter declaration.
                                    !    *
                                         * @return the string - method parameter declaration.
                                         */
                                        public String getArgumentList()
                                    *************** public class RmiMethodGenerator
                                    *** 91,97 ****
                                        /**
                                         * Get the method parameter list only (no type declarations). This is used to
                                         * generate the method invocations statement.
                                    !    * 
                                         * @return the string - method parameter list.
                                         */
                                        public String getArgumentNames()
                                    --- 101,107 ----
                                        /**
                                         * Get the method parameter list only (no type declarations). This is used to
                                         * generate the method invocations statement.
                                    !    *
                                         * @return the string - method parameter list.
                                         */
                                        public String getArgumentNames()
                                    *************** public class RmiMethodGenerator
                                    *** 111,117 ****
                                      
                                        /**
                                         * Get the list of exceptions, thrown by this method.
                                    !    * 
                                         * @return the list of exceptions.
                                         */
                                        public String getThrows()
                                    --- 121,127 ----
                                      
                                        /**
                                         * Get the list of exceptions, thrown by this method.
                                    !    *
                                         * @return the list of exceptions.
                                         */
                                        public String getThrows()
                                    *************** public class RmiMethodGenerator
                                    *** 131,137 ****
                                      
                                        /**
                                         * Generate this method for the Stub class.
                                    !    * 
                                         * @return the method body for the stub class.
                                         */
                                        public String generateStubMethod()
                                    --- 141,147 ----
                                      
                                        /**
                                         * Generate this method for the Stub class.
                                    !    *
                                         * @return the method body for the stub class.
                                         */
                                        public String generateStubMethod()
                                    *************** public class RmiMethodGenerator
                                    *** 168,174 ****
                                      
                                        /**
                                         * Generate sentences for Reading and Defining Arguments.
                                    !    * 
                                         * @return the sequence of sentences for reading and defining arguments.
                                         */
                                        public String getStaticMethodDeclarations()
                                    --- 178,184 ----
                                      
                                        /**
                                         * Generate sentences for Reading and Defining Arguments.
                                    !    *
                                         * @return the sequence of sentences for reading and defining arguments.
                                         */
                                        public String getStaticMethodDeclarations()
                                    *************** public class RmiMethodGenerator
                                    *** 191,206 ****
                                      
                                        /**
                                         * Get the write statement for writing parameters inside the stub.
                                    !    * 
                                         * @return the write statement.
                                         */
                                        public String getArgListAsObjectArray()
                                        {
                                          Class[] args = method.getParameterTypes();
                                    !     
                                          if (args.length==0)
                                            return "NO_ARGS";
                                    !     
                                          StringBuilder b = new StringBuilder("new Object[] {");
                                      
                                          for (int i = 0; i < args.length; i++)
                                    --- 201,216 ----
                                      
                                        /**
                                         * Get the write statement for writing parameters inside the stub.
                                    !    *
                                         * @return the write statement.
                                         */
                                        public String getArgListAsObjectArray()
                                        {
                                          Class[] args = method.getParameterTypes();
                                    ! 
                                          if (args.length==0)
                                            return "NO_ARGS";
                                    ! 
                                          StringBuilder b = new StringBuilder("new Object[] {");
                                      
                                          for (int i = 0; i < args.length; i++)
                                    *************** public class RmiMethodGenerator
                                    *** 218,224 ****
                                          b.append("}");
                                          return b.toString();
                                        }
                                    !   
                                        /**
                                         * Get the return statement, assuming that the returned object is placed into
                                         * the variable "result".
                                    --- 228,234 ----
                                          b.append("}");
                                          return b.toString();
                                        }
                                    ! 
                                        /**
                                         * Get the return statement, assuming that the returned object is placed into
                                         * the variable "result".
                                    *************** public class RmiMethodGenerator
                                    *** 240,246 ****
                                                return "return (" + rmic.name(r) + ") result;";
                                            }
                                        }
                                    !   
                                        /**
                                         * Get argument list as class array.
                                         */
                                    --- 250,256 ----
                                                return "return (" + rmic.name(r) + ") result;";
                                            }
                                        }
                                    ! 
                                        /**
                                         * Get argument list as class array.
                                         */
                                    *************** public class RmiMethodGenerator
                                    *** 275,281 ****
                                        {
                                          return RMIHashes.getMethodHash(method)+"L";
                                        }
                                    !   
                                        /**
                                         * Additional processing of the stub name (nothing to do for JRMP stubs).
                                         */
                                    --- 285,291 ----
                                        {
                                          return RMIHashes.getMethodHash(method)+"L";
                                        }
                                    ! 
                                        /**
                                         * Additional processing of the stub name (nothing to do for JRMP stubs).
                                         */
                                    *************** public class RmiMethodGenerator
                                    *** 283,287 ****
                                        {
                                          return name;
                                        }
                                    !   
                                      }
                                    --- 293,297 ----
                                        {
                                          return name;
                                        }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java	Tue Jan 11 19:46:05 2011
                                    *************** General Public License for more details.
                                    *** 17,23 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      public interface RmicBackend
                                    --- 17,40 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      public interface RmicBackend
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.TreeSet;
                                    *** 46,52 ****
                                      /**
                                       * Provides the extended rmic functionality to generate the POA - based classes
                                       * for GIOP (javax.rmi.CORBA package).
                                    !  * 
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class SourceGiopRmicCompiler
                                    --- 46,52 ----
                                      /**
                                       * Provides the extended rmic functionality to generate the POA - based classes
                                       * for GIOP (javax.rmi.CORBA package).
                                    !  *
                                       * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org)
                                       */
                                      public class SourceGiopRmicCompiler
                                    *************** public class SourceGiopRmicCompiler
                                    *** 121,127 ****
                                         * Verbose output
                                         */
                                        protected boolean verbose = false;
                                    !   
                                        /**
                                         * Force mode - do not check the exceptions
                                         */
                                    --- 121,127 ----
                                         * Verbose output
                                         */
                                        protected boolean verbose = false;
                                    ! 
                                        /**
                                         * Force mode - do not check the exceptions
                                         */
                                    *************** public class SourceGiopRmicCompiler
                                    *** 148,157 ****
                                          methods.clear();
                                          vars.clear();
                                        }
                                    !   
                                        /**
                                         * Set the class path (handle the -classpath key)
                                    !    * 
                                         * @param classPath the class path to set.
                                         */
                                        public void setClassPath(String classPath)
                                    --- 148,157 ----
                                          methods.clear();
                                          vars.clear();
                                        }
                                    ! 
                                        /**
                                         * Set the class path (handle the -classpath key)
                                    !    *
                                         * @param classPath the class path to set.
                                         */
                                        public void setClassPath(String classPath)
                                    *************** public class SourceGiopRmicCompiler
                                    *** 196,206 ****
                                            }
                                      
                                          classLoader = new URLClassLoader(u, classLoader);
                                    !   }    
                                    !   
                                        /**
                                         * Loads the class with the given name (uses class path, if applicable)
                                    !    * 
                                         * @param name the name of the class.
                                         */
                                        public Class loadClass(String name)
                                    --- 196,206 ----
                                            }
                                      
                                          classLoader = new URLClassLoader(u, classLoader);
                                    !   }
                                    ! 
                                        /**
                                         * Loads the class with the given name (uses class path, if applicable)
                                    !    *
                                         * @param name the name of the class.
                                         */
                                        public Class loadClass(String name)
                                    *************** public class SourceGiopRmicCompiler
                                    *** 224,230 ****
                                        /**
                                         * Compile the given class (the instance of Remote), generating the stub and
                                         * tie for it.
                                    !    * 
                                         * @param remote
                                         *          the class to compile.
                                         */
                                    --- 224,230 ----
                                        /**
                                         * Compile the given class (the instance of Remote), generating the stub and
                                         * tie for it.
                                    !    *
                                         * @param remote
                                         *          the class to compile.
                                         */
                                    *************** public class SourceGiopRmicCompiler
                                    *** 247,253 ****
                                              packag = s.substring(0, p);
                                              implName = name = s.substring(p + 1);
                                            }
                                    !      
                                          name = convertStubName(name);
                                      
                                          stubName = name;
                                    --- 247,253 ----
                                              packag = s.substring(0, p);
                                              implName = name = s.substring(p + 1);
                                            }
                                    ! 
                                          name = convertStubName(name);
                                      
                                          stubName = name;
                                    *************** public class SourceGiopRmicCompiler
                                    *** 297,308 ****
                                                          remEx = true;
                                                          break;
                                                        }
                                    ! 	      }
                                    ! 	    if (! remEx && !force)
                                    ! 	      throw new CompilationError(m[i].getName() + ", defined in "
                                    ! 					 + c.getName()
                                    ! 					 + ", does not throw "
                                    ! 					 + RemoteException.class.getName());
                                                  AbstractMethodGenerator mm = createMethodGenerator(m[i]);
                                                  methods.add(mm);
                                                }
                                    --- 297,308 ----
                                                          remEx = true;
                                                          break;
                                                        }
                                    !               }
                                    !             if (! remEx && !force)
                                    !               throw new CompilationError(m[i].getName() + ", defined in "
                                    !                                          + c.getName()
                                    !                                          + ", does not throw "
                                    !                                          + RemoteException.class.getName());
                                                  AbstractMethodGenerator mm = createMethodGenerator(m[i]);
                                                  methods.add(mm);
                                                }
                                    *************** public class SourceGiopRmicCompiler
                                    *** 311,319 ****
                                      
                                        /**
                                         * Create the method generator for the given method.
                                    !    * 
                                         * @param m the method
                                    !    * 
                                         * @return the created method generator
                                         */
                                        protected AbstractMethodGenerator createMethodGenerator(Method m)
                                    --- 311,319 ----
                                      
                                        /**
                                         * Create the method generator for the given method.
                                    !    *
                                         * @param m the method
                                    !    *
                                         * @return the created method generator
                                         */
                                        protected AbstractMethodGenerator createMethodGenerator(Method m)
                                    *************** public class SourceGiopRmicCompiler
                                    *** 324,330 ****
                                        /**
                                         * Get the name of the given class. The class is added to imports, if not
                                         * already present and not from java.lang and not from the current package.
                                    !    * 
                                         * @param nameIt
                                         *          the class to name
                                         * @return the name of class as it should appear in java language
                                    --- 324,330 ----
                                        /**
                                         * Get the name of the given class. The class is added to imports, if not
                                         * already present and not from java.lang and not from the current package.
                                    !    *
                                         * @param nameIt
                                         *          the class to name
                                         * @return the name of class as it should appear in java language
                                    *************** public class SourceGiopRmicCompiler
                                    *** 369,375 ****
                                      
                                        /**
                                         * Get the RMI-style repository Id for the given class.
                                    !    * 
                                         * @param c
                                         *          the interface, for that the repository Id must be created.
                                         * @return the repository id
                                    --- 369,375 ----
                                      
                                        /**
                                         * Get the RMI-style repository Id for the given class.
                                    !    *
                                         * @param c
                                         *          the interface, for that the repository Id must be created.
                                         * @return the repository id
                                    *************** public class SourceGiopRmicCompiler
                                    *** 381,387 ****
                                      
                                        /**
                                         * Get repository Id string array declaration.
                                    !    * 
                                         * @param remotes
                                         *          the collection of interfaces
                                         * @return the fully formatted string array.
                                    --- 381,387 ----
                                      
                                        /**
                                         * Get repository Id string array declaration.
                                    !    *
                                         * @param remotes
                                         *          the collection of interfaces
                                         * @return the fully formatted string array.
                                    *************** public class SourceGiopRmicCompiler
                                    *** 412,418 ****
                                      
                                        /**
                                         * Generate stub. Can only be called from {@link #compile}.
                                    !    * 
                                         * @return the string, containing the text of the generated stub.
                                         */
                                        public String generateStub()
                                    --- 412,418 ----
                                      
                                        /**
                                         * Generate stub. Can only be called from {@link #compile}.
                                    !    *
                                         * @return the string, containing the text of the generated stub.
                                         */
                                        public String generateStub()
                                    *************** public class SourceGiopRmicCompiler
                                    *** 439,445 ****
                                        /**
                                         * Get the list of all interfaces, implemented by the class, that are
                                         * derived from Remote.
                                    !    * 
                                         * @return the string - all interfaces.
                                         */
                                        public String getAllInterfaces()
                                    --- 439,445 ----
                                        /**
                                         * Get the list of all interfaces, implemented by the class, that are
                                         * derived from Remote.
                                    !    *
                                         * @return the string - all interfaces.
                                         */
                                        public String getAllInterfaces()
                                    *************** public class SourceGiopRmicCompiler
                                    *** 459,465 ****
                                      
                                        /**
                                         * Generate Tie. Can only be called from {@link #compile}.
                                    !    * 
                                         * @return the string, containing the text of the generated Tie.
                                         */
                                        public String generateTie()
                                    --- 459,465 ----
                                      
                                        /**
                                         * Generate Tie. Can only be called from {@link #compile}.
                                    !    *
                                         * @return the string, containing the text of the generated Tie.
                                         */
                                        public String generateTie()
                                    *************** public class SourceGiopRmicCompiler
                                    *** 525,531 ****
                                      
                                        /**
                                         * Import the extra classes, used as the method parameters and return values.
                                    !    * 
                                         * @return the additional import block.
                                         */
                                        protected String getImportStatements()
                                    --- 525,531 ----
                                      
                                        /**
                                         * Import the extra classes, used as the method parameters and return values.
                                    !    *
                                         * @return the additional import block.
                                         */
                                        protected String getImportStatements()
                                    *************** public class SourceGiopRmicCompiler
                                    *** 561,567 ****
                                      
                                        /**
                                         * Set the verbose output mode (false by default)
                                    !    * 
                                         * @param isVerbose the verbose output mode
                                         */
                                        public void setVerbose(boolean isVerbose)
                                    --- 561,567 ----
                                      
                                        /**
                                         * Set the verbose output mode (false by default)
                                    !    *
                                         * @param isVerbose the verbose output mode
                                         */
                                        public void setVerbose(boolean isVerbose)
                                    *************** public class SourceGiopRmicCompiler
                                    *** 576,582 ****
                                        {
                                          warnings = warn;
                                        }
                                    !   
                                        /**
                                         * Set the error ignore mode.
                                         */
                                    --- 576,582 ----
                                        {
                                          warnings = warn;
                                        }
                                    ! 
                                        /**
                                         * Set the error ignore mode.
                                         */
                                    *************** public class SourceGiopRmicCompiler
                                    *** 600,606 ****
                                        {
                                          return stubName;
                                        }
                                    !   
                                        /**
                                         * Additional processing of the stub name.
                                         */
                                    --- 600,606 ----
                                        {
                                          return stubName;
                                        }
                                    ! 
                                        /**
                                         * Additional processing of the stub name.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java	Tue Jan 11 19:46:05 2011
                                    *************** Linking this library statically or dynam
                                    *** 22,29 ****
                                      making a combined work based on this library.  Thus, the terms and
                                      conditions of the GNU General Public License cover the whole
                                      combination.
                                    - */
                                      
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    --- 22,39 ----
                                      making a combined work based on this library.  Thus, the terms and
                                      conditions of the GNU General Public License cover the whole
                                      combination.
                                      
                                    + As a special exception, the copyright holders of this library give you
                                    + permission to link this library with independent modules to produce an
                                    + executable, regardless of the license terms of these independent
                                    + modules, and to copy and distribute the resulting executable under
                                    + terms of your choice, provided that you also meet, for each linked
                                    + independent module, the terms and conditions of the license of that
                                    + module.  An independent module is a module which is not derived from
                                    + or based on this library.  If you modify this library, you may extend
                                    + this exception to your version of the library, but you are not
                                    + obligated to do so.  If you do not wish to do so, delete this
                                    + exception statement from your version. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    *************** import gnu.classpath.tools.rmic.Abstract
                                    *** 36,42 ****
                                      /**
                                       * RMI stub source code generator, required to support java.rmi.*
                                       *
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) 
                                       */
                                      public class SourceRmicCompiler extends SourceGiopRmicCompiler
                                      {
                                    --- 46,52 ----
                                      /**
                                       * RMI stub source code generator, required to support java.rmi.*
                                       *
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public class SourceRmicCompiler extends SourceGiopRmicCompiler
                                      {
                                    *************** public class SourceRmicCompiler extends 
                                    *** 45,54 ****
                                         * garbage generation.
                                         */
                                        public boolean addZeroSizeObjecArray;
                                    !   
                                        /**
                                         * Generate a RMI stub.
                                    !    * 
                                         * @return the string, containing the text of the generated stub.
                                         */
                                        public String generateStub()
                                    --- 55,64 ----
                                         * garbage generation.
                                         */
                                        public boolean addZeroSizeObjecArray;
                                    ! 
                                        /**
                                         * Generate a RMI stub.
                                    !    *
                                         * @return the string, containing the text of the generated stub.
                                         */
                                        public String generateStub()
                                    *************** public class SourceRmicCompiler extends 
                                    *** 79,85 ****
                                          else
                                            {
                                              vars.put("#zeroSizeObjecArray","");
                                    !         vars.put("#zeroSizeClassArray","");        
                                            }
                                      
                                          String output = replaceAll(template, vars);
                                    --- 89,95 ----
                                          else
                                            {
                                              vars.put("#zeroSizeObjecArray","");
                                    !         vars.put("#zeroSizeClassArray","");
                                            }
                                      
                                          String output = replaceAll(template, vars);
                                    *************** public class SourceRmicCompiler extends 
                                    *** 92,108 ****
                                        protected AbstractMethodGenerator createMethodGenerator(Method m)
                                        {
                                          return new RmiMethodGenerator(m, this);
                                    !   } 
                                    !   
                                        /**
                                         * Get the stub method declarations.
                                         */
                                        public String getStubMethodDeclarations()
                                        {
                                          StringBuilder b = new StringBuilder();
                                    !     
                                          Iterator iter = methods.iterator();
                                    !      
                                          while (iter.hasNext())
                                            {
                                              RmiMethodGenerator method = (RmiMethodGenerator) iter.next();
                                    --- 102,118 ----
                                        protected AbstractMethodGenerator createMethodGenerator(Method m)
                                        {
                                          return new RmiMethodGenerator(m, this);
                                    !   }
                                    ! 
                                        /**
                                         * Get the stub method declarations.
                                         */
                                        public String getStubMethodDeclarations()
                                        {
                                          StringBuilder b = new StringBuilder();
                                    ! 
                                          Iterator iter = methods.iterator();
                                    ! 
                                          while (iter.hasNext())
                                            {
                                              RmiMethodGenerator method = (RmiMethodGenerator) iter.next();
                                    *************** public class SourceRmicCompiler extends 
                                    *** 115,121 ****
                                            }
                                          return b.toString();
                                        }
                                    !   
                                        /**
                                         * Get stub method initializations. These must be done in a try-catch
                                         * statement to catch {@link NoSuchMethodException}.
                                    --- 125,131 ----
                                            }
                                          return b.toString();
                                        }
                                    ! 
                                        /**
                                         * Get stub method initializations. These must be done in a try-catch
                                         * statement to catch {@link NoSuchMethodException}.
                                    *************** public class SourceRmicCompiler extends 
                                    *** 123,131 ****
                                        public String getStubMethodInitializations()
                                        {
                                          StringBuilder b = new StringBuilder();
                                    !     
                                          Iterator iter = methods.iterator();
                                    !      
                                          while (iter.hasNext())
                                            {
                                              RmiMethodGenerator method = (RmiMethodGenerator) iter.next();
                                    --- 133,141 ----
                                        public String getStubMethodInitializations()
                                        {
                                          StringBuilder b = new StringBuilder();
                                    ! 
                                          Iterator iter = methods.iterator();
                                    ! 
                                          while (iter.hasNext())
                                            {
                                              RmiMethodGenerator method = (RmiMethodGenerator) iter.next();
                                    *************** public class SourceRmicCompiler extends 
                                    *** 137,143 ****
                                              b.append(".class.getMethod(");
                                              b.append('"');
                                              b.append(method.method.getName());
                                    !         b.append("\", ");        
                                              if (method.method.getParameterTypes().length == 0)
                                                b.append("NO_ARGSc);");
                                              else
                                    --- 147,153 ----
                                              b.append(".class.getMethod(");
                                              b.append('"');
                                              b.append(method.method.getName());
                                    !         b.append("\", ");
                                              if (method.method.getParameterTypes().length == 0)
                                                b.append("NO_ARGSc);");
                                              else
                                    *************** public class SourceRmicCompiler extends 
                                    *** 167,173 ****
                                        public String convertStubName(String name)
                                        {
                                          return name;
                                    !   }  
                                      
                                        /**
                                         * Override to do nothing.
                                    --- 177,183 ----
                                        public String convertStubName(String name)
                                        {
                                          return name;
                                    !   }
                                      
                                        /**
                                         * Override to do nothing.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java	Tue Jan 11 19:46:05 2011
                                    *************** General Public License for more details.
                                    *** 17,23 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    --- 17,40 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.rmic;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java	Tue Jan 11 19:46:05 2011
                                    *************** You should have received a copy of the G
                                    *** 17,23 ****
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! */
                                      
                                      
                                      package gnu.classpath.tools.rmic;
                                    --- 17,39 ----
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
                                      02110-1301 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      
                                      package gnu.classpath.tools.rmic;
                                    *************** public class WrapUnWrapper
                                    *** 27,35 ****
                                      {
                                        /**
                                         * Get the wrapper class for the primitive type
                                    !    * 
                                         * @param primitive the class of the primitive type
                                    !    * 
                                         * @return the wrapper class
                                         */
                                        public static Class getWrappingClass(Class primitive)
                                    --- 43,51 ----
                                      {
                                        /**
                                         * Get the wrapper class for the primitive type
                                    !    *
                                         * @param primitive the class of the primitive type
                                    !    *
                                         * @return the wrapper class
                                         */
                                        public static Class getWrappingClass(Class primitive)
                                    *************** public class WrapUnWrapper
                                    *** 51,62 ****
                                          else
                                            return null;
                                        }
                                    !   
                                        /**
                                         * Get the method, invocation of that would return the wrapped value.
                                    !    * 
                                         * @param primitive the class of the primitive type.
                                    !    * 
                                         * @return the wrapper method that unwraps the value to the primitive type.
                                         */
                                        public static String getUnwrappingMethod(Class primitive)
                                    --- 67,78 ----
                                          else
                                            return null;
                                        }
                                    ! 
                                        /**
                                         * Get the method, invocation of that would return the wrapped value.
                                    !    *
                                         * @param primitive the class of the primitive type.
                                    !    *
                                         * @return the wrapper method that unwraps the value to the primitive type.
                                         */
                                        public static String getUnwrappingMethod(Class primitive)
                                    *************** public class WrapUnWrapper
                                    *** 76,83 ****
                                          if (primitive.equals(char.class))
                                            return "charValue()";
                                          else
                                    !       return null;    
                                        }
                                    !   
                                    !   
                                      }
                                    --- 92,99 ----
                                          if (primitive.equals(char.class))
                                            return "charValue()";
                                          else
                                    !       return null;
                                        }
                                    ! 
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** import java.rmi.activation.UnknownObject
                                    *** 61,67 ****
                                      
                                      /**
                                       * Implements the rmid activation system.
                                    !  * 
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class ActivationSystemImpl extends ActivationSystemTransient implements
                                    --- 61,67 ----
                                      
                                      /**
                                       * Implements the rmid activation system.
                                    !  *
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class ActivationSystemImpl extends ActivationSystemTransient implements
                                    *************** public class ActivationSystemImpl extend
                                    *** 71,85 ****
                                         * Use for interoperability.
                                         */
                                        private static final long serialVersionUID = 1;
                                    !   
                                        /**
                                         * The singleton instance of this class.
                                         */
                                        public static ActivationSystemImpl singleton2;
                                    !   
                                        /**
                                         * Obtain the singleton instance of this class.
                                    !    * 
                                         * @param folder the folder, where the activation system will keep its files.
                                         * @param cold do the cold start if true, hot (usual) if false.
                                         */
                                    --- 71,85 ----
                                         * Use for interoperability.
                                         */
                                        private static final long serialVersionUID = 1;
                                    ! 
                                        /**
                                         * The singleton instance of this class.
                                         */
                                        public static ActivationSystemImpl singleton2;
                                    ! 
                                        /**
                                         * Obtain the singleton instance of this class.
                                    !    *
                                         * @param folder the folder, where the activation system will keep its files.
                                         * @param cold do the cold start if true, hot (usual) if false.
                                         */
                                    *************** public class ActivationSystemImpl extend
                                    *** 88,98 ****
                                          if (singleton2 == null)
                                            singleton2 = new ActivationSystemImpl(folder, cold);
                                          return singleton2;
                                    !   }  
                                    !   
                                        /**
                                         * Creates the group with transient maps.
                                    !    * 
                                         * @param folder
                                         *          the folder, where the activation system will keep its files.
                                         * @param cold
                                    --- 88,98 ----
                                          if (singleton2 == null)
                                            singleton2 = new ActivationSystemImpl(folder, cold);
                                          return singleton2;
                                    !   }
                                    ! 
                                        /**
                                         * Creates the group with transient maps.
                                    !    *
                                         * @param folder
                                         *          the folder, where the activation system will keep its files.
                                         * @param cold
                                    *************** public class ActivationSystemImpl extend
                                    *** 106,113 ****
                                              new File(folder, "asi_objects.data"), cold);
                                          ((PersistentBidiHashTable) descriptions).init(
                                              new File(folder, "asi_groups.data"),  cold);
                                    !   }  
                                    !   
                                        /** @inheritDoc */
                                        public MarshalledObject activate(ActivationID id, boolean force)
                                            throws ActivationException, UnknownObjectException, RemoteException
                                    --- 106,113 ----
                                              new File(folder, "asi_objects.data"), cold);
                                          ((PersistentBidiHashTable) descriptions).init(
                                              new File(folder, "asi_groups.data"),  cold);
                                    !   }
                                    ! 
                                        /** @inheritDoc */
                                        public MarshalledObject activate(ActivationID id, boolean force)
                                            throws ActivationException, UnknownObjectException, RemoteException
                                    *************** public class ActivationSystemImpl extend
                                    *** 190,201 ****
                                      
                                        /**
                                         * This method saves the state of the activation system and then
                                    !    * terminates in 10 seconds. 
                                         */
                                        public void shutdown() throws RemoteException
                                        {
                                          super.shutdown();
                                    !     System.out.println("Shutdown command received. Will terminate in 10 s");    
                                          Persistent.timer.schedule(new Persistent.ExitTask(), 10000);
                                        }
                                      
                                    --- 190,201 ----
                                      
                                        /**
                                         * This method saves the state of the activation system and then
                                    !    * terminates in 10 seconds.
                                         */
                                        public void shutdown() throws RemoteException
                                        {
                                          super.shutdown();
                                    !     System.out.println("Shutdown command received. Will terminate in 10 s");
                                          Persistent.timer.schedule(new Persistent.ExitTask(), 10000);
                                        }
                                      
                                    *************** public class ActivationSystemImpl extend
                                    *** 215,223 ****
                                      
                                        /**
                                         * Read the object from the input stream.
                                    !    * 
                                         * @param in the stream to read from
                                    !    * 
                                         * @throws IOException if thrown by the stream
                                         * @throws ClassNotFoundException
                                         */
                                    --- 215,223 ----
                                      
                                        /**
                                         * Read the object from the input stream.
                                    !    *
                                         * @param in the stream to read from
                                    !    *
                                         * @throws IOException if thrown by the stream
                                         * @throws ClassNotFoundException
                                         */
                                    *************** public class ActivationSystemImpl extend
                                    *** 226,235 ****
                                        {
                                          // Read no fields.
                                        }
                                    !   
                                        /**
                                         * Write the object to the output stream.
                                    !    * 
                                         * @param out the stream to write int
                                         * @throws IOException if thrown by the stream
                                         * @throws ClassNotFoundException
                                    --- 226,235 ----
                                        {
                                          // Read no fields.
                                        }
                                    ! 
                                        /**
                                         * Write the object to the output stream.
                                    !    *
                                         * @param out the stream to write int
                                         * @throws IOException if thrown by the stream
                                         * @throws ClassNotFoundException
                                    *************** public class ActivationSystemImpl extend
                                    *** 238,243 ****
                                            ClassNotFoundException
                                        {
                                          // Write no fields.
                                    !   }  
                                    !   
                                      }
                                    --- 238,243 ----
                                            ClassNotFoundException
                                        {
                                          // Write no fields.
                                    !   }
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** import java.rmi.UnexpectedException;
                                    *** 59,81 ****
                                      
                                      /**
                                       * This class delegates its method calls to the remote RMI object, referenced
                                    !  * by {@link RemoteRef}. 
                                       *
                                       * It is normally generated with rmic.
                                       */
                                    ! public final class ActivationSystemImpl_Stub 
                                          extends RemoteStub
                                          implements ActivationMonitor, Activator, ActivationSystem
                                      {
                                          /**
                                    !      * Use serialVersionUID for interoperability 
                                           */
                                          private static final long serialVersionUID = 2;
                                    !     
                                          /**
                                           * The explaining message for {@ling UnexpectedException}.
                                           */
                                    !     private static final String exception_message = 
                                            "undeclared checked exception";
                                      
                                           /* All remote methods, invoked by this stub: */
                                    --- 59,81 ----
                                      
                                      /**
                                       * This class delegates its method calls to the remote RMI object, referenced
                                    !  * by {@link RemoteRef}.
                                       *
                                       * It is normally generated with rmic.
                                       */
                                    ! public final class ActivationSystemImpl_Stub
                                          extends RemoteStub
                                          implements ActivationMonitor, Activator, ActivationSystem
                                      {
                                          /**
                                    !      * Use serialVersionUID for interoperability
                                           */
                                          private static final long serialVersionUID = 2;
                                    ! 
                                          /**
                                           * The explaining message for {@ling UnexpectedException}.
                                           */
                                    !     private static final String exception_message =
                                            "undeclared checked exception";
                                      
                                           /* All remote methods, invoked by this stub: */
                                    *************** public final class ActivationSystemImpl_
                                    *** 96,103 ****
                                          private static final Object[] NO_ARGS = new Object[0];
                                          static
                                            {
                                    !         final Class[]  NO_ARGSc = new Class[0];      
                                    !         try 
                                                {
                                                   met_setActivationGroupDesc =
                                                     ActivationSystem.class.getMethod("setActivationGroupDesc", new Class[]
                                    --- 96,103 ----
                                          private static final Object[] NO_ARGS = new Object[0];
                                          static
                                            {
                                    !         final Class[]  NO_ARGSc = new Class[0];
                                    !         try
                                                {
                                                   met_setActivationGroupDesc =
                                                     ActivationSystem.class.getMethod("setActivationGroupDesc", new Class[]
                                    *************** public final class ActivationSystemImpl_
                                    *** 174,193 ****
                                                     "ActivationSystemImpl_Stub class initialization failed");
                                                   err.initCause(nex);
                                                   throw err;
                                    !           }  
                                            }
                                    !     
                                          /**
                                           * Create the instance for _ActivationSystemImpl_Stub that forwards method calls to the
                                           * remote object.
                                           *
                                           * @para the reference to the remote object.
                                           */
                                    !     public ActivationSystemImpl_Stub(RemoteRef reference) 
                                          {
                                             super(reference);
                                    !     }    
                                    !     
                                          /* Methods */
                                        /** @inheritDoc */
                                        public ActivationGroupDesc setActivationGroupDesc(ActivationGroupID p0,
                                    --- 174,193 ----
                                                     "ActivationSystemImpl_Stub class initialization failed");
                                                   err.initCause(nex);
                                                   throw err;
                                    !           }
                                            }
                                    ! 
                                          /**
                                           * Create the instance for _ActivationSystemImpl_Stub that forwards method calls to the
                                           * remote object.
                                           *
                                           * @para the reference to the remote object.
                                           */
                                    !     public ActivationSystemImpl_Stub(RemoteRef reference)
                                          {
                                             super(reference);
                                    !     }
                                    ! 
                                          /* Methods */
                                        /** @inheritDoc */
                                        public ActivationGroupDesc setActivationGroupDesc(ActivationGroupID p0,
                                    *************** public final class ActivationSystemImpl_
                                    *** 216,222 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public void inactiveGroup(ActivationGroupID p0, long p1)
                                            throws UnknownGroupException, RemoteException
                                    --- 216,222 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public void inactiveGroup(ActivationGroupID p0, long p1)
                                            throws UnknownGroupException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 241,247 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public void unregisterObject(ActivationID p0) throws ActivationException,
                                            UnknownObjectException, RemoteException
                                    --- 241,247 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public void unregisterObject(ActivationID p0) throws ActivationException,
                                            UnknownObjectException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 266,272 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public ActivationDesc getActivationDesc(ActivationID p0)
                                            throws ActivationException, UnknownObjectException, RemoteException
                                    --- 266,272 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public ActivationDesc getActivationDesc(ActivationID p0)
                                            throws ActivationException, UnknownObjectException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 292,298 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public ActivationDesc setActivationDesc(ActivationID p0, ActivationDesc p1)
                                            throws ActivationException, UnknownObjectException,
                                    --- 292,298 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public ActivationDesc setActivationDesc(ActivationID p0, ActivationDesc p1)
                                            throws ActivationException, UnknownObjectException,
                                    *************** public final class ActivationSystemImpl_
                                    *** 320,326 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public void shutdown() throws RemoteException
                                        {
                                    --- 320,326 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public void shutdown() throws RemoteException
                                        {
                                    *************** public final class ActivationSystemImpl_
                                    *** 343,349 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public MarshalledObject activate(ActivationID p0, boolean p1)
                                            throws ActivationException, UnknownObjectException, RemoteException
                                    --- 343,349 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public MarshalledObject activate(ActivationID p0, boolean p1)
                                            throws ActivationException, UnknownObjectException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 370,376 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public ActivationMonitor activeGroup(ActivationGroupID p0,
                                                                             ActivationInstantiator p1, long p2)
                                    --- 370,376 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public ActivationMonitor activeGroup(ActivationGroupID p0,
                                                                             ActivationInstantiator p1, long p2)
                                    *************** public final class ActivationSystemImpl_
                                    *** 398,404 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public ActivationGroupID registerGroup(ActivationGroupDesc p0)
                                            throws ActivationException, RemoteException
                                    --- 398,404 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public ActivationGroupID registerGroup(ActivationGroupDesc p0)
                                            throws ActivationException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 424,430 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public ActivationGroupDesc getActivationGroupDesc(ActivationGroupID p0)
                                            throws ActivationException, UnknownGroupException, RemoteException
                                    --- 424,430 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public ActivationGroupDesc getActivationGroupDesc(ActivationGroupID p0)
                                            throws ActivationException, UnknownGroupException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 450,456 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public void activeObject(ActivationID p0, MarshalledObject p1)
                                            throws UnknownObjectException, RemoteException
                                    --- 450,456 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public void activeObject(ActivationID p0, MarshalledObject p1)
                                            throws UnknownObjectException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 475,481 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public ActivationID registerObject(ActivationDesc p0)
                                            throws ActivationException, UnknownGroupException, RemoteException
                                    --- 475,481 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public ActivationID registerObject(ActivationDesc p0)
                                            throws ActivationException, UnknownGroupException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 501,507 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public void inactiveObject(ActivationID p0) throws UnknownObjectException,
                                            RemoteException
                                    --- 501,507 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public void inactiveObject(ActivationID p0) throws UnknownObjectException,
                                            RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 526,532 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                        public void unregisterGroup(ActivationGroupID p0) throws ActivationException,
                                            UnknownGroupException, RemoteException
                                    --- 526,532 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public void unregisterGroup(ActivationGroupID p0) throws ActivationException,
                                            UnknownGroupException, RemoteException
                                    *************** public final class ActivationSystemImpl_
                                    *** 551,556 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                    !     
                                      }
                                    --- 551,556 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** import java.rmi.server.RMIServerSocketFa
                                    *** 58,64 ****
                                      
                                      /**
                                       * The persistent RMI activation daemon.
                                    !  * 
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class Main
                                    --- 58,64 ----
                                      
                                      /**
                                       * The persistent RMI activation daemon.
                                    !  *
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class Main
                                    *************** public class Main
                                    *** 67,83 ****
                                         * The RMI server socket factory.
                                         */
                                        static RMIServerSocketFactory ACTIVATION_REGISTY_SOCKET_FACTORY = null;
                                    !   
                                        /**
                                         * The activation registry port.
                                         */
                                        static int ACTIVATION_REGISTRY_PORT = ActivationSystem.SYSTEM_PORT;
                                    !   
                                        /**
                                         * The activation system name.
                                         */
                                        static String ACTIVATION_SYSTEM_NAME = "java.rmi.activation.ActivationSystem";
                                    !   
                                        // Parse parameters:
                                        private boolean stop = false;
                                        private String directory = ".";
                                    --- 67,83 ----
                                         * The RMI server socket factory.
                                         */
                                        static RMIServerSocketFactory ACTIVATION_REGISTY_SOCKET_FACTORY = null;
                                    ! 
                                        /**
                                         * The activation registry port.
                                         */
                                        static int ACTIVATION_REGISTRY_PORT = ActivationSystem.SYSTEM_PORT;
                                    ! 
                                        /**
                                         * The activation system name.
                                         */
                                        static String ACTIVATION_SYSTEM_NAME = "java.rmi.activation.ActivationSystem";
                                    ! 
                                        // Parse parameters:
                                        private boolean stop = false;
                                        private String directory = ".";
                                    *************** public class Main
                                    *** 169,184 ****
                                                  if (!dataDirectory.exists())
                                                    dataDirectory.mkdirs();
                                                  ActivationSystem system;
                                    !             
                                                  if (!persistent)
                                                    system = ActivationSystemTransient.getInstance();
                                                  else
                                                    system = ActivationSystemImpl.getInstance(dataDirectory, cold);
                                    !             
                                                  // We must export with the specific activation id that is only
                                                  // possible when going into the gnu.java.rmi.activation.
                                                  UnicastServerRef sref = new UnicastServerRef(
                                    !                new ObjID(ObjID.ACTIVATOR_ID), ACTIVATION_REGISTRY_PORT, 
                                                     ACTIVATION_REGISTY_SOCKET_FACTORY);
                                                  Remote systemStub = sref.exportObject(system);
                                      
                                    --- 169,184 ----
                                                  if (!dataDirectory.exists())
                                                    dataDirectory.mkdirs();
                                                  ActivationSystem system;
                                    ! 
                                                  if (!persistent)
                                                    system = ActivationSystemTransient.getInstance();
                                                  else
                                                    system = ActivationSystemImpl.getInstance(dataDirectory, cold);
                                    ! 
                                                  // We must export with the specific activation id that is only
                                                  // possible when going into the gnu.java.rmi.activation.
                                                  UnicastServerRef sref = new UnicastServerRef(
                                    !                new ObjID(ObjID.ACTIVATOR_ID), ACTIVATION_REGISTRY_PORT,
                                                     ACTIVATION_REGISTY_SOCKET_FACTORY);
                                                  Remote systemStub = sref.exportObject(system);
                                      
                                    *************** public class Main
                                    *** 200,206 ****
                                                      r.rebind(ACTIVATION_SYSTEM_NAME, systemStub);
                                                    }
                                                  String host = InetAddress.getLocalHost().getCanonicalHostName();
                                    !             System.out.println("The RMI daemon is listening on " + host + 
                                                                     " (port "
                                                                     + ACTIVATION_REGISTRY_PORT + ")");
                                      
                                    --- 200,206 ----
                                                      r.rebind(ACTIVATION_SYSTEM_NAME, systemStub);
                                                    }
                                                  String host = InetAddress.getLocalHost().getCanonicalHostName();
                                    !             System.out.println("The RMI daemon is listening on " + host +
                                                                     " (port "
                                                                     + ACTIVATION_REGISTRY_PORT + ")");
                                      
                                    *************** public class Main
                                    *** 216,222 ****
                                                      // Expect the naming service running first.
                                                      // The local host may want to use the shared registry
                                                      r = LocateRegistry.getRegistry(ACTIVATION_REGISTRY_PORT);
                                    !                 ActivationSystem asys = 
                                                        (ActivationSystem) r.lookup(ACTIVATION_SYSTEM_NAME);
                                                      asys.shutdown();
                                                      System.out.println("OK.");
                                    --- 216,222 ----
                                                      // Expect the naming service running first.
                                                      // The local host may want to use the shared registry
                                                      r = LocateRegistry.getRegistry(ACTIVATION_REGISTRY_PORT);
                                    !                 ActivationSystem asys =
                                                        (ActivationSystem) r.lookup(ACTIVATION_SYSTEM_NAME);
                                                      asys.shutdown();
                                                      System.out.println("OK.");
                                    *************** public class Main
                                    *** 236,242 ****
                                              if (ActivationSystemTransient.debug)
                                                e.printStackTrace();
                                            }
                                    !   } 
                                      
                                        /**
                                         * The activation system entry point.
                                    --- 236,242 ----
                                              if (ActivationSystemTransient.debug)
                                                e.printStackTrace();
                                            }
                                    !   }
                                      
                                        /**
                                         * The activation system entry point.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.TimerTask;
                                    *** 61,67 ****
                                       * database change or at most after ALWAYS_UPDATE, if the database is updated
                                       * very frequently. To ensure that no information is lost, the shutdown method
                                       * must be called before exit.
                                    !  * 
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class PersistentBidiHashTable extends BidiTable implements
                                    --- 61,67 ----
                                       * database change or at most after ALWAYS_UPDATE, if the database is updated
                                       * very frequently. To ensure that no information is lost, the shutdown method
                                       * must be called before exit.
                                    !  *
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class PersistentBidiHashTable extends BidiTable implements
                                    *************** public class PersistentBidiHashTable ext
                                    *** 129,135 ****
                                        /**
                                         * Create a new persistent table that stores its information into the given
                                         * file. The ActivationSystemImpl.singleton2 must be assigned.
                                    !    * 
                                         * @param file
                                         *          the file, where the table stores its information.
                                         * @param coldStart
                                    --- 129,135 ----
                                        /**
                                         * Create a new persistent table that stores its information into the given
                                         * file. The ActivationSystemImpl.singleton2 must be assigned.
                                    !    *
                                         * @param file
                                         *          the file, where the table stores its information.
                                         * @param coldStart
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.Map;
                                    *** 59,65 ****
                                      
                                      /**
                                       * The optionally persistent RMI registry implementation.
                                    !  * 
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class Main
                                    --- 59,65 ----
                                      
                                      /**
                                       * The optionally persistent RMI registry implementation.
                                    !  *
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class Main
                                    *************** public class Main
                                    *** 68,74 ****
                                         * The stop command.
                                         */
                                        public static String STOP = "gnu.classpath.tools.rmi.registry.command.STOP";
                                    !   
                                        /**
                                         * If true, the registry prints registration events to console.
                                         */
                                    --- 68,74 ----
                                         * The stop command.
                                         */
                                        public static String STOP = "gnu.classpath.tools.rmi.registry.command.STOP";
                                    ! 
                                        /**
                                         * If true, the registry prints registration events to console.
                                         */
                                    *************** public class Main
                                    *** 195,201 ****
                                                {
                                                  Registry r = LocateRegistry.getRegistry(port);
                                                  // Search for this specific line will command to stop the registry.
                                    !             
                                                  // Our service returns null, but any other service will thrown
                                                  // NotBoundException.
                                                  r.unbind(STOP);
                                    --- 195,201 ----
                                                {
                                                  Registry r = LocateRegistry.getRegistry(port);
                                                  // Search for this specific line will command to stop the registry.
                                    ! 
                                                  // Our service returns null, but any other service will thrown
                                                  // NotBoundException.
                                                  r.unbind(STOP);
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.TimerTask;
                                    *** 56,66 ****
                                       * SAVE_AT_MOST_AFTER time from the latest database change or at most after
                                       * ALWAYS_UPDATE, if the database is updated very frequently. To ensure that no
                                       * information is lost, the shutdown method must be called before exit.
                                    !  * 
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                    ! public class PersistentHashTable 
                                    !   extends Hashtable 
                                        implements Serializable, Persistent
                                      {
                                      
                                    --- 56,66 ----
                                       * SAVE_AT_MOST_AFTER time from the latest database change or at most after
                                       * ALWAYS_UPDATE, if the database is updated very frequently. To ensure that no
                                       * information is lost, the shutdown method must be called before exit.
                                    !  *
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                    ! public class PersistentHashTable
                                    !   extends Hashtable
                                        implements Serializable, Persistent
                                      {
                                      
                                    *************** public class PersistentHashTable 
                                    *** 95,108 ****
                                         * The time, when the disk database was last updated.
                                         */
                                        long lastUpdated;
                                    !   
                                        /**
                                         * Setting to false prevents the automated disk update.
                                         * The initial value is true to prevent writing while reading and is set
                                         * to false in createInstance.
                                         */
                                        transient boolean ready;
                                    !   
                                        /**
                                         * Use static method to obtain the instance.
                                         */
                                    --- 95,108 ----
                                         * The time, when the disk database was last updated.
                                         */
                                        long lastUpdated;
                                    ! 
                                        /**
                                         * Setting to false prevents the automated disk update.
                                         * The initial value is true to prevent writing while reading and is set
                                         * to false in createInstance.
                                         */
                                        transient boolean ready;
                                    ! 
                                        /**
                                         * Use static method to obtain the instance.
                                         */
                                    *************** public class PersistentHashTable 
                                    *** 116,122 ****
                                        /**
                                         * Create a new persistent table that stores its information into the given
                                         * file.
                                    !    * 
                                         * @param file
                                         *          the file, where the table stores its information.
                                         * @param coldStart
                                    --- 116,122 ----
                                        /**
                                         * Create a new persistent table that stores its information into the given
                                         * file.
                                    !    *
                                         * @param file
                                         *          the file, where the table stores its information.
                                         * @param coldStart
                                    *************** public class PersistentHashTable 
                                    *** 161,167 ****
                                                k2v = new PersistentHashTable(file);
                                              System.out.println ("Here7");
                                                }
                                    !         
                                              System.out.println ("Here8");
                                              k2v.ready = true;
                                              return k2v;
                                    --- 161,167 ----
                                                k2v = new PersistentHashTable(file);
                                              System.out.println ("Here7");
                                                }
                                    ! 
                                              System.out.println ("Here8");
                                              k2v.ready = true;
                                              return k2v;
                                    *************** public class PersistentHashTable 
                                    *** 174,181 ****
                                              throw ierr;
                                            }
                                        }
                                    !   
                                    !   
                                        /**
                                         * Write the database content to the disk.
                                         */
                                    --- 174,181 ----
                                              throw ierr;
                                            }
                                        }
                                    ! 
                                    ! 
                                        /**
                                         * Write the database content to the disk.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 8,14 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 8,14 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** import java.util.Map;
                                    *** 51,57 ****
                                      
                                      /**
                                       * The optionally persistent registry implementation.
                                    !  * 
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class RegistryImpl implements Registry
                                    --- 51,57 ----
                                      
                                      /**
                                       * The optionally persistent registry implementation.
                                    !  *
                                       * @author Audrius Meskauskas (audriusa@bioinformatics.org)
                                       */
                                      public class RegistryImpl implements Registry
                                    *************** public class RegistryImpl implements Reg
                                    *** 60,75 ****
                                         * The binding table.
                                         */
                                        Map bindings;
                                    !   
                                        /**
                                         * Create the registry implementation that uses the given bidirectinal
                                         * table to keep the data.
                                         */
                                        public RegistryImpl(Map aTable)
                                        {
                                    !     bindings = aTable;    
                                        }
                                    !   
                                        /** @inheritDoc */
                                        public Remote lookup(String name) throws RemoteException, NotBoundException,
                                            AccessException
                                    --- 60,75 ----
                                         * The binding table.
                                         */
                                        Map bindings;
                                    ! 
                                        /**
                                         * Create the registry implementation that uses the given bidirectinal
                                         * table to keep the data.
                                         */
                                        public RegistryImpl(Map aTable)
                                        {
                                    !     bindings = aTable;
                                        }
                                    ! 
                                        /** @inheritDoc */
                                        public Remote lookup(String name) throws RemoteException, NotBoundException,
                                            AccessException
                                    *************** public class RegistryImpl implements Reg
                                    *** 107,113 ****
                                            {
                                              if (Main.verbose)
                                                System.out.println("Unbind "+name);
                                    !         
                                              if (!bindings.containsKey(name))
                                                throw new NotBoundException(name);
                                              else
                                    --- 107,113 ----
                                            {
                                              if (Main.verbose)
                                                System.out.println("Unbind "+name);
                                    ! 
                                              if (!bindings.containsKey(name))
                                                throw new NotBoundException(name);
                                              else
                                    *************** public class RegistryImpl implements Reg
                                    *** 124,130 ****
                                          bindings.put(name, obj);
                                        }
                                      
                                    !   /** @inheritDoc */  
                                        public String[] list() throws RemoteException, AccessException
                                        {
                                          // Create a separated array to prevent race conditions.
                                    --- 124,130 ----
                                          bindings.put(name, obj);
                                        }
                                      
                                    !   /** @inheritDoc */
                                        public String[] list() throws RemoteException, AccessException
                                        {
                                          // Create a separated array to prevent race conditions.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.rmi.server.RemoteCall;
                                    *** 49,55 ****
                                      import java.rmi.server.SkeletonMismatchException;
                                      
                                      /**
                                    !  * This skeleton supports unlikely cases when the naming service is 
                                       * contacted from other interoperable java implementation that still uses
                                       * the old style skeleton-dependent invocations.
                                       */
                                    --- 49,55 ----
                                      import java.rmi.server.SkeletonMismatchException;
                                      
                                      /**
                                    !  * This skeleton supports unlikely cases when the naming service is
                                       * contacted from other interoperable java implementation that still uses
                                       * the old style skeleton-dependent invocations.
                                       */
                                    *************** public final class RegistryImpl_Skel
                                    *** 57,74 ****
                                          implements java.rmi.server.Skeleton
                                      {
                                          private static final long interfaceHash = 4905912898345647071L;
                                    !     
                                          /**
                                           * Repeated multiple times.
                                           */
                                          static final String EUM = "error unmarshalling arguments for Registry";
                                    !     
                                          /**
                                           * Repeated multiple times.
                                           */
                                          static final String EMR = "error marshalling return from Registry";
                                    !     
                                    !     private static final Operation[] operations = 
                                            {
                                               new Operation("void bind(java.lang.String, Remote"),
                                               new Operation("java.lang.String[] list("),
                                    --- 57,74 ----
                                          implements java.rmi.server.Skeleton
                                      {
                                          private static final long interfaceHash = 4905912898345647071L;
                                    ! 
                                          /**
                                           * Repeated multiple times.
                                           */
                                          static final String EUM = "error unmarshalling arguments for Registry";
                                    ! 
                                          /**
                                           * Repeated multiple times.
                                           */
                                          static final String EMR = "error marshalling return from Registry";
                                    ! 
                                    !     private static final Operation[] operations =
                                            {
                                               new Operation("void bind(java.lang.String, Remote"),
                                               new Operation("java.lang.String[] list("),
                                    *************** public final class RegistryImpl_Skel
                                    *** 76,87 ****
                                               new Operation("void rebind(java.lang.String, Remote"),
                                               new Operation("void unbind(java.lang.String")
                                            };
                                    !     
                                          public Operation[] getOperations()
                                        {
                                          return ((Operation[]) operations.clone());
                                        }
                                    !     
                                          public void dispatch(Remote obj, RemoteCall call,
                                                             int opnum, long hash) throws java.lang.Exception
                                        {
                                    --- 76,87 ----
                                               new Operation("void rebind(java.lang.String, Remote"),
                                               new Operation("void unbind(java.lang.String")
                                            };
                                    ! 
                                          public Operation[] getOperations()
                                        {
                                          return ((Operation[]) operations.clone());
                                        }
                                    ! 
                                          public void dispatch(Remote obj, RemoteCall call,
                                                             int opnum, long hash) throws java.lang.Exception
                                        {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java	Mon Dec 11 17:58:01 2006
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** import java.rmi.UnexpectedException;
                                    *** 51,73 ****
                                      
                                      /**
                                       * This class delegates its method calls to the remote RMI object, referenced
                                    !  * by {@link RemoteRef}. 
                                       *
                                       * It is normally generated with rmic.
                                       */
                                    ! public final class RegistryImpl_Stub 
                                          extends RemoteStub
                                          implements Registry
                                      {
                                          /**
                                    !      * Use serialVersionUID for interoperability 
                                           */
                                          private static final long serialVersionUID = 3;
                                    !     
                                          /**
                                           * The explaining message for {@ling UnexpectedException}.
                                           */
                                    !     private static final String exception_message = 
                                            "undeclared checked exception";
                                      
                                           /* All remote methods, invoked by this stub: */
                                    --- 51,73 ----
                                      
                                      /**
                                       * This class delegates its method calls to the remote RMI object, referenced
                                    !  * by {@link RemoteRef}.
                                       *
                                       * It is normally generated with rmic.
                                       */
                                    ! public final class RegistryImpl_Stub
                                          extends RemoteStub
                                          implements Registry
                                      {
                                          /**
                                    !      * Use serialVersionUID for interoperability
                                           */
                                          private static final long serialVersionUID = 3;
                                    ! 
                                          /**
                                           * The explaining message for {@ling UnexpectedException}.
                                           */
                                    !     private static final String exception_message =
                                            "undeclared checked exception";
                                      
                                           /* All remote methods, invoked by this stub: */
                                    *************** public final class RegistryImpl_Stub 
                                    *** 79,86 ****
                                          private static final Object[] NO_ARGS = new Object[0];
                                          static
                                            {
                                    !         final Class[]  NO_ARGSc = new Class[0];      
                                    !         try 
                                                {
                                                   met_list =
                                                     Registry.class.getMethod("list", NO_ARGSc);
                                    --- 79,86 ----
                                          private static final Object[] NO_ARGS = new Object[0];
                                          static
                                            {
                                    !         final Class[]  NO_ARGSc = new Class[0];
                                    !         try
                                                {
                                                   met_list =
                                                     Registry.class.getMethod("list", NO_ARGSc);
                                    *************** public final class RegistryImpl_Stub 
                                    *** 112,134 ****
                                                     "RegistryImpl_Stub class initialization failed");
                                                   err.initCause(nex);
                                                   throw err;
                                    !           }  
                                            }
                                    !     
                                          /**
                                           * Create the instance for _RegistryImpl_Stub that forwards method calls to the
                                           * remote object.
                                           *
                                           * @para the reference to the remote object.
                                           */
                                    !     public RegistryImpl_Stub(RemoteRef reference) 
                                          {
                                             super(reference);
                                    !     }    
                                    !     
                                    !     /* Methods */    
                                        /** @inheritDoc */
                                    !   public String [] list() 
                                          throws RemoteException, AccessException
                                        {
                                          try
                                    --- 112,134 ----
                                                     "RegistryImpl_Stub class initialization failed");
                                                   err.initCause(nex);
                                                   throw err;
                                    !           }
                                            }
                                    ! 
                                          /**
                                           * Create the instance for _RegistryImpl_Stub that forwards method calls to the
                                           * remote object.
                                           *
                                           * @para the reference to the remote object.
                                           */
                                    !     public RegistryImpl_Stub(RemoteRef reference)
                                          {
                                             super(reference);
                                    !     }
                                    ! 
                                    !     /* Methods */
                                        /** @inheritDoc */
                                    !   public String [] list()
                                          throws RemoteException, AccessException
                                        {
                                          try
                                    *************** public final class RegistryImpl_Stub 
                                    *** 136,142 ****
                                              Object result =  ref.invoke(this, met_list,
                                                         NO_ARGS,
                                                         2571371476350237748L);
                                    !         return (String []) result;           
                                            }
                                          catch (RuntimeException e)
                                            {
                                    --- 136,142 ----
                                              Object result =  ref.invoke(this, met_list,
                                                         NO_ARGS,
                                                         2571371476350237748L);
                                    !         return (String []) result;
                                            }
                                          catch (RuntimeException e)
                                            {
                                    *************** public final class RegistryImpl_Stub 
                                    *** 153,161 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                    !   public void rebind(String p0, Remote p1) 
                                          throws RemoteException, AccessException
                                        {
                                          try
                                    --- 153,161 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                    !   public void rebind(String p0, Remote p1)
                                          throws RemoteException, AccessException
                                        {
                                          try
                                    *************** public final class RegistryImpl_Stub 
                                    *** 179,187 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                    !   public void unbind(String p0) 
                                          throws RemoteException, NotBoundException, AccessException
                                        {
                                          try
                                    --- 179,187 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                    !   public void unbind(String p0)
                                          throws RemoteException, NotBoundException, AccessException
                                        {
                                          try
                                    *************** public final class RegistryImpl_Stub 
                                    *** 205,213 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                    !   public Remote lookup(String p0) 
                                          throws RemoteException, NotBoundException, AccessException
                                        {
                                          try
                                    --- 205,213 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                    !   public Remote lookup(String p0)
                                          throws RemoteException, NotBoundException, AccessException
                                        {
                                          try
                                    *************** public final class RegistryImpl_Stub 
                                    *** 215,221 ****
                                              Object result =  ref.invoke(this, met_lookup,
                                                         new Object[] {p0},
                                                         -7538657168040752697L);
                                    !         return (Remote) result;           
                                            }
                                          catch (RuntimeException e)
                                            {
                                    --- 215,221 ----
                                              Object result =  ref.invoke(this, met_lookup,
                                                         new Object[] {p0},
                                                         -7538657168040752697L);
                                    !         return (Remote) result;
                                            }
                                          catch (RuntimeException e)
                                            {
                                    *************** public final class RegistryImpl_Stub 
                                    *** 232,240 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                        /** @inheritDoc */
                                    !   public void bind(String p0, Remote p1) 
                                          throws RemoteException, AlreadyBoundException, AccessException
                                        {
                                          try
                                    --- 232,240 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                        /** @inheritDoc */
                                    !   public void bind(String p0, Remote p1)
                                          throws RemoteException, AlreadyBoundException, AccessException
                                        {
                                          try
                                    *************** public final class RegistryImpl_Stub 
                                    *** 258,263 ****
                                              throw uex;
                                            }
                                        }
                                    !    
                                    !     
                                      }
                                    --- 258,263 ----
                                              throw uex;
                                            }
                                        }
                                    ! 
                                    ! 
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 7,13 ****
                                       it under the terms of the GNU General Public License as published by
                                       the Free Software Foundation; either version 2, or (at your option)
                                       any later version.
                                    !  
                                       GNU Classpath 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
                                    --- 7,13 ----
                                       it under the terms of the GNU General Public License as published by
                                       the Free Software Foundation; either version 2, or (at your option)
                                       any later version.
                                    ! 
                                       GNU Classpath 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
                                    ***************
                                    *** 16,23 ****
                                       You should have received a copy of the GNU General Public License
                                       along with GNU Classpath; see the file COPYING.  If not, write to the
                                       Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    !  02111-1307 USA. */
                                      
                                      
                                      package gnu.classpath.tools.serialver;
                                      
                                    --- 16,39 ----
                                       You should have received a copy of the GNU General Public License
                                       along with GNU Classpath; see the file COPYING.  If not, write to the
                                       Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    !  02111-1307 USA.
                                      
                                    +  Linking this library statically or dynamically with other modules is
                                    +  making a combined work based on this library.  Thus, the terms and
                                    +  conditions of the GNU General Public License cover the whole
                                    +  combination.
                                    + 
                                    +  As a special exception, the copyright holders of this library give you
                                    +  permission to link this library with independent modules to produce an
                                    +  executable, regardless of the license terms of these independent
                                    +  modules, and to copy and distribute the resulting executable under
                                    +  terms of your choice, provided that you also meet, for each linked
                                    +  independent module, the terms and conditions of the license of that
                                    +  module.  An independent module is a module which is not derived from
                                    +  or based on this library.  If you modify this library, you may extend
                                    +  this exception to your version of the library, but you are not
                                    +  obligated to do so.  If you do not wish to do so, delete this
                                    +  exception statement from your version. */
                                      
                                      package gnu.classpath.tools.serialver;
                                      
                                    *************** public class SerialVer
                                    *** 160,163 ****
                                        {
                                          new SerialVer().run(args);
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 176,179 ----
                                        {
                                          new SerialVer().run(args);
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,276 ****
                                    ! /* gnu.classpath.tools.taglets.AuthorTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import java.util.regex.Pattern;
                                    ! import java.util.regex.Matcher;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  The default Taglet which handles Author information.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class AuthorTaglet implements Taglet {
                                    !    
                                    !    /**
                                    !     *  Enum class which denotes whether and how to replace email
                                    !     *  addresses in author tags.
                                    !     */
                                    !    public static class EmailReplacement {
                                    !       private EmailReplacement() {}
                                    ! 
                                    !       /**
                                    !        *  Specifies that email addresses should not be replaced.
                                    !        */
                                    !       public static final EmailReplacement NO_REPLACEMENT = new EmailReplacement();
                                    ! 
                                    !       /**
                                    !        *  Specifies that author tag text matching "Real Name
                                    !        *  (user@domain.tld)" is converted to "<a
                                    !        *  href="mailto:user@domain.tld">Real Name</a>.
                                    !        */
                                    !       public static final EmailReplacement MAILTO_NAME = new EmailReplacement();
                                    ! 
                                    !       /**
                                    !        *  Specifies that author tag text matching "Real Name
                                    !        *  (user@domain.tld)" is converted to "Real Name (<a
                                    !        *  href="mailto:user@domain.tld">user@domain.tld</a>).
                                    !        */
                                    !       public static final EmailReplacement NAME_MAILTO_ADDRESS = new EmailReplacement();
                                    ! 
                                    !       /**
                                    !        *  Specifies that author tag text matching "Real Name
                                    !        *  (user@domain.tld)" is converted to "Real Name (user AT
                                    !        *  domain DOT tld)", where the "AT" and "DOT" replacement are
                                    !        *  specified by AuthorTaglet.emailAtReplacement and
                                    !        *  AuthorTaglet.emailDotReplacement.
                                    !        */
                                    !       public static final EmailReplacement NAME_MANGLED_ADDRESS = new EmailReplacement();      
                                    !    }
                                    ! 
                                    !    private static EmailReplacement emailReplacementType = EmailReplacement.NO_REPLACEMENT;
                                    !    private static String atReplacement = " <b>at</b> ";
                                    !    private static String dotReplacement = " <b>dot</b> ";
                                    ! 
                                    !    private static final String NAME = "author";
                                    !    private static final String SINGLE_HEADER = "Author:";
                                    !    private static final String MULTI_HEADER = "Authors:";
                                    ! 
                                    !    private static boolean enabled = true;
                                    !    
                                    !    /**
                                    !     *  Matches <code>.</code> (dot).
                                    !     */
                                    !    private static final Pattern dotPattern = Pattern.compile("[.]");
                                    ! 
                                    !    /**
                                    !     *  Matches <code>@</code> (at sign).
                                    !     */
                                    !    private static final Pattern atPattern = Pattern.compile("[@]");
                                    ! 
                                    !    /**
                                    !     *  Matches <code>Real Name (user@domain.tld)</code>.
                                    !     */
                                    !    private static final Pattern authorEmailPattern
                                    !      = Pattern.compile("^"
                                    !                        + "\\s*" // optional whitespace
                                    !                        + "(" // group #1 start (real name)
                                    !                        + "(?:[^\t\r\n ]|\\()+" // first name
                                    !                        + "(?:\\s+(?:[^\t\r\n ]|\\()+)*" // additional names
                                    !                        + ")" // group #1 end
                                    !                        + "\\s*" // optional whitespace                    
                                    !                        + "[(<]" // opening paren
                                    !                        + "\\s*" // optional whitespace                       
                                    !                        + "(" // group #2 start (email address)
                                    !                        + "(" // group #3 start (email user)
                                    !                        + "[A-z0-9_\\-\\.]+" // username
                                    !                        + ")" // group #3 end
                                    !                        + "[@]" // at sign
                                    !                        + "[A-z0-9_\\-]+(?:[.][A-z0-9_\\-]+)+[A-z]" // domain
                                    !                        + ")" // group #2 end
                                    !                        + "\\s*" // optional whitespace
                                    !                        + "(?:\\)|>)" // closing paren
                                    !                        + "$");
                                    !     
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    !     
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    !    
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }    
                                    ! 
                                    !    public static void register(Map tagletMap) {
                                    !       AuthorTaglet authorTaglet = new AuthorTaglet();
                                    !       tagletMap.put(authorTaglet.getName(), authorTaglet);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          boolean haveValidTag = false;
                                    !          for (int i = 0; i < tags.length && !haveValidTag; ++i) {
                                    !             if (tags[i].text().length() > 0) {
                                    !                haveValidTag = true;
                                    !             }
                                    !          }
                                    !          
                                    !          if (haveValidTag) {
                                    !             StringBuffer result = new StringBuffer();
                                    !             result.append("<dl class=\"tag list\">");
                                    !             result.append("<dt class=\"tag section header\"><b>");
                                    !             if (tags.length == 1) {
                                    !                result.append(SINGLE_HEADER);
                                    !             }
                                    !             else {
                                    !                result.append(MULTI_HEADER);
                                    !             }
                                    !             result.append("</b></dt>");
                                    !             for (int i = 0; i < tags.length; i++) {
                                    !                result.append("<dd class=\"tag item\">");
                                    !                result.append(replaceEmail(tags[i].text()));
                                    !                result.append("</dd>");
                                    !             }
                                    !             result.append("</dl>");
                                    !             return result.toString();
                                    !          }
                                    !          else {
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }   
                                    ! 
                                    !    /**
                                    !     *  Reformat the tag text according to {@link #emailReplacementType}.
                                    !     */
                                    !    private String replaceEmail(String text) {
                                    ! 
                                    !       if (EmailReplacement.NO_REPLACEMENT == emailReplacementType) {
                                    !          return text;
                                    !       }
                                    !       else {
                                    !          Matcher matcher = authorEmailPattern.matcher(text);
                                    !          if (matcher.matches()) {
                                    !             String realName = matcher.group(1);
                                    !             String emailAddress = matcher.group(2);
                                    !             if (EmailReplacement.MAILTO_NAME == emailReplacementType) {         
                                    !                return "<a href=\"mailto:" + emailAddress + "\">" + realName + "</a>";
                                    !             }
                                    !             else if (EmailReplacement.NAME_MAILTO_ADDRESS == emailReplacementType) {
                                    !                return realName + " (<a href=\"mailto:" + emailAddress + "\">" + emailAddress + "</a>)";
                                    !             }
                                    !             else if (EmailReplacement.NAME_MANGLED_ADDRESS == emailReplacementType) {
                                    !                Matcher dotMatcher = dotPattern.matcher(emailAddress);
                                    !                Matcher atMatcher = atPattern.matcher(dotMatcher.replaceAll(dotReplacement));
                                    !                String mangledAddress = atMatcher.replaceAll(atReplacement);
                                    !                return realName + " (" + mangledAddress + ")";
                                    !             }
                                    !             else {
                                    !                // this shouldn't happen
                                    !                return text;
                                    !             }
                                    !          }
                                    !          else {
                                    !             return text;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Set the email replacement type.
                                    !     */
                                    !    public static void setEmailReplacementType(EmailReplacement emailReplacementType)
                                    !    {
                                    !       if (null == emailReplacementType) {
                                    !          throw new NullPointerException();
                                    !       }
                                    !       AuthorTaglet.emailReplacementType = emailReplacementType;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Set the HTML text by which the <code>@</code> (at sign) in email
                                    !     *  addresses should be replaced if the email replacement type is
                                    !     *  <code>NAME_MANGLED_ADDRESS</code>.
                                    !     */
                                    !    public static void setAtReplacement(String atReplacement)
                                    !    {
                                    !       AuthorTaglet.atReplacement = atReplacement;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Set the HTML text by which the <code>.</code> (dot) in email
                                    !     *  addresses should be replaced if the email replacement type is
                                    !     *  <code>NAME_MANGLED_ADDRESS</code>.
                                    !     */
                                    !    public static void setDotReplacement(String dotReplacement)
                                    !    {
                                    !       AuthorTaglet.dotReplacement = dotReplacement;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public static void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       AuthorTaglet.enabled = enabled;
                                    !    }
                                    ! }
                                    --- 1,293 ----
                                    ! /* gnu.classpath.tools.taglets.AuthorTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import java.util.regex.Pattern;
                                    ! import java.util.regex.Matcher;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  The default Taglet which handles Author information.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class AuthorTaglet implements Taglet {
                                    ! 
                                    !    /**
                                    !     *  Enum class which denotes whether and how to replace email
                                    !     *  addresses in author tags.
                                    !     */
                                    !    public static class EmailReplacement {
                                    !       private EmailReplacement() {}
                                    ! 
                                    !       /**
                                    !        *  Specifies that email addresses should not be replaced.
                                    !        */
                                    !       public static final EmailReplacement NO_REPLACEMENT = new EmailReplacement();
                                    ! 
                                    !       /**
                                    !        *  Specifies that author tag text matching "Real Name
                                    !        *  (user@domain.tld)" is converted to "<a
                                    !        *  href="mailto:user@domain.tld">Real Name</a>.
                                    !        */
                                    !       public static final EmailReplacement MAILTO_NAME = new EmailReplacement();
                                    ! 
                                    !       /**
                                    !        *  Specifies that author tag text matching "Real Name
                                    !        *  (user@domain.tld)" is converted to "Real Name (<a
                                    !        *  href="mailto:user@domain.tld">user@domain.tld</a>).
                                    !        */
                                    !       public static final EmailReplacement NAME_MAILTO_ADDRESS = new EmailReplacement();
                                    ! 
                                    !       /**
                                    !        *  Specifies that author tag text matching "Real Name
                                    !        *  (user@domain.tld)" is converted to "Real Name (user AT
                                    !        *  domain DOT tld)", where the "AT" and "DOT" replacement are
                                    !        *  specified by AuthorTaglet.emailAtReplacement and
                                    !        *  AuthorTaglet.emailDotReplacement.
                                    !        */
                                    !       public static final EmailReplacement NAME_MANGLED_ADDRESS = new EmailReplacement();
                                    !    }
                                    ! 
                                    !    private static EmailReplacement emailReplacementType = EmailReplacement.NO_REPLACEMENT;
                                    !    private static String atReplacement = " <b>at</b> ";
                                    !    private static String dotReplacement = " <b>dot</b> ";
                                    ! 
                                    !    private static final String NAME = "author";
                                    !    private static final String SINGLE_HEADER = "Author:";
                                    !    private static final String MULTI_HEADER = "Authors:";
                                    ! 
                                    !    private static boolean enabled = true;
                                    ! 
                                    !    /**
                                    !     *  Matches <code>.</code> (dot).
                                    !     */
                                    !    private static final Pattern dotPattern = Pattern.compile("[.]");
                                    ! 
                                    !    /**
                                    !     *  Matches <code>@</code> (at sign).
                                    !     */
                                    !    private static final Pattern atPattern = Pattern.compile("[@]");
                                    ! 
                                    !    /**
                                    !     *  Matches <code>Real Name (user@domain.tld)</code>.
                                    !     */
                                    !    private static final Pattern authorEmailPattern
                                    !      = Pattern.compile("^"
                                    !                        + "\\s*" // optional whitespace
                                    !                        + "(" // group #1 start (real name)
                                    !                        + "(?:[^\t\r\n ]|\\()+" // first name
                                    !                        + "(?:\\s+(?:[^\t\r\n ]|\\()+)*" // additional names
                                    !                        + ")" // group #1 end
                                    !                        + "\\s*" // optional whitespace
                                    !                        + "[(<]" // opening paren
                                    !                        + "\\s*" // optional whitespace
                                    !                        + "(" // group #2 start (email address)
                                    !                        + "(" // group #3 start (email user)
                                    !                        + "[A-z0-9_\\-\\.]+" // username
                                    !                        + ")" // group #3 end
                                    !                        + "[@]" // at sign
                                    !                        + "[A-z0-9_\\-]+(?:[.][A-z0-9_\\-]+)+[A-z]" // domain
                                    !                        + ")" // group #2 end
                                    !                        + "\\s*" // optional whitespace
                                    !                        + "(?:\\)|>)" // closing paren
                                    !                        + "$");
                                    ! 
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    ! 
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }
                                    ! 
                                    !    public static void register(Map tagletMap) {
                                    !       AuthorTaglet authorTaglet = new AuthorTaglet();
                                    !       tagletMap.put(authorTaglet.getName(), authorTaglet);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          boolean haveValidTag = false;
                                    !          for (int i = 0; i < tags.length && !haveValidTag; ++i) {
                                    !             if (tags[i].text().length() > 0) {
                                    !                haveValidTag = true;
                                    !             }
                                    !          }
                                    ! 
                                    !          if (haveValidTag) {
                                    !             StringBuffer result = new StringBuffer();
                                    !             result.append("<dl class=\"tag list\">");
                                    !             result.append("<dt class=\"tag section header\"><b>");
                                    !             if (tags.length == 1) {
                                    !                result.append(SINGLE_HEADER);
                                    !             }
                                    !             else {
                                    !                result.append(MULTI_HEADER);
                                    !             }
                                    !             result.append("</b></dt>");
                                    !             for (int i = 0; i < tags.length; i++) {
                                    !                result.append("<dd class=\"tag item\">");
                                    !                result.append(replaceEmail(tags[i].text()));
                                    !                result.append("</dd>");
                                    !             }
                                    !             result.append("</dl>");
                                    !             return result.toString();
                                    !          }
                                    !          else {
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Reformat the tag text according to {@link #emailReplacementType}.
                                    !     */
                                    !    private String replaceEmail(String text) {
                                    ! 
                                    !       if (EmailReplacement.NO_REPLACEMENT == emailReplacementType) {
                                    !          return text;
                                    !       }
                                    !       else {
                                    !          Matcher matcher = authorEmailPattern.matcher(text);
                                    !          if (matcher.matches()) {
                                    !             String realName = matcher.group(1);
                                    !             String emailAddress = matcher.group(2);
                                    !             if (EmailReplacement.MAILTO_NAME == emailReplacementType) {
                                    !                return "<a href=\"mailto:" + emailAddress + "\">" + realName + "</a>";
                                    !             }
                                    !             else if (EmailReplacement.NAME_MAILTO_ADDRESS == emailReplacementType) {
                                    !                return realName + " (<a href=\"mailto:" + emailAddress + "\">" + emailAddress + "</a>)";
                                    !             }
                                    !             else if (EmailReplacement.NAME_MANGLED_ADDRESS == emailReplacementType) {
                                    !                Matcher dotMatcher = dotPattern.matcher(emailAddress);
                                    !                Matcher atMatcher = atPattern.matcher(dotMatcher.replaceAll(dotReplacement));
                                    !                String mangledAddress = atMatcher.replaceAll(atReplacement);
                                    !                return realName + " (" + mangledAddress + ")";
                                    !             }
                                    !             else {
                                    !                // this shouldn't happen
                                    !                return text;
                                    !             }
                                    !          }
                                    !          else {
                                    !             return text;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Set the email replacement type.
                                    !     */
                                    !    public static void setEmailReplacementType(EmailReplacement emailReplacementType)
                                    !    {
                                    !       if (null == emailReplacementType) {
                                    !          throw new NullPointerException();
                                    !       }
                                    !       AuthorTaglet.emailReplacementType = emailReplacementType;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Set the HTML text by which the <code>@</code> (at sign) in email
                                    !     *  addresses should be replaced if the email replacement type is
                                    !     *  <code>NAME_MANGLED_ADDRESS</code>.
                                    !     */
                                    !    public static void setAtReplacement(String atReplacement)
                                    !    {
                                    !       AuthorTaglet.atReplacement = atReplacement;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Set the HTML text by which the <code>.</code> (dot) in email
                                    !     *  addresses should be replaced if the email replacement type is
                                    !     *  <code>NAME_MANGLED_ADDRESS</code>.
                                    !     */
                                    !    public static void setDotReplacement(String dotReplacement)
                                    !    {
                                    !       AuthorTaglet.dotReplacement = dotReplacement;
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public static void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       AuthorTaglet.enabled = enabled;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.taglets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.taglets;
                                      
                                    *************** import com.sun.javadoc.SeeTag;
                                    *** 36,42 ****
                                       *
                                       *  @author Julian Scheid (julian@sektor37.de)
                                       */
                                    ! public class CodeTaglet 
                                         implements Taglet
                                      {
                                         private static final String NAME = "code";
                                    --- 53,59 ----
                                       *
                                       *  @author Julian Scheid (julian@sektor37.de)
                                       */
                                    ! public class CodeTaglet
                                         implements Taglet
                                      {
                                         private static final String NAME = "code";
                                    *************** public class CodeTaglet 
                                    *** 44,50 ****
                                         public String getName() {
                                            return NAME;
                                         }
                                    !     
                                         public boolean inField() {
                                            return true;
                                         }
                                    --- 61,67 ----
                                         public String getName() {
                                            return NAME;
                                         }
                                    ! 
                                         public boolean inField() {
                                            return true;
                                         }
                                    *************** public class CodeTaglet 
                                    *** 52,62 ****
                                         public boolean inConstructor() {
                                            return true;
                                         }
                                    !     
                                         public boolean inMethod() {
                                            return true;
                                         }
                                    !    
                                         public boolean inOverview() {
                                            return true;
                                         }
                                    --- 69,79 ----
                                         public boolean inConstructor() {
                                            return true;
                                         }
                                    ! 
                                         public boolean inMethod() {
                                            return true;
                                         }
                                    ! 
                                         public boolean inOverview() {
                                            return true;
                                         }
                                    *************** public class CodeTaglet 
                                    *** 68,77 ****
                                         public boolean inType() {
                                            return true;
                                         }
                                    !     
                                         public boolean isInlineTag() {
                                            return true;
                                    !    }    
                                      
                                         public String toString(Tag tag) {
                                            return "<code>" + tag.text() + "</code>";
                                    --- 85,94 ----
                                         public boolean inType() {
                                            return true;
                                         }
                                    ! 
                                         public boolean isInlineTag() {
                                            return true;
                                    !    }
                                      
                                         public String toString(Tag tag) {
                                            return "<code>" + tag.text() + "</code>";
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,106 ****
                                    ! /* gnu.classpath.tools.taglets.CopyrightTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  A simple Taglet which handles Copyright information.
                                    !  */
                                    ! public class CopyrightTaglet implements Taglet {
                                    ! 
                                    !    private static final String NAME = "copyright";
                                    !    private static final String HEADER = "Copyright:";
                                    !     
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    !     
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    !    
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }    
                                    ! 
                                    !    public static void register(Map tagletMap) {
                                    !       CopyrightTaglet copyrightTaglet = new CopyrightTaglet();
                                    !       tagletMap.put(copyrightTaglet.getName(), copyrightTaglet);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       return toString(new Tag[] { tag });
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          boolean haveValidTag = false;
                                    !          for (int i = 0; i < tags.length && !haveValidTag; ++i) {
                                    !             if (tags[i].text().length() > 0) {
                                    !                haveValidTag = true;
                                    !             }
                                    !          }
                                    !          
                                    !          if (haveValidTag) {
                                    !             StringBuffer result = new StringBuffer();
                                    !             result.append("<dl>");
                                    !             for (int i = 0; i < tags.length; i++) {
                                    !                if (tags[i].text().length() > 0) {
                                    !                   result.append("<dt><i>Copyright © " + tags[i].text() + "</i></dt>");
                                    !                }
                                    !             }
                                    !             result.append("</dl>");
                                    !             return result.toString();
                                    !          }
                                    !          else {
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! }
                                    --- 1,123 ----
                                    ! /* gnu.classpath.tools.taglets.CopyrightTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  A simple Taglet which handles Copyright information.
                                    !  */
                                    ! public class CopyrightTaglet implements Taglet {
                                    ! 
                                    !    private static final String NAME = "copyright";
                                    !    private static final String HEADER = "Copyright:";
                                    ! 
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    ! 
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }
                                    ! 
                                    !    public static void register(Map tagletMap) {
                                    !       CopyrightTaglet copyrightTaglet = new CopyrightTaglet();
                                    !       tagletMap.put(copyrightTaglet.getName(), copyrightTaglet);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       return toString(new Tag[] { tag });
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          boolean haveValidTag = false;
                                    !          for (int i = 0; i < tags.length && !haveValidTag; ++i) {
                                    !             if (tags[i].text().length() > 0) {
                                    !                haveValidTag = true;
                                    !             }
                                    !          }
                                    ! 
                                    !          if (haveValidTag) {
                                    !             StringBuffer result = new StringBuffer();
                                    !             result.append("<dl>");
                                    !             for (int i = 0; i < tags.length; i++) {
                                    !                if (tags[i].text().length() > 0) {
                                    !                   result.append("<dt><i>Copyright © " + tags[i].text() + "</i></dt>");
                                    !                }
                                    !             }
                                    !             result.append("</dl>");
                                    !             return result.toString();
                                    !          }
                                    !          else {
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,115 ****
                                    ! /* gnu.classpath.tools.taglets.DeprecatedTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  The default Taglet which handles deprecated information.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class DeprecatedTaglet implements Taglet {
                                    !    
                                    !    private static final String NAME = "deprecated";
                                    !    private static final String HEADER = "Deprecated:";
                                    ! 
                                    !    private static boolean enabled = true;
                                    !    
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    !     
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    !    
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }    
                                    ! 
                                    !    public static void register(Map tagletMap) {
                                    !       DeprecatedTaglet deprecatedTaglet = new DeprecatedTaglet();
                                    !       tagletMap.put(deprecatedTaglet.getName(), deprecatedTaglet);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          
                                    !          StringBuffer result = new StringBuffer();
                                    !          result.append("<div class=\"classdoc-tag-section-header\">");
                                    !          result.append(HEADER);
                                    !          result.append("</div>");
                                    !          result.append("<dl class=\"classdoc-list\">");
                                    !          for (int i = 0; i < tags.length; i++) {
                                    !             result.append("<dt>");
                                    !             result.append(tags[i].text());
                                    !             result.append("</dt>");
                                    !          }
                                    !          result.append("</dl>");
                                    !          return result.toString();
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public static void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       DeprecatedTaglet.enabled = enabled;
                                    !    }
                                    ! }
                                    --- 1,132 ----
                                    ! /* gnu.classpath.tools.taglets.DeprecatedTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  The default Taglet which handles deprecated information.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class DeprecatedTaglet implements Taglet {
                                    ! 
                                    !    private static final String NAME = "deprecated";
                                    !    private static final String HEADER = "Deprecated:";
                                    ! 
                                    !    private static boolean enabled = true;
                                    ! 
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    ! 
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }
                                    ! 
                                    !    public static void register(Map tagletMap) {
                                    !       DeprecatedTaglet deprecatedTaglet = new DeprecatedTaglet();
                                    !       tagletMap.put(deprecatedTaglet.getName(), deprecatedTaglet);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    ! 
                                    !          StringBuffer result = new StringBuffer();
                                    !          result.append("<div class=\"classdoc-tag-section-header\">");
                                    !          result.append(HEADER);
                                    !          result.append("</div>");
                                    !          result.append("<dl class=\"classdoc-list\">");
                                    !          for (int i = 0; i < tags.length; i++) {
                                    !             result.append("<dt>");
                                    !             result.append(tags[i].text());
                                    !             result.append("</dt>");
                                    !          }
                                    !          result.append("</dl>");
                                    !          return result.toString();
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public static void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       DeprecatedTaglet.enabled = enabled;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,140 ****
                                    ! /* gnu.classpath.tools.taglets.GenericTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  A taglet which can be configured at runtime.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class GenericTaglet implements Taglet {
                                    !    
                                    !    private String name = "since";
                                    !    private String header = "Since:";
                                    ! 
                                    !    private boolean scopeOverview;
                                    !    private boolean scopePackage;
                                    !    private boolean scopeType;
                                    !    private boolean scopeConstructor;
                                    !    private boolean scopeMethod;
                                    !    private boolean scopeField;
                                    ! 
                                    !    private boolean enabled = true;
                                    ! 
                                    !    public GenericTaglet(String name,
                                    !                         String header,
                                    !                         boolean scopeOverview,
                                    !                         boolean scopePackage,
                                    !                         boolean scopeType,
                                    !                         boolean scopeConstructor,
                                    !                         boolean scopeMethod,
                                    !                         boolean scopeField)
                                    !    {
                                    !       this.name = name;
                                    !       this.header = header;
                                    !       this.scopeOverview = scopeOverview;
                                    !       this.scopePackage = scopePackage;
                                    !       this.scopeType = scopeType;
                                    !       this.scopeConstructor = scopeConstructor;
                                    !       this.scopeMethod = scopeMethod;
                                    !       this.scopeField = scopeField;
                                    !    }
                                    !    
                                    !    public String getName() {
                                    !       return name;
                                    !    }
                                    !     
                                    !    public boolean inField() {
                                    !       return scopeField;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return scopeConstructor;
                                    !    }
                                    !     
                                    !    public boolean inMethod() {
                                    !       return scopeMethod;
                                    !    }
                                    !    
                                    !    public boolean inOverview() {
                                    !       return scopeOverview;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return scopePackage;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return scopeType;
                                    !    }
                                    !     
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }    
                                    ! 
                                    !    public void register(Map tagletMap) {
                                    !       tagletMap.put(getName(), this);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          
                                    !          StringBuffer result = new StringBuffer();
                                    !          result.append("<div class=\"classdoc-tag-section-header\">");
                                    !          result.append(header);
                                    !          result.append("</div>");
                                    !          result.append("<dl class=\"classdoc-list\">");
                                    !          for (int i = 0; i < tags.length; i++) {
                                    !             result.append("<dt>");
                                    !             result.append(tags[i].text());
                                    !             result.append("</dt>");
                                    !          }
                                    !          result.append("</dl>");
                                    !          return result.toString();
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       this.enabled = enabled;
                                    !    }
                                    ! }
                                    --- 1,157 ----
                                    ! /* gnu.classpath.tools.taglets.GenericTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  A taglet which can be configured at runtime.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class GenericTaglet implements Taglet {
                                    ! 
                                    !    private String name = "since";
                                    !    private String header = "Since:";
                                    ! 
                                    !    private boolean scopeOverview;
                                    !    private boolean scopePackage;
                                    !    private boolean scopeType;
                                    !    private boolean scopeConstructor;
                                    !    private boolean scopeMethod;
                                    !    private boolean scopeField;
                                    ! 
                                    !    private boolean enabled = true;
                                    ! 
                                    !    public GenericTaglet(String name,
                                    !                         String header,
                                    !                         boolean scopeOverview,
                                    !                         boolean scopePackage,
                                    !                         boolean scopeType,
                                    !                         boolean scopeConstructor,
                                    !                         boolean scopeMethod,
                                    !                         boolean scopeField)
                                    !    {
                                    !       this.name = name;
                                    !       this.header = header;
                                    !       this.scopeOverview = scopeOverview;
                                    !       this.scopePackage = scopePackage;
                                    !       this.scopeType = scopeType;
                                    !       this.scopeConstructor = scopeConstructor;
                                    !       this.scopeMethod = scopeMethod;
                                    !       this.scopeField = scopeField;
                                    !    }
                                    ! 
                                    !    public String getName() {
                                    !       return name;
                                    !    }
                                    ! 
                                    !    public boolean inField() {
                                    !       return scopeField;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return scopeConstructor;
                                    !    }
                                    ! 
                                    !    public boolean inMethod() {
                                    !       return scopeMethod;
                                    !    }
                                    ! 
                                    !    public boolean inOverview() {
                                    !       return scopeOverview;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return scopePackage;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return scopeType;
                                    !    }
                                    ! 
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }
                                    ! 
                                    !    public void register(Map tagletMap) {
                                    !       tagletMap.put(getName(), this);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    ! 
                                    !          StringBuffer result = new StringBuffer();
                                    !          result.append("<div class=\"classdoc-tag-section-header\">");
                                    !          result.append(header);
                                    !          result.append("</div>");
                                    !          result.append("<dl class=\"classdoc-list\">");
                                    !          for (int i = 0; i < tags.length; i++) {
                                    !             result.append("<dt>");
                                    !             result.append(tags[i].text());
                                    !             result.append("</dt>");
                                    !          }
                                    !          result.append("</dl>");
                                    !          return result.toString();
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       this.enabled = enabled;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.taglets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.taglets;
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,144 ****
                                    ! /* gnu.classpath.tools.taglets.SinceTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! import gnu.classpath.tools.doclets.InlineTagRenderer;
                                    ! 
                                    ! /**
                                    !  *  The default Taglet which handles since information.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class SinceTaglet implements GnuExtendedTaglet {
                                    !    
                                    !    private static final String NAME = "since";
                                    !    private static final String HEADER = "Since:";
                                    ! 
                                    !    private static boolean enabled = true;
                                    ! 
                                    !    private InlineTagRenderer inlineTagRenderer;
                                    ! 
                                    !    public SinceTaglet(InlineTagRenderer inlineTagRenderer)
                                    !    {
                                    !       this.inlineTagRenderer = inlineTagRenderer;
                                    !    }
                                    !    
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    !     
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    !    
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }    
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       // should raise assertion
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       // should raise assertion
                                    !       return toString(tags, null);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag, TagletContext context) 
                                    !    {
                                    !       return null;
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags, TagletContext context) 
                                    !    {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          boolean haveValidTag = false;
                                    !          for (int i = 0; i < tags.length && !haveValidTag; ++i) {
                                    !             if (tags[i].text().length() > 0) {
                                    !                haveValidTag = true;
                                    !             }
                                    !          }
                                    !          
                                    !          if (haveValidTag) {
                                    !             StringBuffer result = new StringBuffer();
                                    !             result.append("<dl class=\"tag list\">");
                                    !             result.append("<dt class=\"tag section header\"><b>");
                                    !             result.append(HEADER);
                                    !             result.append("</b></dt>");
                                    !             for (int i = 0; i < tags.length; ++i) {
                                    !                if (tags[i].text().length() > 0) {
                                    !                   result.append("<dd>");
                                    !                   result.append(inlineTagRenderer.renderInlineTags(tags[i].inlineTags(), context));
                                    !                   result.append("</dd>");
                                    !                }
                                    !             }
                                    !             result.append("</dl>");
                                    !             return result.toString();
                                    !          }
                                    !          else {
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public static void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       SinceTaglet.enabled = enabled;
                                    !    }
                                    ! }
                                    --- 1,161 ----
                                    ! /* gnu.classpath.tools.taglets.SinceTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! import gnu.classpath.tools.doclets.InlineTagRenderer;
                                    ! 
                                    ! /**
                                    !  *  The default Taglet which handles since information.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class SinceTaglet implements GnuExtendedTaglet {
                                    ! 
                                    !    private static final String NAME = "since";
                                    !    private static final String HEADER = "Since:";
                                    ! 
                                    !    private static boolean enabled = true;
                                    ! 
                                    !    private InlineTagRenderer inlineTagRenderer;
                                    ! 
                                    !    public SinceTaglet(InlineTagRenderer inlineTagRenderer)
                                    !    {
                                    !       this.inlineTagRenderer = inlineTagRenderer;
                                    !    }
                                    ! 
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    ! 
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       // should raise assertion
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       // should raise assertion
                                    !       return toString(tags, null);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag, TagletContext context)
                                    !    {
                                    !       return null;
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags, TagletContext context)
                                    !    {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          boolean haveValidTag = false;
                                    !          for (int i = 0; i < tags.length && !haveValidTag; ++i) {
                                    !             if (tags[i].text().length() > 0) {
                                    !                haveValidTag = true;
                                    !             }
                                    !          }
                                    ! 
                                    !          if (haveValidTag) {
                                    !             StringBuffer result = new StringBuffer();
                                    !             result.append("<dl class=\"tag list\">");
                                    !             result.append("<dt class=\"tag section header\"><b>");
                                    !             result.append(HEADER);
                                    !             result.append("</b></dt>");
                                    !             for (int i = 0; i < tags.length; ++i) {
                                    !                if (tags[i].text().length() > 0) {
                                    !                   result.append("<dd>");
                                    !                   result.append(inlineTagRenderer.renderInlineTags(tags[i].inlineTags(), context));
                                    !                   result.append("</dd>");
                                    !                }
                                    !             }
                                    !             result.append("</dl>");
                                    !             return result.toString();
                                    !          }
                                    !          else {
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public static void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       SinceTaglet.enabled = enabled;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,3 ****
                                    --- 1,40 ----
                                    + /* TagletContext.java -
                                    +    Copyright (C) 2004 Free Software Foundation, Inc.
                                    + 
                                    + This file is part of GNU Classpath.
                                    + 
                                    + GNU Classpath is free software; you can redistribute it and/or modify
                                    + it under the terms of the GNU General Public License as published by
                                    + the Free Software Foundation; either version 2, or (at your option)
                                    + any later version.
                                    + 
                                    + GNU Classpath 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 for more details.
                                    + 
                                    + You should have received a copy of the GNU General Public License
                                    + along with GNU Classpath; see the file COPYING.  If not, write to the
                                    + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    + 02111-1307 USA.
                                    + 
                                    + Linking this library statically or dynamically with other modules is
                                    + making a combined work based on this library.  Thus, the terms and
                                    + conditions of the GNU General Public License cover the whole
                                    + combination.
                                    + 
                                    + As a special exception, the copyright holders of this library give you
                                    + permission to link this library with independent modules to produce an
                                    + executable, regardless of the license terms of these independent
                                    + modules, and to copy and distribute the resulting executable under
                                    + terms of your choice, provided that you also meet, for each linked
                                    + independent module, the terms and conditions of the license of that
                                    + module.  An independent module is a module which is not derived from
                                    + or based on this library.  If you modify this library, you may extend
                                    + this exception to your version of the library, but you are not
                                    + obligated to do so.  If you do not wish to do so, delete this
                                    + exception statement from your version. */
                                    + 
                                      package gnu.classpath.tools.taglets;
                                      
                                      import com.sun.javadoc.Doc;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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 for more details.
                                    *** 16,22 ****
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                      
                                      package gnu.classpath.tools.taglets;
                                      
                                    --- 16,39 ----
                                      You should have received a copy of the GNU General Public License
                                      along with GNU Classpath; see the file COPYING.  If not, write to the
                                      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                      
                                      package gnu.classpath.tools.taglets;
                                      
                                    *************** import com.sun.javadoc.SeeTag;
                                    *** 35,41 ****
                                       *
                                       *  @author Julian Scheid (julian@sektor37.de)
                                       */
                                    ! public class ValueTaglet 
                                         implements GnuExtendedTaglet
                                      {
                                         private static final String NAME = "value";
                                    --- 52,58 ----
                                       *
                                       *  @author Julian Scheid (julian@sektor37.de)
                                       */
                                    ! public class ValueTaglet
                                         implements GnuExtendedTaglet
                                      {
                                         private static final String NAME = "value";
                                    *************** public class ValueTaglet 
                                    *** 43,49 ****
                                         public String getName() {
                                            return NAME;
                                         }
                                    !     
                                         public boolean inField() {
                                            return true;
                                         }
                                    --- 60,66 ----
                                         public String getName() {
                                            return NAME;
                                         }
                                    ! 
                                         public boolean inField() {
                                            return true;
                                         }
                                    *************** public class ValueTaglet 
                                    *** 51,61 ****
                                         public boolean inConstructor() {
                                            return true;
                                         }
                                    !     
                                         public boolean inMethod() {
                                            return true;
                                         }
                                    !    
                                         public boolean inOverview() {
                                            return true;
                                         }
                                    --- 68,78 ----
                                         public boolean inConstructor() {
                                            return true;
                                         }
                                    ! 
                                         public boolean inMethod() {
                                            return true;
                                         }
                                    ! 
                                         public boolean inOverview() {
                                            return true;
                                         }
                                    *************** public class ValueTaglet 
                                    *** 67,76 ****
                                         public boolean inType() {
                                            return true;
                                         }
                                    !     
                                         public boolean isInlineTag() {
                                            return true;
                                    !    }    
                                      
                                         public static void register(Map tagletMap) {
                                            ValueTaglet valueTaglet = new ValueTaglet();
                                    --- 84,93 ----
                                         public boolean inType() {
                                            return true;
                                         }
                                    ! 
                                         public boolean isInlineTag() {
                                            return true;
                                    !    }
                                      
                                         public static void register(Map tagletMap) {
                                            ValueTaglet valueTaglet = new ValueTaglet();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java	Fri Aug 15 20:31:42 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,136 ****
                                    ! /* gnu.classpath.tools.taglets.VersionTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    !  
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  The default Taglet which handles version information.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class VersionTaglet implements Taglet {
                                    !    
                                    !    private static final String NAME = "version";
                                    !    private static final String HEADER = "Version:";
                                    ! 
                                    !    private static boolean enabled = true;
                                    !    
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    !     
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    !    
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    !     
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }    
                                    ! 
                                    !    public static void register(Map tagletMap) {
                                    !       VersionTaglet versionTaglet = new VersionTaglet();
                                    !       tagletMap.put(versionTaglet.getName(), versionTaglet);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          boolean haveValidTag = false;
                                    !          for (int i = 0; i < tags.length && !haveValidTag; ++i) {
                                    !             if (tags[i].text().length() > 0) {
                                    !                haveValidTag = true;
                                    !             }
                                    !          }
                                    !          
                                    !          if (haveValidTag) {
                                    !             
                                    !             StringBuffer result = new StringBuffer();
                                    !             result.append("<dl class=\"tag list\">");
                                    !             result.append("</dl>");
                                    !             result.append("<dt class=\"tag section header\"><b>");
                                    !             result.append(HEADER);
                                    !             result.append("</b></dt><dd>");
                                    !             boolean firstEntry = true;
                                    !             for (int i = 0; i < tags.length; i++) {
                                    !                if (tags[i].text().length() > 0) {
                                    !                   if (!firstEntry) {
                                    !                      result.append(", ");
                                    !                   }
                                    !                   else {
                                    !                      firstEntry = false;
                                    !                   }
                                    !                   result.append(tags[i].text());
                                    !                }
                                    !             }
                                    !             result.append("</dd>");
                                    !             result.append("</dl>");
                                    !             return result.toString();
                                    !          }
                                    !          else {
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public static void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       VersionTaglet.enabled = enabled;
                                    !    }
                                    ! }
                                    --- 1,153 ----
                                    ! /* gnu.classpath.tools.taglets.VersionTaglet
                                    !    Copyright (C) 2001 Free Software Foundation, Inc.
                                    ! 
                                    ! This file is part of GNU Classpath.
                                    ! 
                                    ! GNU Classpath is free software; you can redistribute it and/or modify
                                    ! it under the terms of the GNU General Public License as published by
                                    ! the Free Software Foundation; either version 2, or (at your option)
                                    ! any later version.
                                    ! 
                                    ! GNU Classpath 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 for more details.
                                    ! 
                                    ! You should have received a copy of the GNU General Public License
                                    ! along with GNU Classpath; see the file COPYING.  If not, write to the
                                    ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                                    ! 02111-1307 USA.
                                    ! 
                                    ! Linking this library statically or dynamically with other modules is
                                    ! making a combined work based on this library.  Thus, the terms and
                                    ! conditions of the GNU General Public License cover the whole
                                    ! combination.
                                    ! 
                                    ! As a special exception, the copyright holders of this library give you
                                    ! permission to link this library with independent modules to produce an
                                    ! executable, regardless of the license terms of these independent
                                    ! modules, and to copy and distribute the resulting executable under
                                    ! terms of your choice, provided that you also meet, for each linked
                                    ! independent module, the terms and conditions of the license of that
                                    ! module.  An independent module is a module which is not derived from
                                    ! or based on this library.  If you modify this library, you may extend
                                    ! this exception to your version of the library, but you are not
                                    ! obligated to do so.  If you do not wish to do so, delete this
                                    ! exception statement from your version. */
                                    ! 
                                    ! package gnu.classpath.tools.taglets;
                                    ! 
                                    ! import java.util.Map;
                                    ! 
                                    ! import com.sun.tools.doclets.Taglet;
                                    ! 
                                    ! import com.sun.javadoc.Tag;
                                    ! 
                                    ! /**
                                    !  *  The default Taglet which handles version information.
                                    !  *
                                    !  *  @author Julian Scheid (julian@sektor37.de)
                                    !  */
                                    ! public class VersionTaglet implements Taglet {
                                    ! 
                                    !    private static final String NAME = "version";
                                    !    private static final String HEADER = "Version:";
                                    ! 
                                    !    private static boolean enabled = true;
                                    ! 
                                    !    public String getName() {
                                    !       return NAME;
                                    !    }
                                    ! 
                                    !    public boolean inField() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inConstructor() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inMethod() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inOverview() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inPackage() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean inType() {
                                    !       return true;
                                    !    }
                                    ! 
                                    !    public boolean isInlineTag() {
                                    !       return false;
                                    !    }
                                    ! 
                                    !    public static void register(Map tagletMap) {
                                    !       VersionTaglet versionTaglet = new VersionTaglet();
                                    !       tagletMap.put(versionTaglet.getName(), versionTaglet);
                                    !    }
                                    ! 
                                    !    public String toString(Tag tag) {
                                    !       if (enabled) {
                                    !          return toString(new Tag[] { tag });
                                    !       }
                                    !       else {
                                    !          return null;
                                    !       }
                                    !    }
                                    ! 
                                    !    public String toString(Tag[] tags) {
                                    !       if (!enabled || tags.length == 0) {
                                    !          return null;
                                    !       }
                                    !       else {
                                    !          boolean haveValidTag = false;
                                    !          for (int i = 0; i < tags.length && !haveValidTag; ++i) {
                                    !             if (tags[i].text().length() > 0) {
                                    !                haveValidTag = true;
                                    !             }
                                    !          }
                                    ! 
                                    !          if (haveValidTag) {
                                    ! 
                                    !             StringBuffer result = new StringBuffer();
                                    !             result.append("<dl class=\"tag list\">");
                                    !             result.append("</dl>");
                                    !             result.append("<dt class=\"tag section header\"><b>");
                                    !             result.append(HEADER);
                                    !             result.append("</b></dt><dd>");
                                    !             boolean firstEntry = true;
                                    !             for (int i = 0; i < tags.length; i++) {
                                    !                if (tags[i].text().length() > 0) {
                                    !                   if (!firstEntry) {
                                    !                      result.append(", ");
                                    !                   }
                                    !                   else {
                                    !                      firstEntry = false;
                                    !                   }
                                    !                   result.append(tags[i].text());
                                    !                }
                                    !             }
                                    !             result.append("</dd>");
                                    !             result.append("</dl>");
                                    !             return result.toString();
                                    !          }
                                    !          else {
                                    !             return null;
                                    !          }
                                    !       }
                                    !    }
                                    ! 
                                    !    /**
                                    !     *  Enables/disables this taglet.
                                    !     */
                                    !    public static void setTagletEnabled(boolean enabled)
                                    !    {
                                    !       VersionTaglet.enabled = enabled;
                                    !    }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java
                                    *** gcc-4.5.2/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java	Tue Jan 11 19:46:05 2011
                                    *************** import gnu.classpath.tools.getopt.Parser
                                    *** 48,59 ****
                                       * is a kind of the network server that registers local and remote objects
                                       * by name, and later can provide the object reference in response to the
                                       * given name.
                                    !  * 
                                       * GNU Classpath currently works with this naming service and is also
                                       * interoperable with the Sun Microsystems naming services from releases 1.3 and
                                       * 1.4, both transient <i>tnameserv</i> and persistent <i>orbd</i>.
                                    !  * 
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)  
                                       */
                                      public class Main
                                      {
                                    --- 48,59 ----
                                       * is a kind of the network server that registers local and remote objects
                                       * by name, and later can provide the object reference in response to the
                                       * given name.
                                    !  *
                                       * GNU Classpath currently works with this naming service and is also
                                       * interoperable with the Sun Microsystems naming services from releases 1.3 and
                                       * 1.4, both transient <i>tnameserv</i> and persistent <i>orbd</i>.
                                    !  *
                                    !  * @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
                                       */
                                      public class Main
                                      {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java	Sat Aug  4 10:53:49 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java	Tue Jan 11 19:46:05 2011
                                    *************** import gnu.classpath.jdwp.value.Value;
                                    *** 44,51 ****
                                      
                                      /**
                                       * Reference implementation of VM hooks for JDWP Frame access.
                                    !  * 
                                    !  * @author aluchko 
                                       */
                                      
                                      public class VMFrame
                                    --- 44,51 ----
                                      
                                      /**
                                       * Reference implementation of VM hooks for JDWP Frame access.
                                    !  *
                                    !  * @author aluchko
                                       */
                                      
                                      public class VMFrame
                                    *************** public class VMFrame
                                    *** 54,75 ****
                                         * Returns the size of a frame ID over JDWP
                                         */
                                        public static final int SIZE = 8;
                                    !   
                                        //The thread this frame resides in
                                        private Thread thread;
                                      
                                        // The object this frame resides in
                                        private Object obj;
                                    !   
                                        // The current location of this frame
                                        private Location loc;
                                    !   
                                        // id of this frame
                                        private long id;
                                    !   
                                        /**
                                         * Create a new VMFrame object.
                                    !    * 
                                         * @param thr a Thread, the thread this frame is in
                                         * @param frame_id a long, the jframeID of this frame
                                         * @param frame_loc a Location, the location of this frame
                                    --- 54,75 ----
                                         * Returns the size of a frame ID over JDWP
                                         */
                                        public static final int SIZE = 8;
                                    ! 
                                        //The thread this frame resides in
                                        private Thread thread;
                                      
                                        // The object this frame resides in
                                        private Object obj;
                                    ! 
                                        // The current location of this frame
                                        private Location loc;
                                    ! 
                                        // id of this frame
                                        private long id;
                                    ! 
                                        /**
                                         * Create a new VMFrame object.
                                    !    *
                                         * @param thr a Thread, the thread this frame is in
                                         * @param frame_id a long, the jframeID of this frame
                                         * @param frame_loc a Location, the location of this frame
                                    *************** public class VMFrame
                                    *** 83,89 ****
                                          loc = frame_loc;
                                          obj = frame_obj;
                                        }
                                    !   
                                        /**
                                         * Gets the current location of the frame.
                                         */
                                    --- 83,89 ----
                                          loc = frame_loc;
                                          obj = frame_obj;
                                        }
                                    ! 
                                        /**
                                         * Gets the current location of the frame.
                                         */
                                    *************** public class VMFrame
                                    *** 94,111 ****
                                      
                                        /**
                                         * Returns the value of the variable in the given slot.
                                    !    * 
                                         * @param slot the slot containing the variable
                                         */
                                        public native Value getValue(int slot, byte sig);
                                      
                                        /**
                                    !    * Assigns the given variable to the given value. 
                                         * @param slot The slot which contains the variable
                                         * @param value The value to assign the variable to
                                         */
                                        public native void setValue(int slot, Value value);
                                    !   
                                        /**
                                         * Get the thread this frame is in.
                                         */
                                    --- 94,111 ----
                                      
                                        /**
                                         * Returns the value of the variable in the given slot.
                                    !    *
                                         * @param slot the slot containing the variable
                                         */
                                        public native Value getValue(int slot, byte sig);
                                      
                                        /**
                                    !    * Assigns the given variable to the given value.
                                         * @param slot The slot which contains the variable
                                         * @param value The value to assign the variable to
                                         */
                                        public native void setValue(int slot, Value value);
                                    ! 
                                        /**
                                         * Get the thread this frame is in.
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMIdManager.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMIdManager.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMIdManager.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMIdManager.java	Tue Jan 11 19:46:05 2011
                                    *************** public class VMIdManager
                                    *** 119,167 ****
                                      
                                            // Special case: arrays
                                            if (object.getClass ().isArray ())
                                    ! 	id = new ArrayId ();
                                            else
                                    ! 	{
                                    ! 	  // Loop through all classes until we hit baseclass
                                    ! 	  Class myClass;
                                    ! 	  for (myClass = object.getClass (); myClass != null;
                                    ! 	       myClass = myClass.getSuperclass ())
                                    ! 	    {
                                    ! 	      Class clz = (Class) _idList.get (myClass);
                                    ! 	      if (clz != null)
                                    ! 		{
                                    ! 		  try
                                    ! 		    {
                                    ! 		      id = (ObjectId) clz.newInstance ();
                                    ! 		      synchronized (_idLock)
                                    ! 			{
                                    ! 			  id.setId (++_lastId);
                                    ! 			}
                                    ! 		      id.setReference (obj);
                                    ! 		      return id;
                                    ! 		    }
                                    ! 		  catch (InstantiationException ie)
                                    ! 		    {
                                    ! 		      // This really should not happen
                                    ! 		      throw new RuntimeException ("cannot create new ID", ie);
                                    ! 		    }
                                    ! 		  catch (IllegalAccessException iae)
                                    ! 		    {
                                    ! 		      // This really should not happen
                                    ! 		      throw new RuntimeException ("illegal access of ID", iae);
                                    ! 		    }
                                    ! 		}
                                    ! 	    }
                                      
                                    ! 	  /* getSuperclass returned null and no matching ID type found.
                                    ! 	     So it must derive from Object. */
                                    ! 	  id = new ObjectId ();
                                    ! 	}
                                      
                                            synchronized (_idLock)
                                    ! 	{
                                    ! 	  id.setId (++_lastId);
                                    ! 	}
                                            id.setReference (obj);
                                            return id;
                                          }
                                    --- 119,167 ----
                                      
                                            // Special case: arrays
                                            if (object.getClass ().isArray ())
                                    !         id = new ArrayId ();
                                            else
                                    !         {
                                    !           // Loop through all classes until we hit baseclass
                                    !           Class myClass;
                                    !           for (myClass = object.getClass (); myClass != null;
                                    !                myClass = myClass.getSuperclass ())
                                    !             {
                                    !               Class clz = (Class) _idList.get (myClass);
                                    !               if (clz != null)
                                    !                 {
                                    !                   try
                                    !                     {
                                    !                       id = (ObjectId) clz.newInstance ();
                                    !                       synchronized (_idLock)
                                    !                         {
                                    !                           id.setId (++_lastId);
                                    !                         }
                                    !                       id.setReference (obj);
                                    !                       return id;
                                    !                     }
                                    !                   catch (InstantiationException ie)
                                    !                     {
                                    !                       // This really should not happen
                                    !                       throw new RuntimeException ("cannot create new ID", ie);
                                    !                     }
                                    !                   catch (IllegalAccessException iae)
                                    !                     {
                                    !                       // This really should not happen
                                    !                       throw new RuntimeException ("illegal access of ID", iae);
                                    !                     }
                                    !                 }
                                    !             }
                                      
                                    !           /* getSuperclass returned null and no matching ID type found.
                                    !              So it must derive from Object. */
                                    !           id = new ObjectId ();
                                    !         }
                                      
                                            synchronized (_idLock)
                                    !         {
                                    !           id.setId (++_lastId);
                                    !         }
                                            id.setReference (obj);
                                            return id;
                                          }
                                    *************** public class VMIdManager
                                    *** 178,196 ****
                                            ReferenceTypeId id;
                                            Class clazz = (Class) ref.get ();
                                            if (clazz == null)
                                    ! 	return null;
                                      
                                            if (clazz.isArray ())
                                    ! 	id = new ArrayReferenceTypeId ();
                                            else if (clazz.isInterface ())
                                    ! 	id = new InterfaceReferenceTypeId ();
                                            else
                                    ! 	id = new ClassReferenceTypeId ();
                                            id.setReference (ref);
                                            synchronized (_ridLock)
                                    ! 	{
                                    ! 	  id.setId (++_lastRid);
                                    ! 	}
                                            return id;
                                          }
                                        }
                                    --- 178,196 ----
                                            ReferenceTypeId id;
                                            Class clazz = (Class) ref.get ();
                                            if (clazz == null)
                                    !         return null;
                                      
                                            if (clazz.isArray ())
                                    !         id = new ArrayReferenceTypeId ();
                                            else if (clazz.isInterface ())
                                    !         id = new InterfaceReferenceTypeId ();
                                            else
                                    !         id = new ClassReferenceTypeId ();
                                            id.setReference (ref);
                                            synchronized (_ridLock)
                                    !         {
                                    !           id.setId (++_lastRid);
                                    !         }
                                            return id;
                                          }
                                        }
                                    *************** public class VMIdManager
                                    *** 218,224 ****
                                            super (referent);
                                            _hash = referent.hashCode ();
                                          }
                                    !     
                                          /**
                                           * Constructs a new <code>ReferenceKey</code> object
                                           * with the given referent and reference queue.
                                    --- 218,224 ----
                                            super (referent);
                                            _hash = referent.hashCode ();
                                          }
                                    ! 
                                          /**
                                           * Constructs a new <code>ReferenceKey</code> object
                                           * with the given referent and reference queue.
                                    *************** public class VMIdManager
                                    *** 235,241 ****
                                            super (referent, queue);
                                            _hash = referent.hashCode ();
                                          }
                                    !     
                                          /**
                                           * Returns the hash code of the referent.
                                           * This seems hacky, but is required in order to use this class
                                    --- 235,241 ----
                                            super (referent, queue);
                                            _hash = referent.hashCode ();
                                          }
                                    ! 
                                          /**
                                           * Returns the hash code of the referent.
                                           * This seems hacky, but is required in order to use this class
                                    *************** public class VMIdManager
                                    *** 262,282 ****
                                          public boolean equals (Object obj)
                                          {
                                            if (obj instanceof ReferenceKey)
                                    ! 	{
                                    ! 	  ReferenceKey ref = (ReferenceKey) obj;
                                    ! 	  
                                    ! 	  /* First check if the two references are the same.
                                    ! 	     If they are, that means we must be clearing GCd objects. */
                                    ! 	  if (this == obj)
                                    ! 	    return true;
                                    ! 	  
                                    ! 	  return (ref.get () == get ());
                                    ! 	}
                                    !       
                                            return false;
                                          }
                                        }
                                    !   
                                        // instance of VMIdManager
                                        private static VMIdManager _idm = new VMIdManager ();
                                      
                                    --- 262,282 ----
                                          public boolean equals (Object obj)
                                          {
                                            if (obj instanceof ReferenceKey)
                                    !         {
                                    !           ReferenceKey ref = (ReferenceKey) obj;
                                    ! 
                                    !           /* First check if the two references are the same.
                                    !              If they are, that means we must be clearing GCd objects. */
                                    !           if (this == obj)
                                    !             return true;
                                    ! 
                                    !           return (ref.get () == get ());
                                    !         }
                                    ! 
                                            return false;
                                          }
                                        }
                                    ! 
                                        // instance of VMIdManager
                                        private static VMIdManager _idm = new VMIdManager ();
                                      
                                    *************** public class VMIdManager
                                    *** 322,330 ****
                                          Reference ref;
                                          while ((ref = _refQueue.poll ()) != null)
                                            {
                                    ! 	ObjectId id = (ObjectId) _oidTable.get (ref);
                                    ! 	_oidTable.remove (ref);
                                    ! 	_idTable.remove (new Long (id.getId ()));
                                            }
                                        }
                                      
                                    --- 322,330 ----
                                          Reference ref;
                                          while ((ref = _refQueue.poll ()) != null)
                                            {
                                    !         ObjectId id = (ObjectId) _oidTable.get (ref);
                                    !         _oidTable.remove (ref);
                                    !         _idTable.remove (new Long (id.getId ()));
                                            }
                                        }
                                      
                                    *************** public class VMIdManager
                                    *** 340,357 ****
                                          // Special case: null
                                          if (theObject == null)
                                            return new NullObjectId ();
                                    !     
                                          ReferenceKey ref = new ReferenceKey (theObject, _refQueue);
                                          ObjectId id = (ObjectId) _oidTable.get (ref);
                                          if (id == null)
                                            {
                                    ! 	// update the tables -- this is an arbitrary place to put this
                                    ! 	_update ();
                                      
                                    ! 	// Object not found. Make new id for it
                                    ! 	id = IdFactory.newObjectId (ref);
                                    ! 	_oidTable.put (ref, id);
                                    ! 	_idTable.put (new Long (id.getId ()), id);
                                            }
                                      
                                          return id;
                                    --- 340,357 ----
                                          // Special case: null
                                          if (theObject == null)
                                            return new NullObjectId ();
                                    ! 
                                          ReferenceKey ref = new ReferenceKey (theObject, _refQueue);
                                          ObjectId id = (ObjectId) _oidTable.get (ref);
                                          if (id == null)
                                            {
                                    !         // update the tables -- this is an arbitrary place to put this
                                    !         _update ();
                                      
                                    !         // Object not found. Make new id for it
                                    !         id = IdFactory.newObjectId (ref);
                                    !         _oidTable.put (ref, id);
                                    !         _idTable.put (new Long (id.getId ()), id);
                                            }
                                      
                                          return id;
                                    *************** public class VMIdManager
                                    *** 371,381 ****
                                          // Special case: null
                                          if (id == 0)
                                            return new NullObjectId ();
                                    !     
                                          ObjectId oid = (ObjectId) _idTable.get (new Long (id));
                                          if (oid == null)
                                            throw new InvalidObjectException (id);
                                    !  
                                          return oid;
                                        }
                                      
                                    --- 371,381 ----
                                          // Special case: null
                                          if (id == 0)
                                            return new NullObjectId ();
                                    ! 
                                          ObjectId oid = (ObjectId) _idTable.get (new Long (id));
                                          if (oid == null)
                                            throw new InvalidObjectException (id);
                                    ! 
                                          return oid;
                                        }
                                      
                                    *************** public class VMIdManager
                                    *** 399,408 ****
                                          ReferenceTypeId id = (ReferenceTypeId)_classTable.get (ref);
                                          if (id == null)
                                            {
                                    ! 	// Object not found. Make new id for it
                                    ! 	id = IdFactory.newReferenceTypeId (ref);
                                    ! 	_classTable.put (ref, id);
                                    ! 	_ridTable.put (new Long (id.getId ()), id);
                                            }
                                      
                                          return id;
                                    --- 399,408 ----
                                          ReferenceTypeId id = (ReferenceTypeId)_classTable.get (ref);
                                          if (id == null)
                                            {
                                    !         // Object not found. Make new id for it
                                    !         id = IdFactory.newReferenceTypeId (ref);
                                    !         _classTable.put (ref, id);
                                    !         _ridTable.put (new Long (id.getId ()), id);
                                            }
                                      
                                          return id;
                                    *************** public class VMIdManager
                                    *** 422,428 ****
                                          ReferenceTypeId rid = (ReferenceTypeId) _ridTable.get (new Long (id));
                                          if (rid == null)
                                            throw new InvalidClassException (id);
                                    !  
                                          return rid;
                                        }
                                      
                                    --- 422,428 ----
                                          ReferenceTypeId rid = (ReferenceTypeId) _ridTable.get (new Long (id));
                                          if (rid == null)
                                            throw new InvalidClassException (id);
                                    ! 
                                          return rid;
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java	Sat Aug  4 10:53:49 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java	Tue Jan 11 19:46:05 2011
                                    *************** public class VMMethod
                                    *** 180,187 ****
                                        {
                                          if (obj instanceof VMMethod)
                                            {
                                    ! 	VMMethod m = (VMMethod) obj;
                                    ! 	return (getId() == m.getId());
                                            }
                                      
                                          return false;
                                    --- 180,187 ----
                                        {
                                          if (obj instanceof VMMethod)
                                            {
                                    !         VMMethod m = (VMMethod) obj;
                                    !         return (getId() == m.getId());
                                            }
                                      
                                          return false;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java	Tue Jan 11 19:46:05 2011
                                    *************** public class VMVirtualMachine
                                    *** 98,107 ****
                                          ThreadGroup parent = group.getParent ();
                                          while (parent != null)
                                            {
                                    ! 	group = parent;
                                    ! 	parent = group.getParent ();
                                            }
                                    !     
                                          // Get all the threads in the system
                                          int num = group.activeCount ();
                                          Thread[] threads = new Thread[num];
                                    --- 98,107 ----
                                          ThreadGroup parent = group.getParent ();
                                          while (parent != null)
                                            {
                                    !         group = parent;
                                    !         parent = group.getParent ();
                                            }
                                    ! 
                                          // Get all the threads in the system
                                          int num = group.activeCount ();
                                          Thread[] threads = new Thread[num];
                                    *************** public class VMVirtualMachine
                                    *** 109,125 ****
                                      
                                          for (int i = 0; i < num; ++i)
                                            {
                                    ! 	Thread t = threads[i];
                                    ! 	if (t != null)
                                    ! 	  {
                                    ! 	    if (t.getThreadGroup () == jdwpGroup || t == current)
                                    ! 	      {
                                    ! 		// Don't suspend the current thread or any JDWP thread
                                    ! 		continue;
                                    ! 	      }
                                    ! 	    else
                                    ! 	      suspendThread (t);
                                    ! 	  }
                                            }
                                      
                                          // Now suspend the current thread
                                    --- 109,125 ----
                                      
                                          for (int i = 0; i < num; ++i)
                                            {
                                    !         Thread t = threads[i];
                                    !         if (t != null)
                                    !           {
                                    !             if (t.getThreadGroup () == jdwpGroup || t == current)
                                    !               {
                                    !                 // Don't suspend the current thread or any JDWP thread
                                    !                 continue;
                                    !               }
                                    !             else
                                    !               suspendThread (t);
                                    !           }
                                            }
                                      
                                          // Now suspend the current thread
                                    *************** public class VMVirtualMachine
                                    *** 153,162 ****
                                          ThreadGroup parent = group.getParent ();
                                          while (parent != null)
                                            {
                                    ! 	group = parent;
                                    ! 	parent = group.getParent ();
                                            }
                                    !     
                                          // Get all the threads in the system
                                          int num = group.activeCount ();
                                          Thread[] threads = new Thread[num];
                                    --- 153,162 ----
                                          ThreadGroup parent = group.getParent ();
                                          while (parent != null)
                                            {
                                    !         group = parent;
                                    !         parent = group.getParent ();
                                            }
                                    ! 
                                          // Get all the threads in the system
                                          int num = group.activeCount ();
                                          Thread[] threads = new Thread[num];
                                    *************** public class VMVirtualMachine
                                    *** 164,180 ****
                                      
                                          for (int i = 0; i < num; ++i)
                                            {
                                    ! 	Thread t = threads[i];
                                    ! 	if (t != null)
                                    ! 	  {
                                    ! 	    if (t.getThreadGroup () == jdwpGroup || t == current)
                                    ! 	      {
                                    ! 		// Don't resume the current thread or any JDWP thread
                                    ! 		continue;
                                    ! 	      }
                                    ! 	    else
                                    ! 	      resumeThread (t);
                                    ! 	  }
                                            }
                                        }
                                      
                                    --- 164,180 ----
                                      
                                          for (int i = 0; i < num; ++i)
                                            {
                                    !         Thread t = threads[i];
                                    !         if (t != null)
                                    !           {
                                    !             if (t.getThreadGroup () == jdwpGroup || t == current)
                                    !               {
                                    !                 // Don't resume the current thread or any JDWP thread
                                    !                 continue;
                                    !               }
                                    !             else
                                    !               resumeThread (t);
                                    !           }
                                            }
                                        }
                                      
                                    *************** public class VMVirtualMachine
                                    *** 186,192 ****
                                         */
                                        public static native int getSuspendCount(Thread thread)
                                          throws JdwpException;
                                    !  
                                        /**
                                         * Returns a Collection of all classes loaded in the VM
                                         */
                                    --- 186,192 ----
                                         */
                                        public static native int getSuspendCount(Thread thread)
                                          throws JdwpException;
                                    ! 
                                        /**
                                         * Returns a Collection of all classes loaded in the VM
                                         */
                                    *************** public class VMVirtualMachine
                                    *** 236,242 ****
                                         * @return a list of frames
                                         */
                                        public static native ArrayList getFrames(Thread thread, int start,
                                    ! 					    int length)
                                          throws JdwpException;
                                      
                                        /**
                                    --- 236,242 ----
                                         * @return a list of frames
                                         */
                                        public static native ArrayList getFrames(Thread thread, int start,
                                    !                                             int length)
                                          throws JdwpException;
                                      
                                        /**
                                    *************** public class VMVirtualMachine
                                    *** 297,305 ****
                                         * @return a result object containing the results of the invocation
                                         */
                                        public static native MethodResult executeMethod (Object obj, Thread thread,
                                    ! 					    Class clazz, VMMethod method,
                                    ! 					    Value[] values,
                                    ! 					    int options)
                                          throws JdwpException;
                                      
                                        /**
                                    --- 297,305 ----
                                         * @return a result object containing the results of the invocation
                                         */
                                        public static native MethodResult executeMethod (Object obj, Thread thread,
                                    !                                             Class clazz, VMMethod method,
                                    !                                             Value[] values,
                                    !                                             int options)
                                          throws JdwpException;
                                      
                                        /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMCPStringBuilder
                                    *** 59,74 ****
                                        {
                                          try
                                            {
                                    ! 	cons = String.class.getDeclaredConstructor(new Class[] { char[].class,
                                    ! 								 Integer.TYPE,
                                    ! 								 Integer.TYPE,
                                    ! 								 Boolean.TYPE });
                                    ! 	cons.setAccessible(true);
                                            }
                                          catch (NoSuchMethodException e)
                                            {
                                    ! 	throw (Error) 
                                    ! 	  new InternalError("Could not get no-copy String constructor").initCause(e);
                                            }
                                        }
                                      
                                    --- 59,74 ----
                                        {
                                          try
                                            {
                                    !         cons = String.class.getDeclaredConstructor(new Class[] { char[].class,
                                    !                                                                  Integer.TYPE,
                                    !                                                                  Integer.TYPE,
                                    !                                                                  Boolean.TYPE });
                                    !         cons.setAccessible(true);
                                            }
                                          catch (NoSuchMethodException e)
                                            {
                                    !         throw (Error)
                                    !           new InternalError("Could not get no-copy String constructor").initCause(e);
                                            }
                                        }
                                      
                                    *************** final class VMCPStringBuilder
                                    *** 87,111 ****
                                        {
                                          try
                                            {
                                    ! 	return (String)
                                    ! 	  cons.newInstance(new Object[] { value, Integer.valueOf(startIndex),
                                    ! 					  Integer.valueOf(count),
                                    ! 					  Boolean.valueOf(true) });
                                            }
                                          catch (InstantiationException e)
                                            {
                                    ! 	throw (Error) 
                                    ! 	  new InternalError("Could not instantiate no-copy String constructor").initCause(e);
                                            }
                                          catch (IllegalAccessException e)
                                            {
                                    ! 	throw (Error) 
                                    ! 	  new InternalError("Could not access no-copy String constructor").initCause(e);
                                            }
                                          catch (InvocationTargetException e)
                                            {
                                    ! 	throw (Error) 
                                    ! 	  new InternalError("Error calling no-copy String constructor").initCause(e);
                                            }
                                        }
                                      
                                    --- 87,111 ----
                                        {
                                          try
                                            {
                                    !         return (String)
                                    !           cons.newInstance(new Object[] { value, Integer.valueOf(startIndex),
                                    !                                           Integer.valueOf(count),
                                    !                                           Boolean.valueOf(true) });
                                            }
                                          catch (InstantiationException e)
                                            {
                                    !         throw (Error)
                                    !           new InternalError("Could not instantiate no-copy String constructor").initCause(e);
                                            }
                                          catch (IllegalAccessException e)
                                            {
                                    !         throw (Error)
                                    !           new InternalError("Could not access no-copy String constructor").initCause(e);
                                            }
                                          catch (InvocationTargetException e)
                                            {
                                    !         throw (Error)
                                    !           new InternalError("Error calling no-copy String constructor").initCause(e);
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/VMInstrumentationImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/VMInstrumentationImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/VMInstrumentationImpl.java	Wed May 17 12:49:17 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/VMInstrumentationImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.lang.instrument.Instrumentat
                                    *** 48,61 ****
                                       */
                                      final class VMInstrumentationImpl
                                      {
                                    !  
                                        /**
                                         * Returns if the current JVM supports class redefinition
                                    !    * 
                                         * @return true if the current JVM supports class redefinition
                                         */
                                        static native boolean isRedefineClassesSupported();
                                    !     
                                        /**
                                         * Redefines classes given as parameters. The method has to call
                                         * the callTransformers from InstrumentationImpl
                                    --- 48,61 ----
                                       */
                                      final class VMInstrumentationImpl
                                      {
                                    ! 
                                        /**
                                         * Returns if the current JVM supports class redefinition
                                    !    *
                                         * @return true if the current JVM supports class redefinition
                                         */
                                        static native boolean isRedefineClassesSupported();
                                    ! 
                                        /**
                                         * Redefines classes given as parameters. The method has to call
                                         * the callTransformers from InstrumentationImpl
                                    *************** final class VMInstrumentationImpl
                                    *** 63,70 ****
                                         * @param inst an instrumentation object
                                         * @param definitions an array of bytecode<->class correspondance
                                         *
                                    !    * @throws ClassNotFoundException if a class cannot be found 
                                    !    * @throws UnmodifiableClassException if a class cannot be modified 
                                         * @throws UnsupportedOperationException if the JVM does not support
                                         * redefinition or the redefinition made unsupported changes
                                         * @throws ClassFormatError if a class file is not valid
                                    --- 63,70 ----
                                         * @param inst an instrumentation object
                                         * @param definitions an array of bytecode<->class correspondance
                                         *
                                    !    * @throws ClassNotFoundException if a class cannot be found
                                    !    * @throws UnmodifiableClassException if a class cannot be modified
                                         * @throws UnsupportedOperationException if the JVM does not support
                                         * redefinition or the redefinition made unsupported changes
                                         * @throws ClassFormatError if a class file is not valid
                                    *************** final class VMInstrumentationImpl
                                    *** 74,87 ****
                                         * are unsupported
                                         * @throws ClassCircularityError if circularity occured with the new
                                         * classes
                                    !    * @throws LinkageError if a linkage error occurs 
                                         */
                                        static native void redefineClasses(Instrumentation inst,
                                            ClassDefinition[] definitions);
                                    !  
                                        /**
                                         * Get all the classes loaded by the JVM.
                                    !    * 
                                         * @return an array containing all the classes loaded by the JVM. The array
                                         * is empty if no class is loaded.
                                         */
                                    --- 74,87 ----
                                         * are unsupported
                                         * @throws ClassCircularityError if circularity occured with the new
                                         * classes
                                    !    * @throws LinkageError if a linkage error occurs
                                         */
                                        static native void redefineClasses(Instrumentation inst,
                                            ClassDefinition[] definitions);
                                    ! 
                                        /**
                                         * Get all the classes loaded by the JVM.
                                    !    *
                                         * @return an array containing all the classes loaded by the JVM. The array
                                         * is empty if no class is loaded.
                                         */
                                    *************** final class VMInstrumentationImpl
                                    *** 89,97 ****
                                      
                                        /**
                                         * Get all the classes loaded by a given class loader
                                    !    * 
                                         * @param loader the loader
                                    !    * 
                                         * @return an array containing all the classes loaded by the given loader.
                                         * The array is empty if no class was loaded by the loader.
                                         */
                                    --- 89,97 ----
                                      
                                        /**
                                         * Get all the classes loaded by a given class loader
                                    !    *
                                         * @param loader the loader
                                    !    *
                                         * @return an array containing all the classes loaded by the given loader.
                                         * The array is empty if no class was loaded by the loader.
                                         */
                                    *************** final class VMInstrumentationImpl
                                    *** 99,105 ****
                                      
                                        /**
                                         * Get the size of an object. The object is not null
                                    !    * 
                                         * @param objectToSize the object
                                         * @return the size of the object
                                         */
                                    --- 99,105 ----
                                      
                                        /**
                                         * Get the size of an object. The object is not null
                                    !    *
                                         * @param objectToSize the object
                                         * @return the size of the object
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java	Wed Jul 19 17:10:12 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** exception statement from your version. *
                                    *** 38,44 ****
                                      package gnu.java.lang.management;
                                      
                                      /**
                                    !  * Provides access to information about the class loading 
                                       * behaviour of the current invocation of the virtual
                                       * machine.  Instances of this bean are obtained by calling
                                       * {@link ManagementFactory#getClassLoadingMXBean()}.
                                    --- 38,44 ----
                                      package gnu.java.lang.management;
                                      
                                      /**
                                    !  * Provides access to information about the class loading
                                       * behaviour of the current invocation of the virtual
                                       * machine.  Instances of this bean are obtained by calling
                                       * {@link ManagementFactory#getClassLoadingMXBean()}.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java	Wed Jul 19 17:10:12 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** exception statement from your version. *
                                    *** 38,44 ****
                                      package gnu.java.lang.management;
                                      
                                      /**
                                    !  * Provides access to information about the JIT 
                                       * compiler of the virtual machine, if one exists.
                                       * Instances of this bean are obtained by calling
                                       * {@link ManagementFactory#getCompilationMXBean()},
                                    --- 38,44 ----
                                      package gnu.java.lang.management;
                                      
                                      /**
                                    !  * Provides access to information about the JIT
                                       * compiler of the virtual machine, if one exists.
                                       * Instances of this bean are obtained by calling
                                       * {@link ManagementFactory#getCompilationMXBean()},
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java	Wed Jul 19 17:10:12 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMGarbageCollectorMXBeanImpl
                                    *** 70,76 ****
                                         * Note that the accumulated time may not change, even when the
                                         * collection count increases, if the time taken is sufficiently
                                         * short; this depends on the resolution of the timer used.
                                    !    * 
                                         * @param name the name of the garbage collector.
                                         * @return the accumulated number of milliseconds spent collecting,
                                         *         or -1 if this is undefined.
                                    --- 70,76 ----
                                         * Note that the accumulated time may not change, even when the
                                         * collection count increases, if the time taken is sufficiently
                                         * short; this depends on the resolution of the timer used.
                                    !    *
                                         * @param name the name of the garbage collector.
                                         * @return the accumulated number of milliseconds spent collecting,
                                         *         or -1 if this is undefined.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMMemoryMXBeanImpl
                                    *** 126,154 ****
                                            ManagementFactory.getMemoryPoolMXBeans().iterator();
                                          while (pools.hasNext())
                                            {
                                    ! 	MemoryPoolMXBean pool = (MemoryPoolMXBean) pools.next();
                                    ! 	if (pool.getType() == type)
                                    ! 	  {
                                    ! 	    MemoryUsage usage = pool.getUsage();
                                    ! 	    if (init != -1)
                                    ! 	      {
                                    ! 		long poolInit = usage.getInit();
                                    ! 		if (poolInit == -1)
                                    ! 		  init = -1;
                                    ! 		else
                                    ! 		  init += poolInit;
                                    ! 	      }
                                    ! 	    committed += usage.getCommitted();
                                    ! 	    used += usage.getUsed();
                                    ! 	    if (max != -1)
                                    ! 	      {
                                    ! 		long poolMax = usage.getMax();
                                    ! 		if (poolMax == -1)
                                    ! 		  max = -1;
                                    ! 		else
                                    ! 		  max += poolMax;
                                    ! 	      }
                                    ! 	  }
                                            }
                                          return new MemoryUsage(init, used, committed, max);
                                        }
                                    --- 126,154 ----
                                            ManagementFactory.getMemoryPoolMXBeans().iterator();
                                          while (pools.hasNext())
                                            {
                                    !         MemoryPoolMXBean pool = (MemoryPoolMXBean) pools.next();
                                    !         if (pool.getType() == type)
                                    !           {
                                    !             MemoryUsage usage = pool.getUsage();
                                    !             if (init != -1)
                                    !               {
                                    !                 long poolInit = usage.getInit();
                                    !                 if (poolInit == -1)
                                    !                   init = -1;
                                    !                 else
                                    !                   init += poolInit;
                                    !               }
                                    !             committed += usage.getCommitted();
                                    !             used += usage.getUsed();
                                    !             if (max != -1)
                                    !               {
                                    !                 long poolMax = usage.getMax();
                                    !                 if (poolMax == -1)
                                    !                   max = -1;
                                    !                 else
                                    !                   max += poolMax;
                                    !               }
                                    !           }
                                            }
                                          return new MemoryUsage(init, used, committed, max);
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java	Wed Jul 19 17:10:12 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.List;
                                    *** 56,65 ****
                                      final class VMMemoryManagerMXBeanImpl
                                      {
                                      
                                    !   /** 
                                         * Returns an array containing the names of the memory pools
                                         * this memory manager manages.
                                    !    * 
                                         * @param name the name of the memory manager.
                                         * @return an array containing the name of each memory pool
                                         *         this manager is responsible for.
                                    --- 56,65 ----
                                      final class VMMemoryManagerMXBeanImpl
                                      {
                                      
                                    !   /**
                                         * Returns an array containing the names of the memory pools
                                         * this memory manager manages.
                                    !    *
                                         * @param name the name of the memory manager.
                                         * @return an array containing the name of each memory pool
                                         *         this manager is responsible for.
                                    *************** final class VMMemoryManagerMXBeanImpl
                                    *** 70,83 ****
                                          Iterator beans = ManagementFactory.getMemoryPoolMXBeans().iterator();
                                          while (beans.hasNext())
                                            {
                                    ! 	MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next();
                                    ! 	String[] managers = bean.getMemoryManagerNames();
                                    ! 	for (int a = 0; a < managers.length; ++a)
                                    ! 	  if (managers[a].equals(name))
                                    ! 	    {
                                    ! 	      managedPools.add(bean.getName());
                                    ! 	      break;
                                    ! 	    }
                                            }
                                          return (String[]) managedPools.toArray(new String[managedPools.size()]);
                                        }
                                    --- 70,83 ----
                                          Iterator beans = ManagementFactory.getMemoryPoolMXBeans().iterator();
                                          while (beans.hasNext())
                                            {
                                    !         MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next();
                                    !         String[] managers = bean.getMemoryManagerNames();
                                    !         for (int a = 0; a < managers.length; ++a)
                                    !           if (managers[a].equals(name))
                                    !             {
                                    !               managedPools.add(bean.getName());
                                    !               break;
                                    !             }
                                            }
                                          return (String[]) managedPools.toArray(new String[managedPools.size()]);
                                        }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java	Sat Jul 29 18:39:18 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMMemoryPoolMXBeanImpl
                                    *** 106,112 ****
                                        static native MemoryUsage getPeakUsage(String name);
                                      
                                        /**
                                    !    * Returns the type of memory used by the specified pool. 
                                         * The value must be either "HEAP" or "NON_HEAP".
                                         *
                                         * @param name the name of the pool to obtain statistics on.
                                    --- 106,112 ----
                                        static native MemoryUsage getPeakUsage(String name);
                                      
                                        /**
                                    !    * Returns the type of memory used by the specified pool.
                                         * The value must be either "HEAP" or "NON_HEAP".
                                         *
                                         * @param name the name of the pool to obtain statistics on.
                                    *************** final class VMMemoryPoolMXBeanImpl
                                    *** 149,155 ****
                                         * @return the usage threshold count.
                                         */
                                        static native long getUsageThresholdCount(String name);
                                    !   
                                        /**
                                         * Returns true if the specified pool is still valid i.e.
                                         * it is still in use by the virtual machine.
                                    --- 149,155 ----
                                         * @return the usage threshold count.
                                         */
                                        static native long getUsageThresholdCount(String name);
                                    ! 
                                        /**
                                         * Returns true if the specified pool is still valid i.e.
                                         * it is still in use by the virtual machine.
                                    *************** final class VMMemoryPoolMXBeanImpl
                                    *** 158,164 ****
                                         * @return true if the pool is valid.
                                         */
                                        static native boolean isValid(String name);
                                    !   
                                        /**
                                         * Resets the peak usage level to the current usage level for
                                         * the specified pool.
                                    --- 158,164 ----
                                         * @return true if the pool is valid.
                                         */
                                        static native boolean isValid(String name);
                                    ! 
                                        /**
                                         * Resets the peak usage level to the current usage level for
                                         * the specified pool.
                                    *************** final class VMMemoryPoolMXBeanImpl
                                    *** 173,179 ****
                                         * This is only called if this functionality is supported
                                         * by the virtual machine (i.e. the appropriate property,
                                         * <code>gnu.java.lang.management.CollectionUsageThresholdSupport</code>,
                                    !    * is defined). 
                                         *
                                         * @param name the name of the pool to set the threshold of.
                                         * @param threshold the new threshold level.
                                    --- 173,179 ----
                                         * This is only called if this functionality is supported
                                         * by the virtual machine (i.e. the appropriate property,
                                         * <code>gnu.java.lang.management.CollectionUsageThresholdSupport</code>,
                                    !    * is defined).
                                         *
                                         * @param name the name of the pool to set the threshold of.
                                         * @param threshold the new threshold level.
                                    *************** final class VMMemoryPoolMXBeanImpl
                                    *** 185,191 ****
                                         * This is only called if this functionality is supported
                                         * by the virtual machine (i.e. the appropriate property,
                                         * <code>gnu.java.lang.management.UsageThresholdSupport</code>,
                                    !    * is defined). 
                                         *
                                         * @param name the name of the pool to set the threshold of.
                                         * @param threshold the new threshold level.
                                    --- 185,191 ----
                                         * This is only called if this functionality is supported
                                         * by the virtual machine (i.e. the appropriate property,
                                         * <code>gnu.java.lang.management.UsageThresholdSupport</code>,
                                    !    * is defined).
                                         *
                                         * @param name the name of the pool to set the threshold of.
                                         * @param threshold the new threshold level.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** package gnu.java.lang.management;
                                    *** 40,46 ****
                                      import java.lang.management.ThreadInfo;
                                      
                                      /**
                                    !  * Provides access to information about the threads 
                                       * of the virtual machine.  An instance of this bean is
                                       * obtained by calling
                                       * {@link ManagementFactory#getThreadMXBean()}.
                                    --- 40,46 ----
                                      import java.lang.management.ThreadInfo;
                                      
                                      /**
                                    !  * Provides access to information about the threads
                                       * of the virtual machine.  An instance of this bean is
                                       * obtained by calling
                                       * {@link ManagementFactory#getThreadMXBean()}.
                                    *************** final class VMThreadMXBeanImpl
                                    *** 87,99 ****
                                          filled = group.enumerate(threadList);
                                          while (filled == arraySize)
                                            {
                                    ! 	arraySize *= 2;
                                    ! 	threadList = new Thread[arraySize];
                                    ! 	filled = group.enumerate(threadList);
                                            }
                                          return threadList;
                                        }
                                    !   
                                        /**
                                         * Returns the id of all live threads at the time of execution.
                                         *
                                    --- 87,99 ----
                                          filled = group.enumerate(threadList);
                                          while (filled == arraySize)
                                            {
                                    !         arraySize *= 2;
                                    !         threadList = new Thread[arraySize];
                                    !         filled = group.enumerate(threadList);
                                            }
                                          return threadList;
                                        }
                                    ! 
                                        /**
                                         * Returns the id of all live threads at the time of execution.
                                         *
                                    *************** final class VMThreadMXBeanImpl
                                    *** 141,148 ****
                                          int daemonCount = 0;
                                          for (int a = 0; a < filled; ++a)
                                            {
                                    ! 	if (threadList[a].isDaemon())
                                    ! 	  ++daemonCount;
                                            }
                                          return daemonCount;
                                        }
                                    --- 141,148 ----
                                          int daemonCount = 0;
                                          for (int a = 0; a < filled; ++a)
                                            {
                                    !         if (threadList[a].isDaemon())
                                    !           ++daemonCount;
                                            }
                                          return daemonCount;
                                        }
                                    *************** final class VMThreadMXBeanImpl
                                    *** 205,211 ****
                                         * @return the corresponding <code>ThreadInfo</code>.
                                         */
                                        static native ThreadInfo getThreadInfoForId(long id, int maxDepth);
                                    !   
                                        /**
                                         * Returns the number of nanoseconds of user time
                                         * the specified thread has used in total.   This is
                                    --- 205,211 ----
                                         * @return the corresponding <code>ThreadInfo</code>.
                                         */
                                        static native ThreadInfo getThreadInfoForId(long id, int maxDepth);
                                    ! 
                                        /**
                                         * Returns the number of nanoseconds of user time
                                         * the specified thread has used in total.   This is
                                    *************** final class VMThreadMXBeanImpl
                                    *** 217,223 ****
                                         *         the thread.
                                         */
                                        static native long getThreadUserTime(long id);
                                    !   
                                        /**
                                         * Returns the total number of threads that have
                                         * been started over the lifetime of the virtual
                                    --- 217,223 ----
                                         *         the thread.
                                         */
                                        static native long getThreadUserTime(long id);
                                    ! 
                                        /**
                                         * Returns the total number of threads that have
                                         * been started over the lifetime of the virtual
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java	Mon Jan 16 20:59:05 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** public final class VMPlainDatagramSocket
                                    *** 69,75 ****
                                              System.loadLibrary("javanet");
                                            }
                                        }
                                    !   
                                        /**
                                         * Binds this socket to a particular port and interface
                                         *
                                    --- 69,75 ----
                                              System.loadLibrary("javanet");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Binds this socket to a particular port and interface
                                         *
                                    *************** public final class VMPlainDatagramSocket
                                    *** 78,86 ****
                                         * @param addr the address to bind to
                                         *
                                         * @throws SocketException If an error occurs
                                    !    */  
                                        static native void bind(PlainDatagramSocketImpl socket, int port,
                                    !                           InetAddress addr) 
                                          throws SocketException;
                                      
                                        /**
                                    --- 78,86 ----
                                         * @param addr the address to bind to
                                         *
                                         * @throws SocketException If an error occurs
                                    !    */
                                        static native void bind(PlainDatagramSocketImpl socket, int port,
                                    !                           InetAddress addr)
                                          throws SocketException;
                                      
                                        /**
                                    *************** public final class VMPlainDatagramSocket
                                    *** 127,133 ****
                                         *
                                         * @param socket the socket object
                                         * @param addr the address to send to
                                    !    * @param port the port to send to 
                                         * @param buf the buffer to send
                                         * @param offset the offset of the data in the buffer to send
                                         * @param len the length of the data to send
                                    --- 127,133 ----
                                         *
                                         * @param socket the socket object
                                         * @param addr the address to send to
                                    !    * @param port the port to send to
                                         * @param buf the buffer to send
                                         * @param offset the offset of the data in the buffer to send
                                         * @param len the length of the data to send
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** public final class VMPlainSocketImpl
                                    *** 62,68 ****
                                        private static final int CP_IP_TTL = 0x1E61;
                                      
                                        private final State nfd;
                                    !   
                                        /**
                                         * Static initializer to load native library.
                                         */
                                    --- 62,68 ----
                                        private static final int CP_IP_TTL = 0x1E61;
                                      
                                        private final State nfd;
                                    ! 
                                        /**
                                         * Static initializer to load native library.
                                         */
                                    *************** public final class VMPlainSocketImpl
                                    *** 73,91 ****
                                              System.loadLibrary("javanet");
                                            }
                                        }
                                    !   
                                        public VMPlainSocketImpl()
                                        {
                                          // XXX consider adding security check here.
                                          nfd = new State();
                                        }
                                    !   
                                        public VMPlainSocketImpl(VMChannel channel) throws IOException
                                        {
                                          this();
                                          nfd.setChannelFD(channel.getState());
                                        }
                                    !   
                                        public State getState()
                                        {
                                          return nfd;
                                    --- 73,91 ----
                                              System.loadLibrary("javanet");
                                            }
                                        }
                                    ! 
                                        public VMPlainSocketImpl()
                                        {
                                          // XXX consider adding security check here.
                                          nfd = new State();
                                        }
                                    ! 
                                        public VMPlainSocketImpl(VMChannel channel) throws IOException
                                        {
                                          this();
                                          nfd.setChannelFD(channel.getState());
                                        }
                                    ! 
                                        public State getState()
                                        {
                                          return nfd;
                                    *************** public final class VMPlainSocketImpl
                                    *** 144,150 ****
                                          else
                                            throw new IllegalArgumentException("option value type "
                                                                               + optionValue.getClass().getName());
                                    !     
                                          try
                                            {
                                              setOption(nfd.getNativeFD(), optionId, value);
                                    --- 144,150 ----
                                          else
                                            throw new IllegalArgumentException("option value type "
                                                                               + optionValue.getClass().getName());
                                    ! 
                                          try
                                            {
                                              setOption(nfd.getNativeFD(), optionId, value);
                                    *************** public final class VMPlainSocketImpl
                                    *** 156,162 ****
                                              throw se;
                                            }
                                        }
                                    !   
                                        private static native void setOption(int fd, int id, int value)
                                          throws SocketException;
                                      
                                    --- 156,162 ----
                                              throw se;
                                            }
                                        }
                                    ! 
                                        private static native void setOption(int fd, int id, int value)
                                          throws SocketException;
                                      
                                    *************** public final class VMPlainSocketImpl
                                    *** 198,213 ****
                                        /**
                                         * Get a socket option. This implementation is only required to support
                                         * socket options that are boolean values, which include:
                                    !    * 
                                         *  SocketOptions.IP_MULTICAST_LOOP
                                         *  SocketOptions.SO_BROADCAST
                                         *  SocketOptions.SO_KEEPALIVE
                                         *  SocketOptions.SO_OOBINLINE
                                         *  SocketOptions.SO_REUSEADDR
                                         *  SocketOptions.TCP_NODELAY
                                    !    * 
                                         * and socket options that are integer values, which include:
                                    !    * 
                                         *  SocketOptions.IP_TOS
                                         *  SocketOptions.SO_LINGER
                                         *  SocketOptions.SO_RCVBUF
                                    --- 198,213 ----
                                        /**
                                         * Get a socket option. This implementation is only required to support
                                         * socket options that are boolean values, which include:
                                    !    *
                                         *  SocketOptions.IP_MULTICAST_LOOP
                                         *  SocketOptions.SO_BROADCAST
                                         *  SocketOptions.SO_KEEPALIVE
                                         *  SocketOptions.SO_OOBINLINE
                                         *  SocketOptions.SO_REUSEADDR
                                         *  SocketOptions.TCP_NODELAY
                                    !    *
                                         * and socket options that are integer values, which include:
                                    !    *
                                         *  SocketOptions.IP_TOS
                                         *  SocketOptions.SO_LINGER
                                         *  SocketOptions.SO_RCVBUF
                                    *************** public final class VMPlainSocketImpl
                                    *** 232,238 ****
                                              se.initCause(ioe);
                                              throw se;
                                            }
                                    !     
                                          switch (optionId)
                                            {
                                              case SocketOptions.IP_MULTICAST_LOOP:
                                    --- 232,238 ----
                                              se.initCause(ioe);
                                              throw se;
                                            }
                                    ! 
                                          switch (optionId)
                                            {
                                              case SocketOptions.IP_MULTICAST_LOOP:
                                    *************** public final class VMPlainSocketImpl
                                    *** 242,261 ****
                                              case SocketOptions.SO_REUSEADDR:
                                              case SocketOptions.TCP_NODELAY:
                                                return Boolean.valueOf(value != 0);
                                    !           
                                              case SocketOptions.IP_TOS:
                                              case SocketOptions.SO_LINGER:
                                              case SocketOptions.SO_RCVBUF:
                                              case SocketOptions.SO_SNDBUF:
                                              case SocketOptions.SO_TIMEOUT:
                                                return new Integer(value);
                                    !           
                                              default:
                                                throw new SocketException("getting option " + optionId +
                                                                          " not supported here");
                                            }
                                        }
                                    !   
                                        private static native int getOption(int fd, int id) throws SocketException;
                                      
                                        /**
                                    --- 242,261 ----
                                              case SocketOptions.SO_REUSEADDR:
                                              case SocketOptions.TCP_NODELAY:
                                                return Boolean.valueOf(value != 0);
                                    ! 
                                              case SocketOptions.IP_TOS:
                                              case SocketOptions.SO_LINGER:
                                              case SocketOptions.SO_RCVBUF:
                                              case SocketOptions.SO_SNDBUF:
                                              case SocketOptions.SO_TIMEOUT:
                                                return new Integer(value);
                                    ! 
                                              default:
                                                throw new SocketException("getting option " + optionId +
                                                                          " not supported here");
                                            }
                                        }
                                    ! 
                                        private static native int getOption(int fd, int id) throws SocketException;
                                      
                                        /**
                                    *************** public final class VMPlainSocketImpl
                                    *** 264,270 ****
                                         *
                                         * The optionId is provided to make it possible that the native
                                         * implementation may do something different depending on whether
                                    !    * the value is SocketOptions.IP_MULTICAST_IF or 
                                         * SocketOptions.IP_MULTICAST_IF2.
                                         */
                                        public InetAddress getMulticastInterface(int optionId)
                                    --- 264,270 ----
                                         *
                                         * The optionId is provided to make it possible that the native
                                         * implementation may do something different depending on whether
                                    !    * the value is SocketOptions.IP_MULTICAST_IF or
                                         * SocketOptions.IP_MULTICAST_IF2.
                                         */
                                        public InetAddress getMulticastInterface(int optionId)
                                    *************** public final class VMPlainSocketImpl
                                    *** 284,290 ****
                                      
                                        private static native InetAddress getMulticastInterface(int fd,
                                                                                                int optionId);
                                    !   
                                        /**
                                         * Binds this socket to the given local address and port.
                                         *
                                    --- 284,290 ----
                                      
                                        private static native InetAddress getMulticastInterface(int fd,
                                                                                                int optionId);
                                    ! 
                                        /**
                                         * Binds this socket to the given local address and port.
                                         *
                                    *************** public final class VMPlainSocketImpl
                                    *** 306,316 ****
                                          else
                                            throw new SocketException ("unsupported address type");
                                        }
                                    !   
                                        /**
                                         * Native bind function for IPv4 addresses. The addr array must be
                                         * exactly four bytes long.
                                    !    * 
                                         * VMs without native support need not implement this.
                                         *
                                         * @param fd The native file descriptor integer.
                                    --- 306,316 ----
                                          else
                                            throw new SocketException ("unsupported address type");
                                        }
                                    ! 
                                        /**
                                         * Native bind function for IPv4 addresses. The addr array must be
                                         * exactly four bytes long.
                                    !    *
                                         * VMs without native support need not implement this.
                                         *
                                         * @param fd The native file descriptor integer.
                                    *************** public final class VMPlainSocketImpl
                                    *** 320,330 ****
                                         */
                                        private static native void bind(int fd, byte[] addr, int port)
                                          throws IOException;
                                    !   
                                        /**
                                         * Native bind function for IPv6 addresses. The addr array must be
                                         * exactly sixteen bytes long.
                                    !    * 
                                         * VMs without native support need not implement this.
                                         *
                                         * @param fd The native file descriptor integer.
                                    --- 320,330 ----
                                         */
                                        private static native void bind(int fd, byte[] addr, int port)
                                          throws IOException;
                                    ! 
                                        /**
                                         * Native bind function for IPv6 addresses. The addr array must be
                                         * exactly sixteen bytes long.
                                    !    *
                                         * VMs without native support need not implement this.
                                         *
                                         * @param fd The native file descriptor integer.
                                    *************** public final class VMPlainSocketImpl
                                    *** 346,352 ****
                                        {
                                          listen(nfd.getNativeFD(), backlog);
                                        }
                                    !   
                                        /**
                                         * Native listen function. VMs without native support need not implement
                                         * this.
                                    --- 346,352 ----
                                        {
                                          listen(nfd.getNativeFD(), backlog);
                                        }
                                    ! 
                                        /**
                                         * Native listen function. VMs without native support need not implement
                                         * this.
                                    *************** public final class VMPlainSocketImpl
                                    *** 366,376 ****
                                          else
                                            throw new IllegalArgumentException("unknown address type");
                                        }
                                    !   
                                        private static native void join(int fd, byte[] addr) throws IOException;
                                    !   
                                        private static native void join6(int fd, byte[] addr) throws IOException;
                                    !   
                                        public void leave(InetAddress group) throws IOException
                                        {
                                          if (group instanceof Inet4Address)
                                    --- 366,376 ----
                                          else
                                            throw new IllegalArgumentException("unknown address type");
                                        }
                                    ! 
                                        private static native void join(int fd, byte[] addr) throws IOException;
                                    ! 
                                        private static native void join6(int fd, byte[] addr) throws IOException;
                                    ! 
                                        public void leave(InetAddress group) throws IOException
                                        {
                                          if (group instanceof Inet4Address)
                                    *************** public final class VMPlainSocketImpl
                                    *** 380,395 ****
                                          else
                                            throw new IllegalArgumentException("unknown address type");
                                        }
                                    !   
                                        private static native void leave(int fd, byte[] addr) throws IOException;
                                    !   
                                        private static native void leave6(int fd, byte[] addr) throws IOException;
                                      
                                        public void joinGroup(InetSocketAddress addr, NetworkInterface netif)
                                          throws IOException
                                        {
                                          InetAddress address = addr.getAddress();
                                    !     
                                          if (address instanceof Inet4Address)
                                            joinGroup(nfd.getNativeFD(), address.getAddress(),
                                                      netif != null ? netif.getName() : null);
                                    --- 380,395 ----
                                          else
                                            throw new IllegalArgumentException("unknown address type");
                                        }
                                    ! 
                                        private static native void leave(int fd, byte[] addr) throws IOException;
                                    ! 
                                        private static native void leave6(int fd, byte[] addr) throws IOException;
                                      
                                        public void joinGroup(InetSocketAddress addr, NetworkInterface netif)
                                          throws IOException
                                        {
                                          InetAddress address = addr.getAddress();
                                    ! 
                                          if (address instanceof Inet4Address)
                                            joinGroup(nfd.getNativeFD(), address.getAddress(),
                                                      netif != null ? netif.getName() : null);
                                    *************** public final class VMPlainSocketImpl
                                    *** 399,411 ****
                                          else
                                            throw new IllegalArgumentException("unknown address type");
                                        }
                                    !   
                                        private static native void joinGroup(int fd, byte[] addr, String ifname)
                                          throws IOException;
                                    !   
                                        private static native void joinGroup6(int fd, byte[] addr, String ifname)
                                          throws IOException;
                                    !   
                                        public void leaveGroup(InetSocketAddress addr, NetworkInterface netif)
                                          throws IOException
                                        {
                                    --- 399,411 ----
                                          else
                                            throw new IllegalArgumentException("unknown address type");
                                        }
                                    ! 
                                        private static native void joinGroup(int fd, byte[] addr, String ifname)
                                          throws IOException;
                                    ! 
                                        private static native void joinGroup6(int fd, byte[] addr, String ifname)
                                          throws IOException;
                                    ! 
                                        public void leaveGroup(InetSocketAddress addr, NetworkInterface netif)
                                          throws IOException
                                        {
                                    *************** public final class VMPlainSocketImpl
                                    *** 419,460 ****
                                          else
                                            throw new IllegalArgumentException("unknown address type");
                                        }
                                    !   
                                        private static native void leaveGroup(int fd, byte[] addr, String ifname)
                                          throws IOException;
                                    !   
                                        private static native void leaveGroup6(int fd, byte[] addr, String ifname)
                                          throws IOException;
                                    !   
                                    !   
                                        public void shutdownInput() throws IOException
                                        {
                                          shutdownInput(nfd.getNativeFD());
                                        }
                                    !   
                                        private static native void shutdownInput(int native_fd) throws IOException;
                                    !   
                                        public void shutdownOutput() throws IOException
                                        {
                                          shutdownOutput(nfd.getNativeFD());
                                        }
                                    !   
                                        private static native void shutdownOutput(int native_fd) throws IOException;
                                    !   
                                        public void sendUrgentData(int data) throws IOException
                                        {
                                          sendUrgentData(nfd.getNativeFD(), data);
                                        }
                                    !   
                                        private static native void sendUrgentData(int natfive_fd, int data) throws IOException;
                                    !   
                                        public void close() throws IOException
                                        {
                                          nfd.close();
                                        }
                                    !   
                                        // Inner classes.
                                    !   
                                        /**
                                         * Our wrapper for the native file descriptor. In this implementation,
                                         * it is a simple wrapper around {@link VMChannel.State}, to simplify
                                    --- 419,460 ----
                                          else
                                            throw new IllegalArgumentException("unknown address type");
                                        }
                                    ! 
                                        private static native void leaveGroup(int fd, byte[] addr, String ifname)
                                          throws IOException;
                                    ! 
                                        private static native void leaveGroup6(int fd, byte[] addr, String ifname)
                                          throws IOException;
                                    ! 
                                    ! 
                                        public void shutdownInput() throws IOException
                                        {
                                          shutdownInput(nfd.getNativeFD());
                                        }
                                    ! 
                                        private static native void shutdownInput(int native_fd) throws IOException;
                                    ! 
                                        public void shutdownOutput() throws IOException
                                        {
                                          shutdownOutput(nfd.getNativeFD());
                                        }
                                    ! 
                                        private static native void shutdownOutput(int native_fd) throws IOException;
                                    ! 
                                        public void sendUrgentData(int data) throws IOException
                                        {
                                          sendUrgentData(nfd.getNativeFD(), data);
                                        }
                                    ! 
                                        private static native void sendUrgentData(int natfive_fd, int data) throws IOException;
                                    ! 
                                        public void close() throws IOException
                                        {
                                          nfd.close();
                                        }
                                    ! 
                                        // Inner classes.
                                    ! 
                                        /**
                                         * Our wrapper for the native file descriptor. In this implementation,
                                         * it is a simple wrapper around {@link VMChannel.State}, to simplify
                                    *************** public final class VMPlainSocketImpl
                                    *** 463,500 ****
                                        public final class State
                                        {
                                          private VMChannel.State channelFd;
                                    !     
                                          State()
                                          {
                                            channelFd = null;
                                          }
                                    !     
                                          public boolean isValid()
                                          {
                                            if (channelFd != null)
                                              return channelFd.isValid();
                                            return false;
                                          }
                                    !     
                                          public int getNativeFD() throws IOException
                                          {
                                            return channelFd.getNativeFD();
                                          }
                                    !     
                                          public void setChannelFD(final VMChannel.State nfd) throws IOException
                                          {
                                            if (this.channelFd != null && this.channelFd.isValid())
                                              throw new IOException("file descriptor already initialized");
                                            this.channelFd = nfd;
                                          }
                                    !     
                                          public void close() throws IOException
                                          {
                                            if (channelFd == null)
                                              throw new IOException("invalid file descriptor");
                                            channelFd.close();
                                          }
                                    !     
                                          protected void finalize() throws Throwable
                                          {
                                            try
                                    --- 463,500 ----
                                        public final class State
                                        {
                                          private VMChannel.State channelFd;
                                    ! 
                                          State()
                                          {
                                            channelFd = null;
                                          }
                                    ! 
                                          public boolean isValid()
                                          {
                                            if (channelFd != null)
                                              return channelFd.isValid();
                                            return false;
                                          }
                                    ! 
                                          public int getNativeFD() throws IOException
                                          {
                                            return channelFd.getNativeFD();
                                          }
                                    ! 
                                          public void setChannelFD(final VMChannel.State nfd) throws IOException
                                          {
                                            if (this.channelFd != null && this.channelFd.isValid())
                                              throw new IOException("file descriptor already initialized");
                                            this.channelFd = nfd;
                                          }
                                    ! 
                                          public void close() throws IOException
                                          {
                                            if (channelFd == null)
                                              throw new IOException("invalid file descriptor");
                                            channelFd.close();
                                          }
                                    ! 
                                          protected void finalize() throws Throwable
                                          {
                                            try
                                    *************** public final class VMPlainSocketImpl
                                    *** 509,512 ****
                                          }
                                        }
                                      }
                                    - 
                                    --- 509,511 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.nio.MappedByteBuffer;
                                    *** 53,59 ****
                                      /**
                                       * Native interface to support configuring of channel to run in a non-blocking
                                       * manner and support scatter/gather io operations.
                                    !  * 
                                       * @author Michael Barker <mike@middlesoft.co.uk>
                                       *
                                       */
                                    --- 53,59 ----
                                      /**
                                       * Native interface to support configuring of channel to run in a non-blocking
                                       * manner and support scatter/gather io operations.
                                    !  *
                                       * @author Michael Barker <mike@middlesoft.co.uk>
                                       *
                                       */
                                    *************** public final class VMChannel
                                    *** 61,72 ****
                                      {
                                        /**
                                         * Our reference implementation uses an integer to store the native
                                    !    * file descriptor. Implementations without such support 
                                         */
                                        private final State nfd;
                                    !   
                                        private Kind kind;
                                    !   
                                        public VMChannel()
                                        {
                                          // XXX consider adding security check here, so only Classpath
                                    --- 61,72 ----
                                      {
                                        /**
                                         * Our reference implementation uses an integer to store the native
                                    !    * file descriptor. Implementations without such support
                                         */
                                        private final State nfd;
                                    ! 
                                        private Kind kind;
                                    ! 
                                        public VMChannel()
                                        {
                                          // XXX consider adding security check here, so only Classpath
                                    *************** public final class VMChannel
                                    *** 74,87 ****
                                          this.nfd = new State();
                                          kind = Kind.OTHER;
                                        }
                                    !   
                                        /**
                                         * This constructor is used by the POSIX reference implementation;
                                         * other virtual machines need not support it.
                                    !    * 
                                         * <strong>Important:</strong> do not call this in library code that is
                                         * not specific to Classpath's reference implementation.
                                    !    * 
                                         * @param native_fd The native file descriptor integer.
                                         * @throws IOException
                                         */
                                    --- 74,87 ----
                                          this.nfd = new State();
                                          kind = Kind.OTHER;
                                        }
                                    ! 
                                        /**
                                         * This constructor is used by the POSIX reference implementation;
                                         * other virtual machines need not support it.
                                    !    *
                                         * <strong>Important:</strong> do not call this in library code that is
                                         * not specific to Classpath's reference implementation.
                                    !    *
                                         * @param native_fd The native file descriptor integer.
                                         * @throws IOException
                                         */
                                    *************** public final class VMChannel
                                    *** 90,96 ****
                                          this();
                                          this.nfd.setNativeFD(native_fd);
                                        }
                                    !   
                                        public State getState()
                                        {
                                          return nfd;
                                    --- 90,96 ----
                                          this();
                                          this.nfd.setNativeFD(native_fd);
                                        }
                                    ! 
                                        public State getState()
                                        {
                                          return nfd;
                                    *************** public final class VMChannel
                                    *** 105,166 ****
                                            }
                                          initIDs();
                                        }
                                    !   
                                        public static VMChannel getStdin() throws IOException
                                        {
                                          return new VMChannel(stdin_fd());
                                        }
                                    !   
                                        public static VMChannel getStdout() throws IOException
                                        {
                                          return new VMChannel(stdout_fd());
                                        }
                                    !   
                                        public static VMChannel getStderr() throws IOException
                                        {
                                          return new VMChannel(stderr_fd());
                                        }
                                    !   
                                        private static native int stdin_fd();
                                        private static native int stdout_fd();
                                        private static native int stderr_fd();
                                    !   
                                        /**
                                         * Set the file descriptor to have the required blocking
                                         * setting.
                                    !    * 
                                         * @param blocking The blocking flag to set.
                                         */
                                        public void setBlocking(boolean blocking) throws IOException
                                        {
                                          setBlocking(nfd.getNativeFD(), blocking);
                                        }
                                    !   
                                        private static native void setBlocking(int fd, boolean blocking)
                                          throws IOException;
                                    !   
                                        public int available() throws IOException
                                        {
                                          return available(nfd.getNativeFD());
                                        }
                                    !   
                                        private static native int available(int native_fd) throws IOException;
                                      
                                        /**
                                         * Reads a byte buffer directly using the supplied file descriptor.
                                    !    * 
                                         * @param dst Direct Byte Buffer to read to.
                                         * @return Number of bytes read.
                                    !    * @throws IOException If an error occurs or dst is not a direct buffers. 
                                         */
                                        public int read(ByteBuffer dst)
                                          throws IOException
                                        {
                                          return read(nfd.getNativeFD(), dst);
                                        }
                                    !   
                                        private static native int read(int fd, ByteBuffer dst) throws IOException;
                                    !   
                                        /**
                                         * Read a single byte.
                                         *
                                    --- 105,166 ----
                                            }
                                          initIDs();
                                        }
                                    ! 
                                        public static VMChannel getStdin() throws IOException
                                        {
                                          return new VMChannel(stdin_fd());
                                        }
                                    ! 
                                        public static VMChannel getStdout() throws IOException
                                        {
                                          return new VMChannel(stdout_fd());
                                        }
                                    ! 
                                        public static VMChannel getStderr() throws IOException
                                        {
                                          return new VMChannel(stderr_fd());
                                        }
                                    ! 
                                        private static native int stdin_fd();
                                        private static native int stdout_fd();
                                        private static native int stderr_fd();
                                    ! 
                                        /**
                                         * Set the file descriptor to have the required blocking
                                         * setting.
                                    !    *
                                         * @param blocking The blocking flag to set.
                                         */
                                        public void setBlocking(boolean blocking) throws IOException
                                        {
                                          setBlocking(nfd.getNativeFD(), blocking);
                                        }
                                    ! 
                                        private static native void setBlocking(int fd, boolean blocking)
                                          throws IOException;
                                    ! 
                                        public int available() throws IOException
                                        {
                                          return available(nfd.getNativeFD());
                                        }
                                    ! 
                                        private static native int available(int native_fd) throws IOException;
                                      
                                        /**
                                         * Reads a byte buffer directly using the supplied file descriptor.
                                    !    *
                                         * @param dst Direct Byte Buffer to read to.
                                         * @return Number of bytes read.
                                    !    * @throws IOException If an error occurs or dst is not a direct buffers.
                                         */
                                        public int read(ByteBuffer dst)
                                          throws IOException
                                        {
                                          return read(nfd.getNativeFD(), dst);
                                        }
                                    ! 
                                        private static native int read(int fd, ByteBuffer dst) throws IOException;
                                    ! 
                                        /**
                                         * Read a single byte.
                                         *
                                    *************** public final class VMChannel
                                    *** 171,189 ****
                                        {
                                          return read(nfd.getNativeFD());
                                        }
                                    !   
                                        private static native int read(int fd) throws IOException;
                                    !   
                                        /**
                                         * Reads into byte buffers directly using the supplied file descriptor.
                                         * Assumes that the buffer list contains DirectBuffers.  Will perform a
                                         * scattering read.
                                    !    * 
                                         * @param dsts An array direct byte buffers.
                                         * @param offset Index of the first buffer to read to.
                                         * @param length The number of buffers to read to.
                                         * @return Number of bytes read.
                                    !    * @throws IOException If an error occurs or the dsts are not direct buffers. 
                                         */
                                        public long readScattering(ByteBuffer[] dsts, int offset, int length)
                                          throws IOException
                                    --- 171,189 ----
                                        {
                                          return read(nfd.getNativeFD());
                                        }
                                    ! 
                                        private static native int read(int fd) throws IOException;
                                    ! 
                                        /**
                                         * Reads into byte buffers directly using the supplied file descriptor.
                                         * Assumes that the buffer list contains DirectBuffers.  Will perform a
                                         * scattering read.
                                    !    *
                                         * @param dsts An array direct byte buffers.
                                         * @param offset Index of the first buffer to read to.
                                         * @param length The number of buffers to read to.
                                         * @return Number of bytes read.
                                    !    * @throws IOException If an error occurs or the dsts are not direct buffers.
                                         */
                                        public long readScattering(ByteBuffer[] dsts, int offset, int length)
                                          throws IOException
                                    *************** public final class VMChannel
                                    *** 193,203 ****
                                      
                                          return readScattering(nfd.getNativeFD(), dsts, offset, length);
                                        }
                                    !   
                                        private static native long readScattering(int fd, ByteBuffer[] dsts,
                                                                                  int offset, int length)
                                          throws IOException;
                                    !   
                                        /**
                                         * Receive a datagram on this channel, returning the host address
                                         * that sent the datagram.
                                    --- 193,203 ----
                                      
                                          return readScattering(nfd.getNativeFD(), dsts, offset, length);
                                        }
                                    ! 
                                        private static native long readScattering(int fd, ByteBuffer[] dsts,
                                                                                  int offset, int length)
                                          throws IOException;
                                    ! 
                                        /**
                                         * Receive a datagram on this channel, returning the host address
                                         * that sent the datagram.
                                    *************** public final class VMChannel
                                    *** 228,245 ****
                                              int port = hostPort.getShort() & 0xFFFF;
                                              return new InetSocketAddress(Inet6Address.getByAddress(addr), port);
                                            }
                                    !     
                                          throw new SocketException("host address received with invalid length: "
                                                                    + hostlen);
                                        }
                                    !   
                                        private static native int receive (int fd, ByteBuffer dst, ByteBuffer address)
                                          throws IOException;
                                      
                                        /**
                                         * Writes from a direct byte bufer using the supplied file descriptor.
                                         * Assumes the buffer is a DirectBuffer.
                                    !    * 
                                         * @param src The source buffer.
                                         * @return Number of bytes written.
                                         * @throws IOException
                                    --- 228,245 ----
                                              int port = hostPort.getShort() & 0xFFFF;
                                              return new InetSocketAddress(Inet6Address.getByAddress(addr), port);
                                            }
                                    ! 
                                          throw new SocketException("host address received with invalid length: "
                                                                    + hostlen);
                                        }
                                    ! 
                                        private static native int receive (int fd, ByteBuffer dst, ByteBuffer address)
                                          throws IOException;
                                      
                                        /**
                                         * Writes from a direct byte bufer using the supplied file descriptor.
                                         * Assumes the buffer is a DirectBuffer.
                                    !    *
                                         * @param src The source buffer.
                                         * @return Number of bytes written.
                                         * @throws IOException
                                    *************** public final class VMChannel
                                    *** 248,261 ****
                                        {
                                          return write(nfd.getNativeFD(), src);
                                        }
                                    !   
                                        private native int write(int fd, ByteBuffer src) throws IOException;
                                      
                                        /**
                                         * Writes from byte buffers directly using the supplied file descriptor.
                                         * Assumes the that buffer list constains DirectBuffers.  Will perform
                                         * as gathering write.
                                    !    * 
                                         * @param srcs
                                         * @param offset
                                         * @param length
                                    --- 248,261 ----
                                        {
                                          return write(nfd.getNativeFD(), src);
                                        }
                                    ! 
                                        private native int write(int fd, ByteBuffer src) throws IOException;
                                      
                                        /**
                                         * Writes from byte buffers directly using the supplied file descriptor.
                                         * Assumes the that buffer list constains DirectBuffers.  Will perform
                                         * as gathering write.
                                    !    *
                                         * @param srcs
                                         * @param offset
                                         * @param length
                                    *************** public final class VMChannel
                                    *** 267,279 ****
                                        {
                                          if (offset + length > srcs.length)
                                            throw new IndexOutOfBoundsException("offset + length > srcs.length");
                                    !     
                                          // A gathering write is limited to 16 buffers; when writing, ensure
                                          // that we have at least one buffer with something in it in the 16
                                          // buffer window starting at offset.
                                          while (!srcs[offset].hasRemaining() && offset < srcs.length)
                                            offset++;
                                    !     
                                          // There are no buffers with anything to write.
                                          if (offset == srcs.length)
                                            return 0;
                                    --- 267,279 ----
                                        {
                                          if (offset + length > srcs.length)
                                            throw new IndexOutOfBoundsException("offset + length > srcs.length");
                                    ! 
                                          // A gathering write is limited to 16 buffers; when writing, ensure
                                          // that we have at least one buffer with something in it in the 16
                                          // buffer window starting at offset.
                                          while (!srcs[offset].hasRemaining() && offset < srcs.length)
                                            offset++;
                                    ! 
                                          // There are no buffers with anything to write.
                                          if (offset == srcs.length)
                                            return 0;
                                    *************** public final class VMChannel
                                    *** 285,295 ****
                                      
                                          return writeGathering(nfd.getNativeFD(), srcs, offset, length);
                                        }
                                    !   
                                        private native long writeGathering(int fd, ByteBuffer[] srcs,
                                                                           int offset, int length)
                                          throws IOException;
                                    !   
                                        /**
                                         * Send a datagram to the given address.
                                         *
                                    --- 285,295 ----
                                      
                                          return writeGathering(nfd.getNativeFD(), srcs, offset, length);
                                        }
                                    ! 
                                        private native long writeGathering(int fd, ByteBuffer[] srcs,
                                                                           int offset, int length)
                                          throws IOException;
                                    ! 
                                        /**
                                         * Send a datagram to the given address.
                                         *
                                    *************** public final class VMChannel
                                    *** 311,325 ****
                                          else
                                            throw new SocketException("unrecognized inet address type");
                                        }
                                    !   
                                        // Send to an IPv4 address.
                                        private static native int send(int fd, ByteBuffer src, byte[] addr, int port)
                                          throws IOException;
                                    !   
                                        // Send to an IPv6 address.
                                        private static native int send6(int fd, ByteBuffer src, byte[] addr, int port)
                                          throws IOException;
                                    !   
                                        /**
                                         * Write a single byte.
                                         *
                                    --- 311,325 ----
                                          else
                                            throw new SocketException("unrecognized inet address type");
                                        }
                                    ! 
                                        // Send to an IPv4 address.
                                        private static native int send(int fd, ByteBuffer src, byte[] addr, int port)
                                          throws IOException;
                                    ! 
                                        // Send to an IPv6 address.
                                        private static native int send6(int fd, ByteBuffer src, byte[] addr, int port)
                                          throws IOException;
                                    ! 
                                        /**
                                         * Write a single byte.
                                         *
                                    *************** public final class VMChannel
                                    *** 330,342 ****
                                        {
                                          write(nfd.getNativeFD(), b);
                                        }
                                    !   
                                        private static native void write(int fd, int b) throws IOException;
                                    !   
                                        private native static void initIDs();
                                      
                                        // Network (socket) specific methods.
                                    !   
                                        /**
                                         * Create a new socket. This method will initialize the native file
                                         * descriptor state of this instance.
                                    --- 330,342 ----
                                        {
                                          write(nfd.getNativeFD(), b);
                                        }
                                    ! 
                                        private static native void write(int fd, int b) throws IOException;
                                    ! 
                                        private native static void initIDs();
                                      
                                        // Network (socket) specific methods.
                                    ! 
                                        /**
                                         * Create a new socket. This method will initialize the native file
                                         * descriptor state of this instance.
                                    *************** public final class VMChannel
                                    *** 356,362 ****
                                            kind = Kind.SOCK_DGRAM;
                                          nfd.setNativeFD(socket(stream));
                                        }
                                    !   
                                        /**
                                         * Create a new socket, returning the native file descriptor.
                                         *
                                    --- 356,362 ----
                                            kind = Kind.SOCK_DGRAM;
                                          nfd.setNativeFD(socket(stream));
                                        }
                                    ! 
                                        /**
                                         * Create a new socket, returning the native file descriptor.
                                         *
                                    *************** public final class VMChannel
                                    *** 382,388 ****
                                          int fd;
                                      
                                          InetAddress addr = saddr.getAddress();
                                    !  
                                          // Translates an IOException into a SocketException to conform
                                          // to the throws clause.
                                          try
                                    --- 382,388 ----
                                          int fd;
                                      
                                          InetAddress addr = saddr.getAddress();
                                    ! 
                                          // Translates an IOException into a SocketException to conform
                                          // to the throws clause.
                                          try
                                    *************** public final class VMChannel
                                    *** 402,414 ****
                                                            timeout);
                                          throw new SocketException("unsupported internet address");
                                        }
                                    !   
                                        private static native boolean connect(int fd, byte[] addr, int port, int timeout)
                                          throws SocketException;
                                    !   
                                        private static native boolean connect6(int fd, byte[] addr, int port, int timeout)
                                          throws SocketException;
                                    !   
                                        /**
                                         * Disconnect this channel, if it is a datagram socket. Disconnecting
                                         * a datagram channel will disassociate it from any address, so the
                                    --- 402,414 ----
                                                            timeout);
                                          throw new SocketException("unsupported internet address");
                                        }
                                    ! 
                                        private static native boolean connect(int fd, byte[] addr, int port, int timeout)
                                          throws SocketException;
                                    ! 
                                        private static native boolean connect6(int fd, byte[] addr, int port, int timeout)
                                          throws SocketException;
                                    ! 
                                        /**
                                         * Disconnect this channel, if it is a datagram socket. Disconnecting
                                         * a datagram channel will disassociate it from any address, so the
                                    *************** public final class VMChannel
                                    *** 424,432 ****
                                            throw new IOException("can only disconnect datagram channels");
                                          disconnect(nfd.getNativeFD());
                                        }
                                    !   
                                        private static native void disconnect(int fd) throws IOException;
                                    !   
                                        public InetSocketAddress getLocalAddress() throws IOException
                                        {
                                          if (!nfd.isValid())
                                    --- 424,432 ----
                                            throw new IOException("can only disconnect datagram channels");
                                          disconnect(nfd.getNativeFD());
                                        }
                                    ! 
                                        private static native void disconnect(int fd) throws IOException;
                                    ! 
                                        public InetSocketAddress getLocalAddress() throws IOException
                                        {
                                          if (!nfd.isValid())
                                    *************** public final class VMChannel
                                    *** 451,457 ****
                                            }
                                          throw new SocketException("invalid address length");
                                        }
                                    !   
                                        private static native int getsockname(int fd, ByteBuffer name)
                                          throws IOException;
                                      
                                    --- 451,457 ----
                                            }
                                          throw new SocketException("invalid address length");
                                        }
                                    ! 
                                        private static native int getsockname(int fd, ByteBuffer name)
                                          throws IOException;
                                      
                                    *************** public final class VMChannel
                                    *** 486,492 ****
                                            }
                                          throw new SocketException("invalid address length");
                                        }
                                    !   
                                        /*
                                         * The format here is the peer address, followed by the port number.
                                         * The returned value is the length of the peer address; thus, there
                                    --- 486,492 ----
                                            }
                                          throw new SocketException("invalid address length");
                                        }
                                    ! 
                                        /*
                                         * The format here is the peer address, followed by the port number.
                                         * The returned value is the length of the peer address; thus, there
                                    *************** public final class VMChannel
                                    *** 494,500 ****
                                         */
                                        private static native int getpeername(int fd, ByteBuffer name)
                                          throws IOException;
                                    !   
                                        /**
                                         * Accept an incoming connection, returning a new VMChannel, or null
                                         * if the channel is nonblocking and no connection is pending.
                                    --- 494,500 ----
                                         */
                                        private static native int getpeername(int fd, ByteBuffer name)
                                          throws IOException;
                                    ! 
                                        /**
                                         * Accept an incoming connection, returning a new VMChannel, or null
                                         * if the channel is nonblocking and no connection is pending.
                                    *************** public final class VMChannel
                                    *** 509,525 ****
                                            return null;
                                          return new VMChannel(new_fd);
                                        }
                                    !   
                                        private static native int accept(int native_fd) throws IOException;
                                      
                                        // File-specific methods.
                                    !   
                                        /**
                                         * Open a file at PATH, initializing the native state to operate on
                                         * that open file.
                                    !    * 
                                         * @param path The absolute file path.
                                    !    * @throws IOException If the file cannot be opened, or if this 
                                         *  channel was previously initialized.
                                         */
                                        public void openFile(String path, int mode) throws IOException
                                    --- 509,525 ----
                                            return null;
                                          return new VMChannel(new_fd);
                                        }
                                    ! 
                                        private static native int accept(int native_fd) throws IOException;
                                      
                                        // File-specific methods.
                                    ! 
                                        /**
                                         * Open a file at PATH, initializing the native state to operate on
                                         * that open file.
                                    !    *
                                         * @param path The absolute file path.
                                    !    * @throws IOException If the file cannot be opened, or if this
                                         *  channel was previously initialized.
                                         */
                                        public void openFile(String path, int mode) throws IOException
                                    *************** public final class VMChannel
                                    *** 530,554 ****
                                          nfd.setNativeFD(fd);
                                          kind = Kind.FILE;
                                        }
                                    !   
                                        private static native int open(String path, int mode) throws IOException;
                                    !   
                                        public long position() throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          return position(nfd.getNativeFD());
                                        }
                                    !   
                                        private static native long position(int fd) throws IOException;
                                    !   
                                        public void seek(long pos) throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          seek(nfd.getNativeFD(), pos);
                                        }
                                    !   
                                        private static native void seek(int fd, long pos) throws IOException;
                                      
                                        public void truncate(long length) throws IOException
                                    --- 530,554 ----
                                          nfd.setNativeFD(fd);
                                          kind = Kind.FILE;
                                        }
                                    ! 
                                        private static native int open(String path, int mode) throws IOException;
                                    ! 
                                        public long position() throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          return position(nfd.getNativeFD());
                                        }
                                    ! 
                                        private static native long position(int fd) throws IOException;
                                    ! 
                                        public void seek(long pos) throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          seek(nfd.getNativeFD(), pos);
                                        }
                                    ! 
                                        private static native void seek(int fd, long pos) throws IOException;
                                      
                                        public void truncate(long length) throws IOException
                                    *************** public final class VMChannel
                                    *** 557,565 ****
                                            throw new IOException("not a file");
                                          truncate(nfd.getNativeFD(), length);
                                        }
                                    !   
                                        private static native void truncate(int fd, long len) throws IOException;
                                    !   
                                        public boolean lock(long pos, long len, boolean shared, boolean wait)
                                          throws IOException
                                        {
                                    --- 557,565 ----
                                            throw new IOException("not a file");
                                          truncate(nfd.getNativeFD(), length);
                                        }
                                    ! 
                                        private static native void truncate(int fd, long len) throws IOException;
                                    ! 
                                        public boolean lock(long pos, long len, boolean shared, boolean wait)
                                          throws IOException
                                        {
                                    *************** public final class VMChannel
                                    *** 567,593 ****
                                            throw new IOException("not a file");
                                          return lock(nfd.getNativeFD(), pos, len, shared, wait);
                                        }
                                    !   
                                        private static native boolean lock(int fd, long pos, long len,
                                                                           boolean shared, boolean wait)
                                          throws IOException;
                                    !   
                                        public void unlock(long pos, long len) throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          unlock(nfd.getNativeFD(), pos, len);
                                        }
                                    !   
                                        private static native void unlock(int fd, long pos, long len) throws IOException;
                                    !   
                                        public long size() throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          return size(nfd.getNativeFD());
                                        }
                                    !   
                                        private static native long size(int fd) throws IOException;
                                      
                                        public MappedByteBuffer map(char mode, long position, int size)
                                    --- 567,593 ----
                                            throw new IOException("not a file");
                                          return lock(nfd.getNativeFD(), pos, len, shared, wait);
                                        }
                                    ! 
                                        private static native boolean lock(int fd, long pos, long len,
                                                                           boolean shared, boolean wait)
                                          throws IOException;
                                    ! 
                                        public void unlock(long pos, long len) throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          unlock(nfd.getNativeFD(), pos, len);
                                        }
                                    ! 
                                        private static native void unlock(int fd, long pos, long len) throws IOException;
                                    ! 
                                        public long size() throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          return size(nfd.getNativeFD());
                                        }
                                    ! 
                                        private static native long size(int fd) throws IOException;
                                      
                                        public MappedByteBuffer map(char mode, long position, int size)
                                    *************** public final class VMChannel
                                    *** 597,618 ****
                                            throw new IOException("not a file");
                                          return map(nfd.getNativeFD(), mode, position, size);
                                        }
                                    !   
                                        private static native MappedByteBuffer map(int fd, char mode,
                                                                                   long position, int size)
                                          throws IOException;
                                    !   
                                        public boolean flush(boolean metadata) throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          return flush(nfd.getNativeFD(), metadata);
                                        }
                                    !   
                                        private static native boolean flush(int fd, boolean metadata) throws IOException;
                                    !   
                                        // Close.
                                    !   
                                        /**
                                         * Close this socket. The socket is also automatically closed when this
                                         * object is finalized.
                                    --- 597,618 ----
                                            throw new IOException("not a file");
                                          return map(nfd.getNativeFD(), mode, position, size);
                                        }
                                    ! 
                                        private static native MappedByteBuffer map(int fd, char mode,
                                                                                   long position, int size)
                                          throws IOException;
                                    ! 
                                        public boolean flush(boolean metadata) throws IOException
                                        {
                                          if (kind != Kind.FILE)
                                            throw new IOException("not a file");
                                          return flush(nfd.getNativeFD(), metadata);
                                        }
                                    ! 
                                        private static native boolean flush(int fd, boolean metadata) throws IOException;
                                    ! 
                                        // Close.
                                    ! 
                                        /**
                                         * Close this socket. The socket is also automatically closed when this
                                         * object is finalized.
                                    *************** public final class VMChannel
                                    *** 624,636 ****
                                        {
                                          nfd.close();
                                        }
                                    !   
                                        static native void close(int native_fd) throws IOException;
                                    !   
                                        /**
                                         * <p>Provides a simple mean for the JNI code to find out whether the
                                         * current thread was interrupted by a call to Thread.interrupt().</p>
                                    !    * 
                                         * @return
                                         */
                                        static boolean isThreadInterrupted()
                                    --- 624,636 ----
                                        {
                                          nfd.close();
                                        }
                                    ! 
                                        static native void close(int native_fd) throws IOException;
                                    ! 
                                        /**
                                         * <p>Provides a simple mean for the JNI code to find out whether the
                                         * current thread was interrupted by a call to Thread.interrupt().</p>
                                    !    *
                                         * @return
                                         */
                                        static boolean isThreadInterrupted()
                                    *************** public final class VMChannel
                                    *** 639,653 ****
                                        }
                                      
                                        // Inner classes.
                                    !   
                                        /**
                                         * A wrapper for a native file descriptor integer. This tracks the state
                                    !    * of an open file descriptor, and ensures that 
                                    !    * 
                                         * This class need not be fully supported by virtual machines; if a
                                         * virtual machine does not use integer file descriptors, or does and
                                         * wishes to hide that, then the methods of this class may be stubbed out.
                                    !    * 
                                         * System-specific classes that depend on access to native file descriptor
                                         * integers SHOULD declare this fact.
                                         */
                                    --- 639,653 ----
                                        }
                                      
                                        // Inner classes.
                                    ! 
                                        /**
                                         * A wrapper for a native file descriptor integer. This tracks the state
                                    !    * of an open file descriptor, and ensures that
                                    !    *
                                         * This class need not be fully supported by virtual machines; if a
                                         * virtual machine does not use integer file descriptors, or does and
                                         * wishes to hide that, then the methods of this class may be stubbed out.
                                    !    *
                                         * System-specific classes that depend on access to native file descriptor
                                         * integers SHOULD declare this fact.
                                         */
                                    *************** public final class VMChannel
                                    *** 656,686 ****
                                          private int native_fd;
                                          private boolean valid;
                                          private boolean closed;
                                    !     
                                          State()
                                          {
                                            native_fd = -1;
                                            valid = false;
                                            closed = false;
                                          }
                                    !     
                                          public boolean isValid()
                                          {
                                            return valid;
                                          }
                                    !     
                                          public boolean isClosed()
                                          {
                                            return closed;
                                          }
                                    !     
                                          public int getNativeFD() throws IOException
                                          {
                                            if (!valid)
                                              throw new IOException("invalid file descriptor");
                                            return native_fd;
                                          }
                                    !     
                                          void setNativeFD(final int native_fd) throws IOException
                                          {
                                            if (valid)
                                    --- 656,686 ----
                                          private int native_fd;
                                          private boolean valid;
                                          private boolean closed;
                                    ! 
                                          State()
                                          {
                                            native_fd = -1;
                                            valid = false;
                                            closed = false;
                                          }
                                    ! 
                                          public boolean isValid()
                                          {
                                            return valid;
                                          }
                                    ! 
                                          public boolean isClosed()
                                          {
                                            return closed;
                                          }
                                    ! 
                                          public int getNativeFD() throws IOException
                                          {
                                            if (!valid)
                                              throw new IOException("invalid file descriptor");
                                            return native_fd;
                                          }
                                    ! 
                                          void setNativeFD(final int native_fd) throws IOException
                                          {
                                            if (valid)
                                    *************** public final class VMChannel
                                    *** 688,694 ****
                                            this.native_fd = native_fd;
                                            valid = true;
                                          }
                                    !     
                                          public void close() throws IOException
                                          {
                                            if (!valid)
                                    --- 688,694 ----
                                            this.native_fd = native_fd;
                                            valid = true;
                                          }
                                    ! 
                                          public void close() throws IOException
                                          {
                                            if (!valid)
                                    *************** public final class VMChannel
                                    *** 703,709 ****
                                                closed = true;
                                              }
                                          }
                                    !     
                                          public String toString()
                                          {
                                            if (closed)
                                    --- 703,709 ----
                                                closed = true;
                                              }
                                          }
                                    ! 
                                          public String toString()
                                          {
                                            if (closed)
                                    *************** public final class VMChannel
                                    *** 712,718 ****
                                              return "<<invalid>>";
                                            return String.valueOf(native_fd);
                                          }
                                    !     
                                          protected void finalize() throws Throwable
                                          {
                                            try
                                    --- 712,718 ----
                                              return "<<invalid>>";
                                            return String.valueOf(native_fd);
                                          }
                                    ! 
                                          protected void finalize() throws Throwable
                                          {
                                            try
                                    *************** public final class VMChannel
                                    *** 726,732 ****
                                              }
                                          }
                                        }
                                    !   
                                        /**
                                         * An enumeration of possible kinds of channel.
                                         */
                                    --- 726,732 ----
                                              }
                                          }
                                        }
                                    ! 
                                        /**
                                         * An enumeration of possible kinds of channel.
                                         */
                                    *************** public final class VMChannel
                                    *** 734,749 ****
                                        {
                                          /** A streaming (TCP) socket. */
                                          static final Kind SOCK_STREAM = new Kind();
                                    !     
                                          /** A datagram (UDP) socket. */
                                          static final Kind SOCK_DGRAM = new Kind();
                                    !     
                                          /** A file. */
                                          static final Kind FILE = new Kind();
                                    !     
                                          /** Something else; not a socket or file. */
                                          static final Kind OTHER = new Kind();
                                    !     
                                          private Kind() { }
                                        }
                                      }
                                    --- 734,749 ----
                                        {
                                          /** A streaming (TCP) socket. */
                                          static final Kind SOCK_STREAM = new Kind();
                                    ! 
                                          /** A datagram (UDP) socket. */
                                          static final Kind SOCK_DGRAM = new Kind();
                                    ! 
                                          /** A file. */
                                          static final Kind FILE = new Kind();
                                    ! 
                                          /** Something else; not a socket or file. */
                                          static final Kind OTHER = new Kind();
                                    ! 
                                          private Kind() { }
                                        }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMPipe
                                    *** 57,63 ****
                                              System.loadLibrary ("javanio");
                                            }
                                        }
                                    !   
                                        /**
                                         * Create a pipe, consisting of a readable VMChannel and a writable
                                         * VMChannel. The readable channel is returned is the first element
                                    --- 57,63 ----
                                              System.loadLibrary ("javanio");
                                            }
                                        }
                                    ! 
                                        /**
                                         * Create a pipe, consisting of a readable VMChannel and a writable
                                         * VMChannel. The readable channel is returned is the first element
                                    *************** final class VMPipe
                                    *** 75,80 ****
                                          pipe[1] = new VMChannel(fds[1]);
                                          return pipe;
                                        }
                                    !   
                                        private static native int[] pipe0() throws IOException;
                                      }
                                    --- 75,80 ----
                                          pipe[1] = new VMChannel(fds[1]);
                                          return pipe;
                                        }
                                    ! 
                                        private static native int[] pipe0() throws IOException;
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/nio/VMSelector.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/nio/VMSelector.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/nio/VMSelector.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/nio/VMSelector.java	Tue Jan 11 19:46:05 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* VMSelector.java -- 
                                         Copyright (C) 2004 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    --- 1,4 ----
                                    ! /* VMSelector.java --
                                         Copyright (C) 2004 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                    *************** public final class VMSelector
                                    *** 50,56 ****
                                              System.loadLibrary ("javanio");
                                            }
                                        }
                                    !   
                                        // A timeout value of 0 means block forever.
                                        static native int select (int[] read, int[] write,
                                                                              int[] except, long timeout)
                                    --- 50,56 ----
                                              System.loadLibrary ("javanio");
                                            }
                                        }
                                    ! 
                                        // A timeout value of 0 means block forever.
                                        static native int select (int[] read, int[] write,
                                                                              int[] except, long timeout)
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java	Wed Feb 11 20:52:44 2009
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMSecureRandom
                                    *** 126,129 ****
                                            running = false;
                                          }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 126,129 ----
                                            running = false;
                                          }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/io/VMFile.java gcc-4.6.0/libjava/classpath/vm/reference/java/io/VMFile.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/io/VMFile.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/io/VMFile.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** final class VMFile
                                    *** 61,67 ****
                                              System.loadLibrary("javaio");
                                            }
                                        }
                                    !   
                                        /*
                                         * This native method does the actual work of getting the last file
                                         * modification time.  It also does the existence check to avoid the
                                    --- 61,67 ----
                                              System.loadLibrary("javaio");
                                            }
                                        }
                                    ! 
                                        /*
                                         * This native method does the actual work of getting the last file
                                         * modification time.  It also does the existence check to avoid the
                                    *************** final class VMFile
                                    *** 120,157 ****
                                         * Gets the total bytes of the filesystem named by path.
                                         */
                                        public static native long getTotalSpace(String path);
                                    !   
                                        /**
                                         * Gets the total free bytes of the filesystem named by path.
                                         */
                                        public static native long getFreeSpace(String path);
                                    !   
                                        /**
                                         * Gets the available bytes of the filesystem named by path.
                                         */
                                        public static native long getUsableSpace(String path);
                                    !   
                                        /**
                                         * Set the read permission of the file.
                                         */
                                        public static synchronized native boolean setReadable(String path,
                                    !                                            		boolean readable,
                                    !                                            		boolean ownerOnly);
                                    !   
                                        /**
                                         * Set the write permission of the file.
                                         */
                                        public static synchronized native boolean setWritable(String path,
                                                                                              boolean writable,
                                                                                              boolean ownerOnly);
                                    !   
                                        /**
                                         * Set the execute permission of the file.
                                         */
                                        public static synchronized native boolean setExecutable(String path,
                                                                                                boolean executable,
                                                                                                boolean ownerOnly);
                                    !   
                                        /*
                                         * This native method does the actual check of whether or not a file
                                         * is a plain file or not.  It also handles the existence check to
                                    --- 120,157 ----
                                         * Gets the total bytes of the filesystem named by path.
                                         */
                                        public static native long getTotalSpace(String path);
                                    ! 
                                        /**
                                         * Gets the total free bytes of the filesystem named by path.
                                         */
                                        public static native long getFreeSpace(String path);
                                    ! 
                                        /**
                                         * Gets the available bytes of the filesystem named by path.
                                         */
                                        public static native long getUsableSpace(String path);
                                    ! 
                                        /**
                                         * Set the read permission of the file.
                                         */
                                        public static synchronized native boolean setReadable(String path,
                                    !                                                         boolean readable,
                                    !                                                         boolean ownerOnly);
                                    ! 
                                        /**
                                         * Set the write permission of the file.
                                         */
                                        public static synchronized native boolean setWritable(String path,
                                                                                              boolean writable,
                                                                                              boolean ownerOnly);
                                    ! 
                                        /**
                                         * Set the execute permission of the file.
                                         */
                                        public static synchronized native boolean setExecutable(String path,
                                                                                                boolean executable,
                                                                                                boolean ownerOnly);
                                    ! 
                                        /*
                                         * This native method does the actual check of whether or not a file
                                         * is a plain file or not.  It also handles the existence check to
                                    *************** final class VMFile
                                    *** 163,169 ****
                                         * This native method checks file permissions for writing
                                         */
                                        static synchronized native boolean canWrite(String path);
                                    !   
                                        /**
                                         * This methods checks if a directory can be written to.
                                         */
                                    --- 163,169 ----
                                         * This native method checks file permissions for writing
                                         */
                                        static synchronized native boolean canWrite(String path);
                                    ! 
                                        /**
                                         * This methods checks if a directory can be written to.
                                         */
                                    *************** final class VMFile
                                    *** 178,184 ****
                                         * This native method checks file permissions for execution
                                         */
                                        static synchronized native boolean canExecute(String path);
                                    !   
                                        /*
                                         * This method does the actual check of whether or not a file is a
                                         * directory or not.  It also handle the existence check to eliminate
                                    --- 178,184 ----
                                         * This native method checks file permissions for execution
                                         */
                                        static synchronized native boolean canExecute(String path);
                                    ! 
                                        /*
                                         * This method does the actual check of whether or not a file is a
                                         * directory or not.  It also handle the existence check to eliminate
                                    *************** final class VMFile
                                    *** 193,199 ****
                                        {
                                          return canWriteDirectory(path.getAbsolutePath());
                                        }
                                    !   
                                        /**
                                         * This method returns an array of filesystem roots.  Some operating systems
                                         * have volume oriented filesystem.  This method provides a mechanism for
                                    --- 193,199 ----
                                        {
                                          return canWriteDirectory(path.getAbsolutePath());
                                        }
                                    ! 
                                        /**
                                         * This method returns an array of filesystem roots.  Some operating systems
                                         * have volume oriented filesystem.  This method provides a mechanism for
                                    *************** final class VMFile
                                    *** 207,215 ****
                                         */
                                        static File[] listRoots()
                                        {
                                    ! 	File[] roots = new File[1];
                                    ! 	roots[0] = new File("/");
                                    ! 	return roots;
                                        }
                                      
                                        /**
                                    --- 207,215 ----
                                         */
                                        static File[] listRoots()
                                        {
                                    !         File[] roots = new File[1];
                                    !         roots[0] = new File("/");
                                    !         return roots;
                                        }
                                      
                                        /**
                                    *************** final class VMFile
                                    *** 225,232 ****
                                         */
                                        static boolean isHidden(String path)
                                        {
                                    ! 	// FIXME: this only works on UNIX
                                    ! 	return getName(path).startsWith(".");
                                        }
                                      
                                        /**
                                    --- 225,232 ----
                                         */
                                        static boolean isHidden(String path)
                                        {
                                    !         // FIXME: this only works on UNIX
                                    !         return getName(path).startsWith(".");
                                        }
                                      
                                        /**
                                    *************** final class VMFile
                                    *** 238,251 ****
                                         */
                                        static String getName(String path)
                                        {
                                    ! 	int pos = PlatformHelper.lastIndexOfSeparator(path);
                                    ! 	if (pos == -1)
                                    ! 	  return path;
                                    ! 	
                                    ! 	if (PlatformHelper.endWithSeparator(path))
                                    ! 	  return "";
                                    ! 	
                                    ! 	return path.substring(pos + File.separator.length());
                                        }
                                      
                                        /**
                                    --- 238,251 ----
                                         */
                                        static String getName(String path)
                                        {
                                    !         int pos = PlatformHelper.lastIndexOfSeparator(path);
                                    !         if (pos == -1)
                                    !           return path;
                                    ! 
                                    !         if (PlatformHelper.endWithSeparator(path))
                                    !           return "";
                                    ! 
                                    !         return path.substring(pos + File.separator.length());
                                        }
                                      
                                        /**
                                    *************** final class VMFile
                                    *** 260,266 ****
                                         */
                                        static String getAbsolutePath(String path)
                                        {
                                    !     if (File.separatorChar == '\\' 
                                            && path.length() > 0 && path.charAt (0) == '\\')
                                            {
                                              // On Windows, even if the path starts with a '\\' it is not
                                    --- 260,266 ----
                                         */
                                        static String getAbsolutePath(String path)
                                        {
                                    !     if (File.separatorChar == '\\'
                                            && path.length() > 0 && path.charAt (0) == '\\')
                                            {
                                              // On Windows, even if the path starts with a '\\' it is not
                                    *************** final class VMFile
                                    *** 274,281 ****
                                                   || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z')))
                                            {
                                              // On Windows, a process has a current working directory for
                                    !         // each drive and a path like "G:foo\bar" would mean the 
                                    !         // absolute path "G:\wombat\foo\bar" if "\wombat" is the 
                                              // working directory on the G drive.
                                              String drvDir = null;
                                              try
                                    --- 274,281 ----
                                                   || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z')))
                                            {
                                              // On Windows, a process has a current working directory for
                                    !         // each drive and a path like "G:foo\bar" would mean the
                                    !         // absolute path "G:\wombat\foo\bar" if "\wombat" is the
                                              // working directory on the G drive.
                                              String drvDir = null;
                                              try
                                    *************** final class VMFile
                                    *** 288,294 ****
                                                }
                                      
                                              // Note: this would return "C:\\." for the path "C:.", if "\"
                                    !         // is the working folder on the C drive, but this is 
                                              // consistent with what Sun's JRE 1.4.1.01 actually returns!
                                              if (path.length() > 2)
                                                return drvDir + '\\' + path.substring (2, path.length());
                                    --- 288,294 ----
                                                }
                                      
                                              // Note: this would return "C:\\." for the path "C:.", if "\"
                                    !         // is the working folder on the C drive, but this is
                                              // consistent with what Sun's JRE 1.4.1.01 actually returns!
                                              if (path.length() > 2)
                                                return drvDir + '\\' + path.substring (2, path.length());
                                    *************** final class VMFile
                                    *** 341,347 ****
                                          throws MalformedURLException
                                        {
                                          // On Win32, Sun's JDK returns URLs of the form "file:/c:/foo/bar.txt",
                                    !     // while on UNIX, it returns URLs of the form "file:/foo/bar.txt". 
                                          if (File.separatorChar == '\\')
                                            return new URL ("file:/" + file.getAbsolutePath().replace ('\\', '/')
                                                            + (file.isDirectory() ? "/" : ""));
                                    --- 341,347 ----
                                          throws MalformedURLException
                                        {
                                          // On Win32, Sun's JDK returns URLs of the form "file:/c:/foo/bar.txt",
                                    !     // while on UNIX, it returns URLs of the form "file:/foo/bar.txt".
                                          if (File.separatorChar == '\\')
                                            return new URL ("file:/" + file.getAbsolutePath().replace ('\\', '/')
                                                            + (file.isDirectory() ? "/" : ""));
                                    *************** final class VMFile
                                    *** 358,364 ****
                                         * "." and "..", and symbolic links.
                                         * <p>
                                         * Note that this method, unlike the other methods which return path
                                    !    * names, can throw an IOException.  This is because native method 
                                         * might be required in order to resolve the canonical path
                                         *
                                         * @exception IOException If an error occurs
                                    --- 358,364 ----
                                         * "." and "..", and symbolic links.
                                         * <p>
                                         * Note that this method, unlike the other methods which return path
                                    !    * names, can throw an IOException.  This is because native method
                                         * might be required in order to resolve the canonical path
                                         *
                                         * @exception IOException If an error occurs
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java gcc-4.6.0/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMObjectInputStream
                                    *** 48,54 ****
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    ! 	System.loadLibrary("javaio");
                                            }
                                        }
                                      
                                    --- 48,54 ----
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    !         System.loadLibrary("javaio");
                                            }
                                        }
                                      
                                    *************** final class VMObjectInputStream
                                    *** 59,64 ****
                                         * which is a super class of the given clazz.
                                         */
                                        static native Object allocateObject(Class clazz, Class constr_clazz,
                                    ! 				      Constructor constructor)
                                          throws InstantiationException;
                                      }
                                    --- 59,64 ----
                                         * which is a super class of the given clazz.
                                         */
                                        static native Object allocateObject(Class clazz, Class constr_clazz,
                                    !                                       Constructor constructor)
                                          throws InstantiationException;
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/io/VMObjectStreamClass.java gcc-4.6.0/libjava/classpath/vm/reference/java/io/VMObjectStreamClass.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/io/VMObjectStreamClass.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/io/VMObjectStreamClass.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** final class VMObjectStreamClass
                                    *** 47,53 ****
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    ! 	System.loadLibrary("javaio");
                                            }
                                        }
                                      
                                    --- 47,53 ----
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    !         System.loadLibrary("javaio");
                                            }
                                        }
                                      
                                    *************** final class VMObjectStreamClass
                                    *** 92,98 ****
                                         */
                                        static native void setLongNative(Field field, Object obj, long val)
                                          throws InternalError;
                                    !   
                                        /**
                                         * Sets the value of the specified field. This method handles "int".
                                         * Warning ! The types are not truely checked here and final values may be
                                    --- 92,98 ----
                                         */
                                        static native void setLongNative(Field field, Object obj, long val)
                                          throws InternalError;
                                    ! 
                                        /**
                                         * Sets the value of the specified field. This method handles "int".
                                         * Warning ! The types are not truely checked here and final values may be
                                    *************** final class VMObjectStreamClass
                                    *** 102,110 ****
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setIntNative(Field field, Object obj, int val) 
                                          throws InternalError;
                                    !   
                                        /**
                                         * Sets the value of the specified field. This method handles "short".
                                         * Warning ! The types are not truely checked here and final values may be
                                    --- 102,110 ----
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setIntNative(Field field, Object obj, int val)
                                          throws InternalError;
                                    ! 
                                        /**
                                         * Sets the value of the specified field. This method handles "short".
                                         * Warning ! The types are not truely checked here and final values may be
                                    *************** final class VMObjectStreamClass
                                    *** 114,120 ****
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setShortNative(Field field, Object obj, short val) 
                                          throws InternalError;
                                      
                                        /**
                                    --- 114,120 ----
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setShortNative(Field field, Object obj, short val)
                                          throws InternalError;
                                      
                                        /**
                                    *************** final class VMObjectStreamClass
                                    *** 126,132 ****
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setCharNative(Field field, Object obj, char val) 
                                          throws InternalError;
                                      
                                        /**
                                    --- 126,132 ----
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setCharNative(Field field, Object obj, char val)
                                          throws InternalError;
                                      
                                        /**
                                    *************** final class VMObjectStreamClass
                                    *** 138,144 ****
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setByteNative(Field field, Object obj, byte val) 
                                          throws InternalError;
                                      
                                        /**
                                    --- 138,144 ----
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setByteNative(Field field, Object obj, byte val)
                                          throws InternalError;
                                      
                                        /**
                                    *************** final class VMObjectStreamClass
                                    *** 150,156 ****
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setBooleanNative(Field field, Object obj, boolean val) 
                                          throws InternalError;
                                      
                                        /**
                                    --- 150,156 ----
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setBooleanNative(Field field, Object obj, boolean val)
                                          throws InternalError;
                                      
                                        /**
                                    *************** final class VMObjectStreamClass
                                    *** 162,169 ****
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setObjectNative(Field field, Object obj, Object val) 
                                          throws InternalError;
                                    -   
                                    - }
                                      
                                    --- 162,168 ----
                                         * @param obj Instance which will have its field set.
                                         * @param val Value to put in the field.
                                         */
                                    !   static native void setObjectNative(Field field, Object obj, Object val)
                                          throws InternalError;
                                      
                                    + }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMClass.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMClass.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMClass.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMClass.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.lang.reflect.Modifier;
                                    *** 58,64 ****
                                       * @author Tom Tromey (tromey@cygnus.com)
                                       * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
                                       */
                                    ! final class VMClass 
                                      {
                                      
                                        // Only static methods. Cannot be instantiated.
                                    --- 58,64 ----
                                       * @author Tom Tromey (tromey@cygnus.com)
                                       * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
                                       */
                                    ! final class VMClass
                                      {
                                      
                                        // Only static methods. Cannot be instantiated.
                                    *************** final class VMClass 
                                    *** 287,297 ****
                                         * <code>getName()</code> which follows the last ".".  Anonymous
                                         * classes have no name, and so the result of calling this method is
                                         * "".  The simple name of an array consists of the simple name of
                                    !    * its component type, followed by "[]".  Thus, an array with the 
                                         * component type of an anonymous class has a simple name of simply
                                         * "[]".
                                         *
                                    !    * @param klass the class whose simple name should be returned. 
                                         * @return the simple name for this class.
                                         */
                                        static String getSimpleName(Class klass)
                                    --- 287,297 ----
                                         * <code>getName()</code> which follows the last ".".  Anonymous
                                         * classes have no name, and so the result of calling this method is
                                         * "".  The simple name of an array consists of the simple name of
                                    !    * its component type, followed by "[]".  Thus, an array with the
                                         * component type of an anonymous class has a simple name of simply
                                         * "[]".
                                         *
                                    !    * @param klass the class whose simple name should be returned.
                                         * @return the simple name for this class.
                                         */
                                        static String getSimpleName(Class klass)
                                    *************** final class VMClass 
                                    *** 300,306 ****
                                            return "";
                                          if (isArray(klass))
                                            {
                                    ! 	return getComponentType(klass).getSimpleName() + "[]";
                                            }
                                          String fullName = getName(klass);
                                          int pos = fullName.lastIndexOf("$");
                                    --- 300,306 ----
                                            return "";
                                          if (isArray(klass))
                                            {
                                    !         return getComponentType(klass).getSimpleName() + "[]";
                                            }
                                          String fullName = getName(klass);
                                          int pos = fullName.lastIndexOf("$");
                                    *************** final class VMClass 
                                    *** 308,316 ****
                                            pos = 0;
                                          else
                                            {
                                    ! 	++pos;
                                    ! 	while (Character.isDigit(fullName.charAt(pos)))
                                    ! 	  ++pos;
                                            }
                                          int packagePos = fullName.lastIndexOf(".", pos);
                                          if (packagePos == -1)
                                    --- 308,316 ----
                                            pos = 0;
                                          else
                                            {
                                    !         ++pos;
                                    !         while (Character.isDigit(fullName.charAt(pos)))
                                    !           ++pos;
                                            }
                                          int packagePos = fullName.lastIndexOf(".", pos);
                                          if (packagePos == -1)
                                    *************** final class VMClass 
                                    *** 346,352 ****
                                         * The canonical name for top-level classes, top-level interfaces and
                                         * primitive types is always the same as the fully-qualified name.
                                         * For array types, the canonical name is the canonical name of its
                                    !    * component type with `[]' appended.  
                                         * </p>
                                         * <p>
                                         * The canonical name of a member class always refers to the place where
                                    --- 346,352 ----
                                         * The canonical name for top-level classes, top-level interfaces and
                                         * primitive types is always the same as the fully-qualified name.
                                         * For array types, the canonical name is the canonical name of its
                                    !    * component type with `[]' appended.
                                         * </p>
                                         * <p>
                                         * The canonical name of a member class always refers to the place where
                                    *************** final class VMClass 
                                    *** 374,390 ****
                                            return null;
                                          if (isArray(klass))
                                            {
                                    ! 	String componentName = getComponentType(klass).getCanonicalName();
                                    ! 	if (componentName != null)
                                    ! 	  return componentName + "[]";
                                            }
                                          if (isMemberClass(klass))
                                            {
                                    ! 	String memberName = getDeclaringClass(klass).getCanonicalName();
                                    ! 	if (memberName != null)
                                    ! 	  return memberName + "." + getSimpleName(klass);
                                    ! 	else
                                    ! 	  return memberName;
                                            }
                                          return getName(klass);
                                        }
                                    --- 374,390 ----
                                            return null;
                                          if (isArray(klass))
                                            {
                                    !         String componentName = getComponentType(klass).getCanonicalName();
                                    !         if (componentName != null)
                                    !           return componentName + "[]";
                                            }
                                          if (isMemberClass(klass))
                                            {
                                    !         String memberName = getDeclaringClass(klass).getCanonicalName();
                                    !         if (memberName != null)
                                    !           return memberName + "." + getSimpleName(klass);
                                    !         else
                                    !           return memberName;
                                            }
                                          return getName(klass);
                                        }
                                    *************** final class VMClass 
                                    *** 402,408 ****
                                      
                                        /**
                                         * Returns the constructor which immediately encloses the specified class.
                                    !    * If the class is a top-level class, or a local or anonymous class 
                                         * immediately enclosed by a type definition, instance initializer
                                         * or static initializer, then <code>null</code> is returned.
                                         *
                                    --- 402,408 ----
                                      
                                        /**
                                         * Returns the constructor which immediately encloses the specified class.
                                    !    * If the class is a top-level class, or a local or anonymous class
                                         * immediately enclosed by a type definition, instance initializer
                                         * or static initializer, then <code>null</code> is returned.
                                         *
                                    *************** final class VMClass 
                                    *** 416,422 ****
                                      
                                        /**
                                         * Returns the method which immediately encloses the specified class.  If
                                    !    * the class is a top-level class, or a local or anonymous class 
                                         * immediately enclosed by a type definition, instance initializer
                                         * or static initializer, then <code>null</code> is returned.
                                         *
                                    --- 416,422 ----
                                      
                                        /**
                                         * Returns the method which immediately encloses the specified class.  If
                                    !    * the class is a top-level class, or a local or anonymous class
                                         * immediately enclosed by a type definition, instance initializer
                                         * or static initializer, then <code>null</code> is returned.
                                         *
                                    *************** final class VMClass 
                                    *** 460,466 ****
                                        /**
                                         * Returns true if the specified class represents an member class.
                                         *
                                    !    * @param klass the klass to test. 
                                         * @return true if the specified class represents an member class.
                                         * @since 1.5
                                         */
                                    --- 460,466 ----
                                        /**
                                         * Returns true if the specified class represents an member class.
                                         *
                                    !    * @param klass the klass to test.
                                         * @return true if the specified class represents an member class.
                                         * @since 1.5
                                         */
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMClassLoader.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMClassLoader.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMClassLoader.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMClassLoader.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMClassLoader
                                    *** 77,83 ****
                                      
                                        /** jars from property java.boot.class.path */
                                        static final HashMap bootjars = new HashMap();
                                    !   
                                      
                                        /**
                                         * Converts the array string of native package names to
                                    --- 77,83 ----
                                      
                                        /** jars from property java.boot.class.path */
                                        static final HashMap bootjars = new HashMap();
                                    ! 
                                      
                                        /**
                                         * Converts the array string of native package names to
                                    *************** final class VMClassLoader
                                    *** 87,104 ****
                                        static
                                        {
                                          String[] packages = getBootPackages();
                                    !     
                                          if( packages != null)
                                            {
                                    !         String specName = 
                                                    SystemProperties.getProperty("java.specification.name");
                                              String vendor =
                                                    SystemProperties.getProperty("java.specification.vendor");
                                              String version =
                                                    SystemProperties.getProperty("java.specification.version");
                                    !         
                                              Package p;
                                    !               
                                              for(int i = 0; i < packages.length; i++)
                                                {
                                                  p = new Package(packages[i],
                                    --- 87,104 ----
                                        static
                                        {
                                          String[] packages = getBootPackages();
                                    ! 
                                          if( packages != null)
                                            {
                                    !         String specName =
                                                    SystemProperties.getProperty("java.specification.name");
                                              String vendor =
                                                    SystemProperties.getProperty("java.specification.vendor");
                                              String version =
                                                    SystemProperties.getProperty("java.specification.version");
                                    ! 
                                              Package p;
                                    ! 
                                              for(int i = 0; i < packages.length; i++)
                                                {
                                                  p = new Package(packages[i],
                                    *************** final class VMClassLoader
                                    *** 116,122 ****
                                            }
                                        }
                                      
                                    !   
                                        /**
                                         * Helper to define a class using a string of bytes. This assumes that
                                         * the security checks have already been performed, if necessary.
                                    --- 116,122 ----
                                            }
                                        }
                                      
                                    ! 
                                        /**
                                         * Helper to define a class using a string of bytes. This assumes that
                                         * the security checks have already been performed, if necessary.
                                    *************** final class VMClassLoader
                                    *** 186,208 ****
                                          Vector v = new Vector();
                                          while (st.hasMoreTokens())
                                            {
                                    ! 	File file = new File(st.nextToken());
                                    ! 	if (file.isDirectory())
                                    ! 	  {
                                    ! 	    try
                                    ! 	      {
                                                      File f = new File(file, name);
                                                      if (!f.exists()) continue;
                                                      v.add(new URL("file://" + f.getAbsolutePath()));
                                    ! 	      }
                                    ! 	    catch (MalformedURLException e)
                                    ! 	      {
                                    ! 		throw new Error(e);
                                    ! 	      }
                                    ! 	  }
                                    ! 	else if (file.isFile())
                                    ! 	  {
                                    ! 	    ZipFile zip;
                                                  synchronized(bootjars)
                                                    {
                                                      zip = (ZipFile) bootjars.get(file.getName());
                                    --- 186,208 ----
                                          Vector v = new Vector();
                                          while (st.hasMoreTokens())
                                            {
                                    !         File file = new File(st.nextToken());
                                    !         if (file.isDirectory())
                                    !           {
                                    !             try
                                    !               {
                                                      File f = new File(file, name);
                                                      if (!f.exists()) continue;
                                                      v.add(new URL("file://" + f.getAbsolutePath()));
                                    !               }
                                    !             catch (MalformedURLException e)
                                    !               {
                                    !                 throw new Error(e);
                                    !               }
                                    !           }
                                    !         else if (file.isFile())
                                    !           {
                                    !             ZipFile zip;
                                                  synchronized(bootjars)
                                                    {
                                                      zip = (ZipFile) bootjars.get(file.getName());
                                    *************** final class VMClassLoader
                                    *** 210,240 ****
                                                  if(zip == null)
                                                    {
                                                      try
                                    ! 	          {
                                                          zip = new ZipFile(file);
                                                          synchronized(bootjars)
                                                            {
                                                              bootjars.put(file.getName(), zip);
                                                            }
                                    ! 	          }
                                    ! 	        catch (IOException e)
                                    ! 	          {
                                    ! 		    continue;
                                    ! 	          }
                                                    }
                                    ! 	    String zname = name.startsWith("/") ? name.substring(1) : name;
                                    ! 	    if (zip.getEntry(zname) == null)
                                    ! 	      continue;
                                    ! 	    try
                                    ! 	      {
                                    ! 		v.add(new URL("jar:file://"
                                    ! 		  + file.getAbsolutePath() + "!/" + zname));
                                    ! 	      }
                                    ! 	    catch (MalformedURLException e)
                                    ! 	      {
                                    ! 		throw new Error(e);
                                    ! 	      }
                                    ! 	  }
                                            }
                                          return v.elements();
                                        }
                                    --- 210,240 ----
                                                  if(zip == null)
                                                    {
                                                      try
                                    !                   {
                                                          zip = new ZipFile(file);
                                                          synchronized(bootjars)
                                                            {
                                                              bootjars.put(file.getName(), zip);
                                                            }
                                    !                   }
                                    !                 catch (IOException e)
                                    !                   {
                                    !                     continue;
                                    !                   }
                                                    }
                                    !             String zname = name.startsWith("/") ? name.substring(1) : name;
                                    !             if (zip.getEntry(zname) == null)
                                    !               continue;
                                    !             try
                                    !               {
                                    !                 v.add(new URL("jar:file://"
                                    !                   + file.getAbsolutePath() + "!/" + zname));
                                    !               }
                                    !             catch (MalformedURLException e)
                                    !               {
                                    !                 throw new Error(e);
                                    !               }
                                    !           }
                                            }
                                          return v.elements();
                                        }
                                    *************** final class VMClassLoader
                                    *** 297,305 ****
                                        }
                                      
                                      
                                    !   
                                        /**
                                    !    * Helper to get all packages from the bootstrap class loader.  
                                         *
                                         * @return all named packages, if any exist
                                         */
                                    --- 297,305 ----
                                        }
                                      
                                      
                                    ! 
                                        /**
                                    !    * Helper to get all packages from the bootstrap class loader.
                                         *
                                         * @return all named packages, if any exist
                                         */
                                    *************** final class VMClassLoader
                                    *** 410,416 ****
                                        static final Class defineClassWithTransformers(ClassLoader loader,
                                            String name, byte[] data, int offset, int len, ProtectionDomain pd)
                                        {
                                    !     
                                          if (instrumenter != null)
                                            {
                                              byte[] modifiedData = new byte[len];
                                    --- 410,416 ----
                                        static final Class defineClassWithTransformers(ClassLoader loader,
                                            String name, byte[] data, int offset, int len, ProtectionDomain pd)
                                        {
                                    ! 
                                          if (instrumenter != null)
                                            {
                                              byte[] modifiedData = new byte[len];
                                    *************** final class VMClassLoader
                                    *** 419,425 ****
                                              modifiedData =
                                                ((InstrumentationImpl)instrumenter).callTransformers(loader, jvmName,
                                                  null, pd, modifiedData);
                                    !         
                                              return defineClass(loader, name, modifiedData, 0, modifiedData.length,
                                                  pd);
                                            }
                                    --- 419,425 ----
                                              modifiedData =
                                                ((InstrumentationImpl)instrumenter).callTransformers(loader, jvmName,
                                                  null, pd, modifiedData);
                                    ! 
                                              return defineClass(loader, name, modifiedData, 0, modifiedData.length,
                                                  pd);
                                            }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMDouble.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMDouble.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMDouble.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMDouble.java	Tue Jan 11 19:46:05 2011
                                    *************** import gnu.classpath.Configuration;
                                    *** 46,52 ****
                                       */
                                      
                                      /**
                                    !  * Code relocated from java.lang.Double by 
                                       * @author Dave Grove (groved@us.ibm.com)
                                       */
                                      final class VMDouble
                                    --- 46,52 ----
                                       */
                                      
                                      /**
                                    !  * Code relocated from java.lang.Double by
                                       * @author Dave Grove (groved@us.ibm.com)
                                       */
                                      final class VMDouble
                                    *************** final class VMDouble
                                    *** 59,65 ****
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    ! 	System.loadLibrary("javalang");
                                            }
                                      
                                          initIDs();
                                    --- 59,65 ----
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    !         System.loadLibrary("javalang");
                                            }
                                      
                                          initIDs();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMFloat.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMFloat.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMFloat.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMFloat.java	Tue Jan 11 19:46:05 2011
                                    *************** import gnu.classpath.Configuration;
                                    *** 46,52 ****
                                       */
                                      
                                      /**
                                    !  * Code relocated from java.lang.Float by 
                                       * @author Dave Grove <groved@us.ibm.com>
                                       */
                                      final class VMFloat
                                    --- 46,52 ----
                                       */
                                      
                                      /**
                                    !  * Code relocated from java.lang.Float by
                                       * @author Dave Grove <groved@us.ibm.com>
                                       */
                                      final class VMFloat
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMMath.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMMath.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMMath.java	Fri Mar 10 21:46:48 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMMath.java	Tue Jan 11 19:46:05 2011
                                    *************** class VMMath
                                    *** 47,53 ****
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    ! 	System.loadLibrary("javalang");
                                            }
                                        }
                                      
                                    --- 47,53 ----
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    !         System.loadLibrary("javalang");
                                            }
                                        }
                                      
                                    *************** class VMMath
                                    *** 330,336 ****
                                         * the original value is returned.  The returned result must be within 1 ulp
                                         * of the exact result.  For a finite value, <code>x</code>, the cube root
                                         * of <code>-x</code> is equal to the negation of the cube root
                                    !    * of <code>x</code>. 
                                         * </p>
                                         * <p>
                                         * For a square root, use <code>sqrt</code>.  For other roots, use
                                    --- 330,336 ----
                                         * the original value is returned.  The returned result must be within 1 ulp
                                         * of the exact result.  For a finite value, <code>x</code>, the cube root
                                         * of <code>-x</code> is equal to the negation of the cube root
                                    !    * of <code>x</code>.
                                         * </p>
                                         * <p>
                                         * For a square root, use <code>sqrt</code>.  For other roots, use
                                    *************** class VMMath
                                    *** 347,353 ****
                                        /**
                                         * <p>
                                         * Returns the hyperbolic cosine of the given value.  For a value,
                                    !    * <code>x</code>, the hyperbolic cosine is <code>(e<sup>x</sup> + 
                                         * e<sup>-x</sup>)/2</code>
                                         * with <code>e</code> being <a href="#E">Euler's number</a>.  The returned
                                         * result must be within 2.5 ulps of the exact result.
                                    --- 347,353 ----
                                        /**
                                         * <p>
                                         * Returns the hyperbolic cosine of the given value.  For a value,
                                    !    * <code>x</code>, the hyperbolic cosine is <code>(e<sup>x</sup> +
                                         * e<sup>-x</sup>)/2</code>
                                         * with <code>e</code> being <a href="#E">Euler's number</a>.  The returned
                                         * result must be within 2.5 ulps of the exact result.
                                    *************** class VMMath
                                    *** 357,363 ****
                                         * returned.  For either infinity, positive infinity is returned.
                                         * The hyperbolic cosine of zero must be 1.0.
                                         * </p>
                                    !    * 
                                         * @param a the numeric argument
                                         * @return the hyperbolic cosine of <code>a</code>.
                                         * @since 1.5
                                    --- 357,363 ----
                                         * returned.  For either infinity, positive infinity is returned.
                                         * The hyperbolic cosine of zero must be 1.0.
                                         * </p>
                                    !    *
                                         * @param a the numeric argument
                                         * @return the hyperbolic cosine of <code>a</code>.
                                         * @since 1.5
                                    *************** class VMMath
                                    *** 372,383 ****
                                         * 1 ulp of the exact result, and results must be semi-monotonic.  For finite
                                         * inputs, the returned value must be greater than or equal to -1.0.  Once
                                         * a result enters within half a ulp of this limit, the limit is returned.
                                    !    * </p>   
                                         * <p>
                                         * For <code>NaN</code>, positive infinity and zero, the original value
                                         * is returned.  Negative infinity returns a result of -1.0 (the limit).
                                         * </p>
                                    !    * 
                                         * @param a the numeric argument
                                         * @return <code>e<sup>a</sup> - 1</code>
                                         * @since 1.5
                                    --- 372,383 ----
                                         * 1 ulp of the exact result, and results must be semi-monotonic.  For finite
                                         * inputs, the returned value must be greater than or equal to -1.0.  Once
                                         * a result enters within half a ulp of this limit, the limit is returned.
                                    !    * </p>
                                         * <p>
                                         * For <code>NaN</code>, positive infinity and zero, the original value
                                         * is returned.  Negative infinity returns a result of -1.0 (the limit).
                                         * </p>
                                    !    *
                                         * @param a the numeric argument
                                         * @return <code>e<sup>a</sup> - 1</code>
                                         * @since 1.5
                                    *************** class VMMath
                                    *** 396,402 ****
                                         * is positive infinity.  Otherwise, if either argument is <code>NaN</code>,
                                         * then <code>NaN</code> is returned.
                                         * </p>
                                    !    * 
                                         * @param a the first parameter.
                                         * @param b the second parameter.
                                         * @return the hypotenuse matching the supplied parameters.
                                    --- 396,402 ----
                                         * is positive infinity.  Otherwise, if either argument is <code>NaN</code>,
                                         * then <code>NaN</code> is returned.
                                         * </p>
                                    !    *
                                         * @param a the first parameter.
                                         * @param b the second parameter.
                                         * @return the hypotenuse matching the supplied parameters.
                                    *************** class VMMath
                                    *** 449,455 ****
                                        /**
                                         * <p>
                                         * Returns the hyperbolic sine of the given value.  For a value,
                                    !    * <code>x</code>, the hyperbolic sine is <code>(e<sup>x</sup> - 
                                         * e<sup>-x</sup>)/2</code>
                                         * with <code>e</code> being <a href="#E">Euler's number</a>.  The returned
                                         * result must be within 2.5 ulps of the exact result.
                                    --- 449,455 ----
                                        /**
                                         * <p>
                                         * Returns the hyperbolic sine of the given value.  For a value,
                                    !    * <code>x</code>, the hyperbolic sine is <code>(e<sup>x</sup> -
                                         * e<sup>-x</sup>)/2</code>
                                         * with <code>e</code> being <a href="#E">Euler's number</a>.  The returned
                                         * result must be within 2.5 ulps of the exact result.
                                    *************** class VMMath
                                    *** 458,464 ****
                                         * If the supplied value is <code>NaN</code>, an infinity or a zero, then the
                                         * original value is returned.
                                         * </p>
                                    !    * 
                                         * @param a the numeric argument
                                         * @return the hyperbolic sine of <code>a</code>.
                                         * @since 1.5
                                    --- 458,464 ----
                                         * If the supplied value is <code>NaN</code>, an infinity or a zero, then the
                                         * original value is returned.
                                         * </p>
                                    !    *
                                         * @param a the numeric argument
                                         * @return the hyperbolic sine of <code>a</code>.
                                         * @since 1.5
                                    *************** class VMMath
                                    *** 468,474 ****
                                        /**
                                         * <p>
                                         * Returns the hyperbolic tangent of the given value.  For a value,
                                    !    * <code>x</code>, the hyperbolic tangent is <code>(e<sup>x</sup> - 
                                         * e<sup>-x</sup>)/(e<sup>x</sup> + e<sup>-x</sup>)</code>
                                         * (i.e. <code>sinh(a)/cosh(a)</code>)
                                         * with <code>e</code> being <a href="#E">Euler's number</a>.  The returned
                                    --- 468,474 ----
                                        /**
                                         * <p>
                                         * Returns the hyperbolic tangent of the given value.  For a value,
                                    !    * <code>x</code>, the hyperbolic tangent is <code>(e<sup>x</sup> -
                                         * e<sup>-x</sup>)/(e<sup>x</sup> + e<sup>-x</sup>)</code>
                                         * (i.e. <code>sinh(a)/cosh(a)</code>)
                                         * with <code>e</code> being <a href="#E">Euler's number</a>.  The returned
                                    *************** class VMMath
                                    *** 483,489 ****
                                         * value is returned.  Positive infinity returns +1.0 and negative infinity
                                         * returns -1.0.
                                         * </p>
                                    !    * 
                                         * @param a the numeric argument
                                         * @return the hyperbolic tangent of <code>a</code>.
                                         * @since 1.5
                                    --- 483,489 ----
                                         * value is returned.  Positive infinity returns +1.0 and negative infinity
                                         * returns -1.0.
                                         * </p>
                                    !    *
                                         * @param a the numeric argument
                                         * @return the hyperbolic tangent of <code>a</code>.
                                         * @since 1.5
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMObject.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMObject.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMObject.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMObject.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMObject
                                    *** 54,60 ****
                                         * @return the class of the Object.
                                         */
                                        static native Class getClass(Object obj);
                                    !   
                                        /**
                                         * The VM is expected to make a field-for-field shallow copy of the
                                         * argument. Thus, the copy has the same runtime type as the argument.
                                    --- 54,60 ----
                                         * @return the class of the Object.
                                         */
                                        static native Class getClass(Object obj);
                                    ! 
                                        /**
                                         * The VM is expected to make a field-for-field shallow copy of the
                                         * argument. Thus, the copy has the same runtime type as the argument.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMProcess.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMProcess.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMProcess.java	Thu May 18 17:29:21 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMProcess.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMProcess extends Process
                                    *** 85,101 ****
                                        static int reapedExitValue;
                                      
                                        // Information about this process
                                    !   int state;				       // current state of process
                                    !   final String[] cmd;			       // copied from Runtime.exec()
                                    !   final String[] env;			       // copied from Runtime.exec()
                                    !   final File dir;			       // copied from Runtime.exec()
                                    !   Throwable exception;			       // if process failed to start
                                    !   long pid;				       // process id
                                    !   OutputStream stdin;			       // process input stream
                                    !   InputStream stdout;			       // process output stream
                                    !   InputStream stderr;			       // process error stream
                                    !   int exitValue;			       // process exit value
                                    !   boolean redirect;			       // redirect stderr -> stdout
                                      
                                        //
                                        // Dedicated thread that does all the fork()'ing and wait()'ing
                                    --- 85,101 ----
                                        static int reapedExitValue;
                                      
                                        // Information about this process
                                    !   int state;                                   // current state of process
                                    !   final String[] cmd;                          // copied from Runtime.exec()
                                    !   final String[] env;                          // copied from Runtime.exec()
                                    !   final File dir;                              // copied from Runtime.exec()
                                    !   Throwable exception;                         // if process failed to start
                                    !   long pid;                                    // process id
                                    !   OutputStream stdin;                          // process input stream
                                    !   InputStream stdout;                          // process output stream
                                    !   InputStream stderr;                          // process error stream
                                    !   int exitValue;                               // process exit value
                                    !   boolean redirect;                            // redirect stderr -> stdout
                                      
                                        //
                                        // Dedicated thread that does all the fork()'ing and wait()'ing
                                    *************** final class VMProcess extends Process
                                    *** 125,221 ****
                                          {
                                            final LinkedList workList = VMProcess.workList;
                                            while (true)
                                    ! 	{
                                      
                                    ! 	  // Get the next process to spawn (if any) and spawn it. Spawn
                                    ! 	  // at most one at a time before checking for reapable children.
                                    ! 	  VMProcess process = null;
                                    ! 	  synchronized (workList)
                                    ! 	    {
                                    ! 	      if (!workList.isEmpty())
                                    ! 		process = (VMProcess)workList.removeFirst();
                                    ! 	    }
                                      
                                    ! 	  if (process != null)
                                    ! 	    spawn(process);
                                      
                                      
                                    ! 	  // Check for termination of active child processes
                                    ! 	  while (!activeMap.isEmpty() && VMProcess.nativeReap())
                                    ! 	    {
                                    ! 	      long pid = VMProcess.reapedPid;
                                    ! 	      int exitValue = VMProcess.reapedExitValue;
                                    ! 	      process = (VMProcess)activeMap.remove(new Long(pid));
                                    ! 	      if (process != null)
                                    ! 		{
                                    ! 		  synchronized (process)
                                    ! 		    {
                                    ! 		      process.exitValue = exitValue;
                                    ! 		      process.state = TERMINATED;
                                    ! 		      process.notify();
                                    ! 		    }
                                    ! 		}
                                    ! 	      else
                                    ! 		System.err.println("VMProcess WARNING reaped unknown process: "
                                    ! 				   + pid);
                                    ! 	    }
                                      
                                      
                                    ! 	  // If there are more new processes to create, go do that now.
                                    ! 	  // If there is nothing left to do, exit this thread. Otherwise,
                                    ! 	  // sleep a little while, and then check again for reapable children.
                                    ! 	  // We will get woken up immediately if there are new processes to
                                    ! 	  // spawn, but not if there are new children to reap. So we only
                                    ! 	  // sleep a short time, in effect polling while processes are active.
                                    ! 	  synchronized (workList)
                                    ! 	    {
                                    ! 	      if (!workList.isEmpty())
                                    ! 		continue;
                                    ! 	      if (activeMap.isEmpty())
                                    ! 		{
                                    ! 		  processThread = null;
                                    ! 		  break;
                                    ! 		}
                                    ! 	
                                    ! 	      try
                                    ! 		{
                                    ! 		  workList.wait(MAX_REAP_DELAY);
                                    ! 		}
                                    ! 	      catch (InterruptedException e)
                                    ! 		{
                                    ! 		  /* ignore */
                                    ! 		}
                                    ! 	    }
                                    ! 	}
                                          }
                                      
                                          // Spawn a process
                                          private void spawn(VMProcess process)
                                          {
                                    !       
                                            // Spawn the process and put it in our active map indexed by pid.
                                            // If the spawn operation fails, store the exception with the process.
                                            // In either case, wake up thread that created the process.
                                            synchronized (process)
                                    ! 	{
                                    ! 	  try
                                    ! 	    {
                                    ! 	      process.nativeSpawn(process.cmd, process.env, process.dir,
                                    ! 				  process.redirect);
                                    ! 	      process.state = RUNNING;
                                    ! 	      activeMap.put(new Long(process.pid), process);
                                    ! 	    }
                                                catch (ThreadDeath death)
                                                  {
                                                    throw death;
                                                  }
                                    ! 	  catch (Throwable t)
                                    ! 	    {
                                    ! 	      process.state = TERMINATED;
                                    ! 	      process.exception = t;
                                    ! 	    }
                                    ! 	  process.notify();
                                    ! 	}
                                          }
                                        }
                                      
                                    --- 125,221 ----
                                          {
                                            final LinkedList workList = VMProcess.workList;
                                            while (true)
                                    !         {
                                      
                                    !           // Get the next process to spawn (if any) and spawn it. Spawn
                                    !           // at most one at a time before checking for reapable children.
                                    !           VMProcess process = null;
                                    !           synchronized (workList)
                                    !             {
                                    !               if (!workList.isEmpty())
                                    !                 process = (VMProcess)workList.removeFirst();
                                    !             }
                                      
                                    !           if (process != null)
                                    !             spawn(process);
                                      
                                      
                                    !           // Check for termination of active child processes
                                    !           while (!activeMap.isEmpty() && VMProcess.nativeReap())
                                    !             {
                                    !               long pid = VMProcess.reapedPid;
                                    !               int exitValue = VMProcess.reapedExitValue;
                                    !               process = (VMProcess)activeMap.remove(new Long(pid));
                                    !               if (process != null)
                                    !                 {
                                    !                   synchronized (process)
                                    !                     {
                                    !                       process.exitValue = exitValue;
                                    !                       process.state = TERMINATED;
                                    !                       process.notify();
                                    !                     }
                                    !                 }
                                    !               else
                                    !                 System.err.println("VMProcess WARNING reaped unknown process: "
                                    !                                    + pid);
                                    !             }
                                      
                                      
                                    !           // If there are more new processes to create, go do that now.
                                    !           // If there is nothing left to do, exit this thread. Otherwise,
                                    !           // sleep a little while, and then check again for reapable children.
                                    !           // We will get woken up immediately if there are new processes to
                                    !           // spawn, but not if there are new children to reap. So we only
                                    !           // sleep a short time, in effect polling while processes are active.
                                    !           synchronized (workList)
                                    !             {
                                    !               if (!workList.isEmpty())
                                    !                 continue;
                                    !               if (activeMap.isEmpty())
                                    !                 {
                                    !                   processThread = null;
                                    !                   break;
                                    !                 }
                                    ! 
                                    !               try
                                    !                 {
                                    !                   workList.wait(MAX_REAP_DELAY);
                                    !                 }
                                    !               catch (InterruptedException e)
                                    !                 {
                                    !                   /* ignore */
                                    !                 }
                                    !             }
                                    !         }
                                          }
                                      
                                          // Spawn a process
                                          private void spawn(VMProcess process)
                                          {
                                    ! 
                                            // Spawn the process and put it in our active map indexed by pid.
                                            // If the spawn operation fails, store the exception with the process.
                                            // In either case, wake up thread that created the process.
                                            synchronized (process)
                                    !         {
                                    !           try
                                    !             {
                                    !               process.nativeSpawn(process.cmd, process.env, process.dir,
                                    !                                   process.redirect);
                                    !               process.state = RUNNING;
                                    !               activeMap.put(new Long(process.pid), process);
                                    !             }
                                                catch (ThreadDeath death)
                                                  {
                                                    throw death;
                                                  }
                                    !           catch (Throwable t)
                                    !             {
                                    !               process.state = TERMINATED;
                                    !               process.exception = t;
                                    !             }
                                    !           process.notify();
                                    !         }
                                          }
                                        }
                                      
                                    *************** final class VMProcess extends Process
                                    *** 223,299 ****
                                        private VMProcess(String[] cmd, String[] env, File dir, boolean redirect)
                                          throws IOException
                                        {
                                    !     
                                          // Initialize this process
                                          this.state = INITIAL;
                                          this.cmd = cmd;
                                          this.env = env;
                                          this.dir = dir;
                                          this.redirect = redirect;
                                    !   
                                          // Add process to the new process work list and wakeup processThread
                                          synchronized (workList)
                                            {
                                    ! 	workList.add(this);
                                    ! 	if (processThread == null)
                                    ! 	  {
                                    ! 	    processThread = new ProcessThread();
                                    ! 	    processThread.setDaemon(true);
                                    ! 	    processThread.start();
                                    ! 	  }
                                    ! 	else
                                    ! 	  {
                                    ! 	    workList.notify();
                                    ! 	  }
                                            }
                                      
                                          // Wait for processThread to spawn this process and update its state
                                          synchronized (this)
                                            {
                                    ! 	while (state == INITIAL)
                                    ! 	  {
                                    ! 	    try
                                    ! 	      {
                                    ! 		wait();
                                    ! 	      }
                                    ! 	    catch (InterruptedException e)
                                    ! 	      {
                                    ! 		/* ignore */
                                    ! 	      }
                                    ! 	  }
                                            }
                                      
                                          // If spawning failed, rethrow the exception in this thread
                                          if (exception != null)
                                            {
                                    ! 	exception.fillInStackTrace();
                                    ! 	if (exception instanceof IOException)
                                    ! 	  throw (IOException)exception;
                                      
                                    ! 	if (exception instanceof Error)
                                    ! 	  throw (Error)exception;
                                      
                                    ! 	if (exception instanceof RuntimeException)
                                    ! 	  throw (RuntimeException)exception;
                                      
                                    ! 	throw new RuntimeException(exception);
                                            }
                                        }
                                      
                                        // Invoked by native code (from nativeSpawn()) to record process info.
                                        private void setProcessInfo(OutputStream stdin,
                                    ! 			      InputStream stdout, InputStream stderr, long pid)
                                        {
                                          this.stdin = stdin;
                                          this.stdout = stdout;
                                          if (stderr == null)
                                            this.stderr = new InputStream()
                                    ! 	{
                                    ! 	  public int read() throws IOException
                                    ! 	  {
                                    ! 	    return -1;
                                    ! 	  }
                                    ! 	};
                                          else
                                            this.stderr = stderr;
                                          this.pid = pid;
                                    --- 223,299 ----
                                        private VMProcess(String[] cmd, String[] env, File dir, boolean redirect)
                                          throws IOException
                                        {
                                    ! 
                                          // Initialize this process
                                          this.state = INITIAL;
                                          this.cmd = cmd;
                                          this.env = env;
                                          this.dir = dir;
                                          this.redirect = redirect;
                                    ! 
                                          // Add process to the new process work list and wakeup processThread
                                          synchronized (workList)
                                            {
                                    !         workList.add(this);
                                    !         if (processThread == null)
                                    !           {
                                    !             processThread = new ProcessThread();
                                    !             processThread.setDaemon(true);
                                    !             processThread.start();
                                    !           }
                                    !         else
                                    !           {
                                    !             workList.notify();
                                    !           }
                                            }
                                      
                                          // Wait for processThread to spawn this process and update its state
                                          synchronized (this)
                                            {
                                    !         while (state == INITIAL)
                                    !           {
                                    !             try
                                    !               {
                                    !                 wait();
                                    !               }
                                    !             catch (InterruptedException e)
                                    !               {
                                    !                 /* ignore */
                                    !               }
                                    !           }
                                            }
                                      
                                          // If spawning failed, rethrow the exception in this thread
                                          if (exception != null)
                                            {
                                    !         exception.fillInStackTrace();
                                    !         if (exception instanceof IOException)
                                    !           throw (IOException)exception;
                                      
                                    !         if (exception instanceof Error)
                                    !           throw (Error)exception;
                                      
                                    !         if (exception instanceof RuntimeException)
                                    !           throw (RuntimeException)exception;
                                      
                                    !         throw new RuntimeException(exception);
                                            }
                                        }
                                      
                                        // Invoked by native code (from nativeSpawn()) to record process info.
                                        private void setProcessInfo(OutputStream stdin,
                                    !                               InputStream stdout, InputStream stderr, long pid)
                                        {
                                          this.stdin = stdin;
                                          this.stdout = stdout;
                                          if (stderr == null)
                                            this.stderr = new InputStream()
                                    !         {
                                    !           public int read() throws IOException
                                    !           {
                                    !             return -1;
                                    !           }
                                    !         };
                                          else
                                            this.stderr = stderr;
                                          this.pid = pid;
                                    *************** final class VMProcess extends Process
                                    *** 308,314 ****
                                        }
                                      
                                        static Process exec(List cmd, Map env,
                                    ! 		      File dir, boolean redirect) throws IOException
                                        {
                                          String[] acmd = (String[]) cmd.toArray(new String[cmd.size()]);
                                          String[] aenv = new String[env.size()];
                                    --- 308,314 ----
                                        }
                                      
                                        static Process exec(List cmd, Map env,
                                    !                       File dir, boolean redirect) throws IOException
                                        {
                                          String[] acmd = (String[]) cmd.toArray(new String[cmd.size()]);
                                          String[] aenv = new String[env.size()];
                                    *************** final class VMProcess extends Process
                                    *** 317,324 ****
                                          Iterator iter = env.entrySet().iterator();
                                          while (iter.hasNext())
                                            {
                                    ! 	Map.Entry entry = (Map.Entry) iter.next();
                                    ! 	aenv[i++] = entry.getKey() + "=" + entry.getValue();
                                            }
                                      
                                          return new VMProcess(acmd, aenv, dir, redirect);
                                    --- 317,324 ----
                                          Iterator iter = env.entrySet().iterator();
                                          while (iter.hasNext())
                                            {
                                    !         Map.Entry entry = (Map.Entry) iter.next();
                                    !         aenv[i++] = entry.getKey() + "=" + entry.getValue();
                                            }
                                      
                                          return new VMProcess(acmd, aenv, dir, redirect);
                                    *************** final class VMProcess extends Process
                                    *** 359,375 ****
                                            return;
                                      
                                          nativeKill(pid);
                                    !     
                                          while (state != TERMINATED)
                                            {
                                    ! 	try
                                    ! 	  {
                                    ! 	    wait();
                                    ! 	  }
                                    ! 	catch (InterruptedException e)
                                    ! 	  {
                                    ! 	    /* ignore */
                                    ! 	  }
                                            }
                                        }
                                      
                                    --- 359,375 ----
                                            return;
                                      
                                          nativeKill(pid);
                                    ! 
                                          while (state != TERMINATED)
                                            {
                                    !         try
                                    !           {
                                    !             wait();
                                    !           }
                                    !         catch (InterruptedException e)
                                    !           {
                                    !             /* ignore */
                                    !           }
                                            }
                                        }
                                      
                                    *************** final class VMProcess extends Process
                                    *** 381,387 ****
                                         * @throws IOException if the O/S process could not be created.
                                         */
                                        native void nativeSpawn(String[] cmd, String[] env, File dir,
                                    ! 			  boolean redirect)
                                          throws IOException;
                                      
                                        /**
                                    --- 381,387 ----
                                         * @throws IOException if the O/S process could not be created.
                                         */
                                        native void nativeSpawn(String[] cmd, String[] env, File dir,
                                    !                           boolean redirect)
                                          throws IOException;
                                      
                                        /**
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMRuntime.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMRuntime.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMRuntime.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMRuntime.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMRuntime
                                    *** 50,56 ****
                                          /**
                                           * No instance is ever created.
                                           */
                                    !     private VMRuntime() 
                                          {
                                          }
                                      
                                    --- 50,56 ----
                                          /**
                                           * No instance is ever created.
                                           */
                                    !     private VMRuntime()
                                          {
                                          }
                                      
                                    *************** final class VMRuntime
                                    *** 177,183 ****
                                           * @throws NullPointerException if cmd or env have null elements
                                           */
                                          static Process exec(String[] cmd, String[] env, File dir)
                                    ! 	throws IOException {
                                            return VMProcess.exec(cmd, env, dir);
                                          }
                                      
                                    --- 177,183 ----
                                           * @throws NullPointerException if cmd or env have null elements
                                           */
                                          static Process exec(String[] cmd, String[] env, File dir)
                                    !         throws IOException {
                                            return VMProcess.exec(cmd, env, dir);
                                          }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMString.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMString.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMString.java	Fri Sep 23 17:31:48 2005
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMString.java	Tue Jan 11 19:46:05 2011
                                    *************** import java.util.WeakHashMap;
                                    *** 47,53 ****
                                       */
                                      
                                      /**
                                    !  * Code relocated from java.lang.String by 
                                       * @author Dave Grove <groved@us.ibm.com>
                                       */
                                      final class VMString
                                    --- 47,53 ----
                                       */
                                      
                                      /**
                                    !  * Code relocated from java.lang.String by
                                       * @author Dave Grove <groved@us.ibm.com>
                                       */
                                      final class VMString
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMSystem.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMSystem.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMSystem.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMSystem.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMSystem
                                    *** 163,169 ****
                                         * </p>
                                         *
                                         * @return the time of a system timer in nanoseconds.
                                    !    * @since 1.5 
                                         */
                                        public static native long nanoTime();
                                      
                                    --- 163,169 ----
                                         * </p>
                                         *
                                         * @return the time of a system timer in nanoseconds.
                                    !    * @since 1.5
                                         */
                                        public static native long nanoTime();
                                      
                                    *************** final class VMSystem
                                    *** 178,195 ****
                                        /**
                                         * Helper method which creates the standard input stream.
                                         * VM implementors may choose to construct these streams differently.
                                    !    * This method can also return null if the stream is created somewhere 
                                         * else in the VM startup sequence.
                                         */
                                        static InputStream makeStandardInputStream()
                                        {
                                          return new BufferedInputStream(new FileInputStream(FileDescriptor.in));
                                        }
                                    !   
                                        /**
                                         * Helper method which creates the standard output stream.
                                         * VM implementors may choose to construct these streams differently.
                                    !    * This method can also return null if the stream is created somewhere 
                                         * else in the VM startup sequence.
                                         */
                                        static PrintStream makeStandardOutputStream()
                                    --- 178,195 ----
                                        /**
                                         * Helper method which creates the standard input stream.
                                         * VM implementors may choose to construct these streams differently.
                                    !    * This method can also return null if the stream is created somewhere
                                         * else in the VM startup sequence.
                                         */
                                        static InputStream makeStandardInputStream()
                                        {
                                          return new BufferedInputStream(new FileInputStream(FileDescriptor.in));
                                        }
                                    ! 
                                        /**
                                         * Helper method which creates the standard output stream.
                                         * VM implementors may choose to construct these streams differently.
                                    !    * This method can also return null if the stream is created somewhere
                                         * else in the VM startup sequence.
                                         */
                                        static PrintStream makeStandardOutputStream()
                                    *************** final class VMSystem
                                    *** 200,213 ****
                                        /**
                                         * Helper method which creates the standard error stream.
                                         * VM implementors may choose to construct these streams differently.
                                    !    * This method can also return null if the stream is created somewhere 
                                         * else in the VM startup sequence.
                                         */
                                        static PrintStream makeStandardErrorStream()
                                        {
                                          return new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.err)), true);
                                        }
                                    !   
                                        /**
                                         * Gets the value of an environment variable.
                                         * Always returning null is a valid (but not very useful) implementation.
                                    --- 200,213 ----
                                        /**
                                         * Helper method which creates the standard error stream.
                                         * VM implementors may choose to construct these streams differently.
                                    !    * This method can also return null if the stream is created somewhere
                                         * else in the VM startup sequence.
                                         */
                                        static PrintStream makeStandardErrorStream()
                                        {
                                          return new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.err)), true);
                                        }
                                    ! 
                                        /**
                                         * Gets the value of an environment variable.
                                         * Always returning null is a valid (but not very useful) implementation.
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMThread.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMThread.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/VMThread.java	Mon Aug 14 23:12:35 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/VMThread.java	Tue Jan 11 19:46:05 2011
                                    *************** package java.lang;
                                    *** 62,68 ****
                                       * or to implement some optional (and sometimes deprecated) behaviour. Default
                                       * implementations are provided but it is highly recommended to optimize them
                                       * for a specific VM.
                                    !  * 
                                       * @author Jeroen Frijters (jeroen@frijters.net)
                                       * @author Dalibor Topic (robilad@kaffe.org)
                                       */
                                    --- 62,68 ----
                                       * or to implement some optional (and sometimes deprecated) behaviour. Default
                                       * implementations are provided but it is highly recommended to optimize them
                                       * for a specific VM.
                                    !  *
                                       * @author Jeroen Frijters (jeroen@frijters.net)
                                       * @author Dalibor Topic (robilad@kaffe.org)
                                       */
                                    *************** final class VMThread
                                    *** 93,99 ****
                                           */
                                          private VMThread(Thread thread)
                                          {
                                    ! 	this.thread = thread;
                                          }
                                      
                                          /**
                                    --- 93,99 ----
                                           */
                                          private VMThread(Thread thread)
                                          {
                                    !         this.thread = thread;
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 103,150 ****
                                           */
                                          private void run()
                                          {
                                    ! 	try
                                    ! 	{
                                    ! 	    try
                                    ! 	    {
                                    ! 		running = true;
                                    ! 		synchronized(thread)
                                    ! 		{
                                    ! 		    Throwable t = thread.stillborn;
                                    ! 		    if(t != null)
                                    ! 		    {
                                    ! 			thread.stillborn = null;
                                    ! 			throw t;
                                    ! 		    }
                                    ! 		}
                                    ! 		thread.run();
                                    ! 	    }
                                    ! 	    catch(Throwable t)
                                    ! 	    {
                                    ! 		try
                                    ! 		{
                                    ! 		  Thread.UncaughtExceptionHandler handler;
                                    ! 		  handler = thread.getUncaughtExceptionHandler();
                                    ! 		  handler.uncaughtException(thread, t);
                                    ! 		}
                                    ! 		catch(Throwable ignore)
                                    ! 		{
                                    ! 		}
                                    ! 	    }
                                    ! 	}
                                    ! 	finally
                                    ! 	{
                                    ! 	    // Setting runnable to false is partial protection against stop
                                    ! 	    // being called while we're cleaning up. To be safe all code in
                                    ! 	    // VMThread be unstoppable.
                                    ! 	    running = false;
                                    ! 	    thread.die();
                                    ! 	    synchronized(this)
                                    ! 	    {
                                    ! 		// release the threads waiting to join us
                                    ! 		notifyAll();
                                    ! 	    }
                                    ! 	}
                                          }
                                      
                                          /**
                                    --- 103,150 ----
                                           */
                                          private void run()
                                          {
                                    !         try
                                    !         {
                                    !             try
                                    !             {
                                    !                 running = true;
                                    !                 synchronized(thread)
                                    !                 {
                                    !                     Throwable t = thread.stillborn;
                                    !                     if(t != null)
                                    !                     {
                                    !                         thread.stillborn = null;
                                    !                         throw t;
                                    !                     }
                                    !                 }
                                    !                 thread.run();
                                    !             }
                                    !             catch(Throwable t)
                                    !             {
                                    !                 try
                                    !                 {
                                    !                   Thread.UncaughtExceptionHandler handler;
                                    !                   handler = thread.getUncaughtExceptionHandler();
                                    !                   handler.uncaughtException(thread, t);
                                    !                 }
                                    !                 catch(Throwable ignore)
                                    !                 {
                                    !                 }
                                    !             }
                                    !         }
                                    !         finally
                                    !         {
                                    !             // Setting runnable to false is partial protection against stop
                                    !             // being called while we're cleaning up. To be safe all code in
                                    !             // VMThread be unstoppable.
                                    !             running = false;
                                    !             thread.die();
                                    !             synchronized(this)
                                    !             {
                                    !                 // release the threads waiting to join us
                                    !                 notifyAll();
                                    !             }
                                    !         }
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 158,166 ****
                                           */
                                          static void create(Thread thread, long stacksize)
                                          {
                                    ! 	VMThread vmThread = new VMThread(thread);
                                    ! 	vmThread.start(stacksize);
                                    ! 	thread.vmThread = vmThread;
                                          }
                                      
                                          /**
                                    --- 158,166 ----
                                           */
                                          static void create(Thread thread, long stacksize)
                                          {
                                    !         VMThread vmThread = new VMThread(thread);
                                    !         vmThread.start(stacksize);
                                    !         thread.vmThread = vmThread;
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 170,176 ****
                                           */
                                          String getName()
                                          {
                                    ! 	return thread.name;
                                          }
                                      
                                          /**
                                    --- 170,176 ----
                                           */
                                          String getName()
                                          {
                                    !         return thread.name;
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 181,187 ****
                                           */
                                          void setName(String name)
                                          {
                                    ! 	thread.name = name;
                                          }
                                      
                                          /**
                                    --- 181,187 ----
                                           */
                                          void setName(String name)
                                          {
                                    !         thread.name = name;
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 192,199 ****
                                           */
                                          void setPriority(int priority)
                                          {
                                    ! 	thread.priority = priority;
                                    ! 	nativeSetPriority(priority);
                                          }
                                      
                                          /**
                                    --- 192,199 ----
                                           */
                                          void setPriority(int priority)
                                          {
                                    !         thread.priority = priority;
                                    !         nativeSetPriority(priority);
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 243,274 ****
                                           */
                                          synchronized void join(long ms, int ns) throws InterruptedException
                                          {
                                    ! 	// Round up
                                    ! 	ms += (ns != 0) ? 1 : 0;
                                      
                                    ! 	// Compute end time, but don't overflow
                                    ! 	long now = System.currentTimeMillis();
                                    ! 	long end = now + ms;
                                    ! 	if (end < now)
                                    ! 	    end = Long.MAX_VALUE;
                                      
                                    ! 	// A VM is allowed to return from wait() without notify() having been
                                    ! 	// called, so we loop to handle possible spurious wakeups.
                                    ! 	while(thread.vmThread != null)
                                    ! 	{
                                    ! 	    // We use the VMThread object to wait on, because this is a private
                                    ! 	    // object, so client code cannot call notify on us.
                                    ! 	    wait(ms);
                                    ! 	    if(ms != 0)
                                    ! 	    {
                                    ! 		now = System.currentTimeMillis();
                                    ! 		ms = end - now;
                                    ! 		if(ms <= 0)
                                    ! 		{
                                    ! 		    break;
                                    ! 		}
                                    ! 	    }
                                    ! 	}
                                          }
                                      
                                          /**
                                    --- 243,274 ----
                                           */
                                          synchronized void join(long ms, int ns) throws InterruptedException
                                          {
                                    !         // Round up
                                    !         ms += (ns != 0) ? 1 : 0;
                                      
                                    !         // Compute end time, but don't overflow
                                    !         long now = System.currentTimeMillis();
                                    !         long end = now + ms;
                                    !         if (end < now)
                                    !             end = Long.MAX_VALUE;
                                      
                                    !         // A VM is allowed to return from wait() without notify() having been
                                    !         // called, so we loop to handle possible spurious wakeups.
                                    !         while(thread.vmThread != null)
                                    !         {
                                    !             // We use the VMThread object to wait on, because this is a private
                                    !             // object, so client code cannot call notify on us.
                                    !             wait(ms);
                                    !             if(ms != 0)
                                    !             {
                                    !                 now = System.currentTimeMillis();
                                    !                 ms = end - now;
                                    !                 if(ms <= 0)
                                    !                 {
                                    !                     break;
                                    !                 }
                                    !             }
                                    !         }
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 276,282 ****
                                           * If you stop a Thread that has not yet started, the stop is ignored
                                           * (contrary to what the JDK documentation says).
                                           * <b>WARNING</b>This bypasses Java security, and can throw a checked
                                    !      * exception which the call stack is unprepared to handle. Do not abuse 
                                           * this power.
                                           *
                                           * <p>This is inherently unsafe, as it can interrupt synchronized blocks and
                                    --- 276,282 ----
                                           * If you stop a Thread that has not yet started, the stop is ignored
                                           * (contrary to what the JDK documentation says).
                                           * <b>WARNING</b>This bypasses Java security, and can throw a checked
                                    !      * exception which the call stack is unprepared to handle. Do not abuse
                                           * this power.
                                           *
                                           * <p>This is inherently unsafe, as it can interrupt synchronized blocks and
                                    *************** final class VMThread
                                    *** 290,301 ****
                                           */
                                          void stop(Throwable t)
                                          {
                                    ! 	// Note: we assume that we own the lock on thread
                                    ! 	// (i.e. that Thread.stop() is synchronized)
                                    ! 	if(running)
                                    ! 	    nativeStop(t);
                                    ! 	else
                                    ! 	    thread.stillborn = t;
                                          }
                                      
                                          /**
                                    --- 290,301 ----
                                           */
                                          void stop(Throwable t)
                                          {
                                    !         // Note: we assume that we own the lock on thread
                                    !         // (i.e. that Thread.stop() is synchronized)
                                    !         if(running)
                                    !             nativeStop(t);
                                    !         else
                                    !             thread.stillborn = t;
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 383,415 ****
                                            // It's unclear if this is a bug in the implementation or the spec.
                                            // See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6213203
                                            if (ms == 0 && ns == 0)
                                    ! 	{
                                    ! 	  if (Thread.interrupted())
                                    ! 	    throw new InterruptedException();
                                    ! 	  return;
                                    ! 	}
                                      
                                            // Compute end time, but don't overflow
                                            long now = System.currentTimeMillis();
                                            long end = now + ms;
                                            if (end < now)
                                    ! 	  end = Long.MAX_VALUE;
                                      
                                            // A VM is allowed to return from wait() without notify() having been
                                            // called, so we loop to handle possible spurious wakeups.
                                            VMThread vt = Thread.currentThread().vmThread;
                                            synchronized (vt)
                                    ! 	{
                                    ! 	  while (true)
                                    ! 	    {
                                    ! 	      vt.wait(ms, ns);
                                    ! 	      now = System.currentTimeMillis();
                                    ! 	      if (now >= end)
                                    ! 		break;
                                    ! 	      ms = end - now;
                                    ! 	      ns = 0;
                                    ! 	    }
                                    ! 	}
                                          }
                                      
                                          /**
                                    --- 383,415 ----
                                            // It's unclear if this is a bug in the implementation or the spec.
                                            // See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6213203
                                            if (ms == 0 && ns == 0)
                                    !         {
                                    !           if (Thread.interrupted())
                                    !             throw new InterruptedException();
                                    !           return;
                                    !         }
                                      
                                            // Compute end time, but don't overflow
                                            long now = System.currentTimeMillis();
                                            long end = now + ms;
                                            if (end < now)
                                    !           end = Long.MAX_VALUE;
                                      
                                            // A VM is allowed to return from wait() without notify() having been
                                            // called, so we loop to handle possible spurious wakeups.
                                            VMThread vt = Thread.currentThread().vmThread;
                                            synchronized (vt)
                                    !         {
                                    !           while (true)
                                    !             {
                                    !               vt.wait(ms, ns);
                                    !               now = System.currentTimeMillis();
                                    !               if (now >= end)
                                    !                 break;
                                    !               ms = end - now;
                                    !               ns = 0;
                                    !             }
                                    !         }
                                          }
                                      
                                          /**
                                    *************** final class VMThread
                                    *** 428,450 ****
                                           * @return true if the current thread is currently synchronized on obj
                                           * @throws NullPointerException if obj is null
                                           */
                                    !     static boolean holdsLock(Object obj) 
                                          {
                                            /* Use obj.notify to check if the current thread holds
                                             * the monitor of the object.
                                             * If it doesn't, notify will throw an exception.
                                             */
                                    !       try 
                                    ! 	{
                                    ! 	  obj.notify();
                                    ! 	  // okay, current thread holds lock
                                    ! 	  return true;
                                    ! 	}
                                            catch (IllegalMonitorStateException e)
                                    ! 	{
                                    ! 	  // it doesn't hold the lock
                                    ! 	  return false;
                                    ! 	}
                                          }
                                      
                                        /**
                                    --- 428,450 ----
                                           * @return true if the current thread is currently synchronized on obj
                                           * @throws NullPointerException if obj is null
                                           */
                                    !     static boolean holdsLock(Object obj)
                                          {
                                            /* Use obj.notify to check if the current thread holds
                                             * the monitor of the object.
                                             * If it doesn't, notify will throw an exception.
                                             */
                                    !       try
                                    !         {
                                    !           obj.notify();
                                    !           // okay, current thread holds lock
                                    !           return true;
                                    !         }
                                            catch (IllegalMonitorStateException e)
                                    !         {
                                    !           // it doesn't hold the lock
                                    !           return false;
                                    !         }
                                          }
                                      
                                        /**
                                    *************** final class VMThread
                                    *** 453,459 ****
                                         * "RUNNABLE", "TERMINATED", "TIMED_WAITING" or
                                         * "WAITING".
                                         *
                                    !    * @return a string corresponding to one of the 
                                         *         thread enumeration states specified above.
                                         */
                                        native String getState();
                                    --- 453,459 ----
                                         * "RUNNABLE", "TERMINATED", "TIMED_WAITING" or
                                         * "WAITING".
                                         *
                                    !    * @return a string corresponding to one of the
                                         *         thread enumeration states specified above.
                                         */
                                        native String getState();
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** final class VMConstructor
                                    *** 47,53 ****
                                        Class clazz;
                                        int slot;
                                      
                                    !   /** 
                                         * This field allows us to refer back to the main constructor instance.
                                         *  It is set by the constructor of Constructor.
                                         */
                                    --- 47,53 ----
                                        Class clazz;
                                        int slot;
                                      
                                    !   /**
                                         * This field allows us to refer back to the main constructor instance.
                                         *  It is set by the constructor of Constructor.
                                         */
                                    *************** final class VMConstructor
                                    *** 97,103 ****
                                         * is no Signature attribute, return null.
                                         */
                                        native String getSignature();
                                    !   
                                        /**
                                         * <p>
                                         * Return an array of arrays representing the annotations on each
                                    --- 97,103 ----
                                         * is no Signature attribute, return null.
                                         */
                                        native String getSignature();
                                    ! 
                                        /**
                                         * <p>
                                         * Return an array of arrays representing the annotations on each
                                    *************** final class VMConstructor
                                    *** 112,118 ****
                                         * The returned annotations are serialized.  Changing the annotations has
                                         * no affect on the return value of future calls to this method.
                                         * </p>
                                    !    * 
                                         * @return an array of arrays which represents the annotations used on the
                                         *         parameters of this constructor.  The order of the array elements
                                         *         matches the declaration order of the parameters.
                                    --- 112,118 ----
                                         * The returned annotations are serialized.  Changing the annotations has
                                         * no affect on the return value of future calls to this method.
                                         * </p>
                                    !    *
                                         * @return an array of arrays which represents the annotations used on the
                                         *         parameters of this constructor.  The order of the array elements
                                         *         matches the declaration order of the parameters.
                                    *************** final class VMConstructor
                                    *** 134,140 ****
                                        {
                                          if (!(o instanceof Constructor))
                                            return false;
                                    !     Constructor that = (Constructor)o; 
                                          if (clazz != that.getDeclaringClass())
                                            return false;
                                          if (!Arrays.equals(getParameterTypes(), that.getParameterTypes()))
                                    --- 134,140 ----
                                        {
                                          if (!(o instanceof Constructor))
                                            return false;
                                    !     Constructor that = (Constructor)o;
                                          if (clazz != that.getDeclaringClass())
                                            return false;
                                          if (!Arrays.equals(getParameterTypes(), that.getParameterTypes()))
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/reflect/VMField.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/reflect/VMField.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/reflect/VMField.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/reflect/VMField.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** final class VMField
                                    *** 45,52 ****
                                        Class clazz;
                                        String name;
                                        int slot;
                                    !   
                                    !   /** 
                                         * This field allows us to refer back to the main constructor instance.
                                         *  It is set by the constructor of Field.
                                         */
                                    --- 45,52 ----
                                        Class clazz;
                                        String name;
                                        int slot;
                                    ! 
                                    !   /**
                                         * This field allows us to refer back to the main constructor instance.
                                         *  It is set by the constructor of Field.
                                         */
                                    *************** final class VMField
                                    *** 512,518 ****
                                        {
                                          if (!(o instanceof Field))
                                            return false;
                                    !     Field that = (Field)o; 
                                          if (clazz != that.getDeclaringClass())
                                            return false;
                                          if (!name.equals(that.getName()))
                                    --- 512,518 ----
                                        {
                                          if (!(o instanceof Field))
                                            return false;
                                    !     Field that = (Field)o;
                                          if (clazz != that.getDeclaringClass())
                                            return false;
                                          if (!name.equals(that.getName()))
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java gcc-4.6.0/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java	Tue Jan 11 19:46:05 2011
                                    *************** GNU Classpath is free software; you can 
                                    *** 7,13 ****
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    !  
                                      GNU Classpath 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
                                    --- 7,13 ----
                                      it under the terms of the GNU General Public License as published by
                                      the Free Software Foundation; either version 2, or (at your option)
                                      any later version.
                                    ! 
                                      GNU Classpath 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
                                    *************** final class VMMethod
                                    *** 48,54 ****
                                        String name;
                                        int slot;
                                      
                                    !   /** 
                                         * This field allows us to refer back to the main constructor instance.
                                         *  It is set by the constructor of Field.
                                         */
                                    --- 48,54 ----
                                        String name;
                                        int slot;
                                      
                                    !   /**
                                         * This field allows us to refer back to the main constructor instance.
                                         *  It is set by the constructor of Field.
                                         */
                                    *************** final class VMMethod
                                    *** 129,135 ****
                                         * The returned annotations are serialized.  Changing the annotations has
                                         * no affect on the return value of future calls to this method.
                                         * </p>
                                    !    * 
                                         * @return an array of arrays which represents the annotations used on the
                                         *         parameters of this method.  The order of the array elements
                                         *         matches the declaration order of the parameters.
                                    --- 129,135 ----
                                         * The returned annotations are serialized.  Changing the annotations has
                                         * no affect on the return value of future calls to this method.
                                         * </p>
                                    !    *
                                         * @return an array of arrays which represents the annotations used on the
                                         *         parameters of this method.  The order of the array elements
                                         *         matches the declaration order of the parameters.
                                    *************** final class VMMethod
                                    *** 206,209 ****
                                        native Annotation[] getDeclaredAnnotations();
                                      
                                      }
                                    - 
                                    --- 206,208 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java gcc-4.6.0/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java	Tue Oct 21 17:55:01 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMNetworkInterface
                                    *** 64,70 ****
                                          this.name = name;
                                          addresses = new HashSet();
                                        }
                                    !   
                                        /**
                                         * Creates a dummy instance which represents any network
                                         * interface.
                                    --- 64,70 ----
                                          this.name = name;
                                          addresses = new HashSet();
                                        }
                                    ! 
                                        /**
                                         * Creates a dummy instance which represents any network
                                         * interface.
                                    *************** final class VMNetworkInterface
                                    *** 81,95 ****
                                              // Cannot happen.
                                            }
                                        }
                                    !   
                                        static
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            System.loadLibrary("javanet");
                                    !     
                                          initIds();
                                        }
                                    !   
                                        private static native void initIds();
                                      
                                        /**
                                    --- 81,95 ----
                                              // Cannot happen.
                                            }
                                        }
                                    ! 
                                        static
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            System.loadLibrary("javanet");
                                    ! 
                                          initIds();
                                        }
                                    ! 
                                        private static native void initIds();
                                      
                                        /**
                                    *************** final class VMNetworkInterface
                                    *** 100,106 ****
                                         */
                                        public static native VMNetworkInterface[] getVMInterfaces()
                                          throws SocketException;
                                    !   
                                        private void addAddress(ByteBuffer addr)
                                          throws SocketException, UnknownHostException
                                        {
                                    --- 100,106 ----
                                         */
                                        public static native VMNetworkInterface[] getVMInterfaces()
                                          throws SocketException;
                                    ! 
                                        private void addAddress(ByteBuffer addr)
                                          throws SocketException, UnknownHostException
                                        {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/nio/channels/VMChannels.java gcc-4.6.0/libjava/classpath/vm/reference/java/nio/channels/VMChannels.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/nio/channels/VMChannels.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/nio/channels/VMChannels.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMChannels
                                    *** 63,97 ****
                                        {
                                          try
                                            {
                                    ! 	Class[] argTypes = new Class[1];
                                    ! 	argTypes[0] = FileChannelImpl.class;
                                    ! 	Constructor constructor =
                                    ! 	  streamClass.getDeclaredConstructor(argTypes);
                                    ! 	constructor.setAccessible(true);
                                    ! 	Object[] args = new Object[1];
                                    ! 	args[0] = ch;
                                    ! 	return constructor.newInstance(args);
                                            }
                                          catch (IllegalAccessException e)
                                            {
                                    ! 	// Ignored.
                                            }
                                          catch (InstantiationException e)
                                            {
                                    ! 	// Ignored.
                                            }
                                          catch (InvocationTargetException e)
                                            {
                                    ! 	// Ignored.
                                            }
                                          catch (NoSuchMethodException e)
                                            {
                                    ! 	// Ignored.
                                            }
                                      
                                          return null;
                                        }
                                    !   
                                        /**
                                         * Constructs a stream that reads bytes from the given channel.
                                         */
                                    --- 63,97 ----
                                        {
                                          try
                                            {
                                    !         Class[] argTypes = new Class[1];
                                    !         argTypes[0] = FileChannelImpl.class;
                                    !         Constructor constructor =
                                    !           streamClass.getDeclaredConstructor(argTypes);
                                    !         constructor.setAccessible(true);
                                    !         Object[] args = new Object[1];
                                    !         args[0] = ch;
                                    !         return constructor.newInstance(args);
                                            }
                                          catch (IllegalAccessException e)
                                            {
                                    !         // Ignored.
                                            }
                                          catch (InstantiationException e)
                                            {
                                    !         // Ignored.
                                            }
                                          catch (InvocationTargetException e)
                                            {
                                    !         // Ignored.
                                            }
                                          catch (NoSuchMethodException e)
                                            {
                                    !         // Ignored.
                                            }
                                      
                                          return null;
                                        }
                                    ! 
                                        /**
                                         * Constructs a stream that reads bytes from the given channel.
                                         */
                                    *************** final class VMChannels
                                    *** 99,105 ****
                                        {
                                          if (ch instanceof FileChannelImpl)
                                            return (FileInputStream) createStream(FileInputStream.class, ch);
                                    !     
                                          return  new ChannelInputStream(ch);
                                        }
                                      
                                    --- 99,105 ----
                                        {
                                          if (ch instanceof FileChannelImpl)
                                            return (FileInputStream) createStream(FileInputStream.class, ch);
                                    ! 
                                          return  new ChannelInputStream(ch);
                                        }
                                      
                                    *************** final class VMChannels
                                    *** 110,116 ****
                                        {
                                          if (ch instanceof FileChannelImpl)
                                            return (FileOutputStream) createStream(FileOutputStream.class, ch);
                                    !     
                                          return new ChannelOutputStream(ch);
                                        }
                                      }
                                    --- 110,116 ----
                                        {
                                          if (ch instanceof FileChannelImpl)
                                            return (FileOutputStream) createStream(FileOutputStream.class, ch);
                                    ! 
                                          return new ChannelOutputStream(ch);
                                        }
                                      }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/security/VMAccessController.java gcc-4.6.0/libjava/classpath/vm/reference/java/security/VMAccessController.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/security/VMAccessController.java	Tue Nov 15 23:20:01 2005
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/security/VMAccessController.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMAccessController
                                    *** 205,212 ****
                                                  && method.equals ("doPrivileged"))
                                                {
                                                  // If there was a call to doPrivileged with a supplied context,
                                    !             // return that context. If using JAAS doAs*, it should be 
                                    ! 	    // a context with a SubjectDomainCombiner
                                                  LinkedList l = (LinkedList) contexts.get();
                                                  if (l != null)
                                                    context = (AccessControlContext) l.getFirst();
                                    --- 205,212 ----
                                                  && method.equals ("doPrivileged"))
                                                {
                                                  // If there was a call to doPrivileged with a supplied context,
                                    !             // return that context. If using JAAS doAs*, it should be
                                    !             // a context with a SubjectDomainCombiner
                                                  LinkedList l = (LinkedList) contexts.get();
                                                  if (l != null)
                                                    context = (AccessControlContext) l.getFirst();
                                    *************** final class VMAccessController
                                    *** 214,220 ****
                                                }
                                      
                                              // subject to getProtectionDomain RuntimePermission
                                    ! 	ProtectionDomain domain = clazz.getProtectionDomain();
                                      
                                              if (domain == null)
                                                continue;
                                    --- 214,220 ----
                                                }
                                      
                                              // subject to getProtectionDomain RuntimePermission
                                    !         ProtectionDomain domain = clazz.getProtectionDomain();
                                      
                                              if (domain == null)
                                                continue;
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/security/VMSecureRandom.java gcc-4.6.0/libjava/classpath/vm/reference/java/security/VMSecureRandom.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/security/VMSecureRandom.java	Sat Jun 28 13:29:13 2008
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/security/VMSecureRandom.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMSecureRandom
                                    *** 126,129 ****
                                            running = false;
                                          }
                                        }
                                    ! }
                                    \ No newline at end of file
                                    --- 126,129 ----
                                            running = false;
                                          }
                                        }
                                    ! }
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/java/util/VMTimeZone.java gcc-4.6.0/libjava/classpath/vm/reference/java/util/VMTimeZone.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/java/util/VMTimeZone.java	Sun Jun  3 23:18:43 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/java/util/VMTimeZone.java	Tue Jan 11 19:46:05 2011
                                    *************** final class VMTimeZone
                                    *** 55,64 ****
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    ! 	System.loadLibrary("javautil");
                                            }
                                        }
                                    ! 		
                                        /**
                                         * This method returns a time zone id string which is in the form
                                         * (standard zone name) or (standard zone name)(GMT offset) or
                                    --- 55,64 ----
                                        {
                                          if (Configuration.INIT_LOAD_LIBRARY)
                                            {
                                    !         System.loadLibrary("javautil");
                                            }
                                        }
                                    ! 
                                        /**
                                         * This method returns a time zone id string which is in the form
                                         * (standard zone name) or (standard zone name)(GMT offset) or
                                    *************** final class VMTimeZone
                                    *** 104,170 ****
                                          // Try to parse /etc/timezone.
                                          if (zone == null)
                                            {
                                    ! 	tzid = readTimeZoneFile("/etc/timezone");
                                    ! 	if (tzid != null && !tzid.equals(""))
                                    ! 	  zone = TimeZone.getDefaultTimeZone(tzid);
                                            }
                                    !     
                                          // Try to parse /etc/localtime
                                          if (zone == null)
                                            {
                                    ! 	zone = ZoneInfo.readTZFile((String) null, "/etc/localtime");
                                    ! 	if (zone != null)
                                    ! 	  {
                                    ! 	    // Try to find a more suitable ID for the /etc/localtime
                                    ! 	    // timezone.
                                    ! 	    // Sometimes /etc/localtime is a symlink to some
                                    ! 	    // /usr/share/zoneinfo/ file.
                                    ! 	    String id = null;
                                    ! 	    try
                                    ! 	      {
                                    ! 		id = new File("/etc/localtime").getCanonicalPath();
                                    ! 		if (id != null)
                                    ! 		  {
                                    ! 		    String zoneinfo_dir
                                    ! 		      = SystemProperties.getProperty("gnu.java.util.zoneinfo.dir");
                                    ! 		    if (zoneinfo_dir != null)
                                    ! 		      zoneinfo_dir
                                    ! 			= new File(zoneinfo_dir
                                    ! 				   + File.separatorChar).getCanonicalPath();
                                    ! 		    if (zoneinfo_dir != null && id.startsWith(zoneinfo_dir))
                                    ! 		      {
                                    ! 			int pos = zoneinfo_dir.length();
                                    ! 			while (pos < id.length()
                                    ! 			       && id.charAt(pos) == File.separatorChar)
                                    ! 			  pos++;
                                    ! 			if (pos < id.length())
                                    ! 			  id = id.substring(pos);
                                    ! 			else
                                    ! 			  id = null;
                                    ! 		      }
                                    ! 		    else
                                    ! 		      id = null;
                                    ! 		  }
                                    ! 	      }
                                    ! 	    catch (IOException ioe)
                                    ! 	      {
                                    ! 		id = null;
                                    ! 	      }
                                      
                                    ! 	    if (id == null)
                                    ! 	      id = readSysconfigClockFile("/etc/sysconfig/clock");
                                      
                                    ! 	    if (id != null)
                                    ! 	      zone.setID(id);
                                    ! 	  }
                                            }
                                      
                                          // Try some system specific way
                                          if (zone == null)
                                            {
                                    ! 	tzid = getSystemTimeZoneId();
                                    ! 	if (tzid != null && !tzid.equals(""))
                                    ! 	  zone = TimeZone.getDefaultTimeZone(tzid);
                                            }
                                      
                                          return zone;
                                    --- 104,170 ----
                                          // Try to parse /etc/timezone.
                                          if (zone == null)
                                            {
                                    !         tzid = readTimeZoneFile("/etc/timezone");
                                    !         if (tzid != null && !tzid.equals(""))
                                    !           zone = TimeZone.getDefaultTimeZone(tzid);
                                            }
                                    ! 
                                          // Try to parse /etc/localtime
                                          if (zone == null)
                                            {
                                    !         zone = ZoneInfo.readTZFile((String) null, "/etc/localtime");
                                    !         if (zone != null)
                                    !           {
                                    !             // Try to find a more suitable ID for the /etc/localtime
                                    !             // timezone.
                                    !             // Sometimes /etc/localtime is a symlink to some
                                    !             // /usr/share/zoneinfo/ file.
                                    !             String id = null;
                                    !             try
                                    !               {
                                    !                 id = new File("/etc/localtime").getCanonicalPath();
                                    !                 if (id != null)
                                    !                   {
                                    !                     String zoneinfo_dir
                                    !                       = SystemProperties.getProperty("gnu.java.util.zoneinfo.dir");
                                    !                     if (zoneinfo_dir != null)
                                    !                       zoneinfo_dir
                                    !                         = new File(zoneinfo_dir
                                    !                                    + File.separatorChar).getCanonicalPath();
                                    !                     if (zoneinfo_dir != null && id.startsWith(zoneinfo_dir))
                                    !                       {
                                    !                         int pos = zoneinfo_dir.length();
                                    !                         while (pos < id.length()
                                    !                                && id.charAt(pos) == File.separatorChar)
                                    !                           pos++;
                                    !                         if (pos < id.length())
                                    !                           id = id.substring(pos);
                                    !                         else
                                    !                           id = null;
                                    !                       }
                                    !                     else
                                    !                       id = null;
                                    !                   }
                                    !               }
                                    !             catch (IOException ioe)
                                    !               {
                                    !                 id = null;
                                    !               }
                                      
                                    !             if (id == null)
                                    !               id = readSysconfigClockFile("/etc/sysconfig/clock");
                                      
                                    !             if (id != null)
                                    !               zone.setID(id);
                                    !           }
                                            }
                                      
                                          // Try some system specific way
                                          if (zone == null)
                                            {
                                    !         tzid = getSystemTimeZoneId();
                                    !         if (tzid != null && !tzid.equals(""))
                                    !           zone = TimeZone.getDefaultTimeZone(tzid);
                                            }
                                      
                                          return zone;
                                    *************** final class VMTimeZone
                                    *** 192,233 ****
                                          InputStreamReader isr = null;
                                          try
                                            {
                                    ! 	FileInputStream fis = new FileInputStream(f);
                                    ! 	BufferedInputStream bis = new BufferedInputStream(fis);
                                    ! 	isr = new InputStreamReader(bis);
                                    ! 	
                                    ! 	StringBuffer sb = new StringBuffer();
                                    ! 	int i = isr.read();
                                    ! 	while (i != -1)
                                    ! 	  {
                                    ! 	    char c = (char) i;
                                    ! 	    if (Character.isLetter(c) || Character.isDigit(c)
                                    ! 		|| c == '/' || c == '-' || c == '_')
                                    ! 	      {
                                    ! 		sb.append(c);
                                    ! 		i = isr.read();
                                    ! 	      }
                                    ! 	    else
                                    ! 	      break;
                                    ! 	  }
                                    ! 	return sb.toString();
                                            }
                                          catch (IOException ioe)
                                            {
                                    ! 	// Parse error, not a proper tzfile.
                                    ! 	return null;
                                            }
                                          finally
                                            {
                                    ! 	try
                                    ! 	  {
                                    ! 	    if (isr != null)
                                    ! 	      isr.close();
                                    ! 	  }
                                    ! 	catch (IOException ioe)
                                    ! 	  {
                                    ! 	    // Error while close, nothing we can do.
                                    ! 	  }
                                            }
                                        }
                                      
                                    --- 192,233 ----
                                          InputStreamReader isr = null;
                                          try
                                            {
                                    !         FileInputStream fis = new FileInputStream(f);
                                    !         BufferedInputStream bis = new BufferedInputStream(fis);
                                    !         isr = new InputStreamReader(bis);
                                    ! 
                                    !         StringBuffer sb = new StringBuffer();
                                    !         int i = isr.read();
                                    !         while (i != -1)
                                    !           {
                                    !             char c = (char) i;
                                    !             if (Character.isLetter(c) || Character.isDigit(c)
                                    !                 || c == '/' || c == '-' || c == '_')
                                    !               {
                                    !                 sb.append(c);
                                    !                 i = isr.read();
                                    !               }
                                    !             else
                                    !               break;
                                    !           }
                                    !         return sb.toString();
                                            }
                                          catch (IOException ioe)
                                            {
                                    !         // Parse error, not a proper tzfile.
                                    !         return null;
                                            }
                                          finally
                                            {
                                    !         try
                                    !           {
                                    !             if (isr != null)
                                    !               isr.close();
                                    !           }
                                    !         catch (IOException ioe)
                                    !           {
                                    !             // Error while close, nothing we can do.
                                    !           }
                                            }
                                        }
                                      
                                    *************** final class VMTimeZone
                                    *** 248,295 ****
                                          BufferedReader br = null;
                                          try
                                            {
                                    ! 	FileInputStream fis = new FileInputStream(file);
                                    ! 	BufferedInputStream bis = new BufferedInputStream(fis);
                                    ! 	br = new BufferedReader(new InputStreamReader(bis));
                                      
                                    ! 	for (String line = br.readLine(); line != null; line = br.readLine())
                                    ! 	  {
                                    ! 	    line = line.trim();
                                    ! 	    if (line.length() < 8 || !line.startsWith("ZONE="))
                                    ! 	      continue;
                                    ! 	    int posstart = 6;
                                    ! 	    int posend;
                                    ! 	    if (line.charAt(5) == '"')
                                    ! 	      posend = line.indexOf('"', 6);
                                    ! 	    else if (line.charAt(5) == '\'')
                                    ! 	      posend = line.indexOf('\'', 6);
                                    ! 	    else
                                    ! 	      {
                                    ! 		posstart = 5;
                                    ! 		posend = line.length();
                                    ! 	      }
                                    ! 	    if (posend < 0)
                                    ! 	      return null;
                                    ! 	    return line.substring(posstart, posend);
                                    ! 	  }
                                    ! 	return null;
                                            }
                                          catch (IOException ioe)
                                            {
                                    ! 	// Parse error, not a proper tzfile.
                                    ! 	return null;
                                            }
                                          finally
                                            {
                                    ! 	try
                                    ! 	  {
                                    ! 	    if (br != null)
                                    ! 	      br.close();
                                    ! 	  }
                                    ! 	catch (IOException ioe)
                                    ! 	  {
                                    ! 	    // Error while close, nothing we can do.
                                    ! 	  }
                                            }
                                        }
                                      
                                    --- 248,295 ----
                                          BufferedReader br = null;
                                          try
                                            {
                                    !         FileInputStream fis = new FileInputStream(file);
                                    !         BufferedInputStream bis = new BufferedInputStream(fis);
                                    !         br = new BufferedReader(new InputStreamReader(bis));
                                      
                                    !         for (String line = br.readLine(); line != null; line = br.readLine())
                                    !           {
                                    !             line = line.trim();
                                    !             if (line.length() < 8 || !line.startsWith("ZONE="))
                                    !               continue;
                                    !             int posstart = 6;
                                    !             int posend;
                                    !             if (line.charAt(5) == '"')
                                    !               posend = line.indexOf('"', 6);
                                    !             else if (line.charAt(5) == '\'')
                                    !               posend = line.indexOf('\'', 6);
                                    !             else
                                    !               {
                                    !                 posstart = 5;
                                    !                 posend = line.length();
                                    !               }
                                    !             if (posend < 0)
                                    !               return null;
                                    !             return line.substring(posstart, posend);
                                    !           }
                                    !         return null;
                                            }
                                          catch (IOException ioe)
                                            {
                                    !         // Parse error, not a proper tzfile.
                                    !         return null;
                                            }
                                          finally
                                            {
                                    !         try
                                    !           {
                                    !             if (br != null)
                                    !               br.close();
                                    !           }
                                    !         catch (IOException ioe)
                                    !           {
                                    !             // Error while close, nothing we can do.
                                    !           }
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/sun/misc/Unsafe.java gcc-4.6.0/libjava/classpath/vm/reference/sun/misc/Unsafe.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/sun/misc/Unsafe.java	Sat Aug  4 10:53:49 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/sun/misc/Unsafe.java	Tue Jan 11 19:46:05 2011
                                    *************** public class Unsafe
                                    *** 76,82 ****
                                            sm.checkPropertiesAccess();
                                          return unsafe;
                                        }
                                    !   
                                        /**
                                         * Returns the memory address offset of the given static field.
                                         * The offset is merely used as a means to access a particular field
                                    --- 76,82 ----
                                            sm.checkPropertiesAccess();
                                          return unsafe;
                                        }
                                    ! 
                                        /**
                                         * Returns the memory address offset of the given static field.
                                         * The offset is merely used as a means to access a particular field
                                    *************** public class Unsafe
                                    *** 272,278 ****
                                        /**
                                         * Returns the offset of the first element for a given array class.
                                         * To access elements of the array class, this value may be used along
                                    !    * with that returned by 
                                         * <a href="#arrayIndexScale"><code>arrayIndexScale</code></a>,
                                         * if non-zero.
                                         *
                                    --- 272,278 ----
                                        /**
                                         * Returns the offset of the first element for a given array class.
                                         * To access elements of the array class, this value may be used along
                                    !    * with that returned by
                                         * <a href="#arrayIndexScale"><code>arrayIndexScale</code></a>,
                                         * if non-zero.
                                         *
                                    *************** public class Unsafe
                                    *** 287,293 ****
                                         * Returns the scale factor used for addressing elements of the supplied
                                         * array class.  Where a suitable scale factor can not be returned (e.g.
                                         * for primitive types), zero should be returned.  The returned value
                                    !    * can be used with 
                                         * <a href="#arrayBaseOffset"><code>arrayBaseOffset</code></a>
                                         * to access elements of the class.
                                         *
                                    --- 287,293 ----
                                         * Returns the scale factor used for addressing elements of the supplied
                                         * array class.  Where a suitable scale factor can not be returned (e.g.
                                         * for primitive types), zero should be returned.  The returned value
                                    !    * can be used with
                                         * <a href="#arrayBaseOffset"><code>arrayBaseOffset</code></a>
                                         * to access elements of the class.
                                         *
                                    *************** public class Unsafe
                                    *** 295,303 ****
                                         * @return the scale factor, or zero if not supported for this array class.
                                         */
                                        public native int arrayIndexScale(Class arrayClass);
                                    !   
                                        /**
                                    !    * Releases the block on a thread created by 
                                         * <a href="#park"><code>park</code></a>.  This method can also be used
                                         * to terminate a blockage caused by a prior call to <code>park</code>.
                                         * This operation is unsafe, as the thread must be guaranteed to be
                                    --- 295,303 ----
                                         * @return the scale factor, or zero if not supported for this array class.
                                         */
                                        public native int arrayIndexScale(Class arrayClass);
                                    ! 
                                        /**
                                    !    * Releases the block on a thread created by
                                         * <a href="#park"><code>park</code></a>.  This method can also be used
                                         * to terminate a blockage caused by a prior call to <code>park</code>.
                                         * This operation is unsafe, as the thread must be guaranteed to be
                                    *************** public class Unsafe
                                    *** 308,314 ****
                                        public native void unpark(Object thread);
                                      
                                        /**
                                    !    * Blocks the thread until a matching 
                                         * <a href="#unpark"><code>unpark</code></a> occurs, the thread is
                                         * interrupted or the optional timeout expires.  If an <code>unpark</code>
                                         * call has already occurred, this also counts.  A timeout value of zero
                                    --- 308,314 ----
                                        public native void unpark(Object thread);
                                      
                                        /**
                                    !    * Blocks the thread until a matching
                                         * <a href="#unpark"><code>unpark</code></a> occurs, the thread is
                                         * interrupted or the optional timeout expires.  If an <code>unpark</code>
                                         * call has already occurred, this also counts.  A timeout value of zero
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/sun/reflect/Reflection.java gcc-4.6.0/libjava/classpath/vm/reference/sun/reflect/Reflection.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/sun/reflect/Reflection.java	Wed Jul 19 17:10:12 2006
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/sun/reflect/Reflection.java	Tue Jan 11 19:46:05 2011
                                    *************** import gnu.classpath.VMStackWalker;
                                    *** 42,48 ****
                                      public class Reflection
                                      {
                                        /**
                                    !    * A stack-walking wrapper method used by the JSR 166 RI. 
                                         */
                                        public static Class getCallerClass(int depth)
                                        {
                                    --- 42,48 ----
                                      public class Reflection
                                      {
                                        /**
                                    !    * A stack-walking wrapper method used by the JSR 166 RI.
                                         */
                                        public static Class getCallerClass(int depth)
                                        {
                                    diff -Nrcpad gcc-4.5.2/libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java gcc-4.6.0/libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java
                                    *** gcc-4.5.2/libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java	Tue Jan 11 19:46:05 2011
                                    *************** public class ReflectUtil
                                    *** 53,59 ****
                                      
                                        /**
                                         * Check if the current thread is allowed to access the package of
                                    !    * the declaringClass. 
                                         *
                                         * @param declaringClass class name to check access to
                                         * @throws SecurityException if permission is denied
                                    --- 53,59 ----
                                      
                                        /**
                                         * Check if the current thread is allowed to access the package of
                                    !    * the declaringClass.
                                         *
                                         * @param declaringClass class name to check access to
                                         * @throws SecurityException if permission is denied
                                    *************** public class ReflectUtil
                                    *** 64,78 ****
                                          SecurityManager sm;
                                          if ((sm = System.getSecurityManager()) != null)
                                            {
                                    ! 	while (declaringClass.isArray())
                                    ! 	  declaringClass = declaringClass.getComponentType();
                                    ! 	String name = declaringClass.getName();
                                    ! 	int i = name.lastIndexOf('.');
                                    ! 	if (i != -1) // if declaringClass is a member of a package
                                    ! 	  {
                                    ! 	    name = name.substring(0, i);
                                    ! 	    sm.checkPackageAccess(name);
                                    ! 	  }
                                            }
                                        }
                                      
                                    --- 64,78 ----
                                          SecurityManager sm;
                                          if ((sm = System.getSecurityManager()) != null)
                                            {
                                    !         while (declaringClass.isArray())
                                    !           declaringClass = declaringClass.getComponentType();
                                    !         String name = declaringClass.getName();
                                    !         int i = name.lastIndexOf('.');
                                    !         if (i != -1) // if declaringClass is a member of a package
                                    !           {
                                    !             name = name.substring(0, i);
                                    !             sm.checkPackageAccess(name);
                                    !           }
                                            }
                                        }
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/configure gcc-4.6.0/libjava/configure
                                    *** gcc-4.5.2/libjava/configure	Thu Dec 16 12:49:03 2010
                                    --- gcc-4.6.0/libjava/configure	Fri Mar 25 17:07:00 2011
                                    *************** python_mod_dir
                                    *** 632,637 ****
                                    --- 632,641 ----
                                      here
                                      LD_FINISH_STATIC_SPEC
                                      LD_START_STATIC_SPEC
                                    + ANONVERSCRIPT_SUN_FALSE
                                    + ANONVERSCRIPT_SUN_TRUE
                                    + ANONVERSCRIPT_GNU_FALSE
                                    + ANONVERSCRIPT_GNU_TRUE
                                      ANONVERSCRIPT_FALSE
                                      ANONVERSCRIPT_TRUE
                                      SYSDEP_SOURCES
                                    *************** GLIB_CFLAGS
                                    *** 670,675 ****
                                    --- 674,680 ----
                                      GTK_LIBS
                                      GTK_CFLAGS
                                      PKG_CONFIG
                                    + LDLIBICONV
                                      LTLIBICONV
                                      LIBICONV
                                      USING_GCC_FALSE
                                    *************** GCDEPS
                                    *** 703,708 ****
                                    --- 708,714 ----
                                      GCINCS
                                      GCLIBS
                                      LIBGCJTESTSPEC
                                    + LIBMATHSPEC
                                      LIBSTDCXXSPEC
                                      extra_ldflags
                                      extra_ldflags_libjava
                                    *************** GCJDEPMODE
                                    *** 748,753 ****
                                    --- 754,760 ----
                                      GCJFLAGS
                                      ac_ct_GCJ
                                      GCJ
                                    + lt_host_flags
                                      CXXCPP
                                      CPP
                                      OTOOL64
                                    *************** LIBLTDL
                                    *** 769,774 ****
                                    --- 776,782 ----
                                      INCLTDL
                                      host_exeext
                                      GCJH
                                    + GCC_FOR_ECJX
                                      GCJ_FOR_ECJX
                                      X_AWT_FALSE
                                      X_AWT_TRUE
                                    *************** $as_echo "$ac_res" >&6; }
                                    *** 2315,2322 ****
                                      ac_fn_c_check_decl ()
                                      {
                                        as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
                                    !   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
                                    ! $as_echo_n "checking whether $2 is declared... " >&6; }
                                      if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
                                        $as_echo_n "(cached) " >&6
                                      else
                                    --- 2323,2332 ----
                                      ac_fn_c_check_decl ()
                                      {
                                        as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
                                    !   as_decl_name=`echo $2|sed 's/ *(.*//'`
                                    !   as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
                                    !   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
                                    ! $as_echo_n "checking whether $as_decl_name is declared... " >&6; }
                                      if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
                                        $as_echo_n "(cached) " >&6
                                      else
                                    *************** $4
                                    *** 2326,2333 ****
                                      int
                                      main ()
                                      {
                                    ! #ifndef $2
                                    !   (void) $2;
                                      #endif
                                      
                                        ;
                                    --- 2336,2347 ----
                                      int
                                      main ()
                                      {
                                    ! #ifndef $as_decl_name
                                    ! #ifdef __cplusplus
                                    !   (void) $as_decl_use;
                                    ! #else
                                    !   (void) $as_decl_name;
                                    ! #endif
                                      #endif
                                      
                                        ;
                                    *************** dgux*)
                                    *** 6161,6170 ****
                                        shlibpath_var=LD_LIBRARY_PATH
                                        ;;
                                      
                                    - freebsd1*)
                                    -   dynamic_linker=no
                                    -   ;;
                                    - 
                                      freebsd*)
                                        objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
                                        version_type=freebsd-$objformat
                                    --- 6175,6180 ----
                                    *************** NATIVE=yes
                                    *** 6693,6699 ****
                                      # Which gcj and host gcj (for ecjx) do we use?
                                      which_gcj=default
                                      host_exeext=${ac_exeext}
                                    ! GCJ_FOR_ECJX=
                                      built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
                                      if test -n "${with_cross_host}"; then
                                        # We are being configured with a cross compiler. We can't
                                    --- 6703,6710 ----
                                      # Which gcj and host gcj (for ecjx) do we use?
                                      which_gcj=default
                                      host_exeext=${ac_exeext}
                                    ! GCJ_FOR_ECJX='$(GCJ)'
                                    ! GCC_FOR_ECJX='$(CXX)'
                                      built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
                                      if test -n "${with_cross_host}"; then
                                        # We are being configured with a cross compiler. We can't
                                    *************** if test -n "${with_cross_host}"; then
                                    *** 6701,6706 ****
                                    --- 6712,6718 ----
                                        NATIVE=no
                                        cross_host_exeext=
                                        GCJ_FOR_ECJX="${with_cross_host}-gcj"
                                    +   GCC_FOR_ECJX="${with_cross_host}-gcc"
                                        case "${with_cross_host}" in
                                           *mingw* | *cygwin*)
                                               cross_host_exeext=.exe
                                    *************** export JAVAC
                                    *** 6769,6774 ****
                                    --- 6781,6787 ----
                                      
                                      
                                      
                                    + 
                                      # Create it, so that compile/link tests don't fail
                                      test -f libgcj.spec || touch libgcj.spec
                                      
                                    *************** if test -z "$aix_libpath"; then aix_libp
                                    *** 11533,11542 ****
                                            hardcode_shlibpath_var=no
                                            ;;
                                      
                                    -     freebsd1*)
                                    -       ld_shlibs=no
                                    -       ;;
                                    - 
                                          # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
                                          # support.  Future versions do this automatically, but an explicit c++rt0.o
                                          # does not break anything, and helps significantly (at the cost of a little
                                    --- 11546,11551 ----
                                    *************** dgux*)
                                    *** 12458,12467 ****
                                        shlibpath_var=LD_LIBRARY_PATH
                                        ;;
                                      
                                    - freebsd1*)
                                    -   dynamic_linker=no
                                    -   ;;
                                    - 
                                      freebsd* | dragonfly*)
                                        # DragonFly does not have aout.  When/if they implement a new
                                        # versioning mechanism, adjust this.
                                    --- 12467,12472 ----
                                    *************** else
                                    *** 13339,13345 ****
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<_LT_EOF
                                    ! #line 13342 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    --- 13344,13350 ----
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<_LT_EOF
                                    ! #line 13347 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    *************** else
                                    *** 13445,13451 ****
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<_LT_EOF
                                    ! #line 13448 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    --- 13450,13456 ----
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<_LT_EOF
                                    ! #line 13453 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    *************** dgux*)
                                    *** 16145,16154 ****
                                        shlibpath_var=LD_LIBRARY_PATH
                                        ;;
                                      
                                    - freebsd1*)
                                    -   dynamic_linker=no
                                    -   ;;
                                    - 
                                      freebsd* | dragonfly*)
                                        # DragonFly does not have aout.  When/if they implement a new
                                        # versioning mechanism, adjust this.
                                    --- 16150,16155 ----
                                    *************** ac_compiler_gnu=$ac_cv_c_compiler_gnu
                                    *** 16711,16716 ****
                                    --- 16712,16739 ----
                                      
                                      
                                      
                                    + 
                                    + 
                                    + case $host in
                                    +   *-cygwin* | *-mingw*)
                                    +     # 'host' will be top-level target in the case of a target lib,
                                    +     # we must compare to with_cross_host to decide if this is a native
                                    +     # or cross-compiler and select where to install dlls appropriately.
                                    +     if test -n "$with_cross_host" &&
                                    + 	test x"$with_cross_host" != x"no"; then
                                    +       lt_host_flags='-no-undefined -bindir "$(toolexeclibdir)"';
                                    +     else
                                    +       lt_host_flags='-no-undefined -bindir "$(bindir)"';
                                    +     fi
                                    +     ;;
                                    +   *)
                                    +     lt_host_flags=
                                    +     ;;
                                    + esac
                                    + 
                                    + 
                                    + 
                                    + 
                                      if test -n "$ac_tool_prefix"; then
                                        for ac_prog in gcj
                                        do
                                    *************** if test -z "$aix_libpath"; then aix_libp
                                    *** 18483,18492 ****
                                            hardcode_shlibpath_var_GCJ=no
                                            ;;
                                      
                                    -     freebsd1*)
                                    -       ld_shlibs_GCJ=no
                                    -       ;;
                                    - 
                                          # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
                                          # support.  Future versions do this automatically, but an explicit c++rt0.o
                                          # does not break anything, and helps significantly (at the cost of a little
                                    --- 18506,18511 ----
                                    *************** if test "${enable_sjlj_exceptions+set}" 
                                    *** 19424,19430 ****
                                        enableval=$enable_sjlj_exceptions; :
                                      else
                                        cat > conftest.$ac_ext << EOF
                                    ! #line 19427 "configure"
                                      struct S { ~S(); };
                                      void bar();
                                      void foo()
                                    --- 19443,19449 ----
                                        enableval=$enable_sjlj_exceptions; :
                                      else
                                        cat > conftest.$ac_ext << EOF
                                    ! #line 19446 "configure"
                                      struct S { ~S(); };
                                      void bar();
                                      void foo()
                                    *************** case "${host}" in
                                    *** 19755,19761 ****
                                            fi
                                          ;;
                                          *-*-darwin[912]*)
                                    !       SYSTEMSPEC="-allow_stack_execute"
                                          ;;
                                          *)
                                            SYSTEMSPEC=
                                    --- 19774,19780 ----
                                            fi
                                          ;;
                                          *-*-darwin[912]*)
                                    !       SYSTEMSPEC="%{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}"
                                          ;;
                                          *)
                                            SYSTEMSPEC=
                                    *************** arm*linux*eabi)
                                    *** 20521,20526 ****
                                    --- 20540,20555 ----
                                          ;;
                                      esac
                                      
                                    + LIBMATHSPEC=
                                    + # extra LD Flags which are required for targets
                                    + case "${host}" in
                                    + *-*-darwin*)
                                    +      ;;
                                    + *)
                                    +      LIBMATHSPEC=-lm
                                    +      ;;
                                    + esac
                                    + 
                                      # Check for --no-merge-exidx-entries, an ARM-specific linker option.
                                      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --no-merge-exidx-entries" >&5
                                      $as_echo_n "checking for --no-merge-exidx-entries... " >&6; }
                                    *************** fi
                                    *** 20568,20573 ****
                                    --- 20597,20603 ----
                                      
                                      
                                      
                                    + 
                                      # Allow the GC to be disabled.  Can be useful when debugging.
                                      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for garbage collector to use" >&5
                                      $as_echo_n "checking for garbage collector to use... " >&6; }
                                    *************** case "$THREADS" in
                                    *** 20702,20707 ****
                                    --- 20732,20754 ----
                                      	THREADLIBS='-lpthread -lrt'
                                      	THREADSPEC='-lpthread -lrt'
                                      	;;
                                    +      *-*-solaris2.8)
                                    + 	# Always use alternate thread library on Solaris 8.  Need libthread
                                    + 	# for TLS support.
                                    + 	# Need -Wl,-R to get it through libtool ...
                                    + 	THREADLIBS='-L/usr/lib/lwp$(MULTISUBDIR) -Wl,-R -Wl,/usr/lib/lwp$(MULTISUBDIR) -lpthread -lthread'
                                    + 	# ... while ld only accepts -R.
                                    + 	THREADSPEC='-L/usr/lib/lwp%{m64:/64} -R/usr/lib/lwp%{m64:/64} -lpthread -lthread'
                                    +         ;;
                                    +      *-*-solaris2.9)
                                    + 	# As on Solaris 8, need libthread for TLS support.
                                    + 	THREADLIBS='-lpthread -lthread'
                                    + 	THREADSPEC='-lpthread -lthread'
                                    + 	;;
                                    +      *-*-darwin*)
                                    + 	# Don't set THREADLIBS or THREADSPEC as Darwin already
                                    + 	# provides pthread via libSystem.
                                    + 	;;
                                           *)
                                      	THREADLIBS=-lpthread
                                      	THREADSPEC=-lpthread
                                    *************** $as_echo "#define HAVE_TZNAME 1" >>confd
                                    *** 21927,21932 ****
                                    --- 21974,21981 ----
                                        fi
                                      fi
                                      
                                    +    LDLIBICONV=`echo " $LIBICONV " | sed "s/${acl_cv_wl--Wl,}/ /g; s/,/ /g"`
                                    + 
                                      
                                         for ac_func in gethostbyname_r
                                      do :
                                    *************** fi
                                    *** 23075,23084 ****
                                         if test "$GC" = boehm; then
                                            case "${host}" in
                                                mips-sgi-irix6*)
                                    ! 	    # IRIX 6 lacks a N64 libdl.so, but only the N32 (default multilib)
                                    ! 	    # libgcj.spec is used, so override here
                                    ! 	    SYSTEMSPEC="$SYSTEMSPEC %{!mabi=64:-ldl}"
                                    ! 	  ;;
                                      	  *)
                                                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldl" >&5
                                      $as_echo_n "checking for main in -ldl... " >&6; }
                                    --- 23124,23134 ----
                                         if test "$GC" = boehm; then
                                            case "${host}" in
                                                mips-sgi-irix6*)
                                    ! 	    # While IRIX 6 has libdl for the O32 and N32 ABIs, the N64 one is
                                    ! 	    # missing.  It's unnecessary anyway since dlopen lives in libc.
                                    ! 	    ;;
                                    ! 	  *-*-darwin*)
                                    ! 	    ;;
                                      	  *)
                                                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldl" >&5
                                      $as_echo_n "checking for main in -ldl... " >&6; }
                                    *************** if test "x$ac_cv_lib_dl_main" = x""yes; 
                                    *** 23117,23123 ****
                                        SYSTEMSPEC="$SYSTEMSPEC -ldl"
                                      fi
                                      
                                    ! 	  ;;
                                            esac
                                         fi
                                      fi
                                    --- 23167,23173 ----
                                        SYSTEMSPEC="$SYSTEMSPEC -ldl"
                                      fi
                                      
                                    ! 	    ;;
                                            esac
                                         fi
                                      fi
                                    *************** rm -f core conftest.err conftest.$ac_obj
                                    *** 24374,24380 ****
                                      	CFLAGS="$chktls_save_CFLAGS"
                                      	if test "X$thread_CFLAGS" != Xfailed; then
                                      	  CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
                                    ! 	  if test "$cross_compiling" = yes; then :
                                        { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
                                      $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
                                      as_fn_error "cannot run test program while cross compiling
                                    --- 24424,24430 ----
                                      	CFLAGS="$chktls_save_CFLAGS"
                                      	if test "X$thread_CFLAGS" != Xfailed; then
                                      	  CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS"
                                    !  	  	  	  	  	  	  if test "$cross_compiling" = yes; then :
                                        { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
                                      $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
                                      as_fn_error "cannot run test program while cross compiling
                                    *************** if test "${libjava_cv_anon_version_scrip
                                    *** 24482,24488 ****
                                      else
                                        save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
                                         libjava_cv_anon_version_script=no
                                    !    CFLAGS="$CFLAGS -fPIC"; LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
                                         echo '{ global: globalsymb*; local: *; };' > conftest.map
                                         if test x$gcc_no_link = xyes; then
                                        as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
                                    --- 24532,24539 ----
                                      else
                                        save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
                                         libjava_cv_anon_version_script=no
                                    !    CFLAGS="$CFLAGS -fPIC";
                                    !    LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
                                         echo '{ global: globalsymb*; local: *; };' > conftest.map
                                         if test x$gcc_no_link = xyes; then
                                        as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
                                    *************** main ()
                                    *** 24499,24514 ****
                                      }
                                      _ACEOF
                                      if ac_fn_c_try_link "$LINENO"; then :
                                    !   libjava_cv_anon_version_script=yes
                                      fi
                                      rm -f core conftest.err conftest.$ac_objext \
                                          conftest$ac_exeext conftest.$ac_ext
                                         CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
                                      
                                      fi
                                      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libjava_cv_anon_version_script" >&5
                                      $as_echo "$libjava_cv_anon_version_script" >&6; }
                                    !  if test "$libjava_cv_anon_version_script" = yes; then
                                        ANONVERSCRIPT_TRUE=
                                        ANONVERSCRIPT_FALSE='#'
                                      else
                                    --- 24550,24594 ----
                                      }
                                      _ACEOF
                                      if ac_fn_c_try_link "$LINENO"; then :
                                    !   libjava_cv_anon_version_script=gnu
                                      fi
                                      rm -f core conftest.err conftest.$ac_objext \
                                          conftest$ac_exeext conftest.$ac_ext
                                    +    if test x$libjava_cv_anon_version_script = xno; then
                                    +      case "$target_os" in
                                    +        solaris2*)
                                    +          LDFLAGS="$save_LDFLAGS"
                                    +          LDFLAGS="$LDFLAGS -shared -Wl,-M,conftest.map"
                                    +          # Sun ld doesn't understand wildcards here.
                                    +          echo '{ global: globalsymbol; local: *; };' > conftest.map
                                    +          if test x$gcc_no_link = xyes; then
                                    +   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
                                    + fi
                                    + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
                                    + /* end confdefs.h.  */
                                    + void globalsymbol (void) {} void localsymbol (void) {}
                                    + int
                                    + main ()
                                    + {
                                    + 
                                    +   ;
                                    +   return 0;
                                    + }
                                    + _ACEOF
                                    + if ac_fn_c_try_link "$LINENO"; then :
                                    +   libjava_cv_anon_version_script=sun
                                    + fi
                                    + rm -f core conftest.err conftest.$ac_objext \
                                    +     conftest$ac_exeext conftest.$ac_ext
                                    +          ;;
                                    +      esac
                                    +    fi
                                         CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
                                      
                                      fi
                                      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libjava_cv_anon_version_script" >&5
                                      $as_echo "$libjava_cv_anon_version_script" >&6; }
                                    !  if test "$libjava_cv_anon_version_script" != no; then
                                        ANONVERSCRIPT_TRUE=
                                        ANONVERSCRIPT_FALSE='#'
                                      else
                                    *************** else
                                    *** 24516,24521 ****
                                    --- 24596,24617 ----
                                        ANONVERSCRIPT_FALSE=
                                      fi
                                      
                                    +  if test "$libjava_cv_anon_version_script" = gnu; then
                                    +   ANONVERSCRIPT_GNU_TRUE=
                                    +   ANONVERSCRIPT_GNU_FALSE='#'
                                    + else
                                    +   ANONVERSCRIPT_GNU_TRUE='#'
                                    +   ANONVERSCRIPT_GNU_FALSE=
                                    + fi
                                    + 
                                    +  if test "$libjava_cv_anon_version_script" = sun; then
                                    +   ANONVERSCRIPT_SUN_TRUE=
                                    +   ANONVERSCRIPT_SUN_FALSE='#'
                                    + else
                                    +   ANONVERSCRIPT_SUN_TRUE='#'
                                    +   ANONVERSCRIPT_SUN_FALSE=
                                    + fi
                                    + 
                                      
                                      # Check if linker supports static linking on a per library basis
                                      LD_START_STATIC_SPEC=
                                    *************** here=`${PWDCMD-pwd}`
                                    *** 24535,24559 ****
                                      # We get this from the environment.
                                      
                                      
                                      
                                      # Check whether --with-python-dir was given.
                                      if test "${with_python_dir+set}" = set; then :
                                        withval=$with_python_dir; with_python_dir=$withval
                                      else
                                    !   with_python_dir=""
                                      fi
                                      
                                      
                                    ! if test "x${with_python_dir}" = "x"
                                    ! then
                                    !   # Needed for installing Python modules during make install.
                                    !   python_mod_dir="\${prefix}/share/python"
                                    !   # Needed for substituting into aot-compile*
                                    !   python_mod_dir_expanded="${expanded_prefix}/share/python"
                                    ! else
                                    !   python_mod_dir="\${prefix}${with_python_dir}"
                                    !   python_mod_dir_expanded="${expanded_prefix}${with_python_dir}"
                                    ! fi
                                      { $as_echo "$as_me:${as_lineno-$LINENO}: result: Python modules dir: ${python_mod_dir_expanded}" >&5
                                      $as_echo "Python modules dir: ${python_mod_dir_expanded}" >&6; };
                                      
                                    --- 24631,24652 ----
                                      # We get this from the environment.
                                      
                                      
                                    + default_python_dir="/share/gcc-`cat ${srcdir}/../gcc/BASE-VER`/python/libjava"
                                      
                                      # Check whether --with-python-dir was given.
                                      if test "${with_python_dir+set}" = set; then :
                                        withval=$with_python_dir; with_python_dir=$withval
                                      else
                                    !   with_python_dir="${default_python_dir}"
                                      fi
                                      
                                      
                                    ! # Needed for installing Python modules during make install.
                                    ! python_mod_dir="\${prefix}${with_python_dir}"
                                    ! 
                                    ! # Needed for substituting into aot-compile*
                                    ! python_mod_dir_expanded="${expanded_prefix}${with_python_dir}"
                                    ! 
                                      { $as_echo "$as_me:${as_lineno-$LINENO}: result: Python modules dir: ${python_mod_dir_expanded}" >&5
                                      $as_echo "Python modules dir: ${python_mod_dir_expanded}" >&6; };
                                      
                                    *************** if test -z "${ANONVERSCRIPT_TRUE}" && te
                                    *** 25055,25060 ****
                                    --- 25148,25161 ----
                                        as_fn_error "conditional \"ANONVERSCRIPT\" was never defined.
                                      Usually this means the macro was only invoked conditionally." "$LINENO" 5
                                      fi
                                    + if test -z "${ANONVERSCRIPT_GNU_TRUE}" && test -z "${ANONVERSCRIPT_GNU_FALSE}"; then
                                    +   as_fn_error "conditional \"ANONVERSCRIPT_GNU\" was never defined.
                                    + Usually this means the macro was only invoked conditionally." "$LINENO" 5
                                    + fi
                                    + if test -z "${ANONVERSCRIPT_SUN_TRUE}" && test -z "${ANONVERSCRIPT_SUN_FALSE}"; then
                                    +   as_fn_error "conditional \"ANONVERSCRIPT_SUN\" was never defined.
                                    + Usually this means the macro was only invoked conditionally." "$LINENO" 5
                                    + fi
                                      if test -z "${INSTALL_AOT_RPM_TRUE}" && test -z "${INSTALL_AOT_RPM_FALSE}"; then
                                        as_fn_error "conditional \"INSTALL_AOT_RPM\" was never defined.
                                      Usually this means the macro was only invoked conditionally." "$LINENO" 5
                                    diff -Nrcpad gcc-4.5.2/libjava/configure.ac gcc-4.6.0/libjava/configure.ac
                                    *** gcc-4.5.2/libjava/configure.ac	Thu Jul 15 12:05:56 2010
                                    --- gcc-4.6.0/libjava/configure.ac	Mon Feb 14 14:28:00 2011
                                    *************** AC_PROG_CC
                                    *** 151,157 ****
                                      AC_PROG_CXX
                                      CXXFLAGS="$save_CXXFLAGS"
                                      
                                    ! AM_INIT_AUTOMAKE([1.9.0])
                                      
                                      AC_CHECK_TOOL(AS, as)
                                      AC_CHECK_TOOL(LD, ld)
                                    --- 151,157 ----
                                      AC_PROG_CXX
                                      CXXFLAGS="$save_CXXFLAGS"
                                      
                                    ! AM_INIT_AUTOMAKE([no-dist 1.9.0])
                                      
                                      AC_CHECK_TOOL(AS, as)
                                      AC_CHECK_TOOL(LD, ld)
                                    *************** NATIVE=yes
                                    *** 394,400 ****
                                      # Which gcj and host gcj (for ecjx) do we use?
                                      which_gcj=default
                                      host_exeext=${ac_exeext}
                                    ! GCJ_FOR_ECJX=
                                      built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
                                      if test -n "${with_cross_host}"; then
                                        # We are being configured with a cross compiler. We can't
                                    --- 394,401 ----
                                      # Which gcj and host gcj (for ecjx) do we use?
                                      which_gcj=default
                                      host_exeext=${ac_exeext}
                                    ! GCJ_FOR_ECJX='$(GCJ)'
                                    ! GCC_FOR_ECJX='$(CXX)'
                                      built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
                                      if test -n "${with_cross_host}"; then
                                        # We are being configured with a cross compiler. We can't
                                    *************** if test -n "${with_cross_host}"; then
                                    *** 402,407 ****
                                    --- 403,409 ----
                                        NATIVE=no
                                        cross_host_exeext=
                                        GCJ_FOR_ECJX="${with_cross_host}-gcj"
                                    +   GCC_FOR_ECJX="${with_cross_host}-gcc"
                                        case "${with_cross_host}" in
                                           *mingw* | *cygwin*)
                                               cross_host_exeext=.exe
                                    *************** JAVAC="$GCJ -C"
                                    *** 467,472 ****
                                    --- 469,475 ----
                                      export JAVAC
                                      
                                      AC_SUBST(GCJ_FOR_ECJX)
                                    + AC_SUBST(GCC_FOR_ECJX)
                                      AC_SUBST(GCJH)
                                      AC_SUBST(host_exeext)
                                      
                                    *************** AC_SUBST(INCLTDL)
                                    *** 544,549 ****
                                    --- 547,553 ----
                                      AC_SUBST(LIBLTDL)
                                      AC_SUBST(DIRLTDL)
                                      AC_PROG_LIBTOOL
                                    + ACX_LT_HOST_FLAGS
                                      AM_PROG_GCJ
                                      AM_PROG_CC_C_O
                                      
                                    *************** case "${host}" in
                                    *** 883,889 ****
                                            fi
                                          ;;
                                          *-*-darwin[[912]]*)
                                    !       SYSTEMSPEC="-allow_stack_execute"
                                          ;;
                                          *)
                                            SYSTEMSPEC=
                                    --- 887,893 ----
                                            fi
                                          ;;
                                          *-*-darwin[[912]]*)
                                    !       SYSTEMSPEC="%{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}"
                                          ;;
                                          *)
                                            SYSTEMSPEC=
                                    *************** arm*linux*eabi)
                                    *** 928,933 ****
                                    --- 932,947 ----
                                          ;;
                                      esac
                                      
                                    + LIBMATHSPEC=
                                    + # extra LD Flags which are required for targets
                                    + case "${host}" in
                                    + *-*-darwin*)
                                    +      ;;
                                    + *)
                                    +      LIBMATHSPEC=-lm
                                    +      ;;
                                    + esac
                                    + 
                                      # Check for --no-merge-exidx-entries, an ARM-specific linker option.
                                      AC_CACHE_CHECK([for --no-merge-exidx-entries], [libgcj_cv_exidx],
                                        [saved_ldflags="$LDFLAGS"
                                    *************** fi   
                                    *** 953,958 ****
                                    --- 967,973 ----
                                      AC_SUBST(extra_ldflags_libjava)
                                      AC_SUBST(extra_ldflags)
                                      AC_SUBST(LIBSTDCXXSPEC)
                                    + AC_SUBST(LIBMATHSPEC)
                                      
                                      AC_SUBST(LIBGCJTESTSPEC)
                                      
                                    *************** case "$THREADS" in
                                    *** 1064,1069 ****
                                    --- 1079,1101 ----
                                      	THREADLIBS='-lpthread -lrt'
                                      	THREADSPEC='-lpthread -lrt'
                                      	;;
                                    +      *-*-solaris2.8)
                                    + 	# Always use alternate thread library on Solaris 8.  Need libthread
                                    + 	# for TLS support.
                                    + 	# Need -Wl,-R to get it through libtool ...
                                    + 	THREADLIBS='-L/usr/lib/lwp$(MULTISUBDIR) -Wl,-R -Wl,/usr/lib/lwp$(MULTISUBDIR) -lpthread -lthread'
                                    + 	# ... while ld only accepts -R.
                                    + 	THREADSPEC='-L/usr/lib/lwp%{m64:/64} -R/usr/lib/lwp%{m64:/64} -lpthread -lthread'
                                    +         ;;
                                    +      *-*-solaris2.9)
                                    + 	# As on Solaris 8, need libthread for TLS support.
                                    + 	THREADLIBS='-lpthread -lthread'
                                    + 	THREADSPEC='-lpthread -lthread'
                                    + 	;;
                                    +      *-*-darwin*)
                                    + 	# Don't set THREADLIBS or THREADSPEC as Darwin already
                                    + 	# provides pthread via libSystem.
                                    + 	;;
                                           *)
                                      	THREADLIBS=-lpthread
                                      	THREADSPEC=-lpthread
                                    *************** else
                                    *** 1208,1213 ****
                                    --- 1240,1247 ----
                                         AM_ICONV
                                         AM_LC_MESSAGES
                                         AC_STRUCT_TIMEZONE
                                    +    LDLIBICONV=`echo " $LIBICONV " | sed "s/${acl_cv_wl--Wl,}/ /g; s/,/ /g"`
                                    +    AC_SUBST([LDLIBICONV])
                                      
                                         AC_CHECK_FUNCS(gethostbyname_r, [
                                           AC_DEFINE(HAVE_GETHOSTBYNAME_R, 1,
                                    *************** else
                                    *** 1428,1440 ****
                                         if test "$GC" = boehm; then
                                            case "${host}" in
                                                mips-sgi-irix6*)
                                    ! 	    # IRIX 6 lacks a N64 libdl.so, but only the N32 (default multilib)
                                    ! 	    # libgcj.spec is used, so override here
                                    ! 	    SYSTEMSPEC="$SYSTEMSPEC %{!mabi=64:-ldl}"
                                    ! 	  ;;
                                      	  *)
                                                  AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl")
                                    ! 	  ;;
                                            esac
                                         fi
                                      fi
                                    --- 1462,1475 ----
                                         if test "$GC" = boehm; then
                                            case "${host}" in
                                                mips-sgi-irix6*)
                                    ! 	    # While IRIX 6 has libdl for the O32 and N32 ABIs, the N64 one is
                                    ! 	    # missing.  It's unnecessary anyway since dlopen lives in libc.
                                    ! 	    ;;
                                    ! 	  *-*-darwin*)
                                    ! 	    ;;
                                      	  *)
                                                  AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl")
                                    ! 	    ;;
                                            esac
                                         fi
                                      fi
                                    *************** AC_CACHE_CHECK([whether ld supports anon
                                    *** 1767,1779 ****
                                        [libjava_cv_anon_version_script],
                                        [save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
                                         libjava_cv_anon_version_script=no
                                    !    CFLAGS="$CFLAGS -fPIC"; LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
                                         echo '{ global: globalsymb*; local: *; };' > conftest.map
                                         AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
                                    ! 	       [libjava_cv_anon_version_script=yes], [])
                                         CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
                                        ])
                                    ! AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" = yes)
                                      
                                      # Check if linker supports static linking on a per library basis
                                      LD_START_STATIC_SPEC=
                                    --- 1802,1829 ----
                                        [libjava_cv_anon_version_script],
                                        [save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
                                         libjava_cv_anon_version_script=no
                                    !    CFLAGS="$CFLAGS -fPIC";
                                    !    LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
                                         echo '{ global: globalsymb*; local: *; };' > conftest.map
                                         AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
                                    ! 	       [libjava_cv_anon_version_script=gnu], [])
                                    !    if test x$libjava_cv_anon_version_script = xno; then
                                    !      case "$target_os" in
                                    !        solaris2*)
                                    !          LDFLAGS="$save_LDFLAGS"
                                    !          LDFLAGS="$LDFLAGS -shared -Wl,-M,conftest.map"
                                    !          # Sun ld doesn't understand wildcards here.
                                    !          echo '{ global: globalsymbol; local: *; };' > conftest.map
                                    !          AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
                                    ! 	 	     [libjava_cv_anon_version_script=sun], [])
                                    !          ;;
                                    !      esac
                                    !    fi
                                         CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
                                        ])
                                    ! AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" != no)
                                    ! AM_CONDITIONAL(ANONVERSCRIPT_GNU, test "$libjava_cv_anon_version_script" = gnu)
                                    ! AM_CONDITIONAL(ANONVERSCRIPT_SUN, test "$libjava_cv_anon_version_script" = sun)
                                      
                                      # Check if linker supports static linking on a per library basis
                                      LD_START_STATIC_SPEC=
                                    *************** AC_SUBST(here)
                                    *** 1793,1813 ****
                                      # We get this from the environment.
                                      AC_SUBST(GCJFLAGS)
                                      
                                      AC_ARG_WITH([python-dir],
                                                  AS_HELP_STRING([--with-python-dir],
                                                                 [the location to install Python modules. This path should NOT include the prefix.]),
                                    !             [with_python_dir=$withval], [with_python_dir=""])
                                      
                                    - if test "x${with_python_dir}" = "x"
                                    - then
                                    -   # Needed for installing Python modules during make install.
                                    -   python_mod_dir="\${prefix}/share/python"
                                    -   # Needed for substituting into aot-compile*
                                    -   python_mod_dir_expanded="${expanded_prefix}/share/python"
                                    - else
                                    -   python_mod_dir="\${prefix}${with_python_dir}"
                                    -   python_mod_dir_expanded="${expanded_prefix}${with_python_dir}"
                                    - fi
                                      AC_MSG_RESULT(Python modules dir: ${python_mod_dir_expanded});
                                      AC_SUBST(python_mod_dir)
                                      AC_SUBST(python_mod_dir_expanded)
                                    --- 1843,1860 ----
                                      # We get this from the environment.
                                      AC_SUBST(GCJFLAGS)
                                      
                                    + default_python_dir="/share/gcc-`cat ${srcdir}/../gcc/BASE-VER`/python/libjava"
                                      AC_ARG_WITH([python-dir],
                                                  AS_HELP_STRING([--with-python-dir],
                                                                 [the location to install Python modules. This path should NOT include the prefix.]),
                                    !             [with_python_dir=$withval], [with_python_dir="${default_python_dir}"])
                                    ! 
                                    ! # Needed for installing Python modules during make install.
                                    ! python_mod_dir="\${prefix}${with_python_dir}"
                                    ! 
                                    ! # Needed for substituting into aot-compile*
                                    ! python_mod_dir_expanded="${expanded_prefix}${with_python_dir}"
                                      
                                      AC_MSG_RESULT(Python modules dir: ${python_mod_dir_expanded});
                                      AC_SUBST(python_mod_dir)
                                      AC_SUBST(python_mod_dir_expanded)
                                    diff -Nrcpad gcc-4.5.2/libjava/configure.host gcc-4.6.0/libjava/configure.host
                                    *** gcc-4.5.2/libjava/configure.host	Thu Jul 15 12:05:56 2010
                                    --- gcc-4.6.0/libjava/configure.host	Mon Dec  6 00:50:04 2010
                                    *************** case "${host}" in
                                    *** 356,362 ****
                                        	BACKTRACESPEC=
                                      	# Win32 DLLs are limited to 64k exported symbols each.
                                      	enable_libgcj_sublibs_default=yes
                                    ! 	libgcj_sublib_ltflags='-no-undefined -bindir $(bindir) \
                                      	    -Wl,-u,__ZN3org4ietf4jgss10GSSManagerC1Ev,-L..,-lgcj-noncore-dummy'
                                      	libgcj_sublib_core_extra_deps=libgcj-noncore-dummy.dll.a
                                        ;;
                                    --- 356,362 ----
                                        	BACKTRACESPEC=
                                      	# Win32 DLLs are limited to 64k exported symbols each.
                                      	enable_libgcj_sublibs_default=yes
                                    ! 	libgcj_sublib_ltflags='$(lt_host_flags) \
                                      	    -Wl,-u,__ZN3org4ietf4jgss10GSSManagerC1Ev,-L..,-lgcj-noncore-dummy'
                                      	libgcj_sublib_core_extra_deps=libgcj-noncore-dummy.dll.a
                                        ;;
                                    diff -Nrcpad gcc-4.5.2/libjava/contrib/aot-compile-rpm.in gcc-4.6.0/libjava/contrib/aot-compile-rpm.in
                                    *** gcc-4.5.2/libjava/contrib/aot-compile-rpm.in	Wed Jul  2 13:17:54 2008
                                    --- gcc-4.6.0/libjava/contrib/aot-compile-rpm.in	Mon Feb 14 16:00:28 2011
                                    ***************
                                    *** 1,6 ****
                                      #!/usr/bin/env python
                                      
                                    ! ## Copyright (C) 2005, 2006, 2007 Free Software Foundation
                                      ## Written by Gary Benson <gbenson@redhat.com>
                                      ##
                                      ## This program is free software; you can redistribute it and/or modify
                                    --- 1,6 ----
                                      #!/usr/bin/env python
                                      
                                    ! ## Copyright (C) 2005, 2006, 2007, 2011 Free Software Foundation
                                      ## Written by Gary Benson <gbenson@redhat.com>
                                      ##
                                      ## This program is free software; you can redistribute it and/or modify
                                    ***************
                                    *** 14,20 ****
                                      ## GNU General Public License for more details.
                                      
                                      import sys
                                    ! sys.path.append("@python_mod_dir_expanded@")
                                      import aotcompile
                                      import os
                                      
                                    --- 14,20 ----
                                      ## GNU General Public License for more details.
                                      
                                      import sys
                                    ! sys.path.insert(0, "@python_mod_dir_expanded@")
                                      import aotcompile
                                      import os
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/contrib/aot-compile.in gcc-4.6.0/libjava/contrib/aot-compile.in
                                    *** gcc-4.5.2/libjava/contrib/aot-compile.in	Wed Jul  2 13:17:54 2008
                                    --- gcc-4.6.0/libjava/contrib/aot-compile.in	Mon Feb 14 16:00:28 2011
                                    ***************
                                    *** 1,6 ****
                                      #!/usr/bin/env python
                                      
                                    ! ## Copyright (C) 2006 Free Software Foundation
                                      ## Written by Gary Benson <gbenson@redhat.com>
                                      ##
                                      ## This program is free software; you can redistribute it and/or modify
                                    --- 1,6 ----
                                      #!/usr/bin/env python
                                      
                                    ! ## Copyright (C) 2006, 2011 Free Software Foundation
                                      ## Written by Gary Benson <gbenson@redhat.com>
                                      ##
                                      ## This program is free software; you can redistribute it and/or modify
                                    ***************
                                    *** 14,20 ****
                                      ## GNU General Public License for more details.
                                      
                                      import sys
                                    ! sys.path.append("@python_mod_dir_expanded@")
                                      import aotcompile
                                      import getopt
                                      import os
                                    --- 14,20 ----
                                      ## GNU General Public License for more details.
                                      
                                      import sys
                                    ! sys.path.insert(0, "@python_mod_dir_expanded@")
                                      import aotcompile
                                      import getopt
                                      import os
                                    diff -Nrcpad gcc-4.5.2/libjava/exception.cc gcc-4.6.0/libjava/exception.cc
                                    *** gcc-4.5.2/libjava/exception.cc	Fri Nov 13 18:05:20 2009
                                    --- gcc-4.6.0/libjava/exception.cc	Wed Apr  7 20:27:37 2010
                                    ***************
                                    *** 1,6 ****
                                      // Functions for Exception Support for Java.
                                      
                                    ! /* Copyright (C) 1998, 1999, 2001, 2002, 2006  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    --- 1,6 ----
                                      // Functions for Exception Support for Java.
                                      
                                    ! /* Copyright (C) 1998, 1999, 2001, 2002, 2006, 2010  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    *************** _Jv_Throw (jthrowable value)
                                    *** 111,121 ****
                                      
                                        /* We're happy with setjmp/longjmp exceptions or region-based
                                           exception handlers: entry points are provided here for both.  */
                                    -   _Unwind_Reason_Code code;
                                      #ifdef SJLJ_EXCEPTIONS
                                    !   code = _Unwind_SjLj_RaiseException (&xh->unwindHeader);
                                      #else
                                    !   code = _Unwind_RaiseException (&xh->unwindHeader);
                                      #endif
                                      
                                        /* If code == _URC_END_OF_STACK, then we reached top of stack without
                                    --- 111,120 ----
                                      
                                        /* We're happy with setjmp/longjmp exceptions or region-based
                                           exception handlers: entry points are provided here for both.  */
                                      #ifdef SJLJ_EXCEPTIONS
                                    !   _Unwind_SjLj_RaiseException (&xh->unwindHeader);
                                      #else
                                    !   _Unwind_RaiseException (&xh->unwindHeader);
                                      #endif
                                      
                                        /* If code == _URC_END_OF_STACK, then we reached top of stack without
                                    diff -Nrcpad gcc-4.5.2/libjava/gcj/Makefile.in gcc-4.6.0/libjava/gcj/Makefile.in
                                    *** gcc-4.5.2/libjava/gcj/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/gcj/Makefile.in	Fri Feb  4 05:51:57 2011
                                    *************** build_triplet = @build@
                                    *** 36,44 ****
                                      host_triplet = @host@
                                      target_triplet = @target@
                                      subdir = gcj
                                    ! DIST_COMMON = $(gcj_HEADERS) $(srcdir)/Makefile.am \
                                    ! 	$(srcdir)/Makefile.in $(srcdir)/libgcj-config.h.in \
                                    ! 	$(toolgcj_HEADERS)
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
                                      	$(top_srcdir)/../config/acx.m4 \
                                    --- 36,43 ----
                                      host_triplet = @host@
                                      target_triplet = @target@
                                      subdir = gcj
                                    ! DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
                                    ! 	$(srcdir)/libgcj-config.h.in $(gcj_HEADERS) $(toolgcj_HEADERS)
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
                                      	$(top_srcdir)/../config/acx.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/libl
                                    *** 52,57 ****
                                    --- 51,57 ----
                                      	$(top_srcdir)/../config/lib-ld.m4 \
                                      	$(top_srcdir)/../config/lib-link.m4 \
                                      	$(top_srcdir)/../config/lib-prefix.m4 \
                                    + 	$(top_srcdir)/../config/lthostflags.m4 \
                                      	$(top_srcdir)/../config/multi.m4 \
                                      	$(top_srcdir)/../config/no-executables.m4 \
                                      	$(top_srcdir)/../config/override.m4 \
                                    *************** CONFIG_HEADER = $(top_builddir)/include/
                                    *** 68,74 ****
                                      CONFIG_CLEAN_FILES =
                                      CONFIG_CLEAN_VPATH_FILES =
                                      SOURCES =
                                    - DIST_SOURCES =
                                      am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
                                      am__vpath_adj = case $$p in \
                                          $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
                                    --- 68,73 ----
                                    *************** am__installdirs = "$(DESTDIR)$(gcjdir)" 
                                    *** 94,100 ****
                                      HEADERS = $(gcj_HEADERS) $(toolgcj_HEADERS)
                                      ETAGS = etags
                                      CTAGS = ctags
                                    - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
                                      ACLOCAL = @ACLOCAL@
                                      AMTAR = @AMTAR@
                                      ANTLR_JAR = @ANTLR_JAR@
                                    --- 93,98 ----
                                    *************** EGREP = @EGREP@
                                    *** 136,141 ****
                                    --- 134,140 ----
                                      EXCEPTIONSPEC = @EXCEPTIONSPEC@
                                      EXEEXT = @EXEEXT@
                                      FGREP = @FGREP@
                                    + GCC_FOR_ECJX = @GCC_FOR_ECJX@
                                      GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
                                      GCDEPS = @GCDEPS@
                                      GCINCS = @GCINCS@
                                    *************** JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@
                                    *** 176,181 ****
                                    --- 175,181 ----
                                      JVM_ROOT_DIR = @JVM_ROOT_DIR@
                                      LD = @LD@
                                      LDFLAGS = @LDFLAGS@
                                    + LDLIBICONV = @LDLIBICONV@
                                      LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@
                                      LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@
                                      LIBART_CFLAGS = @LIBART_CFLAGS@
                                    *************** LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_
                                    *** 196,201 ****
                                    --- 196,202 ----
                                      LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
                                      LIBICONV = @LIBICONV@
                                      LIBLTDL = @LIBLTDL@
                                    + LIBMATHSPEC = @LIBMATHSPEC@
                                      LIBOBJS = @LIBOBJS@
                                      LIBS = @LIBS@
                                      LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
                                    *************** libexecdir = @libexecdir@
                                    *** 308,313 ****
                                    --- 309,315 ----
                                      libstdcxx_incdir = @libstdcxx_incdir@
                                      localedir = @localedir@
                                      localstatedir = @localstatedir@
                                    + lt_host_flags = @lt_host_flags@
                                      mandir = @mandir@
                                      mkdir_p = @mkdir_p@
                                      mkinstalldirs = @mkinstalldirs@
                                    *************** GTAGS:
                                    *** 497,533 ****
                                      
                                      distclean-tags:
                                      	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
                                    - 
                                    - distdir: $(DISTFILES)
                                    - 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
                                    - 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
                                    - 	list='$(DISTFILES)'; \
                                    - 	  dist_files=`for file in $$list; do echo $$file; done | \
                                    - 	  sed -e "s|^$$srcdirstrip/||;t" \
                                    - 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
                                    - 	case $$dist_files in \
                                    - 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
                                    - 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
                                    - 			   sort -u` ;; \
                                    - 	esac; \
                                    - 	for file in $$dist_files; do \
                                    - 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
                                    - 	  if test -d $$d/$$file; then \
                                    - 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
                                    - 	    if test -d "$(distdir)/$$file"; then \
                                    - 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
                                    - 	    fi; \
                                    - 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
                                    - 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
                                    - 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
                                    - 	    fi; \
                                    - 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
                                    - 	  else \
                                    - 	    test -f "$(distdir)/$$file" \
                                    - 	    || cp -p $$d/$$file "$(distdir)/$$file" \
                                    - 	    || exit 1; \
                                    - 	  fi; \
                                    - 	done
                                      check-am: all-am
                                      check: check-am
                                      all-am: Makefile $(HEADERS) libgcj-config.h
                                    --- 499,504 ----
                                    *************** uninstall-am: uninstall-gcjHEADERS unins
                                    *** 630,643 ****
                                      
                                      .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
                                      	clean-libtool ctags distclean distclean-generic distclean-hdr \
                                    ! 	distclean-libtool distclean-tags distdir dvi dvi-am html \
                                    ! 	html-am info info-am install install-am install-data \
                                    ! 	install-data-am install-dvi install-dvi-am install-exec \
                                    ! 	install-exec-am install-gcjHEADERS install-html \
                                    ! 	install-html-am install-info install-info-am install-man \
                                    ! 	install-pdf install-pdf-am install-ps install-ps-am \
                                    ! 	install-strip install-toolgcjHEADERS installcheck \
                                    ! 	installcheck-am installdirs maintainer-clean \
                                      	maintainer-clean-generic mostlyclean mostlyclean-generic \
                                      	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
                                      	uninstall-am uninstall-gcjHEADERS uninstall-toolgcjHEADERS
                                    --- 601,613 ----
                                      
                                      .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
                                      	clean-libtool ctags distclean distclean-generic distclean-hdr \
                                    ! 	distclean-libtool distclean-tags dvi dvi-am html html-am info \
                                    ! 	info-am install install-am install-data install-data-am \
                                    ! 	install-dvi install-dvi-am install-exec install-exec-am \
                                    ! 	install-gcjHEADERS install-html install-html-am install-info \
                                    ! 	install-info-am install-man install-pdf install-pdf-am \
                                    ! 	install-ps install-ps-am install-strip install-toolgcjHEADERS \
                                    ! 	installcheck installcheck-am installdirs maintainer-clean \
                                      	maintainer-clean-generic mostlyclean mostlyclean-generic \
                                      	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
                                      	uninstall-am uninstall-gcjHEADERS uninstall-toolgcjHEADERS
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/gcj/convert/Convert.java gcc-4.6.0/libjava/gnu/gcj/convert/Convert.java
                                    *** gcc-4.5.2/libjava/gnu/gcj/convert/Convert.java	Sat Jan  9 00:00:42 2010
                                    --- gcc-4.6.0/libjava/gnu/gcj/convert/Convert.java	Mon Jan  3 16:14:57 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Copyright (C) 1999, 2002, 2005, 2006, 2007, 2008, 2009, 2010
                                         Free Software Foundation
                                      
                                         This file is part of libgcj.
                                    --- 1,4 ----
                                    ! /* Copyright (C) 1999, 2002, 2005, 2006, 2007, 2008, 2009, 2010, 2011
                                         Free Software Foundation
                                      
                                         This file is part of libgcj.
                                    *************** public class Convert
                                    *** 46,52 ****
                                      		       + ") "
                                      		       + System.getProperty("java.vm.version"));
                                          System.out.println();
                                    !     System.out.println("Copyright (C) 2010 Free Software Foundation, Inc.");
                                          System.out.println("This is free software; see the source for copying conditions.  There is NO");
                                          System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
                                          System.exit(0);
                                    --- 46,52 ----
                                      		       + ") "
                                      		       + System.getProperty("java.vm.version"));
                                          System.out.println();
                                    !     System.out.println("Copyright (C) 2011 Free Software Foundation, Inc.");
                                          System.out.println("This is free software; see the source for copying conditions.  There is NO");
                                          System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
                                          System.exit(0);
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/gcj/runtime/natSharedLibLoader.cc gcc-4.6.0/libjava/gnu/gcj/runtime/natSharedLibLoader.cc
                                    *** gcc-4.5.2/libjava/gnu/gcj/runtime/natSharedLibLoader.cc	Tue Jan  9 19:58:05 2007
                                    --- gcc-4.6.0/libjava/gnu/gcj/runtime/natSharedLibLoader.cc	Mon Jan  3 20:52:22 2011
                                    ***************
                                    *** 1,6 ****
                                      // natSharedLibLoader.cc - Implementation of SharedLibHelper native methods.
                                      
                                    ! /* Copyright (C) 2001, 2003, 2004, 2005, 2006  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    --- 1,6 ----
                                      // natSharedLibLoader.cc - Implementation of SharedLibHelper native methods.
                                      
                                    ! /* Copyright (C) 2001, 2003, 2004, 2005, 2006, 2010  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    *************** gnu::gcj::runtime::SharedLibHelper::hasR
                                    *** 119,129 ****
                                      #endif
                                      }
                                      
                                      gnu::gcj::Core *
                                      gnu::gcj::runtime::SharedLibHelper::findCore (jstring name)
                                      {
                                      #ifdef HAVE_DLOPEN
                                    -   extern gnu::gcj::Core *_Jv_create_core (_Jv_core_chain *node, jstring name);
                                        ensureInit();
                                        return _Jv_create_core ((_Jv_core_chain *) core_chain, name);
                                      #else
                                    --- 119,132 ----
                                      #endif
                                      }
                                      
                                    + #ifdef HAVE_DLOPEN
                                    + extern gnu::gcj::Core *_Jv_create_core (_Jv_core_chain *node, jstring name);
                                    + #endif
                                    + 
                                      gnu::gcj::Core *
                                      gnu::gcj::runtime::SharedLibHelper::findCore (jstring name)
                                      {
                                      #ifdef HAVE_DLOPEN
                                        ensureInit();
                                        return _Jv_create_core ((_Jv_core_chain *) core_chain, name);
                                      #else
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/gcj/tools/gcj_dbtool/Main.java gcc-4.6.0/libjava/gnu/gcj/tools/gcj_dbtool/Main.java
                                    *** gcc-4.5.2/libjava/gnu/gcj/tools/gcj_dbtool/Main.java	Sat Jan  9 00:00:42 2010
                                    --- gcc-4.6.0/libjava/gnu/gcj/tools/gcj_dbtool/Main.java	Mon Jan  3 16:14:57 2011
                                    ***************
                                    *** 1,4 ****
                                    ! /* Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
                                         Free Software Foundation
                                      
                                         This file is part of libgcj.
                                    --- 1,4 ----
                                    ! /* Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
                                         Free Software Foundation
                                      
                                         This file is part of libgcj.
                                    *************** public class Main
                                    *** 47,53 ****
                                      			   + ") "
                                      			   + System.getProperty("java.vm.version"));
                                      	System.out.println();
                                    ! 	System.out.println("Copyright 2010 Free Software Foundation, Inc.");
                                      	System.out.println("This is free software; see the source for copying conditions.  There is NO");
                                      	System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
                                      	return;
                                    --- 47,53 ----
                                      			   + ") "
                                      			   + System.getProperty("java.vm.version"));
                                      	System.out.println();
                                    ! 	System.out.println("Copyright 2011 Free Software Foundation, Inc.");
                                      	System.out.println("This is free software; see the source for copying conditions.  There is NO");
                                      	System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
                                      	return;
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/java/security/jce/prng/natVMSecureRandomWin32.cc gcc-4.6.0/libjava/gnu/java/security/jce/prng/natVMSecureRandomWin32.cc
                                    *** gcc-4.5.2/libjava/gnu/java/security/jce/prng/natVMSecureRandomWin32.cc	Tue Nov 30 20:56:35 2010
                                    --- gcc-4.6.0/libjava/gnu/java/security/jce/prng/natVMSecureRandomWin32.cc	Thu Aug 12 18:23:32 2010
                                    ***************
                                    *** 1,6 ****
                                      // natVMSecureRandomWin32.cc - Native part of VMSecureRandom class for Win32.
                                      
                                    ! /* Copyright (C) 2009 Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    --- 1,6 ----
                                      // natVMSecureRandomWin32.cc - Native part of VMSecureRandom class for Win32.
                                      
                                    ! /* Copyright (C) 2009, 2010 Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h gcc-4.6.0/libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h
                                    *** gcc-4.5.2/libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h	Fri Oct 13 22:10:15 2006
                                    --- gcc-4.6.0/libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 7,12 ****
                                    --- 7,14 ----
                                      #pragma interface
                                      
                                      #include <java/lang/Object.h>
                                    + #include <gcj/array.h>
                                    + 
                                      extern "Java"
                                      {
                                        namespace gnu
                                    *************** class gnu::javax::print::ipp::attribute:
                                    *** 33,39 ****
                                      public:
                                        RequestedAttributes(::java::lang::String *);
                                        void addValue(::java::lang::String *);
                                    !   ::java::util::List * getValues();
                                        ::java::lang::Class * getCategory();
                                        ::java::lang::String * getName();
                                        ::java::lang::String * toString();
                                    --- 35,41 ----
                                      public:
                                        RequestedAttributes(::java::lang::String *);
                                        void addValue(::java::lang::String *);
                                    !   JArray< ::java::lang::String * > * getValues();
                                        ::java::lang::Class * getCategory();
                                        ::java::lang::String * getName();
                                        ::java::lang::String * toString();
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/javax/swing/text/html/css/Selector.h gcc-4.6.0/libjava/gnu/javax/swing/text/html/css/Selector.h
                                    *** gcc-4.5.2/libjava/gnu/javax/swing/text/html/css/Selector.h	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/gnu/javax/swing/text/html/css/Selector.h	Tue Oct 12 15:55:12 2010
                                    *************** class gnu::javax::swing::text::html::css
                                    *** 37,43 ****
                                      
                                      public:
                                        Selector(::java::lang::String *);
                                    !   virtual jboolean matches(JArray< ::java::lang::String * > *, JArray< ::java::util::Map * > *);
                                        virtual jint getSpecificity();
                                        virtual ::java::lang::String * toString();
                                      private:
                                    --- 37,43 ----
                                      
                                      public:
                                        Selector(::java::lang::String *);
                                    !   virtual jboolean matches(JArray< ::java::lang::String * > *, ::java::util::List *);
                                        virtual jint getSpecificity();
                                        virtual ::java::lang::String * toString();
                                      private:
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/xml/stream/FilteredStreamReader.h gcc-4.6.0/libjava/gnu/xml/stream/FilteredStreamReader.h
                                    *** gcc-4.5.2/libjava/gnu/xml/stream/FilteredStreamReader.h	Fri Oct 13 22:10:15 2006
                                    --- gcc-4.6.0/libjava/gnu/xml/stream/FilteredStreamReader.h	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 6,12 ****
                                      
                                      #pragma interface
                                      
                                    ! #include <javax/xml/stream/util/ReaderDelegate.h>
                                      extern "Java"
                                      {
                                        namespace gnu
                                    --- 6,12 ----
                                      
                                      #pragma interface
                                      
                                    ! #include <javax/xml/stream/util/StreamReaderDelegate.h>
                                      extern "Java"
                                      {
                                        namespace gnu
                                    *************** extern "Java"
                                    *** 32,38 ****
                                        }
                                      }
                                      
                                    ! class gnu::xml::stream::FilteredStreamReader : public ::javax::xml::stream::util::ReaderDelegate
                                      {
                                      
                                      public: // actually package-private
                                    --- 32,38 ----
                                        }
                                      }
                                      
                                    ! class gnu::xml::stream::FilteredStreamReader : public ::javax::xml::stream::util::StreamReaderDelegate
                                      {
                                      
                                      public: // actually package-private
                                    *************** public:
                                    *** 42,48 ****
                                        virtual jint next();
                                        virtual jint nextTag();
                                      public: // actually package-private
                                    !   ::javax::xml::stream::XMLStreamReader * __attribute__((aligned(__alignof__( ::javax::xml::stream::util::ReaderDelegate)))) reader;
                                        ::javax::xml::stream::StreamFilter * filter;
                                      public:
                                        static ::java::lang::Class class$;
                                    --- 42,48 ----
                                        virtual jint next();
                                        virtual jint nextTag();
                                      public: // actually package-private
                                    !   ::javax::xml::stream::XMLStreamReader * __attribute__((aligned(__alignof__( ::javax::xml::stream::util::StreamReaderDelegate)))) reader;
                                        ::javax::xml::stream::StreamFilter * filter;
                                      public:
                                        static ::java::lang::Class class$;
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/xml/stream/NamespaceImpl.h gcc-4.6.0/libjava/gnu/xml/stream/NamespaceImpl.h
                                    *** gcc-4.5.2/libjava/gnu/xml/stream/NamespaceImpl.h	Fri Oct 13 22:10:15 2006
                                    --- gcc-4.6.0/libjava/gnu/xml/stream/NamespaceImpl.h	Tue Oct 12 15:55:12 2010
                                    *************** extern "Java"
                                    *** 23,28 ****
                                    --- 23,32 ----
                                        {
                                          namespace xml
                                          {
                                    +       namespace namespace$
                                    +       {
                                    +           class QName;
                                    +       }
                                            namespace stream
                                            {
                                                class Location;
                                    *************** class gnu::xml::stream::NamespaceImpl : 
                                    *** 35,50 ****
                                      {
                                      
                                      public: // actually protected
                                    !   NamespaceImpl(::javax::xml::stream::Location *, ::java::lang::String *, ::java::lang::String *);
                                      public:
                                        virtual jint getEventType();
                                        virtual ::java::lang::String * getPrefix();
                                        virtual ::java::lang::String * getNamespaceURI();
                                        virtual jboolean isDefaultNamespaceDeclaration();
                                        virtual void writeAsEncodedUnicode(::java::io::Writer *);
                                      public: // actually protected
                                        ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) prefix;
                                        ::java::lang::String * uri;
                                      public:
                                        static ::java::lang::Class class$;
                                      };
                                    --- 39,59 ----
                                      {
                                      
                                      public: // actually protected
                                    !   NamespaceImpl(::javax::xml::stream::Location *, ::java::lang::String *, ::java::lang::String *, jboolean);
                                      public:
                                        virtual jint getEventType();
                                        virtual ::java::lang::String * getPrefix();
                                        virtual ::java::lang::String * getNamespaceURI();
                                    +   virtual jboolean isSpecified();
                                    +   virtual ::javax::xml::namespace$::QName * getName();
                                    +   virtual ::java::lang::String * getDTDType();
                                    +   virtual ::java::lang::String * getValue();
                                        virtual jboolean isDefaultNamespaceDeclaration();
                                        virtual void writeAsEncodedUnicode(::java::io::Writer *);
                                      public: // actually protected
                                        ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) prefix;
                                        ::java::lang::String * uri;
                                    +   jboolean specified;
                                      public:
                                        static ::java::lang::Class class$;
                                      };
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/xml/stream/XIncludeFilter.h gcc-4.6.0/libjava/gnu/xml/stream/XIncludeFilter.h
                                    *** gcc-4.5.2/libjava/gnu/xml/stream/XIncludeFilter.h	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/gnu/xml/stream/XIncludeFilter.h	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 6,12 ****
                                      
                                      #pragma interface
                                      
                                    ! #include <javax/xml/stream/util/ReaderDelegate.h>
                                      #include <gcj/array.h>
                                      
                                      extern "Java"
                                    --- 6,12 ----
                                      
                                      #pragma interface
                                      
                                    ! #include <javax/xml/stream/util/StreamReaderDelegate.h>
                                      #include <gcj/array.h>
                                      
                                      extern "Java"
                                    *************** extern "Java"
                                    *** 69,75 ****
                                        }
                                      }
                                      
                                    ! class gnu::xml::stream::XIncludeFilter : public ::javax::xml::stream::util::ReaderDelegate
                                      {
                                      
                                      public: // actually package-private
                                    --- 69,75 ----
                                        }
                                      }
                                      
                                    ! class gnu::xml::stream::XIncludeFilter : public ::javax::xml::stream::util::StreamReaderDelegate
                                      {
                                      
                                      public: // actually package-private
                                    *************** public: // actually package-private
                                    *** 111,117 ****
                                        static ::java::lang::String * getParameter(::java::lang::String *, ::java::lang::String *);
                                        static ::java::lang::String * XINCLUDE_NS_URI;
                                        static const jint SHOW_FLAGS = 221;
                                    !   ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::xml::stream::util::ReaderDelegate)))) systemId;
                                        jboolean namespaceAware;
                                        jboolean validating;
                                        jboolean expandERefs;
                                    --- 111,117 ----
                                        static ::java::lang::String * getParameter(::java::lang::String *, ::java::lang::String *);
                                        static ::java::lang::String * XINCLUDE_NS_URI;
                                        static const jint SHOW_FLAGS = 221;
                                    !   ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::xml::stream::util::StreamReaderDelegate)))) systemId;
                                        jboolean namespaceAware;
                                        jboolean validating;
                                        jboolean expandERefs;
                                    diff -Nrcpad gcc-4.5.2/libjava/gnu/xml/stream/XMLStreamWriterImpl.h gcc-4.6.0/libjava/gnu/xml/stream/XMLStreamWriterImpl.h
                                    *** gcc-4.5.2/libjava/gnu/xml/stream/XMLStreamWriterImpl.h	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/gnu/xml/stream/XMLStreamWriterImpl.h	Tue Oct 12 15:55:12 2010
                                    *************** private:
                                    *** 96,101 ****
                                    --- 96,102 ----
                                        void writeEncoded(::java::lang::String *, jboolean);
                                        void writeEncodedWithRestrictedChars(::java::lang::String *, jboolean);
                                        jboolean isName(::java::lang::String *);
                                    +   jboolean isPrefix(::java::lang::String *);
                                        jboolean isNCName(::java::lang::String *);
                                        jboolean isChars(::java::lang::String *);
                                        jboolean isURI(::java::lang::String *);
                                    diff -Nrcpad gcc-4.5.2/libjava/include/Makefile.in gcc-4.6.0/libjava/include/Makefile.in
                                    *** gcc-4.5.2/libjava/include/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/include/Makefile.in	Fri Feb  4 05:51:57 2011
                                    *************** build_triplet = @build@
                                    *** 36,42 ****
                                      host_triplet = @host@
                                      target_triplet = @target@
                                      subdir = include
                                    ! DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
                                      	$(srcdir)/config.h.in $(tool_include__HEADERS)
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
                                    --- 36,42 ----
                                      host_triplet = @host@
                                      target_triplet = @target@
                                      subdir = include
                                    ! DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
                                      	$(srcdir)/config.h.in $(tool_include__HEADERS)
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/libl
                                    *** 51,56 ****
                                    --- 51,57 ----
                                      	$(top_srcdir)/../config/lib-ld.m4 \
                                      	$(top_srcdir)/../config/lib-link.m4 \
                                      	$(top_srcdir)/../config/lib-prefix.m4 \
                                    + 	$(top_srcdir)/../config/lthostflags.m4 \
                                      	$(top_srcdir)/../config/multi.m4 \
                                      	$(top_srcdir)/../config/no-executables.m4 \
                                      	$(top_srcdir)/../config/override.m4 \
                                    *************** CONFIG_CLEAN_FILES = platform.h java-gc.
                                    *** 68,74 ****
                                      	java-signal-aux.h
                                      CONFIG_CLEAN_VPATH_FILES =
                                      SOURCES =
                                    - DIST_SOURCES =
                                      am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
                                      am__vpath_adj = case $$p in \
                                          $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
                                    --- 69,74 ----
                                    *************** am__installdirs = "$(DESTDIR)$(tool_incl
                                    *** 94,100 ****
                                      HEADERS = $(tool_include__HEADERS)
                                      ETAGS = etags
                                      CTAGS = ctags
                                    - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
                                      ACLOCAL = @ACLOCAL@
                                      AMTAR = @AMTAR@
                                      ANTLR_JAR = @ANTLR_JAR@
                                    --- 94,99 ----
                                    *************** EGREP = @EGREP@
                                    *** 136,141 ****
                                    --- 135,141 ----
                                      EXCEPTIONSPEC = @EXCEPTIONSPEC@
                                      EXEEXT = @EXEEXT@
                                      FGREP = @FGREP@
                                    + GCC_FOR_ECJX = @GCC_FOR_ECJX@
                                      GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
                                      GCDEPS = @GCDEPS@
                                      GCINCS = @GCINCS@
                                    *************** JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@
                                    *** 176,181 ****
                                    --- 176,182 ----
                                      JVM_ROOT_DIR = @JVM_ROOT_DIR@
                                      LD = @LD@
                                      LDFLAGS = @LDFLAGS@
                                    + LDLIBICONV = @LDLIBICONV@
                                      LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@
                                      LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@
                                      LIBART_CFLAGS = @LIBART_CFLAGS@
                                    *************** LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_
                                    *** 196,201 ****
                                    --- 197,203 ----
                                      LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
                                      LIBICONV = @LIBICONV@
                                      LIBLTDL = @LIBLTDL@
                                    + LIBMATHSPEC = @LIBMATHSPEC@
                                      LIBOBJS = @LIBOBJS@
                                      LIBS = @LIBS@
                                      LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
                                    *************** libexecdir = @libexecdir@
                                    *** 308,313 ****
                                    --- 310,316 ----
                                      libstdcxx_incdir = @libstdcxx_incdir@
                                      localedir = @localedir@
                                      localstatedir = @localstatedir@
                                    + lt_host_flags = @lt_host_flags@
                                      mandir = @mandir@
                                      mkdir_p = @mkdir_p@
                                      mkinstalldirs = @mkinstalldirs@
                                    *************** GTAGS:
                                    *** 476,512 ****
                                      
                                      distclean-tags:
                                      	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
                                    - 
                                    - distdir: $(DISTFILES)
                                    - 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
                                    - 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
                                    - 	list='$(DISTFILES)'; \
                                    - 	  dist_files=`for file in $$list; do echo $$file; done | \
                                    - 	  sed -e "s|^$$srcdirstrip/||;t" \
                                    - 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
                                    - 	case $$dist_files in \
                                    - 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
                                    - 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
                                    - 			   sort -u` ;; \
                                    - 	esac; \
                                    - 	for file in $$dist_files; do \
                                    - 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
                                    - 	  if test -d $$d/$$file; then \
                                    - 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
                                    - 	    if test -d "$(distdir)/$$file"; then \
                                    - 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
                                    - 	    fi; \
                                    - 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
                                    - 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
                                    - 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
                                    - 	    fi; \
                                    - 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
                                    - 	  else \
                                    - 	    test -f "$(distdir)/$$file" \
                                    - 	    || cp -p $$d/$$file "$(distdir)/$$file" \
                                    - 	    || exit 1; \
                                    - 	  fi; \
                                    - 	done
                                      check-am: all-am
                                      check: check-am
                                      all-am: Makefile $(HEADERS) config.h
                                    --- 479,484 ----
                                    *************** uninstall-am: uninstall-tool_include_HEA
                                    *** 609,625 ****
                                      
                                      .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
                                      	clean-libtool ctags distclean distclean-generic distclean-hdr \
                                    ! 	distclean-libtool distclean-tags distdir dvi dvi-am html \
                                    ! 	html-am info info-am install install-am install-data \
                                    ! 	install-data-am install-dvi install-dvi-am install-exec \
                                    ! 	install-exec-am install-html install-html-am install-info \
                                    ! 	install-info-am install-man install-pdf install-pdf-am \
                                    ! 	install-ps install-ps-am install-strip \
                                    ! 	install-tool_include_HEADERS installcheck installcheck-am \
                                    ! 	installdirs maintainer-clean maintainer-clean-generic \
                                    ! 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
                                    ! 	ps ps-am tags uninstall uninstall-am \
                                    ! 	uninstall-tool_include_HEADERS
                                      
                                      
                                      # Tell versions [3.59,3.63) of GNU make to not export all variables.
                                    --- 581,596 ----
                                      
                                      .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
                                      	clean-libtool ctags distclean distclean-generic distclean-hdr \
                                    ! 	distclean-libtool distclean-tags dvi dvi-am html html-am info \
                                    ! 	info-am install install-am install-data install-data-am \
                                    ! 	install-dvi install-dvi-am install-exec install-exec-am \
                                    ! 	install-html install-html-am install-info install-info-am \
                                    ! 	install-man install-pdf install-pdf-am install-ps \
                                    ! 	install-ps-am install-strip install-tool_include_HEADERS \
                                    ! 	installcheck installcheck-am installdirs maintainer-clean \
                                    ! 	maintainer-clean-generic mostlyclean mostlyclean-generic \
                                    ! 	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
                                    ! 	uninstall-am uninstall-tool_include_HEADERS
                                      
                                      
                                      # Tell versions [3.59,3.63) of GNU make to not export all variables.
                                    diff -Nrcpad gcc-4.5.2/libjava/include/java-assert.h gcc-4.6.0/libjava/include/java-assert.h
                                    *** gcc-4.5.2/libjava/include/java-assert.h	Tue Apr 28 04:02:30 2009
                                    --- gcc-4.6.0/libjava/include/java-assert.h	Wed Apr  7 20:27:37 2010
                                    ***************
                                    *** 1,6 ****
                                      // java-assert.h - Header file holding assertion definitions.  -*- c++ -*-
                                      
                                    ! /* Copyright (C) 1998, 1999  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    --- 1,6 ----
                                      // java-assert.h - Header file holding assertion definitions.  -*- c++ -*-
                                      
                                    ! /* Copyright (C) 1998, 1999, 2010  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    *************** void _Jv_Abort (const char *, const char
                                    *** 29,36 ****
                                      #else /* __GCJ_DEBUG */
                                      
                                      #define _Jv_AssertDoCall(Message)
                                    ! #define JvAssertMessage(Expr, Message)
                                    ! #define JvAssert(Expr)
                                      #define JvFail(Message) _Jv_Abort (0, 0, 0, Message)
                                      
                                      #endif /* not __GCJ_DEBUG */
                                    --- 29,36 ----
                                      #else /* __GCJ_DEBUG */
                                      
                                      #define _Jv_AssertDoCall(Message)
                                    ! #define JvAssertMessage(Expr, Message) (void) sizeof (Expr)
                                    ! #define JvAssert(Expr) (void) sizeof (Expr)
                                      #define JvFail(Message) _Jv_Abort (0, 0, 0, Message)
                                      
                                      #endif /* not __GCJ_DEBUG */
                                    diff -Nrcpad gcc-4.5.2/libjava/include/jni_md.h gcc-4.6.0/libjava/include/jni_md.h
                                    *** gcc-4.5.2/libjava/include/jni_md.h	Wed Feb 24 15:34:19 2010
                                    --- gcc-4.6.0/libjava/include/jni_md.h	Mon Jan  3 20:52:22 2011
                                    ***************
                                    *** 1,5 ****
                                      /* jni_md.h
                                    !    Copyright (C) 2001, 2005, 2007 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    --- 1,5 ----
                                      /* jni_md.h
                                    !    Copyright (C) 2001, 2005, 2007, 2010 Free Software Foundation, Inc.
                                      
                                      This file is part of GNU Classpath.
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/include/posix.h gcc-4.6.0/libjava/include/posix.h
                                    *** gcc-4.5.2/libjava/include/posix.h	Tue Feb  2 08:19:26 2010
                                    --- gcc-4.6.0/libjava/include/posix.h	Mon Jan  3 20:52:22 2011
                                    ***************
                                    *** 1,6 ****
                                      // posix.h -- Helper functions for POSIX-flavored OSs.
                                      
                                    ! /* Copyright (C) 2000, 2002, 2003, 2006  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    --- 1,6 ----
                                      // posix.h -- Helper functions for POSIX-flavored OSs.
                                      
                                    ! /* Copyright (C) 2000, 2002, 2003, 2006, 2010  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    *************** details.  */
                                    *** 56,64 ****
                                      #define _Jv_platform_solib_suffix ".so"
                                      #endif
                                      
                                    ! #if defined(__APPLE__) && defined(__MACH__)
                                    ! #undef _Unwind_FindEnclosingFunction
                                    ! #define _Unwind_FindEnclosingFunction(PC) _darwin10_Unwind_FindEnclosingFunction(PC)
                                      #endif
                                      
                                      // Some POSIX systems don't have O_SYNC and O_DYSNC so we define them here.
                                    --- 56,64 ----
                                      #define _Jv_platform_solib_suffix ".so"
                                      #endif
                                      
                                    ! #if __MACH__ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060)
                                    ! #  undef _Unwind_FindEnclosingFunction
                                    ! #  define _Unwind_FindEnclosingFunction(PC) _darwin10_Unwind_FindEnclosingFunction(PC)
                                      #endif
                                      
                                      // Some POSIX systems don't have O_SYNC and O_DYSNC so we define them here.
                                    diff -Nrcpad gcc-4.5.2/libjava/include/s390-signal.h gcc-4.6.0/libjava/include/s390-signal.h
                                    *** gcc-4.5.2/libjava/include/s390-signal.h	Wed Jul 14 13:09:09 2004
                                    --- gcc-4.6.0/libjava/include/s390-signal.h	Mon Jan  3 20:52:22 2011
                                    ***************
                                    *** 1,7 ****
                                      // s390-signal.h - Catch runtime signals and turn them into exceptions
                                      // on an s390 based Linux system.
                                      
                                    ! /* Copyright (C) 2002  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    --- 1,7 ----
                                      // s390-signal.h - Catch runtime signals and turn them into exceptions
                                      // on an s390 based Linux system.
                                      
                                    ! /* Copyright (C) 2002, 2010  Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    *************** static void _name (int, siginfo_t *_si _
                                    *** 39,44 ****
                                    --- 39,45 ----
                                         and if dividend and divisor are as above, we simply return from the signal
                                         handler.  This causes execution to continue after the instruction.  
                                         Before returning, we the set result registers as expected.  */
                                    + #define UC_EXTENDED	0x00000001
                                      
                                      #define HANDLE_DIVIDE_OVERFLOW						\
                                      do									\
                                    *************** do									\
                                    *** 47,52 ****
                                    --- 48,62 ----
                                          __builtin_extract_return_addr (_si->si_addr);			\
                                        unsigned long *_regs = _uc->uc_mcontext.gregs;			\
                                        int _r1, _r2, _d2, _x2, _b2;						\
                                    +   struct                                                                \
                                    +   {                                                                     \
                                    +     unsigned long int uc_flags;                                         \
                                    +     struct ucontext *uc_link;                                           \
                                    +     stack_t uc_stack;                                                   \
                                    +     mcontext_t uc_mcontext;                                             \
                                    +     unsigned long sigmask[2];                                           \
                                    +     unsigned long ext_regs[16];						\
                                    +   } *_uc_ext = (typeof(_uc_ext))_uc;					\
                                      									\
                                        /* First, a couple of helper routines to decode instructions.  */	\
                                        struct _decode 							\
                                    *************** do									\
                                    *** 119,126 ****
                                            {									\
                                      	return _d + (_x? _regs[_x] : 0) + (_b? _regs[_b] : 0);		\
                                            }									\
                                    -     };									\
                                      									\
                                      									\
                                        /* DR r1,r2 */							\
                                        if (_decode::_is_rr (_eip, 0x1d, &_r1, &_r2)				\
                                    --- 129,144 ----
                                            {									\
                                      	return _d + (_x? _regs[_x] : 0) + (_b? _regs[_b] : 0);		\
                                            }									\
                                      									\
                                    +       static inline int is_long_long_min_p (unsigned long *_regs,       \
                                    + 					    unsigned long *_ext_regs,   \
                                    + 					    int _r)			\
                                    +       {									\
                                    + 	return ((long long)_regs[_r]					\
                                    + 		| (long long)_ext_regs[_r] << 32) ==			\
                                    + 	  LONG_LONG_MIN;						\
                                    +       }									\
                                    +   };									\
                                      									\
                                        /* DR r1,r2 */							\
                                        if (_decode::_is_rr (_eip, 0x1d, &_r1, &_r2)				\
                                    *************** do									\
                                    *** 175,182 ****
                                            _regs[_r1] = 0;							\
                                            return;								\
                                          }									\
                                    ! 									\
                                    ! }									\
                                      while (0)
                                      
                                      /* For an explanation why we cannot simply use sigaction to
                                    --- 193,250 ----
                                            _regs[_r1] = 0;							\
                                            return;								\
                                          }									\
                                    !                                                                         \
                                    !   /* The extended ucontext contains the upper halfs of the 64bit	\
                                    !      registers in 31bit applications.  */				\
                                    !   if (_uc->uc_flags & 1 == 1)						\
                                    !     {             							\
                                    !       /* DSGR r1,r2 */							\
                                    !       if (_decode::_is_rre (_eip, 0xb9, 0x0d, &_r1, &_r2)		\
                                    ! 	  && (int) _regs[_r2] == -1					\
                                    ! 	  && (int) _uc_ext->ext_regs[_r2] == -1				\
                                    ! 	  && _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs,	\
                                    ! 					  _r1 + 1))			\
                                    ! 	{								\
                                    ! 	  _regs[_r1] = 0;						\
                                    ! 	  _uc_ext->ext_regs[_r1] = 0;					\
                                    ! 	  return;							\
                                    ! 	}								\
                                    !       									\
                                    !       /* DSGFR r1,r2 */							\
                                    !       if (_decode::_is_rre (_eip, 0xb9, 0x1d, &_r1, &_r2)		\
                                    ! 	  && (int) _regs[_r2] == -1					\
                                    ! 	  && _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs,	\
                                    ! 					  _r1 + 1))			\
                                    ! 	{								\
                                    ! 	  _regs[_r1] = 0;						\
                                    ! 	  _uc_ext->ext_regs[_r1] = 0;					\
                                    ! 	  return;							\
                                    ! 	}								\
                                    !       									\
                                    !       /* DSG r1,d2(x2,b2) */						\
                                    !       if (_decode::_is_rxy (_eip, 0xe3, 0x0d, &_r1, &_d2, &_x2, &_b2)	\
                                    ! 	  && *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1	\
                                    ! 	  && *(int *) _decode::_eff (_regs, _d2 + 4, _x2, _b2) == -1	\
                                    ! 	  && _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs,	\
                                    ! 					  _r1 + 1))			\
                                    ! 	{								\
                                    ! 	  _regs[_r1] = 0;						\
                                    ! 	  _uc_ext->ext_regs[_r1] = 0;					\
                                    ! 	  return;							\
                                    ! 	}								\
                                    ! 	      								\
                                    !       /* DSGF r1,d2(x2,b2) */						\
                                    !       if (_decode::_is_rxy (_eip, 0xe3, 0x1d, &_r1, &_d2, &_x2, &_b2)	\
                                    ! 	  && *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1	\
                                    ! 	  && _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs,	\
                                    ! 					  _r1 + 1))			\
                                    ! 	{								\
                                    ! 	  _regs[_r1] = 0;						\
                                    ! 	  _uc_ext->ext_regs[_r1] = 0;					\
                                    ! 	  return;							\
                                    ! 	}								\
                                    !     }									\
                                    !  }                                                                      \
                                      while (0)
                                      
                                      /* For an explanation why we cannot simply use sigaction to
                                    diff -Nrcpad gcc-4.5.2/libjava/java/lang/natClass.cc gcc-4.6.0/libjava/java/lang/natClass.cc
                                    *** gcc-4.5.2/libjava/java/lang/natClass.cc	Tue Jan 26 18:59:16 2010
                                    --- gcc-4.6.0/libjava/java/lang/natClass.cc	Mon Jan  3 20:52:22 2011
                                    ***************
                                    *** 1,7 ****
                                      // natClass.cc - Implementation of java.lang.Class native methods.
                                      
                                    ! /* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
                                    !    Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    --- 1,7 ----
                                      // natClass.cc - Implementation of java.lang.Class native methods.
                                      
                                    ! /* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
                                    !    2010 Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/java/security/VMAccessController.java gcc-4.6.0/libjava/java/security/VMAccessController.java
                                    *** gcc-4.5.2/libjava/java/security/VMAccessController.java	Mon Aug 14 14:24:52 2006
                                    --- gcc-4.6.0/libjava/java/security/VMAccessController.java	Mon Jan  3 20:52:22 2011
                                    ***************
                                    *** 1,5 ****
                                      /* VMAccessController.java -- VM-specific access controller methods.
                                    !    Copyright (C) 2004, 2005, 2006  Free Software Foundation, Inc.
                                      
                                      This program is free software; you can redistribute it and/or modify
                                      it under the terms of the GNU General Public License as published by
                                    --- 1,5 ----
                                      /* VMAccessController.java -- VM-specific access controller methods.
                                    !    Copyright (C) 2004, 2005, 2006, 2010  Free Software Foundation, Inc.
                                      
                                      This program is free software; you can redistribute it and/or modify
                                      it under the terms of the GNU General Public License as published by
                                    *************** final class VMAccessController
                                    *** 56,62 ****
                                          Permissions permissions = new Permissions();
                                          permissions.add(new AllPermission());
                                          ProtectionDomain[] domain = new ProtectionDomain[] {
                                    !       new ProtectionDomain(source, permissions)
                                          };
                                          DEFAULT_CONTEXT = new AccessControlContext(domain);
                                        }
                                    --- 56,62 ----
                                          Permissions permissions = new Permissions();
                                          permissions.add(new AllPermission());
                                          ProtectionDomain[] domain = new ProtectionDomain[] {
                                    !       new ProtectionDomain(source, permissions, null, null)
                                          };
                                          DEFAULT_CONTEXT = new AccessControlContext(domain);
                                        }
                                    *************** final class VMAccessController
                                    *** 121,127 ****
                                          LinkedList stack = state.getContexts();
                                          if (!stack.isEmpty())
                                            {
                                    ! 	stack.removeFirst();
                                            }
                                          else if (DEBUG)
                                            {
                                    --- 121,127 ----
                                          LinkedList stack = state.getContexts();
                                          if (!stack.isEmpty())
                                            {
                                    !         stack.removeFirst();
                                            }
                                          else if (DEBUG)
                                            {
                                    *************** final class VMAccessController
                                    *** 178,203 ****
                                          for (int i = 3; i < classes.length; i++)
                                            {
                                              Class clazz = classes[i];
                                      
                                              if (DEBUG)
                                                {
                                                  debug("checking " + clazz);
                                                  // subject to getClassLoader RuntimePermission
                                    !             debug("loader = " + clazz.getClassLoader());
                                                }
                                      
                                              if (privileged && i == classes.length - 2)
                                                {
                                                  // If there was a call to doPrivileged with a supplied context,
                                    !             // return that context. If using JAAS doAs*, it should be 
                                    ! 	    // a context with a SubjectDomainCombiner
                                                  LinkedList l = state.getContexts();
                                                  if (!l.isEmpty())
                                                    context = (AccessControlContext) l.getFirst();
                                                }
                                      
                                              // subject to getProtectionDomain RuntimePermission
                                    ! 	ProtectionDomain domain = clazz.getProtectionDomain();
                                      
                                              if (domain == null)
                                                continue;
                                    --- 178,204 ----
                                          for (int i = 3; i < classes.length; i++)
                                            {
                                              Class clazz = classes[i];
                                    +         ClassLoader loader = clazz.getClassLoader();
                                      
                                              if (DEBUG)
                                                {
                                                  debug("checking " + clazz);
                                                  // subject to getClassLoader RuntimePermission
                                    !             debug("loader = " + loader);
                                                }
                                      
                                              if (privileged && i == classes.length - 2)
                                                {
                                                  // If there was a call to doPrivileged with a supplied context,
                                    !             // return that context. If using JAAS doAs*, it should be
                                    !             // a context with a SubjectDomainCombiner
                                                  LinkedList l = state.getContexts();
                                                  if (!l.isEmpty())
                                                    context = (AccessControlContext) l.getFirst();
                                                }
                                      
                                              // subject to getProtectionDomain RuntimePermission
                                    !         ProtectionDomain domain = clazz.getProtectionDomain();
                                      
                                              if (domain == null)
                                                continue;
                                    *************** final class VMAccessController
                                    *** 208,214 ****
                                              // Create a static snapshot of this domain, which may change over time
                                              // if the current policy changes.
                                              domains.add(new ProtectionDomain(domain.getCodeSource(),
                                    !                                          domain.getPermissions()));
                                            }
                                      
                                          if (DEBUG)
                                    --- 209,216 ----
                                              // Create a static snapshot of this domain, which may change over time
                                              // if the current policy changes.
                                              domains.add(new ProtectionDomain(domain.getCodeSource(),
                                    !                                          domain.getPermissions(),
                                    !                                          loader, null));
                                            }
                                      
                                          if (DEBUG)
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/security/auth/kerberos/KerberosTicket.h gcc-4.6.0/libjava/javax/security/auth/kerberos/KerberosTicket.h
                                    *** gcc-4.5.2/libjava/javax/security/auth/kerberos/KerberosTicket.h	Fri Oct 13 22:10:15 2006
                                    --- gcc-4.6.0/libjava/javax/security/auth/kerberos/KerberosTicket.h	Tue Oct 12 15:55:12 2010
                                    *************** private:
                                    *** 69,74 ****
                                    --- 69,75 ----
                                        void checkDestroyed();
                                      public:
                                        virtual ::java::lang::String * toString();
                                    +   virtual jint getSessionKeyType();
                                      private:
                                        static const jlong serialVersionUID = 7395334370157380539LL;
                                        static const jint FORWARDABLE = 1;
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/security/auth/kerberos/KeyImpl.h gcc-4.6.0/libjava/javax/security/auth/kerberos/KeyImpl.h
                                    *** gcc-4.5.2/libjava/javax/security/auth/kerberos/KeyImpl.h	Fri Oct 13 22:10:15 2006
                                    --- gcc-4.6.0/libjava/javax/security/auth/kerberos/KeyImpl.h	Tue Oct 12 15:55:12 2010
                                    *************** public:
                                    *** 35,40 ****
                                    --- 35,41 ----
                                        ::java::lang::String * getAlgorithm();
                                        JArray< jbyte > * getEncoded();
                                        ::java::lang::String * getFormat();
                                    +   ::java::lang::String * toString();
                                        ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) algorithm;
                                        jint type;
                                        JArray< jbyte > * key;
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/swing/text/html/HTMLWriter.h gcc-4.6.0/libjava/javax/swing/text/html/HTMLWriter.h
                                    *** gcc-4.5.2/libjava/javax/swing/text/html/HTMLWriter.h	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/javax/swing/text/html/HTMLWriter.h	Tue Oct 12 15:55:12 2010
                                    *************** private:
                                    *** 66,72 ****
                                        ::java::lang::String * escapeCharHtmlEntity(jchar);
                                        ::java::io::Writer * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractWriter)))) outWriter;
                                        ::javax::swing::text::html::HTMLDocument * htmlDoc;
                                    !   ::java::util::HashSet * openEmbededTagHashSet;
                                        ::java::lang::String * new_line_str;
                                        JArray< jchar > * html_entity_char_arr;
                                        JArray< ::java::lang::String * > * html_entity_escape_str_arr;
                                    --- 66,72 ----
                                        ::java::lang::String * escapeCharHtmlEntity(jchar);
                                        ::java::io::Writer * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractWriter)))) outWriter;
                                        ::javax::swing::text::html::HTMLDocument * htmlDoc;
                                    !   ::java::util::HashSet * openEmbeddedTagHashSet;
                                        ::java::lang::String * new_line_str;
                                        JArray< jchar > * html_entity_char_arr;
                                        JArray< ::java::lang::String * > * html_entity_escape_str_arr;
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/swing/text/html/MinimalHTMLWriter.h gcc-4.6.0/libjava/javax/swing/text/html/MinimalHTMLWriter.h
                                    *** gcc-4.5.2/libjava/javax/swing/text/html/MinimalHTMLWriter.h	Fri Oct 13 22:10:15 2006
                                    --- gcc-4.6.0/libjava/javax/swing/text/html/MinimalHTMLWriter.h	Tue Oct 12 15:55:12 2010
                                    *************** private:
                                    *** 71,77 ****
                                        void writeStyle(::javax::swing::text::Style *);
                                        jboolean hasText(::javax::swing::text::Element *);
                                        ::javax::swing::text::StyledDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractWriter)))) doc;
                                    !   ::java::util::Stack * tagStack;
                                        jboolean inFontTag__;
                                      public:
                                        static ::java::lang::Class class$;
                                    --- 71,77 ----
                                        void writeStyle(::javax::swing::text::Style *);
                                        jboolean hasText(::javax::swing::text::Element *);
                                        ::javax::swing::text::StyledDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractWriter)))) doc;
                                    !   ::java::util::Deque * tagStack;
                                        jboolean inFontTag__;
                                      public:
                                        static ::java::lang::Class class$;
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/swing/text/html/StyleSheet.h gcc-4.6.0/libjava/javax/swing/text/html/StyleSheet.h
                                    *** gcc-4.5.2/libjava/javax/swing/text/html/StyleSheet.h	Tue Dec 12 18:41:51 2006
                                    --- gcc-4.6.0/libjava/javax/swing/text/html/StyleSheet.h	Tue Oct 12 15:55:12 2010
                                    *************** public:
                                    *** 57,63 ****
                                      private:
                                        ::javax::swing::text::Style * getResolvedStyle(::java::lang::String *, ::java::util::List *, ::javax::swing::text::html::HTML$Tag *);
                                        ::javax::swing::text::Style * resolveStyle(::java::lang::String *, ::java::util::List *, ::javax::swing::text::html::HTML$Tag *);
                                    !   ::javax::swing::text::Style * resolveStyle(::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::util::Map * > *);
                                      public:
                                        virtual ::javax::swing::text::Style * getRule(::java::lang::String *);
                                        virtual void addRule(::java::lang::String *);
                                    --- 57,63 ----
                                      private:
                                        ::javax::swing::text::Style * getResolvedStyle(::java::lang::String *, ::java::util::List *, ::javax::swing::text::html::HTML$Tag *);
                                        ::javax::swing::text::Style * resolveStyle(::java::lang::String *, ::java::util::List *, ::javax::swing::text::html::HTML$Tag *);
                                    !   ::javax::swing::text::Style * resolveStyle(::java::lang::String *, JArray< ::java::lang::String * > *, ::java::util::List *);
                                      public:
                                        virtual ::javax::swing::text::Style * getRule(::java::lang::String *);
                                        virtual void addRule(::java::lang::String *);
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/xml/stream/XMLEventFactory.h gcc-4.6.0/libjava/javax/xml/stream/XMLEventFactory.h
                                    *** gcc-4.5.2/libjava/javax/xml/stream/XMLEventFactory.h	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/javax/xml/stream/XMLEventFactory.h	Tue Oct 12 15:55:12 2010
                                    *************** public: // actually protected
                                    *** 49,55 ****
                                        XMLEventFactory();
                                      public:
                                        static ::javax::xml::stream::XMLEventFactory * newInstance();
                                    - public: // actually package-private
                                        static ::javax::xml::stream::XMLEventFactory * newInstance(::java::lang::String *, ::java::lang::ClassLoader *);
                                      private:
                                        static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint);
                                    --- 49,54 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/xml/stream/XMLOutputFactory.h gcc-4.6.0/libjava/javax/xml/stream/XMLOutputFactory.h
                                    *** gcc-4.5.2/libjava/javax/xml/stream/XMLOutputFactory.h	Fri Oct 13 22:10:15 2006
                                    --- gcc-4.6.0/libjava/javax/xml/stream/XMLOutputFactory.h	Tue Oct 12 15:55:12 2010
                                    *************** extern "Java"
                                    *** 16,22 ****
                                            namespace stream
                                            {
                                                class XMLEventWriter;
                                    -           class XMLInputFactory;
                                                class XMLOutputFactory;
                                                class XMLStreamWriter;
                                            }
                                    --- 16,21 ----
                                    *************** public: // actually protected
                                    *** 35,44 ****
                                        XMLOutputFactory();
                                      public:
                                        static ::javax::xml::stream::XMLOutputFactory * newInstance();
                                      private:
                                        static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint);
                                      public:
                                    -   static ::javax::xml::stream::XMLInputFactory * newInstance(::java::lang::String *, ::java::lang::ClassLoader *);
                                        virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::Writer *) = 0;
                                        virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::OutputStream *) = 0;
                                        virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::OutputStream *, ::java::lang::String *) = 0;
                                    --- 34,43 ----
                                        XMLOutputFactory();
                                      public:
                                        static ::javax::xml::stream::XMLOutputFactory * newInstance();
                                    +   static ::javax::xml::stream::XMLOutputFactory * newInstance(::java::lang::String *, ::java::lang::ClassLoader *);
                                      private:
                                        static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint);
                                      public:
                                        virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::Writer *) = 0;
                                        virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::OutputStream *) = 0;
                                        virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::OutputStream *, ::java::lang::String *) = 0;
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/xml/stream/events/Namespace.h gcc-4.6.0/libjava/javax/xml/stream/events/Namespace.h
                                    *** gcc-4.5.2/libjava/javax/xml/stream/events/Namespace.h	Mon Jun 29 17:50:59 2009
                                    --- gcc-4.6.0/libjava/javax/xml/stream/events/Namespace.h	Tue Oct 12 15:55:12 2010
                                    *************** public:
                                    *** 39,44 ****
                                    --- 39,48 ----
                                        virtual ::java::lang::String * getPrefix() = 0;
                                        virtual ::java::lang::String * getNamespaceURI() = 0;
                                        virtual jboolean isDefaultNamespaceDeclaration() = 0;
                                    +   virtual ::javax::xml::namespace$::QName * getName() = 0;
                                    +   virtual ::java::lang::String * getValue() = 0;
                                    +   virtual ::java::lang::String * getDTDType() = 0;
                                    +   virtual jboolean isSpecified() = 0;
                                        virtual jint getEventType() = 0;
                                        virtual ::javax::xml::stream::Location * getLocation() = 0;
                                        virtual jboolean isStartElement() = 0;
                                    diff -Nrcpad gcc-4.5.2/libjava/javax/xml/stream/util/StreamReaderDelegate.h gcc-4.6.0/libjava/javax/xml/stream/util/StreamReaderDelegate.h
                                    *** gcc-4.5.2/libjava/javax/xml/stream/util/StreamReaderDelegate.h	Thu Jan  1 00:00:00 1970
                                    --- gcc-4.6.0/libjava/javax/xml/stream/util/StreamReaderDelegate.h	Tue Oct 12 15:55:12 2010
                                    ***************
                                    *** 0 ****
                                    --- 1,95 ----
                                    + 
                                    + // DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
                                    + 
                                    + #ifndef __javax_xml_stream_util_StreamReaderDelegate__
                                    + #define __javax_xml_stream_util_StreamReaderDelegate__
                                    + 
                                    + #pragma interface
                                    + 
                                    + #include <java/lang/Object.h>
                                    + #include <gcj/array.h>
                                    + 
                                    + extern "Java"
                                    + {
                                    +   namespace javax
                                    +   {
                                    +     namespace xml
                                    +     {
                                    +       namespace namespace$
                                    +       {
                                    +           class NamespaceContext;
                                    +           class QName;
                                    +       }
                                    +       namespace stream
                                    +       {
                                    +           class Location;
                                    +           class XMLStreamReader;
                                    +         namespace util
                                    +         {
                                    +             class StreamReaderDelegate;
                                    +         }
                                    +       }
                                    +     }
                                    +   }
                                    + }
                                    + 
                                    + class javax::xml::stream::util::StreamReaderDelegate : public ::java::lang::Object
                                    + {
                                    + 
                                    + public:
                                    +   StreamReaderDelegate();
                                    +   StreamReaderDelegate(::javax::xml::stream::XMLStreamReader *);
                                    +   virtual void setParent(::javax::xml::stream::XMLStreamReader *);
                                    +   virtual ::javax::xml::stream::XMLStreamReader * getParent();
                                    +   virtual jint next();
                                    +   virtual jint nextTag();
                                    +   virtual ::java::lang::String * getElementText();
                                    +   virtual void require(jint, ::java::lang::String *, ::java::lang::String *);
                                    +   virtual jboolean hasNext();
                                    +   virtual void close();
                                    +   virtual ::java::lang::String * getNamespaceURI(::java::lang::String *);
                                    +   virtual ::javax::xml::namespace$::NamespaceContext * getNamespaceContext();
                                    +   virtual jboolean isStartElement();
                                    +   virtual jboolean isEndElement();
                                    +   virtual jboolean isCharacters();
                                    +   virtual jboolean isWhiteSpace();
                                    +   virtual ::java::lang::String * getAttributeValue(::java::lang::String *, ::java::lang::String *);
                                    +   virtual jint getAttributeCount();
                                    +   virtual ::javax::xml::namespace$::QName * getAttributeName(jint);
                                    +   virtual ::java::lang::String * getAttributePrefix(jint);
                                    +   virtual ::java::lang::String * getAttributeNamespace(jint);
                                    +   virtual ::java::lang::String * getAttributeLocalName(jint);
                                    +   virtual ::java::lang::String * getAttributeType(jint);
                                    +   virtual ::java::lang::String * getAttributeValue(jint);
                                    +   virtual jboolean isAttributeSpecified(jint);
                                    +   virtual jint getNamespaceCount();
                                    +   virtual ::java::lang::String * getNamespacePrefix(jint);
                                    +   virtual ::java::lang::String * getNamespaceURI(jint);
                                    +   virtual jint getEventType();
                                    +   virtual ::java::lang::String * getText();
                                    +   virtual jint getTextCharacters(jint, JArray< jchar > *, jint, jint);
                                    +   virtual JArray< jchar > * getTextCharacters();
                                    +   virtual jint getTextStart();
                                    +   virtual jint getTextLength();
                                    +   virtual ::java::lang::String * getEncoding();
                                    +   virtual jboolean hasText();
                                    +   virtual ::javax::xml::stream::Location * getLocation();
                                    +   virtual ::javax::xml::namespace$::QName * getName();
                                    +   virtual ::java::lang::String * getLocalName();
                                    +   virtual jboolean hasName();
                                    +   virtual ::java::lang::String * getNamespaceURI();
                                    +   virtual ::java::lang::String * getPrefix();
                                    +   virtual ::java::lang::String * getVersion();
                                    +   virtual jboolean isStandalone();
                                    +   virtual jboolean standaloneSet();
                                    +   virtual ::java::lang::String * getCharacterEncodingScheme();
                                    +   virtual ::java::lang::String * getPITarget();
                                    +   virtual ::java::lang::String * getPIData();
                                    +   virtual ::java::lang::Object * getProperty(::java::lang::String *);
                                    + private:
                                    +   ::javax::xml::stream::XMLStreamReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent;
                                    + public:
                                    +   static ::java::lang::Class class$;
                                    + };
                                    + 
                                    + #endif // __javax_xml_stream_util_StreamReaderDelegate__
                                    diff -Nrcpad gcc-4.5.2/libjava/jvmti.cc gcc-4.6.0/libjava/jvmti.cc
                                    *** gcc-4.5.2/libjava/jvmti.cc	Sun Mar 21 19:36:49 2010
                                    --- gcc-4.6.0/libjava/jvmti.cc	Mon Jan  3 20:52:22 2011
                                    ***************
                                    *** 1,6 ****
                                      // jvmti.cc - JVMTI implementation
                                      
                                    ! /* Copyright (C) 2006, 2007 Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    --- 1,6 ----
                                      // jvmti.cc - JVMTI implementation
                                      
                                    ! /* Copyright (C) 2006, 2007, 2010 Free Software Foundation
                                      
                                         This file is part of libgcj.
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/libgcj.spec.in gcc-4.6.0/libjava/libgcj.spec.in
                                    *** gcc-4.5.2/libjava/libgcj.spec.in	Mon Aug 17 17:30:10 2009
                                    --- gcc-4.6.0/libjava/libgcj.spec.in	Fri Feb  4 05:51:57 2011
                                    ***************
                                    *** 7,12 ****
                                      *startfile: @THREADSTARTFILESPEC@ %(startfileorig)
                                      
                                      %rename lib liborig
                                    ! *lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) @LIBSTDCXXSPEC@ %(liborig)
                                      
                                      *jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ @ATOMICSPEC@ @LIBGCJ_BC_SPEC@ -fkeep-inline-functions
                                    --- 7,12 ----
                                      *startfile: @THREADSTARTFILESPEC@ %(startfileorig)
                                      
                                      %rename lib liborig
                                    ! *lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ @LIBMATHSPEC@ @LDLIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) @LIBSTDCXXSPEC@ %(liborig)
                                      
                                      *jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ @ATOMICSPEC@ @LIBGCJ_BC_SPEC@ -fkeep-inline-functions
                                    diff -Nrcpad gcc-4.5.2/libjava/libgcj.ver gcc-4.6.0/libjava/libgcj.ver
                                    *** gcc-4.5.2/libjava/libgcj.ver	Fri Jul 13 14:07:16 2007
                                    --- gcc-4.6.0/libjava/libgcj.ver	Mon Jul  5 17:22:52 2010
                                    ***************
                                    *** 2,7 ****
                                      # symbols in libgcj.so.
                                      
                                      {
                                    !   global: Jv*; _Jv_*; __gcj_personality_v0; __gcj_personality_sj0; _Z*;
                                    !   local: *;
                                      };
                                    --- 2,13 ----
                                      # symbols in libgcj.so.
                                      
                                      {
                                    !   global:
                                    !     Jv*;
                                    !     _Jv_*;
                                    !     __gcj_personality_v0;
                                    !     __gcj_personality_sj0;
                                    !     _Z*;
                                    !   local:
                                    !     *;
                                      };
                                    diff -Nrcpad gcc-4.5.2/libjava/libltdl/ChangeLog gcc-4.6.0/libjava/libltdl/ChangeLog
                                    *** gcc-4.5.2/libjava/libltdl/ChangeLog	Thu Dec 16 12:31:26 2010
                                    --- gcc-4.6.0/libjava/libltdl/ChangeLog	Fri Mar 25 16:57:27 2011
                                    ***************
                                    *** 1,14 ****
                                    ! 2010-12-16  Release Manager
                                      
                                    ! 	* GCC 4.5.2 released.
                                      
                                    ! 2010-07-31  Release Manager
                                      
                                    ! 	* GCC 4.5.1 released.
                                      
                                    ! 2010-04-14  Release Manager
                                      
                                    ! 	* GCC 4.5.0 released.
                                      
                                      2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
                                      
                                    --- 1,19 ----
                                    ! 2011-03-25  Release Manager
                                      
                                    ! 	* GCC 4.6.0 released.
                                      
                                    ! 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
                                      
                                    ! 	* acinclude.m4 (AC_LIBTOOL_PROG_LD_SHLIBS)
                                    ! 	(AC_LIBTOOL_SYS_DYNAMIC_LINKER): Remove handling
                                    ! 	of freebsd1* which soon would incorrectly match FreeBSD 10.0.
                                    ! 	* configure: Regenerate.
                                      
                                    ! 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
                                      
                                    ! 	PR other/43620
                                    ! 	* Makefile.am (AUTOMAKE_OPTIONS): Add no-dist.
                                    ! 	* Makefile.in: Regenerate.
                                      
                                      2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/libltdl/Makefile.am gcc-4.6.0/libjava/libltdl/Makefile.am
                                    *** gcc-4.5.2/libjava/libltdl/Makefile.am	Tue Sep 22 18:58:13 2009
                                    --- gcc-4.6.0/libjava/libltdl/Makefile.am	Tue May  4 18:58:11 2010
                                    ***************
                                    *** 1,6 ****
                                      ## Process this file with automake to produce Makefile.in
                                      
                                    ! AUTOMAKE_OPTIONS = no-dependencies foreign
                                      
                                      ACLOCAL_AMFLAGS = -I ../.. -I ../../config
                                      
                                    --- 1,6 ----
                                      ## Process this file with automake to produce Makefile.in
                                      
                                    ! AUTOMAKE_OPTIONS = no-dependencies foreign no-dist
                                      
                                      ACLOCAL_AMFLAGS = -I ../.. -I ../../config
                                      
                                    diff -Nrcpad gcc-4.5.2/libjava/libltdl/Makefile.in gcc-4.6.0/libjava/libltdl/Makefile.in
                                    *** gcc-4.5.2/libjava/libltdl/Makefile.in	Fri Apr  2 18:18:06 2010
                                    --- gcc-4.6.0/libjava/libltdl/Makefile.in	Fri Mar 25 17:07:00 2011
                                    *************** POST_UNINSTALL = :
                                    *** 36,46 ****
                                      build_triplet = @build@
                                      host_triplet = @host@
                                      subdir = .
                                    ! DIST_COMMON = README $(am__configure_deps) $(am__include_HEADERS_DIST) \
                                    ! 	$(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \
                                    ! 	$(srcdir)/Makefile.in $(srcdir)/config-h.in \
                                    ! 	$(top_srcdir)/configure COPYING.LIB ChangeLog config.guess \
                                    ! 	config.sub install-sh ltmain.sh missing
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    --- 36,46 ----
                                      build_triplet = @build@
                                      host_triplet = @host@
                                      subdir = .
                                    ! DIST_COMMON = README ChangeLog $(srcdir)/Makefile.in \
                                    ! 	$(srcdir)/Makefile.am $(top_srcdir)/configure \
                                    ! 	$(am__configure_deps) $(srcdir)/config-h.in ltmain.sh \
                                    ! 	config.guess config.sub $(am__include_HEADERS_DIST) \
                                    ! 	$(am__noinst_HEADERS_DIST)
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
                                      	$(top_srcdir)/../../config/lead-dot.m4 \
                                    *************** LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLF
                                    *** 103,109 ****
                                      	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
                                      	$(LDFLAGS) -o $@
                                      SOURCES = $(libltdl_la_SOURCES) $(libltdlc_la_SOURCES)
                                    - DIST_SOURCES = $(libltdl_la_SOURCES) $(libltdlc_la_SOURCES)
                                      MULTISRCTOP = 
                                      MULTIBUILDTOP = 
                                      MULTIDIRS = 
                                    --- 103,108 ----
                                    *************** am__noinst_HEADERS_DIST = ltdl.h
                                    *** 115,131 ****
                                      HEADERS = $(include_HEADERS) $(noinst_HEADERS)
                                      ETAGS = etags
                                      CTAGS = ctags
                                    - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
                                    - distdir = $(PACKAGE)-$(VERSION)
                                    - top_distdir = $(distdir)
                                    - am__remove_distdir = \
                                    -   { test ! -d "$(distdir)" \
                                    -     || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
                                    -          && rm -fr "$(distdir)"; }; }
                                    - DIST_ARCHIVES = $(distdir).tar.gz
                                    - GZIP_ENV = --best
                                    - distuninstallcheck_listfiles = find . -type f -print
                                    - distcleancheck_listfiles = find . -type f -print
                                      ACLOCAL = @ACLOCAL@
                                      AMTAR = @AMTAR@
                                      AR = @AR@
                                    --- 114,119 ----
                                    *************** target_alias = @target_alias@
                                    *** 232,238 ****
                                      top_build_prefix = @top_build_prefix@
                                      top_builddir = @top_builddir@
                                      top_srcdir = @top_srcdir@
                                    ! AUTOMAKE_OPTIONS = no-dependencies foreign
                                      ACLOCAL_AMFLAGS = -I ../.. -I ../../config
                                      INCLUDES = $(GCINCS)
                                      @INSTALL_LTDL_TRUE@include_HEADERS = ltdl.h
                                    --- 220,226 ----
                                      top_build_prefix = @top_build_prefix@
                                      top_builddir = @top_builddir@
                                      top_srcdir = @top_srcdir@
                                    ! AUTOMAKE_OPTIONS = no-dependencies foreign no-dist
                                      ACLOCAL_AMFLAGS = -I ../.. -I ../../config
                                      INCLUDES = $(GCINCS)
                                      @INSTALL_LTDL_TRUE@include_HEADERS = ltdl.h
                                    *************** GTAGS:
                                    *** 465,618 ****
                                      
                                      distclean-tags:
                                      	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
                                    - 
                                    - distdir: $(DISTFILES)
                                    - 	$(am__remove_distdir)
                                    - 	test -d "$(distdir)" || mkdir "$(distdir)"
                                    - 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
                                    - 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
                                    - 	list='$(DISTFILES)'; \
                                    - 	  dist_files=`for file in $$list; do echo $$file; done | \
                                    - 	  sed -e "s|^$$srcdirstrip/||;t" \
                                    - 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
                                    - 	case $$dist_files in \
                                    - 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
                                    - 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
                                    - 			   sort -u` ;; \
                                    - 	esac; \
                                    - 	for file in $$dist_files; do \
                                    - 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
                                    - 	  if test -d $$d/$$file; then \
                                    - 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
                                    - 	    if test -d "$(distdir)/$$file"; then \
                                    - 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
                                    - 	    fi; \
                                    - 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
                                    - 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
                                    - 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
                                    - 	    fi; \
                                    - 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
                                    - 	  else \
                                    - 	    test -f "$(distdir)/$$file" \
                                    - 	    || cp -p $$d/$$file "$(distdir)/$$file" \
                                    - 	    || exit 1; \
                                    - 	  fi; \
                                    - 	done
                                    - 	-test -n "$(am__skip_mode_fix)" \
                                    - 	|| find "$(distdir)" -type d ! -perm -755 \
                                    - 		-exec chmod u+rwx,go+rx {} \; -o \
                                    - 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
                                    - 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
                                    - 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
                                    - 	|| chmod -R a+r "$(distdir)"
                                    - dist-gzip: distdir
                                    - 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
                                    - 	$(am__remove_distdir)
                                    - 
                                    - dist-bzip2: distdir
                                    - 	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
                                    - 	$(am__remove_distdir)
                                    - 
                                    - dist-lzma: distdir
                                    - 	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
                                    - 	$(am__remove_distdir)
                                    - 
                                    - dist-xz: distdir
                                    - 	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
                                    - 	$(am__remove_distdir)
                                    - 
                                    - dist-tarZ: distdir
                                    - 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
                                    - 	$(am__remove_distdir)
                                    - 
                                    - dist-shar: distdir
                                    - 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
                                    - 	$(am__remove_distdir)
                                    - 
                                    - dist-zip: distdir
                                    - 	-rm -f $(distdir).zip
                                    - 	zip -rq $(distdir).zip $(distdir)
                                    - 	$(am__remove_distdir)
                                    - 
                                    - dist dist-all: distdir
                                    - 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
                                    - 	$(am__remove_distdir)
                                    - 
                                    - # This target untars the dist file and tries a VPATH configuration.  Then
                                    - # it guarantees that the distribution is self-contained by making another
                                    - # tarfile.
                                    - distcheck: dist
                                    - 	case '$(DIST_ARCHIVES)' in \
                                    - 	*.tar.gz*) \
                                    - 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
                                    - 	*.tar.bz2*) \
                                    - 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
                                    - 	*.tar.lzma*) \
                                    - 	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
                                    - 	*.tar.xz*) \
                                    - 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
                                    - 	*.tar.Z*) \
                                    - 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
                                    - 	*.shar.gz*) \
                                    - 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
                                    - 	*.zip*) \
                                    - 	  unzip $(distdir).zip ;;\
                                    - 	esac
                                    - 	chmod -R a-w $(distdir); chmod a+w $(distdir)
                                    - 	mkdir $(distdir)/_build
                                    - 	mkdir $(distdir)/_inst
                                    - 	chmod a-w $(distdir)
                                    - 	test -d $(distdir)/_build || exit 0; \
                                    - 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
                                    - 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
                                    - 	  && am__cwd=`pwd` \
                                    - 	  && $(am__cd) $(distdir)/_build \
                                    - 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
                                    - 	    $(DISTCHECK_CONFIGURE_FLAGS) \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) check \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) install \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
                                    - 	        distuninstallcheck \
                                    - 	  && chmod -R a-w "$$dc_install_base" \
                                    - 	  && ({ \
                                    - 	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
                                    - 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
                                    - 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
                                    - 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
                                    - 	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
                                    - 	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
                                    - 	  && rm -rf "$$dc_destdir" \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) dist \
                                    - 	  && rm -rf $(DIST_ARCHIVES) \
                                    - 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
                                    - 	  && cd "$$am__cwd" \
                                    - 	  || exit 1
                                    - 	$(am__remove_distdir)
                                    - 	@(echo "$(distdir) archives ready for distribution: "; \
                                    - 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
                                    - 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
                                    - distuninstallcheck:
                                    - 	@$(am__cd) '$(distuninstallcheck_dir)' \
                                    - 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
                                    - 	   || { echo "ERROR: files left after uninstall:" ; \
                                    - 	        if test -n "$(DESTDIR)"; then \
                                    - 	          echo "  (check DESTDIR support)"; \
                                    - 	        fi ; \
                                    - 	        $(distuninstallcheck_listfiles) ; \
                                    - 	        exit 1; } >&2
                                    - distcleancheck: distclean
                                    - 	@if test '$(srcdir)' = . ; then \
                                    - 	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
                                    - 	  exit 1 ; \
                                    - 	fi
                                    - 	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
                                    - 	  || { echo "ERROR: files left in build directory after distclean:" ; \
                                    - 	       $(distcleancheck_listfiles) ; \
                                    - 	       exit 1; } >&2
                                      check-am: all-am
                                      check: check-am
                                      all-am: Makefile $(LTLIBRARIES) all-multi $(HEADERS) config.h
                                    --- 453,458 ----
                                    *************** uninstall-am: uninstall-includeHEADERS u
                                    *** 725,739 ****
                                      
                                      .PHONY: CTAGS GTAGS all all-am all-multi am--refresh check check-am \
                                      	clean clean-generic clean-libLTLIBRARIES clean-libtool \
                                    ! 	clean-multi clean-noinstLTLIBRARIES ctags dist dist-all \
                                    ! 	dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz \
                                    ! 	dist-zip distcheck distclean distclean-compile \
                                    ! 	distclean-generic distclean-hdr distclean-libtool \
                                    ! 	distclean-multi distclean-tags distcleancheck distdir \
                                    ! 	distuninstallcheck dvi dvi-am html html-am info info-am \
                                    ! 	install install-am install-data install-data-am \
                                    ! 	install-data-local install-dvi install-dvi-am install-exec \
                                    ! 	install-exec-am install-html install-html-am \
                                      	install-includeHEADERS install-info install-info-am \
                                      	install-libLTLIBRARIES install-man install-multi install-pdf \
                                      	install-pdf-am install-ps install-ps-am install-strip \
                                    --- 565,576 ----
                                      
                                      .PHONY: CTAGS GTAGS all all-am all-multi am--refresh check check-am \
                                      	clean clean-generic clean-libLTLIBRARIES clean-libtool \
                                    ! 	clean-multi clean-noinstLTLIBRARIES ctags distclean \
                                    ! 	distclean-compile distclean-generic distclean-hdr \
                                    ! 	distclean-libtool distclean-multi distclean-tags dvi dvi-am \
                                    ! 	html html-am info info-am install install-am install-data \
                                    ! 	install-data-am install-data-local install-dvi install-dvi-am \
                                    ! 	install-exec install-exec-am install-html install-html-am \
                                      	install-includeHEADERS install-info install-info-am \
                                      	install-libLTLIBRARIES install-man install-multi install-pdf \
                                      	install-pdf-am install-ps install-ps-am install-strip \
                                    diff -Nrcpad gcc-4.5.2/libjava/libltdl/acinclude.m4 gcc-4.6.0/libjava/libltdl/acinclude.m4
                                    *** gcc-4.5.2/libjava/libltdl/acinclude.m4	Mon Dec  7 19:33:09 2009
                                    --- gcc-4.6.0/libjava/libltdl/acinclude.m4	Sun Feb 13 11:45:53 2011
                                    *************** dgux*)
                                    *** 1347,1356 ****
                                        shlibpath_var=LD_LIBRARY_PATH
                                        ;;
                                      
                                    - freebsd1*)
                                    -   dynamic_linker=no
                                    -   ;;
                                    - 
                                      kfreebsd*-gnu)
                                        version_type=linux
                                        need_lib_prefix=no
                                    --- 1347,1352 ----
                                    *************** EOF
                                    *** 5661,5670 ****
                                            _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
                                            ;;
                                      
                                    -     freebsd1*)
                                    -       _LT_AC_TAGVAR(ld_shlibs, $1)=no
                                    -       ;;
                                    - 
                                          # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
                                          # support.  Future versions do this automatically, but an explicit c++rt0.o
                                          # does not break anything, and helps significantly (at the cost of a little
                                    --- 5657,5662 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/libltdl/configure gcc-4.6.0/libjava/libltdl/configure
                                    *** gcc-4.5.2/libjava/libltdl/configure	Thu Dec 16 12:49:03 2010
                                    --- gcc-4.6.0/libjava/libltdl/configure	Fri Mar 25 17:07:00 2011
                                    *************** if test -z "$aix_libpath"; then aix_libp
                                    *** 7343,7352 ****
                                            hardcode_shlibpath_var=no
                                            ;;
                                      
                                    -     freebsd1*)
                                    -       ld_shlibs=no
                                    -       ;;
                                    - 
                                          # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
                                          # support.  Future versions do this automatically, but an explicit c++rt0.o
                                          # does not break anything, and helps significantly (at the cost of a little
                                    --- 7343,7348 ----
                                    *************** dgux*)
                                    *** 7942,7951 ****
                                        shlibpath_var=LD_LIBRARY_PATH
                                        ;;
                                      
                                    - freebsd1*)
                                    -   dynamic_linker=no
                                    -   ;;
                                    - 
                                      kfreebsd*-gnu)
                                        version_type=linux
                                        need_lib_prefix=no
                                    --- 7938,7943 ----
                                    *************** linux*)
                                    *** 8107,8113 ****
                                        libsuff=
                                        case "$host_cpu" in
                                        x86_64*|s390x*|powerpc64*)
                                    !     echo '#line 8110 "configure"' > conftest.$ac_ext
                                          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
                                        (eval $ac_compile) 2>&5
                                        ac_status=$?
                                    --- 8099,8105 ----
                                        libsuff=
                                        case "$host_cpu" in
                                        x86_64*|s390x*|powerpc64*)
                                    !     echo '#line 8102 "configure"' > conftest.$ac_ext
                                          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
                                        (eval $ac_compile) 2>&5
                                        ac_status=$?
                                    *************** else
                                    *** 8660,8666 ****
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<EOF
                                    ! #line 8663 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    --- 8652,8658 ----
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<EOF
                                    ! #line 8655 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    *************** else
                                    *** 8758,8764 ****
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<EOF
                                    ! #line 8761 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    --- 8750,8756 ----
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<EOF
                                    ! #line 8753 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    *************** else
                                    *** 10599,10605 ****
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<EOF
                                    ! #line 10602 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    --- 10591,10597 ----
                                        lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
                                        lt_status=$lt_dlunknown
                                        cat > conftest.$ac_ext <<EOF
                                    ! #line 10594 "configure"
                                      #include "confdefs.h"
                                      
                                      #if HAVE_DLFCN_H
                                    diff -Nrcpad gcc-4.5.2/libjava/libtool-version gcc-4.6.0/libjava/libtool-version
                                    *** gcc-4.5.2/libjava/libtool-version	Mon Jun 22 09:46:57 2009
                                    --- gcc-4.6.0/libjava/libtool-version	Thu Jun  3 05:05:26 2010
                                    ***************
                                    *** 3,6 ****
                                      # a separate file so that version updates don't involve re-running
                                      # automake.
                                      # CURRENT:REVISION:AGE
                                    ! 11:0:0
                                    --- 3,6 ----
                                      # a separate file so that version updates don't involve re-running
                                      # automake.
                                      # CURRENT:REVISION:AGE
                                    ! 12:0:0
                                    diff -Nrcpad gcc-4.5.2/libjava/shlibpath.m4 gcc-4.6.0/libjava/shlibpath.m4
                                    *** gcc-4.5.2/libjava/shlibpath.m4	Thu Jan 24 16:35:10 2008
                                    --- gcc-4.6.0/libjava/shlibpath.m4	Sun Feb 13 11:45:53 2011
                                    *************** dgux*)
                                    *** 228,237 ****
                                        shlibpath_var=LD_LIBRARY_PATH
                                        ;;
                                      
                                    - freebsd1*)
                                    -   dynamic_linker=no
                                    -   ;;
                                    - 
                                      freebsd*)
                                        objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
                                        version_type=freebsd-$objformat
                                    --- 228,233 ----
                                    diff -Nrcpad gcc-4.5.2/libjava/sources.am gcc-4.6.0/libjava/sources.am
                                    *** gcc-4.5.2/libjava/sources.am	Sat Jan 16 14:42:32 2010
                                    --- gcc-4.6.0/libjava/sources.am	Tue Oct 12 15:55:12 2010
                                    *************** classpath/javax/xml/stream/events/StartD
                                    *** 7624,7630 ****
                                      classpath/javax/xml/stream/events/StartElement.java \
                                      classpath/javax/xml/stream/events/XMLEvent.java \
                                      classpath/javax/xml/stream/util/EventReaderDelegate.java \
                                    ! classpath/javax/xml/stream/util/ReaderDelegate.java \
                                      classpath/javax/xml/stream/util/XMLEventAllocator.java \
                                      classpath/javax/xml/stream/util/XMLEventConsumer.java \
                                      classpath/javax/xml/transform/ErrorListener.java \
                                    --- 7624,7630 ----
                                      classpath/javax/xml/stream/events/StartElement.java \
                                      classpath/javax/xml/stream/events/XMLEvent.java \
                                      classpath/javax/xml/stream/util/EventReaderDelegate.java \
                                    ! classpath/javax/xml/stream/util/StreamReaderDelegate.java \
                                      classpath/javax/xml/stream/util/XMLEventAllocator.java \
                                      classpath/javax/xml/stream/util/XMLEventConsumer.java \
                                      classpath/javax/xml/transform/ErrorListener.java \
                                    diff -Nrcpad gcc-4.5.2/libjava/testsuite/Makefile.in gcc-4.6.0/libjava/testsuite/Makefile.in
                                    *** gcc-4.5.2/libjava/testsuite/Makefile.in	Wed Oct  6 18:54:14 2010
                                    --- gcc-4.6.0/libjava/testsuite/Makefile.in	Fri Feb  4 05:51:57 2011
                                    *************** build_triplet = @build@
                                    *** 35,41 ****
                                      host_triplet = @host@
                                      target_triplet = @target@
                                      subdir = testsuite
                                    ! DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
                                      	$(top_srcdir)/../config/acx.m4 \
                                    --- 35,41 ----
                                      host_triplet = @host@
                                      target_triplet = @target@
                                      subdir = testsuite
                                    ! DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
                                      ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
                                      am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
                                      	$(top_srcdir)/../config/acx.m4 \
                                    *************** am__aclocal_m4_deps = $(top_srcdir)/libl
                                    *** 49,54 ****
                                    --- 49,55 ----
                                      	$(top_srcdir)/../config/lib-ld.m4 \
                                      	$(top_srcdir)/../config/lib-link.m4 \
                                      	$(top_srcdir)/../config/lib-prefix.m4 \
                                    + 	$(top_srcdir)/../config/lthostflags.m4 \
                                      	$(top_srcdir)/../config/multi.m4 \
                                      	$(top_srcdir)/../config/no-executables.m4 \
                                      	$(top_srcdir)/../config/override.m4 \
                                    *************** CONFIG_HEADER = $(top_builddir)/include/
                                    *** 66,75 ****
                                      CONFIG_CLEAN_FILES =
                                      CONFIG_CLEAN_VPATH_FILES =
                                      SOURCES =
                                    - DIST_SOURCES =
                                      DEJATOOL = $(PACKAGE)
                                      RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
                                    - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
                                      ACLOCAL = @ACLOCAL@
                                      AMTAR = @AMTAR@
                                      ANTLR_JAR = @ANTLR_JAR@
                                    --- 67,74 ----
                                    *************** EGREP = @EGREP@
                                    *** 111,116 ****
                                    --- 110,116 ----
                                      EXCEPTIONSPEC = @EXCEPTIONSPEC@
                                      EXEEXT = @EXEEXT@
                                      FGREP = @FGREP@
                                    + GCC_FOR_ECJX = @GCC_FOR_ECJX@
                                      GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
                                      GCDEPS = @GCDEPS@
                                      GCINCS = @GCINCS@
                                    *************** JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@
                                    *** 151,156 ****
                                    --- 151,157 ----
                                      JVM_ROOT_DIR = @JVM_ROOT_DIR@
                                      LD = @LD@
                                      LDFLAGS = @LDFLAGS@
                                    + LDLIBICONV = @LDLIBICONV@
                                      LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@
                                      LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@
                                      LIBART_CFLAGS = @LIBART_CFLAGS@
                                    *************** LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_
                                    *** 171,176 ****
                                    --- 172,178 ----
                                      LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
                                      LIBICONV = @LIBICONV@
                                      LIBLTDL = @LIBLTDL@
                                    + LIBMATHSPEC = @LIBMATHSPEC@
                                      LIBOBJS = @LIBOBJS@
                                      LIBS = @LIBS@
                                      LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
                                    *************** libexecdir = @libexecdir@
                                    *** 283,288 ****
                                    --- 285,291 ----
                                      libstdcxx_incdir = @libstdcxx_incdir@
                                      localedir = @localedir@
                                      localstatedir = @localstatedir@
                                    + lt_host_flags = @lt_host_flags@
                                      mandir = @mandir@
                                      mkdir_p = @mkdir_p@
                                      mkinstalldirs = @mkinstalldirs@
                                    *************** distclean-DEJAGNU:
                                    *** 394,430 ****
                                      	-l='$(DEJATOOL)'; for tool in $$l; do \
                                      	  rm -f $$tool.sum $$tool.log; \
                                      	done
                                    - 
                                    - distdir: $(DISTFILES)
                                    - 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
                                    - 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
                                    - 	list='$(DISTFILES)'; \
                                    - 	  dist_files=`for file in $$list; do echo $$file; done | \
                                    - 	  sed -e "s|^$$srcdirstrip/||;t" \
                                    - 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
                                    - 	case $$dist_files in \
                                    - 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
                                    - 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
                                    - 			   sort -u` ;; \
                                    - 	esac; \
                                    - 	for file in $$dist_files; do \
                                    - 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
                                    - 	  if test -d $$d/$$file; then \
                                    - 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
                                    - 	    if test -d "$(distdir)/$$file"; then \
                                    - 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
                                    - 	    fi; \
                                    - 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
                                    - 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
                                    - 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
                                    - 	    fi; \
                                    - 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
                                    - 	  else \
                                    - 	    test -f "$(distdir)/$$file" \
                                    - 	    || cp -p $$d/$$file "$(distdir)/$$file" \
                                    - 	    || exit 1; \
                                    - 	  fi; \
                                    - 	done
                                      check-am: all-am
                                      	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
                                      check: check-am
                                    --- 397,402 ----
                                    *************** uninstall-am:
                                    *** 525,532 ****
                                      
                                      .PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \
                                      	clean-libtool distclean distclean-DEJAGNU distclean-generic \
                                    ! 	distclean-libtool distdir dvi dvi-am html html-am info info-am \
                                    ! 	install install-am install-data install-data-am install-dvi \
                                      	install-dvi-am install-exec install-exec-am install-html \
                                      	install-html-am install-info install-info-am install-man \
                                      	install-pdf install-pdf-am install-ps install-ps-am \
                                    --- 497,504 ----
                                      
                                      .PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \
                                      	clean-libtool distclean distclean-DEJAGNU distclean-generic \
                                    ! 	distclean-libtool dvi dvi-am html html-am info info-am install \
                                    ! 	install-am install-data install-data-am install-dvi \
                                      	install-dvi-am install-exec install-exec-am install-html \
                                      	install-html-am install-info install-info-am install-man \
                                      	install-pdf install-pdf-am install-ps install-ps-am \
                                    diff -Nrcpad gcc-4.5.2/libjava/testsuite/libjava.jni/jni.exp gcc-4.6.0/libjava/testsuite/libjava.jni/jni.exp
                                    *** gcc-4.5.2/libjava/testsuite/libjava.jni/jni.exp	Wed Oct  6 18:54:14 2010
                                    --- gcc-4.6.0/libjava/testsuite/libjava.jni/jni.exp	Thu Jan  6 18:56:58 2011
                                    *************** proc gcj_jni_get_cxxflags_invocation {} 
                                    *** 274,281 ****
                                          eval lappend cxxflags "-shared-libgcc -lgcj $libiconv"
                                        }
                                      
                                        if { [istarget "*-*-solaris*"] } {
                                    !     lappend cxxflags "-lsocket"
                                        }
                                      
                                        return $cxxflags
                                    --- 274,283 ----
                                          eval lappend cxxflags "-shared-libgcc -lgcj $libiconv"
                                        }
                                      
                                    +   # Make sure libgcc unwinder is used on 64-bit Solaris 10+/x86 rather than
                                    +   # the libc one.
                                        if { [istarget "*-*-solaris*"] } {
                                    !     lappend cxxflags "-shared-libgcc"
                                        }
                                      
                                        return $cxxflags